Index: nv
===================================================================
--- .env	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-ADMIN_KEY=admin-key123
-GOOGLE_CLIENT_ID=43542590862-pt18e0hb33o41889bu976oshddoemivs.apps.googleusercontent.com
-JWT_SECRET=ova_43542590862_admin_098765434
-OPENAI_API_KEY=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
-GRAFANA_API_TOKEN=KIC7rMwr4U8V-GI8suP5rGgNjdcQvB0cAvAwkwevTKw
Index: ADME.md
===================================================================
--- README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,113 +1,0 @@
-# NETIntel
-
-A SIEM-inspired security monitoring platform designed to monitor system and network activity across devices within a local network.
-
-NETIntel provides centralized visibility into connected devices, network connections, running processes, and collected telemetry data through an interactive web dashboard.
-
-## Features
-
-- System and network monitoring
-- Process and connection tracking
-- Environment-based agent enrollment
-- Google OAuth authentication
-- Multi-tenant support
-- Network discovery and device monitoring
-- Interactive dashboard for data visualization
-
-## Architecture
-
-NETIntel consists of three main components:
-
-### Backend
-
-The backend handles authentication, telemetry ingestion, data processing, and API communication.
-
-**Technologies**
-- Python
-- Flask
-- SQLite
-- JWT Authentication
-
-### Frontend
-
-The frontend provides an intuitive dashboard for monitoring devices and visualizing collected data.
-
-**Technologies**
-- React
-- Vite
-- JavaScript
-
-### Agent
-
-The agent runs on monitored devices and periodically collects telemetry information such as system details, running processes, and network activity.
-
-Collected data is securely transmitted to the backend using environment tokens.
-
-**Technologies**
-- Python
-- Psutil
-- Requests
-
-## Tech Stack
-
-- Python
-- Flask
-- React
-- SQLite
-- JWT
-- Google OAuth
-- Git
-- HTML
-- CSS
-- JavaScript
-
-## 🚀 Installation
-
-### Backend
-
-```bash
-pip install -r requirements.txt
-python server.py
-```
-
-### Frontend
-
-```bash
-cd lan-frontend
-npm install
-npm run dev
-```
-
-### Agent
-
-```bash
-python sctry.py
-```
-
-The agent requires:
-- Server IP
-- Environment Token
-
-## Configuration
-
-Create a `.env` file:
-
-```env
-DB_FILE=lan_logs_sysmon.db
-LOG_DIR=received_data_sysmon
-GOOGLE_CLIENT_ID=your-google-client-id
-JWT_SECRET=your-secret
-COOKIE_SECURE=0
-```
-
-## Future Improvements
-
-- Real-time alerting
-- Agent auto-update
-- Advanced threat detection
-- Token management dashboard
-- Automated deployment
-
-## Author
-
-**Ilina Stevanoska**
Index: ild/sctry/Analysis-00.toc
===================================================================
--- build/sctry/Analysis-00.toc	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2163 +1,0 @@
-(['C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\sctry.py'],
- ['C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh'],
- [],
- [('C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks',
-   -1000),
-  ('C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_pyinstaller_hooks_contrib',
-   -1000)],
- {},
- [],
- [],
- False,
- {},
- 0,
- [],
- [],
- '3.13.2 (tags/v3.13.2:4f8bb39, Feb  4 2025, 15:23:48) [MSC v.1942 64 bit '
- '(AMD64)]',
- [('pyi_rth_inspect',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
-   'PYSOURCE'),
-  ('pyi_rth_pkgutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
-   'PYSOURCE'),
-  ('pyi_rth_multiprocessing',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py',
-   'PYSOURCE'),
-  ('pyi_rth_setuptools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_setuptools.py',
-   'PYSOURCE'),
-  ('sctry',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\sctry.py',
-   'PYSOURCE')],
- [('_distutils_hack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_distutils_hack\\__init__.py',
-   'PYMODULE'),
-  ('importlib.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\util.py',
-   'PYMODULE'),
-  ('threading',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\threading.py',
-   'PYMODULE'),
-  ('_threading_local',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_threading_local.py',
-   'PYMODULE'),
-  ('contextlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\contextlib.py',
-   'PYMODULE'),
-  ('importlib._bootstrap_external',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_bootstrap_external.py',
-   'PYMODULE'),
-  ('importlib.metadata',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\__init__.py',
-   'PYMODULE'),
-  ('csv',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\csv.py',
-   'PYMODULE'),
-  ('importlib.metadata._adapters',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_adapters.py',
-   'PYMODULE'),
-  ('importlib.metadata._text',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_text.py',
-   'PYMODULE'),
-  ('email.message',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\message.py',
-   'PYMODULE'),
-  ('email.policy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\policy.py',
-   'PYMODULE'),
-  ('email.contentmanager',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\contentmanager.py',
-   'PYMODULE'),
-  ('email.quoprimime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\quoprimime.py',
-   'PYMODULE'),
-  ('string',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\string.py',
-   'PYMODULE'),
-  ('email.headerregistry',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\headerregistry.py',
-   'PYMODULE'),
-  ('email._header_value_parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_header_value_parser.py',
-   'PYMODULE'),
-  ('urllib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\__init__.py',
-   'PYMODULE'),
-  ('email.iterators',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\iterators.py',
-   'PYMODULE'),
-  ('email.generator',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\generator.py',
-   'PYMODULE'),
-  ('copy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\copy.py',
-   'PYMODULE'),
-  ('random',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\random.py',
-   'PYMODULE'),
-  ('argparse',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\argparse.py',
-   'PYMODULE'),
-  ('shutil',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\shutil.py',
-   'PYMODULE'),
-  ('tarfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tarfile.py',
-   'PYMODULE'),
-  ('gzip',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\gzip.py',
-   'PYMODULE'),
-  ('_compression',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_compression.py',
-   'PYMODULE'),
-  ('struct',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\struct.py',
-   'PYMODULE'),
-  ('lzma',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\lzma.py',
-   'PYMODULE'),
-  ('bz2',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\bz2.py',
-   'PYMODULE'),
-  ('fnmatch',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\fnmatch.py',
-   'PYMODULE'),
-  ('gettext',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\gettext.py',
-   'PYMODULE'),
-  ('statistics',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\statistics.py',
-   'PYMODULE'),
-  ('decimal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\decimal.py',
-   'PYMODULE'),
-  ('_pydecimal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pydecimal.py',
-   'PYMODULE'),
-  ('contextvars',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\contextvars.py',
-   'PYMODULE'),
-  ('fractions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\fractions.py',
-   'PYMODULE'),
-  ('numbers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\numbers.py',
-   'PYMODULE'),
-  ('hashlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\hashlib.py',
-   'PYMODULE'),
-  ('logging',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\logging\\__init__.py',
-   'PYMODULE'),
-  ('pickle',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pickle.py',
-   'PYMODULE'),
-  ('pprint',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pprint.py',
-   'PYMODULE'),
-  ('dataclasses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\dataclasses.py',
-   'PYMODULE'),
-  ('_compat_pickle',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_compat_pickle.py',
-   'PYMODULE'),
-  ('bisect',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\bisect.py',
-   'PYMODULE'),
-  ('email._encoded_words',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_encoded_words.py',
-   'PYMODULE'),
-  ('base64',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\base64.py',
-   'PYMODULE'),
-  ('getopt',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\getopt.py',
-   'PYMODULE'),
-  ('email.charset',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\charset.py',
-   'PYMODULE'),
-  ('email.encoders',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\encoders.py',
-   'PYMODULE'),
-  ('email.base64mime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\base64mime.py',
-   'PYMODULE'),
-  ('email._policybase',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_policybase.py',
-   'PYMODULE'),
-  ('email.header',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\header.py',
-   'PYMODULE'),
-  ('email.errors',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\errors.py',
-   'PYMODULE'),
-  ('email.utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\utils.py',
-   'PYMODULE'),
-  ('email._parseaddr',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_parseaddr.py',
-   'PYMODULE'),
-  ('calendar',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\calendar.py',
-   'PYMODULE'),
-  ('urllib.parse',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\parse.py',
-   'PYMODULE'),
-  ('ipaddress',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ipaddress.py',
-   'PYMODULE'),
-  ('quopri',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\quopri.py',
-   'PYMODULE'),
-  ('typing',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\typing.py',
-   'PYMODULE'),
-  ('importlib.metadata._itertools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_itertools.py',
-   'PYMODULE'),
-  ('importlib.metadata._functools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_functools.py',
-   'PYMODULE'),
-  ('importlib.metadata._collections',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_collections.py',
-   'PYMODULE'),
-  ('importlib.metadata._meta',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_meta.py',
-   'PYMODULE'),
-  ('textwrap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\textwrap.py',
-   'PYMODULE'),
-  ('zipfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\__init__.py',
-   'PYMODULE'),
-  ('zipfile._path',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\_path\\__init__.py',
-   'PYMODULE'),
-  ('zipfile._path.glob',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\_path\\glob.py',
-   'PYMODULE'),
-  ('py_compile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\py_compile.py',
-   'PYMODULE'),
-  ('importlib.machinery',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\machinery.py',
-   'PYMODULE'),
-  ('pathlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\__init__.py',
-   'PYMODULE'),
-  ('pathlib._local',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\_local.py',
-   'PYMODULE'),
-  ('glob',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\glob.py',
-   'PYMODULE'),
-  ('pathlib._abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\_abc.py',
-   'PYMODULE'),
-  ('inspect',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\inspect.py',
-   'PYMODULE'),
-  ('token',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\token.py',
-   'PYMODULE'),
-  ('dis',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\dis.py',
-   'PYMODULE'),
-  ('opcode',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\opcode.py',
-   'PYMODULE'),
-  ('_opcode_metadata',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_opcode_metadata.py',
-   'PYMODULE'),
-  ('ast',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ast.py',
-   'PYMODULE'),
-  ('email',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\__init__.py',
-   'PYMODULE'),
-  ('email.parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\parser.py',
-   'PYMODULE'),
-  ('email.feedparser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\feedparser.py',
-   'PYMODULE'),
-  ('__future__',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\__future__.py',
-   'PYMODULE'),
-  ('importlib.readers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\readers.py',
-   'PYMODULE'),
-  ('importlib.resources.readers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\readers.py',
-   'PYMODULE'),
-  ('importlib.resources._itertools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_itertools.py',
-   'PYMODULE'),
-  ('importlib.resources.abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\abc.py',
-   'PYMODULE'),
-  ('importlib.resources',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\__init__.py',
-   'PYMODULE'),
-  ('importlib.resources._functional',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_functional.py',
-   'PYMODULE'),
-  ('importlib.resources._common',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_common.py',
-   'PYMODULE'),
-  ('importlib.resources._adapters',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_adapters.py',
-   'PYMODULE'),
-  ('tempfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tempfile.py',
-   'PYMODULE'),
-  ('tokenize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tokenize.py',
-   'PYMODULE'),
-  ('importlib._bootstrap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_bootstrap.py',
-   'PYMODULE'),
-  ('importlib._abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_abc.py',
-   'PYMODULE'),
-  ('importlib.abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\abc.py',
-   'PYMODULE'),
-  ('importlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\__init__.py',
-   'PYMODULE'),
-  ('setuptools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.msvc',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\msvc.py',
-   'PYMODULE'),
-  ('typing_extensions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\typing_extensions.py',
-   'PYMODULE'),
-  ('asyncio.coroutines',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\coroutines.py',
-   'PYMODULE'),
-  ('asyncio',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\__init__.py',
-   'PYMODULE'),
-  ('asyncio.unix_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\unix_events.py',
-   'PYMODULE'),
-  ('asyncio.log',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\log.py',
-   'PYMODULE'),
-  ('signal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\signal.py',
-   'PYMODULE'),
-  ('selectors',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\selectors.py',
-   'PYMODULE'),
-  ('asyncio.windows_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\windows_events.py',
-   'PYMODULE'),
-  ('asyncio.windows_utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\windows_utils.py',
-   'PYMODULE'),
-  ('asyncio.selector_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\selector_events.py',
-   'PYMODULE'),
-  ('ssl',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ssl.py',
-   'PYMODULE'),
-  ('asyncio.proactor_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\proactor_events.py',
-   'PYMODULE'),
-  ('asyncio.base_subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_subprocess.py',
-   'PYMODULE'),
-  ('asyncio.threads',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\threads.py',
-   'PYMODULE'),
-  ('asyncio.taskgroups',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\taskgroups.py',
-   'PYMODULE'),
-  ('asyncio.subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\subprocess.py',
-   'PYMODULE'),
-  ('asyncio.streams',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\streams.py',
-   'PYMODULE'),
-  ('asyncio.runners',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\runners.py',
-   'PYMODULE'),
-  ('asyncio.base_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_events.py',
-   'PYMODULE'),
-  ('concurrent.futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\__init__.py',
-   'PYMODULE'),
-  ('concurrent.futures.thread',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\thread.py',
-   'PYMODULE'),
-  ('queue',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\queue.py',
-   'PYMODULE'),
-  ('concurrent.futures.process',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\process.py',
-   'PYMODULE'),
-  ('multiprocessing.synchronize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\synchronize.py',
-   'PYMODULE'),
-  ('multiprocessing.heap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\heap.py',
-   'PYMODULE'),
-  ('multiprocessing.resource_tracker',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\resource_tracker.py',
-   'PYMODULE'),
-  ('multiprocessing.spawn',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\spawn.py',
-   'PYMODULE'),
-  ('runpy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\runpy.py',
-   'PYMODULE'),
-  ('pkgutil',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pkgutil.py',
-   'PYMODULE'),
-  ('zipimport',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipimport.py',
-   'PYMODULE'),
-  ('multiprocessing.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\util.py',
-   'PYMODULE'),
-  ('multiprocessing.forkserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\forkserver.py',
-   'PYMODULE'),
-  ('multiprocessing.process',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\process.py',
-   'PYMODULE'),
-  ('multiprocessing.context',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\context.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_spawn_win32',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_spawn_win32.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_forkserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_forkserver.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_spawn_posix',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_spawn_posix.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_fork',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_fork.py',
-   'PYMODULE'),
-  ('multiprocessing.sharedctypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\sharedctypes.py',
-   'PYMODULE'),
-  ('ctypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\__init__.py',
-   'PYMODULE'),
-  ('ctypes.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\util.py',
-   'PYMODULE'),
-  ('ctypes._aix',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\_aix.py',
-   'PYMODULE'),
-  ('ctypes.macholib.dyld',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\dyld.py',
-   'PYMODULE'),
-  ('ctypes.macholib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\__init__.py',
-   'PYMODULE'),
-  ('ctypes.macholib.dylib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\dylib.py',
-   'PYMODULE'),
-  ('ctypes.macholib.framework',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\framework.py',
-   'PYMODULE'),
-  ('ctypes._endian',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\_endian.py',
-   'PYMODULE'),
-  ('multiprocessing.pool',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\pool.py',
-   'PYMODULE'),
-  ('multiprocessing.dummy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\dummy\\__init__.py',
-   'PYMODULE'),
-  ('multiprocessing.dummy.connection',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\dummy\\connection.py',
-   'PYMODULE'),
-  ('multiprocessing.managers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\managers.py',
-   'PYMODULE'),
-  ('multiprocessing.shared_memory',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\shared_memory.py',
-   'PYMODULE'),
-  ('secrets',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\secrets.py',
-   'PYMODULE'),
-  ('hmac',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\hmac.py',
-   'PYMODULE'),
-  ('multiprocessing.reduction',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\reduction.py',
-   'PYMODULE'),
-  ('multiprocessing.resource_sharer',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\resource_sharer.py',
-   'PYMODULE'),
-  ('multiprocessing.queues',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\queues.py',
-   'PYMODULE'),
-  ('multiprocessing.connection',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\connection.py',
-   'PYMODULE'),
-  ('xmlrpc.client',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xmlrpc\\client.py',
-   'PYMODULE'),
-  ('xmlrpc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xmlrpc\\__init__.py',
-   'PYMODULE'),
-  ('xml.parsers.expat',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\parsers\\expat.py',
-   'PYMODULE'),
-  ('xml.parsers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\parsers\\__init__.py',
-   'PYMODULE'),
-  ('xml',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\__init__.py',
-   'PYMODULE'),
-  ('xml.sax.expatreader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\expatreader.py',
-   'PYMODULE'),
-  ('xml.sax.saxutils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\saxutils.py',
-   'PYMODULE'),
-  ('urllib.request',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\request.py',
-   'PYMODULE'),
-  ('nturl2path',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\nturl2path.py',
-   'PYMODULE'),
-  ('ftplib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ftplib.py',
-   'PYMODULE'),
-  ('netrc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\netrc.py',
-   'PYMODULE'),
-  ('mimetypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\mimetypes.py',
-   'PYMODULE'),
-  ('http.cookiejar',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\cookiejar.py',
-   'PYMODULE'),
-  ('http',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\__init__.py',
-   'PYMODULE'),
-  ('urllib.response',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\response.py',
-   'PYMODULE'),
-  ('urllib.error',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\error.py',
-   'PYMODULE'),
-  ('xml.sax',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\__init__.py',
-   'PYMODULE'),
-  ('xml.sax.handler',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\handler.py',
-   'PYMODULE'),
-  ('xml.sax._exceptions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\_exceptions.py',
-   'PYMODULE'),
-  ('xml.sax.xmlreader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\xmlreader.py',
-   'PYMODULE'),
-  ('http.client',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\client.py',
-   'PYMODULE'),
-  ('multiprocessing',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\__init__.py',
-   'PYMODULE'),
-  ('concurrent.futures._base',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\_base.py',
-   'PYMODULE'),
-  ('concurrent',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\__init__.py',
-   'PYMODULE'),
-  ('asyncio.trsock',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\trsock.py',
-   'PYMODULE'),
-  ('asyncio.staggered',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\staggered.py',
-   'PYMODULE'),
-  ('asyncio.timeouts',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\timeouts.py',
-   'PYMODULE'),
-  ('asyncio.tasks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\tasks.py',
-   'PYMODULE'),
-  ('asyncio.queues',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\queues.py',
-   'PYMODULE'),
-  ('asyncio.base_tasks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_tasks.py',
-   'PYMODULE'),
-  ('asyncio.locks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\locks.py',
-   'PYMODULE'),
-  ('asyncio.mixins',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\mixins.py',
-   'PYMODULE'),
-  ('asyncio.sslproto',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\sslproto.py',
-   'PYMODULE'),
-  ('asyncio.transports',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\transports.py',
-   'PYMODULE'),
-  ('asyncio.protocols',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\protocols.py',
-   'PYMODULE'),
-  ('asyncio.futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\futures.py',
-   'PYMODULE'),
-  ('asyncio.base_futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_futures.py',
-   'PYMODULE'),
-  ('asyncio.exceptions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\exceptions.py',
-   'PYMODULE'),
-  ('asyncio.events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\events.py',
-   'PYMODULE'),
-  ('asyncio.format_helpers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\format_helpers.py',
-   'PYMODULE'),
-  ('asyncio.constants',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\constants.py',
-   'PYMODULE'),
-  ('setuptools._distutils.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\errors.py',
-   'PYMODULE'),
-  ('setuptools._distutils.sysconfig',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\sysconfig.py',
-   'PYMODULE'),
-  ('setuptools._distutils.text_file',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\text_file.py',
-   'PYMODULE'),
-  ('setuptools._distutils.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.spawn',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\spawn.py',
-   'PYMODULE'),
-  ('setuptools._distutils.debug',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\debug.py',
-   'PYMODULE'),
-  ('setuptools._distutils._modified',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_modified.py',
-   'PYMODULE'),
-  ('setuptools._distutils._log',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_log.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.ccompiler',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\ccompiler.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers.C.base',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\base.py',
-   'PYMODULE'),
-  ('setuptools._distutils.fancy_getopt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\fancy_getopt.py',
-   'PYMODULE'),
-  ('setuptools._distutils.file_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\file_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.dir_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\dir_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers.C', '-', 'PYMODULE'),
-  ('setuptools._distutils.compilers.C.msvc',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\msvc.py',
-   'PYMODULE'),
-  ('unittest.mock',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\mock.py',
-   'PYMODULE'),
-  ('unittest',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\__init__.py',
-   'PYMODULE'),
-  ('unittest.async_case',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\async_case.py',
-   'PYMODULE'),
-  ('unittest.signals',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\signals.py',
-   'PYMODULE'),
-  ('unittest.main',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\main.py',
-   'PYMODULE'),
-  ('unittest.runner',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\runner.py',
-   'PYMODULE'),
-  ('unittest.loader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\loader.py',
-   'PYMODULE'),
-  ('unittest.suite',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\suite.py',
-   'PYMODULE'),
-  ('unittest.case',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\case.py',
-   'PYMODULE'),
-  ('unittest._log',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\_log.py',
-   'PYMODULE'),
-  ('difflib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\difflib.py',
-   'PYMODULE'),
-  ('unittest.result',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\result.py',
-   'PYMODULE'),
-  ('unittest.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers', '-', 'PYMODULE'),
-  ('setuptools._distutils.compat.numpy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\numpy.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco.functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\functools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco', '-', 'PYMODULE'),
-  ('setuptools._vendor', '-', 'PYMODULE'),
-  ('sysconfig',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\sysconfig\\__init__.py',
-   'PYMODULE'),
-  ('_aix_support',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_aix_support.py',
-   'PYMODULE'),
-  ('setuptools._distutils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\version.py',
-   'PYMODULE'),
-  ('setuptools._distutils.archive_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\archive_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers.C.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\errors.py',
-   'PYMODULE'),
-  ('setuptools.compat.py310',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py310.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._types',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_types.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._re',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_re.py',
-   'PYMODULE'),
-  ('tomllib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\__init__.py',
-   'PYMODULE'),
-  ('tomllib._parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_parser.py',
-   'PYMODULE'),
-  ('tomllib._types',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_types.py',
-   'PYMODULE'),
-  ('tomllib._re',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_re.py',
-   'PYMODULE'),
-  ('setuptools.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.compat.py311',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py311.py',
-   'PYMODULE'),
-  ('setuptools.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools._path',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_path.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools.recipes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\recipes.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools.more',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\more.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.build_ext',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\build_ext.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils._msvccompiler',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_msvccompiler.py',
-   'PYMODULE'),
-  ('setuptools._distutils.extension',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\extension.py',
-   'PYMODULE'),
-  ('site',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site.py',
-   'PYMODULE'),
-  ('_pyrepl.main',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\main.py',
-   'PYMODULE'),
-  ('_pyrepl',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\__init__.py',
-   'PYMODULE'),
-  ('_pyrepl.curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\curses.py',
-   'PYMODULE'),
-  ('curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\curses\\__init__.py',
-   'PYMODULE'),
-  ('curses.has_key',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\curses\\has_key.py',
-   'PYMODULE'),
-  ('_pyrepl._minimal_curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\_minimal_curses.py',
-   'PYMODULE'),
-  ('_pyrepl.input',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\input.py',
-   'PYMODULE'),
-  ('_pyrepl.keymap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\keymap.py',
-   'PYMODULE'),
-  ('_pyrepl.types',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\types.py',
-   'PYMODULE'),
-  ('_pyrepl.commands',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\commands.py',
-   'PYMODULE'),
-  ('_pyrepl.pager',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\pager.py',
-   'PYMODULE'),
-  ('tty',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tty.py',
-   'PYMODULE'),
-  ('_pyrepl.historical_reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\historical_reader.py',
-   'PYMODULE'),
-  ('_pyrepl.reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\reader.py',
-   'PYMODULE'),
-  ('_pyrepl._threading_handler',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\_threading_handler.py',
-   'PYMODULE'),
-  ('_pyrepl.utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\utils.py',
-   'PYMODULE'),
-  ('_colorize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_colorize.py',
-   'PYMODULE'),
-  ('_pyrepl.console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\console.py',
-   'PYMODULE'),
-  ('code',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\code.py',
-   'PYMODULE'),
-  ('codeop',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\codeop.py',
-   'PYMODULE'),
-  ('_pyrepl.trace',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\trace.py',
-   'PYMODULE'),
-  ('_pyrepl.simple_interact',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\simple_interact.py',
-   'PYMODULE'),
-  ('_pyrepl.unix_console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\unix_console.py',
-   'PYMODULE'),
-  ('_pyrepl.unix_eventqueue',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\unix_eventqueue.py',
-   'PYMODULE'),
-  ('_pyrepl.fancy_termios',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\fancy_termios.py',
-   'PYMODULE'),
-  ('_pyrepl.windows_console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\windows_console.py',
-   'PYMODULE'),
-  ('ctypes.wintypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\wintypes.py',
-   'PYMODULE'),
-  ('_pyrepl.readline',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\readline.py',
-   'PYMODULE'),
-  ('_pyrepl.completing_reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\completing_reader.py',
-   'PYMODULE'),
-  ('rlcompleter',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\rlcompleter.py',
-   'PYMODULE'),
-  ('_sitebuiltins',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_sitebuiltins.py',
-   'PYMODULE'),
-  ('pydoc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc.py',
-   'PYMODULE'),
-  ('webbrowser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\webbrowser.py',
-   'PYMODULE'),
-  ('_ios_support',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_ios_support.py',
-   'PYMODULE'),
-  ('shlex',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\shlex.py',
-   'PYMODULE'),
-  ('http.server',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\server.py',
-   'PYMODULE'),
-  ('socketserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\socketserver.py',
-   'PYMODULE'),
-  ('html',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\html\\__init__.py',
-   'PYMODULE'),
-  ('html.entities',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\html\\entities.py',
-   'PYMODULE'),
-  ('pydoc_data.topics',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc_data\\topics.py',
-   'PYMODULE'),
-  ('pydoc_data',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc_data\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\core.py',
-   'PYMODULE'),
-  ('setuptools._distutils.dist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\dist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.versionpredicate',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\versionpredicate.py',
-   'PYMODULE'),
-  ('configparser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\configparser.py',
-   'PYMODULE'),
-  ('packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\utils.py',
-   'PYMODULE'),
-  ('packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\version.py',
-   'PYMODULE'),
-  ('packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\tags.py',
-   'PYMODULE'),
-  ('setuptools._distutils.cmd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\cmd.py',
-   'PYMODULE'),
-  ('setuptools.warnings',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\warnings.py',
-   'PYMODULE'),
-  ('setuptools.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\version.py',
-   'PYMODULE'),
-  ('setuptools._importlib',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_importlib.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.overlay',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\overlay.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.glob',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\glob.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.py313',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py313.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.py310',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py310.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp._functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\_functools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._adapters',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_adapters.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._text',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_text.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat.py311',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\py311.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._typing',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_typing.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_itertools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_functools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_compat.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._collections',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_collections.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._meta',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_meta.py',
-   'PYMODULE'),
-  ('setuptools.extension',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\extension.py',
-   'PYMODULE'),
-  ('setuptools.dist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\dist.py',
-   'PYMODULE'),
-  ('setuptools.command.bdist_wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\bdist_wheel.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.macosx_libfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\macosx_libfile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.command.egg_info',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\egg_info.py',
-   'PYMODULE'),
-  ('setuptools._distutils.filelist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\filelist.py',
-   'PYMODULE'),
-  ('setuptools.command._requirestxt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\_requirestxt.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco.text',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\text\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco.context',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\context\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile.compat.py38',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\compat\\py38.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.glob',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\glob.py',
-   'PYMODULE'),
-  ('setuptools.command.setopt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\setopt.py',
-   'PYMODULE'),
-  ('setuptools.command.sdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\sdist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.sdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\sdist.py',
-   'PYMODULE'),
-  ('setuptools.command.build',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\build.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.build',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\build.py',
-   'PYMODULE'),
-  ('setuptools.command.bdist_egg',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\bdist_egg.py',
-   'PYMODULE'),
-  ('setuptools.unicode_utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\unicode_utils.py',
-   'PYMODULE'),
-  ('packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.wheelfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\wheelfile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\util.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.convert',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\convert.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\metadata.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\utils.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\version.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\markers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.pack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\pack.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.unpack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\unpack.py',
-   'PYMODULE'),
-  ('setuptools.installer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\installer.py',
-   'PYMODULE'),
-  ('setuptools.wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\wheel.py',
-   'PYMODULE'),
-  ('setuptools._discovery',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_discovery.py',
-   'PYMODULE'),
-  ('setuptools.archive_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\archive_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.log',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\log.py',
-   'PYMODULE'),
-  ('setuptools.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\errors.py',
-   'PYMODULE'),
-  ('setuptools.config.setupcfg',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\setupcfg.py',
-   'PYMODULE'),
-  ('setuptools.config.expand',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\expand.py',
-   'PYMODULE'),
-  ('setuptools.config.pyprojecttoml',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\pyprojecttoml.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.fastjsonschema_validations',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\fastjsonschema_validations.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.fastjsonschema_exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\fastjsonschema_exceptions.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.extra_validations',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\extra_validations.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.error_reporting',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\error_reporting.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.formats',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\formats.py',
-   'PYMODULE'),
-  ('packaging.licenses',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\licenses\\__init__.py',
-   'PYMODULE'),
-  ('packaging.licenses._spdx',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\licenses\\_spdx.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\utils.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\version.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\markers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.config._apply_pyprojecttoml',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_apply_pyprojecttoml.py',
-   'PYMODULE'),
-  ('setuptools.config',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._static',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_static.py',
-   'PYMODULE'),
-  ('packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\markers.py',
-   'PYMODULE'),
-  ('setuptools._shutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_shutil.py',
-   'PYMODULE'),
-  ('setuptools.windows_support',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\windows_support.py',
-   'PYMODULE'),
-  ('setuptools.command',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.bdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\bdist.py',
-   'PYMODULE'),
-  ('setuptools._entry_points',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_entry_points.py',
-   'PYMODULE'),
-  ('setuptools._itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_itertools.py',
-   'PYMODULE'),
-  ('setuptools.discovery',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\discovery.py',
-   'PYMODULE'),
-  ('setuptools.depends',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\depends.py',
-   'PYMODULE'),
-  ('setuptools._imp',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_imp.py',
-   'PYMODULE'),
-  ('setuptools.logging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\logging.py',
-   'PYMODULE'),
-  ('setuptools.monkey',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\monkey.py',
-   'PYMODULE'),
-  ('setuptools._core_metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_core_metadata.py',
-   'PYMODULE'),
-  ('setuptools._reqs',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_reqs.py',
-   'PYMODULE'),
-  ('setuptools._normalization',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_normalization.py',
-   'PYMODULE'),
-  ('_distutils_hack.override',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_distutils_hack\\override.py',
-   'PYMODULE'),
-  ('tracemalloc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tracemalloc.py',
-   'PYMODULE'),
-  ('_py_abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_py_abc.py',
-   'PYMODULE'),
-  ('stringprep',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\stringprep.py',
-   'PYMODULE'),
-  ('getpass',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\getpass.py',
-   'PYMODULE'),
-  ('subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\subprocess.py',
-   'PYMODULE'),
-  ('_strptime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_strptime.py',
-   'PYMODULE'),
-  ('psutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\__init__.py',
-   'PYMODULE'),
-  ('psutil._pswindows',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_pswindows.py',
-   'PYMODULE'),
-  ('psutil._common',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_common.py',
-   'PYMODULE'),
-  ('datetime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\datetime.py',
-   'PYMODULE'),
-  ('_pydatetime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pydatetime.py',
-   'PYMODULE'),
-  ('requests',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\__init__.py',
-   'PYMODULE'),
-  ('requests.status_codes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\status_codes.py',
-   'PYMODULE'),
-  ('requests.structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\structures.py',
-   'PYMODULE'),
-  ('requests.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\compat.py',
-   'PYMODULE'),
-  ('http.cookies',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\cookies.py',
-   'PYMODULE'),
-  ('requests.models',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\models.py',
-   'PYMODULE'),
-  ('idna',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\__init__.py',
-   'PYMODULE'),
-  ('idna.package_data',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\package_data.py',
-   'PYMODULE'),
-  ('idna.intranges',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\intranges.py',
-   'PYMODULE'),
-  ('idna.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\core.py',
-   'PYMODULE'),
-  ('idna.uts46data',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\uts46data.py',
-   'PYMODULE'),
-  ('idna.idnadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\idnadata.py',
-   'PYMODULE'),
-  ('requests.hooks',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\hooks.py',
-   'PYMODULE'),
-  ('requests.cookies',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\cookies.py',
-   'PYMODULE'),
-  ('requests.auth',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\auth.py',
-   'PYMODULE'),
-  ('requests._internal_utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\_internal_utils.py',
-   'PYMODULE'),
-  ('urllib3.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.util.wait',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\wait.py',
-   'PYMODULE'),
-  ('urllib3.util.url',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\url.py',
-   'PYMODULE'),
-  ('urllib3.util.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\util.py',
-   'PYMODULE'),
-  ('urllib3.util.timeout',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\timeout.py',
-   'PYMODULE'),
-  ('urllib3.util.ssl_',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssl_.py',
-   'PYMODULE'),
-  ('urllib3.util.ssltransport',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssltransport.py',
-   'PYMODULE'),
-  ('urllib3.util.retry',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\retry.py',
-   'PYMODULE'),
-  ('urllib3.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\response.py',
-   'PYMODULE'),
-  ('urllib3.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\connection.py',
-   'PYMODULE'),
-  ('urllib3.util.ssl_match_hostname',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssl_match_hostname.py',
-   'PYMODULE'),
-  ('urllib3._version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_version.py',
-   'PYMODULE'),
-  ('urllib3.http2.probe',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\probe.py',
-   'PYMODULE'),
-  ('urllib3.http2',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.http2.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\connection.py',
-   'PYMODULE'),
-  ('urllib3._collections',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_collections.py',
-   'PYMODULE'),
-  ('urllib3._base_connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_base_connection.py',
-   'PYMODULE'),
-  ('urllib3.connectionpool',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\connectionpool.py',
-   'PYMODULE'),
-  ('urllib3.util.proxy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\proxy.py',
-   'PYMODULE'),
-  ('urllib3._request_methods',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_request_methods.py',
-   'PYMODULE'),
-  ('urllib3.util.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\response.py',
-   'PYMODULE'),
-  ('urllib3.util.request',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\request.py',
-   'PYMODULE'),
-  ('urllib3.util.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\connection.py',
-   'PYMODULE'),
-  ('urllib3.filepost',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\filepost.py',
-   'PYMODULE'),
-  ('urllib3.fields',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\fields.py',
-   'PYMODULE'),
-  ('requests.api',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\api.py',
-   'PYMODULE'),
-  ('requests.sessions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\sessions.py',
-   'PYMODULE'),
-  ('requests.adapters',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\adapters.py',
-   'PYMODULE'),
-  ('urllib3.contrib.socks',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\socks.py',
-   'PYMODULE'),
-  ('urllib3.poolmanager',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\poolmanager.py',
-   'PYMODULE'),
-  ('requests.__version__',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\__version__.py',
-   'PYMODULE'),
-  ('requests.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\utils.py',
-   'PYMODULE'),
-  ('requests.certs',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\certs.py',
-   'PYMODULE'),
-  ('certifi',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\__init__.py',
-   'PYMODULE'),
-  ('certifi.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\core.py',
-   'PYMODULE'),
-  ('requests.packages',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\packages.py',
-   'PYMODULE'),
-  ('urllib3.exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\exceptions.py',
-   'PYMODULE'),
-  ('urllib3.contrib.pyopenssl',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\pyopenssl.py',
-   'PYMODULE'),
-  ('urllib3.contrib',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\__init__.py',
-   'PYMODULE'),
-  ('charset_normalizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\__init__.py',
-   'PYMODULE'),
-  ('charset_normalizer.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\version.py',
-   'PYMODULE'),
-  ('charset_normalizer.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\utils.py',
-   'PYMODULE'),
-  ('charset_normalizer.constant',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\constant.py',
-   'PYMODULE'),
-  ('charset_normalizer.models',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\models.py',
-   'PYMODULE'),
-  ('charset_normalizer.cd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\cd.py',
-   'PYMODULE'),
-  ('charset_normalizer.legacy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\legacy.py',
-   'PYMODULE'),
-  ('charset_normalizer.api',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\api.py',
-   'PYMODULE'),
-  ('requests.exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\exceptions.py',
-   'PYMODULE'),
-  ('urllib3',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\connection.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\response.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.request',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\request.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.fetch',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\fetch.py',
-   'PYMODULE'),
-  ('json',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\__init__.py',
-   'PYMODULE'),
-  ('json.encoder',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\encoder.py',
-   'PYMODULE'),
-  ('json.decoder',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\decoder.py',
-   'PYMODULE'),
-  ('json.scanner',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\scanner.py',
-   'PYMODULE'),
-  ('platform',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\platform.py',
-   'PYMODULE'),
-  ('socket',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\socket.py',
-   'PYMODULE')],
- [('python313.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\python313.dll',
-   'BINARY'),
-  ('_lzma.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_lzma.pyd',
-   'EXTENSION'),
-  ('_bz2.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_bz2.pyd',
-   'EXTENSION'),
-  ('_decimal.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_decimal.pyd',
-   'EXTENSION'),
-  ('_hashlib.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_hashlib.pyd',
-   'EXTENSION'),
-  ('unicodedata.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\unicodedata.pyd',
-   'EXTENSION'),
-  ('_socket.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_socket.pyd',
-   'EXTENSION'),
-  ('select.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\select.pyd',
-   'EXTENSION'),
-  ('_overlapped.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_overlapped.pyd',
-   'EXTENSION'),
-  ('_ssl.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ssl.pyd',
-   'EXTENSION'),
-  ('_queue.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_queue.pyd',
-   'EXTENSION'),
-  ('_ctypes.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ctypes.pyd',
-   'EXTENSION'),
-  ('_multiprocessing.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_multiprocessing.pyd',
-   'EXTENSION'),
-  ('pyexpat.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\pyexpat.pyd',
-   'EXTENSION'),
-  ('_asyncio.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_asyncio.pyd',
-   'EXTENSION'),
-  ('psutil\\_psutil_windows.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_psutil_windows.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('_wmi.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_wmi.pyd',
-   'EXTENSION'),
-  ('VCRUNTIME140.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\VCRUNTIME140.dll',
-   'BINARY'),
-  ('libcrypto-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libcrypto-3.dll',
-   'BINARY'),
-  ('libssl-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libssl-3.dll',
-   'BINARY'),
-  ('libffi-8.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libffi-8.dll',
-   'BINARY'),
-  ('python3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\python3.dll',
-   'BINARY'),
-  ('VCRUNTIME140_1.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\VCRUNTIME140_1.dll',
-   'BINARY')],
- [],
- [],
- [('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'DATA'),
-  ('setuptools\\_vendor\\jaraco\\text\\Lorem ipsum.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\text\\Lorem '
-   'ipsum.txt',
-   'DATA'),
-  ('certifi\\py.typed',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\py.typed',
-   'DATA'),
-  ('certifi\\cacert.pem',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\cacert.pem',
-   'DATA'),
-  ('base_library.zip',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\base_library.zip',
-   'DATA')],
- [('types',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\types.py',
-   'PYMODULE'),
-  ('_weakrefset',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_weakrefset.py',
-   'PYMODULE'),
-  ('warnings',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\warnings.py',
-   'PYMODULE'),
-  ('sre_parse',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\sre_parse.py',
-   'PYMODULE'),
-  ('locale',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\locale.py',
-   'PYMODULE'),
-  ('operator',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\operator.py',
-   'PYMODULE'),
-  ('abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\abc.py',
-   'PYMODULE'),
-  ('codecs',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\codecs.py',
-   'PYMODULE'),
-  ('weakref',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\weakref.py',
-   'PYMODULE'),
-  ('sre_constants',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\sre_constants.py',
-   'PYMODULE'),
-  ('traceback',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\traceback.py',
-   'PYMODULE'),
-  ('sre_compile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\sre_compile.py',
-   'PYMODULE'),
-  ('_collections_abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_collections_abc.py',
-   'PYMODULE'),
-  ('stat',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\stat.py',
-   'PYMODULE'),
-  ('io',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\io.py',
-   'PYMODULE'),
-  ('linecache',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\linecache.py',
-   'PYMODULE'),
-  ('collections',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\collections\\__init__.py',
-   'PYMODULE'),
-  ('copyreg',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\copyreg.py',
-   'PYMODULE'),
-  ('encodings.zlib_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\zlib_codec.py',
-   'PYMODULE'),
-  ('encodings.uu_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\uu_codec.py',
-   'PYMODULE'),
-  ('encodings.utf_8_sig',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_8_sig.py',
-   'PYMODULE'),
-  ('encodings.utf_8',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_8.py',
-   'PYMODULE'),
-  ('encodings.utf_7',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_7.py',
-   'PYMODULE'),
-  ('encodings.utf_32_le',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_32_le.py',
-   'PYMODULE'),
-  ('encodings.utf_32_be',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_32_be.py',
-   'PYMODULE'),
-  ('encodings.utf_32',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_32.py',
-   'PYMODULE'),
-  ('encodings.utf_16_le',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_16_le.py',
-   'PYMODULE'),
-  ('encodings.utf_16_be',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_16_be.py',
-   'PYMODULE'),
-  ('encodings.utf_16',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\utf_16.py',
-   'PYMODULE'),
-  ('encodings.unicode_escape',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\unicode_escape.py',
-   'PYMODULE'),
-  ('encodings.undefined',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\undefined.py',
-   'PYMODULE'),
-  ('encodings.tis_620',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\tis_620.py',
-   'PYMODULE'),
-  ('encodings.shift_jisx0213',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\shift_jisx0213.py',
-   'PYMODULE'),
-  ('encodings.shift_jis_2004',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\shift_jis_2004.py',
-   'PYMODULE'),
-  ('encodings.shift_jis',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\shift_jis.py',
-   'PYMODULE'),
-  ('encodings.rot_13',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\rot_13.py',
-   'PYMODULE'),
-  ('encodings.raw_unicode_escape',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\raw_unicode_escape.py',
-   'PYMODULE'),
-  ('encodings.quopri_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\quopri_codec.py',
-   'PYMODULE'),
-  ('encodings.punycode',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\punycode.py',
-   'PYMODULE'),
-  ('encodings.ptcp154',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\ptcp154.py',
-   'PYMODULE'),
-  ('encodings.palmos',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\palmos.py',
-   'PYMODULE'),
-  ('encodings.oem',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\oem.py',
-   'PYMODULE'),
-  ('encodings.mbcs',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mbcs.py',
-   'PYMODULE'),
-  ('encodings.mac_turkish',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_turkish.py',
-   'PYMODULE'),
-  ('encodings.mac_romanian',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_romanian.py',
-   'PYMODULE'),
-  ('encodings.mac_roman',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_roman.py',
-   'PYMODULE'),
-  ('encodings.mac_latin2',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_latin2.py',
-   'PYMODULE'),
-  ('encodings.mac_iceland',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_iceland.py',
-   'PYMODULE'),
-  ('encodings.mac_greek',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_greek.py',
-   'PYMODULE'),
-  ('encodings.mac_farsi',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_farsi.py',
-   'PYMODULE'),
-  ('encodings.mac_cyrillic',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_cyrillic.py',
-   'PYMODULE'),
-  ('encodings.mac_croatian',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_croatian.py',
-   'PYMODULE'),
-  ('encodings.mac_arabic',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\mac_arabic.py',
-   'PYMODULE'),
-  ('encodings.latin_1',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\latin_1.py',
-   'PYMODULE'),
-  ('encodings.kz1048',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\kz1048.py',
-   'PYMODULE'),
-  ('encodings.koi8_u',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\koi8_u.py',
-   'PYMODULE'),
-  ('encodings.koi8_t',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\koi8_t.py',
-   'PYMODULE'),
-  ('encodings.koi8_r',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\koi8_r.py',
-   'PYMODULE'),
-  ('encodings.johab',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\johab.py',
-   'PYMODULE'),
-  ('encodings.iso8859_9',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_9.py',
-   'PYMODULE'),
-  ('encodings.iso8859_8',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_8.py',
-   'PYMODULE'),
-  ('encodings.iso8859_7',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_7.py',
-   'PYMODULE'),
-  ('encodings.iso8859_6',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_6.py',
-   'PYMODULE'),
-  ('encodings.iso8859_5',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_5.py',
-   'PYMODULE'),
-  ('encodings.iso8859_4',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_4.py',
-   'PYMODULE'),
-  ('encodings.iso8859_3',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_3.py',
-   'PYMODULE'),
-  ('encodings.iso8859_2',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_2.py',
-   'PYMODULE'),
-  ('encodings.iso8859_16',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_16.py',
-   'PYMODULE'),
-  ('encodings.iso8859_15',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_15.py',
-   'PYMODULE'),
-  ('encodings.iso8859_14',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_14.py',
-   'PYMODULE'),
-  ('encodings.iso8859_13',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_13.py',
-   'PYMODULE'),
-  ('encodings.iso8859_11',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_11.py',
-   'PYMODULE'),
-  ('encodings.iso8859_10',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_10.py',
-   'PYMODULE'),
-  ('encodings.iso8859_1',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso8859_1.py',
-   'PYMODULE'),
-  ('encodings.iso2022_kr',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_kr.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp_ext',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp_ext.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp_3',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp_3.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp_2004',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp_2004.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp_2',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp_2.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp_1',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp_1.py',
-   'PYMODULE'),
-  ('encodings.iso2022_jp',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\iso2022_jp.py',
-   'PYMODULE'),
-  ('encodings.idna',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\idna.py',
-   'PYMODULE'),
-  ('encodings.hz',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\hz.py',
-   'PYMODULE'),
-  ('encodings.hp_roman8',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\hp_roman8.py',
-   'PYMODULE'),
-  ('encodings.hex_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\hex_codec.py',
-   'PYMODULE'),
-  ('encodings.gbk',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\gbk.py',
-   'PYMODULE'),
-  ('encodings.gb2312',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\gb2312.py',
-   'PYMODULE'),
-  ('encodings.gb18030',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\gb18030.py',
-   'PYMODULE'),
-  ('encodings.euc_kr',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\euc_kr.py',
-   'PYMODULE'),
-  ('encodings.euc_jp',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\euc_jp.py',
-   'PYMODULE'),
-  ('encodings.euc_jisx0213',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\euc_jisx0213.py',
-   'PYMODULE'),
-  ('encodings.euc_jis_2004',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\euc_jis_2004.py',
-   'PYMODULE'),
-  ('encodings.cp950',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp950.py',
-   'PYMODULE'),
-  ('encodings.cp949',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp949.py',
-   'PYMODULE'),
-  ('encodings.cp932',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp932.py',
-   'PYMODULE'),
-  ('encodings.cp875',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp875.py',
-   'PYMODULE'),
-  ('encodings.cp874',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp874.py',
-   'PYMODULE'),
-  ('encodings.cp869',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp869.py',
-   'PYMODULE'),
-  ('encodings.cp866',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp866.py',
-   'PYMODULE'),
-  ('encodings.cp865',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp865.py',
-   'PYMODULE'),
-  ('encodings.cp864',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp864.py',
-   'PYMODULE'),
-  ('encodings.cp863',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp863.py',
-   'PYMODULE'),
-  ('encodings.cp862',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp862.py',
-   'PYMODULE'),
-  ('encodings.cp861',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp861.py',
-   'PYMODULE'),
-  ('encodings.cp860',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp860.py',
-   'PYMODULE'),
-  ('encodings.cp858',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp858.py',
-   'PYMODULE'),
-  ('encodings.cp857',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp857.py',
-   'PYMODULE'),
-  ('encodings.cp856',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp856.py',
-   'PYMODULE'),
-  ('encodings.cp855',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp855.py',
-   'PYMODULE'),
-  ('encodings.cp852',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp852.py',
-   'PYMODULE'),
-  ('encodings.cp850',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp850.py',
-   'PYMODULE'),
-  ('encodings.cp775',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp775.py',
-   'PYMODULE'),
-  ('encodings.cp737',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp737.py',
-   'PYMODULE'),
-  ('encodings.cp720',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp720.py',
-   'PYMODULE'),
-  ('encodings.cp500',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp500.py',
-   'PYMODULE'),
-  ('encodings.cp437',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp437.py',
-   'PYMODULE'),
-  ('encodings.cp424',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp424.py',
-   'PYMODULE'),
-  ('encodings.cp273',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp273.py',
-   'PYMODULE'),
-  ('encodings.cp1258',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1258.py',
-   'PYMODULE'),
-  ('encodings.cp1257',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1257.py',
-   'PYMODULE'),
-  ('encodings.cp1256',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1256.py',
-   'PYMODULE'),
-  ('encodings.cp1255',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1255.py',
-   'PYMODULE'),
-  ('encodings.cp1254',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1254.py',
-   'PYMODULE'),
-  ('encodings.cp1253',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1253.py',
-   'PYMODULE'),
-  ('encodings.cp1252',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1252.py',
-   'PYMODULE'),
-  ('encodings.cp1251',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1251.py',
-   'PYMODULE'),
-  ('encodings.cp1250',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1250.py',
-   'PYMODULE'),
-  ('encodings.cp1140',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1140.py',
-   'PYMODULE'),
-  ('encodings.cp1125',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1125.py',
-   'PYMODULE'),
-  ('encodings.cp1026',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1026.py',
-   'PYMODULE'),
-  ('encodings.cp1006',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp1006.py',
-   'PYMODULE'),
-  ('encodings.cp037',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\cp037.py',
-   'PYMODULE'),
-  ('encodings.charmap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\charmap.py',
-   'PYMODULE'),
-  ('encodings.bz2_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\bz2_codec.py',
-   'PYMODULE'),
-  ('encodings.big5hkscs',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\big5hkscs.py',
-   'PYMODULE'),
-  ('encodings.big5',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\big5.py',
-   'PYMODULE'),
-  ('encodings.base64_codec',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\base64_codec.py',
-   'PYMODULE'),
-  ('encodings.ascii',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\ascii.py',
-   'PYMODULE'),
-  ('encodings.aliases',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\aliases.py',
-   'PYMODULE'),
-  ('encodings',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\encodings\\__init__.py',
-   'PYMODULE'),
-  ('keyword',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\keyword.py',
-   'PYMODULE'),
-  ('re._parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\re\\_parser.py',
-   'PYMODULE'),
-  ('re._constants',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\re\\_constants.py',
-   'PYMODULE'),
-  ('re._compiler',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\re\\_compiler.py',
-   'PYMODULE'),
-  ('re._casefix',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\re\\_casefix.py',
-   'PYMODULE'),
-  ('re',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\re\\__init__.py',
-   'PYMODULE'),
-  ('ntpath',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ntpath.py',
-   'PYMODULE'),
-  ('enum',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\enum.py',
-   'PYMODULE'),
-  ('genericpath',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\genericpath.py',
-   'PYMODULE'),
-  ('heapq',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\heapq.py',
-   'PYMODULE'),
-  ('posixpath',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\posixpath.py',
-   'PYMODULE'),
-  ('functools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\functools.py',
-   'PYMODULE'),
-  ('reprlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\reprlib.py',
-   'PYMODULE'),
-  ('os',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\os.py',
-   'PYMODULE')])
Index: ild/sctry/EXE-00.toc
===================================================================
--- build/sctry/EXE-00.toc	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-('C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\dist\\sctry.exe',
- True,
- False,
- False,
- 'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-console.ico',
- None,
- False,
- False,
- b'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<assembly xmlns='
- b'"urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\n  <trustInfo x'
- b'mlns="urn:schemas-microsoft-com:asm.v3">\n    <security>\n      <requested'
- b'Privileges>\n        <requestedExecutionLevel level="asInvoker" uiAccess='
- b'"false"/>\n      </requestedPrivileges>\n    </security>\n  </trustInfo>\n  '
- b'<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">\n    <'
- b'application>\n      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f'
- b'0}"/>\n      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>\n '
- b'     <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>\n      <s'
- b'upportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>\n      <supporte'
- b'dOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>\n    </application>\n  <'
- b'/compatibility>\n  <application xmlns="urn:schemas-microsoft-com:asm.v3">'
- b'\n    <windowsSettings>\n      <longPathAware xmlns="http://schemas.micros'
- b'oft.com/SMI/2016/WindowsSettings">true</longPathAware>\n    </windowsSett'
- b'ings>\n  </application>\n  <dependency>\n    <dependentAssembly>\n      <ass'
- b'emblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version='
- b'"6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" langua'
- b'ge="*"/>\n    </dependentAssembly>\n  </dependency>\n</assembly>',
- True,
- False,
- None,
- None,
- None,
- 'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\sctry.pkg',
- [('pyi-contents-directory _internal', '', 'OPTION'),
-  ('PYZ-00.pyz',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\PYZ-00.pyz',
-   'PYZ'),
-  ('struct',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\struct.pyc',
-   'PYMODULE'),
-  ('pyimod01_archive',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod01_archive.pyc',
-   'PYMODULE'),
-  ('pyimod02_importers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod02_importers.pyc',
-   'PYMODULE'),
-  ('pyimod03_ctypes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod03_ctypes.pyc',
-   'PYMODULE'),
-  ('pyimod04_pywin32',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod04_pywin32.pyc',
-   'PYMODULE'),
-  ('pyiboot01_bootstrap',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
-   'PYSOURCE'),
-  ('pyi_rth_inspect',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
-   'PYSOURCE'),
-  ('pyi_rth_pkgutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
-   'PYSOURCE'),
-  ('pyi_rth_multiprocessing',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py',
-   'PYSOURCE'),
-  ('pyi_rth_setuptools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_setuptools.py',
-   'PYSOURCE'),
-  ('sctry',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\sctry.py',
-   'PYSOURCE'),
-  ('python313.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\python313.dll',
-   'BINARY'),
-  ('_lzma.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_lzma.pyd',
-   'EXTENSION'),
-  ('_bz2.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_bz2.pyd',
-   'EXTENSION'),
-  ('_decimal.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_decimal.pyd',
-   'EXTENSION'),
-  ('_hashlib.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_hashlib.pyd',
-   'EXTENSION'),
-  ('unicodedata.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\unicodedata.pyd',
-   'EXTENSION'),
-  ('_socket.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_socket.pyd',
-   'EXTENSION'),
-  ('select.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\select.pyd',
-   'EXTENSION'),
-  ('_overlapped.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_overlapped.pyd',
-   'EXTENSION'),
-  ('_ssl.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ssl.pyd',
-   'EXTENSION'),
-  ('_queue.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_queue.pyd',
-   'EXTENSION'),
-  ('_ctypes.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ctypes.pyd',
-   'EXTENSION'),
-  ('_multiprocessing.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_multiprocessing.pyd',
-   'EXTENSION'),
-  ('pyexpat.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\pyexpat.pyd',
-   'EXTENSION'),
-  ('_asyncio.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_asyncio.pyd',
-   'EXTENSION'),
-  ('psutil\\_psutil_windows.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_psutil_windows.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('_wmi.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_wmi.pyd',
-   'EXTENSION'),
-  ('VCRUNTIME140.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\VCRUNTIME140.dll',
-   'BINARY'),
-  ('libcrypto-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libcrypto-3.dll',
-   'BINARY'),
-  ('libssl-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libssl-3.dll',
-   'BINARY'),
-  ('libffi-8.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libffi-8.dll',
-   'BINARY'),
-  ('python3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\python3.dll',
-   'BINARY'),
-  ('VCRUNTIME140_1.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\VCRUNTIME140_1.dll',
-   'BINARY'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'DATA'),
-  ('setuptools\\_vendor\\jaraco\\text\\Lorem ipsum.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\text\\Lorem '
-   'ipsum.txt',
-   'DATA'),
-  ('certifi\\py.typed',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\py.typed',
-   'DATA'),
-  ('certifi\\cacert.pem',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\cacert.pem',
-   'DATA'),
-  ('base_library.zip',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\base_library.zip',
-   'DATA')],
- [],
- False,
- False,
- 1769107093,
- [('run.exe',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\bootloader\\Windows-64bit-intel\\run.exe',
-   'EXECUTABLE')],
- 'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\python313.dll')
Index: ild/sctry/PKG-00.toc
===================================================================
--- build/sctry/PKG-00.toc	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,164 +1,0 @@
-('C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\sctry.pkg',
- {'BINARY': True,
-  'DATA': True,
-  'EXECUTABLE': True,
-  'EXTENSION': True,
-  'PYMODULE': True,
-  'PYSOURCE': True,
-  'PYZ': False,
-  'SPLASH': True,
-  'SYMLINK': False},
- [('pyi-contents-directory _internal', '', 'OPTION'),
-  ('PYZ-00.pyz',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\PYZ-00.pyz',
-   'PYZ'),
-  ('struct',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\struct.pyc',
-   'PYMODULE'),
-  ('pyimod01_archive',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod01_archive.pyc',
-   'PYMODULE'),
-  ('pyimod02_importers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod02_importers.pyc',
-   'PYMODULE'),
-  ('pyimod03_ctypes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod03_ctypes.pyc',
-   'PYMODULE'),
-  ('pyimod04_pywin32',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\localpycs\\pyimod04_pywin32.pyc',
-   'PYMODULE'),
-  ('pyiboot01_bootstrap',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
-   'PYSOURCE'),
-  ('pyi_rth_inspect',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
-   'PYSOURCE'),
-  ('pyi_rth_pkgutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
-   'PYSOURCE'),
-  ('pyi_rth_multiprocessing',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py',
-   'PYSOURCE'),
-  ('pyi_rth_setuptools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_setuptools.py',
-   'PYSOURCE'),
-  ('sctry',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\sctry.py',
-   'PYSOURCE'),
-  ('python313.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\python313.dll',
-   'BINARY'),
-  ('_lzma.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_lzma.pyd',
-   'EXTENSION'),
-  ('_bz2.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_bz2.pyd',
-   'EXTENSION'),
-  ('_decimal.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_decimal.pyd',
-   'EXTENSION'),
-  ('_hashlib.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_hashlib.pyd',
-   'EXTENSION'),
-  ('unicodedata.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\unicodedata.pyd',
-   'EXTENSION'),
-  ('_socket.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_socket.pyd',
-   'EXTENSION'),
-  ('select.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\select.pyd',
-   'EXTENSION'),
-  ('_overlapped.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_overlapped.pyd',
-   'EXTENSION'),
-  ('_ssl.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ssl.pyd',
-   'EXTENSION'),
-  ('_queue.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_queue.pyd',
-   'EXTENSION'),
-  ('_ctypes.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_ctypes.pyd',
-   'EXTENSION'),
-  ('_multiprocessing.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_multiprocessing.pyd',
-   'EXTENSION'),
-  ('pyexpat.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\pyexpat.pyd',
-   'EXTENSION'),
-  ('_asyncio.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_asyncio.pyd',
-   'EXTENSION'),
-  ('psutil\\_psutil_windows.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_psutil_windows.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md__mypyc.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('charset_normalizer\\md.cp313-win_amd64.pyd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\md.cp313-win_amd64.pyd',
-   'EXTENSION'),
-  ('_wmi.pyd',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\_wmi.pyd',
-   'EXTENSION'),
-  ('VCRUNTIME140.dll',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Scripts\\VCRUNTIME140.dll',
-   'BINARY'),
-  ('libcrypto-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libcrypto-3.dll',
-   'BINARY'),
-  ('libssl-3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libssl-3.dll',
-   'BINARY'),
-  ('libffi-8.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\DLLs\\libffi-8.dll',
-   'BINARY'),
-  ('python3.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\python3.dll',
-   'BINARY'),
-  ('VCRUNTIME140_1.dll',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\VCRUNTIME140_1.dll',
-   'BINARY'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\top_level.txt',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\licenses\\LICENSE',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\WHEEL',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\METADATA',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\REQUESTED',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\INSTALLER',
-   'DATA'),
-  ('setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata-8.7.1.dist-info\\RECORD',
-   'DATA'),
-  ('setuptools\\_vendor\\jaraco\\text\\Lorem ipsum.txt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\text\\Lorem '
-   'ipsum.txt',
-   'DATA'),
-  ('certifi\\py.typed',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\py.typed',
-   'DATA'),
-  ('certifi\\cacert.pem',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\cacert.pem',
-   'DATA'),
-  ('base_library.zip',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\base_library.zip',
-   'DATA')],
- 'python313.dll',
- False,
- False,
- False,
- [],
- None,
- None,
- None)
Index: ild/sctry/PYZ-00.toc
===================================================================
--- build/sctry/PYZ-00.toc	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1556 +1,0 @@
-('C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\build\\sctry\\PYZ-00.pyz',
- [('__future__',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\__future__.py',
-   'PYMODULE'),
-  ('_aix_support',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_aix_support.py',
-   'PYMODULE'),
-  ('_colorize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_colorize.py',
-   'PYMODULE'),
-  ('_compat_pickle',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_compat_pickle.py',
-   'PYMODULE'),
-  ('_compression',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_compression.py',
-   'PYMODULE'),
-  ('_distutils_hack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_distutils_hack\\__init__.py',
-   'PYMODULE'),
-  ('_distutils_hack.override',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\_distutils_hack\\override.py',
-   'PYMODULE'),
-  ('_ios_support',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_ios_support.py',
-   'PYMODULE'),
-  ('_opcode_metadata',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_opcode_metadata.py',
-   'PYMODULE'),
-  ('_py_abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_py_abc.py',
-   'PYMODULE'),
-  ('_pydatetime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pydatetime.py',
-   'PYMODULE'),
-  ('_pydecimal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pydecimal.py',
-   'PYMODULE'),
-  ('_pyrepl',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\__init__.py',
-   'PYMODULE'),
-  ('_pyrepl._minimal_curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\_minimal_curses.py',
-   'PYMODULE'),
-  ('_pyrepl._threading_handler',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\_threading_handler.py',
-   'PYMODULE'),
-  ('_pyrepl.commands',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\commands.py',
-   'PYMODULE'),
-  ('_pyrepl.completing_reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\completing_reader.py',
-   'PYMODULE'),
-  ('_pyrepl.console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\console.py',
-   'PYMODULE'),
-  ('_pyrepl.curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\curses.py',
-   'PYMODULE'),
-  ('_pyrepl.fancy_termios',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\fancy_termios.py',
-   'PYMODULE'),
-  ('_pyrepl.historical_reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\historical_reader.py',
-   'PYMODULE'),
-  ('_pyrepl.input',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\input.py',
-   'PYMODULE'),
-  ('_pyrepl.keymap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\keymap.py',
-   'PYMODULE'),
-  ('_pyrepl.main',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\main.py',
-   'PYMODULE'),
-  ('_pyrepl.pager',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\pager.py',
-   'PYMODULE'),
-  ('_pyrepl.reader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\reader.py',
-   'PYMODULE'),
-  ('_pyrepl.readline',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\readline.py',
-   'PYMODULE'),
-  ('_pyrepl.simple_interact',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\simple_interact.py',
-   'PYMODULE'),
-  ('_pyrepl.trace',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\trace.py',
-   'PYMODULE'),
-  ('_pyrepl.types',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\types.py',
-   'PYMODULE'),
-  ('_pyrepl.unix_console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\unix_console.py',
-   'PYMODULE'),
-  ('_pyrepl.unix_eventqueue',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\unix_eventqueue.py',
-   'PYMODULE'),
-  ('_pyrepl.utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\utils.py',
-   'PYMODULE'),
-  ('_pyrepl.windows_console',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_pyrepl\\windows_console.py',
-   'PYMODULE'),
-  ('_sitebuiltins',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_sitebuiltins.py',
-   'PYMODULE'),
-  ('_strptime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_strptime.py',
-   'PYMODULE'),
-  ('_threading_local',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\_threading_local.py',
-   'PYMODULE'),
-  ('argparse',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\argparse.py',
-   'PYMODULE'),
-  ('ast',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ast.py',
-   'PYMODULE'),
-  ('asyncio',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\__init__.py',
-   'PYMODULE'),
-  ('asyncio.base_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_events.py',
-   'PYMODULE'),
-  ('asyncio.base_futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_futures.py',
-   'PYMODULE'),
-  ('asyncio.base_subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_subprocess.py',
-   'PYMODULE'),
-  ('asyncio.base_tasks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\base_tasks.py',
-   'PYMODULE'),
-  ('asyncio.constants',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\constants.py',
-   'PYMODULE'),
-  ('asyncio.coroutines',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\coroutines.py',
-   'PYMODULE'),
-  ('asyncio.events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\events.py',
-   'PYMODULE'),
-  ('asyncio.exceptions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\exceptions.py',
-   'PYMODULE'),
-  ('asyncio.format_helpers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\format_helpers.py',
-   'PYMODULE'),
-  ('asyncio.futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\futures.py',
-   'PYMODULE'),
-  ('asyncio.locks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\locks.py',
-   'PYMODULE'),
-  ('asyncio.log',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\log.py',
-   'PYMODULE'),
-  ('asyncio.mixins',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\mixins.py',
-   'PYMODULE'),
-  ('asyncio.proactor_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\proactor_events.py',
-   'PYMODULE'),
-  ('asyncio.protocols',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\protocols.py',
-   'PYMODULE'),
-  ('asyncio.queues',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\queues.py',
-   'PYMODULE'),
-  ('asyncio.runners',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\runners.py',
-   'PYMODULE'),
-  ('asyncio.selector_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\selector_events.py',
-   'PYMODULE'),
-  ('asyncio.sslproto',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\sslproto.py',
-   'PYMODULE'),
-  ('asyncio.staggered',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\staggered.py',
-   'PYMODULE'),
-  ('asyncio.streams',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\streams.py',
-   'PYMODULE'),
-  ('asyncio.subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\subprocess.py',
-   'PYMODULE'),
-  ('asyncio.taskgroups',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\taskgroups.py',
-   'PYMODULE'),
-  ('asyncio.tasks',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\tasks.py',
-   'PYMODULE'),
-  ('asyncio.threads',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\threads.py',
-   'PYMODULE'),
-  ('asyncio.timeouts',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\timeouts.py',
-   'PYMODULE'),
-  ('asyncio.transports',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\transports.py',
-   'PYMODULE'),
-  ('asyncio.trsock',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\trsock.py',
-   'PYMODULE'),
-  ('asyncio.unix_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\unix_events.py',
-   'PYMODULE'),
-  ('asyncio.windows_events',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\windows_events.py',
-   'PYMODULE'),
-  ('asyncio.windows_utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\asyncio\\windows_utils.py',
-   'PYMODULE'),
-  ('base64',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\base64.py',
-   'PYMODULE'),
-  ('bisect',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\bisect.py',
-   'PYMODULE'),
-  ('bz2',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\bz2.py',
-   'PYMODULE'),
-  ('calendar',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\calendar.py',
-   'PYMODULE'),
-  ('certifi',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\__init__.py',
-   'PYMODULE'),
-  ('certifi.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\certifi\\core.py',
-   'PYMODULE'),
-  ('charset_normalizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\__init__.py',
-   'PYMODULE'),
-  ('charset_normalizer.api',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\api.py',
-   'PYMODULE'),
-  ('charset_normalizer.cd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\cd.py',
-   'PYMODULE'),
-  ('charset_normalizer.constant',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\constant.py',
-   'PYMODULE'),
-  ('charset_normalizer.legacy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\legacy.py',
-   'PYMODULE'),
-  ('charset_normalizer.models',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\models.py',
-   'PYMODULE'),
-  ('charset_normalizer.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\utils.py',
-   'PYMODULE'),
-  ('charset_normalizer.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\charset_normalizer\\version.py',
-   'PYMODULE'),
-  ('code',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\code.py',
-   'PYMODULE'),
-  ('codeop',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\codeop.py',
-   'PYMODULE'),
-  ('concurrent',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\__init__.py',
-   'PYMODULE'),
-  ('concurrent.futures',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\__init__.py',
-   'PYMODULE'),
-  ('concurrent.futures._base',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\_base.py',
-   'PYMODULE'),
-  ('concurrent.futures.process',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\process.py',
-   'PYMODULE'),
-  ('concurrent.futures.thread',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\concurrent\\futures\\thread.py',
-   'PYMODULE'),
-  ('configparser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\configparser.py',
-   'PYMODULE'),
-  ('contextlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\contextlib.py',
-   'PYMODULE'),
-  ('contextvars',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\contextvars.py',
-   'PYMODULE'),
-  ('copy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\copy.py',
-   'PYMODULE'),
-  ('csv',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\csv.py',
-   'PYMODULE'),
-  ('ctypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\__init__.py',
-   'PYMODULE'),
-  ('ctypes._aix',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\_aix.py',
-   'PYMODULE'),
-  ('ctypes._endian',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\_endian.py',
-   'PYMODULE'),
-  ('ctypes.macholib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\__init__.py',
-   'PYMODULE'),
-  ('ctypes.macholib.dyld',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\dyld.py',
-   'PYMODULE'),
-  ('ctypes.macholib.dylib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\dylib.py',
-   'PYMODULE'),
-  ('ctypes.macholib.framework',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\macholib\\framework.py',
-   'PYMODULE'),
-  ('ctypes.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\util.py',
-   'PYMODULE'),
-  ('ctypes.wintypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ctypes\\wintypes.py',
-   'PYMODULE'),
-  ('curses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\curses\\__init__.py',
-   'PYMODULE'),
-  ('curses.has_key',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\curses\\has_key.py',
-   'PYMODULE'),
-  ('dataclasses',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\dataclasses.py',
-   'PYMODULE'),
-  ('datetime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\datetime.py',
-   'PYMODULE'),
-  ('decimal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\decimal.py',
-   'PYMODULE'),
-  ('difflib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\difflib.py',
-   'PYMODULE'),
-  ('dis',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\dis.py',
-   'PYMODULE'),
-  ('email',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\__init__.py',
-   'PYMODULE'),
-  ('email._encoded_words',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_encoded_words.py',
-   'PYMODULE'),
-  ('email._header_value_parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_header_value_parser.py',
-   'PYMODULE'),
-  ('email._parseaddr',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_parseaddr.py',
-   'PYMODULE'),
-  ('email._policybase',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\_policybase.py',
-   'PYMODULE'),
-  ('email.base64mime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\base64mime.py',
-   'PYMODULE'),
-  ('email.charset',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\charset.py',
-   'PYMODULE'),
-  ('email.contentmanager',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\contentmanager.py',
-   'PYMODULE'),
-  ('email.encoders',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\encoders.py',
-   'PYMODULE'),
-  ('email.errors',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\errors.py',
-   'PYMODULE'),
-  ('email.feedparser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\feedparser.py',
-   'PYMODULE'),
-  ('email.generator',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\generator.py',
-   'PYMODULE'),
-  ('email.header',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\header.py',
-   'PYMODULE'),
-  ('email.headerregistry',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\headerregistry.py',
-   'PYMODULE'),
-  ('email.iterators',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\iterators.py',
-   'PYMODULE'),
-  ('email.message',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\message.py',
-   'PYMODULE'),
-  ('email.parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\parser.py',
-   'PYMODULE'),
-  ('email.policy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\policy.py',
-   'PYMODULE'),
-  ('email.quoprimime',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\quoprimime.py',
-   'PYMODULE'),
-  ('email.utils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\email\\utils.py',
-   'PYMODULE'),
-  ('fnmatch',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\fnmatch.py',
-   'PYMODULE'),
-  ('fractions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\fractions.py',
-   'PYMODULE'),
-  ('ftplib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ftplib.py',
-   'PYMODULE'),
-  ('getopt',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\getopt.py',
-   'PYMODULE'),
-  ('getpass',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\getpass.py',
-   'PYMODULE'),
-  ('gettext',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\gettext.py',
-   'PYMODULE'),
-  ('glob',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\glob.py',
-   'PYMODULE'),
-  ('gzip',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\gzip.py',
-   'PYMODULE'),
-  ('hashlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\hashlib.py',
-   'PYMODULE'),
-  ('hmac',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\hmac.py',
-   'PYMODULE'),
-  ('html',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\html\\__init__.py',
-   'PYMODULE'),
-  ('html.entities',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\html\\entities.py',
-   'PYMODULE'),
-  ('http',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\__init__.py',
-   'PYMODULE'),
-  ('http.client',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\client.py',
-   'PYMODULE'),
-  ('http.cookiejar',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\cookiejar.py',
-   'PYMODULE'),
-  ('http.cookies',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\cookies.py',
-   'PYMODULE'),
-  ('http.server',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\server.py',
-   'PYMODULE'),
-  ('idna',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\__init__.py',
-   'PYMODULE'),
-  ('idna.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\core.py',
-   'PYMODULE'),
-  ('idna.idnadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\idnadata.py',
-   'PYMODULE'),
-  ('idna.intranges',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\intranges.py',
-   'PYMODULE'),
-  ('idna.package_data',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\package_data.py',
-   'PYMODULE'),
-  ('idna.uts46data',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\idna\\uts46data.py',
-   'PYMODULE'),
-  ('importlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\__init__.py',
-   'PYMODULE'),
-  ('importlib._abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_abc.py',
-   'PYMODULE'),
-  ('importlib._bootstrap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_bootstrap.py',
-   'PYMODULE'),
-  ('importlib._bootstrap_external',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\_bootstrap_external.py',
-   'PYMODULE'),
-  ('importlib.abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\abc.py',
-   'PYMODULE'),
-  ('importlib.machinery',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\machinery.py',
-   'PYMODULE'),
-  ('importlib.metadata',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\__init__.py',
-   'PYMODULE'),
-  ('importlib.metadata._adapters',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_adapters.py',
-   'PYMODULE'),
-  ('importlib.metadata._collections',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_collections.py',
-   'PYMODULE'),
-  ('importlib.metadata._functools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_functools.py',
-   'PYMODULE'),
-  ('importlib.metadata._itertools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_itertools.py',
-   'PYMODULE'),
-  ('importlib.metadata._meta',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_meta.py',
-   'PYMODULE'),
-  ('importlib.metadata._text',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\metadata\\_text.py',
-   'PYMODULE'),
-  ('importlib.readers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\readers.py',
-   'PYMODULE'),
-  ('importlib.resources',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\__init__.py',
-   'PYMODULE'),
-  ('importlib.resources._adapters',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_adapters.py',
-   'PYMODULE'),
-  ('importlib.resources._common',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_common.py',
-   'PYMODULE'),
-  ('importlib.resources._functional',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_functional.py',
-   'PYMODULE'),
-  ('importlib.resources._itertools',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\_itertools.py',
-   'PYMODULE'),
-  ('importlib.resources.abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\abc.py',
-   'PYMODULE'),
-  ('importlib.resources.readers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\resources\\readers.py',
-   'PYMODULE'),
-  ('importlib.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\importlib\\util.py',
-   'PYMODULE'),
-  ('inspect',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\inspect.py',
-   'PYMODULE'),
-  ('ipaddress',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ipaddress.py',
-   'PYMODULE'),
-  ('json',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\__init__.py',
-   'PYMODULE'),
-  ('json.decoder',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\decoder.py',
-   'PYMODULE'),
-  ('json.encoder',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\encoder.py',
-   'PYMODULE'),
-  ('json.scanner',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\json\\scanner.py',
-   'PYMODULE'),
-  ('logging',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\logging\\__init__.py',
-   'PYMODULE'),
-  ('lzma',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\lzma.py',
-   'PYMODULE'),
-  ('mimetypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\mimetypes.py',
-   'PYMODULE'),
-  ('multiprocessing',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\__init__.py',
-   'PYMODULE'),
-  ('multiprocessing.connection',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\connection.py',
-   'PYMODULE'),
-  ('multiprocessing.context',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\context.py',
-   'PYMODULE'),
-  ('multiprocessing.dummy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\dummy\\__init__.py',
-   'PYMODULE'),
-  ('multiprocessing.dummy.connection',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\dummy\\connection.py',
-   'PYMODULE'),
-  ('multiprocessing.forkserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\forkserver.py',
-   'PYMODULE'),
-  ('multiprocessing.heap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\heap.py',
-   'PYMODULE'),
-  ('multiprocessing.managers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\managers.py',
-   'PYMODULE'),
-  ('multiprocessing.pool',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\pool.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_fork',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_fork.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_forkserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_forkserver.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_spawn_posix',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_spawn_posix.py',
-   'PYMODULE'),
-  ('multiprocessing.popen_spawn_win32',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\popen_spawn_win32.py',
-   'PYMODULE'),
-  ('multiprocessing.process',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\process.py',
-   'PYMODULE'),
-  ('multiprocessing.queues',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\queues.py',
-   'PYMODULE'),
-  ('multiprocessing.reduction',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\reduction.py',
-   'PYMODULE'),
-  ('multiprocessing.resource_sharer',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\resource_sharer.py',
-   'PYMODULE'),
-  ('multiprocessing.resource_tracker',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\resource_tracker.py',
-   'PYMODULE'),
-  ('multiprocessing.shared_memory',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\shared_memory.py',
-   'PYMODULE'),
-  ('multiprocessing.sharedctypes',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\sharedctypes.py',
-   'PYMODULE'),
-  ('multiprocessing.spawn',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\spawn.py',
-   'PYMODULE'),
-  ('multiprocessing.synchronize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\synchronize.py',
-   'PYMODULE'),
-  ('multiprocessing.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\multiprocessing\\util.py',
-   'PYMODULE'),
-  ('netrc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\netrc.py',
-   'PYMODULE'),
-  ('nturl2path',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\nturl2path.py',
-   'PYMODULE'),
-  ('numbers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\numbers.py',
-   'PYMODULE'),
-  ('opcode',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\opcode.py',
-   'PYMODULE'),
-  ('packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('packaging.licenses',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\licenses\\__init__.py',
-   'PYMODULE'),
-  ('packaging.licenses._spdx',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\licenses\\_spdx.py',
-   'PYMODULE'),
-  ('packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\markers.py',
-   'PYMODULE'),
-  ('packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\tags.py',
-   'PYMODULE'),
-  ('packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\utils.py',
-   'PYMODULE'),
-  ('packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\packaging\\version.py',
-   'PYMODULE'),
-  ('pathlib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\__init__.py',
-   'PYMODULE'),
-  ('pathlib._abc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\_abc.py',
-   'PYMODULE'),
-  ('pathlib._local',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pathlib\\_local.py',
-   'PYMODULE'),
-  ('pickle',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pickle.py',
-   'PYMODULE'),
-  ('pkgutil',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pkgutil.py',
-   'PYMODULE'),
-  ('platform',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\platform.py',
-   'PYMODULE'),
-  ('pprint',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pprint.py',
-   'PYMODULE'),
-  ('psutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\__init__.py',
-   'PYMODULE'),
-  ('psutil._common',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_common.py',
-   'PYMODULE'),
-  ('psutil._pswindows',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\psutil\\_pswindows.py',
-   'PYMODULE'),
-  ('py_compile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\py_compile.py',
-   'PYMODULE'),
-  ('pydoc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc.py',
-   'PYMODULE'),
-  ('pydoc_data',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc_data\\__init__.py',
-   'PYMODULE'),
-  ('pydoc_data.topics',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\pydoc_data\\topics.py',
-   'PYMODULE'),
-  ('queue',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\queue.py',
-   'PYMODULE'),
-  ('quopri',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\quopri.py',
-   'PYMODULE'),
-  ('random',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\random.py',
-   'PYMODULE'),
-  ('requests',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\__init__.py',
-   'PYMODULE'),
-  ('requests.__version__',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\__version__.py',
-   'PYMODULE'),
-  ('requests._internal_utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\_internal_utils.py',
-   'PYMODULE'),
-  ('requests.adapters',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\adapters.py',
-   'PYMODULE'),
-  ('requests.api',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\api.py',
-   'PYMODULE'),
-  ('requests.auth',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\auth.py',
-   'PYMODULE'),
-  ('requests.certs',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\certs.py',
-   'PYMODULE'),
-  ('requests.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\compat.py',
-   'PYMODULE'),
-  ('requests.cookies',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\cookies.py',
-   'PYMODULE'),
-  ('requests.exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\exceptions.py',
-   'PYMODULE'),
-  ('requests.hooks',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\hooks.py',
-   'PYMODULE'),
-  ('requests.models',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\models.py',
-   'PYMODULE'),
-  ('requests.packages',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\packages.py',
-   'PYMODULE'),
-  ('requests.sessions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\sessions.py',
-   'PYMODULE'),
-  ('requests.status_codes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\status_codes.py',
-   'PYMODULE'),
-  ('requests.structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\structures.py',
-   'PYMODULE'),
-  ('requests.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\requests\\utils.py',
-   'PYMODULE'),
-  ('rlcompleter',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\rlcompleter.py',
-   'PYMODULE'),
-  ('runpy',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\runpy.py',
-   'PYMODULE'),
-  ('secrets',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\secrets.py',
-   'PYMODULE'),
-  ('selectors',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\selectors.py',
-   'PYMODULE'),
-  ('setuptools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._core_metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_core_metadata.py',
-   'PYMODULE'),
-  ('setuptools._discovery',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_discovery.py',
-   'PYMODULE'),
-  ('setuptools._distutils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils._log',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_log.py',
-   'PYMODULE'),
-  ('setuptools._distutils._modified',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_modified.py',
-   'PYMODULE'),
-  ('setuptools._distutils._msvccompiler',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\_msvccompiler.py',
-   'PYMODULE'),
-  ('setuptools._distutils.archive_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\archive_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.ccompiler',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\ccompiler.py',
-   'PYMODULE'),
-  ('setuptools._distutils.cmd',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\cmd.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.bdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\bdist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.build',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\build.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.build_ext',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\build_ext.py',
-   'PYMODULE'),
-  ('setuptools._distutils.command.sdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\command\\sdist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compat.numpy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\numpy.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers', '-', 'PYMODULE'),
-  ('setuptools._distutils.compilers.C', '-', 'PYMODULE'),
-  ('setuptools._distutils.compilers.C.base',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\base.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers.C.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\errors.py',
-   'PYMODULE'),
-  ('setuptools._distutils.compilers.C.msvc',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\compilers\\C\\msvc.py',
-   'PYMODULE'),
-  ('setuptools._distutils.core',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\core.py',
-   'PYMODULE'),
-  ('setuptools._distutils.debug',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\debug.py',
-   'PYMODULE'),
-  ('setuptools._distutils.dir_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\dir_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.dist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\dist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\errors.py',
-   'PYMODULE'),
-  ('setuptools._distutils.extension',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\extension.py',
-   'PYMODULE'),
-  ('setuptools._distutils.fancy_getopt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\fancy_getopt.py',
-   'PYMODULE'),
-  ('setuptools._distutils.file_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\file_util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.filelist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\filelist.py',
-   'PYMODULE'),
-  ('setuptools._distutils.log',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\log.py',
-   'PYMODULE'),
-  ('setuptools._distutils.spawn',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\spawn.py',
-   'PYMODULE'),
-  ('setuptools._distutils.sysconfig',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\sysconfig.py',
-   'PYMODULE'),
-  ('setuptools._distutils.text_file',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\text_file.py',
-   'PYMODULE'),
-  ('setuptools._distutils.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\util.py',
-   'PYMODULE'),
-  ('setuptools._distutils.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\version.py',
-   'PYMODULE'),
-  ('setuptools._distutils.versionpredicate',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_distutils\\versionpredicate.py',
-   'PYMODULE'),
-  ('setuptools._entry_points',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_entry_points.py',
-   'PYMODULE'),
-  ('setuptools._imp',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_imp.py',
-   'PYMODULE'),
-  ('setuptools._importlib',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_importlib.py',
-   'PYMODULE'),
-  ('setuptools._itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_itertools.py',
-   'PYMODULE'),
-  ('setuptools._normalization',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_normalization.py',
-   'PYMODULE'),
-  ('setuptools._path',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_path.py',
-   'PYMODULE'),
-  ('setuptools._reqs',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_reqs.py',
-   'PYMODULE'),
-  ('setuptools._shutil',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_shutil.py',
-   'PYMODULE'),
-  ('setuptools._static',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_static.py',
-   'PYMODULE'),
-  ('setuptools._vendor', '-', 'PYMODULE'),
-  ('setuptools._vendor.backports',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.backports.tarfile.compat.py38',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\backports\\tarfile\\compat\\py38.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._adapters',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_adapters.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._collections',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_collections.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_compat.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_functools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_itertools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._meta',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_meta.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._text',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_text.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata._typing',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_typing.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat.py311',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\py311.py',
-   'PYMODULE'),
-  ('setuptools._vendor.importlib_metadata.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco', '-', 'PYMODULE'),
-  ('setuptools._vendor.jaraco.context',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\context\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco.functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\functools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.jaraco.text',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\text\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools.more',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\more.py',
-   'PYMODULE'),
-  ('setuptools._vendor.more_itertools.recipes',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\more_itertools\\recipes.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\markers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\utils.py',
-   'PYMODULE'),
-  ('setuptools._vendor.packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\packaging\\version.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._re',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_re.py',
-   'PYMODULE'),
-  ('setuptools._vendor.tomli._types',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\tomli\\_types.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.convert',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\convert.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.pack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\pack.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.cli.unpack',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\cli\\unpack.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.macosx_libfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\macosx_libfile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.metadata',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\metadata.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\util.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._elffile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_elffile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._manylinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_manylinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._musllinux',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_musllinux.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._parser',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_parser.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._structures',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_structures.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging._tokenizer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\_tokenizer.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.markers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\markers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.requirements',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\requirements.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.specifiers',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\specifiers.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.tags',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\tags.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\utils.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.vendored.packaging.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\vendored\\packaging\\version.py',
-   'PYMODULE'),
-  ('setuptools._vendor.wheel.wheelfile',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\wheel\\wheelfile.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp._functools',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\_functools.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.overlay',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\overlay.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.py310',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py310.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.compat.py313',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py313.py',
-   'PYMODULE'),
-  ('setuptools._vendor.zipp.glob',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\glob.py',
-   'PYMODULE'),
-  ('setuptools.archive_util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\archive_util.py',
-   'PYMODULE'),
-  ('setuptools.command',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.command._requirestxt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\_requirestxt.py',
-   'PYMODULE'),
-  ('setuptools.command.bdist_egg',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\bdist_egg.py',
-   'PYMODULE'),
-  ('setuptools.command.bdist_wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\bdist_wheel.py',
-   'PYMODULE'),
-  ('setuptools.command.build',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\build.py',
-   'PYMODULE'),
-  ('setuptools.command.egg_info',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\egg_info.py',
-   'PYMODULE'),
-  ('setuptools.command.sdist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\sdist.py',
-   'PYMODULE'),
-  ('setuptools.command.setopt',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\command\\setopt.py',
-   'PYMODULE'),
-  ('setuptools.compat',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.compat.py310',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py310.py',
-   'PYMODULE'),
-  ('setuptools.compat.py311',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py311.py',
-   'PYMODULE'),
-  ('setuptools.compat.py39',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\compat\\py39.py',
-   'PYMODULE'),
-  ('setuptools.config',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.config._apply_pyprojecttoml',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_apply_pyprojecttoml.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\__init__.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.error_reporting',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\error_reporting.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.extra_validations',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\extra_validations.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.fastjsonschema_exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\fastjsonschema_exceptions.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.fastjsonschema_validations',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\fastjsonschema_validations.py',
-   'PYMODULE'),
-  ('setuptools.config._validate_pyproject.formats',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\_validate_pyproject\\formats.py',
-   'PYMODULE'),
-  ('setuptools.config.expand',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\expand.py',
-   'PYMODULE'),
-  ('setuptools.config.pyprojecttoml',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\pyprojecttoml.py',
-   'PYMODULE'),
-  ('setuptools.config.setupcfg',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\config\\setupcfg.py',
-   'PYMODULE'),
-  ('setuptools.depends',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\depends.py',
-   'PYMODULE'),
-  ('setuptools.discovery',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\discovery.py',
-   'PYMODULE'),
-  ('setuptools.dist',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\dist.py',
-   'PYMODULE'),
-  ('setuptools.errors',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\errors.py',
-   'PYMODULE'),
-  ('setuptools.extension',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\extension.py',
-   'PYMODULE'),
-  ('setuptools.glob',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\glob.py',
-   'PYMODULE'),
-  ('setuptools.installer',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\installer.py',
-   'PYMODULE'),
-  ('setuptools.logging',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\logging.py',
-   'PYMODULE'),
-  ('setuptools.monkey',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\monkey.py',
-   'PYMODULE'),
-  ('setuptools.msvc',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\msvc.py',
-   'PYMODULE'),
-  ('setuptools.unicode_utils',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\unicode_utils.py',
-   'PYMODULE'),
-  ('setuptools.version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\version.py',
-   'PYMODULE'),
-  ('setuptools.warnings',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\warnings.py',
-   'PYMODULE'),
-  ('setuptools.wheel',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\wheel.py',
-   'PYMODULE'),
-  ('setuptools.windows_support',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\setuptools\\windows_support.py',
-   'PYMODULE'),
-  ('shlex',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\shlex.py',
-   'PYMODULE'),
-  ('shutil',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\shutil.py',
-   'PYMODULE'),
-  ('signal',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\signal.py',
-   'PYMODULE'),
-  ('site',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site.py',
-   'PYMODULE'),
-  ('socket',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\socket.py',
-   'PYMODULE'),
-  ('socketserver',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\socketserver.py',
-   'PYMODULE'),
-  ('ssl',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ssl.py',
-   'PYMODULE'),
-  ('statistics',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\statistics.py',
-   'PYMODULE'),
-  ('string',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\string.py',
-   'PYMODULE'),
-  ('stringprep',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\stringprep.py',
-   'PYMODULE'),
-  ('subprocess',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\subprocess.py',
-   'PYMODULE'),
-  ('sysconfig',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\sysconfig\\__init__.py',
-   'PYMODULE'),
-  ('tarfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tarfile.py',
-   'PYMODULE'),
-  ('tempfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tempfile.py',
-   'PYMODULE'),
-  ('textwrap',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\textwrap.py',
-   'PYMODULE'),
-  ('threading',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\threading.py',
-   'PYMODULE'),
-  ('token',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\token.py',
-   'PYMODULE'),
-  ('tokenize',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tokenize.py',
-   'PYMODULE'),
-  ('tomllib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\__init__.py',
-   'PYMODULE'),
-  ('tomllib._parser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_parser.py',
-   'PYMODULE'),
-  ('tomllib._re',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_re.py',
-   'PYMODULE'),
-  ('tomllib._types',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tomllib\\_types.py',
-   'PYMODULE'),
-  ('tracemalloc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tracemalloc.py',
-   'PYMODULE'),
-  ('tty',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\tty.py',
-   'PYMODULE'),
-  ('typing',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\typing.py',
-   'PYMODULE'),
-  ('typing_extensions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\typing_extensions.py',
-   'PYMODULE'),
-  ('unittest',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\__init__.py',
-   'PYMODULE'),
-  ('unittest._log',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\_log.py',
-   'PYMODULE'),
-  ('unittest.async_case',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\async_case.py',
-   'PYMODULE'),
-  ('unittest.case',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\case.py',
-   'PYMODULE'),
-  ('unittest.loader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\loader.py',
-   'PYMODULE'),
-  ('unittest.main',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\main.py',
-   'PYMODULE'),
-  ('unittest.mock',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\mock.py',
-   'PYMODULE'),
-  ('unittest.result',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\result.py',
-   'PYMODULE'),
-  ('unittest.runner',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\runner.py',
-   'PYMODULE'),
-  ('unittest.signals',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\signals.py',
-   'PYMODULE'),
-  ('unittest.suite',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\suite.py',
-   'PYMODULE'),
-  ('unittest.util',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\unittest\\util.py',
-   'PYMODULE'),
-  ('urllib',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\__init__.py',
-   'PYMODULE'),
-  ('urllib.error',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\error.py',
-   'PYMODULE'),
-  ('urllib.parse',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\parse.py',
-   'PYMODULE'),
-  ('urllib.request',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\request.py',
-   'PYMODULE'),
-  ('urllib.response',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\urllib\\response.py',
-   'PYMODULE'),
-  ('urllib3',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\__init__.py',
-   'PYMODULE'),
-  ('urllib3._base_connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_base_connection.py',
-   'PYMODULE'),
-  ('urllib3._collections',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_collections.py',
-   'PYMODULE'),
-  ('urllib3._request_methods',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_request_methods.py',
-   'PYMODULE'),
-  ('urllib3._version',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\_version.py',
-   'PYMODULE'),
-  ('urllib3.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\connection.py',
-   'PYMODULE'),
-  ('urllib3.connectionpool',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\connectionpool.py',
-   'PYMODULE'),
-  ('urllib3.contrib',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\connection.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.fetch',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\fetch.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.request',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\request.py',
-   'PYMODULE'),
-  ('urllib3.contrib.emscripten.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\emscripten\\response.py',
-   'PYMODULE'),
-  ('urllib3.contrib.pyopenssl',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\pyopenssl.py',
-   'PYMODULE'),
-  ('urllib3.contrib.socks',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\contrib\\socks.py',
-   'PYMODULE'),
-  ('urllib3.exceptions',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\exceptions.py',
-   'PYMODULE'),
-  ('urllib3.fields',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\fields.py',
-   'PYMODULE'),
-  ('urllib3.filepost',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\filepost.py',
-   'PYMODULE'),
-  ('urllib3.http2',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.http2.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\connection.py',
-   'PYMODULE'),
-  ('urllib3.http2.probe',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\http2\\probe.py',
-   'PYMODULE'),
-  ('urllib3.poolmanager',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\poolmanager.py',
-   'PYMODULE'),
-  ('urllib3.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\response.py',
-   'PYMODULE'),
-  ('urllib3.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\__init__.py',
-   'PYMODULE'),
-  ('urllib3.util.connection',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\connection.py',
-   'PYMODULE'),
-  ('urllib3.util.proxy',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\proxy.py',
-   'PYMODULE'),
-  ('urllib3.util.request',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\request.py',
-   'PYMODULE'),
-  ('urllib3.util.response',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\response.py',
-   'PYMODULE'),
-  ('urllib3.util.retry',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\retry.py',
-   'PYMODULE'),
-  ('urllib3.util.ssl_',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssl_.py',
-   'PYMODULE'),
-  ('urllib3.util.ssl_match_hostname',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssl_match_hostname.py',
-   'PYMODULE'),
-  ('urllib3.util.ssltransport',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\ssltransport.py',
-   'PYMODULE'),
-  ('urllib3.util.timeout',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\timeout.py',
-   'PYMODULE'),
-  ('urllib3.util.url',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\url.py',
-   'PYMODULE'),
-  ('urllib3.util.util',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\util.py',
-   'PYMODULE'),
-  ('urllib3.util.wait',
-   'C:\\Users\\Ilina\\PycharmProjects\\DjangoProject\\Proekt_Wazuh\\.venv\\Lib\\site-packages\\urllib3\\util\\wait.py',
-   'PYMODULE'),
-  ('webbrowser',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\webbrowser.py',
-   'PYMODULE'),
-  ('xml',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\__init__.py',
-   'PYMODULE'),
-  ('xml.parsers',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\parsers\\__init__.py',
-   'PYMODULE'),
-  ('xml.parsers.expat',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\parsers\\expat.py',
-   'PYMODULE'),
-  ('xml.sax',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\__init__.py',
-   'PYMODULE'),
-  ('xml.sax._exceptions',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\_exceptions.py',
-   'PYMODULE'),
-  ('xml.sax.expatreader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\expatreader.py',
-   'PYMODULE'),
-  ('xml.sax.handler',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\handler.py',
-   'PYMODULE'),
-  ('xml.sax.saxutils',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\saxutils.py',
-   'PYMODULE'),
-  ('xml.sax.xmlreader',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xml\\sax\\xmlreader.py',
-   'PYMODULE'),
-  ('xmlrpc',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xmlrpc\\__init__.py',
-   'PYMODULE'),
-  ('xmlrpc.client',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\xmlrpc\\client.py',
-   'PYMODULE'),
-  ('zipfile',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\__init__.py',
-   'PYMODULE'),
-  ('zipfile._path',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\_path\\__init__.py',
-   'PYMODULE'),
-  ('zipfile._path.glob',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipfile\\_path\\glob.py',
-   'PYMODULE'),
-  ('zipimport',
-   'C:\\Users\\Ilina\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\zipimport.py',
-   'PYMODULE')])
Index: ild/sctry/warn-sctry.txt
===================================================================
--- build/sctry/warn-sctry.txt	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-
-This file lists modules PyInstaller was not able to find. This does not
-necessarily mean these modules are required for running your program. Both
-Python's standard library and 3rd-party Python packages often conditionally
-import optional modules, some of which may be available only on certain
-platforms.
-
-Types of import:
-* top-level: imported at the top-level - look at these first
-* conditional: imported within an if-statement
-* delayed: imported within a function
-* optional: imported within a try-except-statement
-
-IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
-            tracking down the missing module yourself. Thanks!
-
-missing module named pwd - imported by posixpath (delayed, conditional, optional), shutil (delayed, optional), tarfile (optional), pathlib._local (optional), subprocess (delayed, conditional, optional), setuptools._distutils.util (delayed, conditional, optional), netrc (delayed, conditional), getpass (delayed, optional), setuptools._vendor.backports.tarfile (optional), setuptools._distutils.archive_util (optional), psutil (optional), http.server (delayed, optional)
-missing module named grp - imported by shutil (delayed, optional), tarfile (optional), pathlib._local (optional), subprocess (delayed, conditional, optional), setuptools._vendor.backports.tarfile (optional), setuptools._distutils.archive_util (optional)
-missing module named 'collections.abc' - imported by traceback (top-level), inspect (top-level), logging (top-level), typing (top-level), importlib.resources.readers (top-level), selectors (top-level), tracemalloc (top-level), http.client (top-level), setuptools (top-level), setuptools._distutils.filelist (top-level), setuptools._distutils.util (top-level), setuptools._vendor.jaraco.functools (top-level), setuptools._vendor.more_itertools.more (top-level), setuptools._distutils._modified (top-level), setuptools._distutils.compat (top-level), setuptools._distutils.spawn (top-level), typing_extensions (top-level), asyncio.base_events (top-level), asyncio.coroutines (top-level), setuptools._distutils.compilers.C.base (top-level), setuptools._distutils.fancy_getopt (top-level), setuptools._reqs (top-level), setuptools._vendor.jaraco.context (top-level), setuptools.discovery (top-level), setuptools.dist (top-level), setuptools._vendor.importlib_metadata (top-level), setuptools._vendor.importlib_metadata._meta (top-level), setuptools._distutils.command.bdist (top-level), setuptools._distutils.core (top-level), setuptools._distutils.cmd (top-level), setuptools._distutils.dist (top-level), configparser (top-level), setuptools._distutils.extension (top-level), setuptools.config.setupcfg (top-level), setuptools.config.expand (top-level), setuptools.config.pyprojecttoml (top-level), setuptools.config._apply_pyprojecttoml (top-level), setuptools.extension (top-level), tomllib._parser (top-level), setuptools._vendor.tomli._parser (conditional), setuptools.wheel (top-level), setuptools.command.egg_info (top-level), setuptools.command.bdist_egg (top-level), setuptools.command.sdist (top-level), setuptools._distutils.command.build (top-level), setuptools._distutils.command.sdist (top-level), setuptools.glob (top-level), setuptools.command._requirestxt (top-level), setuptools.command.bdist_wheel (top-level), setuptools._vendor.wheel.cli.convert (top-level), setuptools._vendor.wheel.cli.tags (top-level), requests.compat (top-level), setuptools._distutils.command.build_ext (top-level), _pyrepl.types (top-level), _pyrepl.readline (top-level), setuptools._distutils.compilers.C.msvc (top-level)
-missing module named posix - imported by os (conditional, optional), posixpath (optional), shutil (conditional), importlib._bootstrap_external (conditional), _pyrepl.unix_console (delayed, optional)
-missing module named resource - imported by posix (top-level)
-missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
-excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
-missing module named _posixshmem - imported by multiprocessing.resource_tracker (conditional), multiprocessing.shared_memory (conditional)
-missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
-missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
-missing module named _posixsubprocess - imported by subprocess (conditional), multiprocessing.util (delayed)
-missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level)
-missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level)
-missing module named _scproxy - imported by urllib.request (conditional)
-missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
-missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
-missing module named asyncio.DefaultEventLoopPolicy - imported by asyncio (delayed, conditional), asyncio.events (delayed, conditional)
-missing module named annotationlib - imported by typing_extensions (conditional)
-missing module named _typeshed - imported by setuptools._distutils.dist (conditional), setuptools.command.bdist_egg (conditional), setuptools.glob (conditional), setuptools.compat.py311 (conditional)
-missing module named usercustomize - imported by site (delayed, optional)
-missing module named sitecustomize - imported by site (delayed, optional)
-missing module named _curses - imported by curses (top-level), curses.has_key (top-level), _pyrepl.curses (optional)
-missing module named termios - imported by getpass (optional), tty (top-level), _pyrepl.pager (delayed, optional), _pyrepl.unix_console (top-level), _pyrepl.fancy_termios (top-level), _pyrepl.unix_eventqueue (top-level)
-missing module named fcntl - imported by subprocess (optional), _pyrepl.unix_console (top-level)
-missing module named readline - imported by site (delayed, optional), rlcompleter (optional), code (delayed, conditional, optional)
-missing module named _manylinux - imported by packaging._manylinux (delayed, optional), setuptools._vendor.packaging._manylinux (delayed, optional), setuptools._vendor.wheel.vendored.packaging._manylinux (delayed, optional)
-missing module named setuptools._vendor.backports.zstd - imported by setuptools._vendor.backports (top-level), urllib3.util.request (conditional, optional), urllib3.response (conditional, optional)
-missing module named importlib_resources - imported by setuptools._vendor.jaraco.text (optional)
-missing module named trove_classifiers - imported by setuptools.config._validate_pyproject.formats (optional)
-missing module named pyimod02_importers - imported by C:\Users\Ilina\PycharmProjects\DjangoProject\Proekt_Wazuh\.venv\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (delayed)
-missing module named _suggestions - imported by traceback (delayed, optional)
-missing module named simplejson - imported by requests.compat (conditional, optional)
-missing module named dummy_threading - imported by requests.cookies (optional)
-missing module named compression - imported by urllib3.util.request (conditional, optional), urllib3.response (conditional, optional)
-missing module named 'h2.events' - imported by urllib3.http2.connection (top-level)
-missing module named 'h2.connection' - imported by urllib3.http2.connection (top-level)
-missing module named h2 - imported by urllib3.http2.connection (top-level)
-missing module named brotli - imported by urllib3.util.request (optional), urllib3.response (optional)
-missing module named brotlicffi - imported by urllib3.util.request (optional), urllib3.response (optional)
-missing module named socks - imported by urllib3.contrib.socks (optional)
-missing module named cryptography - imported by urllib3.contrib.pyopenssl (top-level), requests (conditional, optional)
-missing module named 'OpenSSL.crypto' - imported by urllib3.contrib.pyopenssl (delayed, conditional)
-missing module named 'cryptography.x509' - imported by urllib3.contrib.pyopenssl (delayed, optional)
-missing module named OpenSSL - imported by urllib3.contrib.pyopenssl (top-level)
-missing module named chardet - imported by requests (optional)
-missing module named 'pyodide.ffi' - imported by urllib3.contrib.emscripten.fetch (delayed, optional)
-missing module named pyodide - imported by urllib3.contrib.emscripten.fetch (top-level)
-missing module named js - imported by urllib3.contrib.emscripten.fetch (top-level)
-missing module named vms_lib - imported by platform (delayed, optional)
-missing module named 'java.lang' - imported by platform (delayed, optional)
-missing module named java - imported by platform (delayed)
Index: ild/sctry/xref-sctry.html
===================================================================
--- build/sctry/xref-sctry.html	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21120 +1,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8">
-    <title>modulegraph cross reference for pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgutil.py, pyi_rth_setuptools.py, sctry.py</title>
-    <style>
-      .node { padding: 0.5em 0 0.5em; border-top: thin grey dotted; }
-      .moduletype { font: smaller italic }
-      .node a { text-decoration: none; color: #006699; }
-      .node a:visited { text-decoration: none; color: #2f0099; }
-    </style>
-  </head>
-  <body>
-    <h1>modulegraph cross reference for pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgutil.py, pyi_rth_setuptools.py, sctry.py</h1>
-
-<div class="node">
-  <a name="pyi_rth_inspect.py"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py" type="text/plain"><tt>pyi_rth_inspect.py</tt></a>
-<span class="moduletype">Script</span>  <div class="import">
-imports:
-    <a href="#inspect">inspect</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyi_rth_multiprocessing.py"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py" type="text/plain"><tt>pyi_rth_multiprocessing.py</tt></a>
-<span class="moduletype">Script</span>  <div class="import">
-imports:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyi_rth_pkgutil.py"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py" type="text/plain"><tt>pyi_rth_pkgutil.py</tt></a>
-<span class="moduletype">Script</span>  <div class="import">
-imports:
-    <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#pyimod02_importers">pyimod02_importers</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyi_rth_setuptools.py"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_setuptools.py" type="text/plain"><tt>pyi_rth_setuptools.py</tt></a>
-<span class="moduletype">Script</span>  <div class="import">
-imports:
-    <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sctry.py"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/sctry.py" type="text/plain"><tt>sctry.py</tt></a>
-<span class="moduletype">Script</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#encodings.ascii">encodings.ascii</a>
- &#8226;   <a href="#encodings.base64_codec">encodings.base64_codec</a>
- &#8226;   <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
- &#8226;   <a href="#encodings.bz2_codec">encodings.bz2_codec</a>
- &#8226;   <a href="#encodings.charmap">encodings.charmap</a>
- &#8226;   <a href="#encodings.cp037">encodings.cp037</a>
- &#8226;   <a href="#encodings.cp1006">encodings.cp1006</a>
- &#8226;   <a href="#encodings.cp1026">encodings.cp1026</a>
- &#8226;   <a href="#encodings.cp1125">encodings.cp1125</a>
- &#8226;   <a href="#encodings.cp1140">encodings.cp1140</a>
- &#8226;   <a href="#encodings.cp1250">encodings.cp1250</a>
- &#8226;   <a href="#encodings.cp1251">encodings.cp1251</a>
- &#8226;   <a href="#encodings.cp1252">encodings.cp1252</a>
- &#8226;   <a href="#encodings.cp1253">encodings.cp1253</a>
- &#8226;   <a href="#encodings.cp1254">encodings.cp1254</a>
- &#8226;   <a href="#encodings.cp1255">encodings.cp1255</a>
- &#8226;   <a href="#encodings.cp1256">encodings.cp1256</a>
- &#8226;   <a href="#encodings.cp1257">encodings.cp1257</a>
- &#8226;   <a href="#encodings.cp1258">encodings.cp1258</a>
- &#8226;   <a href="#encodings.cp273">encodings.cp273</a>
- &#8226;   <a href="#encodings.cp424">encodings.cp424</a>
- &#8226;   <a href="#encodings.cp437">encodings.cp437</a>
- &#8226;   <a href="#encodings.cp500">encodings.cp500</a>
- &#8226;   <a href="#encodings.cp720">encodings.cp720</a>
- &#8226;   <a href="#encodings.cp737">encodings.cp737</a>
- &#8226;   <a href="#encodings.cp775">encodings.cp775</a>
- &#8226;   <a href="#encodings.cp850">encodings.cp850</a>
- &#8226;   <a href="#encodings.cp852">encodings.cp852</a>
- &#8226;   <a href="#encodings.cp855">encodings.cp855</a>
- &#8226;   <a href="#encodings.cp856">encodings.cp856</a>
- &#8226;   <a href="#encodings.cp857">encodings.cp857</a>
- &#8226;   <a href="#encodings.cp858">encodings.cp858</a>
- &#8226;   <a href="#encodings.cp860">encodings.cp860</a>
- &#8226;   <a href="#encodings.cp861">encodings.cp861</a>
- &#8226;   <a href="#encodings.cp862">encodings.cp862</a>
- &#8226;   <a href="#encodings.cp863">encodings.cp863</a>
- &#8226;   <a href="#encodings.cp864">encodings.cp864</a>
- &#8226;   <a href="#encodings.cp865">encodings.cp865</a>
- &#8226;   <a href="#encodings.cp866">encodings.cp866</a>
- &#8226;   <a href="#encodings.cp869">encodings.cp869</a>
- &#8226;   <a href="#encodings.cp874">encodings.cp874</a>
- &#8226;   <a href="#encodings.cp875">encodings.cp875</a>
- &#8226;   <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hex_codec">encodings.hex_codec</a>
- &#8226;   <a href="#encodings.hp_roman8">encodings.hp_roman8</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
- &#8226;   <a href="#encodings.iso8859_1">encodings.iso8859_1</a>
- &#8226;   <a href="#encodings.iso8859_10">encodings.iso8859_10</a>
- &#8226;   <a href="#encodings.iso8859_11">encodings.iso8859_11</a>
- &#8226;   <a href="#encodings.iso8859_13">encodings.iso8859_13</a>
- &#8226;   <a href="#encodings.iso8859_14">encodings.iso8859_14</a>
- &#8226;   <a href="#encodings.iso8859_15">encodings.iso8859_15</a>
- &#8226;   <a href="#encodings.iso8859_16">encodings.iso8859_16</a>
- &#8226;   <a href="#encodings.iso8859_2">encodings.iso8859_2</a>
- &#8226;   <a href="#encodings.iso8859_3">encodings.iso8859_3</a>
- &#8226;   <a href="#encodings.iso8859_4">encodings.iso8859_4</a>
- &#8226;   <a href="#encodings.iso8859_5">encodings.iso8859_5</a>
- &#8226;   <a href="#encodings.iso8859_6">encodings.iso8859_6</a>
- &#8226;   <a href="#encodings.iso8859_7">encodings.iso8859_7</a>
- &#8226;   <a href="#encodings.iso8859_8">encodings.iso8859_8</a>
- &#8226;   <a href="#encodings.iso8859_9">encodings.iso8859_9</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
- &#8226;   <a href="#encodings.koi8_r">encodings.koi8_r</a>
- &#8226;   <a href="#encodings.koi8_t">encodings.koi8_t</a>
- &#8226;   <a href="#encodings.koi8_u">encodings.koi8_u</a>
- &#8226;   <a href="#encodings.kz1048">encodings.kz1048</a>
- &#8226;   <a href="#encodings.latin_1">encodings.latin_1</a>
- &#8226;   <a href="#encodings.mac_arabic">encodings.mac_arabic</a>
- &#8226;   <a href="#encodings.mac_croatian">encodings.mac_croatian</a>
- &#8226;   <a href="#encodings.mac_cyrillic">encodings.mac_cyrillic</a>
- &#8226;   <a href="#encodings.mac_farsi">encodings.mac_farsi</a>
- &#8226;   <a href="#encodings.mac_greek">encodings.mac_greek</a>
- &#8226;   <a href="#encodings.mac_iceland">encodings.mac_iceland</a>
- &#8226;   <a href="#encodings.mac_latin2">encodings.mac_latin2</a>
- &#8226;   <a href="#encodings.mac_roman">encodings.mac_roman</a>
- &#8226;   <a href="#encodings.mac_romanian">encodings.mac_romanian</a>
- &#8226;   <a href="#encodings.mac_turkish">encodings.mac_turkish</a>
- &#8226;   <a href="#encodings.mbcs">encodings.mbcs</a>
- &#8226;   <a href="#encodings.oem">encodings.oem</a>
- &#8226;   <a href="#encodings.palmos">encodings.palmos</a>
- &#8226;   <a href="#encodings.ptcp154">encodings.ptcp154</a>
- &#8226;   <a href="#encodings.punycode">encodings.punycode</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
- &#8226;   <a href="#encodings.raw_unicode_escape">encodings.raw_unicode_escape</a>
- &#8226;   <a href="#encodings.rot_13">encodings.rot_13</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
- &#8226;   <a href="#encodings.tis_620">encodings.tis_620</a>
- &#8226;   <a href="#encodings.undefined">encodings.undefined</a>
- &#8226;   <a href="#encodings.unicode_escape">encodings.unicode_escape</a>
- &#8226;   <a href="#encodings.utf_16">encodings.utf_16</a>
- &#8226;   <a href="#encodings.utf_16_be">encodings.utf_16_be</a>
- &#8226;   <a href="#encodings.utf_16_le">encodings.utf_16_le</a>
- &#8226;   <a href="#encodings.utf_32">encodings.utf_32</a>
- &#8226;   <a href="#encodings.utf_32_be">encodings.utf_32_be</a>
- &#8226;   <a href="#encodings.utf_32_le">encodings.utf_32_le</a>
- &#8226;   <a href="#encodings.utf_7">encodings.utf_7</a>
- &#8226;   <a href="#encodings.utf_8">encodings.utf_8</a>
- &#8226;   <a href="#encodings.utf_8_sig">encodings.utf_8_sig</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#encodings.zlib_codec">encodings.zlib_codec</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#genericpath">genericpath</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
- &#8226;   <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
- &#8226;   <a href="#pyi_rth_pkgutil.py">pyi_rth_pkgutil.py</a>
- &#8226;   <a href="#pyi_rth_setuptools.py">pyi_rth_setuptools.py</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#re._casefix">re._casefix</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sre_compile">sre_compile</a>
- &#8226;   <a href="#sre_constants">sre_constants</a>
- &#8226;   <a href="#sre_parse">sre_parse</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'OpenSSL.crypto'"></a>
-  <a target="code" href="" type="text/plain"><tt>'OpenSSL.crypto'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'collections.abc'"></a>
-  <a target="code" href="" type="text/plain"><tt>'collections.abc'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'cryptography.x509'"></a>
-  <a target="code" href="" type="text/plain"><tt>'cryptography.x509'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'h2.connection'"></a>
-  <a target="code" href="" type="text/plain"><tt>'h2.connection'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'h2.events'"></a>
-  <a target="code" href="" type="text/plain"><tt>'h2.events'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'java.lang'"></a>
-  <a target="code" href="" type="text/plain"><tt>'java.lang'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#platform">platform</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="'pyodide.ffi'"></a>
-  <a target="code" href="" type="text/plain"><tt>'pyodide.ffi'</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="OpenSSL"></a>
-  <a target="code" href="" type="text/plain"><tt>OpenSSL</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="__future__"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/__future__.py" type="text/plain"><tt>__future__</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#charset_normalizer.version">charset_normalizer.version</a>
- &#8226;   <a href="#codeop">codeop</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._meta">importlib.metadata._meta</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#packaging.licenses._spdx">packaging.licenses._spdx</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.unpack">setuptools._vendor.wheel.cli.unpack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.util">setuptools._vendor.wheel.util</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.build">setuptools.command.build</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.http2.probe">urllib3.http2.probe</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_abc"></a>
-  <tt>_abc</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#abc">abc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_aix_support"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_aix_support.py" type="text/plain"><tt>_aix_support</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sysconfig">sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_ast"></a>
-  <tt>_ast</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#ast">ast</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_asyncio"></a>
-  <tt>_asyncio</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_asyncio.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_bisect"></a>
-  <tt>_bisect</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#bisect">bisect</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_blake2"></a>
-  <tt>_blake2</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_bz2"></a>
-  <tt>_bz2</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_bz2.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#bz2">bz2</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs"></a>
-  <tt>_codecs</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#codecs">codecs</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_cn"></a>
-  <tt>_codecs_cn</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_hk"></a>
-  <tt>_codecs_hk</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_iso2022"></a>
-  <tt>_codecs_iso2022</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_jp"></a>
-  <tt>_codecs_jp</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_kr"></a>
-  <tt>_codecs_kr</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_codecs_tw"></a>
-  <tt>_codecs_tw</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_collections"></a>
-  <tt>_collections</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_collections_abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_collections_abc.py" type="text/plain"><tt>_collections_abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_colorize"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_colorize.py" type="text/plain"><tt>_colorize</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_compat_pickle"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_compat_pickle.py" type="text/plain"><tt>_compat_pickle</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imported by:
-    <a href="#_pickle">_pickle</a>
- &#8226;   <a href="#pickle">pickle</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_compression"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_compression.py" type="text/plain"><tt>_compression</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#bz2">bz2</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#lzma">lzma</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_contextvars"></a>
-  <tt>_contextvars</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#contextvars">contextvars</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_csv"></a>
-  <tt>_csv</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#csv">csv</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_ctypes"></a>
-  <tt>_ctypes</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_ctypes.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_curses"></a>
-  <a target="code" href="" type="text/plain"><tt>_curses</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imports:
-    <a href="#curses">curses</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#curses">curses</a>
- &#8226;   <a href="#curses.has_key">curses.has_key</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_datetime"></a>
-  <tt>_datetime</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#datetime">datetime</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_decimal"></a>
-  <tt>_decimal</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_decimal.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#decimal">decimal</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_distutils_hack"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/_distutils_hack/__init__.py" type="text/plain"><tt>_distutils_hack</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_distutils_hack.override">_distutils_hack.override</a>
- &#8226;   <a href="#pyi_rth_setuptools.py">pyi_rth_setuptools.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_distutils_hack.override"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/_distutils_hack/override.py" type="text/plain"><tt>_distutils_hack.override</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_distutils_hack">_distutils_hack</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_frozen_importlib"></a>
-  <a target="code" href="" type="text/plain"><tt>_frozen_importlib</tt></a>
-<span class="moduletype">ExcludedModule</span>  <div class="import">
-imported by:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_frozen_importlib_external"></a>
-  <a target="code" href="" type="text/plain"><tt>_frozen_importlib_external</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_functools"></a>
-  <tt>_functools</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#functools">functools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_hashlib"></a>
-  <tt>_hashlib</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_hashlib.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#hmac">hmac</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_heapq"></a>
-  <tt>_heapq</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#heapq">heapq</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_imp"></a>
-  <tt>_imp</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_io"></a>
-  <tt>_io</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_ios_support"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_ios_support.py" type="text/plain"><tt>_ios_support</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#webbrowser">webbrowser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_json"></a>
-  <tt>_json</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#json.decoder">json.decoder</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#json.decoder">json.decoder</a>
- &#8226;   <a href="#json.encoder">json.encoder</a>
- &#8226;   <a href="#json.scanner">json.scanner</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_locale"></a>
-  <tt>_locale</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#locale">locale</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_lzma"></a>
-  <tt>_lzma</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_lzma.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#lzma">lzma</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_manylinux"></a>
-  <a target="code" href="" type="text/plain"><tt>_manylinux</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_md5"></a>
-  <tt>_md5</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_multibytecodec"></a>
-  <tt>_multibytecodec</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
- &#8226;   <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
- &#8226;   <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_multiprocessing"></a>
-  <tt>_multiprocessing</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_multiprocessing.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_opcode"></a>
-  <tt>_opcode</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#dis">dis</a>
- &#8226;   <a href="#opcode">opcode</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_opcode_metadata"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_opcode_metadata.py" type="text/plain"><tt>_opcode_metadata</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imported by:
-    <a href="#opcode">opcode</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_operator"></a>
-  <tt>_operator</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hmac">hmac</a>
- &#8226;   <a href="#operator">operator</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_overlapped"></a>
-  <tt>_overlapped</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_overlapped.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pickle"></a>
-  <tt>_pickle</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#_compat_pickle">_compat_pickle</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#copyreg">copyreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pickle">pickle</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_posixshmem"></a>
-  <a target="code" href="" type="text/plain"><tt>_posixshmem</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_posixsubprocess"></a>
-  <a target="code" href="" type="text/plain"><tt>_posixsubprocess</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imports:
-    <a href="#gc">gc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_py_abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_py_abc.py" type="text/plain"><tt>_py_abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_weakrefset">_weakrefset</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#abc">abc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pydatetime"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pydatetime.py" type="text/plain"><tt>_pydatetime</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#datetime">datetime</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pydecimal"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pydecimal.py" type="text/plain"><tt>_pydecimal</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#numbers">numbers</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#decimal">decimal</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/__init__.py" type="text/plain"><tt>_pyrepl</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl._minimal_curses">_pyrepl._minimal_curses</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl._minimal_curses">_pyrepl._minimal_curses</a>
- &#8226;   <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#_pyrepl.fancy_termios">_pyrepl.fancy_termios</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.keymap">_pyrepl.keymap</a>
- &#8226;   <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl._minimal_curses"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/_minimal_curses.py" type="text/plain"><tt>_pyrepl._minimal_curses</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl._threading_handler"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/_threading_handler.py" type="text/plain"><tt>_pyrepl._threading_handler</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.reader">_pyrepl.reader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.commands"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/commands.py" type="text/plain"><tt>_pyrepl.commands</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_sitebuiltins">_sitebuiltins</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.completing_reader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/completing_reader.py" type="text/plain"><tt>_pyrepl.completing_reader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.console"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/console.py" type="text/plain"><tt>_pyrepl.console</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.curses"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/curses.py" type="text/plain"><tt>_pyrepl.curses</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_curses">_curses</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl._minimal_curses">_pyrepl._minimal_curses</a>
- &#8226;   <a href="#curses">curses</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.fancy_termios"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/fancy_termios.py" type="text/plain"><tt>_pyrepl.fancy_termios</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#termios">termios</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.historical_reader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/historical_reader.py" type="text/plain"><tt>_pyrepl.historical_reader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.input"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/input.py" type="text/plain"><tt>_pyrepl.input</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.keymap">_pyrepl.keymap</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.keymap"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/keymap.py" type="text/plain"><tt>_pyrepl.keymap</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.main"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/main.py" type="text/plain"><tt>_pyrepl.main</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tokenize">tokenize</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.pager"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/pager.py" type="text/plain"><tt>_pyrepl.pager</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#termios">termios</a>
- &#8226;   <a href="#tty">tty</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.reader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/reader.py" type="text/plain"><tt>_pyrepl.reader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.readline"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/readline.py" type="text/plain"><tt>_pyrepl.readline</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.types">_pyrepl.types</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.simple_interact"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/simple_interact.py" type="text/plain"><tt>_pyrepl.simple_interact</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#_sitebuiltins">_sitebuiltins</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.main">_pyrepl.main</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.trace"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/trace.py" type="text/plain"><tt>_pyrepl.trace</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.types"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/types.py" type="text/plain"><tt>_pyrepl.types</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.unix_console"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/unix_console.py" type="text/plain"><tt>_pyrepl.unix_console</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#_pyrepl.fancy_termios">_pyrepl.fancy_termios</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#fcntl">fcntl</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#posix">posix</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#termios">termios</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.unix_eventqueue"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/unix_eventqueue.py" type="text/plain"><tt>_pyrepl.unix_eventqueue</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#_pyrepl.keymap">_pyrepl.keymap</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#termios">termios</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/utils.py" type="text/plain"><tt>_pyrepl.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_pyrepl.windows_console"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_pyrepl/windows_console.py" type="text/plain"><tt>_pyrepl.windows_console</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl">_pyrepl</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.wintypes">ctypes.wintypes</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_queue"></a>
-  <tt>_queue</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_queue.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#queue">queue</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_random"></a>
-  <tt>_random</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#random">random</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_scproxy"></a>
-  <a target="code" href="" type="text/plain"><tt>_scproxy</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sha1"></a>
-  <tt>_sha1</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sha2"></a>
-  <tt>_sha2</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#random">random</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sha3"></a>
-  <tt>_sha3</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#hashlib">hashlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_signal"></a>
-  <tt>_signal</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#signal">signal</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sitebuiltins"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_sitebuiltins.py" type="text/plain"><tt>_sitebuiltins</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_socket"></a>
-  <tt>_socket</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_socket.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#socket">socket</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sre"></a>
-  <tt>_sre</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#copy">copy</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#re._constants">re._constants</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_ssl"></a>
-  <tt>_ssl</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_ssl.pyd</tt></span>  <div class="import">
-imports:
-    <a href="#socket">socket</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ssl">ssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_stat"></a>
-  <tt>_stat</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#stat">stat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_statistics"></a>
-  <tt>_statistics</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#statistics">statistics</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_string"></a>
-  <tt>_string</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#string">string</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_strptime"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_strptime.py" type="text/plain"><tt>_strptime</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_thread">_thread</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_datetime">_datetime</a>
- &#8226;   <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_struct"></a>
-  <tt>_struct</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#struct">struct</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_suggestions"></a>
-  <a target="code" href="" type="text/plain"><tt>_suggestions</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#traceback">traceback</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_sysconfig"></a>
-  <tt>_sysconfig</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#sysconfig">sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_thread"></a>
-  <tt>_thread</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_threading_local"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_threading_local.py" type="text/plain"><tt>_threading_local</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#threading">threading</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_tokenize"></a>
-  <tt>_tokenize</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#tokenize">tokenize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_tracemalloc"></a>
-  <tt>_tracemalloc</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#tracemalloc">tracemalloc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_typeshed"></a>
-  <a target="code" href="" type="text/plain"><tt>_typeshed</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_typing"></a>
-  <tt>_typing</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#typing">typing</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_warnings"></a>
-  <tt>_warnings</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_weakref"></a>
-  <tt>_weakref</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#weakref">weakref</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_weakrefset"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/_weakrefset.py" type="text/plain"><tt>_weakrefset</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_weakref">_weakref</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_py_abc">_py_abc</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_winapi"></a>
-  <tt>_winapi</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="_wmi"></a>
-  <tt>_wmi</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\_wmi.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#platform">platform</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/abc.py" type="text/plain"><tt>abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_abc">_abc</a>
- &#8226;   <a href="#_py_abc">_py_abc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib._abc">importlib._abc</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#numbers">numbers</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="annotationlib"></a>
-  <a target="code" href="" type="text/plain"><tt>annotationlib</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="argparse"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/argparse.py" type="text/plain"><tt>argparse</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#copy">copy</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ast">ast</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="array"></a>
-  <tt>array</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#socket">socket</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ast"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ast.py" type="text/plain"><tt>ast</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_ast">_ast</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/__init__.py" type="text/plain"><tt>asyncio</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.DefaultEventLoopPolicy">asyncio.DefaultEventLoopPolicy</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.taskgroups">asyncio.taskgroups</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.threads">asyncio.threads</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.taskgroups">asyncio.taskgroups</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.threads">asyncio.threads</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.DefaultEventLoopPolicy"></a>
-  <a target="code" href="" type="text/plain"><tt>asyncio.DefaultEventLoopPolicy</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.base_events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/base_events.py" type="text/plain"><tt>asyncio.base_events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.base_futures"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/base_futures.py" type="text/plain"><tt>asyncio.base_futures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#reprlib">reprlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.base_subprocess"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/base_subprocess.py" type="text/plain"><tt>asyncio.base_subprocess</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.base_tasks"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/base_tasks.py" type="text/plain"><tt>asyncio.base_tasks</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.constants"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/constants.py" type="text/plain"><tt>asyncio.constants</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#enum">enum</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.coroutines"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/coroutines.py" type="text/plain"><tt>asyncio.coroutines</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/events.py" type="text/plain"><tt>asyncio.events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_asyncio">_asyncio</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.DefaultEventLoopPolicy">asyncio.DefaultEventLoopPolicy</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.taskgroups">asyncio.taskgroups</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.threads">asyncio.threads</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.exceptions"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/exceptions.py" type="text/plain"><tt>asyncio.exceptions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.taskgroups">asyncio.taskgroups</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.format_helpers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/format_helpers.py" type="text/plain"><tt>asyncio.format_helpers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.futures"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/futures.py" type="text/plain"><tt>asyncio.futures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_asyncio">_asyncio</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.locks"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/locks.py" type="text/plain"><tt>asyncio.locks</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#enum">enum</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.log"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/log.py" type="text/plain"><tt>asyncio.log</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#logging">logging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.mixins"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/mixins.py" type="text/plain"><tt>asyncio.mixins</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.proactor_events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/proactor_events.py" type="text/plain"><tt>asyncio.proactor_events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.protocols"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/protocols.py" type="text/plain"><tt>asyncio.protocols</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.queues"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/queues.py" type="text/plain"><tt>asyncio.queues</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.runners"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/runners.py" type="text/plain"><tt>asyncio.runners</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.selector_events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/selector_events.py" type="text/plain"><tt>asyncio.selector_events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.sslproto"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/sslproto.py" type="text/plain"><tt>asyncio.sslproto</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.staggered"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/staggered.py" type="text/plain"><tt>asyncio.staggered</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#contextlib">contextlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.streams"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/streams.py" type="text/plain"><tt>asyncio.streams</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.subprocess"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/subprocess.py" type="text/plain"><tt>asyncio.subprocess</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.protocols">asyncio.protocols</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.taskgroups"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/taskgroups.py" type="text/plain"><tt>asyncio.taskgroups</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.tasks"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/tasks.py" type="text/plain"><tt>asyncio.tasks</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_asyncio">_asyncio</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.taskgroups">asyncio.taskgroups</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.threads"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/threads.py" type="text/plain"><tt>asyncio.threads</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#functools">functools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.timeouts"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/timeouts.py" type="text/plain"><tt>asyncio.timeouts</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.transports"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/transports.py" type="text/plain"><tt>asyncio.transports</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.trsock"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/trsock.py" type="text/plain"><tt>asyncio.trsock</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#socket">socket</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.unix_events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/unix_events.py" type="text/plain"><tt>asyncio.unix_events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.transports">asyncio.transports</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.windows_events"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/windows_events.py" type="text/plain"><tt>asyncio.windows_events</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_overlapped">_overlapped</a>
- &#8226;   <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.exceptions">asyncio.exceptions</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="asyncio.windows_utils"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/asyncio/windows_utils.py" type="text/plain"><tt>asyncio.windows_utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="atexit"></a>
-  <tt>atexit</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#certifi.core">certifi.core</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="backports"></a>
-  <a target="code" href="" type="text/plain"><tt>backports</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#backports.tarfile">backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.backports">setuptools._vendor.backports</a>
- &#8226;   <a href="#setuptools._vendor.backports.zstd">setuptools._vendor.backports.zstd</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="backports.tarfile"></a>
-  <a target="code" href="" type="text/plain"><tt>backports.tarfile</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#backports">backports</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="base64"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/base64.py" type="text/plain"><tt>base64</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email.base64mime">email.base64mime</a>
- &#8226;   <a href="#email.encoders">email.encoders</a>
- &#8226;   <a href="#encodings.base64_codec">encodings.base64_codec</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#secrets">secrets</a>
- &#8226;   <a href="#setuptools._vendor.wheel.util">setuptools._vendor.wheel.util</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="binascii"></a>
-  <tt>binascii</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email.base64mime">email.base64mime</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#encodings.hex_codec">encodings.hex_codec</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#quopri">quopri</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="bisect"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/bisect.py" type="text/plain"><tt>bisect</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_bisect">_bisect</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#idna.intranges">idna.intranges</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="brotli"></a>
-  <a target="code" href="" type="text/plain"><tt>brotli</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="brotlicffi"></a>
-  <a target="code" href="" type="text/plain"><tt>brotlicffi</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="builtins"></a>
-  <tt>builtins</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="bz2"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/bz2.py" type="text/plain"><tt>bz2</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_bz2">_bz2</a>
- &#8226;   <a href="#_compression">_compression</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings.bz2_codec">encodings.bz2_codec</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="calendar"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/calendar.py" type="text/plain"><tt>calendar</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#email._parseaddr">email._parseaddr</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#ssl">ssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="certifi"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/certifi/__init__.py" type="text/plain"><tt>certifi</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#certifi.core">certifi.core</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#certifi.core">certifi.core</a>
- &#8226;   <a href="#requests.certs">requests.certs</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="certifi.core"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/certifi/core.py" type="text/plain"><tt>certifi.core</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#atexit">atexit</a>
- &#8226;   <a href="#certifi">certifi</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#certifi">certifi</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="chardet"></a>
-  <a target="code" href="" type="text/plain"><tt>chardet</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/__init__.py" type="text/plain"><tt>charset_normalizer</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#charset_normalizer.md__mypyc">charset_normalizer.md__mypyc</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#charset_normalizer.version">charset_normalizer.version</a>
- &#8226;   <a href="#logging">logging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.md__mypyc">charset_normalizer.md__mypyc</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#charset_normalizer.version">charset_normalizer.version</a>
- &#8226;   <a href="#requests">requests</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.api"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/api.py" type="text/plain"><tt>charset_normalizer.api</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.cd"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/cd.py" type="text/plain"><tt>charset_normalizer.cd</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.constant"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/constant.py" type="text/plain"><tt>charset_normalizer.constant</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.legacy"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/legacy.py" type="text/plain"><tt>charset_normalizer.legacy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.md"></a>
-  <tt>charset_normalizer.md</tt> <span class="moduletype"><tt>C:\Users\Ilina\PycharmProjects\DjangoProject\Proekt_Wazuh\.venv\Lib\site-packages\charset_normalizer\md.cp313-win_amd64.pyd</tt></span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#logging">logging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.md__mypyc"></a>
-  <tt>charset_normalizer.md__mypyc</tt> <span class="moduletype"><tt>C:\Users\Ilina\PycharmProjects\DjangoProject\Proekt_Wazuh\.venv\Lib\site-packages\charset_normalizer\md__mypyc.cp313-win_amd64.pyd</tt></span>  <div class="import">
-imports:
-    <a href="#charset_normalizer">charset_normalizer</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.models"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/models.py" type="text/plain"><tt>charset_normalizer.models</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/utils.py" type="text/plain"><tt>charset_normalizer.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="charset_normalizer.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/charset_normalizer/version.py" type="text/plain"><tt>charset_normalizer.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer">charset_normalizer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="code"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/code.py" type="text/plain"><tt>code</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#codeop">codeop</a>
- &#8226;   <a href="#readline">readline</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="codecs"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/codecs.py" type="text/plain"><tt>codecs</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs">_codecs</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pickle">_pickle</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.ascii">encodings.ascii</a>
- &#8226;   <a href="#encodings.base64_codec">encodings.base64_codec</a>
- &#8226;   <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
- &#8226;   <a href="#encodings.bz2_codec">encodings.bz2_codec</a>
- &#8226;   <a href="#encodings.charmap">encodings.charmap</a>
- &#8226;   <a href="#encodings.cp037">encodings.cp037</a>
- &#8226;   <a href="#encodings.cp1006">encodings.cp1006</a>
- &#8226;   <a href="#encodings.cp1026">encodings.cp1026</a>
- &#8226;   <a href="#encodings.cp1125">encodings.cp1125</a>
- &#8226;   <a href="#encodings.cp1140">encodings.cp1140</a>
- &#8226;   <a href="#encodings.cp1250">encodings.cp1250</a>
- &#8226;   <a href="#encodings.cp1251">encodings.cp1251</a>
- &#8226;   <a href="#encodings.cp1252">encodings.cp1252</a>
- &#8226;   <a href="#encodings.cp1253">encodings.cp1253</a>
- &#8226;   <a href="#encodings.cp1254">encodings.cp1254</a>
- &#8226;   <a href="#encodings.cp1255">encodings.cp1255</a>
- &#8226;   <a href="#encodings.cp1256">encodings.cp1256</a>
- &#8226;   <a href="#encodings.cp1257">encodings.cp1257</a>
- &#8226;   <a href="#encodings.cp1258">encodings.cp1258</a>
- &#8226;   <a href="#encodings.cp273">encodings.cp273</a>
- &#8226;   <a href="#encodings.cp424">encodings.cp424</a>
- &#8226;   <a href="#encodings.cp437">encodings.cp437</a>
- &#8226;   <a href="#encodings.cp500">encodings.cp500</a>
- &#8226;   <a href="#encodings.cp720">encodings.cp720</a>
- &#8226;   <a href="#encodings.cp737">encodings.cp737</a>
- &#8226;   <a href="#encodings.cp775">encodings.cp775</a>
- &#8226;   <a href="#encodings.cp850">encodings.cp850</a>
- &#8226;   <a href="#encodings.cp852">encodings.cp852</a>
- &#8226;   <a href="#encodings.cp855">encodings.cp855</a>
- &#8226;   <a href="#encodings.cp856">encodings.cp856</a>
- &#8226;   <a href="#encodings.cp857">encodings.cp857</a>
- &#8226;   <a href="#encodings.cp858">encodings.cp858</a>
- &#8226;   <a href="#encodings.cp860">encodings.cp860</a>
- &#8226;   <a href="#encodings.cp861">encodings.cp861</a>
- &#8226;   <a href="#encodings.cp862">encodings.cp862</a>
- &#8226;   <a href="#encodings.cp863">encodings.cp863</a>
- &#8226;   <a href="#encodings.cp864">encodings.cp864</a>
- &#8226;   <a href="#encodings.cp865">encodings.cp865</a>
- &#8226;   <a href="#encodings.cp866">encodings.cp866</a>
- &#8226;   <a href="#encodings.cp869">encodings.cp869</a>
- &#8226;   <a href="#encodings.cp874">encodings.cp874</a>
- &#8226;   <a href="#encodings.cp875">encodings.cp875</a>
- &#8226;   <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hex_codec">encodings.hex_codec</a>
- &#8226;   <a href="#encodings.hp_roman8">encodings.hp_roman8</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
- &#8226;   <a href="#encodings.iso8859_1">encodings.iso8859_1</a>
- &#8226;   <a href="#encodings.iso8859_10">encodings.iso8859_10</a>
- &#8226;   <a href="#encodings.iso8859_11">encodings.iso8859_11</a>
- &#8226;   <a href="#encodings.iso8859_13">encodings.iso8859_13</a>
- &#8226;   <a href="#encodings.iso8859_14">encodings.iso8859_14</a>
- &#8226;   <a href="#encodings.iso8859_15">encodings.iso8859_15</a>
- &#8226;   <a href="#encodings.iso8859_16">encodings.iso8859_16</a>
- &#8226;   <a href="#encodings.iso8859_2">encodings.iso8859_2</a>
- &#8226;   <a href="#encodings.iso8859_3">encodings.iso8859_3</a>
- &#8226;   <a href="#encodings.iso8859_4">encodings.iso8859_4</a>
- &#8226;   <a href="#encodings.iso8859_5">encodings.iso8859_5</a>
- &#8226;   <a href="#encodings.iso8859_6">encodings.iso8859_6</a>
- &#8226;   <a href="#encodings.iso8859_7">encodings.iso8859_7</a>
- &#8226;   <a href="#encodings.iso8859_8">encodings.iso8859_8</a>
- &#8226;   <a href="#encodings.iso8859_9">encodings.iso8859_9</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
- &#8226;   <a href="#encodings.koi8_r">encodings.koi8_r</a>
- &#8226;   <a href="#encodings.koi8_t">encodings.koi8_t</a>
- &#8226;   <a href="#encodings.koi8_u">encodings.koi8_u</a>
- &#8226;   <a href="#encodings.kz1048">encodings.kz1048</a>
- &#8226;   <a href="#encodings.latin_1">encodings.latin_1</a>
- &#8226;   <a href="#encodings.mac_arabic">encodings.mac_arabic</a>
- &#8226;   <a href="#encodings.mac_croatian">encodings.mac_croatian</a>
- &#8226;   <a href="#encodings.mac_cyrillic">encodings.mac_cyrillic</a>
- &#8226;   <a href="#encodings.mac_farsi">encodings.mac_farsi</a>
- &#8226;   <a href="#encodings.mac_greek">encodings.mac_greek</a>
- &#8226;   <a href="#encodings.mac_iceland">encodings.mac_iceland</a>
- &#8226;   <a href="#encodings.mac_latin2">encodings.mac_latin2</a>
- &#8226;   <a href="#encodings.mac_roman">encodings.mac_roman</a>
- &#8226;   <a href="#encodings.mac_romanian">encodings.mac_romanian</a>
- &#8226;   <a href="#encodings.mac_turkish">encodings.mac_turkish</a>
- &#8226;   <a href="#encodings.mbcs">encodings.mbcs</a>
- &#8226;   <a href="#encodings.oem">encodings.oem</a>
- &#8226;   <a href="#encodings.palmos">encodings.palmos</a>
- &#8226;   <a href="#encodings.ptcp154">encodings.ptcp154</a>
- &#8226;   <a href="#encodings.punycode">encodings.punycode</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
- &#8226;   <a href="#encodings.raw_unicode_escape">encodings.raw_unicode_escape</a>
- &#8226;   <a href="#encodings.rot_13">encodings.rot_13</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
- &#8226;   <a href="#encodings.tis_620">encodings.tis_620</a>
- &#8226;   <a href="#encodings.undefined">encodings.undefined</a>
- &#8226;   <a href="#encodings.unicode_escape">encodings.unicode_escape</a>
- &#8226;   <a href="#encodings.utf_16">encodings.utf_16</a>
- &#8226;   <a href="#encodings.utf_16_be">encodings.utf_16_be</a>
- &#8226;   <a href="#encodings.utf_16_le">encodings.utf_16_le</a>
- &#8226;   <a href="#encodings.utf_32">encodings.utf_32</a>
- &#8226;   <a href="#encodings.utf_32_be">encodings.utf_32_be</a>
- &#8226;   <a href="#encodings.utf_32_le">encodings.utf_32_le</a>
- &#8226;   <a href="#encodings.utf_7">encodings.utf_7</a>
- &#8226;   <a href="#encodings.utf_8">encodings.utf_8</a>
- &#8226;   <a href="#encodings.utf_8_sig">encodings.utf_8_sig</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#encodings.zlib_codec">encodings.zlib_codec</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="codeop"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/codeop.py" type="text/plain"><tt>codeop</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#code">code</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="collections"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/collections/__init__.py" type="text/plain"><tt>collections</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_collections">_collections</a>
- &#8226;   <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_weakref">_weakref</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._collections">importlib.metadata._collections</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._collections">setuptools._vendor.importlib_metadata._collections</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._itertools">setuptools._vendor.importlib_metadata._itertools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.zipp._functools">setuptools._vendor.zipp._functools</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest._log">unittest._log</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="compression"></a>
-  <a target="code" href="" type="text/plain"><tt>compression</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="concurrent"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/concurrent/__init__.py" type="text/plain"><tt>concurrent</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imported by:
-    <a href="#concurrent.futures">concurrent.futures</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="concurrent.futures"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/concurrent/futures/__init__.py" type="text/plain"><tt>concurrent.futures</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#concurrent">concurrent</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="concurrent.futures._base"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/concurrent/futures/_base.py" type="text/plain"><tt>concurrent.futures._base</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="concurrent.futures.process"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/concurrent/futures/process.py" type="text/plain"><tt>concurrent.futures.process</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures">concurrent.futures</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="concurrent.futures.thread"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/concurrent/futures/thread.py" type="text/plain"><tt>concurrent.futures.thread</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures">concurrent.futures</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="configparser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/configparser.py" type="text/plain"><tt>configparser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="contextlib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/contextlib.py" type="text/plain"><tt>contextlib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_threading_local">_threading_local</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio.staggered">asyncio.staggered</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources._adapters">importlib.resources._adapters</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.check">setuptools._distutils.command.check</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="contextvars"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/contextvars.py" type="text/plain"><tt>contextvars</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_contextvars">_contextvars</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.threads">asyncio.threads</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="copy"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/copy.py" type="text/plain"><tt>copy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_sre">_sre</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#weakref">weakref</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="copyreg"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/copyreg.py" type="text/plain"><tt>copyreg</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#operator">operator</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pickle">_pickle</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="cryptography"></a>
-  <a target="code" href="" type="text/plain"><tt>cryptography</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="csv"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/csv.py" type="text/plain"><tt>csv</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_csv">_csv</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/__init__.py" type="text/plain"><tt>ctypes</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_ctypes">_ctypes</a>
- &#8226;   <a href="#ctypes._endian">ctypes._endian</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_ios_support">_ios_support</a>
- &#8226;   <a href="#_pyrepl._minimal_curses">_pyrepl._minimal_curses</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes._endian">ctypes._endian</a>
- &#8226;   <a href="#ctypes.macholib">ctypes.macholib</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#ctypes.wintypes">ctypes.wintypes</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes._aix"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/_aix.py" type="text/plain"><tt>ctypes._aix</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.util">ctypes.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes._endian"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/_endian.py" type="text/plain"><tt>ctypes._endian</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes">ctypes</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.macholib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/macholib/__init__.py" type="text/plain"><tt>ctypes.macholib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
- &#8226;   <a href="#ctypes.macholib.dylib">ctypes.macholib.dylib</a>
- &#8226;   <a href="#ctypes.macholib.framework">ctypes.macholib.framework</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.macholib.dyld"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/macholib/dyld.py" type="text/plain"><tt>ctypes.macholib.dyld</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_ctypes">_ctypes</a>
- &#8226;   <a href="#ctypes.macholib">ctypes.macholib</a>
- &#8226;   <a href="#ctypes.macholib.dylib">ctypes.macholib.dylib</a>
- &#8226;   <a href="#ctypes.macholib.framework">ctypes.macholib.framework</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.util">ctypes.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.macholib.dylib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/macholib/dylib.py" type="text/plain"><tt>ctypes.macholib.dylib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes.macholib">ctypes.macholib</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.macholib.framework"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/macholib/framework.py" type="text/plain"><tt>ctypes.macholib.framework</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes.macholib">ctypes.macholib</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.util"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/util.py" type="text/plain"><tt>ctypes.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_ios_support">_ios_support</a>
- &#8226;   <a href="#_pyrepl._minimal_curses">_pyrepl._minimal_curses</a>
- &#8226;   <a href="#ctypes">ctypes</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ctypes.wintypes"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ctypes/wintypes.py" type="text/plain"><tt>ctypes.wintypes</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="curses"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/curses/__init__.py" type="text/plain"><tt>curses</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_curses">_curses</a>
- &#8226;   <a href="#curses">curses</a>
- &#8226;   <a href="#curses.has_key">curses.has_key</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_curses">_curses</a>
- &#8226;   <a href="#_pyrepl.curses">_pyrepl.curses</a>
- &#8226;   <a href="#curses">curses</a>
- &#8226;   <a href="#curses.has_key">curses.has_key</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="curses.has_key"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/curses/has_key.py" type="text/plain"><tt>curses.has_key</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_curses">_curses</a>
- &#8226;   <a href="#curses">curses</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#curses">curses</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="dataclasses"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/dataclasses.py" type="text/plain"><tt>dataclasses</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.historical_reader">_pyrepl.historical_reader</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="datetime"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/datetime.py" type="text/plain"><tt>datetime</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_datetime">_datetime</a>
- &#8226;   <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="decimal"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/decimal.py" type="text/plain"><tt>decimal</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_decimal">_decimal</a>
- &#8226;   <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#fractions">fractions</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_validations">setuptools.config._validate_pyproject.fastjsonschema_validations</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="difflib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/difflib.py" type="text/plain"><tt>difflib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#difflib">difflib</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="dis"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/dis.py" type="text/plain"><tt>dis</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_opcode">_opcode</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#opcode">opcode</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#inspect">inspect</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="distutils"></a>
-  <a target="code" href="" type="text/plain"><tt>distutils</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="dummy_threading"></a>
-  <a target="code" href="" type="text/plain"><tt>dummy_threading</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#requests.cookies">requests.cookies</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/__init__.py" type="text/plain"><tt>email</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.parser">email.parser</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email._parseaddr">email._parseaddr</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.base64mime">email.base64mime</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.encoders">email.encoders</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#email.iterators">email.iterators</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email._encoded_words"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/_encoded_words.py" type="text/plain"><tt>email._encoded_words</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#string">string</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.message">email.message</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email._header_value_parser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/_header_value_parser.py" type="text/plain"><tt>email._header_value_parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib">urllib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email">email</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email._parseaddr"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/_parseaddr.py" type="text/plain"><tt>email._parseaddr</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#calendar">calendar</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.utils">email.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email._policybase"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/_policybase.py" type="text/plain"><tt>email._policybase</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.utils">email.utils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.base64mime"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/base64mime.py" type="text/plain"><tt>email.base64mime</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#email">email</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.header">email.header</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.charset"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/charset.py" type="text/plain"><tt>email.charset</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#email.base64mime">email.base64mime</a>
- &#8226;   <a href="#email.encoders">email.encoders</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
- &#8226;   <a href="#functools">functools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.utils">email.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.contentmanager"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/contentmanager.py" type="text/plain"><tt>email.contentmanager</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.policy">email.policy</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.encoders"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/encoders.py" type="text/plain"><tt>email.encoders</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#quopri">quopri</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.charset">email.charset</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.errors"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/errors.py" type="text/plain"><tt>email.errors</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.feedparser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/feedparser.py" type="text/plain"><tt>email.feedparser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.parser">email.parser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.generator"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/generator.py" type="text/plain"><tt>email.generator</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#copy">copy</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.message">email.message</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.header"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/header.py" type="text/plain"><tt>email.header</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.base64mime">email.base64mime</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.headerregistry"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/headerregistry.py" type="text/plain"><tt>email.headerregistry</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.iterators"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/iterators.py" type="text/plain"><tt>email.iterators</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.message">email.message</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.message"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/message.py" type="text/plain"><tt>email.message</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.iterators">email.iterators</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#quopri">quopri</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.parser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/parser.py" type="text/plain"><tt>email.parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#io">io</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email">email</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.policy"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/policy.py" type="text/plain"><tt>email.policy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.message">email.message</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.quoprimime"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/quoprimime.py" type="text/plain"><tt>email.quoprimime</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email">email</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#string">string</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#email.contentmanager">email.contentmanager</a>
- &#8226;   <a href="#email.header">email.header</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="email.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/email/utils.py" type="text/plain"><tt>email.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#datetime">datetime</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email._parseaddr">email._parseaddr</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email._policybase">email._policybase</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/__init__.py" type="text/plain"><tt>encodings</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#encodings.ascii">encodings.ascii</a>
- &#8226;   <a href="#encodings.base64_codec">encodings.base64_codec</a>
- &#8226;   <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
- &#8226;   <a href="#encodings.bz2_codec">encodings.bz2_codec</a>
- &#8226;   <a href="#encodings.charmap">encodings.charmap</a>
- &#8226;   <a href="#encodings.cp037">encodings.cp037</a>
- &#8226;   <a href="#encodings.cp1006">encodings.cp1006</a>
- &#8226;   <a href="#encodings.cp1026">encodings.cp1026</a>
- &#8226;   <a href="#encodings.cp1125">encodings.cp1125</a>
- &#8226;   <a href="#encodings.cp1140">encodings.cp1140</a>
- &#8226;   <a href="#encodings.cp1250">encodings.cp1250</a>
- &#8226;   <a href="#encodings.cp1251">encodings.cp1251</a>
- &#8226;   <a href="#encodings.cp1252">encodings.cp1252</a>
- &#8226;   <a href="#encodings.cp1253">encodings.cp1253</a>
- &#8226;   <a href="#encodings.cp1254">encodings.cp1254</a>
- &#8226;   <a href="#encodings.cp1255">encodings.cp1255</a>
- &#8226;   <a href="#encodings.cp1256">encodings.cp1256</a>
- &#8226;   <a href="#encodings.cp1257">encodings.cp1257</a>
- &#8226;   <a href="#encodings.cp1258">encodings.cp1258</a>
- &#8226;   <a href="#encodings.cp273">encodings.cp273</a>
- &#8226;   <a href="#encodings.cp424">encodings.cp424</a>
- &#8226;   <a href="#encodings.cp437">encodings.cp437</a>
- &#8226;   <a href="#encodings.cp500">encodings.cp500</a>
- &#8226;   <a href="#encodings.cp720">encodings.cp720</a>
- &#8226;   <a href="#encodings.cp737">encodings.cp737</a>
- &#8226;   <a href="#encodings.cp775">encodings.cp775</a>
- &#8226;   <a href="#encodings.cp850">encodings.cp850</a>
- &#8226;   <a href="#encodings.cp852">encodings.cp852</a>
- &#8226;   <a href="#encodings.cp855">encodings.cp855</a>
- &#8226;   <a href="#encodings.cp856">encodings.cp856</a>
- &#8226;   <a href="#encodings.cp857">encodings.cp857</a>
- &#8226;   <a href="#encodings.cp858">encodings.cp858</a>
- &#8226;   <a href="#encodings.cp860">encodings.cp860</a>
- &#8226;   <a href="#encodings.cp861">encodings.cp861</a>
- &#8226;   <a href="#encodings.cp862">encodings.cp862</a>
- &#8226;   <a href="#encodings.cp863">encodings.cp863</a>
- &#8226;   <a href="#encodings.cp864">encodings.cp864</a>
- &#8226;   <a href="#encodings.cp865">encodings.cp865</a>
- &#8226;   <a href="#encodings.cp866">encodings.cp866</a>
- &#8226;   <a href="#encodings.cp869">encodings.cp869</a>
- &#8226;   <a href="#encodings.cp874">encodings.cp874</a>
- &#8226;   <a href="#encodings.cp875">encodings.cp875</a>
- &#8226;   <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hex_codec">encodings.hex_codec</a>
- &#8226;   <a href="#encodings.hp_roman8">encodings.hp_roman8</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
- &#8226;   <a href="#encodings.iso8859_1">encodings.iso8859_1</a>
- &#8226;   <a href="#encodings.iso8859_10">encodings.iso8859_10</a>
- &#8226;   <a href="#encodings.iso8859_11">encodings.iso8859_11</a>
- &#8226;   <a href="#encodings.iso8859_13">encodings.iso8859_13</a>
- &#8226;   <a href="#encodings.iso8859_14">encodings.iso8859_14</a>
- &#8226;   <a href="#encodings.iso8859_15">encodings.iso8859_15</a>
- &#8226;   <a href="#encodings.iso8859_16">encodings.iso8859_16</a>
- &#8226;   <a href="#encodings.iso8859_2">encodings.iso8859_2</a>
- &#8226;   <a href="#encodings.iso8859_3">encodings.iso8859_3</a>
- &#8226;   <a href="#encodings.iso8859_4">encodings.iso8859_4</a>
- &#8226;   <a href="#encodings.iso8859_5">encodings.iso8859_5</a>
- &#8226;   <a href="#encodings.iso8859_6">encodings.iso8859_6</a>
- &#8226;   <a href="#encodings.iso8859_7">encodings.iso8859_7</a>
- &#8226;   <a href="#encodings.iso8859_8">encodings.iso8859_8</a>
- &#8226;   <a href="#encodings.iso8859_9">encodings.iso8859_9</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
- &#8226;   <a href="#encodings.koi8_r">encodings.koi8_r</a>
- &#8226;   <a href="#encodings.koi8_t">encodings.koi8_t</a>
- &#8226;   <a href="#encodings.koi8_u">encodings.koi8_u</a>
- &#8226;   <a href="#encodings.kz1048">encodings.kz1048</a>
- &#8226;   <a href="#encodings.latin_1">encodings.latin_1</a>
- &#8226;   <a href="#encodings.mac_arabic">encodings.mac_arabic</a>
- &#8226;   <a href="#encodings.mac_croatian">encodings.mac_croatian</a>
- &#8226;   <a href="#encodings.mac_cyrillic">encodings.mac_cyrillic</a>
- &#8226;   <a href="#encodings.mac_farsi">encodings.mac_farsi</a>
- &#8226;   <a href="#encodings.mac_greek">encodings.mac_greek</a>
- &#8226;   <a href="#encodings.mac_iceland">encodings.mac_iceland</a>
- &#8226;   <a href="#encodings.mac_latin2">encodings.mac_latin2</a>
- &#8226;   <a href="#encodings.mac_roman">encodings.mac_roman</a>
- &#8226;   <a href="#encodings.mac_romanian">encodings.mac_romanian</a>
- &#8226;   <a href="#encodings.mac_turkish">encodings.mac_turkish</a>
- &#8226;   <a href="#encodings.mbcs">encodings.mbcs</a>
- &#8226;   <a href="#encodings.oem">encodings.oem</a>
- &#8226;   <a href="#encodings.palmos">encodings.palmos</a>
- &#8226;   <a href="#encodings.ptcp154">encodings.ptcp154</a>
- &#8226;   <a href="#encodings.punycode">encodings.punycode</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
- &#8226;   <a href="#encodings.raw_unicode_escape">encodings.raw_unicode_escape</a>
- &#8226;   <a href="#encodings.rot_13">encodings.rot_13</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
- &#8226;   <a href="#encodings.tis_620">encodings.tis_620</a>
- &#8226;   <a href="#encodings.undefined">encodings.undefined</a>
- &#8226;   <a href="#encodings.unicode_escape">encodings.unicode_escape</a>
- &#8226;   <a href="#encodings.utf_16">encodings.utf_16</a>
- &#8226;   <a href="#encodings.utf_16_be">encodings.utf_16_be</a>
- &#8226;   <a href="#encodings.utf_16_le">encodings.utf_16_le</a>
- &#8226;   <a href="#encodings.utf_32">encodings.utf_32</a>
- &#8226;   <a href="#encodings.utf_32_be">encodings.utf_32_be</a>
- &#8226;   <a href="#encodings.utf_32_le">encodings.utf_32_le</a>
- &#8226;   <a href="#encodings.utf_7">encodings.utf_7</a>
- &#8226;   <a href="#encodings.utf_8">encodings.utf_8</a>
- &#8226;   <a href="#encodings.utf_8_sig">encodings.utf_8_sig</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#encodings.zlib_codec">encodings.zlib_codec</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#encodings.ascii">encodings.ascii</a>
- &#8226;   <a href="#encodings.base64_codec">encodings.base64_codec</a>
- &#8226;   <a href="#encodings.big5">encodings.big5</a>
- &#8226;   <a href="#encodings.big5hkscs">encodings.big5hkscs</a>
- &#8226;   <a href="#encodings.bz2_codec">encodings.bz2_codec</a>
- &#8226;   <a href="#encodings.charmap">encodings.charmap</a>
- &#8226;   <a href="#encodings.cp037">encodings.cp037</a>
- &#8226;   <a href="#encodings.cp1006">encodings.cp1006</a>
- &#8226;   <a href="#encodings.cp1026">encodings.cp1026</a>
- &#8226;   <a href="#encodings.cp1125">encodings.cp1125</a>
- &#8226;   <a href="#encodings.cp1140">encodings.cp1140</a>
- &#8226;   <a href="#encodings.cp1250">encodings.cp1250</a>
- &#8226;   <a href="#encodings.cp1251">encodings.cp1251</a>
- &#8226;   <a href="#encodings.cp1252">encodings.cp1252</a>
- &#8226;   <a href="#encodings.cp1253">encodings.cp1253</a>
- &#8226;   <a href="#encodings.cp1254">encodings.cp1254</a>
- &#8226;   <a href="#encodings.cp1255">encodings.cp1255</a>
- &#8226;   <a href="#encodings.cp1256">encodings.cp1256</a>
- &#8226;   <a href="#encodings.cp1257">encodings.cp1257</a>
- &#8226;   <a href="#encodings.cp1258">encodings.cp1258</a>
- &#8226;   <a href="#encodings.cp273">encodings.cp273</a>
- &#8226;   <a href="#encodings.cp424">encodings.cp424</a>
- &#8226;   <a href="#encodings.cp437">encodings.cp437</a>
- &#8226;   <a href="#encodings.cp500">encodings.cp500</a>
- &#8226;   <a href="#encodings.cp720">encodings.cp720</a>
- &#8226;   <a href="#encodings.cp737">encodings.cp737</a>
- &#8226;   <a href="#encodings.cp775">encodings.cp775</a>
- &#8226;   <a href="#encodings.cp850">encodings.cp850</a>
- &#8226;   <a href="#encodings.cp852">encodings.cp852</a>
- &#8226;   <a href="#encodings.cp855">encodings.cp855</a>
- &#8226;   <a href="#encodings.cp856">encodings.cp856</a>
- &#8226;   <a href="#encodings.cp857">encodings.cp857</a>
- &#8226;   <a href="#encodings.cp858">encodings.cp858</a>
- &#8226;   <a href="#encodings.cp860">encodings.cp860</a>
- &#8226;   <a href="#encodings.cp861">encodings.cp861</a>
- &#8226;   <a href="#encodings.cp862">encodings.cp862</a>
- &#8226;   <a href="#encodings.cp863">encodings.cp863</a>
- &#8226;   <a href="#encodings.cp864">encodings.cp864</a>
- &#8226;   <a href="#encodings.cp865">encodings.cp865</a>
- &#8226;   <a href="#encodings.cp866">encodings.cp866</a>
- &#8226;   <a href="#encodings.cp869">encodings.cp869</a>
- &#8226;   <a href="#encodings.cp874">encodings.cp874</a>
- &#8226;   <a href="#encodings.cp875">encodings.cp875</a>
- &#8226;   <a href="#encodings.cp932">encodings.cp932</a>
- &#8226;   <a href="#encodings.cp949">encodings.cp949</a>
- &#8226;   <a href="#encodings.cp950">encodings.cp950</a>
- &#8226;   <a href="#encodings.euc_jis_2004">encodings.euc_jis_2004</a>
- &#8226;   <a href="#encodings.euc_jisx0213">encodings.euc_jisx0213</a>
- &#8226;   <a href="#encodings.euc_jp">encodings.euc_jp</a>
- &#8226;   <a href="#encodings.euc_kr">encodings.euc_kr</a>
- &#8226;   <a href="#encodings.gb18030">encodings.gb18030</a>
- &#8226;   <a href="#encodings.gb2312">encodings.gb2312</a>
- &#8226;   <a href="#encodings.gbk">encodings.gbk</a>
- &#8226;   <a href="#encodings.hex_codec">encodings.hex_codec</a>
- &#8226;   <a href="#encodings.hp_roman8">encodings.hp_roman8</a>
- &#8226;   <a href="#encodings.hz">encodings.hz</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#encodings.iso2022_jp">encodings.iso2022_jp</a>
- &#8226;   <a href="#encodings.iso2022_jp_1">encodings.iso2022_jp_1</a>
- &#8226;   <a href="#encodings.iso2022_jp_2">encodings.iso2022_jp_2</a>
- &#8226;   <a href="#encodings.iso2022_jp_2004">encodings.iso2022_jp_2004</a>
- &#8226;   <a href="#encodings.iso2022_jp_3">encodings.iso2022_jp_3</a>
- &#8226;   <a href="#encodings.iso2022_jp_ext">encodings.iso2022_jp_ext</a>
- &#8226;   <a href="#encodings.iso2022_kr">encodings.iso2022_kr</a>
- &#8226;   <a href="#encodings.iso8859_1">encodings.iso8859_1</a>
- &#8226;   <a href="#encodings.iso8859_10">encodings.iso8859_10</a>
- &#8226;   <a href="#encodings.iso8859_11">encodings.iso8859_11</a>
- &#8226;   <a href="#encodings.iso8859_13">encodings.iso8859_13</a>
- &#8226;   <a href="#encodings.iso8859_14">encodings.iso8859_14</a>
- &#8226;   <a href="#encodings.iso8859_15">encodings.iso8859_15</a>
- &#8226;   <a href="#encodings.iso8859_16">encodings.iso8859_16</a>
- &#8226;   <a href="#encodings.iso8859_2">encodings.iso8859_2</a>
- &#8226;   <a href="#encodings.iso8859_3">encodings.iso8859_3</a>
- &#8226;   <a href="#encodings.iso8859_4">encodings.iso8859_4</a>
- &#8226;   <a href="#encodings.iso8859_5">encodings.iso8859_5</a>
- &#8226;   <a href="#encodings.iso8859_6">encodings.iso8859_6</a>
- &#8226;   <a href="#encodings.iso8859_7">encodings.iso8859_7</a>
- &#8226;   <a href="#encodings.iso8859_8">encodings.iso8859_8</a>
- &#8226;   <a href="#encodings.iso8859_9">encodings.iso8859_9</a>
- &#8226;   <a href="#encodings.johab">encodings.johab</a>
- &#8226;   <a href="#encodings.koi8_r">encodings.koi8_r</a>
- &#8226;   <a href="#encodings.koi8_t">encodings.koi8_t</a>
- &#8226;   <a href="#encodings.koi8_u">encodings.koi8_u</a>
- &#8226;   <a href="#encodings.kz1048">encodings.kz1048</a>
- &#8226;   <a href="#encodings.latin_1">encodings.latin_1</a>
- &#8226;   <a href="#encodings.mac_arabic">encodings.mac_arabic</a>
- &#8226;   <a href="#encodings.mac_croatian">encodings.mac_croatian</a>
- &#8226;   <a href="#encodings.mac_cyrillic">encodings.mac_cyrillic</a>
- &#8226;   <a href="#encodings.mac_farsi">encodings.mac_farsi</a>
- &#8226;   <a href="#encodings.mac_greek">encodings.mac_greek</a>
- &#8226;   <a href="#encodings.mac_iceland">encodings.mac_iceland</a>
- &#8226;   <a href="#encodings.mac_latin2">encodings.mac_latin2</a>
- &#8226;   <a href="#encodings.mac_roman">encodings.mac_roman</a>
- &#8226;   <a href="#encodings.mac_romanian">encodings.mac_romanian</a>
- &#8226;   <a href="#encodings.mac_turkish">encodings.mac_turkish</a>
- &#8226;   <a href="#encodings.mbcs">encodings.mbcs</a>
- &#8226;   <a href="#encodings.oem">encodings.oem</a>
- &#8226;   <a href="#encodings.palmos">encodings.palmos</a>
- &#8226;   <a href="#encodings.ptcp154">encodings.ptcp154</a>
- &#8226;   <a href="#encodings.punycode">encodings.punycode</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
- &#8226;   <a href="#encodings.raw_unicode_escape">encodings.raw_unicode_escape</a>
- &#8226;   <a href="#encodings.rot_13">encodings.rot_13</a>
- &#8226;   <a href="#encodings.shift_jis">encodings.shift_jis</a>
- &#8226;   <a href="#encodings.shift_jis_2004">encodings.shift_jis_2004</a>
- &#8226;   <a href="#encodings.shift_jisx0213">encodings.shift_jisx0213</a>
- &#8226;   <a href="#encodings.tis_620">encodings.tis_620</a>
- &#8226;   <a href="#encodings.undefined">encodings.undefined</a>
- &#8226;   <a href="#encodings.unicode_escape">encodings.unicode_escape</a>
- &#8226;   <a href="#encodings.utf_16">encodings.utf_16</a>
- &#8226;   <a href="#encodings.utf_16_be">encodings.utf_16_be</a>
- &#8226;   <a href="#encodings.utf_16_le">encodings.utf_16_le</a>
- &#8226;   <a href="#encodings.utf_32">encodings.utf_32</a>
- &#8226;   <a href="#encodings.utf_32_be">encodings.utf_32_be</a>
- &#8226;   <a href="#encodings.utf_32_le">encodings.utf_32_le</a>
- &#8226;   <a href="#encodings.utf_7">encodings.utf_7</a>
- &#8226;   <a href="#encodings.utf_8">encodings.utf_8</a>
- &#8226;   <a href="#encodings.utf_8_sig">encodings.utf_8_sig</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#encodings.zlib_codec">encodings.zlib_codec</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.aliases"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/aliases.py" type="text/plain"><tt>encodings.aliases</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.ascii"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/ascii.py" type="text/plain"><tt>encodings.ascii</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.base64_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/base64_codec.py" type="text/plain"><tt>encodings.base64_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.big5"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/big5.py" type="text/plain"><tt>encodings.big5</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_tw">_codecs_tw</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.big5hkscs"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/big5hkscs.py" type="text/plain"><tt>encodings.big5hkscs</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_hk">_codecs_hk</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.bz2_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/bz2_codec.py" type="text/plain"><tt>encodings.bz2_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#bz2">bz2</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.charmap"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/charmap.py" type="text/plain"><tt>encodings.charmap</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp037"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp037.py" type="text/plain"><tt>encodings.cp037</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1006"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1006.py" type="text/plain"><tt>encodings.cp1006</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1026"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1026.py" type="text/plain"><tt>encodings.cp1026</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1125"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1125.py" type="text/plain"><tt>encodings.cp1125</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1140"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1140.py" type="text/plain"><tt>encodings.cp1140</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1250"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1250.py" type="text/plain"><tt>encodings.cp1250</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1251"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1251.py" type="text/plain"><tt>encodings.cp1251</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1252"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1252.py" type="text/plain"><tt>encodings.cp1252</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1253"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1253.py" type="text/plain"><tt>encodings.cp1253</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1254"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1254.py" type="text/plain"><tt>encodings.cp1254</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1255"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1255.py" type="text/plain"><tt>encodings.cp1255</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1256"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1256.py" type="text/plain"><tt>encodings.cp1256</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1257"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1257.py" type="text/plain"><tt>encodings.cp1257</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp1258"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp1258.py" type="text/plain"><tt>encodings.cp1258</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp273"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp273.py" type="text/plain"><tt>encodings.cp273</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp424"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp424.py" type="text/plain"><tt>encodings.cp424</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp437"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp437.py" type="text/plain"><tt>encodings.cp437</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp500"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp500.py" type="text/plain"><tt>encodings.cp500</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp720"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp720.py" type="text/plain"><tt>encodings.cp720</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp737"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp737.py" type="text/plain"><tt>encodings.cp737</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp775"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp775.py" type="text/plain"><tt>encodings.cp775</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp850"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp850.py" type="text/plain"><tt>encodings.cp850</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp852"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp852.py" type="text/plain"><tt>encodings.cp852</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp855"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp855.py" type="text/plain"><tt>encodings.cp855</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp856"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp856.py" type="text/plain"><tt>encodings.cp856</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp857"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp857.py" type="text/plain"><tt>encodings.cp857</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp858"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp858.py" type="text/plain"><tt>encodings.cp858</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp860"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp860.py" type="text/plain"><tt>encodings.cp860</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp861"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp861.py" type="text/plain"><tt>encodings.cp861</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp862"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp862.py" type="text/plain"><tt>encodings.cp862</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp863"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp863.py" type="text/plain"><tt>encodings.cp863</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp864"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp864.py" type="text/plain"><tt>encodings.cp864</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp865"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp865.py" type="text/plain"><tt>encodings.cp865</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp866"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp866.py" type="text/plain"><tt>encodings.cp866</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp869"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp869.py" type="text/plain"><tt>encodings.cp869</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp874"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp874.py" type="text/plain"><tt>encodings.cp874</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp875"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp875.py" type="text/plain"><tt>encodings.cp875</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp932"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp932.py" type="text/plain"><tt>encodings.cp932</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp949"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp949.py" type="text/plain"><tt>encodings.cp949</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_kr">_codecs_kr</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.cp950"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/cp950.py" type="text/plain"><tt>encodings.cp950</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_tw">_codecs_tw</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.euc_jis_2004"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/euc_jis_2004.py" type="text/plain"><tt>encodings.euc_jis_2004</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.euc_jisx0213"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/euc_jisx0213.py" type="text/plain"><tt>encodings.euc_jisx0213</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.euc_jp"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/euc_jp.py" type="text/plain"><tt>encodings.euc_jp</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.euc_kr"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/euc_kr.py" type="text/plain"><tt>encodings.euc_kr</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_kr">_codecs_kr</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.gb18030"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/gb18030.py" type="text/plain"><tt>encodings.gb18030</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_cn">_codecs_cn</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.gb2312"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/gb2312.py" type="text/plain"><tt>encodings.gb2312</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_cn">_codecs_cn</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.gbk"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/gbk.py" type="text/plain"><tt>encodings.gbk</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_cn">_codecs_cn</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.hex_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/hex_codec.py" type="text/plain"><tt>encodings.hex_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.hp_roman8"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/hp_roman8.py" type="text/plain"><tt>encodings.hp_roman8</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.hz"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/hz.py" type="text/plain"><tt>encodings.hz</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_cn">_codecs_cn</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.idna"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/idna.py" type="text/plain"><tt>encodings.idna</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#stringprep">stringprep</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp.py" type="text/plain"><tt>encodings.iso2022_jp</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp_1"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp_1.py" type="text/plain"><tt>encodings.iso2022_jp_1</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp_2"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp_2.py" type="text/plain"><tt>encodings.iso2022_jp_2</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp_2004"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp_2004.py" type="text/plain"><tt>encodings.iso2022_jp_2004</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp_3"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp_3.py" type="text/plain"><tt>encodings.iso2022_jp_3</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_jp_ext"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_jp_ext.py" type="text/plain"><tt>encodings.iso2022_jp_ext</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso2022_kr"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso2022_kr.py" type="text/plain"><tt>encodings.iso2022_kr</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_iso2022">_codecs_iso2022</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_1"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_1.py" type="text/plain"><tt>encodings.iso8859_1</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_10"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_10.py" type="text/plain"><tt>encodings.iso8859_10</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_11"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_11.py" type="text/plain"><tt>encodings.iso8859_11</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_13"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_13.py" type="text/plain"><tt>encodings.iso8859_13</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_14"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_14.py" type="text/plain"><tt>encodings.iso8859_14</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_15"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_15.py" type="text/plain"><tt>encodings.iso8859_15</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_16"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_16.py" type="text/plain"><tt>encodings.iso8859_16</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_2"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_2.py" type="text/plain"><tt>encodings.iso8859_2</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_3"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_3.py" type="text/plain"><tt>encodings.iso8859_3</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_4"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_4.py" type="text/plain"><tt>encodings.iso8859_4</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_5"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_5.py" type="text/plain"><tt>encodings.iso8859_5</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_6"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_6.py" type="text/plain"><tt>encodings.iso8859_6</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_7"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_7.py" type="text/plain"><tt>encodings.iso8859_7</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_8"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_8.py" type="text/plain"><tt>encodings.iso8859_8</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.iso8859_9"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/iso8859_9.py" type="text/plain"><tt>encodings.iso8859_9</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.johab"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/johab.py" type="text/plain"><tt>encodings.johab</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_kr">_codecs_kr</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.koi8_r"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/koi8_r.py" type="text/plain"><tt>encodings.koi8_r</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.koi8_t"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/koi8_t.py" type="text/plain"><tt>encodings.koi8_t</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.koi8_u"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/koi8_u.py" type="text/plain"><tt>encodings.koi8_u</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.kz1048"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/kz1048.py" type="text/plain"><tt>encodings.kz1048</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.latin_1"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/latin_1.py" type="text/plain"><tt>encodings.latin_1</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_arabic"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_arabic.py" type="text/plain"><tt>encodings.mac_arabic</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_croatian"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_croatian.py" type="text/plain"><tt>encodings.mac_croatian</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_cyrillic"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_cyrillic.py" type="text/plain"><tt>encodings.mac_cyrillic</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_farsi"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_farsi.py" type="text/plain"><tt>encodings.mac_farsi</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_greek"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_greek.py" type="text/plain"><tt>encodings.mac_greek</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_iceland"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_iceland.py" type="text/plain"><tt>encodings.mac_iceland</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_latin2"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_latin2.py" type="text/plain"><tt>encodings.mac_latin2</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_roman"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_roman.py" type="text/plain"><tt>encodings.mac_roman</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_romanian"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_romanian.py" type="text/plain"><tt>encodings.mac_romanian</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mac_turkish"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mac_turkish.py" type="text/plain"><tt>encodings.mac_turkish</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.mbcs"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/mbcs.py" type="text/plain"><tt>encodings.mbcs</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.oem"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/oem.py" type="text/plain"><tt>encodings.oem</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.palmos"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/palmos.py" type="text/plain"><tt>encodings.palmos</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.ptcp154"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/ptcp154.py" type="text/plain"><tt>encodings.ptcp154</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.punycode"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/punycode.py" type="text/plain"><tt>encodings.punycode</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.quopri_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/quopri_codec.py" type="text/plain"><tt>encodings.quopri_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#quopri">quopri</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.raw_unicode_escape"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/raw_unicode_escape.py" type="text/plain"><tt>encodings.raw_unicode_escape</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.rot_13"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/rot_13.py" type="text/plain"><tt>encodings.rot_13</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.shift_jis"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/shift_jis.py" type="text/plain"><tt>encodings.shift_jis</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.shift_jis_2004"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/shift_jis_2004.py" type="text/plain"><tt>encodings.shift_jis_2004</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.shift_jisx0213"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/shift_jisx0213.py" type="text/plain"><tt>encodings.shift_jisx0213</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_codecs_jp">_codecs_jp</a>
- &#8226;   <a href="#_multibytecodec">_multibytecodec</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.tis_620"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/tis_620.py" type="text/plain"><tt>encodings.tis_620</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.undefined"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/undefined.py" type="text/plain"><tt>encodings.undefined</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.unicode_escape"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/unicode_escape.py" type="text/plain"><tt>encodings.unicode_escape</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_16"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_16.py" type="text/plain"><tt>encodings.utf_16</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_16_be"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_16_be.py" type="text/plain"><tt>encodings.utf_16_be</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_16_le"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_16_le.py" type="text/plain"><tt>encodings.utf_16_le</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_32"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_32.py" type="text/plain"><tt>encodings.utf_32</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_32_be"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_32_be.py" type="text/plain"><tt>encodings.utf_32_be</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_32_le"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_32_le.py" type="text/plain"><tt>encodings.utf_32_le</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_7"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_7.py" type="text/plain"><tt>encodings.utf_7</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_8"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_8.py" type="text/plain"><tt>encodings.utf_8</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.utf_8_sig"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/utf_8_sig.py" type="text/plain"><tt>encodings.utf_8_sig</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.uu_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/uu_codec.py" type="text/plain"><tt>encodings.uu_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#io">io</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="encodings.zlib_codec"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/encodings/zlib_codec.py" type="text/plain"><tt>encodings.zlib_codec</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings">encodings</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="enum"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/enum.py" type="text/plain"><tt>enum</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#builtins">builtins</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio.constants">asyncio.constants</a>
- &#8226;   <a href="#asyncio.locks">asyncio.locks</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#http">http</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="errno"></a>
-  <tt>errno</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="fcntl"></a>
-  <a target="code" href="" type="text/plain"><tt>fcntl</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="fnmatch"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/fnmatch.py" type="text/plain"><tt>fnmatch</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#glob">glob</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="fractions"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/fractions.py" type="text/plain"><tt>fractions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#decimal">decimal</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#numbers">numbers</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#statistics">statistics</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ftplib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ftplib.py" type="text/plain"><tt>ftplib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#netrc">netrc</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="functools"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/functools.py" type="text/plain"><tt>functools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_functools">_functools</a>
- &#8226;   <a href="#_thread">_thread</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.threads">asyncio.threads</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email.charset">email.charset</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#importlib.metadata._functools">importlib.metadata._functools</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._discovery">setuptools._discovery</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools._vendor.zipp._functools">setuptools._vendor.zipp._functools</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py313">setuptools._vendor.zipp.compat.py313</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="gc"></a>
-  <tt>gc</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_posixsubprocess">_posixsubprocess</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="genericpath"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/genericpath.py" type="text/plain"><tt>genericpath</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#stat">stat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="getopt"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/getopt.py" type="text/plain"><tt>getopt</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#gettext">gettext</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#quopri">quopri</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="getpass"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/getpass.py" type="text/plain"><tt>getpass</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#termios">termios</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="gettext"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/gettext.py" type="text/plain"><tt>gettext</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#builtins">builtins</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#getopt">getopt</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="glob"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/glob.py" type="text/plain"><tt>glob</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="grp"></a>
-  <a target="code" href="" type="text/plain"><tt>grp</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tarfile">tarfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="gzip"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/gzip.py" type="text/plain"><tt>gzip</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_compression">_compression</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="h2"></a>
-  <a target="code" href="" type="text/plain"><tt>h2</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="hashlib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/hashlib.py" type="text/plain"><tt>hashlib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_blake2">_blake2</a>
- &#8226;   <a href="#_hashlib">_hashlib</a>
- &#8226;   <a href="#_md5">_md5</a>
- &#8226;   <a href="#_sha1">_sha1</a>
- &#8226;   <a href="#_sha2">_sha2</a>
- &#8226;   <a href="#_sha3">_sha3</a>
- &#8226;   <a href="#logging">logging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#hmac">hmac</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="heapq"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/heapq.py" type="text/plain"><tt>heapq</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_heapq">_heapq</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="hmac"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/hmac.py" type="text/plain"><tt>hmac</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_hashlib">_hashlib</a>
- &#8226;   <a href="#_operator">_operator</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#secrets">secrets</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="html"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/html/__init__.py" type="text/plain"><tt>html</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#html.entities">html.entities</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#html.entities">html.entities</a>
- &#8226;   <a href="#http.server">http.server</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="html.entities"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/html/entities.py" type="text/plain"><tt>html.entities</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#html">html</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#html">html</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="http"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/http/__init__.py" type="text/plain"><tt>http</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#enum">enum</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="http.client"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/http/client.py" type="text/plain"><tt>http.client</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#http">http</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="http.cookiejar"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/http/cookiejar.py" type="text/plain"><tt>http.cookiejar</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#calendar">calendar</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#http">http</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="http.cookies"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/http/cookies.py" type="text/plain"><tt>http.cookies</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#http">http</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.compat">requests.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="http.server"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/http/server.py" type="text/plain"><tt>http.server</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#html">html</a>
- &#8226;   <a href="#http">http</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/__init__.py" type="text/plain"><tt>idna</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#idna">idna</a>
- &#8226;   <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#idna.idnadata">idna.idnadata</a>
- &#8226;   <a href="#idna.intranges">idna.intranges</a>
- &#8226;   <a href="#idna.package_data">idna.package_data</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna">idna</a>
- &#8226;   <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#idna.idnadata">idna.idnadata</a>
- &#8226;   <a href="#idna.intranges">idna.intranges</a>
- &#8226;   <a href="#idna.package_data">idna.package_data</a>
- &#8226;   <a href="#idna.uts46data">idna.uts46data</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna.core"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/core.py" type="text/plain"><tt>idna.core</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#bisect">bisect</a>
- &#8226;   <a href="#idna">idna</a>
- &#8226;   <a href="#idna.idnadata">idna.idnadata</a>
- &#8226;   <a href="#idna.intranges">idna.intranges</a>
- &#8226;   <a href="#idna.uts46data">idna.uts46data</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna">idna</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna.idnadata"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/idnadata.py" type="text/plain"><tt>idna.idnadata</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#idna">idna</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna">idna</a>
- &#8226;   <a href="#idna.core">idna.core</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna.intranges"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/intranges.py" type="text/plain"><tt>idna.intranges</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#bisect">bisect</a>
- &#8226;   <a href="#idna">idna</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna">idna</a>
- &#8226;   <a href="#idna.core">idna.core</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna.package_data"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/package_data.py" type="text/plain"><tt>idna.package_data</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#idna">idna</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna">idna</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="idna.uts46data"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/idna/uts46data.py" type="text/plain"><tt>idna.uts46data</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#idna">idna</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#idna.core">idna.core</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/__init__.py" type="text/plain"><tt>importlib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_frozen_importlib">_frozen_importlib</a>
- &#8226;   <a href="#_frozen_importlib_external">_frozen_importlib_external</a>
- &#8226;   <a href="#_imp">_imp</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._abc">importlib._abc</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.readers">importlib.readers</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib._abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/_abc.py" type="text/plain"><tt>importlib._abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib._bootstrap"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/_bootstrap.py" type="text/plain"><tt>importlib._bootstrap</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_frozen_importlib_external">_frozen_importlib_external</a>
- &#8226;   <a href="#importlib">importlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._abc">importlib._abc</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib._bootstrap_external"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/_bootstrap_external.py" type="text/plain"><tt>importlib._bootstrap_external</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_imp">_imp</a>
- &#8226;   <a href="#_io">_io</a>
- &#8226;   <a href="#_warnings">_warnings</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.readers">importlib.readers</a>
- &#8226;   <a href="#marshal">marshal</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#posix">posix</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/abc.py" type="text/plain"><tt>importlib.abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_frozen_importlib">_frozen_importlib</a>
- &#8226;   <a href="#_frozen_importlib_external">_frozen_importlib_external</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._abc">importlib._abc</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.machinery"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/machinery.py" type="text/plain"><tt>importlib.machinery</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/__init__.py" type="text/plain"><tt>importlib.metadata</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#importlib.metadata._collections">importlib.metadata._collections</a>
- &#8226;   <a href="#importlib.metadata._functools">importlib.metadata._functools</a>
- &#8226;   <a href="#importlib.metadata._itertools">importlib.metadata._itertools</a>
- &#8226;   <a href="#importlib.metadata._meta">importlib.metadata._meta</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#importlib.metadata._collections">importlib.metadata._collections</a>
- &#8226;   <a href="#importlib.metadata._functools">importlib.metadata._functools</a>
- &#8226;   <a href="#importlib.metadata._itertools">importlib.metadata._itertools</a>
- &#8226;   <a href="#importlib.metadata._meta">importlib.metadata._meta</a>
- &#8226;   <a href="#importlib.metadata._text">importlib.metadata._text</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._adapters"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_adapters.py" type="text/plain"><tt>importlib.metadata._adapters</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email.message">email.message</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._text">importlib.metadata._text</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._collections"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_collections.py" type="text/plain"><tt>importlib.metadata._collections</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._functools"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_functools.py" type="text/plain"><tt>importlib.metadata._functools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._text">importlib.metadata._text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._itertools"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_itertools.py" type="text/plain"><tt>importlib.metadata._itertools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#itertools">itertools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._meta"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_meta.py" type="text/plain"><tt>importlib.metadata._meta</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.metadata._text"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/metadata/_text.py" type="text/plain"><tt>importlib.metadata._text</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._functools">importlib.metadata._functools</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.readers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/readers.py" type="text/plain"><tt>importlib.readers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/__init__.py" type="text/plain"><tt>importlib.resources</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources._functional">importlib.resources._functional</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#certifi.core">certifi.core</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._adapters">importlib.resources._adapters</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources._functional">importlib.resources._functional</a>
- &#8226;   <a href="#importlib.resources._itertools">importlib.resources._itertools</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources._adapters"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/_adapters.py" type="text/plain"><tt>importlib.resources._adapters</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#io">io</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.resources._common">importlib.resources._common</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources._common"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/_common.py" type="text/plain"><tt>importlib.resources._common</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._adapters">importlib.resources._adapters</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._functional">importlib.resources._functional</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources._functional"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/_functional.py" type="text/plain"><tt>importlib.resources._functional</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.resources">importlib.resources</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources._itertools"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/_itertools.py" type="text/plain"><tt>importlib.resources._itertools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.resources">importlib.resources</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.resources.readers">importlib.resources.readers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources.abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/abc.py" type="text/plain"><tt>importlib.resources.abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._adapters">importlib.resources._adapters</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.resources.readers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/resources/readers.py" type="text/plain"><tt>importlib.resources.readers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib.resources._itertools">importlib.resources._itertools</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.readers">importlib.readers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib.util"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/importlib/util.py" type="text/plain"><tt>importlib.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_imp">_imp</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._abc">importlib._abc</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib_metadata"></a>
-  <a target="code" href="" type="text/plain"><tt>importlib_metadata</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._importlib">setuptools._importlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="importlib_resources"></a>
-  <a target="code" href="" type="text/plain"><tt>importlib_resources</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="inspect"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/inspect.py" type="text/plain"><tt>inspect</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#token">token</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.extra_validations">setuptools.config._validate_pyproject.extra_validations</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="io"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/io.py" type="text/plain"><tt>io</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_io">_io</a>
- &#8226;   <a href="#abc">abc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_compression">_compression</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.iterators">email.iterators</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
- &#8226;   <a href="#encodings.uu_codec">encodings.uu_codec</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.resources._adapters">importlib.resources._adapters</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#quopri">quopri</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py310">setuptools._vendor.zipp.compat.py310</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#urllib.error">urllib.error</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ipaddress"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ipaddress.py" type="text/plain"><tt>ipaddress</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="itertools"></a>
-  <tt>itertools</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._itertools">importlib.metadata._itertools</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._itertools">setuptools._vendor.importlib_metadata._itertools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#weakref">weakref</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="jaraco"></a>
-  <a target="code" href="" type="text/plain"><tt>jaraco</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.jaraco">setuptools._vendor.jaraco</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="java"></a>
-  <a target="code" href="" type="text/plain"><tt>java</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#platform">platform</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="js"></a>
-  <a target="code" href="" type="text/plain"><tt>js</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="json"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/json/__init__.py" type="text/plain"><tt>json</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#json.decoder">json.decoder</a>
- &#8226;   <a href="#json.encoder">json.encoder</a>
- &#8226;   <a href="#json.scanner">json.scanner</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#json.decoder">json.decoder</a>
- &#8226;   <a href="#json.encoder">json.encoder</a>
- &#8226;   <a href="#json.scanner">json.scanner</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="json.decoder"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/json/decoder.py" type="text/plain"><tt>json.decoder</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_json">_json</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#json.scanner">json.scanner</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_json">_json</a>
- &#8226;   <a href="#json">json</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="json.encoder"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/json/encoder.py" type="text/plain"><tt>json.encoder</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_json">_json</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#json">json</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="json.scanner"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/json/scanner.py" type="text/plain"><tt>json.scanner</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_json">_json</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#json">json</a>
- &#8226;   <a href="#json.decoder">json.decoder</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="keyword"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/keyword.py" type="text/plain"><tt>keyword</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imported by:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="linecache"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/linecache.py" type="text/plain"><tt>linecache</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tokenize">tokenize</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="locale"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/locale.py" type="text/plain"><tt>locale</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_locale">_locale</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.aliases">encodings.aliases</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="logging"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/logging/__init__.py" type="text/plain"><tt>logging</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#atexit">atexit</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.log">asyncio.log</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.md">charset_normalizer.md</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.util">setuptools._vendor.wheel.util</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#unittest._log">unittest._log</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="lzma"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/lzma.py" type="text/plain"><tt>lzma</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_compression">_compression</a>
- &#8226;   <a href="#_lzma">_lzma</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="marshal"></a>
-  <tt>marshal</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="math"></a>
-  <tt>math</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="mimetypes"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/mimetypes.py" type="text/plain"><tt>mimetypes</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#http.server">http.server</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="mmap"></a>
-  <tt>mmap</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="more_itertools"></a>
-  <a target="code" href="" type="text/plain"><tt>more_itertools</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._itertools">setuptools._itertools</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="msvcrt"></a>
-  <tt>msvcrt</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/__init__.py" type="text/plain"><tt>multiprocessing</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.AuthenticationError">multiprocessing.AuthenticationError</a>
- &#8226;   <a href="#multiprocessing.BufferTooShort">multiprocessing.BufferTooShort</a>
- &#8226;   <a href="#multiprocessing.TimeoutError">multiprocessing.TimeoutError</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.get_context">multiprocessing.get_context</a>
- &#8226;   <a href="#multiprocessing.get_start_method">multiprocessing.get_start_method</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.set_start_method">multiprocessing.set_start_method</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.AuthenticationError"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.AuthenticationError</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.BufferTooShort"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.BufferTooShort</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.TimeoutError"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.TimeoutError</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/connection.py" type="text/plain"><tt>multiprocessing.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_multiprocessing">_multiprocessing</a>
- &#8226;   <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#hmac">hmac</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.AuthenticationError">multiprocessing.AuthenticationError</a>
- &#8226;   <a href="#multiprocessing.BufferTooShort">multiprocessing.BufferTooShort</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.context"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/context.py" type="text/plain"><tt>multiprocessing.context</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.dummy"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/dummy/__init__.py" type="text/plain"><tt>multiprocessing.dummy</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#array">array</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.dummy.connection">multiprocessing.dummy.connection</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.dummy.connection">multiprocessing.dummy.connection</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.dummy.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/dummy/connection.py" type="text/plain"><tt>multiprocessing.dummy.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#queue">queue</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.forkserver"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/forkserver.py" type="text/plain"><tt>multiprocessing.forkserver</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#atexit">atexit</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.get_context"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.get_context</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.get_start_method"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.get_start_method</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.heap"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/heap.py" type="text/plain"><tt>multiprocessing.heap</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#bisect">bisect</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#mmap">mmap</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.managers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/managers.py" type="text/plain"><tt>multiprocessing.managers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#array">array</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.get_context">multiprocessing.get_context</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.pool"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/pool.py" type="text/plain"><tt>multiprocessing.pool</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.TimeoutError">multiprocessing.TimeoutError</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.get_context">multiprocessing.get_context</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.popen_fork"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/popen_fork.py" type="text/plain"><tt>multiprocessing.popen_fork</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#atexit">atexit</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.popen_forkserver"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/popen_forkserver.py" type="text/plain"><tt>multiprocessing.popen_forkserver</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.popen_spawn_posix"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/popen_spawn_posix.py" type="text/plain"><tt>multiprocessing.popen_spawn_posix</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.popen_spawn_win32"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/popen_spawn_win32.py" type="text/plain"><tt>multiprocessing.popen_spawn_win32</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.process"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/process.py" type="text/plain"><tt>multiprocessing.process</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.queues"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/queues.py" type="text/plain"><tt>multiprocessing.queues</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.reduction"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/reduction.py" type="text/plain"><tt>multiprocessing.reduction</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#array">array</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.resource_sharer"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/resource_sharer.py" type="text/plain"><tt>multiprocessing.resource_sharer</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.resource_tracker"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/resource_tracker.py" type="text/plain"><tt>multiprocessing.resource_tracker</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_multiprocessing">_multiprocessing</a>
- &#8226;   <a href="#_posixshmem">_posixshmem</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.set_start_method"></a>
-  <a target="code" href="" type="text/plain"><tt>multiprocessing.set_start_method</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.shared_memory"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/shared_memory.py" type="text/plain"><tt>multiprocessing.shared_memory</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_posixshmem">_posixshmem</a>
- &#8226;   <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#mmap">mmap</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#secrets">secrets</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.sharedctypes"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/sharedctypes.py" type="text/plain"><tt>multiprocessing.sharedctypes</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.get_context">multiprocessing.get_context</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.context">multiprocessing.context</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.spawn"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/spawn.py" type="text/plain"><tt>multiprocessing.spawn</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.get_start_method">multiprocessing.get_start_method</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.set_start_method">multiprocessing.set_start_method</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.synchronize"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/synchronize.py" type="text/plain"><tt>multiprocessing.synchronize</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_multiprocessing">_multiprocessing</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="multiprocessing.util"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/multiprocessing/util.py" type="text/plain"><tt>multiprocessing.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_posixsubprocess">_posixsubprocess</a>
- &#8226;   <a href="#atexit">atexit</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="netrc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/netrc.py" type="text/plain"><tt>netrc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#stat">stat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="nt"></a>
-  <tt>nt</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#shutil">shutil</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ntpath"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ntpath.py" type="text/plain"><tt>ntpath</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#genericpath">genericpath</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="nturl2path"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/nturl2path.py" type="text/plain"><tt>nturl2path</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#string">string</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="numbers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/numbers.py" type="text/plain"><tt>numbers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#statistics">statistics</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="opcode"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/opcode.py" type="text/plain"><tt>opcode</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_opcode">_opcode</a>
- &#8226;   <a href="#_opcode_metadata">_opcode_metadata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#dis">dis</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="operator"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/operator.py" type="text/plain"><tt>operator</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_operator">_operator</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#functools">functools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._discovery">setuptools._discovery</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="os"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/os.py" type="text/plain"><tt>os</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#posix">posix</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#_sitebuiltins">_sitebuiltins</a>
- &#8226;   <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes.macholib.dyld">ctypes.macholib.dyld</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#curses">curses</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#genericpath">genericpath</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._meta">importlib.metadata._meta</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_forkserver">multiprocessing.popen_forkserver</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_posix">multiprocessing.popen_spawn_posix</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#netrc">netrc</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
- &#8226;   <a href="#pyi_rth_setuptools.py">pyi_rth_setuptools.py</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.zipp.glob">setuptools._vendor.zipp.glob</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path.glob">zipfile._path.glob</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="os.path"></a>
-  <a target="code" href="" type="text/plain"><tt>os.path</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#os">os</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/__init__.py" type="text/plain"><tt>packaging</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging._structures">packaging._structures</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._elffile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_elffile.py" type="text/plain"><tt>packaging._elffile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._manylinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_manylinux.py" type="text/plain"><tt>packaging._manylinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_manylinux">_manylinux</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._musllinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_musllinux.py" type="text/plain"><tt>packaging._musllinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_parser.py" type="text/plain"><tt>packaging._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._structures"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_structures.py" type="text/plain"><tt>packaging._structures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.version">packaging.version</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging._tokenizer"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/_tokenizer.py" type="text/plain"><tt>packaging._tokenizer</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.licenses"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/licenses/__init__.py" type="text/plain"><tt>packaging.licenses</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.licenses._spdx">packaging.licenses._spdx</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.licenses._spdx">packaging.licenses._spdx</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.licenses._spdx"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/licenses/_spdx.py" type="text/plain"><tt>packaging.licenses._spdx</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.licenses">packaging.licenses</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.markers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/markers.py" type="text/plain"><tt>packaging.markers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.requirements"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/requirements.py" type="text/plain"><tt>packaging.requirements</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._discovery">setuptools._discovery</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.specifiers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/specifiers.py" type="text/plain"><tt>packaging.specifiers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.tags"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/tags.py" type="text/plain"><tt>packaging.tags</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/utils.py" type="text/plain"><tt>packaging.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="packaging.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/packaging/version.py" type="text/plain"><tt>packaging.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging._structures">packaging._structures</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pathlib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pathlib/__init__.py" type="text/plain"><tt>pathlib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.unpack">setuptools._vendor.wheel.cli.unpack</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pathlib._abc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pathlib/_abc.py" type="text/plain"><tt>pathlib._abc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#stat">stat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pathlib._local"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pathlib/_local.py" type="text/plain"><tt>pathlib._local</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pathlib">pathlib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pickle"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pickle.py" type="text/plain"><tt>pickle</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_compat_pickle">_compat_pickle</a>
- &#8226;   <a href="#_pickle">_pickle</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pkgutil"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pkgutil.py" type="text/plain"><tt>pkgutil</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#marshal">marshal</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#pyi_rth_pkgutil.py">pyi_rth_pkgutil.py</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="platform"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/platform.py" type="text/plain"><tt>platform</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'java.lang'">'java.lang'</a>
- &#8226;   <a href="#_wmi">_wmi</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#java">java</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#vms_lib">vms_lib</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._compat">setuptools._vendor.importlib_metadata._compat</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="posix"></a>
-  <a target="code" href="" type="text/plain"><tt>posix</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imports:
-    <a href="#resource">resource</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#shutil">shutil</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="posixpath"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/posixpath.py" type="text/plain"><tt>posixpath</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#errno">errno</a>
- &#8226;   <a href="#genericpath">genericpath</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posix">posix</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pprint"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pprint.py" type="text/plain"><tt>pprint</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pickle">pickle</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="psutil"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/psutil/__init__.py" type="text/plain"><tt>psutil</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="psutil._common"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/psutil/_common.py" type="text/plain"><tt>psutil._common</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="psutil._psutil_windows"></a>
-  <tt>psutil._psutil_windows</tt> <span class="moduletype"><tt>C:\Users\Ilina\PycharmProjects\DjangoProject\Proekt_Wazuh\.venv\Lib\site-packages\psutil\_psutil_windows.pyd</tt></span>  <div class="import">
-imports:
-    <a href="#psutil">psutil</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="psutil._pswindows"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/psutil/_pswindows.py" type="text/plain"><tt>psutil._pswindows</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#psutil">psutil</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pwd"></a>
-  <a target="code" href="" type="text/plain"><tt>pwd</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#getpass">getpass</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#netrc">netrc</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tarfile">tarfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="py_compile"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/py_compile.py" type="text/plain"><tt>py_compile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pydoc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pydoc.py" type="text/plain"><tt>pydoc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib._bootstrap">importlib._bootstrap</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#pydoc_data.topics">pydoc_data.topics</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#reprlib">reprlib</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_sitebuiltins">_sitebuiltins</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pydoc_data"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pydoc_data/__init__.py" type="text/plain"><tt>pydoc_data</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imported by:
-    <a href="#pydoc_data.topics">pydoc_data.topics</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pydoc_data.topics"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/pydoc_data/topics.py" type="text/plain"><tt>pydoc_data.topics</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#pydoc_data">pydoc_data</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyexpat"></a>
-  <tt>pyexpat</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\pyexpat.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#xml.parsers.expat">xml.parsers.expat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyimod02_importers"></a>
-  <a target="code" href="" type="text/plain"><tt>pyimod02_importers</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#pyi_rth_pkgutil.py">pyi_rth_pkgutil.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="pyodide"></a>
-  <a target="code" href="" type="text/plain"><tt>pyodide</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="queue"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/queue.py" type="text/plain"><tt>queue</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_queue">_queue</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.dummy.connection">multiprocessing.dummy.connection</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="quopri"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/quopri.py" type="text/plain"><tt>quopri</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#binascii">binascii</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.encoders">email.encoders</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#encodings.quopri_codec">encodings.quopri_codec</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="random"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/random.py" type="text/plain"><tt>random</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_random">_random</a>
- &#8226;   <a href="#_sha2">_sha2</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#bisect">bisect</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#secrets">secrets</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="re"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/re/__init__.py" type="text/plain"><tt>re</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_sre">_sre</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#_pyrepl.completing_reader">_pyrepl.completing_reader</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#_sre">_sre</a>
- &#8226;   <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#charset_normalizer.constant">charset_normalizer.constant</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes.macholib.dylib">ctypes.macholib.dylib</a>
- &#8226;   <a href="#ctypes.macholib.framework">ctypes.macholib.framework</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.feedparser">email.feedparser</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.header">email.header</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#html">html</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#importlib.metadata._text">importlib.metadata._text</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#json.decoder">json.decoder</a>
- &#8226;   <a href="#json.encoder">json.encoder</a>
- &#8226;   <a href="#json.scanner">json.scanner</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#re._casefix">re._casefix</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._text">setuptools._vendor.importlib_metadata._text</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools._vendor.zipp.glob">setuptools._vendor.zipp.glob</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_exceptions">setuptools.config._validate_pyproject.fastjsonschema_exceptions</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_validations">setuptools.config._validate_pyproject.fastjsonschema_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#sre_compile">sre_compile</a>
- &#8226;   <a href="#sre_constants">sre_constants</a>
- &#8226;   <a href="#sre_parse">sre_parse</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
- &#8226;   <a href="#zipfile._path.glob">zipfile._path.glob</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="re._casefix"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/re/_casefix.py" type="text/plain"><tt>re._casefix</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="re._compiler"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/re/_compiler.py" type="text/plain"><tt>re._compiler</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_sre">_sre</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#re._casefix">re._casefix</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#re">re</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#sre_compile">sre_compile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="re._constants"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/re/_constants.py" type="text/plain"><tt>re._constants</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_sre">_sre</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#sre_constants">sre_constants</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="re._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/re/_parser.py" type="text/plain"><tt>re._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#sre_parse">sre_parse</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="readline"></a>
-  <a target="code" href="" type="text/plain"><tt>readline</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#code">code</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="reprlib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/reprlib.py" type="text/plain"><tt>reprlib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_thread">_thread</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#itertools">itertools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_futures">asyncio.base_futures</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/__init__.py" type="text/plain"><tt>requests</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#chardet">chardet</a>
- &#8226;   <a href="#charset_normalizer">charset_normalizer</a>
- &#8226;   <a href="#cryptography">cryptography</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.__version__">requests.__version__</a>
- &#8226;   <a href="#requests.api">requests.api</a>
- &#8226;   <a href="#requests.certs">requests.certs</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.packages">requests.packages</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.status_codes">requests.status_codes</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.__version__">requests.__version__</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.api">requests.api</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.certs">requests.certs</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.hooks">requests.hooks</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.packages">requests.packages</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.status_codes">requests.status_codes</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.__version__"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/__version__.py" type="text/plain"><tt>requests.__version__</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests._internal_utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/_internal_utils.py" type="text/plain"><tt>requests._internal_utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.adapters"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/adapters.py" type="text/plain"><tt>requests.adapters</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os.path">os.path</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.api"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/api.py" type="text/plain"><tt>requests.api</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.auth"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/auth.py" type="text/plain"><tt>requests.auth</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.certs"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/certs.py" type="text/plain"><tt>requests.certs</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#certifi">certifi</a>
- &#8226;   <a href="#requests">requests</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/compat.py" type="text/plain"><tt>requests.compat</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#http">http</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#simplejson">simplejson</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3">urllib3</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.packages">requests.packages</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.cookies"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/cookies.py" type="text/plain"><tt>requests.cookies</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#calendar">calendar</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#dummy_threading">dummy_threading</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.exceptions"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/exceptions.py" type="text/plain"><tt>requests.exceptions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.hooks"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/hooks.py" type="text/plain"><tt>requests.hooks</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.models"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/models.py" type="text/plain"><tt>requests.models</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#datetime">datetime</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#idna">idna</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.hooks">requests.hooks</a>
- &#8226;   <a href="#requests.status_codes">requests.status_codes</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.packages"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/packages.py" type="text/plain"><tt>requests.packages</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.sessions"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/sessions.py" type="text/plain"><tt>requests.sessions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.hooks">requests.hooks</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.status_codes">requests.status_codes</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.api">requests.api</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.status_codes"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/status_codes.py" type="text/plain"><tt>requests.status_codes</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.structures"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/structures.py" type="text/plain"><tt>requests.structures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.status_codes">requests.status_codes</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="requests.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/requests/utils.py" type="text/plain"><tt>requests.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#netrc">netrc</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.__version__">requests.__version__</a>
- &#8226;   <a href="#requests._internal_utils">requests._internal_utils</a>
- &#8226;   <a href="#requests.certs">requests.certs</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.structures">requests.structures</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#winreg">winreg</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="resource"></a>
-  <a target="code" href="" type="text/plain"><tt>resource</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#posix">posix</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="rlcompleter"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/rlcompleter.py" type="text/plain"><tt>rlcompleter</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#atexit">atexit</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#readline">readline</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="runpy"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/runpy.py" type="text/plain"><tt>runpy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="secrets"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/secrets.py" type="text/plain"><tt>secrets</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#hmac">hmac</a>
- &#8226;   <a href="#random">random</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="select"></a>
-  <tt>select</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\select.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="selectors"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/selectors.py" type="text/plain"><tt>selectors</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#subprocess">subprocess</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/__init__.py" type="text/plain"><tt>setuptools</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_distutils_hack.override">_distutils_hack.override</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.version">setuptools.version</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pyi_rth_setuptools.py">pyi_rth_setuptools.py</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._discovery">setuptools._discovery</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._itertools">setuptools._itertools</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
- &#8226;   <a href="#setuptools.version">setuptools.version</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._core_metadata"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_core_metadata.py" type="text/plain"><tt>setuptools._core_metadata</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#textwrap">textwrap</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._discovery"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_discovery.py" type="text/plain"><tt>setuptools._discovery</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#setuptools">setuptools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/__init__.py" type="text/plain"><tt>setuptools._distutils</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils._msvccompiler">setuptools._distutils._msvccompiler</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compilers">setuptools._distutils.compilers</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils._log"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/_log.py" type="text/plain"><tt>setuptools._distutils._log</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils._modified"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/_modified.py" type="text/plain"><tt>setuptools._distutils._modified</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils._msvccompiler"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py" type="text/plain"><tt>setuptools._distutils._msvccompiler</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.archive_util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/archive_util.py" type="text/plain"><tt>setuptools._distutils.archive_util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.ccompiler"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/ccompiler.py" type="text/plain"><tt>setuptools._distutils.ccompiler</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.compat.numpy">setuptools._distutils.compat.numpy</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.errors">setuptools._distutils.compilers.C.errors</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.cmd"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/cmd.py" type="text/plain"><tt>setuptools._distutils.cmd</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/__init__.py" type="text/plain"><tt>setuptools._distutils.command</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.check">setuptools._distutils.command.check</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command.bdist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/bdist.py" type="text/plain"><tt>setuptools._distutils.command.bdist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command">setuptools.command</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command.build"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/build.py" type="text/plain"><tt>setuptools._distutils.command.build</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.build">setuptools.command.build</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command.build_ext"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py" type="text/plain"><tt>setuptools._distutils.command.build_ext</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#concurrent.futures">concurrent.futures</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils._msvccompiler">setuptools._distutils._msvccompiler</a>
- &#8226;   <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command.check"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/check.py" type="text/plain"><tt>setuptools._distutils.command.check</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#distutils.command.check">distutils.command.check</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.command.sdist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/command/sdist.py" type="text/plain"><tt>setuptools._distutils.command.sdist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compat/__init__.py" type="text/plain"><tt>setuptools._distutils.compat</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.compat.numpy">setuptools._distutils.compat.numpy</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compat.numpy"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compat/numpy.py" type="text/plain"><tt>setuptools._distutils.compat.numpy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compat.py39"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compat/py39.py" type="text/plain"><tt>setuptools._distutils.compat.py39</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_imp">_imp</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compilers"></a>
-  <a target="code" href="-" type="text/plain"><tt>setuptools._distutils.compilers</tt></a>
-<span class="moduletype">NamespacePackage</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compilers.C"></a>
-  <a target="code" href="-" type="text/plain"><tt>setuptools._distutils.compilers.C</tt></a>
-<span class="moduletype">NamespacePackage</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils.compilers">setuptools._distutils.compilers</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._msvccompiler">setuptools._distutils._msvccompiler</a>
- &#8226;   <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.errors">setuptools._distutils.compilers.C.errors</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compilers.C.base"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py" type="text/plain"><tt>setuptools._distutils.compilers.C.base</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.errors">setuptools._distutils.compilers.C.errors</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.compat.numpy">setuptools._distutils.compat.numpy</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compilers.C.errors"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py" type="text/plain"><tt>setuptools._distutils.compilers.C.errors</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.compilers.C.msvc"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py" type="text/plain"><tt>setuptools._distutils.compilers.C.msvc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.errors">setuptools._distutils.compilers.C.errors</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._msvccompiler">setuptools._distutils._msvccompiler</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C">setuptools._distutils.compilers.C</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.core"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/core.py" type="text/plain"><tt>setuptools._distutils.core</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tokenize">tokenize</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.check">setuptools._distutils.command.check</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.debug"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/debug.py" type="text/plain"><tt>setuptools._distutils.debug</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.dir_util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/dir_util.py" type="text/plain"><tt>setuptools._distutils.dir_util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.dist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/dist.py" type="text/plain"><tt>setuptools._distutils.dist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_typeshed">_typeshed</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.errors"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/errors.py" type="text/plain"><tt>setuptools._distutils.errors</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.errors">setuptools._distutils.compilers.C.errors</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.check">setuptools._distutils.command.check</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.extension"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/extension.py" type="text/plain"><tt>setuptools._distutils.extension</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.fancy_getopt"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/fancy_getopt.py" type="text/plain"><tt>setuptools._distutils.fancy_getopt</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.file_util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/file_util.py" type="text/plain"><tt>setuptools._distutils.file_util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#errno">errno</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#stat">stat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.filelist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/filelist.py" type="text/plain"><tt>setuptools._distutils.filelist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.log"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/log.py" type="text/plain"><tt>setuptools._distutils.log</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.spawn"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/spawn.py" type="text/plain"><tt>setuptools._distutils.spawn</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.sysconfig"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/sysconfig.py" type="text/plain"><tt>setuptools._distutils.sysconfig</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.ccompiler">setuptools._distutils.ccompiler</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.text_file"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/text_file.py" type="text/plain"><tt>setuptools._distutils.text_file</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/util.py" type="text/plain"><tt>setuptools._distutils.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils._log">setuptools._distutils._log</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#distutils.util">distutils.util</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/version.py" type="text/plain"><tt>setuptools._distutils.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.versionpredicate">setuptools._distutils.versionpredicate</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._distutils.versionpredicate"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_distutils/versionpredicate.py" type="text/plain"><tt>setuptools._distutils.versionpredicate</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._entry_points"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_entry_points.py" type="text/plain"><tt>setuptools._entry_points</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._itertools">setuptools._itertools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._imp"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_imp.py" type="text/plain"><tt>setuptools._imp</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#tokenize">tokenize</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._importlib"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_importlib.py" type="text/plain"><tt>setuptools._importlib</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib_metadata">importlib_metadata</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.version">setuptools.version</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._itertools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_itertools.py" type="text/plain"><tt>setuptools._itertools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#setuptools">setuptools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._entry_points">setuptools._entry_points</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._normalization"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_normalization.py" type="text/plain"><tt>setuptools._normalization</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._path"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_path.py" type="text/plain"><tt>setuptools._path</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._reqs"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_reqs.py" type="text/plain"><tt>setuptools._reqs</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._shutil"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_shutil.py" type="text/plain"><tt>setuptools._shutil</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._static"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_static.py" type="text/plain"><tt>setuptools._static</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor"></a>
-  <a target="code" href="-" type="text/plain"><tt>setuptools._vendor</tt></a>
-<span class="moduletype">NamespacePackage</span>  <div class="import">
-imports:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.backports">setuptools._vendor.backports</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.jaraco">setuptools._vendor.jaraco</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.backports"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/backports/__init__.py" type="text/plain"><tt>setuptools._vendor.backports</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor">setuptools._vendor</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#backports">backports</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.backports.tarfile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py" type="text/plain"><tt>setuptools._vendor.backports.tarfile</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.backports">setuptools._vendor.backports</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile.compat.py38">setuptools._vendor.backports.tarfile.compat.py38</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#backports.tarfile">backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile.compat">setuptools._vendor.backports.tarfile.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.backports.tarfile.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py" type="text/plain"><tt>setuptools._vendor.backports.tarfile.compat</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.backports.tarfile.compat.py38">setuptools._vendor.backports.tarfile.compat.py38</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.backports.tarfile.compat.py38"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py" type="text/plain"><tt>setuptools._vendor.backports.tarfile.compat.py38</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.backports.tarfile.compat">setuptools._vendor.backports.tarfile.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.backports.zstd"></a>
-  <a target="code" href="" type="text/plain"><tt>setuptools._vendor.backports.zstd</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#backports">backports</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._collections">setuptools._vendor.importlib_metadata._collections</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._compat">setuptools._vendor.importlib_metadata._compat</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._itertools">setuptools._vendor.importlib_metadata._itertools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib_metadata">importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._collections">setuptools._vendor.importlib_metadata._collections</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._compat">setuptools._vendor.importlib_metadata._compat</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._itertools">setuptools._vendor.importlib_metadata._itertools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._text">setuptools._vendor.importlib_metadata._text</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._adapters"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._adapters</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._text">setuptools._vendor.importlib_metadata._text</a>
- &#8226;   <a href="#textwrap">textwrap</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._collections"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._collections</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._compat</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._functools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._functools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._text">setuptools._vendor.importlib_metadata._text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._itertools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._itertools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._meta"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._meta</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._text"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._text</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata._typing"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_typing.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata._typing</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata.compat</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata.compat.py311"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata.compat.py311</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.importlib_metadata.compat.py39"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py" type="text/plain"><tt>setuptools._vendor.importlib_metadata.compat.py39</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat">setuptools._vendor.importlib_metadata.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.jaraco"></a>
-  <a target="code" href="-" type="text/plain"><tt>setuptools._vendor.jaraco</tt></a>
-<span class="moduletype">NamespacePackage</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor">setuptools._vendor</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#jaraco">jaraco</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.jaraco.context"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/jaraco/context/__init__.py" type="text/plain"><tt>setuptools._vendor.jaraco.context</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#backports">backports</a>
- &#8226;   <a href="#backports.tarfile">backports.tarfile</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#jaraco">jaraco</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.jaraco.functools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py" type="text/plain"><tt>setuptools._vendor.jaraco.functools</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#jaraco">jaraco</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.jaraco.text"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py" type="text/plain"><tt>setuptools._vendor.jaraco.text</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#importlib_resources">importlib_resources</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#jaraco">jaraco</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.jaraco">setuptools._vendor.jaraco</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#jaraco.text">jaraco.text</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.more_itertools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py" type="text/plain"><tt>setuptools._vendor.more_itertools</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.more_itertools.more"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py" type="text/plain"><tt>setuptools._vendor.more_itertools.more</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.more_itertools.recipes"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py" type="text/plain"><tt>setuptools._vendor.more_itertools.recipes</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#bisect">bisect</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#heapq">heapq</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.more_itertools">setuptools._vendor.more_itertools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py" type="text/plain"><tt>setuptools._vendor.packaging</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging._structures">setuptools._vendor.packaging._structures</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._elffile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py" type="text/plain"><tt>setuptools._vendor.packaging._elffile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._manylinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py" type="text/plain"><tt>setuptools._vendor.packaging._manylinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_manylinux">_manylinux</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._musllinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py" type="text/plain"><tt>setuptools._vendor.packaging._musllinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_parser.py" type="text/plain"><tt>setuptools._vendor.packaging._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._structures"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py" type="text/plain"><tt>setuptools._vendor.packaging._structures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging._tokenizer"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py" type="text/plain"><tt>setuptools._vendor.packaging._tokenizer</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.markers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py" type="text/plain"><tt>setuptools._vendor.packaging.markers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.requirements"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py" type="text/plain"><tt>setuptools._vendor.packaging.requirements</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.specifiers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py" type="text/plain"><tt>setuptools._vendor.packaging.specifiers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.tags"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py" type="text/plain"><tt>setuptools._vendor.packaging.tags</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py" type="text/plain"><tt>setuptools._vendor.packaging.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.packaging.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/packaging/version.py" type="text/plain"><tt>setuptools._vendor.packaging.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging._structures">setuptools._vendor.packaging._structures</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.tomli"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/tomli/__init__.py" type="text/plain"><tt>setuptools._vendor.tomli</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.tomli._types">setuptools._vendor.tomli._types</a>
- &#8226;   <a href="#tomli">tomli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.tomli._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/tomli/_parser.py" type="text/plain"><tt>setuptools._vendor.tomli._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.tomli._types">setuptools._vendor.tomli._types</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.tomli._re"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/tomli/_re.py" type="text/plain"><tt>setuptools._vendor.tomli._re</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
- &#8226;   <a href="#setuptools._vendor.tomli._types">setuptools._vendor.tomli._types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.tomli._types"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/tomli/_types.py" type="text/plain"><tt>setuptools._vendor.tomli._types</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py" type="text/plain"><tt>setuptools._vendor.wheel</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored">setuptools._vendor.wheel.vendored</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#wheel">wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.cli"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py" type="text/plain"><tt>setuptools._vendor.wheel.cli</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.unpack">setuptools._vendor.wheel.cli.unpack</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#wheel">wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.unpack">setuptools._vendor.wheel.cli.unpack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.cli.convert"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py" type="text/plain"><tt>setuptools._vendor.wheel.cli.convert</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.cli.pack"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py" type="text/plain"><tt>setuptools._vendor.wheel.cli.pack</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.cli.tags"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py" type="text/plain"><tt>setuptools._vendor.wheel.cli.tags</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.cli.unpack"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py" type="text/plain"><tt>setuptools._vendor.wheel.cli.unpack</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.macosx_libfile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py" type="text/plain"><tt>setuptools._vendor.wheel.macosx_libfile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#wheel">wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.metadata"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py" type="text/plain"><tt>setuptools._vendor.wheel.metadata</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/util.py" type="text/plain"><tt>setuptools._vendor.wheel.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#wheel">wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.wheel.vendored">setuptools._vendor.wheel.vendored</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._structures">setuptools._vendor.wheel.vendored.packaging._structures</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._elffile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._elffile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#enum">enum</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._manylinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._manylinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_manylinux">_manylinux</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._musllinux"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._musllinux</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ast">ast</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._structures"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._structures</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging._tokenizer"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging._tokenizer</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.markers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.markers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#operator">operator</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.requirements"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.requirements</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.specifiers"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.specifiers</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#abc">abc</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.tags"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.tags</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.vendored.packaging.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py" type="text/plain"><tt>setuptools._vendor.wheel.vendored.packaging.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#itertools">itertools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging">setuptools._vendor.wheel.vendored.packaging</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._structures">setuptools._vendor.wheel.vendored.packaging._structures</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.wheel.wheelfile"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py" type="text/plain"><tt>setuptools._vendor.wheel.wheelfile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.util">setuptools._vendor.wheel.util</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#wheel">wheel</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.pack">setuptools._vendor.wheel.cli.pack</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.tags">setuptools._vendor.wheel.cli.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.unpack">setuptools._vendor.wheel.cli.unpack</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/__init__.py" type="text/plain"><tt>setuptools._vendor.zipp</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor">setuptools._vendor</a>
- &#8226;   <a href="#setuptools._vendor.zipp._functools">setuptools._vendor.zipp._functools</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py310">setuptools._vendor.zipp.compat.py310</a>
- &#8226;   <a href="#setuptools._vendor.zipp.glob">setuptools._vendor.zipp.glob</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp._functools">setuptools._vendor.zipp._functools</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat">setuptools._vendor.zipp.compat</a>
- &#8226;   <a href="#setuptools._vendor.zipp.glob">setuptools._vendor.zipp.glob</a>
- &#8226;   <a href="#zipp">zipp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp._functools"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/_functools.py" type="text/plain"><tt>setuptools._vendor.zipp._functools</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py" type="text/plain"><tt>setuptools._vendor.zipp.compat</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#zipp">zipp</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py310">setuptools._vendor.zipp.compat.py310</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py313">setuptools._vendor.zipp.compat.py313</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp.compat.overlay"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/compat/overlay.py" type="text/plain"><tt>setuptools._vendor.zipp.compat.overlay</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#importlib">importlib</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat">setuptools._vendor.zipp.compat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#zipp">zipp</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp.compat.py310"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py" type="text/plain"><tt>setuptools._vendor.zipp.compat.py310</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat">setuptools._vendor.zipp.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp.compat.py313"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/compat/py313.py" type="text/plain"><tt>setuptools._vendor.zipp.compat.py313</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat">setuptools._vendor.zipp.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp.glob">setuptools._vendor.zipp.glob</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools._vendor.zipp.glob"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/_vendor/zipp/glob.py" type="text/plain"><tt>setuptools._vendor.zipp.glob</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py313">setuptools._vendor.zipp.compat.py313</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.archive_util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/archive_util.py" type="text/plain"><tt>setuptools.archive_util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/__init__.py" type="text/plain"><tt>setuptools.command</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.build">setuptools.command.build</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command._requirestxt"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/_requirestxt.py" type="text/plain"><tt>setuptools.command._requirestxt</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.bdist_egg"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/bdist_egg.py" type="text/plain"><tt>setuptools.command.bdist_egg</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_typeshed">_typeshed</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#marshal">marshal</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.dir_util">setuptools._distutils.dir_util</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.bdist_wheel"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/bdist_wheel.py" type="text/plain"><tt>setuptools.command.bdist_wheel</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.build"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/build.py" type="text/plain"><tt>setuptools.command.build</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.egg_info"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/egg_info.py" type="text/plain"><tt>setuptools.command.egg_info</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.sdist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/sdist.py" type="text/plain"><tt>setuptools.command.sdist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.build">setuptools.command.build</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.command.setopt"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/command/setopt.py" type="text/plain"><tt>setuptools.command.setopt</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#configparser">configparser</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.compat"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/compat/__init__.py" type="text/plain"><tt>setuptools.compat</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.compat.py39">setuptools.compat.py39</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.compat.py39">setuptools.compat.py39</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.compat.py310"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/compat/py310.py" type="text/plain"><tt>setuptools.compat.py310</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tomli">tomli</a>
- &#8226;   <a href="#tomllib">tomllib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.compat.py311"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/compat/py311.py" type="text/plain"><tt>setuptools.compat.py311</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#_typeshed">_typeshed</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.compat.py39"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/compat/py39.py" type="text/plain"><tt>setuptools.compat.py39</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/__init__.py" type="text/plain"><tt>setuptools.config</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._apply_pyprojecttoml"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py" type="text/plain"><tt>setuptools.config._apply_pyprojecttoml</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py" type="text/plain"><tt>setuptools.config._validate_pyproject</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.extra_validations">setuptools.config._validate_pyproject.extra_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_exceptions">setuptools.config._validate_pyproject.fastjsonschema_exceptions</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_validations">setuptools.config._validate_pyproject.fastjsonschema_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.extra_validations">setuptools.config._validate_pyproject.extra_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_exceptions">setuptools.config._validate_pyproject.fastjsonschema_exceptions</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_validations">setuptools.config._validate_pyproject.fastjsonschema_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject.error_reporting"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py" type="text/plain"><tt>setuptools.config._validate_pyproject.error_reporting</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_exceptions">setuptools.config._validate_pyproject.fastjsonschema_exceptions</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.extra_validations">setuptools.config._validate_pyproject.extra_validations</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject.extra_validations"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py" type="text/plain"><tt>setuptools.config._validate_pyproject.extra_validations</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#inspect">inspect</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject.fastjsonschema_exceptions"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py" type="text/plain"><tt>setuptools.config._validate_pyproject.fastjsonschema_exceptions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_validations">setuptools.config._validate_pyproject.fastjsonschema_validations</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject.fastjsonschema_validations"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py" type="text/plain"><tt>setuptools.config._validate_pyproject.fastjsonschema_validations</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#decimal">decimal</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.fastjsonschema_exceptions">setuptools.config._validate_pyproject.fastjsonschema_exceptions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config._validate_pyproject.formats"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py" type="text/plain"><tt>setuptools.config._validate_pyproject.formats</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#builtins">builtins</a>
- &#8226;   <a href="#email.message">email.message</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging">packaging</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools._vendor.packaging">setuptools._vendor.packaging</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#trove_classifiers">trove_classifiers</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config.expand"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/expand.py" type="text/plain"><tt>setuptools.config.expand</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config.pyprojecttoml"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/pyprojecttoml.py" type="text/plain"><tt>setuptools.config.pyprojecttoml</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.config.setupcfg"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/config/setupcfg.py" type="text/plain"><tt>setuptools.config.setupcfg</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.depends"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/depends.py" type="text/plain"><tt>setuptools.depends</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#marshal">marshal</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.discovery"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/discovery.py" type="text/plain"><tt>setuptools.discovery</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_distutils_hack.override">_distutils_hack.override</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.dist"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/dist.py" type="text/plain"><tt>setuptools.dist</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#numbers">numbers</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command">setuptools._distutils.command</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.debug">setuptools._distutils.debug</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.errors">setuptools.errors</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#setuptools.windows_support">setuptools.windows_support</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command.build">setuptools.command.build</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.errors"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/errors.py" type="text/plain"><tt>setuptools.errors</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._entry_points">setuptools._entry_points</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.extension"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/extension.py" type="text/plain"><tt>setuptools.extension</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.glob"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/glob.py" type="text/plain"><tt>setuptools.glob</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#_typeshed">_typeshed</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.installer"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/installer.py" type="text/plain"><tt>setuptools.installer</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.logging"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/logging.py" type="text/plain"><tt>setuptools.logging</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#inspect">inspect</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.monkey"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/monkey.py" type="text/plain"><tt>setuptools.monkey</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.msvc"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/msvc.py" type="text/plain"><tt>setuptools.msvc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#more_itertools">more_itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils.errors">setuptools._distutils.errors</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.unicode_utils"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/unicode_utils.py" type="text/plain"><tt>setuptools.unicode_utils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#configparser">configparser</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.compat">setuptools.compat</a>
- &#8226;   <a href="#setuptools.compat.py39">setuptools.compat.py39</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.command.setopt">setuptools.command.setopt</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/version.py" type="text/plain"><tt>setuptools.version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.warnings"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/warnings.py" type="text/plain"><tt>setuptools.warnings</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.wheel"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/wheel.py" type="text/plain"><tt>setuptools.wheel</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#distutils">distutils</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._discovery">setuptools._discovery</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.installer">setuptools.installer</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="setuptools.windows_support"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/setuptools/windows_support.py" type="text/plain"><tt>setuptools.windows_support</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.wintypes">ctypes.wintypes</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#setuptools">setuptools</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="shlex"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/shlex.py" type="text/plain"><tt>shlex</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="shutil"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/shutil.py" type="text/plain"><tt>shutil</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#nt">nt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#posix">posix</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="signal"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/signal.py" type="text/plain"><tt>signal</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_signal">_signal</a>
- &#8226;   <a href="#enum">enum</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.popen_fork">multiprocessing.popen_fork</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="simplejson"></a>
-  <a target="code" href="" type="text/plain"><tt>simplejson</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#requests.compat">requests.compat</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="site"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/site.py" type="text/plain"><tt>site</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#_sitebuiltins">_sitebuiltins</a>
- &#8226;   <a href="#atexit">atexit</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#readline">readline</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#sitecustomize">sitecustomize</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#usercustomize">usercustomize</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.commands">_pyrepl.commands</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sitecustomize"></a>
-  <a target="code" href="" type="text/plain"><tt>sitecustomize</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="socket"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/socket.py" type="text/plain"><tt>socket</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_socket">_socket</a>
- &#8226;   <a href="#array">array</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_ssl">_ssl</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.trsock">asyncio.trsock</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="socketserver"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/socketserver.py" type="text/plain"><tt>socketserver</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#http.server">http.server</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="socks"></a>
-  <a target="code" href="" type="text/plain"><tt>socks</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sre_compile"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/sre_compile.py" type="text/plain"><tt>sre_compile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sre_constants"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/sre_constants.py" type="text/plain"><tt>sre_constants</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._constants">re._constants</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sre_parse"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/sre_parse.py" type="text/plain"><tt>sre_parse</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#sctry.py">sctry.py</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="ssl"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/ssl.py" type="text/plain"><tt>ssl</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_ssl">_ssl</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="stat"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/stat.py" type="text/plain"><tt>stat</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_stat">_stat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#genericpath">genericpath</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#netrc">netrc</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pathlib._abc">pathlib._abc</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.file_util">setuptools._distutils.file_util</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="statistics"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/statistics.py" type="text/plain"><tt>statistics</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_statistics">_statistics</a>
- &#8226;   <a href="#bisect">bisect</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#decimal">decimal</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#numbers">numbers</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#random">random</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="string"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/string.py" type="text/plain"><tt>string</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_string">_string</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email._encoded_words">email._encoded_words</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.quoprimime">email.quoprimime</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#nturl2path">nturl2path</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="stringprep"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/stringprep.py" type="text/plain"><tt>stringprep</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#unicodedata">unicodedata</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#encodings.idna">encodings.idna</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="struct"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/struct.py" type="text/plain"><tt>struct</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_struct">_struct</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="subprocess"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/subprocess.py" type="text/plain"><tt>subprocess</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_posixsubprocess">_posixsubprocess</a>
- &#8226;   <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#fcntl">fcntl</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#msvcrt">msvcrt</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.subprocess">asyncio.subprocess</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sys"></a>
-  <tt>sys</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_compression">_compression</a>
- &#8226;   <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#_ios_support">_ios_support</a>
- &#8226;   <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#_pydecimal">_pydecimal</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#_sitebuiltins">_sitebuiltins</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#certifi.core">certifi.core</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#ctypes._aix">ctypes._aix</a>
- &#8226;   <a href="#ctypes._endian">ctypes._endian</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#curses">curses</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#decimal">decimal</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.iterators">email.iterators</a>
- &#8226;   <a href="#email.policy">email.policy</a>
- &#8226;   <a href="#encodings">encodings</a>
- &#8226;   <a href="#encodings.rot_13">encodings.rot_13</a>
- &#8226;   <a href="#encodings.utf_16">encodings.utf_16</a>
- &#8226;   <a href="#encodings.utf_32">encodings.utf_32</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#fractions">fractions</a>
- &#8226;   <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#getopt">getopt</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib">importlib</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#multiprocessing">multiprocessing</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.popen_spawn_win32">multiprocessing.popen_spawn_win32</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#ntpath">ntpath</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
- &#8226;   <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
- &#8226;   <a href="#quopri">quopri</a>
- &#8226;   <a href="#re._compiler">re._compiler</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#requests.packages">requests.packages</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#selectors">selectors</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils">setuptools._distutils</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compat.py39">setuptools._distutils.compat.py39</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.text_file">setuptools._distutils.text_file</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._importlib">setuptools._importlib</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile.compat.py38">setuptools._vendor.backports.tarfile.compat.py38</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._compat">setuptools._vendor.importlib_metadata._compat</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.recipes">setuptools._vendor.more_itertools.recipes</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py310">setuptools._vendor.zipp.compat.py310</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.py313">setuptools._vendor.zipp.compat.py313</a>
- &#8226;   <a href="#setuptools.command">setuptools.command</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.compat.py39">setuptools.compat.py39</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#setuptools.logging">setuptools.logging</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#statistics">statistics</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#tokenize">tokenize</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
- &#8226;   <a href="#xml.parsers.expat">xml.parsers.expat</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="sysconfig"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/sysconfig/__init__.py" type="text/plain"><tt>sysconfig</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#_sysconfig">_sysconfig</a>
- &#8226;   <a href="#_winapi">_winapi</a>
- &#8226;   <a href="#importlib.machinery">importlib.machinery</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_aix_support">_aix_support</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tarfile"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tarfile.py" type="text/plain"><tt>tarfile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#grp">grp</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#pwd">pwd</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#shutil">shutil</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tempfile"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tempfile.py" type="text/plain"><tt>tempfile</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_thread">_thread</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#ctypes.util">ctypes.util</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools.installer">setuptools.installer</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib.response">urllib.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="termios"></a>
-  <a target="code" href="" type="text/plain"><tt>termios</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.fancy_termios">_pyrepl.fancy_termios</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.unix_eventqueue">_pyrepl.unix_eventqueue</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#tty">tty</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="textwrap"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/textwrap.py" type="text/plain"><tt>textwrap</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#re">re</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools._core_metadata">setuptools._core_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._adapters">setuptools._vendor.importlib_metadata._adapters</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#traceback">traceback</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="threading"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/threading.py" type="text/plain"><tt>threading</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections">_collections</a>
- &#8226;   <a href="#_thread">_thread</a>
- &#8226;   <a href="#_threading_local">_threading_local</a>
- &#8226;   <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_threading_local">_threading_local</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.mixins">asyncio.mixins</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.runners">asyncio.runners</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.context">multiprocessing.context</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.heap">multiprocessing.heap</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.http2.probe">urllib3.http2.probe</a>
- &#8226;   <a href="#webbrowser">webbrowser</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="time"></a>
-  <tt>time</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imports:
-    <a href="#_strptime">_strptime</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_datetime">_datetime</a>
- &#8226;   <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#email._parseaddr">email._parseaddr</a>
- &#8226;   <a href="#email.generator">email.generator</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#gc">gc</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.connection">multiprocessing.connection</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
- &#8226;   <a href="#psutil">psutil</a>
- &#8226;   <a href="#psutil._pswindows">psutil._pswindows</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.cookies">requests.cookies</a>
- &#8226;   <a href="#requests.sessions">requests.sessions</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.command.egg_info">setuptools.command.egg_info</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="token"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/token.py" type="text/plain"><tt>token</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imported by:
-    <a href="#inspect">inspect</a>
- &#8226;   <a href="#tokenize">tokenize</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tokenize"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tokenize.py" type="text/plain"><tt>tokenize</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_tokenize">_tokenize</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#token">token</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.main">_pyrepl.main</a>
- &#8226;   <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#setuptools._distutils.core">setuptools._distutils.core</a>
- &#8226;   <a href="#setuptools._imp">setuptools._imp</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tomli"></a>
-  <a target="code" href="" type="text/plain"><tt>tomli</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.tomli">setuptools._vendor.tomli</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tomllib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tomllib/__init__.py" type="text/plain"><tt>tomllib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#tomllib._parser">tomllib._parser</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools.compat.py310">setuptools.compat.py310</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#tomllib._types">tomllib._types</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tomllib._parser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tomllib/_parser.py" type="text/plain"><tt>tomllib._parser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#tomllib">tomllib</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#tomllib._types">tomllib._types</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#tomllib">tomllib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tomllib._re"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tomllib/_re.py" type="text/plain"><tt>tomllib._re</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#tomllib">tomllib</a>
- &#8226;   <a href="#tomllib._types">tomllib._types</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#tomllib._parser">tomllib._parser</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tomllib._types"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tomllib/_types.py" type="text/plain"><tt>tomllib._types</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#tomllib">tomllib</a>
- &#8226;   <a href="#typing">typing</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="traceback"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/traceback.py" type="text/plain"><tt>traceback</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#_colorize">_colorize</a>
- &#8226;   <a href="#_suggestions">_suggestions</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#textwrap">textwrap</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_tasks">asyncio.base_tasks</a>
- &#8226;   <a href="#asyncio.format_helpers">asyncio.format_helpers</a>
- &#8226;   <a href="#code">code</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.process">multiprocessing.process</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#site">site</a>
- &#8226;   <a href="#socketserver">socketserver</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tracemalloc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tracemalloc.py" type="text/plain"><tt>tracemalloc</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#_tracemalloc">_tracemalloc</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#pickle">pickle</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="trove_classifiers"></a>
-  <a target="code" href="" type="text/plain"><tt>trove_classifiers</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="tty"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/tty.py" type="text/plain"><tt>tty</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#termios">termios</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl.pager">_pyrepl.pager</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="types"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/types.py" type="text/plain"><tt>types</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_socket">_socket</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#asyncio.futures">asyncio.futures</a>
- &#8226;   <a href="#asyncio.queues">asyncio.queues</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#concurrent.futures._base">concurrent.futures._base</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#configparser">configparser</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#csv">csv</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#dis">dis</a>
- &#8226;   <a href="#email.headerregistry">email.headerregistry</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#http.cookies">http.cookies</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._functools">importlib.metadata._functools</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.managers">multiprocessing.managers</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.shared_memory">multiprocessing.shared_memory</a>
- &#8226;   <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
- &#8226;   <a href="#pickle">pickle</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py311">setuptools._vendor.importlib_metadata.compat.py311</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="typing"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/typing.py" type="text/plain"><tt>typing</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#_typing">_typing</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#copyreg">copyreg</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_pyrepl._threading_handler">_pyrepl._threading_handler</a>
- &#8226;   <a href="#_pyrepl.console">_pyrepl.console</a>
- &#8226;   <a href="#_pyrepl.pager">_pyrepl.pager</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_pyrepl.simple_interact">_pyrepl.simple_interact</a>
- &#8226;   <a href="#_pyrepl.trace">_pyrepl.trace</a>
- &#8226;   <a href="#_pyrepl.unix_console">_pyrepl.unix_console</a>
- &#8226;   <a href="#_pyrepl.windows_console">_pyrepl.windows_console</a>
- &#8226;   <a href="#asyncio.timeouts">asyncio.timeouts</a>
- &#8226;   <a href="#charset_normalizer.api">charset_normalizer.api</a>
- &#8226;   <a href="#charset_normalizer.cd">charset_normalizer.cd</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#charset_normalizer.models">charset_normalizer.models</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#idna.intranges">idna.intranges</a>
- &#8226;   <a href="#idna.uts46data">idna.uts46data</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._meta">importlib.metadata._meta</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources.abc">importlib.resources.abc</a>
- &#8226;   <a href="#packaging._elffile">packaging._elffile</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging._musllinux">packaging._musllinux</a>
- &#8226;   <a href="#packaging._parser">packaging._parser</a>
- &#8226;   <a href="#packaging._structures">packaging._structures</a>
- &#8226;   <a href="#packaging._tokenizer">packaging._tokenizer</a>
- &#8226;   <a href="#packaging.licenses">packaging.licenses</a>
- &#8226;   <a href="#packaging.licenses._spdx">packaging.licenses._spdx</a>
- &#8226;   <a href="#packaging.markers">packaging.markers</a>
- &#8226;   <a href="#packaging.requirements">packaging.requirements</a>
- &#8226;   <a href="#packaging.specifiers">packaging.specifiers</a>
- &#8226;   <a href="#packaging.tags">packaging.tags</a>
- &#8226;   <a href="#packaging.utils">packaging.utils</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#setuptools">setuptools</a>
- &#8226;   <a href="#setuptools._distutils._modified">setuptools._distutils._modified</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.command.build">setuptools._distutils.command.build</a>
- &#8226;   <a href="#setuptools._distutils.command.build_ext">setuptools._distutils.command.build_ext</a>
- &#8226;   <a href="#setuptools._distutils.command.check">setuptools._distutils.command.check</a>
- &#8226;   <a href="#setuptools._distutils.command.sdist">setuptools._distutils.command.sdist</a>
- &#8226;   <a href="#setuptools._distutils.compat">setuptools._distutils.compat</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.fancy_getopt">setuptools._distutils.fancy_getopt</a>
- &#8226;   <a href="#setuptools._distutils.filelist">setuptools._distutils.filelist</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._normalization">setuptools._normalization</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._shutil">setuptools._shutil</a>
- &#8226;   <a href="#setuptools._static">setuptools._static</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata">setuptools._vendor.importlib_metadata</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._collections">setuptools._vendor.importlib_metadata._collections</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._functools">setuptools._vendor.importlib_metadata._functools</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._meta">setuptools._vendor.importlib_metadata._meta</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata._typing">setuptools._vendor.importlib_metadata._typing</a>
- &#8226;   <a href="#setuptools._vendor.importlib_metadata.compat.py39">setuptools._vendor.importlib_metadata.compat.py39</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.text">setuptools._vendor.jaraco.text</a>
- &#8226;   <a href="#setuptools._vendor.packaging._elffile">setuptools._vendor.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._musllinux">setuptools._vendor.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.packaging._parser">setuptools._vendor.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.packaging._tokenizer">setuptools._vendor.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.packaging.markers">setuptools._vendor.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.requirements">setuptools._vendor.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.packaging.specifiers">setuptools._vendor.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.packaging.tags">setuptools._vendor.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.packaging.utils">setuptools._vendor.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.packaging.version">setuptools._vendor.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.tomli._re">setuptools._vendor.tomli._re</a>
- &#8226;   <a href="#setuptools._vendor.tomli._types">setuptools._vendor.tomli._types</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.metadata">setuptools._vendor.wheel.metadata</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._elffile">setuptools._vendor.wheel.vendored.packaging._elffile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._musllinux">setuptools._vendor.wheel.vendored.packaging._musllinux</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._parser">setuptools._vendor.wheel.vendored.packaging._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._tokenizer">setuptools._vendor.wheel.vendored.packaging._tokenizer</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.markers">setuptools._vendor.wheel.vendored.packaging.markers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.requirements">setuptools._vendor.wheel.vendored.packaging.requirements</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.specifiers">setuptools._vendor.wheel.vendored.packaging.specifiers</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.tags">setuptools._vendor.wheel.vendored.packaging.tags</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.utils">setuptools._vendor.wheel.vendored.packaging.utils</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging.version">setuptools._vendor.wheel.vendored.packaging.version</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.command._requirestxt">setuptools.command._requirestxt</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.command.build">setuptools.command.build</a>
- &#8226;   <a href="#setuptools.command.sdist">setuptools.command.sdist</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.config">setuptools.config</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject">setuptools.config._validate_pyproject</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.extra_validations">setuptools.config._validate_pyproject.extra_validations</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.depends">setuptools.depends</a>
- &#8226;   <a href="#setuptools.discovery">setuptools.discovery</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.extension">setuptools.extension</a>
- &#8226;   <a href="#setuptools.glob">setuptools.glob</a>
- &#8226;   <a href="#setuptools.monkey">setuptools.monkey</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#tomllib._parser">tomllib._parser</a>
- &#8226;   <a href="#tomllib._re">tomllib._re</a>
- &#8226;   <a href="#tomllib._types">tomllib._types</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3._version">urllib3._version</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="typing_extensions"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/typing_extensions.py" type="text/plain"><tt>typing_extensions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'collections.abc'">'collections.abc'</a>
- &#8226;   <a href="#_socket">_socket</a>
- &#8226;   <a href="#abc">abc</a>
- &#8226;   <a href="#annotationlib">annotationlib</a>
- &#8226;   <a href="#asyncio.coroutines">asyncio.coroutines</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#keyword">keyword</a>
- &#8226;   <a href="#operator">operator</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#setuptools._distutils.cmd">setuptools._distutils.cmd</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._path">setuptools._path</a>
- &#8226;   <a href="#setuptools._reqs">setuptools._reqs</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.compat.py311">setuptools.compat.py311</a>
- &#8226;   <a href="#setuptools.config._apply_pyprojecttoml">setuptools.config._apply_pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.error_reporting">setuptools.config._validate_pyproject.error_reporting</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#setuptools.config.expand">setuptools.config.expand</a>
- &#8226;   <a href="#setuptools.config.pyprojecttoml">setuptools.config.pyprojecttoml</a>
- &#8226;   <a href="#setuptools.config.setupcfg">setuptools.config.setupcfg</a>
- &#8226;   <a href="#setuptools.dist">setuptools.dist</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unicodedata"></a>
-  <tt>unicodedata</tt> <span class="moduletype"><tt>C:\Users\Ilina\AppData\Local\Programs\Python\Python313\DLLs\unicodedata.pyd</tt></span>  <div class="import">
-imported by:
-    <a href="#_pyrepl.input">_pyrepl.input</a>
- &#8226;   <a href="#_pyrepl.reader">_pyrepl.reader</a>
- &#8226;   <a href="#_pyrepl.utils">_pyrepl.utils</a>
- &#8226;   <a href="#charset_normalizer.utils">charset_normalizer.utils</a>
- &#8226;   <a href="#encodings.idna">encodings.idna</a>
- &#8226;   <a href="#idna.core">idna.core</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#setuptools.unicode_utils">setuptools.unicode_utils</a>
- &#8226;   <a href="#stringprep">stringprep</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/__init__.py" type="text/plain"><tt>unittest</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest._log">unittest._log</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest._log"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/_log.py" type="text/plain"><tt>unittest._log</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest.case">unittest.case</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.async_case"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/async_case.py" type="text/plain"><tt>unittest.async_case</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#contextvars">contextvars</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.case"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/case.py" type="text/plain"><tt>unittest.case</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#difflib">difflib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest._log">unittest._log</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest._log">unittest._log</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.loader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/loader.py" type="text/plain"><tt>unittest.loader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.main"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/main.py" type="text/plain"><tt>unittest.main</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.mock"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/mock.py" type="text/plain"><tt>unittest.mock</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_io">_io</a>
- &#8226;   <a href="#asyncio">asyncio</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#pprint">pprint</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.result"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/result.py" type="text/plain"><tt>unittest.result</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.runner"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/runner.py" type="text/plain"><tt>unittest.runner</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.signals"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/signals.py" type="text/plain"><tt>unittest.signals</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#functools">functools</a>
- &#8226;   <a href="#signal">signal</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.main">unittest.main</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.suite"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/suite.py" type="text/plain"><tt>unittest.suite</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#sys">sys</a>
- &#8226;   <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.util">unittest.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="unittest.util"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/unittest/util.py" type="text/plain"><tt>unittest.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#os.path">os.path</a>
- &#8226;   <a href="#unittest">unittest</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#unittest">unittest</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.loader">unittest.loader</a>
- &#8226;   <a href="#unittest.mock">unittest.mock</a>
- &#8226;   <a href="#unittest.result">unittest.result</a>
- &#8226;   <a href="#unittest.suite">unittest.suite</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/urllib/__init__.py" type="text/plain"><tt>urllib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imported by:
-    <a href="#email._header_value_parser">email._header_value_parser</a>
- &#8226;   <a href="#urllib.error">urllib.error</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib.response">urllib.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib.error"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/urllib/error.py" type="text/plain"><tt>urllib.error</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#urllib">urllib</a>
- &#8226;   <a href="#urllib.response">urllib.response</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib.parse"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/urllib/parse.py" type="text/plain"><tt>urllib.parse</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#collections">collections</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#math">math</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#unicodedata">unicodedata</a>
- &#8226;   <a href="#urllib">urllib</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#nturl2path">nturl2path</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib.request"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/urllib/request.py" type="text/plain"><tt>urllib.request</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_scproxy">_scproxy</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#bisect">bisect</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#fnmatch">fnmatch</a>
- &#8226;   <a href="#ftplib">ftplib</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#nturl2path">nturl2path</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#string">string</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#urllib">urllib</a>
- &#8226;   <a href="#urllib.error">urllib.error</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.response">urllib.response</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#winreg">winreg</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.context">setuptools._vendor.jaraco.context</a>
- &#8226;   <a href="#setuptools.config._validate_pyproject.formats">setuptools.config._validate_pyproject.formats</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib.response"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/urllib/response.py" type="text/plain"><tt>urllib.response</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#urllib">urllib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib.error">urllib.error</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/__init__.py" type="text/plain"><tt>urllib3</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._version">urllib3._version</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.compat">requests.compat</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3._version">urllib3._version</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3._base_connection"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/_base_connection.py" type="text/plain"><tt>urllib3._base_connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3._collections"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/_collections.py" type="text/plain"><tt>urllib3._collections</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3">urllib3</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3._request_methods"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/_request_methods.py" type="text/plain"><tt>urllib3._request_methods</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3._version"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/_version.py" type="text/plain"><tt>urllib3._version</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/connection.py" type="text/plain"><tt>urllib3.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._version">urllib3._version</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.http2.probe">urllib3.http2.probe</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.connectionpool"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/connectionpool.py" type="text/plain"><tt>urllib3.connectionpool</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#queue">queue</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#weakref">weakref</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/__init__.py" type="text/plain"><tt>urllib3.contrib</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.emscripten"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/emscripten/__init__.py" type="text/plain"><tt>urllib3.contrib.emscripten</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.emscripten.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/emscripten/connection.py" type="text/plain"><tt>urllib3.contrib.emscripten.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.emscripten.fetch"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py" type="text/plain"><tt>urllib3.contrib.emscripten.fetch</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'pyodide.ffi'">'pyodide.ffi'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.parser">email.parser</a>
- &#8226;   <a href="#importlib.resources">importlib.resources</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#js">js</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#pyodide">pyodide</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.emscripten.request"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/emscripten/request.py" type="text/plain"><tt>urllib3.contrib.emscripten.request</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.emscripten.response"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/emscripten/response.py" type="text/plain"><tt>urllib3.contrib.emscripten.response</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#dataclasses">dataclasses</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten">urllib3.contrib.emscripten</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.request">urllib3.contrib.emscripten.request</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.fetch">urllib3.contrib.emscripten.fetch</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.pyopenssl"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/pyopenssl.py" type="text/plain"><tt>urllib3.contrib.pyopenssl</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'OpenSSL.crypto'">'OpenSSL.crypto'</a>
- &#8226;   <a href="#'cryptography.x509'">'cryptography.x509'</a>
- &#8226;   <a href="#OpenSSL">OpenSSL</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#cryptography">cryptography</a>
- &#8226;   <a href="#idna">idna</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.contrib.socks"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/contrib/socks.py" type="text/plain"><tt>urllib3.contrib.socks</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#socks">socks</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib">urllib3.contrib</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.exceptions"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/exceptions.py" type="text/plain"><tt>urllib3.exceptions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests">requests</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.exceptions">requests.exceptions</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.fields"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/fields.py" type="text/plain"><tt>urllib3.fields</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#urllib3.filepost">urllib3.filepost</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.filepost"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/filepost.py" type="text/plain"><tt>urllib3.filepost</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#codecs">codecs</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.http2"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/http2/__init__.py" type="text/plain"><tt>urllib3.http2</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.http2.probe">urllib3.http2.probe</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.http2.probe">urllib3.http2.probe</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.http2.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/http2/connection.py" type="text/plain"><tt>urllib3.http2.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#'h2.connection'">'h2.connection'</a>
- &#8226;   <a href="#'h2.events'">'h2.events'</a>
- &#8226;   <a href="#__future__">__future__</a>
- &#8226;   <a href="#h2">h2</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.http2">urllib3.http2</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.http2.probe"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/http2/probe.py" type="text/plain"><tt>urllib3.http2.probe</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.poolmanager"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/poolmanager.py" type="text/plain"><tt>urllib3.poolmanager</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.response"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/response.py" type="text/plain"><tt>urllib3.response</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#backports">backports</a>
- &#8226;   <a href="#brotli">brotli</a>
- &#8226;   <a href="#brotlicffi">brotlicffi</a>
- &#8226;   <a href="#collections">collections</a>
- &#8226;   <a href="#compression">compression</a>
- &#8226;   <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#json">json</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#setuptools._vendor.backports.zstd">setuptools._vendor.backports.zstd</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._collections">urllib3._collections</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3._request_methods">urllib3._request_methods</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.http2.connection">urllib3.http2.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/__init__.py" type="text/plain"><tt>urllib3.util</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.models">requests.models</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.contrib.pyopenssl">urllib3.contrib.pyopenssl</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.response">urllib3.util.response</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
- &#8226;   <a href="#urllib3.util.wait">urllib3.util.wait</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.connection"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/connection.py" type="text/plain"><tt>urllib3.util.connection</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.timeout">urllib3.util.timeout</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.proxy"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/proxy.py" type="text/plain"><tt>urllib3.util.proxy</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.request"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/request.py" type="text/plain"><tt>urllib3.util.request</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#backports">backports</a>
- &#8226;   <a href="#base64">base64</a>
- &#8226;   <a href="#brotli">brotli</a>
- &#8226;   <a href="#brotlicffi">brotlicffi</a>
- &#8226;   <a href="#compression">compression</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#setuptools._vendor.backports.zstd">setuptools._vendor.backports.zstd</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.response"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/response.py" type="text/plain"><tt>urllib3.util.response</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email.errors">email.errors</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.retry"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/retry.py" type="text/plain"><tt>urllib3.util.retry</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#email">email</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.response">urllib3.contrib.emscripten.response</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.ssl_"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/ssl_.py" type="text/plain"><tt>urllib3.util.ssl_</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#hashlib">hashlib</a>
- &#8226;   <a href="#hmac">hmac</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
- &#8226;   <a href="#warnings">warnings</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.http2">urllib3.http2</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.ssl_match_hostname">urllib3.util.ssl_match_hostname</a>
- &#8226;   <a href="#urllib3.util.ssltransport">urllib3.util.ssltransport</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.ssl_match_hostname"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/ssl_match_hostname.py" type="text/plain"><tt>urllib3.util.ssl_match_hostname</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#ipaddress">ipaddress</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.ssltransport"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/ssltransport.py" type="text/plain"><tt>urllib3.util.ssltransport</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.timeout"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/timeout.py" type="text/plain"><tt>urllib3.util.timeout</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.connection">urllib3.util.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.url"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/url.py" type="text/plain"><tt>urllib3.util.url</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#idna">idna</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.util">urllib3.util.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3._base_connection">urllib3._base_connection</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.emscripten.connection">urllib3.contrib.emscripten.connection</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
- &#8226;   <a href="#urllib3.util.proxy">urllib3.util.proxy</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.util"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/util.py" type="text/plain"><tt>urllib3.util.util</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#types">types</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.util.request">urllib3.util.request</a>
- &#8226;   <a href="#urllib3.util.retry">urllib3.util.retry</a>
- &#8226;   <a href="#urllib3.util.url">urllib3.util.url</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="urllib3.util.wait"></a>
-  <a target="code" href="///C:/Users/Ilina/PycharmProjects/DjangoProject/Proekt_Wazuh/.venv/Lib/site-packages/urllib3/util/wait.py" type="text/plain"><tt>urllib3.util.wait</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#__future__">__future__</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#select">select</a>
- &#8226;   <a href="#socket">socket</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.util">urllib3.util</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="usercustomize"></a>
-  <a target="code" href="" type="text/plain"><tt>usercustomize</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#site">site</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="vms_lib"></a>
-  <a target="code" href="" type="text/plain"><tt>vms_lib</tt></a>
-<span class="moduletype">MissingModule</span>  <div class="import">
-imported by:
-    <a href="#platform">platform</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="warnings"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/warnings.py" type="text/plain"><tt>warnings</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_warnings">_warnings</a>
- &#8226;   <a href="#builtins">builtins</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#linecache">linecache</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#tracemalloc">tracemalloc</a>
- &#8226;   <a href="#types">types</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_distutils_hack">_distutils_hack</a>
- &#8226;   <a href="#_pydatetime">_pydatetime</a>
- &#8226;   <a href="#_pyrepl.readline">_pyrepl.readline</a>
- &#8226;   <a href="#_strptime">_strptime</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#ast">ast</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.base_subprocess">asyncio.base_subprocess</a>
- &#8226;   <a href="#asyncio.events">asyncio.events</a>
- &#8226;   <a href="#asyncio.proactor_events">asyncio.proactor_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.sslproto">asyncio.sslproto</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.unix_events">asyncio.unix_events</a>
- &#8226;   <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
- &#8226;   <a href="#calendar">calendar</a>
- &#8226;   <a href="#charset_normalizer.legacy">charset_normalizer.legacy</a>
- &#8226;   <a href="#codeop">codeop</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#email.utils">email.utils</a>
- &#8226;   <a href="#enum">enum</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#getpass">getpass</a>
- &#8226;   <a href="#gettext">gettext</a>
- &#8226;   <a href="#glob">glob</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#hmac">hmac</a>
- &#8226;   <a href="#http.cookiejar">http.cookiejar</a>
- &#8226;   <a href="#http.server">http.server</a>
- &#8226;   <a href="#importlib.abc">importlib.abc</a>
- &#8226;   <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.metadata._adapters">importlib.metadata._adapters</a>
- &#8226;   <a href="#importlib.resources._common">importlib.resources._common</a>
- &#8226;   <a href="#importlib.resources._functional">importlib.resources._functional</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#locale">locale</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.forkserver">multiprocessing.forkserver</a>
- &#8226;   <a href="#multiprocessing.pool">multiprocessing.pool</a>
- &#8226;   <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#packaging._manylinux">packaging._manylinux</a>
- &#8226;   <a href="#packaging.version">packaging.version</a>
- &#8226;   <a href="#pathlib._local">pathlib._local</a>
- &#8226;   <a href="#pkgutil">pkgutil</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#psutil._common">psutil._common</a>
- &#8226;   <a href="#pydoc">pydoc</a>
- &#8226;   <a href="#random">random</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#re._parser">re._parser</a>
- &#8226;   <a href="#requests">requests</a>
- &#8226;   <a href="#requests.adapters">requests.adapters</a>
- &#8226;   <a href="#requests.auth">requests.auth</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#rlcompleter">rlcompleter</a>
- &#8226;   <a href="#runpy">runpy</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#setuptools._distutils._msvccompiler">setuptools._distutils._msvccompiler</a>
- &#8226;   <a href="#setuptools._distutils.command.bdist">setuptools._distutils.command.bdist</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.base">setuptools._distutils.compilers.C.base</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools._distutils.dist">setuptools._distutils.dist</a>
- &#8226;   <a href="#setuptools._distutils.extension">setuptools._distutils.extension</a>
- &#8226;   <a href="#setuptools._distutils.log">setuptools._distutils.log</a>
- &#8226;   <a href="#setuptools._distutils.spawn">setuptools._distutils.spawn</a>
- &#8226;   <a href="#setuptools._distutils.sysconfig">setuptools._distutils.sysconfig</a>
- &#8226;   <a href="#setuptools._distutils.util">setuptools._distutils.util</a>
- &#8226;   <a href="#setuptools._distutils.version">setuptools._distutils.version</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#setuptools._vendor.jaraco.functools">setuptools._vendor.jaraco.functools</a>
- &#8226;   <a href="#setuptools._vendor.more_itertools.more">setuptools._vendor.more_itertools.more</a>
- &#8226;   <a href="#setuptools._vendor.packaging._manylinux">setuptools._vendor.packaging._manylinux</a>
- &#8226;   <a href="#setuptools._vendor.tomli._parser">setuptools._vendor.tomli._parser</a>
- &#8226;   <a href="#setuptools._vendor.wheel.vendored.packaging._manylinux">setuptools._vendor.wheel.vendored.packaging._manylinux</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.warnings">setuptools.warnings</a>
- &#8226;   <a href="#sre_compile">sre_compile</a>
- &#8226;   <a href="#sre_constants">sre_constants</a>
- &#8226;   <a href="#sre_parse">sre_parse</a>
- &#8226;   <a href="#ssl">ssl</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sysconfig">sysconfig</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#traceback">traceback</a>
- &#8226;   <a href="#typing">typing</a>
- &#8226;   <a href="#typing_extensions">typing_extensions</a>
- &#8226;   <a href="#unittest.async_case">unittest.async_case</a>
- &#8226;   <a href="#unittest.case">unittest.case</a>
- &#8226;   <a href="#unittest.runner">unittest.runner</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#urllib3">urllib3</a>
- &#8226;   <a href="#urllib3.connection">urllib3.connection</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#urllib3.contrib.socks">urllib3.contrib.socks</a>
- &#8226;   <a href="#urllib3.exceptions">urllib3.exceptions</a>
- &#8226;   <a href="#urllib3.fields">urllib3.fields</a>
- &#8226;   <a href="#urllib3.poolmanager">urllib3.poolmanager</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#urllib3.util.ssl_">urllib3.util.ssl_</a>
- &#8226;   <a href="#zipfile">zipfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="weakref"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/weakref.py" type="text/plain"><tt>weakref</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_collections_abc">_collections_abc</a>
- &#8226;   <a href="#_weakref">_weakref</a>
- &#8226;   <a href="#_weakrefset">_weakrefset</a>
- &#8226;   <a href="#atexit">atexit</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#gc">gc</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#sys">sys</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#_threading_local">_threading_local</a>
- &#8226;   <a href="#asyncio.base_events">asyncio.base_events</a>
- &#8226;   <a href="#asyncio.selector_events">asyncio.selector_events</a>
- &#8226;   <a href="#asyncio.streams">asyncio.streams</a>
- &#8226;   <a href="#asyncio.tasks">asyncio.tasks</a>
- &#8226;   <a href="#asyncio.windows_events">asyncio.windows_events</a>
- &#8226;   <a href="#concurrent.futures.process">concurrent.futures.process</a>
- &#8226;   <a href="#concurrent.futures.thread">concurrent.futures.thread</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#functools">functools</a>
- &#8226;   <a href="#inspect">inspect</a>
- &#8226;   <a href="#logging">logging</a>
- &#8226;   <a href="#multiprocessing.dummy">multiprocessing.dummy</a>
- &#8226;   <a href="#multiprocessing.queues">multiprocessing.queues</a>
- &#8226;   <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
- &#8226;   <a href="#multiprocessing.util">multiprocessing.util</a>
- &#8226;   <a href="#sctry.py">sctry.py</a>
- &#8226;   <a href="#tempfile">tempfile</a>
- &#8226;   <a href="#unittest.signals">unittest.signals</a>
- &#8226;   <a href="#urllib3.connectionpool">urllib3.connectionpool</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="webbrowser"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/webbrowser.py" type="text/plain"><tt>webbrowser</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_ios_support">_ios_support</a>
- &#8226;   <a href="#argparse">argparse</a>
- &#8226;   <a href="#copy">copy</a>
- &#8226;   <a href="#ctypes">ctypes</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#shlex">shlex</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#subprocess">subprocess</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pydoc">pydoc</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="wheel"></a>
-  <a target="code" href="" type="text/plain"><tt>wheel</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.wheel">setuptools._vendor.wheel</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.wheel.cli">setuptools._vendor.wheel.cli</a>
- &#8226;   <a href="#setuptools._vendor.wheel.macosx_libfile">setuptools._vendor.wheel.macosx_libfile</a>
- &#8226;   <a href="#setuptools._vendor.wheel.util">setuptools._vendor.wheel.util</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="winreg"></a>
-  <tt>winreg</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#importlib._bootstrap_external">importlib._bootstrap_external</a>
- &#8226;   <a href="#mimetypes">mimetypes</a>
- &#8226;   <a href="#platform">platform</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#setuptools._distutils.compilers.C.msvc">setuptools._distutils.compilers.C.msvc</a>
- &#8226;   <a href="#setuptools.msvc">setuptools.msvc</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/__init__.py" type="text/plain"><tt>xml</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.parsers">xml.parsers</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.parsers"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/parsers/__init__.py" type="text/plain"><tt>xml.parsers</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#xml">xml</a>
- &#8226;   <a href="#xml.parsers.expat">xml.parsers.expat</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.parsers.expat">xml.parsers.expat</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.parsers.expat"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/parsers/expat.py" type="text/plain"><tt>xml.parsers.expat</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#pyexpat">pyexpat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#xml.parsers">xml.parsers</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.parsers">xml.parsers</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/__init__.py" type="text/plain"><tt>xml.sax</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#xml">xml</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax._exceptions">xml.sax._exceptions</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.handler">xml.sax.handler</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax._exceptions">xml.sax._exceptions</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.handler">xml.sax.handler</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax._exceptions"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/_exceptions.py" type="text/plain"><tt>xml.sax._exceptions</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#xml.sax">xml.sax</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax.expatreader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/expatreader.py" type="text/plain"><tt>xml.sax.expatreader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_weakref">_weakref</a>
- &#8226;   <a href="#weakref">weakref</a>
- &#8226;   <a href="#xml.parsers">xml.parsers</a>
- &#8226;   <a href="#xml.parsers.expat">xml.parsers.expat</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax._exceptions">xml.sax._exceptions</a>
- &#8226;   <a href="#xml.sax.handler">xml.sax.handler</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml">xml</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax.handler"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/handler.py" type="text/plain"><tt>xml.sax.handler</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#xml.sax">xml.sax</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax.saxutils"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/saxutils.py" type="text/plain"><tt>xml.sax.saxutils</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#codecs">codecs</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#urllib.request">urllib.request</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.handler">xml.sax.handler</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.xmlreader">xml.sax.xmlreader</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xml.sax.xmlreader"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xml/sax/xmlreader.py" type="text/plain"><tt>xml.sax.xmlreader</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax._exceptions">xml.sax._exceptions</a>
- &#8226;   <a href="#xml.sax.handler">xml.sax.handler</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#xml">xml</a>
- &#8226;   <a href="#xml.sax">xml.sax</a>
- &#8226;   <a href="#xml.sax.expatreader">xml.sax.expatreader</a>
- &#8226;   <a href="#xml.sax.saxutils">xml.sax.saxutils</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xmlrpc"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xmlrpc/__init__.py" type="text/plain"><tt>xmlrpc</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imported by:
-    <a href="#xmlrpc.client">xmlrpc.client</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="xmlrpc.client"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/xmlrpc/client.py" type="text/plain"><tt>xmlrpc.client</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#base64">base64</a>
- &#8226;   <a href="#datetime">datetime</a>
- &#8226;   <a href="#decimal">decimal</a>
- &#8226;   <a href="#errno">errno</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#http.client">http.client</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#urllib.parse">urllib.parse</a>
- &#8226;   <a href="#xml.parsers">xml.parsers</a>
- &#8226;   <a href="#xml.parsers.expat">xml.parsers.expat</a>
- &#8226;   <a href="#xmlrpc">xmlrpc</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#multiprocessing.connection">multiprocessing.connection</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zipfile"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/zipfile/__init__.py" type="text/plain"><tt>zipfile</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#argparse">argparse</a>
- &#8226;   <a href="#binascii">binascii</a>
- &#8226;   <a href="#bz2">bz2</a>
- &#8226;   <a href="#importlib.util">importlib.util</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#lzma">lzma</a>
- &#8226;   <a href="#os">os</a>
- &#8226;   <a href="#py_compile">py_compile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#threading">threading</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#warnings">warnings</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#importlib.metadata">importlib.metadata</a>
- &#8226;   <a href="#importlib.resources.readers">importlib.resources.readers</a>
- &#8226;   <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
- &#8226;   <a href="#requests.utils">requests.utils</a>
- &#8226;   <a href="#setuptools._distutils.archive_util">setuptools._distutils.archive_util</a>
- &#8226;   <a href="#setuptools._vendor.wheel.cli.convert">setuptools._vendor.wheel.cli.convert</a>
- &#8226;   <a href="#setuptools._vendor.wheel.wheelfile">setuptools._vendor.wheel.wheelfile</a>
- &#8226;   <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
- &#8226;   <a href="#setuptools.archive_util">setuptools.archive_util</a>
- &#8226;   <a href="#setuptools.command.bdist_egg">setuptools.command.bdist_egg</a>
- &#8226;   <a href="#setuptools.command.bdist_wheel">setuptools.command.bdist_wheel</a>
- &#8226;   <a href="#setuptools.wheel">setuptools.wheel</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zipfile._path"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/zipfile/_path/__init__.py" type="text/plain"><tt>zipfile._path</tt></a>
-<span class="moduletype">Package</span>  <div class="import">
-imports:
-    <a href="#contextlib">contextlib</a>
- &#8226;   <a href="#io">io</a>
- &#8226;   <a href="#itertools">itertools</a>
- &#8226;   <a href="#pathlib">pathlib</a>
- &#8226;   <a href="#posixpath">posixpath</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#stat">stat</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path.glob">zipfile._path.glob</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipfile._path.glob">zipfile._path.glob</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zipfile._path.glob"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/zipfile/_path/glob.py" type="text/plain"><tt>zipfile._path.glob</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#os">os</a>
- &#8226;   <a href="#re">re</a>
- &#8226;   <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#zipfile._path">zipfile._path</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zipimport"></a>
-  <a target="code" href="///C:/Users/Ilina/AppData/Local/Programs/Python/Python313/Lib/zipimport.py" type="text/plain"><tt>zipimport</tt></a>
-<span class="moduletype">SourceModule</span>  <div class="import">
-imports:
-    <a href="#_frozen_importlib">_frozen_importlib</a>
- &#8226;   <a href="#_frozen_importlib_external">_frozen_importlib_external</a>
- &#8226;   <a href="#_imp">_imp</a>
- &#8226;   <a href="#_io">_io</a>
- &#8226;   <a href="#_warnings">_warnings</a>
- &#8226;   <a href="#importlib.readers">importlib.readers</a>
- &#8226;   <a href="#marshal">marshal</a>
- &#8226;   <a href="#struct">struct</a>
- &#8226;   <a href="#sys">sys</a>
- &#8226;   <a href="#time">time</a>
- &#8226;   <a href="#zlib">zlib</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#pkgutil">pkgutil</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zipp"></a>
-  <a target="code" href="" type="text/plain"><tt>zipp</tt></a>
-<span class="moduletype">AliasNode</span>  <div class="import">
-imports:
-    <a href="#setuptools._vendor.zipp">setuptools._vendor.zipp</a>
-
-  </div>
-  <div class="import">
-imported by:
-    <a href="#setuptools._vendor.zipp.compat">setuptools._vendor.zipp.compat</a>
- &#8226;   <a href="#setuptools._vendor.zipp.compat.overlay">setuptools._vendor.zipp.compat.overlay</a>
-
-  </div>
-
-</div>
-
-<div class="node">
-  <a name="zlib"></a>
-  <tt>zlib</tt> <span class="moduletype"><i>(builtin module)</i></span>  <div class="import">
-imported by:
-    <a href="#encodings.zlib_codec">encodings.zlib_codec</a>
- &#8226;   <a href="#gzip">gzip</a>
- &#8226;   <a href="#setuptools._vendor.backports.tarfile">setuptools._vendor.backports.tarfile</a>
- &#8226;   <a href="#shutil">shutil</a>
- &#8226;   <a href="#tarfile">tarfile</a>
- &#8226;   <a href="#urllib3.response">urllib3.response</a>
- &#8226;   <a href="#zipfile">zipfile</a>
- &#8226;   <a href="#zipimport">zipimport</a>
-
-  </div>
-
-</div>
-
-  </body>
-</html>
Index: n-frontend/.env
===================================================================
--- lan-frontend/.env	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-VITE_API_BASE=http://localhost:5555
-VITE_GOOGLE_CLIENT_ID=43542590862-pt18e0hb33o41889bu976oshddoemivs.apps.googleusercontent.com
-GRAFANA_API_TOKEN=KIC7rMwr4U8V-GI8suP5rGgNjdcQvB0cAvAwkwevTKw
Index: lan-frontend/package-lock.json
===================================================================
--- lan-frontend/package-lock.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/package-lock.json	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -9,5 +9,4 @@
       "version": "0.0.0",
       "dependencies": {
-        "@react-oauth/google": "^0.13.4",
         "chart.js": "^4.5.1",
         "react": "^19.2.0",
@@ -20,25 +19,9 @@
         "@types/react-dom": "^19.2.3",
         "@vitejs/plugin-react": "^5.1.1",
-        "autoprefixer": "^10.4.23",
         "eslint": "^9.39.1",
         "eslint-plugin-react-hooks": "^7.0.1",
         "eslint-plugin-react-refresh": "^0.4.24",
         "globals": "^16.5.0",
-        "postcss": "^8.5.6",
-        "tailwindcss": "^3.4.17",
         "vite": "^7.2.4"
-      }
-    },
-    "node_modules/@alloc/quick-lru": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
-      "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
@@ -1032,52 +1015,4 @@
       "license": "MIT"
     },
-    "node_modules/@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.walk": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@react-oauth/google": {
-      "version": "0.13.4",
-      "resolved": "https://registry.npmjs.org/@react-oauth/google/-/google-0.13.4.tgz",
-      "integrity": "sha512-hGKyNEH+/PK8M0sFEuo3MAEk0txtHpgs94tDQit+s2LXg7b6z53NtzHfqDvoB2X8O6lGB+FRg80hY//X6hfD+w==",
-      "license": "MIT",
-      "peerDependencies": {
-        "react": ">=16.8.0",
-        "react-dom": ">=16.8.0"
-      }
-    },
     "node_modules/@reduxjs/toolkit": {
       "version": "2.11.1",
@@ -1668,45 +1603,4 @@
       }
     },
-    "node_modules/any-promise": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
-      "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/anymatch": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
-      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/anymatch/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/arg": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
-      "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/argparse": {
       "version": "2.0.1",
@@ -1716,41 +1610,4 @@
       "license": "Python-2.0"
     },
-    "node_modules/autoprefixer": {
-      "version": "10.4.23",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
-      "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/autoprefixer"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "browserslist": "^4.28.1",
-        "caniuse-lite": "^1.0.30001760",
-        "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/balanced-match": {
       "version": "1.0.2",
@@ -1770,17 +1627,4 @@
       }
     },
-    "node_modules/binary-extensions": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
-      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/brace-expansion": {
       "version": "1.1.12",
@@ -1792,17 +1636,4 @@
         "balanced-match": "^1.0.0",
         "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/braces": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
-      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "fill-range": "^7.1.1"
-      },
-      "engines": {
-        "node": ">=8"
       }
     },
@@ -1851,14 +1682,4 @@
       }
     },
-    "node_modules/camelcase-css": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
-      "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/caniuse-lite": {
       "version": "1.0.30001760",
@@ -1911,42 +1732,4 @@
       }
     },
-    "node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/chokidar/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/clsx": {
       "version": "2.1.1",
@@ -1978,14 +1761,4 @@
       "license": "MIT"
     },
-    "node_modules/commander": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
-      "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/concat-map": {
       "version": "0.0.1",
@@ -2015,17 +1788,4 @@
       "engines": {
         "node": ">= 8"
-      }
-    },
-    "node_modules/cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "cssesc": "bin/cssesc"
-      },
-      "engines": {
-        "node": ">=4"
       }
     },
@@ -2186,18 +1946,4 @@
       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
       "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/didyoumean": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
-      "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
-      "dev": true,
-      "license": "Apache-2.0"
-    },
-    "node_modules/dlv": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
-      "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
       "dev": true,
       "license": "MIT"
@@ -2482,34 +2228,4 @@
       "license": "MIT"
     },
-    "node_modules/fast-glob": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
-      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.stat": "^2.0.2",
-        "@nodelib/fs.walk": "^1.2.3",
-        "glob-parent": "^5.1.2",
-        "merge2": "^1.3.0",
-        "micromatch": "^4.0.8"
-      },
-      "engines": {
-        "node": ">=8.6.0"
-      }
-    },
-    "node_modules/fast-glob/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/fast-json-stable-stringify": {
       "version": "2.1.0",
@@ -2526,14 +2242,4 @@
       "license": "MIT"
     },
-    "node_modules/fastq": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
-      "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "reusify": "^1.0.4"
-      }
-    },
     "node_modules/fdir": {
       "version": "6.5.0",
@@ -2567,17 +2273,4 @@
       }
     },
-    "node_modules/fill-range": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
-      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "to-regex-range": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/find-up": {
       "version": "5.0.0",
@@ -2618,18 +2311,4 @@
       "license": "ISC"
     },
-    "node_modules/fraction.js": {
-      "version": "5.3.4",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
-      "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "*"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/rawify"
-      }
-    },
     "node_modules/fsevents": {
       "version": "2.3.3",
@@ -2647,14 +2326,4 @@
       }
     },
-    "node_modules/function-bind": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
-      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
-      "dev": true,
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
     "node_modules/gensync": {
       "version": "1.0.0-beta.2",
@@ -2701,17 +2370,4 @@
       "engines": {
         "node": ">=8"
-      }
-    },
-    "node_modules/hasown": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "function-bind": "^1.1.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
       }
     },
@@ -2789,33 +2445,4 @@
       }
     },
-    "node_modules/is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "binary-extensions": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-core-module": {
-      "version": "2.16.1",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
-      "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "hasown": "^2.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
     "node_modules/is-extglob": {
       "version": "2.1.1",
@@ -2841,14 +2468,4 @@
       }
     },
-    "node_modules/is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
     "node_modules/isexe": {
       "version": "2.0.0",
@@ -2858,14 +2475,4 @@
       "license": "ISC"
     },
-    "node_modules/jiti": {
-      "version": "1.21.7",
-      "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
-      "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "jiti": "bin/jiti.js"
-      }
-    },
     "node_modules/js-tokens": {
       "version": "4.0.0",
@@ -2959,24 +2566,4 @@
       }
     },
-    "node_modules/lilconfig": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
-      "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/antonk52"
-      }
-    },
-    "node_modules/lines-and-columns": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
-      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/locate-path": {
       "version": "6.0.0",
@@ -3012,41 +2599,4 @@
       }
     },
-    "node_modules/merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/micromatch": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
-      "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "braces": "^3.0.3",
-        "picomatch": "^2.3.1"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/micromatch/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
     "node_modules/minimatch": {
       "version": "3.1.2",
@@ -3068,16 +2618,4 @@
       "dev": true,
       "license": "MIT"
-    },
-    "node_modules/mz": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
-      "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "any-promise": "^1.0.0",
-        "object-assign": "^4.0.1",
-        "thenify-all": "^1.0.0"
-      }
     },
     "node_modules/nanoid": {
@@ -3113,34 +2651,4 @@
       "dev": true,
       "license": "MIT"
-    },
-    "node_modules/normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/object-hash": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
-      "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 6"
-      }
     },
     "node_modules/optionator": {
@@ -3227,11 +2735,4 @@
       }
     },
-    "node_modules/path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/picocolors": {
       "version": "1.1.1",
@@ -3252,24 +2753,4 @@
       "funding": {
         "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/pify": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/pirates": {
-      "version": "4.0.7",
-      "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
-      "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 6"
       }
     },
@@ -3303,131 +2784,4 @@
       }
     },
-    "node_modules/postcss-import": {
-      "version": "15.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
-      "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "postcss-value-parser": "^4.0.0",
-        "read-cache": "^1.0.0",
-        "resolve": "^1.1.7"
-      },
-      "engines": {
-        "node": ">=14.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.0.0"
-      }
-    },
-    "node_modules/postcss-js": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
-      "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "camelcase-css": "^2.0.1"
-      },
-      "engines": {
-        "node": "^12 || ^14 || >= 16"
-      },
-      "peerDependencies": {
-        "postcss": "^8.4.21"
-      }
-    },
-    "node_modules/postcss-load-config": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
-      "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "lilconfig": "^3.0.0",
-        "yaml": "^2.3.4"
-      },
-      "engines": {
-        "node": ">= 14"
-      },
-      "peerDependencies": {
-        "postcss": ">=8.0.9",
-        "ts-node": ">=9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "postcss": {
-          "optional": true
-        },
-        "ts-node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/postcss-nested": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
-      "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "postcss-selector-parser": "^6.1.1"
-      },
-      "engines": {
-        "node": ">=12.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.2.14"
-      }
-    },
-    "node_modules/postcss-selector-parser": {
-      "version": "6.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
-      "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/prelude-ls": {
       "version": "1.2.1",
@@ -3449,25 +2803,4 @@
         "node": ">=6"
       }
-    },
-    "node_modules/queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT"
     },
     "node_modules/react": {
@@ -3530,40 +2863,4 @@
       "engines": {
         "node": ">=0.10.0"
-      }
-    },
-    "node_modules/read-cache": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
-      "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "pify": "^2.3.0"
-      }
-    },
-    "node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
-    "node_modules/readdirp/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
@@ -3619,25 +2916,4 @@
       "license": "MIT"
     },
-    "node_modules/resolve": {
-      "version": "1.22.11",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
-      "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
-      "dev": true,
-      "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-from": {
       "version": "4.0.0",
@@ -3648,15 +2924,4 @@
       "engines": {
         "node": ">=4"
-      }
-    },
-    "node_modules/reusify": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
-      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "iojs": ">=1.0.0",
-        "node": ">=0.10.0"
       }
     },
@@ -3703,28 +2968,4 @@
       }
     },
-    "node_modules/run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
     "node_modules/scheduler": {
       "version": "0.27.0",
@@ -3789,27 +3030,4 @@
       }
     },
-    "node_modules/sucrase": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
-      "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/gen-mapping": "^0.3.2",
-        "commander": "^4.0.0",
-        "lines-and-columns": "^1.1.6",
-        "mz": "^2.7.0",
-        "pirates": "^4.0.1",
-        "tinyglobby": "^0.2.11",
-        "ts-interface-checker": "^0.1.9"
-      },
-      "bin": {
-        "sucrase": "bin/sucrase",
-        "sucrase-node": "bin/sucrase-node"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      }
-    },
     "node_modules/supports-color": {
       "version": "7.2.0",
@@ -3825,78 +3043,4 @@
       }
     },
-    "node_modules/supports-preserve-symlinks-flag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/tailwindcss": {
-      "version": "3.4.17",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
-      "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@alloc/quick-lru": "^5.2.0",
-        "arg": "^5.0.2",
-        "chokidar": "^3.6.0",
-        "didyoumean": "^1.2.2",
-        "dlv": "^1.1.3",
-        "fast-glob": "^3.3.2",
-        "glob-parent": "^6.0.2",
-        "is-glob": "^4.0.3",
-        "jiti": "^1.21.6",
-        "lilconfig": "^3.1.3",
-        "micromatch": "^4.0.8",
-        "normalize-path": "^3.0.0",
-        "object-hash": "^3.0.0",
-        "picocolors": "^1.1.1",
-        "postcss": "^8.4.47",
-        "postcss-import": "^15.1.0",
-        "postcss-js": "^4.0.1",
-        "postcss-load-config": "^4.0.2",
-        "postcss-nested": "^6.2.0",
-        "postcss-selector-parser": "^6.1.2",
-        "resolve": "^1.22.8",
-        "sucrase": "^3.35.0"
-      },
-      "bin": {
-        "tailwind": "lib/cli.js",
-        "tailwindcss": "lib/cli.js"
-      },
-      "engines": {
-        "node": ">=14.0.0"
-      }
-    },
-    "node_modules/thenify": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
-      "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "any-promise": "^1.0.0"
-      }
-    },
-    "node_modules/thenify-all": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
-      "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "thenify": ">= 3.1.0 < 4"
-      },
-      "engines": {
-        "node": ">=0.8"
-      }
-    },
     "node_modules/tiny-invariant": {
       "version": "1.3.3",
@@ -3921,24 +3065,4 @@
         "url": "https://github.com/sponsors/SuperchupuDev"
       }
-    },
-    "node_modules/to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "is-number": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8.0"
-      }
-    },
-    "node_modules/ts-interface-checker": {
-      "version": "0.1.13",
-      "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
-      "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
-      "dev": true,
-      "license": "Apache-2.0"
     },
     "node_modules/type-check": {
@@ -4004,11 +3128,4 @@
         "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
       }
-    },
-    "node_modules/util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
-      "dev": true,
-      "license": "MIT"
     },
     "node_modules/victory-vendor": {
@@ -4142,20 +3259,4 @@
       "license": "ISC"
     },
-    "node_modules/yaml": {
-      "version": "2.8.2",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
-      "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
-      "dev": true,
-      "license": "ISC",
-      "bin": {
-        "yaml": "bin.mjs"
-      },
-      "engines": {
-        "node": ">= 14.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/eemeli"
-      }
-    },
     "node_modules/yocto-queue": {
       "version": "0.1.0",
Index: lan-frontend/package.json
===================================================================
--- lan-frontend/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/package.json	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -11,5 +11,4 @@
   },
   "dependencies": {
-    "@react-oauth/google": "^0.13.4",
     "chart.js": "^4.5.1",
     "react": "^19.2.0",
@@ -22,11 +21,8 @@
     "@types/react-dom": "^19.2.3",
     "@vitejs/plugin-react": "^5.1.1",
-    "autoprefixer": "^10.4.23",
     "eslint": "^9.39.1",
     "eslint-plugin-react-hooks": "^7.0.1",
     "eslint-plugin-react-refresh": "^0.4.24",
     "globals": "^16.5.0",
-    "postcss": "^8.5.6",
-    "tailwindcss": "^3.4.17",
     "vite": "^7.2.4"
   }
Index: n-frontend/postcss.config.js
===================================================================
--- lan-frontend/postcss.config.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default {
-  plugins: {
-    tailwindcss: {},
-    autoprefixer: {},
-  },
-}
Index: lan-frontend/src/App.jsx
===================================================================
--- lan-frontend/src/App.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/src/App.jsx	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1,336 +1,1169 @@
-import React, {useEffect, useMemo, useState} from "react";
-import "./styles/theme.css";
-import "./styles/netinel.css";
-
-import Login from "./components/Login";
-import TopBar from "./components/TopBar";
-import ComputerCard from "./components/ComputerCard";
-import ComputerDetailsModal from "./components/ComputerDetailsModal";
-import AIAssistantDrawer from "./components/AIAssistantDrawer";
-import NetIntelViz from "./components/NetIntelViz.jsx";
-import SideMenu from "./components/SideMenu";
-
-
-export default function App() {
-    const [stats, setStats] = useState(null);
-    const [computers, setComputers] = useState([]);
-    const [loading, setLoading] = useState(true);
-    const [lastUpdated, setLastUpdated] = useState(null);
-
-    const [query, setQuery] = useState("");
-    const [status, setStatus] = useState("");
-
-    const [selectedComputer, setSelectedComputer] = useState(null);
-    const [aiOpen, setAiOpen] = useState(false);
-    const [aiScope, setAiScope] = useState(null);
-    const [selectedEnv, setSelectedEnv] = useState("default");
-
-    const [me, setMe] = useState(null);
-    const [meLoading, setMeLoading] = useState(true);
-
-    const [activeView, setActiveView] = useState("dashboard");
-// "dashboard" | "visualizations" | "account"
-
-
-    // NEW: environment setting (switch)
-    const [saveProcHistory, setSaveProcHistory] = useState(false);
-
-    async function loadMe() {
-        setMeLoading(true);
-        try {
-            const r = await fetch("/api/me", {credentials: "include"});
-            if (r.ok) {
-                const data = await r.json();
-                setMe(data.user);
-            } else {
-                setMe(null);
-            }
-        } catch (e) {
-            console.error("loadMe error", e);
-            setMe(null);
-        } finally {
-            setMeLoading(false);
-        }
+import React, { useEffect, useState } from "react";
+import './App.css';
+
+function App() {
+  const [computers, setComputers] = useState([]);
+  const [filteredComputers, setFilteredComputers] = useState([]);
+  const [stats, setStats] = useState(null);
+  const [selectedComputer, setSelectedComputer] = useState(null);
+  const [computerDetails, setComputerDetails] = useState(null);
+  const [loadingDetails, setLoadingDetails] = useState(false);
+  const [performanceData, setPerformanceData] = useState([]);
+  const [eventDistribution, setEventDistribution] = useState([]);
+  const [networkTraffic, setNetworkTraffic] = useState([]);
+  const [topProcesses, setTopProcesses] = useState([]);
+   // Бои за графикони
+  const CHART_COLORS = {
+    primary: '#2563eb',
+    secondary: '#7c3aed',
+    accentGreen: '#10b981',
+    accentOrange: '#f59e0b',
+    accentRed: '#ef4444',
+    lightBlue: '#93c5fd',
+    lightPurple: '#c4b5fd'
+  };
+
+  // Функција за вчитување на податоци за графикони
+  const loadChartData = () => {
+    // Перформанс податоци (симулирани, треба да ги земеш од API)
+    const mockPerfData = Array.from({ length: 24 }, (_, i) => ({
+      hour: `${i}:00`,
+      cpu: 20 + Math.random() * 30,
+      memory: 30 + Math.random() * 40,
+      network: Math.random() * 100
+    }));
+    setPerformanceData(mockPerfData);
+
+    // Дистрибуција на настани
+    const mockEventDist = [
+      { name: 'Process Create', value: 45, color: CHART_COLORS.primary },
+      { name: 'Network', value: 25, color: CHART_COLORS.secondary },
+      { name: 'File Create', value: 15, color: CHART_COLORS.accentGreen },
+      { name: 'Registry', value: 10, color: CHART_COLORS.accentOrange },
+      { name: 'Other', value: 5, color: CHART_COLORS.accentRed }
+    ];
+    setEventDistribution(mockEventDist);
+
+    // Мрежен сообраќај
+    const mockNetworkData = Array.from({ length: 12 }, (_, i) => ({
+      time: `${i * 2}:00`,
+      inbound: 50 + Math.random() * 200,
+      outbound: 30 + Math.random() * 150
+    }));
+    setNetworkTraffic(mockNetworkData);
+
+    // Топ процеси
+    const mockTopProcesses = [
+      { name: 'chrome.exe', cpu: 25, memory: 1200 },
+      { name: 'python.exe', cpu: 18, memory: 800 },
+      { name: 'explorer.exe', cpu: 12, memory: 300 },
+      { name: 'svchost.exe', cpu: 8, memory: 200 },
+      { name: 'node.exe', cpu: 6, memory: 500 }
+    ];
+    setTopProcesses(mockTopProcesses);
+  };
+
+  useEffect(() => {
+    loadChartData();
+    // Автоматско освежување на графикони
+    const chartInterval = setInterval(loadChartData, 30000);
+    return () => clearInterval(chartInterval);
+  }, []);
+  // Filter state
+  const [filters, setFilters] = useState({
+    status: "all",
+    search: "",
+    os: "all",
+    minCpu: 0,
+    minRam: 0
+  });
+
+  // AI chat state
+  const [chatQuestion, setChatQuestion] = useState("");
+  const [chatAnswer, setChatAnswer] = useState("");
+  const [chatLoading, setChatLoading] = useState(false);
+  const [chatComputer, setChatComputer] = useState("");
+  const [chatHistory, setChatHistory] = useState([]);
+  const [isChatOpen, setIsChatOpen] = useState(true);
+  const [showWelcome, setShowWelcome] = useState(true);
+
+  // Modal tabs state
+  const [activeTab, setActiveTab] = useState('security');
+  const [sysmonData, setSysmonData] = useState(null);
+  const [networkData, setNetworkData] = useState(null);
+  const [loadingSysmon, setLoadingSysmon] = useState(false);
+  const [loadingNetwork, setLoadingNetwork] = useState(false);
+  const [selectedSysmonProcess, setSelectedSysmonProcess] = useState(null);
+  const [selectedNetworkItem, setSelectedNetworkItem] = useState(null);
+
+  // Load main data
+  useEffect(() => {
+    loadComputers();
+    loadStats();
+    const interval = setInterval(() => {
+      loadComputers();
+      loadStats();
+    }, 30000);
+    return () => clearInterval(interval);
+  }, []);
+
+  // Apply filters
+  useEffect(() => {
+    let result = computers;
+    if (filters.status !== "all") {
+      result = result.filter(c => c.status === filters.status);
     }
-
-    async function refresh() {
-        try {
-            setLoading(true);
-            const [s, c] = await Promise.all([
-                fetch("/api/stats", {credentials: "include"}).then((r) => r.json()),
-                fetch("/api/computers", {
-                    credentials: "include",
-                    headers: {"X-Env": selectedEnv},
-                }).then((r) => r.json()),
-            ]);
-
-            setStats(s);
-            setComputers(Array.isArray(c) ? c : []);
-            setLastUpdated(new Date().toISOString());
-        } catch (e) {
-            console.error("refresh error", e);
-        } finally {
-            setLoading(false);
-        }
+    if (filters.os !== "all") {
+      result = result.filter(c => c.os && c.os.toLowerCase().includes(filters.os.toLowerCase()));
     }
-
-    // NEW: load env settings (switch state) for selected env
-    async function loadEnvSettings(env) {
-        try {
-            // само admin ќе има пристап (ако не си admin, ќе падне во else и ќе стане false)
-            const r = await fetch(`/api/admin/env-settings/${encodeURIComponent(env)}`, {
-                credentials: "include",
+    if (filters.minCpu > 0) {
+      result = result.filter(c => (c.avg_cpu || 0) >= filters.minCpu);
+    }
+    if (filters.minRam > 0) {
+      result = result.filter(c => (c.avg_ram || 0) >= filters.minRam);
+    }
+    if (filters.search.trim()) {
+      const searchTerm = filters.search.toLowerCase();
+      result = result.filter(c =>
+        c.name.toLowerCase().includes(searchTerm) ||
+        (c.user && c.user.toLowerCase().includes(searchTerm)) ||
+        (c.ip && c.ip.includes(searchTerm))
+      );
+    }
+    setFilteredComputers(result);
+  }, [computers, filters]);
+
+  const loadComputers = () => {
+    fetch("/api/computers")
+      .then((r) => r.json())
+      .then(data => setComputers(data))
+      .catch((err) => console.error("API error:", err));
+  };
+
+  const loadStats = () => {
+    fetch("/api/stats")
+      .then((r) => r.json())
+      .then(setStats)
+      .catch((err) => console.error("API error:", err));
+  };
+
+  const openComputer = (name) => {
+    setSelectedComputer(name);
+    setLoadingDetails(true);
+    setComputerDetails(null);
+    setActiveTab('security');
+    setSysmonData(null);
+    setNetworkData(null);
+
+    fetch(`/api/computer/${encodeURIComponent(name)}`)
+      .then((r) => r.json())
+      .then((data) => {
+        setComputerDetails(data);
+        setLoadingDetails(false);
+      })
+      .catch((err) => {
+        console.error("API error:", err);
+        setLoadingDetails(false);
+      });
+  };
+
+  // Load Sysmon processes
+const loadSysmonProcesses = () => {
+  if (!selectedComputer) return;
+  setLoadingSysmon(true);
+  setSelectedSysmonProcess(null);
+
+  // КОРИГИРАЈ ГО ОВА URL
+  fetch(`/api/computer/${encodeURIComponent(selectedComputer)}/sysmon`)
+    .then((r) => {
+      if (!r.ok) throw new Error(`HTTP ${r.status}`);
+      return r.json();
+    })
+    .then((data) => {
+      console.log("Sysmon data received:", data);
+
+      // Ако data.processes е празна, пробај со детален endpoint
+      if (!data.processes || data.processes.length === 0) {
+        return fetch(`/api/computer/${encodeURIComponent(selectedComputer)}/detailed-sysmon`)
+          .then(r => r.json())
+          .then(detailedData => {
+            setSysmonData(detailedData);
+            setLoadingSysmon(false);
+          });
+      }
+
+      setSysmonData(data);
+      setLoadingSysmon(false);
+    })
+    .catch((err) => {
+      console.error("Sysmon API error:", err);
+
+      // Fallback - пробај да земеш Sysmon events од општиот endpoint
+      fetch(`/api/computer/${encodeURIComponent(selectedComputer)}`)
+        .then(r => r.json())
+        .then(fullData => {
+          if (fullData.sysmon_events) {
+            // Конвертирај Sysmon events во процес формат
+            const processes = fullData.sysmon_events.map((ev, idx) => ({
+              process_id: ev.event_id,
+              process_name: ev.event_type,
+              timestamp: ev.timestamp,
+              message: ev.message,
+              details: ev.details || {}
+            }));
+
+            setSysmonData({
+              computer_name: selectedComputer,
+              processes: processes,
+              count: processes.length
             });
-
-            if (r.ok) {
-                const data = await r.json();
-                setSaveProcHistory(!!data.save_process_history);
-            } else {
-                setSaveProcHistory(false);
-            }
-        } catch (e) {
-            console.error("loadEnvSettings error", e);
-            setSaveProcHistory(false);
-        }
+          }
+          setLoadingSysmon(false);
+        })
+        .catch(() => {
+          setLoadingSysmon(false);
+        });
+    });
+};
+  // Load Network connections
+const loadNetworkConnections = () => {
+  if (!selectedComputer) return;
+  setLoadingNetwork(true);
+  setSelectedNetworkItem(null);
+
+  // КОРИГИРАЈ ГО ОВА URL
+  fetch(`/api/computer/${encodeURIComponent(selectedComputer)}/network`)
+    .then((r) => {
+      if (!r.ok) throw new Error(`HTTP ${r.status}`);
+      return r.json();
+    })
+    .then((data) => {
+      console.log("Network data received:", data);
+
+      setNetworkData(data);
+      setLoadingNetwork(false);
+    })
+    .catch((err) => {
+      console.error("Network API error:", err);
+
+      // Fallback - пробај да земеш network од општиот endpoint
+      fetch(`/api/computer/${encodeURIComponent(selectedComputer)}`)
+        .then(r => r.json())
+        .then(fullData => {
+          if (fullData.network_connections) {
+            const connections = fullData.network_connections.map((conn, idx) => ({
+              pid: conn.pid,
+              process_name: conn.process_name,
+              local_address: conn.local_address,
+              remote_address: conn.remote_address,
+              status: conn.status,
+              timestamp: conn.timestamp,
+              // Додади ги овие полиња за да match-не со очекуваниот формат
+              local_port: conn.local_address?.split(':')?.[1] || '',
+              remote_port: conn.remote_address?.split(':')?.[1] || '',
+              protocol: 'TCP'
+            }));
+
+            setNetworkData({
+              computer_name: selectedComputer,
+              connections: connections,
+              count: connections.length
+            });
+          }
+          setLoadingNetwork(false);
+        })
+        .catch(() => {
+          setLoadingNetwork(false);
+        });
+    });
+};
+  const formatTime = (iso) => {
+    if (!iso) return "-";
+    const d = new Date(iso);
+    return d.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' });
+  };
+
+  const formatDate = (iso) => {
+    if (!iso) return "-";
+    const d = new Date(iso);
+    return d.toLocaleDateString();
+  };
+
+  const askAssistant = async () => {
+    if (!chatQuestion.trim()) return;
+    const question = chatQuestion;
+    setChatLoading(true);
+    setChatQuestion("");
+    setShowWelcome(false);
+
+    const newHistory = [...chatHistory, {
+      type: "question",
+      content: question,
+      computer: chatComputer,
+      timestamp: new Date().toISOString()
+    }];
+    setChatHistory(newHistory);
+
+    try {
+      const res = await fetch("/api/chat", {
+        method: "POST",
+        headers: { "Content-Type": "application/json" },
+        body: JSON.stringify({
+          question: question,
+          computer_name: chatComputer || null,
+        }),
+      });
+
+      const answer = await res.json();
+      const finalAnswer = answer.answer || answer.error || "I couldn't process that request.";
+
+      setChatHistory([...newHistory, {
+        type: "answer",
+        content: finalAnswer,
+        timestamp: new Date().toISOString()
+      }]);
+    } catch (err) {
+      setChatHistory([...newHistory, {
+        type: "answer",
+        content: "⚠️ Connection error. Please check the server.",
+        timestamp: new Date().toISOString()
+      }]);
+    } finally {
+      setChatLoading(false);
     }
-
-    // NEW: set env setting (toggle)
-    async function setEnvProcessHistory(env, enabled) {
-        // optimistic UI
-        setSaveProcHistory(enabled);
-
-        try {
-            const r = await fetch(`/api/admin/env-settings/${encodeURIComponent(env)}`, {
-                method: "POST",
-                credentials: "include",
-                headers: {"Content-Type": "application/json"},
-                body: JSON.stringify({save_process_history: enabled}),
-            });
-
-            if (r.ok) {
-                const data = await r.json();
-                setSaveProcHistory(!!data.save_process_history);
-            } else {
-                // rollback
-                setSaveProcHistory(!enabled);
-                console.error("setEnvProcessHistory failed", await r.text());
-            }
-        } catch (e) {
-            setSaveProcHistory(!enabled);
-            console.error("setEnvProcessHistory error", e);
-        }
-    }
-
-    // on mount: check session
-    useEffect(() => {
-        loadMe();
-    }, []);
-
-    // when logged in OR env changed, refresh data + load env switch state
-    useEffect(() => {
-        if (!me) return;
-        loadEnvSettings(selectedEnv);
-        refresh();
-        // eslint-disable-next-line react-hooks/exhaustive-deps
-    }, [me, selectedEnv]);
-
-    const filtered = useMemo(() => {
-        const q = query.trim().toLowerCase();
-        return (computers || [])
-            .filter((c) => (status ? c.status === status : true))
-            .filter((c) => {
-                if (!q) return true;
-                const hay = [c.name, c.user, c.ip, c.os, c.status]
-                    .filter(Boolean)
-                    .join(" ")
-                    .toLowerCase();
-                return hay.includes(q);
-            });
-    }, [computers, query, status]);
-
-    // Gate UI
-    if (meLoading) return <div style={{padding: 20}}>Loading…</div>;
-    if (!me) return <Login onDone={loadMe}/>;
-
-    return (
-        <div className="app-shell">
-            <div className="layout">
-                <SideMenu activeView={activeView} setActiveView={setActiveView}/>
-                <main className="content">
-                    {/* TopBar + pages */}
-                </main>
-            </div>
-
-            <div className="cont">
-                <TopBar
-                    onOpenAI={() => setAiOpen(true)}
-                    onRefresh={refresh}
-                    lastUpdated={lastUpdated}
-                    onEnvChange={(env) => setSelectedEnv(env)}
-                    selectedEnv={selectedEnv}
-                    me={me}
-                    onLoggedOut={loadMe}
-                    saveProcHistory={saveProcHistory}
-                    onToggleProcHistory={(enabled) => setEnvProcessHistory(selectedEnv, enabled)}
+  };
+
+  const resetFilters = () => {
+    setFilters({
+      status: "all",
+      search: "",
+      os: "all",
+      minCpu: 0,
+      minRam: 0
+    });
+  };
+
+  const clearChat = () => {
+    setChatHistory([]);
+    setChatAnswer("");
+    setShowWelcome(true);
+  };
+
+  const closeModal = () => {
+    setSelectedComputer(null);
+    setComputerDetails(null);
+    setSysmonData(null);
+    setNetworkData(null);
+    setSelectedSysmonProcess(null);
+    setSelectedNetworkItem(null);
+  };
+
+  const quickQuestions = [
+    "Show security alerts from yesterday",
+    "Which devices have high CPU usage?",
+    "List suspicious network connections",
+    "Show recent Sysmon events",
+    "Display offline devices"
+  ];
+
+  return (
+    <div className="app-container">
+      {/* Main Content */}
+      <main className="main-content">
+        {/* Top Navigation */}
+        <nav className="top-nav">
+          <div className="nav-left">
+            <div className="logo">
+              <div className="logo-icon">🛡️</div>
+              <div className="logo-text">
+                <h1>LAN Sentinel</h1>
+                <span className="logo-subtitle">Enterprise Security Dashboard</span>
+              </div>
+            </div>
+          </div>
+
+          <div className="nav-center">
+            <div className="search-bar">
+              <input
+                type="text"
+                placeholder="Search devices..."
+                value={filters.search}
+                onChange={(e) => setFilters({...filters, search: e.target.value})}
+              />
+              <span className="search-icon">🔍</span>
+            </div>
+          </div>
+
+          <div className="nav-right">
+            <button
+              className={`ai-toggle-btn ${isChatOpen ? 'active' : ''}`}
+              onClick={() => setIsChatOpen(!isChatOpen)}
+            >
+              <span className="ai-icon">🤖</span>
+              <span>AI Assistant</span>
+            </button>
+            <button className="refresh-btn" onClick={loadComputers}>
+              <span className="refresh-icon">↻</span>
+              Refresh
+            </button>
+            <div className="user-profile">
+              <div className="profile-avatar">AD</div>
+            </div>
+          </div>
+        </nav>
+
+        {/* Stats Overview */}
+        <section className="stats-overview">
+          <div className="stats-header">
+            <h2>Network Overview</h2>
+            <div className="stats-time">
+              Last updated: {new Date().toLocaleTimeString()}
+            </div>
+          </div>
+
+          <div className="stats-grid">
+            <div className="stat-card">
+              <div className="stat-main">
+                <span className="stat-number">{computers.length}</span>
+                <span className="stat-label">Total Devices</span>
+              </div>
+              <div className="stat-icon">🖥️</div>
+            </div>
+
+            <div className="stat-card online">
+              <div className="stat-main">
+                <span className="stat-number">{computers.filter(c => c.status === 'online').length}</span>
+                <span className="stat-label">Online</span>
+              </div>
+              <div className="stat-trend">
+                <span className="trend-up">↑</span>
+                <span>{computers.length > 0 ? Math.round((computers.filter(c => c.status === 'online').length/computers.length)*100) : 0}%</span>
+              </div>
+            </div>
+
+            <div className="stat-card idle">
+              <div className="stat-main">
+                <span className="stat-number">{computers.filter(c => c.status === 'idle').length}</span>
+                <span className="stat-label">Idle</span>
+              </div>
+              <div className="stat-icon">⏸️</div>
+            </div>
+
+            <div className="stat-card offline">
+              <div className="stat-main">
+                <span className="stat-number">{computers.filter(c => c.status === 'offline').length}</span>
+                <span className="stat-label">Offline</span>
+              </div>
+              <div className="stat-icon">🔴</div>
+            </div>
+
+            <div className="stat-card security">
+              <div className="stat-main">
+                <span className="stat-number">
+                  {stats ? stats.total_sysmon_events.toLocaleString() : "0"}
+                </span>
+                <span className="stat-label">Sysmon Events</span>
+              </div>
+              <div className="stat-badge">24h</div>
+            </div>
+
+            <div className="stat-card alerts">
+              <div className="stat-main">
+                <span className="stat-number">
+                  {stats ? stats.security_alerts || 0 : "0"}
+                </span>
+                <span className="stat-label">Alerts</span>
+              </div>
+              <div className="stat-icon">🚨</div>
+            </div>
+          </div>
+        </section>
+
+        {/* Main Dashboard */}
+        <div className="dashboard-grid">
+          {/* Left Sidebar - Filters */}
+          <aside className="filter-sidebar">
+            <div className="filter-section">
+              <h3>Filters</h3>
+              <div className="filter-group">
+                <label>Status</label>
+                <div className="filter-tags">
+                  {["all", "online", "idle", "offline"].map(status => (
+                    <button
+                      key={status}
+                      className={`filter-tag ${filters.status === status ? 'active' : ''}`}
+                      onClick={() => setFilters({...filters, status})}
+                    >
+                      {status === 'all' ? 'All' : status}
+                    </button>
+                  ))}
+                </div>
+              </div>
+
+              <div className="filter-group">
+                <label>Operating System</label>
+                <select
+                  value={filters.os}
+                  onChange={(e) => setFilters({...filters, os: e.target.value})}
+                  className="filter-select"
+                >
+                  <option value="all">All OS</option>
+                  {[...new Set(computers.map(c => c.os).filter(Boolean))].map(os => (
+                    <option key={os} value={os}>{os}</option>
+                  ))}
+                </select>
+              </div>
+
+              <div className="filter-group">
+                <label>CPU Usage ≥ {filters.minCpu}%</label>
+                <input
+                  type="range"
+                  min="0"
+                  max="100"
+                  value={filters.minCpu}
+                  onChange={(e) => setFilters({...filters, minCpu: parseInt(e.target.value)})}
+                  className="range-slider"
                 />
-
-                <div className="app-main">
-                    {/* ====== VIEW SWITCH ====== */}
-                    {activeView === "dashboard" && (
-                        <>
-                            {/* STATS */}
-                            <div className="stats-grid">
-                                <div className="stat-card">
-                                    <div className="label">Total Computers</div>
-                                    <div className="value">{computers.length}</div>
-                                    <div className="sub">Monitored Systems</div>
-                                </div>
-
-                                <div className="stat-card">
-                                    <div className="label">Sysmon Events (24h)</div>
-                                    <div className="value">{stats?.total_sysmon_events ?? "—"}</div>
-                                    <div className="sub">Security Events</div>
-                                </div>
-
-                                <div className="stat-card">
-                                    <div className="label">Network Connections (24h)</div>
-                                    <div className="value">{stats?.total_network_connections ?? "—"}</div>
-                                    <div className="sub">Captured Connections</div>
-                                </div>
+              </div>
+
+              <div className="filter-group">
+                <label>RAM Usage ≥ {filters.minRam}%</label>
+                <input
+                  type="range"
+                  min="0"
+                  max="100"
+                  value={filters.minRam}
+                  onChange={(e) => setFilters({...filters, minRam: parseInt(e.target.value)})}
+                  className="range-slider"
+                />
+              </div>
+
+              <button onClick={resetFilters} className="reset-filters-btn">
+                Reset Filters
+              </button>
+            </div>
+
+            <div className="filter-section">
+              <h3>Quick Actions</h3>
+              <button className="action-btn" onClick={loadComputers}>
+                <span className="action-icon">↻</span>
+                Refresh Data
+              </button>
+              <button className="action-btn" onClick={() => setIsChatOpen(true)}>
+                <span className="action-icon">🤖</span>
+                Open AI Assistant
+              </button>
+            </div>
+          </aside>
+
+          {/* Main Content Area */}
+          <div className="content-area">
+            <div className="content-header">
+              <div>
+                <h2>Network Devices</h2>
+                <p className="content-subtitle">{filteredComputers.length} devices found</p>
+              </div>
+              <div className="header-actions">
+                <select className="sort-select">
+                  <option>Last Seen</option>
+                  <option>Name</option>
+                  <option>CPU Usage</option>
+                  <option>Status</option>
+                </select>
+              </div>
+            </div>
+
+            {/* Devices Grid */}
+            <div className="devices-grid">
+              {filteredComputers.map((c) => (
+                <div
+                  key={c.name}
+                  className={`device-card ${c.status}`}
+                  onClick={() => openComputer(c.name)}
+                >
+                  <div className="device-header">
+                    <div className="device-title">
+                      <div className="device-avatar">
+                        {c.os?.includes("Windows") ? "🪟" :
+                         c.os?.includes("Linux") ? "🐧" :
+                         c.os?.includes("Mac") ? "🍎" : "💻"}
+                      </div>
+                      <div>
+                        <h3>{c.name}</h3>
+                        <p className="device-user">{c.user || "Unknown"}</p>
+                      </div>
+                    </div>
+                    <div className={`status-indicator ${c.status}`}>
+                      <div className="status-dot"></div>
+                      {c.status}
+                    </div>
+                  </div>
+
+                  <div className="device-info">
+                    <div className="info-row">
+                      <span className="info-label">IP</span>
+                      <span className="info-value">{c.ip}</span>
+                    </div>
+                    <div className="info-row">
+                      <span className="info-label">OS</span>
+                      <span className="info-value">{c.os}</span>
+                    </div>
+                    <div className="info-row">
+                      <span className="info-label">Last Active</span>
+                      <span className="info-value">{formatTime(c.last_seen)}</span>
+                    </div>
+                  </div>
+
+                  <div className="device-metrics">
+                    <div className="metric">
+                      <div className="metric-header">
+                        <span>CPU</span>
+                        <span className="metric-value">{c.avg_cpu || 0}%</span>
+                      </div>
+                      <div className="progress-bar">
+                        <div
+                          className="progress-fill cpu"
+                          style={{ width: `${Math.min(c.avg_cpu || 0, 100)}%` }}
+                        ></div>
+                      </div>
+                    </div>
+                    <div className="metric">
+                      <div className="metric-header">
+                        <span>Memory</span>
+                        <span className="metric-value">{c.avg_ram || 0}%</span>
+                      </div>
+                      <div className="progress-bar">
+                        <div
+                          className="progress-fill memory"
+                          style={{ width: `${Math.min(c.avg_ram || 0, 100)}%` }}
+                        ></div>
+                      </div>
+                    </div>
+                  </div>
+
+                  <div className="device-footer">
+                    {c.sysmon_available && (
+                      <div className="sysmon-badge">
+                        <span className="sysmon-icon">🛡️</span>
+                        {c.recent_sysmon || 0} events
+                      </div>
+                    )}
+                  </div>
+                </div>
+              ))}
+
+              {filteredComputers.length === 0 && (
+                <div className="empty-state">
+                  <div className="empty-icon">🔍</div>
+                  <h3>No devices match your filters</h3>
+                  <button onClick={resetFilters} className="empty-action-btn">
+                    Reset All Filters
+                  </button>
+                </div>
+              )}
+            </div>
+          </div>
+        </div>
+      </main>
+
+      {/* AI Assistant Sidebar */}
+      <div className={`ai-sidebar ${isChatOpen ? 'open' : ''}`}>
+        <div className="ai-header">
+          <div className="ai-title">
+            <div className="ai-avatar">🤖</div>
+            <div>
+              <h3>Security AI Assistant</h3>
+              <p className="ai-subtitle">Powered by LAN Sentinel</p>
+            </div>
+          </div>
+          <button className="close-ai" onClick={() => setIsChatOpen(false)}>
+            ✕
+          </button>
+        </div>
+
+        <div className="ai-content">
+          <div className="chat-container">
+            <div className="chat-history">
+              {showWelcome && (
+                <div className="welcome-message">
+                  <div className="welcome-avatar">🤖</div>
+                  <div className="welcome-content">
+                    <h4>Welcome to Security AI Assistant!</h4>
+                    <p>I can help you analyze security events, monitor network activity, and investigate incidents.</p>
+                    <div className="welcome-questions">
+                      {quickQuestions.map((q, idx) => (
+                        <button
+                          key={idx}
+                          className="quick-question"
+                          onClick={() => {
+                            setChatQuestion(q);
+                            setTimeout(() => askAssistant(), 100);
+                          }}
+                        >
+                          {q}
+                        </button>
+                      ))}
+                    </div>
+                  </div>
+                </div>
+              )}
+
+              {chatHistory.map((msg, idx) => (
+                <div key={idx} className={`chat-message ${msg.type}`}>
+                  <div className="message-avatar">
+                    {msg.type === 'question' ? '👤' : '🤖'}
+                  </div>
+                  <div className="message-content">
+                    <div className="message-header">
+                      <span className="message-sender">
+                        {msg.type === 'question' ? 'You' : 'Security AI'}
+                      </span>
+                      {msg.computer && (
+                        <span className="message-context">
+                          Computer: {msg.computer}
+                        </span>
+                      )}
+                    </div>
+                    <div className="message-text">
+                      {msg.content}
+                    </div>
+                    <div className="message-time">
+                      {new Date(msg.timestamp).toLocaleTimeString([], {
+                        hour: '2-digit',
+                        minute: '2-digit'
+                      })}
+                    </div>
+                  </div>
+                </div>
+              ))}
+
+              {chatLoading && (
+                <div className="chat-message answer">
+                  <div className="message-avatar">🤖</div>
+                  <div className="message-content">
+                    <div className="typing-indicator">
+                      <div></div>
+                      <div></div>
+                      <div></div>
+                    </div>
+                  </div>
+                </div>
+              )}
+            </div>
+
+            <div className="chat-input-area">
+              <select
+                value={chatComputer}
+                onChange={(e) => setChatComputer(e.target.value)}
+                className="chat-select"
+              >
+                <option value="">🌐 All Network</option>
+                {computers.map((c) => (
+                  <option key={c.name} value={c.name}>
+                    {c.name}
+                  </option>
+                ))}
+              </select>
+
+              <div className="input-wrapper">
+                <input
+                  type="text"
+                  placeholder="Ask about security events..."
+                  value={chatQuestion}
+                  onChange={(e) => setChatQuestion(e.target.value)}
+                  onKeyDown={(e) => e.key === 'Enter' && askAssistant()}
+                  className="chat-input"
+                />
+                <button
+                  onClick={askAssistant}
+                  disabled={chatLoading || !chatQuestion.trim()}
+                  className="send-btn"
+                >
+                  {chatLoading ? '...' : '➤'}
+                </button>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      {/* Enhanced Computer Details Modal */}
+      {selectedComputer && (
+        <div className="modal-overlay" onClick={closeModal}>
+          <div className="modal large" onClick={(e) => e.stopPropagation()}>
+            <div className="modal-header">
+              <div className="modal-title">
+                <h2>{selectedComputer}</h2>
+                <div className="modal-subtitle">
+                  <span className="ip-badge">{computerDetails?.computer?.ip}</span>
+                  <span className="os-badge">{computerDetails?.computer?.os}</span>
+                  <span className={`status-badge ${computerDetails?.computer?.status}`}>
+                    {computerDetails?.computer?.status}
+                  </span>
+                </div>
+              </div>
+              <div className="modal-actions">
+                <button className="modal-btn">
+                  <span className="btn-icon">📊</span>
+                  Report
+                </button>
+                <button className="modal-close" onClick={closeModal}>
+                  ✕
+                </button>
+              </div>
+            </div>
+
+            <div className="modal-content">
+              {loadingDetails ? (
+                <div className="loading-state">
+                  <div className="loader"></div>
+                  <p>Loading device details...</p>
+                </div>
+              ) : (
+                <>
+                  {/* Quick Stats */}
+                  <div className="quick-stats">
+                    <div className="quick-stat">
+                      <div className="stat-icon">⚡</div>
+                      <div className="stat-info">
+                        <div className="stat-value">
+                          {computerDetails?.current_metrics?.cpu_usage || 0}%
+                        </div>
+                        <div className="stat-label">CPU</div>
+                      </div>
+                    </div>
+                    <div className="quick-stat">
+                      <div className="stat-icon">💾</div>
+                      <div className="stat-info">
+                        <div className="stat-value">
+                          {computerDetails?.current_metrics?.ram_usage || 0}%
+                        </div>
+                        <div className="stat-label">RAM</div>
+                      </div>
+                    </div>
+                    <div className="quick-stat">
+                      <div className="stat-icon">📡</div>
+                      <div className="stat-info">
+                        <div className="stat-value">
+                          {computerDetails?.current_metrics?.network_usage || 0}%
+                        </div>
+                        <div className="stat-label">Network</div>
+                      </div>
+                    </div>
+                    <div className="quick-stat">
+                      <div className="stat-icon">🛡️</div>
+                      <div className="stat-info">
+                        <div className="stat-value">
+                          {computerDetails?.recent_sysmon || 0}
+                        </div>
+                        <div className="stat-label">Sysmon Events</div>
+                      </div>
+                    </div>
+                  </div>
+
+                  {/* Tabs */}
+                  <div className="modal-tabs">
+                    <div className="tabs-header">
+                      <button
+                        className={`tab ${activeTab === 'security' ? 'active' : ''}`}
+                        onClick={() => setActiveTab('security')}
+                      >
+                        Security Events
+                      </button>
+                      <button
+                        className={`tab ${activeTab === 'sysmon' ? 'active' : ''}`}
+                        onClick={() => {
+                          setActiveTab('sysmon');
+                          if (!sysmonData) loadSysmonProcesses();
+                        }}
+                      >
+                        Sysmon Processes
+                      </button>
+                      <button
+                        className={`tab ${activeTab === 'network' ? 'active' : ''}`}
+                        onClick={() => {
+                          setActiveTab('network');
+                          if (!networkData) loadNetworkConnections();
+                        }}
+                      >
+                        Network Connections
+                      </button>
+                      <button
+                        className={`tab ${activeTab === 'details' ? 'active' : ''}`}
+                        onClick={() => setActiveTab('details')}
+                      >
+                        System Details
+                      </button>
+                    </div>
+
+                    <div className="tabs-content">
+                      {/* Security Events Tab */}
+                      {activeTab === 'security' && (
+                        <div className="tab-pane active">
+                          <div className="data-table-container">
+                            <table className="data-table">
+                              <thead>
+                                <tr>
+                                  <th>Time</th>
+                                  <th>Event ID</th>
+                                  <th>Type</th>
+                                  <th>Description</th>
+                                </tr>
+                              </thead>
+                              <tbody>
+                                {(computerDetails?.sysmon_events || []).map((ev, idx) => (
+                                  <tr key={idx}>
+                                    <td>{formatTime(ev.timestamp)}</td>
+                                    <td>
+                                      <span className="event-id">#{ev.event_id}</span>
+                                    </td>
+                                    <td>
+                                      <span className={`event-type ${ev.event_type?.toLowerCase()}`}>
+                                        {ev.event_type}
+                                      </span>
+                                    </td>
+                                    <td className="event-desc">
+                                      {ev.message?.slice(0, 100) || 'No description'}
+                                    </td>
+                                  </tr>
+                                ))}
+                              </tbody>
+                            </table>
+                          </div>
+                        </div>
+                      )}
+
+                      {/* Sysmon Processes Tab */}
+                      {activeTab === 'sysmon' && (
+                        <div className="tab-pane active">
+                          <div className="pane-header">
+                            <h3>Sysmon Processes</h3>
+                            <button
+                              onClick={loadSysmonProcesses}
+                              className="refresh-btn-small"
+                              disabled={loadingSysmon}
+                            >
+                              {loadingSysmon ? 'Loading...' : '↻ Refresh'}
+                            </button>
+                          </div>
+
+                          {loadingSysmon ? (
+                            <div className="loading-state">
+                              <div className="loader"></div>
+                              <p>Loading Sysmon processes...</p>
                             </div>
-
-                            {/* FILTERS */}
-                            <div className="panel" style={{marginBottom: 14}}>
-                                <div className="panel-head">
-                                    <div className="panel-title">Filters</div>
-                                    <div style={{color: "var(--dim)", fontSize: 12}}>
-                                        {loading ? "Refreshing…" : `${filtered.length} shown`}
+                          ) : sysmonData ? (
+                            <div className="data-grid">
+                              <div className="grid-container">
+                                {sysmonData.processes && sysmonData.processes.length > 0 ? (
+                                  <>
+                                    <div className="grid-sidebar">
+                                      <div className="process-list">
+                                        {sysmonData.processes.map((proc, idx) => (
+                                          <div
+                                            key={idx}
+                                            className={`process-item ${selectedSysmonProcess === idx ? 'active' : ''}`}
+                                            onClick={() => setSelectedSysmonProcess(idx)}
+                                          >
+                                            <div className="process-name">
+                                              <strong>{proc.process_name || 'Unknown'}</strong>
+                                            </div>
+                                            <div className="process-pid">
+                                              PID: {proc.process_id}
+                                            </div>
+                                            <div className="process-time">
+                                              {formatTime(proc.timestamp)}
+                                            </div>
+                                          </div>
+                                        ))}
+                                      </div>
                                     </div>
-                                </div>
-                                <div className="panel-body">
-                                    <div className="filters">
-                                        <input
-                                            className="input"
-                                            value={query}
-                                            onChange={(e) => setQuery(e.target.value)}
-                                            placeholder="Search by name / user / ip / os…"
-                                        />
-
-                                        <select
-                                            className="select"
-                                            value={status}
-                                            onChange={(e) => setStatus(e.target.value)}
-                                        >
-                                            <option value="">All status</option>
-                                            <option value="online">Online</option>
-                                            <option value="idle">Idle</option>
-                                            <option value="offline">Offline</option>
-                                        </select>
-
-                                        <button className="btn primary" onClick={refresh}>
-                                            Refresh
-                                        </button>
+                                    <div className="grid-content">
+                                      {selectedSysmonProcess !== null ? (
+                                        <div className="json-viewer">
+                                          <div className="json-header">
+                                            <h4>Process Details (JSON)</h4>
+                                            <button
+                                              className="copy-json"
+                                              onClick={() => navigator.clipboard.writeText(
+                                                JSON.stringify(sysmonData.processes[selectedSysmonProcess], null, 2)
+                                              )}
+                                            >
+                                              📋 Copy JSON
+                                            </button>
+                                          </div>
+                                          <pre className="json-content">
+                                            {JSON.stringify(sysmonData.processes[selectedSysmonProcess], null, 2)}
+                                          </pre>
+                                        </div>
+                                      ) : (
+                                        <div className="select-prompt">
+                                          <div className="prompt-icon">👈</div>
+                                          <p>Select a process from the list to view its JSON data</p>
+                                        </div>
+                                      )}
                                     </div>
-                                </div>
+                                  </>
+                                ) : (
+                                  <div className="empty-data">
+                                    <div className="empty-icon">📄</div>
+                                    <p>No Sysmon processes found</p>
+                                  </div>
+                                )}
+                              </div>
                             </div>
-
-                            {/* COMPUTERS */}
-                            <div className="panel">
-                                <div className="panel-head">
-                                    <div className="panel-title">Connected Computers</div>
-                                    <div style={{display: "flex", gap: 10, alignItems: "center"}}>
-                                        <span className="pill">{filtered.length} computers</span>
-                                        <button
-                                            className="btn"
-                                            onClick={() => {
-                                                setQuery("");
-                                                setStatus("");
-                                            }}
-                                        >
-                                            Reset
-                                        </button>
+                          ) : (
+                            <div className="empty-data">
+                              <p>Click refresh to load Sysmon processes</p>
+                              <button onClick={loadSysmonProcesses} className="load-btn">
+                                Load Sysmon Data
+                              </button>
+                            </div>
+                          )}
+                        </div>
+                      )}
+
+                      {/* Network Connections Tab */}
+                      {activeTab === 'network' && (
+                        <div className="tab-pane active">
+                          <div className="pane-header">
+                            <h3>Network Connections</h3>
+                            <button
+                              onClick={loadNetworkConnections}
+                              className="refresh-btn-small"
+                              disabled={loadingNetwork}
+                            >
+                              {loadingNetwork ? 'Loading...' : '↻ Refresh'}
+                            </button>
+                          </div>
+
+                          {loadingNetwork ? (
+                            <div className="loading-state">
+                              <div className="loader"></div>
+                              <p>Loading network connections...</p>
+                            </div>
+                          ) : networkData ? (
+                            <div className="data-grid">
+                              <div className="grid-container">
+                                {networkData.connections && networkData.connections.length > 0 ? (
+                                  <>
+                                    <div className="grid-sidebar">
+                                      <div className="network-list">
+                                        {networkData.connections.map((conn, idx) => (
+                                          <div
+                                            key={idx}
+                                            className={`network-item ${selectedNetworkItem === idx ? 'active' : ''}`}
+                                            onClick={() => setSelectedNetworkItem(idx)}
+                                          >
+                                            <div className="network-address">
+                                              <strong>{conn.local_address}:{conn.local_port}</strong>
+                                              <div className="arrow">→</div>
+                                              <strong>{conn.remote_address}:{conn.remote_port}</strong>
+                                            </div>
+                                            <div className="network-protocol">
+                                              {conn.protocol} • {conn.state}
+                                            </div>
+                                          </div>
+                                        ))}
+                                      </div>
                                     </div>
-                                </div>
-                                <div className="panel-body">
-                                    <div className="computers-grid">
-                                        {filtered.map((c) => (
-                                            <ComputerCard
-                                                key={c.name}
-                                                c={c}
-                                                onOpen={(pc) => {
-                                                    setSelectedComputer(pc);
-                                                    setAiScope(pc.name);
-                                                }}
-                                            />
-                                        ))}
-                                        {filtered.length === 0 && (
-                                            <div style={{color: "var(--dim)"}}>
-                                                No computers match filter.
-                                            </div>
-                                        )}
+                                    <div className="grid-content">
+                                      {selectedNetworkItem !== null ? (
+                                        <div className="json-viewer">
+                                          <div className="json-header">
+                                            <h4>Connection Details (JSON)</h4>
+                                            <button
+                                              className="copy-json"
+                                              onClick={() => navigator.clipboard.writeText(
+                                                JSON.stringify(networkData.connections[selectedNetworkItem], null, 2)
+                                              )}
+                                            >
+                                              📋 Copy JSON
+                                            </button>
+                                          </div>
+                                          <pre className="json-content">
+                                            {JSON.stringify(networkData.connections[selectedNetworkItem], null, 2)}
+                                          </pre>
+                                        </div>
+                                      ) : (
+                                        <div className="select-prompt">
+                                          <div className="prompt-icon">👈</div>
+                                          <p>Select a connection to view its JSON data</p>
+                                        </div>
+                                      )}
                                     </div>
-                                </div>
+                                  </>
+                                ) : (
+                                  <div className="empty-data">
+                                    <div className="empty-icon">🌐</div>
+                                    <p>No network connections found</p>
+                                  </div>
+                                )}
+                              </div>
                             </div>
-                        </>
-                    )}
-
-                    {activeView === "visualizations" && (
-                        <>
-                            <div className="panel" style={{marginBottom: 14}}>
-                                <div className="panel-head">
-                                    <div className="panel-title">Visualizations</div>
-                                    <div style={{color: "var(--dim)", fontSize: 12}}>
-                                        Network graphs / charts / tables
-                                    </div>
-                                </div>
-                                <div className="panel-body">
-                                    <NetIntelViz baseUrl="http://localhost:5555"/>
-                                </div>
+                          ) : (
+                            <div className="empty-data">
+                              <p>Click refresh to load network connections</p>
+                              <button onClick={loadNetworkConnections} className="load-btn">
+                                Load Network Data
+                              </button>
                             </div>
-                        </>
-                    )}
-
-                    {activeView === "account" && (
-                        <div className="panel">
-                            <div className="panel-head">
-                                <div className="panel-title">Account</div>
-                                <div style={{color: "var(--dim)", fontSize: 12}}>
-                                    Profile info
-                                </div>
+                          )}
+                        </div>
+                      )}
+
+                      {/* System Details Tab */}
+                      {activeTab === 'details' && computerDetails && (
+                        <div className="tab-pane active">
+                          <div className="details-grid">
+                            <div className="detail-group">
+                              <h4>System Information</h4>
+                              <div className="detail-item">
+                                <span className="detail-label">Hostname:</span>
+                                <span className="detail-value">{computerDetails.computer.name}</span>
+                              </div>
+                              <div className="detail-item">
+                                <span className="detail-label">IP Address:</span>
+                                <span className="detail-value">{computerDetails.computer.ip}</span>
+                              </div>
+                              <div className="detail-item">
+                                <span className="detail-label">OS Version:</span>
+                                <span className="detail-value">{computerDetails.computer.os}</span>
+                              </div>
+                              <div className="detail-item">
+                                <span className="detail-label">Last Seen:</span>
+                                <span className="detail-value">{formatTime(computerDetails.computer.last_seen)}</span>
+                              </div>
                             </div>
-                            <div className="panel-body">
-                                <div style={{display: "grid", gap: 10}}>
-                                    <div className="pill">Email: {me.email}</div>
-                                    <div className="pill">Role: {me.role}</div>
-                                    <div className="pill">Tenant ID: {me.tenant_id}</div>
-                                    <div className="pill">Name: {me.name || "—"}</div>
-                                </div>
+
+                            <div className="detail-group">
+                              <h4>Current Metrics</h4>
+                              <div className="detail-item">
+                                <span className="detail-label">CPU Usage:</span>
+                                <span className="detail-value">{computerDetails.current_metrics?.cpu_usage || 0}%</span>
+                              </div>
+                              <div className="detail-item">
+                                <span className="detail-label">Memory Usage:</span>
+                                <span className="detail-value">{computerDetails.current_metrics?.ram_usage || 0}%</span>
+                              </div>
+                              <div className="detail-item">
+                                <span className="detail-label">Disk Usage:</span>
+                                <span className="detail-value">{computerDetails.current_metrics?.disk_usage || 0}%</span>
+                              </div>
                             </div>
+                          </div>
                         </div>
-                    )}
-                </div>
-
-                {/* DETAILS MODAL */}
-                <ComputerDetailsModal
-                    open={!!selectedComputer}
-                    computer={selectedComputer}
-                    onClose={() => setSelectedComputer(null)}
-                    onAskAI={(name) => {
-                        setAiScope(name);
-                        setAiOpen(true);
-                    }}
-                />
-
-                {/* AI DRAWER */}
-                <AIAssistantDrawer
-                    open={aiOpen}
-                    onClose={() => setAiOpen(false)}
-                    computers={computers}
-                    scope={aiScope}
-                    setScope={setAiScope}
-                    apiBase={import.meta.env.VITE_API_BASE}
-                />
-            </div>
+                      )}
+                    </div>
+                  </div>
+                </>
+              )}
+            </div>
+          </div>
         </div>
-    );
+      )}
+    </div>
+  );
 }
+
+export default App;
Index: n-frontend/src/components/AIAssistantDrawer.jsx
===================================================================
--- lan-frontend/src/components/AIAssistantDrawer.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-import React, {useEffect, useRef, useState} from "react";
-
-export default function AIAssistantDrawer({
-                                              open,
-                                              onClose,
-                                              computers,
-                                              scope,
-                                              setScope,
-                                              apiBase = "", // ако сакаш можеш да пратиш VITE_API_BASE тука
-                                          }) {
-    const [messages, setMessages] = useState([
-        {
-            role: "assistant",
-            text: "Постави прашање за Sysmon, процеси, мрежа. Можеш да избереш компјутер (scope) горе.",
-        },
-    ]);
-    const [input, setInput] = useState("");
-    const [sending, setSending] = useState(false);
-    const bottomRef = useRef(null);
-
-    useEffect(() => {
-        if (open) {
-            // затвори со Escape
-            const onKey = (e) => {
-                if (e.key === "Escape") onClose?.();
-            };
-            window.addEventListener("keydown", onKey);
-            return () => window.removeEventListener("keydown", onKey);
-        }
-    }, [open, onClose]);
-
-    useEffect(() => {
-        if (bottomRef.current) bottomRef.current.scrollIntoView({behavior: "smooth"});
-    }, [messages, open]);
-
-    async function send() {
-        const q = input.trim();
-        if (!q || sending) return;
-
-        setInput("");
-        setMessages((m) => [...m, {role: "user", text: q}]);
-        setSending(true);
-
-        try {
-            const base = (apiBase || "").replace(/\/$/, ""); // тргни trailing /
-            const url = `${base}/api/chat`;
-
-            const r = await fetch(url, {
-                method: "POST",
-                headers: {"Content-Type": "application/json"},
-                credentials: "include",
-                body: JSON.stringify({question: q, computer_name: scope || null}),
-            });
-
-
-            const data = await r.json().catch(() => ({}));
-            // if (!r.ok) {
-            //     setMessages((m) => [...m, {
-            //         role: "assistant",
-            //         text: `Error ${r.status}: ${data.error || "Request failed"}`
-            //     }]);
-            // } else {
-            //     setMessages((m) => [...m, {role: "assistant", text: data.answer || "(no answer)"}]);
-            // }
-            // setMessages((m) => [
-            //     ...m,
-            //     {role: "assistant", text: data.answer || "(no answer)"},
-            // ]);
-            if (!r.ok) {
-                setMessages((m) => [
-                    ...m,
-                    {role: "assistant", text: `Error ${r.status}: ${data.error || "Request failed"}`},
-                ]);
-            } else {
-                const qs = Array.isArray(data.queries) ? data.queries : [];
-                const notes = data.notes || "";
-
-                const text =
-                    qs.length
-                        ? `SQL queries:\n\n${qs.map((q, i) => `${i + 1}) ${q}`).join("\n\n")}\n\nNotes: ${notes}`
-                        : `Notes: ${notes || "No queries returned."}`;
-
-                setMessages((m) => [...m, {role: "assistant", text}]);
-            }
-
-
-        } catch (e) {
-            setMessages((m) => [
-                ...m,
-                {role: "assistant", text: `Грешка: ${String(e?.message || e)}`},
-            ]);
-        } finally {
-            setSending(false);
-        }
-    }
-
-    if (!open) return null;
-
-    return (
-        <>
-            <div className="aiDrawer-backdrop" onMouseDown={onClose}/>
-
-            <aside
-                className="aiDrawer"
-                role="dialog"
-                aria-modal="true"
-                onMouseDown={(e) => e.stopPropagation()}
-            >
-                <header className="aiDrawer-head">
-                    <div>
-                        <div className="aiDrawer-title">🤖 AI Assistant</div>
-                        <div className="aiDrawer-sub">RAG over your logs</div>
-                    </div>
-
-                    <button className="aiBtn" onClick={onClose} aria-label="Close">
-                        ✕
-                    </button>
-                </header>
-
-                <div className="aiDrawer-toolbar">
-                    <select
-                        className="aiSelect"
-                        value={scope || ""}
-                        onChange={(e) => setScope(e.target.value || null)}
-                    >
-                        <option value="">All computers</option>
-                        {(computers || []).map((c) => (
-                            <option key={c.name} value={c.name}>
-                                {c.name}
-                            </option>
-                        ))}
-                    </select>
-
-                    <div className="aiHint">
-                        Tip: “Top процеси по RAM” / “сомнителни sysmon events”
-                    </div>
-                </div>
-
-                <main className="aiDrawer-body">
-                    {messages.map((m, i) => (
-                        <div
-                            key={i}
-                            className={`aiMsg ${m.role === "user" ? "user" : "assistant"}`}
-                        >
-                            <div className="aiMsg-meta">{m.role === "user" ? "You" : "Assistant"}</div>
-                            <div className="aiMsg-text">{m.text}</div>
-                        </div>
-                    ))}
-                    <div ref={bottomRef}/>
-                </main>
-
-                <footer className="aiDrawer-foot">
-          <textarea
-              className="aiTextarea"
-              rows={2}
-              value={input}
-              placeholder="Постави прашање… (Enter = send, Shift+Enter нов ред)"
-              onChange={(e) => setInput(e.target.value)}
-              onKeyDown={(e) => {
-                  if (e.key === "Enter" && !e.shiftKey) {
-                      e.preventDefault();
-                      send();
-                  }
-              }}
-          />
-                    <button
-                        className="aiBtn aiBtnPrimary"
-                        onClick={send}
-                        disabled={sending || !input.trim()}
-                    >
-                        {sending ? "Sending…" : "Send"}
-                    </button>
-                </footer>
-            </aside>
-        </>
-    );
-}
Index: n-frontend/src/components/ComputerCard.jsx
===================================================================
--- lan-frontend/src/components/ComputerCard.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import React from "react";
-
-function dotClass(status) {
-  if (status === "online") return "dot online";
-  if (status === "idle") return "dot idle";
-  return "dot offline";
-}
-
-export default function ComputerCard({ c, onOpen }) {
-  return (
-    <button className="card" onClick={() => onOpen?.(c)}>
-      <div className="card-head">
-        <div className="card-title">{c.name}</div>
-        <div className={dotClass(c.status)} />
-      </div>
-
-      <div className="meta">
-        <div><span className="dim">🏷 Env:</span> {c.env_name || "default"}</div>
-        <div><span className="dim">👤 User:</span> {c.user || "—"}</div>
-        <div><span className="dim">🌐 IP:</span> {c.ip || "—"}</div>
-        <div><span className="dim">💻 OS:</span> {(c.os || "—").slice(0, 60)}</div>
-        <div><span className="dim">⏰ Last:</span> {c.last_seen ? new Date(c.last_seen).toLocaleTimeString() : "—"}</div>
-        <div><span className="dim">🛡 Sysmon:</span> {c.sysmon_available ? "Yes" : "No"} • {c.recent_sysmon ?? 0} events</div>
-      </div>
-
-      <div className="kpis">
-        <div className="kpi">
-          <div className="k">CPU avg</div>
-          <div className="v">{c.avg_cpu ?? 0}%</div>
-        </div>
-        <div className="kpi">
-          <div className="k">RAM avg</div>
-          <div className="v">{c.avg_ram ?? 0}%</div>
-        </div>
-        <div className="kpi">
-          <div className="k">Logs 24h</div>
-          <div className="v">{c.recent_logs ?? 0}</div>
-        </div>
-      </div>
-    </button>
-  );
-}
Index: n-frontend/src/components/ComputerDetailsModal.jsx
===================================================================
--- lan-frontend/src/components/ComputerDetailsModal.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,587 +1,0 @@
-import React, { useEffect, useMemo, useState } from "react";
-
-function severityForEventId(eventId) {
-  const id = Number.parseInt(String(eventId ?? ""), 10);
-  const high = new Set([1, 3, 8, 10]);
-  const med = new Set([5, 6, 7, 11, 22]);
-  if (high.has(id)) return "high";
-  if (med.has(id)) return "medium";
-  return "low";
-}
-
-function fmtTime(ts) {
-  if (!ts) return "—";
-  try {
-    return new Date(ts).toLocaleTimeString();
-  } catch {
-    return String(ts);
-  }
-}
-
-export default function ComputerDetailsModal({ open, computer, onClose, onAskAI }) {
-  const [tab, setTab] = useState("overview");
-  const [loading, setLoading] = useState(false);
-  const [details, setDetails] = useState(null);
-  const [error, setError] = useState("");
-  const [search, setSearch] = useState("");
-
-  // JSON viewer
-  const [jsonOpen, setJsonOpen] = useState(false);
-  const [jsonTitle, setJsonTitle] = useState("");
-  const [jsonData, setJsonData] = useState(null);
-
-  // reset when opening / switching pc
-  useEffect(() => {
-    if (!open) return;
-    setTab("overview");
-    setSearch("");
-    setError("");
-    setDetails(null);
-    setJsonOpen(false);
-    setJsonTitle("");
-    setJsonData(null);
-  }, [open, computer?.name]);
-
-  // close on ESC
-  useEffect(() => {
-    if (!open) return;
-    const onKey = (e) => {
-      if (e.key === "Escape") onClose?.();
-    };
-    window.addEventListener("keydown", onKey);
-    return () => window.removeEventListener("keydown", onKey);
-  }, [open, onClose]);
-
-  // load details
-  useEffect(() => {
-    if (!open || !computer?.name) return;
-    let cancelled = false;
-
-    async function load() {
-      setLoading(true);
-      setError("");
-      try {
-        const r = await fetch(`/api/computer/${encodeURIComponent(computer.name)}`, {
-          credentials: "include",
-        });
-        const d = await r.json().catch(() => ({}));
-        if (!r.ok) throw new Error(d?.error || `HTTP ${r.status}`);
-        if (!cancelled) setDetails(d);
-      } catch (e) {
-        if (!cancelled) {
-          setError(String(e?.message || e));
-          setDetails(null);
-        }
-      } finally {
-        if (!cancelled) setLoading(false);
-      }
-    }
-
-    load();
-    return () => {
-      cancelled = true;
-    };
-  }, [open, computer?.name]);
-
-  const filteredSysmon = useMemo(() => {
-    const list = details?.sysmon_events || [];
-    const q = search.trim().toLowerCase();
-    if (!q) return list;
-    return list.filter((ev) => {
-      const msg = (ev.message || "").toLowerCase();
-      const type = (ev.event_type || "").toLowerCase();
-      const id = String(ev.event_id ?? "").toLowerCase();
-      return msg.includes(q) || type.includes(q) || id.includes(q);
-    });
-  }, [details, search]);
-
-  function openJson(ev) {
-    setJsonTitle(`Sysmon Event ${ev?.event_id ?? ""} • ${ev?.event_type ?? ""}`);
-    setJsonData(ev?.details ?? ev);
-    setJsonOpen(true);
-  }
-
-  function closeJson() {
-    setJsonOpen(false);
-    setJsonTitle("");
-    setJsonData(null);
-  }
-
-  if (!open) return null;
-
-  return (
-    <>
-      <style>{`
-        .cdm-backdrop{
-          position: fixed; inset: 0; z-index: 60;
-          background: rgba(2,6,23,0.70);
-          backdrop-filter: blur(6px);
-          display:flex; align-items:center; justify-content:center;
-          padding: 18px;
-        }
-        .cdm-modal{
-          width: min(1100px, 96vw);
-          height: min(86vh, 860px);
-          display:flex; flex-direction:column;
-          border-radius: 18px;
-          background: radial-gradient(900px 420px at 20% 0%, rgba(96,165,250,0.18), transparent 60%),
-                      radial-gradient(700px 350px at 80% 10%, rgba(34,211,238,0.10), transparent 55%),
-                      rgba(10,16,32,0.92);
-          border: 1px solid rgba(96,165,250,0.20);
-          box-shadow: 0 30px 80px rgba(0,0,0,0.45);
-          overflow: hidden;
-        }
-        .cdm-head{
-          padding: 14px 16px;
-          border-bottom: 1px solid rgba(96,165,250,0.16);
-          display:flex; align-items:center; justify-content:space-between; gap:12px;
-        }
-        .cdm-title{ font-size: 16px; font-weight: 900; color: rgba(255,255,255,0.95); }
-        .cdm-sub{ margin-top: 2px; font-size: 12px; color: rgba(191,219,254,0.80); }
-        .cdm-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
-        .cdm-tabs{
-          display:flex; gap:8px; padding: 6px;
-          background: rgba(15,23,42,0.45);
-          border: 1px solid rgba(96,165,250,0.18);
-          border-radius: 999px;
-        }
-        .cdm-tab{
-          appearance:none; border: 0;
-          padding: 8px 12px;
-          border-radius: 999px;
-          background: transparent;
-          color: rgba(226,232,240,0.88);
-          font-weight: 900;
-          font-size: 12px;
-          cursor:pointer;
-          transition: background .12s ease, transform .12s ease, color .12s ease;
-        }
-        .cdm-tab:hover{ transform: translateY(-1px); background: rgba(30,41,59,0.55); }
-        .cdm-tab.active{
-          background: linear-gradient(135deg, rgba(37,99,235,0.95), rgba(56,189,248,0.65));
-          color: rgba(5,12,24,0.95);
-        }
-        .cdm-btn{
-          appearance:none;
-          border: 1px solid rgba(96,165,250,0.22);
-          background: rgba(15,23,42,0.55);
-          color: rgba(255,255,255,0.92);
-          padding: 9px 12px;
-          border-radius: 12px;
-          font-weight: 900;
-          font-size: 13px;
-          cursor: pointer;
-          transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
-          box-shadow: 0 8px 20px rgba(0,0,0,0.18);
-        }
-        .cdm-btn:hover{ transform: translateY(-1px); background: rgba(30,41,59,0.65); border-color: rgba(96,165,250,0.38); }
-        .cdm-btn:disabled{ opacity: .6; cursor: not-allowed; transform:none; }
-        .cdm-btn.primary{
-          background: linear-gradient(135deg, rgba(37,99,235,0.95), rgba(56,189,248,0.65));
-          border-color: rgba(147,197,253,0.35);
-          color: rgba(5,12,24,0.95);
-        }
-
-        /* body scroll zone */
-        .cdm-body{
-          flex: 1;
-          display:flex;
-          flex-direction:column;
-          min-height: 0; /* important for scroll */
-        }
-        .cdm-content{
-          flex: 1;
-          min-height: 0;
-          overflow: auto;
-          padding: 14px 16px 18px;
-        }
-
-        .cdm-panel{
-          border-radius: 16px;
-          background: rgba(15,23,42,0.55);
-          border: 1px solid rgba(96,165,250,0.16);
-          overflow: hidden;
-        }
-        .cdm-panel-head{
-          padding: 12px 12px;
-          display:flex; align-items:center; justify-content:space-between; gap:10px;
-          border-bottom: 1px solid rgba(96,165,250,0.14);
-        }
-        .cdm-panel-title{ color: rgba(255,255,255,0.92); font-weight: 900; }
-        .cdm-panel-body{ padding: 12px; }
-
-        /* table area scroll fix */
-        .cdm-table-wrap{
-          border-radius: 14px;
-          border: 1px solid rgba(148,163,184,0.18);
-          background: rgba(2,6,23,0.28);
-          overflow: hidden;
-        }
-        .cdm-table-scroll{
-          max-height: 52vh;
-          overflow: auto;
-        }
-        table{ width: 100%; border-collapse: collapse; }
-        thead th{
-          position: sticky; top: 0;
-          background: rgba(10,16,32,0.95);
-          backdrop-filter: blur(8px);
-          text-align:left;
-          font-size: 12px;
-          color: rgba(191,219,254,0.88);
-          padding: 10px 10px;
-          border-bottom: 1px solid rgba(96,165,250,0.16);
-          z-index: 1;
-        }
-        tbody td{
-          padding: 10px 10px;
-          border-bottom: 1px solid rgba(148,163,184,0.12);
-          color: rgba(226,232,240,0.92);
-          font-size: 13px;
-          vertical-align: top;
-        }
-        tbody tr:hover td{ background: rgba(30,41,59,0.35); }
-
-        .cdm-pill{
-          display:inline-flex; align-items:center; gap:8px;
-          padding: 6px 10px;
-          border-radius: 999px;
-          background: rgba(30,41,59,0.55);
-          border: 1px solid rgba(96,165,250,0.18);
-          color: rgba(255,255,255,0.9);
-          font-weight: 900;
-          font-size: 12px;
-        }
-        .cdm-input{
-          width: min(420px, 45vw);
-          padding: 9px 12px;
-          border-radius: 12px;
-          border: 1px solid rgba(96,165,250,0.18);
-          background: rgba(2,6,23,0.35);
-          color: rgba(255,255,255,0.92);
-          outline: none;
-          font-weight: 800;
-        }
-        .cdm-input::placeholder{ color: rgba(148,163,184,0.75); }
-
-        .cdm-badge{
-          display:inline-flex; align-items:center; justify-content:center;
-          padding: 5px 10px;
-          border-radius: 999px;
-          font-weight: 1000;
-          font-size: 11px;
-          letter-spacing: .3px;
-          border: 1px solid rgba(148,163,184,0.18);
-          background: rgba(15,23,42,0.5);
-          color: rgba(226,232,240,0.95);
-        }
-        .cdm-badge.high{ border-color: rgba(239,68,68,0.35); color: rgba(254,202,202,0.95); }
-        .cdm-badge.medium{ border-color: rgba(251,191,36,0.35); color: rgba(254,243,199,0.95); }
-        .cdm-badge.low{ border-color: rgba(34,197,94,0.25); color: rgba(220,252,231,0.95); }
-
-        /* JSON modal */
-        .cdm-json-modal{
-          width: min(980px, 96vw);
-          height: min(82vh, 860px);
-          display:flex; flex-direction:column;
-          border-radius: 18px;
-          background: rgba(10,16,32,0.94);
-          border: 1px solid rgba(96,165,250,0.20);
-          overflow:hidden;
-        }
-        .cdm-json-body{
-          flex:1; min-height:0; overflow:auto; padding: 14px 16px 18px;
-        }
-        .cdm-pre{
-          margin: 0;
-          padding: 14px;
-          border-radius: 12px;
-          border: 1px solid rgba(148,163,184,0.22);
-          background: rgba(2,6,23,0.35);
-          color: rgba(226,232,240,0.95);
-          font-size: 12px;
-          line-height: 1.5;
-          white-space: pre-wrap;
-          word-break: break-word;
-        }
-      `}</style>
-
-      <div className="cdm-backdrop" onMouseDown={onClose}>
-        <div className="cdm-modal" onMouseDown={(e) => e.stopPropagation()}>
-          <div className="cdm-head">
-            <div>
-              <div className="cdm-title">{computer?.name || "Computer"}</div>
-              <div className="cdm-sub">
-                {computer?.ip || "—"} • {computer?.user || "—"} • {computer?.status || "—"}
-              </div>
-            </div>
-
-            <div className="cdm-right">
-              <button className="cdm-btn primary" onClick={() => onAskAI?.(computer?.name)} disabled={!computer?.name}>
-                Ask AI
-              </button>
-
-              <div className="cdm-tabs">
-                <button className={`cdm-tab ${tab === "overview" ? "active" : ""}`} onClick={() => setTab("overview")}>
-                  Overview
-                </button>
-                <button className={`cdm-tab ${tab === "sysmon" ? "active" : ""}`} onClick={() => setTab("sysmon")}>
-                  Sysmon
-                </button>
-                <button className={`cdm-tab ${tab === "processes" ? "active" : ""}`} onClick={() => setTab("processes")}>
-                  Processes
-                </button>
-                <button className={`cdm-tab ${tab === "network" ? "active" : ""}`} onClick={() => setTab("network")}>
-                  Network
-                </button>
-              </div>
-
-              <button className="cdm-btn" onClick={onClose}>
-                Close
-              </button>
-            </div>
-          </div>
-
-          <div className="cdm-body">
-            <div className="cdm-content">
-              {loading && <div style={{ color: "rgba(148,163,184,0.95)" }}>Loading…</div>}
-
-              {!loading && error && (
-                <div className="cdm-panel" style={{ borderColor: "rgba(239,68,68,0.35)" }}>
-                  <div className="cdm-panel-head">
-                    <div className="cdm-panel-title">Error</div>
-                  </div>
-                  <div className="cdm-panel-body" style={{ color: "rgba(254,202,202,0.95)" }}>
-                    {error}
-                  </div>
-                </div>
-              )}
-
-              {!loading && !error && details && tab === "overview" && (
-                <div className="cdm-panel">
-                  <div className="cdm-panel-head">
-                    <div className="cdm-panel-title">System Overview</div>
-                    <span className="cdm-pill">Env: {details.computer?.env_name || "default"}</span>
-                  </div>
-                  <div className="cdm-panel-body" style={{ display: "grid", gap: 10 }}>
-                    <div><b>User:</b> {details.computer?.user || "—"}</div>
-                    <div><b>IP:</b> {details.computer?.ip || "—"}</div>
-                    <div><b>OS:</b> {details.computer?.os || "—"}</div>
-                    <div><b>First seen:</b> {details.computer?.first_seen || "—"}</div>
-                    <div><b>Last seen:</b> {details.computer?.last_seen || "—"}</div>
-                    <div><b>Total logs:</b> {details.computer?.total_logs ?? "—"}</div>
-                  </div>
-                </div>
-              )}
-
-              {!loading && !error && details && tab === "sysmon" && (
-                <div className="cdm-panel">
-                  <div className="cdm-panel-head">
-                    <div className="cdm-panel-title">Sysmon Events</div>
-                    <div style={{ display: "flex", gap: 10, alignItems: "center" }}>
-                      <span className="cdm-pill">{filteredSysmon.length} events</span>
-                      <input
-                        className="cdm-input"
-                        placeholder="Search by id / type / message…"
-                        value={search}
-                        onChange={(e) => setSearch(e.target.value)}
-                      />
-                    </div>
-                  </div>
-
-                  <div className="cdm-panel-body">
-                    <div className="cdm-table-wrap">
-                      <div className="cdm-table-scroll">
-                        <table>
-                          <thead>
-                            <tr>
-                              <th style={{ width: 90 }}>Time</th>
-                              <th style={{ width: 70 }}>ID</th>
-                              <th style={{ width: 190 }}>Type</th>
-                              <th style={{ width: 110 }}>Severity</th>
-                              <th>Message</th>
-                              <th style={{ width: 90 }}>View</th>
-                            </tr>
-                          </thead>
-                          <tbody>
-                            {filteredSysmon.slice(0, 400).map((ev, idx) => {
-                              const sev = severityForEventId(ev.event_id);
-                              return (
-                                <tr key={idx}>
-                                  <td>{fmtTime(ev.timestamp)}</td>
-                                  <td><b>{ev.event_id ?? "—"}</b></td>
-                                  <td>{ev.event_type || "—"}</td>
-                                  <td><span className={`cdm-badge ${sev}`}>{sev.toUpperCase()}</span></td>
-                                  <td style={{ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontSize: 12 }}>
-                                    {(ev.message || "").slice(0, 220)}
-                                  </td>
-                                  <td>
-                                    <button className="cdm-btn" onClick={() => openJson(ev)}>
-                                      View
-                                    </button>
-                                  </td>
-                                </tr>
-                              );
-                            })}
-
-                            {filteredSysmon.length === 0 && (
-                              <tr>
-                                <td colSpan="6" style={{ color: "rgba(148,163,184,0.95)" }}>
-                                  No sysmon events.
-                                </td>
-                              </tr>
-                            )}
-                          </tbody>
-                        </table>
-                      </div>
-                    </div>
-                    {filteredSysmon.length > 400 && (
-                      <div style={{ marginTop: 10, color: "rgba(148,163,184,0.95)", fontSize: 12 }}>
-                        Showing first 400 (for speed).
-                      </div>
-                    )}
-                  </div>
-                </div>
-              )}
-
-              {!loading && !error && details && tab === "processes" && (
-                <div className="cdm-panel">
-                  <div className="cdm-panel-head">
-                    <div className="cdm-panel-title">Recent Processes</div>
-                    <span className="cdm-pill">{(details.recent_processes || []).length} rows</span>
-                  </div>
-
-                  <div className="cdm-panel-body">
-                    <div className="cdm-table-wrap">
-                      <div className="cdm-table-scroll">
-                        <table>
-                          <thead>
-                            <tr>
-                              <th style={{ width: 90 }}>Time</th>
-                              <th style={{ width: 80 }}>PID</th>
-                              <th style={{ width: 200 }}>Name</th>
-                              <th style={{ width: 140 }}>User</th>
-                              <th style={{ width: 90 }}>CPU%</th>
-                              <th style={{ width: 110 }}>RAM MB</th>
-                              <th>Cmdline</th>
-                            </tr>
-                          </thead>
-                          <tbody>
-                            {(details.recent_processes || []).slice(0, 400).map((p, idx) => (
-                              <tr key={idx}>
-                                <td>{fmtTime(p.timestamp)}</td>
-                                <td><b>{p.pid ?? "—"}</b></td>
-                                <td>{p.name || "—"}</td>
-                                <td>{p.username || "—"}</td>
-                                <td>{p.cpu_percent ?? 0}</td>
-                                <td>{p.memory_mb ?? 0}</td>
-                                <td style={{ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontSize: 12 }}>
-                                  {(p.cmdline || "").slice(0, 220)}
-                                </td>
-                              </tr>
-                            ))}
-                            {(details.recent_processes || []).length === 0 && (
-                              <tr>
-                                <td colSpan="7" style={{ color: "rgba(148,163,184,0.95)" }}>
-                                  No process data.
-                                </td>
-                              </tr>
-                            )}
-                          </tbody>
-                        </table>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              )}
-
-              {!loading && !error && details && tab === "network" && (
-                <div className="cdm-panel">
-                  <div className="cdm-panel-head">
-                    <div className="cdm-panel-title">Network Connections</div>
-                    <span className="cdm-pill">{(details.network_connections || []).length} rows</span>
-                  </div>
-
-                  <div className="cdm-panel-body">
-                    <div className="cdm-table-wrap">
-                      <div className="cdm-table-scroll">
-                        <table>
-                          <thead>
-                            <tr>
-                              <th style={{ width: 90 }}>Time</th>
-                              <th style={{ width: 80 }}>PID</th>
-                              <th style={{ width: 180 }}>Process</th>
-                              <th style={{ width: 220 }}>Local</th>
-                              <th style={{ width: 220 }}>Remote</th>
-                              <th style={{ width: 140 }}>Status</th>
-                            </tr>
-                          </thead>
-                          <tbody>
-                            {(details.network_connections || []).slice(0, 400).map((n, idx) => (
-                              <tr key={idx}>
-                                <td>{fmtTime(n.timestamp)}</td>
-                                <td><b>{n.pid ?? "—"}</b></td>
-                                <td>{n.process_name || "—"}</td>
-                                <td style={{ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontSize: 12 }}>
-                                  {n.local_address || "—"}
-                                </td>
-                                <td style={{ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontSize: 12 }}>
-                                  {n.remote_address || "—"}
-                                </td>
-                                <td>{n.status || "—"}</td>
-                              </tr>
-                            ))}
-                            {(details.network_connections || []).length === 0 && (
-                              <tr>
-                                <td colSpan="6" style={{ color: "rgba(148,163,184,0.95)" }}>
-                                  No network data.
-                                </td>
-                              </tr>
-                            )}
-                          </tbody>
-                        </table>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              )}
-
-              {!loading && !error && !details && (
-                <div style={{ color: "rgba(148,163,184,0.95)" }}>No details.</div>
-              )}
-            </div>
-          </div>
-        </div>
-      </div>
-
-      {/* JSON VIEWER */}
-      {jsonOpen && (
-        <div className="cdm-backdrop" onMouseDown={closeJson}>
-          <div className="cdm-json-modal" onMouseDown={(e) => e.stopPropagation()}>
-            <div className="cdm-head">
-              <div>
-                <div className="cdm-title">View JSON</div>
-                <div className="cdm-sub">{jsonTitle}</div>
-              </div>
-              <div className="cdm-right">
-                <button
-                  className="cdm-btn"
-                  onClick={() => navigator.clipboard.writeText(JSON.stringify(jsonData ?? {}, null, 2))}
-                >
-                  Copy
-                </button>
-                <button className="cdm-btn" onClick={closeJson}>
-                  Close
-                </button>
-              </div>
-            </div>
-
-            <div className="cdm-json-body">
-              <pre className="cdm-pre">{JSON.stringify(jsonData ?? {}, null, 2)}</pre>
-            </div>
-          </div>
-        </div>
-      )}
-    </>
-  );
-}
Index: n-frontend/src/components/Dropdown.jsx
===================================================================
--- lan-frontend/src/components/Dropdown.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import { useState } from "react";
-import SankeyPanel from "../components/SankeyPanel";
-
-export default function VisualizationsPage() {
-  const [env, setEnv] = useState("office1");
-  const [computers, setComputers] = useState(["All"]);
-  const [ips, setIps] = useState(["All"]);
-
-  return (
-    <div style={{ padding: 16 }}>
-      <h2>Network Sankey</h2>
-
-      {/* Пример UI (ти можеш да ставиш multi-select компонента) */}
-      <div style={{ display: "flex", gap: 12, marginBottom: 12 }}>
-        <select value={env} onChange={(e) => setEnv(e.target.value)}>
-          <option value="office1">office1</option>
-          <option value="default">default</option>
-        </select>
-
-        <select
-          value={computers[0]}
-          onChange={(e) => setComputers([e.target.value])}
-        >
-          <option value="All">All</option>
-          <option value="Ilina-laptop">Ilina-laptop</option>
-          <option value="Irena">Irena</option>
-        </select>
-
-        <select value={ips[0]} onChange={(e) => setIps([e.target.value])}>
-          <option value="All">All</option>
-          <option value="127.0.0.1:443">127.0.0.1:443</option>
-        </select>
-      </div>
-
-      <SankeyPanel
-        dashboardUid="adt9v8k"   // <- стави го твојот UID од Grafana URL
-        env={env}
-        computers={computers}
-        ips={ips}
-        from="now-24h"
-        to="now"
-      />
-    </div>
-  );
-}
Index: n-frontend/src/components/Login.jsx
===================================================================
--- lan-frontend/src/components/Login.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import React from "react";
-import { GoogleLogin } from "@react-oauth/google";
-
-export default function Login({ onDone }) {
-  return (
-    <div style={{ display: "grid", placeItems: "center", minHeight: "100vh" }}>
-      <div className="panel" style={{ maxWidth: 460, width: "92%" }}>
-        <div className="panel-head">
-          <div className="panel-title">Sign in to netIntel</div>
-        </div>
-        <div className="panel-body">
-          <GoogleLogin
-            onSuccess={async (cred) => {
-              const r = await fetch("/api/auth/google", {
-                method: "POST",
-                headers: { "Content-Type": "application/json" },
-                credentials: "include",
-                body: JSON.stringify({ credential: cred.credential }),
-              });
-              if (r.ok) onDone?.();
-              else console.error(await r.json());
-            }}
-            onError={() => console.error("Google login failed")}
-          />
-        </div>
-      </div>
-    </div>
-  );
-}
Index: n-frontend/src/components/NetIntelViz.jsx
===================================================================
--- lan-frontend/src/components/NetIntelViz.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,653 +1,0 @@
-import React, { useEffect, useMemo, useState } from "react";
-import {
-  LineChart,
-  Line,
-  XAxis,
-  YAxis,
-  Tooltip,
-  Legend,
-  ResponsiveContainer,
-  CartesianGrid,
-} from "recharts";
-
-const VIZ = {
-  STATS: "stats",
-  COMPUTERS: "computers",
-  COMPUTER_DETAILS: "computer_details",
-  NET_GRAPH: "net_graph",
-};
-
-function fmtTs(ts) {
-  if (!ts) return "";
-  return String(ts).replace("T", " ").replace("Z", "");
-}
-
-async function fetchJson(url, { method = "GET", headers = {}, body } = {}) {
-  const res = await fetch(url, {
-    method,
-    credentials: "include",
-    headers: {
-      "Content-Type": "application/json",
-      ...headers,
-    },
-    body: body ? JSON.stringify(body) : undefined,
-  });
-
-  const text = await res.text();
-  let data;
-  try {
-    data = text ? JSON.parse(text) : null;
-  } catch {
-    data = { raw: text };
-  }
-  if (!res.ok) {
-    const msg = data?.error || data?.message || res.statusText;
-    throw new Error(msg);
-  }
-  return data;
-}
-
-/** ✅ Use existing theme.css look: panel / btn / select / input / pill */
-function Panel({ title, right, children, subtitle }) {
-  return (
-    <div className="panel" style={{ marginBottom: 14 }}>
-      <div className="panel-head">
-        <div>
-          <div className="panel-title">{title}</div>
-          {subtitle ? (
-            <div style={{ color: "var(--dim)", fontSize: 12, marginTop: 4 }}>{subtitle}</div>
-          ) : null}
-        </div>
-        {right}
-      </div>
-      <div className="panel-body">{children}</div>
-    </div>
-  );
-}
-
-function Select({ label, value, onChange, options, disabled }) {
-  return (
-    <label style={{ display: "grid", gap: 6 }}>
-      <div style={{ fontSize: 12, color: "var(--dim)" }}>{label}</div>
-      <select
-        className="select"
-        value={value}
-        disabled={disabled}
-        onChange={(e) => onChange(e.target.value)}
-      >
-        {options.map((o) => (
-          <option key={o.value} value={o.value}>
-            {o.label}
-          </option>
-        ))}
-      </select>
-    </label>
-  );
-}
-
-function Pill({ children }) {
-  return <span className="pill">{children}</span>;
-}
-
-function Table({ columns, rows, emptyText = "Нема податоци." }) {
-  return (
-    <div style={{ overflow: "auto" }}>
-      <table className="table">
-        <thead>
-          <tr>
-            {columns.map((c) => (
-              <th key={c.key}>{c.title}</th>
-            ))}
-          </tr>
-        </thead>
-        <tbody>
-          {rows.length === 0 ? (
-            <tr>
-              <td colSpan={columns.length} style={{ color: "var(--dim)", padding: 12 }}>
-                {emptyText}
-              </td>
-            </tr>
-          ) : (
-            rows.map((r, idx) => (
-              <tr key={idx}>
-                {columns.map((c) => (
-                  <td key={c.key}>{c.render ? c.render(r) : String(r[c.key] ?? "")}</td>
-                ))}
-              </tr>
-            ))
-          )}
-        </tbody>
-      </table>
-    </div>
-  );
-}
-
-export default function NetIntelViz({ baseUrl = "" }) {
-  const [loading, setLoading] = useState(false);
-  const [err, setErr] = useState("");
-
-  const [me, setMe] = useState(null);
-  const [envs, setEnvs] = useState(["default"]);
-  const [env, setEnv] = useState("default");
-
-  const [viz, setViz] = useState(VIZ.NET_GRAPH);
-
-  const [stats, setStats] = useState(null);
-  const [computers, setComputers] = useState([]);
-  const [computerName, setComputerName] = useState("");
-  const [computerDetails, setComputerDetails] = useState(null);
-
-  const [sinceHours, setSinceHours] = useState("24");
-  const [graph, setGraph] = useState(null);
-
-  const api = useMemo(() => (baseUrl || "").replace(/\/+$/, ""), [baseUrl]);
-
-  const envOptions = useMemo(() => {
-    const uniq = [...new Set(envs)];
-    return uniq.map((e) => ({ value: e, label: e }));
-  }, [envs]);
-
-  const computerOptions = useMemo(() => {
-    const opts = computers.map((c) => ({ value: c.name, label: c.name }));
-    return [{ value: "", label: "all" }, ...opts];
-  }, [computers]);
-
-  const vizOptions = [
-    { value: VIZ.STATS, label: "Stats (24h)" },
-    { value: VIZ.COMPUTERS, label: "Computers" },
-    { value: VIZ.COMPUTER_DETAILS, label: "Computer details" },
-    { value: VIZ.NET_GRAPH, label: "Network graph" },
-  ];
-
-  async function loadMe() {
-    const data = await fetchJson(`${api}/api/me`);
-    setMe(data?.user || null);
-  }
-
-  async function loadEnvs() {
-    try {
-      const data = await fetchJson(`${api}/api/admin/environments`);
-      const list = data?.environments?.length ? data.environments : ["default"];
-      setEnvs(list);
-      if (!list.includes(env)) setEnv(list[0] || "default");
-    } catch {
-      setEnvs(["default"]);
-      setEnv("default");
-    }
-  }
-
-  async function loadStats(selectedEnv) {
-    const data = await fetchJson(`${api}/api/stats`, {
-      headers: { "X-Env": selectedEnv || env || "default" },
-    });
-    setStats(data);
-  }
-
-  async function loadComputers(selectedEnv) {
-    const data = await fetchJson(`${api}/api/computers`, {
-      headers: { "X-Env": selectedEnv || env || "default" },
-    });
-    setComputers(Array.isArray(data) ? data : []);
-  }
-
-  async function loadComputerDetails(name) {
-    if (!name) {
-      setComputerDetails(null);
-      return;
-    }
-    const data = await fetchJson(`${api}/api/computer/${encodeURIComponent(name)}`, {
-      headers: { "X-Env": env || "default" },
-    });
-    setComputerDetails(data);
-  }
-
-  async function loadNetGraph() {
-    const qs = new URLSearchParams();
-    qs.set("env", env || "default");
-    qs.set("since_hours", String(parseInt(sinceHours || "24", 10) || 24));
-    if (computerName) qs.set("computer", computerName);
-
-    const data = await fetchJson(`${api}/api/graph/net?${qs.toString()}`, {
-      headers: { "X-Env": env || "default" },
-    });
-    setGraph(data);
-  }
-  function MiniBipartiteGraph({ nodes = [], edges = [] }) {
-  const comps = nodes.filter((n) => (n.subTitle || "").toLowerCase().includes("computer"));
-  const ips = nodes.filter((n) => (n.subTitle || "").toLowerCase().includes("remote"));
-
-  const width = 1100;
-  const height = 520;
-  const pad = 40;
-
-  const compPos = comps.map((n, i) => ({
-    ...n,
-    x: pad,
-    y: pad + (i * (height - 2 * pad)) / Math.max(1, comps.length - 1),
-  }));
-
-  const ipPos = ips.map((n, i) => ({
-    ...n,
-    x: width - pad,
-    y: pad + (i * (height - 2 * pad)) / Math.max(1, ips.length - 1),
-  }));
-
-  const pos = new Map();
-  [...compPos, ...ipPos].forEach((n) => pos.set(n.id, n));
-
-  const shownEdges = edges.slice(0, 120);
-
-  return (
-    <div style={{ overflow: "auto" }}>
-      <svg width={width} height={height} style={{ borderRadius: 16, background: "rgba(255,255,255,0.03)" }}>
-        {shownEdges.map((e, idx) => {
-          const s = pos.get(e.source);
-          const t = pos.get(e.target);
-          if (!s || !t) return null;
-          const v = Number(e.mainStat || 1);
-          const strokeWidth = Math.max(1, Math.min(6, Math.log2(v + 1)));
-          return (
-            <line
-              key={idx}
-              x1={s.x}
-              y1={s.y}
-              x2={t.x}
-              y2={t.y}
-              stroke="rgba(120,180,255,0.25)"
-              strokeWidth={strokeWidth}
-            />
-          );
-        })}
-
-        {compPos.map((n) => (
-          <g key={n.id}>
-            <circle cx={n.x} cy={n.y} r={6} fill="rgba(255,255,255,0.9)" />
-            <text x={n.x + 12} y={n.y + 4} fontSize="11" fill="rgba(255,255,255,0.85)">
-              {n.title}
-            </text>
-          </g>
-        ))}
-
-        {ipPos.map((n) => (
-          <g key={n.id}>
-            <circle cx={n.x} cy={n.y} r={6} fill="rgba(80,160,255,0.95)" />
-            <text x={n.x - 12} y={n.y + 4} textAnchor="end" fontSize="11" fill="rgba(255,255,255,0.85)">
-              {n.title}
-            </text>
-          </g>
-        ))}
-      </svg>
-
-      <div style={{ color: "var(--dim)", fontSize: 12, marginTop: 10 }}>
-        Tip: ако има премногу линии, намали Hours или избери конкретен Computer.
-      </div>
-    </div>
-  );
-}
-
-
-  async function refreshAll(nextViz = viz, nextEnv = env) {
-    setErr("");
-    setLoading(true);
-    try {
-      if (nextViz === VIZ.STATS) {
-        await loadStats(nextEnv);
-      } else if (nextViz === VIZ.COMPUTERS) {
-        await loadComputers(nextEnv);
-      } else if (nextViz === VIZ.COMPUTER_DETAILS) {
-        await loadComputers(nextEnv);
-        if (computerName) await loadComputerDetails(computerName);
-      } else if (nextViz === VIZ.NET_GRAPH) {
-        await loadComputers(nextEnv);
-        await loadNetGraph();
-      }
-    } catch (e) {
-      setErr(e.message || "Грешка при вчитување.");
-    } finally {
-      setLoading(false);
-    }
-  }
-
-  useEffect(() => {
-    (async () => {
-      setLoading(true);
-      setErr("");
-      try {
-        await loadMe();
-        await loadEnvs();
-        await refreshAll(VIZ.NET_GRAPH, env);
-      } catch (e) {
-        setErr(e.message || "Неуспешно поврзување.");
-      } finally {
-        setLoading(false);
-      }
-    })();
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [api]);
-
-  const historySeries = useMemo(() => {
-    const hist = computerDetails?.history || [];
-    const rows = [...hist].reverse().slice(-80);
-    return rows.map((r) => ({
-      t: fmtTs(r.timestamp),
-      cpu: Number(r.cpu_usage ?? 0),
-      ram: Number(r.ram_usage ?? 0),
-      disk: Number(r.disk_usage ?? 0),
-      sent: Number(r.network_sent_mb ?? 0),
-      recv: Number(r.network_recv_mb ?? 0),
-    }));
-  }, [computerDetails]);
-
-  const nodes = graph?.nodes || [];
-  const edges = graph?.edges || [];
-  const meta = graph?.meta || {};
-
-  return (
-    <div>
-      {/* HEADER / CONTROLS */}
-      <Panel
-        title="Visualizations"
-        subtitle={me ? `Logged: ${me.email} • tenant: ${me.tenant_id} • role: ${me.role}` : "Not logged"}
-        right={
-          <div style={{ display: "flex", gap: 10, alignItems: "end", flexWrap: "wrap" }}>
-            <Select
-              label="Env"
-              value={env}
-              disabled={loading}
-              onChange={(v) => {
-                setEnv(v);
-                refreshAll(viz, v);
-              }}
-              options={envOptions}
-            />
-
-            <Select
-              label="View"
-              value={viz}
-              disabled={loading}
-              onChange={(v) => {
-                setViz(v);
-                refreshAll(v, env);
-              }}
-              options={vizOptions}
-            />
-
-            {(viz === VIZ.COMPUTER_DETAILS || viz === VIZ.NET_GRAPH) && (
-              <Select
-                label="Computer"
-                value={computerName}
-                disabled={loading}
-                onChange={(v) => {
-                  setComputerName(v);
-                  if (viz === VIZ.COMPUTER_DETAILS) loadComputerDetails(v).catch((e) => setErr(e.message));
-                  if (viz === VIZ.NET_GRAPH) loadNetGraph().catch((e) => setErr(e.message));
-                }}
-                options={computerOptions}
-              />
-            )}
-
-            {viz === VIZ.NET_GRAPH && (
-              <Select
-                label="Hours"
-                value={sinceHours}
-                disabled={loading}
-                onChange={(v) => setSinceHours(v)}
-                options={[
-                  { value: "1", label: "1" },
-                  { value: "6", label: "6" },
-                  { value: "12", label: "12" },
-                  { value: "24", label: "24" },
-                  { value: "48", label: "48" },
-                  { value: "72", label: "72" },
-                ]}
-              />
-            )}
-
-            <button className="btn primary" disabled={loading} onClick={() => refreshAll(viz, env)}>
-              {loading ? "Loading…" : "Refresh"}
-            </button>
-          </div>
-        }
-      >
-        {err ? (
-          <div style={{ color: "#ffb4b4", background: "rgba(255,0,0,0.08)", padding: 10, borderRadius: 12 }}>
-            {err}
-          </div>
-        ) : (
-          <div style={{ color: "var(--dim)", fontSize: 12 }}>
-            Избери “View” за да смениш што се прикажува.
-          </div>
-        )}
-      </Panel>
-      <Panel title="Graph (SVG)" subtitle="Computers left, IPs right, lines = connections">
-  <MiniBipartiteGraph nodes={nodes} edges={edges} />
-</Panel>
-
-
-      {/* STATS */}
-      {viz === VIZ.STATS && (
-        <Panel title="Stats (24h)" subtitle="From /api/stats">
-          <div className="stats-grid" style={{ marginTop: 0 }}>
-            <div className="stat-card">
-              <div className="label">Sysmon Events</div>
-              <div className="value">{stats?.total_sysmon_events ?? "—"}</div>
-              <div className="sub">Last 24 hours</div>
-            </div>
-            <div className="stat-card">
-              <div className="label">Network Connections</div>
-              <div className="value">{stats?.total_network_connections ?? "—"}</div>
-              <div className="sub">Last 24 hours</div>
-            </div>
-            <div className="stat-card">
-              <div className="label">Server Time</div>
-              <div className="value" style={{ fontSize: 18 }}>
-                {fmtTs(stats?.server_time) || "—"}
-              </div>
-              <div className="sub">Now</div>
-            </div>
-          </div>
-        </Panel>
-      )}
-
-      {/* COMPUTERS */}
-      {viz === VIZ.COMPUTERS && (
-        <Panel title="Computers" subtitle="From /api/computers">
-          <Table
-            columns={[
-              { key: "name", title: "Name" },
-              { key: "user", title: "User" },
-              { key: "ip", title: "IP" },
-              { key: "os", title: "OS" },
-              { key: "status", title: "Status" },
-              { key: "avg_cpu", title: "Avg CPU" },
-              { key: "avg_ram", title: "Avg RAM" },
-              { key: "recent_logs", title: "Logs(24h)" },
-              { key: "recent_sysmon", title: "Sysmon(24h)" },
-              { key: "last_seen", title: "Last seen", render: (r) => fmtTs(r.last_seen) },
-            ]}
-            rows={computers}
-            emptyText="No computers for this env."
-          />
-        </Panel>
-      )}
-
-      {/* COMPUTER DETAILS */}
-      {viz === VIZ.COMPUTER_DETAILS && (
-        <>
-          <Panel
-            title="Computer details"
-            subtitle="From /api/computer/<name>"
-            right={
-              <button
-                className="btn"
-                disabled={loading || !computerName}
-                onClick={() => loadComputerDetails(computerName).catch((e) => setErr(e.message))}
-              >
-                Reload
-              </button>
-            }
-          >
-            {!computerName ? (
-              <div style={{ color: "var(--dim)" }}>Select a computer.</div>
-            ) : !computerDetails ? (
-              <div style={{ color: "var(--dim)" }}>Loading…</div>
-            ) : (
-              <div className="stats-grid" style={{ marginTop: 0 }}>
-                <div className="stat-card">
-                  <div className="label">Name</div>
-                  <div className="value">{computerDetails.computer?.name}</div>
-                  <div className="sub">{computerDetails.computer?.ip} • {computerDetails.computer?.os}</div>
-                </div>
-                <div className="stat-card">
-                  <div className="label">User</div>
-                  <div className="value">{computerDetails.computer?.user || "—"}</div>
-                  <div className="sub">
-                    {fmtTs(computerDetails.computer?.first_seen)} → {fmtTs(computerDetails.computer?.last_seen)}
-                  </div>
-                </div>
-                <div className="stat-card">
-                  <div className="label">Total logs</div>
-                  <div className="value">{computerDetails.computer?.total_logs ?? "—"}</div>
-                  <div className="sub">Env: {computerDetails.computer?.env_name || env}</div>
-                </div>
-              </div>
-            )}
-          </Panel>
-
-          <Panel title="Performance charts" subtitle="Last ~80 history rows">
-            {historySeries.length === 0 ? (
-              <div style={{ color: "var(--dim)" }}>No history data.</div>
-            ) : (
-              <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 14 }}>
-                <div style={{ height: 280 }}>
-                  <div style={{ marginBottom: 8, color: "var(--dim)", fontSize: 12 }}>CPU / RAM / Disk</div>
-                  <ResponsiveContainer width="100%" height="100%">
-                    <LineChart data={historySeries}>
-                      <CartesianGrid strokeDasharray="3 3" />
-                      <XAxis dataKey="t" hide />
-                      <YAxis />
-                      <Tooltip />
-                      <Legend />
-                      <Line type="monotone" dataKey="cpu" dot={false} />
-                      <Line type="monotone" dataKey="ram" dot={false} />
-                      <Line type="monotone" dataKey="disk" dot={false} />
-                    </LineChart>
-                  </ResponsiveContainer>
-                </div>
-
-                <div style={{ height: 280 }}>
-                  <div style={{ marginBottom: 8, color: "var(--dim)", fontSize: 12 }}>Network MB sent/recv</div>
-                  <ResponsiveContainer width="100%" height="100%">
-                    <LineChart data={historySeries}>
-                      <CartesianGrid strokeDasharray="3 3" />
-                      <XAxis dataKey="t" hide />
-                      <YAxis />
-                      <Tooltip />
-                      <Legend />
-                      <Line type="monotone" dataKey="sent" dot={false} />
-                      <Line type="monotone" dataKey="recv" dot={false} />
-                    </LineChart>
-                  </ResponsiveContainer>
-                </div>
-              </div>
-            )}
-          </Panel>
-
-          <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 14 }}>
-            <Panel title="Processes (current)" subtitle="computer_processes_current (limit 200)">
-              <Table
-                columns={[
-                  { key: "pid", title: "PID" },
-                  { key: "name", title: "Name" },
-                  { key: "username", title: "User" },
-                  { key: "cpu_percent", title: "CPU%" },
-                  { key: "memory_mb", title: "MemMB" },
-                  { key: "timestamp", title: "Time", render: (r) => fmtTs(r.timestamp) },
-                ]}
-                rows={computerDetails?.recent_processes || []}
-              />
-            </Panel>
-
-            <Panel title="Sysmon events" subtitle="sysmon_events (limit 200)">
-              <Table
-                columns={[
-                  { key: "event_id", title: "Event" },
-                  { key: "event_type", title: "Type" },
-                  {
-                    key: "message",
-                    title: "Message",
-                    render: (r) =>
-                      (r.message || "").slice(0, 70) + ((r.message || "").length > 70 ? "…" : ""),
-                  },
-                  { key: "timestamp", title: "Time", render: (r) => fmtTs(r.timestamp) },
-                ]}
-                rows={computerDetails?.sysmon_events || []}
-              />
-            </Panel>
-          </div>
-
-          <Panel title="Network connections" subtitle="network_connections (limit 100)">
-            <Table
-              columns={[
-                { key: "pid", title: "PID" },
-                { key: "process_name", title: "Process" },
-                { key: "local_address", title: "Local" },
-                { key: "remote_address", title: "Remote" },
-                { key: "status", title: "Status" },
-                { key: "timestamp", title: "Time", render: (r) => fmtTs(r.timestamp) },
-              ]}
-              rows={computerDetails?.network_connections || []}
-            />
-          </Panel>
-        </>
-      )}
-
-      {/* NET GRAPH */}
-      {viz === VIZ.NET_GRAPH && (
-        <>
-          <Panel
-            title="Network graph (computer → remote IP)"
-            subtitle="From /api/graph/net"
-            right={
-              <button className="btn" disabled={loading} onClick={() => loadNetGraph().catch((e) => setErr(e.message))}>
-                Reload graph
-              </button>
-            }
-          >
-            <div style={{ display: "flex", gap: 10, flexWrap: "wrap" }}>
-              <Pill>env: {meta?.env || env}</Pill>
-              <Pill>hours: {meta?.since_hours ?? sinceHours}</Pill>
-              <Pill>computer: {meta?.computer || "all"}</Pill>
-              <Pill>nodes: {nodes.length}</Pill>
-              <Pill>edges: {edges.length}</Pill>
-            </div>
-          </Panel>
-
-          <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 14 }}>
-            <Panel title="Top edges" subtitle="Each row = number of connections">
-              <Table
-                columns={[
-                  { key: "source", title: "Source" },
-                  { key: "target", title: "Target" },
-                  { key: "mainStat", title: "Count" },
-                ]}
-                rows={edges.slice(0, 80)}
-                emptyText="No edges (maybe no traffic in that period)."
-              />
-            </Panel>
-
-            <Panel title="Nodes" subtitle="Computers + remote IP">
-              <Table
-                columns={[
-                  { key: "title", title: "Title" },
-                  { key: "subTitle", title: "Type" },
-                ]}
-                rows={nodes.slice(0, 120)}
-              />
-            </Panel>
-          </div>
-        </>
-      )}
-    </div>
-  );
-}
Index: n-frontend/src/components/SankeyPanel.jsx
===================================================================
--- lan-frontend/src/components/SankeyPanel.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-// src/components/SankeyPanel.jsx
-import { useMemo } from "react";
-
-export default function SankeyPanel({
-  env = "office1",
-  computers = [],   // ✅ празно значи All
-  ips = [],         // ✅ празно значи All
-  from = "now-24h",
-  to = "now",
-}) {
-  const dashboardUid = "adt9v8k";
-  const grafanaBase = "http://localhost:3000";
-
-  const src = useMemo(() => {
-    const params = new URLSearchParams();
-    params.set("orgId", "1");
-    params.set("kiosk", "tv");
-    params.set("from", from);
-    params.set("to", to);
-
-    params.set("var-env", env);
-
-    // ✅ НЕ праќај "All"
-    const cleanComputers = (computers || []).filter((c) => c && c !== "All");
-    const cleanIps = (ips || []).filter((ip) => ip && ip !== "All");
-
-    // ✅ додавај само ако има конкретни вредности
-    cleanComputers.forEach((c) => params.append("var-computers", c));
-    cleanIps.forEach((ip) => params.append("var-ips", ip));
-
-    return `${grafanaBase}/d/${dashboardUid}/sankey-panel?${params.toString()}`;
-  }, [env, computers, ips, from, to]);
-
-  return (
-    <div style={{ width: "100%", height: "85vh", overflow: "hidden", borderRadius: 12 }}>
-      <iframe
-        src={src}
-        title="Network Sankey"
-        width="100%"
-        height="100%"
-        frameBorder="0"
-      />
-    </div>
-  );
-}
Index: n-frontend/src/components/SankeyViz.jsx
===================================================================
--- lan-frontend/src/components/SankeyViz.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-import React, { useEffect, useMemo, useRef } from "react";
-import * as d3 from "d3";
-import { sankey, sankeyLinkHorizontal } from "d3-sankey";
-
-/**
- * dataRows: [{ source: "PC1", target: "1.2.3.4:443", value: 12 }, ...]
- */
-export default function SankeyViz({ dataRows, height = 520 }) {
-  const ref = useRef(null);
-
-  const graph = useMemo(() => {
-    const rows = Array.isArray(dataRows) ? dataRows : [];
-    const nodesMap = new Map();
-    const nodes = [];
-    const links = [];
-
-    function getNode(name) {
-      if (!nodesMap.has(name)) {
-        const id = nodes.length;
-        nodesMap.set(name, id);
-        nodes.push({ name });
-      }
-      return nodesMap.get(name);
-    }
-
-    for (const r of rows) {
-      if (!r?.source || !r?.target) continue;
-      const s = getNode(String(r.source));
-      const t = getNode(String(r.target));
-      const v = Number(r.value ?? 1);
-      links.push({ source: s, target: t, value: isFinite(v) ? v : 1 });
-    }
-
-    return { nodes, links };
-  }, [dataRows]);
-
-  useEffect(() => {
-    const el = ref.current;
-    if (!el) return;
-
-    el.innerHTML = "";
-
-    const width = el.clientWidth || 900;
-    const svg = d3
-      .select(el)
-      .append("svg")
-      .attr("width", "100%")
-      .attr("viewBox", `0 0 ${width} ${height}`)
-      .style("background", "rgba(255,255,255,0.02)")
-      .style("border", "1px solid rgba(255,255,255,0.08)")
-      .style("borderRadius", "14px");
-
-    if (!graph.nodes.length || !graph.links.length) {
-      svg
-        .append("text")
-        .attr("x", width / 2)
-        .attr("y", height / 2)
-        .attr("text-anchor", "middle")
-        .style("fill", "rgba(255,255,255,0.7)")
-        .style("font-size", "14px")
-        .text("No data for this selection.");
-      return;
-    }
-
-    const sk = sankey()
-      .nodeWidth(18)
-      .nodePadding(14)
-      .extent([
-        [20, 20],
-        [width - 20, height - 20],
-      ]);
-
-    const { nodes, links } = sk({
-      nodes: graph.nodes.map((d) => ({ ...d })),
-      links: graph.links.map((d) => ({ ...d })),
-    });
-
-    // Links
-    svg
-      .append("g")
-      .attr("fill", "none")
-      .selectAll("path")
-      .data(links)
-      .join("path")
-      .attr("d", sankeyLinkHorizontal())
-      .attr("stroke", "rgba(80,160,255,0.55)")
-      .attr("stroke-width", (d) => Math.max(1, d.width))
-      .attr("opacity", 0.9);
-
-    // Nodes
-    const node = svg
-      .append("g")
-      .selectAll("g")
-      .data(nodes)
-      .join("g");
-
-    node
-      .append("rect")
-      .attr("x", (d) => d.x0)
-      .attr("y", (d) => d.y0)
-      .attr("height", (d) => Math.max(1, d.y1 - d.y0))
-      .attr("width", (d) => d.x1 - d.x0)
-      .attr("rx", 6)
-      .attr("fill", "rgba(255,255,255,0.18)")
-      .attr("stroke", "rgba(255,255,255,0.15)");
-
-    node
-      .append("text")
-      .attr("x", (d) => (d.x0 < width / 2 ? d.x1 + 8 : d.x0 - 8))
-      .attr("y", (d) => (d.y0 + d.y1) / 2)
-      .attr("dy", "0.35em")
-      .attr("text-anchor", (d) => (d.x0 < width / 2 ? "start" : "end"))
-      .style("fill", "rgba(255,255,255,0.85)")
-      .style("font-size", "12px")
-      .text((d) => d.name);
-  }, [graph, height]);
-
-  return <div ref={ref} style={{ width: "100%" }} />;
-}
Index: n-frontend/src/components/SideMenu.jsx
===================================================================
--- lan-frontend/src/components/SideMenu.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import React, {useEffect, useRef, useState} from "react";
-
-function Item({active, icon, label, onClick, collapsed}) {
-    return (
-        <button
-            onClick={onClick}
-            className={`side-item ${active ? "active" : ""}`}
-            title={label}
-            type="button"
-        >
-            <span className="side-icon">{icon}</span>
-            {!collapsed && <span className="side-label">{label}</span>}
-        </button>
-    );
-}
-
-export default function SideMenu({activeView, setActiveView}) {
-    const [open, setOpen] = useState(false);
-    const rootRef = useRef(null);
-
-    // close on click outside (ако е open преку click)
-    useEffect(() => {
-        function onDocClick(e) {
-            if (!open) return;
-            if (!rootRef.current) return;
-            if (!rootRef.current.contains(e.target)) setOpen(false);
-        }
-
-        document.addEventListener("mousedown", onDocClick);
-        return () => document.removeEventListener("mousedown", onDocClick);
-    }, [open]);
-
-    const collapsed = !open;
-
-    return (
-        <aside
-            ref={rootRef}
-            className={`side ${open ? "open" : "collapsed"}`}
-            onMouseEnter={() => setOpen(true)}   // hover open
-            onMouseLeave={() => setOpen(false)}  // hover close
-        >
-            {/* мал “handle” што се гледа секогаш */}
-            <button
-                className="side-handle"
-                type="button"
-                onClick={() => setOpen((v) => !v)}  // click toggle (ако не сакаш click, избриши ова)
-                aria-label="Toggle menu"
-                title="Menu"
-            >
-                {open ? "◀" : "▶"}
-            </button>
-
-            <div className="side-inner">
-                <div className="side-brand">
-                    <div className="side-brand-dot"/>
-                    {!collapsed && (
-                        <div className="side-brand-text">
-                            <div className="side-brand-title">netIntel</div>
-                            <div className="side-brand-sub">tenant dashboard</div>
-                        </div>
-                    )}
-                </div>
-
-
-                <div className="side-section">
-                    {/*<div className="side-section-title">MAIN</div>*/}
-
-                    <Item
-                        collapsed={collapsed}
-                        active={activeView === "dashboard"}
-                        icon="🖥️"
-                        label="Dashboard"
-                        onClick={() => setActiveView("dashboard")}
-                    />
-
-                    <Item
-                        collapsed={collapsed}
-                        active={activeView === "visualizations"}
-                        icon="📈"
-                        label="Visualizations"
-                        onClick={() => setActiveView("visualizations")}
-                    />
-
-                    <Item
-                        collapsed={collapsed}
-                        active={activeView === "account"}
-                        icon="👤"
-                        label="Account"
-                        onClick={() => setActiveView("account")}
-                    />
-                </div>
-
-                {!collapsed && (
-                    <div className="side-footer">
-                        <div className="side-footer-hint">Tip: користи Visualizations за графови</div>
-                    </div>
-                )}
-            </div>
-        </aside>
-    );
-}
Index: n-frontend/src/components/TopBar.jsx
===================================================================
--- lan-frontend/src/components/TopBar.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,401 +1,0 @@
-import React, { useEffect, useMemo, useState } from "react";
-import logo from "../assets/logo_image.png";
-
-export default function TopBar({
-  onOpenAI,
-  onRefresh,
-  lastUpdated,
-  onEnvChange,
-  selectedEnv: selectedEnvProp, // optional (ако сакаш да го контролира App)
-  me,
-  onLoggedOut, // optional callback (App loadMe)
-
-  // NEW: process history switch (controlled by App)
-  saveProcHistory = false,
-  onToggleProcHistory, // (enabled:boolean) => void
-}) {
-  const [open, setOpen] = useState(false);
-
-  // env + tokens
-  const [envs, setEnvs] = useState(["default"]);
-  const [selectedEnv, setSelectedEnv] = useState(selectedEnvProp || "default");
-  const [newEnvName, setNewEnvName] = useState("");
-  const [token, setToken] = useState("");
-
-  const [busy, setBusy] = useState(false);
-  const [error, setError] = useState("");
-
-  const isAdmin = (me?.role || "").toLowerCase() === "admin";
-
-  // keep in sync ако App праќа selectedEnv prop
-  useEffect(() => {
-    if (selectedEnvProp && selectedEnvProp !== selectedEnv) {
-      setSelectedEnv(selectedEnvProp);
-    }
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [selectedEnvProp]);
-
-  async function loadEnvironments() {
-    const r = await fetch("/api/admin/environments", {
-      credentials: "include",
-    });
-    const data = await r.json();
-    if (!r.ok) throw new Error(data?.error || `HTTP ${r.status}`);
-
-    const list = data.environments?.length ? data.environments : ["default"];
-    setEnvs(list);
-
-    if (!list.includes(selectedEnv)) {
-      setSelectedEnv(list[0]);
-      onEnvChange?.(list[0]);
-    }
-  }
-
-  async function createEnvironment() {
-    setError("");
-    setToken("");
-
-    if (!newEnvName.trim()) {
-      setError("Внеси име за environment.");
-      return;
-    }
-
-    setBusy(true);
-    try {
-      const r = await fetch("/api/admin/environments", {
-        method: "POST",
-        headers: { "Content-Type": "application/json" },
-        credentials: "include",
-        body: JSON.stringify({ name: newEnvName.trim() }),
-      });
-
-      const data = await r.json();
-      if (!r.ok) throw new Error(data?.error || `HTTP ${r.status}`);
-
-      await loadEnvironments();
-      setSelectedEnv(newEnvName.trim());
-      onEnvChange?.(newEnvName.trim());
-      setNewEnvName("");
-    } catch (e) {
-      setError(String(e.message || e));
-    } finally {
-      setBusy(false);
-    }
-  }
-
-  async function generateToken() {
-    setError("");
-    setToken("");
-    if (!selectedEnv) {
-      setError("Избери environment.");
-      return;
-    }
-
-    setBusy(true);
-    try {
-      const r = await fetch("/api/admin/tokens", {
-        method: "POST",
-        headers: { "Content-Type": "application/json" },
-        credentials: "include",
-        body: JSON.stringify({ env: selectedEnv }),
-      });
-
-      const data = await r.json();
-      if (!r.ok) throw new Error(data?.error || `HTTP ${r.status}`);
-
-      setToken(data.token || "");
-    } catch (e) {
-      setError(String(e.message || e));
-    } finally {
-      setBusy(false);
-    }
-  }
-
-  async function copyToken() {
-    if (!token) return;
-    await navigator.clipboard.writeText(token);
-  }
-
-  function changeEnv(val) {
-    setSelectedEnv(val);
-    setToken("");
-    onEnvChange?.(val);
-  }
-
-  async function logout() {
-    try {
-      await fetch("/api/auth/logout", { method: "POST", credentials: "include" });
-    } catch {}
-    onLoggedOut?.();
-    // reset local admin modal state
-    setOpen(false);
-    setToken("");
-    setError("");
-  }
-
-  const prettyTime = useMemo(() => {
-    if (!lastUpdated) return "Loading…";
-    try {
-      return `Updated ${new Date(lastUpdated).toLocaleTimeString()}`;
-    } catch {
-      return "Updated";
-    }
-  }, [lastUpdated]);
-
-  return (
-    <>
-      <style>{`
-        .tb-wrap{ position: sticky; top: 0; z-index: 20; backdrop-filter: blur(10px);
-          background: linear-gradient(180deg, rgba(10,16,32,0.92), rgba(10,16,32,0.75));
-          border-bottom: 1px solid rgba(96,165,250,0.18); }
-        .tb-inner{ max-width: 1200px; margin: 0 auto; padding: 14px 18px;
-          display: flex; align-items: center; justify-content: space-between; gap: 14px; }
-        .tb-actions{ display:flex; align-items:center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
-        .tb-pill{ display:inline-flex; align-items:center; gap: 8px; padding: 8px 12px; border-radius: 999px;
-          background: rgba(30,41,59,0.65); border: 1px solid rgba(96,165,250,0.22);
-          color: rgba(255,255,255,0.9); font-weight: 800; font-size: 12px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); }
-        .tb-pill .dot{ width: 8px; height: 8px; border-radius: 999px; background: rgba(96,165,250,0.95);
-          box-shadow: 0 0 0 3px rgba(96,165,250,0.15); }
-        .tb-btn{ appearance: none; border: 1px solid rgba(96,165,250,0.22); background: rgba(15,23,42,0.55);
-          color: rgba(255,255,255,0.9); padding: 9px 12px; border-radius: 12px; font-weight: 800;
-          font-size: 13px; cursor: pointer; transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
-          box-shadow: 0 8px 20px rgba(0,0,0,0.18); }
-        .tb-btn:hover{ transform: translateY(-1px); background: rgba(30,41,59,0.65); border-color: rgba(96,165,250,0.38); }
-        .tb-btn:disabled{ opacity: .6; cursor: not-allowed; transform: none; }
-        .tb-btn.primary{ background: linear-gradient(135deg, rgba(37,99,235,0.95), rgba(56,189,248,0.7));
-          border-color: rgba(147,197,253,0.35); color: rgba(5,12,24,0.95); }
-        .tb-btn.primary:hover{ background: linear-gradient(135deg, rgba(59,130,246,0.95), rgba(34,211,238,0.75)); }
-
-        .tb-switch{ display:flex; align-items:center; gap:10px; padding: 8px 12px; border-radius: 999px;
-          background: rgba(15,23,42,0.55); border: 1px solid rgba(96,165,250,0.22);
-          color: rgba(255,255,255,0.9); font-weight: 800; font-size: 12px; }
-        .tb-switch .label{ color: rgba(191,219,254,0.9); }
-        .tb-toggle{ width: 46px; height: 26px; border-radius: 999px; position: relative; border: 1px solid rgba(96,165,250,0.25);
-          background: rgba(30,41,59,0.65); cursor: pointer; transition: background .12s ease, opacity .12s ease; }
-        .tb-toggle.disabled{ opacity: .55; cursor: not-allowed; }
-        .tb-knob{ width: 22px; height: 22px; border-radius: 999px; position: absolute; top: 1px; left: 1px;
-          background: rgba(226,232,240,0.95); transition: transform .14s ease; box-shadow: 0 6px 14px rgba(0,0,0,0.22); }
-        .tb-toggle.on{ background: rgba(37,99,235,0.85); border-color: rgba(147,197,253,0.45); }
-        .tb-toggle.on .tb-knob{ transform: translateX(20px); }
-
-        .tb-backdrop{ position: fixed; inset: 0; background: rgba(2,6,23,0.72); backdrop-filter: blur(6px);
-          display:flex; align-items: center; justify-content: center; padding: 20px; z-index: 50; }
-        .tb-modal{ width: min(860px, 96vw); border-radius: 18px;
-          background: radial-gradient(900px 420px at 20% 0%, rgba(96,165,250,0.18), transparent 60%),
-                      radial-gradient(700px 350px at 80% 10%, rgba(34,211,238,0.10), transparent 55%),
-                      rgba(10,16,32,0.92);
-          border: 1px solid rgba(96,165,250,0.22); box-shadow: 0 30px 80px rgba(0,0,0,0.45); overflow: hidden; }
-        .tb-modal-head{ padding: 16px 18px; display:flex; align-items: center; justify-content: space-between; gap: 10px;
-          border-bottom: 1px solid rgba(96,165,250,0.18); }
-        .tb-modal-title{ color: rgba(255,255,255,0.96); font-weight: 900; letter-spacing: .3px; }
-        .tb-modal-sub{ color: rgba(191,219,254,0.8); font-size: 12px; margin-top: 2px; }
-        .tb-grid{ padding: 16px; display:grid; gap: 12px; }
-        .tb-card{ border-radius: 16px; background: rgba(15,23,42,0.55); border: 1px solid rgba(96,165,250,0.18); padding: 14px; }
-        .tb-card-head{ display:flex; align-items:center; justify-content: space-between; margin-bottom: 10px; gap: 10px; }
-        .tb-card-title{ color: rgba(255,255,255,0.92); font-weight: 900; }
-        .tb-help{ color: rgba(148,163,184,0.95); font-size: 12px; margin-top: 8px; line-height: 1.35; }
-        .tb-input, .tb-select{ width: 100%; padding: 10px 12px; border-radius: 12px;
-          border: 1px solid rgba(96,165,250,0.18); background: rgba(2,6,23,0.35); color: rgba(255,255,255,0.92);
-          outline: none; font-weight: 700; }
-        .tb-input::placeholder{ color: rgba(148,163,184,0.75); }
-        .tb-row{ display:grid; gap: 10px; }
-        .tb-token{ display:flex; align-items:center; justify-content: space-between; gap: 10px; padding: 10px 12px;
-          border-radius: 14px; background: rgba(2,6,23,0.38); border: 1px dashed rgba(147,197,253,0.32);
-          color: rgba(255,255,255,0.92); }
-        .tb-mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-          font-weight: 800; color: rgba(191,219,254,0.95); }
-        .tb-error{ border-color: rgba(239,68,68,0.45) !important; background: rgba(127,29,29,0.15) !important;
-          color: rgba(254,202,202,0.95); }
-      `}</style>
-
-      <div className="tb-wrap">
-        <div className="tb-inner">
-          <div>
-            <img
-              src={logo}
-              alt="NETIntel logo"
-              className="netintel-logo"
-              width={150}
-              style={{ marginTop: 10 }}
-            />
-            <div style={{ marginTop: 4, fontSize: 12, color: "rgba(191,219,254,0.8)", fontWeight: 800 }}>
-              <span style={{ color: "rgba(96,165,250,0.95)" }}>{prettyTime}</span>
-              {me?.email ? (
-                <span style={{ marginLeft: 10 }}>
-                  • {me.email}
-                  {me?.role ? ` • ${me.role}` : ""}
-                </span>
-              ) : null}
-            </div>
-          </div>
-
-          <div className="tb-actions">
-            <span className="tb-pill" title="Selected environment">
-              <span className="dot" />
-              Env: {selectedEnv}
-            </span>
-
-            {/* NEW: Save process history switch */}
-            <div className="tb-switch" title={isAdmin ? "Toggle saving process history for this environment" : "Only admin can change this"}>
-              <span className="label">Proc history</span>
-              <div
-                className={[
-                  "tb-toggle",
-                  saveProcHistory ? "on" : "",
-                  !isAdmin ? "disabled" : "",
-                ].join(" ")}
-                role="switch"
-                aria-checked={saveProcHistory ? "true" : "false"}
-                tabIndex={0}
-                onClick={() => {
-                  if (!isAdmin) return;
-                  onToggleProcHistory?.(!saveProcHistory);
-                }}
-                onKeyDown={(e) => {
-                  if (!isAdmin) return;
-                  if (e.key === "Enter" || e.key === " ") {
-                    e.preventDefault();
-                    onToggleProcHistory?.(!saveProcHistory);
-                  }
-                }}
-              >
-                <div className="tb-knob" />
-              </div>
-            </div>
-
-            <button className="tb-btn" onClick={onRefresh} disabled={busy}>
-              Refresh
-            </button>
-
-            <button
-              className="tb-btn"
-              onClick={async () => {
-                setOpen(true);
-                setError("");
-                setToken("");
-                try {
-                  await loadEnvironments();
-                } catch (e) {
-                  setError(String(e.message || e));
-                }
-              }}
-            >
-              Admin
-            </button>
-
-            <button className="tb-btn primary" onClick={onOpenAI}>
-              AI Assistant
-            </button>
-          </div>
-        </div>
-      </div>
-
-      {open && (
-        <div className="tb-backdrop" onMouseDown={() => setOpen(false)}>
-          <div className="tb-modal" onMouseDown={(e) => e.stopPropagation()}>
-            <div className="tb-modal-head">
-              <div>
-                <div className="tb-modal-title">Tenant Admin</div>
-                <div className="tb-modal-sub">
-                  Environments ➜ Generate token (clients send X-Env-Token to /receive)
-                </div>
-              </div>
-              <div style={{ display: "flex", gap: 10 }}>
-                <button className="tb-btn" onClick={logout}>
-                  Logout
-                </button>
-                <button className="tb-btn" onClick={() => setOpen(false)}>
-                  Close
-                </button>
-              </div>
-            </div>
-
-            <div className="tb-grid">
-              <div className="tb-card">
-                <div className="tb-card-head">
-                  <div className="tb-card-title">Choose environment</div>
-                </div>
-                <div className="tb-row">
-                  <select
-                    className="tb-select"
-                    value={selectedEnv}
-                    onChange={(e) => changeEnv(e.target.value)}
-                  >
-                    {envs.map((e) => (
-                      <option key={e} value={e}>
-                        {e}
-                      </option>
-                    ))}
-                  </select>
-                  <div className="tb-help">
-                    Овој env ќе се користи за dashboard филтрирање + token generation.
-                    <br />
-                    <b>Proc history</b> switch горе важи за тековниот env.
-                  </div>
-                </div>
-              </div>
-
-              <div className="tb-card">
-                <div className="tb-card-head">
-                  <div className="tb-card-title">Create new environment</div>
-                </div>
-                <div className="tb-row">
-                  <input
-                    className="tb-input"
-                    value={newEnvName}
-                    onChange={(e) => setNewEnvName(e.target.value)}
-                    placeholder="e.g. school-lab / staging"
-                  />
-                  <button className="tb-btn" onClick={createEnvironment} disabled={busy}>
-                    {busy ? "Creating…" : "Create"}
-                  </button>
-                </div>
-              </div>
-
-              <div className="tb-card">
-                <div className="tb-card-head">
-                  <div className="tb-card-title">Generate token (for clients)</div>
-                </div>
-
-                <div className="tb-row">
-                  <button className="tb-btn primary" onClick={generateToken} disabled={busy}>
-                    {busy ? "Generating…" : `Generate token for "${selectedEnv}"`}
-                  </button>
-
-                  {token && (
-                    <>
-                      <div className="tb-token">
-                        <div>
-                          <div style={{ fontWeight: 900, color: "rgba(255,255,255,0.92)" }}>
-                            Token
-                          </div>
-                          <div className="tb-mono">
-                            {token.slice(0, 12)}…{token.slice(-10)}
-                          </div>
-                        </div>
-                        <button className="tb-btn" onClick={copyToken}>
-                          Copy
-                        </button>
-                      </div>
-
-                      <div className="tb-help">
-                        Клиентот мора да праќа header: <b>X-Env-Token</b> со овој token на <b>/receive</b>.
-                      </div>
-                    </>
-                  )}
-                </div>
-              </div>
-
-              {error && (
-                <div className="tb-card tb-error">
-                  <div style={{ fontWeight: 900 }}>Error</div>
-                  <div style={{ marginTop: 6 }}>{error}</div>
-                </div>
-              )}
-            </div>
-          </div>
-        </div>
-      )}
-    </>
-  );
-}
Index: n-frontend/src/components/Visualisations.jsx
===================================================================
--- lan-frontend/src/components/Visualisations.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,290 +1,0 @@
-// // src/pages/Visualizations.jsx
-// import { useState } from "react";
-// import SankeyPanel from "../components/SankeyPanel";
-//
-// export default function Visualizations() {
-//   const [env, setEnv] = useState("office1");
-//
-//   // ✅ All = празни низи
-//   const [computers, setComputers] = useState([]);
-//   const [ips, setIps] = useState([]);
-//
-//   return (
-//     <div>
-//       <h2>Network Sankey Visualization</h2>
-//
-//       <SankeyPanel
-//         env={env}
-//         computers={computers}
-//         ips={ips}
-//         from="now-2d"
-//         to="now"
-//       />
-//     </div>
-//   );
-// }
-
-
-import React, { useEffect, useMemo, useState } from "react";
-import SankeyViz from "../components/SankeyViz";
-
-function MultiSelect({ options, value, onChange, label }) {
-  return (
-    <div style={{ display: "grid", gap: 6 }}>
-      <div style={{ fontSize: 12, color: "rgba(255,255,255,0.7)" }}>{label}</div>
-      <select
-        multiple
-        value={value}
-        onChange={(e) => {
-          const vals = Array.from(e.target.selectedOptions).map((o) => o.value);
-          onChange(vals);
-        }}
-        className="select"
-        style={{ minHeight: 90 }}
-      >
-        {options.map((o) => (
-          <option key={o} value={o}>
-            {o}
-          </option>
-        ))}
-      </select>
-      <div style={{ fontSize: 11, color: "rgba(255,255,255,0.5)" }}>
-        (држи Ctrl за multi-select)
-      </div>
-    </div>
-  );
-}
-
-export default function Visualizations() {
-  const [env, setEnv] = useState("office1");
-
-  // 👇 ако сакаш env листа динамички, додај endpoint.
-  const envOptions = ["default", "office1"];
-
-  const [computerOptions, setComputerOptions] = useState(["All"]);
-  const [ipOptions, setIpOptions] = useState(["All"]);
-
-  const [computers, setComputers] = useState(["All"]);
-  const [ips, setIps] = useState(["All"]);
-
-  const [hours, setHours] = useState(48);
-  const [limit, setLimit] = useState(200);
-
-  const [vizType, setVizType] = useState("sankey"); // sankey | table | topips
-  const [rows, setRows] = useState([]);
-  const [loading, setLoading] = useState(false);
-
-  // ✅ 1) load computers for env (користи твојот постоечки /api/computers)
-  async function loadComputers() {
-    const r = await fetch("/api/computers", {
-      credentials: "include",
-      headers: { "X-Env": env },
-    });
-    const data = await r.json();
-    const names = (Array.isArray(data) ? data : []).map((c) => c.name).filter(Boolean);
-    setComputerOptions(["All", ...names]);
-  }
-
-  // ✅ 2) load ips list (ОВА треба да го имаш на backend како /api/ips)
-  async function loadIps() {
-    const r = await fetch(`/api/ips?env=${encodeURIComponent(env)}&hours=${hours}&limit=${limit}`, {
-      credentials: "include",
-    });
-    const data = await r.json();
-    const list = Array.isArray(data?.ips) ? data.ips : Array.isArray(data) ? data : [];
-    setIpOptions(["All", ...list]);
-  }
-
-  // ✅ 3) load sankey rows (ОВА треба да го имаш на backend како /api/sankey)
-  async function loadSankey() {
-    setLoading(true);
-    try {
-      const params = new URLSearchParams();
-      params.set("env", env);
-      params.set("hours", String(hours));
-      params.set("limit", String(limit));
-      params.set("computers", (computers?.length ? computers : ["All"]).join(","));
-      params.set("ips", (ips?.length ? ips : ["All"]).join(","));
-
-      const r = await fetch(`/api/sankey?${params.toString()}`, { credentials: "include" });
-      const data = await r.json();
-      setRows(Array.isArray(data) ? data : []);
-    } finally {
-      setLoading(false);
-    }
-  }
-
-  useEffect(() => {
-    loadComputers();
-    loadIps();
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [env, hours, limit]);
-
-  useEffect(() => {
-    loadSankey();
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [env, hours, limit, computers, ips]);
-
-  // Table view
-  const tableRows = useMemo(() => rows.slice(0, 200), [rows]);
-
-  // Top IPs view
-  const topIps = useMemo(() => {
-    const map = new Map();
-    for (const r of rows) {
-      map.set(r.target, (map.get(r.target) || 0) + Number(r.value || 0));
-    }
-    return Array.from(map.entries())
-      .sort((a, b) => b[1] - a[1])
-      .slice(0, 20);
-  }, [rows]);
-
-  return (
-    <div className="panel" style={{ marginTop: 14 }}>
-      <div className="panel-head">
-        <div className="panel-title">Visualizations</div>
-        <div style={{ color: "var(--dim)", fontSize: 12 }}>
-          {loading ? "Loading…" : `${rows.length} links`}
-        </div>
-      </div>
-
-      <div className="panel-body" style={{ display: "grid", gap: 14 }}>
-        {/* Controls */}
-        <div
-          style={{
-            display: "grid",
-            gridTemplateColumns: "1fr 1fr 1fr",
-            gap: 12,
-            alignItems: "start",
-          }}
-        >
-          <div style={{ display: "grid", gap: 8 }}>
-            <div style={{ fontSize: 12, color: "rgba(255,255,255,0.7)" }}>Environment</div>
-            <select className="select" value={env} onChange={(e) => setEnv(e.target.value)}>
-              {envOptions.map((x) => (
-                <option key={x} value={x}>
-                  {x}
-                </option>
-              ))}
-            </select>
-
-            <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 10 }}>
-              <div>
-                <div style={{ fontSize: 12, color: "rgba(255,255,255,0.7)" }}>Hours</div>
-                <input
-                  className="input"
-                  type="number"
-                  value={hours}
-                  min={1}
-                  max={720}
-                  onChange={(e) => setHours(Number(e.target.value))}
-                />
-              </div>
-              <div>
-                <div style={{ fontSize: 12, color: "rgba(255,255,255,0.7)" }}>Limit</div>
-                <input
-                  className="input"
-                  type="number"
-                  value={limit}
-                  min={10}
-                  max={2000}
-                  onChange={(e) => setLimit(Number(e.target.value))}
-                />
-              </div>
-            </div>
-
-            <div style={{ display: "grid", gap: 6 }}>
-              <div style={{ fontSize: 12, color: "rgba(255,255,255,0.7)" }}>Visualization</div>
-              <select className="select" value={vizType} onChange={(e) => setVizType(e.target.value)}>
-                <option value="sankey">Sankey</option>
-                <option value="table">Table</option>
-                <option value="topips">Top IPs</option>
-              </select>
-            </div>
-
-            <button
-              className="btn"
-              onClick={() => {
-                setComputers(["All"]);
-                setIps(["All"]);
-              }}
-            >
-              Reset filters
-            </button>
-          </div>
-
-          <MultiSelect
-            label="Computers"
-            options={computerOptions}
-            value={computers}
-            onChange={(vals) => setComputers(vals.length ? vals : ["All"])}
-          />
-
-          <MultiSelect
-            label="IPs"
-            options={ipOptions}
-            value={ips}
-            onChange={(vals) => setIps(vals.length ? vals : ["All"])}
-          />
-        </div>
-
-        {/* Viz */}
-        {vizType === "sankey" && <SankeyViz dataRows={rows} height={520} />}
-
-        {vizType === "table" && (
-          <div style={{ overflow: "auto", border: "1px solid rgba(255,255,255,0.08)", borderRadius: 12 }}>
-            <table style={{ width: "100%", borderCollapse: "collapse" }}>
-              <thead>
-                <tr>
-                  <th style={{ textAlign: "left", padding: 10, color: "rgba(255,255,255,0.8)" }}>Source</th>
-                  <th style={{ textAlign: "left", padding: 10, color: "rgba(255,255,255,0.8)" }}>Target</th>
-                  <th style={{ textAlign: "right", padding: 10, color: "rgba(255,255,255,0.8)" }}>Value</th>
-                </tr>
-              </thead>
-              <tbody>
-                {tableRows.map((r, idx) => (
-                  <tr key={idx} style={{ borderTop: "1px solid rgba(255,255,255,0.06)" }}>
-                    <td style={{ padding: 10, color: "rgba(255,255,255,0.85)" }}>{r.source}</td>
-                    <td style={{ padding: 10, color: "rgba(255,255,255,0.85)" }}>{r.target}</td>
-                    <td style={{ padding: 10, textAlign: "right", color: "rgba(255,255,255,0.85)" }}>{r.value}</td>
-                  </tr>
-                ))}
-              </tbody>
-            </table>
-          </div>
-        )}
-
-        {vizType === "topips" && (
-          <div style={{ display: "grid", gap: 8 }}>
-            {topIps.map(([ip, v]) => (
-              <div
-                key={ip}
-                style={{
-                  display: "grid",
-                  gridTemplateColumns: "220px 1fr 80px",
-                  gap: 10,
-                  alignItems: "center",
-                  padding: "8px 10px",
-                  border: "1px solid rgba(255,255,255,0.08)",
-                  borderRadius: 12,
-                }}
-              >
-                <div style={{ color: "rgba(255,255,255,0.85)" }}>{ip}</div>
-                <div style={{ height: 10, background: "rgba(255,255,255,0.08)", borderRadius: 99, overflow: "hidden" }}>
-                  <div
-                    style={{
-                      height: "100%",
-                      width: `${Math.min(100, (v / (topIps[0]?.[1] || 1)) * 100)}%`,
-                      background: "rgba(80,160,255,0.7)",
-                    }}
-                  />
-                </div>
-                <div style={{ textAlign: "right", color: "rgba(255,255,255,0.8)" }}>{v}</div>
-              </div>
-            ))}
-          </div>
-        )}
-      </div>
-    </div>
-  );
-}
Index: lan-frontend/src/index.css
===================================================================
--- lan-frontend/src/index.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/src/index.css	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1563,149 +1563,2 @@
   background: var(--secondary-color);
 }
-
-.aiDrawer-backdrop{
-  position: fixed;
-  inset: 0;
-  background: rgba(0,0,0,.55);
-  backdrop-filter: blur(2px);
-  z-index: 999;
-}
-
-/* десен drawer */
-.aiDrawer{
-  position: fixed;
-  top: 0;
-  right: 0;
-  height: 100vh;
-  width: min(520px, 92vw);
-  background: #0b1220;            /* темна */
-  color: #e7eefc;
-  border-left: 1px solid rgba(255,255,255,.08);
-  z-index: 1000;
-  display: grid;
-  grid-template-rows: auto auto 1fr auto;
-
-  /* slide in */
-  transform: translateX(0);
-  animation: aiSlideIn .18s ease-out;
-}
-
-@keyframes aiSlideIn{
-  from { transform: translateX(24px); opacity: .7; }
-  to   { transform: translateX(0); opacity: 1; }
-}
-
-.aiDrawer-head{
-  padding: 14px 16px;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  border-bottom: 1px solid rgba(255,255,255,.08);
-}
-
-.aiDrawer-title{
-  font-size: 16px;
-  font-weight: 700;
-}
-
-.aiDrawer-sub{
-  font-size: 12px;
-  opacity: .75;
-  margin-top: 2px;
-}
-
-.aiDrawer-toolbar{
-  padding: 12px 16px;
-  border-bottom: 1px solid rgba(255,255,255,.08);
-  display: grid;
-  gap: 8px;
-}
-
-.aiSelect{
-  width: 100%;
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 10px;
-  outline: none;
-}
-
-.aiHint{
-  font-size: 12px;
-  opacity: .75;
-}
-
-.aiDrawer-body{
-  padding: 14px 16px;
-  overflow: auto;
-  display: grid;
-  gap: 10px;
-}
-
-/* chat bubbles */
-.aiMsg{
-  max-width: 92%;
-  border: 1px solid rgba(255,255,255,.08);
-  border-radius: 14px;
-  padding: 10px 12px;
-  background: rgba(255,255,255,.04);
-}
-
-.aiMsg.user{
-  margin-left: auto;
-  background: rgba(88, 167, 255, .12);
-  border-color: rgba(88, 167, 255, .20);
-}
-
-.aiMsg-meta{
-  font-size: 11px;
-  opacity: .7;
-  margin-bottom: 6px;
-}
-
-.aiMsg-text{
-  white-space: pre-wrap;
-  line-height: 1.35;
-  font-size: 14px;
-}
-
-.aiDrawer-foot{
-  padding: 12px 16px;
-  border-top: 1px solid rgba(255,255,255,.08);
-  display: grid;
-  grid-template-columns: 1fr auto;
-  gap: 10px;
-  align-items: end;
-  background: rgba(255,255,255,.02);
-}
-
-.aiTextarea{
-  width: 100%;
-  resize: none;
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 12px;
-  outline: none;
-}
-
-.aiBtn{
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 12px;
-  cursor: pointer;
-}
-
-.aiBtn:disabled{
-  opacity: .5;
-  cursor: not-allowed;
-}
-
-.aiBtnPrimary{
-  background: rgba(88, 167, 255, .22);
-  border-color: rgba(88, 167, 255, .35);
-}
Index: lan-frontend/src/main.jsx
===================================================================
--- lan-frontend/src/main.jsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/src/main.jsx	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1,13 +1,10 @@
-import React from "react";
-import ReactDOM from "react-dom/client";
-import { GoogleOAuthProvider } from "@react-oauth/google";
-import App from "./App.jsx";
-import "./styles/theme.css";
+import React from 'react';                    // ⬅ додадено
+import ReactDOM from 'react-dom/client';
+import App from './App.jsx';
+import './index.css';
 
-ReactDOM.createRoot(document.getElementById("root")).render(
+ReactDOM.createRoot(document.getElementById('root')).render(
   <React.StrictMode>
-    <GoogleOAuthProvider clientId={import.meta.env.VITE_GOOGLE_CLIENT_ID}>
-      <App />
-    </GoogleOAuthProvider>
+    <App />
   </React.StrictMode>
 );
Index: n-frontend/src/styles/netinel.css
===================================================================
--- lan-frontend/src/styles/netinel.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/* netintel.css - basic styling without Tailwind */
-
-.netintel-wrap {
-  max-width: 1100px;
-  margin: 0 auto;
-  padding: 16px;
-  color: #e5e7eb;
-  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
-}
-
-.netintel-title {
-  font-size: 24px;
-  font-weight: 700;
-  margin-bottom: 6px;
-}
-
-.netintel-sub {
-  font-size: 13px;
-  opacity: 0.85;
-  margin-bottom: 14px;
-}
-
-.netintel-toolbar {
-  display: flex;
-  flex-wrap: wrap;
-  gap: 10px;
-  align-items: end;
-  margin-bottom: 14px;
-}
-
-.netintel-field {
-  display: flex;
-  flex-direction: column;
-  gap: 4px;
-}
-
-.netintel-label {
-  font-size: 11px;
-  opacity: 0.85;
-}
-
-.netintel-select,
-.netintel-btn {
-  background: rgba(255,255,255,0.06);
-  border: 1px solid rgba(255,255,255,0.15);
-  color: #e5e7eb;
-  border-radius: 10px;
-  padding: 8px 10px;
-  font-size: 14px;
-  outline: none;
-}
-
-.netintel-btn {
-  cursor: pointer;
-}
-
-.netintel-btn:hover {
-  background: rgba(255,255,255,0.10);
-}
-
-.netintel-card {
-  background: rgba(255,255,255,0.06);
-  border: 1px solid rgba(255,255,255,0.12);
-  border-radius: 16px;
-  padding: 14px;
-  margin-bottom: 14px;
-}
-
-.netintel-card h3 {
-  margin: 0 0 6px;
-  font-size: 16px;
-}
-
-.netintel-card p {
-  margin: 0 0 10px;
-  font-size: 13px;
-  opacity: 0.85;
-}
-
-.netintel-pill {
-  display: inline-flex;
-  align-items: center;
-  padding: 2px 8px;
-  border-radius: 999px;
-  font-size: 12px;
-  background: rgba(255,255,255,0.08);
-  border: 1px solid rgba(255,255,255,0.12);
-  margin-right: 6px;
-  margin-bottom: 6px;
-}
-
-.netintel-tablewrap {
-  overflow: auto;
-  border-radius: 12px;
-  border: 1px solid rgba(255,255,255,0.12);
-}
-
-.netintel-table {
-  width: 100%;
-  border-collapse: collapse;
-  min-width: 700px;
-}
-
-.netintel-table th {
-  text-align: left;
-  font-weight: 600;
-  font-size: 13px;
-  background: rgba(0,0,0,0.25);
-  padding: 10px;
-}
-
-.netintel-table td {
-  padding: 10px;
-  border-top: 1px solid rgba(255,255,255,0.08);
-  font-size: 13px;
-}
-
-.netintel-error {
-  background: rgba(239, 68, 68, 0.12);
-  border: 1px solid rgba(239, 68, 68, 0.25);
-  color: #fecaca;
-  padding: 10px 12px;
-  border-radius: 12px;
-  margin-bottom: 12px;
-}
Index: n-frontend/src/styles/theme.css
===================================================================
--- lan-frontend/src/styles/theme.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,814 +1,0 @@
-/* =========================
-   LAN Security Monitor Theme
-   Dark Navy + Light Blue
-   ========================= */
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-:root{
-  --bg0: #070b16;
-  --bg1: #0a1020;
-  --bg2: #0e1730;
-
-  --panel: rgba(15,23,42,0.62);
-  --panel2: rgba(2,6,23,0.35);
-
-  --border: rgba(96,165,250,0.18);
-  --border2: rgba(147,197,253,0.28);
-
-  --text: rgba(255,255,255,0.92);
-  --muted: rgba(191,219,254,0.82);
-  --dim: rgba(148,163,184,0.85);
-
-  --accent: rgba(96,165,250,0.95);   /* light blue */
-  --accent2: rgba(34,211,238,0.80);  /* cyan */
-  --danger: rgba(239,68,68,0.95);
-  --warn: rgba(245,158,11,0.95);
-  --ok: rgba(34,197,94,0.95);
-
-  --shadow: 0 18px 45px rgba(0,0,0,0.32);
-  --shadow2: 0 10px 25px rgba(0,0,0,0.22);
-
-  --r12: 12px;
-  --r16: 16px;
-  --r18: 18px;
-}
-
-*{ box-sizing: border-box; }
-html, body { height: 100%; }
-body{
-  margin:0;
-  color: var(--text);
-  background:
-    radial-gradient(900px 460px at 20% -10%, rgba(96,165,250,0.18), transparent 60%),
-    radial-gradient(800px 420px at 80% 0%, rgba(34,211,238,0.10), transparent 55%),
-    radial-gradient(1000px 700px at 50% 120%, rgba(30,64,175,0.16), transparent 60%),
-    linear-gradient(180deg, var(--bg0), var(--bg1) 45%, #060913 100%);
-  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
-}
-
-/* Layout */
-.app-wrap{
-  max-width: 1200px;
-  margin: 0 auto;
-  padding: 16px 18px 40px;
-}
-
-/* =========================
-   Panels
-   ========================= */
-.panel{
-  background: var(--panel);
-  border: 1px solid var(--border);
-  border-radius: var(--r18);
-  box-shadow: var(--shadow2);
-  overflow: hidden;
-  backdrop-filter: blur(10px);
-}
-.panel-head{
-  display:flex;
-  align-items:center;
-  justify-content: space-between;
-  gap: 12px;
-  padding: 14px 16px;
-  border-bottom: 1px solid rgba(96,165,250,0.14);
-  background: linear-gradient(180deg, rgba(2,6,23,0.32), rgba(2,6,23,0.12));
-}
-.panel-title{
-  font-weight: 900;
-  letter-spacing: 0.3px;
-  color: rgba(255,255,255,0.95);
-}
-.panel-body{
-  padding: 16px;
-}
-
-/* small helpers */
-.pill{
-  display:inline-flex;
-  align-items:center;
-  gap: 10px;
-  padding: 8px 12px;
-  border-radius: 999px;
-  background: rgba(30,41,59,0.60);
-  border: 1px solid rgba(96,165,250,0.22);
-  color: rgba(255,255,255,0.92);
-  font-weight: 800;
-  font-size: 12px;
-  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
-}
-.small{
-  font-size: 12px;
-  color: var(--dim);
-  line-height: 1.35;
-}
-.dim{ color: var(--dim); font-weight: 700; }
-
-/* =========================
-   Inputs / Selects / Buttons
-   ========================= */
-.input, .select{
-  width: 100%;
-  padding: 10px 12px;
-  border-radius: var(--r12);
-  border: 1px solid rgba(96,165,250,0.18);
-  background: rgba(2,6,23,0.35);
-  color: rgba(255,255,255,0.92);
-  outline: none;
-  font-weight: 700;
-  transition: border-color .12s ease, background .12s ease, transform .12s ease;
-}
-.input::placeholder{ color: rgba(148,163,184,0.75); }
-.input:focus, .select:focus{
-  border-color: rgba(96,165,250,0.42);
-  background: rgba(2,6,23,0.46);
-}
-
-.btn{
-  appearance: none;
-  border: 1px solid rgba(96,165,250,0.22);
-  background: rgba(15,23,42,0.55);
-  color: rgba(255,255,255,0.92);
-  padding: 9px 12px;
-  border-radius: var(--r12);
-  font-weight: 900;
-  font-size: 13px;
-  cursor: pointer;
-  transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
-  box-shadow: 0 8px 20px rgba(0,0,0,0.18);
-}
-.btn:hover{
-  transform: translateY(-1px);
-  background: rgba(30,41,59,0.65);
-  border-color: rgba(96,165,250,0.38);
-}
-.btn:disabled{
-  opacity: .6;
-  cursor: not-allowed;
-  transform: none;
-}
-.btn.primary{
-  background: linear-gradient(135deg, rgba(37,99,235,0.95), rgba(56,189,248,0.70));
-  border-color: rgba(147,197,253,0.35);
-  color: rgba(5,12,24,0.95);
-}
-.btn.primary:hover{
-  background: linear-gradient(135deg, rgba(59,130,246,0.95), rgba(34,211,238,0.75));
-}
-
-/* Filters row */
-.filters{
-  display:grid;
-  grid-template-columns: 1.6fr 0.6fr auto;
-  gap: 10px;
-}
-@media (max-width: 820px){
-  .filters{ grid-template-columns: 1fr; }
-}
-
-/* =========================
-   Stats grid
-   ========================= */
-.stats-grid{
-  display: grid;
-  grid-template-columns: repeat(3, minmax(0, 1fr));
-  gap: 12px;
-  margin: 14px 0;
-}
-@media (max-width: 900px){
-  .stats-grid{ grid-template-columns: 1fr; }
-}
-
-.stat-card{
-  background:
-    radial-gradient(500px 180px at 20% 0%, rgba(96,165,250,0.16), transparent 55%),
-    rgba(15,23,42,0.58);
-  border: 1px solid rgba(96,165,250,0.18);
-  border-radius: var(--r18);
-  padding: 14px 16px;
-  box-shadow: var(--shadow2);
-  backdrop-filter: blur(10px);
-}
-.stat-card .label{
-  color: var(--dim);
-  font-size: 12px;
-  font-weight: 900;
-  letter-spacing: .8px;
-  text-transform: uppercase;
-}
-.stat-card .value{
-  font-size: 28px;
-  font-weight: 1000;
-  margin: 8px 0 2px;
-  color: rgba(255,255,255,0.95);
-}
-.stat-card .sub{
-  color: var(--muted);
-  font-size: 12px;
-}
-
-/* =========================
-   Computers grid + Card
-   ========================= */
-.computers-grid{
-  display:grid;
-  grid-template-columns: repeat(3, minmax(0, 1fr));
-  gap: 12px;
-}
-@media (max-width: 980px){
-  .computers-grid{ grid-template-columns: 1fr; }
-}
-
-.card{
-  width:100%;
-  text-align:left;
-  border-radius: var(--r18);
-  border: 1px solid rgba(96,165,250,0.18);
-  background:
-    radial-gradient(520px 220px at 20% 0%, rgba(96,165,250,0.14), transparent 55%),
-    rgba(15,23,42,0.54);
-  box-shadow: var(--shadow2);
-  padding: 14px;
-  cursor: pointer;
-  transition: transform .14s ease, border-color .14s ease, background .14s ease;
-  backdrop-filter: blur(10px);
-}
-.card:hover{
-  transform: translateY(-3px);
-  border-color: rgba(96,165,250,0.38);
-  background:
-    radial-gradient(520px 220px at 20% 0%, rgba(34,211,238,0.12), transparent 55%),
-    rgba(15,23,42,0.62);
-}
-.card:active{ transform: translateY(-1px); }
-
-.card-head{
-  display:flex;
-  justify-content: space-between;
-  align-items:center;
-  gap: 10px;
-  margin-bottom: 10px;
-}
-.card-title{
-  font-weight: 1000;
-  color: rgba(255,255,255,0.95);
-  letter-spacing: .2px;
-}
-.dot{
-  width: 10px;
-  height: 10px;
-  border-radius: 999px;
-  box-shadow: 0 0 0 4px rgba(255,255,255,0.04);
-}
-.dot.online{ background: var(--ok); box-shadow: 0 0 0 4px rgba(34,197,94,0.12); }
-.dot.idle{ background: var(--warn); box-shadow: 0 0 0 4px rgba(245,158,11,0.12); }
-.dot.offline{ background: rgba(148,163,184,0.8); box-shadow: 0 0 0 4px rgba(148,163,184,0.10); }
-
-.meta{
-  display:grid;
-  gap: 6px;
-  color: rgba(226,232,240,0.92);
-  font-size: 13px;
-  line-height: 1.25;
-}
-
-.kpis{
-  display:grid;
-  grid-template-columns: repeat(3, minmax(0, 1fr));
-  gap: 10px;
-  margin-top: 12px;
-  padding-top: 12px;
-  border-top: 1px solid rgba(96,165,250,0.14);
-}
-.kpi{
-  border-radius: var(--r16);
-  border: 1px solid rgba(96,165,250,0.14);
-  background: rgba(2,6,23,0.30);
-  padding: 10px 10px;
-}
-.kpi .k{
-  font-size: 11px;
-  color: var(--dim);
-  font-weight: 900;
-  letter-spacing: .6px;
-  text-transform: uppercase;
-}
-.kpi .v{
-  margin-top: 6px;
-  font-size: 18px;
-  font-weight: 1000;
-  color: rgba(255,255,255,0.95);
-}
-
-/* =========================
-   Modal (shared classes)
-   ========================= */
-.backdrop{
-  position: fixed;
-  inset: 0;
-  background: rgba(2,6,23,0.72);
-  backdrop-filter: blur(6px);
-  display:flex;
-  align-items:center;
-  justify-content:center;
-  padding: 20px;
-  z-index: 60;
-}
-.modal{
-  width: min(920px, 96vw);
-  border-radius: var(--r18);
-  background:
-    radial-gradient(900px 420px at 20% 0%, rgba(96,165,250,0.18), transparent 60%),
-    radial-gradient(700px 350px at 80% 10%, rgba(34,211,238,0.10), transparent 55%),
-    rgba(10,16,32,0.92);
-  border: 1px solid rgba(96,165,250,0.22);
-  box-shadow: 0 30px 80px rgba(0,0,0,0.45);
-  overflow: hidden;
-}
-.modal-head{
-  padding: 14px 16px;
-  display:flex;
-  align-items:center;
-  justify-content: space-between;
-  gap: 10px;
-  border-bottom: 1px solid rgba(96,165,250,0.18);
-}
-.modal-title{
-  font-weight: 1000;
-  color: rgba(255,255,255,0.95);
-  letter-spacing: .2px;
-}
-.modal-sub{
-  margin-top: 2px;
-  font-size: 12px;
-  color: var(--muted);
-}
-
-/* If you have drawer classes */
-.ai-drawer{
-  position: fixed;
-  top: 0;
-  right: 0;
-  height: 100vh;
-  width: min(420px, 92vw);
-  background:
-    radial-gradient(700px 400px at 20% 0%, rgba(96,165,250,0.18), transparent 55%),
-    rgba(10,16,32,0.94);
-  border-left: 1px solid rgba(96,165,250,0.20);
-  box-shadow: -20px 0 60px rgba(0,0,0,0.35);
-  z-index: 70;
-  padding: 14px;
-}
-.ai-header{
-  font-weight: 1000;
-  color: rgba(255,255,255,0.95);
-  margin-bottom: 10px;
-}
-.ai-messages{
-  height: calc(100vh - 160px);
-  overflow: auto;
-  border-radius: var(--r16);
-  border: 1px solid rgba(96,165,250,0.14);
-  background: rgba(2,6,23,0.28);
-  padding: 10px;
-}
-.ai-msg{
-  color: rgba(226,232,240,0.92);
-  font-size: 13px;
-  line-height: 1.35;
-  padding: 10px;
-  border-radius: 12px;
-  border: 1px solid rgba(96,165,250,0.12);
-  background: rgba(15,23,42,0.45);
-  margin-bottom: 10px;
-}
-.ai-input{
-  width: 100%;
-  margin-top: 10px;
-  padding: 10px 12px;
-  border-radius: var(--r12);
-  border: 1px solid rgba(96,165,250,0.18);
-  background: rgba(2,6,23,0.35);
-  color: rgba(255,255,255,0.92);
-  outline: none;
-  font-weight: 700;
-}
-.ai-input::placeholder{ color: rgba(148,163,184,0.75); }
-
-/* Scrollbars (nice) */
-*::-webkit-scrollbar{ width: 10px; height: 10px; }
-*::-webkit-scrollbar-thumb{
-  background: rgba(96,165,250,0.20);
-  border: 2px solid rgba(2,6,23,0.35);
-  border-radius: 999px;
-}
-*::-webkit-scrollbar-track{ background: rgba(2,6,23,0.25); }
-.aiDrawer-backdrop{
-  position: fixed;
-  inset: 0;
-  background: rgba(0,0,0,.55);
-  backdrop-filter: blur(2px);
-  z-index: 999;
-}
-
-/* десен drawer */
-.aiDrawer{
-  position: fixed;
-  top: 0;
-  right: 0;
-  height: 100vh;
-  width: min(520px, 92vw);
-  background: #0b1220;            /* темна */
-  color: #e7eefc;
-  border-left: 1px solid rgba(255,255,255,.08);
-  z-index: 1000;
-  display: grid;
-  grid-template-rows: auto auto 1fr auto;
-
-  /* slide in */
-  transform: translateX(0);
-  animation: aiSlideIn .18s ease-out;
-}
-
-@keyframes aiSlideIn{
-  from { transform: translateX(24px); opacity: .7; }
-  to   { transform: translateX(0); opacity: 1; }
-}
-
-.aiDrawer-head{
-  padding: 14px 16px;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  border-bottom: 1px solid rgba(255,255,255,.08);
-}
-
-.aiDrawer-title{
-  font-size: 16px;
-  font-weight: 700;
-}
-
-.aiDrawer-sub{
-  font-size: 12px;
-  opacity: .75;
-  margin-top: 2px;
-}
-
-.aiDrawer-toolbar{
-  padding: 12px 16px;
-  border-bottom: 1px solid rgba(255,255,255,.08);
-  display: grid;
-  gap: 8px;
-}
-
-.aiSelect{
-  width: 100%;
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 10px;
-  outline: none;
-}
-
-.aiHint{
-  font-size: 12px;
-  opacity: .75;
-}
-
-.aiDrawer-body{
-  padding: 14px 16px;
-  overflow: auto;
-  display: grid;
-  gap: 10px;
-}
-
-/* chat bubbles */
-.aiMsg{
-  max-width: 92%;
-  border: 1px solid rgba(255,255,255,.08);
-  border-radius: 14px;
-  padding: 10px 12px;
-  background: rgba(255,255,255,.04);
-}
-
-.aiMsg.user{
-  margin-left: auto;
-  background: rgba(88, 167, 255, .12);
-  border-color: rgba(88, 167, 255, .20);
-}
-
-.aiMsg-meta{
-  font-size: 11px;
-  opacity: .7;
-  margin-bottom: 6px;
-}
-
-.aiMsg-text{
-  white-space: pre-wrap;
-  line-height: 1.35;
-  font-size: 14px;
-}
-
-.aiDrawer-foot{
-  padding: 12px 16px;
-  border-top: 1px solid rgba(255,255,255,.08);
-  display: grid;
-  grid-template-columns: 1fr auto;
-  gap: 10px;
-  align-items: end;
-  background: rgba(255,255,255,.02);
-}
-
-.aiTextarea{
-  width: 100%;
-  resize: none;
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 12px;
-  outline: none;
-}
-
-.aiBtn{
-  background: rgba(255,255,255,.06);
-  border: 1px solid rgba(255,255,255,.10);
-  color: #e7eefc;
-  padding: 10px 12px;
-  border-radius: 12px;
-  cursor: pointer;
-}
-
-.aiBtn:disabled{
-  opacity: .5;
-  cursor: not-allowed;
-}
-
-.aiBtnPrimary{
-  background: rgba(88, 167, 255, .22);
-  border-color: rgba(88, 167, 255, .35);
-}
-
-/* ====== LAYOUT with LEFT SIDEBAR ====== */
-.app-shell {
-  display: grid;
-  grid-template-columns: 240px 1fr;
-  min-height: 100vh;
-}
-
-.app-main {
-  padding: 14px;
-}
-
-/* Sidebar */
-.side {
-  background: rgba(255,255,255,0.04);
-  border-right: 1px solid rgba(255,255,255,0.10);
-  padding: 14px;
-  position: sticky;
-  top: 0;
-  height: 100vh;
-}
-
-.side-brand {
-  display: flex;
-  gap: 10px;
-  align-items: center;
-  padding: 10px;
-  border: 1px solid rgba(255,255,255,0.10);
-  border-radius: 14px;
-  background: rgba(0,0,0,0.12);
-  margin-bottom: 14px;
-}
-
-.side-brand-dot {
-  width: 10px;
-  height: 10px;
-  border-radius: 999px;
-  background: #7dd3fc;
-  box-shadow: 0 0 0 4px rgba(125,211,252,0.15);
-}
-
-.side-brand-title {
-  font-weight: 700;
-  letter-spacing: 0.2px;
-}
-
-.side-brand-sub {
-  font-size: 12px;
-  color: var(--dim);
-}
-
-.side-section-title {
-  font-size: 11px;
-  color: var(--dim);
-  margin: 12px 8px 8px;
-  letter-spacing: 0.12em;
-}
-
-.side-item {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  gap: 10px;
-  padding: 10px 12px;
-  border-radius: 12px;
-  border: 1px solid transparent;
-  background: transparent;
-  color: inherit;
-  cursor: pointer;
-  text-align: left;
-}
-
-.side-item:hover {
-  background: rgba(255,255,255,0.06);
-  border-color: rgba(255,255,255,0.08);
-}
-
-.side-item.active {
-  background: rgba(125,211,252,0.12);
-  border-color: rgba(125,211,252,0.25);
-}
-
-.side-icon {
-  width: 26px;
-  display: grid;
-  place-items: center;
-  font-size: 18px;
-}
-
-.side-label {
-  font-size: 14px;
-  font-weight: 600;
-}
-
-.side-footer {
-  position: absolute;
-  bottom: 12px;
-  left: 14px;
-  right: 14px;
-  padding: 10px;
-  border-radius: 12px;
-  border: 1px solid rgba(255,255,255,0.10);
-  background: rgba(0,0,0,0.12);
-}
-
-.side-footer-hint {
-  font-size: 12px;
-  color: var(--dim);
-}
-/* ==== Collapsible Side Menu ==== */
-.side {
-  position: sticky;
-  top: 0;
-  height: 100vh;
-  z-index: 20;
-
-  width: 260px;
-  transition: width 180ms ease;
-  border-right: 1px solid rgba(255,255,255,0.08);
-  background: rgba(6, 12, 24, 0.72);
-  backdrop-filter: blur(10px);
-}
-
-.side.collapsed {
-  width: 54px; /* само тенка лента */
-}
-
-.side-inner {
-  height: 100%;
-  padding: 14px 10px;
-  display: flex;
-  flex-direction: column;
-}
-
-.side-handle {
-  position: absolute;
-  left: 6px;
-  top: 10px;
-  width: 42px;
-  height: 34px;
-  border-radius: 12px;
-  border: 1px solid rgba(255,255,255,0.12);
-  background: rgba(255,255,255,0.06);
-  color: rgba(255,255,255,0.9);
-  cursor: pointer;
-}
-
-.side-brand {
-  display: flex;
-  align-items: center;
-  gap: 10px;
-  padding: 10px;
-  margin-top: 38px; /* за да не се судри со handle */
-  border-radius: 16px;
-  background: rgba(255,255,255,0.03);
-  border: 1px solid rgba(255,255,255,0.06);
-}
-
-.side-brand-dot {
-  width: 12px;
-  height: 12px;
-  border-radius: 999px;
-  background: rgba(80, 160, 255, 0.95);
-  box-shadow: 0 0 18px rgba(80,160,255,0.45);
-}
-
-.side-brand-text { min-width: 0; }
-.side-brand-title { font-weight: 800; color: rgba(255,255,255,0.92); }
-.side-brand-sub { font-size: 12px; color: rgba(255,255,255,0.55); }
-
-.side-section { margin-top: 14px; }
-.side-section-title {
-  font-size: 11px;
-  letter-spacing: 0.12em;
-  color: rgba(255,255,255,0.45);
-  padding: 10px;
-}
-
-.side-item {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  gap: 10px;
-  padding: 10px 12px;
-  margin: 6px 0;
-  border-radius: 14px;
-  border: 1px solid transparent;
-  background: transparent;
-  color: rgba(255,255,255,0.82);
-  cursor: pointer;
-  text-align: left;
-}
-
-.side-item:hover {
-  background: rgba(255,255,255,0.06);
-  border-color: rgba(255,255,255,0.08);
-}
-
-.side-item.active {
-  background: rgba(80,160,255,0.16);
-  border-color: rgba(80,160,255,0.25);
-}
-
-.side-icon {
-  width: 28px;
-  display: grid;
-  place-items: center;
-  font-size: 18px;
-}
-
-.side-label {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-
-.side-footer {
-  margin-top: auto;
-  padding: 10px;
-  color: rgba(255,255,255,0.55);
-  font-size: 12px;
-}
-.layout { display: flex; }
-.content { flex: 1; min-width: 0; }
-/* collapsed = центрирање иконите + тргање празни простори */
-.side.collapsed .side-inner {
-  padding: 10px 6px;
-  align-items: center;
-}
-
-.side.collapsed .side-brand {
-  width: 42px;
-  padding: 10px 0;
-  justify-content: center;
-  margin-top: 48px;
-}
-
-.side.collapsed .side-item {
-  justify-content: center;
-  padding: 10px 0;
-}
-
-.side.collapsed .side-icon {
-  width: 42px;
-}
-
-/* handle во средина (поубаво) */
-.side-handle {
-  left: 6px;
-  top: 10px;
-  width: 42px;
-  height: 34px;
-}
-
-/* кога е open да си е нормално */
-.side.open .side-inner {
-  align-items: stretch;
-}
-
-.cont{
-  margin-right: 50px;
-}
Index: n-frontend/tailwind.config.js
===================================================================
--- lan-frontend/tailwind.config.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-/** @type {import('tailwindcss').Config} */
-export default {
-  content: [
-    "./index.html",
-    "./src/**/*.{js,ts,jsx,tsx}",
-  ],
-  theme: {
-    extend: {},
-  },
-  plugins: [],
-}
Index: lan-frontend/vite.config.js
===================================================================
--- lan-frontend/vite.config.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ lan-frontend/vite.config.js	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1,33 +1,11 @@
-// import { defineConfig } from "vite";
-// import react from "@vitejs/plugin-react";
-//
-// export default defineConfig({
-//   plugins: [react()],
-//   server: {
-//     proxy: {
-//       "/api": { target: "http://localhost:5555", changeOrigin: true },
-//       "/receive": { target: "http://localhost:5555", changeOrigin: true },
-//       "/ping": { target: "http://localhost:5555", changeOrigin: true },
-//     },
-//   },
-// });
-import { defineConfig } from "vite";
-import react from "@vitejs/plugin-react";
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
 
-export default defineConfig({
-  plugins: [react()],
+// https://vite.dev/config/
+export default {
   server: {
     proxy: {
-      "/api": {
-        target: "http://localhost:5555",
-        changeOrigin: true,
-        secure: false,
-      },
-      "/receive": {
-        target: "http://localhost:5555",
-        changeOrigin: true,
-        secure: false,
-      },
+      "/api": "http://localhost:5555",
     },
   },
-});
+};
Index: tintel_agent.json
===================================================================
--- netintel_agent.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-{
-  "agent_id": 1,
-  "agent_key": "f6NKPptEYech1EZzlmCytdBtxt2iwd07zgxYYohDSKQ"
-}
Index: de_modules/.bin/autoprefixer
===================================================================
--- node_modules/.bin/autoprefixer	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../autoprefixer/bin/autoprefixer" "$@"
-else 
-  exec node  "$basedir/../autoprefixer/bin/autoprefixer" "$@"
-fi
Index: de_modules/.bin/autoprefixer.cmd
===================================================================
--- node_modules/.bin/autoprefixer.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\autoprefixer\bin\autoprefixer" %*
Index: de_modules/.bin/autoprefixer.ps1
===================================================================
--- node_modules/.bin/autoprefixer.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../autoprefixer/bin/autoprefixer" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../autoprefixer/bin/autoprefixer" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../autoprefixer/bin/autoprefixer" $args
-  } else {
-    & "node$exe"  "$basedir/../autoprefixer/bin/autoprefixer" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/baseline-browser-mapping
===================================================================
--- node_modules/.bin/baseline-browser-mapping	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
-else 
-  exec node  "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
-fi
Index: de_modules/.bin/baseline-browser-mapping.cmd
===================================================================
--- node_modules/.bin/baseline-browser-mapping.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\baseline-browser-mapping\dist\cli.js" %*
Index: de_modules/.bin/baseline-browser-mapping.ps1
===================================================================
--- node_modules/.bin/baseline-browser-mapping.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../baseline-browser-mapping/dist/cli.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../baseline-browser-mapping/dist/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../baseline-browser-mapping/dist/cli.js" $args
-  } else {
-    & "node$exe"  "$basedir/../baseline-browser-mapping/dist/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/browserslist
===================================================================
--- node_modules/.bin/browserslist	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../browserslist/cli.js" "$@"
-else 
-  exec node  "$basedir/../browserslist/cli.js" "$@"
-fi
Index: de_modules/.bin/browserslist.cmd
===================================================================
--- node_modules/.bin/browserslist.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\browserslist\cli.js" %*
Index: de_modules/.bin/browserslist.ps1
===================================================================
--- node_modules/.bin/browserslist.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../browserslist/cli.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../browserslist/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../browserslist/cli.js" $args
-  } else {
-    & "node$exe"  "$basedir/../browserslist/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/csv2json
===================================================================
--- node_modules/.bin/csv2json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-fi
Index: de_modules/.bin/csv2json.cmd
===================================================================
--- node_modules/.bin/csv2json.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2json.js" %*
Index: de_modules/.bin/csv2json.ps1
===================================================================
--- node_modules/.bin/csv2json.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/csv2tsv
===================================================================
--- node_modules/.bin/csv2tsv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-fi
Index: de_modules/.bin/csv2tsv.cmd
===================================================================
--- node_modules/.bin/csv2tsv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2dsv.js" %*
Index: de_modules/.bin/csv2tsv.ps1
===================================================================
--- node_modules/.bin/csv2tsv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/dsv2dsv
===================================================================
--- node_modules/.bin/dsv2dsv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-fi
Index: de_modules/.bin/dsv2dsv.cmd
===================================================================
--- node_modules/.bin/dsv2dsv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2dsv.js" %*
Index: de_modules/.bin/dsv2dsv.ps1
===================================================================
--- node_modules/.bin/dsv2dsv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/dsv2json
===================================================================
--- node_modules/.bin/dsv2json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-fi
Index: de_modules/.bin/dsv2json.cmd
===================================================================
--- node_modules/.bin/dsv2json.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2json.js" %*
Index: de_modules/.bin/dsv2json.ps1
===================================================================
--- node_modules/.bin/dsv2json.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/json2csv
===================================================================
--- node_modules/.bin/json2csv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-fi
Index: de_modules/.bin/json2csv.cmd
===================================================================
--- node_modules/.bin/json2csv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\json2dsv.js" %*
Index: de_modules/.bin/json2csv.ps1
===================================================================
--- node_modules/.bin/json2csv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/json2dsv
===================================================================
--- node_modules/.bin/json2dsv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-fi
Index: de_modules/.bin/json2dsv.cmd
===================================================================
--- node_modules/.bin/json2dsv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\json2dsv.js" %*
Index: de_modules/.bin/json2dsv.ps1
===================================================================
--- node_modules/.bin/json2dsv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/json2tsv
===================================================================
--- node_modules/.bin/json2tsv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/json2dsv.js" "$@"
-fi
Index: de_modules/.bin/json2tsv.cmd
===================================================================
--- node_modules/.bin/json2tsv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\json2dsv.js" %*
Index: de_modules/.bin/json2tsv.ps1
===================================================================
--- node_modules/.bin/json2tsv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/json2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/nanoid
===================================================================
--- node_modules/.bin/nanoid	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../nanoid/bin/nanoid.cjs" "$@"
-else 
-  exec node  "$basedir/../nanoid/bin/nanoid.cjs" "$@"
-fi
Index: de_modules/.bin/nanoid.cmd
===================================================================
--- node_modules/.bin/nanoid.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\nanoid\bin\nanoid.cjs" %*
Index: de_modules/.bin/nanoid.ps1
===================================================================
--- node_modules/.bin/nanoid.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
-  } else {
-    & "node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/tsv2csv
===================================================================
--- node_modules/.bin/tsv2csv	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2dsv.js" "$@"
-fi
Index: de_modules/.bin/tsv2csv.cmd
===================================================================
--- node_modules/.bin/tsv2csv.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2dsv.js" %*
Index: de_modules/.bin/tsv2csv.ps1
===================================================================
--- node_modules/.bin/tsv2csv.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2dsv.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/tsv2json
===================================================================
--- node_modules/.bin/tsv2json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-else 
-  exec node  "$basedir/../d3-dsv/bin/dsv2json.js" "$@"
-fi
Index: de_modules/.bin/tsv2json.cmd
===================================================================
--- node_modules/.bin/tsv2json.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\d3-dsv\bin\dsv2json.js" %*
Index: de_modules/.bin/tsv2json.ps1
===================================================================
--- node_modules/.bin/tsv2json.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  } else {
-    & "node$exe"  "$basedir/../d3-dsv/bin/dsv2json.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.bin/update-browserslist-db
===================================================================
--- node_modules/.bin/update-browserslist-db	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
-    *CYGWIN*|*MINGW*|*MSYS*)
-        if command -v cygpath > /dev/null 2>&1; then
-            basedir=`cygpath -w "$basedir"`
-        fi
-    ;;
-esac
-
-if [ -x "$basedir/node" ]; then
-  exec "$basedir/node"  "$basedir/../update-browserslist-db/cli.js" "$@"
-else 
-  exec node  "$basedir/../update-browserslist-db/cli.js" "$@"
-fi
Index: de_modules/.bin/update-browserslist-db.cmd
===================================================================
--- node_modules/.bin/update-browserslist-db.cmd	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-@ECHO off
-GOTO start
-:find_dp0
-SET dp0=%~dp0
-EXIT /b
-:start
-SETLOCAL
-CALL :find_dp0
-
-IF EXIST "%dp0%\node.exe" (
-  SET "_prog=%dp0%\node.exe"
-) ELSE (
-  SET "_prog=node"
-  SET PATHEXT=%PATHEXT:;.JS;=;%
-)
-
-endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\update-browserslist-db\cli.js" %*
Index: de_modules/.bin/update-browserslist-db.ps1
===================================================================
--- node_modules/.bin/update-browserslist-db.ps1	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#!/usr/bin/env pwsh
-$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
-
-$exe=""
-if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
-  # Fix case when both the Windows and Linux builds of Node
-  # are installed in the same directory
-  $exe=".exe"
-}
-$ret=0
-if (Test-Path "$basedir/node$exe") {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "$basedir/node$exe"  "$basedir/../update-browserslist-db/cli.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../update-browserslist-db/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../update-browserslist-db/cli.js" $args
-  } else {
-    & "node$exe"  "$basedir/../update-browserslist-db/cli.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret
Index: de_modules/.package-lock.json
===================================================================
--- node_modules/.package-lock.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1061 +1,0 @@
-{
-  "name": "Proekt_Wazuh",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "node_modules/@reduxjs/toolkit": {
-      "version": "2.11.2",
-      "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
-      "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@standard-schema/spec": "^1.0.0",
-        "@standard-schema/utils": "^0.3.0",
-        "immer": "^11.0.0",
-        "redux": "^5.0.1",
-        "redux-thunk": "^3.1.0",
-        "reselect": "^5.1.0"
-      },
-      "peerDependencies": {
-        "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
-        "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "react": {
-          "optional": true
-        },
-        "react-redux": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@reduxjs/toolkit/node_modules/immer": {
-      "version": "11.1.3",
-      "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.3.tgz",
-      "integrity": "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==",
-      "license": "MIT",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/immer"
-      }
-    },
-    "node_modules/@standard-schema/spec": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
-      "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
-      "license": "MIT"
-    },
-    "node_modules/@standard-schema/utils": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
-      "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-array": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
-      "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-color": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
-      "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-ease": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
-      "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-interpolate": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
-      "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-color": "*"
-      }
-    },
-    "node_modules/@types/d3-path": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
-      "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-scale": {
-      "version": "4.0.9",
-      "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
-      "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-time": "*"
-      }
-    },
-    "node_modules/@types/d3-shape": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",
-      "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-path": "*"
-      }
-    },
-    "node_modules/@types/d3-time": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
-      "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-timer": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
-      "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
-      "license": "MIT"
-    },
-    "node_modules/@types/use-sync-external-store": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
-      "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
-      "license": "MIT"
-    },
-    "node_modules/autoprefixer": {
-      "version": "10.4.23",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
-      "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/autoprefixer"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "browserslist": "^4.28.1",
-        "caniuse-lite": "^1.0.30001760",
-        "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/baseline-browser-mapping": {
-      "version": "2.9.11",
-      "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
-      "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
-      "dev": true,
-      "license": "Apache-2.0",
-      "bin": {
-        "baseline-browser-mapping": "dist/cli.js"
-      }
-    },
-    "node_modules/browserslist": {
-      "version": "4.28.1",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
-      "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "baseline-browser-mapping": "^2.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/caniuse-lite": {
-      "version": "1.0.30001761",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz",
-      "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "CC-BY-4.0"
-    },
-    "node_modules/clsx": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
-      "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/commander": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
-      "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
-      "license": "MIT",
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/d3": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
-      "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "3",
-        "d3-axis": "3",
-        "d3-brush": "3",
-        "d3-chord": "3",
-        "d3-color": "3",
-        "d3-contour": "4",
-        "d3-delaunay": "6",
-        "d3-dispatch": "3",
-        "d3-drag": "3",
-        "d3-dsv": "3",
-        "d3-ease": "3",
-        "d3-fetch": "3",
-        "d3-force": "3",
-        "d3-format": "3",
-        "d3-geo": "3",
-        "d3-hierarchy": "3",
-        "d3-interpolate": "3",
-        "d3-path": "3",
-        "d3-polygon": "3",
-        "d3-quadtree": "3",
-        "d3-random": "3",
-        "d3-scale": "4",
-        "d3-scale-chromatic": "3",
-        "d3-selection": "3",
-        "d3-shape": "3",
-        "d3-time": "3",
-        "d3-time-format": "4",
-        "d3-timer": "3",
-        "d3-transition": "3",
-        "d3-zoom": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-array": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
-      "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
-      "license": "ISC",
-      "dependencies": {
-        "internmap": "1 - 2"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-axis": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
-      "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-brush": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
-      "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-drag": "2 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-selection": "3",
-        "d3-transition": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-chord": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
-      "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-path": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-color": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
-      "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-contour": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
-      "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "^3.2.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-delaunay": {
-      "version": "6.0.4",
-      "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
-      "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
-      "license": "ISC",
-      "dependencies": {
-        "delaunator": "5"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-dispatch": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
-      "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-drag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
-      "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-selection": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-dsv": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
-      "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
-      "license": "ISC",
-      "dependencies": {
-        "commander": "7",
-        "iconv-lite": "0.6",
-        "rw": "1"
-      },
-      "bin": {
-        "csv2json": "bin/dsv2json.js",
-        "csv2tsv": "bin/dsv2dsv.js",
-        "dsv2dsv": "bin/dsv2dsv.js",
-        "dsv2json": "bin/dsv2json.js",
-        "json2csv": "bin/json2dsv.js",
-        "json2dsv": "bin/json2dsv.js",
-        "json2tsv": "bin/json2dsv.js",
-        "tsv2csv": "bin/dsv2dsv.js",
-        "tsv2json": "bin/dsv2json.js"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-ease": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
-      "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-fetch": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
-      "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dsv": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-force": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
-      "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-quadtree": "1 - 3",
-        "d3-timer": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-format": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
-      "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-geo": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
-      "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2.5.0 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-hierarchy": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
-      "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-interpolate": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
-      "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-path": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
-      "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-polygon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
-      "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-quadtree": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
-      "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-random": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
-      "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-sankey": {
-      "version": "0.12.3",
-      "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
-      "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "d3-array": "1 - 2",
-        "d3-shape": "^1.2.0"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/d3-array": {
-      "version": "2.12.1",
-      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
-      "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "internmap": "^1.0.0"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/d3-path": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
-      "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
-      "license": "BSD-3-Clause"
-    },
-    "node_modules/d3-sankey/node_modules/d3-shape": {
-      "version": "1.3.7",
-      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
-      "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "d3-path": "1"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/internmap": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
-      "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
-      "license": "ISC"
-    },
-    "node_modules/d3-scale": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
-      "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2.10.0 - 3",
-        "d3-format": "1 - 3",
-        "d3-interpolate": "1.2.0 - 3",
-        "d3-time": "2.1.1 - 3",
-        "d3-time-format": "2 - 4"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-scale-chromatic": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
-      "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3",
-        "d3-interpolate": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-selection": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
-      "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-shape": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
-      "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-path": "^3.1.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-time": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
-      "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-time-format": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
-      "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-time": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-timer": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
-      "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-transition": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
-      "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3",
-        "d3-dispatch": "1 - 3",
-        "d3-ease": "1 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-timer": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "peerDependencies": {
-        "d3-selection": "2 - 3"
-      }
-    },
-    "node_modules/d3-zoom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
-      "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-drag": "2 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-selection": "2 - 3",
-        "d3-transition": "2 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/decimal.js-light": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
-      "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
-      "license": "MIT"
-    },
-    "node_modules/delaunator": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
-      "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
-      "license": "ISC",
-      "dependencies": {
-        "robust-predicates": "^3.0.2"
-      }
-    },
-    "node_modules/electron-to-chromium": {
-      "version": "1.5.267",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
-      "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
-      "dev": true,
-      "license": "ISC"
-    },
-    "node_modules/es-toolkit": {
-      "version": "1.44.0",
-      "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.44.0.tgz",
-      "integrity": "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==",
-      "license": "MIT",
-      "workspaces": [
-        "docs",
-        "benchmarks"
-      ]
-    },
-    "node_modules/escalade": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
-      "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/eventemitter3": {
-      "version": "5.0.4",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
-      "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
-      "license": "MIT"
-    },
-    "node_modules/fraction.js": {
-      "version": "5.3.4",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
-      "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "*"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/rawify"
-      }
-    },
-    "node_modules/iconv-lite": {
-      "version": "0.6.3",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
-      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
-      "license": "MIT",
-      "dependencies": {
-        "safer-buffer": ">= 2.1.2 < 3.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/immer": {
-      "version": "10.2.0",
-      "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz",
-      "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==",
-      "license": "MIT",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/immer"
-      }
-    },
-    "node_modules/internmap": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
-      "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/nanoid": {
-      "version": "3.3.11",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
-      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "bin": {
-        "nanoid": "bin/nanoid.cjs"
-      },
-      "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-      }
-    },
-    "node_modules/node-releases": {
-      "version": "2.0.27",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
-      "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/picocolors": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
-      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
-      "dev": true,
-      "license": "ISC"
-    },
-    "node_modules/postcss": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
-      "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/postcss"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "nanoid": "^3.3.11",
-        "picocolors": "^1.1.1",
-        "source-map-js": "^1.2.1"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      }
-    },
-    "node_modules/postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/react": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
-      "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
-      "license": "MIT",
-      "peer": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-dom": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
-      "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
-      "license": "MIT",
-      "peer": true,
-      "dependencies": {
-        "scheduler": "^0.27.0"
-      },
-      "peerDependencies": {
-        "react": "^19.2.3"
-      }
-    },
-    "node_modules/react-is": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz",
-      "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==",
-      "license": "MIT",
-      "peer": true
-    },
-    "node_modules/react-redux": {
-      "version": "9.2.0",
-      "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
-      "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/use-sync-external-store": "^0.0.6",
-        "use-sync-external-store": "^1.4.0"
-      },
-      "peerDependencies": {
-        "@types/react": "^18.2.25 || ^19",
-        "react": "^18.0 || ^19",
-        "redux": "^5.0.0"
-      },
-      "peerDependenciesMeta": {
-        "@types/react": {
-          "optional": true
-        },
-        "redux": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/recharts": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.7.0.tgz",
-      "integrity": "sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==",
-      "license": "MIT",
-      "workspaces": [
-        "www"
-      ],
-      "dependencies": {
-        "@reduxjs/toolkit": "1.x.x || 2.x.x",
-        "clsx": "^2.1.1",
-        "decimal.js-light": "^2.5.1",
-        "es-toolkit": "^1.39.3",
-        "eventemitter3": "^5.0.1",
-        "immer": "^10.1.1",
-        "react-redux": "8.x.x || 9.x.x",
-        "reselect": "5.1.1",
-        "tiny-invariant": "^1.3.3",
-        "use-sync-external-store": "^1.2.2",
-        "victory-vendor": "^37.0.2"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-        "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-        "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-      }
-    },
-    "node_modules/redux": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
-      "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
-      "license": "MIT"
-    },
-    "node_modules/redux-thunk": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
-      "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
-      "license": "MIT",
-      "peerDependencies": {
-        "redux": "^5.0.0"
-      }
-    },
-    "node_modules/reselect": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
-      "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
-      "license": "MIT"
-    },
-    "node_modules/robust-predicates": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
-      "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
-      "license": "Unlicense"
-    },
-    "node_modules/rw": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
-      "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
-      "license": "BSD-3-Clause"
-    },
-    "node_modules/safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "license": "MIT"
-    },
-    "node_modules/scheduler": {
-      "version": "0.27.0",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
-      "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
-      "license": "MIT",
-      "peer": true
-    },
-    "node_modules/source-map-js": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
-      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
-      "dev": true,
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/tailwindcss": {
-      "version": "4.1.18",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
-      "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/tiny-invariant": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
-      "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
-      "license": "MIT"
-    },
-    "node_modules/update-browserslist-db": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
-      "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "escalade": "^3.2.0",
-        "picocolors": "^1.1.1"
-      },
-      "bin": {
-        "update-browserslist-db": "cli.js"
-      },
-      "peerDependencies": {
-        "browserslist": ">= 4.21.0"
-      }
-    },
-    "node_modules/use-sync-external-store": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
-      "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
-      "license": "MIT",
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-      }
-    },
-    "node_modules/victory-vendor": {
-      "version": "37.3.6",
-      "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz",
-      "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==",
-      "license": "MIT AND ISC",
-      "dependencies": {
-        "@types/d3-array": "^3.0.3",
-        "@types/d3-ease": "^3.0.0",
-        "@types/d3-interpolate": "^3.0.1",
-        "@types/d3-scale": "^4.0.2",
-        "@types/d3-shape": "^3.1.0",
-        "@types/d3-time": "^3.0.0",
-        "@types/d3-timer": "^3.0.0",
-        "d3-array": "^3.1.6",
-        "d3-ease": "^3.0.1",
-        "d3-interpolate": "^3.0.1",
-        "d3-scale": "^4.0.2",
-        "d3-shape": "^3.1.0",
-        "d3-time": "^3.0.0",
-        "d3-timer": "^3.0.1"
-      }
-    }
-  }
-}
Index: de_modules/@reduxjs/toolkit/LICENSE
===================================================================
--- node_modules/@reduxjs/toolkit/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2018 Mark Erikson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/@reduxjs/toolkit/README.md
===================================================================
--- node_modules/@reduxjs/toolkit/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-# Redux Toolkit
-
-![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reduxjs/redux-toolkit/tests.yml?style=flat-square)
-[![npm version](https://img.shields.io/npm/v/@reduxjs/toolkit.svg?style=flat-square)](https://www.npmjs.com/package/@reduxjs/toolkit)
-[![npm downloads](https://img.shields.io/npm/dm/@reduxjs/toolkit.svg?style=flat-square&label=RTK+downloads)](https://www.npmjs.com/package/@reduxjs/toolkit)
-
-**The official, opinionated, batteries-included toolset for efficient Redux development**
-
-## Installation
-
-### Create a React Redux App
-
-The recommended way to start new apps with React and Redux Toolkit is by using [our official Redux Toolkit + TS template for Vite](https://github.com/reduxjs/redux-templates), or by creating a new Next.js project using [Next's `with-redux` template](https://github.com/vercel/next.js/tree/canary/examples/with-redux).
-
-Both of these already have Redux Toolkit and React-Redux configured appropriately for that build tool, and come with a small example app that demonstrates how to use several of Redux Toolkit's features.
-
-```bash
-# Vite with our Redux+TS template
-# (using the `degit` tool to clone and extract the template)
-npx degit reduxjs/redux-templates/packages/vite-template-redux my-app
-
-# Next.js using the `with-redux` template
-npx create-next-app --example with-redux my-app
-```
-
-We do not currently have official React Native templates, but recommend these templates for standard React Native and for Expo:
-
-- https://github.com/rahsheen/react-native-template-redux-typescript
-- https://github.com/rahsheen/expo-template-redux-typescript
-
-### An Existing App
-
-Redux Toolkit is available as a package on NPM for use with a module bundler or in a Node application:
-
-```bash
-# NPM
-npm install @reduxjs/toolkit
-
-# Yarn
-yarn add @reduxjs/toolkit
-```
-
-The package includes a precompiled ESM build that can be used as a [`<script type="module">` tag](https://unpkg.com/@reduxjs/toolkit/dist/redux-toolkit.browser.mjs) directly in the browser.
-
-## Documentation
-
-The Redux Toolkit docs are available at **https://redux-toolkit.js.org**, including API references and usage guides for all of the APIs included in Redux Toolkit.
-
-The Redux core docs at https://redux.js.org includes the full Redux tutorials, as well usage guides on general Redux patterns.
-
-## Purpose
-
-The **Redux Toolkit** package is intended to be the standard way to write Redux logic. It was originally created to help address three common concerns about Redux:
-
-- "Configuring a Redux store is too complicated"
-- "I have to add a lot of packages to get Redux to do anything useful"
-- "Redux requires too much boilerplate code"
-
-We can't solve every use case, but in the spirit of [`create-react-app`](https://github.com/facebook/create-react-app), we can try to provide some tools that abstract over the setup process and handle the most common use cases, as well as include some useful utilities that will let the user simplify their application code.
-
-Because of that, this package is deliberately limited in scope. It does _not_ address concepts like "reusable encapsulated Redux modules", folder or file structures, managing entity relationships in the store, and so on.
-
-Redux Toolkit also includes a powerful data fetching and caching capability that we've dubbed "RTK Query". It's included in the package as a separate set of entry points. It's optional, but can eliminate the need to hand-write data fetching logic yourself.
-
-## What's Included
-
-Redux Toolkit includes these APIs:
-
-- `configureStore()`: wraps `createStore` to provide simplified configuration options and good defaults. It can automatically combine your slice reducers, add whatever Redux middleware you supply, includes `redux-thunk` by default, and enables use of the Redux DevTools Extension.
-- `createReducer()`: lets you supply a lookup table of action types to case reducer functions, rather than writing switch statements. In addition, it automatically uses the [`immer` library](https://github.com/mweststrate/immer) to let you write simpler immutable updates with normal mutative code, like `state.todos[3].completed = true`.
-- `createAction()`: generates an action creator function for the given action type string. The function itself has `toString()` defined, so that it can be used in place of the type constant.
-- `createSlice()`: combines `createReducer()` + `createAction()`. Accepts an object of reducer functions, a slice name, and an initial state value, and automatically generates a slice reducer with corresponding action creators and action types.
-- `combineSlices()`: combines multiple slices into a single reducer, and allows "lazy loading" of slices after initialisation.
-- `createListenerMiddleware()`: lets you define "listener" entries that contain an "effect" callback with additional logic, and a way to specify when that callback should run based on dispatched actions or state changes. A lightweight alternative to Redux async middleware like sagas and observables.
-- `createAsyncThunk()`: accepts an action type string and a function that returns a promise, and generates a thunk that dispatches `pending/resolved/rejected` action types based on that promise
-- `createEntityAdapter()`: generates a set of reusable reducers and selectors to manage normalized data in the store
-- The `createSelector()` utility from the [Reselect](https://github.com/reduxjs/reselect) library, re-exported for ease of use.
-
-For details, see [the Redux Toolkit API Reference section in the docs](https://redux-toolkit.js.org/api/configureStore).
-
-## RTK Query
-
-**RTK Query** is provided as an optional addon within the `@reduxjs/toolkit` package. It is purpose-built to solve the use case of data fetching and caching, supplying a compact, but powerful toolset to define an API interface layer for your app. It is intended to simplify common cases for loading data in a web application, eliminating the need to hand-write data fetching & caching logic yourself.
-
-RTK Query is built on top of the Redux Toolkit core for its implementation, using [Redux](https://redux.js.org/) internally for its architecture. Although knowledge of Redux and RTK are not required to use RTK Query, you should explore all of the additional global store management capabilities they provide, as well as installing the [Redux DevTools browser extension](https://github.com/reduxjs/redux-devtools), which works flawlessly with RTK Query to traverse and replay a timeline of your request & cache behavior.
-
-RTK Query is included within the installation of the core Redux Toolkit package. It is available via either of the two entry points below:
-
-```ts no-transpile
-import { createApi } from '@reduxjs/toolkit/query'
-
-/* React-specific entry point that automatically generates
-   hooks corresponding to the defined endpoints */
-import { createApi } from '@reduxjs/toolkit/query/react'
-```
-
-### What's included
-
-RTK Query includes these APIs:
-
-- `createApi()`: The core of RTK Query's functionality. It allows you to define a set of endpoints describe how to retrieve data from a series of endpoints, including configuration of how to fetch and transform that data. In most cases, you should use this once per app, with "one API slice per base URL" as a rule of thumb.
-- `fetchBaseQuery()`: A small wrapper around fetch that aims to simplify requests. Intended as the recommended baseQuery to be used in createApi for the majority of users.
-- `<ApiProvider />`: Can be used as a Provider if you do not already have a Redux store.
-- `setupListeners()`: A utility used to enable refetchOnMount and refetchOnReconnect behaviors.
-
-See the [**RTK Query Overview**](https://redux-toolkit.js.org/rtk-query/overview) page for more details on what RTK Query is, what problems it solves, and how to use it.
-
-## Contributing
-
-Please refer to our [contributing guide](/CONTRIBUTING.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Redux Toolkit.
Index: de_modules/@reduxjs/toolkit/dist/cjs/index.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-'use strict'
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./redux-toolkit.production.min.cjs')
-} else {
-  module.exports = require('./redux-toolkit.development.cjs')
-}
Index: de_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.development.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.development.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2387 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  ReducerType: () => ReducerType,
-  SHOULD_AUTOBATCH: () => SHOULD_AUTOBATCH,
-  TaskAbortError: () => TaskAbortError,
-  Tuple: () => Tuple,
-  addListener: () => addListener,
-  asyncThunkCreator: () => asyncThunkCreator,
-  autoBatchEnhancer: () => autoBatchEnhancer,
-  buildCreateSlice: () => buildCreateSlice,
-  clearAllListeners: () => clearAllListeners,
-  combineSlices: () => combineSlices,
-  configureStore: () => configureStore,
-  createAction: () => createAction,
-  createActionCreatorInvariantMiddleware: () => createActionCreatorInvariantMiddleware,
-  createAsyncThunk: () => createAsyncThunk,
-  createDraftSafeSelector: () => createDraftSafeSelector,
-  createDraftSafeSelectorCreator: () => createDraftSafeSelectorCreator,
-  createDynamicMiddleware: () => createDynamicMiddleware,
-  createEntityAdapter: () => createEntityAdapter,
-  createImmutableStateInvariantMiddleware: () => createImmutableStateInvariantMiddleware,
-  createListenerMiddleware: () => createListenerMiddleware,
-  createNextState: () => import_immer.produce,
-  createReducer: () => createReducer,
-  createSelector: () => import_reselect2.createSelector,
-  createSelectorCreator: () => import_reselect.createSelectorCreator,
-  createSerializableStateInvariantMiddleware: () => createSerializableStateInvariantMiddleware,
-  createSlice: () => createSlice,
-  current: () => import_immer.current,
-  findNonSerializableValue: () => findNonSerializableValue,
-  formatProdErrorMessage: () => formatProdErrorMessage,
-  freeze: () => import_immer2.freeze,
-  isActionCreator: () => isActionCreator,
-  isAllOf: () => isAllOf,
-  isAnyOf: () => isAnyOf,
-  isAsyncThunkAction: () => isAsyncThunkAction,
-  isDraft: () => import_immer.isDraft,
-  isFluxStandardAction: () => isFSA,
-  isFulfilled: () => isFulfilled,
-  isImmutableDefault: () => isImmutableDefault,
-  isPending: () => isPending,
-  isPlain: () => isPlain,
-  isRejected: () => isRejected,
-  isRejectedWithValue: () => isRejectedWithValue,
-  lruMemoize: () => import_reselect2.lruMemoize,
-  miniSerializeError: () => miniSerializeError,
-  nanoid: () => nanoid,
-  original: () => import_immer2.original,
-  prepareAutoBatched: () => prepareAutoBatched,
-  removeListener: () => removeListener,
-  unwrapResult: () => unwrapResult,
-  weakMapMemoize: () => import_reselect.weakMapMemoize
-});
-module.exports = __toCommonJS(src_exports);
-__reExport(src_exports, require("redux"), module.exports);
-var import_immer2 = require("immer");
-
-// src/immerImports.ts
-var import_immer = require("immer");
-
-// src/index.ts
-var import_reselect2 = require("reselect");
-
-// src/reselectImports.ts
-var import_reselect = require("reselect");
-
-// src/createDraftSafeSelector.ts
-var createDraftSafeSelectorCreator = (...args) => {
-  const createSelector2 = (0, import_reselect.createSelectorCreator)(...args);
-  const createDraftSafeSelector2 = Object.assign((...args2) => {
-    const selector = createSelector2(...args2);
-    const wrappedSelector = (value, ...rest) => selector((0, import_immer.isDraft)(value) ? (0, import_immer.current)(value) : value, ...rest);
-    Object.assign(wrappedSelector, selector);
-    return wrappedSelector;
-  }, {
-    withTypes: () => createDraftSafeSelector2
-  });
-  return createDraftSafeSelector2;
-};
-var createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(import_reselect.weakMapMemoize);
-
-// src/reduxImports.ts
-var import_redux = require("redux");
-
-// src/devtoolsExtension.ts
-var composeWithDevTools = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {
-  if (arguments.length === 0) return void 0;
-  if (typeof arguments[0] === "object") return import_redux.compose;
-  return import_redux.compose.apply(null, arguments);
-};
-var devToolsEnhancer = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {
-  return function(noop3) {
-    return noop3;
-  };
-};
-
-// src/getDefaultMiddleware.ts
-var import_redux_thunk = require("redux-thunk");
-
-// src/tsHelpers.ts
-var hasMatchFunction = (v) => {
-  return v && typeof v.match === "function";
-};
-
-// src/createAction.ts
-function createAction(type, prepareAction) {
-  function actionCreator(...args) {
-    if (prepareAction) {
-      let prepared = prepareAction(...args);
-      if (!prepared) {
-        throw new Error(false ? _formatProdErrorMessage(0) : "prepareAction did not return an object");
-      }
-      return {
-        type,
-        payload: prepared.payload,
-        ..."meta" in prepared && {
-          meta: prepared.meta
-        },
-        ..."error" in prepared && {
-          error: prepared.error
-        }
-      };
-    }
-    return {
-      type,
-      payload: args[0]
-    };
-  }
-  actionCreator.toString = () => `${type}`;
-  actionCreator.type = type;
-  actionCreator.match = (action) => (0, import_redux.isAction)(action) && action.type === type;
-  return actionCreator;
-}
-function isActionCreator(action) {
-  return typeof action === "function" && "type" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it
-  hasMatchFunction(action);
-}
-function isFSA(action) {
-  return (0, import_redux.isAction)(action) && Object.keys(action).every(isValidKey);
-}
-function isValidKey(key) {
-  return ["type", "payload", "error", "meta"].indexOf(key) > -1;
-}
-
-// src/actionCreatorInvariantMiddleware.ts
-function getMessage(type) {
-  const splitType = type ? `${type}`.split("/") : [];
-  const actionName = splitType[splitType.length - 1] || "actionCreator";
-  return `Detected an action creator with type "${type || "unknown"}" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${actionName}())\` instead of \`dispatch(${actionName})\`. This is necessary even if the action has no payload.`;
-}
-function createActionCreatorInvariantMiddleware(options = {}) {
-  if (false) {
-    return () => (next) => (action) => next(action);
-  }
-  const {
-    isActionCreator: isActionCreator2 = isActionCreator
-  } = options;
-  return () => (next) => (action) => {
-    if (isActionCreator2(action)) {
-      console.warn(getMessage(action.type));
-    }
-    return next(action);
-  };
-}
-
-// src/utils.ts
-function getTimeMeasureUtils(maxDelay, fnName) {
-  let elapsed = 0;
-  return {
-    measureTime(fn) {
-      const started = Date.now();
-      try {
-        return fn();
-      } finally {
-        const finished = Date.now();
-        elapsed += finished - started;
-      }
-    },
-    warnIfExceeded() {
-      if (elapsed > maxDelay) {
-        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. 
-If your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.
-It is disabled in production builds, so you don't need to worry about that.`);
-      }
-    }
-  };
-}
-var Tuple = class _Tuple extends Array {
-  constructor(...items) {
-    super(...items);
-    Object.setPrototypeOf(this, _Tuple.prototype);
-  }
-  static get [Symbol.species]() {
-    return _Tuple;
-  }
-  concat(...arr) {
-    return super.concat.apply(this, arr);
-  }
-  prepend(...arr) {
-    if (arr.length === 1 && Array.isArray(arr[0])) {
-      return new _Tuple(...arr[0].concat(this));
-    }
-    return new _Tuple(...arr.concat(this));
-  }
-};
-function freezeDraftable(val) {
-  return (0, import_immer.isDraftable)(val) ? (0, import_immer.produce)(val, () => {
-  }) : val;
-}
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-
-// src/immutableStateInvariantMiddleware.ts
-function isImmutableDefault(value) {
-  return typeof value !== "object" || value == null || Object.isFrozen(value);
-}
-function trackForMutations(isImmutable, ignoredPaths, obj) {
-  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);
-  return {
-    detectMutations() {
-      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);
-    }
-  };
-}
-function trackProperties(isImmutable, ignoredPaths = [], obj, path = "", checkedObjects = /* @__PURE__ */ new Set()) {
-  const tracked = {
-    value: obj
-  };
-  if (!isImmutable(obj) && !checkedObjects.has(obj)) {
-    checkedObjects.add(obj);
-    tracked.children = {};
-    const hasIgnoredPaths = ignoredPaths.length > 0;
-    for (const key in obj) {
-      const nestedPath = path ? path + "." + key : key;
-      if (hasIgnoredPaths) {
-        const hasMatches = ignoredPaths.some((ignored) => {
-          if (ignored instanceof RegExp) {
-            return ignored.test(nestedPath);
-          }
-          return nestedPath === ignored;
-        });
-        if (hasMatches) {
-          continue;
-        }
-      }
-      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);
-    }
-  }
-  return tracked;
-}
-function detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = "") {
-  const prevObj = trackedProperty ? trackedProperty.value : void 0;
-  const sameRef = prevObj === obj;
-  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {
-    return {
-      wasMutated: true,
-      path
-    };
-  }
-  if (isImmutable(prevObj) || isImmutable(obj)) {
-    return {
-      wasMutated: false
-    };
-  }
-  const keysToDetect = {};
-  for (let key in trackedProperty.children) {
-    keysToDetect[key] = true;
-  }
-  for (let key in obj) {
-    keysToDetect[key] = true;
-  }
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (let key in keysToDetect) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);
-    if (result.wasMutated) {
-      return result;
-    }
-  }
-  return {
-    wasMutated: false
-  };
-}
-function createImmutableStateInvariantMiddleware(options = {}) {
-  if (false) {
-    return () => (next) => (action) => next(action);
-  } else {
-    let stringify2 = function(obj, serializer, indent, decycler) {
-      return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);
-    }, getSerialize2 = function(serializer, decycler) {
-      let stack = [], keys = [];
-      if (!decycler) decycler = function(_, value) {
-        if (stack[0] === value) return "[Circular ~]";
-        return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]";
-      };
-      return function(key, value) {
-        if (stack.length > 0) {
-          var thisPos = stack.indexOf(this);
-          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
-          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
-          if (~stack.indexOf(value)) value = decycler.call(this, key, value);
-        } else stack.push(value);
-        return serializer == null ? value : serializer.call(this, key, value);
-      };
-    };
-    var stringify = stringify2, getSerialize = getSerialize2;
-    let {
-      isImmutable = isImmutableDefault,
-      ignoredPaths,
-      warnAfter = 32
-    } = options;
-    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);
-    return ({
-      getState
-    }) => {
-      let state = getState();
-      let tracker = track(state);
-      let result;
-      return (next) => (action) => {
-        const measureUtils = getTimeMeasureUtils(warnAfter, "ImmutableStateInvariantMiddleware");
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(false ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ""}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        const dispatchedAction = next(action);
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(false ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ""}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-        return dispatchedAction;
-      };
-    };
-  }
-}
-
-// src/serializableStateInvariantMiddleware.ts
-function isPlain(val) {
-  const type = typeof val;
-  return val == null || type === "string" || type === "boolean" || type === "number" || Array.isArray(val) || (0, import_redux.isPlainObject)(val);
-}
-function findNonSerializableValue(value, path = "", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {
-  let foundNestedSerializable;
-  if (!isSerializable(value)) {
-    return {
-      keyPath: path || "<root>",
-      value
-    };
-  }
-  if (typeof value !== "object" || value === null) {
-    return false;
-  }
-  if (cache?.has(value)) return false;
-  const entries = getEntries != null ? getEntries(value) : Object.entries(value);
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (const [key, nestedValue] of entries) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    if (!isSerializable(nestedValue)) {
-      return {
-        keyPath: nestedPath,
-        value: nestedValue
-      };
-    }
-    if (typeof nestedValue === "object") {
-      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);
-      if (foundNestedSerializable) {
-        return foundNestedSerializable;
-      }
-    }
-  }
-  if (cache && isNestedFrozen(value)) cache.add(value);
-  return false;
-}
-function isNestedFrozen(value) {
-  if (!Object.isFrozen(value)) return false;
-  for (const nestedValue of Object.values(value)) {
-    if (typeof nestedValue !== "object" || nestedValue === null) continue;
-    if (!isNestedFrozen(nestedValue)) return false;
-  }
-  return true;
-}
-function createSerializableStateInvariantMiddleware(options = {}) {
-  if (false) {
-    return () => (next) => (action) => next(action);
-  } else {
-    const {
-      isSerializable = isPlain,
-      getEntries,
-      ignoredActions = [],
-      ignoredActionPaths = ["meta.arg", "meta.baseQueryMeta"],
-      ignoredPaths = [],
-      warnAfter = 32,
-      ignoreState = false,
-      ignoreActions = false,
-      disableCache = false
-    } = options;
-    const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;
-    return (storeAPI) => (next) => (action) => {
-      if (!(0, import_redux.isAction)(action)) {
-        return next(action);
-      }
-      const result = next(action);
-      const measureUtils = getTimeMeasureUtils(warnAfter, "SerializableStateInvariantMiddleware");
-      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {
-        measureUtils.measureTime(() => {
-          const foundActionNonSerializableValue = findNonSerializableValue(action, "", isSerializable, getEntries, ignoredActionPaths, cache);
-          if (foundActionNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundActionNonSerializableValue;
-            console.error(`A non-serializable value was detected in an action, in the path: \`${keyPath}\`. Value:`, value, "\nTake a look at the logic that dispatched this action: ", action, "\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)", "\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)");
-          }
-        });
-      }
-      if (!ignoreState) {
-        measureUtils.measureTime(() => {
-          const state = storeAPI.getState();
-          const foundStateNonSerializableValue = findNonSerializableValue(state, "", isSerializable, getEntries, ignoredPaths, cache);
-          if (foundStateNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundStateNonSerializableValue;
-            console.error(`A non-serializable value was detected in the state, in the path: \`${keyPath}\`. Value:`, value, `
-Take a look at the reducer(s) handling this action type: ${action.type}.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-      }
-      return result;
-    };
-  }
-}
-
-// src/getDefaultMiddleware.ts
-function isBoolean(x) {
-  return typeof x === "boolean";
-}
-var buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {
-  const {
-    thunk = true,
-    immutableCheck = true,
-    serializableCheck = true,
-    actionCreatorCheck = true
-  } = options ?? {};
-  let middlewareArray = new Tuple();
-  if (thunk) {
-    if (isBoolean(thunk)) {
-      middlewareArray.push(import_redux_thunk.thunk);
-    } else {
-      middlewareArray.push((0, import_redux_thunk.withExtraArgument)(thunk.extraArgument));
-    }
-  }
-  if (true) {
-    if (immutableCheck) {
-      let immutableOptions = {};
-      if (!isBoolean(immutableCheck)) {
-        immutableOptions = immutableCheck;
-      }
-      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));
-    }
-    if (serializableCheck) {
-      let serializableOptions = {};
-      if (!isBoolean(serializableCheck)) {
-        serializableOptions = serializableCheck;
-      }
-      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));
-    }
-    if (actionCreatorCheck) {
-      let actionCreatorOptions = {};
-      if (!isBoolean(actionCreatorCheck)) {
-        actionCreatorOptions = actionCreatorCheck;
-      }
-      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));
-    }
-  }
-  return middlewareArray;
-};
-
-// src/autoBatchEnhancer.ts
-var SHOULD_AUTOBATCH = "RTK_autoBatch";
-var prepareAutoBatched = () => (payload) => ({
-  payload,
-  meta: {
-    [SHOULD_AUTOBATCH]: true
-  }
-});
-var createQueueWithTimer = (timeout) => {
-  return (notify) => {
-    setTimeout(notify, timeout);
-  };
-};
-var autoBatchEnhancer = (options = {
-  type: "raf"
-}) => (next) => (...args) => {
-  const store = next(...args);
-  let notifying = true;
-  let shouldNotifyAtEndOfTick = false;
-  let notificationQueued = false;
-  const listeners = /* @__PURE__ */ new Set();
-  const queueCallback = options.type === "tick" ? queueMicrotask : options.type === "raf" ? (
-    // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.
-    typeof window !== "undefined" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10)
-  ) : options.type === "callback" ? options.queueNotification : createQueueWithTimer(options.timeout);
-  const notifyListeners = () => {
-    notificationQueued = false;
-    if (shouldNotifyAtEndOfTick) {
-      shouldNotifyAtEndOfTick = false;
-      listeners.forEach((l) => l());
-    }
-  };
-  return Object.assign({}, store, {
-    // Override the base `store.subscribe` method to keep original listeners
-    // from running if we're delaying notifications
-    subscribe(listener2) {
-      const wrappedListener = () => notifying && listener2();
-      const unsubscribe = store.subscribe(wrappedListener);
-      listeners.add(listener2);
-      return () => {
-        unsubscribe();
-        listeners.delete(listener2);
-      };
-    },
-    // Override the base `store.dispatch` method so that we can check actions
-    // for the `shouldAutoBatch` flag and determine if batching is active
-    dispatch(action) {
-      try {
-        notifying = !action?.meta?.[SHOULD_AUTOBATCH];
-        shouldNotifyAtEndOfTick = !notifying;
-        if (shouldNotifyAtEndOfTick) {
-          if (!notificationQueued) {
-            notificationQueued = true;
-            queueCallback(notifyListeners);
-          }
-        }
-        return store.dispatch(action);
-      } finally {
-        notifying = true;
-      }
-    }
-  });
-};
-
-// src/getDefaultEnhancers.ts
-var buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {
-  const {
-    autoBatch = true
-  } = options ?? {};
-  let enhancerArray = new Tuple(middlewareEnhancer);
-  if (autoBatch) {
-    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === "object" ? autoBatch : void 0));
-  }
-  return enhancerArray;
-};
-
-// src/configureStore.ts
-function configureStore(options) {
-  const getDefaultMiddleware = buildGetDefaultMiddleware();
-  const {
-    reducer = void 0,
-    middleware,
-    devTools = true,
-    duplicateMiddlewareCheck = true,
-    preloadedState = void 0,
-    enhancers = void 0
-  } = options || {};
-  let rootReducer;
-  if (typeof reducer === "function") {
-    rootReducer = reducer;
-  } else if ((0, import_redux.isPlainObject)(reducer)) {
-    rootReducer = (0, import_redux.combineReducers)(reducer);
-  } else {
-    throw new Error(false ? _formatProdErrorMessage(1) : "`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers");
-  }
-  if (middleware && typeof middleware !== "function") {
-    throw new Error(false ? _formatProdErrorMessage2(2) : "`middleware` field must be a callback");
-  }
-  let finalMiddleware;
-  if (typeof middleware === "function") {
-    finalMiddleware = middleware(getDefaultMiddleware);
-    if (!Array.isArray(finalMiddleware)) {
-      throw new Error(false ? _formatProdErrorMessage3(3) : "when using a middleware builder function, an array of middleware must be returned");
-    }
-  } else {
-    finalMiddleware = getDefaultMiddleware();
-  }
-  if (finalMiddleware.some((item) => typeof item !== "function")) {
-    throw new Error(false ? _formatProdErrorMessage4(4) : "each middleware provided to configureStore must be a function");
-  }
-  if (duplicateMiddlewareCheck) {
-    let middlewareReferences = /* @__PURE__ */ new Set();
-    finalMiddleware.forEach((middleware2) => {
-      if (middlewareReferences.has(middleware2)) {
-        throw new Error(false ? _formatProdErrorMessage5(42) : "Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.");
-      }
-      middlewareReferences.add(middleware2);
-    });
-  }
-  let finalCompose = import_redux.compose;
-  if (devTools) {
-    finalCompose = composeWithDevTools({
-      // Enable capture of stack traces for dispatched Redux actions
-      trace: true,
-      ...typeof devTools === "object" && devTools
-    });
-  }
-  const middlewareEnhancer = (0, import_redux.applyMiddleware)(...finalMiddleware);
-  const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);
-  if (enhancers && typeof enhancers !== "function") {
-    throw new Error(false ? _formatProdErrorMessage6(5) : "`enhancers` field must be a callback");
-  }
-  let storeEnhancers = typeof enhancers === "function" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();
-  if (!Array.isArray(storeEnhancers)) {
-    throw new Error(false ? _formatProdErrorMessage7(6) : "`enhancers` callback must return an array");
-  }
-  if (storeEnhancers.some((item) => typeof item !== "function")) {
-    throw new Error(false ? _formatProdErrorMessage8(7) : "each enhancer provided to configureStore must be a function");
-  }
-  if (finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {
-    console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");
-  }
-  const composedEnhancer = finalCompose(...storeEnhancers);
-  return (0, import_redux.createStore)(rootReducer, preloadedState, composedEnhancer);
-}
-
-// src/mapBuilders.ts
-function executeReducerBuilderCallback(builderCallback) {
-  const actionsMap = {};
-  const actionMatchers = [];
-  let defaultCaseReducer;
-  const builder = {
-    addCase(typeOrActionCreator, reducer) {
-      if (true) {
-        if (actionMatchers.length > 0) {
-          throw new Error(false ? _formatProdErrorMessage(26) : "`builder.addCase` should only be called before calling `builder.addMatcher`");
-        }
-        if (defaultCaseReducer) {
-          throw new Error(false ? _formatProdErrorMessage2(27) : "`builder.addCase` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-      if (!type) {
-        throw new Error(false ? _formatProdErrorMessage3(28) : "`builder.addCase` cannot be called with an empty action type");
-      }
-      if (type in actionsMap) {
-        throw new Error(false ? _formatProdErrorMessage4(29) : `\`builder.addCase\` cannot be called with two reducers for the same action type '${type}'`);
-      }
-      actionsMap[type] = reducer;
-      return builder;
-    },
-    addAsyncThunk(asyncThunk, reducers) {
-      if (true) {
-        if (defaultCaseReducer) {
-          throw new Error(false ? _formatProdErrorMessage5(43) : "`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;
-      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;
-      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;
-      if (reducers.settled) actionMatchers.push({
-        matcher: asyncThunk.settled,
-        reducer: reducers.settled
-      });
-      return builder;
-    },
-    addMatcher(matcher, reducer) {
-      if (true) {
-        if (defaultCaseReducer) {
-          throw new Error(false ? _formatProdErrorMessage6(30) : "`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      actionMatchers.push({
-        matcher,
-        reducer
-      });
-      return builder;
-    },
-    addDefaultCase(reducer) {
-      if (true) {
-        if (defaultCaseReducer) {
-          throw new Error(false ? _formatProdErrorMessage7(31) : "`builder.addDefaultCase` can only be called once");
-        }
-      }
-      defaultCaseReducer = reducer;
-      return builder;
-    }
-  };
-  builderCallback(builder);
-  return [actionsMap, actionMatchers, defaultCaseReducer];
-}
-
-// src/createReducer.ts
-function isStateFunction(x) {
-  return typeof x === "function";
-}
-function createReducer(initialState, mapOrBuilderCallback) {
-  if (true) {
-    if (typeof mapOrBuilderCallback === "object") {
-      throw new Error(false ? _formatProdErrorMessage(8) : "The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");
-    }
-  }
-  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);
-  let getInitialState;
-  if (isStateFunction(initialState)) {
-    getInitialState = () => freezeDraftable(initialState());
-  } else {
-    const frozenInitialState = freezeDraftable(initialState);
-    getInitialState = () => frozenInitialState;
-  }
-  function reducer(state = getInitialState(), action) {
-    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({
-      matcher
-    }) => matcher(action)).map(({
-      reducer: reducer2
-    }) => reducer2)];
-    if (caseReducers.filter((cr) => !!cr).length === 0) {
-      caseReducers = [finalDefaultCaseReducer];
-    }
-    return caseReducers.reduce((previousState, caseReducer) => {
-      if (caseReducer) {
-        if ((0, import_immer.isDraft)(previousState)) {
-          const draft = previousState;
-          const result = caseReducer(draft, action);
-          if (result === void 0) {
-            return previousState;
-          }
-          return result;
-        } else if (!(0, import_immer.isDraftable)(previousState)) {
-          const result = caseReducer(previousState, action);
-          if (result === void 0) {
-            if (previousState === null) {
-              return previousState;
-            }
-            throw Error("A case reducer on a non-draftable value must not return undefined");
-          }
-          return result;
-        } else {
-          return (0, import_immer.produce)(previousState, (draft) => {
-            return caseReducer(draft, action);
-          });
-        }
-      }
-      return previousState;
-    }, state);
-  }
-  reducer.getInitialState = getInitialState;
-  return reducer;
-}
-
-// src/matchers.ts
-var matches = (matcher, action) => {
-  if (hasMatchFunction(matcher)) {
-    return matcher.match(action);
-  } else {
-    return matcher(action);
-  }
-};
-function isAnyOf(...matchers) {
-  return (action) => {
-    return matchers.some((matcher) => matches(matcher, action));
-  };
-}
-function isAllOf(...matchers) {
-  return (action) => {
-    return matchers.every((matcher) => matches(matcher, action));
-  };
-}
-function hasExpectedRequestMetadata(action, validStatus) {
-  if (!action || !action.meta) return false;
-  const hasValidRequestId = typeof action.meta.requestId === "string";
-  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;
-  return hasValidRequestId && hasValidRequestStatus;
-}
-function isAsyncThunkArray(a) {
-  return typeof a[0] === "function" && "pending" in a[0] && "fulfilled" in a[0] && "rejected" in a[0];
-}
-function isPending(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isPending()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));
-}
-function isRejected(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejected()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));
-}
-function isRejectedWithValue(...asyncThunks) {
-  const hasFlag = (action) => {
-    return action && action.meta && action.meta.rejectedWithValue;
-  };
-  if (asyncThunks.length === 0) {
-    return isAllOf(isRejected(...asyncThunks), hasFlag);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejectedWithValue()(asyncThunks[0]);
-  }
-  return isAllOf(isRejected(...asyncThunks), hasFlag);
-}
-function isFulfilled(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["fulfilled"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isFulfilled()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));
-}
-function isAsyncThunkAction(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending", "fulfilled", "rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isAsyncThunkAction()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));
-}
-
-// src/nanoid.ts
-var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW";
-var nanoid = (size = 21) => {
-  let id = "";
-  let i = size;
-  while (i--) {
-    id += urlAlphabet[Math.random() * 64 | 0];
-  }
-  return id;
-};
-
-// src/createAsyncThunk.ts
-var commonProperties = ["name", "message", "stack", "code"];
-var RejectWithValue = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-  }
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  _type;
-};
-var FulfillWithMeta = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-  }
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  _type;
-};
-var miniSerializeError = (value) => {
-  if (typeof value === "object" && value !== null) {
-    const simpleError = {};
-    for (const property of commonProperties) {
-      if (typeof value[property] === "string") {
-        simpleError[property] = value[property];
-      }
-    }
-    return simpleError;
-  }
-  return {
-    message: String(value)
-  };
-};
-var externalAbortMessage = "External signal was aborted";
-var createAsyncThunk = /* @__PURE__ */ (() => {
-  function createAsyncThunk2(typePrefix, payloadCreator, options) {
-    const fulfilled = createAction(typePrefix + "/fulfilled", (payload, requestId, arg, meta) => ({
-      payload,
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        requestStatus: "fulfilled"
-      }
-    }));
-    const pending = createAction(typePrefix + "/pending", (requestId, arg, meta) => ({
-      payload: void 0,
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        requestStatus: "pending"
-      }
-    }));
-    const rejected = createAction(typePrefix + "/rejected", (error, requestId, arg, payload, meta) => ({
-      payload,
-      error: (options && options.serializeError || miniSerializeError)(error || "Rejected"),
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        rejectedWithValue: !!payload,
-        requestStatus: "rejected",
-        aborted: error?.name === "AbortError",
-        condition: error?.name === "ConditionError"
-      }
-    }));
-    function actionCreator(arg, {
-      signal
-    } = {}) {
-      return (dispatch, getState, extra) => {
-        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();
-        const abortController = new AbortController();
-        let abortHandler;
-        let abortReason;
-        function abort(reason) {
-          abortReason = reason;
-          abortController.abort();
-        }
-        if (signal) {
-          if (signal.aborted) {
-            abort(externalAbortMessage);
-          } else {
-            signal.addEventListener("abort", () => abort(externalAbortMessage), {
-              once: true
-            });
-          }
-        }
-        const promise = async function() {
-          let finalAction;
-          try {
-            let conditionResult = options?.condition?.(arg, {
-              getState,
-              extra
-            });
-            if (isThenable(conditionResult)) {
-              conditionResult = await conditionResult;
-            }
-            if (conditionResult === false || abortController.signal.aborted) {
-              throw {
-                name: "ConditionError",
-                message: "Aborted due to condition callback returning false."
-              };
-            }
-            const abortedPromise = new Promise((_, reject) => {
-              abortHandler = () => {
-                reject({
-                  name: "AbortError",
-                  message: abortReason || "Aborted"
-                });
-              };
-              abortController.signal.addEventListener("abort", abortHandler, {
-                once: true
-              });
-            });
-            dispatch(pending(requestId, arg, options?.getPendingMeta?.({
-              requestId,
-              arg
-            }, {
-              getState,
-              extra
-            })));
-            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {
-              dispatch,
-              getState,
-              extra,
-              requestId,
-              signal: abortController.signal,
-              abort,
-              rejectWithValue: (value, meta) => {
-                return new RejectWithValue(value, meta);
-              },
-              fulfillWithValue: (value, meta) => {
-                return new FulfillWithMeta(value, meta);
-              }
-            })).then((result) => {
-              if (result instanceof RejectWithValue) {
-                throw result;
-              }
-              if (result instanceof FulfillWithMeta) {
-                return fulfilled(result.payload, requestId, arg, result.meta);
-              }
-              return fulfilled(result, requestId, arg);
-            })]);
-          } catch (err) {
-            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);
-          } finally {
-            if (abortHandler) {
-              abortController.signal.removeEventListener("abort", abortHandler);
-            }
-          }
-          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;
-          if (!skipDispatch) {
-            dispatch(finalAction);
-          }
-          return finalAction;
-        }();
-        return Object.assign(promise, {
-          abort,
-          requestId,
-          arg,
-          unwrap() {
-            return promise.then(unwrapResult);
-          }
-        });
-      };
-    }
-    return Object.assign(actionCreator, {
-      pending,
-      rejected,
-      fulfilled,
-      settled: isAnyOf(rejected, fulfilled),
-      typePrefix
-    });
-  }
-  createAsyncThunk2.withTypes = () => createAsyncThunk2;
-  return createAsyncThunk2;
-})();
-function unwrapResult(action) {
-  if (action.meta && action.meta.rejectedWithValue) {
-    throw action.payload;
-  }
-  if (action.error) {
-    throw action.error;
-  }
-  return action.payload;
-}
-function isThenable(value) {
-  return value !== null && typeof value === "object" && typeof value.then === "function";
-}
-
-// src/createSlice.ts
-var asyncThunkSymbol = /* @__PURE__ */ Symbol.for("rtk-slice-createasyncthunk");
-var asyncThunkCreator = {
-  [asyncThunkSymbol]: createAsyncThunk
-};
-var ReducerType = /* @__PURE__ */ ((ReducerType2) => {
-  ReducerType2["reducer"] = "reducer";
-  ReducerType2["reducerWithPrepare"] = "reducerWithPrepare";
-  ReducerType2["asyncThunk"] = "asyncThunk";
-  return ReducerType2;
-})(ReducerType || {});
-function getType(slice, actionKey) {
-  return `${slice}/${actionKey}`;
-}
-function buildCreateSlice({
-  creators
-} = {}) {
-  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];
-  return function createSlice2(options) {
-    const {
-      name,
-      reducerPath = name
-    } = options;
-    if (!name) {
-      throw new Error(false ? _formatProdErrorMessage(11) : "`name` is a required option for createSlice");
-    }
-    if (typeof process !== "undefined" && true) {
-      if (options.initialState === void 0) {
-        console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");
-      }
-    }
-    const reducers = (typeof options.reducers === "function" ? options.reducers(buildReducerCreators()) : options.reducers) || {};
-    const reducerNames = Object.keys(reducers);
-    const context = {
-      sliceCaseReducersByName: {},
-      sliceCaseReducersByType: {},
-      actionCreators: {},
-      sliceMatchers: []
-    };
-    const contextMethods = {
-      addCase(typeOrActionCreator, reducer2) {
-        const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-        if (!type) {
-          throw new Error(false ? _formatProdErrorMessage2(12) : "`context.addCase` cannot be called with an empty action type");
-        }
-        if (type in context.sliceCaseReducersByType) {
-          throw new Error(false ? _formatProdErrorMessage3(13) : "`context.addCase` cannot be called with two reducers for the same action type: " + type);
-        }
-        context.sliceCaseReducersByType[type] = reducer2;
-        return contextMethods;
-      },
-      addMatcher(matcher, reducer2) {
-        context.sliceMatchers.push({
-          matcher,
-          reducer: reducer2
-        });
-        return contextMethods;
-      },
-      exposeAction(name2, actionCreator) {
-        context.actionCreators[name2] = actionCreator;
-        return contextMethods;
-      },
-      exposeCaseReducer(name2, reducer2) {
-        context.sliceCaseReducersByName[name2] = reducer2;
-        return contextMethods;
-      }
-    };
-    reducerNames.forEach((reducerName) => {
-      const reducerDefinition = reducers[reducerName];
-      const reducerDetails = {
-        reducerName,
-        type: getType(name, reducerName),
-        createNotation: typeof options.reducers === "function"
-      };
-      if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {
-        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);
-      } else {
-        handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);
-      }
-    });
-    function buildReducer() {
-      if (true) {
-        if (typeof options.extraReducers === "object") {
-          throw new Error(false ? _formatProdErrorMessage4(14) : "The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");
-        }
-      }
-      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];
-      const finalCaseReducers = {
-        ...extraReducers,
-        ...context.sliceCaseReducersByType
-      };
-      return createReducer(options.initialState, (builder) => {
-        for (let key in finalCaseReducers) {
-          builder.addCase(key, finalCaseReducers[key]);
-        }
-        for (let sM of context.sliceMatchers) {
-          builder.addMatcher(sM.matcher, sM.reducer);
-        }
-        for (let m of actionMatchers) {
-          builder.addMatcher(m.matcher, m.reducer);
-        }
-        if (defaultCaseReducer) {
-          builder.addDefaultCase(defaultCaseReducer);
-        }
-      });
-    }
-    const selectSelf = (state) => state;
-    const injectedSelectorCache = /* @__PURE__ */ new Map();
-    const injectedStateCache = /* @__PURE__ */ new WeakMap();
-    let _reducer;
-    function reducer(state, action) {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer(state, action);
-    }
-    function getInitialState() {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer.getInitialState();
-    }
-    function makeSelectorProps(reducerPath2, injected = false) {
-      function selectSlice(state) {
-        let sliceState = state[reducerPath2];
-        if (typeof sliceState === "undefined") {
-          if (injected) {
-            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);
-          } else if (true) {
-            throw new Error(false ? _formatProdErrorMessage5(15) : "selectSlice returned undefined for an uninjected slice reducer");
-          }
-        }
-        return sliceState;
-      }
-      function getSelectors(selectState = selectSelf) {
-        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());
-        return getOrInsertComputed(selectorCache, selectState, () => {
-          const map = {};
-          for (const [name2, selector] of Object.entries(options.selectors ?? {})) {
-            map[name2] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);
-          }
-          return map;
-        });
-      }
-      return {
-        reducerPath: reducerPath2,
-        getSelectors,
-        get selectors() {
-          return getSelectors(selectSlice);
-        },
-        selectSlice
-      };
-    }
-    const slice = {
-      name,
-      reducer,
-      actions: context.actionCreators,
-      caseReducers: context.sliceCaseReducersByName,
-      getInitialState,
-      ...makeSelectorProps(reducerPath),
-      injectInto(injectable, {
-        reducerPath: pathOpt,
-        ...config
-      } = {}) {
-        const newReducerPath = pathOpt ?? reducerPath;
-        injectable.inject({
-          reducerPath: newReducerPath,
-          reducer
-        }, config);
-        return {
-          ...slice,
-          ...makeSelectorProps(newReducerPath, true)
-        };
-      }
-    };
-    return slice;
-  };
-}
-function wrapSelector(selector, selectState, getInitialState, injected) {
-  function wrapper(rootState, ...args) {
-    let sliceState = selectState(rootState);
-    if (typeof sliceState === "undefined") {
-      if (injected) {
-        sliceState = getInitialState();
-      } else if (true) {
-        throw new Error(false ? _formatProdErrorMessage6(16) : "selectState returned undefined for an uninjected slice reducer");
-      }
-    }
-    return selector(sliceState, ...args);
-  }
-  wrapper.unwrapped = selector;
-  return wrapper;
-}
-var createSlice = /* @__PURE__ */ buildCreateSlice();
-function buildReducerCreators() {
-  function asyncThunk(payloadCreator, config) {
-    return {
-      _reducerDefinitionType: "asyncThunk" /* asyncThunk */,
-      payloadCreator,
-      ...config
-    };
-  }
-  asyncThunk.withTypes = () => asyncThunk;
-  return {
-    reducer(caseReducer) {
-      return Object.assign({
-        // hack so the wrapping function has the same name as the original
-        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original
-        [caseReducer.name](...args) {
-          return caseReducer(...args);
-        }
-      }[caseReducer.name], {
-        _reducerDefinitionType: "reducer" /* reducer */
-      });
-    },
-    preparedReducer(prepare, reducer) {
-      return {
-        _reducerDefinitionType: "reducerWithPrepare" /* reducerWithPrepare */,
-        prepare,
-        reducer
-      };
-    },
-    asyncThunk
-  };
-}
-function handleNormalReducerDefinition({
-  type,
-  reducerName,
-  createNotation
-}, maybeReducerWithPrepare, context) {
-  let caseReducer;
-  let prepareCallback;
-  if ("reducer" in maybeReducerWithPrepare) {
-    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {
-      throw new Error(false ? _formatProdErrorMessage7(17) : "Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.");
-    }
-    caseReducer = maybeReducerWithPrepare.reducer;
-    prepareCallback = maybeReducerWithPrepare.prepare;
-  } else {
-    caseReducer = maybeReducerWithPrepare;
-  }
-  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));
-}
-function isAsyncThunkSliceReducerDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "asyncThunk" /* asyncThunk */;
-}
-function isCaseReducerWithPrepareDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "reducerWithPrepare" /* reducerWithPrepare */;
-}
-function handleThunkCaseReducerDefinition({
-  type,
-  reducerName
-}, reducerDefinition, context, cAT) {
-  if (!cAT) {
-    throw new Error(false ? _formatProdErrorMessage8(18) : "Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.");
-  }
-  const {
-    payloadCreator,
-    fulfilled,
-    pending,
-    rejected,
-    settled,
-    options
-  } = reducerDefinition;
-  const thunk = cAT(type, payloadCreator, options);
-  context.exposeAction(reducerName, thunk);
-  if (fulfilled) {
-    context.addCase(thunk.fulfilled, fulfilled);
-  }
-  if (pending) {
-    context.addCase(thunk.pending, pending);
-  }
-  if (rejected) {
-    context.addCase(thunk.rejected, rejected);
-  }
-  if (settled) {
-    context.addMatcher(thunk.settled, settled);
-  }
-  context.exposeCaseReducer(reducerName, {
-    fulfilled: fulfilled || noop,
-    pending: pending || noop,
-    rejected: rejected || noop,
-    settled: settled || noop
-  });
-}
-function noop() {
-}
-
-// src/entities/entity_state.ts
-function getInitialEntityState() {
-  return {
-    ids: [],
-    entities: {}
-  };
-}
-function createInitialStateFactory(stateAdapter) {
-  function getInitialState(additionalState = {}, entities) {
-    const state = Object.assign(getInitialEntityState(), additionalState);
-    return entities ? stateAdapter.setAll(state, entities) : state;
-  }
-  return {
-    getInitialState
-  };
-}
-
-// src/entities/state_selectors.ts
-function createSelectorsFactory() {
-  function getSelectors(selectState, options = {}) {
-    const {
-      createSelector: createSelector2 = createDraftSafeSelector
-    } = options;
-    const selectIds = (state) => state.ids;
-    const selectEntities = (state) => state.entities;
-    const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
-    const selectId = (_, id) => id;
-    const selectById = (entities, id) => entities[id];
-    const selectTotal = createSelector2(selectIds, (ids) => ids.length);
-    if (!selectState) {
-      return {
-        selectIds,
-        selectEntities,
-        selectAll,
-        selectTotal,
-        selectById: createSelector2(selectEntities, selectId, selectById)
-      };
-    }
-    const selectGlobalizedEntities = createSelector2(selectState, selectEntities);
-    return {
-      selectIds: createSelector2(selectState, selectIds),
-      selectEntities: selectGlobalizedEntities,
-      selectAll: createSelector2(selectState, selectAll),
-      selectTotal: createSelector2(selectState, selectTotal),
-      selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)
-    };
-  }
-  return {
-    getSelectors
-  };
-}
-
-// src/entities/state_adapter.ts
-var isDraftTyped = import_immer.isDraft;
-function createSingleArgumentStateOperator(mutator) {
-  const operator = createStateOperator((_, state) => mutator(state));
-  return function operation(state) {
-    return operator(state, void 0);
-  };
-}
-function createStateOperator(mutator) {
-  return function operation(state, arg) {
-    function isPayloadActionArgument(arg2) {
-      return isFSA(arg2);
-    }
-    const runMutator = (draft) => {
-      if (isPayloadActionArgument(arg)) {
-        mutator(arg.payload, draft);
-      } else {
-        mutator(arg, draft);
-      }
-    };
-    if (isDraftTyped(state)) {
-      runMutator(state);
-      return state;
-    }
-    return (0, import_immer.produce)(state, runMutator);
-  };
-}
-
-// src/entities/utils.ts
-function selectIdValue(entity, selectId) {
-  const key = selectId(entity);
-  if (key === void 0) {
-    console.warn("The entity passed to the `selectId` implementation returned undefined.", "You should probably provide your own `selectId` implementation.", "The entity that was passed:", entity, "The `selectId` implementation:", selectId.toString());
-  }
-  return key;
-}
-function ensureEntitiesArray(entities) {
-  if (!Array.isArray(entities)) {
-    entities = Object.values(entities);
-  }
-  return entities;
-}
-function getCurrent(value) {
-  return (0, import_immer.isDraft)(value) ? (0, import_immer.current)(value) : value;
-}
-function splitAddedUpdatedEntities(newEntities, selectId, state) {
-  newEntities = ensureEntitiesArray(newEntities);
-  const existingIdsArray = getCurrent(state.ids);
-  const existingIds = new Set(existingIdsArray);
-  const added = [];
-  const addedIds = /* @__PURE__ */ new Set([]);
-  const updated = [];
-  for (const entity of newEntities) {
-    const id = selectIdValue(entity, selectId);
-    if (existingIds.has(id) || addedIds.has(id)) {
-      updated.push({
-        id,
-        changes: entity
-      });
-    } else {
-      addedIds.add(id);
-      added.push(entity);
-    }
-  }
-  return [added, updated, existingIdsArray];
-}
-
-// src/entities/unsorted_state_adapter.ts
-function createUnsortedStateAdapter(selectId) {
-  function addOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (key in state.entities) {
-      return;
-    }
-    state.ids.push(key);
-    state.entities[key] = entity;
-  }
-  function addManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      addOneMutably(entity, state);
-    }
-  }
-  function setOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (!(key in state.entities)) {
-      state.ids.push(key);
-    }
-    ;
-    state.entities[key] = entity;
-  }
-  function setManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      setOneMutably(entity, state);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.ids = [];
-    state.entities = {};
-    addManyMutably(newEntities, state);
-  }
-  function removeOneMutably(key, state) {
-    return removeManyMutably([key], state);
-  }
-  function removeManyMutably(keys, state) {
-    let didMutate = false;
-    keys.forEach((key) => {
-      if (key in state.entities) {
-        delete state.entities[key];
-        didMutate = true;
-      }
-    });
-    if (didMutate) {
-      state.ids = state.ids.filter((id) => id in state.entities);
-    }
-  }
-  function removeAllMutably(state) {
-    Object.assign(state, {
-      ids: [],
-      entities: {}
-    });
-  }
-  function takeNewKey(keys, update, state) {
-    const original3 = state.entities[update.id];
-    if (original3 === void 0) {
-      return false;
-    }
-    const updated = Object.assign({}, original3, update.changes);
-    const newKey = selectIdValue(updated, selectId);
-    const hasNewKey = newKey !== update.id;
-    if (hasNewKey) {
-      keys[update.id] = newKey;
-      delete state.entities[update.id];
-    }
-    ;
-    state.entities[newKey] = updated;
-    return hasNewKey;
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    const newKeys = {};
-    const updatesPerEntity = {};
-    updates.forEach((update) => {
-      if (update.id in state.entities) {
-        updatesPerEntity[update.id] = {
-          id: update.id,
-          // Spreads ignore falsy values, so this works even if there isn't
-          // an existing update already at this key
-          changes: {
-            ...updatesPerEntity[update.id]?.changes,
-            ...update.changes
-          }
-        };
-      }
-    });
-    updates = Object.values(updatesPerEntity);
-    const didMutateEntities = updates.length > 0;
-    if (didMutateEntities) {
-      const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;
-      if (didMutateIds) {
-        state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));
-      }
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    addManyMutably(added, state);
-    updateManyMutably(updated, state);
-  }
-  return {
-    removeAll: createSingleArgumentStateOperator(removeAllMutably),
-    addOne: createStateOperator(addOneMutably),
-    addMany: createStateOperator(addManyMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    upsertMany: createStateOperator(upsertManyMutably),
-    removeOne: createStateOperator(removeOneMutably),
-    removeMany: createStateOperator(removeManyMutably)
-  };
-}
-
-// src/entities/sorted_state_adapter.ts
-function findInsertIndex(sortedItems, item, comparisonFunction) {
-  let lowIndex = 0;
-  let highIndex = sortedItems.length;
-  while (lowIndex < highIndex) {
-    let middleIndex = lowIndex + highIndex >>> 1;
-    const currentItem = sortedItems[middleIndex];
-    const res = comparisonFunction(item, currentItem);
-    if (res >= 0) {
-      lowIndex = middleIndex + 1;
-    } else {
-      highIndex = middleIndex;
-    }
-  }
-  return lowIndex;
-}
-function insert(sortedItems, item, comparisonFunction) {
-  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);
-  sortedItems.splice(insertAtIndex, 0, item);
-  return sortedItems;
-}
-function createSortedStateAdapter(selectId, comparer) {
-  const {
-    removeOne,
-    removeMany,
-    removeAll
-  } = createUnsortedStateAdapter(selectId);
-  function addOneMutably(entity, state) {
-    return addManyMutably([entity], state);
-  }
-  function addManyMutably(newEntities, state, existingIds) {
-    newEntities = ensureEntitiesArray(newEntities);
-    const existingKeys = new Set(existingIds ?? getCurrent(state.ids));
-    const addedKeys = /* @__PURE__ */ new Set();
-    const models = newEntities.filter((model) => {
-      const modelId = selectIdValue(model, selectId);
-      const notAdded = !addedKeys.has(modelId);
-      if (notAdded) addedKeys.add(modelId);
-      return !existingKeys.has(modelId) && notAdded;
-    });
-    if (models.length !== 0) {
-      mergeFunction(state, models);
-    }
-  }
-  function setOneMutably(entity, state) {
-    return setManyMutably([entity], state);
-  }
-  function setManyMutably(newEntities, state) {
-    let deduplicatedEntities = {};
-    newEntities = ensureEntitiesArray(newEntities);
-    if (newEntities.length !== 0) {
-      for (const item of newEntities) {
-        const entityId = selectId(item);
-        deduplicatedEntities[entityId] = item;
-        delete state.entities[entityId];
-      }
-      newEntities = ensureEntitiesArray(deduplicatedEntities);
-      mergeFunction(state, newEntities);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.entities = {};
-    state.ids = [];
-    addManyMutably(newEntities, state, []);
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    let appliedUpdates = false;
-    let replacedIds = false;
-    for (let update of updates) {
-      const entity = state.entities[update.id];
-      if (!entity) {
-        continue;
-      }
-      appliedUpdates = true;
-      Object.assign(entity, update.changes);
-      const newId = selectId(entity);
-      if (update.id !== newId) {
-        replacedIds = true;
-        delete state.entities[update.id];
-        const oldIndex = state.ids.indexOf(update.id);
-        state.ids[oldIndex] = newId;
-        state.entities[newId] = entity;
-      }
-    }
-    if (appliedUpdates) {
-      mergeFunction(state, [], appliedUpdates, replacedIds);
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    if (added.length) {
-      addManyMutably(added, state, existingIdsArray);
-    }
-    if (updated.length) {
-      updateManyMutably(updated, state);
-    }
-  }
-  function areArraysEqual(a, b) {
-    if (a.length !== b.length) {
-      return false;
-    }
-    for (let i = 0; i < a.length; i++) {
-      if (a[i] === b[i]) {
-        continue;
-      }
-      return false;
-    }
-    return true;
-  }
-  const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {
-    const currentEntities = getCurrent(state.entities);
-    const currentIds = getCurrent(state.ids);
-    const stateEntities = state.entities;
-    let ids = currentIds;
-    if (replacedIds) {
-      ids = new Set(currentIds);
-    }
-    let sortedEntities = [];
-    for (const id of ids) {
-      const entity = currentEntities[id];
-      if (entity) {
-        sortedEntities.push(entity);
-      }
-    }
-    const wasPreviouslyEmpty = sortedEntities.length === 0;
-    for (const item of addedItems) {
-      stateEntities[selectId(item)] = item;
-      if (!wasPreviouslyEmpty) {
-        insert(sortedEntities, item, comparer);
-      }
-    }
-    if (wasPreviouslyEmpty) {
-      sortedEntities = addedItems.slice().sort(comparer);
-    } else if (appliedUpdates) {
-      sortedEntities.sort(comparer);
-    }
-    const newSortedIds = sortedEntities.map(selectId);
-    if (!areArraysEqual(currentIds, newSortedIds)) {
-      state.ids = newSortedIds;
-    }
-  };
-  return {
-    removeOne,
-    removeMany,
-    removeAll,
-    addOne: createStateOperator(addOneMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    addMany: createStateOperator(addManyMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertMany: createStateOperator(upsertManyMutably)
-  };
-}
-
-// src/entities/create_adapter.ts
-function createEntityAdapter(options = {}) {
-  const {
-    selectId,
-    sortComparer
-  } = {
-    sortComparer: false,
-    selectId: (instance) => instance.id,
-    ...options
-  };
-  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);
-  const stateFactory = createInitialStateFactory(stateAdapter);
-  const selectorsFactory = createSelectorsFactory();
-  return {
-    selectId,
-    sortComparer,
-    ...stateFactory,
-    ...selectorsFactory,
-    ...stateAdapter
-  };
-}
-
-// src/listenerMiddleware/exceptions.ts
-var task = "task";
-var listener = "listener";
-var completed = "completed";
-var cancelled = "cancelled";
-var taskCancelled = `task-${cancelled}`;
-var taskCompleted = `task-${completed}`;
-var listenerCancelled = `${listener}-${cancelled}`;
-var listenerCompleted = `${listener}-${completed}`;
-var TaskAbortError = class {
-  constructor(code) {
-    this.code = code;
-    this.message = `${task} ${cancelled} (reason: ${code})`;
-  }
-  name = "TaskAbortError";
-  message;
-};
-
-// src/listenerMiddleware/utils.ts
-var assertFunction = (func, expected) => {
-  if (typeof func !== "function") {
-    throw new TypeError(false ? _formatProdErrorMessage(32) : `${expected} is not a function`);
-  }
-};
-var noop2 = () => {
-};
-var catchRejection = (promise, onError = noop2) => {
-  promise.catch(onError);
-  return promise;
-};
-var addAbortSignalListener = (abortSignal, callback) => {
-  abortSignal.addEventListener("abort", callback, {
-    once: true
-  });
-  return () => abortSignal.removeEventListener("abort", callback);
-};
-
-// src/listenerMiddleware/task.ts
-var validateActive = (signal) => {
-  if (signal.aborted) {
-    throw new TaskAbortError(signal.reason);
-  }
-};
-function raceWithSignal(signal, promise) {
-  let cleanup = noop2;
-  return new Promise((resolve, reject) => {
-    const notifyRejection = () => reject(new TaskAbortError(signal.reason));
-    if (signal.aborted) {
-      notifyRejection();
-      return;
-    }
-    cleanup = addAbortSignalListener(signal, notifyRejection);
-    promise.finally(() => cleanup()).then(resolve, reject);
-  }).finally(() => {
-    cleanup = noop2;
-  });
-}
-var runTask = async (task2, cleanUp) => {
-  try {
-    await Promise.resolve();
-    const value = await task2();
-    return {
-      status: "ok",
-      value
-    };
-  } catch (error) {
-    return {
-      status: error instanceof TaskAbortError ? "cancelled" : "rejected",
-      error
-    };
-  } finally {
-    cleanUp?.();
-  }
-};
-var createPause = (signal) => {
-  return (promise) => {
-    return catchRejection(raceWithSignal(signal, promise).then((output) => {
-      validateActive(signal);
-      return output;
-    }));
-  };
-};
-var createDelay = (signal) => {
-  const pause = createPause(signal);
-  return (timeoutMs) => {
-    return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));
-  };
-};
-
-// src/listenerMiddleware/index.ts
-var {
-  assign
-} = Object;
-var INTERNAL_NIL_TOKEN = {};
-var alm = "listenerMiddleware";
-var createFork = (parentAbortSignal, parentBlockingPromises) => {
-  const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));
-  return (taskExecutor, opts) => {
-    assertFunction(taskExecutor, "taskExecutor");
-    const childAbortController = new AbortController();
-    linkControllers(childAbortController);
-    const result = runTask(async () => {
-      validateActive(parentAbortSignal);
-      validateActive(childAbortController.signal);
-      const result2 = await taskExecutor({
-        pause: createPause(childAbortController.signal),
-        delay: createDelay(childAbortController.signal),
-        signal: childAbortController.signal
-      });
-      validateActive(childAbortController.signal);
-      return result2;
-    }, () => childAbortController.abort(taskCompleted));
-    if (opts?.autoJoin) {
-      parentBlockingPromises.push(result.catch(noop2));
-    }
-    return {
-      result: createPause(parentAbortSignal)(result),
-      cancel() {
-        childAbortController.abort(taskCancelled);
-      }
-    };
-  };
-};
-var createTakePattern = (startListening, signal) => {
-  const take = async (predicate, timeout) => {
-    validateActive(signal);
-    let unsubscribe = () => {
-    };
-    const tuplePromise = new Promise((resolve, reject) => {
-      let stopListening = startListening({
-        predicate,
-        effect: (action, listenerApi) => {
-          listenerApi.unsubscribe();
-          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);
-        }
-      });
-      unsubscribe = () => {
-        stopListening();
-        reject();
-      };
-    });
-    const promises = [tuplePromise];
-    if (timeout != null) {
-      promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));
-    }
-    try {
-      const output = await raceWithSignal(signal, Promise.race(promises));
-      validateActive(signal);
-      return output;
-    } finally {
-      unsubscribe();
-    }
-  };
-  return (predicate, timeout) => catchRejection(take(predicate, timeout));
-};
-var getListenerEntryPropsFrom = (options) => {
-  let {
-    type,
-    actionCreator,
-    matcher,
-    predicate,
-    effect
-  } = options;
-  if (type) {
-    predicate = createAction(type).match;
-  } else if (actionCreator) {
-    type = actionCreator.type;
-    predicate = actionCreator.match;
-  } else if (matcher) {
-    predicate = matcher;
-  } else if (predicate) {
-  } else {
-    throw new Error(false ? _formatProdErrorMessage(21) : "Creating or removing a listener requires one of the known fields for matching an action");
-  }
-  assertFunction(effect, "options.listener");
-  return {
-    predicate,
-    type,
-    effect
-  };
-};
-var createListenerEntry = /* @__PURE__ */ assign((options) => {
-  const {
-    type,
-    predicate,
-    effect
-  } = getListenerEntryPropsFrom(options);
-  const entry = {
-    id: nanoid(),
-    effect,
-    type,
-    predicate,
-    pending: /* @__PURE__ */ new Set(),
-    unsubscribe: () => {
-      throw new Error(false ? _formatProdErrorMessage2(22) : "Unsubscribe not initialized");
-    }
-  };
-  return entry;
-}, {
-  withTypes: () => createListenerEntry
-});
-var findListenerEntry = (listenerMap, options) => {
-  const {
-    type,
-    effect,
-    predicate
-  } = getListenerEntryPropsFrom(options);
-  return Array.from(listenerMap.values()).find((entry) => {
-    const matchPredicateOrType = typeof type === "string" ? entry.type === type : entry.predicate === predicate;
-    return matchPredicateOrType && entry.effect === effect;
-  });
-};
-var cancelActiveListeners = (entry) => {
-  entry.pending.forEach((controller) => {
-    controller.abort(listenerCancelled);
-  });
-};
-var createClearListenerMiddleware = (listenerMap, executingListeners) => {
-  return () => {
-    for (const listener2 of executingListeners.keys()) {
-      cancelActiveListeners(listener2);
-    }
-    listenerMap.clear();
-  };
-};
-var safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {
-  try {
-    errorHandler(errorToNotify, errorInfo);
-  } catch (errorHandlerError) {
-    setTimeout(() => {
-      throw errorHandlerError;
-    }, 0);
-  }
-};
-var addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {
-  withTypes: () => addListener
-});
-var clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);
-var removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {
-  withTypes: () => removeListener
-});
-var defaultErrorHandler = (...args) => {
-  console.error(`${alm}/error`, ...args);
-};
-var createListenerMiddleware = (middlewareOptions = {}) => {
-  const listenerMap = /* @__PURE__ */ new Map();
-  const executingListeners = /* @__PURE__ */ new Map();
-  const trackExecutingListener = (entry) => {
-    const count = executingListeners.get(entry) ?? 0;
-    executingListeners.set(entry, count + 1);
-  };
-  const untrackExecutingListener = (entry) => {
-    const count = executingListeners.get(entry) ?? 1;
-    if (count === 1) {
-      executingListeners.delete(entry);
-    } else {
-      executingListeners.set(entry, count - 1);
-    }
-  };
-  const {
-    extra,
-    onError = defaultErrorHandler
-  } = middlewareOptions;
-  assertFunction(onError, "onError");
-  const insertEntry = (entry) => {
-    entry.unsubscribe = () => listenerMap.delete(entry.id);
-    listenerMap.set(entry.id, entry);
-    return (cancelOptions) => {
-      entry.unsubscribe();
-      if (cancelOptions?.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    };
-  };
-  const startListening = (options) => {
-    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options);
-    return insertEntry(entry);
-  };
-  assign(startListening, {
-    withTypes: () => startListening
-  });
-  const stopListening = (options) => {
-    const entry = findListenerEntry(listenerMap, options);
-    if (entry) {
-      entry.unsubscribe();
-      if (options.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    }
-    return !!entry;
-  };
-  assign(stopListening, {
-    withTypes: () => stopListening
-  });
-  const notifyListener = async (entry, action, api, getOriginalState) => {
-    const internalTaskController = new AbortController();
-    const take = createTakePattern(startListening, internalTaskController.signal);
-    const autoJoinPromises = [];
-    try {
-      entry.pending.add(internalTaskController);
-      trackExecutingListener(entry);
-      await Promise.resolve(entry.effect(
-        action,
-        // Use assign() rather than ... to avoid extra helper functions added to bundle
-        assign({}, api, {
-          getOriginalState,
-          condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),
-          take,
-          delay: createDelay(internalTaskController.signal),
-          pause: createPause(internalTaskController.signal),
-          extra,
-          signal: internalTaskController.signal,
-          fork: createFork(internalTaskController.signal, autoJoinPromises),
-          unsubscribe: entry.unsubscribe,
-          subscribe: () => {
-            listenerMap.set(entry.id, entry);
-          },
-          cancelActiveListeners: () => {
-            entry.pending.forEach((controller, _, set) => {
-              if (controller !== internalTaskController) {
-                controller.abort(listenerCancelled);
-                set.delete(controller);
-              }
-            });
-          },
-          cancel: () => {
-            internalTaskController.abort(listenerCancelled);
-            entry.pending.delete(internalTaskController);
-          },
-          throwIfCancelled: () => {
-            validateActive(internalTaskController.signal);
-          }
-        })
-      ));
-    } catch (listenerError) {
-      if (!(listenerError instanceof TaskAbortError)) {
-        safelyNotifyError(onError, listenerError, {
-          raisedBy: "effect"
-        });
-      }
-    } finally {
-      await Promise.all(autoJoinPromises);
-      internalTaskController.abort(listenerCompleted);
-      untrackExecutingListener(entry);
-      entry.pending.delete(internalTaskController);
-    }
-  };
-  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);
-  const middleware = (api) => (next) => (action) => {
-    if (!(0, import_redux.isAction)(action)) {
-      return next(action);
-    }
-    if (addListener.match(action)) {
-      return startListening(action.payload);
-    }
-    if (clearAllListeners.match(action)) {
-      clearListenerMiddleware();
-      return;
-    }
-    if (removeListener.match(action)) {
-      return stopListening(action.payload);
-    }
-    let originalState = api.getState();
-    const getOriginalState = () => {
-      if (originalState === INTERNAL_NIL_TOKEN) {
-        throw new Error(false ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);
-      }
-      return originalState;
-    };
-    let result;
-    try {
-      result = next(action);
-      if (listenerMap.size > 0) {
-        const currentState = api.getState();
-        const listenerEntries = Array.from(listenerMap.values());
-        for (const entry of listenerEntries) {
-          let runListener = false;
-          try {
-            runListener = entry.predicate(action, currentState, originalState);
-          } catch (predicateError) {
-            runListener = false;
-            safelyNotifyError(onError, predicateError, {
-              raisedBy: "predicate"
-            });
-          }
-          if (!runListener) {
-            continue;
-          }
-          notifyListener(entry, action, api, getOriginalState);
-        }
-      }
-    } finally {
-      originalState = INTERNAL_NIL_TOKEN;
-    }
-    return result;
-  };
-  return {
-    middleware,
-    startListening,
-    stopListening,
-    clearListeners: clearListenerMiddleware
-  };
-};
-
-// src/dynamicMiddleware/index.ts
-var createMiddlewareEntry = (middleware) => ({
-  middleware,
-  applied: /* @__PURE__ */ new Map()
-});
-var matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;
-var createDynamicMiddleware = () => {
-  const instanceId = nanoid();
-  const middlewareMap = /* @__PURE__ */ new Map();
-  const withMiddleware = Object.assign(createAction("dynamicMiddleware/add", (...middlewares) => ({
-    payload: middlewares,
-    meta: {
-      instanceId
-    }
-  })), {
-    withTypes: () => withMiddleware
-  });
-  const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {
-    middlewares.forEach((middleware2) => {
-      getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);
-    });
-  }, {
-    withTypes: () => addMiddleware
-  });
-  const getFinalMiddleware = (api) => {
-    const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));
-    return (0, import_redux.compose)(...appliedMiddleware);
-  };
-  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));
-  const middleware = (api) => (next) => (action) => {
-    if (isWithMiddleware(action)) {
-      addMiddleware(...action.payload);
-      return api.dispatch;
-    }
-    return getFinalMiddleware(api)(next)(action);
-  };
-  return {
-    middleware,
-    addMiddleware,
-    withMiddleware,
-    instanceId
-  };
-};
-
-// src/combineSlices.ts
-var import_redux2 = require("redux");
-var isSliceLike = (maybeSliceLike) => "reducerPath" in maybeSliceLike && typeof maybeSliceLike.reducerPath === "string";
-var getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));
-var ORIGINAL_STATE = Symbol.for("rtk-state-proxy-original");
-var isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];
-var stateProxyMap = /* @__PURE__ */ new WeakMap();
-var createStateProxy = (state, reducerMap, initialStateCache) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {
-  get: (target, prop, receiver) => {
-    if (prop === ORIGINAL_STATE) return target;
-    const result = Reflect.get(target, prop, receiver);
-    if (typeof result === "undefined") {
-      const cached = initialStateCache[prop];
-      if (typeof cached !== "undefined") return cached;
-      const reducer = reducerMap[prop];
-      if (reducer) {
-        const reducerResult = reducer(void 0, {
-          type: nanoid()
-        });
-        if (typeof reducerResult === "undefined") {
-          throw new Error(false ? _formatProdErrorMessage(24) : `The slice reducer for key "${prop.toString()}" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-        }
-        initialStateCache[prop] = reducerResult;
-        return reducerResult;
-      }
-    }
-    return result;
-  }
-}));
-var original = (state) => {
-  if (!isStateProxy(state)) {
-    throw new Error(false ? _formatProdErrorMessage2(25) : "original must be used on state Proxy");
-  }
-  return state[ORIGINAL_STATE];
-};
-var emptyObject = {};
-var noopReducer = (state = emptyObject) => state;
-function combineSlices(...slices) {
-  const reducerMap = Object.fromEntries(getReducers(slices));
-  const getReducer = () => Object.keys(reducerMap).length ? (0, import_redux2.combineReducers)(reducerMap) : noopReducer;
-  let reducer = getReducer();
-  function combinedReducer(state, action) {
-    return reducer(state, action);
-  }
-  combinedReducer.withLazyLoadedSlices = () => combinedReducer;
-  const initialStateCache = {};
-  const inject = (slice, config = {}) => {
-    const {
-      reducerPath,
-      reducer: reducerToInject
-    } = slice;
-    const currentReducer = reducerMap[reducerPath];
-    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {
-      if (typeof process !== "undefined" && true) {
-        console.error(`called \`inject\` to override already-existing reducer ${reducerPath} without specifying \`overrideExisting: true\``);
-      }
-      return combinedReducer;
-    }
-    if (config.overrideExisting && currentReducer !== reducerToInject) {
-      delete initialStateCache[reducerPath];
-    }
-    reducerMap[reducerPath] = reducerToInject;
-    reducer = getReducer();
-    return combinedReducer;
-  };
-  const selector = Object.assign(function makeSelector(selectorFn, selectState) {
-    return function selector2(state, ...args) {
-      return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap, initialStateCache), ...args);
-    };
-  }, {
-    original
-  });
-  return Object.assign(combinedReducer, {
-    inject,
-    selector
-  });
-}
-
-// src/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  ReducerType,
-  SHOULD_AUTOBATCH,
-  TaskAbortError,
-  Tuple,
-  addListener,
-  asyncThunkCreator,
-  autoBatchEnhancer,
-  buildCreateSlice,
-  clearAllListeners,
-  combineSlices,
-  configureStore,
-  createAction,
-  createActionCreatorInvariantMiddleware,
-  createAsyncThunk,
-  createDraftSafeSelector,
-  createDraftSafeSelectorCreator,
-  createDynamicMiddleware,
-  createEntityAdapter,
-  createImmutableStateInvariantMiddleware,
-  createListenerMiddleware,
-  createNextState,
-  createReducer,
-  createSelector,
-  createSelectorCreator,
-  createSerializableStateInvariantMiddleware,
-  createSlice,
-  current,
-  findNonSerializableValue,
-  formatProdErrorMessage,
-  freeze,
-  isActionCreator,
-  isAllOf,
-  isAnyOf,
-  isAsyncThunkAction,
-  isDraft,
-  isFluxStandardAction,
-  isFulfilled,
-  isImmutableDefault,
-  isPending,
-  isPlain,
-  isRejected,
-  isRejectedWithValue,
-  lruMemoize,
-  miniSerializeError,
-  nanoid,
-  original,
-  prepareAutoBatched,
-  removeListener,
-  unwrapResult,
-  weakMapMemoize,
-  ...require("redux")
-});
-//# sourceMappingURL=redux-toolkit.development.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.development.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.development.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/immerImports.ts","../../src/reselectImports.ts","../../src/createDraftSafeSelector.ts","../../src/reduxImports.ts","../../src/devtoolsExtension.ts","../../src/getDefaultMiddleware.ts","../../src/tsHelpers.ts","../../src/createAction.ts","../../src/actionCreatorInvariantMiddleware.ts","../../src/utils.ts","../../src/immutableStateInvariantMiddleware.ts","../../src/serializableStateInvariantMiddleware.ts","../../src/autoBatchEnhancer.ts","../../src/getDefaultEnhancers.ts","../../src/configureStore.ts","../../src/mapBuilders.ts","../../src/createReducer.ts","../../src/matchers.ts","../../src/nanoid.ts","../../src/createAsyncThunk.ts","../../src/createSlice.ts","../../src/entities/entity_state.ts","../../src/entities/state_selectors.ts","../../src/entities/state_adapter.ts","../../src/entities/utils.ts","../../src/entities/unsorted_state_adapter.ts","../../src/entities/sorted_state_adapter.ts","../../src/entities/create_adapter.ts","../../src/listenerMiddleware/exceptions.ts","../../src/listenerMiddleware/utils.ts","../../src/listenerMiddleware/task.ts","../../src/listenerMiddleware/index.ts","../../src/dynamicMiddleware/index.ts","../../src/combineSlices.ts","../../src/formatProdErrorMessage.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';","export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';","export { createSelectorCreator, weakMapMemoize } from 'reselect';","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n  /**\n   * The function to identify whether a value is an action creator.\n   * The default checks for a function with a static type property and match method.\n   */\n  isActionCreator?: (action: unknown) => action is Function & {\n    type?: unknown;\n  };\n}\nexport function getMessage(type?: unknown) {\n  const splitType = type ? `${type}`.split('/') : [];\n  const actionName = splitType[splitType.length - 1] || 'actionCreator';\n  return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  }\n  const {\n    isActionCreator = isRTKAction\n  } = options;\n  return () => next => action => {\n    if (isActionCreator(action)) {\n      console.warn(getMessage(action.type));\n    }\n    return next(action);\n  };\n}","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseLike<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  let resolve: any;\n  let reject: any;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    promise,\n    resolve,\n    reject\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n  return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n  return {\n    detectMutations() {\n      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n    }\n  };\n}\ninterface TrackedProperty {\n  value: any;\n  children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n  const tracked: Partial<TrackedProperty> = {\n    value: obj\n  };\n  if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n    checkedObjects.add(obj);\n    tracked.children = {};\n    const hasIgnoredPaths = ignoredPaths.length > 0;\n    for (const key in obj) {\n      const nestedPath = path ? path + '.' + key : key;\n      if (hasIgnoredPaths) {\n        const hasMatches = ignoredPaths.some(ignored => {\n          if (ignored instanceof RegExp) {\n            return ignored.test(nestedPath);\n          }\n          return nestedPath === ignored;\n        });\n        if (hasMatches) {\n          continue;\n        }\n      }\n      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n    }\n  }\n  return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n  wasMutated: boolean;\n  path?: string;\n} {\n  const prevObj = trackedProperty ? trackedProperty.value : undefined;\n  const sameRef = prevObj === obj;\n  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n    return {\n      wasMutated: true,\n      path\n    };\n  }\n  if (isImmutable(prevObj) || isImmutable(obj)) {\n    return {\n      wasMutated: false\n    };\n  }\n\n  // Gather all keys from prev (tracked) and after objs\n  const keysToDetect: Record<string, boolean> = {};\n  for (let key in trackedProperty.children) {\n    keysToDetect[key] = true;\n  }\n  for (let key in obj) {\n    keysToDetect[key] = true;\n  }\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (let key in keysToDetect) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n    if (result.wasMutated) {\n      return result;\n    }\n  }\n  return {\n    wasMutated: false\n  };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n  /**\n    Callback function to check if a value is considered to be immutable.\n    This function is applied recursively to every value contained in the state.\n    The default implementation will return true for primitive types\n    (like numbers, strings, booleans, null and undefined).\n   */\n  isImmutable?: IsImmutableFunc;\n  /**\n    An array of dot-separated path strings that match named nodes from\n    the root state to ignore when checking for immutability.\n    Defaults to undefined\n   */\n  ignoredPaths?: IgnorePaths;\n  /** Print a warning if checks take longer than N ms. Default: 32ms */\n  warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n      return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n    }\n    function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n      let stack: any[] = [],\n        keys: any[] = [];\n      if (!decycler) decycler = function (_: string, value: any) {\n        if (stack[0] === value) return '[Circular ~]';\n        return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n      };\n      return function (this: any, key: string, value: any) {\n        if (stack.length > 0) {\n          var thisPos = stack.indexOf(this);\n          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n          if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n        } else stack.push(value);\n        return serializer == null ? value : serializer.call(this, key, value);\n      };\n    }\n    let {\n      isImmutable = isImmutableDefault,\n      ignoredPaths,\n      warnAfter = 32\n    } = options;\n    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n    return ({\n      getState\n    }) => {\n      let state = getState();\n      let tracker = track(state);\n      let result;\n      return next => action => {\n        const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        const dispatchedAction = next(action);\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n        return dispatchedAction;\n      };\n    };\n  }\n}","import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n  const type = typeof val;\n  return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n  keyPath: string;\n  value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n  let foundNestedSerializable: NonSerializableValue | false;\n  if (!isSerializable(value)) {\n    return {\n      keyPath: path || '<root>',\n      value: value\n    };\n  }\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n  if (cache?.has(value)) return false;\n  const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (const [key, nestedValue] of entries) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    if (!isSerializable(nestedValue)) {\n      return {\n        keyPath: nestedPath,\n        value: nestedValue\n      };\n    }\n    if (typeof nestedValue === 'object') {\n      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n      if (foundNestedSerializable) {\n        return foundNestedSerializable;\n      }\n    }\n  }\n  if (cache && isNestedFrozen(value)) cache.add(value);\n  return false;\n}\nexport function isNestedFrozen(value: object) {\n  if (!Object.isFrozen(value)) return false;\n  for (const nestedValue of Object.values(value)) {\n    if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n    if (!isNestedFrozen(nestedValue)) return false;\n  }\n  return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n  /**\n   * The function to check if a value is considered serializable. This\n   * function is applied recursively to every value contained in the\n   * state. Defaults to `isPlain()`.\n   */\n  isSerializable?: (value: any) => boolean;\n  /**\n   * The function that will be used to retrieve entries from each\n   * value.  If unspecified, `Object.entries` will be used. Defaults\n   * to `undefined`.\n   */\n  getEntries?: (value: any) => [string, any][];\n\n  /**\n   * An array of action types to ignore when checking for serializability.\n   * Defaults to []\n   */\n  ignoredActions?: string[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to\n   * ['meta.arg', 'meta.baseQueryMeta']\n   */\n  ignoredActionPaths?: (string | RegExp)[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to []\n   */\n  ignoredPaths?: (string | RegExp)[];\n  /**\n   * Execution time warning threshold. If the middleware takes longer\n   * than `warnAfter` ms, a warning will be displayed in the console.\n   * Defaults to 32ms.\n   */\n  warnAfter?: number;\n\n  /**\n   * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n   */\n  ignoreState?: boolean;\n\n  /**\n   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n   */\n  ignoreActions?: boolean;\n\n  /**\n   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n   * The cache is automatically disabled if no browser support for WeakSet is present.\n   */\n  disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    const {\n      isSerializable = isPlain,\n      getEntries,\n      ignoredActions = [],\n      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n      ignoredPaths = [],\n      warnAfter = 32,\n      ignoreState = false,\n      ignoreActions = false,\n      disableCache = false\n    } = options;\n    const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n    return storeAPI => next => action => {\n      if (!isAction(action)) {\n        return next(action);\n      }\n      const result = next(action);\n      const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n        measureUtils.measureTime(() => {\n          const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n          if (foundActionNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundActionNonSerializableValue;\n            console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n          }\n        });\n      }\n      if (!ignoreState) {\n        measureUtils.measureTime(() => {\n          const state = storeAPI.getState();\n          const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n          if (foundStateNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundStateNonSerializableValue;\n            console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n      }\n      return result;\n    };\n  }\n}","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * Whether to check for duplicate middleware instances. Defaults to `true`.\n   */\n  duplicateMiddlewareCheck?: boolean;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    duplicateMiddlewareCheck = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n    let middlewareReferences = new Set<Middleware<any, S>>();\n    finalMiddleware.forEach(middleware => {\n      if (middlewareReferences.has(middleware)) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n      }\n      middlewareReferences.add(middleware);\n    });\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n   * @remarks\n   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param asyncThunk - The async thunk action creator itself.\n   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n   * @example\n  ```ts no-transpile\n  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n  const response = await fetch(`https://reqres.in/api/users/${id}`)\n  return (await response.json()).data\n  })\n  const reducer = createReducer(initialState, (builder) => {\n  builder.addAsyncThunk(fetchUserById, {\n    pending: (state, action) => {\n      state.fetchUserById.loading = 'pending'\n    },\n    fulfilled: (state, action) => {\n      state.fetchUserById.data = action.payload\n    },\n    rejected: (state, action) => {\n      state.fetchUserById.error = action.error\n    },\n    settled: (state, action) => {\n      state.fetchUserById.loading = action.meta.requestStatus\n    },\n  })\n  })\n   */\n  addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n      if (process.env.NODE_ENV !== 'production') {\n        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n      if (reducers.settled) actionMatchers.push({\n        matcher: asyncThunk.settled,\n        reducer: reducers.settled\n      });\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n  if (hasMatchFunction(matcher)) {\n    return matcher.match(action);\n  } else {\n    return matcher(action);\n  }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n    return matchers.some(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAllOf<Matchers> => {\n    return matchers.every(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n  if (!action || !action.meta) return false;\n  const hasValidRequestId = typeof action.meta.requestId === 'string';\n  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n  return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n  return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isPending()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejected()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n  rejectValue: infer RejectedValue;\n}> ? {\n  payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  const hasFlag = (action: any): action is any => {\n    return action && action.meta && action.meta.rejectedWithValue;\n  };\n  if (asyncThunks.length === 0) {\n    return isAllOf(isRejected(...asyncThunks), hasFlag);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejectedWithValue()(asyncThunks[0]);\n  }\n  return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isFulfilled()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n  pending: {\n    match: (action: any) => action is any;\n  };\n  fulfilled: {\n    match: (action: any) => action is any;\n  };\n  rejected: {\n    match: (action: any) => action is any;\n  };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isAsyncThunkAction()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\n *\n * @public\n */\nexport let nanoid = (size = 21) => {\n  let id = '';\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size;\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};","import type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n  dispatch: D;\n  getState: () => S;\n  extra: E;\n  requestId: string;\n  signal: AbortSignal;\n  abort: (reason?: string) => void;\n  rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n  fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n  name?: string;\n  message?: string;\n  stack?: string;\n  code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'RejectWithValue';\n  constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'FulfillWithMeta';\n  constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n  if (typeof value === 'object' && value !== null) {\n    const simpleError: SerializedError = {};\n    for (const property of commonProperties) {\n      if (typeof value[property] === 'string') {\n        simpleError[property] = value[property];\n      }\n    }\n    return simpleError;\n  }\n  return {\n    message: String(value)\n  };\n};\nexport type AsyncThunkConfig = {\n  state?: unknown;\n  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n  extra?: unknown;\n  rejectValue?: unknown;\n  serializedErrorType?: unknown;\n  pendingMeta?: unknown;\n  fulfilledMeta?: unknown;\n  rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n  state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n  extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n  dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n  serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n  abort: (reason?: string) => void;\n  requestId: string;\n  arg: ThunkArg;\n  unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n  /**\n   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n   */\n  signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  /**\n   * A method to control whether the asyncThunk should be executed. Has access to the\n   * `arg`, `api.getState()` and `api.extra` arguments.\n   *\n   * @returns `false` if it should be skipped\n   */\n  condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n  /**\n   * If `condition` returns `false`, the asyncThunk will be skipped.\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\n   * will be dispatched or not.\n   *\n   * @default `false`\n   */\n  dispatchConditionRejection?: boolean;\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n  /**\n   * A function to use when generating the `requestId` for the request sequence.\n   *\n   * @default `nanoid`\n   */\n  idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   *\n   * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n   * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n   */\n  getPendingMeta?(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   */\n  getPendingMeta(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'rejected';\n  aborted: boolean;\n  condition: boolean;\n} & (({\n  rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n  rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n  fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n  // matchSettled?\n  settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n  typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  // separate signature without `AsyncThunkConfig` for better inference\n  <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n  function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n    type RejectedValue = GetRejectValue<ThunkApiConfig>;\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n    const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n      payload,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'fulfilled' as const\n      }\n    }));\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n      payload: undefined,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'pending' as const\n      }\n    }));\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n      payload,\n      error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        rejectedWithValue: !!payload,\n        requestStatus: 'rejected' as const,\n        aborted: error?.name === 'AbortError',\n        condition: error?.name === 'ConditionError'\n      }\n    }));\n    function actionCreator(arg: ThunkArg, {\n      signal\n    }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n      return (dispatch, getState, extra) => {\n        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n        const abortController = new AbortController();\n        let abortHandler: (() => void) | undefined;\n        let abortReason: string | undefined;\n        function abort(reason?: string) {\n          abortReason = reason;\n          abortController.abort();\n        }\n        if (signal) {\n          if (signal.aborted) {\n            abort(externalAbortMessage);\n          } else {\n            signal.addEventListener('abort', () => abort(externalAbortMessage), {\n              once: true\n            });\n          }\n        }\n        const promise = async function () {\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n          try {\n            let conditionResult = options?.condition?.(arg, {\n              getState,\n              extra\n            });\n            if (isThenable(conditionResult)) {\n              conditionResult = await conditionResult;\n            }\n            if (conditionResult === false || abortController.signal.aborted) {\n              // eslint-disable-next-line no-throw-literal\n              throw {\n                name: 'ConditionError',\n                message: 'Aborted due to condition callback returning false.'\n              };\n            }\n            const abortedPromise = new Promise<never>((_, reject) => {\n              abortHandler = () => {\n                reject({\n                  name: 'AbortError',\n                  message: abortReason || 'Aborted'\n                });\n              };\n              abortController.signal.addEventListener('abort', abortHandler, {\n                once: true\n              });\n            });\n            dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n              requestId,\n              arg\n            }, {\n              getState,\n              extra\n            })) as any);\n            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n              dispatch,\n              getState,\n              extra,\n              requestId,\n              signal: abortController.signal,\n              abort,\n              rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n                return new RejectWithValue(value, meta);\n              }) as any,\n              fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n                return new FulfillWithMeta(value, meta);\n              }) as any\n            })).then(result => {\n              if (result instanceof RejectWithValue) {\n                throw result;\n              }\n              if (result instanceof FulfillWithMeta) {\n                return fulfilled(result.payload, requestId, arg, result.meta);\n              }\n              return fulfilled(result as any, requestId, arg);\n            })]);\n          } catch (err) {\n            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n          } finally {\n            if (abortHandler) {\n              abortController.signal.removeEventListener('abort', abortHandler);\n            }\n          }\n          // We dispatch the result action _after_ the catch, to avoid having any errors\n          // here get swallowed by the try/catch block,\n          // per https://twitter.com/dan_abramov/status/770914221638942720\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n          if (!skipDispatch) {\n            dispatch(finalAction as any);\n          }\n          return finalAction;\n        }();\n        return Object.assign(promise as SafePromise<any>, {\n          abort,\n          requestId,\n          arg,\n          unwrap() {\n            return promise.then<any>(unwrapResult);\n          }\n        });\n      };\n    }\n    return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n      pending,\n      rejected,\n      fulfilled,\n      settled: isAnyOf(rejected, fulfilled),\n      typePrefix\n    });\n  }\n  createAsyncThunk.withTypes = () => createAsyncThunk;\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n  payload: any;\n  meta?: any;\n  error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n  error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n  if (action.meta && action.meta.rejectedWithValue) {\n    throw action.payload;\n  }\n  if (action.error) {\n    throw action.error;\n  }\n  return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n  return value !== null && typeof value === 'object' && typeof value.then === 'function';\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import type { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n  return {\n    ids: [],\n    entities: {} as Record<Id, T>\n  };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n  function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n  function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n  function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n    const state = Object.assign(getInitialEntityState(), additionalState);\n    return entities ? stateAdapter.setAll(state, entities) : state;\n  }\n  return {\n    getInitialState\n  };\n}","import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n  createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n  function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n  function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n  function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n    const {\n      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n    } = options;\n    const selectIds = (state: EntityState<T, Id>) => state.ids;\n    const selectEntities = (state: EntityState<T, Id>) => state.entities;\n    const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n    const selectId = (_: unknown, id: Id) => id;\n    const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n    const selectTotal = createSelector(selectIds, ids => ids.length);\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n        selectById: createSelector(selectEntities, selectId, selectById)\n      };\n    }\n    const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: selectGlobalizedEntities,\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n      selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n    };\n  }\n  return {\n    getSelectors\n  };\n}","import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n  const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n  return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n    return operator(state as S, undefined);\n  };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n  return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n    function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n      return isFSA(arg);\n    }\n    const runMutator = (draft: DraftableEntityState<T, Id>) => {\n      if (isPayloadActionArgument(arg)) {\n        mutator(arg.payload, draft);\n      } else {\n        mutator(arg, draft);\n      }\n    };\n    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n      // we must already be inside a `createNextState` call, likely because\n      // this is being wrapped in `createReducer` or `createSlice`.\n      // It's safe to just pass the draft to the mutator.\n      runMutator(state);\n\n      // since it's a draft, we'll just return it\n      return state;\n    }\n    return createNextState(state, runMutator);\n  };\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n  const key = selectId(entity);\n  if (process.env.NODE_ENV !== 'production' && key === undefined) {\n    console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n  }\n  return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n  if (!Array.isArray(entities)) {\n    entities = Object.values(entities);\n  }\n  return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n  newEntities = ensureEntitiesArray(newEntities);\n  const existingIdsArray = getCurrent(state.ids);\n  const existingIds = new Set<Id>(existingIdsArray);\n  const added: T[] = [];\n  const addedIds = new Set<Id>([]);\n  const updated: Update<T, Id>[] = [];\n  for (const entity of newEntities) {\n    const id = selectIdValue(entity, selectId);\n    if (existingIds.has(id) || addedIds.has(id)) {\n      updated.push({\n        id,\n        changes: entity\n      });\n    } else {\n      addedIds.add(id);\n      added.push(entity);\n    }\n  }\n  return [added, updated, existingIdsArray];\n}","import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  function addOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (key in state.entities) {\n      return;\n    }\n    state.ids.push(key as Id & Draft<Id>);\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      addOneMutably(entity, state);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (!(key in state.entities)) {\n      state.ids.push(key as Id & Draft<Id>);\n    }\n    ;\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      setOneMutably(entity, state);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.ids = [];\n    state.entities = {} as Record<Id, T>;\n    addManyMutably(newEntities, state);\n  }\n  function removeOneMutably(key: Id, state: R): void {\n    return removeManyMutably([key], state);\n  }\n  function removeManyMutably(keys: readonly Id[], state: R): void {\n    let didMutate = false;\n    keys.forEach(key => {\n      if (key in state.entities) {\n        delete (state.entities as Record<Id, T>)[key];\n        didMutate = true;\n      }\n    });\n    if (didMutate) {\n      state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n    }\n  }\n  function removeAllMutably(state: R): void {\n    Object.assign(state, {\n      ids: [],\n      entities: {}\n    });\n  }\n  function takeNewKey(keys: {\n    [id: string]: Id;\n  }, update: Update<T, Id>, state: R): boolean {\n    const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n    if (original === undefined) {\n      return false;\n    }\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete (state.entities as Record<Id, T>)[update.id];\n    }\n    ;\n    (state.entities as Record<Id, T>)[newKey] = updated;\n    return hasNewKey;\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    const newKeys: {\n      [id: string]: Id;\n    } = {};\n    const updatesPerEntity: {\n      [id: string]: Update<T, Id>;\n    } = {};\n    updates.forEach(update => {\n      // Only apply updates to entities that currently exist\n      if (update.id in state.entities) {\n        // If there are multiple updates to one entity, merge them together\n        updatesPerEntity[update.id] = {\n          id: update.id,\n          // Spreads ignore falsy values, so this works even if there isn't\n          // an existing update already at this key\n          changes: {\n            ...updatesPerEntity[update.id]?.changes,\n            ...update.changes\n          }\n        };\n      }\n    });\n    updates = Object.values(updatesPerEntity);\n    const didMutateEntities = updates.length > 0;\n    if (didMutateEntities) {\n      const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n      if (didMutateIds) {\n        state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n      }\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    addManyMutably(added, state);\n    updateManyMutably(updated, state);\n  }\n  return {\n    removeAll: createSingleArgumentStateOperator(removeAllMutably),\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably)\n  };\n}","import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n  let lowIndex = 0;\n  let highIndex = sortedItems.length;\n  while (lowIndex < highIndex) {\n    let middleIndex = lowIndex + highIndex >>> 1;\n    const currentItem = sortedItems[middleIndex];\n    const res = comparisonFunction(item, currentItem);\n    if (res >= 0) {\n      lowIndex = middleIndex + 1;\n    } else {\n      highIndex = middleIndex;\n    }\n  }\n  return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n  sortedItems.splice(insertAtIndex, 0, item);\n  return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  const {\n    removeOne,\n    removeMany,\n    removeAll\n  } = createUnsortedStateAdapter(selectId);\n  function addOneMutably(entity: T, state: R): void {\n    return addManyMutably([entity], state);\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n    const addedKeys = new Set<Id>();\n    const models = newEntities.filter(model => {\n      const modelId = selectIdValue(model, selectId);\n      const notAdded = !addedKeys.has(modelId);\n      if (notAdded) addedKeys.add(modelId);\n      return !existingKeys.has(modelId) && notAdded;\n    });\n    if (models.length !== 0) {\n      mergeFunction(state, models);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    return setManyMutably([entity], state);\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    let deduplicatedEntities = {} as Record<Id, T>;\n    newEntities = ensureEntitiesArray(newEntities);\n    if (newEntities.length !== 0) {\n      for (const item of newEntities) {\n        const entityId = selectId(item);\n        // For multiple items with the same ID, we should keep the last one.\n        deduplicatedEntities[entityId] = item;\n        delete (state.entities as Record<Id, T>)[entityId];\n      }\n      newEntities = ensureEntitiesArray(deduplicatedEntities);\n      mergeFunction(state, newEntities);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.entities = {} as Record<Id, T>;\n    state.ids = [];\n    addManyMutably(newEntities, state, []);\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    let appliedUpdates = false;\n    let replacedIds = false;\n    for (let update of updates) {\n      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n      if (!entity) {\n        continue;\n      }\n      appliedUpdates = true;\n      Object.assign(entity, update.changes);\n      const newId = selectId(entity);\n      if (update.id !== newId) {\n        // We do support the case where updates can change an item's ID.\n        // This makes things trickier - go ahead and swap the IDs in state now.\n        replacedIds = true;\n        delete (state.entities as Record<Id, T>)[update.id];\n        const oldIndex = (state.ids as Id[]).indexOf(update.id);\n        state.ids[oldIndex] = newId;\n        (state.entities as Record<Id, T>)[newId] = entity;\n      }\n    }\n    if (appliedUpdates) {\n      mergeFunction(state, [], appliedUpdates, replacedIds);\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    if (added.length) {\n      addManyMutably(added, state, existingIdsArray);\n    }\n    if (updated.length) {\n      updateManyMutably(updated, state);\n    }\n  }\n  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] === b[i]) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n  const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n    const currentEntities = getCurrent(state.entities);\n    const currentIds = getCurrent(state.ids);\n    const stateEntities = state.entities as Record<Id, T>;\n    let ids: Iterable<Id> = currentIds;\n    if (replacedIds) {\n      ids = new Set(currentIds);\n    }\n    let sortedEntities: T[] = [];\n    for (const id of ids) {\n      const entity = currentEntities[id];\n      if (entity) {\n        sortedEntities.push(entity);\n      }\n    }\n    const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n    // Insert/overwrite all new/updated\n    for (const item of addedItems) {\n      stateEntities[selectId(item)] = item;\n      if (!wasPreviouslyEmpty) {\n        // Binary search insertion generally requires fewer comparisons\n        insert(sortedEntities, item, comparer);\n      }\n    }\n    if (wasPreviouslyEmpty) {\n      // All we have is the incoming values, sort them\n      sortedEntities = addedItems.slice().sort(comparer);\n    } else if (appliedUpdates) {\n      // We should have a _mostly_-sorted array already\n      sortedEntities.sort(comparer);\n    }\n    const newSortedIds = sortedEntities.map(selectId);\n    if (!areArraysEqual(currentIds, newSortedIds)) {\n      state.ids = newSortedIds;\n    }\n  };\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably)\n  };\n}","import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n  id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n  const {\n    selectId,\n    sortComparer\n  }: Required<EntityAdapterOptions<T, EntityId>> = {\n    sortComparer: false,\n    selectId: (instance: any) => instance.id,\n    ...options\n  };\n  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n  const stateFactory = createInitialStateFactory(stateAdapter);\n  const selectorsFactory = createSelectorsFactory<T, EntityId>();\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter\n  };\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n  if (typeof func !== 'function') {\n    throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n  }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n  promise.catch(onError);\n  return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n  abortSignal.addEventListener('abort', callback, {\n    once: true\n  });\n  return () => abortSignal.removeEventListener('abort', callback);\n};","import { TaskAbortError } from './exceptions';\nimport type { TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    throw new TaskAbortError(signal.reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignal, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => childAbortController.abort(taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        childAbortController.abort(taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    controller.abort(listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n  return () => {\n    for (const listener of executingListeners.keys()) {\n      cancelActiveListeners(listener);\n    }\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n\n  // Track listeners whose effect is currently executing so clearListeners can\n  // abort even listeners that have become unsubscribed while executing.\n  const executingListeners = new Map<ListenerEntry, number>();\n  const trackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 0;\n    executingListeners.set(entry, count + 1);\n  };\n  const untrackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 1;\n    if (count === 1) {\n      executingListeners.delete(entry);\n    } else {\n      executingListeners.set(entry, count - 1);\n    }\n  };\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      trackExecutingListener(entry);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              controller.abort(listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          internalTaskController.abort(listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      internalTaskController.abort(listenerCompleted); // Notify that the task has completed\n      untrackExecutingListener(entry);\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n  middleware,\n  applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n  meta: {\n    instanceId: string;\n  };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n  const instanceId = nanoid();\n  const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n  const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n    payload: middlewares,\n    meta: {\n      instanceId\n    }\n  })), {\n    withTypes: () => withMiddleware\n  }) as WithMiddleware<State, DispatchType>;\n  const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n    middlewares.forEach(middleware => {\n      getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n    });\n  }, {\n    withTypes: () => addMiddleware\n  }) as AddMiddleware<State, DispatchType>;\n  const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n    const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n    return compose(...appliedMiddleware);\n  };\n  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n  const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n    if (isWithMiddleware(action)) {\n      addMiddleware(...action.payload);\n      return api.dispatch;\n    }\n    return getFinalMiddleware(api)(next)(action);\n  };\n  return {\n    middleware,\n    addMiddleware,\n    withMiddleware,\n    instanceId\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const cached = initialStateCache[prop];\n      if (typeof cached !== 'undefined') return cached;\n      const reducer = reducerMap[prop];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        initialStateCache[prop] = reducerResult;\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n  const reducerMap = Object.fromEntries(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const initialStateCache: Record<PropertyKey, unknown> = {};\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    if (config.overrideExisting && currentReducer !== reducerToInject) {\n      delete initialStateCache[reducerPath];\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAc,kBAHd;AAIA,IAAAA,gBAAiC;;;ACJjC,mBAAiG;;;ADOjG,IAAAC,mBAA2C;;;AEP3C,sBAAsD;;;ACE/C,IAAM,iCAA+D,IAAI,SAAoB;AAClG,QAAMC,sBAAkB,uCAA8B,GAAG,IAAI;AAC7D,QAAMC,2BAA0B,OAAO,OAAO,IAAIC,UAAoB;AACpE,UAAM,WAAWF,gBAAe,GAAGE,KAAI;AACvC,UAAM,kBAAkB,CAAC,UAAmB,SAAoB,aAAS,sBAAQ,KAAK,QAAI,sBAAQ,KAAK,IAAI,OAAO,GAAG,IAAI;AACzH,WAAO,OAAO,iBAAiB,QAAQ;AACvC,WAAO;AAAA,EACT,GAAG;AAAA,IACD,WAAW,MAAMD;AAAA,EACnB,CAAC;AACD,SAAOA;AACT;AASO,IAAM,0BACb,+CAA+B,8BAAc;;;ACvB7C,mBAAgG;;;ACmNzF,IAAM,sBAA2C,OAAO,WAAW,eAAgB,OAAe,uCAAwC,OAAe,uCAAuC,WAAY;AACjN,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,UAAU,CAAC,MAAM,SAAU,QAAO;AAC7C,SAAO,qBAAQ,MAAM,MAAM,SAA8B;AAC3D;AAKO,IAAM,mBAET,OAAO,WAAW,eAAgB,OAAe,+BAAgC,OAAe,+BAA+B,WAAY;AAC7I,SAAO,SAAUE,OAAM;AACrB,WAAOA;AAAA,EACT;AACF;;;AChOA,yBAA4D;;;ACqFrD,IAAM,mBAAmB,CAAK,MAA4C;AAC/E,SAAO,KAAK,OAAQ,EAA0B,UAAU;AAC1D;;;AC4GO,SAAS,aAAa,MAAc,eAA+B;AACxE,WAAS,iBAAiB,MAAa;AACrC,QAAI,eAAe;AACjB,UAAI,WAAW,cAAc,GAAG,IAAI;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,QAAwC,wBAAwB,CAAC,IAAI,wCAAwC;AAAA,MAC/H;AACA,aAAO;AAAA,QACL;AAAA,QACA,SAAS,SAAS;AAAA,QAClB,GAAI,UAAU,YAAY;AAAA,UACxB,MAAM,SAAS;AAAA,QACjB;AAAA,QACA,GAAI,WAAW,YAAY;AAAA,UACzB,OAAO,SAAS;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA,SAAS,KAAK,CAAC;AAAA,IACjB;AAAA,EACF;AACA,gBAAc,WAAW,MAAM,GAAG,IAAI;AACtC,gBAAc,OAAO;AACrB,gBAAc,QAAQ,CAAC,eAA6C,uBAAS,MAAM,KAAK,OAAO,SAAS;AACxG,SAAO;AACT;AAKO,SAAS,gBAAgB,QAA0E;AACxG,SAAO,OAAO,WAAW,cAAc,UAAU;AAAA,EAEjD,iBAAiB,MAAa;AAChC;AAKO,SAAS,MAAM,QAKpB;AACA,aAAO,uBAAS,MAAM,KAAK,OAAO,KAAK,MAAM,EAAE,MAAM,UAAU;AACjE;AACA,SAAS,WAAW,KAAa;AAC/B,SAAO,CAAC,QAAQ,WAAW,SAAS,MAAM,EAAE,QAAQ,GAAG,IAAI;AAC7D;;;AC7OO,SAAS,WAAW,MAAgB;AACzC,QAAM,YAAY,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACjD,QAAM,aAAa,UAAU,UAAU,SAAS,CAAC,KAAK;AACtD,SAAO,yCAAyC,QAAQ,SAAS;AAAA,kFACe,UAAU,+BAA+B,UAAU;AACrI;AACO,SAAS,uCAAuC,UAAmD,CAAC,GAAe;AACxH,MAAI,OAAuC;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C;AACA,QAAM;AAAA,IACJ,iBAAAC,mBAAkB;AAAA,EACpB,IAAI;AACJ,SAAO,MAAM,UAAQ,YAAU;AAC7B,QAAIA,iBAAgB,MAAM,GAAG;AAC3B,cAAQ,KAAK,WAAW,OAAO,IAAI,CAAC;AAAA,IACtC;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;;;AC7BO,SAAS,oBAAoB,UAAkB,QAAgB;AACpE,MAAI,UAAU;AACd,SAAO;AAAA,IACL,YAAe,IAAgB;AAC7B,YAAM,UAAU,KAAK,IAAI;AACzB,UAAI;AACF,eAAO,GAAG;AAAA,MACZ,UAAE;AACA,cAAM,WAAW,KAAK,IAAI;AAC1B,mBAAW,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,IACA,iBAAiB;AACf,UAAI,UAAU,UAAU;AACtB,gBAAQ,KAAK,GAAG,MAAM,SAAS,OAAO,mDAAmD,QAAQ;AAAA;AAAA,4EAE7B;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAIO,IAAM,QAAN,MAAM,eAAyD,MAAqB;AAAA,EAGzF,eAAe,OAAc;AAC3B,UAAM,GAAG,KAAK;AACd,WAAO,eAAe,MAAM,OAAM,SAAS;AAAA,EAC7C;AAAA,EACA,YAAqB,OAAO,OAAO,IAAI;AACrC,WAAO;AAAA,EACT;AAAA,EAIS,UAAU,KAAY;AAC7B,WAAO,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EACrC;AAAA,EAIA,WAAW,KAAY;AACrB,QAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,GAAG;AAC7C,aAAO,IAAI,OAAM,GAAG,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAAA,IACzC;AACA,WAAO,IAAI,OAAM,GAAG,IAAI,OAAO,IAAI,CAAC;AAAA,EACtC;AACF;AACO,SAAS,gBAAmB,KAAQ;AACzC,aAAO,0BAAY,GAAG,QAAI,sBAAgB,KAAK,MAAM;AAAA,EAAC,CAAC,IAAI;AAC7D;AASO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;;;ACtDO,SAAS,mBAAmB,OAAyB;AAC1D,SAAO,OAAO,UAAU,YAAY,SAAS,QAAQ,OAAO,SAAS,KAAK;AAC5E;AACO,SAAS,kBAAkB,aAA8B,cAAuC,KAAU;AAC/G,QAAM,oBAAoB,gBAAgB,aAAa,cAAc,GAAG;AACxE,SAAO;AAAA,IACL,kBAAkB;AAChB,aAAO,gBAAgB,aAAa,cAAc,mBAAmB,GAAG;AAAA,IAC1E;AAAA,EACF;AACF;AAKA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,KAA0B,OAAe,IAAI,iBAA2C,oBAAI,IAAI,GAAG;AACxL,QAAM,UAAoC;AAAA,IACxC,OAAO;AAAA,EACT;AACA,MAAI,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG,GAAG;AACjD,mBAAe,IAAI,GAAG;AACtB,YAAQ,WAAW,CAAC;AACpB,UAAM,kBAAkB,aAAa,SAAS;AAC9C,eAAW,OAAO,KAAK;AACrB,YAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,UAAI,iBAAiB;AACnB,cAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,cAAI,mBAAmB,QAAQ;AAC7B,mBAAO,QAAQ,KAAK,UAAU;AAAA,UAChC;AACA,iBAAO,eAAe;AAAA,QACxB,CAAC;AACD,YAAI,YAAY;AACd;AAAA,QACF;AAAA,MACF;AACA,cAAQ,SAAS,GAAG,IAAI,gBAAgB,aAAa,cAAc,IAAI,GAAG,GAAG,UAAU;AAAA,IACzF;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,iBAAkC,KAAU,gBAAyB,OAAO,OAAe,IAGhL;AACA,QAAM,UAAU,kBAAkB,gBAAgB,QAAQ;AAC1D,QAAM,UAAU,YAAY;AAC5B,MAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,MAAM,GAAG,GAAG;AACnD,WAAO;AAAA,MACL,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,OAAO,KAAK,YAAY,GAAG,GAAG;AAC5C,WAAO;AAAA,MACL,YAAY;AAAA,IACd;AAAA,EACF;AAGA,QAAM,eAAwC,CAAC;AAC/C,WAAS,OAAO,gBAAgB,UAAU;AACxC,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,WAAS,OAAO,KAAK;AACnB,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,QAAM,kBAAkB,aAAa,SAAS;AAC9C,WAAS,OAAO,cAAc;AAC5B,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,gBAAgB,aAAa,cAAc,gBAAgB,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,SAAS,UAAU;AACtH,QAAI,OAAO,YAAY;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AAAA,IACL,YAAY;AAAA,EACd;AACF;AAmCO,SAAS,wCAAwC,UAAoD,CAAC,GAAe;AAC1H,MAAI,OAAuC;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,QAASC,aAAT,SAAmB,KAAU,YAA6B,QAA0B,UAAmC;AACrH,aAAO,KAAK,UAAU,KAAKC,cAAa,YAAY,QAAQ,GAAG,MAAM;AAAA,IACvE,GACSA,gBAAT,SAAsB,YAA6B,UAA2C;AAC5F,UAAI,QAAe,CAAC,GAClB,OAAc,CAAC;AACjB,UAAI,CAAC,SAAU,YAAW,SAAU,GAAW,OAAY;AACzD,YAAI,MAAM,CAAC,MAAM,MAAO,QAAO;AAC/B,eAAO,iBAAiB,KAAK,MAAM,GAAG,MAAM,QAAQ,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;AAAA,MAC1E;AACA,aAAO,SAAqB,KAAa,OAAY;AACnD,YAAI,MAAM,SAAS,GAAG;AACpB,cAAI,UAAU,MAAM,QAAQ,IAAI;AAChC,WAAC,UAAU,MAAM,OAAO,UAAU,CAAC,IAAI,MAAM,KAAK,IAAI;AACtD,WAAC,UAAU,KAAK,OAAO,SAAS,UAAU,GAAG,IAAI,KAAK,KAAK,GAAG;AAC9D,cAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,SAAQ,SAAU,KAAK,MAAM,KAAK,KAAK;AAAA,QACpE,MAAO,OAAM,KAAK,KAAK;AACvB,eAAO,cAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,KAAK,KAAK;AAAA,MACtE;AAAA,IACF;AAnBS,oBAAAD,YAGA,eAAAC;AAiBT,QAAI;AAAA,MACF,cAAc;AAAA,MACd;AAAA,MACA,YAAY;AAAA,IACd,IAAI;AACJ,UAAM,QAAQ,kBAAkB,KAAK,MAAM,aAAa,YAAY;AACpE,WAAO,CAAC;AAAA,MACN;AAAA,IACF,MAAM;AACJ,UAAI,QAAQ,SAAS;AACrB,UAAI,UAAU,MAAM,KAAK;AACzB,UAAI;AACJ,aAAO,UAAQ,YAAU;AACvB,cAAM,eAAe,oBAAoB,WAAW,mCAAmC;AACvF,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,kEAAkE,OAAO,QAAQ,EAAE,2GAA2G;AAAA,UACtR;AAAA,QACF,CAAC;AACD,cAAM,mBAAmB,KAAK,MAAM;AACpC,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,iEAAiE,OAAO,QAAQ,EAAE,uDAAuDD,WAAU,MAAM,CAAC,sEAAsE;AAAA,UACzT;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAC5B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACxLO,SAAS,QAAQ,KAAU;AAChC,QAAM,OAAO,OAAO;AACpB,SAAO,OAAO,QAAQ,SAAS,YAAY,SAAS,aAAa,SAAS,YAAY,MAAM,QAAQ,GAAG,SAAK,4BAAc,GAAG;AAC/H;AAUO,SAAS,yBAAyB,OAAgB,OAAe,IAAI,iBAA8C,SAAS,YAAkD,eAA4B,CAAC,GAAG,OAAuD;AAC1Q,MAAI;AACJ,MAAI,CAAC,eAAe,KAAK,GAAG;AAC1B,WAAO;AAAA,MACL,SAAS,QAAQ;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,MAAI,OAAO,IAAI,KAAK,EAAG,QAAO;AAC9B,QAAM,UAAU,cAAc,OAAO,WAAW,KAAK,IAAI,OAAO,QAAQ,KAAK;AAC7E,QAAM,kBAAkB,aAAa,SAAS;AAC9C,aAAW,CAAC,KAAK,WAAW,KAAK,SAAS;AACxC,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,eAAe,WAAW,GAAG;AAChC,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,OAAO,gBAAgB,UAAU;AACnC,gCAA0B,yBAAyB,aAAa,YAAY,gBAAgB,YAAY,cAAc,KAAK;AAC3H,UAAI,yBAAyB;AAC3B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,eAAe,KAAK,EAAG,OAAM,IAAI,KAAK;AACnD,SAAO;AACT;AACO,SAAS,eAAe,OAAe;AAC5C,MAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,aAAW,eAAe,OAAO,OAAO,KAAK,GAAG;AAC9C,QAAI,OAAO,gBAAgB,YAAY,gBAAgB,KAAM;AAC7D,QAAI,CAAC,eAAe,WAAW,EAAG,QAAO;AAAA,EAC3C;AACA,SAAO;AACT;AAwEO,SAAS,2CAA2C,UAAuD,CAAC,GAAe;AAChI,MAAI,OAAuC;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,UAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,qBAAqB,CAAC,YAAY,oBAAoB;AAAA,MACtD,eAAe,CAAC;AAAA,MAChB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe;AAAA,IACjB,IAAI;AACJ,UAAM,QAAqC,CAAC,gBAAgB,UAAU,oBAAI,QAAQ,IAAI;AACtF,WAAO,cAAY,UAAQ,YAAU;AACnC,UAAI,KAAC,uBAAS,MAAM,GAAG;AACrB,eAAO,KAAK,MAAM;AAAA,MACpB;AACA,YAAM,SAAS,KAAK,MAAM;AAC1B,YAAM,eAAe,oBAAoB,WAAW,sCAAsC;AAC1F,UAAI,CAAC,iBAAiB,EAAE,eAAe,UAAU,eAAe,QAAQ,OAAO,IAAW,MAAM,KAAK;AACnG,qBAAa,YAAY,MAAM;AAC7B,gBAAM,kCAAkC,yBAAyB,QAAQ,IAAI,gBAAgB,YAAY,oBAAoB,KAAK;AAClI,cAAI,iCAAiC;AACnC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO,4DAA4D,QAAQ,yIAAyI,6HAA6H;AAAA,UAC5b;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,CAAC,aAAa;AAChB,qBAAa,YAAY,MAAM;AAC7B,gBAAM,QAAQ,SAAS,SAAS;AAChC,gBAAM,iCAAiC,yBAAyB,OAAO,IAAI,gBAAgB,YAAY,cAAc,KAAK;AAC1H,cAAI,gCAAgC;AAClC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO;AAAA,2DACjE,OAAO,IAAI;AAAA,+HACyD;AAAA,UACrH;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAAA,MAC9B;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AN3LA,SAAS,UAAU,GAAsB;AACvC,SAAO,OAAO,MAAM;AACtB;AAuBO,IAAM,4BAA4B,MAAyC,SAAS,qBAAqB,SAAS;AACvH,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB,IAAI,WAAW,CAAC;AAChB,MAAI,kBAAkB,IAAI,MAAoB;AAC9C,MAAI,OAAO;AACT,QAAI,UAAU,KAAK,GAAG;AACpB,sBAAgB,KAAK,mBAAAE,KAAe;AAAA,IACtC,OAAO;AACL,sBAAgB,SAAK,sCAAkB,MAAM,aAAa,CAAC;AAAA,IAC7D;AAAA,EACF;AACA,MAAI,MAAuC;AACzC,QAAI,gBAAgB;AAElB,UAAI,mBAA6D,CAAC;AAClE,UAAI,CAAC,UAAU,cAAc,GAAG;AAC9B,2BAAmB;AAAA,MACrB;AACA,sBAAgB,QAAQ,wCAAwC,gBAAgB,CAAC;AAAA,IAEnF;AACA,QAAI,mBAAmB;AACrB,UAAI,sBAAmE,CAAC;AACxE,UAAI,CAAC,UAAU,iBAAiB,GAAG;AACjC,8BAAsB;AAAA,MACxB;AACA,sBAAgB,KAAK,2CAA2C,mBAAmB,CAAC;AAAA,IACtF;AACA,QAAI,oBAAoB;AACtB,UAAI,uBAAgE,CAAC;AACrE,UAAI,CAAC,UAAU,kBAAkB,GAAG;AAClC,+BAAuB;AAAA,MACzB;AACA,sBAAgB,QAAQ,uCAAuC,oBAAoB,CAAC;AAAA,IACtF;AAAA,EACF;AACA,SAAO;AACT;;;AO/EO,IAAM,mBAAmB;AACzB,IAAM,qBAAqB,MAAU,CAAC,aAGvC;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,CAAC,gBAAgB,GAAG;AAAA,EACtB;AACF;AACA,IAAM,uBAAuB,CAAC,YAAoB;AAChD,SAAO,CAAC,WAAuB;AAC7B,eAAW,QAAQ,OAAO;AAAA,EAC5B;AACF;AAmCO,IAAM,oBAAoB,CAAC,UAA4B;AAAA,EAC5D,MAAM;AACR,MAAqB,UAAQ,IAAI,SAAS;AACxC,QAAM,QAAQ,KAAK,GAAG,IAAI;AAC1B,MAAI,YAAY;AAChB,MAAI,0BAA0B;AAC9B,MAAI,qBAAqB;AACzB,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,gBAAgB,QAAQ,SAAS,SAAS,iBAAiB,QAAQ,SAAS;AAAA;AAAA,IAElF,OAAO,WAAW,eAAe,OAAO,wBAAwB,OAAO,wBAAwB,qBAAqB,EAAE;AAAA,MAAI,QAAQ,SAAS,aAAa,QAAQ,oBAAoB,qBAAqB,QAAQ,OAAO;AACxN,QAAM,kBAAkB,MAAM;AAG5B,yBAAqB;AACrB,QAAI,yBAAyB;AAC3B,gCAA0B;AAC1B,gBAAU,QAAQ,OAAK,EAAE,CAAC;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,OAAO,OAAO,CAAC,GAAG,OAAO;AAAA;AAAA;AAAA,IAG9B,UAAUC,WAAsB;AAK9B,YAAM,kBAAmC,MAAM,aAAaA,UAAS;AACrE,YAAM,cAAc,MAAM,UAAU,eAAe;AACnD,gBAAU,IAAIA,SAAQ;AACtB,aAAO,MAAM;AACX,oBAAY;AACZ,kBAAU,OAAOA,SAAQ;AAAA,MAC3B;AAAA,IACF;AAAA;AAAA;AAAA,IAGA,SAAS,QAAa;AACpB,UAAI;AAGF,oBAAY,CAAC,QAAQ,OAAO,gBAAgB;AAG5C,kCAA0B,CAAC;AAC3B,YAAI,yBAAyB;AAI3B,cAAI,CAAC,oBAAoB;AACvB,iCAAqB;AACrB,0BAAc,eAAe;AAAA,UAC/B;AAAA,QACF;AAOA,eAAO,MAAM,SAAS,MAAM;AAAA,MAC9B,UAAE;AAEA,oBAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AC1GO,IAAM,2BAA2B,CAA8B,uBAEvC,SAAS,oBAAoB,SAAS;AACnE,QAAM;AAAA,IACJ,YAAY;AAAA,EACd,IAAI,WAAW,CAAC;AAChB,MAAI,gBAAgB,IAAI,MAAuB,kBAAkB;AACjE,MAAI,WAAW;AACb,kBAAc,KAAK,kBAAkB,OAAO,cAAc,WAAW,YAAY,MAAS,CAAC;AAAA,EAC7F;AACA,SAAO;AACT;;;AC8DO,SAAS,eAEY,SAAuE;AACjG,QAAM,uBAAuB,0BAA6B;AAC1D,QAAM;AAAA,IACJ,UAAU;AAAA,IACV;AAAA,IACA,WAAW;AAAA,IACX,2BAA2B;AAAA,IAC3B,iBAAiB;AAAA,IACjB,YAAY;AAAA,EACd,IAAI,WAAW,CAAC;AAChB,MAAI;AACJ,MAAI,OAAO,YAAY,YAAY;AACjC,kBAAc;AAAA,EAChB,eAAW,4BAAc,OAAO,GAAG;AACjC,sBAAc,8BAAgB,OAAO;AAAA,EACvC,OAAO;AACL,UAAM,IAAI,MAAM,QAAwC,wBAAwB,CAAC,IAAI,0HAA0H;AAAA,EACjN;AACA,MAA6C,cAAc,OAAO,eAAe,YAAY;AAC3F,UAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,uCAAuC;AAAA,EAC/H;AACA,MAAI;AACJ,MAAI,OAAO,eAAe,YAAY;AACpC,sBAAkB,WAAW,oBAAoB;AACjD,QAA6C,CAAC,MAAM,QAAQ,eAAe,GAAG;AAC5E,YAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,mFAAmF;AAAA,IAC3K;AAAA,EACF,OAAO;AACL,sBAAkB,qBAAqB;AAAA,EACzC;AACA,MAA6C,gBAAgB,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC5G,UAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,+DAA+D;AAAA,EACvJ;AACA,MAA6C,0BAA0B;AACrE,QAAI,uBAAuB,oBAAI,IAAwB;AACvD,oBAAgB,QAAQ,CAAAC,gBAAc;AACpC,UAAI,qBAAqB,IAAIA,WAAU,GAAG;AACxC,cAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,mHAAmH;AAAA,MAC5M;AACA,2BAAqB,IAAIA,WAAU;AAAA,IACrC,CAAC;AAAA,EACH;AACA,MAAI,eAAe;AACnB,MAAI,UAAU;AACZ,mBAAe,oBAAoB;AAAA;AAAA,MAEjC,OAAO;AAAA,MACP,GAAI,OAAO,aAAa,YAAY;AAAA,IACtC,CAAC;AAAA,EACH;AACA,QAAM,yBAAqB,8BAAgB,GAAG,eAAe;AAC7D,QAAM,sBAAsB,yBAA4B,kBAAkB;AAC1E,MAA6C,aAAa,OAAO,cAAc,YAAY;AACzF,UAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,sCAAsC;AAAA,EAC9H;AACA,MAAI,iBAAiB,OAAO,cAAc,aAAa,UAAU,mBAAmB,IAAI,oBAAoB;AAC5G,MAA6C,CAAC,MAAM,QAAQ,cAAc,GAAG;AAC3E,UAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,2CAA2C;AAAA,EACnI;AACA,MAA6C,eAAe,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC3G,UAAM,IAAI,MAAM,QAAwC,yBAAyB,CAAC,IAAI,6DAA6D;AAAA,EACrJ;AACA,MAA6C,gBAAgB,UAAU,CAAC,eAAe,SAAS,kBAAkB,GAAG;AACnH,YAAQ,MAAM,kIAAkI;AAAA,EAClJ;AACA,QAAM,mBAAuC,aAAa,GAAG,cAAc;AAC3E,aAAO,0BAAY,aAAa,gBAAqB,gBAAgB;AACvE;;;ACTO,SAAS,8BAAiC,iBAAmK;AAClN,QAAM,aAAmC,CAAC;AAC1C,QAAM,iBAAwD,CAAC;AAC/D,MAAI;AACJ,QAAM,UAAU;AAAA,IACd,QAAQ,qBAAuD,SAAyB;AACtF,UAAI,MAAuC;AAMzC,YAAI,eAAe,SAAS,GAAG;AAC7B,gBAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,6EAA6E;AAAA,QACrK;AACA,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,iFAAiF;AAAA,QAC1K;AAAA,MACF;AACA,YAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,8DAA8D;AAAA,MACvJ;AACA,UAAI,QAAQ,YAAY;AACtB,cAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,oFAAuF,IAAI,GAAG;AAAA,MACvL;AACA,iBAAW,IAAI,IAAI;AACnB,aAAO;AAAA,IACT;AAAA,IACA,cAAgF,YAA4D,UAAqE;AAC/M,UAAI,MAAuC;AAEzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,uFAAuF;AAAA,QAChL;AAAA,MACF;AACA,UAAI,SAAS,QAAS,YAAW,WAAW,QAAQ,IAAI,IAAI,SAAS;AACrE,UAAI,SAAS,SAAU,YAAW,WAAW,SAAS,IAAI,IAAI,SAAS;AACvE,UAAI,SAAS,UAAW,YAAW,WAAW,UAAU,IAAI,IAAI,SAAS;AACzE,UAAI,SAAS,QAAS,gBAAe,KAAK;AAAA,QACxC,SAAS,WAAW;AAAA,QACpB,SAAS,SAAS;AAAA,MACpB,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,WAAc,SAAuB,SAA4D;AAC/F,UAAI,MAAuC;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,oFAAoF;AAAA,QAC7K;AAAA,MACF;AACA,qBAAe,KAAK;AAAA,QAClB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,eAAe,SAAiC;AAC9C,UAAI,MAAuC;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,kDAAkD;AAAA,QAC3I;AAAA,MACF;AACA,2BAAqB;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,kBAAgB,OAAO;AACvB,SAAO,CAAC,YAAY,gBAAgB,kBAAkB;AACxD;;;AChKA,SAAS,gBAAmB,GAA0B;AACpD,SAAO,OAAO,MAAM;AACtB;AAqEO,SAAS,cAA0C,cAA6B,sBAAiG;AACtL,MAAI,MAAuC;AACzC,QAAI,OAAO,yBAAyB,UAAU;AAC5C,YAAM,IAAI,MAAM,QAAwC,wBAAwB,CAAC,IAAI,8JAA8J;AAAA,IACrP;AAAA,EACF;AACA,MAAI,CAAC,YAAY,qBAAqB,uBAAuB,IAAI,8BAA8B,oBAAoB;AAGnH,MAAI;AACJ,MAAI,gBAAgB,YAAY,GAAG;AACjC,sBAAkB,MAAM,gBAAgB,aAAa,CAAC;AAAA,EACxD,OAAO;AACL,UAAM,qBAAqB,gBAAgB,YAAY;AACvD,sBAAkB,MAAM;AAAA,EAC1B;AACA,WAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAgB;AAC1D,QAAI,eAAe,CAAC,WAAW,OAAO,IAAI,GAAG,GAAG,oBAAoB,OAAO,CAAC;AAAA,MAC1E;AAAA,IACF,MAAM,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC;AAAA,MAC1B,SAAAC;AAAA,IACF,MAAMA,QAAO,CAAC;AACd,QAAI,aAAa,OAAO,QAAM,CAAC,CAAC,EAAE,EAAE,WAAW,GAAG;AAChD,qBAAe,CAAC,uBAAuB;AAAA,IACzC;AACA,WAAO,aAAa,OAAO,CAAC,eAAe,gBAAmB;AAC5D,UAAI,aAAa;AACf,gBAAI,sBAAQ,aAAa,GAAG;AAI1B,gBAAM,QAAQ;AACd,gBAAM,SAAS,YAAY,OAAO,MAAM;AACxC,cAAI,WAAW,QAAW;AACxB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,WAAW,KAAC,0BAAY,aAAa,GAAG;AAGtC,gBAAM,SAAS,YAAY,eAAsB,MAAM;AACvD,cAAI,WAAW,QAAW;AACxB,gBAAI,kBAAkB,MAAM;AAC1B,qBAAO;AAAA,YACT;AACA,kBAAM,MAAM,mEAAmE;AAAA,UACjF;AACA,iBAAO;AAAA,QACT,OAAO;AAIL,qBAAO,sBAAgB,eAAe,CAAC,UAAoB;AACzD,mBAAO,YAAY,OAAO,MAAM;AAAA,UAClC,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT,GAAG,KAAK;AAAA,EACV;AACA,UAAQ,kBAAkB;AAC1B,SAAO;AACT;;;AClLA,IAAM,UAAU,CAAC,SAAuB,WAAgB;AACtD,MAAI,iBAAiB,OAAO,GAAG;AAC7B,WAAO,QAAQ,MAAM,MAAM;AAAA,EAC7B,OAAO;AACL,WAAO,QAAQ,MAAM;AAAA,EACvB;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,KAAK,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC1D;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,MAAM,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC3D;AACF;AAQO,SAAS,2BAA2B,QAAa,aAAgC;AACtF,MAAI,CAAC,UAAU,CAAC,OAAO,KAAM,QAAO;AACpC,QAAM,oBAAoB,OAAO,OAAO,KAAK,cAAc;AAC3D,QAAM,wBAAwB,YAAY,QAAQ,OAAO,KAAK,aAAa,IAAI;AAC/E,SAAO,qBAAqB;AAC9B;AACA,SAAS,kBAAkB,GAAkD;AAC3E,SAAO,OAAO,EAAE,CAAC,MAAM,cAAc,aAAa,EAAE,CAAC,KAAK,eAAe,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;AACpG;AA2BO,SAAS,aAAsE,aAAkC;AACtH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,SAAS,CAAC;AAAA,EACxE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,UAAU,EAAE,YAAY,CAAC,CAAC;AAAA,EACnC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,OAAO,CAAC;AACrE;AA2BO,SAAS,cAAuE,aAAkC;AACvH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,UAAU,CAAC;AAAA,EACzE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,WAAW,EAAE,YAAY,CAAC,CAAC;AAAA,EACpC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,QAAQ,CAAC;AACtE;AA+BO,SAAS,uBAAgF,aAAkC;AAChI,QAAM,UAAU,CAAC,WAA+B;AAC9C,WAAO,UAAU,OAAO,QAAQ,OAAO,KAAK;AAAA,EAC9C;AACA,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AAAA,EACpD;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC7C;AACA,SAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AACpD;AA2BO,SAAS,eAAwE,aAAkC;AACxH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,CAAC;AAAA,EAC1E;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,YAAY,EAAE,YAAY,CAAC,CAAC;AAAA,EACrC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,SAAS,CAAC;AACvE;AAoCO,SAAS,sBAA+E,aAAkC;AAC/H,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,aAAa,UAAU,CAAC;AAAA,EACjG;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC5C;AACA,SAAO,QAAQ,GAAG,YAAY,QAAQ,gBAAc,CAAC,WAAW,SAAS,WAAW,UAAU,WAAW,SAAS,CAAC,CAAC;AACtH;;;ACzPA,IAAI,cAAc;AAMX,IAAI,SAAS,CAAC,OAAO,OAAO;AACjC,MAAI,KAAK;AAET,MAAI,IAAI;AACR,SAAO,KAAK;AAEV,UAAM,YAAY,KAAK,OAAO,IAAI,KAAK,CAAC;AAAA,EAC1C;AACA,SAAO;AACT;;;ACSA,IAAM,mBAAiD,CAAC,QAAQ,WAAW,SAAS,MAAM;AAC1F,IAAM,kBAAN,MAA6C;AAAA,EAM3C,YAA4B,SAAkC,MAAoB;AAAtD;AAAkC;AAAA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,EADlE;AAEnB;AACA,IAAM,kBAAN,MAA8C;AAAA,EAM5C,YAA4B,SAAkC,MAAqB;AAAvD;AAAkC;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,EADnE;AAEnB;AAQO,IAAM,qBAAqB,CAAC,UAAgC;AACjE,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAM,cAA+B,CAAC;AACtC,eAAW,YAAY,kBAAkB;AACvC,UAAI,OAAO,MAAM,QAAQ,MAAM,UAAU;AACvC,oBAAY,QAAQ,IAAI,MAAM,QAAQ;AAAA,MACxC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,SAAS,OAAO,KAAK;AAAA,EACvB;AACF;AA4MA,IAAM,uBAAuB;AACtB,IAAM,mBAAmC,uBAAM;AACpD,WAASC,kBAA8E,YAAoB,gBAA8E,SAAuG;AAK9R,UAAM,YAAkF,aAAa,aAAa,cAAc,CAAC,SAAmB,WAAmB,KAAe,UAA0B;AAAA,MAC9M;AAAA,MACA,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,UAAoE,aAAa,aAAa,YAAY,CAAC,WAAmB,KAAe,UAAwB;AAAA,MACzK,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,WAAsE,aAAa,aAAa,aAAa,CAAC,OAAqB,WAAmB,KAAe,SAAyB,UAAyB;AAAA,MAC3N;AAAA,MACA,QAAQ,WAAW,QAAQ,kBAAkB,oBAAoB,SAAS,UAAU;AAAA,MACpF,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,mBAAmB,CAAC,CAAC;AAAA,QACrB,eAAe;AAAA,QACf,SAAS,OAAO,SAAS;AAAA,QACzB,WAAW,OAAO,SAAS;AAAA,MAC7B;AAAA,IACF,EAAE;AACF,aAAS,cAAc,KAAe;AAAA,MACpC;AAAA,IACF,IAA8B,CAAC,GAAmE;AAChG,aAAO,CAAC,UAAU,UAAU,UAAU;AACpC,cAAM,YAAY,SAAS,cAAc,QAAQ,YAAY,GAAG,IAAI,OAAO;AAC3E,cAAM,kBAAkB,IAAI,gBAAgB;AAC5C,YAAI;AACJ,YAAI;AACJ,iBAAS,MAAM,QAAiB;AAC9B,wBAAc;AACd,0BAAgB,MAAM;AAAA,QACxB;AACA,YAAI,QAAQ;AACV,cAAI,OAAO,SAAS;AAClB,kBAAM,oBAAoB;AAAA,UAC5B,OAAO;AACL,mBAAO,iBAAiB,SAAS,MAAM,MAAM,oBAAoB,GAAG;AAAA,cAClE,MAAM;AAAA,YACR,CAAC;AAAA,UACH;AAAA,QACF;AACA,cAAM,UAAU,iBAAkB;AAChC,cAAI;AACJ,cAAI;AACF,gBAAI,kBAAkB,SAAS,YAAY,KAAK;AAAA,cAC9C;AAAA,cACA;AAAA,YACF,CAAC;AACD,gBAAI,WAAW,eAAe,GAAG;AAC/B,gCAAkB,MAAM;AAAA,YAC1B;AACA,gBAAI,oBAAoB,SAAS,gBAAgB,OAAO,SAAS;AAE/D,oBAAM;AAAA,gBACJ,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,YACF;AACA,kBAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,6BAAe,MAAM;AACnB,uBAAO;AAAA,kBACL,MAAM;AAAA,kBACN,SAAS,eAAe;AAAA,gBAC1B,CAAC;AAAA,cACH;AACA,8BAAgB,OAAO,iBAAiB,SAAS,cAAc;AAAA,gBAC7D,MAAM;AAAA,cACR,CAAC;AAAA,YACH,CAAC;AACD,qBAAS,QAAQ,WAAW,KAAK,SAAS,iBAAiB;AAAA,cACzD;AAAA,cACA;AAAA,YACF,GAAG;AAAA,cACD;AAAA,cACA;AAAA,YACF,CAAC,CAAC,CAAQ;AACV,0BAAc,MAAM,QAAQ,KAAK,CAAC,gBAAgB,QAAQ,QAAQ,eAAe,KAAK;AAAA,cACpF;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ,gBAAgB;AAAA,cACxB;AAAA,cACA,iBAAkB,CAAC,OAAsB,SAAwB;AAC/D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,cACA,kBAAmB,CAAC,OAAgB,SAAyB;AAC3D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,YACF,CAAC,CAAC,EAAE,KAAK,YAAU;AACjB,kBAAI,kBAAkB,iBAAiB;AACrC,sBAAM;AAAA,cACR;AACA,kBAAI,kBAAkB,iBAAiB;AACrC,uBAAO,UAAU,OAAO,SAAS,WAAW,KAAK,OAAO,IAAI;AAAA,cAC9D;AACA,qBAAO,UAAU,QAAe,WAAW,GAAG;AAAA,YAChD,CAAC,CAAC,CAAC;AAAA,UACL,SAAS,KAAK;AACZ,0BAAc,eAAe,kBAAkB,SAAS,MAAM,WAAW,KAAK,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAY,WAAW,GAAG;AAAA,UAC5I,UAAE;AACA,gBAAI,cAAc;AAChB,8BAAgB,OAAO,oBAAoB,SAAS,YAAY;AAAA,YAClE;AAAA,UACF;AAMA,gBAAM,eAAe,WAAW,CAAC,QAAQ,8BAA8B,SAAS,MAAM,WAAW,KAAM,YAAoB,KAAK;AAChI,cAAI,CAAC,cAAc;AACjB,qBAAS,WAAkB;AAAA,UAC7B;AACA,iBAAO;AAAA,QACT,EAAE;AACF,eAAO,OAAO,OAAO,SAA6B;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AACP,mBAAO,QAAQ,KAAU,YAAY;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAA8E;AAAA,MACjG;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,UAAU,SAAS;AAAA,MACpC;AAAA,IACF,CAAC;AAAA,EACH;AACA,EAAAA,kBAAiB,YAAY,MAAMA;AACnC,SAAOA;AACT,GAAG;AAaI,SAAS,aAA0C,QAAsC;AAC9F,MAAI,OAAO,QAAQ,OAAO,KAAK,mBAAmB;AAChD,UAAM,OAAO;AAAA,EACf;AACA,MAAI,OAAO,OAAO;AAChB,UAAM,OAAO;AAAA,EACf;AACA,SAAO,OAAO;AAChB;AAEA,SAAS,WAAW,OAAuC;AACzD,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,MAAM,SAAS;AAC9E;;;ACjbA,IAAM,mBAAkC,uBAAO,IAAI,4BAA4B;AAExE,IAAM,oBAET;AAAA,EACF,CAAC,gBAAgB,GAAG;AACtB;AAwLO,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,gBAAa;AAHH,SAAAA;AAAA,GAAA;AAgIZ,SAAS,QAAQ,OAAe,WAA2B;AACzD,SAAO,GAAG,KAAK,IAAI,SAAS;AAC9B;AAMO,SAAS,iBAAiB;AAAA,EAC/B;AACF,IAA4B,CAAC,GAAG;AAC9B,QAAM,MAAM,UAAU,aAAa,gBAAgB;AACnD,SAAO,SAASC,aAAmK,SAA0I;AAC3T,UAAM;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,IAChB,IAAI;AACJ,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,6CAA6C;AAAA,IACrI;AACA,QAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,UAAI,QAAQ,iBAAiB,QAAW;AACtC,gBAAQ,MAAM,0GAA0G;AAAA,MAC1H;AAAA,IACF;AACA,UAAM,YAAY,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,qBAA4B,CAAC,IAAI,QAAQ,aAAa,CAAC;AACnI,UAAM,eAAe,OAAO,KAAK,QAAQ;AACzC,UAAM,UAAyC;AAAA,MAC7C,yBAAyB,CAAC;AAAA,MAC1B,yBAAyB,CAAC;AAAA,MAC1B,gBAAgB,CAAC;AAAA,MACjB,eAAe,CAAC;AAAA,IAClB;AACA,UAAM,iBAAuD;AAAA,MAC3D,QAAQ,qBAAuDC,UAA6B;AAC1F,cAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,YAAI,CAAC,MAAM;AACT,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,8DAA8D;AAAA,QACvJ;AACA,YAAI,QAAQ,QAAQ,yBAAyB;AAC3C,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,oFAAoF,IAAI;AAAA,QACjL;AACA,gBAAQ,wBAAwB,IAAI,IAAIA;AACxC,eAAO;AAAA,MACT;AAAA,MACA,WAAW,SAASA,UAAS;AAC3B,gBAAQ,cAAc,KAAK;AAAA,UACzB;AAAA,UACA,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,aAAaC,OAAM,eAAe;AAChC,gBAAQ,eAAeA,KAAI,IAAI;AAC/B,eAAO;AAAA,MACT;AAAA,MACA,kBAAkBA,OAAMD,UAAS;AAC/B,gBAAQ,wBAAwBC,KAAI,IAAID;AACxC,eAAO;AAAA,MACT;AAAA,IACF;AACA,iBAAa,QAAQ,iBAAe;AAClC,YAAM,oBAAoB,SAAS,WAAW;AAC9C,YAAM,iBAAiC;AAAA,QACrC;AAAA,QACA,MAAM,QAAQ,MAAM,WAAW;AAAA,QAC/B,gBAAgB,OAAO,QAAQ,aAAa;AAAA,MAC9C;AACA,UAAI,mCAA0C,iBAAiB,GAAG;AAChE,yCAAiC,gBAAgB,mBAAmB,gBAAgB,GAAG;AAAA,MACzF,OAAO;AACL,sCAAqC,gBAAgB,mBAA0B,cAAc;AAAA,MAC/F;AAAA,IACF,CAAC;AACD,aAAS,eAAe;AACtB,UAAI,MAAuC;AACzC,YAAI,OAAO,QAAQ,kBAAkB,UAAU;AAC7C,gBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,wKAAwK;AAAA,QACjQ;AAAA,MACF;AACA,YAAM,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,GAAG,qBAAqB,MAAS,IAAI,OAAO,QAAQ,kBAAkB,aAAa,8BAA8B,QAAQ,aAAa,IAAI,CAAC,QAAQ,aAAa;AAC7M,YAAM,oBAAoB;AAAA,QACxB,GAAG;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AACA,aAAO,cAAc,QAAQ,cAAc,aAAW;AACpD,iBAAS,OAAO,mBAAmB;AACjC,kBAAQ,QAAQ,KAAK,kBAAkB,GAAG,CAAqB;AAAA,QACjE;AACA,iBAAS,MAAM,QAAQ,eAAe;AACpC,kBAAQ,WAAW,GAAG,SAAS,GAAG,OAAO;AAAA,QAC3C;AACA,iBAAS,KAAK,gBAAgB;AAC5B,kBAAQ,WAAW,EAAE,SAAS,EAAE,OAAO;AAAA,QACzC;AACA,YAAI,oBAAoB;AACtB,kBAAQ,eAAe,kBAAkB;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH;AACA,UAAM,aAAa,CAAC,UAAiB;AACrC,UAAM,wBAAwB,oBAAI,IAAsG;AACxI,UAAM,qBAAqB,oBAAI,QAA0C;AACzE,QAAI;AACJ,aAAS,QAAQ,OAA0B,QAAuB;AAChE,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,OAAO,MAAM;AAAA,IAC/B;AACA,aAAS,kBAAkB;AACzB,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,gBAAgB;AAAA,IAClC;AACA,aAAS,kBAAmEE,cAAiC,WAAW,OAA4I;AAClQ,eAAS,YAAY,OAA6C;AAChE,YAAI,aAAa,MAAMA,YAAW;AAClC,YAAI,OAAO,eAAe,aAAa;AACrC,cAAI,UAAU;AACZ,yBAAa,oBAAoB,oBAAoB,aAAa,eAAe;AAAA,UACnF,WAAW,MAAuC;AAChD,kBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,gEAAgE;AAAA,UACzJ;AAAA,QACF;AACA,eAAO;AAAA,MACT;AACA,eAAS,aAAa,cAAyC,YAAY;AACzE,cAAM,gBAAgB,oBAAoB,uBAAuB,UAAU,MAAM,oBAAI,QAAQ,CAAC;AAC9F,eAAO,oBAAoB,eAAe,aAAa,MAAM;AAC3D,gBAAM,MAA0C,CAAC;AACjD,qBAAW,CAACD,OAAM,QAAQ,KAAK,OAAO,QAAQ,QAAQ,aAAa,CAAC,CAAC,GAAG;AACtE,gBAAIA,KAAI,IAAI,aAAa,UAAU,aAAa,MAAM,oBAAoB,oBAAoB,aAAa,eAAe,GAAG,QAAQ;AAAA,UACvI;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO;AAAA,QACL,aAAAC;AAAA,QACA;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,WAAW;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,QAAkE;AAAA,MACtE;AAAA,MACA;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ;AAAA,MACtB;AAAA,MACA,GAAG,kBAAkB,WAAW;AAAA,MAChC,WAAW,YAAY;AAAA,QACrB,aAAa;AAAA,QACb,GAAG;AAAA,MACL,IAAI,CAAC,GAAG;AACN,cAAM,iBAAiB,WAAW;AAClC,mBAAW,OAAO;AAAA,UAChB,aAAa;AAAA,UACb;AAAA,QACF,GAAG,MAAM;AACT,eAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG,kBAAkB,gBAAgB,IAAI;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AACA,SAAS,aAAyD,UAAa,aAAwC,iBAA8B,UAAoB;AACvK,WAAS,QAAQ,cAAwB,MAAa;AACpD,QAAI,aAAa,YAAY,SAAS;AACtC,QAAI,OAAO,eAAe,aAAa;AACrC,UAAI,UAAU;AACZ,qBAAa,gBAAgB;AAAA,MAC/B,WAAW,MAAuC;AAChD,cAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,gEAAgE;AAAA,MACzJ;AAAA,IACF;AACA,WAAO,SAAS,YAAY,GAAG,IAAI;AAAA,EACrC;AACA,UAAQ,YAAY;AACpB,SAAO;AACT;AAUO,IAAM,cAA6B,iCAAiB;AAkE3D,SAAS,uBAAsD;AAC7D,WAAS,WAAW,gBAAoD,QAAgG;AACtK,WAAO;AAAA,MACL,wBAAwB;AAAA,MACxB;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACA,aAAW,YAAY,MAAM;AAC7B,SAAO;AAAA,IACL,QAAQ,aAAsC;AAC5C,aAAO,OAAO,OAAO;AAAA;AAAA;AAAA,QAGnB,CAAC,YAAY,IAAI,KAAK,MAAsC;AAC1D,iBAAO,YAAY,GAAG,IAAI;AAAA,QAC5B;AAAA,MACF,EAAE,YAAY,IAAI,GAAG;AAAA,QACnB,wBAAwB;AAAA,MAC1B,CAAU;AAAA,IACZ;AAAA,IACA,gBAAgB,SAAS,SAAS;AAChC,aAAO;AAAA,QACL,wBAAwB;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AACA,SAAS,8BAAqC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,GAAmB,yBAGuD,SAA+C;AACvH,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa,yBAAyB;AACxC,QAAI,kBAAkB,CAAC,mCAAmC,uBAAuB,GAAG;AAClF,YAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,2GAA2G;AAAA,IACpM;AACA,kBAAc,wBAAwB;AACtC,sBAAkB,wBAAwB;AAAA,EAC5C,OAAO;AACL,kBAAc;AAAA,EAChB;AACA,UAAQ,QAAQ,MAAM,WAAW,EAAE,kBAAkB,aAAa,WAAW,EAAE,aAAa,aAAa,kBAAkB,aAAa,MAAM,eAAe,IAAI,aAAa,IAAI,CAAC;AACrL;AACA,SAAS,mCAA0C,mBAAqG;AACtJ,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,mCAA0C,mBAA2F;AAC5I,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,iCAAwC;AAAA,EAC/C;AAAA,EACA;AACF,GAAmB,mBAA2E,SAA+C,KAA2C;AACtL,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,wLAA6L;AAAA,EACtR;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,IAAI,MAAM,gBAAgB,OAAc;AACtD,UAAQ,aAAa,aAAa,KAAK;AACvC,MAAI,WAAW;AACb,YAAQ,QAAQ,MAAM,WAAW,SAAS;AAAA,EAC5C;AACA,MAAI,SAAS;AACX,YAAQ,QAAQ,MAAM,SAAS,OAAO;AAAA,EACxC;AACA,MAAI,UAAU;AACZ,YAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,EAC1C;AACA,MAAI,SAAS;AACX,YAAQ,WAAW,MAAM,SAAS,OAAO;AAAA,EAC3C;AACA,UAAQ,kBAAkB,aAAa;AAAA,IACrC,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,IACpB,UAAU,YAAY;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB,CAAC;AACH;AACA,SAAS,OAAO;AAAC;;;AC3qBV,SAAS,wBAAoE;AAClF,SAAO;AAAA,IACL,KAAK,CAAC;AAAA,IACN,UAAU,CAAC;AAAA,EACb;AACF;AACO,SAAS,0BAAkD,cAAoE;AAGpI,WAAS,gBAAgB,kBAAuB,CAAC,GAAG,UAA8C;AAChG,UAAM,QAAQ,OAAO,OAAO,sBAAsB,GAAG,eAAe;AACpE,WAAO,WAAW,aAAa,OAAO,OAAO,QAAQ,IAAI;AAAA,EAC3D;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACVO,SAAS,yBAAiD;AAG/D,WAAS,aAAgB,aAAgD,UAA+B,CAAC,GAAgC;AACvI,UAAM;AAAA,MACJ,gBAAAC,kBAAiB;AAAA,IACnB,IAAI;AACJ,UAAM,YAAY,CAAC,UAA8B,MAAM;AACvD,UAAM,iBAAiB,CAAC,UAA8B,MAAM;AAC5D,UAAM,YAAYA,gBAAe,WAAW,gBAAgB,CAAC,KAAK,aAAkB,IAAI,IAAI,QAAM,SAAS,EAAE,CAAE,CAAC;AAChH,UAAM,WAAW,CAAC,GAAY,OAAW;AACzC,UAAM,aAAa,CAAC,UAAyB,OAAW,SAAS,EAAE;AACnE,UAAM,cAAcA,gBAAe,WAAW,SAAO,IAAI,MAAM;AAC/D,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAYA,gBAAe,gBAAgB,UAAU,UAAU;AAAA,MACjE;AAAA,IACF;AACA,UAAM,2BAA2BA,gBAAe,aAAgD,cAAc;AAC9G,WAAO;AAAA,MACL,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,gBAAgB;AAAA,MAChB,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,aAAaA,gBAAe,aAAa,WAAW;AAAA,MACpD,YAAYA,gBAAe,0BAA0B,UAAU,UAAU;AAAA,IAC3E;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACpCO,IAAM,eAAe;AACrB,SAAS,kCAA0D,SAAuD;AAC/H,QAAM,WAAW,oBAAoB,CAAC,GAAc,UAAuC,QAAQ,KAAK,CAAC;AACzG,SAAO,SAAS,UAAiD,OAAgC;AAC/F,WAAO,SAAS,OAAY,MAAS;AAAA,EACvC;AACF;AACO,SAAS,oBAA+C,SAA+D;AAC5H,SAAO,SAAS,UAAiD,OAAU,KAA8B;AACvG,aAAS,wBAAwBC,MAAoD;AACnF,aAAO,MAAMA,IAAG;AAAA,IAClB;AACA,UAAM,aAAa,CAAC,UAAuC;AACzD,UAAI,wBAAwB,GAAG,GAAG;AAChC,gBAAQ,IAAI,SAAS,KAAK;AAAA,MAC5B,OAAO;AACL,gBAAQ,KAAK,KAAK;AAAA,MACpB;AAAA,IACF;AACA,QAAI,aAA0C,KAAK,GAAG;AAIpD,iBAAW,KAAK;AAGhB,aAAO;AAAA,IACT;AACA,eAAO,sBAAgB,OAAO,UAAU;AAAA,EAC1C;AACF;;;AChCO,SAAS,cAAsC,QAAW,UAA6B;AAC5F,QAAM,MAAM,SAAS,MAAM;AAC3B,MAA6C,QAAQ,QAAW;AAC9D,YAAQ,KAAK,0EAA0E,mEAAmE,+BAA+B,QAAQ,kCAAkC,SAAS,SAAS,CAAC;AAAA,EACxP;AACA,SAAO;AACT;AACO,SAAS,oBAA4C,UAAsD;AAChH,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,eAAW,OAAO,OAAO,QAAQ;AAAA,EACnC;AACA,SAAO;AACT;AACO,SAAS,WAAc,OAAwB;AACpD,aAAQ,sBAAQ,KAAK,QAAI,sBAAQ,KAAK,IAAI;AAC5C;AACO,SAAS,0BAAkD,aAA2C,UAA6B,OAAkE;AAC1M,gBAAc,oBAAoB,WAAW;AAC7C,QAAM,mBAAmB,WAAW,MAAM,GAAG;AAC7C,QAAM,cAAc,IAAI,IAAQ,gBAAgB;AAChD,QAAM,QAAa,CAAC;AACpB,QAAM,WAAW,oBAAI,IAAQ,CAAC,CAAC;AAC/B,QAAM,UAA2B,CAAC;AAClC,aAAW,UAAU,aAAa;AAChC,UAAM,KAAK,cAAc,QAAQ,QAAQ;AACzC,QAAI,YAAY,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,GAAG;AAC3C,cAAQ,KAAK;AAAA,QACX;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAAA,IACH,OAAO;AACL,eAAS,IAAI,EAAE;AACf,YAAM,KAAK,MAAM;AAAA,IACnB;AAAA,EACF;AACA,SAAO,CAAC,OAAO,SAAS,gBAAgB;AAC1C;;;ACnCO,SAAS,2BAAmD,UAAwD;AAEzH,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,OAAO,MAAM,UAAU;AACzB;AAAA,IACF;AACA,UAAM,IAAI,KAAK,GAAqB;AACpC,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,EAAE,OAAO,MAAM,WAAW;AAC5B,YAAM,IAAI,KAAK,GAAqB;AAAA,IACtC;AACA;AACA,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,MAAM,CAAC;AACb,UAAM,WAAW,CAAC;AAClB,mBAAe,aAAa,KAAK;AAAA,EACnC;AACA,WAAS,iBAAiB,KAAS,OAAgB;AACjD,WAAO,kBAAkB,CAAC,GAAG,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,kBAAkB,MAAqB,OAAgB;AAC9D,QAAI,YAAY;AAChB,SAAK,QAAQ,SAAO;AAClB,UAAI,OAAO,MAAM,UAAU;AACzB,eAAQ,MAAM,SAA2B,GAAG;AAC5C,oBAAY;AAAA,MACd;AAAA,IACF,CAAC;AACD,QAAI,WAAW;AACb,YAAM,MAAO,MAAM,IAAa,OAAO,QAAM,MAAM,MAAM,QAAQ;AAAA,IACnE;AAAA,EACF;AACA,WAAS,iBAAiB,OAAgB;AACxC,WAAO,OAAO,OAAO;AAAA,MACnB,KAAK,CAAC;AAAA,MACN,UAAU,CAAC;AAAA,IACb,CAAC;AAAA,EACH;AACA,WAAS,WAAW,MAEjB,QAAuB,OAAmB;AAC3C,UAAMC,YAA2B,MAAM,SAA2B,OAAO,EAAE;AAC3E,QAAIA,cAAa,QAAW;AAC1B,aAAO;AAAA,IACT;AACA,UAAM,UAAa,OAAO,OAAO,CAAC,GAAGA,WAAU,OAAO,OAAO;AAC7D,UAAM,SAAS,cAAc,SAAS,QAAQ;AAC9C,UAAM,YAAY,WAAW,OAAO;AACpC,QAAI,WAAW;AACb,WAAK,OAAO,EAAE,IAAI;AAClB,aAAQ,MAAM,SAA2B,OAAO,EAAE;AAAA,IACpD;AACA;AACA,IAAC,MAAM,SAA2B,MAAM,IAAI;AAC5C,WAAO;AAAA,EACT;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,UAAM,UAEF,CAAC;AACL,UAAM,mBAEF,CAAC;AACL,YAAQ,QAAQ,YAAU;AAExB,UAAI,OAAO,MAAM,MAAM,UAAU;AAE/B,yBAAiB,OAAO,EAAE,IAAI;AAAA,UAC5B,IAAI,OAAO;AAAA;AAAA;AAAA,UAGX,SAAS;AAAA,YACP,GAAG,iBAAiB,OAAO,EAAE,GAAG;AAAA,YAChC,GAAG,OAAO;AAAA,UACZ;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AACD,cAAU,OAAO,OAAO,gBAAgB;AACxC,UAAM,oBAAoB,QAAQ,SAAS;AAC3C,QAAI,mBAAmB;AACrB,YAAM,eAAe,QAAQ,OAAO,YAAU,WAAW,SAAS,QAAQ,KAAK,CAAC,EAAE,SAAS;AAC3F,UAAI,cAAc;AAChB,cAAM,MAAM,OAAO,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAK,cAAc,GAAQ,QAAQ,CAAC;AAAA,MACpF;AAAA,IACF;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,OAAO,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACtF,mBAAe,OAAO,KAAK;AAC3B,sBAAkB,SAAS,KAAK;AAAA,EAClC;AACA,SAAO;AAAA,IACL,WAAW,kCAAkC,gBAAgB;AAAA,IAC7D,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;ACjIO,SAAS,gBAAmB,aAAkB,MAAS,oBAAyC;AACrG,MAAI,WAAW;AACf,MAAI,YAAY,YAAY;AAC5B,SAAO,WAAW,WAAW;AAC3B,QAAI,cAAc,WAAW,cAAc;AAC3C,UAAM,cAAc,YAAY,WAAW;AAC3C,UAAM,MAAM,mBAAmB,MAAM,WAAW;AAChD,QAAI,OAAO,GAAG;AACZ,iBAAW,cAAc;AAAA,IAC3B,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAO;AACT;AACO,SAAS,OAAU,aAAkB,MAAS,oBAAsC;AACzF,QAAM,gBAAgB,gBAAgB,aAAa,MAAM,kBAAkB;AAC3E,cAAY,OAAO,eAAe,GAAG,IAAI;AACzC,SAAO;AACT;AACO,SAAS,yBAAiD,UAA6B,UAAkD;AAE9I,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,2BAA2B,QAAQ;AACvC,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAU,aAA0B;AACrG,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,eAAe,IAAI,IAAQ,eAAe,WAAW,MAAM,GAAG,CAAC;AACrE,UAAM,YAAY,oBAAI,IAAQ;AAC9B,UAAM,SAAS,YAAY,OAAO,WAAS;AACzC,YAAM,UAAU,cAAc,OAAO,QAAQ;AAC7C,YAAM,WAAW,CAAC,UAAU,IAAI,OAAO;AACvC,UAAI,SAAU,WAAU,IAAI,OAAO;AACnC,aAAO,CAAC,aAAa,IAAI,OAAO,KAAK;AAAA,IACvC,CAAC;AACD,QAAI,OAAO,WAAW,GAAG;AACvB,oBAAc,OAAO,MAAM;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,QAAI,uBAAuB,CAAC;AAC5B,kBAAc,oBAAoB,WAAW;AAC7C,QAAI,YAAY,WAAW,GAAG;AAC5B,iBAAW,QAAQ,aAAa;AAC9B,cAAM,WAAW,SAAS,IAAI;AAE9B,6BAAqB,QAAQ,IAAI;AACjC,eAAQ,MAAM,SAA2B,QAAQ;AAAA,MACnD;AACA,oBAAc,oBAAoB,oBAAoB;AACtD,oBAAc,OAAO,WAAW;AAAA,IAClC;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,WAAW,CAAC;AAClB,UAAM,MAAM,CAAC;AACb,mBAAe,aAAa,OAAO,CAAC,CAAC;AAAA,EACvC;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,QAAI,iBAAiB;AACrB,QAAI,cAAc;AAClB,aAAS,UAAU,SAAS;AAC1B,YAAM,SAAyB,MAAM,SAA2B,OAAO,EAAE;AACzE,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,uBAAiB;AACjB,aAAO,OAAO,QAAQ,OAAO,OAAO;AACpC,YAAM,QAAQ,SAAS,MAAM;AAC7B,UAAI,OAAO,OAAO,OAAO;AAGvB,sBAAc;AACd,eAAQ,MAAM,SAA2B,OAAO,EAAE;AAClD,cAAM,WAAY,MAAM,IAAa,QAAQ,OAAO,EAAE;AACtD,cAAM,IAAI,QAAQ,IAAI;AACtB,QAAC,MAAM,SAA2B,KAAK,IAAI;AAAA,MAC7C;AAAA,IACF;AACA,QAAI,gBAAgB;AAClB,oBAAc,OAAO,CAAC,GAAG,gBAAgB,WAAW;AAAA,IACtD;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,SAAS,gBAAgB,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACxG,QAAI,MAAM,QAAQ;AAChB,qBAAe,OAAO,OAAO,gBAAgB;AAAA,IAC/C;AACA,QAAI,QAAQ,QAAQ;AAClB,wBAAkB,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AACA,WAAS,eAAe,GAAuB,GAAuB;AACpE,QAAI,EAAE,WAAW,EAAE,QAAQ;AACzB,aAAO;AAAA,IACT;AACA,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAI,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG;AACjB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,gBAA+B,CAAC,OAAO,YAAY,gBAAgB,gBAAgB;AACvF,UAAM,kBAAkB,WAAW,MAAM,QAAQ;AACjD,UAAM,aAAa,WAAW,MAAM,GAAG;AACvC,UAAM,gBAAgB,MAAM;AAC5B,QAAI,MAAoB;AACxB,QAAI,aAAa;AACf,YAAM,IAAI,IAAI,UAAU;AAAA,IAC1B;AACA,QAAI,iBAAsB,CAAC;AAC3B,eAAW,MAAM,KAAK;AACpB,YAAM,SAAS,gBAAgB,EAAE;AACjC,UAAI,QAAQ;AACV,uBAAe,KAAK,MAAM;AAAA,MAC5B;AAAA,IACF;AACA,UAAM,qBAAqB,eAAe,WAAW;AAGrD,eAAW,QAAQ,YAAY;AAC7B,oBAAc,SAAS,IAAI,CAAC,IAAI;AAChC,UAAI,CAAC,oBAAoB;AAEvB,eAAO,gBAAgB,MAAM,QAAQ;AAAA,MACvC;AAAA,IACF;AACA,QAAI,oBAAoB;AAEtB,uBAAiB,WAAW,MAAM,EAAE,KAAK,QAAQ;AAAA,IACnD,WAAW,gBAAgB;AAEzB,qBAAe,KAAK,QAAQ;AAAA,IAC9B;AACA,UAAM,eAAe,eAAe,IAAI,QAAQ;AAChD,QAAI,CAAC,eAAe,YAAY,YAAY,GAAG;AAC7C,YAAM,MAAM;AAAA,IACd;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;AChKO,SAAS,oBAAuB,UAA6C,CAAC,GAA+B;AAClH,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAiD;AAAA,IAC/C,cAAc;AAAA,IACd,UAAU,CAAC,aAAkB,SAAS;AAAA,IACtC,GAAG;AAAA,EACL;AACA,QAAM,eAAe,eAAe,yBAAyB,UAAU,YAAY,IAAI,2BAA2B,QAAQ;AAC1H,QAAM,eAAe,0BAA0B,YAAY;AAC3D,QAAM,mBAAmB,uBAAoC;AAC7D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;;;ACnCA,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,YAAY;AAClB,IAAM,YAAY;AAGX,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,iBAAN,MAAgD;AAAA,EAGrD,YAAmB,MAA0B;AAA1B;AACjB,SAAK,UAAU,GAAG,IAAI,IAAI,SAAS,aAAa,IAAI;AAAA,EACtD;AAAA,EAJA,OAAO;AAAA,EACP;AAIF;;;AChBO,IAAM,iBAAuG,CAAC,MAAe,aAAqB;AACvJ,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,QAAwC,wBAAwB,EAAE,IAAI,GAAG,QAAQ,oBAAoB;AAAA,EAC3H;AACF;AACO,IAAMC,QAAO,MAAM;AAAC;AACpB,IAAM,iBAAiB,CAAK,SAAqB,UAAUA,UAAqB;AACrF,UAAQ,MAAM,OAAO;AACrB,SAAO;AACT;AACO,IAAM,yBAAyB,CAAC,aAA0B,aAAmC;AAClG,cAAY,iBAAiB,SAAS,UAAU;AAAA,IAC9C,MAAM;AAAA,EACR,CAAC;AACD,SAAO,MAAM,YAAY,oBAAoB,SAAS,QAAQ;AAChE;;;ACNO,IAAM,iBAAiB,CAAC,WAA8B;AAC3D,MAAI,OAAO,SAAS;AAClB,UAAM,IAAI,eAAe,OAAO,MAAM;AAAA,EACxC;AACF;AAOO,SAAS,eAAkB,QAAqB,SAAiC;AACtF,MAAI,UAAUC;AACd,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,UAAM,kBAAkB,MAAM,OAAO,IAAI,eAAe,OAAO,MAAM,CAAC;AACtE,QAAI,OAAO,SAAS;AAClB,sBAAgB;AAChB;AAAA,IACF;AACA,cAAU,uBAAuB,QAAQ,eAAe;AACxD,YAAQ,QAAQ,MAAM,QAAQ,CAAC,EAAE,KAAK,SAAS,MAAM;AAAA,EACvD,CAAC,EAAE,QAAQ,MAAM;AAEf,cAAUA;AAAA,EACZ,CAAC;AACH;AASO,IAAM,UAAU,OAAWC,OAAwB,YAAiD;AACzG,MAAI;AACF,UAAM,QAAQ,QAAQ;AACtB,UAAM,QAAQ,MAAMA,MAAK;AACzB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,EACF,SAAS,OAAY;AACnB,WAAO;AAAA,MACL,QAAQ,iBAAiB,iBAAiB,cAAc;AAAA,MACxD;AAAA,IACF;AAAA,EACF,UAAE;AACA,cAAU;AAAA,EACZ;AACF;AASO,IAAM,cAAc,CAAK,WAAwB;AACtD,SAAO,CAAC,YAAoC;AAC1C,WAAO,eAAe,eAAe,QAAQ,OAAO,EAAE,KAAK,YAAU;AACnE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,CAAC,CAAC;AAAA,EACJ;AACF;AAQO,IAAM,cAAc,CAAC,WAAwB;AAClD,QAAM,QAAQ,YAAkB,MAAM;AACtC,SAAO,CAAC,cAAqC;AAC3C,WAAO,MAAM,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,CAAC,CAAC;AAAA,EAC3E;AACF;;;AC3EA,IAAM;AAAA,EACJ;AACF,IAAI;AAIJ,IAAM,qBAAqB,CAAC;AAC5B,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,mBAAgC,2BAA2C;AAC7F,QAAM,kBAAkB,CAAC,eAAgC,uBAAuB,mBAAmB,MAAM,WAAW,MAAM,kBAAkB,MAAM,CAAC;AACnJ,SAAO,CAAK,cAAqC,SAAsC;AACrF,mBAAe,cAAc,cAAc;AAC3C,UAAM,uBAAuB,IAAI,gBAAgB;AACjD,oBAAgB,oBAAoB;AACpC,UAAM,SAAS,QAAW,YAAwB;AAChD,qBAAe,iBAAiB;AAChC,qBAAe,qBAAqB,MAAM;AAC1C,YAAMC,UAAU,MAAM,aAAa;AAAA,QACjC,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,QAAQ,qBAAqB;AAAA,MAC/B,CAAC;AACD,qBAAe,qBAAqB,MAAM;AAC1C,aAAOA;AAAA,IACT,GAAG,MAAM,qBAAqB,MAAM,aAAa,CAAC;AAClD,QAAI,MAAM,UAAU;AAClB,6BAAuB,KAAK,OAAO,MAAMC,KAAI,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,MACL,QAAQ,YAA2B,iBAAiB,EAAE,MAAM;AAAA,MAC5D,SAAS;AACP,6BAAqB,MAAM,aAAa;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;AACA,IAAM,oBAAoB,CAAK,gBAAwE,WAAwC;AAQ7I,QAAM,OAAO,OAA2C,WAAc,YAAgC;AACpG,mBAAe,MAAM;AAGrB,QAAI,cAAmC,MAAM;AAAA,IAAC;AAC9C,UAAM,eAAe,IAAI,QAAwB,CAAC,SAAS,WAAW;AAEpE,UAAI,gBAAgB,eAAe;AAAA,QACjC;AAAA,QACA,QAAQ,CAAC,QAAQ,gBAAsB;AAErC,sBAAY,YAAY;AAExB,kBAAQ,CAAC,QAAQ,YAAY,SAAS,GAAG,YAAY,iBAAiB,CAAC,CAAC;AAAA,QAC1E;AAAA,MACF,CAAC;AACD,oBAAc,MAAM;AAClB,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,WAAwD,CAAC,YAAY;AAC3E,QAAI,WAAW,MAAM;AACnB,eAAS,KAAK,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,IAAI,CAAC,CAAC;AAAA,IAChF;AACA,QAAI;AACF,YAAM,SAAS,MAAM,eAAe,QAAQ,QAAQ,KAAK,QAAQ,CAAC;AAClE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,UAAE;AAEA,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAQ,CAAC,WAAoC,YAAgC,eAAe,KAAK,WAAW,OAAO,CAAC;AACtH;AACA,IAAM,4BAA4B,CAAC,YAAwC;AACzE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI,MAAM;AACR,gBAAY,aAAa,IAAI,EAAE;AAAA,EACjC,WAAW,eAAe;AACxB,WAAO,cAAe;AACtB,gBAAY,cAAc;AAAA,EAC5B,WAAW,SAAS;AAClB,gBAAY;AAAA,EACd,WAAW,WAAW;AAAA,EAEtB,OAAO;AACL,UAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,yFAAyF;AAAA,EACjL;AACA,iBAAe,QAAQ,kBAAkB;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGO,IAAM,sBAAwE,uBAAO,CAAC,YAAwC;AACnI,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,QAAM,QAAgC;AAAA,IACpC,IAAI,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,oBAAI,IAAqB;AAAA,IAClC,aAAa,MAAM;AACjB,YAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,6BAA6B;AAAA,IACtH;AAAA,EACF;AACA,SAAO;AACT,GAAG;AAAA,EACD,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,oBAAoB,CAAC,aAAyC,YAAwC;AAC1G,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,SAAO,MAAM,KAAK,YAAY,OAAO,CAAC,EAAE,KAAK,WAAS;AACpD,UAAM,uBAAuB,OAAO,SAAS,WAAW,MAAM,SAAS,OAAO,MAAM,cAAc;AAClG,WAAO,wBAAwB,MAAM,WAAW;AAAA,EAClD,CAAC;AACH;AACA,IAAM,wBAAwB,CAAC,UAA2D;AACxF,QAAM,QAAQ,QAAQ,gBAAc;AAClC,eAAW,MAAM,iBAAiB;AAAA,EACpC,CAAC;AACH;AACA,IAAM,gCAAgC,CAAC,aAAyC,uBAAmD;AACjI,SAAO,MAAM;AACX,eAAWC,aAAY,mBAAmB,KAAK,GAAG;AAChD,4BAAsBA,SAAQ;AAAA,IAChC;AACA,gBAAY,MAAM;AAAA,EACpB;AACF;AASA,IAAM,oBAAoB,CAAC,cAAoC,eAAwB,cAAuC;AAC5H,MAAI;AACF,iBAAa,eAAe,SAAS;AAAA,EACvC,SAAS,mBAAmB;AAG1B,eAAW,MAAM;AACf,YAAM;AAAA,IACR,GAAG,CAAC;AAAA,EACN;AACF;AAKO,IAAM,cAA6B,uBAAsB,6BAAa,GAAG,GAAG,MAAM,GAAG;AAAA,EAC1F,WAAW,MAAM;AACnB,CAAC;AAKM,IAAM,oBAAmC,6BAAa,GAAG,GAAG,YAAY;AAKxE,IAAM,iBAAgC,uBAAsB,6BAAa,GAAG,GAAG,SAAS,GAAG;AAAA,EAChG,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,sBAA4C,IAAI,SAAoB;AACxE,UAAQ,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI;AACvC;AAKO,IAAM,2BAA2B,CAAyI,oBAAoE,CAAC,MAAM;AAC1P,QAAM,cAAc,oBAAI,IAA2B;AAInD,QAAM,qBAAqB,oBAAI,IAA2B;AAC1D,QAAM,yBAAyB,CAAC,UAAyB;AACvD,UAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;AAC/C,uBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,EACzC;AACA,QAAM,2BAA2B,CAAC,UAAyB;AACzD,UAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;AAC/C,QAAI,UAAU,GAAG;AACf,yBAAmB,OAAO,KAAK;AAAA,IACjC,OAAO;AACL,yBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,IACzC;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,EACZ,IAAI;AACJ,iBAAe,SAAS,SAAS;AACjC,QAAM,cAAc,CAAC,UAAyB;AAC5C,UAAM,cAAc,MAAM,YAAY,OAAO,MAAM,EAAE;AACrD,gBAAY,IAAI,MAAM,IAAI,KAAK;AAC/B,WAAO,CAAC,kBAA+C;AACrD,YAAM,YAAY;AAClB,UAAI,eAAe,cAAc;AAC/B,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACA,QAAM,iBAAkB,CAAC,YAAwC;AAC/D,UAAM,QAAQ,kBAAkB,aAAa,OAAO,KAAK,oBAAoB,OAAc;AAC3F,WAAO,YAAY,KAAK;AAAA,EAC1B;AACA,SAAO,gBAAgB;AAAA,IACrB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,CAAC,YAA8E;AACnG,UAAM,QAAQ,kBAAkB,aAAa,OAAO;AACpD,QAAI,OAAO;AACT,YAAM,YAAY;AAClB,UAAI,QAAQ,cAAc;AACxB,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,CAAC,CAAC;AAAA,EACX;AACA,SAAO,eAAe;AAAA,IACpB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,iBAAiB,OAAO,OAAwD,QAAiB,KAAoB,qBAAsC;AAC/J,UAAM,yBAAyB,IAAI,gBAAgB;AACnD,UAAM,OAAO,kBAAkB,gBAA6C,uBAAuB,MAAM;AACzG,UAAM,mBAAmC,CAAC;AAC1C,QAAI;AACF,YAAM,QAAQ,IAAI,sBAAsB;AACxC,6BAAuB,KAAK;AAC5B,YAAM,QAAQ,QAAQ,MAAM;AAAA,QAAO;AAAA;AAAA,QAEnC,OAAO,CAAC,GAAG,KAAK;AAAA,UACd;AAAA,UACA,WAAW,CAAC,WAAsC,YAAqB,KAAK,WAAW,OAAO,EAAE,KAAK,OAAO;AAAA,UAC5G;AAAA,UACA,OAAO,YAAY,uBAAuB,MAAM;AAAA,UAChD,OAAO,YAAiB,uBAAuB,MAAM;AAAA,UACrD;AAAA,UACA,QAAQ,uBAAuB;AAAA,UAC/B,MAAM,WAAW,uBAAuB,QAAQ,gBAAgB;AAAA,UAChE,aAAa,MAAM;AAAA,UACnB,WAAW,MAAM;AACf,wBAAY,IAAI,MAAM,IAAI,KAAK;AAAA,UACjC;AAAA,UACA,uBAAuB,MAAM;AAC3B,kBAAM,QAAQ,QAAQ,CAAC,YAAY,GAAG,QAAQ;AAC5C,kBAAI,eAAe,wBAAwB;AACzC,2BAAW,MAAM,iBAAiB;AAClC,oBAAI,OAAO,UAAU;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,QAAQ,MAAM;AACZ,mCAAuB,MAAM,iBAAiB;AAC9C,kBAAM,QAAQ,OAAO,sBAAsB;AAAA,UAC7C;AAAA,UACA,kBAAkB,MAAM;AACtB,2BAAe,uBAAuB,MAAM;AAAA,UAC9C;AAAA,QACF,CAAC;AAAA,MAAC,CAAC;AAAA,IACL,SAAS,eAAe;AACtB,UAAI,EAAE,yBAAyB,iBAAiB;AAC9C,0BAAkB,SAAS,eAAe;AAAA,UACxC,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF,UAAE;AACA,YAAM,QAAQ,IAAI,gBAAgB;AAClC,6BAAuB,MAAM,iBAAiB;AAC9C,+BAAyB,KAAK;AAC9B,YAAM,QAAQ,OAAO,sBAAsB;AAAA,IAC7C;AAAA,EACF;AACA,QAAM,0BAA0B,8BAA8B,aAAa,kBAAkB;AAC7F,QAAM,aAAyE,SAAO,UAAQ,YAAU;AACtG,QAAI,KAAC,uBAAS,MAAM,GAAG;AAErB,aAAO,KAAK,MAAM;AAAA,IACpB;AACA,QAAI,YAAY,MAAM,MAAM,GAAG;AAC7B,aAAO,eAAe,OAAO,OAAc;AAAA,IAC7C;AACA,QAAI,kBAAkB,MAAM,MAAM,GAAG;AACnC,8BAAwB;AACxB;AAAA,IACF;AACA,QAAI,eAAe,MAAM,MAAM,GAAG;AAChC,aAAO,cAAc,OAAO,OAAO;AAAA,IACrC;AAGA,QAAI,gBAAuD,IAAI,SAAS;AAIxE,UAAM,mBAAmB,MAAiB;AACxC,UAAI,kBAAkB,oBAAoB;AACxC,cAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,GAAG,GAAG,qDAAqD;AAAA,MACpJ;AACA,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI;AAEF,eAAS,KAAK,MAAM;AACpB,UAAI,YAAY,OAAO,GAAG;AACxB,cAAM,eAAe,IAAI,SAAS;AAElC,cAAM,kBAAkB,MAAM,KAAK,YAAY,OAAO,CAAC;AACvD,mBAAW,SAAS,iBAAiB;AACnC,cAAI,cAAc;AAClB,cAAI;AACF,0BAAc,MAAM,UAAU,QAAQ,cAAc,aAAa;AAAA,UACnE,SAAS,gBAAgB;AACvB,0BAAc;AACd,8BAAkB,SAAS,gBAAgB;AAAA,cACzC,UAAU;AAAA,YACZ,CAAC;AAAA,UACH;AACA,cAAI,CAAC,aAAa;AAChB;AAAA,UACF;AACA,yBAAe,OAAO,QAAQ,KAAK,gBAAgB;AAAA,QACrD;AAAA,MACF;AAAA,IACF,UAAE;AAEA,sBAAgB;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAClB;AACF;;;ACpXA,IAAM,wBAAwB,CAAsF,gBAA4F;AAAA,EAC9M;AAAA,EACA,SAAS,oBAAI,IAAI;AACnB;AACA,IAAM,gBAAgB,CAAC,eAAuB,CAAC,WAI1C,QAAQ,MAAM,eAAe;AAC3B,IAAM,0BAA0B,MAA2I;AAChL,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,oBAAI,IAAgF;AAC1G,QAAM,iBAAiB,OAAO,OAAO,aAAa,yBAAyB,IAAI,iBAAyD;AAAA,IACtI,SAAS;AAAA,IACT,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,EAAE,GAAG;AAAA,IACH,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,OAAO,OAAO,SAASC,kBAAiB,aAAqD;AACjH,gBAAY,QAAQ,CAAAC,gBAAc;AAChC,0BAAoB,eAAeA,aAAY,qBAAqB;AAAA,IACtE,CAAC;AAAA,EACH,GAAG;AAAA,IACD,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,qBAA0D,SAAO;AACrE,UAAM,oBAAoB,MAAM,KAAK,cAAc,OAAO,CAAC,EAAE,IAAI,WAAS,oBAAoB,MAAM,SAAS,KAAK,MAAM,UAAU,CAAC;AACnI,eAAO,sBAAQ,GAAG,iBAAiB;AAAA,EACrC;AACA,QAAM,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,CAAC;AAC1E,QAAM,aAAqD,SAAO,UAAQ,YAAU;AAClF,QAAI,iBAAiB,MAAM,GAAG;AAC5B,oBAAc,GAAG,OAAO,OAAO;AAC/B,aAAO,IAAI;AAAA,IACb;AACA,WAAO,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM;AAAA,EAC7C;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACnDA,IAAAC,gBAAgC;AAwOhC,IAAM,cAAc,CAAC,mBAA8E,iBAAiB,kBAAkB,OAAO,eAAe,gBAAgB;AAC5K,IAAM,cAAc,CAAC,WAA6C,OAAO,QAA2B,gBAAc,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,aAAa,WAAW,OAAO,CAAC,IAAI,OAAO,QAAQ,UAAU,CAAC;AACvN,IAAM,iBAAiB,OAAO,IAAI,0BAA0B;AAC5D,IAAM,eAAe,CAAC,UAAe,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,cAAc;AACtE,IAAM,gBAAgB,oBAAI,QAAwB;AAClD,IAAM,mBAAmB,CAAwB,OAAc,YAAmD,sBAAoD,oBAAoB,eAAe,OAAO,MAAM,IAAI,MAAM,OAAO;AAAA,EACrO,KAAK,CAAC,QAAQ,MAAM,aAAa;AAC/B,QAAI,SAAS,eAAgB,QAAO;AACpC,UAAM,SAAS,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACjD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,SAAS,kBAAkB,IAAI;AACrC,UAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,YAAM,UAAU,WAAW,IAAI;AAC/B,UAAI,SAAS;AAEX,cAAM,gBAAgB,QAAQ,QAAW;AAAA,UACvC,MAAM,OAAO;AAAA,QACf,CAAC;AACD,YAAI,OAAO,kBAAkB,aAAa;AACxC,gBAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,8BAA8B,KAAK,SAAS,CAAC,mRAAuS;AAAA,QAC5a;AACA,0BAAkB,IAAI,IAAI;AAC1B,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF,CAAC,CAAC;AACF,IAAM,WAAW,CAAC,UAAe;AAC/B,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,UAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,sCAAsC;AAAA,EAC/H;AACA,SAAO,MAAM,cAAc;AAC7B;AACA,IAAM,cAAc,CAAC;AACrB,IAAM,cAA4C,CAAC,QAAQ,gBAAgB;AACpE,SAAS,iBAAkE,QAAsI;AACtN,QAAM,aAAa,OAAO,YAAY,YAAY,MAAM,CAAC;AACzD,QAAM,aAAa,MAAM,OAAO,KAAK,UAAU,EAAE,aAAS,+BAAgB,UAAU,IAAI;AACxF,MAAI,UAAU,WAAW;AACzB,WAAS,gBAAgB,OAAgC,QAAuB;AAC9E,WAAO,QAAQ,OAAO,MAAM;AAAA,EAC9B;AACA,kBAAgB,uBAAuB,MAAM;AAC7C,QAAM,oBAAkD,CAAC;AACzD,QAAM,SAAS,CAAC,OAAqB,SAAuB,CAAC,MAA8B;AACzF,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI;AACJ,UAAM,iBAAiB,WAAW,WAAW;AAC7C,QAAI,CAAC,OAAO,oBAAoB,kBAAkB,mBAAmB,iBAAiB;AACpF,UAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,gBAAQ,MAAM,0DAA0D,WAAW,gDAAgD;AAAA,MACrI;AACA,aAAO;AAAA,IACT;AACA,QAAI,OAAO,oBAAoB,mBAAmB,iBAAiB;AACjE,aAAO,kBAAkB,WAAW;AAAA,IACtC;AACA,eAAW,WAAW,IAAI;AAC1B,cAAU,WAAW;AACrB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,OAAO,OAAO,SAAS,aAAkE,YAAkD,aAA8D;AACxN,WAAO,SAASC,UAAS,UAAiB,MAAY;AACpD,aAAO,WAAW,iBAAiB,cAAc,YAAY,OAAc,GAAG,IAAI,IAAI,OAAO,YAAY,iBAAiB,GAAG,GAAG,IAAI;AAAA,IACtI;AAAA,EACF,GAAG;AAAA,IACD;AAAA,EACF,CAAC;AACD,SAAO,OAAO,OAAO,iBAAiB;AAAA,IACpC;AAAA,IACA;AAAA,EACF,CAAC;AACH;;;AC9SO,SAAS,uBAAuB,MAAc;AACnD,SAAO,iCAAiC,IAAI,oDAAoD,IAAI;AACtG;","names":["import_immer","import_reselect","createSelector","createDraftSafeSelector","args","noop","isActionCreator","stringify","getSerialize","thunkMiddleware","listener","middleware","reducer","createAsyncThunk","ReducerType","createSlice","reducer","name","reducerPath","createSelector","arg","original","noop","noop","task","result","noop","listener","addMiddleware","middleware","import_redux","selector"]}
Index: de_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.production.min.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.production.min.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-"use strict";var Ce=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var Pt=Object.prototype.hasOwnProperty;var Mt=(e,t)=>{for(var n in t)Ce(e,n,{get:t[n],enumerable:!0})},xe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of wt(t))!Pt.call(e,a)&&a!==n&&Ce(e,a,{get:()=>t[a],enumerable:!(r=Rt(t,a))||r.enumerable});return e},M=(e,t,n)=>(xe(e,t,"default"),n&&xe(n,t,"default"));var bt=e=>xe(Ce({},"__esModule",{value:!0}),e);var E={};Mt(E,{ReducerType:()=>Ne,SHOULD_AUTOBATCH:()=>re,TaskAbortError:()=>D,Tuple:()=>V,addListener:()=>me,asyncThunkCreator:()=>rt,autoBatchEnhancer:()=>ae,buildCreateSlice:()=>je,clearAllListeners:()=>Ue,combineSlices:()=>Et,configureStore:()=>Ze,createAction:()=>v,createActionCreatorInvariantMiddleware:()=>Be,createAsyncThunk:()=>de,createDraftSafeSelector:()=>Y,createDraftSafeSelectorCreator:()=>Ee,createDynamicMiddleware:()=>xt,createEntityAdapter:()=>dt,createImmutableStateInvariantMiddleware:()=>He,createListenerMiddleware:()=>gt,createNextState:()=>C.produce,createReducer:()=>ie,createSelector:()=>ge.createSelector,createSelectorCreator:()=>O.createSelectorCreator,createSerializableStateInvariantMiddleware:()=>$e,createSlice:()=>at,current:()=>C.current,findNonSerializableValue:()=>Pe,formatProdErrorMessage:()=>R,freeze:()=>ke.freeze,isActionCreator:()=>ee,isAllOf:()=>z,isAnyOf:()=>L,isAsyncThunkAction:()=>ve,isDraft:()=>C.isDraft,isFluxStandardAction:()=>te,isFulfilled:()=>Ie,isImmutableDefault:()=>Ke,isPending:()=>Me,isPlain:()=>we,isRejected:()=>H,isRejectedWithValue:()=>be,lruMemoize:()=>ge.lruMemoize,miniSerializeError:()=>De,nanoid:()=>j,original:()=>ke.original,prepareAutoBatched:()=>Qe,removeListener:()=>Se,unwrapResult:()=>Oe,weakMapMemoize:()=>O.weakMapMemoize});module.exports=bt(E);M(E,require("redux"),module.exports);var ke=require("immer");var C=require("immer");var ge=require("reselect");var O=require("reselect");var Ee=(...e)=>{let t=(0,O.createSelectorCreator)(...e),n=Object.assign((...r)=>{let a=t(...r),o=(i,...h)=>a((0,C.isDraft)(i)?(0,C.current)(i):i,...h);return Object.assign(o,a),o},{withTypes:()=>n});return n},Y=Ee(O.weakMapMemoize);var P=require("redux");var Ge=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?P.compose:P.compose.apply(null,arguments)},mn=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}};var ne=require("redux-thunk");var Z=e=>e&&typeof e.match=="function";function v(e,t){function n(...r){if(t){let a=t(...r);if(!a)throw new Error(R(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:r[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=r=>(0,P.isAction)(r)&&r.type===e,n}function ee(e){return typeof e=="function"&&"type"in e&&Z(e)}function te(e){return(0,P.isAction)(e)&&Object.keys(e).every(It)}function It(e){return["type","payload","error","meta"].indexOf(e)>-1}function vt(e){let t=e?`${e}`.split("/"):[],n=t[t.length-1]||"actionCreator";return`Detected an action creator with type "${e||"unknown"}" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${n}())\` instead of \`dispatch(${n})\`. This is necessary even if the action has no payload.`}function Be(e={}){return()=>n=>r=>n(r)}var V=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Re(e){return(0,C.isDraftable)(e)?(0,C.produce)(e,()=>{}):e}function N(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function Ke(e){return typeof e!="object"||e==null||Object.isFrozen(e)}function He(e={}){if(1)return()=>r=>a=>r(a);var t,n}function we(e){let t=typeof e;return e==null||t==="string"||t==="boolean"||t==="number"||Array.isArray(e)||(0,P.isPlainObject)(e)}function Pe(e,t="",n=we,r,a=[],o){let i;if(!n(e))return{keyPath:t||"<root>",value:e};if(typeof e!="object"||e===null||o?.has(e))return!1;let h=r!=null?r(e):Object.entries(e),s=a.length>0;for(let[c,y]of h){let A=t?t+"."+c:c;if(!(s&&a.some(f=>f instanceof RegExp?f.test(A):A===f))){if(!n(y))return{keyPath:A,value:y};if(typeof y=="object"&&(i=Pe(y,A,n,r,a,o),i))return i}}return o&&qe(e)&&o.add(e),!1}function qe(e){if(!Object.isFrozen(e))return!1;for(let t of Object.values(e))if(!(typeof t!="object"||t===null)&&!qe(t))return!1;return!0}function $e(e={}){return()=>t=>n=>t(n)}function Dt(e){return typeof e=="boolean"}var Xe=()=>function(t){let{thunk:n=!0,immutableCheck:r=!0,serializableCheck:a=!0,actionCreatorCheck:o=!0}=t??{},i=new V;return n&&(Dt(n)?i.push(ne.thunk):i.push((0,ne.withExtraArgument)(n.extraArgument))),i};var re="RTK_autoBatch",Qe=()=>e=>({payload:e,meta:{[re]:!0}}),Je=e=>t=>{setTimeout(t,e)},ae=(e={type:"raf"})=>t=>(...n)=>{let r=t(...n),a=!0,o=!1,i=!1,h=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:Je(10):e.type==="callback"?e.queueNotification:Je(e.timeout),c=()=>{i=!1,o&&(o=!1,h.forEach(y=>y()))};return Object.assign({},r,{subscribe(y){let A=()=>a&&y(),S=r.subscribe(A);return h.add(y),()=>{S(),h.delete(y)}},dispatch(y){try{return a=!y?.meta?.[re],o=!a,o&&(i||(i=!0,s(c))),r.dispatch(y)}finally{a=!0}}})};var Ye=e=>function(n){let{autoBatch:r=!0}=n??{},a=new V(e);return r&&a.push(ae(typeof r=="object"?r:void 0)),a};function Ze(e){let t=Xe(),{reducer:n=void 0,middleware:r,devTools:a=!0,duplicateMiddlewareCheck:o=!0,preloadedState:i=void 0,enhancers:h=void 0}=e||{},s;if(typeof n=="function")s=n;else if((0,P.isPlainObject)(n))s=(0,P.combineReducers)(n);else throw new Error(R(1));let c;typeof r=="function"?c=r(t):c=t();let y=P.compose;a&&(y=Ge({trace:!1,...typeof a=="object"&&a}));let A=(0,P.applyMiddleware)(...c),S=Ye(A),f=typeof h=="function"?h(S):S(),d=y(...f);return(0,P.createStore)(s,i,d)}function oe(e){let t={},n=[],r,a={addCase(o,i){let h=typeof o=="string"?o:o.type;if(!h)throw new Error(R(28));if(h in t)throw new Error(R(29));return t[h]=i,a},addAsyncThunk(o,i){return i.pending&&(t[o.pending.type]=i.pending),i.rejected&&(t[o.rejected.type]=i.rejected),i.fulfilled&&(t[o.fulfilled.type]=i.fulfilled),i.settled&&n.push({matcher:o.settled,reducer:i.settled}),a},addMatcher(o,i){return n.push({matcher:o,reducer:i}),a},addDefaultCase(o){return r=o,a}};return e(a),[t,n,r]}function Ot(e){return typeof e=="function"}function ie(e,t){let[n,r,a]=oe(t),o;if(Ot(e))o=()=>Re(e());else{let h=Re(e);o=()=>h}function i(h=o(),s){let c=[n[s.type],...r.filter(({matcher:y})=>y(s)).map(({reducer:y})=>y)];return c.filter(y=>!!y).length===0&&(c=[a]),c.reduce((y,A)=>{if(A)if((0,C.isDraft)(y)){let f=A(y,s);return f===void 0?y:f}else{if((0,C.isDraftable)(y))return(0,C.produce)(y,S=>A(S,s));{let S=A(y,s);if(S===void 0){if(y===null)return y;throw Error("A case reducer on a non-draftable value must not return undefined")}return S}}return y},h)}return i.getInitialState=o,i}var et=(e,t)=>Z(e)?e.match(t):e(t);function L(...e){return t=>e.some(n=>et(n,t))}function z(...e){return t=>e.every(n=>et(n,t))}function se(e,t){if(!e||!e.meta)return!1;let n=typeof e.meta.requestId=="string",r=t.indexOf(e.meta.requestStatus)>-1;return n&&r}function q(e){return typeof e[0]=="function"&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function Me(...e){return e.length===0?t=>se(t,["pending"]):q(e)?L(...e.map(t=>t.pending)):Me()(e[0])}function H(...e){return e.length===0?t=>se(t,["rejected"]):q(e)?L(...e.map(t=>t.rejected)):H()(e[0])}function be(...e){let t=n=>n&&n.meta&&n.meta.rejectedWithValue;return e.length===0?z(H(...e),t):q(e)?z(H(...e),t):be()(e[0])}function Ie(...e){return e.length===0?t=>se(t,["fulfilled"]):q(e)?L(...e.map(t=>t.fulfilled)):Ie()(e[0])}function ve(...e){return e.length===0?t=>se(t,["pending","fulfilled","rejected"]):q(e)?L(...e.flatMap(t=>[t.pending,t.rejected,t.fulfilled])):ve()(e[0])}var Nt="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",j=(e=21)=>{let t="",n=e;for(;n--;)t+=Nt[Math.random()*64|0];return t};var jt=["name","message","stack","code"],$=class{constructor(t,n){this.payload=t;this.meta=n}_type},ce=class{constructor(t,n){this.payload=t;this.meta=n}_type},De=e=>{if(typeof e=="object"&&e!==null){let t={};for(let n of jt)typeof e[n]=="string"&&(t[n]=e[n]);return t}return{message:String(e)}},tt="External signal was aborted",de=(()=>{function e(t,n,r){let a=v(t+"/fulfilled",(s,c,y,A)=>({payload:s,meta:{...A||{},arg:y,requestId:c,requestStatus:"fulfilled"}})),o=v(t+"/pending",(s,c,y)=>({payload:void 0,meta:{...y||{},arg:c,requestId:s,requestStatus:"pending"}})),i=v(t+"/rejected",(s,c,y,A,S)=>({payload:A,error:(r&&r.serializeError||De)(s||"Rejected"),meta:{...S||{},arg:y,requestId:c,rejectedWithValue:!!A,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function h(s,{signal:c}={}){return(y,A,S)=>{let f=r?.idGenerator?r.idGenerator(s):j(),d=new AbortController,l,u;function p(T){u=T,d.abort()}c&&(c.aborted?p(tt):c.addEventListener("abort",()=>p(tt),{once:!0}));let g=async function(){let T;try{let k=r?.condition?.(s,{getState:A,extra:S});if(Ft(k)&&(k=await k),k===!1||d.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let b=new Promise((x,w)=>{l=()=>{w({name:"AbortError",message:u||"Aborted"})},d.signal.addEventListener("abort",l,{once:!0})});y(o(f,s,r?.getPendingMeta?.({requestId:f,arg:s},{getState:A,extra:S}))),T=await Promise.race([b,Promise.resolve(n(s,{dispatch:y,getState:A,extra:S,requestId:f,signal:d.signal,abort:p,rejectWithValue:(x,w)=>new $(x,w),fulfillWithValue:(x,w)=>new ce(x,w)})).then(x=>{if(x instanceof $)throw x;return x instanceof ce?a(x.payload,f,s,x.meta):a(x,f,s)})])}catch(k){T=k instanceof $?i(null,f,s,k.payload,k.meta):i(k,f,s)}finally{l&&d.signal.removeEventListener("abort",l)}return r&&!r.dispatchConditionRejection&&i.match(T)&&T.meta.condition||y(T),T}();return Object.assign(g,{abort:p,requestId:f,arg:s,unwrap(){return g.then(Oe)}})}}return Object.assign(h,{pending:o,rejected:i,fulfilled:a,settled:L(i,a),typePrefix:t})}return e.withTypes=()=>e,e})();function Oe(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Ft(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var nt=Symbol.for("rtk-slice-createasyncthunk"),rt={[nt]:de},Ne=(r=>(r.reducer="reducer",r.reducerWithPrepare="reducerWithPrepare",r.asyncThunk="asyncThunk",r))(Ne||{});function Vt(e,t){return`${e}/${t}`}function je({creators:e}={}){let t=e?.asyncThunk?.[nt];return function(r){let{name:a,reducerPath:o=a}=r;if(!a)throw new Error(R(11));typeof process<"u";let i=(typeof r.reducers=="function"?r.reducers(_t()):r.reducers)||{},h=Object.keys(i),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},c={addCase(T,m){let k=typeof T=="string"?T:T.type;if(!k)throw new Error(R(12));if(k in s.sliceCaseReducersByType)throw new Error(R(13));return s.sliceCaseReducersByType[k]=m,c},addMatcher(T,m){return s.sliceMatchers.push({matcher:T,reducer:m}),c},exposeAction(T,m){return s.actionCreators[T]=m,c},exposeCaseReducer(T,m){return s.sliceCaseReducersByName[T]=m,c}};h.forEach(T=>{let m=i[T],k={reducerName:T,type:Vt(a,T),createNotation:typeof r.reducers=="function"};Wt(m)?Gt(k,m,c,t):Ut(k,m,c)});function y(){let[T={},m=[],k=void 0]=typeof r.extraReducers=="function"?oe(r.extraReducers):[r.extraReducers],b={...T,...s.sliceCaseReducersByType};return ie(r.initialState,x=>{for(let w in b)x.addCase(w,b[w]);for(let w of s.sliceMatchers)x.addMatcher(w.matcher,w.reducer);for(let w of m)x.addMatcher(w.matcher,w.reducer);k&&x.addDefaultCase(k)})}let A=T=>T,S=new Map,f=new WeakMap,d;function l(T,m){return d||(d=y()),d(T,m)}function u(){return d||(d=y()),d.getInitialState()}function p(T,m=!1){function k(x){let w=x[T];return typeof w>"u"&&m&&(w=N(f,k,u)),w}function b(x=A){let w=N(S,m,()=>new WeakMap);return N(w,x,()=>{let K={};for(let[Q,W]of Object.entries(r.selectors??{}))K[Q]=Lt(W,x,()=>N(f,x,u),m);return K})}return{reducerPath:T,getSelectors:b,get selectors(){return b(k)},selectSlice:k}}let g={name:a,reducer:l,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:u,...p(o),injectInto(T,{reducerPath:m,...k}={}){let b=m??o;return T.inject({reducerPath:b,reducer:l},k),{...g,...p(b,!0)}}};return g}}function Lt(e,t,n,r){function a(o,...i){let h=t(o);return typeof h>"u"&&r&&(h=n()),e(h,...i)}return a.unwrapped=e,a}var at=je();function _t(){function e(t,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...n}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...n){return t(...n)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:n}},asyncThunk:e}}function Ut({type:e,reducerName:t,createNotation:n},r,a){let o,i;if("reducer"in r){if(n&&!zt(r))throw new Error(R(17));o=r.reducer,i=r.prepare}else o=r;a.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,i?v(e,i):v(e))}function Wt(e){return e._reducerDefinitionType==="asyncThunk"}function zt(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Gt({type:e,reducerName:t},n,r,a){if(!a)throw new Error(R(18));let{payloadCreator:o,fulfilled:i,pending:h,rejected:s,settled:c,options:y}=n,A=a(e,o,y);r.exposeAction(t,A),i&&r.addCase(A.fulfilled,i),h&&r.addCase(A.pending,h),s&&r.addCase(A.rejected,s),c&&r.addMatcher(A.settled,c),r.exposeCaseReducer(t,{fulfilled:i||ue,pending:h||ue,rejected:s||ue,settled:c||ue})}function ue(){}function Bt(){return{ids:[],entities:{}}}function ot(e){function t(n={},r){let a=Object.assign(Bt(),n);return r?e.setAll(a,r):a}return{getInitialState:t}}function it(){function e(t,n={}){let{createSelector:r=Y}=n,a=A=>A.ids,o=A=>A.entities,i=r(a,o,(A,S)=>A.map(f=>S[f])),h=(A,S)=>S,s=(A,S)=>A[S],c=r(a,A=>A.length);if(!t)return{selectIds:a,selectEntities:o,selectAll:i,selectTotal:c,selectById:r(o,h,s)};let y=r(t,o);return{selectIds:r(t,a),selectEntities:y,selectAll:r(t,i),selectTotal:r(t,c),selectById:r(y,h,s)}}return{getSelectors:e}}var Kt=C.isDraft;function st(e){let t=I((n,r)=>e(r));return function(r){return t(r,void 0)}}function I(e){return function(n,r){function a(i){return te(i)}let o=i=>{a(r)?e(r.payload,i):e(r,i)};return Kt(n)?(o(n),n):(0,C.produce)(n,o)}}function _(e,t){return t(e)}function F(e){return Array.isArray(e)||(e=Object.values(e)),e}function X(e){return(0,C.isDraft)(e)?(0,C.current)(e):e}function le(e,t,n){e=F(e);let r=X(n.ids),a=new Set(r),o=[],i=new Set([]),h=[];for(let s of e){let c=_(s,t);a.has(c)||i.has(c)?h.push({id:c,changes:s}):(i.add(c),o.push(s))}return[o,h,r]}function pe(e){function t(d,l){let u=_(d,e);u in l.entities||(l.ids.push(u),l.entities[u]=d)}function n(d,l){d=F(d);for(let u of d)t(u,l)}function r(d,l){let u=_(d,e);u in l.entities||l.ids.push(u),l.entities[u]=d}function a(d,l){d=F(d);for(let u of d)r(u,l)}function o(d,l){d=F(d),l.ids=[],l.entities={},n(d,l)}function i(d,l){return h([d],l)}function h(d,l){let u=!1;d.forEach(p=>{p in l.entities&&(delete l.entities[p],u=!0)}),u&&(l.ids=l.ids.filter(p=>p in l.entities))}function s(d){Object.assign(d,{ids:[],entities:{}})}function c(d,l,u){let p=u.entities[l.id];if(p===void 0)return!1;let g=Object.assign({},p,l.changes),T=_(g,e),m=T!==l.id;return m&&(d[l.id]=T,delete u.entities[l.id]),u.entities[T]=g,m}function y(d,l){return A([d],l)}function A(d,l){let u={},p={};d.forEach(T=>{T.id in l.entities&&(p[T.id]={id:T.id,changes:{...p[T.id]?.changes,...T.changes}})}),d=Object.values(p),d.length>0&&d.filter(m=>c(u,m,l)).length>0&&(l.ids=Object.values(l.entities).map(m=>_(m,e)))}function S(d,l){return f([d],l)}function f(d,l){let[u,p]=le(d,e,l);n(u,l),A(p,l)}return{removeAll:st(s),addOne:I(t),addMany:I(n),setOne:I(r),setMany:I(a),setAll:I(o),updateOne:I(y),updateMany:I(A),upsertOne:I(S),upsertMany:I(f),removeOne:I(i),removeMany:I(h)}}function Ht(e,t,n){let r=0,a=e.length;for(;r<a;){let o=r+a>>>1,i=e[o];n(t,i)>=0?r=o+1:a=o}return r}function qt(e,t,n){let r=Ht(e,t,n);return e.splice(r,0,t),e}function ct(e,t){let{removeOne:n,removeMany:r,removeAll:a}=pe(e);function o(u,p){return i([u],p)}function i(u,p,g){u=F(u);let T=new Set(g??X(p.ids)),m=new Set,k=u.filter(b=>{let x=_(b,e),w=!m.has(x);return w&&m.add(x),!T.has(x)&&w});k.length!==0&&l(p,k)}function h(u,p){return s([u],p)}function s(u,p){let g={};if(u=F(u),u.length!==0){for(let T of u){let m=e(T);g[m]=T,delete p.entities[m]}u=F(g),l(p,u)}}function c(u,p){u=F(u),p.entities={},p.ids=[],i(u,p,[])}function y(u,p){return A([u],p)}function A(u,p){let g=!1,T=!1;for(let m of u){let k=p.entities[m.id];if(!k)continue;g=!0,Object.assign(k,m.changes);let b=e(k);if(m.id!==b){T=!0,delete p.entities[m.id];let x=p.ids.indexOf(m.id);p.ids[x]=b,p.entities[b]=k}}g&&l(p,[],g,T)}function S(u,p){return f([u],p)}function f(u,p){let[g,T,m]=le(u,e,p);g.length&&i(g,p,m),T.length&&A(T,p)}function d(u,p){if(u.length!==p.length)return!1;for(let g=0;g<u.length;g++)if(u[g]!==p[g])return!1;return!0}let l=(u,p,g,T)=>{let m=X(u.entities),k=X(u.ids),b=u.entities,x=k;T&&(x=new Set(k));let w=[];for(let W of x){let ze=m[W];ze&&w.push(ze)}let K=w.length===0;for(let W of p)b[e(W)]=W,K||qt(w,W,t);K?w=p.slice().sort(t):g&&w.sort(t);let Q=w.map(e);d(k,Q)||(u.ids=Q)};return{removeOne:n,removeMany:r,removeAll:a,addOne:I(o),updateOne:I(y),upsertOne:I(S),setOne:I(h),setMany:I(s),setAll:I(c),addMany:I(i),updateMany:I(A),upsertMany:I(f)}}function dt(e={}){let{selectId:t,sortComparer:n}={sortComparer:!1,selectId:i=>i.id,...e},r=n?ct(t,n):pe(t),a=ot(r),o=it();return{selectId:t,sortComparer:n,...a,...o,...r}}var $t="task",ut="listener",lt="completed",Fe="cancelled",pt=`task-${Fe}`,ft=`task-${lt}`,fe=`${ut}-${Fe}`,yt=`${ut}-${lt}`,D=class{constructor(t){this.code=t;this.message=`${$t} ${Fe} (reason: ${t})`}name="TaskAbortError";message};var ye=(e,t)=>{if(typeof e!="function")throw new TypeError(R(32))},G=()=>{},he=(e,t=G)=>(e.catch(t),e),Ae=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t));var U=e=>{if(e.aborted)throw new D(e.reason)};function Ve(e,t){let n=G;return new Promise((r,a)=>{let o=()=>a(new D(e.reason));if(e.aborted){o();return}n=Ae(e,o),t.finally(()=>n()).then(r,a)}).finally(()=>{n=G})}var ht=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(n){return{status:n instanceof D?"cancelled":"rejected",error:n}}finally{t?.()}},J=e=>t=>he(Ve(e,t).then(n=>(U(e),n))),Le=e=>{let t=J(e);return n=>t(new Promise(r=>setTimeout(r,n)))};var{assign:B}=Object,At={},Te="listenerMiddleware",Xt=(e,t)=>{let n=r=>Ae(e,()=>r.abort(e.reason));return(r,a)=>{ye(r,"taskExecutor");let o=new AbortController;n(o);let i=ht(async()=>{U(e),U(o.signal);let h=await r({pause:J(o.signal),delay:Le(o.signal),signal:o.signal});return U(o.signal),h},()=>o.abort(ft));return a?.autoJoin&&t.push(i.catch(G)),{result:J(e)(i),cancel(){o.abort(pt)}}}},Jt=(e,t)=>{let n=async(r,a)=>{U(t);let o=()=>{},h=[new Promise((s,c)=>{let y=e({predicate:r,effect:(A,S)=>{S.unsubscribe(),s([A,S.getState(),S.getOriginalState()])}});o=()=>{y(),c()}})];a!=null&&h.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await Ve(t,Promise.race(h));return U(t),s}finally{o()}};return(r,a)=>he(n(r,a))},St=e=>{let{type:t,actionCreator:n,matcher:r,predicate:a,effect:o}=e;if(t)a=v(t).match;else if(n)t=n.type,a=n.match;else if(r)a=r;else if(!a)throw new Error(R(21));return ye(o,"options.listener"),{predicate:a,type:t,effect:o}},kt=B(e=>{let{type:t,predicate:n,effect:r}=St(e);return{id:j(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw new Error(R(22))}}},{withTypes:()=>kt}),Tt=(e,t)=>{let{type:n,effect:r,predicate:a}=St(t);return Array.from(e.values()).find(o=>(typeof n=="string"?o.type===n:o.predicate===a)&&o.effect===r)},_e=e=>{e.pending.forEach(t=>{t.abort(fe)})},Qt=(e,t)=>()=>{for(let n of t.keys())_e(n);e.clear()},mt=(e,t,n)=>{try{e(t,n)}catch(r){setTimeout(()=>{throw r},0)}},me=B(v(`${Te}/add`),{withTypes:()=>me}),Ue=v(`${Te}/removeAll`),Se=B(v(`${Te}/remove`),{withTypes:()=>Se}),Yt=(...e)=>{console.error(`${Te}/error`,...e)},gt=(e={})=>{let t=new Map,n=new Map,r=f=>{let d=n.get(f)??0;n.set(f,d+1)},a=f=>{let d=n.get(f)??1;d===1?n.delete(f):n.set(f,d-1)},{extra:o,onError:i=Yt}=e;ye(i,"onError");let h=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),d=>{f.unsubscribe(),d?.cancelActive&&_e(f)}),s=f=>{let d=Tt(t,f)??kt(f);return h(d)};B(s,{withTypes:()=>s});let c=f=>{let d=Tt(t,f);return d&&(d.unsubscribe(),f.cancelActive&&_e(d)),!!d};B(c,{withTypes:()=>c});let y=async(f,d,l,u)=>{let p=new AbortController,g=Jt(s,p.signal),T=[];try{f.pending.add(p),r(f),await Promise.resolve(f.effect(d,B({},l,{getOriginalState:u,condition:(m,k)=>g(m,k).then(Boolean),take:g,delay:Le(p.signal),pause:J(p.signal),extra:o,signal:p.signal,fork:Xt(p.signal,T),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((m,k,b)=>{m!==p&&(m.abort(fe),b.delete(m))})},cancel:()=>{p.abort(fe),f.pending.delete(p)},throwIfCancelled:()=>{U(p.signal)}})))}catch(m){m instanceof D||mt(i,m,{raisedBy:"effect"})}finally{await Promise.all(T),p.abort(yt),a(f),f.pending.delete(p)}},A=Qt(t,n);return{middleware:f=>d=>l=>{if(!(0,P.isAction)(l))return d(l);if(me.match(l))return s(l.payload);if(Ue.match(l)){A();return}if(Se.match(l))return c(l.payload);let u=f.getState(),p=()=>{if(u===At)throw new Error(R(23));return u},g;try{if(g=d(l),t.size>0){let T=f.getState(),m=Array.from(t.values());for(let k of m){let b=!1;try{b=k.predicate(l,T,u)}catch(x){b=!1,mt(i,x,{raisedBy:"predicate"})}b&&y(k,l,f,p)}}}finally{u=At}return g},startListening:s,stopListening:c,clearListeners:A}};var Zt=e=>({middleware:e,applied:new Map}),en=e=>t=>t?.meta?.instanceId===e,xt=()=>{let e=j(),t=new Map,n=Object.assign(v("dynamicMiddleware/add",(...h)=>({payload:h,meta:{instanceId:e}})),{withTypes:()=>n}),r=Object.assign(function(...s){s.forEach(c=>{N(t,c,Zt)})},{withTypes:()=>r}),a=h=>{let s=Array.from(t.values()).map(c=>N(c.applied,h,c.middleware));return(0,P.compose)(...s)},o=z(n,en(e));return{middleware:h=>s=>c=>o(c)?(r(...c.payload),h.dispatch):a(h)(s)(c),addMiddleware:r,withMiddleware:n,instanceId:e}};var Ct=require("redux");var tn=e=>"reducerPath"in e&&typeof e.reducerPath=="string",nn=e=>e.flatMap(t=>tn(t)?[[t.reducerPath,t.reducer]]:Object.entries(t)),We=Symbol.for("rtk-state-proxy-original"),rn=e=>!!e&&!!e[We],an=new WeakMap,on=(e,t,n)=>N(an,e,()=>new Proxy(e,{get:(r,a,o)=>{if(a===We)return r;let i=Reflect.get(r,a,o);if(typeof i>"u"){let h=n[a];if(typeof h<"u")return h;let s=t[a];if(s){let c=s(void 0,{type:j()});if(typeof c>"u")throw new Error(R(24));return n[a]=c,c}}return i}})),sn=e=>{if(!rn(e))throw new Error(R(25));return e[We]},cn={},dn=(e=cn)=>e;function Et(...e){let t=Object.fromEntries(nn(e)),n=()=>Object.keys(t).length?(0,Ct.combineReducers)(t):dn,r=n();function a(s,c){return r(s,c)}a.withLazyLoadedSlices=()=>a;let o={},i=(s,c={})=>{let{reducerPath:y,reducer:A}=s,S=t[y];return!c.overrideExisting&&S&&S!==A?(typeof process<"u",a):(c.overrideExisting&&S!==A&&delete o[y],t[y]=A,r=n(),a)},h=Object.assign(function(c,y){return function(S,...f){return c(on(y?y(S,...f):S,t,o),...f)}},{original:sn});return Object.assign(a,{inject:i,selector:h})}function R(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}0&&(module.exports={ReducerType,SHOULD_AUTOBATCH,TaskAbortError,Tuple,addListener,asyncThunkCreator,autoBatchEnhancer,buildCreateSlice,clearAllListeners,combineSlices,configureStore,createAction,createActionCreatorInvariantMiddleware,createAsyncThunk,createDraftSafeSelector,createDraftSafeSelectorCreator,createDynamicMiddleware,createEntityAdapter,createImmutableStateInvariantMiddleware,createListenerMiddleware,createNextState,createReducer,createSelector,createSelectorCreator,createSerializableStateInvariantMiddleware,createSlice,current,findNonSerializableValue,formatProdErrorMessage,freeze,isActionCreator,isAllOf,isAnyOf,isAsyncThunkAction,isDraft,isFluxStandardAction,isFulfilled,isImmutableDefault,isPending,isPlain,isRejected,isRejectedWithValue,lruMemoize,miniSerializeError,nanoid,original,prepareAutoBatched,removeListener,unwrapResult,weakMapMemoize,...require("redux")});
-//# sourceMappingURL=redux-toolkit.production.min.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.production.min.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/cjs/redux-toolkit.production.min.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/immerImports.ts","../../src/reselectImports.ts","../../src/createDraftSafeSelector.ts","../../src/reduxImports.ts","../../src/devtoolsExtension.ts","../../src/getDefaultMiddleware.ts","../../src/tsHelpers.ts","../../src/createAction.ts","../../src/actionCreatorInvariantMiddleware.ts","../../src/utils.ts","../../src/immutableStateInvariantMiddleware.ts","../../src/serializableStateInvariantMiddleware.ts","../../src/autoBatchEnhancer.ts","../../src/getDefaultEnhancers.ts","../../src/configureStore.ts","../../src/mapBuilders.ts","../../src/createReducer.ts","../../src/matchers.ts","../../src/nanoid.ts","../../src/createAsyncThunk.ts","../../src/createSlice.ts","../../src/entities/entity_state.ts","../../src/entities/state_selectors.ts","../../src/entities/state_adapter.ts","../../src/entities/utils.ts","../../src/entities/unsorted_state_adapter.ts","../../src/entities/sorted_state_adapter.ts","../../src/entities/create_adapter.ts","../../src/listenerMiddleware/exceptions.ts","../../src/listenerMiddleware/utils.ts","../../src/listenerMiddleware/task.ts","../../src/listenerMiddleware/index.ts","../../src/dynamicMiddleware/index.ts","../../src/combineSlices.ts","../../src/formatProdErrorMessage.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';","export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';","export { createSelectorCreator, weakMapMemoize } from 'reselect';","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n  /**\n   * The function to identify whether a value is an action creator.\n   * The default checks for a function with a static type property and match method.\n   */\n  isActionCreator?: (action: unknown) => action is Function & {\n    type?: unknown;\n  };\n}\nexport function getMessage(type?: unknown) {\n  const splitType = type ? `${type}`.split('/') : [];\n  const actionName = splitType[splitType.length - 1] || 'actionCreator';\n  return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  }\n  const {\n    isActionCreator = isRTKAction\n  } = options;\n  return () => next => action => {\n    if (isActionCreator(action)) {\n      console.warn(getMessage(action.type));\n    }\n    return next(action);\n  };\n}","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseLike<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  let resolve: any;\n  let reject: any;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    promise,\n    resolve,\n    reject\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n  return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n  return {\n    detectMutations() {\n      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n    }\n  };\n}\ninterface TrackedProperty {\n  value: any;\n  children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n  const tracked: Partial<TrackedProperty> = {\n    value: obj\n  };\n  if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n    checkedObjects.add(obj);\n    tracked.children = {};\n    const hasIgnoredPaths = ignoredPaths.length > 0;\n    for (const key in obj) {\n      const nestedPath = path ? path + '.' + key : key;\n      if (hasIgnoredPaths) {\n        const hasMatches = ignoredPaths.some(ignored => {\n          if (ignored instanceof RegExp) {\n            return ignored.test(nestedPath);\n          }\n          return nestedPath === ignored;\n        });\n        if (hasMatches) {\n          continue;\n        }\n      }\n      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n    }\n  }\n  return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n  wasMutated: boolean;\n  path?: string;\n} {\n  const prevObj = trackedProperty ? trackedProperty.value : undefined;\n  const sameRef = prevObj === obj;\n  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n    return {\n      wasMutated: true,\n      path\n    };\n  }\n  if (isImmutable(prevObj) || isImmutable(obj)) {\n    return {\n      wasMutated: false\n    };\n  }\n\n  // Gather all keys from prev (tracked) and after objs\n  const keysToDetect: Record<string, boolean> = {};\n  for (let key in trackedProperty.children) {\n    keysToDetect[key] = true;\n  }\n  for (let key in obj) {\n    keysToDetect[key] = true;\n  }\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (let key in keysToDetect) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n    if (result.wasMutated) {\n      return result;\n    }\n  }\n  return {\n    wasMutated: false\n  };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n  /**\n    Callback function to check if a value is considered to be immutable.\n    This function is applied recursively to every value contained in the state.\n    The default implementation will return true for primitive types\n    (like numbers, strings, booleans, null and undefined).\n   */\n  isImmutable?: IsImmutableFunc;\n  /**\n    An array of dot-separated path strings that match named nodes from\n    the root state to ignore when checking for immutability.\n    Defaults to undefined\n   */\n  ignoredPaths?: IgnorePaths;\n  /** Print a warning if checks take longer than N ms. Default: 32ms */\n  warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n      return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n    }\n    function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n      let stack: any[] = [],\n        keys: any[] = [];\n      if (!decycler) decycler = function (_: string, value: any) {\n        if (stack[0] === value) return '[Circular ~]';\n        return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n      };\n      return function (this: any, key: string, value: any) {\n        if (stack.length > 0) {\n          var thisPos = stack.indexOf(this);\n          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n          if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n        } else stack.push(value);\n        return serializer == null ? value : serializer.call(this, key, value);\n      };\n    }\n    let {\n      isImmutable = isImmutableDefault,\n      ignoredPaths,\n      warnAfter = 32\n    } = options;\n    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n    return ({\n      getState\n    }) => {\n      let state = getState();\n      let tracker = track(state);\n      let result;\n      return next => action => {\n        const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        const dispatchedAction = next(action);\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n        return dispatchedAction;\n      };\n    };\n  }\n}","import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n  const type = typeof val;\n  return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n  keyPath: string;\n  value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n  let foundNestedSerializable: NonSerializableValue | false;\n  if (!isSerializable(value)) {\n    return {\n      keyPath: path || '<root>',\n      value: value\n    };\n  }\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n  if (cache?.has(value)) return false;\n  const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (const [key, nestedValue] of entries) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    if (!isSerializable(nestedValue)) {\n      return {\n        keyPath: nestedPath,\n        value: nestedValue\n      };\n    }\n    if (typeof nestedValue === 'object') {\n      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n      if (foundNestedSerializable) {\n        return foundNestedSerializable;\n      }\n    }\n  }\n  if (cache && isNestedFrozen(value)) cache.add(value);\n  return false;\n}\nexport function isNestedFrozen(value: object) {\n  if (!Object.isFrozen(value)) return false;\n  for (const nestedValue of Object.values(value)) {\n    if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n    if (!isNestedFrozen(nestedValue)) return false;\n  }\n  return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n  /**\n   * The function to check if a value is considered serializable. This\n   * function is applied recursively to every value contained in the\n   * state. Defaults to `isPlain()`.\n   */\n  isSerializable?: (value: any) => boolean;\n  /**\n   * The function that will be used to retrieve entries from each\n   * value.  If unspecified, `Object.entries` will be used. Defaults\n   * to `undefined`.\n   */\n  getEntries?: (value: any) => [string, any][];\n\n  /**\n   * An array of action types to ignore when checking for serializability.\n   * Defaults to []\n   */\n  ignoredActions?: string[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to\n   * ['meta.arg', 'meta.baseQueryMeta']\n   */\n  ignoredActionPaths?: (string | RegExp)[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to []\n   */\n  ignoredPaths?: (string | RegExp)[];\n  /**\n   * Execution time warning threshold. If the middleware takes longer\n   * than `warnAfter` ms, a warning will be displayed in the console.\n   * Defaults to 32ms.\n   */\n  warnAfter?: number;\n\n  /**\n   * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n   */\n  ignoreState?: boolean;\n\n  /**\n   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n   */\n  ignoreActions?: boolean;\n\n  /**\n   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n   * The cache is automatically disabled if no browser support for WeakSet is present.\n   */\n  disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    const {\n      isSerializable = isPlain,\n      getEntries,\n      ignoredActions = [],\n      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n      ignoredPaths = [],\n      warnAfter = 32,\n      ignoreState = false,\n      ignoreActions = false,\n      disableCache = false\n    } = options;\n    const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n    return storeAPI => next => action => {\n      if (!isAction(action)) {\n        return next(action);\n      }\n      const result = next(action);\n      const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n        measureUtils.measureTime(() => {\n          const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n          if (foundActionNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundActionNonSerializableValue;\n            console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n          }\n        });\n      }\n      if (!ignoreState) {\n        measureUtils.measureTime(() => {\n          const state = storeAPI.getState();\n          const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n          if (foundStateNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundStateNonSerializableValue;\n            console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n      }\n      return result;\n    };\n  }\n}","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * Whether to check for duplicate middleware instances. Defaults to `true`.\n   */\n  duplicateMiddlewareCheck?: boolean;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    duplicateMiddlewareCheck = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n    let middlewareReferences = new Set<Middleware<any, S>>();\n    finalMiddleware.forEach(middleware => {\n      if (middlewareReferences.has(middleware)) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n      }\n      middlewareReferences.add(middleware);\n    });\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n   * @remarks\n   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param asyncThunk - The async thunk action creator itself.\n   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n   * @example\n  ```ts no-transpile\n  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n  const response = await fetch(`https://reqres.in/api/users/${id}`)\n  return (await response.json()).data\n  })\n  const reducer = createReducer(initialState, (builder) => {\n  builder.addAsyncThunk(fetchUserById, {\n    pending: (state, action) => {\n      state.fetchUserById.loading = 'pending'\n    },\n    fulfilled: (state, action) => {\n      state.fetchUserById.data = action.payload\n    },\n    rejected: (state, action) => {\n      state.fetchUserById.error = action.error\n    },\n    settled: (state, action) => {\n      state.fetchUserById.loading = action.meta.requestStatus\n    },\n  })\n  })\n   */\n  addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n      if (process.env.NODE_ENV !== 'production') {\n        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n      if (reducers.settled) actionMatchers.push({\n        matcher: asyncThunk.settled,\n        reducer: reducers.settled\n      });\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n  if (hasMatchFunction(matcher)) {\n    return matcher.match(action);\n  } else {\n    return matcher(action);\n  }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n    return matchers.some(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAllOf<Matchers> => {\n    return matchers.every(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n  if (!action || !action.meta) return false;\n  const hasValidRequestId = typeof action.meta.requestId === 'string';\n  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n  return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n  return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isPending()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejected()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n  rejectValue: infer RejectedValue;\n}> ? {\n  payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  const hasFlag = (action: any): action is any => {\n    return action && action.meta && action.meta.rejectedWithValue;\n  };\n  if (asyncThunks.length === 0) {\n    return isAllOf(isRejected(...asyncThunks), hasFlag);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejectedWithValue()(asyncThunks[0]);\n  }\n  return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isFulfilled()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n  pending: {\n    match: (action: any) => action is any;\n  };\n  fulfilled: {\n    match: (action: any) => action is any;\n  };\n  rejected: {\n    match: (action: any) => action is any;\n  };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isAsyncThunkAction()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\n *\n * @public\n */\nexport let nanoid = (size = 21) => {\n  let id = '';\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size;\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};","import type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n  dispatch: D;\n  getState: () => S;\n  extra: E;\n  requestId: string;\n  signal: AbortSignal;\n  abort: (reason?: string) => void;\n  rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n  fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n  name?: string;\n  message?: string;\n  stack?: string;\n  code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'RejectWithValue';\n  constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'FulfillWithMeta';\n  constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n  if (typeof value === 'object' && value !== null) {\n    const simpleError: SerializedError = {};\n    for (const property of commonProperties) {\n      if (typeof value[property] === 'string') {\n        simpleError[property] = value[property];\n      }\n    }\n    return simpleError;\n  }\n  return {\n    message: String(value)\n  };\n};\nexport type AsyncThunkConfig = {\n  state?: unknown;\n  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n  extra?: unknown;\n  rejectValue?: unknown;\n  serializedErrorType?: unknown;\n  pendingMeta?: unknown;\n  fulfilledMeta?: unknown;\n  rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n  state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n  extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n  dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n  serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n  abort: (reason?: string) => void;\n  requestId: string;\n  arg: ThunkArg;\n  unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n  /**\n   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n   */\n  signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  /**\n   * A method to control whether the asyncThunk should be executed. Has access to the\n   * `arg`, `api.getState()` and `api.extra` arguments.\n   *\n   * @returns `false` if it should be skipped\n   */\n  condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n  /**\n   * If `condition` returns `false`, the asyncThunk will be skipped.\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\n   * will be dispatched or not.\n   *\n   * @default `false`\n   */\n  dispatchConditionRejection?: boolean;\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n  /**\n   * A function to use when generating the `requestId` for the request sequence.\n   *\n   * @default `nanoid`\n   */\n  idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   *\n   * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n   * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n   */\n  getPendingMeta?(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   */\n  getPendingMeta(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'rejected';\n  aborted: boolean;\n  condition: boolean;\n} & (({\n  rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n  rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n  fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n  // matchSettled?\n  settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n  typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  // separate signature without `AsyncThunkConfig` for better inference\n  <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n  function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n    type RejectedValue = GetRejectValue<ThunkApiConfig>;\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n    const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n      payload,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'fulfilled' as const\n      }\n    }));\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n      payload: undefined,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'pending' as const\n      }\n    }));\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n      payload,\n      error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        rejectedWithValue: !!payload,\n        requestStatus: 'rejected' as const,\n        aborted: error?.name === 'AbortError',\n        condition: error?.name === 'ConditionError'\n      }\n    }));\n    function actionCreator(arg: ThunkArg, {\n      signal\n    }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n      return (dispatch, getState, extra) => {\n        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n        const abortController = new AbortController();\n        let abortHandler: (() => void) | undefined;\n        let abortReason: string | undefined;\n        function abort(reason?: string) {\n          abortReason = reason;\n          abortController.abort();\n        }\n        if (signal) {\n          if (signal.aborted) {\n            abort(externalAbortMessage);\n          } else {\n            signal.addEventListener('abort', () => abort(externalAbortMessage), {\n              once: true\n            });\n          }\n        }\n        const promise = async function () {\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n          try {\n            let conditionResult = options?.condition?.(arg, {\n              getState,\n              extra\n            });\n            if (isThenable(conditionResult)) {\n              conditionResult = await conditionResult;\n            }\n            if (conditionResult === false || abortController.signal.aborted) {\n              // eslint-disable-next-line no-throw-literal\n              throw {\n                name: 'ConditionError',\n                message: 'Aborted due to condition callback returning false.'\n              };\n            }\n            const abortedPromise = new Promise<never>((_, reject) => {\n              abortHandler = () => {\n                reject({\n                  name: 'AbortError',\n                  message: abortReason || 'Aborted'\n                });\n              };\n              abortController.signal.addEventListener('abort', abortHandler, {\n                once: true\n              });\n            });\n            dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n              requestId,\n              arg\n            }, {\n              getState,\n              extra\n            })) as any);\n            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n              dispatch,\n              getState,\n              extra,\n              requestId,\n              signal: abortController.signal,\n              abort,\n              rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n                return new RejectWithValue(value, meta);\n              }) as any,\n              fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n                return new FulfillWithMeta(value, meta);\n              }) as any\n            })).then(result => {\n              if (result instanceof RejectWithValue) {\n                throw result;\n              }\n              if (result instanceof FulfillWithMeta) {\n                return fulfilled(result.payload, requestId, arg, result.meta);\n              }\n              return fulfilled(result as any, requestId, arg);\n            })]);\n          } catch (err) {\n            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n          } finally {\n            if (abortHandler) {\n              abortController.signal.removeEventListener('abort', abortHandler);\n            }\n          }\n          // We dispatch the result action _after_ the catch, to avoid having any errors\n          // here get swallowed by the try/catch block,\n          // per https://twitter.com/dan_abramov/status/770914221638942720\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n          if (!skipDispatch) {\n            dispatch(finalAction as any);\n          }\n          return finalAction;\n        }();\n        return Object.assign(promise as SafePromise<any>, {\n          abort,\n          requestId,\n          arg,\n          unwrap() {\n            return promise.then<any>(unwrapResult);\n          }\n        });\n      };\n    }\n    return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n      pending,\n      rejected,\n      fulfilled,\n      settled: isAnyOf(rejected, fulfilled),\n      typePrefix\n    });\n  }\n  createAsyncThunk.withTypes = () => createAsyncThunk;\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n  payload: any;\n  meta?: any;\n  error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n  error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n  if (action.meta && action.meta.rejectedWithValue) {\n    throw action.payload;\n  }\n  if (action.error) {\n    throw action.error;\n  }\n  return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n  return value !== null && typeof value === 'object' && typeof value.then === 'function';\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import type { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n  return {\n    ids: [],\n    entities: {} as Record<Id, T>\n  };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n  function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n  function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n  function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n    const state = Object.assign(getInitialEntityState(), additionalState);\n    return entities ? stateAdapter.setAll(state, entities) : state;\n  }\n  return {\n    getInitialState\n  };\n}","import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n  createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n  function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n  function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n  function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n    const {\n      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n    } = options;\n    const selectIds = (state: EntityState<T, Id>) => state.ids;\n    const selectEntities = (state: EntityState<T, Id>) => state.entities;\n    const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n    const selectId = (_: unknown, id: Id) => id;\n    const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n    const selectTotal = createSelector(selectIds, ids => ids.length);\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n        selectById: createSelector(selectEntities, selectId, selectById)\n      };\n    }\n    const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: selectGlobalizedEntities,\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n      selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n    };\n  }\n  return {\n    getSelectors\n  };\n}","import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n  const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n  return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n    return operator(state as S, undefined);\n  };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n  return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n    function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n      return isFSA(arg);\n    }\n    const runMutator = (draft: DraftableEntityState<T, Id>) => {\n      if (isPayloadActionArgument(arg)) {\n        mutator(arg.payload, draft);\n      } else {\n        mutator(arg, draft);\n      }\n    };\n    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n      // we must already be inside a `createNextState` call, likely because\n      // this is being wrapped in `createReducer` or `createSlice`.\n      // It's safe to just pass the draft to the mutator.\n      runMutator(state);\n\n      // since it's a draft, we'll just return it\n      return state;\n    }\n    return createNextState(state, runMutator);\n  };\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n  const key = selectId(entity);\n  if (process.env.NODE_ENV !== 'production' && key === undefined) {\n    console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n  }\n  return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n  if (!Array.isArray(entities)) {\n    entities = Object.values(entities);\n  }\n  return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n  newEntities = ensureEntitiesArray(newEntities);\n  const existingIdsArray = getCurrent(state.ids);\n  const existingIds = new Set<Id>(existingIdsArray);\n  const added: T[] = [];\n  const addedIds = new Set<Id>([]);\n  const updated: Update<T, Id>[] = [];\n  for (const entity of newEntities) {\n    const id = selectIdValue(entity, selectId);\n    if (existingIds.has(id) || addedIds.has(id)) {\n      updated.push({\n        id,\n        changes: entity\n      });\n    } else {\n      addedIds.add(id);\n      added.push(entity);\n    }\n  }\n  return [added, updated, existingIdsArray];\n}","import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  function addOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (key in state.entities) {\n      return;\n    }\n    state.ids.push(key as Id & Draft<Id>);\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      addOneMutably(entity, state);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (!(key in state.entities)) {\n      state.ids.push(key as Id & Draft<Id>);\n    }\n    ;\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      setOneMutably(entity, state);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.ids = [];\n    state.entities = {} as Record<Id, T>;\n    addManyMutably(newEntities, state);\n  }\n  function removeOneMutably(key: Id, state: R): void {\n    return removeManyMutably([key], state);\n  }\n  function removeManyMutably(keys: readonly Id[], state: R): void {\n    let didMutate = false;\n    keys.forEach(key => {\n      if (key in state.entities) {\n        delete (state.entities as Record<Id, T>)[key];\n        didMutate = true;\n      }\n    });\n    if (didMutate) {\n      state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n    }\n  }\n  function removeAllMutably(state: R): void {\n    Object.assign(state, {\n      ids: [],\n      entities: {}\n    });\n  }\n  function takeNewKey(keys: {\n    [id: string]: Id;\n  }, update: Update<T, Id>, state: R): boolean {\n    const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n    if (original === undefined) {\n      return false;\n    }\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete (state.entities as Record<Id, T>)[update.id];\n    }\n    ;\n    (state.entities as Record<Id, T>)[newKey] = updated;\n    return hasNewKey;\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    const newKeys: {\n      [id: string]: Id;\n    } = {};\n    const updatesPerEntity: {\n      [id: string]: Update<T, Id>;\n    } = {};\n    updates.forEach(update => {\n      // Only apply updates to entities that currently exist\n      if (update.id in state.entities) {\n        // If there are multiple updates to one entity, merge them together\n        updatesPerEntity[update.id] = {\n          id: update.id,\n          // Spreads ignore falsy values, so this works even if there isn't\n          // an existing update already at this key\n          changes: {\n            ...updatesPerEntity[update.id]?.changes,\n            ...update.changes\n          }\n        };\n      }\n    });\n    updates = Object.values(updatesPerEntity);\n    const didMutateEntities = updates.length > 0;\n    if (didMutateEntities) {\n      const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n      if (didMutateIds) {\n        state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n      }\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    addManyMutably(added, state);\n    updateManyMutably(updated, state);\n  }\n  return {\n    removeAll: createSingleArgumentStateOperator(removeAllMutably),\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably)\n  };\n}","import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n  let lowIndex = 0;\n  let highIndex = sortedItems.length;\n  while (lowIndex < highIndex) {\n    let middleIndex = lowIndex + highIndex >>> 1;\n    const currentItem = sortedItems[middleIndex];\n    const res = comparisonFunction(item, currentItem);\n    if (res >= 0) {\n      lowIndex = middleIndex + 1;\n    } else {\n      highIndex = middleIndex;\n    }\n  }\n  return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n  sortedItems.splice(insertAtIndex, 0, item);\n  return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  const {\n    removeOne,\n    removeMany,\n    removeAll\n  } = createUnsortedStateAdapter(selectId);\n  function addOneMutably(entity: T, state: R): void {\n    return addManyMutably([entity], state);\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n    const addedKeys = new Set<Id>();\n    const models = newEntities.filter(model => {\n      const modelId = selectIdValue(model, selectId);\n      const notAdded = !addedKeys.has(modelId);\n      if (notAdded) addedKeys.add(modelId);\n      return !existingKeys.has(modelId) && notAdded;\n    });\n    if (models.length !== 0) {\n      mergeFunction(state, models);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    return setManyMutably([entity], state);\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    let deduplicatedEntities = {} as Record<Id, T>;\n    newEntities = ensureEntitiesArray(newEntities);\n    if (newEntities.length !== 0) {\n      for (const item of newEntities) {\n        const entityId = selectId(item);\n        // For multiple items with the same ID, we should keep the last one.\n        deduplicatedEntities[entityId] = item;\n        delete (state.entities as Record<Id, T>)[entityId];\n      }\n      newEntities = ensureEntitiesArray(deduplicatedEntities);\n      mergeFunction(state, newEntities);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.entities = {} as Record<Id, T>;\n    state.ids = [];\n    addManyMutably(newEntities, state, []);\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    let appliedUpdates = false;\n    let replacedIds = false;\n    for (let update of updates) {\n      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n      if (!entity) {\n        continue;\n      }\n      appliedUpdates = true;\n      Object.assign(entity, update.changes);\n      const newId = selectId(entity);\n      if (update.id !== newId) {\n        // We do support the case where updates can change an item's ID.\n        // This makes things trickier - go ahead and swap the IDs in state now.\n        replacedIds = true;\n        delete (state.entities as Record<Id, T>)[update.id];\n        const oldIndex = (state.ids as Id[]).indexOf(update.id);\n        state.ids[oldIndex] = newId;\n        (state.entities as Record<Id, T>)[newId] = entity;\n      }\n    }\n    if (appliedUpdates) {\n      mergeFunction(state, [], appliedUpdates, replacedIds);\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    if (added.length) {\n      addManyMutably(added, state, existingIdsArray);\n    }\n    if (updated.length) {\n      updateManyMutably(updated, state);\n    }\n  }\n  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] === b[i]) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n  const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n    const currentEntities = getCurrent(state.entities);\n    const currentIds = getCurrent(state.ids);\n    const stateEntities = state.entities as Record<Id, T>;\n    let ids: Iterable<Id> = currentIds;\n    if (replacedIds) {\n      ids = new Set(currentIds);\n    }\n    let sortedEntities: T[] = [];\n    for (const id of ids) {\n      const entity = currentEntities[id];\n      if (entity) {\n        sortedEntities.push(entity);\n      }\n    }\n    const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n    // Insert/overwrite all new/updated\n    for (const item of addedItems) {\n      stateEntities[selectId(item)] = item;\n      if (!wasPreviouslyEmpty) {\n        // Binary search insertion generally requires fewer comparisons\n        insert(sortedEntities, item, comparer);\n      }\n    }\n    if (wasPreviouslyEmpty) {\n      // All we have is the incoming values, sort them\n      sortedEntities = addedItems.slice().sort(comparer);\n    } else if (appliedUpdates) {\n      // We should have a _mostly_-sorted array already\n      sortedEntities.sort(comparer);\n    }\n    const newSortedIds = sortedEntities.map(selectId);\n    if (!areArraysEqual(currentIds, newSortedIds)) {\n      state.ids = newSortedIds;\n    }\n  };\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably)\n  };\n}","import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n  id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n  const {\n    selectId,\n    sortComparer\n  }: Required<EntityAdapterOptions<T, EntityId>> = {\n    sortComparer: false,\n    selectId: (instance: any) => instance.id,\n    ...options\n  };\n  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n  const stateFactory = createInitialStateFactory(stateAdapter);\n  const selectorsFactory = createSelectorsFactory<T, EntityId>();\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter\n  };\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n  if (typeof func !== 'function') {\n    throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n  }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n  promise.catch(onError);\n  return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n  abortSignal.addEventListener('abort', callback, {\n    once: true\n  });\n  return () => abortSignal.removeEventListener('abort', callback);\n};","import { TaskAbortError } from './exceptions';\nimport type { TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    throw new TaskAbortError(signal.reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignal, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => childAbortController.abort(taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        childAbortController.abort(taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    controller.abort(listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n  return () => {\n    for (const listener of executingListeners.keys()) {\n      cancelActiveListeners(listener);\n    }\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n\n  // Track listeners whose effect is currently executing so clearListeners can\n  // abort even listeners that have become unsubscribed while executing.\n  const executingListeners = new Map<ListenerEntry, number>();\n  const trackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 0;\n    executingListeners.set(entry, count + 1);\n  };\n  const untrackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 1;\n    if (count === 1) {\n      executingListeners.delete(entry);\n    } else {\n      executingListeners.set(entry, count - 1);\n    }\n  };\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      trackExecutingListener(entry);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              controller.abort(listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          internalTaskController.abort(listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      internalTaskController.abort(listenerCompleted); // Notify that the task has completed\n      untrackExecutingListener(entry);\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n  middleware,\n  applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n  meta: {\n    instanceId: string;\n  };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n  const instanceId = nanoid();\n  const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n  const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n    payload: middlewares,\n    meta: {\n      instanceId\n    }\n  })), {\n    withTypes: () => withMiddleware\n  }) as WithMiddleware<State, DispatchType>;\n  const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n    middlewares.forEach(middleware => {\n      getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n    });\n  }, {\n    withTypes: () => addMiddleware\n  }) as AddMiddleware<State, DispatchType>;\n  const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n    const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n    return compose(...appliedMiddleware);\n  };\n  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n  const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n    if (isWithMiddleware(action)) {\n      addMiddleware(...action.payload);\n      return api.dispatch;\n    }\n    return getFinalMiddleware(api)(next)(action);\n  };\n  return {\n    middleware,\n    addMiddleware,\n    withMiddleware,\n    instanceId\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const cached = initialStateCache[prop];\n      if (typeof cached !== 'undefined') return cached;\n      const reducer = reducerMap[prop];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        initialStateCache[prop] = reducerResult;\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n  const reducerMap = Object.fromEntries(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const initialStateCache: Record<PropertyKey, unknown> = {};\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    if (config.overrideExisting && currentReducer !== reducerToInject) {\n      delete initialStateCache[reducerPath];\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}"],"mappings":"2eAAA,IAAAA,EAAA,GAAAC,GAAAD,EAAA,iBAAAE,GAAA,qBAAAC,GAAA,mBAAAC,EAAA,UAAAC,EAAA,gBAAAC,GAAA,sBAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,sBAAAC,GAAA,kBAAAC,GAAA,mBAAAC,GAAA,iBAAAC,EAAA,2CAAAC,GAAA,qBAAAC,GAAA,4BAAAC,EAAA,mCAAAC,GAAA,4BAAAC,GAAA,wBAAAC,GAAA,4CAAAC,GAAA,6BAAAC,GAAA,gDAAAC,GAAA,sIAAAC,GAAA,gBAAAC,GAAA,mDAAAC,GAAA,2BAAAC,EAAA,yCAAAC,GAAA,YAAAC,EAAA,YAAAC,EAAA,uBAAAC,GAAA,+CAAAC,GAAA,gBAAAC,GAAA,uBAAAC,GAAA,cAAAC,GAAA,YAAAC,GAAA,eAAAC,EAAA,wBAAAC,GAAA,oDAAAC,GAAA,WAAAC,EAAA,gDAAAC,GAAA,mBAAAC,GAAA,iBAAAC,GAAA,qDAAAC,GAAA3C,GAGA4C,EAAA5C,EAAc,iBAHd,gBAIA,IAAA6C,GAAiC,iBCJjC,IAAAC,EAAiG,iBDOjG,IAAAC,GAA2C,oBEP3C,IAAAC,EAAsD,oBCE/C,IAAMC,GAA+D,IAAIC,IAAoB,CAClG,IAAMC,KAAkB,yBAA8B,GAAGD,CAAI,EACvDE,EAA0B,OAAO,OAAO,IAAIF,IAAoB,CACpE,IAAMG,EAAWF,EAAe,GAAGD,CAAI,EACjCI,EAAkB,CAACC,KAAmBC,IAAoBH,KAAS,WAAQE,CAAK,KAAI,WAAQA,CAAK,EAAIA,EAAO,GAAGC,CAAI,EACzH,cAAO,OAAOF,EAAiBD,CAAQ,EAChCC,CACT,EAAG,CACD,UAAW,IAAMF,CACnB,CAAC,EACD,OAAOA,CACT,EASaA,EACbH,GAA+B,gBAAc,ECvB7C,IAAAQ,EAAgG,iBCmNzF,IAAMC,GAA2C,OAAO,OAAW,KAAgB,OAAe,qCAAwC,OAAe,qCAAuC,UAAY,CACjN,GAAI,UAAU,SAAW,EACzB,OAAI,OAAO,UAAU,CAAC,GAAM,SAAiB,UACtC,UAAQ,MAAM,KAAM,SAA8B,CAC3D,EAKaC,GAET,OAAO,OAAW,KAAgB,OAAe,6BAAgC,OAAe,6BAA+B,UAAY,CAC7I,OAAO,SAAUC,EAAM,CACrB,OAAOA,CACT,CACF,EChOA,IAAAC,GAA4D,uBCqFrD,IAAMC,EAAwBC,GAC5BA,GAAK,OAAQA,EAA0B,OAAU,WC6GnD,SAASC,EAAaC,EAAcC,EAA+B,CACxE,SAASC,KAAiBC,EAAa,CACrC,GAAIF,EAAe,CACjB,IAAIG,EAAWH,EAAc,GAAGE,CAAI,EACpC,GAAI,CAACC,EACH,MAAM,IAAI,MAA8CC,EAAwB,CAAC,CAA4C,EAE/H,MAAO,CACL,KAAAL,EACA,QAASI,EAAS,QAClB,GAAI,SAAUA,GAAY,CACxB,KAAMA,EAAS,IACjB,EACA,GAAI,UAAWA,GAAY,CACzB,MAAOA,EAAS,KAClB,CACF,CACF,CACA,MAAO,CACL,KAAAJ,EACA,QAASG,EAAK,CAAC,CACjB,CACF,CACA,OAAAD,EAAc,SAAW,IAAM,GAAGF,CAAI,GACtCE,EAAc,KAAOF,EACrBE,EAAc,MAASI,MAA6C,YAASA,CAAM,GAAKA,EAAO,OAASN,EACjGE,CACT,CAKO,SAASK,GAAgBD,EAA0E,CACxG,OAAO,OAAOA,GAAW,YAAc,SAAUA,GAEjDE,EAAiBF,CAAa,CAChC,CAKO,SAASG,GAAMH,EAKpB,CACA,SAAO,YAASA,CAAM,GAAK,OAAO,KAAKA,CAAM,EAAE,MAAMI,EAAU,CACjE,CACA,SAASA,GAAWC,EAAa,CAC/B,MAAO,CAAC,OAAQ,UAAW,QAAS,MAAM,EAAE,QAAQA,CAAG,EAAI,EAC7D,CC7OO,SAASC,GAAWC,EAAgB,CACzC,IAAMC,EAAYD,EAAO,GAAGA,CAAI,GAAG,MAAM,GAAG,EAAI,CAAC,EAC3CE,EAAaD,EAAUA,EAAU,OAAS,CAAC,GAAK,gBACtD,MAAO,yCAAyCD,GAAQ,SAAS;AAAA,kFACeE,CAAU,+BAA+BA,CAAU,2DACrI,CACO,SAASC,GAAuCC,EAAmD,CAAC,EAAe,CAEtH,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,CAW9C,CCLO,IAAMC,EAAN,MAAMC,UAAyD,KAAqB,CAGzF,eAAeC,EAAc,CAC3B,MAAM,GAAGA,CAAK,EACd,OAAO,eAAe,KAAMD,EAAM,SAAS,CAC7C,CACA,WAAqB,OAAO,OAAO,GAAI,CACrC,OAAOA,CACT,CAIS,UAAUE,EAAY,CAC7B,OAAO,MAAM,OAAO,MAAM,KAAMA,CAAG,CACrC,CAIA,WAAWA,EAAY,CACrB,OAAIA,EAAI,SAAW,GAAK,MAAM,QAAQA,EAAI,CAAC,CAAC,EACnC,IAAIF,EAAM,GAAGE,EAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAElC,IAAIF,EAAM,GAAGE,EAAI,OAAO,IAAI,CAAC,CACtC,CACF,EACO,SAASC,GAAmBC,EAAQ,CACzC,SAAO,eAAYA,CAAG,KAAI,WAAgBA,EAAK,IAAM,CAAC,CAAC,EAAIA,CAC7D,CASO,SAASC,EAAyCC,EAAgCC,EAAQC,EAA2B,CAC1H,OAAIF,EAAI,IAAIC,CAAG,EAAUD,EAAI,IAAIC,CAAG,EAC7BD,EAAI,IAAIC,EAAKC,EAAQD,CAAG,CAAC,EAAE,IAAIA,CAAG,CAC3C,CCtDO,SAASE,GAAmBC,EAAyB,CAC1D,OAAO,OAAOA,GAAU,UAAYA,GAAS,MAAQ,OAAO,SAASA,CAAK,CAC5E,CA0HO,SAASC,GAAwCC,EAAoD,CAAC,EAAe,CAC1H,GAAI,EACF,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,EAEjC,IAAAC,EAGAC,CAuDb,CCxLO,SAASC,GAAQC,EAAU,CAChC,IAAMC,EAAO,OAAOD,EACpB,OAAOA,GAAO,MAAQC,IAAS,UAAYA,IAAS,WAAaA,IAAS,UAAY,MAAM,QAAQD,CAAG,MAAK,iBAAcA,CAAG,CAC/H,CAUO,SAASE,GAAyBC,EAAgBC,EAAe,GAAIC,EAA8CN,GAASO,EAAkDC,EAA4B,CAAC,EAAGC,EAAuD,CAC1Q,IAAIC,EACJ,GAAI,CAACJ,EAAeF,CAAK,EACvB,MAAO,CACL,QAASC,GAAQ,SACjB,MAAOD,CACT,EAKF,GAHI,OAAOA,GAAU,UAAYA,IAAU,MAGvCK,GAAO,IAAIL,CAAK,EAAG,MAAO,GAC9B,IAAMO,EAAUJ,GAAc,KAAOA,EAAWH,CAAK,EAAI,OAAO,QAAQA,CAAK,EACvEQ,EAAkBJ,EAAa,OAAS,EAC9C,OAAW,CAACK,EAAKC,CAAW,IAAKH,EAAS,CACxC,IAAMI,EAAaV,EAAOA,EAAO,IAAMQ,EAAMA,EAC7C,GAAI,EAAAD,GACiBJ,EAAa,KAAKQ,GAC/BA,aAAmB,OACdA,EAAQ,KAAKD,CAAU,EAEzBA,IAAeC,CACvB,GAKH,IAAI,CAACV,EAAeQ,CAAW,EAC7B,MAAO,CACL,QAASC,EACT,MAAOD,CACT,EAEF,GAAI,OAAOA,GAAgB,WACzBJ,EAA0BP,GAAyBW,EAAaC,EAAYT,EAAgBC,EAAYC,EAAcC,CAAK,EACvHC,GACF,OAAOA,EAGb,CACA,OAAID,GAASQ,GAAeb,CAAK,GAAGK,EAAM,IAAIL,CAAK,EAC5C,EACT,CACO,SAASa,GAAeb,EAAe,CAC5C,GAAI,CAAC,OAAO,SAASA,CAAK,EAAG,MAAO,GACpC,QAAWU,KAAe,OAAO,OAAOV,CAAK,EAC3C,GAAI,SAAOU,GAAgB,UAAYA,IAAgB,OACnD,CAACG,GAAeH,CAAW,EAAG,MAAO,GAE3C,MAAO,EACT,CAwEO,SAASI,GAA2CC,EAAuD,CAAC,EAAe,CAE9H,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,CAmD9C,CN3LA,SAASC,GAAUC,EAAsB,CACvC,OAAO,OAAOA,GAAM,SACtB,CAuBO,IAAMC,GAA4B,IAAyC,SAA8BC,EAAS,CACvH,GAAM,CACJ,MAAAC,EAAQ,GACR,eAAAC,EAAiB,GACjB,kBAAAC,EAAoB,GACpB,mBAAAC,EAAqB,EACvB,EAAIJ,GAAW,CAAC,EACZK,EAAkB,IAAIC,EAC1B,OAAIL,IACEJ,GAAUI,CAAK,EACjBI,EAAgB,KAAK,GAAAE,KAAe,EAEpCF,EAAgB,QAAK,sBAAkBJ,EAAM,aAAa,CAAC,GA4BxDI,CACT,EO/EO,IAAMG,GAAmB,gBACnBC,GAAqB,IAAWC,IAGvC,CACJ,QAAAA,EACA,KAAM,CACJ,CAACF,EAAgB,EAAG,EACtB,CACF,GACMG,GAAwBC,GACpBC,GAAuB,CAC7B,WAAWA,EAAQD,CAAO,CAC5B,EAoCWE,GAAoB,CAACC,EAA4B,CAC5D,KAAM,KACR,IAAqBC,GAAQ,IAAIC,IAAS,CACxC,IAAMC,EAAQF,EAAK,GAAGC,CAAI,EACtBE,EAAY,GACZC,EAA0B,GAC1BC,EAAqB,GACnBC,EAAY,IAAI,IAChBC,EAAgBR,EAAQ,OAAS,OAAS,eAAiBA,EAAQ,OAAS,MAElF,OAAO,OAAW,KAAe,OAAO,sBAAwB,OAAO,sBAAwBJ,GAAqB,EAAE,EAAII,EAAQ,OAAS,WAAaA,EAAQ,kBAAoBJ,GAAqBI,EAAQ,OAAO,EAClNS,EAAkB,IAAM,CAG5BH,EAAqB,GACjBD,IACFA,EAA0B,GAC1BE,EAAU,QAAQG,GAAKA,EAAE,CAAC,EAE9B,EACA,OAAO,OAAO,OAAO,CAAC,EAAGP,EAAO,CAG9B,UAAUQ,EAAsB,CAK9B,IAAMC,EAAmC,IAAMR,GAAaO,EAAS,EAC/DE,EAAcV,EAAM,UAAUS,CAAe,EACnD,OAAAL,EAAU,IAAII,CAAQ,EACf,IAAM,CACXE,EAAY,EACZN,EAAU,OAAOI,CAAQ,CAC3B,CACF,EAGA,SAASG,EAAa,CACpB,GAAI,CAGF,OAAAV,EAAY,CAACU,GAAQ,OAAOrB,EAAgB,EAG5CY,EAA0B,CAACD,EACvBC,IAIGC,IACHA,EAAqB,GACrBE,EAAcC,CAAe,IAS1BN,EAAM,SAASW,CAAM,CAC9B,QAAE,CAEAV,EAAY,EACd,CACF,CACF,CAAC,CACH,EC1GO,IAAMW,GAAyDC,GAEvC,SAA6BC,EAAS,CACnE,GAAM,CACJ,UAAAC,EAAY,EACd,EAAID,GAAW,CAAC,EACZE,EAAgB,IAAIC,EAAuBJ,CAAkB,EACjE,OAAIE,GACFC,EAAc,KAAKE,GAAkB,OAAOH,GAAc,SAAWA,EAAY,MAAS,CAAC,EAEtFC,CACT,EC8DO,SAASG,GAEYC,EAAuE,CACjG,IAAMC,EAAuBC,GAA6B,EACpD,CACJ,QAAAC,EAAU,OACV,WAAAC,EACA,SAAAC,EAAW,GACX,yBAAAC,EAA2B,GAC3B,eAAAC,EAAiB,OACjB,UAAAC,EAAY,MACd,EAAIR,GAAW,CAAC,EACZS,EACJ,GAAI,OAAON,GAAY,WACrBM,EAAcN,aACL,iBAAcA,CAAO,EAC9BM,KAAc,mBAAgBN,CAAO,MAErC,OAAM,IAAI,MAA8CO,EAAwB,CAAC,CAA8H,EAKjN,IAAIC,EACA,OAAOP,GAAe,WACxBO,EAAkBP,EAAWH,CAAoB,EAKjDU,EAAkBV,EAAqB,EAczC,IAAIW,EAAe,UACfP,IACFO,EAAeC,GAAoB,CAEjC,MAAO,GACP,GAAI,OAAOR,GAAa,UAAYA,CACtC,CAAC,GAEH,IAAMS,KAAqB,mBAAgB,GAAGH,CAAe,EACvDI,EAAsBC,GAA4BF,CAAkB,EAItEG,EAAiB,OAAOT,GAAc,WAAaA,EAAUO,CAAmB,EAAIA,EAAoB,EAUtGG,EAAuCN,EAAa,GAAGK,CAAc,EAC3E,SAAO,eAAYR,EAAaF,EAAqBW,CAAgB,CACvE,CCTO,SAASC,GAAiCC,EAAmK,CAClN,IAAMC,EAAmC,CAAC,EACpCC,EAAwD,CAAC,EAC3DC,EACEC,EAAU,CACd,QAAQC,EAAuDC,EAAyB,CActF,IAAMC,EAAO,OAAOF,GAAwB,SAAWA,EAAsBA,EAAoB,KACjG,GAAI,CAACE,EACH,MAAM,IAAI,MAA8CC,EAAyB,EAAE,CAAkE,EAEvJ,GAAID,KAAQN,EACV,MAAM,IAAI,MAA8CO,EAAyB,EAAE,CAAkG,EAEvL,OAAAP,EAAWM,CAAI,EAAID,EACZF,CACT,EACA,cAAgFK,EAA4DC,EAAqE,CAO/M,OAAIA,EAAS,UAAST,EAAWQ,EAAW,QAAQ,IAAI,EAAIC,EAAS,SACjEA,EAAS,WAAUT,EAAWQ,EAAW,SAAS,IAAI,EAAIC,EAAS,UACnEA,EAAS,YAAWT,EAAWQ,EAAW,UAAU,IAAI,EAAIC,EAAS,WACrEA,EAAS,SAASR,EAAe,KAAK,CACxC,QAASO,EAAW,QACpB,QAASC,EAAS,OACpB,CAAC,EACMN,CACT,EACA,WAAcO,EAAuBL,EAA4D,CAM/F,OAAAJ,EAAe,KAAK,CAClB,QAAAS,EACA,QAAAL,CACF,CAAC,EACMF,CACT,EACA,eAAeE,EAAiC,CAM9C,OAAAH,EAAqBG,EACdF,CACT,CACF,EACA,OAAAJ,EAAgBI,CAAO,EAChB,CAACH,EAAYC,EAAgBC,CAAkB,CACxD,CChKA,SAASS,GAAmBC,EAA0B,CACpD,OAAO,OAAOA,GAAM,UACtB,CAqEO,SAASC,GAA0CC,EAA6BC,EAAiG,CAMtL,GAAI,CAACC,EAAYC,EAAqBC,CAAuB,EAAIC,GAA8BJ,CAAoB,EAG/GK,EACJ,GAAIT,GAAgBG,CAAY,EAC9BM,EAAkB,IAAMC,GAAgBP,EAAa,CAAC,MACjD,CACL,IAAMQ,EAAqBD,GAAgBP,CAAY,EACvDM,EAAkB,IAAME,CAC1B,CACA,SAASC,EAAQC,EAAQJ,EAAgB,EAAGK,EAAgB,CAC1D,IAAIC,EAAe,CAACV,EAAWS,EAAO,IAAI,EAAG,GAAGR,EAAoB,OAAO,CAAC,CAC1E,QAAAU,CACF,IAAMA,EAAQF,CAAM,CAAC,EAAE,IAAI,CAAC,CAC1B,QAAAF,CACF,IAAMA,CAAO,CAAC,EACd,OAAIG,EAAa,OAAOE,GAAM,CAAC,CAACA,CAAE,EAAE,SAAW,IAC7CF,EAAe,CAACR,CAAuB,GAElCQ,EAAa,OAAO,CAACG,EAAeC,IAAmB,CAC5D,GAAIA,EACF,MAAI,WAAQD,CAAa,EAAG,CAK1B,IAAME,EAASD,EADDD,EACoBJ,CAAM,EACxC,OAAIM,IAAW,OACNF,EAEFE,CACT,KAAO,OAAK,eAAYF,CAAa,EAenC,SAAO,WAAgBA,EAAgBG,GAC9BF,EAAYE,EAAOP,CAAM,CACjC,EAjBqC,CAGtC,IAAMM,EAASD,EAAYD,EAAsBJ,CAAM,EACvD,GAAIM,IAAW,OAAW,CACxB,GAAIF,IAAkB,KACpB,OAAOA,EAET,MAAM,MAAM,mEAAmE,CACjF,CACA,OAAOE,CACT,EASF,OAAOF,CACT,EAAGL,CAAK,CACV,CACA,OAAAD,EAAQ,gBAAkBH,EACnBG,CACT,CClLA,IAAMU,GAAU,CAACC,EAAuBC,IAClCC,EAAiBF,CAAO,EACnBA,EAAQ,MAAMC,CAAM,EAEpBD,EAAQC,CAAM,EAalB,SAASE,KAA4CC,EAAoB,CAC9E,OAAQH,GACCG,EAAS,KAAKJ,GAAWD,GAAQC,EAASC,CAAM,CAAC,CAE5D,CAWO,SAASI,KAA4CD,EAAoB,CAC9E,OAAQH,GACCG,EAAS,MAAMJ,GAAWD,GAAQC,EAASC,CAAM,CAAC,CAE7D,CAQO,SAASK,GAA2BL,EAAaM,EAAgC,CACtF,GAAI,CAACN,GAAU,CAACA,EAAO,KAAM,MAAO,GACpC,IAAMO,EAAoB,OAAOP,EAAO,KAAK,WAAc,SACrDQ,EAAwBF,EAAY,QAAQN,EAAO,KAAK,aAAa,EAAI,GAC/E,OAAOO,GAAqBC,CAC9B,CACA,SAASC,EAAkBC,EAAkD,CAC3E,OAAO,OAAOA,EAAE,CAAC,GAAM,YAAc,YAAaA,EAAE,CAAC,GAAK,cAAeA,EAAE,CAAC,GAAK,aAAcA,EAAE,CAAC,CACpG,CA2BO,SAASC,MAAsEC,EAAkC,CACtH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,SAAS,CAAC,EAEnES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,OAAO,CAAC,EAF1DF,GAAU,EAAEC,EAAY,CAAC,CAAC,CAGrC,CA2BO,SAASE,KAAuEF,EAAkC,CACvH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,UAAU,CAAC,EAEpES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,QAAQ,CAAC,EAF3DC,EAAW,EAAEF,EAAY,CAAC,CAAC,CAGtC,CA+BO,SAASG,MAAgFH,EAAkC,CAChI,IAAMI,EAAWhB,GACRA,GAAUA,EAAO,MAAQA,EAAO,KAAK,kBAE9C,OAAIY,EAAY,SAAW,EAClBR,EAAQU,EAAW,GAAGF,CAAW,EAAGI,CAAO,EAE/CP,EAAkBG,CAAW,EAG3BR,EAAQU,EAAW,GAAGF,CAAW,EAAGI,CAAO,EAFzCD,GAAoB,EAAEH,EAAY,CAAC,CAAC,CAG/C,CA2BO,SAASK,MAAwEL,EAAkC,CACxH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,WAAW,CAAC,EAErES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,SAAS,CAAC,EAF5DI,GAAY,EAAEL,EAAY,CAAC,CAAC,CAGvC,CAoCO,SAASM,MAA+EN,EAAkC,CAC/H,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,UAAW,YAAa,UAAU,CAAC,EAE5FS,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,QAAQC,GAAc,CAACA,EAAW,QAASA,EAAW,SAAUA,EAAW,SAAS,CAAC,CAAC,EAF3GK,GAAmB,EAAEN,EAAY,CAAC,CAAC,CAG9C,CCzPA,IAAIO,GAAc,mEAMPC,EAAS,CAACC,EAAO,KAAO,CACjC,IAAIC,EAAK,GAELC,EAAIF,EACR,KAAOE,KAELD,GAAMH,GAAY,KAAK,OAAO,EAAI,GAAK,CAAC,EAE1C,OAAOG,CACT,ECSA,IAAME,GAAiD,CAAC,OAAQ,UAAW,QAAS,MAAM,EACpFC,EAAN,KAA6C,CAM3C,YAA4BC,EAAkCC,EAAoB,CAAtD,aAAAD,EAAkC,UAAAC,CAAqB,CADlE,KAEnB,EACMC,GAAN,KAA8C,CAM5C,YAA4BF,EAAkCC,EAAqB,CAAvD,aAAAD,EAAkC,UAAAC,CAAsB,CADnE,KAEnB,EAQaE,GAAsBC,GAAgC,CACjE,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAAM,CAC/C,IAAMC,EAA+B,CAAC,EACtC,QAAWC,KAAYR,GACjB,OAAOM,EAAME,CAAQ,GAAM,WAC7BD,EAAYC,CAAQ,EAAIF,EAAME,CAAQ,GAG1C,OAAOD,CACT,CACA,MAAO,CACL,QAAS,OAAOD,CAAK,CACvB,CACF,EA4MMG,GAAuB,8BAChBC,IAAmC,IAAM,CACpD,SAASA,EAA8EC,EAAoBC,EAA8EC,EAAuG,CAK9R,IAAMC,EAAkFC,EAAaJ,EAAa,aAAc,CAACT,EAAmBc,EAAmBC,EAAed,KAA0B,CAC9M,QAAAD,EACA,KAAM,CACJ,GAAIC,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,cAAe,WACjB,CACF,EAAE,EACIE,EAAoEH,EAAaJ,EAAa,WAAY,CAACK,EAAmBC,EAAed,KAAwB,CACzK,QAAS,OACT,KAAM,CACJ,GAAIA,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,cAAe,SACjB,CACF,EAAE,EACIG,EAAsEJ,EAAaJ,EAAa,YAAa,CAACS,EAAqBJ,EAAmBC,EAAef,EAAyBC,KAAyB,CAC3N,QAAAD,EACA,OAAQW,GAAWA,EAAQ,gBAAkBR,IAAoBe,GAAS,UAAU,EACpF,KAAM,CACJ,GAAIjB,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,kBAAmB,CAAC,CAACd,EACrB,cAAe,WACf,QAASkB,GAAO,OAAS,aACzB,UAAWA,GAAO,OAAS,gBAC7B,CACF,EAAE,EACF,SAASC,EAAcJ,EAAe,CACpC,OAAAK,CACF,EAA8B,CAAC,EAAmE,CAChG,MAAO,CAACC,EAAUC,EAAUC,IAAU,CACpC,IAAMT,EAAYH,GAAS,YAAcA,EAAQ,YAAYI,CAAG,EAAIS,EAAO,EACrEC,EAAkB,IAAI,gBACxBC,EACAC,EACJ,SAASC,EAAMC,EAAiB,CAC9BF,EAAcE,EACdJ,EAAgB,MAAM,CACxB,CACIL,IACEA,EAAO,QACTQ,EAAMrB,EAAoB,EAE1Ba,EAAO,iBAAiB,QAAS,IAAMQ,EAAMrB,EAAoB,EAAG,CAClE,KAAM,EACR,CAAC,GAGL,IAAMuB,EAAU,gBAAkB,CAChC,IAAIC,EACJ,GAAI,CACF,IAAIC,EAAkBrB,GAAS,YAAYI,EAAK,CAC9C,SAAAO,EACA,MAAAC,CACF,CAAC,EAID,GAHIU,GAAWD,CAAe,IAC5BA,EAAkB,MAAMA,GAEtBA,IAAoB,IAASP,EAAgB,OAAO,QAEtD,KAAM,CACJ,KAAM,iBACN,QAAS,oDACX,EAEF,IAAMS,EAAiB,IAAI,QAAe,CAACC,EAAGC,IAAW,CACvDV,EAAe,IAAM,CACnBU,EAAO,CACL,KAAM,aACN,QAAST,GAAe,SAC1B,CAAC,CACH,EACAF,EAAgB,OAAO,iBAAiB,QAASC,EAAc,CAC7D,KAAM,EACR,CAAC,CACH,CAAC,EACDL,EAASL,EAAQF,EAAWC,EAAKJ,GAAS,iBAAiB,CACzD,UAAAG,EACA,IAAAC,CACF,EAAG,CACD,SAAAO,EACA,MAAAC,CACF,CAAC,CAAC,CAAQ,EACVQ,EAAc,MAAM,QAAQ,KAAK,CAACG,EAAgB,QAAQ,QAAQxB,EAAeK,EAAK,CACpF,SAAAM,EACA,SAAAC,EACA,MAAAC,EACA,UAAAT,EACA,OAAQW,EAAgB,OACxB,MAAAG,EACA,gBAAkB,CAACxB,EAAsBH,IAChC,IAAIF,EAAgBK,EAAOH,CAAI,EAExC,iBAAmB,CAACG,EAAgBH,IAC3B,IAAIC,GAAgBE,EAAOH,CAAI,CAE1C,CAAC,CAAC,EAAE,KAAKoC,GAAU,CACjB,GAAIA,aAAkBtC,EACpB,MAAMsC,EAER,OAAIA,aAAkBnC,GACbU,EAAUyB,EAAO,QAASvB,EAAWC,EAAKsB,EAAO,IAAI,EAEvDzB,EAAUyB,EAAevB,EAAWC,CAAG,CAChD,CAAC,CAAC,CAAC,CACL,OAASuB,EAAK,CACZP,EAAcO,aAAevC,EAAkBkB,EAAS,KAAMH,EAAWC,EAAKuB,EAAI,QAASA,EAAI,IAAI,EAAIrB,EAASqB,EAAYxB,EAAWC,CAAG,CAC5I,QAAE,CACIW,GACFD,EAAgB,OAAO,oBAAoB,QAASC,CAAY,CAEpE,CAOA,OADqBf,GAAW,CAACA,EAAQ,4BAA8BM,EAAS,MAAMc,CAAW,GAAMA,EAAoB,KAAK,WAE9HV,EAASU,CAAkB,EAEtBA,CACT,EAAE,EACF,OAAO,OAAO,OAAOD,EAA6B,CAChD,MAAAF,EACA,UAAAd,EACA,IAAAC,EACA,QAAS,CACP,OAAOe,EAAQ,KAAUS,EAAY,CACvC,CACF,CAAC,CACH,CACF,CACA,OAAO,OAAO,OAAOpB,EAA8E,CACjG,QAAAH,EACA,SAAAC,EACA,UAAAL,EACA,QAAS4B,EAAQvB,EAAUL,CAAS,EACpC,WAAAH,CACF,CAAC,CACH,CACA,OAAAD,EAAiB,UAAY,IAAMA,EAC5BA,CACT,GAAG,EAaI,SAAS+B,GAA0CE,EAAsC,CAC9F,GAAIA,EAAO,MAAQA,EAAO,KAAK,kBAC7B,MAAMA,EAAO,QAEf,GAAIA,EAAO,MACT,MAAMA,EAAO,MAEf,OAAOA,EAAO,OAChB,CAEA,SAASR,GAAW7B,EAAuC,CACzD,OAAOA,IAAU,MAAQ,OAAOA,GAAU,UAAY,OAAOA,EAAM,MAAS,UAC9E,CCjbA,IAAMsC,GAAkC,OAAO,IAAI,4BAA4B,EAElEC,GAET,CACF,CAACD,EAAgB,EAAGE,EACtB,EAwLYC,QACVA,EAAA,QAAU,UACVA,EAAA,mBAAqB,qBACrBA,EAAA,WAAa,aAHHA,QAAA,IAgIZ,SAASC,GAAQC,EAAeC,EAA2B,CACzD,MAAO,GAAGD,CAAK,IAAIC,CAAS,EAC9B,CAMO,SAASC,GAAiB,CAC/B,SAAAC,CACF,EAA4B,CAAC,EAAG,CAC9B,IAAMC,EAAMD,GAAU,aAAaR,EAAgB,EACnD,OAAO,SAA4KU,EAA0I,CAC3T,GAAM,CACJ,KAAAC,EACA,YAAAC,EAAcD,CAChB,EAAID,EACJ,GAAI,CAACC,EACH,MAAM,IAAI,MAA8CE,EAAwB,EAAE,CAAiD,EAEjI,OAAO,QAAY,IAKvB,IAAMC,GAAY,OAAOJ,EAAQ,UAAa,WAAaA,EAAQ,SAASK,GAA4B,CAAC,EAAIL,EAAQ,WAAa,CAAC,EAC7HM,EAAe,OAAO,KAAKF,CAAQ,EACnCG,EAAyC,CAC7C,wBAAyB,CAAC,EAC1B,wBAAyB,CAAC,EAC1B,eAAgB,CAAC,EACjB,cAAe,CAAC,CAClB,EACMC,EAAuD,CAC3D,QAAQC,EAAuDC,EAA6B,CAC1F,IAAMC,EAAO,OAAOF,GAAwB,SAAWA,EAAsBA,EAAoB,KACjG,GAAI,CAACE,EACH,MAAM,IAAI,MAA8CR,EAAyB,EAAE,CAAkE,EAEvJ,GAAIQ,KAAQJ,EAAQ,wBAClB,MAAM,IAAI,MAA8CJ,EAAyB,EAAE,CAA4F,EAEjL,OAAAI,EAAQ,wBAAwBI,CAAI,EAAID,EACjCF,CACT,EACA,WAAWI,EAASF,EAAS,CAC3B,OAAAH,EAAQ,cAAc,KAAK,CACzB,QAAAK,EACA,QAAAF,CACF,CAAC,EACMF,CACT,EACA,aAAaP,EAAMY,EAAe,CAChC,OAAAN,EAAQ,eAAeN,CAAI,EAAIY,EACxBL,CACT,EACA,kBAAkBP,EAAMS,EAAS,CAC/B,OAAAH,EAAQ,wBAAwBN,CAAI,EAAIS,EACjCF,CACT,CACF,EACAF,EAAa,QAAQQ,GAAe,CAClC,IAAMC,EAAoBX,EAASU,CAAW,EACxCE,EAAiC,CACrC,YAAAF,EACA,KAAMpB,GAAQO,EAAMa,CAAW,EAC/B,eAAgB,OAAOd,EAAQ,UAAa,UAC9C,EACIiB,GAA0CF,CAAiB,EAC7DG,GAAiCF,EAAgBD,EAAmBP,EAAgBT,CAAG,EAEvFoB,GAAqCH,EAAgBD,EAA0BP,CAAc,CAEjG,CAAC,EACD,SAASY,GAAe,CAMtB,GAAM,CAACC,EAAgB,CAAC,EAAGC,EAAiB,CAAC,EAAGC,EAAqB,MAAS,EAAI,OAAOvB,EAAQ,eAAkB,WAAawB,GAA8BxB,EAAQ,aAAa,EAAI,CAACA,EAAQ,aAAa,EACvMyB,EAAoB,CACxB,GAAGJ,EACH,GAAGd,EAAQ,uBACb,EACA,OAAOmB,GAAc1B,EAAQ,aAAc2B,GAAW,CACpD,QAASC,KAAOH,EACdE,EAAQ,QAAQC,EAAKH,EAAkBG,CAAG,CAAqB,EAEjE,QAASC,KAAMtB,EAAQ,cACrBoB,EAAQ,WAAWE,EAAG,QAASA,EAAG,OAAO,EAE3C,QAASC,KAAKR,EACZK,EAAQ,WAAWG,EAAE,QAASA,EAAE,OAAO,EAErCP,GACFI,EAAQ,eAAeJ,CAAkB,CAE7C,CAAC,CACH,CACA,IAAMQ,EAAcC,GAAiBA,EAC/BC,EAAwB,IAAI,IAC5BC,EAAqB,IAAI,QAC3BC,EACJ,SAASzB,EAAQsB,EAA0BI,EAAuB,CAChE,OAAKD,IAAUA,EAAWf,EAAa,GAChCe,EAASH,EAAOI,CAAM,CAC/B,CACA,SAASC,GAAkB,CACzB,OAAKF,IAAUA,EAAWf,EAAa,GAChCe,EAAS,gBAAgB,CAClC,CACA,SAASG,EAAmEpC,EAAiCqC,EAAW,GAA4I,CAClQ,SAASC,EAAYR,EAA6C,CAChE,IAAIS,EAAaT,EAAM9B,CAAW,EAClC,OAAI,OAAOuC,EAAe,KACpBF,IACFE,EAAaC,EAAoBR,EAAoBM,EAAaH,CAAe,GAK9EI,CACT,CACA,SAASE,EAAaC,EAAyCb,EAAY,CACzE,IAAMc,EAAgBH,EAAoBT,EAAuBM,EAAU,IAAM,IAAI,OAAS,EAC9F,OAAOG,EAAoBG,EAAeD,EAAa,IAAM,CAC3D,IAAME,EAA0C,CAAC,EACjD,OAAW,CAAC7C,EAAM8C,CAAQ,IAAK,OAAO,QAAQ/C,EAAQ,WAAa,CAAC,CAAC,EACnE8C,EAAI7C,CAAI,EAAI+C,GAAaD,EAAUH,EAAa,IAAMF,EAAoBR,EAAoBU,EAAaP,CAAe,EAAGE,CAAQ,EAEvI,OAAOO,CACT,CAAC,CACH,CACA,MAAO,CACL,YAAA5C,EACA,aAAAyC,EACA,IAAI,WAAY,CACd,OAAOA,EAAaH,CAAW,CACjC,EACA,YAAAA,CACF,CACF,CACA,IAAM7C,EAAkE,CACtE,KAAAM,EACA,QAAAS,EACA,QAASH,EAAQ,eACjB,aAAcA,EAAQ,wBACtB,gBAAA8B,EACA,GAAGC,EAAkBpC,CAAW,EAChC,WAAW+C,EAAY,CACrB,YAAaC,EACb,GAAGC,CACL,EAAI,CAAC,EAAG,CACN,IAAMC,EAAiBF,GAAWhD,EAClC,OAAA+C,EAAW,OAAO,CAChB,YAAaG,EACb,QAAA1C,CACF,EAAGyC,CAAM,EACF,CACL,GAAGxD,EACH,GAAG2C,EAAkBc,EAAgB,EAAI,CAC3C,CACF,CACF,EACA,OAAOzD,CACT,CACF,CACA,SAASqD,GAAyDD,EAAaH,EAAwCP,EAA8BE,EAAoB,CACvK,SAASc,EAAQC,KAAwBC,EAAa,CACpD,IAAId,EAAaG,EAAYU,CAAS,EACtC,OAAI,OAAOb,EAAe,KACpBF,IACFE,EAAaJ,EAAgB,GAK1BU,EAASN,EAAY,GAAGc,CAAI,CACrC,CACA,OAAAF,EAAQ,UAAYN,EACbM,CACT,CAUO,IAAMG,GAA6B3D,GAAiB,EAkE3D,SAASQ,IAAsD,CAC7D,SAASoD,EAAWC,EAAoDP,EAAgG,CACtK,MAAO,CACL,uBAAwB,aACxB,eAAAO,EACA,GAAGP,CACL,CACF,CACA,OAAAM,EAAW,UAAY,IAAMA,EACtB,CACL,QAAQE,EAAsC,CAC5C,OAAO,OAAO,OAAO,CAGnB,CAACA,EAAY,IAAI,KAAKJ,EAAsC,CAC1D,OAAOI,EAAY,GAAGJ,CAAI,CAC5B,CACF,EAAEI,EAAY,IAAI,EAAG,CACnB,uBAAwB,SAC1B,CAAU,CACZ,EACA,gBAAgBC,EAASlD,EAAS,CAChC,MAAO,CACL,uBAAwB,qBACxB,QAAAkD,EACA,QAAAlD,CACF,CACF,EACA,WAAY+C,CACd,CACF,CACA,SAAStC,GAAqC,CAC5C,KAAAR,EACA,YAAAG,EACA,eAAA+C,CACF,EAAmBC,EAGuDvD,EAA+C,CACvH,IAAIoD,EACAI,EACJ,GAAI,YAAaD,EAAyB,CACxC,GAAID,GAAkB,CAACG,GAAmCF,CAAuB,EAC/E,MAAM,IAAI,MAA8C3D,EAAyB,EAAE,CAA+G,EAEpMwD,EAAcG,EAAwB,QACtCC,EAAkBD,EAAwB,OAC5C,MACEH,EAAcG,EAEhBvD,EAAQ,QAAQI,EAAMgD,CAAW,EAAE,kBAAkB7C,EAAa6C,CAAW,EAAE,aAAa7C,EAAaiD,EAAkBE,EAAatD,EAAMoD,CAAe,EAAIE,EAAatD,CAAI,CAAC,CACrL,CACA,SAASM,GAA0CF,EAAqG,CACtJ,OAAOA,EAAkB,yBAA2B,YACtD,CACA,SAASiD,GAA0CjD,EAA2F,CAC5I,OAAOA,EAAkB,yBAA2B,oBACtD,CACA,SAASG,GAAwC,CAC/C,KAAAP,EACA,YAAAG,CACF,EAAmBC,EAA2ER,EAA+CR,EAA2C,CACtL,GAAI,CAACA,EACH,MAAM,IAAI,MAA8CI,EAAyB,EAAE,CAAiM,EAEtR,GAAM,CACJ,eAAAuD,EACA,UAAAQ,EACA,QAAAC,EACA,SAAAC,EACA,QAAAC,EACA,QAAArE,CACF,EAAIe,EACEuD,EAAQvE,EAAIY,EAAM+C,EAAgB1D,CAAc,EACtDO,EAAQ,aAAaO,EAAawD,CAAK,EACnCJ,GACF3D,EAAQ,QAAQ+D,EAAM,UAAWJ,CAAS,EAExCC,GACF5D,EAAQ,QAAQ+D,EAAM,QAASH,CAAO,EAEpCC,GACF7D,EAAQ,QAAQ+D,EAAM,SAAUF,CAAQ,EAEtCC,GACF9D,EAAQ,WAAW+D,EAAM,QAASD,CAAO,EAE3C9D,EAAQ,kBAAkBO,EAAa,CACrC,UAAWoD,GAAaK,GACxB,QAASJ,GAAWI,GACpB,SAAUH,GAAYG,GACtB,QAASF,GAAWE,EACtB,CAAC,CACH,CACA,SAASA,IAAO,CAAC,CC3qBV,SAASC,IAAoE,CAClF,MAAO,CACL,IAAK,CAAC,EACN,SAAU,CAAC,CACb,CACF,CACO,SAASC,GAAkDC,EAAoE,CAGpI,SAASC,EAAgBC,EAAuB,CAAC,EAAGC,EAA8C,CAChG,IAAMC,EAAQ,OAAO,OAAON,GAAsB,EAAGI,CAAe,EACpE,OAAOC,EAAWH,EAAa,OAAOI,EAAOD,CAAQ,EAAIC,CAC3D,CACA,MAAO,CACL,gBAAAH,CACF,CACF,CCVO,SAASI,IAAiD,CAG/D,SAASC,EAAgBC,EAAgDC,EAA+B,CAAC,EAAgC,CACvI,GAAM,CACJ,eAAAC,EAAiBC,CACnB,EAAIF,EACEG,EAAaC,GAA8BA,EAAM,IACjDC,EAAkBD,GAA8BA,EAAM,SACtDE,EAAYL,EAAeE,EAAWE,EAAgB,CAACE,EAAKC,IAAkBD,EAAI,IAAIE,GAAMD,EAASC,CAAE,CAAE,CAAC,EAC1GC,EAAW,CAACC,EAAYF,IAAWA,EACnCG,EAAa,CAACJ,EAAyBC,IAAWD,EAASC,CAAE,EAC7DI,EAAcZ,EAAeE,EAAWI,GAAOA,EAAI,MAAM,EAC/D,GAAI,CAACR,EACH,MAAO,CACL,UAAAI,EACA,eAAAE,EACA,UAAAC,EACA,YAAAO,EACA,WAAYZ,EAAeI,EAAgBK,EAAUE,CAAU,CACjE,EAEF,IAAME,EAA2Bb,EAAeF,EAAgDM,CAAc,EAC9G,MAAO,CACL,UAAWJ,EAAeF,EAAaI,CAAS,EAChD,eAAgBW,EAChB,UAAWb,EAAeF,EAAaO,CAAS,EAChD,YAAaL,EAAeF,EAAac,CAAW,EACpD,WAAYZ,EAAea,EAA0BJ,EAAUE,CAAU,CAC3E,CACF,CACA,MAAO,CACL,aAAAd,CACF,CACF,CCpCO,IAAMiB,GAAe,UACrB,SAASC,GAA0DC,EAAuD,CAC/H,IAAMC,EAAWC,EAAoB,CAACC,EAAcC,IAAuCJ,EAAQI,CAAK,CAAC,EACzG,OAAO,SAA0DA,EAAgC,CAC/F,OAAOH,EAASG,EAAY,MAAS,CACvC,CACF,CACO,SAASF,EAA+CF,EAA+D,CAC5H,OAAO,SAA0DI,EAAUC,EAA8B,CACvG,SAASC,EAAwBD,EAAoD,CACnF,OAAOE,GAAMF,CAAG,CAClB,CACA,IAAMG,EAAcC,GAAuC,CACrDH,EAAwBD,CAAG,EAC7BL,EAAQK,EAAI,QAASI,CAAK,EAE1BT,EAAQK,EAAKI,CAAK,CAEtB,EACA,OAAIX,GAA0CM,CAAK,GAIjDI,EAAWJ,CAAK,EAGTA,MAEF,WAAgBA,EAAOI,CAAU,CAC1C,CACF,CChCO,SAASE,EAAsCC,EAAWC,EAA6B,CAK5F,OAJYA,EAASD,CAAM,CAK7B,CACO,SAASE,EAA4CC,EAAsD,CAChH,OAAK,MAAM,QAAQA,CAAQ,IACzBA,EAAW,OAAO,OAAOA,CAAQ,GAE5BA,CACT,CACO,SAASC,EAAcC,EAAwB,CACpD,SAAQ,WAAQA,CAAK,KAAI,WAAQA,CAAK,EAAIA,CAC5C,CACO,SAASC,GAAkDC,EAA2CN,EAA6BO,EAAkE,CAC1MD,EAAcL,EAAoBK,CAAW,EAC7C,IAAME,EAAmBL,EAAWI,EAAM,GAAG,EACvCE,EAAc,IAAI,IAAQD,CAAgB,EAC1CE,EAAa,CAAC,EACdC,EAAW,IAAI,IAAQ,CAAC,CAAC,EACzBC,EAA2B,CAAC,EAClC,QAAWb,KAAUO,EAAa,CAChC,IAAMO,EAAKf,EAAcC,EAAQC,CAAQ,EACrCS,EAAY,IAAII,CAAE,GAAKF,EAAS,IAAIE,CAAE,EACxCD,EAAQ,KAAK,CACX,GAAAC,EACA,QAASd,CACX,CAAC,GAEDY,EAAS,IAAIE,CAAE,EACfH,EAAM,KAAKX,CAAM,EAErB,CACA,MAAO,CAACW,EAAOE,EAASJ,CAAgB,CAC1C,CCnCO,SAASM,GAAmDC,EAAwD,CAEzH,SAASC,EAAcC,EAAWC,EAAgB,CAChD,IAAMC,EAAMC,EAAcH,EAAQF,CAAQ,EACtCI,KAAOD,EAAM,WAGjBA,EAAM,IAAI,KAAKC,CAAqB,EACnCD,EAAM,SAA2BC,CAAG,EAAIF,EAC3C,CACA,SAASI,EAAeC,EAA2CJ,EAAgB,CACjFI,EAAcC,EAAoBD,CAAW,EAC7C,QAAWL,KAAUK,EACnBN,EAAcC,EAAQC,CAAK,CAE/B,CACA,SAASM,EAAcP,EAAWC,EAAgB,CAChD,IAAMC,EAAMC,EAAcH,EAAQF,CAAQ,EACpCI,KAAOD,EAAM,UACjBA,EAAM,IAAI,KAAKC,CAAqB,EAGrCD,EAAM,SAA2BC,CAAG,EAAIF,CAC3C,CACA,SAASQ,EAAeH,EAA2CJ,EAAgB,CACjFI,EAAcC,EAAoBD,CAAW,EAC7C,QAAWL,KAAUK,EACnBE,EAAcP,EAAQC,CAAK,CAE/B,CACA,SAASQ,EAAcJ,EAA2CJ,EAAgB,CAChFI,EAAcC,EAAoBD,CAAW,EAC7CJ,EAAM,IAAM,CAAC,EACbA,EAAM,SAAW,CAAC,EAClBG,EAAeC,EAAaJ,CAAK,CACnC,CACA,SAASS,EAAiBR,EAASD,EAAgB,CACjD,OAAOU,EAAkB,CAACT,CAAG,EAAGD,CAAK,CACvC,CACA,SAASU,EAAkBC,EAAqBX,EAAgB,CAC9D,IAAIY,EAAY,GAChBD,EAAK,QAAQV,GAAO,CACdA,KAAOD,EAAM,WACf,OAAQA,EAAM,SAA2BC,CAAG,EAC5CW,EAAY,GAEhB,CAAC,EACGA,IACFZ,EAAM,IAAOA,EAAM,IAAa,OAAOa,GAAMA,KAAMb,EAAM,QAAQ,EAErE,CACA,SAASc,EAAiBd,EAAgB,CACxC,OAAO,OAAOA,EAAO,CACnB,IAAK,CAAC,EACN,SAAU,CAAC,CACb,CAAC,CACH,CACA,SAASe,EAAWJ,EAEjBK,EAAuBhB,EAAmB,CAC3C,IAAMiB,EAA2BjB,EAAM,SAA2BgB,EAAO,EAAE,EAC3E,GAAIC,IAAa,OACf,MAAO,GAET,IAAMC,EAAa,OAAO,OAAO,CAAC,EAAGD,EAAUD,EAAO,OAAO,EACvDG,EAASjB,EAAcgB,EAASrB,CAAQ,EACxCuB,EAAYD,IAAWH,EAAO,GACpC,OAAII,IACFT,EAAKK,EAAO,EAAE,EAAIG,EAClB,OAAQnB,EAAM,SAA2BgB,EAAO,EAAE,GAGnDhB,EAAM,SAA2BmB,CAAM,EAAID,EACrCE,CACT,CACA,SAASC,EAAiBL,EAAuBhB,EAAgB,CAC/D,OAAOsB,EAAkB,CAACN,CAAM,EAAGhB,CAAK,CAC1C,CACA,SAASsB,EAAkBC,EAAuCvB,EAAgB,CAChF,IAAMwB,EAEF,CAAC,EACCC,EAEF,CAAC,EACLF,EAAQ,QAAQP,GAAU,CAEpBA,EAAO,MAAMhB,EAAM,WAErByB,EAAiBT,EAAO,EAAE,EAAI,CAC5B,GAAIA,EAAO,GAGX,QAAS,CACP,GAAGS,EAAiBT,EAAO,EAAE,GAAG,QAChC,GAAGA,EAAO,OACZ,CACF,EAEJ,CAAC,EACDO,EAAU,OAAO,OAAOE,CAAgB,EACdF,EAAQ,OAAS,GAEpBA,EAAQ,OAAOP,GAAUD,EAAWS,EAASR,EAAQhB,CAAK,CAAC,EAAE,OAAS,IAEzFA,EAAM,IAAM,OAAO,OAAOA,EAAM,QAAQ,EAAE,IAAI0B,GAAKxB,EAAcwB,EAAQ7B,CAAQ,CAAC,EAGxF,CACA,SAAS8B,EAAiB5B,EAAWC,EAAgB,CACnD,OAAO4B,EAAkB,CAAC7B,CAAM,EAAGC,CAAK,CAC1C,CACA,SAAS4B,EAAkBxB,EAA2CJ,EAAgB,CACpF,GAAM,CAAC6B,EAAOX,CAAO,EAAIY,GAAiC1B,EAAaP,EAAUG,CAAK,EACtFG,EAAe0B,EAAO7B,CAAK,EAC3BsB,EAAkBJ,EAASlB,CAAK,CAClC,CACA,MAAO,CACL,UAAW+B,GAAkCjB,CAAgB,EAC7D,OAAQkB,EAAoBlC,CAAa,EACzC,QAASkC,EAAoB7B,CAAc,EAC3C,OAAQ6B,EAAoB1B,CAAa,EACzC,QAAS0B,EAAoBzB,CAAc,EAC3C,OAAQyB,EAAoBxB,CAAa,EACzC,UAAWwB,EAAoBX,CAAgB,EAC/C,WAAYW,EAAoBV,CAAiB,EACjD,UAAWU,EAAoBL,CAAgB,EAC/C,WAAYK,EAAoBJ,CAAiB,EACjD,UAAWI,EAAoBvB,CAAgB,EAC/C,WAAYuB,EAAoBtB,CAAiB,CACnD,CACF,CCjIO,SAASuB,GAAmBC,EAAkBC,EAASC,EAAyC,CACrG,IAAIC,EAAW,EACXC,EAAYJ,EAAY,OAC5B,KAAOG,EAAWC,GAAW,CAC3B,IAAIC,EAAcF,EAAWC,IAAc,EACrCE,EAAcN,EAAYK,CAAW,EAC/BH,EAAmBD,EAAMK,CAAW,GACrC,EACTH,EAAWE,EAAc,EAEzBD,EAAYC,CAEhB,CACA,OAAOF,CACT,CACO,SAASI,GAAUP,EAAkBC,EAASC,EAAsC,CACzF,IAAMM,EAAgBT,GAAgBC,EAAaC,EAAMC,CAAkB,EAC3E,OAAAF,EAAY,OAAOQ,EAAe,EAAGP,CAAI,EAClCD,CACT,CACO,SAASS,GAAiDC,EAA6BC,EAAkD,CAE9I,GAAM,CACJ,UAAAC,EACA,WAAAC,EACA,UAAAC,CACF,EAAIC,GAA2BL,CAAQ,EACvC,SAASM,EAAcC,EAAWC,EAAgB,CAChD,OAAOC,EAAe,CAACF,CAAM,EAAGC,CAAK,CACvC,CACA,SAASC,EAAeC,EAA2CF,EAAUG,EAA0B,CACrGD,EAAcE,EAAoBF,CAAW,EAC7C,IAAMG,EAAe,IAAI,IAAQF,GAAeG,EAAWN,EAAM,GAAG,CAAC,EAC/DO,EAAY,IAAI,IAChBC,EAASN,EAAY,OAAOO,GAAS,CACzC,IAAMC,EAAUC,EAAcF,EAAOjB,CAAQ,EACvCoB,EAAW,CAACL,EAAU,IAAIG,CAAO,EACvC,OAAIE,GAAUL,EAAU,IAAIG,CAAO,EAC5B,CAACL,EAAa,IAAIK,CAAO,GAAKE,CACvC,CAAC,EACGJ,EAAO,SAAW,GACpBK,EAAcb,EAAOQ,CAAM,CAE/B,CACA,SAASM,EAAcf,EAAWC,EAAgB,CAChD,OAAOe,EAAe,CAAChB,CAAM,EAAGC,CAAK,CACvC,CACA,SAASe,EAAeb,EAA2CF,EAAgB,CACjF,IAAIgB,EAAuB,CAAC,EAE5B,GADAd,EAAcE,EAAoBF,CAAW,EACzCA,EAAY,SAAW,EAAG,CAC5B,QAAWnB,KAAQmB,EAAa,CAC9B,IAAMe,EAAWzB,EAAST,CAAI,EAE9BiC,EAAqBC,CAAQ,EAAIlC,EACjC,OAAQiB,EAAM,SAA2BiB,CAAQ,CACnD,CACAf,EAAcE,EAAoBY,CAAoB,EACtDH,EAAcb,EAAOE,CAAW,CAClC,CACF,CACA,SAASgB,EAAchB,EAA2CF,EAAgB,CAChFE,EAAcE,EAAoBF,CAAW,EAC7CF,EAAM,SAAW,CAAC,EAClBA,EAAM,IAAM,CAAC,EACbC,EAAeC,EAAaF,EAAO,CAAC,CAAC,CACvC,CACA,SAASmB,EAAiBC,EAAuBpB,EAAgB,CAC/D,OAAOqB,EAAkB,CAACD,CAAM,EAAGpB,CAAK,CAC1C,CACA,SAASqB,EAAkBC,EAAuCtB,EAAgB,CAChF,IAAIuB,EAAiB,GACjBC,EAAc,GAClB,QAASJ,KAAUE,EAAS,CAC1B,IAAMvB,EAAyBC,EAAM,SAA2BoB,EAAO,EAAE,EACzE,GAAI,CAACrB,EACH,SAEFwB,EAAiB,GACjB,OAAO,OAAOxB,EAAQqB,EAAO,OAAO,EACpC,IAAMK,EAAQjC,EAASO,CAAM,EAC7B,GAAIqB,EAAO,KAAOK,EAAO,CAGvBD,EAAc,GACd,OAAQxB,EAAM,SAA2BoB,EAAO,EAAE,EAClD,IAAMM,EAAY1B,EAAM,IAAa,QAAQoB,EAAO,EAAE,EACtDpB,EAAM,IAAI0B,CAAQ,EAAID,EACrBzB,EAAM,SAA2ByB,CAAK,EAAI1B,CAC7C,CACF,CACIwB,GACFV,EAAcb,EAAO,CAAC,EAAGuB,EAAgBC,CAAW,CAExD,CACA,SAASG,EAAiB5B,EAAWC,EAAgB,CACnD,OAAO4B,EAAkB,CAAC7B,CAAM,EAAGC,CAAK,CAC1C,CACA,SAAS4B,EAAkB1B,EAA2CF,EAAgB,CACpF,GAAM,CAAC6B,EAAOC,EAASC,CAAgB,EAAIC,GAAiC9B,EAAaV,EAAUQ,CAAK,EACpG6B,EAAM,QACR5B,EAAe4B,EAAO7B,EAAO+B,CAAgB,EAE3CD,EAAQ,QACVT,EAAkBS,EAAS9B,CAAK,CAEpC,CACA,SAASiC,EAAeC,EAAuBC,EAAuB,CACpE,GAAID,EAAE,SAAWC,EAAE,OACjB,MAAO,GAET,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAC5B,GAAIF,EAAEE,CAAC,IAAMD,EAAEC,CAAC,EAGhB,MAAO,GAET,MAAO,EACT,CAEA,IAAMvB,EAA+B,CAACb,EAAOqC,EAAYd,EAAgBC,IAAgB,CACvF,IAAMc,EAAkBhC,EAAWN,EAAM,QAAQ,EAC3CuC,EAAajC,EAAWN,EAAM,GAAG,EACjCwC,EAAgBxC,EAAM,SACxByC,EAAoBF,EACpBf,IACFiB,EAAM,IAAI,IAAIF,CAAU,GAE1B,IAAIG,EAAsB,CAAC,EAC3B,QAAWC,KAAMF,EAAK,CACpB,IAAM1C,GAASuC,EAAgBK,CAAE,EAC7B5C,IACF2C,EAAe,KAAK3C,EAAM,CAE9B,CACA,IAAM6C,EAAqBF,EAAe,SAAW,EAGrD,QAAW3D,KAAQsD,EACjBG,EAAchD,EAAST,CAAI,CAAC,EAAIA,EAC3B6D,GAEHvD,GAAOqD,EAAgB3D,EAAMU,CAAQ,EAGrCmD,EAEFF,EAAiBL,EAAW,MAAM,EAAE,KAAK5C,CAAQ,EACxC8B,GAETmB,EAAe,KAAKjD,CAAQ,EAE9B,IAAMoD,EAAeH,EAAe,IAAIlD,CAAQ,EAC3CyC,EAAeM,EAAYM,CAAY,IAC1C7C,EAAM,IAAM6C,EAEhB,EACA,MAAO,CACL,UAAAnD,EACA,WAAAC,EACA,UAAAC,EACA,OAAQkD,EAAoBhD,CAAa,EACzC,UAAWgD,EAAoB3B,CAAgB,EAC/C,UAAW2B,EAAoBnB,CAAgB,EAC/C,OAAQmB,EAAoBhC,CAAa,EACzC,QAASgC,EAAoB/B,CAAc,EAC3C,OAAQ+B,EAAoB5B,CAAa,EACzC,QAAS4B,EAAoB7C,CAAc,EAC3C,WAAY6C,EAAoBzB,CAAiB,EACjD,WAAYyB,EAAoBlB,CAAiB,CACnD,CACF,CChKO,SAASmB,GAAuBC,EAA6C,CAAC,EAA+B,CAClH,GAAM,CACJ,SAAAC,EACA,aAAAC,CACF,EAAiD,CAC/C,aAAc,GACd,SAAWC,GAAkBA,EAAS,GACtC,GAAGH,CACL,EACMI,EAAeF,EAAeG,GAAyBJ,EAAUC,CAAY,EAAII,GAA2BL,CAAQ,EACpHM,EAAeC,GAA0BJ,CAAY,EACrDK,EAAmBC,GAAoC,EAC7D,MAAO,CACL,SAAAT,EACA,aAAAC,EACA,GAAGK,EACH,GAAGE,EACH,GAAGL,CACL,CACF,CCnCA,IAAMO,GAAO,OACPC,GAAW,WACXC,GAAY,YACZC,GAAY,YAGLC,GAAgB,QAAQD,EAAS,GACjCE,GAAgB,QAAQH,EAAS,GACjCI,GAAoB,GAAGL,EAAQ,IAAIE,EAAS,GAC5CI,GAAoB,GAAGN,EAAQ,IAAIC,EAAS,GAC5CM,EAAN,KAAgD,CAGrD,YAAmBC,EAA0B,CAA1B,UAAAA,EACjB,KAAK,QAAU,GAAGT,EAAI,IAAIG,EAAS,aAAaM,CAAI,GACtD,CAJA,KAAO,iBACP,OAIF,EChBO,IAAMC,GAAuG,CAACC,EAAeC,IAAqB,CACvJ,GAAI,OAAOD,GAAS,WAClB,MAAM,IAAI,UAAkDE,EAAwB,EAAE,CAAmC,CAE7H,EACaC,EAAO,IAAM,CAAC,EACdC,GAAiB,CAAKC,EAAqBC,EAAUH,KAChEE,EAAQ,MAAMC,CAAO,EACdD,GAEIE,GAAyB,CAACC,EAA0BC,KAC/DD,EAAY,iBAAiB,QAASC,EAAU,CAC9C,KAAM,EACR,CAAC,EACM,IAAMD,EAAY,oBAAoB,QAASC,CAAQ,GCLzD,IAAMC,EAAkBC,GAA8B,CAC3D,GAAIA,EAAO,QACT,MAAM,IAAIC,EAAeD,EAAO,MAAM,CAE1C,EAOO,SAASE,GAAkBF,EAAqBG,EAAiC,CACtF,IAAIC,EAAUC,EACd,OAAO,IAAI,QAAW,CAACC,EAASC,IAAW,CACzC,IAAMC,EAAkB,IAAMD,EAAO,IAAIN,EAAeD,EAAO,MAAM,CAAC,EACtE,GAAIA,EAAO,QAAS,CAClBQ,EAAgB,EAChB,MACF,CACAJ,EAAUK,GAAuBT,EAAQQ,CAAe,EACxDL,EAAQ,QAAQ,IAAMC,EAAQ,CAAC,EAAE,KAAKE,EAASC,CAAM,CACvD,CAAC,EAAE,QAAQ,IAAM,CAEfH,EAAUC,CACZ,CAAC,CACH,CASO,IAAMK,GAAU,MAAWC,EAAwBC,IAAiD,CACzG,GAAI,CACF,aAAM,QAAQ,QAAQ,EAEf,CACL,OAAQ,KACR,MAHY,MAAMD,EAAK,CAIzB,CACF,OAASE,EAAY,CACnB,MAAO,CACL,OAAQA,aAAiBZ,EAAiB,YAAc,WACxD,MAAAY,CACF,CACF,QAAE,CACAD,IAAU,CACZ,CACF,EASaE,EAAmBd,GACtBG,GACCY,GAAeb,GAAeF,EAAQG,CAAO,EAAE,KAAKa,IACzDjB,EAAeC,CAAM,EACdgB,EACR,CAAC,EAUOC,GAAejB,GAAwB,CAClD,IAAMkB,EAAQJ,EAAkBd,CAAM,EACtC,OAAQmB,GACCD,EAAM,IAAI,QAAcZ,GAAW,WAAWA,EAASa,CAAS,CAAC,CAAC,CAE7E,EC3EA,GAAM,CACJ,OAAAC,CACF,EAAI,OAIEC,GAAqB,CAAC,EACtBC,GAAM,qBACNC,GAAa,CAACC,EAAgCC,IAA2C,CAC7F,IAAMC,EAAmBC,GAAgCC,GAAuBJ,EAAmB,IAAMG,EAAW,MAAMH,EAAkB,MAAM,CAAC,EACnJ,MAAO,CAAKK,EAAqCC,IAAsC,CACrFC,GAAeF,EAAc,cAAc,EAC3C,IAAMG,EAAuB,IAAI,gBACjCN,EAAgBM,CAAoB,EACpC,IAAMC,EAASC,GAAW,SAAwB,CAChDC,EAAeX,CAAiB,EAChCW,EAAeH,EAAqB,MAAM,EAC1C,IAAMC,EAAU,MAAMJ,EAAa,CACjC,MAAOO,EAAYJ,EAAqB,MAAM,EAC9C,MAAOK,GAAYL,EAAqB,MAAM,EAC9C,OAAQA,EAAqB,MAC/B,CAAC,EACD,OAAAG,EAAeH,EAAqB,MAAM,EACnCC,CACT,EAAG,IAAMD,EAAqB,MAAMM,EAAa,CAAC,EAClD,OAAIR,GAAM,UACRL,EAAuB,KAAKQ,EAAO,MAAMM,CAAI,CAAC,EAEzC,CACL,OAAQH,EAA2BZ,CAAiB,EAAES,CAAM,EAC5D,QAAS,CACPD,EAAqB,MAAMQ,EAAa,CAC1C,CACF,CACF,CACF,EACMC,GAAoB,CAAKC,EAAwEC,IAAwC,CAQ7I,IAAMC,EAAO,MAA2CC,EAAcC,IAAgC,CACpGX,EAAeQ,CAAM,EAGrB,IAAII,EAAmC,IAAM,CAAC,EAiBxCC,EAAwD,CAhBzC,IAAI,QAAwB,CAACC,EAASC,IAAW,CAEpE,IAAIC,EAAgBT,EAAe,CACjC,UAAWG,EACX,OAAQ,CAACO,EAAQC,IAAsB,CAErCA,EAAY,YAAY,EAExBJ,EAAQ,CAACG,EAAQC,EAAY,SAAS,EAAGA,EAAY,iBAAiB,CAAC,CAAC,CAC1E,CACF,CAAC,EACDN,EAAc,IAAM,CAClBI,EAAc,EACdD,EAAO,CACT,CACF,CAAC,CAC0E,EACvEJ,GAAW,MACbE,EAAS,KAAK,IAAI,QAAcC,GAAW,WAAWA,EAASH,EAAS,IAAI,CAAC,CAAC,EAEhF,GAAI,CACF,IAAMQ,EAAS,MAAMC,GAAeZ,EAAQ,QAAQ,KAAKK,CAAQ,CAAC,EAClE,OAAAb,EAAeQ,CAAM,EACdW,CACT,QAAE,CAEAP,EAAY,CACd,CACF,EACA,MAAQ,CAACF,EAAoCC,IAAgCU,GAAeZ,EAAKC,EAAWC,CAAO,CAAC,CACtH,EACMW,GAA6BC,GAAwC,CACzE,GAAI,CACF,KAAAC,EACA,cAAAC,EACA,QAAAC,EACA,UAAAhB,EACA,OAAAiB,CACF,EAAIJ,EACJ,GAAIC,EACFd,EAAYkB,EAAaJ,CAAI,EAAE,cACtBC,EACTD,EAAOC,EAAe,KACtBf,EAAYe,EAAc,cACjBC,EACThB,EAAYgB,UACH,CAAAhB,EAGT,MAAM,IAAI,MAA8CmB,EAAwB,EAAE,CAA6F,EAEjL,OAAAjC,GAAe+B,EAAQ,kBAAkB,EAClC,CACL,UAAAjB,EACA,KAAAc,EACA,OAAAG,CACF,CACF,EAGaG,GAAwE7C,EAAQsC,GAAwC,CACnI,GAAM,CACJ,KAAAC,EACA,UAAAd,EACA,OAAAiB,CACF,EAAIL,GAA0BC,CAAO,EAWrC,MAVsC,CACpC,GAAIQ,EAAO,EACX,OAAAJ,EACA,KAAAH,EACA,UAAAd,EACA,QAAS,IAAI,IACb,YAAa,IAAM,CACjB,MAAM,IAAI,MAA8CmB,EAAyB,EAAE,CAAiC,CACtH,CACF,CAEF,EAAG,CACD,UAAW,IAAMC,EACnB,CAAC,EACKE,GAAoB,CAACC,EAAyCV,IAAwC,CAC1G,GAAM,CACJ,KAAAC,EACA,OAAAG,EACA,UAAAjB,CACF,EAAIY,GAA0BC,CAAO,EACrC,OAAO,MAAM,KAAKU,EAAY,OAAO,CAAC,EAAE,KAAKC,IACd,OAAOV,GAAS,SAAWU,EAAM,OAASV,EAAOU,EAAM,YAAcxB,IACnEwB,EAAM,SAAWP,CACjD,CACH,EACMQ,GAAyBD,GAA2D,CACxFA,EAAM,QAAQ,QAAQ1C,GAAc,CAClCA,EAAW,MAAM4C,EAAiB,CACpC,CAAC,CACH,EACMC,GAAgC,CAACJ,EAAyCK,IACvE,IAAM,CACX,QAAWC,KAAYD,EAAmB,KAAK,EAC7CH,GAAsBI,CAAQ,EAEhCN,EAAY,MAAM,CACpB,EAUIO,GAAoB,CAACC,EAAoCC,EAAwBC,IAAuC,CAC5H,GAAI,CACFF,EAAaC,EAAeC,CAAS,CACvC,OAASC,EAAmB,CAG1B,WAAW,IAAM,CACf,MAAMA,CACR,EAAG,CAAC,CACN,CACF,EAKaC,GAA6B5D,EAAsB2C,EAAa,GAAGzC,EAAG,MAAM,EAAG,CAC1F,UAAW,IAAM0D,EACnB,CAAC,EAKYC,GAAmClB,EAAa,GAAGzC,EAAG,YAAY,EAKlE4D,GAAgC9D,EAAsB2C,EAAa,GAAGzC,EAAG,SAAS,EAAG,CAChG,UAAW,IAAM4D,EACnB,CAAC,EACKC,GAA4C,IAAIC,IAAoB,CACxE,QAAQ,MAAM,GAAG9D,EAAG,SAAU,GAAG8D,CAAI,CACvC,EAKaC,GAA2B,CAAyIC,EAAoE,CAAC,IAAM,CAC1P,IAAMlB,EAAc,IAAI,IAIlBK,EAAqB,IAAI,IACzBc,EAA0BlB,GAAyB,CACvD,IAAMmB,EAAQf,EAAmB,IAAIJ,CAAK,GAAK,EAC/CI,EAAmB,IAAIJ,EAAOmB,EAAQ,CAAC,CACzC,EACMC,EAA4BpB,GAAyB,CACzD,IAAMmB,EAAQf,EAAmB,IAAIJ,CAAK,GAAK,EAC3CmB,IAAU,EACZf,EAAmB,OAAOJ,CAAK,EAE/BI,EAAmB,IAAIJ,EAAOmB,EAAQ,CAAC,CAE3C,EACM,CACJ,MAAAE,EACA,QAAAC,EAAUR,EACZ,EAAIG,EACJvD,GAAe4D,EAAS,SAAS,EACjC,IAAMC,EAAevB,IACnBA,EAAM,YAAc,IAAMD,EAAY,OAAOC,EAAM,EAAE,EACrDD,EAAY,IAAIC,EAAM,GAAIA,CAAK,EACvBwB,GAA+C,CACrDxB,EAAM,YAAY,EACdwB,GAAe,cACjBvB,GAAsBD,CAAK,CAE/B,GAEI3B,EAAmBgB,GAAwC,CAC/D,IAAMW,EAAQF,GAAkBC,EAAaV,CAAO,GAAKO,GAAoBP,CAAc,EAC3F,OAAOkC,EAAYvB,CAAK,CAC1B,EACAjD,EAAOsB,EAAgB,CACrB,UAAW,IAAMA,CACnB,CAAC,EACD,IAAMS,EAAiBO,GAA8E,CACnG,IAAMW,EAAQF,GAAkBC,EAAaV,CAAO,EACpD,OAAIW,IACFA,EAAM,YAAY,EACdX,EAAQ,cACVY,GAAsBD,CAAK,GAGxB,CAAC,CAACA,CACX,EACAjD,EAAO+B,EAAe,CACpB,UAAW,IAAMA,CACnB,CAAC,EACD,IAAM2C,EAAiB,MAAOzB,EAAwDjB,EAAiB2C,EAAoBC,IAAsC,CAC/J,IAAMC,EAAyB,IAAI,gBAC7BrD,EAAOH,GAAkBC,EAA6CuD,EAAuB,MAAM,EACnGC,EAAmC,CAAC,EAC1C,GAAI,CACF7B,EAAM,QAAQ,IAAI4B,CAAsB,EACxCV,EAAuBlB,CAAK,EAC5B,MAAM,QAAQ,QAAQA,EAAM,OAAOjB,EAEnChC,EAAO,CAAC,EAAG2E,EAAK,CACd,iBAAAC,EACA,UAAW,CAACnD,EAAsCC,IAAqBF,EAAKC,EAAWC,CAAO,EAAE,KAAK,OAAO,EAC5G,KAAAF,EACA,MAAOP,GAAY4D,EAAuB,MAAM,EAChD,MAAO7D,EAAiB6D,EAAuB,MAAM,EACrD,MAAAP,EACA,OAAQO,EAAuB,OAC/B,KAAM1E,GAAW0E,EAAuB,OAAQC,CAAgB,EAChE,YAAa7B,EAAM,YACnB,UAAW,IAAM,CACfD,EAAY,IAAIC,EAAM,GAAIA,CAAK,CACjC,EACA,sBAAuB,IAAM,CAC3BA,EAAM,QAAQ,QAAQ,CAAC1C,EAAYwE,EAAGC,IAAQ,CACxCzE,IAAesE,IACjBtE,EAAW,MAAM4C,EAAiB,EAClC6B,EAAI,OAAOzE,CAAU,EAEzB,CAAC,CACH,EACA,OAAQ,IAAM,CACZsE,EAAuB,MAAM1B,EAAiB,EAC9CF,EAAM,QAAQ,OAAO4B,CAAsB,CAC7C,EACA,iBAAkB,IAAM,CACtB9D,EAAe8D,EAAuB,MAAM,CAC9C,CACF,CAAC,CAAC,CAAC,CACL,OAASI,EAAe,CAChBA,aAAyBC,GAC7B3B,GAAkBgB,EAASU,EAAe,CACxC,SAAU,QACZ,CAAC,CAEL,QAAE,CACA,MAAM,QAAQ,IAAIH,CAAgB,EAClCD,EAAuB,MAAMM,EAAiB,EAC9Cd,EAAyBpB,CAAK,EAC9BA,EAAM,QAAQ,OAAO4B,CAAsB,CAC7C,CACF,EACMO,EAA0BhC,GAA8BJ,EAAaK,CAAkB,EA0D7F,MAAO,CACL,WA1D6EsB,GAAOU,GAAQrD,GAAU,CACtG,GAAI,IAAC,YAASA,CAAM,EAElB,OAAOqD,EAAKrD,CAAM,EAEpB,GAAI4B,GAAY,MAAM5B,CAAM,EAC1B,OAAOV,EAAeU,EAAO,OAAc,EAE7C,GAAI6B,GAAkB,MAAM7B,CAAM,EAAG,CACnCoD,EAAwB,EACxB,MACF,CACA,GAAItB,GAAe,MAAM9B,CAAM,EAC7B,OAAOD,EAAcC,EAAO,OAAO,EAIrC,IAAIsD,EAAuDX,EAAI,SAAS,EAIlEC,EAAmB,IAAiB,CACxC,GAAIU,IAAkBrF,GACpB,MAAM,IAAI,MAA8C2C,EAAyB,EAAE,CAA+D,EAEpJ,OAAO0C,CACT,EACIzE,EACJ,GAAI,CAGF,GADAA,EAASwE,EAAKrD,CAAM,EAChBgB,EAAY,KAAO,EAAG,CACxB,IAAMuC,EAAeZ,EAAI,SAAS,EAE5Ba,EAAkB,MAAM,KAAKxC,EAAY,OAAO,CAAC,EACvD,QAAWC,KAASuC,EAAiB,CACnC,IAAIC,EAAc,GAClB,GAAI,CACFA,EAAcxC,EAAM,UAAUjB,EAAQuD,EAAcD,CAAa,CACnE,OAASI,EAAgB,CACvBD,EAAc,GACdlC,GAAkBgB,EAASmB,EAAgB,CACzC,SAAU,WACZ,CAAC,CACH,CACKD,GAGLf,EAAezB,EAAOjB,EAAQ2C,EAAKC,CAAgB,CACrD,CACF,CACF,QAAE,CAEAU,EAAgBrF,EAClB,CACA,OAAOY,CACT,EAGE,eAAAS,EACA,cAAAS,EACA,eAAgBqD,CAClB,CACF,ECpXA,IAAMO,GAA8GC,IAA4F,CAC9M,WAAAA,EACA,QAAS,IAAI,GACf,GACMC,GAAiBC,GAAwBC,GAI1CA,GAAQ,MAAM,aAAeD,EACrBE,GAA0B,IAA2I,CAChL,IAAMF,EAAaG,EAAO,EACpBC,EAAgB,IAAI,IACpBC,EAAiB,OAAO,OAAOC,EAAa,wBAAyB,IAAIC,KAAyD,CACtI,QAASA,EACT,KAAM,CACJ,WAAAP,CACF,CACF,EAAE,EAAG,CACH,UAAW,IAAMK,CACnB,CAAC,EACKG,EAAgB,OAAO,OAAO,YAA0BD,EAAqD,CACjHA,EAAY,QAAQT,GAAc,CAChCW,EAAoBL,EAAeN,EAAYD,EAAqB,CACtE,CAAC,CACH,EAAG,CACD,UAAW,IAAMW,CACnB,CAAC,EACKE,EAA0DC,GAAO,CACrE,IAAMC,EAAoB,MAAM,KAAKR,EAAc,OAAO,CAAC,EAAE,IAAIS,GAASJ,EAAoBI,EAAM,QAASF,EAAKE,EAAM,UAAU,CAAC,EACnI,SAAO,WAAQ,GAAGD,CAAiB,CACrC,EACME,EAAmBC,EAAQV,EAAgBN,GAAcC,CAAU,CAAC,EAQ1E,MAAO,CACL,WARyDW,GAAOK,GAAQf,GACpEa,EAAiBb,CAAM,GACzBO,EAAc,GAAGP,EAAO,OAAO,EACxBU,EAAI,UAEND,EAAmBC,CAAG,EAAEK,CAAI,EAAEf,CAAM,EAI3C,cAAAO,EACA,eAAAH,EACA,WAAAL,CACF,CACF,ECnDA,IAAAiB,GAAgC,iBAwOhC,IAAMC,GAAeC,GAA8E,gBAAiBA,GAAkB,OAAOA,EAAe,aAAgB,SACtKC,GAAeC,GAA6CA,EAAO,QAA2BC,GAAcJ,GAAYI,CAAU,EAAI,CAAC,CAACA,EAAW,YAAaA,EAAW,OAAO,CAAC,EAAI,OAAO,QAAQA,CAAU,CAAC,EACjNC,GAAiB,OAAO,IAAI,0BAA0B,EACtDC,GAAgBC,GAAe,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMF,EAAc,EAChEG,GAAgB,IAAI,QACpBC,GAAmB,CAAwBC,EAAcC,EAAmDC,IAAoDC,EAAoBL,GAAeE,EAAO,IAAM,IAAI,MAAMA,EAAO,CACrO,IAAK,CAACI,EAAQC,EAAMC,IAAa,CAC/B,GAAID,IAASV,GAAgB,OAAOS,EACpC,IAAMG,EAAS,QAAQ,IAAIH,EAAQC,EAAMC,CAAQ,EACjD,GAAI,OAAOC,EAAW,IAAa,CACjC,IAAMC,EAASN,EAAkBG,CAAI,EACrC,GAAI,OAAOG,EAAW,IAAa,OAAOA,EAC1C,IAAMC,EAAUR,EAAWI,CAAI,EAC/B,GAAII,EAAS,CAEX,IAAMC,EAAgBD,EAAQ,OAAW,CACvC,KAAME,EAAO,CACf,CAAC,EACD,GAAI,OAAOD,EAAkB,IAC3B,MAAM,IAAI,MAA8CE,EAAwB,EAAE,CAAwV,EAE5a,OAAAV,EAAkBG,CAAI,EAAIK,EACnBA,CACT,CACF,CACA,OAAOH,CACT,CACF,CAAC,CAAC,EACIM,GAAYb,GAAe,CAC/B,GAAI,CAACJ,GAAaI,CAAK,EACrB,MAAM,IAAI,MAA8CY,EAAyB,EAAE,CAA0C,EAE/H,OAAOZ,EAAML,EAAc,CAC7B,EACMmB,GAAc,CAAC,EACfC,GAA4C,CAACf,EAAQc,KAAgBd,EACpE,SAASgB,MAAkEvB,EAAsI,CACtN,IAAMQ,EAAa,OAAO,YAAYT,GAAYC,CAAM,CAAC,EACnDwB,EAAa,IAAM,OAAO,KAAKhB,CAAU,EAAE,UAAS,oBAAgBA,CAAU,EAAIc,GACpFN,EAAUQ,EAAW,EACzB,SAASC,EAAgBlB,EAAgCmB,EAAuB,CAC9E,OAAOV,EAAQT,EAAOmB,CAAM,CAC9B,CACAD,EAAgB,qBAAuB,IAAMA,EAC7C,IAAMhB,EAAkD,CAAC,EACnDkB,EAAS,CAACC,EAAqBC,EAAuB,CAAC,IAA8B,CACzF,GAAM,CACJ,YAAAC,EACA,QAASC,CACX,EAAIH,EACEI,EAAiBxB,EAAWsB,CAAW,EAC7C,MAAI,CAACD,EAAO,kBAAoBG,GAAkBA,IAAmBD,GAC/D,OAAO,QAAY,IAGhBN,IAELI,EAAO,kBAAoBG,IAAmBD,GAChD,OAAOtB,EAAkBqB,CAAW,EAEtCtB,EAAWsB,CAAW,EAAIC,EAC1Bf,EAAUQ,EAAW,EACdC,EACT,EACMQ,EAAW,OAAO,OAAO,SAA2EC,EAAkDC,EAA8D,CACxN,OAAO,SAAkB5B,KAAiB6B,EAAY,CACpD,OAAOF,EAAW5B,GAAiB6B,EAAcA,EAAY5B,EAAc,GAAG6B,CAAI,EAAI7B,EAAOC,EAAYC,CAAiB,EAAG,GAAG2B,CAAI,CACtI,CACF,EAAG,CACD,SAAAhB,EACF,CAAC,EACD,OAAO,OAAO,OAAOK,EAAiB,CACpC,OAAAE,EACA,SAAAM,CACF,CAAC,CACH,CC9SO,SAASI,EAAuBC,EAAc,CACnD,MAAO,iCAAiCA,CAAI,oDAAoDA,CAAI,iFACtG","names":["src_exports","__export","ReducerType","SHOULD_AUTOBATCH","TaskAbortError","Tuple","addListener","asyncThunkCreator","autoBatchEnhancer","buildCreateSlice","clearAllListeners","combineSlices","configureStore","createAction","createActionCreatorInvariantMiddleware","createAsyncThunk","createDraftSafeSelector","createDraftSafeSelectorCreator","createDynamicMiddleware","createEntityAdapter","createImmutableStateInvariantMiddleware","createListenerMiddleware","createReducer","createSerializableStateInvariantMiddleware","createSlice","findNonSerializableValue","formatProdErrorMessage","isActionCreator","isAllOf","isAnyOf","isAsyncThunkAction","isFSA","isFulfilled","isImmutableDefault","isPending","isPlain","isRejected","isRejectedWithValue","miniSerializeError","nanoid","prepareAutoBatched","removeListener","unwrapResult","__toCommonJS","__reExport","import_immer","import_immer","import_reselect","import_reselect","createDraftSafeSelectorCreator","args","createSelector","createDraftSafeSelector","selector","wrappedSelector","value","rest","import_redux","composeWithDevTools","devToolsEnhancer","noop","import_redux_thunk","hasMatchFunction","v","createAction","type","prepareAction","actionCreator","args","prepared","formatProdErrorMessage","action","isActionCreator","hasMatchFunction","isFSA","isValidKey","key","getMessage","type","splitType","actionName","createActionCreatorInvariantMiddleware","options","next","action","Tuple","_Tuple","items","arr","freezeDraftable","val","getOrInsertComputed","map","key","compute","isImmutableDefault","value","createImmutableStateInvariantMiddleware","options","next","action","stringify","getSerialize","isPlain","val","type","findNonSerializableValue","value","path","isSerializable","getEntries","ignoredPaths","cache","foundNestedSerializable","entries","hasIgnoredPaths","key","nestedValue","nestedPath","ignored","isNestedFrozen","createSerializableStateInvariantMiddleware","options","next","action","isBoolean","x","buildGetDefaultMiddleware","options","thunk","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","Tuple","thunkMiddleware","SHOULD_AUTOBATCH","prepareAutoBatched","payload","createQueueWithTimer","timeout","notify","autoBatchEnhancer","options","next","args","store","notifying","shouldNotifyAtEndOfTick","notificationQueued","listeners","queueCallback","notifyListeners","l","listener","wrappedListener","unsubscribe","action","buildGetDefaultEnhancers","middlewareEnhancer","options","autoBatch","enhancerArray","Tuple","autoBatchEnhancer","configureStore","options","getDefaultMiddleware","buildGetDefaultMiddleware","reducer","middleware","devTools","duplicateMiddlewareCheck","preloadedState","enhancers","rootReducer","formatProdErrorMessage","finalMiddleware","finalCompose","composeWithDevTools","middlewareEnhancer","getDefaultEnhancers","buildGetDefaultEnhancers","storeEnhancers","composedEnhancer","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","typeOrActionCreator","reducer","type","formatProdErrorMessage","asyncThunk","reducers","matcher","isStateFunction","x","createReducer","initialState","mapOrBuilderCallback","actionsMap","finalActionMatchers","finalDefaultCaseReducer","executeReducerBuilderCallback","getInitialState","freezeDraftable","frozenInitialState","reducer","state","action","caseReducers","matcher","cr","previousState","caseReducer","result","draft","matches","matcher","action","hasMatchFunction","isAnyOf","matchers","isAllOf","hasExpectedRequestMetadata","validStatus","hasValidRequestId","hasValidRequestStatus","isAsyncThunkArray","a","isPending","asyncThunks","asyncThunk","isRejected","isRejectedWithValue","hasFlag","isFulfilled","isAsyncThunkAction","urlAlphabet","nanoid","size","id","i","commonProperties","RejectWithValue","payload","meta","FulfillWithMeta","miniSerializeError","value","simpleError","property","externalAbortMessage","createAsyncThunk","typePrefix","payloadCreator","options","fulfilled","createAction","requestId","arg","pending","rejected","error","actionCreator","signal","dispatch","getState","extra","nanoid","abortController","abortHandler","abortReason","abort","reason","promise","finalAction","conditionResult","isThenable","abortedPromise","_","reject","result","err","unwrapResult","isAnyOf","action","asyncThunkSymbol","asyncThunkCreator","createAsyncThunk","ReducerType","getType","slice","actionKey","buildCreateSlice","creators","cAT","options","name","reducerPath","formatProdErrorMessage","reducers","buildReducerCreators","reducerNames","context","contextMethods","typeOrActionCreator","reducer","type","matcher","actionCreator","reducerName","reducerDefinition","reducerDetails","isAsyncThunkSliceReducerDefinition","handleThunkCaseReducerDefinition","handleNormalReducerDefinition","buildReducer","extraReducers","actionMatchers","defaultCaseReducer","executeReducerBuilderCallback","finalCaseReducers","createReducer","builder","key","sM","m","selectSelf","state","injectedSelectorCache","injectedStateCache","_reducer","action","getInitialState","makeSelectorProps","injected","selectSlice","sliceState","getOrInsertComputed","getSelectors","selectState","selectorCache","map","selector","wrapSelector","injectable","pathOpt","config","newReducerPath","wrapper","rootState","args","createSlice","asyncThunk","payloadCreator","caseReducer","prepare","createNotation","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","createAction","fulfilled","pending","rejected","settled","thunk","noop","getInitialEntityState","createInitialStateFactory","stateAdapter","getInitialState","additionalState","entities","state","createSelectorsFactory","getSelectors","selectState","options","createSelector","createDraftSafeSelector","selectIds","state","selectEntities","selectAll","ids","entities","id","selectId","_","selectById","selectTotal","selectGlobalizedEntities","isDraftTyped","createSingleArgumentStateOperator","mutator","operator","createStateOperator","_","state","arg","isPayloadActionArgument","isFSA","runMutator","draft","selectIdValue","entity","selectId","ensureEntitiesArray","entities","getCurrent","value","splitAddedUpdatedEntities","newEntities","state","existingIdsArray","existingIds","added","addedIds","updated","id","createUnsortedStateAdapter","selectId","addOneMutably","entity","state","key","selectIdValue","addManyMutably","newEntities","ensureEntitiesArray","setOneMutably","setManyMutably","setAllMutably","removeOneMutably","removeManyMutably","keys","didMutate","id","removeAllMutably","takeNewKey","update","original","updated","newKey","hasNewKey","updateOneMutably","updateManyMutably","updates","newKeys","updatesPerEntity","e","upsertOneMutably","upsertManyMutably","added","splitAddedUpdatedEntities","createSingleArgumentStateOperator","createStateOperator","findInsertIndex","sortedItems","item","comparisonFunction","lowIndex","highIndex","middleIndex","currentItem","insert","insertAtIndex","createSortedStateAdapter","selectId","comparer","removeOne","removeMany","removeAll","createUnsortedStateAdapter","addOneMutably","entity","state","addManyMutably","newEntities","existingIds","ensureEntitiesArray","existingKeys","getCurrent","addedKeys","models","model","modelId","selectIdValue","notAdded","mergeFunction","setOneMutably","setManyMutably","deduplicatedEntities","entityId","setAllMutably","updateOneMutably","update","updateManyMutably","updates","appliedUpdates","replacedIds","newId","oldIndex","upsertOneMutably","upsertManyMutably","added","updated","existingIdsArray","splitAddedUpdatedEntities","areArraysEqual","a","b","i","addedItems","currentEntities","currentIds","stateEntities","ids","sortedEntities","id","wasPreviouslyEmpty","newSortedIds","createStateOperator","createEntityAdapter","options","selectId","sortComparer","instance","stateAdapter","createSortedStateAdapter","createUnsortedStateAdapter","stateFactory","createInitialStateFactory","selectorsFactory","createSelectorsFactory","task","listener","completed","cancelled","taskCancelled","taskCompleted","listenerCancelled","listenerCompleted","TaskAbortError","code","assertFunction","func","expected","formatProdErrorMessage","noop","catchRejection","promise","onError","addAbortSignalListener","abortSignal","callback","validateActive","signal","TaskAbortError","raceWithSignal","promise","cleanup","noop","resolve","reject","notifyRejection","addAbortSignalListener","runTask","task","cleanUp","error","createPause","catchRejection","output","createDelay","pause","timeoutMs","assign","INTERNAL_NIL_TOKEN","alm","createFork","parentAbortSignal","parentBlockingPromises","linkControllers","controller","addAbortSignalListener","taskExecutor","opts","assertFunction","childAbortController","result","runTask","validateActive","createPause","createDelay","taskCompleted","noop","taskCancelled","createTakePattern","startListening","signal","take","predicate","timeout","unsubscribe","promises","resolve","reject","stopListening","action","listenerApi","output","raceWithSignal","catchRejection","getListenerEntryPropsFrom","options","type","actionCreator","matcher","effect","createAction","formatProdErrorMessage","createListenerEntry","nanoid","findListenerEntry","listenerMap","entry","cancelActiveListeners","listenerCancelled","createClearListenerMiddleware","executingListeners","listener","safelyNotifyError","errorHandler","errorToNotify","errorInfo","errorHandlerError","addListener","clearAllListeners","removeListener","defaultErrorHandler","args","createListenerMiddleware","middlewareOptions","trackExecutingListener","count","untrackExecutingListener","extra","onError","insertEntry","cancelOptions","notifyListener","api","getOriginalState","internalTaskController","autoJoinPromises","_","set","listenerError","TaskAbortError","listenerCompleted","clearListenerMiddleware","next","originalState","currentState","listenerEntries","runListener","predicateError","createMiddlewareEntry","middleware","matchInstance","instanceId","action","createDynamicMiddleware","nanoid","middlewareMap","withMiddleware","createAction","middlewares","addMiddleware","getOrInsertComputed","getFinalMiddleware","api","appliedMiddleware","entry","isWithMiddleware","isAllOf","next","import_redux","isSliceLike","maybeSliceLike","getReducers","slices","sliceOrMap","ORIGINAL_STATE","isStateProxy","value","stateProxyMap","createStateProxy","state","reducerMap","initialStateCache","getOrInsertComputed","target","prop","receiver","result","cached","reducer","reducerResult","nanoid","formatProdErrorMessage","original","emptyObject","noopReducer","combineSlices","getReducer","combinedReducer","action","inject","slice","config","reducerPath","reducerToInject","currentReducer","selector","selectorFn","selectState","args","formatProdErrorMessage","code"]}
Index: de_modules/@reduxjs/toolkit/dist/index.d.mts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2662 +1,0 @@
-import { ActionCreator, Action, Middleware, StoreEnhancer, UnknownAction, Reducer, ReducersMapObject, Store, Dispatch, StateFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, MiddlewareAPI } from 'redux';
-export * from 'redux';
-import { Draft } from 'immer';
-export { Draft, WritableDraft, produce as createNextState, current, freeze, isDraft, original } from 'immer';
-import * as reselect from 'reselect';
-import { weakMapMemoize, createSelectorCreator, Selector, CreateSelectorFunction } from 'reselect';
-export { OutputSelector, Selector, createSelector, createSelectorCreator, lruMemoize, weakMapMemoize } from 'reselect';
-import { ThunkMiddleware, ThunkDispatch } from 'redux-thunk';
-export { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';
-import { UncheckedIndexedAccess } from './uncheckedindexed.js';
-
-declare const createDraftSafeSelectorCreator: typeof createSelectorCreator;
-/**
- * "Draft-Safe" version of `reselect`'s `createSelector`:
- * If an `immer`-drafted object is passed into the resulting selector's first argument,
- * the selector will act on the current draft value, instead of returning a cached value
- * that might be possibly outdated if the draft has been modified since.
- * @public
- */
-declare const createDraftSafeSelector: reselect.CreateSelectorFunction<typeof weakMapMemoize, typeof weakMapMemoize, any>;
-
-/**
- * @public
- */
-interface DevToolsEnhancerOptions {
-    /**
-     * the instance name to be showed on the monitor page. Default value is `document.title`.
-     * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.
-     */
-    name?: string;
-    /**
-     * action creators functions to be available in the Dispatcher.
-     */
-    actionCreators?: ActionCreator<any>[] | {
-        [key: string]: ActionCreator<any>;
-    };
-    /**
-     * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.
-     * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.
-     * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).
-     *
-     * @default 500 ms.
-     */
-    latency?: number;
-    /**
-     * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.
-     *
-     * @default 50
-     */
-    maxAge?: number;
-    /**
-     * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you
-     * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`
-     * functions.
-     */
-    serialize?: boolean | {
-        /**
-         * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).
-         * - `false` - will handle also circular references.
-         * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.
-         * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.
-         *   For each of them you can indicate if to include (by setting as `true`).
-         *   For `function` key you can also specify a custom function which handles serialization.
-         *   See [`jsan`](https://github.com/kolodny/jsan) for more details.
-         */
-        options?: undefined | boolean | {
-            date?: true;
-            regex?: true;
-            undefined?: true;
-            error?: true;
-            symbol?: true;
-            map?: true;
-            set?: true;
-            function?: true | ((fn: (...args: any[]) => any) => string);
-        };
-        /**
-         * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.
-         * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)
-         * key. So you can deserialize it back while importing or persisting data.
-         * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):
-         */
-        replacer?: (key: string, value: unknown) => any;
-        /**
-         * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)
-         * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)
-         * as an example on how to serialize special data types and get them back.
-         */
-        reviver?: (key: string, value: unknown) => any;
-        /**
-         * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).
-         * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.
-         * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.
-         */
-        immutable?: any;
-        /**
-         * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...
-         */
-        refs?: any;
-    };
-    /**
-     * function which takes `action` object and id number as arguments, and should return `action` object back.
-     */
-    actionSanitizer?: <A extends Action>(action: A, id: number) => A;
-    /**
-     * function which takes `state` object and index as arguments, and should return `state` object back.
-     */
-    stateSanitizer?: <S>(state: S, index: number) => S;
-    /**
-     * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-     * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-     */
-    actionsDenylist?: string | string[];
-    /**
-     * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-     * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-     */
-    actionsAllowlist?: string | string[];
-    /**
-     * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.
-     * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.
-     */
-    predicate?: <S, A extends Action>(state: S, action: A) => boolean;
-    /**
-     * if specified as `false`, it will not record the changes till clicking on `Start recording` button.
-     * Available only for Redux enhancer, for others use `autoPause`.
-     *
-     * @default true
-     */
-    shouldRecordChanges?: boolean;
-    /**
-     * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.
-     * If not specified, will commit when paused. Available only for Redux enhancer.
-     *
-     * @default "@@PAUSED""
-     */
-    pauseActionType?: string;
-    /**
-     * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.
-     * Not available for Redux enhancer (as it already does it but storing the data to be sent).
-     *
-     * @default false
-     */
-    autoPause?: boolean;
-    /**
-     * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.
-     * Available only for Redux enhancer.
-     *
-     * @default false
-     */
-    shouldStartLocked?: boolean;
-    /**
-     * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.
-     *
-     * @default true
-     */
-    shouldHotReload?: boolean;
-    /**
-     * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.
-     *
-     * @default false
-     */
-    shouldCatchErrors?: boolean;
-    /**
-     * If you want to restrict the extension, specify the features you allow.
-     * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.
-     * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.
-     * Otherwise, you'll get/set the data right from the monitor part.
-     */
-    features?: {
-        /**
-         * start/pause recording of dispatched actions
-         */
-        pause?: boolean;
-        /**
-         * lock/unlock dispatching actions and side effects
-         */
-        lock?: boolean;
-        /**
-         * persist states on page reloading
-         */
-        persist?: boolean;
-        /**
-         * export history of actions in a file
-         */
-        export?: boolean | 'custom';
-        /**
-         * import history of actions from a file
-         */
-        import?: boolean | 'custom';
-        /**
-         * jump back and forth (time travelling)
-         */
-        jump?: boolean;
-        /**
-         * skip (cancel) actions
-         */
-        skip?: boolean;
-        /**
-         * drag and drop actions in the history list
-         */
-        reorder?: boolean;
-        /**
-         * dispatch custom actions or action creators
-         */
-        dispatch?: boolean;
-        /**
-         * generate tests for the selected actions
-         */
-        test?: boolean;
-    };
-    /**
-     * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.
-     * Defaults to false.
-     */
-    trace?: boolean | (<A extends Action>(action: A) => string);
-    /**
-     * The maximum number of stack trace entries to record per action. Defaults to 10.
-     */
-    traceLimit?: number;
-}
-
-interface ActionCreatorInvariantMiddlewareOptions {
-    /**
-     * The function to identify whether a value is an action creator.
-     * The default checks for a function with a static type property and match method.
-     */
-    isActionCreator?: (action: unknown) => action is Function & {
-        type?: unknown;
-    };
-}
-declare function createActionCreatorInvariantMiddleware(options?: ActionCreatorInvariantMiddlewareOptions): Middleware;
-
-/**
- * Returns true if the passed value is "plain", i.e. a value that is either
- * directly JSON-serializable (boolean, number, string, array, plain object)
- * or `undefined`.
- *
- * @param val The value to check.
- *
- * @public
- */
-declare function isPlain(val: any): boolean;
-interface NonSerializableValue {
-    keyPath: string;
-    value: unknown;
-}
-type IgnorePaths = readonly (string | RegExp)[];
-/**
- * @public
- */
-declare function findNonSerializableValue(value: unknown, path?: string, isSerializable?: (value: unknown) => boolean, getEntries?: (value: unknown) => [string, any][], ignoredPaths?: IgnorePaths, cache?: WeakSet<object>): NonSerializableValue | false;
-/**
- * Options for `createSerializableStateInvariantMiddleware()`.
- *
- * @public
- */
-interface SerializableStateInvariantMiddlewareOptions {
-    /**
-     * The function to check if a value is considered serializable. This
-     * function is applied recursively to every value contained in the
-     * state. Defaults to `isPlain()`.
-     */
-    isSerializable?: (value: any) => boolean;
-    /**
-     * The function that will be used to retrieve entries from each
-     * value.  If unspecified, `Object.entries` will be used. Defaults
-     * to `undefined`.
-     */
-    getEntries?: (value: any) => [string, any][];
-    /**
-     * An array of action types to ignore when checking for serializability.
-     * Defaults to []
-     */
-    ignoredActions?: string[];
-    /**
-     * An array of dot-separated path strings or regular expressions to ignore
-     * when checking for serializability, Defaults to
-     * ['meta.arg', 'meta.baseQueryMeta']
-     */
-    ignoredActionPaths?: (string | RegExp)[];
-    /**
-     * An array of dot-separated path strings or regular expressions to ignore
-     * when checking for serializability, Defaults to []
-     */
-    ignoredPaths?: (string | RegExp)[];
-    /**
-     * Execution time warning threshold. If the middleware takes longer
-     * than `warnAfter` ms, a warning will be displayed in the console.
-     * Defaults to 32ms.
-     */
-    warnAfter?: number;
-    /**
-     * Opt out of checking state. When set to `true`, other state-related params will be ignored.
-     */
-    ignoreState?: boolean;
-    /**
-     * Opt out of checking actions. When set to `true`, other action-related params will be ignored.
-     */
-    ignoreActions?: boolean;
-    /**
-     * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.
-     * The cache is automatically disabled if no browser support for WeakSet is present.
-     */
-    disableCache?: boolean;
-}
-/**
- * Creates a middleware that, after every state change, checks if the new
- * state is serializable. If a non-serializable value is found within the
- * state, an error is printed to the console.
- *
- * @param options Middleware options.
- *
- * @public
- */
-declare function createSerializableStateInvariantMiddleware(options?: SerializableStateInvariantMiddlewareOptions): Middleware;
-
-/**
- * The default `isImmutable` function.
- *
- * @public
- */
-declare function isImmutableDefault(value: unknown): boolean;
-type IsImmutableFunc = (value: any) => boolean;
-/**
- * Options for `createImmutableStateInvariantMiddleware()`.
- *
- * @public
- */
-interface ImmutableStateInvariantMiddlewareOptions {
-    /**
-      Callback function to check if a value is considered to be immutable.
-      This function is applied recursively to every value contained in the state.
-      The default implementation will return true for primitive types
-      (like numbers, strings, booleans, null and undefined).
-     */
-    isImmutable?: IsImmutableFunc;
-    /**
-      An array of dot-separated path strings that match named nodes from
-      the root state to ignore when checking for immutability.
-      Defaults to undefined
-     */
-    ignoredPaths?: IgnorePaths;
-    /** Print a warning if checks take longer than N ms. Default: 32ms */
-    warnAfter?: number;
-}
-/**
- * Creates a middleware that checks whether any state was mutated in between
- * dispatches or during a dispatch. If any mutations are detected, an error is
- * thrown.
- *
- * @param options Middleware options.
- *
- * @public
- */
-declare function createImmutableStateInvariantMiddleware(options?: ImmutableStateInvariantMiddlewareOptions): Middleware;
-
-declare class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {
-    constructor(length: number);
-    constructor(...items: Items);
-    static get [Symbol.species](): any;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
-}
-
-/**
- * return True if T is `any`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;
-type CastAny<T, CastTo> = IsAny<T, CastTo, T>;
-/**
- * return True if T is `unknown`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;
-type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;
-/**
- * @internal
- */
-type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;
-/**
- * @internal
- */
-type IfVoid<P, True, False> = [void] extends [P] ? True : False;
-/**
- * @internal
- */
-type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;
-/**
- * returns True if TS version is above 3.5, False if below.
- * uses feature detection to detect TS version >= 3.5
- * * versions below 3.5 will return `{}` for unresolvable interference
- * * versions above will return `unknown`
- *
- * @internal
- */
-type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<(<T>() => T)>, 0, 1>];
-/**
- * @internal
- */
-type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
-type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [
-    infer Head,
-    ...infer Tail
-] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;
-type ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;
-type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;
-type ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;
-type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;
-type ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;
-type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;
-/**
- * Helper type. Passes T out again, but boxes it in a way that it cannot
- * "widen" the type by accident if it is a generic that should be inferred
- * from elsewhere.
- *
- * @internal
- */
-type NoInfer<T> = [T][T extends any ? 0 : never];
-type NonUndefined<T> = T extends undefined ? never : T;
-type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
-type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
-interface TypeGuard<T> {
-    (value: any): value is T;
-}
-interface HasMatchFunction<T> {
-    match: TypeGuard<T>;
-}
-/** @public */
-type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;
-/** @public */
-type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;
-type Id<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;
-type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;
-/**
- * A Promise that will never reject.
- * @see https://github.com/reduxjs/redux-toolkit/issues/4101
- */
-type SafePromise<T> = Promise<T> & {
-    __linterBrands: 'SafePromise';
-};
-
-interface ThunkOptions<E = any> {
-    extraArgument: E;
-}
-interface GetDefaultMiddlewareOptions {
-    thunk?: boolean | ThunkOptions;
-    immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
-    serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
-    actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;
-}
-type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
-    thunk: false;
-} ? never : O extends {
-    thunk: {
-        extraArgument: infer E;
-    };
-} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;
-type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {
-    thunk: true;
-    immutableCheck: true;
-    serializableCheck: true;
-    actionCreatorCheck: true;
-}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;
-
-declare const SHOULD_AUTOBATCH = "RTK_autoBatch";
-declare const prepareAutoBatched: <T>() => (payload: T) => {
-    payload: T;
-    meta: unknown;
-};
-type AutoBatchOptions = {
-    type: 'tick';
-} | {
-    type: 'timer';
-    timeout: number;
-} | {
-    type: 'raf';
-} | {
-    type: 'callback';
-    queueNotification: (notify: () => void) => void;
-};
-/**
- * A Redux store enhancer that watches for "low-priority" actions, and delays
- * notifying subscribers until either the queued callback executes or the
- * next "standard-priority" action is dispatched.
- *
- * This allows dispatching multiple "low-priority" actions in a row with only
- * a single subscriber notification to the UI after the sequence of actions
- * is finished, thus improving UI re-render performance.
- *
- * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.
- * This can be added to `action.meta` manually, or by using the
- * `prepareAutoBatched` helper.
- *
- * By default, it will queue a notification for the end of the event loop tick.
- * However, you can pass several other options to configure the behavior:
- * - `{type: 'tick'}`: queues using `queueMicrotask`
- * - `{type: 'timer', timeout: number}`: queues using `setTimeout`
- * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)
- * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback
- *
- *
- */
-declare const autoBatchEnhancer: (options?: AutoBatchOptions) => StoreEnhancer;
-
-type GetDefaultEnhancersOptions = {
-    autoBatch?: boolean | AutoBatchOptions;
-};
-type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{
-    dispatch: ExtractDispatchExtensions<M>;
-}>]>;
-
-/**
- * Options for `configureStore()`.
- *
- * @public
- */
-interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {
-    /**
-     * A single reducer function that will be used as the root reducer, or an
-     * object of slice reducers that will be passed to `combineReducers()`.
-     */
-    reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;
-    /**
-     * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.
-     * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.
-     *
-     * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`
-     * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage
-     */
-    middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;
-    /**
-     * Whether to enable Redux DevTools integration. Defaults to `true`.
-     *
-     * Additional configuration can be done by passing Redux DevTools options
-     */
-    devTools?: boolean | DevToolsEnhancerOptions;
-    /**
-     * Whether to check for duplicate middleware instances. Defaults to `true`.
-     */
-    duplicateMiddlewareCheck?: boolean;
-    /**
-     * The initial state, same as Redux's createStore.
-     * You may optionally specify it to hydrate the state
-     * from the server in universal apps, or to restore a previously serialized
-     * user session. If you use `combineReducers()` to produce the root reducer
-     * function (either directly or indirectly by passing an object as `reducer`),
-     * this must be an object with the same shape as the reducer map keys.
-     */
-    preloadedState?: P;
-    /**
-     * The store enhancers to apply. See Redux's `createStore()`.
-     * All enhancers will be included before the DevTools Extension enhancer.
-     * If you need to customize the order of enhancers, supply a callback
-     * function that will receive a `getDefaultEnhancers` function that returns a Tuple,
-     * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).
-     * If you only need to add middleware, you can use the `middleware` parameter instead.
-     */
-    enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;
-}
-type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;
-type Enhancers = ReadonlyArray<StoreEnhancer>;
-/**
- * A Redux store returned by `configureStore()`. Supports dispatching
- * side-effectful _thunks_ in addition to plain actions.
- *
- * @public
- */
-type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;
-/**
- * A friendly abstraction over the standard Redux `createStore()` function.
- *
- * @param options The store configuration.
- * @returns A configured Redux store.
- *
- * @public
- */
-declare function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[
-    StoreEnhancer<{
-        dispatch: ExtractDispatchExtensions<M>;
-    }>,
-    StoreEnhancer
-]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E>;
-
-/**
- * An action with a string type and an associated payload. This is the
- * type of action returned by `createAction()` action creators.
- *
- * @template P The type of the action's payload.
- * @template T the type used for the action type.
- * @template M The type of the action's meta (optional)
- * @template E The type of the action's error (optional)
- *
- * @public
- */
-type PayloadAction<P = void, T extends string = string, M = never, E = never> = {
-    payload: P;
-    type: T;
-} & ([M] extends [never] ? {} : {
-    meta: M;
-}) & ([E] extends [never] ? {} : {
-    error: E;
-});
-/**
- * A "prepare" method to be used as the second parameter of `createAction`.
- * Takes any number of arguments and returns a Flux Standard Action without
- * type (will be added later) that *must* contain a payload (might be undefined).
- *
- * @public
- */
-type PrepareAction<P> = ((...args: any[]) => {
-    payload: P;
-}) | ((...args: any[]) => {
-    payload: P;
-    meta: any;
-}) | ((...args: any[]) => {
-    payload: P;
-    error: any;
-}) | ((...args: any[]) => {
-    payload: P;
-    meta: any;
-    error: any;
-});
-/**
- * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.
- *
- * @internal
- */
-type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {
-    error: infer E;
-} ? E : never, ReturnType<PA> extends {
-    meta: infer M;
-} ? M : never> : void;
-/**
- * Basic type for all action creators.
- *
- * @inheritdoc {redux#ActionCreator}
- */
-type BaseActionCreator<P, T extends string, M = never, E = never> = {
-    type: T;
-    match: (action: unknown) => action is PayloadAction<P, T, M, E>;
-};
-/**
- * An action creator that takes multiple arguments that are passed
- * to a `PrepareAction` method to create the final Action.
- * @typeParam Args arguments for the action creator function
- * @typeParam P `payload` type
- * @typeParam T `type` name
- * @typeParam E optional `error` type
- * @typeParam M optional `meta` type
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {
-    /**
-     * Calling this {@link redux#ActionCreator} with `Args` will return
-     * an Action with a payload of type `P` and (depending on the `PrepareAction`
-     * method used) a `meta`- and `error` property of types `M` and `E` respectively.
-     */
-    (...args: Args): PayloadAction<P, T, M, E>;
-}
-/**
- * An action creator of type `T` that takes an optional payload of type `P`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload of `P`.
-     * Calling it without an argument will return a PayloadAction with a payload of `undefined`.
-     */
-    (payload?: P): PayloadAction<P, T>;
-}
-/**
- * An action creator of type `T` that takes no payload.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} will
-     * return a {@link PayloadAction} of type `T` with a payload of `undefined`
-     */
-    (noArgument: void): PayloadAction<undefined, T>;
-}
-/**
- * An action creator of type `T` that requires a payload of type P.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload of `P`
-     */
-    (payload: P): PayloadAction<P, T>;
-}
-/**
- * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload
-     * of exactly the type of the argument.
-     */
-    <PT extends unknown>(payload: PT): PayloadAction<PT, T>;
-}
-/**
- * An action creator that produces actions with a `payload` attribute.
- *
- * @typeParam P the `payload` type
- * @typeParam T the `type` of the resulting action
- * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.
- *
- * @public
- */
-type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>, IsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>, IfVoid<P, ActionCreatorWithoutPayload<T>, IfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>, ActionCreatorWithPayload<P, T>>>>>>;
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-declare function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-declare function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;
-/**
- * Returns true if value is an RTK-like action creator, with a static type property and match method.
- */
-declare function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function;
-/**
- * Returns true if value is an action with a string type and valid Flux Standard Action keys.
- */
-declare function isFSA(action: unknown): action is {
-    type: string;
-    payload?: unknown;
-    error?: unknown;
-    meta?: unknown;
-};
-type IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends (...args: any[]) => any ? True : False;
-
-type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {
-    dispatch: D;
-    getState: () => S;
-    extra: E;
-    requestId: string;
-    signal: AbortSignal;
-    abort: (reason?: string) => void;
-    rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;
-    fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;
-};
-/**
- * @public
- */
-interface SerializedError {
-    name?: string;
-    message?: string;
-    stack?: string;
-    code?: string;
-}
-declare class RejectWithValue<Payload, RejectedMeta> {
-    readonly payload: Payload;
-    readonly meta: RejectedMeta;
-    private readonly _type;
-    constructor(payload: Payload, meta: RejectedMeta);
-}
-declare class FulfillWithMeta<Payload, FulfilledMeta> {
-    readonly payload: Payload;
-    readonly meta: FulfilledMeta;
-    private readonly _type;
-    constructor(payload: Payload, meta: FulfilledMeta);
-}
-/**
- * Serializes an error into a plain object.
- * Reworked from https://github.com/sindresorhus/serialize-error
- *
- * @public
- */
-declare const miniSerializeError: (value: any) => SerializedError;
-type AsyncThunkConfig = {
-    state?: unknown;
-    dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;
-    extra?: unknown;
-    rejectValue?: unknown;
-    serializedErrorType?: unknown;
-    pendingMeta?: unknown;
-    fulfilledMeta?: unknown;
-    rejectedMeta?: unknown;
-};
-type GetState<ThunkApiConfig> = ThunkApiConfig extends {
-    state: infer State;
-} ? State : unknown;
-type GetExtra<ThunkApiConfig> = ThunkApiConfig extends {
-    extra: infer Extra;
-} ? Extra : unknown;
-type GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {
-    dispatch: infer Dispatch;
-} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;
-type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;
-type GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {
-    rejectValue: infer RejectValue;
-} ? RejectValue : unknown;
-type GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    pendingMeta: infer PendingMeta;
-} ? PendingMeta : unknown;
-type GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    fulfilledMeta: infer FulfilledMeta;
-} ? FulfilledMeta : unknown;
-type GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    rejectedMeta: infer RejectedMeta;
-} ? RejectedMeta : unknown;
-type GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {
-    serializedErrorType: infer GetSerializedErrorType;
-} ? GetSerializedErrorType : SerializedError;
-type MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);
-/**
- * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;
-/**
- * A type describing the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;
-/**
- * A ThunkAction created by `createAsyncThunk`.
- * Dispatching it returns a Promise for either a
- * fulfilled or rejected action.
- * Also, the returned value contains an `abort()` method
- * that allows the asyncAction to be cancelled from the outside.
- *
- * @public
- */
-type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {
-    abort: (reason?: string) => void;
-    requestId: string;
-    arg: ThunkArg;
-    unwrap: () => Promise<Returned>;
-};
-/**
- * Config provided when calling the async thunk action creator.
- */
-interface AsyncThunkDispatchConfig {
-    /**
-     * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.
-     */
-    signal?: AbortSignal;
-}
-type AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg, (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>, unknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [void] extends [ThunkArg] ? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [undefined] extends [ThunkArg] ? WithStrictNullChecks<(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>, (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> : (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;
-/**
- * Options object for `createAsyncThunk`.
- *
- * @public
- */
-type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {
-    /**
-     * A method to control whether the asyncThunk should be executed. Has access to the
-     * `arg`, `api.getState()` and `api.extra` arguments.
-     *
-     * @returns `false` if it should be skipped
-     */
-    condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;
-    /**
-     * If `condition` returns `false`, the asyncThunk will be skipped.
-     * This option allows you to control whether a `rejected` action with `meta.condition == false`
-     * will be dispatched or not.
-     *
-     * @default `false`
-     */
-    dispatchConditionRejection?: boolean;
-    serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;
-    /**
-     * A function to use when generating the `requestId` for the request sequence.
-     *
-     * @default `nanoid`
-     */
-    idGenerator?: (arg: ThunkArg) => string;
-} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     *
-     * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.
-     * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload
-     */
-    getPendingMeta?(base: {
-        arg: ThunkArg;
-        requestId: string;
-    }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;
-}, {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     */
-    getPendingMeta(base: {
-        arg: ThunkArg;
-        requestId: string;
-    }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;
-}>;
-type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    string,
-    ThunkArg,
-    GetPendingMeta<ThunkApiConfig>?
-], undefined, string, never, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'pending';
-} & GetPendingMeta<ThunkApiConfig>>;
-type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    Error | null,
-    string,
-    ThunkArg,
-    GetRejectValue<ThunkApiConfig>?,
-    GetRejectedMeta<ThunkApiConfig>?
-], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'rejected';
-    aborted: boolean;
-    condition: boolean;
-} & (({
-    rejectedWithValue: false;
-} & {
-    [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined;
-}) | ({
-    rejectedWithValue: true;
-} & GetRejectedMeta<ThunkApiConfig>))>;
-type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    Returned,
-    string,
-    ThunkArg,
-    GetFulfilledMeta<ThunkApiConfig>?
-], Returned, string, never, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'fulfilled';
-} & GetFulfilledMeta<ThunkApiConfig>>;
-/**
- * A type describing the return value of `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {
-    pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;
-    rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;
-    fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;
-    settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;
-    typePrefix: string;
-};
-type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;
-type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {
-    /**
-     *
-     * @param typePrefix
-     * @param payloadCreator
-     * @param options
-     *
-     * @public
-     */
-    <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;
-    /**
-     *
-     * @param typePrefix
-     * @param payloadCreator
-     * @param options
-     *
-     * @public
-     */
-    <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-};
-type CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {
-    withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-};
-declare const createAsyncThunk: CreateAsyncThunk<AsyncThunkConfig>;
-interface UnwrappableAction {
-    payload: any;
-    meta?: any;
-    error?: any;
-}
-type UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {
-    error: any;
-}>['payload'];
-/**
- * @public
- */
-declare function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R>;
-type WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;
-
-type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {
-    pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;
-    rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;
-    fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;
-    settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;
-};
-type TypedActionCreator<Type extends string> = {
-    (...args: any[]): Action<Type>;
-    type: Type;
-};
-/**
- * A builder for an action <-> reducer map.
- *
- * @public
- */
-interface ActionReducerMapBuilder<State> {
-    /**
-     * Adds a case reducer to handle a single exact action type.
-     * @remarks
-     * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-     * @param reducer - The actual case reducer function.
-     */
-    addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;
-    /**
-     * Adds a case reducer to handle a single exact action type.
-     * @remarks
-     * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-     * @param reducer - The actual case reducer function.
-     */
-    addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;
-    /**
-     * Adds case reducers to handle actions based on a `AsyncThunk` action creator.
-     * @remarks
-     * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param asyncThunk - The async thunk action creator itself.
-     * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.
-     * @example
-  ```ts no-transpile
-  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'
-  
-  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {
-    const response = await fetch(`https://reqres.in/api/users/${id}`)
-    return (await response.json()).data
-  })
-  
-  const reducer = createReducer(initialState, (builder) => {
-    builder.addAsyncThunk(fetchUserById, {
-      pending: (state, action) => {
-        state.fetchUserById.loading = 'pending'
-      },
-      fulfilled: (state, action) => {
-        state.fetchUserById.data = action.payload
-      },
-      rejected: (state, action) => {
-        state.fetchUserById.error = action.error
-      },
-      settled: (state, action) => {
-        state.fetchUserById.loading = action.meta.requestStatus
-      },
-    })
-  })
-     */
-    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;
-    /**
-     * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.
-     * @remarks
-     * If multiple matcher reducers match, all of them will be executed in the order
-     * they were defined in - even if a case reducer already matched.
-     * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.
-     * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)
-     *   function
-     * @param reducer - The actual case reducer function.
-     *
-     * @example
-  ```ts
-  import {
-    createAction,
-    createReducer,
-    AsyncThunk,
-    UnknownAction,
-  } from "@reduxjs/toolkit";
-  
-  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;
-  
-  type PendingAction = ReturnType<GenericAsyncThunk["pending"]>;
-  type RejectedAction = ReturnType<GenericAsyncThunk["rejected"]>;
-  type FulfilledAction = ReturnType<GenericAsyncThunk["fulfilled"]>;
-  
-  const initialState: Record<string, string> = {};
-  const resetAction = createAction("reset-tracked-loading-state");
-  
-  function isPendingAction(action: UnknownAction): action is PendingAction {
-    return typeof action.type === "string" && action.type.endsWith("/pending");
-  }
-  
-  const reducer = createReducer(initialState, (builder) => {
-    builder
-      .addCase(resetAction, () => initialState)
-      // matcher can be defined outside as a type predicate function
-      .addMatcher(isPendingAction, (state, action) => {
-        state[action.meta.requestId] = "pending";
-      })
-      .addMatcher(
-        // matcher can be defined inline as a type predicate function
-        (action): action is RejectedAction => action.type.endsWith("/rejected"),
-        (state, action) => {
-          state[action.meta.requestId] = "rejected";
-        }
-      )
-      // matcher can just return boolean and the matcher can receive a generic argument
-      .addMatcher<FulfilledAction>(
-        (action) => action.type.endsWith("/fulfilled"),
-        (state, action) => {
-          state[action.meta.requestId] = "fulfilled";
-        }
-      );
-  });
-  ```
-     */
-    addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;
-    /**
-     * Adds a "default case" reducer that is executed if no case reducer and no matcher
-     * reducer was executed for this action.
-     * @param reducer - The fallback "default case" reducer function.
-     *
-     * @example
-  ```ts
-  import { createReducer } from '@reduxjs/toolkit'
-  const initialState = { otherActions: 0 }
-  const reducer = createReducer(initialState, builder => {
-    builder
-      // .addCase(...)
-      // .addMatcher(...)
-      .addDefaultCase((state, action) => {
-        state.otherActions++
-      })
-  })
-  ```
-     */
-    addDefaultCase(reducer: CaseReducer<State, Action>): {};
-}
-
-/**
- * Defines a mapping from action types to corresponding action object shapes.
- *
- * @deprecated This should not be used manually - it is only used for internal
- *             inference purposes and should not have any further value.
- *             It might be removed in the future.
- * @public
- */
-type Actions<T extends keyof any = string> = Record<T, Action>;
-/**
- * A *case reducer* is a reducer function for a specific action type. Case
- * reducers can be composed to full reducers using `createReducer()`.
- *
- * Unlike a normal Redux reducer, a case reducer is never called with an
- * `undefined` state to determine the initial state. Instead, the initial
- * state is explicitly specified as an argument to `createReducer()`.
- *
- * In addition, a case reducer can choose to mutate the passed-in `state`
- * value directly instead of returning a new state. This does not actually
- * cause the store state to be mutated directly; instead, thanks to
- * [immer](https://github.com/mweststrate/immer), the mutations are
- * translated to copy operations that result in a new state.
- *
- * @public
- */
-type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;
-/**
- * A mapping from action types to case reducers for `createReducer()`.
- *
- * @deprecated This should not be used manually - it is only used
- *             for internal inference purposes and using it manually
- *             would lead to type erasure.
- *             It might be removed in the future.
- * @public
- */
-type CaseReducers<S, AS extends Actions> = {
-    [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void;
-};
-type NotFunction<T> = T extends Function ? never : T;
-type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {
-    getInitialState: () => S;
-};
-/**
- * A utility function that allows defining a reducer as a mapping from action
- * type to *case reducer* functions that handle these action types. The
- * reducer's initial state is passed as the first argument.
- *
- * @remarks
- * The body of every case reducer is implicitly wrapped with a call to
- * `produce()` from the [immer](https://github.com/mweststrate/immer) library.
- * This means that rather than returning a new state object, you can also
- * mutate the passed-in state object directly; these mutations will then be
- * automatically and efficiently translated into copies, giving you both
- * convenience and immutability.
- *
- * @overloadSummary
- * This function accepts a callback that receives a `builder` object as its argument.
- * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be
- * called to define what actions this reducer will handle.
- *
- * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
- * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define
- *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
- * @example
-```ts
-import {
-  createAction,
-  createReducer,
-  UnknownAction,
-  PayloadAction,
-} from "@reduxjs/toolkit";
-
-const increment = createAction<number>("increment");
-const decrement = createAction<number>("decrement");
-
-function isActionWithNumberPayload(
-  action: UnknownAction
-): action is PayloadAction<number> {
-  return typeof action.payload === "number";
-}
-
-const reducer = createReducer(
-  {
-    counter: 0,
-    sumOfNumberPayloads: 0,
-    unhandledActions: 0,
-  },
-  (builder) => {
-    builder
-      .addCase(increment, (state, action) => {
-        // action is inferred correctly here
-        state.counter += action.payload;
-      })
-      // You can chain calls, or have separate `builder.addCase()` lines each time
-      .addCase(decrement, (state, action) => {
-        state.counter -= action.payload;
-      })
-      // You can apply a "matcher function" to incoming actions
-      .addMatcher(isActionWithNumberPayload, (state, action) => {})
-      // and provide a default case if no other handlers matched
-      .addDefaultCase((state, action) => {});
-  }
-);
-```
- * @public
- */
-declare function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S>;
-
-type SliceLike<ReducerPath extends string, State, PreloadedState = State> = {
-    reducerPath: ReducerPath;
-    reducer: Reducer<State, any, PreloadedState>;
-};
-type AnySliceLike = SliceLike<string, any>;
-type SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;
-type SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;
-type SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;
-type WithSlice<A extends AnySliceLike> = {
-    [Path in SliceLikeReducerPath<A>]: SliceLikeState<A>;
-};
-type WithSlicePreloadedState<A extends AnySliceLike> = {
-    [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A>;
-};
-type ReducerMap = Record<string, Reducer>;
-type ExistingSliceLike<DeclaredState, PreloadedState> = {
-    [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>>;
-}[keyof DeclaredState];
-type InjectConfig = {
-    /**
-     * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.
-     */
-    overrideExisting?: boolean;
-};
-/**
- * A reducer that allows for slices/reducers to be injected after initialisation.
- */
-interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {
-    /**
-     * Provide a type for slices that will be injected lazily.
-     *
-     * One way to do this would be with interface merging:
-     * ```ts
-     *
-     * export interface LazyLoadedSlices {}
-     *
-     * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-     *
-     * // elsewhere
-     *
-     * declare module './reducer' {
-     *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-     * }
-     *
-     * const withBoolean = rootReducer.inject(booleanSlice);
-     *
-     * // elsewhere again
-     *
-     * declare module './reducer' {
-     *   export interface LazyLoadedSlices {
-     *     customName: CustomState
-     *   }
-     * }
-     *
-     * const withCustom = rootReducer.inject({ reducerPath: "customName", reducer: customSlice.reducer })
-     * ```
-     */
-    withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;
-    /**
-     * Inject a slice.
-     *
-     * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-     *
-     * ```ts
-     * rootReducer.inject(booleanSlice)
-     * rootReducer.inject(baseApi)
-     * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-     * ```
-     *
-     */
-    inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;
-    /**
-     * Inject a slice.
-     *
-     * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-     *
-     * ```ts
-     * rootReducer.inject(booleanSlice)
-     * rootReducer.inject(baseApi)
-     * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-     * ```
-     *
-     */
-    inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;
-    /**
-     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-     *
-     * ```ts
-     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-     * //                                                                ^? boolean | undefined
-     *
-     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-     *   return state.boolean;
-     *   //           ^? boolean
-     * })
-     * ```
-     *
-     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-     *
-     * ```ts
-     *
-     * export interface LazyLoadedSlices {};
-     *
-     * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-     *
-     * export const rootReducer = combineSlices({ inner: innerReducer });
-     *
-     * export type RootState = ReturnType<typeof rootReducer>;
-     *
-     * // elsewhere
-     *
-     * declare module "./reducer.ts" {
-     *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-     * }
-     *
-     * const withBool = innerReducer.inject(booleanSlice);
-     *
-     * const selectBoolean = withBool.selector(
-     *   (state) => state.boolean,
-     *   (rootState: RootState) => state.inner
-     * );
-     * //    now expects to be passed RootState instead of innerReducer state
-     *
-     * ```
-     *
-     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-     *
-     * ```ts
-     * const injectedReducer = rootReducer.inject(booleanSlice);
-     * const selectBoolean = injectedReducer.selector((state) => {
-     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-     *   return state.boolean
-     * })
-     * ```
-     */
-    selector: {
-        /**
-         * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-         *
-         * ```ts
-         * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-         * //                                                                ^? boolean | undefined
-         *
-         * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-         *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-         *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-         *   return state.boolean;
-         *   //           ^? boolean
-         * })
-         * ```
-         *
-         * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-         *
-         * ```ts
-         * const injectedReducer = rootReducer.inject(booleanSlice);
-         * const selectBoolean = injectedReducer.selector((state) => {
-         *   console.log(injectedReducer.selector.original(state).boolean) // undefined
-         *   return state.boolean
-         * })
-         * ```
-         */
-        <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;
-        /**
-         * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-         *
-         * ```ts
-         * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-         * //                                                                ^? boolean | undefined
-         *
-         * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-         *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-         *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-         *   return state.boolean;
-         *   //           ^? boolean
-         * })
-         * ```
-         *
-         * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-         *
-         * ```ts
-         *
-         * interface LazyLoadedSlices {};
-         *
-         * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-         *
-         * const rootReducer = combineSlices({ inner: innerReducer });
-         *
-         * type RootState = ReturnType<typeof rootReducer>;
-         *
-         * // elsewhere
-         *
-         * declare module "./reducer.ts" {
-         *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-         * }
-         *
-         * const withBool = innerReducer.inject(booleanSlice);
-         *
-         * const selectBoolean = withBool.selector(
-         *   (state) => state.boolean,
-         *   (rootState: RootState) => state.inner
-         * );
-         * //    now expects to be passed RootState instead of innerReducer state
-         *
-         * ```
-         *
-         * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-         *
-         * ```ts
-         * const injectedReducer = rootReducer.inject(booleanSlice);
-         * const selectBoolean = injectedReducer.selector((state) => {
-         *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-         *   return state.boolean
-         * })
-         * ```
-         */
-        <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;
-        /**
-         * Returns the unproxied state. Useful for debugging.
-         * @param state state Proxy, that ensures injected reducers have value
-         * @returns original, unproxied state
-         * @throws if value passed is not a state Proxy
-         */
-        original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;
-    };
-}
-type InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;
-type InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;
-declare function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>>;
-
-declare const asyncThunkSymbol: unique symbol;
-declare const asyncThunkCreator: {
-    [asyncThunkSymbol]: typeof createAsyncThunk;
-};
-type InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {
-    reducerPath?: NewReducerPath;
-};
-/**
- * The return value of `createSlice`
- *
- * @public
- */
-interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {
-    /**
-     * The slice name.
-     */
-    name: Name;
-    /**
-     *  The slice reducer path.
-     */
-    reducerPath: ReducerPath;
-    /**
-     * The slice's reducer.
-     */
-    reducer: Reducer<State>;
-    /**
-     * Action creators for the types of actions that are handled by the slice
-     * reducer.
-     */
-    actions: CaseReducerActions<CaseReducers, Name>;
-    /**
-     * The individual case reducer functions that were passed in the `reducers` parameter.
-     * This enables reuse and testing if they were defined inline when calling `createSlice`.
-     */
-    caseReducers: SliceDefinedCaseReducers<CaseReducers>;
-    /**
-     * Provides access to the initial state value given to the slice.
-     * If a lazy state initializer was provided, it will be called and a fresh value returned.
-     */
-    getInitialState: () => State;
-    /**
-     * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-     */
-    getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;
-    /**
-     * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-     */
-    getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;
-    /**
-     * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)
-     *
-     * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.
-     */
-    get selectors(): Id<SliceDefinedSelectors<State, Selectors, {
-        [K in ReducerPath]: State;
-    }>>;
-    /**
-     * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.
-     */
-    injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {
-        inject: (slice: {
-            reducerPath: string;
-            reducer: Reducer;
-        }, config?: InjectConfig) => void;
-    }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;
-    /**
-     * Select the slice state, using the slice's current reducerPath.
-     *
-     * Will throw an error if slice is not found.
-     */
-    selectSlice(state: {
-        [K in ReducerPath]: State;
-    }): State;
-}
-/**
- * A slice after being called with `injectInto(reducer)`.
- *
- * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.
- */
-type InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {
-    /**
-     * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-     */
-    getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;
-    /**
-     * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-     */
-    getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;
-    /**
-     * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)
-     *
-     * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.
-     */
-    get selectors(): Id<SliceDefinedSelectors<State, Selectors, {
-        [K in ReducerPath]?: State | undefined;
-    }>>;
-    /**
-     * Select the slice state, using the slice's current reducerPath.
-     *
-     * Returns initial state if slice is not found.
-     */
-    selectSlice(state: {
-        [K in ReducerPath]?: State | undefined;
-    }): State;
-};
-/**
- * Options for `createSlice()`.
- *
- * @public
- */
-interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {
-    /**
-     * The slice's name. Used to namespace the generated action types.
-     */
-    name: Name;
-    /**
-     * The slice's reducer path. Used when injecting into a combined slice reducer.
-     */
-    reducerPath?: ReducerPath;
-    /**
-     * The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
-     */
-    initialState: State | (() => State);
-    /**
-     * A mapping from action types to action-type-specific *case reducer*
-     * functions. For every action type, a matching action creator will be
-     * generated using `createAction()`.
-     */
-    reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);
-    /**
-     * A callback that receives a *builder* object to define
-     * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
-     *
-     *
-     * @example
-  ```ts
-  import { createAction, createSlice, Action } from '@reduxjs/toolkit'
-  const incrementBy = createAction<number>('incrementBy')
-  const decrement = createAction('decrement')
-  
-  interface RejectedAction extends Action {
-    error: Error
-  }
-  
-  function isRejectedAction(action: Action): action is RejectedAction {
-    return action.type.endsWith('rejected')
-  }
-  
-  createSlice({
-    name: 'counter',
-    initialState: 0,
-    reducers: {},
-    extraReducers: builder => {
-      builder
-        .addCase(incrementBy, (state, action) => {
-          // action is inferred correctly here if using TS
-        })
-        // You can chain calls, or have separate `builder.addCase()` lines each time
-        .addCase(decrement, (state, action) => {})
-        // You can match a range of action types
-        .addMatcher(
-          isRejectedAction,
-          // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard
-          (state, action) => {}
-        )
-        // and provide a default case if no other handlers matched
-        .addDefaultCase((state, action) => {})
-      }
-  })
-  ```
-     */
-    extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;
-    /**
-     * A map of selectors that receive the slice's state and any additional arguments, and return a result.
-     */
-    selectors?: Selectors;
-}
-declare enum ReducerType {
-    reducer = "reducer",
-    reducerWithPrepare = "reducerWithPrepare",
-    asyncThunk = "asyncThunk"
-}
-type ReducerDefinition<T extends ReducerType = ReducerType> = {
-    _reducerDefinitionType: T;
-};
-type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;
-/**
- * A CaseReducer with a `prepare` method.
- *
- * @public
- */
-type CaseReducerWithPrepare<State, Action extends PayloadAction> = {
-    reducer: CaseReducer<State, Action>;
-    prepare: PrepareAction<Action['payload']>;
-};
-type AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {
-    options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;
-};
-type AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {
-    payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;
-};
-/**
- * Providing these as part of the config would cause circular types, so we disallow passing them
- */
-type PreventCircular<ThunkApiConfig> = {
-    [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K];
-};
-interface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {
-    <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;
-    <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;
-    withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-}
-interface ReducerCreators<State> {
-    reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;
-    reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;
-    asyncThunk: AsyncThunkCreator<State>;
-    preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {
-        _reducerDefinitionType: ReducerType.reducerWithPrepare;
-        prepare: Prepare;
-        reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;
-    };
-}
-/**
- * The type describing a slice's `reducers` option.
- *
- * @public
- */
-type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;
-/**
- * The type describing a slice's `selectors` option.
- */
-type SliceSelectors<State> = {
-    [K: string]: (sliceState: State, ...args: any[]) => any;
-};
-type SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;
-/**
- * Derives the slice's `actions` property from the `reducers` options
- *
- * @public
- */
-type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = {
-    [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {
-        prepare: any;
-    } ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {
-        reducer: any;
-    } ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never;
-};
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`
- *
- * @internal
- */
-type ActionCreatorForCaseReducerWithPrepare<CR extends {
-    prepare: any;
-}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducer`
- *
- * @internal
- */
-type ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (state: any, action: infer Action) => any ? Action extends {
-    payload: infer P;
-} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;
-/**
- * Extracts the CaseReducers out of a `reducers` object, even if they are
- * tested into a `CaseReducerWithPrepare`.
- *
- * @internal
- */
-type SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {
-    [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {
-        reducer: infer Reducer;
-    } ? Reducer : Definition : never;
-};
-type RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {
-    unwrapped: S;
-} : never;
-/**
- * Extracts the final selector type from the `selectors` object.
- *
- * Removes the `string` index signature from the default value.
- */
-type SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = {
-    [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState>;
-};
-/**
- * Used on a SliceCaseReducers object.
- * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that
- * the `reducer` and the `prepare` function use the same type of `payload`.
- *
- * Might do additional such checks in the future.
- *
- * This type is only ever useful if you want to write your own wrapper around
- * `createSlice`. Please don't use it otherwise!
- *
- * @public
- */
-type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & {
-    [T in keyof ACR]: ACR[T] extends {
-        reducer(s: S, action?: infer A): any;
-    } ? {
-        prepare(...a: never[]): Omit<A, 'type'>;
-    } : {};
-};
-interface BuildCreateSliceConfig {
-    creators?: {
-        asyncThunk?: typeof asyncThunkCreator;
-    };
-}
-declare function buildCreateSlice({ creators }?: BuildCreateSliceConfig): <State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>) => Slice<State, CaseReducers, Name, ReducerPath, Selectors>;
-/**
- * A function that accepts an initial state, an object full of reducer
- * functions, and a "slice name", and automatically generates
- * action creators and action types that correspond to the
- * reducers and state.
- *
- * @public
- */
-declare const createSlice: <State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>) => Slice<State, CaseReducers, Name, ReducerPath, Selectors>;
-
-type AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;
-type GetSelectorsOptions = {
-    createSelector?: AnyCreateSelectorFunction;
-};
-
-/**
- * @public
- */
-type EntityId = number | string;
-/**
- * @public
- */
-type Comparer<T> = (a: T, b: T) => number;
-/**
- * @public
- */
-type IdSelector<T, Id extends EntityId> = (model: T) => Id;
-/**
- * @public
- */
-type Update<T, Id extends EntityId> = {
-    id: Id;
-    changes: Partial<T>;
-};
-/**
- * @public
- */
-interface EntityState<T, Id extends EntityId> {
-    ids: Id[];
-    entities: Record<Id, T>;
-}
-/**
- * @public
- */
-interface EntityAdapterOptions<T, Id extends EntityId> {
-    selectId?: IdSelector<T, Id>;
-    sortComparer?: false | Comparer<T>;
-}
-type PreventAny<S, T, Id extends EntityId> = CastAny<S, EntityState<T, Id>>;
-type DraftableEntityState<T, Id extends EntityId> = EntityState<T, Id> | Draft<EntityState<T, Id>>;
-/**
- * @public
- */
-interface EntityStateAdapter<T, Id extends EntityId> {
-    addOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    addOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, action: PayloadAction<T>): S;
-    addMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    addMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    setOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    setOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, action: PayloadAction<T>): S;
-    setMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    setMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    setAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    setAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    removeOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, key: Id): S;
-    removeOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, key: PayloadAction<Id>): S;
-    removeMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, keys: readonly Id[]): S;
-    removeMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, keys: PayloadAction<readonly Id[]>): S;
-    removeAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S;
-    updateOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, update: Update<T, Id>): S;
-    updateOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, update: PayloadAction<Update<T, Id>>): S;
-    updateMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, updates: ReadonlyArray<Update<T, Id>>): S;
-    updateMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, updates: PayloadAction<ReadonlyArray<Update<T, Id>>>): S;
-    upsertOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    upsertOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: PayloadAction<T>): S;
-    upsertMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    upsertMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-}
-/**
- * @public
- */
-interface EntitySelectors<T, V, IdType extends EntityId> {
-    selectIds: (state: V) => IdType[];
-    selectEntities: (state: V) => Record<IdType, T>;
-    selectAll: (state: V) => T[];
-    selectTotal: (state: V) => number;
-    selectById: (state: V, id: IdType) => Id<UncheckedIndexedAccess<T>>;
-}
-/**
- * @public
- */
-interface EntityStateFactory<T, Id extends EntityId> {
-    getInitialState(state?: undefined, entities?: Record<Id, T> | readonly T[]): EntityState<T, Id>;
-    getInitialState<S extends object>(state: S, entities?: Record<Id, T> | readonly T[]): EntityState<T, Id> & S;
-}
-/**
- * @public
- */
-interface EntityAdapter<T, Id extends EntityId> extends EntityStateAdapter<T, Id>, EntityStateFactory<T, Id>, Required<EntityAdapterOptions<T, Id>> {
-    getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;
-    getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;
-}
-
-declare function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;
-declare function createEntityAdapter<T extends {
-    id: EntityId;
-}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;
-
-/** @public */
-type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;
-/** @public */
-type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches any one of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-declare function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers): (action: any) => action is ActionMatchingAnyOf<Matchers>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches all of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-declare function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers): (action: any) => action is ActionMatchingAllOf<Matchers>;
-type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;
-type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is pending.
- *
- * @public
- */
-declare function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is pending.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a pending thunk action
- * @public
- */
-declare function isPending(action: any): action is UnknownAsyncThunkPendingAction;
-type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;
-type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected.
- *
- * @public
- */
-declare function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a rejected thunk action
- * @public
- */
-declare function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;
-type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {
-    rejectValue: infer RejectedValue;
-}> ? {
-    payload: RejectedValue;
-} : unknown);
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected with value.
- *
- * @public
- */
-declare function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected with value.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a rejected thunk action with value
- * @public
- */
-declare function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;
-type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;
-type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is fulfilled.
- *
- * @public
- */
-declare function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is fulfilled.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a fulfilled thunk action
- * @public
- */
-declare function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;
-type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;
-type AnyAsyncThunk = {
-    pending: {
-        match: (action: any) => action is any;
-    };
-    fulfilled: {
-        match: (action: any) => action is any;
-    };
-    rejected: {
-        match: (action: any) => action is any;
-    };
-};
-type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator.
- *
- * @public
- */
-declare function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a thunk action
- * @public
- */
-declare function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;
-
-/**
- *
- * @public
- */
-declare let nanoid: (size?: number) => string;
-
-declare class TaskAbortError implements SerializedError {
-    code: string | undefined;
-    name: string;
-    message: string;
-    constructor(code: string | undefined);
-}
-
-/**
- * Types copied from RTK
- */
-/** @internal */
-type TypedActionCreatorWithMatchFunction<Type extends string> = TypedActionCreator<Type> & {
-    match: MatchFunction<any>;
-};
-/** @internal */
-type AnyListenerPredicate<State> = (action: UnknownAction, currentState: State, originalState: State) => boolean;
-/** @public */
-type ListenerPredicate<ActionType extends Action, State> = (action: UnknownAction, currentState: State, originalState: State) => action is ActionType;
-/** @public */
-interface ConditionFunction<State> {
-    (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>;
-    (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>;
-    (predicate: () => boolean, timeout?: number): Promise<boolean>;
-}
-/** @internal */
-type MatchFunction<T> = (v: any) => v is T;
-/** @public */
-interface ForkedTaskAPI {
-    /**
-     * Returns a promise that resolves when `waitFor` resolves or
-     * rejects if the task or the parent listener has been cancelled or is completed.
-     */
-    pause<W>(waitFor: Promise<W>): Promise<W>;
-    /**
-     * Returns a promise that resolves after `timeoutMs` or
-     * rejects if the task or the parent listener has been cancelled or is completed.
-     * @param timeoutMs
-     */
-    delay(timeoutMs: number): Promise<void>;
-    /**
-     * An abort signal whose `aborted` property is set to `true`
-     * if the task execution is either aborted or completed.
-     * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-     */
-    signal: AbortSignal;
-}
-/** @public */
-interface AsyncTaskExecutor<T> {
-    (forkApi: ForkedTaskAPI): Promise<T>;
-}
-/** @public */
-interface SyncTaskExecutor<T> {
-    (forkApi: ForkedTaskAPI): T;
-}
-/** @public */
-type ForkedTaskExecutor<T> = AsyncTaskExecutor<T> | SyncTaskExecutor<T>;
-/** @public */
-type TaskResolved<T> = {
-    readonly status: 'ok';
-    readonly value: T;
-};
-/** @public */
-type TaskRejected = {
-    readonly status: 'rejected';
-    readonly error: unknown;
-};
-/** @public */
-type TaskCancelled = {
-    readonly status: 'cancelled';
-    readonly error: TaskAbortError;
-};
-/** @public */
-type TaskResult<Value> = TaskResolved<Value> | TaskRejected | TaskCancelled;
-/** @public */
-interface ForkedTask<T> {
-    /**
-     * A promise that resolves when the task is either completed or cancelled or rejects
-     * if parent listener execution is cancelled or completed.
-     *
-     * ### Example
-     * ```ts
-     * const result = await fork(async (forkApi) => Promise.resolve(4)).result
-     *
-     * if(result.status === 'ok') {
-     *   console.log(result.value) // logs 4
-     * }}
-     * ```
-     */
-    result: Promise<TaskResult<T>>;
-    /**
-     * Cancel task if it is in progress or not yet started,
-     * it is noop otherwise.
-     */
-    cancel(): void;
-}
-/** @public */
-interface ForkOptions {
-    /**
-     * If true, causes the parent task to not be marked as complete until
-     * all autoJoined forks have completed or failed.
-     */
-    autoJoin: boolean;
-}
-/** @public */
-interface ListenerEffectAPI<State, DispatchType extends Dispatch, ExtraArgument = unknown> extends MiddlewareAPI<DispatchType, State> {
-    /**
-     * Returns the store state as it existed when the action was originally dispatched, _before_ the reducers ran.
-     *
-     * ### Synchronous invocation
-     *
-     * This function can **only** be invoked **synchronously**, it throws error otherwise.
-     *
-     * @example
-     *
-     * ```ts
-     * middleware.startListening({
-     *  predicate: () => true,
-     *  async effect(_, { getOriginalState }) {
-     *    getOriginalState(); // sync: OK!
-     *
-     *    setTimeout(getOriginalState, 0); // async: throws Error
-     *
-     *    await Promise().resolve();
-     *
-     *    getOriginalState() // async: throws Error
-     *  }
-     * })
-     * ```
-     */
-    getOriginalState: () => State;
-    /**
-     * Removes the listener entry from the middleware and prevent future instances of the listener from running.
-     *
-     * It does **not** cancel any active instances.
-     */
-    unsubscribe(): void;
-    /**
-     * It will subscribe a listener if it was previously removed, noop otherwise.
-     */
-    subscribe(): void;
-    /**
-     * Returns a promise that resolves when the input predicate returns `true` or
-     * rejects if the listener has been cancelled or is completed.
-     *
-     * The return value is `true` if the predicate succeeds or `false` if a timeout is provided and expires first.
-     *
-     * ### Example
-     *
-     * ```ts
-     * const updateBy = createAction<number>('counter/updateBy');
-     *
-     * middleware.startListening({
-     *  actionCreator: updateBy,
-     *  async effect(_, { condition }) {
-     *    // wait at most 3s for `updateBy` actions.
-     *    if(await condition(updateBy.match, 3_000)) {
-     *      // `updateBy` has been dispatched twice in less than 3s.
-     *    }
-     *  }
-     * })
-     * ```
-     */
-    condition: ConditionFunction<State>;
-    /**
-     * Returns a promise that resolves when the input predicate returns `true` or
-     * rejects if the listener has been cancelled or is completed.
-     *
-     * The return value is the `[action, currentState, previousState]` combination that the predicate saw as arguments.
-     *
-     * The promise resolves to null if a timeout is provided and expires first,
-     *
-     * ### Example
-     *
-     * ```ts
-     * const updateBy = createAction<number>('counter/updateBy');
-     *
-     * middleware.startListening({
-     *  actionCreator: updateBy,
-     *  async effect(_, { take }) {
-     *    const [{ payload }] =  await take(updateBy.match);
-     *    console.log(payload); // logs 5;
-     *  }
-     * })
-     *
-     * store.dispatch(updateBy(5));
-     * ```
-     */
-    take: TakePattern<State>;
-    /**
-     * Cancels all other running instances of this same listener except for the one that made this call.
-     */
-    cancelActiveListeners: () => void;
-    /**
-     * Cancels the instance of this listener that made this call.
-     */
-    cancel: () => void;
-    /**
-     * Throws a `TaskAbortError` if this listener has been cancelled
-     */
-    throwIfCancelled: () => void;
-    /**
-     * An abort signal whose `aborted` property is set to `true`
-     * if the listener execution is either aborted or completed.
-     * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-     */
-    signal: AbortSignal;
-    /**
-     * Returns a promise that resolves after `timeoutMs` or
-     * rejects if the listener has been cancelled or is completed.
-     */
-    delay(timeoutMs: number): Promise<void>;
-    /**
-     * Queues in the next microtask the execution of a task.
-     * @param executor
-     * @param options
-     */
-    fork<T>(executor: ForkedTaskExecutor<T>, options?: ForkOptions): ForkedTask<T>;
-    /**
-     * Returns a promise that resolves when `waitFor` resolves or
-     * rejects if the listener has been cancelled or is completed.
-     * @param promise
-     */
-    pause<M>(promise: Promise<M>): Promise<M>;
-    extra: ExtraArgument;
-}
-/** @public */
-type ListenerEffect<ActionType extends Action, State, DispatchType extends Dispatch, ExtraArgument = unknown> = (action: ActionType, api: ListenerEffectAPI<State, DispatchType, ExtraArgument>) => void | Promise<void>;
-/**
- * @public
- * Additional infos regarding the error raised.
- */
-interface ListenerErrorInfo {
-    /**
-     * Which function has generated the exception.
-     */
-    raisedBy: 'effect' | 'predicate';
-}
-/**
- * @public
- * Gets notified with synchronous and asynchronous errors raised by `listeners` or `predicates`.
- * @param error The thrown error.
- * @param errorInfo Additional information regarding the thrown error.
- */
-interface ListenerErrorHandler {
-    (error: unknown, errorInfo: ListenerErrorInfo): void;
-}
-/** @public */
-interface CreateListenerMiddlewareOptions<ExtraArgument = unknown> {
-    extra?: ExtraArgument;
-    /**
-     * Receives synchronous errors that are raised by `listener` and `listenerOption.predicate`.
-     */
-    onError?: ListenerErrorHandler;
-}
-/** @public */
-type ListenerMiddleware<State = unknown, DispatchType extends ThunkDispatch<State, unknown, Action> = ThunkDispatch<State, unknown, UnknownAction>, ExtraArgument = unknown> = Middleware<{
-    (action: Action<'listenerMiddleware/add'>): UnsubscribeListener;
-}, State, DispatchType>;
-/** @public */
-interface ListenerMiddlewareInstance<StateType = unknown, DispatchType extends ThunkDispatch<StateType, unknown, Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> {
-    middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument>;
-    startListening: AddListenerOverloads<UnsubscribeListener, StateType, DispatchType, ExtraArgument> & TypedStartListening<StateType, DispatchType, ExtraArgument>;
-    stopListening: RemoveListenerOverloads<StateType, DispatchType> & TypedStopListening<StateType, DispatchType>;
-    /**
-     * Unsubscribes all listeners, cancels running listeners and tasks.
-     */
-    clearListeners: () => void;
-}
-/**
- * API Function Overloads
- */
-/** @public */
-type TakePatternOutputWithoutTimeout<State, Predicate extends AnyListenerPredicate<State>> = Predicate extends MatchFunction<infer ActionType> ? Promise<[ActionType, State, State]> : Promise<[UnknownAction, State, State]>;
-/** @public */
-type TakePatternOutputWithTimeout<State, Predicate extends AnyListenerPredicate<State>> = Predicate extends MatchFunction<infer ActionType> ? Promise<[ActionType, State, State] | null> : Promise<[UnknownAction, State, State] | null>;
-/** @public */
-interface TakePattern<State> {
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate): TakePatternOutputWithoutTimeout<State, Predicate>;
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate, timeout: number): TakePatternOutputWithTimeout<State, Predicate>;
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate, timeout?: number | undefined): TakePatternOutputWithTimeout<State, Predicate>;
-}
-/** @public */
-interface UnsubscribeListenerOptions {
-    cancelActive?: true;
-}
-/** @public */
-type UnsubscribeListener = (unsubscribeOptions?: UnsubscribeListenerOptions) => void;
-/**
- * @public
- * The possible overloads and options for defining a listener. The return type of each function is specified as a generic arg, so the overloads can be reused for multiple different functions
- */
-type AddListenerOverloads<Return, StateType = unknown, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, AdditionalOptions = unknown> = {
-    /** Accepts a "listener predicate" that is also a TS type predicate for the action*/
-    <MiddlewareActionType extends UnknownAction, ListenerPredicateType extends ListenerPredicate<MiddlewareActionType, StateType>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher?: never;
-        predicate: ListenerPredicateType;
-        effect: ListenerEffect<ListenerPredicateGuardedActionType<ListenerPredicateType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts an RTK action creator, like `incrementByAmount` */
-    <ActionCreatorType extends TypedActionCreatorWithMatchFunction<any>>(options: {
-        actionCreator: ActionCreatorType;
-        type?: never;
-        matcher?: never;
-        predicate?: never;
-        effect: ListenerEffect<ReturnType<ActionCreatorType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts a specific action type string */
-    <T extends string>(options: {
-        actionCreator?: never;
-        type: T;
-        matcher?: never;
-        predicate?: never;
-        effect: ListenerEffect<Action<T>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts an RTK matcher function, such as `incrementByAmount.match` */
-    <MatchFunctionType extends MatchFunction<UnknownAction>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher: MatchFunctionType;
-        predicate?: never;
-        effect: ListenerEffect<GuardedType<MatchFunctionType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts a "listener predicate" that just returns a boolean, no type assertion */
-    <ListenerPredicateType extends AnyListenerPredicate<StateType>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher?: never;
-        predicate: ListenerPredicateType;
-        effect: ListenerEffect<UnknownAction, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-};
-/** @public */
-type RemoveListenerOverloads<StateType = unknown, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = AddListenerOverloads<boolean, StateType, DispatchType, ExtraArgument, UnsubscribeListenerOptions>;
-/**
- * A "pre-typed" version of `addListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-type TypedAddListener<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, Payload = ListenerEntry<StateType, DispatchType>, T extends string = 'listenerMiddleware/add'> = BaseActionCreator<Payload, T> & AddListenerOverloads<PayloadAction<Payload, T>, StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of `addListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `addListener` call.
-     *
-     * @returns A pre-typed `addListener` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { addListener } from '@reduxjs/toolkit'
-     *
-     * export const addAppListener = addListener.withTypes<RootState, AppDispatch, ExtraArguments>()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedAddListener<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `removeListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-type TypedRemoveListener<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, Payload = ListenerEntry<StateType, DispatchType>, T extends string = 'listenerMiddleware/remove'> = BaseActionCreator<Payload, T> & AddListenerOverloads<PayloadAction<Payload, T>, StateType, DispatchType, ExtraArgument, UnsubscribeListenerOptions> & {
-    /**
-     * Creates a "pre-typed" version of `removeListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `removeListener` call.
-     *
-     * @returns A pre-typed `removeListener` with the state, dispatch and extra
-     * types already defined.
-     *
-     * @example
-     * ```ts
-     * import { removeListener } from '@reduxjs/toolkit'
-     *
-     * export const removeAppListener = removeListener.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedRemoveListener<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `middleware.startListening`, so the listener args are well-typed
- *
- * @public
- */
-type TypedStartListening<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = AddListenerOverloads<UnsubscribeListener, StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of
-     * {@linkcode ListenerMiddlewareInstance.startListening startListening}
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every
-     * {@linkcode ListenerMiddlewareInstance.startListening startListening} call.
-     *
-     * @returns A pre-typed `startListening` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { createListenerMiddleware } from '@reduxjs/toolkit'
-     *
-     * const listenerMiddleware = createListenerMiddleware()
-     *
-     * export const startAppListening = listenerMiddleware.startListening.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedStartListening<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `middleware.stopListening`, so the listener args are well-typed
- *
- * @public
- */
-type TypedStopListening<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = RemoveListenerOverloads<StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of
-     * {@linkcode ListenerMiddlewareInstance.stopListening stopListening}
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every
-     * {@linkcode ListenerMiddlewareInstance.stopListening stopListening} call.
-     *
-     * @returns A pre-typed `stopListening` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { createListenerMiddleware } from '@reduxjs/toolkit'
-     *
-     * const listenerMiddleware = createListenerMiddleware()
-     *
-     * export const stopAppListening = listenerMiddleware.stopListening.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedStopListening<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * Internal Types
- */
-/** @internal An single listener entry */
-type ListenerEntry<State = unknown, DispatchType extends Dispatch = Dispatch> = {
-    id: string;
-    effect: ListenerEffect<any, State, DispatchType>;
-    unsubscribe: () => void;
-    pending: Set<AbortController>;
-    type?: string;
-    predicate: ListenerPredicate<UnknownAction, State>;
-};
-/**
- * Utility Types
- */
-/** @public */
-type GuardedType<T> = T extends (x: any, ...args: any[]) => x is infer T ? T : never;
-/** @public */
-type ListenerPredicateGuardedActionType<T> = T extends ListenerPredicate<infer ActionType, any> ? ActionType : never;
-
-/**
- * @public
- */
-declare const addListener: TypedAddListener<unknown>;
-/**
- * @public
- */
-declare const clearAllListeners: ActionCreatorWithoutPayload<"listenerMiddleware/removeAll">;
-/**
- * @public
- */
-declare const removeListener: TypedRemoveListener<unknown>;
-/**
- * @public
- */
-declare const createListenerMiddleware: <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions?: CreateListenerMiddlewareOptions<ExtraArgument>) => ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;
-
-type MiddlewareApiConfig = {
-    state?: unknown;
-    dispatch?: Dispatch;
-};
-type GetDispatchType<MiddlewareApiConfig> = MiddlewareApiConfig extends {
-    dispatch: infer DispatchType;
-} ? FallbackIfUnknown<DispatchType, Dispatch> : Dispatch;
-type AddMiddleware<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    (...middlewares: Middleware<any, State, DispatchType>[]): void;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): AddMiddleware<GetState<MiddlewareConfig>, GetDispatchType<MiddlewareConfig>>;
-};
-type WithMiddleware<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = BaseActionCreator<Middleware<any, State, DispatchType>[], 'dynamicMiddleware/add', {
-    instanceId: string;
-}> & {
-    <Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares): PayloadAction<Middlewares, 'dynamicMiddleware/add', {
-        instanceId: string;
-    }>;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): WithMiddleware<GetState<MiddlewareConfig>, GetDispatchType<MiddlewareConfig>>;
-};
-interface DynamicDispatch {
-    <Middlewares extends Middleware<any>[]>(action: PayloadAction<Middlewares, 'dynamicMiddleware/add'>): ExtractDispatchExtensions<Middlewares> & this;
-}
-type DynamicMiddleware<State = unknown, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = Middleware<DynamicDispatch, State, DispatchType>;
-type DynamicMiddlewareInstance<State = unknown, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    middleware: DynamicMiddleware<State, DispatchType>;
-    addMiddleware: AddMiddleware<State, DispatchType>;
-    withMiddleware: WithMiddleware<State, DispatchType>;
-    instanceId: string;
-};
-
-declare const createDynamicMiddleware: <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>() => DynamicMiddlewareInstance<State, DispatchType>;
-
-/**
- * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
- *
- * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
- * during build.
- * @param {number} code
- */
-declare function formatProdErrorMessage(code: number): string;
-
-export { type ActionCreatorInvariantMiddlewareOptions, type ActionCreatorWithNonInferrablePayload, type ActionCreatorWithOptionalPayload, type ActionCreatorWithPayload, type ActionCreatorWithPreparedPayload, type ActionCreatorWithoutPayload, type ActionMatchingAllOf, type ActionMatchingAnyOf, type ActionReducerMapBuilder, type Actions, type AddMiddleware, type AnyListenerPredicate, type AsyncTaskExecutor, type AsyncThunk, type AsyncThunkAction, type AsyncThunkConfig, type AsyncThunkDispatchConfig, type AsyncThunkOptions, type AsyncThunkPayloadCreator, type AsyncThunkPayloadCreatorReturnValue, type AsyncThunkReducers, type AutoBatchOptions, type CaseReducer, type CaseReducerActions, type CaseReducerWithPrepare, type CaseReducers, type CombinedSliceReducer, type Comparer, type ConfigureStoreOptions, type CreateAsyncThunkFunction, type CreateListenerMiddlewareOptions, type CreateSliceOptions, type DevToolsEnhancerOptions, type DynamicDispatch, type DynamicMiddlewareInstance, type EnhancedStore, type EntityAdapter, type EntityId, type EntitySelectors, type EntityState, type EntityStateAdapter, type ForkedTask, type ForkedTaskAPI, type ForkedTaskExecutor, type GetDispatchType as GetDispatch, type GetState, type GetThunkAPI, type IdSelector, type ImmutableStateInvariantMiddlewareOptions, type ListenerEffect, type ListenerEffectAPI, type ListenerErrorHandler, type ListenerMiddleware, type ListenerMiddlewareInstance, type MiddlewareApiConfig, type PayloadAction, type PayloadActionCreator, type PrepareAction, type ReducerCreators, ReducerType, SHOULD_AUTOBATCH, type SafePromise, type SerializableStateInvariantMiddlewareOptions, type SerializedError, type Slice, type SliceCaseReducers, type SliceSelectors, type SyncTaskExecutor, type ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, TaskAbortError, type TaskCancelled, type TaskRejected, type TaskResolved, type TaskResult, Tuple, type TypedAddListener, type TypedRemoveListener, type TypedStartListening, type TypedStopListening, type UnsubscribeListener, type UnsubscribeListenerOptions, type Update, type ValidateSliceCaseReducers, type WithSlice, type WithSlicePreloadedState, addListener, asyncThunkCreator, autoBatchEnhancer, buildCreateSlice, clearAllListeners, combineSlices, configureStore, createAction, createActionCreatorInvariantMiddleware, createAsyncThunk, createDraftSafeSelector, createDraftSafeSelectorCreator, createDynamicMiddleware, createEntityAdapter, createImmutableStateInvariantMiddleware, createListenerMiddleware, createReducer, createSerializableStateInvariantMiddleware, createSlice, findNonSerializableValue, formatProdErrorMessage, isActionCreator, isAllOf, isAnyOf, isAsyncThunkAction, isFSA as isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isRejected, isRejectedWithValue, miniSerializeError, nanoid, prepareAutoBatched, removeListener, unwrapResult };
Index: de_modules/@reduxjs/toolkit/dist/index.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2662 +1,0 @@
-import { ActionCreator, Action, Middleware, StoreEnhancer, UnknownAction, Reducer, ReducersMapObject, Store, Dispatch, StateFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, MiddlewareAPI } from 'redux';
-export * from 'redux';
-import { Draft } from 'immer';
-export { Draft, WritableDraft, produce as createNextState, current, freeze, isDraft, original } from 'immer';
-import * as reselect from 'reselect';
-import { weakMapMemoize, createSelectorCreator, Selector, CreateSelectorFunction } from 'reselect';
-export { OutputSelector, Selector, createSelector, createSelectorCreator, lruMemoize, weakMapMemoize } from 'reselect';
-import { ThunkMiddleware, ThunkDispatch } from 'redux-thunk';
-export { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';
-import { UncheckedIndexedAccess } from './uncheckedindexed.js';
-
-declare const createDraftSafeSelectorCreator: typeof createSelectorCreator;
-/**
- * "Draft-Safe" version of `reselect`'s `createSelector`:
- * If an `immer`-drafted object is passed into the resulting selector's first argument,
- * the selector will act on the current draft value, instead of returning a cached value
- * that might be possibly outdated if the draft has been modified since.
- * @public
- */
-declare const createDraftSafeSelector: reselect.CreateSelectorFunction<typeof weakMapMemoize, typeof weakMapMemoize, any>;
-
-/**
- * @public
- */
-interface DevToolsEnhancerOptions {
-    /**
-     * the instance name to be showed on the monitor page. Default value is `document.title`.
-     * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.
-     */
-    name?: string;
-    /**
-     * action creators functions to be available in the Dispatcher.
-     */
-    actionCreators?: ActionCreator<any>[] | {
-        [key: string]: ActionCreator<any>;
-    };
-    /**
-     * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.
-     * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.
-     * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).
-     *
-     * @default 500 ms.
-     */
-    latency?: number;
-    /**
-     * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.
-     *
-     * @default 50
-     */
-    maxAge?: number;
-    /**
-     * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you
-     * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`
-     * functions.
-     */
-    serialize?: boolean | {
-        /**
-         * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).
-         * - `false` - will handle also circular references.
-         * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.
-         * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.
-         *   For each of them you can indicate if to include (by setting as `true`).
-         *   For `function` key you can also specify a custom function which handles serialization.
-         *   See [`jsan`](https://github.com/kolodny/jsan) for more details.
-         */
-        options?: undefined | boolean | {
-            date?: true;
-            regex?: true;
-            undefined?: true;
-            error?: true;
-            symbol?: true;
-            map?: true;
-            set?: true;
-            function?: true | ((fn: (...args: any[]) => any) => string);
-        };
-        /**
-         * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.
-         * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)
-         * key. So you can deserialize it back while importing or persisting data.
-         * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):
-         */
-        replacer?: (key: string, value: unknown) => any;
-        /**
-         * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)
-         * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)
-         * as an example on how to serialize special data types and get them back.
-         */
-        reviver?: (key: string, value: unknown) => any;
-        /**
-         * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).
-         * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.
-         * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.
-         */
-        immutable?: any;
-        /**
-         * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...
-         */
-        refs?: any;
-    };
-    /**
-     * function which takes `action` object and id number as arguments, and should return `action` object back.
-     */
-    actionSanitizer?: <A extends Action>(action: A, id: number) => A;
-    /**
-     * function which takes `state` object and index as arguments, and should return `state` object back.
-     */
-    stateSanitizer?: <S>(state: S, index: number) => S;
-    /**
-     * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-     * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-     */
-    actionsDenylist?: string | string[];
-    /**
-     * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-     * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-     */
-    actionsAllowlist?: string | string[];
-    /**
-     * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.
-     * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.
-     */
-    predicate?: <S, A extends Action>(state: S, action: A) => boolean;
-    /**
-     * if specified as `false`, it will not record the changes till clicking on `Start recording` button.
-     * Available only for Redux enhancer, for others use `autoPause`.
-     *
-     * @default true
-     */
-    shouldRecordChanges?: boolean;
-    /**
-     * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.
-     * If not specified, will commit when paused. Available only for Redux enhancer.
-     *
-     * @default "@@PAUSED""
-     */
-    pauseActionType?: string;
-    /**
-     * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.
-     * Not available for Redux enhancer (as it already does it but storing the data to be sent).
-     *
-     * @default false
-     */
-    autoPause?: boolean;
-    /**
-     * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.
-     * Available only for Redux enhancer.
-     *
-     * @default false
-     */
-    shouldStartLocked?: boolean;
-    /**
-     * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.
-     *
-     * @default true
-     */
-    shouldHotReload?: boolean;
-    /**
-     * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.
-     *
-     * @default false
-     */
-    shouldCatchErrors?: boolean;
-    /**
-     * If you want to restrict the extension, specify the features you allow.
-     * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.
-     * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.
-     * Otherwise, you'll get/set the data right from the monitor part.
-     */
-    features?: {
-        /**
-         * start/pause recording of dispatched actions
-         */
-        pause?: boolean;
-        /**
-         * lock/unlock dispatching actions and side effects
-         */
-        lock?: boolean;
-        /**
-         * persist states on page reloading
-         */
-        persist?: boolean;
-        /**
-         * export history of actions in a file
-         */
-        export?: boolean | 'custom';
-        /**
-         * import history of actions from a file
-         */
-        import?: boolean | 'custom';
-        /**
-         * jump back and forth (time travelling)
-         */
-        jump?: boolean;
-        /**
-         * skip (cancel) actions
-         */
-        skip?: boolean;
-        /**
-         * drag and drop actions in the history list
-         */
-        reorder?: boolean;
-        /**
-         * dispatch custom actions or action creators
-         */
-        dispatch?: boolean;
-        /**
-         * generate tests for the selected actions
-         */
-        test?: boolean;
-    };
-    /**
-     * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.
-     * Defaults to false.
-     */
-    trace?: boolean | (<A extends Action>(action: A) => string);
-    /**
-     * The maximum number of stack trace entries to record per action. Defaults to 10.
-     */
-    traceLimit?: number;
-}
-
-interface ActionCreatorInvariantMiddlewareOptions {
-    /**
-     * The function to identify whether a value is an action creator.
-     * The default checks for a function with a static type property and match method.
-     */
-    isActionCreator?: (action: unknown) => action is Function & {
-        type?: unknown;
-    };
-}
-declare function createActionCreatorInvariantMiddleware(options?: ActionCreatorInvariantMiddlewareOptions): Middleware;
-
-/**
- * Returns true if the passed value is "plain", i.e. a value that is either
- * directly JSON-serializable (boolean, number, string, array, plain object)
- * or `undefined`.
- *
- * @param val The value to check.
- *
- * @public
- */
-declare function isPlain(val: any): boolean;
-interface NonSerializableValue {
-    keyPath: string;
-    value: unknown;
-}
-type IgnorePaths = readonly (string | RegExp)[];
-/**
- * @public
- */
-declare function findNonSerializableValue(value: unknown, path?: string, isSerializable?: (value: unknown) => boolean, getEntries?: (value: unknown) => [string, any][], ignoredPaths?: IgnorePaths, cache?: WeakSet<object>): NonSerializableValue | false;
-/**
- * Options for `createSerializableStateInvariantMiddleware()`.
- *
- * @public
- */
-interface SerializableStateInvariantMiddlewareOptions {
-    /**
-     * The function to check if a value is considered serializable. This
-     * function is applied recursively to every value contained in the
-     * state. Defaults to `isPlain()`.
-     */
-    isSerializable?: (value: any) => boolean;
-    /**
-     * The function that will be used to retrieve entries from each
-     * value.  If unspecified, `Object.entries` will be used. Defaults
-     * to `undefined`.
-     */
-    getEntries?: (value: any) => [string, any][];
-    /**
-     * An array of action types to ignore when checking for serializability.
-     * Defaults to []
-     */
-    ignoredActions?: string[];
-    /**
-     * An array of dot-separated path strings or regular expressions to ignore
-     * when checking for serializability, Defaults to
-     * ['meta.arg', 'meta.baseQueryMeta']
-     */
-    ignoredActionPaths?: (string | RegExp)[];
-    /**
-     * An array of dot-separated path strings or regular expressions to ignore
-     * when checking for serializability, Defaults to []
-     */
-    ignoredPaths?: (string | RegExp)[];
-    /**
-     * Execution time warning threshold. If the middleware takes longer
-     * than `warnAfter` ms, a warning will be displayed in the console.
-     * Defaults to 32ms.
-     */
-    warnAfter?: number;
-    /**
-     * Opt out of checking state. When set to `true`, other state-related params will be ignored.
-     */
-    ignoreState?: boolean;
-    /**
-     * Opt out of checking actions. When set to `true`, other action-related params will be ignored.
-     */
-    ignoreActions?: boolean;
-    /**
-     * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.
-     * The cache is automatically disabled if no browser support for WeakSet is present.
-     */
-    disableCache?: boolean;
-}
-/**
- * Creates a middleware that, after every state change, checks if the new
- * state is serializable. If a non-serializable value is found within the
- * state, an error is printed to the console.
- *
- * @param options Middleware options.
- *
- * @public
- */
-declare function createSerializableStateInvariantMiddleware(options?: SerializableStateInvariantMiddlewareOptions): Middleware;
-
-/**
- * The default `isImmutable` function.
- *
- * @public
- */
-declare function isImmutableDefault(value: unknown): boolean;
-type IsImmutableFunc = (value: any) => boolean;
-/**
- * Options for `createImmutableStateInvariantMiddleware()`.
- *
- * @public
- */
-interface ImmutableStateInvariantMiddlewareOptions {
-    /**
-      Callback function to check if a value is considered to be immutable.
-      This function is applied recursively to every value contained in the state.
-      The default implementation will return true for primitive types
-      (like numbers, strings, booleans, null and undefined).
-     */
-    isImmutable?: IsImmutableFunc;
-    /**
-      An array of dot-separated path strings that match named nodes from
-      the root state to ignore when checking for immutability.
-      Defaults to undefined
-     */
-    ignoredPaths?: IgnorePaths;
-    /** Print a warning if checks take longer than N ms. Default: 32ms */
-    warnAfter?: number;
-}
-/**
- * Creates a middleware that checks whether any state was mutated in between
- * dispatches or during a dispatch. If any mutations are detected, an error is
- * thrown.
- *
- * @param options Middleware options.
- *
- * @public
- */
-declare function createImmutableStateInvariantMiddleware(options?: ImmutableStateInvariantMiddlewareOptions): Middleware;
-
-declare class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {
-    constructor(length: number);
-    constructor(...items: Items);
-    static get [Symbol.species](): any;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
-    concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
-    prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
-}
-
-/**
- * return True if T is `any`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;
-type CastAny<T, CastTo> = IsAny<T, CastTo, T>;
-/**
- * return True if T is `unknown`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;
-type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;
-/**
- * @internal
- */
-type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;
-/**
- * @internal
- */
-type IfVoid<P, True, False> = [void] extends [P] ? True : False;
-/**
- * @internal
- */
-type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;
-/**
- * returns True if TS version is above 3.5, False if below.
- * uses feature detection to detect TS version >= 3.5
- * * versions below 3.5 will return `{}` for unresolvable interference
- * * versions above will return `unknown`
- *
- * @internal
- */
-type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<(<T>() => T)>, 0, 1>];
-/**
- * @internal
- */
-type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
-type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [
-    infer Head,
-    ...infer Tail
-] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;
-type ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;
-type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;
-type ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;
-type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;
-type ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;
-type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;
-/**
- * Helper type. Passes T out again, but boxes it in a way that it cannot
- * "widen" the type by accident if it is a generic that should be inferred
- * from elsewhere.
- *
- * @internal
- */
-type NoInfer<T> = [T][T extends any ? 0 : never];
-type NonUndefined<T> = T extends undefined ? never : T;
-type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
-type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
-interface TypeGuard<T> {
-    (value: any): value is T;
-}
-interface HasMatchFunction<T> {
-    match: TypeGuard<T>;
-}
-/** @public */
-type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;
-/** @public */
-type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;
-type Id<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;
-type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;
-/**
- * A Promise that will never reject.
- * @see https://github.com/reduxjs/redux-toolkit/issues/4101
- */
-type SafePromise<T> = Promise<T> & {
-    __linterBrands: 'SafePromise';
-};
-
-interface ThunkOptions<E = any> {
-    extraArgument: E;
-}
-interface GetDefaultMiddlewareOptions {
-    thunk?: boolean | ThunkOptions;
-    immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
-    serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
-    actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;
-}
-type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
-    thunk: false;
-} ? never : O extends {
-    thunk: {
-        extraArgument: infer E;
-    };
-} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;
-type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {
-    thunk: true;
-    immutableCheck: true;
-    serializableCheck: true;
-    actionCreatorCheck: true;
-}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;
-
-declare const SHOULD_AUTOBATCH = "RTK_autoBatch";
-declare const prepareAutoBatched: <T>() => (payload: T) => {
-    payload: T;
-    meta: unknown;
-};
-type AutoBatchOptions = {
-    type: 'tick';
-} | {
-    type: 'timer';
-    timeout: number;
-} | {
-    type: 'raf';
-} | {
-    type: 'callback';
-    queueNotification: (notify: () => void) => void;
-};
-/**
- * A Redux store enhancer that watches for "low-priority" actions, and delays
- * notifying subscribers until either the queued callback executes or the
- * next "standard-priority" action is dispatched.
- *
- * This allows dispatching multiple "low-priority" actions in a row with only
- * a single subscriber notification to the UI after the sequence of actions
- * is finished, thus improving UI re-render performance.
- *
- * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.
- * This can be added to `action.meta` manually, or by using the
- * `prepareAutoBatched` helper.
- *
- * By default, it will queue a notification for the end of the event loop tick.
- * However, you can pass several other options to configure the behavior:
- * - `{type: 'tick'}`: queues using `queueMicrotask`
- * - `{type: 'timer', timeout: number}`: queues using `setTimeout`
- * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)
- * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback
- *
- *
- */
-declare const autoBatchEnhancer: (options?: AutoBatchOptions) => StoreEnhancer;
-
-type GetDefaultEnhancersOptions = {
-    autoBatch?: boolean | AutoBatchOptions;
-};
-type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{
-    dispatch: ExtractDispatchExtensions<M>;
-}>]>;
-
-/**
- * Options for `configureStore()`.
- *
- * @public
- */
-interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {
-    /**
-     * A single reducer function that will be used as the root reducer, or an
-     * object of slice reducers that will be passed to `combineReducers()`.
-     */
-    reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;
-    /**
-     * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.
-     * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.
-     *
-     * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`
-     * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage
-     */
-    middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;
-    /**
-     * Whether to enable Redux DevTools integration. Defaults to `true`.
-     *
-     * Additional configuration can be done by passing Redux DevTools options
-     */
-    devTools?: boolean | DevToolsEnhancerOptions;
-    /**
-     * Whether to check for duplicate middleware instances. Defaults to `true`.
-     */
-    duplicateMiddlewareCheck?: boolean;
-    /**
-     * The initial state, same as Redux's createStore.
-     * You may optionally specify it to hydrate the state
-     * from the server in universal apps, or to restore a previously serialized
-     * user session. If you use `combineReducers()` to produce the root reducer
-     * function (either directly or indirectly by passing an object as `reducer`),
-     * this must be an object with the same shape as the reducer map keys.
-     */
-    preloadedState?: P;
-    /**
-     * The store enhancers to apply. See Redux's `createStore()`.
-     * All enhancers will be included before the DevTools Extension enhancer.
-     * If you need to customize the order of enhancers, supply a callback
-     * function that will receive a `getDefaultEnhancers` function that returns a Tuple,
-     * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).
-     * If you only need to add middleware, you can use the `middleware` parameter instead.
-     */
-    enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;
-}
-type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;
-type Enhancers = ReadonlyArray<StoreEnhancer>;
-/**
- * A Redux store returned by `configureStore()`. Supports dispatching
- * side-effectful _thunks_ in addition to plain actions.
- *
- * @public
- */
-type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;
-/**
- * A friendly abstraction over the standard Redux `createStore()` function.
- *
- * @param options The store configuration.
- * @returns A configured Redux store.
- *
- * @public
- */
-declare function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[
-    StoreEnhancer<{
-        dispatch: ExtractDispatchExtensions<M>;
-    }>,
-    StoreEnhancer
-]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E>;
-
-/**
- * An action with a string type and an associated payload. This is the
- * type of action returned by `createAction()` action creators.
- *
- * @template P The type of the action's payload.
- * @template T the type used for the action type.
- * @template M The type of the action's meta (optional)
- * @template E The type of the action's error (optional)
- *
- * @public
- */
-type PayloadAction<P = void, T extends string = string, M = never, E = never> = {
-    payload: P;
-    type: T;
-} & ([M] extends [never] ? {} : {
-    meta: M;
-}) & ([E] extends [never] ? {} : {
-    error: E;
-});
-/**
- * A "prepare" method to be used as the second parameter of `createAction`.
- * Takes any number of arguments and returns a Flux Standard Action without
- * type (will be added later) that *must* contain a payload (might be undefined).
- *
- * @public
- */
-type PrepareAction<P> = ((...args: any[]) => {
-    payload: P;
-}) | ((...args: any[]) => {
-    payload: P;
-    meta: any;
-}) | ((...args: any[]) => {
-    payload: P;
-    error: any;
-}) | ((...args: any[]) => {
-    payload: P;
-    meta: any;
-    error: any;
-});
-/**
- * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.
- *
- * @internal
- */
-type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {
-    error: infer E;
-} ? E : never, ReturnType<PA> extends {
-    meta: infer M;
-} ? M : never> : void;
-/**
- * Basic type for all action creators.
- *
- * @inheritdoc {redux#ActionCreator}
- */
-type BaseActionCreator<P, T extends string, M = never, E = never> = {
-    type: T;
-    match: (action: unknown) => action is PayloadAction<P, T, M, E>;
-};
-/**
- * An action creator that takes multiple arguments that are passed
- * to a `PrepareAction` method to create the final Action.
- * @typeParam Args arguments for the action creator function
- * @typeParam P `payload` type
- * @typeParam T `type` name
- * @typeParam E optional `error` type
- * @typeParam M optional `meta` type
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {
-    /**
-     * Calling this {@link redux#ActionCreator} with `Args` will return
-     * an Action with a payload of type `P` and (depending on the `PrepareAction`
-     * method used) a `meta`- and `error` property of types `M` and `E` respectively.
-     */
-    (...args: Args): PayloadAction<P, T, M, E>;
-}
-/**
- * An action creator of type `T` that takes an optional payload of type `P`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload of `P`.
-     * Calling it without an argument will return a PayloadAction with a payload of `undefined`.
-     */
-    (payload?: P): PayloadAction<P, T>;
-}
-/**
- * An action creator of type `T` that takes no payload.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} will
-     * return a {@link PayloadAction} of type `T` with a payload of `undefined`
-     */
-    (noArgument: void): PayloadAction<undefined, T>;
-}
-/**
- * An action creator of type `T` that requires a payload of type P.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload of `P`
-     */
-    (payload: P): PayloadAction<P, T>;
-}
-/**
- * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {
-    /**
-     * Calling this {@link redux#ActionCreator} with an argument will
-     * return a {@link PayloadAction} of type `T` with a payload
-     * of exactly the type of the argument.
-     */
-    <PT extends unknown>(payload: PT): PayloadAction<PT, T>;
-}
-/**
- * An action creator that produces actions with a `payload` attribute.
- *
- * @typeParam P the `payload` type
- * @typeParam T the `type` of the resulting action
- * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.
- *
- * @public
- */
-type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>, IsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>, IfVoid<P, ActionCreatorWithoutPayload<T>, IfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>, ActionCreatorWithPayload<P, T>>>>>>;
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-declare function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-declare function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;
-/**
- * Returns true if value is an RTK-like action creator, with a static type property and match method.
- */
-declare function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function;
-/**
- * Returns true if value is an action with a string type and valid Flux Standard Action keys.
- */
-declare function isFSA(action: unknown): action is {
-    type: string;
-    payload?: unknown;
-    error?: unknown;
-    meta?: unknown;
-};
-type IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends (...args: any[]) => any ? True : False;
-
-type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {
-    dispatch: D;
-    getState: () => S;
-    extra: E;
-    requestId: string;
-    signal: AbortSignal;
-    abort: (reason?: string) => void;
-    rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;
-    fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;
-};
-/**
- * @public
- */
-interface SerializedError {
-    name?: string;
-    message?: string;
-    stack?: string;
-    code?: string;
-}
-declare class RejectWithValue<Payload, RejectedMeta> {
-    readonly payload: Payload;
-    readonly meta: RejectedMeta;
-    private readonly _type;
-    constructor(payload: Payload, meta: RejectedMeta);
-}
-declare class FulfillWithMeta<Payload, FulfilledMeta> {
-    readonly payload: Payload;
-    readonly meta: FulfilledMeta;
-    private readonly _type;
-    constructor(payload: Payload, meta: FulfilledMeta);
-}
-/**
- * Serializes an error into a plain object.
- * Reworked from https://github.com/sindresorhus/serialize-error
- *
- * @public
- */
-declare const miniSerializeError: (value: any) => SerializedError;
-type AsyncThunkConfig = {
-    state?: unknown;
-    dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;
-    extra?: unknown;
-    rejectValue?: unknown;
-    serializedErrorType?: unknown;
-    pendingMeta?: unknown;
-    fulfilledMeta?: unknown;
-    rejectedMeta?: unknown;
-};
-type GetState<ThunkApiConfig> = ThunkApiConfig extends {
-    state: infer State;
-} ? State : unknown;
-type GetExtra<ThunkApiConfig> = ThunkApiConfig extends {
-    extra: infer Extra;
-} ? Extra : unknown;
-type GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {
-    dispatch: infer Dispatch;
-} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;
-type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;
-type GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {
-    rejectValue: infer RejectValue;
-} ? RejectValue : unknown;
-type GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    pendingMeta: infer PendingMeta;
-} ? PendingMeta : unknown;
-type GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    fulfilledMeta: infer FulfilledMeta;
-} ? FulfilledMeta : unknown;
-type GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {
-    rejectedMeta: infer RejectedMeta;
-} ? RejectedMeta : unknown;
-type GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {
-    serializedErrorType: infer GetSerializedErrorType;
-} ? GetSerializedErrorType : SerializedError;
-type MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);
-/**
- * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;
-/**
- * A type describing the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;
-/**
- * A ThunkAction created by `createAsyncThunk`.
- * Dispatching it returns a Promise for either a
- * fulfilled or rejected action.
- * Also, the returned value contains an `abort()` method
- * that allows the asyncAction to be cancelled from the outside.
- *
- * @public
- */
-type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {
-    abort: (reason?: string) => void;
-    requestId: string;
-    arg: ThunkArg;
-    unwrap: () => Promise<Returned>;
-};
-/**
- * Config provided when calling the async thunk action creator.
- */
-interface AsyncThunkDispatchConfig {
-    /**
-     * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.
-     */
-    signal?: AbortSignal;
-}
-type AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg, (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>, unknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [void] extends [ThunkArg] ? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> : [undefined] extends [ThunkArg] ? WithStrictNullChecks<(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>, (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> : (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;
-/**
- * Options object for `createAsyncThunk`.
- *
- * @public
- */
-type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {
-    /**
-     * A method to control whether the asyncThunk should be executed. Has access to the
-     * `arg`, `api.getState()` and `api.extra` arguments.
-     *
-     * @returns `false` if it should be skipped
-     */
-    condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;
-    /**
-     * If `condition` returns `false`, the asyncThunk will be skipped.
-     * This option allows you to control whether a `rejected` action with `meta.condition == false`
-     * will be dispatched or not.
-     *
-     * @default `false`
-     */
-    dispatchConditionRejection?: boolean;
-    serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;
-    /**
-     * A function to use when generating the `requestId` for the request sequence.
-     *
-     * @default `nanoid`
-     */
-    idGenerator?: (arg: ThunkArg) => string;
-} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     *
-     * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.
-     * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload
-     */
-    getPendingMeta?(base: {
-        arg: ThunkArg;
-        requestId: string;
-    }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;
-}, {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     */
-    getPendingMeta(base: {
-        arg: ThunkArg;
-        requestId: string;
-    }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;
-}>;
-type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    string,
-    ThunkArg,
-    GetPendingMeta<ThunkApiConfig>?
-], undefined, string, never, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'pending';
-} & GetPendingMeta<ThunkApiConfig>>;
-type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    Error | null,
-    string,
-    ThunkArg,
-    GetRejectValue<ThunkApiConfig>?,
-    GetRejectedMeta<ThunkApiConfig>?
-], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'rejected';
-    aborted: boolean;
-    condition: boolean;
-} & (({
-    rejectedWithValue: false;
-} & {
-    [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined;
-}) | ({
-    rejectedWithValue: true;
-} & GetRejectedMeta<ThunkApiConfig>))>;
-type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[
-    Returned,
-    string,
-    ThunkArg,
-    GetFulfilledMeta<ThunkApiConfig>?
-], Returned, string, never, {
-    arg: ThunkArg;
-    requestId: string;
-    requestStatus: 'fulfilled';
-} & GetFulfilledMeta<ThunkApiConfig>>;
-/**
- * A type describing the return value of `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {
-    pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;
-    rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;
-    fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;
-    settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;
-    typePrefix: string;
-};
-type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;
-type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {
-    /**
-     *
-     * @param typePrefix
-     * @param payloadCreator
-     * @param options
-     *
-     * @public
-     */
-    <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;
-    /**
-     *
-     * @param typePrefix
-     * @param payloadCreator
-     * @param options
-     *
-     * @public
-     */
-    <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-};
-type CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {
-    withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-};
-declare const createAsyncThunk: CreateAsyncThunk<AsyncThunkConfig>;
-interface UnwrappableAction {
-    payload: any;
-    meta?: any;
-    error?: any;
-}
-type UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {
-    error: any;
-}>['payload'];
-/**
- * @public
- */
-declare function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R>;
-type WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;
-
-type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {
-    pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;
-    rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;
-    fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;
-    settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;
-};
-type TypedActionCreator<Type extends string> = {
-    (...args: any[]): Action<Type>;
-    type: Type;
-};
-/**
- * A builder for an action <-> reducer map.
- *
- * @public
- */
-interface ActionReducerMapBuilder<State> {
-    /**
-     * Adds a case reducer to handle a single exact action type.
-     * @remarks
-     * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-     * @param reducer - The actual case reducer function.
-     */
-    addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;
-    /**
-     * Adds a case reducer to handle a single exact action type.
-     * @remarks
-     * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-     * @param reducer - The actual case reducer function.
-     */
-    addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;
-    /**
-     * Adds case reducers to handle actions based on a `AsyncThunk` action creator.
-     * @remarks
-     * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-     * @param asyncThunk - The async thunk action creator itself.
-     * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.
-     * @example
-  ```ts no-transpile
-  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'
-  
-  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {
-    const response = await fetch(`https://reqres.in/api/users/${id}`)
-    return (await response.json()).data
-  })
-  
-  const reducer = createReducer(initialState, (builder) => {
-    builder.addAsyncThunk(fetchUserById, {
-      pending: (state, action) => {
-        state.fetchUserById.loading = 'pending'
-      },
-      fulfilled: (state, action) => {
-        state.fetchUserById.data = action.payload
-      },
-      rejected: (state, action) => {
-        state.fetchUserById.error = action.error
-      },
-      settled: (state, action) => {
-        state.fetchUserById.loading = action.meta.requestStatus
-      },
-    })
-  })
-     */
-    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;
-    /**
-     * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.
-     * @remarks
-     * If multiple matcher reducers match, all of them will be executed in the order
-     * they were defined in - even if a case reducer already matched.
-     * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.
-     * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)
-     *   function
-     * @param reducer - The actual case reducer function.
-     *
-     * @example
-  ```ts
-  import {
-    createAction,
-    createReducer,
-    AsyncThunk,
-    UnknownAction,
-  } from "@reduxjs/toolkit";
-  
-  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;
-  
-  type PendingAction = ReturnType<GenericAsyncThunk["pending"]>;
-  type RejectedAction = ReturnType<GenericAsyncThunk["rejected"]>;
-  type FulfilledAction = ReturnType<GenericAsyncThunk["fulfilled"]>;
-  
-  const initialState: Record<string, string> = {};
-  const resetAction = createAction("reset-tracked-loading-state");
-  
-  function isPendingAction(action: UnknownAction): action is PendingAction {
-    return typeof action.type === "string" && action.type.endsWith("/pending");
-  }
-  
-  const reducer = createReducer(initialState, (builder) => {
-    builder
-      .addCase(resetAction, () => initialState)
-      // matcher can be defined outside as a type predicate function
-      .addMatcher(isPendingAction, (state, action) => {
-        state[action.meta.requestId] = "pending";
-      })
-      .addMatcher(
-        // matcher can be defined inline as a type predicate function
-        (action): action is RejectedAction => action.type.endsWith("/rejected"),
-        (state, action) => {
-          state[action.meta.requestId] = "rejected";
-        }
-      )
-      // matcher can just return boolean and the matcher can receive a generic argument
-      .addMatcher<FulfilledAction>(
-        (action) => action.type.endsWith("/fulfilled"),
-        (state, action) => {
-          state[action.meta.requestId] = "fulfilled";
-        }
-      );
-  });
-  ```
-     */
-    addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;
-    /**
-     * Adds a "default case" reducer that is executed if no case reducer and no matcher
-     * reducer was executed for this action.
-     * @param reducer - The fallback "default case" reducer function.
-     *
-     * @example
-  ```ts
-  import { createReducer } from '@reduxjs/toolkit'
-  const initialState = { otherActions: 0 }
-  const reducer = createReducer(initialState, builder => {
-    builder
-      // .addCase(...)
-      // .addMatcher(...)
-      .addDefaultCase((state, action) => {
-        state.otherActions++
-      })
-  })
-  ```
-     */
-    addDefaultCase(reducer: CaseReducer<State, Action>): {};
-}
-
-/**
- * Defines a mapping from action types to corresponding action object shapes.
- *
- * @deprecated This should not be used manually - it is only used for internal
- *             inference purposes and should not have any further value.
- *             It might be removed in the future.
- * @public
- */
-type Actions<T extends keyof any = string> = Record<T, Action>;
-/**
- * A *case reducer* is a reducer function for a specific action type. Case
- * reducers can be composed to full reducers using `createReducer()`.
- *
- * Unlike a normal Redux reducer, a case reducer is never called with an
- * `undefined` state to determine the initial state. Instead, the initial
- * state is explicitly specified as an argument to `createReducer()`.
- *
- * In addition, a case reducer can choose to mutate the passed-in `state`
- * value directly instead of returning a new state. This does not actually
- * cause the store state to be mutated directly; instead, thanks to
- * [immer](https://github.com/mweststrate/immer), the mutations are
- * translated to copy operations that result in a new state.
- *
- * @public
- */
-type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;
-/**
- * A mapping from action types to case reducers for `createReducer()`.
- *
- * @deprecated This should not be used manually - it is only used
- *             for internal inference purposes and using it manually
- *             would lead to type erasure.
- *             It might be removed in the future.
- * @public
- */
-type CaseReducers<S, AS extends Actions> = {
-    [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void;
-};
-type NotFunction<T> = T extends Function ? never : T;
-type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {
-    getInitialState: () => S;
-};
-/**
- * A utility function that allows defining a reducer as a mapping from action
- * type to *case reducer* functions that handle these action types. The
- * reducer's initial state is passed as the first argument.
- *
- * @remarks
- * The body of every case reducer is implicitly wrapped with a call to
- * `produce()` from the [immer](https://github.com/mweststrate/immer) library.
- * This means that rather than returning a new state object, you can also
- * mutate the passed-in state object directly; these mutations will then be
- * automatically and efficiently translated into copies, giving you both
- * convenience and immutability.
- *
- * @overloadSummary
- * This function accepts a callback that receives a `builder` object as its argument.
- * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be
- * called to define what actions this reducer will handle.
- *
- * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
- * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define
- *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
- * @example
-```ts
-import {
-  createAction,
-  createReducer,
-  UnknownAction,
-  PayloadAction,
-} from "@reduxjs/toolkit";
-
-const increment = createAction<number>("increment");
-const decrement = createAction<number>("decrement");
-
-function isActionWithNumberPayload(
-  action: UnknownAction
-): action is PayloadAction<number> {
-  return typeof action.payload === "number";
-}
-
-const reducer = createReducer(
-  {
-    counter: 0,
-    sumOfNumberPayloads: 0,
-    unhandledActions: 0,
-  },
-  (builder) => {
-    builder
-      .addCase(increment, (state, action) => {
-        // action is inferred correctly here
-        state.counter += action.payload;
-      })
-      // You can chain calls, or have separate `builder.addCase()` lines each time
-      .addCase(decrement, (state, action) => {
-        state.counter -= action.payload;
-      })
-      // You can apply a "matcher function" to incoming actions
-      .addMatcher(isActionWithNumberPayload, (state, action) => {})
-      // and provide a default case if no other handlers matched
-      .addDefaultCase((state, action) => {});
-  }
-);
-```
- * @public
- */
-declare function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S>;
-
-type SliceLike<ReducerPath extends string, State, PreloadedState = State> = {
-    reducerPath: ReducerPath;
-    reducer: Reducer<State, any, PreloadedState>;
-};
-type AnySliceLike = SliceLike<string, any>;
-type SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;
-type SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;
-type SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;
-type WithSlice<A extends AnySliceLike> = {
-    [Path in SliceLikeReducerPath<A>]: SliceLikeState<A>;
-};
-type WithSlicePreloadedState<A extends AnySliceLike> = {
-    [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A>;
-};
-type ReducerMap = Record<string, Reducer>;
-type ExistingSliceLike<DeclaredState, PreloadedState> = {
-    [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>>;
-}[keyof DeclaredState];
-type InjectConfig = {
-    /**
-     * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.
-     */
-    overrideExisting?: boolean;
-};
-/**
- * A reducer that allows for slices/reducers to be injected after initialisation.
- */
-interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {
-    /**
-     * Provide a type for slices that will be injected lazily.
-     *
-     * One way to do this would be with interface merging:
-     * ```ts
-     *
-     * export interface LazyLoadedSlices {}
-     *
-     * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-     *
-     * // elsewhere
-     *
-     * declare module './reducer' {
-     *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-     * }
-     *
-     * const withBoolean = rootReducer.inject(booleanSlice);
-     *
-     * // elsewhere again
-     *
-     * declare module './reducer' {
-     *   export interface LazyLoadedSlices {
-     *     customName: CustomState
-     *   }
-     * }
-     *
-     * const withCustom = rootReducer.inject({ reducerPath: "customName", reducer: customSlice.reducer })
-     * ```
-     */
-    withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;
-    /**
-     * Inject a slice.
-     *
-     * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-     *
-     * ```ts
-     * rootReducer.inject(booleanSlice)
-     * rootReducer.inject(baseApi)
-     * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-     * ```
-     *
-     */
-    inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;
-    /**
-     * Inject a slice.
-     *
-     * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-     *
-     * ```ts
-     * rootReducer.inject(booleanSlice)
-     * rootReducer.inject(baseApi)
-     * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-     * ```
-     *
-     */
-    inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;
-    /**
-     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-     *
-     * ```ts
-     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-     * //                                                                ^? boolean | undefined
-     *
-     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-     *   return state.boolean;
-     *   //           ^? boolean
-     * })
-     * ```
-     *
-     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-     *
-     * ```ts
-     *
-     * export interface LazyLoadedSlices {};
-     *
-     * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-     *
-     * export const rootReducer = combineSlices({ inner: innerReducer });
-     *
-     * export type RootState = ReturnType<typeof rootReducer>;
-     *
-     * // elsewhere
-     *
-     * declare module "./reducer.ts" {
-     *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-     * }
-     *
-     * const withBool = innerReducer.inject(booleanSlice);
-     *
-     * const selectBoolean = withBool.selector(
-     *   (state) => state.boolean,
-     *   (rootState: RootState) => state.inner
-     * );
-     * //    now expects to be passed RootState instead of innerReducer state
-     *
-     * ```
-     *
-     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-     *
-     * ```ts
-     * const injectedReducer = rootReducer.inject(booleanSlice);
-     * const selectBoolean = injectedReducer.selector((state) => {
-     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-     *   return state.boolean
-     * })
-     * ```
-     */
-    selector: {
-        /**
-         * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-         *
-         * ```ts
-         * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-         * //                                                                ^? boolean | undefined
-         *
-         * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-         *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-         *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-         *   return state.boolean;
-         *   //           ^? boolean
-         * })
-         * ```
-         *
-         * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-         *
-         * ```ts
-         * const injectedReducer = rootReducer.inject(booleanSlice);
-         * const selectBoolean = injectedReducer.selector((state) => {
-         *   console.log(injectedReducer.selector.original(state).boolean) // undefined
-         *   return state.boolean
-         * })
-         * ```
-         */
-        <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;
-        /**
-         * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-         *
-         * ```ts
-         * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-         * //                                                                ^? boolean | undefined
-         *
-         * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-         *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-         *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-         *   return state.boolean;
-         *   //           ^? boolean
-         * })
-         * ```
-         *
-         * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-         *
-         * ```ts
-         *
-         * interface LazyLoadedSlices {};
-         *
-         * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-         *
-         * const rootReducer = combineSlices({ inner: innerReducer });
-         *
-         * type RootState = ReturnType<typeof rootReducer>;
-         *
-         * // elsewhere
-         *
-         * declare module "./reducer.ts" {
-         *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-         * }
-         *
-         * const withBool = innerReducer.inject(booleanSlice);
-         *
-         * const selectBoolean = withBool.selector(
-         *   (state) => state.boolean,
-         *   (rootState: RootState) => state.inner
-         * );
-         * //    now expects to be passed RootState instead of innerReducer state
-         *
-         * ```
-         *
-         * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-         *
-         * ```ts
-         * const injectedReducer = rootReducer.inject(booleanSlice);
-         * const selectBoolean = injectedReducer.selector((state) => {
-         *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-         *   return state.boolean
-         * })
-         * ```
-         */
-        <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;
-        /**
-         * Returns the unproxied state. Useful for debugging.
-         * @param state state Proxy, that ensures injected reducers have value
-         * @returns original, unproxied state
-         * @throws if value passed is not a state Proxy
-         */
-        original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;
-    };
-}
-type InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;
-type InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;
-declare function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>>;
-
-declare const asyncThunkSymbol: unique symbol;
-declare const asyncThunkCreator: {
-    [asyncThunkSymbol]: typeof createAsyncThunk;
-};
-type InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {
-    reducerPath?: NewReducerPath;
-};
-/**
- * The return value of `createSlice`
- *
- * @public
- */
-interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {
-    /**
-     * The slice name.
-     */
-    name: Name;
-    /**
-     *  The slice reducer path.
-     */
-    reducerPath: ReducerPath;
-    /**
-     * The slice's reducer.
-     */
-    reducer: Reducer<State>;
-    /**
-     * Action creators for the types of actions that are handled by the slice
-     * reducer.
-     */
-    actions: CaseReducerActions<CaseReducers, Name>;
-    /**
-     * The individual case reducer functions that were passed in the `reducers` parameter.
-     * This enables reuse and testing if they were defined inline when calling `createSlice`.
-     */
-    caseReducers: SliceDefinedCaseReducers<CaseReducers>;
-    /**
-     * Provides access to the initial state value given to the slice.
-     * If a lazy state initializer was provided, it will be called and a fresh value returned.
-     */
-    getInitialState: () => State;
-    /**
-     * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-     */
-    getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;
-    /**
-     * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-     */
-    getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;
-    /**
-     * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)
-     *
-     * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.
-     */
-    get selectors(): Id<SliceDefinedSelectors<State, Selectors, {
-        [K in ReducerPath]: State;
-    }>>;
-    /**
-     * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.
-     */
-    injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {
-        inject: (slice: {
-            reducerPath: string;
-            reducer: Reducer;
-        }, config?: InjectConfig) => void;
-    }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;
-    /**
-     * Select the slice state, using the slice's current reducerPath.
-     *
-     * Will throw an error if slice is not found.
-     */
-    selectSlice(state: {
-        [K in ReducerPath]: State;
-    }): State;
-}
-/**
- * A slice after being called with `injectInto(reducer)`.
- *
- * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.
- */
-type InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {
-    /**
-     * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-     */
-    getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;
-    /**
-     * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-     */
-    getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;
-    /**
-     * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)
-     *
-     * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.
-     */
-    get selectors(): Id<SliceDefinedSelectors<State, Selectors, {
-        [K in ReducerPath]?: State | undefined;
-    }>>;
-    /**
-     * Select the slice state, using the slice's current reducerPath.
-     *
-     * Returns initial state if slice is not found.
-     */
-    selectSlice(state: {
-        [K in ReducerPath]?: State | undefined;
-    }): State;
-};
-/**
- * Options for `createSlice()`.
- *
- * @public
- */
-interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {
-    /**
-     * The slice's name. Used to namespace the generated action types.
-     */
-    name: Name;
-    /**
-     * The slice's reducer path. Used when injecting into a combined slice reducer.
-     */
-    reducerPath?: ReducerPath;
-    /**
-     * The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
-     */
-    initialState: State | (() => State);
-    /**
-     * A mapping from action types to action-type-specific *case reducer*
-     * functions. For every action type, a matching action creator will be
-     * generated using `createAction()`.
-     */
-    reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);
-    /**
-     * A callback that receives a *builder* object to define
-     * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
-     *
-     *
-     * @example
-  ```ts
-  import { createAction, createSlice, Action } from '@reduxjs/toolkit'
-  const incrementBy = createAction<number>('incrementBy')
-  const decrement = createAction('decrement')
-  
-  interface RejectedAction extends Action {
-    error: Error
-  }
-  
-  function isRejectedAction(action: Action): action is RejectedAction {
-    return action.type.endsWith('rejected')
-  }
-  
-  createSlice({
-    name: 'counter',
-    initialState: 0,
-    reducers: {},
-    extraReducers: builder => {
-      builder
-        .addCase(incrementBy, (state, action) => {
-          // action is inferred correctly here if using TS
-        })
-        // You can chain calls, or have separate `builder.addCase()` lines each time
-        .addCase(decrement, (state, action) => {})
-        // You can match a range of action types
-        .addMatcher(
-          isRejectedAction,
-          // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard
-          (state, action) => {}
-        )
-        // and provide a default case if no other handlers matched
-        .addDefaultCase((state, action) => {})
-      }
-  })
-  ```
-     */
-    extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;
-    /**
-     * A map of selectors that receive the slice's state and any additional arguments, and return a result.
-     */
-    selectors?: Selectors;
-}
-declare enum ReducerType {
-    reducer = "reducer",
-    reducerWithPrepare = "reducerWithPrepare",
-    asyncThunk = "asyncThunk"
-}
-type ReducerDefinition<T extends ReducerType = ReducerType> = {
-    _reducerDefinitionType: T;
-};
-type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;
-/**
- * A CaseReducer with a `prepare` method.
- *
- * @public
- */
-type CaseReducerWithPrepare<State, Action extends PayloadAction> = {
-    reducer: CaseReducer<State, Action>;
-    prepare: PrepareAction<Action['payload']>;
-};
-type AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {
-    options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;
-};
-type AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {
-    payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;
-};
-/**
- * Providing these as part of the config would cause circular types, so we disallow passing them
- */
-type PreventCircular<ThunkApiConfig> = {
-    [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K];
-};
-interface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {
-    <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;
-    <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;
-    withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;
-}
-interface ReducerCreators<State> {
-    reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;
-    reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;
-    asyncThunk: AsyncThunkCreator<State>;
-    preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {
-        _reducerDefinitionType: ReducerType.reducerWithPrepare;
-        prepare: Prepare;
-        reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;
-    };
-}
-/**
- * The type describing a slice's `reducers` option.
- *
- * @public
- */
-type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;
-/**
- * The type describing a slice's `selectors` option.
- */
-type SliceSelectors<State> = {
-    [K: string]: (sliceState: State, ...args: any[]) => any;
-};
-type SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;
-/**
- * Derives the slice's `actions` property from the `reducers` options
- *
- * @public
- */
-type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = {
-    [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {
-        prepare: any;
-    } ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {
-        reducer: any;
-    } ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never;
-};
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`
- *
- * @internal
- */
-type ActionCreatorForCaseReducerWithPrepare<CR extends {
-    prepare: any;
-}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducer`
- *
- * @internal
- */
-type ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (state: any, action: infer Action) => any ? Action extends {
-    payload: infer P;
-} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;
-/**
- * Extracts the CaseReducers out of a `reducers` object, even if they are
- * tested into a `CaseReducerWithPrepare`.
- *
- * @internal
- */
-type SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {
-    [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {
-        reducer: infer Reducer;
-    } ? Reducer : Definition : never;
-};
-type RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {
-    unwrapped: S;
-} : never;
-/**
- * Extracts the final selector type from the `selectors` object.
- *
- * Removes the `string` index signature from the default value.
- */
-type SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = {
-    [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState>;
-};
-/**
- * Used on a SliceCaseReducers object.
- * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that
- * the `reducer` and the `prepare` function use the same type of `payload`.
- *
- * Might do additional such checks in the future.
- *
- * This type is only ever useful if you want to write your own wrapper around
- * `createSlice`. Please don't use it otherwise!
- *
- * @public
- */
-type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & {
-    [T in keyof ACR]: ACR[T] extends {
-        reducer(s: S, action?: infer A): any;
-    } ? {
-        prepare(...a: never[]): Omit<A, 'type'>;
-    } : {};
-};
-interface BuildCreateSliceConfig {
-    creators?: {
-        asyncThunk?: typeof asyncThunkCreator;
-    };
-}
-declare function buildCreateSlice({ creators }?: BuildCreateSliceConfig): <State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>) => Slice<State, CaseReducers, Name, ReducerPath, Selectors>;
-/**
- * A function that accepts an initial state, an object full of reducer
- * functions, and a "slice name", and automatically generates
- * action creators and action types that correspond to the
- * reducers and state.
- *
- * @public
- */
-declare const createSlice: <State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>) => Slice<State, CaseReducers, Name, ReducerPath, Selectors>;
-
-type AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;
-type GetSelectorsOptions = {
-    createSelector?: AnyCreateSelectorFunction;
-};
-
-/**
- * @public
- */
-type EntityId = number | string;
-/**
- * @public
- */
-type Comparer<T> = (a: T, b: T) => number;
-/**
- * @public
- */
-type IdSelector<T, Id extends EntityId> = (model: T) => Id;
-/**
- * @public
- */
-type Update<T, Id extends EntityId> = {
-    id: Id;
-    changes: Partial<T>;
-};
-/**
- * @public
- */
-interface EntityState<T, Id extends EntityId> {
-    ids: Id[];
-    entities: Record<Id, T>;
-}
-/**
- * @public
- */
-interface EntityAdapterOptions<T, Id extends EntityId> {
-    selectId?: IdSelector<T, Id>;
-    sortComparer?: false | Comparer<T>;
-}
-type PreventAny<S, T, Id extends EntityId> = CastAny<S, EntityState<T, Id>>;
-type DraftableEntityState<T, Id extends EntityId> = EntityState<T, Id> | Draft<EntityState<T, Id>>;
-/**
- * @public
- */
-interface EntityStateAdapter<T, Id extends EntityId> {
-    addOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    addOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, action: PayloadAction<T>): S;
-    addMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    addMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    setOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    setOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, action: PayloadAction<T>): S;
-    setMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    setMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    setAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    setAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-    removeOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, key: Id): S;
-    removeOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, key: PayloadAction<Id>): S;
-    removeMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, keys: readonly Id[]): S;
-    removeMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, keys: PayloadAction<readonly Id[]>): S;
-    removeAll<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S;
-    updateOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, update: Update<T, Id>): S;
-    updateOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, update: PayloadAction<Update<T, Id>>): S;
-    updateMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, updates: ReadonlyArray<Update<T, Id>>): S;
-    updateMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, updates: PayloadAction<ReadonlyArray<Update<T, Id>>>): S;
-    upsertOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: T): S;
-    upsertOne<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entity: PayloadAction<T>): S;
-    upsertMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: readonly T[] | Record<Id, T>): S;
-    upsertMany<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>, entities: PayloadAction<readonly T[] | Record<Id, T>>): S;
-}
-/**
- * @public
- */
-interface EntitySelectors<T, V, IdType extends EntityId> {
-    selectIds: (state: V) => IdType[];
-    selectEntities: (state: V) => Record<IdType, T>;
-    selectAll: (state: V) => T[];
-    selectTotal: (state: V) => number;
-    selectById: (state: V, id: IdType) => Id<UncheckedIndexedAccess<T>>;
-}
-/**
- * @public
- */
-interface EntityStateFactory<T, Id extends EntityId> {
-    getInitialState(state?: undefined, entities?: Record<Id, T> | readonly T[]): EntityState<T, Id>;
-    getInitialState<S extends object>(state: S, entities?: Record<Id, T> | readonly T[]): EntityState<T, Id> & S;
-}
-/**
- * @public
- */
-interface EntityAdapter<T, Id extends EntityId> extends EntityStateAdapter<T, Id>, EntityStateFactory<T, Id>, Required<EntityAdapterOptions<T, Id>> {
-    getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;
-    getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;
-}
-
-declare function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;
-declare function createEntityAdapter<T extends {
-    id: EntityId;
-}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;
-
-/** @public */
-type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;
-/** @public */
-type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches any one of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-declare function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers): (action: any) => action is ActionMatchingAnyOf<Matchers>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches all of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-declare function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers): (action: any) => action is ActionMatchingAllOf<Matchers>;
-type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;
-type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is pending.
- *
- * @public
- */
-declare function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is pending.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a pending thunk action
- * @public
- */
-declare function isPending(action: any): action is UnknownAsyncThunkPendingAction;
-type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;
-type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected.
- *
- * @public
- */
-declare function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a rejected thunk action
- * @public
- */
-declare function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;
-type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {
-    rejectValue: infer RejectedValue;
-}> ? {
-    payload: RejectedValue;
-} : unknown);
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected with value.
- *
- * @public
- */
-declare function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected with value.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a rejected thunk action with value
- * @public
- */
-declare function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;
-type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;
-type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is fulfilled.
- *
- * @public
- */
-declare function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is fulfilled.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a fulfilled thunk action
- * @public
- */
-declare function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;
-type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;
-type AnyAsyncThunk = {
-    pending: {
-        match: (action: any) => action is any;
-    };
-    fulfilled: {
-        match: (action: any) => action is any;
-    };
-    rejected: {
-        match: (action: any) => action is any;
-    };
-};
-type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator.
- *
- * @public
- */
-declare function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-declare function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;
-/**
- * Tests if `action` is a thunk action
- * @public
- */
-declare function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;
-
-/**
- *
- * @public
- */
-declare let nanoid: (size?: number) => string;
-
-declare class TaskAbortError implements SerializedError {
-    code: string | undefined;
-    name: string;
-    message: string;
-    constructor(code: string | undefined);
-}
-
-/**
- * Types copied from RTK
- */
-/** @internal */
-type TypedActionCreatorWithMatchFunction<Type extends string> = TypedActionCreator<Type> & {
-    match: MatchFunction<any>;
-};
-/** @internal */
-type AnyListenerPredicate<State> = (action: UnknownAction, currentState: State, originalState: State) => boolean;
-/** @public */
-type ListenerPredicate<ActionType extends Action, State> = (action: UnknownAction, currentState: State, originalState: State) => action is ActionType;
-/** @public */
-interface ConditionFunction<State> {
-    (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>;
-    (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>;
-    (predicate: () => boolean, timeout?: number): Promise<boolean>;
-}
-/** @internal */
-type MatchFunction<T> = (v: any) => v is T;
-/** @public */
-interface ForkedTaskAPI {
-    /**
-     * Returns a promise that resolves when `waitFor` resolves or
-     * rejects if the task or the parent listener has been cancelled or is completed.
-     */
-    pause<W>(waitFor: Promise<W>): Promise<W>;
-    /**
-     * Returns a promise that resolves after `timeoutMs` or
-     * rejects if the task or the parent listener has been cancelled or is completed.
-     * @param timeoutMs
-     */
-    delay(timeoutMs: number): Promise<void>;
-    /**
-     * An abort signal whose `aborted` property is set to `true`
-     * if the task execution is either aborted or completed.
-     * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-     */
-    signal: AbortSignal;
-}
-/** @public */
-interface AsyncTaskExecutor<T> {
-    (forkApi: ForkedTaskAPI): Promise<T>;
-}
-/** @public */
-interface SyncTaskExecutor<T> {
-    (forkApi: ForkedTaskAPI): T;
-}
-/** @public */
-type ForkedTaskExecutor<T> = AsyncTaskExecutor<T> | SyncTaskExecutor<T>;
-/** @public */
-type TaskResolved<T> = {
-    readonly status: 'ok';
-    readonly value: T;
-};
-/** @public */
-type TaskRejected = {
-    readonly status: 'rejected';
-    readonly error: unknown;
-};
-/** @public */
-type TaskCancelled = {
-    readonly status: 'cancelled';
-    readonly error: TaskAbortError;
-};
-/** @public */
-type TaskResult<Value> = TaskResolved<Value> | TaskRejected | TaskCancelled;
-/** @public */
-interface ForkedTask<T> {
-    /**
-     * A promise that resolves when the task is either completed or cancelled or rejects
-     * if parent listener execution is cancelled or completed.
-     *
-     * ### Example
-     * ```ts
-     * const result = await fork(async (forkApi) => Promise.resolve(4)).result
-     *
-     * if(result.status === 'ok') {
-     *   console.log(result.value) // logs 4
-     * }}
-     * ```
-     */
-    result: Promise<TaskResult<T>>;
-    /**
-     * Cancel task if it is in progress or not yet started,
-     * it is noop otherwise.
-     */
-    cancel(): void;
-}
-/** @public */
-interface ForkOptions {
-    /**
-     * If true, causes the parent task to not be marked as complete until
-     * all autoJoined forks have completed or failed.
-     */
-    autoJoin: boolean;
-}
-/** @public */
-interface ListenerEffectAPI<State, DispatchType extends Dispatch, ExtraArgument = unknown> extends MiddlewareAPI<DispatchType, State> {
-    /**
-     * Returns the store state as it existed when the action was originally dispatched, _before_ the reducers ran.
-     *
-     * ### Synchronous invocation
-     *
-     * This function can **only** be invoked **synchronously**, it throws error otherwise.
-     *
-     * @example
-     *
-     * ```ts
-     * middleware.startListening({
-     *  predicate: () => true,
-     *  async effect(_, { getOriginalState }) {
-     *    getOriginalState(); // sync: OK!
-     *
-     *    setTimeout(getOriginalState, 0); // async: throws Error
-     *
-     *    await Promise().resolve();
-     *
-     *    getOriginalState() // async: throws Error
-     *  }
-     * })
-     * ```
-     */
-    getOriginalState: () => State;
-    /**
-     * Removes the listener entry from the middleware and prevent future instances of the listener from running.
-     *
-     * It does **not** cancel any active instances.
-     */
-    unsubscribe(): void;
-    /**
-     * It will subscribe a listener if it was previously removed, noop otherwise.
-     */
-    subscribe(): void;
-    /**
-     * Returns a promise that resolves when the input predicate returns `true` or
-     * rejects if the listener has been cancelled or is completed.
-     *
-     * The return value is `true` if the predicate succeeds or `false` if a timeout is provided and expires first.
-     *
-     * ### Example
-     *
-     * ```ts
-     * const updateBy = createAction<number>('counter/updateBy');
-     *
-     * middleware.startListening({
-     *  actionCreator: updateBy,
-     *  async effect(_, { condition }) {
-     *    // wait at most 3s for `updateBy` actions.
-     *    if(await condition(updateBy.match, 3_000)) {
-     *      // `updateBy` has been dispatched twice in less than 3s.
-     *    }
-     *  }
-     * })
-     * ```
-     */
-    condition: ConditionFunction<State>;
-    /**
-     * Returns a promise that resolves when the input predicate returns `true` or
-     * rejects if the listener has been cancelled or is completed.
-     *
-     * The return value is the `[action, currentState, previousState]` combination that the predicate saw as arguments.
-     *
-     * The promise resolves to null if a timeout is provided and expires first,
-     *
-     * ### Example
-     *
-     * ```ts
-     * const updateBy = createAction<number>('counter/updateBy');
-     *
-     * middleware.startListening({
-     *  actionCreator: updateBy,
-     *  async effect(_, { take }) {
-     *    const [{ payload }] =  await take(updateBy.match);
-     *    console.log(payload); // logs 5;
-     *  }
-     * })
-     *
-     * store.dispatch(updateBy(5));
-     * ```
-     */
-    take: TakePattern<State>;
-    /**
-     * Cancels all other running instances of this same listener except for the one that made this call.
-     */
-    cancelActiveListeners: () => void;
-    /**
-     * Cancels the instance of this listener that made this call.
-     */
-    cancel: () => void;
-    /**
-     * Throws a `TaskAbortError` if this listener has been cancelled
-     */
-    throwIfCancelled: () => void;
-    /**
-     * An abort signal whose `aborted` property is set to `true`
-     * if the listener execution is either aborted or completed.
-     * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-     */
-    signal: AbortSignal;
-    /**
-     * Returns a promise that resolves after `timeoutMs` or
-     * rejects if the listener has been cancelled or is completed.
-     */
-    delay(timeoutMs: number): Promise<void>;
-    /**
-     * Queues in the next microtask the execution of a task.
-     * @param executor
-     * @param options
-     */
-    fork<T>(executor: ForkedTaskExecutor<T>, options?: ForkOptions): ForkedTask<T>;
-    /**
-     * Returns a promise that resolves when `waitFor` resolves or
-     * rejects if the listener has been cancelled or is completed.
-     * @param promise
-     */
-    pause<M>(promise: Promise<M>): Promise<M>;
-    extra: ExtraArgument;
-}
-/** @public */
-type ListenerEffect<ActionType extends Action, State, DispatchType extends Dispatch, ExtraArgument = unknown> = (action: ActionType, api: ListenerEffectAPI<State, DispatchType, ExtraArgument>) => void | Promise<void>;
-/**
- * @public
- * Additional infos regarding the error raised.
- */
-interface ListenerErrorInfo {
-    /**
-     * Which function has generated the exception.
-     */
-    raisedBy: 'effect' | 'predicate';
-}
-/**
- * @public
- * Gets notified with synchronous and asynchronous errors raised by `listeners` or `predicates`.
- * @param error The thrown error.
- * @param errorInfo Additional information regarding the thrown error.
- */
-interface ListenerErrorHandler {
-    (error: unknown, errorInfo: ListenerErrorInfo): void;
-}
-/** @public */
-interface CreateListenerMiddlewareOptions<ExtraArgument = unknown> {
-    extra?: ExtraArgument;
-    /**
-     * Receives synchronous errors that are raised by `listener` and `listenerOption.predicate`.
-     */
-    onError?: ListenerErrorHandler;
-}
-/** @public */
-type ListenerMiddleware<State = unknown, DispatchType extends ThunkDispatch<State, unknown, Action> = ThunkDispatch<State, unknown, UnknownAction>, ExtraArgument = unknown> = Middleware<{
-    (action: Action<'listenerMiddleware/add'>): UnsubscribeListener;
-}, State, DispatchType>;
-/** @public */
-interface ListenerMiddlewareInstance<StateType = unknown, DispatchType extends ThunkDispatch<StateType, unknown, Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> {
-    middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument>;
-    startListening: AddListenerOverloads<UnsubscribeListener, StateType, DispatchType, ExtraArgument> & TypedStartListening<StateType, DispatchType, ExtraArgument>;
-    stopListening: RemoveListenerOverloads<StateType, DispatchType> & TypedStopListening<StateType, DispatchType>;
-    /**
-     * Unsubscribes all listeners, cancels running listeners and tasks.
-     */
-    clearListeners: () => void;
-}
-/**
- * API Function Overloads
- */
-/** @public */
-type TakePatternOutputWithoutTimeout<State, Predicate extends AnyListenerPredicate<State>> = Predicate extends MatchFunction<infer ActionType> ? Promise<[ActionType, State, State]> : Promise<[UnknownAction, State, State]>;
-/** @public */
-type TakePatternOutputWithTimeout<State, Predicate extends AnyListenerPredicate<State>> = Predicate extends MatchFunction<infer ActionType> ? Promise<[ActionType, State, State] | null> : Promise<[UnknownAction, State, State] | null>;
-/** @public */
-interface TakePattern<State> {
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate): TakePatternOutputWithoutTimeout<State, Predicate>;
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate, timeout: number): TakePatternOutputWithTimeout<State, Predicate>;
-    <Predicate extends AnyListenerPredicate<State>>(predicate: Predicate, timeout?: number | undefined): TakePatternOutputWithTimeout<State, Predicate>;
-}
-/** @public */
-interface UnsubscribeListenerOptions {
-    cancelActive?: true;
-}
-/** @public */
-type UnsubscribeListener = (unsubscribeOptions?: UnsubscribeListenerOptions) => void;
-/**
- * @public
- * The possible overloads and options for defining a listener. The return type of each function is specified as a generic arg, so the overloads can be reused for multiple different functions
- */
-type AddListenerOverloads<Return, StateType = unknown, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, AdditionalOptions = unknown> = {
-    /** Accepts a "listener predicate" that is also a TS type predicate for the action*/
-    <MiddlewareActionType extends UnknownAction, ListenerPredicateType extends ListenerPredicate<MiddlewareActionType, StateType>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher?: never;
-        predicate: ListenerPredicateType;
-        effect: ListenerEffect<ListenerPredicateGuardedActionType<ListenerPredicateType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts an RTK action creator, like `incrementByAmount` */
-    <ActionCreatorType extends TypedActionCreatorWithMatchFunction<any>>(options: {
-        actionCreator: ActionCreatorType;
-        type?: never;
-        matcher?: never;
-        predicate?: never;
-        effect: ListenerEffect<ReturnType<ActionCreatorType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts a specific action type string */
-    <T extends string>(options: {
-        actionCreator?: never;
-        type: T;
-        matcher?: never;
-        predicate?: never;
-        effect: ListenerEffect<Action<T>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts an RTK matcher function, such as `incrementByAmount.match` */
-    <MatchFunctionType extends MatchFunction<UnknownAction>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher: MatchFunctionType;
-        predicate?: never;
-        effect: ListenerEffect<GuardedType<MatchFunctionType>, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-    /** Accepts a "listener predicate" that just returns a boolean, no type assertion */
-    <ListenerPredicateType extends AnyListenerPredicate<StateType>>(options: {
-        actionCreator?: never;
-        type?: never;
-        matcher?: never;
-        predicate: ListenerPredicateType;
-        effect: ListenerEffect<UnknownAction, StateType, DispatchType, ExtraArgument>;
-    } & AdditionalOptions): Return;
-};
-/** @public */
-type RemoveListenerOverloads<StateType = unknown, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = AddListenerOverloads<boolean, StateType, DispatchType, ExtraArgument, UnsubscribeListenerOptions>;
-/**
- * A "pre-typed" version of `addListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-type TypedAddListener<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, Payload = ListenerEntry<StateType, DispatchType>, T extends string = 'listenerMiddleware/add'> = BaseActionCreator<Payload, T> & AddListenerOverloads<PayloadAction<Payload, T>, StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of `addListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `addListener` call.
-     *
-     * @returns A pre-typed `addListener` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { addListener } from '@reduxjs/toolkit'
-     *
-     * export const addAppListener = addListener.withTypes<RootState, AppDispatch, ExtraArguments>()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedAddListener<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `removeListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-type TypedRemoveListener<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown, Payload = ListenerEntry<StateType, DispatchType>, T extends string = 'listenerMiddleware/remove'> = BaseActionCreator<Payload, T> & AddListenerOverloads<PayloadAction<Payload, T>, StateType, DispatchType, ExtraArgument, UnsubscribeListenerOptions> & {
-    /**
-     * Creates a "pre-typed" version of `removeListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `removeListener` call.
-     *
-     * @returns A pre-typed `removeListener` with the state, dispatch and extra
-     * types already defined.
-     *
-     * @example
-     * ```ts
-     * import { removeListener } from '@reduxjs/toolkit'
-     *
-     * export const removeAppListener = removeListener.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedRemoveListener<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `middleware.startListening`, so the listener args are well-typed
- *
- * @public
- */
-type TypedStartListening<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = AddListenerOverloads<UnsubscribeListener, StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of
-     * {@linkcode ListenerMiddlewareInstance.startListening startListening}
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every
-     * {@linkcode ListenerMiddlewareInstance.startListening startListening} call.
-     *
-     * @returns A pre-typed `startListening` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { createListenerMiddleware } from '@reduxjs/toolkit'
-     *
-     * const listenerMiddleware = createListenerMiddleware()
-     *
-     * export const startAppListening = listenerMiddleware.startListening.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedStartListening<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * A "pre-typed" version of `middleware.stopListening`, so the listener args are well-typed
- *
- * @public
- */
-type TypedStopListening<StateType, DispatchType extends Dispatch = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown> = RemoveListenerOverloads<StateType, DispatchType, ExtraArgument> & {
-    /**
-     * Creates a "pre-typed" version of
-     * {@linkcode ListenerMiddlewareInstance.stopListening stopListening}
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every
-     * {@linkcode ListenerMiddlewareInstance.stopListening stopListening} call.
-     *
-     * @returns A pre-typed `stopListening` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { createListenerMiddleware } from '@reduxjs/toolkit'
-     *
-     * const listenerMiddleware = createListenerMiddleware()
-     *
-     * export const stopAppListening = listenerMiddleware.stopListening.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <OverrideStateType extends StateType, OverrideDispatchType extends Dispatch = ThunkDispatch<OverrideStateType, unknown, UnknownAction>, OverrideExtraArgument = unknown>() => TypedStopListening<OverrideStateType, OverrideDispatchType, OverrideExtraArgument>;
-};
-/**
- * Internal Types
- */
-/** @internal An single listener entry */
-type ListenerEntry<State = unknown, DispatchType extends Dispatch = Dispatch> = {
-    id: string;
-    effect: ListenerEffect<any, State, DispatchType>;
-    unsubscribe: () => void;
-    pending: Set<AbortController>;
-    type?: string;
-    predicate: ListenerPredicate<UnknownAction, State>;
-};
-/**
- * Utility Types
- */
-/** @public */
-type GuardedType<T> = T extends (x: any, ...args: any[]) => x is infer T ? T : never;
-/** @public */
-type ListenerPredicateGuardedActionType<T> = T extends ListenerPredicate<infer ActionType, any> ? ActionType : never;
-
-/**
- * @public
- */
-declare const addListener: TypedAddListener<unknown>;
-/**
- * @public
- */
-declare const clearAllListeners: ActionCreatorWithoutPayload<"listenerMiddleware/removeAll">;
-/**
- * @public
- */
-declare const removeListener: TypedRemoveListener<unknown>;
-/**
- * @public
- */
-declare const createListenerMiddleware: <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions?: CreateListenerMiddlewareOptions<ExtraArgument>) => ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;
-
-type MiddlewareApiConfig = {
-    state?: unknown;
-    dispatch?: Dispatch;
-};
-type GetDispatchType<MiddlewareApiConfig> = MiddlewareApiConfig extends {
-    dispatch: infer DispatchType;
-} ? FallbackIfUnknown<DispatchType, Dispatch> : Dispatch;
-type AddMiddleware<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    (...middlewares: Middleware<any, State, DispatchType>[]): void;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): AddMiddleware<GetState<MiddlewareConfig>, GetDispatchType<MiddlewareConfig>>;
-};
-type WithMiddleware<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = BaseActionCreator<Middleware<any, State, DispatchType>[], 'dynamicMiddleware/add', {
-    instanceId: string;
-}> & {
-    <Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares): PayloadAction<Middlewares, 'dynamicMiddleware/add', {
-        instanceId: string;
-    }>;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): WithMiddleware<GetState<MiddlewareConfig>, GetDispatchType<MiddlewareConfig>>;
-};
-interface DynamicDispatch {
-    <Middlewares extends Middleware<any>[]>(action: PayloadAction<Middlewares, 'dynamicMiddleware/add'>): ExtractDispatchExtensions<Middlewares> & this;
-}
-type DynamicMiddleware<State = unknown, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = Middleware<DynamicDispatch, State, DispatchType>;
-type DynamicMiddlewareInstance<State = unknown, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    middleware: DynamicMiddleware<State, DispatchType>;
-    addMiddleware: AddMiddleware<State, DispatchType>;
-    withMiddleware: WithMiddleware<State, DispatchType>;
-    instanceId: string;
-};
-
-declare const createDynamicMiddleware: <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>() => DynamicMiddlewareInstance<State, DispatchType>;
-
-/**
- * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
- *
- * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
- * during build.
- * @param {number} code
- */
-declare function formatProdErrorMessage(code: number): string;
-
-export { type ActionCreatorInvariantMiddlewareOptions, type ActionCreatorWithNonInferrablePayload, type ActionCreatorWithOptionalPayload, type ActionCreatorWithPayload, type ActionCreatorWithPreparedPayload, type ActionCreatorWithoutPayload, type ActionMatchingAllOf, type ActionMatchingAnyOf, type ActionReducerMapBuilder, type Actions, type AddMiddleware, type AnyListenerPredicate, type AsyncTaskExecutor, type AsyncThunk, type AsyncThunkAction, type AsyncThunkConfig, type AsyncThunkDispatchConfig, type AsyncThunkOptions, type AsyncThunkPayloadCreator, type AsyncThunkPayloadCreatorReturnValue, type AsyncThunkReducers, type AutoBatchOptions, type CaseReducer, type CaseReducerActions, type CaseReducerWithPrepare, type CaseReducers, type CombinedSliceReducer, type Comparer, type ConfigureStoreOptions, type CreateAsyncThunkFunction, type CreateListenerMiddlewareOptions, type CreateSliceOptions, type DevToolsEnhancerOptions, type DynamicDispatch, type DynamicMiddlewareInstance, type EnhancedStore, type EntityAdapter, type EntityId, type EntitySelectors, type EntityState, type EntityStateAdapter, type ForkedTask, type ForkedTaskAPI, type ForkedTaskExecutor, type GetDispatchType as GetDispatch, type GetState, type GetThunkAPI, type IdSelector, type ImmutableStateInvariantMiddlewareOptions, type ListenerEffect, type ListenerEffectAPI, type ListenerErrorHandler, type ListenerMiddleware, type ListenerMiddlewareInstance, type MiddlewareApiConfig, type PayloadAction, type PayloadActionCreator, type PrepareAction, type ReducerCreators, ReducerType, SHOULD_AUTOBATCH, type SafePromise, type SerializableStateInvariantMiddlewareOptions, type SerializedError, type Slice, type SliceCaseReducers, type SliceSelectors, type SyncTaskExecutor, type ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, TaskAbortError, type TaskCancelled, type TaskRejected, type TaskResolved, type TaskResult, Tuple, type TypedAddListener, type TypedRemoveListener, type TypedStartListening, type TypedStopListening, type UnsubscribeListener, type UnsubscribeListenerOptions, type Update, type ValidateSliceCaseReducers, type WithSlice, type WithSlicePreloadedState, addListener, asyncThunkCreator, autoBatchEnhancer, buildCreateSlice, clearAllListeners, combineSlices, configureStore, createAction, createActionCreatorInvariantMiddleware, createAsyncThunk, createDraftSafeSelector, createDraftSafeSelectorCreator, createDynamicMiddleware, createEntityAdapter, createImmutableStateInvariantMiddleware, createListenerMiddleware, createReducer, createSerializableStateInvariantMiddleware, createSlice, findNonSerializableValue, formatProdErrorMessage, isActionCreator, isAllOf, isAnyOf, isAsyncThunkAction, isFSA as isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isRejected, isRejectedWithValue, miniSerializeError, nanoid, prepareAutoBatched, removeListener, unwrapResult };
Index: de_modules/@reduxjs/toolkit/dist/query/cjs/index.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-'use strict'
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./rtk-query.production.min.cjs')
-} else {
-  module.exports = require('./rtk-query.development.cjs')
-}
Index: de_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.development.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.development.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3087 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/query/index.ts
-var query_exports = {};
-__export(query_exports, {
-  NamedSchemaError: () => NamedSchemaError,
-  QueryStatus: () => QueryStatus,
-  _NEVER: () => _NEVER,
-  buildCreateApi: () => buildCreateApi,
-  copyWithStructuralSharing: () => copyWithStructuralSharing,
-  coreModule: () => coreModule,
-  coreModuleName: () => coreModuleName,
-  createApi: () => createApi,
-  defaultSerializeQueryArgs: () => defaultSerializeQueryArgs,
-  fakeBaseQuery: () => fakeBaseQuery,
-  fetchBaseQuery: () => fetchBaseQuery,
-  retry: () => retry,
-  setupListeners: () => setupListeners,
-  skipToken: () => skipToken
-});
-module.exports = __toCommonJS(query_exports);
-
-// src/query/core/apiState.ts
-var QueryStatus = /* @__PURE__ */ ((QueryStatus7) => {
-  QueryStatus7["uninitialized"] = "uninitialized";
-  QueryStatus7["pending"] = "pending";
-  QueryStatus7["fulfilled"] = "fulfilled";
-  QueryStatus7["rejected"] = "rejected";
-  return QueryStatus7;
-})(QueryStatus || {});
-var STATUS_UNINITIALIZED = "uninitialized" /* uninitialized */;
-var STATUS_PENDING = "pending" /* pending */;
-var STATUS_FULFILLED = "fulfilled" /* fulfilled */;
-var STATUS_REJECTED = "rejected" /* rejected */;
-function getRequestStatusFlags(status) {
-  return {
-    status,
-    isUninitialized: status === STATUS_UNINITIALIZED,
-    isLoading: status === STATUS_PENDING,
-    isSuccess: status === STATUS_FULFILLED,
-    isError: status === STATUS_REJECTED
-  };
-}
-
-// src/query/core/rtkImports.ts
-var import_toolkit = require("@reduxjs/toolkit");
-
-// src/query/utils/copyWithStructuralSharing.ts
-var isPlainObject2 = import_toolkit.isPlainObject;
-function copyWithStructuralSharing(oldObj, newObj) {
-  if (oldObj === newObj || !(isPlainObject2(oldObj) && isPlainObject2(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {
-    return newObj;
-  }
-  const newKeys = Object.keys(newObj);
-  const oldKeys = Object.keys(oldObj);
-  let isSameObject = newKeys.length === oldKeys.length;
-  const mergeObj = Array.isArray(newObj) ? [] : {};
-  for (const key of newKeys) {
-    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);
-    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];
-  }
-  return isSameObject ? oldObj : mergeObj;
-}
-
-// src/query/utils/filterMap.ts
-function filterMap(array, predicate, mapper) {
-  return array.reduce((acc, item, i) => {
-    if (predicate(item, i)) {
-      acc.push(mapper(item, i));
-    }
-    return acc;
-  }, []).flat();
-}
-
-// src/query/utils/isAbsoluteUrl.ts
-function isAbsoluteUrl(url) {
-  return new RegExp(`(^|:)//`).test(url);
-}
-
-// src/query/utils/isDocumentVisible.ts
-function isDocumentVisible() {
-  if (typeof document === "undefined") {
-    return true;
-  }
-  return document.visibilityState !== "hidden";
-}
-
-// src/query/utils/isNotNullish.ts
-function isNotNullish(v) {
-  return v != null;
-}
-function filterNullishValues(map) {
-  return [...map?.values() ?? []].filter(isNotNullish);
-}
-
-// src/query/utils/isOnline.ts
-function isOnline() {
-  return typeof navigator === "undefined" ? true : navigator.onLine === void 0 ? true : navigator.onLine;
-}
-
-// src/query/utils/joinUrls.ts
-var withoutTrailingSlash = (url) => url.replace(/\/$/, "");
-var withoutLeadingSlash = (url) => url.replace(/^\//, "");
-function joinUrls(base, url) {
-  if (!base) {
-    return url;
-  }
-  if (!url) {
-    return base;
-  }
-  if (isAbsoluteUrl(url)) {
-    return url;
-  }
-  const delimiter = base.endsWith("/") || !url.startsWith("?") ? "/" : "";
-  base = withoutTrailingSlash(base);
-  url = withoutLeadingSlash(url);
-  return `${base}${delimiter}${url}`;
-}
-
-// src/query/utils/getOrInsert.ts
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-var createNewMap = () => /* @__PURE__ */ new Map();
-
-// src/query/utils/signals.ts
-var timeoutSignal = (milliseconds) => {
-  const abortController = new AbortController();
-  setTimeout(() => {
-    const message = "signal timed out";
-    const name = "TimeoutError";
-    abortController.abort(
-      // some environments (React Native, Node) don't have DOMException
-      typeof DOMException !== "undefined" ? new DOMException(message, name) : Object.assign(new Error(message), {
-        name
-      })
-    );
-  }, milliseconds);
-  return abortController.signal;
-};
-var anySignal = (...signals) => {
-  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);
-  const abortController = new AbortController();
-  for (const signal of signals) {
-    signal.addEventListener("abort", () => abortController.abort(signal.reason), {
-      signal: abortController.signal,
-      once: true
-    });
-  }
-  return abortController.signal;
-};
-
-// src/query/fetchBaseQuery.ts
-var defaultFetchFn = (...args) => fetch(...args);
-var defaultValidateStatus = (response) => response.status >= 200 && response.status <= 299;
-var defaultIsJsonContentType = (headers) => (
-  /*applicat*/
-  /ion\/(vnd\.api\+)?json/.test(headers.get("content-type") || "")
-);
-function stripUndefined(obj) {
-  if (!(0, import_toolkit.isPlainObject)(obj)) {
-    return obj;
-  }
-  const copy = {
-    ...obj
-  };
-  for (const [k, v] of Object.entries(copy)) {
-    if (v === void 0) delete copy[k];
-  }
-  return copy;
-}
-var isJsonifiable = (body) => typeof body === "object" && ((0, import_toolkit.isPlainObject)(body) || Array.isArray(body) || typeof body.toJSON === "function");
-function fetchBaseQuery({
-  baseUrl,
-  prepareHeaders = (x) => x,
-  fetchFn = defaultFetchFn,
-  paramsSerializer,
-  isJsonContentType = defaultIsJsonContentType,
-  jsonContentType = "application/json",
-  jsonReplacer,
-  timeout: defaultTimeout,
-  responseHandler: globalResponseHandler,
-  validateStatus: globalValidateStatus,
-  ...baseFetchOptions
-} = {}) {
-  if (typeof fetch === "undefined" && fetchFn === defaultFetchFn) {
-    console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.");
-  }
-  return async (arg, api, extraOptions) => {
-    const {
-      getState,
-      extra,
-      endpoint,
-      forced,
-      type
-    } = api;
-    let meta;
-    let {
-      url,
-      headers = new Headers(baseFetchOptions.headers),
-      params = void 0,
-      responseHandler = globalResponseHandler ?? "json",
-      validateStatus = globalValidateStatus ?? defaultValidateStatus,
-      timeout = defaultTimeout,
-      ...rest
-    } = typeof arg == "string" ? {
-      url: arg
-    } : arg;
-    let config = {
-      ...baseFetchOptions,
-      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,
-      ...rest
-    };
-    headers = new Headers(stripUndefined(headers));
-    config.headers = await prepareHeaders(headers, {
-      getState,
-      arg,
-      extra,
-      endpoint,
-      forced,
-      type,
-      extraOptions
-    }) || headers;
-    const bodyIsJsonifiable = isJsonifiable(config.body);
-    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== "string") {
-      config.headers.delete("content-type");
-    }
-    if (!config.headers.has("content-type") && bodyIsJsonifiable) {
-      config.headers.set("content-type", jsonContentType);
-    }
-    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {
-      config.body = JSON.stringify(config.body, jsonReplacer);
-    }
-    if (!config.headers.has("accept")) {
-      if (responseHandler === "json") {
-        config.headers.set("accept", "application/json");
-      } else if (responseHandler === "text") {
-        config.headers.set("accept", "text/plain, text/html, */*");
-      }
-    }
-    if (params) {
-      const divider = ~url.indexOf("?") ? "&" : "?";
-      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));
-      url += divider + query;
-    }
-    url = joinUrls(baseUrl, url);
-    const request = new Request(url, config);
-    const requestClone = new Request(url, config);
-    meta = {
-      request: requestClone
-    };
-    let response;
-    try {
-      response = await fetchFn(request);
-    } catch (e) {
-      return {
-        error: {
-          status: (e instanceof Error || typeof DOMException !== "undefined" && e instanceof DOMException) && e.name === "TimeoutError" ? "TIMEOUT_ERROR" : "FETCH_ERROR",
-          error: String(e)
-        },
-        meta
-      };
-    }
-    const responseClone = response.clone();
-    meta.response = responseClone;
-    let resultData;
-    let responseText = "";
-    try {
-      let handleResponseError;
-      await Promise.all([
-        handleResponse(response, responseHandler).then((r) => resultData = r, (e) => handleResponseError = e),
-        // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182
-        // we *have* to "use up" both streams at the same time or they will stop running in node-fetch scenarios
-        responseClone.text().then((r) => responseText = r, () => {
-        })
-      ]);
-      if (handleResponseError) throw handleResponseError;
-    } catch (e) {
-      return {
-        error: {
-          status: "PARSING_ERROR",
-          originalStatus: response.status,
-          data: responseText,
-          error: String(e)
-        },
-        meta
-      };
-    }
-    return validateStatus(response, resultData) ? {
-      data: resultData,
-      meta
-    } : {
-      error: {
-        status: response.status,
-        data: resultData
-      },
-      meta
-    };
-  };
-  async function handleResponse(response, responseHandler) {
-    if (typeof responseHandler === "function") {
-      return responseHandler(response);
-    }
-    if (responseHandler === "content-type") {
-      responseHandler = isJsonContentType(response.headers) ? "json" : "text";
-    }
-    if (responseHandler === "json") {
-      const text = await response.text();
-      return text.length ? JSON.parse(text) : null;
-    }
-    return response.text();
-  }
-}
-
-// src/query/HandledError.ts
-var HandledError = class {
-  constructor(value, meta = void 0) {
-    this.value = value;
-    this.meta = meta;
-  }
-};
-
-// src/query/retry.ts
-async function defaultBackoff(attempt = 0, maxRetries = 5, signal) {
-  const attempts = Math.min(attempt, maxRetries);
-  const timeout = ~~((Math.random() + 0.4) * (300 << attempts));
-  await new Promise((resolve, reject) => {
-    const timeoutId = setTimeout(() => resolve(), timeout);
-    if (signal) {
-      const abortHandler = () => {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      };
-      if (signal.aborted) {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      } else {
-        signal.addEventListener("abort", abortHandler, {
-          once: true
-        });
-      }
-    }
-  });
-}
-function fail(error, meta) {
-  throw Object.assign(new HandledError({
-    error,
-    meta
-  }), {
-    throwImmediately: true
-  });
-}
-function failIfAborted(signal) {
-  if (signal.aborted) {
-    fail({
-      status: "CUSTOM_ERROR",
-      error: "Aborted"
-    });
-  }
-}
-var EMPTY_OPTIONS = {};
-var retryWithBackoff = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {
-  const possibleMaxRetries = [5, (defaultOptions || EMPTY_OPTIONS).maxRetries, (extraOptions || EMPTY_OPTIONS).maxRetries].filter((x) => x !== void 0);
-  const [maxRetries] = possibleMaxRetries.slice(-1);
-  const defaultRetryCondition = (_, __, {
-    attempt
-  }) => attempt <= maxRetries;
-  const options = {
-    maxRetries,
-    backoff: defaultBackoff,
-    retryCondition: defaultRetryCondition,
-    ...defaultOptions,
-    ...extraOptions
-  };
-  let retry2 = 0;
-  while (true) {
-    failIfAborted(api.signal);
-    try {
-      const result = await baseQuery(args, api, extraOptions);
-      if (result.error) {
-        throw new HandledError(result);
-      }
-      return result;
-    } catch (e) {
-      retry2++;
-      if (e.throwImmediately) {
-        if (e instanceof HandledError) {
-          return e.value;
-        }
-        throw e;
-      }
-      if (e instanceof HandledError) {
-        if (!options.retryCondition(e.value.error, args, {
-          attempt: retry2,
-          baseQueryApi: api,
-          extraOptions
-        })) {
-          return e.value;
-        }
-      } else {
-        if (retry2 > options.maxRetries) {
-          return {
-            error: e
-          };
-        }
-      }
-      failIfAborted(api.signal);
-      try {
-        await options.backoff(retry2, options.maxRetries, api.signal);
-      } catch (backoffError) {
-        failIfAborted(api.signal);
-        throw backoffError;
-      }
-    }
-  }
-};
-var retry = /* @__PURE__ */ Object.assign(retryWithBackoff, {
-  fail
-});
-
-// src/query/core/setupListeners.ts
-var INTERNAL_PREFIX = "__rtkq/";
-var ONLINE = "online";
-var OFFLINE = "offline";
-var FOCUS = "focus";
-var FOCUSED = "focused";
-var VISIBILITYCHANGE = "visibilitychange";
-var onFocus = /* @__PURE__ */ (0, import_toolkit.createAction)(`${INTERNAL_PREFIX}${FOCUSED}`);
-var onFocusLost = /* @__PURE__ */ (0, import_toolkit.createAction)(`${INTERNAL_PREFIX}un${FOCUSED}`);
-var onOnline = /* @__PURE__ */ (0, import_toolkit.createAction)(`${INTERNAL_PREFIX}${ONLINE}`);
-var onOffline = /* @__PURE__ */ (0, import_toolkit.createAction)(`${INTERNAL_PREFIX}${OFFLINE}`);
-var actions = {
-  onFocus,
-  onFocusLost,
-  onOnline,
-  onOffline
-};
-var initialized = false;
-function setupListeners(dispatch, customHandler) {
-  function defaultHandler() {
-    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map((action) => () => dispatch(action()));
-    const handleVisibilityChange = () => {
-      if (window.document.visibilityState === "visible") {
-        handleFocus();
-      } else {
-        handleFocusLost();
-      }
-    };
-    let unsubscribe = () => {
-      initialized = false;
-    };
-    if (!initialized) {
-      if (typeof window !== "undefined" && window.addEventListener) {
-        let updateListeners2 = function(add) {
-          Object.entries(handlers).forEach(([event, handler]) => {
-            if (add) {
-              window.addEventListener(event, handler, false);
-            } else {
-              window.removeEventListener(event, handler);
-            }
-          });
-        };
-        var updateListeners = updateListeners2;
-        const handlers = {
-          [FOCUS]: handleFocus,
-          [VISIBILITYCHANGE]: handleVisibilityChange,
-          [ONLINE]: handleOnline,
-          [OFFLINE]: handleOffline
-        };
-        updateListeners2(true);
-        initialized = true;
-        unsubscribe = () => {
-          updateListeners2(false);
-          initialized = false;
-        };
-      }
-    }
-    return unsubscribe;
-  }
-  return customHandler ? customHandler(dispatch, actions) : defaultHandler();
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-function isAnyQueryDefinition(e) {
-  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);
-}
-function calculateProvidedBy(description, result, error, queryArg, meta, assertTagTypes) {
-  const finalDescription = isFunction(description) ? description(result, error, queryArg, meta) : description;
-  if (finalDescription) {
-    return filterMap(finalDescription, isNotNullish, (tag) => assertTagTypes(expandTagDescription(tag)));
-  }
-  return [];
-}
-function isFunction(t) {
-  return typeof t === "function";
-}
-function expandTagDescription(description) {
-  return typeof description === "string" ? {
-    type: description
-  } : description;
-}
-
-// src/query/utils/immerImports.ts
-var import_immer = require("immer");
-
-// src/query/core/buildInitiate.ts
-var import_toolkit2 = require("@reduxjs/toolkit");
-
-// src/tsHelpers.ts
-function asSafePromise(promise, fallback) {
-  return promise.catch(fallback);
-}
-
-// src/query/apiTypes.ts
-var getEndpointDefinition = (context, endpointName) => context.endpointDefinitions[endpointName];
-
-// src/query/core/buildInitiate.ts
-var forceQueryFnSymbol = Symbol("forceQueryFn");
-var isUpsertQuery = (arg) => typeof arg[forceQueryFnSymbol] === "function";
-function buildInitiate({
-  serializeQueryArgs,
-  queryThunk,
-  infiniteQueryThunk,
-  mutationThunk,
-  api,
-  context,
-  getInternalState
-}) {
-  const getRunningQueries = (dispatch) => getInternalState(dispatch)?.runningQueries;
-  const getRunningMutations = (dispatch) => getInternalState(dispatch)?.runningMutations;
-  const {
-    unsubscribeQueryResult,
-    removeMutationResult,
-    updateSubscriptionOptions
-  } = api.internalActions;
-  return {
-    buildInitiateQuery,
-    buildInitiateInfiniteQuery,
-    buildInitiateMutation,
-    getRunningQueryThunk,
-    getRunningMutationThunk,
-    getRunningQueriesThunk,
-    getRunningMutationsThunk
-  };
-  function getRunningQueryThunk(endpointName, queryArgs) {
-    return (dispatch) => {
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      return getRunningQueries(dispatch)?.get(queryCacheKey);
-    };
-  }
-  function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {
-    return (dispatch) => {
-      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId);
-    };
-  }
-  function getRunningQueriesThunk() {
-    return (dispatch) => filterNullishValues(getRunningQueries(dispatch));
-  }
-  function getRunningMutationsThunk() {
-    return (dispatch) => filterNullishValues(getRunningMutations(dispatch));
-  }
-  function middlewareWarning(dispatch) {
-    if (true) {
-      if (middlewareWarning.triggered) return;
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      middlewareWarning.triggered = true;
-      if (typeof returnedValue !== "object" || typeof returnedValue?.type === "string") {
-        throw new Error(false ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-You must add the middleware for RTK-Query to function correctly!`);
-      }
-    }
-  }
-  function buildInitiateAnyQuery(endpointName, endpointDefinition) {
-    const queryAction = (arg, {
-      subscribe = true,
-      forceRefetch,
-      subscriptionOptions,
-      [forceQueryFnSymbol]: forceQueryFn,
-      ...rest
-    } = {}) => (dispatch, getState) => {
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs: arg,
-        endpointDefinition,
-        endpointName
-      });
-      let thunk;
-      const commonThunkArgs = {
-        ...rest,
-        type: ENDPOINT_QUERY,
-        subscribe,
-        forceRefetch,
-        subscriptionOptions,
-        endpointName,
-        originalArgs: arg,
-        queryCacheKey,
-        [forceQueryFnSymbol]: forceQueryFn
-      };
-      if (isQueryDefinition(endpointDefinition)) {
-        thunk = queryThunk(commonThunkArgs);
-      } else {
-        const {
-          direction,
-          initialPageParam,
-          refetchCachedPages
-        } = rest;
-        thunk = infiniteQueryThunk({
-          ...commonThunkArgs,
-          // Supply these even if undefined. This helps with a field existence
-          // check over in `buildSlice.ts`
-          direction,
-          initialPageParam,
-          refetchCachedPages
-        });
-      }
-      const selector = api.endpoints[endpointName].select(arg);
-      const thunkResult = dispatch(thunk);
-      const stateAfter = selector(getState());
-      middlewareWarning(dispatch);
-      const {
-        requestId,
-        abort
-      } = thunkResult;
-      const skippedSynchronously = stateAfter.requestId !== requestId;
-      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);
-      const selectFromState = () => selector(getState());
-      const statePromise = Object.assign(forceQueryFn ? (
-        // a query has been forced (upsertQueryData)
-        // -> we want to resolve it once data has been written with the data that will be written
-        thunkResult.then(selectFromState)
-      ) : skippedSynchronously && !runningQuery ? (
-        // a query has been skipped due to a condition and we do not have any currently running query
-        // -> we want to resolve it immediately with the current data
-        Promise.resolve(stateAfter)
-      ) : (
-        // query just started or one is already in flight
-        // -> wait for the running query, then resolve with data from after that
-        Promise.all([runningQuery, thunkResult]).then(selectFromState)
-      ), {
-        arg,
-        requestId,
-        subscriptionOptions,
-        queryCacheKey,
-        abort,
-        async unwrap() {
-          const result = await statePromise;
-          if (result.isError) {
-            throw result.error;
-          }
-          return result.data;
-        },
-        refetch: (options) => dispatch(queryAction(arg, {
-          subscribe: false,
-          forceRefetch: true,
-          ...options
-        })),
-        unsubscribe() {
-          if (subscribe) dispatch(unsubscribeQueryResult({
-            queryCacheKey,
-            requestId
-          }));
-        },
-        updateSubscriptionOptions(options) {
-          statePromise.subscriptionOptions = options;
-          dispatch(updateSubscriptionOptions({
-            endpointName,
-            requestId,
-            queryCacheKey,
-            options
-          }));
-        }
-      });
-      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {
-        const runningQueries = getRunningQueries(dispatch);
-        runningQueries.set(queryCacheKey, statePromise);
-        statePromise.then(() => {
-          runningQueries.delete(queryCacheKey);
-        });
-      }
-      return statePromise;
-    };
-    return queryAction;
-  }
-  function buildInitiateQuery(endpointName, endpointDefinition) {
-    const queryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return queryAction;
-  }
-  function buildInitiateInfiniteQuery(endpointName, endpointDefinition) {
-    const infiniteQueryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return infiniteQueryAction;
-  }
-  function buildInitiateMutation(endpointName) {
-    return (arg, {
-      track = true,
-      fixedCacheKey
-    } = {}) => (dispatch, getState) => {
-      const thunk = mutationThunk({
-        type: "mutation",
-        endpointName,
-        originalArgs: arg,
-        track,
-        fixedCacheKey
-      });
-      const thunkResult = dispatch(thunk);
-      middlewareWarning(dispatch);
-      const {
-        requestId,
-        abort,
-        unwrap
-      } = thunkResult;
-      const returnValuePromise = asSafePromise(thunkResult.unwrap().then((data) => ({
-        data
-      })), (error) => ({
-        error
-      }));
-      const reset = () => {
-        dispatch(removeMutationResult({
-          requestId,
-          fixedCacheKey
-        }));
-      };
-      const ret = Object.assign(returnValuePromise, {
-        arg: thunkResult.arg,
-        requestId,
-        abort,
-        unwrap,
-        reset
-      });
-      const runningMutations = getRunningMutations(dispatch);
-      runningMutations.set(requestId, ret);
-      ret.then(() => {
-        runningMutations.delete(requestId);
-      });
-      if (fixedCacheKey) {
-        runningMutations.set(fixedCacheKey, ret);
-        ret.then(() => {
-          if (runningMutations.get(fixedCacheKey) === ret) {
-            runningMutations.delete(fixedCacheKey);
-          }
-        });
-      }
-      return ret;
-    };
-  }
-}
-
-// src/query/standardSchema.ts
-var import_utils4 = require("@standard-schema/utils");
-var NamedSchemaError = class extends import_utils4.SchemaError {
-  constructor(issues, value, schemaName, _bqMeta) {
-    super(issues);
-    this.value = value;
-    this.schemaName = schemaName;
-    this._bqMeta = _bqMeta;
-  }
-};
-var shouldSkip = (skipSchemaValidation, schemaName) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;
-async function parseWithSchema(schema, data, schemaName, bqMeta) {
-  const result = await schema["~standard"].validate(data);
-  if (result.issues) {
-    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);
-  }
-  return result.value;
-}
-
-// src/query/core/buildThunks.ts
-function defaultTransformResponse(baseQueryReturnValue) {
-  return baseQueryReturnValue;
-}
-var addShouldAutoBatch = (arg = {}) => {
-  return {
-    ...arg,
-    [import_toolkit.SHOULD_AUTOBATCH]: true
-  };
-};
-function buildThunks({
-  reducerPath,
-  baseQuery,
-  context: {
-    endpointDefinitions
-  },
-  serializeQueryArgs,
-  api,
-  assertTagType,
-  selectors,
-  onSchemaFailure,
-  catchSchemaFailure: globalCatchSchemaFailure,
-  skipSchemaValidation: globalSkipSchemaValidation
-}) {
-  const patchQueryData = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {
-    const endpointDefinition = endpointDefinitions[endpointName];
-    const queryCacheKey = serializeQueryArgs({
-      queryArgs: arg,
-      endpointDefinition,
-      endpointName
-    });
-    dispatch(api.internalActions.queryResultPatched({
-      queryCacheKey,
-      patches
-    }));
-    if (!updateProvided) {
-      return;
-    }
-    const newValue = api.endpoints[endpointName].select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, void 0, arg, {}, assertTagType);
-    dispatch(api.internalActions.updateProvidedBy([{
-      queryCacheKey,
-      providedTags
-    }]));
-  };
-  function addToStart(items, item, max = 0) {
-    const newItems = [item, ...items];
-    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;
-  }
-  function addToEnd(items, item, max = 0) {
-    const newItems = [...items, item];
-    return max && newItems.length > max ? newItems.slice(1) : newItems;
-  }
-  const updateQueryData = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {
-    const endpointDefinition = api.endpoints[endpointName];
-    const currentState = endpointDefinition.select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const ret = {
-      patches: [],
-      inversePatches: [],
-      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))
-    };
-    if (currentState.status === STATUS_UNINITIALIZED) {
-      return ret;
-    }
-    let newValue;
-    if ("data" in currentState) {
-      if ((0, import_immer.isDraftable)(currentState.data)) {
-        const [value, patches, inversePatches] = (0, import_immer.produceWithPatches)(currentState.data, updateRecipe);
-        ret.patches.push(...patches);
-        ret.inversePatches.push(...inversePatches);
-        newValue = value;
-      } else {
-        newValue = updateRecipe(currentState.data);
-        ret.patches.push({
-          op: "replace",
-          path: [],
-          value: newValue
-        });
-        ret.inversePatches.push({
-          op: "replace",
-          path: [],
-          value: currentState.data
-        });
-      }
-    }
-    if (ret.patches.length === 0) {
-      return ret;
-    }
-    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));
-    return ret;
-  };
-  const upsertQueryData = (endpointName, arg, value) => (dispatch) => {
-    const res = dispatch(api.endpoints[endpointName].initiate(arg, {
-      subscribe: false,
-      forceRefetch: true,
-      [forceQueryFnSymbol]: () => ({
-        data: value
-      })
-    }));
-    return res;
-  };
-  const getTransformCallbackForEndpoint = (endpointDefinition, transformFieldName) => {
-    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName] : defaultTransformResponse;
-  };
-  const executeEndpoint = async (arg, {
-    signal,
-    abort,
-    rejectWithValue,
-    fulfillWithValue,
-    dispatch,
-    getState,
-    extra
-  }) => {
-    const endpointDefinition = endpointDefinitions[arg.endpointName];
-    const {
-      metaSchema,
-      skipSchemaValidation = globalSkipSchemaValidation
-    } = endpointDefinition;
-    const isQuery = arg.type === ENDPOINT_QUERY;
-    try {
-      let transformResponse = defaultTransformResponse;
-      const baseQueryApi = {
-        signal,
-        abort,
-        dispatch,
-        getState,
-        extra,
-        endpoint: arg.endpointName,
-        type: arg.type,
-        forced: isQuery ? isForcedQuery(arg, getState()) : void 0,
-        queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-      };
-      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : void 0;
-      let finalQueryReturnValue;
-      const fetchPage = async (data, param, maxPages, previous) => {
-        if (param == null && data.pages.length) {
-          return Promise.resolve({
-            data
-          });
-        }
-        const finalQueryArg = {
-          queryArg: arg.originalArgs,
-          pageParam: param
-        };
-        const pageResponse = await executeRequest(finalQueryArg);
-        const addTo = previous ? addToStart : addToEnd;
-        return {
-          data: {
-            pages: addTo(data.pages, pageResponse.data, maxPages),
-            pageParams: addTo(data.pageParams, param, maxPages)
-          },
-          meta: pageResponse.meta
-        };
-      };
-      async function executeRequest(finalQueryArg) {
-        let result;
-        const {
-          extraOptions,
-          argSchema,
-          rawResponseSchema,
-          responseSchema
-        } = endpointDefinition;
-        if (argSchema && !shouldSkip(skipSchemaValidation, "arg")) {
-          finalQueryArg = await parseWithSchema(
-            argSchema,
-            finalQueryArg,
-            "argSchema",
-            {}
-            // we don't have a meta yet, so we can't pass it
-          );
-        }
-        if (forceQueryFn) {
-          result = forceQueryFn();
-        } else if (endpointDefinition.query) {
-          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformResponse");
-          result = await baseQuery(endpointDefinition.query(finalQueryArg), baseQueryApi, extraOptions);
-        } else {
-          result = await endpointDefinition.queryFn(finalQueryArg, baseQueryApi, extraOptions, (arg2) => baseQuery(arg2, baseQueryApi, extraOptions));
-        }
-        if (typeof process !== "undefined" && true) {
-          const what = endpointDefinition.query ? "`baseQuery`" : "`queryFn`";
-          let err;
-          if (!result) {
-            err = `${what} did not return anything.`;
-          } else if (typeof result !== "object") {
-            err = `${what} did not return an object.`;
-          } else if (result.error && result.data) {
-            err = `${what} returned an object containing both \`error\` and \`result\`.`;
-          } else if (result.error === void 0 && result.data === void 0) {
-            err = `${what} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``;
-          } else {
-            for (const key of Object.keys(result)) {
-              if (key !== "error" && key !== "data" && key !== "meta") {
-                err = `The object returned by ${what} has the unknown property ${key}.`;
-                break;
-              }
-            }
-          }
-          if (err) {
-            console.error(`Error encountered handling the endpoint ${arg.endpointName}.
-                  ${err}
-                  It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.
-                  Object returned was:`, result);
-          }
-        }
-        if (result.error) throw new HandledError(result.error, result.meta);
-        let {
-          data
-        } = result;
-        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, "rawResponse")) {
-          data = await parseWithSchema(rawResponseSchema, result.data, "rawResponseSchema", result.meta);
-        }
-        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);
-        if (responseSchema && !shouldSkip(skipSchemaValidation, "response")) {
-          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, "responseSchema", result.meta);
-        }
-        return {
-          ...result,
-          data: transformedResponse
-        };
-      }
-      if (isQuery && "infiniteQueryOptions" in endpointDefinition) {
-        const {
-          infiniteQueryOptions
-        } = endpointDefinition;
-        const {
-          maxPages = Infinity
-        } = infiniteQueryOptions;
-        const refetchCachedPages = arg.refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;
-        let result;
-        const blankData = {
-          pages: [],
-          pageParams: []
-        };
-        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data;
-        const isForcedQueryNeedingRefetch = (
-          // arg.forceRefetch
-          isForcedQuery(arg, getState()) && !arg.direction
-        );
-        const existingData = isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData;
-        if ("direction" in arg && arg.direction && existingData.pages.length) {
-          const previous = arg.direction === "backward";
-          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;
-          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);
-          result = await fetchPage(existingData, param, maxPages, previous);
-        } else {
-          const {
-            initialPageParam = infiniteQueryOptions.initialPageParam
-          } = arg;
-          const cachedPageParams = cachedData?.pageParams ?? [];
-          const firstPageParam = cachedPageParams[0] ?? initialPageParam;
-          const totalPages = cachedPageParams.length;
-          result = await fetchPage(existingData, firstPageParam, maxPages);
-          if (forceQueryFn) {
-            result = {
-              data: result.data.pages[0]
-            };
-          }
-          if (refetchCachedPages) {
-            for (let i = 1; i < totalPages; i++) {
-              const param = getNextPageParam(infiniteQueryOptions, result.data, arg.originalArgs);
-              result = await fetchPage(result.data, param, maxPages);
-            }
-          }
-        }
-        finalQueryReturnValue = result;
-      } else {
-        finalQueryReturnValue = await executeRequest(arg.originalArgs);
-      }
-      if (metaSchema && !shouldSkip(skipSchemaValidation, "meta") && finalQueryReturnValue.meta) {
-        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, "metaSchema", finalQueryReturnValue.meta);
-      }
-      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({
-        fulfilledTimeStamp: Date.now(),
-        baseQueryMeta: finalQueryReturnValue.meta
-      }));
-    } catch (error) {
-      let caughtError = error;
-      if (caughtError instanceof HandledError) {
-        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformErrorResponse");
-        const {
-          rawErrorResponseSchema,
-          errorResponseSchema
-        } = endpointDefinition;
-        let {
-          value,
-          meta
-        } = caughtError;
-        try {
-          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, "rawErrorResponse")) {
-            value = await parseWithSchema(rawErrorResponseSchema, value, "rawErrorResponseSchema", meta);
-          }
-          if (metaSchema && !shouldSkip(skipSchemaValidation, "meta")) {
-            meta = await parseWithSchema(metaSchema, meta, "metaSchema", meta);
-          }
-          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);
-          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, "errorResponse")) {
-            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, "errorResponseSchema", meta);
-          }
-          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({
-            baseQueryMeta: meta
-          }));
-        } catch (e) {
-          caughtError = e;
-        }
-      }
-      try {
-        if (caughtError instanceof NamedSchemaError) {
-          const info = {
-            endpoint: arg.endpointName,
-            arg: arg.originalArgs,
-            type: arg.type,
-            queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-          };
-          endpointDefinition.onSchemaFailure?.(caughtError, info);
-          onSchemaFailure?.(caughtError, info);
-          const {
-            catchSchemaFailure = globalCatchSchemaFailure
-          } = endpointDefinition;
-          if (catchSchemaFailure) {
-            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({
-              baseQueryMeta: caughtError._bqMeta
-            }));
-          }
-        }
-      } catch (e) {
-        caughtError = e;
-      }
-      if (typeof process !== "undefined" && true) {
-        console.error(`An unhandled error occurred processing a request for the endpoint "${arg.endpointName}".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`, caughtError);
-      } else {
-        console.error(caughtError);
-      }
-      throw caughtError;
-    }
-  };
-  function isForcedQuery(arg, state) {
-    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);
-    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;
-    const fulfilledVal = requestState?.fulfilledTimeStamp;
-    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);
-    if (refetchVal) {
-      return refetchVal === true || (Number(/* @__PURE__ */ new Date()) - Number(fulfilledVal)) / 1e3 >= refetchVal;
-    }
-    return false;
-  }
-  const createQueryThunk = () => {
-    const generatedQueryThunk = (0, import_toolkit.createAsyncThunk)(`${reducerPath}/executeQuery`, executeEndpoint, {
-      getPendingMeta({
-        arg
-      }) {
-        const endpointDefinition = endpointDefinitions[arg.endpointName];
-        return addShouldAutoBatch({
-          startedTimeStamp: Date.now(),
-          ...isInfiniteQueryDefinition(endpointDefinition) ? {
-            direction: arg.direction
-          } : {}
-        });
-      },
-      condition(queryThunkArg, {
-        getState
-      }) {
-        const state = getState();
-        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);
-        const fulfilledVal = requestState?.fulfilledTimeStamp;
-        const currentArg = queryThunkArg.originalArgs;
-        const previousArg = requestState?.originalArgs;
-        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];
-        const direction = queryThunkArg.direction;
-        if (isUpsertQuery(queryThunkArg)) {
-          return true;
-        }
-        if (requestState?.status === "pending") {
-          return false;
-        }
-        if (isForcedQuery(queryThunkArg, state)) {
-          return true;
-        }
-        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({
-          currentArg,
-          previousArg,
-          endpointState: requestState,
-          state
-        })) {
-          return true;
-        }
-        if (fulfilledVal && !direction) {
-          return false;
-        }
-        return true;
-      },
-      dispatchConditionRejection: true
-    });
-    return generatedQueryThunk;
-  };
-  const queryThunk = createQueryThunk();
-  const infiniteQueryThunk = createQueryThunk();
-  const mutationThunk = (0, import_toolkit.createAsyncThunk)(`${reducerPath}/executeMutation`, executeEndpoint, {
-    getPendingMeta() {
-      return addShouldAutoBatch({
-        startedTimeStamp: Date.now()
-      });
-    }
-  });
-  const hasTheForce = (options) => "force" in options;
-  const hasMaxAge = (options) => "ifOlderThan" in options;
-  const prefetch = (endpointName, arg, options = {}) => (dispatch, getState) => {
-    const force = hasTheForce(options) && options.force;
-    const maxAge = hasMaxAge(options) && options.ifOlderThan;
-    const queryAction = (force2 = true) => {
-      const options2 = {
-        forceRefetch: force2,
-        subscribe: false
-      };
-      return api.endpoints[endpointName].initiate(arg, options2);
-    };
-    const latestStateValue = api.endpoints[endpointName].select(arg)(getState());
-    if (force) {
-      dispatch(queryAction());
-    } else if (maxAge) {
-      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;
-      if (!lastFulfilledTs) {
-        dispatch(queryAction());
-        return;
-      }
-      const shouldRetrigger = (Number(/* @__PURE__ */ new Date()) - Number(new Date(lastFulfilledTs))) / 1e3 >= maxAge;
-      if (shouldRetrigger) {
-        dispatch(queryAction());
-      }
-    } else {
-      dispatch(queryAction(false));
-    }
-  };
-  function matchesEndpoint(endpointName) {
-    return (action) => action?.meta?.arg?.endpointName === endpointName;
-  }
-  function buildMatchThunkActions(thunk, endpointName) {
-    return {
-      matchPending: (0, import_toolkit.isAllOf)((0, import_toolkit.isPending)(thunk), matchesEndpoint(endpointName)),
-      matchFulfilled: (0, import_toolkit.isAllOf)((0, import_toolkit.isFulfilled)(thunk), matchesEndpoint(endpointName)),
-      matchRejected: (0, import_toolkit.isAllOf)((0, import_toolkit.isRejected)(thunk), matchesEndpoint(endpointName))
-    };
-  }
-  return {
-    queryThunk,
-    mutationThunk,
-    infiniteQueryThunk,
-    prefetch,
-    updateQueryData,
-    upsertQueryData,
-    patchQueryData,
-    buildMatchThunkActions
-  };
-}
-function getNextPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  const lastIndex = pages.length - 1;
-  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);
-}
-function getPreviousPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);
-}
-function calculateProvidedByThunk(action, type, endpointDefinitions, assertTagType) {
-  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type], (0, import_toolkit.isFulfilled)(action) ? action.payload : void 0, (0, import_toolkit.isRejectedWithValue)(action) ? action.payload : void 0, action.meta.arg.originalArgs, "baseQueryMeta" in action.meta ? action.meta.baseQueryMeta : void 0, assertTagType);
-}
-
-// src/query/utils/getCurrent.ts
-function getCurrent(value) {
-  return (0, import_immer.isDraft)(value) ? (0, import_immer.current)(value) : value;
-}
-
-// src/query/core/buildSlice.ts
-function updateQuerySubstateIfExists(state, queryCacheKey, update) {
-  const substate = state[queryCacheKey];
-  if (substate) {
-    update(substate);
-  }
-}
-function getMutationCacheKey(id) {
-  return ("arg" in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;
-}
-function updateMutationSubstateIfExists(state, id, update) {
-  const substate = state[getMutationCacheKey(id)];
-  if (substate) {
-    update(substate);
-  }
-}
-var initialState = {};
-function buildSlice({
-  reducerPath,
-  queryThunk,
-  mutationThunk,
-  serializeQueryArgs,
-  context: {
-    endpointDefinitions: definitions,
-    apiUid,
-    extractRehydrationInfo,
-    hasRehydrationInfo
-  },
-  assertTagType,
-  config
-}) {
-  const resetApiState = (0, import_toolkit.createAction)(`${reducerPath}/resetApiState`);
-  function writePendingCacheEntry(draft, arg, upserting, meta) {
-    draft[arg.queryCacheKey] ??= {
-      status: STATUS_UNINITIALIZED,
-      endpointName: arg.endpointName
-    };
-    updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-      substate.status = STATUS_PENDING;
-      substate.requestId = upserting && substate.requestId ? (
-        // for `upsertQuery` **updates**, keep the current `requestId`
-        substate.requestId
-      ) : (
-        // for normal queries or `upsertQuery` **inserts** always update the `requestId`
-        meta.requestId
-      );
-      if (arg.originalArgs !== void 0) {
-        substate.originalArgs = arg.originalArgs;
-      }
-      substate.startedTimeStamp = meta.startedTimeStamp;
-      const endpointDefinition = definitions[meta.arg.endpointName];
-      if (isInfiniteQueryDefinition(endpointDefinition) && "direction" in arg) {
-        ;
-        substate.direction = arg.direction;
-      }
-    });
-  }
-  function writeFulfilledCacheEntry(draft, meta, payload, upserting) {
-    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {
-      if (substate.requestId !== meta.requestId && !upserting) return;
-      const {
-        merge
-      } = definitions[meta.arg.endpointName];
-      substate.status = STATUS_FULFILLED;
-      if (merge) {
-        if (substate.data !== void 0) {
-          const {
-            fulfilledTimeStamp,
-            arg,
-            baseQueryMeta,
-            requestId
-          } = meta;
-          let newData = (0, import_toolkit.createNextState)(substate.data, (draftSubstateData) => {
-            return merge(draftSubstateData, payload, {
-              arg: arg.originalArgs,
-              baseQueryMeta,
-              fulfilledTimeStamp,
-              requestId
-            });
-          });
-          substate.data = newData;
-        } else {
-          substate.data = payload;
-        }
-      } else {
-        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing((0, import_immer.isDraft)(substate.data) ? (0, import_immer.original)(substate.data) : substate.data, payload) : payload;
-      }
-      delete substate.error;
-      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-    });
-  }
-  const querySlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/queries`,
-    initialState,
-    reducers: {
-      removeQueryResult: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey
-          }
-        }) {
-          delete draft[queryCacheKey];
-        },
-        prepare: (0, import_toolkit.prepareAutoBatched)()
-      },
-      cacheEntriesUpserted: {
-        reducer(draft, action) {
-          for (const entry of action.payload) {
-            const {
-              queryDescription: arg,
-              value
-            } = entry;
-            writePendingCacheEntry(draft, arg, true, {
-              arg,
-              requestId: action.meta.requestId,
-              startedTimeStamp: action.meta.timestamp
-            });
-            writeFulfilledCacheEntry(
-              draft,
-              {
-                arg,
-                requestId: action.meta.requestId,
-                fulfilledTimeStamp: action.meta.timestamp,
-                baseQueryMeta: {}
-              },
-              value,
-              // We know we're upserting here
-              true
-            );
-          }
-        },
-        prepare: (payload) => {
-          const queryDescriptions = payload.map((entry) => {
-            const {
-              endpointName,
-              arg,
-              value
-            } = entry;
-            const endpointDefinition = definitions[endpointName];
-            const queryDescription = {
-              type: ENDPOINT_QUERY,
-              endpointName,
-              originalArgs: entry.arg,
-              queryCacheKey: serializeQueryArgs({
-                queryArgs: arg,
-                endpointDefinition,
-                endpointName
-              })
-            };
-            return {
-              queryDescription,
-              value
-            };
-          });
-          const result = {
-            payload: queryDescriptions,
-            meta: {
-              [import_toolkit.SHOULD_AUTOBATCH]: true,
-              requestId: (0, import_toolkit.nanoid)(),
-              timestamp: Date.now()
-            }
-          };
-          return result;
-        }
-      },
-      queryResultPatched: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey,
-            patches
-          }
-        }) {
-          updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {
-            substate.data = (0, import_immer.applyPatches)(substate.data, patches.concat());
-          });
-        },
-        prepare: (0, import_toolkit.prepareAutoBatched)()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(queryThunk.pending, (draft, {
-        meta,
-        meta: {
-          arg
-        }
-      }) => {
-        const upserting = isUpsertQuery(arg);
-        writePendingCacheEntry(draft, arg, upserting, meta);
-      }).addCase(queryThunk.fulfilled, (draft, {
-        meta,
-        payload
-      }) => {
-        const upserting = isUpsertQuery(meta.arg);
-        writeFulfilledCacheEntry(draft, meta, payload, upserting);
-      }).addCase(queryThunk.rejected, (draft, {
-        meta: {
-          condition,
-          arg,
-          requestId
-        },
-        error,
-        payload
-      }) => {
-        updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-          if (condition) {
-          } else {
-            if (substate.requestId !== requestId) return;
-            substate.status = STATUS_REJECTED;
-            substate.error = payload ?? error;
-          }
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          queries
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(queries)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const mutationSlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/mutations`,
-    initialState,
-    reducers: {
-      removeMutationResult: {
-        reducer(draft, {
-          payload
-        }) {
-          const cacheKey = getMutationCacheKey(payload);
-          if (cacheKey in draft) {
-            delete draft[cacheKey];
-          }
-        },
-        prepare: (0, import_toolkit.prepareAutoBatched)()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(mutationThunk.pending, (draft, {
-        meta,
-        meta: {
-          requestId,
-          arg,
-          startedTimeStamp
-        }
-      }) => {
-        if (!arg.track) return;
-        draft[getMutationCacheKey(meta)] = {
-          requestId,
-          status: STATUS_PENDING,
-          endpointName: arg.endpointName,
-          startedTimeStamp
-        };
-      }).addCase(mutationThunk.fulfilled, (draft, {
-        payload,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_FULFILLED;
-          substate.data = payload;
-          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-        });
-      }).addCase(mutationThunk.rejected, (draft, {
-        payload,
-        error,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_REJECTED;
-          substate.error = payload ?? error;
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          mutations
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(mutations)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) && // only rehydrate endpoints that were persisted using a `fixedCacheKey`
-            key !== entry?.requestId
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const initialInvalidationState = {
-    tags: {},
-    keys: {}
-  };
-  const invalidationSlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/invalidation`,
-    initialState: initialInvalidationState,
-    reducers: {
-      updateProvidedBy: {
-        reducer(draft, action) {
-          for (const {
-            queryCacheKey,
-            providedTags
-          } of action.payload) {
-            removeCacheKeyFromTags(draft, queryCacheKey);
-            for (const {
-              type,
-              id
-            } of providedTags) {
-              const subscribedQueries = (draft.tags[type] ??= {})[id || "__internal_without_id"] ??= [];
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-            }
-            draft.keys[queryCacheKey] = providedTags;
-          }
-        },
-        prepare: (0, import_toolkit.prepareAutoBatched)()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(querySlice.actions.removeQueryResult, (draft, {
-        payload: {
-          queryCacheKey
-        }
-      }) => {
-        removeCacheKeyFromTags(draft, queryCacheKey);
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          provided
-        } = extractRehydrationInfo(action);
-        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {
-          for (const [id, cacheKeys] of Object.entries(incomingTags)) {
-            const subscribedQueries = (draft.tags[type] ??= {})[id || "__internal_without_id"] ??= [];
-            for (const queryCacheKey of cacheKeys) {
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];
-            }
-          }
-        }
-      }).addMatcher((0, import_toolkit.isAnyOf)((0, import_toolkit.isFulfilled)(queryThunk), (0, import_toolkit.isRejectedWithValue)(queryThunk)), (draft, action) => {
-        writeProvidedTagsForQueries(draft, [action]);
-      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {
-        const mockActions = action.payload.map(({
-          queryDescription,
-          value
-        }) => {
-          return {
-            type: "UNKNOWN",
-            payload: value,
-            meta: {
-              requestStatus: "fulfilled",
-              requestId: "UNKNOWN",
-              arg: queryDescription
-            }
-          };
-        });
-        writeProvidedTagsForQueries(draft, mockActions);
-      });
-    }
-  });
-  function removeCacheKeyFromTags(draft, queryCacheKey) {
-    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);
-    for (const tag of existingTags) {
-      const tagType = tag.type;
-      const tagId = tag.id ?? "__internal_without_id";
-      const tagSubscriptions = draft.tags[tagType]?.[tagId];
-      if (tagSubscriptions) {
-        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter((qc) => qc !== queryCacheKey);
-      }
-    }
-    delete draft.keys[queryCacheKey];
-  }
-  function writeProvidedTagsForQueries(draft, actions3) {
-    const providedByEntries = actions3.map((action) => {
-      const providedTags = calculateProvidedByThunk(action, "providesTags", definitions, assertTagType);
-      const {
-        queryCacheKey
-      } = action.meta.arg;
-      return {
-        queryCacheKey,
-        providedTags
-      };
-    });
-    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));
-  }
-  const subscriptionSlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/subscriptions`,
-    initialState,
-    reducers: {
-      updateSubscriptionOptions(d, a) {
-      },
-      unsubscribeQueryResult(d, a) {
-      },
-      internal_getRTKQSubscriptions() {
-      }
-    }
-  });
-  const internalSubscriptionsSlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/internalSubscriptions`,
-    initialState,
-    reducers: {
-      subscriptionsUpdated: {
-        reducer(state, action) {
-          return (0, import_immer.applyPatches)(state, action.payload);
-        },
-        prepare: (0, import_toolkit.prepareAutoBatched)()
-      }
-    }
-  });
-  const configSlice = (0, import_toolkit.createSlice)({
-    name: `${reducerPath}/config`,
-    initialState: {
-      online: isOnline(),
-      focused: isDocumentVisible(),
-      middlewareRegistered: false,
-      ...config
-    },
-    reducers: {
-      middlewareRegistered(state, {
-        payload
-      }) {
-        state.middlewareRegistered = state.middlewareRegistered === "conflict" || apiUid !== payload ? "conflict" : true;
-      }
-    },
-    extraReducers: (builder) => {
-      builder.addCase(onOnline, (state) => {
-        state.online = true;
-      }).addCase(onOffline, (state) => {
-        state.online = false;
-      }).addCase(onFocus, (state) => {
-        state.focused = true;
-      }).addCase(onFocusLost, (state) => {
-        state.focused = false;
-      }).addMatcher(hasRehydrationInfo, (draft) => ({
-        ...draft
-      }));
-    }
-  });
-  const combinedReducer = (0, import_toolkit.combineReducers)({
-    queries: querySlice.reducer,
-    mutations: mutationSlice.reducer,
-    provided: invalidationSlice.reducer,
-    subscriptions: internalSubscriptionsSlice.reducer,
-    config: configSlice.reducer
-  });
-  const reducer = (state, action) => combinedReducer(resetApiState.match(action) ? void 0 : state, action);
-  const actions2 = {
-    ...configSlice.actions,
-    ...querySlice.actions,
-    ...subscriptionSlice.actions,
-    ...internalSubscriptionsSlice.actions,
-    ...mutationSlice.actions,
-    ...invalidationSlice.actions,
-    resetApiState
-  };
-  return {
-    reducer,
-    actions: actions2
-  };
-}
-
-// src/query/core/buildSelectors.ts
-var skipToken = /* @__PURE__ */ Symbol.for("RTKQ/skipToken");
-var initialSubState = {
-  status: STATUS_UNINITIALIZED
-};
-var defaultQuerySubState = /* @__PURE__ */ (0, import_toolkit.createNextState)(initialSubState, () => {
-});
-var defaultMutationSubState = /* @__PURE__ */ (0, import_toolkit.createNextState)(initialSubState, () => {
-});
-function buildSelectors({
-  serializeQueryArgs,
-  reducerPath,
-  createSelector: createSelector2
-}) {
-  const selectSkippedQuery = (state) => defaultQuerySubState;
-  const selectSkippedMutation = (state) => defaultMutationSubState;
-  return {
-    buildQuerySelector,
-    buildInfiniteQuerySelector,
-    buildMutationSelector,
-    selectInvalidatedBy,
-    selectCachedArgsForQuery,
-    selectApiState,
-    selectQueries,
-    selectMutations,
-    selectQueryEntry,
-    selectConfig
-  };
-  function withRequestFlags(substate) {
-    return {
-      ...substate,
-      ...getRequestStatusFlags(substate.status)
-    };
-  }
-  function selectApiState(rootState) {
-    const state = rootState[reducerPath];
-    if (true) {
-      if (!state) {
-        if (selectApiState.triggered) return state;
-        selectApiState.triggered = true;
-        console.error(`Error: No data found at \`state.${reducerPath}\`. Did you forget to add the reducer to the store?`);
-      }
-    }
-    return state;
-  }
-  function selectQueries(rootState) {
-    return selectApiState(rootState)?.queries;
-  }
-  function selectQueryEntry(rootState, cacheKey) {
-    return selectQueries(rootState)?.[cacheKey];
-  }
-  function selectMutations(rootState) {
-    return selectApiState(rootState)?.mutations;
-  }
-  function selectConfig(rootState) {
-    return selectApiState(rootState)?.config;
-  }
-  function buildAnyQuerySelector(endpointName, endpointDefinition, combiner) {
-    return (queryArgs) => {
-      if (queryArgs === skipToken) {
-        return createSelector2(selectSkippedQuery, combiner);
-      }
-      const serializedArgs = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      const selectQuerySubstate = (state) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;
-      return createSelector2(selectQuerySubstate, combiner);
-    };
-  }
-  function buildQuerySelector(endpointName, endpointDefinition) {
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags);
-  }
-  function buildInfiniteQuerySelector(endpointName, endpointDefinition) {
-    const {
-      infiniteQueryOptions
-    } = endpointDefinition;
-    function withInfiniteQueryResultFlags(substate) {
-      const stateWithRequestFlags = {
-        ...substate,
-        ...getRequestStatusFlags(substate.status)
-      };
-      const {
-        isLoading,
-        isError,
-        direction
-      } = stateWithRequestFlags;
-      const isForward = direction === "forward";
-      const isBackward = direction === "backward";
-      return {
-        ...stateWithRequestFlags,
-        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        isFetchingNextPage: isLoading && isForward,
-        isFetchingPreviousPage: isLoading && isBackward,
-        isFetchNextPageError: isError && isForward,
-        isFetchPreviousPageError: isError && isBackward
-      };
-    }
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags);
-  }
-  function buildMutationSelector() {
-    return (id) => {
-      let mutationId;
-      if (typeof id === "object") {
-        mutationId = getMutationCacheKey(id) ?? skipToken;
-      } else {
-        mutationId = id;
-      }
-      const selectMutationSubstate = (state) => selectApiState(state)?.mutations?.[mutationId] ?? defaultMutationSubState;
-      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;
-      return createSelector2(finalSelectMutationSubstate, withRequestFlags);
-    };
-  }
-  function selectInvalidatedBy(state, tags) {
-    const apiState = state[reducerPath];
-    const toInvalidate = /* @__PURE__ */ new Set();
-    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);
-    for (const tag of finalTags) {
-      const provided = apiState.provided.tags[tag.type];
-      if (!provided) {
-        continue;
-      }
-      let invalidateSubscriptions = (tag.id !== void 0 ? (
-        // id given: invalidate all queries that provide this type & id
-        provided[tag.id]
-      ) : (
-        // no id: invalidate all queries that provide this type
-        Object.values(provided).flat()
-      )) ?? [];
-      for (const invalidate of invalidateSubscriptions) {
-        toInvalidate.add(invalidate);
-      }
-    }
-    return Array.from(toInvalidate.values()).flatMap((queryCacheKey) => {
-      const querySubState = apiState.queries[queryCacheKey];
-      return querySubState ? {
-        queryCacheKey,
-        endpointName: querySubState.endpointName,
-        originalArgs: querySubState.originalArgs
-      } : [];
-    });
-  }
-  function selectCachedArgsForQuery(state, queryName) {
-    return filterMap(Object.values(selectQueries(state)), (entry) => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, (entry) => entry.originalArgs);
-  }
-  function getHasNextPage(options, data, queryArg) {
-    if (!data) return false;
-    return getNextPageParam(options, data, queryArg) != null;
-  }
-  function getHasPreviousPage(options, data, queryArg) {
-    if (!data || !options.getPreviousPageParam) return false;
-    return getPreviousPageParam(options, data, queryArg) != null;
-  }
-}
-
-// src/query/createApi.ts
-var import_toolkit3 = require("@reduxjs/toolkit");
-
-// src/query/defaultSerializeQueryArgs.ts
-var cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;
-var defaultSerializeQueryArgs = ({
-  endpointName,
-  queryArgs
-}) => {
-  let serialized = "";
-  const cached = cache?.get(queryArgs);
-  if (typeof cached === "string") {
-    serialized = cached;
-  } else {
-    const stringified = JSON.stringify(queryArgs, (key, value) => {
-      value = typeof value === "bigint" ? {
-        $bigint: value.toString()
-      } : value;
-      value = (0, import_toolkit.isPlainObject)(value) ? Object.keys(value).sort().reduce((acc, key2) => {
-        acc[key2] = value[key2];
-        return acc;
-      }, {}) : value;
-      return value;
-    });
-    if ((0, import_toolkit.isPlainObject)(queryArgs)) {
-      cache?.set(queryArgs, stringified);
-    }
-    serialized = stringified;
-  }
-  return `${endpointName}(${serialized})`;
-};
-
-// src/query/createApi.ts
-var import_reselect = require("reselect");
-function buildCreateApi(...modules) {
-  return function baseCreateApi(options) {
-    const extractRehydrationInfo = (0, import_reselect.weakMapMemoize)((action) => options.extractRehydrationInfo?.(action, {
-      reducerPath: options.reducerPath ?? "api"
-    }));
-    const optionsWithDefaults = {
-      reducerPath: "api",
-      keepUnusedDataFor: 60,
-      refetchOnMountOrArgChange: false,
-      refetchOnFocus: false,
-      refetchOnReconnect: false,
-      invalidationBehavior: "delayed",
-      ...options,
-      extractRehydrationInfo,
-      serializeQueryArgs(queryArgsApi) {
-        let finalSerializeQueryArgs = defaultSerializeQueryArgs;
-        if ("serializeQueryArgs" in queryArgsApi.endpointDefinition) {
-          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs;
-          finalSerializeQueryArgs = (queryArgsApi2) => {
-            const initialResult = endpointSQA(queryArgsApi2);
-            if (typeof initialResult === "string") {
-              return initialResult;
-            } else {
-              return defaultSerializeQueryArgs({
-                ...queryArgsApi2,
-                queryArgs: initialResult
-              });
-            }
-          };
-        } else if (options.serializeQueryArgs) {
-          finalSerializeQueryArgs = options.serializeQueryArgs;
-        }
-        return finalSerializeQueryArgs(queryArgsApi);
-      },
-      tagTypes: [...options.tagTypes || []]
-    };
-    const context = {
-      endpointDefinitions: {},
-      batch(fn) {
-        fn();
-      },
-      apiUid: (0, import_toolkit.nanoid)(),
-      extractRehydrationInfo,
-      hasRehydrationInfo: (0, import_reselect.weakMapMemoize)((action) => extractRehydrationInfo(action) != null)
-    };
-    const api = {
-      injectEndpoints,
-      enhanceEndpoints({
-        addTagTypes,
-        endpoints
-      }) {
-        if (addTagTypes) {
-          for (const eT of addTagTypes) {
-            if (!optionsWithDefaults.tagTypes.includes(eT)) {
-              ;
-              optionsWithDefaults.tagTypes.push(eT);
-            }
-          }
-        }
-        if (endpoints) {
-          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {
-            if (typeof partialDefinition === "function") {
-              partialDefinition(getEndpointDefinition(context, endpointName));
-            } else {
-              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);
-            }
-          }
-        }
-        return api;
-      }
-    };
-    const initializedModules = modules.map((m) => m.init(api, optionsWithDefaults, context));
-    function injectEndpoints(inject) {
-      const evaluatedEndpoints = inject.endpoints({
-        query: (x) => ({
-          ...x,
-          type: ENDPOINT_QUERY
-        }),
-        mutation: (x) => ({
-          ...x,
-          type: ENDPOINT_MUTATION
-        }),
-        infiniteQuery: (x) => ({
-          ...x,
-          type: ENDPOINT_INFINITEQUERY
-        })
-      });
-      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {
-        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {
-          if (inject.overrideExisting === "throw") {
-            throw new Error(false ? _formatProdErrorMessage2(39) : `called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          } else if (typeof process !== "undefined" && true) {
-            console.error(`called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          }
-          continue;
-        }
-        if (typeof process !== "undefined" && true) {
-          if (isInfiniteQueryDefinition(definition)) {
-            const {
-              infiniteQueryOptions
-            } = definition;
-            const {
-              maxPages,
-              getPreviousPageParam: getPreviousPageParam2
-            } = infiniteQueryOptions;
-            if (typeof maxPages === "number") {
-              if (maxPages < 1) {
-                throw new Error(false ? _formatProdErrorMessage22(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);
-              }
-              if (typeof getPreviousPageParam2 !== "function") {
-                throw new Error(false ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);
-              }
-            }
-          }
-        }
-        context.endpointDefinitions[endpointName] = definition;
-        for (const m of initializedModules) {
-          m.injectEndpoint(endpointName, definition);
-        }
-      }
-      return api;
-    }
-    return api.injectEndpoints({
-      endpoints: options.endpoints
-    });
-  };
-}
-
-// src/query/fakeBaseQuery.ts
-var import_toolkit4 = require("@reduxjs/toolkit");
-var _NEVER = /* @__PURE__ */ Symbol();
-function fakeBaseQuery() {
-  return function() {
-    throw new Error(false ? _formatProdErrorMessage4(33) : "When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.");
-  };
-}
-
-// src/query/tsHelpers.ts
-function assertCast(v) {
-}
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/core/buildMiddleware/batchActions.ts
-var buildBatchedActionsHandler = ({
-  api,
-  queryThunk,
-  internalState,
-  mwApi
-}) => {
-  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;
-  let previousSubscriptions = null;
-  let updateSyncTimer = null;
-  const {
-    updateSubscriptionOptions,
-    unsubscribeQueryResult
-  } = api.internalActions;
-  const actuallyMutateSubscriptions = (currentSubscriptions, action) => {
-    if (updateSubscriptionOptions.match(action)) {
-      const {
-        queryCacheKey,
-        requestId,
-        options
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub?.has(requestId)) {
-        sub.set(requestId, options);
-      }
-      return true;
-    }
-    if (unsubscribeQueryResult.match(action)) {
-      const {
-        queryCacheKey,
-        requestId
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub) {
-        sub.delete(requestId);
-      }
-      return true;
-    }
-    if (api.internalActions.removeQueryResult.match(action)) {
-      currentSubscriptions.delete(action.payload.queryCacheKey);
-      return true;
-    }
-    if (queryThunk.pending.match(action)) {
-      const {
-        meta: {
-          arg,
-          requestId
-        }
-      } = action;
-      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-      if (arg.subscribe) {
-        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});
-      }
-      return true;
-    }
-    let mutated = false;
-    if (queryThunk.rejected.match(action)) {
-      const {
-        meta: {
-          condition,
-          arg,
-          requestId
-        }
-      } = action;
-      if (condition && arg.subscribe) {
-        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});
-        mutated = true;
-      }
-    }
-    return mutated;
-  };
-  const getSubscriptions = () => internalState.currentSubscriptions;
-  const getSubscriptionCount = (queryCacheKey) => {
-    const subscriptions = getSubscriptions();
-    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);
-    return subscriptionsForQueryArg?.size ?? 0;
-  };
-  const isRequestSubscribed = (queryCacheKey, requestId) => {
-    const subscriptions = getSubscriptions();
-    return !!subscriptions?.get(queryCacheKey)?.get(requestId);
-  };
-  const subscriptionSelectors = {
-    getSubscriptions,
-    getSubscriptionCount,
-    isRequestSubscribed
-  };
-  function serializeSubscriptions(currentSubscriptions) {
-    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));
-  }
-  return (action, mwApi2) => {
-    if (!previousSubscriptions) {
-      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-    }
-    if (api.util.resetApiState.match(action)) {
-      previousSubscriptions = {};
-      internalState.currentSubscriptions.clear();
-      updateSyncTimer = null;
-      return [true, false];
-    }
-    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {
-      return [false, subscriptionSelectors];
-    }
-    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);
-    let actionShouldContinue = true;
-    if (false) {
-      return [false, internalState.currentPolls];
-    }
-    if (didMutate) {
-      if (!updateSyncTimer) {
-        updateSyncTimer = setTimeout(() => {
-          const newSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-          const [, patches] = (0, import_immer.produceWithPatches)(previousSubscriptions, () => newSubscriptions);
-          mwApi2.next(api.internalActions.subscriptionsUpdated(patches));
-          previousSubscriptions = newSubscriptions;
-          updateSyncTimer = null;
-        }, 500);
-      }
-      const isSubscriptionSliceAction = typeof action.type == "string" && !!action.type.startsWith(subscriptionsPrefix);
-      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;
-      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;
-    }
-    return [actionShouldContinue, false];
-  };
-};
-
-// src/query/core/buildMiddleware/cacheCollection.ts
-var THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2147483647 / 1e3 - 1;
-var buildCacheCollectionHandler = ({
-  reducerPath,
-  api,
-  queryThunk,
-  context,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectConfig
-  },
-  getRunningQueryThunk,
-  mwApi
-}) => {
-  const {
-    removeQueryResult,
-    unsubscribeQueryResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  const canTriggerUnsubscribe = (0, import_toolkit.isAnyOf)(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);
-  function anySubscriptionsRemainingForKey(queryCacheKey) {
-    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);
-    if (!subscriptions) {
-      return false;
-    }
-    const hasSubscriptions = subscriptions.size > 0;
-    return hasSubscriptions;
-  }
-  const currentRemovalTimeouts = {};
-  function abortAllPromises(promiseMap) {
-    for (const promise of promiseMap.values()) {
-      promise?.abort?.();
-    }
-  }
-  const handler = (action, mwApi2) => {
-    const state = mwApi2.getState();
-    const config = selectConfig(state);
-    if (canTriggerUnsubscribe(action)) {
-      let queryCacheKeys;
-      if (cacheEntriesUpserted.match(action)) {
-        queryCacheKeys = action.payload.map((entry) => entry.queryDescription.queryCacheKey);
-      } else {
-        const {
-          queryCacheKey
-        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;
-        queryCacheKeys = [queryCacheKey];
-      }
-      handleUnsubscribeMany(queryCacheKeys, mwApi2, config);
-    }
-    if (api.util.resetApiState.match(action)) {
-      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {
-        if (timeout) clearTimeout(timeout);
-        delete currentRemovalTimeouts[key];
-      }
-      abortAllPromises(internalState.runningQueries);
-      abortAllPromises(internalState.runningMutations);
-    }
-    if (context.hasRehydrationInfo(action)) {
-      const {
-        queries
-      } = context.extractRehydrationInfo(action);
-      handleUnsubscribeMany(Object.keys(queries), mwApi2, config);
-    }
-  };
-  function handleUnsubscribeMany(cacheKeys, api2, config) {
-    const state = api2.getState();
-    for (const queryCacheKey of cacheKeys) {
-      const entry = selectQueryEntry(state, queryCacheKey);
-      if (entry?.endpointName) {
-        handleUnsubscribe(queryCacheKey, entry.endpointName, api2, config);
-      }
-    }
-  }
-  function handleUnsubscribe(queryCacheKey, endpointName, api2, config) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;
-    if (keepUnusedDataFor === Infinity) {
-      return;
-    }
-    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));
-    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-      const currentTimeout = currentRemovalTimeouts[queryCacheKey];
-      if (currentTimeout) {
-        clearTimeout(currentTimeout);
-      }
-      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {
-        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-          const entry = selectQueryEntry(api2.getState(), queryCacheKey);
-          if (entry?.endpointName) {
-            const runningQuery = api2.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));
-            runningQuery?.abort();
-          }
-          api2.dispatch(removeQueryResult({
-            queryCacheKey
-          }));
-        }
-        delete currentRemovalTimeouts[queryCacheKey];
-      }, finalKeepUnusedDataFor * 1e3);
-    }
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/cacheLifecycle.ts
-var neverResolvedError = new Error("Promise never resolved before cacheEntryRemoved.");
-var buildCacheLifecycleHandler = ({
-  api,
-  reducerPath,
-  context,
-  queryThunk,
-  mutationThunk,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectApiState
-  }
-}) => {
-  const isQueryThunk = (0, import_toolkit.isAsyncThunkAction)(queryThunk);
-  const isMutationThunk = (0, import_toolkit.isAsyncThunkAction)(mutationThunk);
-  const isFulfilledThunk = (0, import_toolkit.isFulfilled)(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const {
-    removeQueryResult,
-    removeMutationResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  function resolveLifecycleEntry(cacheKey, data, meta) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle?.valueResolved) {
-      lifecycle.valueResolved({
-        data,
-        meta
-      });
-      delete lifecycle.valueResolved;
-    }
-  }
-  function removeLifecycleEntry(cacheKey) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle) {
-      delete lifecycleMap[cacheKey];
-      lifecycle.cacheEntryRemoved();
-    }
-  }
-  function getActionMetaFields(action) {
-    const {
-      arg,
-      requestId
-    } = action.meta;
-    const {
-      endpointName,
-      originalArgs
-    } = arg;
-    return [endpointName, originalArgs, requestId];
-  }
-  const handler = (action, mwApi, stateBefore) => {
-    const cacheKey = getCacheKey(action);
-    function checkForNewCacheKey(endpointName, cacheKey2, requestId, originalArgs) {
-      const oldEntry = selectQueryEntry(stateBefore, cacheKey2);
-      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey2);
-      if (!oldEntry && newEntry) {
-        handleNewKey(endpointName, originalArgs, cacheKey2, mwApi, requestId);
-      }
-    }
-    if (queryThunk.pending.match(action)) {
-      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);
-    } else if (cacheEntriesUpserted.match(action)) {
-      for (const {
-        queryDescription,
-        value
-      } of action.payload) {
-        const {
-          endpointName,
-          originalArgs,
-          queryCacheKey
-        } = queryDescription;
-        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);
-        resolveLifecycleEntry(queryCacheKey, value, {});
-      }
-    } else if (mutationThunk.pending.match(action)) {
-      const state = mwApi.getState()[reducerPath].mutations[cacheKey];
-      if (state) {
-        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);
-      }
-    } else if (isFulfilledThunk(action)) {
-      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);
-    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {
-      removeLifecycleEntry(cacheKey);
-    } else if (api.util.resetApiState.match(action)) {
-      for (const cacheKey2 of Object.keys(lifecycleMap)) {
-        removeLifecycleEntry(cacheKey2);
-      }
-    }
-  };
-  function getCacheKey(action) {
-    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;
-    if (isMutationThunk(action)) {
-      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;
-    }
-    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;
-    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);
-    return "";
-  }
-  function handleNewKey(endpointName, originalArgs, queryCacheKey, mwApi, requestId) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;
-    if (!onCacheEntryAdded) return;
-    const lifecycle = {};
-    const cacheEntryRemoved = new Promise((resolve) => {
-      lifecycle.cacheEntryRemoved = resolve;
-    });
-    const cacheDataLoaded = Promise.race([new Promise((resolve) => {
-      lifecycle.valueResolved = resolve;
-    }), cacheEntryRemoved.then(() => {
-      throw neverResolvedError;
-    })]);
-    cacheDataLoaded.catch(() => {
-    });
-    lifecycleMap[queryCacheKey] = lifecycle;
-    const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);
-    const extra = mwApi.dispatch((_, __, extra2) => extra2);
-    const lifecycleApi = {
-      ...mwApi,
-      getCacheEntry: () => selector(mwApi.getState()),
-      requestId,
-      extra,
-      updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-      cacheDataLoaded,
-      cacheEntryRemoved
-    };
-    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi);
-    Promise.resolve(runningHandler).catch((e) => {
-      if (e === neverResolvedError) return;
-      throw e;
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/devMiddleware.ts
-var buildDevCheckHandler = ({
-  api,
-  context: {
-    apiUid
-  },
-  reducerPath
-}) => {
-  return (action, mwApi) => {
-    if (api.util.resetApiState.match(action)) {
-      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-    }
-    if (typeof process !== "undefined" && true) {
-      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === "conflict") {
-        console.warn(`There is a mismatch between slice and middleware for the reducerPath "${reducerPath}".
-You can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === "api" ? `
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ""}`);
-      }
-    }
-  };
-};
-
-// src/query/core/buildMiddleware/invalidationByTags.ts
-var buildInvalidationByTagsHandler = ({
-  reducerPath,
-  context,
-  context: {
-    endpointDefinitions
-  },
-  mutationThunk,
-  queryThunk,
-  api,
-  assertTagType,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const isThunkActionWithTags = (0, import_toolkit.isAnyOf)((0, import_toolkit.isFulfilled)(mutationThunk), (0, import_toolkit.isRejectedWithValue)(mutationThunk));
-  const isQueryEnd = (0, import_toolkit.isAnyOf)((0, import_toolkit.isFulfilled)(queryThunk, mutationThunk), (0, import_toolkit.isRejected)(queryThunk, mutationThunk));
-  let pendingTagInvalidations = [];
-  let pendingRequestCount = 0;
-  const handler = (action, mwApi) => {
-    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {
-      pendingRequestCount++;
-    }
-    if (isQueryEnd(action)) {
-      pendingRequestCount = Math.max(0, pendingRequestCount - 1);
-    }
-    if (isThunkActionWithTags(action)) {
-      invalidateTags(calculateProvidedByThunk(action, "invalidatesTags", endpointDefinitions, assertTagType), mwApi);
-    } else if (isQueryEnd(action)) {
-      invalidateTags([], mwApi);
-    } else if (api.util.invalidateTags.match(action)) {
-      invalidateTags(calculateProvidedBy(action.payload, void 0, void 0, void 0, void 0, assertTagType), mwApi);
-    }
-  };
-  function hasPendingRequests() {
-    return pendingRequestCount > 0;
-  }
-  function invalidateTags(newTags, mwApi) {
-    const rootState = mwApi.getState();
-    const state = rootState[reducerPath];
-    pendingTagInvalidations.push(...newTags);
-    if (state.config.invalidationBehavior === "delayed" && hasPendingRequests()) {
-      return;
-    }
-    const tags = pendingTagInvalidations;
-    pendingTagInvalidations = [];
-    if (tags.length === 0) return;
-    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);
-    context.batch(() => {
-      const valuesArray = Array.from(toInvalidate.values());
-      for (const {
-        queryCacheKey
-      } of valuesArray) {
-        const querySubState = state.queries[queryCacheKey];
-        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);
-        if (querySubState) {
-          if (subscriptionSubState.size === 0) {
-            mwApi.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            mwApi.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/polling.ts
-var buildPollingHandler = ({
-  reducerPath,
-  queryThunk,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    currentPolls,
-    currentSubscriptions
-  } = internalState;
-  const pendingPollingUpdates = /* @__PURE__ */ new Set();
-  let pollingUpdateTimer = null;
-  const handler = (action, mwApi) => {
-    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {
-      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);
-    }
-    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {
-      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);
-    }
-    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {
-      startNextPoll(action.meta.arg, mwApi);
-    }
-    if (api.util.resetApiState.match(action)) {
-      clearPolls();
-      if (pollingUpdateTimer) {
-        clearTimeout(pollingUpdateTimer);
-        pollingUpdateTimer = null;
-      }
-      pendingPollingUpdates.clear();
-    }
-  };
-  function schedulePollingUpdate(queryCacheKey, api2) {
-    pendingPollingUpdates.add(queryCacheKey);
-    if (!pollingUpdateTimer) {
-      pollingUpdateTimer = setTimeout(() => {
-        for (const key of pendingPollingUpdates) {
-          updatePollingInterval({
-            queryCacheKey: key
-          }, api2);
-        }
-        pendingPollingUpdates.clear();
-        pollingUpdateTimer = null;
-      }, 0);
-    }
-  }
-  function startNextPoll({
-    queryCacheKey
-  }, api2) {
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;
-    const {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    } = findLowestPollingInterval(subscriptions);
-    if (!Number.isFinite(lowestPollingInterval)) return;
-    const currentPoll = currentPolls.get(queryCacheKey);
-    if (currentPoll?.timeout) {
-      clearTimeout(currentPoll.timeout);
-      currentPoll.timeout = void 0;
-    }
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    currentPolls.set(queryCacheKey, {
-      nextPollTimestamp,
-      pollingInterval: lowestPollingInterval,
-      timeout: setTimeout(() => {
-        if (state.config.focused || !skipPollingIfUnfocused) {
-          api2.dispatch(refetchQuery(querySubState));
-        }
-        startNextPoll({
-          queryCacheKey
-        }, api2);
-      }, lowestPollingInterval)
-    });
-  }
-  function updatePollingInterval({
-    queryCacheKey
-  }, api2) {
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {
-      return;
-    }
-    const {
-      lowestPollingInterval
-    } = findLowestPollingInterval(subscriptions);
-    if (false) {
-      const updateCounters = currentPolls.pollUpdateCounters ??= {};
-      updateCounters[queryCacheKey] ??= 0;
-      updateCounters[queryCacheKey]++;
-    }
-    if (!Number.isFinite(lowestPollingInterval)) {
-      cleanupPollForKey(queryCacheKey);
-      return;
-    }
-    const currentPoll = currentPolls.get(queryCacheKey);
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {
-      startNextPoll({
-        queryCacheKey
-      }, api2);
-    }
-  }
-  function cleanupPollForKey(key) {
-    const existingPoll = currentPolls.get(key);
-    if (existingPoll?.timeout) {
-      clearTimeout(existingPoll.timeout);
-    }
-    currentPolls.delete(key);
-  }
-  function clearPolls() {
-    for (const key of currentPolls.keys()) {
-      cleanupPollForKey(key);
-    }
-  }
-  function findLowestPollingInterval(subscribers = /* @__PURE__ */ new Map()) {
-    let skipPollingIfUnfocused = false;
-    let lowestPollingInterval = Number.POSITIVE_INFINITY;
-    for (const entry of subscribers.values()) {
-      if (!!entry.pollingInterval) {
-        lowestPollingInterval = Math.min(entry.pollingInterval, lowestPollingInterval);
-        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;
-      }
-    }
-    return {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    };
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/queryLifecycle.ts
-var buildQueryLifecycleHandler = ({
-  api,
-  context,
-  queryThunk,
-  mutationThunk
-}) => {
-  const isPendingThunk = (0, import_toolkit.isPending)(queryThunk, mutationThunk);
-  const isRejectedThunk = (0, import_toolkit.isRejected)(queryThunk, mutationThunk);
-  const isFullfilledThunk = (0, import_toolkit.isFulfilled)(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const handler = (action, mwApi) => {
-    if (isPendingThunk(action)) {
-      const {
-        requestId,
-        arg: {
-          endpointName,
-          originalArgs
-        }
-      } = action.meta;
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const onQueryStarted = endpointDefinition?.onQueryStarted;
-      if (onQueryStarted) {
-        const lifecycle = {};
-        const queryFulfilled = new Promise((resolve, reject) => {
-          lifecycle.resolve = resolve;
-          lifecycle.reject = reject;
-        });
-        queryFulfilled.catch(() => {
-        });
-        lifecycleMap[requestId] = lifecycle;
-        const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);
-        const extra = mwApi.dispatch((_, __, extra2) => extra2);
-        const lifecycleApi = {
-          ...mwApi,
-          getCacheEntry: () => selector(mwApi.getState()),
-          requestId,
-          extra,
-          updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-          queryFulfilled
-        };
-        onQueryStarted(originalArgs, lifecycleApi);
-      }
-    } else if (isFullfilledThunk(action)) {
-      const {
-        requestId,
-        baseQueryMeta
-      } = action.meta;
-      lifecycleMap[requestId]?.resolve({
-        data: action.payload,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    } else if (isRejectedThunk(action)) {
-      const {
-        requestId,
-        rejectedWithValue,
-        baseQueryMeta
-      } = action.meta;
-      lifecycleMap[requestId]?.reject({
-        error: action.payload ?? action.error,
-        isUnhandledError: !rejectedWithValue,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    }
-  };
-  return handler;
-};
-
-// src/query/core/buildMiddleware/windowEventHandling.ts
-var buildWindowEventHandler = ({
-  reducerPath,
-  context,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const handler = (action, mwApi) => {
-    if (onFocus.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnFocus");
-    }
-    if (onOnline.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnReconnect");
-    }
-  };
-  function refetchValidQueries(api2, type) {
-    const state = api2.getState()[reducerPath];
-    const queries = state.queries;
-    const subscriptions = internalState.currentSubscriptions;
-    context.batch(() => {
-      for (const queryCacheKey of subscriptions.keys()) {
-        const querySubState = queries[queryCacheKey];
-        const subscriptionSubState = subscriptions.get(queryCacheKey);
-        if (!subscriptionSubState || !querySubState) continue;
-        const values = [...subscriptionSubState.values()];
-        const shouldRefetch = values.some((sub) => sub[type] === true) || values.every((sub) => sub[type] === void 0) && state.config[type];
-        if (shouldRefetch) {
-          if (subscriptionSubState.size === 0) {
-            api2.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            api2.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/index.ts
-function buildMiddleware(input) {
-  const {
-    reducerPath,
-    queryThunk,
-    api,
-    context,
-    getInternalState
-  } = input;
-  const {
-    apiUid
-  } = context;
-  const actions2 = {
-    invalidateTags: (0, import_toolkit.createAction)(`${reducerPath}/invalidateTags`)
-  };
-  const isThisApiSliceAction = (action) => action.type.startsWith(`${reducerPath}/`);
-  const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];
-  const middleware = (mwApi) => {
-    let initialized2 = false;
-    const internalState = getInternalState(mwApi.dispatch);
-    const builderArgs = {
-      ...input,
-      internalState,
-      refetchQuery,
-      isThisApiSliceAction,
-      mwApi
-    };
-    const handlers = handlerBuilders.map((build) => build(builderArgs));
-    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);
-    const windowEventsHandler = buildWindowEventHandler(builderArgs);
-    return (next) => {
-      return (action) => {
-        if (!(0, import_toolkit.isAction)(action)) {
-          return next(action);
-        }
-        if (!initialized2) {
-          initialized2 = true;
-          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-        }
-        const mwApiWithNext = {
-          ...mwApi,
-          next
-        };
-        const stateBefore = mwApi.getState();
-        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);
-        let res;
-        if (actionShouldContinue) {
-          res = next(action);
-        } else {
-          res = internalProbeResult;
-        }
-        if (!!mwApi.getState()[reducerPath]) {
-          windowEventsHandler(action, mwApiWithNext, stateBefore);
-          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {
-            for (const handler of handlers) {
-              handler(action, mwApiWithNext, stateBefore);
-            }
-          }
-        }
-        return res;
-      };
-    };
-  };
-  return {
-    middleware,
-    actions: actions2
-  };
-  function refetchQuery(querySubState) {
-    return input.api.endpoints[querySubState.endpointName].initiate(querySubState.originalArgs, {
-      subscribe: false,
-      forceRefetch: true
-    });
-  }
-}
-
-// src/query/core/module.ts
-var coreModuleName = /* @__PURE__ */ Symbol();
-var coreModule = ({
-  createSelector: createSelector2 = import_toolkit.createSelector
-} = {}) => ({
-  name: coreModuleName,
-  init(api, {
-    baseQuery,
-    tagTypes,
-    reducerPath,
-    serializeQueryArgs,
-    keepUnusedDataFor,
-    refetchOnMountOrArgChange,
-    refetchOnFocus,
-    refetchOnReconnect,
-    invalidationBehavior,
-    onSchemaFailure,
-    catchSchemaFailure,
-    skipSchemaValidation
-  }, context) {
-    (0, import_immer.enablePatches)();
-    assertCast(serializeQueryArgs);
-    const assertTagType = (tag) => {
-      if (typeof process !== "undefined" && true) {
-        if (!tagTypes.includes(tag.type)) {
-          console.error(`Tag type '${tag.type}' was used, but not specified in \`tagTypes\`!`);
-        }
-      }
-      return tag;
-    };
-    Object.assign(api, {
-      reducerPath,
-      endpoints: {},
-      internalActions: {
-        onOnline,
-        onOffline,
-        onFocus,
-        onFocusLost
-      },
-      util: {}
-    });
-    const selectors = buildSelectors({
-      serializeQueryArgs,
-      reducerPath,
-      createSelector: createSelector2
-    });
-    const {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery,
-      buildQuerySelector,
-      buildInfiniteQuerySelector,
-      buildMutationSelector
-    } = selectors;
-    safeAssign(api.util, {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery
-    });
-    const {
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      buildMatchThunkActions
-    } = buildThunks({
-      baseQuery,
-      reducerPath,
-      context,
-      api,
-      serializeQueryArgs,
-      assertTagType,
-      selectors,
-      onSchemaFailure,
-      catchSchemaFailure,
-      skipSchemaValidation
-    });
-    const {
-      reducer,
-      actions: sliceActions
-    } = buildSlice({
-      context,
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      serializeQueryArgs,
-      reducerPath,
-      assertTagType,
-      config: {
-        refetchOnFocus,
-        refetchOnReconnect,
-        refetchOnMountOrArgChange,
-        keepUnusedDataFor,
-        reducerPath,
-        invalidationBehavior
-      }
-    });
-    safeAssign(api.util, {
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      resetApiState: sliceActions.resetApiState,
-      upsertQueryEntries: sliceActions.cacheEntriesUpserted
-    });
-    safeAssign(api.internalActions, sliceActions);
-    const internalStateMap = /* @__PURE__ */ new WeakMap();
-    const getInternalState = (dispatch) => {
-      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({
-        currentSubscriptions: /* @__PURE__ */ new Map(),
-        currentPolls: /* @__PURE__ */ new Map(),
-        runningQueries: /* @__PURE__ */ new Map(),
-        runningMutations: /* @__PURE__ */ new Map()
-      }));
-      return state;
-    };
-    const {
-      buildInitiateQuery,
-      buildInitiateInfiniteQuery,
-      buildInitiateMutation,
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueriesThunk,
-      getRunningQueryThunk
-    } = buildInitiate({
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      serializeQueryArgs,
-      context,
-      getInternalState
-    });
-    safeAssign(api.util, {
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueryThunk,
-      getRunningQueriesThunk
-    });
-    const {
-      middleware,
-      actions: middlewareActions
-    } = buildMiddleware({
-      reducerPath,
-      context,
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      assertTagType,
-      selectors,
-      getRunningQueryThunk,
-      getInternalState
-    });
-    safeAssign(api.util, middlewareActions);
-    safeAssign(api, {
-      reducer,
-      middleware
-    });
-    return {
-      name: coreModuleName,
-      injectEndpoint(endpointName, definition) {
-        const anyApi = api;
-        const endpoint = anyApi.endpoints[endpointName] ??= {};
-        if (isQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildQuerySelector(endpointName, definition),
-            initiate: buildInitiateQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-        if (isMutationDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildMutationSelector(),
-            initiate: buildInitiateMutation(endpointName)
-          }, buildMatchThunkActions(mutationThunk, endpointName));
-        }
-        if (isInfiniteQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildInfiniteQuerySelector(endpointName, definition),
-            initiate: buildInitiateInfiniteQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-      }
-    };
-  }
-});
-
-// src/query/core/index.ts
-var createApi = /* @__PURE__ */ buildCreateApi(coreModule());
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  NamedSchemaError,
-  QueryStatus,
-  _NEVER,
-  buildCreateApi,
-  copyWithStructuralSharing,
-  coreModule,
-  coreModuleName,
-  createApi,
-  defaultSerializeQueryArgs,
-  fakeBaseQuery,
-  fetchBaseQuery,
-  retry,
-  setupListeners,
-  skipToken
-});
-//# sourceMappingURL=rtk-query.development.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.development.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.development.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/query/index.ts","../../../src/query/core/apiState.ts","../../../src/query/core/rtkImports.ts","../../../src/query/utils/copyWithStructuralSharing.ts","../../../src/query/utils/filterMap.ts","../../../src/query/utils/isAbsoluteUrl.ts","../../../src/query/utils/isDocumentVisible.ts","../../../src/query/utils/isNotNullish.ts","../../../src/query/utils/isOnline.ts","../../../src/query/utils/joinUrls.ts","../../../src/query/utils/getOrInsert.ts","../../../src/query/utils/signals.ts","../../../src/query/fetchBaseQuery.ts","../../../src/query/HandledError.ts","../../../src/query/retry.ts","../../../src/query/core/setupListeners.ts","../../../src/query/endpointDefinitions.ts","../../../src/query/utils/immerImports.ts","../../../src/query/core/buildInitiate.ts","../../../src/tsHelpers.ts","../../../src/query/apiTypes.ts","../../../src/query/standardSchema.ts","../../../src/query/core/buildThunks.ts","../../../src/query/utils/getCurrent.ts","../../../src/query/core/buildSlice.ts","../../../src/query/core/buildSelectors.ts","../../../src/query/createApi.ts","../../../src/query/defaultSerializeQueryArgs.ts","../../../src/query/fakeBaseQuery.ts","../../../src/query/tsHelpers.ts","../../../src/query/core/buildMiddleware/batchActions.ts","../../../src/query/core/buildMiddleware/cacheCollection.ts","../../../src/query/core/buildMiddleware/cacheLifecycle.ts","../../../src/query/core/buildMiddleware/devMiddleware.ts","../../../src/query/core/buildMiddleware/invalidationByTags.ts","../../../src/query/core/buildMiddleware/polling.ts","../../../src/query/core/buildMiddleware/queryLifecycle.ts","../../../src/query/core/buildMiddleware/windowEventHandling.ts","../../../src/query/core/buildMiddleware/index.ts","../../../src/query/core/module.ts","../../../src/query/core/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport type { CombinedState, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './core/apiState';\nexport { QueryStatus } from './core/apiState';\nexport type { Api, ApiContext, Module } from './apiTypes';\nexport type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nexport type { BaseEndpointDefinition, EndpointDefinitions, EndpointDefinition, EndpointBuilder, QueryDefinition, MutationDefinition, MutationExtraOptions, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryExtraOptions, PageParamFrom, TagDescription, QueryArgFrom, QueryExtraOptions, ResultTypeFrom, DefinitionType, DefinitionsFromApi, OverrideResultType, ResultDescription, TagTypesFromApi, UpdateDefinitions, SchemaFailureHandler, SchemaFailureConverter, SchemaFailureInfo, SchemaType } from './endpointDefinitions';\nexport { fetchBaseQuery } from './fetchBaseQuery';\nexport type { FetchBaseQueryArgs, FetchBaseQueryError, FetchBaseQueryMeta, FetchArgs } from './fetchBaseQuery';\nexport { retry } from './retry';\nexport type { RetryOptions } from './retry';\nexport { setupListeners } from './core/setupListeners';\nexport { skipToken } from './core/buildSelectors';\nexport type { QueryResultSelectorResult, MutationResultSelectorResult, SkipToken } from './core/buildSelectors';\nexport type { QueryActionCreatorResult, MutationActionCreatorResult, StartQueryActionCreatorOptions } from './core/buildInitiate';\nexport type { CreateApi, CreateApiOptions } from './createApi';\nexport { buildCreateApi } from './createApi';\nexport { _NEVER, fakeBaseQuery } from './fakeBaseQuery';\nexport { copyWithStructuralSharing } from './utils/copyWithStructuralSharing';\nexport { createApi, coreModule, coreModuleName } from './core/index';\nexport type { InfiniteData, InfiniteQueryActionCreatorResult, InfiniteQueryConfigOptions, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './core/index';\nexport type { ApiEndpointMutation, ApiEndpointQuery, ApiEndpointInfiniteQuery, ApiModules, CoreModule, PrefetchOptions } from './core/module';\nexport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nexport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nexport type { Id as TSHelpersId, NoInfer as TSHelpersNoInfer, Override as TSHelpersOverride } from './tsHelpers';\nexport { NamedSchemaError } from './standardSchema';","import type { SerializedError } from '@reduxjs/toolkit';\nimport type { BaseQueryError } from '../baseQueryTypes';\nimport type { BaseEndpointDefinition, EndpointDefinitions, FullTagDescription, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFromAnyQuery, QueryDefinition, ResultTypeFrom } from '../endpointDefinitions';\nimport type { Id, WithRequiredProp } from '../tsHelpers';\nexport type QueryCacheKey = string & {\n  _type: 'queryCacheKey';\n};\nexport type QuerySubstateIdentifier = {\n  queryCacheKey: QueryCacheKey;\n};\nexport type MutationSubstateIdentifier = {\n  requestId: string;\n  fixedCacheKey?: string;\n} | {\n  requestId?: string;\n  fixedCacheKey: string;\n};\nexport type RefetchConfigOptions = {\n  refetchOnMountOrArgChange: boolean | number;\n  refetchOnReconnect: boolean;\n  refetchOnFocus: boolean;\n};\nexport type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {\n  /**\n   * The initial page parameter to use for the first page fetch.\n   */\n  initialPageParam: PageParam;\n  /**\n   * This function is required to automatically get the next cursor for infinite queries.\n   * The result will also be used to determine the value of `hasNextPage`.\n   */\n  getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * This function can be set to automatically get the previous cursor for infinite queries.\n   * The result will also be used to determine the value of `hasPreviousPage`.\n   */\n  getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * If specified, only keep this many pages in cache at once.\n   * If additional pages are fetched, older pages in the other\n   * direction will be dropped from the cache.\n   */\n  maxPages?: number;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type InfiniteData<DataType, PageParam> = {\n  pages: Array<DataType>;\n  pageParams: Array<PageParam>;\n};\n\n// NOTE: DO NOT import and use this for runtime comparisons internally,\n// except in the RTKQ React package. Use the string versions just below this.\n// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated\n// constants like \"initialized\":\n// https://github.com/evanw/esbuild/releases/tag/v0.14.7\n// We still have to use this in the React package since we don't publicly export\n// the string constants below.\n/**\n * Strings describing the query state at any given time.\n */\nexport enum QueryStatus {\n  uninitialized = 'uninitialized',\n  pending = 'pending',\n  fulfilled = 'fulfilled',\n  rejected = 'rejected',\n}\n\n// Use these string constants for runtime comparisons internally\nexport const STATUS_UNINITIALIZED = QueryStatus.uninitialized;\nexport const STATUS_PENDING = QueryStatus.pending;\nexport const STATUS_FULFILLED = QueryStatus.fulfilled;\nexport const STATUS_REJECTED = QueryStatus.rejected;\nexport type RequestStatusFlags = {\n  status: QueryStatus.uninitialized;\n  isUninitialized: true;\n  isLoading: false;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.pending;\n  isUninitialized: false;\n  isLoading: true;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.fulfilled;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: true;\n  isError: false;\n} | {\n  status: QueryStatus.rejected;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: false;\n  isError: true;\n};\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\n  return {\n    status,\n    isUninitialized: status === STATUS_UNINITIALIZED,\n    isLoading: status === STATUS_PENDING,\n    isSuccess: status === STATUS_FULFILLED,\n    isError: status === STATUS_REJECTED\n  } as any;\n}\n\n/**\n * @public\n */\nexport type SubscriptionOptions = {\n  /**\n   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\n   */\n  pollingInterval?: number;\n  /**\n   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.\n   *\n   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.\n   *\n   *  Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  skipPollingIfUnfocused?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n};\nexport type SubscribersInternal = Map<string, SubscriptionOptions>;\nexport type Subscribers = {\n  [requestId: string]: SubscriptionOptions;\n};\nexport type QueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never }[keyof Definitions];\nexport type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never }[keyof Definitions];\nexport type MutationKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never }[keyof Definitions];\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {\n  /**\n   * The argument originally passed into the hook or `initiate` action call\n   */\n  originalArgs: QueryArgFromAnyQuery<D>;\n  /**\n   * A unique ID associated with the request\n   */\n  requestId: string;\n  /**\n   * The received data from the query\n   */\n  data?: DataType;\n  /**\n   * The received error if applicable\n   */\n  error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  /**\n   * The name of the endpoint associated with the query\n   */\n  endpointName: string;\n  /**\n   * Time that the latest query started\n   */\n  startedTimeStamp: number;\n  /**\n   * Time that the latest query was fulfilled\n   */\n  fulfilledTimeStamp?: number;\n};\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {\n  error: undefined;\n}) | ({\n  status: QueryStatus.pending;\n} & BaseQuerySubState<D, DataType>) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {\n  status: QueryStatus.uninitialized;\n  originalArgs?: undefined;\n  data?: undefined;\n  error?: undefined;\n  requestId?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n}>;\nexport type InfiniteQueryDirection = 'forward' | 'backward';\nexport type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {\n  direction?: InfiniteQueryDirection;\n} : never;\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {\n  requestId: string;\n  data?: ResultTypeFrom<D>;\n  error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  endpointName: string;\n  startedTimeStamp: number;\n  fulfilledTimeStamp?: number;\n};\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {\n  error: undefined;\n}) | (({\n  status: QueryStatus.pending;\n} & BaseMutationSubState<D>) & {\n  data?: undefined;\n}) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {\n  requestId?: undefined;\n  status: QueryStatus.uninitialized;\n  data?: undefined;\n  error?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n};\nexport type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {\n  queries: QueryState<D>;\n  mutations: MutationState<D>;\n  provided: InvalidationState<E>;\n  subscriptions: SubscriptionState;\n  config: ConfigState<ReducerPath>;\n};\nexport type InvalidationState<TagTypes extends string> = {\n  tags: { [_ in TagTypes]: {\n    [id: string]: Array<QueryCacheKey>;\n    [id: number]: Array<QueryCacheKey>;\n  } };\n  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;\n};\nexport type QueryState<D extends EndpointDefinitions> = {\n  [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;\n};\nexport type SubscriptionInternalState = Map<string, SubscribersInternal>;\nexport type SubscriptionState = {\n  [queryCacheKey: string]: Subscribers | undefined;\n};\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\n  reducerPath: ReducerPath;\n  online: boolean;\n  focused: boolean;\n  middlewareRegistered: boolean | 'conflict';\n} & ModifiableConfigState;\nexport type ModifiableConfigState = {\n  keepUnusedDataFor: number;\n  invalidationBehavior: 'delayed' | 'immediately';\n} & RefetchConfigOptions;\nexport type MutationState<D extends EndpointDefinitions> = {\n  [requestId: string]: MutationSubState<D[string]> | undefined;\n};\nexport type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> };","// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.\n// ESBuild does not de-duplicate imports, so this file is used to ensure that each method\n// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.\n\nexport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from '@reduxjs/toolkit';","import { isPlainObject as _iPO } from '../core/rtkImports';\n\n// remove type guard\nconst isPlainObject: (_: any) => boolean = _iPO;\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\n  if (oldObj === newObj || !(isPlainObject(oldObj) && isPlainObject(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n    return newObj;\n  }\n  const newKeys = Object.keys(newObj);\n  const oldKeys = Object.keys(oldObj);\n  let isSameObject = newKeys.length === oldKeys.length;\n  const mergeObj: any = Array.isArray(newObj) ? [] : {};\n  for (const key of newKeys) {\n    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n  }\n  return isSameObject ? oldObj : mergeObj;\n}","// Preserve type guard predicate behavior when passing to mapper\nexport function filterMap<T, U, S extends T = T>(array: readonly T[], predicate: (item: T, index: number) => item is S, mapper: (item: S, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[] {\n  return array.reduce<(U | U[])[]>((acc, item, i) => {\n    if (predicate(item as any, i)) {\n      acc.push(mapper(item as any, i));\n    }\n    return acc;\n  }, []).flat() as U[];\n}","/**\n * If either :// or // is present consider it to be an absolute url\n *\n * @param url string\n */\n\nexport function isAbsoluteUrl(url: string) {\n  return new RegExp(`(^|:)//`).test(url);\n}","/**\n * Assumes true for a non-browser env, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\n */\nexport function isDocumentVisible(): boolean {\n  // `document` may not exist in non-browser envs (like RN)\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  // Match true for visible, prerender, undefined\n  return document.visibilityState !== 'hidden';\n}","export function isNotNullish<T>(v: T | null | undefined): v is T {\n  return v != null;\n}\nexport function filterNullishValues<T>(map?: Map<any, T>) {\n  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[];\n}","/**\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\n */\nexport function isOnline() {\n  // We set the default config value in the store, so we'd need to check for this in a SSR env\n  return typeof navigator === 'undefined' ? true : navigator.onLine === undefined ? true : navigator.onLine;\n}","import { isAbsoluteUrl } from './isAbsoluteUrl';\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '');\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '');\nexport function joinUrls(base: string | undefined, url: string | undefined): string {\n  if (!base) {\n    return url!;\n  }\n  if (!url) {\n    return base;\n  }\n  if (isAbsoluteUrl(url)) {\n    return url;\n  }\n  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : '';\n  base = withoutTrailingSlash(base);\n  url = withoutLeadingSlash(url);\n  return `${base}${delimiter}${url}`;\n}","// Duplicate some of the utils in `/src/utils` to ensure\n// we don't end up dragging in larger chunks of the RTK core\n// into the RTKQ bundle\n\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport const createNewMap = () => new Map();","// AbortSignal.timeout() is currently baseline 2024\nexport const timeoutSignal = (milliseconds: number) => {\n  const abortController = new AbortController();\n  setTimeout(() => {\n    const message = 'signal timed out';\n    const name = 'TimeoutError';\n    abortController.abort(\n    // some environments (React Native, Node) don't have DOMException\n    typeof DOMException !== 'undefined' ? new DOMException(message, name) : Object.assign(new Error(message), {\n      name\n    }));\n  }, milliseconds);\n  return abortController.signal;\n};\n\n// AbortSignal.any() is currently baseline 2024\nexport const anySignal = (...signals: AbortSignal[]) => {\n  // if any are already aborted, return an already aborted signal\n  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);\n\n  // otherwise, create a new signal that aborts when any of the given signals abort\n  const abortController = new AbortController();\n  for (const signal of signals) {\n    signal.addEventListener('abort', () => abortController.abort(signal.reason), {\n      signal: abortController.signal,\n      once: true\n    });\n  }\n  return abortController.signal;\n};","import { joinUrls } from './utils';\nimport { isPlainObject } from './core/rtkImports';\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes';\nimport type { MaybePromise, Override } from './tsHelpers';\nimport { anySignal, timeoutSignal } from './utils/signals';\nexport type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);\ntype CustomRequestInit = Override<RequestInit, {\n  headers?: Headers | string[][] | Record<string, string | undefined> | undefined;\n}>;\nexport interface FetchArgs extends CustomRequestInit {\n  url: string;\n  params?: Record<string, any>;\n  body?: any;\n  responseHandler?: ResponseHandler;\n  validateStatus?: (response: Response, body: any) => boolean;\n  /**\n   * A number in milliseconds that represents that maximum time a request can take before timing out.\n   */\n  timeout?: number;\n}\n\n/**\n * A mini-wrapper that passes arguments straight through to\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\n */\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args);\nconst defaultValidateStatus = (response: Response) => response.status >= 200 && response.status <= 299;\nconst defaultIsJsonContentType = (headers: Headers) => /*applicat*//ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '');\nexport type FetchBaseQueryError = {\n  /**\n   * * `number`:\n   *   HTTP status code\n   */\n  status: number;\n  data: unknown;\n} | {\n  /**\n   * * `\"FETCH_ERROR\"`:\n   *   An error that occurred during execution of `fetch` or the `fetchFn` callback option\n   **/\n  status: 'FETCH_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"PARSING_ERROR\"`:\n   *   An error happened during parsing.\n   *   Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\n   *   or an error occurred while executing a custom `responseHandler`.\n   **/\n  status: 'PARSING_ERROR';\n  originalStatus: number;\n  data: string;\n  error: string;\n} | {\n  /**\n   * * `\"TIMEOUT_ERROR\"`:\n   *   Request timed out\n   **/\n  status: 'TIMEOUT_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"CUSTOM_ERROR\"`:\n   *   A custom error type that you can return from your `queryFn` where another error might not make sense.\n   **/\n  status: 'CUSTOM_ERROR';\n  data?: unknown;\n  error: string;\n};\nfunction stripUndefined(obj: any) {\n  if (!isPlainObject(obj)) {\n    return obj;\n  }\n  const copy: Record<string, any> = {\n    ...obj\n  };\n  for (const [k, v] of Object.entries(copy)) {\n    if (v === undefined) delete copy[k];\n  }\n  return copy;\n}\n\n// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\nconst isJsonifiable = (body: any) => typeof body === 'object' && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === 'function');\nexport type FetchBaseQueryArgs = {\n  baseUrl?: string;\n  prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {\n    arg: string | FetchArgs;\n    extraOptions: unknown;\n  }) => MaybePromise<Headers | void>;\n  fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;\n  paramsSerializer?: (params: Record<string, any>) => string;\n  /**\n   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\n   * in a predicate function for your given api to get the same automatic stringifying behavior\n   * @example\n   * ```ts\n   * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\n   * ```\n   */\n  isJsonContentType?: (headers: Headers) => boolean;\n  /**\n   * Defaults to `application/json`;\n   */\n  jsonContentType?: string;\n\n  /**\n   * Custom replacer function used when calling `JSON.stringify()`;\n   */\n  jsonReplacer?: (this: any, key: string, value: any) => any;\n} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;\nexport type FetchBaseQueryMeta = {\n  request: Request;\n  response?: Response;\n};\n\n/**\n * This is a very small wrapper around fetch that aims to simplify requests.\n *\n * @example\n * ```ts\n * const baseQuery = fetchBaseQuery({\n *   baseUrl: 'https://api.your-really-great-app.com/v1/',\n *   prepareHeaders: (headers, { getState }) => {\n *     const token = (getState() as RootState).auth.token;\n *     // If we have a token set in state, let's assume that we should be passing it.\n *     if (token) {\n *       headers.set('authorization', `Bearer ${token}`);\n *     }\n *     return headers;\n *   },\n * })\n * ```\n *\n * @param {string} baseUrl\n * The base URL for an API service.\n * Typically in the format of https://example.com/\n *\n * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\n * An optional function that can be used to inject headers on requests.\n * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.\n * Useful for setting authentication or headers that need to be set conditionally.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\n *\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\n * An optional function that can be used to stringify querystring parameters.\n *\n * @param {(headers: Headers) => boolean} isJsonContentType\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\n *\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\n *\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\n *\n * @param {number} timeout\n * A number in milliseconds that represents the maximum time a request can take before timing out.\n */\n\nexport function fetchBaseQuery({\n  baseUrl,\n  prepareHeaders = x => x,\n  fetchFn = defaultFetchFn,\n  paramsSerializer,\n  isJsonContentType = defaultIsJsonContentType,\n  jsonContentType = 'application/json',\n  jsonReplacer,\n  timeout: defaultTimeout,\n  responseHandler: globalResponseHandler,\n  validateStatus: globalValidateStatus,\n  ...baseFetchOptions\n}: FetchBaseQueryArgs = {}): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta> {\n  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\n    console.warn('Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.');\n  }\n  return async (arg, api, extraOptions) => {\n    const {\n      getState,\n      extra,\n      endpoint,\n      forced,\n      type\n    } = api;\n    let meta: FetchBaseQueryMeta | undefined;\n    let {\n      url,\n      headers = new Headers(baseFetchOptions.headers),\n      params = undefined,\n      responseHandler = globalResponseHandler ?? 'json' as const,\n      validateStatus = globalValidateStatus ?? defaultValidateStatus,\n      timeout = defaultTimeout,\n      ...rest\n    } = typeof arg == 'string' ? {\n      url: arg\n    } : arg;\n    let config: RequestInit = {\n      ...baseFetchOptions,\n      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,\n      ...rest\n    };\n    headers = new Headers(stripUndefined(headers));\n    config.headers = (await prepareHeaders(headers, {\n      getState,\n      arg,\n      extra,\n      endpoint,\n      forced,\n      type,\n      extraOptions\n    })) || headers;\n    const bodyIsJsonifiable = isJsonifiable(config.body);\n\n    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically\n    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)\n    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== 'string') {\n      config.headers.delete('content-type');\n    }\n    if (!config.headers.has('content-type') && bodyIsJsonifiable) {\n      config.headers.set('content-type', jsonContentType);\n    }\n    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {\n      config.body = JSON.stringify(config.body, jsonReplacer);\n    }\n\n    // Set Accept header based on responseHandler if not already set\n    if (!config.headers.has('accept')) {\n      if (responseHandler === 'json') {\n        config.headers.set('accept', 'application/json');\n      } else if (responseHandler === 'text') {\n        config.headers.set('accept', 'text/plain, text/html, */*');\n      }\n      // For 'content-type' responseHandler, don't set Accept (let server decide)\n    }\n    if (params) {\n      const divider = ~url.indexOf('?') ? '&' : '?';\n      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n      url += divider + query;\n    }\n    url = joinUrls(baseUrl, url);\n    const request = new Request(url, config);\n    const requestClone = new Request(url, config);\n    meta = {\n      request: requestClone\n    };\n    let response;\n    try {\n      response = await fetchFn(request);\n    } catch (e) {\n      return {\n        error: {\n          status: (e instanceof Error || typeof DOMException !== 'undefined' && e instanceof DOMException) && e.name === 'TimeoutError' ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\n          error: String(e)\n        },\n        meta\n      };\n    }\n    const responseClone = response.clone();\n    meta.response = responseClone;\n    let resultData: any;\n    let responseText: string = '';\n    try {\n      let handleResponseError;\n      await Promise.all([handleResponse(response, responseHandler).then(r => resultData = r, e => handleResponseError = e),\n      // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n      // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n      responseClone.text().then(r => responseText = r, () => {})]);\n      if (handleResponseError) throw handleResponseError;\n    } catch (e) {\n      return {\n        error: {\n          status: 'PARSING_ERROR',\n          originalStatus: response.status,\n          data: responseText,\n          error: String(e)\n        },\n        meta\n      };\n    }\n    return validateStatus(response, resultData) ? {\n      data: resultData,\n      meta\n    } : {\n      error: {\n        status: response.status,\n        data: resultData\n      },\n      meta\n    };\n  };\n  async function handleResponse(response: Response, responseHandler: ResponseHandler) {\n    if (typeof responseHandler === 'function') {\n      return responseHandler(response);\n    }\n    if (responseHandler === 'content-type') {\n      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text';\n    }\n    if (responseHandler === 'json') {\n      const text = await response.text();\n      return text.length ? JSON.parse(text) : null;\n    }\n    return response.text();\n  }\n}","export class HandledError {\n  constructor(public readonly value: any, public readonly meta: any = undefined) {}\n}","import type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta } from './baseQueryTypes';\nimport type { FetchBaseQueryError } from './fetchBaseQuery';\nimport { HandledError } from './HandledError';\n\n/**\n * Exponential backoff based on the attempt number.\n *\n * @remarks\n * 1. 600ms * random(0.4, 1.4)\n * 2. 1200ms * random(0.4, 1.4)\n * 3. 2400ms * random(0.4, 1.4)\n * 4. 4800ms * random(0.4, 1.4)\n * 5. 9600ms * random(0.4, 1.4)\n *\n * @param attempt - Current attempt\n * @param maxRetries - Maximum number of retries\n */\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5, signal?: AbortSignal) {\n  const attempts = Math.min(attempt, maxRetries);\n  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)); // Force a positive int in the case we make this an option\n\n  await new Promise<void>((resolve, reject) => {\n    const timeoutId = setTimeout(() => resolve(), timeout);\n\n    // If signal is provided and gets aborted, clear timeout and reject\n    if (signal) {\n      const abortHandler = () => {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      };\n\n      // Check if already aborted\n      if (signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      } else {\n        signal.addEventListener('abort', abortHandler, {\n          once: true\n        });\n      }\n    }\n  });\n}\ntype RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {\n  attempt: number;\n  baseQueryApi: BaseQueryApi;\n  extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;\n}) => boolean;\nexport type RetryOptions = {\n  /**\n   * Function used to determine delay between retries\n   */\n  backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;\n} & ({\n  /**\n   * How many times the query will be retried (default: 5)\n   */\n  maxRetries?: number;\n  retryCondition?: undefined;\n} | {\n  /**\n   * Callback to determine if a retry should be attempted.\n   * Return `true` for another retry and `false` to quit trying prematurely.\n   */\n  retryCondition?: RetryConditionFunction;\n  maxRetries?: undefined;\n});\nfunction fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never {\n  throw Object.assign(new HandledError({\n    error,\n    meta\n  }), {\n    throwImmediately: true\n  });\n}\n\n/**\n * Checks if the abort signal is aborted and fails immediately if so.\n * Used to exit retry loops cleanly when a request is aborted.\n */\nfunction failIfAborted(signal: AbortSignal): void {\n  if (signal.aborted) {\n    fail({\n      status: 'CUSTOM_ERROR',\n      error: 'Aborted'\n    });\n  }\n}\nconst EMPTY_OPTIONS = {};\nconst retryWithBackoff: BaseQueryEnhancer<unknown, RetryOptions, RetryOptions | void> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n  // We need to figure out `maxRetries` before we define `defaultRetryCondition.\n  // This is probably goofy, but ought to work.\n  // Put our defaults in one array, filter out undefineds, grab the last value.\n  const possibleMaxRetries: number[] = [5, (defaultOptions as any || EMPTY_OPTIONS).maxRetries, (extraOptions as any || EMPTY_OPTIONS).maxRetries].filter(x => x !== undefined);\n  const [maxRetries] = possibleMaxRetries.slice(-1);\n  const defaultRetryCondition: RetryConditionFunction = (_, __, {\n    attempt\n  }) => attempt <= maxRetries;\n  const options: {\n    maxRetries: number;\n    backoff: typeof defaultBackoff;\n    retryCondition: typeof defaultRetryCondition;\n  } = {\n    maxRetries,\n    backoff: defaultBackoff,\n    retryCondition: defaultRetryCondition,\n    ...defaultOptions,\n    ...extraOptions\n  };\n  let retry = 0;\n  while (true) {\n    // Check if aborted before each attempt\n    failIfAborted(api.signal);\n    try {\n      const result = await baseQuery(args, api, extraOptions);\n      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\n      if (result.error) {\n        throw new HandledError(result);\n      }\n      return result;\n    } catch (e: any) {\n      retry++;\n      if (e.throwImmediately) {\n        if (e instanceof HandledError) {\n          return e.value;\n        }\n\n        // We don't know what this is, so we have to rethrow it\n        throw e;\n      }\n      if (e instanceof HandledError) {\n        if (!options.retryCondition(e.value.error as FetchBaseQueryError, args, {\n          attempt: retry,\n          baseQueryApi: api,\n          extraOptions\n        })) {\n          return e.value; // Max retries for expected error\n        }\n      } else {\n        // For unexpected errors, respect maxRetries\n        if (retry > options.maxRetries) {\n          // Return the error as a proper error response instead of throwing\n          return {\n            error: e\n          };\n        }\n      }\n\n      // Check if aborted before backoff\n      failIfAborted(api.signal);\n      try {\n        await options.backoff(retry, options.maxRetries, api.signal);\n      } catch (backoffError) {\n        // If backoff was aborted, exit the retry loop\n        failIfAborted(api.signal);\n        // Otherwise, rethrow the backoff error\n        throw backoffError;\n      }\n    }\n  }\n};\n\n/**\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\n *\n * @example\n *\n * ```ts\n * // codeblock-meta title=\"Retry every request 5 times by default\"\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\n * export const api = createApi({\n *   baseQuery: staggeredBaseQuery,\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => ({ url: 'posts' }),\n *     }),\n *     getPost: build.query<PostsResponse, string>({\n *       query: (id) => ({ url: `post/${id}` }),\n *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\n *     }),\n *   }),\n * });\n *\n * export const { useGetPostsQuery, useGetPostQuery } = api;\n * ```\n */\nexport const retry = /* @__PURE__ */Object.assign(retryWithBackoff, {\n  fail\n});","import type { ThunkDispatch, ActionCreatorWithoutPayload // Workaround for API-Extractor\n} from '@reduxjs/toolkit';\nimport { createAction } from './rtkImports';\nexport const INTERNAL_PREFIX = '__rtkq/';\nconst ONLINE = 'online';\nconst OFFLINE = 'offline';\nconst FOCUS = 'focus';\nconst FOCUSED = 'focused';\nconst VISIBILITYCHANGE = 'visibilitychange';\nexport const onFocus = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${FOCUSED}`);\nexport const onFocusLost = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);\nexport const onOnline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${ONLINE}`);\nexport const onOffline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${OFFLINE}`);\nconst actions = {\n  onFocus,\n  onFocusLost,\n  onOnline,\n  onOffline\n};\nlet initialized = false;\n\n/**\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\n * It requires the dispatch method from your store.\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\n * but you have the option of providing a callback for more granular control.\n *\n * @example\n * ```ts\n * setupListeners(store.dispatch)\n * ```\n *\n * @param dispatch - The dispatch method from your store\n * @param customHandler - An optional callback for more granular control over listener behavior\n * @returns Return value of the handler.\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\n */\nexport function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n}) => () => void) {\n  function defaultHandler() {\n    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map(action => () => dispatch(action()));\n    const handleVisibilityChange = () => {\n      if (window.document.visibilityState === 'visible') {\n        handleFocus();\n      } else {\n        handleFocusLost();\n      }\n    };\n    let unsubscribe = () => {\n      initialized = false;\n    };\n    if (!initialized) {\n      if (typeof window !== 'undefined' && window.addEventListener) {\n        const handlers = {\n          [FOCUS]: handleFocus,\n          [VISIBILITYCHANGE]: handleVisibilityChange,\n          [ONLINE]: handleOnline,\n          [OFFLINE]: handleOffline\n        };\n        function updateListeners(add: boolean) {\n          Object.entries(handlers).forEach(([event, handler]) => {\n            if (add) {\n              window.addEventListener(event, handler, false);\n            } else {\n              window.removeEventListener(event, handler);\n            }\n          });\n        }\n        // Handle focus events\n        updateListeners(true);\n        initialized = true;\n        unsubscribe = () => {\n          updateListeners(false);\n          initialized = false;\n        };\n      }\n    }\n    return unsubscribe;\n  }\n  return customHandler ? customHandler(dispatch, actions) : defaultHandler();\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from 'immer';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AsyncThunkAction, SafePromise, SerializedError, ThunkAction, UnknownAction } from '@reduxjs/toolkit';\nimport type { Dispatch } from 'redux';\nimport { asSafePromise } from '../../tsHelpers';\nimport { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes';\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport { ENDPOINT_QUERY, isQueryDefinition, type EndpointDefinition, type EndpointDefinitions, type InfiniteQueryArgFrom, type InfiniteQueryDefinition, type MutationDefinition, type PageParamFrom, type QueryArgFrom, type QueryDefinition, type ResultTypeFrom } from '../endpointDefinitions';\nimport { filterNullishValues } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQueryDirection, SubscriptionOptions } from './apiState';\nimport type { InfiniteQueryResultSelectorResult, QueryResultSelectorResult } from './buildSelectors';\nimport type { InfiniteQueryThunk, InfiniteQueryThunkArg, MutationThunk, QueryThunk, QueryThunkArg, ThunkApiMetaConfig } from './buildThunks';\nimport type { ApiEndpointQuery } from './module';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nexport type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  initiate: StartQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  initiate: StartInfiniteQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  initiate: StartMutationActionCreator<Definition>;\n};\nexport const forceQueryFnSymbol = Symbol('forceQueryFn');\nexport const isUpsertQuery = (arg: QueryThunkArg) => typeof arg[forceQueryFnSymbol] === 'function';\nexport type StartQueryActionCreatorOptions = {\n  subscribe?: boolean;\n  forceRefetch?: boolean | number;\n  subscriptionOptions?: SubscriptionOptions;\n  [forceQueryFnSymbol]?: () => QueryReturnValue;\n};\ntype RefetchOptions = {\n  refetchCachedPages?: boolean;\n};\nexport type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {\n  direction?: InfiniteQueryDirection;\n  param?: unknown;\n} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;\ntype AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (arg: any, options?: StartQueryActionCreatorOptions) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>;\ntype StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;\nexport type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;\ntype QueryActionCreatorFields = {\n  requestId: string;\n  subscriptionOptions: SubscriptionOptions | undefined;\n  abort(): void;\n  unsubscribe(): void;\n  updateSubscriptionOptions(options: SubscriptionOptions): void;\n  queryCacheKey: string;\n};\ntype AnyActionCreatorResult = SafePromise<any> & QueryActionCreatorFields & {\n  arg: any;\n  unwrap(): Promise<any>;\n  refetch(options?: RefetchOptions): AnyActionCreatorResult;\n};\nexport type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: QueryArgFrom<D>;\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  refetch(): QueryActionCreatorResult<D>;\n};\nexport type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: InfiniteQueryArgFrom<D>;\n  unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;\n  refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;\n};\ntype StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {\n  /**\n   * If this mutation should be tracked in the store.\n   * If you just want to manually trigger this mutation using `dispatch` and don't care about the\n   * result, state & potential errors being held in store, you can set this to false.\n   * (defaults to `true`)\n   */\n  track?: boolean;\n  fixedCacheKey?: string;\n}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;\nexport type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{\n  data: ResultTypeFrom<D>;\n  error?: undefined;\n} | {\n  data?: undefined;\n  error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;\n}> & {\n  /** @internal */\n  arg: {\n    /**\n     * The name of the given endpoint for the mutation\n     */\n    endpointName: string;\n    /**\n     * The original arguments supplied to the mutation call\n     */\n    originalArgs: QueryArgFrom<D>;\n    /**\n     * Whether the mutation is being tracked in the store.\n     */\n    track?: boolean;\n    fixedCacheKey?: string;\n  };\n  /**\n   * A unique string generated for the request sequence\n   */\n  requestId: string;\n\n  /**\n   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\n   * that was fired off from reaching the server, but only to assist in handling the response.\n   *\n   * Calling `abort()` prior to the promise resolving will force it to reach the error state with\n   * the serialized error:\n   * `{ name: 'AbortError', message: 'Aborted' }`\n   *\n   * @example\n   * ```ts\n   * const [updateUser] = useUpdateUserMutation();\n   *\n   * useEffect(() => {\n   *   const promise = updateUser(id);\n   *   promise\n   *     .unwrap()\n   *     .catch((err) => {\n   *       if (err.name === 'AbortError') return;\n   *       // else handle the unexpected error\n   *     })\n   *\n   *   return () => {\n   *     promise.abort();\n   *   }\n   * }, [id, updateUser])\n   * ```\n   */\n  abort(): void;\n  /**\n   * Unwraps a mutation call to provide the raw response/error.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap\"\n   * addPost({ id: 1, name: 'Example' })\n   *   .unwrap()\n   *   .then((payload) => console.log('fulfilled', payload))\n   *   .catch((error) => console.error('rejected', error));\n   * ```\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  /**\n   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\n   The value returned by the hook will reset to `isUninitialized` afterwards.\n   */\n  reset(): void;\n};\nexport function buildInitiate({\n  serializeQueryArgs,\n  queryThunk,\n  infiniteQueryThunk,\n  mutationThunk,\n  api,\n  context,\n  getInternalState\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  api: Api<any, EndpointDefinitions, any, any>;\n  context: ApiContext<EndpointDefinitions>;\n  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState;\n}) {\n  const getRunningQueries = (dispatch: Dispatch) => getInternalState(dispatch)?.runningQueries;\n  const getRunningMutations = (dispatch: Dispatch) => getInternalState(dispatch)?.runningMutations;\n  const {\n    unsubscribeQueryResult,\n    removeMutationResult,\n    updateSubscriptionOptions\n  } = api.internalActions;\n  return {\n    buildInitiateQuery,\n    buildInitiateInfiniteQuery,\n    buildInitiateMutation,\n    getRunningQueryThunk,\n    getRunningMutationThunk,\n    getRunningQueriesThunk,\n    getRunningMutationsThunk\n  };\n  function getRunningQueryThunk(endpointName: string, queryArgs: any) {\n    return (dispatch: Dispatch) => {\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      return getRunningQueries(dispatch)?.get(queryCacheKey) as QueryActionCreatorResult<never> | InfiniteQueryActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningMutationThunk(\n  /**\n   * this is only here to allow TS to infer the result type by input value\n   * we could use it to validate the result, but it's probably not necessary\n   */\n  _endpointName: string, fixedCacheKeyOrRequestId: string) {\n    return (dispatch: Dispatch) => {\n      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as MutationActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningQueriesThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningQueries(dispatch));\n  }\n  function getRunningMutationsThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningMutations(dispatch));\n  }\n  function middlewareWarning(dispatch: Dispatch) {\n    if (process.env.NODE_ENV !== 'production') {\n      if ((middlewareWarning as any).triggered) return;\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      (middlewareWarning as any).triggered = true;\n\n      // The RTKQ middleware should return the internal state object,\n      // but it should _not_ be the action object.\n      if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n        // Otherwise, must not have been added\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n      }\n    }\n  }\n  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any>) {\n    const queryAction: AnyQueryActionCreator<any> = (arg, {\n      subscribe = true,\n      forceRefetch,\n      subscriptionOptions,\n      [forceQueryFnSymbol]: forceQueryFn,\n      ...rest\n    } = {}) => (dispatch, getState) => {\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs: arg,\n        endpointDefinition,\n        endpointName\n      });\n      let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>;\n      const commonThunkArgs = {\n        ...rest,\n        type: ENDPOINT_QUERY as 'query',\n        subscribe,\n        forceRefetch: forceRefetch,\n        subscriptionOptions,\n        endpointName,\n        originalArgs: arg,\n        queryCacheKey,\n        [forceQueryFnSymbol]: forceQueryFn\n      };\n      if (isQueryDefinition(endpointDefinition)) {\n        thunk = queryThunk(commonThunkArgs);\n      } else {\n        const {\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        } = rest as Pick<InfiniteQueryThunkArg<any>, 'direction' | 'initialPageParam' | 'refetchCachedPages'>;\n        thunk = infiniteQueryThunk({\n          ...(commonThunkArgs as InfiniteQueryThunkArg<any>),\n          // Supply these even if undefined. This helps with a field existence\n          // check over in `buildSlice.ts`\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        });\n      }\n      const selector = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg);\n      const thunkResult = dispatch(thunk);\n      const stateAfter = selector(getState());\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort\n      } = thunkResult;\n      const skippedSynchronously = stateAfter.requestId !== requestId;\n      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);\n      const selectFromState = () => selector(getState());\n      const statePromise: AnyActionCreatorResult = Object.assign((forceQueryFn ?\n      // a query has been forced (upsertQueryData)\n      // -> we want to resolve it once data has been written with the data that will be written\n      thunkResult.then(selectFromState) : skippedSynchronously && !runningQuery ?\n      // a query has been skipped due to a condition and we do not have any currently running query\n      // -> we want to resolve it immediately with the current data\n      Promise.resolve(stateAfter) :\n      // query just started or one is already in flight\n      // -> wait for the running query, then resolve with data from after that\n      Promise.all([runningQuery, thunkResult]).then(selectFromState)) as SafePromise<any>, {\n        arg,\n        requestId,\n        subscriptionOptions,\n        queryCacheKey,\n        abort,\n        async unwrap() {\n          const result = await statePromise;\n          if (result.isError) {\n            throw result.error;\n          }\n          return result.data;\n        },\n        refetch: (options?: RefetchOptions) => dispatch(queryAction(arg, {\n          subscribe: false,\n          forceRefetch: true,\n          ...options\n        })),\n        unsubscribe() {\n          if (subscribe) dispatch(unsubscribeQueryResult({\n            queryCacheKey,\n            requestId\n          }));\n        },\n        updateSubscriptionOptions(options: SubscriptionOptions) {\n          statePromise.subscriptionOptions = options;\n          dispatch(updateSubscriptionOptions({\n            endpointName,\n            requestId,\n            queryCacheKey,\n            options\n          }));\n        }\n      });\n      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n        const runningQueries = getRunningQueries(dispatch)!;\n        runningQueries.set(queryCacheKey, statePromise);\n        statePromise.then(() => {\n          runningQueries.delete(queryCacheKey);\n        });\n      }\n      return statePromise;\n    };\n    return queryAction;\n  }\n  function buildInitiateQuery(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return queryAction;\n  }\n  function buildInitiateInfiniteQuery(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return infiniteQueryAction;\n  }\n  function buildInitiateMutation(endpointName: string): StartMutationActionCreator<any> {\n    return (arg, {\n      track = true,\n      fixedCacheKey\n    } = {}) => (dispatch, getState) => {\n      const thunk = mutationThunk({\n        type: 'mutation',\n        endpointName,\n        originalArgs: arg,\n        track,\n        fixedCacheKey\n      });\n      const thunkResult = dispatch(thunk);\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort,\n        unwrap\n      } = thunkResult;\n      const returnValuePromise = asSafePromise(thunkResult.unwrap().then(data => ({\n        data\n      })), error => ({\n        error\n      }));\n      const reset = () => {\n        dispatch(removeMutationResult({\n          requestId,\n          fixedCacheKey\n        }));\n      };\n      const ret = Object.assign(returnValuePromise, {\n        arg: thunkResult.arg,\n        requestId,\n        abort,\n        unwrap,\n        reset\n      });\n      const runningMutations = getRunningMutations(dispatch)!;\n      runningMutations.set(requestId, ret);\n      ret.then(() => {\n        runningMutations.delete(requestId);\n      });\n      if (fixedCacheKey) {\n        runningMutations.set(fixedCacheKey, ret);\n        ret.then(() => {\n          if (runningMutations.get(fixedCacheKey) === ret) {\n            runningMutations.delete(fixedCacheKey);\n          }\n        });\n      }\n      return ret;\n    };\n  }\n}","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import type { UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn } from './baseQueryTypes';\nimport type { CombinedState, CoreModule, QueryKeys } from './core';\nimport type { ApiModules } from './core/module';\nimport type { CreateApiOptions } from './createApi';\nimport type { EndpointBuilder, EndpointDefinition, EndpointDefinitions, UpdateDefinitions } from './endpointDefinitions';\nimport type { NoInfer, UnionToIntersection, WithRequiredProp } from './tsHelpers';\nexport type ModuleName = keyof ApiModules<any, any, any, any>;\nexport type Module<Name extends ModuleName> = {\n  name: Name;\n  init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {\n    injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;\n  };\n};\nexport interface ApiContext<Definitions extends EndpointDefinitions> {\n  apiUid: string;\n  endpointDefinitions: Definitions;\n  batch(cb: () => void): void;\n  extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;\n  hasRehydrationInfo: (action: UnknownAction) => boolean;\n}\nexport const getEndpointDefinition = <Definitions extends EndpointDefinitions, EndpointName extends keyof Definitions>(context: ApiContext<Definitions>, endpointName: EndpointName) => context.endpointDefinitions[endpointName];\nexport type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {\n  /**\n   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.\n   */\n  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {\n    endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;\n    /**\n     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.\n     *\n     * If set to `true`, will override existing endpoints with the new definition.\n     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.\n     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.\n     */\n    overrideExisting?: boolean | 'throw';\n  }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;\n  /**\n   *A function to enhance a generated API with additional information. Useful with code-generation.\n   */\n  enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {\n    addTagTypes?: readonly NewTagTypes[];\n    endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? { [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void) } : never;\n  }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;\n};","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { SchemaError } from '@standard-schema/utils';\nimport type { SchemaType } from './endpointDefinitions';\nexport class NamedSchemaError extends SchemaError {\n  constructor(issues: readonly StandardSchemaV1.Issue[], public readonly value: any, public readonly schemaName: `${SchemaType}Schema`, public readonly _bqMeta: any) {\n    super(issues);\n  }\n}\nexport const shouldSkip = (skipSchemaValidation: boolean | SchemaType[] | undefined, schemaName: SchemaType) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;\nexport async function parseWithSchema<Schema extends StandardSchemaV1>(schema: Schema, data: unknown, schemaName: `${SchemaType}Schema`, bqMeta: any): Promise<StandardSchemaV1.InferOutput<Schema>> {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);\n  }\n  return result.value;\n}","import type { AsyncThunk, AsyncThunkPayloadCreator, Draft, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Patch } from 'immer';\nimport { isDraftable, produceWithPatches } from '../utils/immerImports';\nimport type { Api, ApiContext } from '../apiTypes';\nimport type { BaseQueryError, BaseQueryFn, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryCombinedArg, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFrom, QueryDefinition, ResultDescription, ResultTypeFrom, SchemaFailureConverter, SchemaFailureHandler, SchemaFailureInfo, SchemaType } from '../endpointDefinitions';\nimport { calculateProvidedBy, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { HandledError } from '../HandledError';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport type { RootState, QueryKeys, QuerySubstateIdentifier, InfiniteData, InfiniteQueryConfigOptions, QueryCacheKey, InfiniteQueryDirection, InfiniteQueryKeys } from './apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from './apiState';\nimport type { InfiniteQueryActionCreatorResult, QueryActionCreatorResult, StartInfiniteQueryActionCreatorOptions, StartQueryActionCreatorOptions } from './buildInitiate';\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate';\nimport type { AllSelectors } from './buildSelectors';\nimport type { ApiEndpointQuery, PrefetchOptions } from './module';\nimport { createAsyncThunk, isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, SHOULD_AUTOBATCH } from './rtkImports';\nimport { parseWithSchema, NamedSchemaError, shouldSkip } from '../standardSchema';\nexport type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;\nexport type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;\nexport type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;\ntype EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : never;\nexport type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;\nexport type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;\nexport type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;\nexport type Matcher<M> = (value: any) => value is M;\nexport interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {\n  matchPending: Matcher<PendingAction<Thunk, Definition>>;\n  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;\n  matchRejected: Matcher<RejectedAction<Thunk, Definition>>;\n}\nexport type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {\n  type: 'query';\n  originalArgs: unknown;\n  endpointName: string;\n};\nexport type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {\n  type: `query`;\n  originalArgs: unknown;\n  endpointName: string;\n  param: unknown;\n  direction?: InfiniteQueryDirection;\n  refetchCachedPages?: boolean;\n};\ntype MutationThunkArg = {\n  type: 'mutation';\n  originalArgs: unknown;\n  endpointName: string;\n  track?: boolean;\n  fixedCacheKey?: string;\n};\nexport type ThunkResult = unknown;\nexport type ThunkApiMetaConfig = {\n  pendingMeta: {\n    startedTimeStamp: number;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  fulfilledMeta: {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  rejectedMeta: {\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n};\nexport type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;\nexport type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;\nexport type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\n  return baseQueryReturnValue;\n}\nexport type MaybeDrafted<T> = T | Draft<T>;\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;\nexport type UpsertRecipe<T> = (data: MaybeDrafted<T> | undefined) => void | MaybeDrafted<T>;\nexport type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;\nexport type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;\nexport type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;\nexport type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;\nexport type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;\nexport type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;\nexport type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;\n\n/**\n * An object returned from dispatching a `api.util.updateQueryData` call.\n */\nexport type PatchCollection = {\n  /**\n   * An `immer` Patch describing the cache update.\n   */\n  patches: Patch[];\n  /**\n   * An `immer` Patch to revert the cache update.\n   */\n  inversePatches: Patch[];\n  /**\n   * A function that will undo the cache update.\n   */\n  undo: () => void;\n};\ntype TransformCallback = (baseQueryReturnValue: unknown, meta: unknown, arg: unknown) => any;\nexport const addShouldAutoBatch = <T extends Record<string, any>,>(arg: T = {} as T): T & {\n  [SHOULD_AUTOBATCH]: true;\n} => {\n  return {\n    ...arg,\n    [SHOULD_AUTOBATCH]: true\n  };\n};\nexport function buildThunks<BaseQuery extends BaseQueryFn, ReducerPath extends string, Definitions extends EndpointDefinitions>({\n  reducerPath,\n  baseQuery,\n  context: {\n    endpointDefinitions\n  },\n  serializeQueryArgs,\n  api,\n  assertTagType,\n  selectors,\n  onSchemaFailure,\n  catchSchemaFailure: globalCatchSchemaFailure,\n  skipSchemaValidation: globalSkipSchemaValidation\n}: {\n  baseQuery: BaseQuery;\n  reducerPath: ReducerPath;\n  context: ApiContext<Definitions>;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  api: Api<BaseQuery, Definitions, ReducerPath, any>;\n  assertTagType: AssertTagTypes;\n  selectors: AllSelectors;\n  onSchemaFailure: SchemaFailureHandler | undefined;\n  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined;\n  skipSchemaValidation: boolean | SchemaType[] | undefined;\n}) {\n  type State = RootState<any, string, ReducerPath>;\n  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n    const endpointDefinition = endpointDefinitions[endpointName];\n    const queryCacheKey = serializeQueryArgs({\n      queryArgs: arg,\n      endpointDefinition,\n      endpointName\n    });\n    dispatch(api.internalActions.queryResultPatched({\n      queryCacheKey,\n      patches\n    }));\n    if (!updateProvided) {\n      return;\n    }\n    const newValue = api.endpoints[endpointName].select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, undefined, arg, {}, assertTagType);\n    dispatch(api.internalActions.updateProvidedBy([{\n      queryCacheKey,\n      providedTags\n    }]));\n  };\n  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [item, ...items];\n    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n  }\n  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [...items, item];\n    return max && newItems.length > max ? newItems.slice(1) : newItems;\n  }\n  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n    const endpointDefinition = api.endpoints[endpointName];\n    const currentState = endpointDefinition.select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const ret: PatchCollection = {\n      patches: [],\n      inversePatches: [],\n      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n    };\n    if (currentState.status === STATUS_UNINITIALIZED) {\n      return ret;\n    }\n    let newValue;\n    if ('data' in currentState) {\n      if (isDraftable(currentState.data)) {\n        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n        ret.patches.push(...patches);\n        ret.inversePatches.push(...inversePatches);\n        newValue = value;\n      } else {\n        newValue = updateRecipe(currentState.data);\n        ret.patches.push({\n          op: 'replace',\n          path: [],\n          value: newValue\n        });\n        ret.inversePatches.push({\n          op: 'replace',\n          path: [],\n          value: currentState.data\n        });\n      }\n    }\n    if (ret.patches.length === 0) {\n      return ret;\n    }\n    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n    return ret;\n  };\n  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> = (endpointName, arg, value) => dispatch => {\n    type EndpointName = typeof endpointName;\n    const res = dispatch((api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>).initiate(arg, {\n      subscribe: false,\n      forceRefetch: true,\n      [forceQueryFnSymbol]: () => ({\n        data: value\n      })\n    })) as UpsertThunkResult<Definitions, EndpointName>;\n    return res;\n  };\n  const getTransformCallbackForEndpoint = (endpointDefinition: EndpointDefinition<any, any, any, any>, transformFieldName: 'transformResponse' | 'transformErrorResponse'): TransformCallback => {\n    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName]! as TransformCallback : defaultTransformResponse;\n  };\n\n  // The generic async payload function for all of our thunks\n  const executeEndpoint: AsyncThunkPayloadCreator<ThunkResult, QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }> = async (arg, {\n    signal,\n    abort,\n    rejectWithValue,\n    fulfillWithValue,\n    dispatch,\n    getState,\n    extra\n  }) => {\n    const endpointDefinition = endpointDefinitions[arg.endpointName];\n    const {\n      metaSchema,\n      skipSchemaValidation = globalSkipSchemaValidation\n    } = endpointDefinition;\n    const isQuery = arg.type === ENDPOINT_QUERY;\n    try {\n      let transformResponse: TransformCallback = defaultTransformResponse;\n      const baseQueryApi = {\n        signal,\n        abort,\n        dispatch,\n        getState,\n        extra,\n        endpoint: arg.endpointName,\n        type: arg.type,\n        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,\n        queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n      };\n      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined;\n      let finalQueryReturnValue: QueryReturnValue;\n\n      // Infinite query wrapper, which executes the request and returns\n      // the InfiniteData `{pages, pageParams}` structure\n      const fetchPage = async (data: InfiniteData<unknown, unknown>, param: unknown, maxPages: number, previous?: boolean): Promise<QueryReturnValue> => {\n        // This should handle cases where there is no `getPrevPageParam`,\n        // or `getPPP` returned nullish\n        if (param == null && data.pages.length) {\n          return Promise.resolve({\n            data\n          });\n        }\n        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {\n          queryArg: arg.originalArgs,\n          pageParam: param\n        };\n        const pageResponse = await executeRequest(finalQueryArg);\n        const addTo = previous ? addToStart : addToEnd;\n        return {\n          data: {\n            pages: addTo(data.pages, pageResponse.data, maxPages),\n            pageParams: addTo(data.pageParams, param, maxPages)\n          },\n          meta: pageResponse.meta\n        };\n      };\n\n      // Wrapper for executing either `query` or `queryFn`,\n      // and handling any errors\n      async function executeRequest(finalQueryArg: unknown): Promise<QueryReturnValue> {\n        let result: QueryReturnValue;\n        const {\n          extraOptions,\n          argSchema,\n          rawResponseSchema,\n          responseSchema\n        } = endpointDefinition;\n        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {\n          finalQueryArg = await parseWithSchema(argSchema, finalQueryArg, 'argSchema', {} // we don't have a meta yet, so we can't pass it\n          );\n        }\n        if (forceQueryFn) {\n          // upsertQueryData relies on this to pass in the user-provided value\n          result = forceQueryFn();\n        } else if (endpointDefinition.query) {\n          // We should only run `transformResponse` when the endpoint has a `query` method,\n          // and we're not doing an `upsertQueryData`.\n          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformResponse');\n          result = await baseQuery(endpointDefinition.query(finalQueryArg as any), baseQueryApi, extraOptions as any);\n        } else {\n          result = await endpointDefinition.queryFn(finalQueryArg as any, baseQueryApi, extraOptions as any, arg => baseQuery(arg, baseQueryApi, extraOptions as any));\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`';\n          let err: undefined | string;\n          if (!result) {\n            err = `${what} did not return anything.`;\n          } else if (typeof result !== 'object') {\n            err = `${what} did not return an object.`;\n          } else if (result.error && result.data) {\n            err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n          } else if (result.error === undefined && result.data === undefined) {\n            err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n          } else {\n            for (const key of Object.keys(result)) {\n              if (key !== 'error' && key !== 'data' && key !== 'meta') {\n                err = `The object returned by ${what} has the unknown property ${key}.`;\n                break;\n              }\n            }\n          }\n          if (err) {\n            console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n                  ${err}\n                  It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n                  Object returned was:`, result);\n          }\n        }\n        if (result.error) throw new HandledError(result.error, result.meta);\n        let {\n          data\n        } = result;\n        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, 'rawResponse')) {\n          data = await parseWithSchema(rawResponseSchema, result.data, 'rawResponseSchema', result.meta);\n        }\n        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);\n        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {\n          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, 'responseSchema', result.meta);\n        }\n        return {\n          ...result,\n          data: transformedResponse\n        };\n      }\n      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {\n        // This is an infinite query endpoint\n        const {\n          infiniteQueryOptions\n        } = endpointDefinition;\n\n        // Runtime checks should guarantee this is a positive number if provided\n        const {\n          maxPages = Infinity\n        } = infiniteQueryOptions;\n\n        // Priority: per-call override > endpoint config > default (true)\n        const refetchCachedPages = (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;\n        let result: QueryReturnValue;\n\n        // Start by looking up the existing InfiniteData value from state,\n        // falling back to an empty value if it doesn't exist yet\n        const blankData = {\n          pages: [],\n          pageParams: []\n        };\n        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data as InfiniteData<unknown, unknown> | undefined;\n\n        // When the arg changes or the user forces a refetch,\n        // we don't include the `direction` flag. This lets us distinguish\n        // between actually refetching with a forced query, vs just fetching\n        // the next page.\n        const isForcedQueryNeedingRefetch =\n        // arg.forceRefetch\n        isForcedQuery(arg, getState()) && !(arg as InfiniteQueryThunkArg<any>).direction;\n        const existingData = (isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData) as InfiniteData<unknown, unknown>;\n\n        // If the thunk specified a direction and we do have at least one page,\n        // fetch the next or previous page\n        if ('direction' in arg && arg.direction && existingData.pages.length) {\n          const previous = arg.direction === 'backward';\n          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);\n          result = await fetchPage(existingData, param, maxPages, previous);\n        } else {\n          // Otherwise, fetch the first page and then any remaining pages\n\n          const {\n            initialPageParam = infiniteQueryOptions.initialPageParam\n          } = arg as InfiniteQueryThunkArg<any>;\n\n          // If we're doing a refetch, we should start from\n          // the first page we have cached.\n          // Otherwise, we should start from the initialPageParam\n          const cachedPageParams = cachedData?.pageParams ?? [];\n          const firstPageParam = cachedPageParams[0] ?? initialPageParam;\n          const totalPages = cachedPageParams.length;\n\n          // Fetch first page\n          result = await fetchPage(existingData, firstPageParam, maxPages);\n          if (forceQueryFn) {\n            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,\n            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.\n            result = {\n              data: (result.data as InfiniteData<unknown, unknown>).pages[0]\n            } as QueryReturnValue;\n          }\n          if (refetchCachedPages) {\n            // Fetch remaining pages\n            for (let i = 1; i < totalPages; i++) {\n              const param = getNextPageParam(infiniteQueryOptions, result.data as InfiniteData<unknown, unknown>, arg.originalArgs);\n              result = await fetchPage(result.data as InfiniteData<unknown, unknown>, param, maxPages);\n            }\n          }\n        }\n        finalQueryReturnValue = result;\n      } else {\n        // Non-infinite endpoint. Just run the one request.\n        finalQueryReturnValue = await executeRequest(arg.originalArgs);\n      }\n      if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta') && finalQueryReturnValue.meta) {\n        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, 'metaSchema', finalQueryReturnValue.meta);\n      }\n\n      // console.log('Final result: ', transformedData)\n      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({\n        fulfilledTimeStamp: Date.now(),\n        baseQueryMeta: finalQueryReturnValue.meta\n      }));\n    } catch (error) {\n      let caughtError = error;\n      if (caughtError instanceof HandledError) {\n        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformErrorResponse');\n        const {\n          rawErrorResponseSchema,\n          errorResponseSchema\n        } = endpointDefinition;\n        let {\n          value,\n          meta\n        } = caughtError;\n        try {\n          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, 'rawErrorResponse')) {\n            value = await parseWithSchema(rawErrorResponseSchema, value, 'rawErrorResponseSchema', meta);\n          }\n          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {\n            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta);\n          }\n          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);\n          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, 'errorResponse')) {\n            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, 'errorResponseSchema', meta);\n          }\n          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({\n            baseQueryMeta: meta\n          }));\n        } catch (e) {\n          caughtError = e;\n        }\n      }\n      try {\n        if (caughtError instanceof NamedSchemaError) {\n          const info: SchemaFailureInfo = {\n            endpoint: arg.endpointName,\n            arg: arg.originalArgs,\n            type: arg.type,\n            queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n          };\n          endpointDefinition.onSchemaFailure?.(caughtError, info);\n          onSchemaFailure?.(caughtError, info);\n          const {\n            catchSchemaFailure = globalCatchSchemaFailure\n          } = endpointDefinition;\n          if (catchSchemaFailure) {\n            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({\n              baseQueryMeta: caughtError._bqMeta\n            }));\n          }\n        }\n      } catch (e) {\n        caughtError = e;\n      }\n      if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n        console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, caughtError);\n      } else {\n        console.error(caughtError);\n      }\n      throw caughtError;\n    }\n  };\n  function isForcedQuery(arg: QueryThunkArg, state: RootState<any, string, ReducerPath>) {\n    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);\n    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;\n    const fulfilledVal = requestState?.fulfilledTimeStamp;\n    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n    if (refetchVal) {\n      // Return if it's true or compare the dates because it must be a number\n      return refetchVal === true || (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal;\n    }\n    return false;\n  }\n  const createQueryThunk = <ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,>() => {\n    const generatedQueryThunk = createAsyncThunk<ThunkResult, ThunkArgType, ThunkApiMetaConfig & {\n      state: RootState<any, string, ReducerPath>;\n    }>(`${reducerPath}/executeQuery`, executeEndpoint, {\n      getPendingMeta({\n        arg\n      }) {\n        const endpointDefinition = endpointDefinitions[arg.endpointName];\n        return addShouldAutoBatch({\n          startedTimeStamp: Date.now(),\n          ...(isInfiniteQueryDefinition(endpointDefinition) ? {\n            direction: (arg as InfiniteQueryThunkArg<any>).direction\n          } : {})\n        });\n      },\n      condition(queryThunkArg, {\n        getState\n      }) {\n        const state = getState();\n        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);\n        const fulfilledVal = requestState?.fulfilledTimeStamp;\n        const currentArg = queryThunkArg.originalArgs;\n        const previousArg = requestState?.originalArgs;\n        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];\n        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>).direction;\n\n        // Order of these checks matters.\n        // In order for `upsertQueryData` to successfully run while an existing request is in flight,\n        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\n        if (isUpsertQuery(queryThunkArg)) {\n          return true;\n        }\n\n        // Don't retry a request that's currently in-flight\n        if (requestState?.status === 'pending') {\n          return false;\n        }\n\n        // if this is forced, continue\n        if (isForcedQuery(queryThunkArg, state)) {\n          return true;\n        }\n        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n          currentArg,\n          previousArg,\n          endpointState: requestState,\n          state\n        })) {\n          return true;\n        }\n\n        // Pull from the cache unless we explicitly force refetch or qualify based on time\n        if (fulfilledVal && !direction) {\n          // Value is cached and we didn't specify to refresh, skip it.\n          return false;\n        }\n        return true;\n      },\n      dispatchConditionRejection: true\n    });\n    return generatedQueryThunk;\n  };\n  const queryThunk = createQueryThunk<QueryThunkArg>();\n  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>();\n  const mutationThunk = createAsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }>(`${reducerPath}/executeMutation`, executeEndpoint, {\n    getPendingMeta() {\n      return addShouldAutoBatch({\n        startedTimeStamp: Date.now()\n      });\n    }\n  });\n  const hasTheForce = (options: any): options is {\n    force: boolean;\n  } => 'force' in options;\n  const hasMaxAge = (options: any): options is {\n    ifOlderThan: false | number;\n  } => 'ifOlderThan' in options;\n  const prefetch = <EndpointName extends QueryKeys<Definitions>,>(endpointName: EndpointName, arg: any, options: PrefetchOptions = {}): ThunkAction<void, any, any, UnknownAction> => (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\n    const force = hasTheForce(options) && options.force;\n    const maxAge = hasMaxAge(options) && options.ifOlderThan;\n    const queryAction = (force: boolean = true) => {\n      const options: StartQueryActionCreatorOptions = {\n        forceRefetch: force,\n        subscribe: false\n      };\n      return (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(arg, options);\n    };\n    const latestStateValue = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg)(getState());\n    if (force) {\n      dispatch(queryAction());\n    } else if (maxAge) {\n      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n      if (!lastFulfilledTs) {\n        dispatch(queryAction());\n        return;\n      }\n      const shouldRetrigger = (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >= maxAge;\n      if (shouldRetrigger) {\n        dispatch(queryAction());\n      }\n    } else {\n      // If prefetching with no options, just let it try\n      dispatch(queryAction(false));\n    }\n  };\n  function matchesEndpoint(endpointName: string) {\n    return (action: any): action is UnknownAction => action?.meta?.arg?.endpointName === endpointName;\n  }\n  function buildMatchThunkActions<Thunk extends AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig> | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>>(thunk: Thunk, endpointName: string) {\n    return {\n      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n    } as Matchers<Thunk, any>;\n  }\n  return {\n    queryThunk,\n    mutationThunk,\n    infiniteQueryThunk,\n    prefetch,\n    updateQueryData,\n    upsertQueryData,\n    patchQueryData,\n    buildMatchThunkActions\n  };\n}\nexport function getNextPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  const lastIndex = pages.length - 1;\n  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);\n}\nexport function getPreviousPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);\n}\nexport function calculateProvidedByThunk(action: UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>, type: 'providesTags' | 'invalidatesTags', endpointDefinitions: EndpointDefinitions, assertTagType: AssertTagTypes) {\n  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type] as ResultDescription<any, any, any, any, any>, isFulfilled(action) ? action.payload : undefined, isRejectedWithValue(action) ? action.payload : undefined, action.meta.arg.originalArgs, 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined, assertTagType);\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../utils/immerImports';\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, createNextState, prepareAutoBatched, SHOULD_AUTOBATCH, nanoid } from './rtkImports';\nimport type { QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, MutationState, QueryState, InvalidationState, Subscribers, QueryCacheKey, SubscriptionState, ConfigState, InfiniteQuerySubState, InfiniteQueryDirection } from './apiState';\nimport { STATUS_FULFILLED, STATUS_PENDING, QueryStatus, STATUS_REJECTED, STATUS_UNINITIALIZED } from './apiState';\nimport type { AllQueryKeys, QueryArgFromAnyQueryDefinition, DataFromAnyQueryDefinition, InfiniteQueryThunk, MutationThunk, QueryThunk, QueryThunkArg } from './buildThunks';\nimport { calculateProvidedByThunk } from './buildThunks';\nimport { ENDPOINT_QUERY, isInfiniteQueryDefinition, type AssertTagTypes, type EndpointDefinitions, type FullTagDescription, type QueryDefinition } from '../endpointDefinitions';\nimport type { Patch } from 'immer';\nimport { applyPatches, original, isDraft } from '../utils/immerImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport { isDocumentVisible, isOnline, copyWithStructuralSharing } from '../utils';\nimport type { ApiContext } from '../apiTypes';\nimport { isUpsertQuery } from './buildInitiate';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport { getCurrent } from '../utils/getCurrent';\n\n/**\n * A typesafe single entry to be upserted into the cache\n */\nexport type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {\n  endpointName: EndpointName;\n  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;\n  value: DataFromAnyQueryDefinition<Definitions, EndpointName>;\n};\n\n/**\n * The internal version that is not typesafe since we can't carry the generics through `createSlice`\n */\ntype NormalizedQueryUpsertEntryPayload = {\n  endpointName: string;\n  arg: unknown;\n  value: unknown;\n};\nexport type ProcessedQueryUpsertEntry = {\n  queryDescription: QueryThunkArg;\n  value: unknown;\n};\n\n/**\n * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert\n */\nexport type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [...{ [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]> }]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {\n  match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;\n};\nfunction updateQuerySubstateIfExists(state: QueryState<any>, queryCacheKey: QueryCacheKey, update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void) {\n  const substate = state[queryCacheKey];\n  if (substate) {\n    update(substate);\n  }\n}\nexport function getMutationCacheKey(id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n}): string | undefined;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n} | MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string | undefined {\n  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state: MutationState<any>, id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}, update: (substate: MutationSubState<any>) => void) {\n  const substate = state[getMutationCacheKey(id)];\n  if (substate) {\n    update(substate);\n  }\n}\nconst initialState = {} as any;\nexport function buildSlice({\n  reducerPath,\n  queryThunk,\n  mutationThunk,\n  serializeQueryArgs,\n  context: {\n    endpointDefinitions: definitions,\n    apiUid,\n    extractRehydrationInfo,\n    hasRehydrationInfo\n  },\n  assertTagType,\n  config\n}: {\n  reducerPath: string;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  context: ApiContext<EndpointDefinitions>;\n  assertTagType: AssertTagTypes;\n  config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;\n}) {\n  const resetApiState = createAction(`${reducerPath}/resetApiState`);\n  function writePendingCacheEntry(draft: QueryState<any>, arg: QueryThunkArg, upserting: boolean, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n    // requestStatus: 'pending'\n  } & {\n    startedTimeStamp: number;\n  }) {\n    draft[arg.queryCacheKey] ??= {\n      status: STATUS_UNINITIALIZED,\n      endpointName: arg.endpointName\n    };\n    updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n      substate.status = STATUS_PENDING;\n      substate.requestId = upserting && substate.requestId ?\n      // for `upsertQuery` **updates**, keep the current `requestId`\n      substate.requestId :\n      // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n      meta.requestId;\n      if (arg.originalArgs !== undefined) {\n        substate.originalArgs = arg.originalArgs;\n      }\n      substate.startedTimeStamp = meta.startedTimeStamp;\n      const endpointDefinition = definitions[meta.arg.endpointName];\n      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {\n        ;\n        (substate as InfiniteQuerySubState<any>).direction = arg.direction as InfiniteQueryDirection;\n      }\n    });\n  }\n  function writeFulfilledCacheEntry(draft: QueryState<any>, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n  } & {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n  }, payload: unknown, upserting: boolean) {\n    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, substate => {\n      if (substate.requestId !== meta.requestId && !upserting) return;\n      const {\n        merge\n      } = definitions[meta.arg.endpointName] as QueryDefinition<any, any, any, any>;\n      substate.status = STATUS_FULFILLED;\n      if (merge) {\n        if (substate.data !== undefined) {\n          const {\n            fulfilledTimeStamp,\n            arg,\n            baseQueryMeta,\n            requestId\n          } = meta;\n          // There's existing cache data. Let the user merge it in themselves.\n          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\n          // themselves inside of `merge()`. But, they might also want to return a new value.\n          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\n          let newData = createNextState(substate.data, draftSubstateData => {\n            // As usual with Immer, you can mutate _or_ return inside here, but not both\n            return merge(draftSubstateData, payload, {\n              arg: arg.originalArgs,\n              baseQueryMeta,\n              fulfilledTimeStamp,\n              requestId\n            });\n          });\n          substate.data = newData;\n        } else {\n          // Presumably a fresh request. Just cache the response data.\n          substate.data = payload;\n        }\n      } else {\n        // Assign or safely update the cache data.\n        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n      }\n      delete substate.error;\n      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n    });\n  }\n  const querySlice = createSlice({\n    name: `${reducerPath}/queries`,\n    initialState: initialState as QueryState<any>,\n    reducers: {\n      removeQueryResult: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey\n          }\n        }: PayloadAction<QuerySubstateIdentifier>) {\n          delete draft[queryCacheKey];\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier>()\n      },\n      cacheEntriesUpserted: {\n        reducer(draft, action: PayloadAction<ProcessedQueryUpsertEntry[], string, {\n          RTK_autoBatch: boolean;\n          requestId: string;\n          timestamp: number;\n        }>) {\n          for (const entry of action.payload) {\n            const {\n              queryDescription: arg,\n              value\n            } = entry;\n            writePendingCacheEntry(draft, arg, true, {\n              arg,\n              requestId: action.meta.requestId,\n              startedTimeStamp: action.meta.timestamp\n            });\n            writeFulfilledCacheEntry(draft, {\n              arg,\n              requestId: action.meta.requestId,\n              fulfilledTimeStamp: action.meta.timestamp,\n              baseQueryMeta: {}\n            }, value,\n            // We know we're upserting here\n            true);\n          }\n        },\n        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {\n          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(entry => {\n            const {\n              endpointName,\n              arg,\n              value\n            } = entry;\n            const endpointDefinition = definitions[endpointName];\n            const queryDescription: QueryThunkArg = {\n              type: ENDPOINT_QUERY as 'query',\n              endpointName,\n              originalArgs: entry.arg,\n              queryCacheKey: serializeQueryArgs({\n                queryArgs: arg,\n                endpointDefinition,\n                endpointName\n              })\n            };\n            return {\n              queryDescription,\n              value\n            };\n          });\n          const result = {\n            payload: queryDescriptions,\n            meta: {\n              [SHOULD_AUTOBATCH]: true,\n              requestId: nanoid(),\n              timestamp: Date.now()\n            }\n          };\n          return result;\n        }\n      },\n      queryResultPatched: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey,\n            patches\n          }\n        }: PayloadAction<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>) {\n          updateQuerySubstateIfExists(draft, queryCacheKey, substate => {\n            substate.data = applyPatches(substate.data as any, patches.concat());\n          });\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(queryThunk.pending, (draft, {\n        meta,\n        meta: {\n          arg\n        }\n      }) => {\n        const upserting = isUpsertQuery(arg);\n        writePendingCacheEntry(draft, arg, upserting, meta);\n      }).addCase(queryThunk.fulfilled, (draft, {\n        meta,\n        payload\n      }) => {\n        const upserting = isUpsertQuery(meta.arg);\n        writeFulfilledCacheEntry(draft, meta, payload, upserting);\n      }).addCase(queryThunk.rejected, (draft, {\n        meta: {\n          condition,\n          arg,\n          requestId\n        },\n        error,\n        payload\n      }) => {\n        updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n          if (condition) {\n            // request was aborted due to condition (another query already running)\n          } else {\n            // request failed\n            if (substate.requestId !== requestId) return;\n            substate.status = STATUS_REJECTED;\n            substate.error = (payload ?? error) as any;\n          }\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          queries\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(queries)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  const mutationSlice = createSlice({\n    name: `${reducerPath}/mutations`,\n    initialState: initialState as MutationState<any>,\n    reducers: {\n      removeMutationResult: {\n        reducer(draft, {\n          payload\n        }: PayloadAction<MutationSubstateIdentifier>) {\n          const cacheKey = getMutationCacheKey(payload);\n          if (cacheKey in draft) {\n            delete draft[cacheKey];\n          }\n        },\n        prepare: prepareAutoBatched<MutationSubstateIdentifier>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(mutationThunk.pending, (draft, {\n        meta,\n        meta: {\n          requestId,\n          arg,\n          startedTimeStamp\n        }\n      }) => {\n        if (!arg.track) return;\n        draft[getMutationCacheKey(meta)] = {\n          requestId,\n          status: STATUS_PENDING,\n          endpointName: arg.endpointName,\n          startedTimeStamp\n        };\n      }).addCase(mutationThunk.fulfilled, (draft, {\n        payload,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_FULFILLED;\n          substate.data = payload;\n          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n        });\n      }).addCase(mutationThunk.rejected, (draft, {\n        payload,\n        error,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_REJECTED;\n          substate.error = (payload ?? error) as any;\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          mutations\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(mutations)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) &&\n          // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n          key !== entry?.requestId) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  type CalculateProvidedByAction = UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>;\n  const initialInvalidationState: InvalidationState<string> = {\n    tags: {},\n    keys: {}\n  };\n  const invalidationSlice = createSlice({\n    name: `${reducerPath}/invalidation`,\n    initialState: initialInvalidationState,\n    reducers: {\n      updateProvidedBy: {\n        reducer(draft, action: PayloadAction<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>) {\n          for (const {\n            queryCacheKey,\n            providedTags\n          } of action.payload) {\n            removeCacheKeyFromTags(draft, queryCacheKey);\n            for (const {\n              type,\n              id\n            } of providedTags) {\n              const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n            }\n\n            // Remove readonly from the providedTags array\n            draft.keys[queryCacheKey] = providedTags as FullTagDescription<string>[];\n          }\n        },\n        prepare: prepareAutoBatched<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n        payload: {\n          queryCacheKey\n        }\n      }) => {\n        removeCacheKeyFromTags(draft, queryCacheKey);\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          provided\n        } = extractRehydrationInfo(action)!;\n        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {\n          for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n            const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n            for (const queryCacheKey of cacheKeys) {\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];\n            }\n          }\n        }\n      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n        writeProvidedTagsForQueries(draft, [action]);\n      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {\n        const mockActions: CalculateProvidedByAction[] = action.payload.map(({\n          queryDescription,\n          value\n        }) => {\n          return {\n            type: 'UNKNOWN',\n            payload: value,\n            meta: {\n              requestStatus: 'fulfilled',\n              requestId: 'UNKNOWN',\n              arg: queryDescription\n            }\n          };\n        });\n        writeProvidedTagsForQueries(draft, mockActions);\n      });\n    }\n  });\n  function removeCacheKeyFromTags(draft: InvalidationState<any>, queryCacheKey: QueryCacheKey) {\n    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);\n\n    // Delete this cache key from any existing tags that may have provided it\n    for (const tag of existingTags) {\n      const tagType = tag.type;\n      const tagId = tag.id ?? '__internal_without_id';\n      const tagSubscriptions = draft.tags[tagType]?.[tagId];\n      if (tagSubscriptions) {\n        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(qc => qc !== queryCacheKey);\n      }\n    }\n    delete draft.keys[queryCacheKey];\n  }\n  function writeProvidedTagsForQueries(draft: InvalidationState<string>, actions: CalculateProvidedByAction[]) {\n    const providedByEntries = actions.map(action => {\n      const providedTags = calculateProvidedByThunk(action, 'providesTags', definitions, assertTagType);\n      const {\n        queryCacheKey\n      } = action.meta.arg;\n      return {\n        queryCacheKey,\n        providedTags\n      };\n    });\n    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));\n  }\n\n  // Dummy slice to generate actions\n  const subscriptionSlice = createSlice({\n    name: `${reducerPath}/subscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      updateSubscriptionOptions(d, a: PayloadAction<{\n        endpointName: string;\n        requestId: string;\n        options: Subscribers[number];\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      unsubscribeQueryResult(d, a: PayloadAction<{\n        requestId: string;\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      internal_getRTKQSubscriptions() {}\n    }\n  });\n  const internalSubscriptionsSlice = createSlice({\n    name: `${reducerPath}/internalSubscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      subscriptionsUpdated: {\n        reducer(state, action: PayloadAction<Patch[]>) {\n          return applyPatches(state, action.payload);\n        },\n        prepare: prepareAutoBatched<Patch[]>()\n      }\n    }\n  });\n  const configSlice = createSlice({\n    name: `${reducerPath}/config`,\n    initialState: {\n      online: isOnline(),\n      focused: isDocumentVisible(),\n      middlewareRegistered: false,\n      ...config\n    } as ConfigState<string>,\n    reducers: {\n      middlewareRegistered(state, {\n        payload\n      }: PayloadAction<string>) {\n        state.middlewareRegistered = state.middlewareRegistered === 'conflict' || apiUid !== payload ? 'conflict' : true;\n      }\n    },\n    extraReducers: builder => {\n      builder.addCase(onOnline, state => {\n        state.online = true;\n      }).addCase(onOffline, state => {\n        state.online = false;\n      }).addCase(onFocus, state => {\n        state.focused = true;\n      }).addCase(onFocusLost, state => {\n        state.focused = false;\n      })\n      // update the state to be a new object to be picked up as a \"state change\"\n      // by redux-persist's `autoMergeLevel2`\n      .addMatcher(hasRehydrationInfo, draft => ({\n        ...draft\n      }));\n    }\n  });\n  const combinedReducer = combineReducers({\n    queries: querySlice.reducer,\n    mutations: mutationSlice.reducer,\n    provided: invalidationSlice.reducer,\n    subscriptions: internalSubscriptionsSlice.reducer,\n    config: configSlice.reducer\n  });\n  const reducer: typeof combinedReducer = (state, action) => combinedReducer(resetApiState.match(action) ? undefined : state, action);\n  const actions = {\n    ...configSlice.actions,\n    ...querySlice.actions,\n    ...subscriptionSlice.actions,\n    ...internalSubscriptionsSlice.actions,\n    ...mutationSlice.actions,\n    ...invalidationSlice.actions,\n    resetApiState\n  };\n  return {\n    reducer,\n    actions\n  };\n}\nexport type SliceActions = ReturnType<typeof buildSlice>['actions'];","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, ReducerPathFrom, TagDescription, TagTypesFrom } from '../endpointDefinitions';\nimport { expandTagDescription } from '../endpointDefinitions';\nimport { filterMap, isNotNullish } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationSubState, QueryCacheKey, QueryState, QuerySubState, RequestStatusFlags, RootState as _RootState, QueryStatus } from './apiState';\nimport { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState';\nimport { getMutationCacheKey } from './buildSlice';\nimport type { createSelector as _createSelector } from './rtkImports';\nimport { createNextState } from './rtkImports';\nimport { type AllQueryKeys, getNextPageParam, getPreviousPageParam } from './buildThunks';\nexport type SkipToken = typeof skipToken;\n/**\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\n * instead of the query argument to get the same effect as if setting\n * `skip: true` in the query options.\n *\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\n * and TypeScript complains about it because `arg` is not allowed to be passed\n * in as `undefined`, such as\n *\n * ```ts\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\n * useSomeQuery(arg, { skip: !!arg })\n * ```\n *\n * ```ts\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\n * useSomeQuery(arg ?? skipToken)\n * ```\n *\n * If passed directly into a query or mutation selector, that selector will always\n * return an uninitialized state.\n */\nexport const skipToken = /* @__PURE__ */Symbol.for('RTKQ/skipToken');\nexport type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: QueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: InfiniteQueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: MutationResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\ntype QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;\nexport type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;\ntype InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;\nexport type InfiniteQueryResultFlags = {\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n  isFetchNextPageError: boolean;\n  isFetchPreviousPageError: boolean;\n};\nexport type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;\ntype MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {\n  requestId: string | undefined;\n  fixedCacheKey: string | undefined;\n} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;\nexport type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;\nconst initialSubState: QuerySubState<any> = {\n  status: STATUS_UNINITIALIZED\n};\n\n// abuse immer to freeze default states\nconst defaultQuerySubState = /* @__PURE__ */createNextState(initialSubState, () => {});\nconst defaultMutationSubState = /* @__PURE__ */createNextState(initialSubState as MutationSubState<any>, () => {});\nexport type AllSelectors = ReturnType<typeof buildSelectors>;\nexport function buildSelectors<Definitions extends EndpointDefinitions, ReducerPath extends string>({\n  serializeQueryArgs,\n  reducerPath,\n  createSelector\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  reducerPath: ReducerPath;\n  createSelector: typeof _createSelector;\n}) {\n  type RootState = _RootState<Definitions, string, string>;\n  const selectSkippedQuery = (state: RootState) => defaultQuerySubState;\n  const selectSkippedMutation = (state: RootState) => defaultMutationSubState;\n  return {\n    buildQuerySelector,\n    buildInfiniteQuerySelector,\n    buildMutationSelector,\n    selectInvalidatedBy,\n    selectCachedArgsForQuery,\n    selectApiState,\n    selectQueries,\n    selectMutations,\n    selectQueryEntry,\n    selectConfig\n  };\n  function withRequestFlags<T extends {\n    status: QueryStatus;\n  }>(substate: T): T & RequestStatusFlags {\n    return {\n      ...substate,\n      ...getRequestStatusFlags(substate.status)\n    };\n  }\n  function selectApiState(rootState: RootState) {\n    const state = rootState[reducerPath];\n    if (process.env.NODE_ENV !== 'production') {\n      if (!state) {\n        if ((selectApiState as any).triggered) return state;\n        (selectApiState as any).triggered = true;\n        console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n      }\n    }\n    return state;\n  }\n  function selectQueries(rootState: RootState) {\n    return selectApiState(rootState)?.queries;\n  }\n  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {\n    return selectQueries(rootState)?.[cacheKey];\n  }\n  function selectMutations(rootState: RootState) {\n    return selectApiState(rootState)?.mutations;\n  }\n  function selectConfig(rootState: RootState) {\n    return selectApiState(rootState)?.config;\n  }\n  function buildAnyQuerySelector(endpointName: string, endpointDefinition: EndpointDefinition<any, any, any, any>, combiner: <T extends {\n    status: QueryStatus;\n  }>(substate: T) => T & RequestStatusFlags) {\n    return (queryArgs: any) => {\n      // Avoid calling serializeQueryArgs if the arg is skipToken\n      if (queryArgs === skipToken) {\n        return createSelector(selectSkippedQuery, combiner);\n      }\n      const serializedArgs = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      const selectQuerySubstate = (state: RootState) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;\n      return createSelector(selectQuerySubstate, combiner);\n    };\n  }\n  function buildQuerySelector(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags) as QueryResultSelectorFactory<any, RootState>;\n  }\n  function buildInfiniteQuerySelector(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const {\n      infiniteQueryOptions\n    } = endpointDefinition;\n    function withInfiniteQueryResultFlags<T extends {\n      status: QueryStatus;\n    }>(substate: T): T & RequestStatusFlags & InfiniteQueryResultFlags {\n      const stateWithRequestFlags = {\n        ...(substate as InfiniteQuerySubState<any>),\n        ...getRequestStatusFlags(substate.status)\n      };\n      const {\n        isLoading,\n        isError,\n        direction\n      } = stateWithRequestFlags;\n      const isForward = direction === 'forward';\n      const isBackward = direction === 'backward';\n      return {\n        ...stateWithRequestFlags,\n        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        isFetchingNextPage: isLoading && isForward,\n        isFetchingPreviousPage: isLoading && isBackward,\n        isFetchNextPageError: isError && isForward,\n        isFetchPreviousPageError: isError && isBackward\n      };\n    }\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>;\n  }\n  function buildMutationSelector() {\n    return (id => {\n      let mutationId: string | typeof skipToken;\n      if (typeof id === 'object') {\n        mutationId = getMutationCacheKey(id) ?? skipToken;\n      } else {\n        mutationId = id;\n      }\n      const selectMutationSubstate = (state: RootState) => selectApiState(state)?.mutations?.[mutationId as string] ?? defaultMutationSubState;\n      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n      return createSelector(finalSelectMutationSubstate, withRequestFlags);\n    }) as MutationResultSelectorFactory<any, RootState>;\n  }\n  function selectInvalidatedBy(state: RootState, tags: ReadonlyArray<TagDescription<string> | null | undefined>): Array<{\n    endpointName: string;\n    originalArgs: any;\n    queryCacheKey: QueryCacheKey;\n  }> {\n    const apiState = state[reducerPath];\n    const toInvalidate = new Set<QueryCacheKey>();\n    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);\n    for (const tag of finalTags) {\n      const provided = apiState.provided.tags[tag.type];\n      if (!provided) {\n        continue;\n      }\n      let invalidateSubscriptions = (tag.id !== undefined ?\n      // id given: invalidate all queries that provide this type & id\n      provided[tag.id] :\n      // no id: invalidate all queries that provide this type\n      Object.values(provided).flat()) ?? [];\n      for (const invalidate of invalidateSubscriptions) {\n        toInvalidate.add(invalidate);\n      }\n    }\n    return Array.from(toInvalidate.values()).flatMap(queryCacheKey => {\n      const querySubState = apiState.queries[queryCacheKey];\n      return querySubState ? {\n        queryCacheKey,\n        endpointName: querySubState.endpointName!,\n        originalArgs: querySubState.originalArgs\n      } : [];\n    });\n  }\n  function selectCachedArgsForQuery<QueryName extends AllQueryKeys<Definitions>>(state: RootState, queryName: QueryName): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {\n    return filterMap(Object.values(selectQueries(state) as QueryState<any>), (entry): entry is Exclude<QuerySubState<Definitions[QueryName]>, {\n      status: QueryStatus.uninitialized;\n    }> => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, entry => entry.originalArgs);\n  }\n  function getHasNextPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data) return false;\n    return getNextPageParam(options, data, queryArg) != null;\n  }\n  function getHasPreviousPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data || !options.getPreviousPageParam) return false;\n    return getPreviousPageParam(options, data, queryArg) != null;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { getEndpointDefinition, type Api, type ApiContext, type Module, type ModuleName } from './apiTypes';\nimport type { CombinedState } from './core/apiState';\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { EndpointBuilder, EndpointDefinitions, SchemaFailureConverter, SchemaFailureHandler, SchemaType } from './endpointDefinitions';\nimport { DefinitionType, ENDPOINT_INFINITEQUERY, ENDPOINT_MUTATION, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from './endpointDefinitions';\nimport { nanoid } from './core/rtkImports';\nimport type { UnknownAction } from '@reduxjs/toolkit';\nimport type { NoInfer } from './tsHelpers';\nimport { weakMapMemoize } from 'reselect';\nexport interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {\n  /**\n   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   // highlight-start\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  baseQuery: BaseQuery;\n  /**\n   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   tagTypes: ['Post', 'User'],\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  tagTypes?: readonly TagTypes[];\n  /**\n   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"apis.js\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\n   *\n   * const apiOne = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiOne',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   *\n   * const apiTwo = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiTwo',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   * ```\n   */\n  reducerPath?: ReducerPath;\n  /**\n   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\n   */\n  serializeQueryArgs?: SerializeQueryArgs<unknown>;\n  /**\n   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).\n   */\n  endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;\n  /**\n   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"keepUnusedDataFor example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts'\n   *     })\n   *   }),\n   *   // highlight-start\n   *   keepUnusedDataFor: 5\n   *   // highlight-end\n   * })\n   * ```\n   */\n  keepUnusedDataFor?: number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.\n   *\n   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.\n   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.\n   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.\n   *   This ensures that queries are always invalidated correctly and automatically \"batches\" invalidations of concurrent mutations.\n   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.\n   */\n  invalidationBehavior?: 'delayed' | 'immediately';\n  /**\n   * A function that is passed every dispatched action. If this returns something other than `undefined`,\n   * that return value will be used to rehydrate fulfilled & errored queries.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\n   * import type { Action, PayloadAction } from '@reduxjs/toolkit'\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import { HYDRATE } from 'next-redux-wrapper'\n   *\n   * type RootState = any; // normally inferred from state\n   *\n   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {\n   *   return action.type === HYDRATE\n   * }\n   *\n   * export const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   extractRehydrationInfo(action, { reducerPath }): any {\n   *     if (isHydrateAction(action)) {\n   *       return action.payload[reducerPath]\n   *     }\n   *   },\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // omitted\n   *   }),\n   * })\n   * ```\n   */\n  extractRehydrationInfo?: (action: UnknownAction, {\n    reducerPath\n  }: {\n    reducerPath: ReducerPath;\n  }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *     }),\n   *   }),\n   *   onSchemaFailure: (error, info) => {\n   *     console.error(error, info)\n   *   },\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   }),\n   *   catchSchemaFailure: (error, info) => ({\n   *     status: \"CUSTOM_ERROR\",\n   *     error: error.schemaName + \" failed validation\",\n   *     data: error.issues,\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type CreateApi<Modules extends ModuleName> = {\n  /**\n   * Creates a service to use in your application. Contains only the basic redux logic (the core module).\n   *\n   * @link https://redux-toolkit.js.org/rtk-query/api/createApi\n   */\n  <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;\n};\n\n/**\n * Builds a `createApi` method based on the provided `modules`.\n *\n * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api\n *\n * @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\n * @returns A `createApi` method using the provided `modules`.\n */\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']> {\n  return function baseCreateApi(options) {\n    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) => options.extractRehydrationInfo?.(action, {\n      reducerPath: (options.reducerPath ?? 'api') as any\n    }));\n    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\n      reducerPath: 'api',\n      keepUnusedDataFor: 60,\n      refetchOnMountOrArgChange: false,\n      refetchOnFocus: false,\n      refetchOnReconnect: false,\n      invalidationBehavior: 'delayed',\n      ...options,\n      extractRehydrationInfo,\n      serializeQueryArgs(queryArgsApi) {\n        let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\n          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs!;\n          finalSerializeQueryArgs = queryArgsApi => {\n            const initialResult = endpointSQA(queryArgsApi);\n            if (typeof initialResult === 'string') {\n              // If the user function returned a string, use it as-is\n              return initialResult;\n            } else {\n              // Assume they returned an object (such as a subset of the original\n              // query args) or a primitive, and serialize it ourselves\n              return defaultSerializeQueryArgs({\n                ...queryArgsApi,\n                queryArgs: initialResult\n              });\n            }\n          };\n        } else if (options.serializeQueryArgs) {\n          finalSerializeQueryArgs = options.serializeQueryArgs;\n        }\n        return finalSerializeQueryArgs(queryArgsApi);\n      },\n      tagTypes: [...(options.tagTypes || [])]\n    };\n    const context: ApiContext<EndpointDefinitions> = {\n      endpointDefinitions: {},\n      batch(fn) {\n        // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\n        fn();\n      },\n      apiUid: nanoid(),\n      extractRehydrationInfo,\n      hasRehydrationInfo: weakMapMemoize(action => extractRehydrationInfo(action) != null)\n    };\n    const api = {\n      injectEndpoints,\n      enhanceEndpoints({\n        addTagTypes,\n        endpoints\n      }) {\n        if (addTagTypes) {\n          for (const eT of addTagTypes) {\n            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\n              ;\n              (optionsWithDefaults.tagTypes as any[]).push(eT);\n            }\n          }\n        }\n        if (endpoints) {\n          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n            if (typeof partialDefinition === 'function') {\n              partialDefinition(getEndpointDefinition(context, endpointName));\n            } else {\n              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);\n            }\n          }\n        }\n        return api;\n      }\n    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>;\n    const initializedModules = modules.map(m => m.init(api as any, optionsWithDefaults as any, context));\n    function injectEndpoints(inject: Parameters<typeof api.injectEndpoints>[0]) {\n      const evaluatedEndpoints = inject.endpoints({\n        query: x => ({\n          ...x,\n          type: ENDPOINT_QUERY\n        }) as any,\n        mutation: x => ({\n          ...x,\n          type: ENDPOINT_MUTATION\n        }) as any,\n        infiniteQuery: x => ({\n          ...x,\n          type: ENDPOINT_INFINITEQUERY\n        }) as any\n      });\n      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n          if (inject.overrideExisting === 'throw') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          } else if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n            console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          }\n          continue;\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          if (isInfiniteQueryDefinition(definition)) {\n            const {\n              infiniteQueryOptions\n            } = definition;\n            const {\n              maxPages,\n              getPreviousPageParam\n            } = infiniteQueryOptions;\n            if (typeof maxPages === 'number') {\n              if (maxPages < 1) {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);\n              }\n              if (typeof getPreviousPageParam !== 'function') {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);\n              }\n            }\n          }\n        }\n        context.endpointDefinitions[endpointName] = definition;\n        for (const m of initializedModules) {\n          m.injectEndpoint(endpointName, definition);\n        }\n      }\n      return api as any;\n    }\n    return api.injectEndpoints({\n      endpoints: options.endpoints as any\n    });\n  };\n}","import type { QueryCacheKey } from './core/apiState';\nimport type { EndpointDefinition } from './endpointDefinitions';\nimport { isPlainObject } from './core/rtkImports';\nconst cache: WeakMap<any, string> | undefined = WeakMap ? new WeakMap() : undefined;\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\n  endpointName,\n  queryArgs\n}) => {\n  let serialized = '';\n  const cached = cache?.get(queryArgs);\n  if (typeof cached === 'string') {\n    serialized = cached;\n  } else {\n    const stringified = JSON.stringify(queryArgs, (key, value) => {\n      // Handle bigints\n      value = typeof value === 'bigint' ? {\n        $bigint: value.toString()\n      } : value;\n      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\n      value = isPlainObject(value) ? Object.keys(value).sort().reduce<any>((acc, key) => {\n        acc[key] = (value as any)[key];\n        return acc;\n      }, {}) : value;\n      return value;\n    });\n    if (isPlainObject(queryArgs)) {\n      cache?.set(queryArgs, stringified);\n    }\n    serialized = stringified;\n  }\n  return `${endpointName}(${serialized})`;\n};\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\n  queryArgs: QueryArgs;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => ReturnType;\nexport type InternalSerializeQueryArgs = (_: {\n  queryArgs: any;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => QueryCacheKey;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { BaseQueryFn } from './baseQueryTypes';\nexport const _NEVER = /* @__PURE__ */Symbol();\nexport type NEVER = typeof _NEVER;\n\n/**\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\n */\nexport function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}> {\n  return function () {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(33) : 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.');\n  };\n}","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import type { InternalHandlerBuilder, SubscriptionSelectors } from './types';\nimport type { SubscriptionInternalState, SubscriptionState } from '../apiState';\nimport { produceWithPatches } from '../../utils/immerImports';\nimport type { Action } from '@reduxjs/toolkit';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<[actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]> = ({\n  api,\n  queryThunk,\n  internalState,\n  mwApi\n}) => {\n  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n  let previousSubscriptions: SubscriptionState = null as unknown as SubscriptionState;\n  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null;\n  const {\n    updateSubscriptionOptions,\n    unsubscribeQueryResult\n  } = api.internalActions;\n\n  // Actually intentionally mutate the subscriptions state used in the middleware\n  // This is done to speed up perf when loading many components\n  const actuallyMutateSubscriptions = (currentSubscriptions: SubscriptionInternalState, action: Action) => {\n    if (updateSubscriptionOptions.match(action)) {\n      const {\n        queryCacheKey,\n        requestId,\n        options\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub?.has(requestId)) {\n        sub.set(requestId, options);\n      }\n      return true;\n    }\n    if (unsubscribeQueryResult.match(action)) {\n      const {\n        queryCacheKey,\n        requestId\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub) {\n        sub.delete(requestId);\n      }\n      return true;\n    }\n    if (api.internalActions.removeQueryResult.match(action)) {\n      currentSubscriptions.delete(action.payload.queryCacheKey);\n      return true;\n    }\n    if (queryThunk.pending.match(action)) {\n      const {\n        meta: {\n          arg,\n          requestId\n        }\n      } = action;\n      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n      if (arg.subscribe) {\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n      }\n      return true;\n    }\n    let mutated = false;\n    if (queryThunk.rejected.match(action)) {\n      const {\n        meta: {\n          condition,\n          arg,\n          requestId\n        }\n      } = action;\n      if (condition && arg.subscribe) {\n        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n        mutated = true;\n      }\n    }\n    return mutated;\n  };\n  const getSubscriptions = () => internalState.currentSubscriptions;\n  const getSubscriptionCount = (queryCacheKey: string) => {\n    const subscriptions = getSubscriptions();\n    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);\n    return subscriptionsForQueryArg?.size ?? 0;\n  };\n  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {\n    const subscriptions = getSubscriptions();\n    return !!subscriptions?.get(queryCacheKey)?.get(requestId);\n  };\n  const subscriptionSelectors: SubscriptionSelectors = {\n    getSubscriptions,\n    getSubscriptionCount,\n    isRequestSubscribed\n  };\n  function serializeSubscriptions(currentSubscriptions: SubscriptionInternalState): SubscriptionState {\n    // We now use nested Maps for subscriptions, instead of\n    // plain Records. Stringify this accordingly so we can\n    // convert it to the shape we need for the store.\n    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));\n  }\n  return (action, mwApi): [actionShouldContinue: boolean, result: SubscriptionSelectors | boolean] => {\n    if (!previousSubscriptions) {\n      // Initialize it the first time this handler runs\n      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);\n    }\n    if (api.util.resetApiState.match(action)) {\n      previousSubscriptions = {};\n      internalState.currentSubscriptions.clear();\n      updateSyncTimer = null;\n      return [true, false];\n    }\n\n    // Intercept requests by hooks to see if they're subscribed\n    // We return the internal state reference so that hooks\n    // can do their own checks to see if they're still active.\n    // It's stupid and hacky, but it does cut down on some dispatch calls.\n    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n      return [false, subscriptionSelectors];\n    }\n\n    // Update subscription data based on this action\n    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n    let actionShouldContinue = true;\n\n    // HACK Sneak the test-only polling state back out\n    if (process.env.NODE_ENV === 'test' && typeof action.type === 'string' && action.type === `${api.reducerPath}/getPolling`) {\n      return [false, internalState.currentPolls] as any;\n    }\n    if (didMutate) {\n      if (!updateSyncTimer) {\n        // We only use the subscription state for the Redux DevTools at this point,\n        // as the real data is kept here in the middleware.\n        // Given that, we can throttle synchronizing this state significantly to\n        // save on overall perf.\n        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.\n        updateSyncTimer = setTimeout(() => {\n          // Deep clone the current subscription data\n          const newSubscriptions: SubscriptionState = serializeSubscriptions(internalState.currentSubscriptions);\n          // Figure out a smaller diff between original and current\n          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);\n\n          // Sync the store state for visibility\n          mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n          // Save the cloned state for later reference\n          previousSubscriptions = newSubscriptions;\n          updateSyncTimer = null;\n        }, 500);\n      }\n      const isSubscriptionSliceAction = typeof action.type == 'string' && !!action.type.startsWith(subscriptionsPrefix);\n      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n    }\n    return [actionShouldContinue, false];\n  };\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { QueryDefinition } from '../../endpointDefinitions';\nimport type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState';\nimport { isAnyOf } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, QueryStateMeta, SubMiddlewareApi, TimeoutId } from './types';\nexport type ReferenceCacheCollection = never;\n\n/**\n * @example\n * ```ts\n * // codeblock-meta title=\"keepUnusedDataFor example\"\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => 'posts',\n *       // highlight-start\n *       keepUnusedDataFor: 5\n *       // highlight-end\n *     })\n *   })\n * })\n * ```\n */\nexport type CacheCollectionQueryExtraOptions = {\n  /**\n   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\n   *\n   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   */\n  keepUnusedDataFor?: number;\n};\n\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\n// it wraps and ends up executing immediately.\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647;\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1;\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  api,\n  queryThunk,\n  context,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectConfig\n  },\n  getRunningQueryThunk,\n  mwApi\n}) => {\n  const {\n    removeQueryResult,\n    unsubscribeQueryResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n  function anySubscriptionsRemainingForKey(queryCacheKey: string) {\n    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);\n    if (!subscriptions) {\n      return false;\n    }\n    const hasSubscriptions = subscriptions.size > 0;\n    return hasSubscriptions;\n  }\n  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {};\n  function abortAllPromises<T extends {\n    abort?: () => void;\n  }>(promiseMap: Map<string, T | undefined>): void {\n    for (const promise of promiseMap.values()) {\n      promise?.abort?.();\n    }\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    const state = mwApi.getState();\n    const config = selectConfig(state);\n    if (canTriggerUnsubscribe(action)) {\n      let queryCacheKeys: QueryCacheKey[];\n      if (cacheEntriesUpserted.match(action)) {\n        queryCacheKeys = action.payload.map(entry => entry.queryDescription.queryCacheKey);\n      } else {\n        const {\n          queryCacheKey\n        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n        queryCacheKeys = [queryCacheKey];\n      }\n      handleUnsubscribeMany(queryCacheKeys, mwApi, config);\n    }\n    if (api.util.resetApiState.match(action)) {\n      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n        if (timeout) clearTimeout(timeout);\n        delete currentRemovalTimeouts[key];\n      }\n      abortAllPromises(internalState.runningQueries);\n      abortAllPromises(internalState.runningMutations);\n    }\n    if (context.hasRehydrationInfo(action)) {\n      const {\n        queries\n      } = context.extractRehydrationInfo(action)!;\n      // Gotcha:\n      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\n      // will be used instead of the endpoint-specific one.\n      handleUnsubscribeMany(Object.keys(queries) as QueryCacheKey[], mwApi, config);\n    }\n  };\n  function handleUnsubscribeMany(cacheKeys: QueryCacheKey[], api: SubMiddlewareApi, config: ConfigState<string>) {\n    const state = api.getState();\n    for (const queryCacheKey of cacheKeys) {\n      const entry = selectQueryEntry(state, queryCacheKey);\n      if (entry?.endpointName) {\n        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config);\n      }\n    }\n  }\n  function handleUnsubscribe(queryCacheKey: QueryCacheKey, endpointName: string, api: SubMiddlewareApi, config: ConfigState<string>) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName) as QueryDefinition<any, any, any, any>;\n    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n    if (keepUnusedDataFor === Infinity) {\n      // Hey, user said keep this forever!\n      return;\n    }\n    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\n    // clamping the max value to be at most 1000ms less than the 32-bit max.\n    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\n    // Also avoid negative values too.\n    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n      const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n      if (currentTimeout) {\n        clearTimeout(currentTimeout);\n      }\n      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n          // Try to abort any running query for this cache key\n          const entry = selectQueryEntry(api.getState(), queryCacheKey);\n          if (entry?.endpointName) {\n            const runningQuery = api.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));\n            runningQuery?.abort();\n          }\n          api.dispatch(removeQueryResult({\n            queryCacheKey\n          }));\n        }\n        delete currentRemovalTimeouts![queryCacheKey];\n      }, finalKeepUnusedDataFor * 1000);\n    }\n  }\n  return handler;\n};","import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn, BaseQueryMeta, BaseQueryResult } from '../../baseQueryTypes';\nimport type { BaseEndpointDefinition, DefinitionType } from '../../endpointDefinitions';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { QueryCacheKey, RootState } from '../apiState';\nimport type { MutationResultSelectorResult, QueryResultSelectorResult } from '../buildSelectors';\nimport { getMutationCacheKey } from '../buildSlice';\nimport type { PatchCollection, Recipe } from '../buildThunks';\nimport { isAsyncThunkAction, isFulfilled } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseWithKnownReason, SubMiddlewareApi } from './types';\nimport { getEndpointDefinition } from '@internal/query/apiTypes';\nexport type ReferenceCacheLifecycle = never;\nexport interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): QueryResultSelectorResult<{\n    type: DefinitionType.query;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n  /**\n   * Updates the current cache entry value.\n   * For documentation see `api.util.updateQueryData`.\n   */\n  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;\n}\nexport type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): MutationResultSelectorResult<{\n    type: DefinitionType.mutation;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n};\ntype LifecycleApi<ReducerPath extends string = string> = {\n  /**\n   * The dispatch method for the store\n   */\n  dispatch: ThunkDispatch<any, any, UnknownAction>;\n  /**\n   * A method to get the current state\n   */\n  getState(): RootState<any, any, ReducerPath>;\n  /**\n   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\n   */\n  extra: unknown;\n  /**\n   * A unique ID generated for the mutation\n   */\n  requestId: string;\n};\ntype CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {\n  /**\n   * Promise that will resolve with the first value for this cache key.\n   * This allows you to `await` until an actual value is in cache.\n   *\n   * If the cache entry is removed from the cache before any value has ever\n   * been resolved, this Promise will reject with\n   * `new Error('Promise never resolved before cacheEntryRemoved.')`\n   * to prevent memory leaks.\n   * You can just re-throw that error (or not handle it at all) -\n   * it will be caught outside of `cacheEntryAdded`.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  cacheDataLoaded: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: MetaType;\n  }, typeof neverResolvedError>;\n  /**\n   * Promise that allows you to wait for the point in time when the cache entry\n   * has been removed from the cache, by not being used/subscribed to any more\n   * in the application for too long or by dispatching `api.util.resetApiState`.\n   */\n  cacheEntryRemoved: Promise<void>;\n};\nexport interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\nexport type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;\nexport type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nconst neverResolvedError = new Error('Promise never resolved before cacheEntryRemoved.') as Error & {\n  message: 'Promise never resolved before cacheEntryRemoved.';\n};\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  reducerPath,\n  context,\n  queryThunk,\n  mutationThunk,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectApiState\n  }\n}) => {\n  const isQueryThunk = isAsyncThunkAction(queryThunk);\n  const isMutationThunk = isAsyncThunkAction(mutationThunk);\n  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    valueResolved?(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    cacheEntryRemoved(): void;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const {\n    removeQueryResult,\n    removeMutationResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  function resolveLifecycleEntry(cacheKey: string, data: unknown, meta: unknown) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle?.valueResolved) {\n      lifecycle.valueResolved({\n        data,\n        meta\n      });\n      delete lifecycle.valueResolved;\n    }\n  }\n  function removeLifecycleEntry(cacheKey: string) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle) {\n      delete lifecycleMap[cacheKey];\n      lifecycle.cacheEntryRemoved();\n    }\n  }\n  function getActionMetaFields(action: ReturnType<typeof queryThunk.pending> | ReturnType<typeof mutationThunk.pending>) {\n    const {\n      arg,\n      requestId\n    } = action.meta;\n    const {\n      endpointName,\n      originalArgs\n    } = arg;\n    return [endpointName, originalArgs, requestId] as const;\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi, stateBefore) => {\n    const cacheKey = getCacheKey(action) as QueryCacheKey;\n    function checkForNewCacheKey(endpointName: string, cacheKey: QueryCacheKey, requestId: string, originalArgs: unknown) {\n      const oldEntry = selectQueryEntry(stateBefore, cacheKey);\n      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey);\n      if (!oldEntry && newEntry) {\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    }\n    if (queryThunk.pending.match(action)) {\n      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);\n    } else if (cacheEntriesUpserted.match(action)) {\n      for (const {\n        queryDescription,\n        value\n      } of action.payload) {\n        const {\n          endpointName,\n          originalArgs,\n          queryCacheKey\n        } = queryDescription;\n        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n        resolveLifecycleEntry(queryCacheKey, value, {});\n      }\n    } else if (mutationThunk.pending.match(action)) {\n      const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n      if (state) {\n        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    } else if (isFulfilledThunk(action)) {\n      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {\n      removeLifecycleEntry(cacheKey);\n    } else if (api.util.resetApiState.match(action)) {\n      for (const cacheKey of Object.keys(lifecycleMap)) {\n        removeLifecycleEntry(cacheKey);\n      }\n    }\n  };\n  function getCacheKey(action: any) {\n    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n    if (isMutationThunk(action)) {\n      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n    }\n    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;\n    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n    return '';\n  }\n  function handleNewKey(endpointName: string, originalArgs: any, queryCacheKey: string, mwApi: SubMiddlewareApi, requestId: string) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName);\n    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n    if (!onCacheEntryAdded) return;\n    const lifecycle = {} as CacheLifecycle;\n    const cacheEntryRemoved = new Promise<void>(resolve => {\n      lifecycle.cacheEntryRemoved = resolve;\n    });\n    const cacheDataLoaded: PromiseWithKnownReason<{\n      data: unknown;\n      meta: unknown;\n    }, typeof neverResolvedError> = Promise.race([new Promise<{\n      data: unknown;\n      meta: unknown;\n    }>(resolve => {\n      lifecycle.valueResolved = resolve;\n    }), cacheEntryRemoved.then(() => {\n      throw neverResolvedError;\n    })]);\n    // prevent uncaught promise rejections from happening.\n    // if the original promise is used in any way, that will create a new promise that will throw again\n    cacheDataLoaded.catch(() => {});\n    lifecycleMap[queryCacheKey] = lifecycle;\n    const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);\n    const extra = mwApi.dispatch((_, __, extra) => extra);\n    const lifecycleApi = {\n      ...mwApi,\n      getCacheEntry: () => selector(mwApi.getState()),\n      requestId,\n      extra,\n      updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n      cacheDataLoaded,\n      cacheEntryRemoved\n    };\n    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any);\n    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\n    Promise.resolve(runningHandler).catch(e => {\n      if (e === neverResolvedError) return;\n      throw e;\n    });\n  }\n  return handler;\n};","import type { InternalHandlerBuilder } from './types';\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\n  api,\n  context: {\n    apiUid\n  },\n  reducerPath\n}) => {\n  return (action, mwApi) => {\n    if (api.util.resetApiState.match(action)) {\n      // dispatch after api reset\n      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === 'conflict') {\n        console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === 'api' ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ''}`);\n      }\n    }\n  };\n};","import { isAnyOf, isFulfilled, isRejected, isRejectedWithValue } from '../rtkImports';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport { calculateProvidedBy } from '../../endpointDefinitions';\nimport type { CombinedState, QueryCacheKey } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport { calculateProvidedByThunk } from '../buildThunks';\nimport type { SubMiddlewareApi, InternalHandlerBuilder, ApiMiddlewareInternalHandler } from './types';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  context: {\n    endpointDefinitions\n  },\n  mutationThunk,\n  queryThunk,\n  api,\n  assertTagType,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));\n  let pendingTagInvalidations: FullTagDescription<string>[] = [];\n  // Track via counter so we can avoid iterating over state every time\n  let pendingRequestCount = 0;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {\n      pendingRequestCount++;\n    }\n    if (isQueryEnd(action)) {\n      pendingRequestCount = Math.max(0, pendingRequestCount - 1);\n    }\n    if (isThunkActionWithTags(action)) {\n      invalidateTags(calculateProvidedByThunk(action, 'invalidatesTags', endpointDefinitions, assertTagType), mwApi);\n    } else if (isQueryEnd(action)) {\n      invalidateTags([], mwApi);\n    } else if (api.util.invalidateTags.match(action)) {\n      invalidateTags(calculateProvidedBy(action.payload, undefined, undefined, undefined, undefined, assertTagType), mwApi);\n    }\n  };\n  function hasPendingRequests() {\n    return pendingRequestCount > 0;\n  }\n  function invalidateTags(newTags: readonly FullTagDescription<string>[], mwApi: SubMiddlewareApi) {\n    const rootState = mwApi.getState();\n    const state = rootState[reducerPath];\n    pendingTagInvalidations.push(...newTags);\n    if (state.config.invalidationBehavior === 'delayed' && hasPendingRequests()) {\n      return;\n    }\n    const tags = pendingTagInvalidations;\n    pendingTagInvalidations = [];\n    if (tags.length === 0) return;\n    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n    context.batch(() => {\n      const valuesArray = Array.from(toInvalidate.values());\n      for (const {\n        queryCacheKey\n      } of valuesArray) {\n        const querySubState = state.queries[queryCacheKey];\n        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);\n        if (querySubState) {\n          if (subscriptionSubState.size === 0) {\n            mwApi.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            mwApi.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { QueryCacheKey, QuerySubstateIdentifier, Subscribers, SubscribersInternal } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryStateMeta, SubMiddlewareApi, TimeoutId, InternalHandlerBuilder, ApiMiddlewareInternalHandler, InternalMiddlewareState } from './types';\nexport const buildPollingHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  queryThunk,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    currentPolls,\n    currentSubscriptions\n  } = internalState;\n\n  // Batching state for polling updates\n  const pendingPollingUpdates = new Set<string>();\n  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);\n    }\n    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);\n    }\n    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n      startNextPoll(action.meta.arg, mwApi);\n    }\n    if (api.util.resetApiState.match(action)) {\n      clearPolls();\n      // Clear any pending updates\n      if (pollingUpdateTimer) {\n        clearTimeout(pollingUpdateTimer);\n        pollingUpdateTimer = null;\n      }\n      pendingPollingUpdates.clear();\n    }\n  };\n  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {\n    pendingPollingUpdates.add(queryCacheKey);\n    if (!pollingUpdateTimer) {\n      pollingUpdateTimer = setTimeout(() => {\n        // Process all pending updates in a single batch\n        for (const key of pendingPollingUpdates) {\n          updatePollingInterval({\n            queryCacheKey: key as any\n          }, api);\n        }\n        pendingPollingUpdates.clear();\n        pollingUpdateTimer = null;\n      }, 0);\n    }\n  }\n  function startNextPoll({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;\n    const {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    } = findLowestPollingInterval(subscriptions);\n    if (!Number.isFinite(lowestPollingInterval)) return;\n    const currentPoll = currentPolls.get(queryCacheKey);\n    if (currentPoll?.timeout) {\n      clearTimeout(currentPoll.timeout);\n      currentPoll.timeout = undefined;\n    }\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    currentPolls.set(queryCacheKey, {\n      nextPollTimestamp,\n      pollingInterval: lowestPollingInterval,\n      timeout: setTimeout(() => {\n        if (state.config.focused || !skipPollingIfUnfocused) {\n          api.dispatch(refetchQuery(querySubState));\n        }\n        startNextPoll({\n          queryCacheKey\n        }, api);\n      }, lowestPollingInterval)\n    });\n  }\n  function updatePollingInterval({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {\n      return;\n    }\n    const {\n      lowestPollingInterval\n    } = findLowestPollingInterval(subscriptions);\n\n    // HACK add extra data to track how many times this has been called in tests\n    // yes we're mutating a nonexistent field on a Map here\n    if (process.env.NODE_ENV === 'test') {\n      const updateCounters = (currentPolls as any).pollUpdateCounters ??= {};\n      updateCounters[queryCacheKey] ??= 0;\n      updateCounters[queryCacheKey]++;\n    }\n    if (!Number.isFinite(lowestPollingInterval)) {\n      cleanupPollForKey(queryCacheKey);\n      return;\n    }\n    const currentPoll = currentPolls.get(queryCacheKey);\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n      startNextPoll({\n        queryCacheKey\n      }, api);\n    }\n  }\n  function cleanupPollForKey(key: string) {\n    const existingPoll = currentPolls.get(key);\n    if (existingPoll?.timeout) {\n      clearTimeout(existingPoll.timeout);\n    }\n    currentPolls.delete(key);\n  }\n  function clearPolls() {\n    for (const key of currentPolls.keys()) {\n      cleanupPollForKey(key);\n    }\n  }\n  function findLowestPollingInterval(subscribers: SubscribersInternal = new Map()) {\n    let skipPollingIfUnfocused: boolean | undefined = false;\n    let lowestPollingInterval = Number.POSITIVE_INFINITY;\n    for (const entry of subscribers.values()) {\n      if (!!entry.pollingInterval) {\n        lowestPollingInterval = Math.min(entry.pollingInterval!, lowestPollingInterval);\n        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;\n      }\n    }\n    return {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    };\n  }\n  return handler;\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { BaseQueryError, BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { Recipe } from '../buildThunks';\nimport { isFulfilled, isPending, isRejected } from '../rtkImports';\nimport type { MutationBaseLifecycleApi, QueryBaseLifecycleApi } from './cacheLifecycle';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseConstructorWithKnownReason, PromiseWithKnownReason } from './types';\nexport type ReferenceQueryLifecycle = never;\ntype QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {\n  /**\n   * Promise that will resolve with the (transformed) query result.\n   *\n   * If the query fails, this promise will reject with the error.\n   *\n   * This allows you to `await` for the query to finish.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  queryFulfilled: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: BaseQueryMeta<BaseQuery>;\n  }, QueryFulfilledRejectionReason<BaseQuery>>;\n};\ntype QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {\n  error: BaseQueryError<BaseQuery>;\n  /**\n   * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\n   */\n  isUnhandledError: false;\n  /**\n   * The `meta` returned by the `baseQuery`\n   */\n  meta: BaseQueryMeta<BaseQuery>;\n} | {\n  error: unknown;\n  meta?: undefined;\n  /**\n   * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\n   * There can not be made any assumption about the shape of `error`.\n   */\n  isUnhandledError: true;\n};\nexport type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used to perform side-effects throughout the lifecycle of the query.\n   *\n   * @example\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * import { messageCreated } from './notificationsSlice\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {\n   *         // `onStart` side-effect\n   *         dispatch(messageCreated('Fetching posts...'))\n   *         try {\n   *           const { data } = await queryFulfilled\n   *           // `onSuccess` side-effect\n   *           dispatch(messageCreated('Posts received!'))\n   *         } catch (err) {\n   *           // `onError` side-effect\n   *           dispatch(messageCreated('Error fetching posts!'))\n   *         }\n   *       }\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used for `optimistic updates`.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       providesTags: ['Post'],\n   *     }),\n   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\n   *       query: ({ id, ...patch }) => ({\n   *         url: `post/${id}`,\n   *         method: 'PATCH',\n   *         body: patch,\n   *       }),\n   *       invalidatesTags: ['Post'],\n   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\n   *         const patchResult = dispatch(\n   *           api.util.updateQueryData('getPost', id, (draft) => {\n   *             Object.assign(draft, patch)\n   *           })\n   *         )\n   *         try {\n   *           await queryFulfilled\n   *         } catch {\n   *           patchResult.undo()\n   *         }\n   *       },\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {}\nexport type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific query.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, QueryArgument>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedQueryOnQueryStarted<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async (queryArgument, { dispatch, queryFulfilled }) => {\n *   const result = await queryFulfilled\n *\n *   const { posts } = result.data\n *\n *   // Pre-fill the individual post entries with the results\n *   // from the list endpoint query\n *   dispatch(\n *     baseApiSlice.util.upsertQueryEntries(\n *       posts.map((post) => ({\n *         endpointName: 'getPostById',\n *         arg: post.id,\n *         value: post,\n *       })),\n *     ),\n *   )\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({\n *       query: (userId) => `/posts/user/${userId}`,\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific mutation.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = Pick<Post, 'id'> & Partial<Post>\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, number>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedMutationOnQueryStarted<\n *   Post,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {\n *   const patchCollection = dispatch(\n *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {\n *       Object.assign(draftPost, patch)\n *     }),\n *   )\n *\n *   try {\n *     await queryFulfilled\n *   } catch {\n *     patchCollection.undo()\n *   }\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({\n *       query: (body) => ({\n *         url: `posts/add`,\n *         method: 'POST',\n *         body,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *\n *     updatePost: build.mutation<Post, QueryArgument>({\n *       query: ({ id, ...patch }) => ({\n *         url: `post/${id}`,\n *         method: 'PATCH',\n *         body: patch,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  context,\n  queryThunk,\n  mutationThunk\n}) => {\n  const isPendingThunk = isPending(queryThunk, mutationThunk);\n  const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    resolve(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    reject(value: QueryFulfilledRejectionReason<any>): unknown;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (isPendingThunk(action)) {\n      const {\n        requestId,\n        arg: {\n          endpointName,\n          originalArgs\n        }\n      } = action.meta;\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const onQueryStarted = endpointDefinition?.onQueryStarted;\n      if (onQueryStarted) {\n        const lifecycle = {} as CacheLifecycle;\n        const queryFulfilled = new (Promise as PromiseConstructorWithKnownReason)<{\n          data: unknown;\n          meta: unknown;\n        }, QueryFulfilledRejectionReason<any>>((resolve, reject) => {\n          lifecycle.resolve = resolve;\n          lifecycle.reject = reject;\n        });\n        // prevent uncaught promise rejections from happening.\n        // if the original promise is used in any way, that will create a new promise that will throw again\n        queryFulfilled.catch(() => {});\n        lifecycleMap[requestId] = lifecycle;\n        const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);\n        const extra = mwApi.dispatch((_, __, extra) => extra);\n        const lifecycleApi = {\n          ...mwApi,\n          getCacheEntry: () => selector(mwApi.getState()),\n          requestId,\n          extra,\n          updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n          queryFulfilled\n        };\n        onQueryStarted(originalArgs, lifecycleApi as any);\n      }\n    } else if (isFullfilledThunk(action)) {\n      const {\n        requestId,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.resolve({\n        data: action.payload,\n        meta: baseQueryMeta\n      });\n      delete lifecycleMap[requestId];\n    } else if (isRejectedThunk(action)) {\n      const {\n        requestId,\n        rejectedWithValue,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.reject({\n        error: action.payload ?? action.error,\n        isUnhandledError: !rejectedWithValue,\n        meta: baseQueryMeta as any\n      });\n      delete lifecycleMap[requestId];\n    }\n  };\n  return handler;\n};","import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryCacheKey } from '../apiState';\nimport { onFocus, onOnline } from '../setupListeners';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, SubMiddlewareApi } from './types';\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (onFocus.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnFocus');\n    }\n    if (onOnline.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnReconnect');\n    }\n  };\n  function refetchValidQueries(api: SubMiddlewareApi, type: 'refetchOnFocus' | 'refetchOnReconnect') {\n    const state = api.getState()[reducerPath];\n    const queries = state.queries;\n    const subscriptions = internalState.currentSubscriptions;\n    context.batch(() => {\n      for (const queryCacheKey of subscriptions.keys()) {\n        const querySubState = queries[queryCacheKey];\n        const subscriptionSubState = subscriptions.get(queryCacheKey);\n        if (!subscriptionSubState || !querySubState) continue;\n        const values = [...subscriptionSubState.values()];\n        const shouldRefetch = values.some(sub => sub[type] === true) || values.every(sub => sub[type] === undefined) && state.config[type];\n        if (shouldRefetch) {\n          if (subscriptionSubState.size === 0) {\n            api.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            api.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { Action, Middleware, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState';\nimport type { QueryThunkArg } from '../buildThunks';\nimport { createAction, isAction } from '../rtkImports';\nimport { buildBatchedActionsHandler } from './batchActions';\nimport { buildCacheCollectionHandler } from './cacheCollection';\nimport { buildCacheLifecycleHandler } from './cacheLifecycle';\nimport { buildDevCheckHandler } from './devMiddleware';\nimport { buildInvalidationByTagsHandler } from './invalidationByTags';\nimport { buildPollingHandler } from './polling';\nimport { buildQueryLifecycleHandler } from './queryLifecycle';\nimport type { BuildMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState } from './types';\nimport { buildWindowEventHandler } from './windowEventHandling';\nimport type { ApiEndpointQuery } from '../module';\nexport type { ReferenceCacheCollection } from './cacheCollection';\nexport type { MutationCacheLifecycleApi, QueryCacheLifecycleApi, ReferenceCacheLifecycle } from './cacheLifecycle';\nexport type { MutationLifecycleApi, QueryLifecycleApi, ReferenceQueryLifecycle, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './queryLifecycle';\nexport type { SubscriptionSelectors } from './types';\nexport function buildMiddleware<Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\n  const {\n    reducerPath,\n    queryThunk,\n    api,\n    context,\n    getInternalState\n  } = input;\n  const {\n    apiUid\n  } = context;\n  const actions = {\n    invalidateTags: createAction<Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>>(`${reducerPath}/invalidateTags`)\n  };\n  const isThisApiSliceAction = (action: Action) => action.type.startsWith(`${reducerPath}/`);\n  const handlerBuilders: InternalHandlerBuilder[] = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n  const middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>> = mwApi => {\n    let initialized = false;\n    const internalState = getInternalState(mwApi.dispatch);\n    const builderArgs = {\n      ...(input as any as BuildMiddlewareInput<EndpointDefinitions, string, string>),\n      internalState,\n      refetchQuery,\n      isThisApiSliceAction,\n      mwApi\n    };\n    const handlers = handlerBuilders.map(build => build(builderArgs));\n    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n    const windowEventsHandler = buildWindowEventHandler(builderArgs);\n    return next => {\n      return action => {\n        if (!isAction(action)) {\n          return next(action);\n        }\n        if (!initialized) {\n          initialized = true;\n          // dispatch before any other action\n          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n        }\n        const mwApiWithNext = {\n          ...mwApi,\n          next\n        };\n        const stateBefore = mwApi.getState();\n        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n        let res: any;\n        if (actionShouldContinue) {\n          res = next(action);\n        } else {\n          res = internalProbeResult;\n        }\n        if (!!mwApi.getState()[reducerPath]) {\n          // Only run these checks if the middleware is registered okay\n\n          // This looks for actions that aren't specific to the API slice\n          windowEventsHandler(action, mwApiWithNext, stateBefore);\n          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n            // Only run these additional checks if the actions are part of the API slice,\n            // or the action has hydration-related data\n            for (const handler of handlers) {\n              handler(action, mwApiWithNext, stateBefore);\n            }\n          }\n        }\n        return res;\n      };\n    };\n  };\n  return {\n    middleware,\n    actions\n  };\n  function refetchQuery(querySubState: Exclude<QuerySubState<any>, {\n    status: QueryStatus.uninitialized;\n  }>) {\n    return (input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<any, any>).initiate(querySubState.originalArgs as any, {\n      subscribe: false,\n      forceRefetch: true\n    });\n  }\n}","/**\n * Note: this file should import all other files for type discovery and declaration merging\n */\nimport type { ActionCreatorWithPayload, Dispatch, Middleware, Reducer, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport { enablePatches } from '../utils/immerImports';\nimport type { Api, Module } from '../apiTypes';\nimport type { BaseQueryFn } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinitions, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, TagDescription } from '../endpointDefinitions';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { assertCast, safeAssign } from '../tsHelpers';\nimport type { CombinedState, MutationKeys, QueryKeys, RootState } from './apiState';\nimport type { BuildInitiateApiEndpointMutation, BuildInitiateApiEndpointQuery, MutationActionCreatorResult, QueryActionCreatorResult, InfiniteQueryActionCreatorResult, BuildInitiateApiEndpointInfiniteQuery } from './buildInitiate';\nimport { buildInitiate } from './buildInitiate';\nimport type { ReferenceCacheCollection, ReferenceCacheLifecycle, ReferenceQueryLifecycle } from './buildMiddleware';\nimport { buildMiddleware } from './buildMiddleware';\nimport type { BuildSelectorsApiEndpointInfiniteQuery, BuildSelectorsApiEndpointMutation, BuildSelectorsApiEndpointQuery } from './buildSelectors';\nimport { buildSelectors } from './buildSelectors';\nimport type { SliceActions, UpsertEntries } from './buildSlice';\nimport { buildSlice } from './buildSlice';\nimport type { AllQueryKeys, BuildThunksApiEndpointInfiniteQuery, BuildThunksApiEndpointMutation, BuildThunksApiEndpointQuery, PatchQueryDataThunk, QueryArgFromAnyQueryDefinition, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nimport { buildThunks } from './buildThunks';\nimport { createSelector as _createSelector } from './rtkImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nimport { getOrInsertComputed } from '../utils';\nimport type { CreateSelectorFunction } from 'reselect';\n\n/**\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\n *\n * @overloadSummary\n * `force`\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\n */\nexport type PrefetchOptions = {\n  ifOlderThan?: false | number;\n} | {\n  force?: boolean;\n};\nexport const coreModuleName = /* @__PURE__ */Symbol();\nexport type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;\nexport type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;\nexport interface ApiModules<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nBaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {\n  [coreModuleName]: {\n    /**\n     * This api's reducer should be mounted at `store[api.reducerPath]`.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducerPath: ReducerPath;\n    /**\n     * Internal actions not part of the public API. Note: These are subject to change at any given time.\n     */\n    internalActions: InternalActions;\n    /**\n     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;\n    /**\n     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;\n    /**\n     * A collection of utility thunks for various situations.\n     */\n    util: {\n      /**\n       * A thunk that (if dispatched) will return a specific running query, identified\n       * by `endpointName` and `arg`.\n       * If that query is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific query triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'query';\n      }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'infinitequery';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return a specific running mutation, identified\n       * by `endpointName` and `fixedCacheKey` or `requestId`.\n       * If that mutation is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific mutation triggered in any way,\n       * including via hook trigger functions or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {\n        type: 'mutation';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return all running queries.\n       *\n       * Useful for SSR scenarios to await all running queries triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;\n\n      /**\n       * A thunk that (if dispatched) will return all running mutations.\n       *\n       * Useful for SSR scenarios to await all running mutations triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;\n\n      /**\n       * A Redux thunk that can be used to manually trigger pre-fetching of data.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\n       *\n       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\n       *\n       * @example\n       *\n       * ```ts no-transpile\n       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\n       * ```\n       */\n      prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;\n      /**\n       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\n       *\n       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\n       *\n       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\n       *\n       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\n       *\n       * @example\n       *\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       * ```\n       */\n      updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\n       *\n       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\n       *\n       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\n       *\n       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\n       *\n       * @example\n       *\n       * ```ts\n       * await dispatch(\n       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\n       * )\n       * ```\n       */\n      upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n      /**\n       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\n       *\n       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\n       *\n       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\n       *\n       * @example\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       *\n       * // later\n       * dispatch(\n       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\n       * )\n       *\n       * // or\n       * patchCollection.undo()\n       * ```\n       */\n      patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.resetApiState())\n       * ```\n       */\n      resetApiState: SliceActions['resetApiState'];\n      upsertQueryEntries: UpsertEntries<Definitions>;\n\n      /**\n       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\n       *\n       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\n       *\n       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\n       *\n       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\n       *\n       * - `[TagType]`\n       * - `[{ type: TagType }]`\n       * - `[{ type: TagType, id: number | string }]`\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.invalidateTags(['Post']))\n       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\n       * dispatch(\n       *   api.util.invalidateTags([\n       *     { type: 'Post', id: 1 },\n       *     { type: 'Post', id: 'LIST' },\n       *   ])\n       * )\n       * ```\n       */\n      invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;\n\n      /**\n       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{\n        endpointName: string;\n        originalArgs: any;\n        queryCacheKey: string;\n      }>;\n\n      /**\n       * A function to select all arguments currently cached for a given endpoint.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;\n    };\n    /**\n     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\n     */\n    endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never };\n  };\n}\nexport interface ApiEndpointQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends QueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport interface ApiEndpointInfiniteQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends InfiniteQueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface ApiEndpointMutation<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends MutationDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport type ListenerActions = {\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n};\nexport type InternalActions = SliceActions & ListenerActions;\nexport interface CoreModuleOptions {\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\n *\n * @example\n * ```ts\n * const createBaseApi = buildCreateApi(coreModule());\n * ```\n */\nexport const coreModule = ({\n  createSelector = _createSelector\n}: CoreModuleOptions = {}): Module<CoreModule> => ({\n  name: coreModuleName,\n  init(api, {\n    baseQuery,\n    tagTypes,\n    reducerPath,\n    serializeQueryArgs,\n    keepUnusedDataFor,\n    refetchOnMountOrArgChange,\n    refetchOnFocus,\n    refetchOnReconnect,\n    invalidationBehavior,\n    onSchemaFailure,\n    catchSchemaFailure,\n    skipSchemaValidation\n  }, context) {\n    enablePatches();\n    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs);\n    const assertTagType: AssertTagTypes = tag => {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        if (!tagTypes.includes(tag.type as any)) {\n          console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n        }\n      }\n      return tag;\n    };\n    Object.assign(api, {\n      reducerPath,\n      endpoints: {},\n      internalActions: {\n        onOnline,\n        onOffline,\n        onFocus,\n        onFocusLost\n      },\n      util: {}\n    });\n    const selectors = buildSelectors({\n      serializeQueryArgs: serializeQueryArgs as any,\n      reducerPath,\n      createSelector\n    });\n    const {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery,\n      buildQuerySelector,\n      buildInfiniteQuerySelector,\n      buildMutationSelector\n    } = selectors;\n    safeAssign(api.util, {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery\n    });\n    const {\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      buildMatchThunkActions\n    } = buildThunks({\n      baseQuery,\n      reducerPath,\n      context,\n      api,\n      serializeQueryArgs,\n      assertTagType,\n      selectors,\n      onSchemaFailure,\n      catchSchemaFailure,\n      skipSchemaValidation\n    });\n    const {\n      reducer,\n      actions: sliceActions\n    } = buildSlice({\n      context,\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      serializeQueryArgs,\n      reducerPath,\n      assertTagType,\n      config: {\n        refetchOnFocus,\n        refetchOnReconnect,\n        refetchOnMountOrArgChange,\n        keepUnusedDataFor,\n        reducerPath,\n        invalidationBehavior\n      }\n    });\n    safeAssign(api.util, {\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      resetApiState: sliceActions.resetApiState,\n      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any\n    });\n    safeAssign(api.internalActions, sliceActions);\n    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>();\n    const getInternalState = (dispatch: Dispatch) => {\n      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({\n        currentSubscriptions: new Map(),\n        currentPolls: new Map(),\n        runningQueries: new Map(),\n        runningMutations: new Map()\n      }));\n      return state;\n    };\n    const {\n      buildInitiateQuery,\n      buildInitiateInfiniteQuery,\n      buildInitiateMutation,\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueriesThunk,\n      getRunningQueryThunk\n    } = buildInitiate({\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      serializeQueryArgs: serializeQueryArgs as any,\n      context,\n      getInternalState\n    });\n    safeAssign(api.util, {\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueryThunk,\n      getRunningQueriesThunk\n    });\n    const {\n      middleware,\n      actions: middlewareActions\n    } = buildMiddleware({\n      reducerPath,\n      context,\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      assertTagType,\n      selectors,\n      getRunningQueryThunk,\n      getInternalState\n    });\n    safeAssign(api.util, middlewareActions);\n    safeAssign(api, {\n      reducer: reducer as any,\n      middleware\n    });\n    return {\n      name: coreModuleName,\n      injectEndpoint(endpointName, definition) {\n        const anyApi = api as any as Api<any, Record<string, any>, string, string, CoreModule>;\n        const endpoint = anyApi.endpoints[endpointName] ??= {} as any;\n        if (isQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildQuerySelector(endpointName, definition),\n            initiate: buildInitiateQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n        if (isMutationDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildMutationSelector(),\n            initiate: buildInitiateMutation(endpointName)\n          }, buildMatchThunkActions(mutationThunk, endpointName));\n        }\n        if (isInfiniteQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildInfiniteQuerySelector(endpointName, definition),\n            initiate: buildInitiateInfiniteQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n      }\n    };\n  }\n});","import { buildCreateApi } from '../createApi';\nimport { coreModule } from './module';\nexport const createApi = /* @__PURE__ */buildCreateApi(coreModule());\nexport { QueryStatus } from './apiState';\nexport type { CombinedState, InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationKeys, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './apiState';\nexport type { InfiniteQueryActionCreatorResult, MutationActionCreatorResult, QueryActionCreatorResult, StartQueryActionCreatorOptions } from './buildInitiate';\nexport type { MutationCacheLifecycleApi, MutationLifecycleApi, QueryCacheLifecycleApi, QueryLifecycleApi, SubscriptionSelectors, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './buildMiddleware/index';\nexport { skipToken } from './buildSelectors';\nexport type { InfiniteQueryResultSelectorResult, MutationResultSelectorResult, QueryResultSelectorResult, SkipToken } from './buildSelectors';\nexport type { SliceActions } from './buildSlice';\nexport type { PatchQueryDataThunk, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nexport { coreModuleName } from './module';\nexport type { ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, CoreModule, InternalActions, PrefetchOptions, ThunkWithReturnValue } from './module';\nexport { setupListeners } from './setupListeners';\nexport { buildCreateApi, coreModule };"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkEO,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,cAAW;AAJD,SAAAA;AAAA,GAAA;AAQL,IAAM,uBAAuB;AAC7B,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AA0BxB,SAAS,sBAAsB,QAAyC;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB,WAAW;AAAA,IAC5B,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB;AACF;;;AC3GA,qBAAoR;;;ACDpR,IAAMC,iBAAqC;AAEpC,SAAS,0BAA0B,QAAa,QAAkB;AACvE,MAAI,WAAW,UAAU,EAAEA,eAAc,MAAM,KAAKA,eAAc,MAAM,KAAK,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,MAAM,IAAI;AAC5H,WAAO;AAAA,EACT;AACA,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,MAAI,eAAe,QAAQ,WAAW,QAAQ;AAC9C,QAAM,WAAgB,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC;AACpD,aAAW,OAAO,SAAS;AACzB,aAAS,GAAG,IAAI,0BAA0B,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC;AAClE,QAAI,aAAc,gBAAe,OAAO,GAAG,MAAM,SAAS,GAAG;AAAA,EAC/D;AACA,SAAO,eAAe,SAAS;AACjC;;;ACfO,SAAS,UAAgB,OAAqB,WAAgD,QAAkD;AACrJ,SAAO,MAAM,OAAoB,CAAC,KAAK,MAAM,MAAM;AACjD,QAAI,UAAU,MAAa,CAAC,GAAG;AAC7B,UAAI,KAAK,OAAO,MAAa,CAAC,CAAC;AAAA,IACjC;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,EAAE,KAAK;AACd;;;ACJO,SAAS,cAAc,KAAa;AACzC,SAAO,IAAI,OAAO,SAAS,EAAE,KAAK,GAAG;AACvC;;;ACJO,SAAS,oBAA6B;AAE3C,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,oBAAoB;AACtC;;;ACXO,SAAS,aAAgB,GAAiC;AAC/D,SAAO,KAAK;AACd;AACO,SAAS,oBAAuB,KAAmB;AACxD,SAAO,CAAC,GAAI,KAAK,OAAO,KAAK,CAAC,CAAE,EAAE,OAAO,YAAY;AACvD;;;ACDO,SAAS,WAAW;AAEzB,SAAO,OAAO,cAAc,cAAc,OAAO,UAAU,WAAW,SAAY,OAAO,UAAU;AACrG;;;ACNA,IAAM,uBAAuB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AACnE,IAAM,sBAAsB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AAC3D,SAAS,SAAS,MAA0B,KAAiC;AAClF,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AACA,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO;AAAA,EACT;AACA,QAAM,YAAY,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,WAAW,GAAG,IAAI,MAAM;AACrE,SAAO,qBAAqB,IAAI;AAChC,QAAM,oBAAoB,GAAG;AAC7B,SAAO,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG;AAClC;;;ACLO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;AACO,IAAM,eAAe,MAAM,oBAAI,IAAI;;;ACfnC,IAAM,gBAAgB,CAAC,iBAAyB;AACrD,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,MAAM;AACf,UAAM,UAAU;AAChB,UAAM,OAAO;AACb,oBAAgB;AAAA;AAAA,MAEhB,OAAO,iBAAiB,cAAc,IAAI,aAAa,SAAS,IAAI,IAAI,OAAO,OAAO,IAAI,MAAM,OAAO,GAAG;AAAA,QACxG;AAAA,MACF,CAAC;AAAA,IAAC;AAAA,EACJ,GAAG,YAAY;AACf,SAAO,gBAAgB;AACzB;AAGO,IAAM,YAAY,IAAI,YAA2B;AAEtD,aAAW,UAAU,QAAS,KAAI,OAAO,QAAS,QAAO,YAAY,MAAM,OAAO,MAAM;AAGxF,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,UAAU,SAAS;AAC5B,WAAO,iBAAiB,SAAS,MAAM,gBAAgB,MAAM,OAAO,MAAM,GAAG;AAAA,MAC3E,QAAQ,gBAAgB;AAAA,MACxB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,gBAAgB;AACzB;;;ACHA,IAAM,iBAA+B,IAAI,SAAS,MAAM,GAAG,IAAI;AAC/D,IAAM,wBAAwB,CAAC,aAAuB,SAAS,UAAU,OAAO,SAAS,UAAU;AACnG,IAAM,2BAA2B,CAAC;AAAA;AAAA,EAAiC,yBAAyB,KAAK,QAAQ,IAAI,cAAc,KAAK,EAAE;AAAA;AA4ClI,SAAS,eAAe,KAAU;AAChC,MAAI,KAAC,8BAAc,GAAG,GAAG;AACvB,WAAO;AAAA,EACT;AACA,QAAM,OAA4B;AAAA,IAChC,GAAG;AAAA,EACL;AACA,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,QAAI,MAAM,OAAW,QAAO,KAAK,CAAC;AAAA,EACpC;AACA,SAAO;AACT;AAGA,IAAM,gBAAgB,CAAC,SAAc,OAAO,SAAS,iBAAa,8BAAc,IAAI,KAAK,MAAM,QAAQ,IAAI,KAAK,OAAO,KAAK,WAAW;AAgFhI,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,iBAAiB,OAAK;AAAA,EACtB,UAAU;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB;AAAA,EACA,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,GAAG;AACL,IAAwB,CAAC,GAA0F;AACjH,MAAI,OAAO,UAAU,eAAe,YAAY,gBAAgB;AAC9D,YAAQ,KAAK,2HAA2H;AAAA,EAC1I;AACA,SAAO,OAAO,KAAK,KAAK,iBAAiB;AACvC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI;AACJ,QAAI;AAAA,MACF;AAAA,MACA,UAAU,IAAI,QAAQ,iBAAiB,OAAO;AAAA,MAC9C,SAAS;AAAA,MACT,kBAAkB,yBAAyB;AAAA,MAC3C,iBAAiB,wBAAwB;AAAA,MACzC,UAAU;AAAA,MACV,GAAG;AAAA,IACL,IAAI,OAAO,OAAO,WAAW;AAAA,MAC3B,KAAK;AAAA,IACP,IAAI;AACJ,QAAI,SAAsB;AAAA,MACxB,GAAG;AAAA,MACH,QAAQ,UAAU,UAAU,IAAI,QAAQ,cAAc,OAAO,CAAC,IAAI,IAAI;AAAA,MACtE,GAAG;AAAA,IACL;AACA,cAAU,IAAI,QAAQ,eAAe,OAAO,CAAC;AAC7C,WAAO,UAAW,MAAM,eAAe,SAAS;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,KAAM;AACP,UAAM,oBAAoB,cAAc,OAAO,IAAI;AAInD,QAAI,OAAO,QAAQ,QAAQ,CAAC,qBAAqB,OAAO,OAAO,SAAS,UAAU;AAChF,aAAO,QAAQ,OAAO,cAAc;AAAA,IACtC;AACA,QAAI,CAAC,OAAO,QAAQ,IAAI,cAAc,KAAK,mBAAmB;AAC5D,aAAO,QAAQ,IAAI,gBAAgB,eAAe;AAAA,IACpD;AACA,QAAI,qBAAqB,kBAAkB,OAAO,OAAO,GAAG;AAC1D,aAAO,OAAO,KAAK,UAAU,OAAO,MAAM,YAAY;AAAA,IACxD;AAGA,QAAI,CAAC,OAAO,QAAQ,IAAI,QAAQ,GAAG;AACjC,UAAI,oBAAoB,QAAQ;AAC9B,eAAO,QAAQ,IAAI,UAAU,kBAAkB;AAAA,MACjD,WAAW,oBAAoB,QAAQ;AACrC,eAAO,QAAQ,IAAI,UAAU,4BAA4B;AAAA,MAC3D;AAAA,IAEF;AACA,QAAI,QAAQ;AACV,YAAM,UAAU,CAAC,IAAI,QAAQ,GAAG,IAAI,MAAM;AAC1C,YAAM,QAAQ,mBAAmB,iBAAiB,MAAM,IAAI,IAAI,gBAAgB,eAAe,MAAM,CAAC;AACtG,aAAO,UAAU;AAAA,IACnB;AACA,UAAM,SAAS,SAAS,GAAG;AAC3B,UAAM,UAAU,IAAI,QAAQ,KAAK,MAAM;AACvC,UAAM,eAAe,IAAI,QAAQ,KAAK,MAAM;AAC5C,WAAO;AAAA,MACL,SAAS;AAAA,IACX;AACA,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,QAAQ,OAAO;AAAA,IAClC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,SAAS,aAAa,SAAS,OAAO,iBAAiB,eAAe,aAAa,iBAAiB,EAAE,SAAS,iBAAiB,kBAAkB;AAAA,UAClJ,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,gBAAgB,SAAS,MAAM;AACrC,SAAK,WAAW;AAChB,QAAI;AACJ,QAAI,eAAuB;AAC3B,QAAI;AACF,UAAI;AACJ,YAAM,QAAQ,IAAI;AAAA,QAAC,eAAe,UAAU,eAAe,EAAE,KAAK,OAAK,aAAa,GAAG,OAAK,sBAAsB,CAAC;AAAA;AAAA;AAAA,QAGnH,cAAc,KAAK,EAAE,KAAK,OAAK,eAAe,GAAG,MAAM;AAAA,QAAC,CAAC;AAAA,MAAC,CAAC;AAC3D,UAAI,oBAAqB,OAAM;AAAA,IACjC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,gBAAgB,SAAS;AAAA,UACzB,MAAM;AAAA,UACN,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe,UAAU,UAAU,IAAI;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA,IACF,IAAI;AAAA,MACF,OAAO;AAAA,QACL,QAAQ,SAAS;AAAA,QACjB,MAAM;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,iBAAe,eAAe,UAAoB,iBAAkC;AAClF,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,QAAQ;AAAA,IACjC;AACA,QAAI,oBAAoB,gBAAgB;AACtC,wBAAkB,kBAAkB,SAAS,OAAO,IAAI,SAAS;AAAA,IACnE;AACA,QAAI,oBAAoB,QAAQ;AAC9B,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAO,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI;AAAA,IAC1C;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;ACrTO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA4B,OAA4B,OAAY,QAAW;AAAnD;AAA4B;AAAA,EAAwB;AAClF;;;ACeA,eAAe,eAAe,UAAkB,GAAG,aAAqB,GAAG,QAAsB;AAC/F,QAAM,WAAW,KAAK,IAAI,SAAS,UAAU;AAC7C,QAAM,UAAU,CAAC,GAAG,KAAK,OAAO,IAAI,QAAQ,OAAO;AAEnD,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,UAAM,YAAY,WAAW,MAAM,QAAQ,GAAG,OAAO;AAGrD,QAAI,QAAQ;AACV,YAAM,eAAe,MAAM;AACzB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B;AAGA,UAAI,OAAO,SAAS;AAClB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B,OAAO;AACL,eAAO,iBAAiB,SAAS,cAAc;AAAA,UAC7C,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAyBA,SAAS,KAAkD,OAAkC,MAAwC;AACnI,QAAM,OAAO,OAAO,IAAI,aAAa;AAAA,IACnC;AAAA,IACA;AAAA,EACF,CAAC,GAAG;AAAA,IACF,kBAAkB;AAAA,EACpB,CAAC;AACH;AAMA,SAAS,cAAc,QAA2B;AAChD,MAAI,OAAO,SAAS;AAClB,SAAK;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AACA,IAAM,gBAAgB,CAAC;AACvB,IAAM,mBAAkF,CAAC,WAAW,mBAAmB,OAAO,MAAM,KAAK,iBAAiB;AAIxJ,QAAM,qBAA+B,CAAC,IAAI,kBAAyB,eAAe,aAAa,gBAAuB,eAAe,UAAU,EAAE,OAAO,OAAK,MAAM,MAAS;AAC5K,QAAM,CAAC,UAAU,IAAI,mBAAmB,MAAM,EAAE;AAChD,QAAM,wBAAgD,CAAC,GAAG,IAAI;AAAA,IAC5D;AAAA,EACF,MAAM,WAAW;AACjB,QAAM,UAIF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,MAAIC,SAAQ;AACZ,SAAO,MAAM;AAEX,kBAAc,IAAI,MAAM;AACxB,QAAI;AACF,YAAM,SAAS,MAAM,UAAU,MAAM,KAAK,YAAY;AAEtD,UAAI,OAAO,OAAO;AAChB,cAAM,IAAI,aAAa,MAAM;AAAA,MAC/B;AACA,aAAO;AAAA,IACT,SAAS,GAAQ;AACf,MAAAA;AACA,UAAI,EAAE,kBAAkB;AACtB,YAAI,aAAa,cAAc;AAC7B,iBAAO,EAAE;AAAA,QACX;AAGA,cAAM;AAAA,MACR;AACA,UAAI,aAAa,cAAc;AAC7B,YAAI,CAAC,QAAQ,eAAe,EAAE,MAAM,OAA8B,MAAM;AAAA,UACtE,SAASA;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF,CAAC,GAAG;AACF,iBAAO,EAAE;AAAA,QACX;AAAA,MACF,OAAO;AAEL,YAAIA,SAAQ,QAAQ,YAAY;AAE9B,iBAAO;AAAA,YACL,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAGA,oBAAc,IAAI,MAAM;AACxB,UAAI;AACF,cAAM,QAAQ,QAAQA,QAAO,QAAQ,YAAY,IAAI,MAAM;AAAA,MAC7D,SAAS,cAAc;AAErB,sBAAc,IAAI,MAAM;AAExB,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAkCO,IAAM,QAAuB,uBAAO,OAAO,kBAAkB;AAAA,EAClE;AACF,CAAC;;;ACjMM,IAAM,kBAAkB;AAC/B,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,mBAAmB;AAClB,IAAM,UAAyB,iDAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AAC1E,IAAM,cAA6B,iDAAa,GAAG,eAAe,KAAK,OAAO,EAAE;AAChF,IAAM,WAA0B,iDAAa,GAAG,eAAe,GAAG,MAAM,EAAE;AAC1E,IAAM,YAA2B,iDAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AACnF,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAI,cAAc;AAkBX,SAAS,eAAe,UAAwC,eAKrD;AAChB,WAAS,iBAAiB;AACxB,UAAM,CAAC,aAAa,iBAAiB,cAAc,aAAa,IAAI,CAAC,SAAS,aAAa,UAAU,SAAS,EAAE,IAAI,YAAU,MAAM,SAAS,OAAO,CAAC,CAAC;AACtJ,UAAM,yBAAyB,MAAM;AACnC,UAAI,OAAO,SAAS,oBAAoB,WAAW;AACjD,oBAAY;AAAA,MACd,OAAO;AACL,wBAAgB;AAAA,MAClB;AAAA,IACF;AACA,QAAI,cAAc,MAAM;AACtB,oBAAc;AAAA,IAChB;AACA,QAAI,CAAC,aAAa;AAChB,UAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAO5D,YAASC,mBAAT,SAAyB,KAAc;AACrC,iBAAO,QAAQ,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM;AACrD,gBAAI,KAAK;AACP,qBAAO,iBAAiB,OAAO,SAAS,KAAK;AAAA,YAC/C,OAAO;AACL,qBAAO,oBAAoB,OAAO,OAAO;AAAA,YAC3C;AAAA,UACF,CAAC;AAAA,QACH;AARS,8BAAAA;AANT,cAAM,WAAW;AAAA,UACf,CAAC,KAAK,GAAG;AAAA,UACT,CAAC,gBAAgB,GAAG;AAAA,UACpB,CAAC,MAAM,GAAG;AAAA,UACV,CAAC,OAAO,GAAG;AAAA,QACb;AAWA,QAAAA,iBAAgB,IAAI;AACpB,sBAAc;AACd,sBAAc,MAAM;AAClB,UAAAA,iBAAgB,KAAK;AACrB,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,gBAAgB,cAAc,UAAU,OAAO,IAAI,eAAe;AAC3E;;;ACqTO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAwI;AAC3K,SAAO,kBAAkB,CAAC,KAAK,0BAA0B,CAAC;AAC5D;AA4DO,SAAS,oBAA+D,aAA+F,QAAgC,OAA8B,UAAoB,MAA4B,gBAAuE;AACjW,QAAM,mBAAmB,WAAW,WAAW,IAAI,YAAY,QAAsB,OAAoB,UAAU,IAAgB,IAAI;AACvI,MAAI,kBAAkB;AACpB,WAAO,UAAU,kBAAkB,cAAc,SAAO,eAAe,qBAAqB,GAAG,CAAC,CAAC;AAAA,EACnG;AACA,SAAO,CAAC;AACV;AACA,SAAS,WAAc,GAAiC;AACtD,SAAO,OAAO,MAAM;AACtB;AACO,SAAS,qBAAqB,aAAiE;AACpG,SAAO,OAAO,gBAAgB,WAAW;AAAA,IACvC,MAAM;AAAA,EACR,IAAI;AACN;;;AC/6BA,mBAAyG;;;ACAzG,IAAAC,kBAAkE;;;AC+G3D,SAAS,cAAkC,SAA4B,UAAwC;AACpH,SAAO,QAAQ,MAAM,QAAQ;AAC/B;;;AC5FO,IAAM,wBAAwB,CAAkF,SAAkC,iBAA+B,QAAQ,oBAAoB,YAAY;;;AFEzN,IAAM,qBAAqB,OAAO,cAAc;AAChD,IAAM,gBAAgB,CAAC,QAAuB,OAAO,IAAI,kBAAkB,MAAM;AA2IjF,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,oBAAoB,CAAC,aAAuB,iBAAiB,QAAQ,GAAG;AAC9E,QAAM,sBAAsB,CAAC,aAAuB,iBAAiB,QAAQ,GAAG;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,qBAAqB,cAAsB,WAAgB;AAClE,WAAO,CAAC,aAAuB;AAC7B,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,gBAAgB,mBAAmB;AAAA,QACvC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,kBAAkB,QAAQ,GAAG,IAAI,aAAa;AAAA,IACvD;AAAA,EACF;AACA,WAAS,wBAKT,eAAuB,0BAAkC;AACvD,WAAO,CAAC,aAAuB;AAC7B,aAAO,oBAAoB,QAAQ,GAAG,IAAI,wBAAwB;AAAA,IACpE;AAAA,EACF;AACA,WAAS,yBAAyB;AAChC,WAAO,CAAC,aAAuB,oBAAoB,kBAAkB,QAAQ,CAAC;AAAA,EAChF;AACA,WAAS,2BAA2B;AAClC,WAAO,CAAC,aAAuB,oBAAoB,oBAAoB,QAAQ,CAAC;AAAA,EAClF;AACA,WAAS,kBAAkB,UAAoB;AAC7C,QAAI,MAAuC;AACzC,UAAK,kBAA0B,UAAW;AAC1C,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,MAAC,kBAA0B,YAAY;AAIvC,UAAI,OAAO,kBAAkB,YAAY,OAAO,eAAe,SAAS,UAAU;AAEhF,cAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,iEACrG;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AACA,WAAS,sBAA2D,cAAsB,oBAA4G;AACpM,UAAM,cAA0C,CAAC,KAAK;AAAA,MACpD,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,CAAC,qBAAqB;AAAA,MACtB,GAAG;AAAA,IACL,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa;AACjC,YAAM,gBAAgB,mBAAmB;AAAA,QACvC,WAAW;AAAA,QACX;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI;AACJ,YAAM,kBAAkB;AAAA,QACtB,GAAG;AAAA,QACH,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA,CAAC,kBAAkB,GAAG;AAAA,MACxB;AACA,UAAI,kBAAkB,kBAAkB,GAAG;AACzC,gBAAQ,WAAW,eAAe;AAAA,MACpC,OAAO;AACL,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,gBAAQ,mBAAmB;AAAA,UACzB,GAAI;AAAA;AAAA;AAAA,UAGJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,YAAM,WAAY,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG;AACvF,YAAM,cAAc,SAAS,KAAK;AAClC,YAAM,aAAa,SAAS,SAAS,CAAC;AACtC,wBAAkB,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,uBAAuB,WAAW,cAAc;AACtD,YAAM,eAAe,kBAAkB,QAAQ,GAAG,IAAI,aAAa;AACnE,YAAM,kBAAkB,MAAM,SAAS,SAAS,CAAC;AACjD,YAAM,eAAuC,OAAO,OAAQ;AAAA;AAAA;AAAA,QAG5D,YAAY,KAAK,eAAe;AAAA,UAAI,wBAAwB,CAAC;AAAA;AAAA;AAAA,QAG7D,QAAQ,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,QAG1B,QAAQ,IAAI,CAAC,cAAc,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,SAAwB;AAAA,QACnF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,SAAS;AACb,gBAAM,SAAS,MAAM;AACrB,cAAI,OAAO,SAAS;AAClB,kBAAM,OAAO;AAAA,UACf;AACA,iBAAO,OAAO;AAAA,QAChB;AAAA,QACA,SAAS,CAAC,YAA6B,SAAS,YAAY,KAAK;AAAA,UAC/D,WAAW;AAAA,UACX,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC,CAAC;AAAA,QACF,cAAc;AACZ,cAAI,UAAW,UAAS,uBAAuB;AAAA,YAC7C;AAAA,YACA;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,QACA,0BAA0B,SAA8B;AACtD,uBAAa,sBAAsB;AACnC,mBAAS,0BAA0B;AAAA,YACjC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,CAAC;AACD,UAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc;AAC3D,cAAM,iBAAiB,kBAAkB,QAAQ;AACjD,uBAAe,IAAI,eAAe,YAAY;AAC9C,qBAAa,KAAK,MAAM;AACtB,yBAAe,OAAO,aAAa;AAAA,QACrC,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,UAAM,cAA4C,sBAAsB,cAAc,kBAAkB;AACxG,WAAO;AAAA,EACT;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM,sBAA4D,sBAAsB,cAAc,kBAAkB;AACxH,WAAO;AAAA,EACT;AACA,WAAS,sBAAsB,cAAuD;AACpF,WAAO,CAAC,KAAK;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,IACF,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa;AACjC,YAAM,QAAQ,cAAc;AAAA,QAC1B,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,cAAc,SAAS,KAAK;AAClC,wBAAkB,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,cAAc,YAAY,OAAO,EAAE,KAAK,WAAS;AAAA,QAC1E;AAAA,MACF,EAAE,GAAG,YAAU;AAAA,QACb;AAAA,MACF,EAAE;AACF,YAAM,QAAQ,MAAM;AAClB,iBAAS,qBAAqB;AAAA,UAC5B;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ;AACA,YAAM,MAAM,OAAO,OAAO,oBAAoB;AAAA,QAC5C,KAAK,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,mBAAmB,oBAAoB,QAAQ;AACrD,uBAAiB,IAAI,WAAW,GAAG;AACnC,UAAI,KAAK,MAAM;AACb,yBAAiB,OAAO,SAAS;AAAA,MACnC,CAAC;AACD,UAAI,eAAe;AACjB,yBAAiB,IAAI,eAAe,GAAG;AACvC,YAAI,KAAK,MAAM;AACb,cAAI,iBAAiB,IAAI,aAAa,MAAM,KAAK;AAC/C,6BAAiB,OAAO,aAAa;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AGrZA,IAAAC,gBAA4B;AAErB,IAAM,mBAAN,cAA+B,0BAAY;AAAA,EAChD,YAAY,QAA2D,OAA4B,YAAmD,SAAc;AAClK,UAAM,MAAM;AADyD;AAA4B;AAAmD;AAAA,EAEtJ;AACF;AACO,IAAM,aAAa,CAAC,sBAA0D,eAA2B,MAAM,QAAQ,oBAAoB,IAAI,qBAAqB,SAAS,UAAU,IAAI,CAAC,CAAC;AACpM,eAAsB,gBAAiD,QAAgB,MAAe,YAAmC,QAA4D;AACnM,QAAM,SAAS,MAAM,OAAO,WAAW,EAAE,SAAS,IAAI;AACtD,MAAI,OAAO,QAAQ;AACjB,UAAM,IAAI,iBAAiB,OAAO,QAAQ,MAAM,YAAY,MAAM;AAAA,EACpE;AACA,SAAO,OAAO;AAChB;;;AC+DA,SAAS,yBAAyB,sBAA+B;AAC/D,SAAO;AACT;AA8BO,IAAM,qBAAqB,CAAiC,MAAS,CAAC,MAExE;AACH,SAAO;AAAA,IACL,GAAG;AAAA,IACH,CAAC,+BAAgB,GAAG;AAAA,EACtB;AACF;AACO,SAAS,YAAgH;AAAA,EAC9H;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AACxB,GAWG;AAED,QAAM,iBAAkE,CAAC,cAAc,KAAK,SAAS,mBAAmB,CAAC,UAAU,aAAa;AAC9I,UAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAM,gBAAgB,mBAAmB;AAAA,MACvC,WAAW;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;AACD,aAAS,IAAI,gBAAgB,mBAAmB;AAAA,MAC9C;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AACF,QAAI,CAAC,gBAAgB;AACnB;AAAA,IACF;AACA,UAAM,WAAW,IAAI,UAAU,YAAY,EAAE,OAAO,GAAG;AAAA;AAAA,MAEvD,SAAS;AAAA,IAA6B;AACtC,UAAM,eAAe,oBAAoB,mBAAmB,cAAc,SAAS,MAAM,QAAW,KAAK,CAAC,GAAG,aAAa;AAC1H,aAAS,IAAI,gBAAgB,iBAAiB,CAAC;AAAA,MAC7C;AAAA,MACA;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,WAAc,OAAiB,MAAS,MAAM,GAAa;AAClE,UAAM,WAAW,CAAC,MAAM,GAAG,KAAK;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AAAA,EAChE;AACA,WAAS,SAAY,OAAiB,MAAS,MAAM,GAAa;AAChE,UAAM,WAAW,CAAC,GAAG,OAAO,IAAI;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,CAAC,IAAI;AAAA,EAC5D;AACA,QAAM,kBAAoE,CAAC,cAAc,KAAK,cAAc,iBAAiB,SAAS,CAAC,UAAU,aAAa;AAC5J,UAAM,qBAAqB,IAAI,UAAU,YAAY;AACrD,UAAM,eAAe,mBAAmB,OAAO,GAAG;AAAA;AAAA,MAElD,SAAS;AAAA,IAA6B;AACtC,UAAM,MAAuB;AAAA,MAC3B,SAAS,CAAC;AAAA,MACV,gBAAgB,CAAC;AAAA,MACjB,MAAM,MAAM,SAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,gBAAgB,cAAc,CAAC;AAAA,IACrG;AACA,QAAI,aAAa,WAAW,sBAAsB;AAChD,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI,UAAU,cAAc;AAC1B,cAAI,0BAAY,aAAa,IAAI,GAAG;AAClC,cAAM,CAAC,OAAO,SAAS,cAAc,QAAI,iCAAmB,aAAa,MAAM,YAAY;AAC3F,YAAI,QAAQ,KAAK,GAAG,OAAO;AAC3B,YAAI,eAAe,KAAK,GAAG,cAAc;AACzC,mBAAW;AAAA,MACb,OAAO;AACL,mBAAW,aAAa,aAAa,IAAI;AACzC,YAAI,QAAQ,KAAK;AAAA,UACf,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO;AAAA,QACT,CAAC;AACD,YAAI,eAAe,KAAK;AAAA,UACtB,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO,aAAa;AAAA,QACtB,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,IAAI,QAAQ,WAAW,GAAG;AAC5B,aAAO;AAAA,IACT;AACA,aAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,SAAS,cAAc,CAAC;AAChF,WAAO;AAAA,EACT;AACA,QAAM,kBAA4D,CAAC,cAAc,KAAK,UAAU,cAAY;AAE1G,UAAM,MAAM,SAAU,IAAI,UAAU,YAAY,EAA8E,SAAS,KAAK;AAAA,MAC1I,WAAW;AAAA,MACX,cAAc;AAAA,MACd,CAAC,kBAAkB,GAAG,OAAO;AAAA,QAC3B,MAAM;AAAA,MACR;AAAA,IACF,CAAC,CAAC;AACF,WAAO;AAAA,EACT;AACA,QAAM,kCAAkC,CAAC,oBAA4D,uBAA0F;AAC7L,WAAO,mBAAmB,SAAS,mBAAmB,kBAAkB,IAAI,mBAAmB,kBAAkB,IAA0B;AAAA,EAC7I;AAGA,QAAM,kBAED,OAAO,KAAK;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAM;AACJ,UAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,UAAM;AAAA,MACJ;AAAA,MACA,uBAAuB;AAAA,IACzB,IAAI;AACJ,UAAM,UAAU,IAAI,SAAS;AAC7B,QAAI;AACF,UAAI,oBAAuC;AAC3C,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,IAAI;AAAA,QACd,MAAM,IAAI;AAAA,QACV,QAAQ,UAAU,cAAc,KAAK,SAAS,CAAC,IAAI;AAAA,QACnD,eAAe,UAAU,IAAI,gBAAgB;AAAA,MAC/C;AACA,YAAM,eAAe,UAAU,IAAI,kBAAkB,IAAI;AACzD,UAAI;AAIJ,YAAM,YAAY,OAAO,MAAsC,OAAgB,UAAkB,aAAkD;AAGjJ,YAAI,SAAS,QAAQ,KAAK,MAAM,QAAQ;AACtC,iBAAO,QAAQ,QAAQ;AAAA,YACrB;AAAA,UACF,CAAC;AAAA,QACH;AACA,cAAM,gBAAoD;AAAA,UACxD,UAAU,IAAI;AAAA,UACd,WAAW;AAAA,QACb;AACA,cAAM,eAAe,MAAM,eAAe,aAAa;AACvD,cAAM,QAAQ,WAAW,aAAa;AACtC,eAAO;AAAA,UACL,MAAM;AAAA,YACJ,OAAO,MAAM,KAAK,OAAO,aAAa,MAAM,QAAQ;AAAA,YACpD,YAAY,MAAM,KAAK,YAAY,OAAO,QAAQ;AAAA,UACpD;AAAA,UACA,MAAM,aAAa;AAAA,QACrB;AAAA,MACF;AAIA,qBAAe,eAAe,eAAmD;AAC/E,YAAI;AACJ,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI,aAAa,CAAC,WAAW,sBAAsB,KAAK,GAAG;AACzD,0BAAgB,MAAM;AAAA,YAAgB;AAAA,YAAW;AAAA,YAAe;AAAA,YAAa,CAAC;AAAA;AAAA,UAC9E;AAAA,QACF;AACA,YAAI,cAAc;AAEhB,mBAAS,aAAa;AAAA,QACxB,WAAW,mBAAmB,OAAO;AAGnC,8BAAoB,gCAAgC,oBAAoB,mBAAmB;AAC3F,mBAAS,MAAM,UAAU,mBAAmB,MAAM,aAAoB,GAAG,cAAc,YAAmB;AAAA,QAC5G,OAAO;AACL,mBAAS,MAAM,mBAAmB,QAAQ,eAAsB,cAAc,cAAqB,CAAAC,SAAO,UAAUA,MAAK,cAAc,YAAmB,CAAC;AAAA,QAC7J;AACA,YAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,gBAAM,OAAO,mBAAmB,QAAQ,gBAAgB;AACxD,cAAI;AACJ,cAAI,CAAC,QAAQ;AACX,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,WAAW,UAAU;AACrC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,SAAS,OAAO,MAAM;AACtC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,UAAU,UAAa,OAAO,SAAS,QAAW;AAClE,kBAAM,GAAG,IAAI;AAAA,UACf,OAAO;AACL,uBAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,kBAAI,QAAQ,WAAW,QAAQ,UAAU,QAAQ,QAAQ;AACvD,sBAAM,0BAA0B,IAAI,6BAA6B,GAAG;AACpE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,KAAK;AACP,oBAAQ,MAAM,2CAA2C,IAAI,YAAY;AAAA,oBACjE,GAAG;AAAA;AAAA,yCAEkB,MAAM;AAAA,UACrC;AAAA,QACF;AACA,YAAI,OAAO,MAAO,OAAM,IAAI,aAAa,OAAO,OAAO,OAAO,IAAI;AAClE,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,YAAI,qBAAqB,CAAC,WAAW,sBAAsB,aAAa,GAAG;AACzE,iBAAO,MAAM,gBAAgB,mBAAmB,OAAO,MAAM,qBAAqB,OAAO,IAAI;AAAA,QAC/F;AACA,YAAI,sBAAsB,MAAM,kBAAkB,MAAM,OAAO,MAAM,aAAa;AAClF,YAAI,kBAAkB,CAAC,WAAW,sBAAsB,UAAU,GAAG;AACnE,gCAAsB,MAAM,gBAAgB,gBAAgB,qBAAqB,kBAAkB,OAAO,IAAI;AAAA,QAChH;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,MACF;AACA,UAAI,WAAW,0BAA0B,oBAAoB;AAE3D,cAAM;AAAA,UACJ;AAAA,QACF,IAAI;AAGJ,cAAM;AAAA,UACJ,WAAW;AAAA,QACb,IAAI;AAGJ,cAAM,qBAAsB,IAAmC,sBAAsB,qBAAqB,sBAAsB;AAChI,YAAI;AAIJ,cAAM,YAAY;AAAA,UAChB,OAAO,CAAC;AAAA,UACR,YAAY,CAAC;AAAA,QACf;AACA,cAAM,aAAa,UAAU,iBAAiB,SAAS,GAAG,IAAI,aAAa,GAAG;AAM9E,cAAM;AAAA;AAAA,UAEN,cAAc,KAAK,SAAS,CAAC,KAAK,CAAE,IAAmC;AAAA;AACvE,cAAM,eAAgB,+BAA+B,CAAC,aAAa,YAAY;AAI/E,YAAI,eAAe,OAAO,IAAI,aAAa,aAAa,MAAM,QAAQ;AACpE,gBAAM,WAAW,IAAI,cAAc;AACnC,gBAAM,cAAc,WAAW,uBAAuB;AACtD,gBAAM,QAAQ,YAAY,sBAAsB,cAAc,IAAI,YAAY;AAC9E,mBAAS,MAAM,UAAU,cAAc,OAAO,UAAU,QAAQ;AAAA,QAClE,OAAO;AAGL,gBAAM;AAAA,YACJ,mBAAmB,qBAAqB;AAAA,UAC1C,IAAI;AAKJ,gBAAM,mBAAmB,YAAY,cAAc,CAAC;AACpD,gBAAM,iBAAiB,iBAAiB,CAAC,KAAK;AAC9C,gBAAM,aAAa,iBAAiB;AAGpC,mBAAS,MAAM,UAAU,cAAc,gBAAgB,QAAQ;AAC/D,cAAI,cAAc;AAGhB,qBAAS;AAAA,cACP,MAAO,OAAO,KAAwC,MAAM,CAAC;AAAA,YAC/D;AAAA,UACF;AACA,cAAI,oBAAoB;AAEtB,qBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,oBAAM,QAAQ,iBAAiB,sBAAsB,OAAO,MAAwC,IAAI,YAAY;AACpH,uBAAS,MAAM,UAAU,OAAO,MAAwC,OAAO,QAAQ;AAAA,YACzF;AAAA,UACF;AAAA,QACF;AACA,gCAAwB;AAAA,MAC1B,OAAO;AAEL,gCAAwB,MAAM,eAAe,IAAI,YAAY;AAAA,MAC/D;AACA,UAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,KAAK,sBAAsB,MAAM;AACzF,8BAAsB,OAAO,MAAM,gBAAgB,YAAY,sBAAsB,MAAM,cAAc,sBAAsB,IAAI;AAAA,MACrI;AAGA,aAAO,iBAAiB,sBAAsB,MAAM,mBAAmB;AAAA,QACrE,oBAAoB,KAAK,IAAI;AAAA,QAC7B,eAAe,sBAAsB;AAAA,MACvC,CAAC,CAAC;AAAA,IACJ,SAAS,OAAO;AACd,UAAI,cAAc;AAClB,UAAI,uBAAuB,cAAc;AACvC,YAAI,yBAAyB,gCAAgC,oBAAoB,wBAAwB;AACzG,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AAAA,UACF;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AACF,cAAI,0BAA0B,CAAC,WAAW,sBAAsB,kBAAkB,GAAG;AACnF,oBAAQ,MAAM,gBAAgB,wBAAwB,OAAO,0BAA0B,IAAI;AAAA,UAC7F;AACA,cAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,GAAG;AAC3D,mBAAO,MAAM,gBAAgB,YAAY,MAAM,cAAc,IAAI;AAAA,UACnE;AACA,cAAI,2BAA2B,MAAM,uBAAuB,OAAO,MAAM,IAAI,YAAY;AACzF,cAAI,uBAAuB,CAAC,WAAW,sBAAsB,eAAe,GAAG;AAC7E,uCAA2B,MAAM,gBAAgB,qBAAqB,0BAA0B,uBAAuB,IAAI;AAAA,UAC7H;AACA,iBAAO,gBAAgB,0BAA0B,mBAAmB;AAAA,YAClE,eAAe;AAAA,UACjB,CAAC,CAAC;AAAA,QACJ,SAAS,GAAG;AACV,wBAAc;AAAA,QAChB;AAAA,MACF;AACA,UAAI;AACF,YAAI,uBAAuB,kBAAkB;AAC3C,gBAAM,OAA0B;AAAA,YAC9B,UAAU,IAAI;AAAA,YACd,KAAK,IAAI;AAAA,YACT,MAAM,IAAI;AAAA,YACV,eAAe,UAAU,IAAI,gBAAgB;AAAA,UAC/C;AACA,6BAAmB,kBAAkB,aAAa,IAAI;AACtD,4BAAkB,aAAa,IAAI;AACnC,gBAAM;AAAA,YACJ,qBAAqB;AAAA,UACvB,IAAI;AACJ,cAAI,oBAAoB;AACtB,mBAAO,gBAAgB,mBAAmB,aAAa,IAAI,GAAG,mBAAmB;AAAA,cAC/E,eAAe,YAAY;AAAA,YAC7B,CAAC,CAAC;AAAA,UACJ;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AACV,sBAAc;AAAA,MAChB;AACA,UAAI,OAAO,YAAY,eAAe,MAAuC;AAC3E,gBAAQ,MAAM,sEAAsE,IAAI,YAAY;AAAA,kFAC1B,WAAW;AAAA,MACvF,OAAO;AACL,gBAAQ,MAAM,WAAW;AAAA,MAC3B;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACA,WAAS,cAAc,KAAoB,OAA4C;AACrF,UAAM,eAAe,UAAU,iBAAiB,OAAO,IAAI,aAAa;AACxE,UAAM,8BAA8B,UAAU,aAAa,KAAK,EAAE;AAClE,UAAM,eAAe,cAAc;AACnC,UAAM,aAAa,IAAI,iBAAiB,IAAI,aAAa;AACzD,QAAI,YAAY;AAEd,aAAO,eAAe,SAAS,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,YAAY,KAAK,OAAQ;AAAA,IACtF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAwE;AAC/F,UAAM,0BAAsB,iCAEzB,GAAG,WAAW,iBAAiB,iBAAiB;AAAA,MACjD,eAAe;AAAA,QACb;AAAA,MACF,GAAG;AACD,cAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,eAAO,mBAAmB;AAAA,UACxB,kBAAkB,KAAK,IAAI;AAAA,UAC3B,GAAI,0BAA0B,kBAAkB,IAAI;AAAA,YAClD,WAAY,IAAmC;AAAA,UACjD,IAAI,CAAC;AAAA,QACP,CAAC;AAAA,MACH;AAAA,MACA,UAAU,eAAe;AAAA,QACvB;AAAA,MACF,GAAG;AACD,cAAM,QAAQ,SAAS;AACvB,cAAM,eAAe,UAAU,iBAAiB,OAAO,cAAc,aAAa;AAClF,cAAM,eAAe,cAAc;AACnC,cAAM,aAAa,cAAc;AACjC,cAAM,cAAc,cAAc;AAClC,cAAM,qBAAqB,oBAAoB,cAAc,YAAY;AACzE,cAAM,YAAa,cAA6C;AAKhE,YAAI,cAAc,aAAa,GAAG;AAChC,iBAAO;AAAA,QACT;AAGA,YAAI,cAAc,WAAW,WAAW;AACtC,iBAAO;AAAA,QACT;AAGA,YAAI,cAAc,eAAe,KAAK,GAAG;AACvC,iBAAO;AAAA,QACT;AACA,YAAI,kBAAkB,kBAAkB,KAAK,oBAAoB,eAAe;AAAA,UAC9E;AAAA,UACA;AAAA,UACA,eAAe;AAAA,UACf;AAAA,QACF,CAAC,GAAG;AACF,iBAAO;AAAA,QACT;AAGA,YAAI,gBAAgB,CAAC,WAAW;AAE9B,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA,MACA,4BAA4B;AAAA,IAC9B,CAAC;AACD,WAAO;AAAA,EACT;AACA,QAAM,aAAa,iBAAgC;AACnD,QAAM,qBAAqB,iBAA6C;AACxE,QAAM,oBAAgB,iCAEnB,GAAG,WAAW,oBAAoB,iBAAiB;AAAA,IACpD,iBAAiB;AACf,aAAO,mBAAmB;AAAA,QACxB,kBAAkB,KAAK,IAAI;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,cAAc,CAAC,YAEhB,WAAW;AAChB,QAAM,YAAY,CAAC,YAEd,iBAAiB;AACtB,QAAM,WAAW,CAA+C,cAA4B,KAAU,UAA2B,CAAC,MAAkD,CAAC,UAAwC,aAAwB;AACnP,UAAM,QAAQ,YAAY,OAAO,KAAK,QAAQ;AAC9C,UAAM,SAAS,UAAU,OAAO,KAAK,QAAQ;AAC7C,UAAM,cAAc,CAACC,SAAiB,SAAS;AAC7C,YAAMC,WAA0C;AAAA,QAC9C,cAAcD;AAAA,QACd,WAAW;AAAA,MACb;AACA,aAAQ,IAAI,UAAU,YAAY,EAAiC,SAAS,KAAKC,QAAO;AAAA,IAC1F;AACA,UAAM,mBAAoB,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG,EAAE,SAAS,CAAC;AAC3G,QAAI,OAAO;AACT,eAAS,YAAY,CAAC;AAAA,IACxB,WAAW,QAAQ;AACjB,YAAM,kBAAkB,kBAAkB;AAC1C,UAAI,CAAC,iBAAiB;AACpB,iBAAS,YAAY,CAAC;AACtB;AAAA,MACF;AACA,YAAM,mBAAmB,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,eAAe,CAAC,KAAK,OAAQ;AAC3F,UAAI,iBAAiB;AACnB,iBAAS,YAAY,CAAC;AAAA,MACxB;AAAA,IACF,OAAO;AAEL,eAAS,YAAY,KAAK,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,gBAAgB,cAAsB;AAC7C,WAAO,CAAC,WAAyC,QAAQ,MAAM,KAAK,iBAAiB;AAAA,EACvF;AACA,WAAS,uBAAiJ,OAAc,cAAsB;AAC5L,WAAO;AAAA,MACL,kBAAc,4BAAQ,0BAAU,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACrE,oBAAgB,4BAAQ,4BAAY,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACzE,mBAAe,4BAAQ,2BAAW,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AACO,SAAS,iBAAiB,SAAgE;AAAA,EAC/F;AAAA,EACA;AACF,GAAmC,UAAwC;AACzE,QAAM,YAAY,MAAM,SAAS;AACjC,SAAO,QAAQ,iBAAiB,MAAM,SAAS,GAAG,OAAO,WAAW,SAAS,GAAG,YAAY,QAAQ;AACtG;AACO,SAAS,qBAAqB,SAAgE;AAAA,EACnG;AAAA,EACA;AACF,GAAmC,UAAwC;AACzE,SAAO,QAAQ,uBAAuB,MAAM,CAAC,GAAG,OAAO,WAAW,CAAC,GAAG,YAAY,QAAQ;AAC5F;AACO,SAAS,yBAAyB,QAAqJ,MAA0C,qBAA0C,eAA+B;AAC/S,SAAO,oBAAoB,oBAAoB,OAAO,KAAK,IAAI,YAAY,EAAE,IAAI,OAAiD,4BAAY,MAAM,IAAI,OAAO,UAAU,YAAW,oCAAoB,MAAM,IAAI,OAAO,UAAU,QAAW,OAAO,KAAK,IAAI,cAAc,mBAAmB,OAAO,OAAO,OAAO,KAAK,gBAAgB,QAAW,aAAa;AACnW;;;AC7oBO,SAAS,WAAc,OAAwB;AACpD,aAAQ,sBAAQ,KAAK,QAAI,sBAAQ,KAAK,IAAI;AAC5C;;;ACyCA,SAAS,4BAA4B,OAAwB,eAA8B,QAA6E;AACtK,QAAM,WAAW,MAAM,aAAa;AACpC,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AAWO,SAAS,oBAAoB,IAQb;AACrB,UAAQ,SAAS,KAAK,GAAG,IAAI,gBAAgB,GAAG,kBAAkB,GAAG;AACvE;AACA,SAAS,+BAA+B,OAA2B,IAKhE,QAAmD;AACpD,QAAM,WAAW,MAAM,oBAAoB,EAAE,CAAC;AAC9C,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AACA,IAAM,eAAe,CAAC;AACf,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GASG;AACD,QAAM,oBAAgB,6BAAa,GAAG,WAAW,gBAAgB;AACjE,WAAS,uBAAuB,OAAwB,KAAoB,WAAoB,MAM7F;AACD,UAAM,IAAI,aAAa,MAAM;AAAA,MAC3B,QAAQ;AAAA,MACR,cAAc,IAAI;AAAA,IACpB;AACA,gCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,eAAS,SAAS;AAClB,eAAS,YAAY,aAAa,SAAS;AAAA;AAAA,QAE3C,SAAS;AAAA;AAAA;AAAA,QAET,KAAK;AAAA;AACL,UAAI,IAAI,iBAAiB,QAAW;AAClC,iBAAS,eAAe,IAAI;AAAA,MAC9B;AACA,eAAS,mBAAmB,KAAK;AACjC,YAAM,qBAAqB,YAAY,KAAK,IAAI,YAAY;AAC5D,UAAI,0BAA0B,kBAAkB,KAAK,eAAe,KAAK;AACvE;AACA,QAAC,SAAwC,YAAY,IAAI;AAAA,MAC3D;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,yBAAyB,OAAwB,MAMvD,SAAkB,WAAoB;AACvC,gCAA4B,OAAO,KAAK,IAAI,eAAe,cAAY;AACrE,UAAI,SAAS,cAAc,KAAK,aAAa,CAAC,UAAW;AACzD,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,YAAY,KAAK,IAAI,YAAY;AACrC,eAAS,SAAS;AAClB,UAAI,OAAO;AACT,YAAI,SAAS,SAAS,QAAW;AAC/B,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AAKJ,cAAI,cAAU,gCAAgB,SAAS,MAAM,uBAAqB;AAEhE,mBAAO,MAAM,mBAAmB,SAAS;AAAA,cACvC,KAAK,IAAI;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AACD,mBAAS,OAAO;AAAA,QAClB,OAAO;AAEL,mBAAS,OAAO;AAAA,QAClB;AAAA,MACF,OAAO;AAEL,iBAAS,OAAO,YAAY,KAAK,IAAI,YAAY,EAAE,qBAAqB,OAAO,8BAA0B,sBAAQ,SAAS,IAAI,QAAI,uBAAS,SAAS,IAAI,IAAI,SAAS,MAAM,OAAO,IAAI;AAAA,MACxL;AACA,aAAO,SAAS;AAChB,eAAS,qBAAqB,KAAK;AAAA,IACrC,CAAC;AAAA,EACH;AACA,QAAM,iBAAa,4BAAY;AAAA,IAC7B,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,mBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,UACF;AAAA,QACF,GAA2C;AACzC,iBAAO,MAAM,aAAa;AAAA,QAC5B;AAAA,QACA,aAAS,mCAA4C;AAAA,MACvD;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAIX;AACF,qBAAW,SAAS,OAAO,SAAS;AAClC,kBAAM;AAAA,cACJ,kBAAkB;AAAA,cAClB;AAAA,YACF,IAAI;AACJ,mCAAuB,OAAO,KAAK,MAAM;AAAA,cACvC;AAAA,cACA,WAAW,OAAO,KAAK;AAAA,cACvB,kBAAkB,OAAO,KAAK;AAAA,YAChC,CAAC;AACD;AAAA,cAAyB;AAAA,cAAO;AAAA,gBAC9B;AAAA,gBACA,WAAW,OAAO,KAAK;AAAA,gBACvB,oBAAoB,OAAO,KAAK;AAAA,gBAChC,eAAe,CAAC;AAAA,cAClB;AAAA,cAAG;AAAA;AAAA,cAEH;AAAA,YAAI;AAAA,UACN;AAAA,QACF;AAAA,QACA,SAAS,CAAC,YAAiD;AACzD,gBAAM,oBAAiD,QAAQ,IAAI,WAAS;AAC1E,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI;AACJ,kBAAM,qBAAqB,YAAY,YAAY;AACnD,kBAAM,mBAAkC;AAAA,cACtC,MAAM;AAAA,cACN;AAAA,cACA,cAAc,MAAM;AAAA,cACpB,eAAe,mBAAmB;AAAA,gBAChC,WAAW;AAAA,gBACX;AAAA,gBACA;AAAA,cACF,CAAC;AAAA,YACH;AACA,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AACD,gBAAM,SAAS;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,CAAC,+BAAgB,GAAG;AAAA,cACpB,eAAW,uBAAO;AAAA,cAClB,WAAW,KAAK,IAAI;AAAA,YACtB;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,YACA;AAAA,UACF;AAAA,QACF,GAEI;AACF,sCAA4B,OAAO,eAAe,cAAY;AAC5D,qBAAS,WAAO,2BAAa,SAAS,MAAa,QAAQ,OAAO,CAAC;AAAA,UACrE,CAAC;AAAA,QACH;AAAA,QACA,aAAS,mCAEN;AAAA,MACL;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,SAAS,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,GAAG;AACnC,+BAAuB,OAAO,KAAK,WAAW,IAAI;AAAA,MACpD,CAAC,EAAE,QAAQ,WAAW,WAAW,CAAC,OAAO;AAAA,QACvC;AAAA,QACA;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,KAAK,GAAG;AACxC,iCAAyB,OAAO,MAAM,SAAS,SAAS;AAAA,MAC1D,CAAC,EAAE,QAAQ,WAAW,UAAU,CAAC,OAAO;AAAA,QACtC,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,oCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,cAAI,WAAW;AAAA,UAEf,OAAO;AAEL,gBAAI,SAAS,cAAc,UAAW;AACtC,qBAAS,SAAS;AAClB,qBAAS,QAAS,WAAW;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD;AAAA;AAAA,YAEA,OAAO,WAAW,oBAAoB,OAAO,WAAW;AAAA,YAAiB;AACvE,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,oBAAgB,4BAAY;AAAA,IAChC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO;AAAA,UACb;AAAA,QACF,GAA8C;AAC5C,gBAAM,WAAW,oBAAoB,OAAO;AAC5C,cAAI,YAAY,OAAO;AACrB,mBAAO,MAAM,QAAQ;AAAA,UACvB;AAAA,QACF;AAAA,QACA,aAAS,mCAA+C;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,cAAc,SAAS,CAAC,OAAO;AAAA,QAC7C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,IAAI,MAAO;AAChB,cAAM,oBAAoB,IAAI,CAAC,IAAI;AAAA,UACjC;AAAA,UACA,QAAQ;AAAA,UACR,cAAc,IAAI;AAAA,UAClB;AAAA,QACF;AAAA,MACF,CAAC,EAAE,QAAQ,cAAc,WAAW,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,OAAO;AAChB,mBAAS,qBAAqB,KAAK;AAAA,QACrC,CAAC;AAAA,MACH,CAAC,EAAE,QAAQ,cAAc,UAAU,CAAC,OAAO;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,QAAS,WAAW;AAAA,QAC/B,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD;AAAA;AAAA,aAEC,OAAO,WAAW,oBAAoB,OAAO,WAAW;AAAA,YAEzD,QAAQ,OAAO;AAAA,YAAW;AACxB,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,QAAM,2BAAsD;AAAA,IAC1D,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,EACT;AACA,QAAM,wBAAoB,4BAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,IACd,UAAU;AAAA,MACR,kBAAkB;AAAA,QAChB,QAAQ,OAAO,QAGV;AACH,qBAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF,KAAK,OAAO,SAAS;AACnB,mCAAuB,OAAO,aAAa;AAC3C,uBAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF,KAAK,cAAc;AACjB,oBAAM,qBAAqB,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,uBAAuB,MAAM,CAAC;AACxF,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AAAA,YACF;AAGA,kBAAM,KAAK,aAAa,IAAI;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,aAAS,mCAGL;AAAA,MACN;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,QAAQ,mBAAmB,CAAC,OAAO;AAAA,QAC5D,SAAS;AAAA,UACP;AAAA,QACF;AAAA,MACF,MAAM;AACJ,+BAAuB,OAAO,aAAa;AAAA,MAC7C,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,MAAM,YAAY,KAAK,OAAO,QAAQ,SAAS,QAAQ,CAAC,CAAC,GAAG;AACtE,qBAAW,CAAC,IAAI,SAAS,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC1D,kBAAM,qBAAqB,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,uBAAuB,MAAM,CAAC;AACxF,uBAAW,iBAAiB,WAAW;AACrC,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AACA,oBAAM,KAAK,aAAa,IAAI,SAAS,KAAK,aAAa;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC,EAAE,eAAW,4BAAQ,4BAAY,UAAU,OAAG,oCAAoB,UAAU,CAAC,GAAG,CAAC,OAAO,WAAW;AAClG,oCAA4B,OAAO,CAAC,MAAM,CAAC;AAAA,MAC7C,CAAC,EAAE,WAAW,WAAW,QAAQ,qBAAqB,OAAO,CAAC,OAAO,WAAW;AAC9E,cAAM,cAA2C,OAAO,QAAQ,IAAI,CAAC;AAAA,UACnE;AAAA,UACA;AAAA,QACF,MAAM;AACJ,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,eAAe;AAAA,cACf,WAAW;AAAA,cACX,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF,CAAC;AACD,oCAA4B,OAAO,WAAW;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,WAAS,uBAAuB,OAA+B,eAA8B;AAC3F,UAAM,eAAe,WAAW,MAAM,KAAK,aAAa,KAAK,CAAC,CAAC;AAG/D,eAAW,OAAO,cAAc;AAC9B,YAAM,UAAU,IAAI;AACpB,YAAM,QAAQ,IAAI,MAAM;AACxB,YAAM,mBAAmB,MAAM,KAAK,OAAO,IAAI,KAAK;AACpD,UAAI,kBAAkB;AACpB,cAAM,KAAK,OAAO,EAAE,KAAK,IAAI,WAAW,gBAAgB,EAAE,OAAO,QAAM,OAAO,aAAa;AAAA,MAC7F;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa;AAAA,EACjC;AACA,WAAS,4BAA4B,OAAkCC,UAAsC;AAC3G,UAAM,oBAAoBA,SAAQ,IAAI,YAAU;AAC9C,YAAM,eAAe,yBAAyB,QAAQ,gBAAgB,aAAa,aAAa;AAChG,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,OAAO,KAAK;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,sBAAkB,aAAa,iBAAiB,OAAO,kBAAkB,QAAQ,iBAAiB,iBAAiB,CAAC;AAAA,EACtH;AAGA,QAAM,wBAAoB,4BAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,0BAA0B,GAAG,GAIC;AAAA,MAE9B;AAAA,MACA,uBAAuB,GAAG,GAEI;AAAA,MAE9B;AAAA,MACA,gCAAgC;AAAA,MAAC;AAAA,IACnC;AAAA,EACF,CAAC;AACD,QAAM,iCAA6B,4BAAY;AAAA,IAC7C,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAAgC;AAC7C,qBAAO,2BAAa,OAAO,OAAO,OAAO;AAAA,QAC3C;AAAA,QACA,aAAS,mCAA4B;AAAA,MACvC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,kBAAc,4BAAY;AAAA,IAC9B,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,MACZ,QAAQ,SAAS;AAAA,MACjB,SAAS,kBAAkB;AAAA,MAC3B,sBAAsB;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,IACA,UAAU;AAAA,MACR,qBAAqB,OAAO;AAAA,QAC1B;AAAA,MACF,GAA0B;AACxB,cAAM,uBAAuB,MAAM,yBAAyB,cAAc,WAAW,UAAU,aAAa;AAAA,MAC9G;AAAA,IACF;AAAA,IACA,eAAe,aAAW;AACxB,cAAQ,QAAQ,UAAU,WAAS;AACjC,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,WAAW,WAAS;AAC7B,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,SAAS,WAAS;AAC3B,cAAM,UAAU;AAAA,MAClB,CAAC,EAAE,QAAQ,aAAa,WAAS;AAC/B,cAAM,UAAU;AAAA,MAClB,CAAC,EAGA,WAAW,oBAAoB,YAAU;AAAA,QACxC,GAAG;AAAA,MACL,EAAE;AAAA,IACJ;AAAA,EACF,CAAC;AACD,QAAM,sBAAkB,gCAAgB;AAAA,IACtC,SAAS,WAAW;AAAA,IACpB,WAAW,cAAc;AAAA,IACzB,UAAU,kBAAkB;AAAA,IAC5B,eAAe,2BAA2B;AAAA,IAC1C,QAAQ,YAAY;AAAA,EACtB,CAAC;AACD,QAAM,UAAkC,CAAC,OAAO,WAAW,gBAAgB,cAAc,MAAM,MAAM,IAAI,SAAY,OAAO,MAAM;AAClI,QAAMA,WAAU;AAAA,IACd,GAAG,YAAY;AAAA,IACf,GAAG,WAAW;AAAA,IACd,GAAG,kBAAkB;AAAA,IACrB,GAAG,2BAA2B;AAAA,IAC9B,GAAG,cAAc;AAAA,IACjB,GAAG,kBAAkB;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAA;AAAA,EACF;AACF;;;AC9iBO,IAAM,YAA2B,uBAAO,IAAI,gBAAgB;AA2BnE,IAAM,kBAAsC;AAAA,EAC1C,QAAQ;AACV;AAGA,IAAM,uBAAsC,oDAAgB,iBAAiB,MAAM;AAAC,CAAC;AACrF,IAAM,0BAAyC,oDAAgB,iBAA0C,MAAM;AAAC,CAAC;AAE1G,SAAS,eAAoF;AAAA,EAClG;AAAA,EACA;AAAA,EACA,gBAAAC;AACF,GAIG;AAED,QAAM,qBAAqB,CAAC,UAAqB;AACjD,QAAM,wBAAwB,CAAC,UAAqB;AACpD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,iBAEN,UAAqC;AACtC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG,sBAAsB,SAAS,MAAM;AAAA,IAC1C;AAAA,EACF;AACA,WAAS,eAAe,WAAsB;AAC5C,UAAM,QAAQ,UAAU,WAAW;AACnC,QAAI,MAAuC;AACzC,UAAI,CAAC,OAAO;AACV,YAAK,eAAuB,UAAW,QAAO;AAC9C,QAAC,eAAuB,YAAY;AACpC,gBAAQ,MAAM,mCAAmC,WAAW,qDAAqD;AAAA,MACnH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,cAAc,WAAsB;AAC3C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,iBAAiB,WAAsB,UAAyB;AACvE,WAAO,cAAc,SAAS,IAAI,QAAQ;AAAA,EAC5C;AACA,WAAS,gBAAgB,WAAsB;AAC7C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,aAAa,WAAsB;AAC1C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,sBAAsB,cAAsB,oBAA4D,UAEtE;AACzC,WAAO,CAAC,cAAmB;AAEzB,UAAI,cAAc,WAAW;AAC3B,eAAOA,gBAAe,oBAAoB,QAAQ;AAAA,MACpD;AACA,YAAM,iBAAiB,mBAAmB;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,sBAAsB,CAAC,UAAqB,iBAAiB,OAAO,cAAc,KAAK;AAC7F,aAAOA,gBAAe,qBAAqB,QAAQ;AAAA,IACrD;AAAA,EACF;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,WAAO,sBAAsB,cAAc,oBAAoB,gBAAgB;AAAA,EACjF;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,aAAS,6BAEN,UAAgE;AACjE,YAAM,wBAAwB;AAAA,QAC5B,GAAI;AAAA,QACJ,GAAG,sBAAsB,SAAS,MAAM;AAAA,MAC1C;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,YAAY,cAAc;AAChC,YAAM,aAAa,cAAc;AACjC,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,eAAe,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QAChH,iBAAiB,mBAAmB,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QACxH,oBAAoB,aAAa;AAAA,QACjC,wBAAwB,aAAa;AAAA,QACrC,sBAAsB,WAAW;AAAA,QACjC,0BAA0B,WAAW;AAAA,MACvC;AAAA,IACF;AACA,WAAO,sBAAsB,cAAc,oBAAoB,4BAA4B;AAAA,EAC7F;AACA,WAAS,wBAAwB;AAC/B,WAAQ,QAAM;AACZ,UAAI;AACJ,UAAI,OAAO,OAAO,UAAU;AAC1B,qBAAa,oBAAoB,EAAE,KAAK;AAAA,MAC1C,OAAO;AACL,qBAAa;AAAA,MACf;AACA,YAAM,yBAAyB,CAAC,UAAqB,eAAe,KAAK,GAAG,YAAY,UAAoB,KAAK;AACjH,YAAM,8BAA8B,eAAe,YAAY,wBAAwB;AACvF,aAAOA,gBAAe,6BAA6B,gBAAgB;AAAA,IACrE;AAAA,EACF;AACA,WAAS,oBAAoB,OAAkB,MAI5C;AACD,UAAM,WAAW,MAAM,WAAW;AAClC,UAAM,eAAe,oBAAI,IAAmB;AAC5C,UAAM,YAAY,UAAU,MAAM,cAAc,oBAAoB;AACpE,eAAW,OAAO,WAAW;AAC3B,YAAM,WAAW,SAAS,SAAS,KAAK,IAAI,IAAI;AAChD,UAAI,CAAC,UAAU;AACb;AAAA,MACF;AACA,UAAI,2BAA2B,IAAI,OAAO;AAAA;AAAA,QAE1C,SAAS,IAAI,EAAE;AAAA;AAAA;AAAA,QAEf,OAAO,OAAO,QAAQ,EAAE,KAAK;AAAA,YAAM,CAAC;AACpC,iBAAW,cAAc,yBAAyB;AAChD,qBAAa,IAAI,UAAU;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa,OAAO,CAAC,EAAE,QAAQ,mBAAiB;AAChE,YAAM,gBAAgB,SAAS,QAAQ,aAAa;AACpD,aAAO,gBAAgB;AAAA,QACrB;AAAA,QACA,cAAc,cAAc;AAAA,QAC5B,cAAc,cAAc;AAAA,MAC9B,IAAI,CAAC;AAAA,IACP,CAAC;AAAA,EACH;AACA,WAAS,yBAAsE,OAAkB,WAA2E;AAC1K,WAAO,UAAU,OAAO,OAAO,cAAc,KAAK,CAAoB,GAAG,CAAC,UAEpE,OAAO,iBAAiB,aAAa,MAAM,WAAW,sBAAsB,WAAS,MAAM,YAAY;AAAA,EAC/G;AACA,WAAS,eAAe,SAAoD,MAAuC,UAA6B;AAC9I,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,iBAAiB,SAAS,MAAM,QAAQ,KAAK;AAAA,EACtD;AACA,WAAS,mBAAmB,SAAoD,MAAuC,UAA6B;AAClJ,QAAI,CAAC,QAAQ,CAAC,QAAQ,qBAAsB,QAAO;AACnD,WAAO,qBAAqB,SAAS,MAAM,QAAQ,KAAK;AAAA,EAC1D;AACF;;;ACtOA,IAAAC,kBAA0K;;;ACG1K,IAAM,QAA0C,UAAU,oBAAI,QAAQ,IAAI;AACnE,IAAM,4BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AACF,MAAM;AACJ,MAAI,aAAa;AACjB,QAAM,SAAS,OAAO,IAAI,SAAS;AACnC,MAAI,OAAO,WAAW,UAAU;AAC9B,iBAAa;AAAA,EACf,OAAO;AACL,UAAM,cAAc,KAAK,UAAU,WAAW,CAAC,KAAK,UAAU;AAE5D,cAAQ,OAAO,UAAU,WAAW;AAAA,QAClC,SAAS,MAAM,SAAS;AAAA,MAC1B,IAAI;AAEJ,kBAAQ,8BAAc,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,KAAK,EAAE,OAAY,CAAC,KAAKC,SAAQ;AACjF,YAAIA,IAAG,IAAK,MAAcA,IAAG;AAC7B,eAAO;AAAA,MACT,GAAG,CAAC,CAAC,IAAI;AACT,aAAO;AAAA,IACT,CAAC;AACD,YAAI,8BAAc,SAAS,GAAG;AAC5B,aAAO,IAAI,WAAW,WAAW;AAAA,IACnC;AACA,iBAAa;AAAA,EACf;AACA,SAAO,GAAG,YAAY,IAAI,UAAU;AACtC;;;ADpBA,sBAA+B;AA4SxB,SAAS,kBAAmE,SAAsD;AACvI,SAAO,SAAS,cAAc,SAAS;AACrC,UAAM,6BAAyB,gCAAe,CAAC,WAA0B,QAAQ,yBAAyB,QAAQ;AAAA,MAChH,aAAc,QAAQ,eAAe;AAAA,IACvC,CAAC,CAAC;AACF,UAAM,sBAA4D;AAAA,MAChE,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,2BAA2B;AAAA,MAC3B,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,MACtB,GAAG;AAAA,MACH;AAAA,MACA,mBAAmB,cAAc;AAC/B,YAAI,0BAA0B;AAC9B,YAAI,wBAAwB,aAAa,oBAAoB;AAC3D,gBAAM,cAAc,aAAa,mBAAmB;AACpD,oCAA0B,CAAAC,kBAAgB;AACxC,kBAAM,gBAAgB,YAAYA,aAAY;AAC9C,gBAAI,OAAO,kBAAkB,UAAU;AAErC,qBAAO;AAAA,YACT,OAAO;AAGL,qBAAO,0BAA0B;AAAA,gBAC/B,GAAGA;AAAA,gBACH,WAAW;AAAA,cACb,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF,WAAW,QAAQ,oBAAoB;AACrC,oCAA0B,QAAQ;AAAA,QACpC;AACA,eAAO,wBAAwB,YAAY;AAAA,MAC7C;AAAA,MACA,UAAU,CAAC,GAAI,QAAQ,YAAY,CAAC,CAAE;AAAA,IACxC;AACA,UAAM,UAA2C;AAAA,MAC/C,qBAAqB,CAAC;AAAA,MACtB,MAAM,IAAI;AAER,WAAG;AAAA,MACL;AAAA,MACA,YAAQ,uBAAO;AAAA,MACf;AAAA,MACA,wBAAoB,gCAAe,YAAU,uBAAuB,MAAM,KAAK,IAAI;AAAA,IACrF;AACA,UAAM,MAAM;AAAA,MACV;AAAA,MACA,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF,GAAG;AACD,YAAI,aAAa;AACf,qBAAW,MAAM,aAAa;AAC5B,gBAAI,CAAC,oBAAoB,SAAU,SAAS,EAAS,GAAG;AACtD;AACA,cAAC,oBAAoB,SAAmB,KAAK,EAAE;AAAA,YACjD;AAAA,UACF;AAAA,QACF;AACA,YAAI,WAAW;AACb,qBAAW,CAAC,cAAc,iBAAiB,KAAK,OAAO,QAAQ,SAAS,GAAG;AACzE,gBAAI,OAAO,sBAAsB,YAAY;AAC3C,gCAAkB,sBAAsB,SAAS,YAAY,CAAC;AAAA,YAChE,OAAO;AACL,qBAAO,OAAO,sBAAsB,SAAS,YAAY,KAAK,CAAC,GAAG,iBAAiB;AAAA,YACrF;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,qBAAqB,QAAQ,IAAI,OAAK,EAAE,KAAK,KAAY,qBAA4B,OAAO,CAAC;AACnG,aAAS,gBAAgB,QAAmD;AAC1E,YAAM,qBAAqB,OAAO,UAAU;AAAA,QAC1C,OAAO,QAAM;AAAA,UACX,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,QACA,UAAU,QAAM;AAAA,UACd,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,QACA,eAAe,QAAM;AAAA,UACnB,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,MACF,CAAC;AACD,iBAAW,CAAC,cAAc,UAAU,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AAC3E,YAAI,OAAO,qBAAqB,QAAQ,gBAAgB,QAAQ,qBAAqB;AACnF,cAAI,OAAO,qBAAqB,SAAS;AACvC,kBAAM,IAAI,MAAM,QAAwCC,yBAAwB,EAAE,IAAI,wEAAwE,YAAY,gDAAgD;AAAA,UAC5N,WAAW,OAAO,YAAY,eAAe,MAAwC;AACnF,oBAAQ,MAAM,wEAAwE,YAAY,gDAAgD;AAAA,UACpJ;AACA;AAAA,QACF;AACA,YAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,cAAI,0BAA0B,UAAU,GAAG;AACzC,kBAAM;AAAA,cACJ;AAAA,YACF,IAAI;AACJ,kBAAM;AAAA,cACJ;AAAA,cACA,sBAAAC;AAAA,YACF,IAAI;AACJ,gBAAI,OAAO,aAAa,UAAU;AAChC,kBAAI,WAAW,GAAG;AAChB,sBAAM,IAAI,MAAM,QAAwCC,0BAAyB,EAAE,IAAI,0BAA0B,YAAY,mCAAmC;AAAA,cAClK;AACA,kBAAI,OAAOD,0BAAyB,YAAY;AAC9C,sBAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,sCAAsC,YAAY,0CAA0C;AAAA,cACrL;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,oBAAoB,YAAY,IAAI;AAC5C,mBAAW,KAAK,oBAAoB;AAClC,YAAE,eAAe,cAAc,UAAU;AAAA,QAC3C;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,IAAI,gBAAgB;AAAA,MACzB,WAAW,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;AEzbA,IAAAE,kBAAkE;AAE3D,IAAM,SAAwB,uBAAO;AAOrC,SAAS,gBAAoE;AAClF,SAAO,WAAY;AACjB,UAAM,IAAI,MAAM,QAAwCC,yBAAwB,EAAE,IAAI,+FAA+F;AAAA,EACvL;AACF;;;ACVO,SAAS,WAAc,GAAwB;AAAC;AAChD,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACDO,IAAM,6BAAoI,CAAC;AAAA,EAChJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,sBAAsB,GAAG,IAAI,WAAW;AAC9C,MAAI,wBAA2C;AAC/C,MAAI,kBAA+D;AACnE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AAIR,QAAM,8BAA8B,CAAC,sBAAiD,WAAmB;AACvG,QAAI,0BAA0B,MAAM,MAAM,GAAG;AAC3C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,KAAK,IAAI,SAAS,GAAG;AACvB,YAAI,IAAI,WAAW,OAAO;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AACA,QAAI,uBAAuB,MAAM,MAAM,GAAG;AACxC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,KAAK;AACP,YAAI,OAAO,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AACA,QAAI,IAAI,gBAAgB,kBAAkB,MAAM,MAAM,GAAG;AACvD,2BAAqB,OAAO,OAAO,QAAQ,aAAa;AACxD,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,YAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,UAAI,IAAI,WAAW;AACjB,iBAAS,IAAI,WAAW,IAAI,uBAAuB,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC;AAAA,MAClF;AACA,aAAO;AAAA,IACT;AACA,QAAI,UAAU;AACd,QAAI,WAAW,SAAS,MAAM,MAAM,GAAG;AACrC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,UAAI,aAAa,IAAI,WAAW;AAC9B,cAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,iBAAS,IAAI,WAAW,IAAI,uBAAuB,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC;AAChF,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAM,cAAc;AAC7C,QAAM,uBAAuB,CAAC,kBAA0B;AACtD,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,2BAA2B,cAAc,IAAI,aAAa;AAChE,WAAO,0BAA0B,QAAQ;AAAA,EAC3C;AACA,QAAM,sBAAsB,CAAC,eAAuB,cAAsB;AACxE,UAAM,gBAAgB,iBAAiB;AACvC,WAAO,CAAC,CAAC,eAAe,IAAI,aAAa,GAAG,IAAI,SAAS;AAAA,EAC3D;AACA,QAAM,wBAA+C;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,uBAAuB,sBAAoE;AAIlG,WAAO,KAAK,MAAM,KAAK,UAAU,OAAO,YAAY,CAAC,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,EAC7H;AACA,SAAO,CAAC,QAAQC,WAAoF;AAClG,QAAI,CAAC,uBAAuB;AAE1B,8BAAwB,uBAAuB,cAAc,oBAAoB;AAAA,IACnF;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,8BAAwB,CAAC;AACzB,oBAAc,qBAAqB,MAAM;AACzC,wBAAkB;AAClB,aAAO,CAAC,MAAM,KAAK;AAAA,IACrB;AAMA,QAAI,IAAI,gBAAgB,8BAA8B,MAAM,MAAM,GAAG;AACnE,aAAO,CAAC,OAAO,qBAAqB;AAAA,IACtC;AAGA,UAAM,YAAY,4BAA4B,cAAc,sBAAsB,MAAM;AACxF,QAAI,uBAAuB;AAG3B,QAAI,OAAuH;AACzH,aAAO,CAAC,OAAO,cAAc,YAAY;AAAA,IAC3C;AACA,QAAI,WAAW;AACb,UAAI,CAAC,iBAAiB;AAMpB,0BAAkB,WAAW,MAAM;AAEjC,gBAAM,mBAAsC,uBAAuB,cAAc,oBAAoB;AAErG,gBAAM,CAAC,EAAE,OAAO,QAAI,iCAAmB,uBAAuB,MAAM,gBAAgB;AAGpF,UAAAA,OAAM,KAAK,IAAI,gBAAgB,qBAAqB,OAAO,CAAC;AAE5D,kCAAwB;AACxB,4BAAkB;AAAA,QACpB,GAAG,GAAG;AAAA,MACR;AACA,YAAM,4BAA4B,OAAO,OAAO,QAAQ,YAAY,CAAC,CAAC,OAAO,KAAK,WAAW,mBAAmB;AAChH,YAAM,iCAAiC,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,aAAa,CAAC,CAAC,OAAO,KAAK,IAAI;AACvH,6BAAuB,CAAC,6BAA6B,CAAC;AAAA,IACxD;AACA,WAAO,CAAC,sBAAsB,KAAK;AAAA,EACrC;AACF;;;AC7GO,IAAM,mCAAmC,aAAgB,MAAQ;AACjE,IAAM,8BAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,QAAM,4BAAwB,wBAAQ,uBAAuB,OAAO,WAAW,WAAW,WAAW,UAAU,qBAAqB,KAAK;AACzI,WAAS,gCAAgC,eAAuB;AAC9D,UAAM,gBAAgB,cAAc,qBAAqB,IAAI,aAAa;AAC1E,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AACA,UAAM,mBAAmB,cAAc,OAAO;AAC9C,WAAO;AAAA,EACT;AACA,QAAM,yBAAoD,CAAC;AAC3D,WAAS,iBAEN,YAA8C;AAC/C,eAAW,WAAW,WAAW,OAAO,GAAG;AACzC,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF;AACA,QAAM,UAAwC,CAAC,QAAQC,WAAU;AAC/D,UAAM,QAAQA,OAAM,SAAS;AAC7B,UAAM,SAAS,aAAa,KAAK;AACjC,QAAI,sBAAsB,MAAM,GAAG;AACjC,UAAI;AACJ,UAAI,qBAAqB,MAAM,MAAM,GAAG;AACtC,yBAAiB,OAAO,QAAQ,IAAI,WAAS,MAAM,iBAAiB,aAAa;AAAA,MACnF,OAAO;AACL,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM,MAAM,IAAI,OAAO,UAAU,OAAO,KAAK;AACxE,yBAAiB,CAAC,aAAa;AAAA,MACjC;AACA,4BAAsB,gBAAgBA,QAAO,MAAM;AAAA,IACrD;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW,CAAC,KAAK,OAAO,KAAK,OAAO,QAAQ,sBAAsB,GAAG;AACnE,YAAI,QAAS,cAAa,OAAO;AACjC,eAAO,uBAAuB,GAAG;AAAA,MACnC;AACA,uBAAiB,cAAc,cAAc;AAC7C,uBAAiB,cAAc,gBAAgB;AAAA,IACjD;AACA,QAAI,QAAQ,mBAAmB,MAAM,GAAG;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,QAAQ,uBAAuB,MAAM;AAIzC,4BAAsB,OAAO,KAAK,OAAO,GAAsBA,QAAO,MAAM;AAAA,IAC9E;AAAA,EACF;AACA,WAAS,sBAAsB,WAA4BC,MAAuB,QAA6B;AAC7G,UAAM,QAAQA,KAAI,SAAS;AAC3B,eAAW,iBAAiB,WAAW;AACrC,YAAM,QAAQ,iBAAiB,OAAO,aAAa;AACnD,UAAI,OAAO,cAAc;AACvB,0BAAkB,eAAe,MAAM,cAAcA,MAAK,MAAM;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,eAA8B,cAAsBA,MAAuB,QAA6B;AACjI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,oBAAoB,oBAAoB,qBAAqB,OAAO;AAC1E,QAAI,sBAAsB,UAAU;AAElC;AAAA,IACF;AAKA,UAAM,yBAAyB,KAAK,IAAI,GAAG,KAAK,IAAI,mBAAmB,gCAAgC,CAAC;AACxG,QAAI,CAAC,gCAAgC,aAAa,GAAG;AACnD,YAAM,iBAAiB,uBAAuB,aAAa;AAC3D,UAAI,gBAAgB;AAClB,qBAAa,cAAc;AAAA,MAC7B;AACA,6BAAuB,aAAa,IAAI,WAAW,MAAM;AACvD,YAAI,CAAC,gCAAgC,aAAa,GAAG;AAEnD,gBAAM,QAAQ,iBAAiBA,KAAI,SAAS,GAAG,aAAa;AAC5D,cAAI,OAAO,cAAc;AACvB,kBAAM,eAAeA,KAAI,SAAS,qBAAqB,MAAM,cAAc,MAAM,YAAY,CAAC;AAC9F,0BAAc,MAAM;AAAA,UACtB;AACA,UAAAA,KAAI,SAAS,kBAAkB;AAAA,YAC7B;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AACA,eAAO,uBAAwB,aAAa;AAAA,MAC9C,GAAG,yBAAyB,GAAI;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;;;AClEA,IAAM,qBAAqB,IAAI,MAAM,kDAAkD;AAGhF,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF,MAAM;AACJ,QAAM,mBAAe,mCAAmB,UAAU;AAClD,QAAM,sBAAkB,mCAAmB,aAAa;AACxD,QAAM,uBAAmB,4BAAY,YAAY,aAAa;AAQ9D,QAAM,eAA+C,CAAC;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,WAAS,sBAAsB,UAAkB,MAAe,MAAe;AAC7E,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,WAAW,eAAe;AAC5B,gBAAU,cAAc;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,UAAU;AAAA,IACnB;AAAA,EACF;AACA,WAAS,qBAAqB,UAAkB;AAC9C,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,WAAW;AACb,aAAO,aAAa,QAAQ;AAC5B,gBAAU,kBAAkB;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,oBAAoB,QAA0F;AACrH,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,OAAO;AACX,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,CAAC,cAAc,cAAc,SAAS;AAAA,EAC/C;AACA,QAAM,UAAwC,CAAC,QAAQ,OAAO,gBAAgB;AAC5E,UAAM,WAAW,YAAY,MAAM;AACnC,aAAS,oBAAoB,cAAsBC,WAAyB,WAAmB,cAAuB;AACpH,YAAM,WAAW,iBAAiB,aAAaA,SAAQ;AACvD,YAAM,WAAW,iBAAiB,MAAM,SAAS,GAAGA,SAAQ;AAC5D,UAAI,CAAC,YAAY,UAAU;AACzB,qBAAa,cAAc,cAAcA,WAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,0BAAoB,cAAc,UAAU,WAAW,YAAY;AAAA,IACrE,WAAW,qBAAqB,MAAM,MAAM,GAAG;AAC7C,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF,KAAK,OAAO,SAAS;AACnB,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,4BAAoB,cAAc,eAAe,OAAO,KAAK,WAAW,YAAY;AACpF,8BAAsB,eAAe,OAAO,CAAC,CAAC;AAAA,MAChD;AAAA,IACF,WAAW,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC9C,YAAM,QAAQ,MAAM,SAAS,EAAE,WAAW,EAAE,UAAU,QAAQ;AAC9D,UAAI,OAAO;AACT,cAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,qBAAa,cAAc,cAAc,UAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF,WAAW,iBAAiB,MAAM,GAAG;AACnC,4BAAsB,UAAU,OAAO,SAAS,OAAO,KAAK,aAAa;AAAA,IAC3E,WAAW,kBAAkB,MAAM,MAAM,KAAK,qBAAqB,MAAM,MAAM,GAAG;AAChF,2BAAqB,QAAQ;AAAA,IAC/B,WAAW,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAC/C,iBAAWA,aAAY,OAAO,KAAK,YAAY,GAAG;AAChD,6BAAqBA,SAAQ;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY,QAAa;AAChC,QAAI,aAAa,MAAM,EAAG,QAAO,OAAO,KAAK,IAAI;AACjD,QAAI,gBAAgB,MAAM,GAAG;AAC3B,aAAO,OAAO,KAAK,IAAI,iBAAiB,OAAO,KAAK;AAAA,IACtD;AACA,QAAI,kBAAkB,MAAM,MAAM,EAAG,QAAO,OAAO,QAAQ;AAC3D,QAAI,qBAAqB,MAAM,MAAM,EAAG,QAAO,oBAAoB,OAAO,OAAO;AACjF,WAAO;AAAA,EACT;AACA,WAAS,aAAa,cAAsB,cAAmB,eAAuB,OAAyB,WAAmB;AAChI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,oBAAoB,oBAAoB;AAC9C,QAAI,CAAC,kBAAmB;AACxB,UAAM,YAAY,CAAC;AACnB,UAAM,oBAAoB,IAAI,QAAc,aAAW;AACrD,gBAAU,oBAAoB;AAAA,IAChC,CAAC;AACD,UAAM,kBAG0B,QAAQ,KAAK,CAAC,IAAI,QAG/C,aAAW;AACZ,gBAAU,gBAAgB;AAAA,IAC5B,CAAC,GAAG,kBAAkB,KAAK,MAAM;AAC/B,YAAM;AAAA,IACR,CAAC,CAAC,CAAC;AAGH,oBAAgB,MAAM,MAAM;AAAA,IAAC,CAAC;AAC9B,iBAAa,aAAa,IAAI;AAC9B,UAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,aAAa;AACpI,UAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,MACH,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,MACpM;AAAA,MACA;AAAA,IACF;AACA,UAAM,iBAAiB,kBAAkB,cAAc,YAAmB;AAE1E,YAAQ,QAAQ,cAAc,EAAE,MAAM,OAAK;AACzC,UAAI,MAAM,mBAAoB;AAC9B,YAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ACjPO,IAAM,uBAA+C,CAAC;AAAA,EAC3D;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AACF,MAAM;AACJ,SAAO,CAAC,QAAQ,UAAU;AACxB,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAExC,YAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,IACjE;AACA,QAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,UAAI,IAAI,gBAAgB,qBAAqB,MAAM,MAAM,KAAK,OAAO,YAAY,UAAU,MAAM,SAAS,EAAE,WAAW,GAAG,QAAQ,yBAAyB,YAAY;AACrK,gBAAQ,KAAK,yEAAyE,WAAW;AAAA,8FACX,gBAAgB,QAAQ;AAAA,iGACrB,EAAE,EAAE;AAAA,MAC/F;AAAA,IACF;AAAA,EACF;AACF;;;ACbO,IAAM,iCAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,4BAAwB,4BAAQ,4BAAY,aAAa,OAAG,oCAAoB,aAAa,CAAC;AACpG,QAAM,iBAAa,4BAAQ,4BAAY,YAAY,aAAa,OAAG,2BAAW,YAAY,aAAa,CAAC;AACxG,MAAI,0BAAwD,CAAC;AAE7D,MAAI,sBAAsB;AAC1B,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC3E;AAAA,IACF;AACA,QAAI,WAAW,MAAM,GAAG;AACtB,4BAAsB,KAAK,IAAI,GAAG,sBAAsB,CAAC;AAAA,IAC3D;AACA,QAAI,sBAAsB,MAAM,GAAG;AACjC,qBAAe,yBAAyB,QAAQ,mBAAmB,qBAAqB,aAAa,GAAG,KAAK;AAAA,IAC/G,WAAW,WAAW,MAAM,GAAG;AAC7B,qBAAe,CAAC,GAAG,KAAK;AAAA,IAC1B,WAAW,IAAI,KAAK,eAAe,MAAM,MAAM,GAAG;AAChD,qBAAe,oBAAoB,OAAO,SAAS,QAAW,QAAW,QAAW,QAAW,aAAa,GAAG,KAAK;AAAA,IACtH;AAAA,EACF;AACA,WAAS,qBAAqB;AAC5B,WAAO,sBAAsB;AAAA,EAC/B;AACA,WAAS,eAAe,SAAgD,OAAyB;AAC/F,UAAM,YAAY,MAAM,SAAS;AACjC,UAAM,QAAQ,UAAU,WAAW;AACnC,4BAAwB,KAAK,GAAG,OAAO;AACvC,QAAI,MAAM,OAAO,yBAAyB,aAAa,mBAAmB,GAAG;AAC3E;AAAA,IACF;AACA,UAAM,OAAO;AACb,8BAA0B,CAAC;AAC3B,QAAI,KAAK,WAAW,EAAG;AACvB,UAAM,eAAe,IAAI,KAAK,oBAAoB,WAAW,IAAI;AACjE,YAAQ,MAAM,MAAM;AAClB,YAAM,cAAc,MAAM,KAAK,aAAa,OAAO,CAAC;AACpD,iBAAW;AAAA,QACT;AAAA,MACF,KAAK,aAAa;AAChB,cAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,cAAM,uBAAuB,oBAAoB,cAAc,sBAAsB,eAAe,YAAY;AAChH,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,kBAAM,SAAS,kBAAkB;AAAA,cAC/B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,kBAAM,SAAS,aAAa,aAAa,CAAC;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3EO,IAAM,sBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,wBAAwB,oBAAI,IAAY;AAC9C,MAAI,qBAA2D;AAC/D,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,IAAI,gBAAgB,0BAA0B,MAAM,MAAM,KAAK,IAAI,gBAAgB,uBAAuB,MAAM,MAAM,GAAG;AAC3H,4BAAsB,OAAO,QAAQ,eAAe,KAAK;AAAA,IAC3D;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,WAAW;AAClG,4BAAsB,OAAO,KAAK,IAAI,eAAe,KAAK;AAAA,IAC5D;AACA,QAAI,WAAW,UAAU,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,CAAC,OAAO,KAAK,WAAW;AACrG,oBAAc,OAAO,KAAK,KAAK,KAAK;AAAA,IACtC;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW;AAEX,UAAI,oBAAoB;AACtB,qBAAa,kBAAkB;AAC/B,6BAAqB;AAAA,MACvB;AACA,4BAAsB,MAAM;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,sBAAsB,eAAuBC,MAAuB;AAC3E,0BAAsB,IAAI,aAAa;AACvC,QAAI,CAAC,oBAAoB;AACvB,2BAAqB,WAAW,MAAM;AAEpC,mBAAW,OAAO,uBAAuB;AACvC,gCAAsB;AAAA,YACpB,eAAe;AAAA,UACjB,GAAGA,IAAG;AAAA,QACR;AACA,8BAAsB,MAAM;AAC5B,6BAAqB;AAAA,MACvB,GAAG,CAAC;AAAA,IACN;AAAA,EACF;AACA,WAAS,cAAc;AAAA,IACrB;AAAA,EACF,GAA4BA,MAAuB;AACjD,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,qBAAsB;AACrE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,0BAA0B,aAAa;AAC3C,QAAI,CAAC,OAAO,SAAS,qBAAqB,EAAG;AAC7C,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,QAAI,aAAa,SAAS;AACxB,mBAAa,YAAY,OAAO;AAChC,kBAAY,UAAU;AAAA,IACxB;AACA,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,iBAAa,IAAI,eAAe;AAAA,MAC9B;AAAA,MACA,iBAAiB;AAAA,MACjB,SAAS,WAAW,MAAM;AACxB,YAAI,MAAM,OAAO,WAAW,CAAC,wBAAwB;AACnD,UAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,QAC1C;AACA,sBAAc;AAAA,UACZ;AAAA,QACF,GAAGA,IAAG;AAAA,MACR,GAAG,qBAAqB;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,WAAS,sBAAsB;AAAA,IAC7B;AAAA,EACF,GAA4BA,MAAuB;AACjD,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,sBAAsB;AACnE;AAAA,IACF;AACA,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,0BAA0B,aAAa;AAI3C,QAAI,OAAiC;AACnC,YAAM,iBAAkB,aAAqB,uBAAuB,CAAC;AACrE,qBAAe,aAAa,MAAM;AAClC,qBAAe,aAAa;AAAA,IAC9B;AACA,QAAI,CAAC,OAAO,SAAS,qBAAqB,GAAG;AAC3C,wBAAkB,aAAa;AAC/B;AAAA,IACF;AACA,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,QAAI,CAAC,eAAe,oBAAoB,YAAY,mBAAmB;AACrE,oBAAc;AAAA,QACZ;AAAA,MACF,GAAGA,IAAG;AAAA,IACR;AAAA,EACF;AACA,WAAS,kBAAkB,KAAa;AACtC,UAAM,eAAe,aAAa,IAAI,GAAG;AACzC,QAAI,cAAc,SAAS;AACzB,mBAAa,aAAa,OAAO;AAAA,IACnC;AACA,iBAAa,OAAO,GAAG;AAAA,EACzB;AACA,WAAS,aAAa;AACpB,eAAW,OAAO,aAAa,KAAK,GAAG;AACrC,wBAAkB,GAAG;AAAA,IACvB;AAAA,EACF;AACA,WAAS,0BAA0B,cAAmC,oBAAI,IAAI,GAAG;AAC/E,QAAI,yBAA8C;AAClD,QAAI,wBAAwB,OAAO;AACnC,eAAW,SAAS,YAAY,OAAO,GAAG;AACxC,UAAI,CAAC,CAAC,MAAM,iBAAiB;AAC3B,gCAAwB,KAAK,IAAI,MAAM,iBAAkB,qBAAqB;AAC9E,iCAAyB,MAAM,0BAA0B;AAAA,MAC3D;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;;AC0LO,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,qBAAiB,0BAAU,YAAY,aAAa;AAC1D,QAAM,sBAAkB,2BAAW,YAAY,aAAa;AAC5D,QAAM,wBAAoB,4BAAY,YAAY,aAAa;AAQ/D,QAAM,eAA+C,CAAC;AACtD,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,eAAe,MAAM,GAAG;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI,OAAO;AACX,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,iBAAiB,oBAAoB;AAC3C,UAAI,gBAAgB;AAClB,cAAM,YAAY,CAAC;AACnB,cAAM,iBAAiB,IAAK,QAGW,CAAC,SAAS,WAAW;AAC1D,oBAAU,UAAU;AACpB,oBAAU,SAAS;AAAA,QACrB,CAAC;AAGD,uBAAe,MAAM,MAAM;AAAA,QAAC,CAAC;AAC7B,qBAAa,SAAS,IAAI;AAC1B,cAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,SAAS;AAChI,cAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,cAAM,eAAe;AAAA,UACnB,GAAG;AAAA,UACH,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,UAC9C;AAAA,UACA;AAAA,UACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,UACpM;AAAA,QACF;AACA,uBAAe,cAAc,YAAmB;AAAA,MAClD;AAAA,IACF,WAAW,kBAAkB,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,mBAAa,SAAS,GAAG,QAAQ;AAAA,QAC/B,MAAM,OAAO;AAAA,QACb,MAAM;AAAA,MACR,CAAC;AACD,aAAO,aAAa,SAAS;AAAA,IAC/B,WAAW,gBAAgB,MAAM,GAAG;AAClC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,mBAAa,SAAS,GAAG,OAAO;AAAA,QAC9B,OAAO,OAAO,WAAW,OAAO;AAAA,QAChC,kBAAkB,CAAC;AAAA,QACnB,MAAM;AAAA,MACR,CAAC;AACD,aAAO,aAAa,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;;;ACnZO,IAAM,0BAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,QAAQ,MAAM,MAAM,GAAG;AACzB,0BAAoB,OAAO,gBAAgB;AAAA,IAC7C;AACA,QAAI,SAAS,MAAM,MAAM,GAAG;AAC1B,0BAAoB,OAAO,oBAAoB;AAAA,IACjD;AAAA,EACF;AACA,WAAS,oBAAoBC,MAAuB,MAA+C;AACjG,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,UAAU,MAAM;AACtB,UAAM,gBAAgB,cAAc;AACpC,YAAQ,MAAM,MAAM;AAClB,iBAAW,iBAAiB,cAAc,KAAK,GAAG;AAChD,cAAM,gBAAgB,QAAQ,aAAa;AAC3C,cAAM,uBAAuB,cAAc,IAAI,aAAa;AAC5D,YAAI,CAAC,wBAAwB,CAAC,cAAe;AAC7C,cAAM,SAAS,CAAC,GAAG,qBAAqB,OAAO,CAAC;AAChD,cAAM,gBAAgB,OAAO,KAAK,SAAO,IAAI,IAAI,MAAM,IAAI,KAAK,OAAO,MAAM,SAAO,IAAI,IAAI,MAAM,MAAS,KAAK,MAAM,OAAO,IAAI;AACjI,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,YAAAA,KAAI,SAAS,kBAAkB;AAAA,cAC7B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,YAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,UAC1C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3BO,SAAS,gBAA8G,OAAiE;AAC7L,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAMC,WAAU;AAAA,IACd,oBAAgB,6BAAgF,GAAG,WAAW,iBAAiB;AAAA,EACjI;AACA,QAAM,uBAAuB,CAAC,WAAmB,OAAO,KAAK,WAAW,GAAG,WAAW,GAAG;AACzF,QAAM,kBAA4C,CAAC,sBAAsB,6BAA6B,gCAAgC,qBAAqB,4BAA4B,0BAA0B;AACjN,QAAM,aAAkH,WAAS;AAC/H,QAAIC,eAAc;AAClB,UAAM,gBAAgB,iBAAiB,MAAM,QAAQ;AACrD,UAAM,cAAc;AAAA,MAClB,GAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,gBAAgB,IAAI,WAAS,MAAM,WAAW,CAAC;AAChE,UAAM,wBAAwB,2BAA2B,WAAW;AACpE,UAAM,sBAAsB,wBAAwB,WAAW;AAC/D,WAAO,UAAQ;AACb,aAAO,YAAU;AACf,YAAI,KAAC,yBAAS,MAAM,GAAG;AACrB,iBAAO,KAAK,MAAM;AAAA,QACpB;AACA,YAAI,CAACA,cAAa;AAChB,UAAAA,eAAc;AAEd,gBAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,QACjE;AACA,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH;AAAA,QACF;AACA,cAAM,cAAc,MAAM,SAAS;AACnC,cAAM,CAAC,sBAAsB,mBAAmB,IAAI,sBAAsB,QAAQ,eAAe,WAAW;AAC5G,YAAI;AACJ,YAAI,sBAAsB;AACxB,gBAAM,KAAK,MAAM;AAAA,QACnB,OAAO;AACL,gBAAM;AAAA,QACR;AACA,YAAI,CAAC,CAAC,MAAM,SAAS,EAAE,WAAW,GAAG;AAInC,8BAAoB,QAAQ,eAAe,WAAW;AACtD,cAAI,qBAAqB,MAAM,KAAK,QAAQ,mBAAmB,MAAM,GAAG;AAGtE,uBAAW,WAAW,UAAU;AAC9B,sBAAQ,QAAQ,eAAe,WAAW;AAAA,YAC5C;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAD;AAAA,EACF;AACA,WAAS,aAAa,eAElB;AACF,WAAQ,MAAM,IAAI,UAAU,cAAc,YAAY,EAAiC,SAAS,cAAc,cAAqB;AAAA,MACjI,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACF;;;AC1DO,IAAM,iBAAgC,uBAAO;AAiU7C,IAAM,aAAa,CAAC;AAAA,EACzB,gBAAAE,kBAAiB;AACnB,IAAuB,CAAC,OAA2B;AAAA,EACjD,MAAM;AAAA,EACN,KAAK,KAAK;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAG,SAAS;AACV,oCAAc;AACd,eAAuC,kBAAkB;AACzD,UAAM,gBAAgC,SAAO;AAC3C,UAAI,OAAO,YAAY,eAAe,MAAwC;AAC5E,YAAI,CAAC,SAAS,SAAS,IAAI,IAAW,GAAG;AACvC,kBAAQ,MAAM,aAAa,IAAI,IAAI,gDAAgD;AAAA,QACrF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK;AAAA,MACjB;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,MAAM,CAAC;AAAA,IACT,CAAC;AACD,UAAM,YAAY,eAAe;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,gBAAAA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,YAAY;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,WAAW;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,aAAa;AAAA,MAC5B,oBAAoB,aAAa;AAAA,IACnC,CAAC;AACD,eAAW,IAAI,iBAAiB,YAAY;AAC5C,UAAM,mBAAmB,oBAAI,QAA2C;AACxE,UAAM,mBAAmB,CAAC,aAAuB;AAC/C,YAAM,QAAQ,oBAAoB,kBAAkB,UAAU,OAAO;AAAA,QACnE,sBAAsB,oBAAI,IAAI;AAAA,QAC9B,cAAc,oBAAI,IAAI;AAAA,QACtB,gBAAgB,oBAAI,IAAI;AAAA,QACxB,kBAAkB,oBAAI,IAAI;AAAA,MAC5B,EAAE;AACF,aAAO;AAAA,IACT;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM,iBAAiB;AACtC,eAAW,KAAK;AAAA,MACd;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,MAAM;AAAA,MACN,eAAe,cAAc,YAAY;AACvC,cAAM,SAAS;AACf,cAAM,WAAW,OAAO,UAAU,YAAY,MAAM,CAAC;AACrD,YAAI,kBAAkB,UAAU,GAAG;AACjC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,mBAAmB,cAAc,UAAU;AAAA,YACnD,UAAU,mBAAmB,cAAc,UAAU;AAAA,UACvD,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AACA,YAAI,qBAAqB,UAAU,GAAG;AACpC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,sBAAsB;AAAA,YAC9B,UAAU,sBAAsB,YAAY;AAAA,UAC9C,GAAG,uBAAuB,eAAe,YAAY,CAAC;AAAA,QACxD;AACA,YAAI,0BAA0B,UAAU,GAAG;AACzC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,2BAA2B,cAAc,UAAU;AAAA,YAC3D,UAAU,2BAA2B,cAAc,UAAU;AAAA,UAC/D,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACniBO,IAAM,YAA2B,+BAAe,WAAW,CAAC;","names":["QueryStatus","isPlainObject","retry","updateListeners","import_toolkit","import_utils","arg","force","options","actions","createSelector","import_toolkit","key","queryArgsApi","_formatProdErrorMessage","getPreviousPageParam","_formatProdErrorMessage2","import_toolkit","_formatProdErrorMessage","mwApi","mwApi","api","cacheKey","extra","api","extra","api","actions","initialized","createSelector"]}
Index: de_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.production.min.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.production.min.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-"use strict";var He=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Jt=Object.prototype.hasOwnProperty;var Gt=(e,t)=>{for(var u in t)He(e,u,{get:t[u],enumerable:!0})},Zt=(e,t,u,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of Yt(t))!Jt.call(e,p)&&p!==u&&He(e,p,{get:()=>t[p],enumerable:!(l=$t(t,p))||l.enumerable});return e};var Xt=e=>Zt(He({},"__esModule",{value:!0}),e);var ln={};Gt(ln,{NamedSchemaError:()=>ce,QueryStatus:()=>Ve,_NEVER:()=>Ct,buildCreateApi:()=>Le,copyWithStructuralSharing:()=>Se,coreModule:()=>_e,coreModuleName:()=>Me,createApi:()=>jt,defaultSerializeQueryArgs:()=>ke,fakeBaseQuery:()=>Ft,fetchBaseQuery:()=>pt,retry:()=>lt,setupListeners:()=>Qt,skipToken:()=>Be});module.exports=Xt(ln);var Ve=(p=>(p.uninitialized="uninitialized",p.pending="pending",p.fulfilled="fulfilled",p.rejected="rejected",p))(Ve||{}),W="uninitialized",Fe="pending",ge="fulfilled",Qe="rejected";function je(e){return{status:e,isUninitialized:e===W,isLoading:e===Fe,isSuccess:e===ge,isError:e===Qe}}var s=require("@reduxjs/toolkit");var tt=s.isPlainObject;function Se(e,t){if(e===t||!(tt(e)&&tt(t)||Array.isArray(e)&&Array.isArray(t)))return t;let u=Object.keys(t),l=Object.keys(e),p=u.length===l.length,S=Array.isArray(t)?[]:{};for(let Q of u)S[Q]=Se(e[Q],t[Q]),p&&(p=e[Q]===S[Q]);return p?e:S}function xe(e,t,u){return e.reduce((l,p,S)=>(t(p,S)&&l.push(u(p,S)),l),[]).flat()}function nt(e){return new RegExp("(^|:)//").test(e)}function rt(){return typeof document>"u"?!0:document.visibilityState!=="hidden"}function De(e){return e!=null}function ze(e){return[...e?.values()??[]].filter(De)}function it(){return typeof navigator>"u"||navigator.onLine===void 0?!0:navigator.onLine}var en=e=>e.replace(/\/$/,""),tn=e=>e.replace(/^\//,"");function at(e,t){if(!e)return t;if(!t)return e;if(nt(t))return t;let u=e.endsWith("/")||!t.startsWith("?")?"/":"";return e=en(e),t=tn(t),`${e}${u}${t}`}function ye(e,t,u){return e.has(t)?e.get(t):e.set(t,u(t)).get(t)}var Ee=()=>new Map;var ot=e=>{let t=new AbortController;return setTimeout(()=>{let u="signal timed out",l="TimeoutError";t.abort(typeof DOMException<"u"?new DOMException(u,l):Object.assign(new Error(u),{name:l}))},e),t.signal},st=(...e)=>{for(let u of e)if(u.aborted)return AbortSignal.abort(u.reason);let t=new AbortController;for(let u of e)u.addEventListener("abort",()=>t.abort(u.reason),{signal:t.signal,once:!0});return t.signal};var ut=(...e)=>fetch(...e),nn=e=>e.status>=200&&e.status<=299,rn=e=>/ion\/(vnd\.api\+)?json/.test(e.get("content-type")||"");function yt(e){if(!(0,s.isPlainObject)(e))return e;let t={...e};for(let[u,l]of Object.entries(t))l===void 0&&delete t[u];return t}var an=e=>typeof e=="object"&&((0,s.isPlainObject)(e)||Array.isArray(e)||typeof e.toJSON=="function");function pt({baseUrl:e,prepareHeaders:t=h=>h,fetchFn:u=ut,paramsSerializer:l,isJsonContentType:p=rn,jsonContentType:S="application/json",jsonReplacer:Q,timeout:k,responseHandler:M,validateStatus:x,...D}={}){return typeof fetch>"u"&&u===ut&&console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments."),async(R,b,w)=>{let{getState:P,extra:f,endpoint:A,forced:B,type:y}=b,c,{url:i,headers:T=new Headers(D.headers),params:E=void 0,responseHandler:g=M??"json",validateStatus:d=x??nn,timeout:a=k,...n}=typeof R=="string"?{url:R}:R,r={...D,signal:a?st(b.signal,ot(a)):b.signal,...n};T=new Headers(yt(T)),r.headers=await t(T,{getState:P,arg:R,extra:f,endpoint:A,forced:B,type:y,extraOptions:w})||T;let o=an(r.body);if(r.body!=null&&!o&&typeof r.body!="string"&&r.headers.delete("content-type"),!r.headers.has("content-type")&&o&&r.headers.set("content-type",S),o&&p(r.headers)&&(r.body=JSON.stringify(r.body,Q)),r.headers.has("accept")||(g==="json"?r.headers.set("accept","application/json"):g==="text"&&r.headers.set("accept","text/plain, text/html, */*")),E){let O=~i.indexOf("?")?"&":"?",_=l?l(E):new URLSearchParams(yt(E));i+=O+_}i=at(e,i);let m=new Request(i,r);c={request:new Request(i,r)};let C;try{C=await u(m)}catch(O){return{error:{status:(O instanceof Error||typeof DOMException<"u"&&O instanceof DOMException)&&O.name==="TimeoutError"?"TIMEOUT_ERROR":"FETCH_ERROR",error:String(O)},meta:c}}let N=C.clone();c.response=N;let v,I="";try{let O;if(await Promise.all([h(C,g).then(_=>v=_,_=>O=_),N.text().then(_=>I=_,()=>{})]),O)throw O}catch(O){return{error:{status:"PARSING_ERROR",originalStatus:C.status,data:I,error:String(O)},meta:c}}return d(C,v)?{data:v,meta:c}:{error:{status:C.status,data:v},meta:c}};async function h(R,b){if(typeof b=="function")return b(R);if(b==="content-type"&&(b=p(R.headers)?"json":"text"),b==="json"){let w=await R.text();return w.length?JSON.parse(w):null}return R.text()}}var Z=class{constructor(t,u=void 0){this.value=t;this.meta=u}};async function on(e=0,t=5,u){let l=Math.min(e,t),p=~~((Math.random()+.4)*(300<<l));await new Promise((S,Q)=>{let k=setTimeout(()=>S(),p);if(u){let M=()=>{clearTimeout(k),Q(new Error("Aborted"))};u.aborted?(clearTimeout(k),Q(new Error("Aborted"))):u.addEventListener("abort",M,{once:!0})}})}function ct(e,t){throw Object.assign(new Z({error:e,meta:t}),{throwImmediately:!0})}function We(e){e.aborted&&ct({status:"CUSTOM_ERROR",error:"Aborted"})}var dt={},sn=(e,t)=>async(u,l,p)=>{let S=[5,(t||dt).maxRetries,(p||dt).maxRetries].filter(D=>D!==void 0),[Q]=S.slice(-1),M={maxRetries:Q,backoff:on,retryCondition:(D,h,{attempt:R})=>R<=Q,...t,...p},x=0;for(;;){We(l.signal);try{let D=await e(u,l,p);if(D.error)throw new Z(D);return D}catch(D){if(x++,D.throwImmediately){if(D instanceof Z)return D.value;throw D}if(D instanceof Z){if(!M.retryCondition(D.value.error,u,{attempt:x,baseQueryApi:l,extraOptions:p}))return D.value}else if(x>M.maxRetries)return{error:D};We(l.signal);try{await M.backoff(x,M.maxRetries,l.signal)}catch(h){throw We(l.signal),h}}}},lt=Object.assign(sn,{fail:ct});var Oe="__rtkq/",ft="online",mt="offline",un="focus",gt="focused",yn="visibilitychange",ie=(0,s.createAction)(`${Oe}${gt}`),Te=(0,s.createAction)(`${Oe}un${gt}`),ae=(0,s.createAction)(`${Oe}${ft}`),he=(0,s.createAction)(`${Oe}${mt}`),pn={onFocus:ie,onFocusLost:Te,onOnline:ae,onOffline:he},ve=!1;function Qt(e,t){function u(){let[l,p,S,Q]=[ie,Te,ae,he].map(D=>()=>e(D())),k=()=>{window.document.visibilityState==="visible"?l():p()},M=()=>{ve=!1};if(!ve&&typeof window<"u"&&window.addEventListener){let h=function(R){Object.entries(D).forEach(([b,w])=>{R?window.addEventListener(b,w,!1):window.removeEventListener(b,w)})};var x=h;let D={[un]:l,[yn]:k,[ft]:S,[mt]:Q};h(!0),ve=!0,M=()=>{h(!1),ve=!1}}return M}return t?t(e,pn):u()}var te="query",$e="mutation",Ye="infinitequery";function pe(e){return e.type===te}function Tt(e){return e.type===$e}function de(e){return e.type===Ye}function Re(e){return pe(e)||de(e)}function be(e,t,u,l,p,S){let Q=dn(e)?e(t,u,l,p):e;return Q?xe(Q,De,k=>S(Je(k))):[]}function dn(e){return typeof e=="function"}function Je(e){return typeof e=="string"?{type:e}:e}var H=require("immer");var Hn=require("@reduxjs/toolkit");function ht(e,t){return e.catch(t)}var J=(e,t)=>e.endpointDefinitions[t];var Ae=Symbol("forceQueryFn"),Pe=e=>typeof e[Ae]=="function";function Rt({serializeQueryArgs:e,queryThunk:t,infiniteQueryThunk:u,mutationThunk:l,api:p,context:S,getInternalState:Q}){let k=i=>Q(i)?.runningQueries,M=i=>Q(i)?.runningMutations,{unsubscribeQueryResult:x,removeMutationResult:D,updateSubscriptionOptions:h}=p.internalActions;return{buildInitiateQuery:B,buildInitiateInfiniteQuery:y,buildInitiateMutation:c,getRunningQueryThunk:R,getRunningMutationThunk:b,getRunningQueriesThunk:w,getRunningMutationsThunk:P};function R(i,T){return E=>{let g=J(S,i),d=e({queryArgs:T,endpointDefinition:g,endpointName:i});return k(E)?.get(d)}}function b(i,T){return E=>M(E)?.get(T)}function w(){return i=>ze(k(i))}function P(){return i=>ze(M(i))}function f(i){}function A(i,T){let E=(g,{subscribe:d=!0,forceRefetch:a,subscriptionOptions:n,[Ae]:r,...o}={})=>(m,F)=>{let C=e({queryArgs:g,endpointDefinition:T,endpointName:i}),N,v={...o,type:te,subscribe:d,forceRefetch:a,subscriptionOptions:n,endpointName:i,originalArgs:g,queryCacheKey:C,[Ae]:r};if(pe(T))N=t(v);else{let{direction:K,initialPageParam:L,refetchCachedPages:U}=o;N=u({...v,direction:K,initialPageParam:L,refetchCachedPages:U})}let I=p.endpoints[i].select(g),O=m(N),_=I(F());let{requestId:$,abort:G}=O,V=_.requestId!==$,z=k(m)?.get(C),j=()=>I(F()),q=Object.assign(r?O.then(j):V&&!z?Promise.resolve(_):Promise.all([z,O]).then(j),{arg:g,requestId:$,subscriptionOptions:n,queryCacheKey:C,abort:G,async unwrap(){let K=await q;if(K.isError)throw K.error;return K.data},refetch:K=>m(E(g,{subscribe:!1,forceRefetch:!0,...K})),unsubscribe(){d&&m(x({queryCacheKey:C,requestId:$}))},updateSubscriptionOptions(K){q.subscriptionOptions=K,m(h({endpointName:i,requestId:$,queryCacheKey:C,options:K}))}});if(!z&&!V&&!r){let K=k(m);K.set(C,q),q.then(()=>{K.delete(C)})}return q};return E}function B(i,T){return A(i,T)}function y(i,T){return A(i,T)}function c(i){return(T,{track:E=!0,fixedCacheKey:g}={})=>(d,a)=>{let n=l({type:"mutation",endpointName:i,originalArgs:T,track:E,fixedCacheKey:g}),r=d(n);let{requestId:o,abort:m,unwrap:F}=r,C=ht(r.unwrap().then(O=>({data:O})),O=>({error:O})),N=()=>{d(D({requestId:o,fixedCacheKey:g}))},v=Object.assign(C,{arg:r.arg,requestId:o,abort:m,unwrap:F,reset:N}),I=M(d);return I.set(o,v),v.then(()=>{I.delete(o)}),g&&(I.set(g,v),v.then(()=>{I.get(g)===v&&I.delete(g)})),v}}}var At=require("@standard-schema/utils"),ce=class extends At.SchemaError{constructor(u,l,p,S){super(u);this.value=l;this.schemaName=p;this._bqMeta=S}},oe=(e,t)=>Array.isArray(e)?e.includes(t):!!e;async function se(e,t,u,l){let p=await e["~standard"].validate(t);if(p.issues)throw new ce(p.issues,t,u,l);return p.value}function St(e){return e}var Ie=(e={})=>({...e,[s.SHOULD_AUTOBATCH]:!0});function xt({reducerPath:e,baseQuery:t,context:{endpointDefinitions:u},serializeQueryArgs:l,api:p,assertTagType:S,selectors:Q,onSchemaFailure:k,catchSchemaFailure:M,skipSchemaValidation:x}){let D=(n,r,o,m)=>(F,C)=>{let N=u[n],v=l({queryArgs:r,endpointDefinition:N,endpointName:n});if(F(p.internalActions.queryResultPatched({queryCacheKey:v,patches:o})),!m)return;let I=p.endpoints[n].select(r)(C()),O=be(N.providesTags,I.data,void 0,r,{},S);F(p.internalActions.updateProvidedBy([{queryCacheKey:v,providedTags:O}]))};function h(n,r,o=0){let m=[r,...n];return o&&m.length>o?m.slice(0,-1):m}function R(n,r,o=0){let m=[...n,r];return o&&m.length>o?m.slice(1):m}let b=(n,r,o,m=!0)=>(F,C)=>{let v=p.endpoints[n].select(r)(C()),I={patches:[],inversePatches:[],undo:()=>F(p.util.patchQueryData(n,r,I.inversePatches,m))};if(v.status===W)return I;let O;if("data"in v)if((0,H.isDraftable)(v.data)){let[_,$,G]=(0,H.produceWithPatches)(v.data,o);I.patches.push(...$),I.inversePatches.push(...G),O=_}else O=o(v.data),I.patches.push({op:"replace",path:[],value:O}),I.inversePatches.push({op:"replace",path:[],value:v.data});return I.patches.length===0||F(p.util.patchQueryData(n,r,I.patches,m)),I},w=(n,r,o)=>m=>m(p.endpoints[n].initiate(r,{subscribe:!1,forceRefetch:!0,[Ae]:()=>({data:o})})),P=(n,r)=>n.query&&n[r]?n[r]:St,f=async(n,{signal:r,abort:o,rejectWithValue:m,fulfillWithValue:F,dispatch:C,getState:N,extra:v})=>{let I=u[n.endpointName],{metaSchema:O,skipSchemaValidation:_=x}=I,$=n.type===te;try{let G=St,V={signal:r,abort:o,dispatch:C,getState:N,extra:v,endpoint:n.endpointName,type:n.type,forced:$?A(n,N()):void 0,queryCacheKey:$?n.queryCacheKey:void 0},z=$?n[Ae]:void 0,j,q=async(L,U,ne,Y)=>{if(U==null&&L.pages.length)return Promise.resolve({data:L});let fe={queryArg:n.originalArgs,pageParam:U},ee=await K(fe),me=Y?h:R;return{data:{pages:me(L.pages,ee.data,ne),pageParams:me(L.pageParams,U,ne)},meta:ee.meta}};async function K(L){let U,{extraOptions:ne,argSchema:Y,rawResponseSchema:fe,responseSchema:ee}=I;if(Y&&!oe(_,"arg")&&(L=await se(Y,L,"argSchema",{})),z?U=z():I.query?(G=P(I,"transformResponse"),U=await t(I.query(L),V,ne)):U=await I.queryFn(L,V,ne,ue=>t(ue,V,ne)),typeof process<"u",U.error)throw new Z(U.error,U.meta);let{data:me}=U;fe&&!oe(_,"rawResponse")&&(me=await se(fe,U.data,"rawResponseSchema",U.meta));let re=await G(me,U.meta,L);return ee&&!oe(_,"response")&&(re=await se(ee,re,"responseSchema",U.meta)),{...U,data:re}}if($&&"infiniteQueryOptions"in I){let{infiniteQueryOptions:L}=I,{maxPages:U=1/0}=L,ne=n.refetchCachedPages??L.refetchCachedPages??!0,Y,fe={pages:[],pageParams:[]},ee=Q.selectQueryEntry(N(),n.queryCacheKey)?.data,re=A(n,N())&&!n.direction||!ee?fe:ee;if("direction"in n&&n.direction&&re.pages.length){let ue=n.direction==="backward",Ce=(ue?Ge:Ne)(L,re,n.originalArgs);Y=await q(re,Ce,U,ue)}else{let{initialPageParam:ue=L.initialPageParam}=n,we=ee?.pageParams??[],Ce=we[0]??ue,zt=we.length;if(Y=await q(re,Ce,U),z&&(Y={data:Y.data.pages[0]}),ne)for(let et=1;et<zt;et++){let Wt=Ne(L,Y.data,n.originalArgs);Y=await q(Y.data,Wt,U)}}j=Y}else j=await K(n.originalArgs);return O&&!oe(_,"meta")&&j.meta&&(j.meta=await se(O,j.meta,"metaSchema",j.meta)),F(j.data,Ie({fulfilledTimeStamp:Date.now(),baseQueryMeta:j.meta}))}catch(G){let V=G;if(V instanceof Z){let z=P(I,"transformErrorResponse"),{rawErrorResponseSchema:j,errorResponseSchema:q}=I,{value:K,meta:L}=V;try{j&&!oe(_,"rawErrorResponse")&&(K=await se(j,K,"rawErrorResponseSchema",L)),O&&!oe(_,"meta")&&(L=await se(O,L,"metaSchema",L));let U=await z(K,L,n.originalArgs);return q&&!oe(_,"errorResponse")&&(U=await se(q,U,"errorResponseSchema",L)),m(U,Ie({baseQueryMeta:L}))}catch(U){V=U}}try{if(V instanceof ce){let z={endpoint:n.endpointName,arg:n.originalArgs,type:n.type,queryCacheKey:$?n.queryCacheKey:void 0};I.onSchemaFailure?.(V,z),k?.(V,z);let{catchSchemaFailure:j=M}=I;if(j)return m(j(V,z),Ie({baseQueryMeta:V._bqMeta}))}}catch(z){V=z}throw typeof process<"u",console.error(V),V}};function A(n,r){let o=Q.selectQueryEntry(r,n.queryCacheKey),m=Q.selectConfig(r).refetchOnMountOrArgChange,F=o?.fulfilledTimeStamp,C=n.forceRefetch??(n.subscribe&&m);return C?C===!0||(Number(new Date)-Number(F))/1e3>=C:!1}let B=()=>(0,s.createAsyncThunk)(`${e}/executeQuery`,f,{getPendingMeta({arg:r}){let o=u[r.endpointName];return Ie({startedTimeStamp:Date.now(),...de(o)?{direction:r.direction}:{}})},condition(r,{getState:o}){let m=o(),F=Q.selectQueryEntry(m,r.queryCacheKey),C=F?.fulfilledTimeStamp,N=r.originalArgs,v=F?.originalArgs,I=u[r.endpointName],O=r.direction;return Pe(r)?!0:F?.status==="pending"?!1:A(r,m)||pe(I)&&I?.forceRefetch?.({currentArg:N,previousArg:v,endpointState:F,state:m})?!0:!(C&&!O)},dispatchConditionRejection:!0}),y=B(),c=B(),i=(0,s.createAsyncThunk)(`${e}/executeMutation`,f,{getPendingMeta(){return Ie({startedTimeStamp:Date.now()})}}),T=n=>"force"in n,E=n=>"ifOlderThan"in n,g=(n,r,o={})=>(m,F)=>{let C=T(o)&&o.force,N=E(o)&&o.ifOlderThan,v=(O=!0)=>{let _={forceRefetch:O,subscribe:!1};return p.endpoints[n].initiate(r,_)},I=p.endpoints[n].select(r)(F());if(C)m(v());else if(N){let O=I?.fulfilledTimeStamp;if(!O){m(v());return}(Number(new Date)-Number(new Date(O)))/1e3>=N&&m(v())}else m(v(!1))};function d(n){return r=>r?.meta?.arg?.endpointName===n}function a(n,r){return{matchPending:(0,s.isAllOf)((0,s.isPending)(n),d(r)),matchFulfilled:(0,s.isAllOf)((0,s.isFulfilled)(n),d(r)),matchRejected:(0,s.isAllOf)((0,s.isRejected)(n),d(r))}}return{queryThunk:y,mutationThunk:i,infiniteQueryThunk:c,prefetch:g,updateQueryData:b,upsertQueryData:w,patchQueryData:D,buildMatchThunkActions:a}}function Ne(e,{pages:t,pageParams:u},l){let p=t.length-1;return e.getNextPageParam(t[p],t,u[p],u,l)}function Ge(e,{pages:t,pageParams:u},l){return e.getPreviousPageParam?.(t[0],t,u[0],u,l)}function Ue(e,t,u,l){return be(u[e.meta.arg.endpointName][t],(0,s.isFulfilled)(e)?e.payload:void 0,(0,s.isRejectedWithValue)(e)?e.payload:void 0,e.meta.arg.originalArgs,"baseQueryMeta"in e.meta?e.meta.baseQueryMeta:void 0,l)}function Ze(e){return(0,H.isDraft)(e)?(0,H.current)(e):e}function qe(e,t,u){let l=e[t];l&&u(l)}function le(e){return("arg"in e?e.arg.fixedCacheKey:e.fixedCacheKey)??e.requestId}function Dt(e,t,u){let l=e[le(t)];l&&u(l)}var Ke={};function Et({reducerPath:e,queryThunk:t,mutationThunk:u,serializeQueryArgs:l,context:{endpointDefinitions:p,apiUid:S,extractRehydrationInfo:Q,hasRehydrationInfo:k},assertTagType:M,config:x}){let D=(0,s.createAction)(`${e}/resetApiState`);function h(d,a,n,r){d[a.queryCacheKey]??={status:W,endpointName:a.endpointName},qe(d,a.queryCacheKey,o=>{o.status=Fe,o.requestId=n&&o.requestId?o.requestId:r.requestId,a.originalArgs!==void 0&&(o.originalArgs=a.originalArgs),o.startedTimeStamp=r.startedTimeStamp;let m=p[r.arg.endpointName];de(m)&&"direction"in a&&(o.direction=a.direction)})}function R(d,a,n,r){qe(d,a.arg.queryCacheKey,o=>{if(o.requestId!==a.requestId&&!r)return;let{merge:m}=p[a.arg.endpointName];if(o.status=ge,m)if(o.data!==void 0){let{fulfilledTimeStamp:F,arg:C,baseQueryMeta:N,requestId:v}=a,I=(0,s.createNextState)(o.data,O=>m(O,n,{arg:C.originalArgs,baseQueryMeta:N,fulfilledTimeStamp:F,requestId:v}));o.data=I}else o.data=n;else o.data=p[a.arg.endpointName].structuralSharing??!0?Se((0,H.isDraft)(o.data)?(0,H.original)(o.data):o.data,n):n;delete o.error,o.fulfilledTimeStamp=a.fulfilledTimeStamp})}let b=(0,s.createSlice)({name:`${e}/queries`,initialState:Ke,reducers:{removeQueryResult:{reducer(d,{payload:{queryCacheKey:a}}){delete d[a]},prepare:(0,s.prepareAutoBatched)()},cacheEntriesUpserted:{reducer(d,a){for(let n of a.payload){let{queryDescription:r,value:o}=n;h(d,r,!0,{arg:r,requestId:a.meta.requestId,startedTimeStamp:a.meta.timestamp}),R(d,{arg:r,requestId:a.meta.requestId,fulfilledTimeStamp:a.meta.timestamp,baseQueryMeta:{}},o,!0)}},prepare:d=>({payload:d.map(r=>{let{endpointName:o,arg:m,value:F}=r,C=p[o];return{queryDescription:{type:te,endpointName:o,originalArgs:r.arg,queryCacheKey:l({queryArgs:m,endpointDefinition:C,endpointName:o})},value:F}}),meta:{[s.SHOULD_AUTOBATCH]:!0,requestId:(0,s.nanoid)(),timestamp:Date.now()}})},queryResultPatched:{reducer(d,{payload:{queryCacheKey:a,patches:n}}){qe(d,a,r=>{r.data=(0,H.applyPatches)(r.data,n.concat())})},prepare:(0,s.prepareAutoBatched)()}},extraReducers(d){d.addCase(t.pending,(a,{meta:n,meta:{arg:r}})=>{let o=Pe(r);h(a,r,o,n)}).addCase(t.fulfilled,(a,{meta:n,payload:r})=>{let o=Pe(n.arg);R(a,n,r,o)}).addCase(t.rejected,(a,{meta:{condition:n,arg:r,requestId:o},error:m,payload:F})=>{qe(a,r.queryCacheKey,C=>{if(!n){if(C.requestId!==o)return;C.status=Qe,C.error=F??m}})}).addMatcher(k,(a,n)=>{let{queries:r}=Q(n);for(let[o,m]of Object.entries(r))(m?.status===ge||m?.status===Qe)&&(a[o]=m)})}}),w=(0,s.createSlice)({name:`${e}/mutations`,initialState:Ke,reducers:{removeMutationResult:{reducer(d,{payload:a}){let n=le(a);n in d&&delete d[n]},prepare:(0,s.prepareAutoBatched)()}},extraReducers(d){d.addCase(u.pending,(a,{meta:n,meta:{requestId:r,arg:o,startedTimeStamp:m}})=>{o.track&&(a[le(n)]={requestId:r,status:Fe,endpointName:o.endpointName,startedTimeStamp:m})}).addCase(u.fulfilled,(a,{payload:n,meta:r})=>{r.arg.track&&Dt(a,r,o=>{o.requestId===r.requestId&&(o.status=ge,o.data=n,o.fulfilledTimeStamp=r.fulfilledTimeStamp)})}).addCase(u.rejected,(a,{payload:n,error:r,meta:o})=>{o.arg.track&&Dt(a,o,m=>{m.requestId===o.requestId&&(m.status=Qe,m.error=n??r)})}).addMatcher(k,(a,n)=>{let{mutations:r}=Q(n);for(let[o,m]of Object.entries(r))(m?.status===ge||m?.status===Qe)&&o!==m?.requestId&&(a[o]=m)})}}),P={tags:{},keys:{}},f=(0,s.createSlice)({name:`${e}/invalidation`,initialState:P,reducers:{updateProvidedBy:{reducer(d,a){for(let{queryCacheKey:n,providedTags:r}of a.payload){A(d,n);for(let{type:o,id:m}of r){let F=(d.tags[o]??={})[m||"__internal_without_id"]??=[];F.includes(n)||F.push(n)}d.keys[n]=r}},prepare:(0,s.prepareAutoBatched)()}},extraReducers(d){d.addCase(b.actions.removeQueryResult,(a,{payload:{queryCacheKey:n}})=>{A(a,n)}).addMatcher(k,(a,n)=>{let{provided:r}=Q(n);for(let[o,m]of Object.entries(r.tags??{}))for(let[F,C]of Object.entries(m)){let N=(a.tags[o]??={})[F||"__internal_without_id"]??=[];for(let v of C)N.includes(v)||N.push(v),a.keys[v]=r.keys[v]}}).addMatcher((0,s.isAnyOf)((0,s.isFulfilled)(t),(0,s.isRejectedWithValue)(t)),(a,n)=>{B(a,[n])}).addMatcher(b.actions.cacheEntriesUpserted.match,(a,n)=>{let r=n.payload.map(({queryDescription:o,value:m})=>({type:"UNKNOWN",payload:m,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:o}}));B(a,r)})}});function A(d,a){let n=Ze(d.keys[a]??[]);for(let r of n){let o=r.type,m=r.id??"__internal_without_id",F=d.tags[o]?.[m];F&&(d.tags[o][m]=Ze(F).filter(C=>C!==a))}delete d.keys[a]}function B(d,a){let n=a.map(r=>{let o=Ue(r,"providesTags",p,M),{queryCacheKey:m}=r.meta.arg;return{queryCacheKey:m,providedTags:o}});f.caseReducers.updateProvidedBy(d,f.actions.updateProvidedBy(n))}let y=(0,s.createSlice)({name:`${e}/subscriptions`,initialState:Ke,reducers:{updateSubscriptionOptions(d,a){},unsubscribeQueryResult(d,a){},internal_getRTKQSubscriptions(){}}}),c=(0,s.createSlice)({name:`${e}/internalSubscriptions`,initialState:Ke,reducers:{subscriptionsUpdated:{reducer(d,a){return(0,H.applyPatches)(d,a.payload)},prepare:(0,s.prepareAutoBatched)()}}}),i=(0,s.createSlice)({name:`${e}/config`,initialState:{online:it(),focused:rt(),middlewareRegistered:!1,...x},reducers:{middlewareRegistered(d,{payload:a}){d.middlewareRegistered=d.middlewareRegistered==="conflict"||S!==a?"conflict":!0}},extraReducers:d=>{d.addCase(ae,a=>{a.online=!0}).addCase(he,a=>{a.online=!1}).addCase(ie,a=>{a.focused=!0}).addCase(Te,a=>{a.focused=!1}).addMatcher(k,a=>({...a}))}}),T=(0,s.combineReducers)({queries:b.reducer,mutations:w.reducer,provided:f.reducer,subscriptions:c.reducer,config:i.reducer}),E=(d,a)=>T(D.match(a)?void 0:d,a),g={...i.actions,...b.actions,...y.actions,...c.actions,...w.actions,...f.actions,resetApiState:D};return{reducer:E,actions:g}}var Be=Symbol.for("RTKQ/skipToken"),It={status:W},bt=(0,s.createNextState)(It,()=>{}),Pt=(0,s.createNextState)(It,()=>{});function Bt({serializeQueryArgs:e,reducerPath:t,createSelector:u}){let l=y=>bt,p=y=>Pt;return{buildQuerySelector:R,buildInfiniteQuerySelector:b,buildMutationSelector:w,selectInvalidatedBy:P,selectCachedArgsForQuery:f,selectApiState:Q,selectQueries:k,selectMutations:x,selectQueryEntry:M,selectConfig:D};function S(y){return{...y,...je(y.status)}}function Q(y){return y[t]}function k(y){return Q(y)?.queries}function M(y,c){return k(y)?.[c]}function x(y){return Q(y)?.mutations}function D(y){return Q(y)?.config}function h(y,c,i){return T=>{if(T===Be)return u(l,i);let E=e({queryArgs:T,endpointDefinition:c,endpointName:y});return u(d=>M(d,E)??bt,i)}}function R(y,c){return h(y,c,S)}function b(y,c){let{infiniteQueryOptions:i}=c;function T(E){let g={...E,...je(E.status)},{isLoading:d,isError:a,direction:n}=g,r=n==="forward",o=n==="backward";return{...g,hasNextPage:A(i,g.data,g.originalArgs),hasPreviousPage:B(i,g.data,g.originalArgs),isFetchingNextPage:d&&r,isFetchingPreviousPage:d&&o,isFetchNextPageError:a&&r,isFetchPreviousPageError:a&&o}}return h(y,c,T)}function w(){return y=>{let c;return typeof y=="object"?c=le(y)??Be:c=y,u(c===Be?p:E=>Q(E)?.mutations?.[c]??Pt,S)}}function P(y,c){let i=y[t],T=new Set,E=xe(c,De,Je);for(let g of E){let d=i.provided.tags[g.type];if(!d)continue;let a=(g.id!==void 0?d[g.id]:Object.values(d).flat())??[];for(let n of a)T.add(n)}return Array.from(T.values()).flatMap(g=>{let d=i.queries[g];return d?{queryCacheKey:g,endpointName:d.endpointName,originalArgs:d.originalArgs}:[]})}function f(y,c){return xe(Object.values(k(y)),i=>i?.endpointName===c&&i.status!==W,i=>i.originalArgs)}function A(y,c,i){return c?Ne(y,c,i)!=null:!1}function B(y,c,i){return!c||!y.getPreviousPageParam?!1:Ge(y,c,i)!=null}}var Mt=require("@reduxjs/toolkit");var kt=WeakMap?new WeakMap:void 0,ke=({endpointName:e,queryArgs:t})=>{let u="",l=kt?.get(t);if(typeof l=="string")u=l;else{let p=JSON.stringify(t,(S,Q)=>(Q=typeof Q=="bigint"?{$bigint:Q.toString()}:Q,Q=(0,s.isPlainObject)(Q)?Object.keys(Q).sort().reduce((k,M)=>(k[M]=Q[M],k),{}):Q,Q));(0,s.isPlainObject)(t)&&kt?.set(t,p),u=p}return`${e}(${u})`};var Xe=require("reselect");function Le(...e){return function(u){let l=(0,Xe.weakMapMemoize)(x=>u.extractRehydrationInfo?.(x,{reducerPath:u.reducerPath??"api"})),p={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...u,extractRehydrationInfo:l,serializeQueryArgs(x){let D=ke;if("serializeQueryArgs"in x.endpointDefinition){let h=x.endpointDefinition.serializeQueryArgs;D=R=>{let b=h(R);return typeof b=="string"?b:ke({...R,queryArgs:b})}}else u.serializeQueryArgs&&(D=u.serializeQueryArgs);return D(x)},tagTypes:[...u.tagTypes||[]]},S={endpointDefinitions:{},batch(x){x()},apiUid:(0,s.nanoid)(),extractRehydrationInfo:l,hasRehydrationInfo:(0,Xe.weakMapMemoize)(x=>l(x)!=null)},Q={injectEndpoints:M,enhanceEndpoints({addTagTypes:x,endpoints:D}){if(x)for(let h of x)p.tagTypes.includes(h)||p.tagTypes.push(h);if(D)for(let[h,R]of Object.entries(D))typeof R=="function"?R(J(S,h)):Object.assign(J(S,h)||{},R);return Q}},k=e.map(x=>x.init(Q,p,S));function M(x){let D=x.endpoints({query:h=>({...h,type:te}),mutation:h=>({...h,type:$e}),infiniteQuery:h=>({...h,type:Ye})});for(let[h,R]of Object.entries(D)){if(x.overrideExisting!==!0&&h in S.endpointDefinitions){if(x.overrideExisting==="throw")throw new Error((0,Mt.formatProdErrorMessage)(39));typeof process<"u";continue}typeof process<"u",S.endpointDefinitions[h]=R;for(let b of k)b.injectEndpoint(h,R)}return Q}return Q.injectEndpoints({endpoints:u.endpoints})}}var wt=require("@reduxjs/toolkit"),Ct=Symbol();function Ft(){return function(){throw new Error((0,wt.formatProdErrorMessage)(33))}}function X(e,...t){return Object.assign(e,...t)}var vt=({api:e,queryThunk:t,internalState:u,mwApi:l})=>{let p=`${e.reducerPath}/subscriptions`,S=null,Q=null,{updateSubscriptionOptions:k,unsubscribeQueryResult:M}=e.internalActions,x=(P,f)=>{if(k.match(f)){let{queryCacheKey:B,requestId:y,options:c}=f.payload,i=P.get(B);return i?.has(y)&&i.set(y,c),!0}if(M.match(f)){let{queryCacheKey:B,requestId:y}=f.payload,c=P.get(B);return c&&c.delete(y),!0}if(e.internalActions.removeQueryResult.match(f))return P.delete(f.payload.queryCacheKey),!0;if(t.pending.match(f)){let{meta:{arg:B,requestId:y}}=f,c=ye(P,B.queryCacheKey,Ee);return B.subscribe&&c.set(y,B.subscriptionOptions??c.get(y)??{}),!0}let A=!1;if(t.rejected.match(f)){let{meta:{condition:B,arg:y,requestId:c}}=f;if(B&&y.subscribe){let i=ye(P,y.queryCacheKey,Ee);i.set(c,y.subscriptionOptions??i.get(c)??{}),A=!0}}return A},D=()=>u.currentSubscriptions,b={getSubscriptions:D,getSubscriptionCount:P=>D().get(P)?.size??0,isRequestSubscribed:(P,f)=>!!D()?.get(P)?.get(f)};function w(P){return JSON.parse(JSON.stringify(Object.fromEntries([...P].map(([f,A])=>[f,Object.fromEntries(A)]))))}return(P,f)=>{if(S||(S=w(u.currentSubscriptions)),e.util.resetApiState.match(P))return S={},u.currentSubscriptions.clear(),Q=null,[!0,!1];if(e.internalActions.internal_getRTKQSubscriptions.match(P))return[!1,b];let A=x(u.currentSubscriptions,P),B=!0;if(A){Q||(Q=setTimeout(()=>{let i=w(u.currentSubscriptions),[,T]=(0,H.produceWithPatches)(S,()=>i);f.next(e.internalActions.subscriptionsUpdated(T)),S=i,Q=null},500));let y=typeof P.type=="string"&&!!P.type.startsWith(p),c=t.rejected.match(P)&&P.meta.condition&&!!P.meta.arg.subscribe;B=!y&&!c}return[B,!1]}};var cn=2147483647/1e3-1,Ot=({reducerPath:e,api:t,queryThunk:u,context:l,internalState:p,selectors:{selectQueryEntry:S,selectConfig:Q},getRunningQueryThunk:k,mwApi:M})=>{let{removeQueryResult:x,unsubscribeQueryResult:D,cacheEntriesUpserted:h}=t.internalActions,R=(0,s.isAnyOf)(D.match,u.fulfilled,u.rejected,h.match);function b(y){let c=p.currentSubscriptions.get(y);return c?c.size>0:!1}let w={};function P(y){for(let c of y.values())c?.abort?.()}let f=(y,c)=>{let i=c.getState(),T=Q(i);if(R(y)){let E;if(h.match(y))E=y.payload.map(g=>g.queryDescription.queryCacheKey);else{let{queryCacheKey:g}=D.match(y)?y.payload:y.meta.arg;E=[g]}A(E,c,T)}if(t.util.resetApiState.match(y)){for(let[E,g]of Object.entries(w))g&&clearTimeout(g),delete w[E];P(p.runningQueries),P(p.runningMutations)}if(l.hasRehydrationInfo(y)){let{queries:E}=l.extractRehydrationInfo(y);A(Object.keys(E),c,T)}};function A(y,c,i){let T=c.getState();for(let E of y){let g=S(T,E);g?.endpointName&&B(E,g.endpointName,c,i)}}function B(y,c,i,T){let g=J(l,c)?.keepUnusedDataFor??T.keepUnusedDataFor;if(g===1/0)return;let d=Math.max(0,Math.min(g,cn));if(!b(y)){let a=w[y];a&&clearTimeout(a),w[y]=setTimeout(()=>{if(!b(y)){let n=S(i.getState(),y);n?.endpointName&&i.dispatch(k(n.endpointName,n.originalArgs))?.abort(),i.dispatch(x({queryCacheKey:y}))}delete w[y]},d*1e3)}}return f};var Nt=new Error("Promise never resolved before cacheEntryRemoved."),Ut=({api:e,reducerPath:t,context:u,queryThunk:l,mutationThunk:p,internalState:S,selectors:{selectQueryEntry:Q,selectApiState:k}})=>{let M=(0,s.isAsyncThunkAction)(l),x=(0,s.isAsyncThunkAction)(p),D=(0,s.isFulfilled)(l,p),h={},{removeQueryResult:R,removeMutationResult:b,cacheEntriesUpserted:w}=e.internalActions;function P(i,T,E){let g=h[i];g?.valueResolved&&(g.valueResolved({data:T,meta:E}),delete g.valueResolved)}function f(i){let T=h[i];T&&(delete h[i],T.cacheEntryRemoved())}function A(i){let{arg:T,requestId:E}=i.meta,{endpointName:g,originalArgs:d}=T;return[g,d,E]}let B=(i,T,E)=>{let g=y(i);function d(a,n,r,o){let m=Q(E,n),F=Q(T.getState(),n);!m&&F&&c(a,o,n,T,r)}if(l.pending.match(i)){let[a,n,r]=A(i);d(a,g,r,n)}else if(w.match(i))for(let{queryDescription:a,value:n}of i.payload){let{endpointName:r,originalArgs:o,queryCacheKey:m}=a;d(r,m,i.meta.requestId,o),P(m,n,{})}else if(p.pending.match(i)){if(T.getState()[t].mutations[g]){let[n,r,o]=A(i);c(n,r,g,T,o)}}else if(D(i))P(g,i.payload,i.meta.baseQueryMeta);else if(R.match(i)||b.match(i))f(g);else if(e.util.resetApiState.match(i))for(let a of Object.keys(h))f(a)};function y(i){return M(i)?i.meta.arg.queryCacheKey:x(i)?i.meta.arg.fixedCacheKey??i.meta.requestId:R.match(i)?i.payload.queryCacheKey:b.match(i)?le(i.payload):""}function c(i,T,E,g,d){let a=J(u,i),n=a?.onCacheEntryAdded;if(!n)return;let r={},o=new Promise(I=>{r.cacheEntryRemoved=I}),m=Promise.race([new Promise(I=>{r.valueResolved=I}),o.then(()=>{throw Nt})]);m.catch(()=>{}),h[E]=r;let F=e.endpoints[i].select(Re(a)?T:E),C=g.dispatch((I,O,_)=>_),N={...g,getCacheEntry:()=>F(g.getState()),requestId:d,extra:C,updateCachedData:Re(a)?I=>g.dispatch(e.util.updateQueryData(i,T,I)):void 0,cacheDataLoaded:m,cacheEntryRemoved:o},v=n(T,N);Promise.resolve(v).catch(I=>{if(I!==Nt)throw I})}return B};var qt=({api:e,context:{apiUid:t},reducerPath:u})=>(l,p)=>{e.util.resetApiState.match(l)&&p.dispatch(e.internalActions.middlewareRegistered(t)),typeof process<"u"};var Kt=({reducerPath:e,context:t,context:{endpointDefinitions:u},mutationThunk:l,queryThunk:p,api:S,assertTagType:Q,refetchQuery:k,internalState:M})=>{let{removeQueryResult:x}=S.internalActions,D=(0,s.isAnyOf)((0,s.isFulfilled)(l),(0,s.isRejectedWithValue)(l)),h=(0,s.isAnyOf)((0,s.isFulfilled)(p,l),(0,s.isRejected)(p,l)),R=[],b=0,w=(A,B)=>{(p.pending.match(A)||l.pending.match(A))&&b++,h(A)&&(b=Math.max(0,b-1)),D(A)?f(Ue(A,"invalidatesTags",u,Q),B):h(A)?f([],B):S.util.invalidateTags.match(A)&&f(be(A.payload,void 0,void 0,void 0,void 0,Q),B)};function P(){return b>0}function f(A,B){let y=B.getState(),c=y[e];if(R.push(...A),c.config.invalidationBehavior==="delayed"&&P())return;let i=R;if(R=[],i.length===0)return;let T=S.util.selectInvalidatedBy(y,i);t.batch(()=>{let E=Array.from(T.values());for(let{queryCacheKey:g}of E){let d=c.queries[g],a=ye(M.currentSubscriptions,g,Ee);d&&(a.size===0?B.dispatch(x({queryCacheKey:g})):d.status!==W&&B.dispatch(k(d)))}})}return w};var Lt=({reducerPath:e,queryThunk:t,api:u,refetchQuery:l,internalState:p})=>{let{currentPolls:S,currentSubscriptions:Q}=p,k=new Set,M=null,x=(f,A)=>{(u.internalActions.updateSubscriptionOptions.match(f)||u.internalActions.unsubscribeQueryResult.match(f))&&D(f.payload.queryCacheKey,A),(t.pending.match(f)||t.rejected.match(f)&&f.meta.condition)&&D(f.meta.arg.queryCacheKey,A),(t.fulfilled.match(f)||t.rejected.match(f)&&!f.meta.condition)&&h(f.meta.arg,A),u.util.resetApiState.match(f)&&(w(),M&&(clearTimeout(M),M=null),k.clear())};function D(f,A){k.add(f),M||(M=setTimeout(()=>{for(let B of k)R({queryCacheKey:B},A);k.clear(),M=null},0))}function h({queryCacheKey:f},A){let B=A.getState()[e],y=B.queries[f],c=Q.get(f);if(!y||y.status===W)return;let{lowestPollingInterval:i,skipPollingIfUnfocused:T}=P(c);if(!Number.isFinite(i))return;let E=S.get(f);E?.timeout&&(clearTimeout(E.timeout),E.timeout=void 0);let g=Date.now()+i;S.set(f,{nextPollTimestamp:g,pollingInterval:i,timeout:setTimeout(()=>{(B.config.focused||!T)&&A.dispatch(l(y)),h({queryCacheKey:f},A)},i)})}function R({queryCacheKey:f},A){let y=A.getState()[e].queries[f],c=Q.get(f);if(!y||y.status===W)return;let{lowestPollingInterval:i}=P(c);if(!Number.isFinite(i)){b(f);return}let T=S.get(f),E=Date.now()+i;(!T||E<T.nextPollTimestamp)&&h({queryCacheKey:f},A)}function b(f){let A=S.get(f);A?.timeout&&clearTimeout(A.timeout),S.delete(f)}function w(){for(let f of S.keys())b(f)}function P(f=new Map){let A=!1,B=Number.POSITIVE_INFINITY;for(let y of f.values())y.pollingInterval&&(B=Math.min(y.pollingInterval,B),A=y.skipPollingIfUnfocused||A);return{lowestPollingInterval:B,skipPollingIfUnfocused:A}}return x};var _t=({api:e,context:t,queryThunk:u,mutationThunk:l})=>{let p=(0,s.isPending)(u,l),S=(0,s.isRejected)(u,l),Q=(0,s.isFulfilled)(u,l),k={};return(x,D)=>{if(p(x)){let{requestId:h,arg:{endpointName:R,originalArgs:b}}=x.meta,w=J(t,R),P=w?.onQueryStarted;if(P){let f={},A=new Promise((i,T)=>{f.resolve=i,f.reject=T});A.catch(()=>{}),k[h]=f;let B=e.endpoints[R].select(Re(w)?b:h),y=D.dispatch((i,T,E)=>E),c={...D,getCacheEntry:()=>B(D.getState()),requestId:h,extra:y,updateCachedData:Re(w)?i=>D.dispatch(e.util.updateQueryData(R,b,i)):void 0,queryFulfilled:A};P(b,c)}}else if(Q(x)){let{requestId:h,baseQueryMeta:R}=x.meta;k[h]?.resolve({data:x.payload,meta:R}),delete k[h]}else if(S(x)){let{requestId:h,rejectedWithValue:R,baseQueryMeta:b}=x.meta;k[h]?.reject({error:x.payload??x.error,isUnhandledError:!R,meta:b}),delete k[h]}}};var Ht=({reducerPath:e,context:t,api:u,refetchQuery:l,internalState:p})=>{let{removeQueryResult:S}=u.internalActions,Q=(M,x)=>{ie.match(M)&&k(x,"refetchOnFocus"),ae.match(M)&&k(x,"refetchOnReconnect")};function k(M,x){let D=M.getState()[e],h=D.queries,R=p.currentSubscriptions;t.batch(()=>{for(let b of R.keys()){let w=h[b],P=R.get(b);if(!P||!w)continue;let f=[...P.values()];(f.some(B=>B[x]===!0)||f.every(B=>B[x]===void 0)&&D.config[x])&&(P.size===0?M.dispatch(S({queryCacheKey:b})):w.status!==W&&M.dispatch(l(w)))}})}return Q};function Vt(e){let{reducerPath:t,queryThunk:u,api:l,context:p,getInternalState:S}=e,{apiUid:Q}=p,k={invalidateTags:(0,s.createAction)(`${t}/invalidateTags`)},M=R=>R.type.startsWith(`${t}/`),x=[qt,Ot,Kt,Lt,Ut,_t];return{middleware:R=>{let b=!1,w=S(R.dispatch),P={...e,internalState:w,refetchQuery:h,isThisApiSliceAction:M,mwApi:R},f=x.map(y=>y(P)),A=vt(P),B=Ht(P);return y=>c=>{if(!(0,s.isAction)(c))return y(c);b||(b=!0,R.dispatch(l.internalActions.middlewareRegistered(Q)));let i={...R,next:y},T=R.getState(),[E,g]=A(c,i,T),d;if(E?d=y(c):d=g,R.getState()[t]&&(B(c,i,T),M(c)||p.hasRehydrationInfo(c)))for(let a of f)a(c,i,T);return d}},actions:k};function h(R){return e.api.endpoints[R.endpointName].initiate(R.originalArgs,{subscribe:!1,forceRefetch:!0})}}var Me=Symbol(),_e=({createSelector:e=s.createSelector}={})=>({name:Me,init(t,{baseQuery:u,tagTypes:l,reducerPath:p,serializeQueryArgs:S,keepUnusedDataFor:Q,refetchOnMountOrArgChange:k,refetchOnFocus:M,refetchOnReconnect:x,invalidationBehavior:D,onSchemaFailure:h,catchSchemaFailure:R,skipSchemaValidation:b},w){(0,H.enablePatches)();let P=q=>(typeof process<"u",q);Object.assign(t,{reducerPath:p,endpoints:{},internalActions:{onOnline:ae,onOffline:he,onFocus:ie,onFocusLost:Te},util:{}});let f=Bt({serializeQueryArgs:S,reducerPath:p,createSelector:e}),{selectInvalidatedBy:A,selectCachedArgsForQuery:B,buildQuerySelector:y,buildInfiniteQuerySelector:c,buildMutationSelector:i}=f;X(t.util,{selectInvalidatedBy:A,selectCachedArgsForQuery:B});let{queryThunk:T,infiniteQueryThunk:E,mutationThunk:g,patchQueryData:d,updateQueryData:a,upsertQueryData:n,prefetch:r,buildMatchThunkActions:o}=xt({baseQuery:u,reducerPath:p,context:w,api:t,serializeQueryArgs:S,assertTagType:P,selectors:f,onSchemaFailure:h,catchSchemaFailure:R,skipSchemaValidation:b}),{reducer:m,actions:F}=Et({context:w,queryThunk:T,infiniteQueryThunk:E,mutationThunk:g,serializeQueryArgs:S,reducerPath:p,assertTagType:P,config:{refetchOnFocus:M,refetchOnReconnect:x,refetchOnMountOrArgChange:k,keepUnusedDataFor:Q,reducerPath:p,invalidationBehavior:D}});X(t.util,{patchQueryData:d,updateQueryData:a,upsertQueryData:n,prefetch:r,resetApiState:F.resetApiState,upsertQueryEntries:F.cacheEntriesUpserted}),X(t.internalActions,F);let C=new WeakMap,N=q=>ye(C,q,()=>({currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map})),{buildInitiateQuery:v,buildInitiateInfiniteQuery:I,buildInitiateMutation:O,getRunningMutationThunk:_,getRunningMutationsThunk:$,getRunningQueriesThunk:G,getRunningQueryThunk:V}=Rt({queryThunk:T,mutationThunk:g,infiniteQueryThunk:E,api:t,serializeQueryArgs:S,context:w,getInternalState:N});X(t.util,{getRunningMutationThunk:_,getRunningMutationsThunk:$,getRunningQueryThunk:V,getRunningQueriesThunk:G});let{middleware:z,actions:j}=Vt({reducerPath:p,context:w,queryThunk:T,mutationThunk:g,infiniteQueryThunk:E,api:t,assertTagType:P,selectors:f,getRunningQueryThunk:V,getInternalState:N});return X(t.util,j),X(t,{reducer:m,middleware:z}),{name:Me,injectEndpoint(q,K){let L=t,U=L.endpoints[q]??={};pe(K)&&X(U,{name:q,select:y(q,K),initiate:v(q,K)},o(T,q)),Tt(K)&&X(U,{name:q,select:i(),initiate:O(q)},o(g,q)),de(K)&&X(U,{name:q,select:c(q,K),initiate:I(q,K)},o(T,q))}}}});var jt=Le(_e());0&&(module.exports={NamedSchemaError,QueryStatus,_NEVER,buildCreateApi,copyWithStructuralSharing,coreModule,coreModuleName,createApi,defaultSerializeQueryArgs,fakeBaseQuery,fetchBaseQuery,retry,setupListeners,skipToken});
-//# sourceMappingURL=rtk-query.production.min.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.production.min.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/cjs/rtk-query.production.min.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/query/index.ts","../../../src/query/core/apiState.ts","../../../src/query/core/rtkImports.ts","../../../src/query/utils/copyWithStructuralSharing.ts","../../../src/query/utils/filterMap.ts","../../../src/query/utils/isAbsoluteUrl.ts","../../../src/query/utils/isDocumentVisible.ts","../../../src/query/utils/isNotNullish.ts","../../../src/query/utils/isOnline.ts","../../../src/query/utils/joinUrls.ts","../../../src/query/utils/getOrInsert.ts","../../../src/query/utils/signals.ts","../../../src/query/fetchBaseQuery.ts","../../../src/query/HandledError.ts","../../../src/query/retry.ts","../../../src/query/core/setupListeners.ts","../../../src/query/endpointDefinitions.ts","../../../src/query/utils/immerImports.ts","../../../src/query/core/buildInitiate.ts","../../../src/tsHelpers.ts","../../../src/query/apiTypes.ts","../../../src/query/standardSchema.ts","../../../src/query/core/buildThunks.ts","../../../src/query/utils/getCurrent.ts","../../../src/query/core/buildSlice.ts","../../../src/query/core/buildSelectors.ts","../../../src/query/createApi.ts","../../../src/query/defaultSerializeQueryArgs.ts","../../../src/query/fakeBaseQuery.ts","../../../src/query/tsHelpers.ts","../../../src/query/core/buildMiddleware/batchActions.ts","../../../src/query/core/buildMiddleware/cacheCollection.ts","../../../src/query/core/buildMiddleware/cacheLifecycle.ts","../../../src/query/core/buildMiddleware/devMiddleware.ts","../../../src/query/core/buildMiddleware/invalidationByTags.ts","../../../src/query/core/buildMiddleware/polling.ts","../../../src/query/core/buildMiddleware/queryLifecycle.ts","../../../src/query/core/buildMiddleware/windowEventHandling.ts","../../../src/query/core/buildMiddleware/index.ts","../../../src/query/core/module.ts","../../../src/query/core/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport type { CombinedState, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './core/apiState';\nexport { QueryStatus } from './core/apiState';\nexport type { Api, ApiContext, Module } from './apiTypes';\nexport type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nexport type { BaseEndpointDefinition, EndpointDefinitions, EndpointDefinition, EndpointBuilder, QueryDefinition, MutationDefinition, MutationExtraOptions, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryExtraOptions, PageParamFrom, TagDescription, QueryArgFrom, QueryExtraOptions, ResultTypeFrom, DefinitionType, DefinitionsFromApi, OverrideResultType, ResultDescription, TagTypesFromApi, UpdateDefinitions, SchemaFailureHandler, SchemaFailureConverter, SchemaFailureInfo, SchemaType } from './endpointDefinitions';\nexport { fetchBaseQuery } from './fetchBaseQuery';\nexport type { FetchBaseQueryArgs, FetchBaseQueryError, FetchBaseQueryMeta, FetchArgs } from './fetchBaseQuery';\nexport { retry } from './retry';\nexport type { RetryOptions } from './retry';\nexport { setupListeners } from './core/setupListeners';\nexport { skipToken } from './core/buildSelectors';\nexport type { QueryResultSelectorResult, MutationResultSelectorResult, SkipToken } from './core/buildSelectors';\nexport type { QueryActionCreatorResult, MutationActionCreatorResult, StartQueryActionCreatorOptions } from './core/buildInitiate';\nexport type { CreateApi, CreateApiOptions } from './createApi';\nexport { buildCreateApi } from './createApi';\nexport { _NEVER, fakeBaseQuery } from './fakeBaseQuery';\nexport { copyWithStructuralSharing } from './utils/copyWithStructuralSharing';\nexport { createApi, coreModule, coreModuleName } from './core/index';\nexport type { InfiniteData, InfiniteQueryActionCreatorResult, InfiniteQueryConfigOptions, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './core/index';\nexport type { ApiEndpointMutation, ApiEndpointQuery, ApiEndpointInfiniteQuery, ApiModules, CoreModule, PrefetchOptions } from './core/module';\nexport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nexport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nexport type { Id as TSHelpersId, NoInfer as TSHelpersNoInfer, Override as TSHelpersOverride } from './tsHelpers';\nexport { NamedSchemaError } from './standardSchema';","import type { SerializedError } from '@reduxjs/toolkit';\nimport type { BaseQueryError } from '../baseQueryTypes';\nimport type { BaseEndpointDefinition, EndpointDefinitions, FullTagDescription, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFromAnyQuery, QueryDefinition, ResultTypeFrom } from '../endpointDefinitions';\nimport type { Id, WithRequiredProp } from '../tsHelpers';\nexport type QueryCacheKey = string & {\n  _type: 'queryCacheKey';\n};\nexport type QuerySubstateIdentifier = {\n  queryCacheKey: QueryCacheKey;\n};\nexport type MutationSubstateIdentifier = {\n  requestId: string;\n  fixedCacheKey?: string;\n} | {\n  requestId?: string;\n  fixedCacheKey: string;\n};\nexport type RefetchConfigOptions = {\n  refetchOnMountOrArgChange: boolean | number;\n  refetchOnReconnect: boolean;\n  refetchOnFocus: boolean;\n};\nexport type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {\n  /**\n   * The initial page parameter to use for the first page fetch.\n   */\n  initialPageParam: PageParam;\n  /**\n   * This function is required to automatically get the next cursor for infinite queries.\n   * The result will also be used to determine the value of `hasNextPage`.\n   */\n  getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * This function can be set to automatically get the previous cursor for infinite queries.\n   * The result will also be used to determine the value of `hasPreviousPage`.\n   */\n  getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * If specified, only keep this many pages in cache at once.\n   * If additional pages are fetched, older pages in the other\n   * direction will be dropped from the cache.\n   */\n  maxPages?: number;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type InfiniteData<DataType, PageParam> = {\n  pages: Array<DataType>;\n  pageParams: Array<PageParam>;\n};\n\n// NOTE: DO NOT import and use this for runtime comparisons internally,\n// except in the RTKQ React package. Use the string versions just below this.\n// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated\n// constants like \"initialized\":\n// https://github.com/evanw/esbuild/releases/tag/v0.14.7\n// We still have to use this in the React package since we don't publicly export\n// the string constants below.\n/**\n * Strings describing the query state at any given time.\n */\nexport enum QueryStatus {\n  uninitialized = 'uninitialized',\n  pending = 'pending',\n  fulfilled = 'fulfilled',\n  rejected = 'rejected',\n}\n\n// Use these string constants for runtime comparisons internally\nexport const STATUS_UNINITIALIZED = QueryStatus.uninitialized;\nexport const STATUS_PENDING = QueryStatus.pending;\nexport const STATUS_FULFILLED = QueryStatus.fulfilled;\nexport const STATUS_REJECTED = QueryStatus.rejected;\nexport type RequestStatusFlags = {\n  status: QueryStatus.uninitialized;\n  isUninitialized: true;\n  isLoading: false;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.pending;\n  isUninitialized: false;\n  isLoading: true;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.fulfilled;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: true;\n  isError: false;\n} | {\n  status: QueryStatus.rejected;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: false;\n  isError: true;\n};\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\n  return {\n    status,\n    isUninitialized: status === STATUS_UNINITIALIZED,\n    isLoading: status === STATUS_PENDING,\n    isSuccess: status === STATUS_FULFILLED,\n    isError: status === STATUS_REJECTED\n  } as any;\n}\n\n/**\n * @public\n */\nexport type SubscriptionOptions = {\n  /**\n   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\n   */\n  pollingInterval?: number;\n  /**\n   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.\n   *\n   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.\n   *\n   *  Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  skipPollingIfUnfocused?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n};\nexport type SubscribersInternal = Map<string, SubscriptionOptions>;\nexport type Subscribers = {\n  [requestId: string]: SubscriptionOptions;\n};\nexport type QueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never }[keyof Definitions];\nexport type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never }[keyof Definitions];\nexport type MutationKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never }[keyof Definitions];\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {\n  /**\n   * The argument originally passed into the hook or `initiate` action call\n   */\n  originalArgs: QueryArgFromAnyQuery<D>;\n  /**\n   * A unique ID associated with the request\n   */\n  requestId: string;\n  /**\n   * The received data from the query\n   */\n  data?: DataType;\n  /**\n   * The received error if applicable\n   */\n  error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  /**\n   * The name of the endpoint associated with the query\n   */\n  endpointName: string;\n  /**\n   * Time that the latest query started\n   */\n  startedTimeStamp: number;\n  /**\n   * Time that the latest query was fulfilled\n   */\n  fulfilledTimeStamp?: number;\n};\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {\n  error: undefined;\n}) | ({\n  status: QueryStatus.pending;\n} & BaseQuerySubState<D, DataType>) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {\n  status: QueryStatus.uninitialized;\n  originalArgs?: undefined;\n  data?: undefined;\n  error?: undefined;\n  requestId?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n}>;\nexport type InfiniteQueryDirection = 'forward' | 'backward';\nexport type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {\n  direction?: InfiniteQueryDirection;\n} : never;\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {\n  requestId: string;\n  data?: ResultTypeFrom<D>;\n  error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  endpointName: string;\n  startedTimeStamp: number;\n  fulfilledTimeStamp?: number;\n};\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {\n  error: undefined;\n}) | (({\n  status: QueryStatus.pending;\n} & BaseMutationSubState<D>) & {\n  data?: undefined;\n}) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {\n  requestId?: undefined;\n  status: QueryStatus.uninitialized;\n  data?: undefined;\n  error?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n};\nexport type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {\n  queries: QueryState<D>;\n  mutations: MutationState<D>;\n  provided: InvalidationState<E>;\n  subscriptions: SubscriptionState;\n  config: ConfigState<ReducerPath>;\n};\nexport type InvalidationState<TagTypes extends string> = {\n  tags: { [_ in TagTypes]: {\n    [id: string]: Array<QueryCacheKey>;\n    [id: number]: Array<QueryCacheKey>;\n  } };\n  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;\n};\nexport type QueryState<D extends EndpointDefinitions> = {\n  [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;\n};\nexport type SubscriptionInternalState = Map<string, SubscribersInternal>;\nexport type SubscriptionState = {\n  [queryCacheKey: string]: Subscribers | undefined;\n};\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\n  reducerPath: ReducerPath;\n  online: boolean;\n  focused: boolean;\n  middlewareRegistered: boolean | 'conflict';\n} & ModifiableConfigState;\nexport type ModifiableConfigState = {\n  keepUnusedDataFor: number;\n  invalidationBehavior: 'delayed' | 'immediately';\n} & RefetchConfigOptions;\nexport type MutationState<D extends EndpointDefinitions> = {\n  [requestId: string]: MutationSubState<D[string]> | undefined;\n};\nexport type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> };","// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.\n// ESBuild does not de-duplicate imports, so this file is used to ensure that each method\n// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.\n\nexport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from '@reduxjs/toolkit';","import { isPlainObject as _iPO } from '../core/rtkImports';\n\n// remove type guard\nconst isPlainObject: (_: any) => boolean = _iPO;\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\n  if (oldObj === newObj || !(isPlainObject(oldObj) && isPlainObject(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n    return newObj;\n  }\n  const newKeys = Object.keys(newObj);\n  const oldKeys = Object.keys(oldObj);\n  let isSameObject = newKeys.length === oldKeys.length;\n  const mergeObj: any = Array.isArray(newObj) ? [] : {};\n  for (const key of newKeys) {\n    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n  }\n  return isSameObject ? oldObj : mergeObj;\n}","// Preserve type guard predicate behavior when passing to mapper\nexport function filterMap<T, U, S extends T = T>(array: readonly T[], predicate: (item: T, index: number) => item is S, mapper: (item: S, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[] {\n  return array.reduce<(U | U[])[]>((acc, item, i) => {\n    if (predicate(item as any, i)) {\n      acc.push(mapper(item as any, i));\n    }\n    return acc;\n  }, []).flat() as U[];\n}","/**\n * If either :// or // is present consider it to be an absolute url\n *\n * @param url string\n */\n\nexport function isAbsoluteUrl(url: string) {\n  return new RegExp(`(^|:)//`).test(url);\n}","/**\n * Assumes true for a non-browser env, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\n */\nexport function isDocumentVisible(): boolean {\n  // `document` may not exist in non-browser envs (like RN)\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  // Match true for visible, prerender, undefined\n  return document.visibilityState !== 'hidden';\n}","export function isNotNullish<T>(v: T | null | undefined): v is T {\n  return v != null;\n}\nexport function filterNullishValues<T>(map?: Map<any, T>) {\n  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[];\n}","/**\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\n */\nexport function isOnline() {\n  // We set the default config value in the store, so we'd need to check for this in a SSR env\n  return typeof navigator === 'undefined' ? true : navigator.onLine === undefined ? true : navigator.onLine;\n}","import { isAbsoluteUrl } from './isAbsoluteUrl';\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '');\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '');\nexport function joinUrls(base: string | undefined, url: string | undefined): string {\n  if (!base) {\n    return url!;\n  }\n  if (!url) {\n    return base;\n  }\n  if (isAbsoluteUrl(url)) {\n    return url;\n  }\n  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : '';\n  base = withoutTrailingSlash(base);\n  url = withoutLeadingSlash(url);\n  return `${base}${delimiter}${url}`;\n}","// Duplicate some of the utils in `/src/utils` to ensure\n// we don't end up dragging in larger chunks of the RTK core\n// into the RTKQ bundle\n\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport const createNewMap = () => new Map();","// AbortSignal.timeout() is currently baseline 2024\nexport const timeoutSignal = (milliseconds: number) => {\n  const abortController = new AbortController();\n  setTimeout(() => {\n    const message = 'signal timed out';\n    const name = 'TimeoutError';\n    abortController.abort(\n    // some environments (React Native, Node) don't have DOMException\n    typeof DOMException !== 'undefined' ? new DOMException(message, name) : Object.assign(new Error(message), {\n      name\n    }));\n  }, milliseconds);\n  return abortController.signal;\n};\n\n// AbortSignal.any() is currently baseline 2024\nexport const anySignal = (...signals: AbortSignal[]) => {\n  // if any are already aborted, return an already aborted signal\n  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);\n\n  // otherwise, create a new signal that aborts when any of the given signals abort\n  const abortController = new AbortController();\n  for (const signal of signals) {\n    signal.addEventListener('abort', () => abortController.abort(signal.reason), {\n      signal: abortController.signal,\n      once: true\n    });\n  }\n  return abortController.signal;\n};","import { joinUrls } from './utils';\nimport { isPlainObject } from './core/rtkImports';\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes';\nimport type { MaybePromise, Override } from './tsHelpers';\nimport { anySignal, timeoutSignal } from './utils/signals';\nexport type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);\ntype CustomRequestInit = Override<RequestInit, {\n  headers?: Headers | string[][] | Record<string, string | undefined> | undefined;\n}>;\nexport interface FetchArgs extends CustomRequestInit {\n  url: string;\n  params?: Record<string, any>;\n  body?: any;\n  responseHandler?: ResponseHandler;\n  validateStatus?: (response: Response, body: any) => boolean;\n  /**\n   * A number in milliseconds that represents that maximum time a request can take before timing out.\n   */\n  timeout?: number;\n}\n\n/**\n * A mini-wrapper that passes arguments straight through to\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\n */\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args);\nconst defaultValidateStatus = (response: Response) => response.status >= 200 && response.status <= 299;\nconst defaultIsJsonContentType = (headers: Headers) => /*applicat*//ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '');\nexport type FetchBaseQueryError = {\n  /**\n   * * `number`:\n   *   HTTP status code\n   */\n  status: number;\n  data: unknown;\n} | {\n  /**\n   * * `\"FETCH_ERROR\"`:\n   *   An error that occurred during execution of `fetch` or the `fetchFn` callback option\n   **/\n  status: 'FETCH_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"PARSING_ERROR\"`:\n   *   An error happened during parsing.\n   *   Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\n   *   or an error occurred while executing a custom `responseHandler`.\n   **/\n  status: 'PARSING_ERROR';\n  originalStatus: number;\n  data: string;\n  error: string;\n} | {\n  /**\n   * * `\"TIMEOUT_ERROR\"`:\n   *   Request timed out\n   **/\n  status: 'TIMEOUT_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"CUSTOM_ERROR\"`:\n   *   A custom error type that you can return from your `queryFn` where another error might not make sense.\n   **/\n  status: 'CUSTOM_ERROR';\n  data?: unknown;\n  error: string;\n};\nfunction stripUndefined(obj: any) {\n  if (!isPlainObject(obj)) {\n    return obj;\n  }\n  const copy: Record<string, any> = {\n    ...obj\n  };\n  for (const [k, v] of Object.entries(copy)) {\n    if (v === undefined) delete copy[k];\n  }\n  return copy;\n}\n\n// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\nconst isJsonifiable = (body: any) => typeof body === 'object' && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === 'function');\nexport type FetchBaseQueryArgs = {\n  baseUrl?: string;\n  prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {\n    arg: string | FetchArgs;\n    extraOptions: unknown;\n  }) => MaybePromise<Headers | void>;\n  fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;\n  paramsSerializer?: (params: Record<string, any>) => string;\n  /**\n   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\n   * in a predicate function for your given api to get the same automatic stringifying behavior\n   * @example\n   * ```ts\n   * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\n   * ```\n   */\n  isJsonContentType?: (headers: Headers) => boolean;\n  /**\n   * Defaults to `application/json`;\n   */\n  jsonContentType?: string;\n\n  /**\n   * Custom replacer function used when calling `JSON.stringify()`;\n   */\n  jsonReplacer?: (this: any, key: string, value: any) => any;\n} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;\nexport type FetchBaseQueryMeta = {\n  request: Request;\n  response?: Response;\n};\n\n/**\n * This is a very small wrapper around fetch that aims to simplify requests.\n *\n * @example\n * ```ts\n * const baseQuery = fetchBaseQuery({\n *   baseUrl: 'https://api.your-really-great-app.com/v1/',\n *   prepareHeaders: (headers, { getState }) => {\n *     const token = (getState() as RootState).auth.token;\n *     // If we have a token set in state, let's assume that we should be passing it.\n *     if (token) {\n *       headers.set('authorization', `Bearer ${token}`);\n *     }\n *     return headers;\n *   },\n * })\n * ```\n *\n * @param {string} baseUrl\n * The base URL for an API service.\n * Typically in the format of https://example.com/\n *\n * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\n * An optional function that can be used to inject headers on requests.\n * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.\n * Useful for setting authentication or headers that need to be set conditionally.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\n *\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\n * An optional function that can be used to stringify querystring parameters.\n *\n * @param {(headers: Headers) => boolean} isJsonContentType\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\n *\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\n *\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\n *\n * @param {number} timeout\n * A number in milliseconds that represents the maximum time a request can take before timing out.\n */\n\nexport function fetchBaseQuery({\n  baseUrl,\n  prepareHeaders = x => x,\n  fetchFn = defaultFetchFn,\n  paramsSerializer,\n  isJsonContentType = defaultIsJsonContentType,\n  jsonContentType = 'application/json',\n  jsonReplacer,\n  timeout: defaultTimeout,\n  responseHandler: globalResponseHandler,\n  validateStatus: globalValidateStatus,\n  ...baseFetchOptions\n}: FetchBaseQueryArgs = {}): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta> {\n  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\n    console.warn('Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.');\n  }\n  return async (arg, api, extraOptions) => {\n    const {\n      getState,\n      extra,\n      endpoint,\n      forced,\n      type\n    } = api;\n    let meta: FetchBaseQueryMeta | undefined;\n    let {\n      url,\n      headers = new Headers(baseFetchOptions.headers),\n      params = undefined,\n      responseHandler = globalResponseHandler ?? 'json' as const,\n      validateStatus = globalValidateStatus ?? defaultValidateStatus,\n      timeout = defaultTimeout,\n      ...rest\n    } = typeof arg == 'string' ? {\n      url: arg\n    } : arg;\n    let config: RequestInit = {\n      ...baseFetchOptions,\n      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,\n      ...rest\n    };\n    headers = new Headers(stripUndefined(headers));\n    config.headers = (await prepareHeaders(headers, {\n      getState,\n      arg,\n      extra,\n      endpoint,\n      forced,\n      type,\n      extraOptions\n    })) || headers;\n    const bodyIsJsonifiable = isJsonifiable(config.body);\n\n    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically\n    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)\n    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== 'string') {\n      config.headers.delete('content-type');\n    }\n    if (!config.headers.has('content-type') && bodyIsJsonifiable) {\n      config.headers.set('content-type', jsonContentType);\n    }\n    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {\n      config.body = JSON.stringify(config.body, jsonReplacer);\n    }\n\n    // Set Accept header based on responseHandler if not already set\n    if (!config.headers.has('accept')) {\n      if (responseHandler === 'json') {\n        config.headers.set('accept', 'application/json');\n      } else if (responseHandler === 'text') {\n        config.headers.set('accept', 'text/plain, text/html, */*');\n      }\n      // For 'content-type' responseHandler, don't set Accept (let server decide)\n    }\n    if (params) {\n      const divider = ~url.indexOf('?') ? '&' : '?';\n      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n      url += divider + query;\n    }\n    url = joinUrls(baseUrl, url);\n    const request = new Request(url, config);\n    const requestClone = new Request(url, config);\n    meta = {\n      request: requestClone\n    };\n    let response;\n    try {\n      response = await fetchFn(request);\n    } catch (e) {\n      return {\n        error: {\n          status: (e instanceof Error || typeof DOMException !== 'undefined' && e instanceof DOMException) && e.name === 'TimeoutError' ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\n          error: String(e)\n        },\n        meta\n      };\n    }\n    const responseClone = response.clone();\n    meta.response = responseClone;\n    let resultData: any;\n    let responseText: string = '';\n    try {\n      let handleResponseError;\n      await Promise.all([handleResponse(response, responseHandler).then(r => resultData = r, e => handleResponseError = e),\n      // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n      // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n      responseClone.text().then(r => responseText = r, () => {})]);\n      if (handleResponseError) throw handleResponseError;\n    } catch (e) {\n      return {\n        error: {\n          status: 'PARSING_ERROR',\n          originalStatus: response.status,\n          data: responseText,\n          error: String(e)\n        },\n        meta\n      };\n    }\n    return validateStatus(response, resultData) ? {\n      data: resultData,\n      meta\n    } : {\n      error: {\n        status: response.status,\n        data: resultData\n      },\n      meta\n    };\n  };\n  async function handleResponse(response: Response, responseHandler: ResponseHandler) {\n    if (typeof responseHandler === 'function') {\n      return responseHandler(response);\n    }\n    if (responseHandler === 'content-type') {\n      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text';\n    }\n    if (responseHandler === 'json') {\n      const text = await response.text();\n      return text.length ? JSON.parse(text) : null;\n    }\n    return response.text();\n  }\n}","export class HandledError {\n  constructor(public readonly value: any, public readonly meta: any = undefined) {}\n}","import type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta } from './baseQueryTypes';\nimport type { FetchBaseQueryError } from './fetchBaseQuery';\nimport { HandledError } from './HandledError';\n\n/**\n * Exponential backoff based on the attempt number.\n *\n * @remarks\n * 1. 600ms * random(0.4, 1.4)\n * 2. 1200ms * random(0.4, 1.4)\n * 3. 2400ms * random(0.4, 1.4)\n * 4. 4800ms * random(0.4, 1.4)\n * 5. 9600ms * random(0.4, 1.4)\n *\n * @param attempt - Current attempt\n * @param maxRetries - Maximum number of retries\n */\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5, signal?: AbortSignal) {\n  const attempts = Math.min(attempt, maxRetries);\n  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)); // Force a positive int in the case we make this an option\n\n  await new Promise<void>((resolve, reject) => {\n    const timeoutId = setTimeout(() => resolve(), timeout);\n\n    // If signal is provided and gets aborted, clear timeout and reject\n    if (signal) {\n      const abortHandler = () => {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      };\n\n      // Check if already aborted\n      if (signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      } else {\n        signal.addEventListener('abort', abortHandler, {\n          once: true\n        });\n      }\n    }\n  });\n}\ntype RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {\n  attempt: number;\n  baseQueryApi: BaseQueryApi;\n  extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;\n}) => boolean;\nexport type RetryOptions = {\n  /**\n   * Function used to determine delay between retries\n   */\n  backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;\n} & ({\n  /**\n   * How many times the query will be retried (default: 5)\n   */\n  maxRetries?: number;\n  retryCondition?: undefined;\n} | {\n  /**\n   * Callback to determine if a retry should be attempted.\n   * Return `true` for another retry and `false` to quit trying prematurely.\n   */\n  retryCondition?: RetryConditionFunction;\n  maxRetries?: undefined;\n});\nfunction fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never {\n  throw Object.assign(new HandledError({\n    error,\n    meta\n  }), {\n    throwImmediately: true\n  });\n}\n\n/**\n * Checks if the abort signal is aborted and fails immediately if so.\n * Used to exit retry loops cleanly when a request is aborted.\n */\nfunction failIfAborted(signal: AbortSignal): void {\n  if (signal.aborted) {\n    fail({\n      status: 'CUSTOM_ERROR',\n      error: 'Aborted'\n    });\n  }\n}\nconst EMPTY_OPTIONS = {};\nconst retryWithBackoff: BaseQueryEnhancer<unknown, RetryOptions, RetryOptions | void> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n  // We need to figure out `maxRetries` before we define `defaultRetryCondition.\n  // This is probably goofy, but ought to work.\n  // Put our defaults in one array, filter out undefineds, grab the last value.\n  const possibleMaxRetries: number[] = [5, (defaultOptions as any || EMPTY_OPTIONS).maxRetries, (extraOptions as any || EMPTY_OPTIONS).maxRetries].filter(x => x !== undefined);\n  const [maxRetries] = possibleMaxRetries.slice(-1);\n  const defaultRetryCondition: RetryConditionFunction = (_, __, {\n    attempt\n  }) => attempt <= maxRetries;\n  const options: {\n    maxRetries: number;\n    backoff: typeof defaultBackoff;\n    retryCondition: typeof defaultRetryCondition;\n  } = {\n    maxRetries,\n    backoff: defaultBackoff,\n    retryCondition: defaultRetryCondition,\n    ...defaultOptions,\n    ...extraOptions\n  };\n  let retry = 0;\n  while (true) {\n    // Check if aborted before each attempt\n    failIfAborted(api.signal);\n    try {\n      const result = await baseQuery(args, api, extraOptions);\n      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\n      if (result.error) {\n        throw new HandledError(result);\n      }\n      return result;\n    } catch (e: any) {\n      retry++;\n      if (e.throwImmediately) {\n        if (e instanceof HandledError) {\n          return e.value;\n        }\n\n        // We don't know what this is, so we have to rethrow it\n        throw e;\n      }\n      if (e instanceof HandledError) {\n        if (!options.retryCondition(e.value.error as FetchBaseQueryError, args, {\n          attempt: retry,\n          baseQueryApi: api,\n          extraOptions\n        })) {\n          return e.value; // Max retries for expected error\n        }\n      } else {\n        // For unexpected errors, respect maxRetries\n        if (retry > options.maxRetries) {\n          // Return the error as a proper error response instead of throwing\n          return {\n            error: e\n          };\n        }\n      }\n\n      // Check if aborted before backoff\n      failIfAborted(api.signal);\n      try {\n        await options.backoff(retry, options.maxRetries, api.signal);\n      } catch (backoffError) {\n        // If backoff was aborted, exit the retry loop\n        failIfAborted(api.signal);\n        // Otherwise, rethrow the backoff error\n        throw backoffError;\n      }\n    }\n  }\n};\n\n/**\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\n *\n * @example\n *\n * ```ts\n * // codeblock-meta title=\"Retry every request 5 times by default\"\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\n * export const api = createApi({\n *   baseQuery: staggeredBaseQuery,\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => ({ url: 'posts' }),\n *     }),\n *     getPost: build.query<PostsResponse, string>({\n *       query: (id) => ({ url: `post/${id}` }),\n *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\n *     }),\n *   }),\n * });\n *\n * export const { useGetPostsQuery, useGetPostQuery } = api;\n * ```\n */\nexport const retry = /* @__PURE__ */Object.assign(retryWithBackoff, {\n  fail\n});","import type { ThunkDispatch, ActionCreatorWithoutPayload // Workaround for API-Extractor\n} from '@reduxjs/toolkit';\nimport { createAction } from './rtkImports';\nexport const INTERNAL_PREFIX = '__rtkq/';\nconst ONLINE = 'online';\nconst OFFLINE = 'offline';\nconst FOCUS = 'focus';\nconst FOCUSED = 'focused';\nconst VISIBILITYCHANGE = 'visibilitychange';\nexport const onFocus = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${FOCUSED}`);\nexport const onFocusLost = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);\nexport const onOnline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${ONLINE}`);\nexport const onOffline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${OFFLINE}`);\nconst actions = {\n  onFocus,\n  onFocusLost,\n  onOnline,\n  onOffline\n};\nlet initialized = false;\n\n/**\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\n * It requires the dispatch method from your store.\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\n * but you have the option of providing a callback for more granular control.\n *\n * @example\n * ```ts\n * setupListeners(store.dispatch)\n * ```\n *\n * @param dispatch - The dispatch method from your store\n * @param customHandler - An optional callback for more granular control over listener behavior\n * @returns Return value of the handler.\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\n */\nexport function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n}) => () => void) {\n  function defaultHandler() {\n    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map(action => () => dispatch(action()));\n    const handleVisibilityChange = () => {\n      if (window.document.visibilityState === 'visible') {\n        handleFocus();\n      } else {\n        handleFocusLost();\n      }\n    };\n    let unsubscribe = () => {\n      initialized = false;\n    };\n    if (!initialized) {\n      if (typeof window !== 'undefined' && window.addEventListener) {\n        const handlers = {\n          [FOCUS]: handleFocus,\n          [VISIBILITYCHANGE]: handleVisibilityChange,\n          [ONLINE]: handleOnline,\n          [OFFLINE]: handleOffline\n        };\n        function updateListeners(add: boolean) {\n          Object.entries(handlers).forEach(([event, handler]) => {\n            if (add) {\n              window.addEventListener(event, handler, false);\n            } else {\n              window.removeEventListener(event, handler);\n            }\n          });\n        }\n        // Handle focus events\n        updateListeners(true);\n        initialized = true;\n        unsubscribe = () => {\n          updateListeners(false);\n          initialized = false;\n        };\n      }\n    }\n    return unsubscribe;\n  }\n  return customHandler ? customHandler(dispatch, actions) : defaultHandler();\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from 'immer';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AsyncThunkAction, SafePromise, SerializedError, ThunkAction, UnknownAction } from '@reduxjs/toolkit';\nimport type { Dispatch } from 'redux';\nimport { asSafePromise } from '../../tsHelpers';\nimport { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes';\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport { ENDPOINT_QUERY, isQueryDefinition, type EndpointDefinition, type EndpointDefinitions, type InfiniteQueryArgFrom, type InfiniteQueryDefinition, type MutationDefinition, type PageParamFrom, type QueryArgFrom, type QueryDefinition, type ResultTypeFrom } from '../endpointDefinitions';\nimport { filterNullishValues } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQueryDirection, SubscriptionOptions } from './apiState';\nimport type { InfiniteQueryResultSelectorResult, QueryResultSelectorResult } from './buildSelectors';\nimport type { InfiniteQueryThunk, InfiniteQueryThunkArg, MutationThunk, QueryThunk, QueryThunkArg, ThunkApiMetaConfig } from './buildThunks';\nimport type { ApiEndpointQuery } from './module';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nexport type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  initiate: StartQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  initiate: StartInfiniteQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  initiate: StartMutationActionCreator<Definition>;\n};\nexport const forceQueryFnSymbol = Symbol('forceQueryFn');\nexport const isUpsertQuery = (arg: QueryThunkArg) => typeof arg[forceQueryFnSymbol] === 'function';\nexport type StartQueryActionCreatorOptions = {\n  subscribe?: boolean;\n  forceRefetch?: boolean | number;\n  subscriptionOptions?: SubscriptionOptions;\n  [forceQueryFnSymbol]?: () => QueryReturnValue;\n};\ntype RefetchOptions = {\n  refetchCachedPages?: boolean;\n};\nexport type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {\n  direction?: InfiniteQueryDirection;\n  param?: unknown;\n} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;\ntype AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (arg: any, options?: StartQueryActionCreatorOptions) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>;\ntype StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;\nexport type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;\ntype QueryActionCreatorFields = {\n  requestId: string;\n  subscriptionOptions: SubscriptionOptions | undefined;\n  abort(): void;\n  unsubscribe(): void;\n  updateSubscriptionOptions(options: SubscriptionOptions): void;\n  queryCacheKey: string;\n};\ntype AnyActionCreatorResult = SafePromise<any> & QueryActionCreatorFields & {\n  arg: any;\n  unwrap(): Promise<any>;\n  refetch(options?: RefetchOptions): AnyActionCreatorResult;\n};\nexport type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: QueryArgFrom<D>;\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  refetch(): QueryActionCreatorResult<D>;\n};\nexport type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: InfiniteQueryArgFrom<D>;\n  unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;\n  refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;\n};\ntype StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {\n  /**\n   * If this mutation should be tracked in the store.\n   * If you just want to manually trigger this mutation using `dispatch` and don't care about the\n   * result, state & potential errors being held in store, you can set this to false.\n   * (defaults to `true`)\n   */\n  track?: boolean;\n  fixedCacheKey?: string;\n}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;\nexport type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{\n  data: ResultTypeFrom<D>;\n  error?: undefined;\n} | {\n  data?: undefined;\n  error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;\n}> & {\n  /** @internal */\n  arg: {\n    /**\n     * The name of the given endpoint for the mutation\n     */\n    endpointName: string;\n    /**\n     * The original arguments supplied to the mutation call\n     */\n    originalArgs: QueryArgFrom<D>;\n    /**\n     * Whether the mutation is being tracked in the store.\n     */\n    track?: boolean;\n    fixedCacheKey?: string;\n  };\n  /**\n   * A unique string generated for the request sequence\n   */\n  requestId: string;\n\n  /**\n   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\n   * that was fired off from reaching the server, but only to assist in handling the response.\n   *\n   * Calling `abort()` prior to the promise resolving will force it to reach the error state with\n   * the serialized error:\n   * `{ name: 'AbortError', message: 'Aborted' }`\n   *\n   * @example\n   * ```ts\n   * const [updateUser] = useUpdateUserMutation();\n   *\n   * useEffect(() => {\n   *   const promise = updateUser(id);\n   *   promise\n   *     .unwrap()\n   *     .catch((err) => {\n   *       if (err.name === 'AbortError') return;\n   *       // else handle the unexpected error\n   *     })\n   *\n   *   return () => {\n   *     promise.abort();\n   *   }\n   * }, [id, updateUser])\n   * ```\n   */\n  abort(): void;\n  /**\n   * Unwraps a mutation call to provide the raw response/error.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap\"\n   * addPost({ id: 1, name: 'Example' })\n   *   .unwrap()\n   *   .then((payload) => console.log('fulfilled', payload))\n   *   .catch((error) => console.error('rejected', error));\n   * ```\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  /**\n   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\n   The value returned by the hook will reset to `isUninitialized` afterwards.\n   */\n  reset(): void;\n};\nexport function buildInitiate({\n  serializeQueryArgs,\n  queryThunk,\n  infiniteQueryThunk,\n  mutationThunk,\n  api,\n  context,\n  getInternalState\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  api: Api<any, EndpointDefinitions, any, any>;\n  context: ApiContext<EndpointDefinitions>;\n  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState;\n}) {\n  const getRunningQueries = (dispatch: Dispatch) => getInternalState(dispatch)?.runningQueries;\n  const getRunningMutations = (dispatch: Dispatch) => getInternalState(dispatch)?.runningMutations;\n  const {\n    unsubscribeQueryResult,\n    removeMutationResult,\n    updateSubscriptionOptions\n  } = api.internalActions;\n  return {\n    buildInitiateQuery,\n    buildInitiateInfiniteQuery,\n    buildInitiateMutation,\n    getRunningQueryThunk,\n    getRunningMutationThunk,\n    getRunningQueriesThunk,\n    getRunningMutationsThunk\n  };\n  function getRunningQueryThunk(endpointName: string, queryArgs: any) {\n    return (dispatch: Dispatch) => {\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      return getRunningQueries(dispatch)?.get(queryCacheKey) as QueryActionCreatorResult<never> | InfiniteQueryActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningMutationThunk(\n  /**\n   * this is only here to allow TS to infer the result type by input value\n   * we could use it to validate the result, but it's probably not necessary\n   */\n  _endpointName: string, fixedCacheKeyOrRequestId: string) {\n    return (dispatch: Dispatch) => {\n      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as MutationActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningQueriesThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningQueries(dispatch));\n  }\n  function getRunningMutationsThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningMutations(dispatch));\n  }\n  function middlewareWarning(dispatch: Dispatch) {\n    if (process.env.NODE_ENV !== 'production') {\n      if ((middlewareWarning as any).triggered) return;\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      (middlewareWarning as any).triggered = true;\n\n      // The RTKQ middleware should return the internal state object,\n      // but it should _not_ be the action object.\n      if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n        // Otherwise, must not have been added\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n      }\n    }\n  }\n  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any>) {\n    const queryAction: AnyQueryActionCreator<any> = (arg, {\n      subscribe = true,\n      forceRefetch,\n      subscriptionOptions,\n      [forceQueryFnSymbol]: forceQueryFn,\n      ...rest\n    } = {}) => (dispatch, getState) => {\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs: arg,\n        endpointDefinition,\n        endpointName\n      });\n      let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>;\n      const commonThunkArgs = {\n        ...rest,\n        type: ENDPOINT_QUERY as 'query',\n        subscribe,\n        forceRefetch: forceRefetch,\n        subscriptionOptions,\n        endpointName,\n        originalArgs: arg,\n        queryCacheKey,\n        [forceQueryFnSymbol]: forceQueryFn\n      };\n      if (isQueryDefinition(endpointDefinition)) {\n        thunk = queryThunk(commonThunkArgs);\n      } else {\n        const {\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        } = rest as Pick<InfiniteQueryThunkArg<any>, 'direction' | 'initialPageParam' | 'refetchCachedPages'>;\n        thunk = infiniteQueryThunk({\n          ...(commonThunkArgs as InfiniteQueryThunkArg<any>),\n          // Supply these even if undefined. This helps with a field existence\n          // check over in `buildSlice.ts`\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        });\n      }\n      const selector = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg);\n      const thunkResult = dispatch(thunk);\n      const stateAfter = selector(getState());\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort\n      } = thunkResult;\n      const skippedSynchronously = stateAfter.requestId !== requestId;\n      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);\n      const selectFromState = () => selector(getState());\n      const statePromise: AnyActionCreatorResult = Object.assign((forceQueryFn ?\n      // a query has been forced (upsertQueryData)\n      // -> we want to resolve it once data has been written with the data that will be written\n      thunkResult.then(selectFromState) : skippedSynchronously && !runningQuery ?\n      // a query has been skipped due to a condition and we do not have any currently running query\n      // -> we want to resolve it immediately with the current data\n      Promise.resolve(stateAfter) :\n      // query just started or one is already in flight\n      // -> wait for the running query, then resolve with data from after that\n      Promise.all([runningQuery, thunkResult]).then(selectFromState)) as SafePromise<any>, {\n        arg,\n        requestId,\n        subscriptionOptions,\n        queryCacheKey,\n        abort,\n        async unwrap() {\n          const result = await statePromise;\n          if (result.isError) {\n            throw result.error;\n          }\n          return result.data;\n        },\n        refetch: (options?: RefetchOptions) => dispatch(queryAction(arg, {\n          subscribe: false,\n          forceRefetch: true,\n          ...options\n        })),\n        unsubscribe() {\n          if (subscribe) dispatch(unsubscribeQueryResult({\n            queryCacheKey,\n            requestId\n          }));\n        },\n        updateSubscriptionOptions(options: SubscriptionOptions) {\n          statePromise.subscriptionOptions = options;\n          dispatch(updateSubscriptionOptions({\n            endpointName,\n            requestId,\n            queryCacheKey,\n            options\n          }));\n        }\n      });\n      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n        const runningQueries = getRunningQueries(dispatch)!;\n        runningQueries.set(queryCacheKey, statePromise);\n        statePromise.then(() => {\n          runningQueries.delete(queryCacheKey);\n        });\n      }\n      return statePromise;\n    };\n    return queryAction;\n  }\n  function buildInitiateQuery(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return queryAction;\n  }\n  function buildInitiateInfiniteQuery(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return infiniteQueryAction;\n  }\n  function buildInitiateMutation(endpointName: string): StartMutationActionCreator<any> {\n    return (arg, {\n      track = true,\n      fixedCacheKey\n    } = {}) => (dispatch, getState) => {\n      const thunk = mutationThunk({\n        type: 'mutation',\n        endpointName,\n        originalArgs: arg,\n        track,\n        fixedCacheKey\n      });\n      const thunkResult = dispatch(thunk);\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort,\n        unwrap\n      } = thunkResult;\n      const returnValuePromise = asSafePromise(thunkResult.unwrap().then(data => ({\n        data\n      })), error => ({\n        error\n      }));\n      const reset = () => {\n        dispatch(removeMutationResult({\n          requestId,\n          fixedCacheKey\n        }));\n      };\n      const ret = Object.assign(returnValuePromise, {\n        arg: thunkResult.arg,\n        requestId,\n        abort,\n        unwrap,\n        reset\n      });\n      const runningMutations = getRunningMutations(dispatch)!;\n      runningMutations.set(requestId, ret);\n      ret.then(() => {\n        runningMutations.delete(requestId);\n      });\n      if (fixedCacheKey) {\n        runningMutations.set(fixedCacheKey, ret);\n        ret.then(() => {\n          if (runningMutations.get(fixedCacheKey) === ret) {\n            runningMutations.delete(fixedCacheKey);\n          }\n        });\n      }\n      return ret;\n    };\n  }\n}","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import type { UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn } from './baseQueryTypes';\nimport type { CombinedState, CoreModule, QueryKeys } from './core';\nimport type { ApiModules } from './core/module';\nimport type { CreateApiOptions } from './createApi';\nimport type { EndpointBuilder, EndpointDefinition, EndpointDefinitions, UpdateDefinitions } from './endpointDefinitions';\nimport type { NoInfer, UnionToIntersection, WithRequiredProp } from './tsHelpers';\nexport type ModuleName = keyof ApiModules<any, any, any, any>;\nexport type Module<Name extends ModuleName> = {\n  name: Name;\n  init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {\n    injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;\n  };\n};\nexport interface ApiContext<Definitions extends EndpointDefinitions> {\n  apiUid: string;\n  endpointDefinitions: Definitions;\n  batch(cb: () => void): void;\n  extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;\n  hasRehydrationInfo: (action: UnknownAction) => boolean;\n}\nexport const getEndpointDefinition = <Definitions extends EndpointDefinitions, EndpointName extends keyof Definitions>(context: ApiContext<Definitions>, endpointName: EndpointName) => context.endpointDefinitions[endpointName];\nexport type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {\n  /**\n   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.\n   */\n  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {\n    endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;\n    /**\n     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.\n     *\n     * If set to `true`, will override existing endpoints with the new definition.\n     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.\n     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.\n     */\n    overrideExisting?: boolean | 'throw';\n  }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;\n  /**\n   *A function to enhance a generated API with additional information. Useful with code-generation.\n   */\n  enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {\n    addTagTypes?: readonly NewTagTypes[];\n    endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? { [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void) } : never;\n  }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;\n};","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { SchemaError } from '@standard-schema/utils';\nimport type { SchemaType } from './endpointDefinitions';\nexport class NamedSchemaError extends SchemaError {\n  constructor(issues: readonly StandardSchemaV1.Issue[], public readonly value: any, public readonly schemaName: `${SchemaType}Schema`, public readonly _bqMeta: any) {\n    super(issues);\n  }\n}\nexport const shouldSkip = (skipSchemaValidation: boolean | SchemaType[] | undefined, schemaName: SchemaType) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;\nexport async function parseWithSchema<Schema extends StandardSchemaV1>(schema: Schema, data: unknown, schemaName: `${SchemaType}Schema`, bqMeta: any): Promise<StandardSchemaV1.InferOutput<Schema>> {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);\n  }\n  return result.value;\n}","import type { AsyncThunk, AsyncThunkPayloadCreator, Draft, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Patch } from 'immer';\nimport { isDraftable, produceWithPatches } from '../utils/immerImports';\nimport type { Api, ApiContext } from '../apiTypes';\nimport type { BaseQueryError, BaseQueryFn, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryCombinedArg, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFrom, QueryDefinition, ResultDescription, ResultTypeFrom, SchemaFailureConverter, SchemaFailureHandler, SchemaFailureInfo, SchemaType } from '../endpointDefinitions';\nimport { calculateProvidedBy, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { HandledError } from '../HandledError';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport type { RootState, QueryKeys, QuerySubstateIdentifier, InfiniteData, InfiniteQueryConfigOptions, QueryCacheKey, InfiniteQueryDirection, InfiniteQueryKeys } from './apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from './apiState';\nimport type { InfiniteQueryActionCreatorResult, QueryActionCreatorResult, StartInfiniteQueryActionCreatorOptions, StartQueryActionCreatorOptions } from './buildInitiate';\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate';\nimport type { AllSelectors } from './buildSelectors';\nimport type { ApiEndpointQuery, PrefetchOptions } from './module';\nimport { createAsyncThunk, isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, SHOULD_AUTOBATCH } from './rtkImports';\nimport { parseWithSchema, NamedSchemaError, shouldSkip } from '../standardSchema';\nexport type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;\nexport type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;\nexport type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;\ntype EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : never;\nexport type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;\nexport type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;\nexport type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;\nexport type Matcher<M> = (value: any) => value is M;\nexport interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {\n  matchPending: Matcher<PendingAction<Thunk, Definition>>;\n  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;\n  matchRejected: Matcher<RejectedAction<Thunk, Definition>>;\n}\nexport type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {\n  type: 'query';\n  originalArgs: unknown;\n  endpointName: string;\n};\nexport type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {\n  type: `query`;\n  originalArgs: unknown;\n  endpointName: string;\n  param: unknown;\n  direction?: InfiniteQueryDirection;\n  refetchCachedPages?: boolean;\n};\ntype MutationThunkArg = {\n  type: 'mutation';\n  originalArgs: unknown;\n  endpointName: string;\n  track?: boolean;\n  fixedCacheKey?: string;\n};\nexport type ThunkResult = unknown;\nexport type ThunkApiMetaConfig = {\n  pendingMeta: {\n    startedTimeStamp: number;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  fulfilledMeta: {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  rejectedMeta: {\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n};\nexport type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;\nexport type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;\nexport type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\n  return baseQueryReturnValue;\n}\nexport type MaybeDrafted<T> = T | Draft<T>;\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;\nexport type UpsertRecipe<T> = (data: MaybeDrafted<T> | undefined) => void | MaybeDrafted<T>;\nexport type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;\nexport type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;\nexport type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;\nexport type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;\nexport type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;\nexport type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;\nexport type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;\n\n/**\n * An object returned from dispatching a `api.util.updateQueryData` call.\n */\nexport type PatchCollection = {\n  /**\n   * An `immer` Patch describing the cache update.\n   */\n  patches: Patch[];\n  /**\n   * An `immer` Patch to revert the cache update.\n   */\n  inversePatches: Patch[];\n  /**\n   * A function that will undo the cache update.\n   */\n  undo: () => void;\n};\ntype TransformCallback = (baseQueryReturnValue: unknown, meta: unknown, arg: unknown) => any;\nexport const addShouldAutoBatch = <T extends Record<string, any>,>(arg: T = {} as T): T & {\n  [SHOULD_AUTOBATCH]: true;\n} => {\n  return {\n    ...arg,\n    [SHOULD_AUTOBATCH]: true\n  };\n};\nexport function buildThunks<BaseQuery extends BaseQueryFn, ReducerPath extends string, Definitions extends EndpointDefinitions>({\n  reducerPath,\n  baseQuery,\n  context: {\n    endpointDefinitions\n  },\n  serializeQueryArgs,\n  api,\n  assertTagType,\n  selectors,\n  onSchemaFailure,\n  catchSchemaFailure: globalCatchSchemaFailure,\n  skipSchemaValidation: globalSkipSchemaValidation\n}: {\n  baseQuery: BaseQuery;\n  reducerPath: ReducerPath;\n  context: ApiContext<Definitions>;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  api: Api<BaseQuery, Definitions, ReducerPath, any>;\n  assertTagType: AssertTagTypes;\n  selectors: AllSelectors;\n  onSchemaFailure: SchemaFailureHandler | undefined;\n  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined;\n  skipSchemaValidation: boolean | SchemaType[] | undefined;\n}) {\n  type State = RootState<any, string, ReducerPath>;\n  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n    const endpointDefinition = endpointDefinitions[endpointName];\n    const queryCacheKey = serializeQueryArgs({\n      queryArgs: arg,\n      endpointDefinition,\n      endpointName\n    });\n    dispatch(api.internalActions.queryResultPatched({\n      queryCacheKey,\n      patches\n    }));\n    if (!updateProvided) {\n      return;\n    }\n    const newValue = api.endpoints[endpointName].select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, undefined, arg, {}, assertTagType);\n    dispatch(api.internalActions.updateProvidedBy([{\n      queryCacheKey,\n      providedTags\n    }]));\n  };\n  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [item, ...items];\n    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n  }\n  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [...items, item];\n    return max && newItems.length > max ? newItems.slice(1) : newItems;\n  }\n  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n    const endpointDefinition = api.endpoints[endpointName];\n    const currentState = endpointDefinition.select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const ret: PatchCollection = {\n      patches: [],\n      inversePatches: [],\n      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n    };\n    if (currentState.status === STATUS_UNINITIALIZED) {\n      return ret;\n    }\n    let newValue;\n    if ('data' in currentState) {\n      if (isDraftable(currentState.data)) {\n        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n        ret.patches.push(...patches);\n        ret.inversePatches.push(...inversePatches);\n        newValue = value;\n      } else {\n        newValue = updateRecipe(currentState.data);\n        ret.patches.push({\n          op: 'replace',\n          path: [],\n          value: newValue\n        });\n        ret.inversePatches.push({\n          op: 'replace',\n          path: [],\n          value: currentState.data\n        });\n      }\n    }\n    if (ret.patches.length === 0) {\n      return ret;\n    }\n    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n    return ret;\n  };\n  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> = (endpointName, arg, value) => dispatch => {\n    type EndpointName = typeof endpointName;\n    const res = dispatch((api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>).initiate(arg, {\n      subscribe: false,\n      forceRefetch: true,\n      [forceQueryFnSymbol]: () => ({\n        data: value\n      })\n    })) as UpsertThunkResult<Definitions, EndpointName>;\n    return res;\n  };\n  const getTransformCallbackForEndpoint = (endpointDefinition: EndpointDefinition<any, any, any, any>, transformFieldName: 'transformResponse' | 'transformErrorResponse'): TransformCallback => {\n    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName]! as TransformCallback : defaultTransformResponse;\n  };\n\n  // The generic async payload function for all of our thunks\n  const executeEndpoint: AsyncThunkPayloadCreator<ThunkResult, QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }> = async (arg, {\n    signal,\n    abort,\n    rejectWithValue,\n    fulfillWithValue,\n    dispatch,\n    getState,\n    extra\n  }) => {\n    const endpointDefinition = endpointDefinitions[arg.endpointName];\n    const {\n      metaSchema,\n      skipSchemaValidation = globalSkipSchemaValidation\n    } = endpointDefinition;\n    const isQuery = arg.type === ENDPOINT_QUERY;\n    try {\n      let transformResponse: TransformCallback = defaultTransformResponse;\n      const baseQueryApi = {\n        signal,\n        abort,\n        dispatch,\n        getState,\n        extra,\n        endpoint: arg.endpointName,\n        type: arg.type,\n        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,\n        queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n      };\n      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined;\n      let finalQueryReturnValue: QueryReturnValue;\n\n      // Infinite query wrapper, which executes the request and returns\n      // the InfiniteData `{pages, pageParams}` structure\n      const fetchPage = async (data: InfiniteData<unknown, unknown>, param: unknown, maxPages: number, previous?: boolean): Promise<QueryReturnValue> => {\n        // This should handle cases where there is no `getPrevPageParam`,\n        // or `getPPP` returned nullish\n        if (param == null && data.pages.length) {\n          return Promise.resolve({\n            data\n          });\n        }\n        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {\n          queryArg: arg.originalArgs,\n          pageParam: param\n        };\n        const pageResponse = await executeRequest(finalQueryArg);\n        const addTo = previous ? addToStart : addToEnd;\n        return {\n          data: {\n            pages: addTo(data.pages, pageResponse.data, maxPages),\n            pageParams: addTo(data.pageParams, param, maxPages)\n          },\n          meta: pageResponse.meta\n        };\n      };\n\n      // Wrapper for executing either `query` or `queryFn`,\n      // and handling any errors\n      async function executeRequest(finalQueryArg: unknown): Promise<QueryReturnValue> {\n        let result: QueryReturnValue;\n        const {\n          extraOptions,\n          argSchema,\n          rawResponseSchema,\n          responseSchema\n        } = endpointDefinition;\n        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {\n          finalQueryArg = await parseWithSchema(argSchema, finalQueryArg, 'argSchema', {} // we don't have a meta yet, so we can't pass it\n          );\n        }\n        if (forceQueryFn) {\n          // upsertQueryData relies on this to pass in the user-provided value\n          result = forceQueryFn();\n        } else if (endpointDefinition.query) {\n          // We should only run `transformResponse` when the endpoint has a `query` method,\n          // and we're not doing an `upsertQueryData`.\n          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformResponse');\n          result = await baseQuery(endpointDefinition.query(finalQueryArg as any), baseQueryApi, extraOptions as any);\n        } else {\n          result = await endpointDefinition.queryFn(finalQueryArg as any, baseQueryApi, extraOptions as any, arg => baseQuery(arg, baseQueryApi, extraOptions as any));\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`';\n          let err: undefined | string;\n          if (!result) {\n            err = `${what} did not return anything.`;\n          } else if (typeof result !== 'object') {\n            err = `${what} did not return an object.`;\n          } else if (result.error && result.data) {\n            err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n          } else if (result.error === undefined && result.data === undefined) {\n            err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n          } else {\n            for (const key of Object.keys(result)) {\n              if (key !== 'error' && key !== 'data' && key !== 'meta') {\n                err = `The object returned by ${what} has the unknown property ${key}.`;\n                break;\n              }\n            }\n          }\n          if (err) {\n            console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n                  ${err}\n                  It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n                  Object returned was:`, result);\n          }\n        }\n        if (result.error) throw new HandledError(result.error, result.meta);\n        let {\n          data\n        } = result;\n        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, 'rawResponse')) {\n          data = await parseWithSchema(rawResponseSchema, result.data, 'rawResponseSchema', result.meta);\n        }\n        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);\n        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {\n          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, 'responseSchema', result.meta);\n        }\n        return {\n          ...result,\n          data: transformedResponse\n        };\n      }\n      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {\n        // This is an infinite query endpoint\n        const {\n          infiniteQueryOptions\n        } = endpointDefinition;\n\n        // Runtime checks should guarantee this is a positive number if provided\n        const {\n          maxPages = Infinity\n        } = infiniteQueryOptions;\n\n        // Priority: per-call override > endpoint config > default (true)\n        const refetchCachedPages = (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;\n        let result: QueryReturnValue;\n\n        // Start by looking up the existing InfiniteData value from state,\n        // falling back to an empty value if it doesn't exist yet\n        const blankData = {\n          pages: [],\n          pageParams: []\n        };\n        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data as InfiniteData<unknown, unknown> | undefined;\n\n        // When the arg changes or the user forces a refetch,\n        // we don't include the `direction` flag. This lets us distinguish\n        // between actually refetching with a forced query, vs just fetching\n        // the next page.\n        const isForcedQueryNeedingRefetch =\n        // arg.forceRefetch\n        isForcedQuery(arg, getState()) && !(arg as InfiniteQueryThunkArg<any>).direction;\n        const existingData = (isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData) as InfiniteData<unknown, unknown>;\n\n        // If the thunk specified a direction and we do have at least one page,\n        // fetch the next or previous page\n        if ('direction' in arg && arg.direction && existingData.pages.length) {\n          const previous = arg.direction === 'backward';\n          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);\n          result = await fetchPage(existingData, param, maxPages, previous);\n        } else {\n          // Otherwise, fetch the first page and then any remaining pages\n\n          const {\n            initialPageParam = infiniteQueryOptions.initialPageParam\n          } = arg as InfiniteQueryThunkArg<any>;\n\n          // If we're doing a refetch, we should start from\n          // the first page we have cached.\n          // Otherwise, we should start from the initialPageParam\n          const cachedPageParams = cachedData?.pageParams ?? [];\n          const firstPageParam = cachedPageParams[0] ?? initialPageParam;\n          const totalPages = cachedPageParams.length;\n\n          // Fetch first page\n          result = await fetchPage(existingData, firstPageParam, maxPages);\n          if (forceQueryFn) {\n            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,\n            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.\n            result = {\n              data: (result.data as InfiniteData<unknown, unknown>).pages[0]\n            } as QueryReturnValue;\n          }\n          if (refetchCachedPages) {\n            // Fetch remaining pages\n            for (let i = 1; i < totalPages; i++) {\n              const param = getNextPageParam(infiniteQueryOptions, result.data as InfiniteData<unknown, unknown>, arg.originalArgs);\n              result = await fetchPage(result.data as InfiniteData<unknown, unknown>, param, maxPages);\n            }\n          }\n        }\n        finalQueryReturnValue = result;\n      } else {\n        // Non-infinite endpoint. Just run the one request.\n        finalQueryReturnValue = await executeRequest(arg.originalArgs);\n      }\n      if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta') && finalQueryReturnValue.meta) {\n        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, 'metaSchema', finalQueryReturnValue.meta);\n      }\n\n      // console.log('Final result: ', transformedData)\n      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({\n        fulfilledTimeStamp: Date.now(),\n        baseQueryMeta: finalQueryReturnValue.meta\n      }));\n    } catch (error) {\n      let caughtError = error;\n      if (caughtError instanceof HandledError) {\n        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformErrorResponse');\n        const {\n          rawErrorResponseSchema,\n          errorResponseSchema\n        } = endpointDefinition;\n        let {\n          value,\n          meta\n        } = caughtError;\n        try {\n          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, 'rawErrorResponse')) {\n            value = await parseWithSchema(rawErrorResponseSchema, value, 'rawErrorResponseSchema', meta);\n          }\n          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {\n            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta);\n          }\n          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);\n          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, 'errorResponse')) {\n            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, 'errorResponseSchema', meta);\n          }\n          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({\n            baseQueryMeta: meta\n          }));\n        } catch (e) {\n          caughtError = e;\n        }\n      }\n      try {\n        if (caughtError instanceof NamedSchemaError) {\n          const info: SchemaFailureInfo = {\n            endpoint: arg.endpointName,\n            arg: arg.originalArgs,\n            type: arg.type,\n            queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n          };\n          endpointDefinition.onSchemaFailure?.(caughtError, info);\n          onSchemaFailure?.(caughtError, info);\n          const {\n            catchSchemaFailure = globalCatchSchemaFailure\n          } = endpointDefinition;\n          if (catchSchemaFailure) {\n            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({\n              baseQueryMeta: caughtError._bqMeta\n            }));\n          }\n        }\n      } catch (e) {\n        caughtError = e;\n      }\n      if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n        console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, caughtError);\n      } else {\n        console.error(caughtError);\n      }\n      throw caughtError;\n    }\n  };\n  function isForcedQuery(arg: QueryThunkArg, state: RootState<any, string, ReducerPath>) {\n    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);\n    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;\n    const fulfilledVal = requestState?.fulfilledTimeStamp;\n    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n    if (refetchVal) {\n      // Return if it's true or compare the dates because it must be a number\n      return refetchVal === true || (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal;\n    }\n    return false;\n  }\n  const createQueryThunk = <ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,>() => {\n    const generatedQueryThunk = createAsyncThunk<ThunkResult, ThunkArgType, ThunkApiMetaConfig & {\n      state: RootState<any, string, ReducerPath>;\n    }>(`${reducerPath}/executeQuery`, executeEndpoint, {\n      getPendingMeta({\n        arg\n      }) {\n        const endpointDefinition = endpointDefinitions[arg.endpointName];\n        return addShouldAutoBatch({\n          startedTimeStamp: Date.now(),\n          ...(isInfiniteQueryDefinition(endpointDefinition) ? {\n            direction: (arg as InfiniteQueryThunkArg<any>).direction\n          } : {})\n        });\n      },\n      condition(queryThunkArg, {\n        getState\n      }) {\n        const state = getState();\n        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);\n        const fulfilledVal = requestState?.fulfilledTimeStamp;\n        const currentArg = queryThunkArg.originalArgs;\n        const previousArg = requestState?.originalArgs;\n        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];\n        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>).direction;\n\n        // Order of these checks matters.\n        // In order for `upsertQueryData` to successfully run while an existing request is in flight,\n        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\n        if (isUpsertQuery(queryThunkArg)) {\n          return true;\n        }\n\n        // Don't retry a request that's currently in-flight\n        if (requestState?.status === 'pending') {\n          return false;\n        }\n\n        // if this is forced, continue\n        if (isForcedQuery(queryThunkArg, state)) {\n          return true;\n        }\n        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n          currentArg,\n          previousArg,\n          endpointState: requestState,\n          state\n        })) {\n          return true;\n        }\n\n        // Pull from the cache unless we explicitly force refetch or qualify based on time\n        if (fulfilledVal && !direction) {\n          // Value is cached and we didn't specify to refresh, skip it.\n          return false;\n        }\n        return true;\n      },\n      dispatchConditionRejection: true\n    });\n    return generatedQueryThunk;\n  };\n  const queryThunk = createQueryThunk<QueryThunkArg>();\n  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>();\n  const mutationThunk = createAsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }>(`${reducerPath}/executeMutation`, executeEndpoint, {\n    getPendingMeta() {\n      return addShouldAutoBatch({\n        startedTimeStamp: Date.now()\n      });\n    }\n  });\n  const hasTheForce = (options: any): options is {\n    force: boolean;\n  } => 'force' in options;\n  const hasMaxAge = (options: any): options is {\n    ifOlderThan: false | number;\n  } => 'ifOlderThan' in options;\n  const prefetch = <EndpointName extends QueryKeys<Definitions>,>(endpointName: EndpointName, arg: any, options: PrefetchOptions = {}): ThunkAction<void, any, any, UnknownAction> => (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\n    const force = hasTheForce(options) && options.force;\n    const maxAge = hasMaxAge(options) && options.ifOlderThan;\n    const queryAction = (force: boolean = true) => {\n      const options: StartQueryActionCreatorOptions = {\n        forceRefetch: force,\n        subscribe: false\n      };\n      return (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(arg, options);\n    };\n    const latestStateValue = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg)(getState());\n    if (force) {\n      dispatch(queryAction());\n    } else if (maxAge) {\n      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n      if (!lastFulfilledTs) {\n        dispatch(queryAction());\n        return;\n      }\n      const shouldRetrigger = (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >= maxAge;\n      if (shouldRetrigger) {\n        dispatch(queryAction());\n      }\n    } else {\n      // If prefetching with no options, just let it try\n      dispatch(queryAction(false));\n    }\n  };\n  function matchesEndpoint(endpointName: string) {\n    return (action: any): action is UnknownAction => action?.meta?.arg?.endpointName === endpointName;\n  }\n  function buildMatchThunkActions<Thunk extends AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig> | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>>(thunk: Thunk, endpointName: string) {\n    return {\n      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n    } as Matchers<Thunk, any>;\n  }\n  return {\n    queryThunk,\n    mutationThunk,\n    infiniteQueryThunk,\n    prefetch,\n    updateQueryData,\n    upsertQueryData,\n    patchQueryData,\n    buildMatchThunkActions\n  };\n}\nexport function getNextPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  const lastIndex = pages.length - 1;\n  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);\n}\nexport function getPreviousPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);\n}\nexport function calculateProvidedByThunk(action: UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>, type: 'providesTags' | 'invalidatesTags', endpointDefinitions: EndpointDefinitions, assertTagType: AssertTagTypes) {\n  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type] as ResultDescription<any, any, any, any, any>, isFulfilled(action) ? action.payload : undefined, isRejectedWithValue(action) ? action.payload : undefined, action.meta.arg.originalArgs, 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined, assertTagType);\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../utils/immerImports';\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, createNextState, prepareAutoBatched, SHOULD_AUTOBATCH, nanoid } from './rtkImports';\nimport type { QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, MutationState, QueryState, InvalidationState, Subscribers, QueryCacheKey, SubscriptionState, ConfigState, InfiniteQuerySubState, InfiniteQueryDirection } from './apiState';\nimport { STATUS_FULFILLED, STATUS_PENDING, QueryStatus, STATUS_REJECTED, STATUS_UNINITIALIZED } from './apiState';\nimport type { AllQueryKeys, QueryArgFromAnyQueryDefinition, DataFromAnyQueryDefinition, InfiniteQueryThunk, MutationThunk, QueryThunk, QueryThunkArg } from './buildThunks';\nimport { calculateProvidedByThunk } from './buildThunks';\nimport { ENDPOINT_QUERY, isInfiniteQueryDefinition, type AssertTagTypes, type EndpointDefinitions, type FullTagDescription, type QueryDefinition } from '../endpointDefinitions';\nimport type { Patch } from 'immer';\nimport { applyPatches, original, isDraft } from '../utils/immerImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport { isDocumentVisible, isOnline, copyWithStructuralSharing } from '../utils';\nimport type { ApiContext } from '../apiTypes';\nimport { isUpsertQuery } from './buildInitiate';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport { getCurrent } from '../utils/getCurrent';\n\n/**\n * A typesafe single entry to be upserted into the cache\n */\nexport type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {\n  endpointName: EndpointName;\n  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;\n  value: DataFromAnyQueryDefinition<Definitions, EndpointName>;\n};\n\n/**\n * The internal version that is not typesafe since we can't carry the generics through `createSlice`\n */\ntype NormalizedQueryUpsertEntryPayload = {\n  endpointName: string;\n  arg: unknown;\n  value: unknown;\n};\nexport type ProcessedQueryUpsertEntry = {\n  queryDescription: QueryThunkArg;\n  value: unknown;\n};\n\n/**\n * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert\n */\nexport type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [...{ [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]> }]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {\n  match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;\n};\nfunction updateQuerySubstateIfExists(state: QueryState<any>, queryCacheKey: QueryCacheKey, update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void) {\n  const substate = state[queryCacheKey];\n  if (substate) {\n    update(substate);\n  }\n}\nexport function getMutationCacheKey(id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n}): string | undefined;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n} | MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string | undefined {\n  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state: MutationState<any>, id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}, update: (substate: MutationSubState<any>) => void) {\n  const substate = state[getMutationCacheKey(id)];\n  if (substate) {\n    update(substate);\n  }\n}\nconst initialState = {} as any;\nexport function buildSlice({\n  reducerPath,\n  queryThunk,\n  mutationThunk,\n  serializeQueryArgs,\n  context: {\n    endpointDefinitions: definitions,\n    apiUid,\n    extractRehydrationInfo,\n    hasRehydrationInfo\n  },\n  assertTagType,\n  config\n}: {\n  reducerPath: string;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  context: ApiContext<EndpointDefinitions>;\n  assertTagType: AssertTagTypes;\n  config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;\n}) {\n  const resetApiState = createAction(`${reducerPath}/resetApiState`);\n  function writePendingCacheEntry(draft: QueryState<any>, arg: QueryThunkArg, upserting: boolean, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n    // requestStatus: 'pending'\n  } & {\n    startedTimeStamp: number;\n  }) {\n    draft[arg.queryCacheKey] ??= {\n      status: STATUS_UNINITIALIZED,\n      endpointName: arg.endpointName\n    };\n    updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n      substate.status = STATUS_PENDING;\n      substate.requestId = upserting && substate.requestId ?\n      // for `upsertQuery` **updates**, keep the current `requestId`\n      substate.requestId :\n      // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n      meta.requestId;\n      if (arg.originalArgs !== undefined) {\n        substate.originalArgs = arg.originalArgs;\n      }\n      substate.startedTimeStamp = meta.startedTimeStamp;\n      const endpointDefinition = definitions[meta.arg.endpointName];\n      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {\n        ;\n        (substate as InfiniteQuerySubState<any>).direction = arg.direction as InfiniteQueryDirection;\n      }\n    });\n  }\n  function writeFulfilledCacheEntry(draft: QueryState<any>, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n  } & {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n  }, payload: unknown, upserting: boolean) {\n    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, substate => {\n      if (substate.requestId !== meta.requestId && !upserting) return;\n      const {\n        merge\n      } = definitions[meta.arg.endpointName] as QueryDefinition<any, any, any, any>;\n      substate.status = STATUS_FULFILLED;\n      if (merge) {\n        if (substate.data !== undefined) {\n          const {\n            fulfilledTimeStamp,\n            arg,\n            baseQueryMeta,\n            requestId\n          } = meta;\n          // There's existing cache data. Let the user merge it in themselves.\n          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\n          // themselves inside of `merge()`. But, they might also want to return a new value.\n          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\n          let newData = createNextState(substate.data, draftSubstateData => {\n            // As usual with Immer, you can mutate _or_ return inside here, but not both\n            return merge(draftSubstateData, payload, {\n              arg: arg.originalArgs,\n              baseQueryMeta,\n              fulfilledTimeStamp,\n              requestId\n            });\n          });\n          substate.data = newData;\n        } else {\n          // Presumably a fresh request. Just cache the response data.\n          substate.data = payload;\n        }\n      } else {\n        // Assign or safely update the cache data.\n        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n      }\n      delete substate.error;\n      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n    });\n  }\n  const querySlice = createSlice({\n    name: `${reducerPath}/queries`,\n    initialState: initialState as QueryState<any>,\n    reducers: {\n      removeQueryResult: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey\n          }\n        }: PayloadAction<QuerySubstateIdentifier>) {\n          delete draft[queryCacheKey];\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier>()\n      },\n      cacheEntriesUpserted: {\n        reducer(draft, action: PayloadAction<ProcessedQueryUpsertEntry[], string, {\n          RTK_autoBatch: boolean;\n          requestId: string;\n          timestamp: number;\n        }>) {\n          for (const entry of action.payload) {\n            const {\n              queryDescription: arg,\n              value\n            } = entry;\n            writePendingCacheEntry(draft, arg, true, {\n              arg,\n              requestId: action.meta.requestId,\n              startedTimeStamp: action.meta.timestamp\n            });\n            writeFulfilledCacheEntry(draft, {\n              arg,\n              requestId: action.meta.requestId,\n              fulfilledTimeStamp: action.meta.timestamp,\n              baseQueryMeta: {}\n            }, value,\n            // We know we're upserting here\n            true);\n          }\n        },\n        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {\n          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(entry => {\n            const {\n              endpointName,\n              arg,\n              value\n            } = entry;\n            const endpointDefinition = definitions[endpointName];\n            const queryDescription: QueryThunkArg = {\n              type: ENDPOINT_QUERY as 'query',\n              endpointName,\n              originalArgs: entry.arg,\n              queryCacheKey: serializeQueryArgs({\n                queryArgs: arg,\n                endpointDefinition,\n                endpointName\n              })\n            };\n            return {\n              queryDescription,\n              value\n            };\n          });\n          const result = {\n            payload: queryDescriptions,\n            meta: {\n              [SHOULD_AUTOBATCH]: true,\n              requestId: nanoid(),\n              timestamp: Date.now()\n            }\n          };\n          return result;\n        }\n      },\n      queryResultPatched: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey,\n            patches\n          }\n        }: PayloadAction<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>) {\n          updateQuerySubstateIfExists(draft, queryCacheKey, substate => {\n            substate.data = applyPatches(substate.data as any, patches.concat());\n          });\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(queryThunk.pending, (draft, {\n        meta,\n        meta: {\n          arg\n        }\n      }) => {\n        const upserting = isUpsertQuery(arg);\n        writePendingCacheEntry(draft, arg, upserting, meta);\n      }).addCase(queryThunk.fulfilled, (draft, {\n        meta,\n        payload\n      }) => {\n        const upserting = isUpsertQuery(meta.arg);\n        writeFulfilledCacheEntry(draft, meta, payload, upserting);\n      }).addCase(queryThunk.rejected, (draft, {\n        meta: {\n          condition,\n          arg,\n          requestId\n        },\n        error,\n        payload\n      }) => {\n        updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n          if (condition) {\n            // request was aborted due to condition (another query already running)\n          } else {\n            // request failed\n            if (substate.requestId !== requestId) return;\n            substate.status = STATUS_REJECTED;\n            substate.error = (payload ?? error) as any;\n          }\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          queries\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(queries)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  const mutationSlice = createSlice({\n    name: `${reducerPath}/mutations`,\n    initialState: initialState as MutationState<any>,\n    reducers: {\n      removeMutationResult: {\n        reducer(draft, {\n          payload\n        }: PayloadAction<MutationSubstateIdentifier>) {\n          const cacheKey = getMutationCacheKey(payload);\n          if (cacheKey in draft) {\n            delete draft[cacheKey];\n          }\n        },\n        prepare: prepareAutoBatched<MutationSubstateIdentifier>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(mutationThunk.pending, (draft, {\n        meta,\n        meta: {\n          requestId,\n          arg,\n          startedTimeStamp\n        }\n      }) => {\n        if (!arg.track) return;\n        draft[getMutationCacheKey(meta)] = {\n          requestId,\n          status: STATUS_PENDING,\n          endpointName: arg.endpointName,\n          startedTimeStamp\n        };\n      }).addCase(mutationThunk.fulfilled, (draft, {\n        payload,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_FULFILLED;\n          substate.data = payload;\n          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n        });\n      }).addCase(mutationThunk.rejected, (draft, {\n        payload,\n        error,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_REJECTED;\n          substate.error = (payload ?? error) as any;\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          mutations\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(mutations)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) &&\n          // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n          key !== entry?.requestId) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  type CalculateProvidedByAction = UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>;\n  const initialInvalidationState: InvalidationState<string> = {\n    tags: {},\n    keys: {}\n  };\n  const invalidationSlice = createSlice({\n    name: `${reducerPath}/invalidation`,\n    initialState: initialInvalidationState,\n    reducers: {\n      updateProvidedBy: {\n        reducer(draft, action: PayloadAction<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>) {\n          for (const {\n            queryCacheKey,\n            providedTags\n          } of action.payload) {\n            removeCacheKeyFromTags(draft, queryCacheKey);\n            for (const {\n              type,\n              id\n            } of providedTags) {\n              const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n            }\n\n            // Remove readonly from the providedTags array\n            draft.keys[queryCacheKey] = providedTags as FullTagDescription<string>[];\n          }\n        },\n        prepare: prepareAutoBatched<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n        payload: {\n          queryCacheKey\n        }\n      }) => {\n        removeCacheKeyFromTags(draft, queryCacheKey);\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          provided\n        } = extractRehydrationInfo(action)!;\n        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {\n          for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n            const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n            for (const queryCacheKey of cacheKeys) {\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];\n            }\n          }\n        }\n      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n        writeProvidedTagsForQueries(draft, [action]);\n      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {\n        const mockActions: CalculateProvidedByAction[] = action.payload.map(({\n          queryDescription,\n          value\n        }) => {\n          return {\n            type: 'UNKNOWN',\n            payload: value,\n            meta: {\n              requestStatus: 'fulfilled',\n              requestId: 'UNKNOWN',\n              arg: queryDescription\n            }\n          };\n        });\n        writeProvidedTagsForQueries(draft, mockActions);\n      });\n    }\n  });\n  function removeCacheKeyFromTags(draft: InvalidationState<any>, queryCacheKey: QueryCacheKey) {\n    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);\n\n    // Delete this cache key from any existing tags that may have provided it\n    for (const tag of existingTags) {\n      const tagType = tag.type;\n      const tagId = tag.id ?? '__internal_without_id';\n      const tagSubscriptions = draft.tags[tagType]?.[tagId];\n      if (tagSubscriptions) {\n        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(qc => qc !== queryCacheKey);\n      }\n    }\n    delete draft.keys[queryCacheKey];\n  }\n  function writeProvidedTagsForQueries(draft: InvalidationState<string>, actions: CalculateProvidedByAction[]) {\n    const providedByEntries = actions.map(action => {\n      const providedTags = calculateProvidedByThunk(action, 'providesTags', definitions, assertTagType);\n      const {\n        queryCacheKey\n      } = action.meta.arg;\n      return {\n        queryCacheKey,\n        providedTags\n      };\n    });\n    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));\n  }\n\n  // Dummy slice to generate actions\n  const subscriptionSlice = createSlice({\n    name: `${reducerPath}/subscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      updateSubscriptionOptions(d, a: PayloadAction<{\n        endpointName: string;\n        requestId: string;\n        options: Subscribers[number];\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      unsubscribeQueryResult(d, a: PayloadAction<{\n        requestId: string;\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      internal_getRTKQSubscriptions() {}\n    }\n  });\n  const internalSubscriptionsSlice = createSlice({\n    name: `${reducerPath}/internalSubscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      subscriptionsUpdated: {\n        reducer(state, action: PayloadAction<Patch[]>) {\n          return applyPatches(state, action.payload);\n        },\n        prepare: prepareAutoBatched<Patch[]>()\n      }\n    }\n  });\n  const configSlice = createSlice({\n    name: `${reducerPath}/config`,\n    initialState: {\n      online: isOnline(),\n      focused: isDocumentVisible(),\n      middlewareRegistered: false,\n      ...config\n    } as ConfigState<string>,\n    reducers: {\n      middlewareRegistered(state, {\n        payload\n      }: PayloadAction<string>) {\n        state.middlewareRegistered = state.middlewareRegistered === 'conflict' || apiUid !== payload ? 'conflict' : true;\n      }\n    },\n    extraReducers: builder => {\n      builder.addCase(onOnline, state => {\n        state.online = true;\n      }).addCase(onOffline, state => {\n        state.online = false;\n      }).addCase(onFocus, state => {\n        state.focused = true;\n      }).addCase(onFocusLost, state => {\n        state.focused = false;\n      })\n      // update the state to be a new object to be picked up as a \"state change\"\n      // by redux-persist's `autoMergeLevel2`\n      .addMatcher(hasRehydrationInfo, draft => ({\n        ...draft\n      }));\n    }\n  });\n  const combinedReducer = combineReducers({\n    queries: querySlice.reducer,\n    mutations: mutationSlice.reducer,\n    provided: invalidationSlice.reducer,\n    subscriptions: internalSubscriptionsSlice.reducer,\n    config: configSlice.reducer\n  });\n  const reducer: typeof combinedReducer = (state, action) => combinedReducer(resetApiState.match(action) ? undefined : state, action);\n  const actions = {\n    ...configSlice.actions,\n    ...querySlice.actions,\n    ...subscriptionSlice.actions,\n    ...internalSubscriptionsSlice.actions,\n    ...mutationSlice.actions,\n    ...invalidationSlice.actions,\n    resetApiState\n  };\n  return {\n    reducer,\n    actions\n  };\n}\nexport type SliceActions = ReturnType<typeof buildSlice>['actions'];","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, ReducerPathFrom, TagDescription, TagTypesFrom } from '../endpointDefinitions';\nimport { expandTagDescription } from '../endpointDefinitions';\nimport { filterMap, isNotNullish } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationSubState, QueryCacheKey, QueryState, QuerySubState, RequestStatusFlags, RootState as _RootState, QueryStatus } from './apiState';\nimport { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState';\nimport { getMutationCacheKey } from './buildSlice';\nimport type { createSelector as _createSelector } from './rtkImports';\nimport { createNextState } from './rtkImports';\nimport { type AllQueryKeys, getNextPageParam, getPreviousPageParam } from './buildThunks';\nexport type SkipToken = typeof skipToken;\n/**\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\n * instead of the query argument to get the same effect as if setting\n * `skip: true` in the query options.\n *\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\n * and TypeScript complains about it because `arg` is not allowed to be passed\n * in as `undefined`, such as\n *\n * ```ts\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\n * useSomeQuery(arg, { skip: !!arg })\n * ```\n *\n * ```ts\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\n * useSomeQuery(arg ?? skipToken)\n * ```\n *\n * If passed directly into a query or mutation selector, that selector will always\n * return an uninitialized state.\n */\nexport const skipToken = /* @__PURE__ */Symbol.for('RTKQ/skipToken');\nexport type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: QueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: InfiniteQueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: MutationResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\ntype QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;\nexport type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;\ntype InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;\nexport type InfiniteQueryResultFlags = {\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n  isFetchNextPageError: boolean;\n  isFetchPreviousPageError: boolean;\n};\nexport type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;\ntype MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {\n  requestId: string | undefined;\n  fixedCacheKey: string | undefined;\n} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;\nexport type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;\nconst initialSubState: QuerySubState<any> = {\n  status: STATUS_UNINITIALIZED\n};\n\n// abuse immer to freeze default states\nconst defaultQuerySubState = /* @__PURE__ */createNextState(initialSubState, () => {});\nconst defaultMutationSubState = /* @__PURE__ */createNextState(initialSubState as MutationSubState<any>, () => {});\nexport type AllSelectors = ReturnType<typeof buildSelectors>;\nexport function buildSelectors<Definitions extends EndpointDefinitions, ReducerPath extends string>({\n  serializeQueryArgs,\n  reducerPath,\n  createSelector\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  reducerPath: ReducerPath;\n  createSelector: typeof _createSelector;\n}) {\n  type RootState = _RootState<Definitions, string, string>;\n  const selectSkippedQuery = (state: RootState) => defaultQuerySubState;\n  const selectSkippedMutation = (state: RootState) => defaultMutationSubState;\n  return {\n    buildQuerySelector,\n    buildInfiniteQuerySelector,\n    buildMutationSelector,\n    selectInvalidatedBy,\n    selectCachedArgsForQuery,\n    selectApiState,\n    selectQueries,\n    selectMutations,\n    selectQueryEntry,\n    selectConfig\n  };\n  function withRequestFlags<T extends {\n    status: QueryStatus;\n  }>(substate: T): T & RequestStatusFlags {\n    return {\n      ...substate,\n      ...getRequestStatusFlags(substate.status)\n    };\n  }\n  function selectApiState(rootState: RootState) {\n    const state = rootState[reducerPath];\n    if (process.env.NODE_ENV !== 'production') {\n      if (!state) {\n        if ((selectApiState as any).triggered) return state;\n        (selectApiState as any).triggered = true;\n        console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n      }\n    }\n    return state;\n  }\n  function selectQueries(rootState: RootState) {\n    return selectApiState(rootState)?.queries;\n  }\n  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {\n    return selectQueries(rootState)?.[cacheKey];\n  }\n  function selectMutations(rootState: RootState) {\n    return selectApiState(rootState)?.mutations;\n  }\n  function selectConfig(rootState: RootState) {\n    return selectApiState(rootState)?.config;\n  }\n  function buildAnyQuerySelector(endpointName: string, endpointDefinition: EndpointDefinition<any, any, any, any>, combiner: <T extends {\n    status: QueryStatus;\n  }>(substate: T) => T & RequestStatusFlags) {\n    return (queryArgs: any) => {\n      // Avoid calling serializeQueryArgs if the arg is skipToken\n      if (queryArgs === skipToken) {\n        return createSelector(selectSkippedQuery, combiner);\n      }\n      const serializedArgs = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      const selectQuerySubstate = (state: RootState) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;\n      return createSelector(selectQuerySubstate, combiner);\n    };\n  }\n  function buildQuerySelector(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags) as QueryResultSelectorFactory<any, RootState>;\n  }\n  function buildInfiniteQuerySelector(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const {\n      infiniteQueryOptions\n    } = endpointDefinition;\n    function withInfiniteQueryResultFlags<T extends {\n      status: QueryStatus;\n    }>(substate: T): T & RequestStatusFlags & InfiniteQueryResultFlags {\n      const stateWithRequestFlags = {\n        ...(substate as InfiniteQuerySubState<any>),\n        ...getRequestStatusFlags(substate.status)\n      };\n      const {\n        isLoading,\n        isError,\n        direction\n      } = stateWithRequestFlags;\n      const isForward = direction === 'forward';\n      const isBackward = direction === 'backward';\n      return {\n        ...stateWithRequestFlags,\n        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        isFetchingNextPage: isLoading && isForward,\n        isFetchingPreviousPage: isLoading && isBackward,\n        isFetchNextPageError: isError && isForward,\n        isFetchPreviousPageError: isError && isBackward\n      };\n    }\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>;\n  }\n  function buildMutationSelector() {\n    return (id => {\n      let mutationId: string | typeof skipToken;\n      if (typeof id === 'object') {\n        mutationId = getMutationCacheKey(id) ?? skipToken;\n      } else {\n        mutationId = id;\n      }\n      const selectMutationSubstate = (state: RootState) => selectApiState(state)?.mutations?.[mutationId as string] ?? defaultMutationSubState;\n      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n      return createSelector(finalSelectMutationSubstate, withRequestFlags);\n    }) as MutationResultSelectorFactory<any, RootState>;\n  }\n  function selectInvalidatedBy(state: RootState, tags: ReadonlyArray<TagDescription<string> | null | undefined>): Array<{\n    endpointName: string;\n    originalArgs: any;\n    queryCacheKey: QueryCacheKey;\n  }> {\n    const apiState = state[reducerPath];\n    const toInvalidate = new Set<QueryCacheKey>();\n    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);\n    for (const tag of finalTags) {\n      const provided = apiState.provided.tags[tag.type];\n      if (!provided) {\n        continue;\n      }\n      let invalidateSubscriptions = (tag.id !== undefined ?\n      // id given: invalidate all queries that provide this type & id\n      provided[tag.id] :\n      // no id: invalidate all queries that provide this type\n      Object.values(provided).flat()) ?? [];\n      for (const invalidate of invalidateSubscriptions) {\n        toInvalidate.add(invalidate);\n      }\n    }\n    return Array.from(toInvalidate.values()).flatMap(queryCacheKey => {\n      const querySubState = apiState.queries[queryCacheKey];\n      return querySubState ? {\n        queryCacheKey,\n        endpointName: querySubState.endpointName!,\n        originalArgs: querySubState.originalArgs\n      } : [];\n    });\n  }\n  function selectCachedArgsForQuery<QueryName extends AllQueryKeys<Definitions>>(state: RootState, queryName: QueryName): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {\n    return filterMap(Object.values(selectQueries(state) as QueryState<any>), (entry): entry is Exclude<QuerySubState<Definitions[QueryName]>, {\n      status: QueryStatus.uninitialized;\n    }> => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, entry => entry.originalArgs);\n  }\n  function getHasNextPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data) return false;\n    return getNextPageParam(options, data, queryArg) != null;\n  }\n  function getHasPreviousPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data || !options.getPreviousPageParam) return false;\n    return getPreviousPageParam(options, data, queryArg) != null;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { getEndpointDefinition, type Api, type ApiContext, type Module, type ModuleName } from './apiTypes';\nimport type { CombinedState } from './core/apiState';\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { EndpointBuilder, EndpointDefinitions, SchemaFailureConverter, SchemaFailureHandler, SchemaType } from './endpointDefinitions';\nimport { DefinitionType, ENDPOINT_INFINITEQUERY, ENDPOINT_MUTATION, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from './endpointDefinitions';\nimport { nanoid } from './core/rtkImports';\nimport type { UnknownAction } from '@reduxjs/toolkit';\nimport type { NoInfer } from './tsHelpers';\nimport { weakMapMemoize } from 'reselect';\nexport interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {\n  /**\n   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   // highlight-start\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  baseQuery: BaseQuery;\n  /**\n   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   tagTypes: ['Post', 'User'],\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  tagTypes?: readonly TagTypes[];\n  /**\n   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"apis.js\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\n   *\n   * const apiOne = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiOne',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   *\n   * const apiTwo = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiTwo',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   * ```\n   */\n  reducerPath?: ReducerPath;\n  /**\n   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\n   */\n  serializeQueryArgs?: SerializeQueryArgs<unknown>;\n  /**\n   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).\n   */\n  endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;\n  /**\n   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"keepUnusedDataFor example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts'\n   *     })\n   *   }),\n   *   // highlight-start\n   *   keepUnusedDataFor: 5\n   *   // highlight-end\n   * })\n   * ```\n   */\n  keepUnusedDataFor?: number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.\n   *\n   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.\n   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.\n   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.\n   *   This ensures that queries are always invalidated correctly and automatically \"batches\" invalidations of concurrent mutations.\n   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.\n   */\n  invalidationBehavior?: 'delayed' | 'immediately';\n  /**\n   * A function that is passed every dispatched action. If this returns something other than `undefined`,\n   * that return value will be used to rehydrate fulfilled & errored queries.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\n   * import type { Action, PayloadAction } from '@reduxjs/toolkit'\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import { HYDRATE } from 'next-redux-wrapper'\n   *\n   * type RootState = any; // normally inferred from state\n   *\n   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {\n   *   return action.type === HYDRATE\n   * }\n   *\n   * export const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   extractRehydrationInfo(action, { reducerPath }): any {\n   *     if (isHydrateAction(action)) {\n   *       return action.payload[reducerPath]\n   *     }\n   *   },\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // omitted\n   *   }),\n   * })\n   * ```\n   */\n  extractRehydrationInfo?: (action: UnknownAction, {\n    reducerPath\n  }: {\n    reducerPath: ReducerPath;\n  }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *     }),\n   *   }),\n   *   onSchemaFailure: (error, info) => {\n   *     console.error(error, info)\n   *   },\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   }),\n   *   catchSchemaFailure: (error, info) => ({\n   *     status: \"CUSTOM_ERROR\",\n   *     error: error.schemaName + \" failed validation\",\n   *     data: error.issues,\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type CreateApi<Modules extends ModuleName> = {\n  /**\n   * Creates a service to use in your application. Contains only the basic redux logic (the core module).\n   *\n   * @link https://redux-toolkit.js.org/rtk-query/api/createApi\n   */\n  <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;\n};\n\n/**\n * Builds a `createApi` method based on the provided `modules`.\n *\n * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api\n *\n * @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\n * @returns A `createApi` method using the provided `modules`.\n */\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']> {\n  return function baseCreateApi(options) {\n    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) => options.extractRehydrationInfo?.(action, {\n      reducerPath: (options.reducerPath ?? 'api') as any\n    }));\n    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\n      reducerPath: 'api',\n      keepUnusedDataFor: 60,\n      refetchOnMountOrArgChange: false,\n      refetchOnFocus: false,\n      refetchOnReconnect: false,\n      invalidationBehavior: 'delayed',\n      ...options,\n      extractRehydrationInfo,\n      serializeQueryArgs(queryArgsApi) {\n        let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\n          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs!;\n          finalSerializeQueryArgs = queryArgsApi => {\n            const initialResult = endpointSQA(queryArgsApi);\n            if (typeof initialResult === 'string') {\n              // If the user function returned a string, use it as-is\n              return initialResult;\n            } else {\n              // Assume they returned an object (such as a subset of the original\n              // query args) or a primitive, and serialize it ourselves\n              return defaultSerializeQueryArgs({\n                ...queryArgsApi,\n                queryArgs: initialResult\n              });\n            }\n          };\n        } else if (options.serializeQueryArgs) {\n          finalSerializeQueryArgs = options.serializeQueryArgs;\n        }\n        return finalSerializeQueryArgs(queryArgsApi);\n      },\n      tagTypes: [...(options.tagTypes || [])]\n    };\n    const context: ApiContext<EndpointDefinitions> = {\n      endpointDefinitions: {},\n      batch(fn) {\n        // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\n        fn();\n      },\n      apiUid: nanoid(),\n      extractRehydrationInfo,\n      hasRehydrationInfo: weakMapMemoize(action => extractRehydrationInfo(action) != null)\n    };\n    const api = {\n      injectEndpoints,\n      enhanceEndpoints({\n        addTagTypes,\n        endpoints\n      }) {\n        if (addTagTypes) {\n          for (const eT of addTagTypes) {\n            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\n              ;\n              (optionsWithDefaults.tagTypes as any[]).push(eT);\n            }\n          }\n        }\n        if (endpoints) {\n          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n            if (typeof partialDefinition === 'function') {\n              partialDefinition(getEndpointDefinition(context, endpointName));\n            } else {\n              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);\n            }\n          }\n        }\n        return api;\n      }\n    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>;\n    const initializedModules = modules.map(m => m.init(api as any, optionsWithDefaults as any, context));\n    function injectEndpoints(inject: Parameters<typeof api.injectEndpoints>[0]) {\n      const evaluatedEndpoints = inject.endpoints({\n        query: x => ({\n          ...x,\n          type: ENDPOINT_QUERY\n        }) as any,\n        mutation: x => ({\n          ...x,\n          type: ENDPOINT_MUTATION\n        }) as any,\n        infiniteQuery: x => ({\n          ...x,\n          type: ENDPOINT_INFINITEQUERY\n        }) as any\n      });\n      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n          if (inject.overrideExisting === 'throw') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          } else if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n            console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          }\n          continue;\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          if (isInfiniteQueryDefinition(definition)) {\n            const {\n              infiniteQueryOptions\n            } = definition;\n            const {\n              maxPages,\n              getPreviousPageParam\n            } = infiniteQueryOptions;\n            if (typeof maxPages === 'number') {\n              if (maxPages < 1) {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);\n              }\n              if (typeof getPreviousPageParam !== 'function') {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);\n              }\n            }\n          }\n        }\n        context.endpointDefinitions[endpointName] = definition;\n        for (const m of initializedModules) {\n          m.injectEndpoint(endpointName, definition);\n        }\n      }\n      return api as any;\n    }\n    return api.injectEndpoints({\n      endpoints: options.endpoints as any\n    });\n  };\n}","import type { QueryCacheKey } from './core/apiState';\nimport type { EndpointDefinition } from './endpointDefinitions';\nimport { isPlainObject } from './core/rtkImports';\nconst cache: WeakMap<any, string> | undefined = WeakMap ? new WeakMap() : undefined;\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\n  endpointName,\n  queryArgs\n}) => {\n  let serialized = '';\n  const cached = cache?.get(queryArgs);\n  if (typeof cached === 'string') {\n    serialized = cached;\n  } else {\n    const stringified = JSON.stringify(queryArgs, (key, value) => {\n      // Handle bigints\n      value = typeof value === 'bigint' ? {\n        $bigint: value.toString()\n      } : value;\n      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\n      value = isPlainObject(value) ? Object.keys(value).sort().reduce<any>((acc, key) => {\n        acc[key] = (value as any)[key];\n        return acc;\n      }, {}) : value;\n      return value;\n    });\n    if (isPlainObject(queryArgs)) {\n      cache?.set(queryArgs, stringified);\n    }\n    serialized = stringified;\n  }\n  return `${endpointName}(${serialized})`;\n};\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\n  queryArgs: QueryArgs;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => ReturnType;\nexport type InternalSerializeQueryArgs = (_: {\n  queryArgs: any;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => QueryCacheKey;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { BaseQueryFn } from './baseQueryTypes';\nexport const _NEVER = /* @__PURE__ */Symbol();\nexport type NEVER = typeof _NEVER;\n\n/**\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\n */\nexport function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}> {\n  return function () {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(33) : 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.');\n  };\n}","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import type { InternalHandlerBuilder, SubscriptionSelectors } from './types';\nimport type { SubscriptionInternalState, SubscriptionState } from '../apiState';\nimport { produceWithPatches } from '../../utils/immerImports';\nimport type { Action } from '@reduxjs/toolkit';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<[actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]> = ({\n  api,\n  queryThunk,\n  internalState,\n  mwApi\n}) => {\n  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n  let previousSubscriptions: SubscriptionState = null as unknown as SubscriptionState;\n  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null;\n  const {\n    updateSubscriptionOptions,\n    unsubscribeQueryResult\n  } = api.internalActions;\n\n  // Actually intentionally mutate the subscriptions state used in the middleware\n  // This is done to speed up perf when loading many components\n  const actuallyMutateSubscriptions = (currentSubscriptions: SubscriptionInternalState, action: Action) => {\n    if (updateSubscriptionOptions.match(action)) {\n      const {\n        queryCacheKey,\n        requestId,\n        options\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub?.has(requestId)) {\n        sub.set(requestId, options);\n      }\n      return true;\n    }\n    if (unsubscribeQueryResult.match(action)) {\n      const {\n        queryCacheKey,\n        requestId\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub) {\n        sub.delete(requestId);\n      }\n      return true;\n    }\n    if (api.internalActions.removeQueryResult.match(action)) {\n      currentSubscriptions.delete(action.payload.queryCacheKey);\n      return true;\n    }\n    if (queryThunk.pending.match(action)) {\n      const {\n        meta: {\n          arg,\n          requestId\n        }\n      } = action;\n      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n      if (arg.subscribe) {\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n      }\n      return true;\n    }\n    let mutated = false;\n    if (queryThunk.rejected.match(action)) {\n      const {\n        meta: {\n          condition,\n          arg,\n          requestId\n        }\n      } = action;\n      if (condition && arg.subscribe) {\n        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n        mutated = true;\n      }\n    }\n    return mutated;\n  };\n  const getSubscriptions = () => internalState.currentSubscriptions;\n  const getSubscriptionCount = (queryCacheKey: string) => {\n    const subscriptions = getSubscriptions();\n    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);\n    return subscriptionsForQueryArg?.size ?? 0;\n  };\n  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {\n    const subscriptions = getSubscriptions();\n    return !!subscriptions?.get(queryCacheKey)?.get(requestId);\n  };\n  const subscriptionSelectors: SubscriptionSelectors = {\n    getSubscriptions,\n    getSubscriptionCount,\n    isRequestSubscribed\n  };\n  function serializeSubscriptions(currentSubscriptions: SubscriptionInternalState): SubscriptionState {\n    // We now use nested Maps for subscriptions, instead of\n    // plain Records. Stringify this accordingly so we can\n    // convert it to the shape we need for the store.\n    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));\n  }\n  return (action, mwApi): [actionShouldContinue: boolean, result: SubscriptionSelectors | boolean] => {\n    if (!previousSubscriptions) {\n      // Initialize it the first time this handler runs\n      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);\n    }\n    if (api.util.resetApiState.match(action)) {\n      previousSubscriptions = {};\n      internalState.currentSubscriptions.clear();\n      updateSyncTimer = null;\n      return [true, false];\n    }\n\n    // Intercept requests by hooks to see if they're subscribed\n    // We return the internal state reference so that hooks\n    // can do their own checks to see if they're still active.\n    // It's stupid and hacky, but it does cut down on some dispatch calls.\n    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n      return [false, subscriptionSelectors];\n    }\n\n    // Update subscription data based on this action\n    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n    let actionShouldContinue = true;\n\n    // HACK Sneak the test-only polling state back out\n    if (process.env.NODE_ENV === 'test' && typeof action.type === 'string' && action.type === `${api.reducerPath}/getPolling`) {\n      return [false, internalState.currentPolls] as any;\n    }\n    if (didMutate) {\n      if (!updateSyncTimer) {\n        // We only use the subscription state for the Redux DevTools at this point,\n        // as the real data is kept here in the middleware.\n        // Given that, we can throttle synchronizing this state significantly to\n        // save on overall perf.\n        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.\n        updateSyncTimer = setTimeout(() => {\n          // Deep clone the current subscription data\n          const newSubscriptions: SubscriptionState = serializeSubscriptions(internalState.currentSubscriptions);\n          // Figure out a smaller diff between original and current\n          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);\n\n          // Sync the store state for visibility\n          mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n          // Save the cloned state for later reference\n          previousSubscriptions = newSubscriptions;\n          updateSyncTimer = null;\n        }, 500);\n      }\n      const isSubscriptionSliceAction = typeof action.type == 'string' && !!action.type.startsWith(subscriptionsPrefix);\n      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n    }\n    return [actionShouldContinue, false];\n  };\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { QueryDefinition } from '../../endpointDefinitions';\nimport type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState';\nimport { isAnyOf } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, QueryStateMeta, SubMiddlewareApi, TimeoutId } from './types';\nexport type ReferenceCacheCollection = never;\n\n/**\n * @example\n * ```ts\n * // codeblock-meta title=\"keepUnusedDataFor example\"\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => 'posts',\n *       // highlight-start\n *       keepUnusedDataFor: 5\n *       // highlight-end\n *     })\n *   })\n * })\n * ```\n */\nexport type CacheCollectionQueryExtraOptions = {\n  /**\n   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\n   *\n   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   */\n  keepUnusedDataFor?: number;\n};\n\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\n// it wraps and ends up executing immediately.\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647;\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1;\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  api,\n  queryThunk,\n  context,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectConfig\n  },\n  getRunningQueryThunk,\n  mwApi\n}) => {\n  const {\n    removeQueryResult,\n    unsubscribeQueryResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n  function anySubscriptionsRemainingForKey(queryCacheKey: string) {\n    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);\n    if (!subscriptions) {\n      return false;\n    }\n    const hasSubscriptions = subscriptions.size > 0;\n    return hasSubscriptions;\n  }\n  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {};\n  function abortAllPromises<T extends {\n    abort?: () => void;\n  }>(promiseMap: Map<string, T | undefined>): void {\n    for (const promise of promiseMap.values()) {\n      promise?.abort?.();\n    }\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    const state = mwApi.getState();\n    const config = selectConfig(state);\n    if (canTriggerUnsubscribe(action)) {\n      let queryCacheKeys: QueryCacheKey[];\n      if (cacheEntriesUpserted.match(action)) {\n        queryCacheKeys = action.payload.map(entry => entry.queryDescription.queryCacheKey);\n      } else {\n        const {\n          queryCacheKey\n        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n        queryCacheKeys = [queryCacheKey];\n      }\n      handleUnsubscribeMany(queryCacheKeys, mwApi, config);\n    }\n    if (api.util.resetApiState.match(action)) {\n      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n        if (timeout) clearTimeout(timeout);\n        delete currentRemovalTimeouts[key];\n      }\n      abortAllPromises(internalState.runningQueries);\n      abortAllPromises(internalState.runningMutations);\n    }\n    if (context.hasRehydrationInfo(action)) {\n      const {\n        queries\n      } = context.extractRehydrationInfo(action)!;\n      // Gotcha:\n      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\n      // will be used instead of the endpoint-specific one.\n      handleUnsubscribeMany(Object.keys(queries) as QueryCacheKey[], mwApi, config);\n    }\n  };\n  function handleUnsubscribeMany(cacheKeys: QueryCacheKey[], api: SubMiddlewareApi, config: ConfigState<string>) {\n    const state = api.getState();\n    for (const queryCacheKey of cacheKeys) {\n      const entry = selectQueryEntry(state, queryCacheKey);\n      if (entry?.endpointName) {\n        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config);\n      }\n    }\n  }\n  function handleUnsubscribe(queryCacheKey: QueryCacheKey, endpointName: string, api: SubMiddlewareApi, config: ConfigState<string>) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName) as QueryDefinition<any, any, any, any>;\n    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n    if (keepUnusedDataFor === Infinity) {\n      // Hey, user said keep this forever!\n      return;\n    }\n    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\n    // clamping the max value to be at most 1000ms less than the 32-bit max.\n    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\n    // Also avoid negative values too.\n    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n      const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n      if (currentTimeout) {\n        clearTimeout(currentTimeout);\n      }\n      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n          // Try to abort any running query for this cache key\n          const entry = selectQueryEntry(api.getState(), queryCacheKey);\n          if (entry?.endpointName) {\n            const runningQuery = api.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));\n            runningQuery?.abort();\n          }\n          api.dispatch(removeQueryResult({\n            queryCacheKey\n          }));\n        }\n        delete currentRemovalTimeouts![queryCacheKey];\n      }, finalKeepUnusedDataFor * 1000);\n    }\n  }\n  return handler;\n};","import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn, BaseQueryMeta, BaseQueryResult } from '../../baseQueryTypes';\nimport type { BaseEndpointDefinition, DefinitionType } from '../../endpointDefinitions';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { QueryCacheKey, RootState } from '../apiState';\nimport type { MutationResultSelectorResult, QueryResultSelectorResult } from '../buildSelectors';\nimport { getMutationCacheKey } from '../buildSlice';\nimport type { PatchCollection, Recipe } from '../buildThunks';\nimport { isAsyncThunkAction, isFulfilled } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseWithKnownReason, SubMiddlewareApi } from './types';\nimport { getEndpointDefinition } from '@internal/query/apiTypes';\nexport type ReferenceCacheLifecycle = never;\nexport interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): QueryResultSelectorResult<{\n    type: DefinitionType.query;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n  /**\n   * Updates the current cache entry value.\n   * For documentation see `api.util.updateQueryData`.\n   */\n  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;\n}\nexport type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): MutationResultSelectorResult<{\n    type: DefinitionType.mutation;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n};\ntype LifecycleApi<ReducerPath extends string = string> = {\n  /**\n   * The dispatch method for the store\n   */\n  dispatch: ThunkDispatch<any, any, UnknownAction>;\n  /**\n   * A method to get the current state\n   */\n  getState(): RootState<any, any, ReducerPath>;\n  /**\n   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\n   */\n  extra: unknown;\n  /**\n   * A unique ID generated for the mutation\n   */\n  requestId: string;\n};\ntype CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {\n  /**\n   * Promise that will resolve with the first value for this cache key.\n   * This allows you to `await` until an actual value is in cache.\n   *\n   * If the cache entry is removed from the cache before any value has ever\n   * been resolved, this Promise will reject with\n   * `new Error('Promise never resolved before cacheEntryRemoved.')`\n   * to prevent memory leaks.\n   * You can just re-throw that error (or not handle it at all) -\n   * it will be caught outside of `cacheEntryAdded`.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  cacheDataLoaded: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: MetaType;\n  }, typeof neverResolvedError>;\n  /**\n   * Promise that allows you to wait for the point in time when the cache entry\n   * has been removed from the cache, by not being used/subscribed to any more\n   * in the application for too long or by dispatching `api.util.resetApiState`.\n   */\n  cacheEntryRemoved: Promise<void>;\n};\nexport interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\nexport type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;\nexport type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nconst neverResolvedError = new Error('Promise never resolved before cacheEntryRemoved.') as Error & {\n  message: 'Promise never resolved before cacheEntryRemoved.';\n};\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  reducerPath,\n  context,\n  queryThunk,\n  mutationThunk,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectApiState\n  }\n}) => {\n  const isQueryThunk = isAsyncThunkAction(queryThunk);\n  const isMutationThunk = isAsyncThunkAction(mutationThunk);\n  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    valueResolved?(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    cacheEntryRemoved(): void;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const {\n    removeQueryResult,\n    removeMutationResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  function resolveLifecycleEntry(cacheKey: string, data: unknown, meta: unknown) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle?.valueResolved) {\n      lifecycle.valueResolved({\n        data,\n        meta\n      });\n      delete lifecycle.valueResolved;\n    }\n  }\n  function removeLifecycleEntry(cacheKey: string) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle) {\n      delete lifecycleMap[cacheKey];\n      lifecycle.cacheEntryRemoved();\n    }\n  }\n  function getActionMetaFields(action: ReturnType<typeof queryThunk.pending> | ReturnType<typeof mutationThunk.pending>) {\n    const {\n      arg,\n      requestId\n    } = action.meta;\n    const {\n      endpointName,\n      originalArgs\n    } = arg;\n    return [endpointName, originalArgs, requestId] as const;\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi, stateBefore) => {\n    const cacheKey = getCacheKey(action) as QueryCacheKey;\n    function checkForNewCacheKey(endpointName: string, cacheKey: QueryCacheKey, requestId: string, originalArgs: unknown) {\n      const oldEntry = selectQueryEntry(stateBefore, cacheKey);\n      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey);\n      if (!oldEntry && newEntry) {\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    }\n    if (queryThunk.pending.match(action)) {\n      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);\n    } else if (cacheEntriesUpserted.match(action)) {\n      for (const {\n        queryDescription,\n        value\n      } of action.payload) {\n        const {\n          endpointName,\n          originalArgs,\n          queryCacheKey\n        } = queryDescription;\n        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n        resolveLifecycleEntry(queryCacheKey, value, {});\n      }\n    } else if (mutationThunk.pending.match(action)) {\n      const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n      if (state) {\n        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    } else if (isFulfilledThunk(action)) {\n      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {\n      removeLifecycleEntry(cacheKey);\n    } else if (api.util.resetApiState.match(action)) {\n      for (const cacheKey of Object.keys(lifecycleMap)) {\n        removeLifecycleEntry(cacheKey);\n      }\n    }\n  };\n  function getCacheKey(action: any) {\n    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n    if (isMutationThunk(action)) {\n      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n    }\n    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;\n    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n    return '';\n  }\n  function handleNewKey(endpointName: string, originalArgs: any, queryCacheKey: string, mwApi: SubMiddlewareApi, requestId: string) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName);\n    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n    if (!onCacheEntryAdded) return;\n    const lifecycle = {} as CacheLifecycle;\n    const cacheEntryRemoved = new Promise<void>(resolve => {\n      lifecycle.cacheEntryRemoved = resolve;\n    });\n    const cacheDataLoaded: PromiseWithKnownReason<{\n      data: unknown;\n      meta: unknown;\n    }, typeof neverResolvedError> = Promise.race([new Promise<{\n      data: unknown;\n      meta: unknown;\n    }>(resolve => {\n      lifecycle.valueResolved = resolve;\n    }), cacheEntryRemoved.then(() => {\n      throw neverResolvedError;\n    })]);\n    // prevent uncaught promise rejections from happening.\n    // if the original promise is used in any way, that will create a new promise that will throw again\n    cacheDataLoaded.catch(() => {});\n    lifecycleMap[queryCacheKey] = lifecycle;\n    const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);\n    const extra = mwApi.dispatch((_, __, extra) => extra);\n    const lifecycleApi = {\n      ...mwApi,\n      getCacheEntry: () => selector(mwApi.getState()),\n      requestId,\n      extra,\n      updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n      cacheDataLoaded,\n      cacheEntryRemoved\n    };\n    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any);\n    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\n    Promise.resolve(runningHandler).catch(e => {\n      if (e === neverResolvedError) return;\n      throw e;\n    });\n  }\n  return handler;\n};","import type { InternalHandlerBuilder } from './types';\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\n  api,\n  context: {\n    apiUid\n  },\n  reducerPath\n}) => {\n  return (action, mwApi) => {\n    if (api.util.resetApiState.match(action)) {\n      // dispatch after api reset\n      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === 'conflict') {\n        console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === 'api' ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ''}`);\n      }\n    }\n  };\n};","import { isAnyOf, isFulfilled, isRejected, isRejectedWithValue } from '../rtkImports';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport { calculateProvidedBy } from '../../endpointDefinitions';\nimport type { CombinedState, QueryCacheKey } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport { calculateProvidedByThunk } from '../buildThunks';\nimport type { SubMiddlewareApi, InternalHandlerBuilder, ApiMiddlewareInternalHandler } from './types';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  context: {\n    endpointDefinitions\n  },\n  mutationThunk,\n  queryThunk,\n  api,\n  assertTagType,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));\n  let pendingTagInvalidations: FullTagDescription<string>[] = [];\n  // Track via counter so we can avoid iterating over state every time\n  let pendingRequestCount = 0;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {\n      pendingRequestCount++;\n    }\n    if (isQueryEnd(action)) {\n      pendingRequestCount = Math.max(0, pendingRequestCount - 1);\n    }\n    if (isThunkActionWithTags(action)) {\n      invalidateTags(calculateProvidedByThunk(action, 'invalidatesTags', endpointDefinitions, assertTagType), mwApi);\n    } else if (isQueryEnd(action)) {\n      invalidateTags([], mwApi);\n    } else if (api.util.invalidateTags.match(action)) {\n      invalidateTags(calculateProvidedBy(action.payload, undefined, undefined, undefined, undefined, assertTagType), mwApi);\n    }\n  };\n  function hasPendingRequests() {\n    return pendingRequestCount > 0;\n  }\n  function invalidateTags(newTags: readonly FullTagDescription<string>[], mwApi: SubMiddlewareApi) {\n    const rootState = mwApi.getState();\n    const state = rootState[reducerPath];\n    pendingTagInvalidations.push(...newTags);\n    if (state.config.invalidationBehavior === 'delayed' && hasPendingRequests()) {\n      return;\n    }\n    const tags = pendingTagInvalidations;\n    pendingTagInvalidations = [];\n    if (tags.length === 0) return;\n    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n    context.batch(() => {\n      const valuesArray = Array.from(toInvalidate.values());\n      for (const {\n        queryCacheKey\n      } of valuesArray) {\n        const querySubState = state.queries[queryCacheKey];\n        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);\n        if (querySubState) {\n          if (subscriptionSubState.size === 0) {\n            mwApi.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            mwApi.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { QueryCacheKey, QuerySubstateIdentifier, Subscribers, SubscribersInternal } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryStateMeta, SubMiddlewareApi, TimeoutId, InternalHandlerBuilder, ApiMiddlewareInternalHandler, InternalMiddlewareState } from './types';\nexport const buildPollingHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  queryThunk,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    currentPolls,\n    currentSubscriptions\n  } = internalState;\n\n  // Batching state for polling updates\n  const pendingPollingUpdates = new Set<string>();\n  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);\n    }\n    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);\n    }\n    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n      startNextPoll(action.meta.arg, mwApi);\n    }\n    if (api.util.resetApiState.match(action)) {\n      clearPolls();\n      // Clear any pending updates\n      if (pollingUpdateTimer) {\n        clearTimeout(pollingUpdateTimer);\n        pollingUpdateTimer = null;\n      }\n      pendingPollingUpdates.clear();\n    }\n  };\n  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {\n    pendingPollingUpdates.add(queryCacheKey);\n    if (!pollingUpdateTimer) {\n      pollingUpdateTimer = setTimeout(() => {\n        // Process all pending updates in a single batch\n        for (const key of pendingPollingUpdates) {\n          updatePollingInterval({\n            queryCacheKey: key as any\n          }, api);\n        }\n        pendingPollingUpdates.clear();\n        pollingUpdateTimer = null;\n      }, 0);\n    }\n  }\n  function startNextPoll({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;\n    const {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    } = findLowestPollingInterval(subscriptions);\n    if (!Number.isFinite(lowestPollingInterval)) return;\n    const currentPoll = currentPolls.get(queryCacheKey);\n    if (currentPoll?.timeout) {\n      clearTimeout(currentPoll.timeout);\n      currentPoll.timeout = undefined;\n    }\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    currentPolls.set(queryCacheKey, {\n      nextPollTimestamp,\n      pollingInterval: lowestPollingInterval,\n      timeout: setTimeout(() => {\n        if (state.config.focused || !skipPollingIfUnfocused) {\n          api.dispatch(refetchQuery(querySubState));\n        }\n        startNextPoll({\n          queryCacheKey\n        }, api);\n      }, lowestPollingInterval)\n    });\n  }\n  function updatePollingInterval({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {\n      return;\n    }\n    const {\n      lowestPollingInterval\n    } = findLowestPollingInterval(subscriptions);\n\n    // HACK add extra data to track how many times this has been called in tests\n    // yes we're mutating a nonexistent field on a Map here\n    if (process.env.NODE_ENV === 'test') {\n      const updateCounters = (currentPolls as any).pollUpdateCounters ??= {};\n      updateCounters[queryCacheKey] ??= 0;\n      updateCounters[queryCacheKey]++;\n    }\n    if (!Number.isFinite(lowestPollingInterval)) {\n      cleanupPollForKey(queryCacheKey);\n      return;\n    }\n    const currentPoll = currentPolls.get(queryCacheKey);\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n      startNextPoll({\n        queryCacheKey\n      }, api);\n    }\n  }\n  function cleanupPollForKey(key: string) {\n    const existingPoll = currentPolls.get(key);\n    if (existingPoll?.timeout) {\n      clearTimeout(existingPoll.timeout);\n    }\n    currentPolls.delete(key);\n  }\n  function clearPolls() {\n    for (const key of currentPolls.keys()) {\n      cleanupPollForKey(key);\n    }\n  }\n  function findLowestPollingInterval(subscribers: SubscribersInternal = new Map()) {\n    let skipPollingIfUnfocused: boolean | undefined = false;\n    let lowestPollingInterval = Number.POSITIVE_INFINITY;\n    for (const entry of subscribers.values()) {\n      if (!!entry.pollingInterval) {\n        lowestPollingInterval = Math.min(entry.pollingInterval!, lowestPollingInterval);\n        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;\n      }\n    }\n    return {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    };\n  }\n  return handler;\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { BaseQueryError, BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { Recipe } from '../buildThunks';\nimport { isFulfilled, isPending, isRejected } from '../rtkImports';\nimport type { MutationBaseLifecycleApi, QueryBaseLifecycleApi } from './cacheLifecycle';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseConstructorWithKnownReason, PromiseWithKnownReason } from './types';\nexport type ReferenceQueryLifecycle = never;\ntype QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {\n  /**\n   * Promise that will resolve with the (transformed) query result.\n   *\n   * If the query fails, this promise will reject with the error.\n   *\n   * This allows you to `await` for the query to finish.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  queryFulfilled: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: BaseQueryMeta<BaseQuery>;\n  }, QueryFulfilledRejectionReason<BaseQuery>>;\n};\ntype QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {\n  error: BaseQueryError<BaseQuery>;\n  /**\n   * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\n   */\n  isUnhandledError: false;\n  /**\n   * The `meta` returned by the `baseQuery`\n   */\n  meta: BaseQueryMeta<BaseQuery>;\n} | {\n  error: unknown;\n  meta?: undefined;\n  /**\n   * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\n   * There can not be made any assumption about the shape of `error`.\n   */\n  isUnhandledError: true;\n};\nexport type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used to perform side-effects throughout the lifecycle of the query.\n   *\n   * @example\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * import { messageCreated } from './notificationsSlice\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {\n   *         // `onStart` side-effect\n   *         dispatch(messageCreated('Fetching posts...'))\n   *         try {\n   *           const { data } = await queryFulfilled\n   *           // `onSuccess` side-effect\n   *           dispatch(messageCreated('Posts received!'))\n   *         } catch (err) {\n   *           // `onError` side-effect\n   *           dispatch(messageCreated('Error fetching posts!'))\n   *         }\n   *       }\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used for `optimistic updates`.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       providesTags: ['Post'],\n   *     }),\n   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\n   *       query: ({ id, ...patch }) => ({\n   *         url: `post/${id}`,\n   *         method: 'PATCH',\n   *         body: patch,\n   *       }),\n   *       invalidatesTags: ['Post'],\n   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\n   *         const patchResult = dispatch(\n   *           api.util.updateQueryData('getPost', id, (draft) => {\n   *             Object.assign(draft, patch)\n   *           })\n   *         )\n   *         try {\n   *           await queryFulfilled\n   *         } catch {\n   *           patchResult.undo()\n   *         }\n   *       },\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {}\nexport type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific query.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, QueryArgument>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedQueryOnQueryStarted<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async (queryArgument, { dispatch, queryFulfilled }) => {\n *   const result = await queryFulfilled\n *\n *   const { posts } = result.data\n *\n *   // Pre-fill the individual post entries with the results\n *   // from the list endpoint query\n *   dispatch(\n *     baseApiSlice.util.upsertQueryEntries(\n *       posts.map((post) => ({\n *         endpointName: 'getPostById',\n *         arg: post.id,\n *         value: post,\n *       })),\n *     ),\n *   )\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({\n *       query: (userId) => `/posts/user/${userId}`,\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific mutation.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = Pick<Post, 'id'> & Partial<Post>\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, number>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedMutationOnQueryStarted<\n *   Post,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {\n *   const patchCollection = dispatch(\n *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {\n *       Object.assign(draftPost, patch)\n *     }),\n *   )\n *\n *   try {\n *     await queryFulfilled\n *   } catch {\n *     patchCollection.undo()\n *   }\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({\n *       query: (body) => ({\n *         url: `posts/add`,\n *         method: 'POST',\n *         body,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *\n *     updatePost: build.mutation<Post, QueryArgument>({\n *       query: ({ id, ...patch }) => ({\n *         url: `post/${id}`,\n *         method: 'PATCH',\n *         body: patch,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  context,\n  queryThunk,\n  mutationThunk\n}) => {\n  const isPendingThunk = isPending(queryThunk, mutationThunk);\n  const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    resolve(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    reject(value: QueryFulfilledRejectionReason<any>): unknown;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (isPendingThunk(action)) {\n      const {\n        requestId,\n        arg: {\n          endpointName,\n          originalArgs\n        }\n      } = action.meta;\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const onQueryStarted = endpointDefinition?.onQueryStarted;\n      if (onQueryStarted) {\n        const lifecycle = {} as CacheLifecycle;\n        const queryFulfilled = new (Promise as PromiseConstructorWithKnownReason)<{\n          data: unknown;\n          meta: unknown;\n        }, QueryFulfilledRejectionReason<any>>((resolve, reject) => {\n          lifecycle.resolve = resolve;\n          lifecycle.reject = reject;\n        });\n        // prevent uncaught promise rejections from happening.\n        // if the original promise is used in any way, that will create a new promise that will throw again\n        queryFulfilled.catch(() => {});\n        lifecycleMap[requestId] = lifecycle;\n        const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);\n        const extra = mwApi.dispatch((_, __, extra) => extra);\n        const lifecycleApi = {\n          ...mwApi,\n          getCacheEntry: () => selector(mwApi.getState()),\n          requestId,\n          extra,\n          updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n          queryFulfilled\n        };\n        onQueryStarted(originalArgs, lifecycleApi as any);\n      }\n    } else if (isFullfilledThunk(action)) {\n      const {\n        requestId,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.resolve({\n        data: action.payload,\n        meta: baseQueryMeta\n      });\n      delete lifecycleMap[requestId];\n    } else if (isRejectedThunk(action)) {\n      const {\n        requestId,\n        rejectedWithValue,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.reject({\n        error: action.payload ?? action.error,\n        isUnhandledError: !rejectedWithValue,\n        meta: baseQueryMeta as any\n      });\n      delete lifecycleMap[requestId];\n    }\n  };\n  return handler;\n};","import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryCacheKey } from '../apiState';\nimport { onFocus, onOnline } from '../setupListeners';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, SubMiddlewareApi } from './types';\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (onFocus.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnFocus');\n    }\n    if (onOnline.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnReconnect');\n    }\n  };\n  function refetchValidQueries(api: SubMiddlewareApi, type: 'refetchOnFocus' | 'refetchOnReconnect') {\n    const state = api.getState()[reducerPath];\n    const queries = state.queries;\n    const subscriptions = internalState.currentSubscriptions;\n    context.batch(() => {\n      for (const queryCacheKey of subscriptions.keys()) {\n        const querySubState = queries[queryCacheKey];\n        const subscriptionSubState = subscriptions.get(queryCacheKey);\n        if (!subscriptionSubState || !querySubState) continue;\n        const values = [...subscriptionSubState.values()];\n        const shouldRefetch = values.some(sub => sub[type] === true) || values.every(sub => sub[type] === undefined) && state.config[type];\n        if (shouldRefetch) {\n          if (subscriptionSubState.size === 0) {\n            api.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            api.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { Action, Middleware, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState';\nimport type { QueryThunkArg } from '../buildThunks';\nimport { createAction, isAction } from '../rtkImports';\nimport { buildBatchedActionsHandler } from './batchActions';\nimport { buildCacheCollectionHandler } from './cacheCollection';\nimport { buildCacheLifecycleHandler } from './cacheLifecycle';\nimport { buildDevCheckHandler } from './devMiddleware';\nimport { buildInvalidationByTagsHandler } from './invalidationByTags';\nimport { buildPollingHandler } from './polling';\nimport { buildQueryLifecycleHandler } from './queryLifecycle';\nimport type { BuildMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState } from './types';\nimport { buildWindowEventHandler } from './windowEventHandling';\nimport type { ApiEndpointQuery } from '../module';\nexport type { ReferenceCacheCollection } from './cacheCollection';\nexport type { MutationCacheLifecycleApi, QueryCacheLifecycleApi, ReferenceCacheLifecycle } from './cacheLifecycle';\nexport type { MutationLifecycleApi, QueryLifecycleApi, ReferenceQueryLifecycle, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './queryLifecycle';\nexport type { SubscriptionSelectors } from './types';\nexport function buildMiddleware<Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\n  const {\n    reducerPath,\n    queryThunk,\n    api,\n    context,\n    getInternalState\n  } = input;\n  const {\n    apiUid\n  } = context;\n  const actions = {\n    invalidateTags: createAction<Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>>(`${reducerPath}/invalidateTags`)\n  };\n  const isThisApiSliceAction = (action: Action) => action.type.startsWith(`${reducerPath}/`);\n  const handlerBuilders: InternalHandlerBuilder[] = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n  const middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>> = mwApi => {\n    let initialized = false;\n    const internalState = getInternalState(mwApi.dispatch);\n    const builderArgs = {\n      ...(input as any as BuildMiddlewareInput<EndpointDefinitions, string, string>),\n      internalState,\n      refetchQuery,\n      isThisApiSliceAction,\n      mwApi\n    };\n    const handlers = handlerBuilders.map(build => build(builderArgs));\n    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n    const windowEventsHandler = buildWindowEventHandler(builderArgs);\n    return next => {\n      return action => {\n        if (!isAction(action)) {\n          return next(action);\n        }\n        if (!initialized) {\n          initialized = true;\n          // dispatch before any other action\n          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n        }\n        const mwApiWithNext = {\n          ...mwApi,\n          next\n        };\n        const stateBefore = mwApi.getState();\n        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n        let res: any;\n        if (actionShouldContinue) {\n          res = next(action);\n        } else {\n          res = internalProbeResult;\n        }\n        if (!!mwApi.getState()[reducerPath]) {\n          // Only run these checks if the middleware is registered okay\n\n          // This looks for actions that aren't specific to the API slice\n          windowEventsHandler(action, mwApiWithNext, stateBefore);\n          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n            // Only run these additional checks if the actions are part of the API slice,\n            // or the action has hydration-related data\n            for (const handler of handlers) {\n              handler(action, mwApiWithNext, stateBefore);\n            }\n          }\n        }\n        return res;\n      };\n    };\n  };\n  return {\n    middleware,\n    actions\n  };\n  function refetchQuery(querySubState: Exclude<QuerySubState<any>, {\n    status: QueryStatus.uninitialized;\n  }>) {\n    return (input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<any, any>).initiate(querySubState.originalArgs as any, {\n      subscribe: false,\n      forceRefetch: true\n    });\n  }\n}","/**\n * Note: this file should import all other files for type discovery and declaration merging\n */\nimport type { ActionCreatorWithPayload, Dispatch, Middleware, Reducer, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport { enablePatches } from '../utils/immerImports';\nimport type { Api, Module } from '../apiTypes';\nimport type { BaseQueryFn } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinitions, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, TagDescription } from '../endpointDefinitions';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { assertCast, safeAssign } from '../tsHelpers';\nimport type { CombinedState, MutationKeys, QueryKeys, RootState } from './apiState';\nimport type { BuildInitiateApiEndpointMutation, BuildInitiateApiEndpointQuery, MutationActionCreatorResult, QueryActionCreatorResult, InfiniteQueryActionCreatorResult, BuildInitiateApiEndpointInfiniteQuery } from './buildInitiate';\nimport { buildInitiate } from './buildInitiate';\nimport type { ReferenceCacheCollection, ReferenceCacheLifecycle, ReferenceQueryLifecycle } from './buildMiddleware';\nimport { buildMiddleware } from './buildMiddleware';\nimport type { BuildSelectorsApiEndpointInfiniteQuery, BuildSelectorsApiEndpointMutation, BuildSelectorsApiEndpointQuery } from './buildSelectors';\nimport { buildSelectors } from './buildSelectors';\nimport type { SliceActions, UpsertEntries } from './buildSlice';\nimport { buildSlice } from './buildSlice';\nimport type { AllQueryKeys, BuildThunksApiEndpointInfiniteQuery, BuildThunksApiEndpointMutation, BuildThunksApiEndpointQuery, PatchQueryDataThunk, QueryArgFromAnyQueryDefinition, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nimport { buildThunks } from './buildThunks';\nimport { createSelector as _createSelector } from './rtkImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nimport { getOrInsertComputed } from '../utils';\nimport type { CreateSelectorFunction } from 'reselect';\n\n/**\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\n *\n * @overloadSummary\n * `force`\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\n */\nexport type PrefetchOptions = {\n  ifOlderThan?: false | number;\n} | {\n  force?: boolean;\n};\nexport const coreModuleName = /* @__PURE__ */Symbol();\nexport type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;\nexport type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;\nexport interface ApiModules<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nBaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {\n  [coreModuleName]: {\n    /**\n     * This api's reducer should be mounted at `store[api.reducerPath]`.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducerPath: ReducerPath;\n    /**\n     * Internal actions not part of the public API. Note: These are subject to change at any given time.\n     */\n    internalActions: InternalActions;\n    /**\n     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;\n    /**\n     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;\n    /**\n     * A collection of utility thunks for various situations.\n     */\n    util: {\n      /**\n       * A thunk that (if dispatched) will return a specific running query, identified\n       * by `endpointName` and `arg`.\n       * If that query is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific query triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'query';\n      }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'infinitequery';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return a specific running mutation, identified\n       * by `endpointName` and `fixedCacheKey` or `requestId`.\n       * If that mutation is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific mutation triggered in any way,\n       * including via hook trigger functions or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {\n        type: 'mutation';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return all running queries.\n       *\n       * Useful for SSR scenarios to await all running queries triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;\n\n      /**\n       * A thunk that (if dispatched) will return all running mutations.\n       *\n       * Useful for SSR scenarios to await all running mutations triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;\n\n      /**\n       * A Redux thunk that can be used to manually trigger pre-fetching of data.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\n       *\n       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\n       *\n       * @example\n       *\n       * ```ts no-transpile\n       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\n       * ```\n       */\n      prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;\n      /**\n       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\n       *\n       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\n       *\n       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\n       *\n       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\n       *\n       * @example\n       *\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       * ```\n       */\n      updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\n       *\n       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\n       *\n       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\n       *\n       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\n       *\n       * @example\n       *\n       * ```ts\n       * await dispatch(\n       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\n       * )\n       * ```\n       */\n      upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n      /**\n       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\n       *\n       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\n       *\n       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\n       *\n       * @example\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       *\n       * // later\n       * dispatch(\n       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\n       * )\n       *\n       * // or\n       * patchCollection.undo()\n       * ```\n       */\n      patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.resetApiState())\n       * ```\n       */\n      resetApiState: SliceActions['resetApiState'];\n      upsertQueryEntries: UpsertEntries<Definitions>;\n\n      /**\n       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\n       *\n       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\n       *\n       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\n       *\n       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\n       *\n       * - `[TagType]`\n       * - `[{ type: TagType }]`\n       * - `[{ type: TagType, id: number | string }]`\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.invalidateTags(['Post']))\n       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\n       * dispatch(\n       *   api.util.invalidateTags([\n       *     { type: 'Post', id: 1 },\n       *     { type: 'Post', id: 'LIST' },\n       *   ])\n       * )\n       * ```\n       */\n      invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;\n\n      /**\n       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{\n        endpointName: string;\n        originalArgs: any;\n        queryCacheKey: string;\n      }>;\n\n      /**\n       * A function to select all arguments currently cached for a given endpoint.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;\n    };\n    /**\n     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\n     */\n    endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never };\n  };\n}\nexport interface ApiEndpointQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends QueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport interface ApiEndpointInfiniteQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends InfiniteQueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface ApiEndpointMutation<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends MutationDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport type ListenerActions = {\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n};\nexport type InternalActions = SliceActions & ListenerActions;\nexport interface CoreModuleOptions {\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\n *\n * @example\n * ```ts\n * const createBaseApi = buildCreateApi(coreModule());\n * ```\n */\nexport const coreModule = ({\n  createSelector = _createSelector\n}: CoreModuleOptions = {}): Module<CoreModule> => ({\n  name: coreModuleName,\n  init(api, {\n    baseQuery,\n    tagTypes,\n    reducerPath,\n    serializeQueryArgs,\n    keepUnusedDataFor,\n    refetchOnMountOrArgChange,\n    refetchOnFocus,\n    refetchOnReconnect,\n    invalidationBehavior,\n    onSchemaFailure,\n    catchSchemaFailure,\n    skipSchemaValidation\n  }, context) {\n    enablePatches();\n    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs);\n    const assertTagType: AssertTagTypes = tag => {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        if (!tagTypes.includes(tag.type as any)) {\n          console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n        }\n      }\n      return tag;\n    };\n    Object.assign(api, {\n      reducerPath,\n      endpoints: {},\n      internalActions: {\n        onOnline,\n        onOffline,\n        onFocus,\n        onFocusLost\n      },\n      util: {}\n    });\n    const selectors = buildSelectors({\n      serializeQueryArgs: serializeQueryArgs as any,\n      reducerPath,\n      createSelector\n    });\n    const {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery,\n      buildQuerySelector,\n      buildInfiniteQuerySelector,\n      buildMutationSelector\n    } = selectors;\n    safeAssign(api.util, {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery\n    });\n    const {\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      buildMatchThunkActions\n    } = buildThunks({\n      baseQuery,\n      reducerPath,\n      context,\n      api,\n      serializeQueryArgs,\n      assertTagType,\n      selectors,\n      onSchemaFailure,\n      catchSchemaFailure,\n      skipSchemaValidation\n    });\n    const {\n      reducer,\n      actions: sliceActions\n    } = buildSlice({\n      context,\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      serializeQueryArgs,\n      reducerPath,\n      assertTagType,\n      config: {\n        refetchOnFocus,\n        refetchOnReconnect,\n        refetchOnMountOrArgChange,\n        keepUnusedDataFor,\n        reducerPath,\n        invalidationBehavior\n      }\n    });\n    safeAssign(api.util, {\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      resetApiState: sliceActions.resetApiState,\n      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any\n    });\n    safeAssign(api.internalActions, sliceActions);\n    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>();\n    const getInternalState = (dispatch: Dispatch) => {\n      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({\n        currentSubscriptions: new Map(),\n        currentPolls: new Map(),\n        runningQueries: new Map(),\n        runningMutations: new Map()\n      }));\n      return state;\n    };\n    const {\n      buildInitiateQuery,\n      buildInitiateInfiniteQuery,\n      buildInitiateMutation,\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueriesThunk,\n      getRunningQueryThunk\n    } = buildInitiate({\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      serializeQueryArgs: serializeQueryArgs as any,\n      context,\n      getInternalState\n    });\n    safeAssign(api.util, {\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueryThunk,\n      getRunningQueriesThunk\n    });\n    const {\n      middleware,\n      actions: middlewareActions\n    } = buildMiddleware({\n      reducerPath,\n      context,\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      assertTagType,\n      selectors,\n      getRunningQueryThunk,\n      getInternalState\n    });\n    safeAssign(api.util, middlewareActions);\n    safeAssign(api, {\n      reducer: reducer as any,\n      middleware\n    });\n    return {\n      name: coreModuleName,\n      injectEndpoint(endpointName, definition) {\n        const anyApi = api as any as Api<any, Record<string, any>, string, string, CoreModule>;\n        const endpoint = anyApi.endpoints[endpointName] ??= {} as any;\n        if (isQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildQuerySelector(endpointName, definition),\n            initiate: buildInitiateQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n        if (isMutationDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildMutationSelector(),\n            initiate: buildInitiateMutation(endpointName)\n          }, buildMatchThunkActions(mutationThunk, endpointName));\n        }\n        if (isInfiniteQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildInfiniteQuerySelector(endpointName, definition),\n            initiate: buildInitiateInfiniteQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n      }\n    };\n  }\n});","import { buildCreateApi } from '../createApi';\nimport { coreModule } from './module';\nexport const createApi = /* @__PURE__ */buildCreateApi(coreModule());\nexport { QueryStatus } from './apiState';\nexport type { CombinedState, InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationKeys, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './apiState';\nexport type { InfiniteQueryActionCreatorResult, MutationActionCreatorResult, QueryActionCreatorResult, StartQueryActionCreatorOptions } from './buildInitiate';\nexport type { MutationCacheLifecycleApi, MutationLifecycleApi, QueryCacheLifecycleApi, QueryLifecycleApi, SubscriptionSelectors, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './buildMiddleware/index';\nexport { skipToken } from './buildSelectors';\nexport type { InfiniteQueryResultSelectorResult, MutationResultSelectorResult, QueryResultSelectorResult, SkipToken } from './buildSelectors';\nexport type { SliceActions } from './buildSlice';\nexport type { PatchQueryDataThunk, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nexport { coreModuleName } from './module';\nexport type { ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, CoreModule, InternalActions, PrefetchOptions, ThunkWithReturnValue } from './module';\nexport { setupListeners } from './setupListeners';\nexport { buildCreateApi, coreModule };"],"mappings":"ubAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,sBAAAE,GAAA,gBAAAC,GAAA,WAAAC,GAAA,mBAAAC,GAAA,8BAAAC,GAAA,eAAAC,GAAA,mBAAAC,GAAA,cAAAC,GAAA,8BAAAC,GAAA,kBAAAC,GAAA,mBAAAC,GAAA,UAAAC,GAAA,mBAAAC,GAAA,cAAAC,KAAA,eAAAC,GAAAhB,ICkEO,IAAKiB,QACVA,EAAA,cAAgB,gBAChBA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,SAAW,WAJDA,QAAA,IAQCC,EAAuB,gBACvBC,GAAiB,UACjBC,GAAmB,YACnBC,GAAkB,WA0BxB,SAASC,GAAsBC,EAAyC,CAC7E,MAAO,CACL,OAAAA,EACA,gBAAiBA,IAAWL,EAC5B,UAAWK,IAAWJ,GACtB,UAAWI,IAAWH,GACtB,QAASG,IAAWF,EACtB,CACF,CC3GA,IAAAG,EAAoR,4BCDpR,IAAMC,GAAqC,gBAEpC,SAASC,GAA0BC,EAAaC,EAAkB,CACvE,GAAID,IAAWC,GAAU,EAAEH,GAAcE,CAAM,GAAKF,GAAcG,CAAM,GAAK,MAAM,QAAQD,CAAM,GAAK,MAAM,QAAQC,CAAM,GACxH,OAAOA,EAET,IAAMC,EAAU,OAAO,KAAKD,CAAM,EAC5BE,EAAU,OAAO,KAAKH,CAAM,EAC9BI,EAAeF,EAAQ,SAAWC,EAAQ,OACxCE,EAAgB,MAAM,QAAQJ,CAAM,EAAI,CAAC,EAAI,CAAC,EACpD,QAAWK,KAAOJ,EAChBG,EAASC,CAAG,EAAIP,GAA0BC,EAAOM,CAAG,EAAGL,EAAOK,CAAG,CAAC,EAC9DF,IAAcA,EAAeJ,EAAOM,CAAG,IAAMD,EAASC,CAAG,GAE/D,OAAOF,EAAeJ,EAASK,CACjC,CCfO,SAASE,GAAgBC,EAAqBC,EAAgDC,EAAkD,CACrJ,OAAOF,EAAM,OAAoB,CAACG,EAAKC,EAAMC,KACvCJ,EAAUG,EAAaC,CAAC,GAC1BF,EAAI,KAAKD,EAAOE,EAAaC,CAAC,CAAC,EAE1BF,GACN,CAAC,CAAC,EAAE,KAAK,CACd,CCJO,SAASG,GAAcC,EAAa,CACzC,OAAO,IAAI,OAAO,SAAS,EAAE,KAAKA,CAAG,CACvC,CCJO,SAASC,IAA6B,CAE3C,OAAI,OAAO,SAAa,IACf,GAGF,SAAS,kBAAoB,QACtC,CCXO,SAASC,GAAgBC,EAAiC,CAC/D,OAAOA,GAAK,IACd,CACO,SAASC,GAAuBC,EAAmB,CACxD,MAAO,CAAC,GAAIA,GAAK,OAAO,GAAK,CAAC,CAAE,EAAE,OAAOH,EAAY,CACvD,CCDO,SAASI,IAAW,CAEzB,OAAO,OAAO,UAAc,KAAqB,UAAU,SAAW,OAA5B,GAA+C,UAAU,MACrG,CCNA,IAAMC,GAAwBC,GAAgBA,EAAI,QAAQ,MAAO,EAAE,EAC7DC,GAAuBD,GAAgBA,EAAI,QAAQ,MAAO,EAAE,EAC3D,SAASE,GAASC,EAA0BH,EAAiC,CAClF,GAAI,CAACG,EACH,OAAOH,EAET,GAAI,CAACA,EACH,OAAOG,EAET,GAAIC,GAAcJ,CAAG,EACnB,OAAOA,EAET,IAAMK,EAAYF,EAAK,SAAS,GAAG,GAAK,CAACH,EAAI,WAAW,GAAG,EAAI,IAAM,GACrE,OAAAG,EAAOJ,GAAqBI,CAAI,EAChCH,EAAMC,GAAoBD,CAAG,EACtB,GAAGG,CAAI,GAAGE,CAAS,GAAGL,CAAG,EAClC,CCLO,SAASM,GAAyCC,EAAgCC,EAAQC,EAA2B,CAC1H,OAAIF,EAAI,IAAIC,CAAG,EAAUD,EAAI,IAAIC,CAAG,EAC7BD,EAAI,IAAIC,EAAKC,EAAQD,CAAG,CAAC,EAAE,IAAIA,CAAG,CAC3C,CACO,IAAME,GAAe,IAAM,IAAI,ICf/B,IAAMC,GAAiBC,GAAyB,CACrD,IAAMC,EAAkB,IAAI,gBAC5B,kBAAW,IAAM,CACf,IAAMC,EAAU,mBACVC,EAAO,eACbF,EAAgB,MAEhB,OAAO,aAAiB,IAAc,IAAI,aAAaC,EAASC,CAAI,EAAI,OAAO,OAAO,IAAI,MAAMD,CAAO,EAAG,CACxG,KAAAC,CACF,CAAC,CAAC,CACJ,EAAGH,CAAY,EACRC,EAAgB,MACzB,EAGaG,GAAY,IAAIC,IAA2B,CAEtD,QAAWC,KAAUD,EAAS,GAAIC,EAAO,QAAS,OAAO,YAAY,MAAMA,EAAO,MAAM,EAGxF,IAAML,EAAkB,IAAI,gBAC5B,QAAWK,KAAUD,EACnBC,EAAO,iBAAiB,QAAS,IAAML,EAAgB,MAAMK,EAAO,MAAM,EAAG,CAC3E,OAAQL,EAAgB,OACxB,KAAM,EACR,CAAC,EAEH,OAAOA,EAAgB,MACzB,ECHA,IAAMM,GAA+B,IAAIC,IAAS,MAAM,GAAGA,CAAI,EACzDC,GAAyBC,GAAuBA,EAAS,QAAU,KAAOA,EAAS,QAAU,IAC7FC,GAA4BC,GAAiC,yBAAyB,KAAKA,EAAQ,IAAI,cAAc,GAAK,EAAE,EA4ClI,SAASC,GAAeC,EAAU,CAChC,GAAI,IAAC,iBAAcA,CAAG,EACpB,OAAOA,EAET,IAAMC,EAA4B,CAChC,GAAGD,CACL,EACA,OAAW,CAACE,EAAGC,CAAC,IAAK,OAAO,QAAQF,CAAI,EAClCE,IAAM,QAAW,OAAOF,EAAKC,CAAC,EAEpC,OAAOD,CACT,CAGA,IAAMG,GAAiBC,GAAc,OAAOA,GAAS,cAAa,iBAAcA,CAAI,GAAK,MAAM,QAAQA,CAAI,GAAK,OAAOA,EAAK,QAAW,YAgFhI,SAASC,GAAe,CAC7B,QAAAC,EACA,eAAAC,EAAiBC,GAAKA,EACtB,QAAAC,EAAUjB,GACV,iBAAAkB,EACA,kBAAAC,EAAoBf,GACpB,gBAAAgB,EAAkB,mBAClB,aAAAC,EACA,QAASC,EACT,gBAAiBC,EACjB,eAAgBC,EAChB,GAAGC,CACL,EAAwB,CAAC,EAA0F,CACjH,OAAI,OAAO,MAAU,KAAeR,IAAYjB,IAC9C,QAAQ,KAAK,2HAA2H,EAEnI,MAAO0B,EAAKC,EAAKC,IAAiB,CACvC,GAAM,CACJ,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,KAAAC,CACF,EAAIN,EACAO,EACA,CACF,IAAAC,EACA,QAAA9B,EAAU,IAAI,QAAQoB,EAAiB,OAAO,EAC9C,OAAAW,EAAS,OACT,gBAAAC,EAAkBd,GAAyB,OAC3C,eAAAe,EAAiBd,GAAwBtB,GACzC,QAAAqC,EAAUjB,EACV,GAAGkB,CACL,EAAI,OAAOd,GAAO,SAAW,CAC3B,IAAKA,CACP,EAAIA,EACAe,EAAsB,CACxB,GAAGhB,EACH,OAAQc,EAAUG,GAAUf,EAAI,OAAQgB,GAAcJ,CAAO,CAAC,EAAIZ,EAAI,OACtE,GAAGa,CACL,EACAnC,EAAU,IAAI,QAAQC,GAAeD,CAAO,CAAC,EAC7CoC,EAAO,QAAW,MAAM1B,EAAeV,EAAS,CAC9C,SAAAwB,EACA,IAAAH,EACA,MAAAI,EACA,SAAAC,EACA,OAAAC,EACA,KAAAC,EACA,aAAAL,CACF,CAAC,GAAMvB,EACP,IAAMuC,EAAoBjC,GAAc8B,EAAO,IAAI,EAuBnD,GAnBIA,EAAO,MAAQ,MAAQ,CAACG,GAAqB,OAAOH,EAAO,MAAS,UACtEA,EAAO,QAAQ,OAAO,cAAc,EAElC,CAACA,EAAO,QAAQ,IAAI,cAAc,GAAKG,GACzCH,EAAO,QAAQ,IAAI,eAAgBrB,CAAe,EAEhDwB,GAAqBzB,EAAkBsB,EAAO,OAAO,IACvDA,EAAO,KAAO,KAAK,UAAUA,EAAO,KAAMpB,CAAY,GAInDoB,EAAO,QAAQ,IAAI,QAAQ,IAC1BJ,IAAoB,OACtBI,EAAO,QAAQ,IAAI,SAAU,kBAAkB,EACtCJ,IAAoB,QAC7BI,EAAO,QAAQ,IAAI,SAAU,4BAA4B,GAIzDL,EAAQ,CACV,IAAMS,EAAU,CAACV,EAAI,QAAQ,GAAG,EAAI,IAAM,IACpCW,EAAQ5B,EAAmBA,EAAiBkB,CAAM,EAAI,IAAI,gBAAgB9B,GAAe8B,CAAM,CAAC,EACtGD,GAAOU,EAAUC,CACnB,CACAX,EAAMY,GAASjC,EAASqB,CAAG,EAC3B,IAAMa,EAAU,IAAI,QAAQb,EAAKM,CAAM,EAEvCP,EAAO,CACL,QAFmB,IAAI,QAAQC,EAAKM,CAAM,CAG5C,EACA,IAAItC,EACJ,GAAI,CACFA,EAAW,MAAMc,EAAQ+B,CAAO,CAClC,OAASC,EAAG,CACV,MAAO,CACL,MAAO,CACL,QAASA,aAAa,OAAS,OAAO,aAAiB,KAAeA,aAAa,eAAiBA,EAAE,OAAS,eAAiB,gBAAkB,cAClJ,MAAO,OAAOA,CAAC,CACjB,EACA,KAAAf,CACF,CACF,CACA,IAAMgB,EAAgB/C,EAAS,MAAM,EACrC+B,EAAK,SAAWgB,EAChB,IAAIC,EACAC,EAAuB,GAC3B,GAAI,CACF,IAAIC,EAKJ,GAJA,MAAM,QAAQ,IAAI,CAACC,EAAenD,EAAUkC,CAAe,EAAE,KAAKkB,GAAKJ,EAAaI,EAAGN,GAAKI,EAAsBJ,CAAC,EAGnHC,EAAc,KAAK,EAAE,KAAKK,GAAKH,EAAeG,EAAG,IAAM,CAAC,CAAC,CAAC,CAAC,EACvDF,EAAqB,MAAMA,CACjC,OAASJ,EAAG,CACV,MAAO,CACL,MAAO,CACL,OAAQ,gBACR,eAAgB9C,EAAS,OACzB,KAAMiD,EACN,MAAO,OAAOH,CAAC,CACjB,EACA,KAAAf,CACF,CACF,CACA,OAAOI,EAAenC,EAAUgD,CAAU,EAAI,CAC5C,KAAMA,EACN,KAAAjB,CACF,EAAI,CACF,MAAO,CACL,OAAQ/B,EAAS,OACjB,KAAMgD,CACR,EACA,KAAAjB,CACF,CACF,EACA,eAAeoB,EAAenD,EAAoBkC,EAAkC,CAClF,GAAI,OAAOA,GAAoB,WAC7B,OAAOA,EAAgBlC,CAAQ,EAKjC,GAHIkC,IAAoB,iBACtBA,EAAkBlB,EAAkBhB,EAAS,OAAO,EAAI,OAAS,QAE/DkC,IAAoB,OAAQ,CAC9B,IAAMmB,EAAO,MAAMrD,EAAS,KAAK,EACjC,OAAOqD,EAAK,OAAS,KAAK,MAAMA,CAAI,EAAI,IAC1C,CACA,OAAOrD,EAAS,KAAK,CACvB,CACF,CCrTO,IAAMsD,EAAN,KAAmB,CACxB,YAA4BC,EAA4BC,EAAY,OAAW,CAAnD,WAAAD,EAA4B,UAAAC,CAAwB,CAClF,ECeA,eAAeC,GAAeC,EAAkB,EAAGC,EAAqB,EAAGC,EAAsB,CAC/F,IAAMC,EAAW,KAAK,IAAIH,EAASC,CAAU,EACvCG,EAAU,CAAC,GAAG,KAAK,OAAO,EAAI,KAAQ,KAAOD,IAEnD,MAAM,IAAI,QAAc,CAACE,EAASC,IAAW,CAC3C,IAAMC,EAAY,WAAW,IAAMF,EAAQ,EAAGD,CAAO,EAGrD,GAAIF,EAAQ,CACV,IAAMM,EAAe,IAAM,CACzB,aAAaD,CAAS,EACtBD,EAAO,IAAI,MAAM,SAAS,CAAC,CAC7B,EAGIJ,EAAO,SACT,aAAaK,CAAS,EACtBD,EAAO,IAAI,MAAM,SAAS,CAAC,GAE3BJ,EAAO,iBAAiB,QAASM,EAAc,CAC7C,KAAM,EACR,CAAC,CAEL,CACF,CAAC,CACH,CAyBA,SAASC,GAAkDC,EAAkCC,EAAwC,CACnI,MAAM,OAAO,OAAO,IAAIC,EAAa,CACnC,MAAAF,EACA,KAAAC,CACF,CAAC,EAAG,CACF,iBAAkB,EACpB,CAAC,CACH,CAMA,SAASE,GAAcX,EAA2B,CAC5CA,EAAO,SACTO,GAAK,CACH,OAAQ,eACR,MAAO,SACT,CAAC,CAEL,CACA,IAAMK,GAAgB,CAAC,EACjBC,GAAkF,CAACC,EAAWC,IAAmB,MAAOC,EAAMC,EAAKC,IAAiB,CAIxJ,IAAMC,EAA+B,CAAC,GAAIJ,GAAyBH,IAAe,YAAaM,GAAuBN,IAAe,UAAU,EAAE,OAAOQ,GAAKA,IAAM,MAAS,EACtK,CAACrB,CAAU,EAAIoB,EAAmB,MAAM,EAAE,EAI1CE,EAIF,CACF,WAAAtB,EACA,QAASF,GACT,eAVoD,CAACyB,EAAGC,EAAI,CAC5D,QAAAzB,CACF,IAAMA,GAAWC,EASf,GAAGgB,EACH,GAAGG,CACL,EACIM,EAAQ,EACZ,OAAa,CAEXb,GAAcM,EAAI,MAAM,EACxB,GAAI,CACF,IAAMQ,EAAS,MAAMX,EAAUE,EAAMC,EAAKC,CAAY,EAEtD,GAAIO,EAAO,MACT,MAAM,IAAIf,EAAae,CAAM,EAE/B,OAAOA,CACT,OAASC,EAAQ,CAEf,GADAF,IACIE,EAAE,iBAAkB,CACtB,GAAIA,aAAahB,EACf,OAAOgB,EAAE,MAIX,MAAMA,CACR,CACA,GAAIA,aAAahB,GACf,GAAI,CAACW,EAAQ,eAAeK,EAAE,MAAM,MAA8BV,EAAM,CACtE,QAASQ,EACT,aAAcP,EACd,aAAAC,CACF,CAAC,EACC,OAAOQ,EAAE,cAIPF,EAAQH,EAAQ,WAElB,MAAO,CACL,MAAOK,CACT,EAKJf,GAAcM,EAAI,MAAM,EACxB,GAAI,CACF,MAAMI,EAAQ,QAAQG,EAAOH,EAAQ,WAAYJ,EAAI,MAAM,CAC7D,OAASU,EAAc,CAErB,MAAAhB,GAAcM,EAAI,MAAM,EAElBU,CACR,CACF,CACF,CACF,EAkCaH,GAAuB,OAAO,OAAOX,GAAkB,CAClE,KAAAN,EACF,CAAC,ECjMM,IAAMqB,GAAkB,UACzBC,GAAS,SACTC,GAAU,UACVC,GAAQ,QACRC,GAAU,UACVC,GAAmB,mBACZC,MAAyB,gBAAa,GAAGN,EAAe,GAAGI,EAAO,EAAE,EACpEG,MAA6B,gBAAa,GAAGP,EAAe,KAAKI,EAAO,EAAE,EAC1EI,MAA0B,gBAAa,GAAGR,EAAe,GAAGC,EAAM,EAAE,EACpEQ,MAA2B,gBAAa,GAAGT,EAAe,GAAGE,EAAO,EAAE,EAC7EQ,GAAU,CACd,QAAAJ,GACA,YAAAC,GACA,SAAAC,GACA,UAAAC,EACF,EACIE,GAAc,GAkBX,SAASC,GAAeC,EAAwCC,EAKrD,CAChB,SAASC,GAAiB,CACxB,GAAM,CAACC,EAAaC,EAAiBC,EAAcC,CAAa,EAAI,CAACb,GAASC,GAAaC,GAAUC,EAAS,EAAE,IAAIW,GAAU,IAAMP,EAASO,EAAO,CAAC,CAAC,EAChJC,EAAyB,IAAM,CAC/B,OAAO,SAAS,kBAAoB,UACtCL,EAAY,EAEZC,EAAgB,CAEpB,EACIK,EAAc,IAAM,CACtBX,GAAc,EAChB,EACA,GAAI,CAACA,IACC,OAAO,OAAW,KAAe,OAAO,iBAAkB,CAO5D,IAASY,EAAT,SAAyBC,EAAc,CACrC,OAAO,QAAQC,CAAQ,EAAE,QAAQ,CAAC,CAACC,EAAOC,CAAO,IAAM,CACjDH,EACF,OAAO,iBAAiBE,EAAOC,EAAS,EAAK,EAE7C,OAAO,oBAAoBD,EAAOC,CAAO,CAE7C,CAAC,CACH,EARS,IAAAJ,IANT,IAAME,EAAW,CACf,CAACtB,EAAK,EAAGa,EACT,CAACX,EAAgB,EAAGgB,EACpB,CAACpB,EAAM,EAAGiB,EACV,CAAChB,EAAO,EAAGiB,CACb,EAWAI,EAAgB,EAAI,EACpBZ,GAAc,GACdW,EAAc,IAAM,CAClBC,EAAgB,EAAK,EACrBZ,GAAc,EAChB,CACF,CAEF,OAAOW,CACT,CACA,OAAOR,EAAgBA,EAAcD,EAAUH,EAAO,EAAIK,EAAe,CAC3E,CCqTO,IAAMa,GAAiB,QACjBC,GAAoB,WACpBC,GAAyB,gBA+c/B,SAASC,GAAkB,EAA8G,CAC9I,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAiH,CACpJ,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAA0B,EAA2H,CACnK,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAwI,CAC3K,OAAOH,GAAkB,CAAC,GAAKE,GAA0B,CAAC,CAC5D,CA4DO,SAASE,GAA+DC,EAA+FC,EAAgCC,EAA8BC,EAAoBC,EAA4BC,EAAuE,CACjW,IAAMC,EAAmBC,GAAWP,CAAW,EAAIA,EAAYC,EAAsBC,EAAoBC,EAAUC,CAAgB,EAAIJ,EACvI,OAAIM,EACKE,GAAUF,EAAkBG,GAAcC,GAAOL,EAAeM,GAAqBD,CAAG,CAAC,CAAC,EAE5F,CAAC,CACV,CACA,SAASH,GAAcK,EAAiC,CACtD,OAAO,OAAOA,GAAM,UACtB,CACO,SAASD,GAAqBX,EAAiE,CACpG,OAAO,OAAOA,GAAgB,SAAW,CACvC,KAAMA,CACR,EAAIA,CACN,CC/6BA,IAAAa,EAAyG,iBCAzG,IAAAC,GAAkE,4BC+G3D,SAASC,GAAkCC,EAA4BC,EAAwC,CACpH,OAAOD,EAAQ,MAAMC,CAAQ,CAC/B,CC5FO,IAAMC,EAAwB,CAAkFC,EAAkCC,IAA+BD,EAAQ,oBAAoBC,CAAY,EFEzN,IAAMC,GAAqB,OAAO,cAAc,EAC1CC,GAAiBC,GAAuB,OAAOA,EAAIF,EAAkB,GAAM,WA2IjF,SAASG,GAAc,CAC5B,mBAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,cAAAC,EACA,IAAAC,EACA,QAAAC,EACA,iBAAAC,CACF,EAQG,CACD,IAAMC,EAAqBC,GAAuBF,EAAiBE,CAAQ,GAAG,eACxEC,EAAuBD,GAAuBF,EAAiBE,CAAQ,GAAG,iBAC1E,CACJ,uBAAAE,EACA,qBAAAC,EACA,0BAAAC,CACF,EAAIR,EAAI,gBACR,MAAO,CACL,mBAAAS,EACA,2BAAAC,EACA,sBAAAC,EACA,qBAAAC,EACA,wBAAAC,EACA,uBAAAC,EACA,yBAAAC,CACF,EACA,SAASH,EAAqBI,EAAsBC,EAAgB,CAClE,OAAQb,GAAuB,CAC7B,IAAMc,EAAqBC,EAAsBlB,EAASe,CAAY,EAChEI,EAAgBxB,EAAmB,CACvC,UAAAqB,EACA,mBAAAC,EACA,aAAAF,CACF,CAAC,EACD,OAAOb,EAAkBC,CAAQ,GAAG,IAAIgB,CAAa,CACvD,CACF,CACA,SAASP,EAKTQ,EAAuBC,EAAkC,CACvD,OAAQlB,GACCC,EAAoBD,CAAQ,GAAG,IAAIkB,CAAwB,CAEtE,CACA,SAASR,GAAyB,CAChC,OAAQV,GAAuBmB,GAAoBpB,EAAkBC,CAAQ,CAAC,CAChF,CACA,SAASW,GAA2B,CAClC,OAAQX,GAAuBmB,GAAoBlB,EAAoBD,CAAQ,CAAC,CAClF,CACA,SAASoB,EAAkBpB,EAAoB,CAc/C,CACA,SAASqB,EAA2DT,EAAsBE,EAA4G,CACpM,IAAMQ,EAA0C,CAAChC,EAAK,CACpD,UAAAiC,EAAY,GACZ,aAAAC,EACA,oBAAAC,EACA,CAACrC,IAAqBsC,EACtB,GAAGC,CACL,EAAI,CAAC,IAAM,CAAC3B,EAAU4B,IAAa,CACjC,IAAMZ,EAAgBxB,EAAmB,CACvC,UAAWF,EACX,mBAAAwB,EACA,aAAAF,CACF,CAAC,EACGiB,EACEC,EAAkB,CACtB,GAAGH,EACH,KAAMI,GACN,UAAAR,EACA,aAAcC,EACd,oBAAAC,EACA,aAAAb,EACA,aAActB,EACd,cAAA0B,EACA,CAAC5B,EAAkB,EAAGsC,CACxB,EACA,GAAIM,GAAkBlB,CAAkB,EACtCe,EAAQpC,EAAWqC,CAAe,MAC7B,CACL,GAAM,CACJ,UAAAG,EACA,iBAAAC,EACA,mBAAAC,CACF,EAAIR,EACJE,EAAQnC,EAAmB,CACzB,GAAIoC,EAGJ,UAAAG,EACA,iBAAAC,EACA,mBAAAC,CACF,CAAC,CACH,CACA,IAAMC,EAAYxC,EAAI,UAAUgB,CAAY,EAAiC,OAAOtB,CAAG,EACjF+C,EAAcrC,EAAS6B,CAAK,EAC5BS,EAAaF,EAASR,EAAS,CAAC,EAEtC,GAAM,CACJ,UAAAW,EACA,MAAAC,CACF,EAAIH,EACEI,EAAuBH,EAAW,YAAcC,EAChDG,EAAe3C,EAAkBC,CAAQ,GAAG,IAAIgB,CAAa,EAC7D2B,EAAkB,IAAMP,EAASR,EAAS,CAAC,EAC3CgB,EAAuC,OAAO,OAAQlB,EAG5DW,EAAY,KAAKM,CAAe,EAAIF,GAAwB,CAACC,EAG7D,QAAQ,QAAQJ,CAAU,EAG1B,QAAQ,IAAI,CAACI,EAAcL,CAAW,CAAC,EAAE,KAAKM,CAAe,EAAwB,CACnF,IAAArD,EACA,UAAAiD,EACA,oBAAAd,EACA,cAAAT,EACA,MAAAwB,EACA,MAAM,QAAS,CACb,IAAMK,EAAS,MAAMD,EACrB,GAAIC,EAAO,QACT,MAAMA,EAAO,MAEf,OAAOA,EAAO,IAChB,EACA,QAAUC,GAA6B9C,EAASsB,EAAYhC,EAAK,CAC/D,UAAW,GACX,aAAc,GACd,GAAGwD,CACL,CAAC,CAAC,EACF,aAAc,CACRvB,GAAWvB,EAASE,EAAuB,CAC7C,cAAAc,EACA,UAAAuB,CACF,CAAC,CAAC,CACJ,EACA,0BAA0BO,EAA8B,CACtDF,EAAa,oBAAsBE,EACnC9C,EAASI,EAA0B,CACjC,aAAAQ,EACA,UAAA2B,EACA,cAAAvB,EACA,QAAA8B,CACF,CAAC,CAAC,CACJ,CACF,CAAC,EACD,GAAI,CAACJ,GAAgB,CAACD,GAAwB,CAACf,EAAc,CAC3D,IAAMqB,EAAiBhD,EAAkBC,CAAQ,EACjD+C,EAAe,IAAI/B,EAAe4B,CAAY,EAC9CA,EAAa,KAAK,IAAM,CACtBG,EAAe,OAAO/B,CAAa,CACrC,CAAC,CACH,CACA,OAAO4B,CACT,EACA,OAAOtB,CACT,CACA,SAASjB,EAAmBO,EAAsBE,EAAyD,CAEzG,OADkDO,EAAsBT,EAAcE,CAAkB,CAE1G,CACA,SAASR,EAA2BM,EAAsBE,EAAsE,CAE9H,OADkEO,EAAsBT,EAAcE,CAAkB,CAE1H,CACA,SAASP,EAAsBK,EAAuD,CACpF,MAAO,CAACtB,EAAK,CACX,MAAA0D,EAAQ,GACR,cAAAC,CACF,EAAI,CAAC,IAAM,CAACjD,EAAU4B,IAAa,CACjC,IAAMC,EAAQlC,EAAc,CAC1B,KAAM,WACN,aAAAiB,EACA,aAActB,EACd,MAAA0D,EACA,cAAAC,CACF,CAAC,EACKZ,EAAcrC,EAAS6B,CAAK,EAElC,GAAM,CACJ,UAAAU,EACA,MAAAC,EACA,OAAAU,CACF,EAAIb,EACEc,EAAqBC,GAAcf,EAAY,OAAO,EAAE,KAAKgB,IAAS,CAC1E,KAAAA,CACF,EAAE,EAAGC,IAAU,CACb,MAAAA,CACF,EAAE,EACIC,EAAQ,IAAM,CAClBvD,EAASG,EAAqB,CAC5B,UAAAoC,EACA,cAAAU,CACF,CAAC,CAAC,CACJ,EACMO,EAAM,OAAO,OAAOL,EAAoB,CAC5C,IAAKd,EAAY,IACjB,UAAAE,EACA,MAAAC,EACA,OAAAU,EACA,MAAAK,CACF,CAAC,EACKE,EAAmBxD,EAAoBD,CAAQ,EACrD,OAAAyD,EAAiB,IAAIlB,EAAWiB,CAAG,EACnCA,EAAI,KAAK,IAAM,CACbC,EAAiB,OAAOlB,CAAS,CACnC,CAAC,EACGU,IACFQ,EAAiB,IAAIR,EAAeO,CAAG,EACvCA,EAAI,KAAK,IAAM,CACTC,EAAiB,IAAIR,CAAa,IAAMO,GAC1CC,EAAiB,OAAOR,CAAa,CAEzC,CAAC,GAEIO,CACT,CACF,CACF,CGrZA,IAAAE,GAA4B,kCAEfC,GAAN,cAA+B,cAAY,CAChD,YAAYC,EAA2DC,EAA4BC,EAAmDC,EAAc,CAClK,MAAMH,CAAM,EADyD,WAAAC,EAA4B,gBAAAC,EAAmD,aAAAC,CAEtJ,CACF,EACaC,GAAa,CAACC,EAA0DH,IAA2B,MAAM,QAAQG,CAAoB,EAAIA,EAAqB,SAASH,CAAU,EAAI,CAAC,CAACG,EACpM,eAAsBC,GAAiDC,EAAgBC,EAAeN,EAAmCO,EAA4D,CACnM,IAAMC,EAAS,MAAMH,EAAO,WAAW,EAAE,SAASC,CAAI,EACtD,GAAIE,EAAO,OACT,MAAM,IAAIX,GAAiBW,EAAO,OAAQF,EAAMN,EAAYO,CAAM,EAEpE,OAAOC,EAAO,KAChB,CC+DA,SAASC,GAAyBC,EAA+B,CAC/D,OAAOA,CACT,CA8BO,IAAMC,GAAqB,CAAiCC,EAAS,CAAC,KAGpE,CACL,GAAGA,EACH,CAAC,kBAAgB,EAAG,EACtB,GAEK,SAASC,GAAgH,CAC9H,YAAAC,EACA,UAAAC,EACA,QAAS,CACP,oBAAAC,CACF,EACA,mBAAAC,EACA,IAAAC,EACA,cAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,mBAAoBC,EACpB,qBAAsBC,CACxB,EAWG,CAED,IAAMC,EAAkE,CAACC,EAAcb,EAAKc,EAASC,IAAmB,CAACC,EAAUC,IAAa,CAC9I,IAAMC,EAAqBd,EAAoBS,CAAY,EACrDM,EAAgBd,EAAmB,CACvC,UAAWL,EACX,mBAAAkB,EACA,aAAAL,CACF,CAAC,EAKD,GAJAG,EAASV,EAAI,gBAAgB,mBAAmB,CAC9C,cAAAa,EACA,QAAAL,CACF,CAAC,CAAC,EACE,CAACC,EACH,OAEF,IAAMK,EAAWd,EAAI,UAAUO,CAAY,EAAE,OAAOb,CAAG,EAEvDiB,EAAS,CAA6B,EAChCI,EAAeC,GAAoBJ,EAAmB,aAAcE,EAAS,KAAM,OAAWpB,EAAK,CAAC,EAAGO,CAAa,EAC1HS,EAASV,EAAI,gBAAgB,iBAAiB,CAAC,CAC7C,cAAAa,EACA,aAAAE,CACF,CAAC,CAAC,CAAC,CACL,EACA,SAASE,EAAcC,EAAiBC,EAASC,EAAM,EAAa,CAClE,IAAMC,EAAW,CAACF,EAAM,GAAGD,CAAK,EAChC,OAAOE,GAAOC,EAAS,OAASD,EAAMC,EAAS,MAAM,EAAG,EAAE,EAAIA,CAChE,CACA,SAASC,EAAYJ,EAAiBC,EAASC,EAAM,EAAa,CAChE,IAAMC,EAAW,CAAC,GAAGH,EAAOC,CAAI,EAChC,OAAOC,GAAOC,EAAS,OAASD,EAAMC,EAAS,MAAM,CAAC,EAAIA,CAC5D,CACA,IAAME,EAAoE,CAAChB,EAAcb,EAAK8B,EAAcf,EAAiB,KAAS,CAACC,EAAUC,IAAa,CAE5J,IAAMc,EADqBzB,EAAI,UAAUO,CAAY,EACb,OAAOb,CAAG,EAElDiB,EAAS,CAA6B,EAChCe,EAAuB,CAC3B,QAAS,CAAC,EACV,eAAgB,CAAC,EACjB,KAAM,IAAMhB,EAASV,EAAI,KAAK,eAAeO,EAAcb,EAAKgC,EAAI,eAAgBjB,CAAc,CAAC,CACrG,EACA,GAAIgB,EAAa,SAAWE,EAC1B,OAAOD,EAET,IAAIZ,EACJ,GAAI,SAAUW,EACZ,MAAI,eAAYA,EAAa,IAAI,EAAG,CAClC,GAAM,CAACG,EAAOpB,EAASqB,CAAc,KAAI,sBAAmBJ,EAAa,KAAMD,CAAY,EAC3FE,EAAI,QAAQ,KAAK,GAAGlB,CAAO,EAC3BkB,EAAI,eAAe,KAAK,GAAGG,CAAc,EACzCf,EAAWc,CACb,MACEd,EAAWU,EAAaC,EAAa,IAAI,EACzCC,EAAI,QAAQ,KAAK,CACf,GAAI,UACJ,KAAM,CAAC,EACP,MAAOZ,CACT,CAAC,EACDY,EAAI,eAAe,KAAK,CACtB,GAAI,UACJ,KAAM,CAAC,EACP,MAAOD,EAAa,IACtB,CAAC,EAGL,OAAIC,EAAI,QAAQ,SAAW,GAG3BhB,EAASV,EAAI,KAAK,eAAeO,EAAcb,EAAKgC,EAAI,QAASjB,CAAc,CAAC,EACzEiB,CACT,EACMI,EAA4D,CAACvB,EAAcb,EAAKkC,IAAUlB,GAElFA,EAAUV,EAAI,UAAUO,CAAY,EAA8E,SAASb,EAAK,CAC1I,UAAW,GACX,aAAc,GACd,CAACqC,EAAkB,EAAG,KAAO,CAC3B,KAAMH,CACR,EACF,CAAC,CAAC,EAGEI,EAAkC,CAACpB,EAA4DqB,IAC5FrB,EAAmB,OAASA,EAAmBqB,CAAkB,EAAIrB,EAAmBqB,CAAkB,EAA0B1C,GAIvI2C,EAED,MAAOxC,EAAK,CACf,OAAAyC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAA5B,EACA,SAAAC,EACA,MAAA4B,CACF,IAAM,CACJ,IAAM3B,EAAqBd,EAAoBJ,EAAI,YAAY,EACzD,CACJ,WAAA8C,EACA,qBAAAC,EAAuBpC,CACzB,EAAIO,EACE8B,EAAUhD,EAAI,OAASiD,GAC7B,GAAI,CACF,IAAIC,EAAuCrD,GACrCsD,EAAe,CACnB,OAAAV,EACA,MAAAC,EACA,SAAA1B,EACA,SAAAC,EACA,MAAA4B,EACA,SAAU7C,EAAI,aACd,KAAMA,EAAI,KACV,OAAQgD,EAAUI,EAAcpD,EAAKiB,EAAS,CAAC,EAAI,OACnD,cAAe+B,EAAUhD,EAAI,cAAgB,MAC/C,EACMqD,EAAeL,EAAUhD,EAAIqC,EAAkB,EAAI,OACrDiB,EAIEC,EAAY,MAAOC,EAAsCC,EAAgBC,GAAkBC,IAAkD,CAGjJ,GAAIF,GAAS,MAAQD,EAAK,MAAM,OAC9B,OAAO,QAAQ,QAAQ,CACrB,KAAAA,CACF,CAAC,EAEH,IAAMI,GAAoD,CACxD,SAAU5D,EAAI,aACd,UAAWyD,CACb,EACMI,GAAe,MAAMC,EAAeF,EAAa,EACjDG,GAAQJ,EAAWpC,EAAaK,EACtC,MAAO,CACL,KAAM,CACJ,MAAOmC,GAAMP,EAAK,MAAOK,GAAa,KAAMH,EAAQ,EACpD,WAAYK,GAAMP,EAAK,WAAYC,EAAOC,EAAQ,CACpD,EACA,KAAMG,GAAa,IACrB,CACF,EAIA,eAAeC,EAAeF,EAAmD,CAC/E,IAAII,EACE,CACJ,aAAAC,GACA,UAAAC,EACA,kBAAAC,GACA,eAAAC,EACF,EAAIlD,EA0CJ,GAzCIgD,GAAa,CAACG,GAAWtB,EAAsB,KAAK,IACtDa,EAAgB,MAAMU,GAAgBJ,EAAWN,EAAe,YAAa,CAAC,CAC9E,GAEEP,EAEFW,EAASX,EAAa,EACbnC,EAAmB,OAG5BgC,EAAoBZ,EAAgCpB,EAAoB,mBAAmB,EAC3F8C,EAAS,MAAM7D,EAAUe,EAAmB,MAAM0C,CAAoB,EAAGT,EAAcc,EAAmB,GAE1GD,EAAS,MAAM9C,EAAmB,QAAQ0C,EAAsBT,EAAcc,GAAqBjE,IAAOG,EAAUH,GAAKmD,EAAcc,EAAmB,CAAC,EAEzJ,OAAO,QAAY,IA0BnBD,EAAO,MAAO,MAAM,IAAIO,EAAaP,EAAO,MAAOA,EAAO,IAAI,EAClE,GAAI,CACF,KAAAR,EACF,EAAIQ,EACAG,IAAqB,CAACE,GAAWtB,EAAsB,aAAa,IACtES,GAAO,MAAMc,GAAgBH,GAAmBH,EAAO,KAAM,oBAAqBA,EAAO,IAAI,GAE/F,IAAIQ,GAAsB,MAAMtB,EAAkBM,GAAMQ,EAAO,KAAMJ,CAAa,EAClF,OAAIQ,IAAkB,CAACC,GAAWtB,EAAsB,UAAU,IAChEyB,GAAsB,MAAMF,GAAgBF,GAAgBI,GAAqB,iBAAkBR,EAAO,IAAI,GAEzG,CACL,GAAGA,EACH,KAAMQ,EACR,CACF,CACA,GAAIxB,GAAW,yBAA0B9B,EAAoB,CAE3D,GAAM,CACJ,qBAAAuD,CACF,EAAIvD,EAGE,CACJ,SAAAwC,EAAW,GACb,EAAIe,EAGEC,GAAsB1E,EAAmC,oBAAsByE,EAAqB,oBAAsB,GAC5HT,EAIEW,GAAY,CAChB,MAAO,CAAC,EACR,WAAY,CAAC,CACf,EACMC,GAAapE,EAAU,iBAAiBS,EAAS,EAAGjB,EAAI,aAAa,GAAG,KASxE6E,GADNzB,EAAcpD,EAAKiB,EAAS,CAAC,GAAK,CAAEjB,EAAmC,WAClB,CAAC4E,GAAaD,GAAYC,GAI/E,GAAI,cAAe5E,GAAOA,EAAI,WAAa6E,GAAa,MAAM,OAAQ,CACpE,IAAMlB,GAAW3D,EAAI,YAAc,WAE7ByD,IADcE,GAAWmB,GAAuBC,IAC5BN,EAAsBI,GAAc7E,EAAI,YAAY,EAC9EgE,EAAS,MAAMT,EAAUsB,GAAcpB,GAAOC,EAAUC,EAAQ,CAClE,KAAO,CAGL,GAAM,CACJ,iBAAAqB,GAAmBP,EAAqB,gBAC1C,EAAIzE,EAKEiF,GAAmBL,IAAY,YAAc,CAAC,EAC9CM,GAAiBD,GAAiB,CAAC,GAAKD,GACxCG,GAAaF,GAAiB,OAWpC,GARAjB,EAAS,MAAMT,EAAUsB,GAAcK,GAAgBxB,CAAQ,EAC3DL,IAGFW,EAAS,CACP,KAAOA,EAAO,KAAwC,MAAM,CAAC,CAC/D,GAEEU,GAEF,QAASU,GAAI,EAAGA,GAAID,GAAYC,KAAK,CACnC,IAAM3B,GAAQsB,GAAiBN,EAAsBT,EAAO,KAAwChE,EAAI,YAAY,EACpHgE,EAAS,MAAMT,EAAUS,EAAO,KAAwCP,GAAOC,CAAQ,CACzF,CAEJ,CACAJ,EAAwBU,CAC1B,MAEEV,EAAwB,MAAMQ,EAAe9D,EAAI,YAAY,EAE/D,OAAI8C,GAAc,CAACuB,GAAWtB,EAAsB,MAAM,GAAKO,EAAsB,OACnFA,EAAsB,KAAO,MAAMgB,GAAgBxB,EAAYQ,EAAsB,KAAM,aAAcA,EAAsB,IAAI,GAI9HV,EAAiBU,EAAsB,KAAMvD,GAAmB,CACrE,mBAAoB,KAAK,IAAI,EAC7B,cAAeuD,EAAsB,IACvC,CAAC,CAAC,CACJ,OAAS+B,EAAO,CACd,IAAIC,EAAcD,EAClB,GAAIC,aAAuBf,EAAc,CACvC,IAAIgB,EAAyBjD,EAAgCpB,EAAoB,wBAAwB,EACnG,CACJ,uBAAAsE,EACA,oBAAAC,CACF,EAAIvE,EACA,CACF,MAAAgB,EACA,KAAAwD,CACF,EAAIJ,EACJ,GAAI,CACEE,GAA0B,CAACnB,GAAWtB,EAAsB,kBAAkB,IAChFb,EAAQ,MAAMoC,GAAgBkB,EAAwBtD,EAAO,yBAA0BwD,CAAI,GAEzF5C,GAAc,CAACuB,GAAWtB,EAAsB,MAAM,IACxD2C,EAAO,MAAMpB,GAAgBxB,EAAY4C,EAAM,aAAcA,CAAI,GAEnE,IAAIC,EAA2B,MAAMJ,EAAuBrD,EAAOwD,EAAM1F,EAAI,YAAY,EACzF,OAAIyF,GAAuB,CAACpB,GAAWtB,EAAsB,eAAe,IAC1E4C,EAA2B,MAAMrB,GAAgBmB,EAAqBE,EAA0B,sBAAuBD,CAAI,GAEtH/C,EAAgBgD,EAA0B5F,GAAmB,CAClE,cAAe2F,CACjB,CAAC,CAAC,CACJ,OAASE,EAAG,CACVN,EAAcM,CAChB,CACF,CACA,GAAI,CACF,GAAIN,aAAuBO,GAAkB,CAC3C,IAAMC,EAA0B,CAC9B,SAAU9F,EAAI,aACd,IAAKA,EAAI,aACT,KAAMA,EAAI,KACV,cAAegD,EAAUhD,EAAI,cAAgB,MAC/C,EACAkB,EAAmB,kBAAkBoE,EAAaQ,CAAI,EACtDrF,IAAkB6E,EAAaQ,CAAI,EACnC,GAAM,CACJ,mBAAAC,EAAqBrF,CACvB,EAAIQ,EACJ,GAAI6E,EACF,OAAOpD,EAAgBoD,EAAmBT,EAAaQ,CAAI,EAAG/F,GAAmB,CAC/E,cAAeuF,EAAY,OAC7B,CAAC,CAAC,CAEN,CACF,OAASM,EAAG,CACVN,EAAcM,CAChB,CACI,aAAO,QAAY,IAIrB,QAAQ,MAAMN,CAAW,EAErBA,CACR,CACF,EACA,SAASlC,EAAcpD,EAAoBgG,EAA4C,CACrF,IAAMC,EAAezF,EAAU,iBAAiBwF,EAAOhG,EAAI,aAAa,EAClEkG,EAA8B1F,EAAU,aAAawF,CAAK,EAAE,0BAC5DG,EAAeF,GAAc,mBAC7BG,EAAapG,EAAI,eAAiBA,EAAI,WAAakG,GACzD,OAAIE,EAEKA,IAAe,KAAS,OAAO,IAAI,IAAM,EAAI,OAAOD,CAAY,GAAK,KAAQC,EAE/E,EACT,CACA,IAAMC,EAAmB,OACK,oBAEzB,GAAGnG,CAAW,gBAAiBsC,EAAiB,CACjD,eAAe,CACb,IAAAxC,CACF,EAAG,CACD,IAAMkB,EAAqBd,EAAoBJ,EAAI,YAAY,EAC/D,OAAOD,GAAmB,CACxB,iBAAkB,KAAK,IAAI,EAC3B,GAAIuG,GAA0BpF,CAAkB,EAAI,CAClD,UAAYlB,EAAmC,SACjD,EAAI,CAAC,CACP,CAAC,CACH,EACA,UAAUuG,EAAe,CACvB,SAAAtF,CACF,EAAG,CACD,IAAM+E,EAAQ/E,EAAS,EACjBgF,EAAezF,EAAU,iBAAiBwF,EAAOO,EAAc,aAAa,EAC5EJ,EAAeF,GAAc,mBAC7BO,EAAaD,EAAc,aAC3BE,EAAcR,GAAc,aAC5B/E,EAAqBd,EAAoBmG,EAAc,YAAY,EACnEG,EAAaH,EAA6C,UAKhE,OAAII,GAAcJ,CAAa,EACtB,GAILN,GAAc,SAAW,UACpB,GAIL7C,EAAcmD,EAAeP,CAAK,GAGlCY,GAAkB1F,CAAkB,GAAKA,GAAoB,eAAe,CAC9E,WAAAsF,EACA,YAAAC,EACA,cAAeR,EACf,MAAAD,CACF,CAAC,EACQ,GAIL,EAAAG,GAAgB,CAACO,EAKvB,EACA,2BAA4B,EAC9B,CAAC,EAGGG,EAAaR,EAAgC,EAC7CS,EAAqBT,EAA6C,EAClEU,KAAgB,oBAEnB,GAAG7G,CAAW,mBAAoBsC,EAAiB,CACpD,gBAAiB,CACf,OAAOzC,GAAmB,CACxB,iBAAkB,KAAK,IAAI,CAC7B,CAAC,CACH,CACF,CAAC,EACKiH,EAAeC,GAEhB,UAAWA,EACVC,EAAaD,GAEd,gBAAiBA,EAChBE,EAAW,CAA+CtG,EAA4Bb,EAAUiH,EAA2B,CAAC,IAAkD,CAACjG,EAAwCC,IAAwB,CACnP,IAAMmG,EAAQJ,EAAYC,CAAO,GAAKA,EAAQ,MACxCI,EAASH,EAAUD,CAAO,GAAKA,EAAQ,YACvCK,EAAc,CAACF,EAAiB,KAAS,CAC7C,IAAMH,EAA0C,CAC9C,aAAcG,EACd,UAAW,EACb,EACA,OAAQ9G,EAAI,UAAUO,CAAY,EAAiC,SAASb,EAAKiH,CAAO,CAC1F,EACMM,EAAoBjH,EAAI,UAAUO,CAAY,EAAiC,OAAOb,CAAG,EAAEiB,EAAS,CAAC,EAC3G,GAAImG,EACFpG,EAASsG,EAAY,CAAC,UACbD,EAAQ,CACjB,IAAMG,EAAkBD,GAAkB,mBAC1C,GAAI,CAACC,EAAiB,CACpBxG,EAASsG,EAAY,CAAC,EACtB,MACF,EACyB,OAAO,IAAI,IAAM,EAAI,OAAO,IAAI,KAAKE,CAAe,CAAC,GAAK,KAAQH,GAEzFrG,EAASsG,EAAY,CAAC,CAE1B,MAEEtG,EAASsG,EAAY,EAAK,CAAC,CAE/B,EACA,SAASG,EAAgB5G,EAAsB,CAC7C,OAAQ6G,GAAyCA,GAAQ,MAAM,KAAK,eAAiB7G,CACvF,CACA,SAAS8G,EAAiJC,EAAc/G,EAAsB,CAC5L,MAAO,CACL,gBAAc,cAAQ,aAAU+G,CAAK,EAAGH,EAAgB5G,CAAY,CAAC,EACrE,kBAAgB,cAAQ,eAAY+G,CAAK,EAAGH,EAAgB5G,CAAY,CAAC,EACzE,iBAAe,cAAQ,cAAW+G,CAAK,EAAGH,EAAgB5G,CAAY,CAAC,CACzE,CACF,CACA,MAAO,CACL,WAAAgG,EACA,cAAAE,EACA,mBAAAD,EACA,SAAAK,EACA,gBAAAtF,EACA,gBAAAO,EACA,eAAAxB,EACA,uBAAA+G,CACF,CACF,CACO,SAAS5C,GAAiBkC,EAAgE,CAC/F,MAAAY,EACA,WAAAC,CACF,EAAmCC,EAAwC,CACzE,IAAMC,EAAYH,EAAM,OAAS,EACjC,OAAOZ,EAAQ,iBAAiBY,EAAMG,CAAS,EAAGH,EAAOC,EAAWE,CAAS,EAAGF,EAAYC,CAAQ,CACtG,CACO,SAASjD,GAAqBmC,EAAgE,CACnG,MAAAY,EACA,WAAAC,CACF,EAAmCC,EAAwC,CACzE,OAAOd,EAAQ,uBAAuBY,EAAM,CAAC,EAAGA,EAAOC,EAAW,CAAC,EAAGA,EAAYC,CAAQ,CAC5F,CACO,SAASE,GAAyBP,EAAqJQ,EAA0C9H,EAA0CG,EAA+B,CAC/S,OAAOe,GAAoBlB,EAAoBsH,EAAO,KAAK,IAAI,YAAY,EAAEQ,CAAI,KAAiD,eAAYR,CAAM,EAAIA,EAAO,QAAU,UAAW,uBAAoBA,CAAM,EAAIA,EAAO,QAAU,OAAWA,EAAO,KAAK,IAAI,aAAc,kBAAmBA,EAAO,KAAOA,EAAO,KAAK,cAAgB,OAAWnH,CAAa,CACnW,CC7oBO,SAAS4H,GAAcC,EAAwB,CACpD,SAAQ,WAAQA,CAAK,KAAI,WAAQA,CAAK,EAAIA,CAC5C,CCyCA,SAASC,GAA4BC,EAAwBC,EAA8BC,EAA6E,CACtK,IAAMC,EAAWH,EAAMC,CAAa,EAChCE,GACFD,EAAOC,CAAQ,CAEnB,CAWO,SAASC,GAAoBC,EAQb,CACrB,OAAQ,QAASA,EAAKA,EAAG,IAAI,cAAgBA,EAAG,gBAAkBA,EAAG,SACvE,CACA,SAASC,GAA+BN,EAA2BK,EAKhEH,EAAmD,CACpD,IAAMC,EAAWH,EAAMI,GAAoBC,CAAE,CAAC,EAC1CF,GACFD,EAAOC,CAAQ,CAEnB,CACA,IAAMI,GAAe,CAAC,EACf,SAASC,GAAW,CACzB,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,mBAAAC,EACA,QAAS,CACP,oBAAqBC,EACrB,OAAAC,EACA,uBAAAC,EACA,mBAAAC,CACF,EACA,cAAAC,EACA,OAAAC,CACF,EASG,CACD,IAAMC,KAAgB,gBAAa,GAAGV,CAAW,gBAAgB,EACjE,SAASW,EAAuBC,EAAwBC,EAAoBC,EAAoBC,EAM7F,CACDH,EAAMC,EAAI,aAAa,IAAM,CAC3B,OAAQG,EACR,aAAcH,EAAI,YACpB,EACAvB,GAA4BsB,EAAOC,EAAI,cAAenB,GAAY,CAChEA,EAAS,OAASuB,GAClBvB,EAAS,UAAYoB,GAAapB,EAAS,UAE3CA,EAAS,UAETqB,EAAK,UACDF,EAAI,eAAiB,SACvBnB,EAAS,aAAemB,EAAI,cAE9BnB,EAAS,iBAAmBqB,EAAK,iBACjC,IAAMG,EAAqBd,EAAYW,EAAK,IAAI,YAAY,EACxDI,GAA0BD,CAAkB,GAAK,cAAeL,IAEjEnB,EAAwC,UAAYmB,EAAI,UAE7D,CAAC,CACH,CACA,SAASO,EAAyBR,EAAwBG,EAMvDM,EAAkBP,EAAoB,CACvCxB,GAA4BsB,EAAOG,EAAK,IAAI,cAAerB,GAAY,CACrE,GAAIA,EAAS,YAAcqB,EAAK,WAAa,CAACD,EAAW,OACzD,GAAM,CACJ,MAAAQ,CACF,EAAIlB,EAAYW,EAAK,IAAI,YAAY,EAErC,GADArB,EAAS,OAAS6B,GACdD,EACF,GAAI5B,EAAS,OAAS,OAAW,CAC/B,GAAM,CACJ,mBAAA8B,EACA,IAAAX,EACA,cAAAY,EACA,UAAAC,CACF,EAAIX,EAKAY,KAAU,mBAAgBjC,EAAS,KAAMkC,GAEpCN,EAAMM,EAAmBP,EAAS,CACvC,IAAKR,EAAI,aACT,cAAAY,EACA,mBAAAD,EACA,UAAAE,CACF,CAAC,CACF,EACDhC,EAAS,KAAOiC,CAClB,MAEEjC,EAAS,KAAO2B,OAIlB3B,EAAS,KAAOU,EAAYW,EAAK,IAAI,YAAY,EAAE,mBAAqB,GAAOc,MAA0B,WAAQnC,EAAS,IAAI,KAAI,YAASA,EAAS,IAAI,EAAIA,EAAS,KAAM2B,CAAO,EAAIA,EAExL,OAAO3B,EAAS,MAChBA,EAAS,mBAAqBqB,EAAK,kBACrC,CAAC,CACH,CACA,IAAMe,KAAa,eAAY,CAC7B,KAAM,GAAG9B,CAAW,WACpB,aAAcF,GACd,SAAU,CACR,kBAAmB,CACjB,QAAQc,EAAO,CACb,QAAS,CACP,cAAApB,CACF,CACF,EAA2C,CACzC,OAAOoB,EAAMpB,CAAa,CAC5B,EACA,WAAS,sBAA4C,CACvD,EACA,qBAAsB,CACpB,QAAQoB,EAAOmB,EAIX,CACF,QAAWC,KAASD,EAAO,QAAS,CAClC,GAAM,CACJ,iBAAkBlB,EAClB,MAAAoB,CACF,EAAID,EACJrB,EAAuBC,EAAOC,EAAK,GAAM,CACvC,IAAAA,EACA,UAAWkB,EAAO,KAAK,UACvB,iBAAkBA,EAAO,KAAK,SAChC,CAAC,EACDX,EAAyBR,EAAO,CAC9B,IAAAC,EACA,UAAWkB,EAAO,KAAK,UACvB,mBAAoBA,EAAO,KAAK,UAChC,cAAe,CAAC,CAClB,EAAGE,EAEH,EAAI,CACN,CACF,EACA,QAAUZ,IAuBO,CACb,QAvBqDA,EAAQ,IAAIW,GAAS,CAC1E,GAAM,CACJ,aAAAE,EACA,IAAArB,EACA,MAAAoB,CACF,EAAID,EACEd,EAAqBd,EAAY8B,CAAY,EAWnD,MAAO,CACL,iBAXsC,CACtC,KAAMC,GACN,aAAAD,EACA,aAAcF,EAAM,IACpB,cAAe7B,EAAmB,CAChC,UAAWU,EACX,mBAAAK,EACA,aAAAgB,CACF,CAAC,CACH,EAGE,MAAAD,CACF,CACF,CAAC,EAGC,KAAM,CACJ,CAAC,kBAAgB,EAAG,GACpB,aAAW,UAAO,EAClB,UAAW,KAAK,IAAI,CACtB,CACF,EAGJ,EACA,mBAAoB,CAClB,QAAQrB,EAAO,CACb,QAAS,CACP,cAAApB,EACA,QAAA4C,CACF,CACF,EAEI,CACF9C,GAA4BsB,EAAOpB,EAAeE,GAAY,CAC5DA,EAAS,QAAO,gBAAaA,EAAS,KAAa0C,EAAQ,OAAO,CAAC,CACrE,CAAC,CACH,EACA,WAAS,sBAEN,CACL,CACF,EACA,cAAcC,EAAS,CACrBA,EAAQ,QAAQpC,EAAW,QAAS,CAACW,EAAO,CAC1C,KAAAG,EACA,KAAM,CACJ,IAAAF,CACF,CACF,IAAM,CACJ,IAAMC,EAAYwB,GAAczB,CAAG,EACnCF,EAAuBC,EAAOC,EAAKC,EAAWC,CAAI,CACpD,CAAC,EAAE,QAAQd,EAAW,UAAW,CAACW,EAAO,CACvC,KAAAG,EACA,QAAAM,CACF,IAAM,CACJ,IAAMP,EAAYwB,GAAcvB,EAAK,GAAG,EACxCK,EAAyBR,EAAOG,EAAMM,EAASP,CAAS,CAC1D,CAAC,EAAE,QAAQb,EAAW,SAAU,CAACW,EAAO,CACtC,KAAM,CACJ,UAAA2B,EACA,IAAA1B,EACA,UAAAa,CACF,EACA,MAAAc,EACA,QAAAnB,CACF,IAAM,CACJ/B,GAA4BsB,EAAOC,EAAI,cAAenB,GAAY,CAChE,GAAI,CAAA6C,EAEG,CAEL,GAAI7C,EAAS,YAAcgC,EAAW,OACtChC,EAAS,OAAS+C,GAClB/C,EAAS,MAAS2B,GAAWmB,CAC/B,CACF,CAAC,CACH,CAAC,EAAE,WAAWjC,EAAoB,CAACK,EAAOmB,IAAW,CACnD,GAAM,CACJ,QAAAW,CACF,EAAIpC,EAAuByB,CAAM,EACjC,OAAW,CAACY,EAAKX,CAAK,IAAK,OAAO,QAAQU,CAAO,GAG/CV,GAAO,SAAWT,IAAoBS,GAAO,SAAWS,MACtD7B,EAAM+B,CAAG,EAAIX,EAGnB,CAAC,CACH,CACF,CAAC,EACKY,KAAgB,eAAY,CAChC,KAAM,GAAG5C,CAAW,aACpB,aAAcF,GACd,SAAU,CACR,qBAAsB,CACpB,QAAQc,EAAO,CACb,QAAAS,CACF,EAA8C,CAC5C,IAAMwB,EAAWlD,GAAoB0B,CAAO,EACxCwB,KAAYjC,GACd,OAAOA,EAAMiC,CAAQ,CAEzB,EACA,WAAS,sBAA+C,CAC1D,CACF,EACA,cAAcR,EAAS,CACrBA,EAAQ,QAAQnC,EAAc,QAAS,CAACU,EAAO,CAC7C,KAAAG,EACA,KAAM,CACJ,UAAAW,EACA,IAAAb,EACA,iBAAAiC,CACF,CACF,IAAM,CACCjC,EAAI,QACTD,EAAMjB,GAAoBoB,CAAI,CAAC,EAAI,CACjC,UAAAW,EACA,OAAQT,GACR,aAAcJ,EAAI,aAClB,iBAAAiC,CACF,EACF,CAAC,EAAE,QAAQ5C,EAAc,UAAW,CAACU,EAAO,CAC1C,QAAAS,EACA,KAAAN,CACF,IAAM,CACCA,EAAK,IAAI,OACdlB,GAA+Be,EAAOG,EAAMrB,GAAY,CAClDA,EAAS,YAAcqB,EAAK,YAChCrB,EAAS,OAAS6B,GAClB7B,EAAS,KAAO2B,EAChB3B,EAAS,mBAAqBqB,EAAK,mBACrC,CAAC,CACH,CAAC,EAAE,QAAQb,EAAc,SAAU,CAACU,EAAO,CACzC,QAAAS,EACA,MAAAmB,EACA,KAAAzB,CACF,IAAM,CACCA,EAAK,IAAI,OACdlB,GAA+Be,EAAOG,EAAMrB,GAAY,CAClDA,EAAS,YAAcqB,EAAK,YAChCrB,EAAS,OAAS+C,GAClB/C,EAAS,MAAS2B,GAAWmB,EAC/B,CAAC,CACH,CAAC,EAAE,WAAWjC,EAAoB,CAACK,EAAOmB,IAAW,CACnD,GAAM,CACJ,UAAAgB,CACF,EAAIzC,EAAuByB,CAAM,EACjC,OAAW,CAACY,EAAKX,CAAK,IAAK,OAAO,QAAQe,CAAS,GAGhDf,GAAO,SAAWT,IAAoBS,GAAO,SAAWS,KAEzDE,IAAQX,GAAO,YACbpB,EAAM+B,CAAG,EAAIX,EAGnB,CAAC,CACH,CACF,CAAC,EAEKgB,EAAsD,CAC1D,KAAM,CAAC,EACP,KAAM,CAAC,CACT,EACMC,KAAoB,eAAY,CACpC,KAAM,GAAGjD,CAAW,gBACpB,aAAcgD,EACd,SAAU,CACR,iBAAkB,CAChB,QAAQpC,EAAOmB,EAGV,CACH,OAAW,CACT,cAAAvC,EACA,aAAA0D,CACF,IAAKnB,EAAO,QAAS,CACnBoB,EAAuBvC,EAAOpB,CAAa,EAC3C,OAAW,CACT,KAAA4D,EACA,GAAAxD,CACF,IAAKsD,EAAc,CACjB,IAAMG,GAAqBzC,EAAM,KAAKwC,CAAI,IAAM,CAAC,GAAGxD,GAAM,uBAAuB,IAAM,CAAC,EAC9DyD,EAAkB,SAAS7D,CAAa,GAEhE6D,EAAkB,KAAK7D,CAAa,CAExC,CAGAoB,EAAM,KAAKpB,CAAa,EAAI0D,CAC9B,CACF,EACA,WAAS,sBAGL,CACN,CACF,EACA,cAAcb,EAAS,CACrBA,EAAQ,QAAQP,EAAW,QAAQ,kBAAmB,CAAClB,EAAO,CAC5D,QAAS,CACP,cAAApB,CACF,CACF,IAAM,CACJ2D,EAAuBvC,EAAOpB,CAAa,CAC7C,CAAC,EAAE,WAAWe,EAAoB,CAACK,EAAOmB,IAAW,CACnD,GAAM,CACJ,SAAAuB,CACF,EAAIhD,EAAuByB,CAAM,EACjC,OAAW,CAACqB,EAAMG,CAAY,IAAK,OAAO,QAAQD,EAAS,MAAQ,CAAC,CAAC,EACnE,OAAW,CAAC1D,EAAI4D,CAAS,IAAK,OAAO,QAAQD,CAAY,EAAG,CAC1D,IAAMF,GAAqBzC,EAAM,KAAKwC,CAAI,IAAM,CAAC,GAAGxD,GAAM,uBAAuB,IAAM,CAAC,EACxF,QAAWJ,KAAiBgE,EACAH,EAAkB,SAAS7D,CAAa,GAEhE6D,EAAkB,KAAK7D,CAAa,EAEtCoB,EAAM,KAAKpB,CAAa,EAAI8D,EAAS,KAAK9D,CAAa,CAE3D,CAEJ,CAAC,EAAE,cAAW,cAAQ,eAAYS,CAAU,KAAG,uBAAoBA,CAAU,CAAC,EAAG,CAACW,EAAOmB,IAAW,CAClG0B,EAA4B7C,EAAO,CAACmB,CAAM,CAAC,CAC7C,CAAC,EAAE,WAAWD,EAAW,QAAQ,qBAAqB,MAAO,CAAClB,EAAOmB,IAAW,CAC9E,IAAM2B,EAA2C3B,EAAO,QAAQ,IAAI,CAAC,CACnE,iBAAA4B,EACA,MAAA1B,CACF,KACS,CACL,KAAM,UACN,QAASA,EACT,KAAM,CACJ,cAAe,YACf,UAAW,UACX,IAAK0B,CACP,CACF,EACD,EACDF,EAA4B7C,EAAO8C,CAAW,CAChD,CAAC,CACH,CACF,CAAC,EACD,SAASP,EAAuBvC,EAA+BpB,EAA8B,CAC3F,IAAMoE,EAAeC,GAAWjD,EAAM,KAAKpB,CAAa,GAAK,CAAC,CAAC,EAG/D,QAAWsE,KAAOF,EAAc,CAC9B,IAAMG,EAAUD,EAAI,KACdE,EAAQF,EAAI,IAAM,wBAClBG,EAAmBrD,EAAM,KAAKmD,CAAO,IAAIC,CAAK,EAChDC,IACFrD,EAAM,KAAKmD,CAAO,EAAEC,CAAK,EAAIH,GAAWI,CAAgB,EAAE,OAAOC,GAAMA,IAAO1E,CAAa,EAE/F,CACA,OAAOoB,EAAM,KAAKpB,CAAa,CACjC,CACA,SAASiE,EAA4B7C,EAAkCuD,EAAsC,CAC3G,IAAMC,EAAoBD,EAAQ,IAAIpC,GAAU,CAC9C,IAAMmB,EAAemB,GAAyBtC,EAAQ,eAAgB3B,EAAaI,CAAa,EAC1F,CACJ,cAAAhB,CACF,EAAIuC,EAAO,KAAK,IAChB,MAAO,CACL,cAAAvC,EACA,aAAA0D,CACF,CACF,CAAC,EACDD,EAAkB,aAAa,iBAAiBrC,EAAOqC,EAAkB,QAAQ,iBAAiBmB,CAAiB,CAAC,CACtH,CAGA,IAAME,KAAoB,eAAY,CACpC,KAAM,GAAGtE,CAAW,iBACpB,aAAcF,GACd,SAAU,CACR,0BAA0B,EAAG,EAIC,CAE9B,EACA,uBAAuB,EAAG,EAEI,CAE9B,EACA,+BAAgC,CAAC,CACnC,CACF,CAAC,EACKyE,KAA6B,eAAY,CAC7C,KAAM,GAAGvE,CAAW,yBACpB,aAAcF,GACd,SAAU,CACR,qBAAsB,CACpB,QAAQP,EAAOwC,EAAgC,CAC7C,SAAO,gBAAaxC,EAAOwC,EAAO,OAAO,CAC3C,EACA,WAAS,sBAA4B,CACvC,CACF,CACF,CAAC,EACKyC,KAAc,eAAY,CAC9B,KAAM,GAAGxE,CAAW,UACpB,aAAc,CACZ,OAAQyE,GAAS,EACjB,QAASC,GAAkB,EAC3B,qBAAsB,GACtB,GAAGjE,CACL,EACA,SAAU,CACR,qBAAqBlB,EAAO,CAC1B,QAAA8B,CACF,EAA0B,CACxB9B,EAAM,qBAAuBA,EAAM,uBAAyB,YAAcc,IAAWgB,EAAU,WAAa,EAC9G,CACF,EACA,cAAegB,GAAW,CACxBA,EAAQ,QAAQsC,GAAUpF,GAAS,CACjCA,EAAM,OAAS,EACjB,CAAC,EAAE,QAAQqF,GAAWrF,GAAS,CAC7BA,EAAM,OAAS,EACjB,CAAC,EAAE,QAAQsF,GAAStF,GAAS,CAC3BA,EAAM,QAAU,EAClB,CAAC,EAAE,QAAQuF,GAAavF,GAAS,CAC/BA,EAAM,QAAU,EAClB,CAAC,EAGA,WAAWgB,EAAoBK,IAAU,CACxC,GAAGA,CACL,EAAE,CACJ,CACF,CAAC,EACKmE,KAAkB,mBAAgB,CACtC,QAASjD,EAAW,QACpB,UAAWc,EAAc,QACzB,SAAUK,EAAkB,QAC5B,cAAesB,EAA2B,QAC1C,OAAQC,EAAY,OACtB,CAAC,EACKQ,EAAkC,CAACzF,EAAOwC,IAAWgD,EAAgBrE,EAAc,MAAMqB,CAAM,EAAI,OAAYxC,EAAOwC,CAAM,EAC5HoC,EAAU,CACd,GAAGK,EAAY,QACf,GAAG1C,EAAW,QACd,GAAGwC,EAAkB,QACrB,GAAGC,EAA2B,QAC9B,GAAG3B,EAAc,QACjB,GAAGK,EAAkB,QACrB,cAAAvC,CACF,EACA,MAAO,CACL,QAAAsE,EACA,QAAAb,CACF,CACF,CC9iBO,IAAMc,GAA2B,OAAO,IAAI,gBAAgB,EA2B7DC,GAAsC,CAC1C,OAAQC,CACV,EAGMC,MAAsC,mBAAgBF,GAAiB,IAAM,CAAC,CAAC,EAC/EG,MAAyC,mBAAgBH,GAA0C,IAAM,CAAC,CAAC,EAE1G,SAASI,GAAoF,CAClG,mBAAAC,EACA,YAAAC,EACA,eAAAC,CACF,EAIG,CAED,IAAMC,EAAsBC,GAAqBP,GAC3CQ,EAAyBD,GAAqBN,GACpD,MAAO,CACL,mBAAAQ,EACA,2BAAAC,EACA,sBAAAC,EACA,oBAAAC,EACA,yBAAAC,EACA,eAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,aAAAC,CACF,EACA,SAASC,EAENC,EAAqC,CACtC,MAAO,CACL,GAAGA,EACH,GAAGC,GAAsBD,EAAS,MAAM,CAC1C,CACF,CACA,SAASN,EAAeQ,EAAsB,CAS5C,OARcA,EAAUlB,CAAW,CASrC,CACA,SAASW,EAAcO,EAAsB,CAC3C,OAAOR,EAAeQ,CAAS,GAAG,OACpC,CACA,SAASL,EAAiBK,EAAsBC,EAAyB,CACvE,OAAOR,EAAcO,CAAS,IAAIC,CAAQ,CAC5C,CACA,SAASP,EAAgBM,EAAsB,CAC7C,OAAOR,EAAeQ,CAAS,GAAG,SACpC,CACA,SAASJ,EAAaI,EAAsB,CAC1C,OAAOR,EAAeQ,CAAS,GAAG,MACpC,CACA,SAASE,EAAsBC,EAAsBC,EAA4DC,EAEtE,CACzC,OAAQC,GAAmB,CAEzB,GAAIA,IAAc/B,GAChB,OAAOQ,EAAeC,EAAoBqB,CAAQ,EAEpD,IAAME,EAAiB1B,EAAmB,CACxC,UAAAyB,EACA,mBAAAF,EACA,aAAAD,CACF,CAAC,EAED,OAAOpB,EADsBE,GAAqBU,EAAiBV,EAAOsB,CAAc,GAAK7B,GAClD2B,CAAQ,CACrD,CACF,CACA,SAASlB,EAAmBgB,EAAsBC,EAAyD,CACzG,OAAOF,EAAsBC,EAAcC,EAAoBP,CAAgB,CACjF,CACA,SAAST,EAA2Be,EAAsBC,EAAsE,CAC9H,GAAM,CACJ,qBAAAI,CACF,EAAIJ,EACJ,SAASK,EAENX,EAAgE,CACjE,IAAMY,EAAwB,CAC5B,GAAIZ,EACJ,GAAGC,GAAsBD,EAAS,MAAM,CAC1C,EACM,CACJ,UAAAa,EACA,QAAAC,EACA,UAAAC,CACF,EAAIH,EACEI,EAAYD,IAAc,UAC1BE,EAAaF,IAAc,WACjC,MAAO,CACL,GAAGH,EACH,YAAaM,EAAeR,EAAsBE,EAAsB,KAAMA,EAAsB,YAAY,EAChH,gBAAiBO,EAAmBT,EAAsBE,EAAsB,KAAMA,EAAsB,YAAY,EACxH,mBAAoBC,GAAaG,EACjC,uBAAwBH,GAAaI,EACrC,qBAAsBH,GAAWE,EACjC,yBAA0BF,GAAWG,CACvC,CACF,CACA,OAAOb,EAAsBC,EAAcC,EAAoBK,CAA4B,CAC7F,CACA,SAASpB,GAAwB,CAC/B,OAAQ6B,GAAM,CACZ,IAAIC,EACJ,OAAI,OAAOD,GAAO,SAChBC,EAAaC,GAAoBF,CAAE,GAAK3C,GAExC4C,EAAaD,EAIRnC,EAD6BoC,IAAe5C,GAAYW,EAD/BD,GAAqBO,EAAeP,CAAK,GAAG,YAAYkC,CAAoB,GAAKxC,GAE9DkB,CAAgB,CACrE,CACF,CACA,SAASP,EAAoBL,EAAkBoC,EAI5C,CACD,IAAMC,EAAWrC,EAAMH,CAAW,EAC5ByC,EAAe,IAAI,IACnBC,EAAYC,GAAUJ,EAAMK,GAAcC,EAAoB,EACpE,QAAWC,KAAOJ,EAAW,CAC3B,IAAMK,EAAWP,EAAS,SAAS,KAAKM,EAAI,IAAI,EAChD,GAAI,CAACC,EACH,SAEF,IAAIC,GAA2BF,EAAI,KAAO,OAE1CC,EAASD,EAAI,EAAE,EAEf,OAAO,OAAOC,CAAQ,EAAE,KAAK,IAAM,CAAC,EACpC,QAAWE,KAAcD,EACvBP,EAAa,IAAIQ,CAAU,CAE/B,CACA,OAAO,MAAM,KAAKR,EAAa,OAAO,CAAC,EAAE,QAAQS,GAAiB,CAChE,IAAMC,EAAgBX,EAAS,QAAQU,CAAa,EACpD,OAAOC,EAAgB,CACrB,cAAAD,EACA,aAAcC,EAAc,aAC5B,aAAcA,EAAc,YAC9B,EAAI,CAAC,CACP,CAAC,CACH,CACA,SAAS1C,EAAsEN,EAAkBiD,EAA2E,CAC1K,OAAOT,GAAU,OAAO,OAAOhC,EAAcR,CAAK,CAAoB,EAAIkD,GAEpEA,GAAO,eAAiBD,GAAaC,EAAM,SAAW1D,EAAsB0D,GAASA,EAAM,YAAY,CAC/G,CACA,SAASnB,EAAeoB,EAAoDC,EAAuCC,EAA6B,CAC9I,OAAKD,EACEE,GAAiBH,EAASC,EAAMC,CAAQ,GAAK,KADlC,EAEpB,CACA,SAASrB,EAAmBmB,EAAoDC,EAAuCC,EAA6B,CAClJ,MAAI,CAACD,GAAQ,CAACD,EAAQ,qBAA6B,GAC5CI,GAAqBJ,EAASC,EAAMC,CAAQ,GAAK,IAC1D,CACF,CCtOA,IAAAG,GAA0K,4BCG1K,IAAMC,GAA0C,QAAU,IAAI,QAAY,OAC7DC,GAAqD,CAAC,CACjE,aAAAC,EACA,UAAAC,CACF,IAAM,CACJ,IAAIC,EAAa,GACXC,EAASL,IAAO,IAAIG,CAAS,EACnC,GAAI,OAAOE,GAAW,SACpBD,EAAaC,MACR,CACL,IAAMC,EAAc,KAAK,UAAUH,EAAW,CAACI,EAAKC,KAElDA,EAAQ,OAAOA,GAAU,SAAW,CAClC,QAASA,EAAM,SAAS,CAC1B,EAAIA,EAEJA,KAAQ,iBAAcA,CAAK,EAAI,OAAO,KAAKA,CAAK,EAAE,KAAK,EAAE,OAAY,CAACC,EAAKF,KACzEE,EAAIF,CAAG,EAAKC,EAAcD,CAAG,EACtBE,GACN,CAAC,CAAC,EAAID,EACFA,EACR,KACG,iBAAcL,CAAS,GACzBH,IAAO,IAAIG,EAAWG,CAAW,EAEnCF,EAAaE,CACf,CACA,MAAO,GAAGJ,CAAY,IAAIE,CAAU,GACtC,EDpBA,IAAAM,GAA+B,oBA4SxB,SAASC,MAAmEC,EAAsD,CACvI,OAAO,SAAuBC,EAAS,CACrC,IAAMC,KAAyB,mBAAgBC,GAA0BF,EAAQ,yBAAyBE,EAAQ,CAChH,YAAcF,EAAQ,aAAe,KACvC,CAAC,CAAC,EACIG,EAA4D,CAChE,YAAa,MACb,kBAAmB,GACnB,0BAA2B,GAC3B,eAAgB,GAChB,mBAAoB,GACpB,qBAAsB,UACtB,GAAGH,EACH,uBAAAC,EACA,mBAAmBG,EAAc,CAC/B,IAAIC,EAA0BC,GAC9B,GAAI,uBAAwBF,EAAa,mBAAoB,CAC3D,IAAMG,EAAcH,EAAa,mBAAmB,mBACpDC,EAA0BD,GAAgB,CACxC,IAAMI,EAAgBD,EAAYH,CAAY,EAC9C,OAAI,OAAOI,GAAkB,SAEpBA,EAIAF,GAA0B,CAC/B,GAAGF,EACH,UAAWI,CACb,CAAC,CAEL,CACF,MAAWR,EAAQ,qBACjBK,EAA0BL,EAAQ,oBAEpC,OAAOK,EAAwBD,CAAY,CAC7C,EACA,SAAU,CAAC,GAAIJ,EAAQ,UAAY,CAAC,CAAE,CACxC,EACMS,EAA2C,CAC/C,oBAAqB,CAAC,EACtB,MAAMC,EAAI,CAERA,EAAG,CACL,EACA,UAAQ,UAAO,EACf,uBAAAT,EACA,sBAAoB,mBAAeC,GAAUD,EAAuBC,CAAM,GAAK,IAAI,CACrF,EACMS,EAAM,CACV,gBAAAC,EACA,iBAAiB,CACf,YAAAC,EACA,UAAAC,CACF,EAAG,CACD,GAAID,EACF,QAAWE,KAAMF,EACVV,EAAoB,SAAU,SAASY,CAAS,GAElDZ,EAAoB,SAAmB,KAAKY,CAAE,EAIrD,GAAID,EACF,OAAW,CAACE,EAAcC,CAAiB,IAAK,OAAO,QAAQH,CAAS,EAClE,OAAOG,GAAsB,WAC/BA,EAAkBC,EAAsBT,EAASO,CAAY,CAAC,EAE9D,OAAO,OAAOE,EAAsBT,EAASO,CAAY,GAAK,CAAC,EAAGC,CAAiB,EAIzF,OAAON,CACT,CACF,EACMQ,EAAqBpB,EAAQ,IAAIqB,GAAKA,EAAE,KAAKT,EAAYR,EAA4BM,CAAO,CAAC,EACnG,SAASG,EAAgBS,EAAmD,CAC1E,IAAMC,EAAqBD,EAAO,UAAU,CAC1C,MAAOE,IAAM,CACX,GAAGA,EACH,KAAMC,EACR,GACA,SAAUD,IAAM,CACd,GAAGA,EACH,KAAME,EACR,GACA,cAAeF,IAAM,CACnB,GAAGA,EACH,KAAMG,EACR,EACF,CAAC,EACD,OAAW,CAACV,EAAcW,CAAU,IAAK,OAAO,QAAQL,CAAkB,EAAG,CAC3E,GAAID,EAAO,mBAAqB,IAAQL,KAAgBP,EAAQ,oBAAqB,CACnF,GAAIY,EAAO,mBAAqB,QAC9B,MAAM,IAAI,SAA8C,GAAAO,wBAAwB,EAAE,CAAwI,EACjN,OAAO,QAAY,IAG9B,QACF,CACI,OAAO,QAAY,IAmBvBnB,EAAQ,oBAAoBO,CAAY,EAAIW,EAC5C,QAAWP,KAAKD,EACdC,EAAE,eAAeJ,EAAcW,CAAU,CAE7C,CACA,OAAOhB,CACT,CACA,OAAOA,EAAI,gBAAgB,CACzB,UAAWX,EAAQ,SACrB,CAAC,CACH,CACF,CEzbA,IAAA6B,GAAkE,4BAErDC,GAAwB,OAAO,EAOrC,SAASC,IAAoE,CAClF,OAAO,UAAY,CACjB,MAAM,IAAI,SAA8C,GAAAC,wBAAwB,EAAE,CAAmG,CACvL,CACF,CCTO,SAASC,EAA6BC,KAAcC,EAAqC,CAC9F,OAAO,OAAO,OAAOD,EAAQ,GAAGC,CAAI,CACtC,CCDO,IAAMC,GAAoI,CAAC,CAChJ,IAAAC,EACA,WAAAC,EACA,cAAAC,EACA,MAAAC,CACF,IAAM,CACJ,IAAMC,EAAsB,GAAGJ,EAAI,WAAW,iBAC1CK,EAA2C,KAC3CC,EAA+D,KAC7D,CACJ,0BAAAC,EACA,uBAAAC,CACF,EAAIR,EAAI,gBAIFS,EAA8B,CAACC,EAAiDC,IAAmB,CACvG,GAAIJ,EAA0B,MAAMI,CAAM,EAAG,CAC3C,GAAM,CACJ,cAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAAIH,EAAO,QACLI,EAAML,EAAqB,IAAIE,CAAa,EAClD,OAAIG,GAAK,IAAIF,CAAS,GACpBE,EAAI,IAAIF,EAAWC,CAAO,EAErB,EACT,CACA,GAAIN,EAAuB,MAAMG,CAAM,EAAG,CACxC,GAAM,CACJ,cAAAC,EACA,UAAAC,CACF,EAAIF,EAAO,QACLI,EAAML,EAAqB,IAAIE,CAAa,EAClD,OAAIG,GACFA,EAAI,OAAOF,CAAS,EAEf,EACT,CACA,GAAIb,EAAI,gBAAgB,kBAAkB,MAAMW,CAAM,EACpD,OAAAD,EAAqB,OAAOC,EAAO,QAAQ,aAAa,EACjD,GAET,GAAIV,EAAW,QAAQ,MAAMU,CAAM,EAAG,CACpC,GAAM,CACJ,KAAM,CACJ,IAAAK,EACA,UAAAH,CACF,CACF,EAAIF,EACEM,EAAWC,GAAoBR,EAAsBM,EAAI,cAAeG,EAAY,EAC1F,OAAIH,EAAI,WACNC,EAAS,IAAIJ,EAAWG,EAAI,qBAAuBC,EAAS,IAAIJ,CAAS,GAAK,CAAC,CAAC,EAE3E,EACT,CACA,IAAIO,EAAU,GACd,GAAInB,EAAW,SAAS,MAAMU,CAAM,EAAG,CACrC,GAAM,CACJ,KAAM,CACJ,UAAAU,EACA,IAAAL,EACA,UAAAH,CACF,CACF,EAAIF,EACJ,GAAIU,GAAaL,EAAI,UAAW,CAC9B,IAAMC,EAAWC,GAAoBR,EAAsBM,EAAI,cAAeG,EAAY,EAC1FF,EAAS,IAAIJ,EAAWG,EAAI,qBAAuBC,EAAS,IAAIJ,CAAS,GAAK,CAAC,CAAC,EAChFO,EAAU,EACZ,CACF,CACA,OAAOA,CACT,EACME,EAAmB,IAAMpB,EAAc,qBAUvCqB,EAA+C,CACnD,iBAAAD,EACA,qBAX4BV,GACNU,EAAiB,EACQ,IAAIV,CAAa,GAC/B,MAAQ,EASzC,oBAP0B,CAACA,EAAuBC,IAE3C,CAAC,CADcS,EAAiB,GACf,IAAIV,CAAa,GAAG,IAAIC,CAAS,CAM3D,EACA,SAASW,EAAuBd,EAAoE,CAIlG,OAAO,KAAK,MAAM,KAAK,UAAU,OAAO,YAAY,CAAC,GAAGA,CAAoB,EAAE,IAAI,CAAC,CAACe,EAAGC,CAAC,IAAM,CAACD,EAAG,OAAO,YAAYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7H,CACA,MAAO,CAACf,EAAQR,IAAoF,CAKlG,GAJKE,IAEHA,EAAwBmB,EAAuBtB,EAAc,oBAAoB,GAE/EF,EAAI,KAAK,cAAc,MAAMW,CAAM,EACrC,OAAAN,EAAwB,CAAC,EACzBH,EAAc,qBAAqB,MAAM,EACzCI,EAAkB,KACX,CAAC,GAAM,EAAK,EAOrB,GAAIN,EAAI,gBAAgB,8BAA8B,MAAMW,CAAM,EAChE,MAAO,CAAC,GAAOY,CAAqB,EAItC,IAAMI,EAAYlB,EAA4BP,EAAc,qBAAsBS,CAAM,EACpFiB,EAAuB,GAM3B,GAAID,EAAW,CACRrB,IAMHA,EAAkB,WAAW,IAAM,CAEjC,IAAMuB,EAAsCL,EAAuBtB,EAAc,oBAAoB,EAE/F,CAAC,CAAE4B,CAAO,KAAI,sBAAmBzB,EAAuB,IAAMwB,CAAgB,EAGpF1B,EAAM,KAAKH,EAAI,gBAAgB,qBAAqB8B,CAAO,CAAC,EAE5DzB,EAAwBwB,EACxBvB,EAAkB,IACpB,EAAG,GAAG,GAER,IAAMyB,EAA4B,OAAOpB,EAAO,MAAQ,UAAY,CAAC,CAACA,EAAO,KAAK,WAAWP,CAAmB,EAC1G4B,EAAiC/B,EAAW,SAAS,MAAMU,CAAM,GAAKA,EAAO,KAAK,WAAa,CAAC,CAACA,EAAO,KAAK,IAAI,UACvHiB,EAAuB,CAACG,GAA6B,CAACC,CACxD,CACA,MAAO,CAACJ,EAAsB,EAAK,CACrC,CACF,EC7GO,IAAMK,GAAmC,WAAgB,IAAQ,EAC3DC,GAAsD,CAAC,CAClE,YAAAC,EACA,IAAAC,EACA,WAAAC,EACA,QAAAC,EACA,cAAAC,EACA,UAAW,CACT,iBAAAC,EACA,aAAAC,CACF,EACA,qBAAAC,EACA,MAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,EACA,uBAAAC,EACA,qBAAAC,CACF,EAAIV,EAAI,gBACFW,KAAwB,WAAQF,EAAuB,MAAOR,EAAW,UAAWA,EAAW,SAAUS,EAAqB,KAAK,EACzI,SAASE,EAAgCC,EAAuB,CAC9D,IAAMC,EAAgBX,EAAc,qBAAqB,IAAIU,CAAa,EAC1E,OAAKC,EAGoBA,EAAc,KAAO,EAFrC,EAIX,CACA,IAAMC,EAAoD,CAAC,EAC3D,SAASC,EAENC,EAA8C,CAC/C,QAAWC,KAAWD,EAAW,OAAO,EACtCC,GAAS,QAAQ,CAErB,CACA,IAAMC,EAAwC,CAACC,EAAQb,IAAU,CAC/D,IAAMc,EAAQd,EAAM,SAAS,EACvBe,EAASjB,EAAagB,CAAK,EACjC,GAAIV,EAAsBS,CAAM,EAAG,CACjC,IAAIG,EACJ,GAAIb,EAAqB,MAAMU,CAAM,EACnCG,EAAiBH,EAAO,QAAQ,IAAII,GAASA,EAAM,iBAAiB,aAAa,MAC5E,CACL,GAAM,CACJ,cAAAX,CACF,EAAIJ,EAAuB,MAAMW,CAAM,EAAIA,EAAO,QAAUA,EAAO,KAAK,IACxEG,EAAiB,CAACV,CAAa,CACjC,CACAY,EAAsBF,EAAgBhB,EAAOe,CAAM,CACrD,CACA,GAAItB,EAAI,KAAK,cAAc,MAAMoB,CAAM,EAAG,CACxC,OAAW,CAACM,EAAKC,CAAO,IAAK,OAAO,QAAQZ,CAAsB,EAC5DY,GAAS,aAAaA,CAAO,EACjC,OAAOZ,EAAuBW,CAAG,EAEnCV,EAAiBb,EAAc,cAAc,EAC7Ca,EAAiBb,EAAc,gBAAgB,CACjD,CACA,GAAID,EAAQ,mBAAmBkB,CAAM,EAAG,CACtC,GAAM,CACJ,QAAAQ,CACF,EAAI1B,EAAQ,uBAAuBkB,CAAM,EAIzCK,EAAsB,OAAO,KAAKG,CAAO,EAAsBrB,EAAOe,CAAM,CAC9E,CACF,EACA,SAASG,EAAsBI,EAA4B7B,EAAuBsB,EAA6B,CAC7G,IAAMD,EAAQrB,EAAI,SAAS,EAC3B,QAAWa,KAAiBgB,EAAW,CACrC,IAAML,EAAQpB,EAAiBiB,EAAOR,CAAa,EAC/CW,GAAO,cACTM,EAAkBjB,EAAeW,EAAM,aAAcxB,EAAKsB,CAAM,CAEpE,CACF,CACA,SAASQ,EAAkBjB,EAA8BkB,EAAsB/B,EAAuBsB,EAA6B,CAEjI,IAAMU,EADqBC,EAAsB/B,EAAS6B,CAAY,GACxB,mBAAqBT,EAAO,kBAC1E,GAAIU,IAAsB,IAExB,OAMF,IAAME,EAAyB,KAAK,IAAI,EAAG,KAAK,IAAIF,EAAmBnC,EAAgC,CAAC,EACxG,GAAI,CAACe,EAAgCC,CAAa,EAAG,CACnD,IAAMsB,EAAiBpB,EAAuBF,CAAa,EACvDsB,GACF,aAAaA,CAAc,EAE7BpB,EAAuBF,CAAa,EAAI,WAAW,IAAM,CACvD,GAAI,CAACD,EAAgCC,CAAa,EAAG,CAEnD,IAAMW,EAAQpB,EAAiBJ,EAAI,SAAS,EAAGa,CAAa,EACxDW,GAAO,cACYxB,EAAI,SAASM,EAAqBkB,EAAM,aAAcA,EAAM,YAAY,CAAC,GAChF,MAAM,EAEtBxB,EAAI,SAASQ,EAAkB,CAC7B,cAAAK,CACF,CAAC,CAAC,CACJ,CACA,OAAOE,EAAwBF,CAAa,CAC9C,EAAGqB,EAAyB,GAAI,CAClC,CACF,CACA,OAAOf,CACT,EClEA,IAAMiB,GAAqB,IAAI,MAAM,kDAAkD,EAG1EC,GAAqD,CAAC,CACjE,IAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAW,CACT,iBAAAC,EACA,eAAAC,CACF,CACF,IAAM,CACJ,IAAMC,KAAe,sBAAmBL,CAAU,EAC5CM,KAAkB,sBAAmBL,CAAa,EAClDM,KAAmB,eAAYP,EAAYC,CAAa,EAQxDO,EAA+C,CAAC,EAChD,CACJ,kBAAAC,EACA,qBAAAC,EACA,qBAAAC,CACF,EAAId,EAAI,gBACR,SAASe,EAAsBC,EAAkBC,EAAeC,EAAe,CAC7E,IAAMC,EAAYR,EAAaK,CAAQ,EACnCG,GAAW,gBACbA,EAAU,cAAc,CACtB,KAAAF,EACA,KAAAC,CACF,CAAC,EACD,OAAOC,EAAU,cAErB,CACA,SAASC,EAAqBJ,EAAkB,CAC9C,IAAMG,EAAYR,EAAaK,CAAQ,EACnCG,IACF,OAAOR,EAAaK,CAAQ,EAC5BG,EAAU,kBAAkB,EAEhC,CACA,SAASE,EAAoBC,EAA0F,CACrH,GAAM,CACJ,IAAAC,EACA,UAAAC,CACF,EAAIF,EAAO,KACL,CACJ,aAAAG,EACA,aAAAC,CACF,EAAIH,EACJ,MAAO,CAACE,EAAcC,EAAcF,CAAS,CAC/C,CACA,IAAMG,EAAwC,CAACL,EAAQM,EAAOC,IAAgB,CAC5E,IAAMb,EAAWc,EAAYR,CAAM,EACnC,SAASS,EAAoBN,EAAsBT,EAAyBQ,EAAmBE,EAAuB,CACpH,IAAMM,EAAW1B,EAAiBuB,EAAab,CAAQ,EACjDiB,EAAW3B,EAAiBsB,EAAM,SAAS,EAAGZ,CAAQ,EACxD,CAACgB,GAAYC,GACfC,EAAaT,EAAcC,EAAcV,EAAUY,EAAOJ,CAAS,CAEvE,CACA,GAAIrB,EAAW,QAAQ,MAAMmB,CAAM,EAAG,CACpC,GAAM,CAACG,EAAcC,EAAcF,CAAS,EAAIH,EAAoBC,CAAM,EAC1ES,EAAoBN,EAAcT,EAAUQ,EAAWE,CAAY,CACrE,SAAWZ,EAAqB,MAAMQ,CAAM,EAC1C,OAAW,CACT,iBAAAa,EACA,MAAAC,CACF,IAAKd,EAAO,QAAS,CACnB,GAAM,CACJ,aAAAG,EACA,aAAAC,EACA,cAAAW,CACF,EAAIF,EACJJ,EAAoBN,EAAcY,EAAef,EAAO,KAAK,UAAWI,CAAY,EACpFX,EAAsBsB,EAAeD,EAAO,CAAC,CAAC,CAChD,SACShC,EAAc,QAAQ,MAAMkB,CAAM,GAE3C,GADcM,EAAM,SAAS,EAAE3B,CAAW,EAAE,UAAUe,CAAQ,EACnD,CACT,GAAM,CAACS,EAAcC,EAAcF,CAAS,EAAIH,EAAoBC,CAAM,EAC1EY,EAAaT,EAAcC,EAAcV,EAAUY,EAAOJ,CAAS,CACrE,UACSd,EAAiBY,CAAM,EAChCP,EAAsBC,EAAUM,EAAO,QAASA,EAAO,KAAK,aAAa,UAChEV,EAAkB,MAAMU,CAAM,GAAKT,EAAqB,MAAMS,CAAM,EAC7EF,EAAqBJ,CAAQ,UACpBhB,EAAI,KAAK,cAAc,MAAMsB,CAAM,EAC5C,QAAWN,KAAY,OAAO,KAAKL,CAAY,EAC7CS,EAAqBJ,CAAQ,CAGnC,EACA,SAASc,EAAYR,EAAa,CAChC,OAAId,EAAac,CAAM,EAAUA,EAAO,KAAK,IAAI,cAC7Cb,EAAgBa,CAAM,EACjBA,EAAO,KAAK,IAAI,eAAiBA,EAAO,KAAK,UAElDV,EAAkB,MAAMU,CAAM,EAAUA,EAAO,QAAQ,cACvDT,EAAqB,MAAMS,CAAM,EAAUgB,GAAoBhB,EAAO,OAAO,EAC1E,EACT,CACA,SAASY,EAAaT,EAAsBC,EAAmBW,EAAuBT,EAAyBJ,EAAmB,CAChI,IAAMe,EAAqBC,EAAsBtC,EAASuB,CAAY,EAChEgB,EAAoBF,GAAoB,kBAC9C,GAAI,CAACE,EAAmB,OACxB,IAAMtB,EAAY,CAAC,EACbuB,EAAoB,IAAI,QAAcC,GAAW,CACrDxB,EAAU,kBAAoBwB,CAChC,CAAC,EACKC,EAG0B,QAAQ,KAAK,CAAC,IAAI,QAG/CD,GAAW,CACZxB,EAAU,cAAgBwB,CAC5B,CAAC,EAAGD,EAAkB,KAAK,IAAM,CAC/B,MAAM5C,EACR,CAAC,CAAC,CAAC,EAGH8C,EAAgB,MAAM,IAAM,CAAC,CAAC,EAC9BjC,EAAa0B,CAAa,EAAIlB,EAC9B,IAAM0B,EAAY7C,EAAI,UAAUyB,CAAY,EAAU,OAAOqB,GAAqBP,CAAkB,EAAIb,EAAeW,CAAa,EAC9HU,EAAQnB,EAAM,SAAS,CAACoB,EAAGC,EAAIF,IAAUA,CAAK,EAC9CG,EAAe,CACnB,GAAGtB,EACH,cAAe,IAAMiB,EAASjB,EAAM,SAAS,CAAC,EAC9C,UAAAJ,EACA,MAAAuB,EACA,iBAAmBD,GAAqBP,CAAkB,EAAKY,GAA8BvB,EAAM,SAAS5B,EAAI,KAAK,gBAAgByB,EAAuBC,EAAuByB,CAAY,CAAC,EAAI,OACpM,gBAAAP,EACA,kBAAAF,CACF,EACMU,EAAiBX,EAAkBf,EAAcwB,CAAmB,EAE1E,QAAQ,QAAQE,CAAc,EAAE,MAAMC,GAAK,CACzC,GAAIA,IAAMvD,GACV,MAAMuD,CACR,CAAC,CACH,CACA,OAAO1B,CACT,ECjPO,IAAM2B,GAA+C,CAAC,CAC3D,IAAAC,EACA,QAAS,CACP,OAAAC,CACF,EACA,YAAAC,CACF,IACS,CAACC,EAAQC,IAAU,CACpBJ,EAAI,KAAK,cAAc,MAAMG,CAAM,GAErCC,EAAM,SAASJ,EAAI,gBAAgB,qBAAqBC,CAAM,CAAC,EAE7D,OAAO,QAAY,GAOzB,ECZK,IAAMI,GAAyD,CAAC,CACrE,YAAAC,EACA,QAAAC,EACA,QAAS,CACP,oBAAAC,CACF,EACA,cAAAC,EACA,WAAAC,EACA,IAAAC,EACA,cAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,CACF,EAAIJ,EAAI,gBACFK,KAAwB,cAAQ,eAAYP,CAAa,KAAG,uBAAoBA,CAAa,CAAC,EAC9FQ,KAAa,cAAQ,eAAYP,EAAYD,CAAa,KAAG,cAAWC,EAAYD,CAAa,CAAC,EACpGS,EAAwD,CAAC,EAEzDC,EAAsB,EACpBC,EAAwC,CAACC,EAAQC,IAAU,EAC3DZ,EAAW,QAAQ,MAAMW,CAAM,GAAKZ,EAAc,QAAQ,MAAMY,CAAM,IACxEF,IAEEF,EAAWI,CAAM,IACnBF,EAAsB,KAAK,IAAI,EAAGA,EAAsB,CAAC,GAEvDH,EAAsBK,CAAM,EAC9BE,EAAeC,GAAyBH,EAAQ,kBAAmBb,EAAqBI,CAAa,EAAGU,CAAK,EACpGL,EAAWI,CAAM,EAC1BE,EAAe,CAAC,EAAGD,CAAK,EACfX,EAAI,KAAK,eAAe,MAAMU,CAAM,GAC7CE,EAAeE,GAAoBJ,EAAO,QAAS,OAAW,OAAW,OAAW,OAAWT,CAAa,EAAGU,CAAK,CAExH,EACA,SAASI,GAAqB,CAC5B,OAAOP,EAAsB,CAC/B,CACA,SAASI,EAAeI,EAAgDL,EAAyB,CAC/F,IAAMM,EAAYN,EAAM,SAAS,EAC3BO,EAAQD,EAAUtB,CAAW,EAEnC,GADAY,EAAwB,KAAK,GAAGS,CAAO,EACnCE,EAAM,OAAO,uBAAyB,WAAaH,EAAmB,EACxE,OAEF,IAAMI,EAAOZ,EAEb,GADAA,EAA0B,CAAC,EACvBY,EAAK,SAAW,EAAG,OACvB,IAAMC,EAAepB,EAAI,KAAK,oBAAoBiB,EAAWE,CAAI,EACjEvB,EAAQ,MAAM,IAAM,CAClB,IAAMyB,EAAc,MAAM,KAAKD,EAAa,OAAO,CAAC,EACpD,OAAW,CACT,cAAAE,CACF,IAAKD,EAAa,CAChB,IAAME,EAAgBL,EAAM,QAAQI,CAAa,EAC3CE,EAAuBC,GAAoBtB,EAAc,qBAAsBmB,EAAeI,EAAY,EAC5GH,IACEC,EAAqB,OAAS,EAChCb,EAAM,SAASP,EAAkB,CAC/B,cAAekB,CACjB,CAAC,CAAC,EACOC,EAAc,SAAWI,GAClChB,EAAM,SAAST,EAAaqB,CAAa,CAAC,EAGhD,CACF,CAAC,CACH,CACA,OAAOd,CACT,EC3EO,IAAMmB,GAA8C,CAAC,CAC1D,YAAAC,EACA,WAAAC,EACA,IAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,aAAAC,EACA,qBAAAC,CACF,EAAIF,EAGEG,EAAwB,IAAI,IAC9BC,EAA2D,KACzDC,EAAwC,CAACC,EAAQC,IAAU,EAC3DT,EAAI,gBAAgB,0BAA0B,MAAMQ,CAAM,GAAKR,EAAI,gBAAgB,uBAAuB,MAAMQ,CAAM,IACxHE,EAAsBF,EAAO,QAAQ,cAAeC,CAAK,GAEvDV,EAAW,QAAQ,MAAMS,CAAM,GAAKT,EAAW,SAAS,MAAMS,CAAM,GAAKA,EAAO,KAAK,YACvFE,EAAsBF,EAAO,KAAK,IAAI,cAAeC,CAAK,GAExDV,EAAW,UAAU,MAAMS,CAAM,GAAKT,EAAW,SAAS,MAAMS,CAAM,GAAK,CAACA,EAAO,KAAK,YAC1FG,EAAcH,EAAO,KAAK,IAAKC,CAAK,EAElCT,EAAI,KAAK,cAAc,MAAMQ,CAAM,IACrCI,EAAW,EAEPN,IACF,aAAaA,CAAkB,EAC/BA,EAAqB,MAEvBD,EAAsB,MAAM,EAEhC,EACA,SAASK,EAAsBG,EAAuBb,EAAuB,CAC3EK,EAAsB,IAAIQ,CAAa,EAClCP,IACHA,EAAqB,WAAW,IAAM,CAEpC,QAAWQ,KAAOT,EAChBU,EAAsB,CACpB,cAAeD,CACjB,EAAGd,CAAG,EAERK,EAAsB,MAAM,EAC5BC,EAAqB,IACvB,EAAG,CAAC,EAER,CACA,SAASK,EAAc,CACrB,cAAAE,CACF,EAA4Bb,EAAuB,CACjD,IAAMgB,EAAQhB,EAAI,SAAS,EAAEF,CAAW,EAClCmB,EAAgBD,EAAM,QAAQH,CAAa,EAC3CK,EAAgBd,EAAqB,IAAIS,CAAa,EAC5D,GAAI,CAACI,GAAiBA,EAAc,SAAWE,EAAsB,OACrE,GAAM,CACJ,sBAAAC,EACA,uBAAAC,CACF,EAAIC,EAA0BJ,CAAa,EAC3C,GAAI,CAAC,OAAO,SAASE,CAAqB,EAAG,OAC7C,IAAMG,EAAcpB,EAAa,IAAIU,CAAa,EAC9CU,GAAa,UACf,aAAaA,EAAY,OAAO,EAChCA,EAAY,QAAU,QAExB,IAAMC,EAAoB,KAAK,IAAI,EAAIJ,EACvCjB,EAAa,IAAIU,EAAe,CAC9B,kBAAAW,EACA,gBAAiBJ,EACjB,QAAS,WAAW,IAAM,EACpBJ,EAAM,OAAO,SAAW,CAACK,IAC3BrB,EAAI,SAASC,EAAagB,CAAa,CAAC,EAE1CN,EAAc,CACZ,cAAAE,CACF,EAAGb,CAAG,CACR,EAAGoB,CAAqB,CAC1B,CAAC,CACH,CACA,SAASL,EAAsB,CAC7B,cAAAF,CACF,EAA4Bb,EAAuB,CAEjD,IAAMiB,EADQjB,EAAI,SAAS,EAAEF,CAAW,EACZ,QAAQe,CAAa,EAC3CK,EAAgBd,EAAqB,IAAIS,CAAa,EAC5D,GAAI,CAACI,GAAiBA,EAAc,SAAWE,EAC7C,OAEF,GAAM,CACJ,sBAAAC,CACF,EAAIE,EAA0BJ,CAAa,EAS3C,GAAI,CAAC,OAAO,SAASE,CAAqB,EAAG,CAC3CK,EAAkBZ,CAAa,EAC/B,MACF,CACA,IAAMU,EAAcpB,EAAa,IAAIU,CAAa,EAC5CW,EAAoB,KAAK,IAAI,EAAIJ,GACnC,CAACG,GAAeC,EAAoBD,EAAY,oBAClDZ,EAAc,CACZ,cAAAE,CACF,EAAGb,CAAG,CAEV,CACA,SAASyB,EAAkBX,EAAa,CACtC,IAAMY,EAAevB,EAAa,IAAIW,CAAG,EACrCY,GAAc,SAChB,aAAaA,EAAa,OAAO,EAEnCvB,EAAa,OAAOW,CAAG,CACzB,CACA,SAASF,GAAa,CACpB,QAAWE,KAAOX,EAAa,KAAK,EAClCsB,EAAkBX,CAAG,CAEzB,CACA,SAASQ,EAA0BK,EAAmC,IAAI,IAAO,CAC/E,IAAIN,EAA8C,GAC9CD,EAAwB,OAAO,kBACnC,QAAWQ,KAASD,EAAY,OAAO,EAC/BC,EAAM,kBACVR,EAAwB,KAAK,IAAIQ,EAAM,gBAAkBR,CAAqB,EAC9EC,EAAyBO,EAAM,wBAA0BP,GAG7D,MAAO,CACL,sBAAAD,EACA,uBAAAC,CACF,CACF,CACA,OAAOd,CACT,EC0LO,IAAMsB,GAAqD,CAAC,CACjE,IAAAC,EACA,QAAAC,EACA,WAAAC,EACA,cAAAC,CACF,IAAM,CACJ,IAAMC,KAAiB,aAAUF,EAAYC,CAAa,EACpDE,KAAkB,cAAWH,EAAYC,CAAa,EACtDG,KAAoB,eAAYJ,EAAYC,CAAa,EAQzDI,EAA+C,CAAC,EA6DtD,MA5D8C,CAACC,EAAQC,IAAU,CAC/D,GAAIL,EAAeI,CAAM,EAAG,CAC1B,GAAM,CACJ,UAAAE,EACA,IAAK,CACH,aAAAC,EACA,aAAAC,CACF,CACF,EAAIJ,EAAO,KACLK,EAAqBC,EAAsBb,EAASU,CAAY,EAChEI,EAAiBF,GAAoB,eAC3C,GAAIE,EAAgB,CAClB,IAAMC,EAAY,CAAC,EACbC,EAAiB,IAAK,QAGW,CAACC,EAASC,IAAW,CAC1DH,EAAU,QAAUE,EACpBF,EAAU,OAASG,CACrB,CAAC,EAGDF,EAAe,MAAM,IAAM,CAAC,CAAC,EAC7BV,EAAaG,CAAS,EAAIM,EAC1B,IAAMI,EAAYpB,EAAI,UAAUW,CAAY,EAAU,OAAOU,GAAqBR,CAAkB,EAAID,EAAeF,CAAS,EAC1HY,EAAQb,EAAM,SAAS,CAACc,EAAGC,EAAIF,IAAUA,CAAK,EAC9CG,EAAe,CACnB,GAAGhB,EACH,cAAe,IAAMW,EAASX,EAAM,SAAS,CAAC,EAC9C,UAAAC,EACA,MAAAY,EACA,iBAAmBD,GAAqBR,CAAkB,EAAKa,GAA8BjB,EAAM,SAAST,EAAI,KAAK,gBAAgBW,EAAuBC,EAAuBc,CAAY,CAAC,EAAI,OACpM,eAAAT,CACF,EACAF,EAAeH,EAAca,CAAmB,CAClD,CACF,SAAWnB,EAAkBE,CAAM,EAAG,CACpC,GAAM,CACJ,UAAAE,EACA,cAAAiB,CACF,EAAInB,EAAO,KACXD,EAAaG,CAAS,GAAG,QAAQ,CAC/B,KAAMF,EAAO,QACb,KAAMmB,CACR,CAAC,EACD,OAAOpB,EAAaG,CAAS,CAC/B,SAAWL,EAAgBG,CAAM,EAAG,CAClC,GAAM,CACJ,UAAAE,EACA,kBAAAkB,EACA,cAAAD,CACF,EAAInB,EAAO,KACXD,EAAaG,CAAS,GAAG,OAAO,CAC9B,MAAOF,EAAO,SAAWA,EAAO,MAChC,iBAAkB,CAACoB,EACnB,KAAMD,CACR,CAAC,EACD,OAAOpB,EAAaG,CAAS,CAC/B,CACF,CAEF,ECnZO,IAAMmB,GAAkD,CAAC,CAC9D,YAAAC,EACA,QAAAC,EACA,IAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,CACF,EAAIH,EAAI,gBACFI,EAAwC,CAACC,EAAQC,IAAU,CAC3DC,GAAQ,MAAMF,CAAM,GACtBG,EAAoBF,EAAO,gBAAgB,EAEzCG,GAAS,MAAMJ,CAAM,GACvBG,EAAoBF,EAAO,oBAAoB,CAEnD,EACA,SAASE,EAAoBR,EAAuBU,EAA+C,CACjG,IAAMC,EAAQX,EAAI,SAAS,EAAEF,CAAW,EAClCc,EAAUD,EAAM,QAChBE,EAAgBX,EAAc,qBACpCH,EAAQ,MAAM,IAAM,CAClB,QAAWe,KAAiBD,EAAc,KAAK,EAAG,CAChD,IAAME,EAAgBH,EAAQE,CAAa,EACrCE,EAAuBH,EAAc,IAAIC,CAAa,EAC5D,GAAI,CAACE,GAAwB,CAACD,EAAe,SAC7C,IAAME,EAAS,CAAC,GAAGD,EAAqB,OAAO,CAAC,GAC1BC,EAAO,KAAKC,GAAOA,EAAIR,CAAI,IAAM,EAAI,GAAKO,EAAO,MAAMC,GAAOA,EAAIR,CAAI,IAAM,MAAS,GAAKC,EAAM,OAAOD,CAAI,KAE3HM,EAAqB,OAAS,EAChChB,EAAI,SAASG,EAAkB,CAC7B,cAAeW,CACjB,CAAC,CAAC,EACOC,EAAc,SAAWI,GAClCnB,EAAI,SAASC,EAAac,CAAa,CAAC,EAG9C,CACF,CAAC,CACH,CACA,OAAOX,CACT,EC3BO,SAASgB,GAA8GC,EAAiE,CAC7L,GAAM,CACJ,YAAAC,EACA,WAAAC,EACA,IAAAC,EACA,QAAAC,EACA,iBAAAC,CACF,EAAIL,EACE,CACJ,OAAAM,CACF,EAAIF,EACEG,EAAU,CACd,kBAAgB,gBAAgF,GAAGN,CAAW,iBAAiB,CACjI,EACMO,EAAwBC,GAAmBA,EAAO,KAAK,WAAW,GAAGR,CAAW,GAAG,EACnFS,EAA4C,CAACC,GAAsBC,GAA6BC,GAAgCC,GAAqBC,GAA4BC,EAA0B,EAqDjN,MAAO,CACL,WArDsHC,GAAS,CAC/H,IAAIC,EAAc,GACZC,EAAgBd,EAAiBY,EAAM,QAAQ,EAC/CG,EAAc,CAClB,GAAIpB,EACJ,cAAAmB,EACA,aAAAE,EACA,qBAAAb,EACA,MAAAS,CACF,EACMK,EAAWZ,EAAgB,IAAIa,GAASA,EAAMH,CAAW,CAAC,EAC1DI,EAAwBC,GAA2BL,CAAW,EAC9DM,EAAsBC,GAAwBP,CAAW,EAC/D,OAAOQ,GACEnB,GAAU,CACf,GAAI,IAAC,YAASA,CAAM,EAClB,OAAOmB,EAAKnB,CAAM,EAEfS,IACHA,EAAc,GAEdD,EAAM,SAASd,EAAI,gBAAgB,qBAAqBG,CAAM,CAAC,GAEjE,IAAMuB,EAAgB,CACpB,GAAGZ,EACH,KAAAW,CACF,EACME,EAAcb,EAAM,SAAS,EAC7B,CAACc,EAAsBC,CAAmB,EAAIR,EAAsBf,EAAQoB,EAAeC,CAAW,EACxGG,EAMJ,GALIF,EACFE,EAAML,EAAKnB,CAAM,EAEjBwB,EAAMD,EAEFf,EAAM,SAAS,EAAEhB,CAAW,IAIhCyB,EAAoBjB,EAAQoB,EAAeC,CAAW,EAClDtB,EAAqBC,CAAM,GAAKL,EAAQ,mBAAmBK,CAAM,GAGnE,QAAWyB,KAAWZ,EACpBY,EAAQzB,EAAQoB,EAAeC,CAAW,EAIhD,OAAOG,CACT,CAEJ,EAGE,QAAA1B,CACF,EACA,SAASc,EAAac,EAElB,CACF,OAAQnC,EAAM,IAAI,UAAUmC,EAAc,YAAY,EAAiC,SAASA,EAAc,aAAqB,CACjI,UAAW,GACX,aAAc,EAChB,CAAC,CACH,CACF,CC1DO,IAAMC,GAAgC,OAAO,EAiUvCC,GAAa,CAAC,CACzB,eAAAC,EAAiB,gBACnB,EAAuB,CAAC,KAA2B,CACjD,KAAMF,GACN,KAAKG,EAAK,CACR,UAAAC,EACA,SAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,qBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,qBAAAC,CACF,EAAGC,EAAS,IACV,iBAAc,EAEd,IAAMC,EAAgCC,IAChC,OAAO,QAAY,IAKhBA,GAET,OAAO,OAAOf,EAAK,CACjB,YAAAG,EACA,UAAW,CAAC,EACZ,gBAAiB,CACf,SAAAa,GACA,UAAAC,GACA,QAAAC,GACA,YAAAC,EACF,EACA,KAAM,CAAC,CACT,CAAC,EACD,IAAMC,EAAYC,GAAe,CAC/B,mBAAoBjB,EACpB,YAAAD,EACA,eAAAJ,CACF,CAAC,EACK,CACJ,oBAAAuB,EACA,yBAAAC,EACA,mBAAAC,EACA,2BAAAC,EACA,sBAAAC,CACF,EAAIN,EACJO,EAAW3B,EAAI,KAAM,CACnB,oBAAAsB,EACA,yBAAAC,CACF,CAAC,EACD,GAAM,CACJ,WAAAK,EACA,mBAAAC,EACA,cAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,uBAAAC,CACF,EAAIC,GAAY,CACd,UAAAnC,EACA,YAAAE,EACA,QAAAU,EACA,IAAAb,EACA,mBAAAI,EACA,cAAAU,EACA,UAAAM,EACA,gBAAAV,EACA,mBAAAC,EACA,qBAAAC,CACF,CAAC,EACK,CACJ,QAAAyB,EACA,QAASC,CACX,EAAIC,GAAW,CACb,QAAA1B,EACA,WAAAe,EACA,mBAAAC,EACA,cAAAC,EACA,mBAAA1B,EACA,YAAAD,EACA,cAAAW,EACA,OAAQ,CACN,eAAAP,EACA,mBAAAC,EACA,0BAAAF,EACA,kBAAAD,EACA,YAAAF,EACA,qBAAAM,CACF,CACF,CAAC,EACDkB,EAAW3B,EAAI,KAAM,CACnB,eAAA+B,EACA,gBAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,cAAeI,EAAa,cAC5B,mBAAoBA,EAAa,oBACnC,CAAC,EACDX,EAAW3B,EAAI,gBAAiBsC,CAAY,EAC5C,IAAME,EAAmB,IAAI,QACvBC,EAAoBC,GACVC,GAAoBH,EAAkBE,EAAU,KAAO,CACnE,qBAAsB,IAAI,IAC1B,aAAc,IAAI,IAClB,eAAgB,IAAI,IACpB,iBAAkB,IAAI,GACxB,EAAE,EAGE,CACJ,mBAAAE,EACA,2BAAAC,EACA,sBAAAC,EACA,wBAAAC,EACA,yBAAAC,EACA,uBAAAC,EACA,qBAAAC,CACF,EAAIC,GAAc,CAChB,WAAAvB,EACA,cAAAE,EACA,mBAAAD,EACA,IAAA7B,EACA,mBAAoBI,EACpB,QAAAS,EACA,iBAAA4B,CACF,CAAC,EACDd,EAAW3B,EAAI,KAAM,CACnB,wBAAA+C,EACA,yBAAAC,EACA,qBAAAE,EACA,uBAAAD,CACF,CAAC,EACD,GAAM,CACJ,WAAAG,EACA,QAASC,CACX,EAAIC,GAAgB,CAClB,YAAAnD,EACA,QAAAU,EACA,WAAAe,EACA,cAAAE,EACA,mBAAAD,EACA,IAAA7B,EACA,cAAAc,EACA,UAAAM,EACA,qBAAA8B,EACA,iBAAAT,CACF,CAAC,EACD,OAAAd,EAAW3B,EAAI,KAAMqD,CAAiB,EACtC1B,EAAW3B,EAAK,CACd,QAASqC,EACT,WAAAe,CACF,CAAC,EACM,CACL,KAAMvD,GACN,eAAe0D,EAAcC,EAAY,CACvC,IAAMC,EAASzD,EACT0D,EAAWD,EAAO,UAAUF,CAAY,IAAM,CAAC,EACjDI,GAAkBH,CAAU,GAC9B7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ/B,EAAmB+B,EAAcC,CAAU,EACnD,SAAUZ,EAAmBW,EAAcC,CAAU,CACvD,EAAGrB,EAAuBP,EAAY2B,CAAY,CAAC,EAEjDK,GAAqBJ,CAAU,GACjC7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ7B,EAAsB,EAC9B,SAAUoB,EAAsBS,CAAY,CAC9C,EAAGpB,EAAuBL,EAAeyB,CAAY,CAAC,EAEpDM,GAA0BL,CAAU,GACtC7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ9B,EAA2B8B,EAAcC,CAAU,EAC3D,SAAUX,EAA2BU,EAAcC,CAAU,CAC/D,EAAGrB,EAAuBP,EAAY2B,CAAY,CAAC,CAEvD,CACF,CACF,CACF,GCniBO,IAAMO,GAA2BC,GAAeC,GAAW,CAAC","names":["query_exports","__export","NamedSchemaError","QueryStatus","_NEVER","buildCreateApi","copyWithStructuralSharing","coreModule","coreModuleName","createApi","defaultSerializeQueryArgs","fakeBaseQuery","fetchBaseQuery","retry","setupListeners","skipToken","__toCommonJS","QueryStatus","STATUS_UNINITIALIZED","STATUS_PENDING","STATUS_FULFILLED","STATUS_REJECTED","getRequestStatusFlags","status","import_toolkit","isPlainObject","copyWithStructuralSharing","oldObj","newObj","newKeys","oldKeys","isSameObject","mergeObj","key","filterMap","array","predicate","mapper","acc","item","i","isAbsoluteUrl","url","isDocumentVisible","isNotNullish","v","filterNullishValues","map","isOnline","withoutTrailingSlash","url","withoutLeadingSlash","joinUrls","base","isAbsoluteUrl","delimiter","getOrInsertComputed","map","key","compute","createNewMap","timeoutSignal","milliseconds","abortController","message","name","anySignal","signals","signal","defaultFetchFn","args","defaultValidateStatus","response","defaultIsJsonContentType","headers","stripUndefined","obj","copy","k","v","isJsonifiable","body","fetchBaseQuery","baseUrl","prepareHeaders","x","fetchFn","paramsSerializer","isJsonContentType","jsonContentType","jsonReplacer","defaultTimeout","globalResponseHandler","globalValidateStatus","baseFetchOptions","arg","api","extraOptions","getState","extra","endpoint","forced","type","meta","url","params","responseHandler","validateStatus","timeout","rest","config","anySignal","timeoutSignal","bodyIsJsonifiable","divider","query","joinUrls","request","e","responseClone","resultData","responseText","handleResponseError","handleResponse","r","text","HandledError","value","meta","defaultBackoff","attempt","maxRetries","signal","attempts","timeout","resolve","reject","timeoutId","abortHandler","fail","error","meta","HandledError","failIfAborted","EMPTY_OPTIONS","retryWithBackoff","baseQuery","defaultOptions","args","api","extraOptions","possibleMaxRetries","x","options","_","__","retry","result","e","backoffError","INTERNAL_PREFIX","ONLINE","OFFLINE","FOCUS","FOCUSED","VISIBILITYCHANGE","onFocus","onFocusLost","onOnline","onOffline","actions","initialized","setupListeners","dispatch","customHandler","defaultHandler","handleFocus","handleFocusLost","handleOnline","handleOffline","action","handleVisibilityChange","unsubscribe","updateListeners","add","handlers","event","handler","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","isAnyQueryDefinition","calculateProvidedBy","description","result","error","queryArg","meta","assertTagTypes","finalDescription","isFunction","filterMap","isNotNullish","tag","expandTagDescription","t","import_immer","import_toolkit","asSafePromise","promise","fallback","getEndpointDefinition","context","endpointName","forceQueryFnSymbol","isUpsertQuery","arg","buildInitiate","serializeQueryArgs","queryThunk","infiniteQueryThunk","mutationThunk","api","context","getInternalState","getRunningQueries","dispatch","getRunningMutations","unsubscribeQueryResult","removeMutationResult","updateSubscriptionOptions","buildInitiateQuery","buildInitiateInfiniteQuery","buildInitiateMutation","getRunningQueryThunk","getRunningMutationThunk","getRunningQueriesThunk","getRunningMutationsThunk","endpointName","queryArgs","endpointDefinition","getEndpointDefinition","queryCacheKey","_endpointName","fixedCacheKeyOrRequestId","filterNullishValues","middlewareWarning","buildInitiateAnyQuery","queryAction","subscribe","forceRefetch","subscriptionOptions","forceQueryFn","rest","getState","thunk","commonThunkArgs","ENDPOINT_QUERY","isQueryDefinition","direction","initialPageParam","refetchCachedPages","selector","thunkResult","stateAfter","requestId","abort","skippedSynchronously","runningQuery","selectFromState","statePromise","result","options","runningQueries","track","fixedCacheKey","unwrap","returnValuePromise","asSafePromise","data","error","reset","ret","runningMutations","import_utils","NamedSchemaError","issues","value","schemaName","_bqMeta","shouldSkip","skipSchemaValidation","parseWithSchema","schema","data","bqMeta","result","defaultTransformResponse","baseQueryReturnValue","addShouldAutoBatch","arg","buildThunks","reducerPath","baseQuery","endpointDefinitions","serializeQueryArgs","api","assertTagType","selectors","onSchemaFailure","globalCatchSchemaFailure","globalSkipSchemaValidation","patchQueryData","endpointName","patches","updateProvided","dispatch","getState","endpointDefinition","queryCacheKey","newValue","providedTags","calculateProvidedBy","addToStart","items","item","max","newItems","addToEnd","updateQueryData","updateRecipe","currentState","ret","STATUS_UNINITIALIZED","value","inversePatches","upsertQueryData","forceQueryFnSymbol","getTransformCallbackForEndpoint","transformFieldName","executeEndpoint","signal","abort","rejectWithValue","fulfillWithValue","extra","metaSchema","skipSchemaValidation","isQuery","ENDPOINT_QUERY","transformResponse","baseQueryApi","isForcedQuery","forceQueryFn","finalQueryReturnValue","fetchPage","data","param","maxPages","previous","finalQueryArg","pageResponse","executeRequest","addTo","result","extraOptions","argSchema","rawResponseSchema","responseSchema","shouldSkip","parseWithSchema","HandledError","transformedResponse","infiniteQueryOptions","refetchCachedPages","blankData","cachedData","existingData","getPreviousPageParam","getNextPageParam","initialPageParam","cachedPageParams","firstPageParam","totalPages","i","error","caughtError","transformErrorResponse","rawErrorResponseSchema","errorResponseSchema","meta","transformedErrorResponse","e","NamedSchemaError","info","catchSchemaFailure","state","requestState","baseFetchOnMountOrArgChange","fulfilledVal","refetchVal","createQueryThunk","isInfiniteQueryDefinition","queryThunkArg","currentArg","previousArg","direction","isUpsertQuery","isQueryDefinition","queryThunk","infiniteQueryThunk","mutationThunk","hasTheForce","options","hasMaxAge","prefetch","force","maxAge","queryAction","latestStateValue","lastFulfilledTs","matchesEndpoint","action","buildMatchThunkActions","thunk","pages","pageParams","queryArg","lastIndex","calculateProvidedByThunk","type","getCurrent","value","updateQuerySubstateIfExists","state","queryCacheKey","update","substate","getMutationCacheKey","id","updateMutationSubstateIfExists","initialState","buildSlice","reducerPath","queryThunk","mutationThunk","serializeQueryArgs","definitions","apiUid","extractRehydrationInfo","hasRehydrationInfo","assertTagType","config","resetApiState","writePendingCacheEntry","draft","arg","upserting","meta","STATUS_UNINITIALIZED","STATUS_PENDING","endpointDefinition","isInfiniteQueryDefinition","writeFulfilledCacheEntry","payload","merge","STATUS_FULFILLED","fulfilledTimeStamp","baseQueryMeta","requestId","newData","draftSubstateData","copyWithStructuralSharing","querySlice","action","entry","value","endpointName","ENDPOINT_QUERY","patches","builder","isUpsertQuery","condition","error","STATUS_REJECTED","queries","key","mutationSlice","cacheKey","startedTimeStamp","mutations","initialInvalidationState","invalidationSlice","providedTags","removeCacheKeyFromTags","type","subscribedQueries","provided","incomingTags","cacheKeys","writeProvidedTagsForQueries","mockActions","queryDescription","existingTags","getCurrent","tag","tagType","tagId","tagSubscriptions","qc","actions","providedByEntries","calculateProvidedByThunk","subscriptionSlice","internalSubscriptionsSlice","configSlice","isOnline","isDocumentVisible","onOnline","onOffline","onFocus","onFocusLost","combinedReducer","reducer","skipToken","initialSubState","STATUS_UNINITIALIZED","defaultQuerySubState","defaultMutationSubState","buildSelectors","serializeQueryArgs","reducerPath","createSelector","selectSkippedQuery","state","selectSkippedMutation","buildQuerySelector","buildInfiniteQuerySelector","buildMutationSelector","selectInvalidatedBy","selectCachedArgsForQuery","selectApiState","selectQueries","selectMutations","selectQueryEntry","selectConfig","withRequestFlags","substate","getRequestStatusFlags","rootState","cacheKey","buildAnyQuerySelector","endpointName","endpointDefinition","combiner","queryArgs","serializedArgs","infiniteQueryOptions","withInfiniteQueryResultFlags","stateWithRequestFlags","isLoading","isError","direction","isForward","isBackward","getHasNextPage","getHasPreviousPage","id","mutationId","getMutationCacheKey","tags","apiState","toInvalidate","finalTags","filterMap","isNotNullish","expandTagDescription","tag","provided","invalidateSubscriptions","invalidate","queryCacheKey","querySubState","queryName","entry","options","data","queryArg","getNextPageParam","getPreviousPageParam","import_toolkit","cache","defaultSerializeQueryArgs","endpointName","queryArgs","serialized","cached","stringified","key","value","acc","import_reselect","buildCreateApi","modules","options","extractRehydrationInfo","action","optionsWithDefaults","queryArgsApi","finalSerializeQueryArgs","defaultSerializeQueryArgs","endpointSQA","initialResult","context","fn","api","injectEndpoints","addTagTypes","endpoints","eT","endpointName","partialDefinition","getEndpointDefinition","initializedModules","m","inject","evaluatedEndpoints","x","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","definition","_formatProdErrorMessage","import_toolkit","_NEVER","fakeBaseQuery","_formatProdErrorMessage","safeAssign","target","args","buildBatchedActionsHandler","api","queryThunk","internalState","mwApi","subscriptionsPrefix","previousSubscriptions","updateSyncTimer","updateSubscriptionOptions","unsubscribeQueryResult","actuallyMutateSubscriptions","currentSubscriptions","action","queryCacheKey","requestId","options","sub","arg","substate","getOrInsertComputed","createNewMap","mutated","condition","getSubscriptions","subscriptionSelectors","serializeSubscriptions","k","v","didMutate","actionShouldContinue","newSubscriptions","patches","isSubscriptionSliceAction","isAdditionalSubscriptionAction","THIRTY_TWO_BIT_MAX_TIMER_SECONDS","buildCacheCollectionHandler","reducerPath","api","queryThunk","context","internalState","selectQueryEntry","selectConfig","getRunningQueryThunk","mwApi","removeQueryResult","unsubscribeQueryResult","cacheEntriesUpserted","canTriggerUnsubscribe","anySubscriptionsRemainingForKey","queryCacheKey","subscriptions","currentRemovalTimeouts","abortAllPromises","promiseMap","promise","handler","action","state","config","queryCacheKeys","entry","handleUnsubscribeMany","key","timeout","queries","cacheKeys","handleUnsubscribe","endpointName","keepUnusedDataFor","getEndpointDefinition","finalKeepUnusedDataFor","currentTimeout","neverResolvedError","buildCacheLifecycleHandler","api","reducerPath","context","queryThunk","mutationThunk","internalState","selectQueryEntry","selectApiState","isQueryThunk","isMutationThunk","isFulfilledThunk","lifecycleMap","removeQueryResult","removeMutationResult","cacheEntriesUpserted","resolveLifecycleEntry","cacheKey","data","meta","lifecycle","removeLifecycleEntry","getActionMetaFields","action","arg","requestId","endpointName","originalArgs","handler","mwApi","stateBefore","getCacheKey","checkForNewCacheKey","oldEntry","newEntry","handleNewKey","queryDescription","value","queryCacheKey","getMutationCacheKey","endpointDefinition","getEndpointDefinition","onCacheEntryAdded","cacheEntryRemoved","resolve","cacheDataLoaded","selector","isAnyQueryDefinition","extra","_","__","lifecycleApi","updateRecipe","runningHandler","e","buildDevCheckHandler","api","apiUid","reducerPath","action","mwApi","buildInvalidationByTagsHandler","reducerPath","context","endpointDefinitions","mutationThunk","queryThunk","api","assertTagType","refetchQuery","internalState","removeQueryResult","isThunkActionWithTags","isQueryEnd","pendingTagInvalidations","pendingRequestCount","handler","action","mwApi","invalidateTags","calculateProvidedByThunk","calculateProvidedBy","hasPendingRequests","newTags","rootState","state","tags","toInvalidate","valuesArray","queryCacheKey","querySubState","subscriptionSubState","getOrInsertComputed","createNewMap","STATUS_UNINITIALIZED","buildPollingHandler","reducerPath","queryThunk","api","refetchQuery","internalState","currentPolls","currentSubscriptions","pendingPollingUpdates","pollingUpdateTimer","handler","action","mwApi","schedulePollingUpdate","startNextPoll","clearPolls","queryCacheKey","key","updatePollingInterval","state","querySubState","subscriptions","STATUS_UNINITIALIZED","lowestPollingInterval","skipPollingIfUnfocused","findLowestPollingInterval","currentPoll","nextPollTimestamp","cleanupPollForKey","existingPoll","subscribers","entry","buildQueryLifecycleHandler","api","context","queryThunk","mutationThunk","isPendingThunk","isRejectedThunk","isFullfilledThunk","lifecycleMap","action","mwApi","requestId","endpointName","originalArgs","endpointDefinition","getEndpointDefinition","onQueryStarted","lifecycle","queryFulfilled","resolve","reject","selector","isAnyQueryDefinition","extra","_","__","lifecycleApi","updateRecipe","baseQueryMeta","rejectedWithValue","buildWindowEventHandler","reducerPath","context","api","refetchQuery","internalState","removeQueryResult","handler","action","mwApi","onFocus","refetchValidQueries","onOnline","type","state","queries","subscriptions","queryCacheKey","querySubState","subscriptionSubState","values","sub","STATUS_UNINITIALIZED","buildMiddleware","input","reducerPath","queryThunk","api","context","getInternalState","apiUid","actions","isThisApiSliceAction","action","handlerBuilders","buildDevCheckHandler","buildCacheCollectionHandler","buildInvalidationByTagsHandler","buildPollingHandler","buildCacheLifecycleHandler","buildQueryLifecycleHandler","mwApi","initialized","internalState","builderArgs","refetchQuery","handlers","build","batchedActionsHandler","buildBatchedActionsHandler","windowEventsHandler","buildWindowEventHandler","next","mwApiWithNext","stateBefore","actionShouldContinue","internalProbeResult","res","handler","querySubState","coreModuleName","coreModule","createSelector","api","baseQuery","tagTypes","reducerPath","serializeQueryArgs","keepUnusedDataFor","refetchOnMountOrArgChange","refetchOnFocus","refetchOnReconnect","invalidationBehavior","onSchemaFailure","catchSchemaFailure","skipSchemaValidation","context","assertTagType","tag","onOnline","onOffline","onFocus","onFocusLost","selectors","buildSelectors","selectInvalidatedBy","selectCachedArgsForQuery","buildQuerySelector","buildInfiniteQuerySelector","buildMutationSelector","safeAssign","queryThunk","infiniteQueryThunk","mutationThunk","patchQueryData","updateQueryData","upsertQueryData","prefetch","buildMatchThunkActions","buildThunks","reducer","sliceActions","buildSlice","internalStateMap","getInternalState","dispatch","getOrInsertComputed","buildInitiateQuery","buildInitiateInfiniteQuery","buildInitiateMutation","getRunningMutationThunk","getRunningMutationsThunk","getRunningQueriesThunk","getRunningQueryThunk","buildInitiate","middleware","middlewareActions","buildMiddleware","endpointName","definition","anyApi","endpoint","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","createApi","buildCreateApi","coreModule"]}
Index: de_modules/@reduxjs/toolkit/dist/query/index.d.mts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2954 +1,0 @@
-import * as _reduxjs_toolkit from '@reduxjs/toolkit';
-import { ThunkDispatch, UnknownAction, Draft, AsyncThunk, SHOULD_AUTOBATCH, ThunkAction, SafePromise, SerializedError, PayloadAction, ActionCreatorWithoutPayload, Reducer, Middleware, ActionCreatorWithPayload } from '@reduxjs/toolkit';
-import { Patch } from 'immer';
-import * as redux from 'redux';
-import { CreateSelectorFunction } from 'reselect';
-import { StandardSchemaV1 } from '@standard-schema/spec';
-import { SchemaError } from '@standard-schema/utils';
-
-type Id<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
-type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
-type NonOptionalKeys<T> = {
-    [K in keyof T]-?: undefined extends T[K] ? never : K;
-}[keyof T];
-type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;
-type NoInfer<T> = [T][T extends any ? 0 : never];
-type NonUndefined<T> = T extends undefined ? never : T;
-type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;
-type MaybePromise<T> = T | PromiseLike<T>;
-type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;
-type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;
-type CastAny<T, CastTo> = IsAny<T, CastTo, T>;
-
-interface BaseQueryApi {
-    signal: AbortSignal;
-    abort: (reason?: string) => void;
-    dispatch: ThunkDispatch<any, any, any>;
-    getState: () => unknown;
-    extra: unknown;
-    endpoint: string;
-    type: 'query' | 'mutation';
-    /**
-     * Only available for queries: indicates if a query has been forced,
-     * i.e. it would have been fetched even if there would already be a cache entry
-     * (this does not mean that there is already a cache entry though!)
-     *
-     * This can be used to for example add a `Cache-Control: no-cache` header for
-     * invalidated queries.
-     */
-    forced?: boolean;
-    /**
-     * Only available for queries: the cache key that was used to store the query result
-     */
-    queryCacheKey?: string;
-}
-type QueryReturnValue<T = unknown, E = unknown, M = unknown> = {
-    error: E;
-    data?: undefined;
-    meta?: M;
-} | {
-    error?: undefined;
-    data: T;
-    meta?: M;
-};
-type BaseQueryFn<Args = any, Result = unknown, Error = unknown, DefinitionExtraOptions = {}, Meta = {}> = (args: Args, api: BaseQueryApi, extraOptions: DefinitionExtraOptions) => MaybePromise<QueryReturnValue<Result, Error, Meta>>;
-type BaseQueryEnhancer<AdditionalArgs = unknown, AdditionalDefinitionExtraOptions = unknown, Config = void> = <BaseQuery extends BaseQueryFn>(baseQuery: BaseQuery, config: Config) => BaseQueryFn<BaseQueryArg<BaseQuery> & AdditionalArgs, BaseQueryResult<BaseQuery>, BaseQueryError<BaseQuery>, BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions, NonNullable<BaseQueryMeta<BaseQuery>>>;
-/**
- * @public
- */
-type BaseQueryResult<BaseQuery extends BaseQueryFn> = UnwrapPromise<ReturnType<BaseQuery>> extends infer Unwrapped ? Unwrapped extends {
-    data: any;
-} ? Unwrapped['data'] : never : never;
-/**
- * @public
- */
-type BaseQueryMeta<BaseQuery extends BaseQueryFn> = UnwrapPromise<ReturnType<BaseQuery>>['meta'];
-/**
- * @public
- */
-type BaseQueryError<BaseQuery extends BaseQueryFn> = Exclude<UnwrapPromise<ReturnType<BaseQuery>>, {
-    error?: undefined;
-}>['error'];
-/**
- * @public
- */
-type BaseQueryArg<T extends (arg: any, ...args: any[]) => any> = T extends (arg: infer A, ...args: any[]) => any ? A : any;
-/**
- * @public
- */
-type BaseQueryExtraOptions<BaseQuery extends BaseQueryFn> = Parameters<BaseQuery>[2];
-
-declare const defaultSerializeQueryArgs: SerializeQueryArgs<any>;
-type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {
-    queryArgs: QueryArgs;
-    endpointDefinition: EndpointDefinition<any, any, any, any>;
-    endpointName: string;
-}) => ReturnType;
-type InternalSerializeQueryArgs = (_: {
-    queryArgs: any;
-    endpointDefinition: EndpointDefinition<any, any, any, any>;
-    endpointName: string;
-}) => QueryCacheKey;
-
-interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {
-    /**
-     * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     *
-     * const api = createApi({
-     *   // highlight-start
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // ...endpoints
-     *   }),
-     * })
-     * ```
-     */
-    baseQuery: BaseQuery;
-    /**
-     * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-start
-     *   tagTypes: ['Post', 'User'],
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // ...endpoints
-     *   }),
-     * })
-     * ```
-     */
-    tagTypes?: readonly TagTypes[];
-    /**
-     * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="apis.js"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
-     *
-     * const apiOne = createApi({
-     *   // highlight-start
-     *   reducerPath: 'apiOne',
-     *   // highlight-end
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (builder) => ({
-     *     // ...endpoints
-     *   }),
-     * });
-     *
-     * const apiTwo = createApi({
-     *   // highlight-start
-     *   reducerPath: 'apiTwo',
-     *   // highlight-end
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (builder) => ({
-     *     // ...endpoints
-     *   }),
-     * });
-     * ```
-     */
-    reducerPath?: ReducerPath;
-    /**
-     * Accepts a custom function if you have a need to change the creation of cache keys for any reason.
-     */
-    serializeQueryArgs?: SerializeQueryArgs<unknown>;
-    /**
-     * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).
-     */
-    endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;
-    /**
-     * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="keepUnusedDataFor example"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts'
-     *     })
-     *   }),
-     *   // highlight-start
-     *   keepUnusedDataFor: 5
-     *   // highlight-end
-     * })
-     * ```
-     */
-    keepUnusedDataFor?: number;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnFocus?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnReconnect?: boolean;
-    /**
-     * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.
-     *
-     * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.
-     *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.
-     * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.
-     *   This ensures that queries are always invalidated correctly and automatically "batches" invalidations of concurrent mutations.
-     *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.
-     */
-    invalidationBehavior?: 'delayed' | 'immediately';
-    /**
-     * A function that is passed every dispatched action. If this returns something other than `undefined`,
-     * that return value will be used to rehydrate fulfilled & errored queries.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="next-redux-wrapper rehydration example"
-     * import type { Action, PayloadAction } from '@reduxjs/toolkit'
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import { HYDRATE } from 'next-redux-wrapper'
-     *
-     * type RootState = any; // normally inferred from state
-     *
-     * function isHydrateAction(action: Action): action is PayloadAction<RootState> {
-     *   return action.type === HYDRATE
-     * }
-     *
-     * export const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-start
-     *   extractRehydrationInfo(action, { reducerPath }): any {
-     *     if (isHydrateAction(action)) {
-     *       return action.payload[reducerPath]
-     *     }
-     *   },
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // omitted
-     *   }),
-     * })
-     * ```
-     */
-    extractRehydrationInfo?: (action: UnknownAction, { reducerPath, }: {
-        reducerPath: ReducerPath;
-    }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;
-    /**
-     * A function that is called when a schema validation fails.
-     *
-     * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-     *
-     * `NamedSchemaError` has the following properties:
-     * - `issues`: an array of issues that caused the validation to fail
-     * - `value`: the value that was passed to the schema
-     * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *     }),
-     *   }),
-     *   onSchemaFailure: (error, info) => {
-     *     console.error(error, info)
-     *   },
-     * })
-     * ```
-     */
-    onSchemaFailure?: SchemaFailureHandler;
-    /**
-     * Convert a schema validation failure into an error shape matching base query errors.
-     *
-     * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *     }),
-     *   }),
-     *   catchSchemaFailure: (error, info) => ({
-     *     status: "CUSTOM_ERROR",
-     *     error: error.schemaName + " failed validation",
-     *     data: error.issues,
-     *   }),
-     * })
-     * ```
-     */
-    catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;
-    /**
-     * Defaults to `false`.
-     *
-     * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.
-     *
-     * Can be overridden for specific schemas by passing an array of schema types to skip.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    skipSchemaValidation?: boolean | SchemaType[];
-}
-type CreateApi<Modules extends ModuleName> = {
-    /**
-     * Creates a service to use in your application. Contains only the basic redux logic (the core module).
-     *
-     * @link https://redux-toolkit.js.org/rtk-query/api/createApi
-     */
-    <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;
-};
-/**
- * Builds a `createApi` method based on the provided `modules`.
- *
- * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api
- *
- * @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints
- * @returns A `createApi` method using the provided `modules`.
- */
-declare function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']>;
-
-type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;
-type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;
-type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;
-type EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {
-    originalArgs: QueryArg;
-}, ATConfig & {
-    rejectValue: BaseQueryError<BaseQueryFn>;
-}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {
-    originalArgs: QueryArg;
-}, ATConfig & {
-    rejectValue: BaseQueryError<BaseQueryFn>;
-}> : never : never;
-type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;
-type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;
-type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;
-type Matcher<M> = (value: any) => value is M;
-interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {
-    matchPending: Matcher<PendingAction<Thunk, Definition>>;
-    matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;
-    matchRejected: Matcher<RejectedAction<Thunk, Definition>>;
-}
-type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {
-    type: 'query';
-    originalArgs: unknown;
-    endpointName: string;
-};
-type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {
-    type: `query`;
-    originalArgs: unknown;
-    endpointName: string;
-    param: unknown;
-    direction?: InfiniteQueryDirection;
-    refetchCachedPages?: boolean;
-};
-type MutationThunkArg = {
-    type: 'mutation';
-    originalArgs: unknown;
-    endpointName: string;
-    track?: boolean;
-    fixedCacheKey?: string;
-};
-type ThunkResult = unknown;
-type ThunkApiMetaConfig = {
-    pendingMeta: {
-        startedTimeStamp: number;
-        [SHOULD_AUTOBATCH]: true;
-    };
-    fulfilledMeta: {
-        fulfilledTimeStamp: number;
-        baseQueryMeta: unknown;
-        [SHOULD_AUTOBATCH]: true;
-    };
-    rejectedMeta: {
-        baseQueryMeta: unknown;
-        [SHOULD_AUTOBATCH]: true;
-    };
-};
-type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;
-type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;
-type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;
-type MaybeDrafted<T> = T | Draft<T>;
-type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;
-type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;
-type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;
-type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;
-type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;
-type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;
-type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;
-type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;
-/**
- * An object returned from dispatching a `api.util.updateQueryData` call.
- */
-type PatchCollection = {
-    /**
-     * An `immer` Patch describing the cache update.
-     */
-    patches: Patch[];
-    /**
-     * An `immer` Patch to revert the cache update.
-     */
-    inversePatches: Patch[];
-    /**
-     * A function that will undo the cache update.
-     */
-    undo: () => void;
-};
-
-type SkipToken = typeof skipToken;
-/**
- * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`
- * instead of the query argument to get the same effect as if setting
- * `skip: true` in the query options.
- *
- * Useful for scenarios where a query should be skipped when `arg` is `undefined`
- * and TypeScript complains about it because `arg` is not allowed to be passed
- * in as `undefined`, such as
- *
- * ```ts
- * // codeblock-meta title="will error if the query argument is not allowed to be undefined" no-transpile
- * useSomeQuery(arg, { skip: !!arg })
- * ```
- *
- * ```ts
- * // codeblock-meta title="using skipToken instead" no-transpile
- * useSomeQuery(arg ?? skipToken)
- * ```
- *
- * If passed directly into a query or mutation selector, that selector will always
- * return an uninitialized state.
- */
-export declare const skipToken: unique symbol;
-type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: QueryResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: InfiniteQueryResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: MutationResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;
-type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;
-type InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;
-type InfiniteQueryResultFlags = {
-    hasNextPage: boolean;
-    hasPreviousPage: boolean;
-    isFetchingNextPage: boolean;
-    isFetchingPreviousPage: boolean;
-    isFetchNextPageError: boolean;
-    isFetchPreviousPageError: boolean;
-};
-type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;
-type MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {
-    requestId: string | undefined;
-    fixedCacheKey: string | undefined;
-} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;
-type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;
-
-type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {
-    initiate: StartQueryActionCreator<Definition>;
-};
-type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    initiate: StartInfiniteQueryActionCreator<Definition>;
-};
-type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {
-    initiate: StartMutationActionCreator<Definition>;
-};
-declare const forceQueryFnSymbol: unique symbol;
-type StartQueryActionCreatorOptions = {
-    subscribe?: boolean;
-    forceRefetch?: boolean | number;
-    subscriptionOptions?: SubscriptionOptions;
-    [forceQueryFnSymbol]?: () => QueryReturnValue;
-};
-type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {
-    direction?: InfiniteQueryDirection;
-    param?: unknown;
-} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;
-type StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;
-type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;
-type QueryActionCreatorFields = {
-    requestId: string;
-    subscriptionOptions: SubscriptionOptions | undefined;
-    abort(): void;
-    unsubscribe(): void;
-    updateSubscriptionOptions(options: SubscriptionOptions): void;
-    queryCacheKey: string;
-};
-type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {
-    arg: QueryArgFrom<D>;
-    unwrap(): Promise<ResultTypeFrom<D>>;
-    refetch(): QueryActionCreatorResult<D>;
-};
-type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {
-    arg: InfiniteQueryArgFrom<D>;
-    unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;
-    refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;
-};
-type StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {
-    /**
-     * If this mutation should be tracked in the store.
-     * If you just want to manually trigger this mutation using `dispatch` and don't care about the
-     * result, state & potential errors being held in store, you can set this to false.
-     * (defaults to `true`)
-     */
-    track?: boolean;
-    fixedCacheKey?: string;
-}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;
-type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{
-    data: ResultTypeFrom<D>;
-    error?: undefined;
-} | {
-    data?: undefined;
-    error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;
-}> & {
-    /** @internal */
-    arg: {
-        /**
-         * The name of the given endpoint for the mutation
-         */
-        endpointName: string;
-        /**
-         * The original arguments supplied to the mutation call
-         */
-        originalArgs: QueryArgFrom<D>;
-        /**
-         * Whether the mutation is being tracked in the store.
-         */
-        track?: boolean;
-        fixedCacheKey?: string;
-    };
-    /**
-     * A unique string generated for the request sequence
-     */
-    requestId: string;
-    /**
-     * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation
-     * that was fired off from reaching the server, but only to assist in handling the response.
-     *
-     * Calling `abort()` prior to the promise resolving will force it to reach the error state with
-     * the serialized error:
-     * `{ name: 'AbortError', message: 'Aborted' }`
-     *
-     * @example
-     * ```ts
-     * const [updateUser] = useUpdateUserMutation();
-     *
-     * useEffect(() => {
-     *   const promise = updateUser(id);
-     *   promise
-     *     .unwrap()
-     *     .catch((err) => {
-     *       if (err.name === 'AbortError') return;
-     *       // else handle the unexpected error
-     *     })
-     *
-     *   return () => {
-     *     promise.abort();
-     *   }
-     * }, [id, updateUser])
-     * ```
-     */
-    abort(): void;
-    /**
-     * Unwraps a mutation call to provide the raw response/error.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap"
-     * addPost({ id: 1, name: 'Example' })
-     *   .unwrap()
-     *   .then((payload) => console.log('fulfilled', payload))
-     *   .catch((error) => console.error('rejected', error));
-     * ```
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    unwrap(): Promise<ResultTypeFrom<D>>;
-    /**
-     * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.
-     The value returned by the hook will reset to `isUninitialized` afterwards.
-     */
-    reset(): void;
-};
-
-type ReferenceCacheLifecycle = never;
-interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {
-    /**
-     * Gets the current value of this cache entry.
-     */
-    getCacheEntry(): QueryResultSelectorResult<{
-        type: DefinitionType.query;
-    } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;
-    /**
-     * Updates the current cache entry value.
-     * For documentation see `api.util.updateQueryData`.
-     */
-    updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;
-}
-type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {
-    /**
-     * Gets the current value of this cache entry.
-     */
-    getCacheEntry(): MutationResultSelectorResult<{
-        type: DefinitionType.mutation;
-    } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;
-};
-type LifecycleApi<ReducerPath extends string = string> = {
-    /**
-     * The dispatch method for the store
-     */
-    dispatch: ThunkDispatch<any, any, UnknownAction>;
-    /**
-     * A method to get the current state
-     */
-    getState(): RootState<any, any, ReducerPath>;
-    /**
-     * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.
-     */
-    extra: unknown;
-    /**
-     * A unique ID generated for the mutation
-     */
-    requestId: string;
-};
-type CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {
-    /**
-     * Promise that will resolve with the first value for this cache key.
-     * This allows you to `await` until an actual value is in cache.
-     *
-     * If the cache entry is removed from the cache before any value has ever
-     * been resolved, this Promise will reject with
-     * `new Error('Promise never resolved before cacheEntryRemoved.')`
-     * to prevent memory leaks.
-     * You can just re-throw that error (or not handle it at all) -
-     * it will be caught outside of `cacheEntryAdded`.
-     *
-     * If you don't interact with this promise, it will not throw.
-     */
-    cacheDataLoaded: PromiseWithKnownReason<{
-        /**
-         * The (transformed) query result.
-         */
-        data: ResultType;
-        /**
-         * The `meta` returned by the `baseQuery`
-         */
-        meta: MetaType;
-    }, typeof neverResolvedError>;
-    /**
-     * Promise that allows you to wait for the point in time when the cache entry
-     * has been removed from the cache, by not being used/subscribed to any more
-     * in the application for too long or by dispatching `api.util.resetApiState`.
-     */
-    cacheEntryRemoved: Promise<void>;
-};
-interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {
-}
-type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;
-type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;
-type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-declare const neverResolvedError: Error & {
-    message: "Promise never resolved before cacheEntryRemoved.";
-};
-
-type ReferenceQueryLifecycle = never;
-type QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {
-    /**
-     * Promise that will resolve with the (transformed) query result.
-     *
-     * If the query fails, this promise will reject with the error.
-     *
-     * This allows you to `await` for the query to finish.
-     *
-     * If you don't interact with this promise, it will not throw.
-     */
-    queryFulfilled: PromiseWithKnownReason<{
-        /**
-         * The (transformed) query result.
-         */
-        data: ResultType;
-        /**
-         * The `meta` returned by the `baseQuery`
-         */
-        meta: BaseQueryMeta<BaseQuery>;
-    }, QueryFulfilledRejectionReason<BaseQuery>>;
-};
-type QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {
-    error: BaseQueryError<BaseQuery>;
-    /**
-     * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.
-     */
-    isUnhandledError: false;
-    /**
-     * The `meta` returned by the `baseQuery`
-     */
-    meta: BaseQueryMeta<BaseQuery>;
-} | {
-    error: unknown;
-    meta?: undefined;
-    /**
-     * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.
-     * There can not be made any assumption about the shape of `error`.
-     */
-    isUnhandledError: true;
-};
-type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    /**
-     * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-     *
-     * Can be used to perform side-effects throughout the lifecycle of the query.
-     *
-     * @example
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     * import { messageCreated } from './notificationsSlice
-     * export interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({
-     *     baseUrl: '/',
-     *   }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, number>({
-     *       query: (id) => `post/${id}`,
-     *       async onQueryStarted(id, { dispatch, queryFulfilled }) {
-     *         // `onStart` side-effect
-     *         dispatch(messageCreated('Fetching posts...'))
-     *         try {
-     *           const { data } = await queryFulfilled
-     *           // `onSuccess` side-effect
-     *           dispatch(messageCreated('Posts received!'))
-     *         } catch (err) {
-     *           // `onError` side-effect
-     *           dispatch(messageCreated('Error fetching posts!'))
-     *         }
-     *       }
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;
-type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    /**
-     * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-     *
-     * Can be used for `optimistic updates`.
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     * export interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({
-     *     baseUrl: '/',
-     *   }),
-     *   tagTypes: ['Post'],
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, number>({
-     *       query: (id) => `post/${id}`,
-     *       providesTags: ['Post'],
-     *     }),
-     *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
-     *       query: ({ id, ...patch }) => ({
-     *         url: `post/${id}`,
-     *         method: 'PATCH',
-     *         body: patch,
-     *       }),
-     *       invalidatesTags: ['Post'],
-     *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
-     *         const patchResult = dispatch(
-     *           api.util.updateQueryData('getPost', id, (draft) => {
-     *             Object.assign(draft, patch)
-     *           })
-     *         )
-     *         try {
-     *           await queryFulfilled
-     *         } catch {
-     *           patchResult.undo()
-     *         }
-     *       },
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {
-}
-type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific query.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, QueryArgument>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedQueryOnQueryStarted<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async (queryArgument, { dispatch, queryFulfilled }) => {
- *   const result = await queryFulfilled
- *
- *   const { posts } = result.data
- *
- *   // Pre-fill the individual post entries with the results
- *   // from the list endpoint query
- *   dispatch(
- *     baseApiSlice.util.upsertQueryEntries(
- *       posts.map((post) => ({
- *         endpointName: 'getPostById',
- *         arg: post.id,
- *         value: post,
- *       })),
- *     ),
- *   )
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({
- *       query: (userId) => `/posts/user/${userId}`,
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific mutation.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = Pick<Post, 'id'> & Partial<Post>
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, number>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedMutationOnQueryStarted<
- *   Post,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {
- *   const patchCollection = dispatch(
- *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {
- *       Object.assign(draftPost, patch)
- *     }),
- *   )
- *
- *   try {
- *     await queryFulfilled
- *   } catch {
- *     patchCollection.undo()
- *   }
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({
- *       query: (body) => ({
- *         url: `posts/add`,
- *         method: 'POST',
- *         body,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *
- *     updatePost: build.mutation<Post, QueryArgument>({
- *       query: ({ id, ...patch }) => ({
- *         url: `post/${id}`,
- *         method: 'PATCH',
- *         body: patch,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];
-
-/**
- * A typesafe single entry to be upserted into the cache
- */
-type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {
-    endpointName: EndpointName;
-    arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;
-    value: DataFromAnyQueryDefinition<Definitions, EndpointName>;
-};
-/**
- * The internal version that is not typesafe since we can't carry the generics through `createSlice`
- */
-type NormalizedQueryUpsertEntryPayload = {
-    endpointName: string;
-    arg: unknown;
-    value: unknown;
-};
-type ProcessedQueryUpsertEntry = {
-    queryDescription: QueryThunkArg;
-    value: unknown;
-};
-/**
- * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert
- */
-type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [
-    ...{
-        [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]>;
-    }
-]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {
-    match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;
-};
-declare function buildSlice({ reducerPath, queryThunk, mutationThunk, serializeQueryArgs, context: { endpointDefinitions: definitions, apiUid, extractRehydrationInfo, hasRehydrationInfo, }, assertTagType, config, }: {
-    reducerPath: string;
-    queryThunk: QueryThunk;
-    infiniteQueryThunk: InfiniteQueryThunk<any>;
-    mutationThunk: MutationThunk;
-    serializeQueryArgs: InternalSerializeQueryArgs;
-    context: ApiContext<EndpointDefinitions>;
-    assertTagType: AssertTagTypes;
-    config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;
-}): {
-    reducer: redux.Reducer<{
-        queries: QueryState<any>;
-        mutations: MutationState<any>;
-        provided: InvalidationState<string>;
-        subscriptions: SubscriptionState;
-        config: ConfigState<string>;
-    }, redux.UnknownAction, Partial<{
-        queries: QueryState<any> | undefined;
-        mutations: MutationState<any> | undefined;
-        provided: InvalidationState<string> | undefined;
-        subscriptions: SubscriptionState | undefined;
-        config: ConfigState<string> | undefined;
-    }>>;
-    actions: {
-        resetApiState: _reduxjs_toolkit.ActionCreatorWithoutPayload<`${string}/resetApiState`>;
-        updateProvidedBy: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: {
-            queryCacheKey: QueryCacheKey;
-            providedTags: readonly FullTagDescription<string>[];
-        }[]], {
-            queryCacheKey: QueryCacheKey;
-            providedTags: readonly FullTagDescription<string>[];
-        }[], `${string}/invalidation/updateProvidedBy`, never, unknown>;
-        removeMutationResult: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: MutationSubstateIdentifier], MutationSubstateIdentifier, `${string}/mutations/removeMutationResult`, never, unknown>;
-        subscriptionsUpdated: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: Patch[]], Patch[], `${string}/internalSubscriptions/subscriptionsUpdated`, never, unknown>;
-        updateSubscriptionOptions: _reduxjs_toolkit.ActionCreatorWithPayload<{
-            endpointName: string;
-            requestId: string;
-            options: Subscribers[number];
-        } & QuerySubstateIdentifier, `${string}/subscriptions/updateSubscriptionOptions`>;
-        unsubscribeQueryResult: _reduxjs_toolkit.ActionCreatorWithPayload<{
-            requestId: string;
-        } & QuerySubstateIdentifier, `${string}/subscriptions/unsubscribeQueryResult`>;
-        internal_getRTKQSubscriptions: _reduxjs_toolkit.ActionCreatorWithoutPayload<`${string}/subscriptions/internal_getRTKQSubscriptions`>;
-        removeQueryResult: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: QuerySubstateIdentifier], QuerySubstateIdentifier, `${string}/queries/removeQueryResult`, never, unknown>;
-        cacheEntriesUpserted: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: NormalizedQueryUpsertEntryPayload[]], ProcessedQueryUpsertEntry[], `${string}/queries/cacheEntriesUpserted`, never, {
-            RTK_autoBatch: boolean;
-            requestId: string;
-            timestamp: number;
-        }>;
-        queryResultPatched: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: QuerySubstateIdentifier & {
-            patches: readonly Patch[];
-        }], QuerySubstateIdentifier & {
-            patches: readonly Patch[];
-        }, `${string}/queries/queryResultPatched`, never, unknown>;
-        middlewareRegistered: _reduxjs_toolkit.ActionCreatorWithPayload<string, `${string}/config/middlewareRegistered`>;
-    };
-};
-type SliceActions = ReturnType<typeof buildSlice>['actions'];
-
-declare const onFocus: ActionCreatorWithoutPayload<"__rtkq/focused">;
-declare const onFocusLost: ActionCreatorWithoutPayload<"__rtkq/unfocused">;
-declare const onOnline: ActionCreatorWithoutPayload<"__rtkq/online">;
-declare const onOffline: ActionCreatorWithoutPayload<"__rtkq/offline">;
-/**
- * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.
- * It requires the dispatch method from your store.
- * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,
- * but you have the option of providing a callback for more granular control.
- *
- * @example
- * ```ts
- * setupListeners(store.dispatch)
- * ```
- *
- * @param dispatch - The dispatch method from your store
- * @param customHandler - An optional callback for more granular control over listener behavior
- * @returns Return value of the handler.
- * The default handler returns an `unsubscribe` method that can be called to remove the listeners.
- */
-declare function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {
-    onFocus: typeof onFocus;
-    onFocusLost: typeof onFocusLost;
-    onOnline: typeof onOnline;
-    onOffline: typeof onOffline;
-}) => () => void): () => void;
-
-/**
- * Note: this file should import all other files for type discovery and declaration merging
- */
-
-/**
- * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_
- * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value
- *
- * @overloadSummary
- * `force`
- * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.
- */
-type PrefetchOptions = {
-    ifOlderThan?: false | number;
-} | {
-    force?: boolean;
-};
-export declare const coreModuleName: unique symbol;
-type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;
-type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;
-interface ApiModules<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {
-    [coreModuleName]: {
-        /**
-         * This api's reducer should be mounted at `store[api.reducerPath]`.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        reducerPath: ReducerPath;
-        /**
-         * Internal actions not part of the public API. Note: These are subject to change at any given time.
-         */
-        internalActions: InternalActions;
-        /**
-         *  A standard redux reducer that enables core functionality. Make sure it's included in your store.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;
-        /**
-         * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;
-        /**
-         * A collection of utility thunks for various situations.
-         */
-        util: {
-            /**
-             * A thunk that (if dispatched) will return a specific running query, identified
-             * by `endpointName` and `arg`.
-             * If that query is not running, dispatching the thunk will result in `undefined`.
-             *
-             * Can be used to await a specific query triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {
-                type: 'query';
-            }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {
-                type: 'infinitequery';
-            }> | undefined>;
-            /**
-             * A thunk that (if dispatched) will return a specific running mutation, identified
-             * by `endpointName` and `fixedCacheKey` or `requestId`.
-             * If that mutation is not running, dispatching the thunk will result in `undefined`.
-             *
-             * Can be used to await a specific mutation triggered in any way,
-             * including via hook trigger functions or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {
-                type: 'mutation';
-            }> | undefined>;
-            /**
-             * A thunk that (if dispatched) will return all running queries.
-             *
-             * Useful for SSR scenarios to await all running queries triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;
-            /**
-             * A thunk that (if dispatched) will return all running mutations.
-             *
-             * Useful for SSR scenarios to await all running mutations triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;
-            /**
-             * A Redux thunk that can be used to manually trigger pre-fetching of data.
-             *
-             * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.
-             *
-             * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.
-             *
-             * @example
-             *
-             * ```ts no-transpile
-             * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))
-             * ```
-             */
-            prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;
-            /**
-             * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.
-             *
-             * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.
-             *
-             * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).
-             *
-             * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.
-             *
-             * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.
-             *
-             * @example
-             *
-             * ```ts
-             * const patchCollection = dispatch(
-             *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-             *     draftPosts.push({ id: 1, name: 'Teddy' })
-             *   })
-             * )
-             * ```
-             */
-            updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.
-             *
-             * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.
-             *
-             * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.
-             *
-             * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.
-             *
-             * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a "last result wins" update behavior.
-             *
-             * @example
-             *
-             * ```ts
-             * await dispatch(
-             *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: "Hello!"})
-             * )
-             * ```
-             */
-            upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.
-             *
-             * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.
-             *
-             * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.
-             *
-             * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.
-             *
-             * @example
-             * ```ts
-             * const patchCollection = dispatch(
-             *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-             *     draftPosts.push({ id: 1, name: 'Teddy' })
-             *   })
-             * )
-             *
-             * // later
-             * dispatch(
-             *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)
-             * )
-             *
-             * // or
-             * patchCollection.undo()
-             * ```
-             */
-            patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.
-             *
-             * @example
-             *
-             * ```ts
-             * dispatch(api.util.resetApiState())
-             * ```
-             */
-            resetApiState: SliceActions['resetApiState'];
-            upsertQueryEntries: UpsertEntries<Definitions>;
-            /**
-             * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).
-             *
-             * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.
-             *
-             * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.
-             *
-             * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:
-             *
-             * - `[TagType]`
-             * - `[{ type: TagType }]`
-             * - `[{ type: TagType, id: number | string }]`
-             *
-             * @example
-             *
-             * ```ts
-             * dispatch(api.util.invalidateTags(['Post']))
-             * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))
-             * dispatch(
-             *   api.util.invalidateTags([
-             *     { type: 'Post', id: 1 },
-             *     { type: 'Post', id: 'LIST' },
-             *   ])
-             * )
-             * ```
-             */
-            invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;
-            /**
-             * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.
-             *
-             * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-             */
-            selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{
-                endpointName: string;
-                originalArgs: any;
-                queryCacheKey: string;
-            }>;
-            /**
-             * A function to select all arguments currently cached for a given endpoint.
-             *
-             * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-             */
-            selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;
-        };
-        /**
-         * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.
-         */
-        endpoints: {
-            [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never;
-        };
-    };
-}
-interface ApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-interface ApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-interface ApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-type ListenerActions = {
-    /**
-     * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior
-     * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-     */
-    onOnline: typeof onOnline;
-    onOffline: typeof onOffline;
-    /**
-     * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior
-     * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-     */
-    onFocus: typeof onFocus;
-    onFocusLost: typeof onFocusLost;
-};
-type InternalActions = SliceActions & ListenerActions;
-interface CoreModuleOptions {
-    /**
-     * A selector creator (usually from `reselect`, or matching the same signature)
-     */
-    createSelector?: CreateSelectorFunction<any, any, any>;
-}
-/**
- * Creates a module containing the basic redux logic for use with `buildCreateApi`.
- *
- * @example
- * ```ts
- * const createBaseApi = buildCreateApi(coreModule());
- * ```
- */
-declare const coreModule: ({ createSelector, }?: CoreModuleOptions) => Module<CoreModule>;
-
-declare const createApi: CreateApi<typeof coreModuleName>;
-
-type ModuleName = keyof ApiModules<any, any, any, any>;
-type Module<Name extends ModuleName> = {
-    name: Name;
-    init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {
-        injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;
-    };
-};
-interface ApiContext<Definitions extends EndpointDefinitions> {
-    apiUid: string;
-    endpointDefinitions: Definitions;
-    batch(cb: () => void): void;
-    extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;
-    hasRehydrationInfo: (action: UnknownAction) => boolean;
-}
-type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {
-    /**
-     * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.
-     */
-    injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {
-        endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;
-        /**
-         * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.
-         *
-         * If set to `true`, will override existing endpoints with the new definition.
-         * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.
-         * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.
-         */
-        overrideExisting?: boolean | 'throw';
-    }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;
-    /**
-     *A function to enhance a generated API with additional information. Useful with code-generation.
-     */
-    enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {
-        addTagTypes?: readonly NewTagTypes[];
-        endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? {
-            [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void);
-        } : never;
-    }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;
-};
-
-type PromiseWithKnownReason<T, R> = Omit<Promise<T>, 'then' | 'catch'> & {
-    /**
-     * Attaches callbacks for the resolution and/or rejection of the Promise.
-     * @param onfulfilled The callback to execute when the Promise is resolved.
-     * @param onrejected The callback to execute when the Promise is rejected.
-     * @returns A Promise for the completion of which ever callback is executed.
-     */
-    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: R) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
-    /**
-     * Attaches a callback for only the rejection of the Promise.
-     * @param onrejected The callback to execute when the Promise is rejected.
-     * @returns A Promise for the completion of the callback.
-     */
-    catch<TResult = never>(onrejected?: ((reason: R) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
-};
-
-type ReferenceCacheCollection = never;
-/**
- * @example
- * ```ts
- * // codeblock-meta title="keepUnusedDataFor example"
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => 'posts',
- *       // highlight-start
- *       keepUnusedDataFor: 5
- *       // highlight-end
- *     })
- *   })
- * })
- * ```
- */
-type CacheCollectionQueryExtraOptions = {
-    /**
-     * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_
-     *
-     * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-     */
-    keepUnusedDataFor?: number;
-};
-
-export declare const _NEVER: unique symbol;
-type NEVER = typeof _NEVER;
-/**
- * Creates a "fake" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.
- * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.
- */
-declare function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}>;
-
-declare class NamedSchemaError extends SchemaError {
-    readonly value: any;
-    readonly schemaName: `${SchemaType}Schema`;
-    readonly _bqMeta: any;
-    constructor(issues: readonly StandardSchemaV1.Issue[], value: any, schemaName: `${SchemaType}Schema`, _bqMeta: any);
-}
-
-declare const rawResultType: unique symbol;
-declare const resultType: unique symbol;
-declare const baseQuery: unique symbol;
-interface SchemaFailureInfo {
-    endpoint: string;
-    arg: any;
-    type: 'query' | 'mutation';
-    queryCacheKey?: string;
-}
-type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;
-type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;
-type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {
-    /**
-     * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="query example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Post'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       // highlight-start
-     *       query: () => 'posts',
-     *       // highlight-end
-     *     }),
-     *     addPost: build.mutation<Post, Partial<Post>>({
-     *      // highlight-start
-     *      query: (body) => ({
-     *        url: `posts`,
-     *        method: 'POST',
-     *        body,
-     *      }),
-     *      // highlight-end
-     *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],
-     *    }),
-     *   })
-     * })
-     * ```
-     */
-    query(arg: QueryArg): BaseQueryArg<BaseQuery>;
-    queryFn?: never;
-    /**
-     * A function to manipulate the data returned by a query or mutation.
-     */
-    transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;
-    /**
-     * A function to manipulate the data returned by a failed query or mutation.
-     */
-    transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;
-    /**
-     * A schema for the result *before* it's passed to `transformResponse`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const postSchema = v.object({ id: v.number(), name: v.string() })
-     * type Post = v.InferOutput<typeof postSchema>
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPostName: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       rawResponseSchema: postSchema,
-     *       transformResponse: (post) => post.name,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    rawResponseSchema?: StandardSchemaV1<RawResultType>;
-    /**
-     * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import {customBaseQuery, baseQueryErrorSchema} from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       rawErrorResponseSchema: baseQueryErrorSchema,
-     *       transformErrorResponse: (error) => error.data,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;
-};
-type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {
-    /**
-     * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Basic queryFn example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *     }),
-     *     flipCoin: build.query<'heads' | 'tails', void>({
-     *       // highlight-start
-     *       queryFn(arg, queryApi, extraOptions, baseQuery) {
-     *         const randomVal = Math.random()
-     *         if (randomVal < 0.45) {
-     *           return { data: 'heads' }
-     *         }
-     *         if (randomVal < 0.9) {
-     *           return { data: 'tails' }
-     *         }
-     *         return { error: { status: 500, statusText: 'Internal Server Error', data: "Coin landed on its edge!" } }
-     *       }
-     *       // highlight-end
-     *     })
-     *   })
-     * })
-     * ```
-     */
-    queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;
-    query?: never;
-    transformResponse?: never;
-    transformErrorResponse?: never;
-    rawResponseSchema?: never;
-    rawErrorResponseSchema?: never;
-};
-type BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {
-    QueryArg: QueryArg;
-    BaseQuery: BaseQuery;
-    ResultType: ResultType;
-    RawResultType: RawResultType;
-};
-type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';
-interface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {
-    /**
-     * A schema for the arguments to be passed to the `query` or `queryFn`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       argSchema: v.object({ id: v.number() }),
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    argSchema?: StandardSchemaV1<QueryArg>;
-    /**
-     * A schema for the result (including `transformResponse` if provided).
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const postSchema = v.object({ id: v.number(), name: v.string() })
-     * type Post = v.InferOutput<typeof postSchema>
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: postSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    responseSchema?: StandardSchemaV1<ResultType>;
-    /**
-     * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import { customBaseQuery, baseQueryErrorSchema } from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       errorResponseSchema: baseQueryErrorSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;
-    /**
-     * A schema for the `meta` property returned by the `query` or `queryFn`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import { customBaseQuery, baseQueryMetaSchema } from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       metaSchema: baseQueryMetaSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;
-    /**
-     * Defaults to `true`.
-     *
-     * Most apps should leave this setting on. The only time it can be a performance issue
-     * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and
-     * you're unable to paginate it.
-     *
-     * For details of how this works, please see the below. When it is set to `false`,
-     * every request will cause subscribed components to rerender, even when the data has not changed.
-     *
-     * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing
-     */
-    structuralSharing?: boolean;
-    /**
-     * A function that is called when a schema validation fails.
-     *
-     * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-     *
-     * `NamedSchemaError` has the following properties:
-     * - `issues`: an array of issues that caused the validation to fail
-     * - `value`: the value that was passed to the schema
-     * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       onSchemaFailure: (error, info) => {
-     *         console.error(error, info)
-     *       },
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    onSchemaFailure?: SchemaFailureHandler;
-    /**
-     * Convert a schema validation failure into an error shape matching base query errors.
-     *
-     * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *       catchSchemaFailure: (error, info) => ({
-     *         status: "CUSTOM_ERROR",
-     *         error: error.schemaName + " failed validation",
-     *         data: error.issues,
-     *       }),
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;
-    /**
-     * Defaults to `false`.
-     *
-     * If set to `true`, will skip schema validation for this endpoint.
-     * Overrides the global setting.
-     *
-     * Can be overridden for specific schemas by passing an array of schema types to skip.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *       skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    skipSchemaValidation?: boolean | SchemaType[];
-}
-type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {
-    [rawResultType]?: RawResultType;
-    [resultType]?: ResultType;
-    [baseQuery]?: BaseQuery;
-} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {
-    extraOptions: BaseQueryExtraOptions<BaseQuery>;
-}, {
-    extraOptions?: BaseQueryExtraOptions<BaseQuery>;
-}>;
-declare enum DefinitionType {
-    query = "query",
-    mutation = "mutation",
-    infinitequery = "infinitequery"
-}
-type TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;
-type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;
-type FullTagDescription<TagType> = {
-    type: TagType;
-    id?: number | string;
-};
-type TagDescription<TagType> = TagType | FullTagDescription<TagType>;
-/**
- * @public
- */
-type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;
-type QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-     * ```
-     */
-    QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-/**
- * @public
- */
-interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {
-    type: DefinitionType.query;
-    /**
-     * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.
-     * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.
-     * 1.  `['Post']` - equivalent to `2`
-     * 2.  `[{ type: 'Post' }]` - equivalent to `1`
-     * 3.  `[{ type: 'Post', id: 1 }]`
-     * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`
-     * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`
-     * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="providesTags example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Posts'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *       // highlight-start
-     *       providesTags: (result) =>
-     *         result
-     *           ? [
-     *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-     *               { type: 'Posts', id: 'LIST' },
-     *             ]
-     *           : [{ type: 'Posts', id: 'LIST' }],
-     *       // highlight-end
-     *     })
-     *   })
-     * })
-     * ```
-     */
-    providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A query should not invalidate tags in the cache.
-     */
-    invalidatesTags?: never;
-    /**
-     * Can be provided to return a custom cache key value based on the query arguments.
-     *
-     * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-     *
-     * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="serializeQueryArgs : exclude value"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * interface MyApiClient {
-     *   fetchPost: (id: string) => Promise<Post>
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    // Example: an endpoint with an API client passed in as an argument,
-     *    // but only the item ID should be used as the cache key
-     *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-     *      queryFn: async ({ id, client }) => {
-     *        const post = await client.fetchPost(id)
-     *        return { data: post }
-     *      },
-     *      // highlight-start
-     *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-     *        const { id } = queryArgs
-     *        // This can return a string, an object, a number, or a boolean.
-     *        // If it returns an object, number or boolean, that value
-     *        // will be serialized automatically via `defaultSerializeQueryArgs`
-     *        return { id } // omit `client` from the cache key
-     *
-     *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-     *        // return defaultSerializeQueryArgs({
-     *        //   endpointName,
-     *        //   queryArgs: { id },
-     *        //   endpointDefinition
-     *        // })
-     *        // Or  create and return a string yourself:
-     *        // return `getPost(${id})`
-     *      },
-     *      // highlight-end
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;
-    /**
-     * Can be provided to merge an incoming response value into the current cache data.
-     * If supplied, no automatic structural sharing will be applied - it's up to
-     * you to update the cache appropriately.
-     *
-     * Since RTKQ normally replaces cache entries with the new response, you will usually
-     * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep
-     * an existing cache entry so that it can be updated.
-     *
-     * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,
-     * or return a new value, but _not_ both at once.
-     *
-     * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,
-     * the cache entry will just save the response data directly.
-     *
-     * Useful if you don't want a new request to completely override the current cache value,
-     * maybe because you have manually updated it from another source and don't want those
-     * updates to get lost.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="merge: pagination"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    listItems: build.query<string[], number>({
-     *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-     *     // Only have one cache entry because the arg always maps to one string
-     *     serializeQueryArgs: ({ endpointName }) => {
-     *       return endpointName
-     *      },
-     *      // Always merge incoming data to the cache entry
-     *      merge: (currentCache, newItems) => {
-     *        currentCache.push(...newItems)
-     *      },
-     *      // Refetch when the page arg changes
-     *      forceRefetch({ currentArg, previousArg }) {
-     *        return currentArg !== previousArg
-     *      },
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {
-        arg: QueryArg;
-        baseQueryMeta: BaseQueryMeta<BaseQuery>;
-        requestId: string;
-        fulfilledTimeStamp: number;
-    }): ResultType | void;
-    /**
-     * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.
-     * This is primarily useful for "infinite scroll" / pagination use cases where
-     * RTKQ is keeping a single cache entry that is added to over time, in combination
-     * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback
-     * set to add incoming data to the cache entry each time.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="forceRefresh: pagination"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    listItems: build.query<string[], number>({
-     *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-     *     // Only have one cache entry because the arg always maps to one string
-     *     serializeQueryArgs: ({ endpointName }) => {
-     *       return endpointName
-     *      },
-     *      // Always merge incoming data to the cache entry
-     *      merge: (currentCache, newItems) => {
-     *        currentCache.push(...newItems)
-     *      },
-     *      // Refetch when the page arg changes
-     *      forceRefetch({ currentArg, previousArg }) {
-     *        return currentArg !== previousArg
-     *      },
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    forceRefetch?(params: {
-        currentArg: QueryArg | undefined;
-        previousArg: QueryArg | undefined;
-        state: RootState<any, any, string>;
-        endpointState?: QuerySubState<any>;
-    }): boolean;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;
-type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-     * ```
-     */
-    InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {
-    type: DefinitionType.infinitequery;
-    providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A query should not invalidate tags in the cache.
-     */
-    invalidatesTags?: never;
-    /**
-     * Required options to configure the infinite query behavior.
-     * `initialPageParam` and `getNextPageParam` are required, to
-     * ensure the infinite query can properly fetch the next page of data.
-     * `initialPageParam` may be specified when using the
-     * endpoint, to override the default value.
-     * `maxPages` and `getPreviousPageParam` are both optional.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="infiniteQueryOptions example"
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     *
-     * type Pokemon = {
-     *   id: string
-     *   name: string
-     * }
-     *
-     * const pokemonApi = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-     *   endpoints: (build) => ({
-     *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({
-     *       infiniteQueryOptions: {
-     *         initialPageParam: 0,
-     *         maxPages: 3,
-     *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>
-     *           lastPageParam + 1,
-     *         getPreviousPageParam: (
-     *           firstPage,
-     *           allPages,
-     *           firstPageParam,
-     *           allPageParams,
-     *         ) => {
-     *           return firstPageParam > 0 ? firstPageParam - 1 : undefined
-     *         },
-     *       },
-     *       query({pageParam}) {
-     *         return `https://example.com/listItems?page=${pageParam}`
-     *       },
-     *     }),
-     *   }),
-     * })
-     
-     * ```
-     */
-    infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;
-    /**
-     * Can be provided to return a custom cache key value based on the query arguments.
-     *
-     * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-     *
-     * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="serializeQueryArgs : exclude value"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * interface MyApiClient {
-     *   fetchPost: (id: string) => Promise<Post>
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    // Example: an endpoint with an API client passed in as an argument,
-     *    // but only the item ID should be used as the cache key
-     *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-     *      queryFn: async ({ id, client }) => {
-     *        const post = await client.fetchPost(id)
-     *        return { data: post }
-     *      },
-     *      // highlight-start
-     *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-     *        const { id } = queryArgs
-     *        // This can return a string, an object, a number, or a boolean.
-     *        // If it returns an object, number or boolean, that value
-     *        // will be serialized automatically via `defaultSerializeQueryArgs`
-     *        return { id } // omit `client` from the cache key
-     *
-     *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-     *        // return defaultSerializeQueryArgs({
-     *        //   endpointName,
-     *        //   queryArgs: { id },
-     *        //   endpointDefinition
-     *        // })
-     *        // Or  create and return a string yourself:
-     *        // return `getPost(${id})`
-     *      },
-     *      // highlight-end
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;
-type MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...
-     * ```
-     */
-    MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-/**
- * @public
- */
-interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {
-    type: DefinitionType.mutation;
-    /**
-     * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.
-     * Expects the same shapes as `providesTags`.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="invalidatesTags example"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Posts'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *       providesTags: (result) =>
-     *         result
-     *           ? [
-     *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-     *               { type: 'Posts', id: 'LIST' },
-     *             ]
-     *           : [{ type: 'Posts', id: 'LIST' }],
-     *     }),
-     *     addPost: build.mutation<Post, Partial<Post>>({
-     *       query(body) {
-     *         return {
-     *           url: `posts`,
-     *           method: 'POST',
-     *           body,
-     *         }
-     *       },
-     *       // highlight-start
-     *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],
-     *       // highlight-end
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A mutation should not provide tags to the cache.
-     */
-    providesTags?: never;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;
-type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;
-type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {
-    /**
-     * An endpoint definition that retrieves data, and may provide tags to the cache.
-     *
-     * @example
-     * ```js
-     * // codeblock-meta title="Example of all query endpoint options"
-     * const api = createApi({
-     *  baseQuery,
-     *  endpoints: (build) => ({
-     *    getPost: build.query({
-     *      query: (id) => ({ url: `post/${id}` }),
-     *      // Pick out data and prevent nested properties in a hook or selector
-     *      transformResponse: (response) => response.data,
-     *      // Pick out error and prevent nested properties in a hook or selector
-     *      transformErrorResponse: (response) => response.error,
-     *      // `result` is the server response
-     *      providesTags: (result, error, id) => [{ type: 'Post', id }],
-     *      // trigger side effects or optimistic updates
-     *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},
-     *      // handle subscriptions etc
-     *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},
-     *    }),
-     *  }),
-     *});
-     *```
-     */
-    query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-    /**
-     * An endpoint definition that alters data on the server or will possibly invalidate the cache.
-     *
-     * @example
-     * ```js
-     * // codeblock-meta title="Example of all mutation endpoint options"
-     * const api = createApi({
-     *   baseQuery,
-     *   endpoints: (build) => ({
-     *     updatePost: build.mutation({
-     *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),
-     *       // Pick out data and prevent nested properties in a hook or selector
-     *       transformResponse: (response) => response.data,
-     *       // Pick out error and prevent nested properties in a hook or selector
-     *       transformErrorResponse: (response) => response.error,
-     *       // `result` is the server response
-     *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],
-     *      // trigger side effects or optimistic updates
-     *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},
-     *      // handle subscriptions etc
-     *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},
-     *     }),
-     *   }),
-     * });
-     * ```
-     */
-    mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-    infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-};
-type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;
-type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;
-type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;
-type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;
-type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;
-type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;
-type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;
-type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;
-type InfiniteQueryCombinedArg<QueryArg, PageParam> = {
-    queryArg: QueryArg;
-    pageParam: PageParam;
-};
-type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;
-type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;
-type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;
-type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;
-type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never;
-};
-
-type QueryCacheKey = string & {
-    _type: 'queryCacheKey';
-};
-type QuerySubstateIdentifier = {
-    queryCacheKey: QueryCacheKey;
-};
-type MutationSubstateIdentifier = {
-    requestId: string;
-    fixedCacheKey?: string;
-} | {
-    requestId?: string;
-    fixedCacheKey: string;
-};
-type RefetchConfigOptions = {
-    refetchOnMountOrArgChange: boolean | number;
-    refetchOnReconnect: boolean;
-    refetchOnFocus: boolean;
-};
-type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {
-    /**
-     * The initial page parameter to use for the first page fetch.
-     */
-    initialPageParam: PageParam;
-    /**
-     * This function is required to automatically get the next cursor for infinite queries.
-     * The result will also be used to determine the value of `hasNextPage`.
-     */
-    getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;
-    /**
-     * This function can be set to automatically get the previous cursor for infinite queries.
-     * The result will also be used to determine the value of `hasPreviousPage`.
-     */
-    getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;
-    /**
-     * If specified, only keep this many pages in cache at once.
-     * If additional pages are fetched, older pages in the other
-     * direction will be dropped from the cache.
-     */
-    maxPages?: number;
-    /**
-     * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-     * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-     * RTK Query will try to sequentially refetch all pages currently in the cache.
-     * When `false` only the first page will be refetched.
-     */
-    refetchCachedPages?: boolean;
-};
-type InfiniteData<DataType, PageParam> = {
-    pages: Array<DataType>;
-    pageParams: Array<PageParam>;
-};
-/**
- * Strings describing the query state at any given time.
- */
-declare enum QueryStatus {
-    uninitialized = "uninitialized",
-    pending = "pending",
-    fulfilled = "fulfilled",
-    rejected = "rejected"
-}
-type RequestStatusFlags = {
-    status: QueryStatus.uninitialized;
-    isUninitialized: true;
-    isLoading: false;
-    isSuccess: false;
-    isError: false;
-} | {
-    status: QueryStatus.pending;
-    isUninitialized: false;
-    isLoading: true;
-    isSuccess: false;
-    isError: false;
-} | {
-    status: QueryStatus.fulfilled;
-    isUninitialized: false;
-    isLoading: false;
-    isSuccess: true;
-    isError: false;
-} | {
-    status: QueryStatus.rejected;
-    isUninitialized: false;
-    isLoading: false;
-    isSuccess: false;
-    isError: true;
-};
-/**
- * @public
- */
-type SubscriptionOptions = {
-    /**
-     * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).
-     */
-    pollingInterval?: number;
-    /**
-     *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.
-     *
-     *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.
-     *
-     *  Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    skipPollingIfUnfocused?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnReconnect?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnFocus?: boolean;
-};
-type Subscribers = {
-    [requestId: string]: SubscriptionOptions;
-};
-type QueryKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never;
-}[keyof Definitions];
-type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never;
-}[keyof Definitions];
-type MutationKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never;
-}[keyof Definitions];
-type BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {
-    /**
-     * The argument originally passed into the hook or `initiate` action call
-     */
-    originalArgs: QueryArgFromAnyQuery<D>;
-    /**
-     * A unique ID associated with the request
-     */
-    requestId: string;
-    /**
-     * The received data from the query
-     */
-    data?: DataType;
-    /**
-     * The received error if applicable
-     */
-    error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);
-    /**
-     * The name of the endpoint associated with the query
-     */
-    endpointName: string;
-    /**
-     * Time that the latest query started
-     */
-    startedTimeStamp: number;
-    /**
-     * Time that the latest query was fulfilled
-     */
-    fulfilledTimeStamp?: number;
-};
-type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({
-    status: QueryStatus.fulfilled;
-} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {
-    error: undefined;
-}) | ({
-    status: QueryStatus.pending;
-} & BaseQuerySubState<D, DataType>) | ({
-    status: QueryStatus.rejected;
-} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {
-    status: QueryStatus.uninitialized;
-    originalArgs?: undefined;
-    data?: undefined;
-    error?: undefined;
-    requestId?: undefined;
-    endpointName?: string;
-    startedTimeStamp?: undefined;
-    fulfilledTimeStamp?: undefined;
-}>;
-type InfiniteQueryDirection = 'forward' | 'backward';
-type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {
-    direction?: InfiniteQueryDirection;
-} : never;
-type BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {
-    requestId: string;
-    data?: ResultTypeFrom<D>;
-    error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);
-    endpointName: string;
-    startedTimeStamp: number;
-    fulfilledTimeStamp?: number;
-};
-type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({
-    status: QueryStatus.fulfilled;
-} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {
-    error: undefined;
-}) | (({
-    status: QueryStatus.pending;
-} & BaseMutationSubState<D>) & {
-    data?: undefined;
-}) | ({
-    status: QueryStatus.rejected;
-} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {
-    requestId?: undefined;
-    status: QueryStatus.uninitialized;
-    data?: undefined;
-    error?: undefined;
-    endpointName?: string;
-    startedTimeStamp?: undefined;
-    fulfilledTimeStamp?: undefined;
-};
-type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {
-    queries: QueryState<D>;
-    mutations: MutationState<D>;
-    provided: InvalidationState<E>;
-    subscriptions: SubscriptionState;
-    config: ConfigState<ReducerPath>;
-};
-type InvalidationState<TagTypes extends string> = {
-    tags: {
-        [_ in TagTypes]: {
-            [id: string]: Array<QueryCacheKey>;
-            [id: number]: Array<QueryCacheKey>;
-        };
-    };
-    keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;
-};
-type QueryState<D extends EndpointDefinitions> = {
-    [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;
-};
-type SubscriptionState = {
-    [queryCacheKey: string]: Subscribers | undefined;
-};
-type ConfigState<ReducerPath> = RefetchConfigOptions & {
-    reducerPath: ReducerPath;
-    online: boolean;
-    focused: boolean;
-    middlewareRegistered: boolean | 'conflict';
-} & ModifiableConfigState;
-type ModifiableConfigState = {
-    keepUnusedDataFor: number;
-    invalidationBehavior: 'delayed' | 'immediately';
-} & RefetchConfigOptions;
-type MutationState<D extends EndpointDefinitions> = {
-    [requestId: string]: MutationSubState<D[string]> | undefined;
-};
-type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = {
-    [P in ReducerPath]: CombinedState<Definitions, TagTypes, P>;
-};
-
-type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);
-type CustomRequestInit = Override<RequestInit, {
-    headers?: Headers | string[][] | Record<string, string | undefined> | undefined;
-}>;
-interface FetchArgs extends CustomRequestInit {
-    url: string;
-    params?: Record<string, any>;
-    body?: any;
-    responseHandler?: ResponseHandler;
-    validateStatus?: (response: Response, body: any) => boolean;
-    /**
-     * A number in milliseconds that represents that maximum time a request can take before timing out.
-     */
-    timeout?: number;
-}
-type FetchBaseQueryError = {
-    /**
-     * * `number`:
-     *   HTTP status code
-     */
-    status: number;
-    data: unknown;
-} | {
-    /**
-     * * `"FETCH_ERROR"`:
-     *   An error that occurred during execution of `fetch` or the `fetchFn` callback option
-     **/
-    status: 'FETCH_ERROR';
-    data?: undefined;
-    error: string;
-} | {
-    /**
-     * * `"PARSING_ERROR"`:
-     *   An error happened during parsing.
-     *   Most likely a non-JSON-response was returned with the default `responseHandler` "JSON",
-     *   or an error occurred while executing a custom `responseHandler`.
-     **/
-    status: 'PARSING_ERROR';
-    originalStatus: number;
-    data: string;
-    error: string;
-} | {
-    /**
-     * * `"TIMEOUT_ERROR"`:
-     *   Request timed out
-     **/
-    status: 'TIMEOUT_ERROR';
-    data?: undefined;
-    error: string;
-} | {
-    /**
-     * * `"CUSTOM_ERROR"`:
-     *   A custom error type that you can return from your `queryFn` where another error might not make sense.
-     **/
-    status: 'CUSTOM_ERROR';
-    data?: unknown;
-    error: string;
-};
-type FetchBaseQueryArgs = {
-    baseUrl?: string;
-    prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {
-        arg: string | FetchArgs;
-        extraOptions: unknown;
-    }) => MaybePromise<Headers | void>;
-    fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;
-    paramsSerializer?: (params: Record<string, any>) => string;
-    /**
-     * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass
-     * in a predicate function for your given api to get the same automatic stringifying behavior
-     * @example
-     * ```ts
-     * const isJsonContentType = (headers: Headers) => ["application/vnd.api+json", "application/json", "application/vnd.hal+json"].includes(headers.get("content-type")?.trim());
-     * ```
-     */
-    isJsonContentType?: (headers: Headers) => boolean;
-    /**
-     * Defaults to `application/json`;
-     */
-    jsonContentType?: string;
-    /**
-     * Custom replacer function used when calling `JSON.stringify()`;
-     */
-    jsonReplacer?: (this: any, key: string, value: any) => any;
-} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;
-type FetchBaseQueryMeta = {
-    request: Request;
-    response?: Response;
-};
-/**
- * This is a very small wrapper around fetch that aims to simplify requests.
- *
- * @example
- * ```ts
- * const baseQuery = fetchBaseQuery({
- *   baseUrl: 'https://api.your-really-great-app.com/v1/',
- *   prepareHeaders: (headers, { getState }) => {
- *     const token = (getState() as RootState).auth.token;
- *     // If we have a token set in state, let's assume that we should be passing it.
- *     if (token) {
- *       headers.set('authorization', `Bearer ${token}`);
- *     }
- *     return headers;
- *   },
- * })
- * ```
- *
- * @param {string} baseUrl
- * The base URL for an API service.
- * Typically in the format of https://example.com/
- *
- * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders
- * An optional function that can be used to inject headers on requests.
- * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.
- * Useful for setting authentication or headers that need to be set conditionally.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers
- *
- * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn
- * Accepts a custom `fetch` function if you do not want to use the default on the window.
- * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`
- *
- * @param {(params: Record<string, unknown>) => string} paramsSerializer
- * An optional function that can be used to stringify querystring parameters.
- *
- * @param {(headers: Headers) => boolean} isJsonContentType
- * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`
- *
- * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.
- *
- * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.
- *
- * @param {number} timeout
- * A number in milliseconds that represents the maximum time a request can take before timing out.
- */
-declare function fetchBaseQuery({ baseUrl, prepareHeaders, fetchFn, paramsSerializer, isJsonContentType, jsonContentType, jsonReplacer, timeout: defaultTimeout, responseHandler: globalResponseHandler, validateStatus: globalValidateStatus, ...baseFetchOptions }?: FetchBaseQueryArgs): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>;
-
-type RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {
-    attempt: number;
-    baseQueryApi: BaseQueryApi;
-    extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;
-}) => boolean;
-type RetryOptions = {
-    /**
-     * Function used to determine delay between retries
-     */
-    backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;
-} & ({
-    /**
-     * How many times the query will be retried (default: 5)
-     */
-    maxRetries?: number;
-    retryCondition?: undefined;
-} | {
-    /**
-     * Callback to determine if a retry should be attempted.
-     * Return `true` for another retry and `false` to quit trying prematurely.
-     */
-    retryCondition?: RetryConditionFunction;
-    maxRetries?: undefined;
-});
-declare function fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never;
-/**
- * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.
- *
- * @example
- *
- * ```ts
- * // codeblock-meta title="Retry every request 5 times by default"
- * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.
- * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });
- * export const api = createApi({
- *   baseQuery: staggeredBaseQuery,
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => ({ url: 'posts' }),
- *     }),
- *     getPost: build.query<PostsResponse, string>({
- *       query: (id) => ({ url: `post/${id}` }),
- *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint
- *     }),
- *   }),
- * });
- *
- * export const { useGetPostsQuery, useGetPostQuery } = api;
- * ```
- */
-declare const retry: BaseQueryEnhancer<unknown, RetryOptions, void | RetryOptions> & {
-    fail: typeof fail;
-};
-
-declare function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;
-
-export { type Api, type ApiContext, type ApiEndpointInfiniteQuery, type ApiEndpointMutation, type ApiEndpointQuery, type ApiModules, type BaseEndpointDefinition, type BaseQueryApi, type BaseQueryArg, type BaseQueryEnhancer, type BaseQueryError, type BaseQueryExtraOptions, type BaseQueryFn, type BaseQueryMeta, type BaseQueryResult, type CombinedState, type CoreModule, type CreateApi, type CreateApiOptions, DefinitionType, type DefinitionsFromApi, type EndpointBuilder, type EndpointDefinition, type EndpointDefinitions, type FetchArgs, type FetchBaseQueryArgs, type FetchBaseQueryError, type FetchBaseQueryMeta, type InfiniteData, type InfiniteQueryActionCreatorResult, type InfiniteQueryArgFrom, type InfiniteQueryConfigOptions, type InfiniteQueryDefinition, type InfiniteQueryExtraOptions, type InfiniteQueryResultSelectorResult, type InfiniteQuerySubState, type Module, type MutationActionCreatorResult, type MutationDefinition, type MutationExtraOptions, type MutationResultSelectorResult, NamedSchemaError, type OverrideResultType, type PageParamFrom, type PrefetchOptions, type QueryActionCreatorResult, type QueryArgFrom, type QueryCacheKey, type QueryDefinition, type QueryExtraOptions, type QueryKeys, type QueryResultSelectorResult, type QueryReturnValue, QueryStatus, type QuerySubState, type ResultDescription, type ResultTypeFrom, type RetryOptions, type RootState, type SchemaFailureConverter, type SchemaFailureHandler, type SchemaFailureInfo, type SchemaType, type SerializeQueryArgs, type SkipToken, type StartQueryActionCreatorOptions, type SubscriptionOptions, type Id as TSHelpersId, type NoInfer as TSHelpersNoInfer, type Override as TSHelpersOverride, type TagDescription, type TagTypesFromApi, type TypedMutationOnQueryStarted, type TypedQueryOnQueryStarted, type UpdateDefinitions, buildCreateApi, copyWithStructuralSharing, coreModule, createApi, defaultSerializeQueryArgs, fakeBaseQuery, fetchBaseQuery, retry, setupListeners };
Index: de_modules/@reduxjs/toolkit/dist/query/index.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2954 +1,0 @@
-import * as _reduxjs_toolkit from '@reduxjs/toolkit';
-import { ThunkDispatch, UnknownAction, Draft, AsyncThunk, SHOULD_AUTOBATCH, ThunkAction, SafePromise, SerializedError, PayloadAction, ActionCreatorWithoutPayload, Reducer, Middleware, ActionCreatorWithPayload } from '@reduxjs/toolkit';
-import { Patch } from 'immer';
-import * as redux from 'redux';
-import { CreateSelectorFunction } from 'reselect';
-import { StandardSchemaV1 } from '@standard-schema/spec';
-import { SchemaError } from '@standard-schema/utils';
-
-type Id<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
-type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
-type NonOptionalKeys<T> = {
-    [K in keyof T]-?: undefined extends T[K] ? never : K;
-}[keyof T];
-type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;
-type NoInfer<T> = [T][T extends any ? 0 : never];
-type NonUndefined<T> = T extends undefined ? never : T;
-type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;
-type MaybePromise<T> = T | PromiseLike<T>;
-type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;
-type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;
-type CastAny<T, CastTo> = IsAny<T, CastTo, T>;
-
-interface BaseQueryApi {
-    signal: AbortSignal;
-    abort: (reason?: string) => void;
-    dispatch: ThunkDispatch<any, any, any>;
-    getState: () => unknown;
-    extra: unknown;
-    endpoint: string;
-    type: 'query' | 'mutation';
-    /**
-     * Only available for queries: indicates if a query has been forced,
-     * i.e. it would have been fetched even if there would already be a cache entry
-     * (this does not mean that there is already a cache entry though!)
-     *
-     * This can be used to for example add a `Cache-Control: no-cache` header for
-     * invalidated queries.
-     */
-    forced?: boolean;
-    /**
-     * Only available for queries: the cache key that was used to store the query result
-     */
-    queryCacheKey?: string;
-}
-type QueryReturnValue<T = unknown, E = unknown, M = unknown> = {
-    error: E;
-    data?: undefined;
-    meta?: M;
-} | {
-    error?: undefined;
-    data: T;
-    meta?: M;
-};
-type BaseQueryFn<Args = any, Result = unknown, Error = unknown, DefinitionExtraOptions = {}, Meta = {}> = (args: Args, api: BaseQueryApi, extraOptions: DefinitionExtraOptions) => MaybePromise<QueryReturnValue<Result, Error, Meta>>;
-type BaseQueryEnhancer<AdditionalArgs = unknown, AdditionalDefinitionExtraOptions = unknown, Config = void> = <BaseQuery extends BaseQueryFn>(baseQuery: BaseQuery, config: Config) => BaseQueryFn<BaseQueryArg<BaseQuery> & AdditionalArgs, BaseQueryResult<BaseQuery>, BaseQueryError<BaseQuery>, BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions, NonNullable<BaseQueryMeta<BaseQuery>>>;
-/**
- * @public
- */
-type BaseQueryResult<BaseQuery extends BaseQueryFn> = UnwrapPromise<ReturnType<BaseQuery>> extends infer Unwrapped ? Unwrapped extends {
-    data: any;
-} ? Unwrapped['data'] : never : never;
-/**
- * @public
- */
-type BaseQueryMeta<BaseQuery extends BaseQueryFn> = UnwrapPromise<ReturnType<BaseQuery>>['meta'];
-/**
- * @public
- */
-type BaseQueryError<BaseQuery extends BaseQueryFn> = Exclude<UnwrapPromise<ReturnType<BaseQuery>>, {
-    error?: undefined;
-}>['error'];
-/**
- * @public
- */
-type BaseQueryArg<T extends (arg: any, ...args: any[]) => any> = T extends (arg: infer A, ...args: any[]) => any ? A : any;
-/**
- * @public
- */
-type BaseQueryExtraOptions<BaseQuery extends BaseQueryFn> = Parameters<BaseQuery>[2];
-
-declare const defaultSerializeQueryArgs: SerializeQueryArgs<any>;
-type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {
-    queryArgs: QueryArgs;
-    endpointDefinition: EndpointDefinition<any, any, any, any>;
-    endpointName: string;
-}) => ReturnType;
-type InternalSerializeQueryArgs = (_: {
-    queryArgs: any;
-    endpointDefinition: EndpointDefinition<any, any, any, any>;
-    endpointName: string;
-}) => QueryCacheKey;
-
-interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {
-    /**
-     * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     *
-     * const api = createApi({
-     *   // highlight-start
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // ...endpoints
-     *   }),
-     * })
-     * ```
-     */
-    baseQuery: BaseQuery;
-    /**
-     * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-start
-     *   tagTypes: ['Post', 'User'],
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // ...endpoints
-     *   }),
-     * })
-     * ```
-     */
-    tagTypes?: readonly TagTypes[];
-    /**
-     * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="apis.js"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
-     *
-     * const apiOne = createApi({
-     *   // highlight-start
-     *   reducerPath: 'apiOne',
-     *   // highlight-end
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (builder) => ({
-     *     // ...endpoints
-     *   }),
-     * });
-     *
-     * const apiTwo = createApi({
-     *   // highlight-start
-     *   reducerPath: 'apiTwo',
-     *   // highlight-end
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (builder) => ({
-     *     // ...endpoints
-     *   }),
-     * });
-     * ```
-     */
-    reducerPath?: ReducerPath;
-    /**
-     * Accepts a custom function if you have a need to change the creation of cache keys for any reason.
-     */
-    serializeQueryArgs?: SerializeQueryArgs<unknown>;
-    /**
-     * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).
-     */
-    endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;
-    /**
-     * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="keepUnusedDataFor example"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts'
-     *     })
-     *   }),
-     *   // highlight-start
-     *   keepUnusedDataFor: 5
-     *   // highlight-end
-     * })
-     * ```
-     */
-    keepUnusedDataFor?: number;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnFocus?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnReconnect?: boolean;
-    /**
-     * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.
-     *
-     * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.
-     *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.
-     * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.
-     *   This ensures that queries are always invalidated correctly and automatically "batches" invalidations of concurrent mutations.
-     *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.
-     */
-    invalidationBehavior?: 'delayed' | 'immediately';
-    /**
-     * A function that is passed every dispatched action. If this returns something other than `undefined`,
-     * that return value will be used to rehydrate fulfilled & errored queries.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="next-redux-wrapper rehydration example"
-     * import type { Action, PayloadAction } from '@reduxjs/toolkit'
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import { HYDRATE } from 'next-redux-wrapper'
-     *
-     * type RootState = any; // normally inferred from state
-     *
-     * function isHydrateAction(action: Action): action is PayloadAction<RootState> {
-     *   return action.type === HYDRATE
-     * }
-     *
-     * export const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   // highlight-start
-     *   extractRehydrationInfo(action, { reducerPath }): any {
-     *     if (isHydrateAction(action)) {
-     *       return action.payload[reducerPath]
-     *     }
-     *   },
-     *   // highlight-end
-     *   endpoints: (build) => ({
-     *     // omitted
-     *   }),
-     * })
-     * ```
-     */
-    extractRehydrationInfo?: (action: UnknownAction, { reducerPath, }: {
-        reducerPath: ReducerPath;
-    }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;
-    /**
-     * A function that is called when a schema validation fails.
-     *
-     * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-     *
-     * `NamedSchemaError` has the following properties:
-     * - `issues`: an array of issues that caused the validation to fail
-     * - `value`: the value that was passed to the schema
-     * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *     }),
-     *   }),
-     *   onSchemaFailure: (error, info) => {
-     *     console.error(error, info)
-     *   },
-     * })
-     * ```
-     */
-    onSchemaFailure?: SchemaFailureHandler;
-    /**
-     * Convert a schema validation failure into an error shape matching base query errors.
-     *
-     * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *     }),
-     *   }),
-     *   catchSchemaFailure: (error, info) => ({
-     *     status: "CUSTOM_ERROR",
-     *     error: error.schemaName + " failed validation",
-     *     data: error.issues,
-     *   }),
-     * })
-     * ```
-     */
-    catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;
-    /**
-     * Defaults to `false`.
-     *
-     * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.
-     *
-     * Can be overridden for specific schemas by passing an array of schema types to skip.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    skipSchemaValidation?: boolean | SchemaType[];
-}
-type CreateApi<Modules extends ModuleName> = {
-    /**
-     * Creates a service to use in your application. Contains only the basic redux logic (the core module).
-     *
-     * @link https://redux-toolkit.js.org/rtk-query/api/createApi
-     */
-    <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;
-};
-/**
- * Builds a `createApi` method based on the provided `modules`.
- *
- * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api
- *
- * @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints
- * @returns A `createApi` method using the provided `modules`.
- */
-declare function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']>;
-
-type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;
-type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;
-type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;
-type EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {
-    originalArgs: QueryArg;
-}, ATConfig & {
-    rejectValue: BaseQueryError<BaseQueryFn>;
-}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {
-    originalArgs: QueryArg;
-}, ATConfig & {
-    rejectValue: BaseQueryError<BaseQueryFn>;
-}> : never : never;
-type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;
-type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;
-type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;
-type Matcher<M> = (value: any) => value is M;
-interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {
-    matchPending: Matcher<PendingAction<Thunk, Definition>>;
-    matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;
-    matchRejected: Matcher<RejectedAction<Thunk, Definition>>;
-}
-type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {
-    type: 'query';
-    originalArgs: unknown;
-    endpointName: string;
-};
-type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {
-    type: `query`;
-    originalArgs: unknown;
-    endpointName: string;
-    param: unknown;
-    direction?: InfiniteQueryDirection;
-    refetchCachedPages?: boolean;
-};
-type MutationThunkArg = {
-    type: 'mutation';
-    originalArgs: unknown;
-    endpointName: string;
-    track?: boolean;
-    fixedCacheKey?: string;
-};
-type ThunkResult = unknown;
-type ThunkApiMetaConfig = {
-    pendingMeta: {
-        startedTimeStamp: number;
-        [SHOULD_AUTOBATCH]: true;
-    };
-    fulfilledMeta: {
-        fulfilledTimeStamp: number;
-        baseQueryMeta: unknown;
-        [SHOULD_AUTOBATCH]: true;
-    };
-    rejectedMeta: {
-        baseQueryMeta: unknown;
-        [SHOULD_AUTOBATCH]: true;
-    };
-};
-type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;
-type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;
-type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;
-type MaybeDrafted<T> = T | Draft<T>;
-type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;
-type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;
-type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;
-type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;
-type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;
-type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;
-type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;
-type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;
-/**
- * An object returned from dispatching a `api.util.updateQueryData` call.
- */
-type PatchCollection = {
-    /**
-     * An `immer` Patch describing the cache update.
-     */
-    patches: Patch[];
-    /**
-     * An `immer` Patch to revert the cache update.
-     */
-    inversePatches: Patch[];
-    /**
-     * A function that will undo the cache update.
-     */
-    undo: () => void;
-};
-
-type SkipToken = typeof skipToken;
-/**
- * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`
- * instead of the query argument to get the same effect as if setting
- * `skip: true` in the query options.
- *
- * Useful for scenarios where a query should be skipped when `arg` is `undefined`
- * and TypeScript complains about it because `arg` is not allowed to be passed
- * in as `undefined`, such as
- *
- * ```ts
- * // codeblock-meta title="will error if the query argument is not allowed to be undefined" no-transpile
- * useSomeQuery(arg, { skip: !!arg })
- * ```
- *
- * ```ts
- * // codeblock-meta title="using skipToken instead" no-transpile
- * useSomeQuery(arg ?? skipToken)
- * ```
- *
- * If passed directly into a query or mutation selector, that selector will always
- * return an uninitialized state.
- */
-export declare const skipToken: unique symbol;
-type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: QueryResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: InfiniteQueryResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {
-    select: MutationResultSelectorFactory<Definition, RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;
-};
-type QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;
-type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;
-type InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;
-type InfiniteQueryResultFlags = {
-    hasNextPage: boolean;
-    hasPreviousPage: boolean;
-    isFetchingNextPage: boolean;
-    isFetchingPreviousPage: boolean;
-    isFetchNextPageError: boolean;
-    isFetchPreviousPageError: boolean;
-};
-type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;
-type MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {
-    requestId: string | undefined;
-    fixedCacheKey: string | undefined;
-} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;
-type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;
-
-type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {
-    initiate: StartQueryActionCreator<Definition>;
-};
-type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    initiate: StartInfiniteQueryActionCreator<Definition>;
-};
-type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {
-    initiate: StartMutationActionCreator<Definition>;
-};
-declare const forceQueryFnSymbol: unique symbol;
-type StartQueryActionCreatorOptions = {
-    subscribe?: boolean;
-    forceRefetch?: boolean | number;
-    subscriptionOptions?: SubscriptionOptions;
-    [forceQueryFnSymbol]?: () => QueryReturnValue;
-};
-type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {
-    direction?: InfiniteQueryDirection;
-    param?: unknown;
-} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;
-type StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;
-type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;
-type QueryActionCreatorFields = {
-    requestId: string;
-    subscriptionOptions: SubscriptionOptions | undefined;
-    abort(): void;
-    unsubscribe(): void;
-    updateSubscriptionOptions(options: SubscriptionOptions): void;
-    queryCacheKey: string;
-};
-type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {
-    arg: QueryArgFrom<D>;
-    unwrap(): Promise<ResultTypeFrom<D>>;
-    refetch(): QueryActionCreatorResult<D>;
-};
-type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {
-    arg: InfiniteQueryArgFrom<D>;
-    unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;
-    refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;
-};
-type StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {
-    /**
-     * If this mutation should be tracked in the store.
-     * If you just want to manually trigger this mutation using `dispatch` and don't care about the
-     * result, state & potential errors being held in store, you can set this to false.
-     * (defaults to `true`)
-     */
-    track?: boolean;
-    fixedCacheKey?: string;
-}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;
-type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{
-    data: ResultTypeFrom<D>;
-    error?: undefined;
-} | {
-    data?: undefined;
-    error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;
-}> & {
-    /** @internal */
-    arg: {
-        /**
-         * The name of the given endpoint for the mutation
-         */
-        endpointName: string;
-        /**
-         * The original arguments supplied to the mutation call
-         */
-        originalArgs: QueryArgFrom<D>;
-        /**
-         * Whether the mutation is being tracked in the store.
-         */
-        track?: boolean;
-        fixedCacheKey?: string;
-    };
-    /**
-     * A unique string generated for the request sequence
-     */
-    requestId: string;
-    /**
-     * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation
-     * that was fired off from reaching the server, but only to assist in handling the response.
-     *
-     * Calling `abort()` prior to the promise resolving will force it to reach the error state with
-     * the serialized error:
-     * `{ name: 'AbortError', message: 'Aborted' }`
-     *
-     * @example
-     * ```ts
-     * const [updateUser] = useUpdateUserMutation();
-     *
-     * useEffect(() => {
-     *   const promise = updateUser(id);
-     *   promise
-     *     .unwrap()
-     *     .catch((err) => {
-     *       if (err.name === 'AbortError') return;
-     *       // else handle the unexpected error
-     *     })
-     *
-     *   return () => {
-     *     promise.abort();
-     *   }
-     * }, [id, updateUser])
-     * ```
-     */
-    abort(): void;
-    /**
-     * Unwraps a mutation call to provide the raw response/error.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap"
-     * addPost({ id: 1, name: 'Example' })
-     *   .unwrap()
-     *   .then((payload) => console.log('fulfilled', payload))
-     *   .catch((error) => console.error('rejected', error));
-     * ```
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    unwrap(): Promise<ResultTypeFrom<D>>;
-    /**
-     * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.
-     The value returned by the hook will reset to `isUninitialized` afterwards.
-     */
-    reset(): void;
-};
-
-type ReferenceCacheLifecycle = never;
-interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {
-    /**
-     * Gets the current value of this cache entry.
-     */
-    getCacheEntry(): QueryResultSelectorResult<{
-        type: DefinitionType.query;
-    } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;
-    /**
-     * Updates the current cache entry value.
-     * For documentation see `api.util.updateQueryData`.
-     */
-    updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;
-}
-type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {
-    /**
-     * Gets the current value of this cache entry.
-     */
-    getCacheEntry(): MutationResultSelectorResult<{
-        type: DefinitionType.mutation;
-    } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;
-};
-type LifecycleApi<ReducerPath extends string = string> = {
-    /**
-     * The dispatch method for the store
-     */
-    dispatch: ThunkDispatch<any, any, UnknownAction>;
-    /**
-     * A method to get the current state
-     */
-    getState(): RootState<any, any, ReducerPath>;
-    /**
-     * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.
-     */
-    extra: unknown;
-    /**
-     * A unique ID generated for the mutation
-     */
-    requestId: string;
-};
-type CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {
-    /**
-     * Promise that will resolve with the first value for this cache key.
-     * This allows you to `await` until an actual value is in cache.
-     *
-     * If the cache entry is removed from the cache before any value has ever
-     * been resolved, this Promise will reject with
-     * `new Error('Promise never resolved before cacheEntryRemoved.')`
-     * to prevent memory leaks.
-     * You can just re-throw that error (or not handle it at all) -
-     * it will be caught outside of `cacheEntryAdded`.
-     *
-     * If you don't interact with this promise, it will not throw.
-     */
-    cacheDataLoaded: PromiseWithKnownReason<{
-        /**
-         * The (transformed) query result.
-         */
-        data: ResultType;
-        /**
-         * The `meta` returned by the `baseQuery`
-         */
-        meta: MetaType;
-    }, typeof neverResolvedError>;
-    /**
-     * Promise that allows you to wait for the point in time when the cache entry
-     * has been removed from the cache, by not being used/subscribed to any more
-     * in the application for too long or by dispatching `api.util.resetApiState`.
-     */
-    cacheEntryRemoved: Promise<void>;
-};
-interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {
-}
-type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;
-type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;
-type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-declare const neverResolvedError: Error & {
-    message: "Promise never resolved before cacheEntryRemoved.";
-};
-
-type ReferenceQueryLifecycle = never;
-type QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {
-    /**
-     * Promise that will resolve with the (transformed) query result.
-     *
-     * If the query fails, this promise will reject with the error.
-     *
-     * This allows you to `await` for the query to finish.
-     *
-     * If you don't interact with this promise, it will not throw.
-     */
-    queryFulfilled: PromiseWithKnownReason<{
-        /**
-         * The (transformed) query result.
-         */
-        data: ResultType;
-        /**
-         * The `meta` returned by the `baseQuery`
-         */
-        meta: BaseQueryMeta<BaseQuery>;
-    }, QueryFulfilledRejectionReason<BaseQuery>>;
-};
-type QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {
-    error: BaseQueryError<BaseQuery>;
-    /**
-     * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.
-     */
-    isUnhandledError: false;
-    /**
-     * The `meta` returned by the `baseQuery`
-     */
-    meta: BaseQueryMeta<BaseQuery>;
-} | {
-    error: unknown;
-    meta?: undefined;
-    /**
-     * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.
-     * There can not be made any assumption about the shape of `error`.
-     */
-    isUnhandledError: true;
-};
-type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    /**
-     * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-     *
-     * Can be used to perform side-effects throughout the lifecycle of the query.
-     *
-     * @example
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     * import { messageCreated } from './notificationsSlice
-     * export interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({
-     *     baseUrl: '/',
-     *   }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, number>({
-     *       query: (id) => `post/${id}`,
-     *       async onQueryStarted(id, { dispatch, queryFulfilled }) {
-     *         // `onStart` side-effect
-     *         dispatch(messageCreated('Fetching posts...'))
-     *         try {
-     *           const { data } = await queryFulfilled
-     *           // `onSuccess` side-effect
-     *           dispatch(messageCreated('Posts received!'))
-     *         } catch (err) {
-     *           // `onError` side-effect
-     *           dispatch(messageCreated('Error fetching posts!'))
-     *         }
-     *       }
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;
-type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {
-    /**
-     * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-     *
-     * Can be used for `optimistic updates`.
-     *
-     * @example
-     *
-     * ```ts
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-     * export interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({
-     *     baseUrl: '/',
-     *   }),
-     *   tagTypes: ['Post'],
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, number>({
-     *       query: (id) => `post/${id}`,
-     *       providesTags: ['Post'],
-     *     }),
-     *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
-     *       query: ({ id, ...patch }) => ({
-     *         url: `post/${id}`,
-     *         method: 'PATCH',
-     *         body: patch,
-     *       }),
-     *       invalidatesTags: ['Post'],
-     *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
-     *         const patchResult = dispatch(
-     *           api.util.updateQueryData('getPost', id, (draft) => {
-     *             Object.assign(draft, patch)
-     *           })
-     *         )
-     *         try {
-     *           await queryFulfilled
-     *         } catch {
-     *           patchResult.undo()
-     *         }
-     *       },
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;
-};
-interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {
-}
-type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific query.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, QueryArgument>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedQueryOnQueryStarted<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async (queryArgument, { dispatch, queryFulfilled }) => {
- *   const result = await queryFulfilled
- *
- *   const { posts } = result.data
- *
- *   // Pre-fill the individual post entries with the results
- *   // from the list endpoint query
- *   dispatch(
- *     baseApiSlice.util.upsertQueryEntries(
- *       posts.map((post) => ({
- *         endpointName: 'getPostById',
- *         arg: post.id,
- *         value: post,
- *       })),
- *     ),
- *   )
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({
- *       query: (userId) => `/posts/user/${userId}`,
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific mutation.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = Pick<Post, 'id'> & Partial<Post>
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, number>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedMutationOnQueryStarted<
- *   Post,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {
- *   const patchCollection = dispatch(
- *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {
- *       Object.assign(draftPost, patch)
- *     }),
- *   )
- *
- *   try {
- *     await queryFulfilled
- *   } catch {
- *     patchCollection.undo()
- *   }
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({
- *       query: (body) => ({
- *         url: `posts/add`,
- *         method: 'POST',
- *         body,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *
- *     updatePost: build.mutation<Post, QueryArgument>({
- *       query: ({ id, ...patch }) => ({
- *         url: `post/${id}`,
- *         method: 'PATCH',
- *         body: patch,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];
-
-/**
- * A typesafe single entry to be upserted into the cache
- */
-type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {
-    endpointName: EndpointName;
-    arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;
-    value: DataFromAnyQueryDefinition<Definitions, EndpointName>;
-};
-/**
- * The internal version that is not typesafe since we can't carry the generics through `createSlice`
- */
-type NormalizedQueryUpsertEntryPayload = {
-    endpointName: string;
-    arg: unknown;
-    value: unknown;
-};
-type ProcessedQueryUpsertEntry = {
-    queryDescription: QueryThunkArg;
-    value: unknown;
-};
-/**
- * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert
- */
-type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [
-    ...{
-        [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]>;
-    }
-]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {
-    match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;
-};
-declare function buildSlice({ reducerPath, queryThunk, mutationThunk, serializeQueryArgs, context: { endpointDefinitions: definitions, apiUid, extractRehydrationInfo, hasRehydrationInfo, }, assertTagType, config, }: {
-    reducerPath: string;
-    queryThunk: QueryThunk;
-    infiniteQueryThunk: InfiniteQueryThunk<any>;
-    mutationThunk: MutationThunk;
-    serializeQueryArgs: InternalSerializeQueryArgs;
-    context: ApiContext<EndpointDefinitions>;
-    assertTagType: AssertTagTypes;
-    config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;
-}): {
-    reducer: redux.Reducer<{
-        queries: QueryState<any>;
-        mutations: MutationState<any>;
-        provided: InvalidationState<string>;
-        subscriptions: SubscriptionState;
-        config: ConfigState<string>;
-    }, redux.UnknownAction, Partial<{
-        queries: QueryState<any> | undefined;
-        mutations: MutationState<any> | undefined;
-        provided: InvalidationState<string> | undefined;
-        subscriptions: SubscriptionState | undefined;
-        config: ConfigState<string> | undefined;
-    }>>;
-    actions: {
-        resetApiState: _reduxjs_toolkit.ActionCreatorWithoutPayload<`${string}/resetApiState`>;
-        updateProvidedBy: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: {
-            queryCacheKey: QueryCacheKey;
-            providedTags: readonly FullTagDescription<string>[];
-        }[]], {
-            queryCacheKey: QueryCacheKey;
-            providedTags: readonly FullTagDescription<string>[];
-        }[], `${string}/invalidation/updateProvidedBy`, never, unknown>;
-        removeMutationResult: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: MutationSubstateIdentifier], MutationSubstateIdentifier, `${string}/mutations/removeMutationResult`, never, unknown>;
-        subscriptionsUpdated: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: Patch[]], Patch[], `${string}/internalSubscriptions/subscriptionsUpdated`, never, unknown>;
-        updateSubscriptionOptions: _reduxjs_toolkit.ActionCreatorWithPayload<{
-            endpointName: string;
-            requestId: string;
-            options: Subscribers[number];
-        } & QuerySubstateIdentifier, `${string}/subscriptions/updateSubscriptionOptions`>;
-        unsubscribeQueryResult: _reduxjs_toolkit.ActionCreatorWithPayload<{
-            requestId: string;
-        } & QuerySubstateIdentifier, `${string}/subscriptions/unsubscribeQueryResult`>;
-        internal_getRTKQSubscriptions: _reduxjs_toolkit.ActionCreatorWithoutPayload<`${string}/subscriptions/internal_getRTKQSubscriptions`>;
-        removeQueryResult: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: QuerySubstateIdentifier], QuerySubstateIdentifier, `${string}/queries/removeQueryResult`, never, unknown>;
-        cacheEntriesUpserted: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: NormalizedQueryUpsertEntryPayload[]], ProcessedQueryUpsertEntry[], `${string}/queries/cacheEntriesUpserted`, never, {
-            RTK_autoBatch: boolean;
-            requestId: string;
-            timestamp: number;
-        }>;
-        queryResultPatched: _reduxjs_toolkit.ActionCreatorWithPreparedPayload<[payload: QuerySubstateIdentifier & {
-            patches: readonly Patch[];
-        }], QuerySubstateIdentifier & {
-            patches: readonly Patch[];
-        }, `${string}/queries/queryResultPatched`, never, unknown>;
-        middlewareRegistered: _reduxjs_toolkit.ActionCreatorWithPayload<string, `${string}/config/middlewareRegistered`>;
-    };
-};
-type SliceActions = ReturnType<typeof buildSlice>['actions'];
-
-declare const onFocus: ActionCreatorWithoutPayload<"__rtkq/focused">;
-declare const onFocusLost: ActionCreatorWithoutPayload<"__rtkq/unfocused">;
-declare const onOnline: ActionCreatorWithoutPayload<"__rtkq/online">;
-declare const onOffline: ActionCreatorWithoutPayload<"__rtkq/offline">;
-/**
- * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.
- * It requires the dispatch method from your store.
- * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,
- * but you have the option of providing a callback for more granular control.
- *
- * @example
- * ```ts
- * setupListeners(store.dispatch)
- * ```
- *
- * @param dispatch - The dispatch method from your store
- * @param customHandler - An optional callback for more granular control over listener behavior
- * @returns Return value of the handler.
- * The default handler returns an `unsubscribe` method that can be called to remove the listeners.
- */
-declare function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {
-    onFocus: typeof onFocus;
-    onFocusLost: typeof onFocusLost;
-    onOnline: typeof onOnline;
-    onOffline: typeof onOffline;
-}) => () => void): () => void;
-
-/**
- * Note: this file should import all other files for type discovery and declaration merging
- */
-
-/**
- * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_
- * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value
- *
- * @overloadSummary
- * `force`
- * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.
- */
-type PrefetchOptions = {
-    ifOlderThan?: false | number;
-} | {
-    force?: boolean;
-};
-export declare const coreModuleName: unique symbol;
-type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;
-type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;
-interface ApiModules<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {
-    [coreModuleName]: {
-        /**
-         * This api's reducer should be mounted at `store[api.reducerPath]`.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        reducerPath: ReducerPath;
-        /**
-         * Internal actions not part of the public API. Note: These are subject to change at any given time.
-         */
-        internalActions: InternalActions;
-        /**
-         *  A standard redux reducer that enables core functionality. Make sure it's included in your store.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;
-        /**
-         * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.
-         *
-         * @example
-         * ```ts
-         * configureStore({
-         *   reducer: {
-         *     [api.reducerPath]: api.reducer,
-         *   },
-         *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-         * })
-         * ```
-         */
-        middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;
-        /**
-         * A collection of utility thunks for various situations.
-         */
-        util: {
-            /**
-             * A thunk that (if dispatched) will return a specific running query, identified
-             * by `endpointName` and `arg`.
-             * If that query is not running, dispatching the thunk will result in `undefined`.
-             *
-             * Can be used to await a specific query triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {
-                type: 'query';
-            }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {
-                type: 'infinitequery';
-            }> | undefined>;
-            /**
-             * A thunk that (if dispatched) will return a specific running mutation, identified
-             * by `endpointName` and `fixedCacheKey` or `requestId`.
-             * If that mutation is not running, dispatching the thunk will result in `undefined`.
-             *
-             * Can be used to await a specific mutation triggered in any way,
-             * including via hook trigger functions or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {
-                type: 'mutation';
-            }> | undefined>;
-            /**
-             * A thunk that (if dispatched) will return all running queries.
-             *
-             * Useful for SSR scenarios to await all running queries triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;
-            /**
-             * A thunk that (if dispatched) will return all running mutations.
-             *
-             * Useful for SSR scenarios to await all running mutations triggered in any way,
-             * including via hook calls or manually dispatching `initiate` actions.
-             *
-             * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-             */
-            getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;
-            /**
-             * A Redux thunk that can be used to manually trigger pre-fetching of data.
-             *
-             * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.
-             *
-             * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.
-             *
-             * @example
-             *
-             * ```ts no-transpile
-             * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))
-             * ```
-             */
-            prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;
-            /**
-             * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.
-             *
-             * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.
-             *
-             * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).
-             *
-             * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.
-             *
-             * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.
-             *
-             * @example
-             *
-             * ```ts
-             * const patchCollection = dispatch(
-             *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-             *     draftPosts.push({ id: 1, name: 'Teddy' })
-             *   })
-             * )
-             * ```
-             */
-            updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.
-             *
-             * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.
-             *
-             * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.
-             *
-             * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.
-             *
-             * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a "last result wins" update behavior.
-             *
-             * @example
-             *
-             * ```ts
-             * await dispatch(
-             *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: "Hello!"})
-             * )
-             * ```
-             */
-            upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.
-             *
-             * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.
-             *
-             * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.
-             *
-             * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.
-             *
-             * @example
-             * ```ts
-             * const patchCollection = dispatch(
-             *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-             *     draftPosts.push({ id: 1, name: 'Teddy' })
-             *   })
-             * )
-             *
-             * // later
-             * dispatch(
-             *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)
-             * )
-             *
-             * // or
-             * patchCollection.undo()
-             * ```
-             */
-            patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;
-            /**
-             * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.
-             *
-             * @example
-             *
-             * ```ts
-             * dispatch(api.util.resetApiState())
-             * ```
-             */
-            resetApiState: SliceActions['resetApiState'];
-            upsertQueryEntries: UpsertEntries<Definitions>;
-            /**
-             * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).
-             *
-             * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.
-             *
-             * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.
-             *
-             * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:
-             *
-             * - `[TagType]`
-             * - `[{ type: TagType }]`
-             * - `[{ type: TagType, id: number | string }]`
-             *
-             * @example
-             *
-             * ```ts
-             * dispatch(api.util.invalidateTags(['Post']))
-             * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))
-             * dispatch(
-             *   api.util.invalidateTags([
-             *     { type: 'Post', id: 1 },
-             *     { type: 'Post', id: 'LIST' },
-             *   ])
-             * )
-             * ```
-             */
-            invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;
-            /**
-             * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.
-             *
-             * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-             */
-            selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{
-                endpointName: string;
-                originalArgs: any;
-                queryCacheKey: string;
-            }>;
-            /**
-             * A function to select all arguments currently cached for a given endpoint.
-             *
-             * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-             */
-            selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;
-        };
-        /**
-         * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.
-         */
-        endpoints: {
-            [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never;
-        };
-    };
-}
-interface ApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-interface ApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-interface ApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {
-    name: string;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types: NonNullable<Definition['Types']>;
-}
-type ListenerActions = {
-    /**
-     * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior
-     * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-     */
-    onOnline: typeof onOnline;
-    onOffline: typeof onOffline;
-    /**
-     * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior
-     * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-     */
-    onFocus: typeof onFocus;
-    onFocusLost: typeof onFocusLost;
-};
-type InternalActions = SliceActions & ListenerActions;
-interface CoreModuleOptions {
-    /**
-     * A selector creator (usually from `reselect`, or matching the same signature)
-     */
-    createSelector?: CreateSelectorFunction<any, any, any>;
-}
-/**
- * Creates a module containing the basic redux logic for use with `buildCreateApi`.
- *
- * @example
- * ```ts
- * const createBaseApi = buildCreateApi(coreModule());
- * ```
- */
-declare const coreModule: ({ createSelector, }?: CoreModuleOptions) => Module<CoreModule>;
-
-declare const createApi: CreateApi<typeof coreModuleName>;
-
-type ModuleName = keyof ApiModules<any, any, any, any>;
-type Module<Name extends ModuleName> = {
-    name: Name;
-    init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {
-        injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;
-    };
-};
-interface ApiContext<Definitions extends EndpointDefinitions> {
-    apiUid: string;
-    endpointDefinitions: Definitions;
-    batch(cb: () => void): void;
-    extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;
-    hasRehydrationInfo: (action: UnknownAction) => boolean;
-}
-type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {
-    /**
-     * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.
-     */
-    injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {
-        endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;
-        /**
-         * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.
-         *
-         * If set to `true`, will override existing endpoints with the new definition.
-         * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.
-         * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.
-         */
-        overrideExisting?: boolean | 'throw';
-    }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;
-    /**
-     *A function to enhance a generated API with additional information. Useful with code-generation.
-     */
-    enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {
-        addTagTypes?: readonly NewTagTypes[];
-        endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? {
-            [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void);
-        } : never;
-    }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;
-};
-
-type PromiseWithKnownReason<T, R> = Omit<Promise<T>, 'then' | 'catch'> & {
-    /**
-     * Attaches callbacks for the resolution and/or rejection of the Promise.
-     * @param onfulfilled The callback to execute when the Promise is resolved.
-     * @param onrejected The callback to execute when the Promise is rejected.
-     * @returns A Promise for the completion of which ever callback is executed.
-     */
-    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: R) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
-    /**
-     * Attaches a callback for only the rejection of the Promise.
-     * @param onrejected The callback to execute when the Promise is rejected.
-     * @returns A Promise for the completion of the callback.
-     */
-    catch<TResult = never>(onrejected?: ((reason: R) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
-};
-
-type ReferenceCacheCollection = never;
-/**
- * @example
- * ```ts
- * // codeblock-meta title="keepUnusedDataFor example"
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => 'posts',
- *       // highlight-start
- *       keepUnusedDataFor: 5
- *       // highlight-end
- *     })
- *   })
- * })
- * ```
- */
-type CacheCollectionQueryExtraOptions = {
-    /**
-     * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_
-     *
-     * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-     */
-    keepUnusedDataFor?: number;
-};
-
-export declare const _NEVER: unique symbol;
-type NEVER = typeof _NEVER;
-/**
- * Creates a "fake" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.
- * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.
- */
-declare function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}>;
-
-declare class NamedSchemaError extends SchemaError {
-    readonly value: any;
-    readonly schemaName: `${SchemaType}Schema`;
-    readonly _bqMeta: any;
-    constructor(issues: readonly StandardSchemaV1.Issue[], value: any, schemaName: `${SchemaType}Schema`, _bqMeta: any);
-}
-
-declare const rawResultType: unique symbol;
-declare const resultType: unique symbol;
-declare const baseQuery: unique symbol;
-interface SchemaFailureInfo {
-    endpoint: string;
-    arg: any;
-    type: 'query' | 'mutation';
-    queryCacheKey?: string;
-}
-type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;
-type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;
-type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {
-    /**
-     * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="query example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Post'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       // highlight-start
-     *       query: () => 'posts',
-     *       // highlight-end
-     *     }),
-     *     addPost: build.mutation<Post, Partial<Post>>({
-     *      // highlight-start
-     *      query: (body) => ({
-     *        url: `posts`,
-     *        method: 'POST',
-     *        body,
-     *      }),
-     *      // highlight-end
-     *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],
-     *    }),
-     *   })
-     * })
-     * ```
-     */
-    query(arg: QueryArg): BaseQueryArg<BaseQuery>;
-    queryFn?: never;
-    /**
-     * A function to manipulate the data returned by a query or mutation.
-     */
-    transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;
-    /**
-     * A function to manipulate the data returned by a failed query or mutation.
-     */
-    transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;
-    /**
-     * A schema for the result *before* it's passed to `transformResponse`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const postSchema = v.object({ id: v.number(), name: v.string() })
-     * type Post = v.InferOutput<typeof postSchema>
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPostName: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       rawResponseSchema: postSchema,
-     *       transformResponse: (post) => post.name,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    rawResponseSchema?: StandardSchemaV1<RawResultType>;
-    /**
-     * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import {customBaseQuery, baseQueryErrorSchema} from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       rawErrorResponseSchema: baseQueryErrorSchema,
-     *       transformErrorResponse: (error) => error.data,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;
-};
-type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {
-    /**
-     * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Basic queryFn example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *     }),
-     *     flipCoin: build.query<'heads' | 'tails', void>({
-     *       // highlight-start
-     *       queryFn(arg, queryApi, extraOptions, baseQuery) {
-     *         const randomVal = Math.random()
-     *         if (randomVal < 0.45) {
-     *           return { data: 'heads' }
-     *         }
-     *         if (randomVal < 0.9) {
-     *           return { data: 'tails' }
-     *         }
-     *         return { error: { status: 500, statusText: 'Internal Server Error', data: "Coin landed on its edge!" } }
-     *       }
-     *       // highlight-end
-     *     })
-     *   })
-     * })
-     * ```
-     */
-    queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;
-    query?: never;
-    transformResponse?: never;
-    transformErrorResponse?: never;
-    rawResponseSchema?: never;
-    rawErrorResponseSchema?: never;
-};
-type BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {
-    QueryArg: QueryArg;
-    BaseQuery: BaseQuery;
-    ResultType: ResultType;
-    RawResultType: RawResultType;
-};
-type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';
-interface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {
-    /**
-     * A schema for the arguments to be passed to the `query` or `queryFn`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       argSchema: v.object({ id: v.number() }),
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    argSchema?: StandardSchemaV1<QueryArg>;
-    /**
-     * A schema for the result (including `transformResponse` if provided).
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const postSchema = v.object({ id: v.number(), name: v.string() })
-     * type Post = v.InferOutput<typeof postSchema>
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: postSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    responseSchema?: StandardSchemaV1<ResultType>;
-    /**
-     * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import { customBaseQuery, baseQueryErrorSchema } from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       errorResponseSchema: baseQueryErrorSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;
-    /**
-     * A schema for the `meta` property returned by the `query` or `queryFn`.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     * import { customBaseQuery, baseQueryMetaSchema } from "./customBaseQuery"
-     *
-     * const api = createApi({
-     *   baseQuery: customBaseQuery,
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       metaSchema: baseQueryMetaSchema,
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;
-    /**
-     * Defaults to `true`.
-     *
-     * Most apps should leave this setting on. The only time it can be a performance issue
-     * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and
-     * you're unable to paginate it.
-     *
-     * For details of how this works, please see the below. When it is set to `false`,
-     * every request will cause subscribed components to rerender, even when the data has not changed.
-     *
-     * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing
-     */
-    structuralSharing?: boolean;
-    /**
-     * A function that is called when a schema validation fails.
-     *
-     * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-     *
-     * `NamedSchemaError` has the following properties:
-     * - `issues`: an array of issues that caused the validation to fail
-     * - `value`: the value that was passed to the schema
-     * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       onSchemaFailure: (error, info) => {
-     *         console.error(error, info)
-     *       },
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    onSchemaFailure?: SchemaFailureHandler;
-    /**
-     * Convert a schema validation failure into an error shape matching base query errors.
-     *
-     * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *       catchSchemaFailure: (error, info) => ({
-     *         status: "CUSTOM_ERROR",
-     *         error: error.schemaName + " failed validation",
-     *         data: error.issues,
-     *       }),
-     *     }),
-     *   }),
-     * })
-     * ```
-     */
-    catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;
-    /**
-     * Defaults to `false`.
-     *
-     * If set to `true`, will skip schema validation for this endpoint.
-     * Overrides the global setting.
-     *
-     * Can be overridden for specific schemas by passing an array of schema types to skip.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta no-transpile
-     * import { createApi } from '@reduxjs/toolkit/query/react'
-     * import * as v from "valibot"
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   endpoints: (build) => ({
-     *     getPost: build.query<Post, { id: number }>({
-     *       query: ({ id }) => `/post/${id}`,
-     *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-     *       skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    skipSchemaValidation?: boolean | SchemaType[];
-}
-type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {
-    [rawResultType]?: RawResultType;
-    [resultType]?: ResultType;
-    [baseQuery]?: BaseQuery;
-} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {
-    extraOptions: BaseQueryExtraOptions<BaseQuery>;
-}, {
-    extraOptions?: BaseQueryExtraOptions<BaseQuery>;
-}>;
-declare enum DefinitionType {
-    query = "query",
-    mutation = "mutation",
-    infinitequery = "infinitequery"
-}
-type TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;
-type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;
-type FullTagDescription<TagType> = {
-    type: TagType;
-    id?: number | string;
-};
-type TagDescription<TagType> = TagType | FullTagDescription<TagType>;
-/**
- * @public
- */
-type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;
-type QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-     * ```
-     */
-    QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-/**
- * @public
- */
-interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {
-    type: DefinitionType.query;
-    /**
-     * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.
-     * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.
-     * 1.  `['Post']` - equivalent to `2`
-     * 2.  `[{ type: 'Post' }]` - equivalent to `1`
-     * 3.  `[{ type: 'Post', id: 1 }]`
-     * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`
-     * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`
-     * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="providesTags example"
-     *
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Posts'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *       // highlight-start
-     *       providesTags: (result) =>
-     *         result
-     *           ? [
-     *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-     *               { type: 'Posts', id: 'LIST' },
-     *             ]
-     *           : [{ type: 'Posts', id: 'LIST' }],
-     *       // highlight-end
-     *     })
-     *   })
-     * })
-     * ```
-     */
-    providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A query should not invalidate tags in the cache.
-     */
-    invalidatesTags?: never;
-    /**
-     * Can be provided to return a custom cache key value based on the query arguments.
-     *
-     * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-     *
-     * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="serializeQueryArgs : exclude value"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * interface MyApiClient {
-     *   fetchPost: (id: string) => Promise<Post>
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    // Example: an endpoint with an API client passed in as an argument,
-     *    // but only the item ID should be used as the cache key
-     *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-     *      queryFn: async ({ id, client }) => {
-     *        const post = await client.fetchPost(id)
-     *        return { data: post }
-     *      },
-     *      // highlight-start
-     *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-     *        const { id } = queryArgs
-     *        // This can return a string, an object, a number, or a boolean.
-     *        // If it returns an object, number or boolean, that value
-     *        // will be serialized automatically via `defaultSerializeQueryArgs`
-     *        return { id } // omit `client` from the cache key
-     *
-     *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-     *        // return defaultSerializeQueryArgs({
-     *        //   endpointName,
-     *        //   queryArgs: { id },
-     *        //   endpointDefinition
-     *        // })
-     *        // Or  create and return a string yourself:
-     *        // return `getPost(${id})`
-     *      },
-     *      // highlight-end
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;
-    /**
-     * Can be provided to merge an incoming response value into the current cache data.
-     * If supplied, no automatic structural sharing will be applied - it's up to
-     * you to update the cache appropriately.
-     *
-     * Since RTKQ normally replaces cache entries with the new response, you will usually
-     * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep
-     * an existing cache entry so that it can be updated.
-     *
-     * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,
-     * or return a new value, but _not_ both at once.
-     *
-     * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,
-     * the cache entry will just save the response data directly.
-     *
-     * Useful if you don't want a new request to completely override the current cache value,
-     * maybe because you have manually updated it from another source and don't want those
-     * updates to get lost.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="merge: pagination"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    listItems: build.query<string[], number>({
-     *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-     *     // Only have one cache entry because the arg always maps to one string
-     *     serializeQueryArgs: ({ endpointName }) => {
-     *       return endpointName
-     *      },
-     *      // Always merge incoming data to the cache entry
-     *      merge: (currentCache, newItems) => {
-     *        currentCache.push(...newItems)
-     *      },
-     *      // Refetch when the page arg changes
-     *      forceRefetch({ currentArg, previousArg }) {
-     *        return currentArg !== previousArg
-     *      },
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {
-        arg: QueryArg;
-        baseQueryMeta: BaseQueryMeta<BaseQuery>;
-        requestId: string;
-        fulfilledTimeStamp: number;
-    }): ResultType | void;
-    /**
-     * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.
-     * This is primarily useful for "infinite scroll" / pagination use cases where
-     * RTKQ is keeping a single cache entry that is added to over time, in combination
-     * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback
-     * set to add incoming data to the cache entry each time.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="forceRefresh: pagination"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    listItems: build.query<string[], number>({
-     *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-     *     // Only have one cache entry because the arg always maps to one string
-     *     serializeQueryArgs: ({ endpointName }) => {
-     *       return endpointName
-     *      },
-     *      // Always merge incoming data to the cache entry
-     *      merge: (currentCache, newItems) => {
-     *        currentCache.push(...newItems)
-     *      },
-     *      // Refetch when the page arg changes
-     *      forceRefetch({ currentArg, previousArg }) {
-     *        return currentArg !== previousArg
-     *      },
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    forceRefetch?(params: {
-        currentArg: QueryArg | undefined;
-        previousArg: QueryArg | undefined;
-        state: RootState<any, any, string>;
-        endpointState?: QuerySubState<any>;
-    }): boolean;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;
-type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-     * ```
-     */
-    InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {
-    type: DefinitionType.infinitequery;
-    providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A query should not invalidate tags in the cache.
-     */
-    invalidatesTags?: never;
-    /**
-     * Required options to configure the infinite query behavior.
-     * `initialPageParam` and `getNextPageParam` are required, to
-     * ensure the infinite query can properly fetch the next page of data.
-     * `initialPageParam` may be specified when using the
-     * endpoint, to override the default value.
-     * `maxPages` and `getPreviousPageParam` are both optional.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="infiniteQueryOptions example"
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     *
-     * type Pokemon = {
-     *   id: string
-     *   name: string
-     * }
-     *
-     * const pokemonApi = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-     *   endpoints: (build) => ({
-     *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({
-     *       infiniteQueryOptions: {
-     *         initialPageParam: 0,
-     *         maxPages: 3,
-     *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>
-     *           lastPageParam + 1,
-     *         getPreviousPageParam: (
-     *           firstPage,
-     *           allPages,
-     *           firstPageParam,
-     *           allPageParams,
-     *         ) => {
-     *           return firstPageParam > 0 ? firstPageParam - 1 : undefined
-     *         },
-     *       },
-     *       query({pageParam}) {
-     *         return `https://example.com/listItems?page=${pageParam}`
-     *       },
-     *     }),
-     *   }),
-     * })
-     
-     * ```
-     */
-    infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;
-    /**
-     * Can be provided to return a custom cache key value based on the query arguments.
-     *
-     * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-     *
-     * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-     *
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="serializeQueryArgs : exclude value"
-     *
-     * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     *
-     * interface MyApiClient {
-     *   fetchPost: (id: string) => Promise<Post>
-     * }
-     *
-     * createApi({
-     *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *  endpoints: (build) => ({
-     *    // Example: an endpoint with an API client passed in as an argument,
-     *    // but only the item ID should be used as the cache key
-     *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-     *      queryFn: async ({ id, client }) => {
-     *        const post = await client.fetchPost(id)
-     *        return { data: post }
-     *      },
-     *      // highlight-start
-     *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-     *        const { id } = queryArgs
-     *        // This can return a string, an object, a number, or a boolean.
-     *        // If it returns an object, number or boolean, that value
-     *        // will be serialized automatically via `defaultSerializeQueryArgs`
-     *        return { id } // omit `client` from the cache key
-     *
-     *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-     *        // return defaultSerializeQueryArgs({
-     *        //   endpointName,
-     *        //   queryArgs: { id },
-     *        //   endpointDefinition
-     *        // })
-     *        // Or  create and return a string yourself:
-     *        // return `getPost(${id})`
-     *      },
-     *      // highlight-end
-     *    }),
-     *  }),
-     *})
-     * ```
-     */
-    serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;
-type MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-    /**
-     * The endpoint definition type. To be used with some internal generic types.
-     * @example
-     * ```ts
-     * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...
-     * ```
-     */
-    MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;
-    TagTypes: TagTypes;
-    ReducerPath: ReducerPath;
-};
-/**
- * @public
- */
-interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {
-    type: DefinitionType.mutation;
-    /**
-     * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.
-     * Expects the same shapes as `providesTags`.
-     *
-     * @example
-     *
-     * ```ts
-     * // codeblock-meta title="invalidatesTags example"
-     * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-     * interface Post {
-     *   id: number
-     *   name: string
-     * }
-     * type PostsResponse = Post[]
-     *
-     * const api = createApi({
-     *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-     *   tagTypes: ['Posts'],
-     *   endpoints: (build) => ({
-     *     getPosts: build.query<PostsResponse, void>({
-     *       query: () => 'posts',
-     *       providesTags: (result) =>
-     *         result
-     *           ? [
-     *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-     *               { type: 'Posts', id: 'LIST' },
-     *             ]
-     *           : [{ type: 'Posts', id: 'LIST' }],
-     *     }),
-     *     addPost: build.mutation<Post, Partial<Post>>({
-     *       query(body) {
-     *         return {
-     *           url: `posts`,
-     *           method: 'POST',
-     *           body,
-     *         }
-     *       },
-     *       // highlight-start
-     *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],
-     *       // highlight-end
-     *     }),
-     *   })
-     * })
-     * ```
-     */
-    invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;
-    /**
-     * Not to be used. A mutation should not provide tags to the cache.
-     */
-    providesTags?: never;
-    /**
-     * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-     */
-    Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-}
-type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;
-type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;
-type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {
-    /**
-     * An endpoint definition that retrieves data, and may provide tags to the cache.
-     *
-     * @example
-     * ```js
-     * // codeblock-meta title="Example of all query endpoint options"
-     * const api = createApi({
-     *  baseQuery,
-     *  endpoints: (build) => ({
-     *    getPost: build.query({
-     *      query: (id) => ({ url: `post/${id}` }),
-     *      // Pick out data and prevent nested properties in a hook or selector
-     *      transformResponse: (response) => response.data,
-     *      // Pick out error and prevent nested properties in a hook or selector
-     *      transformErrorResponse: (response) => response.error,
-     *      // `result` is the server response
-     *      providesTags: (result, error, id) => [{ type: 'Post', id }],
-     *      // trigger side effects or optimistic updates
-     *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},
-     *      // handle subscriptions etc
-     *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},
-     *    }),
-     *  }),
-     *});
-     *```
-     */
-    query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-    /**
-     * An endpoint definition that alters data on the server or will possibly invalidate the cache.
-     *
-     * @example
-     * ```js
-     * // codeblock-meta title="Example of all mutation endpoint options"
-     * const api = createApi({
-     *   baseQuery,
-     *   endpoints: (build) => ({
-     *     updatePost: build.mutation({
-     *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),
-     *       // Pick out data and prevent nested properties in a hook or selector
-     *       transformResponse: (response) => response.data,
-     *       // Pick out error and prevent nested properties in a hook or selector
-     *       transformErrorResponse: (response) => response.error,
-     *       // `result` is the server response
-     *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],
-     *      // trigger side effects or optimistic updates
-     *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},
-     *      // handle subscriptions etc
-     *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},
-     *     }),
-     *   }),
-     * });
-     * ```
-     */
-    mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-    infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;
-};
-type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;
-type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;
-type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;
-type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;
-type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;
-type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;
-type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;
-type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;
-type InfiniteQueryCombinedArg<QueryArg, PageParam> = {
-    queryArg: QueryArg;
-    pageParam: PageParam;
-};
-type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;
-type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;
-type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;
-type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;
-type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never;
-};
-
-type QueryCacheKey = string & {
-    _type: 'queryCacheKey';
-};
-type QuerySubstateIdentifier = {
-    queryCacheKey: QueryCacheKey;
-};
-type MutationSubstateIdentifier = {
-    requestId: string;
-    fixedCacheKey?: string;
-} | {
-    requestId?: string;
-    fixedCacheKey: string;
-};
-type RefetchConfigOptions = {
-    refetchOnMountOrArgChange: boolean | number;
-    refetchOnReconnect: boolean;
-    refetchOnFocus: boolean;
-};
-type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {
-    /**
-     * The initial page parameter to use for the first page fetch.
-     */
-    initialPageParam: PageParam;
-    /**
-     * This function is required to automatically get the next cursor for infinite queries.
-     * The result will also be used to determine the value of `hasNextPage`.
-     */
-    getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;
-    /**
-     * This function can be set to automatically get the previous cursor for infinite queries.
-     * The result will also be used to determine the value of `hasPreviousPage`.
-     */
-    getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;
-    /**
-     * If specified, only keep this many pages in cache at once.
-     * If additional pages are fetched, older pages in the other
-     * direction will be dropped from the cache.
-     */
-    maxPages?: number;
-    /**
-     * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-     * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-     * RTK Query will try to sequentially refetch all pages currently in the cache.
-     * When `false` only the first page will be refetched.
-     */
-    refetchCachedPages?: boolean;
-};
-type InfiniteData<DataType, PageParam> = {
-    pages: Array<DataType>;
-    pageParams: Array<PageParam>;
-};
-/**
- * Strings describing the query state at any given time.
- */
-declare enum QueryStatus {
-    uninitialized = "uninitialized",
-    pending = "pending",
-    fulfilled = "fulfilled",
-    rejected = "rejected"
-}
-type RequestStatusFlags = {
-    status: QueryStatus.uninitialized;
-    isUninitialized: true;
-    isLoading: false;
-    isSuccess: false;
-    isError: false;
-} | {
-    status: QueryStatus.pending;
-    isUninitialized: false;
-    isLoading: true;
-    isSuccess: false;
-    isError: false;
-} | {
-    status: QueryStatus.fulfilled;
-    isUninitialized: false;
-    isLoading: false;
-    isSuccess: true;
-    isError: false;
-} | {
-    status: QueryStatus.rejected;
-    isUninitialized: false;
-    isLoading: false;
-    isSuccess: false;
-    isError: true;
-};
-/**
- * @public
- */
-type SubscriptionOptions = {
-    /**
-     * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).
-     */
-    pollingInterval?: number;
-    /**
-     *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.
-     *
-     *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.
-     *
-     *  Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    skipPollingIfUnfocused?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnReconnect?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     *
-     * Note: requires [`setupListeners`](./setupListeners) to have been called.
-     */
-    refetchOnFocus?: boolean;
-};
-type Subscribers = {
-    [requestId: string]: SubscriptionOptions;
-};
-type QueryKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never;
-}[keyof Definitions];
-type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never;
-}[keyof Definitions];
-type MutationKeys<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never;
-}[keyof Definitions];
-type BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {
-    /**
-     * The argument originally passed into the hook or `initiate` action call
-     */
-    originalArgs: QueryArgFromAnyQuery<D>;
-    /**
-     * A unique ID associated with the request
-     */
-    requestId: string;
-    /**
-     * The received data from the query
-     */
-    data?: DataType;
-    /**
-     * The received error if applicable
-     */
-    error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);
-    /**
-     * The name of the endpoint associated with the query
-     */
-    endpointName: string;
-    /**
-     * Time that the latest query started
-     */
-    startedTimeStamp: number;
-    /**
-     * Time that the latest query was fulfilled
-     */
-    fulfilledTimeStamp?: number;
-};
-type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({
-    status: QueryStatus.fulfilled;
-} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {
-    error: undefined;
-}) | ({
-    status: QueryStatus.pending;
-} & BaseQuerySubState<D, DataType>) | ({
-    status: QueryStatus.rejected;
-} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {
-    status: QueryStatus.uninitialized;
-    originalArgs?: undefined;
-    data?: undefined;
-    error?: undefined;
-    requestId?: undefined;
-    endpointName?: string;
-    startedTimeStamp?: undefined;
-    fulfilledTimeStamp?: undefined;
-}>;
-type InfiniteQueryDirection = 'forward' | 'backward';
-type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {
-    direction?: InfiniteQueryDirection;
-} : never;
-type BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {
-    requestId: string;
-    data?: ResultTypeFrom<D>;
-    error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);
-    endpointName: string;
-    startedTimeStamp: number;
-    fulfilledTimeStamp?: number;
-};
-type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({
-    status: QueryStatus.fulfilled;
-} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {
-    error: undefined;
-}) | (({
-    status: QueryStatus.pending;
-} & BaseMutationSubState<D>) & {
-    data?: undefined;
-}) | ({
-    status: QueryStatus.rejected;
-} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {
-    requestId?: undefined;
-    status: QueryStatus.uninitialized;
-    data?: undefined;
-    error?: undefined;
-    endpointName?: string;
-    startedTimeStamp?: undefined;
-    fulfilledTimeStamp?: undefined;
-};
-type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {
-    queries: QueryState<D>;
-    mutations: MutationState<D>;
-    provided: InvalidationState<E>;
-    subscriptions: SubscriptionState;
-    config: ConfigState<ReducerPath>;
-};
-type InvalidationState<TagTypes extends string> = {
-    tags: {
-        [_ in TagTypes]: {
-            [id: string]: Array<QueryCacheKey>;
-            [id: number]: Array<QueryCacheKey>;
-        };
-    };
-    keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;
-};
-type QueryState<D extends EndpointDefinitions> = {
-    [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;
-};
-type SubscriptionState = {
-    [queryCacheKey: string]: Subscribers | undefined;
-};
-type ConfigState<ReducerPath> = RefetchConfigOptions & {
-    reducerPath: ReducerPath;
-    online: boolean;
-    focused: boolean;
-    middlewareRegistered: boolean | 'conflict';
-} & ModifiableConfigState;
-type ModifiableConfigState = {
-    keepUnusedDataFor: number;
-    invalidationBehavior: 'delayed' | 'immediately';
-} & RefetchConfigOptions;
-type MutationState<D extends EndpointDefinitions> = {
-    [requestId: string]: MutationSubState<D[string]> | undefined;
-};
-type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = {
-    [P in ReducerPath]: CombinedState<Definitions, TagTypes, P>;
-};
-
-type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);
-type CustomRequestInit = Override<RequestInit, {
-    headers?: Headers | string[][] | Record<string, string | undefined> | undefined;
-}>;
-interface FetchArgs extends CustomRequestInit {
-    url: string;
-    params?: Record<string, any>;
-    body?: any;
-    responseHandler?: ResponseHandler;
-    validateStatus?: (response: Response, body: any) => boolean;
-    /**
-     * A number in milliseconds that represents that maximum time a request can take before timing out.
-     */
-    timeout?: number;
-}
-type FetchBaseQueryError = {
-    /**
-     * * `number`:
-     *   HTTP status code
-     */
-    status: number;
-    data: unknown;
-} | {
-    /**
-     * * `"FETCH_ERROR"`:
-     *   An error that occurred during execution of `fetch` or the `fetchFn` callback option
-     **/
-    status: 'FETCH_ERROR';
-    data?: undefined;
-    error: string;
-} | {
-    /**
-     * * `"PARSING_ERROR"`:
-     *   An error happened during parsing.
-     *   Most likely a non-JSON-response was returned with the default `responseHandler` "JSON",
-     *   or an error occurred while executing a custom `responseHandler`.
-     **/
-    status: 'PARSING_ERROR';
-    originalStatus: number;
-    data: string;
-    error: string;
-} | {
-    /**
-     * * `"TIMEOUT_ERROR"`:
-     *   Request timed out
-     **/
-    status: 'TIMEOUT_ERROR';
-    data?: undefined;
-    error: string;
-} | {
-    /**
-     * * `"CUSTOM_ERROR"`:
-     *   A custom error type that you can return from your `queryFn` where another error might not make sense.
-     **/
-    status: 'CUSTOM_ERROR';
-    data?: unknown;
-    error: string;
-};
-type FetchBaseQueryArgs = {
-    baseUrl?: string;
-    prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {
-        arg: string | FetchArgs;
-        extraOptions: unknown;
-    }) => MaybePromise<Headers | void>;
-    fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;
-    paramsSerializer?: (params: Record<string, any>) => string;
-    /**
-     * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass
-     * in a predicate function for your given api to get the same automatic stringifying behavior
-     * @example
-     * ```ts
-     * const isJsonContentType = (headers: Headers) => ["application/vnd.api+json", "application/json", "application/vnd.hal+json"].includes(headers.get("content-type")?.trim());
-     * ```
-     */
-    isJsonContentType?: (headers: Headers) => boolean;
-    /**
-     * Defaults to `application/json`;
-     */
-    jsonContentType?: string;
-    /**
-     * Custom replacer function used when calling `JSON.stringify()`;
-     */
-    jsonReplacer?: (this: any, key: string, value: any) => any;
-} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;
-type FetchBaseQueryMeta = {
-    request: Request;
-    response?: Response;
-};
-/**
- * This is a very small wrapper around fetch that aims to simplify requests.
- *
- * @example
- * ```ts
- * const baseQuery = fetchBaseQuery({
- *   baseUrl: 'https://api.your-really-great-app.com/v1/',
- *   prepareHeaders: (headers, { getState }) => {
- *     const token = (getState() as RootState).auth.token;
- *     // If we have a token set in state, let's assume that we should be passing it.
- *     if (token) {
- *       headers.set('authorization', `Bearer ${token}`);
- *     }
- *     return headers;
- *   },
- * })
- * ```
- *
- * @param {string} baseUrl
- * The base URL for an API service.
- * Typically in the format of https://example.com/
- *
- * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders
- * An optional function that can be used to inject headers on requests.
- * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.
- * Useful for setting authentication or headers that need to be set conditionally.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers
- *
- * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn
- * Accepts a custom `fetch` function if you do not want to use the default on the window.
- * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`
- *
- * @param {(params: Record<string, unknown>) => string} paramsSerializer
- * An optional function that can be used to stringify querystring parameters.
- *
- * @param {(headers: Headers) => boolean} isJsonContentType
- * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`
- *
- * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.
- *
- * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.
- *
- * @param {number} timeout
- * A number in milliseconds that represents the maximum time a request can take before timing out.
- */
-declare function fetchBaseQuery({ baseUrl, prepareHeaders, fetchFn, paramsSerializer, isJsonContentType, jsonContentType, jsonReplacer, timeout: defaultTimeout, responseHandler: globalResponseHandler, validateStatus: globalValidateStatus, ...baseFetchOptions }?: FetchBaseQueryArgs): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>;
-
-type RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {
-    attempt: number;
-    baseQueryApi: BaseQueryApi;
-    extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;
-}) => boolean;
-type RetryOptions = {
-    /**
-     * Function used to determine delay between retries
-     */
-    backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;
-} & ({
-    /**
-     * How many times the query will be retried (default: 5)
-     */
-    maxRetries?: number;
-    retryCondition?: undefined;
-} | {
-    /**
-     * Callback to determine if a retry should be attempted.
-     * Return `true` for another retry and `false` to quit trying prematurely.
-     */
-    retryCondition?: RetryConditionFunction;
-    maxRetries?: undefined;
-});
-declare function fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never;
-/**
- * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.
- *
- * @example
- *
- * ```ts
- * // codeblock-meta title="Retry every request 5 times by default"
- * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.
- * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });
- * export const api = createApi({
- *   baseQuery: staggeredBaseQuery,
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => ({ url: 'posts' }),
- *     }),
- *     getPost: build.query<PostsResponse, string>({
- *       query: (id) => ({ url: `post/${id}` }),
- *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint
- *     }),
- *   }),
- * });
- *
- * export const { useGetPostsQuery, useGetPostQuery } = api;
- * ```
- */
-declare const retry: BaseQueryEnhancer<unknown, RetryOptions, void | RetryOptions> & {
-    fail: typeof fail;
-};
-
-declare function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;
-
-export { type Api, type ApiContext, type ApiEndpointInfiniteQuery, type ApiEndpointMutation, type ApiEndpointQuery, type ApiModules, type BaseEndpointDefinition, type BaseQueryApi, type BaseQueryArg, type BaseQueryEnhancer, type BaseQueryError, type BaseQueryExtraOptions, type BaseQueryFn, type BaseQueryMeta, type BaseQueryResult, type CombinedState, type CoreModule, type CreateApi, type CreateApiOptions, DefinitionType, type DefinitionsFromApi, type EndpointBuilder, type EndpointDefinition, type EndpointDefinitions, type FetchArgs, type FetchBaseQueryArgs, type FetchBaseQueryError, type FetchBaseQueryMeta, type InfiniteData, type InfiniteQueryActionCreatorResult, type InfiniteQueryArgFrom, type InfiniteQueryConfigOptions, type InfiniteQueryDefinition, type InfiniteQueryExtraOptions, type InfiniteQueryResultSelectorResult, type InfiniteQuerySubState, type Module, type MutationActionCreatorResult, type MutationDefinition, type MutationExtraOptions, type MutationResultSelectorResult, NamedSchemaError, type OverrideResultType, type PageParamFrom, type PrefetchOptions, type QueryActionCreatorResult, type QueryArgFrom, type QueryCacheKey, type QueryDefinition, type QueryExtraOptions, type QueryKeys, type QueryResultSelectorResult, type QueryReturnValue, QueryStatus, type QuerySubState, type ResultDescription, type ResultTypeFrom, type RetryOptions, type RootState, type SchemaFailureConverter, type SchemaFailureHandler, type SchemaFailureInfo, type SchemaType, type SerializeQueryArgs, type SkipToken, type StartQueryActionCreatorOptions, type SubscriptionOptions, type Id as TSHelpersId, type NoInfer as TSHelpersNoInfer, type Override as TSHelpersOverride, type TagDescription, type TagTypesFromApi, type TypedMutationOnQueryStarted, type TypedQueryOnQueryStarted, type UpdateDefinitions, buildCreateApi, copyWithStructuralSharing, coreModule, createApi, defaultSerializeQueryArgs, fakeBaseQuery, fetchBaseQuery, retry, setupListeners };
Index: de_modules/@reduxjs/toolkit/dist/query/react/cjs/index.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-'use strict'
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./rtk-query-react.production.min.cjs')
-} else {
-  module.exports = require('./rtk-query-react.development.cjs')
-}
Index: de_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.development.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.development.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,748 +1,0 @@
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/query/react/index.ts
-var react_exports = {};
-__export(react_exports, {
-  ApiProvider: () => ApiProvider,
-  UNINITIALIZED_VALUE: () => UNINITIALIZED_VALUE,
-  createApi: () => createApi,
-  reactHooksModule: () => reactHooksModule,
-  reactHooksModuleName: () => reactHooksModuleName
-});
-module.exports = __toCommonJS(react_exports);
-
-// src/query/react/rtkqImports.ts
-var import_query = require("@reduxjs/toolkit/query");
-
-// src/query/react/module.ts
-var import_toolkit2 = require("@reduxjs/toolkit");
-var import_react_redux2 = require("react-redux");
-var import_reselect = require("reselect");
-
-// src/query/utils/capitalize.ts
-function capitalize(str) {
-  return str.replace(str[0], str[0].toUpperCase());
-}
-
-// src/query/utils/countObjectKeys.ts
-function countObjectKeys(obj) {
-  let count = 0;
-  for (const _key in obj) {
-    count++;
-  }
-  return count;
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-
-// src/query/tsHelpers.ts
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/react/buildHooks.ts
-var import_toolkit = require("@reduxjs/toolkit");
-
-// src/query/react/reactImports.ts
-var import_react = require("react");
-
-// src/query/react/reactReduxImports.ts
-var import_react_redux = require("react-redux");
-
-// src/query/react/constants.ts
-var UNINITIALIZED_VALUE = Symbol();
-
-// src/query/react/useSerializedStableValue.ts
-function useStableQueryArgs(queryArgs) {
-  const cache = (0, import_react.useRef)(queryArgs);
-  const copy = (0, import_react.useMemo)(() => (0, import_query.copyWithStructuralSharing)(cache.current, queryArgs), [queryArgs]);
-  (0, import_react.useEffect)(() => {
-    if (cache.current !== copy) {
-      cache.current = copy;
-    }
-  }, [copy]);
-  return copy;
-}
-
-// src/query/react/useShallowStableValue.ts
-function useShallowStableValue(value) {
-  const cache = (0, import_react.useRef)(value);
-  (0, import_react.useEffect)(() => {
-    if (!(0, import_react_redux.shallowEqual)(cache.current, value)) {
-      cache.current = value;
-    }
-  }, [value]);
-  return (0, import_react_redux.shallowEqual)(cache.current, value) ? cache.current : value;
-}
-
-// src/query/react/buildHooks.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? import_react.useLayoutEffect : import_react.useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-var noPendingQueryStateSelector = (selected) => {
-  if (selected.isUninitialized) {
-    return {
-      ...selected,
-      isUninitialized: false,
-      isFetching: true,
-      isLoading: selected.data !== void 0 ? false : true,
-      // This is the one place where we still have to use `QueryStatus` as an enum,
-      // since it's the only reference in the React package and not in the core.
-      status: import_query.QueryStatus.pending
-    };
-  }
-  return selected;
-};
-function pick(obj, ...keys) {
-  const ret = {};
-  keys.forEach((key) => {
-    ret[key] = obj[key];
-  });
-  return ret;
-}
-var COMMON_HOOK_DEBUG_FIELDS = ["data", "status", "isLoading", "isSuccess", "isError", "error"];
-function buildHooks({
-  api,
-  moduleOptions: {
-    batch,
-    hooks: {
-      useDispatch,
-      useSelector,
-      useStore
-    },
-    unstable__sideEffectsInRender,
-    createSelector
-  },
-  serializeQueryArgs,
-  context
-}) {
-  const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : import_react.useEffect;
-  const unsubscribePromiseRef = (ref) => ref.current?.unsubscribe?.();
-  const endpointDefinitions = context.endpointDefinitions;
-  return {
-    buildQueryHooks,
-    buildInfiniteQueryHooks,
-    buildMutationHook,
-    usePrefetch
-  };
-  function queryStatePreSelector(currentState, lastResult, queryArgs) {
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== import_query.skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    };
-  }
-  function infiniteQueryStatePreSelector(currentState, lastResult, queryArgs) {
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== import_query.skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || isFetching && hasData;
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    };
-  }
-  function usePrefetch(endpointName, defaultOptions) {
-    const dispatch = useDispatch();
-    const stableDefaultOptions = useShallowStableValue(defaultOptions);
-    return (0, import_react.useCallback)((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {
-      ...stableDefaultOptions,
-      ...options
-    })), [endpointName, dispatch, stableDefaultOptions]);
-  }
-  function useQuerySubscriptionCommonImpl(endpointName, arg, {
-    refetchOnReconnect,
-    refetchOnFocus,
-    refetchOnMountOrArgChange,
-    skip = false,
-    pollingInterval = 0,
-    skipPollingIfUnfocused = false,
-    ...rest
-  } = {}) {
-    const {
-      initiate
-    } = api.endpoints[endpointName];
-    const dispatch = useDispatch();
-    const subscriptionSelectorsRef = (0, import_react.useRef)(void 0);
-    if (!subscriptionSelectorsRef.current) {
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      if (true) {
-        if (typeof returnedValue !== "object" || typeof returnedValue?.type === "string") {
-          throw new Error(false ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-    You must add the middleware for RTK-Query to function correctly!`);
-        }
-      }
-      subscriptionSelectorsRef.current = returnedValue;
-    }
-    const stableArg = useStableQueryArgs(skip ? import_query.skipToken : arg);
-    const stableSubscriptionOptions = useShallowStableValue({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval,
-      skipPollingIfUnfocused
-    });
-    const initialPageParam = rest.initialPageParam;
-    const stableInitialPageParam = useShallowStableValue(initialPageParam);
-    const refetchCachedPages = rest.refetchCachedPages;
-    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);
-    const promiseRef = (0, import_react.useRef)(void 0);
-    let {
-      queryCacheKey,
-      requestId
-    } = promiseRef.current || {};
-    let currentRenderHasSubscription = false;
-    if (queryCacheKey && requestId) {
-      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);
-    }
-    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== void 0;
-    usePossiblyImmediateEffect(() => {
-      if (subscriptionRemoved) {
-        promiseRef.current = void 0;
-      }
-    }, [subscriptionRemoved]);
-    usePossiblyImmediateEffect(() => {
-      const lastPromise = promiseRef.current;
-      if (typeof process !== "undefined" && false) {
-        console.log(subscriptionRemoved);
-      }
-      if (stableArg === import_query.skipToken) {
-        lastPromise?.unsubscribe();
-        promiseRef.current = void 0;
-        return;
-      }
-      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;
-      if (!lastPromise || lastPromise.arg !== stableArg) {
-        lastPromise?.unsubscribe();
-        const promise = dispatch(initiate(stableArg, {
-          subscriptionOptions: stableSubscriptionOptions,
-          forceRefetch: refetchOnMountOrArgChange,
-          ...isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {
-            initialPageParam: stableInitialPageParam,
-            refetchCachedPages: stableRefetchCachedPages
-          } : {}
-        }));
-        promiseRef.current = promise;
-      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);
-      }
-    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);
-    return [promiseRef, dispatch, initiate, stableSubscriptionOptions];
-  }
-  function buildUseQueryState(endpointName, preSelector) {
-    const useQueryState = (arg, {
-      skip = false,
-      selectFromResult
-    } = {}) => {
-      const {
-        select
-      } = api.endpoints[endpointName];
-      const stableArg = useStableQueryArgs(skip ? import_query.skipToken : arg);
-      const lastValue = (0, import_react.useRef)(void 0);
-      const selectDefaultResult = (0, import_react.useMemo)(() => (
-        // Normally ts-ignores are bad and should be avoided, but we're
-        // already casting this selector to be `Selector<any>` anyway,
-        // so the inconsistencies don't matter here
-        // @ts-ignore
-        createSelector([
-          // @ts-ignore
-          select(stableArg),
-          (_, lastResult) => lastResult,
-          (_) => stableArg
-        ], preSelector, {
-          memoizeOptions: {
-            resultEqualityCheck: import_react_redux.shallowEqual
-          }
-        })
-      ), [select, stableArg]);
-      const querySelector = (0, import_react.useMemo)(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {
-        devModeChecks: {
-          identityFunctionCheck: "never"
-        }
-      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);
-      const currentState = useSelector((state) => querySelector(state, lastValue.current), import_react_redux.shallowEqual);
-      const store = useStore();
-      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);
-      useIsomorphicLayoutEffect(() => {
-        lastValue.current = newLastValue;
-      }, [newLastValue]);
-      return currentState;
-    };
-    return useQueryState;
-  }
-  function usePromiseRefUnsubscribeOnUnmount(promiseRef) {
-    (0, import_react.useEffect)(() => {
-      return () => {
-        unsubscribePromiseRef(promiseRef);
-        promiseRef.current = void 0;
-      };
-    }, [promiseRef]);
-  }
-  function refetchOrErrorIfUnmounted(promiseRef) {
-    if (!promiseRef.current) throw new Error(false ? _formatProdErrorMessage2(38) : "Cannot refetch a query that has not been started yet.");
-    return promiseRef.current.refetch();
-  }
-  function buildQueryHooks(endpointName) {
-    const useQuerySubscription = (arg, options = {}) => {
-      const [promiseRef] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      return (0, import_react.useMemo)(() => ({
-        /**
-         * A method to manually refetch data for the query
-         */
-        refetch: () => refetchOrErrorIfUnmounted(promiseRef)
-      }), [promiseRef]);
-    };
-    const useLazyQuerySubscription = ({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false
-    } = {}) => {
-      const {
-        initiate
-      } = api.endpoints[endpointName];
-      const dispatch = useDispatch();
-      const [arg, setArg] = (0, import_react.useState)(UNINITIALIZED_VALUE);
-      const promiseRef = (0, import_react.useRef)(void 0);
-      const stableSubscriptionOptions = useShallowStableValue({
-        refetchOnReconnect,
-        refetchOnFocus,
-        pollingInterval,
-        skipPollingIfUnfocused
-      });
-      usePossiblyImmediateEffect(() => {
-        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;
-        if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);
-        }
-      }, [stableSubscriptionOptions]);
-      const subscriptionOptionsRef = (0, import_react.useRef)(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const trigger = (0, import_react.useCallback)(function(arg2, preferCacheValue = false) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            forceRefetch: !preferCacheValue
-          }));
-          setArg(arg2);
-        });
-        return promise;
-      }, [dispatch, initiate]);
-      const reset = (0, import_react.useCallback)(() => {
-        if (promiseRef.current?.queryCacheKey) {
-          dispatch(api.internalActions.removeQueryResult({
-            queryCacheKey: promiseRef.current?.queryCacheKey
-          }));
-        }
-      }, [dispatch]);
-      (0, import_react.useEffect)(() => {
-        return () => {
-          unsubscribePromiseRef(promiseRef);
-        };
-      }, []);
-      (0, import_react.useEffect)(() => {
-        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {
-          trigger(arg, true);
-        }
-      }, [arg, trigger]);
-      return (0, import_react.useMemo)(() => [trigger, arg, {
-        reset
-      }], [trigger, arg, reset]);
-    };
-    const useQueryState = buildUseQueryState(endpointName, queryStatePreSelector);
-    return {
-      useQueryState,
-      useQuerySubscription,
-      useLazyQuerySubscription,
-      useLazyQuery(options) {
-        const [trigger, arg, {
-          reset
-        }] = useLazyQuerySubscription(options);
-        const queryStateResults = useQueryState(arg, {
-          ...options,
-          skip: arg === UNINITIALIZED_VALUE
-        });
-        const info = (0, import_react.useMemo)(() => ({
-          lastArg: arg
-        }), [arg]);
-        return (0, import_react.useMemo)(() => [trigger, {
-          ...queryStateResults,
-          reset
-        }, info], [trigger, queryStateResults, reset, info]);
-      },
-      useQuery(arg, options) {
-        const querySubscriptionResults = useQuerySubscription(arg, options);
-        const queryStateResults = useQueryState(arg, {
-          selectFromResult: arg === import_query.skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,
-          ...options
-        });
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);
-        (0, import_react.useDebugValue)(debugValue);
-        return (0, import_react.useMemo)(() => ({
-          ...queryStateResults,
-          ...querySubscriptionResults
-        }), [queryStateResults, querySubscriptionResults]);
-      }
-    };
-  }
-  function buildInfiniteQueryHooks(endpointName) {
-    const useInfiniteQuerySubscription = (arg, options = {}) => {
-      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      const subscriptionOptionsRef = (0, import_react.useRef)(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const hookRefetchCachedPages = options.refetchCachedPages;
-      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);
-      const trigger = (0, import_react.useCallback)(function(arg2, direction) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            direction
-          }));
-        });
-        return promise;
-      }, [promiseRef, dispatch, initiate]);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      const stableArg = useStableQueryArgs(options.skip ? import_query.skipToken : arg);
-      const refetch = (0, import_react.useCallback)((options2) => {
-        if (!promiseRef.current) throw new Error(false ? _formatProdErrorMessage3(38) : "Cannot refetch a query that has not been started yet.");
-        const mergedOptions = {
-          refetchCachedPages: options2?.refetchCachedPages ?? stableHookRefetchCachedPages
-        };
-        return promiseRef.current.refetch(mergedOptions);
-      }, [promiseRef, stableHookRefetchCachedPages]);
-      return (0, import_react.useMemo)(() => {
-        const fetchNextPage = () => {
-          return trigger(stableArg, "forward");
-        };
-        const fetchPreviousPage = () => {
-          return trigger(stableArg, "backward");
-        };
-        return {
-          trigger,
-          /**
-           * A method to manually refetch data for the query
-           */
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        };
-      }, [refetch, trigger, stableArg]);
-    };
-    const useInfiniteQueryState = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);
-    return {
-      useInfiniteQueryState,
-      useInfiniteQuerySubscription,
-      useInfiniteQuery(arg, options) {
-        const {
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        } = useInfiniteQuerySubscription(arg, options);
-        const queryStateResults = useInfiniteQueryState(arg, {
-          selectFromResult: arg === import_query.skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,
-          ...options
-        });
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, "hasNextPage", "hasPreviousPage");
-        (0, import_react.useDebugValue)(debugValue);
-        return (0, import_react.useMemo)(() => ({
-          ...queryStateResults,
-          fetchNextPage,
-          fetchPreviousPage,
-          refetch
-        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);
-      }
-    };
-  }
-  function buildMutationHook(name) {
-    return ({
-      selectFromResult,
-      fixedCacheKey
-    } = {}) => {
-      const {
-        select,
-        initiate
-      } = api.endpoints[name];
-      const dispatch = useDispatch();
-      const [promise, setPromise] = (0, import_react.useState)();
-      (0, import_react.useEffect)(() => () => {
-        if (!promise?.arg.fixedCacheKey) {
-          promise?.reset();
-        }
-      }, [promise]);
-      const triggerMutation = (0, import_react.useCallback)(function(arg) {
-        const promise2 = dispatch(initiate(arg, {
-          fixedCacheKey
-        }));
-        setPromise(promise2);
-        return promise2;
-      }, [dispatch, initiate, fixedCacheKey]);
-      const {
-        requestId
-      } = promise || {};
-      const selectDefaultResult = (0, import_react.useMemo)(() => select({
-        fixedCacheKey,
-        requestId: promise?.requestId
-      }), [fixedCacheKey, promise, select]);
-      const mutationSelector = (0, import_react.useMemo)(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);
-      const currentState = useSelector(mutationSelector, import_react_redux.shallowEqual);
-      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;
-      const reset = (0, import_react.useCallback)(() => {
-        batch(() => {
-          if (promise) {
-            setPromise(void 0);
-          }
-          if (fixedCacheKey) {
-            dispatch(api.internalActions.removeMutationResult({
-              requestId,
-              fixedCacheKey
-            }));
-          }
-        });
-      }, [dispatch, fixedCacheKey, promise, requestId]);
-      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, "endpointName");
-      (0, import_react.useDebugValue)(debugValue);
-      const finalState = (0, import_react.useMemo)(() => ({
-        ...currentState,
-        originalArgs,
-        reset
-      }), [currentState, originalArgs, reset]);
-      return (0, import_react.useMemo)(() => [triggerMutation, finalState], [triggerMutation, finalState]);
-    };
-  }
-}
-
-// src/query/react/module.ts
-var reactHooksModuleName = /* @__PURE__ */ Symbol();
-var reactHooksModule = ({
-  batch = import_react_redux2.batch,
-  hooks = {
-    useDispatch: import_react_redux2.useDispatch,
-    useSelector: import_react_redux2.useSelector,
-    useStore: import_react_redux2.useStore
-  },
-  createSelector = import_reselect.createSelector,
-  unstable__sideEffectsInRender = false,
-  ...rest
-} = {}) => {
-  if (true) {
-    const hookNames = ["useDispatch", "useSelector", "useStore"];
-    let warned = false;
-    for (const hookName of hookNames) {
-      if (countObjectKeys(rest) > 0) {
-        if (rest[hookName]) {
-          if (!warned) {
-            console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`");
-            warned = true;
-          }
-        }
-        hooks[hookName] = rest[hookName];
-      }
-      if (typeof hooks[hookName] !== "function") {
-        throw new Error(false ? _formatProdErrorMessage4(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(", ")}.
-Hook ${hookName} was either not provided or not a function.`);
-      }
-    }
-  }
-  return {
-    name: reactHooksModuleName,
-    init(api, {
-      serializeQueryArgs
-    }, context) {
-      const anyApi = api;
-      const {
-        buildQueryHooks,
-        buildInfiniteQueryHooks,
-        buildMutationHook,
-        usePrefetch
-      } = buildHooks({
-        api,
-        moduleOptions: {
-          batch,
-          hooks,
-          unstable__sideEffectsInRender,
-          createSelector
-        },
-        serializeQueryArgs,
-        context
-      });
-      safeAssign(anyApi, {
-        usePrefetch
-      });
-      safeAssign(context, {
-        batch
-      });
-      return {
-        injectEndpoint(endpointName, definition) {
-          if (isQueryDefinition(definition)) {
-            const {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            } = buildQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            });
-            api[`use${capitalize(endpointName)}Query`] = useQuery;
-            api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;
-          }
-          if (isMutationDefinition(definition)) {
-            const useMutation = buildMutationHook(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useMutation
-            });
-            api[`use${capitalize(endpointName)}Mutation`] = useMutation;
-          } else if (isInfiniteQueryDefinition(definition)) {
-            const {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            } = buildInfiniteQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            });
-            api[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;
-          }
-        }
-      };
-    }
-  };
-};
-
-// src/query/react/index.ts
-__reExport(react_exports, require("@reduxjs/toolkit/query"), module.exports);
-
-// src/query/react/ApiProvider.tsx
-var import_toolkit3 = require("@reduxjs/toolkit");
-var React = __toESM(require("react"));
-function ApiProvider(props) {
-  const context = props.context || import_react_redux.ReactReduxContext;
-  const existingContext = (0, import_react.useContext)(context);
-  if (existingContext) {
-    throw new Error(false ? _formatProdErrorMessage5(35) : "Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.");
-  }
-  const [store] = React.useState(() => (0, import_toolkit3.configureStore)({
-    reducer: {
-      [props.api.reducerPath]: props.api.reducer
-    },
-    middleware: (gDM) => gDM().concat(props.api.middleware)
-  }));
-  (0, import_react.useEffect)(() => props.setupListeners === false ? void 0 : (0, import_query.setupListeners)(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);
-  return /* @__PURE__ */ React.createElement(import_react_redux.Provider, { store, context }, props.children);
-}
-
-// src/query/react/index.ts
-var createApi = /* @__PURE__ */ (0, import_query.buildCreateApi)((0, import_query.coreModule)(), reactHooksModule());
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  ApiProvider,
-  UNINITIALIZED_VALUE,
-  createApi,
-  reactHooksModule,
-  reactHooksModuleName,
-  ...require("@reduxjs/toolkit/query")
-});
-//# sourceMappingURL=rtk-query-react.development.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.development.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.development.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../../src/query/react/index.ts","../../../../src/query/react/rtkqImports.ts","../../../../src/query/react/module.ts","../../../../src/query/utils/capitalize.ts","../../../../src/query/utils/countObjectKeys.ts","../../../../src/query/endpointDefinitions.ts","../../../../src/query/tsHelpers.ts","../../../../src/query/react/buildHooks.ts","../../../../src/query/react/reactImports.ts","../../../../src/query/react/reactReduxImports.ts","../../../../src/query/react/constants.ts","../../../../src/query/react/useSerializedStableValue.ts","../../../../src/query/react/useShallowStableValue.ts","../../../../src/query/react/ApiProvider.tsx"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nimport { buildCreateApi, coreModule } from './rtkqImports';\nimport { reactHooksModule, reactHooksModuleName } from './module';\nexport * from '@reduxjs/toolkit/query';\nexport { ApiProvider } from './ApiProvider';\nconst createApi = /* @__PURE__ */buildCreateApi(coreModule(), reactHooksModule());\nexport type { TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult, TypedUseQuerySubscriptionResult, TypedLazyQueryTrigger, TypedUseLazyQuery, TypedUseMutation, TypedMutationTrigger, TypedQueryStateSelector, TypedUseQueryState, TypedUseQuery, TypedUseQuerySubscription, TypedUseLazyQuerySubscription, TypedUseQueryStateOptions, TypedUseLazyQueryStateResult, TypedUseInfiniteQuery, TypedUseInfiniteQueryHookResult, TypedUseInfiniteQueryStateResult, TypedUseInfiniteQuerySubscriptionResult, TypedUseInfiniteQueryStateOptions, TypedInfiniteQueryStateSelector, TypedUseInfiniteQuerySubscription, TypedUseInfiniteQueryState, TypedLazyInfiniteQueryTrigger } from './buildHooks';\nexport { UNINITIALIZED_VALUE } from './constants';\nexport { createApi, reactHooksModule, reactHooksModuleName };","export { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from '@reduxjs/toolkit/query';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Api, BaseQueryFn, EndpointDefinitions, InfiniteQueryDefinition, Module, MutationDefinition, PrefetchOptions, QueryArgFrom, QueryDefinition, QueryKeys } from '@reduxjs/toolkit/query';\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from 'react-redux';\nimport type { CreateSelectorFunction } from 'reselect';\nimport { createSelector as _createSelector } from 'reselect';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { safeAssign } from '../tsHelpers';\nimport { capitalize, countObjectKeys } from '../utils';\nimport type { InfiniteQueryHooks, MutationHooks, QueryHooks } from './buildHooks';\nimport { buildHooks } from './buildHooks';\nimport type { HooksWithUniqueNames } from './namedHooks';\nexport const reactHooksModuleName = /* @__PURE__ */Symbol();\nexport type ReactHooksModule = typeof reactHooksModuleName;\ndeclare module '@reduxjs/toolkit/query' {\n  export interface ApiModules<\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ReducerPath extends string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  TagTypes extends string> {\n    [reactHooksModuleName]: {\n      /**\n       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\n       */\n      endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never };\n      /**\n       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\n       */\n      usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;\n    } & HooksWithUniqueNames<Definitions>;\n  }\n}\ntype RR = typeof import('react-redux');\nexport interface ReactHooksModuleOptions {\n  /**\n   * The hooks from React Redux to be used\n   */\n  hooks?: {\n    /**\n     * The version of the `useDispatch` hook to be used\n     */\n    useDispatch: RR['useDispatch'];\n    /**\n     * The version of the `useSelector` hook to be used\n     */\n    useSelector: RR['useSelector'];\n    /**\n     * The version of the `useStore` hook to be used\n     */\n    useStore: RR['useStore'];\n  };\n  /**\n   * The version of the `batchedUpdates` function to be used\n   */\n  batch?: RR['batch'];\n  /**\n   * Enables performing asynchronous tasks immediately within a render.\n   *\n   * @example\n   *\n   * ```ts\n   * import {\n   *   buildCreateApi,\n   *   coreModule,\n   *   reactHooksModule\n   * } from '@reduxjs/toolkit/query/react'\n   *\n   * const createApi = buildCreateApi(\n   *   coreModule(),\n   *   reactHooksModule({ unstable__sideEffectsInRender: true })\n   * )\n   * ```\n   */\n  unstable__sideEffectsInRender?: boolean;\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\n *\n *  @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @returns A module for use with `buildCreateApi`\n */\nexport const reactHooksModule = ({\n  batch = rrBatch,\n  hooks = {\n    useDispatch: rrUseDispatch,\n    useSelector: rrUseSelector,\n    useStore: rrUseStore\n  },\n  createSelector = _createSelector,\n  unstable__sideEffectsInRender = false,\n  ...rest\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {\n  if (process.env.NODE_ENV !== 'production') {\n    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const;\n    let warned = false;\n    for (const hookName of hookNames) {\n      // warn for old hook options\n      if (countObjectKeys(rest) > 0) {\n        if ((rest as Partial<typeof hooks>)[hookName]) {\n          if (!warned) {\n            console.warn('As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' + '\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`');\n            warned = true;\n          }\n        }\n        // migrate\n        // @ts-ignore\n        hooks[hookName] = rest[hookName];\n      }\n      // then make sure we have them all\n      if (typeof hooks[hookName] !== 'function') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(', ')}.\\nHook ${hookName} was either not provided or not a function.`);\n      }\n    }\n  }\n  return {\n    name: reactHooksModuleName,\n    init(api, {\n      serializeQueryArgs\n    }, context) {\n      const anyApi = api as any as Api<any, Record<string, any>, any, any, ReactHooksModule>;\n      const {\n        buildQueryHooks,\n        buildInfiniteQueryHooks,\n        buildMutationHook,\n        usePrefetch\n      } = buildHooks({\n        api,\n        moduleOptions: {\n          batch,\n          hooks,\n          unstable__sideEffectsInRender,\n          createSelector\n        },\n        serializeQueryArgs,\n        context\n      });\n      safeAssign(anyApi, {\n        usePrefetch\n      });\n      safeAssign(context, {\n        batch\n      });\n      return {\n        injectEndpoint(endpointName, definition) {\n          if (isQueryDefinition(definition)) {\n            const {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            } = buildQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            });\n            (api as any)[`use${capitalize(endpointName)}Query`] = useQuery;\n            (api as any)[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n          }\n          if (isMutationDefinition(definition)) {\n            const useMutation = buildMutationHook(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useMutation\n            });\n            (api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation;\n          } else if (isInfiniteQueryDefinition(definition)) {\n            const {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            } = buildInfiniteQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            });\n            (api as any)[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n          }\n        }\n      };\n    }\n  };\n};","export function capitalize(str: string) {\n  return str.replace(str[0], str[0].toUpperCase());\n}","// Fast method for counting an object's keys\n// without resorting to `Object.keys(obj).length\n// Will this make a big difference in perf? Probably not\n// But we can save a few allocations.\n\nexport function countObjectKeys(obj: Record<any, any>) {\n  let count = 0;\n  for (const _key in obj) {\n    count++;\n  }\n  return count;\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Selector, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Api, ApiContext, ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, BaseQueryFn, CoreModule, EndpointDefinitions, InfiniteQueryActionCreatorResult, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, MutationActionCreatorResult, MutationDefinition, MutationResultSelectorResult, PageParamFrom, PrefetchOptions, QueryActionCreatorResult, QueryArgFrom, QueryCacheKey, QueryDefinition, QueryKeys, QueryResultSelectorResult, QuerySubState, ResultTypeFrom, RootState, SerializeQueryArgs, SkipToken, SubscriptionOptions, TSHelpersId, TSHelpersNoInfer, TSHelpersOverride } from '@reduxjs/toolkit/query';\nimport { QueryStatus, skipToken } from './rtkqImports';\nimport type { DependencyList } from 'react';\nimport { useCallback, useDebugValue, useEffect, useLayoutEffect, useMemo, useRef, useState } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nimport type { SubscriptionSelectors } from '../core/buildMiddleware/index';\nimport type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index';\nimport type { UninitializedValue } from './constants';\nimport { UNINITIALIZED_VALUE } from './constants';\nimport type { ReactHooksModuleOptions } from './module';\nimport { useStableQueryArgs } from './useSerializedStableValue';\nimport { useShallowStableValue } from './useShallowStableValue';\nimport type { InfiniteQueryDirection } from '../core/apiState';\nimport { isInfiniteQueryDefinition } from '../endpointDefinitions';\nimport type { StartInfiniteQueryActionCreator } from '../core/buildInitiate';\n\n// Copy-pasted from React-Redux\nconst canUseDOM = () => !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nconst isDOM = /* @__PURE__ */canUseDOM();\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\nconst isRunningInReactNative = () => typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst isReactNative = /* @__PURE__ */isRunningInReactNative();\nconst getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;\nexport const useIsomorphicLayoutEffect = /* @__PURE__ */getUseIsomorphicLayoutEffect();\nexport type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  useQuery: UseQuery<Definition>;\n  useLazyQuery: UseLazyQuery<Definition>;\n  useQuerySubscription: UseQuerySubscription<Definition>;\n  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;\n  useQueryState: UseQueryState<Definition>;\n};\nexport type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  useInfiniteQuery: UseInfiniteQuery<Definition>;\n  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;\n  useInfiniteQueryState: UseInfiniteQueryState<Definition>;\n};\nexport type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  useMutation: UseMutation<Definition>;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;\nexport type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuery` hook in userland code.\n */\nexport type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;\nexport type UseQuerySubscriptionOptions = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;\nexport type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {\n  lastArg: QueryArgFrom<D>;\n};\n\n/**\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\n *\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n *\n * #### Note\n *\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\n */\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [LazyQueryTrigger<D>, UseLazyQueryStateResult<D, R>, UseLazyQueryLastPromiseInfo<D>];\nexport type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useLazyQuery` hook in userland code.\n */\nexport type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;\n};\nexport type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n */\nexport type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue, {\n  reset: () => void;\n}];\nexport type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryStateSelector} for use with a specific query.\n * This is useful for scenarios where you want to create a \"pre-typed\"\n * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}\n * function.\n *\n * @example\n * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>\n *\n * ```tsx\n * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   title: string\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * type SelectedResult = Pick<PostsApiResponse, 'posts'>\n *\n * const postsApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, QueryArgument>({\n *       query: (limit = 5) => `?limit=${limit}&select=title`,\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = postsApiSlice\n *\n * function PostById({ id }: { id: number }) {\n *   const { post } = useGetPostsQuery(undefined, {\n *     selectFromResult: (state) => ({\n *       post: state.data?.posts.find((post) => post.id === id),\n *     }),\n *   })\n *\n *   return <li>{post?.title}</li>\n * }\n *\n * const EMPTY_ARRAY: Post[] = []\n *\n * const typedSelectFromResult: TypedQueryStateSelector<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   SelectedResult\n * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })\n *\n * function PostsList() {\n *   const { posts } = useGetPostsQuery(undefined, {\n *     selectFromResult: typedSelectFromResult,\n *   })\n *\n *   return (\n *     <div>\n *       <ul>\n *         {posts.map((post) => (\n *           <PostById key={post.id} id={post.id} />\n *         ))}\n *       </ul>\n *     </div>\n *   )\n * }\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.3.0\n * @public\n */\nexport type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;\nexport type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: QueryStateSelector<R, D>;\n};\n\n/**\n * Provides a way to define a \"pre-typed\" version of\n * {@linkcode UseQueryStateOptions} with specific options for a given query.\n * This is particularly useful for setting default query behaviors such as\n * refetching strategies, which can be overridden as needed.\n *\n * @example\n * <caption>#### __Create a `useQuery` hook with default options__</caption>\n *\n * ```ts\n * import type {\n *   SubscriptionOptions,\n *   TypedUseQueryStateOptions,\n * } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   name: string\n * }\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   tagTypes: ['Post'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<Post[], void>({\n *       query: () => 'posts',\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = api\n *\n * export const useGetPostsQueryWithDefaults = <\n *   SelectedResult extends Record<string, any>,\n * >(\n *   overrideOptions: TypedUseQueryStateOptions<\n *     Post[],\n *     void,\n *     ReturnType<typeof fetchBaseQuery>,\n *     SelectedResult\n *   > &\n *     SubscriptionOptions,\n * ) =>\n *   useGetPostsQuery(undefined, {\n *     // Insert default options here\n *\n *     refetchOnMountOrArgChange: true,\n *     refetchOnFocus: true,\n *     ...overrideOptions,\n *   })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArg - The type of the argument passed into the query.\n * @template BaseQuery - The type of the base query function being used.\n * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.2.8\n * @public\n */\nexport type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;\n\n/**\n * Helper type to manually type the result\n * of the `useQueryState` hook in userland code.\n */\nexport type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: ResultTypeFrom<D>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n};\ntype UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}>;\ntype UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n}>;\ntype UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n  currentData: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isError: true;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;\n};\nexport type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  initialPageParam?: PageParamFrom<D>;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   *\n   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).\n   * It can be overridden on a per-call basis using the `refetch()` method.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;\n  trigger: LazyInfiniteQueryTrigger<D>;\n  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;\n  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;\nexport type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.\n *\n * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.\n *\n * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.\n *\n * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.\n *\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;\nexport type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;\nexport type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\nexport type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: InfiniteQueryStateSelector<R, D>;\n};\nexport type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;\nexport type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\ntype UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n};\ntype UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n} | ({\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({\n  isError: true;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;\nexport type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  selectFromResult?: MutationStateSelector<R, D>;\n  fixedCacheKey?: string;\n};\nexport type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {\n  originalArgs?: QueryArgFrom<D>;\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useMutation` hook in userland code.\n */\nexport type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\n\n/**\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\n *\n * #### Features\n *\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];\nexport type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {\n  /**\n   * Triggers the mutation and returns a Promise.\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;\n};\nexport type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\n * We want the initial render to already come back with\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\n * to prevent that the library user has to do an additional check for `isUninitialized`/\n */\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = selected => {\n  if (selected.isUninitialized) {\n    return {\n      ...selected,\n      isUninitialized: false,\n      isFetching: true,\n      isLoading: selected.data !== undefined ? false : true,\n      // This is the one place where we still have to use `QueryStatus` as an enum,\n      // since it's the only reference in the React package and not in the core.\n      status: QueryStatus.pending\n    } as any;\n  }\n  return selected;\n};\nfunction pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n  const ret: any = {};\n  keys.forEach(key => {\n    ret[key] = obj[key];\n  });\n  return ret;\n}\nconst COMMON_HOOK_DEBUG_FIELDS = ['data', 'status', 'isLoading', 'isSuccess', 'isError', 'error'] as const;\ntype GenericPrefetchThunk = (endpointName: any, arg: any, options: PrefetchOptions) => ThunkAction<void, any, any, UnknownAction>;\n\n/**\n *\n * @param opts.api - An API with defined endpoints to create hooks for\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\n * @returns An object containing functions to generate hooks based on an endpoint\n */\nexport function buildHooks<Definitions extends EndpointDefinitions>({\n  api,\n  moduleOptions: {\n    batch,\n    hooks: {\n      useDispatch,\n      useSelector,\n      useStore\n    },\n    unstable__sideEffectsInRender,\n    createSelector\n  },\n  serializeQueryArgs,\n  context\n}: {\n  api: Api<any, Definitions, any, any, CoreModule>;\n  moduleOptions: Required<ReactHooksModuleOptions>;\n  serializeQueryArgs: SerializeQueryArgs<any>;\n  context: ApiContext<Definitions>;\n}) {\n  const usePossiblyImmediateEffect: (effect: () => void | undefined, deps?: DependencyList) => void = unstable__sideEffectsInRender ? cb => cb() : useEffect;\n  type UnsubscribePromiseRef = React.RefObject<{\n    unsubscribe?: () => void;\n  } | undefined>;\n  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) => ref.current?.unsubscribe?.();\n  const endpointDefinitions = context.endpointDefinitions;\n  return {\n    buildQueryHooks,\n    buildInfiniteQueryHooks,\n    buildMutationHook,\n    usePrefetch\n  };\n  function queryStatePreSelector(currentState: QueryResultSelectorResult<any>, lastResult: UseQueryStateDefaultResult<any> | undefined, queryArgs: any): UseQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n\n    // isSuccess = true when data is present and we're not refetching after an error.\n    // That includes cases where the _current_ item is either actively\n    // fetching or about to fetch due to an uninitialized entry.\n    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseQueryStateDefaultResult<any>;\n  }\n  function infiniteQueryStatePreSelector(currentState: InfiniteQueryResultSelectorResult<any>, lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined, queryArgs: any): UseInfiniteQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n    // isSuccess = true when data is present\n    const isSuccess = currentState.isSuccess || isFetching && hasData;\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseInfiniteQueryStateDefaultResult<any>;\n  }\n  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, defaultOptions?: PrefetchOptions) {\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n    const stableDefaultOptions = useShallowStableValue(defaultOptions);\n    return useCallback((arg: any, options?: PrefetchOptions) => dispatch((api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\n      ...stableDefaultOptions,\n      ...options\n    })), [endpointName, dispatch, stableDefaultOptions]);\n  }\n  function useQuerySubscriptionCommonImpl<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(endpointName: string, arg: unknown | SkipToken, {\n    refetchOnReconnect,\n    refetchOnFocus,\n    refetchOnMountOrArgChange,\n    skip = false,\n    pollingInterval = 0,\n    skipPollingIfUnfocused = false,\n    ...rest\n  }: UseQuerySubscriptionOptions = {}) {\n    const {\n      initiate\n    } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n\n    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.\n    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(undefined);\n    if (!subscriptionSelectorsRef.current) {\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n    You must add the middleware for RTK-Query to function correctly!`);\n        }\n      }\n      subscriptionSelectorsRef.current = returnedValue as unknown as SubscriptionSelectors;\n    }\n    const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n    const stableSubscriptionOptions = useShallowStableValue({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval,\n      skipPollingIfUnfocused\n    });\n    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>).initialPageParam;\n    const stableInitialPageParam = useShallowStableValue(initialPageParam);\n    const refetchCachedPages = (rest as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);\n\n    /**\n     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n     */\n    const promiseRef = useRef<T | undefined>(undefined);\n    let {\n      queryCacheKey,\n      requestId\n    } = promiseRef.current || {};\n\n    // HACK We've saved the middleware subscription lookup callbacks into a ref,\n    // so we can directly check here if the subscription exists for this query.\n    let currentRenderHasSubscription = false;\n    if (queryCacheKey && requestId) {\n      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n    }\n    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== undefined;\n    usePossiblyImmediateEffect((): void | undefined => {\n      if (subscriptionRemoved) {\n        promiseRef.current = undefined;\n      }\n    }, [subscriptionRemoved]);\n    usePossiblyImmediateEffect((): void | undefined => {\n      const lastPromise = promiseRef.current;\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'removeMeOnCompilation') {\n        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\n        console.log(subscriptionRemoved);\n      }\n      if (stableArg === skipToken) {\n        lastPromise?.unsubscribe();\n        promiseRef.current = undefined;\n        return;\n      }\n      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n      if (!lastPromise || lastPromise.arg !== stableArg) {\n        lastPromise?.unsubscribe();\n        const promise = dispatch(initiate(stableArg, {\n          subscriptionOptions: stableSubscriptionOptions,\n          forceRefetch: refetchOnMountOrArgChange,\n          ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {\n            initialPageParam: stableInitialPageParam,\n            refetchCachedPages: stableRefetchCachedPages\n          } : {})\n        }));\n        promiseRef.current = promise as T;\n      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n      }\n    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);\n    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const;\n  }\n  function buildUseQueryState(endpointName: string, preSelector: typeof queryStatePreSelector | typeof infiniteQueryStatePreSelector) {\n    const useQueryState = (arg: any, {\n      skip = false,\n      selectFromResult\n    }: UseQueryStateOptions<any, any> | UseInfiniteQueryStateOptions<any, any> = {}) => {\n      const {\n        select\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n      type ApiRootState = Parameters<ReturnType<typeof select>>[0];\n      const lastValue = useRef<any>(undefined);\n      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(() =>\n      // Normally ts-ignores are bad and should be avoided, but we're\n      // already casting this selector to be `Selector<any>` anyway,\n      // so the inconsistencies don't matter here\n      // @ts-ignore\n      createSelector([\n      // @ts-ignore\n      select(stableArg), (_: ApiRootState, lastResult: any) => lastResult, (_: ApiRootState) => stableArg], preSelector, {\n        memoizeOptions: {\n          resultEqualityCheck: shallowEqual\n        }\n      }), [select, stableArg]);\n      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n        devModeChecks: {\n          identityFunctionCheck: 'never'\n        }\n      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n      const currentState = useSelector((state: RootState<Definitions, any, any>) => querySelector(state, lastValue.current), shallowEqual);\n      const store = useStore<RootState<Definitions, any, any>>();\n      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n      useIsomorphicLayoutEffect(() => {\n        lastValue.current = newLastValue;\n      }, [newLastValue]);\n      return currentState;\n    };\n    return useQueryState;\n  }\n  function usePromiseRefUnsubscribeOnUnmount(promiseRef: UnsubscribePromiseRef) {\n    useEffect(() => {\n      return () => {\n        unsubscribePromiseRef(promiseRef)\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        ;\n        (promiseRef.current as any) = undefined;\n      };\n    }, [promiseRef]);\n  }\n  function refetchOrErrorIfUnmounted<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(promiseRef: React.RefObject<T | undefined>): T {\n    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : 'Cannot refetch a query that has not been started yet.');\n    return promiseRef.current.refetch() as T;\n  }\n  function buildQueryHooks(endpointName: string): QueryHooks<any> {\n    const useQuerySubscription: UseQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef] = useQuerySubscriptionCommonImpl<QueryActionCreatorResult<any>>(endpointName, arg, options);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      return useMemo(() => ({\n        /**\n         * A method to manually refetch data for the query\n         */\n        refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n      }), [promiseRef]);\n    };\n    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval = 0,\n      skipPollingIfUnfocused = false\n    } = {}) => {\n      const {\n        initiate\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE);\n\n      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n       */\n      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(undefined);\n      const stableSubscriptionOptions = useShallowStableValue({\n        refetchOnReconnect,\n        refetchOnFocus,\n        pollingInterval,\n        skipPollingIfUnfocused\n      });\n      usePossiblyImmediateEffect(() => {\n        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n        if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n        }\n      }, [stableSubscriptionOptions]);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n      const trigger = useCallback(function (arg: any, preferCacheValue = false) {\n        let promise: QueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch(initiate(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            forceRefetch: !preferCacheValue\n          }));\n          setArg(arg);\n        });\n        return promise!;\n      }, [dispatch, initiate]);\n      const reset = useCallback(() => {\n        if (promiseRef.current?.queryCacheKey) {\n          dispatch(api.internalActions.removeQueryResult({\n            queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey\n          }));\n        }\n      }, [dispatch]);\n\n      /* cleanup on unmount */\n      useEffect(() => {\n        return () => {\n          unsubscribePromiseRef(promiseRef);\n        };\n      }, []);\n\n      /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\n      useEffect(() => {\n        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n          trigger(arg, true);\n        }\n      }, [arg, trigger]);\n      return useMemo(() => [trigger, arg, {\n        reset\n      }] as const, [trigger, arg, reset]);\n    };\n    const useQueryState: UseQueryState<any> = buildUseQueryState(endpointName, queryStatePreSelector);\n    return {\n      useQueryState,\n      useQuerySubscription,\n      useLazyQuerySubscription,\n      useLazyQuery(options) {\n        const [trigger, arg, {\n          reset\n        }] = useLazyQuerySubscription(options);\n        const queryStateResults = useQueryState(arg, {\n          ...options,\n          skip: arg === UNINITIALIZED_VALUE\n        });\n        const info = useMemo(() => ({\n          lastArg: arg\n        }), [arg]);\n        return useMemo(() => [trigger, {\n          ...queryStateResults,\n          reset\n        }, info], [trigger, queryStateResults, reset, info]);\n      },\n      useQuery(arg, options) {\n        const querySubscriptionResults = useQuerySubscription(arg, options);\n        const queryStateResults = useQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          ...querySubscriptionResults\n        }), [queryStateResults, querySubscriptionResults]);\n      }\n    };\n  }\n  function buildInfiniteQueryHooks(endpointName: string): InfiniteQueryHooks<any> {\n    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(endpointName, arg, options);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n\n      // Extract and stabilize the hook-level refetchCachedPages option\n      const hookRefetchCachedPages = (options as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);\n      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(function (arg: unknown, direction: 'forward' | 'backward') {\n        let promise: InfiniteQueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch((initiate as StartInfiniteQueryActionCreator<any>)(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            direction\n          }));\n        });\n        return promise!;\n      }, [promiseRef, dispatch, initiate]);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n      const refetch = useCallback((options?: Pick<UseInfiniteQuerySubscriptionOptions<any>, 'refetchCachedPages'>) => {\n        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(38) : 'Cannot refetch a query that has not been started yet.');\n        // Merge per-call options with hook-level default\n        const mergedOptions = {\n          refetchCachedPages: options?.refetchCachedPages ?? stableHookRefetchCachedPages\n        };\n        return promiseRef.current.refetch(mergedOptions);\n      }, [promiseRef, stableHookRefetchCachedPages]);\n      return useMemo(() => {\n        const fetchNextPage = () => {\n          return trigger(stableArg, 'forward');\n        };\n        const fetchPreviousPage = () => {\n          return trigger(stableArg, 'backward');\n        };\n        return {\n          trigger,\n          /**\n           * A method to manually refetch data for the query\n           */\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        };\n      }, [refetch, trigger, stableArg]);\n    };\n    const useInfiniteQueryState: UseInfiniteQueryState<any> = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n    return {\n      useInfiniteQueryState,\n      useInfiniteQuerySubscription,\n      useInfiniteQuery(arg, options) {\n        const {\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        } = useInfiniteQuerySubscription(arg, options);\n        const queryStateResults = useInfiniteQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, 'hasNextPage', 'hasPreviousPage');\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          fetchNextPage,\n          fetchPreviousPage,\n          refetch\n        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n      }\n    };\n  }\n  function buildMutationHook(name: string): UseMutation<any> {\n    return ({\n      selectFromResult,\n      fixedCacheKey\n    } = {}) => {\n      const {\n        select,\n        initiate\n      } = api.endpoints[name] as ApiEndpointMutation<MutationDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>();\n      useEffect(() => () => {\n        if (!promise?.arg.fixedCacheKey) {\n          promise?.reset();\n        }\n      }, [promise]);\n      const triggerMutation = useCallback(function (arg: Parameters<typeof initiate>['0']) {\n        const promise = dispatch(initiate(arg, {\n          fixedCacheKey\n        }));\n        setPromise(promise);\n        return promise;\n      }, [dispatch, initiate, fixedCacheKey]);\n      const {\n        requestId\n      } = promise || {};\n      const selectDefaultResult = useMemo(() => select({\n        fixedCacheKey,\n        requestId: promise?.requestId\n      }), [fixedCacheKey, promise, select]);\n      const mutationSelector = useMemo((): Selector<RootState<Definitions, any, any>, any> => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n      const currentState = useSelector(mutationSelector, shallowEqual);\n      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : undefined;\n      const reset = useCallback(() => {\n        batch(() => {\n          if (promise) {\n            setPromise(undefined);\n          }\n          if (fixedCacheKey) {\n            dispatch(api.internalActions.removeMutationResult({\n              requestId,\n              fixedCacheKey\n            }));\n          }\n        });\n      }, [dispatch, fixedCacheKey, promise, requestId]);\n      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, 'endpointName');\n      useDebugValue(debugValue);\n      const finalState = useMemo(() => ({\n        ...currentState,\n        originalArgs,\n        reset\n      }), [currentState, originalArgs, reset]);\n      return useMemo(() => [triggerMutation, finalState] as const, [triggerMutation, finalState]);\n    };\n  }\n}","export { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from 'react';","export { shallowEqual, Provider, ReactReduxContext } from 'react-redux';","export const UNINITIALIZED_VALUE = Symbol();\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE;","import { useEffect, useRef, useMemo } from './reactImports';\nimport { copyWithStructuralSharing } from './rtkqImports';\nexport function useStableQueryArgs<T>(queryArgs: T) {\n  const cache = useRef(queryArgs);\n  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n  useEffect(() => {\n    if (cache.current !== copy) {\n      cache.current = copy;\n    }\n  }, [copy]);\n  return copy;\n}","import { useEffect, useRef } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nexport function useShallowStableValue<T>(value: T) {\n  const cache = useRef(value);\n  useEffect(() => {\n    if (!shallowEqual(cache.current, value)) {\n      cache.current = value;\n    }\n  }, [value]);\n  return shallowEqual(cache.current, value) ? cache.current : value;\n}","import { configureStore, formatProdErrorMessage as _formatProdErrorMessage } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport { useContext, useEffect } from './reactImports';\nimport * as React from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { Provider, ReactReduxContext } from './reactReduxImports';\nimport { setupListeners } from './rtkqImports';\nimport type { Api } from '@reduxjs/toolkit/query';\n\n/**\n * Can be used as a `Provider` if you **do not already have a Redux store**.\n *\n * @example\n * ```tsx\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\n * import * as React from 'react';\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\n * import { Pokemon } from './features/Pokemon';\n *\n * function App() {\n *   return (\n *     <ApiProvider api={api}>\n *       <Pokemon />\n *     </ApiProvider>\n *   );\n * }\n * ```\n *\n * @remarks\n * Using this together with an existing redux store, both will\n * conflict with each other - please use the traditional redux setup\n * in that case.\n */\nexport function ApiProvider(props: {\n  children: any;\n  api: Api<any, {}, any, any>;\n  setupListeners?: Parameters<typeof setupListeners>[1] | false;\n  context?: Context<ReactReduxContextValue | null>;\n}) {\n  const context = props.context || ReactReduxContext;\n  const existingContext = useContext(context);\n  if (existingContext) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(35) : 'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.');\n  }\n  const [store] = React.useState(() => configureStore({\n    reducer: {\n      [props.api.reducerPath]: props.api.reducer\n    },\n    middleware: gDM => gDM().concat(props.api.middleware)\n  }));\n  // Adds the event listeners for online/offline/focus/etc\n  useEffect((): undefined | (() => void) => props.setupListeners === false ? undefined : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n  return <Provider store={store} context={context}>\n      {props.children}\n    </Provider>;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA8G;;;ACA9G,IAAAA,kBAAkE;AAElE,IAAAC,sBAAqH;AAErH,sBAAkD;;;ACJ3C,SAAS,WAAW,KAAa;AACtC,SAAO,IAAI,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;AACjD;;;ACGO,SAAS,gBAAgB,KAAuB;AACrD,MAAI,QAAQ;AACZ,aAAW,QAAQ,KAAK;AACtB;AAAA,EACF;AACA,SAAO;AACT;;;AC8XO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;;;AC91BO,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACNA,qBAA0K;;;ACA1K,mBAA8G;;;ACA9G,yBAA0D;;;ACAnD,IAAM,sBAAsB,OAAO;;;ACEnC,SAAS,mBAAsB,WAAc;AAClD,QAAM,YAAQ,qBAAO,SAAS;AAC9B,QAAM,WAAO,sBAAQ,UAAM,wCAA0B,MAAM,SAAS,SAAS,GAAG,CAAC,SAAS,CAAC;AAC3F,8BAAU,MAAM;AACd,QAAI,MAAM,YAAY,MAAM;AAC1B,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SAAO;AACT;;;ACTO,SAAS,sBAAyB,OAAU;AACjD,QAAM,YAAQ,qBAAO,KAAK;AAC1B,8BAAU,MAAM;AACd,QAAI,KAAC,iCAAa,MAAM,SAAS,KAAK,GAAG;AACvC,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AACV,aAAO,iCAAa,MAAM,SAAS,KAAK,IAAI,MAAM,UAAU;AAC9D;;;ALSA,IAAM,YAAY,MAAM,CAAC,EAAE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB;AAC/I,IAAM,QAAuB,0BAAU;AAIvC,IAAM,yBAAyB,MAAM,OAAO,cAAc,eAAe,UAAU,YAAY;AAC/F,IAAM,gBAA+B,uCAAuB;AAC5D,IAAM,+BAA+B,MAAM,SAAS,gBAAgB,+BAAkB;AAC/E,IAAM,4BAA2C,6CAA6B;AAq0BrF,IAAM,8BAA4D,cAAY;AAC5E,MAAI,SAAS,iBAAiB;AAC5B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,WAAW,SAAS,SAAS,SAAY,QAAQ;AAAA;AAAA;AAAA,MAGjD,QAAQ,yBAAY;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,KAA2B,QAAW,MAAuB;AACpE,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,SAAO;AAClB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AACD,SAAO;AACT;AACA,IAAM,2BAA2B,CAAC,QAAQ,UAAU,aAAa,aAAa,WAAW,OAAO;AAWzF,SAAS,WAAoD;AAAA,EAClE;AAAA,EACA,eAAe;AAAA,IACb;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,6BAA8F,gCAAgC,QAAM,GAAG,IAAI;AAIjJ,QAAM,wBAAwB,CAAC,QAA+B,IAAI,SAAS,cAAc;AACzF,QAAM,sBAAsB,QAAQ;AACpC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,sBAAsB,cAA8C,YAAyD,WAAiD;AAIrL,QAAI,YAAY,gBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,0BAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,YAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAGhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAKrG,UAAM,YAAY,aAAa,aAAa,YAAY,cAAc,CAAC,YAAY,WAAW,aAAa;AAC3G,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,8BAA8B,cAAsD,YAAiE,WAAyD;AAIrN,QAAI,YAAY,gBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,0BAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,YAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAEhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAErG,UAAM,YAAY,aAAa,aAAa,cAAc;AAC1D,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAyD,cAA4B,gBAAkC;AAC9H,UAAM,WAAW,YAAoD;AACrE,UAAM,uBAAuB,sBAAsB,cAAc;AACjE,eAAO,0BAAY,CAAC,KAAU,YAA8B,SAAU,IAAI,KAAK,SAAkC,cAAc,KAAK;AAAA,MAClI,GAAG;AAAA,MACH,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,CAAC,cAAc,UAAU,oBAAoB,CAAC;AAAA,EACrD;AACA,WAAS,+BAAgH,cAAsB,KAA0B;AAAA,IACvK;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,GAAG;AAAA,EACL,IAAiC,CAAC,GAAG;AACnC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,IAAI,UAAU,YAAY;AAC9B,UAAM,WAAW,YAAoD;AAGrE,UAAM,+BAA2B,qBAA0C,MAAS;AACpF,QAAI,CAAC,yBAAyB,SAAS;AACrC,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,UAAI,MAAuC;AACzC,YAAI,OAAO,kBAAkB,YAAY,OAAO,eAAe,SAAS,UAAU;AAChF,gBAAM,IAAI,MAAM,QAAwC,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,qEACnG;AAAA,QAC7D;AAAA,MACF;AACA,+BAAyB,UAAU;AAAA,IACrC;AACA,UAAM,YAAY,mBAAmB,OAAO,yBAAY,GAAG;AAC3D,UAAM,4BAA4B,sBAAsB;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,mBAAoB,KAAkD;AAC5E,UAAM,yBAAyB,sBAAsB,gBAAgB;AACrE,UAAM,qBAAsB,KAAkD;AAC9E,UAAM,2BAA2B,sBAAsB,kBAAkB;AAKzE,UAAM,iBAAa,qBAAsB,MAAS;AAClD,QAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,IAAI,WAAW,WAAW,CAAC;AAI3B,QAAI,+BAA+B;AACnC,QAAI,iBAAiB,WAAW;AAC9B,qCAA+B,yBAAyB,QAAQ,oBAAoB,eAAe,SAAS;AAAA,IAC9G;AACA,UAAM,sBAAsB,CAAC,gCAAgC,WAAW,YAAY;AACpF,+BAA2B,MAAwB;AACjD,UAAI,qBAAqB;AACvB,mBAAW,UAAU;AAAA,MACvB;AAAA,IACF,GAAG,CAAC,mBAAmB,CAAC;AACxB,+BAA2B,MAAwB;AACjD,YAAM,cAAc,WAAW;AAC/B,UAAI,OAAO,YAAY,eAAe,OAAkD;AAEtF,gBAAQ,IAAI,mBAAmB;AAAA,MACjC;AACA,UAAI,cAAc,wBAAW;AAC3B,qBAAa,YAAY;AACzB,mBAAW,UAAU;AACrB;AAAA,MACF;AACA,YAAM,0BAA0B,WAAW,SAAS;AACpD,UAAI,CAAC,eAAe,YAAY,QAAQ,WAAW;AACjD,qBAAa,YAAY;AACzB,cAAM,UAAU,SAAS,SAAS,WAAW;AAAA,UAC3C,qBAAqB;AAAA,UACrB,cAAc;AAAA,UACd,GAAI,0BAA0B,oBAAoB,YAAY,CAAC,IAAI;AAAA,YACjE,kBAAkB;AAAA,YAClB,oBAAoB;AAAA,UACtB,IAAI,CAAC;AAAA,QACP,CAAC,CAAC;AACF,mBAAW,UAAU;AAAA,MACvB,WAAW,8BAA8B,yBAAyB;AAChE,oBAAY,0BAA0B,yBAAyB;AAAA,MACjE;AAAA,IACF,GAAG,CAAC,UAAU,UAAU,2BAA2B,WAAW,2BAA2B,qBAAqB,wBAAwB,0BAA0B,YAAY,CAAC;AAC7K,WAAO,CAAC,YAAY,UAAU,UAAU,yBAAyB;AAAA,EACnE;AACA,WAAS,mBAAmB,cAAsB,aAAkF;AAClI,UAAM,gBAAgB,CAAC,KAAU;AAAA,MAC/B,OAAO;AAAA,MACP;AAAA,IACF,IAA6E,CAAC,MAAM;AAClF,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,YAAY,mBAAmB,OAAO,yBAAY,GAAG;AAE3D,YAAM,gBAAY,qBAAY,MAAS;AACvC,YAAM,0BAA0D,sBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAKxE,eAAe;AAAA;AAAA,UAEf,OAAO,SAAS;AAAA,UAAG,CAAC,GAAiB,eAAoB;AAAA,UAAY,CAAC,MAAoB;AAAA,QAAS,GAAG,aAAa;AAAA,UACjH,gBAAgB;AAAA,YACd,qBAAqB;AAAA,UACvB;AAAA,QACF,CAAC;AAAA,SAAG,CAAC,QAAQ,SAAS,CAAC;AACvB,YAAM,oBAAoD,sBAAQ,MAAM,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,kBAAkB;AAAA,QACjJ,eAAe;AAAA,UACb,uBAAuB;AAAA,QACzB;AAAA,MACF,CAAC,IAAI,qBAAqB,CAAC,qBAAqB,gBAAgB,CAAC;AACjE,YAAM,eAAe,YAAY,CAAC,UAA4C,cAAc,OAAO,UAAU,OAAO,GAAG,+BAAY;AACnI,YAAM,QAAQ,SAA2C;AACzD,YAAM,eAAe,oBAAoB,MAAM,SAAS,GAAG,UAAU,OAAO;AAC5E,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AAAA,MACtB,GAAG,CAAC,YAAY,CAAC;AACjB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,kCAAkC,YAAmC;AAC5E,gCAAU,MAAM;AACd,aAAO,MAAM;AACX,8BAAsB,UAAU;AAGhC,QAAC,WAAW,UAAkB;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,UAAU,CAAC;AAAA,EACjB;AACA,WAAS,0BAA2G,YAA+C;AACjK,QAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,uDAAuD;AACvK,WAAO,WAAW,QAAQ,QAAQ;AAAA,EACpC;AACA,WAAS,gBAAgB,cAAuC;AAC9D,UAAM,uBAAkD,CAAC,KAAU,UAAU,CAAC,MAAM;AAClF,YAAM,CAAC,UAAU,IAAI,+BAA8D,cAAc,KAAK,OAAO;AAC7G,wCAAkC,UAAU;AAC5C,iBAAO,sBAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,QAIpB,SAAS,MAAM,0BAA0B,UAAU;AAAA,MACrD,IAAI,CAAC,UAAU,CAAC;AAAA,IAClB;AACA,UAAM,2BAA0D,CAAC;AAAA,MAC/D;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAC3B,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,KAAK,MAAM,QAAI,uBAAc,mBAAmB;AAMvD,YAAM,iBAAa,qBAAkD,MAAS;AAC9E,YAAM,4BAA4B,sBAAsB;AAAA,QACtD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iCAA2B,MAAM;AAC/B,cAAM,0BAA0B,WAAW,SAAS;AACpD,YAAI,8BAA8B,yBAAyB;AACzD,qBAAW,SAAS,0BAA0B,yBAAyB;AAAA,QACzE;AAAA,MACF,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,6BAAyB,qBAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,cAAU,0BAAY,SAAUC,MAAU,mBAAmB,OAAO;AACxE,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAS,SAASA,MAAK;AAAA,YACpD,qBAAqB,uBAAuB;AAAA,YAC5C,cAAc,CAAC;AAAA,UACjB,CAAC,CAAC;AACF,iBAAOA,IAAG;AAAA,QACZ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,UAAU,QAAQ,CAAC;AACvB,YAAM,YAAQ,0BAAY,MAAM;AAC9B,YAAI,WAAW,SAAS,eAAe;AACrC,mBAAS,IAAI,gBAAgB,kBAAkB;AAAA,YAC7C,eAAe,WAAW,SAAS;AAAA,UACrC,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,GAAG,CAAC,QAAQ,CAAC;AAGb,kCAAU,MAAM;AACd,eAAO,MAAM;AACX,gCAAsB,UAAU;AAAA,QAClC;AAAA,MACF,GAAG,CAAC,CAAC;AAGL,kCAAU,MAAM;AACd,YAAI,QAAQ,uBAAuB,CAAC,WAAW,SAAS;AACtD,kBAAQ,KAAK,IAAI;AAAA,QACnB;AAAA,MACF,GAAG,CAAC,KAAK,OAAO,CAAC;AACjB,iBAAO,sBAAQ,MAAM,CAAC,SAAS,KAAK;AAAA,QAClC;AAAA,MACF,CAAC,GAAY,CAAC,SAAS,KAAK,KAAK,CAAC;AAAA,IACpC;AACA,UAAM,gBAAoC,mBAAmB,cAAc,qBAAqB;AAChG,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,SAAS;AACpB,cAAM,CAAC,SAAS,KAAK;AAAA,UACnB;AAAA,QACF,CAAC,IAAI,yBAAyB,OAAO;AACrC,cAAM,oBAAoB,cAAc,KAAK;AAAA,UAC3C,GAAG;AAAA,UACH,MAAM,QAAQ;AAAA,QAChB,CAAC;AACD,cAAM,WAAO,sBAAQ,OAAO;AAAA,UAC1B,SAAS;AAAA,QACX,IAAI,CAAC,GAAG,CAAC;AACT,mBAAO,sBAAQ,MAAM,CAAC,SAAS;AAAA,UAC7B,GAAG;AAAA,UACH;AAAA,QACF,GAAG,IAAI,GAAG,CAAC,SAAS,mBAAmB,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,MACA,SAAS,KAAK,SAAS;AACrB,cAAM,2BAA2B,qBAAqB,KAAK,OAAO;AAClE,cAAM,oBAAoB,cAAc,KAAK;AAAA,UAC3C,kBAAkB,QAAQ,0BAAa,SAAS,OAAO,SAAY;AAAA,UACnE,GAAG;AAAA,QACL,CAAC;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,wBAAwB;AACtE,wCAAc,UAAU;AACxB,mBAAO,sBAAQ,OAAO;AAAA,UACpB,GAAG;AAAA,UACH,GAAG;AAAA,QACL,IAAI,CAAC,mBAAmB,wBAAwB,CAAC;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACA,WAAS,wBAAwB,cAA+C;AAC9E,UAAM,+BAAkE,CAAC,KAAU,UAAU,CAAC,MAAM;AAClG,YAAM,CAAC,YAAY,UAAU,UAAU,yBAAyB,IAAI,+BAAsE,cAAc,KAAK,OAAO;AACpK,YAAM,6BAAyB,qBAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAG9B,YAAM,yBAA0B,QAAqD;AACrF,YAAM,+BAA+B,sBAAsB,sBAAsB;AACjF,YAAM,cAAyC,0BAAY,SAAUA,MAAc,WAAmC;AACpH,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAU,SAAkDA,MAAK;AAAA,YAC9F,qBAAqB,uBAAuB;AAAA,YAC5C;AAAA,UACF,CAAC,CAAC;AAAA,QACJ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,UAAU,QAAQ,CAAC;AACnC,wCAAkC,UAAU;AAC5C,YAAM,YAAY,mBAAmB,QAAQ,OAAO,yBAAY,GAAG;AACnE,YAAM,cAAU,0BAAY,CAACC,aAAmF;AAC9G,YAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAwC,yBAAyB,EAAE,IAAI,uDAAuD;AAEvK,cAAM,gBAAgB;AAAA,UACpB,oBAAoBA,UAAS,sBAAsB;AAAA,QACrD;AACA,eAAO,WAAW,QAAQ,QAAQ,aAAa;AAAA,MACjD,GAAG,CAAC,YAAY,4BAA4B,CAAC;AAC7C,iBAAO,sBAAQ,MAAM;AACnB,cAAM,gBAAgB,MAAM;AAC1B,iBAAO,QAAQ,WAAW,SAAS;AAAA,QACrC;AACA,cAAM,oBAAoB,MAAM;AAC9B,iBAAO,QAAQ,WAAW,UAAU;AAAA,QACtC;AACA,eAAO;AAAA,UACL;AAAA;AAAA;AAAA;AAAA,UAIA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,GAAG,CAAC,SAAS,SAAS,SAAS,CAAC;AAAA,IAClC;AACA,UAAM,wBAAoD,mBAAmB,cAAc,6BAA6B;AACxH,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,iBAAiB,KAAK,SAAS;AAC7B,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,6BAA6B,KAAK,OAAO;AAC7C,cAAM,oBAAoB,sBAAsB,KAAK;AAAA,UACnD,kBAAkB,QAAQ,0BAAa,SAAS,OAAO,SAAY;AAAA,UACnE,GAAG;AAAA,QACL,CAAC;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,0BAA0B,eAAe,iBAAiB;AACxG,wCAAc,UAAU;AACxB,mBAAO,sBAAQ,OAAO;AAAA,UACpB,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,CAAC,mBAAmB,eAAe,mBAAmB,OAAO,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,MAAgC;AACzD,WAAO,CAAC;AAAA,MACN;AAAA,MACA;AAAA,IACF,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,IAAI,UAAU,IAAI;AACtB,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,SAAS,UAAU,QAAI,uBAA2C;AACzE,kCAAU,MAAM,MAAM;AACpB,YAAI,CAAC,SAAS,IAAI,eAAe;AAC/B,mBAAS,MAAM;AAAA,QACjB;AAAA,MACF,GAAG,CAAC,OAAO,CAAC;AACZ,YAAM,sBAAkB,0BAAY,SAAU,KAAuC;AACnF,cAAMC,WAAU,SAAS,SAAS,KAAK;AAAA,UACrC;AAAA,QACF,CAAC,CAAC;AACF,mBAAWA,QAAO;AAClB,eAAOA;AAAA,MACT,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,WAAW,CAAC;AAChB,YAAM,0BAAsB,sBAAQ,MAAM,OAAO;AAAA,QAC/C;AAAA,QACA,WAAW,SAAS;AAAA,MACtB,CAAC,GAAG,CAAC,eAAe,SAAS,MAAM,CAAC;AACpC,YAAM,uBAAmB,sBAAQ,MAAuD,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,gBAAgB,IAAI,qBAAqB,CAAC,kBAAkB,mBAAmB,CAAC;AACjO,YAAM,eAAe,YAAY,kBAAkB,+BAAY;AAC/D,YAAM,eAAe,iBAAiB,OAAO,SAAS,IAAI,eAAe;AACzE,YAAM,YAAQ,0BAAY,MAAM;AAC9B,cAAM,MAAM;AACV,cAAI,SAAS;AACX,uBAAW,MAAS;AAAA,UACtB;AACA,cAAI,eAAe;AACjB,qBAAS,IAAI,gBAAgB,qBAAqB;AAAA,cAChD;AAAA,cACA;AAAA,YACF,CAAC,CAAC;AAAA,UACJ;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,UAAU,eAAe,SAAS,SAAS,CAAC;AAChD,YAAM,aAAa,KAAK,cAAc,GAAG,0BAA0B,cAAc;AACjF,sCAAc,UAAU;AACxB,YAAM,iBAAa,sBAAQ,OAAO;AAAA,QAChC,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF,IAAI,CAAC,cAAc,cAAc,KAAK,CAAC;AACvC,iBAAO,sBAAQ,MAAM,CAAC,iBAAiB,UAAU,GAAY,CAAC,iBAAiB,UAAU,CAAC;AAAA,IAC5F;AAAA,EACF;AACF;;;ALr3CO,IAAM,uBAAsC,uBAAO;AA0FnD,IAAM,mBAAmB,CAAC;AAAA,EAC/B,QAAQ,oBAAAC;AAAA,EACR,QAAQ;AAAA,IACN,aAAa,oBAAAC;AAAA,IACb,aAAa,oBAAAC;AAAA,IACb,UAAU,oBAAAC;AAAA,EACZ;AAAA,EACA,iBAAiB,gBAAAC;AAAA,EACjB,gCAAgC;AAAA,EAChC,GAAG;AACL,IAA6B,CAAC,MAAgC;AAC5D,MAAI,MAAuC;AACzC,UAAM,YAAY,CAAC,eAAe,eAAe,UAAU;AAC3D,QAAI,SAAS;AACb,eAAW,YAAY,WAAW;AAEhC,UAAI,gBAAgB,IAAI,IAAI,GAAG;AAC7B,YAAK,KAA+B,QAAQ,GAAG;AAC7C,cAAI,CAAC,QAAQ;AACX,oBAAQ,KAAK,uKAA4K;AACzL,qBAAS;AAAA,UACX;AAAA,QACF;AAGA,cAAM,QAAQ,IAAI,KAAK,QAAQ;AAAA,MACjC;AAEA,UAAI,OAAO,MAAM,QAAQ,MAAM,YAAY;AACzC,cAAM,IAAI,MAAM,QAAwCC,yBAAwB,EAAE,IAAI,4CAA4C,UAAU,MAAM,+BAA+B,UAAU,KAAK,IAAI,CAAC;AAAA,OAAW,QAAQ,6CAA6C;AAAA,MACvQ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,KAAK;AAAA,MACR;AAAA,IACF,GAAG,SAAS;AACV,YAAM,SAAS;AACf,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,WAAW;AAAA,QACb;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iBAAW,QAAQ;AAAA,QACjB;AAAA,MACF,CAAC;AACD,iBAAW,SAAS;AAAA,QAClB;AAAA,MACF,CAAC;AACD,aAAO;AAAA,QACL,eAAe,cAAc,YAAY;AACvC,cAAI,kBAAkB,UAAU,GAAG;AACjC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,gBAAgB,YAAY;AAChC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,OAAO,IAAI;AACtD,YAAC,IAAY,UAAU,WAAW,YAAY,CAAC,OAAO,IAAI;AAAA,UAC5D;AACA,cAAI,qBAAqB,UAAU,GAAG;AACpC,kBAAM,cAAc,kBAAkB,YAAY;AAClD,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,UAAU,IAAI;AAAA,UAC3D,WAAW,0BAA0B,UAAU,GAAG;AAChD,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,wBAAwB,YAAY;AACxC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,eAAe,IAAI;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AFxMA,0BAAc,mCALd;;;AaAA,IAAAC,kBAAkF;AAGlF,YAAuB;AA8BhB,SAAS,YAAY,OAKzB;AACD,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,sBAAkB,yBAAW,OAAO;AAC1C,MAAI,iBAAiB;AACnB,UAAM,IAAI,MAAM,QAAwCC,yBAAwB,EAAE,IAAI,8GAA8G;AAAA,EACtM;AACA,QAAM,CAAC,KAAK,IAAU,eAAS,UAAM,gCAAe;AAAA,IAClD,SAAS;AAAA,MACP,CAAC,MAAM,IAAI,WAAW,GAAG,MAAM,IAAI;AAAA,IACrC;AAAA,IACA,YAAY,SAAO,IAAI,EAAE,OAAO,MAAM,IAAI,UAAU;AAAA,EACtD,CAAC,CAAC;AAEF,8BAAU,MAAgC,MAAM,mBAAmB,QAAQ,aAAY,6BAAe,MAAM,UAAU,MAAM,cAAc,GAAG,CAAC,MAAM,gBAAgB,MAAM,QAAQ,CAAC;AACnL,SAAO,oCAAC,+BAAS,OAAc,WAC1B,MAAM,QACT;AACJ;;;AbhDA,IAAM,YAA2B,qDAAe,yBAAW,GAAG,iBAAiB,CAAC;","names":["import_toolkit","import_react_redux","arg","options","promise","rrBatch","rrUseDispatch","rrUseSelector","rrUseStore","_createSelector","_formatProdErrorMessage","import_toolkit","_formatProdErrorMessage"]}
Index: de_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.production.min.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.production.min.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-"use strict";var me=Object.create;var G=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var Be=Object.getOwnPropertyNames;var Pe=Object.getPrototypeOf,Ae=Object.prototype.hasOwnProperty;var he=(e,s)=>{for(var f in s)G(e,f,{get:s[f],enumerable:!0})},$=(e,s,f,D)=>{if(s&&typeof s=="object"||typeof s=="function")for(let U of Be(s))!Ae.call(e,U)&&U!==f&&G(e,U,{get:()=>s[U],enumerable:!(D=Se(s,U))||D.enumerable});return e},O=(e,s,f)=>($(e,s,"default"),f&&$(f,s,"default")),Ie=(e,s,f)=>(f=e!=null?me(Pe(e)):{},$(s||!e||!e.__esModule?G(f,"default",{value:e,enumerable:!0}):f,e)),Ue=e=>$(G({},"__esModule",{value:!0}),e);var E={};he(E,{ApiProvider:()=>Re,UNINITIALIZED_VALUE:()=>K,createApi:()=>Ne,reactHooksModule:()=>ye,reactHooksModuleName:()=>ue});module.exports=Ue(E);var d=require("@reduxjs/toolkit/query");var yt=require("@reduxjs/toolkit"),M=require("react-redux"),le=require("reselect");function W(e){return e.replace(e[0],e[0].toUpperCase())}var be="query",Ee="mutation",ke="infinitequery";function fe(e){return e.type===be}function Qe(e){return e.type===Ee}function Z(e){return e.type===ke}function q(e,...s){return Object.assign(e,...s)}var J=require("@reduxjs/toolkit");var t=require("react");var m=require("react-redux");var K=Symbol();function Y(e){let s=(0,t.useRef)(e),f=(0,t.useMemo)(()=>(0,d.copyWithStructuralSharing)(s.current,e),[e]);return(0,t.useEffect)(()=>{s.current!==f&&(s.current=f)},[f]),f}function C(e){let s=(0,t.useRef)(e);return(0,t.useEffect)(()=>{(0,m.shallowEqual)(s.current,e)||(s.current=e)},[e]),(0,m.shallowEqual)(s.current,e)?s.current:e}var Oe=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Me=Oe(),Fe=()=>typeof navigator<"u"&&navigator.product==="ReactNative",we=Fe(),ve=()=>Me||we?t.useLayoutEffect:t.useEffect,Ce=ve(),ce=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:e.data===void 0,status:d.QueryStatus.pending}:e;function se(e,...s){let f={};return s.forEach(D=>{f[D]=e[D]}),f}var ae=["data","status","isLoading","isSuccess","isError","error"];function de({api:e,moduleOptions:{batch:s,hooks:{useDispatch:f,useSelector:D,useStore:U},unstable__sideEffectsInRender:b,createSelector:N},serializeQueryArgs:k,context:L}){let F=b?n=>n():t.useEffect,H=n=>n.current?.unsubscribe?.(),V=L.endpointDefinitions;return{buildQueryHooks:re,buildInfiniteQueryHooks:ge,buildMutationHook:Te,usePrefetch:_};function te(n,a,c){if(a?.endpointName&&n.isUninitialized){let{endpointName:y}=a,p=V[y];c!==d.skipToken&&k({queryArgs:a.originalArgs,endpointDefinition:p,endpointName:y})===k({queryArgs:c,endpointDefinition:p,endpointName:y})&&(a=void 0)}let o=n.isSuccess?n.data:a?.data;o===void 0&&(o=n.data);let u=o!==void 0,r=n.isLoading,i=(!a||a.isLoading||a.isUninitialized)&&!u&&r,Q=n.isSuccess||u&&(r&&!a?.isError||n.isUninitialized);return{...n,data:o,currentData:n.data,isFetching:r,isLoading:i,isSuccess:Q}}function B(n,a,c){if(a?.endpointName&&n.isUninitialized){let{endpointName:y}=a,p=V[y];c!==d.skipToken&&k({queryArgs:a.originalArgs,endpointDefinition:p,endpointName:y})===k({queryArgs:c,endpointDefinition:p,endpointName:y})&&(a=void 0)}let o=n.isSuccess?n.data:a?.data;o===void 0&&(o=n.data);let u=o!==void 0,r=n.isLoading,i=(!a||a.isLoading||a.isUninitialized)&&!u&&r,Q=n.isSuccess||r&&u;return{...n,data:o,currentData:n.data,isFetching:r,isLoading:i,isSuccess:Q}}function _(n,a){let c=f(),o=C(a);return(0,t.useCallback)((u,r)=>c(e.util.prefetch(n,u,{...o,...r})),[n,c,o])}function I(n,a,{refetchOnReconnect:c,refetchOnFocus:o,refetchOnMountOrArgChange:u,skip:r=!1,pollingInterval:i=0,skipPollingIfUnfocused:Q=!1,...y}={}){let{initiate:p}=e.endpoints[n],g=f(),P=(0,t.useRef)(void 0);if(!P.current){let v=g(e.internalActions.internal_getRTKQSubscriptions());P.current=v}let l=Y(r?d.skipToken:a),R=C({refetchOnReconnect:c,refetchOnFocus:o,pollingInterval:i,skipPollingIfUnfocused:Q}),x=y.initialPageParam,T=C(x),A=y.refetchCachedPages,h=C(A),S=(0,t.useRef)(void 0),{queryCacheKey:j,requestId:oe}=S.current||{},pe=!1;j&&oe&&(pe=P.current.isRequestSubscribed(j,oe));let ie=!pe&&S.current!==void 0;return F(()=>{ie&&(S.current=void 0)},[ie]),F(()=>{let v=S.current;if(typeof process<"u",l===d.skipToken){v?.unsubscribe(),S.current=void 0;return}let De=S.current?.subscriptionOptions;if(!v||v.arg!==l){v?.unsubscribe();let xe=g(p(l,{subscriptionOptions:R,forceRefetch:u,...Z(V[n])?{initialPageParam:T,refetchCachedPages:h}:{}}));S.current=xe}else R!==De&&v.updateSubscriptionOptions(R)},[g,p,u,l,R,ie,T,h,n]),[S,g,p,R]}function w(n,a){return(o,{skip:u=!1,selectFromResult:r}={})=>{let{select:i}=e.endpoints[n],Q=Y(u?d.skipToken:o),y=(0,t.useRef)(void 0),p=(0,t.useMemo)(()=>N([i(Q),(x,T)=>T,x=>Q],a,{memoizeOptions:{resultEqualityCheck:m.shallowEqual}}),[i,Q]),g=(0,t.useMemo)(()=>r?N([p],r,{devModeChecks:{identityFunctionCheck:"never"}}):p,[p,r]),P=D(x=>g(x,y.current),m.shallowEqual),l=U(),R=p(l.getState(),y.current);return Ce(()=>{y.current=R},[R]),P}}function z(n){(0,t.useEffect)(()=>()=>{H(n),n.current=void 0},[n])}function ne(n){if(!n.current)throw new Error((0,J.formatProdErrorMessage)(38));return n.current.refetch()}function re(n){let a=(u,r={})=>{let[i]=I(n,u,r);return z(i),(0,t.useMemo)(()=>({refetch:()=>ne(i)}),[i])},c=({refetchOnReconnect:u,refetchOnFocus:r,pollingInterval:i=0,skipPollingIfUnfocused:Q=!1}={})=>{let{initiate:y}=e.endpoints[n],p=f(),[g,P]=(0,t.useState)(K),l=(0,t.useRef)(void 0),R=C({refetchOnReconnect:u,refetchOnFocus:r,pollingInterval:i,skipPollingIfUnfocused:Q});F(()=>{let h=l.current?.subscriptionOptions;R!==h&&l.current?.updateSubscriptionOptions(R)},[R]);let x=(0,t.useRef)(R);F(()=>{x.current=R},[R]);let T=(0,t.useCallback)(function(h,S=!1){let j;return s(()=>{H(l),l.current=j=p(y(h,{subscriptionOptions:x.current,forceRefetch:!S})),P(h)}),j},[p,y]),A=(0,t.useCallback)(()=>{l.current?.queryCacheKey&&p(e.internalActions.removeQueryResult({queryCacheKey:l.current?.queryCacheKey}))},[p]);return(0,t.useEffect)(()=>()=>{H(l)},[]),(0,t.useEffect)(()=>{g!==K&&!l.current&&T(g,!0)},[g,T]),(0,t.useMemo)(()=>[T,g,{reset:A}],[T,g,A])},o=w(n,te);return{useQueryState:o,useQuerySubscription:a,useLazyQuerySubscription:c,useLazyQuery(u){let[r,i,{reset:Q}]=c(u),y=o(i,{...u,skip:i===K}),p=(0,t.useMemo)(()=>({lastArg:i}),[i]);return(0,t.useMemo)(()=>[r,{...y,reset:Q},p],[r,y,Q,p])},useQuery(u,r){let i=a(u,r),Q=o(u,{selectFromResult:u===d.skipToken||r?.skip?void 0:ce,...r}),y=se(Q,...ae);return(0,t.useDebugValue)(y),(0,t.useMemo)(()=>({...Q,...i}),[Q,i])}}}function ge(n){let a=(o,u={})=>{let[r,i,Q,y]=I(n,o,u),p=(0,t.useRef)(y);F(()=>{p.current=y},[y]);let g=u.refetchCachedPages,P=C(g),l=(0,t.useCallback)(function(T,A){let h;return s(()=>{H(r),r.current=h=i(Q(T,{subscriptionOptions:p.current,direction:A}))}),h},[r,i,Q]);z(r);let R=Y(u.skip?d.skipToken:o),x=(0,t.useCallback)(T=>{if(!r.current)throw new Error((0,J.formatProdErrorMessage)(38));let A={refetchCachedPages:T?.refetchCachedPages??P};return r.current.refetch(A)},[r,P]);return(0,t.useMemo)(()=>({trigger:l,refetch:x,fetchNextPage:()=>l(R,"forward"),fetchPreviousPage:()=>l(R,"backward")}),[x,l,R])},c=w(n,B);return{useInfiniteQueryState:c,useInfiniteQuerySubscription:a,useInfiniteQuery(o,u){let{refetch:r,fetchNextPage:i,fetchPreviousPage:Q}=a(o,u),y=c(o,{selectFromResult:o===d.skipToken||u?.skip?void 0:ce,...u}),p=se(y,...ae,"hasNextPage","hasPreviousPage");return(0,t.useDebugValue)(p),(0,t.useMemo)(()=>({...y,fetchNextPage:i,fetchPreviousPage:Q,refetch:r}),[y,i,Q,r])}}}function Te(n){return({selectFromResult:a,fixedCacheKey:c}={})=>{let{select:o,initiate:u}=e.endpoints[n],r=f(),[i,Q]=(0,t.useState)();(0,t.useEffect)(()=>()=>{i?.arg.fixedCacheKey||i?.reset()},[i]);let y=(0,t.useCallback)(function(h){let S=r(u(h,{fixedCacheKey:c}));return Q(S),S},[r,u,c]),{requestId:p}=i||{},g=(0,t.useMemo)(()=>o({fixedCacheKey:c,requestId:i?.requestId}),[c,i,o]),P=(0,t.useMemo)(()=>a?N([g],a):g,[a,g]),l=D(P,m.shallowEqual),R=c==null?i?.arg.originalArgs:void 0,x=(0,t.useCallback)(()=>{s(()=>{i&&Q(void 0),c&&r(e.internalActions.removeMutationResult({requestId:p,fixedCacheKey:c}))})},[r,c,i,p]),T=se(l,...ae,"endpointName");(0,t.useDebugValue)(T);let A=(0,t.useMemo)(()=>({...l,originalArgs:R,reset:x}),[l,R,x]);return(0,t.useMemo)(()=>[y,A],[y,A])}}}var ue=Symbol(),ye=({batch:e=M.batch,hooks:s={useDispatch:M.useDispatch,useSelector:M.useSelector,useStore:M.useStore},createSelector:f=le.createSelector,unstable__sideEffectsInRender:D=!1,...U}={})=>({name:ue,init(b,{serializeQueryArgs:N},k){let L=b,{buildQueryHooks:F,buildInfiniteQueryHooks:H,buildMutationHook:V,usePrefetch:te}=de({api:b,moduleOptions:{batch:e,hooks:s,unstable__sideEffectsInRender:D,createSelector:f},serializeQueryArgs:N,context:k});return q(L,{usePrefetch:te}),q(k,{batch:e}),{injectEndpoint(B,_){if(fe(_)){let{useQuery:I,useLazyQuery:w,useLazyQuerySubscription:z,useQueryState:ne,useQuerySubscription:re}=F(B);q(L.endpoints[B],{useQuery:I,useLazyQuery:w,useLazyQuerySubscription:z,useQueryState:ne,useQuerySubscription:re}),b[`use${W(B)}Query`]=I,b[`useLazy${W(B)}Query`]=w}if(Qe(_)){let I=V(B);q(L.endpoints[B],{useMutation:I}),b[`use${W(B)}Mutation`]=I}else if(Z(_)){let{useInfiniteQuery:I,useInfiniteQuerySubscription:w,useInfiniteQueryState:z}=H(B);q(L.endpoints[B],{useInfiniteQuery:I,useInfiniteQuerySubscription:w,useInfiniteQueryState:z}),b[`use${W(B)}InfiniteQuery`]=I}}}}});O(E,require("@reduxjs/toolkit/query"),module.exports);var X=require("@reduxjs/toolkit");var ee=Ie(require("react"));function Re(e){let s=e.context||m.ReactReduxContext;if((0,t.useContext)(s))throw new Error((0,X.formatProdErrorMessage)(35));let[D]=ee.useState(()=>(0,X.configureStore)({reducer:{[e.api.reducerPath]:e.api.reducer},middleware:U=>U().concat(e.api.middleware)}));return(0,t.useEffect)(()=>e.setupListeners===!1?void 0:(0,d.setupListeners)(D.dispatch,e.setupListeners),[e.setupListeners,D.dispatch]),ee.createElement(m.Provider,{store:D,context:s},e.children)}var Ne=(0,d.buildCreateApi)((0,d.coreModule)(),ye());0&&(module.exports={ApiProvider,UNINITIALIZED_VALUE,createApi,reactHooksModule,reactHooksModuleName,...require("@reduxjs/toolkit/query")});
-//# sourceMappingURL=rtk-query-react.production.min.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.production.min.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/cjs/rtk-query-react.production.min.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../../src/query/react/index.ts","../../../../src/query/react/rtkqImports.ts","../../../../src/query/react/module.ts","../../../../src/query/utils/capitalize.ts","../../../../src/query/endpointDefinitions.ts","../../../../src/query/tsHelpers.ts","../../../../src/query/react/buildHooks.ts","../../../../src/query/react/reactImports.ts","../../../../src/query/react/reactReduxImports.ts","../../../../src/query/react/constants.ts","../../../../src/query/react/useSerializedStableValue.ts","../../../../src/query/react/useShallowStableValue.ts","../../../../src/query/react/ApiProvider.tsx"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nimport { buildCreateApi, coreModule } from './rtkqImports';\nimport { reactHooksModule, reactHooksModuleName } from './module';\nexport * from '@reduxjs/toolkit/query';\nexport { ApiProvider } from './ApiProvider';\nconst createApi = /* @__PURE__ */buildCreateApi(coreModule(), reactHooksModule());\nexport type { TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult, TypedUseQuerySubscriptionResult, TypedLazyQueryTrigger, TypedUseLazyQuery, TypedUseMutation, TypedMutationTrigger, TypedQueryStateSelector, TypedUseQueryState, TypedUseQuery, TypedUseQuerySubscription, TypedUseLazyQuerySubscription, TypedUseQueryStateOptions, TypedUseLazyQueryStateResult, TypedUseInfiniteQuery, TypedUseInfiniteQueryHookResult, TypedUseInfiniteQueryStateResult, TypedUseInfiniteQuerySubscriptionResult, TypedUseInfiniteQueryStateOptions, TypedInfiniteQueryStateSelector, TypedUseInfiniteQuerySubscription, TypedUseInfiniteQueryState, TypedLazyInfiniteQueryTrigger } from './buildHooks';\nexport { UNINITIALIZED_VALUE } from './constants';\nexport { createApi, reactHooksModule, reactHooksModuleName };","export { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from '@reduxjs/toolkit/query';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Api, BaseQueryFn, EndpointDefinitions, InfiniteQueryDefinition, Module, MutationDefinition, PrefetchOptions, QueryArgFrom, QueryDefinition, QueryKeys } from '@reduxjs/toolkit/query';\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from 'react-redux';\nimport type { CreateSelectorFunction } from 'reselect';\nimport { createSelector as _createSelector } from 'reselect';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { safeAssign } from '../tsHelpers';\nimport { capitalize, countObjectKeys } from '../utils';\nimport type { InfiniteQueryHooks, MutationHooks, QueryHooks } from './buildHooks';\nimport { buildHooks } from './buildHooks';\nimport type { HooksWithUniqueNames } from './namedHooks';\nexport const reactHooksModuleName = /* @__PURE__ */Symbol();\nexport type ReactHooksModule = typeof reactHooksModuleName;\ndeclare module '@reduxjs/toolkit/query' {\n  export interface ApiModules<\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ReducerPath extends string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  TagTypes extends string> {\n    [reactHooksModuleName]: {\n      /**\n       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\n       */\n      endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never };\n      /**\n       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\n       */\n      usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;\n    } & HooksWithUniqueNames<Definitions>;\n  }\n}\ntype RR = typeof import('react-redux');\nexport interface ReactHooksModuleOptions {\n  /**\n   * The hooks from React Redux to be used\n   */\n  hooks?: {\n    /**\n     * The version of the `useDispatch` hook to be used\n     */\n    useDispatch: RR['useDispatch'];\n    /**\n     * The version of the `useSelector` hook to be used\n     */\n    useSelector: RR['useSelector'];\n    /**\n     * The version of the `useStore` hook to be used\n     */\n    useStore: RR['useStore'];\n  };\n  /**\n   * The version of the `batchedUpdates` function to be used\n   */\n  batch?: RR['batch'];\n  /**\n   * Enables performing asynchronous tasks immediately within a render.\n   *\n   * @example\n   *\n   * ```ts\n   * import {\n   *   buildCreateApi,\n   *   coreModule,\n   *   reactHooksModule\n   * } from '@reduxjs/toolkit/query/react'\n   *\n   * const createApi = buildCreateApi(\n   *   coreModule(),\n   *   reactHooksModule({ unstable__sideEffectsInRender: true })\n   * )\n   * ```\n   */\n  unstable__sideEffectsInRender?: boolean;\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\n *\n *  @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @returns A module for use with `buildCreateApi`\n */\nexport const reactHooksModule = ({\n  batch = rrBatch,\n  hooks = {\n    useDispatch: rrUseDispatch,\n    useSelector: rrUseSelector,\n    useStore: rrUseStore\n  },\n  createSelector = _createSelector,\n  unstable__sideEffectsInRender = false,\n  ...rest\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {\n  if (process.env.NODE_ENV !== 'production') {\n    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const;\n    let warned = false;\n    for (const hookName of hookNames) {\n      // warn for old hook options\n      if (countObjectKeys(rest) > 0) {\n        if ((rest as Partial<typeof hooks>)[hookName]) {\n          if (!warned) {\n            console.warn('As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' + '\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`');\n            warned = true;\n          }\n        }\n        // migrate\n        // @ts-ignore\n        hooks[hookName] = rest[hookName];\n      }\n      // then make sure we have them all\n      if (typeof hooks[hookName] !== 'function') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(', ')}.\\nHook ${hookName} was either not provided or not a function.`);\n      }\n    }\n  }\n  return {\n    name: reactHooksModuleName,\n    init(api, {\n      serializeQueryArgs\n    }, context) {\n      const anyApi = api as any as Api<any, Record<string, any>, any, any, ReactHooksModule>;\n      const {\n        buildQueryHooks,\n        buildInfiniteQueryHooks,\n        buildMutationHook,\n        usePrefetch\n      } = buildHooks({\n        api,\n        moduleOptions: {\n          batch,\n          hooks,\n          unstable__sideEffectsInRender,\n          createSelector\n        },\n        serializeQueryArgs,\n        context\n      });\n      safeAssign(anyApi, {\n        usePrefetch\n      });\n      safeAssign(context, {\n        batch\n      });\n      return {\n        injectEndpoint(endpointName, definition) {\n          if (isQueryDefinition(definition)) {\n            const {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            } = buildQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            });\n            (api as any)[`use${capitalize(endpointName)}Query`] = useQuery;\n            (api as any)[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n          }\n          if (isMutationDefinition(definition)) {\n            const useMutation = buildMutationHook(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useMutation\n            });\n            (api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation;\n          } else if (isInfiniteQueryDefinition(definition)) {\n            const {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            } = buildInfiniteQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            });\n            (api as any)[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n          }\n        }\n      };\n    }\n  };\n};","export function capitalize(str: string) {\n  return str.replace(str[0], str[0].toUpperCase());\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Selector, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Api, ApiContext, ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, BaseQueryFn, CoreModule, EndpointDefinitions, InfiniteQueryActionCreatorResult, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, MutationActionCreatorResult, MutationDefinition, MutationResultSelectorResult, PageParamFrom, PrefetchOptions, QueryActionCreatorResult, QueryArgFrom, QueryCacheKey, QueryDefinition, QueryKeys, QueryResultSelectorResult, QuerySubState, ResultTypeFrom, RootState, SerializeQueryArgs, SkipToken, SubscriptionOptions, TSHelpersId, TSHelpersNoInfer, TSHelpersOverride } from '@reduxjs/toolkit/query';\nimport { QueryStatus, skipToken } from './rtkqImports';\nimport type { DependencyList } from 'react';\nimport { useCallback, useDebugValue, useEffect, useLayoutEffect, useMemo, useRef, useState } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nimport type { SubscriptionSelectors } from '../core/buildMiddleware/index';\nimport type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index';\nimport type { UninitializedValue } from './constants';\nimport { UNINITIALIZED_VALUE } from './constants';\nimport type { ReactHooksModuleOptions } from './module';\nimport { useStableQueryArgs } from './useSerializedStableValue';\nimport { useShallowStableValue } from './useShallowStableValue';\nimport type { InfiniteQueryDirection } from '../core/apiState';\nimport { isInfiniteQueryDefinition } from '../endpointDefinitions';\nimport type { StartInfiniteQueryActionCreator } from '../core/buildInitiate';\n\n// Copy-pasted from React-Redux\nconst canUseDOM = () => !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nconst isDOM = /* @__PURE__ */canUseDOM();\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\nconst isRunningInReactNative = () => typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst isReactNative = /* @__PURE__ */isRunningInReactNative();\nconst getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;\nexport const useIsomorphicLayoutEffect = /* @__PURE__ */getUseIsomorphicLayoutEffect();\nexport type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  useQuery: UseQuery<Definition>;\n  useLazyQuery: UseLazyQuery<Definition>;\n  useQuerySubscription: UseQuerySubscription<Definition>;\n  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;\n  useQueryState: UseQueryState<Definition>;\n};\nexport type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  useInfiniteQuery: UseInfiniteQuery<Definition>;\n  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;\n  useInfiniteQueryState: UseInfiniteQueryState<Definition>;\n};\nexport type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  useMutation: UseMutation<Definition>;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;\nexport type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuery` hook in userland code.\n */\nexport type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;\nexport type UseQuerySubscriptionOptions = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;\nexport type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {\n  lastArg: QueryArgFrom<D>;\n};\n\n/**\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\n *\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n *\n * #### Note\n *\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\n */\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [LazyQueryTrigger<D>, UseLazyQueryStateResult<D, R>, UseLazyQueryLastPromiseInfo<D>];\nexport type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useLazyQuery` hook in userland code.\n */\nexport type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;\n};\nexport type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n */\nexport type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue, {\n  reset: () => void;\n}];\nexport type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryStateSelector} for use with a specific query.\n * This is useful for scenarios where you want to create a \"pre-typed\"\n * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}\n * function.\n *\n * @example\n * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>\n *\n * ```tsx\n * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   title: string\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * type SelectedResult = Pick<PostsApiResponse, 'posts'>\n *\n * const postsApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, QueryArgument>({\n *       query: (limit = 5) => `?limit=${limit}&select=title`,\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = postsApiSlice\n *\n * function PostById({ id }: { id: number }) {\n *   const { post } = useGetPostsQuery(undefined, {\n *     selectFromResult: (state) => ({\n *       post: state.data?.posts.find((post) => post.id === id),\n *     }),\n *   })\n *\n *   return <li>{post?.title}</li>\n * }\n *\n * const EMPTY_ARRAY: Post[] = []\n *\n * const typedSelectFromResult: TypedQueryStateSelector<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   SelectedResult\n * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })\n *\n * function PostsList() {\n *   const { posts } = useGetPostsQuery(undefined, {\n *     selectFromResult: typedSelectFromResult,\n *   })\n *\n *   return (\n *     <div>\n *       <ul>\n *         {posts.map((post) => (\n *           <PostById key={post.id} id={post.id} />\n *         ))}\n *       </ul>\n *     </div>\n *   )\n * }\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.3.0\n * @public\n */\nexport type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;\nexport type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: QueryStateSelector<R, D>;\n};\n\n/**\n * Provides a way to define a \"pre-typed\" version of\n * {@linkcode UseQueryStateOptions} with specific options for a given query.\n * This is particularly useful for setting default query behaviors such as\n * refetching strategies, which can be overridden as needed.\n *\n * @example\n * <caption>#### __Create a `useQuery` hook with default options__</caption>\n *\n * ```ts\n * import type {\n *   SubscriptionOptions,\n *   TypedUseQueryStateOptions,\n * } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   name: string\n * }\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   tagTypes: ['Post'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<Post[], void>({\n *       query: () => 'posts',\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = api\n *\n * export const useGetPostsQueryWithDefaults = <\n *   SelectedResult extends Record<string, any>,\n * >(\n *   overrideOptions: TypedUseQueryStateOptions<\n *     Post[],\n *     void,\n *     ReturnType<typeof fetchBaseQuery>,\n *     SelectedResult\n *   > &\n *     SubscriptionOptions,\n * ) =>\n *   useGetPostsQuery(undefined, {\n *     // Insert default options here\n *\n *     refetchOnMountOrArgChange: true,\n *     refetchOnFocus: true,\n *     ...overrideOptions,\n *   })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArg - The type of the argument passed into the query.\n * @template BaseQuery - The type of the base query function being used.\n * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.2.8\n * @public\n */\nexport type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;\n\n/**\n * Helper type to manually type the result\n * of the `useQueryState` hook in userland code.\n */\nexport type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: ResultTypeFrom<D>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n};\ntype UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}>;\ntype UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n}>;\ntype UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n  currentData: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isError: true;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;\n};\nexport type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  initialPageParam?: PageParamFrom<D>;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   *\n   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).\n   * It can be overridden on a per-call basis using the `refetch()` method.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;\n  trigger: LazyInfiniteQueryTrigger<D>;\n  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;\n  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;\nexport type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.\n *\n * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.\n *\n * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.\n *\n * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.\n *\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;\nexport type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;\nexport type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\nexport type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: InfiniteQueryStateSelector<R, D>;\n};\nexport type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;\nexport type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\ntype UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n};\ntype UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n} | ({\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({\n  isError: true;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;\nexport type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  selectFromResult?: MutationStateSelector<R, D>;\n  fixedCacheKey?: string;\n};\nexport type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {\n  originalArgs?: QueryArgFrom<D>;\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useMutation` hook in userland code.\n */\nexport type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\n\n/**\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\n *\n * #### Features\n *\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];\nexport type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {\n  /**\n   * Triggers the mutation and returns a Promise.\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;\n};\nexport type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\n * We want the initial render to already come back with\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\n * to prevent that the library user has to do an additional check for `isUninitialized`/\n */\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = selected => {\n  if (selected.isUninitialized) {\n    return {\n      ...selected,\n      isUninitialized: false,\n      isFetching: true,\n      isLoading: selected.data !== undefined ? false : true,\n      // This is the one place where we still have to use `QueryStatus` as an enum,\n      // since it's the only reference in the React package and not in the core.\n      status: QueryStatus.pending\n    } as any;\n  }\n  return selected;\n};\nfunction pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n  const ret: any = {};\n  keys.forEach(key => {\n    ret[key] = obj[key];\n  });\n  return ret;\n}\nconst COMMON_HOOK_DEBUG_FIELDS = ['data', 'status', 'isLoading', 'isSuccess', 'isError', 'error'] as const;\ntype GenericPrefetchThunk = (endpointName: any, arg: any, options: PrefetchOptions) => ThunkAction<void, any, any, UnknownAction>;\n\n/**\n *\n * @param opts.api - An API with defined endpoints to create hooks for\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\n * @returns An object containing functions to generate hooks based on an endpoint\n */\nexport function buildHooks<Definitions extends EndpointDefinitions>({\n  api,\n  moduleOptions: {\n    batch,\n    hooks: {\n      useDispatch,\n      useSelector,\n      useStore\n    },\n    unstable__sideEffectsInRender,\n    createSelector\n  },\n  serializeQueryArgs,\n  context\n}: {\n  api: Api<any, Definitions, any, any, CoreModule>;\n  moduleOptions: Required<ReactHooksModuleOptions>;\n  serializeQueryArgs: SerializeQueryArgs<any>;\n  context: ApiContext<Definitions>;\n}) {\n  const usePossiblyImmediateEffect: (effect: () => void | undefined, deps?: DependencyList) => void = unstable__sideEffectsInRender ? cb => cb() : useEffect;\n  type UnsubscribePromiseRef = React.RefObject<{\n    unsubscribe?: () => void;\n  } | undefined>;\n  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) => ref.current?.unsubscribe?.();\n  const endpointDefinitions = context.endpointDefinitions;\n  return {\n    buildQueryHooks,\n    buildInfiniteQueryHooks,\n    buildMutationHook,\n    usePrefetch\n  };\n  function queryStatePreSelector(currentState: QueryResultSelectorResult<any>, lastResult: UseQueryStateDefaultResult<any> | undefined, queryArgs: any): UseQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n\n    // isSuccess = true when data is present and we're not refetching after an error.\n    // That includes cases where the _current_ item is either actively\n    // fetching or about to fetch due to an uninitialized entry.\n    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseQueryStateDefaultResult<any>;\n  }\n  function infiniteQueryStatePreSelector(currentState: InfiniteQueryResultSelectorResult<any>, lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined, queryArgs: any): UseInfiniteQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n    // isSuccess = true when data is present\n    const isSuccess = currentState.isSuccess || isFetching && hasData;\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseInfiniteQueryStateDefaultResult<any>;\n  }\n  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, defaultOptions?: PrefetchOptions) {\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n    const stableDefaultOptions = useShallowStableValue(defaultOptions);\n    return useCallback((arg: any, options?: PrefetchOptions) => dispatch((api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\n      ...stableDefaultOptions,\n      ...options\n    })), [endpointName, dispatch, stableDefaultOptions]);\n  }\n  function useQuerySubscriptionCommonImpl<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(endpointName: string, arg: unknown | SkipToken, {\n    refetchOnReconnect,\n    refetchOnFocus,\n    refetchOnMountOrArgChange,\n    skip = false,\n    pollingInterval = 0,\n    skipPollingIfUnfocused = false,\n    ...rest\n  }: UseQuerySubscriptionOptions = {}) {\n    const {\n      initiate\n    } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n\n    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.\n    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(undefined);\n    if (!subscriptionSelectorsRef.current) {\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n    You must add the middleware for RTK-Query to function correctly!`);\n        }\n      }\n      subscriptionSelectorsRef.current = returnedValue as unknown as SubscriptionSelectors;\n    }\n    const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n    const stableSubscriptionOptions = useShallowStableValue({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval,\n      skipPollingIfUnfocused\n    });\n    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>).initialPageParam;\n    const stableInitialPageParam = useShallowStableValue(initialPageParam);\n    const refetchCachedPages = (rest as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);\n\n    /**\n     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n     */\n    const promiseRef = useRef<T | undefined>(undefined);\n    let {\n      queryCacheKey,\n      requestId\n    } = promiseRef.current || {};\n\n    // HACK We've saved the middleware subscription lookup callbacks into a ref,\n    // so we can directly check here if the subscription exists for this query.\n    let currentRenderHasSubscription = false;\n    if (queryCacheKey && requestId) {\n      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n    }\n    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== undefined;\n    usePossiblyImmediateEffect((): void | undefined => {\n      if (subscriptionRemoved) {\n        promiseRef.current = undefined;\n      }\n    }, [subscriptionRemoved]);\n    usePossiblyImmediateEffect((): void | undefined => {\n      const lastPromise = promiseRef.current;\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'removeMeOnCompilation') {\n        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\n        console.log(subscriptionRemoved);\n      }\n      if (stableArg === skipToken) {\n        lastPromise?.unsubscribe();\n        promiseRef.current = undefined;\n        return;\n      }\n      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n      if (!lastPromise || lastPromise.arg !== stableArg) {\n        lastPromise?.unsubscribe();\n        const promise = dispatch(initiate(stableArg, {\n          subscriptionOptions: stableSubscriptionOptions,\n          forceRefetch: refetchOnMountOrArgChange,\n          ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {\n            initialPageParam: stableInitialPageParam,\n            refetchCachedPages: stableRefetchCachedPages\n          } : {})\n        }));\n        promiseRef.current = promise as T;\n      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n      }\n    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);\n    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const;\n  }\n  function buildUseQueryState(endpointName: string, preSelector: typeof queryStatePreSelector | typeof infiniteQueryStatePreSelector) {\n    const useQueryState = (arg: any, {\n      skip = false,\n      selectFromResult\n    }: UseQueryStateOptions<any, any> | UseInfiniteQueryStateOptions<any, any> = {}) => {\n      const {\n        select\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n      type ApiRootState = Parameters<ReturnType<typeof select>>[0];\n      const lastValue = useRef<any>(undefined);\n      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(() =>\n      // Normally ts-ignores are bad and should be avoided, but we're\n      // already casting this selector to be `Selector<any>` anyway,\n      // so the inconsistencies don't matter here\n      // @ts-ignore\n      createSelector([\n      // @ts-ignore\n      select(stableArg), (_: ApiRootState, lastResult: any) => lastResult, (_: ApiRootState) => stableArg], preSelector, {\n        memoizeOptions: {\n          resultEqualityCheck: shallowEqual\n        }\n      }), [select, stableArg]);\n      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n        devModeChecks: {\n          identityFunctionCheck: 'never'\n        }\n      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n      const currentState = useSelector((state: RootState<Definitions, any, any>) => querySelector(state, lastValue.current), shallowEqual);\n      const store = useStore<RootState<Definitions, any, any>>();\n      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n      useIsomorphicLayoutEffect(() => {\n        lastValue.current = newLastValue;\n      }, [newLastValue]);\n      return currentState;\n    };\n    return useQueryState;\n  }\n  function usePromiseRefUnsubscribeOnUnmount(promiseRef: UnsubscribePromiseRef) {\n    useEffect(() => {\n      return () => {\n        unsubscribePromiseRef(promiseRef)\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        ;\n        (promiseRef.current as any) = undefined;\n      };\n    }, [promiseRef]);\n  }\n  function refetchOrErrorIfUnmounted<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(promiseRef: React.RefObject<T | undefined>): T {\n    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : 'Cannot refetch a query that has not been started yet.');\n    return promiseRef.current.refetch() as T;\n  }\n  function buildQueryHooks(endpointName: string): QueryHooks<any> {\n    const useQuerySubscription: UseQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef] = useQuerySubscriptionCommonImpl<QueryActionCreatorResult<any>>(endpointName, arg, options);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      return useMemo(() => ({\n        /**\n         * A method to manually refetch data for the query\n         */\n        refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n      }), [promiseRef]);\n    };\n    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval = 0,\n      skipPollingIfUnfocused = false\n    } = {}) => {\n      const {\n        initiate\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE);\n\n      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n       */\n      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(undefined);\n      const stableSubscriptionOptions = useShallowStableValue({\n        refetchOnReconnect,\n        refetchOnFocus,\n        pollingInterval,\n        skipPollingIfUnfocused\n      });\n      usePossiblyImmediateEffect(() => {\n        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n        if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n        }\n      }, [stableSubscriptionOptions]);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n      const trigger = useCallback(function (arg: any, preferCacheValue = false) {\n        let promise: QueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch(initiate(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            forceRefetch: !preferCacheValue\n          }));\n          setArg(arg);\n        });\n        return promise!;\n      }, [dispatch, initiate]);\n      const reset = useCallback(() => {\n        if (promiseRef.current?.queryCacheKey) {\n          dispatch(api.internalActions.removeQueryResult({\n            queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey\n          }));\n        }\n      }, [dispatch]);\n\n      /* cleanup on unmount */\n      useEffect(() => {\n        return () => {\n          unsubscribePromiseRef(promiseRef);\n        };\n      }, []);\n\n      /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\n      useEffect(() => {\n        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n          trigger(arg, true);\n        }\n      }, [arg, trigger]);\n      return useMemo(() => [trigger, arg, {\n        reset\n      }] as const, [trigger, arg, reset]);\n    };\n    const useQueryState: UseQueryState<any> = buildUseQueryState(endpointName, queryStatePreSelector);\n    return {\n      useQueryState,\n      useQuerySubscription,\n      useLazyQuerySubscription,\n      useLazyQuery(options) {\n        const [trigger, arg, {\n          reset\n        }] = useLazyQuerySubscription(options);\n        const queryStateResults = useQueryState(arg, {\n          ...options,\n          skip: arg === UNINITIALIZED_VALUE\n        });\n        const info = useMemo(() => ({\n          lastArg: arg\n        }), [arg]);\n        return useMemo(() => [trigger, {\n          ...queryStateResults,\n          reset\n        }, info], [trigger, queryStateResults, reset, info]);\n      },\n      useQuery(arg, options) {\n        const querySubscriptionResults = useQuerySubscription(arg, options);\n        const queryStateResults = useQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          ...querySubscriptionResults\n        }), [queryStateResults, querySubscriptionResults]);\n      }\n    };\n  }\n  function buildInfiniteQueryHooks(endpointName: string): InfiniteQueryHooks<any> {\n    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(endpointName, arg, options);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n\n      // Extract and stabilize the hook-level refetchCachedPages option\n      const hookRefetchCachedPages = (options as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);\n      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(function (arg: unknown, direction: 'forward' | 'backward') {\n        let promise: InfiniteQueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch((initiate as StartInfiniteQueryActionCreator<any>)(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            direction\n          }));\n        });\n        return promise!;\n      }, [promiseRef, dispatch, initiate]);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n      const refetch = useCallback((options?: Pick<UseInfiniteQuerySubscriptionOptions<any>, 'refetchCachedPages'>) => {\n        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(38) : 'Cannot refetch a query that has not been started yet.');\n        // Merge per-call options with hook-level default\n        const mergedOptions = {\n          refetchCachedPages: options?.refetchCachedPages ?? stableHookRefetchCachedPages\n        };\n        return promiseRef.current.refetch(mergedOptions);\n      }, [promiseRef, stableHookRefetchCachedPages]);\n      return useMemo(() => {\n        const fetchNextPage = () => {\n          return trigger(stableArg, 'forward');\n        };\n        const fetchPreviousPage = () => {\n          return trigger(stableArg, 'backward');\n        };\n        return {\n          trigger,\n          /**\n           * A method to manually refetch data for the query\n           */\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        };\n      }, [refetch, trigger, stableArg]);\n    };\n    const useInfiniteQueryState: UseInfiniteQueryState<any> = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n    return {\n      useInfiniteQueryState,\n      useInfiniteQuerySubscription,\n      useInfiniteQuery(arg, options) {\n        const {\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        } = useInfiniteQuerySubscription(arg, options);\n        const queryStateResults = useInfiniteQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, 'hasNextPage', 'hasPreviousPage');\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          fetchNextPage,\n          fetchPreviousPage,\n          refetch\n        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n      }\n    };\n  }\n  function buildMutationHook(name: string): UseMutation<any> {\n    return ({\n      selectFromResult,\n      fixedCacheKey\n    } = {}) => {\n      const {\n        select,\n        initiate\n      } = api.endpoints[name] as ApiEndpointMutation<MutationDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>();\n      useEffect(() => () => {\n        if (!promise?.arg.fixedCacheKey) {\n          promise?.reset();\n        }\n      }, [promise]);\n      const triggerMutation = useCallback(function (arg: Parameters<typeof initiate>['0']) {\n        const promise = dispatch(initiate(arg, {\n          fixedCacheKey\n        }));\n        setPromise(promise);\n        return promise;\n      }, [dispatch, initiate, fixedCacheKey]);\n      const {\n        requestId\n      } = promise || {};\n      const selectDefaultResult = useMemo(() => select({\n        fixedCacheKey,\n        requestId: promise?.requestId\n      }), [fixedCacheKey, promise, select]);\n      const mutationSelector = useMemo((): Selector<RootState<Definitions, any, any>, any> => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n      const currentState = useSelector(mutationSelector, shallowEqual);\n      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : undefined;\n      const reset = useCallback(() => {\n        batch(() => {\n          if (promise) {\n            setPromise(undefined);\n          }\n          if (fixedCacheKey) {\n            dispatch(api.internalActions.removeMutationResult({\n              requestId,\n              fixedCacheKey\n            }));\n          }\n        });\n      }, [dispatch, fixedCacheKey, promise, requestId]);\n      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, 'endpointName');\n      useDebugValue(debugValue);\n      const finalState = useMemo(() => ({\n        ...currentState,\n        originalArgs,\n        reset\n      }), [currentState, originalArgs, reset]);\n      return useMemo(() => [triggerMutation, finalState] as const, [triggerMutation, finalState]);\n    };\n  }\n}","export { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from 'react';","export { shallowEqual, Provider, ReactReduxContext } from 'react-redux';","export const UNINITIALIZED_VALUE = Symbol();\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE;","import { useEffect, useRef, useMemo } from './reactImports';\nimport { copyWithStructuralSharing } from './rtkqImports';\nexport function useStableQueryArgs<T>(queryArgs: T) {\n  const cache = useRef(queryArgs);\n  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n  useEffect(() => {\n    if (cache.current !== copy) {\n      cache.current = copy;\n    }\n  }, [copy]);\n  return copy;\n}","import { useEffect, useRef } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nexport function useShallowStableValue<T>(value: T) {\n  const cache = useRef(value);\n  useEffect(() => {\n    if (!shallowEqual(cache.current, value)) {\n      cache.current = value;\n    }\n  }, [value]);\n  return shallowEqual(cache.current, value) ? cache.current : value;\n}","import { configureStore, formatProdErrorMessage as _formatProdErrorMessage } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport { useContext, useEffect } from './reactImports';\nimport * as React from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { Provider, ReactReduxContext } from './reactReduxImports';\nimport { setupListeners } from './rtkqImports';\nimport type { Api } from '@reduxjs/toolkit/query';\n\n/**\n * Can be used as a `Provider` if you **do not already have a Redux store**.\n *\n * @example\n * ```tsx\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\n * import * as React from 'react';\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\n * import { Pokemon } from './features/Pokemon';\n *\n * function App() {\n *   return (\n *     <ApiProvider api={api}>\n *       <Pokemon />\n *     </ApiProvider>\n *   );\n * }\n * ```\n *\n * @remarks\n * Using this together with an existing redux store, both will\n * conflict with each other - please use the traditional redux setup\n * in that case.\n */\nexport function ApiProvider(props: {\n  children: any;\n  api: Api<any, {}, any, any>;\n  setupListeners?: Parameters<typeof setupListeners>[1] | false;\n  context?: Context<ReactReduxContextValue | null>;\n}) {\n  const context = props.context || ReactReduxContext;\n  const existingContext = useContext(context);\n  if (existingContext) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(35) : 'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.');\n  }\n  const [store] = React.useState(() => configureStore({\n    reducer: {\n      [props.api.reducerPath]: props.api.reducer\n    },\n    middleware: gDM => gDM().concat(props.api.middleware)\n  }));\n  // Adds the event listeners for online/offline/focus/etc\n  useEffect((): undefined | (() => void) => props.setupListeners === false ? undefined : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n  return <Provider store={store} context={context}>\n      {props.children}\n    </Provider>;\n}"],"mappings":"qnBAAA,IAAAA,EAAA,GAAAC,GAAAD,EAAA,iBAAAE,GAAA,wBAAAC,EAAA,cAAAC,GAAA,qBAAAC,GAAA,yBAAAC,KAAA,eAAAC,GAAAP,GCAA,IAAAQ,EAA8G,kCCA9G,IAAAC,GAAkE,4BAElEC,EAAqH,uBAErHC,GAAkD,oBCJ3C,SAASC,EAAWC,EAAa,CACtC,OAAOA,EAAI,QAAQA,EAAI,CAAC,EAAGA,EAAI,CAAC,EAAE,YAAY,CAAC,CACjD,CCuYO,IAAMC,GAAiB,QACjBC,GAAoB,WACpBC,GAAyB,gBA+c/B,SAASC,GAAkB,EAA8G,CAC9I,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAiH,CACpJ,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,EAA0B,EAA2H,CACnK,OAAO,EAAE,OAASH,EACpB,CC91BO,SAASI,EAA6BC,KAAcC,EAAqC,CAC9F,OAAO,OAAO,OAAOD,EAAQ,GAAGC,CAAI,CACtC,CCNA,IAAAC,EAA0K,4BCA1K,IAAAC,EAA8G,iBCA9G,IAAAC,EAA0D,uBCAnD,IAAMC,EAAsB,OAAO,ECEnC,SAASC,EAAsBC,EAAc,CAClD,IAAMC,KAAQ,UAAOD,CAAS,EACxBE,KAAO,WAAQ,OAAM,6BAA0BD,EAAM,QAASD,CAAS,EAAG,CAACA,CAAS,CAAC,EAC3F,sBAAU,IAAM,CACVC,EAAM,UAAYC,IACpBD,EAAM,QAAUC,EAEpB,EAAG,CAACA,CAAI,CAAC,EACFA,CACT,CCTO,SAASC,EAAyBC,EAAU,CACjD,IAAMC,KAAQ,UAAOD,CAAK,EAC1B,sBAAU,IAAM,IACT,gBAAaC,EAAM,QAASD,CAAK,IACpCC,EAAM,QAAUD,EAEpB,EAAG,CAACA,CAAK,CAAC,KACH,gBAAaC,EAAM,QAASD,CAAK,EAAIC,EAAM,QAAUD,CAC9D,CLSA,IAAME,GAAY,IAAS,OAAO,OAAW,KAAe,OAAO,OAAO,SAAa,KAAe,OAAO,OAAO,SAAS,cAAkB,IACzIC,GAAuBD,GAAU,EAIjCE,GAAyB,IAAM,OAAO,UAAc,KAAe,UAAU,UAAY,cACzFC,GAA+BD,GAAuB,EACtDE,GAA+B,IAAMH,IAASE,GAAgB,kBAAkB,YACzEE,GAA2CD,GAA6B,EAq0B/EE,GAA4DC,GAC5DA,EAAS,gBACJ,CACL,GAAGA,EACH,gBAAiB,GACjB,WAAY,GACZ,UAAWA,EAAS,OAAS,OAG7B,OAAQ,cAAY,OACtB,EAEKA,EAET,SAASC,GAA2BC,KAAWC,EAAuB,CACpE,IAAMC,EAAW,CAAC,EAClB,OAAAD,EAAK,QAAQE,GAAO,CAClBD,EAAIC,CAAG,EAAIH,EAAIG,CAAG,CACpB,CAAC,EACMD,CACT,CACA,IAAME,GAA2B,CAAC,OAAQ,SAAU,YAAa,YAAa,UAAW,OAAO,EAWzF,SAASC,GAAoD,CAClE,IAAAC,EACA,cAAe,CACb,MAAAC,EACA,MAAO,CACL,YAAAC,EACA,YAAAC,EACA,SAAAC,CACF,EACA,8BAAAC,EACA,eAAAC,CACF,EACA,mBAAAC,EACA,QAAAC,CACF,EAKG,CACD,IAAMC,EAA8FJ,EAAgCK,GAAMA,EAAG,EAAI,YAI3IC,EAAyBC,GAA+BA,EAAI,SAAS,cAAc,EACnFC,EAAsBL,EAAQ,oBACpC,MAAO,CACL,gBAAAM,GACA,wBAAAC,GACA,kBAAAC,GACA,YAAAC,CACF,EACA,SAASC,GAAsBC,EAA8CC,EAAyDC,EAAiD,CAIrL,GAAID,GAAY,cAAgBD,EAAa,gBAAiB,CAC5D,GAAM,CACJ,aAAAG,CACF,EAAIF,EACEG,EAAqBV,EAAoBS,CAAY,EACvDD,IAAc,aAAad,EAAmB,CAChD,UAAWa,EAAW,aACtB,mBAAAG,EACA,aAAAD,CACF,CAAC,IAAMf,EAAmB,CACxB,UAAAc,EACA,mBAAAE,EACA,aAAAD,CACF,CAAC,IAAGF,EAAa,OACnB,CAGA,IAAII,EAAOL,EAAa,UAAYA,EAAa,KAAOC,GAAY,KAChEI,IAAS,SAAWA,EAAOL,EAAa,MAC5C,IAAMM,EAAUD,IAAS,OAGnBE,EAAaP,EAAa,UAG1BQ,GAAa,CAACP,GAAcA,EAAW,WAAaA,EAAW,kBAAoB,CAACK,GAAWC,EAK/FE,EAAYT,EAAa,WAAaM,IAAYC,GAAc,CAACN,GAAY,SAAWD,EAAa,iBAC3G,MAAO,CACL,GAAGA,EACH,KAAAK,EACA,YAAaL,EAAa,KAC1B,WAAAO,EACA,UAAAC,EACA,UAAAC,CACF,CACF,CACA,SAASC,EAA8BV,EAAsDC,EAAiEC,EAAyD,CAIrN,GAAID,GAAY,cAAgBD,EAAa,gBAAiB,CAC5D,GAAM,CACJ,aAAAG,CACF,EAAIF,EACEG,EAAqBV,EAAoBS,CAAY,EACvDD,IAAc,aAAad,EAAmB,CAChD,UAAWa,EAAW,aACtB,mBAAAG,EACA,aAAAD,CACF,CAAC,IAAMf,EAAmB,CACxB,UAAAc,EACA,mBAAAE,EACA,aAAAD,CACF,CAAC,IAAGF,EAAa,OACnB,CAGA,IAAII,EAAOL,EAAa,UAAYA,EAAa,KAAOC,GAAY,KAChEI,IAAS,SAAWA,EAAOL,EAAa,MAC5C,IAAMM,EAAUD,IAAS,OAGnBE,EAAaP,EAAa,UAE1BQ,GAAa,CAACP,GAAcA,EAAW,WAAaA,EAAW,kBAAoB,CAACK,GAAWC,EAE/FE,EAAYT,EAAa,WAAaO,GAAcD,EAC1D,MAAO,CACL,GAAGN,EACH,KAAAK,EACA,YAAaL,EAAa,KAC1B,WAAAO,EACA,UAAAC,EACA,UAAAC,CACF,CACF,CACA,SAASX,EAAyDK,EAA4BQ,EAAkC,CAC9H,IAAMC,EAAW7B,EAAoD,EAC/D8B,EAAuBC,EAAsBH,CAAc,EACjE,SAAO,eAAY,CAACI,EAAUC,IAA8BJ,EAAU/B,EAAI,KAAK,SAAkCsB,EAAcY,EAAK,CAClI,GAAGF,EACH,GAAGG,CACL,CAAC,CAAC,EAAG,CAACb,EAAcS,EAAUC,CAAoB,CAAC,CACrD,CACA,SAASI,EAAgHd,EAAsBY,EAA0B,CACvK,mBAAAG,EACA,eAAAC,EACA,0BAAAC,EACA,KAAAC,EAAO,GACP,gBAAAC,EAAkB,EAClB,uBAAAC,EAAyB,GACzB,GAAGC,CACL,EAAiC,CAAC,EAAG,CACnC,GAAM,CACJ,SAAAC,CACF,EAAI5C,EAAI,UAAUsB,CAAY,EACxBS,EAAW7B,EAAoD,EAG/D2C,KAA2B,UAA0C,MAAS,EACpF,GAAI,CAACA,EAAyB,QAAS,CACrC,IAAMC,EAAgBf,EAAS/B,EAAI,gBAAgB,8BAA8B,CAAC,EAOlF6C,EAAyB,QAAUC,CACrC,CACA,IAAMC,EAAYC,EAAmBR,EAAO,YAAYN,CAAG,EACrDe,EAA4BhB,EAAsB,CACtD,mBAAAI,EACA,eAAAC,EACA,gBAAAG,EACA,uBAAAC,CACF,CAAC,EACKQ,EAAoBP,EAAkD,iBACtEQ,EAAyBlB,EAAsBiB,CAAgB,EAC/DE,EAAsBT,EAAkD,mBACxEU,EAA2BpB,EAAsBmB,CAAkB,EAKnEE,KAAa,UAAsB,MAAS,EAC9C,CACF,cAAAC,EACA,UAAAC,EACF,EAAIF,EAAW,SAAW,CAAC,EAIvBG,GAA+B,GAC/BF,GAAiBC,KACnBC,GAA+BZ,EAAyB,QAAQ,oBAAoBU,EAAeC,EAAS,GAE9G,IAAME,GAAsB,CAACD,IAAgCH,EAAW,UAAY,OACpF,OAAA7C,EAA2B,IAAwB,CAC7CiD,KACFJ,EAAW,QAAU,OAEzB,EAAG,CAACI,EAAmB,CAAC,EACxBjD,EAA2B,IAAwB,CACjD,IAAMkD,EAAcL,EAAW,QAK/B,GAJI,OAAO,QAAY,IAInBP,IAAc,YAAW,CAC3BY,GAAa,YAAY,EACzBL,EAAW,QAAU,OACrB,MACF,CACA,IAAMM,GAA0BN,EAAW,SAAS,oBACpD,GAAI,CAACK,GAAeA,EAAY,MAAQZ,EAAW,CACjDY,GAAa,YAAY,EACzB,IAAME,GAAU9B,EAASa,EAASG,EAAW,CAC3C,oBAAqBE,EACrB,aAAcV,EACd,GAAIuB,EAA0BjD,EAAoBS,CAAY,CAAC,EAAI,CACjE,iBAAkB6B,EAClB,mBAAoBE,CACtB,EAAI,CAAC,CACP,CAAC,CAAC,EACFC,EAAW,QAAUO,EACvB,MAAWZ,IAA8BW,IACvCD,EAAY,0BAA0BV,CAAyB,CAEnE,EAAG,CAAClB,EAAUa,EAAUL,EAA2BQ,EAAWE,EAA2BS,GAAqBP,EAAwBE,EAA0B/B,CAAY,CAAC,EACtK,CAACgC,EAAYvB,EAAUa,EAAUK,CAAyB,CACnE,CACA,SAASc,EAAmBzC,EAAsB0C,EAAkF,CAoClI,MAnCsB,CAAC9B,EAAU,CAC/B,KAAAM,EAAO,GACP,iBAAAyB,CACF,EAA6E,CAAC,IAAM,CAClF,GAAM,CACJ,OAAAC,CACF,EAAIlE,EAAI,UAAUsB,CAAY,EACxByB,EAAYC,EAAmBR,EAAO,YAAYN,CAAG,EAErDiC,KAAY,UAAY,MAAS,EACjCC,KAA0D,WAAQ,IAKxE9D,EAAe,CAEf4D,EAAOnB,CAAS,EAAG,CAACsB,EAAiBjD,IAAoBA,EAAaiD,GAAoBtB,CAAS,EAAGiB,EAAa,CACjH,eAAgB,CACd,oBAAqB,cACvB,CACF,CAAC,EAAG,CAACE,EAAQnB,CAAS,CAAC,EACjBuB,KAAoD,WAAQ,IAAML,EAAmB3D,EAAe,CAAC8D,CAAmB,EAAGH,EAAkB,CACjJ,cAAe,CACb,sBAAuB,OACzB,CACF,CAAC,EAAIG,EAAqB,CAACA,EAAqBH,CAAgB,CAAC,EAC3D9C,EAAehB,EAAaoE,GAA4CD,EAAcC,EAAOJ,EAAU,OAAO,EAAG,cAAY,EAC7HK,EAAQpE,EAA2C,EACnDqE,EAAeL,EAAoBI,EAAM,SAAS,EAAGL,EAAU,OAAO,EAC5E,OAAA7E,GAA0B,IAAM,CAC9B6E,EAAU,QAAUM,CACtB,EAAG,CAACA,CAAY,CAAC,EACVtD,CACT,CAEF,CACA,SAASuD,EAAkCpB,EAAmC,IAC5E,aAAU,IACD,IAAM,CACX3C,EAAsB2C,CAAU,EAG/BA,EAAW,QAAkB,MAChC,EACC,CAACA,CAAU,CAAC,CACjB,CACA,SAASqB,GAA2GrB,EAA+C,CACjK,GAAI,CAACA,EAAW,QAAS,MAAM,IAAI,SAA8C,EAAAsB,wBAAyB,EAAE,CAA2D,EACvK,OAAOtB,EAAW,QAAQ,QAAQ,CACpC,CACA,SAASxC,GAAgBQ,EAAuC,CAC9D,IAAMuD,EAAkD,CAAC3C,EAAUC,EAAU,CAAC,IAAM,CAClF,GAAM,CAACmB,CAAU,EAAIlB,EAA8Dd,EAAcY,EAAKC,CAAO,EAC7G,OAAAuC,EAAkCpB,CAAU,KACrC,WAAQ,KAAO,CAIpB,QAAS,IAAMqB,GAA0BrB,CAAU,CACrD,GAAI,CAACA,CAAU,CAAC,CAClB,EACMwB,EAA0D,CAAC,CAC/D,mBAAAzC,EACA,eAAAC,EACA,gBAAAG,EAAkB,EAClB,uBAAAC,EAAyB,EAC3B,EAAI,CAAC,IAAM,CACT,GAAM,CACJ,SAAAE,CACF,EAAI5C,EAAI,UAAUsB,CAAY,EACxBS,EAAW7B,EAAoD,EAC/D,CAACgC,EAAK6C,CAAM,KAAI,YAAcC,CAAmB,EAMjD1B,KAAa,UAAkD,MAAS,EACxEL,EAA4BhB,EAAsB,CACtD,mBAAAI,EACA,eAAAC,EACA,gBAAAG,EACA,uBAAAC,CACF,CAAC,EACDjC,EAA2B,IAAM,CAC/B,IAAMmD,EAA0BN,EAAW,SAAS,oBAChDL,IAA8BW,GAChCN,EAAW,SAAS,0BAA0BL,CAAyB,CAE3E,EAAG,CAACA,CAAyB,CAAC,EAC9B,IAAMgC,KAAyB,UAAOhC,CAAyB,EAC/DxC,EAA2B,IAAM,CAC/BwE,EAAuB,QAAUhC,CACnC,EAAG,CAACA,CAAyB,CAAC,EAC9B,IAAMiC,KAAU,eAAY,SAAUhD,EAAUiD,EAAmB,GAAO,CACxE,IAAItB,EACJ,OAAA5D,EAAM,IAAM,CACVU,EAAsB2C,CAAU,EAChCA,EAAW,QAAUO,EAAU9B,EAASa,EAASV,EAAK,CACpD,oBAAqB+C,EAAuB,QAC5C,aAAc,CAACE,CACjB,CAAC,CAAC,EACFJ,EAAO7C,CAAG,CACZ,CAAC,EACM2B,CACT,EAAG,CAAC9B,EAAUa,CAAQ,CAAC,EACjBwC,KAAQ,eAAY,IAAM,CAC1B9B,EAAW,SAAS,eACtBvB,EAAS/B,EAAI,gBAAgB,kBAAkB,CAC7C,cAAesD,EAAW,SAAS,aACrC,CAAC,CAAC,CAEN,EAAG,CAACvB,CAAQ,CAAC,EAGb,sBAAU,IACD,IAAM,CACXpB,EAAsB2C,CAAU,CAClC,EACC,CAAC,CAAC,KAGL,aAAU,IAAM,CACVpB,IAAQ8C,GAAuB,CAAC1B,EAAW,SAC7C4B,EAAQhD,EAAK,EAAI,CAErB,EAAG,CAACA,EAAKgD,CAAO,CAAC,KACV,WAAQ,IAAM,CAACA,EAAShD,EAAK,CAClC,MAAAkD,CACF,CAAC,EAAY,CAACF,EAAShD,EAAKkD,CAAK,CAAC,CACpC,EACMC,EAAoCtB,EAAmBzC,EAAcJ,EAAqB,EAChG,MAAO,CACL,cAAAmE,EACA,qBAAAR,EACA,yBAAAC,EACA,aAAa3C,EAAS,CACpB,GAAM,CAAC+C,EAAShD,EAAK,CACnB,MAAAkD,CACF,CAAC,EAAIN,EAAyB3C,CAAO,EAC/BmD,EAAoBD,EAAcnD,EAAK,CAC3C,GAAGC,EACH,KAAMD,IAAQ8C,CAChB,CAAC,EACKO,KAAO,WAAQ,KAAO,CAC1B,QAASrD,CACX,GAAI,CAACA,CAAG,CAAC,EACT,SAAO,WAAQ,IAAM,CAACgD,EAAS,CAC7B,GAAGI,EACH,MAAAF,CACF,EAAGG,CAAI,EAAG,CAACL,EAASI,EAAmBF,EAAOG,CAAI,CAAC,CACrD,EACA,SAASrD,EAAKC,EAAS,CACrB,IAAMqD,EAA2BX,EAAqB3C,EAAKC,CAAO,EAC5DmD,EAAoBD,EAAcnD,EAAK,CAC3C,iBAAkBA,IAAQ,aAAaC,GAAS,KAAO,OAAY5C,GACnE,GAAG4C,CACL,CAAC,EACKsD,EAAahG,GAAK6F,EAAmB,GAAGxF,EAAwB,EACtE,0BAAc2F,CAAU,KACjB,WAAQ,KAAO,CACpB,GAAGH,EACH,GAAGE,CACL,GAAI,CAACF,EAAmBE,CAAwB,CAAC,CACnD,CACF,CACF,CACA,SAASzE,GAAwBO,EAA+C,CAC9E,IAAMoE,EAAkE,CAACxD,EAAUC,EAAU,CAAC,IAAM,CAClG,GAAM,CAACmB,EAAYvB,EAAUa,EAAUK,CAAyB,EAAIb,EAAsEd,EAAcY,EAAKC,CAAO,EAC9J8C,KAAyB,UAAOhC,CAAyB,EAC/DxC,EAA2B,IAAM,CAC/BwE,EAAuB,QAAUhC,CACnC,EAAG,CAACA,CAAyB,CAAC,EAG9B,IAAM0C,EAA0BxD,EAAqD,mBAC/EyD,EAA+B3D,EAAsB0D,CAAsB,EAC3ET,KAAyC,eAAY,SAAUhD,EAAc2D,EAAmC,CACpH,IAAIhC,EACJ,OAAA5D,EAAM,IAAM,CACVU,EAAsB2C,CAAU,EAChCA,EAAW,QAAUO,EAAU9B,EAAUa,EAAkDV,EAAK,CAC9F,oBAAqB+C,EAAuB,QAC5C,UAAAY,CACF,CAAC,CAAC,CACJ,CAAC,EACMhC,CACT,EAAG,CAACP,EAAYvB,EAAUa,CAAQ,CAAC,EACnC8B,EAAkCpB,CAAU,EAC5C,IAAMP,EAAYC,EAAmBb,EAAQ,KAAO,YAAYD,CAAG,EAC7D4D,KAAU,eAAa3D,GAAmF,CAC9G,GAAI,CAACmB,EAAW,QAAS,MAAM,IAAI,SAA8C,EAAAyC,wBAAyB,EAAE,CAA2D,EAEvK,IAAMC,EAAgB,CACpB,mBAAoB7D,GAAS,oBAAsByD,CACrD,EACA,OAAOtC,EAAW,QAAQ,QAAQ0C,CAAa,CACjD,EAAG,CAAC1C,EAAYsC,CAA4B,CAAC,EAC7C,SAAO,WAAQ,KAON,CACL,QAAAV,EAIA,QAAAY,EACA,cAZoB,IACbZ,EAAQnC,EAAW,SAAS,EAYnC,kBAVwB,IACjBmC,EAAQnC,EAAW,UAAU,CAUtC,GACC,CAAC+C,EAASZ,EAASnC,CAAS,CAAC,CAClC,EACMkD,EAAoDlC,EAAmBzC,EAAcO,CAA6B,EACxH,MAAO,CACL,sBAAAoE,EACA,6BAAAP,EACA,iBAAiBxD,EAAKC,EAAS,CAC7B,GAAM,CACJ,QAAA2D,EACA,cAAAI,EACA,kBAAAC,CACF,EAAIT,EAA6BxD,EAAKC,CAAO,EACvCmD,EAAoBW,EAAsB/D,EAAK,CACnD,iBAAkBA,IAAQ,aAAaC,GAAS,KAAO,OAAY5C,GACnE,GAAG4C,CACL,CAAC,EACKsD,EAAahG,GAAK6F,EAAmB,GAAGxF,GAA0B,cAAe,iBAAiB,EACxG,0BAAc2F,CAAU,KACjB,WAAQ,KAAO,CACpB,GAAGH,EACH,cAAAY,EACA,kBAAAC,EACA,QAAAL,CACF,GAAI,CAACR,EAAmBY,EAAeC,EAAmBL,CAAO,CAAC,CACpE,CACF,CACF,CACA,SAAS9E,GAAkBoF,EAAgC,CACzD,MAAO,CAAC,CACN,iBAAAnC,EACA,cAAAoC,CACF,EAAI,CAAC,IAAM,CACT,GAAM,CACJ,OAAAnC,EACA,SAAAtB,CACF,EAAI5C,EAAI,UAAUoG,CAAI,EAChBrE,EAAW7B,EAAoD,EAC/D,CAAC2D,EAASyC,CAAU,KAAI,YAA2C,KACzE,aAAU,IAAM,IAAM,CACfzC,GAAS,IAAI,eAChBA,GAAS,MAAM,CAEnB,EAAG,CAACA,CAAO,CAAC,EACZ,IAAM0C,KAAkB,eAAY,SAAUrE,EAAuC,CACnF,IAAM2B,EAAU9B,EAASa,EAASV,EAAK,CACrC,cAAAmE,CACF,CAAC,CAAC,EACF,OAAAC,EAAWzC,CAAO,EACXA,CACT,EAAG,CAAC9B,EAAUa,EAAUyD,CAAa,CAAC,EAChC,CACJ,UAAA7C,CACF,EAAIK,GAAW,CAAC,EACVO,KAAsB,WAAQ,IAAMF,EAAO,CAC/C,cAAAmC,EACA,UAAWxC,GAAS,SACtB,CAAC,EAAG,CAACwC,EAAexC,EAASK,CAAM,CAAC,EAC9BsC,KAAmB,WAAQ,IAAuDvC,EAAmB3D,EAAe,CAAC8D,CAAmB,EAAGH,CAAgB,EAAIG,EAAqB,CAACH,EAAkBG,CAAmB,CAAC,EAC3NjD,EAAehB,EAAYqG,EAAkB,cAAY,EACzDC,EAAeJ,GAAiB,KAAOxC,GAAS,IAAI,aAAe,OACnEuB,KAAQ,eAAY,IAAM,CAC9BnF,EAAM,IAAM,CACN4D,GACFyC,EAAW,MAAS,EAElBD,GACFtE,EAAS/B,EAAI,gBAAgB,qBAAqB,CAChD,UAAAwD,EACA,cAAA6C,CACF,CAAC,CAAC,CAEN,CAAC,CACH,EAAG,CAACtE,EAAUsE,EAAexC,EAASL,CAAS,CAAC,EAC1CiC,EAAahG,GAAK0B,EAAc,GAAGrB,GAA0B,cAAc,KACjF,iBAAc2F,CAAU,EACxB,IAAMiB,KAAa,WAAQ,KAAO,CAChC,GAAGvF,EACH,aAAAsF,EACA,MAAArB,CACF,GAAI,CAACjE,EAAcsF,EAAcrB,CAAK,CAAC,EACvC,SAAO,WAAQ,IAAM,CAACmB,EAAiBG,CAAU,EAAY,CAACH,EAAiBG,CAAU,CAAC,CAC5F,CACF,CACF,CJr3CO,IAAMC,GAAsC,OAAO,EA0F7CC,GAAmB,CAAC,CAC/B,MAAAC,EAAQ,EAAAC,MACR,MAAAC,EAAQ,CACN,YAAa,EAAAC,YACb,YAAa,EAAAC,YACb,SAAU,EAAAC,QACZ,EACA,eAAAC,EAAiB,GAAAC,eACjB,8BAAAC,EAAgC,GAChC,GAAGC,CACL,EAA6B,CAAC,KAuBrB,CACL,KAAMX,GACN,KAAKY,EAAK,CACR,mBAAAC,CACF,EAAGC,EAAS,CACV,IAAMC,EAASH,EACT,CACJ,gBAAAI,EACA,wBAAAC,EACA,kBAAAC,EACA,YAAAC,EACF,EAAIC,GAAW,CACb,IAAAR,EACA,cAAe,CACb,MAAAV,EACA,MAAAE,EACA,8BAAAM,EACA,eAAAF,CACF,EACA,mBAAAK,EACA,QAAAC,CACF,CAAC,EACD,OAAAO,EAAWN,EAAQ,CACjB,YAAAI,EACF,CAAC,EACDE,EAAWP,EAAS,CAClB,MAAAZ,CACF,CAAC,EACM,CACL,eAAeoB,EAAcC,EAAY,CACvC,GAAIC,GAAkBD,CAAU,EAAG,CACjC,GAAM,CACJ,SAAAE,EACA,aAAAC,EACA,yBAAAC,EACA,cAAAC,GACA,qBAAAC,EACF,EAAIb,EAAgBM,CAAY,EAChCD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,SAAAG,EACA,aAAAC,EACA,yBAAAC,EACA,cAAAC,GACA,qBAAAC,EACF,CAAC,EACAjB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,OAAO,EAAIG,EACrDb,EAAY,UAAUkB,EAAWR,CAAY,CAAC,OAAO,EAAII,CAC5D,CACA,GAAIK,GAAqBR,CAAU,EAAG,CACpC,IAAMS,EAAcd,EAAkBI,CAAY,EAClDD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,YAAAU,CACF,CAAC,EACApB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,UAAU,EAAIU,CAC3D,SAAWC,EAA0BV,CAAU,EAAG,CAChD,GAAM,CACJ,iBAAAW,EACA,6BAAAC,EACA,sBAAAC,CACF,EAAInB,EAAwBK,CAAY,EACxCD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,iBAAAY,EACA,6BAAAC,EACA,sBAAAC,CACF,CAAC,EACAxB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,eAAe,EAAIY,CAChE,CACF,CACF,CACF,CACF,GFvMFG,EAAAC,EAAc,kCALd,gBYAA,IAAAC,EAAkF,4BAGlF,IAAAC,GAAuB,qBA8BhB,SAASC,GAAYC,EAKzB,CACD,IAAMC,EAAUD,EAAM,SAAW,oBAEjC,MADwB,cAAWC,CAAO,EAExC,MAAM,IAAI,SAA8C,EAAAC,wBAAwB,EAAE,CAAkH,EAEtM,GAAM,CAACC,CAAK,EAAU,YAAS,OAAM,kBAAe,CAClD,QAAS,CACP,CAACH,EAAM,IAAI,WAAW,EAAGA,EAAM,IAAI,OACrC,EACA,WAAYI,GAAOA,EAAI,EAAE,OAAOJ,EAAM,IAAI,UAAU,CACtD,CAAC,CAAC,EAEF,sBAAU,IAAgCA,EAAM,iBAAmB,GAAQ,UAAY,kBAAeG,EAAM,SAAUH,EAAM,cAAc,EAAG,CAACA,EAAM,eAAgBG,EAAM,QAAQ,CAAC,EAC5K,iBAAC,YAAS,MAAOA,EAAO,QAASF,GACnCD,EAAM,QACT,CACJ,CZhDA,IAAMK,MAA2B,qBAAe,cAAW,EAAGC,GAAiB,CAAC","names":["react_exports","__export","ApiProvider","UNINITIALIZED_VALUE","createApi","reactHooksModule","reactHooksModuleName","__toCommonJS","import_query","import_toolkit","import_react_redux","import_reselect","capitalize","str","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","safeAssign","target","args","import_toolkit","import_react","import_react_redux","UNINITIALIZED_VALUE","useStableQueryArgs","queryArgs","cache","copy","useShallowStableValue","value","cache","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","useIsomorphicLayoutEffect","noPendingQueryStateSelector","selected","pick","obj","keys","ret","key","COMMON_HOOK_DEBUG_FIELDS","buildHooks","api","batch","useDispatch","useSelector","useStore","unstable__sideEffectsInRender","createSelector","serializeQueryArgs","context","usePossiblyImmediateEffect","cb","unsubscribePromiseRef","ref","endpointDefinitions","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","queryStatePreSelector","currentState","lastResult","queryArgs","endpointName","endpointDefinition","data","hasData","isFetching","isLoading","isSuccess","infiniteQueryStatePreSelector","defaultOptions","dispatch","stableDefaultOptions","useShallowStableValue","arg","options","useQuerySubscriptionCommonImpl","refetchOnReconnect","refetchOnFocus","refetchOnMountOrArgChange","skip","pollingInterval","skipPollingIfUnfocused","rest","initiate","subscriptionSelectorsRef","returnedValue","stableArg","useStableQueryArgs","stableSubscriptionOptions","initialPageParam","stableInitialPageParam","refetchCachedPages","stableRefetchCachedPages","promiseRef","queryCacheKey","requestId","currentRenderHasSubscription","subscriptionRemoved","lastPromise","lastSubscriptionOptions","promise","isInfiniteQueryDefinition","buildUseQueryState","preSelector","selectFromResult","select","lastValue","selectDefaultResult","_","querySelector","state","store","newLastValue","usePromiseRefUnsubscribeOnUnmount","refetchOrErrorIfUnmounted","_formatProdErrorMessage2","useQuerySubscription","useLazyQuerySubscription","setArg","UNINITIALIZED_VALUE","subscriptionOptionsRef","trigger","preferCacheValue","reset","useQueryState","queryStateResults","info","querySubscriptionResults","debugValue","useInfiniteQuerySubscription","hookRefetchCachedPages","stableHookRefetchCachedPages","direction","refetch","_formatProdErrorMessage3","mergedOptions","useInfiniteQueryState","fetchNextPage","fetchPreviousPage","name","fixedCacheKey","setPromise","triggerMutation","mutationSelector","originalArgs","finalState","reactHooksModuleName","reactHooksModule","batch","rrBatch","hooks","rrUseDispatch","rrUseSelector","rrUseStore","createSelector","_createSelector","unstable__sideEffectsInRender","rest","api","serializeQueryArgs","context","anyApi","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","buildHooks","safeAssign","endpointName","definition","isQueryDefinition","useQuery","useLazyQuery","useLazyQuerySubscription","useQueryState","useQuerySubscription","capitalize","isMutationDefinition","useMutation","isInfiniteQueryDefinition","useInfiniteQuery","useInfiniteQuerySubscription","useInfiniteQueryState","__reExport","react_exports","import_toolkit","React","ApiProvider","props","context","_formatProdErrorMessage","store","gDM","createApi","reactHooksModule"]}
Index: de_modules/@reduxjs/toolkit/dist/query/react/index.d.mts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,980 +1,0 @@
-import * as _reduxjs_toolkit_query from '@reduxjs/toolkit/query';
-import { QueryDefinition, TSHelpersId, TSHelpersOverride, QuerySubState, ResultTypeFrom, QueryStatus, QueryArgFrom, SkipToken, SubscriptionOptions, TSHelpersNoInfer, QueryActionCreatorResult, MutationDefinition, MutationResultSelectorResult, MutationActionCreatorResult, InfiniteQueryDefinition, InfiniteQuerySubState, PageParamFrom, InfiniteQueryArgFrom, InfiniteQueryActionCreatorResult, BaseQueryFn, EndpointDefinitions, DefinitionType, QueryKeys, PrefetchOptions, Module, Api, setupListeners } from '@reduxjs/toolkit/query';
-export * from '@reduxjs/toolkit/query';
-import * as react_redux from 'react-redux';
-import { ReactReduxContextValue } from 'react-redux';
-import { CreateSelectorFunction } from 'reselect';
-import * as React from 'react';
-import { Context } from 'react';
-
-type InfiniteData<DataType, PageParam> = {
-    pages: Array<DataType>;
-    pageParams: Array<PageParam>;
-};
-type InfiniteQueryDirection = 'forward' | 'backward';
-
-export declare const UNINITIALIZED_VALUE: unique symbol;
-type UninitializedValue = typeof UNINITIALIZED_VALUE;
-
-type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {
-    useQuery: UseQuery<Definition>;
-    useLazyQuery: UseLazyQuery<Definition>;
-    useQuerySubscription: UseQuerySubscription<Definition>;
-    useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;
-    useQueryState: UseQueryState<Definition>;
-};
-type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    useInfiniteQuery: UseInfiniteQuery<Definition>;
-    useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;
-    useInfiniteQueryState: UseInfiniteQueryState<Definition>;
-};
-type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {
-    useMutation: UseMutation<Definition>;
-};
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;
-type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;
-/**
- * Helper type to manually type the result
- * of the `useQuery` hook in userland code.
- */
-type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;
-type UseQuerySubscriptionOptions = SubscriptionOptions & {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When `skip` is true (or `skipToken` is passed in as `arg`):
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```tsx
-     * // codeblock-meta no-transpile title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-};
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;
-type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {
-    lastArg: QueryArgFrom<D>;
-};
-/**
- * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.
- *
- * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- *
- * #### Note
- *
- * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.
- */
-type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [
-    LazyQueryTrigger<D>,
-    UseLazyQueryStateResult<D, R>,
-    UseLazyQueryLastPromiseInfo<D>
-];
-type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {
-    /**
-     * Resets the hook state to its initial `uninitialized` state.
-     * This will also remove the last result from the cache.
-     */
-    reset: () => void;
-};
-/**
- * Helper type to manually type the result
- * of the `useLazyQuery` hook in userland code.
- */
-type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;
-type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {
-    /**
-     * Triggers a lazy query.
-     *
-     * By default, this will start a new request even if there is already a value in the cache.
-     * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await getUserById(1).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;
-};
-type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- */
-type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [
-    LazyQueryTrigger<D>,
-    QueryArgFrom<D> | UninitializedValue,
-    {
-        reset: () => void;
-    }
-];
-type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * @internal
- */
-type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryStateSelector} for use with a specific query.
- * This is useful for scenarios where you want to create a "pre-typed"
- * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}
- * function.
- *
- * @example
- * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>
- *
- * ```tsx
- * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   title: string
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * type SelectedResult = Pick<PostsApiResponse, 'posts'>
- *
- * const postsApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, QueryArgument>({
- *       query: (limit = 5) => `?limit=${limit}&select=title`,
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = postsApiSlice
- *
- * function PostById({ id }: { id: number }) {
- *   const { post } = useGetPostsQuery(undefined, {
- *     selectFromResult: (state) => ({
- *       post: state.data?.posts.find((post) => post.id === id),
- *     }),
- *   })
- *
- *   return <li>{post?.title}</li>
- * }
- *
- * const EMPTY_ARRAY: Post[] = []
- *
- * const typedSelectFromResult: TypedQueryStateSelector<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   SelectedResult
- * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })
- *
- * function PostsList() {
- *   const { posts } = useGetPostsQuery(undefined, {
- *     selectFromResult: typedSelectFromResult,
- *   })
- *
- *   return (
- *     <div>
- *       <ul>
- *         {posts.map((post) => (
- *           <PostById key={post.id} id={post.id} />
- *         ))}
- *       </ul>
- *     </div>
- *   )
- * }
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.3.0
- * @public
- */
-type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;
-type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * @internal
- */
-type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When skip is true:
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-     * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-     * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using selectFromResult to extract a single result"
-     * function PostsList() {
-     *   const { data: posts } = api.useGetPostsQuery();
-     *
-     *   return (
-     *     <ul>
-     *       {posts?.data?.map((post) => (
-     *         <PostById key={post.id} id={post.id} />
-     *       ))}
-     *     </ul>
-     *   );
-     * }
-     *
-     * function PostById({ id }: { id: number }) {
-     *   // Will select the post with the given id, and will only rerender if the given posts data changes
-     *   const { post } = api.useGetPostsQuery(undefined, {
-     *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-     *   });
-     *
-     *   return <li>{post?.name}</li>;
-     * }
-     * ```
-     */
-    selectFromResult?: QueryStateSelector<R, D>;
-};
-/**
- * Provides a way to define a "pre-typed" version of
- * {@linkcode UseQueryStateOptions} with specific options for a given query.
- * This is particularly useful for setting default query behaviors such as
- * refetching strategies, which can be overridden as needed.
- *
- * @example
- * <caption>#### __Create a `useQuery` hook with default options__</caption>
- *
- * ```ts
- * import type {
- *   SubscriptionOptions,
- *   TypedUseQueryStateOptions,
- * } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   name: string
- * }
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   tagTypes: ['Post'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<Post[], void>({
- *       query: () => 'posts',
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = api
- *
- * export const useGetPostsQueryWithDefaults = <
- *   SelectedResult extends Record<string, any>,
- * >(
- *   overrideOptions: TypedUseQueryStateOptions<
- *     Post[],
- *     void,
- *     ReturnType<typeof fetchBaseQuery>,
- *     SelectedResult
- *   > &
- *     SubscriptionOptions,
- * ) =>
- *   useGetPostsQuery(undefined, {
- *     // Insert default options here
- *
- *     refetchOnMountOrArgChange: true,
- *     refetchOnFocus: true,
- *     ...overrideOptions,
- *   })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArg - The type of the argument passed into the query.
- * @template BaseQuery - The type of the base query function being used.
- * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.2.8
- * @public
- */
-type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;
-type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;
-/**
- * Helper type to manually type the result
- * of the `useQueryState` hook in userland code.
- */
-type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;
-type UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {
-    /**
-     * Where `data` tries to hold data as much as possible, also re-using
-     * data from the last arguments passed into the hook, this property
-     * will always contain the received data from the query, for the current query arguments.
-     */
-    currentData?: ResultTypeFrom<D>;
-    /**
-     * Query has not started yet.
-     */
-    isUninitialized: false;
-    /**
-     * Query is currently loading for the first time. No data yet.
-     */
-    isLoading: false;
-    /**
-     * Query is currently fetching, but might have data from an earlier request.
-     */
-    isFetching: false;
-    /**
-     * Query has data from a successful load.
-     */
-    isSuccess: false;
-    /**
-     * Query is currently in "error" state.
-     */
-    isError: false;
-};
-type UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {
-    status: QueryStatus.uninitialized;
-}>, {
-    isUninitialized: true;
-}>;
-type UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isLoading: true;
-    isFetching: boolean;
-    data: undefined;
-}>;
-type UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isSuccess: true;
-    isFetching: true;
-    error: undefined;
-} & {
-    data: ResultTypeFrom<D>;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;
-type UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isSuccess: true;
-    isFetching: false;
-    error: undefined;
-} & {
-    data: ResultTypeFrom<D>;
-    currentData: ResultTypeFrom<D>;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;
-type UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isError: true;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;
-type UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {
-    /**
-     * @deprecated Included for completeness, but discouraged.
-     * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-     * and `isUninitialized` flags instead
-     */
-    status: QueryStatus;
-};
-type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    /**
-     * Triggers a lazy query.
-     *
-     * By default, this will start a new request even if there is already a value in the cache.
-     * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await getUserById(1).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;
-};
-type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When `skip` is true (or `skipToken` is passed in as `arg`):
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```tsx
-     * // codeblock-meta no-transpile title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-    initialPageParam?: PageParamFrom<D>;
-    /**
-     * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-     * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-     * RTK Query will try to sequentially refetch all pages currently in the cache.
-     * When `false` only the first page will be refetched.
-     *
-     * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).
-     * It can be overridden on a per-call basis using the `refetch()` method.
-     */
-    refetchCachedPages?: boolean;
-};
-type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;
-    trigger: LazyInfiniteQueryTrigger<D>;
-    fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;
-    fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;
-};
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;
-type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.
- *
- * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.
- *
- * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.
- *
- * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.
- *
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;
-type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;
-type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;
-type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;
-type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;
-type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When skip is true:
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-     * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-     * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-     * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using selectFromResult to extract a single result"
-     * function PostsList() {
-     *   const { data: posts } = api.useGetPostsQuery();
-     *
-     *   return (
-     *     <ul>
-     *       {posts?.data?.map((post) => (
-     *         <PostById key={post.id} id={post.id} />
-     *       ))}
-     *     </ul>
-     *   );
-     * }
-     *
-     * function PostById({ id }: { id: number }) {
-     *   // Will select the post with the given id, and will only rerender if the given posts data changes
-     *   const { post } = api.useGetPostsQuery(undefined, {
-     *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-     *   });
-     *
-     *   return <li>{post?.name}</li>;
-     * }
-     * ```
-     */
-    selectFromResult?: InfiniteQueryStateSelector<R, D>;
-};
-type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;
-type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;
-type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;
-type UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {
-    /**
-     * Where `data` tries to hold data as much as possible, also re-using
-     * data from the last arguments passed into the hook, this property
-     * will always contain the received data from the query, for the current query arguments.
-     */
-    currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;
-    /**
-     * Query has not started yet.
-     */
-    isUninitialized: false;
-    /**
-     * Query is currently loading for the first time. No data yet.
-     */
-    isLoading: false;
-    /**
-     * Query is currently fetching, but might have data from an earlier request.
-     */
-    isFetching: false;
-    /**
-     * Query has data from a successful load.
-     */
-    isSuccess: false;
-    /**
-     * Query is currently in "error" state.
-     */
-    isError: false;
-    hasNextPage: boolean;
-    hasPreviousPage: boolean;
-    isFetchingNextPage: boolean;
-    isFetchingPreviousPage: boolean;
-};
-type UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {
-    status: QueryStatus.uninitialized;
-}>, {
-    isUninitialized: true;
-}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {
-    isLoading: true;
-    isFetching: boolean;
-    data: undefined;
-} | ({
-    isSuccess: true;
-    isFetching: true;
-    error: undefined;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({
-    isSuccess: true;
-    isFetching: false;
-    error: undefined;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({
-    isError: true;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {
-    /**
-     * @deprecated Included for completeness, but discouraged.
-     * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-     * and `isUninitialized` flags instead
-     */
-    status: QueryStatus;
-};
-type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;
-type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {
-    selectFromResult?: MutationStateSelector<R, D>;
-    fixedCacheKey?: string;
-};
-type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {
-    originalArgs?: QueryArgFrom<D>;
-    /**
-     * Resets the hook state to its initial `uninitialized` state.
-     * This will also remove the last result from the cache.
-     */
-    reset: () => void;
-};
-/**
- * Helper type to manually type the result
- * of the `useMutation` hook in userland code.
- */
-type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;
-/**
- * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.
- *
- * #### Features
- *
- * - Manual control over firing a request to alter data on the server or possibly invalidate the cache
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];
-type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {
-    /**
-     * Triggers the mutation and returns a Promise.
-     * @remarks
-     * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;
-};
-type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-
-type QueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.query;
-    } ? `use${Capitalize<K & string>}Query` : never]: UseQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
-};
-type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.query;
-    } ? `useLazy${Capitalize<K & string>}Query` : never]: UseLazyQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
-};
-type InfiniteQueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.infinitequery;
-    } ? `use${Capitalize<K & string>}InfiniteQuery` : never]: UseInfiniteQuery<Extract<Definitions[K], InfiniteQueryDefinition<any, any, any, any, any>>>;
-};
-type MutationHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.mutation;
-    } ? `use${Capitalize<K & string>}Mutation` : never]: UseMutation<Extract<Definitions[K], MutationDefinition<any, any, any, any>>>;
-};
-type HooksWithUniqueNames<Definitions extends EndpointDefinitions> = QueryHookNames<Definitions> & LazyQueryHookNames<Definitions> & InfiniteQueryHookNames<Definitions> & MutationHookNames<Definitions>;
-
-export declare const reactHooksModuleName: unique symbol;
-type ReactHooksModule = typeof reactHooksModuleName;
-declare module '@reduxjs/toolkit/query' {
-    interface ApiModules<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {
-        [reactHooksModuleName]: {
-            /**
-             *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.
-             */
-            endpoints: {
-                [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never;
-            };
-            /**
-             * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.
-             */
-            usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;
-        } & HooksWithUniqueNames<Definitions>;
-    }
-}
-type RR = typeof react_redux;
-interface ReactHooksModuleOptions {
-    /**
-     * The hooks from React Redux to be used
-     */
-    hooks?: {
-        /**
-         * The version of the `useDispatch` hook to be used
-         */
-        useDispatch: RR['useDispatch'];
-        /**
-         * The version of the `useSelector` hook to be used
-         */
-        useSelector: RR['useSelector'];
-        /**
-         * The version of the `useStore` hook to be used
-         */
-        useStore: RR['useStore'];
-    };
-    /**
-     * The version of the `batchedUpdates` function to be used
-     */
-    batch?: RR['batch'];
-    /**
-     * Enables performing asynchronous tasks immediately within a render.
-     *
-     * @example
-     *
-     * ```ts
-     * import {
-     *   buildCreateApi,
-     *   coreModule,
-     *   reactHooksModule
-     * } from '@reduxjs/toolkit/query/react'
-     *
-     * const createApi = buildCreateApi(
-     *   coreModule(),
-     *   reactHooksModule({ unstable__sideEffectsInRender: true })
-     * )
-     * ```
-     */
-    unstable__sideEffectsInRender?: boolean;
-    /**
-     * A selector creator (usually from `reselect`, or matching the same signature)
-     */
-    createSelector?: CreateSelectorFunction<any, any, any>;
-}
-/**
- * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.
- *
- *  @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @returns A module for use with `buildCreateApi`
- */
-declare const reactHooksModule: ({ batch, hooks, createSelector, unstable__sideEffectsInRender, ...rest }?: ReactHooksModuleOptions) => Module<ReactHooksModule>;
-
-/**
- * Can be used as a `Provider` if you **do not already have a Redux store**.
- *
- * @example
- * ```tsx
- * // codeblock-meta no-transpile title="Basic usage - wrap your App with ApiProvider"
- * import * as React from 'react';
- * import { ApiProvider } from '@reduxjs/toolkit/query/react';
- * import { Pokemon } from './features/Pokemon';
- *
- * function App() {
- *   return (
- *     <ApiProvider api={api}>
- *       <Pokemon />
- *     </ApiProvider>
- *   );
- * }
- * ```
- *
- * @remarks
- * Using this together with an existing redux store, both will
- * conflict with each other - please use the traditional redux setup
- * in that case.
- */
-declare function ApiProvider(props: {
-    children: any;
-    api: Api<any, {}, any, any>;
-    setupListeners?: Parameters<typeof setupListeners>[1] | false;
-    context?: Context<ReactReduxContextValue | null>;
-}): React.JSX.Element;
-
-declare const createApi: _reduxjs_toolkit_query.CreateApi<typeof _reduxjs_toolkit_query.coreModuleName | typeof reactHooksModuleName>;
-
-export { ApiProvider, type TypedInfiniteQueryStateSelector, type TypedLazyInfiniteQueryTrigger, type TypedLazyQueryTrigger, type TypedMutationTrigger, type TypedQueryStateSelector, type TypedUseInfiniteQuery, type TypedUseInfiniteQueryHookResult, type TypedUseInfiniteQueryState, type TypedUseInfiniteQueryStateOptions, type TypedUseInfiniteQueryStateResult, type TypedUseInfiniteQuerySubscription, type TypedUseInfiniteQuerySubscriptionResult, type TypedUseLazyQuery, type TypedUseLazyQueryStateResult, type TypedUseLazyQuerySubscription, type TypedUseMutation, type TypedUseMutationResult, type TypedUseQuery, type TypedUseQueryHookResult, type TypedUseQueryState, type TypedUseQueryStateOptions, type TypedUseQueryStateResult, type TypedUseQuerySubscription, type TypedUseQuerySubscriptionResult, createApi, reactHooksModule };
Index: de_modules/@reduxjs/toolkit/dist/query/react/index.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,980 +1,0 @@
-import * as _reduxjs_toolkit_query from '@reduxjs/toolkit/query';
-import { QueryDefinition, TSHelpersId, TSHelpersOverride, QuerySubState, ResultTypeFrom, QueryStatus, QueryArgFrom, SkipToken, SubscriptionOptions, TSHelpersNoInfer, QueryActionCreatorResult, MutationDefinition, MutationResultSelectorResult, MutationActionCreatorResult, InfiniteQueryDefinition, InfiniteQuerySubState, PageParamFrom, InfiniteQueryArgFrom, InfiniteQueryActionCreatorResult, BaseQueryFn, EndpointDefinitions, DefinitionType, QueryKeys, PrefetchOptions, Module, Api, setupListeners } from '@reduxjs/toolkit/query';
-export * from '@reduxjs/toolkit/query';
-import * as react_redux from 'react-redux';
-import { ReactReduxContextValue } from 'react-redux';
-import { CreateSelectorFunction } from 'reselect';
-import * as React from 'react';
-import { Context } from 'react';
-
-type InfiniteData<DataType, PageParam> = {
-    pages: Array<DataType>;
-    pageParams: Array<PageParam>;
-};
-type InfiniteQueryDirection = 'forward' | 'backward';
-
-export declare const UNINITIALIZED_VALUE: unique symbol;
-type UninitializedValue = typeof UNINITIALIZED_VALUE;
-
-type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {
-    useQuery: UseQuery<Definition>;
-    useLazyQuery: UseLazyQuery<Definition>;
-    useQuerySubscription: UseQuerySubscription<Definition>;
-    useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;
-    useQueryState: UseQueryState<Definition>;
-};
-type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    useInfiniteQuery: UseInfiniteQuery<Definition>;
-    useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;
-    useInfiniteQueryState: UseInfiniteQueryState<Definition>;
-};
-type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {
-    useMutation: UseMutation<Definition>;
-};
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;
-type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;
-/**
- * Helper type to manually type the result
- * of the `useQuery` hook in userland code.
- */
-type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;
-type UseQuerySubscriptionOptions = SubscriptionOptions & {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When `skip` is true (or `skipToken` is passed in as `arg`):
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```tsx
-     * // codeblock-meta no-transpile title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-};
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;
-type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {
-    lastArg: QueryArgFrom<D>;
-};
-/**
- * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.
- *
- * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- *
- * #### Note
- *
- * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.
- */
-type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [
-    LazyQueryTrigger<D>,
-    UseLazyQueryStateResult<D, R>,
-    UseLazyQueryLastPromiseInfo<D>
-];
-type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {
-    /**
-     * Resets the hook state to its initial `uninitialized` state.
-     * This will also remove the last result from the cache.
-     */
-    reset: () => void;
-};
-/**
- * Helper type to manually type the result
- * of the `useLazyQuery` hook in userland code.
- */
-type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;
-type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {
-    /**
-     * Triggers a lazy query.
-     *
-     * By default, this will start a new request even if there is already a value in the cache.
-     * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await getUserById(1).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;
-};
-type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- */
-type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [
-    LazyQueryTrigger<D>,
-    QueryArgFrom<D> | UninitializedValue,
-    {
-        reset: () => void;
-    }
-];
-type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * @internal
- */
-type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryStateSelector} for use with a specific query.
- * This is useful for scenarios where you want to create a "pre-typed"
- * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}
- * function.
- *
- * @example
- * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>
- *
- * ```tsx
- * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   title: string
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * type SelectedResult = Pick<PostsApiResponse, 'posts'>
- *
- * const postsApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, QueryArgument>({
- *       query: (limit = 5) => `?limit=${limit}&select=title`,
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = postsApiSlice
- *
- * function PostById({ id }: { id: number }) {
- *   const { post } = useGetPostsQuery(undefined, {
- *     selectFromResult: (state) => ({
- *       post: state.data?.posts.find((post) => post.id === id),
- *     }),
- *   })
- *
- *   return <li>{post?.title}</li>
- * }
- *
- * const EMPTY_ARRAY: Post[] = []
- *
- * const typedSelectFromResult: TypedQueryStateSelector<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   SelectedResult
- * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })
- *
- * function PostsList() {
- *   const { posts } = useGetPostsQuery(undefined, {
- *     selectFromResult: typedSelectFromResult,
- *   })
- *
- *   return (
- *     <div>
- *       <ul>
- *         {posts.map((post) => (
- *           <PostById key={post.id} id={post.id} />
- *         ))}
- *       </ul>
- *     </div>
- *   )
- * }
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.3.0
- * @public
- */
-type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;
-type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-/**
- * @internal
- */
-type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When skip is true:
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-     * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-     * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using selectFromResult to extract a single result"
-     * function PostsList() {
-     *   const { data: posts } = api.useGetPostsQuery();
-     *
-     *   return (
-     *     <ul>
-     *       {posts?.data?.map((post) => (
-     *         <PostById key={post.id} id={post.id} />
-     *       ))}
-     *     </ul>
-     *   );
-     * }
-     *
-     * function PostById({ id }: { id: number }) {
-     *   // Will select the post with the given id, and will only rerender if the given posts data changes
-     *   const { post } = api.useGetPostsQuery(undefined, {
-     *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-     *   });
-     *
-     *   return <li>{post?.name}</li>;
-     * }
-     * ```
-     */
-    selectFromResult?: QueryStateSelector<R, D>;
-};
-/**
- * Provides a way to define a "pre-typed" version of
- * {@linkcode UseQueryStateOptions} with specific options for a given query.
- * This is particularly useful for setting default query behaviors such as
- * refetching strategies, which can be overridden as needed.
- *
- * @example
- * <caption>#### __Create a `useQuery` hook with default options__</caption>
- *
- * ```ts
- * import type {
- *   SubscriptionOptions,
- *   TypedUseQueryStateOptions,
- * } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   name: string
- * }
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   tagTypes: ['Post'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<Post[], void>({
- *       query: () => 'posts',
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = api
- *
- * export const useGetPostsQueryWithDefaults = <
- *   SelectedResult extends Record<string, any>,
- * >(
- *   overrideOptions: TypedUseQueryStateOptions<
- *     Post[],
- *     void,
- *     ReturnType<typeof fetchBaseQuery>,
- *     SelectedResult
- *   > &
- *     SubscriptionOptions,
- * ) =>
- *   useGetPostsQuery(undefined, {
- *     // Insert default options here
- *
- *     refetchOnMountOrArgChange: true,
- *     refetchOnFocus: true,
- *     ...overrideOptions,
- *   })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArg - The type of the argument passed into the query.
- * @template BaseQuery - The type of the base query function being used.
- * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.2.8
- * @public
- */
-type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;
-type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;
-/**
- * Helper type to manually type the result
- * of the `useQueryState` hook in userland code.
- */
-type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;
-type UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {
-    /**
-     * Where `data` tries to hold data as much as possible, also re-using
-     * data from the last arguments passed into the hook, this property
-     * will always contain the received data from the query, for the current query arguments.
-     */
-    currentData?: ResultTypeFrom<D>;
-    /**
-     * Query has not started yet.
-     */
-    isUninitialized: false;
-    /**
-     * Query is currently loading for the first time. No data yet.
-     */
-    isLoading: false;
-    /**
-     * Query is currently fetching, but might have data from an earlier request.
-     */
-    isFetching: false;
-    /**
-     * Query has data from a successful load.
-     */
-    isSuccess: false;
-    /**
-     * Query is currently in "error" state.
-     */
-    isError: false;
-};
-type UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {
-    status: QueryStatus.uninitialized;
-}>, {
-    isUninitialized: true;
-}>;
-type UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isLoading: true;
-    isFetching: boolean;
-    data: undefined;
-}>;
-type UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isSuccess: true;
-    isFetching: true;
-    error: undefined;
-} & {
-    data: ResultTypeFrom<D>;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;
-type UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isSuccess: true;
-    isFetching: false;
-    error: undefined;
-} & {
-    data: ResultTypeFrom<D>;
-    currentData: ResultTypeFrom<D>;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;
-type UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {
-    isError: true;
-} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;
-type UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {
-    /**
-     * @deprecated Included for completeness, but discouraged.
-     * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-     * and `isUninitialized` flags instead
-     */
-    status: QueryStatus;
-};
-type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    /**
-     * Triggers a lazy query.
-     *
-     * By default, this will start a new request even if there is already a value in the cache.
-     * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-     *
-     * @remarks
-     * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await getUserById(1).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;
-};
-type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When `skip` is true (or `skipToken` is passed in as `arg`):
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```tsx
-     * // codeblock-meta no-transpile title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-     * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-     * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-     * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-     *
-     * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-     */
-    refetchOnMountOrArgChange?: boolean | number;
-    initialPageParam?: PageParamFrom<D>;
-    /**
-     * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-     * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-     * RTK Query will try to sequentially refetch all pages currently in the cache.
-     * When `false` only the first page will be refetched.
-     *
-     * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).
-     * It can be overridden on a per-call basis using the `refetch()` method.
-     */
-    refetchCachedPages?: boolean;
-};
-type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {
-    refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;
-    trigger: LazyInfiniteQueryTrigger<D>;
-    fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;
-    fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;
-};
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;
-type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.
- *
- * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.
- *
- * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.
- *
- * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.
- *
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;
-type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;
-type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;
-type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;
-type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;
-type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {
-    /**
-     * Prevents a query from automatically running.
-     *
-     * @remarks
-     * When skip is true:
-     *
-     * - **If the query has cached data:**
-     *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-     *   * The query will have a status of `uninitialized`
-     *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-     * - **If the query does not have cached data:**
-     *   * The query will have a status of `uninitialized`
-     *   * The query will not exist in the state when viewed with the dev tools
-     *   * The query will not automatically fetch on mount
-     *   * The query will not automatically run when additional components with the same query are added that do run
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Skip example"
-     * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-     *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-     *     skip,
-     *   });
-     *
-     *   return (
-     *     <div>
-     *       {name} - {status}
-     *     </div>
-     *   );
-     * };
-     * ```
-     */
-    skip?: boolean;
-    /**
-     * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-     * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-     * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-     * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using selectFromResult to extract a single result"
-     * function PostsList() {
-     *   const { data: posts } = api.useGetPostsQuery();
-     *
-     *   return (
-     *     <ul>
-     *       {posts?.data?.map((post) => (
-     *         <PostById key={post.id} id={post.id} />
-     *       ))}
-     *     </ul>
-     *   );
-     * }
-     *
-     * function PostById({ id }: { id: number }) {
-     *   // Will select the post with the given id, and will only rerender if the given posts data changes
-     *   const { post } = api.useGetPostsQuery(undefined, {
-     *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-     *   });
-     *
-     *   return <li>{post?.name}</li>;
-     * }
-     * ```
-     */
-    selectFromResult?: InfiniteQueryStateSelector<R, D>;
-};
-type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;
-type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;
-type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;
-type UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {
-    /**
-     * Where `data` tries to hold data as much as possible, also re-using
-     * data from the last arguments passed into the hook, this property
-     * will always contain the received data from the query, for the current query arguments.
-     */
-    currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;
-    /**
-     * Query has not started yet.
-     */
-    isUninitialized: false;
-    /**
-     * Query is currently loading for the first time. No data yet.
-     */
-    isLoading: false;
-    /**
-     * Query is currently fetching, but might have data from an earlier request.
-     */
-    isFetching: false;
-    /**
-     * Query has data from a successful load.
-     */
-    isSuccess: false;
-    /**
-     * Query is currently in "error" state.
-     */
-    isError: false;
-    hasNextPage: boolean;
-    hasPreviousPage: boolean;
-    isFetchingNextPage: boolean;
-    isFetchingPreviousPage: boolean;
-};
-type UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {
-    status: QueryStatus.uninitialized;
-}>, {
-    isUninitialized: true;
-}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {
-    isLoading: true;
-    isFetching: boolean;
-    data: undefined;
-} | ({
-    isSuccess: true;
-    isFetching: true;
-    error: undefined;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({
-    isSuccess: true;
-    isFetching: false;
-    error: undefined;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({
-    isError: true;
-} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {
-    /**
-     * @deprecated Included for completeness, but discouraged.
-     * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-     * and `isUninitialized` flags instead
-     */
-    status: QueryStatus;
-};
-type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;
-type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {
-    selectFromResult?: MutationStateSelector<R, D>;
-    fixedCacheKey?: string;
-};
-type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {
-    originalArgs?: QueryArgFrom<D>;
-    /**
-     * Resets the hook state to its initial `uninitialized` state.
-     * This will also remove the last result from the cache.
-     */
-    reset: () => void;
-};
-/**
- * Helper type to manually type the result
- * of the `useMutation` hook in userland code.
- */
-type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;
-/**
- * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.
- *
- * #### Features
- *
- * - Manual control over firing a request to alter data on the server or possibly invalidate the cache
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];
-type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {
-    /**
-     * Triggers the mutation and returns a Promise.
-     * @remarks
-     * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;
-};
-type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;
-
-type QueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.query;
-    } ? `use${Capitalize<K & string>}Query` : never]: UseQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
-};
-type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.query;
-    } ? `useLazy${Capitalize<K & string>}Query` : never]: UseLazyQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
-};
-type InfiniteQueryHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.infinitequery;
-    } ? `use${Capitalize<K & string>}InfiniteQuery` : never]: UseInfiniteQuery<Extract<Definitions[K], InfiniteQueryDefinition<any, any, any, any, any>>>;
-};
-type MutationHookNames<Definitions extends EndpointDefinitions> = {
-    [K in keyof Definitions as Definitions[K] extends {
-        type: DefinitionType.mutation;
-    } ? `use${Capitalize<K & string>}Mutation` : never]: UseMutation<Extract<Definitions[K], MutationDefinition<any, any, any, any>>>;
-};
-type HooksWithUniqueNames<Definitions extends EndpointDefinitions> = QueryHookNames<Definitions> & LazyQueryHookNames<Definitions> & InfiniteQueryHookNames<Definitions> & MutationHookNames<Definitions>;
-
-export declare const reactHooksModuleName: unique symbol;
-type ReactHooksModule = typeof reactHooksModuleName;
-declare module '@reduxjs/toolkit/query' {
-    interface ApiModules<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {
-        [reactHooksModuleName]: {
-            /**
-             *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.
-             */
-            endpoints: {
-                [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never;
-            };
-            /**
-             * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.
-             */
-            usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;
-        } & HooksWithUniqueNames<Definitions>;
-    }
-}
-type RR = typeof react_redux;
-interface ReactHooksModuleOptions {
-    /**
-     * The hooks from React Redux to be used
-     */
-    hooks?: {
-        /**
-         * The version of the `useDispatch` hook to be used
-         */
-        useDispatch: RR['useDispatch'];
-        /**
-         * The version of the `useSelector` hook to be used
-         */
-        useSelector: RR['useSelector'];
-        /**
-         * The version of the `useStore` hook to be used
-         */
-        useStore: RR['useStore'];
-    };
-    /**
-     * The version of the `batchedUpdates` function to be used
-     */
-    batch?: RR['batch'];
-    /**
-     * Enables performing asynchronous tasks immediately within a render.
-     *
-     * @example
-     *
-     * ```ts
-     * import {
-     *   buildCreateApi,
-     *   coreModule,
-     *   reactHooksModule
-     * } from '@reduxjs/toolkit/query/react'
-     *
-     * const createApi = buildCreateApi(
-     *   coreModule(),
-     *   reactHooksModule({ unstable__sideEffectsInRender: true })
-     * )
-     * ```
-     */
-    unstable__sideEffectsInRender?: boolean;
-    /**
-     * A selector creator (usually from `reselect`, or matching the same signature)
-     */
-    createSelector?: CreateSelectorFunction<any, any, any>;
-}
-/**
- * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.
- *
- *  @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @returns A module for use with `buildCreateApi`
- */
-declare const reactHooksModule: ({ batch, hooks, createSelector, unstable__sideEffectsInRender, ...rest }?: ReactHooksModuleOptions) => Module<ReactHooksModule>;
-
-/**
- * Can be used as a `Provider` if you **do not already have a Redux store**.
- *
- * @example
- * ```tsx
- * // codeblock-meta no-transpile title="Basic usage - wrap your App with ApiProvider"
- * import * as React from 'react';
- * import { ApiProvider } from '@reduxjs/toolkit/query/react';
- * import { Pokemon } from './features/Pokemon';
- *
- * function App() {
- *   return (
- *     <ApiProvider api={api}>
- *       <Pokemon />
- *     </ApiProvider>
- *   );
- * }
- * ```
- *
- * @remarks
- * Using this together with an existing redux store, both will
- * conflict with each other - please use the traditional redux setup
- * in that case.
- */
-declare function ApiProvider(props: {
-    children: any;
-    api: Api<any, {}, any, any>;
-    setupListeners?: Parameters<typeof setupListeners>[1] | false;
-    context?: Context<ReactReduxContextValue | null>;
-}): React.JSX.Element;
-
-declare const createApi: _reduxjs_toolkit_query.CreateApi<typeof _reduxjs_toolkit_query.coreModuleName | typeof reactHooksModuleName>;
-
-export { ApiProvider, type TypedInfiniteQueryStateSelector, type TypedLazyInfiniteQueryTrigger, type TypedLazyQueryTrigger, type TypedMutationTrigger, type TypedQueryStateSelector, type TypedUseInfiniteQuery, type TypedUseInfiniteQueryHookResult, type TypedUseInfiniteQueryState, type TypedUseInfiniteQueryStateOptions, type TypedUseInfiniteQueryStateResult, type TypedUseInfiniteQuerySubscription, type TypedUseInfiniteQuerySubscriptionResult, type TypedUseLazyQuery, type TypedUseLazyQueryStateResult, type TypedUseLazyQuerySubscription, type TypedUseMutation, type TypedUseMutationResult, type TypedUseQuery, type TypedUseQueryHookResult, type TypedUseQueryState, type TypedUseQueryStateOptions, type TypedUseQueryStateResult, type TypedUseQuerySubscription, type TypedUseQuerySubscriptionResult, createApi, reactHooksModule };
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.browser.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import{buildCreateApi as ue,coreModule as ye,copyWithStructuralSharing as oe,setupListeners as pe,QueryStatus as fe,skipToken as b}from"@reduxjs/toolkit/query";import"@reduxjs/toolkit";import{batch as Ce,useDispatch as Ne,useSelector as Le,useStore as He}from"react-redux";import{createSelector as ze}from"reselect";function _(e){return e.replace(e[0],e[0].toUpperCase())}var he="query",Ie="mutation",Ue="infinitequery";function Qe(e){return e.type===he}function ce(e){return e.type===Ie}function $(e){return e.type===Ue}function z(e,...c){return Object.assign(e,...c)}import{formatProdErrorMessage as be,formatProdErrorMessage as Ee}from"@reduxjs/toolkit";import{useEffect as x,useRef as I,useMemo as R,useContext as de,useCallback as k,useDebugValue as G,useLayoutEffect as le,useState as ne}from"react";import{shallowEqual as w,Provider as Re,ReactReduxContext as ge}from"react-redux";var j=Symbol();function Z(e){let c=I(e),g=R(()=>oe(c.current,e),[e]);return x(()=>{c.current!==g&&(c.current=g)},[g]),g}function v(e){let c=I(e);return x(()=>{w(c.current,e)||(c.current=e)},[e]),w(c.current,e)?c.current:e}var ke=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Oe=ke(),Me=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Fe=Me(),we=()=>Oe||Fe?le:x,ve=we(),Te=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:e.data===void 0,status:fe.pending}:e;function re(e,...c){let g={};return c.forEach(A=>{g[A]=e[A]}),g}var ie=["data","status","isLoading","isSuccess","isError","error"];function De({api:e,moduleOptions:{batch:c,hooks:{useDispatch:g,useSelector:A,useStore:W},unstable__sideEffectsInRender:U,createSelector:C},serializeQueryArgs:E,context:N}){let O=U?t=>t():x,L=t=>t.current?.unsubscribe?.(),q=N.endpointDefinitions;return{buildQueryHooks:ee,buildInfiniteQueryHooks:Se,buildMutationHook:Be,usePrefetch:K};function J(t,i,p){if(i?.endpointName&&t.isUninitialized){let{endpointName:a}=i,y=q[a];p!==b&&E({queryArgs:i.originalArgs,endpointDefinition:y,endpointName:a})===E({queryArgs:p,endpointDefinition:y,endpointName:a})&&(i=void 0)}let u=t.isSuccess?t.data:i?.data;u===void 0&&(u=t.data);let s=u!==void 0,n=t.isLoading,r=(!i||i.isLoading||i.isUninitialized)&&!s&&n,o=t.isSuccess||s&&(n&&!i?.isError||t.isUninitialized);return{...t,data:u,currentData:t.data,isFetching:n,isLoading:r,isSuccess:o}}function m(t,i,p){if(i?.endpointName&&t.isUninitialized){let{endpointName:a}=i,y=q[a];p!==b&&E({queryArgs:i.originalArgs,endpointDefinition:y,endpointName:a})===E({queryArgs:p,endpointDefinition:y,endpointName:a})&&(i=void 0)}let u=t.isSuccess?t.data:i?.data;u===void 0&&(u=t.data);let s=u!==void 0,n=t.isLoading,r=(!i||i.isLoading||i.isUninitialized)&&!s&&n,o=t.isSuccess||n&&s;return{...t,data:u,currentData:t.data,isFetching:n,isLoading:r,isSuccess:o}}function K(t,i){let p=g(),u=v(i);return k((s,n)=>p(e.util.prefetch(t,s,{...u,...n})),[t,p,u])}function h(t,i,{refetchOnReconnect:p,refetchOnFocus:u,refetchOnMountOrArgChange:s,skip:n=!1,pollingInterval:r=0,skipPollingIfUnfocused:o=!1,...a}={}){let{initiate:y}=e.endpoints[t],d=g(),S=I(void 0);if(!S.current){let F=d(e.internalActions.internal_getRTKQSubscriptions());S.current=F}let f=Z(n?b:i),Q=v({refetchOnReconnect:p,refetchOnFocus:u,pollingInterval:r,skipPollingIfUnfocused:o}),T=a.initialPageParam,l=v(T),B=a.refetchCachedPages,P=v(B),D=I(void 0),{queryCacheKey:V,requestId:se}=D.current||{},ae=!1;V&&se&&(ae=S.current.isRequestSubscribed(V,se));let te=!ae&&D.current!==void 0;return O(()=>{te&&(D.current=void 0)},[te]),O(()=>{let F=D.current;if(f===b){F?.unsubscribe(),D.current=void 0;return}let Pe=D.current?.subscriptionOptions;if(!F||F.arg!==f){F?.unsubscribe();let Ae=d(y(f,{subscriptionOptions:Q,forceRefetch:s,...$(q[t])?{initialPageParam:l,refetchCachedPages:P}:{}}));D.current=Ae}else Q!==Pe&&F.updateSubscriptionOptions(Q)},[d,y,s,f,Q,te,l,P,t]),[D,d,y,Q]}function M(t,i){return(u,{skip:s=!1,selectFromResult:n}={})=>{let{select:r}=e.endpoints[t],o=Z(s?b:u),a=I(void 0),y=R(()=>C([r(o),(T,l)=>l,T=>o],i,{memoizeOptions:{resultEqualityCheck:w}}),[r,o]),d=R(()=>n?C([y],n,{devModeChecks:{identityFunctionCheck:"never"}}):y,[y,n]),S=A(T=>d(T,a.current),w),f=W(),Q=y(f.getState(),a.current);return ve(()=>{a.current=Q},[Q]),S}}function H(t){x(()=>()=>{L(t),t.current=void 0},[t])}function X(t){if(!t.current)throw new Error(be(38));return t.current.refetch()}function ee(t){let i=(s,n={})=>{let[r]=h(t,s,n);return H(r),R(()=>({refetch:()=>X(r)}),[r])},p=({refetchOnReconnect:s,refetchOnFocus:n,pollingInterval:r=0,skipPollingIfUnfocused:o=!1}={})=>{let{initiate:a}=e.endpoints[t],y=g(),[d,S]=ne(j),f=I(void 0),Q=v({refetchOnReconnect:s,refetchOnFocus:n,pollingInterval:r,skipPollingIfUnfocused:o});O(()=>{let P=f.current?.subscriptionOptions;Q!==P&&f.current?.updateSubscriptionOptions(Q)},[Q]);let T=I(Q);O(()=>{T.current=Q},[Q]);let l=k(function(P,D=!1){let V;return c(()=>{L(f),f.current=V=y(a(P,{subscriptionOptions:T.current,forceRefetch:!D})),S(P)}),V},[y,a]),B=k(()=>{f.current?.queryCacheKey&&y(e.internalActions.removeQueryResult({queryCacheKey:f.current?.queryCacheKey}))},[y]);return x(()=>()=>{L(f)},[]),x(()=>{d!==j&&!f.current&&l(d,!0)},[d,l]),R(()=>[l,d,{reset:B}],[l,d,B])},u=M(t,J);return{useQueryState:u,useQuerySubscription:i,useLazyQuerySubscription:p,useLazyQuery(s){let[n,r,{reset:o}]=p(s),a=u(r,{...s,skip:r===j}),y=R(()=>({lastArg:r}),[r]);return R(()=>[n,{...a,reset:o},y],[n,a,o,y])},useQuery(s,n){let r=i(s,n),o=u(s,{selectFromResult:s===b||n?.skip?void 0:Te,...n}),a=re(o,...ie);return G(a),R(()=>({...o,...r}),[o,r])}}}function Se(t){let i=(u,s={})=>{let[n,r,o,a]=h(t,u,s),y=I(a);O(()=>{y.current=a},[a]);let d=s.refetchCachedPages,S=v(d),f=k(function(l,B){let P;return c(()=>{L(n),n.current=P=r(o(l,{subscriptionOptions:y.current,direction:B}))}),P},[n,r,o]);H(n);let Q=Z(s.skip?b:u),T=k(l=>{if(!n.current)throw new Error(Ee(38));let B={refetchCachedPages:l?.refetchCachedPages??S};return n.current.refetch(B)},[n,S]);return R(()=>({trigger:f,refetch:T,fetchNextPage:()=>f(Q,"forward"),fetchPreviousPage:()=>f(Q,"backward")}),[T,f,Q])},p=M(t,m);return{useInfiniteQueryState:p,useInfiniteQuerySubscription:i,useInfiniteQuery(u,s){let{refetch:n,fetchNextPage:r,fetchPreviousPage:o}=i(u,s),a=p(u,{selectFromResult:u===b||s?.skip?void 0:Te,...s}),y=re(a,...ie,"hasNextPage","hasPreviousPage");return G(y),R(()=>({...a,fetchNextPage:r,fetchPreviousPage:o,refetch:n}),[a,r,o,n])}}}function Be(t){return({selectFromResult:i,fixedCacheKey:p}={})=>{let{select:u,initiate:s}=e.endpoints[t],n=g(),[r,o]=ne();x(()=>()=>{r?.arg.fixedCacheKey||r?.reset()},[r]);let a=k(function(P){let D=n(s(P,{fixedCacheKey:p}));return o(D),D},[n,s,p]),{requestId:y}=r||{},d=R(()=>u({fixedCacheKey:p,requestId:r?.requestId}),[p,r,u]),S=R(()=>i?C([d],i):d,[i,d]),f=A(S,w),Q=p==null?r?.arg.originalArgs:void 0,T=k(()=>{c(()=>{r&&o(void 0),p&&n(e.internalActions.removeMutationResult({requestId:y,fixedCacheKey:p}))})},[n,p,r,y]),l=re(f,...ie,"endpointName");G(l);let B=R(()=>({...f,originalArgs:Q,reset:T}),[f,Q,T]);return R(()=>[a,B],[a,B])}}}var xe=Symbol(),me=({batch:e=Ce,hooks:c={useDispatch:Ne,useSelector:Le,useStore:He},createSelector:g=ze,unstable__sideEffectsInRender:A=!1,...W}={})=>({name:xe,init(U,{serializeQueryArgs:C},E){let N=U,{buildQueryHooks:O,buildInfiniteQueryHooks:L,buildMutationHook:q,usePrefetch:J}=De({api:U,moduleOptions:{batch:e,hooks:c,unstable__sideEffectsInRender:A,createSelector:g},serializeQueryArgs:C,context:E});return z(N,{usePrefetch:J}),z(E,{batch:e}),{injectEndpoint(m,K){if(Qe(K)){let{useQuery:h,useLazyQuery:M,useLazyQuerySubscription:H,useQueryState:X,useQuerySubscription:ee}=O(m);z(N.endpoints[m],{useQuery:h,useLazyQuery:M,useLazyQuerySubscription:H,useQueryState:X,useQuerySubscription:ee}),U[`use${_(m)}Query`]=h,U[`useLazy${_(m)}Query`]=M}if(ce(K)){let h=q(m);z(N.endpoints[m],{useMutation:h}),U[`use${_(m)}Mutation`]=h}else if($(K)){let{useInfiniteQuery:h,useInfiniteQuerySubscription:M,useInfiniteQueryState:H}=L(m);z(N.endpoints[m],{useInfiniteQuery:h,useInfiniteQuerySubscription:M,useInfiniteQueryState:H}),U[`use${_(m)}InfiniteQuery`]=h}}}}});export*from"@reduxjs/toolkit/query";import{configureStore as qe,formatProdErrorMessage as Ke}from"@reduxjs/toolkit";import*as Y from"react";function Ve(e){let c=e.context||ge;if(de(c))throw new Error(Ke(35));let[A]=Y.useState(()=>qe({reducer:{[e.api.reducerPath]:e.api.reducer},middleware:W=>W().concat(e.api.middleware)}));return x(()=>e.setupListeners===!1?void 0:pe(A.dispatch,e.setupListeners),[e.setupListeners,A.dispatch]),Y.createElement(Re,{store:A,context:c},e.children)}var Ft=ue(ye(),me());export{Ve as ApiProvider,j as UNINITIALIZED_VALUE,Ft as createApi,me as reactHooksModule,xe as reactHooksModuleName};
-//# sourceMappingURL=rtk-query-react.browser.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.browser.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/query/react/rtkqImports.ts","../../../src/query/react/module.ts","../../../src/query/utils/capitalize.ts","../../../src/query/endpointDefinitions.ts","../../../src/query/tsHelpers.ts","../../../src/query/react/buildHooks.ts","../../../src/query/react/reactImports.ts","../../../src/query/react/reactReduxImports.ts","../../../src/query/react/constants.ts","../../../src/query/react/useSerializedStableValue.ts","../../../src/query/react/useShallowStableValue.ts","../../../src/query/react/index.ts","../../../src/query/react/ApiProvider.tsx"],"sourcesContent":["export { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from '@reduxjs/toolkit/query';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Api, BaseQueryFn, EndpointDefinitions, InfiniteQueryDefinition, Module, MutationDefinition, PrefetchOptions, QueryArgFrom, QueryDefinition, QueryKeys } from '@reduxjs/toolkit/query';\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from 'react-redux';\nimport type { CreateSelectorFunction } from 'reselect';\nimport { createSelector as _createSelector } from 'reselect';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { safeAssign } from '../tsHelpers';\nimport { capitalize, countObjectKeys } from '../utils';\nimport type { InfiniteQueryHooks, MutationHooks, QueryHooks } from './buildHooks';\nimport { buildHooks } from './buildHooks';\nimport type { HooksWithUniqueNames } from './namedHooks';\nexport const reactHooksModuleName = /* @__PURE__ */Symbol();\nexport type ReactHooksModule = typeof reactHooksModuleName;\ndeclare module '@reduxjs/toolkit/query' {\n  export interface ApiModules<\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ReducerPath extends string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  TagTypes extends string> {\n    [reactHooksModuleName]: {\n      /**\n       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\n       */\n      endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never };\n      /**\n       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\n       */\n      usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;\n    } & HooksWithUniqueNames<Definitions>;\n  }\n}\ntype RR = typeof import('react-redux');\nexport interface ReactHooksModuleOptions {\n  /**\n   * The hooks from React Redux to be used\n   */\n  hooks?: {\n    /**\n     * The version of the `useDispatch` hook to be used\n     */\n    useDispatch: RR['useDispatch'];\n    /**\n     * The version of the `useSelector` hook to be used\n     */\n    useSelector: RR['useSelector'];\n    /**\n     * The version of the `useStore` hook to be used\n     */\n    useStore: RR['useStore'];\n  };\n  /**\n   * The version of the `batchedUpdates` function to be used\n   */\n  batch?: RR['batch'];\n  /**\n   * Enables performing asynchronous tasks immediately within a render.\n   *\n   * @example\n   *\n   * ```ts\n   * import {\n   *   buildCreateApi,\n   *   coreModule,\n   *   reactHooksModule\n   * } from '@reduxjs/toolkit/query/react'\n   *\n   * const createApi = buildCreateApi(\n   *   coreModule(),\n   *   reactHooksModule({ unstable__sideEffectsInRender: true })\n   * )\n   * ```\n   */\n  unstable__sideEffectsInRender?: boolean;\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\n *\n *  @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @returns A module for use with `buildCreateApi`\n */\nexport const reactHooksModule = ({\n  batch = rrBatch,\n  hooks = {\n    useDispatch: rrUseDispatch,\n    useSelector: rrUseSelector,\n    useStore: rrUseStore\n  },\n  createSelector = _createSelector,\n  unstable__sideEffectsInRender = false,\n  ...rest\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {\n  if (process.env.NODE_ENV !== 'production') {\n    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const;\n    let warned = false;\n    for (const hookName of hookNames) {\n      // warn for old hook options\n      if (countObjectKeys(rest) > 0) {\n        if ((rest as Partial<typeof hooks>)[hookName]) {\n          if (!warned) {\n            console.warn('As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' + '\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`');\n            warned = true;\n          }\n        }\n        // migrate\n        // @ts-ignore\n        hooks[hookName] = rest[hookName];\n      }\n      // then make sure we have them all\n      if (typeof hooks[hookName] !== 'function') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(', ')}.\\nHook ${hookName} was either not provided or not a function.`);\n      }\n    }\n  }\n  return {\n    name: reactHooksModuleName,\n    init(api, {\n      serializeQueryArgs\n    }, context) {\n      const anyApi = api as any as Api<any, Record<string, any>, any, any, ReactHooksModule>;\n      const {\n        buildQueryHooks,\n        buildInfiniteQueryHooks,\n        buildMutationHook,\n        usePrefetch\n      } = buildHooks({\n        api,\n        moduleOptions: {\n          batch,\n          hooks,\n          unstable__sideEffectsInRender,\n          createSelector\n        },\n        serializeQueryArgs,\n        context\n      });\n      safeAssign(anyApi, {\n        usePrefetch\n      });\n      safeAssign(context, {\n        batch\n      });\n      return {\n        injectEndpoint(endpointName, definition) {\n          if (isQueryDefinition(definition)) {\n            const {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            } = buildQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            });\n            (api as any)[`use${capitalize(endpointName)}Query`] = useQuery;\n            (api as any)[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n          }\n          if (isMutationDefinition(definition)) {\n            const useMutation = buildMutationHook(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useMutation\n            });\n            (api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation;\n          } else if (isInfiniteQueryDefinition(definition)) {\n            const {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            } = buildInfiniteQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            });\n            (api as any)[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n          }\n        }\n      };\n    }\n  };\n};","export function capitalize(str: string) {\n  return str.replace(str[0], str[0].toUpperCase());\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Selector, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Api, ApiContext, ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, BaseQueryFn, CoreModule, EndpointDefinitions, InfiniteQueryActionCreatorResult, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, MutationActionCreatorResult, MutationDefinition, MutationResultSelectorResult, PageParamFrom, PrefetchOptions, QueryActionCreatorResult, QueryArgFrom, QueryCacheKey, QueryDefinition, QueryKeys, QueryResultSelectorResult, QuerySubState, ResultTypeFrom, RootState, SerializeQueryArgs, SkipToken, SubscriptionOptions, TSHelpersId, TSHelpersNoInfer, TSHelpersOverride } from '@reduxjs/toolkit/query';\nimport { QueryStatus, skipToken } from './rtkqImports';\nimport type { DependencyList } from 'react';\nimport { useCallback, useDebugValue, useEffect, useLayoutEffect, useMemo, useRef, useState } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nimport type { SubscriptionSelectors } from '../core/buildMiddleware/index';\nimport type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index';\nimport type { UninitializedValue } from './constants';\nimport { UNINITIALIZED_VALUE } from './constants';\nimport type { ReactHooksModuleOptions } from './module';\nimport { useStableQueryArgs } from './useSerializedStableValue';\nimport { useShallowStableValue } from './useShallowStableValue';\nimport type { InfiniteQueryDirection } from '../core/apiState';\nimport { isInfiniteQueryDefinition } from '../endpointDefinitions';\nimport type { StartInfiniteQueryActionCreator } from '../core/buildInitiate';\n\n// Copy-pasted from React-Redux\nconst canUseDOM = () => !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nconst isDOM = /* @__PURE__ */canUseDOM();\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\nconst isRunningInReactNative = () => typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst isReactNative = /* @__PURE__ */isRunningInReactNative();\nconst getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;\nexport const useIsomorphicLayoutEffect = /* @__PURE__ */getUseIsomorphicLayoutEffect();\nexport type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  useQuery: UseQuery<Definition>;\n  useLazyQuery: UseLazyQuery<Definition>;\n  useQuerySubscription: UseQuerySubscription<Definition>;\n  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;\n  useQueryState: UseQueryState<Definition>;\n};\nexport type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  useInfiniteQuery: UseInfiniteQuery<Definition>;\n  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;\n  useInfiniteQueryState: UseInfiniteQueryState<Definition>;\n};\nexport type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  useMutation: UseMutation<Definition>;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;\nexport type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuery` hook in userland code.\n */\nexport type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;\nexport type UseQuerySubscriptionOptions = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;\nexport type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {\n  lastArg: QueryArgFrom<D>;\n};\n\n/**\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\n *\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n *\n * #### Note\n *\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\n */\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [LazyQueryTrigger<D>, UseLazyQueryStateResult<D, R>, UseLazyQueryLastPromiseInfo<D>];\nexport type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useLazyQuery` hook in userland code.\n */\nexport type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;\n};\nexport type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n */\nexport type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue, {\n  reset: () => void;\n}];\nexport type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryStateSelector} for use with a specific query.\n * This is useful for scenarios where you want to create a \"pre-typed\"\n * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}\n * function.\n *\n * @example\n * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>\n *\n * ```tsx\n * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   title: string\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * type SelectedResult = Pick<PostsApiResponse, 'posts'>\n *\n * const postsApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, QueryArgument>({\n *       query: (limit = 5) => `?limit=${limit}&select=title`,\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = postsApiSlice\n *\n * function PostById({ id }: { id: number }) {\n *   const { post } = useGetPostsQuery(undefined, {\n *     selectFromResult: (state) => ({\n *       post: state.data?.posts.find((post) => post.id === id),\n *     }),\n *   })\n *\n *   return <li>{post?.title}</li>\n * }\n *\n * const EMPTY_ARRAY: Post[] = []\n *\n * const typedSelectFromResult: TypedQueryStateSelector<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   SelectedResult\n * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })\n *\n * function PostsList() {\n *   const { posts } = useGetPostsQuery(undefined, {\n *     selectFromResult: typedSelectFromResult,\n *   })\n *\n *   return (\n *     <div>\n *       <ul>\n *         {posts.map((post) => (\n *           <PostById key={post.id} id={post.id} />\n *         ))}\n *       </ul>\n *     </div>\n *   )\n * }\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.3.0\n * @public\n */\nexport type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;\nexport type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: QueryStateSelector<R, D>;\n};\n\n/**\n * Provides a way to define a \"pre-typed\" version of\n * {@linkcode UseQueryStateOptions} with specific options for a given query.\n * This is particularly useful for setting default query behaviors such as\n * refetching strategies, which can be overridden as needed.\n *\n * @example\n * <caption>#### __Create a `useQuery` hook with default options__</caption>\n *\n * ```ts\n * import type {\n *   SubscriptionOptions,\n *   TypedUseQueryStateOptions,\n * } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   name: string\n * }\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   tagTypes: ['Post'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<Post[], void>({\n *       query: () => 'posts',\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = api\n *\n * export const useGetPostsQueryWithDefaults = <\n *   SelectedResult extends Record<string, any>,\n * >(\n *   overrideOptions: TypedUseQueryStateOptions<\n *     Post[],\n *     void,\n *     ReturnType<typeof fetchBaseQuery>,\n *     SelectedResult\n *   > &\n *     SubscriptionOptions,\n * ) =>\n *   useGetPostsQuery(undefined, {\n *     // Insert default options here\n *\n *     refetchOnMountOrArgChange: true,\n *     refetchOnFocus: true,\n *     ...overrideOptions,\n *   })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArg - The type of the argument passed into the query.\n * @template BaseQuery - The type of the base query function being used.\n * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.2.8\n * @public\n */\nexport type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;\n\n/**\n * Helper type to manually type the result\n * of the `useQueryState` hook in userland code.\n */\nexport type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: ResultTypeFrom<D>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n};\ntype UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}>;\ntype UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n}>;\ntype UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n  currentData: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isError: true;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;\n};\nexport type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  initialPageParam?: PageParamFrom<D>;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   *\n   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).\n   * It can be overridden on a per-call basis using the `refetch()` method.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;\n  trigger: LazyInfiniteQueryTrigger<D>;\n  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;\n  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;\nexport type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.\n *\n * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.\n *\n * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.\n *\n * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.\n *\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;\nexport type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;\nexport type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\nexport type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: InfiniteQueryStateSelector<R, D>;\n};\nexport type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;\nexport type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\ntype UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n};\ntype UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n} | ({\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({\n  isError: true;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;\nexport type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  selectFromResult?: MutationStateSelector<R, D>;\n  fixedCacheKey?: string;\n};\nexport type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {\n  originalArgs?: QueryArgFrom<D>;\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useMutation` hook in userland code.\n */\nexport type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\n\n/**\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\n *\n * #### Features\n *\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];\nexport type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {\n  /**\n   * Triggers the mutation and returns a Promise.\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;\n};\nexport type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\n * We want the initial render to already come back with\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\n * to prevent that the library user has to do an additional check for `isUninitialized`/\n */\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = selected => {\n  if (selected.isUninitialized) {\n    return {\n      ...selected,\n      isUninitialized: false,\n      isFetching: true,\n      isLoading: selected.data !== undefined ? false : true,\n      // This is the one place where we still have to use `QueryStatus` as an enum,\n      // since it's the only reference in the React package and not in the core.\n      status: QueryStatus.pending\n    } as any;\n  }\n  return selected;\n};\nfunction pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n  const ret: any = {};\n  keys.forEach(key => {\n    ret[key] = obj[key];\n  });\n  return ret;\n}\nconst COMMON_HOOK_DEBUG_FIELDS = ['data', 'status', 'isLoading', 'isSuccess', 'isError', 'error'] as const;\ntype GenericPrefetchThunk = (endpointName: any, arg: any, options: PrefetchOptions) => ThunkAction<void, any, any, UnknownAction>;\n\n/**\n *\n * @param opts.api - An API with defined endpoints to create hooks for\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\n * @returns An object containing functions to generate hooks based on an endpoint\n */\nexport function buildHooks<Definitions extends EndpointDefinitions>({\n  api,\n  moduleOptions: {\n    batch,\n    hooks: {\n      useDispatch,\n      useSelector,\n      useStore\n    },\n    unstable__sideEffectsInRender,\n    createSelector\n  },\n  serializeQueryArgs,\n  context\n}: {\n  api: Api<any, Definitions, any, any, CoreModule>;\n  moduleOptions: Required<ReactHooksModuleOptions>;\n  serializeQueryArgs: SerializeQueryArgs<any>;\n  context: ApiContext<Definitions>;\n}) {\n  const usePossiblyImmediateEffect: (effect: () => void | undefined, deps?: DependencyList) => void = unstable__sideEffectsInRender ? cb => cb() : useEffect;\n  type UnsubscribePromiseRef = React.RefObject<{\n    unsubscribe?: () => void;\n  } | undefined>;\n  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) => ref.current?.unsubscribe?.();\n  const endpointDefinitions = context.endpointDefinitions;\n  return {\n    buildQueryHooks,\n    buildInfiniteQueryHooks,\n    buildMutationHook,\n    usePrefetch\n  };\n  function queryStatePreSelector(currentState: QueryResultSelectorResult<any>, lastResult: UseQueryStateDefaultResult<any> | undefined, queryArgs: any): UseQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n\n    // isSuccess = true when data is present and we're not refetching after an error.\n    // That includes cases where the _current_ item is either actively\n    // fetching or about to fetch due to an uninitialized entry.\n    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseQueryStateDefaultResult<any>;\n  }\n  function infiniteQueryStatePreSelector(currentState: InfiniteQueryResultSelectorResult<any>, lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined, queryArgs: any): UseInfiniteQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n    // isSuccess = true when data is present\n    const isSuccess = currentState.isSuccess || isFetching && hasData;\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseInfiniteQueryStateDefaultResult<any>;\n  }\n  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, defaultOptions?: PrefetchOptions) {\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n    const stableDefaultOptions = useShallowStableValue(defaultOptions);\n    return useCallback((arg: any, options?: PrefetchOptions) => dispatch((api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\n      ...stableDefaultOptions,\n      ...options\n    })), [endpointName, dispatch, stableDefaultOptions]);\n  }\n  function useQuerySubscriptionCommonImpl<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(endpointName: string, arg: unknown | SkipToken, {\n    refetchOnReconnect,\n    refetchOnFocus,\n    refetchOnMountOrArgChange,\n    skip = false,\n    pollingInterval = 0,\n    skipPollingIfUnfocused = false,\n    ...rest\n  }: UseQuerySubscriptionOptions = {}) {\n    const {\n      initiate\n    } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n\n    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.\n    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(undefined);\n    if (!subscriptionSelectorsRef.current) {\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n    You must add the middleware for RTK-Query to function correctly!`);\n        }\n      }\n      subscriptionSelectorsRef.current = returnedValue as unknown as SubscriptionSelectors;\n    }\n    const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n    const stableSubscriptionOptions = useShallowStableValue({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval,\n      skipPollingIfUnfocused\n    });\n    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>).initialPageParam;\n    const stableInitialPageParam = useShallowStableValue(initialPageParam);\n    const refetchCachedPages = (rest as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);\n\n    /**\n     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n     */\n    const promiseRef = useRef<T | undefined>(undefined);\n    let {\n      queryCacheKey,\n      requestId\n    } = promiseRef.current || {};\n\n    // HACK We've saved the middleware subscription lookup callbacks into a ref,\n    // so we can directly check here if the subscription exists for this query.\n    let currentRenderHasSubscription = false;\n    if (queryCacheKey && requestId) {\n      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n    }\n    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== undefined;\n    usePossiblyImmediateEffect((): void | undefined => {\n      if (subscriptionRemoved) {\n        promiseRef.current = undefined;\n      }\n    }, [subscriptionRemoved]);\n    usePossiblyImmediateEffect((): void | undefined => {\n      const lastPromise = promiseRef.current;\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'removeMeOnCompilation') {\n        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\n        console.log(subscriptionRemoved);\n      }\n      if (stableArg === skipToken) {\n        lastPromise?.unsubscribe();\n        promiseRef.current = undefined;\n        return;\n      }\n      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n      if (!lastPromise || lastPromise.arg !== stableArg) {\n        lastPromise?.unsubscribe();\n        const promise = dispatch(initiate(stableArg, {\n          subscriptionOptions: stableSubscriptionOptions,\n          forceRefetch: refetchOnMountOrArgChange,\n          ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {\n            initialPageParam: stableInitialPageParam,\n            refetchCachedPages: stableRefetchCachedPages\n          } : {})\n        }));\n        promiseRef.current = promise as T;\n      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n      }\n    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);\n    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const;\n  }\n  function buildUseQueryState(endpointName: string, preSelector: typeof queryStatePreSelector | typeof infiniteQueryStatePreSelector) {\n    const useQueryState = (arg: any, {\n      skip = false,\n      selectFromResult\n    }: UseQueryStateOptions<any, any> | UseInfiniteQueryStateOptions<any, any> = {}) => {\n      const {\n        select\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n      type ApiRootState = Parameters<ReturnType<typeof select>>[0];\n      const lastValue = useRef<any>(undefined);\n      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(() =>\n      // Normally ts-ignores are bad and should be avoided, but we're\n      // already casting this selector to be `Selector<any>` anyway,\n      // so the inconsistencies don't matter here\n      // @ts-ignore\n      createSelector([\n      // @ts-ignore\n      select(stableArg), (_: ApiRootState, lastResult: any) => lastResult, (_: ApiRootState) => stableArg], preSelector, {\n        memoizeOptions: {\n          resultEqualityCheck: shallowEqual\n        }\n      }), [select, stableArg]);\n      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n        devModeChecks: {\n          identityFunctionCheck: 'never'\n        }\n      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n      const currentState = useSelector((state: RootState<Definitions, any, any>) => querySelector(state, lastValue.current), shallowEqual);\n      const store = useStore<RootState<Definitions, any, any>>();\n      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n      useIsomorphicLayoutEffect(() => {\n        lastValue.current = newLastValue;\n      }, [newLastValue]);\n      return currentState;\n    };\n    return useQueryState;\n  }\n  function usePromiseRefUnsubscribeOnUnmount(promiseRef: UnsubscribePromiseRef) {\n    useEffect(() => {\n      return () => {\n        unsubscribePromiseRef(promiseRef)\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        ;\n        (promiseRef.current as any) = undefined;\n      };\n    }, [promiseRef]);\n  }\n  function refetchOrErrorIfUnmounted<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(promiseRef: React.RefObject<T | undefined>): T {\n    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : 'Cannot refetch a query that has not been started yet.');\n    return promiseRef.current.refetch() as T;\n  }\n  function buildQueryHooks(endpointName: string): QueryHooks<any> {\n    const useQuerySubscription: UseQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef] = useQuerySubscriptionCommonImpl<QueryActionCreatorResult<any>>(endpointName, arg, options);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      return useMemo(() => ({\n        /**\n         * A method to manually refetch data for the query\n         */\n        refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n      }), [promiseRef]);\n    };\n    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval = 0,\n      skipPollingIfUnfocused = false\n    } = {}) => {\n      const {\n        initiate\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE);\n\n      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n       */\n      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(undefined);\n      const stableSubscriptionOptions = useShallowStableValue({\n        refetchOnReconnect,\n        refetchOnFocus,\n        pollingInterval,\n        skipPollingIfUnfocused\n      });\n      usePossiblyImmediateEffect(() => {\n        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n        if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n        }\n      }, [stableSubscriptionOptions]);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n      const trigger = useCallback(function (arg: any, preferCacheValue = false) {\n        let promise: QueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch(initiate(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            forceRefetch: !preferCacheValue\n          }));\n          setArg(arg);\n        });\n        return promise!;\n      }, [dispatch, initiate]);\n      const reset = useCallback(() => {\n        if (promiseRef.current?.queryCacheKey) {\n          dispatch(api.internalActions.removeQueryResult({\n            queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey\n          }));\n        }\n      }, [dispatch]);\n\n      /* cleanup on unmount */\n      useEffect(() => {\n        return () => {\n          unsubscribePromiseRef(promiseRef);\n        };\n      }, []);\n\n      /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\n      useEffect(() => {\n        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n          trigger(arg, true);\n        }\n      }, [arg, trigger]);\n      return useMemo(() => [trigger, arg, {\n        reset\n      }] as const, [trigger, arg, reset]);\n    };\n    const useQueryState: UseQueryState<any> = buildUseQueryState(endpointName, queryStatePreSelector);\n    return {\n      useQueryState,\n      useQuerySubscription,\n      useLazyQuerySubscription,\n      useLazyQuery(options) {\n        const [trigger, arg, {\n          reset\n        }] = useLazyQuerySubscription(options);\n        const queryStateResults = useQueryState(arg, {\n          ...options,\n          skip: arg === UNINITIALIZED_VALUE\n        });\n        const info = useMemo(() => ({\n          lastArg: arg\n        }), [arg]);\n        return useMemo(() => [trigger, {\n          ...queryStateResults,\n          reset\n        }, info], [trigger, queryStateResults, reset, info]);\n      },\n      useQuery(arg, options) {\n        const querySubscriptionResults = useQuerySubscription(arg, options);\n        const queryStateResults = useQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          ...querySubscriptionResults\n        }), [queryStateResults, querySubscriptionResults]);\n      }\n    };\n  }\n  function buildInfiniteQueryHooks(endpointName: string): InfiniteQueryHooks<any> {\n    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(endpointName, arg, options);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n\n      // Extract and stabilize the hook-level refetchCachedPages option\n      const hookRefetchCachedPages = (options as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);\n      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(function (arg: unknown, direction: 'forward' | 'backward') {\n        let promise: InfiniteQueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch((initiate as StartInfiniteQueryActionCreator<any>)(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            direction\n          }));\n        });\n        return promise!;\n      }, [promiseRef, dispatch, initiate]);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n      const refetch = useCallback((options?: Pick<UseInfiniteQuerySubscriptionOptions<any>, 'refetchCachedPages'>) => {\n        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(38) : 'Cannot refetch a query that has not been started yet.');\n        // Merge per-call options with hook-level default\n        const mergedOptions = {\n          refetchCachedPages: options?.refetchCachedPages ?? stableHookRefetchCachedPages\n        };\n        return promiseRef.current.refetch(mergedOptions);\n      }, [promiseRef, stableHookRefetchCachedPages]);\n      return useMemo(() => {\n        const fetchNextPage = () => {\n          return trigger(stableArg, 'forward');\n        };\n        const fetchPreviousPage = () => {\n          return trigger(stableArg, 'backward');\n        };\n        return {\n          trigger,\n          /**\n           * A method to manually refetch data for the query\n           */\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        };\n      }, [refetch, trigger, stableArg]);\n    };\n    const useInfiniteQueryState: UseInfiniteQueryState<any> = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n    return {\n      useInfiniteQueryState,\n      useInfiniteQuerySubscription,\n      useInfiniteQuery(arg, options) {\n        const {\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        } = useInfiniteQuerySubscription(arg, options);\n        const queryStateResults = useInfiniteQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, 'hasNextPage', 'hasPreviousPage');\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          fetchNextPage,\n          fetchPreviousPage,\n          refetch\n        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n      }\n    };\n  }\n  function buildMutationHook(name: string): UseMutation<any> {\n    return ({\n      selectFromResult,\n      fixedCacheKey\n    } = {}) => {\n      const {\n        select,\n        initiate\n      } = api.endpoints[name] as ApiEndpointMutation<MutationDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>();\n      useEffect(() => () => {\n        if (!promise?.arg.fixedCacheKey) {\n          promise?.reset();\n        }\n      }, [promise]);\n      const triggerMutation = useCallback(function (arg: Parameters<typeof initiate>['0']) {\n        const promise = dispatch(initiate(arg, {\n          fixedCacheKey\n        }));\n        setPromise(promise);\n        return promise;\n      }, [dispatch, initiate, fixedCacheKey]);\n      const {\n        requestId\n      } = promise || {};\n      const selectDefaultResult = useMemo(() => select({\n        fixedCacheKey,\n        requestId: promise?.requestId\n      }), [fixedCacheKey, promise, select]);\n      const mutationSelector = useMemo((): Selector<RootState<Definitions, any, any>, any> => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n      const currentState = useSelector(mutationSelector, shallowEqual);\n      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : undefined;\n      const reset = useCallback(() => {\n        batch(() => {\n          if (promise) {\n            setPromise(undefined);\n          }\n          if (fixedCacheKey) {\n            dispatch(api.internalActions.removeMutationResult({\n              requestId,\n              fixedCacheKey\n            }));\n          }\n        });\n      }, [dispatch, fixedCacheKey, promise, requestId]);\n      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, 'endpointName');\n      useDebugValue(debugValue);\n      const finalState = useMemo(() => ({\n        ...currentState,\n        originalArgs,\n        reset\n      }), [currentState, originalArgs, reset]);\n      return useMemo(() => [triggerMutation, finalState] as const, [triggerMutation, finalState]);\n    };\n  }\n}","export { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from 'react';","export { shallowEqual, Provider, ReactReduxContext } from 'react-redux';","export const UNINITIALIZED_VALUE = Symbol();\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE;","import { useEffect, useRef, useMemo } from './reactImports';\nimport { copyWithStructuralSharing } from './rtkqImports';\nexport function useStableQueryArgs<T>(queryArgs: T) {\n  const cache = useRef(queryArgs);\n  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n  useEffect(() => {\n    if (cache.current !== copy) {\n      cache.current = copy;\n    }\n  }, [copy]);\n  return copy;\n}","import { useEffect, useRef } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nexport function useShallowStableValue<T>(value: T) {\n  const cache = useRef(value);\n  useEffect(() => {\n    if (!shallowEqual(cache.current, value)) {\n      cache.current = value;\n    }\n  }, [value]);\n  return shallowEqual(cache.current, value) ? cache.current : value;\n}","// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nimport { buildCreateApi, coreModule } from './rtkqImports';\nimport { reactHooksModule, reactHooksModuleName } from './module';\nexport * from '@reduxjs/toolkit/query';\nexport { ApiProvider } from './ApiProvider';\nconst createApi = /* @__PURE__ */buildCreateApi(coreModule(), reactHooksModule());\nexport type { TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult, TypedUseQuerySubscriptionResult, TypedLazyQueryTrigger, TypedUseLazyQuery, TypedUseMutation, TypedMutationTrigger, TypedQueryStateSelector, TypedUseQueryState, TypedUseQuery, TypedUseQuerySubscription, TypedUseLazyQuerySubscription, TypedUseQueryStateOptions, TypedUseLazyQueryStateResult, TypedUseInfiniteQuery, TypedUseInfiniteQueryHookResult, TypedUseInfiniteQueryStateResult, TypedUseInfiniteQuerySubscriptionResult, TypedUseInfiniteQueryStateOptions, TypedInfiniteQueryStateSelector, TypedUseInfiniteQuerySubscription, TypedUseInfiniteQueryState, TypedLazyInfiniteQueryTrigger } from './buildHooks';\nexport { UNINITIALIZED_VALUE } from './constants';\nexport { createApi, reactHooksModule, reactHooksModuleName };","import { configureStore, formatProdErrorMessage as _formatProdErrorMessage } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport { useContext, useEffect } from './reactImports';\nimport * as React from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { Provider, ReactReduxContext } from './reactReduxImports';\nimport { setupListeners } from './rtkqImports';\nimport type { Api } from '@reduxjs/toolkit/query';\n\n/**\n * Can be used as a `Provider` if you **do not already have a Redux store**.\n *\n * @example\n * ```tsx\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\n * import * as React from 'react';\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\n * import { Pokemon } from './features/Pokemon';\n *\n * function App() {\n *   return (\n *     <ApiProvider api={api}>\n *       <Pokemon />\n *     </ApiProvider>\n *   );\n * }\n * ```\n *\n * @remarks\n * Using this together with an existing redux store, both will\n * conflict with each other - please use the traditional redux setup\n * in that case.\n */\nexport function ApiProvider(props: {\n  children: any;\n  api: Api<any, {}, any, any>;\n  setupListeners?: Parameters<typeof setupListeners>[1] | false;\n  context?: Context<ReactReduxContextValue | null>;\n}) {\n  const context = props.context || ReactReduxContext;\n  const existingContext = useContext(context);\n  if (existingContext) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(35) : 'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.');\n  }\n  const [store] = React.useState(() => configureStore({\n    reducer: {\n      [props.api.reducerPath]: props.api.reducer\n    },\n    middleware: gDM => gDM().concat(props.api.middleware)\n  }));\n  // Adds the event listeners for online/offline/focus/etc\n  useEffect((): undefined | (() => void) => props.setupListeners === false ? undefined : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n  return <Provider store={store} context={context}>\n      {props.children}\n    </Provider>;\n}"],"mappings":"AAAA,OAAS,kBAAAA,GAAgB,cAAAC,GAAY,6BAAAC,GAA2B,kBAAAC,GAAgB,eAAAC,GAAa,aAAAC,MAAiB,yBCA9G,MAAkE,mBAElE,OAAS,SAASC,GAAS,eAAeC,GAAe,eAAeC,GAAe,YAAYC,OAAkB,cAErH,OAAS,kBAAkBC,OAAuB,WCJ3C,SAASC,EAAWC,EAAa,CACtC,OAAOA,EAAI,QAAQA,EAAI,CAAC,EAAGA,EAAI,CAAC,EAAE,YAAY,CAAC,CACjD,CCuYO,IAAMC,GAAiB,QACjBC,GAAoB,WACpBC,GAAyB,gBA+c/B,SAASC,GAAkB,EAA8G,CAC9I,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAiH,CACpJ,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,EAA0B,EAA2H,CACnK,OAAO,EAAE,OAASH,EACpB,CC91BO,SAASI,EAA6BC,KAAcC,EAAqC,CAC9F,OAAO,OAAO,OAAOD,EAAQ,GAAGC,CAAI,CACtC,CCNA,OAA4D,0BAA0BC,GAA0B,0BAA0BC,OAAgC,mBCA1K,OAAS,aAAAC,EAAW,UAAAC,EAAQ,WAAAC,EAAS,cAAAC,GAAY,eAAAC,EAAa,iBAAAC,EAAe,mBAAAC,GAAiB,YAAAC,OAAgB,QCA9G,OAAS,gBAAAC,EAAc,YAAAC,GAAU,qBAAAC,OAAyB,cCAnD,IAAMC,EAAsB,OAAO,ECEnC,SAASC,EAAsBC,EAAc,CAClD,IAAMC,EAAQC,EAAOF,CAAS,EACxBG,EAAOC,EAAQ,IAAMC,GAA0BJ,EAAM,QAASD,CAAS,EAAG,CAACA,CAAS,CAAC,EAC3F,OAAAM,EAAU,IAAM,CACVL,EAAM,UAAYE,IACpBF,EAAM,QAAUE,EAEpB,EAAG,CAACA,CAAI,CAAC,EACFA,CACT,CCTO,SAASI,EAAyBC,EAAU,CACjD,IAAMC,EAAQC,EAAOF,CAAK,EAC1B,OAAAG,EAAU,IAAM,CACTC,EAAaH,EAAM,QAASD,CAAK,IACpCC,EAAM,QAAUD,EAEpB,EAAG,CAACA,CAAK,CAAC,EACHI,EAAaH,EAAM,QAASD,CAAK,EAAIC,EAAM,QAAUD,CAC9D,CLSA,IAAMK,GAAY,IAAS,OAAO,OAAW,KAAe,OAAO,OAAO,SAAa,KAAe,OAAO,OAAO,SAAS,cAAkB,IACzIC,GAAuBD,GAAU,EAIjCE,GAAyB,IAAM,OAAO,UAAc,KAAe,UAAU,UAAY,cACzFC,GAA+BD,GAAuB,EACtDE,GAA+B,IAAMH,IAASE,GAAgBE,GAAkBC,EACzEC,GAA2CH,GAA6B,EAq0B/EI,GAA4DC,GAC5DA,EAAS,gBACJ,CACL,GAAGA,EACH,gBAAiB,GACjB,WAAY,GACZ,UAAWA,EAAS,OAAS,OAG7B,OAAQC,GAAY,OACtB,EAEKD,EAET,SAASE,GAA2BC,KAAWC,EAAuB,CACpE,IAAMC,EAAW,CAAC,EAClB,OAAAD,EAAK,QAAQE,GAAO,CAClBD,EAAIC,CAAG,EAAIH,EAAIG,CAAG,CACpB,CAAC,EACMD,CACT,CACA,IAAME,GAA2B,CAAC,OAAQ,SAAU,YAAa,YAAa,UAAW,OAAO,EAWzF,SAASC,GAAoD,CAClE,IAAAC,EACA,cAAe,CACb,MAAAC,EACA,MAAO,CACL,YAAAC,EACA,YAAAC,EACA,SAAAC,CACF,EACA,8BAAAC,EACA,eAAAC,CACF,EACA,mBAAAC,EACA,QAAAC,CACF,EAKG,CACD,IAAMC,EAA8FJ,EAAgCK,GAAMA,EAAG,EAAItB,EAI3IuB,EAAyBC,GAA+BA,EAAI,SAAS,cAAc,EACnFC,EAAsBL,EAAQ,oBACpC,MAAO,CACL,gBAAAM,GACA,wBAAAC,GACA,kBAAAC,GACA,YAAAC,CACF,EACA,SAASC,EAAsBC,EAA8CC,EAAyDC,EAAiD,CAIrL,GAAID,GAAY,cAAgBD,EAAa,gBAAiB,CAC5D,GAAM,CACJ,aAAAG,CACF,EAAIF,EACEG,EAAqBV,EAAoBS,CAAY,EACvDD,IAAcG,GAAajB,EAAmB,CAChD,UAAWa,EAAW,aACtB,mBAAAG,EACA,aAAAD,CACF,CAAC,IAAMf,EAAmB,CACxB,UAAAc,EACA,mBAAAE,EACA,aAAAD,CACF,CAAC,IAAGF,EAAa,OACnB,CAGA,IAAIK,EAAON,EAAa,UAAYA,EAAa,KAAOC,GAAY,KAChEK,IAAS,SAAWA,EAAON,EAAa,MAC5C,IAAMO,EAAUD,IAAS,OAGnBE,EAAaR,EAAa,UAG1BS,GAAa,CAACR,GAAcA,EAAW,WAAaA,EAAW,kBAAoB,CAACM,GAAWC,EAK/FE,EAAYV,EAAa,WAAaO,IAAYC,GAAc,CAACP,GAAY,SAAWD,EAAa,iBAC3G,MAAO,CACL,GAAGA,EACH,KAAAM,EACA,YAAaN,EAAa,KAC1B,WAAAQ,EACA,UAAAC,EACA,UAAAC,CACF,CACF,CACA,SAASC,EAA8BX,EAAsDC,EAAiEC,EAAyD,CAIrN,GAAID,GAAY,cAAgBD,EAAa,gBAAiB,CAC5D,GAAM,CACJ,aAAAG,CACF,EAAIF,EACEG,EAAqBV,EAAoBS,CAAY,EACvDD,IAAcG,GAAajB,EAAmB,CAChD,UAAWa,EAAW,aACtB,mBAAAG,EACA,aAAAD,CACF,CAAC,IAAMf,EAAmB,CACxB,UAAAc,EACA,mBAAAE,EACA,aAAAD,CACF,CAAC,IAAGF,EAAa,OACnB,CAGA,IAAIK,EAAON,EAAa,UAAYA,EAAa,KAAOC,GAAY,KAChEK,IAAS,SAAWA,EAAON,EAAa,MAC5C,IAAMO,EAAUD,IAAS,OAGnBE,EAAaR,EAAa,UAE1BS,GAAa,CAACR,GAAcA,EAAW,WAAaA,EAAW,kBAAoB,CAACM,GAAWC,EAE/FE,EAAYV,EAAa,WAAaQ,GAAcD,EAC1D,MAAO,CACL,GAAGP,EACH,KAAAM,EACA,YAAaN,EAAa,KAC1B,WAAAQ,EACA,UAAAC,EACA,UAAAC,CACF,CACF,CACA,SAASZ,EAAyDK,EAA4BS,EAAkC,CAC9H,IAAMC,EAAW9B,EAAoD,EAC/D+B,EAAuBC,EAAsBH,CAAc,EACjE,OAAOI,EAAY,CAACC,EAAUC,IAA8BL,EAAUhC,EAAI,KAAK,SAAkCsB,EAAcc,EAAK,CAClI,GAAGH,EACH,GAAGI,CACL,CAAC,CAAC,EAAG,CAACf,EAAcU,EAAUC,CAAoB,CAAC,CACrD,CACA,SAASK,EAAgHhB,EAAsBc,EAA0B,CACvK,mBAAAG,EACA,eAAAC,EACA,0BAAAC,EACA,KAAAC,EAAO,GACP,gBAAAC,EAAkB,EAClB,uBAAAC,EAAyB,GACzB,GAAGC,CACL,EAAiC,CAAC,EAAG,CACnC,GAAM,CACJ,SAAAC,CACF,EAAI9C,EAAI,UAAUsB,CAAY,EACxBU,EAAW9B,EAAoD,EAG/D6C,EAA2BC,EAA0C,MAAS,EACpF,GAAI,CAACD,EAAyB,QAAS,CACrC,IAAME,EAAgBjB,EAAShC,EAAI,gBAAgB,8BAA8B,CAAC,EAOlF+C,EAAyB,QAAUE,CACrC,CACA,IAAMC,EAAYC,EAAmBT,EAAOlB,EAAYY,CAAG,EACrDgB,EAA4BlB,EAAsB,CACtD,mBAAAK,EACA,eAAAC,EACA,gBAAAG,EACA,uBAAAC,CACF,CAAC,EACKS,EAAoBR,EAAkD,iBACtES,EAAyBpB,EAAsBmB,CAAgB,EAC/DE,EAAsBV,EAAkD,mBACxEW,EAA2BtB,EAAsBqB,CAAkB,EAKnEE,EAAaT,EAAsB,MAAS,EAC9C,CACF,cAAAU,EACA,UAAAC,EACF,EAAIF,EAAW,SAAW,CAAC,EAIvBG,GAA+B,GAC/BF,GAAiBC,KACnBC,GAA+Bb,EAAyB,QAAQ,oBAAoBW,EAAeC,EAAS,GAE9G,IAAME,GAAsB,CAACD,IAAgCH,EAAW,UAAY,OACpF,OAAAhD,EAA2B,IAAwB,CAC7CoD,KACFJ,EAAW,QAAU,OAEzB,EAAG,CAACI,EAAmB,CAAC,EACxBpD,EAA2B,IAAwB,CACjD,IAAMqD,EAAcL,EAAW,QAK/B,GAAIP,IAAc1B,EAAW,CAC3BsC,GAAa,YAAY,EACzBL,EAAW,QAAU,OACrB,MACF,CACA,IAAMM,GAA0BN,EAAW,SAAS,oBACpD,GAAI,CAACK,GAAeA,EAAY,MAAQZ,EAAW,CACjDY,GAAa,YAAY,EACzB,IAAME,GAAUhC,EAASc,EAASI,EAAW,CAC3C,oBAAqBE,EACrB,aAAcX,EACd,GAAIwB,EAA0BpD,EAAoBS,CAAY,CAAC,EAAI,CACjE,iBAAkBgC,EAClB,mBAAoBE,CACtB,EAAI,CAAC,CACP,CAAC,CAAC,EACFC,EAAW,QAAUO,EACvB,MAAWZ,IAA8BW,IACvCD,EAAY,0BAA0BV,CAAyB,CAEnE,EAAG,CAACpB,EAAUc,EAAUL,EAA2BS,EAAWE,EAA2BS,GAAqBP,EAAwBE,EAA0BlC,CAAY,CAAC,EACtK,CAACmC,EAAYzB,EAAUc,EAAUM,CAAyB,CACnE,CACA,SAASc,EAAmB5C,EAAsB6C,EAAkF,CAoClI,MAnCsB,CAAC/B,EAAU,CAC/B,KAAAM,EAAO,GACP,iBAAA0B,CACF,EAA6E,CAAC,IAAM,CAClF,GAAM,CACJ,OAAAC,CACF,EAAIrE,EAAI,UAAUsB,CAAY,EACxB4B,EAAYC,EAAmBT,EAAOlB,EAAYY,CAAG,EAErDkC,EAAYtB,EAAY,MAAS,EACjCuB,EAA0DC,EAAQ,IAKxElE,EAAe,CAEf+D,EAAOnB,CAAS,EAAG,CAACuB,EAAiBrD,IAAoBA,EAAaqD,GAAoBvB,CAAS,EAAGiB,EAAa,CACjH,eAAgB,CACd,oBAAqBO,CACvB,CACF,CAAC,EAAG,CAACL,EAAQnB,CAAS,CAAC,EACjByB,EAAoDH,EAAQ,IAAMJ,EAAmB9D,EAAe,CAACiE,CAAmB,EAAGH,EAAkB,CACjJ,cAAe,CACb,sBAAuB,OACzB,CACF,CAAC,EAAIG,EAAqB,CAACA,EAAqBH,CAAgB,CAAC,EAC3DjD,EAAehB,EAAayE,GAA4CD,EAAcC,EAAON,EAAU,OAAO,EAAGI,CAAY,EAC7HG,EAAQzE,EAA2C,EACnD0E,EAAeP,EAAoBM,EAAM,SAAS,EAAGP,EAAU,OAAO,EAC5E,OAAAjF,GAA0B,IAAM,CAC9BiF,EAAU,QAAUQ,CACtB,EAAG,CAACA,CAAY,CAAC,EACV3D,CACT,CAEF,CACA,SAAS4D,EAAkCtB,EAAmC,CAC5ErE,EAAU,IACD,IAAM,CACXuB,EAAsB8C,CAAU,EAG/BA,EAAW,QAAkB,MAChC,EACC,CAACA,CAAU,CAAC,CACjB,CACA,SAASuB,EAA2GvB,EAA+C,CACjK,GAAI,CAACA,EAAW,QAAS,MAAM,IAAI,MAA8CwB,GAAyB,EAAE,CAA2D,EACvK,OAAOxB,EAAW,QAAQ,QAAQ,CACpC,CACA,SAAS3C,GAAgBQ,EAAuC,CAC9D,IAAM4D,EAAkD,CAAC9C,EAAUC,EAAU,CAAC,IAAM,CAClF,GAAM,CAACoB,CAAU,EAAInB,EAA8DhB,EAAcc,EAAKC,CAAO,EAC7G,OAAA0C,EAAkCtB,CAAU,EACrCe,EAAQ,KAAO,CAIpB,QAAS,IAAMQ,EAA0BvB,CAAU,CACrD,GAAI,CAACA,CAAU,CAAC,CAClB,EACM0B,EAA0D,CAAC,CAC/D,mBAAA5C,EACA,eAAAC,EACA,gBAAAG,EAAkB,EAClB,uBAAAC,EAAyB,EAC3B,EAAI,CAAC,IAAM,CACT,GAAM,CACJ,SAAAE,CACF,EAAI9C,EAAI,UAAUsB,CAAY,EACxBU,EAAW9B,EAAoD,EAC/D,CAACkC,EAAKgD,CAAM,EAAIC,GAAcC,CAAmB,EAMjD7B,EAAaT,EAAkD,MAAS,EACxEI,EAA4BlB,EAAsB,CACtD,mBAAAK,EACA,eAAAC,EACA,gBAAAG,EACA,uBAAAC,CACF,CAAC,EACDnC,EAA2B,IAAM,CAC/B,IAAMsD,EAA0BN,EAAW,SAAS,oBAChDL,IAA8BW,GAChCN,EAAW,SAAS,0BAA0BL,CAAyB,CAE3E,EAAG,CAACA,CAAyB,CAAC,EAC9B,IAAMmC,EAAyBvC,EAAOI,CAAyB,EAC/D3C,EAA2B,IAAM,CAC/B8E,EAAuB,QAAUnC,CACnC,EAAG,CAACA,CAAyB,CAAC,EAC9B,IAAMoC,EAAUrD,EAAY,SAAUC,EAAUqD,EAAmB,GAAO,CACxE,IAAIzB,EACJ,OAAA/D,EAAM,IAAM,CACVU,EAAsB8C,CAAU,EAChCA,EAAW,QAAUO,EAAUhC,EAASc,EAASV,EAAK,CACpD,oBAAqBmD,EAAuB,QAC5C,aAAc,CAACE,CACjB,CAAC,CAAC,EACFL,EAAOhD,CAAG,CACZ,CAAC,EACM4B,CACT,EAAG,CAAChC,EAAUc,CAAQ,CAAC,EACjB4C,EAAQvD,EAAY,IAAM,CAC1BsB,EAAW,SAAS,eACtBzB,EAAShC,EAAI,gBAAgB,kBAAkB,CAC7C,cAAeyD,EAAW,SAAS,aACrC,CAAC,CAAC,CAEN,EAAG,CAACzB,CAAQ,CAAC,EAGb,OAAA5C,EAAU,IACD,IAAM,CACXuB,EAAsB8C,CAAU,CAClC,EACC,CAAC,CAAC,EAGLrE,EAAU,IAAM,CACVgD,IAAQkD,GAAuB,CAAC7B,EAAW,SAC7C+B,EAAQpD,EAAK,EAAI,CAErB,EAAG,CAACA,EAAKoD,CAAO,CAAC,EACVhB,EAAQ,IAAM,CAACgB,EAASpD,EAAK,CAClC,MAAAsD,CACF,CAAC,EAAY,CAACF,EAASpD,EAAKsD,CAAK,CAAC,CACpC,EACMC,EAAoCzB,EAAmB5C,EAAcJ,CAAqB,EAChG,MAAO,CACL,cAAAyE,EACA,qBAAAT,EACA,yBAAAC,EACA,aAAa9C,EAAS,CACpB,GAAM,CAACmD,EAASpD,EAAK,CACnB,MAAAsD,CACF,CAAC,EAAIP,EAAyB9C,CAAO,EAC/BuD,EAAoBD,EAAcvD,EAAK,CAC3C,GAAGC,EACH,KAAMD,IAAQkD,CAChB,CAAC,EACKO,EAAOrB,EAAQ,KAAO,CAC1B,QAASpC,CACX,GAAI,CAACA,CAAG,CAAC,EACT,OAAOoC,EAAQ,IAAM,CAACgB,EAAS,CAC7B,GAAGI,EACH,MAAAF,CACF,EAAGG,CAAI,EAAG,CAACL,EAASI,EAAmBF,EAAOG,CAAI,CAAC,CACrD,EACA,SAASzD,EAAKC,EAAS,CACrB,IAAMyD,EAA2BZ,EAAqB9C,EAAKC,CAAO,EAC5DuD,EAAoBD,EAAcvD,EAAK,CAC3C,iBAAkBA,IAAQZ,GAAaa,GAAS,KAAO,OAAY/C,GACnE,GAAG+C,CACL,CAAC,EACK0D,EAAatG,GAAKmG,EAAmB,GAAG9F,EAAwB,EACtE,OAAAkG,EAAcD,CAAU,EACjBvB,EAAQ,KAAO,CACpB,GAAGoB,EACH,GAAGE,CACL,GAAI,CAACF,EAAmBE,CAAwB,CAAC,CACnD,CACF,CACF,CACA,SAAS/E,GAAwBO,EAA+C,CAC9E,IAAM2E,EAAkE,CAAC7D,EAAUC,EAAU,CAAC,IAAM,CAClG,GAAM,CAACoB,EAAYzB,EAAUc,EAAUM,CAAyB,EAAId,EAAsEhB,EAAcc,EAAKC,CAAO,EAC9JkD,EAAyBvC,EAAOI,CAAyB,EAC/D3C,EAA2B,IAAM,CAC/B8E,EAAuB,QAAUnC,CACnC,EAAG,CAACA,CAAyB,CAAC,EAG9B,IAAM8C,EAA0B7D,EAAqD,mBAC/E8D,EAA+BjE,EAAsBgE,CAAsB,EAC3EV,EAAyCrD,EAAY,SAAUC,EAAcgE,EAAmC,CACpH,IAAIpC,EACJ,OAAA/D,EAAM,IAAM,CACVU,EAAsB8C,CAAU,EAChCA,EAAW,QAAUO,EAAUhC,EAAUc,EAAkDV,EAAK,CAC9F,oBAAqBmD,EAAuB,QAC5C,UAAAa,CACF,CAAC,CAAC,CACJ,CAAC,EACMpC,CACT,EAAG,CAACP,EAAYzB,EAAUc,CAAQ,CAAC,EACnCiC,EAAkCtB,CAAU,EAC5C,IAAMP,EAAYC,EAAmBd,EAAQ,KAAOb,EAAYY,CAAG,EAC7DiE,EAAUlE,EAAaE,GAAmF,CAC9G,GAAI,CAACoB,EAAW,QAAS,MAAM,IAAI,MAA8C6C,GAAyB,EAAE,CAA2D,EAEvK,IAAMC,EAAgB,CACpB,mBAAoBlE,GAAS,oBAAsB8D,CACrD,EACA,OAAO1C,EAAW,QAAQ,QAAQ8C,CAAa,CACjD,EAAG,CAAC9C,EAAY0C,CAA4B,CAAC,EAC7C,OAAO3B,EAAQ,KAON,CACL,QAAAgB,EAIA,QAAAa,EACA,cAZoB,IACbb,EAAQtC,EAAW,SAAS,EAYnC,kBAVwB,IACjBsC,EAAQtC,EAAW,UAAU,CAUtC,GACC,CAACmD,EAASb,EAAStC,CAAS,CAAC,CAClC,EACMsD,EAAoDtC,EAAmB5C,EAAcQ,CAA6B,EACxH,MAAO,CACL,sBAAA0E,EACA,6BAAAP,EACA,iBAAiB7D,EAAKC,EAAS,CAC7B,GAAM,CACJ,QAAAgE,EACA,cAAAI,EACA,kBAAAC,CACF,EAAIT,EAA6B7D,EAAKC,CAAO,EACvCuD,EAAoBY,EAAsBpE,EAAK,CACnD,iBAAkBA,IAAQZ,GAAaa,GAAS,KAAO,OAAY/C,GACnE,GAAG+C,CACL,CAAC,EACK0D,EAAatG,GAAKmG,EAAmB,GAAG9F,GAA0B,cAAe,iBAAiB,EACxG,OAAAkG,EAAcD,CAAU,EACjBvB,EAAQ,KAAO,CACpB,GAAGoB,EACH,cAAAa,EACA,kBAAAC,EACA,QAAAL,CACF,GAAI,CAACT,EAAmBa,EAAeC,EAAmBL,CAAO,CAAC,CACpE,CACF,CACF,CACA,SAASrF,GAAkB2F,EAAgC,CACzD,MAAO,CAAC,CACN,iBAAAvC,EACA,cAAAwC,CACF,EAAI,CAAC,IAAM,CACT,GAAM,CACJ,OAAAvC,EACA,SAAAvB,CACF,EAAI9C,EAAI,UAAU2G,CAAI,EAChB3E,EAAW9B,EAAoD,EAC/D,CAAC8D,EAAS6C,CAAU,EAAIxB,GAA2C,EACzEjG,EAAU,IAAM,IAAM,CACf4E,GAAS,IAAI,eAChBA,GAAS,MAAM,CAEnB,EAAG,CAACA,CAAO,CAAC,EACZ,IAAM8C,EAAkB3E,EAAY,SAAUC,EAAuC,CACnF,IAAM4B,EAAUhC,EAASc,EAASV,EAAK,CACrC,cAAAwE,CACF,CAAC,CAAC,EACF,OAAAC,EAAW7C,CAAO,EACXA,CACT,EAAG,CAAChC,EAAUc,EAAU8D,CAAa,CAAC,EAChC,CACJ,UAAAjD,CACF,EAAIK,GAAW,CAAC,EACVO,EAAsBC,EAAQ,IAAMH,EAAO,CAC/C,cAAAuC,EACA,UAAW5C,GAAS,SACtB,CAAC,EAAG,CAAC4C,EAAe5C,EAASK,CAAM,CAAC,EAC9B0C,EAAmBvC,EAAQ,IAAuDJ,EAAmB9D,EAAe,CAACiE,CAAmB,EAAGH,CAAgB,EAAIG,EAAqB,CAACH,EAAkBG,CAAmB,CAAC,EAC3NpD,EAAehB,EAAY4G,EAAkBrC,CAAY,EACzDsC,EAAeJ,GAAiB,KAAO5C,GAAS,IAAI,aAAe,OACnE0B,EAAQvD,EAAY,IAAM,CAC9BlC,EAAM,IAAM,CACN+D,GACF6C,EAAW,MAAS,EAElBD,GACF5E,EAAShC,EAAI,gBAAgB,qBAAqB,CAChD,UAAA2D,EACA,cAAAiD,CACF,CAAC,CAAC,CAEN,CAAC,CACH,EAAG,CAAC5E,EAAU4E,EAAe5C,EAASL,CAAS,CAAC,EAC1CoC,EAAatG,GAAK0B,EAAc,GAAGrB,GAA0B,cAAc,EACjFkG,EAAcD,CAAU,EACxB,IAAMkB,EAAazC,EAAQ,KAAO,CAChC,GAAGrD,EACH,aAAA6F,EACA,MAAAtB,CACF,GAAI,CAACvE,EAAc6F,EAActB,CAAK,CAAC,EACvC,OAAOlB,EAAQ,IAAM,CAACsC,EAAiBG,CAAU,EAAY,CAACH,EAAiBG,CAAU,CAAC,CAC5F,CACF,CACF,CJr3CO,IAAMC,GAAsC,OAAO,EA0F7CC,GAAmB,CAAC,CAC/B,MAAAC,EAAQC,GACR,MAAAC,EAAQ,CACN,YAAaC,GACb,YAAaC,GACb,SAAUC,EACZ,EACA,eAAAC,EAAiBC,GACjB,8BAAAC,EAAgC,GAChC,GAAGC,CACL,EAA6B,CAAC,KAuBrB,CACL,KAAMX,GACN,KAAKY,EAAK,CACR,mBAAAC,CACF,EAAGC,EAAS,CACV,IAAMC,EAASH,EACT,CACJ,gBAAAI,EACA,wBAAAC,EACA,kBAAAC,EACA,YAAAC,CACF,EAAIC,GAAW,CACb,IAAAR,EACA,cAAe,CACb,MAAAV,EACA,MAAAE,EACA,8BAAAM,EACA,eAAAF,CACF,EACA,mBAAAK,EACA,QAAAC,CACF,CAAC,EACD,OAAAO,EAAWN,EAAQ,CACjB,YAAAI,CACF,CAAC,EACDE,EAAWP,EAAS,CAClB,MAAAZ,CACF,CAAC,EACM,CACL,eAAeoB,EAAcC,EAAY,CACvC,GAAIC,GAAkBD,CAAU,EAAG,CACjC,GAAM,CACJ,SAAAE,EACA,aAAAC,EACA,yBAAAC,EACA,cAAAC,EACA,qBAAAC,EACF,EAAIb,EAAgBM,CAAY,EAChCD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,SAAAG,EACA,aAAAC,EACA,yBAAAC,EACA,cAAAC,EACA,qBAAAC,EACF,CAAC,EACAjB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,OAAO,EAAIG,EACrDb,EAAY,UAAUkB,EAAWR,CAAY,CAAC,OAAO,EAAII,CAC5D,CACA,GAAIK,GAAqBR,CAAU,EAAG,CACpC,IAAMS,EAAcd,EAAkBI,CAAY,EAClDD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,YAAAU,CACF,CAAC,EACApB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,UAAU,EAAIU,CAC3D,SAAWC,EAA0BV,CAAU,EAAG,CAChD,GAAM,CACJ,iBAAAW,EACA,6BAAAC,EACA,sBAAAC,CACF,EAAInB,EAAwBK,CAAY,EACxCD,EAAWN,EAAO,UAAUO,CAAY,EAAG,CACzC,iBAAAY,EACA,6BAAAC,EACA,sBAAAC,CACF,CAAC,EACAxB,EAAY,MAAMkB,EAAWR,CAAY,CAAC,eAAe,EAAIY,CAChE,CACF,CACF,CACF,CACF,GUvMF,WAAc,yBCLd,OAAS,kBAAAG,GAAgB,0BAA0BC,OAA+B,mBAGlF,UAAYC,MAAW,QA8BhB,SAASC,GAAYC,EAKzB,CACD,IAAMC,EAAUD,EAAM,SAAWE,GAEjC,GADwBC,GAAWF,CAAO,EAExC,MAAM,IAAI,MAA8CG,GAAwB,EAAE,CAAkH,EAEtM,GAAM,CAACC,CAAK,EAAU,WAAS,IAAMC,GAAe,CAClD,QAAS,CACP,CAACN,EAAM,IAAI,WAAW,EAAGA,EAAM,IAAI,OACrC,EACA,WAAYO,GAAOA,EAAI,EAAE,OAAOP,EAAM,IAAI,UAAU,CACtD,CAAC,CAAC,EAEF,OAAAQ,EAAU,IAAgCR,EAAM,iBAAmB,GAAQ,OAAYS,GAAeJ,EAAM,SAAUL,EAAM,cAAc,EAAG,CAACA,EAAM,eAAgBK,EAAM,QAAQ,CAAC,EAC5K,gBAACK,GAAA,CAAS,MAAOL,EAAO,QAASJ,GACnCD,EAAM,QACT,CACJ,CDhDA,IAAMW,GAA2BC,GAAeC,GAAW,EAAGC,GAAiB,CAAC","names":["buildCreateApi","coreModule","copyWithStructuralSharing","setupListeners","QueryStatus","skipToken","rrBatch","rrUseDispatch","rrUseSelector","rrUseStore","_createSelector","capitalize","str","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","safeAssign","target","args","_formatProdErrorMessage2","_formatProdErrorMessage3","useEffect","useRef","useMemo","useContext","useCallback","useDebugValue","useLayoutEffect","useState","shallowEqual","Provider","ReactReduxContext","UNINITIALIZED_VALUE","useStableQueryArgs","queryArgs","cache","useRef","copy","useMemo","copyWithStructuralSharing","useEffect","useShallowStableValue","value","cache","useRef","useEffect","shallowEqual","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","useLayoutEffect","useEffect","useIsomorphicLayoutEffect","noPendingQueryStateSelector","selected","QueryStatus","pick","obj","keys","ret","key","COMMON_HOOK_DEBUG_FIELDS","buildHooks","api","batch","useDispatch","useSelector","useStore","unstable__sideEffectsInRender","createSelector","serializeQueryArgs","context","usePossiblyImmediateEffect","cb","unsubscribePromiseRef","ref","endpointDefinitions","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","queryStatePreSelector","currentState","lastResult","queryArgs","endpointName","endpointDefinition","skipToken","data","hasData","isFetching","isLoading","isSuccess","infiniteQueryStatePreSelector","defaultOptions","dispatch","stableDefaultOptions","useShallowStableValue","useCallback","arg","options","useQuerySubscriptionCommonImpl","refetchOnReconnect","refetchOnFocus","refetchOnMountOrArgChange","skip","pollingInterval","skipPollingIfUnfocused","rest","initiate","subscriptionSelectorsRef","useRef","returnedValue","stableArg","useStableQueryArgs","stableSubscriptionOptions","initialPageParam","stableInitialPageParam","refetchCachedPages","stableRefetchCachedPages","promiseRef","queryCacheKey","requestId","currentRenderHasSubscription","subscriptionRemoved","lastPromise","lastSubscriptionOptions","promise","isInfiniteQueryDefinition","buildUseQueryState","preSelector","selectFromResult","select","lastValue","selectDefaultResult","useMemo","_","shallowEqual","querySelector","state","store","newLastValue","usePromiseRefUnsubscribeOnUnmount","refetchOrErrorIfUnmounted","_formatProdErrorMessage2","useQuerySubscription","useLazyQuerySubscription","setArg","useState","UNINITIALIZED_VALUE","subscriptionOptionsRef","trigger","preferCacheValue","reset","useQueryState","queryStateResults","info","querySubscriptionResults","debugValue","useDebugValue","useInfiniteQuerySubscription","hookRefetchCachedPages","stableHookRefetchCachedPages","direction","refetch","_formatProdErrorMessage3","mergedOptions","useInfiniteQueryState","fetchNextPage","fetchPreviousPage","name","fixedCacheKey","setPromise","triggerMutation","mutationSelector","originalArgs","finalState","reactHooksModuleName","reactHooksModule","batch","rrBatch","hooks","rrUseDispatch","rrUseSelector","rrUseStore","createSelector","_createSelector","unstable__sideEffectsInRender","rest","api","serializeQueryArgs","context","anyApi","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","buildHooks","safeAssign","endpointName","definition","isQueryDefinition","useQuery","useLazyQuery","useLazyQuerySubscription","useQueryState","useQuerySubscription","capitalize","isMutationDefinition","useMutation","isInfiniteQueryDefinition","useInfiniteQuery","useInfiniteQuerySubscription","useInfiniteQueryState","configureStore","_formatProdErrorMessage","React","ApiProvider","props","context","ReactReduxContext","useContext","_formatProdErrorMessage","store","configureStore","gDM","useEffect","setupListeners","Provider","createApi","buildCreateApi","coreModule","reactHooksModule"]}
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.legacy-esm.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,740 +1,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-var __objRest = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-
-// src/query/react/rtkqImports.ts
-import { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from "@reduxjs/toolkit/query";
-
-// src/query/react/module.ts
-import { formatProdErrorMessage as _formatProdErrorMessage4 } from "@reduxjs/toolkit";
-import { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from "react-redux";
-import { createSelector as _createSelector } from "reselect";
-
-// src/query/utils/capitalize.ts
-function capitalize(str) {
-  return str.replace(str[0], str[0].toUpperCase());
-}
-
-// src/query/utils/countObjectKeys.ts
-function countObjectKeys(obj) {
-  let count = 0;
-  for (const _key in obj) {
-    count++;
-  }
-  return count;
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-
-// src/query/tsHelpers.ts
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/react/buildHooks.ts
-import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from "@reduxjs/toolkit";
-
-// src/query/react/reactImports.ts
-import { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from "react";
-
-// src/query/react/reactReduxImports.ts
-import { shallowEqual, Provider, ReactReduxContext } from "react-redux";
-
-// src/query/react/constants.ts
-var UNINITIALIZED_VALUE = Symbol();
-
-// src/query/react/useSerializedStableValue.ts
-function useStableQueryArgs(queryArgs) {
-  const cache = useRef(queryArgs);
-  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);
-  useEffect(() => {
-    if (cache.current !== copy) {
-      cache.current = copy;
-    }
-  }, [copy]);
-  return copy;
-}
-
-// src/query/react/useShallowStableValue.ts
-function useShallowStableValue(value) {
-  const cache = useRef(value);
-  useEffect(() => {
-    if (!shallowEqual(cache.current, value)) {
-      cache.current = value;
-    }
-  }, [value]);
-  return shallowEqual(cache.current, value) ? cache.current : value;
-}
-
-// src/query/react/buildHooks.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-var noPendingQueryStateSelector = (selected) => {
-  if (selected.isUninitialized) {
-    return __spreadProps(__spreadValues({}, selected), {
-      isUninitialized: false,
-      isFetching: true,
-      isLoading: selected.data !== void 0 ? false : true,
-      // This is the one place where we still have to use `QueryStatus` as an enum,
-      // since it's the only reference in the React package and not in the core.
-      status: QueryStatus.pending
-    });
-  }
-  return selected;
-};
-function pick(obj, ...keys) {
-  const ret = {};
-  keys.forEach((key) => {
-    ret[key] = obj[key];
-  });
-  return ret;
-}
-var COMMON_HOOK_DEBUG_FIELDS = ["data", "status", "isLoading", "isSuccess", "isError", "error"];
-function buildHooks({
-  api,
-  moduleOptions: {
-    batch,
-    hooks: {
-      useDispatch,
-      useSelector,
-      useStore
-    },
-    unstable__sideEffectsInRender,
-    createSelector
-  },
-  serializeQueryArgs,
-  context
-}) {
-  const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : useEffect;
-  const unsubscribePromiseRef = (ref) => {
-    var _a, _b;
-    return (_b = (_a = ref.current) == null ? void 0 : _a.unsubscribe) == null ? void 0 : _b.call(_a);
-  };
-  const endpointDefinitions = context.endpointDefinitions;
-  return {
-    buildQueryHooks,
-    buildInfiniteQueryHooks,
-    buildMutationHook,
-    usePrefetch
-  };
-  function queryStatePreSelector(currentState, lastResult, queryArgs) {
-    if ((lastResult == null ? void 0 : lastResult.endpointName) && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult == null ? void 0 : lastResult.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || hasData && (isFetching && !(lastResult == null ? void 0 : lastResult.isError) || currentState.isUninitialized);
-    return __spreadProps(__spreadValues({}, currentState), {
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    });
-  }
-  function infiniteQueryStatePreSelector(currentState, lastResult, queryArgs) {
-    if ((lastResult == null ? void 0 : lastResult.endpointName) && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult == null ? void 0 : lastResult.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || isFetching && hasData;
-    return __spreadProps(__spreadValues({}, currentState), {
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    });
-  }
-  function usePrefetch(endpointName, defaultOptions) {
-    const dispatch = useDispatch();
-    const stableDefaultOptions = useShallowStableValue(defaultOptions);
-    return useCallback((arg, options) => dispatch(api.util.prefetch(endpointName, arg, __spreadValues(__spreadValues({}, stableDefaultOptions), options))), [endpointName, dispatch, stableDefaultOptions]);
-  }
-  function useQuerySubscriptionCommonImpl(endpointName, arg, _a = {}) {
-    var _b = _a, {
-      refetchOnReconnect,
-      refetchOnFocus,
-      refetchOnMountOrArgChange,
-      skip = false,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false
-    } = _b, rest = __objRest(_b, [
-      "refetchOnReconnect",
-      "refetchOnFocus",
-      "refetchOnMountOrArgChange",
-      "skip",
-      "pollingInterval",
-      "skipPollingIfUnfocused"
-    ]);
-    const {
-      initiate
-    } = api.endpoints[endpointName];
-    const dispatch = useDispatch();
-    const subscriptionSelectorsRef = useRef(void 0);
-    if (!subscriptionSelectorsRef.current) {
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      if (process.env.NODE_ENV !== "production") {
-        if (typeof returnedValue !== "object" || typeof (returnedValue == null ? void 0 : returnedValue.type) === "string") {
-          throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-    You must add the middleware for RTK-Query to function correctly!`);
-        }
-      }
-      subscriptionSelectorsRef.current = returnedValue;
-    }
-    const stableArg = useStableQueryArgs(skip ? skipToken : arg);
-    const stableSubscriptionOptions = useShallowStableValue({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval,
-      skipPollingIfUnfocused
-    });
-    const initialPageParam = rest.initialPageParam;
-    const stableInitialPageParam = useShallowStableValue(initialPageParam);
-    const refetchCachedPages = rest.refetchCachedPages;
-    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);
-    const promiseRef = useRef(void 0);
-    let {
-      queryCacheKey,
-      requestId
-    } = promiseRef.current || {};
-    let currentRenderHasSubscription = false;
-    if (queryCacheKey && requestId) {
-      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);
-    }
-    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== void 0;
-    usePossiblyImmediateEffect(() => {
-      if (subscriptionRemoved) {
-        promiseRef.current = void 0;
-      }
-    }, [subscriptionRemoved]);
-    usePossiblyImmediateEffect(() => {
-      var _a2;
-      const lastPromise = promiseRef.current;
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "removeMeOnCompilation") {
-        console.log(subscriptionRemoved);
-      }
-      if (stableArg === skipToken) {
-        lastPromise == null ? void 0 : lastPromise.unsubscribe();
-        promiseRef.current = void 0;
-        return;
-      }
-      const lastSubscriptionOptions = (_a2 = promiseRef.current) == null ? void 0 : _a2.subscriptionOptions;
-      if (!lastPromise || lastPromise.arg !== stableArg) {
-        lastPromise == null ? void 0 : lastPromise.unsubscribe();
-        const promise = dispatch(initiate(stableArg, __spreadValues({
-          subscriptionOptions: stableSubscriptionOptions,
-          forceRefetch: refetchOnMountOrArgChange
-        }, isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {
-          initialPageParam: stableInitialPageParam,
-          refetchCachedPages: stableRefetchCachedPages
-        } : {})));
-        promiseRef.current = promise;
-      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);
-      }
-    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);
-    return [promiseRef, dispatch, initiate, stableSubscriptionOptions];
-  }
-  function buildUseQueryState(endpointName, preSelector) {
-    const useQueryState = (arg, {
-      skip = false,
-      selectFromResult
-    } = {}) => {
-      const {
-        select
-      } = api.endpoints[endpointName];
-      const stableArg = useStableQueryArgs(skip ? skipToken : arg);
-      const lastValue = useRef(void 0);
-      const selectDefaultResult = useMemo(() => (
-        // Normally ts-ignores are bad and should be avoided, but we're
-        // already casting this selector to be `Selector<any>` anyway,
-        // so the inconsistencies don't matter here
-        // @ts-ignore
-        createSelector([
-          // @ts-ignore
-          select(stableArg),
-          (_, lastResult) => lastResult,
-          (_) => stableArg
-        ], preSelector, {
-          memoizeOptions: {
-            resultEqualityCheck: shallowEqual
-          }
-        })
-      ), [select, stableArg]);
-      const querySelector = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {
-        devModeChecks: {
-          identityFunctionCheck: "never"
-        }
-      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);
-      const currentState = useSelector((state) => querySelector(state, lastValue.current), shallowEqual);
-      const store = useStore();
-      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);
-      useIsomorphicLayoutEffect(() => {
-        lastValue.current = newLastValue;
-      }, [newLastValue]);
-      return currentState;
-    };
-    return useQueryState;
-  }
-  function usePromiseRefUnsubscribeOnUnmount(promiseRef) {
-    useEffect(() => {
-      return () => {
-        unsubscribePromiseRef(promiseRef);
-        promiseRef.current = void 0;
-      };
-    }, [promiseRef]);
-  }
-  function refetchOrErrorIfUnmounted(promiseRef) {
-    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage2(38) : "Cannot refetch a query that has not been started yet.");
-    return promiseRef.current.refetch();
-  }
-  function buildQueryHooks(endpointName) {
-    const useQuerySubscription = (arg, options = {}) => {
-      const [promiseRef] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      return useMemo(() => ({
-        /**
-         * A method to manually refetch data for the query
-         */
-        refetch: () => refetchOrErrorIfUnmounted(promiseRef)
-      }), [promiseRef]);
-    };
-    const useLazyQuerySubscription = ({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false
-    } = {}) => {
-      const {
-        initiate
-      } = api.endpoints[endpointName];
-      const dispatch = useDispatch();
-      const [arg, setArg] = useState(UNINITIALIZED_VALUE);
-      const promiseRef = useRef(void 0);
-      const stableSubscriptionOptions = useShallowStableValue({
-        refetchOnReconnect,
-        refetchOnFocus,
-        pollingInterval,
-        skipPollingIfUnfocused
-      });
-      usePossiblyImmediateEffect(() => {
-        var _a, _b;
-        const lastSubscriptionOptions = (_a = promiseRef.current) == null ? void 0 : _a.subscriptionOptions;
-        if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-          (_b = promiseRef.current) == null ? void 0 : _b.updateSubscriptionOptions(stableSubscriptionOptions);
-        }
-      }, [stableSubscriptionOptions]);
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const trigger = useCallback(function(arg2, preferCacheValue = false) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            forceRefetch: !preferCacheValue
-          }));
-          setArg(arg2);
-        });
-        return promise;
-      }, [dispatch, initiate]);
-      const reset = useCallback(() => {
-        var _a, _b;
-        if ((_a = promiseRef.current) == null ? void 0 : _a.queryCacheKey) {
-          dispatch(api.internalActions.removeQueryResult({
-            queryCacheKey: (_b = promiseRef.current) == null ? void 0 : _b.queryCacheKey
-          }));
-        }
-      }, [dispatch]);
-      useEffect(() => {
-        return () => {
-          unsubscribePromiseRef(promiseRef);
-        };
-      }, []);
-      useEffect(() => {
-        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {
-          trigger(arg, true);
-        }
-      }, [arg, trigger]);
-      return useMemo(() => [trigger, arg, {
-        reset
-      }], [trigger, arg, reset]);
-    };
-    const useQueryState = buildUseQueryState(endpointName, queryStatePreSelector);
-    return {
-      useQueryState,
-      useQuerySubscription,
-      useLazyQuerySubscription,
-      useLazyQuery(options) {
-        const [trigger, arg, {
-          reset
-        }] = useLazyQuerySubscription(options);
-        const queryStateResults = useQueryState(arg, __spreadProps(__spreadValues({}, options), {
-          skip: arg === UNINITIALIZED_VALUE
-        }));
-        const info = useMemo(() => ({
-          lastArg: arg
-        }), [arg]);
-        return useMemo(() => [trigger, __spreadProps(__spreadValues({}, queryStateResults), {
-          reset
-        }), info], [trigger, queryStateResults, reset, info]);
-      },
-      useQuery(arg, options) {
-        const querySubscriptionResults = useQuerySubscription(arg, options);
-        const queryStateResults = useQueryState(arg, __spreadValues({
-          selectFromResult: arg === skipToken || (options == null ? void 0 : options.skip) ? void 0 : noPendingQueryStateSelector
-        }, options));
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);
-        useDebugValue(debugValue);
-        return useMemo(() => __spreadValues(__spreadValues({}, queryStateResults), querySubscriptionResults), [queryStateResults, querySubscriptionResults]);
-      }
-    };
-  }
-  function buildInfiniteQueryHooks(endpointName) {
-    const useInfiniteQuerySubscription = (arg, options = {}) => {
-      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const hookRefetchCachedPages = options.refetchCachedPages;
-      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);
-      const trigger = useCallback(function(arg2, direction) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            direction
-          }));
-        });
-        return promise;
-      }, [promiseRef, dispatch, initiate]);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);
-      const refetch = useCallback((options2) => {
-        var _a;
-        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage3(38) : "Cannot refetch a query that has not been started yet.");
-        const mergedOptions = {
-          refetchCachedPages: (_a = options2 == null ? void 0 : options2.refetchCachedPages) != null ? _a : stableHookRefetchCachedPages
-        };
-        return promiseRef.current.refetch(mergedOptions);
-      }, [promiseRef, stableHookRefetchCachedPages]);
-      return useMemo(() => {
-        const fetchNextPage = () => {
-          return trigger(stableArg, "forward");
-        };
-        const fetchPreviousPage = () => {
-          return trigger(stableArg, "backward");
-        };
-        return {
-          trigger,
-          /**
-           * A method to manually refetch data for the query
-           */
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        };
-      }, [refetch, trigger, stableArg]);
-    };
-    const useInfiniteQueryState = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);
-    return {
-      useInfiniteQueryState,
-      useInfiniteQuerySubscription,
-      useInfiniteQuery(arg, options) {
-        const {
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        } = useInfiniteQuerySubscription(arg, options);
-        const queryStateResults = useInfiniteQueryState(arg, __spreadValues({
-          selectFromResult: arg === skipToken || (options == null ? void 0 : options.skip) ? void 0 : noPendingQueryStateSelector
-        }, options));
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, "hasNextPage", "hasPreviousPage");
-        useDebugValue(debugValue);
-        return useMemo(() => __spreadProps(__spreadValues({}, queryStateResults), {
-          fetchNextPage,
-          fetchPreviousPage,
-          refetch
-        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);
-      }
-    };
-  }
-  function buildMutationHook(name) {
-    return ({
-      selectFromResult,
-      fixedCacheKey
-    } = {}) => {
-      const {
-        select,
-        initiate
-      } = api.endpoints[name];
-      const dispatch = useDispatch();
-      const [promise, setPromise] = useState();
-      useEffect(() => () => {
-        if (!(promise == null ? void 0 : promise.arg.fixedCacheKey)) {
-          promise == null ? void 0 : promise.reset();
-        }
-      }, [promise]);
-      const triggerMutation = useCallback(function(arg) {
-        const promise2 = dispatch(initiate(arg, {
-          fixedCacheKey
-        }));
-        setPromise(promise2);
-        return promise2;
-      }, [dispatch, initiate, fixedCacheKey]);
-      const {
-        requestId
-      } = promise || {};
-      const selectDefaultResult = useMemo(() => select({
-        fixedCacheKey,
-        requestId: promise == null ? void 0 : promise.requestId
-      }), [fixedCacheKey, promise, select]);
-      const mutationSelector = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);
-      const currentState = useSelector(mutationSelector, shallowEqual);
-      const originalArgs = fixedCacheKey == null ? promise == null ? void 0 : promise.arg.originalArgs : void 0;
-      const reset = useCallback(() => {
-        batch(() => {
-          if (promise) {
-            setPromise(void 0);
-          }
-          if (fixedCacheKey) {
-            dispatch(api.internalActions.removeMutationResult({
-              requestId,
-              fixedCacheKey
-            }));
-          }
-        });
-      }, [dispatch, fixedCacheKey, promise, requestId]);
-      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, "endpointName");
-      useDebugValue(debugValue);
-      const finalState = useMemo(() => __spreadProps(__spreadValues({}, currentState), {
-        originalArgs,
-        reset
-      }), [currentState, originalArgs, reset]);
-      return useMemo(() => [triggerMutation, finalState], [triggerMutation, finalState]);
-    };
-  }
-}
-
-// src/query/react/module.ts
-var reactHooksModuleName = /* @__PURE__ */ Symbol();
-var reactHooksModule = (_a = {}) => {
-  var _b = _a, {
-    batch = rrBatch,
-    hooks = {
-      useDispatch: rrUseDispatch,
-      useSelector: rrUseSelector,
-      useStore: rrUseStore
-    },
-    createSelector = _createSelector,
-    unstable__sideEffectsInRender = false
-  } = _b, rest = __objRest(_b, [
-    "batch",
-    "hooks",
-    "createSelector",
-    "unstable__sideEffectsInRender"
-  ]);
-  if (process.env.NODE_ENV !== "production") {
-    const hookNames = ["useDispatch", "useSelector", "useStore"];
-    let warned = false;
-    for (const hookName of hookNames) {
-      if (countObjectKeys(rest) > 0) {
-        if (rest[hookName]) {
-          if (!warned) {
-            console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`");
-            warned = true;
-          }
-        }
-        hooks[hookName] = rest[hookName];
-      }
-      if (typeof hooks[hookName] !== "function") {
-        throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage4(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(", ")}.
-Hook ${hookName} was either not provided or not a function.`);
-      }
-    }
-  }
-  return {
-    name: reactHooksModuleName,
-    init(api, {
-      serializeQueryArgs
-    }, context) {
-      const anyApi = api;
-      const {
-        buildQueryHooks,
-        buildInfiniteQueryHooks,
-        buildMutationHook,
-        usePrefetch
-      } = buildHooks({
-        api,
-        moduleOptions: {
-          batch,
-          hooks,
-          unstable__sideEffectsInRender,
-          createSelector
-        },
-        serializeQueryArgs,
-        context
-      });
-      safeAssign(anyApi, {
-        usePrefetch
-      });
-      safeAssign(context, {
-        batch
-      });
-      return {
-        injectEndpoint(endpointName, definition) {
-          if (isQueryDefinition(definition)) {
-            const {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            } = buildQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            });
-            api[`use${capitalize(endpointName)}Query`] = useQuery;
-            api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;
-          }
-          if (isMutationDefinition(definition)) {
-            const useMutation = buildMutationHook(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useMutation
-            });
-            api[`use${capitalize(endpointName)}Mutation`] = useMutation;
-          } else if (isInfiniteQueryDefinition(definition)) {
-            const {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            } = buildInfiniteQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            });
-            api[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;
-          }
-        }
-      };
-    }
-  };
-};
-
-// src/query/react/index.ts
-export * from "@reduxjs/toolkit/query";
-
-// src/query/react/ApiProvider.tsx
-import { configureStore, formatProdErrorMessage as _formatProdErrorMessage5 } from "@reduxjs/toolkit";
-import * as React from "react";
-function ApiProvider(props) {
-  const context = props.context || ReactReduxContext;
-  const existingContext = useContext(context);
-  if (existingContext) {
-    throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage5(35) : "Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.");
-  }
-  const [store] = React.useState(() => configureStore({
-    reducer: {
-      [props.api.reducerPath]: props.api.reducer
-    },
-    middleware: (gDM) => gDM().concat(props.api.middleware)
-  }));
-  useEffect(() => props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);
-  return /* @__PURE__ */ React.createElement(Provider, { store, context }, props.children);
-}
-
-// src/query/react/index.ts
-var createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());
-export {
-  ApiProvider,
-  UNINITIALIZED_VALUE,
-  createApi,
-  reactHooksModule,
-  reactHooksModuleName
-};
-//# sourceMappingURL=rtk-query-react.legacy-esm.js.map
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.legacy-esm.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/query/react/rtkqImports.ts","../../../src/query/react/module.ts","../../../src/query/utils/capitalize.ts","../../../src/query/utils/countObjectKeys.ts","../../../src/query/endpointDefinitions.ts","../../../src/query/tsHelpers.ts","../../../src/query/react/buildHooks.ts","../../../src/query/react/reactImports.ts","../../../src/query/react/reactReduxImports.ts","../../../src/query/react/constants.ts","../../../src/query/react/useSerializedStableValue.ts","../../../src/query/react/useShallowStableValue.ts","../../../src/query/react/index.ts","../../../src/query/react/ApiProvider.tsx"],"sourcesContent":["export { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from '@reduxjs/toolkit/query';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Api, BaseQueryFn, EndpointDefinitions, InfiniteQueryDefinition, Module, MutationDefinition, PrefetchOptions, QueryArgFrom, QueryDefinition, QueryKeys } from '@reduxjs/toolkit/query';\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from 'react-redux';\nimport type { CreateSelectorFunction } from 'reselect';\nimport { createSelector as _createSelector } from 'reselect';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { safeAssign } from '../tsHelpers';\nimport { capitalize, countObjectKeys } from '../utils';\nimport type { InfiniteQueryHooks, MutationHooks, QueryHooks } from './buildHooks';\nimport { buildHooks } from './buildHooks';\nimport type { HooksWithUniqueNames } from './namedHooks';\nexport const reactHooksModuleName = /* @__PURE__ */Symbol();\nexport type ReactHooksModule = typeof reactHooksModuleName;\ndeclare module '@reduxjs/toolkit/query' {\n  export interface ApiModules<\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ReducerPath extends string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  TagTypes extends string> {\n    [reactHooksModuleName]: {\n      /**\n       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\n       */\n      endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never };\n      /**\n       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\n       */\n      usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;\n    } & HooksWithUniqueNames<Definitions>;\n  }\n}\ntype RR = typeof import('react-redux');\nexport interface ReactHooksModuleOptions {\n  /**\n   * The hooks from React Redux to be used\n   */\n  hooks?: {\n    /**\n     * The version of the `useDispatch` hook to be used\n     */\n    useDispatch: RR['useDispatch'];\n    /**\n     * The version of the `useSelector` hook to be used\n     */\n    useSelector: RR['useSelector'];\n    /**\n     * The version of the `useStore` hook to be used\n     */\n    useStore: RR['useStore'];\n  };\n  /**\n   * The version of the `batchedUpdates` function to be used\n   */\n  batch?: RR['batch'];\n  /**\n   * Enables performing asynchronous tasks immediately within a render.\n   *\n   * @example\n   *\n   * ```ts\n   * import {\n   *   buildCreateApi,\n   *   coreModule,\n   *   reactHooksModule\n   * } from '@reduxjs/toolkit/query/react'\n   *\n   * const createApi = buildCreateApi(\n   *   coreModule(),\n   *   reactHooksModule({ unstable__sideEffectsInRender: true })\n   * )\n   * ```\n   */\n  unstable__sideEffectsInRender?: boolean;\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\n *\n *  @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @returns A module for use with `buildCreateApi`\n */\nexport const reactHooksModule = ({\n  batch = rrBatch,\n  hooks = {\n    useDispatch: rrUseDispatch,\n    useSelector: rrUseSelector,\n    useStore: rrUseStore\n  },\n  createSelector = _createSelector,\n  unstable__sideEffectsInRender = false,\n  ...rest\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {\n  if (process.env.NODE_ENV !== 'production') {\n    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const;\n    let warned = false;\n    for (const hookName of hookNames) {\n      // warn for old hook options\n      if (countObjectKeys(rest) > 0) {\n        if ((rest as Partial<typeof hooks>)[hookName]) {\n          if (!warned) {\n            console.warn('As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' + '\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`');\n            warned = true;\n          }\n        }\n        // migrate\n        // @ts-ignore\n        hooks[hookName] = rest[hookName];\n      }\n      // then make sure we have them all\n      if (typeof hooks[hookName] !== 'function') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(', ')}.\\nHook ${hookName} was either not provided or not a function.`);\n      }\n    }\n  }\n  return {\n    name: reactHooksModuleName,\n    init(api, {\n      serializeQueryArgs\n    }, context) {\n      const anyApi = api as any as Api<any, Record<string, any>, any, any, ReactHooksModule>;\n      const {\n        buildQueryHooks,\n        buildInfiniteQueryHooks,\n        buildMutationHook,\n        usePrefetch\n      } = buildHooks({\n        api,\n        moduleOptions: {\n          batch,\n          hooks,\n          unstable__sideEffectsInRender,\n          createSelector\n        },\n        serializeQueryArgs,\n        context\n      });\n      safeAssign(anyApi, {\n        usePrefetch\n      });\n      safeAssign(context, {\n        batch\n      });\n      return {\n        injectEndpoint(endpointName, definition) {\n          if (isQueryDefinition(definition)) {\n            const {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            } = buildQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            });\n            (api as any)[`use${capitalize(endpointName)}Query`] = useQuery;\n            (api as any)[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n          }\n          if (isMutationDefinition(definition)) {\n            const useMutation = buildMutationHook(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useMutation\n            });\n            (api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation;\n          } else if (isInfiniteQueryDefinition(definition)) {\n            const {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            } = buildInfiniteQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            });\n            (api as any)[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n          }\n        }\n      };\n    }\n  };\n};","export function capitalize(str: string) {\n  return str.replace(str[0], str[0].toUpperCase());\n}","// Fast method for counting an object's keys\n// without resorting to `Object.keys(obj).length\n// Will this make a big difference in perf? Probably not\n// But we can save a few allocations.\n\nexport function countObjectKeys(obj: Record<any, any>) {\n  let count = 0;\n  for (const _key in obj) {\n    count++;\n  }\n  return count;\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Selector, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Api, ApiContext, ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, BaseQueryFn, CoreModule, EndpointDefinitions, InfiniteQueryActionCreatorResult, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, MutationActionCreatorResult, MutationDefinition, MutationResultSelectorResult, PageParamFrom, PrefetchOptions, QueryActionCreatorResult, QueryArgFrom, QueryCacheKey, QueryDefinition, QueryKeys, QueryResultSelectorResult, QuerySubState, ResultTypeFrom, RootState, SerializeQueryArgs, SkipToken, SubscriptionOptions, TSHelpersId, TSHelpersNoInfer, TSHelpersOverride } from '@reduxjs/toolkit/query';\nimport { QueryStatus, skipToken } from './rtkqImports';\nimport type { DependencyList } from 'react';\nimport { useCallback, useDebugValue, useEffect, useLayoutEffect, useMemo, useRef, useState } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nimport type { SubscriptionSelectors } from '../core/buildMiddleware/index';\nimport type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index';\nimport type { UninitializedValue } from './constants';\nimport { UNINITIALIZED_VALUE } from './constants';\nimport type { ReactHooksModuleOptions } from './module';\nimport { useStableQueryArgs } from './useSerializedStableValue';\nimport { useShallowStableValue } from './useShallowStableValue';\nimport type { InfiniteQueryDirection } from '../core/apiState';\nimport { isInfiniteQueryDefinition } from '../endpointDefinitions';\nimport type { StartInfiniteQueryActionCreator } from '../core/buildInitiate';\n\n// Copy-pasted from React-Redux\nconst canUseDOM = () => !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nconst isDOM = /* @__PURE__ */canUseDOM();\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\nconst isRunningInReactNative = () => typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst isReactNative = /* @__PURE__ */isRunningInReactNative();\nconst getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;\nexport const useIsomorphicLayoutEffect = /* @__PURE__ */getUseIsomorphicLayoutEffect();\nexport type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  useQuery: UseQuery<Definition>;\n  useLazyQuery: UseLazyQuery<Definition>;\n  useQuerySubscription: UseQuerySubscription<Definition>;\n  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;\n  useQueryState: UseQueryState<Definition>;\n};\nexport type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  useInfiniteQuery: UseInfiniteQuery<Definition>;\n  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;\n  useInfiniteQueryState: UseInfiniteQueryState<Definition>;\n};\nexport type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  useMutation: UseMutation<Definition>;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;\nexport type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuery` hook in userland code.\n */\nexport type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;\nexport type UseQuerySubscriptionOptions = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;\nexport type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {\n  lastArg: QueryArgFrom<D>;\n};\n\n/**\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\n *\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n *\n * #### Note\n *\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\n */\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [LazyQueryTrigger<D>, UseLazyQueryStateResult<D, R>, UseLazyQueryLastPromiseInfo<D>];\nexport type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useLazyQuery` hook in userland code.\n */\nexport type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;\n};\nexport type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n */\nexport type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue, {\n  reset: () => void;\n}];\nexport type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryStateSelector} for use with a specific query.\n * This is useful for scenarios where you want to create a \"pre-typed\"\n * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}\n * function.\n *\n * @example\n * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>\n *\n * ```tsx\n * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   title: string\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * type SelectedResult = Pick<PostsApiResponse, 'posts'>\n *\n * const postsApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, QueryArgument>({\n *       query: (limit = 5) => `?limit=${limit}&select=title`,\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = postsApiSlice\n *\n * function PostById({ id }: { id: number }) {\n *   const { post } = useGetPostsQuery(undefined, {\n *     selectFromResult: (state) => ({\n *       post: state.data?.posts.find((post) => post.id === id),\n *     }),\n *   })\n *\n *   return <li>{post?.title}</li>\n * }\n *\n * const EMPTY_ARRAY: Post[] = []\n *\n * const typedSelectFromResult: TypedQueryStateSelector<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   SelectedResult\n * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })\n *\n * function PostsList() {\n *   const { posts } = useGetPostsQuery(undefined, {\n *     selectFromResult: typedSelectFromResult,\n *   })\n *\n *   return (\n *     <div>\n *       <ul>\n *         {posts.map((post) => (\n *           <PostById key={post.id} id={post.id} />\n *         ))}\n *       </ul>\n *     </div>\n *   )\n * }\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.3.0\n * @public\n */\nexport type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;\nexport type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: QueryStateSelector<R, D>;\n};\n\n/**\n * Provides a way to define a \"pre-typed\" version of\n * {@linkcode UseQueryStateOptions} with specific options for a given query.\n * This is particularly useful for setting default query behaviors such as\n * refetching strategies, which can be overridden as needed.\n *\n * @example\n * <caption>#### __Create a `useQuery` hook with default options__</caption>\n *\n * ```ts\n * import type {\n *   SubscriptionOptions,\n *   TypedUseQueryStateOptions,\n * } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   name: string\n * }\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   tagTypes: ['Post'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<Post[], void>({\n *       query: () => 'posts',\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = api\n *\n * export const useGetPostsQueryWithDefaults = <\n *   SelectedResult extends Record<string, any>,\n * >(\n *   overrideOptions: TypedUseQueryStateOptions<\n *     Post[],\n *     void,\n *     ReturnType<typeof fetchBaseQuery>,\n *     SelectedResult\n *   > &\n *     SubscriptionOptions,\n * ) =>\n *   useGetPostsQuery(undefined, {\n *     // Insert default options here\n *\n *     refetchOnMountOrArgChange: true,\n *     refetchOnFocus: true,\n *     ...overrideOptions,\n *   })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArg - The type of the argument passed into the query.\n * @template BaseQuery - The type of the base query function being used.\n * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.2.8\n * @public\n */\nexport type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;\n\n/**\n * Helper type to manually type the result\n * of the `useQueryState` hook in userland code.\n */\nexport type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: ResultTypeFrom<D>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n};\ntype UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}>;\ntype UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n}>;\ntype UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n  currentData: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isError: true;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;\n};\nexport type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  initialPageParam?: PageParamFrom<D>;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   *\n   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).\n   * It can be overridden on a per-call basis using the `refetch()` method.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;\n  trigger: LazyInfiniteQueryTrigger<D>;\n  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;\n  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;\nexport type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.\n *\n * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.\n *\n * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.\n *\n * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.\n *\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;\nexport type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;\nexport type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\nexport type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: InfiniteQueryStateSelector<R, D>;\n};\nexport type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;\nexport type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\ntype UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n};\ntype UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n} | ({\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({\n  isError: true;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;\nexport type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  selectFromResult?: MutationStateSelector<R, D>;\n  fixedCacheKey?: string;\n};\nexport type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {\n  originalArgs?: QueryArgFrom<D>;\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useMutation` hook in userland code.\n */\nexport type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\n\n/**\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\n *\n * #### Features\n *\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];\nexport type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {\n  /**\n   * Triggers the mutation and returns a Promise.\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;\n};\nexport type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\n * We want the initial render to already come back with\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\n * to prevent that the library user has to do an additional check for `isUninitialized`/\n */\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = selected => {\n  if (selected.isUninitialized) {\n    return {\n      ...selected,\n      isUninitialized: false,\n      isFetching: true,\n      isLoading: selected.data !== undefined ? false : true,\n      // This is the one place where we still have to use `QueryStatus` as an enum,\n      // since it's the only reference in the React package and not in the core.\n      status: QueryStatus.pending\n    } as any;\n  }\n  return selected;\n};\nfunction pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n  const ret: any = {};\n  keys.forEach(key => {\n    ret[key] = obj[key];\n  });\n  return ret;\n}\nconst COMMON_HOOK_DEBUG_FIELDS = ['data', 'status', 'isLoading', 'isSuccess', 'isError', 'error'] as const;\ntype GenericPrefetchThunk = (endpointName: any, arg: any, options: PrefetchOptions) => ThunkAction<void, any, any, UnknownAction>;\n\n/**\n *\n * @param opts.api - An API with defined endpoints to create hooks for\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\n * @returns An object containing functions to generate hooks based on an endpoint\n */\nexport function buildHooks<Definitions extends EndpointDefinitions>({\n  api,\n  moduleOptions: {\n    batch,\n    hooks: {\n      useDispatch,\n      useSelector,\n      useStore\n    },\n    unstable__sideEffectsInRender,\n    createSelector\n  },\n  serializeQueryArgs,\n  context\n}: {\n  api: Api<any, Definitions, any, any, CoreModule>;\n  moduleOptions: Required<ReactHooksModuleOptions>;\n  serializeQueryArgs: SerializeQueryArgs<any>;\n  context: ApiContext<Definitions>;\n}) {\n  const usePossiblyImmediateEffect: (effect: () => void | undefined, deps?: DependencyList) => void = unstable__sideEffectsInRender ? cb => cb() : useEffect;\n  type UnsubscribePromiseRef = React.RefObject<{\n    unsubscribe?: () => void;\n  } | undefined>;\n  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) => ref.current?.unsubscribe?.();\n  const endpointDefinitions = context.endpointDefinitions;\n  return {\n    buildQueryHooks,\n    buildInfiniteQueryHooks,\n    buildMutationHook,\n    usePrefetch\n  };\n  function queryStatePreSelector(currentState: QueryResultSelectorResult<any>, lastResult: UseQueryStateDefaultResult<any> | undefined, queryArgs: any): UseQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n\n    // isSuccess = true when data is present and we're not refetching after an error.\n    // That includes cases where the _current_ item is either actively\n    // fetching or about to fetch due to an uninitialized entry.\n    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseQueryStateDefaultResult<any>;\n  }\n  function infiniteQueryStatePreSelector(currentState: InfiniteQueryResultSelectorResult<any>, lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined, queryArgs: any): UseInfiniteQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n    // isSuccess = true when data is present\n    const isSuccess = currentState.isSuccess || isFetching && hasData;\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseInfiniteQueryStateDefaultResult<any>;\n  }\n  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, defaultOptions?: PrefetchOptions) {\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n    const stableDefaultOptions = useShallowStableValue(defaultOptions);\n    return useCallback((arg: any, options?: PrefetchOptions) => dispatch((api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\n      ...stableDefaultOptions,\n      ...options\n    })), [endpointName, dispatch, stableDefaultOptions]);\n  }\n  function useQuerySubscriptionCommonImpl<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(endpointName: string, arg: unknown | SkipToken, {\n    refetchOnReconnect,\n    refetchOnFocus,\n    refetchOnMountOrArgChange,\n    skip = false,\n    pollingInterval = 0,\n    skipPollingIfUnfocused = false,\n    ...rest\n  }: UseQuerySubscriptionOptions = {}) {\n    const {\n      initiate\n    } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n\n    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.\n    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(undefined);\n    if (!subscriptionSelectorsRef.current) {\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n    You must add the middleware for RTK-Query to function correctly!`);\n        }\n      }\n      subscriptionSelectorsRef.current = returnedValue as unknown as SubscriptionSelectors;\n    }\n    const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n    const stableSubscriptionOptions = useShallowStableValue({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval,\n      skipPollingIfUnfocused\n    });\n    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>).initialPageParam;\n    const stableInitialPageParam = useShallowStableValue(initialPageParam);\n    const refetchCachedPages = (rest as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);\n\n    /**\n     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n     */\n    const promiseRef = useRef<T | undefined>(undefined);\n    let {\n      queryCacheKey,\n      requestId\n    } = promiseRef.current || {};\n\n    // HACK We've saved the middleware subscription lookup callbacks into a ref,\n    // so we can directly check here if the subscription exists for this query.\n    let currentRenderHasSubscription = false;\n    if (queryCacheKey && requestId) {\n      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n    }\n    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== undefined;\n    usePossiblyImmediateEffect((): void | undefined => {\n      if (subscriptionRemoved) {\n        promiseRef.current = undefined;\n      }\n    }, [subscriptionRemoved]);\n    usePossiblyImmediateEffect((): void | undefined => {\n      const lastPromise = promiseRef.current;\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'removeMeOnCompilation') {\n        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\n        console.log(subscriptionRemoved);\n      }\n      if (stableArg === skipToken) {\n        lastPromise?.unsubscribe();\n        promiseRef.current = undefined;\n        return;\n      }\n      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n      if (!lastPromise || lastPromise.arg !== stableArg) {\n        lastPromise?.unsubscribe();\n        const promise = dispatch(initiate(stableArg, {\n          subscriptionOptions: stableSubscriptionOptions,\n          forceRefetch: refetchOnMountOrArgChange,\n          ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {\n            initialPageParam: stableInitialPageParam,\n            refetchCachedPages: stableRefetchCachedPages\n          } : {})\n        }));\n        promiseRef.current = promise as T;\n      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n      }\n    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);\n    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const;\n  }\n  function buildUseQueryState(endpointName: string, preSelector: typeof queryStatePreSelector | typeof infiniteQueryStatePreSelector) {\n    const useQueryState = (arg: any, {\n      skip = false,\n      selectFromResult\n    }: UseQueryStateOptions<any, any> | UseInfiniteQueryStateOptions<any, any> = {}) => {\n      const {\n        select\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n      type ApiRootState = Parameters<ReturnType<typeof select>>[0];\n      const lastValue = useRef<any>(undefined);\n      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(() =>\n      // Normally ts-ignores are bad and should be avoided, but we're\n      // already casting this selector to be `Selector<any>` anyway,\n      // so the inconsistencies don't matter here\n      // @ts-ignore\n      createSelector([\n      // @ts-ignore\n      select(stableArg), (_: ApiRootState, lastResult: any) => lastResult, (_: ApiRootState) => stableArg], preSelector, {\n        memoizeOptions: {\n          resultEqualityCheck: shallowEqual\n        }\n      }), [select, stableArg]);\n      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n        devModeChecks: {\n          identityFunctionCheck: 'never'\n        }\n      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n      const currentState = useSelector((state: RootState<Definitions, any, any>) => querySelector(state, lastValue.current), shallowEqual);\n      const store = useStore<RootState<Definitions, any, any>>();\n      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n      useIsomorphicLayoutEffect(() => {\n        lastValue.current = newLastValue;\n      }, [newLastValue]);\n      return currentState;\n    };\n    return useQueryState;\n  }\n  function usePromiseRefUnsubscribeOnUnmount(promiseRef: UnsubscribePromiseRef) {\n    useEffect(() => {\n      return () => {\n        unsubscribePromiseRef(promiseRef)\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        ;\n        (promiseRef.current as any) = undefined;\n      };\n    }, [promiseRef]);\n  }\n  function refetchOrErrorIfUnmounted<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(promiseRef: React.RefObject<T | undefined>): T {\n    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : 'Cannot refetch a query that has not been started yet.');\n    return promiseRef.current.refetch() as T;\n  }\n  function buildQueryHooks(endpointName: string): QueryHooks<any> {\n    const useQuerySubscription: UseQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef] = useQuerySubscriptionCommonImpl<QueryActionCreatorResult<any>>(endpointName, arg, options);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      return useMemo(() => ({\n        /**\n         * A method to manually refetch data for the query\n         */\n        refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n      }), [promiseRef]);\n    };\n    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval = 0,\n      skipPollingIfUnfocused = false\n    } = {}) => {\n      const {\n        initiate\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE);\n\n      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n       */\n      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(undefined);\n      const stableSubscriptionOptions = useShallowStableValue({\n        refetchOnReconnect,\n        refetchOnFocus,\n        pollingInterval,\n        skipPollingIfUnfocused\n      });\n      usePossiblyImmediateEffect(() => {\n        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n        if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n        }\n      }, [stableSubscriptionOptions]);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n      const trigger = useCallback(function (arg: any, preferCacheValue = false) {\n        let promise: QueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch(initiate(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            forceRefetch: !preferCacheValue\n          }));\n          setArg(arg);\n        });\n        return promise!;\n      }, [dispatch, initiate]);\n      const reset = useCallback(() => {\n        if (promiseRef.current?.queryCacheKey) {\n          dispatch(api.internalActions.removeQueryResult({\n            queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey\n          }));\n        }\n      }, [dispatch]);\n\n      /* cleanup on unmount */\n      useEffect(() => {\n        return () => {\n          unsubscribePromiseRef(promiseRef);\n        };\n      }, []);\n\n      /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\n      useEffect(() => {\n        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n          trigger(arg, true);\n        }\n      }, [arg, trigger]);\n      return useMemo(() => [trigger, arg, {\n        reset\n      }] as const, [trigger, arg, reset]);\n    };\n    const useQueryState: UseQueryState<any> = buildUseQueryState(endpointName, queryStatePreSelector);\n    return {\n      useQueryState,\n      useQuerySubscription,\n      useLazyQuerySubscription,\n      useLazyQuery(options) {\n        const [trigger, arg, {\n          reset\n        }] = useLazyQuerySubscription(options);\n        const queryStateResults = useQueryState(arg, {\n          ...options,\n          skip: arg === UNINITIALIZED_VALUE\n        });\n        const info = useMemo(() => ({\n          lastArg: arg\n        }), [arg]);\n        return useMemo(() => [trigger, {\n          ...queryStateResults,\n          reset\n        }, info], [trigger, queryStateResults, reset, info]);\n      },\n      useQuery(arg, options) {\n        const querySubscriptionResults = useQuerySubscription(arg, options);\n        const queryStateResults = useQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          ...querySubscriptionResults\n        }), [queryStateResults, querySubscriptionResults]);\n      }\n    };\n  }\n  function buildInfiniteQueryHooks(endpointName: string): InfiniteQueryHooks<any> {\n    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(endpointName, arg, options);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n\n      // Extract and stabilize the hook-level refetchCachedPages option\n      const hookRefetchCachedPages = (options as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);\n      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(function (arg: unknown, direction: 'forward' | 'backward') {\n        let promise: InfiniteQueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch((initiate as StartInfiniteQueryActionCreator<any>)(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            direction\n          }));\n        });\n        return promise!;\n      }, [promiseRef, dispatch, initiate]);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n      const refetch = useCallback((options?: Pick<UseInfiniteQuerySubscriptionOptions<any>, 'refetchCachedPages'>) => {\n        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(38) : 'Cannot refetch a query that has not been started yet.');\n        // Merge per-call options with hook-level default\n        const mergedOptions = {\n          refetchCachedPages: options?.refetchCachedPages ?? stableHookRefetchCachedPages\n        };\n        return promiseRef.current.refetch(mergedOptions);\n      }, [promiseRef, stableHookRefetchCachedPages]);\n      return useMemo(() => {\n        const fetchNextPage = () => {\n          return trigger(stableArg, 'forward');\n        };\n        const fetchPreviousPage = () => {\n          return trigger(stableArg, 'backward');\n        };\n        return {\n          trigger,\n          /**\n           * A method to manually refetch data for the query\n           */\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        };\n      }, [refetch, trigger, stableArg]);\n    };\n    const useInfiniteQueryState: UseInfiniteQueryState<any> = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n    return {\n      useInfiniteQueryState,\n      useInfiniteQuerySubscription,\n      useInfiniteQuery(arg, options) {\n        const {\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        } = useInfiniteQuerySubscription(arg, options);\n        const queryStateResults = useInfiniteQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, 'hasNextPage', 'hasPreviousPage');\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          fetchNextPage,\n          fetchPreviousPage,\n          refetch\n        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n      }\n    };\n  }\n  function buildMutationHook(name: string): UseMutation<any> {\n    return ({\n      selectFromResult,\n      fixedCacheKey\n    } = {}) => {\n      const {\n        select,\n        initiate\n      } = api.endpoints[name] as ApiEndpointMutation<MutationDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>();\n      useEffect(() => () => {\n        if (!promise?.arg.fixedCacheKey) {\n          promise?.reset();\n        }\n      }, [promise]);\n      const triggerMutation = useCallback(function (arg: Parameters<typeof initiate>['0']) {\n        const promise = dispatch(initiate(arg, {\n          fixedCacheKey\n        }));\n        setPromise(promise);\n        return promise;\n      }, [dispatch, initiate, fixedCacheKey]);\n      const {\n        requestId\n      } = promise || {};\n      const selectDefaultResult = useMemo(() => select({\n        fixedCacheKey,\n        requestId: promise?.requestId\n      }), [fixedCacheKey, promise, select]);\n      const mutationSelector = useMemo((): Selector<RootState<Definitions, any, any>, any> => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n      const currentState = useSelector(mutationSelector, shallowEqual);\n      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : undefined;\n      const reset = useCallback(() => {\n        batch(() => {\n          if (promise) {\n            setPromise(undefined);\n          }\n          if (fixedCacheKey) {\n            dispatch(api.internalActions.removeMutationResult({\n              requestId,\n              fixedCacheKey\n            }));\n          }\n        });\n      }, [dispatch, fixedCacheKey, promise, requestId]);\n      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, 'endpointName');\n      useDebugValue(debugValue);\n      const finalState = useMemo(() => ({\n        ...currentState,\n        originalArgs,\n        reset\n      }), [currentState, originalArgs, reset]);\n      return useMemo(() => [triggerMutation, finalState] as const, [triggerMutation, finalState]);\n    };\n  }\n}","export { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from 'react';","export { shallowEqual, Provider, ReactReduxContext } from 'react-redux';","export const UNINITIALIZED_VALUE = Symbol();\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE;","import { useEffect, useRef, useMemo } from './reactImports';\nimport { copyWithStructuralSharing } from './rtkqImports';\nexport function useStableQueryArgs<T>(queryArgs: T) {\n  const cache = useRef(queryArgs);\n  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n  useEffect(() => {\n    if (cache.current !== copy) {\n      cache.current = copy;\n    }\n  }, [copy]);\n  return copy;\n}","import { useEffect, useRef } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nexport function useShallowStableValue<T>(value: T) {\n  const cache = useRef(value);\n  useEffect(() => {\n    if (!shallowEqual(cache.current, value)) {\n      cache.current = value;\n    }\n  }, [value]);\n  return shallowEqual(cache.current, value) ? cache.current : value;\n}","// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nimport { buildCreateApi, coreModule } from './rtkqImports';\nimport { reactHooksModule, reactHooksModuleName } from './module';\nexport * from '@reduxjs/toolkit/query';\nexport { ApiProvider } from './ApiProvider';\nconst createApi = /* @__PURE__ */buildCreateApi(coreModule(), reactHooksModule());\nexport type { TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult, TypedUseQuerySubscriptionResult, TypedLazyQueryTrigger, TypedUseLazyQuery, TypedUseMutation, TypedMutationTrigger, TypedQueryStateSelector, TypedUseQueryState, TypedUseQuery, TypedUseQuerySubscription, TypedUseLazyQuerySubscription, TypedUseQueryStateOptions, TypedUseLazyQueryStateResult, TypedUseInfiniteQuery, TypedUseInfiniteQueryHookResult, TypedUseInfiniteQueryStateResult, TypedUseInfiniteQuerySubscriptionResult, TypedUseInfiniteQueryStateOptions, TypedInfiniteQueryStateSelector, TypedUseInfiniteQuerySubscription, TypedUseInfiniteQueryState, TypedLazyInfiniteQueryTrigger } from './buildHooks';\nexport { UNINITIALIZED_VALUE } from './constants';\nexport { createApi, reactHooksModule, reactHooksModuleName };","import { configureStore, formatProdErrorMessage as _formatProdErrorMessage } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport { useContext, useEffect } from './reactImports';\nimport * as React from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { Provider, ReactReduxContext } from './reactReduxImports';\nimport { setupListeners } from './rtkqImports';\nimport type { Api } from '@reduxjs/toolkit/query';\n\n/**\n * Can be used as a `Provider` if you **do not already have a Redux store**.\n *\n * @example\n * ```tsx\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\n * import * as React from 'react';\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\n * import { Pokemon } from './features/Pokemon';\n *\n * function App() {\n *   return (\n *     <ApiProvider api={api}>\n *       <Pokemon />\n *     </ApiProvider>\n *   );\n * }\n * ```\n *\n * @remarks\n * Using this together with an existing redux store, both will\n * conflict with each other - please use the traditional redux setup\n * in that case.\n */\nexport function ApiProvider(props: {\n  children: any;\n  api: Api<any, {}, any, any>;\n  setupListeners?: Parameters<typeof setupListeners>[1] | false;\n  context?: Context<ReactReduxContextValue | null>;\n}) {\n  const context = props.context || ReactReduxContext;\n  const existingContext = useContext(context);\n  if (existingContext) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(35) : 'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.');\n  }\n  const [store] = React.useState(() => configureStore({\n    reducer: {\n      [props.api.reducerPath]: props.api.reducer\n    },\n    middleware: gDM => gDM().concat(props.api.middleware)\n  }));\n  // Adds the event listeners for online/offline/focus/etc\n  useEffect((): undefined | (() => void) => props.setupListeners === false ? undefined : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n  return <Provider store={store} context={context}>\n      {props.children}\n    </Provider>;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB,YAAY,2BAA2B,gBAAgB,aAAa,iBAAiB;;;ACA9G,SAAS,0BAA0BA,gCAA+B;AAElE,SAAS,SAAS,SAAS,eAAe,eAAe,eAAe,eAAe,YAAY,kBAAkB;AAErH,SAAS,kBAAkB,uBAAuB;;;ACJ3C,SAAS,WAAW,KAAa;AACtC,SAAO,IAAI,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;AACjD;;;ACGO,SAAS,gBAAgB,KAAuB;AACrD,MAAI,QAAQ;AACZ,aAAW,QAAQ,KAAK;AACtB;AAAA,EACF;AACA,SAAO;AACT;;;AC8XO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;;;AC91BO,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACNA,SAAS,0BAA0B,yBAAyB,0BAA0B,0BAA0B,0BAA0B,gCAAgC;;;ACA1K,SAAS,WAAW,QAAQ,SAAS,YAAY,aAAa,eAAe,iBAAiB,gBAAgB;;;ACA9G,SAAS,cAAc,UAAU,yBAAyB;;;ACAnD,IAAM,sBAAsB,OAAO;;;ACEnC,SAAS,mBAAsB,WAAc;AAClD,QAAM,QAAQ,OAAO,SAAS;AAC9B,QAAM,OAAO,QAAQ,MAAM,0BAA0B,MAAM,SAAS,SAAS,GAAG,CAAC,SAAS,CAAC;AAC3F,YAAU,MAAM;AACd,QAAI,MAAM,YAAY,MAAM;AAC1B,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SAAO;AACT;;;ACTO,SAAS,sBAAyB,OAAU;AACjD,QAAM,QAAQ,OAAO,KAAK;AAC1B,YAAU,MAAM;AACd,QAAI,CAAC,aAAa,MAAM,SAAS,KAAK,GAAG;AACvC,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AACV,SAAO,aAAa,MAAM,SAAS,KAAK,IAAI,MAAM,UAAU;AAC9D;;;ALSA,IAAM,YAAY,MAAM,CAAC,EAAE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB;AAC/I,IAAM,QAAuB,0BAAU;AAIvC,IAAM,yBAAyB,MAAM,OAAO,cAAc,eAAe,UAAU,YAAY;AAC/F,IAAM,gBAA+B,uCAAuB;AAC5D,IAAM,+BAA+B,MAAM,SAAS,gBAAgB,kBAAkB;AAC/E,IAAM,4BAA2C,6CAA6B;AAq0BrF,IAAM,8BAA4D,cAAY;AAC5E,MAAI,SAAS,iBAAiB;AAC5B,WAAO,iCACF,WADE;AAAA,MAEL,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,WAAW,SAAS,SAAS,SAAY,QAAQ;AAAA;AAAA;AAAA,MAGjD,QAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,KAA2B,QAAW,MAAuB;AACpE,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,SAAO;AAClB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AACD,SAAO;AACT;AACA,IAAM,2BAA2B,CAAC,QAAQ,UAAU,aAAa,aAAa,WAAW,OAAO;AAWzF,SAAS,WAAoD;AAAA,EAClE;AAAA,EACA,eAAe;AAAA,IACb;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,6BAA8F,gCAAgC,QAAM,GAAG,IAAI;AAIjJ,QAAM,wBAAwB,CAAC,QAA4B;AAx5B7D;AAw5BgE,2BAAI,YAAJ,mBAAa,gBAAb;AAAA;AAC9D,QAAM,sBAAsB,QAAQ;AACpC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,sBAAsB,cAA8C,YAAyD,WAAiD;AAIrL,SAAI,yCAAY,iBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,aAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,yCAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAGhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAKrG,UAAM,YAAY,aAAa,aAAa,YAAY,cAAc,EAAC,yCAAY,YAAW,aAAa;AAC3G,WAAO,iCACF,eADE;AAAA,MAEL;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,8BAA8B,cAAsD,YAAiE,WAAyD;AAIrN,SAAI,yCAAY,iBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,aAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,yCAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAEhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAErG,UAAM,YAAY,aAAa,aAAa,cAAc;AAC1D,WAAO,iCACF,eADE;AAAA,MAEL;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAyD,cAA4B,gBAAkC;AAC9H,UAAM,WAAW,YAAoD;AACrE,UAAM,uBAAuB,sBAAsB,cAAc;AACjE,WAAO,YAAY,CAAC,KAAU,YAA8B,SAAU,IAAI,KAAK,SAAkC,cAAc,KAAK,kCAC/H,uBACA,QACJ,CAAC,GAAG,CAAC,cAAc,UAAU,oBAAoB,CAAC;AAAA,EACrD;AACA,WAAS,+BAAgH,cAAsB,KAA0B,KAQxI,CAAC,GAAG;AARoI,iBACvK;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAlgC7B,IA4/B2K,IAOpK,iBAPoK,IAOpK;AAAA,MANH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAGA,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,IAAI,UAAU,YAAY;AAC9B,UAAM,WAAW,YAAoD;AAGrE,UAAM,2BAA2B,OAA0C,MAAS;AACpF,QAAI,CAAC,yBAAyB,SAAS;AACrC,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,OAAO,kBAAkB,YAAY,QAAO,+CAAe,UAAS,UAAU;AAChF,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,qEACnG;AAAA,QAC7D;AAAA,MACF;AACA,+BAAyB,UAAU;AAAA,IACrC;AACA,UAAM,YAAY,mBAAmB,OAAO,YAAY,GAAG;AAC3D,UAAM,4BAA4B,sBAAsB;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,mBAAoB,KAAkD;AAC5E,UAAM,yBAAyB,sBAAsB,gBAAgB;AACrE,UAAM,qBAAsB,KAAkD;AAC9E,UAAM,2BAA2B,sBAAsB,kBAAkB;AAKzE,UAAM,aAAa,OAAsB,MAAS;AAClD,QAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,IAAI,WAAW,WAAW,CAAC;AAI3B,QAAI,+BAA+B;AACnC,QAAI,iBAAiB,WAAW;AAC9B,qCAA+B,yBAAyB,QAAQ,oBAAoB,eAAe,SAAS;AAAA,IAC9G;AACA,UAAM,sBAAsB,CAAC,gCAAgC,WAAW,YAAY;AACpF,+BAA2B,MAAwB;AACjD,UAAI,qBAAqB;AACvB,mBAAW,UAAU;AAAA,MACvB;AAAA,IACF,GAAG,CAAC,mBAAmB,CAAC;AACxB,+BAA2B,MAAwB;AAvjCvD,UAAAC;AAwjCM,YAAM,cAAc,WAAW;AAC/B,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,yBAAyB;AAEtF,gBAAQ,IAAI,mBAAmB;AAAA,MACjC;AACA,UAAI,cAAc,WAAW;AAC3B,mDAAa;AACb,mBAAW,UAAU;AACrB;AAAA,MACF;AACA,YAAM,2BAA0BA,MAAA,WAAW,YAAX,gBAAAA,IAAoB;AACpD,UAAI,CAAC,eAAe,YAAY,QAAQ,WAAW;AACjD,mDAAa;AACb,cAAM,UAAU,SAAS,SAAS,WAAW;AAAA,UAC3C,qBAAqB;AAAA,UACrB,cAAc;AAAA,WACV,0BAA0B,oBAAoB,YAAY,CAAC,IAAI;AAAA,UACjE,kBAAkB;AAAA,UAClB,oBAAoB;AAAA,QACtB,IAAI,CAAC,EACN,CAAC;AACF,mBAAW,UAAU;AAAA,MACvB,WAAW,8BAA8B,yBAAyB;AAChE,oBAAY,0BAA0B,yBAAyB;AAAA,MACjE;AAAA,IACF,GAAG,CAAC,UAAU,UAAU,2BAA2B,WAAW,2BAA2B,qBAAqB,wBAAwB,0BAA0B,YAAY,CAAC;AAC7K,WAAO,CAAC,YAAY,UAAU,UAAU,yBAAyB;AAAA,EACnE;AACA,WAAS,mBAAmB,cAAsB,aAAkF;AAClI,UAAM,gBAAgB,CAAC,KAAU;AAAA,MAC/B,OAAO;AAAA,MACP;AAAA,IACF,IAA6E,CAAC,MAAM;AAClF,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,YAAY,mBAAmB,OAAO,YAAY,GAAG;AAE3D,YAAM,YAAY,OAAY,MAAS;AACvC,YAAM,sBAA0D,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAKxE,eAAe;AAAA;AAAA,UAEf,OAAO,SAAS;AAAA,UAAG,CAAC,GAAiB,eAAoB;AAAA,UAAY,CAAC,MAAoB;AAAA,QAAS,GAAG,aAAa;AAAA,UACjH,gBAAgB;AAAA,YACd,qBAAqB;AAAA,UACvB;AAAA,QACF,CAAC;AAAA,SAAG,CAAC,QAAQ,SAAS,CAAC;AACvB,YAAM,gBAAoD,QAAQ,MAAM,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,kBAAkB;AAAA,QACjJ,eAAe;AAAA,UACb,uBAAuB;AAAA,QACzB;AAAA,MACF,CAAC,IAAI,qBAAqB,CAAC,qBAAqB,gBAAgB,CAAC;AACjE,YAAM,eAAe,YAAY,CAAC,UAA4C,cAAc,OAAO,UAAU,OAAO,GAAG,YAAY;AACnI,YAAM,QAAQ,SAA2C;AACzD,YAAM,eAAe,oBAAoB,MAAM,SAAS,GAAG,UAAU,OAAO;AAC5E,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AAAA,MACtB,GAAG,CAAC,YAAY,CAAC;AACjB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,kCAAkC,YAAmC;AAC5E,cAAU,MAAM;AACd,aAAO,MAAM;AACX,8BAAsB,UAAU;AAGhC,QAAC,WAAW,UAAkB;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,UAAU,CAAC;AAAA,EACjB;AACA,WAAS,0BAA2G,YAA+C;AACjK,QAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,uDAAuD;AACvK,WAAO,WAAW,QAAQ,QAAQ;AAAA,EACpC;AACA,WAAS,gBAAgB,cAAuC;AAC9D,UAAM,uBAAkD,CAAC,KAAU,UAAU,CAAC,MAAM;AAClF,YAAM,CAAC,UAAU,IAAI,+BAA8D,cAAc,KAAK,OAAO;AAC7G,wCAAkC,UAAU;AAC5C,aAAO,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,QAIpB,SAAS,MAAM,0BAA0B,UAAU;AAAA,MACrD,IAAI,CAAC,UAAU,CAAC;AAAA,IAClB;AACA,UAAM,2BAA0D,CAAC;AAAA,MAC/D;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAC3B,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,KAAK,MAAM,IAAI,SAAc,mBAAmB;AAMvD,YAAM,aAAa,OAAkD,MAAS;AAC9E,YAAM,4BAA4B,sBAAsB;AAAA,QACtD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iCAA2B,MAAM;AA1qCvC;AA2qCQ,cAAM,2BAA0B,gBAAW,YAAX,mBAAoB;AACpD,YAAI,8BAA8B,yBAAyB;AACzD,2BAAW,YAAX,mBAAoB,0BAA0B;AAAA,QAChD;AAAA,MACF,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,yBAAyB,OAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,UAAU,YAAY,SAAUC,MAAU,mBAAmB,OAAO;AACxE,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAS,SAASA,MAAK;AAAA,YACpD,qBAAqB,uBAAuB;AAAA,YAC5C,cAAc,CAAC;AAAA,UACjB,CAAC,CAAC;AACF,iBAAOA,IAAG;AAAA,QACZ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,UAAU,QAAQ,CAAC;AACvB,YAAM,QAAQ,YAAY,MAAM;AAhsCtC;AAisCQ,aAAI,gBAAW,YAAX,mBAAoB,eAAe;AACrC,mBAAS,IAAI,gBAAgB,kBAAkB;AAAA,YAC7C,gBAAe,gBAAW,YAAX,mBAAoB;AAAA,UACrC,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,GAAG,CAAC,QAAQ,CAAC;AAGb,gBAAU,MAAM;AACd,eAAO,MAAM;AACX,gCAAsB,UAAU;AAAA,QAClC;AAAA,MACF,GAAG,CAAC,CAAC;AAGL,gBAAU,MAAM;AACd,YAAI,QAAQ,uBAAuB,CAAC,WAAW,SAAS;AACtD,kBAAQ,KAAK,IAAI;AAAA,QACnB;AAAA,MACF,GAAG,CAAC,KAAK,OAAO,CAAC;AACjB,aAAO,QAAQ,MAAM,CAAC,SAAS,KAAK;AAAA,QAClC;AAAA,MACF,CAAC,GAAY,CAAC,SAAS,KAAK,KAAK,CAAC;AAAA,IACpC;AACA,UAAM,gBAAoC,mBAAmB,cAAc,qBAAqB;AAChG,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,SAAS;AACpB,cAAM,CAAC,SAAS,KAAK;AAAA,UACnB;AAAA,QACF,CAAC,IAAI,yBAAyB,OAAO;AACrC,cAAM,oBAAoB,cAAc,KAAK,iCACxC,UADwC;AAAA,UAE3C,MAAM,QAAQ;AAAA,QAChB,EAAC;AACD,cAAM,OAAO,QAAQ,OAAO;AAAA,UAC1B,SAAS;AAAA,QACX,IAAI,CAAC,GAAG,CAAC;AACT,eAAO,QAAQ,MAAM,CAAC,SAAS,iCAC1B,oBAD0B;AAAA,UAE7B;AAAA,QACF,IAAG,IAAI,GAAG,CAAC,SAAS,mBAAmB,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,MACA,SAAS,KAAK,SAAS;AACrB,cAAM,2BAA2B,qBAAqB,KAAK,OAAO;AAClE,cAAM,oBAAoB,cAAc,KAAK;AAAA,UAC3C,kBAAkB,QAAQ,cAAa,mCAAS,QAAO,SAAY;AAAA,WAChE,QACJ;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,wBAAwB;AACtE,sBAAc,UAAU;AACxB,eAAO,QAAQ,MAAO,kCACjB,oBACA,2BACD,CAAC,mBAAmB,wBAAwB,CAAC;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACA,WAAS,wBAAwB,cAA+C;AAC9E,UAAM,+BAAkE,CAAC,KAAU,UAAU,CAAC,MAAM;AAClG,YAAM,CAAC,YAAY,UAAU,UAAU,yBAAyB,IAAI,+BAAsE,cAAc,KAAK,OAAO;AACpK,YAAM,yBAAyB,OAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAG9B,YAAM,yBAA0B,QAAqD;AACrF,YAAM,+BAA+B,sBAAsB,sBAAsB;AACjF,YAAM,UAAyC,YAAY,SAAUA,MAAc,WAAmC;AACpH,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAU,SAAkDA,MAAK;AAAA,YAC9F,qBAAqB,uBAAuB;AAAA,YAC5C;AAAA,UACF,CAAC,CAAC;AAAA,QACJ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,UAAU,QAAQ,CAAC;AACnC,wCAAkC,UAAU;AAC5C,YAAM,YAAY,mBAAmB,QAAQ,OAAO,YAAY,GAAG;AACnE,YAAM,UAAU,YAAY,CAACC,aAAmF;AArxCtH;AAsxCQ,YAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,uDAAuD;AAEvK,cAAM,gBAAgB;AAAA,UACpB,qBAAoB,KAAAA,YAAA,gBAAAA,SAAS,uBAAT,YAA+B;AAAA,QACrD;AACA,eAAO,WAAW,QAAQ,QAAQ,aAAa;AAAA,MACjD,GAAG,CAAC,YAAY,4BAA4B,CAAC;AAC7C,aAAO,QAAQ,MAAM;AACnB,cAAM,gBAAgB,MAAM;AAC1B,iBAAO,QAAQ,WAAW,SAAS;AAAA,QACrC;AACA,cAAM,oBAAoB,MAAM;AAC9B,iBAAO,QAAQ,WAAW,UAAU;AAAA,QACtC;AACA,eAAO;AAAA,UACL;AAAA;AAAA;AAAA;AAAA,UAIA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,GAAG,CAAC,SAAS,SAAS,SAAS,CAAC;AAAA,IAClC;AACA,UAAM,wBAAoD,mBAAmB,cAAc,6BAA6B;AACxH,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,iBAAiB,KAAK,SAAS;AAC7B,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,6BAA6B,KAAK,OAAO;AAC7C,cAAM,oBAAoB,sBAAsB,KAAK;AAAA,UACnD,kBAAkB,QAAQ,cAAa,mCAAS,QAAO,SAAY;AAAA,WAChE,QACJ;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,0BAA0B,eAAe,iBAAiB;AACxG,sBAAc,UAAU;AACxB,eAAO,QAAQ,MAAO,iCACjB,oBADiB;AAAA,UAEpB;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,CAAC,mBAAmB,eAAe,mBAAmB,OAAO,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,MAAgC;AACzD,WAAO,CAAC;AAAA,MACN;AAAA,MACA;AAAA,IACF,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,IAAI,UAAU,IAAI;AACtB,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,SAAS,UAAU,IAAI,SAA2C;AACzE,gBAAU,MAAM,MAAM;AACpB,YAAI,EAAC,mCAAS,IAAI,gBAAe;AAC/B,6CAAS;AAAA,QACX;AAAA,MACF,GAAG,CAAC,OAAO,CAAC;AACZ,YAAM,kBAAkB,YAAY,SAAU,KAAuC;AACnF,cAAMC,WAAU,SAAS,SAAS,KAAK;AAAA,UACrC;AAAA,QACF,CAAC,CAAC;AACF,mBAAWA,QAAO;AAClB,eAAOA;AAAA,MACT,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,WAAW,CAAC;AAChB,YAAM,sBAAsB,QAAQ,MAAM,OAAO;AAAA,QAC/C;AAAA,QACA,WAAW,mCAAS;AAAA,MACtB,CAAC,GAAG,CAAC,eAAe,SAAS,MAAM,CAAC;AACpC,YAAM,mBAAmB,QAAQ,MAAuD,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,gBAAgB,IAAI,qBAAqB,CAAC,kBAAkB,mBAAmB,CAAC;AACjO,YAAM,eAAe,YAAY,kBAAkB,YAAY;AAC/D,YAAM,eAAe,iBAAiB,OAAO,mCAAS,IAAI,eAAe;AACzE,YAAM,QAAQ,YAAY,MAAM;AAC9B,cAAM,MAAM;AACV,cAAI,SAAS;AACX,uBAAW,MAAS;AAAA,UACtB;AACA,cAAI,eAAe;AACjB,qBAAS,IAAI,gBAAgB,qBAAqB;AAAA,cAChD;AAAA,cACA;AAAA,YACF,CAAC,CAAC;AAAA,UACJ;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,UAAU,eAAe,SAAS,SAAS,CAAC;AAChD,YAAM,aAAa,KAAK,cAAc,GAAG,0BAA0B,cAAc;AACjF,oBAAc,UAAU;AACxB,YAAM,aAAa,QAAQ,MAAO,iCAC7B,eAD6B;AAAA,QAEhC;AAAA,QACA;AAAA,MACF,IAAI,CAAC,cAAc,cAAc,KAAK,CAAC;AACvC,aAAO,QAAQ,MAAM,CAAC,iBAAiB,UAAU,GAAY,CAAC,iBAAiB,UAAU,CAAC;AAAA,IAC5F;AAAA,EACF;AACF;;;ALr3CO,IAAM,uBAAsC,uBAAO;AA0FnD,IAAM,mBAAmB,CAAC,KAUJ,CAAC,MAAgC;AAV7B,eAC/B;AAAA,YAAQ;AAAA,IACR,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,IACjB,gCAAgC;AAAA,EA7GlC,IAqGiC,IAS5B,iBAT4B,IAS5B;AAAA,IARH;AAAA,IACA;AAAA,IAKA;AAAA,IACA;AAAA;AAGA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAM,YAAY,CAAC,eAAe,eAAe,UAAU;AAC3D,QAAI,SAAS;AACb,eAAW,YAAY,WAAW;AAEhC,UAAI,gBAAgB,IAAI,IAAI,GAAG;AAC7B,YAAK,KAA+B,QAAQ,GAAG;AAC7C,cAAI,CAAC,QAAQ;AACX,oBAAQ,KAAK,uKAA4K;AACzL,qBAAS;AAAA,UACX;AAAA,QACF;AAGA,cAAM,QAAQ,IAAI,KAAK,QAAQ;AAAA,MACjC;AAEA,UAAI,OAAO,MAAM,QAAQ,MAAM,YAAY;AACzC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,4CAA4C,UAAU,MAAM,+BAA+B,UAAU,KAAK,IAAI,CAAC;AAAA,OAAW,QAAQ,6CAA6C;AAAA,MACvQ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,KAAK;AAAA,MACR;AAAA,IACF,GAAG,SAAS;AACV,YAAM,SAAS;AACf,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,WAAW;AAAA,QACb;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iBAAW,QAAQ;AAAA,QACjB;AAAA,MACF,CAAC;AACD,iBAAW,SAAS;AAAA,QAClB;AAAA,MACF,CAAC;AACD,aAAO;AAAA,QACL,eAAe,cAAc,YAAY;AACvC,cAAI,kBAAkB,UAAU,GAAG;AACjC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,gBAAgB,YAAY;AAChC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,OAAO,IAAI;AACtD,YAAC,IAAY,UAAU,WAAW,YAAY,CAAC,OAAO,IAAI;AAAA,UAC5D;AACA,cAAI,qBAAqB,UAAU,GAAG;AACpC,kBAAM,cAAc,kBAAkB,YAAY;AAClD,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,UAAU,IAAI;AAAA,UAC3D,WAAW,0BAA0B,UAAU,GAAG;AAChD,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,wBAAwB,YAAY;AACxC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,eAAe,IAAI;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AWxMA,cAAc;;;ACLd,SAAS,gBAAgB,0BAA0BC,gCAA+B;AAGlF,YAAY,WAAW;AA8BhB,SAAS,YAAY,OAKzB;AACD,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,kBAAkB,WAAW,OAAO;AAC1C,MAAI,iBAAiB;AACnB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,8GAA8G;AAAA,EACtM;AACA,QAAM,CAAC,KAAK,IAAU,eAAS,MAAM,eAAe;AAAA,IAClD,SAAS;AAAA,MACP,CAAC,MAAM,IAAI,WAAW,GAAG,MAAM,IAAI;AAAA,IACrC;AAAA,IACA,YAAY,SAAO,IAAI,EAAE,OAAO,MAAM,IAAI,UAAU;AAAA,EACtD,CAAC,CAAC;AAEF,YAAU,MAAgC,MAAM,mBAAmB,QAAQ,SAAY,eAAe,MAAM,UAAU,MAAM,cAAc,GAAG,CAAC,MAAM,gBAAgB,MAAM,QAAQ,CAAC;AACnL,SAAO,oCAAC,YAAS,OAAc,WAC1B,MAAM,QACT;AACJ;;;ADhDA,IAAM,YAA2B,+BAAe,WAAW,GAAG,iBAAiB,CAAC;","names":["_formatProdErrorMessage","_a","arg","options","promise","_formatProdErrorMessage","_formatProdErrorMessage","_formatProdErrorMessage"]}
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,705 +1,0 @@
-// src/query/react/rtkqImports.ts
-import { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from "@reduxjs/toolkit/query";
-
-// src/query/react/module.ts
-import { formatProdErrorMessage as _formatProdErrorMessage4 } from "@reduxjs/toolkit";
-import { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from "react-redux";
-import { createSelector as _createSelector } from "reselect";
-
-// src/query/utils/capitalize.ts
-function capitalize(str) {
-  return str.replace(str[0], str[0].toUpperCase());
-}
-
-// src/query/utils/countObjectKeys.ts
-function countObjectKeys(obj) {
-  let count = 0;
-  for (const _key in obj) {
-    count++;
-  }
-  return count;
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-
-// src/query/tsHelpers.ts
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/react/buildHooks.ts
-import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from "@reduxjs/toolkit";
-
-// src/query/react/reactImports.ts
-import { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from "react";
-
-// src/query/react/reactReduxImports.ts
-import { shallowEqual, Provider, ReactReduxContext } from "react-redux";
-
-// src/query/react/constants.ts
-var UNINITIALIZED_VALUE = Symbol();
-
-// src/query/react/useSerializedStableValue.ts
-function useStableQueryArgs(queryArgs) {
-  const cache = useRef(queryArgs);
-  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);
-  useEffect(() => {
-    if (cache.current !== copy) {
-      cache.current = copy;
-    }
-  }, [copy]);
-  return copy;
-}
-
-// src/query/react/useShallowStableValue.ts
-function useShallowStableValue(value) {
-  const cache = useRef(value);
-  useEffect(() => {
-    if (!shallowEqual(cache.current, value)) {
-      cache.current = value;
-    }
-  }, [value]);
-  return shallowEqual(cache.current, value) ? cache.current : value;
-}
-
-// src/query/react/buildHooks.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-var noPendingQueryStateSelector = (selected) => {
-  if (selected.isUninitialized) {
-    return {
-      ...selected,
-      isUninitialized: false,
-      isFetching: true,
-      isLoading: selected.data !== void 0 ? false : true,
-      // This is the one place where we still have to use `QueryStatus` as an enum,
-      // since it's the only reference in the React package and not in the core.
-      status: QueryStatus.pending
-    };
-  }
-  return selected;
-};
-function pick(obj, ...keys) {
-  const ret = {};
-  keys.forEach((key) => {
-    ret[key] = obj[key];
-  });
-  return ret;
-}
-var COMMON_HOOK_DEBUG_FIELDS = ["data", "status", "isLoading", "isSuccess", "isError", "error"];
-function buildHooks({
-  api,
-  moduleOptions: {
-    batch,
-    hooks: {
-      useDispatch,
-      useSelector,
-      useStore
-    },
-    unstable__sideEffectsInRender,
-    createSelector
-  },
-  serializeQueryArgs,
-  context
-}) {
-  const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : useEffect;
-  const unsubscribePromiseRef = (ref) => ref.current?.unsubscribe?.();
-  const endpointDefinitions = context.endpointDefinitions;
-  return {
-    buildQueryHooks,
-    buildInfiniteQueryHooks,
-    buildMutationHook,
-    usePrefetch
-  };
-  function queryStatePreSelector(currentState, lastResult, queryArgs) {
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    };
-  }
-  function infiniteQueryStatePreSelector(currentState, lastResult, queryArgs) {
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const {
-        endpointName
-      } = lastResult;
-      const endpointDefinition = endpointDefinitions[endpointName];
-      if (queryArgs !== skipToken && serializeQueryArgs({
-        queryArgs: lastResult.originalArgs,
-        endpointDefinition,
-        endpointName
-      }) === serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      })) lastResult = void 0;
-    }
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data;
-    if (data === void 0) data = currentState.data;
-    const hasData = data !== void 0;
-    const isFetching = currentState.isLoading;
-    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;
-    const isSuccess = currentState.isSuccess || isFetching && hasData;
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess
-    };
-  }
-  function usePrefetch(endpointName, defaultOptions) {
-    const dispatch = useDispatch();
-    const stableDefaultOptions = useShallowStableValue(defaultOptions);
-    return useCallback((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {
-      ...stableDefaultOptions,
-      ...options
-    })), [endpointName, dispatch, stableDefaultOptions]);
-  }
-  function useQuerySubscriptionCommonImpl(endpointName, arg, {
-    refetchOnReconnect,
-    refetchOnFocus,
-    refetchOnMountOrArgChange,
-    skip = false,
-    pollingInterval = 0,
-    skipPollingIfUnfocused = false,
-    ...rest
-  } = {}) {
-    const {
-      initiate
-    } = api.endpoints[endpointName];
-    const dispatch = useDispatch();
-    const subscriptionSelectorsRef = useRef(void 0);
-    if (!subscriptionSelectorsRef.current) {
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      if (process.env.NODE_ENV !== "production") {
-        if (typeof returnedValue !== "object" || typeof returnedValue?.type === "string") {
-          throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-    You must add the middleware for RTK-Query to function correctly!`);
-        }
-      }
-      subscriptionSelectorsRef.current = returnedValue;
-    }
-    const stableArg = useStableQueryArgs(skip ? skipToken : arg);
-    const stableSubscriptionOptions = useShallowStableValue({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval,
-      skipPollingIfUnfocused
-    });
-    const initialPageParam = rest.initialPageParam;
-    const stableInitialPageParam = useShallowStableValue(initialPageParam);
-    const refetchCachedPages = rest.refetchCachedPages;
-    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);
-    const promiseRef = useRef(void 0);
-    let {
-      queryCacheKey,
-      requestId
-    } = promiseRef.current || {};
-    let currentRenderHasSubscription = false;
-    if (queryCacheKey && requestId) {
-      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);
-    }
-    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== void 0;
-    usePossiblyImmediateEffect(() => {
-      if (subscriptionRemoved) {
-        promiseRef.current = void 0;
-      }
-    }, [subscriptionRemoved]);
-    usePossiblyImmediateEffect(() => {
-      const lastPromise = promiseRef.current;
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "removeMeOnCompilation") {
-        console.log(subscriptionRemoved);
-      }
-      if (stableArg === skipToken) {
-        lastPromise?.unsubscribe();
-        promiseRef.current = void 0;
-        return;
-      }
-      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;
-      if (!lastPromise || lastPromise.arg !== stableArg) {
-        lastPromise?.unsubscribe();
-        const promise = dispatch(initiate(stableArg, {
-          subscriptionOptions: stableSubscriptionOptions,
-          forceRefetch: refetchOnMountOrArgChange,
-          ...isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {
-            initialPageParam: stableInitialPageParam,
-            refetchCachedPages: stableRefetchCachedPages
-          } : {}
-        }));
-        promiseRef.current = promise;
-      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);
-      }
-    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);
-    return [promiseRef, dispatch, initiate, stableSubscriptionOptions];
-  }
-  function buildUseQueryState(endpointName, preSelector) {
-    const useQueryState = (arg, {
-      skip = false,
-      selectFromResult
-    } = {}) => {
-      const {
-        select
-      } = api.endpoints[endpointName];
-      const stableArg = useStableQueryArgs(skip ? skipToken : arg);
-      const lastValue = useRef(void 0);
-      const selectDefaultResult = useMemo(() => (
-        // Normally ts-ignores are bad and should be avoided, but we're
-        // already casting this selector to be `Selector<any>` anyway,
-        // so the inconsistencies don't matter here
-        // @ts-ignore
-        createSelector([
-          // @ts-ignore
-          select(stableArg),
-          (_, lastResult) => lastResult,
-          (_) => stableArg
-        ], preSelector, {
-          memoizeOptions: {
-            resultEqualityCheck: shallowEqual
-          }
-        })
-      ), [select, stableArg]);
-      const querySelector = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {
-        devModeChecks: {
-          identityFunctionCheck: "never"
-        }
-      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);
-      const currentState = useSelector((state) => querySelector(state, lastValue.current), shallowEqual);
-      const store = useStore();
-      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);
-      useIsomorphicLayoutEffect(() => {
-        lastValue.current = newLastValue;
-      }, [newLastValue]);
-      return currentState;
-    };
-    return useQueryState;
-  }
-  function usePromiseRefUnsubscribeOnUnmount(promiseRef) {
-    useEffect(() => {
-      return () => {
-        unsubscribePromiseRef(promiseRef);
-        promiseRef.current = void 0;
-      };
-    }, [promiseRef]);
-  }
-  function refetchOrErrorIfUnmounted(promiseRef) {
-    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage2(38) : "Cannot refetch a query that has not been started yet.");
-    return promiseRef.current.refetch();
-  }
-  function buildQueryHooks(endpointName) {
-    const useQuerySubscription = (arg, options = {}) => {
-      const [promiseRef] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      return useMemo(() => ({
-        /**
-         * A method to manually refetch data for the query
-         */
-        refetch: () => refetchOrErrorIfUnmounted(promiseRef)
-      }), [promiseRef]);
-    };
-    const useLazyQuerySubscription = ({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false
-    } = {}) => {
-      const {
-        initiate
-      } = api.endpoints[endpointName];
-      const dispatch = useDispatch();
-      const [arg, setArg] = useState(UNINITIALIZED_VALUE);
-      const promiseRef = useRef(void 0);
-      const stableSubscriptionOptions = useShallowStableValue({
-        refetchOnReconnect,
-        refetchOnFocus,
-        pollingInterval,
-        skipPollingIfUnfocused
-      });
-      usePossiblyImmediateEffect(() => {
-        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;
-        if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);
-        }
-      }, [stableSubscriptionOptions]);
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const trigger = useCallback(function(arg2, preferCacheValue = false) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            forceRefetch: !preferCacheValue
-          }));
-          setArg(arg2);
-        });
-        return promise;
-      }, [dispatch, initiate]);
-      const reset = useCallback(() => {
-        if (promiseRef.current?.queryCacheKey) {
-          dispatch(api.internalActions.removeQueryResult({
-            queryCacheKey: promiseRef.current?.queryCacheKey
-          }));
-        }
-      }, [dispatch]);
-      useEffect(() => {
-        return () => {
-          unsubscribePromiseRef(promiseRef);
-        };
-      }, []);
-      useEffect(() => {
-        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {
-          trigger(arg, true);
-        }
-      }, [arg, trigger]);
-      return useMemo(() => [trigger, arg, {
-        reset
-      }], [trigger, arg, reset]);
-    };
-    const useQueryState = buildUseQueryState(endpointName, queryStatePreSelector);
-    return {
-      useQueryState,
-      useQuerySubscription,
-      useLazyQuerySubscription,
-      useLazyQuery(options) {
-        const [trigger, arg, {
-          reset
-        }] = useLazyQuerySubscription(options);
-        const queryStateResults = useQueryState(arg, {
-          ...options,
-          skip: arg === UNINITIALIZED_VALUE
-        });
-        const info = useMemo(() => ({
-          lastArg: arg
-        }), [arg]);
-        return useMemo(() => [trigger, {
-          ...queryStateResults,
-          reset
-        }, info], [trigger, queryStateResults, reset, info]);
-      },
-      useQuery(arg, options) {
-        const querySubscriptionResults = useQuerySubscription(arg, options);
-        const queryStateResults = useQueryState(arg, {
-          selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,
-          ...options
-        });
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);
-        useDebugValue(debugValue);
-        return useMemo(() => ({
-          ...queryStateResults,
-          ...querySubscriptionResults
-        }), [queryStateResults, querySubscriptionResults]);
-      }
-    };
-  }
-  function buildInfiniteQueryHooks(endpointName) {
-    const useInfiniteQuerySubscription = (arg, options = {}) => {
-      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl(endpointName, arg, options);
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions;
-      }, [stableSubscriptionOptions]);
-      const hookRefetchCachedPages = options.refetchCachedPages;
-      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);
-      const trigger = useCallback(function(arg2, direction) {
-        let promise;
-        batch(() => {
-          unsubscribePromiseRef(promiseRef);
-          promiseRef.current = promise = dispatch(initiate(arg2, {
-            subscriptionOptions: subscriptionOptionsRef.current,
-            direction
-          }));
-        });
-        return promise;
-      }, [promiseRef, dispatch, initiate]);
-      usePromiseRefUnsubscribeOnUnmount(promiseRef);
-      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);
-      const refetch = useCallback((options2) => {
-        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage3(38) : "Cannot refetch a query that has not been started yet.");
-        const mergedOptions = {
-          refetchCachedPages: options2?.refetchCachedPages ?? stableHookRefetchCachedPages
-        };
-        return promiseRef.current.refetch(mergedOptions);
-      }, [promiseRef, stableHookRefetchCachedPages]);
-      return useMemo(() => {
-        const fetchNextPage = () => {
-          return trigger(stableArg, "forward");
-        };
-        const fetchPreviousPage = () => {
-          return trigger(stableArg, "backward");
-        };
-        return {
-          trigger,
-          /**
-           * A method to manually refetch data for the query
-           */
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        };
-      }, [refetch, trigger, stableArg]);
-    };
-    const useInfiniteQueryState = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);
-    return {
-      useInfiniteQueryState,
-      useInfiniteQuerySubscription,
-      useInfiniteQuery(arg, options) {
-        const {
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage
-        } = useInfiniteQuerySubscription(arg, options);
-        const queryStateResults = useInfiniteQueryState(arg, {
-          selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,
-          ...options
-        });
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, "hasNextPage", "hasPreviousPage");
-        useDebugValue(debugValue);
-        return useMemo(() => ({
-          ...queryStateResults,
-          fetchNextPage,
-          fetchPreviousPage,
-          refetch
-        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);
-      }
-    };
-  }
-  function buildMutationHook(name) {
-    return ({
-      selectFromResult,
-      fixedCacheKey
-    } = {}) => {
-      const {
-        select,
-        initiate
-      } = api.endpoints[name];
-      const dispatch = useDispatch();
-      const [promise, setPromise] = useState();
-      useEffect(() => () => {
-        if (!promise?.arg.fixedCacheKey) {
-          promise?.reset();
-        }
-      }, [promise]);
-      const triggerMutation = useCallback(function(arg) {
-        const promise2 = dispatch(initiate(arg, {
-          fixedCacheKey
-        }));
-        setPromise(promise2);
-        return promise2;
-      }, [dispatch, initiate, fixedCacheKey]);
-      const {
-        requestId
-      } = promise || {};
-      const selectDefaultResult = useMemo(() => select({
-        fixedCacheKey,
-        requestId: promise?.requestId
-      }), [fixedCacheKey, promise, select]);
-      const mutationSelector = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);
-      const currentState = useSelector(mutationSelector, shallowEqual);
-      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;
-      const reset = useCallback(() => {
-        batch(() => {
-          if (promise) {
-            setPromise(void 0);
-          }
-          if (fixedCacheKey) {
-            dispatch(api.internalActions.removeMutationResult({
-              requestId,
-              fixedCacheKey
-            }));
-          }
-        });
-      }, [dispatch, fixedCacheKey, promise, requestId]);
-      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, "endpointName");
-      useDebugValue(debugValue);
-      const finalState = useMemo(() => ({
-        ...currentState,
-        originalArgs,
-        reset
-      }), [currentState, originalArgs, reset]);
-      return useMemo(() => [triggerMutation, finalState], [triggerMutation, finalState]);
-    };
-  }
-}
-
-// src/query/react/module.ts
-var reactHooksModuleName = /* @__PURE__ */ Symbol();
-var reactHooksModule = ({
-  batch = rrBatch,
-  hooks = {
-    useDispatch: rrUseDispatch,
-    useSelector: rrUseSelector,
-    useStore: rrUseStore
-  },
-  createSelector = _createSelector,
-  unstable__sideEffectsInRender = false,
-  ...rest
-} = {}) => {
-  if (process.env.NODE_ENV !== "production") {
-    const hookNames = ["useDispatch", "useSelector", "useStore"];
-    let warned = false;
-    for (const hookName of hookNames) {
-      if (countObjectKeys(rest) > 0) {
-        if (rest[hookName]) {
-          if (!warned) {
-            console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`");
-            warned = true;
-          }
-        }
-        hooks[hookName] = rest[hookName];
-      }
-      if (typeof hooks[hookName] !== "function") {
-        throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage4(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(", ")}.
-Hook ${hookName} was either not provided or not a function.`);
-      }
-    }
-  }
-  return {
-    name: reactHooksModuleName,
-    init(api, {
-      serializeQueryArgs
-    }, context) {
-      const anyApi = api;
-      const {
-        buildQueryHooks,
-        buildInfiniteQueryHooks,
-        buildMutationHook,
-        usePrefetch
-      } = buildHooks({
-        api,
-        moduleOptions: {
-          batch,
-          hooks,
-          unstable__sideEffectsInRender,
-          createSelector
-        },
-        serializeQueryArgs,
-        context
-      });
-      safeAssign(anyApi, {
-        usePrefetch
-      });
-      safeAssign(context, {
-        batch
-      });
-      return {
-        injectEndpoint(endpointName, definition) {
-          if (isQueryDefinition(definition)) {
-            const {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            } = buildQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription
-            });
-            api[`use${capitalize(endpointName)}Query`] = useQuery;
-            api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;
-          }
-          if (isMutationDefinition(definition)) {
-            const useMutation = buildMutationHook(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useMutation
-            });
-            api[`use${capitalize(endpointName)}Mutation`] = useMutation;
-          } else if (isInfiniteQueryDefinition(definition)) {
-            const {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            } = buildInfiniteQueryHooks(endpointName);
-            safeAssign(anyApi.endpoints[endpointName], {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState
-            });
-            api[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;
-          }
-        }
-      };
-    }
-  };
-};
-
-// src/query/react/index.ts
-export * from "@reduxjs/toolkit/query";
-
-// src/query/react/ApiProvider.tsx
-import { configureStore, formatProdErrorMessage as _formatProdErrorMessage5 } from "@reduxjs/toolkit";
-import * as React from "react";
-function ApiProvider(props) {
-  const context = props.context || ReactReduxContext;
-  const existingContext = useContext(context);
-  if (existingContext) {
-    throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage5(35) : "Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.");
-  }
-  const [store] = React.useState(() => configureStore({
-    reducer: {
-      [props.api.reducerPath]: props.api.reducer
-    },
-    middleware: (gDM) => gDM().concat(props.api.middleware)
-  }));
-  useEffect(() => props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);
-  return /* @__PURE__ */ React.createElement(Provider, { store, context }, props.children);
-}
-
-// src/query/react/index.ts
-var createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());
-export {
-  ApiProvider,
-  UNINITIALIZED_VALUE,
-  createApi,
-  reactHooksModule,
-  reactHooksModuleName
-};
-//# sourceMappingURL=rtk-query-react.modern.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/query/react/rtkqImports.ts","../../../src/query/react/module.ts","../../../src/query/utils/capitalize.ts","../../../src/query/utils/countObjectKeys.ts","../../../src/query/endpointDefinitions.ts","../../../src/query/tsHelpers.ts","../../../src/query/react/buildHooks.ts","../../../src/query/react/reactImports.ts","../../../src/query/react/reactReduxImports.ts","../../../src/query/react/constants.ts","../../../src/query/react/useSerializedStableValue.ts","../../../src/query/react/useShallowStableValue.ts","../../../src/query/react/index.ts","../../../src/query/react/ApiProvider.tsx"],"sourcesContent":["export { buildCreateApi, coreModule, copyWithStructuralSharing, setupListeners, QueryStatus, skipToken } from '@reduxjs/toolkit/query';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Api, BaseQueryFn, EndpointDefinitions, InfiniteQueryDefinition, Module, MutationDefinition, PrefetchOptions, QueryArgFrom, QueryDefinition, QueryKeys } from '@reduxjs/toolkit/query';\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from 'react-redux';\nimport type { CreateSelectorFunction } from 'reselect';\nimport { createSelector as _createSelector } from 'reselect';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { safeAssign } from '../tsHelpers';\nimport { capitalize, countObjectKeys } from '../utils';\nimport type { InfiniteQueryHooks, MutationHooks, QueryHooks } from './buildHooks';\nimport { buildHooks } from './buildHooks';\nimport type { HooksWithUniqueNames } from './namedHooks';\nexport const reactHooksModuleName = /* @__PURE__ */Symbol();\nexport type ReactHooksModule = typeof reactHooksModuleName;\ndeclare module '@reduxjs/toolkit/query' {\n  export interface ApiModules<\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ReducerPath extends string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  TagTypes extends string> {\n    [reactHooksModuleName]: {\n      /**\n       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\n       */\n      endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryHooks<Definitions[K]> : never };\n      /**\n       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\n       */\n      usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions) => void;\n    } & HooksWithUniqueNames<Definitions>;\n  }\n}\ntype RR = typeof import('react-redux');\nexport interface ReactHooksModuleOptions {\n  /**\n   * The hooks from React Redux to be used\n   */\n  hooks?: {\n    /**\n     * The version of the `useDispatch` hook to be used\n     */\n    useDispatch: RR['useDispatch'];\n    /**\n     * The version of the `useSelector` hook to be used\n     */\n    useSelector: RR['useSelector'];\n    /**\n     * The version of the `useStore` hook to be used\n     */\n    useStore: RR['useStore'];\n  };\n  /**\n   * The version of the `batchedUpdates` function to be used\n   */\n  batch?: RR['batch'];\n  /**\n   * Enables performing asynchronous tasks immediately within a render.\n   *\n   * @example\n   *\n   * ```ts\n   * import {\n   *   buildCreateApi,\n   *   coreModule,\n   *   reactHooksModule\n   * } from '@reduxjs/toolkit/query/react'\n   *\n   * const createApi = buildCreateApi(\n   *   coreModule(),\n   *   reactHooksModule({ unstable__sideEffectsInRender: true })\n   * )\n   * ```\n   */\n  unstable__sideEffectsInRender?: boolean;\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\n *\n *  @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @returns A module for use with `buildCreateApi`\n */\nexport const reactHooksModule = ({\n  batch = rrBatch,\n  hooks = {\n    useDispatch: rrUseDispatch,\n    useSelector: rrUseSelector,\n    useStore: rrUseStore\n  },\n  createSelector = _createSelector,\n  unstable__sideEffectsInRender = false,\n  ...rest\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {\n  if (process.env.NODE_ENV !== 'production') {\n    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const;\n    let warned = false;\n    for (const hookName of hookNames) {\n      // warn for old hook options\n      if (countObjectKeys(rest) > 0) {\n        if ((rest as Partial<typeof hooks>)[hookName]) {\n          if (!warned) {\n            console.warn('As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' + '\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`');\n            warned = true;\n          }\n        }\n        // migrate\n        // @ts-ignore\n        hooks[hookName] = rest[hookName];\n      }\n      // then make sure we have them all\n      if (typeof hooks[hookName] !== 'function') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(', ')}.\\nHook ${hookName} was either not provided or not a function.`);\n      }\n    }\n  }\n  return {\n    name: reactHooksModuleName,\n    init(api, {\n      serializeQueryArgs\n    }, context) {\n      const anyApi = api as any as Api<any, Record<string, any>, any, any, ReactHooksModule>;\n      const {\n        buildQueryHooks,\n        buildInfiniteQueryHooks,\n        buildMutationHook,\n        usePrefetch\n      } = buildHooks({\n        api,\n        moduleOptions: {\n          batch,\n          hooks,\n          unstable__sideEffectsInRender,\n          createSelector\n        },\n        serializeQueryArgs,\n        context\n      });\n      safeAssign(anyApi, {\n        usePrefetch\n      });\n      safeAssign(context, {\n        batch\n      });\n      return {\n        injectEndpoint(endpointName, definition) {\n          if (isQueryDefinition(definition)) {\n            const {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            } = buildQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useQuery,\n              useLazyQuery,\n              useLazyQuerySubscription,\n              useQueryState,\n              useQuerySubscription\n            });\n            (api as any)[`use${capitalize(endpointName)}Query`] = useQuery;\n            (api as any)[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n          }\n          if (isMutationDefinition(definition)) {\n            const useMutation = buildMutationHook(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useMutation\n            });\n            (api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation;\n          } else if (isInfiniteQueryDefinition(definition)) {\n            const {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            } = buildInfiniteQueryHooks(endpointName);\n            safeAssign(anyApi.endpoints[endpointName], {\n              useInfiniteQuery,\n              useInfiniteQuerySubscription,\n              useInfiniteQueryState\n            });\n            (api as any)[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n          }\n        }\n      };\n    }\n  };\n};","export function capitalize(str: string) {\n  return str.replace(str[0], str[0].toUpperCase());\n}","// Fast method for counting an object's keys\n// without resorting to `Object.keys(obj).length\n// Will this make a big difference in perf? Probably not\n// But we can save a few allocations.\n\nexport function countObjectKeys(obj: Record<any, any>) {\n  let count = 0;\n  for (const _key in obj) {\n    count++;\n  }\n  return count;\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Selector, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Api, ApiContext, ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, BaseQueryFn, CoreModule, EndpointDefinitions, InfiniteQueryActionCreatorResult, InfiniteQueryArgFrom, InfiniteQueryDefinition, InfiniteQueryResultSelectorResult, InfiniteQuerySubState, MutationActionCreatorResult, MutationDefinition, MutationResultSelectorResult, PageParamFrom, PrefetchOptions, QueryActionCreatorResult, QueryArgFrom, QueryCacheKey, QueryDefinition, QueryKeys, QueryResultSelectorResult, QuerySubState, ResultTypeFrom, RootState, SerializeQueryArgs, SkipToken, SubscriptionOptions, TSHelpersId, TSHelpersNoInfer, TSHelpersOverride } from '@reduxjs/toolkit/query';\nimport { QueryStatus, skipToken } from './rtkqImports';\nimport type { DependencyList } from 'react';\nimport { useCallback, useDebugValue, useEffect, useLayoutEffect, useMemo, useRef, useState } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nimport type { SubscriptionSelectors } from '../core/buildMiddleware/index';\nimport type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index';\nimport type { UninitializedValue } from './constants';\nimport { UNINITIALIZED_VALUE } from './constants';\nimport type { ReactHooksModuleOptions } from './module';\nimport { useStableQueryArgs } from './useSerializedStableValue';\nimport { useShallowStableValue } from './useShallowStableValue';\nimport type { InfiniteQueryDirection } from '../core/apiState';\nimport { isInfiniteQueryDefinition } from '../endpointDefinitions';\nimport type { StartInfiniteQueryActionCreator } from '../core/buildInitiate';\n\n// Copy-pasted from React-Redux\nconst canUseDOM = () => !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nconst isDOM = /* @__PURE__ */canUseDOM();\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\nconst isRunningInReactNative = () => typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst isReactNative = /* @__PURE__ */isRunningInReactNative();\nconst getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect;\nexport const useIsomorphicLayoutEffect = /* @__PURE__ */getUseIsomorphicLayoutEffect();\nexport type QueryHooks<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  useQuery: UseQuery<Definition>;\n  useLazyQuery: UseLazyQuery<Definition>;\n  useQuerySubscription: UseQuerySubscription<Definition>;\n  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>;\n  useQueryState: UseQueryState<Definition>;\n};\nexport type InfiniteQueryHooks<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  useInfiniteQuery: UseInfiniteQuery<Definition>;\n  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>;\n  useInfiniteQueryState: UseInfiniteQueryState<Definition>;\n};\nexport type MutationHooks<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  useMutation: UseMutation<Definition>;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>) => UseQueryHookResult<D, R>;\nexport type TypedUseQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQueryHookResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuery` hook in userland code.\n */\nexport type TypedUseQueryHookResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> & TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>;\nexport type UseQuerySubscriptionOptions = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n};\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (arg: QueryArgFrom<D> | SkipToken, options?: UseQuerySubscriptionOptions) => UseQuerySubscriptionResult<D>;\nexport type TypedUseQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseQuerySubscriptionResult<D extends QueryDefinition<any, any, any, any>> = Pick<QueryActionCreatorResult<D>, 'refetch'>;\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQuerySubscriptionResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryLastPromiseInfo<D extends QueryDefinition<any, any, any, any>> = {\n  lastArg: QueryArgFrom<D>;\n};\n\n/**\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\n *\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n *\n * #### Note\n *\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\n */\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>) => [LazyQueryTrigger<D>, UseLazyQueryStateResult<D, R>, UseLazyQueryLastPromiseInfo<D>];\nexport type TypedUseLazyQuery<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type UseLazyQueryStateResult<D extends QueryDefinition<any, any, any, any>, R = UseQueryStateDefaultResult<D>> = UseQueryStateResult<D, R> & {\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useLazyQuery` hook in userland code.\n */\nexport type TypedUseLazyQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseLazyQueryStateResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, preferCacheValue?: boolean): QueryActionCreatorResult<D>;\n};\nexport type TypedLazyQueryTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = LazyQueryTrigger<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\n *\n * #### Features\n *\n * - Manual control over firing a request to retrieve data\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\n */\nexport type UseLazyQuerySubscription<D extends QueryDefinition<any, any, any, any>> = (options?: SubscriptionOptions) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue, {\n  reset: () => void;\n}];\nexport type TypedUseLazyQuerySubscription<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseLazyQuerySubscription<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type QueryStateSelector<R extends Record<string, any>, D extends QueryDefinition<any, any, any, any>> = (state: UseQueryStateDefaultResult<D>) => R;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryStateSelector} for use with a specific query.\n * This is useful for scenarios where you want to create a \"pre-typed\"\n * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}\n * function.\n *\n * @example\n * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>\n *\n * ```tsx\n * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   title: string\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * type SelectedResult = Pick<PostsApiResponse, 'posts'>\n *\n * const postsApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, QueryArgument>({\n *       query: (limit = 5) => `?limit=${limit}&select=title`,\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = postsApiSlice\n *\n * function PostById({ id }: { id: number }) {\n *   const { post } = useGetPostsQuery(undefined, {\n *     selectFromResult: (state) => ({\n *       post: state.data?.posts.find((post) => post.id === id),\n *     }),\n *   })\n *\n *   return <li>{post?.title}</li>\n * }\n *\n * const EMPTY_ARRAY: Post[] = []\n *\n * const typedSelectFromResult: TypedQueryStateSelector<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   SelectedResult\n * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })\n *\n * function PostsList() {\n *   const { posts } = useGetPostsQuery(undefined, {\n *     selectFromResult: typedSelectFromResult,\n *   })\n *\n *   return (\n *     <div>\n *       <ul>\n *         {posts.map((post) => (\n *           <PostById key={post.id} id={post.id} />\n *         ))}\n *       </ul>\n *     </div>\n *   )\n * }\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.3.0\n * @public\n */\nexport type TypedQueryStateSelector<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>> = QueryStateSelector<SelectedResultType, QueryDefinition<QueryArgumentType, BaseQueryFunctionType, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <R extends Record<string, any> = UseQueryStateDefaultResult<D>>(arg: QueryArgFrom<D> | SkipToken, options?: UseQueryStateOptions<D, R>) => UseQueryStateResult<D, R>;\nexport type TypedUseQueryState<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseQueryState<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * @internal\n */\nexport type UseQueryStateOptions<D extends QueryDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: QueryStateSelector<R, D>;\n};\n\n/**\n * Provides a way to define a \"pre-typed\" version of\n * {@linkcode UseQueryStateOptions} with specific options for a given query.\n * This is particularly useful for setting default query behaviors such as\n * refetching strategies, which can be overridden as needed.\n *\n * @example\n * <caption>#### __Create a `useQuery` hook with default options__</caption>\n *\n * ```ts\n * import type {\n *   SubscriptionOptions,\n *   TypedUseQueryStateOptions,\n * } from '@reduxjs/toolkit/query/react'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n *\n * type Post = {\n *   id: number\n *   name: string\n * }\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   tagTypes: ['Post'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<Post[], void>({\n *       query: () => 'posts',\n *     }),\n *   }),\n * })\n *\n * const { useGetPostsQuery } = api\n *\n * export const useGetPostsQueryWithDefaults = <\n *   SelectedResult extends Record<string, any>,\n * >(\n *   overrideOptions: TypedUseQueryStateOptions<\n *     Post[],\n *     void,\n *     ReturnType<typeof fetchBaseQuery>,\n *     SelectedResult\n *   > &\n *     SubscriptionOptions,\n * ) =>\n *   useGetPostsQuery(undefined, {\n *     // Insert default options here\n *\n *     refetchOnMountOrArgChange: true,\n *     refetchOnFocus: true,\n *     ...overrideOptions,\n *   })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArg - The type of the argument passed into the query.\n * @template BaseQuery - The type of the base query function being used.\n * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.\n *\n * @since 2.2.8\n * @public\n */\nexport type TypedUseQueryStateOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseQueryStateOptions<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseQueryStateResult<_ extends QueryDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R>;\n\n/**\n * Helper type to manually type the result\n * of the `useQueryState` hook in userland code.\n */\nexport type TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = UseQueryStateDefaultResult<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = TSHelpersNoInfer<R>;\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> = QuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: ResultTypeFrom<D>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n};\ntype UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<Extract<UseQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}>;\ntype UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n}>;\ntype UseQueryStateSuccessFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateSuccessNotFetching<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & {\n  data: ResultTypeFrom<D>;\n  currentData: ResultTypeFrom<D>;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>>;\ntype UseQueryStateError<D extends QueryDefinition<any, any, any, any>> = TSHelpersOverride<UseQueryStateBaseResult<D>, {\n  isError: true;\n} & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>>;\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> = TSHelpersId<UseQueryStateUninitialized<D> | UseQueryStateLoading<D> | UseQueryStateSuccessFetching<D> | UseQueryStateSuccessNotFetching<D> | UseQueryStateError<D>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type LazyInfiniteQueryTrigger<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  /**\n   * Triggers a lazy query.\n   *\n   * By default, this will start a new request even if there is already a value in the cache.\n   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await getUserById(1).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>, direction: InfiniteQueryDirection): InfiniteQueryActionCreatorResult<D>;\n};\nexport type TypedLazyInfiniteQueryTrigger<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = LazyInfiniteQueryTrigger<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SubscriptionOptions & {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When `skip` is true (or `skipToken` is passed in as `arg`):\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```tsx\n   * // codeblock-meta no-transpile title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  initialPageParam?: PageParamFrom<D>;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   *\n   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).\n   * It can be overridden on a per-call basis using the `refetch()` method.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type TypedUseInfiniteQuerySubscription<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscription<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type UseInfiniteQuerySubscriptionResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  refetch: (options?: Pick<UseInfiniteQuerySubscriptionOptions<D>, 'refetchCachedPages'>) => InfiniteQueryActionCreatorResult<D>;\n  trigger: LazyInfiniteQueryTrigger<D>;\n  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>;\n  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useQuerySubscription` hook in userland code.\n */\nexport type TypedUseInfiniteQuerySubscriptionResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuerySubscriptionResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\nexport type InfiniteQueryStateSelector<R extends Record<string, any>, D extends InfiniteQueryDefinition<any, any, any, any, any>> = (state: UseInfiniteQueryStateDefaultResult<D>) => R;\nexport type TypedInfiniteQueryStateSelector<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = InfiniteQueryStateSelector<SelectedResult, InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\n *\n *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.\n *\n * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.\n *\n * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.\n *\n * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.\n *\n * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.\n *\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQuery<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D> & UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryHookResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQuery<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQuery<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\n *\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).\n *\n * #### Features\n *\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseInfiniteQueryState<D extends InfiniteQueryDefinition<any, any, any, any, any>> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQueryStateOptions<D, R>) => UseInfiniteQueryStateResult<D, R>;\nexport type TypedUseInfiniteQueryState<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn> = UseInfiniteQueryState<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>;\n\n/**\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple \"pages\" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.\n *\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\n *\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).\n *\n * #### Features\n *\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\n */\nexport type UseInfiniteQuerySubscription<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D> | SkipToken, options?: UseInfiniteQuerySubscriptionOptions<D>) => UseInfiniteQuerySubscriptionResult<D>;\nexport type UseInfiniteQueryHookResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = UseInfiniteQueryStateResult<D, R> & Pick<UseInfiniteQuerySubscriptionResult<D>, 'refetch' | 'fetchNextPage' | 'fetchPreviousPage'>;\nexport type TypedUseInfiniteQueryHookResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryHookResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\nexport type UseInfiniteQueryStateOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>, R extends Record<string, any>> = {\n  /**\n   * Prevents a query from automatically running.\n   *\n   * @remarks\n   * When skip is true:\n   *\n   * - **If the query has cached data:**\n   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\n   *   * The query will have a status of `uninitialized`\n   *   * If `skip: false` is set after skipping the initial load, the cached result will be used\n   * - **If the query does not have cached data:**\n   *   * The query will have a status of `uninitialized`\n   *   * The query will not exist in the state when viewed with the dev tools\n   *   * The query will not automatically fetch on mount\n   *   * The query will not automatically run when additional components with the same query are added that do run\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Skip example\"\n   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\n   *   const { data, error, status } = useGetPokemonByNameQuery(name, {\n   *     skip,\n   *   });\n   *\n   *   return (\n   *     <div>\n   *       {name} - {status}\n   *     </div>\n   *   );\n   * };\n   * ```\n   */\n  skip?: boolean;\n  /**\n   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\n   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\n   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\n   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\n   * function PostsList() {\n   *   const { data: posts } = api.useGetPostsQuery();\n   *\n   *   return (\n   *     <ul>\n   *       {posts?.data?.map((post) => (\n   *         <PostById key={post.id} id={post.id} />\n   *       ))}\n   *     </ul>\n   *   );\n   * }\n   *\n   * function PostById({ id }: { id: number }) {\n   *   // Will select the post with the given id, and will only rerender if the given posts data changes\n   *   const { post } = api.useGetPostsQuery(undefined, {\n   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\n   *   });\n   *\n   *   return <li>{post?.name}</li>;\n   * }\n   * ```\n   */\n  selectFromResult?: InfiniteQueryStateSelector<R, D>;\n};\nexport type TypedUseInfiniteQueryStateOptions<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, SelectedResult extends Record<string, any> = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateOptions<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, SelectedResult>;\nexport type UseInfiniteQueryStateResult<D extends InfiniteQueryDefinition<any, any, any, any, any>, R = UseInfiniteQueryStateDefaultResult<D>> = TSHelpersNoInfer<R>;\nexport type TypedUseInfiniteQueryStateResult<ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, R = UseInfiniteQueryStateDefaultResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>>> = UseInfiniteQueryStateResult<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, string, ResultType, string>, R>;\ntype UseInfiniteQueryStateBaseResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<D> & {\n  /**\n   * Where `data` tries to hold data as much as possible, also re-using\n   * data from the last arguments passed into the hook, this property\n   * will always contain the received data from the query, for the current query arguments.\n   */\n  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>;\n  /**\n   * Query has not started yet.\n   */\n  isUninitialized: false;\n  /**\n   * Query is currently loading for the first time. No data yet.\n   */\n  isLoading: false;\n  /**\n   * Query is currently fetching, but might have data from an earlier request.\n   */\n  isFetching: false;\n  /**\n   * Query has data from a successful load.\n   */\n  isSuccess: false;\n  /**\n   * Query is currently in \"error\" state.\n   */\n  isError: false;\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n};\ntype UseInfiniteQueryStateDefaultResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = TSHelpersId<TSHelpersOverride<Extract<UseInfiniteQueryStateBaseResult<D>, {\n  status: QueryStatus.uninitialized;\n}>, {\n  isUninitialized: true;\n}> | TSHelpersOverride<UseInfiniteQueryStateBaseResult<D>, {\n  isLoading: true;\n  isFetching: boolean;\n  data: undefined;\n} | ({\n  isSuccess: true;\n  isFetching: true;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>>) | ({\n  isSuccess: true;\n  isFetching: false;\n  error: undefined;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp' | 'currentData'>>) | ({\n  isError: true;\n} & Required<Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>>)>> & {\n  /**\n   * @deprecated Included for completeness, but discouraged.\n   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\n   * and `isUninitialized` flags instead\n   */\n  status: QueryStatus;\n};\nexport type MutationStateSelector<R extends Record<string, any>, D extends MutationDefinition<any, any, any, any>> = (state: MutationResultSelectorResult<D>) => R;\nexport type UseMutationStateOptions<D extends MutationDefinition<any, any, any, any>, R extends Record<string, any>> = {\n  selectFromResult?: MutationStateSelector<R, D>;\n  fixedCacheKey?: string;\n};\nexport type UseMutationStateResult<D extends MutationDefinition<any, any, any, any>, R> = TSHelpersNoInfer<R> & {\n  originalArgs?: QueryArgFrom<D>;\n  /**\n   * Resets the hook state to its initial `uninitialized` state.\n   * This will also remove the last result from the cache.\n   */\n  reset: () => void;\n};\n\n/**\n * Helper type to manually type the result\n * of the `useMutation` hook in userland code.\n */\nexport type TypedUseMutationResult<ResultType, QueryArg, BaseQuery extends BaseQueryFn, R = MutationResultSelectorResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>> = UseMutationStateResult<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>, R>;\n\n/**\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\n *\n * #### Features\n *\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\n * - Returns the latest request status and cached data from the Redux store\n * - Re-renders as the request status changes and data becomes available\n */\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <R extends Record<string, any> = MutationResultSelectorResult<D>>(options?: UseMutationStateOptions<D, R>) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>];\nexport type TypedUseMutation<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = UseMutation<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> = {\n  /**\n   * Triggers the mutation and returns a Promise.\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>;\n};\nexport type TypedMutationTrigger<ResultType, QueryArg, BaseQuery extends BaseQueryFn> = MutationTrigger<MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>>;\n\n/**\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\n * We want the initial render to already come back with\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\n * to prevent that the library user has to do an additional check for `isUninitialized`/\n */\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = selected => {\n  if (selected.isUninitialized) {\n    return {\n      ...selected,\n      isUninitialized: false,\n      isFetching: true,\n      isLoading: selected.data !== undefined ? false : true,\n      // This is the one place where we still have to use `QueryStatus` as an enum,\n      // since it's the only reference in the React package and not in the core.\n      status: QueryStatus.pending\n    } as any;\n  }\n  return selected;\n};\nfunction pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n  const ret: any = {};\n  keys.forEach(key => {\n    ret[key] = obj[key];\n  });\n  return ret;\n}\nconst COMMON_HOOK_DEBUG_FIELDS = ['data', 'status', 'isLoading', 'isSuccess', 'isError', 'error'] as const;\ntype GenericPrefetchThunk = (endpointName: any, arg: any, options: PrefetchOptions) => ThunkAction<void, any, any, UnknownAction>;\n\n/**\n *\n * @param opts.api - An API with defined endpoints to create hooks for\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\n * @returns An object containing functions to generate hooks based on an endpoint\n */\nexport function buildHooks<Definitions extends EndpointDefinitions>({\n  api,\n  moduleOptions: {\n    batch,\n    hooks: {\n      useDispatch,\n      useSelector,\n      useStore\n    },\n    unstable__sideEffectsInRender,\n    createSelector\n  },\n  serializeQueryArgs,\n  context\n}: {\n  api: Api<any, Definitions, any, any, CoreModule>;\n  moduleOptions: Required<ReactHooksModuleOptions>;\n  serializeQueryArgs: SerializeQueryArgs<any>;\n  context: ApiContext<Definitions>;\n}) {\n  const usePossiblyImmediateEffect: (effect: () => void | undefined, deps?: DependencyList) => void = unstable__sideEffectsInRender ? cb => cb() : useEffect;\n  type UnsubscribePromiseRef = React.RefObject<{\n    unsubscribe?: () => void;\n  } | undefined>;\n  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) => ref.current?.unsubscribe?.();\n  const endpointDefinitions = context.endpointDefinitions;\n  return {\n    buildQueryHooks,\n    buildInfiniteQueryHooks,\n    buildMutationHook,\n    usePrefetch\n  };\n  function queryStatePreSelector(currentState: QueryResultSelectorResult<any>, lastResult: UseQueryStateDefaultResult<any> | undefined, queryArgs: any): UseQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n\n    // isSuccess = true when data is present and we're not refetching after an error.\n    // That includes cases where the _current_ item is either actively\n    // fetching or about to fetch due to an uninitialized entry.\n    const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseQueryStateDefaultResult<any>;\n  }\n  function infiniteQueryStatePreSelector(currentState: InfiniteQueryResultSelectorResult<any>, lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined, queryArgs: any): UseInfiniteQueryStateDefaultResult<any> {\n    // if we had a last result and the current result is uninitialized,\n    // we might have called `api.util.resetApiState`\n    // in this case, reset the hook\n    if (lastResult?.endpointName && currentState.isUninitialized) {\n      const {\n        endpointName\n      } = lastResult;\n      const endpointDefinition = endpointDefinitions[endpointName];\n      if (queryArgs !== skipToken && serializeQueryArgs({\n        queryArgs: lastResult.originalArgs,\n        endpointDefinition,\n        endpointName\n      }) === serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      })) lastResult = undefined;\n    }\n\n    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\n    let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n    if (data === undefined) data = currentState.data;\n    const hasData = data !== undefined;\n\n    // isFetching = true any time a request is in flight\n    const isFetching = currentState.isLoading;\n    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\n    const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n    // isSuccess = true when data is present\n    const isSuccess = currentState.isSuccess || isFetching && hasData;\n    return {\n      ...currentState,\n      data,\n      currentData: currentState.data,\n      isFetching,\n      isLoading,\n      isSuccess\n    } as UseInfiniteQueryStateDefaultResult<any>;\n  }\n  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, defaultOptions?: PrefetchOptions) {\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n    const stableDefaultOptions = useShallowStableValue(defaultOptions);\n    return useCallback((arg: any, options?: PrefetchOptions) => dispatch((api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\n      ...stableDefaultOptions,\n      ...options\n    })), [endpointName, dispatch, stableDefaultOptions]);\n  }\n  function useQuerySubscriptionCommonImpl<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(endpointName: string, arg: unknown | SkipToken, {\n    refetchOnReconnect,\n    refetchOnFocus,\n    refetchOnMountOrArgChange,\n    skip = false,\n    pollingInterval = 0,\n    skipPollingIfUnfocused = false,\n    ...rest\n  }: UseQuerySubscriptionOptions = {}) {\n    const {\n      initiate\n    } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n\n    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.\n    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(undefined);\n    if (!subscriptionSelectorsRef.current) {\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n    You must add the middleware for RTK-Query to function correctly!`);\n        }\n      }\n      subscriptionSelectorsRef.current = returnedValue as unknown as SubscriptionSelectors;\n    }\n    const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n    const stableSubscriptionOptions = useShallowStableValue({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval,\n      skipPollingIfUnfocused\n    });\n    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>).initialPageParam;\n    const stableInitialPageParam = useShallowStableValue(initialPageParam);\n    const refetchCachedPages = (rest as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages);\n\n    /**\n     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n     */\n    const promiseRef = useRef<T | undefined>(undefined);\n    let {\n      queryCacheKey,\n      requestId\n    } = promiseRef.current || {};\n\n    // HACK We've saved the middleware subscription lookup callbacks into a ref,\n    // so we can directly check here if the subscription exists for this query.\n    let currentRenderHasSubscription = false;\n    if (queryCacheKey && requestId) {\n      currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n    }\n    const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== undefined;\n    usePossiblyImmediateEffect((): void | undefined => {\n      if (subscriptionRemoved) {\n        promiseRef.current = undefined;\n      }\n    }, [subscriptionRemoved]);\n    usePossiblyImmediateEffect((): void | undefined => {\n      const lastPromise = promiseRef.current;\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'removeMeOnCompilation') {\n        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\n        console.log(subscriptionRemoved);\n      }\n      if (stableArg === skipToken) {\n        lastPromise?.unsubscribe();\n        promiseRef.current = undefined;\n        return;\n      }\n      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n      if (!lastPromise || lastPromise.arg !== stableArg) {\n        lastPromise?.unsubscribe();\n        const promise = dispatch(initiate(stableArg, {\n          subscriptionOptions: stableSubscriptionOptions,\n          forceRefetch: refetchOnMountOrArgChange,\n          ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName]) ? {\n            initialPageParam: stableInitialPageParam,\n            refetchCachedPages: stableRefetchCachedPages\n          } : {})\n        }));\n        promiseRef.current = promise as T;\n      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n      }\n    }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, stableRefetchCachedPages, endpointName]);\n    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const;\n  }\n  function buildUseQueryState(endpointName: string, preSelector: typeof queryStatePreSelector | typeof infiniteQueryStatePreSelector) {\n    const useQueryState = (arg: any, {\n      skip = false,\n      selectFromResult\n    }: UseQueryStateOptions<any, any> | UseInfiniteQueryStateOptions<any, any> = {}) => {\n      const {\n        select\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n      type ApiRootState = Parameters<ReturnType<typeof select>>[0];\n      const lastValue = useRef<any>(undefined);\n      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(() =>\n      // Normally ts-ignores are bad and should be avoided, but we're\n      // already casting this selector to be `Selector<any>` anyway,\n      // so the inconsistencies don't matter here\n      // @ts-ignore\n      createSelector([\n      // @ts-ignore\n      select(stableArg), (_: ApiRootState, lastResult: any) => lastResult, (_: ApiRootState) => stableArg], preSelector, {\n        memoizeOptions: {\n          resultEqualityCheck: shallowEqual\n        }\n      }), [select, stableArg]);\n      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n        devModeChecks: {\n          identityFunctionCheck: 'never'\n        }\n      }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n      const currentState = useSelector((state: RootState<Definitions, any, any>) => querySelector(state, lastValue.current), shallowEqual);\n      const store = useStore<RootState<Definitions, any, any>>();\n      const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n      useIsomorphicLayoutEffect(() => {\n        lastValue.current = newLastValue;\n      }, [newLastValue]);\n      return currentState;\n    };\n    return useQueryState;\n  }\n  function usePromiseRefUnsubscribeOnUnmount(promiseRef: UnsubscribePromiseRef) {\n    useEffect(() => {\n      return () => {\n        unsubscribePromiseRef(promiseRef)\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        ;\n        (promiseRef.current as any) = undefined;\n      };\n    }, [promiseRef]);\n  }\n  function refetchOrErrorIfUnmounted<T extends QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>(promiseRef: React.RefObject<T | undefined>): T {\n    if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : 'Cannot refetch a query that has not been started yet.');\n    return promiseRef.current.refetch() as T;\n  }\n  function buildQueryHooks(endpointName: string): QueryHooks<any> {\n    const useQuerySubscription: UseQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef] = useQuerySubscriptionCommonImpl<QueryActionCreatorResult<any>>(endpointName, arg, options);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      return useMemo(() => ({\n        /**\n         * A method to manually refetch data for the query\n         */\n        refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n      }), [promiseRef]);\n    };\n    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\n      refetchOnReconnect,\n      refetchOnFocus,\n      pollingInterval = 0,\n      skipPollingIfUnfocused = false\n    } = {}) => {\n      const {\n        initiate\n      } = api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE);\n\n      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.\n       */\n      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(undefined);\n      const stableSubscriptionOptions = useShallowStableValue({\n        refetchOnReconnect,\n        refetchOnFocus,\n        pollingInterval,\n        skipPollingIfUnfocused\n      });\n      usePossiblyImmediateEffect(() => {\n        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n        if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n          promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n        }\n      }, [stableSubscriptionOptions]);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n      const trigger = useCallback(function (arg: any, preferCacheValue = false) {\n        let promise: QueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch(initiate(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            forceRefetch: !preferCacheValue\n          }));\n          setArg(arg);\n        });\n        return promise!;\n      }, [dispatch, initiate]);\n      const reset = useCallback(() => {\n        if (promiseRef.current?.queryCacheKey) {\n          dispatch(api.internalActions.removeQueryResult({\n            queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey\n          }));\n        }\n      }, [dispatch]);\n\n      /* cleanup on unmount */\n      useEffect(() => {\n        return () => {\n          unsubscribePromiseRef(promiseRef);\n        };\n      }, []);\n\n      /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\n      useEffect(() => {\n        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n          trigger(arg, true);\n        }\n      }, [arg, trigger]);\n      return useMemo(() => [trigger, arg, {\n        reset\n      }] as const, [trigger, arg, reset]);\n    };\n    const useQueryState: UseQueryState<any> = buildUseQueryState(endpointName, queryStatePreSelector);\n    return {\n      useQueryState,\n      useQuerySubscription,\n      useLazyQuerySubscription,\n      useLazyQuery(options) {\n        const [trigger, arg, {\n          reset\n        }] = useLazyQuerySubscription(options);\n        const queryStateResults = useQueryState(arg, {\n          ...options,\n          skip: arg === UNINITIALIZED_VALUE\n        });\n        const info = useMemo(() => ({\n          lastArg: arg\n        }), [arg]);\n        return useMemo(() => [trigger, {\n          ...queryStateResults,\n          reset\n        }, info], [trigger, queryStateResults, reset, info]);\n      },\n      useQuery(arg, options) {\n        const querySubscriptionResults = useQuerySubscription(arg, options);\n        const queryStateResults = useQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          ...querySubscriptionResults\n        }), [queryStateResults, querySubscriptionResults]);\n      }\n    };\n  }\n  function buildInfiniteQueryHooks(endpointName: string): InfiniteQueryHooks<any> {\n    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (arg: any, options = {}) => {\n      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(endpointName, arg, options);\n      const subscriptionOptionsRef = useRef(stableSubscriptionOptions);\n      usePossiblyImmediateEffect(() => {\n        subscriptionOptionsRef.current = stableSubscriptionOptions;\n      }, [stableSubscriptionOptions]);\n\n      // Extract and stabilize the hook-level refetchCachedPages option\n      const hookRefetchCachedPages = (options as UseInfiniteQuerySubscriptionOptions<any>).refetchCachedPages;\n      const stableHookRefetchCachedPages = useShallowStableValue(hookRefetchCachedPages);\n      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(function (arg: unknown, direction: 'forward' | 'backward') {\n        let promise: InfiniteQueryActionCreatorResult<any>;\n        batch(() => {\n          unsubscribePromiseRef(promiseRef);\n          promiseRef.current = promise = dispatch((initiate as StartInfiniteQueryActionCreator<any>)(arg, {\n            subscriptionOptions: subscriptionOptionsRef.current,\n            direction\n          }));\n        });\n        return promise!;\n      }, [promiseRef, dispatch, initiate]);\n      usePromiseRefUnsubscribeOnUnmount(promiseRef);\n      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n      const refetch = useCallback((options?: Pick<UseInfiniteQuerySubscriptionOptions<any>, 'refetchCachedPages'>) => {\n        if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(38) : 'Cannot refetch a query that has not been started yet.');\n        // Merge per-call options with hook-level default\n        const mergedOptions = {\n          refetchCachedPages: options?.refetchCachedPages ?? stableHookRefetchCachedPages\n        };\n        return promiseRef.current.refetch(mergedOptions);\n      }, [promiseRef, stableHookRefetchCachedPages]);\n      return useMemo(() => {\n        const fetchNextPage = () => {\n          return trigger(stableArg, 'forward');\n        };\n        const fetchPreviousPage = () => {\n          return trigger(stableArg, 'backward');\n        };\n        return {\n          trigger,\n          /**\n           * A method to manually refetch data for the query\n           */\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        };\n      }, [refetch, trigger, stableArg]);\n    };\n    const useInfiniteQueryState: UseInfiniteQueryState<any> = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n    return {\n      useInfiniteQueryState,\n      useInfiniteQuerySubscription,\n      useInfiniteQuery(arg, options) {\n        const {\n          refetch,\n          fetchNextPage,\n          fetchPreviousPage\n        } = useInfiniteQuerySubscription(arg, options);\n        const queryStateResults = useInfiniteQueryState(arg, {\n          selectFromResult: arg === skipToken || options?.skip ? undefined : noPendingQueryStateSelector,\n          ...options\n        });\n        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, 'hasNextPage', 'hasPreviousPage');\n        useDebugValue(debugValue);\n        return useMemo(() => ({\n          ...queryStateResults,\n          fetchNextPage,\n          fetchPreviousPage,\n          refetch\n        }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n      }\n    };\n  }\n  function buildMutationHook(name: string): UseMutation<any> {\n    return ({\n      selectFromResult,\n      fixedCacheKey\n    } = {}) => {\n      const {\n        select,\n        initiate\n      } = api.endpoints[name] as ApiEndpointMutation<MutationDefinition<any, any, any, any, any>, Definitions>;\n      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>();\n      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>();\n      useEffect(() => () => {\n        if (!promise?.arg.fixedCacheKey) {\n          promise?.reset();\n        }\n      }, [promise]);\n      const triggerMutation = useCallback(function (arg: Parameters<typeof initiate>['0']) {\n        const promise = dispatch(initiate(arg, {\n          fixedCacheKey\n        }));\n        setPromise(promise);\n        return promise;\n      }, [dispatch, initiate, fixedCacheKey]);\n      const {\n        requestId\n      } = promise || {};\n      const selectDefaultResult = useMemo(() => select({\n        fixedCacheKey,\n        requestId: promise?.requestId\n      }), [fixedCacheKey, promise, select]);\n      const mutationSelector = useMemo((): Selector<RootState<Definitions, any, any>, any> => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n      const currentState = useSelector(mutationSelector, shallowEqual);\n      const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : undefined;\n      const reset = useCallback(() => {\n        batch(() => {\n          if (promise) {\n            setPromise(undefined);\n          }\n          if (fixedCacheKey) {\n            dispatch(api.internalActions.removeMutationResult({\n              requestId,\n              fixedCacheKey\n            }));\n          }\n        });\n      }, [dispatch, fixedCacheKey, promise, requestId]);\n      const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, 'endpointName');\n      useDebugValue(debugValue);\n      const finalState = useMemo(() => ({\n        ...currentState,\n        originalArgs,\n        reset\n      }), [currentState, originalArgs, reset]);\n      return useMemo(() => [triggerMutation, finalState] as const, [triggerMutation, finalState]);\n    };\n  }\n}","export { useEffect, useRef, useMemo, useContext, useCallback, useDebugValue, useLayoutEffect, useState } from 'react';","export { shallowEqual, Provider, ReactReduxContext } from 'react-redux';","export const UNINITIALIZED_VALUE = Symbol();\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE;","import { useEffect, useRef, useMemo } from './reactImports';\nimport { copyWithStructuralSharing } from './rtkqImports';\nexport function useStableQueryArgs<T>(queryArgs: T) {\n  const cache = useRef(queryArgs);\n  const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n  useEffect(() => {\n    if (cache.current !== copy) {\n      cache.current = copy;\n    }\n  }, [copy]);\n  return copy;\n}","import { useEffect, useRef } from './reactImports';\nimport { shallowEqual } from './reactReduxImports';\nexport function useShallowStableValue<T>(value: T) {\n  const cache = useRef(value);\n  useEffect(() => {\n    if (!shallowEqual(cache.current, value)) {\n      cache.current = value;\n    }\n  }, [value]);\n  return shallowEqual(cache.current, value) ? cache.current : value;\n}","// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nimport { buildCreateApi, coreModule } from './rtkqImports';\nimport { reactHooksModule, reactHooksModuleName } from './module';\nexport * from '@reduxjs/toolkit/query';\nexport { ApiProvider } from './ApiProvider';\nconst createApi = /* @__PURE__ */buildCreateApi(coreModule(), reactHooksModule());\nexport type { TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult, TypedUseQuerySubscriptionResult, TypedLazyQueryTrigger, TypedUseLazyQuery, TypedUseMutation, TypedMutationTrigger, TypedQueryStateSelector, TypedUseQueryState, TypedUseQuery, TypedUseQuerySubscription, TypedUseLazyQuerySubscription, TypedUseQueryStateOptions, TypedUseLazyQueryStateResult, TypedUseInfiniteQuery, TypedUseInfiniteQueryHookResult, TypedUseInfiniteQueryStateResult, TypedUseInfiniteQuerySubscriptionResult, TypedUseInfiniteQueryStateOptions, TypedInfiniteQueryStateSelector, TypedUseInfiniteQuerySubscription, TypedUseInfiniteQueryState, TypedLazyInfiniteQueryTrigger } from './buildHooks';\nexport { UNINITIALIZED_VALUE } from './constants';\nexport { createApi, reactHooksModule, reactHooksModuleName };","import { configureStore, formatProdErrorMessage as _formatProdErrorMessage } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport { useContext, useEffect } from './reactImports';\nimport * as React from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { Provider, ReactReduxContext } from './reactReduxImports';\nimport { setupListeners } from './rtkqImports';\nimport type { Api } from '@reduxjs/toolkit/query';\n\n/**\n * Can be used as a `Provider` if you **do not already have a Redux store**.\n *\n * @example\n * ```tsx\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\n * import * as React from 'react';\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\n * import { Pokemon } from './features/Pokemon';\n *\n * function App() {\n *   return (\n *     <ApiProvider api={api}>\n *       <Pokemon />\n *     </ApiProvider>\n *   );\n * }\n * ```\n *\n * @remarks\n * Using this together with an existing redux store, both will\n * conflict with each other - please use the traditional redux setup\n * in that case.\n */\nexport function ApiProvider(props: {\n  children: any;\n  api: Api<any, {}, any, any>;\n  setupListeners?: Parameters<typeof setupListeners>[1] | false;\n  context?: Context<ReactReduxContextValue | null>;\n}) {\n  const context = props.context || ReactReduxContext;\n  const existingContext = useContext(context);\n  if (existingContext) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(35) : 'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.');\n  }\n  const [store] = React.useState(() => configureStore({\n    reducer: {\n      [props.api.reducerPath]: props.api.reducer\n    },\n    middleware: gDM => gDM().concat(props.api.middleware)\n  }));\n  // Adds the event listeners for online/offline/focus/etc\n  useEffect((): undefined | (() => void) => props.setupListeners === false ? undefined : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n  return <Provider store={store} context={context}>\n      {props.children}\n    </Provider>;\n}"],"mappings":";AAAA,SAAS,gBAAgB,YAAY,2BAA2B,gBAAgB,aAAa,iBAAiB;;;ACA9G,SAAS,0BAA0BA,gCAA+B;AAElE,SAAS,SAAS,SAAS,eAAe,eAAe,eAAe,eAAe,YAAY,kBAAkB;AAErH,SAAS,kBAAkB,uBAAuB;;;ACJ3C,SAAS,WAAW,KAAa;AACtC,SAAO,IAAI,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;AACjD;;;ACGO,SAAS,gBAAgB,KAAuB;AACrD,MAAI,QAAQ;AACZ,aAAW,QAAQ,KAAK;AACtB;AAAA,EACF;AACA,SAAO;AACT;;;AC8XO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;;;AC91BO,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACNA,SAAS,0BAA0B,yBAAyB,0BAA0B,0BAA0B,0BAA0B,gCAAgC;;;ACA1K,SAAS,WAAW,QAAQ,SAAS,YAAY,aAAa,eAAe,iBAAiB,gBAAgB;;;ACA9G,SAAS,cAAc,UAAU,yBAAyB;;;ACAnD,IAAM,sBAAsB,OAAO;;;ACEnC,SAAS,mBAAsB,WAAc;AAClD,QAAM,QAAQ,OAAO,SAAS;AAC9B,QAAM,OAAO,QAAQ,MAAM,0BAA0B,MAAM,SAAS,SAAS,GAAG,CAAC,SAAS,CAAC;AAC3F,YAAU,MAAM;AACd,QAAI,MAAM,YAAY,MAAM;AAC1B,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SAAO;AACT;;;ACTO,SAAS,sBAAyB,OAAU;AACjD,QAAM,QAAQ,OAAO,KAAK;AAC1B,YAAU,MAAM;AACd,QAAI,CAAC,aAAa,MAAM,SAAS,KAAK,GAAG;AACvC,YAAM,UAAU;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AACV,SAAO,aAAa,MAAM,SAAS,KAAK,IAAI,MAAM,UAAU;AAC9D;;;ALSA,IAAM,YAAY,MAAM,CAAC,EAAE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB;AAC/I,IAAM,QAAuB,0BAAU;AAIvC,IAAM,yBAAyB,MAAM,OAAO,cAAc,eAAe,UAAU,YAAY;AAC/F,IAAM,gBAA+B,uCAAuB;AAC5D,IAAM,+BAA+B,MAAM,SAAS,gBAAgB,kBAAkB;AAC/E,IAAM,4BAA2C,6CAA6B;AAq0BrF,IAAM,8BAA4D,cAAY;AAC5E,MAAI,SAAS,iBAAiB;AAC5B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,WAAW,SAAS,SAAS,SAAY,QAAQ;AAAA;AAAA;AAAA,MAGjD,QAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,KAA2B,QAAW,MAAuB;AACpE,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,SAAO;AAClB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AACD,SAAO;AACT;AACA,IAAM,2BAA2B,CAAC,QAAQ,UAAU,aAAa,aAAa,WAAW,OAAO;AAWzF,SAAS,WAAoD;AAAA,EAClE;AAAA,EACA,eAAe;AAAA,IACb;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,6BAA8F,gCAAgC,QAAM,GAAG,IAAI;AAIjJ,QAAM,wBAAwB,CAAC,QAA+B,IAAI,SAAS,cAAc;AACzF,QAAM,sBAAsB,QAAQ;AACpC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,sBAAsB,cAA8C,YAAyD,WAAiD;AAIrL,QAAI,YAAY,gBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,aAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,YAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAGhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAKrG,UAAM,YAAY,aAAa,aAAa,YAAY,cAAc,CAAC,YAAY,WAAW,aAAa;AAC3G,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,8BAA8B,cAAsD,YAAiE,WAAyD;AAIrN,QAAI,YAAY,gBAAgB,aAAa,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAI,cAAc,aAAa,mBAAmB;AAAA,QAChD,WAAW,WAAW;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC,MAAM,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAG,cAAa;AAAA,IACnB;AAGA,QAAI,OAAO,aAAa,YAAY,aAAa,OAAO,YAAY;AACpE,QAAI,SAAS,OAAW,QAAO,aAAa;AAC5C,UAAM,UAAU,SAAS;AAGzB,UAAM,aAAa,aAAa;AAEhC,UAAM,aAAa,CAAC,cAAc,WAAW,aAAa,WAAW,oBAAoB,CAAC,WAAW;AAErG,UAAM,YAAY,aAAa,aAAa,cAAc;AAC1D,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,aAAa,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAyD,cAA4B,gBAAkC;AAC9H,UAAM,WAAW,YAAoD;AACrE,UAAM,uBAAuB,sBAAsB,cAAc;AACjE,WAAO,YAAY,CAAC,KAAU,YAA8B,SAAU,IAAI,KAAK,SAAkC,cAAc,KAAK;AAAA,MAClI,GAAG;AAAA,MACH,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,CAAC,cAAc,UAAU,oBAAoB,CAAC;AAAA,EACrD;AACA,WAAS,+BAAgH,cAAsB,KAA0B;AAAA,IACvK;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,GAAG;AAAA,EACL,IAAiC,CAAC,GAAG;AACnC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,IAAI,UAAU,YAAY;AAC9B,UAAM,WAAW,YAAoD;AAGrE,UAAM,2BAA2B,OAA0C,MAAS;AACpF,QAAI,CAAC,yBAAyB,SAAS;AACrC,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,OAAO,kBAAkB,YAAY,OAAO,eAAe,SAAS,UAAU;AAChF,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,qEACnG;AAAA,QAC7D;AAAA,MACF;AACA,+BAAyB,UAAU;AAAA,IACrC;AACA,UAAM,YAAY,mBAAmB,OAAO,YAAY,GAAG;AAC3D,UAAM,4BAA4B,sBAAsB;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,mBAAoB,KAAkD;AAC5E,UAAM,yBAAyB,sBAAsB,gBAAgB;AACrE,UAAM,qBAAsB,KAAkD;AAC9E,UAAM,2BAA2B,sBAAsB,kBAAkB;AAKzE,UAAM,aAAa,OAAsB,MAAS;AAClD,QAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,IAAI,WAAW,WAAW,CAAC;AAI3B,QAAI,+BAA+B;AACnC,QAAI,iBAAiB,WAAW;AAC9B,qCAA+B,yBAAyB,QAAQ,oBAAoB,eAAe,SAAS;AAAA,IAC9G;AACA,UAAM,sBAAsB,CAAC,gCAAgC,WAAW,YAAY;AACpF,+BAA2B,MAAwB;AACjD,UAAI,qBAAqB;AACvB,mBAAW,UAAU;AAAA,MACvB;AAAA,IACF,GAAG,CAAC,mBAAmB,CAAC;AACxB,+BAA2B,MAAwB;AACjD,YAAM,cAAc,WAAW;AAC/B,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,yBAAyB;AAEtF,gBAAQ,IAAI,mBAAmB;AAAA,MACjC;AACA,UAAI,cAAc,WAAW;AAC3B,qBAAa,YAAY;AACzB,mBAAW,UAAU;AACrB;AAAA,MACF;AACA,YAAM,0BAA0B,WAAW,SAAS;AACpD,UAAI,CAAC,eAAe,YAAY,QAAQ,WAAW;AACjD,qBAAa,YAAY;AACzB,cAAM,UAAU,SAAS,SAAS,WAAW;AAAA,UAC3C,qBAAqB;AAAA,UACrB,cAAc;AAAA,UACd,GAAI,0BAA0B,oBAAoB,YAAY,CAAC,IAAI;AAAA,YACjE,kBAAkB;AAAA,YAClB,oBAAoB;AAAA,UACtB,IAAI,CAAC;AAAA,QACP,CAAC,CAAC;AACF,mBAAW,UAAU;AAAA,MACvB,WAAW,8BAA8B,yBAAyB;AAChE,oBAAY,0BAA0B,yBAAyB;AAAA,MACjE;AAAA,IACF,GAAG,CAAC,UAAU,UAAU,2BAA2B,WAAW,2BAA2B,qBAAqB,wBAAwB,0BAA0B,YAAY,CAAC;AAC7K,WAAO,CAAC,YAAY,UAAU,UAAU,yBAAyB;AAAA,EACnE;AACA,WAAS,mBAAmB,cAAsB,aAAkF;AAClI,UAAM,gBAAgB,CAAC,KAAU;AAAA,MAC/B,OAAO;AAAA,MACP;AAAA,IACF,IAA6E,CAAC,MAAM;AAClF,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,YAAY,mBAAmB,OAAO,YAAY,GAAG;AAE3D,YAAM,YAAY,OAAY,MAAS;AACvC,YAAM,sBAA0D,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAKxE,eAAe;AAAA;AAAA,UAEf,OAAO,SAAS;AAAA,UAAG,CAAC,GAAiB,eAAoB;AAAA,UAAY,CAAC,MAAoB;AAAA,QAAS,GAAG,aAAa;AAAA,UACjH,gBAAgB;AAAA,YACd,qBAAqB;AAAA,UACvB;AAAA,QACF,CAAC;AAAA,SAAG,CAAC,QAAQ,SAAS,CAAC;AACvB,YAAM,gBAAoD,QAAQ,MAAM,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,kBAAkB;AAAA,QACjJ,eAAe;AAAA,UACb,uBAAuB;AAAA,QACzB;AAAA,MACF,CAAC,IAAI,qBAAqB,CAAC,qBAAqB,gBAAgB,CAAC;AACjE,YAAM,eAAe,YAAY,CAAC,UAA4C,cAAc,OAAO,UAAU,OAAO,GAAG,YAAY;AACnI,YAAM,QAAQ,SAA2C;AACzD,YAAM,eAAe,oBAAoB,MAAM,SAAS,GAAG,UAAU,OAAO;AAC5E,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AAAA,MACtB,GAAG,CAAC,YAAY,CAAC;AACjB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,kCAAkC,YAAmC;AAC5E,cAAU,MAAM;AACd,aAAO,MAAM;AACX,8BAAsB,UAAU;AAGhC,QAAC,WAAW,UAAkB;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,UAAU,CAAC;AAAA,EACjB;AACA,WAAS,0BAA2G,YAA+C;AACjK,QAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,uDAAuD;AACvK,WAAO,WAAW,QAAQ,QAAQ;AAAA,EACpC;AACA,WAAS,gBAAgB,cAAuC;AAC9D,UAAM,uBAAkD,CAAC,KAAU,UAAU,CAAC,MAAM;AAClF,YAAM,CAAC,UAAU,IAAI,+BAA8D,cAAc,KAAK,OAAO;AAC7G,wCAAkC,UAAU;AAC5C,aAAO,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,QAIpB,SAAS,MAAM,0BAA0B,UAAU;AAAA,MACrD,IAAI,CAAC,UAAU,CAAC;AAAA,IAClB;AACA,UAAM,2BAA0D,CAAC;AAAA,MAC/D;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAC3B,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,IAAI,UAAU,YAAY;AAC9B,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,KAAK,MAAM,IAAI,SAAc,mBAAmB;AAMvD,YAAM,aAAa,OAAkD,MAAS;AAC9E,YAAM,4BAA4B,sBAAsB;AAAA,QACtD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iCAA2B,MAAM;AAC/B,cAAM,0BAA0B,WAAW,SAAS;AACpD,YAAI,8BAA8B,yBAAyB;AACzD,qBAAW,SAAS,0BAA0B,yBAAyB;AAAA,QACzE;AAAA,MACF,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,yBAAyB,OAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAC9B,YAAM,UAAU,YAAY,SAAUC,MAAU,mBAAmB,OAAO;AACxE,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAS,SAASA,MAAK;AAAA,YACpD,qBAAqB,uBAAuB;AAAA,YAC5C,cAAc,CAAC;AAAA,UACjB,CAAC,CAAC;AACF,iBAAOA,IAAG;AAAA,QACZ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,UAAU,QAAQ,CAAC;AACvB,YAAM,QAAQ,YAAY,MAAM;AAC9B,YAAI,WAAW,SAAS,eAAe;AACrC,mBAAS,IAAI,gBAAgB,kBAAkB;AAAA,YAC7C,eAAe,WAAW,SAAS;AAAA,UACrC,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,GAAG,CAAC,QAAQ,CAAC;AAGb,gBAAU,MAAM;AACd,eAAO,MAAM;AACX,gCAAsB,UAAU;AAAA,QAClC;AAAA,MACF,GAAG,CAAC,CAAC;AAGL,gBAAU,MAAM;AACd,YAAI,QAAQ,uBAAuB,CAAC,WAAW,SAAS;AACtD,kBAAQ,KAAK,IAAI;AAAA,QACnB;AAAA,MACF,GAAG,CAAC,KAAK,OAAO,CAAC;AACjB,aAAO,QAAQ,MAAM,CAAC,SAAS,KAAK;AAAA,QAClC;AAAA,MACF,CAAC,GAAY,CAAC,SAAS,KAAK,KAAK,CAAC;AAAA,IACpC;AACA,UAAM,gBAAoC,mBAAmB,cAAc,qBAAqB;AAChG,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,SAAS;AACpB,cAAM,CAAC,SAAS,KAAK;AAAA,UACnB;AAAA,QACF,CAAC,IAAI,yBAAyB,OAAO;AACrC,cAAM,oBAAoB,cAAc,KAAK;AAAA,UAC3C,GAAG;AAAA,UACH,MAAM,QAAQ;AAAA,QAChB,CAAC;AACD,cAAM,OAAO,QAAQ,OAAO;AAAA,UAC1B,SAAS;AAAA,QACX,IAAI,CAAC,GAAG,CAAC;AACT,eAAO,QAAQ,MAAM,CAAC,SAAS;AAAA,UAC7B,GAAG;AAAA,UACH;AAAA,QACF,GAAG,IAAI,GAAG,CAAC,SAAS,mBAAmB,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,MACA,SAAS,KAAK,SAAS;AACrB,cAAM,2BAA2B,qBAAqB,KAAK,OAAO;AAClE,cAAM,oBAAoB,cAAc,KAAK;AAAA,UAC3C,kBAAkB,QAAQ,aAAa,SAAS,OAAO,SAAY;AAAA,UACnE,GAAG;AAAA,QACL,CAAC;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,wBAAwB;AACtE,sBAAc,UAAU;AACxB,eAAO,QAAQ,OAAO;AAAA,UACpB,GAAG;AAAA,UACH,GAAG;AAAA,QACL,IAAI,CAAC,mBAAmB,wBAAwB,CAAC;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACA,WAAS,wBAAwB,cAA+C;AAC9E,UAAM,+BAAkE,CAAC,KAAU,UAAU,CAAC,MAAM;AAClG,YAAM,CAAC,YAAY,UAAU,UAAU,yBAAyB,IAAI,+BAAsE,cAAc,KAAK,OAAO;AACpK,YAAM,yBAAyB,OAAO,yBAAyB;AAC/D,iCAA2B,MAAM;AAC/B,+BAAuB,UAAU;AAAA,MACnC,GAAG,CAAC,yBAAyB,CAAC;AAG9B,YAAM,yBAA0B,QAAqD;AACrF,YAAM,+BAA+B,sBAAsB,sBAAsB;AACjF,YAAM,UAAyC,YAAY,SAAUA,MAAc,WAAmC;AACpH,YAAI;AACJ,cAAM,MAAM;AACV,gCAAsB,UAAU;AAChC,qBAAW,UAAU,UAAU,SAAU,SAAkDA,MAAK;AAAA,YAC9F,qBAAqB,uBAAuB;AAAA,YAC5C;AAAA,UACF,CAAC,CAAC;AAAA,QACJ,CAAC;AACD,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,UAAU,QAAQ,CAAC;AACnC,wCAAkC,UAAU;AAC5C,YAAM,YAAY,mBAAmB,QAAQ,OAAO,YAAY,GAAG;AACnE,YAAM,UAAU,YAAY,CAACC,aAAmF;AAC9G,YAAI,CAAC,WAAW,QAAS,OAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,uDAAuD;AAEvK,cAAM,gBAAgB;AAAA,UACpB,oBAAoBA,UAAS,sBAAsB;AAAA,QACrD;AACA,eAAO,WAAW,QAAQ,QAAQ,aAAa;AAAA,MACjD,GAAG,CAAC,YAAY,4BAA4B,CAAC;AAC7C,aAAO,QAAQ,MAAM;AACnB,cAAM,gBAAgB,MAAM;AAC1B,iBAAO,QAAQ,WAAW,SAAS;AAAA,QACrC;AACA,cAAM,oBAAoB,MAAM;AAC9B,iBAAO,QAAQ,WAAW,UAAU;AAAA,QACtC;AACA,eAAO;AAAA,UACL;AAAA;AAAA;AAAA;AAAA,UAIA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,GAAG,CAAC,SAAS,SAAS,SAAS,CAAC;AAAA,IAClC;AACA,UAAM,wBAAoD,mBAAmB,cAAc,6BAA6B;AACxH,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,iBAAiB,KAAK,SAAS;AAC7B,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,6BAA6B,KAAK,OAAO;AAC7C,cAAM,oBAAoB,sBAAsB,KAAK;AAAA,UACnD,kBAAkB,QAAQ,aAAa,SAAS,OAAO,SAAY;AAAA,UACnE,GAAG;AAAA,QACL,CAAC;AACD,cAAM,aAAa,KAAK,mBAAmB,GAAG,0BAA0B,eAAe,iBAAiB;AACxG,sBAAc,UAAU;AACxB,eAAO,QAAQ,OAAO;AAAA,UACpB,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,CAAC,mBAAmB,eAAe,mBAAmB,OAAO,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,MAAgC;AACzD,WAAO,CAAC;AAAA,MACN;AAAA,MACA;AAAA,IACF,IAAI,CAAC,MAAM;AACT,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,IAAI,UAAU,IAAI;AACtB,YAAM,WAAW,YAAoD;AACrE,YAAM,CAAC,SAAS,UAAU,IAAI,SAA2C;AACzE,gBAAU,MAAM,MAAM;AACpB,YAAI,CAAC,SAAS,IAAI,eAAe;AAC/B,mBAAS,MAAM;AAAA,QACjB;AAAA,MACF,GAAG,CAAC,OAAO,CAAC;AACZ,YAAM,kBAAkB,YAAY,SAAU,KAAuC;AACnF,cAAMC,WAAU,SAAS,SAAS,KAAK;AAAA,UACrC;AAAA,QACF,CAAC,CAAC;AACF,mBAAWA,QAAO;AAClB,eAAOA;AAAA,MACT,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,WAAW,CAAC;AAChB,YAAM,sBAAsB,QAAQ,MAAM,OAAO;AAAA,QAC/C;AAAA,QACA,WAAW,SAAS;AAAA,MACtB,CAAC,GAAG,CAAC,eAAe,SAAS,MAAM,CAAC;AACpC,YAAM,mBAAmB,QAAQ,MAAuD,mBAAmB,eAAe,CAAC,mBAAmB,GAAG,gBAAgB,IAAI,qBAAqB,CAAC,kBAAkB,mBAAmB,CAAC;AACjO,YAAM,eAAe,YAAY,kBAAkB,YAAY;AAC/D,YAAM,eAAe,iBAAiB,OAAO,SAAS,IAAI,eAAe;AACzE,YAAM,QAAQ,YAAY,MAAM;AAC9B,cAAM,MAAM;AACV,cAAI,SAAS;AACX,uBAAW,MAAS;AAAA,UACtB;AACA,cAAI,eAAe;AACjB,qBAAS,IAAI,gBAAgB,qBAAqB;AAAA,cAChD;AAAA,cACA;AAAA,YACF,CAAC,CAAC;AAAA,UACJ;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,UAAU,eAAe,SAAS,SAAS,CAAC;AAChD,YAAM,aAAa,KAAK,cAAc,GAAG,0BAA0B,cAAc;AACjF,oBAAc,UAAU;AACxB,YAAM,aAAa,QAAQ,OAAO;AAAA,QAChC,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF,IAAI,CAAC,cAAc,cAAc,KAAK,CAAC;AACvC,aAAO,QAAQ,MAAM,CAAC,iBAAiB,UAAU,GAAY,CAAC,iBAAiB,UAAU,CAAC;AAAA,IAC5F;AAAA,EACF;AACF;;;ALr3CO,IAAM,uBAAsC,uBAAO;AA0FnD,IAAM,mBAAmB,CAAC;AAAA,EAC/B,QAAQ;AAAA,EACR,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,iBAAiB;AAAA,EACjB,gCAAgC;AAAA,EAChC,GAAG;AACL,IAA6B,CAAC,MAAgC;AAC5D,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAM,YAAY,CAAC,eAAe,eAAe,UAAU;AAC3D,QAAI,SAAS;AACb,eAAW,YAAY,WAAW;AAEhC,UAAI,gBAAgB,IAAI,IAAI,GAAG;AAC7B,YAAK,KAA+B,QAAQ,GAAG;AAC7C,cAAI,CAAC,QAAQ;AACX,oBAAQ,KAAK,uKAA4K;AACzL,qBAAS;AAAA,UACX;AAAA,QACF;AAGA,cAAM,QAAQ,IAAI,KAAK,QAAQ;AAAA,MACjC;AAEA,UAAI,OAAO,MAAM,QAAQ,MAAM,YAAY;AACzC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,4CAA4C,UAAU,MAAM,+BAA+B,UAAU,KAAK,IAAI,CAAC;AAAA,OAAW,QAAQ,6CAA6C;AAAA,MACvQ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,KAAK;AAAA,MACR;AAAA,IACF,GAAG,SAAS;AACV,YAAM,SAAS;AACf,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,WAAW;AAAA,QACb;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,iBAAW,QAAQ;AAAA,QACjB;AAAA,MACF,CAAC;AACD,iBAAW,SAAS;AAAA,QAClB;AAAA,MACF,CAAC;AACD,aAAO;AAAA,QACL,eAAe,cAAc,YAAY;AACvC,cAAI,kBAAkB,UAAU,GAAG;AACjC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,gBAAgB,YAAY;AAChC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,OAAO,IAAI;AACtD,YAAC,IAAY,UAAU,WAAW,YAAY,CAAC,OAAO,IAAI;AAAA,UAC5D;AACA,cAAI,qBAAqB,UAAU,GAAG;AACpC,kBAAM,cAAc,kBAAkB,YAAY;AAClD,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,UAAU,IAAI;AAAA,UAC3D,WAAW,0BAA0B,UAAU,GAAG;AAChD,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,wBAAwB,YAAY;AACxC,uBAAW,OAAO,UAAU,YAAY,GAAG;AAAA,cACzC;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,YAAC,IAAY,MAAM,WAAW,YAAY,CAAC,eAAe,IAAI;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AWxMA,cAAc;;;ACLd,SAAS,gBAAgB,0BAA0BC,gCAA+B;AAGlF,YAAY,WAAW;AA8BhB,SAAS,YAAY,OAKzB;AACD,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,kBAAkB,WAAW,OAAO;AAC1C,MAAI,iBAAiB;AACnB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,8GAA8G;AAAA,EACtM;AACA,QAAM,CAAC,KAAK,IAAU,eAAS,MAAM,eAAe;AAAA,IAClD,SAAS;AAAA,MACP,CAAC,MAAM,IAAI,WAAW,GAAG,MAAM,IAAI;AAAA,IACrC;AAAA,IACA,YAAY,SAAO,IAAI,EAAE,OAAO,MAAM,IAAI,UAAU;AAAA,EACtD,CAAC,CAAC;AAEF,YAAU,MAAgC,MAAM,mBAAmB,QAAQ,SAAY,eAAe,MAAM,UAAU,MAAM,cAAc,GAAG,CAAC,MAAM,gBAAgB,MAAM,QAAQ,CAAC;AACnL,SAAO,oCAAC,YAAS,OAAc,WAC1B,MAAM,QACT;AACJ;;;ADhDA,IAAM,YAA2B,+BAAe,WAAW,GAAG,iBAAiB,CAAC;","names":["_formatProdErrorMessage","arg","options","promise","_formatProdErrorMessage","_formatProdErrorMessage","_formatProdErrorMessage"]}
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.browser.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-var ft=(y=>(y.uninitialized="uninitialized",y.pending="pending",y.fulfilled="fulfilled",y.rejected="rejected",y))(ft||{}),j="uninitialized",Ne="pending",Te="fulfilled",he="rejected";function et(e){return{status:e,isUninitialized:e===j,isLoading:e===Ne,isSuccess:e===Te,isError:e===he}}import{createAction as ee,createSlice as pe,createSelector as mt,createAsyncThunk as tt,combineReducers as gt,createNextState as Ie,isAnyOf as de,isAllOf as Ue,isAction as Qt,isPending as qe,isRejected as Re,isFulfilled as $,isRejectedWithValue as Ae,isAsyncThunkAction as nt,prepareAutoBatched as Se,SHOULD_AUTOBATCH as Ke,isPlainObject as ie,nanoid as Le}from"@reduxjs/toolkit";var Tt=ie;function _e(e,n){if(e===n||!(Tt(e)&&Tt(n)||Array.isArray(e)&&Array.isArray(n)))return n;let u=Object.keys(n),f=Object.keys(e),y=u.length===f.length,A=Array.isArray(n)?[]:{};for(let g of u)A[g]=_e(e[g],n[g]),y&&(y=e[g]===A[g]);return y?e:A}function Be(e,n,u){return e.reduce((f,y,A)=>(n(y,A)&&f.push(u(y,A)),f),[]).flat()}function ht(e){return new RegExp("(^|:)//").test(e)}function Rt(){return typeof document>"u"?!0:document.visibilityState!=="hidden"}function ke(e){return e!=null}function rt(e){return[...e?.values()??[]].filter(ke)}function At(){return typeof navigator>"u"||navigator.onLine===void 0?!0:navigator.onLine}var un=e=>e.replace(/\/$/,""),yn=e=>e.replace(/^\//,"");function St(e,n){if(!e)return n;if(!n)return e;if(ht(n))return n;let u=e.endsWith("/")||!n.startsWith("?")?"/":"";return e=un(e),n=yn(n),`${e}${u}${n}`}function ce(e,n,u){return e.has(n)?e.get(n):e.set(n,u(n)).get(n)}var Me=()=>new Map;var xt=e=>{let n=new AbortController;return setTimeout(()=>{let u="signal timed out",f="TimeoutError";n.abort(typeof DOMException<"u"?new DOMException(u,f):Object.assign(new Error(u),{name:f}))},e),n.signal},Dt=(...e)=>{for(let u of e)if(u.aborted)return AbortSignal.abort(u.reason);let n=new AbortController;for(let u of e)u.addEventListener("abort",()=>n.abort(u.reason),{signal:n.signal,once:!0});return n.signal};var Et=(...e)=>fetch(...e),pn=e=>e.status>=200&&e.status<=299,dn=e=>/ion\/(vnd\.api\+)?json/.test(e.get("content-type")||"");function bt(e){if(!ie(e))return e;let n={...e};for(let[u,f]of Object.entries(n))f===void 0&&delete n[u];return n}var cn=e=>typeof e=="object"&&(ie(e)||Array.isArray(e)||typeof e.toJSON=="function");function ln({baseUrl:e,prepareHeaders:n=T=>T,fetchFn:u=Et,paramsSerializer:f,isJsonContentType:y=dn,jsonContentType:A="application/json",jsonReplacer:g,timeout:B,responseHandler:k,validateStatus:S,...x}={}){return typeof fetch>"u"&&u===Et&&console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments."),async(h,E,M)=>{let{getState:b,extra:c,endpoint:R,forced:I,type:s}=E,d,{url:i,headers:Q=new Headers(x.headers),params:D=void 0,responseHandler:m=k??"json",validateStatus:p=S??pn,timeout:a=B,...t}=typeof h=="string"?{url:h}:h,r={...x,signal:a?Dt(E.signal,xt(a)):E.signal,...t};Q=new Headers(bt(Q)),r.headers=await n(Q,{getState:b,arg:h,extra:c,endpoint:R,forced:I,type:s,extraOptions:M})||Q;let o=cn(r.body);if(r.body!=null&&!o&&typeof r.body!="string"&&r.headers.delete("content-type"),!r.headers.has("content-type")&&o&&r.headers.set("content-type",A),o&&y(r.headers)&&(r.body=JSON.stringify(r.body,g)),r.headers.has("accept")||(m==="json"?r.headers.set("accept","application/json"):m==="text"&&r.headers.set("accept","text/plain, text/html, */*")),D){let v=~i.indexOf("?")?"&":"?",L=f?f(D):new URLSearchParams(bt(D));i+=v+L}i=St(e,i);let l=new Request(i,r);d={request:new Request(i,r)};let w;try{w=await u(l)}catch(v){return{error:{status:(v instanceof Error||typeof DOMException<"u"&&v instanceof DOMException)&&v.name==="TimeoutError"?"TIMEOUT_ERROR":"FETCH_ERROR",error:String(v)},meta:d}}let O=w.clone();d.response=O;let F,P="";try{let v;if(await Promise.all([T(w,m).then(L=>F=L,L=>v=L),O.text().then(L=>P=L,()=>{})]),v)throw v}catch(v){return{error:{status:"PARSING_ERROR",originalStatus:w.status,data:P,error:String(v)},meta:d}}return p(w,F)?{data:F,meta:d}:{error:{status:w.status,data:F},meta:d}};async function T(h,E){if(typeof E=="function")return E(h);if(E==="content-type"&&(E=y(h.headers)?"json":"text"),E==="json"){let M=await h.text();return M.length?JSON.parse(M):null}return h.text()}}var G=class{constructor(n,u=void 0){this.value=n;this.meta=u}};async function fn(e=0,n=5,u){let f=Math.min(e,n),y=~~((Math.random()+.4)*(300<<f));await new Promise((A,g)=>{let B=setTimeout(()=>A(),y);if(u){let k=()=>{clearTimeout(B),g(new Error("Aborted"))};u.aborted?(clearTimeout(B),g(new Error("Aborted"))):u.addEventListener("abort",k,{once:!0})}})}function It(e,n){throw Object.assign(new G({error:e,meta:n}),{throwImmediately:!0})}function it(e){e.aborted&&It({status:"CUSTOM_ERROR",error:"Aborted"})}var Pt={},mn=(e,n)=>async(u,f,y)=>{let A=[5,(n||Pt).maxRetries,(y||Pt).maxRetries].filter(x=>x!==void 0),[g]=A.slice(-1),k={maxRetries:g,backoff:fn,retryCondition:(x,T,{attempt:h})=>h<=g,...n,...y},S=0;for(;;){it(f.signal);try{let x=await e(u,f,y);if(x.error)throw new G(x);return x}catch(x){if(S++,x.throwImmediately){if(x instanceof G)return x.value;throw x}if(x instanceof G){if(!k.retryCondition(x.value.error,u,{attempt:S,baseQueryApi:f,extraOptions:y}))return x.value}else if(S>k.maxRetries)return{error:x};it(f.signal);try{await k.backoff(S,k.maxRetries,f.signal)}catch(T){throw it(f.signal),T}}}},gn=Object.assign(mn,{fail:It});var Ve="__rtkq/",Bt="online",kt="offline",Qn="focus",Mt="focused",Tn="visibilitychange",ae=ee(`${Ve}${Mt}`),xe=ee(`${Ve}un${Mt}`),oe=ee(`${Ve}${Bt}`),De=ee(`${Ve}${kt}`),hn={onFocus:ae,onFocusLost:xe,onOnline:oe,onOffline:De},He=!1;function Rn(e,n){function u(){let[f,y,A,g]=[ae,xe,oe,De].map(x=>()=>e(x())),B=()=>{window.document.visibilityState==="visible"?f():y()},k=()=>{He=!1};if(!He&&typeof window<"u"&&window.addEventListener){let T=function(h){Object.entries(x).forEach(([E,M])=>{h?window.addEventListener(E,M,!1):window.removeEventListener(E,M)})};var S=T;let x={[Qn]:f,[Tn]:B,[Bt]:A,[kt]:g};T(!0),He=!0,k=()=>{T(!1),He=!1}}return k}return n?n(e,hn):u()}var te="query",at="mutation",ot="infinitequery";function le(e){return e.type===te}function wt(e){return e.type===at}function fe(e){return e.type===ot}function Ee(e){return le(e)||fe(e)}function we(e,n,u,f,y,A){let g=An(e)?e(n,u,f,y):e;return g?Be(g,ke,B=>A(st(B))):[]}function An(e){return typeof e=="function"}function st(e){return typeof e=="string"?{type:e}:e}import{current as Ct,isDraft as je,applyPatches as ut,original as Ft,isDraftable as vt,produceWithPatches as ze,enablePatches as Ot}from"immer";import"@reduxjs/toolkit";function Nt(e,n){return e.catch(n)}var Y=(e,n)=>e.endpointDefinitions[n];var be=Symbol("forceQueryFn"),Ce=e=>typeof e[be]=="function";function Ut({serializeQueryArgs:e,queryThunk:n,infiniteQueryThunk:u,mutationThunk:f,api:y,context:A,getInternalState:g}){let B=i=>g(i)?.runningQueries,k=i=>g(i)?.runningMutations,{unsubscribeQueryResult:S,removeMutationResult:x,updateSubscriptionOptions:T}=y.internalActions;return{buildInitiateQuery:I,buildInitiateInfiniteQuery:s,buildInitiateMutation:d,getRunningQueryThunk:h,getRunningMutationThunk:E,getRunningQueriesThunk:M,getRunningMutationsThunk:b};function h(i,Q){return D=>{let m=Y(A,i),p=e({queryArgs:Q,endpointDefinition:m,endpointName:i});return B(D)?.get(p)}}function E(i,Q){return D=>k(D)?.get(Q)}function M(){return i=>rt(B(i))}function b(){return i=>rt(k(i))}function c(i){}function R(i,Q){let D=(m,{subscribe:p=!0,forceRefetch:a,subscriptionOptions:t,[be]:r,...o}={})=>(l,C)=>{let w=e({queryArgs:m,endpointDefinition:Q,endpointName:i}),O,F={...o,type:te,subscribe:p,forceRefetch:a,subscriptionOptions:t,endpointName:i,originalArgs:m,queryCacheKey:w,[be]:r};if(le(Q))O=n(F);else{let{direction:q,initialPageParam:K,refetchCachedPages:N}=o;O=u({...F,direction:q,initialPageParam:K,refetchCachedPages:N})}let P=y.endpoints[i].select(m),v=l(O),L=P(C());let{requestId:z,abort:J}=v,_=L.requestId!==z,V=B(l)?.get(w),H=()=>P(C()),U=Object.assign(r?v.then(H):_&&!V?Promise.resolve(L):Promise.all([V,v]).then(H),{arg:m,requestId:z,subscriptionOptions:t,queryCacheKey:w,abort:J,async unwrap(){let q=await U;if(q.isError)throw q.error;return q.data},refetch:q=>l(D(m,{subscribe:!1,forceRefetch:!0,...q})),unsubscribe(){p&&l(S({queryCacheKey:w,requestId:z}))},updateSubscriptionOptions(q){U.subscriptionOptions=q,l(T({endpointName:i,requestId:z,queryCacheKey:w,options:q}))}});if(!V&&!_&&!r){let q=B(l);q.set(w,U),U.then(()=>{q.delete(w)})}return U};return D}function I(i,Q){return R(i,Q)}function s(i,Q){return R(i,Q)}function d(i){return(Q,{track:D=!0,fixedCacheKey:m}={})=>(p,a)=>{let t=f({type:"mutation",endpointName:i,originalArgs:Q,track:D,fixedCacheKey:m}),r=p(t);let{requestId:o,abort:l,unwrap:C}=r,w=Nt(r.unwrap().then(v=>({data:v})),v=>({error:v})),O=()=>{p(x({requestId:o,fixedCacheKey:m}))},F=Object.assign(w,{arg:r.arg,requestId:o,abort:l,unwrap:C,reset:O}),P=k(p);return P.set(o,F),F.then(()=>{P.delete(o)}),m&&(P.set(m,F),F.then(()=>{P.get(m)===F&&P.delete(m)})),F}}}import{SchemaError as Sn}from"@standard-schema/utils";var Pe=class extends Sn{constructor(u,f,y,A){super(u);this.value=f;this.schemaName=y;this._bqMeta=A}},se=(e,n)=>Array.isArray(e)?e.includes(n):!!e;async function ue(e,n,u,f){let y=await e["~standard"].validate(n);if(y.issues)throw new Pe(y.issues,n,u,f);return y.value}function qt(e){return e}var Fe=(e={})=>({...e,[Ke]:!0});function Kt({reducerPath:e,baseQuery:n,context:{endpointDefinitions:u},serializeQueryArgs:f,api:y,assertTagType:A,selectors:g,onSchemaFailure:B,catchSchemaFailure:k,skipSchemaValidation:S}){let x=(t,r,o,l)=>(C,w)=>{let O=u[t],F=f({queryArgs:r,endpointDefinition:O,endpointName:t});if(C(y.internalActions.queryResultPatched({queryCacheKey:F,patches:o})),!l)return;let P=y.endpoints[t].select(r)(w()),v=we(O.providesTags,P.data,void 0,r,{},A);C(y.internalActions.updateProvidedBy([{queryCacheKey:F,providedTags:v}]))};function T(t,r,o=0){let l=[r,...t];return o&&l.length>o?l.slice(0,-1):l}function h(t,r,o=0){let l=[...t,r];return o&&l.length>o?l.slice(1):l}let E=(t,r,o,l=!0)=>(C,w)=>{let F=y.endpoints[t].select(r)(w()),P={patches:[],inversePatches:[],undo:()=>C(y.util.patchQueryData(t,r,P.inversePatches,l))};if(F.status===j)return P;let v;if("data"in F)if(vt(F.data)){let[L,z,J]=ze(F.data,o);P.patches.push(...z),P.inversePatches.push(...J),v=L}else v=o(F.data),P.patches.push({op:"replace",path:[],value:v}),P.inversePatches.push({op:"replace",path:[],value:F.data});return P.patches.length===0||C(y.util.patchQueryData(t,r,P.patches,l)),P},M=(t,r,o)=>l=>l(y.endpoints[t].initiate(r,{subscribe:!1,forceRefetch:!0,[be]:()=>({data:o})})),b=(t,r)=>t.query&&t[r]?t[r]:qt,c=async(t,{signal:r,abort:o,rejectWithValue:l,fulfillWithValue:C,dispatch:w,getState:O,extra:F})=>{let P=u[t.endpointName],{metaSchema:v,skipSchemaValidation:L=S}=P,z=t.type===te;try{let J=qt,_={signal:r,abort:o,dispatch:w,getState:O,extra:F,endpoint:t.endpointName,type:t.type,forced:z?R(t,O()):void 0,queryCacheKey:z?t.queryCacheKey:void 0},V=z?t[be]:void 0,H,U=async(K,N,ne,W)=>{if(N==null&&K.pages.length)return Promise.resolve({data:K});let ge={queryArg:t.originalArgs,pageParam:N},X=await q(ge),Qe=W?T:h;return{data:{pages:Qe(K.pages,X.data,ne),pageParams:Qe(K.pageParams,N,ne)},meta:X.meta}};async function q(K){let N,{extraOptions:ne,argSchema:W,rawResponseSchema:ge,responseSchema:X}=P;if(W&&!se(L,"arg")&&(K=await ue(W,K,"argSchema",{})),V?N=V():P.query?(J=b(P,"transformResponse"),N=await n(P.query(K),_,ne)):N=await P.queryFn(K,_,ne,ye=>n(ye,_,ne)),N.error)throw new G(N.error,N.meta);let{data:Qe}=N;ge&&!se(L,"rawResponse")&&(Qe=await ue(ge,N.data,"rawResponseSchema",N.meta));let re=await J(Qe,N.meta,K);return X&&!se(L,"response")&&(re=await ue(X,re,"responseSchema",N.meta)),{...N,data:re}}if(z&&"infiniteQueryOptions"in P){let{infiniteQueryOptions:K}=P,{maxPages:N=1/0}=K,ne=t.refetchCachedPages??K.refetchCachedPages??!0,W,ge={pages:[],pageParams:[]},X=g.selectQueryEntry(O(),t.queryCacheKey)?.data,re=R(t,O())&&!t.direction||!X?ge:X;if("direction"in t&&t.direction&&re.pages.length){let ye=t.direction==="backward",Oe=(ye?yt:We)(K,re,t.originalArgs);W=await U(re,Oe,N,ye)}else{let{initialPageParam:ye=K.initialPageParam}=t,ve=X?.pageParams??[],Oe=ve[0]??ye,on=ve.length;if(W=await U(re,Oe,N),V&&(W={data:W.data.pages[0]}),ne)for(let lt=1;lt<on;lt++){let sn=We(K,W.data,t.originalArgs);W=await U(W.data,sn,N)}}H=W}else H=await q(t.originalArgs);return v&&!se(L,"meta")&&H.meta&&(H.meta=await ue(v,H.meta,"metaSchema",H.meta)),C(H.data,Fe({fulfilledTimeStamp:Date.now(),baseQueryMeta:H.meta}))}catch(J){let _=J;if(_ instanceof G){let V=b(P,"transformErrorResponse"),{rawErrorResponseSchema:H,errorResponseSchema:U}=P,{value:q,meta:K}=_;try{H&&!se(L,"rawErrorResponse")&&(q=await ue(H,q,"rawErrorResponseSchema",K)),v&&!se(L,"meta")&&(K=await ue(v,K,"metaSchema",K));let N=await V(q,K,t.originalArgs);return U&&!se(L,"errorResponse")&&(N=await ue(U,N,"errorResponseSchema",K)),l(N,Fe({baseQueryMeta:K}))}catch(N){_=N}}try{if(_ instanceof Pe){let V={endpoint:t.endpointName,arg:t.originalArgs,type:t.type,queryCacheKey:z?t.queryCacheKey:void 0};P.onSchemaFailure?.(_,V),B?.(_,V);let{catchSchemaFailure:H=k}=P;if(H)return l(H(_,V),Fe({baseQueryMeta:_._bqMeta}))}}catch(V){_=V}throw console.error(_),_}};function R(t,r){let o=g.selectQueryEntry(r,t.queryCacheKey),l=g.selectConfig(r).refetchOnMountOrArgChange,C=o?.fulfilledTimeStamp,w=t.forceRefetch??(t.subscribe&&l);return w?w===!0||(Number(new Date)-Number(C))/1e3>=w:!1}let I=()=>tt(`${e}/executeQuery`,c,{getPendingMeta({arg:r}){let o=u[r.endpointName];return Fe({startedTimeStamp:Date.now(),...fe(o)?{direction:r.direction}:{}})},condition(r,{getState:o}){let l=o(),C=g.selectQueryEntry(l,r.queryCacheKey),w=C?.fulfilledTimeStamp,O=r.originalArgs,F=C?.originalArgs,P=u[r.endpointName],v=r.direction;return Ce(r)?!0:C?.status==="pending"?!1:R(r,l)||le(P)&&P?.forceRefetch?.({currentArg:O,previousArg:F,endpointState:C,state:l})?!0:!(w&&!v)},dispatchConditionRejection:!0}),s=I(),d=I(),i=tt(`${e}/executeMutation`,c,{getPendingMeta(){return Fe({startedTimeStamp:Date.now()})}}),Q=t=>"force"in t,D=t=>"ifOlderThan"in t,m=(t,r,o={})=>(l,C)=>{let w=Q(o)&&o.force,O=D(o)&&o.ifOlderThan,F=(v=!0)=>{let L={forceRefetch:v,subscribe:!1};return y.endpoints[t].initiate(r,L)},P=y.endpoints[t].select(r)(C());if(w)l(F());else if(O){let v=P?.fulfilledTimeStamp;if(!v){l(F());return}(Number(new Date)-Number(new Date(v)))/1e3>=O&&l(F())}else l(F(!1))};function p(t){return r=>r?.meta?.arg?.endpointName===t}function a(t,r){return{matchPending:Ue(qe(t),p(r)),matchFulfilled:Ue($(t),p(r)),matchRejected:Ue(Re(t),p(r))}}return{queryThunk:s,mutationThunk:i,infiniteQueryThunk:d,prefetch:m,updateQueryData:E,upsertQueryData:M,patchQueryData:x,buildMatchThunkActions:a}}function We(e,{pages:n,pageParams:u},f){let y=n.length-1;return e.getNextPageParam(n[y],n,u[y],u,f)}function yt(e,{pages:n,pageParams:u},f){return e.getPreviousPageParam?.(n[0],n,u[0],u,f)}function $e(e,n,u,f){return we(u[e.meta.arg.endpointName][n],$(e)?e.payload:void 0,Ae(e)?e.payload:void 0,e.meta.arg.originalArgs,"baseQueryMeta"in e.meta?e.meta.baseQueryMeta:void 0,f)}function pt(e){return je(e)?Ct(e):e}function Ye(e,n,u){let f=e[n];f&&u(f)}function me(e){return("arg"in e?e.arg.fixedCacheKey:e.fixedCacheKey)??e.requestId}function Lt(e,n,u){let f=e[me(n)];f&&u(f)}var Je={};function _t({reducerPath:e,queryThunk:n,mutationThunk:u,serializeQueryArgs:f,context:{endpointDefinitions:y,apiUid:A,extractRehydrationInfo:g,hasRehydrationInfo:B},assertTagType:k,config:S}){let x=ee(`${e}/resetApiState`);function T(p,a,t,r){p[a.queryCacheKey]??={status:j,endpointName:a.endpointName},Ye(p,a.queryCacheKey,o=>{o.status=Ne,o.requestId=t&&o.requestId?o.requestId:r.requestId,a.originalArgs!==void 0&&(o.originalArgs=a.originalArgs),o.startedTimeStamp=r.startedTimeStamp;let l=y[r.arg.endpointName];fe(l)&&"direction"in a&&(o.direction=a.direction)})}function h(p,a,t,r){Ye(p,a.arg.queryCacheKey,o=>{if(o.requestId!==a.requestId&&!r)return;let{merge:l}=y[a.arg.endpointName];if(o.status=Te,l)if(o.data!==void 0){let{fulfilledTimeStamp:C,arg:w,baseQueryMeta:O,requestId:F}=a,P=Ie(o.data,v=>l(v,t,{arg:w.originalArgs,baseQueryMeta:O,fulfilledTimeStamp:C,requestId:F}));o.data=P}else o.data=t;else o.data=y[a.arg.endpointName].structuralSharing??!0?_e(je(o.data)?Ft(o.data):o.data,t):t;delete o.error,o.fulfilledTimeStamp=a.fulfilledTimeStamp})}let E=pe({name:`${e}/queries`,initialState:Je,reducers:{removeQueryResult:{reducer(p,{payload:{queryCacheKey:a}}){delete p[a]},prepare:Se()},cacheEntriesUpserted:{reducer(p,a){for(let t of a.payload){let{queryDescription:r,value:o}=t;T(p,r,!0,{arg:r,requestId:a.meta.requestId,startedTimeStamp:a.meta.timestamp}),h(p,{arg:r,requestId:a.meta.requestId,fulfilledTimeStamp:a.meta.timestamp,baseQueryMeta:{}},o,!0)}},prepare:p=>({payload:p.map(r=>{let{endpointName:o,arg:l,value:C}=r,w=y[o];return{queryDescription:{type:te,endpointName:o,originalArgs:r.arg,queryCacheKey:f({queryArgs:l,endpointDefinition:w,endpointName:o})},value:C}}),meta:{[Ke]:!0,requestId:Le(),timestamp:Date.now()}})},queryResultPatched:{reducer(p,{payload:{queryCacheKey:a,patches:t}}){Ye(p,a,r=>{r.data=ut(r.data,t.concat())})},prepare:Se()}},extraReducers(p){p.addCase(n.pending,(a,{meta:t,meta:{arg:r}})=>{let o=Ce(r);T(a,r,o,t)}).addCase(n.fulfilled,(a,{meta:t,payload:r})=>{let o=Ce(t.arg);h(a,t,r,o)}).addCase(n.rejected,(a,{meta:{condition:t,arg:r,requestId:o},error:l,payload:C})=>{Ye(a,r.queryCacheKey,w=>{if(!t){if(w.requestId!==o)return;w.status=he,w.error=C??l}})}).addMatcher(B,(a,t)=>{let{queries:r}=g(t);for(let[o,l]of Object.entries(r))(l?.status===Te||l?.status===he)&&(a[o]=l)})}}),M=pe({name:`${e}/mutations`,initialState:Je,reducers:{removeMutationResult:{reducer(p,{payload:a}){let t=me(a);t in p&&delete p[t]},prepare:Se()}},extraReducers(p){p.addCase(u.pending,(a,{meta:t,meta:{requestId:r,arg:o,startedTimeStamp:l}})=>{o.track&&(a[me(t)]={requestId:r,status:Ne,endpointName:o.endpointName,startedTimeStamp:l})}).addCase(u.fulfilled,(a,{payload:t,meta:r})=>{r.arg.track&&Lt(a,r,o=>{o.requestId===r.requestId&&(o.status=Te,o.data=t,o.fulfilledTimeStamp=r.fulfilledTimeStamp)})}).addCase(u.rejected,(a,{payload:t,error:r,meta:o})=>{o.arg.track&&Lt(a,o,l=>{l.requestId===o.requestId&&(l.status=he,l.error=t??r)})}).addMatcher(B,(a,t)=>{let{mutations:r}=g(t);for(let[o,l]of Object.entries(r))(l?.status===Te||l?.status===he)&&o!==l?.requestId&&(a[o]=l)})}}),b={tags:{},keys:{}},c=pe({name:`${e}/invalidation`,initialState:b,reducers:{updateProvidedBy:{reducer(p,a){for(let{queryCacheKey:t,providedTags:r}of a.payload){R(p,t);for(let{type:o,id:l}of r){let C=(p.tags[o]??={})[l||"__internal_without_id"]??=[];C.includes(t)||C.push(t)}p.keys[t]=r}},prepare:Se()}},extraReducers(p){p.addCase(E.actions.removeQueryResult,(a,{payload:{queryCacheKey:t}})=>{R(a,t)}).addMatcher(B,(a,t)=>{let{provided:r}=g(t);for(let[o,l]of Object.entries(r.tags??{}))for(let[C,w]of Object.entries(l)){let O=(a.tags[o]??={})[C||"__internal_without_id"]??=[];for(let F of w)O.includes(F)||O.push(F),a.keys[F]=r.keys[F]}}).addMatcher(de($(n),Ae(n)),(a,t)=>{I(a,[t])}).addMatcher(E.actions.cacheEntriesUpserted.match,(a,t)=>{let r=t.payload.map(({queryDescription:o,value:l})=>({type:"UNKNOWN",payload:l,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:o}}));I(a,r)})}});function R(p,a){let t=pt(p.keys[a]??[]);for(let r of t){let o=r.type,l=r.id??"__internal_without_id",C=p.tags[o]?.[l];C&&(p.tags[o][l]=pt(C).filter(w=>w!==a))}delete p.keys[a]}function I(p,a){let t=a.map(r=>{let o=$e(r,"providesTags",y,k),{queryCacheKey:l}=r.meta.arg;return{queryCacheKey:l,providedTags:o}});c.caseReducers.updateProvidedBy(p,c.actions.updateProvidedBy(t))}let s=pe({name:`${e}/subscriptions`,initialState:Je,reducers:{updateSubscriptionOptions(p,a){},unsubscribeQueryResult(p,a){},internal_getRTKQSubscriptions(){}}}),d=pe({name:`${e}/internalSubscriptions`,initialState:Je,reducers:{subscriptionsUpdated:{reducer(p,a){return ut(p,a.payload)},prepare:Se()}}}),i=pe({name:`${e}/config`,initialState:{online:At(),focused:Rt(),middlewareRegistered:!1,...S},reducers:{middlewareRegistered(p,{payload:a}){p.middlewareRegistered=p.middlewareRegistered==="conflict"||A!==a?"conflict":!0}},extraReducers:p=>{p.addCase(oe,a=>{a.online=!0}).addCase(De,a=>{a.online=!1}).addCase(ae,a=>{a.focused=!0}).addCase(xe,a=>{a.focused=!1}).addMatcher(B,a=>({...a}))}}),Q=gt({queries:E.reducer,mutations:M.reducer,provided:c.reducer,subscriptions:d.reducer,config:i.reducer}),D=(p,a)=>Q(x.match(a)?void 0:p,a),m={...i.actions,...E.actions,...s.actions,...d.actions,...M.actions,...c.actions,resetApiState:x};return{reducer:D,actions:m}}var Ge=Symbol.for("RTKQ/skipToken"),jt={status:j},Ht=Ie(jt,()=>{}),Vt=Ie(jt,()=>{});function zt({serializeQueryArgs:e,reducerPath:n,createSelector:u}){let f=s=>Ht,y=s=>Vt;return{buildQuerySelector:h,buildInfiniteQuerySelector:E,buildMutationSelector:M,selectInvalidatedBy:b,selectCachedArgsForQuery:c,selectApiState:g,selectQueries:B,selectMutations:S,selectQueryEntry:k,selectConfig:x};function A(s){return{...s,...et(s.status)}}function g(s){return s[n]}function B(s){return g(s)?.queries}function k(s,d){return B(s)?.[d]}function S(s){return g(s)?.mutations}function x(s){return g(s)?.config}function T(s,d,i){return Q=>{if(Q===Ge)return u(f,i);let D=e({queryArgs:Q,endpointDefinition:d,endpointName:s});return u(p=>k(p,D)??Ht,i)}}function h(s,d){return T(s,d,A)}function E(s,d){let{infiniteQueryOptions:i}=d;function Q(D){let m={...D,...et(D.status)},{isLoading:p,isError:a,direction:t}=m,r=t==="forward",o=t==="backward";return{...m,hasNextPage:R(i,m.data,m.originalArgs),hasPreviousPage:I(i,m.data,m.originalArgs),isFetchingNextPage:p&&r,isFetchingPreviousPage:p&&o,isFetchNextPageError:a&&r,isFetchPreviousPageError:a&&o}}return T(s,d,Q)}function M(){return s=>{let d;return typeof s=="object"?d=me(s)??Ge:d=s,u(d===Ge?y:D=>g(D)?.mutations?.[d]??Vt,A)}}function b(s,d){let i=s[n],Q=new Set,D=Be(d,ke,st);for(let m of D){let p=i.provided.tags[m.type];if(!p)continue;let a=(m.id!==void 0?p[m.id]:Object.values(p).flat())??[];for(let t of a)Q.add(t)}return Array.from(Q.values()).flatMap(m=>{let p=i.queries[m];return p?{queryCacheKey:m,endpointName:p.endpointName,originalArgs:p.originalArgs}:[]})}function c(s,d){return Be(Object.values(B(s)),i=>i?.endpointName===d&&i.status!==j,i=>i.originalArgs)}function R(s,d,i){return d?We(s,d,i)!=null:!1}function I(s,d,i){return!d||!s.getPreviousPageParam?!1:yt(s,d,i)!=null}}import{formatProdErrorMessage as xn}from"@reduxjs/toolkit";var Wt=WeakMap?new WeakMap:void 0,Ze=({endpointName:e,queryArgs:n})=>{let u="",f=Wt?.get(n);if(typeof f=="string")u=f;else{let y=JSON.stringify(n,(A,g)=>(g=typeof g=="bigint"?{$bigint:g.toString()}:g,g=ie(g)?Object.keys(g).sort().reduce((B,k)=>(B[k]=g[k],B),{}):g,g));ie(n)&&Wt?.set(n,y),u=y}return`${e}(${u})`};import{weakMapMemoize as $t}from"reselect";function dt(...e){return function(u){let f=$t(S=>u.extractRehydrationInfo?.(S,{reducerPath:u.reducerPath??"api"})),y={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...u,extractRehydrationInfo:f,serializeQueryArgs(S){let x=Ze;if("serializeQueryArgs"in S.endpointDefinition){let T=S.endpointDefinition.serializeQueryArgs;x=h=>{let E=T(h);return typeof E=="string"?E:Ze({...h,queryArgs:E})}}else u.serializeQueryArgs&&(x=u.serializeQueryArgs);return x(S)},tagTypes:[...u.tagTypes||[]]},A={endpointDefinitions:{},batch(S){S()},apiUid:Le(),extractRehydrationInfo:f,hasRehydrationInfo:$t(S=>f(S)!=null)},g={injectEndpoints:k,enhanceEndpoints({addTagTypes:S,endpoints:x}){if(S)for(let T of S)y.tagTypes.includes(T)||y.tagTypes.push(T);if(x)for(let[T,h]of Object.entries(x))typeof h=="function"?h(Y(A,T)):Object.assign(Y(A,T)||{},h);return g}},B=e.map(S=>S.init(g,y,A));function k(S){let x=S.endpoints({query:T=>({...T,type:te}),mutation:T=>({...T,type:at}),infiniteQuery:T=>({...T,type:ot})});for(let[T,h]of Object.entries(x)){if(S.overrideExisting!==!0&&T in A.endpointDefinitions){if(S.overrideExisting==="throw")throw new Error(xn(39));continue}A.endpointDefinitions[T]=h;for(let E of B)E.injectEndpoint(T,h)}return g}return g.injectEndpoints({endpoints:u.endpoints})}}import{formatProdErrorMessage as Dn}from"@reduxjs/toolkit";var En=Symbol();function bn(){return function(){throw new Error(Dn(33))}}function Z(e,...n){return Object.assign(e,...n)}var Yt=({api:e,queryThunk:n,internalState:u,mwApi:f})=>{let y=`${e.reducerPath}/subscriptions`,A=null,g=null,{updateSubscriptionOptions:B,unsubscribeQueryResult:k}=e.internalActions,S=(b,c)=>{if(B.match(c)){let{queryCacheKey:I,requestId:s,options:d}=c.payload,i=b.get(I);return i?.has(s)&&i.set(s,d),!0}if(k.match(c)){let{queryCacheKey:I,requestId:s}=c.payload,d=b.get(I);return d&&d.delete(s),!0}if(e.internalActions.removeQueryResult.match(c))return b.delete(c.payload.queryCacheKey),!0;if(n.pending.match(c)){let{meta:{arg:I,requestId:s}}=c,d=ce(b,I.queryCacheKey,Me);return I.subscribe&&d.set(s,I.subscriptionOptions??d.get(s)??{}),!0}let R=!1;if(n.rejected.match(c)){let{meta:{condition:I,arg:s,requestId:d}}=c;if(I&&s.subscribe){let i=ce(b,s.queryCacheKey,Me);i.set(d,s.subscriptionOptions??i.get(d)??{}),R=!0}}return R},x=()=>u.currentSubscriptions,E={getSubscriptions:x,getSubscriptionCount:b=>x().get(b)?.size??0,isRequestSubscribed:(b,c)=>!!x()?.get(b)?.get(c)};function M(b){return JSON.parse(JSON.stringify(Object.fromEntries([...b].map(([c,R])=>[c,Object.fromEntries(R)]))))}return(b,c)=>{if(A||(A=M(u.currentSubscriptions)),e.util.resetApiState.match(b))return A={},u.currentSubscriptions.clear(),g=null,[!0,!1];if(e.internalActions.internal_getRTKQSubscriptions.match(b))return[!1,E];let R=S(u.currentSubscriptions,b),I=!0;if(R){g||(g=setTimeout(()=>{let i=M(u.currentSubscriptions),[,Q]=ze(A,()=>i);c.next(e.internalActions.subscriptionsUpdated(Q)),A=i,g=null},500));let s=typeof b.type=="string"&&!!b.type.startsWith(y),d=n.rejected.match(b)&&b.meta.condition&&!!b.meta.arg.subscribe;I=!s&&!d}return[I,!1]}};var Pn=2147483647/1e3-1,Jt=({reducerPath:e,api:n,queryThunk:u,context:f,internalState:y,selectors:{selectQueryEntry:A,selectConfig:g},getRunningQueryThunk:B,mwApi:k})=>{let{removeQueryResult:S,unsubscribeQueryResult:x,cacheEntriesUpserted:T}=n.internalActions,h=de(x.match,u.fulfilled,u.rejected,T.match);function E(s){let d=y.currentSubscriptions.get(s);return d?d.size>0:!1}let M={};function b(s){for(let d of s.values())d?.abort?.()}let c=(s,d)=>{let i=d.getState(),Q=g(i);if(h(s)){let D;if(T.match(s))D=s.payload.map(m=>m.queryDescription.queryCacheKey);else{let{queryCacheKey:m}=x.match(s)?s.payload:s.meta.arg;D=[m]}R(D,d,Q)}if(n.util.resetApiState.match(s)){for(let[D,m]of Object.entries(M))m&&clearTimeout(m),delete M[D];b(y.runningQueries),b(y.runningMutations)}if(f.hasRehydrationInfo(s)){let{queries:D}=f.extractRehydrationInfo(s);R(Object.keys(D),d,Q)}};function R(s,d,i){let Q=d.getState();for(let D of s){let m=A(Q,D);m?.endpointName&&I(D,m.endpointName,d,i)}}function I(s,d,i,Q){let m=Y(f,d)?.keepUnusedDataFor??Q.keepUnusedDataFor;if(m===1/0)return;let p=Math.max(0,Math.min(m,Pn));if(!E(s)){let a=M[s];a&&clearTimeout(a),M[s]=setTimeout(()=>{if(!E(s)){let t=A(i.getState(),s);t?.endpointName&&i.dispatch(B(t.endpointName,t.originalArgs))?.abort(),i.dispatch(S({queryCacheKey:s}))}delete M[s]},p*1e3)}}return c};var Gt=new Error("Promise never resolved before cacheEntryRemoved."),Zt=({api:e,reducerPath:n,context:u,queryThunk:f,mutationThunk:y,internalState:A,selectors:{selectQueryEntry:g,selectApiState:B}})=>{let k=nt(f),S=nt(y),x=$(f,y),T={},{removeQueryResult:h,removeMutationResult:E,cacheEntriesUpserted:M}=e.internalActions;function b(i,Q,D){let m=T[i];m?.valueResolved&&(m.valueResolved({data:Q,meta:D}),delete m.valueResolved)}function c(i){let Q=T[i];Q&&(delete T[i],Q.cacheEntryRemoved())}function R(i){let{arg:Q,requestId:D}=i.meta,{endpointName:m,originalArgs:p}=Q;return[m,p,D]}let I=(i,Q,D)=>{let m=s(i);function p(a,t,r,o){let l=g(D,t),C=g(Q.getState(),t);!l&&C&&d(a,o,t,Q,r)}if(f.pending.match(i)){let[a,t,r]=R(i);p(a,m,r,t)}else if(M.match(i))for(let{queryDescription:a,value:t}of i.payload){let{endpointName:r,originalArgs:o,queryCacheKey:l}=a;p(r,l,i.meta.requestId,o),b(l,t,{})}else if(y.pending.match(i)){if(Q.getState()[n].mutations[m]){let[t,r,o]=R(i);d(t,r,m,Q,o)}}else if(x(i))b(m,i.payload,i.meta.baseQueryMeta);else if(h.match(i)||E.match(i))c(m);else if(e.util.resetApiState.match(i))for(let a of Object.keys(T))c(a)};function s(i){return k(i)?i.meta.arg.queryCacheKey:S(i)?i.meta.arg.fixedCacheKey??i.meta.requestId:h.match(i)?i.payload.queryCacheKey:E.match(i)?me(i.payload):""}function d(i,Q,D,m,p){let a=Y(u,i),t=a?.onCacheEntryAdded;if(!t)return;let r={},o=new Promise(P=>{r.cacheEntryRemoved=P}),l=Promise.race([new Promise(P=>{r.valueResolved=P}),o.then(()=>{throw Gt})]);l.catch(()=>{}),T[D]=r;let C=e.endpoints[i].select(Ee(a)?Q:D),w=m.dispatch((P,v,L)=>L),O={...m,getCacheEntry:()=>C(m.getState()),requestId:p,extra:w,updateCachedData:Ee(a)?P=>m.dispatch(e.util.updateQueryData(i,Q,P)):void 0,cacheDataLoaded:l,cacheEntryRemoved:o},F=t(Q,O);Promise.resolve(F).catch(P=>{if(P!==Gt)throw P})}return I};var Xt=({api:e,context:{apiUid:n},reducerPath:u})=>(f,y)=>{e.util.resetApiState.match(f)&&y.dispatch(e.internalActions.middlewareRegistered(n))};var en=({reducerPath:e,context:n,context:{endpointDefinitions:u},mutationThunk:f,queryThunk:y,api:A,assertTagType:g,refetchQuery:B,internalState:k})=>{let{removeQueryResult:S}=A.internalActions,x=de($(f),Ae(f)),T=de($(y,f),Re(y,f)),h=[],E=0,M=(R,I)=>{(y.pending.match(R)||f.pending.match(R))&&E++,T(R)&&(E=Math.max(0,E-1)),x(R)?c($e(R,"invalidatesTags",u,g),I):T(R)?c([],I):A.util.invalidateTags.match(R)&&c(we(R.payload,void 0,void 0,void 0,void 0,g),I)};function b(){return E>0}function c(R,I){let s=I.getState(),d=s[e];if(h.push(...R),d.config.invalidationBehavior==="delayed"&&b())return;let i=h;if(h=[],i.length===0)return;let Q=A.util.selectInvalidatedBy(s,i);n.batch(()=>{let D=Array.from(Q.values());for(let{queryCacheKey:m}of D){let p=d.queries[m],a=ce(k.currentSubscriptions,m,Me);p&&(a.size===0?I.dispatch(S({queryCacheKey:m})):p.status!==j&&I.dispatch(B(p)))}})}return M};var tn=({reducerPath:e,queryThunk:n,api:u,refetchQuery:f,internalState:y})=>{let{currentPolls:A,currentSubscriptions:g}=y,B=new Set,k=null,S=(c,R)=>{(u.internalActions.updateSubscriptionOptions.match(c)||u.internalActions.unsubscribeQueryResult.match(c))&&x(c.payload.queryCacheKey,R),(n.pending.match(c)||n.rejected.match(c)&&c.meta.condition)&&x(c.meta.arg.queryCacheKey,R),(n.fulfilled.match(c)||n.rejected.match(c)&&!c.meta.condition)&&T(c.meta.arg,R),u.util.resetApiState.match(c)&&(M(),k&&(clearTimeout(k),k=null),B.clear())};function x(c,R){B.add(c),k||(k=setTimeout(()=>{for(let I of B)h({queryCacheKey:I},R);B.clear(),k=null},0))}function T({queryCacheKey:c},R){let I=R.getState()[e],s=I.queries[c],d=g.get(c);if(!s||s.status===j)return;let{lowestPollingInterval:i,skipPollingIfUnfocused:Q}=b(d);if(!Number.isFinite(i))return;let D=A.get(c);D?.timeout&&(clearTimeout(D.timeout),D.timeout=void 0);let m=Date.now()+i;A.set(c,{nextPollTimestamp:m,pollingInterval:i,timeout:setTimeout(()=>{(I.config.focused||!Q)&&R.dispatch(f(s)),T({queryCacheKey:c},R)},i)})}function h({queryCacheKey:c},R){let s=R.getState()[e].queries[c],d=g.get(c);if(!s||s.status===j)return;let{lowestPollingInterval:i}=b(d);if(!Number.isFinite(i)){E(c);return}let Q=A.get(c),D=Date.now()+i;(!Q||D<Q.nextPollTimestamp)&&T({queryCacheKey:c},R)}function E(c){let R=A.get(c);R?.timeout&&clearTimeout(R.timeout),A.delete(c)}function M(){for(let c of A.keys())E(c)}function b(c=new Map){let R=!1,I=Number.POSITIVE_INFINITY;for(let s of c.values())s.pollingInterval&&(I=Math.min(s.pollingInterval,I),R=s.skipPollingIfUnfocused||R);return{lowestPollingInterval:I,skipPollingIfUnfocused:R}}return S};var nn=({api:e,context:n,queryThunk:u,mutationThunk:f})=>{let y=qe(u,f),A=Re(u,f),g=$(u,f),B={};return(S,x)=>{if(y(S)){let{requestId:T,arg:{endpointName:h,originalArgs:E}}=S.meta,M=Y(n,h),b=M?.onQueryStarted;if(b){let c={},R=new Promise((i,Q)=>{c.resolve=i,c.reject=Q});R.catch(()=>{}),B[T]=c;let I=e.endpoints[h].select(Ee(M)?E:T),s=x.dispatch((i,Q,D)=>D),d={...x,getCacheEntry:()=>I(x.getState()),requestId:T,extra:s,updateCachedData:Ee(M)?i=>x.dispatch(e.util.updateQueryData(h,E,i)):void 0,queryFulfilled:R};b(E,d)}}else if(g(S)){let{requestId:T,baseQueryMeta:h}=S.meta;B[T]?.resolve({data:S.payload,meta:h}),delete B[T]}else if(A(S)){let{requestId:T,rejectedWithValue:h,baseQueryMeta:E}=S.meta;B[T]?.reject({error:S.payload??S.error,isUnhandledError:!h,meta:E}),delete B[T]}}};var rn=({reducerPath:e,context:n,api:u,refetchQuery:f,internalState:y})=>{let{removeQueryResult:A}=u.internalActions,g=(k,S)=>{ae.match(k)&&B(S,"refetchOnFocus"),oe.match(k)&&B(S,"refetchOnReconnect")};function B(k,S){let x=k.getState()[e],T=x.queries,h=y.currentSubscriptions;n.batch(()=>{for(let E of h.keys()){let M=T[E],b=h.get(E);if(!b||!M)continue;let c=[...b.values()];(c.some(I=>I[S]===!0)||c.every(I=>I[S]===void 0)&&x.config[S])&&(b.size===0?k.dispatch(A({queryCacheKey:E})):M.status!==j&&k.dispatch(f(M)))}})}return g};function an(e){let{reducerPath:n,queryThunk:u,api:f,context:y,getInternalState:A}=e,{apiUid:g}=y,B={invalidateTags:ee(`${n}/invalidateTags`)},k=h=>h.type.startsWith(`${n}/`),S=[Xt,Jt,en,tn,Zt,nn];return{middleware:h=>{let E=!1,M=A(h.dispatch),b={...e,internalState:M,refetchQuery:T,isThisApiSliceAction:k,mwApi:h},c=S.map(s=>s(b)),R=Yt(b),I=rn(b);return s=>d=>{if(!Qt(d))return s(d);E||(E=!0,h.dispatch(f.internalActions.middlewareRegistered(g)));let i={...h,next:s},Q=h.getState(),[D,m]=R(d,i,Q),p;if(D?p=s(d):p=m,h.getState()[n]&&(I(d,i,Q),k(d)||y.hasRehydrationInfo(d)))for(let a of c)a(d,i,Q);return p}},actions:B};function T(h){return e.api.endpoints[h.endpointName].initiate(h.originalArgs,{subscribe:!1,forceRefetch:!0})}}var Xe=Symbol(),ct=({createSelector:e=mt}={})=>({name:Xe,init(n,{baseQuery:u,tagTypes:f,reducerPath:y,serializeQueryArgs:A,keepUnusedDataFor:g,refetchOnMountOrArgChange:B,refetchOnFocus:k,refetchOnReconnect:S,invalidationBehavior:x,onSchemaFailure:T,catchSchemaFailure:h,skipSchemaValidation:E},M){Ot();let b=U=>U;Object.assign(n,{reducerPath:y,endpoints:{},internalActions:{onOnline:oe,onOffline:De,onFocus:ae,onFocusLost:xe},util:{}});let c=zt({serializeQueryArgs:A,reducerPath:y,createSelector:e}),{selectInvalidatedBy:R,selectCachedArgsForQuery:I,buildQuerySelector:s,buildInfiniteQuerySelector:d,buildMutationSelector:i}=c;Z(n.util,{selectInvalidatedBy:R,selectCachedArgsForQuery:I});let{queryThunk:Q,infiniteQueryThunk:D,mutationThunk:m,patchQueryData:p,updateQueryData:a,upsertQueryData:t,prefetch:r,buildMatchThunkActions:o}=Kt({baseQuery:u,reducerPath:y,context:M,api:n,serializeQueryArgs:A,assertTagType:b,selectors:c,onSchemaFailure:T,catchSchemaFailure:h,skipSchemaValidation:E}),{reducer:l,actions:C}=_t({context:M,queryThunk:Q,infiniteQueryThunk:D,mutationThunk:m,serializeQueryArgs:A,reducerPath:y,assertTagType:b,config:{refetchOnFocus:k,refetchOnReconnect:S,refetchOnMountOrArgChange:B,keepUnusedDataFor:g,reducerPath:y,invalidationBehavior:x}});Z(n.util,{patchQueryData:p,updateQueryData:a,upsertQueryData:t,prefetch:r,resetApiState:C.resetApiState,upsertQueryEntries:C.cacheEntriesUpserted}),Z(n.internalActions,C);let w=new WeakMap,O=U=>ce(w,U,()=>({currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map})),{buildInitiateQuery:F,buildInitiateInfiniteQuery:P,buildInitiateMutation:v,getRunningMutationThunk:L,getRunningMutationsThunk:z,getRunningQueriesThunk:J,getRunningQueryThunk:_}=Ut({queryThunk:Q,mutationThunk:m,infiniteQueryThunk:D,api:n,serializeQueryArgs:A,context:M,getInternalState:O});Z(n.util,{getRunningMutationThunk:L,getRunningMutationsThunk:z,getRunningQueryThunk:_,getRunningQueriesThunk:J});let{middleware:V,actions:H}=an({reducerPath:y,context:M,queryThunk:Q,mutationThunk:m,infiniteQueryThunk:D,api:n,assertTagType:b,selectors:c,getRunningQueryThunk:_,getInternalState:O});return Z(n.util,H),Z(n,{reducer:l,middleware:V}),{name:Xe,injectEndpoint(U,q){let K=n,N=K.endpoints[U]??={};le(q)&&Z(N,{name:U,select:s(U,q),initiate:F(U,q)},o(Q,U)),wt(q)&&Z(N,{name:U,select:i(),initiate:v(U)},o(m,U)),fe(q)&&Z(N,{name:U,select:d(U,q),initiate:P(U,q)},o(Q,U))}}}});var In=dt(ct());export{Pe as NamedSchemaError,ft as QueryStatus,En as _NEVER,dt as buildCreateApi,_e as copyWithStructuralSharing,ct as coreModule,Xe as coreModuleName,In as createApi,Ze as defaultSerializeQueryArgs,bn as fakeBaseQuery,ln as fetchBaseQuery,gn as retry,Rn as setupListeners,Ge as skipToken};
-//# sourceMappingURL=rtk-query.browser.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.browser.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/query/core/apiState.ts","../../src/query/core/rtkImports.ts","../../src/query/utils/copyWithStructuralSharing.ts","../../src/query/utils/filterMap.ts","../../src/query/utils/isAbsoluteUrl.ts","../../src/query/utils/isDocumentVisible.ts","../../src/query/utils/isNotNullish.ts","../../src/query/utils/isOnline.ts","../../src/query/utils/joinUrls.ts","../../src/query/utils/getOrInsert.ts","../../src/query/utils/signals.ts","../../src/query/fetchBaseQuery.ts","../../src/query/HandledError.ts","../../src/query/retry.ts","../../src/query/core/setupListeners.ts","../../src/query/endpointDefinitions.ts","../../src/query/utils/immerImports.ts","../../src/query/core/buildInitiate.ts","../../src/tsHelpers.ts","../../src/query/apiTypes.ts","../../src/query/standardSchema.ts","../../src/query/core/buildThunks.ts","../../src/query/utils/getCurrent.ts","../../src/query/core/buildSlice.ts","../../src/query/core/buildSelectors.ts","../../src/query/createApi.ts","../../src/query/defaultSerializeQueryArgs.ts","../../src/query/fakeBaseQuery.ts","../../src/query/tsHelpers.ts","../../src/query/core/buildMiddleware/batchActions.ts","../../src/query/core/buildMiddleware/cacheCollection.ts","../../src/query/core/buildMiddleware/cacheLifecycle.ts","../../src/query/core/buildMiddleware/devMiddleware.ts","../../src/query/core/buildMiddleware/invalidationByTags.ts","../../src/query/core/buildMiddleware/polling.ts","../../src/query/core/buildMiddleware/queryLifecycle.ts","../../src/query/core/buildMiddleware/windowEventHandling.ts","../../src/query/core/buildMiddleware/index.ts","../../src/query/core/module.ts","../../src/query/core/index.ts"],"sourcesContent":["import type { SerializedError } from '@reduxjs/toolkit';\nimport type { BaseQueryError } from '../baseQueryTypes';\nimport type { BaseEndpointDefinition, EndpointDefinitions, FullTagDescription, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFromAnyQuery, QueryDefinition, ResultTypeFrom } from '../endpointDefinitions';\nimport type { Id, WithRequiredProp } from '../tsHelpers';\nexport type QueryCacheKey = string & {\n  _type: 'queryCacheKey';\n};\nexport type QuerySubstateIdentifier = {\n  queryCacheKey: QueryCacheKey;\n};\nexport type MutationSubstateIdentifier = {\n  requestId: string;\n  fixedCacheKey?: string;\n} | {\n  requestId?: string;\n  fixedCacheKey: string;\n};\nexport type RefetchConfigOptions = {\n  refetchOnMountOrArgChange: boolean | number;\n  refetchOnReconnect: boolean;\n  refetchOnFocus: boolean;\n};\nexport type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {\n  /**\n   * The initial page parameter to use for the first page fetch.\n   */\n  initialPageParam: PageParam;\n  /**\n   * This function is required to automatically get the next cursor for infinite queries.\n   * The result will also be used to determine the value of `hasNextPage`.\n   */\n  getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * This function can be set to automatically get the previous cursor for infinite queries.\n   * The result will also be used to determine the value of `hasPreviousPage`.\n   */\n  getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * If specified, only keep this many pages in cache at once.\n   * If additional pages are fetched, older pages in the other\n   * direction will be dropped from the cache.\n   */\n  maxPages?: number;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type InfiniteData<DataType, PageParam> = {\n  pages: Array<DataType>;\n  pageParams: Array<PageParam>;\n};\n\n// NOTE: DO NOT import and use this for runtime comparisons internally,\n// except in the RTKQ React package. Use the string versions just below this.\n// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated\n// constants like \"initialized\":\n// https://github.com/evanw/esbuild/releases/tag/v0.14.7\n// We still have to use this in the React package since we don't publicly export\n// the string constants below.\n/**\n * Strings describing the query state at any given time.\n */\nexport enum QueryStatus {\n  uninitialized = 'uninitialized',\n  pending = 'pending',\n  fulfilled = 'fulfilled',\n  rejected = 'rejected',\n}\n\n// Use these string constants for runtime comparisons internally\nexport const STATUS_UNINITIALIZED = QueryStatus.uninitialized;\nexport const STATUS_PENDING = QueryStatus.pending;\nexport const STATUS_FULFILLED = QueryStatus.fulfilled;\nexport const STATUS_REJECTED = QueryStatus.rejected;\nexport type RequestStatusFlags = {\n  status: QueryStatus.uninitialized;\n  isUninitialized: true;\n  isLoading: false;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.pending;\n  isUninitialized: false;\n  isLoading: true;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.fulfilled;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: true;\n  isError: false;\n} | {\n  status: QueryStatus.rejected;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: false;\n  isError: true;\n};\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\n  return {\n    status,\n    isUninitialized: status === STATUS_UNINITIALIZED,\n    isLoading: status === STATUS_PENDING,\n    isSuccess: status === STATUS_FULFILLED,\n    isError: status === STATUS_REJECTED\n  } as any;\n}\n\n/**\n * @public\n */\nexport type SubscriptionOptions = {\n  /**\n   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\n   */\n  pollingInterval?: number;\n  /**\n   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.\n   *\n   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.\n   *\n   *  Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  skipPollingIfUnfocused?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n};\nexport type SubscribersInternal = Map<string, SubscriptionOptions>;\nexport type Subscribers = {\n  [requestId: string]: SubscriptionOptions;\n};\nexport type QueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never }[keyof Definitions];\nexport type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never }[keyof Definitions];\nexport type MutationKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never }[keyof Definitions];\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {\n  /**\n   * The argument originally passed into the hook or `initiate` action call\n   */\n  originalArgs: QueryArgFromAnyQuery<D>;\n  /**\n   * A unique ID associated with the request\n   */\n  requestId: string;\n  /**\n   * The received data from the query\n   */\n  data?: DataType;\n  /**\n   * The received error if applicable\n   */\n  error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  /**\n   * The name of the endpoint associated with the query\n   */\n  endpointName: string;\n  /**\n   * Time that the latest query started\n   */\n  startedTimeStamp: number;\n  /**\n   * Time that the latest query was fulfilled\n   */\n  fulfilledTimeStamp?: number;\n};\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {\n  error: undefined;\n}) | ({\n  status: QueryStatus.pending;\n} & BaseQuerySubState<D, DataType>) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {\n  status: QueryStatus.uninitialized;\n  originalArgs?: undefined;\n  data?: undefined;\n  error?: undefined;\n  requestId?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n}>;\nexport type InfiniteQueryDirection = 'forward' | 'backward';\nexport type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {\n  direction?: InfiniteQueryDirection;\n} : never;\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {\n  requestId: string;\n  data?: ResultTypeFrom<D>;\n  error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  endpointName: string;\n  startedTimeStamp: number;\n  fulfilledTimeStamp?: number;\n};\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {\n  error: undefined;\n}) | (({\n  status: QueryStatus.pending;\n} & BaseMutationSubState<D>) & {\n  data?: undefined;\n}) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {\n  requestId?: undefined;\n  status: QueryStatus.uninitialized;\n  data?: undefined;\n  error?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n};\nexport type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {\n  queries: QueryState<D>;\n  mutations: MutationState<D>;\n  provided: InvalidationState<E>;\n  subscriptions: SubscriptionState;\n  config: ConfigState<ReducerPath>;\n};\nexport type InvalidationState<TagTypes extends string> = {\n  tags: { [_ in TagTypes]: {\n    [id: string]: Array<QueryCacheKey>;\n    [id: number]: Array<QueryCacheKey>;\n  } };\n  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;\n};\nexport type QueryState<D extends EndpointDefinitions> = {\n  [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;\n};\nexport type SubscriptionInternalState = Map<string, SubscribersInternal>;\nexport type SubscriptionState = {\n  [queryCacheKey: string]: Subscribers | undefined;\n};\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\n  reducerPath: ReducerPath;\n  online: boolean;\n  focused: boolean;\n  middlewareRegistered: boolean | 'conflict';\n} & ModifiableConfigState;\nexport type ModifiableConfigState = {\n  keepUnusedDataFor: number;\n  invalidationBehavior: 'delayed' | 'immediately';\n} & RefetchConfigOptions;\nexport type MutationState<D extends EndpointDefinitions> = {\n  [requestId: string]: MutationSubState<D[string]> | undefined;\n};\nexport type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> };","// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.\n// ESBuild does not de-duplicate imports, so this file is used to ensure that each method\n// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.\n\nexport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from '@reduxjs/toolkit';","import { isPlainObject as _iPO } from '../core/rtkImports';\n\n// remove type guard\nconst isPlainObject: (_: any) => boolean = _iPO;\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\n  if (oldObj === newObj || !(isPlainObject(oldObj) && isPlainObject(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n    return newObj;\n  }\n  const newKeys = Object.keys(newObj);\n  const oldKeys = Object.keys(oldObj);\n  let isSameObject = newKeys.length === oldKeys.length;\n  const mergeObj: any = Array.isArray(newObj) ? [] : {};\n  for (const key of newKeys) {\n    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n  }\n  return isSameObject ? oldObj : mergeObj;\n}","// Preserve type guard predicate behavior when passing to mapper\nexport function filterMap<T, U, S extends T = T>(array: readonly T[], predicate: (item: T, index: number) => item is S, mapper: (item: S, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[] {\n  return array.reduce<(U | U[])[]>((acc, item, i) => {\n    if (predicate(item as any, i)) {\n      acc.push(mapper(item as any, i));\n    }\n    return acc;\n  }, []).flat() as U[];\n}","/**\n * If either :// or // is present consider it to be an absolute url\n *\n * @param url string\n */\n\nexport function isAbsoluteUrl(url: string) {\n  return new RegExp(`(^|:)//`).test(url);\n}","/**\n * Assumes true for a non-browser env, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\n */\nexport function isDocumentVisible(): boolean {\n  // `document` may not exist in non-browser envs (like RN)\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  // Match true for visible, prerender, undefined\n  return document.visibilityState !== 'hidden';\n}","export function isNotNullish<T>(v: T | null | undefined): v is T {\n  return v != null;\n}\nexport function filterNullishValues<T>(map?: Map<any, T>) {\n  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[];\n}","/**\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\n */\nexport function isOnline() {\n  // We set the default config value in the store, so we'd need to check for this in a SSR env\n  return typeof navigator === 'undefined' ? true : navigator.onLine === undefined ? true : navigator.onLine;\n}","import { isAbsoluteUrl } from './isAbsoluteUrl';\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '');\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '');\nexport function joinUrls(base: string | undefined, url: string | undefined): string {\n  if (!base) {\n    return url!;\n  }\n  if (!url) {\n    return base;\n  }\n  if (isAbsoluteUrl(url)) {\n    return url;\n  }\n  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : '';\n  base = withoutTrailingSlash(base);\n  url = withoutLeadingSlash(url);\n  return `${base}${delimiter}${url}`;\n}","// Duplicate some of the utils in `/src/utils` to ensure\n// we don't end up dragging in larger chunks of the RTK core\n// into the RTKQ bundle\n\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport const createNewMap = () => new Map();","// AbortSignal.timeout() is currently baseline 2024\nexport const timeoutSignal = (milliseconds: number) => {\n  const abortController = new AbortController();\n  setTimeout(() => {\n    const message = 'signal timed out';\n    const name = 'TimeoutError';\n    abortController.abort(\n    // some environments (React Native, Node) don't have DOMException\n    typeof DOMException !== 'undefined' ? new DOMException(message, name) : Object.assign(new Error(message), {\n      name\n    }));\n  }, milliseconds);\n  return abortController.signal;\n};\n\n// AbortSignal.any() is currently baseline 2024\nexport const anySignal = (...signals: AbortSignal[]) => {\n  // if any are already aborted, return an already aborted signal\n  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);\n\n  // otherwise, create a new signal that aborts when any of the given signals abort\n  const abortController = new AbortController();\n  for (const signal of signals) {\n    signal.addEventListener('abort', () => abortController.abort(signal.reason), {\n      signal: abortController.signal,\n      once: true\n    });\n  }\n  return abortController.signal;\n};","import { joinUrls } from './utils';\nimport { isPlainObject } from './core/rtkImports';\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes';\nimport type { MaybePromise, Override } from './tsHelpers';\nimport { anySignal, timeoutSignal } from './utils/signals';\nexport type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);\ntype CustomRequestInit = Override<RequestInit, {\n  headers?: Headers | string[][] | Record<string, string | undefined> | undefined;\n}>;\nexport interface FetchArgs extends CustomRequestInit {\n  url: string;\n  params?: Record<string, any>;\n  body?: any;\n  responseHandler?: ResponseHandler;\n  validateStatus?: (response: Response, body: any) => boolean;\n  /**\n   * A number in milliseconds that represents that maximum time a request can take before timing out.\n   */\n  timeout?: number;\n}\n\n/**\n * A mini-wrapper that passes arguments straight through to\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\n */\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args);\nconst defaultValidateStatus = (response: Response) => response.status >= 200 && response.status <= 299;\nconst defaultIsJsonContentType = (headers: Headers) => /*applicat*//ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '');\nexport type FetchBaseQueryError = {\n  /**\n   * * `number`:\n   *   HTTP status code\n   */\n  status: number;\n  data: unknown;\n} | {\n  /**\n   * * `\"FETCH_ERROR\"`:\n   *   An error that occurred during execution of `fetch` or the `fetchFn` callback option\n   **/\n  status: 'FETCH_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"PARSING_ERROR\"`:\n   *   An error happened during parsing.\n   *   Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\n   *   or an error occurred while executing a custom `responseHandler`.\n   **/\n  status: 'PARSING_ERROR';\n  originalStatus: number;\n  data: string;\n  error: string;\n} | {\n  /**\n   * * `\"TIMEOUT_ERROR\"`:\n   *   Request timed out\n   **/\n  status: 'TIMEOUT_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"CUSTOM_ERROR\"`:\n   *   A custom error type that you can return from your `queryFn` where another error might not make sense.\n   **/\n  status: 'CUSTOM_ERROR';\n  data?: unknown;\n  error: string;\n};\nfunction stripUndefined(obj: any) {\n  if (!isPlainObject(obj)) {\n    return obj;\n  }\n  const copy: Record<string, any> = {\n    ...obj\n  };\n  for (const [k, v] of Object.entries(copy)) {\n    if (v === undefined) delete copy[k];\n  }\n  return copy;\n}\n\n// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\nconst isJsonifiable = (body: any) => typeof body === 'object' && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === 'function');\nexport type FetchBaseQueryArgs = {\n  baseUrl?: string;\n  prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {\n    arg: string | FetchArgs;\n    extraOptions: unknown;\n  }) => MaybePromise<Headers | void>;\n  fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;\n  paramsSerializer?: (params: Record<string, any>) => string;\n  /**\n   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\n   * in a predicate function for your given api to get the same automatic stringifying behavior\n   * @example\n   * ```ts\n   * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\n   * ```\n   */\n  isJsonContentType?: (headers: Headers) => boolean;\n  /**\n   * Defaults to `application/json`;\n   */\n  jsonContentType?: string;\n\n  /**\n   * Custom replacer function used when calling `JSON.stringify()`;\n   */\n  jsonReplacer?: (this: any, key: string, value: any) => any;\n} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;\nexport type FetchBaseQueryMeta = {\n  request: Request;\n  response?: Response;\n};\n\n/**\n * This is a very small wrapper around fetch that aims to simplify requests.\n *\n * @example\n * ```ts\n * const baseQuery = fetchBaseQuery({\n *   baseUrl: 'https://api.your-really-great-app.com/v1/',\n *   prepareHeaders: (headers, { getState }) => {\n *     const token = (getState() as RootState).auth.token;\n *     // If we have a token set in state, let's assume that we should be passing it.\n *     if (token) {\n *       headers.set('authorization', `Bearer ${token}`);\n *     }\n *     return headers;\n *   },\n * })\n * ```\n *\n * @param {string} baseUrl\n * The base URL for an API service.\n * Typically in the format of https://example.com/\n *\n * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\n * An optional function that can be used to inject headers on requests.\n * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.\n * Useful for setting authentication or headers that need to be set conditionally.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\n *\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\n * An optional function that can be used to stringify querystring parameters.\n *\n * @param {(headers: Headers) => boolean} isJsonContentType\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\n *\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\n *\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\n *\n * @param {number} timeout\n * A number in milliseconds that represents the maximum time a request can take before timing out.\n */\n\nexport function fetchBaseQuery({\n  baseUrl,\n  prepareHeaders = x => x,\n  fetchFn = defaultFetchFn,\n  paramsSerializer,\n  isJsonContentType = defaultIsJsonContentType,\n  jsonContentType = 'application/json',\n  jsonReplacer,\n  timeout: defaultTimeout,\n  responseHandler: globalResponseHandler,\n  validateStatus: globalValidateStatus,\n  ...baseFetchOptions\n}: FetchBaseQueryArgs = {}): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta> {\n  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\n    console.warn('Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.');\n  }\n  return async (arg, api, extraOptions) => {\n    const {\n      getState,\n      extra,\n      endpoint,\n      forced,\n      type\n    } = api;\n    let meta: FetchBaseQueryMeta | undefined;\n    let {\n      url,\n      headers = new Headers(baseFetchOptions.headers),\n      params = undefined,\n      responseHandler = globalResponseHandler ?? 'json' as const,\n      validateStatus = globalValidateStatus ?? defaultValidateStatus,\n      timeout = defaultTimeout,\n      ...rest\n    } = typeof arg == 'string' ? {\n      url: arg\n    } : arg;\n    let config: RequestInit = {\n      ...baseFetchOptions,\n      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,\n      ...rest\n    };\n    headers = new Headers(stripUndefined(headers));\n    config.headers = (await prepareHeaders(headers, {\n      getState,\n      arg,\n      extra,\n      endpoint,\n      forced,\n      type,\n      extraOptions\n    })) || headers;\n    const bodyIsJsonifiable = isJsonifiable(config.body);\n\n    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically\n    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)\n    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== 'string') {\n      config.headers.delete('content-type');\n    }\n    if (!config.headers.has('content-type') && bodyIsJsonifiable) {\n      config.headers.set('content-type', jsonContentType);\n    }\n    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {\n      config.body = JSON.stringify(config.body, jsonReplacer);\n    }\n\n    // Set Accept header based on responseHandler if not already set\n    if (!config.headers.has('accept')) {\n      if (responseHandler === 'json') {\n        config.headers.set('accept', 'application/json');\n      } else if (responseHandler === 'text') {\n        config.headers.set('accept', 'text/plain, text/html, */*');\n      }\n      // For 'content-type' responseHandler, don't set Accept (let server decide)\n    }\n    if (params) {\n      const divider = ~url.indexOf('?') ? '&' : '?';\n      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n      url += divider + query;\n    }\n    url = joinUrls(baseUrl, url);\n    const request = new Request(url, config);\n    const requestClone = new Request(url, config);\n    meta = {\n      request: requestClone\n    };\n    let response;\n    try {\n      response = await fetchFn(request);\n    } catch (e) {\n      return {\n        error: {\n          status: (e instanceof Error || typeof DOMException !== 'undefined' && e instanceof DOMException) && e.name === 'TimeoutError' ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\n          error: String(e)\n        },\n        meta\n      };\n    }\n    const responseClone = response.clone();\n    meta.response = responseClone;\n    let resultData: any;\n    let responseText: string = '';\n    try {\n      let handleResponseError;\n      await Promise.all([handleResponse(response, responseHandler).then(r => resultData = r, e => handleResponseError = e),\n      // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n      // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n      responseClone.text().then(r => responseText = r, () => {})]);\n      if (handleResponseError) throw handleResponseError;\n    } catch (e) {\n      return {\n        error: {\n          status: 'PARSING_ERROR',\n          originalStatus: response.status,\n          data: responseText,\n          error: String(e)\n        },\n        meta\n      };\n    }\n    return validateStatus(response, resultData) ? {\n      data: resultData,\n      meta\n    } : {\n      error: {\n        status: response.status,\n        data: resultData\n      },\n      meta\n    };\n  };\n  async function handleResponse(response: Response, responseHandler: ResponseHandler) {\n    if (typeof responseHandler === 'function') {\n      return responseHandler(response);\n    }\n    if (responseHandler === 'content-type') {\n      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text';\n    }\n    if (responseHandler === 'json') {\n      const text = await response.text();\n      return text.length ? JSON.parse(text) : null;\n    }\n    return response.text();\n  }\n}","export class HandledError {\n  constructor(public readonly value: any, public readonly meta: any = undefined) {}\n}","import type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta } from './baseQueryTypes';\nimport type { FetchBaseQueryError } from './fetchBaseQuery';\nimport { HandledError } from './HandledError';\n\n/**\n * Exponential backoff based on the attempt number.\n *\n * @remarks\n * 1. 600ms * random(0.4, 1.4)\n * 2. 1200ms * random(0.4, 1.4)\n * 3. 2400ms * random(0.4, 1.4)\n * 4. 4800ms * random(0.4, 1.4)\n * 5. 9600ms * random(0.4, 1.4)\n *\n * @param attempt - Current attempt\n * @param maxRetries - Maximum number of retries\n */\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5, signal?: AbortSignal) {\n  const attempts = Math.min(attempt, maxRetries);\n  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)); // Force a positive int in the case we make this an option\n\n  await new Promise<void>((resolve, reject) => {\n    const timeoutId = setTimeout(() => resolve(), timeout);\n\n    // If signal is provided and gets aborted, clear timeout and reject\n    if (signal) {\n      const abortHandler = () => {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      };\n\n      // Check if already aborted\n      if (signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      } else {\n        signal.addEventListener('abort', abortHandler, {\n          once: true\n        });\n      }\n    }\n  });\n}\ntype RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {\n  attempt: number;\n  baseQueryApi: BaseQueryApi;\n  extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;\n}) => boolean;\nexport type RetryOptions = {\n  /**\n   * Function used to determine delay between retries\n   */\n  backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;\n} & ({\n  /**\n   * How many times the query will be retried (default: 5)\n   */\n  maxRetries?: number;\n  retryCondition?: undefined;\n} | {\n  /**\n   * Callback to determine if a retry should be attempted.\n   * Return `true` for another retry and `false` to quit trying prematurely.\n   */\n  retryCondition?: RetryConditionFunction;\n  maxRetries?: undefined;\n});\nfunction fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never {\n  throw Object.assign(new HandledError({\n    error,\n    meta\n  }), {\n    throwImmediately: true\n  });\n}\n\n/**\n * Checks if the abort signal is aborted and fails immediately if so.\n * Used to exit retry loops cleanly when a request is aborted.\n */\nfunction failIfAborted(signal: AbortSignal): void {\n  if (signal.aborted) {\n    fail({\n      status: 'CUSTOM_ERROR',\n      error: 'Aborted'\n    });\n  }\n}\nconst EMPTY_OPTIONS = {};\nconst retryWithBackoff: BaseQueryEnhancer<unknown, RetryOptions, RetryOptions | void> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n  // We need to figure out `maxRetries` before we define `defaultRetryCondition.\n  // This is probably goofy, but ought to work.\n  // Put our defaults in one array, filter out undefineds, grab the last value.\n  const possibleMaxRetries: number[] = [5, (defaultOptions as any || EMPTY_OPTIONS).maxRetries, (extraOptions as any || EMPTY_OPTIONS).maxRetries].filter(x => x !== undefined);\n  const [maxRetries] = possibleMaxRetries.slice(-1);\n  const defaultRetryCondition: RetryConditionFunction = (_, __, {\n    attempt\n  }) => attempt <= maxRetries;\n  const options: {\n    maxRetries: number;\n    backoff: typeof defaultBackoff;\n    retryCondition: typeof defaultRetryCondition;\n  } = {\n    maxRetries,\n    backoff: defaultBackoff,\n    retryCondition: defaultRetryCondition,\n    ...defaultOptions,\n    ...extraOptions\n  };\n  let retry = 0;\n  while (true) {\n    // Check if aborted before each attempt\n    failIfAborted(api.signal);\n    try {\n      const result = await baseQuery(args, api, extraOptions);\n      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\n      if (result.error) {\n        throw new HandledError(result);\n      }\n      return result;\n    } catch (e: any) {\n      retry++;\n      if (e.throwImmediately) {\n        if (e instanceof HandledError) {\n          return e.value;\n        }\n\n        // We don't know what this is, so we have to rethrow it\n        throw e;\n      }\n      if (e instanceof HandledError) {\n        if (!options.retryCondition(e.value.error as FetchBaseQueryError, args, {\n          attempt: retry,\n          baseQueryApi: api,\n          extraOptions\n        })) {\n          return e.value; // Max retries for expected error\n        }\n      } else {\n        // For unexpected errors, respect maxRetries\n        if (retry > options.maxRetries) {\n          // Return the error as a proper error response instead of throwing\n          return {\n            error: e\n          };\n        }\n      }\n\n      // Check if aborted before backoff\n      failIfAborted(api.signal);\n      try {\n        await options.backoff(retry, options.maxRetries, api.signal);\n      } catch (backoffError) {\n        // If backoff was aborted, exit the retry loop\n        failIfAborted(api.signal);\n        // Otherwise, rethrow the backoff error\n        throw backoffError;\n      }\n    }\n  }\n};\n\n/**\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\n *\n * @example\n *\n * ```ts\n * // codeblock-meta title=\"Retry every request 5 times by default\"\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\n * export const api = createApi({\n *   baseQuery: staggeredBaseQuery,\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => ({ url: 'posts' }),\n *     }),\n *     getPost: build.query<PostsResponse, string>({\n *       query: (id) => ({ url: `post/${id}` }),\n *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\n *     }),\n *   }),\n * });\n *\n * export const { useGetPostsQuery, useGetPostQuery } = api;\n * ```\n */\nexport const retry = /* @__PURE__ */Object.assign(retryWithBackoff, {\n  fail\n});","import type { ThunkDispatch, ActionCreatorWithoutPayload // Workaround for API-Extractor\n} from '@reduxjs/toolkit';\nimport { createAction } from './rtkImports';\nexport const INTERNAL_PREFIX = '__rtkq/';\nconst ONLINE = 'online';\nconst OFFLINE = 'offline';\nconst FOCUS = 'focus';\nconst FOCUSED = 'focused';\nconst VISIBILITYCHANGE = 'visibilitychange';\nexport const onFocus = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${FOCUSED}`);\nexport const onFocusLost = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);\nexport const onOnline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${ONLINE}`);\nexport const onOffline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${OFFLINE}`);\nconst actions = {\n  onFocus,\n  onFocusLost,\n  onOnline,\n  onOffline\n};\nlet initialized = false;\n\n/**\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\n * It requires the dispatch method from your store.\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\n * but you have the option of providing a callback for more granular control.\n *\n * @example\n * ```ts\n * setupListeners(store.dispatch)\n * ```\n *\n * @param dispatch - The dispatch method from your store\n * @param customHandler - An optional callback for more granular control over listener behavior\n * @returns Return value of the handler.\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\n */\nexport function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n}) => () => void) {\n  function defaultHandler() {\n    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map(action => () => dispatch(action()));\n    const handleVisibilityChange = () => {\n      if (window.document.visibilityState === 'visible') {\n        handleFocus();\n      } else {\n        handleFocusLost();\n      }\n    };\n    let unsubscribe = () => {\n      initialized = false;\n    };\n    if (!initialized) {\n      if (typeof window !== 'undefined' && window.addEventListener) {\n        const handlers = {\n          [FOCUS]: handleFocus,\n          [VISIBILITYCHANGE]: handleVisibilityChange,\n          [ONLINE]: handleOnline,\n          [OFFLINE]: handleOffline\n        };\n        function updateListeners(add: boolean) {\n          Object.entries(handlers).forEach(([event, handler]) => {\n            if (add) {\n              window.addEventListener(event, handler, false);\n            } else {\n              window.removeEventListener(event, handler);\n            }\n          });\n        }\n        // Handle focus events\n        updateListeners(true);\n        initialized = true;\n        unsubscribe = () => {\n          updateListeners(false);\n          initialized = false;\n        };\n      }\n    }\n    return unsubscribe;\n  }\n  return customHandler ? customHandler(dispatch, actions) : defaultHandler();\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from 'immer';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AsyncThunkAction, SafePromise, SerializedError, ThunkAction, UnknownAction } from '@reduxjs/toolkit';\nimport type { Dispatch } from 'redux';\nimport { asSafePromise } from '../../tsHelpers';\nimport { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes';\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport { ENDPOINT_QUERY, isQueryDefinition, type EndpointDefinition, type EndpointDefinitions, type InfiniteQueryArgFrom, type InfiniteQueryDefinition, type MutationDefinition, type PageParamFrom, type QueryArgFrom, type QueryDefinition, type ResultTypeFrom } from '../endpointDefinitions';\nimport { filterNullishValues } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQueryDirection, SubscriptionOptions } from './apiState';\nimport type { InfiniteQueryResultSelectorResult, QueryResultSelectorResult } from './buildSelectors';\nimport type { InfiniteQueryThunk, InfiniteQueryThunkArg, MutationThunk, QueryThunk, QueryThunkArg, ThunkApiMetaConfig } from './buildThunks';\nimport type { ApiEndpointQuery } from './module';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nexport type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  initiate: StartQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  initiate: StartInfiniteQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  initiate: StartMutationActionCreator<Definition>;\n};\nexport const forceQueryFnSymbol = Symbol('forceQueryFn');\nexport const isUpsertQuery = (arg: QueryThunkArg) => typeof arg[forceQueryFnSymbol] === 'function';\nexport type StartQueryActionCreatorOptions = {\n  subscribe?: boolean;\n  forceRefetch?: boolean | number;\n  subscriptionOptions?: SubscriptionOptions;\n  [forceQueryFnSymbol]?: () => QueryReturnValue;\n};\ntype RefetchOptions = {\n  refetchCachedPages?: boolean;\n};\nexport type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {\n  direction?: InfiniteQueryDirection;\n  param?: unknown;\n} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;\ntype AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (arg: any, options?: StartQueryActionCreatorOptions) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>;\ntype StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;\nexport type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;\ntype QueryActionCreatorFields = {\n  requestId: string;\n  subscriptionOptions: SubscriptionOptions | undefined;\n  abort(): void;\n  unsubscribe(): void;\n  updateSubscriptionOptions(options: SubscriptionOptions): void;\n  queryCacheKey: string;\n};\ntype AnyActionCreatorResult = SafePromise<any> & QueryActionCreatorFields & {\n  arg: any;\n  unwrap(): Promise<any>;\n  refetch(options?: RefetchOptions): AnyActionCreatorResult;\n};\nexport type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: QueryArgFrom<D>;\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  refetch(): QueryActionCreatorResult<D>;\n};\nexport type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: InfiniteQueryArgFrom<D>;\n  unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;\n  refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;\n};\ntype StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {\n  /**\n   * If this mutation should be tracked in the store.\n   * If you just want to manually trigger this mutation using `dispatch` and don't care about the\n   * result, state & potential errors being held in store, you can set this to false.\n   * (defaults to `true`)\n   */\n  track?: boolean;\n  fixedCacheKey?: string;\n}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;\nexport type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{\n  data: ResultTypeFrom<D>;\n  error?: undefined;\n} | {\n  data?: undefined;\n  error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;\n}> & {\n  /** @internal */\n  arg: {\n    /**\n     * The name of the given endpoint for the mutation\n     */\n    endpointName: string;\n    /**\n     * The original arguments supplied to the mutation call\n     */\n    originalArgs: QueryArgFrom<D>;\n    /**\n     * Whether the mutation is being tracked in the store.\n     */\n    track?: boolean;\n    fixedCacheKey?: string;\n  };\n  /**\n   * A unique string generated for the request sequence\n   */\n  requestId: string;\n\n  /**\n   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\n   * that was fired off from reaching the server, but only to assist in handling the response.\n   *\n   * Calling `abort()` prior to the promise resolving will force it to reach the error state with\n   * the serialized error:\n   * `{ name: 'AbortError', message: 'Aborted' }`\n   *\n   * @example\n   * ```ts\n   * const [updateUser] = useUpdateUserMutation();\n   *\n   * useEffect(() => {\n   *   const promise = updateUser(id);\n   *   promise\n   *     .unwrap()\n   *     .catch((err) => {\n   *       if (err.name === 'AbortError') return;\n   *       // else handle the unexpected error\n   *     })\n   *\n   *   return () => {\n   *     promise.abort();\n   *   }\n   * }, [id, updateUser])\n   * ```\n   */\n  abort(): void;\n  /**\n   * Unwraps a mutation call to provide the raw response/error.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap\"\n   * addPost({ id: 1, name: 'Example' })\n   *   .unwrap()\n   *   .then((payload) => console.log('fulfilled', payload))\n   *   .catch((error) => console.error('rejected', error));\n   * ```\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  /**\n   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\n   The value returned by the hook will reset to `isUninitialized` afterwards.\n   */\n  reset(): void;\n};\nexport function buildInitiate({\n  serializeQueryArgs,\n  queryThunk,\n  infiniteQueryThunk,\n  mutationThunk,\n  api,\n  context,\n  getInternalState\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  api: Api<any, EndpointDefinitions, any, any>;\n  context: ApiContext<EndpointDefinitions>;\n  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState;\n}) {\n  const getRunningQueries = (dispatch: Dispatch) => getInternalState(dispatch)?.runningQueries;\n  const getRunningMutations = (dispatch: Dispatch) => getInternalState(dispatch)?.runningMutations;\n  const {\n    unsubscribeQueryResult,\n    removeMutationResult,\n    updateSubscriptionOptions\n  } = api.internalActions;\n  return {\n    buildInitiateQuery,\n    buildInitiateInfiniteQuery,\n    buildInitiateMutation,\n    getRunningQueryThunk,\n    getRunningMutationThunk,\n    getRunningQueriesThunk,\n    getRunningMutationsThunk\n  };\n  function getRunningQueryThunk(endpointName: string, queryArgs: any) {\n    return (dispatch: Dispatch) => {\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      return getRunningQueries(dispatch)?.get(queryCacheKey) as QueryActionCreatorResult<never> | InfiniteQueryActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningMutationThunk(\n  /**\n   * this is only here to allow TS to infer the result type by input value\n   * we could use it to validate the result, but it's probably not necessary\n   */\n  _endpointName: string, fixedCacheKeyOrRequestId: string) {\n    return (dispatch: Dispatch) => {\n      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as MutationActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningQueriesThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningQueries(dispatch));\n  }\n  function getRunningMutationsThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningMutations(dispatch));\n  }\n  function middlewareWarning(dispatch: Dispatch) {\n    if (process.env.NODE_ENV !== 'production') {\n      if ((middlewareWarning as any).triggered) return;\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      (middlewareWarning as any).triggered = true;\n\n      // The RTKQ middleware should return the internal state object,\n      // but it should _not_ be the action object.\n      if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n        // Otherwise, must not have been added\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n      }\n    }\n  }\n  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any>) {\n    const queryAction: AnyQueryActionCreator<any> = (arg, {\n      subscribe = true,\n      forceRefetch,\n      subscriptionOptions,\n      [forceQueryFnSymbol]: forceQueryFn,\n      ...rest\n    } = {}) => (dispatch, getState) => {\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs: arg,\n        endpointDefinition,\n        endpointName\n      });\n      let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>;\n      const commonThunkArgs = {\n        ...rest,\n        type: ENDPOINT_QUERY as 'query',\n        subscribe,\n        forceRefetch: forceRefetch,\n        subscriptionOptions,\n        endpointName,\n        originalArgs: arg,\n        queryCacheKey,\n        [forceQueryFnSymbol]: forceQueryFn\n      };\n      if (isQueryDefinition(endpointDefinition)) {\n        thunk = queryThunk(commonThunkArgs);\n      } else {\n        const {\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        } = rest as Pick<InfiniteQueryThunkArg<any>, 'direction' | 'initialPageParam' | 'refetchCachedPages'>;\n        thunk = infiniteQueryThunk({\n          ...(commonThunkArgs as InfiniteQueryThunkArg<any>),\n          // Supply these even if undefined. This helps with a field existence\n          // check over in `buildSlice.ts`\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        });\n      }\n      const selector = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg);\n      const thunkResult = dispatch(thunk);\n      const stateAfter = selector(getState());\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort\n      } = thunkResult;\n      const skippedSynchronously = stateAfter.requestId !== requestId;\n      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);\n      const selectFromState = () => selector(getState());\n      const statePromise: AnyActionCreatorResult = Object.assign((forceQueryFn ?\n      // a query has been forced (upsertQueryData)\n      // -> we want to resolve it once data has been written with the data that will be written\n      thunkResult.then(selectFromState) : skippedSynchronously && !runningQuery ?\n      // a query has been skipped due to a condition and we do not have any currently running query\n      // -> we want to resolve it immediately with the current data\n      Promise.resolve(stateAfter) :\n      // query just started or one is already in flight\n      // -> wait for the running query, then resolve with data from after that\n      Promise.all([runningQuery, thunkResult]).then(selectFromState)) as SafePromise<any>, {\n        arg,\n        requestId,\n        subscriptionOptions,\n        queryCacheKey,\n        abort,\n        async unwrap() {\n          const result = await statePromise;\n          if (result.isError) {\n            throw result.error;\n          }\n          return result.data;\n        },\n        refetch: (options?: RefetchOptions) => dispatch(queryAction(arg, {\n          subscribe: false,\n          forceRefetch: true,\n          ...options\n        })),\n        unsubscribe() {\n          if (subscribe) dispatch(unsubscribeQueryResult({\n            queryCacheKey,\n            requestId\n          }));\n        },\n        updateSubscriptionOptions(options: SubscriptionOptions) {\n          statePromise.subscriptionOptions = options;\n          dispatch(updateSubscriptionOptions({\n            endpointName,\n            requestId,\n            queryCacheKey,\n            options\n          }));\n        }\n      });\n      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n        const runningQueries = getRunningQueries(dispatch)!;\n        runningQueries.set(queryCacheKey, statePromise);\n        statePromise.then(() => {\n          runningQueries.delete(queryCacheKey);\n        });\n      }\n      return statePromise;\n    };\n    return queryAction;\n  }\n  function buildInitiateQuery(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return queryAction;\n  }\n  function buildInitiateInfiniteQuery(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return infiniteQueryAction;\n  }\n  function buildInitiateMutation(endpointName: string): StartMutationActionCreator<any> {\n    return (arg, {\n      track = true,\n      fixedCacheKey\n    } = {}) => (dispatch, getState) => {\n      const thunk = mutationThunk({\n        type: 'mutation',\n        endpointName,\n        originalArgs: arg,\n        track,\n        fixedCacheKey\n      });\n      const thunkResult = dispatch(thunk);\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort,\n        unwrap\n      } = thunkResult;\n      const returnValuePromise = asSafePromise(thunkResult.unwrap().then(data => ({\n        data\n      })), error => ({\n        error\n      }));\n      const reset = () => {\n        dispatch(removeMutationResult({\n          requestId,\n          fixedCacheKey\n        }));\n      };\n      const ret = Object.assign(returnValuePromise, {\n        arg: thunkResult.arg,\n        requestId,\n        abort,\n        unwrap,\n        reset\n      });\n      const runningMutations = getRunningMutations(dispatch)!;\n      runningMutations.set(requestId, ret);\n      ret.then(() => {\n        runningMutations.delete(requestId);\n      });\n      if (fixedCacheKey) {\n        runningMutations.set(fixedCacheKey, ret);\n        ret.then(() => {\n          if (runningMutations.get(fixedCacheKey) === ret) {\n            runningMutations.delete(fixedCacheKey);\n          }\n        });\n      }\n      return ret;\n    };\n  }\n}","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import type { UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn } from './baseQueryTypes';\nimport type { CombinedState, CoreModule, QueryKeys } from './core';\nimport type { ApiModules } from './core/module';\nimport type { CreateApiOptions } from './createApi';\nimport type { EndpointBuilder, EndpointDefinition, EndpointDefinitions, UpdateDefinitions } from './endpointDefinitions';\nimport type { NoInfer, UnionToIntersection, WithRequiredProp } from './tsHelpers';\nexport type ModuleName = keyof ApiModules<any, any, any, any>;\nexport type Module<Name extends ModuleName> = {\n  name: Name;\n  init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {\n    injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;\n  };\n};\nexport interface ApiContext<Definitions extends EndpointDefinitions> {\n  apiUid: string;\n  endpointDefinitions: Definitions;\n  batch(cb: () => void): void;\n  extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;\n  hasRehydrationInfo: (action: UnknownAction) => boolean;\n}\nexport const getEndpointDefinition = <Definitions extends EndpointDefinitions, EndpointName extends keyof Definitions>(context: ApiContext<Definitions>, endpointName: EndpointName) => context.endpointDefinitions[endpointName];\nexport type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {\n  /**\n   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.\n   */\n  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {\n    endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;\n    /**\n     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.\n     *\n     * If set to `true`, will override existing endpoints with the new definition.\n     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.\n     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.\n     */\n    overrideExisting?: boolean | 'throw';\n  }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;\n  /**\n   *A function to enhance a generated API with additional information. Useful with code-generation.\n   */\n  enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {\n    addTagTypes?: readonly NewTagTypes[];\n    endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? { [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void) } : never;\n  }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;\n};","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { SchemaError } from '@standard-schema/utils';\nimport type { SchemaType } from './endpointDefinitions';\nexport class NamedSchemaError extends SchemaError {\n  constructor(issues: readonly StandardSchemaV1.Issue[], public readonly value: any, public readonly schemaName: `${SchemaType}Schema`, public readonly _bqMeta: any) {\n    super(issues);\n  }\n}\nexport const shouldSkip = (skipSchemaValidation: boolean | SchemaType[] | undefined, schemaName: SchemaType) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;\nexport async function parseWithSchema<Schema extends StandardSchemaV1>(schema: Schema, data: unknown, schemaName: `${SchemaType}Schema`, bqMeta: any): Promise<StandardSchemaV1.InferOutput<Schema>> {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);\n  }\n  return result.value;\n}","import type { AsyncThunk, AsyncThunkPayloadCreator, Draft, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Patch } from 'immer';\nimport { isDraftable, produceWithPatches } from '../utils/immerImports';\nimport type { Api, ApiContext } from '../apiTypes';\nimport type { BaseQueryError, BaseQueryFn, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryCombinedArg, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFrom, QueryDefinition, ResultDescription, ResultTypeFrom, SchemaFailureConverter, SchemaFailureHandler, SchemaFailureInfo, SchemaType } from '../endpointDefinitions';\nimport { calculateProvidedBy, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { HandledError } from '../HandledError';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport type { RootState, QueryKeys, QuerySubstateIdentifier, InfiniteData, InfiniteQueryConfigOptions, QueryCacheKey, InfiniteQueryDirection, InfiniteQueryKeys } from './apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from './apiState';\nimport type { InfiniteQueryActionCreatorResult, QueryActionCreatorResult, StartInfiniteQueryActionCreatorOptions, StartQueryActionCreatorOptions } from './buildInitiate';\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate';\nimport type { AllSelectors } from './buildSelectors';\nimport type { ApiEndpointQuery, PrefetchOptions } from './module';\nimport { createAsyncThunk, isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, SHOULD_AUTOBATCH } from './rtkImports';\nimport { parseWithSchema, NamedSchemaError, shouldSkip } from '../standardSchema';\nexport type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;\nexport type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;\nexport type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;\ntype EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : never;\nexport type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;\nexport type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;\nexport type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;\nexport type Matcher<M> = (value: any) => value is M;\nexport interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {\n  matchPending: Matcher<PendingAction<Thunk, Definition>>;\n  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;\n  matchRejected: Matcher<RejectedAction<Thunk, Definition>>;\n}\nexport type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {\n  type: 'query';\n  originalArgs: unknown;\n  endpointName: string;\n};\nexport type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {\n  type: `query`;\n  originalArgs: unknown;\n  endpointName: string;\n  param: unknown;\n  direction?: InfiniteQueryDirection;\n  refetchCachedPages?: boolean;\n};\ntype MutationThunkArg = {\n  type: 'mutation';\n  originalArgs: unknown;\n  endpointName: string;\n  track?: boolean;\n  fixedCacheKey?: string;\n};\nexport type ThunkResult = unknown;\nexport type ThunkApiMetaConfig = {\n  pendingMeta: {\n    startedTimeStamp: number;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  fulfilledMeta: {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  rejectedMeta: {\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n};\nexport type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;\nexport type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;\nexport type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\n  return baseQueryReturnValue;\n}\nexport type MaybeDrafted<T> = T | Draft<T>;\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;\nexport type UpsertRecipe<T> = (data: MaybeDrafted<T> | undefined) => void | MaybeDrafted<T>;\nexport type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;\nexport type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;\nexport type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;\nexport type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;\nexport type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;\nexport type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;\nexport type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;\n\n/**\n * An object returned from dispatching a `api.util.updateQueryData` call.\n */\nexport type PatchCollection = {\n  /**\n   * An `immer` Patch describing the cache update.\n   */\n  patches: Patch[];\n  /**\n   * An `immer` Patch to revert the cache update.\n   */\n  inversePatches: Patch[];\n  /**\n   * A function that will undo the cache update.\n   */\n  undo: () => void;\n};\ntype TransformCallback = (baseQueryReturnValue: unknown, meta: unknown, arg: unknown) => any;\nexport const addShouldAutoBatch = <T extends Record<string, any>,>(arg: T = {} as T): T & {\n  [SHOULD_AUTOBATCH]: true;\n} => {\n  return {\n    ...arg,\n    [SHOULD_AUTOBATCH]: true\n  };\n};\nexport function buildThunks<BaseQuery extends BaseQueryFn, ReducerPath extends string, Definitions extends EndpointDefinitions>({\n  reducerPath,\n  baseQuery,\n  context: {\n    endpointDefinitions\n  },\n  serializeQueryArgs,\n  api,\n  assertTagType,\n  selectors,\n  onSchemaFailure,\n  catchSchemaFailure: globalCatchSchemaFailure,\n  skipSchemaValidation: globalSkipSchemaValidation\n}: {\n  baseQuery: BaseQuery;\n  reducerPath: ReducerPath;\n  context: ApiContext<Definitions>;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  api: Api<BaseQuery, Definitions, ReducerPath, any>;\n  assertTagType: AssertTagTypes;\n  selectors: AllSelectors;\n  onSchemaFailure: SchemaFailureHandler | undefined;\n  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined;\n  skipSchemaValidation: boolean | SchemaType[] | undefined;\n}) {\n  type State = RootState<any, string, ReducerPath>;\n  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n    const endpointDefinition = endpointDefinitions[endpointName];\n    const queryCacheKey = serializeQueryArgs({\n      queryArgs: arg,\n      endpointDefinition,\n      endpointName\n    });\n    dispatch(api.internalActions.queryResultPatched({\n      queryCacheKey,\n      patches\n    }));\n    if (!updateProvided) {\n      return;\n    }\n    const newValue = api.endpoints[endpointName].select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, undefined, arg, {}, assertTagType);\n    dispatch(api.internalActions.updateProvidedBy([{\n      queryCacheKey,\n      providedTags\n    }]));\n  };\n  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [item, ...items];\n    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n  }\n  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [...items, item];\n    return max && newItems.length > max ? newItems.slice(1) : newItems;\n  }\n  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n    const endpointDefinition = api.endpoints[endpointName];\n    const currentState = endpointDefinition.select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const ret: PatchCollection = {\n      patches: [],\n      inversePatches: [],\n      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n    };\n    if (currentState.status === STATUS_UNINITIALIZED) {\n      return ret;\n    }\n    let newValue;\n    if ('data' in currentState) {\n      if (isDraftable(currentState.data)) {\n        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n        ret.patches.push(...patches);\n        ret.inversePatches.push(...inversePatches);\n        newValue = value;\n      } else {\n        newValue = updateRecipe(currentState.data);\n        ret.patches.push({\n          op: 'replace',\n          path: [],\n          value: newValue\n        });\n        ret.inversePatches.push({\n          op: 'replace',\n          path: [],\n          value: currentState.data\n        });\n      }\n    }\n    if (ret.patches.length === 0) {\n      return ret;\n    }\n    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n    return ret;\n  };\n  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> = (endpointName, arg, value) => dispatch => {\n    type EndpointName = typeof endpointName;\n    const res = dispatch((api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>).initiate(arg, {\n      subscribe: false,\n      forceRefetch: true,\n      [forceQueryFnSymbol]: () => ({\n        data: value\n      })\n    })) as UpsertThunkResult<Definitions, EndpointName>;\n    return res;\n  };\n  const getTransformCallbackForEndpoint = (endpointDefinition: EndpointDefinition<any, any, any, any>, transformFieldName: 'transformResponse' | 'transformErrorResponse'): TransformCallback => {\n    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName]! as TransformCallback : defaultTransformResponse;\n  };\n\n  // The generic async payload function for all of our thunks\n  const executeEndpoint: AsyncThunkPayloadCreator<ThunkResult, QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }> = async (arg, {\n    signal,\n    abort,\n    rejectWithValue,\n    fulfillWithValue,\n    dispatch,\n    getState,\n    extra\n  }) => {\n    const endpointDefinition = endpointDefinitions[arg.endpointName];\n    const {\n      metaSchema,\n      skipSchemaValidation = globalSkipSchemaValidation\n    } = endpointDefinition;\n    const isQuery = arg.type === ENDPOINT_QUERY;\n    try {\n      let transformResponse: TransformCallback = defaultTransformResponse;\n      const baseQueryApi = {\n        signal,\n        abort,\n        dispatch,\n        getState,\n        extra,\n        endpoint: arg.endpointName,\n        type: arg.type,\n        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,\n        queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n      };\n      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined;\n      let finalQueryReturnValue: QueryReturnValue;\n\n      // Infinite query wrapper, which executes the request and returns\n      // the InfiniteData `{pages, pageParams}` structure\n      const fetchPage = async (data: InfiniteData<unknown, unknown>, param: unknown, maxPages: number, previous?: boolean): Promise<QueryReturnValue> => {\n        // This should handle cases where there is no `getPrevPageParam`,\n        // or `getPPP` returned nullish\n        if (param == null && data.pages.length) {\n          return Promise.resolve({\n            data\n          });\n        }\n        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {\n          queryArg: arg.originalArgs,\n          pageParam: param\n        };\n        const pageResponse = await executeRequest(finalQueryArg);\n        const addTo = previous ? addToStart : addToEnd;\n        return {\n          data: {\n            pages: addTo(data.pages, pageResponse.data, maxPages),\n            pageParams: addTo(data.pageParams, param, maxPages)\n          },\n          meta: pageResponse.meta\n        };\n      };\n\n      // Wrapper for executing either `query` or `queryFn`,\n      // and handling any errors\n      async function executeRequest(finalQueryArg: unknown): Promise<QueryReturnValue> {\n        let result: QueryReturnValue;\n        const {\n          extraOptions,\n          argSchema,\n          rawResponseSchema,\n          responseSchema\n        } = endpointDefinition;\n        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {\n          finalQueryArg = await parseWithSchema(argSchema, finalQueryArg, 'argSchema', {} // we don't have a meta yet, so we can't pass it\n          );\n        }\n        if (forceQueryFn) {\n          // upsertQueryData relies on this to pass in the user-provided value\n          result = forceQueryFn();\n        } else if (endpointDefinition.query) {\n          // We should only run `transformResponse` when the endpoint has a `query` method,\n          // and we're not doing an `upsertQueryData`.\n          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformResponse');\n          result = await baseQuery(endpointDefinition.query(finalQueryArg as any), baseQueryApi, extraOptions as any);\n        } else {\n          result = await endpointDefinition.queryFn(finalQueryArg as any, baseQueryApi, extraOptions as any, arg => baseQuery(arg, baseQueryApi, extraOptions as any));\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`';\n          let err: undefined | string;\n          if (!result) {\n            err = `${what} did not return anything.`;\n          } else if (typeof result !== 'object') {\n            err = `${what} did not return an object.`;\n          } else if (result.error && result.data) {\n            err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n          } else if (result.error === undefined && result.data === undefined) {\n            err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n          } else {\n            for (const key of Object.keys(result)) {\n              if (key !== 'error' && key !== 'data' && key !== 'meta') {\n                err = `The object returned by ${what} has the unknown property ${key}.`;\n                break;\n              }\n            }\n          }\n          if (err) {\n            console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n                  ${err}\n                  It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n                  Object returned was:`, result);\n          }\n        }\n        if (result.error) throw new HandledError(result.error, result.meta);\n        let {\n          data\n        } = result;\n        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, 'rawResponse')) {\n          data = await parseWithSchema(rawResponseSchema, result.data, 'rawResponseSchema', result.meta);\n        }\n        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);\n        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {\n          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, 'responseSchema', result.meta);\n        }\n        return {\n          ...result,\n          data: transformedResponse\n        };\n      }\n      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {\n        // This is an infinite query endpoint\n        const {\n          infiniteQueryOptions\n        } = endpointDefinition;\n\n        // Runtime checks should guarantee this is a positive number if provided\n        const {\n          maxPages = Infinity\n        } = infiniteQueryOptions;\n\n        // Priority: per-call override > endpoint config > default (true)\n        const refetchCachedPages = (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;\n        let result: QueryReturnValue;\n\n        // Start by looking up the existing InfiniteData value from state,\n        // falling back to an empty value if it doesn't exist yet\n        const blankData = {\n          pages: [],\n          pageParams: []\n        };\n        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data as InfiniteData<unknown, unknown> | undefined;\n\n        // When the arg changes or the user forces a refetch,\n        // we don't include the `direction` flag. This lets us distinguish\n        // between actually refetching with a forced query, vs just fetching\n        // the next page.\n        const isForcedQueryNeedingRefetch =\n        // arg.forceRefetch\n        isForcedQuery(arg, getState()) && !(arg as InfiniteQueryThunkArg<any>).direction;\n        const existingData = (isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData) as InfiniteData<unknown, unknown>;\n\n        // If the thunk specified a direction and we do have at least one page,\n        // fetch the next or previous page\n        if ('direction' in arg && arg.direction && existingData.pages.length) {\n          const previous = arg.direction === 'backward';\n          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);\n          result = await fetchPage(existingData, param, maxPages, previous);\n        } else {\n          // Otherwise, fetch the first page and then any remaining pages\n\n          const {\n            initialPageParam = infiniteQueryOptions.initialPageParam\n          } = arg as InfiniteQueryThunkArg<any>;\n\n          // If we're doing a refetch, we should start from\n          // the first page we have cached.\n          // Otherwise, we should start from the initialPageParam\n          const cachedPageParams = cachedData?.pageParams ?? [];\n          const firstPageParam = cachedPageParams[0] ?? initialPageParam;\n          const totalPages = cachedPageParams.length;\n\n          // Fetch first page\n          result = await fetchPage(existingData, firstPageParam, maxPages);\n          if (forceQueryFn) {\n            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,\n            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.\n            result = {\n              data: (result.data as InfiniteData<unknown, unknown>).pages[0]\n            } as QueryReturnValue;\n          }\n          if (refetchCachedPages) {\n            // Fetch remaining pages\n            for (let i = 1; i < totalPages; i++) {\n              const param = getNextPageParam(infiniteQueryOptions, result.data as InfiniteData<unknown, unknown>, arg.originalArgs);\n              result = await fetchPage(result.data as InfiniteData<unknown, unknown>, param, maxPages);\n            }\n          }\n        }\n        finalQueryReturnValue = result;\n      } else {\n        // Non-infinite endpoint. Just run the one request.\n        finalQueryReturnValue = await executeRequest(arg.originalArgs);\n      }\n      if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta') && finalQueryReturnValue.meta) {\n        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, 'metaSchema', finalQueryReturnValue.meta);\n      }\n\n      // console.log('Final result: ', transformedData)\n      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({\n        fulfilledTimeStamp: Date.now(),\n        baseQueryMeta: finalQueryReturnValue.meta\n      }));\n    } catch (error) {\n      let caughtError = error;\n      if (caughtError instanceof HandledError) {\n        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformErrorResponse');\n        const {\n          rawErrorResponseSchema,\n          errorResponseSchema\n        } = endpointDefinition;\n        let {\n          value,\n          meta\n        } = caughtError;\n        try {\n          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, 'rawErrorResponse')) {\n            value = await parseWithSchema(rawErrorResponseSchema, value, 'rawErrorResponseSchema', meta);\n          }\n          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {\n            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta);\n          }\n          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);\n          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, 'errorResponse')) {\n            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, 'errorResponseSchema', meta);\n          }\n          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({\n            baseQueryMeta: meta\n          }));\n        } catch (e) {\n          caughtError = e;\n        }\n      }\n      try {\n        if (caughtError instanceof NamedSchemaError) {\n          const info: SchemaFailureInfo = {\n            endpoint: arg.endpointName,\n            arg: arg.originalArgs,\n            type: arg.type,\n            queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n          };\n          endpointDefinition.onSchemaFailure?.(caughtError, info);\n          onSchemaFailure?.(caughtError, info);\n          const {\n            catchSchemaFailure = globalCatchSchemaFailure\n          } = endpointDefinition;\n          if (catchSchemaFailure) {\n            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({\n              baseQueryMeta: caughtError._bqMeta\n            }));\n          }\n        }\n      } catch (e) {\n        caughtError = e;\n      }\n      if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n        console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, caughtError);\n      } else {\n        console.error(caughtError);\n      }\n      throw caughtError;\n    }\n  };\n  function isForcedQuery(arg: QueryThunkArg, state: RootState<any, string, ReducerPath>) {\n    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);\n    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;\n    const fulfilledVal = requestState?.fulfilledTimeStamp;\n    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n    if (refetchVal) {\n      // Return if it's true or compare the dates because it must be a number\n      return refetchVal === true || (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal;\n    }\n    return false;\n  }\n  const createQueryThunk = <ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,>() => {\n    const generatedQueryThunk = createAsyncThunk<ThunkResult, ThunkArgType, ThunkApiMetaConfig & {\n      state: RootState<any, string, ReducerPath>;\n    }>(`${reducerPath}/executeQuery`, executeEndpoint, {\n      getPendingMeta({\n        arg\n      }) {\n        const endpointDefinition = endpointDefinitions[arg.endpointName];\n        return addShouldAutoBatch({\n          startedTimeStamp: Date.now(),\n          ...(isInfiniteQueryDefinition(endpointDefinition) ? {\n            direction: (arg as InfiniteQueryThunkArg<any>).direction\n          } : {})\n        });\n      },\n      condition(queryThunkArg, {\n        getState\n      }) {\n        const state = getState();\n        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);\n        const fulfilledVal = requestState?.fulfilledTimeStamp;\n        const currentArg = queryThunkArg.originalArgs;\n        const previousArg = requestState?.originalArgs;\n        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];\n        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>).direction;\n\n        // Order of these checks matters.\n        // In order for `upsertQueryData` to successfully run while an existing request is in flight,\n        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\n        if (isUpsertQuery(queryThunkArg)) {\n          return true;\n        }\n\n        // Don't retry a request that's currently in-flight\n        if (requestState?.status === 'pending') {\n          return false;\n        }\n\n        // if this is forced, continue\n        if (isForcedQuery(queryThunkArg, state)) {\n          return true;\n        }\n        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n          currentArg,\n          previousArg,\n          endpointState: requestState,\n          state\n        })) {\n          return true;\n        }\n\n        // Pull from the cache unless we explicitly force refetch or qualify based on time\n        if (fulfilledVal && !direction) {\n          // Value is cached and we didn't specify to refresh, skip it.\n          return false;\n        }\n        return true;\n      },\n      dispatchConditionRejection: true\n    });\n    return generatedQueryThunk;\n  };\n  const queryThunk = createQueryThunk<QueryThunkArg>();\n  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>();\n  const mutationThunk = createAsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }>(`${reducerPath}/executeMutation`, executeEndpoint, {\n    getPendingMeta() {\n      return addShouldAutoBatch({\n        startedTimeStamp: Date.now()\n      });\n    }\n  });\n  const hasTheForce = (options: any): options is {\n    force: boolean;\n  } => 'force' in options;\n  const hasMaxAge = (options: any): options is {\n    ifOlderThan: false | number;\n  } => 'ifOlderThan' in options;\n  const prefetch = <EndpointName extends QueryKeys<Definitions>,>(endpointName: EndpointName, arg: any, options: PrefetchOptions = {}): ThunkAction<void, any, any, UnknownAction> => (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\n    const force = hasTheForce(options) && options.force;\n    const maxAge = hasMaxAge(options) && options.ifOlderThan;\n    const queryAction = (force: boolean = true) => {\n      const options: StartQueryActionCreatorOptions = {\n        forceRefetch: force,\n        subscribe: false\n      };\n      return (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(arg, options);\n    };\n    const latestStateValue = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg)(getState());\n    if (force) {\n      dispatch(queryAction());\n    } else if (maxAge) {\n      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n      if (!lastFulfilledTs) {\n        dispatch(queryAction());\n        return;\n      }\n      const shouldRetrigger = (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >= maxAge;\n      if (shouldRetrigger) {\n        dispatch(queryAction());\n      }\n    } else {\n      // If prefetching with no options, just let it try\n      dispatch(queryAction(false));\n    }\n  };\n  function matchesEndpoint(endpointName: string) {\n    return (action: any): action is UnknownAction => action?.meta?.arg?.endpointName === endpointName;\n  }\n  function buildMatchThunkActions<Thunk extends AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig> | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>>(thunk: Thunk, endpointName: string) {\n    return {\n      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n    } as Matchers<Thunk, any>;\n  }\n  return {\n    queryThunk,\n    mutationThunk,\n    infiniteQueryThunk,\n    prefetch,\n    updateQueryData,\n    upsertQueryData,\n    patchQueryData,\n    buildMatchThunkActions\n  };\n}\nexport function getNextPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  const lastIndex = pages.length - 1;\n  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);\n}\nexport function getPreviousPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);\n}\nexport function calculateProvidedByThunk(action: UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>, type: 'providesTags' | 'invalidatesTags', endpointDefinitions: EndpointDefinitions, assertTagType: AssertTagTypes) {\n  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type] as ResultDescription<any, any, any, any, any>, isFulfilled(action) ? action.payload : undefined, isRejectedWithValue(action) ? action.payload : undefined, action.meta.arg.originalArgs, 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined, assertTagType);\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../utils/immerImports';\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, createNextState, prepareAutoBatched, SHOULD_AUTOBATCH, nanoid } from './rtkImports';\nimport type { QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, MutationState, QueryState, InvalidationState, Subscribers, QueryCacheKey, SubscriptionState, ConfigState, InfiniteQuerySubState, InfiniteQueryDirection } from './apiState';\nimport { STATUS_FULFILLED, STATUS_PENDING, QueryStatus, STATUS_REJECTED, STATUS_UNINITIALIZED } from './apiState';\nimport type { AllQueryKeys, QueryArgFromAnyQueryDefinition, DataFromAnyQueryDefinition, InfiniteQueryThunk, MutationThunk, QueryThunk, QueryThunkArg } from './buildThunks';\nimport { calculateProvidedByThunk } from './buildThunks';\nimport { ENDPOINT_QUERY, isInfiniteQueryDefinition, type AssertTagTypes, type EndpointDefinitions, type FullTagDescription, type QueryDefinition } from '../endpointDefinitions';\nimport type { Patch } from 'immer';\nimport { applyPatches, original, isDraft } from '../utils/immerImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport { isDocumentVisible, isOnline, copyWithStructuralSharing } from '../utils';\nimport type { ApiContext } from '../apiTypes';\nimport { isUpsertQuery } from './buildInitiate';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport { getCurrent } from '../utils/getCurrent';\n\n/**\n * A typesafe single entry to be upserted into the cache\n */\nexport type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {\n  endpointName: EndpointName;\n  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;\n  value: DataFromAnyQueryDefinition<Definitions, EndpointName>;\n};\n\n/**\n * The internal version that is not typesafe since we can't carry the generics through `createSlice`\n */\ntype NormalizedQueryUpsertEntryPayload = {\n  endpointName: string;\n  arg: unknown;\n  value: unknown;\n};\nexport type ProcessedQueryUpsertEntry = {\n  queryDescription: QueryThunkArg;\n  value: unknown;\n};\n\n/**\n * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert\n */\nexport type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [...{ [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]> }]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {\n  match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;\n};\nfunction updateQuerySubstateIfExists(state: QueryState<any>, queryCacheKey: QueryCacheKey, update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void) {\n  const substate = state[queryCacheKey];\n  if (substate) {\n    update(substate);\n  }\n}\nexport function getMutationCacheKey(id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n}): string | undefined;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n} | MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string | undefined {\n  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state: MutationState<any>, id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}, update: (substate: MutationSubState<any>) => void) {\n  const substate = state[getMutationCacheKey(id)];\n  if (substate) {\n    update(substate);\n  }\n}\nconst initialState = {} as any;\nexport function buildSlice({\n  reducerPath,\n  queryThunk,\n  mutationThunk,\n  serializeQueryArgs,\n  context: {\n    endpointDefinitions: definitions,\n    apiUid,\n    extractRehydrationInfo,\n    hasRehydrationInfo\n  },\n  assertTagType,\n  config\n}: {\n  reducerPath: string;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  context: ApiContext<EndpointDefinitions>;\n  assertTagType: AssertTagTypes;\n  config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;\n}) {\n  const resetApiState = createAction(`${reducerPath}/resetApiState`);\n  function writePendingCacheEntry(draft: QueryState<any>, arg: QueryThunkArg, upserting: boolean, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n    // requestStatus: 'pending'\n  } & {\n    startedTimeStamp: number;\n  }) {\n    draft[arg.queryCacheKey] ??= {\n      status: STATUS_UNINITIALIZED,\n      endpointName: arg.endpointName\n    };\n    updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n      substate.status = STATUS_PENDING;\n      substate.requestId = upserting && substate.requestId ?\n      // for `upsertQuery` **updates**, keep the current `requestId`\n      substate.requestId :\n      // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n      meta.requestId;\n      if (arg.originalArgs !== undefined) {\n        substate.originalArgs = arg.originalArgs;\n      }\n      substate.startedTimeStamp = meta.startedTimeStamp;\n      const endpointDefinition = definitions[meta.arg.endpointName];\n      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {\n        ;\n        (substate as InfiniteQuerySubState<any>).direction = arg.direction as InfiniteQueryDirection;\n      }\n    });\n  }\n  function writeFulfilledCacheEntry(draft: QueryState<any>, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n  } & {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n  }, payload: unknown, upserting: boolean) {\n    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, substate => {\n      if (substate.requestId !== meta.requestId && !upserting) return;\n      const {\n        merge\n      } = definitions[meta.arg.endpointName] as QueryDefinition<any, any, any, any>;\n      substate.status = STATUS_FULFILLED;\n      if (merge) {\n        if (substate.data !== undefined) {\n          const {\n            fulfilledTimeStamp,\n            arg,\n            baseQueryMeta,\n            requestId\n          } = meta;\n          // There's existing cache data. Let the user merge it in themselves.\n          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\n          // themselves inside of `merge()`. But, they might also want to return a new value.\n          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\n          let newData = createNextState(substate.data, draftSubstateData => {\n            // As usual with Immer, you can mutate _or_ return inside here, but not both\n            return merge(draftSubstateData, payload, {\n              arg: arg.originalArgs,\n              baseQueryMeta,\n              fulfilledTimeStamp,\n              requestId\n            });\n          });\n          substate.data = newData;\n        } else {\n          // Presumably a fresh request. Just cache the response data.\n          substate.data = payload;\n        }\n      } else {\n        // Assign or safely update the cache data.\n        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n      }\n      delete substate.error;\n      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n    });\n  }\n  const querySlice = createSlice({\n    name: `${reducerPath}/queries`,\n    initialState: initialState as QueryState<any>,\n    reducers: {\n      removeQueryResult: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey\n          }\n        }: PayloadAction<QuerySubstateIdentifier>) {\n          delete draft[queryCacheKey];\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier>()\n      },\n      cacheEntriesUpserted: {\n        reducer(draft, action: PayloadAction<ProcessedQueryUpsertEntry[], string, {\n          RTK_autoBatch: boolean;\n          requestId: string;\n          timestamp: number;\n        }>) {\n          for (const entry of action.payload) {\n            const {\n              queryDescription: arg,\n              value\n            } = entry;\n            writePendingCacheEntry(draft, arg, true, {\n              arg,\n              requestId: action.meta.requestId,\n              startedTimeStamp: action.meta.timestamp\n            });\n            writeFulfilledCacheEntry(draft, {\n              arg,\n              requestId: action.meta.requestId,\n              fulfilledTimeStamp: action.meta.timestamp,\n              baseQueryMeta: {}\n            }, value,\n            // We know we're upserting here\n            true);\n          }\n        },\n        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {\n          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(entry => {\n            const {\n              endpointName,\n              arg,\n              value\n            } = entry;\n            const endpointDefinition = definitions[endpointName];\n            const queryDescription: QueryThunkArg = {\n              type: ENDPOINT_QUERY as 'query',\n              endpointName,\n              originalArgs: entry.arg,\n              queryCacheKey: serializeQueryArgs({\n                queryArgs: arg,\n                endpointDefinition,\n                endpointName\n              })\n            };\n            return {\n              queryDescription,\n              value\n            };\n          });\n          const result = {\n            payload: queryDescriptions,\n            meta: {\n              [SHOULD_AUTOBATCH]: true,\n              requestId: nanoid(),\n              timestamp: Date.now()\n            }\n          };\n          return result;\n        }\n      },\n      queryResultPatched: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey,\n            patches\n          }\n        }: PayloadAction<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>) {\n          updateQuerySubstateIfExists(draft, queryCacheKey, substate => {\n            substate.data = applyPatches(substate.data as any, patches.concat());\n          });\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(queryThunk.pending, (draft, {\n        meta,\n        meta: {\n          arg\n        }\n      }) => {\n        const upserting = isUpsertQuery(arg);\n        writePendingCacheEntry(draft, arg, upserting, meta);\n      }).addCase(queryThunk.fulfilled, (draft, {\n        meta,\n        payload\n      }) => {\n        const upserting = isUpsertQuery(meta.arg);\n        writeFulfilledCacheEntry(draft, meta, payload, upserting);\n      }).addCase(queryThunk.rejected, (draft, {\n        meta: {\n          condition,\n          arg,\n          requestId\n        },\n        error,\n        payload\n      }) => {\n        updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n          if (condition) {\n            // request was aborted due to condition (another query already running)\n          } else {\n            // request failed\n            if (substate.requestId !== requestId) return;\n            substate.status = STATUS_REJECTED;\n            substate.error = (payload ?? error) as any;\n          }\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          queries\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(queries)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  const mutationSlice = createSlice({\n    name: `${reducerPath}/mutations`,\n    initialState: initialState as MutationState<any>,\n    reducers: {\n      removeMutationResult: {\n        reducer(draft, {\n          payload\n        }: PayloadAction<MutationSubstateIdentifier>) {\n          const cacheKey = getMutationCacheKey(payload);\n          if (cacheKey in draft) {\n            delete draft[cacheKey];\n          }\n        },\n        prepare: prepareAutoBatched<MutationSubstateIdentifier>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(mutationThunk.pending, (draft, {\n        meta,\n        meta: {\n          requestId,\n          arg,\n          startedTimeStamp\n        }\n      }) => {\n        if (!arg.track) return;\n        draft[getMutationCacheKey(meta)] = {\n          requestId,\n          status: STATUS_PENDING,\n          endpointName: arg.endpointName,\n          startedTimeStamp\n        };\n      }).addCase(mutationThunk.fulfilled, (draft, {\n        payload,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_FULFILLED;\n          substate.data = payload;\n          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n        });\n      }).addCase(mutationThunk.rejected, (draft, {\n        payload,\n        error,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_REJECTED;\n          substate.error = (payload ?? error) as any;\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          mutations\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(mutations)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) &&\n          // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n          key !== entry?.requestId) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  type CalculateProvidedByAction = UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>;\n  const initialInvalidationState: InvalidationState<string> = {\n    tags: {},\n    keys: {}\n  };\n  const invalidationSlice = createSlice({\n    name: `${reducerPath}/invalidation`,\n    initialState: initialInvalidationState,\n    reducers: {\n      updateProvidedBy: {\n        reducer(draft, action: PayloadAction<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>) {\n          for (const {\n            queryCacheKey,\n            providedTags\n          } of action.payload) {\n            removeCacheKeyFromTags(draft, queryCacheKey);\n            for (const {\n              type,\n              id\n            } of providedTags) {\n              const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n            }\n\n            // Remove readonly from the providedTags array\n            draft.keys[queryCacheKey] = providedTags as FullTagDescription<string>[];\n          }\n        },\n        prepare: prepareAutoBatched<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n        payload: {\n          queryCacheKey\n        }\n      }) => {\n        removeCacheKeyFromTags(draft, queryCacheKey);\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          provided\n        } = extractRehydrationInfo(action)!;\n        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {\n          for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n            const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n            for (const queryCacheKey of cacheKeys) {\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];\n            }\n          }\n        }\n      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n        writeProvidedTagsForQueries(draft, [action]);\n      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {\n        const mockActions: CalculateProvidedByAction[] = action.payload.map(({\n          queryDescription,\n          value\n        }) => {\n          return {\n            type: 'UNKNOWN',\n            payload: value,\n            meta: {\n              requestStatus: 'fulfilled',\n              requestId: 'UNKNOWN',\n              arg: queryDescription\n            }\n          };\n        });\n        writeProvidedTagsForQueries(draft, mockActions);\n      });\n    }\n  });\n  function removeCacheKeyFromTags(draft: InvalidationState<any>, queryCacheKey: QueryCacheKey) {\n    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);\n\n    // Delete this cache key from any existing tags that may have provided it\n    for (const tag of existingTags) {\n      const tagType = tag.type;\n      const tagId = tag.id ?? '__internal_without_id';\n      const tagSubscriptions = draft.tags[tagType]?.[tagId];\n      if (tagSubscriptions) {\n        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(qc => qc !== queryCacheKey);\n      }\n    }\n    delete draft.keys[queryCacheKey];\n  }\n  function writeProvidedTagsForQueries(draft: InvalidationState<string>, actions: CalculateProvidedByAction[]) {\n    const providedByEntries = actions.map(action => {\n      const providedTags = calculateProvidedByThunk(action, 'providesTags', definitions, assertTagType);\n      const {\n        queryCacheKey\n      } = action.meta.arg;\n      return {\n        queryCacheKey,\n        providedTags\n      };\n    });\n    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));\n  }\n\n  // Dummy slice to generate actions\n  const subscriptionSlice = createSlice({\n    name: `${reducerPath}/subscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      updateSubscriptionOptions(d, a: PayloadAction<{\n        endpointName: string;\n        requestId: string;\n        options: Subscribers[number];\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      unsubscribeQueryResult(d, a: PayloadAction<{\n        requestId: string;\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      internal_getRTKQSubscriptions() {}\n    }\n  });\n  const internalSubscriptionsSlice = createSlice({\n    name: `${reducerPath}/internalSubscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      subscriptionsUpdated: {\n        reducer(state, action: PayloadAction<Patch[]>) {\n          return applyPatches(state, action.payload);\n        },\n        prepare: prepareAutoBatched<Patch[]>()\n      }\n    }\n  });\n  const configSlice = createSlice({\n    name: `${reducerPath}/config`,\n    initialState: {\n      online: isOnline(),\n      focused: isDocumentVisible(),\n      middlewareRegistered: false,\n      ...config\n    } as ConfigState<string>,\n    reducers: {\n      middlewareRegistered(state, {\n        payload\n      }: PayloadAction<string>) {\n        state.middlewareRegistered = state.middlewareRegistered === 'conflict' || apiUid !== payload ? 'conflict' : true;\n      }\n    },\n    extraReducers: builder => {\n      builder.addCase(onOnline, state => {\n        state.online = true;\n      }).addCase(onOffline, state => {\n        state.online = false;\n      }).addCase(onFocus, state => {\n        state.focused = true;\n      }).addCase(onFocusLost, state => {\n        state.focused = false;\n      })\n      // update the state to be a new object to be picked up as a \"state change\"\n      // by redux-persist's `autoMergeLevel2`\n      .addMatcher(hasRehydrationInfo, draft => ({\n        ...draft\n      }));\n    }\n  });\n  const combinedReducer = combineReducers({\n    queries: querySlice.reducer,\n    mutations: mutationSlice.reducer,\n    provided: invalidationSlice.reducer,\n    subscriptions: internalSubscriptionsSlice.reducer,\n    config: configSlice.reducer\n  });\n  const reducer: typeof combinedReducer = (state, action) => combinedReducer(resetApiState.match(action) ? undefined : state, action);\n  const actions = {\n    ...configSlice.actions,\n    ...querySlice.actions,\n    ...subscriptionSlice.actions,\n    ...internalSubscriptionsSlice.actions,\n    ...mutationSlice.actions,\n    ...invalidationSlice.actions,\n    resetApiState\n  };\n  return {\n    reducer,\n    actions\n  };\n}\nexport type SliceActions = ReturnType<typeof buildSlice>['actions'];","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, ReducerPathFrom, TagDescription, TagTypesFrom } from '../endpointDefinitions';\nimport { expandTagDescription } from '../endpointDefinitions';\nimport { filterMap, isNotNullish } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationSubState, QueryCacheKey, QueryState, QuerySubState, RequestStatusFlags, RootState as _RootState, QueryStatus } from './apiState';\nimport { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState';\nimport { getMutationCacheKey } from './buildSlice';\nimport type { createSelector as _createSelector } from './rtkImports';\nimport { createNextState } from './rtkImports';\nimport { type AllQueryKeys, getNextPageParam, getPreviousPageParam } from './buildThunks';\nexport type SkipToken = typeof skipToken;\n/**\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\n * instead of the query argument to get the same effect as if setting\n * `skip: true` in the query options.\n *\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\n * and TypeScript complains about it because `arg` is not allowed to be passed\n * in as `undefined`, such as\n *\n * ```ts\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\n * useSomeQuery(arg, { skip: !!arg })\n * ```\n *\n * ```ts\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\n * useSomeQuery(arg ?? skipToken)\n * ```\n *\n * If passed directly into a query or mutation selector, that selector will always\n * return an uninitialized state.\n */\nexport const skipToken = /* @__PURE__ */Symbol.for('RTKQ/skipToken');\nexport type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: QueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: InfiniteQueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: MutationResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\ntype QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;\nexport type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;\ntype InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;\nexport type InfiniteQueryResultFlags = {\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n  isFetchNextPageError: boolean;\n  isFetchPreviousPageError: boolean;\n};\nexport type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;\ntype MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {\n  requestId: string | undefined;\n  fixedCacheKey: string | undefined;\n} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;\nexport type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;\nconst initialSubState: QuerySubState<any> = {\n  status: STATUS_UNINITIALIZED\n};\n\n// abuse immer to freeze default states\nconst defaultQuerySubState = /* @__PURE__ */createNextState(initialSubState, () => {});\nconst defaultMutationSubState = /* @__PURE__ */createNextState(initialSubState as MutationSubState<any>, () => {});\nexport type AllSelectors = ReturnType<typeof buildSelectors>;\nexport function buildSelectors<Definitions extends EndpointDefinitions, ReducerPath extends string>({\n  serializeQueryArgs,\n  reducerPath,\n  createSelector\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  reducerPath: ReducerPath;\n  createSelector: typeof _createSelector;\n}) {\n  type RootState = _RootState<Definitions, string, string>;\n  const selectSkippedQuery = (state: RootState) => defaultQuerySubState;\n  const selectSkippedMutation = (state: RootState) => defaultMutationSubState;\n  return {\n    buildQuerySelector,\n    buildInfiniteQuerySelector,\n    buildMutationSelector,\n    selectInvalidatedBy,\n    selectCachedArgsForQuery,\n    selectApiState,\n    selectQueries,\n    selectMutations,\n    selectQueryEntry,\n    selectConfig\n  };\n  function withRequestFlags<T extends {\n    status: QueryStatus;\n  }>(substate: T): T & RequestStatusFlags {\n    return {\n      ...substate,\n      ...getRequestStatusFlags(substate.status)\n    };\n  }\n  function selectApiState(rootState: RootState) {\n    const state = rootState[reducerPath];\n    if (process.env.NODE_ENV !== 'production') {\n      if (!state) {\n        if ((selectApiState as any).triggered) return state;\n        (selectApiState as any).triggered = true;\n        console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n      }\n    }\n    return state;\n  }\n  function selectQueries(rootState: RootState) {\n    return selectApiState(rootState)?.queries;\n  }\n  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {\n    return selectQueries(rootState)?.[cacheKey];\n  }\n  function selectMutations(rootState: RootState) {\n    return selectApiState(rootState)?.mutations;\n  }\n  function selectConfig(rootState: RootState) {\n    return selectApiState(rootState)?.config;\n  }\n  function buildAnyQuerySelector(endpointName: string, endpointDefinition: EndpointDefinition<any, any, any, any>, combiner: <T extends {\n    status: QueryStatus;\n  }>(substate: T) => T & RequestStatusFlags) {\n    return (queryArgs: any) => {\n      // Avoid calling serializeQueryArgs if the arg is skipToken\n      if (queryArgs === skipToken) {\n        return createSelector(selectSkippedQuery, combiner);\n      }\n      const serializedArgs = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      const selectQuerySubstate = (state: RootState) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;\n      return createSelector(selectQuerySubstate, combiner);\n    };\n  }\n  function buildQuerySelector(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags) as QueryResultSelectorFactory<any, RootState>;\n  }\n  function buildInfiniteQuerySelector(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const {\n      infiniteQueryOptions\n    } = endpointDefinition;\n    function withInfiniteQueryResultFlags<T extends {\n      status: QueryStatus;\n    }>(substate: T): T & RequestStatusFlags & InfiniteQueryResultFlags {\n      const stateWithRequestFlags = {\n        ...(substate as InfiniteQuerySubState<any>),\n        ...getRequestStatusFlags(substate.status)\n      };\n      const {\n        isLoading,\n        isError,\n        direction\n      } = stateWithRequestFlags;\n      const isForward = direction === 'forward';\n      const isBackward = direction === 'backward';\n      return {\n        ...stateWithRequestFlags,\n        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        isFetchingNextPage: isLoading && isForward,\n        isFetchingPreviousPage: isLoading && isBackward,\n        isFetchNextPageError: isError && isForward,\n        isFetchPreviousPageError: isError && isBackward\n      };\n    }\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>;\n  }\n  function buildMutationSelector() {\n    return (id => {\n      let mutationId: string | typeof skipToken;\n      if (typeof id === 'object') {\n        mutationId = getMutationCacheKey(id) ?? skipToken;\n      } else {\n        mutationId = id;\n      }\n      const selectMutationSubstate = (state: RootState) => selectApiState(state)?.mutations?.[mutationId as string] ?? defaultMutationSubState;\n      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n      return createSelector(finalSelectMutationSubstate, withRequestFlags);\n    }) as MutationResultSelectorFactory<any, RootState>;\n  }\n  function selectInvalidatedBy(state: RootState, tags: ReadonlyArray<TagDescription<string> | null | undefined>): Array<{\n    endpointName: string;\n    originalArgs: any;\n    queryCacheKey: QueryCacheKey;\n  }> {\n    const apiState = state[reducerPath];\n    const toInvalidate = new Set<QueryCacheKey>();\n    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);\n    for (const tag of finalTags) {\n      const provided = apiState.provided.tags[tag.type];\n      if (!provided) {\n        continue;\n      }\n      let invalidateSubscriptions = (tag.id !== undefined ?\n      // id given: invalidate all queries that provide this type & id\n      provided[tag.id] :\n      // no id: invalidate all queries that provide this type\n      Object.values(provided).flat()) ?? [];\n      for (const invalidate of invalidateSubscriptions) {\n        toInvalidate.add(invalidate);\n      }\n    }\n    return Array.from(toInvalidate.values()).flatMap(queryCacheKey => {\n      const querySubState = apiState.queries[queryCacheKey];\n      return querySubState ? {\n        queryCacheKey,\n        endpointName: querySubState.endpointName!,\n        originalArgs: querySubState.originalArgs\n      } : [];\n    });\n  }\n  function selectCachedArgsForQuery<QueryName extends AllQueryKeys<Definitions>>(state: RootState, queryName: QueryName): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {\n    return filterMap(Object.values(selectQueries(state) as QueryState<any>), (entry): entry is Exclude<QuerySubState<Definitions[QueryName]>, {\n      status: QueryStatus.uninitialized;\n    }> => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, entry => entry.originalArgs);\n  }\n  function getHasNextPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data) return false;\n    return getNextPageParam(options, data, queryArg) != null;\n  }\n  function getHasPreviousPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data || !options.getPreviousPageParam) return false;\n    return getPreviousPageParam(options, data, queryArg) != null;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { getEndpointDefinition, type Api, type ApiContext, type Module, type ModuleName } from './apiTypes';\nimport type { CombinedState } from './core/apiState';\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { EndpointBuilder, EndpointDefinitions, SchemaFailureConverter, SchemaFailureHandler, SchemaType } from './endpointDefinitions';\nimport { DefinitionType, ENDPOINT_INFINITEQUERY, ENDPOINT_MUTATION, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from './endpointDefinitions';\nimport { nanoid } from './core/rtkImports';\nimport type { UnknownAction } from '@reduxjs/toolkit';\nimport type { NoInfer } from './tsHelpers';\nimport { weakMapMemoize } from 'reselect';\nexport interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {\n  /**\n   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   // highlight-start\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  baseQuery: BaseQuery;\n  /**\n   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   tagTypes: ['Post', 'User'],\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  tagTypes?: readonly TagTypes[];\n  /**\n   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"apis.js\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\n   *\n   * const apiOne = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiOne',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   *\n   * const apiTwo = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiTwo',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   * ```\n   */\n  reducerPath?: ReducerPath;\n  /**\n   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\n   */\n  serializeQueryArgs?: SerializeQueryArgs<unknown>;\n  /**\n   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).\n   */\n  endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;\n  /**\n   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"keepUnusedDataFor example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts'\n   *     })\n   *   }),\n   *   // highlight-start\n   *   keepUnusedDataFor: 5\n   *   // highlight-end\n   * })\n   * ```\n   */\n  keepUnusedDataFor?: number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.\n   *\n   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.\n   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.\n   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.\n   *   This ensures that queries are always invalidated correctly and automatically \"batches\" invalidations of concurrent mutations.\n   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.\n   */\n  invalidationBehavior?: 'delayed' | 'immediately';\n  /**\n   * A function that is passed every dispatched action. If this returns something other than `undefined`,\n   * that return value will be used to rehydrate fulfilled & errored queries.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\n   * import type { Action, PayloadAction } from '@reduxjs/toolkit'\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import { HYDRATE } from 'next-redux-wrapper'\n   *\n   * type RootState = any; // normally inferred from state\n   *\n   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {\n   *   return action.type === HYDRATE\n   * }\n   *\n   * export const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   extractRehydrationInfo(action, { reducerPath }): any {\n   *     if (isHydrateAction(action)) {\n   *       return action.payload[reducerPath]\n   *     }\n   *   },\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // omitted\n   *   }),\n   * })\n   * ```\n   */\n  extractRehydrationInfo?: (action: UnknownAction, {\n    reducerPath\n  }: {\n    reducerPath: ReducerPath;\n  }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *     }),\n   *   }),\n   *   onSchemaFailure: (error, info) => {\n   *     console.error(error, info)\n   *   },\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   }),\n   *   catchSchemaFailure: (error, info) => ({\n   *     status: \"CUSTOM_ERROR\",\n   *     error: error.schemaName + \" failed validation\",\n   *     data: error.issues,\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type CreateApi<Modules extends ModuleName> = {\n  /**\n   * Creates a service to use in your application. Contains only the basic redux logic (the core module).\n   *\n   * @link https://redux-toolkit.js.org/rtk-query/api/createApi\n   */\n  <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;\n};\n\n/**\n * Builds a `createApi` method based on the provided `modules`.\n *\n * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api\n *\n * @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\n * @returns A `createApi` method using the provided `modules`.\n */\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']> {\n  return function baseCreateApi(options) {\n    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) => options.extractRehydrationInfo?.(action, {\n      reducerPath: (options.reducerPath ?? 'api') as any\n    }));\n    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\n      reducerPath: 'api',\n      keepUnusedDataFor: 60,\n      refetchOnMountOrArgChange: false,\n      refetchOnFocus: false,\n      refetchOnReconnect: false,\n      invalidationBehavior: 'delayed',\n      ...options,\n      extractRehydrationInfo,\n      serializeQueryArgs(queryArgsApi) {\n        let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\n          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs!;\n          finalSerializeQueryArgs = queryArgsApi => {\n            const initialResult = endpointSQA(queryArgsApi);\n            if (typeof initialResult === 'string') {\n              // If the user function returned a string, use it as-is\n              return initialResult;\n            } else {\n              // Assume they returned an object (such as a subset of the original\n              // query args) or a primitive, and serialize it ourselves\n              return defaultSerializeQueryArgs({\n                ...queryArgsApi,\n                queryArgs: initialResult\n              });\n            }\n          };\n        } else if (options.serializeQueryArgs) {\n          finalSerializeQueryArgs = options.serializeQueryArgs;\n        }\n        return finalSerializeQueryArgs(queryArgsApi);\n      },\n      tagTypes: [...(options.tagTypes || [])]\n    };\n    const context: ApiContext<EndpointDefinitions> = {\n      endpointDefinitions: {},\n      batch(fn) {\n        // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\n        fn();\n      },\n      apiUid: nanoid(),\n      extractRehydrationInfo,\n      hasRehydrationInfo: weakMapMemoize(action => extractRehydrationInfo(action) != null)\n    };\n    const api = {\n      injectEndpoints,\n      enhanceEndpoints({\n        addTagTypes,\n        endpoints\n      }) {\n        if (addTagTypes) {\n          for (const eT of addTagTypes) {\n            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\n              ;\n              (optionsWithDefaults.tagTypes as any[]).push(eT);\n            }\n          }\n        }\n        if (endpoints) {\n          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n            if (typeof partialDefinition === 'function') {\n              partialDefinition(getEndpointDefinition(context, endpointName));\n            } else {\n              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);\n            }\n          }\n        }\n        return api;\n      }\n    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>;\n    const initializedModules = modules.map(m => m.init(api as any, optionsWithDefaults as any, context));\n    function injectEndpoints(inject: Parameters<typeof api.injectEndpoints>[0]) {\n      const evaluatedEndpoints = inject.endpoints({\n        query: x => ({\n          ...x,\n          type: ENDPOINT_QUERY\n        }) as any,\n        mutation: x => ({\n          ...x,\n          type: ENDPOINT_MUTATION\n        }) as any,\n        infiniteQuery: x => ({\n          ...x,\n          type: ENDPOINT_INFINITEQUERY\n        }) as any\n      });\n      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n          if (inject.overrideExisting === 'throw') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          } else if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n            console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          }\n          continue;\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          if (isInfiniteQueryDefinition(definition)) {\n            const {\n              infiniteQueryOptions\n            } = definition;\n            const {\n              maxPages,\n              getPreviousPageParam\n            } = infiniteQueryOptions;\n            if (typeof maxPages === 'number') {\n              if (maxPages < 1) {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);\n              }\n              if (typeof getPreviousPageParam !== 'function') {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);\n              }\n            }\n          }\n        }\n        context.endpointDefinitions[endpointName] = definition;\n        for (const m of initializedModules) {\n          m.injectEndpoint(endpointName, definition);\n        }\n      }\n      return api as any;\n    }\n    return api.injectEndpoints({\n      endpoints: options.endpoints as any\n    });\n  };\n}","import type { QueryCacheKey } from './core/apiState';\nimport type { EndpointDefinition } from './endpointDefinitions';\nimport { isPlainObject } from './core/rtkImports';\nconst cache: WeakMap<any, string> | undefined = WeakMap ? new WeakMap() : undefined;\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\n  endpointName,\n  queryArgs\n}) => {\n  let serialized = '';\n  const cached = cache?.get(queryArgs);\n  if (typeof cached === 'string') {\n    serialized = cached;\n  } else {\n    const stringified = JSON.stringify(queryArgs, (key, value) => {\n      // Handle bigints\n      value = typeof value === 'bigint' ? {\n        $bigint: value.toString()\n      } : value;\n      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\n      value = isPlainObject(value) ? Object.keys(value).sort().reduce<any>((acc, key) => {\n        acc[key] = (value as any)[key];\n        return acc;\n      }, {}) : value;\n      return value;\n    });\n    if (isPlainObject(queryArgs)) {\n      cache?.set(queryArgs, stringified);\n    }\n    serialized = stringified;\n  }\n  return `${endpointName}(${serialized})`;\n};\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\n  queryArgs: QueryArgs;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => ReturnType;\nexport type InternalSerializeQueryArgs = (_: {\n  queryArgs: any;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => QueryCacheKey;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { BaseQueryFn } from './baseQueryTypes';\nexport const _NEVER = /* @__PURE__ */Symbol();\nexport type NEVER = typeof _NEVER;\n\n/**\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\n */\nexport function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}> {\n  return function () {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(33) : 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.');\n  };\n}","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import type { InternalHandlerBuilder, SubscriptionSelectors } from './types';\nimport type { SubscriptionInternalState, SubscriptionState } from '../apiState';\nimport { produceWithPatches } from '../../utils/immerImports';\nimport type { Action } from '@reduxjs/toolkit';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<[actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]> = ({\n  api,\n  queryThunk,\n  internalState,\n  mwApi\n}) => {\n  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n  let previousSubscriptions: SubscriptionState = null as unknown as SubscriptionState;\n  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null;\n  const {\n    updateSubscriptionOptions,\n    unsubscribeQueryResult\n  } = api.internalActions;\n\n  // Actually intentionally mutate the subscriptions state used in the middleware\n  // This is done to speed up perf when loading many components\n  const actuallyMutateSubscriptions = (currentSubscriptions: SubscriptionInternalState, action: Action) => {\n    if (updateSubscriptionOptions.match(action)) {\n      const {\n        queryCacheKey,\n        requestId,\n        options\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub?.has(requestId)) {\n        sub.set(requestId, options);\n      }\n      return true;\n    }\n    if (unsubscribeQueryResult.match(action)) {\n      const {\n        queryCacheKey,\n        requestId\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub) {\n        sub.delete(requestId);\n      }\n      return true;\n    }\n    if (api.internalActions.removeQueryResult.match(action)) {\n      currentSubscriptions.delete(action.payload.queryCacheKey);\n      return true;\n    }\n    if (queryThunk.pending.match(action)) {\n      const {\n        meta: {\n          arg,\n          requestId\n        }\n      } = action;\n      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n      if (arg.subscribe) {\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n      }\n      return true;\n    }\n    let mutated = false;\n    if (queryThunk.rejected.match(action)) {\n      const {\n        meta: {\n          condition,\n          arg,\n          requestId\n        }\n      } = action;\n      if (condition && arg.subscribe) {\n        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n        mutated = true;\n      }\n    }\n    return mutated;\n  };\n  const getSubscriptions = () => internalState.currentSubscriptions;\n  const getSubscriptionCount = (queryCacheKey: string) => {\n    const subscriptions = getSubscriptions();\n    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);\n    return subscriptionsForQueryArg?.size ?? 0;\n  };\n  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {\n    const subscriptions = getSubscriptions();\n    return !!subscriptions?.get(queryCacheKey)?.get(requestId);\n  };\n  const subscriptionSelectors: SubscriptionSelectors = {\n    getSubscriptions,\n    getSubscriptionCount,\n    isRequestSubscribed\n  };\n  function serializeSubscriptions(currentSubscriptions: SubscriptionInternalState): SubscriptionState {\n    // We now use nested Maps for subscriptions, instead of\n    // plain Records. Stringify this accordingly so we can\n    // convert it to the shape we need for the store.\n    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));\n  }\n  return (action, mwApi): [actionShouldContinue: boolean, result: SubscriptionSelectors | boolean] => {\n    if (!previousSubscriptions) {\n      // Initialize it the first time this handler runs\n      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);\n    }\n    if (api.util.resetApiState.match(action)) {\n      previousSubscriptions = {};\n      internalState.currentSubscriptions.clear();\n      updateSyncTimer = null;\n      return [true, false];\n    }\n\n    // Intercept requests by hooks to see if they're subscribed\n    // We return the internal state reference so that hooks\n    // can do their own checks to see if they're still active.\n    // It's stupid and hacky, but it does cut down on some dispatch calls.\n    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n      return [false, subscriptionSelectors];\n    }\n\n    // Update subscription data based on this action\n    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n    let actionShouldContinue = true;\n\n    // HACK Sneak the test-only polling state back out\n    if (process.env.NODE_ENV === 'test' && typeof action.type === 'string' && action.type === `${api.reducerPath}/getPolling`) {\n      return [false, internalState.currentPolls] as any;\n    }\n    if (didMutate) {\n      if (!updateSyncTimer) {\n        // We only use the subscription state for the Redux DevTools at this point,\n        // as the real data is kept here in the middleware.\n        // Given that, we can throttle synchronizing this state significantly to\n        // save on overall perf.\n        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.\n        updateSyncTimer = setTimeout(() => {\n          // Deep clone the current subscription data\n          const newSubscriptions: SubscriptionState = serializeSubscriptions(internalState.currentSubscriptions);\n          // Figure out a smaller diff between original and current\n          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);\n\n          // Sync the store state for visibility\n          mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n          // Save the cloned state for later reference\n          previousSubscriptions = newSubscriptions;\n          updateSyncTimer = null;\n        }, 500);\n      }\n      const isSubscriptionSliceAction = typeof action.type == 'string' && !!action.type.startsWith(subscriptionsPrefix);\n      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n    }\n    return [actionShouldContinue, false];\n  };\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { QueryDefinition } from '../../endpointDefinitions';\nimport type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState';\nimport { isAnyOf } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, QueryStateMeta, SubMiddlewareApi, TimeoutId } from './types';\nexport type ReferenceCacheCollection = never;\n\n/**\n * @example\n * ```ts\n * // codeblock-meta title=\"keepUnusedDataFor example\"\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => 'posts',\n *       // highlight-start\n *       keepUnusedDataFor: 5\n *       // highlight-end\n *     })\n *   })\n * })\n * ```\n */\nexport type CacheCollectionQueryExtraOptions = {\n  /**\n   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\n   *\n   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   */\n  keepUnusedDataFor?: number;\n};\n\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\n// it wraps and ends up executing immediately.\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647;\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1;\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  api,\n  queryThunk,\n  context,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectConfig\n  },\n  getRunningQueryThunk,\n  mwApi\n}) => {\n  const {\n    removeQueryResult,\n    unsubscribeQueryResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n  function anySubscriptionsRemainingForKey(queryCacheKey: string) {\n    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);\n    if (!subscriptions) {\n      return false;\n    }\n    const hasSubscriptions = subscriptions.size > 0;\n    return hasSubscriptions;\n  }\n  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {};\n  function abortAllPromises<T extends {\n    abort?: () => void;\n  }>(promiseMap: Map<string, T | undefined>): void {\n    for (const promise of promiseMap.values()) {\n      promise?.abort?.();\n    }\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    const state = mwApi.getState();\n    const config = selectConfig(state);\n    if (canTriggerUnsubscribe(action)) {\n      let queryCacheKeys: QueryCacheKey[];\n      if (cacheEntriesUpserted.match(action)) {\n        queryCacheKeys = action.payload.map(entry => entry.queryDescription.queryCacheKey);\n      } else {\n        const {\n          queryCacheKey\n        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n        queryCacheKeys = [queryCacheKey];\n      }\n      handleUnsubscribeMany(queryCacheKeys, mwApi, config);\n    }\n    if (api.util.resetApiState.match(action)) {\n      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n        if (timeout) clearTimeout(timeout);\n        delete currentRemovalTimeouts[key];\n      }\n      abortAllPromises(internalState.runningQueries);\n      abortAllPromises(internalState.runningMutations);\n    }\n    if (context.hasRehydrationInfo(action)) {\n      const {\n        queries\n      } = context.extractRehydrationInfo(action)!;\n      // Gotcha:\n      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\n      // will be used instead of the endpoint-specific one.\n      handleUnsubscribeMany(Object.keys(queries) as QueryCacheKey[], mwApi, config);\n    }\n  };\n  function handleUnsubscribeMany(cacheKeys: QueryCacheKey[], api: SubMiddlewareApi, config: ConfigState<string>) {\n    const state = api.getState();\n    for (const queryCacheKey of cacheKeys) {\n      const entry = selectQueryEntry(state, queryCacheKey);\n      if (entry?.endpointName) {\n        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config);\n      }\n    }\n  }\n  function handleUnsubscribe(queryCacheKey: QueryCacheKey, endpointName: string, api: SubMiddlewareApi, config: ConfigState<string>) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName) as QueryDefinition<any, any, any, any>;\n    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n    if (keepUnusedDataFor === Infinity) {\n      // Hey, user said keep this forever!\n      return;\n    }\n    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\n    // clamping the max value to be at most 1000ms less than the 32-bit max.\n    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\n    // Also avoid negative values too.\n    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n      const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n      if (currentTimeout) {\n        clearTimeout(currentTimeout);\n      }\n      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n          // Try to abort any running query for this cache key\n          const entry = selectQueryEntry(api.getState(), queryCacheKey);\n          if (entry?.endpointName) {\n            const runningQuery = api.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));\n            runningQuery?.abort();\n          }\n          api.dispatch(removeQueryResult({\n            queryCacheKey\n          }));\n        }\n        delete currentRemovalTimeouts![queryCacheKey];\n      }, finalKeepUnusedDataFor * 1000);\n    }\n  }\n  return handler;\n};","import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn, BaseQueryMeta, BaseQueryResult } from '../../baseQueryTypes';\nimport type { BaseEndpointDefinition, DefinitionType } from '../../endpointDefinitions';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { QueryCacheKey, RootState } from '../apiState';\nimport type { MutationResultSelectorResult, QueryResultSelectorResult } from '../buildSelectors';\nimport { getMutationCacheKey } from '../buildSlice';\nimport type { PatchCollection, Recipe } from '../buildThunks';\nimport { isAsyncThunkAction, isFulfilled } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseWithKnownReason, SubMiddlewareApi } from './types';\nimport { getEndpointDefinition } from '@internal/query/apiTypes';\nexport type ReferenceCacheLifecycle = never;\nexport interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): QueryResultSelectorResult<{\n    type: DefinitionType.query;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n  /**\n   * Updates the current cache entry value.\n   * For documentation see `api.util.updateQueryData`.\n   */\n  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;\n}\nexport type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): MutationResultSelectorResult<{\n    type: DefinitionType.mutation;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n};\ntype LifecycleApi<ReducerPath extends string = string> = {\n  /**\n   * The dispatch method for the store\n   */\n  dispatch: ThunkDispatch<any, any, UnknownAction>;\n  /**\n   * A method to get the current state\n   */\n  getState(): RootState<any, any, ReducerPath>;\n  /**\n   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\n   */\n  extra: unknown;\n  /**\n   * A unique ID generated for the mutation\n   */\n  requestId: string;\n};\ntype CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {\n  /**\n   * Promise that will resolve with the first value for this cache key.\n   * This allows you to `await` until an actual value is in cache.\n   *\n   * If the cache entry is removed from the cache before any value has ever\n   * been resolved, this Promise will reject with\n   * `new Error('Promise never resolved before cacheEntryRemoved.')`\n   * to prevent memory leaks.\n   * You can just re-throw that error (or not handle it at all) -\n   * it will be caught outside of `cacheEntryAdded`.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  cacheDataLoaded: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: MetaType;\n  }, typeof neverResolvedError>;\n  /**\n   * Promise that allows you to wait for the point in time when the cache entry\n   * has been removed from the cache, by not being used/subscribed to any more\n   * in the application for too long or by dispatching `api.util.resetApiState`.\n   */\n  cacheEntryRemoved: Promise<void>;\n};\nexport interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\nexport type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;\nexport type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nconst neverResolvedError = new Error('Promise never resolved before cacheEntryRemoved.') as Error & {\n  message: 'Promise never resolved before cacheEntryRemoved.';\n};\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  reducerPath,\n  context,\n  queryThunk,\n  mutationThunk,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectApiState\n  }\n}) => {\n  const isQueryThunk = isAsyncThunkAction(queryThunk);\n  const isMutationThunk = isAsyncThunkAction(mutationThunk);\n  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    valueResolved?(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    cacheEntryRemoved(): void;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const {\n    removeQueryResult,\n    removeMutationResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  function resolveLifecycleEntry(cacheKey: string, data: unknown, meta: unknown) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle?.valueResolved) {\n      lifecycle.valueResolved({\n        data,\n        meta\n      });\n      delete lifecycle.valueResolved;\n    }\n  }\n  function removeLifecycleEntry(cacheKey: string) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle) {\n      delete lifecycleMap[cacheKey];\n      lifecycle.cacheEntryRemoved();\n    }\n  }\n  function getActionMetaFields(action: ReturnType<typeof queryThunk.pending> | ReturnType<typeof mutationThunk.pending>) {\n    const {\n      arg,\n      requestId\n    } = action.meta;\n    const {\n      endpointName,\n      originalArgs\n    } = arg;\n    return [endpointName, originalArgs, requestId] as const;\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi, stateBefore) => {\n    const cacheKey = getCacheKey(action) as QueryCacheKey;\n    function checkForNewCacheKey(endpointName: string, cacheKey: QueryCacheKey, requestId: string, originalArgs: unknown) {\n      const oldEntry = selectQueryEntry(stateBefore, cacheKey);\n      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey);\n      if (!oldEntry && newEntry) {\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    }\n    if (queryThunk.pending.match(action)) {\n      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);\n    } else if (cacheEntriesUpserted.match(action)) {\n      for (const {\n        queryDescription,\n        value\n      } of action.payload) {\n        const {\n          endpointName,\n          originalArgs,\n          queryCacheKey\n        } = queryDescription;\n        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n        resolveLifecycleEntry(queryCacheKey, value, {});\n      }\n    } else if (mutationThunk.pending.match(action)) {\n      const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n      if (state) {\n        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    } else if (isFulfilledThunk(action)) {\n      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {\n      removeLifecycleEntry(cacheKey);\n    } else if (api.util.resetApiState.match(action)) {\n      for (const cacheKey of Object.keys(lifecycleMap)) {\n        removeLifecycleEntry(cacheKey);\n      }\n    }\n  };\n  function getCacheKey(action: any) {\n    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n    if (isMutationThunk(action)) {\n      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n    }\n    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;\n    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n    return '';\n  }\n  function handleNewKey(endpointName: string, originalArgs: any, queryCacheKey: string, mwApi: SubMiddlewareApi, requestId: string) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName);\n    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n    if (!onCacheEntryAdded) return;\n    const lifecycle = {} as CacheLifecycle;\n    const cacheEntryRemoved = new Promise<void>(resolve => {\n      lifecycle.cacheEntryRemoved = resolve;\n    });\n    const cacheDataLoaded: PromiseWithKnownReason<{\n      data: unknown;\n      meta: unknown;\n    }, typeof neverResolvedError> = Promise.race([new Promise<{\n      data: unknown;\n      meta: unknown;\n    }>(resolve => {\n      lifecycle.valueResolved = resolve;\n    }), cacheEntryRemoved.then(() => {\n      throw neverResolvedError;\n    })]);\n    // prevent uncaught promise rejections from happening.\n    // if the original promise is used in any way, that will create a new promise that will throw again\n    cacheDataLoaded.catch(() => {});\n    lifecycleMap[queryCacheKey] = lifecycle;\n    const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);\n    const extra = mwApi.dispatch((_, __, extra) => extra);\n    const lifecycleApi = {\n      ...mwApi,\n      getCacheEntry: () => selector(mwApi.getState()),\n      requestId,\n      extra,\n      updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n      cacheDataLoaded,\n      cacheEntryRemoved\n    };\n    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any);\n    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\n    Promise.resolve(runningHandler).catch(e => {\n      if (e === neverResolvedError) return;\n      throw e;\n    });\n  }\n  return handler;\n};","import type { InternalHandlerBuilder } from './types';\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\n  api,\n  context: {\n    apiUid\n  },\n  reducerPath\n}) => {\n  return (action, mwApi) => {\n    if (api.util.resetApiState.match(action)) {\n      // dispatch after api reset\n      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === 'conflict') {\n        console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === 'api' ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ''}`);\n      }\n    }\n  };\n};","import { isAnyOf, isFulfilled, isRejected, isRejectedWithValue } from '../rtkImports';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport { calculateProvidedBy } from '../../endpointDefinitions';\nimport type { CombinedState, QueryCacheKey } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport { calculateProvidedByThunk } from '../buildThunks';\nimport type { SubMiddlewareApi, InternalHandlerBuilder, ApiMiddlewareInternalHandler } from './types';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  context: {\n    endpointDefinitions\n  },\n  mutationThunk,\n  queryThunk,\n  api,\n  assertTagType,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));\n  let pendingTagInvalidations: FullTagDescription<string>[] = [];\n  // Track via counter so we can avoid iterating over state every time\n  let pendingRequestCount = 0;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {\n      pendingRequestCount++;\n    }\n    if (isQueryEnd(action)) {\n      pendingRequestCount = Math.max(0, pendingRequestCount - 1);\n    }\n    if (isThunkActionWithTags(action)) {\n      invalidateTags(calculateProvidedByThunk(action, 'invalidatesTags', endpointDefinitions, assertTagType), mwApi);\n    } else if (isQueryEnd(action)) {\n      invalidateTags([], mwApi);\n    } else if (api.util.invalidateTags.match(action)) {\n      invalidateTags(calculateProvidedBy(action.payload, undefined, undefined, undefined, undefined, assertTagType), mwApi);\n    }\n  };\n  function hasPendingRequests() {\n    return pendingRequestCount > 0;\n  }\n  function invalidateTags(newTags: readonly FullTagDescription<string>[], mwApi: SubMiddlewareApi) {\n    const rootState = mwApi.getState();\n    const state = rootState[reducerPath];\n    pendingTagInvalidations.push(...newTags);\n    if (state.config.invalidationBehavior === 'delayed' && hasPendingRequests()) {\n      return;\n    }\n    const tags = pendingTagInvalidations;\n    pendingTagInvalidations = [];\n    if (tags.length === 0) return;\n    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n    context.batch(() => {\n      const valuesArray = Array.from(toInvalidate.values());\n      for (const {\n        queryCacheKey\n      } of valuesArray) {\n        const querySubState = state.queries[queryCacheKey];\n        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);\n        if (querySubState) {\n          if (subscriptionSubState.size === 0) {\n            mwApi.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            mwApi.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { QueryCacheKey, QuerySubstateIdentifier, Subscribers, SubscribersInternal } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryStateMeta, SubMiddlewareApi, TimeoutId, InternalHandlerBuilder, ApiMiddlewareInternalHandler, InternalMiddlewareState } from './types';\nexport const buildPollingHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  queryThunk,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    currentPolls,\n    currentSubscriptions\n  } = internalState;\n\n  // Batching state for polling updates\n  const pendingPollingUpdates = new Set<string>();\n  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);\n    }\n    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);\n    }\n    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n      startNextPoll(action.meta.arg, mwApi);\n    }\n    if (api.util.resetApiState.match(action)) {\n      clearPolls();\n      // Clear any pending updates\n      if (pollingUpdateTimer) {\n        clearTimeout(pollingUpdateTimer);\n        pollingUpdateTimer = null;\n      }\n      pendingPollingUpdates.clear();\n    }\n  };\n  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {\n    pendingPollingUpdates.add(queryCacheKey);\n    if (!pollingUpdateTimer) {\n      pollingUpdateTimer = setTimeout(() => {\n        // Process all pending updates in a single batch\n        for (const key of pendingPollingUpdates) {\n          updatePollingInterval({\n            queryCacheKey: key as any\n          }, api);\n        }\n        pendingPollingUpdates.clear();\n        pollingUpdateTimer = null;\n      }, 0);\n    }\n  }\n  function startNextPoll({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;\n    const {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    } = findLowestPollingInterval(subscriptions);\n    if (!Number.isFinite(lowestPollingInterval)) return;\n    const currentPoll = currentPolls.get(queryCacheKey);\n    if (currentPoll?.timeout) {\n      clearTimeout(currentPoll.timeout);\n      currentPoll.timeout = undefined;\n    }\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    currentPolls.set(queryCacheKey, {\n      nextPollTimestamp,\n      pollingInterval: lowestPollingInterval,\n      timeout: setTimeout(() => {\n        if (state.config.focused || !skipPollingIfUnfocused) {\n          api.dispatch(refetchQuery(querySubState));\n        }\n        startNextPoll({\n          queryCacheKey\n        }, api);\n      }, lowestPollingInterval)\n    });\n  }\n  function updatePollingInterval({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {\n      return;\n    }\n    const {\n      lowestPollingInterval\n    } = findLowestPollingInterval(subscriptions);\n\n    // HACK add extra data to track how many times this has been called in tests\n    // yes we're mutating a nonexistent field on a Map here\n    if (process.env.NODE_ENV === 'test') {\n      const updateCounters = (currentPolls as any).pollUpdateCounters ??= {};\n      updateCounters[queryCacheKey] ??= 0;\n      updateCounters[queryCacheKey]++;\n    }\n    if (!Number.isFinite(lowestPollingInterval)) {\n      cleanupPollForKey(queryCacheKey);\n      return;\n    }\n    const currentPoll = currentPolls.get(queryCacheKey);\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n      startNextPoll({\n        queryCacheKey\n      }, api);\n    }\n  }\n  function cleanupPollForKey(key: string) {\n    const existingPoll = currentPolls.get(key);\n    if (existingPoll?.timeout) {\n      clearTimeout(existingPoll.timeout);\n    }\n    currentPolls.delete(key);\n  }\n  function clearPolls() {\n    for (const key of currentPolls.keys()) {\n      cleanupPollForKey(key);\n    }\n  }\n  function findLowestPollingInterval(subscribers: SubscribersInternal = new Map()) {\n    let skipPollingIfUnfocused: boolean | undefined = false;\n    let lowestPollingInterval = Number.POSITIVE_INFINITY;\n    for (const entry of subscribers.values()) {\n      if (!!entry.pollingInterval) {\n        lowestPollingInterval = Math.min(entry.pollingInterval!, lowestPollingInterval);\n        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;\n      }\n    }\n    return {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    };\n  }\n  return handler;\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { BaseQueryError, BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { Recipe } from '../buildThunks';\nimport { isFulfilled, isPending, isRejected } from '../rtkImports';\nimport type { MutationBaseLifecycleApi, QueryBaseLifecycleApi } from './cacheLifecycle';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseConstructorWithKnownReason, PromiseWithKnownReason } from './types';\nexport type ReferenceQueryLifecycle = never;\ntype QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {\n  /**\n   * Promise that will resolve with the (transformed) query result.\n   *\n   * If the query fails, this promise will reject with the error.\n   *\n   * This allows you to `await` for the query to finish.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  queryFulfilled: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: BaseQueryMeta<BaseQuery>;\n  }, QueryFulfilledRejectionReason<BaseQuery>>;\n};\ntype QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {\n  error: BaseQueryError<BaseQuery>;\n  /**\n   * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\n   */\n  isUnhandledError: false;\n  /**\n   * The `meta` returned by the `baseQuery`\n   */\n  meta: BaseQueryMeta<BaseQuery>;\n} | {\n  error: unknown;\n  meta?: undefined;\n  /**\n   * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\n   * There can not be made any assumption about the shape of `error`.\n   */\n  isUnhandledError: true;\n};\nexport type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used to perform side-effects throughout the lifecycle of the query.\n   *\n   * @example\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * import { messageCreated } from './notificationsSlice\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {\n   *         // `onStart` side-effect\n   *         dispatch(messageCreated('Fetching posts...'))\n   *         try {\n   *           const { data } = await queryFulfilled\n   *           // `onSuccess` side-effect\n   *           dispatch(messageCreated('Posts received!'))\n   *         } catch (err) {\n   *           // `onError` side-effect\n   *           dispatch(messageCreated('Error fetching posts!'))\n   *         }\n   *       }\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used for `optimistic updates`.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       providesTags: ['Post'],\n   *     }),\n   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\n   *       query: ({ id, ...patch }) => ({\n   *         url: `post/${id}`,\n   *         method: 'PATCH',\n   *         body: patch,\n   *       }),\n   *       invalidatesTags: ['Post'],\n   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\n   *         const patchResult = dispatch(\n   *           api.util.updateQueryData('getPost', id, (draft) => {\n   *             Object.assign(draft, patch)\n   *           })\n   *         )\n   *         try {\n   *           await queryFulfilled\n   *         } catch {\n   *           patchResult.undo()\n   *         }\n   *       },\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {}\nexport type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific query.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, QueryArgument>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedQueryOnQueryStarted<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async (queryArgument, { dispatch, queryFulfilled }) => {\n *   const result = await queryFulfilled\n *\n *   const { posts } = result.data\n *\n *   // Pre-fill the individual post entries with the results\n *   // from the list endpoint query\n *   dispatch(\n *     baseApiSlice.util.upsertQueryEntries(\n *       posts.map((post) => ({\n *         endpointName: 'getPostById',\n *         arg: post.id,\n *         value: post,\n *       })),\n *     ),\n *   )\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({\n *       query: (userId) => `/posts/user/${userId}`,\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific mutation.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = Pick<Post, 'id'> & Partial<Post>\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, number>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedMutationOnQueryStarted<\n *   Post,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {\n *   const patchCollection = dispatch(\n *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {\n *       Object.assign(draftPost, patch)\n *     }),\n *   )\n *\n *   try {\n *     await queryFulfilled\n *   } catch {\n *     patchCollection.undo()\n *   }\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({\n *       query: (body) => ({\n *         url: `posts/add`,\n *         method: 'POST',\n *         body,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *\n *     updatePost: build.mutation<Post, QueryArgument>({\n *       query: ({ id, ...patch }) => ({\n *         url: `post/${id}`,\n *         method: 'PATCH',\n *         body: patch,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  context,\n  queryThunk,\n  mutationThunk\n}) => {\n  const isPendingThunk = isPending(queryThunk, mutationThunk);\n  const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    resolve(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    reject(value: QueryFulfilledRejectionReason<any>): unknown;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (isPendingThunk(action)) {\n      const {\n        requestId,\n        arg: {\n          endpointName,\n          originalArgs\n        }\n      } = action.meta;\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const onQueryStarted = endpointDefinition?.onQueryStarted;\n      if (onQueryStarted) {\n        const lifecycle = {} as CacheLifecycle;\n        const queryFulfilled = new (Promise as PromiseConstructorWithKnownReason)<{\n          data: unknown;\n          meta: unknown;\n        }, QueryFulfilledRejectionReason<any>>((resolve, reject) => {\n          lifecycle.resolve = resolve;\n          lifecycle.reject = reject;\n        });\n        // prevent uncaught promise rejections from happening.\n        // if the original promise is used in any way, that will create a new promise that will throw again\n        queryFulfilled.catch(() => {});\n        lifecycleMap[requestId] = lifecycle;\n        const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);\n        const extra = mwApi.dispatch((_, __, extra) => extra);\n        const lifecycleApi = {\n          ...mwApi,\n          getCacheEntry: () => selector(mwApi.getState()),\n          requestId,\n          extra,\n          updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n          queryFulfilled\n        };\n        onQueryStarted(originalArgs, lifecycleApi as any);\n      }\n    } else if (isFullfilledThunk(action)) {\n      const {\n        requestId,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.resolve({\n        data: action.payload,\n        meta: baseQueryMeta\n      });\n      delete lifecycleMap[requestId];\n    } else if (isRejectedThunk(action)) {\n      const {\n        requestId,\n        rejectedWithValue,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.reject({\n        error: action.payload ?? action.error,\n        isUnhandledError: !rejectedWithValue,\n        meta: baseQueryMeta as any\n      });\n      delete lifecycleMap[requestId];\n    }\n  };\n  return handler;\n};","import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryCacheKey } from '../apiState';\nimport { onFocus, onOnline } from '../setupListeners';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, SubMiddlewareApi } from './types';\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (onFocus.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnFocus');\n    }\n    if (onOnline.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnReconnect');\n    }\n  };\n  function refetchValidQueries(api: SubMiddlewareApi, type: 'refetchOnFocus' | 'refetchOnReconnect') {\n    const state = api.getState()[reducerPath];\n    const queries = state.queries;\n    const subscriptions = internalState.currentSubscriptions;\n    context.batch(() => {\n      for (const queryCacheKey of subscriptions.keys()) {\n        const querySubState = queries[queryCacheKey];\n        const subscriptionSubState = subscriptions.get(queryCacheKey);\n        if (!subscriptionSubState || !querySubState) continue;\n        const values = [...subscriptionSubState.values()];\n        const shouldRefetch = values.some(sub => sub[type] === true) || values.every(sub => sub[type] === undefined) && state.config[type];\n        if (shouldRefetch) {\n          if (subscriptionSubState.size === 0) {\n            api.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            api.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { Action, Middleware, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState';\nimport type { QueryThunkArg } from '../buildThunks';\nimport { createAction, isAction } from '../rtkImports';\nimport { buildBatchedActionsHandler } from './batchActions';\nimport { buildCacheCollectionHandler } from './cacheCollection';\nimport { buildCacheLifecycleHandler } from './cacheLifecycle';\nimport { buildDevCheckHandler } from './devMiddleware';\nimport { buildInvalidationByTagsHandler } from './invalidationByTags';\nimport { buildPollingHandler } from './polling';\nimport { buildQueryLifecycleHandler } from './queryLifecycle';\nimport type { BuildMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState } from './types';\nimport { buildWindowEventHandler } from './windowEventHandling';\nimport type { ApiEndpointQuery } from '../module';\nexport type { ReferenceCacheCollection } from './cacheCollection';\nexport type { MutationCacheLifecycleApi, QueryCacheLifecycleApi, ReferenceCacheLifecycle } from './cacheLifecycle';\nexport type { MutationLifecycleApi, QueryLifecycleApi, ReferenceQueryLifecycle, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './queryLifecycle';\nexport type { SubscriptionSelectors } from './types';\nexport function buildMiddleware<Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\n  const {\n    reducerPath,\n    queryThunk,\n    api,\n    context,\n    getInternalState\n  } = input;\n  const {\n    apiUid\n  } = context;\n  const actions = {\n    invalidateTags: createAction<Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>>(`${reducerPath}/invalidateTags`)\n  };\n  const isThisApiSliceAction = (action: Action) => action.type.startsWith(`${reducerPath}/`);\n  const handlerBuilders: InternalHandlerBuilder[] = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n  const middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>> = mwApi => {\n    let initialized = false;\n    const internalState = getInternalState(mwApi.dispatch);\n    const builderArgs = {\n      ...(input as any as BuildMiddlewareInput<EndpointDefinitions, string, string>),\n      internalState,\n      refetchQuery,\n      isThisApiSliceAction,\n      mwApi\n    };\n    const handlers = handlerBuilders.map(build => build(builderArgs));\n    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n    const windowEventsHandler = buildWindowEventHandler(builderArgs);\n    return next => {\n      return action => {\n        if (!isAction(action)) {\n          return next(action);\n        }\n        if (!initialized) {\n          initialized = true;\n          // dispatch before any other action\n          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n        }\n        const mwApiWithNext = {\n          ...mwApi,\n          next\n        };\n        const stateBefore = mwApi.getState();\n        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n        let res: any;\n        if (actionShouldContinue) {\n          res = next(action);\n        } else {\n          res = internalProbeResult;\n        }\n        if (!!mwApi.getState()[reducerPath]) {\n          // Only run these checks if the middleware is registered okay\n\n          // This looks for actions that aren't specific to the API slice\n          windowEventsHandler(action, mwApiWithNext, stateBefore);\n          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n            // Only run these additional checks if the actions are part of the API slice,\n            // or the action has hydration-related data\n            for (const handler of handlers) {\n              handler(action, mwApiWithNext, stateBefore);\n            }\n          }\n        }\n        return res;\n      };\n    };\n  };\n  return {\n    middleware,\n    actions\n  };\n  function refetchQuery(querySubState: Exclude<QuerySubState<any>, {\n    status: QueryStatus.uninitialized;\n  }>) {\n    return (input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<any, any>).initiate(querySubState.originalArgs as any, {\n      subscribe: false,\n      forceRefetch: true\n    });\n  }\n}","/**\n * Note: this file should import all other files for type discovery and declaration merging\n */\nimport type { ActionCreatorWithPayload, Dispatch, Middleware, Reducer, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport { enablePatches } from '../utils/immerImports';\nimport type { Api, Module } from '../apiTypes';\nimport type { BaseQueryFn } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinitions, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, TagDescription } from '../endpointDefinitions';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { assertCast, safeAssign } from '../tsHelpers';\nimport type { CombinedState, MutationKeys, QueryKeys, RootState } from './apiState';\nimport type { BuildInitiateApiEndpointMutation, BuildInitiateApiEndpointQuery, MutationActionCreatorResult, QueryActionCreatorResult, InfiniteQueryActionCreatorResult, BuildInitiateApiEndpointInfiniteQuery } from './buildInitiate';\nimport { buildInitiate } from './buildInitiate';\nimport type { ReferenceCacheCollection, ReferenceCacheLifecycle, ReferenceQueryLifecycle } from './buildMiddleware';\nimport { buildMiddleware } from './buildMiddleware';\nimport type { BuildSelectorsApiEndpointInfiniteQuery, BuildSelectorsApiEndpointMutation, BuildSelectorsApiEndpointQuery } from './buildSelectors';\nimport { buildSelectors } from './buildSelectors';\nimport type { SliceActions, UpsertEntries } from './buildSlice';\nimport { buildSlice } from './buildSlice';\nimport type { AllQueryKeys, BuildThunksApiEndpointInfiniteQuery, BuildThunksApiEndpointMutation, BuildThunksApiEndpointQuery, PatchQueryDataThunk, QueryArgFromAnyQueryDefinition, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nimport { buildThunks } from './buildThunks';\nimport { createSelector as _createSelector } from './rtkImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nimport { getOrInsertComputed } from '../utils';\nimport type { CreateSelectorFunction } from 'reselect';\n\n/**\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\n *\n * @overloadSummary\n * `force`\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\n */\nexport type PrefetchOptions = {\n  ifOlderThan?: false | number;\n} | {\n  force?: boolean;\n};\nexport const coreModuleName = /* @__PURE__ */Symbol();\nexport type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;\nexport type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;\nexport interface ApiModules<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nBaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {\n  [coreModuleName]: {\n    /**\n     * This api's reducer should be mounted at `store[api.reducerPath]`.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducerPath: ReducerPath;\n    /**\n     * Internal actions not part of the public API. Note: These are subject to change at any given time.\n     */\n    internalActions: InternalActions;\n    /**\n     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;\n    /**\n     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;\n    /**\n     * A collection of utility thunks for various situations.\n     */\n    util: {\n      /**\n       * A thunk that (if dispatched) will return a specific running query, identified\n       * by `endpointName` and `arg`.\n       * If that query is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific query triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'query';\n      }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'infinitequery';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return a specific running mutation, identified\n       * by `endpointName` and `fixedCacheKey` or `requestId`.\n       * If that mutation is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific mutation triggered in any way,\n       * including via hook trigger functions or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {\n        type: 'mutation';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return all running queries.\n       *\n       * Useful for SSR scenarios to await all running queries triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;\n\n      /**\n       * A thunk that (if dispatched) will return all running mutations.\n       *\n       * Useful for SSR scenarios to await all running mutations triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;\n\n      /**\n       * A Redux thunk that can be used to manually trigger pre-fetching of data.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\n       *\n       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\n       *\n       * @example\n       *\n       * ```ts no-transpile\n       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\n       * ```\n       */\n      prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;\n      /**\n       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\n       *\n       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\n       *\n       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\n       *\n       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\n       *\n       * @example\n       *\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       * ```\n       */\n      updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\n       *\n       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\n       *\n       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\n       *\n       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\n       *\n       * @example\n       *\n       * ```ts\n       * await dispatch(\n       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\n       * )\n       * ```\n       */\n      upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n      /**\n       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\n       *\n       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\n       *\n       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\n       *\n       * @example\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       *\n       * // later\n       * dispatch(\n       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\n       * )\n       *\n       * // or\n       * patchCollection.undo()\n       * ```\n       */\n      patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.resetApiState())\n       * ```\n       */\n      resetApiState: SliceActions['resetApiState'];\n      upsertQueryEntries: UpsertEntries<Definitions>;\n\n      /**\n       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\n       *\n       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\n       *\n       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\n       *\n       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\n       *\n       * - `[TagType]`\n       * - `[{ type: TagType }]`\n       * - `[{ type: TagType, id: number | string }]`\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.invalidateTags(['Post']))\n       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\n       * dispatch(\n       *   api.util.invalidateTags([\n       *     { type: 'Post', id: 1 },\n       *     { type: 'Post', id: 'LIST' },\n       *   ])\n       * )\n       * ```\n       */\n      invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;\n\n      /**\n       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{\n        endpointName: string;\n        originalArgs: any;\n        queryCacheKey: string;\n      }>;\n\n      /**\n       * A function to select all arguments currently cached for a given endpoint.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;\n    };\n    /**\n     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\n     */\n    endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never };\n  };\n}\nexport interface ApiEndpointQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends QueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport interface ApiEndpointInfiniteQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends InfiniteQueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface ApiEndpointMutation<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends MutationDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport type ListenerActions = {\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n};\nexport type InternalActions = SliceActions & ListenerActions;\nexport interface CoreModuleOptions {\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\n *\n * @example\n * ```ts\n * const createBaseApi = buildCreateApi(coreModule());\n * ```\n */\nexport const coreModule = ({\n  createSelector = _createSelector\n}: CoreModuleOptions = {}): Module<CoreModule> => ({\n  name: coreModuleName,\n  init(api, {\n    baseQuery,\n    tagTypes,\n    reducerPath,\n    serializeQueryArgs,\n    keepUnusedDataFor,\n    refetchOnMountOrArgChange,\n    refetchOnFocus,\n    refetchOnReconnect,\n    invalidationBehavior,\n    onSchemaFailure,\n    catchSchemaFailure,\n    skipSchemaValidation\n  }, context) {\n    enablePatches();\n    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs);\n    const assertTagType: AssertTagTypes = tag => {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        if (!tagTypes.includes(tag.type as any)) {\n          console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n        }\n      }\n      return tag;\n    };\n    Object.assign(api, {\n      reducerPath,\n      endpoints: {},\n      internalActions: {\n        onOnline,\n        onOffline,\n        onFocus,\n        onFocusLost\n      },\n      util: {}\n    });\n    const selectors = buildSelectors({\n      serializeQueryArgs: serializeQueryArgs as any,\n      reducerPath,\n      createSelector\n    });\n    const {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery,\n      buildQuerySelector,\n      buildInfiniteQuerySelector,\n      buildMutationSelector\n    } = selectors;\n    safeAssign(api.util, {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery\n    });\n    const {\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      buildMatchThunkActions\n    } = buildThunks({\n      baseQuery,\n      reducerPath,\n      context,\n      api,\n      serializeQueryArgs,\n      assertTagType,\n      selectors,\n      onSchemaFailure,\n      catchSchemaFailure,\n      skipSchemaValidation\n    });\n    const {\n      reducer,\n      actions: sliceActions\n    } = buildSlice({\n      context,\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      serializeQueryArgs,\n      reducerPath,\n      assertTagType,\n      config: {\n        refetchOnFocus,\n        refetchOnReconnect,\n        refetchOnMountOrArgChange,\n        keepUnusedDataFor,\n        reducerPath,\n        invalidationBehavior\n      }\n    });\n    safeAssign(api.util, {\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      resetApiState: sliceActions.resetApiState,\n      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any\n    });\n    safeAssign(api.internalActions, sliceActions);\n    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>();\n    const getInternalState = (dispatch: Dispatch) => {\n      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({\n        currentSubscriptions: new Map(),\n        currentPolls: new Map(),\n        runningQueries: new Map(),\n        runningMutations: new Map()\n      }));\n      return state;\n    };\n    const {\n      buildInitiateQuery,\n      buildInitiateInfiniteQuery,\n      buildInitiateMutation,\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueriesThunk,\n      getRunningQueryThunk\n    } = buildInitiate({\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      serializeQueryArgs: serializeQueryArgs as any,\n      context,\n      getInternalState\n    });\n    safeAssign(api.util, {\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueryThunk,\n      getRunningQueriesThunk\n    });\n    const {\n      middleware,\n      actions: middlewareActions\n    } = buildMiddleware({\n      reducerPath,\n      context,\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      assertTagType,\n      selectors,\n      getRunningQueryThunk,\n      getInternalState\n    });\n    safeAssign(api.util, middlewareActions);\n    safeAssign(api, {\n      reducer: reducer as any,\n      middleware\n    });\n    return {\n      name: coreModuleName,\n      injectEndpoint(endpointName, definition) {\n        const anyApi = api as any as Api<any, Record<string, any>, string, string, CoreModule>;\n        const endpoint = anyApi.endpoints[endpointName] ??= {} as any;\n        if (isQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildQuerySelector(endpointName, definition),\n            initiate: buildInitiateQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n        if (isMutationDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildMutationSelector(),\n            initiate: buildInitiateMutation(endpointName)\n          }, buildMatchThunkActions(mutationThunk, endpointName));\n        }\n        if (isInfiniteQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildInfiniteQuerySelector(endpointName, definition),\n            initiate: buildInitiateInfiniteQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n      }\n    };\n  }\n});","import { buildCreateApi } from '../createApi';\nimport { coreModule } from './module';\nexport const createApi = /* @__PURE__ */buildCreateApi(coreModule());\nexport { QueryStatus } from './apiState';\nexport type { CombinedState, InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationKeys, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './apiState';\nexport type { InfiniteQueryActionCreatorResult, MutationActionCreatorResult, QueryActionCreatorResult, StartQueryActionCreatorOptions } from './buildInitiate';\nexport type { MutationCacheLifecycleApi, MutationLifecycleApi, QueryCacheLifecycleApi, QueryLifecycleApi, SubscriptionSelectors, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './buildMiddleware/index';\nexport { skipToken } from './buildSelectors';\nexport type { InfiniteQueryResultSelectorResult, MutationResultSelectorResult, QueryResultSelectorResult, SkipToken } from './buildSelectors';\nexport type { SliceActions } from './buildSlice';\nexport type { PatchQueryDataThunk, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nexport { coreModuleName } from './module';\nexport type { ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, CoreModule, InternalActions, PrefetchOptions, ThunkWithReturnValue } from './module';\nexport { setupListeners } from './setupListeners';\nexport { buildCreateApi, coreModule };"],"mappings":"AAkEO,IAAKA,QACVA,EAAA,cAAgB,gBAChBA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,SAAW,WAJDA,QAAA,IAQCC,EAAuB,gBACvBC,GAAiB,UACjBC,GAAmB,YACnBC,GAAkB,WA0BxB,SAASC,GAAsBC,EAAyC,CAC7E,MAAO,CACL,OAAAA,EACA,gBAAiBA,IAAWL,EAC5B,UAAWK,IAAWJ,GACtB,UAAWI,IAAWH,GACtB,QAASG,IAAWF,EACtB,CACF,CC3GA,OAAS,gBAAAG,GAAc,eAAAC,GAAa,kBAAAC,GAAgB,oBAAAC,GAAkB,mBAAAC,GAAiB,mBAAAC,GAAiB,WAAAC,GAAS,WAAAC,GAAS,YAAAC,GAAU,aAAAC,GAAW,cAAAC,GAAY,eAAAC,EAAa,uBAAAC,GAAqB,sBAAAC,GAAoB,sBAAAC,GAAoB,oBAAAC,GAAkB,iBAAAC,GAAe,UAAAC,OAAc,mBCDpR,IAAMC,GAAqCA,GAEpC,SAASC,GAA0BC,EAAaC,EAAkB,CACvE,GAAID,IAAWC,GAAU,EAAEH,GAAcE,CAAM,GAAKF,GAAcG,CAAM,GAAK,MAAM,QAAQD,CAAM,GAAK,MAAM,QAAQC,CAAM,GACxH,OAAOA,EAET,IAAMC,EAAU,OAAO,KAAKD,CAAM,EAC5BE,EAAU,OAAO,KAAKH,CAAM,EAC9BI,EAAeF,EAAQ,SAAWC,EAAQ,OACxCE,EAAgB,MAAM,QAAQJ,CAAM,EAAI,CAAC,EAAI,CAAC,EACpD,QAAWK,KAAOJ,EAChBG,EAASC,CAAG,EAAIP,GAA0BC,EAAOM,CAAG,EAAGL,EAAOK,CAAG,CAAC,EAC9DF,IAAcA,EAAeJ,EAAOM,CAAG,IAAMD,EAASC,CAAG,GAE/D,OAAOF,EAAeJ,EAASK,CACjC,CCfO,SAASE,GAAgBC,EAAqBC,EAAgDC,EAAkD,CACrJ,OAAOF,EAAM,OAAoB,CAACG,EAAKC,EAAMC,KACvCJ,EAAUG,EAAaC,CAAC,GAC1BF,EAAI,KAAKD,EAAOE,EAAaC,CAAC,CAAC,EAE1BF,GACN,CAAC,CAAC,EAAE,KAAK,CACd,CCJO,SAASG,GAAcC,EAAa,CACzC,OAAO,IAAI,OAAO,SAAS,EAAE,KAAKA,CAAG,CACvC,CCJO,SAASC,IAA6B,CAE3C,OAAI,OAAO,SAAa,IACf,GAGF,SAAS,kBAAoB,QACtC,CCXO,SAASC,GAAgBC,EAAiC,CAC/D,OAAOA,GAAK,IACd,CACO,SAASC,GAAuBC,EAAmB,CACxD,MAAO,CAAC,GAAIA,GAAK,OAAO,GAAK,CAAC,CAAE,EAAE,OAAOH,EAAY,CACvD,CCDO,SAASI,IAAW,CAEzB,OAAO,OAAO,UAAc,KAAqB,UAAU,SAAW,OAA5B,GAA+C,UAAU,MACrG,CCNA,IAAMC,GAAwBC,GAAgBA,EAAI,QAAQ,MAAO,EAAE,EAC7DC,GAAuBD,GAAgBA,EAAI,QAAQ,MAAO,EAAE,EAC3D,SAASE,GAASC,EAA0BH,EAAiC,CAClF,GAAI,CAACG,EACH,OAAOH,EAET,GAAI,CAACA,EACH,OAAOG,EAET,GAAIC,GAAcJ,CAAG,EACnB,OAAOA,EAET,IAAMK,EAAYF,EAAK,SAAS,GAAG,GAAK,CAACH,EAAI,WAAW,GAAG,EAAI,IAAM,GACrE,OAAAG,EAAOJ,GAAqBI,CAAI,EAChCH,EAAMC,GAAoBD,CAAG,EACtB,GAAGG,CAAI,GAAGE,CAAS,GAAGL,CAAG,EAClC,CCLO,SAASM,GAAyCC,EAAgCC,EAAQC,EAA2B,CAC1H,OAAIF,EAAI,IAAIC,CAAG,EAAUD,EAAI,IAAIC,CAAG,EAC7BD,EAAI,IAAIC,EAAKC,EAAQD,CAAG,CAAC,EAAE,IAAIA,CAAG,CAC3C,CACO,IAAME,GAAe,IAAM,IAAI,ICf/B,IAAMC,GAAiBC,GAAyB,CACrD,IAAMC,EAAkB,IAAI,gBAC5B,kBAAW,IAAM,CACf,IAAMC,EAAU,mBACVC,EAAO,eACbF,EAAgB,MAEhB,OAAO,aAAiB,IAAc,IAAI,aAAaC,EAASC,CAAI,EAAI,OAAO,OAAO,IAAI,MAAMD,CAAO,EAAG,CACxG,KAAAC,CACF,CAAC,CAAC,CACJ,EAAGH,CAAY,EACRC,EAAgB,MACzB,EAGaG,GAAY,IAAIC,IAA2B,CAEtD,QAAWC,KAAUD,EAAS,GAAIC,EAAO,QAAS,OAAO,YAAY,MAAMA,EAAO,MAAM,EAGxF,IAAML,EAAkB,IAAI,gBAC5B,QAAWK,KAAUD,EACnBC,EAAO,iBAAiB,QAAS,IAAML,EAAgB,MAAMK,EAAO,MAAM,EAAG,CAC3E,OAAQL,EAAgB,OACxB,KAAM,EACR,CAAC,EAEH,OAAOA,EAAgB,MACzB,ECHA,IAAMM,GAA+B,IAAIC,IAAS,MAAM,GAAGA,CAAI,EACzDC,GAAyBC,GAAuBA,EAAS,QAAU,KAAOA,EAAS,QAAU,IAC7FC,GAA4BC,GAAiC,yBAAyB,KAAKA,EAAQ,IAAI,cAAc,GAAK,EAAE,EA4ClI,SAASC,GAAeC,EAAU,CAChC,GAAI,CAACC,GAAcD,CAAG,EACpB,OAAOA,EAET,IAAME,EAA4B,CAChC,GAAGF,CACL,EACA,OAAW,CAACG,EAAGC,CAAC,IAAK,OAAO,QAAQF,CAAI,EAClCE,IAAM,QAAW,OAAOF,EAAKC,CAAC,EAEpC,OAAOD,CACT,CAGA,IAAMG,GAAiBC,GAAc,OAAOA,GAAS,WAAaL,GAAcK,CAAI,GAAK,MAAM,QAAQA,CAAI,GAAK,OAAOA,EAAK,QAAW,YAgFhI,SAASC,GAAe,CAC7B,QAAAC,EACA,eAAAC,EAAiBC,GAAKA,EACtB,QAAAC,EAAUlB,GACV,iBAAAmB,EACA,kBAAAC,EAAoBhB,GACpB,gBAAAiB,EAAkB,mBAClB,aAAAC,EACA,QAASC,EACT,gBAAiBC,EACjB,eAAgBC,EAChB,GAAGC,CACL,EAAwB,CAAC,EAA0F,CACjH,OAAI,OAAO,MAAU,KAAeR,IAAYlB,IAC9C,QAAQ,KAAK,2HAA2H,EAEnI,MAAO2B,EAAKC,EAAKC,IAAiB,CACvC,GAAM,CACJ,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,KAAAC,CACF,EAAIN,EACAO,EACA,CACF,IAAAC,EACA,QAAA/B,EAAU,IAAI,QAAQqB,EAAiB,OAAO,EAC9C,OAAAW,EAAS,OACT,gBAAAC,EAAkBd,GAAyB,OAC3C,eAAAe,EAAiBd,GAAwBvB,GACzC,QAAAsC,EAAUjB,EACV,GAAGkB,CACL,EAAI,OAAOd,GAAO,SAAW,CAC3B,IAAKA,CACP,EAAIA,EACAe,EAAsB,CACxB,GAAGhB,EACH,OAAQc,EAAUG,GAAUf,EAAI,OAAQgB,GAAcJ,CAAO,CAAC,EAAIZ,EAAI,OACtE,GAAGa,CACL,EACApC,EAAU,IAAI,QAAQC,GAAeD,CAAO,CAAC,EAC7CqC,EAAO,QAAW,MAAM1B,EAAeX,EAAS,CAC9C,SAAAyB,EACA,IAAAH,EACA,MAAAI,EACA,SAAAC,EACA,OAAAC,EACA,KAAAC,EACA,aAAAL,CACF,CAAC,GAAMxB,EACP,IAAMwC,EAAoBjC,GAAc8B,EAAO,IAAI,EAuBnD,GAnBIA,EAAO,MAAQ,MAAQ,CAACG,GAAqB,OAAOH,EAAO,MAAS,UACtEA,EAAO,QAAQ,OAAO,cAAc,EAElC,CAACA,EAAO,QAAQ,IAAI,cAAc,GAAKG,GACzCH,EAAO,QAAQ,IAAI,eAAgBrB,CAAe,EAEhDwB,GAAqBzB,EAAkBsB,EAAO,OAAO,IACvDA,EAAO,KAAO,KAAK,UAAUA,EAAO,KAAMpB,CAAY,GAInDoB,EAAO,QAAQ,IAAI,QAAQ,IAC1BJ,IAAoB,OACtBI,EAAO,QAAQ,IAAI,SAAU,kBAAkB,EACtCJ,IAAoB,QAC7BI,EAAO,QAAQ,IAAI,SAAU,4BAA4B,GAIzDL,EAAQ,CACV,IAAMS,EAAU,CAACV,EAAI,QAAQ,GAAG,EAAI,IAAM,IACpCW,EAAQ5B,EAAmBA,EAAiBkB,CAAM,EAAI,IAAI,gBAAgB/B,GAAe+B,CAAM,CAAC,EACtGD,GAAOU,EAAUC,CACnB,CACAX,EAAMY,GAASjC,EAASqB,CAAG,EAC3B,IAAMa,EAAU,IAAI,QAAQb,EAAKM,CAAM,EAEvCP,EAAO,CACL,QAFmB,IAAI,QAAQC,EAAKM,CAAM,CAG5C,EACA,IAAIvC,EACJ,GAAI,CACFA,EAAW,MAAMe,EAAQ+B,CAAO,CAClC,OAASC,EAAG,CACV,MAAO,CACL,MAAO,CACL,QAASA,aAAa,OAAS,OAAO,aAAiB,KAAeA,aAAa,eAAiBA,EAAE,OAAS,eAAiB,gBAAkB,cAClJ,MAAO,OAAOA,CAAC,CACjB,EACA,KAAAf,CACF,CACF,CACA,IAAMgB,EAAgBhD,EAAS,MAAM,EACrCgC,EAAK,SAAWgB,EAChB,IAAIC,EACAC,EAAuB,GAC3B,GAAI,CACF,IAAIC,EAKJ,GAJA,MAAM,QAAQ,IAAI,CAACC,EAAepD,EAAUmC,CAAe,EAAE,KAAKkB,GAAKJ,EAAaI,EAAGN,GAAKI,EAAsBJ,CAAC,EAGnHC,EAAc,KAAK,EAAE,KAAKK,GAAKH,EAAeG,EAAG,IAAM,CAAC,CAAC,CAAC,CAAC,EACvDF,EAAqB,MAAMA,CACjC,OAASJ,EAAG,CACV,MAAO,CACL,MAAO,CACL,OAAQ,gBACR,eAAgB/C,EAAS,OACzB,KAAMkD,EACN,MAAO,OAAOH,CAAC,CACjB,EACA,KAAAf,CACF,CACF,CACA,OAAOI,EAAepC,EAAUiD,CAAU,EAAI,CAC5C,KAAMA,EACN,KAAAjB,CACF,EAAI,CACF,MAAO,CACL,OAAQhC,EAAS,OACjB,KAAMiD,CACR,EACA,KAAAjB,CACF,CACF,EACA,eAAeoB,EAAepD,EAAoBmC,EAAkC,CAClF,GAAI,OAAOA,GAAoB,WAC7B,OAAOA,EAAgBnC,CAAQ,EAKjC,GAHImC,IAAoB,iBACtBA,EAAkBlB,EAAkBjB,EAAS,OAAO,EAAI,OAAS,QAE/DmC,IAAoB,OAAQ,CAC9B,IAAMmB,EAAO,MAAMtD,EAAS,KAAK,EACjC,OAAOsD,EAAK,OAAS,KAAK,MAAMA,CAAI,EAAI,IAC1C,CACA,OAAOtD,EAAS,KAAK,CACvB,CACF,CCrTO,IAAMuD,EAAN,KAAmB,CACxB,YAA4BC,EAA4BC,EAAY,OAAW,CAAnD,WAAAD,EAA4B,UAAAC,CAAwB,CAClF,ECeA,eAAeC,GAAeC,EAAkB,EAAGC,EAAqB,EAAGC,EAAsB,CAC/F,IAAMC,EAAW,KAAK,IAAIH,EAASC,CAAU,EACvCG,EAAU,CAAC,GAAG,KAAK,OAAO,EAAI,KAAQ,KAAOD,IAEnD,MAAM,IAAI,QAAc,CAACE,EAASC,IAAW,CAC3C,IAAMC,EAAY,WAAW,IAAMF,EAAQ,EAAGD,CAAO,EAGrD,GAAIF,EAAQ,CACV,IAAMM,EAAe,IAAM,CACzB,aAAaD,CAAS,EACtBD,EAAO,IAAI,MAAM,SAAS,CAAC,CAC7B,EAGIJ,EAAO,SACT,aAAaK,CAAS,EACtBD,EAAO,IAAI,MAAM,SAAS,CAAC,GAE3BJ,EAAO,iBAAiB,QAASM,EAAc,CAC7C,KAAM,EACR,CAAC,CAEL,CACF,CAAC,CACH,CAyBA,SAASC,GAAkDC,EAAkCC,EAAwC,CACnI,MAAM,OAAO,OAAO,IAAIC,EAAa,CACnC,MAAAF,EACA,KAAAC,CACF,CAAC,EAAG,CACF,iBAAkB,EACpB,CAAC,CACH,CAMA,SAASE,GAAcX,EAA2B,CAC5CA,EAAO,SACTO,GAAK,CACH,OAAQ,eACR,MAAO,SACT,CAAC,CAEL,CACA,IAAMK,GAAgB,CAAC,EACjBC,GAAkF,CAACC,EAAWC,IAAmB,MAAOC,EAAMC,EAAKC,IAAiB,CAIxJ,IAAMC,EAA+B,CAAC,GAAIJ,GAAyBH,IAAe,YAAaM,GAAuBN,IAAe,UAAU,EAAE,OAAO,GAAK,IAAM,MAAS,EACtK,CAACb,CAAU,EAAIoB,EAAmB,MAAM,EAAE,EAI1CC,EAIF,CACF,WAAArB,EACA,QAASF,GACT,eAVoD,CAACwB,EAAGC,EAAI,CAC5D,QAAAxB,CACF,IAAMA,GAAWC,EASf,GAAGgB,EACH,GAAGG,CACL,EACIK,EAAQ,EACZ,OAAa,CAEXZ,GAAcM,EAAI,MAAM,EACxB,GAAI,CACF,IAAMO,EAAS,MAAMV,EAAUE,EAAMC,EAAKC,CAAY,EAEtD,GAAIM,EAAO,MACT,MAAM,IAAId,EAAac,CAAM,EAE/B,OAAOA,CACT,OAASC,EAAQ,CAEf,GADAF,IACIE,EAAE,iBAAkB,CACtB,GAAIA,aAAaf,EACf,OAAOe,EAAE,MAIX,MAAMA,CACR,CACA,GAAIA,aAAaf,GACf,GAAI,CAACU,EAAQ,eAAeK,EAAE,MAAM,MAA8BT,EAAM,CACtE,QAASO,EACT,aAAcN,EACd,aAAAC,CACF,CAAC,EACC,OAAOO,EAAE,cAIPF,EAAQH,EAAQ,WAElB,MAAO,CACL,MAAOK,CACT,EAKJd,GAAcM,EAAI,MAAM,EACxB,GAAI,CACF,MAAMG,EAAQ,QAAQG,EAAOH,EAAQ,WAAYH,EAAI,MAAM,CAC7D,OAASS,EAAc,CAErB,MAAAf,GAAcM,EAAI,MAAM,EAElBS,CACR,CACF,CACF,CACF,EAkCaH,GAAuB,OAAO,OAAOV,GAAkB,CAClE,KAAAN,EACF,CAAC,ECjMM,IAAMoB,GAAkB,UACzBC,GAAS,SACTC,GAAU,UACVC,GAAQ,QACRC,GAAU,UACVC,GAAmB,mBACZC,GAAyBC,GAAa,GAAGP,EAAe,GAAGI,EAAO,EAAE,EACpEI,GAA6BD,GAAa,GAAGP,EAAe,KAAKI,EAAO,EAAE,EAC1EK,GAA0BF,GAAa,GAAGP,EAAe,GAAGC,EAAM,EAAE,EACpES,GAA2BH,GAAa,GAAGP,EAAe,GAAGE,EAAO,EAAE,EAC7ES,GAAU,CACd,QAAAL,GACA,YAAAE,GACA,SAAAC,GACA,UAAAC,EACF,EACIE,GAAc,GAkBX,SAASC,GAAeC,EAAwCC,EAKrD,CAChB,SAASC,GAAiB,CACxB,GAAM,CAACC,EAAaC,EAAiBC,EAAcC,CAAa,EAAI,CAACd,GAASE,GAAaC,GAAUC,EAAS,EAAE,IAAIW,GAAU,IAAMP,EAASO,EAAO,CAAC,CAAC,EAChJC,EAAyB,IAAM,CAC/B,OAAO,SAAS,kBAAoB,UACtCL,EAAY,EAEZC,EAAgB,CAEpB,EACIK,EAAc,IAAM,CACtBX,GAAc,EAChB,EACA,GAAI,CAACA,IACC,OAAO,OAAW,KAAe,OAAO,iBAAkB,CAO5D,IAASY,EAAT,SAAyBC,EAAc,CACrC,OAAO,QAAQC,CAAQ,EAAE,QAAQ,CAAC,CAACC,EAAOC,CAAO,IAAM,CACjDH,EACF,OAAO,iBAAiBE,EAAOC,EAAS,EAAK,EAE7C,OAAO,oBAAoBD,EAAOC,CAAO,CAE7C,CAAC,CACH,EARS,IAAAJ,IANT,IAAME,EAAW,CACf,CAACvB,EAAK,EAAGc,EACT,CAACZ,EAAgB,EAAGiB,EACpB,CAACrB,EAAM,EAAGkB,EACV,CAACjB,EAAO,EAAGkB,CACb,EAWAI,EAAgB,EAAI,EACpBZ,GAAc,GACdW,EAAc,IAAM,CAClBC,EAAgB,EAAK,EACrBZ,GAAc,EAChB,CACF,CAEF,OAAOW,CACT,CACA,OAAOR,EAAgBA,EAAcD,EAAUH,EAAO,EAAIK,EAAe,CAC3E,CCqTO,IAAMa,GAAiB,QACjBC,GAAoB,WACpBC,GAAyB,gBA+c/B,SAASC,GAAkB,EAA8G,CAC9I,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAiH,CACpJ,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAA0B,EAA2H,CACnK,OAAO,EAAE,OAASH,EACpB,CACO,SAASI,GAAqB,EAAwI,CAC3K,OAAOH,GAAkB,CAAC,GAAKE,GAA0B,CAAC,CAC5D,CA4DO,SAASE,GAA+DC,EAA+FC,EAAgCC,EAA8BC,EAAoBC,EAA4BC,EAAuE,CACjW,IAAMC,EAAmBC,GAAWP,CAAW,EAAIA,EAAYC,EAAsBC,EAAoBC,EAAUC,CAAgB,EAAIJ,EACvI,OAAIM,EACKE,GAAUF,EAAkBG,GAAcC,GAAOL,EAAeM,GAAqBD,CAAG,CAAC,CAAC,EAE5F,CAAC,CACV,CACA,SAASH,GAAcK,EAAiC,CACtD,OAAO,OAAOA,GAAM,UACtB,CACO,SAASD,GAAqBX,EAAiE,CACpG,OAAO,OAAOA,GAAgB,SAAW,CACvC,KAAMA,CACR,EAAIA,CACN,CC/6BA,OAAS,WAAAa,GAAS,WAAAC,GAAS,gBAAAC,GAAc,YAAAC,GAAU,eAAAC,GAAa,sBAAAC,GAAoB,iBAAAC,OAAqB,QCAzG,MAAkE,mBC+G3D,SAASC,GAAkCC,EAA4BC,EAAwC,CACpH,OAAOD,EAAQ,MAAMC,CAAQ,CAC/B,CC5FO,IAAMC,EAAwB,CAAkFC,EAAkCC,IAA+BD,EAAQ,oBAAoBC,CAAY,EFEzN,IAAMC,GAAqB,OAAO,cAAc,EAC1CC,GAAiBC,GAAuB,OAAOA,EAAIF,EAAkB,GAAM,WA2IjF,SAASG,GAAc,CAC5B,mBAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,cAAAC,EACA,IAAAC,EACA,QAAAC,EACA,iBAAAC,CACF,EAQG,CACD,IAAMC,EAAqBC,GAAuBF,EAAiBE,CAAQ,GAAG,eACxEC,EAAuBD,GAAuBF,EAAiBE,CAAQ,GAAG,iBAC1E,CACJ,uBAAAE,EACA,qBAAAC,EACA,0BAAAC,CACF,EAAIR,EAAI,gBACR,MAAO,CACL,mBAAAS,EACA,2BAAAC,EACA,sBAAAC,EACA,qBAAAC,EACA,wBAAAC,EACA,uBAAAC,EACA,yBAAAC,CACF,EACA,SAASH,EAAqBI,EAAsBC,EAAgB,CAClE,OAAQb,GAAuB,CAC7B,IAAMc,EAAqBC,EAAsBlB,EAASe,CAAY,EAChEI,EAAgBxB,EAAmB,CACvC,UAAAqB,EACA,mBAAAC,EACA,aAAAF,CACF,CAAC,EACD,OAAOb,EAAkBC,CAAQ,GAAG,IAAIgB,CAAa,CACvD,CACF,CACA,SAASP,EAKTQ,EAAuBC,EAAkC,CACvD,OAAQlB,GACCC,EAAoBD,CAAQ,GAAG,IAAIkB,CAAwB,CAEtE,CACA,SAASR,GAAyB,CAChC,OAAQV,GAAuBmB,GAAoBpB,EAAkBC,CAAQ,CAAC,CAChF,CACA,SAASW,GAA2B,CAClC,OAAQX,GAAuBmB,GAAoBlB,EAAoBD,CAAQ,CAAC,CAClF,CACA,SAASoB,EAAkBpB,EAAoB,CAc/C,CACA,SAASqB,EAA2DT,EAAsBE,EAA4G,CACpM,IAAMQ,EAA0C,CAAChC,EAAK,CACpD,UAAAiC,EAAY,GACZ,aAAAC,EACA,oBAAAC,EACA,CAACrC,IAAqBsC,EACtB,GAAGC,CACL,EAAI,CAAC,IAAM,CAAC3B,EAAU4B,IAAa,CACjC,IAAMZ,EAAgBxB,EAAmB,CACvC,UAAWF,EACX,mBAAAwB,EACA,aAAAF,CACF,CAAC,EACGiB,EACEC,EAAkB,CACtB,GAAGH,EACH,KAAMI,GACN,UAAAR,EACA,aAAcC,EACd,oBAAAC,EACA,aAAAb,EACA,aAActB,EACd,cAAA0B,EACA,CAAC5B,EAAkB,EAAGsC,CACxB,EACA,GAAIM,GAAkBlB,CAAkB,EACtCe,EAAQpC,EAAWqC,CAAe,MAC7B,CACL,GAAM,CACJ,UAAAG,EACA,iBAAAC,EACA,mBAAAC,CACF,EAAIR,EACJE,EAAQnC,EAAmB,CACzB,GAAIoC,EAGJ,UAAAG,EACA,iBAAAC,EACA,mBAAAC,CACF,CAAC,CACH,CACA,IAAMC,EAAYxC,EAAI,UAAUgB,CAAY,EAAiC,OAAOtB,CAAG,EACjF+C,EAAcrC,EAAS6B,CAAK,EAC5BS,EAAaF,EAASR,EAAS,CAAC,EAEtC,GAAM,CACJ,UAAAW,EACA,MAAAC,CACF,EAAIH,EACEI,EAAuBH,EAAW,YAAcC,EAChDG,EAAe3C,EAAkBC,CAAQ,GAAG,IAAIgB,CAAa,EAC7D2B,EAAkB,IAAMP,EAASR,EAAS,CAAC,EAC3CgB,EAAuC,OAAO,OAAQlB,EAG5DW,EAAY,KAAKM,CAAe,EAAIF,GAAwB,CAACC,EAG7D,QAAQ,QAAQJ,CAAU,EAG1B,QAAQ,IAAI,CAACI,EAAcL,CAAW,CAAC,EAAE,KAAKM,CAAe,EAAwB,CACnF,IAAArD,EACA,UAAAiD,EACA,oBAAAd,EACA,cAAAT,EACA,MAAAwB,EACA,MAAM,QAAS,CACb,IAAMK,EAAS,MAAMD,EACrB,GAAIC,EAAO,QACT,MAAMA,EAAO,MAEf,OAAOA,EAAO,IAChB,EACA,QAAUC,GAA6B9C,EAASsB,EAAYhC,EAAK,CAC/D,UAAW,GACX,aAAc,GACd,GAAGwD,CACL,CAAC,CAAC,EACF,aAAc,CACRvB,GAAWvB,EAASE,EAAuB,CAC7C,cAAAc,EACA,UAAAuB,CACF,CAAC,CAAC,CACJ,EACA,0BAA0BO,EAA8B,CACtDF,EAAa,oBAAsBE,EACnC9C,EAASI,EAA0B,CACjC,aAAAQ,EACA,UAAA2B,EACA,cAAAvB,EACA,QAAA8B,CACF,CAAC,CAAC,CACJ,CACF,CAAC,EACD,GAAI,CAACJ,GAAgB,CAACD,GAAwB,CAACf,EAAc,CAC3D,IAAMqB,EAAiBhD,EAAkBC,CAAQ,EACjD+C,EAAe,IAAI/B,EAAe4B,CAAY,EAC9CA,EAAa,KAAK,IAAM,CACtBG,EAAe,OAAO/B,CAAa,CACrC,CAAC,CACH,CACA,OAAO4B,CACT,EACA,OAAOtB,CACT,CACA,SAASjB,EAAmBO,EAAsBE,EAAyD,CAEzG,OADkDO,EAAsBT,EAAcE,CAAkB,CAE1G,CACA,SAASR,EAA2BM,EAAsBE,EAAsE,CAE9H,OADkEO,EAAsBT,EAAcE,CAAkB,CAE1H,CACA,SAASP,EAAsBK,EAAuD,CACpF,MAAO,CAACtB,EAAK,CACX,MAAA0D,EAAQ,GACR,cAAAC,CACF,EAAI,CAAC,IAAM,CAACjD,EAAU4B,IAAa,CACjC,IAAMC,EAAQlC,EAAc,CAC1B,KAAM,WACN,aAAAiB,EACA,aAActB,EACd,MAAA0D,EACA,cAAAC,CACF,CAAC,EACKZ,EAAcrC,EAAS6B,CAAK,EAElC,GAAM,CACJ,UAAAU,EACA,MAAAC,EACA,OAAAU,CACF,EAAIb,EACEc,EAAqBC,GAAcf,EAAY,OAAO,EAAE,KAAKgB,IAAS,CAC1E,KAAAA,CACF,EAAE,EAAGC,IAAU,CACb,MAAAA,CACF,EAAE,EACIC,EAAQ,IAAM,CAClBvD,EAASG,EAAqB,CAC5B,UAAAoC,EACA,cAAAU,CACF,CAAC,CAAC,CACJ,EACMO,EAAM,OAAO,OAAOL,EAAoB,CAC5C,IAAKd,EAAY,IACjB,UAAAE,EACA,MAAAC,EACA,OAAAU,EACA,MAAAK,CACF,CAAC,EACKE,EAAmBxD,EAAoBD,CAAQ,EACrD,OAAAyD,EAAiB,IAAIlB,EAAWiB,CAAG,EACnCA,EAAI,KAAK,IAAM,CACbC,EAAiB,OAAOlB,CAAS,CACnC,CAAC,EACGU,IACFQ,EAAiB,IAAIR,EAAeO,CAAG,EACvCA,EAAI,KAAK,IAAM,CACTC,EAAiB,IAAIR,CAAa,IAAMO,GAC1CC,EAAiB,OAAOR,CAAa,CAEzC,CAAC,GAEIO,CACT,CACF,CACF,CGrZA,OAAS,eAAAE,OAAmB,yBAErB,IAAMC,GAAN,cAA+BD,EAAY,CAChD,YAAYE,EAA2DC,EAA4BC,EAAmDC,EAAc,CAClK,MAAMH,CAAM,EADyD,WAAAC,EAA4B,gBAAAC,EAAmD,aAAAC,CAEtJ,CACF,EACaC,GAAa,CAACC,EAA0DH,IAA2B,MAAM,QAAQG,CAAoB,EAAIA,EAAqB,SAASH,CAAU,EAAI,CAAC,CAACG,EACpM,eAAsBC,GAAiDC,EAAgBC,EAAeN,EAAmCO,EAA4D,CACnM,IAAMC,EAAS,MAAMH,EAAO,WAAW,EAAE,SAASC,CAAI,EACtD,GAAIE,EAAO,OACT,MAAM,IAAIX,GAAiBW,EAAO,OAAQF,EAAMN,EAAYO,CAAM,EAEpE,OAAOC,EAAO,KAChB,CC+DA,SAASC,GAAyBC,EAA+B,CAC/D,OAAOA,CACT,CA8BO,IAAMC,GAAqB,CAAiCC,EAAS,CAAC,KAGpE,CACL,GAAGA,EACH,CAACC,EAAgB,EAAG,EACtB,GAEK,SAASC,GAAgH,CAC9H,YAAAC,EACA,UAAAC,EACA,QAAS,CACP,oBAAAC,CACF,EACA,mBAAAC,EACA,IAAAC,EACA,cAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,mBAAoBC,EACpB,qBAAsBC,CACxB,EAWG,CAED,IAAMC,EAAkE,CAACC,EAAcd,EAAKe,EAASC,IAAmB,CAACC,EAAUC,IAAa,CAC9I,IAAMC,EAAqBd,EAAoBS,CAAY,EACrDM,EAAgBd,EAAmB,CACvC,UAAWN,EACX,mBAAAmB,EACA,aAAAL,CACF,CAAC,EAKD,GAJAG,EAASV,EAAI,gBAAgB,mBAAmB,CAC9C,cAAAa,EACA,QAAAL,CACF,CAAC,CAAC,EACE,CAACC,EACH,OAEF,IAAMK,EAAWd,EAAI,UAAUO,CAAY,EAAE,OAAOd,CAAG,EAEvDkB,EAAS,CAA6B,EAChCI,EAAeC,GAAoBJ,EAAmB,aAAcE,EAAS,KAAM,OAAWrB,EAAK,CAAC,EAAGQ,CAAa,EAC1HS,EAASV,EAAI,gBAAgB,iBAAiB,CAAC,CAC7C,cAAAa,EACA,aAAAE,CACF,CAAC,CAAC,CAAC,CACL,EACA,SAASE,EAAcC,EAAiBC,EAASC,EAAM,EAAa,CAClE,IAAMC,EAAW,CAACF,EAAM,GAAGD,CAAK,EAChC,OAAOE,GAAOC,EAAS,OAASD,EAAMC,EAAS,MAAM,EAAG,EAAE,EAAIA,CAChE,CACA,SAASC,EAAYJ,EAAiBC,EAASC,EAAM,EAAa,CAChE,IAAMC,EAAW,CAAC,GAAGH,EAAOC,CAAI,EAChC,OAAOC,GAAOC,EAAS,OAASD,EAAMC,EAAS,MAAM,CAAC,EAAIA,CAC5D,CACA,IAAME,EAAoE,CAAChB,EAAcd,EAAK+B,EAAcf,EAAiB,KAAS,CAACC,EAAUC,IAAa,CAE5J,IAAMc,EADqBzB,EAAI,UAAUO,CAAY,EACb,OAAOd,CAAG,EAElDkB,EAAS,CAA6B,EAChCe,EAAuB,CAC3B,QAAS,CAAC,EACV,eAAgB,CAAC,EACjB,KAAM,IAAMhB,EAASV,EAAI,KAAK,eAAeO,EAAcd,EAAKiC,EAAI,eAAgBjB,CAAc,CAAC,CACrG,EACA,GAAIgB,EAAa,SAAWE,EAC1B,OAAOD,EAET,IAAIZ,EACJ,GAAI,SAAUW,EACZ,GAAIG,GAAYH,EAAa,IAAI,EAAG,CAClC,GAAM,CAACI,EAAOrB,EAASsB,CAAc,EAAIC,GAAmBN,EAAa,KAAMD,CAAY,EAC3FE,EAAI,QAAQ,KAAK,GAAGlB,CAAO,EAC3BkB,EAAI,eAAe,KAAK,GAAGI,CAAc,EACzChB,EAAWe,CACb,MACEf,EAAWU,EAAaC,EAAa,IAAI,EACzCC,EAAI,QAAQ,KAAK,CACf,GAAI,UACJ,KAAM,CAAC,EACP,MAAOZ,CACT,CAAC,EACDY,EAAI,eAAe,KAAK,CACtB,GAAI,UACJ,KAAM,CAAC,EACP,MAAOD,EAAa,IACtB,CAAC,EAGL,OAAIC,EAAI,QAAQ,SAAW,GAG3BhB,EAASV,EAAI,KAAK,eAAeO,EAAcd,EAAKiC,EAAI,QAASjB,CAAc,CAAC,EACzEiB,CACT,EACMM,EAA4D,CAACzB,EAAcd,EAAKoC,IAAUnB,GAElFA,EAAUV,EAAI,UAAUO,CAAY,EAA8E,SAASd,EAAK,CAC1I,UAAW,GACX,aAAc,GACd,CAACwC,EAAkB,EAAG,KAAO,CAC3B,KAAMJ,CACR,EACF,CAAC,CAAC,EAGEK,EAAkC,CAACtB,EAA4DuB,IAC5FvB,EAAmB,OAASA,EAAmBuB,CAAkB,EAAIvB,EAAmBuB,CAAkB,EAA0B7C,GAIvI8C,EAED,MAAO3C,EAAK,CACf,OAAA4C,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAA9B,EACA,SAAAC,EACA,MAAA8B,CACF,IAAM,CACJ,IAAM7B,EAAqBd,EAAoBL,EAAI,YAAY,EACzD,CACJ,WAAAiD,EACA,qBAAAC,EAAuBtC,CACzB,EAAIO,EACEgC,EAAUnD,EAAI,OAASoD,GAC7B,GAAI,CACF,IAAIC,EAAuCxD,GACrCyD,EAAe,CACnB,OAAAV,EACA,MAAAC,EACA,SAAA5B,EACA,SAAAC,EACA,MAAA8B,EACA,SAAUhD,EAAI,aACd,KAAMA,EAAI,KACV,OAAQmD,EAAUI,EAAcvD,EAAKkB,EAAS,CAAC,EAAI,OACnD,cAAeiC,EAAUnD,EAAI,cAAgB,MAC/C,EACMwD,EAAeL,EAAUnD,EAAIwC,EAAkB,EAAI,OACrDiB,EAIEC,EAAY,MAAOC,EAAsCC,EAAgBC,GAAkBC,IAAkD,CAGjJ,GAAIF,GAAS,MAAQD,EAAK,MAAM,OAC9B,OAAO,QAAQ,QAAQ,CACrB,KAAAA,CACF,CAAC,EAEH,IAAMI,GAAoD,CACxD,SAAU/D,EAAI,aACd,UAAW4D,CACb,EACMI,EAAe,MAAMC,EAAeF,EAAa,EACjDG,GAAQJ,EAAWtC,EAAaK,EACtC,MAAO,CACL,KAAM,CACJ,MAAOqC,GAAMP,EAAK,MAAOK,EAAa,KAAMH,EAAQ,EACpD,WAAYK,GAAMP,EAAK,WAAYC,EAAOC,EAAQ,CACpD,EACA,KAAMG,EAAa,IACrB,CACF,EAIA,eAAeC,EAAeF,EAAmD,CAC/E,IAAII,EACE,CACJ,aAAAC,GACA,UAAAC,EACA,kBAAAC,GACA,eAAAC,CACF,EAAIpD,EA0CJ,GAzCIkD,GAAa,CAACG,GAAWtB,EAAsB,KAAK,IACtDa,EAAgB,MAAMU,GAAgBJ,EAAWN,EAAe,YAAa,CAAC,CAC9E,GAEEP,EAEFW,EAASX,EAAa,EACbrC,EAAmB,OAG5BkC,EAAoBZ,EAAgCtB,EAAoB,mBAAmB,EAC3FgD,EAAS,MAAM/D,EAAUe,EAAmB,MAAM4C,CAAoB,EAAGT,EAAcc,EAAmB,GAE1GD,EAAS,MAAMhD,EAAmB,QAAQ4C,EAAsBT,EAAcc,GAAqBpE,IAAOI,EAAUJ,GAAKsD,EAAcc,EAAmB,CAAC,EA4BzJD,EAAO,MAAO,MAAM,IAAIO,EAAaP,EAAO,MAAOA,EAAO,IAAI,EAClE,GAAI,CACF,KAAAR,EACF,EAAIQ,EACAG,IAAqB,CAACE,GAAWtB,EAAsB,aAAa,IACtES,GAAO,MAAMc,GAAgBH,GAAmBH,EAAO,KAAM,oBAAqBA,EAAO,IAAI,GAE/F,IAAIQ,GAAsB,MAAMtB,EAAkBM,GAAMQ,EAAO,KAAMJ,CAAa,EAClF,OAAIQ,GAAkB,CAACC,GAAWtB,EAAsB,UAAU,IAChEyB,GAAsB,MAAMF,GAAgBF,EAAgBI,GAAqB,iBAAkBR,EAAO,IAAI,GAEzG,CACL,GAAGA,EACH,KAAMQ,EACR,CACF,CACA,GAAIxB,GAAW,yBAA0BhC,EAAoB,CAE3D,GAAM,CACJ,qBAAAyD,CACF,EAAIzD,EAGE,CACJ,SAAA0C,EAAW,GACb,EAAIe,EAGEC,GAAsB7E,EAAmC,oBAAsB4E,EAAqB,oBAAsB,GAC5HT,EAIEW,GAAY,CAChB,MAAO,CAAC,EACR,WAAY,CAAC,CACf,EACMC,EAAatE,EAAU,iBAAiBS,EAAS,EAAGlB,EAAI,aAAa,GAAG,KASxEgF,GADNzB,EAAcvD,EAAKkB,EAAS,CAAC,GAAK,CAAElB,EAAmC,WAClB,CAAC+E,EAAaD,GAAYC,EAI/E,GAAI,cAAe/E,GAAOA,EAAI,WAAagF,GAAa,MAAM,OAAQ,CACpE,IAAMlB,GAAW9D,EAAI,YAAc,WAE7B4D,IADcE,GAAWmB,GAAuBC,IAC5BN,EAAsBI,GAAchF,EAAI,YAAY,EAC9EmE,EAAS,MAAMT,EAAUsB,GAAcpB,GAAOC,EAAUC,EAAQ,CAClE,KAAO,CAGL,GAAM,CACJ,iBAAAqB,GAAmBP,EAAqB,gBAC1C,EAAI5E,EAKEoF,GAAmBL,GAAY,YAAc,CAAC,EAC9CM,GAAiBD,GAAiB,CAAC,GAAKD,GACxCG,GAAaF,GAAiB,OAWpC,GARAjB,EAAS,MAAMT,EAAUsB,GAAcK,GAAgBxB,CAAQ,EAC3DL,IAGFW,EAAS,CACP,KAAOA,EAAO,KAAwC,MAAM,CAAC,CAC/D,GAEEU,GAEF,QAASU,GAAI,EAAGA,GAAID,GAAYC,KAAK,CACnC,IAAM3B,GAAQsB,GAAiBN,EAAsBT,EAAO,KAAwCnE,EAAI,YAAY,EACpHmE,EAAS,MAAMT,EAAUS,EAAO,KAAwCP,GAAOC,CAAQ,CACzF,CAEJ,CACAJ,EAAwBU,CAC1B,MAEEV,EAAwB,MAAMQ,EAAejE,EAAI,YAAY,EAE/D,OAAIiD,GAAc,CAACuB,GAAWtB,EAAsB,MAAM,GAAKO,EAAsB,OACnFA,EAAsB,KAAO,MAAMgB,GAAgBxB,EAAYQ,EAAsB,KAAM,aAAcA,EAAsB,IAAI,GAI9HV,EAAiBU,EAAsB,KAAM1D,GAAmB,CACrE,mBAAoB,KAAK,IAAI,EAC7B,cAAe0D,EAAsB,IACvC,CAAC,CAAC,CACJ,OAAS+B,EAAO,CACd,IAAIC,EAAcD,EAClB,GAAIC,aAAuBf,EAAc,CACvC,IAAIgB,EAAyBjD,EAAgCtB,EAAoB,wBAAwB,EACnG,CACJ,uBAAAwE,EACA,oBAAAC,CACF,EAAIzE,EACA,CACF,MAAAiB,EACA,KAAAyD,CACF,EAAIJ,EACJ,GAAI,CACEE,GAA0B,CAACnB,GAAWtB,EAAsB,kBAAkB,IAChFd,EAAQ,MAAMqC,GAAgBkB,EAAwBvD,EAAO,yBAA0ByD,CAAI,GAEzF5C,GAAc,CAACuB,GAAWtB,EAAsB,MAAM,IACxD2C,EAAO,MAAMpB,GAAgBxB,EAAY4C,EAAM,aAAcA,CAAI,GAEnE,IAAIC,EAA2B,MAAMJ,EAAuBtD,EAAOyD,EAAM7F,EAAI,YAAY,EACzF,OAAI4F,GAAuB,CAACpB,GAAWtB,EAAsB,eAAe,IAC1E4C,EAA2B,MAAMrB,GAAgBmB,EAAqBE,EAA0B,sBAAuBD,CAAI,GAEtH/C,EAAgBgD,EAA0B/F,GAAmB,CAClE,cAAe8F,CACjB,CAAC,CAAC,CACJ,OAASE,EAAG,CACVN,EAAcM,CAChB,CACF,CACA,GAAI,CACF,GAAIN,aAAuBO,GAAkB,CAC3C,IAAMC,EAA0B,CAC9B,SAAUjG,EAAI,aACd,IAAKA,EAAI,aACT,KAAMA,EAAI,KACV,cAAemD,EAAUnD,EAAI,cAAgB,MAC/C,EACAmB,EAAmB,kBAAkBsE,EAAaQ,CAAI,EACtDvF,IAAkB+E,EAAaQ,CAAI,EACnC,GAAM,CACJ,mBAAAC,EAAqBvF,CACvB,EAAIQ,EACJ,GAAI+E,EACF,OAAOpD,EAAgBoD,EAAmBT,EAAaQ,CAAI,EAAGlG,GAAmB,CAC/E,cAAe0F,EAAY,OAC7B,CAAC,CAAC,CAEN,CACF,OAASM,EAAG,CACVN,EAAcM,CAChB,CAKE,cAAQ,MAAMN,CAAW,EAErBA,CACR,CACF,EACA,SAASlC,EAAcvD,EAAoBmG,EAA4C,CACrF,IAAMC,EAAe3F,EAAU,iBAAiB0F,EAAOnG,EAAI,aAAa,EAClEqG,EAA8B5F,EAAU,aAAa0F,CAAK,EAAE,0BAC5DG,EAAeF,GAAc,mBAC7BG,EAAavG,EAAI,eAAiBA,EAAI,WAAaqG,GACzD,OAAIE,EAEKA,IAAe,KAAS,OAAO,IAAI,IAAM,EAAI,OAAOD,CAAY,GAAK,KAAQC,EAE/E,EACT,CACA,IAAMC,EAAmB,IACKC,GAEzB,GAAGtG,CAAW,gBAAiBwC,EAAiB,CACjD,eAAe,CACb,IAAA3C,CACF,EAAG,CACD,IAAMmB,EAAqBd,EAAoBL,EAAI,YAAY,EAC/D,OAAOD,GAAmB,CACxB,iBAAkB,KAAK,IAAI,EAC3B,GAAI2G,GAA0BvF,CAAkB,EAAI,CAClD,UAAYnB,EAAmC,SACjD,EAAI,CAAC,CACP,CAAC,CACH,EACA,UAAU2G,EAAe,CACvB,SAAAzF,CACF,EAAG,CACD,IAAMiF,EAAQjF,EAAS,EACjBkF,EAAe3F,EAAU,iBAAiB0F,EAAOQ,EAAc,aAAa,EAC5EL,EAAeF,GAAc,mBAC7BQ,EAAaD,EAAc,aAC3BE,EAAcT,GAAc,aAC5BjF,EAAqBd,EAAoBsG,EAAc,YAAY,EACnEG,EAAaH,EAA6C,UAKhE,OAAII,GAAcJ,CAAa,EACtB,GAILP,GAAc,SAAW,UACpB,GAIL7C,EAAcoD,EAAeR,CAAK,GAGlCa,GAAkB7F,CAAkB,GAAKA,GAAoB,eAAe,CAC9E,WAAAyF,EACA,YAAAC,EACA,cAAeT,EACf,MAAAD,CACF,CAAC,EACQ,GAIL,EAAAG,GAAgB,CAACQ,EAKvB,EACA,2BAA4B,EAC9B,CAAC,EAGGG,EAAaT,EAAgC,EAC7CU,EAAqBV,EAA6C,EAClEW,EAAgBV,GAEnB,GAAGtG,CAAW,mBAAoBwC,EAAiB,CACpD,gBAAiB,CACf,OAAO5C,GAAmB,CACxB,iBAAkB,KAAK,IAAI,CAC7B,CAAC,CACH,CACF,CAAC,EACKqH,EAAeC,GAEhB,UAAWA,EACVC,EAAaD,GAEd,gBAAiBA,EAChBE,EAAW,CAA+CzG,EAA4Bd,EAAUqH,EAA2B,CAAC,IAAkD,CAACpG,EAAwCC,IAAwB,CACnP,IAAMsG,EAAQJ,EAAYC,CAAO,GAAKA,EAAQ,MACxCI,EAASH,EAAUD,CAAO,GAAKA,EAAQ,YACvCK,EAAc,CAACF,EAAiB,KAAS,CAC7C,IAAMH,EAA0C,CAC9C,aAAcG,EACd,UAAW,EACb,EACA,OAAQjH,EAAI,UAAUO,CAAY,EAAiC,SAASd,EAAKqH,CAAO,CAC1F,EACMM,EAAoBpH,EAAI,UAAUO,CAAY,EAAiC,OAAOd,CAAG,EAAEkB,EAAS,CAAC,EAC3G,GAAIsG,EACFvG,EAASyG,EAAY,CAAC,UACbD,EAAQ,CACjB,IAAMG,EAAkBD,GAAkB,mBAC1C,GAAI,CAACC,EAAiB,CACpB3G,EAASyG,EAAY,CAAC,EACtB,MACF,EACyB,OAAO,IAAI,IAAM,EAAI,OAAO,IAAI,KAAKE,CAAe,CAAC,GAAK,KAAQH,GAEzFxG,EAASyG,EAAY,CAAC,CAE1B,MAEEzG,EAASyG,EAAY,EAAK,CAAC,CAE/B,EACA,SAASG,EAAgB/G,EAAsB,CAC7C,OAAQgH,GAAyCA,GAAQ,MAAM,KAAK,eAAiBhH,CACvF,CACA,SAASiH,EAAiJC,EAAclH,EAAsB,CAC5L,MAAO,CACL,aAAcmH,GAAQC,GAAUF,CAAK,EAAGH,EAAgB/G,CAAY,CAAC,EACrE,eAAgBmH,GAAQE,EAAYH,CAAK,EAAGH,EAAgB/G,CAAY,CAAC,EACzE,cAAemH,GAAQG,GAAWJ,CAAK,EAAGH,EAAgB/G,CAAY,CAAC,CACzE,CACF,CACA,MAAO,CACL,WAAAmG,EACA,cAAAE,EACA,mBAAAD,EACA,SAAAK,EACA,gBAAAzF,EACA,gBAAAS,EACA,eAAA1B,EACA,uBAAAkH,CACF,CACF,CACO,SAAS7C,GAAiBmC,EAAgE,CAC/F,MAAAgB,EACA,WAAAC,CACF,EAAmCC,EAAwC,CACzE,IAAMC,EAAYH,EAAM,OAAS,EACjC,OAAOhB,EAAQ,iBAAiBgB,EAAMG,CAAS,EAAGH,EAAOC,EAAWE,CAAS,EAAGF,EAAYC,CAAQ,CACtG,CACO,SAAStD,GAAqBoC,EAAgE,CACnG,MAAAgB,EACA,WAAAC,CACF,EAAmCC,EAAwC,CACzE,OAAOlB,EAAQ,uBAAuBgB,EAAM,CAAC,EAAGA,EAAOC,EAAW,CAAC,EAAGA,EAAYC,CAAQ,CAC5F,CACO,SAASE,GAAyBX,EAAqJY,EAA0CrI,EAA0CG,EAA+B,CAC/S,OAAOe,GAAoBlB,EAAoByH,EAAO,KAAK,IAAI,YAAY,EAAEY,CAAI,EAAiDP,EAAYL,CAAM,EAAIA,EAAO,QAAU,OAAWa,GAAoBb,CAAM,EAAIA,EAAO,QAAU,OAAWA,EAAO,KAAK,IAAI,aAAc,kBAAmBA,EAAO,KAAOA,EAAO,KAAK,cAAgB,OAAWtH,CAAa,CACnW,CC7oBO,SAASoI,GAAcC,EAAwB,CACpD,OAAQC,GAAQD,CAAK,EAAIE,GAAQF,CAAK,EAAIA,CAC5C,CCyCA,SAASG,GAA4BC,EAAwBC,EAA8BC,EAA6E,CACtK,IAAMC,EAAWH,EAAMC,CAAa,EAChCE,GACFD,EAAOC,CAAQ,CAEnB,CAWO,SAASC,GAAoBC,EAQb,CACrB,OAAQ,QAASA,EAAKA,EAAG,IAAI,cAAgBA,EAAG,gBAAkBA,EAAG,SACvE,CACA,SAASC,GAA+BN,EAA2BK,EAKhEH,EAAmD,CACpD,IAAMC,EAAWH,EAAMI,GAAoBC,CAAE,CAAC,EAC1CF,GACFD,EAAOC,CAAQ,CAEnB,CACA,IAAMI,GAAe,CAAC,EACf,SAASC,GAAW,CACzB,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,mBAAAC,EACA,QAAS,CACP,oBAAqBC,EACrB,OAAAC,EACA,uBAAAC,EACA,mBAAAC,CACF,EACA,cAAAC,EACA,OAAAC,CACF,EASG,CACD,IAAMC,EAAgBC,GAAa,GAAGX,CAAW,gBAAgB,EACjE,SAASY,EAAuBC,EAAwBC,EAAoBC,EAAoBC,EAM7F,CACDH,EAAMC,EAAI,aAAa,IAAM,CAC3B,OAAQG,EACR,aAAcH,EAAI,YACpB,EACAxB,GAA4BuB,EAAOC,EAAI,cAAepB,GAAY,CAChEA,EAAS,OAASwB,GAClBxB,EAAS,UAAYqB,GAAarB,EAAS,UAE3CA,EAAS,UAETsB,EAAK,UACDF,EAAI,eAAiB,SACvBpB,EAAS,aAAeoB,EAAI,cAE9BpB,EAAS,iBAAmBsB,EAAK,iBACjC,IAAMG,EAAqBf,EAAYY,EAAK,IAAI,YAAY,EACxDI,GAA0BD,CAAkB,GAAK,cAAeL,IAEjEpB,EAAwC,UAAYoB,EAAI,UAE7D,CAAC,CACH,CACA,SAASO,EAAyBR,EAAwBG,EAMvDM,EAAkBP,EAAoB,CACvCzB,GAA4BuB,EAAOG,EAAK,IAAI,cAAetB,GAAY,CACrE,GAAIA,EAAS,YAAcsB,EAAK,WAAa,CAACD,EAAW,OACzD,GAAM,CACJ,MAAAQ,CACF,EAAInB,EAAYY,EAAK,IAAI,YAAY,EAErC,GADAtB,EAAS,OAAS8B,GACdD,EACF,GAAI7B,EAAS,OAAS,OAAW,CAC/B,GAAM,CACJ,mBAAA+B,EACA,IAAAX,EACA,cAAAY,EACA,UAAAC,CACF,EAAIX,EAKAY,EAAUC,GAAgBnC,EAAS,KAAMoC,GAEpCP,EAAMO,EAAmBR,EAAS,CACvC,IAAKR,EAAI,aACT,cAAAY,EACA,mBAAAD,EACA,UAAAE,CACF,CAAC,CACF,EACDjC,EAAS,KAAOkC,CAClB,MAEElC,EAAS,KAAO4B,OAIlB5B,EAAS,KAAOU,EAAYY,EAAK,IAAI,YAAY,EAAE,mBAAqB,GAAOe,GAA0BC,GAAQtC,EAAS,IAAI,EAAIuC,GAASvC,EAAS,IAAI,EAAIA,EAAS,KAAM4B,CAAO,EAAIA,EAExL,OAAO5B,EAAS,MAChBA,EAAS,mBAAqBsB,EAAK,kBACrC,CAAC,CACH,CACA,IAAMkB,EAAaC,GAAY,CAC7B,KAAM,GAAGnC,CAAW,WACpB,aAAcF,GACd,SAAU,CACR,kBAAmB,CACjB,QAAQe,EAAO,CACb,QAAS,CACP,cAAArB,CACF,CACF,EAA2C,CACzC,OAAOqB,EAAMrB,CAAa,CAC5B,EACA,QAAS4C,GAA4C,CACvD,EACA,qBAAsB,CACpB,QAAQvB,EAAOwB,EAIX,CACF,QAAWC,KAASD,EAAO,QAAS,CAClC,GAAM,CACJ,iBAAkBvB,EAClB,MAAAyB,CACF,EAAID,EACJ1B,EAAuBC,EAAOC,EAAK,GAAM,CACvC,IAAAA,EACA,UAAWuB,EAAO,KAAK,UACvB,iBAAkBA,EAAO,KAAK,SAChC,CAAC,EACDhB,EAAyBR,EAAO,CAC9B,IAAAC,EACA,UAAWuB,EAAO,KAAK,UACvB,mBAAoBA,EAAO,KAAK,UAChC,cAAe,CAAC,CAClB,EAAGE,EAEH,EAAI,CACN,CACF,EACA,QAAUjB,IAuBO,CACb,QAvBqDA,EAAQ,IAAIgB,GAAS,CAC1E,GAAM,CACJ,aAAAE,EACA,IAAA1B,EACA,MAAAyB,CACF,EAAID,EACEnB,EAAqBf,EAAYoC,CAAY,EAWnD,MAAO,CACL,iBAXsC,CACtC,KAAMC,GACN,aAAAD,EACA,aAAcF,EAAM,IACpB,cAAenC,EAAmB,CAChC,UAAWW,EACX,mBAAAK,EACA,aAAAqB,CACF,CAAC,CACH,EAGE,MAAAD,CACF,CACF,CAAC,EAGC,KAAM,CACJ,CAACG,EAAgB,EAAG,GACpB,UAAWC,GAAO,EAClB,UAAW,KAAK,IAAI,CACtB,CACF,EAGJ,EACA,mBAAoB,CAClB,QAAQ9B,EAAO,CACb,QAAS,CACP,cAAArB,EACA,QAAAoD,CACF,CACF,EAEI,CACFtD,GAA4BuB,EAAOrB,EAAeE,GAAY,CAC5DA,EAAS,KAAOmD,GAAanD,EAAS,KAAakD,EAAQ,OAAO,CAAC,CACrE,CAAC,CACH,EACA,QAASR,GAEN,CACL,CACF,EACA,cAAcU,EAAS,CACrBA,EAAQ,QAAQ7C,EAAW,QAAS,CAACY,EAAO,CAC1C,KAAAG,EACA,KAAM,CACJ,IAAAF,CACF,CACF,IAAM,CACJ,IAAMC,EAAYgC,GAAcjC,CAAG,EACnCF,EAAuBC,EAAOC,EAAKC,EAAWC,CAAI,CACpD,CAAC,EAAE,QAAQf,EAAW,UAAW,CAACY,EAAO,CACvC,KAAAG,EACA,QAAAM,CACF,IAAM,CACJ,IAAMP,EAAYgC,GAAc/B,EAAK,GAAG,EACxCK,EAAyBR,EAAOG,EAAMM,EAASP,CAAS,CAC1D,CAAC,EAAE,QAAQd,EAAW,SAAU,CAACY,EAAO,CACtC,KAAM,CACJ,UAAAmC,EACA,IAAAlC,EACA,UAAAa,CACF,EACA,MAAAsB,EACA,QAAA3B,CACF,IAAM,CACJhC,GAA4BuB,EAAOC,EAAI,cAAepB,GAAY,CAChE,GAAI,CAAAsD,EAEG,CAEL,GAAItD,EAAS,YAAciC,EAAW,OACtCjC,EAAS,OAASwD,GAClBxD,EAAS,MAAS4B,GAAW2B,CAC/B,CACF,CAAC,CACH,CAAC,EAAE,WAAW1C,EAAoB,CAACM,EAAOwB,IAAW,CACnD,GAAM,CACJ,QAAAc,CACF,EAAI7C,EAAuB+B,CAAM,EACjC,OAAW,CAACe,EAAKd,CAAK,IAAK,OAAO,QAAQa,CAAO,GAG/Cb,GAAO,SAAWd,IAAoBc,GAAO,SAAWY,MACtDrC,EAAMuC,CAAG,EAAId,EAGnB,CAAC,CACH,CACF,CAAC,EACKe,EAAgBlB,GAAY,CAChC,KAAM,GAAGnC,CAAW,aACpB,aAAcF,GACd,SAAU,CACR,qBAAsB,CACpB,QAAQe,EAAO,CACb,QAAAS,CACF,EAA8C,CAC5C,IAAMgC,EAAW3D,GAAoB2B,CAAO,EACxCgC,KAAYzC,GACd,OAAOA,EAAMyC,CAAQ,CAEzB,EACA,QAASlB,GAA+C,CAC1D,CACF,EACA,cAAcU,EAAS,CACrBA,EAAQ,QAAQ5C,EAAc,QAAS,CAACW,EAAO,CAC7C,KAAAG,EACA,KAAM,CACJ,UAAAW,EACA,IAAAb,EACA,iBAAAyC,CACF,CACF,IAAM,CACCzC,EAAI,QACTD,EAAMlB,GAAoBqB,CAAI,CAAC,EAAI,CACjC,UAAAW,EACA,OAAQT,GACR,aAAcJ,EAAI,aAClB,iBAAAyC,CACF,EACF,CAAC,EAAE,QAAQrD,EAAc,UAAW,CAACW,EAAO,CAC1C,QAAAS,EACA,KAAAN,CACF,IAAM,CACCA,EAAK,IAAI,OACdnB,GAA+BgB,EAAOG,EAAMtB,GAAY,CAClDA,EAAS,YAAcsB,EAAK,YAChCtB,EAAS,OAAS8B,GAClB9B,EAAS,KAAO4B,EAChB5B,EAAS,mBAAqBsB,EAAK,mBACrC,CAAC,CACH,CAAC,EAAE,QAAQd,EAAc,SAAU,CAACW,EAAO,CACzC,QAAAS,EACA,MAAA2B,EACA,KAAAjC,CACF,IAAM,CACCA,EAAK,IAAI,OACdnB,GAA+BgB,EAAOG,EAAMtB,GAAY,CAClDA,EAAS,YAAcsB,EAAK,YAChCtB,EAAS,OAASwD,GAClBxD,EAAS,MAAS4B,GAAW2B,EAC/B,CAAC,CACH,CAAC,EAAE,WAAW1C,EAAoB,CAACM,EAAOwB,IAAW,CACnD,GAAM,CACJ,UAAAmB,CACF,EAAIlD,EAAuB+B,CAAM,EACjC,OAAW,CAACe,EAAKd,CAAK,IAAK,OAAO,QAAQkB,CAAS,GAGhDlB,GAAO,SAAWd,IAAoBc,GAAO,SAAWY,KAEzDE,IAAQd,GAAO,YACbzB,EAAMuC,CAAG,EAAId,EAGnB,CAAC,CACH,CACF,CAAC,EAEKmB,EAAsD,CAC1D,KAAM,CAAC,EACP,KAAM,CAAC,CACT,EACMC,EAAoBvB,GAAY,CACpC,KAAM,GAAGnC,CAAW,gBACpB,aAAcyD,EACd,SAAU,CACR,iBAAkB,CAChB,QAAQ5C,EAAOwB,EAGV,CACH,OAAW,CACT,cAAA7C,EACA,aAAAmE,CACF,IAAKtB,EAAO,QAAS,CACnBuB,EAAuB/C,EAAOrB,CAAa,EAC3C,OAAW,CACT,KAAAqE,EACA,GAAAjE,CACF,IAAK+D,EAAc,CACjB,IAAMG,GAAqBjD,EAAM,KAAKgD,CAAI,IAAM,CAAC,GAAGjE,GAAM,uBAAuB,IAAM,CAAC,EAC9DkE,EAAkB,SAAStE,CAAa,GAEhEsE,EAAkB,KAAKtE,CAAa,CAExC,CAGAqB,EAAM,KAAKrB,CAAa,EAAImE,CAC9B,CACF,EACA,QAASvB,GAGL,CACN,CACF,EACA,cAAcU,EAAS,CACrBA,EAAQ,QAAQZ,EAAW,QAAQ,kBAAmB,CAACrB,EAAO,CAC5D,QAAS,CACP,cAAArB,CACF,CACF,IAAM,CACJoE,EAAuB/C,EAAOrB,CAAa,CAC7C,CAAC,EAAE,WAAWe,EAAoB,CAACM,EAAOwB,IAAW,CACnD,GAAM,CACJ,SAAA0B,CACF,EAAIzD,EAAuB+B,CAAM,EACjC,OAAW,CAACwB,EAAMG,CAAY,IAAK,OAAO,QAAQD,EAAS,MAAQ,CAAC,CAAC,EACnE,OAAW,CAACnE,EAAIqE,CAAS,IAAK,OAAO,QAAQD,CAAY,EAAG,CAC1D,IAAMF,GAAqBjD,EAAM,KAAKgD,CAAI,IAAM,CAAC,GAAGjE,GAAM,uBAAuB,IAAM,CAAC,EACxF,QAAWJ,KAAiByE,EACAH,EAAkB,SAAStE,CAAa,GAEhEsE,EAAkB,KAAKtE,CAAa,EAEtCqB,EAAM,KAAKrB,CAAa,EAAIuE,EAAS,KAAKvE,CAAa,CAE3D,CAEJ,CAAC,EAAE,WAAW0E,GAAQC,EAAYlE,CAAU,EAAGmE,GAAoBnE,CAAU,CAAC,EAAG,CAACY,EAAOwB,IAAW,CAClGgC,EAA4BxD,EAAO,CAACwB,CAAM,CAAC,CAC7C,CAAC,EAAE,WAAWH,EAAW,QAAQ,qBAAqB,MAAO,CAACrB,EAAOwB,IAAW,CAC9E,IAAMiC,EAA2CjC,EAAO,QAAQ,IAAI,CAAC,CACnE,iBAAAkC,EACA,MAAAhC,CACF,KACS,CACL,KAAM,UACN,QAASA,EACT,KAAM,CACJ,cAAe,YACf,UAAW,UACX,IAAKgC,CACP,CACF,EACD,EACDF,EAA4BxD,EAAOyD,CAAW,CAChD,CAAC,CACH,CACF,CAAC,EACD,SAASV,EAAuB/C,EAA+BrB,EAA8B,CAC3F,IAAMgF,EAAeC,GAAW5D,EAAM,KAAKrB,CAAa,GAAK,CAAC,CAAC,EAG/D,QAAWkF,KAAOF,EAAc,CAC9B,IAAMG,EAAUD,EAAI,KACdE,EAAQF,EAAI,IAAM,wBAClBG,EAAmBhE,EAAM,KAAK8D,CAAO,IAAIC,CAAK,EAChDC,IACFhE,EAAM,KAAK8D,CAAO,EAAEC,CAAK,EAAIH,GAAWI,CAAgB,EAAE,OAAOC,GAAMA,IAAOtF,CAAa,EAE/F,CACA,OAAOqB,EAAM,KAAKrB,CAAa,CACjC,CACA,SAAS6E,EAA4BxD,EAAkCkE,EAAsC,CAC3G,IAAMC,EAAoBD,EAAQ,IAAI1C,GAAU,CAC9C,IAAMsB,EAAesB,GAAyB5C,EAAQ,eAAgBjC,EAAaI,CAAa,EAC1F,CACJ,cAAAhB,CACF,EAAI6C,EAAO,KAAK,IAChB,MAAO,CACL,cAAA7C,EACA,aAAAmE,CACF,CACF,CAAC,EACDD,EAAkB,aAAa,iBAAiB7C,EAAO6C,EAAkB,QAAQ,iBAAiBsB,CAAiB,CAAC,CACtH,CAGA,IAAME,EAAoB/C,GAAY,CACpC,KAAM,GAAGnC,CAAW,iBACpB,aAAcF,GACd,SAAU,CACR,0BAA0BqF,EAAG,EAIC,CAE9B,EACA,uBAAuBA,EAAG,EAEI,CAE9B,EACA,+BAAgC,CAAC,CACnC,CACF,CAAC,EACKC,EAA6BjD,GAAY,CAC7C,KAAM,GAAGnC,CAAW,yBACpB,aAAcF,GACd,SAAU,CACR,qBAAsB,CACpB,QAAQP,EAAO8C,EAAgC,CAC7C,OAAOQ,GAAatD,EAAO8C,EAAO,OAAO,CAC3C,EACA,QAASD,GAA4B,CACvC,CACF,CACF,CAAC,EACKiD,EAAclD,GAAY,CAC9B,KAAM,GAAGnC,CAAW,UACpB,aAAc,CACZ,OAAQsF,GAAS,EACjB,QAASC,GAAkB,EAC3B,qBAAsB,GACtB,GAAG9E,CACL,EACA,SAAU,CACR,qBAAqBlB,EAAO,CAC1B,QAAA+B,CACF,EAA0B,CACxB/B,EAAM,qBAAuBA,EAAM,uBAAyB,YAAcc,IAAWiB,EAAU,WAAa,EAC9G,CACF,EACA,cAAewB,GAAW,CACxBA,EAAQ,QAAQ0C,GAAUjG,GAAS,CACjCA,EAAM,OAAS,EACjB,CAAC,EAAE,QAAQkG,GAAWlG,GAAS,CAC7BA,EAAM,OAAS,EACjB,CAAC,EAAE,QAAQmG,GAASnG,GAAS,CAC3BA,EAAM,QAAU,EAClB,CAAC,EAAE,QAAQoG,GAAapG,GAAS,CAC/BA,EAAM,QAAU,EAClB,CAAC,EAGA,WAAWgB,EAAoBM,IAAU,CACxC,GAAGA,CACL,EAAE,CACJ,CACF,CAAC,EACK+E,EAAkBC,GAAgB,CACtC,QAAS3D,EAAW,QACpB,UAAWmB,EAAc,QACzB,SAAUK,EAAkB,QAC5B,cAAe0B,EAA2B,QAC1C,OAAQC,EAAY,OACtB,CAAC,EACKS,EAAkC,CAACvG,EAAO8C,IAAWuD,EAAgBlF,EAAc,MAAM2B,CAAM,EAAI,OAAY9C,EAAO8C,CAAM,EAC5H0C,EAAU,CACd,GAAGM,EAAY,QACf,GAAGnD,EAAW,QACd,GAAGgD,EAAkB,QACrB,GAAGE,EAA2B,QAC9B,GAAG/B,EAAc,QACjB,GAAGK,EAAkB,QACrB,cAAAhD,CACF,EACA,MAAO,CACL,QAAAoF,EACA,QAAAf,CACF,CACF,CC9iBO,IAAMgB,GAA2B,OAAO,IAAI,gBAAgB,EA2B7DC,GAAsC,CAC1C,OAAQC,CACV,EAGMC,GAAsCC,GAAgBH,GAAiB,IAAM,CAAC,CAAC,EAC/EI,GAAyCD,GAAgBH,GAA0C,IAAM,CAAC,CAAC,EAE1G,SAASK,GAAoF,CAClG,mBAAAC,EACA,YAAAC,EACA,eAAAC,CACF,EAIG,CAED,IAAMC,EAAsBC,GAAqBR,GAC3CS,EAAyBD,GAAqBN,GACpD,MAAO,CACL,mBAAAQ,EACA,2BAAAC,EACA,sBAAAC,EACA,oBAAAC,EACA,yBAAAC,EACA,eAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,aAAAC,CACF,EACA,SAASC,EAENC,EAAqC,CACtC,MAAO,CACL,GAAGA,EACH,GAAGC,GAAsBD,EAAS,MAAM,CAC1C,CACF,CACA,SAASN,EAAeQ,EAAsB,CAS5C,OARcA,EAAUlB,CAAW,CASrC,CACA,SAASW,EAAcO,EAAsB,CAC3C,OAAOR,EAAeQ,CAAS,GAAG,OACpC,CACA,SAASL,EAAiBK,EAAsBC,EAAyB,CACvE,OAAOR,EAAcO,CAAS,IAAIC,CAAQ,CAC5C,CACA,SAASP,EAAgBM,EAAsB,CAC7C,OAAOR,EAAeQ,CAAS,GAAG,SACpC,CACA,SAASJ,EAAaI,EAAsB,CAC1C,OAAOR,EAAeQ,CAAS,GAAG,MACpC,CACA,SAASE,EAAsBC,EAAsBC,EAA4DC,EAEtE,CACzC,OAAQC,GAAmB,CAEzB,GAAIA,IAAchC,GAChB,OAAOS,EAAeC,EAAoBqB,CAAQ,EAEpD,IAAME,EAAiB1B,EAAmB,CACxC,UAAAyB,EACA,mBAAAF,EACA,aAAAD,CACF,CAAC,EAED,OAAOpB,EADsBE,GAAqBU,EAAiBV,EAAOsB,CAAc,GAAK9B,GAClD4B,CAAQ,CACrD,CACF,CACA,SAASlB,EAAmBgB,EAAsBC,EAAyD,CACzG,OAAOF,EAAsBC,EAAcC,EAAoBP,CAAgB,CACjF,CACA,SAAST,EAA2Be,EAAsBC,EAAsE,CAC9H,GAAM,CACJ,qBAAAI,CACF,EAAIJ,EACJ,SAASK,EAENX,EAAgE,CACjE,IAAMY,EAAwB,CAC5B,GAAIZ,EACJ,GAAGC,GAAsBD,EAAS,MAAM,CAC1C,EACM,CACJ,UAAAa,EACA,QAAAC,EACA,UAAAC,CACF,EAAIH,EACEI,EAAYD,IAAc,UAC1BE,EAAaF,IAAc,WACjC,MAAO,CACL,GAAGH,EACH,YAAaM,EAAeR,EAAsBE,EAAsB,KAAMA,EAAsB,YAAY,EAChH,gBAAiBO,EAAmBT,EAAsBE,EAAsB,KAAMA,EAAsB,YAAY,EACxH,mBAAoBC,GAAaG,EACjC,uBAAwBH,GAAaI,EACrC,qBAAsBH,GAAWE,EACjC,yBAA0BF,GAAWG,CACvC,CACF,CACA,OAAOb,EAAsBC,EAAcC,EAAoBK,CAA4B,CAC7F,CACA,SAASpB,GAAwB,CAC/B,OAAQ6B,GAAM,CACZ,IAAIC,EACJ,OAAI,OAAOD,GAAO,SAChBC,EAAaC,GAAoBF,CAAE,GAAK5C,GAExC6C,EAAaD,EAIRnC,EAD6BoC,IAAe7C,GAAYY,EAD/BD,GAAqBO,EAAeP,CAAK,GAAG,YAAYkC,CAAoB,GAAKxC,GAE9DkB,CAAgB,CACrE,CACF,CACA,SAASP,EAAoBL,EAAkBoC,EAI5C,CACD,IAAMC,EAAWrC,EAAMH,CAAW,EAC5ByC,EAAe,IAAI,IACnBC,EAAYC,GAAUJ,EAAMK,GAAcC,EAAoB,EACpE,QAAWC,KAAOJ,EAAW,CAC3B,IAAMK,EAAWP,EAAS,SAAS,KAAKM,EAAI,IAAI,EAChD,GAAI,CAACC,EACH,SAEF,IAAIC,GAA2BF,EAAI,KAAO,OAE1CC,EAASD,EAAI,EAAE,EAEf,OAAO,OAAOC,CAAQ,EAAE,KAAK,IAAM,CAAC,EACpC,QAAWE,KAAcD,EACvBP,EAAa,IAAIQ,CAAU,CAE/B,CACA,OAAO,MAAM,KAAKR,EAAa,OAAO,CAAC,EAAE,QAAQS,GAAiB,CAChE,IAAMC,EAAgBX,EAAS,QAAQU,CAAa,EACpD,OAAOC,EAAgB,CACrB,cAAAD,EACA,aAAcC,EAAc,aAC5B,aAAcA,EAAc,YAC9B,EAAI,CAAC,CACP,CAAC,CACH,CACA,SAAS1C,EAAsEN,EAAkBiD,EAA2E,CAC1K,OAAOT,GAAU,OAAO,OAAOhC,EAAcR,CAAK,CAAoB,EAAIkD,GAEpEA,GAAO,eAAiBD,GAAaC,EAAM,SAAW3D,EAAsB2D,GAASA,EAAM,YAAY,CAC/G,CACA,SAASnB,EAAeoB,EAAoDC,EAAuCC,EAA6B,CAC9I,OAAKD,EACEE,GAAiBH,EAASC,EAAMC,CAAQ,GAAK,KADlC,EAEpB,CACA,SAASrB,EAAmBmB,EAAoDC,EAAuCC,EAA6B,CAClJ,MAAI,CAACD,GAAQ,CAACD,EAAQ,qBAA6B,GAC5CI,GAAqBJ,EAASC,EAAMC,CAAQ,GAAK,IAC1D,CACF,CCtOA,OAAS,0BAA0BG,OAAuI,mBCG1K,IAAMC,GAA0C,QAAU,IAAI,QAAY,OAC7DC,GAAqD,CAAC,CACjE,aAAAC,EACA,UAAAC,CACF,IAAM,CACJ,IAAIC,EAAa,GACXC,EAASL,IAAO,IAAIG,CAAS,EACnC,GAAI,OAAOE,GAAW,SACpBD,EAAaC,MACR,CACL,IAAMC,EAAc,KAAK,UAAUH,EAAW,CAACI,EAAKC,KAElDA,EAAQ,OAAOA,GAAU,SAAW,CAClC,QAASA,EAAM,SAAS,CAC1B,EAAIA,EAEJA,EAAQC,GAAcD,CAAK,EAAI,OAAO,KAAKA,CAAK,EAAE,KAAK,EAAE,OAAY,CAACE,EAAKH,KACzEG,EAAIH,CAAG,EAAKC,EAAcD,CAAG,EACtBG,GACN,CAAC,CAAC,EAAIF,EACFA,EACR,EACGC,GAAcN,CAAS,GACzBH,IAAO,IAAIG,EAAWG,CAAW,EAEnCF,EAAaE,CACf,CACA,MAAO,GAAGJ,CAAY,IAAIE,CAAU,GACtC,EDpBA,OAAS,kBAAAO,OAAsB,WA4SxB,SAASC,MAAmEC,EAAsD,CACvI,OAAO,SAAuBC,EAAS,CACrC,IAAMC,EAAyBJ,GAAgBK,GAA0BF,EAAQ,yBAAyBE,EAAQ,CAChH,YAAcF,EAAQ,aAAe,KACvC,CAAC,CAAC,EACIG,EAA4D,CAChE,YAAa,MACb,kBAAmB,GACnB,0BAA2B,GAC3B,eAAgB,GAChB,mBAAoB,GACpB,qBAAsB,UACtB,GAAGH,EACH,uBAAAC,EACA,mBAAmBG,EAAc,CAC/B,IAAIC,EAA0BC,GAC9B,GAAI,uBAAwBF,EAAa,mBAAoB,CAC3D,IAAMG,EAAcH,EAAa,mBAAmB,mBACpDC,EAA0BD,GAAgB,CACxC,IAAMI,EAAgBD,EAAYH,CAAY,EAC9C,OAAI,OAAOI,GAAkB,SAEpBA,EAIAF,GAA0B,CAC/B,GAAGF,EACH,UAAWI,CACb,CAAC,CAEL,CACF,MAAWR,EAAQ,qBACjBK,EAA0BL,EAAQ,oBAEpC,OAAOK,EAAwBD,CAAY,CAC7C,EACA,SAAU,CAAC,GAAIJ,EAAQ,UAAY,CAAC,CAAE,CACxC,EACMS,EAA2C,CAC/C,oBAAqB,CAAC,EACtB,MAAMC,EAAI,CAERA,EAAG,CACL,EACA,OAAQC,GAAO,EACf,uBAAAV,EACA,mBAAoBJ,GAAeK,GAAUD,EAAuBC,CAAM,GAAK,IAAI,CACrF,EACMU,EAAM,CACV,gBAAAC,EACA,iBAAiB,CACf,YAAAC,EACA,UAAAC,CACF,EAAG,CACD,GAAID,EACF,QAAWE,KAAMF,EACVX,EAAoB,SAAU,SAASa,CAAS,GAElDb,EAAoB,SAAmB,KAAKa,CAAE,EAIrD,GAAID,EACF,OAAW,CAACE,EAAcC,CAAiB,IAAK,OAAO,QAAQH,CAAS,EAClE,OAAOG,GAAsB,WAC/BA,EAAkBC,EAAsBV,EAASQ,CAAY,CAAC,EAE9D,OAAO,OAAOE,EAAsBV,EAASQ,CAAY,GAAK,CAAC,EAAGC,CAAiB,EAIzF,OAAON,CACT,CACF,EACMQ,EAAqBrB,EAAQ,IAAIsB,GAAKA,EAAE,KAAKT,EAAYT,EAA4BM,CAAO,CAAC,EACnG,SAASI,EAAgBS,EAAmD,CAC1E,IAAMC,EAAqBD,EAAO,UAAU,CAC1C,MAAOE,IAAM,CACX,GAAGA,EACH,KAAMC,EACR,GACA,SAAUD,IAAM,CACd,GAAGA,EACH,KAAME,EACR,GACA,cAAeF,IAAM,CACnB,GAAGA,EACH,KAAMG,EACR,EACF,CAAC,EACD,OAAW,CAACV,EAAcW,CAAU,IAAK,OAAO,QAAQL,CAAkB,EAAG,CAC3E,GAAID,EAAO,mBAAqB,IAAQL,KAAgBR,EAAQ,oBAAqB,CACnF,GAAIa,EAAO,mBAAqB,QAC9B,MAAM,IAAI,MAA8CO,GAAwB,EAAE,CAAwI,EAI5N,QACF,CAoBApB,EAAQ,oBAAoBQ,CAAY,EAAIW,EAC5C,QAAWP,KAAKD,EACdC,EAAE,eAAeJ,EAAcW,CAAU,CAE7C,CACA,OAAOhB,CACT,CACA,OAAOA,EAAI,gBAAgB,CACzB,UAAWZ,EAAQ,SACrB,CAAC,CACH,CACF,CEzbA,OAAS,0BAA0B8B,OAA+B,mBAE3D,IAAMC,GAAwB,OAAO,EAOrC,SAASC,IAAoE,CAClF,OAAO,UAAY,CACjB,MAAM,IAAI,MAA8CF,GAAwB,EAAE,CAAmG,CACvL,CACF,CCTO,SAASG,EAA6BC,KAAcC,EAAqC,CAC9F,OAAO,OAAO,OAAOD,EAAQ,GAAGC,CAAI,CACtC,CCDO,IAAMC,GAAoI,CAAC,CAChJ,IAAAC,EACA,WAAAC,EACA,cAAAC,EACA,MAAAC,CACF,IAAM,CACJ,IAAMC,EAAsB,GAAGJ,EAAI,WAAW,iBAC1CK,EAA2C,KAC3CC,EAA+D,KAC7D,CACJ,0BAAAC,EACA,uBAAAC,CACF,EAAIR,EAAI,gBAIFS,EAA8B,CAACC,EAAiDC,IAAmB,CACvG,GAAIJ,EAA0B,MAAMI,CAAM,EAAG,CAC3C,GAAM,CACJ,cAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAAIH,EAAO,QACLI,EAAML,EAAqB,IAAIE,CAAa,EAClD,OAAIG,GAAK,IAAIF,CAAS,GACpBE,EAAI,IAAIF,EAAWC,CAAO,EAErB,EACT,CACA,GAAIN,EAAuB,MAAMG,CAAM,EAAG,CACxC,GAAM,CACJ,cAAAC,EACA,UAAAC,CACF,EAAIF,EAAO,QACLI,EAAML,EAAqB,IAAIE,CAAa,EAClD,OAAIG,GACFA,EAAI,OAAOF,CAAS,EAEf,EACT,CACA,GAAIb,EAAI,gBAAgB,kBAAkB,MAAMW,CAAM,EACpD,OAAAD,EAAqB,OAAOC,EAAO,QAAQ,aAAa,EACjD,GAET,GAAIV,EAAW,QAAQ,MAAMU,CAAM,EAAG,CACpC,GAAM,CACJ,KAAM,CACJ,IAAAK,EACA,UAAAH,CACF,CACF,EAAIF,EACEM,EAAWC,GAAoBR,EAAsBM,EAAI,cAAeG,EAAY,EAC1F,OAAIH,EAAI,WACNC,EAAS,IAAIJ,EAAWG,EAAI,qBAAuBC,EAAS,IAAIJ,CAAS,GAAK,CAAC,CAAC,EAE3E,EACT,CACA,IAAIO,EAAU,GACd,GAAInB,EAAW,SAAS,MAAMU,CAAM,EAAG,CACrC,GAAM,CACJ,KAAM,CACJ,UAAAU,EACA,IAAAL,EACA,UAAAH,CACF,CACF,EAAIF,EACJ,GAAIU,GAAaL,EAAI,UAAW,CAC9B,IAAMC,EAAWC,GAAoBR,EAAsBM,EAAI,cAAeG,EAAY,EAC1FF,EAAS,IAAIJ,EAAWG,EAAI,qBAAuBC,EAAS,IAAIJ,CAAS,GAAK,CAAC,CAAC,EAChFO,EAAU,EACZ,CACF,CACA,OAAOA,CACT,EACME,EAAmB,IAAMpB,EAAc,qBAUvCqB,EAA+C,CACnD,iBAAAD,EACA,qBAX4BV,GACNU,EAAiB,EACQ,IAAIV,CAAa,GAC/B,MAAQ,EASzC,oBAP0B,CAACA,EAAuBC,IAE3C,CAAC,CADcS,EAAiB,GACf,IAAIV,CAAa,GAAG,IAAIC,CAAS,CAM3D,EACA,SAASW,EAAuBd,EAAoE,CAIlG,OAAO,KAAK,MAAM,KAAK,UAAU,OAAO,YAAY,CAAC,GAAGA,CAAoB,EAAE,IAAI,CAAC,CAACe,EAAGC,CAAC,IAAM,CAACD,EAAG,OAAO,YAAYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7H,CACA,MAAO,CAACf,EAAQR,IAAoF,CAKlG,GAJKE,IAEHA,EAAwBmB,EAAuBtB,EAAc,oBAAoB,GAE/EF,EAAI,KAAK,cAAc,MAAMW,CAAM,EACrC,OAAAN,EAAwB,CAAC,EACzBH,EAAc,qBAAqB,MAAM,EACzCI,EAAkB,KACX,CAAC,GAAM,EAAK,EAOrB,GAAIN,EAAI,gBAAgB,8BAA8B,MAAMW,CAAM,EAChE,MAAO,CAAC,GAAOY,CAAqB,EAItC,IAAMI,EAAYlB,EAA4BP,EAAc,qBAAsBS,CAAM,EACpFiB,EAAuB,GAM3B,GAAID,EAAW,CACRrB,IAMHA,EAAkB,WAAW,IAAM,CAEjC,IAAMuB,EAAsCL,EAAuBtB,EAAc,oBAAoB,EAE/F,CAAC,CAAE4B,CAAO,EAAIC,GAAmB1B,EAAuB,IAAMwB,CAAgB,EAGpF1B,EAAM,KAAKH,EAAI,gBAAgB,qBAAqB8B,CAAO,CAAC,EAE5DzB,EAAwBwB,EACxBvB,EAAkB,IACpB,EAAG,GAAG,GAER,IAAM0B,EAA4B,OAAOrB,EAAO,MAAQ,UAAY,CAAC,CAACA,EAAO,KAAK,WAAWP,CAAmB,EAC1G6B,EAAiChC,EAAW,SAAS,MAAMU,CAAM,GAAKA,EAAO,KAAK,WAAa,CAAC,CAACA,EAAO,KAAK,IAAI,UACvHiB,EAAuB,CAACI,GAA6B,CAACC,CACxD,CACA,MAAO,CAACL,EAAsB,EAAK,CACrC,CACF,EC7GO,IAAMM,GAAmC,WAAgB,IAAQ,EAC3DC,GAAsD,CAAC,CAClE,YAAAC,EACA,IAAAC,EACA,WAAAC,EACA,QAAAC,EACA,cAAAC,EACA,UAAW,CACT,iBAAAC,EACA,aAAAC,CACF,EACA,qBAAAC,EACA,MAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,EACA,uBAAAC,EACA,qBAAAC,CACF,EAAIV,EAAI,gBACFW,EAAwBC,GAAQH,EAAuB,MAAOR,EAAW,UAAWA,EAAW,SAAUS,EAAqB,KAAK,EACzI,SAASG,EAAgCC,EAAuB,CAC9D,IAAMC,EAAgBZ,EAAc,qBAAqB,IAAIW,CAAa,EAC1E,OAAKC,EAGoBA,EAAc,KAAO,EAFrC,EAIX,CACA,IAAMC,EAAoD,CAAC,EAC3D,SAASC,EAENC,EAA8C,CAC/C,QAAWC,KAAWD,EAAW,OAAO,EACtCC,GAAS,QAAQ,CAErB,CACA,IAAMC,EAAwC,CAACC,EAAQd,IAAU,CAC/D,IAAMe,EAAQf,EAAM,SAAS,EACvBgB,EAASlB,EAAaiB,CAAK,EACjC,GAAIX,EAAsBU,CAAM,EAAG,CACjC,IAAIG,EACJ,GAAId,EAAqB,MAAMW,CAAM,EACnCG,EAAiBH,EAAO,QAAQ,IAAII,GAASA,EAAM,iBAAiB,aAAa,MAC5E,CACL,GAAM,CACJ,cAAAX,CACF,EAAIL,EAAuB,MAAMY,CAAM,EAAIA,EAAO,QAAUA,EAAO,KAAK,IACxEG,EAAiB,CAACV,CAAa,CACjC,CACAY,EAAsBF,EAAgBjB,EAAOgB,CAAM,CACrD,CACA,GAAIvB,EAAI,KAAK,cAAc,MAAMqB,CAAM,EAAG,CACxC,OAAW,CAACM,EAAKC,CAAO,IAAK,OAAO,QAAQZ,CAAsB,EAC5DY,GAAS,aAAaA,CAAO,EACjC,OAAOZ,EAAuBW,CAAG,EAEnCV,EAAiBd,EAAc,cAAc,EAC7Cc,EAAiBd,EAAc,gBAAgB,CACjD,CACA,GAAID,EAAQ,mBAAmBmB,CAAM,EAAG,CACtC,GAAM,CACJ,QAAAQ,CACF,EAAI3B,EAAQ,uBAAuBmB,CAAM,EAIzCK,EAAsB,OAAO,KAAKG,CAAO,EAAsBtB,EAAOgB,CAAM,CAC9E,CACF,EACA,SAASG,EAAsBI,EAA4B9B,EAAuBuB,EAA6B,CAC7G,IAAMD,EAAQtB,EAAI,SAAS,EAC3B,QAAWc,KAAiBgB,EAAW,CACrC,IAAML,EAAQrB,EAAiBkB,EAAOR,CAAa,EAC/CW,GAAO,cACTM,EAAkBjB,EAAeW,EAAM,aAAczB,EAAKuB,CAAM,CAEpE,CACF,CACA,SAASQ,EAAkBjB,EAA8BkB,EAAsBhC,EAAuBuB,EAA6B,CAEjI,IAAMU,EADqBC,EAAsBhC,EAAS8B,CAAY,GACxB,mBAAqBT,EAAO,kBAC1E,GAAIU,IAAsB,IAExB,OAMF,IAAME,EAAyB,KAAK,IAAI,EAAG,KAAK,IAAIF,EAAmBpC,EAAgC,CAAC,EACxG,GAAI,CAACgB,EAAgCC,CAAa,EAAG,CACnD,IAAMsB,EAAiBpB,EAAuBF,CAAa,EACvDsB,GACF,aAAaA,CAAc,EAE7BpB,EAAuBF,CAAa,EAAI,WAAW,IAAM,CACvD,GAAI,CAACD,EAAgCC,CAAa,EAAG,CAEnD,IAAMW,EAAQrB,EAAiBJ,EAAI,SAAS,EAAGc,CAAa,EACxDW,GAAO,cACYzB,EAAI,SAASM,EAAqBmB,EAAM,aAAcA,EAAM,YAAY,CAAC,GAChF,MAAM,EAEtBzB,EAAI,SAASQ,EAAkB,CAC7B,cAAAM,CACF,CAAC,CAAC,CACJ,CACA,OAAOE,EAAwBF,CAAa,CAC9C,EAAGqB,EAAyB,GAAI,CAClC,CACF,CACA,OAAOf,CACT,EClEA,IAAMiB,GAAqB,IAAI,MAAM,kDAAkD,EAG1EC,GAAqD,CAAC,CACjE,IAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAW,CACT,iBAAAC,EACA,eAAAC,CACF,CACF,IAAM,CACJ,IAAMC,EAAeC,GAAmBN,CAAU,EAC5CO,EAAkBD,GAAmBL,CAAa,EAClDO,EAAmBC,EAAYT,EAAYC,CAAa,EAQxDS,EAA+C,CAAC,EAChD,CACJ,kBAAAC,EACA,qBAAAC,EACA,qBAAAC,CACF,EAAIhB,EAAI,gBACR,SAASiB,EAAsBC,EAAkBC,EAAeC,EAAe,CAC7E,IAAMC,EAAYR,EAAaK,CAAQ,EACnCG,GAAW,gBACbA,EAAU,cAAc,CACtB,KAAAF,EACA,KAAAC,CACF,CAAC,EACD,OAAOC,EAAU,cAErB,CACA,SAASC,EAAqBJ,EAAkB,CAC9C,IAAMG,EAAYR,EAAaK,CAAQ,EACnCG,IACF,OAAOR,EAAaK,CAAQ,EAC5BG,EAAU,kBAAkB,EAEhC,CACA,SAASE,EAAoBC,EAA0F,CACrH,GAAM,CACJ,IAAAC,EACA,UAAAC,CACF,EAAIF,EAAO,KACL,CACJ,aAAAG,EACA,aAAAC,CACF,EAAIH,EACJ,MAAO,CAACE,EAAcC,EAAcF,CAAS,CAC/C,CACA,IAAMG,EAAwC,CAACL,EAAQM,EAAOC,IAAgB,CAC5E,IAAMb,EAAWc,EAAYR,CAAM,EACnC,SAASS,EAAoBN,EAAsBT,EAAyBQ,EAAmBE,EAAuB,CACpH,IAAMM,EAAW5B,EAAiByB,EAAab,CAAQ,EACjDiB,EAAW7B,EAAiBwB,EAAM,SAAS,EAAGZ,CAAQ,EACxD,CAACgB,GAAYC,GACfC,EAAaT,EAAcC,EAAcV,EAAUY,EAAOJ,CAAS,CAEvE,CACA,GAAIvB,EAAW,QAAQ,MAAMqB,CAAM,EAAG,CACpC,GAAM,CAACG,EAAcC,EAAcF,CAAS,EAAIH,EAAoBC,CAAM,EAC1ES,EAAoBN,EAAcT,EAAUQ,EAAWE,CAAY,CACrE,SAAWZ,EAAqB,MAAMQ,CAAM,EAC1C,OAAW,CACT,iBAAAa,EACA,MAAAC,CACF,IAAKd,EAAO,QAAS,CACnB,GAAM,CACJ,aAAAG,EACA,aAAAC,EACA,cAAAW,CACF,EAAIF,EACJJ,EAAoBN,EAAcY,EAAef,EAAO,KAAK,UAAWI,CAAY,EACpFX,EAAsBsB,EAAeD,EAAO,CAAC,CAAC,CAChD,SACSlC,EAAc,QAAQ,MAAMoB,CAAM,GAE3C,GADcM,EAAM,SAAS,EAAE7B,CAAW,EAAE,UAAUiB,CAAQ,EACnD,CACT,GAAM,CAACS,EAAcC,EAAcF,CAAS,EAAIH,EAAoBC,CAAM,EAC1EY,EAAaT,EAAcC,EAAcV,EAAUY,EAAOJ,CAAS,CACrE,UACSf,EAAiBa,CAAM,EAChCP,EAAsBC,EAAUM,EAAO,QAASA,EAAO,KAAK,aAAa,UAChEV,EAAkB,MAAMU,CAAM,GAAKT,EAAqB,MAAMS,CAAM,EAC7EF,EAAqBJ,CAAQ,UACpBlB,EAAI,KAAK,cAAc,MAAMwB,CAAM,EAC5C,QAAWN,KAAY,OAAO,KAAKL,CAAY,EAC7CS,EAAqBJ,CAAQ,CAGnC,EACA,SAASc,EAAYR,EAAa,CAChC,OAAIhB,EAAagB,CAAM,EAAUA,EAAO,KAAK,IAAI,cAC7Cd,EAAgBc,CAAM,EACjBA,EAAO,KAAK,IAAI,eAAiBA,EAAO,KAAK,UAElDV,EAAkB,MAAMU,CAAM,EAAUA,EAAO,QAAQ,cACvDT,EAAqB,MAAMS,CAAM,EAAUgB,GAAoBhB,EAAO,OAAO,EAC1E,EACT,CACA,SAASY,EAAaT,EAAsBC,EAAmBW,EAAuBT,EAAyBJ,EAAmB,CAChI,IAAMe,EAAqBC,EAAsBxC,EAASyB,CAAY,EAChEgB,EAAoBF,GAAoB,kBAC9C,GAAI,CAACE,EAAmB,OACxB,IAAMtB,EAAY,CAAC,EACbuB,EAAoB,IAAI,QAAcC,GAAW,CACrDxB,EAAU,kBAAoBwB,CAChC,CAAC,EACKC,EAG0B,QAAQ,KAAK,CAAC,IAAI,QAG/CD,GAAW,CACZxB,EAAU,cAAgBwB,CAC5B,CAAC,EAAGD,EAAkB,KAAK,IAAM,CAC/B,MAAM9C,EACR,CAAC,CAAC,CAAC,EAGHgD,EAAgB,MAAM,IAAM,CAAC,CAAC,EAC9BjC,EAAa0B,CAAa,EAAIlB,EAC9B,IAAM0B,EAAY/C,EAAI,UAAU2B,CAAY,EAAU,OAAOqB,GAAqBP,CAAkB,EAAIb,EAAeW,CAAa,EAC9HU,EAAQnB,EAAM,SAAS,CAACoB,EAAGC,EAAIF,IAAUA,CAAK,EAC9CG,EAAe,CACnB,GAAGtB,EACH,cAAe,IAAMiB,EAASjB,EAAM,SAAS,CAAC,EAC9C,UAAAJ,EACA,MAAAuB,EACA,iBAAmBD,GAAqBP,CAAkB,EAAKY,GAA8BvB,EAAM,SAAS9B,EAAI,KAAK,gBAAgB2B,EAAuBC,EAAuByB,CAAY,CAAC,EAAI,OACpM,gBAAAP,EACA,kBAAAF,CACF,EACMU,EAAiBX,EAAkBf,EAAcwB,CAAmB,EAE1E,QAAQ,QAAQE,CAAc,EAAE,MAAMC,GAAK,CACzC,GAAIA,IAAMzD,GACV,MAAMyD,CACR,CAAC,CACH,CACA,OAAO1B,CACT,ECjPO,IAAM2B,GAA+C,CAAC,CAC3D,IAAAC,EACA,QAAS,CACP,OAAAC,CACF,EACA,YAAAC,CACF,IACS,CAACC,EAAQC,IAAU,CACpBJ,EAAI,KAAK,cAAc,MAAMG,CAAM,GAErCC,EAAM,SAASJ,EAAI,gBAAgB,qBAAqBC,CAAM,CAAC,CASnE,ECZK,IAAMI,GAAyD,CAAC,CACrE,YAAAC,EACA,QAAAC,EACA,QAAS,CACP,oBAAAC,CACF,EACA,cAAAC,EACA,WAAAC,EACA,IAAAC,EACA,cAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,CACF,EAAIJ,EAAI,gBACFK,EAAwBC,GAAQC,EAAYT,CAAa,EAAGU,GAAoBV,CAAa,CAAC,EAC9FW,EAAaH,GAAQC,EAAYR,EAAYD,CAAa,EAAGY,GAAWX,EAAYD,CAAa,CAAC,EACpGa,EAAwD,CAAC,EAEzDC,EAAsB,EACpBC,EAAwC,CAACC,EAAQC,IAAU,EAC3DhB,EAAW,QAAQ,MAAMe,CAAM,GAAKhB,EAAc,QAAQ,MAAMgB,CAAM,IACxEF,IAEEH,EAAWK,CAAM,IACnBF,EAAsB,KAAK,IAAI,EAAGA,EAAsB,CAAC,GAEvDP,EAAsBS,CAAM,EAC9BE,EAAeC,GAAyBH,EAAQ,kBAAmBjB,EAAqBI,CAAa,EAAGc,CAAK,EACpGN,EAAWK,CAAM,EAC1BE,EAAe,CAAC,EAAGD,CAAK,EACff,EAAI,KAAK,eAAe,MAAMc,CAAM,GAC7CE,EAAeE,GAAoBJ,EAAO,QAAS,OAAW,OAAW,OAAW,OAAWb,CAAa,EAAGc,CAAK,CAExH,EACA,SAASI,GAAqB,CAC5B,OAAOP,EAAsB,CAC/B,CACA,SAASI,EAAeI,EAAgDL,EAAyB,CAC/F,IAAMM,EAAYN,EAAM,SAAS,EAC3BO,EAAQD,EAAU1B,CAAW,EAEnC,GADAgB,EAAwB,KAAK,GAAGS,CAAO,EACnCE,EAAM,OAAO,uBAAyB,WAAaH,EAAmB,EACxE,OAEF,IAAMI,EAAOZ,EAEb,GADAA,EAA0B,CAAC,EACvBY,EAAK,SAAW,EAAG,OACvB,IAAMC,EAAexB,EAAI,KAAK,oBAAoBqB,EAAWE,CAAI,EACjE3B,EAAQ,MAAM,IAAM,CAClB,IAAM6B,EAAc,MAAM,KAAKD,EAAa,OAAO,CAAC,EACpD,OAAW,CACT,cAAAE,CACF,IAAKD,EAAa,CAChB,IAAME,EAAgBL,EAAM,QAAQI,CAAa,EAC3CE,EAAuBC,GAAoB1B,EAAc,qBAAsBuB,EAAeI,EAAY,EAC5GH,IACEC,EAAqB,OAAS,EAChCb,EAAM,SAASX,EAAkB,CAC/B,cAAesB,CACjB,CAAC,CAAC,EACOC,EAAc,SAAWI,GAClChB,EAAM,SAASb,EAAayB,CAAa,CAAC,EAGhD,CACF,CAAC,CACH,CACA,OAAOd,CACT,EC3EO,IAAMmB,GAA8C,CAAC,CAC1D,YAAAC,EACA,WAAAC,EACA,IAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,aAAAC,EACA,qBAAAC,CACF,EAAIF,EAGEG,EAAwB,IAAI,IAC9BC,EAA2D,KACzDC,EAAwC,CAACC,EAAQC,IAAU,EAC3DT,EAAI,gBAAgB,0BAA0B,MAAMQ,CAAM,GAAKR,EAAI,gBAAgB,uBAAuB,MAAMQ,CAAM,IACxHE,EAAsBF,EAAO,QAAQ,cAAeC,CAAK,GAEvDV,EAAW,QAAQ,MAAMS,CAAM,GAAKT,EAAW,SAAS,MAAMS,CAAM,GAAKA,EAAO,KAAK,YACvFE,EAAsBF,EAAO,KAAK,IAAI,cAAeC,CAAK,GAExDV,EAAW,UAAU,MAAMS,CAAM,GAAKT,EAAW,SAAS,MAAMS,CAAM,GAAK,CAACA,EAAO,KAAK,YAC1FG,EAAcH,EAAO,KAAK,IAAKC,CAAK,EAElCT,EAAI,KAAK,cAAc,MAAMQ,CAAM,IACrCI,EAAW,EAEPN,IACF,aAAaA,CAAkB,EAC/BA,EAAqB,MAEvBD,EAAsB,MAAM,EAEhC,EACA,SAASK,EAAsBG,EAAuBb,EAAuB,CAC3EK,EAAsB,IAAIQ,CAAa,EAClCP,IACHA,EAAqB,WAAW,IAAM,CAEpC,QAAWQ,KAAOT,EAChBU,EAAsB,CACpB,cAAeD,CACjB,EAAGd,CAAG,EAERK,EAAsB,MAAM,EAC5BC,EAAqB,IACvB,EAAG,CAAC,EAER,CACA,SAASK,EAAc,CACrB,cAAAE,CACF,EAA4Bb,EAAuB,CACjD,IAAMgB,EAAQhB,EAAI,SAAS,EAAEF,CAAW,EAClCmB,EAAgBD,EAAM,QAAQH,CAAa,EAC3CK,EAAgBd,EAAqB,IAAIS,CAAa,EAC5D,GAAI,CAACI,GAAiBA,EAAc,SAAWE,EAAsB,OACrE,GAAM,CACJ,sBAAAC,EACA,uBAAAC,CACF,EAAIC,EAA0BJ,CAAa,EAC3C,GAAI,CAAC,OAAO,SAASE,CAAqB,EAAG,OAC7C,IAAMG,EAAcpB,EAAa,IAAIU,CAAa,EAC9CU,GAAa,UACf,aAAaA,EAAY,OAAO,EAChCA,EAAY,QAAU,QAExB,IAAMC,EAAoB,KAAK,IAAI,EAAIJ,EACvCjB,EAAa,IAAIU,EAAe,CAC9B,kBAAAW,EACA,gBAAiBJ,EACjB,QAAS,WAAW,IAAM,EACpBJ,EAAM,OAAO,SAAW,CAACK,IAC3BrB,EAAI,SAASC,EAAagB,CAAa,CAAC,EAE1CN,EAAc,CACZ,cAAAE,CACF,EAAGb,CAAG,CACR,EAAGoB,CAAqB,CAC1B,CAAC,CACH,CACA,SAASL,EAAsB,CAC7B,cAAAF,CACF,EAA4Bb,EAAuB,CAEjD,IAAMiB,EADQjB,EAAI,SAAS,EAAEF,CAAW,EACZ,QAAQe,CAAa,EAC3CK,EAAgBd,EAAqB,IAAIS,CAAa,EAC5D,GAAI,CAACI,GAAiBA,EAAc,SAAWE,EAC7C,OAEF,GAAM,CACJ,sBAAAC,CACF,EAAIE,EAA0BJ,CAAa,EAS3C,GAAI,CAAC,OAAO,SAASE,CAAqB,EAAG,CAC3CK,EAAkBZ,CAAa,EAC/B,MACF,CACA,IAAMU,EAAcpB,EAAa,IAAIU,CAAa,EAC5CW,EAAoB,KAAK,IAAI,EAAIJ,GACnC,CAACG,GAAeC,EAAoBD,EAAY,oBAClDZ,EAAc,CACZ,cAAAE,CACF,EAAGb,CAAG,CAEV,CACA,SAASyB,EAAkBX,EAAa,CACtC,IAAMY,EAAevB,EAAa,IAAIW,CAAG,EACrCY,GAAc,SAChB,aAAaA,EAAa,OAAO,EAEnCvB,EAAa,OAAOW,CAAG,CACzB,CACA,SAASF,GAAa,CACpB,QAAWE,KAAOX,EAAa,KAAK,EAClCsB,EAAkBX,CAAG,CAEzB,CACA,SAASQ,EAA0BK,EAAmC,IAAI,IAAO,CAC/E,IAAIN,EAA8C,GAC9CD,EAAwB,OAAO,kBACnC,QAAWQ,KAASD,EAAY,OAAO,EAC/BC,EAAM,kBACVR,EAAwB,KAAK,IAAIQ,EAAM,gBAAkBR,CAAqB,EAC9EC,EAAyBO,EAAM,wBAA0BP,GAG7D,MAAO,CACL,sBAAAD,EACA,uBAAAC,CACF,CACF,CACA,OAAOd,CACT,EC0LO,IAAMsB,GAAqD,CAAC,CACjE,IAAAC,EACA,QAAAC,EACA,WAAAC,EACA,cAAAC,CACF,IAAM,CACJ,IAAMC,EAAiBC,GAAUH,EAAYC,CAAa,EACpDG,EAAkBC,GAAWL,EAAYC,CAAa,EACtDK,EAAoBC,EAAYP,EAAYC,CAAa,EAQzDO,EAA+C,CAAC,EA6DtD,MA5D8C,CAACC,EAAQC,IAAU,CAC/D,GAAIR,EAAeO,CAAM,EAAG,CAC1B,GAAM,CACJ,UAAAE,EACA,IAAK,CACH,aAAAC,EACA,aAAAC,CACF,CACF,EAAIJ,EAAO,KACLK,EAAqBC,EAAsBhB,EAASa,CAAY,EAChEI,EAAiBF,GAAoB,eAC3C,GAAIE,EAAgB,CAClB,IAAMC,EAAY,CAAC,EACbC,EAAiB,IAAK,QAGW,CAACC,EAASC,IAAW,CAC1DH,EAAU,QAAUE,EACpBF,EAAU,OAASG,CACrB,CAAC,EAGDF,EAAe,MAAM,IAAM,CAAC,CAAC,EAC7BV,EAAaG,CAAS,EAAIM,EAC1B,IAAMI,EAAYvB,EAAI,UAAUc,CAAY,EAAU,OAAOU,GAAqBR,CAAkB,EAAID,EAAeF,CAAS,EAC1HY,EAAQb,EAAM,SAAS,CAACc,EAAGC,EAAIF,IAAUA,CAAK,EAC9CG,EAAe,CACnB,GAAGhB,EACH,cAAe,IAAMW,EAASX,EAAM,SAAS,CAAC,EAC9C,UAAAC,EACA,MAAAY,EACA,iBAAmBD,GAAqBR,CAAkB,EAAKa,GAA8BjB,EAAM,SAASZ,EAAI,KAAK,gBAAgBc,EAAuBC,EAAuBc,CAAY,CAAC,EAAI,OACpM,eAAAT,CACF,EACAF,EAAeH,EAAca,CAAmB,CAClD,CACF,SAAWpB,EAAkBG,CAAM,EAAG,CACpC,GAAM,CACJ,UAAAE,EACA,cAAAiB,CACF,EAAInB,EAAO,KACXD,EAAaG,CAAS,GAAG,QAAQ,CAC/B,KAAMF,EAAO,QACb,KAAMmB,CACR,CAAC,EACD,OAAOpB,EAAaG,CAAS,CAC/B,SAAWP,EAAgBK,CAAM,EAAG,CAClC,GAAM,CACJ,UAAAE,EACA,kBAAAkB,EACA,cAAAD,CACF,EAAInB,EAAO,KACXD,EAAaG,CAAS,GAAG,OAAO,CAC9B,MAAOF,EAAO,SAAWA,EAAO,MAChC,iBAAkB,CAACoB,EACnB,KAAMD,CACR,CAAC,EACD,OAAOpB,EAAaG,CAAS,CAC/B,CACF,CAEF,ECnZO,IAAMmB,GAAkD,CAAC,CAC9D,YAAAC,EACA,QAAAC,EACA,IAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,GAAM,CACJ,kBAAAC,CACF,EAAIH,EAAI,gBACFI,EAAwC,CAACC,EAAQC,IAAU,CAC3DC,GAAQ,MAAMF,CAAM,GACtBG,EAAoBF,EAAO,gBAAgB,EAEzCG,GAAS,MAAMJ,CAAM,GACvBG,EAAoBF,EAAO,oBAAoB,CAEnD,EACA,SAASE,EAAoBR,EAAuBU,EAA+C,CACjG,IAAMC,EAAQX,EAAI,SAAS,EAAEF,CAAW,EAClCc,EAAUD,EAAM,QAChBE,EAAgBX,EAAc,qBACpCH,EAAQ,MAAM,IAAM,CAClB,QAAWe,KAAiBD,EAAc,KAAK,EAAG,CAChD,IAAME,EAAgBH,EAAQE,CAAa,EACrCE,EAAuBH,EAAc,IAAIC,CAAa,EAC5D,GAAI,CAACE,GAAwB,CAACD,EAAe,SAC7C,IAAME,EAAS,CAAC,GAAGD,EAAqB,OAAO,CAAC,GAC1BC,EAAO,KAAKC,GAAOA,EAAIR,CAAI,IAAM,EAAI,GAAKO,EAAO,MAAMC,GAAOA,EAAIR,CAAI,IAAM,MAAS,GAAKC,EAAM,OAAOD,CAAI,KAE3HM,EAAqB,OAAS,EAChChB,EAAI,SAASG,EAAkB,CAC7B,cAAeW,CACjB,CAAC,CAAC,EACOC,EAAc,SAAWI,GAClCnB,EAAI,SAASC,EAAac,CAAa,CAAC,EAG9C,CACF,CAAC,CACH,CACA,OAAOX,CACT,EC3BO,SAASgB,GAA8GC,EAAiE,CAC7L,GAAM,CACJ,YAAAC,EACA,WAAAC,EACA,IAAAC,EACA,QAAAC,EACA,iBAAAC,CACF,EAAIL,EACE,CACJ,OAAAM,CACF,EAAIF,EACEG,EAAU,CACd,eAAgBC,GAAgF,GAAGP,CAAW,iBAAiB,CACjI,EACMQ,EAAwBC,GAAmBA,EAAO,KAAK,WAAW,GAAGT,CAAW,GAAG,EACnFU,EAA4C,CAACC,GAAsBC,GAA6BC,GAAgCC,GAAqBC,GAA4BC,EAA0B,EAqDjN,MAAO,CACL,WArDsHC,GAAS,CAC/H,IAAIC,EAAc,GACZC,EAAgBf,EAAiBa,EAAM,QAAQ,EAC/CG,EAAc,CAClB,GAAIrB,EACJ,cAAAoB,EACA,aAAAE,EACA,qBAAAb,EACA,MAAAS,CACF,EACMK,EAAWZ,EAAgB,IAAIa,GAASA,EAAMH,CAAW,CAAC,EAC1DI,EAAwBC,GAA2BL,CAAW,EAC9DM,EAAsBC,GAAwBP,CAAW,EAC/D,OAAOQ,GACEnB,GAAU,CACf,GAAI,CAACoB,GAASpB,CAAM,EAClB,OAAOmB,EAAKnB,CAAM,EAEfS,IACHA,EAAc,GAEdD,EAAM,SAASf,EAAI,gBAAgB,qBAAqBG,CAAM,CAAC,GAEjE,IAAMyB,EAAgB,CACpB,GAAGb,EACH,KAAAW,CACF,EACMG,EAAcd,EAAM,SAAS,EAC7B,CAACe,EAAsBC,CAAmB,EAAIT,EAAsBf,EAAQqB,EAAeC,CAAW,EACxGG,EAMJ,GALIF,EACFE,EAAMN,EAAKnB,CAAM,EAEjByB,EAAMD,EAEFhB,EAAM,SAAS,EAAEjB,CAAW,IAIhC0B,EAAoBjB,EAAQqB,EAAeC,CAAW,EAClDvB,EAAqBC,CAAM,GAAKN,EAAQ,mBAAmBM,CAAM,GAGnE,QAAW0B,KAAWb,EACpBa,EAAQ1B,EAAQqB,EAAeC,CAAW,EAIhD,OAAOG,CACT,CAEJ,EAGE,QAAA5B,CACF,EACA,SAASe,EAAae,EAElB,CACF,OAAQrC,EAAM,IAAI,UAAUqC,EAAc,YAAY,EAAiC,SAASA,EAAc,aAAqB,CACjI,UAAW,GACX,aAAc,EAChB,CAAC,CACH,CACF,CC1DO,IAAMC,GAAgC,OAAO,EAiUvCC,GAAa,CAAC,CACzB,eAAAC,EAAiBA,EACnB,EAAuB,CAAC,KAA2B,CACjD,KAAMF,GACN,KAAKG,EAAK,CACR,UAAAC,EACA,SAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,qBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,qBAAAC,CACF,EAAGC,EAAS,CACVC,GAAc,EAEd,IAAMC,EAAgCC,GAM7BA,EAET,OAAO,OAAOhB,EAAK,CACjB,YAAAG,EACA,UAAW,CAAC,EACZ,gBAAiB,CACf,SAAAc,GACA,UAAAC,GACA,QAAAC,GACA,YAAAC,EACF,EACA,KAAM,CAAC,CACT,CAAC,EACD,IAAMC,EAAYC,GAAe,CAC/B,mBAAoBlB,EACpB,YAAAD,EACA,eAAAJ,CACF,CAAC,EACK,CACJ,oBAAAwB,EACA,yBAAAC,EACA,mBAAAC,EACA,2BAAAC,EACA,sBAAAC,CACF,EAAIN,EACJO,EAAW5B,EAAI,KAAM,CACnB,oBAAAuB,EACA,yBAAAC,CACF,CAAC,EACD,GAAM,CACJ,WAAAK,EACA,mBAAAC,EACA,cAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,uBAAAC,CACF,EAAIC,GAAY,CACd,UAAApC,EACA,YAAAE,EACA,QAAAU,EACA,IAAAb,EACA,mBAAAI,EACA,cAAAW,EACA,UAAAM,EACA,gBAAAX,EACA,mBAAAC,EACA,qBAAAC,CACF,CAAC,EACK,CACJ,QAAA0B,EACA,QAASC,CACX,EAAIC,GAAW,CACb,QAAA3B,EACA,WAAAgB,EACA,mBAAAC,EACA,cAAAC,EACA,mBAAA3B,EACA,YAAAD,EACA,cAAAY,EACA,OAAQ,CACN,eAAAR,EACA,mBAAAC,EACA,0BAAAF,EACA,kBAAAD,EACA,YAAAF,EACA,qBAAAM,CACF,CACF,CAAC,EACDmB,EAAW5B,EAAI,KAAM,CACnB,eAAAgC,EACA,gBAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,cAAeI,EAAa,cAC5B,mBAAoBA,EAAa,oBACnC,CAAC,EACDX,EAAW5B,EAAI,gBAAiBuC,CAAY,EAC5C,IAAME,EAAmB,IAAI,QACvBC,EAAoBC,GACVC,GAAoBH,EAAkBE,EAAU,KAAO,CACnE,qBAAsB,IAAI,IAC1B,aAAc,IAAI,IAClB,eAAgB,IAAI,IACpB,iBAAkB,IAAI,GACxB,EAAE,EAGE,CACJ,mBAAAE,EACA,2BAAAC,EACA,sBAAAC,EACA,wBAAAC,EACA,yBAAAC,EACA,uBAAAC,EACA,qBAAAC,CACF,EAAIC,GAAc,CAChB,WAAAvB,EACA,cAAAE,EACA,mBAAAD,EACA,IAAA9B,EACA,mBAAoBI,EACpB,QAAAS,EACA,iBAAA6B,CACF,CAAC,EACDd,EAAW5B,EAAI,KAAM,CACnB,wBAAAgD,EACA,yBAAAC,EACA,qBAAAE,EACA,uBAAAD,CACF,CAAC,EACD,GAAM,CACJ,WAAAG,EACA,QAASC,CACX,EAAIC,GAAgB,CAClB,YAAApD,EACA,QAAAU,EACA,WAAAgB,EACA,cAAAE,EACA,mBAAAD,EACA,IAAA9B,EACA,cAAAe,EACA,UAAAM,EACA,qBAAA8B,EACA,iBAAAT,CACF,CAAC,EACD,OAAAd,EAAW5B,EAAI,KAAMsD,CAAiB,EACtC1B,EAAW5B,EAAK,CACd,QAASsC,EACT,WAAAe,CACF,CAAC,EACM,CACL,KAAMxD,GACN,eAAe2D,EAAcC,EAAY,CACvC,IAAMC,EAAS1D,EACT2D,EAAWD,EAAO,UAAUF,CAAY,IAAM,CAAC,EACjDI,GAAkBH,CAAU,GAC9B7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ/B,EAAmB+B,EAAcC,CAAU,EACnD,SAAUZ,EAAmBW,EAAcC,CAAU,CACvD,EAAGrB,EAAuBP,EAAY2B,CAAY,CAAC,EAEjDK,GAAqBJ,CAAU,GACjC7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ7B,EAAsB,EAC9B,SAAUoB,EAAsBS,CAAY,CAC9C,EAAGpB,EAAuBL,EAAeyB,CAAY,CAAC,EAEpDM,GAA0BL,CAAU,GACtC7B,EAAW+B,EAAU,CACnB,KAAMH,EACN,OAAQ9B,EAA2B8B,EAAcC,CAAU,EAC3D,SAAUX,EAA2BU,EAAcC,CAAU,CAC/D,EAAGrB,EAAuBP,EAAY2B,CAAY,CAAC,CAEvD,CACF,CACF,CACF,GCniBO,IAAMO,GAA2BC,GAAeC,GAAW,CAAC","names":["QueryStatus","STATUS_UNINITIALIZED","STATUS_PENDING","STATUS_FULFILLED","STATUS_REJECTED","getRequestStatusFlags","status","createAction","createSlice","createSelector","createAsyncThunk","combineReducers","createNextState","isAnyOf","isAllOf","isAction","isPending","isRejected","isFulfilled","isRejectedWithValue","isAsyncThunkAction","prepareAutoBatched","SHOULD_AUTOBATCH","isPlainObject","nanoid","isPlainObject","copyWithStructuralSharing","oldObj","newObj","newKeys","oldKeys","isSameObject","mergeObj","key","filterMap","array","predicate","mapper","acc","item","i","isAbsoluteUrl","url","isDocumentVisible","isNotNullish","v","filterNullishValues","map","isOnline","withoutTrailingSlash","url","withoutLeadingSlash","joinUrls","base","isAbsoluteUrl","delimiter","getOrInsertComputed","map","key","compute","createNewMap","timeoutSignal","milliseconds","abortController","message","name","anySignal","signals","signal","defaultFetchFn","args","defaultValidateStatus","response","defaultIsJsonContentType","headers","stripUndefined","obj","isPlainObject","copy","k","v","isJsonifiable","body","fetchBaseQuery","baseUrl","prepareHeaders","x","fetchFn","paramsSerializer","isJsonContentType","jsonContentType","jsonReplacer","defaultTimeout","globalResponseHandler","globalValidateStatus","baseFetchOptions","arg","api","extraOptions","getState","extra","endpoint","forced","type","meta","url","params","responseHandler","validateStatus","timeout","rest","config","anySignal","timeoutSignal","bodyIsJsonifiable","divider","query","joinUrls","request","e","responseClone","resultData","responseText","handleResponseError","handleResponse","r","text","HandledError","value","meta","defaultBackoff","attempt","maxRetries","signal","attempts","timeout","resolve","reject","timeoutId","abortHandler","fail","error","meta","HandledError","failIfAborted","EMPTY_OPTIONS","retryWithBackoff","baseQuery","defaultOptions","args","api","extraOptions","possibleMaxRetries","options","_","__","retry","result","e","backoffError","INTERNAL_PREFIX","ONLINE","OFFLINE","FOCUS","FOCUSED","VISIBILITYCHANGE","onFocus","createAction","onFocusLost","onOnline","onOffline","actions","initialized","setupListeners","dispatch","customHandler","defaultHandler","handleFocus","handleFocusLost","handleOnline","handleOffline","action","handleVisibilityChange","unsubscribe","updateListeners","add","handlers","event","handler","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","isAnyQueryDefinition","calculateProvidedBy","description","result","error","queryArg","meta","assertTagTypes","finalDescription","isFunction","filterMap","isNotNullish","tag","expandTagDescription","t","current","isDraft","applyPatches","original","isDraftable","produceWithPatches","enablePatches","asSafePromise","promise","fallback","getEndpointDefinition","context","endpointName","forceQueryFnSymbol","isUpsertQuery","arg","buildInitiate","serializeQueryArgs","queryThunk","infiniteQueryThunk","mutationThunk","api","context","getInternalState","getRunningQueries","dispatch","getRunningMutations","unsubscribeQueryResult","removeMutationResult","updateSubscriptionOptions","buildInitiateQuery","buildInitiateInfiniteQuery","buildInitiateMutation","getRunningQueryThunk","getRunningMutationThunk","getRunningQueriesThunk","getRunningMutationsThunk","endpointName","queryArgs","endpointDefinition","getEndpointDefinition","queryCacheKey","_endpointName","fixedCacheKeyOrRequestId","filterNullishValues","middlewareWarning","buildInitiateAnyQuery","queryAction","subscribe","forceRefetch","subscriptionOptions","forceQueryFn","rest","getState","thunk","commonThunkArgs","ENDPOINT_QUERY","isQueryDefinition","direction","initialPageParam","refetchCachedPages","selector","thunkResult","stateAfter","requestId","abort","skippedSynchronously","runningQuery","selectFromState","statePromise","result","options","runningQueries","track","fixedCacheKey","unwrap","returnValuePromise","asSafePromise","data","error","reset","ret","runningMutations","SchemaError","NamedSchemaError","issues","value","schemaName","_bqMeta","shouldSkip","skipSchemaValidation","parseWithSchema","schema","data","bqMeta","result","defaultTransformResponse","baseQueryReturnValue","addShouldAutoBatch","arg","SHOULD_AUTOBATCH","buildThunks","reducerPath","baseQuery","endpointDefinitions","serializeQueryArgs","api","assertTagType","selectors","onSchemaFailure","globalCatchSchemaFailure","globalSkipSchemaValidation","patchQueryData","endpointName","patches","updateProvided","dispatch","getState","endpointDefinition","queryCacheKey","newValue","providedTags","calculateProvidedBy","addToStart","items","item","max","newItems","addToEnd","updateQueryData","updateRecipe","currentState","ret","STATUS_UNINITIALIZED","isDraftable","value","inversePatches","produceWithPatches","upsertQueryData","forceQueryFnSymbol","getTransformCallbackForEndpoint","transformFieldName","executeEndpoint","signal","abort","rejectWithValue","fulfillWithValue","extra","metaSchema","skipSchemaValidation","isQuery","ENDPOINT_QUERY","transformResponse","baseQueryApi","isForcedQuery","forceQueryFn","finalQueryReturnValue","fetchPage","data","param","maxPages","previous","finalQueryArg","pageResponse","executeRequest","addTo","result","extraOptions","argSchema","rawResponseSchema","responseSchema","shouldSkip","parseWithSchema","HandledError","transformedResponse","infiniteQueryOptions","refetchCachedPages","blankData","cachedData","existingData","getPreviousPageParam","getNextPageParam","initialPageParam","cachedPageParams","firstPageParam","totalPages","i","error","caughtError","transformErrorResponse","rawErrorResponseSchema","errorResponseSchema","meta","transformedErrorResponse","e","NamedSchemaError","info","catchSchemaFailure","state","requestState","baseFetchOnMountOrArgChange","fulfilledVal","refetchVal","createQueryThunk","createAsyncThunk","isInfiniteQueryDefinition","queryThunkArg","currentArg","previousArg","direction","isUpsertQuery","isQueryDefinition","queryThunk","infiniteQueryThunk","mutationThunk","hasTheForce","options","hasMaxAge","prefetch","force","maxAge","queryAction","latestStateValue","lastFulfilledTs","matchesEndpoint","action","buildMatchThunkActions","thunk","isAllOf","isPending","isFulfilled","isRejected","pages","pageParams","queryArg","lastIndex","calculateProvidedByThunk","type","isRejectedWithValue","getCurrent","value","isDraft","current","updateQuerySubstateIfExists","state","queryCacheKey","update","substate","getMutationCacheKey","id","updateMutationSubstateIfExists","initialState","buildSlice","reducerPath","queryThunk","mutationThunk","serializeQueryArgs","definitions","apiUid","extractRehydrationInfo","hasRehydrationInfo","assertTagType","config","resetApiState","createAction","writePendingCacheEntry","draft","arg","upserting","meta","STATUS_UNINITIALIZED","STATUS_PENDING","endpointDefinition","isInfiniteQueryDefinition","writeFulfilledCacheEntry","payload","merge","STATUS_FULFILLED","fulfilledTimeStamp","baseQueryMeta","requestId","newData","createNextState","draftSubstateData","copyWithStructuralSharing","isDraft","original","querySlice","createSlice","prepareAutoBatched","action","entry","value","endpointName","ENDPOINT_QUERY","SHOULD_AUTOBATCH","nanoid","patches","applyPatches","builder","isUpsertQuery","condition","error","STATUS_REJECTED","queries","key","mutationSlice","cacheKey","startedTimeStamp","mutations","initialInvalidationState","invalidationSlice","providedTags","removeCacheKeyFromTags","type","subscribedQueries","provided","incomingTags","cacheKeys","isAnyOf","isFulfilled","isRejectedWithValue","writeProvidedTagsForQueries","mockActions","queryDescription","existingTags","getCurrent","tag","tagType","tagId","tagSubscriptions","qc","actions","providedByEntries","calculateProvidedByThunk","subscriptionSlice","d","internalSubscriptionsSlice","configSlice","isOnline","isDocumentVisible","onOnline","onOffline","onFocus","onFocusLost","combinedReducer","combineReducers","reducer","skipToken","initialSubState","STATUS_UNINITIALIZED","defaultQuerySubState","createNextState","defaultMutationSubState","buildSelectors","serializeQueryArgs","reducerPath","createSelector","selectSkippedQuery","state","selectSkippedMutation","buildQuerySelector","buildInfiniteQuerySelector","buildMutationSelector","selectInvalidatedBy","selectCachedArgsForQuery","selectApiState","selectQueries","selectMutations","selectQueryEntry","selectConfig","withRequestFlags","substate","getRequestStatusFlags","rootState","cacheKey","buildAnyQuerySelector","endpointName","endpointDefinition","combiner","queryArgs","serializedArgs","infiniteQueryOptions","withInfiniteQueryResultFlags","stateWithRequestFlags","isLoading","isError","direction","isForward","isBackward","getHasNextPage","getHasPreviousPage","id","mutationId","getMutationCacheKey","tags","apiState","toInvalidate","finalTags","filterMap","isNotNullish","expandTagDescription","tag","provided","invalidateSubscriptions","invalidate","queryCacheKey","querySubState","queryName","entry","options","data","queryArg","getNextPageParam","getPreviousPageParam","_formatProdErrorMessage","cache","defaultSerializeQueryArgs","endpointName","queryArgs","serialized","cached","stringified","key","value","isPlainObject","acc","weakMapMemoize","buildCreateApi","modules","options","extractRehydrationInfo","action","optionsWithDefaults","queryArgsApi","finalSerializeQueryArgs","defaultSerializeQueryArgs","endpointSQA","initialResult","context","fn","nanoid","api","injectEndpoints","addTagTypes","endpoints","eT","endpointName","partialDefinition","getEndpointDefinition","initializedModules","m","inject","evaluatedEndpoints","x","ENDPOINT_QUERY","ENDPOINT_MUTATION","ENDPOINT_INFINITEQUERY","definition","_formatProdErrorMessage","_formatProdErrorMessage","_NEVER","fakeBaseQuery","safeAssign","target","args","buildBatchedActionsHandler","api","queryThunk","internalState","mwApi","subscriptionsPrefix","previousSubscriptions","updateSyncTimer","updateSubscriptionOptions","unsubscribeQueryResult","actuallyMutateSubscriptions","currentSubscriptions","action","queryCacheKey","requestId","options","sub","arg","substate","getOrInsertComputed","createNewMap","mutated","condition","getSubscriptions","subscriptionSelectors","serializeSubscriptions","k","v","didMutate","actionShouldContinue","newSubscriptions","patches","produceWithPatches","isSubscriptionSliceAction","isAdditionalSubscriptionAction","THIRTY_TWO_BIT_MAX_TIMER_SECONDS","buildCacheCollectionHandler","reducerPath","api","queryThunk","context","internalState","selectQueryEntry","selectConfig","getRunningQueryThunk","mwApi","removeQueryResult","unsubscribeQueryResult","cacheEntriesUpserted","canTriggerUnsubscribe","isAnyOf","anySubscriptionsRemainingForKey","queryCacheKey","subscriptions","currentRemovalTimeouts","abortAllPromises","promiseMap","promise","handler","action","state","config","queryCacheKeys","entry","handleUnsubscribeMany","key","timeout","queries","cacheKeys","handleUnsubscribe","endpointName","keepUnusedDataFor","getEndpointDefinition","finalKeepUnusedDataFor","currentTimeout","neverResolvedError","buildCacheLifecycleHandler","api","reducerPath","context","queryThunk","mutationThunk","internalState","selectQueryEntry","selectApiState","isQueryThunk","isAsyncThunkAction","isMutationThunk","isFulfilledThunk","isFulfilled","lifecycleMap","removeQueryResult","removeMutationResult","cacheEntriesUpserted","resolveLifecycleEntry","cacheKey","data","meta","lifecycle","removeLifecycleEntry","getActionMetaFields","action","arg","requestId","endpointName","originalArgs","handler","mwApi","stateBefore","getCacheKey","checkForNewCacheKey","oldEntry","newEntry","handleNewKey","queryDescription","value","queryCacheKey","getMutationCacheKey","endpointDefinition","getEndpointDefinition","onCacheEntryAdded","cacheEntryRemoved","resolve","cacheDataLoaded","selector","isAnyQueryDefinition","extra","_","__","lifecycleApi","updateRecipe","runningHandler","e","buildDevCheckHandler","api","apiUid","reducerPath","action","mwApi","buildInvalidationByTagsHandler","reducerPath","context","endpointDefinitions","mutationThunk","queryThunk","api","assertTagType","refetchQuery","internalState","removeQueryResult","isThunkActionWithTags","isAnyOf","isFulfilled","isRejectedWithValue","isQueryEnd","isRejected","pendingTagInvalidations","pendingRequestCount","handler","action","mwApi","invalidateTags","calculateProvidedByThunk","calculateProvidedBy","hasPendingRequests","newTags","rootState","state","tags","toInvalidate","valuesArray","queryCacheKey","querySubState","subscriptionSubState","getOrInsertComputed","createNewMap","STATUS_UNINITIALIZED","buildPollingHandler","reducerPath","queryThunk","api","refetchQuery","internalState","currentPolls","currentSubscriptions","pendingPollingUpdates","pollingUpdateTimer","handler","action","mwApi","schedulePollingUpdate","startNextPoll","clearPolls","queryCacheKey","key","updatePollingInterval","state","querySubState","subscriptions","STATUS_UNINITIALIZED","lowestPollingInterval","skipPollingIfUnfocused","findLowestPollingInterval","currentPoll","nextPollTimestamp","cleanupPollForKey","existingPoll","subscribers","entry","buildQueryLifecycleHandler","api","context","queryThunk","mutationThunk","isPendingThunk","isPending","isRejectedThunk","isRejected","isFullfilledThunk","isFulfilled","lifecycleMap","action","mwApi","requestId","endpointName","originalArgs","endpointDefinition","getEndpointDefinition","onQueryStarted","lifecycle","queryFulfilled","resolve","reject","selector","isAnyQueryDefinition","extra","_","__","lifecycleApi","updateRecipe","baseQueryMeta","rejectedWithValue","buildWindowEventHandler","reducerPath","context","api","refetchQuery","internalState","removeQueryResult","handler","action","mwApi","onFocus","refetchValidQueries","onOnline","type","state","queries","subscriptions","queryCacheKey","querySubState","subscriptionSubState","values","sub","STATUS_UNINITIALIZED","buildMiddleware","input","reducerPath","queryThunk","api","context","getInternalState","apiUid","actions","createAction","isThisApiSliceAction","action","handlerBuilders","buildDevCheckHandler","buildCacheCollectionHandler","buildInvalidationByTagsHandler","buildPollingHandler","buildCacheLifecycleHandler","buildQueryLifecycleHandler","mwApi","initialized","internalState","builderArgs","refetchQuery","handlers","build","batchedActionsHandler","buildBatchedActionsHandler","windowEventsHandler","buildWindowEventHandler","next","isAction","mwApiWithNext","stateBefore","actionShouldContinue","internalProbeResult","res","handler","querySubState","coreModuleName","coreModule","createSelector","api","baseQuery","tagTypes","reducerPath","serializeQueryArgs","keepUnusedDataFor","refetchOnMountOrArgChange","refetchOnFocus","refetchOnReconnect","invalidationBehavior","onSchemaFailure","catchSchemaFailure","skipSchemaValidation","context","enablePatches","assertTagType","tag","onOnline","onOffline","onFocus","onFocusLost","selectors","buildSelectors","selectInvalidatedBy","selectCachedArgsForQuery","buildQuerySelector","buildInfiniteQuerySelector","buildMutationSelector","safeAssign","queryThunk","infiniteQueryThunk","mutationThunk","patchQueryData","updateQueryData","upsertQueryData","prefetch","buildMatchThunkActions","buildThunks","reducer","sliceActions","buildSlice","internalStateMap","getInternalState","dispatch","getOrInsertComputed","buildInitiateQuery","buildInitiateInfiniteQuery","buildInitiateMutation","getRunningMutationThunk","getRunningMutationsThunk","getRunningQueriesThunk","getRunningQueryThunk","buildInitiate","middleware","middlewareActions","buildMiddleware","endpointName","definition","anyApi","endpoint","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","createApi","buildCreateApi","coreModule"]}
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.legacy-esm.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3116 +1,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-var __restKey = (key) => typeof key === "symbol" ? key : key + "";
-var __objRest = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-
-// src/query/core/apiState.ts
-var QueryStatus = /* @__PURE__ */ ((QueryStatus7) => {
-  QueryStatus7["uninitialized"] = "uninitialized";
-  QueryStatus7["pending"] = "pending";
-  QueryStatus7["fulfilled"] = "fulfilled";
-  QueryStatus7["rejected"] = "rejected";
-  return QueryStatus7;
-})(QueryStatus || {});
-var STATUS_UNINITIALIZED = "uninitialized" /* uninitialized */;
-var STATUS_PENDING = "pending" /* pending */;
-var STATUS_FULFILLED = "fulfilled" /* fulfilled */;
-var STATUS_REJECTED = "rejected" /* rejected */;
-function getRequestStatusFlags(status) {
-  return {
-    status,
-    isUninitialized: status === STATUS_UNINITIALIZED,
-    isLoading: status === STATUS_PENDING,
-    isSuccess: status === STATUS_FULFILLED,
-    isError: status === STATUS_REJECTED
-  };
-}
-
-// src/query/core/rtkImports.ts
-import { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from "@reduxjs/toolkit";
-
-// src/query/utils/copyWithStructuralSharing.ts
-var isPlainObject2 = isPlainObject;
-function copyWithStructuralSharing(oldObj, newObj) {
-  if (oldObj === newObj || !(isPlainObject2(oldObj) && isPlainObject2(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {
-    return newObj;
-  }
-  const newKeys = Object.keys(newObj);
-  const oldKeys = Object.keys(oldObj);
-  let isSameObject = newKeys.length === oldKeys.length;
-  const mergeObj = Array.isArray(newObj) ? [] : {};
-  for (const key of newKeys) {
-    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);
-    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];
-  }
-  return isSameObject ? oldObj : mergeObj;
-}
-
-// src/query/utils/filterMap.ts
-function filterMap(array, predicate, mapper) {
-  return array.reduce((acc, item, i) => {
-    if (predicate(item, i)) {
-      acc.push(mapper(item, i));
-    }
-    return acc;
-  }, []).flat();
-}
-
-// src/query/utils/isAbsoluteUrl.ts
-function isAbsoluteUrl(url) {
-  return new RegExp(`(^|:)//`).test(url);
-}
-
-// src/query/utils/isDocumentVisible.ts
-function isDocumentVisible() {
-  if (typeof document === "undefined") {
-    return true;
-  }
-  return document.visibilityState !== "hidden";
-}
-
-// src/query/utils/isNotNullish.ts
-function isNotNullish(v) {
-  return v != null;
-}
-function filterNullishValues(map) {
-  var _a;
-  return [...(_a = map == null ? void 0 : map.values()) != null ? _a : []].filter(isNotNullish);
-}
-
-// src/query/utils/isOnline.ts
-function isOnline() {
-  return typeof navigator === "undefined" ? true : navigator.onLine === void 0 ? true : navigator.onLine;
-}
-
-// src/query/utils/joinUrls.ts
-var withoutTrailingSlash = (url) => url.replace(/\/$/, "");
-var withoutLeadingSlash = (url) => url.replace(/^\//, "");
-function joinUrls(base, url) {
-  if (!base) {
-    return url;
-  }
-  if (!url) {
-    return base;
-  }
-  if (isAbsoluteUrl(url)) {
-    return url;
-  }
-  const delimiter = base.endsWith("/") || !url.startsWith("?") ? "/" : "";
-  base = withoutTrailingSlash(base);
-  url = withoutLeadingSlash(url);
-  return `${base}${delimiter}${url}`;
-}
-
-// src/query/utils/getOrInsert.ts
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-var createNewMap = () => /* @__PURE__ */ new Map();
-
-// src/query/utils/signals.ts
-var timeoutSignal = (milliseconds) => {
-  const abortController = new AbortController();
-  setTimeout(() => {
-    const message = "signal timed out";
-    const name = "TimeoutError";
-    abortController.abort(
-      // some environments (React Native, Node) don't have DOMException
-      typeof DOMException !== "undefined" ? new DOMException(message, name) : Object.assign(new Error(message), {
-        name
-      })
-    );
-  }, milliseconds);
-  return abortController.signal;
-};
-var anySignal = (...signals) => {
-  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);
-  const abortController = new AbortController();
-  for (const signal of signals) {
-    signal.addEventListener("abort", () => abortController.abort(signal.reason), {
-      signal: abortController.signal,
-      once: true
-    });
-  }
-  return abortController.signal;
-};
-
-// src/query/fetchBaseQuery.ts
-var defaultFetchFn = (...args) => fetch(...args);
-var defaultValidateStatus = (response) => response.status >= 200 && response.status <= 299;
-var defaultIsJsonContentType = (headers) => (
-  /*applicat*/
-  /ion\/(vnd\.api\+)?json/.test(headers.get("content-type") || "")
-);
-function stripUndefined(obj) {
-  if (!isPlainObject(obj)) {
-    return obj;
-  }
-  const copy = __spreadValues({}, obj);
-  for (const [k, v] of Object.entries(copy)) {
-    if (v === void 0) delete copy[k];
-  }
-  return copy;
-}
-var isJsonifiable = (body) => typeof body === "object" && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === "function");
-function fetchBaseQuery(_a = {}) {
-  var _b = _a, {
-    baseUrl,
-    prepareHeaders = (x) => x,
-    fetchFn = defaultFetchFn,
-    paramsSerializer,
-    isJsonContentType = defaultIsJsonContentType,
-    jsonContentType = "application/json",
-    jsonReplacer,
-    timeout: defaultTimeout,
-    responseHandler: globalResponseHandler,
-    validateStatus: globalValidateStatus
-  } = _b, baseFetchOptions = __objRest(_b, [
-    "baseUrl",
-    "prepareHeaders",
-    "fetchFn",
-    "paramsSerializer",
-    "isJsonContentType",
-    "jsonContentType",
-    "jsonReplacer",
-    "timeout",
-    "responseHandler",
-    "validateStatus"
-  ]);
-  if (typeof fetch === "undefined" && fetchFn === defaultFetchFn) {
-    console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.");
-  }
-  return async (arg, api, extraOptions) => {
-    const {
-      getState,
-      extra,
-      endpoint,
-      forced,
-      type
-    } = api;
-    let meta;
-    let _a2 = typeof arg == "string" ? {
-      url: arg
-    } : arg, {
-      url,
-      headers = new Headers(baseFetchOptions.headers),
-      params = void 0,
-      responseHandler = globalResponseHandler != null ? globalResponseHandler : "json",
-      validateStatus = globalValidateStatus != null ? globalValidateStatus : defaultValidateStatus,
-      timeout = defaultTimeout
-    } = _a2, rest = __objRest(_a2, [
-      "url",
-      "headers",
-      "params",
-      "responseHandler",
-      "validateStatus",
-      "timeout"
-    ]);
-    let config = __spreadValues(__spreadProps(__spreadValues({}, baseFetchOptions), {
-      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal
-    }), rest);
-    headers = new Headers(stripUndefined(headers));
-    config.headers = await prepareHeaders(headers, {
-      getState,
-      arg,
-      extra,
-      endpoint,
-      forced,
-      type,
-      extraOptions
-    }) || headers;
-    const bodyIsJsonifiable = isJsonifiable(config.body);
-    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== "string") {
-      config.headers.delete("content-type");
-    }
-    if (!config.headers.has("content-type") && bodyIsJsonifiable) {
-      config.headers.set("content-type", jsonContentType);
-    }
-    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {
-      config.body = JSON.stringify(config.body, jsonReplacer);
-    }
-    if (!config.headers.has("accept")) {
-      if (responseHandler === "json") {
-        config.headers.set("accept", "application/json");
-      } else if (responseHandler === "text") {
-        config.headers.set("accept", "text/plain, text/html, */*");
-      }
-    }
-    if (params) {
-      const divider = ~url.indexOf("?") ? "&" : "?";
-      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));
-      url += divider + query;
-    }
-    url = joinUrls(baseUrl, url);
-    const request = new Request(url, config);
-    const requestClone = new Request(url, config);
-    meta = {
-      request: requestClone
-    };
-    let response;
-    try {
-      response = await fetchFn(request);
-    } catch (e) {
-      return {
-        error: {
-          status: (e instanceof Error || typeof DOMException !== "undefined" && e instanceof DOMException) && e.name === "TimeoutError" ? "TIMEOUT_ERROR" : "FETCH_ERROR",
-          error: String(e)
-        },
-        meta
-      };
-    }
-    const responseClone = response.clone();
-    meta.response = responseClone;
-    let resultData;
-    let responseText = "";
-    try {
-      let handleResponseError;
-      await Promise.all([
-        handleResponse(response, responseHandler).then((r) => resultData = r, (e) => handleResponseError = e),
-        // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182
-        // we *have* to "use up" both streams at the same time or they will stop running in node-fetch scenarios
-        responseClone.text().then((r) => responseText = r, () => {
-        })
-      ]);
-      if (handleResponseError) throw handleResponseError;
-    } catch (e) {
-      return {
-        error: {
-          status: "PARSING_ERROR",
-          originalStatus: response.status,
-          data: responseText,
-          error: String(e)
-        },
-        meta
-      };
-    }
-    return validateStatus(response, resultData) ? {
-      data: resultData,
-      meta
-    } : {
-      error: {
-        status: response.status,
-        data: resultData
-      },
-      meta
-    };
-  };
-  async function handleResponse(response, responseHandler) {
-    if (typeof responseHandler === "function") {
-      return responseHandler(response);
-    }
-    if (responseHandler === "content-type") {
-      responseHandler = isJsonContentType(response.headers) ? "json" : "text";
-    }
-    if (responseHandler === "json") {
-      const text = await response.text();
-      return text.length ? JSON.parse(text) : null;
-    }
-    return response.text();
-  }
-}
-
-// src/query/HandledError.ts
-var HandledError = class {
-  constructor(value, meta = void 0) {
-    this.value = value;
-    this.meta = meta;
-  }
-};
-
-// src/query/retry.ts
-async function defaultBackoff(attempt = 0, maxRetries = 5, signal) {
-  const attempts = Math.min(attempt, maxRetries);
-  const timeout = ~~((Math.random() + 0.4) * (300 << attempts));
-  await new Promise((resolve, reject) => {
-    const timeoutId = setTimeout(() => resolve(), timeout);
-    if (signal) {
-      const abortHandler = () => {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      };
-      if (signal.aborted) {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      } else {
-        signal.addEventListener("abort", abortHandler, {
-          once: true
-        });
-      }
-    }
-  });
-}
-function fail(error, meta) {
-  throw Object.assign(new HandledError({
-    error,
-    meta
-  }), {
-    throwImmediately: true
-  });
-}
-function failIfAborted(signal) {
-  if (signal.aborted) {
-    fail({
-      status: "CUSTOM_ERROR",
-      error: "Aborted"
-    });
-  }
-}
-var EMPTY_OPTIONS = {};
-var retryWithBackoff = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {
-  const possibleMaxRetries = [5, (defaultOptions || EMPTY_OPTIONS).maxRetries, (extraOptions || EMPTY_OPTIONS).maxRetries].filter((x) => x !== void 0);
-  const [maxRetries] = possibleMaxRetries.slice(-1);
-  const defaultRetryCondition = (_, __, {
-    attempt
-  }) => attempt <= maxRetries;
-  const options = __spreadValues(__spreadValues({
-    maxRetries,
-    backoff: defaultBackoff,
-    retryCondition: defaultRetryCondition
-  }, defaultOptions), extraOptions);
-  let retry2 = 0;
-  while (true) {
-    failIfAborted(api.signal);
-    try {
-      const result = await baseQuery(args, api, extraOptions);
-      if (result.error) {
-        throw new HandledError(result);
-      }
-      return result;
-    } catch (e) {
-      retry2++;
-      if (e.throwImmediately) {
-        if (e instanceof HandledError) {
-          return e.value;
-        }
-        throw e;
-      }
-      if (e instanceof HandledError) {
-        if (!options.retryCondition(e.value.error, args, {
-          attempt: retry2,
-          baseQueryApi: api,
-          extraOptions
-        })) {
-          return e.value;
-        }
-      } else {
-        if (retry2 > options.maxRetries) {
-          return {
-            error: e
-          };
-        }
-      }
-      failIfAborted(api.signal);
-      try {
-        await options.backoff(retry2, options.maxRetries, api.signal);
-      } catch (backoffError) {
-        failIfAborted(api.signal);
-        throw backoffError;
-      }
-    }
-  }
-};
-var retry = /* @__PURE__ */ Object.assign(retryWithBackoff, {
-  fail
-});
-
-// src/query/core/setupListeners.ts
-var INTERNAL_PREFIX = "__rtkq/";
-var ONLINE = "online";
-var OFFLINE = "offline";
-var FOCUS = "focus";
-var FOCUSED = "focused";
-var VISIBILITYCHANGE = "visibilitychange";
-var onFocus = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${FOCUSED}`);
-var onFocusLost = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);
-var onOnline = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${ONLINE}`);
-var onOffline = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${OFFLINE}`);
-var actions = {
-  onFocus,
-  onFocusLost,
-  onOnline,
-  onOffline
-};
-var initialized = false;
-function setupListeners(dispatch, customHandler) {
-  function defaultHandler() {
-    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map((action) => () => dispatch(action()));
-    const handleVisibilityChange = () => {
-      if (window.document.visibilityState === "visible") {
-        handleFocus();
-      } else {
-        handleFocusLost();
-      }
-    };
-    let unsubscribe = () => {
-      initialized = false;
-    };
-    if (!initialized) {
-      if (typeof window !== "undefined" && window.addEventListener) {
-        let updateListeners2 = function(add) {
-          Object.entries(handlers).forEach(([event, handler]) => {
-            if (add) {
-              window.addEventListener(event, handler, false);
-            } else {
-              window.removeEventListener(event, handler);
-            }
-          });
-        };
-        var updateListeners = updateListeners2;
-        const handlers = {
-          [FOCUS]: handleFocus,
-          [VISIBILITYCHANGE]: handleVisibilityChange,
-          [ONLINE]: handleOnline,
-          [OFFLINE]: handleOffline
-        };
-        updateListeners2(true);
-        initialized = true;
-        unsubscribe = () => {
-          updateListeners2(false);
-          initialized = false;
-        };
-      }
-    }
-    return unsubscribe;
-  }
-  return customHandler ? customHandler(dispatch, actions) : defaultHandler();
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-function isAnyQueryDefinition(e) {
-  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);
-}
-function calculateProvidedBy(description, result, error, queryArg, meta, assertTagTypes) {
-  const finalDescription = isFunction(description) ? description(result, error, queryArg, meta) : description;
-  if (finalDescription) {
-    return filterMap(finalDescription, isNotNullish, (tag) => assertTagTypes(expandTagDescription(tag)));
-  }
-  return [];
-}
-function isFunction(t) {
-  return typeof t === "function";
-}
-function expandTagDescription(description) {
-  return typeof description === "string" ? {
-    type: description
-  } : description;
-}
-
-// src/query/utils/immerImports.ts
-import { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from "immer";
-
-// src/query/core/buildInitiate.ts
-import { formatProdErrorMessage as _formatProdErrorMessage } from "@reduxjs/toolkit";
-
-// src/tsHelpers.ts
-function asSafePromise(promise, fallback) {
-  return promise.catch(fallback);
-}
-
-// src/query/apiTypes.ts
-var getEndpointDefinition = (context, endpointName) => context.endpointDefinitions[endpointName];
-
-// src/query/core/buildInitiate.ts
-var forceQueryFnSymbol = Symbol("forceQueryFn");
-var isUpsertQuery = (arg) => typeof arg[forceQueryFnSymbol] === "function";
-function buildInitiate({
-  serializeQueryArgs,
-  queryThunk,
-  infiniteQueryThunk,
-  mutationThunk,
-  api,
-  context,
-  getInternalState
-}) {
-  const getRunningQueries = (dispatch) => {
-    var _a;
-    return (_a = getInternalState(dispatch)) == null ? void 0 : _a.runningQueries;
-  };
-  const getRunningMutations = (dispatch) => {
-    var _a;
-    return (_a = getInternalState(dispatch)) == null ? void 0 : _a.runningMutations;
-  };
-  const {
-    unsubscribeQueryResult,
-    removeMutationResult,
-    updateSubscriptionOptions
-  } = api.internalActions;
-  return {
-    buildInitiateQuery,
-    buildInitiateInfiniteQuery,
-    buildInitiateMutation,
-    getRunningQueryThunk,
-    getRunningMutationThunk,
-    getRunningQueriesThunk,
-    getRunningMutationsThunk
-  };
-  function getRunningQueryThunk(endpointName, queryArgs) {
-    return (dispatch) => {
-      var _a;
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      return (_a = getRunningQueries(dispatch)) == null ? void 0 : _a.get(queryCacheKey);
-    };
-  }
-  function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {
-    return (dispatch) => {
-      var _a;
-      return (_a = getRunningMutations(dispatch)) == null ? void 0 : _a.get(fixedCacheKeyOrRequestId);
-    };
-  }
-  function getRunningQueriesThunk() {
-    return (dispatch) => filterNullishValues(getRunningQueries(dispatch));
-  }
-  function getRunningMutationsThunk() {
-    return (dispatch) => filterNullishValues(getRunningMutations(dispatch));
-  }
-  function middlewareWarning(dispatch) {
-    if (process.env.NODE_ENV !== "production") {
-      if (middlewareWarning.triggered) return;
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      middlewareWarning.triggered = true;
-      if (typeof returnedValue !== "object" || typeof (returnedValue == null ? void 0 : returnedValue.type) === "string") {
-        throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-You must add the middleware for RTK-Query to function correctly!`);
-      }
-    }
-  }
-  function buildInitiateAnyQuery(endpointName, endpointDefinition) {
-    const queryAction = (arg, _a = {}) => {
-      var _b = _a, {
-        subscribe = true,
-        forceRefetch,
-        subscriptionOptions,
-        [forceQueryFnSymbol]: forceQueryFn
-      } = _b, rest = __objRest(_b, [
-        "subscribe",
-        "forceRefetch",
-        "subscriptionOptions",
-        __restKey(forceQueryFnSymbol)
-      ]);
-      return (dispatch, getState) => {
-        var _a2;
-        const queryCacheKey = serializeQueryArgs({
-          queryArgs: arg,
-          endpointDefinition,
-          endpointName
-        });
-        let thunk;
-        const commonThunkArgs = __spreadProps(__spreadValues({}, rest), {
-          type: ENDPOINT_QUERY,
-          subscribe,
-          forceRefetch,
-          subscriptionOptions,
-          endpointName,
-          originalArgs: arg,
-          queryCacheKey,
-          [forceQueryFnSymbol]: forceQueryFn
-        });
-        if (isQueryDefinition(endpointDefinition)) {
-          thunk = queryThunk(commonThunkArgs);
-        } else {
-          const {
-            direction,
-            initialPageParam,
-            refetchCachedPages
-          } = rest;
-          thunk = infiniteQueryThunk(__spreadProps(__spreadValues({}, commonThunkArgs), {
-            // Supply these even if undefined. This helps with a field existence
-            // check over in `buildSlice.ts`
-            direction,
-            initialPageParam,
-            refetchCachedPages
-          }));
-        }
-        const selector = api.endpoints[endpointName].select(arg);
-        const thunkResult = dispatch(thunk);
-        const stateAfter = selector(getState());
-        middlewareWarning(dispatch);
-        const {
-          requestId,
-          abort
-        } = thunkResult;
-        const skippedSynchronously = stateAfter.requestId !== requestId;
-        const runningQuery = (_a2 = getRunningQueries(dispatch)) == null ? void 0 : _a2.get(queryCacheKey);
-        const selectFromState = () => selector(getState());
-        const statePromise = Object.assign(forceQueryFn ? (
-          // a query has been forced (upsertQueryData)
-          // -> we want to resolve it once data has been written with the data that will be written
-          thunkResult.then(selectFromState)
-        ) : skippedSynchronously && !runningQuery ? (
-          // a query has been skipped due to a condition and we do not have any currently running query
-          // -> we want to resolve it immediately with the current data
-          Promise.resolve(stateAfter)
-        ) : (
-          // query just started or one is already in flight
-          // -> wait for the running query, then resolve with data from after that
-          Promise.all([runningQuery, thunkResult]).then(selectFromState)
-        ), {
-          arg,
-          requestId,
-          subscriptionOptions,
-          queryCacheKey,
-          abort,
-          async unwrap() {
-            const result = await statePromise;
-            if (result.isError) {
-              throw result.error;
-            }
-            return result.data;
-          },
-          refetch: (options) => dispatch(queryAction(arg, __spreadValues({
-            subscribe: false,
-            forceRefetch: true
-          }, options))),
-          unsubscribe() {
-            if (subscribe) dispatch(unsubscribeQueryResult({
-              queryCacheKey,
-              requestId
-            }));
-          },
-          updateSubscriptionOptions(options) {
-            statePromise.subscriptionOptions = options;
-            dispatch(updateSubscriptionOptions({
-              endpointName,
-              requestId,
-              queryCacheKey,
-              options
-            }));
-          }
-        });
-        if (!runningQuery && !skippedSynchronously && !forceQueryFn) {
-          const runningQueries = getRunningQueries(dispatch);
-          runningQueries.set(queryCacheKey, statePromise);
-          statePromise.then(() => {
-            runningQueries.delete(queryCacheKey);
-          });
-        }
-        return statePromise;
-      };
-    };
-    return queryAction;
-  }
-  function buildInitiateQuery(endpointName, endpointDefinition) {
-    const queryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return queryAction;
-  }
-  function buildInitiateInfiniteQuery(endpointName, endpointDefinition) {
-    const infiniteQueryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return infiniteQueryAction;
-  }
-  function buildInitiateMutation(endpointName) {
-    return (arg, {
-      track = true,
-      fixedCacheKey
-    } = {}) => (dispatch, getState) => {
-      const thunk = mutationThunk({
-        type: "mutation",
-        endpointName,
-        originalArgs: arg,
-        track,
-        fixedCacheKey
-      });
-      const thunkResult = dispatch(thunk);
-      middlewareWarning(dispatch);
-      const {
-        requestId,
-        abort,
-        unwrap
-      } = thunkResult;
-      const returnValuePromise = asSafePromise(thunkResult.unwrap().then((data) => ({
-        data
-      })), (error) => ({
-        error
-      }));
-      const reset = () => {
-        dispatch(removeMutationResult({
-          requestId,
-          fixedCacheKey
-        }));
-      };
-      const ret = Object.assign(returnValuePromise, {
-        arg: thunkResult.arg,
-        requestId,
-        abort,
-        unwrap,
-        reset
-      });
-      const runningMutations = getRunningMutations(dispatch);
-      runningMutations.set(requestId, ret);
-      ret.then(() => {
-        runningMutations.delete(requestId);
-      });
-      if (fixedCacheKey) {
-        runningMutations.set(fixedCacheKey, ret);
-        ret.then(() => {
-          if (runningMutations.get(fixedCacheKey) === ret) {
-            runningMutations.delete(fixedCacheKey);
-          }
-        });
-      }
-      return ret;
-    };
-  }
-}
-
-// src/query/standardSchema.ts
-import { SchemaError } from "@standard-schema/utils";
-var NamedSchemaError = class extends SchemaError {
-  constructor(issues, value, schemaName, _bqMeta) {
-    super(issues);
-    this.value = value;
-    this.schemaName = schemaName;
-    this._bqMeta = _bqMeta;
-  }
-};
-var shouldSkip = (skipSchemaValidation, schemaName) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;
-async function parseWithSchema(schema, data, schemaName, bqMeta) {
-  const result = await schema["~standard"].validate(data);
-  if (result.issues) {
-    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);
-  }
-  return result.value;
-}
-
-// src/query/core/buildThunks.ts
-function defaultTransformResponse(baseQueryReturnValue) {
-  return baseQueryReturnValue;
-}
-var addShouldAutoBatch = (arg = {}) => {
-  return __spreadProps(__spreadValues({}, arg), {
-    [SHOULD_AUTOBATCH]: true
-  });
-};
-function buildThunks({
-  reducerPath,
-  baseQuery,
-  context: {
-    endpointDefinitions
-  },
-  serializeQueryArgs,
-  api,
-  assertTagType,
-  selectors,
-  onSchemaFailure,
-  catchSchemaFailure: globalCatchSchemaFailure,
-  skipSchemaValidation: globalSkipSchemaValidation
-}) {
-  const patchQueryData = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {
-    const endpointDefinition = endpointDefinitions[endpointName];
-    const queryCacheKey = serializeQueryArgs({
-      queryArgs: arg,
-      endpointDefinition,
-      endpointName
-    });
-    dispatch(api.internalActions.queryResultPatched({
-      queryCacheKey,
-      patches
-    }));
-    if (!updateProvided) {
-      return;
-    }
-    const newValue = api.endpoints[endpointName].select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, void 0, arg, {}, assertTagType);
-    dispatch(api.internalActions.updateProvidedBy([{
-      queryCacheKey,
-      providedTags
-    }]));
-  };
-  function addToStart(items, item, max = 0) {
-    const newItems = [item, ...items];
-    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;
-  }
-  function addToEnd(items, item, max = 0) {
-    const newItems = [...items, item];
-    return max && newItems.length > max ? newItems.slice(1) : newItems;
-  }
-  const updateQueryData = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {
-    const endpointDefinition = api.endpoints[endpointName];
-    const currentState = endpointDefinition.select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const ret = {
-      patches: [],
-      inversePatches: [],
-      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))
-    };
-    if (currentState.status === STATUS_UNINITIALIZED) {
-      return ret;
-    }
-    let newValue;
-    if ("data" in currentState) {
-      if (isDraftable(currentState.data)) {
-        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);
-        ret.patches.push(...patches);
-        ret.inversePatches.push(...inversePatches);
-        newValue = value;
-      } else {
-        newValue = updateRecipe(currentState.data);
-        ret.patches.push({
-          op: "replace",
-          path: [],
-          value: newValue
-        });
-        ret.inversePatches.push({
-          op: "replace",
-          path: [],
-          value: currentState.data
-        });
-      }
-    }
-    if (ret.patches.length === 0) {
-      return ret;
-    }
-    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));
-    return ret;
-  };
-  const upsertQueryData = (endpointName, arg, value) => (dispatch) => {
-    const res = dispatch(api.endpoints[endpointName].initiate(arg, {
-      subscribe: false,
-      forceRefetch: true,
-      [forceQueryFnSymbol]: () => ({
-        data: value
-      })
-    }));
-    return res;
-  };
-  const getTransformCallbackForEndpoint = (endpointDefinition, transformFieldName) => {
-    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName] : defaultTransformResponse;
-  };
-  const executeEndpoint = async (arg, {
-    signal,
-    abort,
-    rejectWithValue,
-    fulfillWithValue,
-    dispatch,
-    getState,
-    extra
-  }) => {
-    var _a, _b, _c, _d, _e, _f;
-    const endpointDefinition = endpointDefinitions[arg.endpointName];
-    const {
-      metaSchema,
-      skipSchemaValidation = globalSkipSchemaValidation
-    } = endpointDefinition;
-    const isQuery = arg.type === ENDPOINT_QUERY;
-    try {
-      let transformResponse = defaultTransformResponse;
-      const baseQueryApi = {
-        signal,
-        abort,
-        dispatch,
-        getState,
-        extra,
-        endpoint: arg.endpointName,
-        type: arg.type,
-        forced: isQuery ? isForcedQuery(arg, getState()) : void 0,
-        queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-      };
-      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : void 0;
-      let finalQueryReturnValue;
-      const fetchPage = async (data, param, maxPages, previous) => {
-        if (param == null && data.pages.length) {
-          return Promise.resolve({
-            data
-          });
-        }
-        const finalQueryArg = {
-          queryArg: arg.originalArgs,
-          pageParam: param
-        };
-        const pageResponse = await executeRequest(finalQueryArg);
-        const addTo = previous ? addToStart : addToEnd;
-        return {
-          data: {
-            pages: addTo(data.pages, pageResponse.data, maxPages),
-            pageParams: addTo(data.pageParams, param, maxPages)
-          },
-          meta: pageResponse.meta
-        };
-      };
-      async function executeRequest(finalQueryArg) {
-        let result;
-        const {
-          extraOptions,
-          argSchema,
-          rawResponseSchema,
-          responseSchema
-        } = endpointDefinition;
-        if (argSchema && !shouldSkip(skipSchemaValidation, "arg")) {
-          finalQueryArg = await parseWithSchema(
-            argSchema,
-            finalQueryArg,
-            "argSchema",
-            {}
-            // we don't have a meta yet, so we can't pass it
-          );
-        }
-        if (forceQueryFn) {
-          result = forceQueryFn();
-        } else if (endpointDefinition.query) {
-          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformResponse");
-          result = await baseQuery(endpointDefinition.query(finalQueryArg), baseQueryApi, extraOptions);
-        } else {
-          result = await endpointDefinition.queryFn(finalQueryArg, baseQueryApi, extraOptions, (arg2) => baseQuery(arg2, baseQueryApi, extraOptions));
-        }
-        if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-          const what = endpointDefinition.query ? "`baseQuery`" : "`queryFn`";
-          let err;
-          if (!result) {
-            err = `${what} did not return anything.`;
-          } else if (typeof result !== "object") {
-            err = `${what} did not return an object.`;
-          } else if (result.error && result.data) {
-            err = `${what} returned an object containing both \`error\` and \`result\`.`;
-          } else if (result.error === void 0 && result.data === void 0) {
-            err = `${what} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``;
-          } else {
-            for (const key of Object.keys(result)) {
-              if (key !== "error" && key !== "data" && key !== "meta") {
-                err = `The object returned by ${what} has the unknown property ${key}.`;
-                break;
-              }
-            }
-          }
-          if (err) {
-            console.error(`Error encountered handling the endpoint ${arg.endpointName}.
-                  ${err}
-                  It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.
-                  Object returned was:`, result);
-          }
-        }
-        if (result.error) throw new HandledError(result.error, result.meta);
-        let {
-          data
-        } = result;
-        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, "rawResponse")) {
-          data = await parseWithSchema(rawResponseSchema, result.data, "rawResponseSchema", result.meta);
-        }
-        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);
-        if (responseSchema && !shouldSkip(skipSchemaValidation, "response")) {
-          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, "responseSchema", result.meta);
-        }
-        return __spreadProps(__spreadValues({}, result), {
-          data: transformedResponse
-        });
-      }
-      if (isQuery && "infiniteQueryOptions" in endpointDefinition) {
-        const {
-          infiniteQueryOptions
-        } = endpointDefinition;
-        const {
-          maxPages = Infinity
-        } = infiniteQueryOptions;
-        const refetchCachedPages = (_b = (_a = arg.refetchCachedPages) != null ? _a : infiniteQueryOptions.refetchCachedPages) != null ? _b : true;
-        let result;
-        const blankData = {
-          pages: [],
-          pageParams: []
-        };
-        const cachedData = (_c = selectors.selectQueryEntry(getState(), arg.queryCacheKey)) == null ? void 0 : _c.data;
-        const isForcedQueryNeedingRefetch = (
-          // arg.forceRefetch
-          isForcedQuery(arg, getState()) && !arg.direction
-        );
-        const existingData = isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData;
-        if ("direction" in arg && arg.direction && existingData.pages.length) {
-          const previous = arg.direction === "backward";
-          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;
-          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);
-          result = await fetchPage(existingData, param, maxPages, previous);
-        } else {
-          const {
-            initialPageParam = infiniteQueryOptions.initialPageParam
-          } = arg;
-          const cachedPageParams = (_d = cachedData == null ? void 0 : cachedData.pageParams) != null ? _d : [];
-          const firstPageParam = (_e = cachedPageParams[0]) != null ? _e : initialPageParam;
-          const totalPages = cachedPageParams.length;
-          result = await fetchPage(existingData, firstPageParam, maxPages);
-          if (forceQueryFn) {
-            result = {
-              data: result.data.pages[0]
-            };
-          }
-          if (refetchCachedPages) {
-            for (let i = 1; i < totalPages; i++) {
-              const param = getNextPageParam(infiniteQueryOptions, result.data, arg.originalArgs);
-              result = await fetchPage(result.data, param, maxPages);
-            }
-          }
-        }
-        finalQueryReturnValue = result;
-      } else {
-        finalQueryReturnValue = await executeRequest(arg.originalArgs);
-      }
-      if (metaSchema && !shouldSkip(skipSchemaValidation, "meta") && finalQueryReturnValue.meta) {
-        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, "metaSchema", finalQueryReturnValue.meta);
-      }
-      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({
-        fulfilledTimeStamp: Date.now(),
-        baseQueryMeta: finalQueryReturnValue.meta
-      }));
-    } catch (error) {
-      let caughtError = error;
-      if (caughtError instanceof HandledError) {
-        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformErrorResponse");
-        const {
-          rawErrorResponseSchema,
-          errorResponseSchema
-        } = endpointDefinition;
-        let {
-          value,
-          meta
-        } = caughtError;
-        try {
-          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, "rawErrorResponse")) {
-            value = await parseWithSchema(rawErrorResponseSchema, value, "rawErrorResponseSchema", meta);
-          }
-          if (metaSchema && !shouldSkip(skipSchemaValidation, "meta")) {
-            meta = await parseWithSchema(metaSchema, meta, "metaSchema", meta);
-          }
-          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);
-          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, "errorResponse")) {
-            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, "errorResponseSchema", meta);
-          }
-          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({
-            baseQueryMeta: meta
-          }));
-        } catch (e) {
-          caughtError = e;
-        }
-      }
-      try {
-        if (caughtError instanceof NamedSchemaError) {
-          const info = {
-            endpoint: arg.endpointName,
-            arg: arg.originalArgs,
-            type: arg.type,
-            queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-          };
-          (_f = endpointDefinition.onSchemaFailure) == null ? void 0 : _f.call(endpointDefinition, caughtError, info);
-          onSchemaFailure == null ? void 0 : onSchemaFailure(caughtError, info);
-          const {
-            catchSchemaFailure = globalCatchSchemaFailure
-          } = endpointDefinition;
-          if (catchSchemaFailure) {
-            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({
-              baseQueryMeta: caughtError._bqMeta
-            }));
-          }
-        }
-      } catch (e) {
-        caughtError = e;
-      }
-      if (typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
-        console.error(`An unhandled error occurred processing a request for the endpoint "${arg.endpointName}".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`, caughtError);
-      } else {
-        console.error(caughtError);
-      }
-      throw caughtError;
-    }
-  };
-  function isForcedQuery(arg, state) {
-    var _a;
-    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);
-    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;
-    const fulfilledVal = requestState == null ? void 0 : requestState.fulfilledTimeStamp;
-    const refetchVal = (_a = arg.forceRefetch) != null ? _a : arg.subscribe && baseFetchOnMountOrArgChange;
-    if (refetchVal) {
-      return refetchVal === true || (Number(/* @__PURE__ */ new Date()) - Number(fulfilledVal)) / 1e3 >= refetchVal;
-    }
-    return false;
-  }
-  const createQueryThunk = () => {
-    const generatedQueryThunk = createAsyncThunk(`${reducerPath}/executeQuery`, executeEndpoint, {
-      getPendingMeta({
-        arg
-      }) {
-        const endpointDefinition = endpointDefinitions[arg.endpointName];
-        return addShouldAutoBatch(__spreadValues({
-          startedTimeStamp: Date.now()
-        }, isInfiniteQueryDefinition(endpointDefinition) ? {
-          direction: arg.direction
-        } : {}));
-      },
-      condition(queryThunkArg, {
-        getState
-      }) {
-        var _a;
-        const state = getState();
-        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);
-        const fulfilledVal = requestState == null ? void 0 : requestState.fulfilledTimeStamp;
-        const currentArg = queryThunkArg.originalArgs;
-        const previousArg = requestState == null ? void 0 : requestState.originalArgs;
-        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];
-        const direction = queryThunkArg.direction;
-        if (isUpsertQuery(queryThunkArg)) {
-          return true;
-        }
-        if ((requestState == null ? void 0 : requestState.status) === "pending") {
-          return false;
-        }
-        if (isForcedQuery(queryThunkArg, state)) {
-          return true;
-        }
-        if (isQueryDefinition(endpointDefinition) && ((_a = endpointDefinition == null ? void 0 : endpointDefinition.forceRefetch) == null ? void 0 : _a.call(endpointDefinition, {
-          currentArg,
-          previousArg,
-          endpointState: requestState,
-          state
-        }))) {
-          return true;
-        }
-        if (fulfilledVal && !direction) {
-          return false;
-        }
-        return true;
-      },
-      dispatchConditionRejection: true
-    });
-    return generatedQueryThunk;
-  };
-  const queryThunk = createQueryThunk();
-  const infiniteQueryThunk = createQueryThunk();
-  const mutationThunk = createAsyncThunk(`${reducerPath}/executeMutation`, executeEndpoint, {
-    getPendingMeta() {
-      return addShouldAutoBatch({
-        startedTimeStamp: Date.now()
-      });
-    }
-  });
-  const hasTheForce = (options) => "force" in options;
-  const hasMaxAge = (options) => "ifOlderThan" in options;
-  const prefetch = (endpointName, arg, options = {}) => (dispatch, getState) => {
-    const force = hasTheForce(options) && options.force;
-    const maxAge = hasMaxAge(options) && options.ifOlderThan;
-    const queryAction = (force2 = true) => {
-      const options2 = {
-        forceRefetch: force2,
-        subscribe: false
-      };
-      return api.endpoints[endpointName].initiate(arg, options2);
-    };
-    const latestStateValue = api.endpoints[endpointName].select(arg)(getState());
-    if (force) {
-      dispatch(queryAction());
-    } else if (maxAge) {
-      const lastFulfilledTs = latestStateValue == null ? void 0 : latestStateValue.fulfilledTimeStamp;
-      if (!lastFulfilledTs) {
-        dispatch(queryAction());
-        return;
-      }
-      const shouldRetrigger = (Number(/* @__PURE__ */ new Date()) - Number(new Date(lastFulfilledTs))) / 1e3 >= maxAge;
-      if (shouldRetrigger) {
-        dispatch(queryAction());
-      }
-    } else {
-      dispatch(queryAction(false));
-    }
-  };
-  function matchesEndpoint(endpointName) {
-    return (action) => {
-      var _a, _b;
-      return ((_b = (_a = action == null ? void 0 : action.meta) == null ? void 0 : _a.arg) == null ? void 0 : _b.endpointName) === endpointName;
-    };
-  }
-  function buildMatchThunkActions(thunk, endpointName) {
-    return {
-      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),
-      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),
-      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))
-    };
-  }
-  return {
-    queryThunk,
-    mutationThunk,
-    infiniteQueryThunk,
-    prefetch,
-    updateQueryData,
-    upsertQueryData,
-    patchQueryData,
-    buildMatchThunkActions
-  };
-}
-function getNextPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  const lastIndex = pages.length - 1;
-  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);
-}
-function getPreviousPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  var _a;
-  return (_a = options.getPreviousPageParam) == null ? void 0 : _a.call(options, pages[0], pages, pageParams[0], pageParams, queryArg);
-}
-function calculateProvidedByThunk(action, type, endpointDefinitions, assertTagType) {
-  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type], isFulfilled(action) ? action.payload : void 0, isRejectedWithValue(action) ? action.payload : void 0, action.meta.arg.originalArgs, "baseQueryMeta" in action.meta ? action.meta.baseQueryMeta : void 0, assertTagType);
-}
-
-// src/query/utils/getCurrent.ts
-function getCurrent(value) {
-  return isDraft(value) ? current(value) : value;
-}
-
-// src/query/core/buildSlice.ts
-function updateQuerySubstateIfExists(state, queryCacheKey, update) {
-  const substate = state[queryCacheKey];
-  if (substate) {
-    update(substate);
-  }
-}
-function getMutationCacheKey(id) {
-  var _a;
-  return (_a = "arg" in id ? id.arg.fixedCacheKey : id.fixedCacheKey) != null ? _a : id.requestId;
-}
-function updateMutationSubstateIfExists(state, id, update) {
-  const substate = state[getMutationCacheKey(id)];
-  if (substate) {
-    update(substate);
-  }
-}
-var initialState = {};
-function buildSlice({
-  reducerPath,
-  queryThunk,
-  mutationThunk,
-  serializeQueryArgs,
-  context: {
-    endpointDefinitions: definitions,
-    apiUid,
-    extractRehydrationInfo,
-    hasRehydrationInfo
-  },
-  assertTagType,
-  config
-}) {
-  const resetApiState = createAction(`${reducerPath}/resetApiState`);
-  function writePendingCacheEntry(draft, arg, upserting, meta) {
-    var _a, _b;
-    (_b = draft[_a = arg.queryCacheKey]) != null ? _b : draft[_a] = {
-      status: STATUS_UNINITIALIZED,
-      endpointName: arg.endpointName
-    };
-    updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-      substate.status = STATUS_PENDING;
-      substate.requestId = upserting && substate.requestId ? (
-        // for `upsertQuery` **updates**, keep the current `requestId`
-        substate.requestId
-      ) : (
-        // for normal queries or `upsertQuery` **inserts** always update the `requestId`
-        meta.requestId
-      );
-      if (arg.originalArgs !== void 0) {
-        substate.originalArgs = arg.originalArgs;
-      }
-      substate.startedTimeStamp = meta.startedTimeStamp;
-      const endpointDefinition = definitions[meta.arg.endpointName];
-      if (isInfiniteQueryDefinition(endpointDefinition) && "direction" in arg) {
-        ;
-        substate.direction = arg.direction;
-      }
-    });
-  }
-  function writeFulfilledCacheEntry(draft, meta, payload, upserting) {
-    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {
-      var _a;
-      if (substate.requestId !== meta.requestId && !upserting) return;
-      const {
-        merge
-      } = definitions[meta.arg.endpointName];
-      substate.status = STATUS_FULFILLED;
-      if (merge) {
-        if (substate.data !== void 0) {
-          const {
-            fulfilledTimeStamp,
-            arg,
-            baseQueryMeta,
-            requestId
-          } = meta;
-          let newData = createNextState(substate.data, (draftSubstateData) => {
-            return merge(draftSubstateData, payload, {
-              arg: arg.originalArgs,
-              baseQueryMeta,
-              fulfilledTimeStamp,
-              requestId
-            });
-          });
-          substate.data = newData;
-        } else {
-          substate.data = payload;
-        }
-      } else {
-        substate.data = ((_a = definitions[meta.arg.endpointName].structuralSharing) != null ? _a : true) ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;
-      }
-      delete substate.error;
-      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-    });
-  }
-  const querySlice = createSlice({
-    name: `${reducerPath}/queries`,
-    initialState,
-    reducers: {
-      removeQueryResult: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey
-          }
-        }) {
-          delete draft[queryCacheKey];
-        },
-        prepare: prepareAutoBatched()
-      },
-      cacheEntriesUpserted: {
-        reducer(draft, action) {
-          for (const entry of action.payload) {
-            const {
-              queryDescription: arg,
-              value
-            } = entry;
-            writePendingCacheEntry(draft, arg, true, {
-              arg,
-              requestId: action.meta.requestId,
-              startedTimeStamp: action.meta.timestamp
-            });
-            writeFulfilledCacheEntry(
-              draft,
-              {
-                arg,
-                requestId: action.meta.requestId,
-                fulfilledTimeStamp: action.meta.timestamp,
-                baseQueryMeta: {}
-              },
-              value,
-              // We know we're upserting here
-              true
-            );
-          }
-        },
-        prepare: (payload) => {
-          const queryDescriptions = payload.map((entry) => {
-            const {
-              endpointName,
-              arg,
-              value
-            } = entry;
-            const endpointDefinition = definitions[endpointName];
-            const queryDescription = {
-              type: ENDPOINT_QUERY,
-              endpointName,
-              originalArgs: entry.arg,
-              queryCacheKey: serializeQueryArgs({
-                queryArgs: arg,
-                endpointDefinition,
-                endpointName
-              })
-            };
-            return {
-              queryDescription,
-              value
-            };
-          });
-          const result = {
-            payload: queryDescriptions,
-            meta: {
-              [SHOULD_AUTOBATCH]: true,
-              requestId: nanoid(),
-              timestamp: Date.now()
-            }
-          };
-          return result;
-        }
-      },
-      queryResultPatched: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey,
-            patches
-          }
-        }) {
-          updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {
-            substate.data = applyPatches(substate.data, patches.concat());
-          });
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(queryThunk.pending, (draft, {
-        meta,
-        meta: {
-          arg
-        }
-      }) => {
-        const upserting = isUpsertQuery(arg);
-        writePendingCacheEntry(draft, arg, upserting, meta);
-      }).addCase(queryThunk.fulfilled, (draft, {
-        meta,
-        payload
-      }) => {
-        const upserting = isUpsertQuery(meta.arg);
-        writeFulfilledCacheEntry(draft, meta, payload, upserting);
-      }).addCase(queryThunk.rejected, (draft, {
-        meta: {
-          condition,
-          arg,
-          requestId
-        },
-        error,
-        payload
-      }) => {
-        updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-          if (condition) {
-          } else {
-            if (substate.requestId !== requestId) return;
-            substate.status = STATUS_REJECTED;
-            substate.error = payload != null ? payload : error;
-          }
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          queries
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(queries)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            (entry == null ? void 0 : entry.status) === STATUS_FULFILLED || (entry == null ? void 0 : entry.status) === STATUS_REJECTED
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const mutationSlice = createSlice({
-    name: `${reducerPath}/mutations`,
-    initialState,
-    reducers: {
-      removeMutationResult: {
-        reducer(draft, {
-          payload
-        }) {
-          const cacheKey = getMutationCacheKey(payload);
-          if (cacheKey in draft) {
-            delete draft[cacheKey];
-          }
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(mutationThunk.pending, (draft, {
-        meta,
-        meta: {
-          requestId,
-          arg,
-          startedTimeStamp
-        }
-      }) => {
-        if (!arg.track) return;
-        draft[getMutationCacheKey(meta)] = {
-          requestId,
-          status: STATUS_PENDING,
-          endpointName: arg.endpointName,
-          startedTimeStamp
-        };
-      }).addCase(mutationThunk.fulfilled, (draft, {
-        payload,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_FULFILLED;
-          substate.data = payload;
-          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-        });
-      }).addCase(mutationThunk.rejected, (draft, {
-        payload,
-        error,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_REJECTED;
-          substate.error = payload != null ? payload : error;
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          mutations
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(mutations)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            ((entry == null ? void 0 : entry.status) === STATUS_FULFILLED || (entry == null ? void 0 : entry.status) === STATUS_REJECTED) && // only rehydrate endpoints that were persisted using a `fixedCacheKey`
-            key !== (entry == null ? void 0 : entry.requestId)
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const initialInvalidationState = {
-    tags: {},
-    keys: {}
-  };
-  const invalidationSlice = createSlice({
-    name: `${reducerPath}/invalidation`,
-    initialState: initialInvalidationState,
-    reducers: {
-      updateProvidedBy: {
-        reducer(draft, action) {
-          var _a, _b, _c, _d, _e;
-          for (const {
-            queryCacheKey,
-            providedTags
-          } of action.payload) {
-            removeCacheKeyFromTags(draft, queryCacheKey);
-            for (const {
-              type,
-              id
-            } of providedTags) {
-              const subscribedQueries = (_e = (_c = (_b = (_a = draft.tags)[type]) != null ? _b : _a[type] = {})[_d = id || "__internal_without_id"]) != null ? _e : _c[_d] = [];
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-            }
-            draft.keys[queryCacheKey] = providedTags;
-          }
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(querySlice.actions.removeQueryResult, (draft, {
-        payload: {
-          queryCacheKey
-        }
-      }) => {
-        removeCacheKeyFromTags(draft, queryCacheKey);
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        var _a, _b, _c, _d, _e, _f;
-        const {
-          provided
-        } = extractRehydrationInfo(action);
-        for (const [type, incomingTags] of Object.entries((_a = provided.tags) != null ? _a : {})) {
-          for (const [id, cacheKeys] of Object.entries(incomingTags)) {
-            const subscribedQueries = (_f = (_d = (_c = (_b = draft.tags)[type]) != null ? _c : _b[type] = {})[_e = id || "__internal_without_id"]) != null ? _f : _d[_e] = [];
-            for (const queryCacheKey of cacheKeys) {
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];
-            }
-          }
-        }
-      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {
-        writeProvidedTagsForQueries(draft, [action]);
-      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {
-        const mockActions = action.payload.map(({
-          queryDescription,
-          value
-        }) => {
-          return {
-            type: "UNKNOWN",
-            payload: value,
-            meta: {
-              requestStatus: "fulfilled",
-              requestId: "UNKNOWN",
-              arg: queryDescription
-            }
-          };
-        });
-        writeProvidedTagsForQueries(draft, mockActions);
-      });
-    }
-  });
-  function removeCacheKeyFromTags(draft, queryCacheKey) {
-    var _a, _b, _c;
-    const existingTags = getCurrent((_a = draft.keys[queryCacheKey]) != null ? _a : []);
-    for (const tag of existingTags) {
-      const tagType = tag.type;
-      const tagId = (_b = tag.id) != null ? _b : "__internal_without_id";
-      const tagSubscriptions = (_c = draft.tags[tagType]) == null ? void 0 : _c[tagId];
-      if (tagSubscriptions) {
-        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter((qc) => qc !== queryCacheKey);
-      }
-    }
-    delete draft.keys[queryCacheKey];
-  }
-  function writeProvidedTagsForQueries(draft, actions3) {
-    const providedByEntries = actions3.map((action) => {
-      const providedTags = calculateProvidedByThunk(action, "providesTags", definitions, assertTagType);
-      const {
-        queryCacheKey
-      } = action.meta.arg;
-      return {
-        queryCacheKey,
-        providedTags
-      };
-    });
-    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));
-  }
-  const subscriptionSlice = createSlice({
-    name: `${reducerPath}/subscriptions`,
-    initialState,
-    reducers: {
-      updateSubscriptionOptions(d, a) {
-      },
-      unsubscribeQueryResult(d, a) {
-      },
-      internal_getRTKQSubscriptions() {
-      }
-    }
-  });
-  const internalSubscriptionsSlice = createSlice({
-    name: `${reducerPath}/internalSubscriptions`,
-    initialState,
-    reducers: {
-      subscriptionsUpdated: {
-        reducer(state, action) {
-          return applyPatches(state, action.payload);
-        },
-        prepare: prepareAutoBatched()
-      }
-    }
-  });
-  const configSlice = createSlice({
-    name: `${reducerPath}/config`,
-    initialState: __spreadValues({
-      online: isOnline(),
-      focused: isDocumentVisible(),
-      middlewareRegistered: false
-    }, config),
-    reducers: {
-      middlewareRegistered(state, {
-        payload
-      }) {
-        state.middlewareRegistered = state.middlewareRegistered === "conflict" || apiUid !== payload ? "conflict" : true;
-      }
-    },
-    extraReducers: (builder) => {
-      builder.addCase(onOnline, (state) => {
-        state.online = true;
-      }).addCase(onOffline, (state) => {
-        state.online = false;
-      }).addCase(onFocus, (state) => {
-        state.focused = true;
-      }).addCase(onFocusLost, (state) => {
-        state.focused = false;
-      }).addMatcher(hasRehydrationInfo, (draft) => __spreadValues({}, draft));
-    }
-  });
-  const combinedReducer = combineReducers({
-    queries: querySlice.reducer,
-    mutations: mutationSlice.reducer,
-    provided: invalidationSlice.reducer,
-    subscriptions: internalSubscriptionsSlice.reducer,
-    config: configSlice.reducer
-  });
-  const reducer = (state, action) => combinedReducer(resetApiState.match(action) ? void 0 : state, action);
-  const actions2 = __spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, configSlice.actions), querySlice.actions), subscriptionSlice.actions), internalSubscriptionsSlice.actions), mutationSlice.actions), invalidationSlice.actions), {
-    resetApiState
-  });
-  return {
-    reducer,
-    actions: actions2
-  };
-}
-
-// src/query/core/buildSelectors.ts
-var skipToken = /* @__PURE__ */ Symbol.for("RTKQ/skipToken");
-var initialSubState = {
-  status: STATUS_UNINITIALIZED
-};
-var defaultQuerySubState = /* @__PURE__ */ createNextState(initialSubState, () => {
-});
-var defaultMutationSubState = /* @__PURE__ */ createNextState(initialSubState, () => {
-});
-function buildSelectors({
-  serializeQueryArgs,
-  reducerPath,
-  createSelector: createSelector2
-}) {
-  const selectSkippedQuery = (state) => defaultQuerySubState;
-  const selectSkippedMutation = (state) => defaultMutationSubState;
-  return {
-    buildQuerySelector,
-    buildInfiniteQuerySelector,
-    buildMutationSelector,
-    selectInvalidatedBy,
-    selectCachedArgsForQuery,
-    selectApiState,
-    selectQueries,
-    selectMutations,
-    selectQueryEntry,
-    selectConfig
-  };
-  function withRequestFlags(substate) {
-    return __spreadValues(__spreadValues({}, substate), getRequestStatusFlags(substate.status));
-  }
-  function selectApiState(rootState) {
-    const state = rootState[reducerPath];
-    if (process.env.NODE_ENV !== "production") {
-      if (!state) {
-        if (selectApiState.triggered) return state;
-        selectApiState.triggered = true;
-        console.error(`Error: No data found at \`state.${reducerPath}\`. Did you forget to add the reducer to the store?`);
-      }
-    }
-    return state;
-  }
-  function selectQueries(rootState) {
-    var _a;
-    return (_a = selectApiState(rootState)) == null ? void 0 : _a.queries;
-  }
-  function selectQueryEntry(rootState, cacheKey) {
-    var _a;
-    return (_a = selectQueries(rootState)) == null ? void 0 : _a[cacheKey];
-  }
-  function selectMutations(rootState) {
-    var _a;
-    return (_a = selectApiState(rootState)) == null ? void 0 : _a.mutations;
-  }
-  function selectConfig(rootState) {
-    var _a;
-    return (_a = selectApiState(rootState)) == null ? void 0 : _a.config;
-  }
-  function buildAnyQuerySelector(endpointName, endpointDefinition, combiner) {
-    return (queryArgs) => {
-      if (queryArgs === skipToken) {
-        return createSelector2(selectSkippedQuery, combiner);
-      }
-      const serializedArgs = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      const selectQuerySubstate = (state) => {
-        var _a;
-        return (_a = selectQueryEntry(state, serializedArgs)) != null ? _a : defaultQuerySubState;
-      };
-      return createSelector2(selectQuerySubstate, combiner);
-    };
-  }
-  function buildQuerySelector(endpointName, endpointDefinition) {
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags);
-  }
-  function buildInfiniteQuerySelector(endpointName, endpointDefinition) {
-    const {
-      infiniteQueryOptions
-    } = endpointDefinition;
-    function withInfiniteQueryResultFlags(substate) {
-      const stateWithRequestFlags = __spreadValues(__spreadValues({}, substate), getRequestStatusFlags(substate.status));
-      const {
-        isLoading,
-        isError,
-        direction
-      } = stateWithRequestFlags;
-      const isForward = direction === "forward";
-      const isBackward = direction === "backward";
-      return __spreadProps(__spreadValues({}, stateWithRequestFlags), {
-        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        isFetchingNextPage: isLoading && isForward,
-        isFetchingPreviousPage: isLoading && isBackward,
-        isFetchNextPageError: isError && isForward,
-        isFetchPreviousPageError: isError && isBackward
-      });
-    }
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags);
-  }
-  function buildMutationSelector() {
-    return (id) => {
-      var _a;
-      let mutationId;
-      if (typeof id === "object") {
-        mutationId = (_a = getMutationCacheKey(id)) != null ? _a : skipToken;
-      } else {
-        mutationId = id;
-      }
-      const selectMutationSubstate = (state) => {
-        var _a2, _b, _c;
-        return (_c = (_b = (_a2 = selectApiState(state)) == null ? void 0 : _a2.mutations) == null ? void 0 : _b[mutationId]) != null ? _c : defaultMutationSubState;
-      };
-      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;
-      return createSelector2(finalSelectMutationSubstate, withRequestFlags);
-    };
-  }
-  function selectInvalidatedBy(state, tags) {
-    var _a;
-    const apiState = state[reducerPath];
-    const toInvalidate = /* @__PURE__ */ new Set();
-    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);
-    for (const tag of finalTags) {
-      const provided = apiState.provided.tags[tag.type];
-      if (!provided) {
-        continue;
-      }
-      let invalidateSubscriptions = (_a = tag.id !== void 0 ? (
-        // id given: invalidate all queries that provide this type & id
-        provided[tag.id]
-      ) : (
-        // no id: invalidate all queries that provide this type
-        Object.values(provided).flat()
-      )) != null ? _a : [];
-      for (const invalidate of invalidateSubscriptions) {
-        toInvalidate.add(invalidate);
-      }
-    }
-    return Array.from(toInvalidate.values()).flatMap((queryCacheKey) => {
-      const querySubState = apiState.queries[queryCacheKey];
-      return querySubState ? {
-        queryCacheKey,
-        endpointName: querySubState.endpointName,
-        originalArgs: querySubState.originalArgs
-      } : [];
-    });
-  }
-  function selectCachedArgsForQuery(state, queryName) {
-    return filterMap(Object.values(selectQueries(state)), (entry) => (entry == null ? void 0 : entry.endpointName) === queryName && entry.status !== STATUS_UNINITIALIZED, (entry) => entry.originalArgs);
-  }
-  function getHasNextPage(options, data, queryArg) {
-    if (!data) return false;
-    return getNextPageParam(options, data, queryArg) != null;
-  }
-  function getHasPreviousPage(options, data, queryArg) {
-    if (!data || !options.getPreviousPageParam) return false;
-    return getPreviousPageParam(options, data, queryArg) != null;
-  }
-}
-
-// src/query/createApi.ts
-import { formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage22, formatProdErrorMessage as _formatProdErrorMessage3 } from "@reduxjs/toolkit";
-
-// src/query/defaultSerializeQueryArgs.ts
-var cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;
-var defaultSerializeQueryArgs = ({
-  endpointName,
-  queryArgs
-}) => {
-  let serialized = "";
-  const cached = cache == null ? void 0 : cache.get(queryArgs);
-  if (typeof cached === "string") {
-    serialized = cached;
-  } else {
-    const stringified = JSON.stringify(queryArgs, (key, value) => {
-      value = typeof value === "bigint" ? {
-        $bigint: value.toString()
-      } : value;
-      value = isPlainObject(value) ? Object.keys(value).sort().reduce((acc, key2) => {
-        acc[key2] = value[key2];
-        return acc;
-      }, {}) : value;
-      return value;
-    });
-    if (isPlainObject(queryArgs)) {
-      cache == null ? void 0 : cache.set(queryArgs, stringified);
-    }
-    serialized = stringified;
-  }
-  return `${endpointName}(${serialized})`;
-};
-
-// src/query/createApi.ts
-import { weakMapMemoize } from "reselect";
-function buildCreateApi(...modules) {
-  return function baseCreateApi(options) {
-    const extractRehydrationInfo = weakMapMemoize((action) => {
-      var _a, _b;
-      return (_b = options.extractRehydrationInfo) == null ? void 0 : _b.call(options, action, {
-        reducerPath: (_a = options.reducerPath) != null ? _a : "api"
-      });
-    });
-    const optionsWithDefaults = __spreadProps(__spreadValues({
-      reducerPath: "api",
-      keepUnusedDataFor: 60,
-      refetchOnMountOrArgChange: false,
-      refetchOnFocus: false,
-      refetchOnReconnect: false,
-      invalidationBehavior: "delayed"
-    }, options), {
-      extractRehydrationInfo,
-      serializeQueryArgs(queryArgsApi) {
-        let finalSerializeQueryArgs = defaultSerializeQueryArgs;
-        if ("serializeQueryArgs" in queryArgsApi.endpointDefinition) {
-          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs;
-          finalSerializeQueryArgs = (queryArgsApi2) => {
-            const initialResult = endpointSQA(queryArgsApi2);
-            if (typeof initialResult === "string") {
-              return initialResult;
-            } else {
-              return defaultSerializeQueryArgs(__spreadProps(__spreadValues({}, queryArgsApi2), {
-                queryArgs: initialResult
-              }));
-            }
-          };
-        } else if (options.serializeQueryArgs) {
-          finalSerializeQueryArgs = options.serializeQueryArgs;
-        }
-        return finalSerializeQueryArgs(queryArgsApi);
-      },
-      tagTypes: [...options.tagTypes || []]
-    });
-    const context = {
-      endpointDefinitions: {},
-      batch(fn) {
-        fn();
-      },
-      apiUid: nanoid(),
-      extractRehydrationInfo,
-      hasRehydrationInfo: weakMapMemoize((action) => extractRehydrationInfo(action) != null)
-    };
-    const api = {
-      injectEndpoints,
-      enhanceEndpoints({
-        addTagTypes,
-        endpoints
-      }) {
-        if (addTagTypes) {
-          for (const eT of addTagTypes) {
-            if (!optionsWithDefaults.tagTypes.includes(eT)) {
-              ;
-              optionsWithDefaults.tagTypes.push(eT);
-            }
-          }
-        }
-        if (endpoints) {
-          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {
-            if (typeof partialDefinition === "function") {
-              partialDefinition(getEndpointDefinition(context, endpointName));
-            } else {
-              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);
-            }
-          }
-        }
-        return api;
-      }
-    };
-    const initializedModules = modules.map((m) => m.init(api, optionsWithDefaults, context));
-    function injectEndpoints(inject) {
-      const evaluatedEndpoints = inject.endpoints({
-        query: (x) => __spreadProps(__spreadValues({}, x), {
-          type: ENDPOINT_QUERY
-        }),
-        mutation: (x) => __spreadProps(__spreadValues({}, x), {
-          type: ENDPOINT_MUTATION
-        }),
-        infiniteQuery: (x) => __spreadProps(__spreadValues({}, x), {
-          type: ENDPOINT_INFINITEQUERY
-        })
-      });
-      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {
-        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {
-          if (inject.overrideExisting === "throw") {
-            throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage2(39) : `called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          } else if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-            console.error(`called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          }
-          continue;
-        }
-        if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-          if (isInfiniteQueryDefinition(definition)) {
-            const {
-              infiniteQueryOptions
-            } = definition;
-            const {
-              maxPages,
-              getPreviousPageParam: getPreviousPageParam2
-            } = infiniteQueryOptions;
-            if (typeof maxPages === "number") {
-              if (maxPages < 1) {
-                throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage22(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);
-              }
-              if (typeof getPreviousPageParam2 !== "function") {
-                throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);
-              }
-            }
-          }
-        }
-        context.endpointDefinitions[endpointName] = definition;
-        for (const m of initializedModules) {
-          m.injectEndpoint(endpointName, definition);
-        }
-      }
-      return api;
-    }
-    return api.injectEndpoints({
-      endpoints: options.endpoints
-    });
-  };
-}
-
-// src/query/fakeBaseQuery.ts
-import { formatProdErrorMessage as _formatProdErrorMessage4 } from "@reduxjs/toolkit";
-var _NEVER = /* @__PURE__ */ Symbol();
-function fakeBaseQuery() {
-  return function() {
-    throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage4(33) : "When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.");
-  };
-}
-
-// src/query/tsHelpers.ts
-function assertCast(v) {
-}
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/core/buildMiddleware/batchActions.ts
-var buildBatchedActionsHandler = ({
-  api,
-  queryThunk,
-  internalState,
-  mwApi
-}) => {
-  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;
-  let previousSubscriptions = null;
-  let updateSyncTimer = null;
-  const {
-    updateSubscriptionOptions,
-    unsubscribeQueryResult
-  } = api.internalActions;
-  const actuallyMutateSubscriptions = (currentSubscriptions, action) => {
-    var _a, _b, _c, _d;
-    if (updateSubscriptionOptions.match(action)) {
-      const {
-        queryCacheKey,
-        requestId,
-        options
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub == null ? void 0 : sub.has(requestId)) {
-        sub.set(requestId, options);
-      }
-      return true;
-    }
-    if (unsubscribeQueryResult.match(action)) {
-      const {
-        queryCacheKey,
-        requestId
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub) {
-        sub.delete(requestId);
-      }
-      return true;
-    }
-    if (api.internalActions.removeQueryResult.match(action)) {
-      currentSubscriptions.delete(action.payload.queryCacheKey);
-      return true;
-    }
-    if (queryThunk.pending.match(action)) {
-      const {
-        meta: {
-          arg,
-          requestId
-        }
-      } = action;
-      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-      if (arg.subscribe) {
-        substate.set(requestId, (_b = (_a = arg.subscriptionOptions) != null ? _a : substate.get(requestId)) != null ? _b : {});
-      }
-      return true;
-    }
-    let mutated = false;
-    if (queryThunk.rejected.match(action)) {
-      const {
-        meta: {
-          condition,
-          arg,
-          requestId
-        }
-      } = action;
-      if (condition && arg.subscribe) {
-        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-        substate.set(requestId, (_d = (_c = arg.subscriptionOptions) != null ? _c : substate.get(requestId)) != null ? _d : {});
-        mutated = true;
-      }
-    }
-    return mutated;
-  };
-  const getSubscriptions = () => internalState.currentSubscriptions;
-  const getSubscriptionCount = (queryCacheKey) => {
-    var _a;
-    const subscriptions = getSubscriptions();
-    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);
-    return (_a = subscriptionsForQueryArg == null ? void 0 : subscriptionsForQueryArg.size) != null ? _a : 0;
-  };
-  const isRequestSubscribed = (queryCacheKey, requestId) => {
-    var _a;
-    const subscriptions = getSubscriptions();
-    return !!((_a = subscriptions == null ? void 0 : subscriptions.get(queryCacheKey)) == null ? void 0 : _a.get(requestId));
-  };
-  const subscriptionSelectors = {
-    getSubscriptions,
-    getSubscriptionCount,
-    isRequestSubscribed
-  };
-  function serializeSubscriptions(currentSubscriptions) {
-    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));
-  }
-  return (action, mwApi2) => {
-    if (!previousSubscriptions) {
-      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-    }
-    if (api.util.resetApiState.match(action)) {
-      previousSubscriptions = {};
-      internalState.currentSubscriptions.clear();
-      updateSyncTimer = null;
-      return [true, false];
-    }
-    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {
-      return [false, subscriptionSelectors];
-    }
-    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);
-    let actionShouldContinue = true;
-    if (process.env.NODE_ENV === "test" && typeof action.type === "string" && action.type === `${api.reducerPath}/getPolling`) {
-      return [false, internalState.currentPolls];
-    }
-    if (didMutate) {
-      if (!updateSyncTimer) {
-        updateSyncTimer = setTimeout(() => {
-          const newSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);
-          mwApi2.next(api.internalActions.subscriptionsUpdated(patches));
-          previousSubscriptions = newSubscriptions;
-          updateSyncTimer = null;
-        }, 500);
-      }
-      const isSubscriptionSliceAction = typeof action.type == "string" && !!action.type.startsWith(subscriptionsPrefix);
-      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;
-      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;
-    }
-    return [actionShouldContinue, false];
-  };
-};
-
-// src/query/core/buildMiddleware/cacheCollection.ts
-var THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2147483647 / 1e3 - 1;
-var buildCacheCollectionHandler = ({
-  reducerPath,
-  api,
-  queryThunk,
-  context,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectConfig
-  },
-  getRunningQueryThunk,
-  mwApi
-}) => {
-  const {
-    removeQueryResult,
-    unsubscribeQueryResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);
-  function anySubscriptionsRemainingForKey(queryCacheKey) {
-    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);
-    if (!subscriptions) {
-      return false;
-    }
-    const hasSubscriptions = subscriptions.size > 0;
-    return hasSubscriptions;
-  }
-  const currentRemovalTimeouts = {};
-  function abortAllPromises(promiseMap) {
-    var _a;
-    for (const promise of promiseMap.values()) {
-      (_a = promise == null ? void 0 : promise.abort) == null ? void 0 : _a.call(promise);
-    }
-  }
-  const handler = (action, mwApi2) => {
-    const state = mwApi2.getState();
-    const config = selectConfig(state);
-    if (canTriggerUnsubscribe(action)) {
-      let queryCacheKeys;
-      if (cacheEntriesUpserted.match(action)) {
-        queryCacheKeys = action.payload.map((entry) => entry.queryDescription.queryCacheKey);
-      } else {
-        const {
-          queryCacheKey
-        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;
-        queryCacheKeys = [queryCacheKey];
-      }
-      handleUnsubscribeMany(queryCacheKeys, mwApi2, config);
-    }
-    if (api.util.resetApiState.match(action)) {
-      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {
-        if (timeout) clearTimeout(timeout);
-        delete currentRemovalTimeouts[key];
-      }
-      abortAllPromises(internalState.runningQueries);
-      abortAllPromises(internalState.runningMutations);
-    }
-    if (context.hasRehydrationInfo(action)) {
-      const {
-        queries
-      } = context.extractRehydrationInfo(action);
-      handleUnsubscribeMany(Object.keys(queries), mwApi2, config);
-    }
-  };
-  function handleUnsubscribeMany(cacheKeys, api2, config) {
-    const state = api2.getState();
-    for (const queryCacheKey of cacheKeys) {
-      const entry = selectQueryEntry(state, queryCacheKey);
-      if (entry == null ? void 0 : entry.endpointName) {
-        handleUnsubscribe(queryCacheKey, entry.endpointName, api2, config);
-      }
-    }
-  }
-  function handleUnsubscribe(queryCacheKey, endpointName, api2, config) {
-    var _a;
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const keepUnusedDataFor = (_a = endpointDefinition == null ? void 0 : endpointDefinition.keepUnusedDataFor) != null ? _a : config.keepUnusedDataFor;
-    if (keepUnusedDataFor === Infinity) {
-      return;
-    }
-    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));
-    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-      const currentTimeout = currentRemovalTimeouts[queryCacheKey];
-      if (currentTimeout) {
-        clearTimeout(currentTimeout);
-      }
-      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {
-        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-          const entry = selectQueryEntry(api2.getState(), queryCacheKey);
-          if (entry == null ? void 0 : entry.endpointName) {
-            const runningQuery = api2.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));
-            runningQuery == null ? void 0 : runningQuery.abort();
-          }
-          api2.dispatch(removeQueryResult({
-            queryCacheKey
-          }));
-        }
-        delete currentRemovalTimeouts[queryCacheKey];
-      }, finalKeepUnusedDataFor * 1e3);
-    }
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/cacheLifecycle.ts
-var neverResolvedError = new Error("Promise never resolved before cacheEntryRemoved.");
-var buildCacheLifecycleHandler = ({
-  api,
-  reducerPath,
-  context,
-  queryThunk,
-  mutationThunk,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectApiState
-  }
-}) => {
-  const isQueryThunk = isAsyncThunkAction(queryThunk);
-  const isMutationThunk = isAsyncThunkAction(mutationThunk);
-  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const {
-    removeQueryResult,
-    removeMutationResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  function resolveLifecycleEntry(cacheKey, data, meta) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle == null ? void 0 : lifecycle.valueResolved) {
-      lifecycle.valueResolved({
-        data,
-        meta
-      });
-      delete lifecycle.valueResolved;
-    }
-  }
-  function removeLifecycleEntry(cacheKey) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle) {
-      delete lifecycleMap[cacheKey];
-      lifecycle.cacheEntryRemoved();
-    }
-  }
-  function getActionMetaFields(action) {
-    const {
-      arg,
-      requestId
-    } = action.meta;
-    const {
-      endpointName,
-      originalArgs
-    } = arg;
-    return [endpointName, originalArgs, requestId];
-  }
-  const handler = (action, mwApi, stateBefore) => {
-    const cacheKey = getCacheKey(action);
-    function checkForNewCacheKey(endpointName, cacheKey2, requestId, originalArgs) {
-      const oldEntry = selectQueryEntry(stateBefore, cacheKey2);
-      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey2);
-      if (!oldEntry && newEntry) {
-        handleNewKey(endpointName, originalArgs, cacheKey2, mwApi, requestId);
-      }
-    }
-    if (queryThunk.pending.match(action)) {
-      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);
-    } else if (cacheEntriesUpserted.match(action)) {
-      for (const {
-        queryDescription,
-        value
-      } of action.payload) {
-        const {
-          endpointName,
-          originalArgs,
-          queryCacheKey
-        } = queryDescription;
-        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);
-        resolveLifecycleEntry(queryCacheKey, value, {});
-      }
-    } else if (mutationThunk.pending.match(action)) {
-      const state = mwApi.getState()[reducerPath].mutations[cacheKey];
-      if (state) {
-        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);
-      }
-    } else if (isFulfilledThunk(action)) {
-      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);
-    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {
-      removeLifecycleEntry(cacheKey);
-    } else if (api.util.resetApiState.match(action)) {
-      for (const cacheKey2 of Object.keys(lifecycleMap)) {
-        removeLifecycleEntry(cacheKey2);
-      }
-    }
-  };
-  function getCacheKey(action) {
-    var _a;
-    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;
-    if (isMutationThunk(action)) {
-      return (_a = action.meta.arg.fixedCacheKey) != null ? _a : action.meta.requestId;
-    }
-    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;
-    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);
-    return "";
-  }
-  function handleNewKey(endpointName, originalArgs, queryCacheKey, mwApi, requestId) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const onCacheEntryAdded = endpointDefinition == null ? void 0 : endpointDefinition.onCacheEntryAdded;
-    if (!onCacheEntryAdded) return;
-    const lifecycle = {};
-    const cacheEntryRemoved = new Promise((resolve) => {
-      lifecycle.cacheEntryRemoved = resolve;
-    });
-    const cacheDataLoaded = Promise.race([new Promise((resolve) => {
-      lifecycle.valueResolved = resolve;
-    }), cacheEntryRemoved.then(() => {
-      throw neverResolvedError;
-    })]);
-    cacheDataLoaded.catch(() => {
-    });
-    lifecycleMap[queryCacheKey] = lifecycle;
-    const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);
-    const extra = mwApi.dispatch((_, __, extra2) => extra2);
-    const lifecycleApi = __spreadProps(__spreadValues({}, mwApi), {
-      getCacheEntry: () => selector(mwApi.getState()),
-      requestId,
-      extra,
-      updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-      cacheDataLoaded,
-      cacheEntryRemoved
-    });
-    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi);
-    Promise.resolve(runningHandler).catch((e) => {
-      if (e === neverResolvedError) return;
-      throw e;
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/devMiddleware.ts
-var buildDevCheckHandler = ({
-  api,
-  context: {
-    apiUid
-  },
-  reducerPath
-}) => {
-  return (action, mwApi) => {
-    var _a, _b;
-    if (api.util.resetApiState.match(action)) {
-      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-    }
-    if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && ((_b = (_a = mwApi.getState()[reducerPath]) == null ? void 0 : _a.config) == null ? void 0 : _b.middlewareRegistered) === "conflict") {
-        console.warn(`There is a mismatch between slice and middleware for the reducerPath "${reducerPath}".
-You can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === "api" ? `
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ""}`);
-      }
-    }
-  };
-};
-
-// src/query/core/buildMiddleware/invalidationByTags.ts
-var buildInvalidationByTagsHandler = ({
-  reducerPath,
-  context,
-  context: {
-    endpointDefinitions
-  },
-  mutationThunk,
-  queryThunk,
-  api,
-  assertTagType,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));
-  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));
-  let pendingTagInvalidations = [];
-  let pendingRequestCount = 0;
-  const handler = (action, mwApi) => {
-    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {
-      pendingRequestCount++;
-    }
-    if (isQueryEnd(action)) {
-      pendingRequestCount = Math.max(0, pendingRequestCount - 1);
-    }
-    if (isThunkActionWithTags(action)) {
-      invalidateTags(calculateProvidedByThunk(action, "invalidatesTags", endpointDefinitions, assertTagType), mwApi);
-    } else if (isQueryEnd(action)) {
-      invalidateTags([], mwApi);
-    } else if (api.util.invalidateTags.match(action)) {
-      invalidateTags(calculateProvidedBy(action.payload, void 0, void 0, void 0, void 0, assertTagType), mwApi);
-    }
-  };
-  function hasPendingRequests() {
-    return pendingRequestCount > 0;
-  }
-  function invalidateTags(newTags, mwApi) {
-    const rootState = mwApi.getState();
-    const state = rootState[reducerPath];
-    pendingTagInvalidations.push(...newTags);
-    if (state.config.invalidationBehavior === "delayed" && hasPendingRequests()) {
-      return;
-    }
-    const tags = pendingTagInvalidations;
-    pendingTagInvalidations = [];
-    if (tags.length === 0) return;
-    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);
-    context.batch(() => {
-      const valuesArray = Array.from(toInvalidate.values());
-      for (const {
-        queryCacheKey
-      } of valuesArray) {
-        const querySubState = state.queries[queryCacheKey];
-        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);
-        if (querySubState) {
-          if (subscriptionSubState.size === 0) {
-            mwApi.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            mwApi.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/polling.ts
-var buildPollingHandler = ({
-  reducerPath,
-  queryThunk,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    currentPolls,
-    currentSubscriptions
-  } = internalState;
-  const pendingPollingUpdates = /* @__PURE__ */ new Set();
-  let pollingUpdateTimer = null;
-  const handler = (action, mwApi) => {
-    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {
-      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);
-    }
-    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {
-      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);
-    }
-    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {
-      startNextPoll(action.meta.arg, mwApi);
-    }
-    if (api.util.resetApiState.match(action)) {
-      clearPolls();
-      if (pollingUpdateTimer) {
-        clearTimeout(pollingUpdateTimer);
-        pollingUpdateTimer = null;
-      }
-      pendingPollingUpdates.clear();
-    }
-  };
-  function schedulePollingUpdate(queryCacheKey, api2) {
-    pendingPollingUpdates.add(queryCacheKey);
-    if (!pollingUpdateTimer) {
-      pollingUpdateTimer = setTimeout(() => {
-        for (const key of pendingPollingUpdates) {
-          updatePollingInterval({
-            queryCacheKey: key
-          }, api2);
-        }
-        pendingPollingUpdates.clear();
-        pollingUpdateTimer = null;
-      }, 0);
-    }
-  }
-  function startNextPoll({
-    queryCacheKey
-  }, api2) {
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;
-    const {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    } = findLowestPollingInterval(subscriptions);
-    if (!Number.isFinite(lowestPollingInterval)) return;
-    const currentPoll = currentPolls.get(queryCacheKey);
-    if (currentPoll == null ? void 0 : currentPoll.timeout) {
-      clearTimeout(currentPoll.timeout);
-      currentPoll.timeout = void 0;
-    }
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    currentPolls.set(queryCacheKey, {
-      nextPollTimestamp,
-      pollingInterval: lowestPollingInterval,
-      timeout: setTimeout(() => {
-        if (state.config.focused || !skipPollingIfUnfocused) {
-          api2.dispatch(refetchQuery(querySubState));
-        }
-        startNextPoll({
-          queryCacheKey
-        }, api2);
-      }, lowestPollingInterval)
-    });
-  }
-  function updatePollingInterval({
-    queryCacheKey
-  }, api2) {
-    var _a, _b;
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {
-      return;
-    }
-    const {
-      lowestPollingInterval
-    } = findLowestPollingInterval(subscriptions);
-    if (process.env.NODE_ENV === "test") {
-      const updateCounters = (_a = currentPolls.pollUpdateCounters) != null ? _a : currentPolls.pollUpdateCounters = {};
-      (_b = updateCounters[queryCacheKey]) != null ? _b : updateCounters[queryCacheKey] = 0;
-      updateCounters[queryCacheKey]++;
-    }
-    if (!Number.isFinite(lowestPollingInterval)) {
-      cleanupPollForKey(queryCacheKey);
-      return;
-    }
-    const currentPoll = currentPolls.get(queryCacheKey);
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {
-      startNextPoll({
-        queryCacheKey
-      }, api2);
-    }
-  }
-  function cleanupPollForKey(key) {
-    const existingPoll = currentPolls.get(key);
-    if (existingPoll == null ? void 0 : existingPoll.timeout) {
-      clearTimeout(existingPoll.timeout);
-    }
-    currentPolls.delete(key);
-  }
-  function clearPolls() {
-    for (const key of currentPolls.keys()) {
-      cleanupPollForKey(key);
-    }
-  }
-  function findLowestPollingInterval(subscribers = /* @__PURE__ */ new Map()) {
-    let skipPollingIfUnfocused = false;
-    let lowestPollingInterval = Number.POSITIVE_INFINITY;
-    for (const entry of subscribers.values()) {
-      if (!!entry.pollingInterval) {
-        lowestPollingInterval = Math.min(entry.pollingInterval, lowestPollingInterval);
-        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;
-      }
-    }
-    return {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    };
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/queryLifecycle.ts
-var buildQueryLifecycleHandler = ({
-  api,
-  context,
-  queryThunk,
-  mutationThunk
-}) => {
-  const isPendingThunk = isPending(queryThunk, mutationThunk);
-  const isRejectedThunk = isRejected(queryThunk, mutationThunk);
-  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const handler = (action, mwApi) => {
-    var _a, _b, _c;
-    if (isPendingThunk(action)) {
-      const {
-        requestId,
-        arg: {
-          endpointName,
-          originalArgs
-        }
-      } = action.meta;
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const onQueryStarted = endpointDefinition == null ? void 0 : endpointDefinition.onQueryStarted;
-      if (onQueryStarted) {
-        const lifecycle = {};
-        const queryFulfilled = new Promise((resolve, reject) => {
-          lifecycle.resolve = resolve;
-          lifecycle.reject = reject;
-        });
-        queryFulfilled.catch(() => {
-        });
-        lifecycleMap[requestId] = lifecycle;
-        const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);
-        const extra = mwApi.dispatch((_, __, extra2) => extra2);
-        const lifecycleApi = __spreadProps(__spreadValues({}, mwApi), {
-          getCacheEntry: () => selector(mwApi.getState()),
-          requestId,
-          extra,
-          updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-          queryFulfilled
-        });
-        onQueryStarted(originalArgs, lifecycleApi);
-      }
-    } else if (isFullfilledThunk(action)) {
-      const {
-        requestId,
-        baseQueryMeta
-      } = action.meta;
-      (_a = lifecycleMap[requestId]) == null ? void 0 : _a.resolve({
-        data: action.payload,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    } else if (isRejectedThunk(action)) {
-      const {
-        requestId,
-        rejectedWithValue,
-        baseQueryMeta
-      } = action.meta;
-      (_c = lifecycleMap[requestId]) == null ? void 0 : _c.reject({
-        error: (_b = action.payload) != null ? _b : action.error,
-        isUnhandledError: !rejectedWithValue,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    }
-  };
-  return handler;
-};
-
-// src/query/core/buildMiddleware/windowEventHandling.ts
-var buildWindowEventHandler = ({
-  reducerPath,
-  context,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const handler = (action, mwApi) => {
-    if (onFocus.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnFocus");
-    }
-    if (onOnline.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnReconnect");
-    }
-  };
-  function refetchValidQueries(api2, type) {
-    const state = api2.getState()[reducerPath];
-    const queries = state.queries;
-    const subscriptions = internalState.currentSubscriptions;
-    context.batch(() => {
-      for (const queryCacheKey of subscriptions.keys()) {
-        const querySubState = queries[queryCacheKey];
-        const subscriptionSubState = subscriptions.get(queryCacheKey);
-        if (!subscriptionSubState || !querySubState) continue;
-        const values = [...subscriptionSubState.values()];
-        const shouldRefetch = values.some((sub) => sub[type] === true) || values.every((sub) => sub[type] === void 0) && state.config[type];
-        if (shouldRefetch) {
-          if (subscriptionSubState.size === 0) {
-            api2.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            api2.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/index.ts
-function buildMiddleware(input) {
-  const {
-    reducerPath,
-    queryThunk,
-    api,
-    context,
-    getInternalState
-  } = input;
-  const {
-    apiUid
-  } = context;
-  const actions2 = {
-    invalidateTags: createAction(`${reducerPath}/invalidateTags`)
-  };
-  const isThisApiSliceAction = (action) => action.type.startsWith(`${reducerPath}/`);
-  const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];
-  const middleware = (mwApi) => {
-    let initialized2 = false;
-    const internalState = getInternalState(mwApi.dispatch);
-    const builderArgs = __spreadProps(__spreadValues({}, input), {
-      internalState,
-      refetchQuery,
-      isThisApiSliceAction,
-      mwApi
-    });
-    const handlers = handlerBuilders.map((build) => build(builderArgs));
-    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);
-    const windowEventsHandler = buildWindowEventHandler(builderArgs);
-    return (next) => {
-      return (action) => {
-        if (!isAction(action)) {
-          return next(action);
-        }
-        if (!initialized2) {
-          initialized2 = true;
-          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-        }
-        const mwApiWithNext = __spreadProps(__spreadValues({}, mwApi), {
-          next
-        });
-        const stateBefore = mwApi.getState();
-        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);
-        let res;
-        if (actionShouldContinue) {
-          res = next(action);
-        } else {
-          res = internalProbeResult;
-        }
-        if (!!mwApi.getState()[reducerPath]) {
-          windowEventsHandler(action, mwApiWithNext, stateBefore);
-          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {
-            for (const handler of handlers) {
-              handler(action, mwApiWithNext, stateBefore);
-            }
-          }
-        }
-        return res;
-      };
-    };
-  };
-  return {
-    middleware,
-    actions: actions2
-  };
-  function refetchQuery(querySubState) {
-    return input.api.endpoints[querySubState.endpointName].initiate(querySubState.originalArgs, {
-      subscribe: false,
-      forceRefetch: true
-    });
-  }
-}
-
-// src/query/core/module.ts
-var coreModuleName = /* @__PURE__ */ Symbol();
-var coreModule = ({
-  createSelector: createSelector2 = createSelector
-} = {}) => ({
-  name: coreModuleName,
-  init(api, {
-    baseQuery,
-    tagTypes,
-    reducerPath,
-    serializeQueryArgs,
-    keepUnusedDataFor,
-    refetchOnMountOrArgChange,
-    refetchOnFocus,
-    refetchOnReconnect,
-    invalidationBehavior,
-    onSchemaFailure,
-    catchSchemaFailure,
-    skipSchemaValidation
-  }, context) {
-    enablePatches();
-    assertCast(serializeQueryArgs);
-    const assertTagType = (tag) => {
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-        if (!tagTypes.includes(tag.type)) {
-          console.error(`Tag type '${tag.type}' was used, but not specified in \`tagTypes\`!`);
-        }
-      }
-      return tag;
-    };
-    Object.assign(api, {
-      reducerPath,
-      endpoints: {},
-      internalActions: {
-        onOnline,
-        onOffline,
-        onFocus,
-        onFocusLost
-      },
-      util: {}
-    });
-    const selectors = buildSelectors({
-      serializeQueryArgs,
-      reducerPath,
-      createSelector: createSelector2
-    });
-    const {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery,
-      buildQuerySelector,
-      buildInfiniteQuerySelector,
-      buildMutationSelector
-    } = selectors;
-    safeAssign(api.util, {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery
-    });
-    const {
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      buildMatchThunkActions
-    } = buildThunks({
-      baseQuery,
-      reducerPath,
-      context,
-      api,
-      serializeQueryArgs,
-      assertTagType,
-      selectors,
-      onSchemaFailure,
-      catchSchemaFailure,
-      skipSchemaValidation
-    });
-    const {
-      reducer,
-      actions: sliceActions
-    } = buildSlice({
-      context,
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      serializeQueryArgs,
-      reducerPath,
-      assertTagType,
-      config: {
-        refetchOnFocus,
-        refetchOnReconnect,
-        refetchOnMountOrArgChange,
-        keepUnusedDataFor,
-        reducerPath,
-        invalidationBehavior
-      }
-    });
-    safeAssign(api.util, {
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      resetApiState: sliceActions.resetApiState,
-      upsertQueryEntries: sliceActions.cacheEntriesUpserted
-    });
-    safeAssign(api.internalActions, sliceActions);
-    const internalStateMap = /* @__PURE__ */ new WeakMap();
-    const getInternalState = (dispatch) => {
-      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({
-        currentSubscriptions: /* @__PURE__ */ new Map(),
-        currentPolls: /* @__PURE__ */ new Map(),
-        runningQueries: /* @__PURE__ */ new Map(),
-        runningMutations: /* @__PURE__ */ new Map()
-      }));
-      return state;
-    };
-    const {
-      buildInitiateQuery,
-      buildInitiateInfiniteQuery,
-      buildInitiateMutation,
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueriesThunk,
-      getRunningQueryThunk
-    } = buildInitiate({
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      serializeQueryArgs,
-      context,
-      getInternalState
-    });
-    safeAssign(api.util, {
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueryThunk,
-      getRunningQueriesThunk
-    });
-    const {
-      middleware,
-      actions: middlewareActions
-    } = buildMiddleware({
-      reducerPath,
-      context,
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      assertTagType,
-      selectors,
-      getRunningQueryThunk,
-      getInternalState
-    });
-    safeAssign(api.util, middlewareActions);
-    safeAssign(api, {
-      reducer,
-      middleware
-    });
-    return {
-      name: coreModuleName,
-      injectEndpoint(endpointName, definition) {
-        var _a, _b;
-        const anyApi = api;
-        const endpoint = (_b = (_a = anyApi.endpoints)[endpointName]) != null ? _b : _a[endpointName] = {};
-        if (isQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildQuerySelector(endpointName, definition),
-            initiate: buildInitiateQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-        if (isMutationDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildMutationSelector(),
-            initiate: buildInitiateMutation(endpointName)
-          }, buildMatchThunkActions(mutationThunk, endpointName));
-        }
-        if (isInfiniteQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildInfiniteQuerySelector(endpointName, definition),
-            initiate: buildInitiateInfiniteQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-      }
-    };
-  }
-});
-
-// src/query/core/index.ts
-var createApi = /* @__PURE__ */ buildCreateApi(coreModule());
-export {
-  NamedSchemaError,
-  QueryStatus,
-  _NEVER,
-  buildCreateApi,
-  copyWithStructuralSharing,
-  coreModule,
-  coreModuleName,
-  createApi,
-  defaultSerializeQueryArgs,
-  fakeBaseQuery,
-  fetchBaseQuery,
-  retry,
-  setupListeners,
-  skipToken
-};
-//# sourceMappingURL=rtk-query.legacy-esm.js.map
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.legacy-esm.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/query/core/apiState.ts","../../src/query/core/rtkImports.ts","../../src/query/utils/copyWithStructuralSharing.ts","../../src/query/utils/filterMap.ts","../../src/query/utils/isAbsoluteUrl.ts","../../src/query/utils/isDocumentVisible.ts","../../src/query/utils/isNotNullish.ts","../../src/query/utils/isOnline.ts","../../src/query/utils/joinUrls.ts","../../src/query/utils/getOrInsert.ts","../../src/query/utils/signals.ts","../../src/query/fetchBaseQuery.ts","../../src/query/HandledError.ts","../../src/query/retry.ts","../../src/query/core/setupListeners.ts","../../src/query/endpointDefinitions.ts","../../src/query/utils/immerImports.ts","../../src/query/core/buildInitiate.ts","../../src/tsHelpers.ts","../../src/query/apiTypes.ts","../../src/query/standardSchema.ts","../../src/query/core/buildThunks.ts","../../src/query/utils/getCurrent.ts","../../src/query/core/buildSlice.ts","../../src/query/core/buildSelectors.ts","../../src/query/createApi.ts","../../src/query/defaultSerializeQueryArgs.ts","../../src/query/fakeBaseQuery.ts","../../src/query/tsHelpers.ts","../../src/query/core/buildMiddleware/batchActions.ts","../../src/query/core/buildMiddleware/cacheCollection.ts","../../src/query/core/buildMiddleware/cacheLifecycle.ts","../../src/query/core/buildMiddleware/devMiddleware.ts","../../src/query/core/buildMiddleware/invalidationByTags.ts","../../src/query/core/buildMiddleware/polling.ts","../../src/query/core/buildMiddleware/queryLifecycle.ts","../../src/query/core/buildMiddleware/windowEventHandling.ts","../../src/query/core/buildMiddleware/index.ts","../../src/query/core/module.ts","../../src/query/core/index.ts"],"sourcesContent":["import type { SerializedError } from '@reduxjs/toolkit';\nimport type { BaseQueryError } from '../baseQueryTypes';\nimport type { BaseEndpointDefinition, EndpointDefinitions, FullTagDescription, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFromAnyQuery, QueryDefinition, ResultTypeFrom } from '../endpointDefinitions';\nimport type { Id, WithRequiredProp } from '../tsHelpers';\nexport type QueryCacheKey = string & {\n  _type: 'queryCacheKey';\n};\nexport type QuerySubstateIdentifier = {\n  queryCacheKey: QueryCacheKey;\n};\nexport type MutationSubstateIdentifier = {\n  requestId: string;\n  fixedCacheKey?: string;\n} | {\n  requestId?: string;\n  fixedCacheKey: string;\n};\nexport type RefetchConfigOptions = {\n  refetchOnMountOrArgChange: boolean | number;\n  refetchOnReconnect: boolean;\n  refetchOnFocus: boolean;\n};\nexport type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {\n  /**\n   * The initial page parameter to use for the first page fetch.\n   */\n  initialPageParam: PageParam;\n  /**\n   * This function is required to automatically get the next cursor for infinite queries.\n   * The result will also be used to determine the value of `hasNextPage`.\n   */\n  getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * This function can be set to automatically get the previous cursor for infinite queries.\n   * The result will also be used to determine the value of `hasPreviousPage`.\n   */\n  getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * If specified, only keep this many pages in cache at once.\n   * If additional pages are fetched, older pages in the other\n   * direction will be dropped from the cache.\n   */\n  maxPages?: number;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type InfiniteData<DataType, PageParam> = {\n  pages: Array<DataType>;\n  pageParams: Array<PageParam>;\n};\n\n// NOTE: DO NOT import and use this for runtime comparisons internally,\n// except in the RTKQ React package. Use the string versions just below this.\n// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated\n// constants like \"initialized\":\n// https://github.com/evanw/esbuild/releases/tag/v0.14.7\n// We still have to use this in the React package since we don't publicly export\n// the string constants below.\n/**\n * Strings describing the query state at any given time.\n */\nexport enum QueryStatus {\n  uninitialized = 'uninitialized',\n  pending = 'pending',\n  fulfilled = 'fulfilled',\n  rejected = 'rejected',\n}\n\n// Use these string constants for runtime comparisons internally\nexport const STATUS_UNINITIALIZED = QueryStatus.uninitialized;\nexport const STATUS_PENDING = QueryStatus.pending;\nexport const STATUS_FULFILLED = QueryStatus.fulfilled;\nexport const STATUS_REJECTED = QueryStatus.rejected;\nexport type RequestStatusFlags = {\n  status: QueryStatus.uninitialized;\n  isUninitialized: true;\n  isLoading: false;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.pending;\n  isUninitialized: false;\n  isLoading: true;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.fulfilled;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: true;\n  isError: false;\n} | {\n  status: QueryStatus.rejected;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: false;\n  isError: true;\n};\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\n  return {\n    status,\n    isUninitialized: status === STATUS_UNINITIALIZED,\n    isLoading: status === STATUS_PENDING,\n    isSuccess: status === STATUS_FULFILLED,\n    isError: status === STATUS_REJECTED\n  } as any;\n}\n\n/**\n * @public\n */\nexport type SubscriptionOptions = {\n  /**\n   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\n   */\n  pollingInterval?: number;\n  /**\n   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.\n   *\n   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.\n   *\n   *  Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  skipPollingIfUnfocused?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n};\nexport type SubscribersInternal = Map<string, SubscriptionOptions>;\nexport type Subscribers = {\n  [requestId: string]: SubscriptionOptions;\n};\nexport type QueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never }[keyof Definitions];\nexport type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never }[keyof Definitions];\nexport type MutationKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never }[keyof Definitions];\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {\n  /**\n   * The argument originally passed into the hook or `initiate` action call\n   */\n  originalArgs: QueryArgFromAnyQuery<D>;\n  /**\n   * A unique ID associated with the request\n   */\n  requestId: string;\n  /**\n   * The received data from the query\n   */\n  data?: DataType;\n  /**\n   * The received error if applicable\n   */\n  error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  /**\n   * The name of the endpoint associated with the query\n   */\n  endpointName: string;\n  /**\n   * Time that the latest query started\n   */\n  startedTimeStamp: number;\n  /**\n   * Time that the latest query was fulfilled\n   */\n  fulfilledTimeStamp?: number;\n};\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {\n  error: undefined;\n}) | ({\n  status: QueryStatus.pending;\n} & BaseQuerySubState<D, DataType>) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {\n  status: QueryStatus.uninitialized;\n  originalArgs?: undefined;\n  data?: undefined;\n  error?: undefined;\n  requestId?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n}>;\nexport type InfiniteQueryDirection = 'forward' | 'backward';\nexport type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {\n  direction?: InfiniteQueryDirection;\n} : never;\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {\n  requestId: string;\n  data?: ResultTypeFrom<D>;\n  error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  endpointName: string;\n  startedTimeStamp: number;\n  fulfilledTimeStamp?: number;\n};\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {\n  error: undefined;\n}) | (({\n  status: QueryStatus.pending;\n} & BaseMutationSubState<D>) & {\n  data?: undefined;\n}) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {\n  requestId?: undefined;\n  status: QueryStatus.uninitialized;\n  data?: undefined;\n  error?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n};\nexport type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {\n  queries: QueryState<D>;\n  mutations: MutationState<D>;\n  provided: InvalidationState<E>;\n  subscriptions: SubscriptionState;\n  config: ConfigState<ReducerPath>;\n};\nexport type InvalidationState<TagTypes extends string> = {\n  tags: { [_ in TagTypes]: {\n    [id: string]: Array<QueryCacheKey>;\n    [id: number]: Array<QueryCacheKey>;\n  } };\n  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;\n};\nexport type QueryState<D extends EndpointDefinitions> = {\n  [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;\n};\nexport type SubscriptionInternalState = Map<string, SubscribersInternal>;\nexport type SubscriptionState = {\n  [queryCacheKey: string]: Subscribers | undefined;\n};\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\n  reducerPath: ReducerPath;\n  online: boolean;\n  focused: boolean;\n  middlewareRegistered: boolean | 'conflict';\n} & ModifiableConfigState;\nexport type ModifiableConfigState = {\n  keepUnusedDataFor: number;\n  invalidationBehavior: 'delayed' | 'immediately';\n} & RefetchConfigOptions;\nexport type MutationState<D extends EndpointDefinitions> = {\n  [requestId: string]: MutationSubState<D[string]> | undefined;\n};\nexport type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> };","// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.\n// ESBuild does not de-duplicate imports, so this file is used to ensure that each method\n// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.\n\nexport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from '@reduxjs/toolkit';","import { isPlainObject as _iPO } from '../core/rtkImports';\n\n// remove type guard\nconst isPlainObject: (_: any) => boolean = _iPO;\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\n  if (oldObj === newObj || !(isPlainObject(oldObj) && isPlainObject(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n    return newObj;\n  }\n  const newKeys = Object.keys(newObj);\n  const oldKeys = Object.keys(oldObj);\n  let isSameObject = newKeys.length === oldKeys.length;\n  const mergeObj: any = Array.isArray(newObj) ? [] : {};\n  for (const key of newKeys) {\n    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n  }\n  return isSameObject ? oldObj : mergeObj;\n}","// Preserve type guard predicate behavior when passing to mapper\nexport function filterMap<T, U, S extends T = T>(array: readonly T[], predicate: (item: T, index: number) => item is S, mapper: (item: S, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[] {\n  return array.reduce<(U | U[])[]>((acc, item, i) => {\n    if (predicate(item as any, i)) {\n      acc.push(mapper(item as any, i));\n    }\n    return acc;\n  }, []).flat() as U[];\n}","/**\n * If either :// or // is present consider it to be an absolute url\n *\n * @param url string\n */\n\nexport function isAbsoluteUrl(url: string) {\n  return new RegExp(`(^|:)//`).test(url);\n}","/**\n * Assumes true for a non-browser env, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\n */\nexport function isDocumentVisible(): boolean {\n  // `document` may not exist in non-browser envs (like RN)\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  // Match true for visible, prerender, undefined\n  return document.visibilityState !== 'hidden';\n}","export function isNotNullish<T>(v: T | null | undefined): v is T {\n  return v != null;\n}\nexport function filterNullishValues<T>(map?: Map<any, T>) {\n  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[];\n}","/**\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\n */\nexport function isOnline() {\n  // We set the default config value in the store, so we'd need to check for this in a SSR env\n  return typeof navigator === 'undefined' ? true : navigator.onLine === undefined ? true : navigator.onLine;\n}","import { isAbsoluteUrl } from './isAbsoluteUrl';\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '');\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '');\nexport function joinUrls(base: string | undefined, url: string | undefined): string {\n  if (!base) {\n    return url!;\n  }\n  if (!url) {\n    return base;\n  }\n  if (isAbsoluteUrl(url)) {\n    return url;\n  }\n  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : '';\n  base = withoutTrailingSlash(base);\n  url = withoutLeadingSlash(url);\n  return `${base}${delimiter}${url}`;\n}","// Duplicate some of the utils in `/src/utils` to ensure\n// we don't end up dragging in larger chunks of the RTK core\n// into the RTKQ bundle\n\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport const createNewMap = () => new Map();","// AbortSignal.timeout() is currently baseline 2024\nexport const timeoutSignal = (milliseconds: number) => {\n  const abortController = new AbortController();\n  setTimeout(() => {\n    const message = 'signal timed out';\n    const name = 'TimeoutError';\n    abortController.abort(\n    // some environments (React Native, Node) don't have DOMException\n    typeof DOMException !== 'undefined' ? new DOMException(message, name) : Object.assign(new Error(message), {\n      name\n    }));\n  }, milliseconds);\n  return abortController.signal;\n};\n\n// AbortSignal.any() is currently baseline 2024\nexport const anySignal = (...signals: AbortSignal[]) => {\n  // if any are already aborted, return an already aborted signal\n  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);\n\n  // otherwise, create a new signal that aborts when any of the given signals abort\n  const abortController = new AbortController();\n  for (const signal of signals) {\n    signal.addEventListener('abort', () => abortController.abort(signal.reason), {\n      signal: abortController.signal,\n      once: true\n    });\n  }\n  return abortController.signal;\n};","import { joinUrls } from './utils';\nimport { isPlainObject } from './core/rtkImports';\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes';\nimport type { MaybePromise, Override } from './tsHelpers';\nimport { anySignal, timeoutSignal } from './utils/signals';\nexport type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);\ntype CustomRequestInit = Override<RequestInit, {\n  headers?: Headers | string[][] | Record<string, string | undefined> | undefined;\n}>;\nexport interface FetchArgs extends CustomRequestInit {\n  url: string;\n  params?: Record<string, any>;\n  body?: any;\n  responseHandler?: ResponseHandler;\n  validateStatus?: (response: Response, body: any) => boolean;\n  /**\n   * A number in milliseconds that represents that maximum time a request can take before timing out.\n   */\n  timeout?: number;\n}\n\n/**\n * A mini-wrapper that passes arguments straight through to\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\n */\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args);\nconst defaultValidateStatus = (response: Response) => response.status >= 200 && response.status <= 299;\nconst defaultIsJsonContentType = (headers: Headers) => /*applicat*//ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '');\nexport type FetchBaseQueryError = {\n  /**\n   * * `number`:\n   *   HTTP status code\n   */\n  status: number;\n  data: unknown;\n} | {\n  /**\n   * * `\"FETCH_ERROR\"`:\n   *   An error that occurred during execution of `fetch` or the `fetchFn` callback option\n   **/\n  status: 'FETCH_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"PARSING_ERROR\"`:\n   *   An error happened during parsing.\n   *   Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\n   *   or an error occurred while executing a custom `responseHandler`.\n   **/\n  status: 'PARSING_ERROR';\n  originalStatus: number;\n  data: string;\n  error: string;\n} | {\n  /**\n   * * `\"TIMEOUT_ERROR\"`:\n   *   Request timed out\n   **/\n  status: 'TIMEOUT_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"CUSTOM_ERROR\"`:\n   *   A custom error type that you can return from your `queryFn` where another error might not make sense.\n   **/\n  status: 'CUSTOM_ERROR';\n  data?: unknown;\n  error: string;\n};\nfunction stripUndefined(obj: any) {\n  if (!isPlainObject(obj)) {\n    return obj;\n  }\n  const copy: Record<string, any> = {\n    ...obj\n  };\n  for (const [k, v] of Object.entries(copy)) {\n    if (v === undefined) delete copy[k];\n  }\n  return copy;\n}\n\n// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\nconst isJsonifiable = (body: any) => typeof body === 'object' && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === 'function');\nexport type FetchBaseQueryArgs = {\n  baseUrl?: string;\n  prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {\n    arg: string | FetchArgs;\n    extraOptions: unknown;\n  }) => MaybePromise<Headers | void>;\n  fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;\n  paramsSerializer?: (params: Record<string, any>) => string;\n  /**\n   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\n   * in a predicate function for your given api to get the same automatic stringifying behavior\n   * @example\n   * ```ts\n   * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\n   * ```\n   */\n  isJsonContentType?: (headers: Headers) => boolean;\n  /**\n   * Defaults to `application/json`;\n   */\n  jsonContentType?: string;\n\n  /**\n   * Custom replacer function used when calling `JSON.stringify()`;\n   */\n  jsonReplacer?: (this: any, key: string, value: any) => any;\n} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;\nexport type FetchBaseQueryMeta = {\n  request: Request;\n  response?: Response;\n};\n\n/**\n * This is a very small wrapper around fetch that aims to simplify requests.\n *\n * @example\n * ```ts\n * const baseQuery = fetchBaseQuery({\n *   baseUrl: 'https://api.your-really-great-app.com/v1/',\n *   prepareHeaders: (headers, { getState }) => {\n *     const token = (getState() as RootState).auth.token;\n *     // If we have a token set in state, let's assume that we should be passing it.\n *     if (token) {\n *       headers.set('authorization', `Bearer ${token}`);\n *     }\n *     return headers;\n *   },\n * })\n * ```\n *\n * @param {string} baseUrl\n * The base URL for an API service.\n * Typically in the format of https://example.com/\n *\n * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\n * An optional function that can be used to inject headers on requests.\n * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.\n * Useful for setting authentication or headers that need to be set conditionally.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\n *\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\n * An optional function that can be used to stringify querystring parameters.\n *\n * @param {(headers: Headers) => boolean} isJsonContentType\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\n *\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\n *\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\n *\n * @param {number} timeout\n * A number in milliseconds that represents the maximum time a request can take before timing out.\n */\n\nexport function fetchBaseQuery({\n  baseUrl,\n  prepareHeaders = x => x,\n  fetchFn = defaultFetchFn,\n  paramsSerializer,\n  isJsonContentType = defaultIsJsonContentType,\n  jsonContentType = 'application/json',\n  jsonReplacer,\n  timeout: defaultTimeout,\n  responseHandler: globalResponseHandler,\n  validateStatus: globalValidateStatus,\n  ...baseFetchOptions\n}: FetchBaseQueryArgs = {}): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta> {\n  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\n    console.warn('Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.');\n  }\n  return async (arg, api, extraOptions) => {\n    const {\n      getState,\n      extra,\n      endpoint,\n      forced,\n      type\n    } = api;\n    let meta: FetchBaseQueryMeta | undefined;\n    let {\n      url,\n      headers = new Headers(baseFetchOptions.headers),\n      params = undefined,\n      responseHandler = globalResponseHandler ?? 'json' as const,\n      validateStatus = globalValidateStatus ?? defaultValidateStatus,\n      timeout = defaultTimeout,\n      ...rest\n    } = typeof arg == 'string' ? {\n      url: arg\n    } : arg;\n    let config: RequestInit = {\n      ...baseFetchOptions,\n      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,\n      ...rest\n    };\n    headers = new Headers(stripUndefined(headers));\n    config.headers = (await prepareHeaders(headers, {\n      getState,\n      arg,\n      extra,\n      endpoint,\n      forced,\n      type,\n      extraOptions\n    })) || headers;\n    const bodyIsJsonifiable = isJsonifiable(config.body);\n\n    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically\n    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)\n    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== 'string') {\n      config.headers.delete('content-type');\n    }\n    if (!config.headers.has('content-type') && bodyIsJsonifiable) {\n      config.headers.set('content-type', jsonContentType);\n    }\n    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {\n      config.body = JSON.stringify(config.body, jsonReplacer);\n    }\n\n    // Set Accept header based on responseHandler if not already set\n    if (!config.headers.has('accept')) {\n      if (responseHandler === 'json') {\n        config.headers.set('accept', 'application/json');\n      } else if (responseHandler === 'text') {\n        config.headers.set('accept', 'text/plain, text/html, */*');\n      }\n      // For 'content-type' responseHandler, don't set Accept (let server decide)\n    }\n    if (params) {\n      const divider = ~url.indexOf('?') ? '&' : '?';\n      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n      url += divider + query;\n    }\n    url = joinUrls(baseUrl, url);\n    const request = new Request(url, config);\n    const requestClone = new Request(url, config);\n    meta = {\n      request: requestClone\n    };\n    let response;\n    try {\n      response = await fetchFn(request);\n    } catch (e) {\n      return {\n        error: {\n          status: (e instanceof Error || typeof DOMException !== 'undefined' && e instanceof DOMException) && e.name === 'TimeoutError' ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\n          error: String(e)\n        },\n        meta\n      };\n    }\n    const responseClone = response.clone();\n    meta.response = responseClone;\n    let resultData: any;\n    let responseText: string = '';\n    try {\n      let handleResponseError;\n      await Promise.all([handleResponse(response, responseHandler).then(r => resultData = r, e => handleResponseError = e),\n      // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n      // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n      responseClone.text().then(r => responseText = r, () => {})]);\n      if (handleResponseError) throw handleResponseError;\n    } catch (e) {\n      return {\n        error: {\n          status: 'PARSING_ERROR',\n          originalStatus: response.status,\n          data: responseText,\n          error: String(e)\n        },\n        meta\n      };\n    }\n    return validateStatus(response, resultData) ? {\n      data: resultData,\n      meta\n    } : {\n      error: {\n        status: response.status,\n        data: resultData\n      },\n      meta\n    };\n  };\n  async function handleResponse(response: Response, responseHandler: ResponseHandler) {\n    if (typeof responseHandler === 'function') {\n      return responseHandler(response);\n    }\n    if (responseHandler === 'content-type') {\n      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text';\n    }\n    if (responseHandler === 'json') {\n      const text = await response.text();\n      return text.length ? JSON.parse(text) : null;\n    }\n    return response.text();\n  }\n}","export class HandledError {\n  constructor(public readonly value: any, public readonly meta: any = undefined) {}\n}","import type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta } from './baseQueryTypes';\nimport type { FetchBaseQueryError } from './fetchBaseQuery';\nimport { HandledError } from './HandledError';\n\n/**\n * Exponential backoff based on the attempt number.\n *\n * @remarks\n * 1. 600ms * random(0.4, 1.4)\n * 2. 1200ms * random(0.4, 1.4)\n * 3. 2400ms * random(0.4, 1.4)\n * 4. 4800ms * random(0.4, 1.4)\n * 5. 9600ms * random(0.4, 1.4)\n *\n * @param attempt - Current attempt\n * @param maxRetries - Maximum number of retries\n */\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5, signal?: AbortSignal) {\n  const attempts = Math.min(attempt, maxRetries);\n  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)); // Force a positive int in the case we make this an option\n\n  await new Promise<void>((resolve, reject) => {\n    const timeoutId = setTimeout(() => resolve(), timeout);\n\n    // If signal is provided and gets aborted, clear timeout and reject\n    if (signal) {\n      const abortHandler = () => {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      };\n\n      // Check if already aborted\n      if (signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      } else {\n        signal.addEventListener('abort', abortHandler, {\n          once: true\n        });\n      }\n    }\n  });\n}\ntype RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {\n  attempt: number;\n  baseQueryApi: BaseQueryApi;\n  extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;\n}) => boolean;\nexport type RetryOptions = {\n  /**\n   * Function used to determine delay between retries\n   */\n  backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;\n} & ({\n  /**\n   * How many times the query will be retried (default: 5)\n   */\n  maxRetries?: number;\n  retryCondition?: undefined;\n} | {\n  /**\n   * Callback to determine if a retry should be attempted.\n   * Return `true` for another retry and `false` to quit trying prematurely.\n   */\n  retryCondition?: RetryConditionFunction;\n  maxRetries?: undefined;\n});\nfunction fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never {\n  throw Object.assign(new HandledError({\n    error,\n    meta\n  }), {\n    throwImmediately: true\n  });\n}\n\n/**\n * Checks if the abort signal is aborted and fails immediately if so.\n * Used to exit retry loops cleanly when a request is aborted.\n */\nfunction failIfAborted(signal: AbortSignal): void {\n  if (signal.aborted) {\n    fail({\n      status: 'CUSTOM_ERROR',\n      error: 'Aborted'\n    });\n  }\n}\nconst EMPTY_OPTIONS = {};\nconst retryWithBackoff: BaseQueryEnhancer<unknown, RetryOptions, RetryOptions | void> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n  // We need to figure out `maxRetries` before we define `defaultRetryCondition.\n  // This is probably goofy, but ought to work.\n  // Put our defaults in one array, filter out undefineds, grab the last value.\n  const possibleMaxRetries: number[] = [5, (defaultOptions as any || EMPTY_OPTIONS).maxRetries, (extraOptions as any || EMPTY_OPTIONS).maxRetries].filter(x => x !== undefined);\n  const [maxRetries] = possibleMaxRetries.slice(-1);\n  const defaultRetryCondition: RetryConditionFunction = (_, __, {\n    attempt\n  }) => attempt <= maxRetries;\n  const options: {\n    maxRetries: number;\n    backoff: typeof defaultBackoff;\n    retryCondition: typeof defaultRetryCondition;\n  } = {\n    maxRetries,\n    backoff: defaultBackoff,\n    retryCondition: defaultRetryCondition,\n    ...defaultOptions,\n    ...extraOptions\n  };\n  let retry = 0;\n  while (true) {\n    // Check if aborted before each attempt\n    failIfAborted(api.signal);\n    try {\n      const result = await baseQuery(args, api, extraOptions);\n      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\n      if (result.error) {\n        throw new HandledError(result);\n      }\n      return result;\n    } catch (e: any) {\n      retry++;\n      if (e.throwImmediately) {\n        if (e instanceof HandledError) {\n          return e.value;\n        }\n\n        // We don't know what this is, so we have to rethrow it\n        throw e;\n      }\n      if (e instanceof HandledError) {\n        if (!options.retryCondition(e.value.error as FetchBaseQueryError, args, {\n          attempt: retry,\n          baseQueryApi: api,\n          extraOptions\n        })) {\n          return e.value; // Max retries for expected error\n        }\n      } else {\n        // For unexpected errors, respect maxRetries\n        if (retry > options.maxRetries) {\n          // Return the error as a proper error response instead of throwing\n          return {\n            error: e\n          };\n        }\n      }\n\n      // Check if aborted before backoff\n      failIfAborted(api.signal);\n      try {\n        await options.backoff(retry, options.maxRetries, api.signal);\n      } catch (backoffError) {\n        // If backoff was aborted, exit the retry loop\n        failIfAborted(api.signal);\n        // Otherwise, rethrow the backoff error\n        throw backoffError;\n      }\n    }\n  }\n};\n\n/**\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\n *\n * @example\n *\n * ```ts\n * // codeblock-meta title=\"Retry every request 5 times by default\"\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\n * export const api = createApi({\n *   baseQuery: staggeredBaseQuery,\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => ({ url: 'posts' }),\n *     }),\n *     getPost: build.query<PostsResponse, string>({\n *       query: (id) => ({ url: `post/${id}` }),\n *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\n *     }),\n *   }),\n * });\n *\n * export const { useGetPostsQuery, useGetPostQuery } = api;\n * ```\n */\nexport const retry = /* @__PURE__ */Object.assign(retryWithBackoff, {\n  fail\n});","import type { ThunkDispatch, ActionCreatorWithoutPayload // Workaround for API-Extractor\n} from '@reduxjs/toolkit';\nimport { createAction } from './rtkImports';\nexport const INTERNAL_PREFIX = '__rtkq/';\nconst ONLINE = 'online';\nconst OFFLINE = 'offline';\nconst FOCUS = 'focus';\nconst FOCUSED = 'focused';\nconst VISIBILITYCHANGE = 'visibilitychange';\nexport const onFocus = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${FOCUSED}`);\nexport const onFocusLost = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);\nexport const onOnline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${ONLINE}`);\nexport const onOffline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${OFFLINE}`);\nconst actions = {\n  onFocus,\n  onFocusLost,\n  onOnline,\n  onOffline\n};\nlet initialized = false;\n\n/**\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\n * It requires the dispatch method from your store.\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\n * but you have the option of providing a callback for more granular control.\n *\n * @example\n * ```ts\n * setupListeners(store.dispatch)\n * ```\n *\n * @param dispatch - The dispatch method from your store\n * @param customHandler - An optional callback for more granular control over listener behavior\n * @returns Return value of the handler.\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\n */\nexport function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n}) => () => void) {\n  function defaultHandler() {\n    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map(action => () => dispatch(action()));\n    const handleVisibilityChange = () => {\n      if (window.document.visibilityState === 'visible') {\n        handleFocus();\n      } else {\n        handleFocusLost();\n      }\n    };\n    let unsubscribe = () => {\n      initialized = false;\n    };\n    if (!initialized) {\n      if (typeof window !== 'undefined' && window.addEventListener) {\n        const handlers = {\n          [FOCUS]: handleFocus,\n          [VISIBILITYCHANGE]: handleVisibilityChange,\n          [ONLINE]: handleOnline,\n          [OFFLINE]: handleOffline\n        };\n        function updateListeners(add: boolean) {\n          Object.entries(handlers).forEach(([event, handler]) => {\n            if (add) {\n              window.addEventListener(event, handler, false);\n            } else {\n              window.removeEventListener(event, handler);\n            }\n          });\n        }\n        // Handle focus events\n        updateListeners(true);\n        initialized = true;\n        unsubscribe = () => {\n          updateListeners(false);\n          initialized = false;\n        };\n      }\n    }\n    return unsubscribe;\n  }\n  return customHandler ? customHandler(dispatch, actions) : defaultHandler();\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from 'immer';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AsyncThunkAction, SafePromise, SerializedError, ThunkAction, UnknownAction } from '@reduxjs/toolkit';\nimport type { Dispatch } from 'redux';\nimport { asSafePromise } from '../../tsHelpers';\nimport { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes';\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport { ENDPOINT_QUERY, isQueryDefinition, type EndpointDefinition, type EndpointDefinitions, type InfiniteQueryArgFrom, type InfiniteQueryDefinition, type MutationDefinition, type PageParamFrom, type QueryArgFrom, type QueryDefinition, type ResultTypeFrom } from '../endpointDefinitions';\nimport { filterNullishValues } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQueryDirection, SubscriptionOptions } from './apiState';\nimport type { InfiniteQueryResultSelectorResult, QueryResultSelectorResult } from './buildSelectors';\nimport type { InfiniteQueryThunk, InfiniteQueryThunkArg, MutationThunk, QueryThunk, QueryThunkArg, ThunkApiMetaConfig } from './buildThunks';\nimport type { ApiEndpointQuery } from './module';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nexport type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  initiate: StartQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  initiate: StartInfiniteQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  initiate: StartMutationActionCreator<Definition>;\n};\nexport const forceQueryFnSymbol = Symbol('forceQueryFn');\nexport const isUpsertQuery = (arg: QueryThunkArg) => typeof arg[forceQueryFnSymbol] === 'function';\nexport type StartQueryActionCreatorOptions = {\n  subscribe?: boolean;\n  forceRefetch?: boolean | number;\n  subscriptionOptions?: SubscriptionOptions;\n  [forceQueryFnSymbol]?: () => QueryReturnValue;\n};\ntype RefetchOptions = {\n  refetchCachedPages?: boolean;\n};\nexport type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {\n  direction?: InfiniteQueryDirection;\n  param?: unknown;\n} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;\ntype AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (arg: any, options?: StartQueryActionCreatorOptions) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>;\ntype StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;\nexport type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;\ntype QueryActionCreatorFields = {\n  requestId: string;\n  subscriptionOptions: SubscriptionOptions | undefined;\n  abort(): void;\n  unsubscribe(): void;\n  updateSubscriptionOptions(options: SubscriptionOptions): void;\n  queryCacheKey: string;\n};\ntype AnyActionCreatorResult = SafePromise<any> & QueryActionCreatorFields & {\n  arg: any;\n  unwrap(): Promise<any>;\n  refetch(options?: RefetchOptions): AnyActionCreatorResult;\n};\nexport type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: QueryArgFrom<D>;\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  refetch(): QueryActionCreatorResult<D>;\n};\nexport type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: InfiniteQueryArgFrom<D>;\n  unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;\n  refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;\n};\ntype StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {\n  /**\n   * If this mutation should be tracked in the store.\n   * If you just want to manually trigger this mutation using `dispatch` and don't care about the\n   * result, state & potential errors being held in store, you can set this to false.\n   * (defaults to `true`)\n   */\n  track?: boolean;\n  fixedCacheKey?: string;\n}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;\nexport type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{\n  data: ResultTypeFrom<D>;\n  error?: undefined;\n} | {\n  data?: undefined;\n  error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;\n}> & {\n  /** @internal */\n  arg: {\n    /**\n     * The name of the given endpoint for the mutation\n     */\n    endpointName: string;\n    /**\n     * The original arguments supplied to the mutation call\n     */\n    originalArgs: QueryArgFrom<D>;\n    /**\n     * Whether the mutation is being tracked in the store.\n     */\n    track?: boolean;\n    fixedCacheKey?: string;\n  };\n  /**\n   * A unique string generated for the request sequence\n   */\n  requestId: string;\n\n  /**\n   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\n   * that was fired off from reaching the server, but only to assist in handling the response.\n   *\n   * Calling `abort()` prior to the promise resolving will force it to reach the error state with\n   * the serialized error:\n   * `{ name: 'AbortError', message: 'Aborted' }`\n   *\n   * @example\n   * ```ts\n   * const [updateUser] = useUpdateUserMutation();\n   *\n   * useEffect(() => {\n   *   const promise = updateUser(id);\n   *   promise\n   *     .unwrap()\n   *     .catch((err) => {\n   *       if (err.name === 'AbortError') return;\n   *       // else handle the unexpected error\n   *     })\n   *\n   *   return () => {\n   *     promise.abort();\n   *   }\n   * }, [id, updateUser])\n   * ```\n   */\n  abort(): void;\n  /**\n   * Unwraps a mutation call to provide the raw response/error.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap\"\n   * addPost({ id: 1, name: 'Example' })\n   *   .unwrap()\n   *   .then((payload) => console.log('fulfilled', payload))\n   *   .catch((error) => console.error('rejected', error));\n   * ```\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  /**\n   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\n   The value returned by the hook will reset to `isUninitialized` afterwards.\n   */\n  reset(): void;\n};\nexport function buildInitiate({\n  serializeQueryArgs,\n  queryThunk,\n  infiniteQueryThunk,\n  mutationThunk,\n  api,\n  context,\n  getInternalState\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  api: Api<any, EndpointDefinitions, any, any>;\n  context: ApiContext<EndpointDefinitions>;\n  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState;\n}) {\n  const getRunningQueries = (dispatch: Dispatch) => getInternalState(dispatch)?.runningQueries;\n  const getRunningMutations = (dispatch: Dispatch) => getInternalState(dispatch)?.runningMutations;\n  const {\n    unsubscribeQueryResult,\n    removeMutationResult,\n    updateSubscriptionOptions\n  } = api.internalActions;\n  return {\n    buildInitiateQuery,\n    buildInitiateInfiniteQuery,\n    buildInitiateMutation,\n    getRunningQueryThunk,\n    getRunningMutationThunk,\n    getRunningQueriesThunk,\n    getRunningMutationsThunk\n  };\n  function getRunningQueryThunk(endpointName: string, queryArgs: any) {\n    return (dispatch: Dispatch) => {\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      return getRunningQueries(dispatch)?.get(queryCacheKey) as QueryActionCreatorResult<never> | InfiniteQueryActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningMutationThunk(\n  /**\n   * this is only here to allow TS to infer the result type by input value\n   * we could use it to validate the result, but it's probably not necessary\n   */\n  _endpointName: string, fixedCacheKeyOrRequestId: string) {\n    return (dispatch: Dispatch) => {\n      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as MutationActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningQueriesThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningQueries(dispatch));\n  }\n  function getRunningMutationsThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningMutations(dispatch));\n  }\n  function middlewareWarning(dispatch: Dispatch) {\n    if (process.env.NODE_ENV !== 'production') {\n      if ((middlewareWarning as any).triggered) return;\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      (middlewareWarning as any).triggered = true;\n\n      // The RTKQ middleware should return the internal state object,\n      // but it should _not_ be the action object.\n      if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n        // Otherwise, must not have been added\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n      }\n    }\n  }\n  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any>) {\n    const queryAction: AnyQueryActionCreator<any> = (arg, {\n      subscribe = true,\n      forceRefetch,\n      subscriptionOptions,\n      [forceQueryFnSymbol]: forceQueryFn,\n      ...rest\n    } = {}) => (dispatch, getState) => {\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs: arg,\n        endpointDefinition,\n        endpointName\n      });\n      let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>;\n      const commonThunkArgs = {\n        ...rest,\n        type: ENDPOINT_QUERY as 'query',\n        subscribe,\n        forceRefetch: forceRefetch,\n        subscriptionOptions,\n        endpointName,\n        originalArgs: arg,\n        queryCacheKey,\n        [forceQueryFnSymbol]: forceQueryFn\n      };\n      if (isQueryDefinition(endpointDefinition)) {\n        thunk = queryThunk(commonThunkArgs);\n      } else {\n        const {\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        } = rest as Pick<InfiniteQueryThunkArg<any>, 'direction' | 'initialPageParam' | 'refetchCachedPages'>;\n        thunk = infiniteQueryThunk({\n          ...(commonThunkArgs as InfiniteQueryThunkArg<any>),\n          // Supply these even if undefined. This helps with a field existence\n          // check over in `buildSlice.ts`\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        });\n      }\n      const selector = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg);\n      const thunkResult = dispatch(thunk);\n      const stateAfter = selector(getState());\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort\n      } = thunkResult;\n      const skippedSynchronously = stateAfter.requestId !== requestId;\n      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);\n      const selectFromState = () => selector(getState());\n      const statePromise: AnyActionCreatorResult = Object.assign((forceQueryFn ?\n      // a query has been forced (upsertQueryData)\n      // -> we want to resolve it once data has been written with the data that will be written\n      thunkResult.then(selectFromState) : skippedSynchronously && !runningQuery ?\n      // a query has been skipped due to a condition and we do not have any currently running query\n      // -> we want to resolve it immediately with the current data\n      Promise.resolve(stateAfter) :\n      // query just started or one is already in flight\n      // -> wait for the running query, then resolve with data from after that\n      Promise.all([runningQuery, thunkResult]).then(selectFromState)) as SafePromise<any>, {\n        arg,\n        requestId,\n        subscriptionOptions,\n        queryCacheKey,\n        abort,\n        async unwrap() {\n          const result = await statePromise;\n          if (result.isError) {\n            throw result.error;\n          }\n          return result.data;\n        },\n        refetch: (options?: RefetchOptions) => dispatch(queryAction(arg, {\n          subscribe: false,\n          forceRefetch: true,\n          ...options\n        })),\n        unsubscribe() {\n          if (subscribe) dispatch(unsubscribeQueryResult({\n            queryCacheKey,\n            requestId\n          }));\n        },\n        updateSubscriptionOptions(options: SubscriptionOptions) {\n          statePromise.subscriptionOptions = options;\n          dispatch(updateSubscriptionOptions({\n            endpointName,\n            requestId,\n            queryCacheKey,\n            options\n          }));\n        }\n      });\n      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n        const runningQueries = getRunningQueries(dispatch)!;\n        runningQueries.set(queryCacheKey, statePromise);\n        statePromise.then(() => {\n          runningQueries.delete(queryCacheKey);\n        });\n      }\n      return statePromise;\n    };\n    return queryAction;\n  }\n  function buildInitiateQuery(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return queryAction;\n  }\n  function buildInitiateInfiniteQuery(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return infiniteQueryAction;\n  }\n  function buildInitiateMutation(endpointName: string): StartMutationActionCreator<any> {\n    return (arg, {\n      track = true,\n      fixedCacheKey\n    } = {}) => (dispatch, getState) => {\n      const thunk = mutationThunk({\n        type: 'mutation',\n        endpointName,\n        originalArgs: arg,\n        track,\n        fixedCacheKey\n      });\n      const thunkResult = dispatch(thunk);\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort,\n        unwrap\n      } = thunkResult;\n      const returnValuePromise = asSafePromise(thunkResult.unwrap().then(data => ({\n        data\n      })), error => ({\n        error\n      }));\n      const reset = () => {\n        dispatch(removeMutationResult({\n          requestId,\n          fixedCacheKey\n        }));\n      };\n      const ret = Object.assign(returnValuePromise, {\n        arg: thunkResult.arg,\n        requestId,\n        abort,\n        unwrap,\n        reset\n      });\n      const runningMutations = getRunningMutations(dispatch)!;\n      runningMutations.set(requestId, ret);\n      ret.then(() => {\n        runningMutations.delete(requestId);\n      });\n      if (fixedCacheKey) {\n        runningMutations.set(fixedCacheKey, ret);\n        ret.then(() => {\n          if (runningMutations.get(fixedCacheKey) === ret) {\n            runningMutations.delete(fixedCacheKey);\n          }\n        });\n      }\n      return ret;\n    };\n  }\n}","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import type { UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn } from './baseQueryTypes';\nimport type { CombinedState, CoreModule, QueryKeys } from './core';\nimport type { ApiModules } from './core/module';\nimport type { CreateApiOptions } from './createApi';\nimport type { EndpointBuilder, EndpointDefinition, EndpointDefinitions, UpdateDefinitions } from './endpointDefinitions';\nimport type { NoInfer, UnionToIntersection, WithRequiredProp } from './tsHelpers';\nexport type ModuleName = keyof ApiModules<any, any, any, any>;\nexport type Module<Name extends ModuleName> = {\n  name: Name;\n  init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {\n    injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;\n  };\n};\nexport interface ApiContext<Definitions extends EndpointDefinitions> {\n  apiUid: string;\n  endpointDefinitions: Definitions;\n  batch(cb: () => void): void;\n  extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;\n  hasRehydrationInfo: (action: UnknownAction) => boolean;\n}\nexport const getEndpointDefinition = <Definitions extends EndpointDefinitions, EndpointName extends keyof Definitions>(context: ApiContext<Definitions>, endpointName: EndpointName) => context.endpointDefinitions[endpointName];\nexport type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {\n  /**\n   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.\n   */\n  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {\n    endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;\n    /**\n     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.\n     *\n     * If set to `true`, will override existing endpoints with the new definition.\n     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.\n     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.\n     */\n    overrideExisting?: boolean | 'throw';\n  }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;\n  /**\n   *A function to enhance a generated API with additional information. Useful with code-generation.\n   */\n  enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {\n    addTagTypes?: readonly NewTagTypes[];\n    endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? { [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void) } : never;\n  }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;\n};","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { SchemaError } from '@standard-schema/utils';\nimport type { SchemaType } from './endpointDefinitions';\nexport class NamedSchemaError extends SchemaError {\n  constructor(issues: readonly StandardSchemaV1.Issue[], public readonly value: any, public readonly schemaName: `${SchemaType}Schema`, public readonly _bqMeta: any) {\n    super(issues);\n  }\n}\nexport const shouldSkip = (skipSchemaValidation: boolean | SchemaType[] | undefined, schemaName: SchemaType) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;\nexport async function parseWithSchema<Schema extends StandardSchemaV1>(schema: Schema, data: unknown, schemaName: `${SchemaType}Schema`, bqMeta: any): Promise<StandardSchemaV1.InferOutput<Schema>> {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);\n  }\n  return result.value;\n}","import type { AsyncThunk, AsyncThunkPayloadCreator, Draft, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Patch } from 'immer';\nimport { isDraftable, produceWithPatches } from '../utils/immerImports';\nimport type { Api, ApiContext } from '../apiTypes';\nimport type { BaseQueryError, BaseQueryFn, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryCombinedArg, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFrom, QueryDefinition, ResultDescription, ResultTypeFrom, SchemaFailureConverter, SchemaFailureHandler, SchemaFailureInfo, SchemaType } from '../endpointDefinitions';\nimport { calculateProvidedBy, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { HandledError } from '../HandledError';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport type { RootState, QueryKeys, QuerySubstateIdentifier, InfiniteData, InfiniteQueryConfigOptions, QueryCacheKey, InfiniteQueryDirection, InfiniteQueryKeys } from './apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from './apiState';\nimport type { InfiniteQueryActionCreatorResult, QueryActionCreatorResult, StartInfiniteQueryActionCreatorOptions, StartQueryActionCreatorOptions } from './buildInitiate';\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate';\nimport type { AllSelectors } from './buildSelectors';\nimport type { ApiEndpointQuery, PrefetchOptions } from './module';\nimport { createAsyncThunk, isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, SHOULD_AUTOBATCH } from './rtkImports';\nimport { parseWithSchema, NamedSchemaError, shouldSkip } from '../standardSchema';\nexport type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;\nexport type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;\nexport type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;\ntype EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : never;\nexport type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;\nexport type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;\nexport type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;\nexport type Matcher<M> = (value: any) => value is M;\nexport interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {\n  matchPending: Matcher<PendingAction<Thunk, Definition>>;\n  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;\n  matchRejected: Matcher<RejectedAction<Thunk, Definition>>;\n}\nexport type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {\n  type: 'query';\n  originalArgs: unknown;\n  endpointName: string;\n};\nexport type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {\n  type: `query`;\n  originalArgs: unknown;\n  endpointName: string;\n  param: unknown;\n  direction?: InfiniteQueryDirection;\n  refetchCachedPages?: boolean;\n};\ntype MutationThunkArg = {\n  type: 'mutation';\n  originalArgs: unknown;\n  endpointName: string;\n  track?: boolean;\n  fixedCacheKey?: string;\n};\nexport type ThunkResult = unknown;\nexport type ThunkApiMetaConfig = {\n  pendingMeta: {\n    startedTimeStamp: number;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  fulfilledMeta: {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  rejectedMeta: {\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n};\nexport type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;\nexport type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;\nexport type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\n  return baseQueryReturnValue;\n}\nexport type MaybeDrafted<T> = T | Draft<T>;\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;\nexport type UpsertRecipe<T> = (data: MaybeDrafted<T> | undefined) => void | MaybeDrafted<T>;\nexport type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;\nexport type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;\nexport type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;\nexport type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;\nexport type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;\nexport type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;\nexport type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;\n\n/**\n * An object returned from dispatching a `api.util.updateQueryData` call.\n */\nexport type PatchCollection = {\n  /**\n   * An `immer` Patch describing the cache update.\n   */\n  patches: Patch[];\n  /**\n   * An `immer` Patch to revert the cache update.\n   */\n  inversePatches: Patch[];\n  /**\n   * A function that will undo the cache update.\n   */\n  undo: () => void;\n};\ntype TransformCallback = (baseQueryReturnValue: unknown, meta: unknown, arg: unknown) => any;\nexport const addShouldAutoBatch = <T extends Record<string, any>,>(arg: T = {} as T): T & {\n  [SHOULD_AUTOBATCH]: true;\n} => {\n  return {\n    ...arg,\n    [SHOULD_AUTOBATCH]: true\n  };\n};\nexport function buildThunks<BaseQuery extends BaseQueryFn, ReducerPath extends string, Definitions extends EndpointDefinitions>({\n  reducerPath,\n  baseQuery,\n  context: {\n    endpointDefinitions\n  },\n  serializeQueryArgs,\n  api,\n  assertTagType,\n  selectors,\n  onSchemaFailure,\n  catchSchemaFailure: globalCatchSchemaFailure,\n  skipSchemaValidation: globalSkipSchemaValidation\n}: {\n  baseQuery: BaseQuery;\n  reducerPath: ReducerPath;\n  context: ApiContext<Definitions>;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  api: Api<BaseQuery, Definitions, ReducerPath, any>;\n  assertTagType: AssertTagTypes;\n  selectors: AllSelectors;\n  onSchemaFailure: SchemaFailureHandler | undefined;\n  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined;\n  skipSchemaValidation: boolean | SchemaType[] | undefined;\n}) {\n  type State = RootState<any, string, ReducerPath>;\n  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n    const endpointDefinition = endpointDefinitions[endpointName];\n    const queryCacheKey = serializeQueryArgs({\n      queryArgs: arg,\n      endpointDefinition,\n      endpointName\n    });\n    dispatch(api.internalActions.queryResultPatched({\n      queryCacheKey,\n      patches\n    }));\n    if (!updateProvided) {\n      return;\n    }\n    const newValue = api.endpoints[endpointName].select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, undefined, arg, {}, assertTagType);\n    dispatch(api.internalActions.updateProvidedBy([{\n      queryCacheKey,\n      providedTags\n    }]));\n  };\n  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [item, ...items];\n    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n  }\n  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [...items, item];\n    return max && newItems.length > max ? newItems.slice(1) : newItems;\n  }\n  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n    const endpointDefinition = api.endpoints[endpointName];\n    const currentState = endpointDefinition.select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const ret: PatchCollection = {\n      patches: [],\n      inversePatches: [],\n      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n    };\n    if (currentState.status === STATUS_UNINITIALIZED) {\n      return ret;\n    }\n    let newValue;\n    if ('data' in currentState) {\n      if (isDraftable(currentState.data)) {\n        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n        ret.patches.push(...patches);\n        ret.inversePatches.push(...inversePatches);\n        newValue = value;\n      } else {\n        newValue = updateRecipe(currentState.data);\n        ret.patches.push({\n          op: 'replace',\n          path: [],\n          value: newValue\n        });\n        ret.inversePatches.push({\n          op: 'replace',\n          path: [],\n          value: currentState.data\n        });\n      }\n    }\n    if (ret.patches.length === 0) {\n      return ret;\n    }\n    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n    return ret;\n  };\n  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> = (endpointName, arg, value) => dispatch => {\n    type EndpointName = typeof endpointName;\n    const res = dispatch((api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>).initiate(arg, {\n      subscribe: false,\n      forceRefetch: true,\n      [forceQueryFnSymbol]: () => ({\n        data: value\n      })\n    })) as UpsertThunkResult<Definitions, EndpointName>;\n    return res;\n  };\n  const getTransformCallbackForEndpoint = (endpointDefinition: EndpointDefinition<any, any, any, any>, transformFieldName: 'transformResponse' | 'transformErrorResponse'): TransformCallback => {\n    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName]! as TransformCallback : defaultTransformResponse;\n  };\n\n  // The generic async payload function for all of our thunks\n  const executeEndpoint: AsyncThunkPayloadCreator<ThunkResult, QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }> = async (arg, {\n    signal,\n    abort,\n    rejectWithValue,\n    fulfillWithValue,\n    dispatch,\n    getState,\n    extra\n  }) => {\n    const endpointDefinition = endpointDefinitions[arg.endpointName];\n    const {\n      metaSchema,\n      skipSchemaValidation = globalSkipSchemaValidation\n    } = endpointDefinition;\n    const isQuery = arg.type === ENDPOINT_QUERY;\n    try {\n      let transformResponse: TransformCallback = defaultTransformResponse;\n      const baseQueryApi = {\n        signal,\n        abort,\n        dispatch,\n        getState,\n        extra,\n        endpoint: arg.endpointName,\n        type: arg.type,\n        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,\n        queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n      };\n      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined;\n      let finalQueryReturnValue: QueryReturnValue;\n\n      // Infinite query wrapper, which executes the request and returns\n      // the InfiniteData `{pages, pageParams}` structure\n      const fetchPage = async (data: InfiniteData<unknown, unknown>, param: unknown, maxPages: number, previous?: boolean): Promise<QueryReturnValue> => {\n        // This should handle cases where there is no `getPrevPageParam`,\n        // or `getPPP` returned nullish\n        if (param == null && data.pages.length) {\n          return Promise.resolve({\n            data\n          });\n        }\n        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {\n          queryArg: arg.originalArgs,\n          pageParam: param\n        };\n        const pageResponse = await executeRequest(finalQueryArg);\n        const addTo = previous ? addToStart : addToEnd;\n        return {\n          data: {\n            pages: addTo(data.pages, pageResponse.data, maxPages),\n            pageParams: addTo(data.pageParams, param, maxPages)\n          },\n          meta: pageResponse.meta\n        };\n      };\n\n      // Wrapper for executing either `query` or `queryFn`,\n      // and handling any errors\n      async function executeRequest(finalQueryArg: unknown): Promise<QueryReturnValue> {\n        let result: QueryReturnValue;\n        const {\n          extraOptions,\n          argSchema,\n          rawResponseSchema,\n          responseSchema\n        } = endpointDefinition;\n        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {\n          finalQueryArg = await parseWithSchema(argSchema, finalQueryArg, 'argSchema', {} // we don't have a meta yet, so we can't pass it\n          );\n        }\n        if (forceQueryFn) {\n          // upsertQueryData relies on this to pass in the user-provided value\n          result = forceQueryFn();\n        } else if (endpointDefinition.query) {\n          // We should only run `transformResponse` when the endpoint has a `query` method,\n          // and we're not doing an `upsertQueryData`.\n          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformResponse');\n          result = await baseQuery(endpointDefinition.query(finalQueryArg as any), baseQueryApi, extraOptions as any);\n        } else {\n          result = await endpointDefinition.queryFn(finalQueryArg as any, baseQueryApi, extraOptions as any, arg => baseQuery(arg, baseQueryApi, extraOptions as any));\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`';\n          let err: undefined | string;\n          if (!result) {\n            err = `${what} did not return anything.`;\n          } else if (typeof result !== 'object') {\n            err = `${what} did not return an object.`;\n          } else if (result.error && result.data) {\n            err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n          } else if (result.error === undefined && result.data === undefined) {\n            err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n          } else {\n            for (const key of Object.keys(result)) {\n              if (key !== 'error' && key !== 'data' && key !== 'meta') {\n                err = `The object returned by ${what} has the unknown property ${key}.`;\n                break;\n              }\n            }\n          }\n          if (err) {\n            console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n                  ${err}\n                  It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n                  Object returned was:`, result);\n          }\n        }\n        if (result.error) throw new HandledError(result.error, result.meta);\n        let {\n          data\n        } = result;\n        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, 'rawResponse')) {\n          data = await parseWithSchema(rawResponseSchema, result.data, 'rawResponseSchema', result.meta);\n        }\n        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);\n        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {\n          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, 'responseSchema', result.meta);\n        }\n        return {\n          ...result,\n          data: transformedResponse\n        };\n      }\n      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {\n        // This is an infinite query endpoint\n        const {\n          infiniteQueryOptions\n        } = endpointDefinition;\n\n        // Runtime checks should guarantee this is a positive number if provided\n        const {\n          maxPages = Infinity\n        } = infiniteQueryOptions;\n\n        // Priority: per-call override > endpoint config > default (true)\n        const refetchCachedPages = (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;\n        let result: QueryReturnValue;\n\n        // Start by looking up the existing InfiniteData value from state,\n        // falling back to an empty value if it doesn't exist yet\n        const blankData = {\n          pages: [],\n          pageParams: []\n        };\n        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data as InfiniteData<unknown, unknown> | undefined;\n\n        // When the arg changes or the user forces a refetch,\n        // we don't include the `direction` flag. This lets us distinguish\n        // between actually refetching with a forced query, vs just fetching\n        // the next page.\n        const isForcedQueryNeedingRefetch =\n        // arg.forceRefetch\n        isForcedQuery(arg, getState()) && !(arg as InfiniteQueryThunkArg<any>).direction;\n        const existingData = (isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData) as InfiniteData<unknown, unknown>;\n\n        // If the thunk specified a direction and we do have at least one page,\n        // fetch the next or previous page\n        if ('direction' in arg && arg.direction && existingData.pages.length) {\n          const previous = arg.direction === 'backward';\n          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);\n          result = await fetchPage(existingData, param, maxPages, previous);\n        } else {\n          // Otherwise, fetch the first page and then any remaining pages\n\n          const {\n            initialPageParam = infiniteQueryOptions.initialPageParam\n          } = arg as InfiniteQueryThunkArg<any>;\n\n          // If we're doing a refetch, we should start from\n          // the first page we have cached.\n          // Otherwise, we should start from the initialPageParam\n          const cachedPageParams = cachedData?.pageParams ?? [];\n          const firstPageParam = cachedPageParams[0] ?? initialPageParam;\n          const totalPages = cachedPageParams.length;\n\n          // Fetch first page\n          result = await fetchPage(existingData, firstPageParam, maxPages);\n          if (forceQueryFn) {\n            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,\n            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.\n            result = {\n              data: (result.data as InfiniteData<unknown, unknown>).pages[0]\n            } as QueryReturnValue;\n          }\n          if (refetchCachedPages) {\n            // Fetch remaining pages\n            for (let i = 1; i < totalPages; i++) {\n              const param = getNextPageParam(infiniteQueryOptions, result.data as InfiniteData<unknown, unknown>, arg.originalArgs);\n              result = await fetchPage(result.data as InfiniteData<unknown, unknown>, param, maxPages);\n            }\n          }\n        }\n        finalQueryReturnValue = result;\n      } else {\n        // Non-infinite endpoint. Just run the one request.\n        finalQueryReturnValue = await executeRequest(arg.originalArgs);\n      }\n      if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta') && finalQueryReturnValue.meta) {\n        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, 'metaSchema', finalQueryReturnValue.meta);\n      }\n\n      // console.log('Final result: ', transformedData)\n      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({\n        fulfilledTimeStamp: Date.now(),\n        baseQueryMeta: finalQueryReturnValue.meta\n      }));\n    } catch (error) {\n      let caughtError = error;\n      if (caughtError instanceof HandledError) {\n        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformErrorResponse');\n        const {\n          rawErrorResponseSchema,\n          errorResponseSchema\n        } = endpointDefinition;\n        let {\n          value,\n          meta\n        } = caughtError;\n        try {\n          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, 'rawErrorResponse')) {\n            value = await parseWithSchema(rawErrorResponseSchema, value, 'rawErrorResponseSchema', meta);\n          }\n          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {\n            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta);\n          }\n          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);\n          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, 'errorResponse')) {\n            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, 'errorResponseSchema', meta);\n          }\n          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({\n            baseQueryMeta: meta\n          }));\n        } catch (e) {\n          caughtError = e;\n        }\n      }\n      try {\n        if (caughtError instanceof NamedSchemaError) {\n          const info: SchemaFailureInfo = {\n            endpoint: arg.endpointName,\n            arg: arg.originalArgs,\n            type: arg.type,\n            queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n          };\n          endpointDefinition.onSchemaFailure?.(caughtError, info);\n          onSchemaFailure?.(caughtError, info);\n          const {\n            catchSchemaFailure = globalCatchSchemaFailure\n          } = endpointDefinition;\n          if (catchSchemaFailure) {\n            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({\n              baseQueryMeta: caughtError._bqMeta\n            }));\n          }\n        }\n      } catch (e) {\n        caughtError = e;\n      }\n      if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n        console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, caughtError);\n      } else {\n        console.error(caughtError);\n      }\n      throw caughtError;\n    }\n  };\n  function isForcedQuery(arg: QueryThunkArg, state: RootState<any, string, ReducerPath>) {\n    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);\n    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;\n    const fulfilledVal = requestState?.fulfilledTimeStamp;\n    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n    if (refetchVal) {\n      // Return if it's true or compare the dates because it must be a number\n      return refetchVal === true || (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal;\n    }\n    return false;\n  }\n  const createQueryThunk = <ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,>() => {\n    const generatedQueryThunk = createAsyncThunk<ThunkResult, ThunkArgType, ThunkApiMetaConfig & {\n      state: RootState<any, string, ReducerPath>;\n    }>(`${reducerPath}/executeQuery`, executeEndpoint, {\n      getPendingMeta({\n        arg\n      }) {\n        const endpointDefinition = endpointDefinitions[arg.endpointName];\n        return addShouldAutoBatch({\n          startedTimeStamp: Date.now(),\n          ...(isInfiniteQueryDefinition(endpointDefinition) ? {\n            direction: (arg as InfiniteQueryThunkArg<any>).direction\n          } : {})\n        });\n      },\n      condition(queryThunkArg, {\n        getState\n      }) {\n        const state = getState();\n        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);\n        const fulfilledVal = requestState?.fulfilledTimeStamp;\n        const currentArg = queryThunkArg.originalArgs;\n        const previousArg = requestState?.originalArgs;\n        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];\n        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>).direction;\n\n        // Order of these checks matters.\n        // In order for `upsertQueryData` to successfully run while an existing request is in flight,\n        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\n        if (isUpsertQuery(queryThunkArg)) {\n          return true;\n        }\n\n        // Don't retry a request that's currently in-flight\n        if (requestState?.status === 'pending') {\n          return false;\n        }\n\n        // if this is forced, continue\n        if (isForcedQuery(queryThunkArg, state)) {\n          return true;\n        }\n        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n          currentArg,\n          previousArg,\n          endpointState: requestState,\n          state\n        })) {\n          return true;\n        }\n\n        // Pull from the cache unless we explicitly force refetch or qualify based on time\n        if (fulfilledVal && !direction) {\n          // Value is cached and we didn't specify to refresh, skip it.\n          return false;\n        }\n        return true;\n      },\n      dispatchConditionRejection: true\n    });\n    return generatedQueryThunk;\n  };\n  const queryThunk = createQueryThunk<QueryThunkArg>();\n  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>();\n  const mutationThunk = createAsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }>(`${reducerPath}/executeMutation`, executeEndpoint, {\n    getPendingMeta() {\n      return addShouldAutoBatch({\n        startedTimeStamp: Date.now()\n      });\n    }\n  });\n  const hasTheForce = (options: any): options is {\n    force: boolean;\n  } => 'force' in options;\n  const hasMaxAge = (options: any): options is {\n    ifOlderThan: false | number;\n  } => 'ifOlderThan' in options;\n  const prefetch = <EndpointName extends QueryKeys<Definitions>,>(endpointName: EndpointName, arg: any, options: PrefetchOptions = {}): ThunkAction<void, any, any, UnknownAction> => (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\n    const force = hasTheForce(options) && options.force;\n    const maxAge = hasMaxAge(options) && options.ifOlderThan;\n    const queryAction = (force: boolean = true) => {\n      const options: StartQueryActionCreatorOptions = {\n        forceRefetch: force,\n        subscribe: false\n      };\n      return (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(arg, options);\n    };\n    const latestStateValue = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg)(getState());\n    if (force) {\n      dispatch(queryAction());\n    } else if (maxAge) {\n      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n      if (!lastFulfilledTs) {\n        dispatch(queryAction());\n        return;\n      }\n      const shouldRetrigger = (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >= maxAge;\n      if (shouldRetrigger) {\n        dispatch(queryAction());\n      }\n    } else {\n      // If prefetching with no options, just let it try\n      dispatch(queryAction(false));\n    }\n  };\n  function matchesEndpoint(endpointName: string) {\n    return (action: any): action is UnknownAction => action?.meta?.arg?.endpointName === endpointName;\n  }\n  function buildMatchThunkActions<Thunk extends AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig> | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>>(thunk: Thunk, endpointName: string) {\n    return {\n      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n    } as Matchers<Thunk, any>;\n  }\n  return {\n    queryThunk,\n    mutationThunk,\n    infiniteQueryThunk,\n    prefetch,\n    updateQueryData,\n    upsertQueryData,\n    patchQueryData,\n    buildMatchThunkActions\n  };\n}\nexport function getNextPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  const lastIndex = pages.length - 1;\n  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);\n}\nexport function getPreviousPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);\n}\nexport function calculateProvidedByThunk(action: UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>, type: 'providesTags' | 'invalidatesTags', endpointDefinitions: EndpointDefinitions, assertTagType: AssertTagTypes) {\n  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type] as ResultDescription<any, any, any, any, any>, isFulfilled(action) ? action.payload : undefined, isRejectedWithValue(action) ? action.payload : undefined, action.meta.arg.originalArgs, 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined, assertTagType);\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../utils/immerImports';\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, createNextState, prepareAutoBatched, SHOULD_AUTOBATCH, nanoid } from './rtkImports';\nimport type { QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, MutationState, QueryState, InvalidationState, Subscribers, QueryCacheKey, SubscriptionState, ConfigState, InfiniteQuerySubState, InfiniteQueryDirection } from './apiState';\nimport { STATUS_FULFILLED, STATUS_PENDING, QueryStatus, STATUS_REJECTED, STATUS_UNINITIALIZED } from './apiState';\nimport type { AllQueryKeys, QueryArgFromAnyQueryDefinition, DataFromAnyQueryDefinition, InfiniteQueryThunk, MutationThunk, QueryThunk, QueryThunkArg } from './buildThunks';\nimport { calculateProvidedByThunk } from './buildThunks';\nimport { ENDPOINT_QUERY, isInfiniteQueryDefinition, type AssertTagTypes, type EndpointDefinitions, type FullTagDescription, type QueryDefinition } from '../endpointDefinitions';\nimport type { Patch } from 'immer';\nimport { applyPatches, original, isDraft } from '../utils/immerImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport { isDocumentVisible, isOnline, copyWithStructuralSharing } from '../utils';\nimport type { ApiContext } from '../apiTypes';\nimport { isUpsertQuery } from './buildInitiate';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport { getCurrent } from '../utils/getCurrent';\n\n/**\n * A typesafe single entry to be upserted into the cache\n */\nexport type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {\n  endpointName: EndpointName;\n  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;\n  value: DataFromAnyQueryDefinition<Definitions, EndpointName>;\n};\n\n/**\n * The internal version that is not typesafe since we can't carry the generics through `createSlice`\n */\ntype NormalizedQueryUpsertEntryPayload = {\n  endpointName: string;\n  arg: unknown;\n  value: unknown;\n};\nexport type ProcessedQueryUpsertEntry = {\n  queryDescription: QueryThunkArg;\n  value: unknown;\n};\n\n/**\n * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert\n */\nexport type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [...{ [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]> }]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {\n  match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;\n};\nfunction updateQuerySubstateIfExists(state: QueryState<any>, queryCacheKey: QueryCacheKey, update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void) {\n  const substate = state[queryCacheKey];\n  if (substate) {\n    update(substate);\n  }\n}\nexport function getMutationCacheKey(id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n}): string | undefined;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n} | MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string | undefined {\n  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state: MutationState<any>, id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}, update: (substate: MutationSubState<any>) => void) {\n  const substate = state[getMutationCacheKey(id)];\n  if (substate) {\n    update(substate);\n  }\n}\nconst initialState = {} as any;\nexport function buildSlice({\n  reducerPath,\n  queryThunk,\n  mutationThunk,\n  serializeQueryArgs,\n  context: {\n    endpointDefinitions: definitions,\n    apiUid,\n    extractRehydrationInfo,\n    hasRehydrationInfo\n  },\n  assertTagType,\n  config\n}: {\n  reducerPath: string;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  context: ApiContext<EndpointDefinitions>;\n  assertTagType: AssertTagTypes;\n  config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;\n}) {\n  const resetApiState = createAction(`${reducerPath}/resetApiState`);\n  function writePendingCacheEntry(draft: QueryState<any>, arg: QueryThunkArg, upserting: boolean, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n    // requestStatus: 'pending'\n  } & {\n    startedTimeStamp: number;\n  }) {\n    draft[arg.queryCacheKey] ??= {\n      status: STATUS_UNINITIALIZED,\n      endpointName: arg.endpointName\n    };\n    updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n      substate.status = STATUS_PENDING;\n      substate.requestId = upserting && substate.requestId ?\n      // for `upsertQuery` **updates**, keep the current `requestId`\n      substate.requestId :\n      // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n      meta.requestId;\n      if (arg.originalArgs !== undefined) {\n        substate.originalArgs = arg.originalArgs;\n      }\n      substate.startedTimeStamp = meta.startedTimeStamp;\n      const endpointDefinition = definitions[meta.arg.endpointName];\n      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {\n        ;\n        (substate as InfiniteQuerySubState<any>).direction = arg.direction as InfiniteQueryDirection;\n      }\n    });\n  }\n  function writeFulfilledCacheEntry(draft: QueryState<any>, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n  } & {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n  }, payload: unknown, upserting: boolean) {\n    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, substate => {\n      if (substate.requestId !== meta.requestId && !upserting) return;\n      const {\n        merge\n      } = definitions[meta.arg.endpointName] as QueryDefinition<any, any, any, any>;\n      substate.status = STATUS_FULFILLED;\n      if (merge) {\n        if (substate.data !== undefined) {\n          const {\n            fulfilledTimeStamp,\n            arg,\n            baseQueryMeta,\n            requestId\n          } = meta;\n          // There's existing cache data. Let the user merge it in themselves.\n          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\n          // themselves inside of `merge()`. But, they might also want to return a new value.\n          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\n          let newData = createNextState(substate.data, draftSubstateData => {\n            // As usual with Immer, you can mutate _or_ return inside here, but not both\n            return merge(draftSubstateData, payload, {\n              arg: arg.originalArgs,\n              baseQueryMeta,\n              fulfilledTimeStamp,\n              requestId\n            });\n          });\n          substate.data = newData;\n        } else {\n          // Presumably a fresh request. Just cache the response data.\n          substate.data = payload;\n        }\n      } else {\n        // Assign or safely update the cache data.\n        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n      }\n      delete substate.error;\n      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n    });\n  }\n  const querySlice = createSlice({\n    name: `${reducerPath}/queries`,\n    initialState: initialState as QueryState<any>,\n    reducers: {\n      removeQueryResult: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey\n          }\n        }: PayloadAction<QuerySubstateIdentifier>) {\n          delete draft[queryCacheKey];\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier>()\n      },\n      cacheEntriesUpserted: {\n        reducer(draft, action: PayloadAction<ProcessedQueryUpsertEntry[], string, {\n          RTK_autoBatch: boolean;\n          requestId: string;\n          timestamp: number;\n        }>) {\n          for (const entry of action.payload) {\n            const {\n              queryDescription: arg,\n              value\n            } = entry;\n            writePendingCacheEntry(draft, arg, true, {\n              arg,\n              requestId: action.meta.requestId,\n              startedTimeStamp: action.meta.timestamp\n            });\n            writeFulfilledCacheEntry(draft, {\n              arg,\n              requestId: action.meta.requestId,\n              fulfilledTimeStamp: action.meta.timestamp,\n              baseQueryMeta: {}\n            }, value,\n            // We know we're upserting here\n            true);\n          }\n        },\n        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {\n          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(entry => {\n            const {\n              endpointName,\n              arg,\n              value\n            } = entry;\n            const endpointDefinition = definitions[endpointName];\n            const queryDescription: QueryThunkArg = {\n              type: ENDPOINT_QUERY as 'query',\n              endpointName,\n              originalArgs: entry.arg,\n              queryCacheKey: serializeQueryArgs({\n                queryArgs: arg,\n                endpointDefinition,\n                endpointName\n              })\n            };\n            return {\n              queryDescription,\n              value\n            };\n          });\n          const result = {\n            payload: queryDescriptions,\n            meta: {\n              [SHOULD_AUTOBATCH]: true,\n              requestId: nanoid(),\n              timestamp: Date.now()\n            }\n          };\n          return result;\n        }\n      },\n      queryResultPatched: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey,\n            patches\n          }\n        }: PayloadAction<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>) {\n          updateQuerySubstateIfExists(draft, queryCacheKey, substate => {\n            substate.data = applyPatches(substate.data as any, patches.concat());\n          });\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(queryThunk.pending, (draft, {\n        meta,\n        meta: {\n          arg\n        }\n      }) => {\n        const upserting = isUpsertQuery(arg);\n        writePendingCacheEntry(draft, arg, upserting, meta);\n      }).addCase(queryThunk.fulfilled, (draft, {\n        meta,\n        payload\n      }) => {\n        const upserting = isUpsertQuery(meta.arg);\n        writeFulfilledCacheEntry(draft, meta, payload, upserting);\n      }).addCase(queryThunk.rejected, (draft, {\n        meta: {\n          condition,\n          arg,\n          requestId\n        },\n        error,\n        payload\n      }) => {\n        updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n          if (condition) {\n            // request was aborted due to condition (another query already running)\n          } else {\n            // request failed\n            if (substate.requestId !== requestId) return;\n            substate.status = STATUS_REJECTED;\n            substate.error = (payload ?? error) as any;\n          }\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          queries\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(queries)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  const mutationSlice = createSlice({\n    name: `${reducerPath}/mutations`,\n    initialState: initialState as MutationState<any>,\n    reducers: {\n      removeMutationResult: {\n        reducer(draft, {\n          payload\n        }: PayloadAction<MutationSubstateIdentifier>) {\n          const cacheKey = getMutationCacheKey(payload);\n          if (cacheKey in draft) {\n            delete draft[cacheKey];\n          }\n        },\n        prepare: prepareAutoBatched<MutationSubstateIdentifier>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(mutationThunk.pending, (draft, {\n        meta,\n        meta: {\n          requestId,\n          arg,\n          startedTimeStamp\n        }\n      }) => {\n        if (!arg.track) return;\n        draft[getMutationCacheKey(meta)] = {\n          requestId,\n          status: STATUS_PENDING,\n          endpointName: arg.endpointName,\n          startedTimeStamp\n        };\n      }).addCase(mutationThunk.fulfilled, (draft, {\n        payload,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_FULFILLED;\n          substate.data = payload;\n          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n        });\n      }).addCase(mutationThunk.rejected, (draft, {\n        payload,\n        error,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_REJECTED;\n          substate.error = (payload ?? error) as any;\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          mutations\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(mutations)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) &&\n          // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n          key !== entry?.requestId) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  type CalculateProvidedByAction = UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>;\n  const initialInvalidationState: InvalidationState<string> = {\n    tags: {},\n    keys: {}\n  };\n  const invalidationSlice = createSlice({\n    name: `${reducerPath}/invalidation`,\n    initialState: initialInvalidationState,\n    reducers: {\n      updateProvidedBy: {\n        reducer(draft, action: PayloadAction<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>) {\n          for (const {\n            queryCacheKey,\n            providedTags\n          } of action.payload) {\n            removeCacheKeyFromTags(draft, queryCacheKey);\n            for (const {\n              type,\n              id\n            } of providedTags) {\n              const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n            }\n\n            // Remove readonly from the providedTags array\n            draft.keys[queryCacheKey] = providedTags as FullTagDescription<string>[];\n          }\n        },\n        prepare: prepareAutoBatched<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n        payload: {\n          queryCacheKey\n        }\n      }) => {\n        removeCacheKeyFromTags(draft, queryCacheKey);\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          provided\n        } = extractRehydrationInfo(action)!;\n        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {\n          for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n            const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n            for (const queryCacheKey of cacheKeys) {\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];\n            }\n          }\n        }\n      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n        writeProvidedTagsForQueries(draft, [action]);\n      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {\n        const mockActions: CalculateProvidedByAction[] = action.payload.map(({\n          queryDescription,\n          value\n        }) => {\n          return {\n            type: 'UNKNOWN',\n            payload: value,\n            meta: {\n              requestStatus: 'fulfilled',\n              requestId: 'UNKNOWN',\n              arg: queryDescription\n            }\n          };\n        });\n        writeProvidedTagsForQueries(draft, mockActions);\n      });\n    }\n  });\n  function removeCacheKeyFromTags(draft: InvalidationState<any>, queryCacheKey: QueryCacheKey) {\n    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);\n\n    // Delete this cache key from any existing tags that may have provided it\n    for (const tag of existingTags) {\n      const tagType = tag.type;\n      const tagId = tag.id ?? '__internal_without_id';\n      const tagSubscriptions = draft.tags[tagType]?.[tagId];\n      if (tagSubscriptions) {\n        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(qc => qc !== queryCacheKey);\n      }\n    }\n    delete draft.keys[queryCacheKey];\n  }\n  function writeProvidedTagsForQueries(draft: InvalidationState<string>, actions: CalculateProvidedByAction[]) {\n    const providedByEntries = actions.map(action => {\n      const providedTags = calculateProvidedByThunk(action, 'providesTags', definitions, assertTagType);\n      const {\n        queryCacheKey\n      } = action.meta.arg;\n      return {\n        queryCacheKey,\n        providedTags\n      };\n    });\n    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));\n  }\n\n  // Dummy slice to generate actions\n  const subscriptionSlice = createSlice({\n    name: `${reducerPath}/subscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      updateSubscriptionOptions(d, a: PayloadAction<{\n        endpointName: string;\n        requestId: string;\n        options: Subscribers[number];\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      unsubscribeQueryResult(d, a: PayloadAction<{\n        requestId: string;\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      internal_getRTKQSubscriptions() {}\n    }\n  });\n  const internalSubscriptionsSlice = createSlice({\n    name: `${reducerPath}/internalSubscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      subscriptionsUpdated: {\n        reducer(state, action: PayloadAction<Patch[]>) {\n          return applyPatches(state, action.payload);\n        },\n        prepare: prepareAutoBatched<Patch[]>()\n      }\n    }\n  });\n  const configSlice = createSlice({\n    name: `${reducerPath}/config`,\n    initialState: {\n      online: isOnline(),\n      focused: isDocumentVisible(),\n      middlewareRegistered: false,\n      ...config\n    } as ConfigState<string>,\n    reducers: {\n      middlewareRegistered(state, {\n        payload\n      }: PayloadAction<string>) {\n        state.middlewareRegistered = state.middlewareRegistered === 'conflict' || apiUid !== payload ? 'conflict' : true;\n      }\n    },\n    extraReducers: builder => {\n      builder.addCase(onOnline, state => {\n        state.online = true;\n      }).addCase(onOffline, state => {\n        state.online = false;\n      }).addCase(onFocus, state => {\n        state.focused = true;\n      }).addCase(onFocusLost, state => {\n        state.focused = false;\n      })\n      // update the state to be a new object to be picked up as a \"state change\"\n      // by redux-persist's `autoMergeLevel2`\n      .addMatcher(hasRehydrationInfo, draft => ({\n        ...draft\n      }));\n    }\n  });\n  const combinedReducer = combineReducers({\n    queries: querySlice.reducer,\n    mutations: mutationSlice.reducer,\n    provided: invalidationSlice.reducer,\n    subscriptions: internalSubscriptionsSlice.reducer,\n    config: configSlice.reducer\n  });\n  const reducer: typeof combinedReducer = (state, action) => combinedReducer(resetApiState.match(action) ? undefined : state, action);\n  const actions = {\n    ...configSlice.actions,\n    ...querySlice.actions,\n    ...subscriptionSlice.actions,\n    ...internalSubscriptionsSlice.actions,\n    ...mutationSlice.actions,\n    ...invalidationSlice.actions,\n    resetApiState\n  };\n  return {\n    reducer,\n    actions\n  };\n}\nexport type SliceActions = ReturnType<typeof buildSlice>['actions'];","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, ReducerPathFrom, TagDescription, TagTypesFrom } from '../endpointDefinitions';\nimport { expandTagDescription } from '../endpointDefinitions';\nimport { filterMap, isNotNullish } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationSubState, QueryCacheKey, QueryState, QuerySubState, RequestStatusFlags, RootState as _RootState, QueryStatus } from './apiState';\nimport { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState';\nimport { getMutationCacheKey } from './buildSlice';\nimport type { createSelector as _createSelector } from './rtkImports';\nimport { createNextState } from './rtkImports';\nimport { type AllQueryKeys, getNextPageParam, getPreviousPageParam } from './buildThunks';\nexport type SkipToken = typeof skipToken;\n/**\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\n * instead of the query argument to get the same effect as if setting\n * `skip: true` in the query options.\n *\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\n * and TypeScript complains about it because `arg` is not allowed to be passed\n * in as `undefined`, such as\n *\n * ```ts\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\n * useSomeQuery(arg, { skip: !!arg })\n * ```\n *\n * ```ts\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\n * useSomeQuery(arg ?? skipToken)\n * ```\n *\n * If passed directly into a query or mutation selector, that selector will always\n * return an uninitialized state.\n */\nexport const skipToken = /* @__PURE__ */Symbol.for('RTKQ/skipToken');\nexport type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: QueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: InfiniteQueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: MutationResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\ntype QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;\nexport type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;\ntype InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;\nexport type InfiniteQueryResultFlags = {\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n  isFetchNextPageError: boolean;\n  isFetchPreviousPageError: boolean;\n};\nexport type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;\ntype MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {\n  requestId: string | undefined;\n  fixedCacheKey: string | undefined;\n} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;\nexport type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;\nconst initialSubState: QuerySubState<any> = {\n  status: STATUS_UNINITIALIZED\n};\n\n// abuse immer to freeze default states\nconst defaultQuerySubState = /* @__PURE__ */createNextState(initialSubState, () => {});\nconst defaultMutationSubState = /* @__PURE__ */createNextState(initialSubState as MutationSubState<any>, () => {});\nexport type AllSelectors = ReturnType<typeof buildSelectors>;\nexport function buildSelectors<Definitions extends EndpointDefinitions, ReducerPath extends string>({\n  serializeQueryArgs,\n  reducerPath,\n  createSelector\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  reducerPath: ReducerPath;\n  createSelector: typeof _createSelector;\n}) {\n  type RootState = _RootState<Definitions, string, string>;\n  const selectSkippedQuery = (state: RootState) => defaultQuerySubState;\n  const selectSkippedMutation = (state: RootState) => defaultMutationSubState;\n  return {\n    buildQuerySelector,\n    buildInfiniteQuerySelector,\n    buildMutationSelector,\n    selectInvalidatedBy,\n    selectCachedArgsForQuery,\n    selectApiState,\n    selectQueries,\n    selectMutations,\n    selectQueryEntry,\n    selectConfig\n  };\n  function withRequestFlags<T extends {\n    status: QueryStatus;\n  }>(substate: T): T & RequestStatusFlags {\n    return {\n      ...substate,\n      ...getRequestStatusFlags(substate.status)\n    };\n  }\n  function selectApiState(rootState: RootState) {\n    const state = rootState[reducerPath];\n    if (process.env.NODE_ENV !== 'production') {\n      if (!state) {\n        if ((selectApiState as any).triggered) return state;\n        (selectApiState as any).triggered = true;\n        console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n      }\n    }\n    return state;\n  }\n  function selectQueries(rootState: RootState) {\n    return selectApiState(rootState)?.queries;\n  }\n  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {\n    return selectQueries(rootState)?.[cacheKey];\n  }\n  function selectMutations(rootState: RootState) {\n    return selectApiState(rootState)?.mutations;\n  }\n  function selectConfig(rootState: RootState) {\n    return selectApiState(rootState)?.config;\n  }\n  function buildAnyQuerySelector(endpointName: string, endpointDefinition: EndpointDefinition<any, any, any, any>, combiner: <T extends {\n    status: QueryStatus;\n  }>(substate: T) => T & RequestStatusFlags) {\n    return (queryArgs: any) => {\n      // Avoid calling serializeQueryArgs if the arg is skipToken\n      if (queryArgs === skipToken) {\n        return createSelector(selectSkippedQuery, combiner);\n      }\n      const serializedArgs = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      const selectQuerySubstate = (state: RootState) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;\n      return createSelector(selectQuerySubstate, combiner);\n    };\n  }\n  function buildQuerySelector(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags) as QueryResultSelectorFactory<any, RootState>;\n  }\n  function buildInfiniteQuerySelector(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const {\n      infiniteQueryOptions\n    } = endpointDefinition;\n    function withInfiniteQueryResultFlags<T extends {\n      status: QueryStatus;\n    }>(substate: T): T & RequestStatusFlags & InfiniteQueryResultFlags {\n      const stateWithRequestFlags = {\n        ...(substate as InfiniteQuerySubState<any>),\n        ...getRequestStatusFlags(substate.status)\n      };\n      const {\n        isLoading,\n        isError,\n        direction\n      } = stateWithRequestFlags;\n      const isForward = direction === 'forward';\n      const isBackward = direction === 'backward';\n      return {\n        ...stateWithRequestFlags,\n        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        isFetchingNextPage: isLoading && isForward,\n        isFetchingPreviousPage: isLoading && isBackward,\n        isFetchNextPageError: isError && isForward,\n        isFetchPreviousPageError: isError && isBackward\n      };\n    }\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>;\n  }\n  function buildMutationSelector() {\n    return (id => {\n      let mutationId: string | typeof skipToken;\n      if (typeof id === 'object') {\n        mutationId = getMutationCacheKey(id) ?? skipToken;\n      } else {\n        mutationId = id;\n      }\n      const selectMutationSubstate = (state: RootState) => selectApiState(state)?.mutations?.[mutationId as string] ?? defaultMutationSubState;\n      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n      return createSelector(finalSelectMutationSubstate, withRequestFlags);\n    }) as MutationResultSelectorFactory<any, RootState>;\n  }\n  function selectInvalidatedBy(state: RootState, tags: ReadonlyArray<TagDescription<string> | null | undefined>): Array<{\n    endpointName: string;\n    originalArgs: any;\n    queryCacheKey: QueryCacheKey;\n  }> {\n    const apiState = state[reducerPath];\n    const toInvalidate = new Set<QueryCacheKey>();\n    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);\n    for (const tag of finalTags) {\n      const provided = apiState.provided.tags[tag.type];\n      if (!provided) {\n        continue;\n      }\n      let invalidateSubscriptions = (tag.id !== undefined ?\n      // id given: invalidate all queries that provide this type & id\n      provided[tag.id] :\n      // no id: invalidate all queries that provide this type\n      Object.values(provided).flat()) ?? [];\n      for (const invalidate of invalidateSubscriptions) {\n        toInvalidate.add(invalidate);\n      }\n    }\n    return Array.from(toInvalidate.values()).flatMap(queryCacheKey => {\n      const querySubState = apiState.queries[queryCacheKey];\n      return querySubState ? {\n        queryCacheKey,\n        endpointName: querySubState.endpointName!,\n        originalArgs: querySubState.originalArgs\n      } : [];\n    });\n  }\n  function selectCachedArgsForQuery<QueryName extends AllQueryKeys<Definitions>>(state: RootState, queryName: QueryName): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {\n    return filterMap(Object.values(selectQueries(state) as QueryState<any>), (entry): entry is Exclude<QuerySubState<Definitions[QueryName]>, {\n      status: QueryStatus.uninitialized;\n    }> => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, entry => entry.originalArgs);\n  }\n  function getHasNextPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data) return false;\n    return getNextPageParam(options, data, queryArg) != null;\n  }\n  function getHasPreviousPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data || !options.getPreviousPageParam) return false;\n    return getPreviousPageParam(options, data, queryArg) != null;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { getEndpointDefinition, type Api, type ApiContext, type Module, type ModuleName } from './apiTypes';\nimport type { CombinedState } from './core/apiState';\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { EndpointBuilder, EndpointDefinitions, SchemaFailureConverter, SchemaFailureHandler, SchemaType } from './endpointDefinitions';\nimport { DefinitionType, ENDPOINT_INFINITEQUERY, ENDPOINT_MUTATION, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from './endpointDefinitions';\nimport { nanoid } from './core/rtkImports';\nimport type { UnknownAction } from '@reduxjs/toolkit';\nimport type { NoInfer } from './tsHelpers';\nimport { weakMapMemoize } from 'reselect';\nexport interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {\n  /**\n   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   // highlight-start\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  baseQuery: BaseQuery;\n  /**\n   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   tagTypes: ['Post', 'User'],\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  tagTypes?: readonly TagTypes[];\n  /**\n   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"apis.js\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\n   *\n   * const apiOne = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiOne',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   *\n   * const apiTwo = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiTwo',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   * ```\n   */\n  reducerPath?: ReducerPath;\n  /**\n   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\n   */\n  serializeQueryArgs?: SerializeQueryArgs<unknown>;\n  /**\n   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).\n   */\n  endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;\n  /**\n   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"keepUnusedDataFor example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts'\n   *     })\n   *   }),\n   *   // highlight-start\n   *   keepUnusedDataFor: 5\n   *   // highlight-end\n   * })\n   * ```\n   */\n  keepUnusedDataFor?: number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.\n   *\n   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.\n   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.\n   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.\n   *   This ensures that queries are always invalidated correctly and automatically \"batches\" invalidations of concurrent mutations.\n   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.\n   */\n  invalidationBehavior?: 'delayed' | 'immediately';\n  /**\n   * A function that is passed every dispatched action. If this returns something other than `undefined`,\n   * that return value will be used to rehydrate fulfilled & errored queries.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\n   * import type { Action, PayloadAction } from '@reduxjs/toolkit'\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import { HYDRATE } from 'next-redux-wrapper'\n   *\n   * type RootState = any; // normally inferred from state\n   *\n   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {\n   *   return action.type === HYDRATE\n   * }\n   *\n   * export const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   extractRehydrationInfo(action, { reducerPath }): any {\n   *     if (isHydrateAction(action)) {\n   *       return action.payload[reducerPath]\n   *     }\n   *   },\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // omitted\n   *   }),\n   * })\n   * ```\n   */\n  extractRehydrationInfo?: (action: UnknownAction, {\n    reducerPath\n  }: {\n    reducerPath: ReducerPath;\n  }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *     }),\n   *   }),\n   *   onSchemaFailure: (error, info) => {\n   *     console.error(error, info)\n   *   },\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   }),\n   *   catchSchemaFailure: (error, info) => ({\n   *     status: \"CUSTOM_ERROR\",\n   *     error: error.schemaName + \" failed validation\",\n   *     data: error.issues,\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type CreateApi<Modules extends ModuleName> = {\n  /**\n   * Creates a service to use in your application. Contains only the basic redux logic (the core module).\n   *\n   * @link https://redux-toolkit.js.org/rtk-query/api/createApi\n   */\n  <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;\n};\n\n/**\n * Builds a `createApi` method based on the provided `modules`.\n *\n * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api\n *\n * @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\n * @returns A `createApi` method using the provided `modules`.\n */\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']> {\n  return function baseCreateApi(options) {\n    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) => options.extractRehydrationInfo?.(action, {\n      reducerPath: (options.reducerPath ?? 'api') as any\n    }));\n    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\n      reducerPath: 'api',\n      keepUnusedDataFor: 60,\n      refetchOnMountOrArgChange: false,\n      refetchOnFocus: false,\n      refetchOnReconnect: false,\n      invalidationBehavior: 'delayed',\n      ...options,\n      extractRehydrationInfo,\n      serializeQueryArgs(queryArgsApi) {\n        let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\n          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs!;\n          finalSerializeQueryArgs = queryArgsApi => {\n            const initialResult = endpointSQA(queryArgsApi);\n            if (typeof initialResult === 'string') {\n              // If the user function returned a string, use it as-is\n              return initialResult;\n            } else {\n              // Assume they returned an object (such as a subset of the original\n              // query args) or a primitive, and serialize it ourselves\n              return defaultSerializeQueryArgs({\n                ...queryArgsApi,\n                queryArgs: initialResult\n              });\n            }\n          };\n        } else if (options.serializeQueryArgs) {\n          finalSerializeQueryArgs = options.serializeQueryArgs;\n        }\n        return finalSerializeQueryArgs(queryArgsApi);\n      },\n      tagTypes: [...(options.tagTypes || [])]\n    };\n    const context: ApiContext<EndpointDefinitions> = {\n      endpointDefinitions: {},\n      batch(fn) {\n        // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\n        fn();\n      },\n      apiUid: nanoid(),\n      extractRehydrationInfo,\n      hasRehydrationInfo: weakMapMemoize(action => extractRehydrationInfo(action) != null)\n    };\n    const api = {\n      injectEndpoints,\n      enhanceEndpoints({\n        addTagTypes,\n        endpoints\n      }) {\n        if (addTagTypes) {\n          for (const eT of addTagTypes) {\n            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\n              ;\n              (optionsWithDefaults.tagTypes as any[]).push(eT);\n            }\n          }\n        }\n        if (endpoints) {\n          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n            if (typeof partialDefinition === 'function') {\n              partialDefinition(getEndpointDefinition(context, endpointName));\n            } else {\n              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);\n            }\n          }\n        }\n        return api;\n      }\n    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>;\n    const initializedModules = modules.map(m => m.init(api as any, optionsWithDefaults as any, context));\n    function injectEndpoints(inject: Parameters<typeof api.injectEndpoints>[0]) {\n      const evaluatedEndpoints = inject.endpoints({\n        query: x => ({\n          ...x,\n          type: ENDPOINT_QUERY\n        }) as any,\n        mutation: x => ({\n          ...x,\n          type: ENDPOINT_MUTATION\n        }) as any,\n        infiniteQuery: x => ({\n          ...x,\n          type: ENDPOINT_INFINITEQUERY\n        }) as any\n      });\n      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n          if (inject.overrideExisting === 'throw') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          } else if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n            console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          }\n          continue;\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          if (isInfiniteQueryDefinition(definition)) {\n            const {\n              infiniteQueryOptions\n            } = definition;\n            const {\n              maxPages,\n              getPreviousPageParam\n            } = infiniteQueryOptions;\n            if (typeof maxPages === 'number') {\n              if (maxPages < 1) {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);\n              }\n              if (typeof getPreviousPageParam !== 'function') {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);\n              }\n            }\n          }\n        }\n        context.endpointDefinitions[endpointName] = definition;\n        for (const m of initializedModules) {\n          m.injectEndpoint(endpointName, definition);\n        }\n      }\n      return api as any;\n    }\n    return api.injectEndpoints({\n      endpoints: options.endpoints as any\n    });\n  };\n}","import type { QueryCacheKey } from './core/apiState';\nimport type { EndpointDefinition } from './endpointDefinitions';\nimport { isPlainObject } from './core/rtkImports';\nconst cache: WeakMap<any, string> | undefined = WeakMap ? new WeakMap() : undefined;\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\n  endpointName,\n  queryArgs\n}) => {\n  let serialized = '';\n  const cached = cache?.get(queryArgs);\n  if (typeof cached === 'string') {\n    serialized = cached;\n  } else {\n    const stringified = JSON.stringify(queryArgs, (key, value) => {\n      // Handle bigints\n      value = typeof value === 'bigint' ? {\n        $bigint: value.toString()\n      } : value;\n      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\n      value = isPlainObject(value) ? Object.keys(value).sort().reduce<any>((acc, key) => {\n        acc[key] = (value as any)[key];\n        return acc;\n      }, {}) : value;\n      return value;\n    });\n    if (isPlainObject(queryArgs)) {\n      cache?.set(queryArgs, stringified);\n    }\n    serialized = stringified;\n  }\n  return `${endpointName}(${serialized})`;\n};\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\n  queryArgs: QueryArgs;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => ReturnType;\nexport type InternalSerializeQueryArgs = (_: {\n  queryArgs: any;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => QueryCacheKey;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { BaseQueryFn } from './baseQueryTypes';\nexport const _NEVER = /* @__PURE__ */Symbol();\nexport type NEVER = typeof _NEVER;\n\n/**\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\n */\nexport function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}> {\n  return function () {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(33) : 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.');\n  };\n}","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import type { InternalHandlerBuilder, SubscriptionSelectors } from './types';\nimport type { SubscriptionInternalState, SubscriptionState } from '../apiState';\nimport { produceWithPatches } from '../../utils/immerImports';\nimport type { Action } from '@reduxjs/toolkit';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<[actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]> = ({\n  api,\n  queryThunk,\n  internalState,\n  mwApi\n}) => {\n  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n  let previousSubscriptions: SubscriptionState = null as unknown as SubscriptionState;\n  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null;\n  const {\n    updateSubscriptionOptions,\n    unsubscribeQueryResult\n  } = api.internalActions;\n\n  // Actually intentionally mutate the subscriptions state used in the middleware\n  // This is done to speed up perf when loading many components\n  const actuallyMutateSubscriptions = (currentSubscriptions: SubscriptionInternalState, action: Action) => {\n    if (updateSubscriptionOptions.match(action)) {\n      const {\n        queryCacheKey,\n        requestId,\n        options\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub?.has(requestId)) {\n        sub.set(requestId, options);\n      }\n      return true;\n    }\n    if (unsubscribeQueryResult.match(action)) {\n      const {\n        queryCacheKey,\n        requestId\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub) {\n        sub.delete(requestId);\n      }\n      return true;\n    }\n    if (api.internalActions.removeQueryResult.match(action)) {\n      currentSubscriptions.delete(action.payload.queryCacheKey);\n      return true;\n    }\n    if (queryThunk.pending.match(action)) {\n      const {\n        meta: {\n          arg,\n          requestId\n        }\n      } = action;\n      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n      if (arg.subscribe) {\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n      }\n      return true;\n    }\n    let mutated = false;\n    if (queryThunk.rejected.match(action)) {\n      const {\n        meta: {\n          condition,\n          arg,\n          requestId\n        }\n      } = action;\n      if (condition && arg.subscribe) {\n        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n        mutated = true;\n      }\n    }\n    return mutated;\n  };\n  const getSubscriptions = () => internalState.currentSubscriptions;\n  const getSubscriptionCount = (queryCacheKey: string) => {\n    const subscriptions = getSubscriptions();\n    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);\n    return subscriptionsForQueryArg?.size ?? 0;\n  };\n  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {\n    const subscriptions = getSubscriptions();\n    return !!subscriptions?.get(queryCacheKey)?.get(requestId);\n  };\n  const subscriptionSelectors: SubscriptionSelectors = {\n    getSubscriptions,\n    getSubscriptionCount,\n    isRequestSubscribed\n  };\n  function serializeSubscriptions(currentSubscriptions: SubscriptionInternalState): SubscriptionState {\n    // We now use nested Maps for subscriptions, instead of\n    // plain Records. Stringify this accordingly so we can\n    // convert it to the shape we need for the store.\n    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));\n  }\n  return (action, mwApi): [actionShouldContinue: boolean, result: SubscriptionSelectors | boolean] => {\n    if (!previousSubscriptions) {\n      // Initialize it the first time this handler runs\n      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);\n    }\n    if (api.util.resetApiState.match(action)) {\n      previousSubscriptions = {};\n      internalState.currentSubscriptions.clear();\n      updateSyncTimer = null;\n      return [true, false];\n    }\n\n    // Intercept requests by hooks to see if they're subscribed\n    // We return the internal state reference so that hooks\n    // can do their own checks to see if they're still active.\n    // It's stupid and hacky, but it does cut down on some dispatch calls.\n    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n      return [false, subscriptionSelectors];\n    }\n\n    // Update subscription data based on this action\n    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n    let actionShouldContinue = true;\n\n    // HACK Sneak the test-only polling state back out\n    if (process.env.NODE_ENV === 'test' && typeof action.type === 'string' && action.type === `${api.reducerPath}/getPolling`) {\n      return [false, internalState.currentPolls] as any;\n    }\n    if (didMutate) {\n      if (!updateSyncTimer) {\n        // We only use the subscription state for the Redux DevTools at this point,\n        // as the real data is kept here in the middleware.\n        // Given that, we can throttle synchronizing this state significantly to\n        // save on overall perf.\n        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.\n        updateSyncTimer = setTimeout(() => {\n          // Deep clone the current subscription data\n          const newSubscriptions: SubscriptionState = serializeSubscriptions(internalState.currentSubscriptions);\n          // Figure out a smaller diff between original and current\n          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);\n\n          // Sync the store state for visibility\n          mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n          // Save the cloned state for later reference\n          previousSubscriptions = newSubscriptions;\n          updateSyncTimer = null;\n        }, 500);\n      }\n      const isSubscriptionSliceAction = typeof action.type == 'string' && !!action.type.startsWith(subscriptionsPrefix);\n      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n    }\n    return [actionShouldContinue, false];\n  };\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { QueryDefinition } from '../../endpointDefinitions';\nimport type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState';\nimport { isAnyOf } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, QueryStateMeta, SubMiddlewareApi, TimeoutId } from './types';\nexport type ReferenceCacheCollection = never;\n\n/**\n * @example\n * ```ts\n * // codeblock-meta title=\"keepUnusedDataFor example\"\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => 'posts',\n *       // highlight-start\n *       keepUnusedDataFor: 5\n *       // highlight-end\n *     })\n *   })\n * })\n * ```\n */\nexport type CacheCollectionQueryExtraOptions = {\n  /**\n   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\n   *\n   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   */\n  keepUnusedDataFor?: number;\n};\n\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\n// it wraps and ends up executing immediately.\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647;\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1;\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  api,\n  queryThunk,\n  context,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectConfig\n  },\n  getRunningQueryThunk,\n  mwApi\n}) => {\n  const {\n    removeQueryResult,\n    unsubscribeQueryResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n  function anySubscriptionsRemainingForKey(queryCacheKey: string) {\n    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);\n    if (!subscriptions) {\n      return false;\n    }\n    const hasSubscriptions = subscriptions.size > 0;\n    return hasSubscriptions;\n  }\n  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {};\n  function abortAllPromises<T extends {\n    abort?: () => void;\n  }>(promiseMap: Map<string, T | undefined>): void {\n    for (const promise of promiseMap.values()) {\n      promise?.abort?.();\n    }\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    const state = mwApi.getState();\n    const config = selectConfig(state);\n    if (canTriggerUnsubscribe(action)) {\n      let queryCacheKeys: QueryCacheKey[];\n      if (cacheEntriesUpserted.match(action)) {\n        queryCacheKeys = action.payload.map(entry => entry.queryDescription.queryCacheKey);\n      } else {\n        const {\n          queryCacheKey\n        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n        queryCacheKeys = [queryCacheKey];\n      }\n      handleUnsubscribeMany(queryCacheKeys, mwApi, config);\n    }\n    if (api.util.resetApiState.match(action)) {\n      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n        if (timeout) clearTimeout(timeout);\n        delete currentRemovalTimeouts[key];\n      }\n      abortAllPromises(internalState.runningQueries);\n      abortAllPromises(internalState.runningMutations);\n    }\n    if (context.hasRehydrationInfo(action)) {\n      const {\n        queries\n      } = context.extractRehydrationInfo(action)!;\n      // Gotcha:\n      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\n      // will be used instead of the endpoint-specific one.\n      handleUnsubscribeMany(Object.keys(queries) as QueryCacheKey[], mwApi, config);\n    }\n  };\n  function handleUnsubscribeMany(cacheKeys: QueryCacheKey[], api: SubMiddlewareApi, config: ConfigState<string>) {\n    const state = api.getState();\n    for (const queryCacheKey of cacheKeys) {\n      const entry = selectQueryEntry(state, queryCacheKey);\n      if (entry?.endpointName) {\n        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config);\n      }\n    }\n  }\n  function handleUnsubscribe(queryCacheKey: QueryCacheKey, endpointName: string, api: SubMiddlewareApi, config: ConfigState<string>) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName) as QueryDefinition<any, any, any, any>;\n    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n    if (keepUnusedDataFor === Infinity) {\n      // Hey, user said keep this forever!\n      return;\n    }\n    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\n    // clamping the max value to be at most 1000ms less than the 32-bit max.\n    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\n    // Also avoid negative values too.\n    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n      const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n      if (currentTimeout) {\n        clearTimeout(currentTimeout);\n      }\n      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n          // Try to abort any running query for this cache key\n          const entry = selectQueryEntry(api.getState(), queryCacheKey);\n          if (entry?.endpointName) {\n            const runningQuery = api.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));\n            runningQuery?.abort();\n          }\n          api.dispatch(removeQueryResult({\n            queryCacheKey\n          }));\n        }\n        delete currentRemovalTimeouts![queryCacheKey];\n      }, finalKeepUnusedDataFor * 1000);\n    }\n  }\n  return handler;\n};","import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn, BaseQueryMeta, BaseQueryResult } from '../../baseQueryTypes';\nimport type { BaseEndpointDefinition, DefinitionType } from '../../endpointDefinitions';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { QueryCacheKey, RootState } from '../apiState';\nimport type { MutationResultSelectorResult, QueryResultSelectorResult } from '../buildSelectors';\nimport { getMutationCacheKey } from '../buildSlice';\nimport type { PatchCollection, Recipe } from '../buildThunks';\nimport { isAsyncThunkAction, isFulfilled } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseWithKnownReason, SubMiddlewareApi } from './types';\nimport { getEndpointDefinition } from '@internal/query/apiTypes';\nexport type ReferenceCacheLifecycle = never;\nexport interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): QueryResultSelectorResult<{\n    type: DefinitionType.query;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n  /**\n   * Updates the current cache entry value.\n   * For documentation see `api.util.updateQueryData`.\n   */\n  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;\n}\nexport type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): MutationResultSelectorResult<{\n    type: DefinitionType.mutation;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n};\ntype LifecycleApi<ReducerPath extends string = string> = {\n  /**\n   * The dispatch method for the store\n   */\n  dispatch: ThunkDispatch<any, any, UnknownAction>;\n  /**\n   * A method to get the current state\n   */\n  getState(): RootState<any, any, ReducerPath>;\n  /**\n   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\n   */\n  extra: unknown;\n  /**\n   * A unique ID generated for the mutation\n   */\n  requestId: string;\n};\ntype CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {\n  /**\n   * Promise that will resolve with the first value for this cache key.\n   * This allows you to `await` until an actual value is in cache.\n   *\n   * If the cache entry is removed from the cache before any value has ever\n   * been resolved, this Promise will reject with\n   * `new Error('Promise never resolved before cacheEntryRemoved.')`\n   * to prevent memory leaks.\n   * You can just re-throw that error (or not handle it at all) -\n   * it will be caught outside of `cacheEntryAdded`.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  cacheDataLoaded: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: MetaType;\n  }, typeof neverResolvedError>;\n  /**\n   * Promise that allows you to wait for the point in time when the cache entry\n   * has been removed from the cache, by not being used/subscribed to any more\n   * in the application for too long or by dispatching `api.util.resetApiState`.\n   */\n  cacheEntryRemoved: Promise<void>;\n};\nexport interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\nexport type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;\nexport type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nconst neverResolvedError = new Error('Promise never resolved before cacheEntryRemoved.') as Error & {\n  message: 'Promise never resolved before cacheEntryRemoved.';\n};\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  reducerPath,\n  context,\n  queryThunk,\n  mutationThunk,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectApiState\n  }\n}) => {\n  const isQueryThunk = isAsyncThunkAction(queryThunk);\n  const isMutationThunk = isAsyncThunkAction(mutationThunk);\n  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    valueResolved?(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    cacheEntryRemoved(): void;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const {\n    removeQueryResult,\n    removeMutationResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  function resolveLifecycleEntry(cacheKey: string, data: unknown, meta: unknown) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle?.valueResolved) {\n      lifecycle.valueResolved({\n        data,\n        meta\n      });\n      delete lifecycle.valueResolved;\n    }\n  }\n  function removeLifecycleEntry(cacheKey: string) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle) {\n      delete lifecycleMap[cacheKey];\n      lifecycle.cacheEntryRemoved();\n    }\n  }\n  function getActionMetaFields(action: ReturnType<typeof queryThunk.pending> | ReturnType<typeof mutationThunk.pending>) {\n    const {\n      arg,\n      requestId\n    } = action.meta;\n    const {\n      endpointName,\n      originalArgs\n    } = arg;\n    return [endpointName, originalArgs, requestId] as const;\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi, stateBefore) => {\n    const cacheKey = getCacheKey(action) as QueryCacheKey;\n    function checkForNewCacheKey(endpointName: string, cacheKey: QueryCacheKey, requestId: string, originalArgs: unknown) {\n      const oldEntry = selectQueryEntry(stateBefore, cacheKey);\n      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey);\n      if (!oldEntry && newEntry) {\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    }\n    if (queryThunk.pending.match(action)) {\n      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);\n    } else if (cacheEntriesUpserted.match(action)) {\n      for (const {\n        queryDescription,\n        value\n      } of action.payload) {\n        const {\n          endpointName,\n          originalArgs,\n          queryCacheKey\n        } = queryDescription;\n        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n        resolveLifecycleEntry(queryCacheKey, value, {});\n      }\n    } else if (mutationThunk.pending.match(action)) {\n      const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n      if (state) {\n        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    } else if (isFulfilledThunk(action)) {\n      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {\n      removeLifecycleEntry(cacheKey);\n    } else if (api.util.resetApiState.match(action)) {\n      for (const cacheKey of Object.keys(lifecycleMap)) {\n        removeLifecycleEntry(cacheKey);\n      }\n    }\n  };\n  function getCacheKey(action: any) {\n    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n    if (isMutationThunk(action)) {\n      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n    }\n    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;\n    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n    return '';\n  }\n  function handleNewKey(endpointName: string, originalArgs: any, queryCacheKey: string, mwApi: SubMiddlewareApi, requestId: string) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName);\n    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n    if (!onCacheEntryAdded) return;\n    const lifecycle = {} as CacheLifecycle;\n    const cacheEntryRemoved = new Promise<void>(resolve => {\n      lifecycle.cacheEntryRemoved = resolve;\n    });\n    const cacheDataLoaded: PromiseWithKnownReason<{\n      data: unknown;\n      meta: unknown;\n    }, typeof neverResolvedError> = Promise.race([new Promise<{\n      data: unknown;\n      meta: unknown;\n    }>(resolve => {\n      lifecycle.valueResolved = resolve;\n    }), cacheEntryRemoved.then(() => {\n      throw neverResolvedError;\n    })]);\n    // prevent uncaught promise rejections from happening.\n    // if the original promise is used in any way, that will create a new promise that will throw again\n    cacheDataLoaded.catch(() => {});\n    lifecycleMap[queryCacheKey] = lifecycle;\n    const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);\n    const extra = mwApi.dispatch((_, __, extra) => extra);\n    const lifecycleApi = {\n      ...mwApi,\n      getCacheEntry: () => selector(mwApi.getState()),\n      requestId,\n      extra,\n      updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n      cacheDataLoaded,\n      cacheEntryRemoved\n    };\n    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any);\n    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\n    Promise.resolve(runningHandler).catch(e => {\n      if (e === neverResolvedError) return;\n      throw e;\n    });\n  }\n  return handler;\n};","import type { InternalHandlerBuilder } from './types';\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\n  api,\n  context: {\n    apiUid\n  },\n  reducerPath\n}) => {\n  return (action, mwApi) => {\n    if (api.util.resetApiState.match(action)) {\n      // dispatch after api reset\n      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === 'conflict') {\n        console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === 'api' ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ''}`);\n      }\n    }\n  };\n};","import { isAnyOf, isFulfilled, isRejected, isRejectedWithValue } from '../rtkImports';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport { calculateProvidedBy } from '../../endpointDefinitions';\nimport type { CombinedState, QueryCacheKey } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport { calculateProvidedByThunk } from '../buildThunks';\nimport type { SubMiddlewareApi, InternalHandlerBuilder, ApiMiddlewareInternalHandler } from './types';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  context: {\n    endpointDefinitions\n  },\n  mutationThunk,\n  queryThunk,\n  api,\n  assertTagType,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));\n  let pendingTagInvalidations: FullTagDescription<string>[] = [];\n  // Track via counter so we can avoid iterating over state every time\n  let pendingRequestCount = 0;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {\n      pendingRequestCount++;\n    }\n    if (isQueryEnd(action)) {\n      pendingRequestCount = Math.max(0, pendingRequestCount - 1);\n    }\n    if (isThunkActionWithTags(action)) {\n      invalidateTags(calculateProvidedByThunk(action, 'invalidatesTags', endpointDefinitions, assertTagType), mwApi);\n    } else if (isQueryEnd(action)) {\n      invalidateTags([], mwApi);\n    } else if (api.util.invalidateTags.match(action)) {\n      invalidateTags(calculateProvidedBy(action.payload, undefined, undefined, undefined, undefined, assertTagType), mwApi);\n    }\n  };\n  function hasPendingRequests() {\n    return pendingRequestCount > 0;\n  }\n  function invalidateTags(newTags: readonly FullTagDescription<string>[], mwApi: SubMiddlewareApi) {\n    const rootState = mwApi.getState();\n    const state = rootState[reducerPath];\n    pendingTagInvalidations.push(...newTags);\n    if (state.config.invalidationBehavior === 'delayed' && hasPendingRequests()) {\n      return;\n    }\n    const tags = pendingTagInvalidations;\n    pendingTagInvalidations = [];\n    if (tags.length === 0) return;\n    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n    context.batch(() => {\n      const valuesArray = Array.from(toInvalidate.values());\n      for (const {\n        queryCacheKey\n      } of valuesArray) {\n        const querySubState = state.queries[queryCacheKey];\n        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);\n        if (querySubState) {\n          if (subscriptionSubState.size === 0) {\n            mwApi.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            mwApi.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { QueryCacheKey, QuerySubstateIdentifier, Subscribers, SubscribersInternal } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryStateMeta, SubMiddlewareApi, TimeoutId, InternalHandlerBuilder, ApiMiddlewareInternalHandler, InternalMiddlewareState } from './types';\nexport const buildPollingHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  queryThunk,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    currentPolls,\n    currentSubscriptions\n  } = internalState;\n\n  // Batching state for polling updates\n  const pendingPollingUpdates = new Set<string>();\n  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);\n    }\n    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);\n    }\n    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n      startNextPoll(action.meta.arg, mwApi);\n    }\n    if (api.util.resetApiState.match(action)) {\n      clearPolls();\n      // Clear any pending updates\n      if (pollingUpdateTimer) {\n        clearTimeout(pollingUpdateTimer);\n        pollingUpdateTimer = null;\n      }\n      pendingPollingUpdates.clear();\n    }\n  };\n  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {\n    pendingPollingUpdates.add(queryCacheKey);\n    if (!pollingUpdateTimer) {\n      pollingUpdateTimer = setTimeout(() => {\n        // Process all pending updates in a single batch\n        for (const key of pendingPollingUpdates) {\n          updatePollingInterval({\n            queryCacheKey: key as any\n          }, api);\n        }\n        pendingPollingUpdates.clear();\n        pollingUpdateTimer = null;\n      }, 0);\n    }\n  }\n  function startNextPoll({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;\n    const {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    } = findLowestPollingInterval(subscriptions);\n    if (!Number.isFinite(lowestPollingInterval)) return;\n    const currentPoll = currentPolls.get(queryCacheKey);\n    if (currentPoll?.timeout) {\n      clearTimeout(currentPoll.timeout);\n      currentPoll.timeout = undefined;\n    }\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    currentPolls.set(queryCacheKey, {\n      nextPollTimestamp,\n      pollingInterval: lowestPollingInterval,\n      timeout: setTimeout(() => {\n        if (state.config.focused || !skipPollingIfUnfocused) {\n          api.dispatch(refetchQuery(querySubState));\n        }\n        startNextPoll({\n          queryCacheKey\n        }, api);\n      }, lowestPollingInterval)\n    });\n  }\n  function updatePollingInterval({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {\n      return;\n    }\n    const {\n      lowestPollingInterval\n    } = findLowestPollingInterval(subscriptions);\n\n    // HACK add extra data to track how many times this has been called in tests\n    // yes we're mutating a nonexistent field on a Map here\n    if (process.env.NODE_ENV === 'test') {\n      const updateCounters = (currentPolls as any).pollUpdateCounters ??= {};\n      updateCounters[queryCacheKey] ??= 0;\n      updateCounters[queryCacheKey]++;\n    }\n    if (!Number.isFinite(lowestPollingInterval)) {\n      cleanupPollForKey(queryCacheKey);\n      return;\n    }\n    const currentPoll = currentPolls.get(queryCacheKey);\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n      startNextPoll({\n        queryCacheKey\n      }, api);\n    }\n  }\n  function cleanupPollForKey(key: string) {\n    const existingPoll = currentPolls.get(key);\n    if (existingPoll?.timeout) {\n      clearTimeout(existingPoll.timeout);\n    }\n    currentPolls.delete(key);\n  }\n  function clearPolls() {\n    for (const key of currentPolls.keys()) {\n      cleanupPollForKey(key);\n    }\n  }\n  function findLowestPollingInterval(subscribers: SubscribersInternal = new Map()) {\n    let skipPollingIfUnfocused: boolean | undefined = false;\n    let lowestPollingInterval = Number.POSITIVE_INFINITY;\n    for (const entry of subscribers.values()) {\n      if (!!entry.pollingInterval) {\n        lowestPollingInterval = Math.min(entry.pollingInterval!, lowestPollingInterval);\n        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;\n      }\n    }\n    return {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    };\n  }\n  return handler;\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { BaseQueryError, BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { Recipe } from '../buildThunks';\nimport { isFulfilled, isPending, isRejected } from '../rtkImports';\nimport type { MutationBaseLifecycleApi, QueryBaseLifecycleApi } from './cacheLifecycle';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseConstructorWithKnownReason, PromiseWithKnownReason } from './types';\nexport type ReferenceQueryLifecycle = never;\ntype QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {\n  /**\n   * Promise that will resolve with the (transformed) query result.\n   *\n   * If the query fails, this promise will reject with the error.\n   *\n   * This allows you to `await` for the query to finish.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  queryFulfilled: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: BaseQueryMeta<BaseQuery>;\n  }, QueryFulfilledRejectionReason<BaseQuery>>;\n};\ntype QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {\n  error: BaseQueryError<BaseQuery>;\n  /**\n   * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\n   */\n  isUnhandledError: false;\n  /**\n   * The `meta` returned by the `baseQuery`\n   */\n  meta: BaseQueryMeta<BaseQuery>;\n} | {\n  error: unknown;\n  meta?: undefined;\n  /**\n   * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\n   * There can not be made any assumption about the shape of `error`.\n   */\n  isUnhandledError: true;\n};\nexport type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used to perform side-effects throughout the lifecycle of the query.\n   *\n   * @example\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * import { messageCreated } from './notificationsSlice\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {\n   *         // `onStart` side-effect\n   *         dispatch(messageCreated('Fetching posts...'))\n   *         try {\n   *           const { data } = await queryFulfilled\n   *           // `onSuccess` side-effect\n   *           dispatch(messageCreated('Posts received!'))\n   *         } catch (err) {\n   *           // `onError` side-effect\n   *           dispatch(messageCreated('Error fetching posts!'))\n   *         }\n   *       }\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used for `optimistic updates`.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       providesTags: ['Post'],\n   *     }),\n   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\n   *       query: ({ id, ...patch }) => ({\n   *         url: `post/${id}`,\n   *         method: 'PATCH',\n   *         body: patch,\n   *       }),\n   *       invalidatesTags: ['Post'],\n   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\n   *         const patchResult = dispatch(\n   *           api.util.updateQueryData('getPost', id, (draft) => {\n   *             Object.assign(draft, patch)\n   *           })\n   *         )\n   *         try {\n   *           await queryFulfilled\n   *         } catch {\n   *           patchResult.undo()\n   *         }\n   *       },\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {}\nexport type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific query.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, QueryArgument>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedQueryOnQueryStarted<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async (queryArgument, { dispatch, queryFulfilled }) => {\n *   const result = await queryFulfilled\n *\n *   const { posts } = result.data\n *\n *   // Pre-fill the individual post entries with the results\n *   // from the list endpoint query\n *   dispatch(\n *     baseApiSlice.util.upsertQueryEntries(\n *       posts.map((post) => ({\n *         endpointName: 'getPostById',\n *         arg: post.id,\n *         value: post,\n *       })),\n *     ),\n *   )\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({\n *       query: (userId) => `/posts/user/${userId}`,\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific mutation.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = Pick<Post, 'id'> & Partial<Post>\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, number>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedMutationOnQueryStarted<\n *   Post,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {\n *   const patchCollection = dispatch(\n *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {\n *       Object.assign(draftPost, patch)\n *     }),\n *   )\n *\n *   try {\n *     await queryFulfilled\n *   } catch {\n *     patchCollection.undo()\n *   }\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({\n *       query: (body) => ({\n *         url: `posts/add`,\n *         method: 'POST',\n *         body,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *\n *     updatePost: build.mutation<Post, QueryArgument>({\n *       query: ({ id, ...patch }) => ({\n *         url: `post/${id}`,\n *         method: 'PATCH',\n *         body: patch,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  context,\n  queryThunk,\n  mutationThunk\n}) => {\n  const isPendingThunk = isPending(queryThunk, mutationThunk);\n  const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    resolve(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    reject(value: QueryFulfilledRejectionReason<any>): unknown;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (isPendingThunk(action)) {\n      const {\n        requestId,\n        arg: {\n          endpointName,\n          originalArgs\n        }\n      } = action.meta;\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const onQueryStarted = endpointDefinition?.onQueryStarted;\n      if (onQueryStarted) {\n        const lifecycle = {} as CacheLifecycle;\n        const queryFulfilled = new (Promise as PromiseConstructorWithKnownReason)<{\n          data: unknown;\n          meta: unknown;\n        }, QueryFulfilledRejectionReason<any>>((resolve, reject) => {\n          lifecycle.resolve = resolve;\n          lifecycle.reject = reject;\n        });\n        // prevent uncaught promise rejections from happening.\n        // if the original promise is used in any way, that will create a new promise that will throw again\n        queryFulfilled.catch(() => {});\n        lifecycleMap[requestId] = lifecycle;\n        const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);\n        const extra = mwApi.dispatch((_, __, extra) => extra);\n        const lifecycleApi = {\n          ...mwApi,\n          getCacheEntry: () => selector(mwApi.getState()),\n          requestId,\n          extra,\n          updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n          queryFulfilled\n        };\n        onQueryStarted(originalArgs, lifecycleApi as any);\n      }\n    } else if (isFullfilledThunk(action)) {\n      const {\n        requestId,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.resolve({\n        data: action.payload,\n        meta: baseQueryMeta\n      });\n      delete lifecycleMap[requestId];\n    } else if (isRejectedThunk(action)) {\n      const {\n        requestId,\n        rejectedWithValue,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.reject({\n        error: action.payload ?? action.error,\n        isUnhandledError: !rejectedWithValue,\n        meta: baseQueryMeta as any\n      });\n      delete lifecycleMap[requestId];\n    }\n  };\n  return handler;\n};","import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryCacheKey } from '../apiState';\nimport { onFocus, onOnline } from '../setupListeners';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, SubMiddlewareApi } from './types';\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (onFocus.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnFocus');\n    }\n    if (onOnline.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnReconnect');\n    }\n  };\n  function refetchValidQueries(api: SubMiddlewareApi, type: 'refetchOnFocus' | 'refetchOnReconnect') {\n    const state = api.getState()[reducerPath];\n    const queries = state.queries;\n    const subscriptions = internalState.currentSubscriptions;\n    context.batch(() => {\n      for (const queryCacheKey of subscriptions.keys()) {\n        const querySubState = queries[queryCacheKey];\n        const subscriptionSubState = subscriptions.get(queryCacheKey);\n        if (!subscriptionSubState || !querySubState) continue;\n        const values = [...subscriptionSubState.values()];\n        const shouldRefetch = values.some(sub => sub[type] === true) || values.every(sub => sub[type] === undefined) && state.config[type];\n        if (shouldRefetch) {\n          if (subscriptionSubState.size === 0) {\n            api.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            api.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { Action, Middleware, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState';\nimport type { QueryThunkArg } from '../buildThunks';\nimport { createAction, isAction } from '../rtkImports';\nimport { buildBatchedActionsHandler } from './batchActions';\nimport { buildCacheCollectionHandler } from './cacheCollection';\nimport { buildCacheLifecycleHandler } from './cacheLifecycle';\nimport { buildDevCheckHandler } from './devMiddleware';\nimport { buildInvalidationByTagsHandler } from './invalidationByTags';\nimport { buildPollingHandler } from './polling';\nimport { buildQueryLifecycleHandler } from './queryLifecycle';\nimport type { BuildMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState } from './types';\nimport { buildWindowEventHandler } from './windowEventHandling';\nimport type { ApiEndpointQuery } from '../module';\nexport type { ReferenceCacheCollection } from './cacheCollection';\nexport type { MutationCacheLifecycleApi, QueryCacheLifecycleApi, ReferenceCacheLifecycle } from './cacheLifecycle';\nexport type { MutationLifecycleApi, QueryLifecycleApi, ReferenceQueryLifecycle, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './queryLifecycle';\nexport type { SubscriptionSelectors } from './types';\nexport function buildMiddleware<Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\n  const {\n    reducerPath,\n    queryThunk,\n    api,\n    context,\n    getInternalState\n  } = input;\n  const {\n    apiUid\n  } = context;\n  const actions = {\n    invalidateTags: createAction<Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>>(`${reducerPath}/invalidateTags`)\n  };\n  const isThisApiSliceAction = (action: Action) => action.type.startsWith(`${reducerPath}/`);\n  const handlerBuilders: InternalHandlerBuilder[] = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n  const middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>> = mwApi => {\n    let initialized = false;\n    const internalState = getInternalState(mwApi.dispatch);\n    const builderArgs = {\n      ...(input as any as BuildMiddlewareInput<EndpointDefinitions, string, string>),\n      internalState,\n      refetchQuery,\n      isThisApiSliceAction,\n      mwApi\n    };\n    const handlers = handlerBuilders.map(build => build(builderArgs));\n    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n    const windowEventsHandler = buildWindowEventHandler(builderArgs);\n    return next => {\n      return action => {\n        if (!isAction(action)) {\n          return next(action);\n        }\n        if (!initialized) {\n          initialized = true;\n          // dispatch before any other action\n          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n        }\n        const mwApiWithNext = {\n          ...mwApi,\n          next\n        };\n        const stateBefore = mwApi.getState();\n        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n        let res: any;\n        if (actionShouldContinue) {\n          res = next(action);\n        } else {\n          res = internalProbeResult;\n        }\n        if (!!mwApi.getState()[reducerPath]) {\n          // Only run these checks if the middleware is registered okay\n\n          // This looks for actions that aren't specific to the API slice\n          windowEventsHandler(action, mwApiWithNext, stateBefore);\n          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n            // Only run these additional checks if the actions are part of the API slice,\n            // or the action has hydration-related data\n            for (const handler of handlers) {\n              handler(action, mwApiWithNext, stateBefore);\n            }\n          }\n        }\n        return res;\n      };\n    };\n  };\n  return {\n    middleware,\n    actions\n  };\n  function refetchQuery(querySubState: Exclude<QuerySubState<any>, {\n    status: QueryStatus.uninitialized;\n  }>) {\n    return (input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<any, any>).initiate(querySubState.originalArgs as any, {\n      subscribe: false,\n      forceRefetch: true\n    });\n  }\n}","/**\n * Note: this file should import all other files for type discovery and declaration merging\n */\nimport type { ActionCreatorWithPayload, Dispatch, Middleware, Reducer, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport { enablePatches } from '../utils/immerImports';\nimport type { Api, Module } from '../apiTypes';\nimport type { BaseQueryFn } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinitions, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, TagDescription } from '../endpointDefinitions';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { assertCast, safeAssign } from '../tsHelpers';\nimport type { CombinedState, MutationKeys, QueryKeys, RootState } from './apiState';\nimport type { BuildInitiateApiEndpointMutation, BuildInitiateApiEndpointQuery, MutationActionCreatorResult, QueryActionCreatorResult, InfiniteQueryActionCreatorResult, BuildInitiateApiEndpointInfiniteQuery } from './buildInitiate';\nimport { buildInitiate } from './buildInitiate';\nimport type { ReferenceCacheCollection, ReferenceCacheLifecycle, ReferenceQueryLifecycle } from './buildMiddleware';\nimport { buildMiddleware } from './buildMiddleware';\nimport type { BuildSelectorsApiEndpointInfiniteQuery, BuildSelectorsApiEndpointMutation, BuildSelectorsApiEndpointQuery } from './buildSelectors';\nimport { buildSelectors } from './buildSelectors';\nimport type { SliceActions, UpsertEntries } from './buildSlice';\nimport { buildSlice } from './buildSlice';\nimport type { AllQueryKeys, BuildThunksApiEndpointInfiniteQuery, BuildThunksApiEndpointMutation, BuildThunksApiEndpointQuery, PatchQueryDataThunk, QueryArgFromAnyQueryDefinition, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nimport { buildThunks } from './buildThunks';\nimport { createSelector as _createSelector } from './rtkImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nimport { getOrInsertComputed } from '../utils';\nimport type { CreateSelectorFunction } from 'reselect';\n\n/**\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\n *\n * @overloadSummary\n * `force`\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\n */\nexport type PrefetchOptions = {\n  ifOlderThan?: false | number;\n} | {\n  force?: boolean;\n};\nexport const coreModuleName = /* @__PURE__ */Symbol();\nexport type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;\nexport type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;\nexport interface ApiModules<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nBaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {\n  [coreModuleName]: {\n    /**\n     * This api's reducer should be mounted at `store[api.reducerPath]`.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducerPath: ReducerPath;\n    /**\n     * Internal actions not part of the public API. Note: These are subject to change at any given time.\n     */\n    internalActions: InternalActions;\n    /**\n     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;\n    /**\n     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;\n    /**\n     * A collection of utility thunks for various situations.\n     */\n    util: {\n      /**\n       * A thunk that (if dispatched) will return a specific running query, identified\n       * by `endpointName` and `arg`.\n       * If that query is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific query triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'query';\n      }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'infinitequery';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return a specific running mutation, identified\n       * by `endpointName` and `fixedCacheKey` or `requestId`.\n       * If that mutation is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific mutation triggered in any way,\n       * including via hook trigger functions or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {\n        type: 'mutation';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return all running queries.\n       *\n       * Useful for SSR scenarios to await all running queries triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;\n\n      /**\n       * A thunk that (if dispatched) will return all running mutations.\n       *\n       * Useful for SSR scenarios to await all running mutations triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;\n\n      /**\n       * A Redux thunk that can be used to manually trigger pre-fetching of data.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\n       *\n       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\n       *\n       * @example\n       *\n       * ```ts no-transpile\n       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\n       * ```\n       */\n      prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;\n      /**\n       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\n       *\n       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\n       *\n       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\n       *\n       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\n       *\n       * @example\n       *\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       * ```\n       */\n      updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\n       *\n       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\n       *\n       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\n       *\n       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\n       *\n       * @example\n       *\n       * ```ts\n       * await dispatch(\n       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\n       * )\n       * ```\n       */\n      upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n      /**\n       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\n       *\n       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\n       *\n       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\n       *\n       * @example\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       *\n       * // later\n       * dispatch(\n       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\n       * )\n       *\n       * // or\n       * patchCollection.undo()\n       * ```\n       */\n      patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.resetApiState())\n       * ```\n       */\n      resetApiState: SliceActions['resetApiState'];\n      upsertQueryEntries: UpsertEntries<Definitions>;\n\n      /**\n       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\n       *\n       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\n       *\n       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\n       *\n       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\n       *\n       * - `[TagType]`\n       * - `[{ type: TagType }]`\n       * - `[{ type: TagType, id: number | string }]`\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.invalidateTags(['Post']))\n       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\n       * dispatch(\n       *   api.util.invalidateTags([\n       *     { type: 'Post', id: 1 },\n       *     { type: 'Post', id: 'LIST' },\n       *   ])\n       * )\n       * ```\n       */\n      invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;\n\n      /**\n       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{\n        endpointName: string;\n        originalArgs: any;\n        queryCacheKey: string;\n      }>;\n\n      /**\n       * A function to select all arguments currently cached for a given endpoint.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;\n    };\n    /**\n     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\n     */\n    endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never };\n  };\n}\nexport interface ApiEndpointQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends QueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport interface ApiEndpointInfiniteQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends InfiniteQueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface ApiEndpointMutation<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends MutationDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport type ListenerActions = {\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n};\nexport type InternalActions = SliceActions & ListenerActions;\nexport interface CoreModuleOptions {\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\n *\n * @example\n * ```ts\n * const createBaseApi = buildCreateApi(coreModule());\n * ```\n */\nexport const coreModule = ({\n  createSelector = _createSelector\n}: CoreModuleOptions = {}): Module<CoreModule> => ({\n  name: coreModuleName,\n  init(api, {\n    baseQuery,\n    tagTypes,\n    reducerPath,\n    serializeQueryArgs,\n    keepUnusedDataFor,\n    refetchOnMountOrArgChange,\n    refetchOnFocus,\n    refetchOnReconnect,\n    invalidationBehavior,\n    onSchemaFailure,\n    catchSchemaFailure,\n    skipSchemaValidation\n  }, context) {\n    enablePatches();\n    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs);\n    const assertTagType: AssertTagTypes = tag => {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        if (!tagTypes.includes(tag.type as any)) {\n          console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n        }\n      }\n      return tag;\n    };\n    Object.assign(api, {\n      reducerPath,\n      endpoints: {},\n      internalActions: {\n        onOnline,\n        onOffline,\n        onFocus,\n        onFocusLost\n      },\n      util: {}\n    });\n    const selectors = buildSelectors({\n      serializeQueryArgs: serializeQueryArgs as any,\n      reducerPath,\n      createSelector\n    });\n    const {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery,\n      buildQuerySelector,\n      buildInfiniteQuerySelector,\n      buildMutationSelector\n    } = selectors;\n    safeAssign(api.util, {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery\n    });\n    const {\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      buildMatchThunkActions\n    } = buildThunks({\n      baseQuery,\n      reducerPath,\n      context,\n      api,\n      serializeQueryArgs,\n      assertTagType,\n      selectors,\n      onSchemaFailure,\n      catchSchemaFailure,\n      skipSchemaValidation\n    });\n    const {\n      reducer,\n      actions: sliceActions\n    } = buildSlice({\n      context,\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      serializeQueryArgs,\n      reducerPath,\n      assertTagType,\n      config: {\n        refetchOnFocus,\n        refetchOnReconnect,\n        refetchOnMountOrArgChange,\n        keepUnusedDataFor,\n        reducerPath,\n        invalidationBehavior\n      }\n    });\n    safeAssign(api.util, {\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      resetApiState: sliceActions.resetApiState,\n      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any\n    });\n    safeAssign(api.internalActions, sliceActions);\n    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>();\n    const getInternalState = (dispatch: Dispatch) => {\n      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({\n        currentSubscriptions: new Map(),\n        currentPolls: new Map(),\n        runningQueries: new Map(),\n        runningMutations: new Map()\n      }));\n      return state;\n    };\n    const {\n      buildInitiateQuery,\n      buildInitiateInfiniteQuery,\n      buildInitiateMutation,\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueriesThunk,\n      getRunningQueryThunk\n    } = buildInitiate({\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      serializeQueryArgs: serializeQueryArgs as any,\n      context,\n      getInternalState\n    });\n    safeAssign(api.util, {\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueryThunk,\n      getRunningQueriesThunk\n    });\n    const {\n      middleware,\n      actions: middlewareActions\n    } = buildMiddleware({\n      reducerPath,\n      context,\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      assertTagType,\n      selectors,\n      getRunningQueryThunk,\n      getInternalState\n    });\n    safeAssign(api.util, middlewareActions);\n    safeAssign(api, {\n      reducer: reducer as any,\n      middleware\n    });\n    return {\n      name: coreModuleName,\n      injectEndpoint(endpointName, definition) {\n        const anyApi = api as any as Api<any, Record<string, any>, string, string, CoreModule>;\n        const endpoint = anyApi.endpoints[endpointName] ??= {} as any;\n        if (isQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildQuerySelector(endpointName, definition),\n            initiate: buildInitiateQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n        if (isMutationDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildMutationSelector(),\n            initiate: buildInitiateMutation(endpointName)\n          }, buildMatchThunkActions(mutationThunk, endpointName));\n        }\n        if (isInfiniteQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildInfiniteQuerySelector(endpointName, definition),\n            initiate: buildInitiateInfiniteQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n      }\n    };\n  }\n});","import { buildCreateApi } from '../createApi';\nimport { coreModule } from './module';\nexport const createApi = /* @__PURE__ */buildCreateApi(coreModule());\nexport { QueryStatus } from './apiState';\nexport type { CombinedState, InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationKeys, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './apiState';\nexport type { InfiniteQueryActionCreatorResult, MutationActionCreatorResult, QueryActionCreatorResult, StartQueryActionCreatorOptions } from './buildInitiate';\nexport type { MutationCacheLifecycleApi, MutationLifecycleApi, QueryCacheLifecycleApi, QueryLifecycleApi, SubscriptionSelectors, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './buildMiddleware/index';\nexport { skipToken } from './buildSelectors';\nexport type { InfiniteQueryResultSelectorResult, MutationResultSelectorResult, QueryResultSelectorResult, SkipToken } from './buildSelectors';\nexport type { SliceActions } from './buildSlice';\nexport type { PatchQueryDataThunk, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nexport { coreModuleName } from './module';\nexport type { ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, CoreModule, InternalActions, PrefetchOptions, ThunkWithReturnValue } from './module';\nexport { setupListeners } from './setupListeners';\nexport { buildCreateApi, coreModule };"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEO,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,cAAW;AAJD,SAAAA;AAAA,GAAA;AAQL,IAAM,uBAAuB;AAC7B,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AA0BxB,SAAS,sBAAsB,QAAyC;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB,WAAW;AAAA,IAC5B,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB;AACF;;;AC3GA,SAAS,cAAc,aAAa,gBAAgB,kBAAkB,iBAAiB,iBAAiB,SAAS,SAAS,UAAU,WAAW,YAAY,aAAa,qBAAqB,oBAAoB,oBAAoB,kBAAkB,eAAe,cAAc;;;ACDpR,IAAMC,iBAAqC;AAEpC,SAAS,0BAA0B,QAAa,QAAkB;AACvE,MAAI,WAAW,UAAU,EAAEA,eAAc,MAAM,KAAKA,eAAc,MAAM,KAAK,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,MAAM,IAAI;AAC5H,WAAO;AAAA,EACT;AACA,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,MAAI,eAAe,QAAQ,WAAW,QAAQ;AAC9C,QAAM,WAAgB,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC;AACpD,aAAW,OAAO,SAAS;AACzB,aAAS,GAAG,IAAI,0BAA0B,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC;AAClE,QAAI,aAAc,gBAAe,OAAO,GAAG,MAAM,SAAS,GAAG;AAAA,EAC/D;AACA,SAAO,eAAe,SAAS;AACjC;;;ACfO,SAAS,UAAgB,OAAqB,WAAgD,QAAkD;AACrJ,SAAO,MAAM,OAAoB,CAAC,KAAK,MAAM,MAAM;AACjD,QAAI,UAAU,MAAa,CAAC,GAAG;AAC7B,UAAI,KAAK,OAAO,MAAa,CAAC,CAAC;AAAA,IACjC;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,EAAE,KAAK;AACd;;;ACJO,SAAS,cAAc,KAAa;AACzC,SAAO,IAAI,OAAO,SAAS,EAAE,KAAK,GAAG;AACvC;;;ACJO,SAAS,oBAA6B;AAE3C,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,oBAAoB;AACtC;;;ACXO,SAAS,aAAgB,GAAiC;AAC/D,SAAO,KAAK;AACd;AACO,SAAS,oBAAuB,KAAmB;AAH1D;AAIE,SAAO,CAAC,IAAI,gCAAK,aAAL,YAAiB,CAAC,CAAE,EAAE,OAAO,YAAY;AACvD;;;ACDO,SAAS,WAAW;AAEzB,SAAO,OAAO,cAAc,cAAc,OAAO,UAAU,WAAW,SAAY,OAAO,UAAU;AACrG;;;ACNA,IAAM,uBAAuB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AACnE,IAAM,sBAAsB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AAC3D,SAAS,SAAS,MAA0B,KAAiC;AAClF,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AACA,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO;AAAA,EACT;AACA,QAAM,YAAY,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,WAAW,GAAG,IAAI,MAAM;AACrE,SAAO,qBAAqB,IAAI;AAChC,QAAM,oBAAoB,GAAG;AAC7B,SAAO,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG;AAClC;;;ACLO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;AACO,IAAM,eAAe,MAAM,oBAAI,IAAI;;;ACfnC,IAAM,gBAAgB,CAAC,iBAAyB;AACrD,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,MAAM;AACf,UAAM,UAAU;AAChB,UAAM,OAAO;AACb,oBAAgB;AAAA;AAAA,MAEhB,OAAO,iBAAiB,cAAc,IAAI,aAAa,SAAS,IAAI,IAAI,OAAO,OAAO,IAAI,MAAM,OAAO,GAAG;AAAA,QACxG;AAAA,MACF,CAAC;AAAA,IAAC;AAAA,EACJ,GAAG,YAAY;AACf,SAAO,gBAAgB;AACzB;AAGO,IAAM,YAAY,IAAI,YAA2B;AAEtD,aAAW,UAAU,QAAS,KAAI,OAAO,QAAS,QAAO,YAAY,MAAM,OAAO,MAAM;AAGxF,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,UAAU,SAAS;AAC5B,WAAO,iBAAiB,SAAS,MAAM,gBAAgB,MAAM,OAAO,MAAM,GAAG;AAAA,MAC3E,QAAQ,gBAAgB;AAAA,MACxB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,gBAAgB;AACzB;;;ACHA,IAAM,iBAA+B,IAAI,SAAS,MAAM,GAAG,IAAI;AAC/D,IAAM,wBAAwB,CAAC,aAAuB,SAAS,UAAU,OAAO,SAAS,UAAU;AACnG,IAAM,2BAA2B,CAAC;AAAA;AAAA,EAAiC,yBAAyB,KAAK,QAAQ,IAAI,cAAc,KAAK,EAAE;AAAA;AA4ClI,SAAS,eAAe,KAAU;AAChC,MAAI,CAAC,cAAc,GAAG,GAAG;AACvB,WAAO;AAAA,EACT;AACA,QAAM,OAA4B,mBAC7B;AAEL,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,QAAI,MAAM,OAAW,QAAO,KAAK,CAAC;AAAA,EACpC;AACA,SAAO;AACT;AAGA,IAAM,gBAAgB,CAAC,SAAc,OAAO,SAAS,aAAa,cAAc,IAAI,KAAK,MAAM,QAAQ,IAAI,KAAK,OAAO,KAAK,WAAW;AAgFhI,SAAS,eAAe,KAYP,CAAC,GAA0F;AAZpF,eAC7B;AAAA;AAAA,IACA,iBAAiB,OAAK;AAAA,IACtB,UAAU;AAAA,IACV;AAAA,IACA,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,EAhLlB,IAsK+B,IAW1B,6BAX0B,IAW1B;AAAA,IAVH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,OAAO,UAAU,eAAe,YAAY,gBAAgB;AAC9D,YAAQ,KAAK,2HAA2H;AAAA,EAC1I;AACA,SAAO,OAAO,KAAK,KAAK,iBAAiB;AACvC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI;AACJ,QAQIC,MAAA,OAAO,OAAO,WAAW;AAAA,MAC3B,KAAK;AAAA,IACP,IAAI,KATF;AAAA;AAAA,MACA,UAAU,IAAI,QAAQ,iBAAiB,OAAO;AAAA,MAC9C,SAAS;AAAA,MACT,kBAAkB,wDAAyB;AAAA,MAC3C,iBAAiB,sDAAwB;AAAA,MACzC,UAAU;AAAA,IArMhB,IAuMQA,KADC,iBACDA,KADC;AAAA,MANH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,QAAI,SAAsB,gDACrB,mBADqB;AAAA,MAExB,QAAQ,UAAU,UAAU,IAAI,QAAQ,cAAc,OAAO,CAAC,IAAI,IAAI;AAAA,QACnE;AAEL,cAAU,IAAI,QAAQ,eAAe,OAAO,CAAC;AAC7C,WAAO,UAAW,MAAM,eAAe,SAAS;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,KAAM;AACP,UAAM,oBAAoB,cAAc,OAAO,IAAI;AAInD,QAAI,OAAO,QAAQ,QAAQ,CAAC,qBAAqB,OAAO,OAAO,SAAS,UAAU;AAChF,aAAO,QAAQ,OAAO,cAAc;AAAA,IACtC;AACA,QAAI,CAAC,OAAO,QAAQ,IAAI,cAAc,KAAK,mBAAmB;AAC5D,aAAO,QAAQ,IAAI,gBAAgB,eAAe;AAAA,IACpD;AACA,QAAI,qBAAqB,kBAAkB,OAAO,OAAO,GAAG;AAC1D,aAAO,OAAO,KAAK,UAAU,OAAO,MAAM,YAAY;AAAA,IACxD;AAGA,QAAI,CAAC,OAAO,QAAQ,IAAI,QAAQ,GAAG;AACjC,UAAI,oBAAoB,QAAQ;AAC9B,eAAO,QAAQ,IAAI,UAAU,kBAAkB;AAAA,MACjD,WAAW,oBAAoB,QAAQ;AACrC,eAAO,QAAQ,IAAI,UAAU,4BAA4B;AAAA,MAC3D;AAAA,IAEF;AACA,QAAI,QAAQ;AACV,YAAM,UAAU,CAAC,IAAI,QAAQ,GAAG,IAAI,MAAM;AAC1C,YAAM,QAAQ,mBAAmB,iBAAiB,MAAM,IAAI,IAAI,gBAAgB,eAAe,MAAM,CAAC;AACtG,aAAO,UAAU;AAAA,IACnB;AACA,UAAM,SAAS,SAAS,GAAG;AAC3B,UAAM,UAAU,IAAI,QAAQ,KAAK,MAAM;AACvC,UAAM,eAAe,IAAI,QAAQ,KAAK,MAAM;AAC5C,WAAO;AAAA,MACL,SAAS;AAAA,IACX;AACA,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,QAAQ,OAAO;AAAA,IAClC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,SAAS,aAAa,SAAS,OAAO,iBAAiB,eAAe,aAAa,iBAAiB,EAAE,SAAS,iBAAiB,kBAAkB;AAAA,UAClJ,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,gBAAgB,SAAS,MAAM;AACrC,SAAK,WAAW;AAChB,QAAI;AACJ,QAAI,eAAuB;AAC3B,QAAI;AACF,UAAI;AACJ,YAAM,QAAQ,IAAI;AAAA,QAAC,eAAe,UAAU,eAAe,EAAE,KAAK,OAAK,aAAa,GAAG,OAAK,sBAAsB,CAAC;AAAA;AAAA;AAAA,QAGnH,cAAc,KAAK,EAAE,KAAK,OAAK,eAAe,GAAG,MAAM;AAAA,QAAC,CAAC;AAAA,MAAC,CAAC;AAC3D,UAAI,oBAAqB,OAAM;AAAA,IACjC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,gBAAgB,SAAS;AAAA,UACzB,MAAM;AAAA,UACN,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe,UAAU,UAAU,IAAI;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA,IACF,IAAI;AAAA,MACF,OAAO;AAAA,QACL,QAAQ,SAAS;AAAA,QACjB,MAAM;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,iBAAe,eAAe,UAAoB,iBAAkC;AAClF,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,QAAQ;AAAA,IACjC;AACA,QAAI,oBAAoB,gBAAgB;AACtC,wBAAkB,kBAAkB,SAAS,OAAO,IAAI,SAAS;AAAA,IACnE;AACA,QAAI,oBAAoB,QAAQ;AAC9B,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAO,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI;AAAA,IAC1C;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;ACrTO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA4B,OAA4B,OAAY,QAAW;AAAnD;AAA4B;AAAA,EAAwB;AAClF;;;ACeA,eAAe,eAAe,UAAkB,GAAG,aAAqB,GAAG,QAAsB;AAC/F,QAAM,WAAW,KAAK,IAAI,SAAS,UAAU;AAC7C,QAAM,UAAU,CAAC,GAAG,KAAK,OAAO,IAAI,QAAQ,OAAO;AAEnD,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,UAAM,YAAY,WAAW,MAAM,QAAQ,GAAG,OAAO;AAGrD,QAAI,QAAQ;AACV,YAAM,eAAe,MAAM;AACzB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B;AAGA,UAAI,OAAO,SAAS;AAClB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B,OAAO;AACL,eAAO,iBAAiB,SAAS,cAAc;AAAA,UAC7C,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAyBA,SAAS,KAAkD,OAAkC,MAAwC;AACnI,QAAM,OAAO,OAAO,IAAI,aAAa;AAAA,IACnC;AAAA,IACA;AAAA,EACF,CAAC,GAAG;AAAA,IACF,kBAAkB;AAAA,EACpB,CAAC;AACH;AAMA,SAAS,cAAc,QAA2B;AAChD,MAAI,OAAO,SAAS;AAClB,SAAK;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AACA,IAAM,gBAAgB,CAAC;AACvB,IAAM,mBAAkF,CAAC,WAAW,mBAAmB,OAAO,MAAM,KAAK,iBAAiB;AAIxJ,QAAM,qBAA+B,CAAC,IAAI,kBAAyB,eAAe,aAAa,gBAAuB,eAAe,UAAU,EAAE,OAAO,OAAK,MAAM,MAAS;AAC5K,QAAM,CAAC,UAAU,IAAI,mBAAmB,MAAM,EAAE;AAChD,QAAM,wBAAgD,CAAC,GAAG,IAAI;AAAA,IAC5D;AAAA,EACF,MAAM,WAAW;AACjB,QAAM,UAIF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB;AAAA,KACb,iBACA;AAEL,MAAIC,SAAQ;AACZ,SAAO,MAAM;AAEX,kBAAc,IAAI,MAAM;AACxB,QAAI;AACF,YAAM,SAAS,MAAM,UAAU,MAAM,KAAK,YAAY;AAEtD,UAAI,OAAO,OAAO;AAChB,cAAM,IAAI,aAAa,MAAM;AAAA,MAC/B;AACA,aAAO;AAAA,IACT,SAAS,GAAQ;AACf,MAAAA;AACA,UAAI,EAAE,kBAAkB;AACtB,YAAI,aAAa,cAAc;AAC7B,iBAAO,EAAE;AAAA,QACX;AAGA,cAAM;AAAA,MACR;AACA,UAAI,aAAa,cAAc;AAC7B,YAAI,CAAC,QAAQ,eAAe,EAAE,MAAM,OAA8B,MAAM;AAAA,UACtE,SAASA;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF,CAAC,GAAG;AACF,iBAAO,EAAE;AAAA,QACX;AAAA,MACF,OAAO;AAEL,YAAIA,SAAQ,QAAQ,YAAY;AAE9B,iBAAO;AAAA,YACL,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAGA,oBAAc,IAAI,MAAM;AACxB,UAAI;AACF,cAAM,QAAQ,QAAQA,QAAO,QAAQ,YAAY,IAAI,MAAM;AAAA,MAC7D,SAAS,cAAc;AAErB,sBAAc,IAAI,MAAM;AAExB,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAkCO,IAAM,QAAuB,uBAAO,OAAO,kBAAkB;AAAA,EAClE;AACF,CAAC;;;ACjMM,IAAM,kBAAkB;AAC/B,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,mBAAmB;AAClB,IAAM,UAAyB,6BAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AAC1E,IAAM,cAA6B,6BAAa,GAAG,eAAe,KAAK,OAAO,EAAE;AAChF,IAAM,WAA0B,6BAAa,GAAG,eAAe,GAAG,MAAM,EAAE;AAC1E,IAAM,YAA2B,6BAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AACnF,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAI,cAAc;AAkBX,SAAS,eAAe,UAAwC,eAKrD;AAChB,WAAS,iBAAiB;AACxB,UAAM,CAAC,aAAa,iBAAiB,cAAc,aAAa,IAAI,CAAC,SAAS,aAAa,UAAU,SAAS,EAAE,IAAI,YAAU,MAAM,SAAS,OAAO,CAAC,CAAC;AACtJ,UAAM,yBAAyB,MAAM;AACnC,UAAI,OAAO,SAAS,oBAAoB,WAAW;AACjD,oBAAY;AAAA,MACd,OAAO;AACL,wBAAgB;AAAA,MAClB;AAAA,IACF;AACA,QAAI,cAAc,MAAM;AACtB,oBAAc;AAAA,IAChB;AACA,QAAI,CAAC,aAAa;AAChB,UAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAO5D,YAASC,mBAAT,SAAyB,KAAc;AACrC,iBAAO,QAAQ,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM;AACrD,gBAAI,KAAK;AACP,qBAAO,iBAAiB,OAAO,SAAS,KAAK;AAAA,YAC/C,OAAO;AACL,qBAAO,oBAAoB,OAAO,OAAO;AAAA,YAC3C;AAAA,UACF,CAAC;AAAA,QACH;AARS,8BAAAA;AANT,cAAM,WAAW;AAAA,UACf,CAAC,KAAK,GAAG;AAAA,UACT,CAAC,gBAAgB,GAAG;AAAA,UACpB,CAAC,MAAM,GAAG;AAAA,UACV,CAAC,OAAO,GAAG;AAAA,QACb;AAWA,QAAAA,iBAAgB,IAAI;AACpB,sBAAc;AACd,sBAAc,MAAM;AAClB,UAAAA,iBAAgB,KAAK;AACrB,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,gBAAgB,cAAc,UAAU,OAAO,IAAI,eAAe;AAC3E;;;ACqTO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAwI;AAC3K,SAAO,kBAAkB,CAAC,KAAK,0BAA0B,CAAC;AAC5D;AA4DO,SAAS,oBAA+D,aAA+F,QAAgC,OAA8B,UAAoB,MAA4B,gBAAuE;AACjW,QAAM,mBAAmB,WAAW,WAAW,IAAI,YAAY,QAAsB,OAAoB,UAAU,IAAgB,IAAI;AACvI,MAAI,kBAAkB;AACpB,WAAO,UAAU,kBAAkB,cAAc,SAAO,eAAe,qBAAqB,GAAG,CAAC,CAAC;AAAA,EACnG;AACA,SAAO,CAAC;AACV;AACA,SAAS,WAAc,GAAiC;AACtD,SAAO,OAAO,MAAM;AACtB;AACO,SAAS,qBAAqB,aAAiE;AACpG,SAAO,OAAO,gBAAgB,WAAW;AAAA,IACvC,MAAM;AAAA,EACR,IAAI;AACN;;;AC/6BA,SAAS,SAAS,SAAS,cAAc,UAAU,aAAa,oBAAoB,qBAAqB;;;ACAzG,SAAS,0BAA0B,+BAA+B;;;AC+G3D,SAAS,cAAkC,SAA4B,UAAwC;AACpH,SAAO,QAAQ,MAAM,QAAQ;AAC/B;;;AC5FO,IAAM,wBAAwB,CAAkF,SAAkC,iBAA+B,QAAQ,oBAAoB,YAAY;;;AFEzN,IAAM,qBAAqB,OAAO,cAAc;AAChD,IAAM,gBAAgB,CAAC,QAAuB,OAAO,IAAI,kBAAkB,MAAM;AA2IjF,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,oBAAoB,CAAC,aAAoB;AApLjD;AAoLoD,kCAAiB,QAAQ,MAAzB,mBAA4B;AAAA;AAC9E,QAAM,sBAAsB,CAAC,aAAoB;AArLnD;AAqLsD,kCAAiB,QAAQ,MAAzB,mBAA4B;AAAA;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,qBAAqB,cAAsB,WAAgB;AAClE,WAAO,CAAC,aAAuB;AArMnC;AAsMM,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,gBAAgB,mBAAmB;AAAA,QACvC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,cAAO,uBAAkB,QAAQ,MAA1B,mBAA6B,IAAI;AAAA,IAC1C;AAAA,EACF;AACA,WAAS,wBAKT,eAAuB,0BAAkC;AACvD,WAAO,CAAC,aAAuB;AArNnC;AAsNM,cAAO,yBAAoB,QAAQ,MAA5B,mBAA+B,IAAI;AAAA,IAC5C;AAAA,EACF;AACA,WAAS,yBAAyB;AAChC,WAAO,CAAC,aAAuB,oBAAoB,kBAAkB,QAAQ,CAAC;AAAA,EAChF;AACA,WAAS,2BAA2B;AAClC,WAAO,CAAC,aAAuB,oBAAoB,oBAAoB,QAAQ,CAAC;AAAA,EAClF;AACA,WAAS,kBAAkB,UAAoB;AAC7C,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAK,kBAA0B,UAAW;AAC1C,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,MAAC,kBAA0B,YAAY;AAIvC,UAAI,OAAO,kBAAkB,YAAY,QAAO,+CAAe,UAAS,UAAU;AAEhF,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,iEACrG;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AACA,WAAS,sBAA2D,cAAsB,oBAA4G;AACpM,UAAM,cAA0C,CAAC,KAAK,KAMlD,CAAC,MAAG;AAN8C,mBACpD;AAAA,oBAAY;AAAA,QACZ;AAAA,QACA;AAAA,QAlPN,CAmPO,qBAAqB;AAAA,MAnP5B,IA+O0D,IAKjD,iBALiD,IAKjD;AAAA,QAJH;AAAA,QACA;AAAA,QACA;AAAA,QACC;AAAA;AAEQ,cAAC,UAAU,aAAa;AArPvC,YAAAC;AAsPM,cAAM,gBAAgB,mBAAmB;AAAA,UACvC,WAAW;AAAA,UACX;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI;AACJ,cAAM,kBAAkB,iCACnB,OADmB;AAAA,UAEtB,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd;AAAA,UACA,CAAC,kBAAkB,GAAG;AAAA,QACxB;AACA,YAAI,kBAAkB,kBAAkB,GAAG;AACzC,kBAAQ,WAAW,eAAe;AAAA,QACpC,OAAO;AACL,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AACJ,kBAAQ,mBAAmB,iCACrB,kBADqB;AAAA;AAAA;AAAA,YAIzB;AAAA,YACA;AAAA,YACA;AAAA,UACF,EAAC;AAAA,QACH;AACA,cAAM,WAAY,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG;AACvF,cAAM,cAAc,SAAS,KAAK;AAClC,cAAM,aAAa,SAAS,SAAS,CAAC;AACtC,0BAAkB,QAAQ;AAC1B,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI;AACJ,cAAM,uBAAuB,WAAW,cAAc;AACtD,cAAM,gBAAeA,MAAA,kBAAkB,QAAQ,MAA1B,gBAAAA,IAA6B,IAAI;AACtD,cAAM,kBAAkB,MAAM,SAAS,SAAS,CAAC;AACjD,cAAM,eAAuC,OAAO,OAAQ;AAAA;AAAA;AAAA,UAG5D,YAAY,KAAK,eAAe;AAAA,YAAI,wBAAwB,CAAC;AAAA;AAAA;AAAA,UAG7D,QAAQ,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,UAG1B,QAAQ,IAAI,CAAC,cAAc,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,WAAwB;AAAA,UACnF;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,MAAM,SAAS;AACb,kBAAM,SAAS,MAAM;AACrB,gBAAI,OAAO,SAAS;AAClB,oBAAM,OAAO;AAAA,YACf;AACA,mBAAO,OAAO;AAAA,UAChB;AAAA,UACA,SAAS,CAAC,YAA6B,SAAS,YAAY,KAAK;AAAA,YAC/D,WAAW;AAAA,YACX,cAAc;AAAA,aACX,QACJ,CAAC;AAAA,UACF,cAAc;AACZ,gBAAI,UAAW,UAAS,uBAAuB;AAAA,cAC7C;AAAA,cACA;AAAA,YACF,CAAC,CAAC;AAAA,UACJ;AAAA,UACA,0BAA0B,SAA8B;AACtD,yBAAa,sBAAsB;AACnC,qBAAS,0BAA0B;AAAA,cACjC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,CAAC;AAAA,UACJ;AAAA,QACF,CAAC;AACD,YAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc;AAC3D,gBAAM,iBAAiB,kBAAkB,QAAQ;AACjD,yBAAe,IAAI,eAAe,YAAY;AAC9C,uBAAa,KAAK,MAAM;AACtB,2BAAe,OAAO,aAAa;AAAA,UACrC,CAAC;AAAA,QACH;AACA,eAAO;AAAA,MACT;AAAA;AACA,WAAO;AAAA,EACT;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,UAAM,cAA4C,sBAAsB,cAAc,kBAAkB;AACxG,WAAO;AAAA,EACT;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM,sBAA4D,sBAAsB,cAAc,kBAAkB;AACxH,WAAO;AAAA,EACT;AACA,WAAS,sBAAsB,cAAuD;AACpF,WAAO,CAAC,KAAK;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,IACF,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa;AACjC,YAAM,QAAQ,cAAc;AAAA,QAC1B,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,cAAc,SAAS,KAAK;AAClC,wBAAkB,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,cAAc,YAAY,OAAO,EAAE,KAAK,WAAS;AAAA,QAC1E;AAAA,MACF,EAAE,GAAG,YAAU;AAAA,QACb;AAAA,MACF,EAAE;AACF,YAAM,QAAQ,MAAM;AAClB,iBAAS,qBAAqB;AAAA,UAC5B;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ;AACA,YAAM,MAAM,OAAO,OAAO,oBAAoB;AAAA,QAC5C,KAAK,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,mBAAmB,oBAAoB,QAAQ;AACrD,uBAAiB,IAAI,WAAW,GAAG;AACnC,UAAI,KAAK,MAAM;AACb,yBAAiB,OAAO,SAAS;AAAA,MACnC,CAAC;AACD,UAAI,eAAe;AACjB,yBAAiB,IAAI,eAAe,GAAG;AACvC,YAAI,KAAK,MAAM;AACb,cAAI,iBAAiB,IAAI,aAAa,MAAM,KAAK;AAC/C,6BAAiB,OAAO,aAAa;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AGrZA,SAAS,mBAAmB;AAErB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,QAA2D,OAA4B,YAAmD,SAAc;AAClK,UAAM,MAAM;AADyD;AAA4B;AAAmD;AAAA,EAEtJ;AACF;AACO,IAAM,aAAa,CAAC,sBAA0D,eAA2B,MAAM,QAAQ,oBAAoB,IAAI,qBAAqB,SAAS,UAAU,IAAI,CAAC,CAAC;AACpM,eAAsB,gBAAiD,QAAgB,MAAe,YAAmC,QAA4D;AACnM,QAAM,SAAS,MAAM,OAAO,WAAW,EAAE,SAAS,IAAI;AACtD,MAAI,OAAO,QAAQ;AACjB,UAAM,IAAI,iBAAiB,OAAO,QAAQ,MAAM,YAAY,MAAM;AAAA,EACpE;AACA,SAAO,OAAO;AAChB;;;AC+DA,SAAS,yBAAyB,sBAA+B;AAC/D,SAAO;AACT;AA8BO,IAAM,qBAAqB,CAAiC,MAAS,CAAC,MAExE;AACH,SAAO,iCACF,MADE;AAAA,IAEL,CAAC,gBAAgB,GAAG;AAAA,EACtB;AACF;AACO,SAAS,YAAgH;AAAA,EAC9H;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AACxB,GAWG;AAED,QAAM,iBAAkE,CAAC,cAAc,KAAK,SAAS,mBAAmB,CAAC,UAAU,aAAa;AAC9I,UAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAM,gBAAgB,mBAAmB;AAAA,MACvC,WAAW;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;AACD,aAAS,IAAI,gBAAgB,mBAAmB;AAAA,MAC9C;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AACF,QAAI,CAAC,gBAAgB;AACnB;AAAA,IACF;AACA,UAAM,WAAW,IAAI,UAAU,YAAY,EAAE,OAAO,GAAG;AAAA;AAAA,MAEvD,SAAS;AAAA,IAA6B;AACtC,UAAM,eAAe,oBAAoB,mBAAmB,cAAc,SAAS,MAAM,QAAW,KAAK,CAAC,GAAG,aAAa;AAC1H,aAAS,IAAI,gBAAgB,iBAAiB,CAAC;AAAA,MAC7C;AAAA,MACA;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,WAAc,OAAiB,MAAS,MAAM,GAAa;AAClE,UAAM,WAAW,CAAC,MAAM,GAAG,KAAK;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AAAA,EAChE;AACA,WAAS,SAAY,OAAiB,MAAS,MAAM,GAAa;AAChE,UAAM,WAAW,CAAC,GAAG,OAAO,IAAI;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,CAAC,IAAI;AAAA,EAC5D;AACA,QAAM,kBAAoE,CAAC,cAAc,KAAK,cAAc,iBAAiB,SAAS,CAAC,UAAU,aAAa;AAC5J,UAAM,qBAAqB,IAAI,UAAU,YAAY;AACrD,UAAM,eAAe,mBAAmB,OAAO,GAAG;AAAA;AAAA,MAElD,SAAS;AAAA,IAA6B;AACtC,UAAM,MAAuB;AAAA,MAC3B,SAAS,CAAC;AAAA,MACV,gBAAgB,CAAC;AAAA,MACjB,MAAM,MAAM,SAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,gBAAgB,cAAc,CAAC;AAAA,IACrG;AACA,QAAI,aAAa,WAAW,sBAAsB;AAChD,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI,UAAU,cAAc;AAC1B,UAAI,YAAY,aAAa,IAAI,GAAG;AAClC,cAAM,CAAC,OAAO,SAAS,cAAc,IAAI,mBAAmB,aAAa,MAAM,YAAY;AAC3F,YAAI,QAAQ,KAAK,GAAG,OAAO;AAC3B,YAAI,eAAe,KAAK,GAAG,cAAc;AACzC,mBAAW;AAAA,MACb,OAAO;AACL,mBAAW,aAAa,aAAa,IAAI;AACzC,YAAI,QAAQ,KAAK;AAAA,UACf,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO;AAAA,QACT,CAAC;AACD,YAAI,eAAe,KAAK;AAAA,UACtB,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO,aAAa;AAAA,QACtB,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,IAAI,QAAQ,WAAW,GAAG;AAC5B,aAAO;AAAA,IACT;AACA,aAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,SAAS,cAAc,CAAC;AAChF,WAAO;AAAA,EACT;AACA,QAAM,kBAA4D,CAAC,cAAc,KAAK,UAAU,cAAY;AAE1G,UAAM,MAAM,SAAU,IAAI,UAAU,YAAY,EAA8E,SAAS,KAAK;AAAA,MAC1I,WAAW;AAAA,MACX,cAAc;AAAA,MACd,CAAC,kBAAkB,GAAG,OAAO;AAAA,QAC3B,MAAM;AAAA,MACR;AAAA,IACF,CAAC,CAAC;AACF,WAAO;AAAA,EACT;AACA,QAAM,kCAAkC,CAAC,oBAA4D,uBAA0F;AAC7L,WAAO,mBAAmB,SAAS,mBAAmB,kBAAkB,IAAI,mBAAmB,kBAAkB,IAA0B;AAAA,EAC7I;AAGA,QAAM,kBAED,OAAO,KAAK;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAM;AAjPR;AAkPI,UAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,UAAM;AAAA,MACJ;AAAA,MACA,uBAAuB;AAAA,IACzB,IAAI;AACJ,UAAM,UAAU,IAAI,SAAS;AAC7B,QAAI;AACF,UAAI,oBAAuC;AAC3C,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,IAAI;AAAA,QACd,MAAM,IAAI;AAAA,QACV,QAAQ,UAAU,cAAc,KAAK,SAAS,CAAC,IAAI;AAAA,QACnD,eAAe,UAAU,IAAI,gBAAgB;AAAA,MAC/C;AACA,YAAM,eAAe,UAAU,IAAI,kBAAkB,IAAI;AACzD,UAAI;AAIJ,YAAM,YAAY,OAAO,MAAsC,OAAgB,UAAkB,aAAkD;AAGjJ,YAAI,SAAS,QAAQ,KAAK,MAAM,QAAQ;AACtC,iBAAO,QAAQ,QAAQ;AAAA,YACrB;AAAA,UACF,CAAC;AAAA,QACH;AACA,cAAM,gBAAoD;AAAA,UACxD,UAAU,IAAI;AAAA,UACd,WAAW;AAAA,QACb;AACA,cAAM,eAAe,MAAM,eAAe,aAAa;AACvD,cAAM,QAAQ,WAAW,aAAa;AACtC,eAAO;AAAA,UACL,MAAM;AAAA,YACJ,OAAO,MAAM,KAAK,OAAO,aAAa,MAAM,QAAQ;AAAA,YACpD,YAAY,MAAM,KAAK,YAAY,OAAO,QAAQ;AAAA,UACpD;AAAA,UACA,MAAM,aAAa;AAAA,QACrB;AAAA,MACF;AAIA,qBAAe,eAAe,eAAmD;AAC/E,YAAI;AACJ,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI,aAAa,CAAC,WAAW,sBAAsB,KAAK,GAAG;AACzD,0BAAgB,MAAM;AAAA,YAAgB;AAAA,YAAW;AAAA,YAAe;AAAA,YAAa,CAAC;AAAA;AAAA,UAC9E;AAAA,QACF;AACA,YAAI,cAAc;AAEhB,mBAAS,aAAa;AAAA,QACxB,WAAW,mBAAmB,OAAO;AAGnC,8BAAoB,gCAAgC,oBAAoB,mBAAmB;AAC3F,mBAAS,MAAM,UAAU,mBAAmB,MAAM,aAAoB,GAAG,cAAc,YAAmB;AAAA,QAC5G,OAAO;AACL,mBAAS,MAAM,mBAAmB,QAAQ,eAAsB,cAAc,cAAqB,CAAAC,SAAO,UAAUA,MAAK,cAAc,YAAmB,CAAC;AAAA,QAC7J;AACA,YAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,gBAAM,OAAO,mBAAmB,QAAQ,gBAAgB;AACxD,cAAI;AACJ,cAAI,CAAC,QAAQ;AACX,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,WAAW,UAAU;AACrC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,SAAS,OAAO,MAAM;AACtC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,UAAU,UAAa,OAAO,SAAS,QAAW;AAClE,kBAAM,GAAG,IAAI;AAAA,UACf,OAAO;AACL,uBAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,kBAAI,QAAQ,WAAW,QAAQ,UAAU,QAAQ,QAAQ;AACvD,sBAAM,0BAA0B,IAAI,6BAA6B,GAAG;AACpE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,KAAK;AACP,oBAAQ,MAAM,2CAA2C,IAAI,YAAY;AAAA,oBACjE,GAAG;AAAA;AAAA,yCAEkB,MAAM;AAAA,UACrC;AAAA,QACF;AACA,YAAI,OAAO,MAAO,OAAM,IAAI,aAAa,OAAO,OAAO,OAAO,IAAI;AAClE,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,YAAI,qBAAqB,CAAC,WAAW,sBAAsB,aAAa,GAAG;AACzE,iBAAO,MAAM,gBAAgB,mBAAmB,OAAO,MAAM,qBAAqB,OAAO,IAAI;AAAA,QAC/F;AACA,YAAI,sBAAsB,MAAM,kBAAkB,MAAM,OAAO,MAAM,aAAa;AAClF,YAAI,kBAAkB,CAAC,WAAW,sBAAsB,UAAU,GAAG;AACnE,gCAAsB,MAAM,gBAAgB,gBAAgB,qBAAqB,kBAAkB,OAAO,IAAI;AAAA,QAChH;AACA,eAAO,iCACF,SADE;AAAA,UAEL,MAAM;AAAA,QACR;AAAA,MACF;AACA,UAAI,WAAW,0BAA0B,oBAAoB;AAE3D,cAAM;AAAA,UACJ;AAAA,QACF,IAAI;AAGJ,cAAM;AAAA,UACJ,WAAW;AAAA,QACb,IAAI;AAGJ,cAAM,sBAAsB,eAAmC,uBAAnC,YAAyD,qBAAqB,uBAA9E,YAAoG;AAChI,YAAI;AAIJ,cAAM,YAAY;AAAA,UAChB,OAAO,CAAC;AAAA,UACR,YAAY,CAAC;AAAA,QACf;AACA,cAAM,cAAa,eAAU,iBAAiB,SAAS,GAAG,IAAI,aAAa,MAAxD,mBAA2D;AAM9E,cAAM;AAAA;AAAA,UAEN,cAAc,KAAK,SAAS,CAAC,KAAK,CAAE,IAAmC;AAAA;AACvE,cAAM,eAAgB,+BAA+B,CAAC,aAAa,YAAY;AAI/E,YAAI,eAAe,OAAO,IAAI,aAAa,aAAa,MAAM,QAAQ;AACpE,gBAAM,WAAW,IAAI,cAAc;AACnC,gBAAM,cAAc,WAAW,uBAAuB;AACtD,gBAAM,QAAQ,YAAY,sBAAsB,cAAc,IAAI,YAAY;AAC9E,mBAAS,MAAM,UAAU,cAAc,OAAO,UAAU,QAAQ;AAAA,QAClE,OAAO;AAGL,gBAAM;AAAA,YACJ,mBAAmB,qBAAqB;AAAA,UAC1C,IAAI;AAKJ,gBAAM,oBAAmB,8CAAY,eAAZ,YAA0B,CAAC;AACpD,gBAAM,kBAAiB,sBAAiB,CAAC,MAAlB,YAAuB;AAC9C,gBAAM,aAAa,iBAAiB;AAGpC,mBAAS,MAAM,UAAU,cAAc,gBAAgB,QAAQ;AAC/D,cAAI,cAAc;AAGhB,qBAAS;AAAA,cACP,MAAO,OAAO,KAAwC,MAAM,CAAC;AAAA,YAC/D;AAAA,UACF;AACA,cAAI,oBAAoB;AAEtB,qBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,oBAAM,QAAQ,iBAAiB,sBAAsB,OAAO,MAAwC,IAAI,YAAY;AACpH,uBAAS,MAAM,UAAU,OAAO,MAAwC,OAAO,QAAQ;AAAA,YACzF;AAAA,UACF;AAAA,QACF;AACA,gCAAwB;AAAA,MAC1B,OAAO;AAEL,gCAAwB,MAAM,eAAe,IAAI,YAAY;AAAA,MAC/D;AACA,UAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,KAAK,sBAAsB,MAAM;AACzF,8BAAsB,OAAO,MAAM,gBAAgB,YAAY,sBAAsB,MAAM,cAAc,sBAAsB,IAAI;AAAA,MACrI;AAGA,aAAO,iBAAiB,sBAAsB,MAAM,mBAAmB;AAAA,QACrE,oBAAoB,KAAK,IAAI;AAAA,QAC7B,eAAe,sBAAsB;AAAA,MACvC,CAAC,CAAC;AAAA,IACJ,SAAS,OAAO;AACd,UAAI,cAAc;AAClB,UAAI,uBAAuB,cAAc;AACvC,YAAI,yBAAyB,gCAAgC,oBAAoB,wBAAwB;AACzG,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AAAA,UACF;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AACF,cAAI,0BAA0B,CAAC,WAAW,sBAAsB,kBAAkB,GAAG;AACnF,oBAAQ,MAAM,gBAAgB,wBAAwB,OAAO,0BAA0B,IAAI;AAAA,UAC7F;AACA,cAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,GAAG;AAC3D,mBAAO,MAAM,gBAAgB,YAAY,MAAM,cAAc,IAAI;AAAA,UACnE;AACA,cAAI,2BAA2B,MAAM,uBAAuB,OAAO,MAAM,IAAI,YAAY;AACzF,cAAI,uBAAuB,CAAC,WAAW,sBAAsB,eAAe,GAAG;AAC7E,uCAA2B,MAAM,gBAAgB,qBAAqB,0BAA0B,uBAAuB,IAAI;AAAA,UAC7H;AACA,iBAAO,gBAAgB,0BAA0B,mBAAmB;AAAA,YAClE,eAAe;AAAA,UACjB,CAAC,CAAC;AAAA,QACJ,SAAS,GAAG;AACV,wBAAc;AAAA,QAChB;AAAA,MACF;AACA,UAAI;AACF,YAAI,uBAAuB,kBAAkB;AAC3C,gBAAM,OAA0B;AAAA,YAC9B,UAAU,IAAI;AAAA,YACd,KAAK,IAAI;AAAA,YACT,MAAM,IAAI;AAAA,YACV,eAAe,UAAU,IAAI,gBAAgB;AAAA,UAC/C;AACA,mCAAmB,oBAAnB,4CAAqC,aAAa;AAClD,6DAAkB,aAAa;AAC/B,gBAAM;AAAA,YACJ,qBAAqB;AAAA,UACvB,IAAI;AACJ,cAAI,oBAAoB;AACtB,mBAAO,gBAAgB,mBAAmB,aAAa,IAAI,GAAG,mBAAmB;AAAA,cAC/E,eAAe,YAAY;AAAA,YAC7B,CAAC,CAAC;AAAA,UACJ;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AACV,sBAAc;AAAA,MAChB;AACA,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,cAAc;AAC3E,gBAAQ,MAAM,sEAAsE,IAAI,YAAY;AAAA,kFAC1B,WAAW;AAAA,MACvF,OAAO;AACL,gBAAQ,MAAM,WAAW;AAAA,MAC3B;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACA,WAAS,cAAc,KAAoB,OAA4C;AArfzF;AAsfI,UAAM,eAAe,UAAU,iBAAiB,OAAO,IAAI,aAAa;AACxE,UAAM,8BAA8B,UAAU,aAAa,KAAK,EAAE;AAClE,UAAM,eAAe,6CAAc;AACnC,UAAM,cAAa,SAAI,iBAAJ,YAAqB,IAAI,aAAa;AACzD,QAAI,YAAY;AAEd,aAAO,eAAe,SAAS,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,YAAY,KAAK,OAAQ;AAAA,IACtF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAwE;AAC/F,UAAM,sBAAsB,iBAEzB,GAAG,WAAW,iBAAiB,iBAAiB;AAAA,MACjD,eAAe;AAAA,QACb;AAAA,MACF,GAAG;AACD,cAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,eAAO,mBAAmB;AAAA,UACxB,kBAAkB,KAAK,IAAI;AAAA,WACvB,0BAA0B,kBAAkB,IAAI;AAAA,UAClD,WAAY,IAAmC;AAAA,QACjD,IAAI,CAAC,EACN;AAAA,MACH;AAAA,MACA,UAAU,eAAe;AAAA,QACvB;AAAA,MACF,GAAG;AAjhBT;AAkhBQ,cAAM,QAAQ,SAAS;AACvB,cAAM,eAAe,UAAU,iBAAiB,OAAO,cAAc,aAAa;AAClF,cAAM,eAAe,6CAAc;AACnC,cAAM,aAAa,cAAc;AACjC,cAAM,cAAc,6CAAc;AAClC,cAAM,qBAAqB,oBAAoB,cAAc,YAAY;AACzE,cAAM,YAAa,cAA6C;AAKhE,YAAI,cAAc,aAAa,GAAG;AAChC,iBAAO;AAAA,QACT;AAGA,aAAI,6CAAc,YAAW,WAAW;AACtC,iBAAO;AAAA,QACT;AAGA,YAAI,cAAc,eAAe,KAAK,GAAG;AACvC,iBAAO;AAAA,QACT;AACA,YAAI,kBAAkB,kBAAkB,OAAK,8DAAoB,iBAApB,4CAAmC;AAAA,UAC9E;AAAA,UACA;AAAA,UACA,eAAe;AAAA,UACf;AAAA,QACF,KAAI;AACF,iBAAO;AAAA,QACT;AAGA,YAAI,gBAAgB,CAAC,WAAW;AAE9B,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA,MACA,4BAA4B;AAAA,IAC9B,CAAC;AACD,WAAO;AAAA,EACT;AACA,QAAM,aAAa,iBAAgC;AACnD,QAAM,qBAAqB,iBAA6C;AACxE,QAAM,gBAAgB,iBAEnB,GAAG,WAAW,oBAAoB,iBAAiB;AAAA,IACpD,iBAAiB;AACf,aAAO,mBAAmB;AAAA,QACxB,kBAAkB,KAAK,IAAI;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,cAAc,CAAC,YAEhB,WAAW;AAChB,QAAM,YAAY,CAAC,YAEd,iBAAiB;AACtB,QAAM,WAAW,CAA+C,cAA4B,KAAU,UAA2B,CAAC,MAAkD,CAAC,UAAwC,aAAwB;AACnP,UAAM,QAAQ,YAAY,OAAO,KAAK,QAAQ;AAC9C,UAAM,SAAS,UAAU,OAAO,KAAK,QAAQ;AAC7C,UAAM,cAAc,CAACC,SAAiB,SAAS;AAC7C,YAAMC,WAA0C;AAAA,QAC9C,cAAcD;AAAA,QACd,WAAW;AAAA,MACb;AACA,aAAQ,IAAI,UAAU,YAAY,EAAiC,SAAS,KAAKC,QAAO;AAAA,IAC1F;AACA,UAAM,mBAAoB,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG,EAAE,SAAS,CAAC;AAC3G,QAAI,OAAO;AACT,eAAS,YAAY,CAAC;AAAA,IACxB,WAAW,QAAQ;AACjB,YAAM,kBAAkB,qDAAkB;AAC1C,UAAI,CAAC,iBAAiB;AACpB,iBAAS,YAAY,CAAC;AACtB;AAAA,MACF;AACA,YAAM,mBAAmB,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,eAAe,CAAC,KAAK,OAAQ;AAC3F,UAAI,iBAAiB;AACnB,iBAAS,YAAY,CAAC;AAAA,MACxB;AAAA,IACF,OAAO;AAEL,eAAS,YAAY,KAAK,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,gBAAgB,cAAsB;AAC7C,WAAO,CAAC,WAAsC;AA5mBlD;AA4mBqD,2DAAQ,SAAR,mBAAc,QAAd,mBAAmB,kBAAiB;AAAA;AAAA,EACvF;AACA,WAAS,uBAAiJ,OAAc,cAAsB;AAC5L,WAAO;AAAA,MACL,cAAc,QAAQ,UAAU,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACrE,gBAAgB,QAAQ,YAAY,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACzE,eAAe,QAAQ,WAAW,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AACO,SAAS,iBAAiB,SAAgE;AAAA,EAC/F;AAAA,EACA;AACF,GAAmC,UAAwC;AACzE,QAAM,YAAY,MAAM,SAAS;AACjC,SAAO,QAAQ,iBAAiB,MAAM,SAAS,GAAG,OAAO,WAAW,SAAS,GAAG,YAAY,QAAQ;AACtG;AACO,SAAS,qBAAqB,SAAgE;AAAA,EACnG;AAAA,EACA;AACF,GAAmC,UAAwC;AA1oB3E;AA2oBE,UAAO,aAAQ,yBAAR,iCAA+B,MAAM,CAAC,GAAG,OAAO,WAAW,CAAC,GAAG,YAAY;AACpF;AACO,SAAS,yBAAyB,QAAqJ,MAA0C,qBAA0C,eAA+B;AAC/S,SAAO,oBAAoB,oBAAoB,OAAO,KAAK,IAAI,YAAY,EAAE,IAAI,GAAiD,YAAY,MAAM,IAAI,OAAO,UAAU,QAAW,oBAAoB,MAAM,IAAI,OAAO,UAAU,QAAW,OAAO,KAAK,IAAI,cAAc,mBAAmB,OAAO,OAAO,OAAO,KAAK,gBAAgB,QAAW,aAAa;AACnW;;;AC7oBO,SAAS,WAAc,OAAwB;AACpD,SAAQ,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI;AAC5C;;;ACyCA,SAAS,4BAA4B,OAAwB,eAA8B,QAA6E;AACtK,QAAM,WAAW,MAAM,aAAa;AACpC,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AAWO,SAAS,oBAAoB,IAQb;AArEvB;AAsEE,UAAQ,cAAS,KAAK,GAAG,IAAI,gBAAgB,GAAG,kBAAxC,YAA0D,GAAG;AACvE;AACA,SAAS,+BAA+B,OAA2B,IAKhE,QAAmD;AACpD,QAAM,WAAW,MAAM,oBAAoB,EAAE,CAAC;AAC9C,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AACA,IAAM,eAAe,CAAC;AACf,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GASG;AACD,QAAM,gBAAgB,aAAa,GAAG,WAAW,gBAAgB;AACjE,WAAS,uBAAuB,OAAwB,KAAoB,WAAoB,MAM7F;AAlHL;AAmHI,qBAAM,IAAI,mBAAV,wBAA6B;AAAA,MAC3B,QAAQ;AAAA,MACR,cAAc,IAAI;AAAA,IACpB;AACA,gCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,eAAS,SAAS;AAClB,eAAS,YAAY,aAAa,SAAS;AAAA;AAAA,QAE3C,SAAS;AAAA;AAAA;AAAA,QAET,KAAK;AAAA;AACL,UAAI,IAAI,iBAAiB,QAAW;AAClC,iBAAS,eAAe,IAAI;AAAA,MAC9B;AACA,eAAS,mBAAmB,KAAK;AACjC,YAAM,qBAAqB,YAAY,KAAK,IAAI,YAAY;AAC5D,UAAI,0BAA0B,kBAAkB,KAAK,eAAe,KAAK;AACvE;AACA,QAAC,SAAwC,YAAY,IAAI;AAAA,MAC3D;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,yBAAyB,OAAwB,MAMvD,SAAkB,WAAoB;AACvC,gCAA4B,OAAO,KAAK,IAAI,eAAe,cAAY;AAhJ3E;AAiJM,UAAI,SAAS,cAAc,KAAK,aAAa,CAAC,UAAW;AACzD,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,YAAY,KAAK,IAAI,YAAY;AACrC,eAAS,SAAS;AAClB,UAAI,OAAO;AACT,YAAI,SAAS,SAAS,QAAW;AAC/B,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AAKJ,cAAI,UAAU,gBAAgB,SAAS,MAAM,uBAAqB;AAEhE,mBAAO,MAAM,mBAAmB,SAAS;AAAA,cACvC,KAAK,IAAI;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AACD,mBAAS,OAAO;AAAA,QAClB,OAAO;AAEL,mBAAS,OAAO;AAAA,QAClB;AAAA,MACF,OAAO;AAEL,iBAAS,SAAO,iBAAY,KAAK,IAAI,YAAY,EAAE,sBAAnC,YAAwD,QAAO,0BAA0B,QAAQ,SAAS,IAAI,IAAI,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,OAAO,IAAI;AAAA,MACxL;AACA,aAAO,SAAS;AAChB,eAAS,qBAAqB,KAAK;AAAA,IACrC,CAAC;AAAA,EACH;AACA,QAAM,aAAa,YAAY;AAAA,IAC7B,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,mBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,UACF;AAAA,QACF,GAA2C;AACzC,iBAAO,MAAM,aAAa;AAAA,QAC5B;AAAA,QACA,SAAS,mBAA4C;AAAA,MACvD;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAIX;AACF,qBAAW,SAAS,OAAO,SAAS;AAClC,kBAAM;AAAA,cACJ,kBAAkB;AAAA,cAClB;AAAA,YACF,IAAI;AACJ,mCAAuB,OAAO,KAAK,MAAM;AAAA,cACvC;AAAA,cACA,WAAW,OAAO,KAAK;AAAA,cACvB,kBAAkB,OAAO,KAAK;AAAA,YAChC,CAAC;AACD;AAAA,cAAyB;AAAA,cAAO;AAAA,gBAC9B;AAAA,gBACA,WAAW,OAAO,KAAK;AAAA,gBACvB,oBAAoB,OAAO,KAAK;AAAA,gBAChC,eAAe,CAAC;AAAA,cAClB;AAAA,cAAG;AAAA;AAAA,cAEH;AAAA,YAAI;AAAA,UACN;AAAA,QACF;AAAA,QACA,SAAS,CAAC,YAAiD;AACzD,gBAAM,oBAAiD,QAAQ,IAAI,WAAS;AAC1E,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI;AACJ,kBAAM,qBAAqB,YAAY,YAAY;AACnD,kBAAM,mBAAkC;AAAA,cACtC,MAAM;AAAA,cACN;AAAA,cACA,cAAc,MAAM;AAAA,cACpB,eAAe,mBAAmB;AAAA,gBAChC,WAAW;AAAA,gBACX;AAAA,gBACA;AAAA,cACF,CAAC;AAAA,YACH;AACA,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AACD,gBAAM,SAAS;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,CAAC,gBAAgB,GAAG;AAAA,cACpB,WAAW,OAAO;AAAA,cAClB,WAAW,KAAK,IAAI;AAAA,YACtB;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,YACA;AAAA,UACF;AAAA,QACF,GAEI;AACF,sCAA4B,OAAO,eAAe,cAAY;AAC5D,qBAAS,OAAO,aAAa,SAAS,MAAa,QAAQ,OAAO,CAAC;AAAA,UACrE,CAAC;AAAA,QACH;AAAA,QACA,SAAS,mBAEN;AAAA,MACL;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,SAAS,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,GAAG;AACnC,+BAAuB,OAAO,KAAK,WAAW,IAAI;AAAA,MACpD,CAAC,EAAE,QAAQ,WAAW,WAAW,CAAC,OAAO;AAAA,QACvC;AAAA,QACA;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,KAAK,GAAG;AACxC,iCAAyB,OAAO,MAAM,SAAS,SAAS;AAAA,MAC1D,CAAC,EAAE,QAAQ,WAAW,UAAU,CAAC,OAAO;AAAA,QACtC,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,oCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,cAAI,WAAW;AAAA,UAEf,OAAO;AAEL,gBAAI,SAAS,cAAc,UAAW;AACtC,qBAAS,SAAS;AAClB,qBAAS,QAAS,4BAAW;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD;AAAA;AAAA,aAEA,+BAAO,YAAW,qBAAoB,+BAAO,YAAW;AAAA,YAAiB;AACvE,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,gBAAgB,YAAY;AAAA,IAChC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO;AAAA,UACb;AAAA,QACF,GAA8C;AAC5C,gBAAM,WAAW,oBAAoB,OAAO;AAC5C,cAAI,YAAY,OAAO;AACrB,mBAAO,MAAM,QAAQ;AAAA,UACvB;AAAA,QACF;AAAA,QACA,SAAS,mBAA+C;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,cAAc,SAAS,CAAC,OAAO;AAAA,QAC7C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,IAAI,MAAO;AAChB,cAAM,oBAAoB,IAAI,CAAC,IAAI;AAAA,UACjC;AAAA,UACA,QAAQ;AAAA,UACR,cAAc,IAAI;AAAA,UAClB;AAAA,QACF;AAAA,MACF,CAAC,EAAE,QAAQ,cAAc,WAAW,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,OAAO;AAChB,mBAAS,qBAAqB,KAAK;AAAA,QACrC,CAAC;AAAA,MACH,CAAC,EAAE,QAAQ,cAAc,UAAU,CAAC,OAAO;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,QAAS,4BAAW;AAAA,QAC/B,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD;AAAA;AAAA,cAEC,+BAAO,YAAW,qBAAoB,+BAAO,YAAW;AAAA,YAEzD,SAAQ,+BAAO;AAAA,YAAW;AACxB,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,QAAM,2BAAsD;AAAA,IAC1D,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,EACT;AACA,QAAM,oBAAoB,YAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,IACd,UAAU;AAAA,MACR,kBAAkB;AAAA,QAChB,QAAQ,OAAO,QAGV;AAvZb;AAwZU,qBAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF,KAAK,OAAO,SAAS;AACnB,mCAAuB,OAAO,aAAa;AAC3C,uBAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF,KAAK,cAAc;AACjB,oBAAM,qBAAqB,6BAAM,MAAN,iCAAqB,CAAC,GAAtB,KAAyB,MAAM,6BAA/B,qBAA4D,CAAC;AACxF,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AAAA,YACF;AAGA,kBAAM,KAAK,aAAa,IAAI;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,SAAS,mBAGL;AAAA,MACN;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,QAAQ,mBAAmB,CAAC,OAAO;AAAA,QAC5D,SAAS;AAAA,UACP;AAAA,QACF;AAAA,MACF,MAAM;AACJ,+BAAuB,OAAO,aAAa;AAAA,MAC7C,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AAzb3D;AA0bQ,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,MAAM,YAAY,KAAK,OAAO,SAAQ,cAAS,SAAT,YAAiB,CAAC,CAAC,GAAG;AACtE,qBAAW,CAAC,IAAI,SAAS,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC1D,kBAAM,qBAAqB,6BAAM,MAAN,iCAAqB,CAAC,GAAtB,KAAyB,MAAM,6BAA/B,qBAA4D,CAAC;AACxF,uBAAW,iBAAiB,WAAW;AACrC,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AACA,oBAAM,KAAK,aAAa,IAAI,SAAS,KAAK,aAAa;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC,EAAE,WAAW,QAAQ,YAAY,UAAU,GAAG,oBAAoB,UAAU,CAAC,GAAG,CAAC,OAAO,WAAW;AAClG,oCAA4B,OAAO,CAAC,MAAM,CAAC;AAAA,MAC7C,CAAC,EAAE,WAAW,WAAW,QAAQ,qBAAqB,OAAO,CAAC,OAAO,WAAW;AAC9E,cAAM,cAA2C,OAAO,QAAQ,IAAI,CAAC;AAAA,UACnE;AAAA,UACA;AAAA,QACF,MAAM;AACJ,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,eAAe;AAAA,cACf,WAAW;AAAA,cACX,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF,CAAC;AACD,oCAA4B,OAAO,WAAW;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,WAAS,uBAAuB,OAA+B,eAA8B;AA9d/F;AA+dI,UAAM,eAAe,YAAW,WAAM,KAAK,aAAa,MAAxB,YAA6B,CAAC,CAAC;AAG/D,eAAW,OAAO,cAAc;AAC9B,YAAM,UAAU,IAAI;AACpB,YAAM,SAAQ,SAAI,OAAJ,YAAU;AACxB,YAAM,oBAAmB,WAAM,KAAK,OAAO,MAAlB,mBAAsB;AAC/C,UAAI,kBAAkB;AACpB,cAAM,KAAK,OAAO,EAAE,KAAK,IAAI,WAAW,gBAAgB,EAAE,OAAO,QAAM,OAAO,aAAa;AAAA,MAC7F;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa;AAAA,EACjC;AACA,WAAS,4BAA4B,OAAkCC,UAAsC;AAC3G,UAAM,oBAAoBA,SAAQ,IAAI,YAAU;AAC9C,YAAM,eAAe,yBAAyB,QAAQ,gBAAgB,aAAa,aAAa;AAChG,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,OAAO,KAAK;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,sBAAkB,aAAa,iBAAiB,OAAO,kBAAkB,QAAQ,iBAAiB,iBAAiB,CAAC;AAAA,EACtH;AAGA,QAAM,oBAAoB,YAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,0BAA0B,GAAG,GAIC;AAAA,MAE9B;AAAA,MACA,uBAAuB,GAAG,GAEI;AAAA,MAE9B;AAAA,MACA,gCAAgC;AAAA,MAAC;AAAA,IACnC;AAAA,EACF,CAAC;AACD,QAAM,6BAA6B,YAAY;AAAA,IAC7C,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAAgC;AAC7C,iBAAO,aAAa,OAAO,OAAO,OAAO;AAAA,QAC3C;AAAA,QACA,SAAS,mBAA4B;AAAA,MACvC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,cAAc,YAAY;AAAA,IAC9B,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,MACZ,QAAQ,SAAS;AAAA,MACjB,SAAS,kBAAkB;AAAA,MAC3B,sBAAsB;AAAA,OACnB;AAAA,IAEL,UAAU;AAAA,MACR,qBAAqB,OAAO;AAAA,QAC1B;AAAA,MACF,GAA0B;AACxB,cAAM,uBAAuB,MAAM,yBAAyB,cAAc,WAAW,UAAU,aAAa;AAAA,MAC9G;AAAA,IACF;AAAA,IACA,eAAe,aAAW;AACxB,cAAQ,QAAQ,UAAU,WAAS;AACjC,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,WAAW,WAAS;AAC7B,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,SAAS,WAAS;AAC3B,cAAM,UAAU;AAAA,MAClB,CAAC,EAAE,QAAQ,aAAa,WAAS;AAC/B,cAAM,UAAU;AAAA,MAClB,CAAC,EAGA,WAAW,oBAAoB,WAAU,mBACrC,MACH;AAAA,IACJ;AAAA,EACF,CAAC;AACD,QAAM,kBAAkB,gBAAgB;AAAA,IACtC,SAAS,WAAW;AAAA,IACpB,WAAW,cAAc;AAAA,IACzB,UAAU,kBAAkB;AAAA,IAC5B,eAAe,2BAA2B;AAAA,IAC1C,QAAQ,YAAY;AAAA,EACtB,CAAC;AACD,QAAM,UAAkC,CAAC,OAAO,WAAW,gBAAgB,cAAc,MAAM,MAAM,IAAI,SAAY,OAAO,MAAM;AAClI,QAAMA,WAAU,4GACX,YAAY,UACZ,WAAW,UACX,kBAAkB,UAClB,2BAA2B,UAC3B,cAAc,UACd,kBAAkB,UANP;AAAA,IAOd;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAA;AAAA,EACF;AACF;;;AC9iBO,IAAM,YAA2B,uBAAO,IAAI,gBAAgB;AA2BnE,IAAM,kBAAsC;AAAA,EAC1C,QAAQ;AACV;AAGA,IAAM,uBAAsC,gCAAgB,iBAAiB,MAAM;AAAC,CAAC;AACrF,IAAM,0BAAyC,gCAAgB,iBAA0C,MAAM;AAAC,CAAC;AAE1G,SAAS,eAAoF;AAAA,EAClG;AAAA,EACA;AAAA,EACA,gBAAAC;AACF,GAIG;AAED,QAAM,qBAAqB,CAAC,UAAqB;AACjD,QAAM,wBAAwB,CAAC,UAAqB;AACpD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,iBAEN,UAAqC;AACtC,WAAO,kCACF,WACA,sBAAsB,SAAS,MAAM;AAAA,EAE5C;AACA,WAAS,eAAe,WAAsB;AAC5C,UAAM,QAAQ,UAAU,WAAW;AACnC,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,CAAC,OAAO;AACV,YAAK,eAAuB,UAAW,QAAO;AAC9C,QAAC,eAAuB,YAAY;AACpC,gBAAQ,MAAM,mCAAmC,WAAW,qDAAqD;AAAA,MACnH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,cAAc,WAAsB;AA/G/C;AAgHI,YAAO,oBAAe,SAAS,MAAxB,mBAA2B;AAAA,EACpC;AACA,WAAS,iBAAiB,WAAsB,UAAyB;AAlH3E;AAmHI,YAAO,mBAAc,SAAS,MAAvB,mBAA2B;AAAA,EACpC;AACA,WAAS,gBAAgB,WAAsB;AArHjD;AAsHI,YAAO,oBAAe,SAAS,MAAxB,mBAA2B;AAAA,EACpC;AACA,WAAS,aAAa,WAAsB;AAxH9C;AAyHI,YAAO,oBAAe,SAAS,MAAxB,mBAA2B;AAAA,EACpC;AACA,WAAS,sBAAsB,cAAsB,oBAA4D,UAEtE;AACzC,WAAO,CAAC,cAAmB;AAEzB,UAAI,cAAc,WAAW;AAC3B,eAAOA,gBAAe,oBAAoB,QAAQ;AAAA,MACpD;AACA,YAAM,iBAAiB,mBAAmB;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,sBAAsB,CAAC,UAAkB;AAxIrD;AAwIwD,sCAAiB,OAAO,cAAc,MAAtC,YAA2C;AAAA;AAC7F,aAAOA,gBAAe,qBAAqB,QAAQ;AAAA,IACrD;AAAA,EACF;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,WAAO,sBAAsB,cAAc,oBAAoB,gBAAgB;AAAA,EACjF;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,aAAS,6BAEN,UAAgE;AACjE,YAAM,wBAAwB,kCACxB,WACD,sBAAsB,SAAS,MAAM;AAE1C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,YAAY,cAAc;AAChC,YAAM,aAAa,cAAc;AACjC,aAAO,iCACF,wBADE;AAAA,QAEL,aAAa,eAAe,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QAChH,iBAAiB,mBAAmB,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QACxH,oBAAoB,aAAa;AAAA,QACjC,wBAAwB,aAAa;AAAA,QACrC,sBAAsB,WAAW;AAAA,QACjC,0BAA0B,WAAW;AAAA,MACvC;AAAA,IACF;AACA,WAAO,sBAAsB,cAAc,oBAAoB,4BAA4B;AAAA,EAC7F;AACA,WAAS,wBAAwB;AAC/B,WAAQ,QAAM;AA9KlB;AA+KM,UAAI;AACJ,UAAI,OAAO,OAAO,UAAU;AAC1B,sBAAa,yBAAoB,EAAE,MAAtB,YAA2B;AAAA,MAC1C,OAAO;AACL,qBAAa;AAAA,MACf;AACA,YAAM,yBAAyB,CAAC,UAAkB;AArLxD,YAAAC,KAAA;AAqL2D,4BAAAA,MAAA,eAAe,KAAK,MAApB,gBAAAA,IAAuB,cAAvB,mBAAmC,gBAAnC,YAA4D;AAAA;AACjH,YAAM,8BAA8B,eAAe,YAAY,wBAAwB;AACvF,aAAOD,gBAAe,6BAA6B,gBAAgB;AAAA,IACrE;AAAA,EACF;AACA,WAAS,oBAAoB,OAAkB,MAI5C;AA9LL;AA+LI,UAAM,WAAW,MAAM,WAAW;AAClC,UAAM,eAAe,oBAAI,IAAmB;AAC5C,UAAM,YAAY,UAAU,MAAM,cAAc,oBAAoB;AACpE,eAAW,OAAO,WAAW;AAC3B,YAAM,WAAW,SAAS,SAAS,KAAK,IAAI,IAAI;AAChD,UAAI,CAAC,UAAU;AACb;AAAA,MACF;AACA,UAAI,2BAA2B,SAAI,OAAO;AAAA;AAAA,QAE1C,SAAS,IAAI,EAAE;AAAA;AAAA;AAAA,QAEf,OAAO,OAAO,QAAQ,EAAE,KAAK;AAAA,YAJE,YAII,CAAC;AACpC,iBAAW,cAAc,yBAAyB;AAChD,qBAAa,IAAI,UAAU;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa,OAAO,CAAC,EAAE,QAAQ,mBAAiB;AAChE,YAAM,gBAAgB,SAAS,QAAQ,aAAa;AACpD,aAAO,gBAAgB;AAAA,QACrB;AAAA,QACA,cAAc,cAAc;AAAA,QAC5B,cAAc,cAAc;AAAA,MAC9B,IAAI,CAAC;AAAA,IACP,CAAC;AAAA,EACH;AACA,WAAS,yBAAsE,OAAkB,WAA2E;AAC1K,WAAO,UAAU,OAAO,OAAO,cAAc,KAAK,CAAoB,GAAG,CAAC,WAEpE,+BAAO,kBAAiB,aAAa,MAAM,WAAW,sBAAsB,WAAS,MAAM,YAAY;AAAA,EAC/G;AACA,WAAS,eAAe,SAAoD,MAAuC,UAA6B;AAC9I,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,iBAAiB,SAAS,MAAM,QAAQ,KAAK;AAAA,EACtD;AACA,WAAS,mBAAmB,SAAoD,MAAuC,UAA6B;AAClJ,QAAI,CAAC,QAAQ,CAAC,QAAQ,qBAAsB,QAAO;AACnD,WAAO,qBAAqB,SAAS,MAAM,QAAQ,KAAK;AAAA,EAC1D;AACF;;;ACtOA,SAAS,0BAA0BE,0BAAyB,0BAA0BC,2BAA0B,0BAA0B,gCAAgC;;;ACG1K,IAAM,QAA0C,UAAU,oBAAI,QAAQ,IAAI;AACnE,IAAM,4BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AACF,MAAM;AACJ,MAAI,aAAa;AACjB,QAAM,SAAS,+BAAO,IAAI;AAC1B,MAAI,OAAO,WAAW,UAAU;AAC9B,iBAAa;AAAA,EACf,OAAO;AACL,UAAM,cAAc,KAAK,UAAU,WAAW,CAAC,KAAK,UAAU;AAE5D,cAAQ,OAAO,UAAU,WAAW;AAAA,QAClC,SAAS,MAAM,SAAS;AAAA,MAC1B,IAAI;AAEJ,cAAQ,cAAc,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,KAAK,EAAE,OAAY,CAAC,KAAKC,SAAQ;AACjF,YAAIA,IAAG,IAAK,MAAcA,IAAG;AAC7B,eAAO;AAAA,MACT,GAAG,CAAC,CAAC,IAAI;AACT,aAAO;AAAA,IACT,CAAC;AACD,QAAI,cAAc,SAAS,GAAG;AAC5B,qCAAO,IAAI,WAAW;AAAA,IACxB;AACA,iBAAa;AAAA,EACf;AACA,SAAO,GAAG,YAAY,IAAI,UAAU;AACtC;;;ADpBA,SAAS,sBAAsB;AA4SxB,SAAS,kBAAmE,SAAsD;AACvI,SAAO,SAAS,cAAc,SAAS;AACrC,UAAM,yBAAyB,eAAe,CAAC,WAAuB;AAzT1E;AAyT6E,2BAAQ,2BAAR,iCAAiC,QAAQ;AAAA,QAChH,cAAc,aAAQ,gBAAR,YAAuB;AAAA,MACvC;AAAA,KAAE;AACF,UAAM,sBAA4D;AAAA,MAChE,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,2BAA2B;AAAA,MAC3B,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,OACnB,UAP6D;AAAA,MAQhE;AAAA,MACA,mBAAmB,cAAc;AAC/B,YAAI,0BAA0B;AAC9B,YAAI,wBAAwB,aAAa,oBAAoB;AAC3D,gBAAM,cAAc,aAAa,mBAAmB;AACpD,oCAA0B,CAAAC,kBAAgB;AACxC,kBAAM,gBAAgB,YAAYA,aAAY;AAC9C,gBAAI,OAAO,kBAAkB,UAAU;AAErC,qBAAO;AAAA,YACT,OAAO;AAGL,qBAAO,0BAA0B,iCAC5BA,gBAD4B;AAAA,gBAE/B,WAAW;AAAA,cACb,EAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF,WAAW,QAAQ,oBAAoB;AACrC,oCAA0B,QAAQ;AAAA,QACpC;AACA,eAAO,wBAAwB,YAAY;AAAA,MAC7C;AAAA,MACA,UAAU,CAAC,GAAI,QAAQ,YAAY,CAAC,CAAE;AAAA,IACxC;AACA,UAAM,UAA2C;AAAA,MAC/C,qBAAqB,CAAC;AAAA,MACtB,MAAM,IAAI;AAER,WAAG;AAAA,MACL;AAAA,MACA,QAAQ,OAAO;AAAA,MACf;AAAA,MACA,oBAAoB,eAAe,YAAU,uBAAuB,MAAM,KAAK,IAAI;AAAA,IACrF;AACA,UAAM,MAAM;AAAA,MACV;AAAA,MACA,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF,GAAG;AACD,YAAI,aAAa;AACf,qBAAW,MAAM,aAAa;AAC5B,gBAAI,CAAC,oBAAoB,SAAU,SAAS,EAAS,GAAG;AACtD;AACA,cAAC,oBAAoB,SAAmB,KAAK,EAAE;AAAA,YACjD;AAAA,UACF;AAAA,QACF;AACA,YAAI,WAAW;AACb,qBAAW,CAAC,cAAc,iBAAiB,KAAK,OAAO,QAAQ,SAAS,GAAG;AACzE,gBAAI,OAAO,sBAAsB,YAAY;AAC3C,gCAAkB,sBAAsB,SAAS,YAAY,CAAC;AAAA,YAChE,OAAO;AACL,qBAAO,OAAO,sBAAsB,SAAS,YAAY,KAAK,CAAC,GAAG,iBAAiB;AAAA,YACrF;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,qBAAqB,QAAQ,IAAI,OAAK,EAAE,KAAK,KAAY,qBAA4B,OAAO,CAAC;AACnG,aAAS,gBAAgB,QAAmD;AAC1E,YAAM,qBAAqB,OAAO,UAAU;AAAA,QAC1C,OAAO,OAAM,iCACR,IADQ;AAAA,UAEX,MAAM;AAAA,QACR;AAAA,QACA,UAAU,OAAM,iCACX,IADW;AAAA,UAEd,MAAM;AAAA,QACR;AAAA,QACA,eAAe,OAAM,iCAChB,IADgB;AAAA,UAEnB,MAAM;AAAA,QACR;AAAA,MACF,CAAC;AACD,iBAAW,CAAC,cAAc,UAAU,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AAC3E,YAAI,OAAO,qBAAqB,QAAQ,gBAAgB,QAAQ,qBAAqB;AACnF,cAAI,OAAO,qBAAqB,SAAS;AACvC,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,wEAAwE,YAAY,gDAAgD;AAAA,UAC5N,WAAW,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AACnF,oBAAQ,MAAM,wEAAwE,YAAY,gDAAgD;AAAA,UACpJ;AACA;AAAA,QACF;AACA,YAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,cAAI,0BAA0B,UAAU,GAAG;AACzC,kBAAM;AAAA,cACJ;AAAA,YACF,IAAI;AACJ,kBAAM;AAAA,cACJ;AAAA,cACA,sBAAAC;AAAA,YACF,IAAI;AACJ,gBAAI,OAAO,aAAa,UAAU;AAChC,kBAAI,WAAW,GAAG;AAChB,sBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,0BAAyB,EAAE,IAAI,0BAA0B,YAAY,mCAAmC;AAAA,cAClK;AACA,kBAAI,OAAOD,0BAAyB,YAAY;AAC9C,sBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,sCAAsC,YAAY,0CAA0C;AAAA,cACrL;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,oBAAoB,YAAY,IAAI;AAC5C,mBAAW,KAAK,oBAAoB;AAClC,YAAE,eAAe,cAAc,UAAU;AAAA,QAC3C;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,IAAI,gBAAgB;AAAA,MACzB,WAAW,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;AEzbA,SAAS,0BAA0BE,gCAA+B;AAE3D,IAAM,SAAwB,uBAAO;AAOrC,SAAS,gBAAoE;AAClF,SAAO,WAAY;AACjB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeA,yBAAwB,EAAE,IAAI,+FAA+F;AAAA,EACvL;AACF;;;ACVO,SAAS,WAAc,GAAwB;AAAC;AAChD,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACDO,IAAM,6BAAoI,CAAC;AAAA,EAChJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,sBAAsB,GAAG,IAAI,WAAW;AAC9C,MAAI,wBAA2C;AAC/C,MAAI,kBAA+D;AACnE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AAIR,QAAM,8BAA8B,CAAC,sBAAiD,WAAmB;AArB3G;AAsBI,QAAI,0BAA0B,MAAM,MAAM,GAAG;AAC3C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,2BAAK,IAAI,YAAY;AACvB,YAAI,IAAI,WAAW,OAAO;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AACA,QAAI,uBAAuB,MAAM,MAAM,GAAG;AACxC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,KAAK;AACP,YAAI,OAAO,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AACA,QAAI,IAAI,gBAAgB,kBAAkB,MAAM,MAAM,GAAG;AACvD,2BAAqB,OAAO,OAAO,QAAQ,aAAa;AACxD,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,YAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,UAAI,IAAI,WAAW;AACjB,iBAAS,IAAI,YAAW,eAAI,wBAAJ,YAA2B,SAAS,IAAI,SAAS,MAAjD,YAAsD,CAAC,CAAC;AAAA,MAClF;AACA,aAAO;AAAA,IACT;AACA,QAAI,UAAU;AACd,QAAI,WAAW,SAAS,MAAM,MAAM,GAAG;AACrC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,UAAI,aAAa,IAAI,WAAW;AAC9B,cAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,iBAAS,IAAI,YAAW,eAAI,wBAAJ,YAA2B,SAAS,IAAI,SAAS,MAAjD,YAAsD,CAAC,CAAC;AAChF,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAM,cAAc;AAC7C,QAAM,uBAAuB,CAAC,kBAA0B;AAhF1D;AAiFI,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,2BAA2B,cAAc,IAAI,aAAa;AAChE,YAAO,0EAA0B,SAA1B,YAAkC;AAAA,EAC3C;AACA,QAAM,sBAAsB,CAAC,eAAuB,cAAsB;AArF5E;AAsFI,UAAM,gBAAgB,iBAAiB;AACvC,WAAO,CAAC,GAAC,oDAAe,IAAI,mBAAnB,mBAAmC,IAAI;AAAA,EAClD;AACA,QAAM,wBAA+C;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,uBAAuB,sBAAoE;AAIlG,WAAO,KAAK,MAAM,KAAK,UAAU,OAAO,YAAY,CAAC,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,EAC7H;AACA,SAAO,CAAC,QAAQC,WAAoF;AAClG,QAAI,CAAC,uBAAuB;AAE1B,8BAAwB,uBAAuB,cAAc,oBAAoB;AAAA,IACnF;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,8BAAwB,CAAC;AACzB,oBAAc,qBAAqB,MAAM;AACzC,wBAAkB;AAClB,aAAO,CAAC,MAAM,KAAK;AAAA,IACrB;AAMA,QAAI,IAAI,gBAAgB,8BAA8B,MAAM,MAAM,GAAG;AACnE,aAAO,CAAC,OAAO,qBAAqB;AAAA,IACtC;AAGA,UAAM,YAAY,4BAA4B,cAAc,sBAAsB,MAAM;AACxF,QAAI,uBAAuB;AAG3B,QAAI,QAAQ,IAAI,aAAa,UAAU,OAAO,OAAO,SAAS,YAAY,OAAO,SAAS,GAAG,IAAI,WAAW,eAAe;AACzH,aAAO,CAAC,OAAO,cAAc,YAAY;AAAA,IAC3C;AACA,QAAI,WAAW;AACb,UAAI,CAAC,iBAAiB;AAMpB,0BAAkB,WAAW,MAAM;AAEjC,gBAAM,mBAAsC,uBAAuB,cAAc,oBAAoB;AAErG,gBAAM,CAAC,EAAE,OAAO,IAAI,mBAAmB,uBAAuB,MAAM,gBAAgB;AAGpF,UAAAA,OAAM,KAAK,IAAI,gBAAgB,qBAAqB,OAAO,CAAC;AAE5D,kCAAwB;AACxB,4BAAkB;AAAA,QACpB,GAAG,GAAG;AAAA,MACR;AACA,YAAM,4BAA4B,OAAO,OAAO,QAAQ,YAAY,CAAC,CAAC,OAAO,KAAK,WAAW,mBAAmB;AAChH,YAAM,iCAAiC,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,aAAa,CAAC,CAAC,OAAO,KAAK,IAAI;AACvH,6BAAuB,CAAC,6BAA6B,CAAC;AAAA,IACxD;AACA,WAAO,CAAC,sBAAsB,KAAK;AAAA,EACrC;AACF;;;AC7GO,IAAM,mCAAmC,aAAgB,MAAQ;AACjE,IAAM,8BAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,QAAM,wBAAwB,QAAQ,uBAAuB,OAAO,WAAW,WAAW,WAAW,UAAU,qBAAqB,KAAK;AACzI,WAAS,gCAAgC,eAAuB;AAC9D,UAAM,gBAAgB,cAAc,qBAAqB,IAAI,aAAa;AAC1E,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AACA,UAAM,mBAAmB,cAAc,OAAO;AAC9C,WAAO;AAAA,EACT;AACA,QAAM,yBAAoD,CAAC;AAC3D,WAAS,iBAEN,YAA8C;AA5EnD;AA6EI,eAAW,WAAW,WAAW,OAAO,GAAG;AACzC,+CAAS,UAAT;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAwC,CAAC,QAAQC,WAAU;AAC/D,UAAM,QAAQA,OAAM,SAAS;AAC7B,UAAM,SAAS,aAAa,KAAK;AACjC,QAAI,sBAAsB,MAAM,GAAG;AACjC,UAAI;AACJ,UAAI,qBAAqB,MAAM,MAAM,GAAG;AACtC,yBAAiB,OAAO,QAAQ,IAAI,WAAS,MAAM,iBAAiB,aAAa;AAAA,MACnF,OAAO;AACL,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM,MAAM,IAAI,OAAO,UAAU,OAAO,KAAK;AACxE,yBAAiB,CAAC,aAAa;AAAA,MACjC;AACA,4BAAsB,gBAAgBA,QAAO,MAAM;AAAA,IACrD;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW,CAAC,KAAK,OAAO,KAAK,OAAO,QAAQ,sBAAsB,GAAG;AACnE,YAAI,QAAS,cAAa,OAAO;AACjC,eAAO,uBAAuB,GAAG;AAAA,MACnC;AACA,uBAAiB,cAAc,cAAc;AAC7C,uBAAiB,cAAc,gBAAgB;AAAA,IACjD;AACA,QAAI,QAAQ,mBAAmB,MAAM,GAAG;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,QAAQ,uBAAuB,MAAM;AAIzC,4BAAsB,OAAO,KAAK,OAAO,GAAsBA,QAAO,MAAM;AAAA,IAC9E;AAAA,EACF;AACA,WAAS,sBAAsB,WAA4BC,MAAuB,QAA6B;AAC7G,UAAM,QAAQA,KAAI,SAAS;AAC3B,eAAW,iBAAiB,WAAW;AACrC,YAAM,QAAQ,iBAAiB,OAAO,aAAa;AACnD,UAAI,+BAAO,cAAc;AACvB,0BAAkB,eAAe,MAAM,cAAcA,MAAK,MAAM;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,eAA8B,cAAsBA,MAAuB,QAA6B;AA3HrI;AA4HI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,qBAAoB,8DAAoB,sBAApB,YAAyC,OAAO;AAC1E,QAAI,sBAAsB,UAAU;AAElC;AAAA,IACF;AAKA,UAAM,yBAAyB,KAAK,IAAI,GAAG,KAAK,IAAI,mBAAmB,gCAAgC,CAAC;AACxG,QAAI,CAAC,gCAAgC,aAAa,GAAG;AACnD,YAAM,iBAAiB,uBAAuB,aAAa;AAC3D,UAAI,gBAAgB;AAClB,qBAAa,cAAc;AAAA,MAC7B;AACA,6BAAuB,aAAa,IAAI,WAAW,MAAM;AACvD,YAAI,CAAC,gCAAgC,aAAa,GAAG;AAEnD,gBAAM,QAAQ,iBAAiBA,KAAI,SAAS,GAAG,aAAa;AAC5D,cAAI,+BAAO,cAAc;AACvB,kBAAM,eAAeA,KAAI,SAAS,qBAAqB,MAAM,cAAc,MAAM,YAAY,CAAC;AAC9F,yDAAc;AAAA,UAChB;AACA,UAAAA,KAAI,SAAS,kBAAkB;AAAA,YAC7B;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AACA,eAAO,uBAAwB,aAAa;AAAA,MAC9C,GAAG,yBAAyB,GAAI;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;;;AClEA,IAAM,qBAAqB,IAAI,MAAM,kDAAkD;AAGhF,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF,MAAM;AACJ,QAAM,eAAe,mBAAmB,UAAU;AAClD,QAAM,kBAAkB,mBAAmB,aAAa;AACxD,QAAM,mBAAmB,YAAY,YAAY,aAAa;AAQ9D,QAAM,eAA+C,CAAC;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,WAAS,sBAAsB,UAAkB,MAAe,MAAe;AAC7E,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,uCAAW,eAAe;AAC5B,gBAAU,cAAc;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,UAAU;AAAA,IACnB;AAAA,EACF;AACA,WAAS,qBAAqB,UAAkB;AAC9C,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,WAAW;AACb,aAAO,aAAa,QAAQ;AAC5B,gBAAU,kBAAkB;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,oBAAoB,QAA0F;AACrH,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,OAAO;AACX,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,CAAC,cAAc,cAAc,SAAS;AAAA,EAC/C;AACA,QAAM,UAAwC,CAAC,QAAQ,OAAO,gBAAgB;AAC5E,UAAM,WAAW,YAAY,MAAM;AACnC,aAAS,oBAAoB,cAAsBC,WAAyB,WAAmB,cAAuB;AACpH,YAAM,WAAW,iBAAiB,aAAaA,SAAQ;AACvD,YAAM,WAAW,iBAAiB,MAAM,SAAS,GAAGA,SAAQ;AAC5D,UAAI,CAAC,YAAY,UAAU;AACzB,qBAAa,cAAc,cAAcA,WAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,0BAAoB,cAAc,UAAU,WAAW,YAAY;AAAA,IACrE,WAAW,qBAAqB,MAAM,MAAM,GAAG;AAC7C,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF,KAAK,OAAO,SAAS;AACnB,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,4BAAoB,cAAc,eAAe,OAAO,KAAK,WAAW,YAAY;AACpF,8BAAsB,eAAe,OAAO,CAAC,CAAC;AAAA,MAChD;AAAA,IACF,WAAW,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC9C,YAAM,QAAQ,MAAM,SAAS,EAAE,WAAW,EAAE,UAAU,QAAQ;AAC9D,UAAI,OAAO;AACT,cAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,qBAAa,cAAc,cAAc,UAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF,WAAW,iBAAiB,MAAM,GAAG;AACnC,4BAAsB,UAAU,OAAO,SAAS,OAAO,KAAK,aAAa;AAAA,IAC3E,WAAW,kBAAkB,MAAM,MAAM,KAAK,qBAAqB,MAAM,MAAM,GAAG;AAChF,2BAAqB,QAAQ;AAAA,IAC/B,WAAW,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAC/C,iBAAWA,aAAY,OAAO,KAAK,YAAY,GAAG;AAChD,6BAAqBA,SAAQ;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY,QAAa;AA/LpC;AAgMI,QAAI,aAAa,MAAM,EAAG,QAAO,OAAO,KAAK,IAAI;AACjD,QAAI,gBAAgB,MAAM,GAAG;AAC3B,cAAO,YAAO,KAAK,IAAI,kBAAhB,YAAiC,OAAO,KAAK;AAAA,IACtD;AACA,QAAI,kBAAkB,MAAM,MAAM,EAAG,QAAO,OAAO,QAAQ;AAC3D,QAAI,qBAAqB,MAAM,MAAM,EAAG,QAAO,oBAAoB,OAAO,OAAO;AACjF,WAAO;AAAA,EACT;AACA,WAAS,aAAa,cAAsB,cAAmB,eAAuB,OAAyB,WAAmB;AAChI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,oBAAoB,yDAAoB;AAC9C,QAAI,CAAC,kBAAmB;AACxB,UAAM,YAAY,CAAC;AACnB,UAAM,oBAAoB,IAAI,QAAc,aAAW;AACrD,gBAAU,oBAAoB;AAAA,IAChC,CAAC;AACD,UAAM,kBAG0B,QAAQ,KAAK,CAAC,IAAI,QAG/C,aAAW;AACZ,gBAAU,gBAAgB;AAAA,IAC5B,CAAC,GAAG,kBAAkB,KAAK,MAAM;AAC/B,YAAM;AAAA,IACR,CAAC,CAAC,CAAC;AAGH,oBAAgB,MAAM,MAAM;AAAA,IAAC,CAAC;AAC9B,iBAAa,aAAa,IAAI;AAC9B,UAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,aAAa;AACpI,UAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,UAAM,eAAe,iCAChB,QADgB;AAAA,MAEnB,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,MACpM;AAAA,MACA;AAAA,IACF;AACA,UAAM,iBAAiB,kBAAkB,cAAc,YAAmB;AAE1E,YAAQ,QAAQ,cAAc,EAAE,MAAM,OAAK;AACzC,UAAI,MAAM,mBAAoB;AAC9B,YAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ACjPO,IAAM,uBAA+C,CAAC;AAAA,EAC3D;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AACF,MAAM;AACJ,SAAO,CAAC,QAAQ,UAAU;AAR5B;AASI,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAExC,YAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,IACjE;AACA,QAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,UAAI,IAAI,gBAAgB,qBAAqB,MAAM,MAAM,KAAK,OAAO,YAAY,YAAU,iBAAM,SAAS,EAAE,WAAW,MAA5B,mBAA+B,WAA/B,mBAAuC,0BAAyB,YAAY;AACrK,gBAAQ,KAAK,yEAAyE,WAAW;AAAA,8FACX,gBAAgB,QAAQ;AAAA,iGACrB,EAAE,EAAE;AAAA,MAC/F;AAAA,IACF;AAAA,EACF;AACF;;;ACbO,IAAM,iCAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,wBAAwB,QAAQ,YAAY,aAAa,GAAG,oBAAoB,aAAa,CAAC;AACpG,QAAM,aAAa,QAAQ,YAAY,YAAY,aAAa,GAAG,WAAW,YAAY,aAAa,CAAC;AACxG,MAAI,0BAAwD,CAAC;AAE7D,MAAI,sBAAsB;AAC1B,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC3E;AAAA,IACF;AACA,QAAI,WAAW,MAAM,GAAG;AACtB,4BAAsB,KAAK,IAAI,GAAG,sBAAsB,CAAC;AAAA,IAC3D;AACA,QAAI,sBAAsB,MAAM,GAAG;AACjC,qBAAe,yBAAyB,QAAQ,mBAAmB,qBAAqB,aAAa,GAAG,KAAK;AAAA,IAC/G,WAAW,WAAW,MAAM,GAAG;AAC7B,qBAAe,CAAC,GAAG,KAAK;AAAA,IAC1B,WAAW,IAAI,KAAK,eAAe,MAAM,MAAM,GAAG;AAChD,qBAAe,oBAAoB,OAAO,SAAS,QAAW,QAAW,QAAW,QAAW,aAAa,GAAG,KAAK;AAAA,IACtH;AAAA,EACF;AACA,WAAS,qBAAqB;AAC5B,WAAO,sBAAsB;AAAA,EAC/B;AACA,WAAS,eAAe,SAAgD,OAAyB;AAC/F,UAAM,YAAY,MAAM,SAAS;AACjC,UAAM,QAAQ,UAAU,WAAW;AACnC,4BAAwB,KAAK,GAAG,OAAO;AACvC,QAAI,MAAM,OAAO,yBAAyB,aAAa,mBAAmB,GAAG;AAC3E;AAAA,IACF;AACA,UAAM,OAAO;AACb,8BAA0B,CAAC;AAC3B,QAAI,KAAK,WAAW,EAAG;AACvB,UAAM,eAAe,IAAI,KAAK,oBAAoB,WAAW,IAAI;AACjE,YAAQ,MAAM,MAAM;AAClB,YAAM,cAAc,MAAM,KAAK,aAAa,OAAO,CAAC;AACpD,iBAAW;AAAA,QACT;AAAA,MACF,KAAK,aAAa;AAChB,cAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,cAAM,uBAAuB,oBAAoB,cAAc,sBAAsB,eAAe,YAAY;AAChH,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,kBAAM,SAAS,kBAAkB;AAAA,cAC/B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,kBAAM,SAAS,aAAa,aAAa,CAAC;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3EO,IAAM,sBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,wBAAwB,oBAAI,IAAY;AAC9C,MAAI,qBAA2D;AAC/D,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,IAAI,gBAAgB,0BAA0B,MAAM,MAAM,KAAK,IAAI,gBAAgB,uBAAuB,MAAM,MAAM,GAAG;AAC3H,4BAAsB,OAAO,QAAQ,eAAe,KAAK;AAAA,IAC3D;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,WAAW;AAClG,4BAAsB,OAAO,KAAK,IAAI,eAAe,KAAK;AAAA,IAC5D;AACA,QAAI,WAAW,UAAU,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,CAAC,OAAO,KAAK,WAAW;AACrG,oBAAc,OAAO,KAAK,KAAK,KAAK;AAAA,IACtC;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW;AAEX,UAAI,oBAAoB;AACtB,qBAAa,kBAAkB;AAC/B,6BAAqB;AAAA,MACvB;AACA,4BAAsB,MAAM;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,sBAAsB,eAAuBC,MAAuB;AAC3E,0BAAsB,IAAI,aAAa;AACvC,QAAI,CAAC,oBAAoB;AACvB,2BAAqB,WAAW,MAAM;AAEpC,mBAAW,OAAO,uBAAuB;AACvC,gCAAsB;AAAA,YACpB,eAAe;AAAA,UACjB,GAAGA,IAAG;AAAA,QACR;AACA,8BAAsB,MAAM;AAC5B,6BAAqB;AAAA,MACvB,GAAG,CAAC;AAAA,IACN;AAAA,EACF;AACA,WAAS,cAAc;AAAA,IACrB;AAAA,EACF,GAA4BA,MAAuB;AACjD,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,qBAAsB;AACrE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,0BAA0B,aAAa;AAC3C,QAAI,CAAC,OAAO,SAAS,qBAAqB,EAAG;AAC7C,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,QAAI,2CAAa,SAAS;AACxB,mBAAa,YAAY,OAAO;AAChC,kBAAY,UAAU;AAAA,IACxB;AACA,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,iBAAa,IAAI,eAAe;AAAA,MAC9B;AAAA,MACA,iBAAiB;AAAA,MACjB,SAAS,WAAW,MAAM;AACxB,YAAI,MAAM,OAAO,WAAW,CAAC,wBAAwB;AACnD,UAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,QAC1C;AACA,sBAAc;AAAA,UACZ;AAAA,QACF,GAAGA,IAAG;AAAA,MACR,GAAG,qBAAqB;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,WAAS,sBAAsB;AAAA,IAC7B;AAAA,EACF,GAA4BA,MAAuB;AAtFrD;AAuFI,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,sBAAsB;AACnE;AAAA,IACF;AACA,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,0BAA0B,aAAa;AAI3C,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,YAAM,kBAAkB,kBAAqB,uBAArB,yBAAqB,qBAAuB,CAAC;AACrE,0FAAkC;AAClC,qBAAe,aAAa;AAAA,IAC9B;AACA,QAAI,CAAC,OAAO,SAAS,qBAAqB,GAAG;AAC3C,wBAAkB,aAAa;AAC/B;AAAA,IACF;AACA,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,QAAI,CAAC,eAAe,oBAAoB,YAAY,mBAAmB;AACrE,oBAAc;AAAA,QACZ;AAAA,MACF,GAAGA,IAAG;AAAA,IACR;AAAA,EACF;AACA,WAAS,kBAAkB,KAAa;AACtC,UAAM,eAAe,aAAa,IAAI,GAAG;AACzC,QAAI,6CAAc,SAAS;AACzB,mBAAa,aAAa,OAAO;AAAA,IACnC;AACA,iBAAa,OAAO,GAAG;AAAA,EACzB;AACA,WAAS,aAAa;AACpB,eAAW,OAAO,aAAa,KAAK,GAAG;AACrC,wBAAkB,GAAG;AAAA,IACvB;AAAA,EACF;AACA,WAAS,0BAA0B,cAAmC,oBAAI,IAAI,GAAG;AAC/E,QAAI,yBAA8C;AAClD,QAAI,wBAAwB,OAAO;AACnC,eAAW,SAAS,YAAY,OAAO,GAAG;AACxC,UAAI,CAAC,CAAC,MAAM,iBAAiB;AAC3B,gCAAwB,KAAK,IAAI,MAAM,iBAAkB,qBAAqB;AAC9E,iCAAyB,MAAM,0BAA0B;AAAA,MAC3D;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;;AC0LO,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,UAAU,YAAY,aAAa;AAC1D,QAAM,kBAAkB,WAAW,YAAY,aAAa;AAC5D,QAAM,oBAAoB,YAAY,YAAY,aAAa;AAQ/D,QAAM,eAA+C,CAAC;AACtD,QAAM,UAAwC,CAAC,QAAQ,UAAU;AA1VnE;AA2VI,QAAI,eAAe,MAAM,GAAG;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI,OAAO;AACX,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,iBAAiB,yDAAoB;AAC3C,UAAI,gBAAgB;AAClB,cAAM,YAAY,CAAC;AACnB,cAAM,iBAAiB,IAAK,QAGW,CAAC,SAAS,WAAW;AAC1D,oBAAU,UAAU;AACpB,oBAAU,SAAS;AAAA,QACrB,CAAC;AAGD,uBAAe,MAAM,MAAM;AAAA,QAAC,CAAC;AAC7B,qBAAa,SAAS,IAAI;AAC1B,cAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,SAAS;AAChI,cAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,cAAM,eAAe,iCAChB,QADgB;AAAA,UAEnB,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,UAC9C;AAAA,UACA;AAAA,UACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,UACpM;AAAA,QACF;AACA,uBAAe,cAAc,YAAmB;AAAA,MAClD;AAAA,IACF,WAAW,kBAAkB,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,yBAAa,SAAS,MAAtB,mBAAyB,QAAQ;AAAA,QAC/B,MAAM,OAAO;AAAA,QACb,MAAM;AAAA,MACR;AACA,aAAO,aAAa,SAAS;AAAA,IAC/B,WAAW,gBAAgB,MAAM,GAAG;AAClC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,yBAAa,SAAS,MAAtB,mBAAyB,OAAO;AAAA,QAC9B,QAAO,YAAO,YAAP,YAAkB,OAAO;AAAA,QAChC,kBAAkB,CAAC;AAAA,QACnB,MAAM;AAAA,MACR;AACA,aAAO,aAAa,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;;;ACnZO,IAAM,0BAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,QAAQ,MAAM,MAAM,GAAG;AACzB,0BAAoB,OAAO,gBAAgB;AAAA,IAC7C;AACA,QAAI,SAAS,MAAM,MAAM,GAAG;AAC1B,0BAAoB,OAAO,oBAAoB;AAAA,IACjD;AAAA,EACF;AACA,WAAS,oBAAoBC,MAAuB,MAA+C;AACjG,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,UAAU,MAAM;AACtB,UAAM,gBAAgB,cAAc;AACpC,YAAQ,MAAM,MAAM;AAClB,iBAAW,iBAAiB,cAAc,KAAK,GAAG;AAChD,cAAM,gBAAgB,QAAQ,aAAa;AAC3C,cAAM,uBAAuB,cAAc,IAAI,aAAa;AAC5D,YAAI,CAAC,wBAAwB,CAAC,cAAe;AAC7C,cAAM,SAAS,CAAC,GAAG,qBAAqB,OAAO,CAAC;AAChD,cAAM,gBAAgB,OAAO,KAAK,SAAO,IAAI,IAAI,MAAM,IAAI,KAAK,OAAO,MAAM,SAAO,IAAI,IAAI,MAAM,MAAS,KAAK,MAAM,OAAO,IAAI;AACjI,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,YAAAA,KAAI,SAAS,kBAAkB;AAAA,cAC7B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,YAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,UAC1C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3BO,SAAS,gBAA8G,OAAiE;AAC7L,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAMC,WAAU;AAAA,IACd,gBAAgB,aAAgF,GAAG,WAAW,iBAAiB;AAAA,EACjI;AACA,QAAM,uBAAuB,CAAC,WAAmB,OAAO,KAAK,WAAW,GAAG,WAAW,GAAG;AACzF,QAAM,kBAA4C,CAAC,sBAAsB,6BAA6B,gCAAgC,qBAAqB,4BAA4B,0BAA0B;AACjN,QAAM,aAAkH,WAAS;AAC/H,QAAIC,eAAc;AAClB,UAAM,gBAAgB,iBAAiB,MAAM,QAAQ;AACrD,UAAM,cAAc,iCACd,QADc;AAAA,MAElB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,gBAAgB,IAAI,WAAS,MAAM,WAAW,CAAC;AAChE,UAAM,wBAAwB,2BAA2B,WAAW;AACpE,UAAM,sBAAsB,wBAAwB,WAAW;AAC/D,WAAO,UAAQ;AACb,aAAO,YAAU;AACf,YAAI,CAAC,SAAS,MAAM,GAAG;AACrB,iBAAO,KAAK,MAAM;AAAA,QACpB;AACA,YAAI,CAACA,cAAa;AAChB,UAAAA,eAAc;AAEd,gBAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,QACjE;AACA,cAAM,gBAAgB,iCACjB,QADiB;AAAA,UAEpB;AAAA,QACF;AACA,cAAM,cAAc,MAAM,SAAS;AACnC,cAAM,CAAC,sBAAsB,mBAAmB,IAAI,sBAAsB,QAAQ,eAAe,WAAW;AAC5G,YAAI;AACJ,YAAI,sBAAsB;AACxB,gBAAM,KAAK,MAAM;AAAA,QACnB,OAAO;AACL,gBAAM;AAAA,QACR;AACA,YAAI,CAAC,CAAC,MAAM,SAAS,EAAE,WAAW,GAAG;AAInC,8BAAoB,QAAQ,eAAe,WAAW;AACtD,cAAI,qBAAqB,MAAM,KAAK,QAAQ,mBAAmB,MAAM,GAAG;AAGtE,uBAAW,WAAW,UAAU;AAC9B,sBAAQ,QAAQ,eAAe,WAAW;AAAA,YAC5C;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAD;AAAA,EACF;AACA,WAAS,aAAa,eAElB;AACF,WAAQ,MAAM,IAAI,UAAU,cAAc,YAAY,EAAiC,SAAS,cAAc,cAAqB;AAAA,MACjI,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACF;;;AC1DO,IAAM,iBAAgC,uBAAO;AAiU7C,IAAM,aAAa,CAAC;AAAA,EACzB,gBAAAE,kBAAiB;AACnB,IAAuB,CAAC,OAA2B;AAAA,EACjD,MAAM;AAAA,EACN,KAAK,KAAK;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAG,SAAS;AACV,kBAAc;AACd,eAAuC,kBAAkB;AACzD,UAAM,gBAAgC,SAAO;AAC3C,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,YAAI,CAAC,SAAS,SAAS,IAAI,IAAW,GAAG;AACvC,kBAAQ,MAAM,aAAa,IAAI,IAAI,gDAAgD;AAAA,QACrF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK;AAAA,MACjB;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,MAAM,CAAC;AAAA,IACT,CAAC;AACD,UAAM,YAAY,eAAe;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,gBAAAA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,YAAY;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,WAAW;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,aAAa;AAAA,MAC5B,oBAAoB,aAAa;AAAA,IACnC,CAAC;AACD,eAAW,IAAI,iBAAiB,YAAY;AAC5C,UAAM,mBAAmB,oBAAI,QAA2C;AACxE,UAAM,mBAAmB,CAAC,aAAuB;AAC/C,YAAM,QAAQ,oBAAoB,kBAAkB,UAAU,OAAO;AAAA,QACnE,sBAAsB,oBAAI,IAAI;AAAA,QAC9B,cAAc,oBAAI,IAAI;AAAA,QACtB,gBAAgB,oBAAI,IAAI;AAAA,QACxB,kBAAkB,oBAAI,IAAI;AAAA,MAC5B,EAAE;AACF,aAAO;AAAA,IACT;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM,iBAAiB;AACtC,eAAW,KAAK;AAAA,MACd;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,MAAM;AAAA,MACN,eAAe,cAAc,YAAY;AA1gB/C;AA2gBQ,cAAM,SAAS;AACf,cAAM,YAAW,kBAAO,WAAP,iDAAmC,CAAC;AACrD,YAAI,kBAAkB,UAAU,GAAG;AACjC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,mBAAmB,cAAc,UAAU;AAAA,YACnD,UAAU,mBAAmB,cAAc,UAAU;AAAA,UACvD,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AACA,YAAI,qBAAqB,UAAU,GAAG;AACpC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,sBAAsB;AAAA,YAC9B,UAAU,sBAAsB,YAAY;AAAA,UAC9C,GAAG,uBAAuB,eAAe,YAAY,CAAC;AAAA,QACxD;AACA,YAAI,0BAA0B,UAAU,GAAG;AACzC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,2BAA2B,cAAc,UAAU;AAAA,YAC3D,UAAU,2BAA2B,cAAc,UAAU;AAAA,UAC/D,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACniBO,IAAM,YAA2B,+BAAe,WAAW,CAAC;","names":["QueryStatus","isPlainObject","_a","retry","updateListeners","_a","arg","force","options","actions","createSelector","_a","_formatProdErrorMessage","_formatProdErrorMessage2","key","queryArgsApi","_formatProdErrorMessage","getPreviousPageParam","_formatProdErrorMessage2","_formatProdErrorMessage","mwApi","mwApi","api","cacheKey","extra","api","extra","api","actions","initialized","createSelector"]}
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3047 +1,0 @@
-// src/query/core/apiState.ts
-var QueryStatus = /* @__PURE__ */ ((QueryStatus7) => {
-  QueryStatus7["uninitialized"] = "uninitialized";
-  QueryStatus7["pending"] = "pending";
-  QueryStatus7["fulfilled"] = "fulfilled";
-  QueryStatus7["rejected"] = "rejected";
-  return QueryStatus7;
-})(QueryStatus || {});
-var STATUS_UNINITIALIZED = "uninitialized" /* uninitialized */;
-var STATUS_PENDING = "pending" /* pending */;
-var STATUS_FULFILLED = "fulfilled" /* fulfilled */;
-var STATUS_REJECTED = "rejected" /* rejected */;
-function getRequestStatusFlags(status) {
-  return {
-    status,
-    isUninitialized: status === STATUS_UNINITIALIZED,
-    isLoading: status === STATUS_PENDING,
-    isSuccess: status === STATUS_FULFILLED,
-    isError: status === STATUS_REJECTED
-  };
-}
-
-// src/query/core/rtkImports.ts
-import { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from "@reduxjs/toolkit";
-
-// src/query/utils/copyWithStructuralSharing.ts
-var isPlainObject2 = isPlainObject;
-function copyWithStructuralSharing(oldObj, newObj) {
-  if (oldObj === newObj || !(isPlainObject2(oldObj) && isPlainObject2(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {
-    return newObj;
-  }
-  const newKeys = Object.keys(newObj);
-  const oldKeys = Object.keys(oldObj);
-  let isSameObject = newKeys.length === oldKeys.length;
-  const mergeObj = Array.isArray(newObj) ? [] : {};
-  for (const key of newKeys) {
-    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);
-    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];
-  }
-  return isSameObject ? oldObj : mergeObj;
-}
-
-// src/query/utils/filterMap.ts
-function filterMap(array, predicate, mapper) {
-  return array.reduce((acc, item, i) => {
-    if (predicate(item, i)) {
-      acc.push(mapper(item, i));
-    }
-    return acc;
-  }, []).flat();
-}
-
-// src/query/utils/isAbsoluteUrl.ts
-function isAbsoluteUrl(url) {
-  return new RegExp(`(^|:)//`).test(url);
-}
-
-// src/query/utils/isDocumentVisible.ts
-function isDocumentVisible() {
-  if (typeof document === "undefined") {
-    return true;
-  }
-  return document.visibilityState !== "hidden";
-}
-
-// src/query/utils/isNotNullish.ts
-function isNotNullish(v) {
-  return v != null;
-}
-function filterNullishValues(map) {
-  return [...map?.values() ?? []].filter(isNotNullish);
-}
-
-// src/query/utils/isOnline.ts
-function isOnline() {
-  return typeof navigator === "undefined" ? true : navigator.onLine === void 0 ? true : navigator.onLine;
-}
-
-// src/query/utils/joinUrls.ts
-var withoutTrailingSlash = (url) => url.replace(/\/$/, "");
-var withoutLeadingSlash = (url) => url.replace(/^\//, "");
-function joinUrls(base, url) {
-  if (!base) {
-    return url;
-  }
-  if (!url) {
-    return base;
-  }
-  if (isAbsoluteUrl(url)) {
-    return url;
-  }
-  const delimiter = base.endsWith("/") || !url.startsWith("?") ? "/" : "";
-  base = withoutTrailingSlash(base);
-  url = withoutLeadingSlash(url);
-  return `${base}${delimiter}${url}`;
-}
-
-// src/query/utils/getOrInsert.ts
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-var createNewMap = () => /* @__PURE__ */ new Map();
-
-// src/query/utils/signals.ts
-var timeoutSignal = (milliseconds) => {
-  const abortController = new AbortController();
-  setTimeout(() => {
-    const message = "signal timed out";
-    const name = "TimeoutError";
-    abortController.abort(
-      // some environments (React Native, Node) don't have DOMException
-      typeof DOMException !== "undefined" ? new DOMException(message, name) : Object.assign(new Error(message), {
-        name
-      })
-    );
-  }, milliseconds);
-  return abortController.signal;
-};
-var anySignal = (...signals) => {
-  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);
-  const abortController = new AbortController();
-  for (const signal of signals) {
-    signal.addEventListener("abort", () => abortController.abort(signal.reason), {
-      signal: abortController.signal,
-      once: true
-    });
-  }
-  return abortController.signal;
-};
-
-// src/query/fetchBaseQuery.ts
-var defaultFetchFn = (...args) => fetch(...args);
-var defaultValidateStatus = (response) => response.status >= 200 && response.status <= 299;
-var defaultIsJsonContentType = (headers) => (
-  /*applicat*/
-  /ion\/(vnd\.api\+)?json/.test(headers.get("content-type") || "")
-);
-function stripUndefined(obj) {
-  if (!isPlainObject(obj)) {
-    return obj;
-  }
-  const copy = {
-    ...obj
-  };
-  for (const [k, v] of Object.entries(copy)) {
-    if (v === void 0) delete copy[k];
-  }
-  return copy;
-}
-var isJsonifiable = (body) => typeof body === "object" && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === "function");
-function fetchBaseQuery({
-  baseUrl,
-  prepareHeaders = (x) => x,
-  fetchFn = defaultFetchFn,
-  paramsSerializer,
-  isJsonContentType = defaultIsJsonContentType,
-  jsonContentType = "application/json",
-  jsonReplacer,
-  timeout: defaultTimeout,
-  responseHandler: globalResponseHandler,
-  validateStatus: globalValidateStatus,
-  ...baseFetchOptions
-} = {}) {
-  if (typeof fetch === "undefined" && fetchFn === defaultFetchFn) {
-    console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.");
-  }
-  return async (arg, api, extraOptions) => {
-    const {
-      getState,
-      extra,
-      endpoint,
-      forced,
-      type
-    } = api;
-    let meta;
-    let {
-      url,
-      headers = new Headers(baseFetchOptions.headers),
-      params = void 0,
-      responseHandler = globalResponseHandler ?? "json",
-      validateStatus = globalValidateStatus ?? defaultValidateStatus,
-      timeout = defaultTimeout,
-      ...rest
-    } = typeof arg == "string" ? {
-      url: arg
-    } : arg;
-    let config = {
-      ...baseFetchOptions,
-      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,
-      ...rest
-    };
-    headers = new Headers(stripUndefined(headers));
-    config.headers = await prepareHeaders(headers, {
-      getState,
-      arg,
-      extra,
-      endpoint,
-      forced,
-      type,
-      extraOptions
-    }) || headers;
-    const bodyIsJsonifiable = isJsonifiable(config.body);
-    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== "string") {
-      config.headers.delete("content-type");
-    }
-    if (!config.headers.has("content-type") && bodyIsJsonifiable) {
-      config.headers.set("content-type", jsonContentType);
-    }
-    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {
-      config.body = JSON.stringify(config.body, jsonReplacer);
-    }
-    if (!config.headers.has("accept")) {
-      if (responseHandler === "json") {
-        config.headers.set("accept", "application/json");
-      } else if (responseHandler === "text") {
-        config.headers.set("accept", "text/plain, text/html, */*");
-      }
-    }
-    if (params) {
-      const divider = ~url.indexOf("?") ? "&" : "?";
-      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));
-      url += divider + query;
-    }
-    url = joinUrls(baseUrl, url);
-    const request = new Request(url, config);
-    const requestClone = new Request(url, config);
-    meta = {
-      request: requestClone
-    };
-    let response;
-    try {
-      response = await fetchFn(request);
-    } catch (e) {
-      return {
-        error: {
-          status: (e instanceof Error || typeof DOMException !== "undefined" && e instanceof DOMException) && e.name === "TimeoutError" ? "TIMEOUT_ERROR" : "FETCH_ERROR",
-          error: String(e)
-        },
-        meta
-      };
-    }
-    const responseClone = response.clone();
-    meta.response = responseClone;
-    let resultData;
-    let responseText = "";
-    try {
-      let handleResponseError;
-      await Promise.all([
-        handleResponse(response, responseHandler).then((r) => resultData = r, (e) => handleResponseError = e),
-        // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182
-        // we *have* to "use up" both streams at the same time or they will stop running in node-fetch scenarios
-        responseClone.text().then((r) => responseText = r, () => {
-        })
-      ]);
-      if (handleResponseError) throw handleResponseError;
-    } catch (e) {
-      return {
-        error: {
-          status: "PARSING_ERROR",
-          originalStatus: response.status,
-          data: responseText,
-          error: String(e)
-        },
-        meta
-      };
-    }
-    return validateStatus(response, resultData) ? {
-      data: resultData,
-      meta
-    } : {
-      error: {
-        status: response.status,
-        data: resultData
-      },
-      meta
-    };
-  };
-  async function handleResponse(response, responseHandler) {
-    if (typeof responseHandler === "function") {
-      return responseHandler(response);
-    }
-    if (responseHandler === "content-type") {
-      responseHandler = isJsonContentType(response.headers) ? "json" : "text";
-    }
-    if (responseHandler === "json") {
-      const text = await response.text();
-      return text.length ? JSON.parse(text) : null;
-    }
-    return response.text();
-  }
-}
-
-// src/query/HandledError.ts
-var HandledError = class {
-  constructor(value, meta = void 0) {
-    this.value = value;
-    this.meta = meta;
-  }
-};
-
-// src/query/retry.ts
-async function defaultBackoff(attempt = 0, maxRetries = 5, signal) {
-  const attempts = Math.min(attempt, maxRetries);
-  const timeout = ~~((Math.random() + 0.4) * (300 << attempts));
-  await new Promise((resolve, reject) => {
-    const timeoutId = setTimeout(() => resolve(), timeout);
-    if (signal) {
-      const abortHandler = () => {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      };
-      if (signal.aborted) {
-        clearTimeout(timeoutId);
-        reject(new Error("Aborted"));
-      } else {
-        signal.addEventListener("abort", abortHandler, {
-          once: true
-        });
-      }
-    }
-  });
-}
-function fail(error, meta) {
-  throw Object.assign(new HandledError({
-    error,
-    meta
-  }), {
-    throwImmediately: true
-  });
-}
-function failIfAborted(signal) {
-  if (signal.aborted) {
-    fail({
-      status: "CUSTOM_ERROR",
-      error: "Aborted"
-    });
-  }
-}
-var EMPTY_OPTIONS = {};
-var retryWithBackoff = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {
-  const possibleMaxRetries = [5, (defaultOptions || EMPTY_OPTIONS).maxRetries, (extraOptions || EMPTY_OPTIONS).maxRetries].filter((x) => x !== void 0);
-  const [maxRetries] = possibleMaxRetries.slice(-1);
-  const defaultRetryCondition = (_, __, {
-    attempt
-  }) => attempt <= maxRetries;
-  const options = {
-    maxRetries,
-    backoff: defaultBackoff,
-    retryCondition: defaultRetryCondition,
-    ...defaultOptions,
-    ...extraOptions
-  };
-  let retry2 = 0;
-  while (true) {
-    failIfAborted(api.signal);
-    try {
-      const result = await baseQuery(args, api, extraOptions);
-      if (result.error) {
-        throw new HandledError(result);
-      }
-      return result;
-    } catch (e) {
-      retry2++;
-      if (e.throwImmediately) {
-        if (e instanceof HandledError) {
-          return e.value;
-        }
-        throw e;
-      }
-      if (e instanceof HandledError) {
-        if (!options.retryCondition(e.value.error, args, {
-          attempt: retry2,
-          baseQueryApi: api,
-          extraOptions
-        })) {
-          return e.value;
-        }
-      } else {
-        if (retry2 > options.maxRetries) {
-          return {
-            error: e
-          };
-        }
-      }
-      failIfAborted(api.signal);
-      try {
-        await options.backoff(retry2, options.maxRetries, api.signal);
-      } catch (backoffError) {
-        failIfAborted(api.signal);
-        throw backoffError;
-      }
-    }
-  }
-};
-var retry = /* @__PURE__ */ Object.assign(retryWithBackoff, {
-  fail
-});
-
-// src/query/core/setupListeners.ts
-var INTERNAL_PREFIX = "__rtkq/";
-var ONLINE = "online";
-var OFFLINE = "offline";
-var FOCUS = "focus";
-var FOCUSED = "focused";
-var VISIBILITYCHANGE = "visibilitychange";
-var onFocus = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${FOCUSED}`);
-var onFocusLost = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);
-var onOnline = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${ONLINE}`);
-var onOffline = /* @__PURE__ */ createAction(`${INTERNAL_PREFIX}${OFFLINE}`);
-var actions = {
-  onFocus,
-  onFocusLost,
-  onOnline,
-  onOffline
-};
-var initialized = false;
-function setupListeners(dispatch, customHandler) {
-  function defaultHandler() {
-    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map((action) => () => dispatch(action()));
-    const handleVisibilityChange = () => {
-      if (window.document.visibilityState === "visible") {
-        handleFocus();
-      } else {
-        handleFocusLost();
-      }
-    };
-    let unsubscribe = () => {
-      initialized = false;
-    };
-    if (!initialized) {
-      if (typeof window !== "undefined" && window.addEventListener) {
-        let updateListeners2 = function(add) {
-          Object.entries(handlers).forEach(([event, handler]) => {
-            if (add) {
-              window.addEventListener(event, handler, false);
-            } else {
-              window.removeEventListener(event, handler);
-            }
-          });
-        };
-        var updateListeners = updateListeners2;
-        const handlers = {
-          [FOCUS]: handleFocus,
-          [VISIBILITYCHANGE]: handleVisibilityChange,
-          [ONLINE]: handleOnline,
-          [OFFLINE]: handleOffline
-        };
-        updateListeners2(true);
-        initialized = true;
-        unsubscribe = () => {
-          updateListeners2(false);
-          initialized = false;
-        };
-      }
-    }
-    return unsubscribe;
-  }
-  return customHandler ? customHandler(dispatch, actions) : defaultHandler();
-}
-
-// src/query/endpointDefinitions.ts
-var ENDPOINT_QUERY = "query" /* query */;
-var ENDPOINT_MUTATION = "mutation" /* mutation */;
-var ENDPOINT_INFINITEQUERY = "infinitequery" /* infinitequery */;
-function isQueryDefinition(e) {
-  return e.type === ENDPOINT_QUERY;
-}
-function isMutationDefinition(e) {
-  return e.type === ENDPOINT_MUTATION;
-}
-function isInfiniteQueryDefinition(e) {
-  return e.type === ENDPOINT_INFINITEQUERY;
-}
-function isAnyQueryDefinition(e) {
-  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);
-}
-function calculateProvidedBy(description, result, error, queryArg, meta, assertTagTypes) {
-  const finalDescription = isFunction(description) ? description(result, error, queryArg, meta) : description;
-  if (finalDescription) {
-    return filterMap(finalDescription, isNotNullish, (tag) => assertTagTypes(expandTagDescription(tag)));
-  }
-  return [];
-}
-function isFunction(t) {
-  return typeof t === "function";
-}
-function expandTagDescription(description) {
-  return typeof description === "string" ? {
-    type: description
-  } : description;
-}
-
-// src/query/utils/immerImports.ts
-import { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from "immer";
-
-// src/query/core/buildInitiate.ts
-import { formatProdErrorMessage as _formatProdErrorMessage } from "@reduxjs/toolkit";
-
-// src/tsHelpers.ts
-function asSafePromise(promise, fallback) {
-  return promise.catch(fallback);
-}
-
-// src/query/apiTypes.ts
-var getEndpointDefinition = (context, endpointName) => context.endpointDefinitions[endpointName];
-
-// src/query/core/buildInitiate.ts
-var forceQueryFnSymbol = Symbol("forceQueryFn");
-var isUpsertQuery = (arg) => typeof arg[forceQueryFnSymbol] === "function";
-function buildInitiate({
-  serializeQueryArgs,
-  queryThunk,
-  infiniteQueryThunk,
-  mutationThunk,
-  api,
-  context,
-  getInternalState
-}) {
-  const getRunningQueries = (dispatch) => getInternalState(dispatch)?.runningQueries;
-  const getRunningMutations = (dispatch) => getInternalState(dispatch)?.runningMutations;
-  const {
-    unsubscribeQueryResult,
-    removeMutationResult,
-    updateSubscriptionOptions
-  } = api.internalActions;
-  return {
-    buildInitiateQuery,
-    buildInitiateInfiniteQuery,
-    buildInitiateMutation,
-    getRunningQueryThunk,
-    getRunningMutationThunk,
-    getRunningQueriesThunk,
-    getRunningMutationsThunk
-  };
-  function getRunningQueryThunk(endpointName, queryArgs) {
-    return (dispatch) => {
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      return getRunningQueries(dispatch)?.get(queryCacheKey);
-    };
-  }
-  function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {
-    return (dispatch) => {
-      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId);
-    };
-  }
-  function getRunningQueriesThunk() {
-    return (dispatch) => filterNullishValues(getRunningQueries(dispatch));
-  }
-  function getRunningMutationsThunk() {
-    return (dispatch) => filterNullishValues(getRunningMutations(dispatch));
-  }
-  function middlewareWarning(dispatch) {
-    if (process.env.NODE_ENV !== "production") {
-      if (middlewareWarning.triggered) return;
-      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());
-      middlewareWarning.triggered = true;
-      if (typeof returnedValue !== "object" || typeof returnedValue?.type === "string") {
-        throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-You must add the middleware for RTK-Query to function correctly!`);
-      }
-    }
-  }
-  function buildInitiateAnyQuery(endpointName, endpointDefinition) {
-    const queryAction = (arg, {
-      subscribe = true,
-      forceRefetch,
-      subscriptionOptions,
-      [forceQueryFnSymbol]: forceQueryFn,
-      ...rest
-    } = {}) => (dispatch, getState) => {
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs: arg,
-        endpointDefinition,
-        endpointName
-      });
-      let thunk;
-      const commonThunkArgs = {
-        ...rest,
-        type: ENDPOINT_QUERY,
-        subscribe,
-        forceRefetch,
-        subscriptionOptions,
-        endpointName,
-        originalArgs: arg,
-        queryCacheKey,
-        [forceQueryFnSymbol]: forceQueryFn
-      };
-      if (isQueryDefinition(endpointDefinition)) {
-        thunk = queryThunk(commonThunkArgs);
-      } else {
-        const {
-          direction,
-          initialPageParam,
-          refetchCachedPages
-        } = rest;
-        thunk = infiniteQueryThunk({
-          ...commonThunkArgs,
-          // Supply these even if undefined. This helps with a field existence
-          // check over in `buildSlice.ts`
-          direction,
-          initialPageParam,
-          refetchCachedPages
-        });
-      }
-      const selector = api.endpoints[endpointName].select(arg);
-      const thunkResult = dispatch(thunk);
-      const stateAfter = selector(getState());
-      middlewareWarning(dispatch);
-      const {
-        requestId,
-        abort
-      } = thunkResult;
-      const skippedSynchronously = stateAfter.requestId !== requestId;
-      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);
-      const selectFromState = () => selector(getState());
-      const statePromise = Object.assign(forceQueryFn ? (
-        // a query has been forced (upsertQueryData)
-        // -> we want to resolve it once data has been written with the data that will be written
-        thunkResult.then(selectFromState)
-      ) : skippedSynchronously && !runningQuery ? (
-        // a query has been skipped due to a condition and we do not have any currently running query
-        // -> we want to resolve it immediately with the current data
-        Promise.resolve(stateAfter)
-      ) : (
-        // query just started or one is already in flight
-        // -> wait for the running query, then resolve with data from after that
-        Promise.all([runningQuery, thunkResult]).then(selectFromState)
-      ), {
-        arg,
-        requestId,
-        subscriptionOptions,
-        queryCacheKey,
-        abort,
-        async unwrap() {
-          const result = await statePromise;
-          if (result.isError) {
-            throw result.error;
-          }
-          return result.data;
-        },
-        refetch: (options) => dispatch(queryAction(arg, {
-          subscribe: false,
-          forceRefetch: true,
-          ...options
-        })),
-        unsubscribe() {
-          if (subscribe) dispatch(unsubscribeQueryResult({
-            queryCacheKey,
-            requestId
-          }));
-        },
-        updateSubscriptionOptions(options) {
-          statePromise.subscriptionOptions = options;
-          dispatch(updateSubscriptionOptions({
-            endpointName,
-            requestId,
-            queryCacheKey,
-            options
-          }));
-        }
-      });
-      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {
-        const runningQueries = getRunningQueries(dispatch);
-        runningQueries.set(queryCacheKey, statePromise);
-        statePromise.then(() => {
-          runningQueries.delete(queryCacheKey);
-        });
-      }
-      return statePromise;
-    };
-    return queryAction;
-  }
-  function buildInitiateQuery(endpointName, endpointDefinition) {
-    const queryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return queryAction;
-  }
-  function buildInitiateInfiniteQuery(endpointName, endpointDefinition) {
-    const infiniteQueryAction = buildInitiateAnyQuery(endpointName, endpointDefinition);
-    return infiniteQueryAction;
-  }
-  function buildInitiateMutation(endpointName) {
-    return (arg, {
-      track = true,
-      fixedCacheKey
-    } = {}) => (dispatch, getState) => {
-      const thunk = mutationThunk({
-        type: "mutation",
-        endpointName,
-        originalArgs: arg,
-        track,
-        fixedCacheKey
-      });
-      const thunkResult = dispatch(thunk);
-      middlewareWarning(dispatch);
-      const {
-        requestId,
-        abort,
-        unwrap
-      } = thunkResult;
-      const returnValuePromise = asSafePromise(thunkResult.unwrap().then((data) => ({
-        data
-      })), (error) => ({
-        error
-      }));
-      const reset = () => {
-        dispatch(removeMutationResult({
-          requestId,
-          fixedCacheKey
-        }));
-      };
-      const ret = Object.assign(returnValuePromise, {
-        arg: thunkResult.arg,
-        requestId,
-        abort,
-        unwrap,
-        reset
-      });
-      const runningMutations = getRunningMutations(dispatch);
-      runningMutations.set(requestId, ret);
-      ret.then(() => {
-        runningMutations.delete(requestId);
-      });
-      if (fixedCacheKey) {
-        runningMutations.set(fixedCacheKey, ret);
-        ret.then(() => {
-          if (runningMutations.get(fixedCacheKey) === ret) {
-            runningMutations.delete(fixedCacheKey);
-          }
-        });
-      }
-      return ret;
-    };
-  }
-}
-
-// src/query/standardSchema.ts
-import { SchemaError } from "@standard-schema/utils";
-var NamedSchemaError = class extends SchemaError {
-  constructor(issues, value, schemaName, _bqMeta) {
-    super(issues);
-    this.value = value;
-    this.schemaName = schemaName;
-    this._bqMeta = _bqMeta;
-  }
-};
-var shouldSkip = (skipSchemaValidation, schemaName) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;
-async function parseWithSchema(schema, data, schemaName, bqMeta) {
-  const result = await schema["~standard"].validate(data);
-  if (result.issues) {
-    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);
-  }
-  return result.value;
-}
-
-// src/query/core/buildThunks.ts
-function defaultTransformResponse(baseQueryReturnValue) {
-  return baseQueryReturnValue;
-}
-var addShouldAutoBatch = (arg = {}) => {
-  return {
-    ...arg,
-    [SHOULD_AUTOBATCH]: true
-  };
-};
-function buildThunks({
-  reducerPath,
-  baseQuery,
-  context: {
-    endpointDefinitions
-  },
-  serializeQueryArgs,
-  api,
-  assertTagType,
-  selectors,
-  onSchemaFailure,
-  catchSchemaFailure: globalCatchSchemaFailure,
-  skipSchemaValidation: globalSkipSchemaValidation
-}) {
-  const patchQueryData = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {
-    const endpointDefinition = endpointDefinitions[endpointName];
-    const queryCacheKey = serializeQueryArgs({
-      queryArgs: arg,
-      endpointDefinition,
-      endpointName
-    });
-    dispatch(api.internalActions.queryResultPatched({
-      queryCacheKey,
-      patches
-    }));
-    if (!updateProvided) {
-      return;
-    }
-    const newValue = api.endpoints[endpointName].select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, void 0, arg, {}, assertTagType);
-    dispatch(api.internalActions.updateProvidedBy([{
-      queryCacheKey,
-      providedTags
-    }]));
-  };
-  function addToStart(items, item, max = 0) {
-    const newItems = [item, ...items];
-    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;
-  }
-  function addToEnd(items, item, max = 0) {
-    const newItems = [...items, item];
-    return max && newItems.length > max ? newItems.slice(1) : newItems;
-  }
-  const updateQueryData = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {
-    const endpointDefinition = api.endpoints[endpointName];
-    const currentState = endpointDefinition.select(arg)(
-      // Work around TS 4.1 mismatch
-      getState()
-    );
-    const ret = {
-      patches: [],
-      inversePatches: [],
-      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))
-    };
-    if (currentState.status === STATUS_UNINITIALIZED) {
-      return ret;
-    }
-    let newValue;
-    if ("data" in currentState) {
-      if (isDraftable(currentState.data)) {
-        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);
-        ret.patches.push(...patches);
-        ret.inversePatches.push(...inversePatches);
-        newValue = value;
-      } else {
-        newValue = updateRecipe(currentState.data);
-        ret.patches.push({
-          op: "replace",
-          path: [],
-          value: newValue
-        });
-        ret.inversePatches.push({
-          op: "replace",
-          path: [],
-          value: currentState.data
-        });
-      }
-    }
-    if (ret.patches.length === 0) {
-      return ret;
-    }
-    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));
-    return ret;
-  };
-  const upsertQueryData = (endpointName, arg, value) => (dispatch) => {
-    const res = dispatch(api.endpoints[endpointName].initiate(arg, {
-      subscribe: false,
-      forceRefetch: true,
-      [forceQueryFnSymbol]: () => ({
-        data: value
-      })
-    }));
-    return res;
-  };
-  const getTransformCallbackForEndpoint = (endpointDefinition, transformFieldName) => {
-    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName] : defaultTransformResponse;
-  };
-  const executeEndpoint = async (arg, {
-    signal,
-    abort,
-    rejectWithValue,
-    fulfillWithValue,
-    dispatch,
-    getState,
-    extra
-  }) => {
-    const endpointDefinition = endpointDefinitions[arg.endpointName];
-    const {
-      metaSchema,
-      skipSchemaValidation = globalSkipSchemaValidation
-    } = endpointDefinition;
-    const isQuery = arg.type === ENDPOINT_QUERY;
-    try {
-      let transformResponse = defaultTransformResponse;
-      const baseQueryApi = {
-        signal,
-        abort,
-        dispatch,
-        getState,
-        extra,
-        endpoint: arg.endpointName,
-        type: arg.type,
-        forced: isQuery ? isForcedQuery(arg, getState()) : void 0,
-        queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-      };
-      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : void 0;
-      let finalQueryReturnValue;
-      const fetchPage = async (data, param, maxPages, previous) => {
-        if (param == null && data.pages.length) {
-          return Promise.resolve({
-            data
-          });
-        }
-        const finalQueryArg = {
-          queryArg: arg.originalArgs,
-          pageParam: param
-        };
-        const pageResponse = await executeRequest(finalQueryArg);
-        const addTo = previous ? addToStart : addToEnd;
-        return {
-          data: {
-            pages: addTo(data.pages, pageResponse.data, maxPages),
-            pageParams: addTo(data.pageParams, param, maxPages)
-          },
-          meta: pageResponse.meta
-        };
-      };
-      async function executeRequest(finalQueryArg) {
-        let result;
-        const {
-          extraOptions,
-          argSchema,
-          rawResponseSchema,
-          responseSchema
-        } = endpointDefinition;
-        if (argSchema && !shouldSkip(skipSchemaValidation, "arg")) {
-          finalQueryArg = await parseWithSchema(
-            argSchema,
-            finalQueryArg,
-            "argSchema",
-            {}
-            // we don't have a meta yet, so we can't pass it
-          );
-        }
-        if (forceQueryFn) {
-          result = forceQueryFn();
-        } else if (endpointDefinition.query) {
-          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformResponse");
-          result = await baseQuery(endpointDefinition.query(finalQueryArg), baseQueryApi, extraOptions);
-        } else {
-          result = await endpointDefinition.queryFn(finalQueryArg, baseQueryApi, extraOptions, (arg2) => baseQuery(arg2, baseQueryApi, extraOptions));
-        }
-        if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-          const what = endpointDefinition.query ? "`baseQuery`" : "`queryFn`";
-          let err;
-          if (!result) {
-            err = `${what} did not return anything.`;
-          } else if (typeof result !== "object") {
-            err = `${what} did not return an object.`;
-          } else if (result.error && result.data) {
-            err = `${what} returned an object containing both \`error\` and \`result\`.`;
-          } else if (result.error === void 0 && result.data === void 0) {
-            err = `${what} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``;
-          } else {
-            for (const key of Object.keys(result)) {
-              if (key !== "error" && key !== "data" && key !== "meta") {
-                err = `The object returned by ${what} has the unknown property ${key}.`;
-                break;
-              }
-            }
-          }
-          if (err) {
-            console.error(`Error encountered handling the endpoint ${arg.endpointName}.
-                  ${err}
-                  It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.
-                  Object returned was:`, result);
-          }
-        }
-        if (result.error) throw new HandledError(result.error, result.meta);
-        let {
-          data
-        } = result;
-        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, "rawResponse")) {
-          data = await parseWithSchema(rawResponseSchema, result.data, "rawResponseSchema", result.meta);
-        }
-        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);
-        if (responseSchema && !shouldSkip(skipSchemaValidation, "response")) {
-          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, "responseSchema", result.meta);
-        }
-        return {
-          ...result,
-          data: transformedResponse
-        };
-      }
-      if (isQuery && "infiniteQueryOptions" in endpointDefinition) {
-        const {
-          infiniteQueryOptions
-        } = endpointDefinition;
-        const {
-          maxPages = Infinity
-        } = infiniteQueryOptions;
-        const refetchCachedPages = arg.refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;
-        let result;
-        const blankData = {
-          pages: [],
-          pageParams: []
-        };
-        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data;
-        const isForcedQueryNeedingRefetch = (
-          // arg.forceRefetch
-          isForcedQuery(arg, getState()) && !arg.direction
-        );
-        const existingData = isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData;
-        if ("direction" in arg && arg.direction && existingData.pages.length) {
-          const previous = arg.direction === "backward";
-          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;
-          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);
-          result = await fetchPage(existingData, param, maxPages, previous);
-        } else {
-          const {
-            initialPageParam = infiniteQueryOptions.initialPageParam
-          } = arg;
-          const cachedPageParams = cachedData?.pageParams ?? [];
-          const firstPageParam = cachedPageParams[0] ?? initialPageParam;
-          const totalPages = cachedPageParams.length;
-          result = await fetchPage(existingData, firstPageParam, maxPages);
-          if (forceQueryFn) {
-            result = {
-              data: result.data.pages[0]
-            };
-          }
-          if (refetchCachedPages) {
-            for (let i = 1; i < totalPages; i++) {
-              const param = getNextPageParam(infiniteQueryOptions, result.data, arg.originalArgs);
-              result = await fetchPage(result.data, param, maxPages);
-            }
-          }
-        }
-        finalQueryReturnValue = result;
-      } else {
-        finalQueryReturnValue = await executeRequest(arg.originalArgs);
-      }
-      if (metaSchema && !shouldSkip(skipSchemaValidation, "meta") && finalQueryReturnValue.meta) {
-        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, "metaSchema", finalQueryReturnValue.meta);
-      }
-      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({
-        fulfilledTimeStamp: Date.now(),
-        baseQueryMeta: finalQueryReturnValue.meta
-      }));
-    } catch (error) {
-      let caughtError = error;
-      if (caughtError instanceof HandledError) {
-        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, "transformErrorResponse");
-        const {
-          rawErrorResponseSchema,
-          errorResponseSchema
-        } = endpointDefinition;
-        let {
-          value,
-          meta
-        } = caughtError;
-        try {
-          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, "rawErrorResponse")) {
-            value = await parseWithSchema(rawErrorResponseSchema, value, "rawErrorResponseSchema", meta);
-          }
-          if (metaSchema && !shouldSkip(skipSchemaValidation, "meta")) {
-            meta = await parseWithSchema(metaSchema, meta, "metaSchema", meta);
-          }
-          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);
-          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, "errorResponse")) {
-            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, "errorResponseSchema", meta);
-          }
-          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({
-            baseQueryMeta: meta
-          }));
-        } catch (e) {
-          caughtError = e;
-        }
-      }
-      try {
-        if (caughtError instanceof NamedSchemaError) {
-          const info = {
-            endpoint: arg.endpointName,
-            arg: arg.originalArgs,
-            type: arg.type,
-            queryCacheKey: isQuery ? arg.queryCacheKey : void 0
-          };
-          endpointDefinition.onSchemaFailure?.(caughtError, info);
-          onSchemaFailure?.(caughtError, info);
-          const {
-            catchSchemaFailure = globalCatchSchemaFailure
-          } = endpointDefinition;
-          if (catchSchemaFailure) {
-            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({
-              baseQueryMeta: caughtError._bqMeta
-            }));
-          }
-        }
-      } catch (e) {
-        caughtError = e;
-      }
-      if (typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
-        console.error(`An unhandled error occurred processing a request for the endpoint "${arg.endpointName}".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`, caughtError);
-      } else {
-        console.error(caughtError);
-      }
-      throw caughtError;
-    }
-  };
-  function isForcedQuery(arg, state) {
-    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);
-    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;
-    const fulfilledVal = requestState?.fulfilledTimeStamp;
-    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);
-    if (refetchVal) {
-      return refetchVal === true || (Number(/* @__PURE__ */ new Date()) - Number(fulfilledVal)) / 1e3 >= refetchVal;
-    }
-    return false;
-  }
-  const createQueryThunk = () => {
-    const generatedQueryThunk = createAsyncThunk(`${reducerPath}/executeQuery`, executeEndpoint, {
-      getPendingMeta({
-        arg
-      }) {
-        const endpointDefinition = endpointDefinitions[arg.endpointName];
-        return addShouldAutoBatch({
-          startedTimeStamp: Date.now(),
-          ...isInfiniteQueryDefinition(endpointDefinition) ? {
-            direction: arg.direction
-          } : {}
-        });
-      },
-      condition(queryThunkArg, {
-        getState
-      }) {
-        const state = getState();
-        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);
-        const fulfilledVal = requestState?.fulfilledTimeStamp;
-        const currentArg = queryThunkArg.originalArgs;
-        const previousArg = requestState?.originalArgs;
-        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];
-        const direction = queryThunkArg.direction;
-        if (isUpsertQuery(queryThunkArg)) {
-          return true;
-        }
-        if (requestState?.status === "pending") {
-          return false;
-        }
-        if (isForcedQuery(queryThunkArg, state)) {
-          return true;
-        }
-        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({
-          currentArg,
-          previousArg,
-          endpointState: requestState,
-          state
-        })) {
-          return true;
-        }
-        if (fulfilledVal && !direction) {
-          return false;
-        }
-        return true;
-      },
-      dispatchConditionRejection: true
-    });
-    return generatedQueryThunk;
-  };
-  const queryThunk = createQueryThunk();
-  const infiniteQueryThunk = createQueryThunk();
-  const mutationThunk = createAsyncThunk(`${reducerPath}/executeMutation`, executeEndpoint, {
-    getPendingMeta() {
-      return addShouldAutoBatch({
-        startedTimeStamp: Date.now()
-      });
-    }
-  });
-  const hasTheForce = (options) => "force" in options;
-  const hasMaxAge = (options) => "ifOlderThan" in options;
-  const prefetch = (endpointName, arg, options = {}) => (dispatch, getState) => {
-    const force = hasTheForce(options) && options.force;
-    const maxAge = hasMaxAge(options) && options.ifOlderThan;
-    const queryAction = (force2 = true) => {
-      const options2 = {
-        forceRefetch: force2,
-        subscribe: false
-      };
-      return api.endpoints[endpointName].initiate(arg, options2);
-    };
-    const latestStateValue = api.endpoints[endpointName].select(arg)(getState());
-    if (force) {
-      dispatch(queryAction());
-    } else if (maxAge) {
-      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;
-      if (!lastFulfilledTs) {
-        dispatch(queryAction());
-        return;
-      }
-      const shouldRetrigger = (Number(/* @__PURE__ */ new Date()) - Number(new Date(lastFulfilledTs))) / 1e3 >= maxAge;
-      if (shouldRetrigger) {
-        dispatch(queryAction());
-      }
-    } else {
-      dispatch(queryAction(false));
-    }
-  };
-  function matchesEndpoint(endpointName) {
-    return (action) => action?.meta?.arg?.endpointName === endpointName;
-  }
-  function buildMatchThunkActions(thunk, endpointName) {
-    return {
-      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),
-      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),
-      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))
-    };
-  }
-  return {
-    queryThunk,
-    mutationThunk,
-    infiniteQueryThunk,
-    prefetch,
-    updateQueryData,
-    upsertQueryData,
-    patchQueryData,
-    buildMatchThunkActions
-  };
-}
-function getNextPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  const lastIndex = pages.length - 1;
-  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);
-}
-function getPreviousPageParam(options, {
-  pages,
-  pageParams
-}, queryArg) {
-  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);
-}
-function calculateProvidedByThunk(action, type, endpointDefinitions, assertTagType) {
-  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type], isFulfilled(action) ? action.payload : void 0, isRejectedWithValue(action) ? action.payload : void 0, action.meta.arg.originalArgs, "baseQueryMeta" in action.meta ? action.meta.baseQueryMeta : void 0, assertTagType);
-}
-
-// src/query/utils/getCurrent.ts
-function getCurrent(value) {
-  return isDraft(value) ? current(value) : value;
-}
-
-// src/query/core/buildSlice.ts
-function updateQuerySubstateIfExists(state, queryCacheKey, update) {
-  const substate = state[queryCacheKey];
-  if (substate) {
-    update(substate);
-  }
-}
-function getMutationCacheKey(id) {
-  return ("arg" in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;
-}
-function updateMutationSubstateIfExists(state, id, update) {
-  const substate = state[getMutationCacheKey(id)];
-  if (substate) {
-    update(substate);
-  }
-}
-var initialState = {};
-function buildSlice({
-  reducerPath,
-  queryThunk,
-  mutationThunk,
-  serializeQueryArgs,
-  context: {
-    endpointDefinitions: definitions,
-    apiUid,
-    extractRehydrationInfo,
-    hasRehydrationInfo
-  },
-  assertTagType,
-  config
-}) {
-  const resetApiState = createAction(`${reducerPath}/resetApiState`);
-  function writePendingCacheEntry(draft, arg, upserting, meta) {
-    draft[arg.queryCacheKey] ??= {
-      status: STATUS_UNINITIALIZED,
-      endpointName: arg.endpointName
-    };
-    updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-      substate.status = STATUS_PENDING;
-      substate.requestId = upserting && substate.requestId ? (
-        // for `upsertQuery` **updates**, keep the current `requestId`
-        substate.requestId
-      ) : (
-        // for normal queries or `upsertQuery` **inserts** always update the `requestId`
-        meta.requestId
-      );
-      if (arg.originalArgs !== void 0) {
-        substate.originalArgs = arg.originalArgs;
-      }
-      substate.startedTimeStamp = meta.startedTimeStamp;
-      const endpointDefinition = definitions[meta.arg.endpointName];
-      if (isInfiniteQueryDefinition(endpointDefinition) && "direction" in arg) {
-        ;
-        substate.direction = arg.direction;
-      }
-    });
-  }
-  function writeFulfilledCacheEntry(draft, meta, payload, upserting) {
-    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {
-      if (substate.requestId !== meta.requestId && !upserting) return;
-      const {
-        merge
-      } = definitions[meta.arg.endpointName];
-      substate.status = STATUS_FULFILLED;
-      if (merge) {
-        if (substate.data !== void 0) {
-          const {
-            fulfilledTimeStamp,
-            arg,
-            baseQueryMeta,
-            requestId
-          } = meta;
-          let newData = createNextState(substate.data, (draftSubstateData) => {
-            return merge(draftSubstateData, payload, {
-              arg: arg.originalArgs,
-              baseQueryMeta,
-              fulfilledTimeStamp,
-              requestId
-            });
-          });
-          substate.data = newData;
-        } else {
-          substate.data = payload;
-        }
-      } else {
-        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;
-      }
-      delete substate.error;
-      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-    });
-  }
-  const querySlice = createSlice({
-    name: `${reducerPath}/queries`,
-    initialState,
-    reducers: {
-      removeQueryResult: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey
-          }
-        }) {
-          delete draft[queryCacheKey];
-        },
-        prepare: prepareAutoBatched()
-      },
-      cacheEntriesUpserted: {
-        reducer(draft, action) {
-          for (const entry of action.payload) {
-            const {
-              queryDescription: arg,
-              value
-            } = entry;
-            writePendingCacheEntry(draft, arg, true, {
-              arg,
-              requestId: action.meta.requestId,
-              startedTimeStamp: action.meta.timestamp
-            });
-            writeFulfilledCacheEntry(
-              draft,
-              {
-                arg,
-                requestId: action.meta.requestId,
-                fulfilledTimeStamp: action.meta.timestamp,
-                baseQueryMeta: {}
-              },
-              value,
-              // We know we're upserting here
-              true
-            );
-          }
-        },
-        prepare: (payload) => {
-          const queryDescriptions = payload.map((entry) => {
-            const {
-              endpointName,
-              arg,
-              value
-            } = entry;
-            const endpointDefinition = definitions[endpointName];
-            const queryDescription = {
-              type: ENDPOINT_QUERY,
-              endpointName,
-              originalArgs: entry.arg,
-              queryCacheKey: serializeQueryArgs({
-                queryArgs: arg,
-                endpointDefinition,
-                endpointName
-              })
-            };
-            return {
-              queryDescription,
-              value
-            };
-          });
-          const result = {
-            payload: queryDescriptions,
-            meta: {
-              [SHOULD_AUTOBATCH]: true,
-              requestId: nanoid(),
-              timestamp: Date.now()
-            }
-          };
-          return result;
-        }
-      },
-      queryResultPatched: {
-        reducer(draft, {
-          payload: {
-            queryCacheKey,
-            patches
-          }
-        }) {
-          updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {
-            substate.data = applyPatches(substate.data, patches.concat());
-          });
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(queryThunk.pending, (draft, {
-        meta,
-        meta: {
-          arg
-        }
-      }) => {
-        const upserting = isUpsertQuery(arg);
-        writePendingCacheEntry(draft, arg, upserting, meta);
-      }).addCase(queryThunk.fulfilled, (draft, {
-        meta,
-        payload
-      }) => {
-        const upserting = isUpsertQuery(meta.arg);
-        writeFulfilledCacheEntry(draft, meta, payload, upserting);
-      }).addCase(queryThunk.rejected, (draft, {
-        meta: {
-          condition,
-          arg,
-          requestId
-        },
-        error,
-        payload
-      }) => {
-        updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-          if (condition) {
-          } else {
-            if (substate.requestId !== requestId) return;
-            substate.status = STATUS_REJECTED;
-            substate.error = payload ?? error;
-          }
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          queries
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(queries)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const mutationSlice = createSlice({
-    name: `${reducerPath}/mutations`,
-    initialState,
-    reducers: {
-      removeMutationResult: {
-        reducer(draft, {
-          payload
-        }) {
-          const cacheKey = getMutationCacheKey(payload);
-          if (cacheKey in draft) {
-            delete draft[cacheKey];
-          }
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(mutationThunk.pending, (draft, {
-        meta,
-        meta: {
-          requestId,
-          arg,
-          startedTimeStamp
-        }
-      }) => {
-        if (!arg.track) return;
-        draft[getMutationCacheKey(meta)] = {
-          requestId,
-          status: STATUS_PENDING,
-          endpointName: arg.endpointName,
-          startedTimeStamp
-        };
-      }).addCase(mutationThunk.fulfilled, (draft, {
-        payload,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_FULFILLED;
-          substate.data = payload;
-          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;
-        });
-      }).addCase(mutationThunk.rejected, (draft, {
-        payload,
-        error,
-        meta
-      }) => {
-        if (!meta.arg.track) return;
-        updateMutationSubstateIfExists(draft, meta, (substate) => {
-          if (substate.requestId !== meta.requestId) return;
-          substate.status = STATUS_REJECTED;
-          substate.error = payload ?? error;
-        });
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          mutations
-        } = extractRehydrationInfo(action);
-        for (const [key, entry] of Object.entries(mutations)) {
-          if (
-            // do not rehydrate entries that were currently in flight.
-            (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) && // only rehydrate endpoints that were persisted using a `fixedCacheKey`
-            key !== entry?.requestId
-          ) {
-            draft[key] = entry;
-          }
-        }
-      });
-    }
-  });
-  const initialInvalidationState = {
-    tags: {},
-    keys: {}
-  };
-  const invalidationSlice = createSlice({
-    name: `${reducerPath}/invalidation`,
-    initialState: initialInvalidationState,
-    reducers: {
-      updateProvidedBy: {
-        reducer(draft, action) {
-          for (const {
-            queryCacheKey,
-            providedTags
-          } of action.payload) {
-            removeCacheKeyFromTags(draft, queryCacheKey);
-            for (const {
-              type,
-              id
-            } of providedTags) {
-              const subscribedQueries = (draft.tags[type] ??= {})[id || "__internal_without_id"] ??= [];
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-            }
-            draft.keys[queryCacheKey] = providedTags;
-          }
-        },
-        prepare: prepareAutoBatched()
-      }
-    },
-    extraReducers(builder) {
-      builder.addCase(querySlice.actions.removeQueryResult, (draft, {
-        payload: {
-          queryCacheKey
-        }
-      }) => {
-        removeCacheKeyFromTags(draft, queryCacheKey);
-      }).addMatcher(hasRehydrationInfo, (draft, action) => {
-        const {
-          provided
-        } = extractRehydrationInfo(action);
-        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {
-          for (const [id, cacheKeys] of Object.entries(incomingTags)) {
-            const subscribedQueries = (draft.tags[type] ??= {})[id || "__internal_without_id"] ??= [];
-            for (const queryCacheKey of cacheKeys) {
-              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey);
-              }
-              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];
-            }
-          }
-        }
-      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {
-        writeProvidedTagsForQueries(draft, [action]);
-      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {
-        const mockActions = action.payload.map(({
-          queryDescription,
-          value
-        }) => {
-          return {
-            type: "UNKNOWN",
-            payload: value,
-            meta: {
-              requestStatus: "fulfilled",
-              requestId: "UNKNOWN",
-              arg: queryDescription
-            }
-          };
-        });
-        writeProvidedTagsForQueries(draft, mockActions);
-      });
-    }
-  });
-  function removeCacheKeyFromTags(draft, queryCacheKey) {
-    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);
-    for (const tag of existingTags) {
-      const tagType = tag.type;
-      const tagId = tag.id ?? "__internal_without_id";
-      const tagSubscriptions = draft.tags[tagType]?.[tagId];
-      if (tagSubscriptions) {
-        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter((qc) => qc !== queryCacheKey);
-      }
-    }
-    delete draft.keys[queryCacheKey];
-  }
-  function writeProvidedTagsForQueries(draft, actions3) {
-    const providedByEntries = actions3.map((action) => {
-      const providedTags = calculateProvidedByThunk(action, "providesTags", definitions, assertTagType);
-      const {
-        queryCacheKey
-      } = action.meta.arg;
-      return {
-        queryCacheKey,
-        providedTags
-      };
-    });
-    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));
-  }
-  const subscriptionSlice = createSlice({
-    name: `${reducerPath}/subscriptions`,
-    initialState,
-    reducers: {
-      updateSubscriptionOptions(d, a) {
-      },
-      unsubscribeQueryResult(d, a) {
-      },
-      internal_getRTKQSubscriptions() {
-      }
-    }
-  });
-  const internalSubscriptionsSlice = createSlice({
-    name: `${reducerPath}/internalSubscriptions`,
-    initialState,
-    reducers: {
-      subscriptionsUpdated: {
-        reducer(state, action) {
-          return applyPatches(state, action.payload);
-        },
-        prepare: prepareAutoBatched()
-      }
-    }
-  });
-  const configSlice = createSlice({
-    name: `${reducerPath}/config`,
-    initialState: {
-      online: isOnline(),
-      focused: isDocumentVisible(),
-      middlewareRegistered: false,
-      ...config
-    },
-    reducers: {
-      middlewareRegistered(state, {
-        payload
-      }) {
-        state.middlewareRegistered = state.middlewareRegistered === "conflict" || apiUid !== payload ? "conflict" : true;
-      }
-    },
-    extraReducers: (builder) => {
-      builder.addCase(onOnline, (state) => {
-        state.online = true;
-      }).addCase(onOffline, (state) => {
-        state.online = false;
-      }).addCase(onFocus, (state) => {
-        state.focused = true;
-      }).addCase(onFocusLost, (state) => {
-        state.focused = false;
-      }).addMatcher(hasRehydrationInfo, (draft) => ({
-        ...draft
-      }));
-    }
-  });
-  const combinedReducer = combineReducers({
-    queries: querySlice.reducer,
-    mutations: mutationSlice.reducer,
-    provided: invalidationSlice.reducer,
-    subscriptions: internalSubscriptionsSlice.reducer,
-    config: configSlice.reducer
-  });
-  const reducer = (state, action) => combinedReducer(resetApiState.match(action) ? void 0 : state, action);
-  const actions2 = {
-    ...configSlice.actions,
-    ...querySlice.actions,
-    ...subscriptionSlice.actions,
-    ...internalSubscriptionsSlice.actions,
-    ...mutationSlice.actions,
-    ...invalidationSlice.actions,
-    resetApiState
-  };
-  return {
-    reducer,
-    actions: actions2
-  };
-}
-
-// src/query/core/buildSelectors.ts
-var skipToken = /* @__PURE__ */ Symbol.for("RTKQ/skipToken");
-var initialSubState = {
-  status: STATUS_UNINITIALIZED
-};
-var defaultQuerySubState = /* @__PURE__ */ createNextState(initialSubState, () => {
-});
-var defaultMutationSubState = /* @__PURE__ */ createNextState(initialSubState, () => {
-});
-function buildSelectors({
-  serializeQueryArgs,
-  reducerPath,
-  createSelector: createSelector2
-}) {
-  const selectSkippedQuery = (state) => defaultQuerySubState;
-  const selectSkippedMutation = (state) => defaultMutationSubState;
-  return {
-    buildQuerySelector,
-    buildInfiniteQuerySelector,
-    buildMutationSelector,
-    selectInvalidatedBy,
-    selectCachedArgsForQuery,
-    selectApiState,
-    selectQueries,
-    selectMutations,
-    selectQueryEntry,
-    selectConfig
-  };
-  function withRequestFlags(substate) {
-    return {
-      ...substate,
-      ...getRequestStatusFlags(substate.status)
-    };
-  }
-  function selectApiState(rootState) {
-    const state = rootState[reducerPath];
-    if (process.env.NODE_ENV !== "production") {
-      if (!state) {
-        if (selectApiState.triggered) return state;
-        selectApiState.triggered = true;
-        console.error(`Error: No data found at \`state.${reducerPath}\`. Did you forget to add the reducer to the store?`);
-      }
-    }
-    return state;
-  }
-  function selectQueries(rootState) {
-    return selectApiState(rootState)?.queries;
-  }
-  function selectQueryEntry(rootState, cacheKey) {
-    return selectQueries(rootState)?.[cacheKey];
-  }
-  function selectMutations(rootState) {
-    return selectApiState(rootState)?.mutations;
-  }
-  function selectConfig(rootState) {
-    return selectApiState(rootState)?.config;
-  }
-  function buildAnyQuerySelector(endpointName, endpointDefinition, combiner) {
-    return (queryArgs) => {
-      if (queryArgs === skipToken) {
-        return createSelector2(selectSkippedQuery, combiner);
-      }
-      const serializedArgs = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName
-      });
-      const selectQuerySubstate = (state) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;
-      return createSelector2(selectQuerySubstate, combiner);
-    };
-  }
-  function buildQuerySelector(endpointName, endpointDefinition) {
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags);
-  }
-  function buildInfiniteQuerySelector(endpointName, endpointDefinition) {
-    const {
-      infiniteQueryOptions
-    } = endpointDefinition;
-    function withInfiniteQueryResultFlags(substate) {
-      const stateWithRequestFlags = {
-        ...substate,
-        ...getRequestStatusFlags(substate.status)
-      };
-      const {
-        isLoading,
-        isError,
-        direction
-      } = stateWithRequestFlags;
-      const isForward = direction === "forward";
-      const isBackward = direction === "backward";
-      return {
-        ...stateWithRequestFlags,
-        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),
-        isFetchingNextPage: isLoading && isForward,
-        isFetchingPreviousPage: isLoading && isBackward,
-        isFetchNextPageError: isError && isForward,
-        isFetchPreviousPageError: isError && isBackward
-      };
-    }
-    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags);
-  }
-  function buildMutationSelector() {
-    return (id) => {
-      let mutationId;
-      if (typeof id === "object") {
-        mutationId = getMutationCacheKey(id) ?? skipToken;
-      } else {
-        mutationId = id;
-      }
-      const selectMutationSubstate = (state) => selectApiState(state)?.mutations?.[mutationId] ?? defaultMutationSubState;
-      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;
-      return createSelector2(finalSelectMutationSubstate, withRequestFlags);
-    };
-  }
-  function selectInvalidatedBy(state, tags) {
-    const apiState = state[reducerPath];
-    const toInvalidate = /* @__PURE__ */ new Set();
-    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);
-    for (const tag of finalTags) {
-      const provided = apiState.provided.tags[tag.type];
-      if (!provided) {
-        continue;
-      }
-      let invalidateSubscriptions = (tag.id !== void 0 ? (
-        // id given: invalidate all queries that provide this type & id
-        provided[tag.id]
-      ) : (
-        // no id: invalidate all queries that provide this type
-        Object.values(provided).flat()
-      )) ?? [];
-      for (const invalidate of invalidateSubscriptions) {
-        toInvalidate.add(invalidate);
-      }
-    }
-    return Array.from(toInvalidate.values()).flatMap((queryCacheKey) => {
-      const querySubState = apiState.queries[queryCacheKey];
-      return querySubState ? {
-        queryCacheKey,
-        endpointName: querySubState.endpointName,
-        originalArgs: querySubState.originalArgs
-      } : [];
-    });
-  }
-  function selectCachedArgsForQuery(state, queryName) {
-    return filterMap(Object.values(selectQueries(state)), (entry) => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, (entry) => entry.originalArgs);
-  }
-  function getHasNextPage(options, data, queryArg) {
-    if (!data) return false;
-    return getNextPageParam(options, data, queryArg) != null;
-  }
-  function getHasPreviousPage(options, data, queryArg) {
-    if (!data || !options.getPreviousPageParam) return false;
-    return getPreviousPageParam(options, data, queryArg) != null;
-  }
-}
-
-// src/query/createApi.ts
-import { formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage22, formatProdErrorMessage as _formatProdErrorMessage3 } from "@reduxjs/toolkit";
-
-// src/query/defaultSerializeQueryArgs.ts
-var cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;
-var defaultSerializeQueryArgs = ({
-  endpointName,
-  queryArgs
-}) => {
-  let serialized = "";
-  const cached = cache?.get(queryArgs);
-  if (typeof cached === "string") {
-    serialized = cached;
-  } else {
-    const stringified = JSON.stringify(queryArgs, (key, value) => {
-      value = typeof value === "bigint" ? {
-        $bigint: value.toString()
-      } : value;
-      value = isPlainObject(value) ? Object.keys(value).sort().reduce((acc, key2) => {
-        acc[key2] = value[key2];
-        return acc;
-      }, {}) : value;
-      return value;
-    });
-    if (isPlainObject(queryArgs)) {
-      cache?.set(queryArgs, stringified);
-    }
-    serialized = stringified;
-  }
-  return `${endpointName}(${serialized})`;
-};
-
-// src/query/createApi.ts
-import { weakMapMemoize } from "reselect";
-function buildCreateApi(...modules) {
-  return function baseCreateApi(options) {
-    const extractRehydrationInfo = weakMapMemoize((action) => options.extractRehydrationInfo?.(action, {
-      reducerPath: options.reducerPath ?? "api"
-    }));
-    const optionsWithDefaults = {
-      reducerPath: "api",
-      keepUnusedDataFor: 60,
-      refetchOnMountOrArgChange: false,
-      refetchOnFocus: false,
-      refetchOnReconnect: false,
-      invalidationBehavior: "delayed",
-      ...options,
-      extractRehydrationInfo,
-      serializeQueryArgs(queryArgsApi) {
-        let finalSerializeQueryArgs = defaultSerializeQueryArgs;
-        if ("serializeQueryArgs" in queryArgsApi.endpointDefinition) {
-          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs;
-          finalSerializeQueryArgs = (queryArgsApi2) => {
-            const initialResult = endpointSQA(queryArgsApi2);
-            if (typeof initialResult === "string") {
-              return initialResult;
-            } else {
-              return defaultSerializeQueryArgs({
-                ...queryArgsApi2,
-                queryArgs: initialResult
-              });
-            }
-          };
-        } else if (options.serializeQueryArgs) {
-          finalSerializeQueryArgs = options.serializeQueryArgs;
-        }
-        return finalSerializeQueryArgs(queryArgsApi);
-      },
-      tagTypes: [...options.tagTypes || []]
-    };
-    const context = {
-      endpointDefinitions: {},
-      batch(fn) {
-        fn();
-      },
-      apiUid: nanoid(),
-      extractRehydrationInfo,
-      hasRehydrationInfo: weakMapMemoize((action) => extractRehydrationInfo(action) != null)
-    };
-    const api = {
-      injectEndpoints,
-      enhanceEndpoints({
-        addTagTypes,
-        endpoints
-      }) {
-        if (addTagTypes) {
-          for (const eT of addTagTypes) {
-            if (!optionsWithDefaults.tagTypes.includes(eT)) {
-              ;
-              optionsWithDefaults.tagTypes.push(eT);
-            }
-          }
-        }
-        if (endpoints) {
-          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {
-            if (typeof partialDefinition === "function") {
-              partialDefinition(getEndpointDefinition(context, endpointName));
-            } else {
-              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);
-            }
-          }
-        }
-        return api;
-      }
-    };
-    const initializedModules = modules.map((m) => m.init(api, optionsWithDefaults, context));
-    function injectEndpoints(inject) {
-      const evaluatedEndpoints = inject.endpoints({
-        query: (x) => ({
-          ...x,
-          type: ENDPOINT_QUERY
-        }),
-        mutation: (x) => ({
-          ...x,
-          type: ENDPOINT_MUTATION
-        }),
-        infiniteQuery: (x) => ({
-          ...x,
-          type: ENDPOINT_INFINITEQUERY
-        })
-      });
-      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {
-        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {
-          if (inject.overrideExisting === "throw") {
-            throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage2(39) : `called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          } else if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-            console.error(`called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``);
-          }
-          continue;
-        }
-        if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-          if (isInfiniteQueryDefinition(definition)) {
-            const {
-              infiniteQueryOptions
-            } = definition;
-            const {
-              maxPages,
-              getPreviousPageParam: getPreviousPageParam2
-            } = infiniteQueryOptions;
-            if (typeof maxPages === "number") {
-              if (maxPages < 1) {
-                throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage22(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);
-              }
-              if (typeof getPreviousPageParam2 !== "function") {
-                throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);
-              }
-            }
-          }
-        }
-        context.endpointDefinitions[endpointName] = definition;
-        for (const m of initializedModules) {
-          m.injectEndpoint(endpointName, definition);
-        }
-      }
-      return api;
-    }
-    return api.injectEndpoints({
-      endpoints: options.endpoints
-    });
-  };
-}
-
-// src/query/fakeBaseQuery.ts
-import { formatProdErrorMessage as _formatProdErrorMessage4 } from "@reduxjs/toolkit";
-var _NEVER = /* @__PURE__ */ Symbol();
-function fakeBaseQuery() {
-  return function() {
-    throw new Error(process.env.NODE_ENV === "production" ? _formatProdErrorMessage4(33) : "When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.");
-  };
-}
-
-// src/query/tsHelpers.ts
-function assertCast(v) {
-}
-function safeAssign(target, ...args) {
-  return Object.assign(target, ...args);
-}
-
-// src/query/core/buildMiddleware/batchActions.ts
-var buildBatchedActionsHandler = ({
-  api,
-  queryThunk,
-  internalState,
-  mwApi
-}) => {
-  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;
-  let previousSubscriptions = null;
-  let updateSyncTimer = null;
-  const {
-    updateSubscriptionOptions,
-    unsubscribeQueryResult
-  } = api.internalActions;
-  const actuallyMutateSubscriptions = (currentSubscriptions, action) => {
-    if (updateSubscriptionOptions.match(action)) {
-      const {
-        queryCacheKey,
-        requestId,
-        options
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub?.has(requestId)) {
-        sub.set(requestId, options);
-      }
-      return true;
-    }
-    if (unsubscribeQueryResult.match(action)) {
-      const {
-        queryCacheKey,
-        requestId
-      } = action.payload;
-      const sub = currentSubscriptions.get(queryCacheKey);
-      if (sub) {
-        sub.delete(requestId);
-      }
-      return true;
-    }
-    if (api.internalActions.removeQueryResult.match(action)) {
-      currentSubscriptions.delete(action.payload.queryCacheKey);
-      return true;
-    }
-    if (queryThunk.pending.match(action)) {
-      const {
-        meta: {
-          arg,
-          requestId
-        }
-      } = action;
-      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-      if (arg.subscribe) {
-        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});
-      }
-      return true;
-    }
-    let mutated = false;
-    if (queryThunk.rejected.match(action)) {
-      const {
-        meta: {
-          condition,
-          arg,
-          requestId
-        }
-      } = action;
-      if (condition && arg.subscribe) {
-        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);
-        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});
-        mutated = true;
-      }
-    }
-    return mutated;
-  };
-  const getSubscriptions = () => internalState.currentSubscriptions;
-  const getSubscriptionCount = (queryCacheKey) => {
-    const subscriptions = getSubscriptions();
-    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);
-    return subscriptionsForQueryArg?.size ?? 0;
-  };
-  const isRequestSubscribed = (queryCacheKey, requestId) => {
-    const subscriptions = getSubscriptions();
-    return !!subscriptions?.get(queryCacheKey)?.get(requestId);
-  };
-  const subscriptionSelectors = {
-    getSubscriptions,
-    getSubscriptionCount,
-    isRequestSubscribed
-  };
-  function serializeSubscriptions(currentSubscriptions) {
-    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));
-  }
-  return (action, mwApi2) => {
-    if (!previousSubscriptions) {
-      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-    }
-    if (api.util.resetApiState.match(action)) {
-      previousSubscriptions = {};
-      internalState.currentSubscriptions.clear();
-      updateSyncTimer = null;
-      return [true, false];
-    }
-    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {
-      return [false, subscriptionSelectors];
-    }
-    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);
-    let actionShouldContinue = true;
-    if (process.env.NODE_ENV === "test" && typeof action.type === "string" && action.type === `${api.reducerPath}/getPolling`) {
-      return [false, internalState.currentPolls];
-    }
-    if (didMutate) {
-      if (!updateSyncTimer) {
-        updateSyncTimer = setTimeout(() => {
-          const newSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);
-          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);
-          mwApi2.next(api.internalActions.subscriptionsUpdated(patches));
-          previousSubscriptions = newSubscriptions;
-          updateSyncTimer = null;
-        }, 500);
-      }
-      const isSubscriptionSliceAction = typeof action.type == "string" && !!action.type.startsWith(subscriptionsPrefix);
-      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;
-      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;
-    }
-    return [actionShouldContinue, false];
-  };
-};
-
-// src/query/core/buildMiddleware/cacheCollection.ts
-var THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2147483647 / 1e3 - 1;
-var buildCacheCollectionHandler = ({
-  reducerPath,
-  api,
-  queryThunk,
-  context,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectConfig
-  },
-  getRunningQueryThunk,
-  mwApi
-}) => {
-  const {
-    removeQueryResult,
-    unsubscribeQueryResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);
-  function anySubscriptionsRemainingForKey(queryCacheKey) {
-    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);
-    if (!subscriptions) {
-      return false;
-    }
-    const hasSubscriptions = subscriptions.size > 0;
-    return hasSubscriptions;
-  }
-  const currentRemovalTimeouts = {};
-  function abortAllPromises(promiseMap) {
-    for (const promise of promiseMap.values()) {
-      promise?.abort?.();
-    }
-  }
-  const handler = (action, mwApi2) => {
-    const state = mwApi2.getState();
-    const config = selectConfig(state);
-    if (canTriggerUnsubscribe(action)) {
-      let queryCacheKeys;
-      if (cacheEntriesUpserted.match(action)) {
-        queryCacheKeys = action.payload.map((entry) => entry.queryDescription.queryCacheKey);
-      } else {
-        const {
-          queryCacheKey
-        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;
-        queryCacheKeys = [queryCacheKey];
-      }
-      handleUnsubscribeMany(queryCacheKeys, mwApi2, config);
-    }
-    if (api.util.resetApiState.match(action)) {
-      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {
-        if (timeout) clearTimeout(timeout);
-        delete currentRemovalTimeouts[key];
-      }
-      abortAllPromises(internalState.runningQueries);
-      abortAllPromises(internalState.runningMutations);
-    }
-    if (context.hasRehydrationInfo(action)) {
-      const {
-        queries
-      } = context.extractRehydrationInfo(action);
-      handleUnsubscribeMany(Object.keys(queries), mwApi2, config);
-    }
-  };
-  function handleUnsubscribeMany(cacheKeys, api2, config) {
-    const state = api2.getState();
-    for (const queryCacheKey of cacheKeys) {
-      const entry = selectQueryEntry(state, queryCacheKey);
-      if (entry?.endpointName) {
-        handleUnsubscribe(queryCacheKey, entry.endpointName, api2, config);
-      }
-    }
-  }
-  function handleUnsubscribe(queryCacheKey, endpointName, api2, config) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;
-    if (keepUnusedDataFor === Infinity) {
-      return;
-    }
-    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));
-    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-      const currentTimeout = currentRemovalTimeouts[queryCacheKey];
-      if (currentTimeout) {
-        clearTimeout(currentTimeout);
-      }
-      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {
-        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-          const entry = selectQueryEntry(api2.getState(), queryCacheKey);
-          if (entry?.endpointName) {
-            const runningQuery = api2.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));
-            runningQuery?.abort();
-          }
-          api2.dispatch(removeQueryResult({
-            queryCacheKey
-          }));
-        }
-        delete currentRemovalTimeouts[queryCacheKey];
-      }, finalKeepUnusedDataFor * 1e3);
-    }
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/cacheLifecycle.ts
-var neverResolvedError = new Error("Promise never resolved before cacheEntryRemoved.");
-var buildCacheLifecycleHandler = ({
-  api,
-  reducerPath,
-  context,
-  queryThunk,
-  mutationThunk,
-  internalState,
-  selectors: {
-    selectQueryEntry,
-    selectApiState
-  }
-}) => {
-  const isQueryThunk = isAsyncThunkAction(queryThunk);
-  const isMutationThunk = isAsyncThunkAction(mutationThunk);
-  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const {
-    removeQueryResult,
-    removeMutationResult,
-    cacheEntriesUpserted
-  } = api.internalActions;
-  function resolveLifecycleEntry(cacheKey, data, meta) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle?.valueResolved) {
-      lifecycle.valueResolved({
-        data,
-        meta
-      });
-      delete lifecycle.valueResolved;
-    }
-  }
-  function removeLifecycleEntry(cacheKey) {
-    const lifecycle = lifecycleMap[cacheKey];
-    if (lifecycle) {
-      delete lifecycleMap[cacheKey];
-      lifecycle.cacheEntryRemoved();
-    }
-  }
-  function getActionMetaFields(action) {
-    const {
-      arg,
-      requestId
-    } = action.meta;
-    const {
-      endpointName,
-      originalArgs
-    } = arg;
-    return [endpointName, originalArgs, requestId];
-  }
-  const handler = (action, mwApi, stateBefore) => {
-    const cacheKey = getCacheKey(action);
-    function checkForNewCacheKey(endpointName, cacheKey2, requestId, originalArgs) {
-      const oldEntry = selectQueryEntry(stateBefore, cacheKey2);
-      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey2);
-      if (!oldEntry && newEntry) {
-        handleNewKey(endpointName, originalArgs, cacheKey2, mwApi, requestId);
-      }
-    }
-    if (queryThunk.pending.match(action)) {
-      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);
-    } else if (cacheEntriesUpserted.match(action)) {
-      for (const {
-        queryDescription,
-        value
-      } of action.payload) {
-        const {
-          endpointName,
-          originalArgs,
-          queryCacheKey
-        } = queryDescription;
-        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);
-        resolveLifecycleEntry(queryCacheKey, value, {});
-      }
-    } else if (mutationThunk.pending.match(action)) {
-      const state = mwApi.getState()[reducerPath].mutations[cacheKey];
-      if (state) {
-        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);
-        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);
-      }
-    } else if (isFulfilledThunk(action)) {
-      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);
-    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {
-      removeLifecycleEntry(cacheKey);
-    } else if (api.util.resetApiState.match(action)) {
-      for (const cacheKey2 of Object.keys(lifecycleMap)) {
-        removeLifecycleEntry(cacheKey2);
-      }
-    }
-  };
-  function getCacheKey(action) {
-    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;
-    if (isMutationThunk(action)) {
-      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;
-    }
-    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;
-    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);
-    return "";
-  }
-  function handleNewKey(endpointName, originalArgs, queryCacheKey, mwApi, requestId) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName);
-    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;
-    if (!onCacheEntryAdded) return;
-    const lifecycle = {};
-    const cacheEntryRemoved = new Promise((resolve) => {
-      lifecycle.cacheEntryRemoved = resolve;
-    });
-    const cacheDataLoaded = Promise.race([new Promise((resolve) => {
-      lifecycle.valueResolved = resolve;
-    }), cacheEntryRemoved.then(() => {
-      throw neverResolvedError;
-    })]);
-    cacheDataLoaded.catch(() => {
-    });
-    lifecycleMap[queryCacheKey] = lifecycle;
-    const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);
-    const extra = mwApi.dispatch((_, __, extra2) => extra2);
-    const lifecycleApi = {
-      ...mwApi,
-      getCacheEntry: () => selector(mwApi.getState()),
-      requestId,
-      extra,
-      updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-      cacheDataLoaded,
-      cacheEntryRemoved
-    };
-    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi);
-    Promise.resolve(runningHandler).catch((e) => {
-      if (e === neverResolvedError) return;
-      throw e;
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/devMiddleware.ts
-var buildDevCheckHandler = ({
-  api,
-  context: {
-    apiUid
-  },
-  reducerPath
-}) => {
-  return (action, mwApi) => {
-    if (api.util.resetApiState.match(action)) {
-      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-    }
-    if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === "conflict") {
-        console.warn(`There is a mismatch between slice and middleware for the reducerPath "${reducerPath}".
-You can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === "api" ? `
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ""}`);
-      }
-    }
-  };
-};
-
-// src/query/core/buildMiddleware/invalidationByTags.ts
-var buildInvalidationByTagsHandler = ({
-  reducerPath,
-  context,
-  context: {
-    endpointDefinitions
-  },
-  mutationThunk,
-  queryThunk,
-  api,
-  assertTagType,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));
-  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));
-  let pendingTagInvalidations = [];
-  let pendingRequestCount = 0;
-  const handler = (action, mwApi) => {
-    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {
-      pendingRequestCount++;
-    }
-    if (isQueryEnd(action)) {
-      pendingRequestCount = Math.max(0, pendingRequestCount - 1);
-    }
-    if (isThunkActionWithTags(action)) {
-      invalidateTags(calculateProvidedByThunk(action, "invalidatesTags", endpointDefinitions, assertTagType), mwApi);
-    } else if (isQueryEnd(action)) {
-      invalidateTags([], mwApi);
-    } else if (api.util.invalidateTags.match(action)) {
-      invalidateTags(calculateProvidedBy(action.payload, void 0, void 0, void 0, void 0, assertTagType), mwApi);
-    }
-  };
-  function hasPendingRequests() {
-    return pendingRequestCount > 0;
-  }
-  function invalidateTags(newTags, mwApi) {
-    const rootState = mwApi.getState();
-    const state = rootState[reducerPath];
-    pendingTagInvalidations.push(...newTags);
-    if (state.config.invalidationBehavior === "delayed" && hasPendingRequests()) {
-      return;
-    }
-    const tags = pendingTagInvalidations;
-    pendingTagInvalidations = [];
-    if (tags.length === 0) return;
-    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);
-    context.batch(() => {
-      const valuesArray = Array.from(toInvalidate.values());
-      for (const {
-        queryCacheKey
-      } of valuesArray) {
-        const querySubState = state.queries[queryCacheKey];
-        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);
-        if (querySubState) {
-          if (subscriptionSubState.size === 0) {
-            mwApi.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            mwApi.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/polling.ts
-var buildPollingHandler = ({
-  reducerPath,
-  queryThunk,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    currentPolls,
-    currentSubscriptions
-  } = internalState;
-  const pendingPollingUpdates = /* @__PURE__ */ new Set();
-  let pollingUpdateTimer = null;
-  const handler = (action, mwApi) => {
-    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {
-      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);
-    }
-    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {
-      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);
-    }
-    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {
-      startNextPoll(action.meta.arg, mwApi);
-    }
-    if (api.util.resetApiState.match(action)) {
-      clearPolls();
-      if (pollingUpdateTimer) {
-        clearTimeout(pollingUpdateTimer);
-        pollingUpdateTimer = null;
-      }
-      pendingPollingUpdates.clear();
-    }
-  };
-  function schedulePollingUpdate(queryCacheKey, api2) {
-    pendingPollingUpdates.add(queryCacheKey);
-    if (!pollingUpdateTimer) {
-      pollingUpdateTimer = setTimeout(() => {
-        for (const key of pendingPollingUpdates) {
-          updatePollingInterval({
-            queryCacheKey: key
-          }, api2);
-        }
-        pendingPollingUpdates.clear();
-        pollingUpdateTimer = null;
-      }, 0);
-    }
-  }
-  function startNextPoll({
-    queryCacheKey
-  }, api2) {
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;
-    const {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    } = findLowestPollingInterval(subscriptions);
-    if (!Number.isFinite(lowestPollingInterval)) return;
-    const currentPoll = currentPolls.get(queryCacheKey);
-    if (currentPoll?.timeout) {
-      clearTimeout(currentPoll.timeout);
-      currentPoll.timeout = void 0;
-    }
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    currentPolls.set(queryCacheKey, {
-      nextPollTimestamp,
-      pollingInterval: lowestPollingInterval,
-      timeout: setTimeout(() => {
-        if (state.config.focused || !skipPollingIfUnfocused) {
-          api2.dispatch(refetchQuery(querySubState));
-        }
-        startNextPoll({
-          queryCacheKey
-        }, api2);
-      }, lowestPollingInterval)
-    });
-  }
-  function updatePollingInterval({
-    queryCacheKey
-  }, api2) {
-    const state = api2.getState()[reducerPath];
-    const querySubState = state.queries[queryCacheKey];
-    const subscriptions = currentSubscriptions.get(queryCacheKey);
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {
-      return;
-    }
-    const {
-      lowestPollingInterval
-    } = findLowestPollingInterval(subscriptions);
-    if (process.env.NODE_ENV === "test") {
-      const updateCounters = currentPolls.pollUpdateCounters ??= {};
-      updateCounters[queryCacheKey] ??= 0;
-      updateCounters[queryCacheKey]++;
-    }
-    if (!Number.isFinite(lowestPollingInterval)) {
-      cleanupPollForKey(queryCacheKey);
-      return;
-    }
-    const currentPoll = currentPolls.get(queryCacheKey);
-    const nextPollTimestamp = Date.now() + lowestPollingInterval;
-    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {
-      startNextPoll({
-        queryCacheKey
-      }, api2);
-    }
-  }
-  function cleanupPollForKey(key) {
-    const existingPoll = currentPolls.get(key);
-    if (existingPoll?.timeout) {
-      clearTimeout(existingPoll.timeout);
-    }
-    currentPolls.delete(key);
-  }
-  function clearPolls() {
-    for (const key of currentPolls.keys()) {
-      cleanupPollForKey(key);
-    }
-  }
-  function findLowestPollingInterval(subscribers = /* @__PURE__ */ new Map()) {
-    let skipPollingIfUnfocused = false;
-    let lowestPollingInterval = Number.POSITIVE_INFINITY;
-    for (const entry of subscribers.values()) {
-      if (!!entry.pollingInterval) {
-        lowestPollingInterval = Math.min(entry.pollingInterval, lowestPollingInterval);
-        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;
-      }
-    }
-    return {
-      lowestPollingInterval,
-      skipPollingIfUnfocused
-    };
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/queryLifecycle.ts
-var buildQueryLifecycleHandler = ({
-  api,
-  context,
-  queryThunk,
-  mutationThunk
-}) => {
-  const isPendingThunk = isPending(queryThunk, mutationThunk);
-  const isRejectedThunk = isRejected(queryThunk, mutationThunk);
-  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);
-  const lifecycleMap = {};
-  const handler = (action, mwApi) => {
-    if (isPendingThunk(action)) {
-      const {
-        requestId,
-        arg: {
-          endpointName,
-          originalArgs
-        }
-      } = action.meta;
-      const endpointDefinition = getEndpointDefinition(context, endpointName);
-      const onQueryStarted = endpointDefinition?.onQueryStarted;
-      if (onQueryStarted) {
-        const lifecycle = {};
-        const queryFulfilled = new Promise((resolve, reject) => {
-          lifecycle.resolve = resolve;
-          lifecycle.reject = reject;
-        });
-        queryFulfilled.catch(() => {
-        });
-        lifecycleMap[requestId] = lifecycle;
-        const selector = api.endpoints[endpointName].select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);
-        const extra = mwApi.dispatch((_, __, extra2) => extra2);
-        const lifecycleApi = {
-          ...mwApi,
-          getCacheEntry: () => selector(mwApi.getState()),
-          requestId,
-          extra,
-          updateCachedData: isAnyQueryDefinition(endpointDefinition) ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,
-          queryFulfilled
-        };
-        onQueryStarted(originalArgs, lifecycleApi);
-      }
-    } else if (isFullfilledThunk(action)) {
-      const {
-        requestId,
-        baseQueryMeta
-      } = action.meta;
-      lifecycleMap[requestId]?.resolve({
-        data: action.payload,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    } else if (isRejectedThunk(action)) {
-      const {
-        requestId,
-        rejectedWithValue,
-        baseQueryMeta
-      } = action.meta;
-      lifecycleMap[requestId]?.reject({
-        error: action.payload ?? action.error,
-        isUnhandledError: !rejectedWithValue,
-        meta: baseQueryMeta
-      });
-      delete lifecycleMap[requestId];
-    }
-  };
-  return handler;
-};
-
-// src/query/core/buildMiddleware/windowEventHandling.ts
-var buildWindowEventHandler = ({
-  reducerPath,
-  context,
-  api,
-  refetchQuery,
-  internalState
-}) => {
-  const {
-    removeQueryResult
-  } = api.internalActions;
-  const handler = (action, mwApi) => {
-    if (onFocus.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnFocus");
-    }
-    if (onOnline.match(action)) {
-      refetchValidQueries(mwApi, "refetchOnReconnect");
-    }
-  };
-  function refetchValidQueries(api2, type) {
-    const state = api2.getState()[reducerPath];
-    const queries = state.queries;
-    const subscriptions = internalState.currentSubscriptions;
-    context.batch(() => {
-      for (const queryCacheKey of subscriptions.keys()) {
-        const querySubState = queries[queryCacheKey];
-        const subscriptionSubState = subscriptions.get(queryCacheKey);
-        if (!subscriptionSubState || !querySubState) continue;
-        const values = [...subscriptionSubState.values()];
-        const shouldRefetch = values.some((sub) => sub[type] === true) || values.every((sub) => sub[type] === void 0) && state.config[type];
-        if (shouldRefetch) {
-          if (subscriptionSubState.size === 0) {
-            api2.dispatch(removeQueryResult({
-              queryCacheKey
-            }));
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            api2.dispatch(refetchQuery(querySubState));
-          }
-        }
-      }
-    });
-  }
-  return handler;
-};
-
-// src/query/core/buildMiddleware/index.ts
-function buildMiddleware(input) {
-  const {
-    reducerPath,
-    queryThunk,
-    api,
-    context,
-    getInternalState
-  } = input;
-  const {
-    apiUid
-  } = context;
-  const actions2 = {
-    invalidateTags: createAction(`${reducerPath}/invalidateTags`)
-  };
-  const isThisApiSliceAction = (action) => action.type.startsWith(`${reducerPath}/`);
-  const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];
-  const middleware = (mwApi) => {
-    let initialized2 = false;
-    const internalState = getInternalState(mwApi.dispatch);
-    const builderArgs = {
-      ...input,
-      internalState,
-      refetchQuery,
-      isThisApiSliceAction,
-      mwApi
-    };
-    const handlers = handlerBuilders.map((build) => build(builderArgs));
-    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);
-    const windowEventsHandler = buildWindowEventHandler(builderArgs);
-    return (next) => {
-      return (action) => {
-        if (!isAction(action)) {
-          return next(action);
-        }
-        if (!initialized2) {
-          initialized2 = true;
-          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));
-        }
-        const mwApiWithNext = {
-          ...mwApi,
-          next
-        };
-        const stateBefore = mwApi.getState();
-        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);
-        let res;
-        if (actionShouldContinue) {
-          res = next(action);
-        } else {
-          res = internalProbeResult;
-        }
-        if (!!mwApi.getState()[reducerPath]) {
-          windowEventsHandler(action, mwApiWithNext, stateBefore);
-          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {
-            for (const handler of handlers) {
-              handler(action, mwApiWithNext, stateBefore);
-            }
-          }
-        }
-        return res;
-      };
-    };
-  };
-  return {
-    middleware,
-    actions: actions2
-  };
-  function refetchQuery(querySubState) {
-    return input.api.endpoints[querySubState.endpointName].initiate(querySubState.originalArgs, {
-      subscribe: false,
-      forceRefetch: true
-    });
-  }
-}
-
-// src/query/core/module.ts
-var coreModuleName = /* @__PURE__ */ Symbol();
-var coreModule = ({
-  createSelector: createSelector2 = createSelector
-} = {}) => ({
-  name: coreModuleName,
-  init(api, {
-    baseQuery,
-    tagTypes,
-    reducerPath,
-    serializeQueryArgs,
-    keepUnusedDataFor,
-    refetchOnMountOrArgChange,
-    refetchOnFocus,
-    refetchOnReconnect,
-    invalidationBehavior,
-    onSchemaFailure,
-    catchSchemaFailure,
-    skipSchemaValidation
-  }, context) {
-    enablePatches();
-    assertCast(serializeQueryArgs);
-    const assertTagType = (tag) => {
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-        if (!tagTypes.includes(tag.type)) {
-          console.error(`Tag type '${tag.type}' was used, but not specified in \`tagTypes\`!`);
-        }
-      }
-      return tag;
-    };
-    Object.assign(api, {
-      reducerPath,
-      endpoints: {},
-      internalActions: {
-        onOnline,
-        onOffline,
-        onFocus,
-        onFocusLost
-      },
-      util: {}
-    });
-    const selectors = buildSelectors({
-      serializeQueryArgs,
-      reducerPath,
-      createSelector: createSelector2
-    });
-    const {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery,
-      buildQuerySelector,
-      buildInfiniteQuerySelector,
-      buildMutationSelector
-    } = selectors;
-    safeAssign(api.util, {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery
-    });
-    const {
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      buildMatchThunkActions
-    } = buildThunks({
-      baseQuery,
-      reducerPath,
-      context,
-      api,
-      serializeQueryArgs,
-      assertTagType,
-      selectors,
-      onSchemaFailure,
-      catchSchemaFailure,
-      skipSchemaValidation
-    });
-    const {
-      reducer,
-      actions: sliceActions
-    } = buildSlice({
-      context,
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      serializeQueryArgs,
-      reducerPath,
-      assertTagType,
-      config: {
-        refetchOnFocus,
-        refetchOnReconnect,
-        refetchOnMountOrArgChange,
-        keepUnusedDataFor,
-        reducerPath,
-        invalidationBehavior
-      }
-    });
-    safeAssign(api.util, {
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      resetApiState: sliceActions.resetApiState,
-      upsertQueryEntries: sliceActions.cacheEntriesUpserted
-    });
-    safeAssign(api.internalActions, sliceActions);
-    const internalStateMap = /* @__PURE__ */ new WeakMap();
-    const getInternalState = (dispatch) => {
-      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({
-        currentSubscriptions: /* @__PURE__ */ new Map(),
-        currentPolls: /* @__PURE__ */ new Map(),
-        runningQueries: /* @__PURE__ */ new Map(),
-        runningMutations: /* @__PURE__ */ new Map()
-      }));
-      return state;
-    };
-    const {
-      buildInitiateQuery,
-      buildInitiateInfiniteQuery,
-      buildInitiateMutation,
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueriesThunk,
-      getRunningQueryThunk
-    } = buildInitiate({
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      serializeQueryArgs,
-      context,
-      getInternalState
-    });
-    safeAssign(api.util, {
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueryThunk,
-      getRunningQueriesThunk
-    });
-    const {
-      middleware,
-      actions: middlewareActions
-    } = buildMiddleware({
-      reducerPath,
-      context,
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      assertTagType,
-      selectors,
-      getRunningQueryThunk,
-      getInternalState
-    });
-    safeAssign(api.util, middlewareActions);
-    safeAssign(api, {
-      reducer,
-      middleware
-    });
-    return {
-      name: coreModuleName,
-      injectEndpoint(endpointName, definition) {
-        const anyApi = api;
-        const endpoint = anyApi.endpoints[endpointName] ??= {};
-        if (isQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildQuerySelector(endpointName, definition),
-            initiate: buildInitiateQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-        if (isMutationDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildMutationSelector(),
-            initiate: buildInitiateMutation(endpointName)
-          }, buildMatchThunkActions(mutationThunk, endpointName));
-        }
-        if (isInfiniteQueryDefinition(definition)) {
-          safeAssign(endpoint, {
-            name: endpointName,
-            select: buildInfiniteQuerySelector(endpointName, definition),
-            initiate: buildInitiateInfiniteQuery(endpointName, definition)
-          }, buildMatchThunkActions(queryThunk, endpointName));
-        }
-      }
-    };
-  }
-});
-
-// src/query/core/index.ts
-var createApi = /* @__PURE__ */ buildCreateApi(coreModule());
-export {
-  NamedSchemaError,
-  QueryStatus,
-  _NEVER,
-  buildCreateApi,
-  copyWithStructuralSharing,
-  coreModule,
-  coreModuleName,
-  createApi,
-  defaultSerializeQueryArgs,
-  fakeBaseQuery,
-  fetchBaseQuery,
-  retry,
-  setupListeners,
-  skipToken
-};
-//# sourceMappingURL=rtk-query.modern.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/query/core/apiState.ts","../../src/query/core/rtkImports.ts","../../src/query/utils/copyWithStructuralSharing.ts","../../src/query/utils/filterMap.ts","../../src/query/utils/isAbsoluteUrl.ts","../../src/query/utils/isDocumentVisible.ts","../../src/query/utils/isNotNullish.ts","../../src/query/utils/isOnline.ts","../../src/query/utils/joinUrls.ts","../../src/query/utils/getOrInsert.ts","../../src/query/utils/signals.ts","../../src/query/fetchBaseQuery.ts","../../src/query/HandledError.ts","../../src/query/retry.ts","../../src/query/core/setupListeners.ts","../../src/query/endpointDefinitions.ts","../../src/query/utils/immerImports.ts","../../src/query/core/buildInitiate.ts","../../src/tsHelpers.ts","../../src/query/apiTypes.ts","../../src/query/standardSchema.ts","../../src/query/core/buildThunks.ts","../../src/query/utils/getCurrent.ts","../../src/query/core/buildSlice.ts","../../src/query/core/buildSelectors.ts","../../src/query/createApi.ts","../../src/query/defaultSerializeQueryArgs.ts","../../src/query/fakeBaseQuery.ts","../../src/query/tsHelpers.ts","../../src/query/core/buildMiddleware/batchActions.ts","../../src/query/core/buildMiddleware/cacheCollection.ts","../../src/query/core/buildMiddleware/cacheLifecycle.ts","../../src/query/core/buildMiddleware/devMiddleware.ts","../../src/query/core/buildMiddleware/invalidationByTags.ts","../../src/query/core/buildMiddleware/polling.ts","../../src/query/core/buildMiddleware/queryLifecycle.ts","../../src/query/core/buildMiddleware/windowEventHandling.ts","../../src/query/core/buildMiddleware/index.ts","../../src/query/core/module.ts","../../src/query/core/index.ts"],"sourcesContent":["import type { SerializedError } from '@reduxjs/toolkit';\nimport type { BaseQueryError } from '../baseQueryTypes';\nimport type { BaseEndpointDefinition, EndpointDefinitions, FullTagDescription, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFromAnyQuery, QueryDefinition, ResultTypeFrom } from '../endpointDefinitions';\nimport type { Id, WithRequiredProp } from '../tsHelpers';\nexport type QueryCacheKey = string & {\n  _type: 'queryCacheKey';\n};\nexport type QuerySubstateIdentifier = {\n  queryCacheKey: QueryCacheKey;\n};\nexport type MutationSubstateIdentifier = {\n  requestId: string;\n  fixedCacheKey?: string;\n} | {\n  requestId?: string;\n  fixedCacheKey: string;\n};\nexport type RefetchConfigOptions = {\n  refetchOnMountOrArgChange: boolean | number;\n  refetchOnReconnect: boolean;\n  refetchOnFocus: boolean;\n};\nexport type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {\n  /**\n   * The initial page parameter to use for the first page fetch.\n   */\n  initialPageParam: PageParam;\n  /**\n   * This function is required to automatically get the next cursor for infinite queries.\n   * The result will also be used to determine the value of `hasNextPage`.\n   */\n  getNextPageParam: (lastPage: DataType, allPages: Array<DataType>, lastPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * This function can be set to automatically get the previous cursor for infinite queries.\n   * The result will also be used to determine the value of `hasPreviousPage`.\n   */\n  getPreviousPageParam?: (firstPage: DataType, allPages: Array<DataType>, firstPageParam: PageParam, allPageParams: Array<PageParam>, queryArg: QueryArg) => PageParam | undefined | null;\n  /**\n   * If specified, only keep this many pages in cache at once.\n   * If additional pages are fetched, older pages in the other\n   * direction will be dropped from the cache.\n   */\n  maxPages?: number;\n  /**\n   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched\n   * (due to tag invalidation, polling, arg change configuration, or manual refetching),\n   * RTK Query will try to sequentially refetch all pages currently in the cache.\n   * When `false` only the first page will be refetched.\n   */\n  refetchCachedPages?: boolean;\n};\nexport type InfiniteData<DataType, PageParam> = {\n  pages: Array<DataType>;\n  pageParams: Array<PageParam>;\n};\n\n// NOTE: DO NOT import and use this for runtime comparisons internally,\n// except in the RTKQ React package. Use the string versions just below this.\n// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated\n// constants like \"initialized\":\n// https://github.com/evanw/esbuild/releases/tag/v0.14.7\n// We still have to use this in the React package since we don't publicly export\n// the string constants below.\n/**\n * Strings describing the query state at any given time.\n */\nexport enum QueryStatus {\n  uninitialized = 'uninitialized',\n  pending = 'pending',\n  fulfilled = 'fulfilled',\n  rejected = 'rejected',\n}\n\n// Use these string constants for runtime comparisons internally\nexport const STATUS_UNINITIALIZED = QueryStatus.uninitialized;\nexport const STATUS_PENDING = QueryStatus.pending;\nexport const STATUS_FULFILLED = QueryStatus.fulfilled;\nexport const STATUS_REJECTED = QueryStatus.rejected;\nexport type RequestStatusFlags = {\n  status: QueryStatus.uninitialized;\n  isUninitialized: true;\n  isLoading: false;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.pending;\n  isUninitialized: false;\n  isLoading: true;\n  isSuccess: false;\n  isError: false;\n} | {\n  status: QueryStatus.fulfilled;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: true;\n  isError: false;\n} | {\n  status: QueryStatus.rejected;\n  isUninitialized: false;\n  isLoading: false;\n  isSuccess: false;\n  isError: true;\n};\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\n  return {\n    status,\n    isUninitialized: status === STATUS_UNINITIALIZED,\n    isLoading: status === STATUS_PENDING,\n    isSuccess: status === STATUS_FULFILLED,\n    isError: status === STATUS_REJECTED\n  } as any;\n}\n\n/**\n * @public\n */\nexport type SubscriptionOptions = {\n  /**\n   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\n   */\n  pollingInterval?: number;\n  /**\n   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.\n   *\n   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.\n   *\n   *  Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  skipPollingIfUnfocused?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n};\nexport type SubscribersInternal = Map<string, SubscriptionOptions>;\nexport type Subscribers = {\n  [requestId: string]: SubscriptionOptions;\n};\nexport type QueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any> ? K : never }[keyof Definitions];\nexport type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? K : never }[keyof Definitions];\nexport type MutationKeys<Definitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends MutationDefinition<any, any, any, any> ? K : never }[keyof Definitions];\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = {\n  /**\n   * The argument originally passed into the hook or `initiate` action call\n   */\n  originalArgs: QueryArgFromAnyQuery<D>;\n  /**\n   * A unique ID associated with the request\n   */\n  requestId: string;\n  /**\n   * The received data from the query\n   */\n  data?: DataType;\n  /**\n   * The received error if applicable\n   */\n  error?: SerializedError | (D extends QueryDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  /**\n   * The name of the endpoint associated with the query\n   */\n  endpointName: string;\n  /**\n   * Time that the latest query started\n   */\n  startedTimeStamp: number;\n  /**\n   * Time that the latest query was fulfilled\n   */\n  fulfilledTimeStamp?: number;\n};\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any, any>, DataType = ResultTypeFrom<D>> = Id<({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'data' | 'fulfilledTimeStamp'> & {\n  error: undefined;\n}) | ({\n  status: QueryStatus.pending;\n} & BaseQuerySubState<D, DataType>) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseQuerySubState<D, DataType>, 'error'>) | {\n  status: QueryStatus.uninitialized;\n  originalArgs?: undefined;\n  data?: undefined;\n  error?: undefined;\n  requestId?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n}>;\nexport type InfiniteQueryDirection = 'forward' | 'backward';\nexport type InfiniteQuerySubState<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any> ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {\n  direction?: InfiniteQueryDirection;\n} : never;\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = {\n  requestId: string;\n  data?: ResultTypeFrom<D>;\n  error?: SerializedError | (D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQueryError<BaseQuery> : never);\n  endpointName: string;\n  startedTimeStamp: number;\n  fulfilledTimeStamp?: number;\n};\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any, any>> = (({\n  status: QueryStatus.fulfilled;\n} & WithRequiredProp<BaseMutationSubState<D>, 'data' | 'fulfilledTimeStamp'>) & {\n  error: undefined;\n}) | (({\n  status: QueryStatus.pending;\n} & BaseMutationSubState<D>) & {\n  data?: undefined;\n}) | ({\n  status: QueryStatus.rejected;\n} & WithRequiredProp<BaseMutationSubState<D>, 'error'>) | {\n  requestId?: undefined;\n  status: QueryStatus.uninitialized;\n  data?: undefined;\n  error?: undefined;\n  endpointName?: string;\n  startedTimeStamp?: undefined;\n  fulfilledTimeStamp?: undefined;\n};\nexport type CombinedState<D extends EndpointDefinitions, E extends string, ReducerPath extends string> = {\n  queries: QueryState<D>;\n  mutations: MutationState<D>;\n  provided: InvalidationState<E>;\n  subscriptions: SubscriptionState;\n  config: ConfigState<ReducerPath>;\n};\nexport type InvalidationState<TagTypes extends string> = {\n  tags: { [_ in TagTypes]: {\n    [id: string]: Array<QueryCacheKey>;\n    [id: number]: Array<QueryCacheKey>;\n  } };\n  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>;\n};\nexport type QueryState<D extends EndpointDefinitions> = {\n  [queryCacheKey: string]: QuerySubState<D[string]> | InfiniteQuerySubState<D[string]> | undefined;\n};\nexport type SubscriptionInternalState = Map<string, SubscribersInternal>;\nexport type SubscriptionState = {\n  [queryCacheKey: string]: Subscribers | undefined;\n};\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\n  reducerPath: ReducerPath;\n  online: boolean;\n  focused: boolean;\n  middlewareRegistered: boolean | 'conflict';\n} & ModifiableConfigState;\nexport type ModifiableConfigState = {\n  keepUnusedDataFor: number;\n  invalidationBehavior: 'delayed' | 'immediately';\n} & RefetchConfigOptions;\nexport type MutationState<D extends EndpointDefinitions> = {\n  [requestId: string]: MutationSubState<D[string]> | undefined;\n};\nexport type RootState<Definitions extends EndpointDefinitions, TagTypes extends string, ReducerPath extends string> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> };","// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.\n// ESBuild does not de-duplicate imports, so this file is used to ensure that each method\n// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.\n\nexport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from '@reduxjs/toolkit';","import { isPlainObject as _iPO } from '../core/rtkImports';\n\n// remove type guard\nconst isPlainObject: (_: any) => boolean = _iPO;\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T;\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\n  if (oldObj === newObj || !(isPlainObject(oldObj) && isPlainObject(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n    return newObj;\n  }\n  const newKeys = Object.keys(newObj);\n  const oldKeys = Object.keys(oldObj);\n  let isSameObject = newKeys.length === oldKeys.length;\n  const mergeObj: any = Array.isArray(newObj) ? [] : {};\n  for (const key of newKeys) {\n    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n  }\n  return isSameObject ? oldObj : mergeObj;\n}","// Preserve type guard predicate behavior when passing to mapper\nexport function filterMap<T, U, S extends T = T>(array: readonly T[], predicate: (item: T, index: number) => item is S, mapper: (item: S, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[];\nexport function filterMap<T, U>(array: readonly T[], predicate: (item: T, index: number) => boolean, mapper: (item: T, index: number) => U | U[]): U[] {\n  return array.reduce<(U | U[])[]>((acc, item, i) => {\n    if (predicate(item as any, i)) {\n      acc.push(mapper(item as any, i));\n    }\n    return acc;\n  }, []).flat() as U[];\n}","/**\n * If either :// or // is present consider it to be an absolute url\n *\n * @param url string\n */\n\nexport function isAbsoluteUrl(url: string) {\n  return new RegExp(`(^|:)//`).test(url);\n}","/**\n * Assumes true for a non-browser env, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\n */\nexport function isDocumentVisible(): boolean {\n  // `document` may not exist in non-browser envs (like RN)\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  // Match true for visible, prerender, undefined\n  return document.visibilityState !== 'hidden';\n}","export function isNotNullish<T>(v: T | null | undefined): v is T {\n  return v != null;\n}\nexport function filterNullishValues<T>(map?: Map<any, T>) {\n  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[];\n}","/**\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\n */\nexport function isOnline() {\n  // We set the default config value in the store, so we'd need to check for this in a SSR env\n  return typeof navigator === 'undefined' ? true : navigator.onLine === undefined ? true : navigator.onLine;\n}","import { isAbsoluteUrl } from './isAbsoluteUrl';\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '');\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '');\nexport function joinUrls(base: string | undefined, url: string | undefined): string {\n  if (!base) {\n    return url!;\n  }\n  if (!url) {\n    return base;\n  }\n  if (isAbsoluteUrl(url)) {\n    return url;\n  }\n  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : '';\n  base = withoutTrailingSlash(base);\n  url = withoutLeadingSlash(url);\n  return `${base}${delimiter}${url}`;\n}","// Duplicate some of the utils in `/src/utils` to ensure\n// we don't end up dragging in larger chunks of the RTK core\n// into the RTKQ bundle\n\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport const createNewMap = () => new Map();","// AbortSignal.timeout() is currently baseline 2024\nexport const timeoutSignal = (milliseconds: number) => {\n  const abortController = new AbortController();\n  setTimeout(() => {\n    const message = 'signal timed out';\n    const name = 'TimeoutError';\n    abortController.abort(\n    // some environments (React Native, Node) don't have DOMException\n    typeof DOMException !== 'undefined' ? new DOMException(message, name) : Object.assign(new Error(message), {\n      name\n    }));\n  }, milliseconds);\n  return abortController.signal;\n};\n\n// AbortSignal.any() is currently baseline 2024\nexport const anySignal = (...signals: AbortSignal[]) => {\n  // if any are already aborted, return an already aborted signal\n  for (const signal of signals) if (signal.aborted) return AbortSignal.abort(signal.reason);\n\n  // otherwise, create a new signal that aborts when any of the given signals abort\n  const abortController = new AbortController();\n  for (const signal of signals) {\n    signal.addEventListener('abort', () => abortController.abort(signal.reason), {\n      signal: abortController.signal,\n      once: true\n    });\n  }\n  return abortController.signal;\n};","import { joinUrls } from './utils';\nimport { isPlainObject } from './core/rtkImports';\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes';\nimport type { MaybePromise, Override } from './tsHelpers';\nimport { anySignal, timeoutSignal } from './utils/signals';\nexport type ResponseHandler = 'content-type' | 'json' | 'text' | ((response: Response) => Promise<any>);\ntype CustomRequestInit = Override<RequestInit, {\n  headers?: Headers | string[][] | Record<string, string | undefined> | undefined;\n}>;\nexport interface FetchArgs extends CustomRequestInit {\n  url: string;\n  params?: Record<string, any>;\n  body?: any;\n  responseHandler?: ResponseHandler;\n  validateStatus?: (response: Response, body: any) => boolean;\n  /**\n   * A number in milliseconds that represents that maximum time a request can take before timing out.\n   */\n  timeout?: number;\n}\n\n/**\n * A mini-wrapper that passes arguments straight through to\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\n */\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args);\nconst defaultValidateStatus = (response: Response) => response.status >= 200 && response.status <= 299;\nconst defaultIsJsonContentType = (headers: Headers) => /*applicat*//ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '');\nexport type FetchBaseQueryError = {\n  /**\n   * * `number`:\n   *   HTTP status code\n   */\n  status: number;\n  data: unknown;\n} | {\n  /**\n   * * `\"FETCH_ERROR\"`:\n   *   An error that occurred during execution of `fetch` or the `fetchFn` callback option\n   **/\n  status: 'FETCH_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"PARSING_ERROR\"`:\n   *   An error happened during parsing.\n   *   Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\n   *   or an error occurred while executing a custom `responseHandler`.\n   **/\n  status: 'PARSING_ERROR';\n  originalStatus: number;\n  data: string;\n  error: string;\n} | {\n  /**\n   * * `\"TIMEOUT_ERROR\"`:\n   *   Request timed out\n   **/\n  status: 'TIMEOUT_ERROR';\n  data?: undefined;\n  error: string;\n} | {\n  /**\n   * * `\"CUSTOM_ERROR\"`:\n   *   A custom error type that you can return from your `queryFn` where another error might not make sense.\n   **/\n  status: 'CUSTOM_ERROR';\n  data?: unknown;\n  error: string;\n};\nfunction stripUndefined(obj: any) {\n  if (!isPlainObject(obj)) {\n    return obj;\n  }\n  const copy: Record<string, any> = {\n    ...obj\n  };\n  for (const [k, v] of Object.entries(copy)) {\n    if (v === undefined) delete copy[k];\n  }\n  return copy;\n}\n\n// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\nconst isJsonifiable = (body: any) => typeof body === 'object' && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === 'function');\nexport type FetchBaseQueryArgs = {\n  baseUrl?: string;\n  prepareHeaders?: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {\n    arg: string | FetchArgs;\n    extraOptions: unknown;\n  }) => MaybePromise<Headers | void>;\n  fetchFn?: (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;\n  paramsSerializer?: (params: Record<string, any>) => string;\n  /**\n   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\n   * in a predicate function for your given api to get the same automatic stringifying behavior\n   * @example\n   * ```ts\n   * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\n   * ```\n   */\n  isJsonContentType?: (headers: Headers) => boolean;\n  /**\n   * Defaults to `application/json`;\n   */\n  jsonContentType?: string;\n\n  /**\n   * Custom replacer function used when calling `JSON.stringify()`;\n   */\n  jsonReplacer?: (this: any, key: string, value: any) => any;\n} & RequestInit & Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>;\nexport type FetchBaseQueryMeta = {\n  request: Request;\n  response?: Response;\n};\n\n/**\n * This is a very small wrapper around fetch that aims to simplify requests.\n *\n * @example\n * ```ts\n * const baseQuery = fetchBaseQuery({\n *   baseUrl: 'https://api.your-really-great-app.com/v1/',\n *   prepareHeaders: (headers, { getState }) => {\n *     const token = (getState() as RootState).auth.token;\n *     // If we have a token set in state, let's assume that we should be passing it.\n *     if (token) {\n *       headers.set('authorization', `Bearer ${token}`);\n *     }\n *     return headers;\n *   },\n * })\n * ```\n *\n * @param {string} baseUrl\n * The base URL for an API service.\n * Typically in the format of https://example.com/\n *\n * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\n * An optional function that can be used to inject headers on requests.\n * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.\n * Useful for setting authentication or headers that need to be set conditionally.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\n *\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\n * An optional function that can be used to stringify querystring parameters.\n *\n * @param {(headers: Headers) => boolean} isJsonContentType\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\n *\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\n *\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\n *\n * @param {number} timeout\n * A number in milliseconds that represents the maximum time a request can take before timing out.\n */\n\nexport function fetchBaseQuery({\n  baseUrl,\n  prepareHeaders = x => x,\n  fetchFn = defaultFetchFn,\n  paramsSerializer,\n  isJsonContentType = defaultIsJsonContentType,\n  jsonContentType = 'application/json',\n  jsonReplacer,\n  timeout: defaultTimeout,\n  responseHandler: globalResponseHandler,\n  validateStatus: globalValidateStatus,\n  ...baseFetchOptions\n}: FetchBaseQueryArgs = {}): BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta> {\n  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\n    console.warn('Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.');\n  }\n  return async (arg, api, extraOptions) => {\n    const {\n      getState,\n      extra,\n      endpoint,\n      forced,\n      type\n    } = api;\n    let meta: FetchBaseQueryMeta | undefined;\n    let {\n      url,\n      headers = new Headers(baseFetchOptions.headers),\n      params = undefined,\n      responseHandler = globalResponseHandler ?? 'json' as const,\n      validateStatus = globalValidateStatus ?? defaultValidateStatus,\n      timeout = defaultTimeout,\n      ...rest\n    } = typeof arg == 'string' ? {\n      url: arg\n    } : arg;\n    let config: RequestInit = {\n      ...baseFetchOptions,\n      signal: timeout ? anySignal(api.signal, timeoutSignal(timeout)) : api.signal,\n      ...rest\n    };\n    headers = new Headers(stripUndefined(headers));\n    config.headers = (await prepareHeaders(headers, {\n      getState,\n      arg,\n      extra,\n      endpoint,\n      forced,\n      type,\n      extraOptions\n    })) || headers;\n    const bodyIsJsonifiable = isJsonifiable(config.body);\n\n    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically\n    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)\n    if (config.body != null && !bodyIsJsonifiable && typeof config.body !== 'string') {\n      config.headers.delete('content-type');\n    }\n    if (!config.headers.has('content-type') && bodyIsJsonifiable) {\n      config.headers.set('content-type', jsonContentType);\n    }\n    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {\n      config.body = JSON.stringify(config.body, jsonReplacer);\n    }\n\n    // Set Accept header based on responseHandler if not already set\n    if (!config.headers.has('accept')) {\n      if (responseHandler === 'json') {\n        config.headers.set('accept', 'application/json');\n      } else if (responseHandler === 'text') {\n        config.headers.set('accept', 'text/plain, text/html, */*');\n      }\n      // For 'content-type' responseHandler, don't set Accept (let server decide)\n    }\n    if (params) {\n      const divider = ~url.indexOf('?') ? '&' : '?';\n      const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n      url += divider + query;\n    }\n    url = joinUrls(baseUrl, url);\n    const request = new Request(url, config);\n    const requestClone = new Request(url, config);\n    meta = {\n      request: requestClone\n    };\n    let response;\n    try {\n      response = await fetchFn(request);\n    } catch (e) {\n      return {\n        error: {\n          status: (e instanceof Error || typeof DOMException !== 'undefined' && e instanceof DOMException) && e.name === 'TimeoutError' ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\n          error: String(e)\n        },\n        meta\n      };\n    }\n    const responseClone = response.clone();\n    meta.response = responseClone;\n    let resultData: any;\n    let responseText: string = '';\n    try {\n      let handleResponseError;\n      await Promise.all([handleResponse(response, responseHandler).then(r => resultData = r, e => handleResponseError = e),\n      // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n      // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n      responseClone.text().then(r => responseText = r, () => {})]);\n      if (handleResponseError) throw handleResponseError;\n    } catch (e) {\n      return {\n        error: {\n          status: 'PARSING_ERROR',\n          originalStatus: response.status,\n          data: responseText,\n          error: String(e)\n        },\n        meta\n      };\n    }\n    return validateStatus(response, resultData) ? {\n      data: resultData,\n      meta\n    } : {\n      error: {\n        status: response.status,\n        data: resultData\n      },\n      meta\n    };\n  };\n  async function handleResponse(response: Response, responseHandler: ResponseHandler) {\n    if (typeof responseHandler === 'function') {\n      return responseHandler(response);\n    }\n    if (responseHandler === 'content-type') {\n      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text';\n    }\n    if (responseHandler === 'json') {\n      const text = await response.text();\n      return text.length ? JSON.parse(text) : null;\n    }\n    return response.text();\n  }\n}","export class HandledError {\n  constructor(public readonly value: any, public readonly meta: any = undefined) {}\n}","import type { BaseQueryApi, BaseQueryArg, BaseQueryEnhancer, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta } from './baseQueryTypes';\nimport type { FetchBaseQueryError } from './fetchBaseQuery';\nimport { HandledError } from './HandledError';\n\n/**\n * Exponential backoff based on the attempt number.\n *\n * @remarks\n * 1. 600ms * random(0.4, 1.4)\n * 2. 1200ms * random(0.4, 1.4)\n * 3. 2400ms * random(0.4, 1.4)\n * 4. 4800ms * random(0.4, 1.4)\n * 5. 9600ms * random(0.4, 1.4)\n *\n * @param attempt - Current attempt\n * @param maxRetries - Maximum number of retries\n */\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5, signal?: AbortSignal) {\n  const attempts = Math.min(attempt, maxRetries);\n  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)); // Force a positive int in the case we make this an option\n\n  await new Promise<void>((resolve, reject) => {\n    const timeoutId = setTimeout(() => resolve(), timeout);\n\n    // If signal is provided and gets aborted, clear timeout and reject\n    if (signal) {\n      const abortHandler = () => {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      };\n\n      // Check if already aborted\n      if (signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(new Error('Aborted'));\n      } else {\n        signal.addEventListener('abort', abortHandler, {\n          once: true\n        });\n      }\n    }\n  });\n}\ntype RetryConditionFunction = (error: BaseQueryError<BaseQueryFn>, args: BaseQueryArg<BaseQueryFn>, extraArgs: {\n  attempt: number;\n  baseQueryApi: BaseQueryApi;\n  extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions;\n}) => boolean;\nexport type RetryOptions = {\n  /**\n   * Function used to determine delay between retries\n   */\n  backoff?: (attempt: number, maxRetries: number, signal?: AbortSignal) => Promise<void>;\n} & ({\n  /**\n   * How many times the query will be retried (default: 5)\n   */\n  maxRetries?: number;\n  retryCondition?: undefined;\n} | {\n  /**\n   * Callback to determine if a retry should be attempted.\n   * Return `true` for another retry and `false` to quit trying prematurely.\n   */\n  retryCondition?: RetryConditionFunction;\n  maxRetries?: undefined;\n});\nfunction fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(error: BaseQueryError<BaseQuery>, meta?: BaseQueryMeta<BaseQuery>): never {\n  throw Object.assign(new HandledError({\n    error,\n    meta\n  }), {\n    throwImmediately: true\n  });\n}\n\n/**\n * Checks if the abort signal is aborted and fails immediately if so.\n * Used to exit retry loops cleanly when a request is aborted.\n */\nfunction failIfAborted(signal: AbortSignal): void {\n  if (signal.aborted) {\n    fail({\n      status: 'CUSTOM_ERROR',\n      error: 'Aborted'\n    });\n  }\n}\nconst EMPTY_OPTIONS = {};\nconst retryWithBackoff: BaseQueryEnhancer<unknown, RetryOptions, RetryOptions | void> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n  // We need to figure out `maxRetries` before we define `defaultRetryCondition.\n  // This is probably goofy, but ought to work.\n  // Put our defaults in one array, filter out undefineds, grab the last value.\n  const possibleMaxRetries: number[] = [5, (defaultOptions as any || EMPTY_OPTIONS).maxRetries, (extraOptions as any || EMPTY_OPTIONS).maxRetries].filter(x => x !== undefined);\n  const [maxRetries] = possibleMaxRetries.slice(-1);\n  const defaultRetryCondition: RetryConditionFunction = (_, __, {\n    attempt\n  }) => attempt <= maxRetries;\n  const options: {\n    maxRetries: number;\n    backoff: typeof defaultBackoff;\n    retryCondition: typeof defaultRetryCondition;\n  } = {\n    maxRetries,\n    backoff: defaultBackoff,\n    retryCondition: defaultRetryCondition,\n    ...defaultOptions,\n    ...extraOptions\n  };\n  let retry = 0;\n  while (true) {\n    // Check if aborted before each attempt\n    failIfAborted(api.signal);\n    try {\n      const result = await baseQuery(args, api, extraOptions);\n      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\n      if (result.error) {\n        throw new HandledError(result);\n      }\n      return result;\n    } catch (e: any) {\n      retry++;\n      if (e.throwImmediately) {\n        if (e instanceof HandledError) {\n          return e.value;\n        }\n\n        // We don't know what this is, so we have to rethrow it\n        throw e;\n      }\n      if (e instanceof HandledError) {\n        if (!options.retryCondition(e.value.error as FetchBaseQueryError, args, {\n          attempt: retry,\n          baseQueryApi: api,\n          extraOptions\n        })) {\n          return e.value; // Max retries for expected error\n        }\n      } else {\n        // For unexpected errors, respect maxRetries\n        if (retry > options.maxRetries) {\n          // Return the error as a proper error response instead of throwing\n          return {\n            error: e\n          };\n        }\n      }\n\n      // Check if aborted before backoff\n      failIfAborted(api.signal);\n      try {\n        await options.backoff(retry, options.maxRetries, api.signal);\n      } catch (backoffError) {\n        // If backoff was aborted, exit the retry loop\n        failIfAborted(api.signal);\n        // Otherwise, rethrow the backoff error\n        throw backoffError;\n      }\n    }\n  }\n};\n\n/**\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\n *\n * @example\n *\n * ```ts\n * // codeblock-meta title=\"Retry every request 5 times by default\"\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\n * export const api = createApi({\n *   baseQuery: staggeredBaseQuery,\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => ({ url: 'posts' }),\n *     }),\n *     getPost: build.query<PostsResponse, string>({\n *       query: (id) => ({ url: `post/${id}` }),\n *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\n *     }),\n *   }),\n * });\n *\n * export const { useGetPostsQuery, useGetPostQuery } = api;\n * ```\n */\nexport const retry = /* @__PURE__ */Object.assign(retryWithBackoff, {\n  fail\n});","import type { ThunkDispatch, ActionCreatorWithoutPayload // Workaround for API-Extractor\n} from '@reduxjs/toolkit';\nimport { createAction } from './rtkImports';\nexport const INTERNAL_PREFIX = '__rtkq/';\nconst ONLINE = 'online';\nconst OFFLINE = 'offline';\nconst FOCUS = 'focus';\nconst FOCUSED = 'focused';\nconst VISIBILITYCHANGE = 'visibilitychange';\nexport const onFocus = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${FOCUSED}`);\nexport const onFocusLost = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}un${FOCUSED}`);\nexport const onOnline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${ONLINE}`);\nexport const onOffline = /* @__PURE__ */createAction(`${INTERNAL_PREFIX}${OFFLINE}`);\nconst actions = {\n  onFocus,\n  onFocusLost,\n  onOnline,\n  onOffline\n};\nlet initialized = false;\n\n/**\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\n * It requires the dispatch method from your store.\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\n * but you have the option of providing a callback for more granular control.\n *\n * @example\n * ```ts\n * setupListeners(store.dispatch)\n * ```\n *\n * @param dispatch - The dispatch method from your store\n * @param customHandler - An optional callback for more granular control over listener behavior\n * @returns Return value of the handler.\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\n */\nexport function setupListeners(dispatch: ThunkDispatch<any, any, any>, customHandler?: (dispatch: ThunkDispatch<any, any, any>, actions: {\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n}) => () => void) {\n  function defaultHandler() {\n    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [onFocus, onFocusLost, onOnline, onOffline].map(action => () => dispatch(action()));\n    const handleVisibilityChange = () => {\n      if (window.document.visibilityState === 'visible') {\n        handleFocus();\n      } else {\n        handleFocusLost();\n      }\n    };\n    let unsubscribe = () => {\n      initialized = false;\n    };\n    if (!initialized) {\n      if (typeof window !== 'undefined' && window.addEventListener) {\n        const handlers = {\n          [FOCUS]: handleFocus,\n          [VISIBILITYCHANGE]: handleVisibilityChange,\n          [ONLINE]: handleOnline,\n          [OFFLINE]: handleOffline\n        };\n        function updateListeners(add: boolean) {\n          Object.entries(handlers).forEach(([event, handler]) => {\n            if (add) {\n              window.addEventListener(event, handler, false);\n            } else {\n              window.removeEventListener(event, handler);\n            }\n          });\n        }\n        // Handle focus events\n        updateListeners(true);\n        initialized = true;\n        unsubscribe = () => {\n          updateListeners(false);\n          initialized = false;\n        };\n      }\n    }\n    return unsubscribe;\n  }\n  return customHandler ? customHandler(dispatch, actions) : defaultHandler();\n}","import type { Api } from '@reduxjs/toolkit/query';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { BaseQueryApi, BaseQueryArg, BaseQueryError, BaseQueryExtraOptions, BaseQueryFn, BaseQueryMeta, BaseQueryResult, QueryReturnValue } from './baseQueryTypes';\nimport type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection';\nimport type { CacheLifecycleInfiniteQueryExtraOptions, CacheLifecycleMutationExtraOptions, CacheLifecycleQueryExtraOptions } from './core/buildMiddleware/cacheLifecycle';\nimport type { QueryLifecycleInfiniteQueryExtraOptions, QueryLifecycleMutationExtraOptions, QueryLifecycleQueryExtraOptions } from './core/buildMiddleware/queryLifecycle';\nimport type { InfiniteData, InfiniteQueryConfigOptions, QuerySubState, RootState } from './core/index';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { NEVER } from './fakeBaseQuery';\nimport type { CastAny, HasRequiredProps, MaybePromise, NonUndefined, OmitFromUnion, UnwrapPromise } from './tsHelpers';\nimport { isNotNullish } from './utils';\nimport type { NamedSchemaError } from './standardSchema';\nimport { filterMap } from './utils/filterMap';\nconst rawResultType = /* @__PURE__ */Symbol();\nconst resultType = /* @__PURE__ */Symbol();\nconst baseQuery = /* @__PURE__ */Symbol();\nexport interface SchemaFailureInfo {\n  endpoint: string;\n  arg: any;\n  type: 'query' | 'mutation';\n  queryCacheKey?: string;\n}\nexport type SchemaFailureHandler = (error: NamedSchemaError, info: SchemaFailureInfo) => void;\nexport type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (error: NamedSchemaError, info: SchemaFailureInfo) => BaseQueryError<BaseQuery>;\nexport type EndpointDefinitionWithQuery<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery>> = {\n  /**\n   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"query example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       // highlight-start\n   *       query: () => 'posts',\n   *       // highlight-end\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *      // highlight-start\n   *      query: (body) => ({\n   *        url: `posts`,\n   *        method: 'POST',\n   *        body,\n   *      }),\n   *      // highlight-end\n   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],\n   *    }),\n   *   })\n   * })\n   * ```\n   */\n  query(arg: QueryArg): BaseQueryArg<BaseQuery>;\n  queryFn?: never;\n  /**\n   * A function to manipulate the data returned by a query or mutation.\n   */\n  transformResponse?(baseQueryReturnValue: RawResultType, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): ResultType | Promise<ResultType>;\n  /**\n   * A function to manipulate the data returned by a failed query or mutation.\n   */\n  transformErrorResponse?(baseQueryReturnValue: BaseQueryError<BaseQuery>, meta: BaseQueryMeta<BaseQuery>, arg: QueryArg): unknown;\n\n  /**\n   * A schema for the result *before* it's passed to `transformResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPostName: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawResponseSchema: postSchema,\n   *       transformResponse: (post) => post.name,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawResponseSchema?: StandardSchemaV1<RawResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import {customBaseQuery, baseQueryErrorSchema} from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       rawErrorResponseSchema: baseQueryErrorSchema,\n   *       transformErrorResponse: (error) => error.data,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n};\nexport type EndpointDefinitionWithQueryFn<QueryArg, BaseQuery extends BaseQueryFn, ResultType> = {\n  /**\n   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Basic queryFn example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *     }),\n   *     flipCoin: build.query<'heads' | 'tails', void>({\n   *       // highlight-start\n   *       queryFn(arg, queryApi, extraOptions, baseQuery) {\n   *         const randomVal = Math.random()\n   *         if (randomVal < 0.45) {\n   *           return { data: 'heads' }\n   *         }\n   *         if (randomVal < 0.9) {\n   *           return { data: 'tails' }\n   *         }\n   *         return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on its edge!\" } }\n   *       }\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  queryFn(arg: QueryArg, api: BaseQueryApi, extraOptions: BaseQueryExtraOptions<BaseQuery>, baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>>;\n  query?: never;\n  transformResponse?: never;\n  transformErrorResponse?: never;\n  rawResponseSchema?: never;\n  rawErrorResponseSchema?: never;\n};\ntype BaseEndpointTypes<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType> = {\n  QueryArg: QueryArg;\n  BaseQuery: BaseQuery;\n  ResultType: ResultType;\n  RawResultType: RawResultType;\n};\nexport type SchemaType = 'arg' | 'rawResponse' | 'response' | 'rawErrorResponse' | 'errorResponse' | 'meta';\ninterface CommonEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType> {\n  /**\n   * A schema for the arguments to be passed to the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       argSchema: v.object({ id: v.number() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  argSchema?: StandardSchemaV1<QueryArg>;\n\n  /**\n   * A schema for the result (including `transformResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const postSchema = v.object({ id: v.number(), name: v.string() })\n   * type Post = v.InferOutput<typeof postSchema>\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: postSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  responseSchema?: StandardSchemaV1<ResultType>;\n\n  /**\n   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryErrorSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       errorResponseSchema: baseQueryErrorSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>;\n\n  /**\n   * A schema for the `meta` property returned by the `query` or `queryFn`.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   * import { customBaseQuery, baseQueryMetaSchema } from \"./customBaseQuery\"\n   *\n   * const api = createApi({\n   *   baseQuery: customBaseQuery,\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       metaSchema: baseQueryMetaSchema,\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>;\n\n  /**\n   * Defaults to `true`.\n   *\n   * Most apps should leave this setting on. The only time it can be a performance issue\n   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\n   * you're unable to paginate it.\n   *\n   * For details of how this works, please see the below. When it is set to `false`,\n   * every request will cause subscribed components to rerender, even when the data has not changed.\n   *\n   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\n   */\n  structuralSharing?: boolean;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       onSchemaFailure: (error, info) => {\n   *         console.error(error, info)\n   *       },\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       catchSchemaFailure: (error, info) => ({\n   *         status: \"CUSTOM_ERROR\",\n   *         error: error.schemaName + \" failed validation\",\n   *         data: error.issues,\n   *       }),\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for this endpoint.\n   * Overrides the global setting.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *       skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type BaseEndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, ResultType, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = (([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER] ? never : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType, RawResultType>) | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>) & CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {\n  /* phantom type */\n  [rawResultType]?: RawResultType;\n  /* phantom type */\n  [resultType]?: ResultType;\n  /* phantom type */\n  [baseQuery]?: BaseQuery;\n} & HasRequiredProps<BaseQueryExtraOptions<BaseQuery>, {\n  extraOptions: BaseQueryExtraOptions<BaseQuery>;\n}, {\n  extraOptions?: BaseQueryExtraOptions<BaseQuery>;\n}>;\n\n// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons\n// at runtime, use the string constants defined below.\nexport enum DefinitionType {\n  query = 'query',\n  mutation = 'mutation',\n  infinitequery = 'infinitequery',\n}\nexport const ENDPOINT_QUERY = DefinitionType.query;\nexport const ENDPOINT_MUTATION = DefinitionType.mutation;\nexport const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery;\ntype TagDescriptionArray<TagTypes extends string> = ReadonlyArray<TagDescription<TagTypes> | undefined | null>;\nexport type GetResultDescriptionFn<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = (result: ResultType | undefined, error: ErrorType | undefined, arg: QueryArg, meta: MetaType) => TagDescriptionArray<TagTypes>;\nexport type FullTagDescription<TagType> = {\n  type: TagType;\n  id?: number | string;\n};\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>;\n\n/**\n * @public\n */\nexport type ResultDescription<TagTypes extends string, ResultType, QueryArg, ErrorType, MetaType> = TagDescriptionArray<TagTypes> | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>;\ntype QueryTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  QueryDefinition: QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface QueryExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.query;\n\n  /**\n   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\n   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\n   * 1.  `['Post']` - equivalent to `2`\n   * 2.  `[{ type: 'Post' }]` - equivalent to `1`\n   * 3.  `[{ type: 'Post', id: 1 }]`\n   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`\n   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\n   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"providesTags example\"\n   *\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       // highlight-start\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     })\n   *   })\n   * })\n   * ```\n   */\n  providesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * Can be provided to merge an incoming response value into the current cache data.\n   * If supplied, no automatic structural sharing will be applied - it's up to\n   * you to update the cache appropriately.\n   *\n   * Since RTKQ normally replaces cache entries with the new response, you will usually\n   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\n   * an existing cache entry so that it can be updated.\n   *\n   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\n   * or return a new value, but _not_ both at once.\n   *\n   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\n   * the cache entry will just save the response data directly.\n   *\n   * Useful if you don't want a new request to completely override the current cache value,\n   * maybe because you have manually updated it from another source and don't want those\n   * updates to get lost.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"merge: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  merge?(currentCacheData: ResultType, responseData: ResultType, otherArgs: {\n    arg: QueryArg;\n    baseQueryMeta: BaseQueryMeta<BaseQuery>;\n    requestId: string;\n    fulfilledTimeStamp: number;\n  }): ResultType | void;\n\n  /**\n   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\n   * This is primarily useful for \"infinite scroll\" / pagination use cases where\n   * RTKQ is keeping a single cache entry that is added to over time, in combination\n   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\n   * set to add incoming data to the cache entry each time.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"forceRefresh: pagination\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    listItems: build.query<string[], number>({\n   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,\n   *     // Only have one cache entry because the arg always maps to one string\n   *     serializeQueryArgs: ({ endpointName }) => {\n   *       return endpointName\n   *      },\n   *      // Always merge incoming data to the cache entry\n   *      merge: (currentCache, newItems) => {\n   *        currentCache.push(...newItems)\n   *      },\n   *      // Refetch when the page arg changes\n   *      forceRefetch({ currentArg, previousArg }) {\n   *        return currentArg !== previousArg\n   *      },\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  forceRefetch?(params: {\n    currentArg: QueryArg | undefined;\n    previousArg: QueryArg | undefined;\n    state: RootState<any, any, string>;\n    endpointState?: QuerySubState<any>;\n  }): boolean;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type QueryDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type InfiniteQueryTypes<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\n   * ```\n   */\n  InfiniteQueryDefinition: InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\nexport interface InfiniteQueryExtraOptions<TagTypes extends string, ResultType, QueryArg, PageParam, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleInfiniteQueryExtraOptions<InfiniteData<ResultType, PageParam>, QueryArg, BaseQuery, ReducerPath>, CacheCollectionQueryExtraOptions {\n  type: DefinitionType.infinitequery;\n  providesTags?: ResultDescription<TagTypes, InfiniteData<ResultType, PageParam>, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A query should not invalidate tags in the cache.\n   */\n  invalidatesTags?: never;\n\n  /**\n   * Required options to configure the infinite query behavior.\n   * `initialPageParam` and `getNextPageParam` are required, to\n   * ensure the infinite query can properly fetch the next page of data.\n   * `initialPageParam` may be specified when using the\n   * endpoint, to override the default value.\n   * `maxPages` and `getPreviousPageParam` are both optional.\n   * \n   * @example\n   * \n   * ```ts\n   * // codeblock-meta title=\"infiniteQueryOptions example\"\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * \n   * type Pokemon = {\n   *   id: string\n   *   name: string\n   * }\n   * \n   * const pokemonApi = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),\n   *   endpoints: (build) => ({\n   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({\n   *       infiniteQueryOptions: {\n   *         initialPageParam: 0,\n   *         maxPages: 3,\n   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>\n   *           lastPageParam + 1,\n   *         getPreviousPageParam: (\n   *           firstPage,\n   *           allPages,\n   *           firstPageParam,\n   *           allPageParams,\n   *         ) => {\n   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined\n   *         },\n   *       },\n   *       query({pageParam}) {\n   *         return `https://example.com/listItems?page=${pageParam}`\n   *       },\n   *     }),\n   *   }),\n   * })\n   \n   * ```\n   */\n  infiniteQueryOptions: InfiniteQueryConfigOptions<ResultType, PageParam, QueryArg>;\n\n  /**\n   * Can be provided to return a custom cache key value based on the query arguments.\n   *\n   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\n   *\n   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.\n   *\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\n   *\n   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * interface MyApiClient {\n   *   fetchPost: (id: string) => Promise<Post>\n   * }\n   *\n   * createApi({\n   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *  endpoints: (build) => ({\n   *    // Example: an endpoint with an API client passed in as an argument,\n   *    // but only the item ID should be used as the cache key\n   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({\n   *      queryFn: async ({ id, client }) => {\n   *        const post = await client.fetchPost(id)\n   *        return { data: post }\n   *      },\n   *      // highlight-start\n   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\n   *        const { id } = queryArgs\n   *        // This can return a string, an object, a number, or a boolean.\n   *        // If it returns an object, number or boolean, that value\n   *        // will be serialized automatically via `defaultSerializeQueryArgs`\n   *        return { id } // omit `client` from the cache key\n   *\n   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:\n   *        // return defaultSerializeQueryArgs({\n   *        //   endpointName,\n   *        //   queryArgs: { id },\n   *        //   endpointDefinition\n   *        // })\n   *        // Or  create and return a string yourself:\n   *        // return `getPost(${id})`\n   *      },\n   *      // highlight-end\n   *    }),\n   *  }),\n   *})\n   * ```\n   */\n  serializeQueryArgs?: SerializeQueryArgs<QueryArg, string | number | boolean | Record<any, any>>;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: InfiniteQueryTypes<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> =\n// Infinite query endpoints receive `{queryArg, pageParam}`\nBaseEndpointDefinition<InfiniteQueryCombinedArg<QueryArg, PageParam>, BaseQuery, ResultType, RawResultType> & InfiniteQueryExtraOptions<TagTypes, ResultType, QueryArg, PageParam, BaseQuery, ReducerPath, RawResultType>;\ntype MutationTypes<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {\n  /**\n   * The endpoint definition type. To be used with some internal generic types.\n   * @example\n   * ```ts\n   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\n   * ```\n   */\n  MutationDefinition: MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>;\n  TagTypes: TagTypes;\n  ReducerPath: ReducerPath;\n};\n\n/**\n * @public\n */\nexport interface MutationExtraOptions<TagTypes extends string, ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> extends CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>, QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath> {\n  type: DefinitionType.mutation;\n\n  /**\n   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\n   * Expects the same shapes as `providesTags`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"invalidatesTags example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   tagTypes: ['Posts'],\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts',\n   *       providesTags: (result) =>\n   *         result\n   *           ? [\n   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\n   *               { type: 'Posts', id: 'LIST' },\n   *             ]\n   *           : [{ type: 'Posts', id: 'LIST' }],\n   *     }),\n   *     addPost: build.mutation<Post, Partial<Post>>({\n   *       query(body) {\n   *         return {\n   *           url: `posts`,\n   *           method: 'POST',\n   *           body,\n   *         }\n   *       },\n   *       // highlight-start\n   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\n   *       // highlight-end\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  invalidatesTags?: ResultDescription<TagTypes, ResultType, QueryArg, BaseQueryError<BaseQuery>, BaseQueryMeta<BaseQuery>>;\n  /**\n   * Not to be used. A mutation should not provide tags to the cache.\n   */\n  providesTags?: never;\n\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n}\nexport type MutationDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> & MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath, RawResultType>;\nexport type EndpointDefinition<QueryArg, BaseQuery extends BaseQueryFn, TagTypes extends string, ResultType, ReducerPath extends string = string, PageParam = any, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>> = QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType> | InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\nexport type EndpointDefinitions = Record<string, EndpointDefinition<any, any, any, any, any, any, any>>;\nexport function isQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is QueryDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_QUERY;\n}\nexport function isMutationDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is MutationDefinition<any, any, any, any, any, any> {\n  return e.type === ENDPOINT_MUTATION;\n}\nexport function isInfiniteQueryDefinition(e: EndpointDefinition<any, any, any, any, any, any, any>): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {\n  return e.type === ENDPOINT_INFINITEQUERY;\n}\nexport function isAnyQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any> {\n  return isQueryDefinition(e) || isInfiniteQueryDefinition(e);\n}\nexport type EndpointBuilder<BaseQuery extends BaseQueryFn, TagTypes extends string, ReducerPath extends string> = {\n  /**\n   * An endpoint definition that retrieves data, and may provide tags to the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all query endpoint options\"\n   * const api = createApi({\n   *  baseQuery,\n   *  endpoints: (build) => ({\n   *    getPost: build.query({\n   *      query: (id) => ({ url: `post/${id}` }),\n   *      // Pick out data and prevent nested properties in a hook or selector\n   *      transformResponse: (response) => response.data,\n   *      // Pick out error and prevent nested properties in a hook or selector\n   *      transformErrorResponse: (response) => response.error,\n   *      // `result` is the server response\n   *      providesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\n   *    }),\n   *  }),\n   *});\n   *```\n   */\n  query<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n\n  /**\n   * An endpoint definition that alters data on the server or will possibly invalidate the cache.\n   *\n   * @example\n   * ```js\n   * // codeblock-meta title=\"Example of all mutation endpoint options\"\n   * const api = createApi({\n   *   baseQuery,\n   *   endpoints: (build) => ({\n   *     updatePost: build.mutation({\n   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\n   *       // Pick out data and prevent nested properties in a hook or selector\n   *       transformResponse: (response) => response.data,\n   *       // Pick out error and prevent nested properties in a hook or selector\n   *       transformErrorResponse: (response) => response.error,\n   *       // `result` is the server response\n   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\n   *      // trigger side effects or optimistic updates\n   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\n   *      // handle subscriptions etc\n   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\n   *     }),\n   *   }),\n   * });\n   * ```\n   */\n  mutation<ResultType, QueryArg, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n  infiniteQuery<ResultType, QueryArg, PageParam, RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>>(definition: OmitFromUnion<InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>, 'type'>): InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, ResultType, ReducerPath, RawResultType>;\n};\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T;\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(description: ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType> | undefined, result: ResultType | undefined, error: ErrorType | undefined, queryArg: QueryArg, meta: MetaType | undefined, assertTagTypes: AssertTagTypes): readonly FullTagDescription<string>[] {\n  const finalDescription = isFunction(description) ? description(result as ResultType, error as undefined, queryArg, meta as MetaType) : description;\n  if (finalDescription) {\n    return filterMap(finalDescription, isNotNullish, tag => assertTagTypes(expandTagDescription(tag)));\n  }\n  return [];\n}\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\n  return typeof t === 'function';\n}\nexport function expandTagDescription(description: TagDescription<string>): FullTagDescription<string> {\n  return typeof description === 'string' ? {\n    type: description\n  } : description;\n}\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never;\n\n// Just extracting `QueryArg` from `BaseEndpointDefinition`\n// doesn't sufficiently match here.\n// We need to explicitly match against `InfiniteQueryDefinition`\nexport type InfiniteQueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any> ? QA : never;\nexport type QueryArgFromAnyQuery<D extends BaseEndpointDefinition<any, any, any, any>> = D extends InfiniteQueryDefinition<any, any, any, any, any, any, any> ? InfiniteQueryArgFrom<D> : D extends QueryDefinition<any, any, any, any, any, any> ? QueryArgFrom<D> : never;\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any, any>> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown;\nexport type ReducerPathFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, any, any, infer RP, any, any> ? RP : unknown;\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any, any, any, any>> = D extends EndpointDefinition<any, any, infer TT, any, any, any, any> ? TT : unknown;\nexport type PageParamFrom<D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>> = D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any> ? PP : unknown;\nexport type InfiniteQueryCombinedArg<QueryArg, PageParam> = {\n  queryArg: QueryArg;\n  pageParam: PageParam;\n};\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes> ? TagTypes : never;\nexport type DefinitionsFromApi<T> = T extends Api<any, infer Definitions, any, any> ? Definitions : never;\nexport type TransformedResponse<NewDefinitions extends EndpointDefinitions, K, ResultType> = K extends keyof NewDefinitions ? NewDefinitions[K]['transformResponse'] extends undefined ? ResultType : UnwrapPromise<ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>> : ResultType;\nexport type OverrideResultType<Definition, NewResultType> = Definition extends QueryDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends MutationDefinition<infer QueryArg, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath> : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, infer TagTypes, any, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, TagTypes, NewResultType, ReducerPath> : never;\nexport type UpdateDefinitions<Definitions extends EndpointDefinitions, NewTagTypes extends string, NewDefinitions extends EndpointDefinitions> = { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? QueryDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends MutationDefinition<infer QueryArg, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? MutationDefinition<QueryArg, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : Definitions[K] extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQuery, any, infer ResultType, infer ReducerPath> ? InfiniteQueryDefinition<QueryArg, PageParam, BaseQuery, NewTagTypes, TransformedResponse<NewDefinitions, K, ResultType>, ReducerPath> : never };","export { current, isDraft, applyPatches, original, isDraftable, produceWithPatches, enablePatches } from 'immer';","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AsyncThunkAction, SafePromise, SerializedError, ThunkAction, UnknownAction } from '@reduxjs/toolkit';\nimport type { Dispatch } from 'redux';\nimport { asSafePromise } from '../../tsHelpers';\nimport { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes';\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport { ENDPOINT_QUERY, isQueryDefinition, type EndpointDefinition, type EndpointDefinitions, type InfiniteQueryArgFrom, type InfiniteQueryDefinition, type MutationDefinition, type PageParamFrom, type QueryArgFrom, type QueryDefinition, type ResultTypeFrom } from '../endpointDefinitions';\nimport { filterNullishValues } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQueryDirection, SubscriptionOptions } from './apiState';\nimport type { InfiniteQueryResultSelectorResult, QueryResultSelectorResult } from './buildSelectors';\nimport type { InfiniteQueryThunk, InfiniteQueryThunkArg, MutationThunk, QueryThunk, QueryThunkArg, ThunkApiMetaConfig } from './buildThunks';\nimport type { ApiEndpointQuery } from './module';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nexport type BuildInitiateApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = {\n  initiate: StartQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = {\n  initiate: StartInfiniteQueryActionCreator<Definition>;\n};\nexport type BuildInitiateApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = {\n  initiate: StartMutationActionCreator<Definition>;\n};\nexport const forceQueryFnSymbol = Symbol('forceQueryFn');\nexport const isUpsertQuery = (arg: QueryThunkArg) => typeof arg[forceQueryFnSymbol] === 'function';\nexport type StartQueryActionCreatorOptions = {\n  subscribe?: boolean;\n  forceRefetch?: boolean | number;\n  subscriptionOptions?: SubscriptionOptions;\n  [forceQueryFnSymbol]?: () => QueryReturnValue;\n};\ntype RefetchOptions = {\n  refetchCachedPages?: boolean;\n};\nexport type StartInfiniteQueryActionCreatorOptions<D extends InfiniteQueryDefinition<any, any, any, any, any>> = StartQueryActionCreatorOptions & {\n  direction?: InfiniteQueryDirection;\n  param?: unknown;\n} & Partial<Pick<Partial<InfiniteQueryConfigOptions<ResultTypeFrom<D>, PageParamFrom<D>, InfiniteQueryArgFrom<D>>>, 'initialPageParam' | 'refetchCachedPages'>>;\ntype AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (arg: any, options?: StartQueryActionCreatorOptions) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>;\ntype StartQueryActionCreator<D extends QueryDefinition<any, any, any, any, any>> = (arg: QueryArgFrom<D>, options?: StartQueryActionCreatorOptions) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>;\nexport type StartInfiniteQueryActionCreator<D extends InfiniteQueryDefinition<any, any, any, any, any>> = (arg: InfiniteQueryArgFrom<D>, options?: StartInfiniteQueryActionCreatorOptions<D>) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>;\ntype QueryActionCreatorFields = {\n  requestId: string;\n  subscriptionOptions: SubscriptionOptions | undefined;\n  abort(): void;\n  unsubscribe(): void;\n  updateSubscriptionOptions(options: SubscriptionOptions): void;\n  queryCacheKey: string;\n};\ntype AnyActionCreatorResult = SafePromise<any> & QueryActionCreatorFields & {\n  arg: any;\n  unwrap(): Promise<any>;\n  refetch(options?: RefetchOptions): AnyActionCreatorResult;\n};\nexport type QueryActionCreatorResult<D extends QueryDefinition<any, any, any, any>> = SafePromise<QueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: QueryArgFrom<D>;\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  refetch(): QueryActionCreatorResult<D>;\n};\nexport type InfiniteQueryActionCreatorResult<D extends InfiniteQueryDefinition<any, any, any, any, any>> = SafePromise<InfiniteQueryResultSelectorResult<D>> & QueryActionCreatorFields & {\n  arg: InfiniteQueryArgFrom<D>;\n  unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>;\n  refetch(options?: Pick<StartInfiniteQueryActionCreatorOptions<D>, 'refetchCachedPages'>): InfiniteQueryActionCreatorResult<D>;\n};\ntype StartMutationActionCreator<D extends MutationDefinition<any, any, any, any>> = (arg: QueryArgFrom<D>, options?: {\n  /**\n   * If this mutation should be tracked in the store.\n   * If you just want to manually trigger this mutation using `dispatch` and don't care about the\n   * result, state & potential errors being held in store, you can set this to false.\n   * (defaults to `true`)\n   */\n  track?: boolean;\n  fixedCacheKey?: string;\n}) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>;\nexport type MutationActionCreatorResult<D extends MutationDefinition<any, any, any, any>> = SafePromise<{\n  data: ResultTypeFrom<D>;\n  error?: undefined;\n} | {\n  data?: undefined;\n  error: Exclude<BaseQueryError<D extends MutationDefinition<any, infer BaseQuery, any, any> ? BaseQuery : never>, undefined> | SerializedError;\n}> & {\n  /** @internal */\n  arg: {\n    /**\n     * The name of the given endpoint for the mutation\n     */\n    endpointName: string;\n    /**\n     * The original arguments supplied to the mutation call\n     */\n    originalArgs: QueryArgFrom<D>;\n    /**\n     * Whether the mutation is being tracked in the store.\n     */\n    track?: boolean;\n    fixedCacheKey?: string;\n  };\n  /**\n   * A unique string generated for the request sequence\n   */\n  requestId: string;\n\n  /**\n   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\n   * that was fired off from reaching the server, but only to assist in handling the response.\n   *\n   * Calling `abort()` prior to the promise resolving will force it to reach the error state with\n   * the serialized error:\n   * `{ name: 'AbortError', message: 'Aborted' }`\n   *\n   * @example\n   * ```ts\n   * const [updateUser] = useUpdateUserMutation();\n   *\n   * useEffect(() => {\n   *   const promise = updateUser(id);\n   *   promise\n   *     .unwrap()\n   *     .catch((err) => {\n   *       if (err.name === 'AbortError') return;\n   *       // else handle the unexpected error\n   *     })\n   *\n   *   return () => {\n   *     promise.abort();\n   *   }\n   * }, [id, updateUser])\n   * ```\n   */\n  abort(): void;\n  /**\n   * Unwraps a mutation call to provide the raw response/error.\n   *\n   * @remarks\n   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap\"\n   * addPost({ id: 1, name: 'Example' })\n   *   .unwrap()\n   *   .then((payload) => console.log('fulfilled', payload))\n   *   .catch((error) => console.error('rejected', error));\n   * ```\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"Using .unwrap with async await\"\n   * try {\n   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\n   *   console.log('fulfilled', payload)\n   * } catch (error) {\n   *   console.error('rejected', error);\n   * }\n   * ```\n   */\n  unwrap(): Promise<ResultTypeFrom<D>>;\n  /**\n   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\n   The value returned by the hook will reset to `isUninitialized` afterwards.\n   */\n  reset(): void;\n};\nexport function buildInitiate({\n  serializeQueryArgs,\n  queryThunk,\n  infiniteQueryThunk,\n  mutationThunk,\n  api,\n  context,\n  getInternalState\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  api: Api<any, EndpointDefinitions, any, any>;\n  context: ApiContext<EndpointDefinitions>;\n  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState;\n}) {\n  const getRunningQueries = (dispatch: Dispatch) => getInternalState(dispatch)?.runningQueries;\n  const getRunningMutations = (dispatch: Dispatch) => getInternalState(dispatch)?.runningMutations;\n  const {\n    unsubscribeQueryResult,\n    removeMutationResult,\n    updateSubscriptionOptions\n  } = api.internalActions;\n  return {\n    buildInitiateQuery,\n    buildInitiateInfiniteQuery,\n    buildInitiateMutation,\n    getRunningQueryThunk,\n    getRunningMutationThunk,\n    getRunningQueriesThunk,\n    getRunningMutationsThunk\n  };\n  function getRunningQueryThunk(endpointName: string, queryArgs: any) {\n    return (dispatch: Dispatch) => {\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      return getRunningQueries(dispatch)?.get(queryCacheKey) as QueryActionCreatorResult<never> | InfiniteQueryActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningMutationThunk(\n  /**\n   * this is only here to allow TS to infer the result type by input value\n   * we could use it to validate the result, but it's probably not necessary\n   */\n  _endpointName: string, fixedCacheKeyOrRequestId: string) {\n    return (dispatch: Dispatch) => {\n      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as MutationActionCreatorResult<never> | undefined;\n    };\n  }\n  function getRunningQueriesThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningQueries(dispatch));\n  }\n  function getRunningMutationsThunk() {\n    return (dispatch: Dispatch) => filterNullishValues(getRunningMutations(dispatch));\n  }\n  function middlewareWarning(dispatch: Dispatch) {\n    if (process.env.NODE_ENV !== 'production') {\n      if ((middlewareWarning as any).triggered) return;\n      const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n      (middlewareWarning as any).triggered = true;\n\n      // The RTKQ middleware should return the internal state object,\n      // but it should _not_ be the action object.\n      if (typeof returnedValue !== 'object' || typeof returnedValue?.type === 'string') {\n        // Otherwise, must not have been added\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n      }\n    }\n  }\n  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any> | InfiniteQueryDefinition<any, any, any, any, any>) {\n    const queryAction: AnyQueryActionCreator<any> = (arg, {\n      subscribe = true,\n      forceRefetch,\n      subscriptionOptions,\n      [forceQueryFnSymbol]: forceQueryFn,\n      ...rest\n    } = {}) => (dispatch, getState) => {\n      const queryCacheKey = serializeQueryArgs({\n        queryArgs: arg,\n        endpointDefinition,\n        endpointName\n      });\n      let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>;\n      const commonThunkArgs = {\n        ...rest,\n        type: ENDPOINT_QUERY as 'query',\n        subscribe,\n        forceRefetch: forceRefetch,\n        subscriptionOptions,\n        endpointName,\n        originalArgs: arg,\n        queryCacheKey,\n        [forceQueryFnSymbol]: forceQueryFn\n      };\n      if (isQueryDefinition(endpointDefinition)) {\n        thunk = queryThunk(commonThunkArgs);\n      } else {\n        const {\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        } = rest as Pick<InfiniteQueryThunkArg<any>, 'direction' | 'initialPageParam' | 'refetchCachedPages'>;\n        thunk = infiniteQueryThunk({\n          ...(commonThunkArgs as InfiniteQueryThunkArg<any>),\n          // Supply these even if undefined. This helps with a field existence\n          // check over in `buildSlice.ts`\n          direction,\n          initialPageParam,\n          refetchCachedPages\n        });\n      }\n      const selector = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg);\n      const thunkResult = dispatch(thunk);\n      const stateAfter = selector(getState());\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort\n      } = thunkResult;\n      const skippedSynchronously = stateAfter.requestId !== requestId;\n      const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey);\n      const selectFromState = () => selector(getState());\n      const statePromise: AnyActionCreatorResult = Object.assign((forceQueryFn ?\n      // a query has been forced (upsertQueryData)\n      // -> we want to resolve it once data has been written with the data that will be written\n      thunkResult.then(selectFromState) : skippedSynchronously && !runningQuery ?\n      // a query has been skipped due to a condition and we do not have any currently running query\n      // -> we want to resolve it immediately with the current data\n      Promise.resolve(stateAfter) :\n      // query just started or one is already in flight\n      // -> wait for the running query, then resolve with data from after that\n      Promise.all([runningQuery, thunkResult]).then(selectFromState)) as SafePromise<any>, {\n        arg,\n        requestId,\n        subscriptionOptions,\n        queryCacheKey,\n        abort,\n        async unwrap() {\n          const result = await statePromise;\n          if (result.isError) {\n            throw result.error;\n          }\n          return result.data;\n        },\n        refetch: (options?: RefetchOptions) => dispatch(queryAction(arg, {\n          subscribe: false,\n          forceRefetch: true,\n          ...options\n        })),\n        unsubscribe() {\n          if (subscribe) dispatch(unsubscribeQueryResult({\n            queryCacheKey,\n            requestId\n          }));\n        },\n        updateSubscriptionOptions(options: SubscriptionOptions) {\n          statePromise.subscriptionOptions = options;\n          dispatch(updateSubscriptionOptions({\n            endpointName,\n            requestId,\n            queryCacheKey,\n            options\n          }));\n        }\n      });\n      if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n        const runningQueries = getRunningQueries(dispatch)!;\n        runningQueries.set(queryCacheKey, statePromise);\n        statePromise.then(() => {\n          runningQueries.delete(queryCacheKey);\n        });\n      }\n      return statePromise;\n    };\n    return queryAction;\n  }\n  function buildInitiateQuery(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return queryAction;\n  }\n  function buildInitiateInfiniteQuery(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> = buildInitiateAnyQuery(endpointName, endpointDefinition);\n    return infiniteQueryAction;\n  }\n  function buildInitiateMutation(endpointName: string): StartMutationActionCreator<any> {\n    return (arg, {\n      track = true,\n      fixedCacheKey\n    } = {}) => (dispatch, getState) => {\n      const thunk = mutationThunk({\n        type: 'mutation',\n        endpointName,\n        originalArgs: arg,\n        track,\n        fixedCacheKey\n      });\n      const thunkResult = dispatch(thunk);\n      middlewareWarning(dispatch);\n      const {\n        requestId,\n        abort,\n        unwrap\n      } = thunkResult;\n      const returnValuePromise = asSafePromise(thunkResult.unwrap().then(data => ({\n        data\n      })), error => ({\n        error\n      }));\n      const reset = () => {\n        dispatch(removeMutationResult({\n          requestId,\n          fixedCacheKey\n        }));\n      };\n      const ret = Object.assign(returnValuePromise, {\n        arg: thunkResult.arg,\n        requestId,\n        abort,\n        unwrap,\n        reset\n      });\n      const runningMutations = getRunningMutations(dispatch)!;\n      runningMutations.set(requestId, ret);\n      ret.then(() => {\n        runningMutations.delete(requestId);\n      });\n      if (fixedCacheKey) {\n        runningMutations.set(fixedCacheKey, ret);\n        ret.then(() => {\n          if (runningMutations.get(fixedCacheKey) === ret) {\n            runningMutations.delete(fixedCacheKey);\n          }\n        });\n      }\n      return ret;\n    };\n  }\n}","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import type { UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn } from './baseQueryTypes';\nimport type { CombinedState, CoreModule, QueryKeys } from './core';\nimport type { ApiModules } from './core/module';\nimport type { CreateApiOptions } from './createApi';\nimport type { EndpointBuilder, EndpointDefinition, EndpointDefinitions, UpdateDefinitions } from './endpointDefinitions';\nimport type { NoInfer, UnionToIntersection, WithRequiredProp } from './tsHelpers';\nexport type ModuleName = keyof ApiModules<any, any, any, any>;\nexport type Module<Name extends ModuleName> = {\n  name: Name;\n  init<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>, options: WithRequiredProp<CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>, 'reducerPath' | 'serializeQueryArgs' | 'keepUnusedDataFor' | 'refetchOnMountOrArgChange' | 'refetchOnFocus' | 'refetchOnReconnect' | 'invalidationBehavior' | 'tagTypes'>, context: ApiContext<Definitions>): {\n    injectEndpoint(endpointName: string, definition: EndpointDefinition<any, any, any, any>): void;\n  };\n};\nexport interface ApiContext<Definitions extends EndpointDefinitions> {\n  apiUid: string;\n  endpointDefinitions: Definitions;\n  batch(cb: () => void): void;\n  extractRehydrationInfo: (action: UnknownAction) => CombinedState<any, any, any> | undefined;\n  hasRehydrationInfo: (action: UnknownAction) => boolean;\n}\nexport const getEndpointDefinition = <Definitions extends EndpointDefinitions, EndpointName extends keyof Definitions>(context: ApiContext<Definitions>, endpointName: EndpointName) => context.endpointDefinitions[endpointName];\nexport type Api<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string, Enhancers extends ModuleName = CoreModule> = UnionToIntersection<ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]> & {\n  /**\n   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.\n   */\n  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {\n    endpoints: (build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>) => NewDefinitions;\n    /**\n     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.\n     *\n     * If set to `true`, will override existing endpoints with the new definition.\n     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.\n     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.\n     */\n    overrideExisting?: boolean | 'throw';\n  }): Api<BaseQuery, Definitions & NewDefinitions, ReducerPath, TagTypes, Enhancers>;\n  /**\n   *A function to enhance a generated API with additional information. Useful with code-generation.\n   */\n  enhanceEndpoints<NewTagTypes extends string = never, NewDefinitions extends EndpointDefinitions = never>(_: {\n    addTagTypes?: readonly NewTagTypes[];\n    endpoints?: UpdateDefinitions<Definitions, TagTypes | NoInfer<NewTagTypes>, NewDefinitions> extends infer NewDefinitions ? { [K in keyof NewDefinitions]?: Partial<NewDefinitions[K]> | ((definition: NewDefinitions[K]) => void) } : never;\n  }): Api<BaseQuery, UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>, ReducerPath, TagTypes | NewTagTypes, Enhancers>;\n};","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { SchemaError } from '@standard-schema/utils';\nimport type { SchemaType } from './endpointDefinitions';\nexport class NamedSchemaError extends SchemaError {\n  constructor(issues: readonly StandardSchemaV1.Issue[], public readonly value: any, public readonly schemaName: `${SchemaType}Schema`, public readonly _bqMeta: any) {\n    super(issues);\n  }\n}\nexport const shouldSkip = (skipSchemaValidation: boolean | SchemaType[] | undefined, schemaName: SchemaType) => Array.isArray(skipSchemaValidation) ? skipSchemaValidation.includes(schemaName) : !!skipSchemaValidation;\nexport async function parseWithSchema<Schema extends StandardSchemaV1>(schema: Schema, data: unknown, schemaName: `${SchemaType}Schema`, bqMeta: any): Promise<StandardSchemaV1.InferOutput<Schema>> {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta);\n  }\n  return result.value;\n}","import type { AsyncThunk, AsyncThunkPayloadCreator, Draft, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { Patch } from 'immer';\nimport { isDraftable, produceWithPatches } from '../utils/immerImports';\nimport type { Api, ApiContext } from '../apiTypes';\nimport type { BaseQueryError, BaseQueryFn, QueryReturnValue } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryCombinedArg, InfiniteQueryDefinition, MutationDefinition, PageParamFrom, QueryArgFrom, QueryDefinition, ResultDescription, ResultTypeFrom, SchemaFailureConverter, SchemaFailureHandler, SchemaFailureInfo, SchemaType } from '../endpointDefinitions';\nimport { calculateProvidedBy, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { HandledError } from '../HandledError';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport type { RootState, QueryKeys, QuerySubstateIdentifier, InfiniteData, InfiniteQueryConfigOptions, QueryCacheKey, InfiniteQueryDirection, InfiniteQueryKeys } from './apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from './apiState';\nimport type { InfiniteQueryActionCreatorResult, QueryActionCreatorResult, StartInfiniteQueryActionCreatorOptions, StartQueryActionCreatorOptions } from './buildInitiate';\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate';\nimport type { AllSelectors } from './buildSelectors';\nimport type { ApiEndpointQuery, PrefetchOptions } from './module';\nimport { createAsyncThunk, isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, SHOULD_AUTOBATCH } from './rtkImports';\nimport { parseWithSchema, NamedSchemaError, shouldSkip } from '../standardSchema';\nexport type BuildThunksApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>> = Matchers<QueryThunk, Definition>;\nexport type BuildThunksApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = Matchers<InfiniteQueryThunk<any>, Definition>;\nexport type BuildThunksApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>> = Matchers<MutationThunk, Definition>;\ntype EndpointThunk<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = Definition extends EndpointDefinition<infer QueryArg, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<ResultType, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : Definition extends InfiniteQueryDefinition<infer QueryArg, infer PageParam, infer BaseQueryFn, any, infer ResultType> ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig> ? AsyncThunk<InfiniteData<ResultType, PageParam>, ATArg & {\n  originalArgs: QueryArg;\n}, ATConfig & {\n  rejectValue: BaseQueryError<BaseQueryFn>;\n}> : never : never;\nexport type PendingAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>;\nexport type FulfilledAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>;\nexport type RejectedAction<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>;\nexport type Matcher<M> = (value: any) => value is M;\nexport interface Matchers<Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>, Definition extends EndpointDefinition<any, any, any, any>> {\n  matchPending: Matcher<PendingAction<Thunk, Definition>>;\n  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>;\n  matchRejected: Matcher<RejectedAction<Thunk, Definition>>;\n}\nexport type QueryThunkArg = QuerySubstateIdentifier & StartQueryActionCreatorOptions & {\n  type: 'query';\n  originalArgs: unknown;\n  endpointName: string;\n};\nexport type InfiniteQueryThunkArg<D extends InfiniteQueryDefinition<any, any, any, any, any>> = QuerySubstateIdentifier & StartInfiniteQueryActionCreatorOptions<D> & {\n  type: `query`;\n  originalArgs: unknown;\n  endpointName: string;\n  param: unknown;\n  direction?: InfiniteQueryDirection;\n  refetchCachedPages?: boolean;\n};\ntype MutationThunkArg = {\n  type: 'mutation';\n  originalArgs: unknown;\n  endpointName: string;\n  track?: boolean;\n  fixedCacheKey?: string;\n};\nexport type ThunkResult = unknown;\nexport type ThunkApiMetaConfig = {\n  pendingMeta: {\n    startedTimeStamp: number;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  fulfilledMeta: {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n  rejectedMeta: {\n    baseQueryMeta: unknown;\n    [SHOULD_AUTOBATCH]: true;\n  };\n};\nexport type QueryThunk = AsyncThunk<ThunkResult, QueryThunkArg, ThunkApiMetaConfig>;\nexport type InfiniteQueryThunk<D extends InfiniteQueryDefinition<any, any, any, any, any>> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>;\nexport type MutationThunk = AsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig>;\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\n  return baseQueryReturnValue;\n}\nexport type MaybeDrafted<T> = T | Draft<T>;\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>;\nexport type UpsertRecipe<T> = (data: MaybeDrafted<T> | undefined) => void | MaybeDrafted<T>;\nexport type PatchQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, patches: readonly Patch[], updateProvided?: boolean) => ThunkAction<void, PartialState, any, UnknownAction>;\nexport type AllQueryKeys<Definitions extends EndpointDefinitions> = QueryKeys<Definitions> | InfiniteQueryKeys<Definitions>;\nexport type QueryArgFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryArgFrom<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryArgFrom<Definitions[EndpointName]> : never;\nexport type DataFromAnyQueryDefinition<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteData<ResultTypeFrom<Definitions[EndpointName]>, PageParamFrom<Definitions[EndpointName]>> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? ResultTypeFrom<Definitions[EndpointName]> : unknown;\nexport type UpsertThunkResult<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = Definitions[EndpointName] extends InfiniteQueryDefinition<any, any, any, any, any> ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]> : Definitions[EndpointName] extends QueryDefinition<any, any, any, any> ? QueryActionCreatorResult<Definitions[EndpointName]> : QueryActionCreatorResult<never>;\nexport type UpdateQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>, updateProvided?: boolean) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>;\nexport type UpsertQueryDataThunk<Definitions extends EndpointDefinitions, PartialState> = <EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>, value: DataFromAnyQueryDefinition<Definitions, EndpointName>) => ThunkAction<UpsertThunkResult<Definitions, EndpointName>, PartialState, any, UnknownAction>;\n\n/**\n * An object returned from dispatching a `api.util.updateQueryData` call.\n */\nexport type PatchCollection = {\n  /**\n   * An `immer` Patch describing the cache update.\n   */\n  patches: Patch[];\n  /**\n   * An `immer` Patch to revert the cache update.\n   */\n  inversePatches: Patch[];\n  /**\n   * A function that will undo the cache update.\n   */\n  undo: () => void;\n};\ntype TransformCallback = (baseQueryReturnValue: unknown, meta: unknown, arg: unknown) => any;\nexport const addShouldAutoBatch = <T extends Record<string, any>,>(arg: T = {} as T): T & {\n  [SHOULD_AUTOBATCH]: true;\n} => {\n  return {\n    ...arg,\n    [SHOULD_AUTOBATCH]: true\n  };\n};\nexport function buildThunks<BaseQuery extends BaseQueryFn, ReducerPath extends string, Definitions extends EndpointDefinitions>({\n  reducerPath,\n  baseQuery,\n  context: {\n    endpointDefinitions\n  },\n  serializeQueryArgs,\n  api,\n  assertTagType,\n  selectors,\n  onSchemaFailure,\n  catchSchemaFailure: globalCatchSchemaFailure,\n  skipSchemaValidation: globalSkipSchemaValidation\n}: {\n  baseQuery: BaseQuery;\n  reducerPath: ReducerPath;\n  context: ApiContext<Definitions>;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  api: Api<BaseQuery, Definitions, ReducerPath, any>;\n  assertTagType: AssertTagTypes;\n  selectors: AllSelectors;\n  onSchemaFailure: SchemaFailureHandler | undefined;\n  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined;\n  skipSchemaValidation: boolean | SchemaType[] | undefined;\n}) {\n  type State = RootState<any, string, ReducerPath>;\n  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n    const endpointDefinition = endpointDefinitions[endpointName];\n    const queryCacheKey = serializeQueryArgs({\n      queryArgs: arg,\n      endpointDefinition,\n      endpointName\n    });\n    dispatch(api.internalActions.queryResultPatched({\n      queryCacheKey,\n      patches\n    }));\n    if (!updateProvided) {\n      return;\n    }\n    const newValue = api.endpoints[endpointName].select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, undefined, arg, {}, assertTagType);\n    dispatch(api.internalActions.updateProvidedBy([{\n      queryCacheKey,\n      providedTags\n    }]));\n  };\n  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [item, ...items];\n    return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n  }\n  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n    const newItems = [...items, item];\n    return max && newItems.length > max ? newItems.slice(1) : newItems;\n  }\n  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n    const endpointDefinition = api.endpoints[endpointName];\n    const currentState = endpointDefinition.select(arg)(\n    // Work around TS 4.1 mismatch\n    getState() as RootState<any, any, any>);\n    const ret: PatchCollection = {\n      patches: [],\n      inversePatches: [],\n      undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n    };\n    if (currentState.status === STATUS_UNINITIALIZED) {\n      return ret;\n    }\n    let newValue;\n    if ('data' in currentState) {\n      if (isDraftable(currentState.data)) {\n        const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n        ret.patches.push(...patches);\n        ret.inversePatches.push(...inversePatches);\n        newValue = value;\n      } else {\n        newValue = updateRecipe(currentState.data);\n        ret.patches.push({\n          op: 'replace',\n          path: [],\n          value: newValue\n        });\n        ret.inversePatches.push({\n          op: 'replace',\n          path: [],\n          value: currentState.data\n        });\n      }\n    }\n    if (ret.patches.length === 0) {\n      return ret;\n    }\n    dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n    return ret;\n  };\n  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> = (endpointName, arg, value) => dispatch => {\n    type EndpointName = typeof endpointName;\n    const res = dispatch((api.endpoints[endpointName] as ApiEndpointQuery<QueryDefinition<any, any, any, any, any>, Definitions>).initiate(arg, {\n      subscribe: false,\n      forceRefetch: true,\n      [forceQueryFnSymbol]: () => ({\n        data: value\n      })\n    })) as UpsertThunkResult<Definitions, EndpointName>;\n    return res;\n  };\n  const getTransformCallbackForEndpoint = (endpointDefinition: EndpointDefinition<any, any, any, any>, transformFieldName: 'transformResponse' | 'transformErrorResponse'): TransformCallback => {\n    return endpointDefinition.query && endpointDefinition[transformFieldName] ? endpointDefinition[transformFieldName]! as TransformCallback : defaultTransformResponse;\n  };\n\n  // The generic async payload function for all of our thunks\n  const executeEndpoint: AsyncThunkPayloadCreator<ThunkResult, QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }> = async (arg, {\n    signal,\n    abort,\n    rejectWithValue,\n    fulfillWithValue,\n    dispatch,\n    getState,\n    extra\n  }) => {\n    const endpointDefinition = endpointDefinitions[arg.endpointName];\n    const {\n      metaSchema,\n      skipSchemaValidation = globalSkipSchemaValidation\n    } = endpointDefinition;\n    const isQuery = arg.type === ENDPOINT_QUERY;\n    try {\n      let transformResponse: TransformCallback = defaultTransformResponse;\n      const baseQueryApi = {\n        signal,\n        abort,\n        dispatch,\n        getState,\n        extra,\n        endpoint: arg.endpointName,\n        type: arg.type,\n        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,\n        queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n      };\n      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined;\n      let finalQueryReturnValue: QueryReturnValue;\n\n      // Infinite query wrapper, which executes the request and returns\n      // the InfiniteData `{pages, pageParams}` structure\n      const fetchPage = async (data: InfiniteData<unknown, unknown>, param: unknown, maxPages: number, previous?: boolean): Promise<QueryReturnValue> => {\n        // This should handle cases where there is no `getPrevPageParam`,\n        // or `getPPP` returned nullish\n        if (param == null && data.pages.length) {\n          return Promise.resolve({\n            data\n          });\n        }\n        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {\n          queryArg: arg.originalArgs,\n          pageParam: param\n        };\n        const pageResponse = await executeRequest(finalQueryArg);\n        const addTo = previous ? addToStart : addToEnd;\n        return {\n          data: {\n            pages: addTo(data.pages, pageResponse.data, maxPages),\n            pageParams: addTo(data.pageParams, param, maxPages)\n          },\n          meta: pageResponse.meta\n        };\n      };\n\n      // Wrapper for executing either `query` or `queryFn`,\n      // and handling any errors\n      async function executeRequest(finalQueryArg: unknown): Promise<QueryReturnValue> {\n        let result: QueryReturnValue;\n        const {\n          extraOptions,\n          argSchema,\n          rawResponseSchema,\n          responseSchema\n        } = endpointDefinition;\n        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {\n          finalQueryArg = await parseWithSchema(argSchema, finalQueryArg, 'argSchema', {} // we don't have a meta yet, so we can't pass it\n          );\n        }\n        if (forceQueryFn) {\n          // upsertQueryData relies on this to pass in the user-provided value\n          result = forceQueryFn();\n        } else if (endpointDefinition.query) {\n          // We should only run `transformResponse` when the endpoint has a `query` method,\n          // and we're not doing an `upsertQueryData`.\n          transformResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformResponse');\n          result = await baseQuery(endpointDefinition.query(finalQueryArg as any), baseQueryApi, extraOptions as any);\n        } else {\n          result = await endpointDefinition.queryFn(finalQueryArg as any, baseQueryApi, extraOptions as any, arg => baseQuery(arg, baseQueryApi, extraOptions as any));\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`';\n          let err: undefined | string;\n          if (!result) {\n            err = `${what} did not return anything.`;\n          } else if (typeof result !== 'object') {\n            err = `${what} did not return an object.`;\n          } else if (result.error && result.data) {\n            err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n          } else if (result.error === undefined && result.data === undefined) {\n            err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n          } else {\n            for (const key of Object.keys(result)) {\n              if (key !== 'error' && key !== 'data' && key !== 'meta') {\n                err = `The object returned by ${what} has the unknown property ${key}.`;\n                break;\n              }\n            }\n          }\n          if (err) {\n            console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n                  ${err}\n                  It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n                  Object returned was:`, result);\n          }\n        }\n        if (result.error) throw new HandledError(result.error, result.meta);\n        let {\n          data\n        } = result;\n        if (rawResponseSchema && !shouldSkip(skipSchemaValidation, 'rawResponse')) {\n          data = await parseWithSchema(rawResponseSchema, result.data, 'rawResponseSchema', result.meta);\n        }\n        let transformedResponse = await transformResponse(data, result.meta, finalQueryArg);\n        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {\n          transformedResponse = await parseWithSchema(responseSchema, transformedResponse, 'responseSchema', result.meta);\n        }\n        return {\n          ...result,\n          data: transformedResponse\n        };\n      }\n      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {\n        // This is an infinite query endpoint\n        const {\n          infiniteQueryOptions\n        } = endpointDefinition;\n\n        // Runtime checks should guarantee this is a positive number if provided\n        const {\n          maxPages = Infinity\n        } = infiniteQueryOptions;\n\n        // Priority: per-call override > endpoint config > default (true)\n        const refetchCachedPages = (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ?? infiniteQueryOptions.refetchCachedPages ?? true;\n        let result: QueryReturnValue;\n\n        // Start by looking up the existing InfiniteData value from state,\n        // falling back to an empty value if it doesn't exist yet\n        const blankData = {\n          pages: [],\n          pageParams: []\n        };\n        const cachedData = selectors.selectQueryEntry(getState(), arg.queryCacheKey)?.data as InfiniteData<unknown, unknown> | undefined;\n\n        // When the arg changes or the user forces a refetch,\n        // we don't include the `direction` flag. This lets us distinguish\n        // between actually refetching with a forced query, vs just fetching\n        // the next page.\n        const isForcedQueryNeedingRefetch =\n        // arg.forceRefetch\n        isForcedQuery(arg, getState()) && !(arg as InfiniteQueryThunkArg<any>).direction;\n        const existingData = (isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData) as InfiniteData<unknown, unknown>;\n\n        // If the thunk specified a direction and we do have at least one page,\n        // fetch the next or previous page\n        if ('direction' in arg && arg.direction && existingData.pages.length) {\n          const previous = arg.direction === 'backward';\n          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n          const param = pageParamFn(infiniteQueryOptions, existingData, arg.originalArgs);\n          result = await fetchPage(existingData, param, maxPages, previous);\n        } else {\n          // Otherwise, fetch the first page and then any remaining pages\n\n          const {\n            initialPageParam = infiniteQueryOptions.initialPageParam\n          } = arg as InfiniteQueryThunkArg<any>;\n\n          // If we're doing a refetch, we should start from\n          // the first page we have cached.\n          // Otherwise, we should start from the initialPageParam\n          const cachedPageParams = cachedData?.pageParams ?? [];\n          const firstPageParam = cachedPageParams[0] ?? initialPageParam;\n          const totalPages = cachedPageParams.length;\n\n          // Fetch first page\n          result = await fetchPage(existingData, firstPageParam, maxPages);\n          if (forceQueryFn) {\n            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,\n            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.\n            result = {\n              data: (result.data as InfiniteData<unknown, unknown>).pages[0]\n            } as QueryReturnValue;\n          }\n          if (refetchCachedPages) {\n            // Fetch remaining pages\n            for (let i = 1; i < totalPages; i++) {\n              const param = getNextPageParam(infiniteQueryOptions, result.data as InfiniteData<unknown, unknown>, arg.originalArgs);\n              result = await fetchPage(result.data as InfiniteData<unknown, unknown>, param, maxPages);\n            }\n          }\n        }\n        finalQueryReturnValue = result;\n      } else {\n        // Non-infinite endpoint. Just run the one request.\n        finalQueryReturnValue = await executeRequest(arg.originalArgs);\n      }\n      if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta') && finalQueryReturnValue.meta) {\n        finalQueryReturnValue.meta = await parseWithSchema(metaSchema, finalQueryReturnValue.meta, 'metaSchema', finalQueryReturnValue.meta);\n      }\n\n      // console.log('Final result: ', transformedData)\n      return fulfillWithValue(finalQueryReturnValue.data, addShouldAutoBatch({\n        fulfilledTimeStamp: Date.now(),\n        baseQueryMeta: finalQueryReturnValue.meta\n      }));\n    } catch (error) {\n      let caughtError = error;\n      if (caughtError instanceof HandledError) {\n        let transformErrorResponse = getTransformCallbackForEndpoint(endpointDefinition, 'transformErrorResponse');\n        const {\n          rawErrorResponseSchema,\n          errorResponseSchema\n        } = endpointDefinition;\n        let {\n          value,\n          meta\n        } = caughtError;\n        try {\n          if (rawErrorResponseSchema && !shouldSkip(skipSchemaValidation, 'rawErrorResponse')) {\n            value = await parseWithSchema(rawErrorResponseSchema, value, 'rawErrorResponseSchema', meta);\n          }\n          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {\n            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta);\n          }\n          let transformedErrorResponse = await transformErrorResponse(value, meta, arg.originalArgs);\n          if (errorResponseSchema && !shouldSkip(skipSchemaValidation, 'errorResponse')) {\n            transformedErrorResponse = await parseWithSchema(errorResponseSchema, transformedErrorResponse, 'errorResponseSchema', meta);\n          }\n          return rejectWithValue(transformedErrorResponse, addShouldAutoBatch({\n            baseQueryMeta: meta\n          }));\n        } catch (e) {\n          caughtError = e;\n        }\n      }\n      try {\n        if (caughtError instanceof NamedSchemaError) {\n          const info: SchemaFailureInfo = {\n            endpoint: arg.endpointName,\n            arg: arg.originalArgs,\n            type: arg.type,\n            queryCacheKey: isQuery ? arg.queryCacheKey : undefined\n          };\n          endpointDefinition.onSchemaFailure?.(caughtError, info);\n          onSchemaFailure?.(caughtError, info);\n          const {\n            catchSchemaFailure = globalCatchSchemaFailure\n          } = endpointDefinition;\n          if (catchSchemaFailure) {\n            return rejectWithValue(catchSchemaFailure(caughtError, info), addShouldAutoBatch({\n              baseQueryMeta: caughtError._bqMeta\n            }));\n          }\n        }\n      } catch (e) {\n        caughtError = e;\n      }\n      if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n        console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, caughtError);\n      } else {\n        console.error(caughtError);\n      }\n      throw caughtError;\n    }\n  };\n  function isForcedQuery(arg: QueryThunkArg, state: RootState<any, string, ReducerPath>) {\n    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey);\n    const baseFetchOnMountOrArgChange = selectors.selectConfig(state).refetchOnMountOrArgChange;\n    const fulfilledVal = requestState?.fulfilledTimeStamp;\n    const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n    if (refetchVal) {\n      // Return if it's true or compare the dates because it must be a number\n      return refetchVal === true || (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal;\n    }\n    return false;\n  }\n  const createQueryThunk = <ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,>() => {\n    const generatedQueryThunk = createAsyncThunk<ThunkResult, ThunkArgType, ThunkApiMetaConfig & {\n      state: RootState<any, string, ReducerPath>;\n    }>(`${reducerPath}/executeQuery`, executeEndpoint, {\n      getPendingMeta({\n        arg\n      }) {\n        const endpointDefinition = endpointDefinitions[arg.endpointName];\n        return addShouldAutoBatch({\n          startedTimeStamp: Date.now(),\n          ...(isInfiniteQueryDefinition(endpointDefinition) ? {\n            direction: (arg as InfiniteQueryThunkArg<any>).direction\n          } : {})\n        });\n      },\n      condition(queryThunkArg, {\n        getState\n      }) {\n        const state = getState();\n        const requestState = selectors.selectQueryEntry(state, queryThunkArg.queryCacheKey);\n        const fulfilledVal = requestState?.fulfilledTimeStamp;\n        const currentArg = queryThunkArg.originalArgs;\n        const previousArg = requestState?.originalArgs;\n        const endpointDefinition = endpointDefinitions[queryThunkArg.endpointName];\n        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>).direction;\n\n        // Order of these checks matters.\n        // In order for `upsertQueryData` to successfully run while an existing request is in flight,\n        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\n        if (isUpsertQuery(queryThunkArg)) {\n          return true;\n        }\n\n        // Don't retry a request that's currently in-flight\n        if (requestState?.status === 'pending') {\n          return false;\n        }\n\n        // if this is forced, continue\n        if (isForcedQuery(queryThunkArg, state)) {\n          return true;\n        }\n        if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n          currentArg,\n          previousArg,\n          endpointState: requestState,\n          state\n        })) {\n          return true;\n        }\n\n        // Pull from the cache unless we explicitly force refetch or qualify based on time\n        if (fulfilledVal && !direction) {\n          // Value is cached and we didn't specify to refresh, skip it.\n          return false;\n        }\n        return true;\n      },\n      dispatchConditionRejection: true\n    });\n    return generatedQueryThunk;\n  };\n  const queryThunk = createQueryThunk<QueryThunkArg>();\n  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>();\n  const mutationThunk = createAsyncThunk<ThunkResult, MutationThunkArg, ThunkApiMetaConfig & {\n    state: RootState<any, string, ReducerPath>;\n  }>(`${reducerPath}/executeMutation`, executeEndpoint, {\n    getPendingMeta() {\n      return addShouldAutoBatch({\n        startedTimeStamp: Date.now()\n      });\n    }\n  });\n  const hasTheForce = (options: any): options is {\n    force: boolean;\n  } => 'force' in options;\n  const hasMaxAge = (options: any): options is {\n    ifOlderThan: false | number;\n  } => 'ifOlderThan' in options;\n  const prefetch = <EndpointName extends QueryKeys<Definitions>,>(endpointName: EndpointName, arg: any, options: PrefetchOptions = {}): ThunkAction<void, any, any, UnknownAction> => (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\n    const force = hasTheForce(options) && options.force;\n    const maxAge = hasMaxAge(options) && options.ifOlderThan;\n    const queryAction = (force: boolean = true) => {\n      const options: StartQueryActionCreatorOptions = {\n        forceRefetch: force,\n        subscribe: false\n      };\n      return (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(arg, options);\n    };\n    const latestStateValue = (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).select(arg)(getState());\n    if (force) {\n      dispatch(queryAction());\n    } else if (maxAge) {\n      const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n      if (!lastFulfilledTs) {\n        dispatch(queryAction());\n        return;\n      }\n      const shouldRetrigger = (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >= maxAge;\n      if (shouldRetrigger) {\n        dispatch(queryAction());\n      }\n    } else {\n      // If prefetching with no options, just let it try\n      dispatch(queryAction(false));\n    }\n  };\n  function matchesEndpoint(endpointName: string) {\n    return (action: any): action is UnknownAction => action?.meta?.arg?.endpointName === endpointName;\n  }\n  function buildMatchThunkActions<Thunk extends AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig> | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>>(thunk: Thunk, endpointName: string) {\n    return {\n      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n      matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n    } as Matchers<Thunk, any>;\n  }\n  return {\n    queryThunk,\n    mutationThunk,\n    infiniteQueryThunk,\n    prefetch,\n    updateQueryData,\n    upsertQueryData,\n    patchQueryData,\n    buildMatchThunkActions\n  };\n}\nexport function getNextPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  const lastIndex = pages.length - 1;\n  return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams, queryArg);\n}\nexport function getPreviousPageParam(options: InfiniteQueryConfigOptions<unknown, unknown, unknown>, {\n  pages,\n  pageParams\n}: InfiniteData<unknown, unknown>, queryArg: unknown): unknown | undefined {\n  return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams, queryArg);\n}\nexport function calculateProvidedByThunk(action: UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>, type: 'providesTags' | 'invalidatesTags', endpointDefinitions: EndpointDefinitions, assertTagType: AssertTagTypes) {\n  return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type] as ResultDescription<any, any, any, any, any>, isFulfilled(action) ? action.payload : undefined, isRejectedWithValue(action) ? action.payload : undefined, action.meta.arg.originalArgs, 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined, assertTagType);\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../utils/immerImports';\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, createNextState, prepareAutoBatched, SHOULD_AUTOBATCH, nanoid } from './rtkImports';\nimport type { QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, MutationState, QueryState, InvalidationState, Subscribers, QueryCacheKey, SubscriptionState, ConfigState, InfiniteQuerySubState, InfiniteQueryDirection } from './apiState';\nimport { STATUS_FULFILLED, STATUS_PENDING, QueryStatus, STATUS_REJECTED, STATUS_UNINITIALIZED } from './apiState';\nimport type { AllQueryKeys, QueryArgFromAnyQueryDefinition, DataFromAnyQueryDefinition, InfiniteQueryThunk, MutationThunk, QueryThunk, QueryThunkArg } from './buildThunks';\nimport { calculateProvidedByThunk } from './buildThunks';\nimport { ENDPOINT_QUERY, isInfiniteQueryDefinition, type AssertTagTypes, type EndpointDefinitions, type FullTagDescription, type QueryDefinition } from '../endpointDefinitions';\nimport type { Patch } from 'immer';\nimport { applyPatches, original, isDraft } from '../utils/immerImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport { isDocumentVisible, isOnline, copyWithStructuralSharing } from '../utils';\nimport type { ApiContext } from '../apiTypes';\nimport { isUpsertQuery } from './buildInitiate';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { UnwrapPromise } from '../tsHelpers';\nimport { getCurrent } from '../utils/getCurrent';\n\n/**\n * A typesafe single entry to be upserted into the cache\n */\nexport type NormalizedQueryUpsertEntry<Definitions extends EndpointDefinitions, EndpointName extends AllQueryKeys<Definitions>> = {\n  endpointName: EndpointName;\n  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>;\n  value: DataFromAnyQueryDefinition<Definitions, EndpointName>;\n};\n\n/**\n * The internal version that is not typesafe since we can't carry the generics through `createSlice`\n */\ntype NormalizedQueryUpsertEntryPayload = {\n  endpointName: string;\n  arg: unknown;\n  value: unknown;\n};\nexport type ProcessedQueryUpsertEntry = {\n  queryDescription: QueryThunkArg;\n  value: unknown;\n};\n\n/**\n * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert\n */\nexport type UpsertEntries<Definitions extends EndpointDefinitions> = (<EndpointNames extends Array<AllQueryKeys<Definitions>>>(entries: [...{ [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<Definitions, EndpointNames[I]> }]) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {\n  match: (action: unknown) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>;\n};\nfunction updateQuerySubstateIfExists(state: QueryState<any>, queryCacheKey: QueryCacheKey, update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void) {\n  const substate = state[queryCacheKey];\n  if (substate) {\n    update(substate);\n  }\n}\nexport function getMutationCacheKey(id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n}): string | undefined;\nexport function getMutationCacheKey(id: {\n  fixedCacheKey?: string;\n  requestId?: string;\n} | MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}): string | undefined {\n  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state: MutationState<any>, id: MutationSubstateIdentifier | {\n  requestId: string;\n  arg: {\n    fixedCacheKey?: string | undefined;\n  };\n}, update: (substate: MutationSubState<any>) => void) {\n  const substate = state[getMutationCacheKey(id)];\n  if (substate) {\n    update(substate);\n  }\n}\nconst initialState = {} as any;\nexport function buildSlice({\n  reducerPath,\n  queryThunk,\n  mutationThunk,\n  serializeQueryArgs,\n  context: {\n    endpointDefinitions: definitions,\n    apiUid,\n    extractRehydrationInfo,\n    hasRehydrationInfo\n  },\n  assertTagType,\n  config\n}: {\n  reducerPath: string;\n  queryThunk: QueryThunk;\n  infiniteQueryThunk: InfiniteQueryThunk<any>;\n  mutationThunk: MutationThunk;\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  context: ApiContext<EndpointDefinitions>;\n  assertTagType: AssertTagTypes;\n  config: Omit<ConfigState<string>, 'online' | 'focused' | 'middlewareRegistered'>;\n}) {\n  const resetApiState = createAction(`${reducerPath}/resetApiState`);\n  function writePendingCacheEntry(draft: QueryState<any>, arg: QueryThunkArg, upserting: boolean, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n    // requestStatus: 'pending'\n  } & {\n    startedTimeStamp: number;\n  }) {\n    draft[arg.queryCacheKey] ??= {\n      status: STATUS_UNINITIALIZED,\n      endpointName: arg.endpointName\n    };\n    updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n      substate.status = STATUS_PENDING;\n      substate.requestId = upserting && substate.requestId ?\n      // for `upsertQuery` **updates**, keep the current `requestId`\n      substate.requestId :\n      // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n      meta.requestId;\n      if (arg.originalArgs !== undefined) {\n        substate.originalArgs = arg.originalArgs;\n      }\n      substate.startedTimeStamp = meta.startedTimeStamp;\n      const endpointDefinition = definitions[meta.arg.endpointName];\n      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {\n        ;\n        (substate as InfiniteQuerySubState<any>).direction = arg.direction as InfiniteQueryDirection;\n      }\n    });\n  }\n  function writeFulfilledCacheEntry(draft: QueryState<any>, meta: {\n    arg: QueryThunkArg;\n    requestId: string;\n  } & {\n    fulfilledTimeStamp: number;\n    baseQueryMeta: unknown;\n  }, payload: unknown, upserting: boolean) {\n    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, substate => {\n      if (substate.requestId !== meta.requestId && !upserting) return;\n      const {\n        merge\n      } = definitions[meta.arg.endpointName] as QueryDefinition<any, any, any, any>;\n      substate.status = STATUS_FULFILLED;\n      if (merge) {\n        if (substate.data !== undefined) {\n          const {\n            fulfilledTimeStamp,\n            arg,\n            baseQueryMeta,\n            requestId\n          } = meta;\n          // There's existing cache data. Let the user merge it in themselves.\n          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\n          // themselves inside of `merge()`. But, they might also want to return a new value.\n          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\n          let newData = createNextState(substate.data, draftSubstateData => {\n            // As usual with Immer, you can mutate _or_ return inside here, but not both\n            return merge(draftSubstateData, payload, {\n              arg: arg.originalArgs,\n              baseQueryMeta,\n              fulfilledTimeStamp,\n              requestId\n            });\n          });\n          substate.data = newData;\n        } else {\n          // Presumably a fresh request. Just cache the response data.\n          substate.data = payload;\n        }\n      } else {\n        // Assign or safely update the cache data.\n        substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n      }\n      delete substate.error;\n      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n    });\n  }\n  const querySlice = createSlice({\n    name: `${reducerPath}/queries`,\n    initialState: initialState as QueryState<any>,\n    reducers: {\n      removeQueryResult: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey\n          }\n        }: PayloadAction<QuerySubstateIdentifier>) {\n          delete draft[queryCacheKey];\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier>()\n      },\n      cacheEntriesUpserted: {\n        reducer(draft, action: PayloadAction<ProcessedQueryUpsertEntry[], string, {\n          RTK_autoBatch: boolean;\n          requestId: string;\n          timestamp: number;\n        }>) {\n          for (const entry of action.payload) {\n            const {\n              queryDescription: arg,\n              value\n            } = entry;\n            writePendingCacheEntry(draft, arg, true, {\n              arg,\n              requestId: action.meta.requestId,\n              startedTimeStamp: action.meta.timestamp\n            });\n            writeFulfilledCacheEntry(draft, {\n              arg,\n              requestId: action.meta.requestId,\n              fulfilledTimeStamp: action.meta.timestamp,\n              baseQueryMeta: {}\n            }, value,\n            // We know we're upserting here\n            true);\n          }\n        },\n        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {\n          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(entry => {\n            const {\n              endpointName,\n              arg,\n              value\n            } = entry;\n            const endpointDefinition = definitions[endpointName];\n            const queryDescription: QueryThunkArg = {\n              type: ENDPOINT_QUERY as 'query',\n              endpointName,\n              originalArgs: entry.arg,\n              queryCacheKey: serializeQueryArgs({\n                queryArgs: arg,\n                endpointDefinition,\n                endpointName\n              })\n            };\n            return {\n              queryDescription,\n              value\n            };\n          });\n          const result = {\n            payload: queryDescriptions,\n            meta: {\n              [SHOULD_AUTOBATCH]: true,\n              requestId: nanoid(),\n              timestamp: Date.now()\n            }\n          };\n          return result;\n        }\n      },\n      queryResultPatched: {\n        reducer(draft, {\n          payload: {\n            queryCacheKey,\n            patches\n          }\n        }: PayloadAction<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>) {\n          updateQuerySubstateIfExists(draft, queryCacheKey, substate => {\n            substate.data = applyPatches(substate.data as any, patches.concat());\n          });\n        },\n        prepare: prepareAutoBatched<QuerySubstateIdentifier & {\n          patches: readonly Patch[];\n        }>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(queryThunk.pending, (draft, {\n        meta,\n        meta: {\n          arg\n        }\n      }) => {\n        const upserting = isUpsertQuery(arg);\n        writePendingCacheEntry(draft, arg, upserting, meta);\n      }).addCase(queryThunk.fulfilled, (draft, {\n        meta,\n        payload\n      }) => {\n        const upserting = isUpsertQuery(meta.arg);\n        writeFulfilledCacheEntry(draft, meta, payload, upserting);\n      }).addCase(queryThunk.rejected, (draft, {\n        meta: {\n          condition,\n          arg,\n          requestId\n        },\n        error,\n        payload\n      }) => {\n        updateQuerySubstateIfExists(draft, arg.queryCacheKey, substate => {\n          if (condition) {\n            // request was aborted due to condition (another query already running)\n          } else {\n            // request failed\n            if (substate.requestId !== requestId) return;\n            substate.status = STATUS_REJECTED;\n            substate.error = (payload ?? error) as any;\n          }\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          queries\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(queries)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  const mutationSlice = createSlice({\n    name: `${reducerPath}/mutations`,\n    initialState: initialState as MutationState<any>,\n    reducers: {\n      removeMutationResult: {\n        reducer(draft, {\n          payload\n        }: PayloadAction<MutationSubstateIdentifier>) {\n          const cacheKey = getMutationCacheKey(payload);\n          if (cacheKey in draft) {\n            delete draft[cacheKey];\n          }\n        },\n        prepare: prepareAutoBatched<MutationSubstateIdentifier>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(mutationThunk.pending, (draft, {\n        meta,\n        meta: {\n          requestId,\n          arg,\n          startedTimeStamp\n        }\n      }) => {\n        if (!arg.track) return;\n        draft[getMutationCacheKey(meta)] = {\n          requestId,\n          status: STATUS_PENDING,\n          endpointName: arg.endpointName,\n          startedTimeStamp\n        };\n      }).addCase(mutationThunk.fulfilled, (draft, {\n        payload,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_FULFILLED;\n          substate.data = payload;\n          substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n        });\n      }).addCase(mutationThunk.rejected, (draft, {\n        payload,\n        error,\n        meta\n      }) => {\n        if (!meta.arg.track) return;\n        updateMutationSubstateIfExists(draft, meta, substate => {\n          if (substate.requestId !== meta.requestId) return;\n          substate.status = STATUS_REJECTED;\n          substate.error = (payload ?? error) as any;\n        });\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          mutations\n        } = extractRehydrationInfo(action)!;\n        for (const [key, entry] of Object.entries(mutations)) {\n          if (\n          // do not rehydrate entries that were currently in flight.\n          (entry?.status === STATUS_FULFILLED || entry?.status === STATUS_REJECTED) &&\n          // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n          key !== entry?.requestId) {\n            draft[key] = entry;\n          }\n        }\n      });\n    }\n  });\n  type CalculateProvidedByAction = UnwrapPromise<ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<InfiniteQueryThunk<any>>>>;\n  const initialInvalidationState: InvalidationState<string> = {\n    tags: {},\n    keys: {}\n  };\n  const invalidationSlice = createSlice({\n    name: `${reducerPath}/invalidation`,\n    initialState: initialInvalidationState,\n    reducers: {\n      updateProvidedBy: {\n        reducer(draft, action: PayloadAction<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>) {\n          for (const {\n            queryCacheKey,\n            providedTags\n          } of action.payload) {\n            removeCacheKeyFromTags(draft, queryCacheKey);\n            for (const {\n              type,\n              id\n            } of providedTags) {\n              const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n            }\n\n            // Remove readonly from the providedTags array\n            draft.keys[queryCacheKey] = providedTags as FullTagDescription<string>[];\n          }\n        },\n        prepare: prepareAutoBatched<Array<{\n          queryCacheKey: QueryCacheKey;\n          providedTags: readonly FullTagDescription<string>[];\n        }>>()\n      }\n    },\n    extraReducers(builder) {\n      builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n        payload: {\n          queryCacheKey\n        }\n      }) => {\n        removeCacheKeyFromTags(draft, queryCacheKey);\n      }).addMatcher(hasRehydrationInfo, (draft, action) => {\n        const {\n          provided\n        } = extractRehydrationInfo(action)!;\n        for (const [type, incomingTags] of Object.entries(provided.tags ?? {})) {\n          for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n            const subscribedQueries = (draft.tags[type] ??= {})[id || '__internal_without_id'] ??= [];\n            for (const queryCacheKey of cacheKeys) {\n              const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n              if (!alreadySubscribed) {\n                subscribedQueries.push(queryCacheKey);\n              }\n              draft.keys[queryCacheKey] = provided.keys[queryCacheKey];\n            }\n          }\n        }\n      }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n        writeProvidedTagsForQueries(draft, [action]);\n      }).addMatcher(querySlice.actions.cacheEntriesUpserted.match, (draft, action) => {\n        const mockActions: CalculateProvidedByAction[] = action.payload.map(({\n          queryDescription,\n          value\n        }) => {\n          return {\n            type: 'UNKNOWN',\n            payload: value,\n            meta: {\n              requestStatus: 'fulfilled',\n              requestId: 'UNKNOWN',\n              arg: queryDescription\n            }\n          };\n        });\n        writeProvidedTagsForQueries(draft, mockActions);\n      });\n    }\n  });\n  function removeCacheKeyFromTags(draft: InvalidationState<any>, queryCacheKey: QueryCacheKey) {\n    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? []);\n\n    // Delete this cache key from any existing tags that may have provided it\n    for (const tag of existingTags) {\n      const tagType = tag.type;\n      const tagId = tag.id ?? '__internal_without_id';\n      const tagSubscriptions = draft.tags[tagType]?.[tagId];\n      if (tagSubscriptions) {\n        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(qc => qc !== queryCacheKey);\n      }\n    }\n    delete draft.keys[queryCacheKey];\n  }\n  function writeProvidedTagsForQueries(draft: InvalidationState<string>, actions: CalculateProvidedByAction[]) {\n    const providedByEntries = actions.map(action => {\n      const providedTags = calculateProvidedByThunk(action, 'providesTags', definitions, assertTagType);\n      const {\n        queryCacheKey\n      } = action.meta.arg;\n      return {\n        queryCacheKey,\n        providedTags\n      };\n    });\n    invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy(providedByEntries));\n  }\n\n  // Dummy slice to generate actions\n  const subscriptionSlice = createSlice({\n    name: `${reducerPath}/subscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      updateSubscriptionOptions(d, a: PayloadAction<{\n        endpointName: string;\n        requestId: string;\n        options: Subscribers[number];\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      unsubscribeQueryResult(d, a: PayloadAction<{\n        requestId: string;\n      } & QuerySubstateIdentifier>) {\n        // Dummy\n      },\n      internal_getRTKQSubscriptions() {}\n    }\n  });\n  const internalSubscriptionsSlice = createSlice({\n    name: `${reducerPath}/internalSubscriptions`,\n    initialState: initialState as SubscriptionState,\n    reducers: {\n      subscriptionsUpdated: {\n        reducer(state, action: PayloadAction<Patch[]>) {\n          return applyPatches(state, action.payload);\n        },\n        prepare: prepareAutoBatched<Patch[]>()\n      }\n    }\n  });\n  const configSlice = createSlice({\n    name: `${reducerPath}/config`,\n    initialState: {\n      online: isOnline(),\n      focused: isDocumentVisible(),\n      middlewareRegistered: false,\n      ...config\n    } as ConfigState<string>,\n    reducers: {\n      middlewareRegistered(state, {\n        payload\n      }: PayloadAction<string>) {\n        state.middlewareRegistered = state.middlewareRegistered === 'conflict' || apiUid !== payload ? 'conflict' : true;\n      }\n    },\n    extraReducers: builder => {\n      builder.addCase(onOnline, state => {\n        state.online = true;\n      }).addCase(onOffline, state => {\n        state.online = false;\n      }).addCase(onFocus, state => {\n        state.focused = true;\n      }).addCase(onFocusLost, state => {\n        state.focused = false;\n      })\n      // update the state to be a new object to be picked up as a \"state change\"\n      // by redux-persist's `autoMergeLevel2`\n      .addMatcher(hasRehydrationInfo, draft => ({\n        ...draft\n      }));\n    }\n  });\n  const combinedReducer = combineReducers({\n    queries: querySlice.reducer,\n    mutations: mutationSlice.reducer,\n    provided: invalidationSlice.reducer,\n    subscriptions: internalSubscriptionsSlice.reducer,\n    config: configSlice.reducer\n  });\n  const reducer: typeof combinedReducer = (state, action) => combinedReducer(resetApiState.match(action) ? undefined : state, action);\n  const actions = {\n    ...configSlice.actions,\n    ...querySlice.actions,\n    ...subscriptionSlice.actions,\n    ...internalSubscriptionsSlice.actions,\n    ...mutationSlice.actions,\n    ...invalidationSlice.actions,\n    resetApiState\n  };\n  return {\n    reducer,\n    actions\n  };\n}\nexport type SliceActions = ReturnType<typeof buildSlice>['actions'];","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { EndpointDefinition, EndpointDefinitions, InfiniteQueryArgFrom, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, ReducerPathFrom, TagDescription, TagTypesFrom } from '../endpointDefinitions';\nimport { expandTagDescription } from '../endpointDefinitions';\nimport { filterMap, isNotNullish } from '../utils';\nimport type { InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationSubState, QueryCacheKey, QueryState, QuerySubState, RequestStatusFlags, RootState as _RootState, QueryStatus } from './apiState';\nimport { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState';\nimport { getMutationCacheKey } from './buildSlice';\nimport type { createSelector as _createSelector } from './rtkImports';\nimport { createNextState } from './rtkImports';\nimport { type AllQueryKeys, getNextPageParam, getPreviousPageParam } from './buildThunks';\nexport type SkipToken = typeof skipToken;\n/**\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\n * instead of the query argument to get the same effect as if setting\n * `skip: true` in the query options.\n *\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\n * and TypeScript complains about it because `arg` is not allowed to be passed\n * in as `undefined`, such as\n *\n * ```ts\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\n * useSomeQuery(arg, { skip: !!arg })\n * ```\n *\n * ```ts\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\n * useSomeQuery(arg ?? skipToken)\n * ```\n *\n * If passed directly into a query or mutation selector, that selector will always\n * return an uninitialized state.\n */\nexport const skipToken = /* @__PURE__ */Symbol.for('RTKQ/skipToken');\nexport type BuildSelectorsApiEndpointQuery<Definition extends QueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: QueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointInfiniteQuery<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: InfiniteQueryResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\nexport type BuildSelectorsApiEndpointMutation<Definition extends MutationDefinition<any, any, any, any, any>, Definitions extends EndpointDefinitions> = {\n  select: MutationResultSelectorFactory<Definition, _RootState<Definitions, TagTypesFrom<Definition>, ReducerPathFrom<Definition>>>;\n};\ntype QueryResultSelectorFactory<Definition extends QueryDefinition<any, any, any, any>, RootState> = (queryArg: QueryArgFrom<Definition> | SkipToken) => (state: RootState) => QueryResultSelectorResult<Definition>;\nexport type QueryResultSelectorResult<Definition extends QueryDefinition<any, any, any, any>> = QuerySubState<Definition> & RequestStatusFlags;\ntype InfiniteQueryResultSelectorFactory<Definition extends InfiniteQueryDefinition<any, any, any, any, any>, RootState> = (queryArg: InfiniteQueryArgFrom<Definition> | SkipToken) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>;\nexport type InfiniteQueryResultFlags = {\n  hasNextPage: boolean;\n  hasPreviousPage: boolean;\n  isFetchingNextPage: boolean;\n  isFetchingPreviousPage: boolean;\n  isFetchNextPageError: boolean;\n  isFetchPreviousPageError: boolean;\n};\nexport type InfiniteQueryResultSelectorResult<Definition extends InfiniteQueryDefinition<any, any, any, any, any>> = InfiniteQuerySubState<Definition> & RequestStatusFlags & InfiniteQueryResultFlags;\ntype MutationResultSelectorFactory<Definition extends MutationDefinition<any, any, any, any>, RootState> = (requestId: string | {\n  requestId: string | undefined;\n  fixedCacheKey: string | undefined;\n} | SkipToken) => (state: RootState) => MutationResultSelectorResult<Definition>;\nexport type MutationResultSelectorResult<Definition extends MutationDefinition<any, any, any, any>> = MutationSubState<Definition> & RequestStatusFlags;\nconst initialSubState: QuerySubState<any> = {\n  status: STATUS_UNINITIALIZED\n};\n\n// abuse immer to freeze default states\nconst defaultQuerySubState = /* @__PURE__ */createNextState(initialSubState, () => {});\nconst defaultMutationSubState = /* @__PURE__ */createNextState(initialSubState as MutationSubState<any>, () => {});\nexport type AllSelectors = ReturnType<typeof buildSelectors>;\nexport function buildSelectors<Definitions extends EndpointDefinitions, ReducerPath extends string>({\n  serializeQueryArgs,\n  reducerPath,\n  createSelector\n}: {\n  serializeQueryArgs: InternalSerializeQueryArgs;\n  reducerPath: ReducerPath;\n  createSelector: typeof _createSelector;\n}) {\n  type RootState = _RootState<Definitions, string, string>;\n  const selectSkippedQuery = (state: RootState) => defaultQuerySubState;\n  const selectSkippedMutation = (state: RootState) => defaultMutationSubState;\n  return {\n    buildQuerySelector,\n    buildInfiniteQuerySelector,\n    buildMutationSelector,\n    selectInvalidatedBy,\n    selectCachedArgsForQuery,\n    selectApiState,\n    selectQueries,\n    selectMutations,\n    selectQueryEntry,\n    selectConfig\n  };\n  function withRequestFlags<T extends {\n    status: QueryStatus;\n  }>(substate: T): T & RequestStatusFlags {\n    return {\n      ...substate,\n      ...getRequestStatusFlags(substate.status)\n    };\n  }\n  function selectApiState(rootState: RootState) {\n    const state = rootState[reducerPath];\n    if (process.env.NODE_ENV !== 'production') {\n      if (!state) {\n        if ((selectApiState as any).triggered) return state;\n        (selectApiState as any).triggered = true;\n        console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n      }\n    }\n    return state;\n  }\n  function selectQueries(rootState: RootState) {\n    return selectApiState(rootState)?.queries;\n  }\n  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {\n    return selectQueries(rootState)?.[cacheKey];\n  }\n  function selectMutations(rootState: RootState) {\n    return selectApiState(rootState)?.mutations;\n  }\n  function selectConfig(rootState: RootState) {\n    return selectApiState(rootState)?.config;\n  }\n  function buildAnyQuerySelector(endpointName: string, endpointDefinition: EndpointDefinition<any, any, any, any>, combiner: <T extends {\n    status: QueryStatus;\n  }>(substate: T) => T & RequestStatusFlags) {\n    return (queryArgs: any) => {\n      // Avoid calling serializeQueryArgs if the arg is skipToken\n      if (queryArgs === skipToken) {\n        return createSelector(selectSkippedQuery, combiner);\n      }\n      const serializedArgs = serializeQueryArgs({\n        queryArgs,\n        endpointDefinition,\n        endpointName\n      });\n      const selectQuerySubstate = (state: RootState) => selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState;\n      return createSelector(selectQuerySubstate, combiner);\n    };\n  }\n  function buildQuerySelector(endpointName: string, endpointDefinition: QueryDefinition<any, any, any, any>) {\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withRequestFlags) as QueryResultSelectorFactory<any, RootState>;\n  }\n  function buildInfiniteQuerySelector(endpointName: string, endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>) {\n    const {\n      infiniteQueryOptions\n    } = endpointDefinition;\n    function withInfiniteQueryResultFlags<T extends {\n      status: QueryStatus;\n    }>(substate: T): T & RequestStatusFlags & InfiniteQueryResultFlags {\n      const stateWithRequestFlags = {\n        ...(substate as InfiniteQuerySubState<any>),\n        ...getRequestStatusFlags(substate.status)\n      };\n      const {\n        isLoading,\n        isError,\n        direction\n      } = stateWithRequestFlags;\n      const isForward = direction === 'forward';\n      const isBackward = direction === 'backward';\n      return {\n        ...stateWithRequestFlags,\n        hasNextPage: getHasNextPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        hasPreviousPage: getHasPreviousPage(infiniteQueryOptions, stateWithRequestFlags.data, stateWithRequestFlags.originalArgs),\n        isFetchingNextPage: isLoading && isForward,\n        isFetchingPreviousPage: isLoading && isBackward,\n        isFetchNextPageError: isError && isForward,\n        isFetchPreviousPageError: isError && isBackward\n      };\n    }\n    return buildAnyQuerySelector(endpointName, endpointDefinition, withInfiniteQueryResultFlags) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>;\n  }\n  function buildMutationSelector() {\n    return (id => {\n      let mutationId: string | typeof skipToken;\n      if (typeof id === 'object') {\n        mutationId = getMutationCacheKey(id) ?? skipToken;\n      } else {\n        mutationId = id;\n      }\n      const selectMutationSubstate = (state: RootState) => selectApiState(state)?.mutations?.[mutationId as string] ?? defaultMutationSubState;\n      const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n      return createSelector(finalSelectMutationSubstate, withRequestFlags);\n    }) as MutationResultSelectorFactory<any, RootState>;\n  }\n  function selectInvalidatedBy(state: RootState, tags: ReadonlyArray<TagDescription<string> | null | undefined>): Array<{\n    endpointName: string;\n    originalArgs: any;\n    queryCacheKey: QueryCacheKey;\n  }> {\n    const apiState = state[reducerPath];\n    const toInvalidate = new Set<QueryCacheKey>();\n    const finalTags = filterMap(tags, isNotNullish, expandTagDescription);\n    for (const tag of finalTags) {\n      const provided = apiState.provided.tags[tag.type];\n      if (!provided) {\n        continue;\n      }\n      let invalidateSubscriptions = (tag.id !== undefined ?\n      // id given: invalidate all queries that provide this type & id\n      provided[tag.id] :\n      // no id: invalidate all queries that provide this type\n      Object.values(provided).flat()) ?? [];\n      for (const invalidate of invalidateSubscriptions) {\n        toInvalidate.add(invalidate);\n      }\n    }\n    return Array.from(toInvalidate.values()).flatMap(queryCacheKey => {\n      const querySubState = apiState.queries[queryCacheKey];\n      return querySubState ? {\n        queryCacheKey,\n        endpointName: querySubState.endpointName!,\n        originalArgs: querySubState.originalArgs\n      } : [];\n    });\n  }\n  function selectCachedArgsForQuery<QueryName extends AllQueryKeys<Definitions>>(state: RootState, queryName: QueryName): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {\n    return filterMap(Object.values(selectQueries(state) as QueryState<any>), (entry): entry is Exclude<QuerySubState<Definitions[QueryName]>, {\n      status: QueryStatus.uninitialized;\n    }> => entry?.endpointName === queryName && entry.status !== STATUS_UNINITIALIZED, entry => entry.originalArgs);\n  }\n  function getHasNextPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data) return false;\n    return getNextPageParam(options, data, queryArg) != null;\n  }\n  function getHasPreviousPage(options: InfiniteQueryConfigOptions<any, any, any>, data?: InfiniteData<unknown, unknown>, queryArg?: unknown): boolean {\n    if (!data || !options.getPreviousPageParam) return false;\n    return getPreviousPageParam(options, data, queryArg) != null;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { getEndpointDefinition, type Api, type ApiContext, type Module, type ModuleName } from './apiTypes';\nimport type { CombinedState } from './core/apiState';\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes';\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs';\nimport type { EndpointBuilder, EndpointDefinitions, SchemaFailureConverter, SchemaFailureHandler, SchemaType } from './endpointDefinitions';\nimport { DefinitionType, ENDPOINT_INFINITEQUERY, ENDPOINT_MUTATION, ENDPOINT_QUERY, isInfiniteQueryDefinition, isQueryDefinition } from './endpointDefinitions';\nimport { nanoid } from './core/rtkImports';\nimport type { UnknownAction } from '@reduxjs/toolkit';\nimport type { NoInfer } from './tsHelpers';\nimport { weakMapMemoize } from 'reselect';\nexport interface CreateApiOptions<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never> {\n  /**\n   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   // highlight-start\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  baseQuery: BaseQuery;\n  /**\n   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   tagTypes: ['Post', 'User'],\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // ...endpoints\n   *   }),\n   * })\n   * ```\n   */\n  tagTypes?: readonly TagTypes[];\n  /**\n   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"apis.js\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\n   *\n   * const apiOne = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiOne',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   *\n   * const apiTwo = createApi({\n   *   // highlight-start\n   *   reducerPath: 'apiTwo',\n   *   // highlight-end\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (builder) => ({\n   *     // ...endpoints\n   *   }),\n   * });\n   * ```\n   */\n  reducerPath?: ReducerPath;\n  /**\n   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\n   */\n  serializeQueryArgs?: SerializeQueryArgs<unknown>;\n  /**\n   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).\n   */\n  endpoints(build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>): Definitions;\n  /**\n   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta title=\"keepUnusedDataFor example\"\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * interface Post {\n   *   id: number\n   *   name: string\n   * }\n   * type PostsResponse = Post[]\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPosts: build.query<PostsResponse, void>({\n   *       query: () => 'posts'\n   *     })\n   *   }),\n   *   // highlight-start\n   *   keepUnusedDataFor: 5\n   *   // highlight-end\n   * })\n   * ```\n   */\n  keepUnusedDataFor?: number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\n   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\n   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\n   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   */\n  refetchOnMountOrArgChange?: boolean | number;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnFocus?: boolean;\n  /**\n   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\n   *\n   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\n   *\n   * Note: requires [`setupListeners`](./setupListeners) to have been called.\n   */\n  refetchOnReconnect?: boolean;\n  /**\n   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.\n   *\n   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.\n   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.\n   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.\n   *   This ensures that queries are always invalidated correctly and automatically \"batches\" invalidations of concurrent mutations.\n   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.\n   */\n  invalidationBehavior?: 'delayed' | 'immediately';\n  /**\n   * A function that is passed every dispatched action. If this returns something other than `undefined`,\n   * that return value will be used to rehydrate fulfilled & errored queries.\n   *\n   * @example\n   *\n   * ```ts\n   * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\n   * import type { Action, PayloadAction } from '@reduxjs/toolkit'\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n   * import { HYDRATE } from 'next-redux-wrapper'\n   *\n   * type RootState = any; // normally inferred from state\n   *\n   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {\n   *   return action.type === HYDRATE\n   * }\n   *\n   * export const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   // highlight-start\n   *   extractRehydrationInfo(action, { reducerPath }): any {\n   *     if (isHydrateAction(action)) {\n   *       return action.payload[reducerPath]\n   *     }\n   *   },\n   *   // highlight-end\n   *   endpoints: (build) => ({\n   *     // omitted\n   *   }),\n   * })\n   * ```\n   */\n  extractRehydrationInfo?: (action: UnknownAction, {\n    reducerPath\n  }: {\n    reducerPath: ReducerPath;\n  }) => undefined | CombinedState<NoInfer<Definitions>, NoInfer<TagTypes>, NoInfer<ReducerPath>>;\n\n  /**\n   * A function that is called when a schema validation fails.\n   *\n   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).\n   *\n   * `NamedSchemaError` has the following properties:\n   * - `issues`: an array of issues that caused the validation to fail\n   * - `value`: the value that was passed to the schema\n   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *     }),\n   *   }),\n   *   onSchemaFailure: (error, info) => {\n   *     console.error(error, info)\n   *   },\n   * })\n   * ```\n   */\n  onSchemaFailure?: SchemaFailureHandler;\n\n  /**\n   * Convert a schema validation failure into an error shape matching base query errors.\n   *\n   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   }),\n   *   catchSchemaFailure: (error, info) => ({\n   *     status: \"CUSTOM_ERROR\",\n   *     error: error.schemaName + \" failed validation\",\n   *     data: error.issues,\n   *   }),\n   * })\n   * ```\n   */\n  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>;\n\n  /**\n   * Defaults to `false`.\n   *\n   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.\n   *\n   * Can be overridden for specific schemas by passing an array of schema types to skip.\n   *\n   * @example\n   * ```ts\n   * // codeblock-meta no-transpile\n   * import { createApi } from '@reduxjs/toolkit/query/react'\n   * import * as v from \"valibot\"\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n   *   skipSchemaValidation: process.env.NODE_ENV === \"test\" ? [\"response\"] : false, // skip schema validation for response in tests, since we'll be mocking the response\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, { id: number }>({\n   *       query: ({ id }) => `/post/${id}`,\n   *       responseSchema: v.object({ id: v.number(), name: v.string() }),\n   *     }),\n   *   })\n   * })\n   * ```\n   */\n  skipSchemaValidation?: boolean | SchemaType[];\n}\nexport type CreateApi<Modules extends ModuleName> = {\n  /**\n   * Creates a service to use in your application. Contains only the basic redux logic (the core module).\n   *\n   * @link https://redux-toolkit.js.org/rtk-query/api/createApi\n   */\n  <BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string = 'api', TagTypes extends string = never>(options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>;\n};\n\n/**\n * Builds a `createApi` method based on the provided `modules`.\n *\n * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api\n *\n * @example\n * ```ts\n * const MyContext = React.createContext<ReactReduxContextValue | null>(null);\n * const customCreateApi = buildCreateApi(\n *   coreModule(),\n *   reactHooksModule({\n *     hooks: {\n *       useDispatch: createDispatchHook(MyContext),\n *       useSelector: createSelectorHook(MyContext),\n *       useStore: createStoreHook(MyContext)\n *     }\n *   })\n * );\n * ```\n *\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\n * @returns A `createApi` method using the provided `modules`.\n */\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(...modules: Modules): CreateApi<Modules[number]['name']> {\n  return function baseCreateApi(options) {\n    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) => options.extractRehydrationInfo?.(action, {\n      reducerPath: (options.reducerPath ?? 'api') as any\n    }));\n    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\n      reducerPath: 'api',\n      keepUnusedDataFor: 60,\n      refetchOnMountOrArgChange: false,\n      refetchOnFocus: false,\n      refetchOnReconnect: false,\n      invalidationBehavior: 'delayed',\n      ...options,\n      extractRehydrationInfo,\n      serializeQueryArgs(queryArgsApi) {\n        let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\n          const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs!;\n          finalSerializeQueryArgs = queryArgsApi => {\n            const initialResult = endpointSQA(queryArgsApi);\n            if (typeof initialResult === 'string') {\n              // If the user function returned a string, use it as-is\n              return initialResult;\n            } else {\n              // Assume they returned an object (such as a subset of the original\n              // query args) or a primitive, and serialize it ourselves\n              return defaultSerializeQueryArgs({\n                ...queryArgsApi,\n                queryArgs: initialResult\n              });\n            }\n          };\n        } else if (options.serializeQueryArgs) {\n          finalSerializeQueryArgs = options.serializeQueryArgs;\n        }\n        return finalSerializeQueryArgs(queryArgsApi);\n      },\n      tagTypes: [...(options.tagTypes || [])]\n    };\n    const context: ApiContext<EndpointDefinitions> = {\n      endpointDefinitions: {},\n      batch(fn) {\n        // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\n        fn();\n      },\n      apiUid: nanoid(),\n      extractRehydrationInfo,\n      hasRehydrationInfo: weakMapMemoize(action => extractRehydrationInfo(action) != null)\n    };\n    const api = {\n      injectEndpoints,\n      enhanceEndpoints({\n        addTagTypes,\n        endpoints\n      }) {\n        if (addTagTypes) {\n          for (const eT of addTagTypes) {\n            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\n              ;\n              (optionsWithDefaults.tagTypes as any[]).push(eT);\n            }\n          }\n        }\n        if (endpoints) {\n          for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n            if (typeof partialDefinition === 'function') {\n              partialDefinition(getEndpointDefinition(context, endpointName));\n            } else {\n              Object.assign(getEndpointDefinition(context, endpointName) || {}, partialDefinition);\n            }\n          }\n        }\n        return api;\n      }\n    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>;\n    const initializedModules = modules.map(m => m.init(api as any, optionsWithDefaults as any, context));\n    function injectEndpoints(inject: Parameters<typeof api.injectEndpoints>[0]) {\n      const evaluatedEndpoints = inject.endpoints({\n        query: x => ({\n          ...x,\n          type: ENDPOINT_QUERY\n        }) as any,\n        mutation: x => ({\n          ...x,\n          type: ENDPOINT_MUTATION\n        }) as any,\n        infiniteQuery: x => ({\n          ...x,\n          type: ENDPOINT_INFINITEQUERY\n        }) as any\n      });\n      for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n        if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n          if (inject.overrideExisting === 'throw') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          } else if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n            console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n          }\n          continue;\n        }\n        if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n          if (isInfiniteQueryDefinition(definition)) {\n            const {\n              infiniteQueryOptions\n            } = definition;\n            const {\n              maxPages,\n              getPreviousPageParam\n            } = infiniteQueryOptions;\n            if (typeof maxPages === 'number') {\n              if (maxPages < 1) {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(40) : `maxPages for endpoint '${endpointName}' must be a number greater than 0`);\n              }\n              if (typeof getPreviousPageParam !== 'function') {\n                throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(41) : `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`);\n              }\n            }\n          }\n        }\n        context.endpointDefinitions[endpointName] = definition;\n        for (const m of initializedModules) {\n          m.injectEndpoint(endpointName, definition);\n        }\n      }\n      return api as any;\n    }\n    return api.injectEndpoints({\n      endpoints: options.endpoints as any\n    });\n  };\n}","import type { QueryCacheKey } from './core/apiState';\nimport type { EndpointDefinition } from './endpointDefinitions';\nimport { isPlainObject } from './core/rtkImports';\nconst cache: WeakMap<any, string> | undefined = WeakMap ? new WeakMap() : undefined;\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\n  endpointName,\n  queryArgs\n}) => {\n  let serialized = '';\n  const cached = cache?.get(queryArgs);\n  if (typeof cached === 'string') {\n    serialized = cached;\n  } else {\n    const stringified = JSON.stringify(queryArgs, (key, value) => {\n      // Handle bigints\n      value = typeof value === 'bigint' ? {\n        $bigint: value.toString()\n      } : value;\n      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\n      value = isPlainObject(value) ? Object.keys(value).sort().reduce<any>((acc, key) => {\n        acc[key] = (value as any)[key];\n        return acc;\n      }, {}) : value;\n      return value;\n    });\n    if (isPlainObject(queryArgs)) {\n      cache?.set(queryArgs, stringified);\n    }\n    serialized = stringified;\n  }\n  return `${endpointName}(${serialized})`;\n};\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\n  queryArgs: QueryArgs;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => ReturnType;\nexport type InternalSerializeQueryArgs = (_: {\n  queryArgs: any;\n  endpointDefinition: EndpointDefinition<any, any, any, any>;\n  endpointName: string;\n}) => QueryCacheKey;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { BaseQueryFn } from './baseQueryTypes';\nexport const _NEVER = /* @__PURE__ */Symbol();\nexport type NEVER = typeof _NEVER;\n\n/**\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\n */\nexport function fakeBaseQuery<ErrorType>(): BaseQueryFn<void, NEVER, ErrorType, {}> {\n  return function () {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(33) : 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.');\n  };\n}","export type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never;\nexport function assertCast<T>(v: any): asserts v is T {}\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>): T {\n  return Object.assign(target, ...args);\n}\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\nexport type NonOptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never ? False : True;\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>;\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T;\nexport type MaybePromise<T> = T | PromiseLike<T>;\nexport type OmitFromUnion<T, K extends keyof T> = T extends any ? Omit<T, K> : never;\nexport type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;","import type { InternalHandlerBuilder, SubscriptionSelectors } from './types';\nimport type { SubscriptionInternalState, SubscriptionState } from '../apiState';\nimport { produceWithPatches } from '../../utils/immerImports';\nimport type { Action } from '@reduxjs/toolkit';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<[actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]> = ({\n  api,\n  queryThunk,\n  internalState,\n  mwApi\n}) => {\n  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n  let previousSubscriptions: SubscriptionState = null as unknown as SubscriptionState;\n  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null;\n  const {\n    updateSubscriptionOptions,\n    unsubscribeQueryResult\n  } = api.internalActions;\n\n  // Actually intentionally mutate the subscriptions state used in the middleware\n  // This is done to speed up perf when loading many components\n  const actuallyMutateSubscriptions = (currentSubscriptions: SubscriptionInternalState, action: Action) => {\n    if (updateSubscriptionOptions.match(action)) {\n      const {\n        queryCacheKey,\n        requestId,\n        options\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub?.has(requestId)) {\n        sub.set(requestId, options);\n      }\n      return true;\n    }\n    if (unsubscribeQueryResult.match(action)) {\n      const {\n        queryCacheKey,\n        requestId\n      } = action.payload;\n      const sub = currentSubscriptions.get(queryCacheKey);\n      if (sub) {\n        sub.delete(requestId);\n      }\n      return true;\n    }\n    if (api.internalActions.removeQueryResult.match(action)) {\n      currentSubscriptions.delete(action.payload.queryCacheKey);\n      return true;\n    }\n    if (queryThunk.pending.match(action)) {\n      const {\n        meta: {\n          arg,\n          requestId\n        }\n      } = action;\n      const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n      if (arg.subscribe) {\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n      }\n      return true;\n    }\n    let mutated = false;\n    if (queryThunk.rejected.match(action)) {\n      const {\n        meta: {\n          condition,\n          arg,\n          requestId\n        }\n      } = action;\n      if (condition && arg.subscribe) {\n        const substate = getOrInsertComputed(currentSubscriptions, arg.queryCacheKey, createNewMap);\n        substate.set(requestId, arg.subscriptionOptions ?? substate.get(requestId) ?? {});\n        mutated = true;\n      }\n    }\n    return mutated;\n  };\n  const getSubscriptions = () => internalState.currentSubscriptions;\n  const getSubscriptionCount = (queryCacheKey: string) => {\n    const subscriptions = getSubscriptions();\n    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey);\n    return subscriptionsForQueryArg?.size ?? 0;\n  };\n  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {\n    const subscriptions = getSubscriptions();\n    return !!subscriptions?.get(queryCacheKey)?.get(requestId);\n  };\n  const subscriptionSelectors: SubscriptionSelectors = {\n    getSubscriptions,\n    getSubscriptionCount,\n    isRequestSubscribed\n  };\n  function serializeSubscriptions(currentSubscriptions: SubscriptionInternalState): SubscriptionState {\n    // We now use nested Maps for subscriptions, instead of\n    // plain Records. Stringify this accordingly so we can\n    // convert it to the shape we need for the store.\n    return JSON.parse(JSON.stringify(Object.fromEntries([...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]))));\n  }\n  return (action, mwApi): [actionShouldContinue: boolean, result: SubscriptionSelectors | boolean] => {\n    if (!previousSubscriptions) {\n      // Initialize it the first time this handler runs\n      previousSubscriptions = serializeSubscriptions(internalState.currentSubscriptions);\n    }\n    if (api.util.resetApiState.match(action)) {\n      previousSubscriptions = {};\n      internalState.currentSubscriptions.clear();\n      updateSyncTimer = null;\n      return [true, false];\n    }\n\n    // Intercept requests by hooks to see if they're subscribed\n    // We return the internal state reference so that hooks\n    // can do their own checks to see if they're still active.\n    // It's stupid and hacky, but it does cut down on some dispatch calls.\n    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n      return [false, subscriptionSelectors];\n    }\n\n    // Update subscription data based on this action\n    const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n    let actionShouldContinue = true;\n\n    // HACK Sneak the test-only polling state back out\n    if (process.env.NODE_ENV === 'test' && typeof action.type === 'string' && action.type === `${api.reducerPath}/getPolling`) {\n      return [false, internalState.currentPolls] as any;\n    }\n    if (didMutate) {\n      if (!updateSyncTimer) {\n        // We only use the subscription state for the Redux DevTools at this point,\n        // as the real data is kept here in the middleware.\n        // Given that, we can throttle synchronizing this state significantly to\n        // save on overall perf.\n        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.\n        updateSyncTimer = setTimeout(() => {\n          // Deep clone the current subscription data\n          const newSubscriptions: SubscriptionState = serializeSubscriptions(internalState.currentSubscriptions);\n          // Figure out a smaller diff between original and current\n          const [, patches] = produceWithPatches(previousSubscriptions, () => newSubscriptions);\n\n          // Sync the store state for visibility\n          mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n          // Save the cloned state for later reference\n          previousSubscriptions = newSubscriptions;\n          updateSyncTimer = null;\n        }, 500);\n      }\n      const isSubscriptionSliceAction = typeof action.type == 'string' && !!action.type.startsWith(subscriptionsPrefix);\n      const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n      actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n    }\n    return [actionShouldContinue, false];\n  };\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { QueryDefinition } from '../../endpointDefinitions';\nimport type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState';\nimport { isAnyOf } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, QueryStateMeta, SubMiddlewareApi, TimeoutId } from './types';\nexport type ReferenceCacheCollection = never;\n\n/**\n * @example\n * ```ts\n * // codeblock-meta title=\"keepUnusedDataFor example\"\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\n * interface Post {\n *   id: number\n *   name: string\n * }\n * type PostsResponse = Post[]\n *\n * const api = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsResponse, void>({\n *       query: () => 'posts',\n *       // highlight-start\n *       keepUnusedDataFor: 5\n *       // highlight-end\n *     })\n *   })\n * })\n * ```\n */\nexport type CacheCollectionQueryExtraOptions = {\n  /**\n   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\n   *\n   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\n   */\n  keepUnusedDataFor?: number;\n};\n\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\n// it wraps and ends up executing immediately.\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647;\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1;\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  api,\n  queryThunk,\n  context,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectConfig\n  },\n  getRunningQueryThunk,\n  mwApi\n}) => {\n  const {\n    removeQueryResult,\n    unsubscribeQueryResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n  function anySubscriptionsRemainingForKey(queryCacheKey: string) {\n    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);\n    if (!subscriptions) {\n      return false;\n    }\n    const hasSubscriptions = subscriptions.size > 0;\n    return hasSubscriptions;\n  }\n  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {};\n  function abortAllPromises<T extends {\n    abort?: () => void;\n  }>(promiseMap: Map<string, T | undefined>): void {\n    for (const promise of promiseMap.values()) {\n      promise?.abort?.();\n    }\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    const state = mwApi.getState();\n    const config = selectConfig(state);\n    if (canTriggerUnsubscribe(action)) {\n      let queryCacheKeys: QueryCacheKey[];\n      if (cacheEntriesUpserted.match(action)) {\n        queryCacheKeys = action.payload.map(entry => entry.queryDescription.queryCacheKey);\n      } else {\n        const {\n          queryCacheKey\n        } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n        queryCacheKeys = [queryCacheKey];\n      }\n      handleUnsubscribeMany(queryCacheKeys, mwApi, config);\n    }\n    if (api.util.resetApiState.match(action)) {\n      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n        if (timeout) clearTimeout(timeout);\n        delete currentRemovalTimeouts[key];\n      }\n      abortAllPromises(internalState.runningQueries);\n      abortAllPromises(internalState.runningMutations);\n    }\n    if (context.hasRehydrationInfo(action)) {\n      const {\n        queries\n      } = context.extractRehydrationInfo(action)!;\n      // Gotcha:\n      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\n      // will be used instead of the endpoint-specific one.\n      handleUnsubscribeMany(Object.keys(queries) as QueryCacheKey[], mwApi, config);\n    }\n  };\n  function handleUnsubscribeMany(cacheKeys: QueryCacheKey[], api: SubMiddlewareApi, config: ConfigState<string>) {\n    const state = api.getState();\n    for (const queryCacheKey of cacheKeys) {\n      const entry = selectQueryEntry(state, queryCacheKey);\n      if (entry?.endpointName) {\n        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config);\n      }\n    }\n  }\n  function handleUnsubscribe(queryCacheKey: QueryCacheKey, endpointName: string, api: SubMiddlewareApi, config: ConfigState<string>) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName) as QueryDefinition<any, any, any, any>;\n    const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n    if (keepUnusedDataFor === Infinity) {\n      // Hey, user said keep this forever!\n      return;\n    }\n    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\n    // clamping the max value to be at most 1000ms less than the 32-bit max.\n    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\n    // Also avoid negative values too.\n    const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n      const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n      if (currentTimeout) {\n        clearTimeout(currentTimeout);\n      }\n      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n          // Try to abort any running query for this cache key\n          const entry = selectQueryEntry(api.getState(), queryCacheKey);\n          if (entry?.endpointName) {\n            const runningQuery = api.dispatch(getRunningQueryThunk(entry.endpointName, entry.originalArgs));\n            runningQuery?.abort();\n          }\n          api.dispatch(removeQueryResult({\n            queryCacheKey\n          }));\n        }\n        delete currentRemovalTimeouts![queryCacheKey];\n      }, finalKeepUnusedDataFor * 1000);\n    }\n  }\n  return handler;\n};","import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { BaseQueryFn, BaseQueryMeta, BaseQueryResult } from '../../baseQueryTypes';\nimport type { BaseEndpointDefinition, DefinitionType } from '../../endpointDefinitions';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { QueryCacheKey, RootState } from '../apiState';\nimport type { MutationResultSelectorResult, QueryResultSelectorResult } from '../buildSelectors';\nimport { getMutationCacheKey } from '../buildSlice';\nimport type { PatchCollection, Recipe } from '../buildThunks';\nimport { isAsyncThunkAction, isFulfilled } from '../rtkImports';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseWithKnownReason, SubMiddlewareApi } from './types';\nimport { getEndpointDefinition } from '@internal/query/apiTypes';\nexport type ReferenceCacheLifecycle = never;\nexport interface QueryBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends LifecycleApi<ReducerPath> {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): QueryResultSelectorResult<{\n    type: DefinitionType.query;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n  /**\n   * Updates the current cache entry value.\n   * For documentation see `api.util.updateQueryData`.\n   */\n  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection;\n}\nexport type MutationBaseLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = LifecycleApi<ReducerPath> & {\n  /**\n   * Gets the current value of this cache entry.\n   */\n  getCacheEntry(): MutationResultSelectorResult<{\n    type: DefinitionType.mutation;\n  } & BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, BaseQueryResult<BaseQuery>>>;\n};\ntype LifecycleApi<ReducerPath extends string = string> = {\n  /**\n   * The dispatch method for the store\n   */\n  dispatch: ThunkDispatch<any, any, UnknownAction>;\n  /**\n   * A method to get the current state\n   */\n  getState(): RootState<any, any, ReducerPath>;\n  /**\n   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\n   */\n  extra: unknown;\n  /**\n   * A unique ID generated for the mutation\n   */\n  requestId: string;\n};\ntype CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {\n  /**\n   * Promise that will resolve with the first value for this cache key.\n   * This allows you to `await` until an actual value is in cache.\n   *\n   * If the cache entry is removed from the cache before any value has ever\n   * been resolved, this Promise will reject with\n   * `new Error('Promise never resolved before cacheEntryRemoved.')`\n   * to prevent memory leaks.\n   * You can just re-throw that error (or not handle it at all) -\n   * it will be caught outside of `cacheEntryAdded`.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  cacheDataLoaded: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: MetaType;\n  }, typeof neverResolvedError>;\n  /**\n   * Promise that allows you to wait for the point in time when the cache entry\n   * has been removed from the cache, by not being used/subscribed to any more\n   * in the application for too long or by dispatching `api.util.resetApiState`.\n   */\n  cacheEntryRemoved: Promise<void>;\n};\nexport interface QueryCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\nexport type MutationCacheLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>;\nexport type CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type CacheLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = CacheLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type CacheLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  onCacheEntryAdded?(arg: QueryArg, api: MutationCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nconst neverResolvedError = new Error('Promise never resolved before cacheEntryRemoved.') as Error & {\n  message: 'Promise never resolved before cacheEntryRemoved.';\n};\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  reducerPath,\n  context,\n  queryThunk,\n  mutationThunk,\n  internalState,\n  selectors: {\n    selectQueryEntry,\n    selectApiState\n  }\n}) => {\n  const isQueryThunk = isAsyncThunkAction(queryThunk);\n  const isMutationThunk = isAsyncThunkAction(mutationThunk);\n  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    valueResolved?(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    cacheEntryRemoved(): void;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const {\n    removeQueryResult,\n    removeMutationResult,\n    cacheEntriesUpserted\n  } = api.internalActions;\n  function resolveLifecycleEntry(cacheKey: string, data: unknown, meta: unknown) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle?.valueResolved) {\n      lifecycle.valueResolved({\n        data,\n        meta\n      });\n      delete lifecycle.valueResolved;\n    }\n  }\n  function removeLifecycleEntry(cacheKey: string) {\n    const lifecycle = lifecycleMap[cacheKey];\n    if (lifecycle) {\n      delete lifecycleMap[cacheKey];\n      lifecycle.cacheEntryRemoved();\n    }\n  }\n  function getActionMetaFields(action: ReturnType<typeof queryThunk.pending> | ReturnType<typeof mutationThunk.pending>) {\n    const {\n      arg,\n      requestId\n    } = action.meta;\n    const {\n      endpointName,\n      originalArgs\n    } = arg;\n    return [endpointName, originalArgs, requestId] as const;\n  }\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi, stateBefore) => {\n    const cacheKey = getCacheKey(action) as QueryCacheKey;\n    function checkForNewCacheKey(endpointName: string, cacheKey: QueryCacheKey, requestId: string, originalArgs: unknown) {\n      const oldEntry = selectQueryEntry(stateBefore, cacheKey);\n      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey);\n      if (!oldEntry && newEntry) {\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    }\n    if (queryThunk.pending.match(action)) {\n      const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs);\n    } else if (cacheEntriesUpserted.match(action)) {\n      for (const {\n        queryDescription,\n        value\n      } of action.payload) {\n        const {\n          endpointName,\n          originalArgs,\n          queryCacheKey\n        } = queryDescription;\n        checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n        resolveLifecycleEntry(queryCacheKey, value, {});\n      }\n    } else if (mutationThunk.pending.match(action)) {\n      const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n      if (state) {\n        const [endpointName, originalArgs, requestId] = getActionMetaFields(action);\n        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId);\n      }\n    } else if (isFulfilledThunk(action)) {\n      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n    } else if (removeQueryResult.match(action) || removeMutationResult.match(action)) {\n      removeLifecycleEntry(cacheKey);\n    } else if (api.util.resetApiState.match(action)) {\n      for (const cacheKey of Object.keys(lifecycleMap)) {\n        removeLifecycleEntry(cacheKey);\n      }\n    }\n  };\n  function getCacheKey(action: any) {\n    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n    if (isMutationThunk(action)) {\n      return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n    }\n    if (removeQueryResult.match(action)) return action.payload.queryCacheKey;\n    if (removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n    return '';\n  }\n  function handleNewKey(endpointName: string, originalArgs: any, queryCacheKey: string, mwApi: SubMiddlewareApi, requestId: string) {\n    const endpointDefinition = getEndpointDefinition(context, endpointName);\n    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n    if (!onCacheEntryAdded) return;\n    const lifecycle = {} as CacheLifecycle;\n    const cacheEntryRemoved = new Promise<void>(resolve => {\n      lifecycle.cacheEntryRemoved = resolve;\n    });\n    const cacheDataLoaded: PromiseWithKnownReason<{\n      data: unknown;\n      meta: unknown;\n    }, typeof neverResolvedError> = Promise.race([new Promise<{\n      data: unknown;\n      meta: unknown;\n    }>(resolve => {\n      lifecycle.valueResolved = resolve;\n    }), cacheEntryRemoved.then(() => {\n      throw neverResolvedError;\n    })]);\n    // prevent uncaught promise rejections from happening.\n    // if the original promise is used in any way, that will create a new promise that will throw again\n    cacheDataLoaded.catch(() => {});\n    lifecycleMap[queryCacheKey] = lifecycle;\n    const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey);\n    const extra = mwApi.dispatch((_, __, extra) => extra);\n    const lifecycleApi = {\n      ...mwApi,\n      getCacheEntry: () => selector(mwApi.getState()),\n      requestId,\n      extra,\n      updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n      cacheDataLoaded,\n      cacheEntryRemoved\n    };\n    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any);\n    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\n    Promise.resolve(runningHandler).catch(e => {\n      if (e === neverResolvedError) return;\n      throw e;\n    });\n  }\n  return handler;\n};","import type { InternalHandlerBuilder } from './types';\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\n  api,\n  context: {\n    apiUid\n  },\n  reducerPath\n}) => {\n  return (action, mwApi) => {\n    if (api.util.resetApiState.match(action)) {\n      // dispatch after api reset\n      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === 'conflict') {\n        console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === 'api' ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : ''}`);\n      }\n    }\n  };\n};","import { isAnyOf, isFulfilled, isRejected, isRejectedWithValue } from '../rtkImports';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport { calculateProvidedBy } from '../../endpointDefinitions';\nimport type { CombinedState, QueryCacheKey } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport { calculateProvidedByThunk } from '../buildThunks';\nimport type { SubMiddlewareApi, InternalHandlerBuilder, ApiMiddlewareInternalHandler } from './types';\nimport { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert';\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  context: {\n    endpointDefinitions\n  },\n  mutationThunk,\n  queryThunk,\n  api,\n  assertTagType,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n  const isQueryEnd = isAnyOf(isFulfilled(queryThunk, mutationThunk), isRejected(queryThunk, mutationThunk));\n  let pendingTagInvalidations: FullTagDescription<string>[] = [];\n  // Track via counter so we can avoid iterating over state every time\n  let pendingRequestCount = 0;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (queryThunk.pending.match(action) || mutationThunk.pending.match(action)) {\n      pendingRequestCount++;\n    }\n    if (isQueryEnd(action)) {\n      pendingRequestCount = Math.max(0, pendingRequestCount - 1);\n    }\n    if (isThunkActionWithTags(action)) {\n      invalidateTags(calculateProvidedByThunk(action, 'invalidatesTags', endpointDefinitions, assertTagType), mwApi);\n    } else if (isQueryEnd(action)) {\n      invalidateTags([], mwApi);\n    } else if (api.util.invalidateTags.match(action)) {\n      invalidateTags(calculateProvidedBy(action.payload, undefined, undefined, undefined, undefined, assertTagType), mwApi);\n    }\n  };\n  function hasPendingRequests() {\n    return pendingRequestCount > 0;\n  }\n  function invalidateTags(newTags: readonly FullTagDescription<string>[], mwApi: SubMiddlewareApi) {\n    const rootState = mwApi.getState();\n    const state = rootState[reducerPath];\n    pendingTagInvalidations.push(...newTags);\n    if (state.config.invalidationBehavior === 'delayed' && hasPendingRequests()) {\n      return;\n    }\n    const tags = pendingTagInvalidations;\n    pendingTagInvalidations = [];\n    if (tags.length === 0) return;\n    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n    context.batch(() => {\n      const valuesArray = Array.from(toInvalidate.values());\n      for (const {\n        queryCacheKey\n      } of valuesArray) {\n        const querySubState = state.queries[queryCacheKey];\n        const subscriptionSubState = getOrInsertComputed(internalState.currentSubscriptions, queryCacheKey, createNewMap);\n        if (querySubState) {\n          if (subscriptionSubState.size === 0) {\n            mwApi.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            mwApi.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { QueryCacheKey, QuerySubstateIdentifier, Subscribers, SubscribersInternal } from '../apiState';\nimport { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryStateMeta, SubMiddlewareApi, TimeoutId, InternalHandlerBuilder, ApiMiddlewareInternalHandler, InternalMiddlewareState } from './types';\nexport const buildPollingHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  queryThunk,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    currentPolls,\n    currentSubscriptions\n  } = internalState;\n\n  // Batching state for polling updates\n  const pendingPollingUpdates = new Set<string>();\n  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n      schedulePollingUpdate(action.payload.queryCacheKey, mwApi);\n    }\n    if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi);\n    }\n    if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n      startNextPoll(action.meta.arg, mwApi);\n    }\n    if (api.util.resetApiState.match(action)) {\n      clearPolls();\n      // Clear any pending updates\n      if (pollingUpdateTimer) {\n        clearTimeout(pollingUpdateTimer);\n        pollingUpdateTimer = null;\n      }\n      pendingPollingUpdates.clear();\n    }\n  };\n  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {\n    pendingPollingUpdates.add(queryCacheKey);\n    if (!pollingUpdateTimer) {\n      pollingUpdateTimer = setTimeout(() => {\n        // Process all pending updates in a single batch\n        for (const key of pendingPollingUpdates) {\n          updatePollingInterval({\n            queryCacheKey: key as any\n          }, api);\n        }\n        pendingPollingUpdates.clear();\n        pollingUpdateTimer = null;\n      }, 0);\n    }\n  }\n  function startNextPoll({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return;\n    const {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    } = findLowestPollingInterval(subscriptions);\n    if (!Number.isFinite(lowestPollingInterval)) return;\n    const currentPoll = currentPolls.get(queryCacheKey);\n    if (currentPoll?.timeout) {\n      clearTimeout(currentPoll.timeout);\n      currentPoll.timeout = undefined;\n    }\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    currentPolls.set(queryCacheKey, {\n      nextPollTimestamp,\n      pollingInterval: lowestPollingInterval,\n      timeout: setTimeout(() => {\n        if (state.config.focused || !skipPollingIfUnfocused) {\n          api.dispatch(refetchQuery(querySubState));\n        }\n        startNextPoll({\n          queryCacheKey\n        }, api);\n      }, lowestPollingInterval)\n    });\n  }\n  function updatePollingInterval({\n    queryCacheKey\n  }: QuerySubstateIdentifier, api: SubMiddlewareApi) {\n    const state = api.getState()[reducerPath];\n    const querySubState = state.queries[queryCacheKey];\n    const subscriptions = currentSubscriptions.get(queryCacheKey);\n    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {\n      return;\n    }\n    const {\n      lowestPollingInterval\n    } = findLowestPollingInterval(subscriptions);\n\n    // HACK add extra data to track how many times this has been called in tests\n    // yes we're mutating a nonexistent field on a Map here\n    if (process.env.NODE_ENV === 'test') {\n      const updateCounters = (currentPolls as any).pollUpdateCounters ??= {};\n      updateCounters[queryCacheKey] ??= 0;\n      updateCounters[queryCacheKey]++;\n    }\n    if (!Number.isFinite(lowestPollingInterval)) {\n      cleanupPollForKey(queryCacheKey);\n      return;\n    }\n    const currentPoll = currentPolls.get(queryCacheKey);\n    const nextPollTimestamp = Date.now() + lowestPollingInterval;\n    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n      startNextPoll({\n        queryCacheKey\n      }, api);\n    }\n  }\n  function cleanupPollForKey(key: string) {\n    const existingPoll = currentPolls.get(key);\n    if (existingPoll?.timeout) {\n      clearTimeout(existingPoll.timeout);\n    }\n    currentPolls.delete(key);\n  }\n  function clearPolls() {\n    for (const key of currentPolls.keys()) {\n      cleanupPollForKey(key);\n    }\n  }\n  function findLowestPollingInterval(subscribers: SubscribersInternal = new Map()) {\n    let skipPollingIfUnfocused: boolean | undefined = false;\n    let lowestPollingInterval = Number.POSITIVE_INFINITY;\n    for (const entry of subscribers.values()) {\n      if (!!entry.pollingInterval) {\n        lowestPollingInterval = Math.min(entry.pollingInterval!, lowestPollingInterval);\n        skipPollingIfUnfocused = entry.skipPollingIfUnfocused || skipPollingIfUnfocused;\n      }\n    }\n    return {\n      lowestPollingInterval,\n      skipPollingIfUnfocused\n    };\n  }\n  return handler;\n};","import { getEndpointDefinition } from '@internal/query/apiTypes';\nimport type { BaseQueryError, BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes';\nimport { isAnyQueryDefinition } from '../../endpointDefinitions';\nimport type { Recipe } from '../buildThunks';\nimport { isFulfilled, isPending, isRejected } from '../rtkImports';\nimport type { MutationBaseLifecycleApi, QueryBaseLifecycleApi } from './cacheLifecycle';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, PromiseConstructorWithKnownReason, PromiseWithKnownReason } from './types';\nexport type ReferenceQueryLifecycle = never;\ntype QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {\n  /**\n   * Promise that will resolve with the (transformed) query result.\n   *\n   * If the query fails, this promise will reject with the error.\n   *\n   * This allows you to `await` for the query to finish.\n   *\n   * If you don't interact with this promise, it will not throw.\n   */\n  queryFulfilled: PromiseWithKnownReason<{\n    /**\n     * The (transformed) query result.\n     */\n    data: ResultType;\n    /**\n     * The `meta` returned by the `baseQuery`\n     */\n    meta: BaseQueryMeta<BaseQuery>;\n  }, QueryFulfilledRejectionReason<BaseQuery>>;\n};\ntype QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> = {\n  error: BaseQueryError<BaseQuery>;\n  /**\n   * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\n   */\n  isUnhandledError: false;\n  /**\n   * The `meta` returned by the `baseQuery`\n   */\n  meta: BaseQueryMeta<BaseQuery>;\n} | {\n  error: unknown;\n  meta?: undefined;\n  /**\n   * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\n   * There can not be made any assumption about the shape of `error`.\n   */\n  isUnhandledError: true;\n};\nexport type QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used to perform side-effects throughout the lifecycle of the query.\n   *\n   * @example\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * import { messageCreated } from './notificationsSlice\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {\n   *         // `onStart` side-effect\n   *         dispatch(messageCreated('Fetching posts...'))\n   *         try {\n   *           const { data } = await queryFulfilled\n   *           // `onSuccess` side-effect\n   *           dispatch(messageCreated('Posts received!'))\n   *         } catch (err) {\n   *           // `onError` side-effect\n   *           dispatch(messageCreated('Error fetching posts!'))\n   *         }\n   *       }\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, queryLifeCycleApi: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport type QueryLifecycleInfiniteQueryExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArg, BaseQuery, ReducerPath>;\nexport type QueryLifecycleMutationExtraOptions<ResultType, QueryArg, BaseQuery extends BaseQueryFn, ReducerPath extends string = string> = {\n  /**\n   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\n   *\n   * Can be used for `optimistic updates`.\n   *\n   * @example\n   *\n   * ```ts\n   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n   * export interface Post {\n   *   id: number\n   *   name: string\n   * }\n   *\n   * const api = createApi({\n   *   baseQuery: fetchBaseQuery({\n   *     baseUrl: '/',\n   *   }),\n   *   tagTypes: ['Post'],\n   *   endpoints: (build) => ({\n   *     getPost: build.query<Post, number>({\n   *       query: (id) => `post/${id}`,\n   *       providesTags: ['Post'],\n   *     }),\n   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\n   *       query: ({ id, ...patch }) => ({\n   *         url: `post/${id}`,\n   *         method: 'PATCH',\n   *         body: patch,\n   *       }),\n   *       invalidatesTags: ['Post'],\n   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\n   *         const patchResult = dispatch(\n   *           api.util.updateQueryData('getPost', id, (draft) => {\n   *             Object.assign(draft, patch)\n   *           })\n   *         )\n   *         try {\n   *           await queryFulfilled\n   *         } catch {\n   *           patchResult.undo()\n   *         }\n   *       },\n   *     }),\n   *   }),\n   * })\n   * ```\n   */\n  onQueryStarted?(queryArgument: QueryArg, mutationLifeCycleApi: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>): Promise<void> | void;\n};\nexport interface QueryLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>, QueryLifecyclePromises<ResultType, BaseQuery> {}\nexport type MutationLifecycleApi<QueryArg, BaseQuery extends BaseQueryFn, ResultType, ReducerPath extends string = string> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> & QueryLifecyclePromises<ResultType, BaseQuery>;\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific query.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = number | undefined\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, QueryArgument>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedQueryOnQueryStarted<\n *   PostsApiResponse,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async (queryArgument, { dispatch, queryFulfilled }) => {\n *   const result = await queryFulfilled\n *\n *   const { posts } = result.data\n *\n *   // Pre-fill the individual post entries with the results\n *   // from the list endpoint query\n *   dispatch(\n *     baseApiSlice.util.upsertQueryEntries(\n *       posts.map((post) => ({\n *         endpointName: 'getPostById',\n *         arg: post.id,\n *         value: post,\n *       })),\n *     ),\n *   )\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({\n *       query: (userId) => `/posts/user/${userId}`,\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedQueryOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleQueryExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\n\n/**\n * Provides a way to define a strongly-typed version of\n * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}\n * for a specific mutation.\n *\n * @example\n * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>\n *\n * ```ts\n * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\n *\n * type Post = {\n *   id: number\n *   title: string\n *   userId: number\n * }\n *\n * type PostsApiResponse = {\n *   posts: Post[]\n *   total: number\n *   skip: number\n *   limit: number\n * }\n *\n * type QueryArgument = Pick<Post, 'id'> & Partial<Post>\n *\n * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>\n *\n * const baseApiSlice = createApi({\n *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),\n *   reducerPath: 'postsApi',\n *   tagTypes: ['Posts'],\n *   endpoints: (build) => ({\n *     getPosts: build.query<PostsApiResponse, void>({\n *       query: () => `/posts`,\n *     }),\n *\n *     getPostById: build.query<Post, number>({\n *       query: (postId) => `/posts/${postId}`,\n *     }),\n *   }),\n * })\n *\n * const updatePostOnFulfilled: TypedMutationOnQueryStarted<\n *   Post,\n *   QueryArgument,\n *   BaseQueryFunction,\n *   'postsApi'\n * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {\n *   const patchCollection = dispatch(\n *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {\n *       Object.assign(draftPost, patch)\n *     }),\n *   )\n *\n *   try {\n *     await queryFulfilled\n *   } catch {\n *     patchCollection.undo()\n *   }\n * }\n *\n * export const extendedApiSlice = baseApiSlice.injectEndpoints({\n *   endpoints: (build) => ({\n *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({\n *       query: (body) => ({\n *         url: `posts/add`,\n *         method: 'POST',\n *         body,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *\n *     updatePost: build.mutation<Post, QueryArgument>({\n *       query: ({ id, ...patch }) => ({\n *         url: `post/${id}`,\n *         method: 'PATCH',\n *         body: patch,\n *       }),\n *\n *       onQueryStarted: updatePostOnFulfilled,\n *     }),\n *   }),\n * })\n * ```\n *\n * @template ResultType - The type of the result `data` returned by the query.\n * @template QueryArgumentType - The type of the argument passed into the query.\n * @template BaseQueryFunctionType - The type of the base query function being used.\n * @template ReducerPath - The type representing the `reducerPath` for the API slice.\n *\n * @since 2.4.0\n * @public\n */\nexport type TypedMutationOnQueryStarted<ResultType, QueryArgumentType, BaseQueryFunctionType extends BaseQueryFn, ReducerPath extends string = string> = QueryLifecycleMutationExtraOptions<ResultType, QueryArgumentType, BaseQueryFunctionType, ReducerPath>['onQueryStarted'];\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\n  api,\n  context,\n  queryThunk,\n  mutationThunk\n}) => {\n  const isPendingThunk = isPending(queryThunk, mutationThunk);\n  const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n  type CacheLifecycle = {\n    resolve(value: {\n      data: unknown;\n      meta: unknown;\n    }): unknown;\n    reject(value: QueryFulfilledRejectionReason<any>): unknown;\n  };\n  const lifecycleMap: Record<string, CacheLifecycle> = {};\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (isPendingThunk(action)) {\n      const {\n        requestId,\n        arg: {\n          endpointName,\n          originalArgs\n        }\n      } = action.meta;\n      const endpointDefinition = getEndpointDefinition(context, endpointName);\n      const onQueryStarted = endpointDefinition?.onQueryStarted;\n      if (onQueryStarted) {\n        const lifecycle = {} as CacheLifecycle;\n        const queryFulfilled = new (Promise as PromiseConstructorWithKnownReason)<{\n          data: unknown;\n          meta: unknown;\n        }, QueryFulfilledRejectionReason<any>>((resolve, reject) => {\n          lifecycle.resolve = resolve;\n          lifecycle.reject = reject;\n        });\n        // prevent uncaught promise rejections from happening.\n        // if the original promise is used in any way, that will create a new promise that will throw again\n        queryFulfilled.catch(() => {});\n        lifecycleMap[requestId] = lifecycle;\n        const selector = (api.endpoints[endpointName] as any).select(isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId);\n        const extra = mwApi.dispatch((_, __, extra) => extra);\n        const lifecycleApi = {\n          ...mwApi,\n          getCacheEntry: () => selector(mwApi.getState()),\n          requestId,\n          extra,\n          updateCachedData: (isAnyQueryDefinition(endpointDefinition) ? (updateRecipe: Recipe<any>) => mwApi.dispatch(api.util.updateQueryData(endpointName as never, originalArgs as never, updateRecipe)) : undefined) as any,\n          queryFulfilled\n        };\n        onQueryStarted(originalArgs, lifecycleApi as any);\n      }\n    } else if (isFullfilledThunk(action)) {\n      const {\n        requestId,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.resolve({\n        data: action.payload,\n        meta: baseQueryMeta\n      });\n      delete lifecycleMap[requestId];\n    } else if (isRejectedThunk(action)) {\n      const {\n        requestId,\n        rejectedWithValue,\n        baseQueryMeta\n      } = action.meta;\n      lifecycleMap[requestId]?.reject({\n        error: action.payload ?? action.error,\n        isUnhandledError: !rejectedWithValue,\n        meta: baseQueryMeta as any\n      });\n      delete lifecycleMap[requestId];\n    }\n  };\n  return handler;\n};","import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState';\nimport type { QueryCacheKey } from '../apiState';\nimport { onFocus, onOnline } from '../setupListeners';\nimport type { ApiMiddlewareInternalHandler, InternalHandlerBuilder, SubMiddlewareApi } from './types';\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\n  reducerPath,\n  context,\n  api,\n  refetchQuery,\n  internalState\n}) => {\n  const {\n    removeQueryResult\n  } = api.internalActions;\n  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\n    if (onFocus.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnFocus');\n    }\n    if (onOnline.match(action)) {\n      refetchValidQueries(mwApi, 'refetchOnReconnect');\n    }\n  };\n  function refetchValidQueries(api: SubMiddlewareApi, type: 'refetchOnFocus' | 'refetchOnReconnect') {\n    const state = api.getState()[reducerPath];\n    const queries = state.queries;\n    const subscriptions = internalState.currentSubscriptions;\n    context.batch(() => {\n      for (const queryCacheKey of subscriptions.keys()) {\n        const querySubState = queries[queryCacheKey];\n        const subscriptionSubState = subscriptions.get(queryCacheKey);\n        if (!subscriptionSubState || !querySubState) continue;\n        const values = [...subscriptionSubState.values()];\n        const shouldRefetch = values.some(sub => sub[type] === true) || values.every(sub => sub[type] === undefined) && state.config[type];\n        if (shouldRefetch) {\n          if (subscriptionSubState.size === 0) {\n            api.dispatch(removeQueryResult({\n              queryCacheKey: queryCacheKey as QueryCacheKey\n            }));\n          } else if (querySubState.status !== STATUS_UNINITIALIZED) {\n            api.dispatch(refetchQuery(querySubState));\n          }\n        }\n      }\n    });\n  }\n  return handler;\n};","import type { Action, Middleware, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport type { EndpointDefinitions, FullTagDescription } from '../../endpointDefinitions';\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState';\nimport type { QueryThunkArg } from '../buildThunks';\nimport { createAction, isAction } from '../rtkImports';\nimport { buildBatchedActionsHandler } from './batchActions';\nimport { buildCacheCollectionHandler } from './cacheCollection';\nimport { buildCacheLifecycleHandler } from './cacheLifecycle';\nimport { buildDevCheckHandler } from './devMiddleware';\nimport { buildInvalidationByTagsHandler } from './invalidationByTags';\nimport { buildPollingHandler } from './polling';\nimport { buildQueryLifecycleHandler } from './queryLifecycle';\nimport type { BuildMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState } from './types';\nimport { buildWindowEventHandler } from './windowEventHandling';\nimport type { ApiEndpointQuery } from '../module';\nexport type { ReferenceCacheCollection } from './cacheCollection';\nexport type { MutationCacheLifecycleApi, QueryCacheLifecycleApi, ReferenceCacheLifecycle } from './cacheLifecycle';\nexport type { MutationLifecycleApi, QueryLifecycleApi, ReferenceQueryLifecycle, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './queryLifecycle';\nexport type { SubscriptionSelectors } from './types';\nexport function buildMiddleware<Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\n  const {\n    reducerPath,\n    queryThunk,\n    api,\n    context,\n    getInternalState\n  } = input;\n  const {\n    apiUid\n  } = context;\n  const actions = {\n    invalidateTags: createAction<Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>>(`${reducerPath}/invalidateTags`)\n  };\n  const isThisApiSliceAction = (action: Action) => action.type.startsWith(`${reducerPath}/`);\n  const handlerBuilders: InternalHandlerBuilder[] = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n  const middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>> = mwApi => {\n    let initialized = false;\n    const internalState = getInternalState(mwApi.dispatch);\n    const builderArgs = {\n      ...(input as any as BuildMiddlewareInput<EndpointDefinitions, string, string>),\n      internalState,\n      refetchQuery,\n      isThisApiSliceAction,\n      mwApi\n    };\n    const handlers = handlerBuilders.map(build => build(builderArgs));\n    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n    const windowEventsHandler = buildWindowEventHandler(builderArgs);\n    return next => {\n      return action => {\n        if (!isAction(action)) {\n          return next(action);\n        }\n        if (!initialized) {\n          initialized = true;\n          // dispatch before any other action\n          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n        }\n        const mwApiWithNext = {\n          ...mwApi,\n          next\n        };\n        const stateBefore = mwApi.getState();\n        const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n        let res: any;\n        if (actionShouldContinue) {\n          res = next(action);\n        } else {\n          res = internalProbeResult;\n        }\n        if (!!mwApi.getState()[reducerPath]) {\n          // Only run these checks if the middleware is registered okay\n\n          // This looks for actions that aren't specific to the API slice\n          windowEventsHandler(action, mwApiWithNext, stateBefore);\n          if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n            // Only run these additional checks if the actions are part of the API slice,\n            // or the action has hydration-related data\n            for (const handler of handlers) {\n              handler(action, mwApiWithNext, stateBefore);\n            }\n          }\n        }\n        return res;\n      };\n    };\n  };\n  return {\n    middleware,\n    actions\n  };\n  function refetchQuery(querySubState: Exclude<QuerySubState<any>, {\n    status: QueryStatus.uninitialized;\n  }>) {\n    return (input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<any, any>).initiate(querySubState.originalArgs as any, {\n      subscribe: false,\n      forceRefetch: true\n    });\n  }\n}","/**\n * Note: this file should import all other files for type discovery and declaration merging\n */\nimport type { ActionCreatorWithPayload, Dispatch, Middleware, Reducer, ThunkAction, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit';\nimport { enablePatches } from '../utils/immerImports';\nimport type { Api, Module } from '../apiTypes';\nimport type { BaseQueryFn } from '../baseQueryTypes';\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs';\nimport type { AssertTagTypes, EndpointDefinitions, InfiniteQueryDefinition, MutationDefinition, QueryArgFrom, QueryArgFromAnyQuery, QueryDefinition, TagDescription } from '../endpointDefinitions';\nimport { isInfiniteQueryDefinition, isMutationDefinition, isQueryDefinition } from '../endpointDefinitions';\nimport { assertCast, safeAssign } from '../tsHelpers';\nimport type { CombinedState, MutationKeys, QueryKeys, RootState } from './apiState';\nimport type { BuildInitiateApiEndpointMutation, BuildInitiateApiEndpointQuery, MutationActionCreatorResult, QueryActionCreatorResult, InfiniteQueryActionCreatorResult, BuildInitiateApiEndpointInfiniteQuery } from './buildInitiate';\nimport { buildInitiate } from './buildInitiate';\nimport type { ReferenceCacheCollection, ReferenceCacheLifecycle, ReferenceQueryLifecycle } from './buildMiddleware';\nimport { buildMiddleware } from './buildMiddleware';\nimport type { BuildSelectorsApiEndpointInfiniteQuery, BuildSelectorsApiEndpointMutation, BuildSelectorsApiEndpointQuery } from './buildSelectors';\nimport { buildSelectors } from './buildSelectors';\nimport type { SliceActions, UpsertEntries } from './buildSlice';\nimport { buildSlice } from './buildSlice';\nimport type { AllQueryKeys, BuildThunksApiEndpointInfiniteQuery, BuildThunksApiEndpointMutation, BuildThunksApiEndpointQuery, PatchQueryDataThunk, QueryArgFromAnyQueryDefinition, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nimport { buildThunks } from './buildThunks';\nimport { createSelector as _createSelector } from './rtkImports';\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners';\nimport type { InternalMiddlewareState } from './buildMiddleware/types';\nimport { getOrInsertComputed } from '../utils';\nimport type { CreateSelectorFunction } from 'reselect';\n\n/**\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\n *\n * @overloadSummary\n * `force`\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\n */\nexport type PrefetchOptions = {\n  ifOlderThan?: false | number;\n} | {\n  force?: boolean;\n};\nexport const coreModuleName = /* @__PURE__ */Symbol();\nexport type CoreModule = typeof coreModuleName | ReferenceCacheLifecycle | ReferenceQueryLifecycle | ReferenceCacheCollection;\nexport type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>;\nexport interface ApiModules<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nBaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> {\n  [coreModuleName]: {\n    /**\n     * This api's reducer should be mounted at `store[api.reducerPath]`.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducerPath: ReducerPath;\n    /**\n     * Internal actions not part of the public API. Note: These are subject to change at any given time.\n     */\n    internalActions: InternalActions;\n    /**\n     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    reducer: Reducer<CombinedState<Definitions, TagTypes, ReducerPath>, UnknownAction>;\n    /**\n     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\n     *\n     * @example\n     * ```ts\n     * configureStore({\n     *   reducer: {\n     *     [api.reducerPath]: api.reducer,\n     *   },\n     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\n     * })\n     * ```\n     */\n    middleware: Middleware<{}, RootState<Definitions, string, ReducerPath>, ThunkDispatch<any, any, UnknownAction>>;\n    /**\n     * A collection of utility thunks for various situations.\n     */\n    util: {\n      /**\n       * A thunk that (if dispatched) will return a specific running query, identified\n       * by `endpointName` and `arg`.\n       * If that query is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific query triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>): ThunkWithReturnValue<QueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'query';\n      }> | InfiniteQueryActionCreatorResult<Definitions[EndpointName] & {\n        type: 'infinitequery';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return a specific running mutation, identified\n       * by `endpointName` and `fixedCacheKey` or `requestId`.\n       * If that mutation is not running, dispatching the thunk will result in `undefined`.\n       *\n       * Can be used to await a specific mutation triggered in any way,\n       * including via hook trigger functions or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(endpointName: EndpointName, fixedCacheKeyOrRequestId: string): ThunkWithReturnValue<MutationActionCreatorResult<Definitions[EndpointName] & {\n        type: 'mutation';\n      }> | undefined>;\n\n      /**\n       * A thunk that (if dispatched) will return all running queries.\n       *\n       * Useful for SSR scenarios to await all running queries triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningQueriesThunk(): ThunkWithReturnValue<Array<QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>>>;\n\n      /**\n       * A thunk that (if dispatched) will return all running mutations.\n       *\n       * Useful for SSR scenarios to await all running mutations triggered in any way,\n       * including via hook calls or manually dispatching `initiate` actions.\n       *\n       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\n       */\n      getRunningMutationsThunk(): ThunkWithReturnValue<Array<MutationActionCreatorResult<any>>>;\n\n      /**\n       * A Redux thunk that can be used to manually trigger pre-fetching of data.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\n       *\n       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\n       *\n       * @example\n       *\n       * ```ts no-transpile\n       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\n       * ```\n       */\n      prefetch<EndpointName extends QueryKeys<Definitions>>(endpointName: EndpointName, arg: QueryArgFrom<Definitions[EndpointName]>, options?: PrefetchOptions): ThunkAction<void, any, any, UnknownAction>;\n      /**\n       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\n       *\n       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\n       *\n       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\n       *\n       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\n       *\n       * @example\n       *\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       * ```\n       */\n      updateQueryData: UpdateQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\n       *\n       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\n       *\n       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\n       *\n       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\n       *\n       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\n       *\n       * @example\n       *\n       * ```ts\n       * await dispatch(\n       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\n       * )\n       * ```\n       */\n      upsertQueryData: UpsertQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n      /**\n       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\n       *\n       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\n       *\n       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\n       *\n       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\n       *\n       * @example\n       * ```ts\n       * const patchCollection = dispatch(\n       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\n       *     draftPosts.push({ id: 1, name: 'Teddy' })\n       *   })\n       * )\n       *\n       * // later\n       * dispatch(\n       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\n       * )\n       *\n       * // or\n       * patchCollection.undo()\n       * ```\n       */\n      patchQueryData: PatchQueryDataThunk<Definitions, RootState<Definitions, string, ReducerPath>>;\n\n      /**\n       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.resetApiState())\n       * ```\n       */\n      resetApiState: SliceActions['resetApiState'];\n      upsertQueryEntries: UpsertEntries<Definitions>;\n\n      /**\n       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\n       *\n       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\n       *\n       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\n       *\n       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\n       *\n       * - `[TagType]`\n       * - `[{ type: TagType }]`\n       * - `[{ type: TagType, id: number | string }]`\n       *\n       * @example\n       *\n       * ```ts\n       * dispatch(api.util.invalidateTags(['Post']))\n       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\n       * dispatch(\n       *   api.util.invalidateTags([\n       *     { type: 'Post', id: 1 },\n       *     { type: 'Post', id: 'LIST' },\n       *   ])\n       * )\n       * ```\n       */\n      invalidateTags: ActionCreatorWithPayload<Array<TagDescription<TagTypes> | null | undefined>, string>;\n\n      /**\n       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectInvalidatedBy: (state: RootState<Definitions, string, ReducerPath>, tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>) => Array<{\n        endpointName: string;\n        originalArgs: any;\n        queryCacheKey: string;\n      }>;\n\n      /**\n       * A function to select all arguments currently cached for a given endpoint.\n       *\n       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\n       */\n      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(state: RootState<Definitions, string, ReducerPath>, queryName: QueryName) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>;\n    };\n    /**\n     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\n     */\n    endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? ApiEndpointQuery<Definitions[K], Definitions> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? ApiEndpointMutation<Definitions[K], Definitions> : Definitions[K] extends InfiniteQueryDefinition<any, any, any, any, any> ? ApiEndpointInfiniteQuery<Definitions[K], Definitions> : never };\n  };\n}\nexport interface ApiEndpointQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends QueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointQuery<Definition>, BuildInitiateApiEndpointQuery<Definition>, BuildSelectorsApiEndpointQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport interface ApiEndpointInfiniteQuery<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends InfiniteQueryDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointInfiniteQuery<Definition>, BuildInitiateApiEndpointInfiniteQuery<Definition>, BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface ApiEndpointMutation<\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinition extends MutationDefinition<any, any, any, any, any>,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nDefinitions extends EndpointDefinitions> extends BuildThunksApiEndpointMutation<Definition>, BuildInitiateApiEndpointMutation<Definition>, BuildSelectorsApiEndpointMutation<Definition, Definitions> {\n  name: string;\n  /**\n   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\n   */\n  Types: NonNullable<Definition['Types']>;\n}\nexport type ListenerActions = {\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onOnline: typeof onOnline;\n  onOffline: typeof onOffline;\n  /**\n   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\n   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners\n   */\n  onFocus: typeof onFocus;\n  onFocusLost: typeof onFocusLost;\n};\nexport type InternalActions = SliceActions & ListenerActions;\nexport interface CoreModuleOptions {\n  /**\n   * A selector creator (usually from `reselect`, or matching the same signature)\n   */\n  createSelector?: CreateSelectorFunction<any, any, any>;\n}\n\n/**\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\n *\n * @example\n * ```ts\n * const createBaseApi = buildCreateApi(coreModule());\n * ```\n */\nexport const coreModule = ({\n  createSelector = _createSelector\n}: CoreModuleOptions = {}): Module<CoreModule> => ({\n  name: coreModuleName,\n  init(api, {\n    baseQuery,\n    tagTypes,\n    reducerPath,\n    serializeQueryArgs,\n    keepUnusedDataFor,\n    refetchOnMountOrArgChange,\n    refetchOnFocus,\n    refetchOnReconnect,\n    invalidationBehavior,\n    onSchemaFailure,\n    catchSchemaFailure,\n    skipSchemaValidation\n  }, context) {\n    enablePatches();\n    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs);\n    const assertTagType: AssertTagTypes = tag => {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        if (!tagTypes.includes(tag.type as any)) {\n          console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n        }\n      }\n      return tag;\n    };\n    Object.assign(api, {\n      reducerPath,\n      endpoints: {},\n      internalActions: {\n        onOnline,\n        onOffline,\n        onFocus,\n        onFocusLost\n      },\n      util: {}\n    });\n    const selectors = buildSelectors({\n      serializeQueryArgs: serializeQueryArgs as any,\n      reducerPath,\n      createSelector\n    });\n    const {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery,\n      buildQuerySelector,\n      buildInfiniteQuerySelector,\n      buildMutationSelector\n    } = selectors;\n    safeAssign(api.util, {\n      selectInvalidatedBy,\n      selectCachedArgsForQuery\n    });\n    const {\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      buildMatchThunkActions\n    } = buildThunks({\n      baseQuery,\n      reducerPath,\n      context,\n      api,\n      serializeQueryArgs,\n      assertTagType,\n      selectors,\n      onSchemaFailure,\n      catchSchemaFailure,\n      skipSchemaValidation\n    });\n    const {\n      reducer,\n      actions: sliceActions\n    } = buildSlice({\n      context,\n      queryThunk,\n      infiniteQueryThunk,\n      mutationThunk,\n      serializeQueryArgs,\n      reducerPath,\n      assertTagType,\n      config: {\n        refetchOnFocus,\n        refetchOnReconnect,\n        refetchOnMountOrArgChange,\n        keepUnusedDataFor,\n        reducerPath,\n        invalidationBehavior\n      }\n    });\n    safeAssign(api.util, {\n      patchQueryData,\n      updateQueryData,\n      upsertQueryData,\n      prefetch,\n      resetApiState: sliceActions.resetApiState,\n      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any\n    });\n    safeAssign(api.internalActions, sliceActions);\n    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>();\n    const getInternalState = (dispatch: Dispatch) => {\n      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({\n        currentSubscriptions: new Map(),\n        currentPolls: new Map(),\n        runningQueries: new Map(),\n        runningMutations: new Map()\n      }));\n      return state;\n    };\n    const {\n      buildInitiateQuery,\n      buildInitiateInfiniteQuery,\n      buildInitiateMutation,\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueriesThunk,\n      getRunningQueryThunk\n    } = buildInitiate({\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      serializeQueryArgs: serializeQueryArgs as any,\n      context,\n      getInternalState\n    });\n    safeAssign(api.util, {\n      getRunningMutationThunk,\n      getRunningMutationsThunk,\n      getRunningQueryThunk,\n      getRunningQueriesThunk\n    });\n    const {\n      middleware,\n      actions: middlewareActions\n    } = buildMiddleware({\n      reducerPath,\n      context,\n      queryThunk,\n      mutationThunk,\n      infiniteQueryThunk,\n      api,\n      assertTagType,\n      selectors,\n      getRunningQueryThunk,\n      getInternalState\n    });\n    safeAssign(api.util, middlewareActions);\n    safeAssign(api, {\n      reducer: reducer as any,\n      middleware\n    });\n    return {\n      name: coreModuleName,\n      injectEndpoint(endpointName, definition) {\n        const anyApi = api as any as Api<any, Record<string, any>, string, string, CoreModule>;\n        const endpoint = anyApi.endpoints[endpointName] ??= {} as any;\n        if (isQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildQuerySelector(endpointName, definition),\n            initiate: buildInitiateQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n        if (isMutationDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildMutationSelector(),\n            initiate: buildInitiateMutation(endpointName)\n          }, buildMatchThunkActions(mutationThunk, endpointName));\n        }\n        if (isInfiniteQueryDefinition(definition)) {\n          safeAssign(endpoint, {\n            name: endpointName,\n            select: buildInfiniteQuerySelector(endpointName, definition),\n            initiate: buildInitiateInfiniteQuery(endpointName, definition)\n          }, buildMatchThunkActions(queryThunk, endpointName));\n        }\n      }\n    };\n  }\n});","import { buildCreateApi } from '../createApi';\nimport { coreModule } from './module';\nexport const createApi = /* @__PURE__ */buildCreateApi(coreModule());\nexport { QueryStatus } from './apiState';\nexport type { CombinedState, InfiniteData, InfiniteQueryConfigOptions, InfiniteQuerySubState, MutationKeys, QueryCacheKey, QueryKeys, QuerySubState, RootState, SubscriptionOptions } from './apiState';\nexport type { InfiniteQueryActionCreatorResult, MutationActionCreatorResult, QueryActionCreatorResult, StartQueryActionCreatorOptions } from './buildInitiate';\nexport type { MutationCacheLifecycleApi, MutationLifecycleApi, QueryCacheLifecycleApi, QueryLifecycleApi, SubscriptionSelectors, TypedMutationOnQueryStarted, TypedQueryOnQueryStarted } from './buildMiddleware/index';\nexport { skipToken } from './buildSelectors';\nexport type { InfiniteQueryResultSelectorResult, MutationResultSelectorResult, QueryResultSelectorResult, SkipToken } from './buildSelectors';\nexport type { SliceActions } from './buildSlice';\nexport type { PatchQueryDataThunk, UpdateQueryDataThunk, UpsertQueryDataThunk } from './buildThunks';\nexport { coreModuleName } from './module';\nexport type { ApiEndpointInfiniteQuery, ApiEndpointMutation, ApiEndpointQuery, CoreModule, InternalActions, PrefetchOptions, ThunkWithReturnValue } from './module';\nexport { setupListeners } from './setupListeners';\nexport { buildCreateApi, coreModule };"],"mappings":";AAkEO,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,cAAW;AAJD,SAAAA;AAAA,GAAA;AAQL,IAAM,uBAAuB;AAC7B,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AA0BxB,SAAS,sBAAsB,QAAyC;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB,WAAW;AAAA,IAC5B,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB;AACF;;;AC3GA,SAAS,cAAc,aAAa,gBAAgB,kBAAkB,iBAAiB,iBAAiB,SAAS,SAAS,UAAU,WAAW,YAAY,aAAa,qBAAqB,oBAAoB,oBAAoB,kBAAkB,eAAe,cAAc;;;ACDpR,IAAMC,iBAAqC;AAEpC,SAAS,0BAA0B,QAAa,QAAkB;AACvE,MAAI,WAAW,UAAU,EAAEA,eAAc,MAAM,KAAKA,eAAc,MAAM,KAAK,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,MAAM,IAAI;AAC5H,WAAO;AAAA,EACT;AACA,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,MAAI,eAAe,QAAQ,WAAW,QAAQ;AAC9C,QAAM,WAAgB,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC;AACpD,aAAW,OAAO,SAAS;AACzB,aAAS,GAAG,IAAI,0BAA0B,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC;AAClE,QAAI,aAAc,gBAAe,OAAO,GAAG,MAAM,SAAS,GAAG;AAAA,EAC/D;AACA,SAAO,eAAe,SAAS;AACjC;;;ACfO,SAAS,UAAgB,OAAqB,WAAgD,QAAkD;AACrJ,SAAO,MAAM,OAAoB,CAAC,KAAK,MAAM,MAAM;AACjD,QAAI,UAAU,MAAa,CAAC,GAAG;AAC7B,UAAI,KAAK,OAAO,MAAa,CAAC,CAAC;AAAA,IACjC;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,EAAE,KAAK;AACd;;;ACJO,SAAS,cAAc,KAAa;AACzC,SAAO,IAAI,OAAO,SAAS,EAAE,KAAK,GAAG;AACvC;;;ACJO,SAAS,oBAA6B;AAE3C,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,oBAAoB;AACtC;;;ACXO,SAAS,aAAgB,GAAiC;AAC/D,SAAO,KAAK;AACd;AACO,SAAS,oBAAuB,KAAmB;AACxD,SAAO,CAAC,GAAI,KAAK,OAAO,KAAK,CAAC,CAAE,EAAE,OAAO,YAAY;AACvD;;;ACDO,SAAS,WAAW;AAEzB,SAAO,OAAO,cAAc,cAAc,OAAO,UAAU,WAAW,SAAY,OAAO,UAAU;AACrG;;;ACNA,IAAM,uBAAuB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AACnE,IAAM,sBAAsB,CAAC,QAAgB,IAAI,QAAQ,OAAO,EAAE;AAC3D,SAAS,SAAS,MAA0B,KAAiC;AAClF,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AACA,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO;AAAA,EACT;AACA,QAAM,YAAY,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,WAAW,GAAG,IAAI,MAAM;AACrE,SAAO,qBAAqB,IAAI;AAChC,QAAM,oBAAoB,GAAG;AAC7B,SAAO,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG;AAClC;;;ACLO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;AACO,IAAM,eAAe,MAAM,oBAAI,IAAI;;;ACfnC,IAAM,gBAAgB,CAAC,iBAAyB;AACrD,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,MAAM;AACf,UAAM,UAAU;AAChB,UAAM,OAAO;AACb,oBAAgB;AAAA;AAAA,MAEhB,OAAO,iBAAiB,cAAc,IAAI,aAAa,SAAS,IAAI,IAAI,OAAO,OAAO,IAAI,MAAM,OAAO,GAAG;AAAA,QACxG;AAAA,MACF,CAAC;AAAA,IAAC;AAAA,EACJ,GAAG,YAAY;AACf,SAAO,gBAAgB;AACzB;AAGO,IAAM,YAAY,IAAI,YAA2B;AAEtD,aAAW,UAAU,QAAS,KAAI,OAAO,QAAS,QAAO,YAAY,MAAM,OAAO,MAAM;AAGxF,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,UAAU,SAAS;AAC5B,WAAO,iBAAiB,SAAS,MAAM,gBAAgB,MAAM,OAAO,MAAM,GAAG;AAAA,MAC3E,QAAQ,gBAAgB;AAAA,MACxB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,gBAAgB;AACzB;;;ACHA,IAAM,iBAA+B,IAAI,SAAS,MAAM,GAAG,IAAI;AAC/D,IAAM,wBAAwB,CAAC,aAAuB,SAAS,UAAU,OAAO,SAAS,UAAU;AACnG,IAAM,2BAA2B,CAAC;AAAA;AAAA,EAAiC,yBAAyB,KAAK,QAAQ,IAAI,cAAc,KAAK,EAAE;AAAA;AA4ClI,SAAS,eAAe,KAAU;AAChC,MAAI,CAAC,cAAc,GAAG,GAAG;AACvB,WAAO;AAAA,EACT;AACA,QAAM,OAA4B;AAAA,IAChC,GAAG;AAAA,EACL;AACA,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACzC,QAAI,MAAM,OAAW,QAAO,KAAK,CAAC;AAAA,EACpC;AACA,SAAO;AACT;AAGA,IAAM,gBAAgB,CAAC,SAAc,OAAO,SAAS,aAAa,cAAc,IAAI,KAAK,MAAM,QAAQ,IAAI,KAAK,OAAO,KAAK,WAAW;AAgFhI,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,iBAAiB,OAAK;AAAA,EACtB,UAAU;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB;AAAA,EACA,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,GAAG;AACL,IAAwB,CAAC,GAA0F;AACjH,MAAI,OAAO,UAAU,eAAe,YAAY,gBAAgB;AAC9D,YAAQ,KAAK,2HAA2H;AAAA,EAC1I;AACA,SAAO,OAAO,KAAK,KAAK,iBAAiB;AACvC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI;AACJ,QAAI;AAAA,MACF;AAAA,MACA,UAAU,IAAI,QAAQ,iBAAiB,OAAO;AAAA,MAC9C,SAAS;AAAA,MACT,kBAAkB,yBAAyB;AAAA,MAC3C,iBAAiB,wBAAwB;AAAA,MACzC,UAAU;AAAA,MACV,GAAG;AAAA,IACL,IAAI,OAAO,OAAO,WAAW;AAAA,MAC3B,KAAK;AAAA,IACP,IAAI;AACJ,QAAI,SAAsB;AAAA,MACxB,GAAG;AAAA,MACH,QAAQ,UAAU,UAAU,IAAI,QAAQ,cAAc,OAAO,CAAC,IAAI,IAAI;AAAA,MACtE,GAAG;AAAA,IACL;AACA,cAAU,IAAI,QAAQ,eAAe,OAAO,CAAC;AAC7C,WAAO,UAAW,MAAM,eAAe,SAAS;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,KAAM;AACP,UAAM,oBAAoB,cAAc,OAAO,IAAI;AAInD,QAAI,OAAO,QAAQ,QAAQ,CAAC,qBAAqB,OAAO,OAAO,SAAS,UAAU;AAChF,aAAO,QAAQ,OAAO,cAAc;AAAA,IACtC;AACA,QAAI,CAAC,OAAO,QAAQ,IAAI,cAAc,KAAK,mBAAmB;AAC5D,aAAO,QAAQ,IAAI,gBAAgB,eAAe;AAAA,IACpD;AACA,QAAI,qBAAqB,kBAAkB,OAAO,OAAO,GAAG;AAC1D,aAAO,OAAO,KAAK,UAAU,OAAO,MAAM,YAAY;AAAA,IACxD;AAGA,QAAI,CAAC,OAAO,QAAQ,IAAI,QAAQ,GAAG;AACjC,UAAI,oBAAoB,QAAQ;AAC9B,eAAO,QAAQ,IAAI,UAAU,kBAAkB;AAAA,MACjD,WAAW,oBAAoB,QAAQ;AACrC,eAAO,QAAQ,IAAI,UAAU,4BAA4B;AAAA,MAC3D;AAAA,IAEF;AACA,QAAI,QAAQ;AACV,YAAM,UAAU,CAAC,IAAI,QAAQ,GAAG,IAAI,MAAM;AAC1C,YAAM,QAAQ,mBAAmB,iBAAiB,MAAM,IAAI,IAAI,gBAAgB,eAAe,MAAM,CAAC;AACtG,aAAO,UAAU;AAAA,IACnB;AACA,UAAM,SAAS,SAAS,GAAG;AAC3B,UAAM,UAAU,IAAI,QAAQ,KAAK,MAAM;AACvC,UAAM,eAAe,IAAI,QAAQ,KAAK,MAAM;AAC5C,WAAO;AAAA,MACL,SAAS;AAAA,IACX;AACA,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,QAAQ,OAAO;AAAA,IAClC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,SAAS,aAAa,SAAS,OAAO,iBAAiB,eAAe,aAAa,iBAAiB,EAAE,SAAS,iBAAiB,kBAAkB;AAAA,UAClJ,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,gBAAgB,SAAS,MAAM;AACrC,SAAK,WAAW;AAChB,QAAI;AACJ,QAAI,eAAuB;AAC3B,QAAI;AACF,UAAI;AACJ,YAAM,QAAQ,IAAI;AAAA,QAAC,eAAe,UAAU,eAAe,EAAE,KAAK,OAAK,aAAa,GAAG,OAAK,sBAAsB,CAAC;AAAA;AAAA;AAAA,QAGnH,cAAc,KAAK,EAAE,KAAK,OAAK,eAAe,GAAG,MAAM;AAAA,QAAC,CAAC;AAAA,MAAC,CAAC;AAC3D,UAAI,oBAAqB,OAAM;AAAA,IACjC,SAAS,GAAG;AACV,aAAO;AAAA,QACL,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,gBAAgB,SAAS;AAAA,UACzB,MAAM;AAAA,UACN,OAAO,OAAO,CAAC;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe,UAAU,UAAU,IAAI;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA,IACF,IAAI;AAAA,MACF,OAAO;AAAA,QACL,QAAQ,SAAS;AAAA,QACjB,MAAM;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,iBAAe,eAAe,UAAoB,iBAAkC;AAClF,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,QAAQ;AAAA,IACjC;AACA,QAAI,oBAAoB,gBAAgB;AACtC,wBAAkB,kBAAkB,SAAS,OAAO,IAAI,SAAS;AAAA,IACnE;AACA,QAAI,oBAAoB,QAAQ;AAC9B,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAO,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI;AAAA,IAC1C;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;ACrTO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA4B,OAA4B,OAAY,QAAW;AAAnD;AAA4B;AAAA,EAAwB;AAClF;;;ACeA,eAAe,eAAe,UAAkB,GAAG,aAAqB,GAAG,QAAsB;AAC/F,QAAM,WAAW,KAAK,IAAI,SAAS,UAAU;AAC7C,QAAM,UAAU,CAAC,GAAG,KAAK,OAAO,IAAI,QAAQ,OAAO;AAEnD,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,UAAM,YAAY,WAAW,MAAM,QAAQ,GAAG,OAAO;AAGrD,QAAI,QAAQ;AACV,YAAM,eAAe,MAAM;AACzB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B;AAGA,UAAI,OAAO,SAAS;AAClB,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7B,OAAO;AACL,eAAO,iBAAiB,SAAS,cAAc;AAAA,UAC7C,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAyBA,SAAS,KAAkD,OAAkC,MAAwC;AACnI,QAAM,OAAO,OAAO,IAAI,aAAa;AAAA,IACnC;AAAA,IACA;AAAA,EACF,CAAC,GAAG;AAAA,IACF,kBAAkB;AAAA,EACpB,CAAC;AACH;AAMA,SAAS,cAAc,QAA2B;AAChD,MAAI,OAAO,SAAS;AAClB,SAAK;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AACA,IAAM,gBAAgB,CAAC;AACvB,IAAM,mBAAkF,CAAC,WAAW,mBAAmB,OAAO,MAAM,KAAK,iBAAiB;AAIxJ,QAAM,qBAA+B,CAAC,IAAI,kBAAyB,eAAe,aAAa,gBAAuB,eAAe,UAAU,EAAE,OAAO,OAAK,MAAM,MAAS;AAC5K,QAAM,CAAC,UAAU,IAAI,mBAAmB,MAAM,EAAE;AAChD,QAAM,wBAAgD,CAAC,GAAG,IAAI;AAAA,IAC5D;AAAA,EACF,MAAM,WAAW;AACjB,QAAM,UAIF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,MAAIC,SAAQ;AACZ,SAAO,MAAM;AAEX,kBAAc,IAAI,MAAM;AACxB,QAAI;AACF,YAAM,SAAS,MAAM,UAAU,MAAM,KAAK,YAAY;AAEtD,UAAI,OAAO,OAAO;AAChB,cAAM,IAAI,aAAa,MAAM;AAAA,MAC/B;AACA,aAAO;AAAA,IACT,SAAS,GAAQ;AACf,MAAAA;AACA,UAAI,EAAE,kBAAkB;AACtB,YAAI,aAAa,cAAc;AAC7B,iBAAO,EAAE;AAAA,QACX;AAGA,cAAM;AAAA,MACR;AACA,UAAI,aAAa,cAAc;AAC7B,YAAI,CAAC,QAAQ,eAAe,EAAE,MAAM,OAA8B,MAAM;AAAA,UACtE,SAASA;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF,CAAC,GAAG;AACF,iBAAO,EAAE;AAAA,QACX;AAAA,MACF,OAAO;AAEL,YAAIA,SAAQ,QAAQ,YAAY;AAE9B,iBAAO;AAAA,YACL,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAGA,oBAAc,IAAI,MAAM;AACxB,UAAI;AACF,cAAM,QAAQ,QAAQA,QAAO,QAAQ,YAAY,IAAI,MAAM;AAAA,MAC7D,SAAS,cAAc;AAErB,sBAAc,IAAI,MAAM;AAExB,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAkCO,IAAM,QAAuB,uBAAO,OAAO,kBAAkB;AAAA,EAClE;AACF,CAAC;;;ACjMM,IAAM,kBAAkB;AAC/B,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,mBAAmB;AAClB,IAAM,UAAyB,6BAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AAC1E,IAAM,cAA6B,6BAAa,GAAG,eAAe,KAAK,OAAO,EAAE;AAChF,IAAM,WAA0B,6BAAa,GAAG,eAAe,GAAG,MAAM,EAAE;AAC1E,IAAM,YAA2B,6BAAa,GAAG,eAAe,GAAG,OAAO,EAAE;AACnF,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAI,cAAc;AAkBX,SAAS,eAAe,UAAwC,eAKrD;AAChB,WAAS,iBAAiB;AACxB,UAAM,CAAC,aAAa,iBAAiB,cAAc,aAAa,IAAI,CAAC,SAAS,aAAa,UAAU,SAAS,EAAE,IAAI,YAAU,MAAM,SAAS,OAAO,CAAC,CAAC;AACtJ,UAAM,yBAAyB,MAAM;AACnC,UAAI,OAAO,SAAS,oBAAoB,WAAW;AACjD,oBAAY;AAAA,MACd,OAAO;AACL,wBAAgB;AAAA,MAClB;AAAA,IACF;AACA,QAAI,cAAc,MAAM;AACtB,oBAAc;AAAA,IAChB;AACA,QAAI,CAAC,aAAa;AAChB,UAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAO5D,YAASC,mBAAT,SAAyB,KAAc;AACrC,iBAAO,QAAQ,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM;AACrD,gBAAI,KAAK;AACP,qBAAO,iBAAiB,OAAO,SAAS,KAAK;AAAA,YAC/C,OAAO;AACL,qBAAO,oBAAoB,OAAO,OAAO;AAAA,YAC3C;AAAA,UACF,CAAC;AAAA,QACH;AARS,8BAAAA;AANT,cAAM,WAAW;AAAA,UACf,CAAC,KAAK,GAAG;AAAA,UACT,CAAC,gBAAgB,GAAG;AAAA,UACpB,CAAC,MAAM,GAAG;AAAA,UACV,CAAC,OAAO,GAAG;AAAA,QACb;AAWA,QAAAA,iBAAgB,IAAI;AACpB,sBAAc;AACd,sBAAc,MAAM;AAClB,UAAAA,iBAAgB,KAAK;AACrB,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,gBAAgB,cAAc,UAAU,OAAO,IAAI,eAAe;AAC3E;;;ACqTO,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AA+c/B,SAAS,kBAAkB,GAA8G;AAC9I,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAiH;AACpJ,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,0BAA0B,GAA2H;AACnK,SAAO,EAAE,SAAS;AACpB;AACO,SAAS,qBAAqB,GAAwI;AAC3K,SAAO,kBAAkB,CAAC,KAAK,0BAA0B,CAAC;AAC5D;AA4DO,SAAS,oBAA+D,aAA+F,QAAgC,OAA8B,UAAoB,MAA4B,gBAAuE;AACjW,QAAM,mBAAmB,WAAW,WAAW,IAAI,YAAY,QAAsB,OAAoB,UAAU,IAAgB,IAAI;AACvI,MAAI,kBAAkB;AACpB,WAAO,UAAU,kBAAkB,cAAc,SAAO,eAAe,qBAAqB,GAAG,CAAC,CAAC;AAAA,EACnG;AACA,SAAO,CAAC;AACV;AACA,SAAS,WAAc,GAAiC;AACtD,SAAO,OAAO,MAAM;AACtB;AACO,SAAS,qBAAqB,aAAiE;AACpG,SAAO,OAAO,gBAAgB,WAAW;AAAA,IACvC,MAAM;AAAA,EACR,IAAI;AACN;;;AC/6BA,SAAS,SAAS,SAAS,cAAc,UAAU,aAAa,oBAAoB,qBAAqB;;;ACAzG,SAAS,0BAA0B,+BAA+B;;;AC+G3D,SAAS,cAAkC,SAA4B,UAAwC;AACpH,SAAO,QAAQ,MAAM,QAAQ;AAC/B;;;AC5FO,IAAM,wBAAwB,CAAkF,SAAkC,iBAA+B,QAAQ,oBAAoB,YAAY;;;AFEzN,IAAM,qBAAqB,OAAO,cAAc;AAChD,IAAM,gBAAgB,CAAC,QAAuB,OAAO,IAAI,kBAAkB,MAAM;AA2IjF,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,oBAAoB,CAAC,aAAuB,iBAAiB,QAAQ,GAAG;AAC9E,QAAM,sBAAsB,CAAC,aAAuB,iBAAiB,QAAQ,GAAG;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,qBAAqB,cAAsB,WAAgB;AAClE,WAAO,CAAC,aAAuB;AAC7B,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,gBAAgB,mBAAmB;AAAA,QACvC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,kBAAkB,QAAQ,GAAG,IAAI,aAAa;AAAA,IACvD;AAAA,EACF;AACA,WAAS,wBAKT,eAAuB,0BAAkC;AACvD,WAAO,CAAC,aAAuB;AAC7B,aAAO,oBAAoB,QAAQ,GAAG,IAAI,wBAAwB;AAAA,IACpE;AAAA,EACF;AACA,WAAS,yBAAyB;AAChC,WAAO,CAAC,aAAuB,oBAAoB,kBAAkB,QAAQ,CAAC;AAAA,EAChF;AACA,WAAS,2BAA2B;AAClC,WAAO,CAAC,aAAuB,oBAAoB,oBAAoB,QAAQ,CAAC;AAAA,EAClF;AACA,WAAS,kBAAkB,UAAoB;AAC7C,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAK,kBAA0B,UAAW;AAC1C,YAAM,gBAAgB,SAAS,IAAI,gBAAgB,8BAA8B,CAAC;AAClF,MAAC,kBAA0B,YAAY;AAIvC,UAAI,OAAO,kBAAkB,YAAY,OAAO,eAAe,SAAS,UAAU;AAEhF,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,wBAAwB,EAAE,IAAI,yDAAyD,IAAI,WAAW;AAAA,iEACrG;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AACA,WAAS,sBAA2D,cAAsB,oBAA4G;AACpM,UAAM,cAA0C,CAAC,KAAK;AAAA,MACpD,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,CAAC,qBAAqB;AAAA,MACtB,GAAG;AAAA,IACL,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa;AACjC,YAAM,gBAAgB,mBAAmB;AAAA,QACvC,WAAW;AAAA,QACX;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI;AACJ,YAAM,kBAAkB;AAAA,QACtB,GAAG;AAAA,QACH,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA,CAAC,kBAAkB,GAAG;AAAA,MACxB;AACA,UAAI,kBAAkB,kBAAkB,GAAG;AACzC,gBAAQ,WAAW,eAAe;AAAA,MACpC,OAAO;AACL,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,gBAAQ,mBAAmB;AAAA,UACzB,GAAI;AAAA;AAAA;AAAA,UAGJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,YAAM,WAAY,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG;AACvF,YAAM,cAAc,SAAS,KAAK;AAClC,YAAM,aAAa,SAAS,SAAS,CAAC;AACtC,wBAAkB,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,uBAAuB,WAAW,cAAc;AACtD,YAAM,eAAe,kBAAkB,QAAQ,GAAG,IAAI,aAAa;AACnE,YAAM,kBAAkB,MAAM,SAAS,SAAS,CAAC;AACjD,YAAM,eAAuC,OAAO,OAAQ;AAAA;AAAA;AAAA,QAG5D,YAAY,KAAK,eAAe;AAAA,UAAI,wBAAwB,CAAC;AAAA;AAAA;AAAA,QAG7D,QAAQ,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,QAG1B,QAAQ,IAAI,CAAC,cAAc,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,SAAwB;AAAA,QACnF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,SAAS;AACb,gBAAM,SAAS,MAAM;AACrB,cAAI,OAAO,SAAS;AAClB,kBAAM,OAAO;AAAA,UACf;AACA,iBAAO,OAAO;AAAA,QAChB;AAAA,QACA,SAAS,CAAC,YAA6B,SAAS,YAAY,KAAK;AAAA,UAC/D,WAAW;AAAA,UACX,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC,CAAC;AAAA,QACF,cAAc;AACZ,cAAI,UAAW,UAAS,uBAAuB;AAAA,YAC7C;AAAA,YACA;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,QACA,0BAA0B,SAA8B;AACtD,uBAAa,sBAAsB;AACnC,mBAAS,0BAA0B;AAAA,YACjC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,CAAC;AACD,UAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc;AAC3D,cAAM,iBAAiB,kBAAkB,QAAQ;AACjD,uBAAe,IAAI,eAAe,YAAY;AAC9C,qBAAa,KAAK,MAAM;AACtB,yBAAe,OAAO,aAAa;AAAA,QACrC,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,UAAM,cAA4C,sBAAsB,cAAc,kBAAkB;AACxG,WAAO;AAAA,EACT;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM,sBAA4D,sBAAsB,cAAc,kBAAkB;AACxH,WAAO;AAAA,EACT;AACA,WAAS,sBAAsB,cAAuD;AACpF,WAAO,CAAC,KAAK;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,IACF,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa;AACjC,YAAM,QAAQ,cAAc;AAAA,QAC1B,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,cAAc,SAAS,KAAK;AAClC,wBAAkB,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,qBAAqB,cAAc,YAAY,OAAO,EAAE,KAAK,WAAS;AAAA,QAC1E;AAAA,MACF,EAAE,GAAG,YAAU;AAAA,QACb;AAAA,MACF,EAAE;AACF,YAAM,QAAQ,MAAM;AAClB,iBAAS,qBAAqB;AAAA,UAC5B;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ;AACA,YAAM,MAAM,OAAO,OAAO,oBAAoB;AAAA,QAC5C,KAAK,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,mBAAmB,oBAAoB,QAAQ;AACrD,uBAAiB,IAAI,WAAW,GAAG;AACnC,UAAI,KAAK,MAAM;AACb,yBAAiB,OAAO,SAAS;AAAA,MACnC,CAAC;AACD,UAAI,eAAe;AACjB,yBAAiB,IAAI,eAAe,GAAG;AACvC,YAAI,KAAK,MAAM;AACb,cAAI,iBAAiB,IAAI,aAAa,MAAM,KAAK;AAC/C,6BAAiB,OAAO,aAAa;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AGrZA,SAAS,mBAAmB;AAErB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,QAA2D,OAA4B,YAAmD,SAAc;AAClK,UAAM,MAAM;AADyD;AAA4B;AAAmD;AAAA,EAEtJ;AACF;AACO,IAAM,aAAa,CAAC,sBAA0D,eAA2B,MAAM,QAAQ,oBAAoB,IAAI,qBAAqB,SAAS,UAAU,IAAI,CAAC,CAAC;AACpM,eAAsB,gBAAiD,QAAgB,MAAe,YAAmC,QAA4D;AACnM,QAAM,SAAS,MAAM,OAAO,WAAW,EAAE,SAAS,IAAI;AACtD,MAAI,OAAO,QAAQ;AACjB,UAAM,IAAI,iBAAiB,OAAO,QAAQ,MAAM,YAAY,MAAM;AAAA,EACpE;AACA,SAAO,OAAO;AAChB;;;AC+DA,SAAS,yBAAyB,sBAA+B;AAC/D,SAAO;AACT;AA8BO,IAAM,qBAAqB,CAAiC,MAAS,CAAC,MAExE;AACH,SAAO;AAAA,IACL,GAAG;AAAA,IACH,CAAC,gBAAgB,GAAG;AAAA,EACtB;AACF;AACO,SAAS,YAAgH;AAAA,EAC9H;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AACxB,GAWG;AAED,QAAM,iBAAkE,CAAC,cAAc,KAAK,SAAS,mBAAmB,CAAC,UAAU,aAAa;AAC9I,UAAM,qBAAqB,oBAAoB,YAAY;AAC3D,UAAM,gBAAgB,mBAAmB;AAAA,MACvC,WAAW;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;AACD,aAAS,IAAI,gBAAgB,mBAAmB;AAAA,MAC9C;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AACF,QAAI,CAAC,gBAAgB;AACnB;AAAA,IACF;AACA,UAAM,WAAW,IAAI,UAAU,YAAY,EAAE,OAAO,GAAG;AAAA;AAAA,MAEvD,SAAS;AAAA,IAA6B;AACtC,UAAM,eAAe,oBAAoB,mBAAmB,cAAc,SAAS,MAAM,QAAW,KAAK,CAAC,GAAG,aAAa;AAC1H,aAAS,IAAI,gBAAgB,iBAAiB,CAAC;AAAA,MAC7C;AAAA,MACA;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,WAAc,OAAiB,MAAS,MAAM,GAAa;AAClE,UAAM,WAAW,CAAC,MAAM,GAAG,KAAK;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AAAA,EAChE;AACA,WAAS,SAAY,OAAiB,MAAS,MAAM,GAAa;AAChE,UAAM,WAAW,CAAC,GAAG,OAAO,IAAI;AAChC,WAAO,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,CAAC,IAAI;AAAA,EAC5D;AACA,QAAM,kBAAoE,CAAC,cAAc,KAAK,cAAc,iBAAiB,SAAS,CAAC,UAAU,aAAa;AAC5J,UAAM,qBAAqB,IAAI,UAAU,YAAY;AACrD,UAAM,eAAe,mBAAmB,OAAO,GAAG;AAAA;AAAA,MAElD,SAAS;AAAA,IAA6B;AACtC,UAAM,MAAuB;AAAA,MAC3B,SAAS,CAAC;AAAA,MACV,gBAAgB,CAAC;AAAA,MACjB,MAAM,MAAM,SAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,gBAAgB,cAAc,CAAC;AAAA,IACrG;AACA,QAAI,aAAa,WAAW,sBAAsB;AAChD,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI,UAAU,cAAc;AAC1B,UAAI,YAAY,aAAa,IAAI,GAAG;AAClC,cAAM,CAAC,OAAO,SAAS,cAAc,IAAI,mBAAmB,aAAa,MAAM,YAAY;AAC3F,YAAI,QAAQ,KAAK,GAAG,OAAO;AAC3B,YAAI,eAAe,KAAK,GAAG,cAAc;AACzC,mBAAW;AAAA,MACb,OAAO;AACL,mBAAW,aAAa,aAAa,IAAI;AACzC,YAAI,QAAQ,KAAK;AAAA,UACf,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO;AAAA,QACT,CAAC;AACD,YAAI,eAAe,KAAK;AAAA,UACtB,IAAI;AAAA,UACJ,MAAM,CAAC;AAAA,UACP,OAAO,aAAa;AAAA,QACtB,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,IAAI,QAAQ,WAAW,GAAG;AAC5B,aAAO;AAAA,IACT;AACA,aAAS,IAAI,KAAK,eAAe,cAAc,KAAK,IAAI,SAAS,cAAc,CAAC;AAChF,WAAO;AAAA,EACT;AACA,QAAM,kBAA4D,CAAC,cAAc,KAAK,UAAU,cAAY;AAE1G,UAAM,MAAM,SAAU,IAAI,UAAU,YAAY,EAA8E,SAAS,KAAK;AAAA,MAC1I,WAAW;AAAA,MACX,cAAc;AAAA,MACd,CAAC,kBAAkB,GAAG,OAAO;AAAA,QAC3B,MAAM;AAAA,MACR;AAAA,IACF,CAAC,CAAC;AACF,WAAO;AAAA,EACT;AACA,QAAM,kCAAkC,CAAC,oBAA4D,uBAA0F;AAC7L,WAAO,mBAAmB,SAAS,mBAAmB,kBAAkB,IAAI,mBAAmB,kBAAkB,IAA0B;AAAA,EAC7I;AAGA,QAAM,kBAED,OAAO,KAAK;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAM;AACJ,UAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,UAAM;AAAA,MACJ;AAAA,MACA,uBAAuB;AAAA,IACzB,IAAI;AACJ,UAAM,UAAU,IAAI,SAAS;AAC7B,QAAI;AACF,UAAI,oBAAuC;AAC3C,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,IAAI;AAAA,QACd,MAAM,IAAI;AAAA,QACV,QAAQ,UAAU,cAAc,KAAK,SAAS,CAAC,IAAI;AAAA,QACnD,eAAe,UAAU,IAAI,gBAAgB;AAAA,MAC/C;AACA,YAAM,eAAe,UAAU,IAAI,kBAAkB,IAAI;AACzD,UAAI;AAIJ,YAAM,YAAY,OAAO,MAAsC,OAAgB,UAAkB,aAAkD;AAGjJ,YAAI,SAAS,QAAQ,KAAK,MAAM,QAAQ;AACtC,iBAAO,QAAQ,QAAQ;AAAA,YACrB;AAAA,UACF,CAAC;AAAA,QACH;AACA,cAAM,gBAAoD;AAAA,UACxD,UAAU,IAAI;AAAA,UACd,WAAW;AAAA,QACb;AACA,cAAM,eAAe,MAAM,eAAe,aAAa;AACvD,cAAM,QAAQ,WAAW,aAAa;AACtC,eAAO;AAAA,UACL,MAAM;AAAA,YACJ,OAAO,MAAM,KAAK,OAAO,aAAa,MAAM,QAAQ;AAAA,YACpD,YAAY,MAAM,KAAK,YAAY,OAAO,QAAQ;AAAA,UACpD;AAAA,UACA,MAAM,aAAa;AAAA,QACrB;AAAA,MACF;AAIA,qBAAe,eAAe,eAAmD;AAC/E,YAAI;AACJ,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI,aAAa,CAAC,WAAW,sBAAsB,KAAK,GAAG;AACzD,0BAAgB,MAAM;AAAA,YAAgB;AAAA,YAAW;AAAA,YAAe;AAAA,YAAa,CAAC;AAAA;AAAA,UAC9E;AAAA,QACF;AACA,YAAI,cAAc;AAEhB,mBAAS,aAAa;AAAA,QACxB,WAAW,mBAAmB,OAAO;AAGnC,8BAAoB,gCAAgC,oBAAoB,mBAAmB;AAC3F,mBAAS,MAAM,UAAU,mBAAmB,MAAM,aAAoB,GAAG,cAAc,YAAmB;AAAA,QAC5G,OAAO;AACL,mBAAS,MAAM,mBAAmB,QAAQ,eAAsB,cAAc,cAAqB,CAAAC,SAAO,UAAUA,MAAK,cAAc,YAAmB,CAAC;AAAA,QAC7J;AACA,YAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,gBAAM,OAAO,mBAAmB,QAAQ,gBAAgB;AACxD,cAAI;AACJ,cAAI,CAAC,QAAQ;AACX,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,WAAW,UAAU;AACrC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,SAAS,OAAO,MAAM;AACtC,kBAAM,GAAG,IAAI;AAAA,UACf,WAAW,OAAO,UAAU,UAAa,OAAO,SAAS,QAAW;AAClE,kBAAM,GAAG,IAAI;AAAA,UACf,OAAO;AACL,uBAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,kBAAI,QAAQ,WAAW,QAAQ,UAAU,QAAQ,QAAQ;AACvD,sBAAM,0BAA0B,IAAI,6BAA6B,GAAG;AACpE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,KAAK;AACP,oBAAQ,MAAM,2CAA2C,IAAI,YAAY;AAAA,oBACjE,GAAG;AAAA;AAAA,yCAEkB,MAAM;AAAA,UACrC;AAAA,QACF;AACA,YAAI,OAAO,MAAO,OAAM,IAAI,aAAa,OAAO,OAAO,OAAO,IAAI;AAClE,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,YAAI,qBAAqB,CAAC,WAAW,sBAAsB,aAAa,GAAG;AACzE,iBAAO,MAAM,gBAAgB,mBAAmB,OAAO,MAAM,qBAAqB,OAAO,IAAI;AAAA,QAC/F;AACA,YAAI,sBAAsB,MAAM,kBAAkB,MAAM,OAAO,MAAM,aAAa;AAClF,YAAI,kBAAkB,CAAC,WAAW,sBAAsB,UAAU,GAAG;AACnE,gCAAsB,MAAM,gBAAgB,gBAAgB,qBAAqB,kBAAkB,OAAO,IAAI;AAAA,QAChH;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,MACF;AACA,UAAI,WAAW,0BAA0B,oBAAoB;AAE3D,cAAM;AAAA,UACJ;AAAA,QACF,IAAI;AAGJ,cAAM;AAAA,UACJ,WAAW;AAAA,QACb,IAAI;AAGJ,cAAM,qBAAsB,IAAmC,sBAAsB,qBAAqB,sBAAsB;AAChI,YAAI;AAIJ,cAAM,YAAY;AAAA,UAChB,OAAO,CAAC;AAAA,UACR,YAAY,CAAC;AAAA,QACf;AACA,cAAM,aAAa,UAAU,iBAAiB,SAAS,GAAG,IAAI,aAAa,GAAG;AAM9E,cAAM;AAAA;AAAA,UAEN,cAAc,KAAK,SAAS,CAAC,KAAK,CAAE,IAAmC;AAAA;AACvE,cAAM,eAAgB,+BAA+B,CAAC,aAAa,YAAY;AAI/E,YAAI,eAAe,OAAO,IAAI,aAAa,aAAa,MAAM,QAAQ;AACpE,gBAAM,WAAW,IAAI,cAAc;AACnC,gBAAM,cAAc,WAAW,uBAAuB;AACtD,gBAAM,QAAQ,YAAY,sBAAsB,cAAc,IAAI,YAAY;AAC9E,mBAAS,MAAM,UAAU,cAAc,OAAO,UAAU,QAAQ;AAAA,QAClE,OAAO;AAGL,gBAAM;AAAA,YACJ,mBAAmB,qBAAqB;AAAA,UAC1C,IAAI;AAKJ,gBAAM,mBAAmB,YAAY,cAAc,CAAC;AACpD,gBAAM,iBAAiB,iBAAiB,CAAC,KAAK;AAC9C,gBAAM,aAAa,iBAAiB;AAGpC,mBAAS,MAAM,UAAU,cAAc,gBAAgB,QAAQ;AAC/D,cAAI,cAAc;AAGhB,qBAAS;AAAA,cACP,MAAO,OAAO,KAAwC,MAAM,CAAC;AAAA,YAC/D;AAAA,UACF;AACA,cAAI,oBAAoB;AAEtB,qBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,oBAAM,QAAQ,iBAAiB,sBAAsB,OAAO,MAAwC,IAAI,YAAY;AACpH,uBAAS,MAAM,UAAU,OAAO,MAAwC,OAAO,QAAQ;AAAA,YACzF;AAAA,UACF;AAAA,QACF;AACA,gCAAwB;AAAA,MAC1B,OAAO;AAEL,gCAAwB,MAAM,eAAe,IAAI,YAAY;AAAA,MAC/D;AACA,UAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,KAAK,sBAAsB,MAAM;AACzF,8BAAsB,OAAO,MAAM,gBAAgB,YAAY,sBAAsB,MAAM,cAAc,sBAAsB,IAAI;AAAA,MACrI;AAGA,aAAO,iBAAiB,sBAAsB,MAAM,mBAAmB;AAAA,QACrE,oBAAoB,KAAK,IAAI;AAAA,QAC7B,eAAe,sBAAsB;AAAA,MACvC,CAAC,CAAC;AAAA,IACJ,SAAS,OAAO;AACd,UAAI,cAAc;AAClB,UAAI,uBAAuB,cAAc;AACvC,YAAI,yBAAyB,gCAAgC,oBAAoB,wBAAwB;AACzG,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AAAA,UACF;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AACF,cAAI,0BAA0B,CAAC,WAAW,sBAAsB,kBAAkB,GAAG;AACnF,oBAAQ,MAAM,gBAAgB,wBAAwB,OAAO,0BAA0B,IAAI;AAAA,UAC7F;AACA,cAAI,cAAc,CAAC,WAAW,sBAAsB,MAAM,GAAG;AAC3D,mBAAO,MAAM,gBAAgB,YAAY,MAAM,cAAc,IAAI;AAAA,UACnE;AACA,cAAI,2BAA2B,MAAM,uBAAuB,OAAO,MAAM,IAAI,YAAY;AACzF,cAAI,uBAAuB,CAAC,WAAW,sBAAsB,eAAe,GAAG;AAC7E,uCAA2B,MAAM,gBAAgB,qBAAqB,0BAA0B,uBAAuB,IAAI;AAAA,UAC7H;AACA,iBAAO,gBAAgB,0BAA0B,mBAAmB;AAAA,YAClE,eAAe;AAAA,UACjB,CAAC,CAAC;AAAA,QACJ,SAAS,GAAG;AACV,wBAAc;AAAA,QAChB;AAAA,MACF;AACA,UAAI;AACF,YAAI,uBAAuB,kBAAkB;AAC3C,gBAAM,OAA0B;AAAA,YAC9B,UAAU,IAAI;AAAA,YACd,KAAK,IAAI;AAAA,YACT,MAAM,IAAI;AAAA,YACV,eAAe,UAAU,IAAI,gBAAgB;AAAA,UAC/C;AACA,6BAAmB,kBAAkB,aAAa,IAAI;AACtD,4BAAkB,aAAa,IAAI;AACnC,gBAAM;AAAA,YACJ,qBAAqB;AAAA,UACvB,IAAI;AACJ,cAAI,oBAAoB;AACtB,mBAAO,gBAAgB,mBAAmB,aAAa,IAAI,GAAG,mBAAmB;AAAA,cAC/E,eAAe,YAAY;AAAA,YAC7B,CAAC,CAAC;AAAA,UACJ;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AACV,sBAAc;AAAA,MAChB;AACA,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,cAAc;AAC3E,gBAAQ,MAAM,sEAAsE,IAAI,YAAY;AAAA,kFAC1B,WAAW;AAAA,MACvF,OAAO;AACL,gBAAQ,MAAM,WAAW;AAAA,MAC3B;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACA,WAAS,cAAc,KAAoB,OAA4C;AACrF,UAAM,eAAe,UAAU,iBAAiB,OAAO,IAAI,aAAa;AACxE,UAAM,8BAA8B,UAAU,aAAa,KAAK,EAAE;AAClE,UAAM,eAAe,cAAc;AACnC,UAAM,aAAa,IAAI,iBAAiB,IAAI,aAAa;AACzD,QAAI,YAAY;AAEd,aAAO,eAAe,SAAS,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,YAAY,KAAK,OAAQ;AAAA,IACtF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAwE;AAC/F,UAAM,sBAAsB,iBAEzB,GAAG,WAAW,iBAAiB,iBAAiB;AAAA,MACjD,eAAe;AAAA,QACb;AAAA,MACF,GAAG;AACD,cAAM,qBAAqB,oBAAoB,IAAI,YAAY;AAC/D,eAAO,mBAAmB;AAAA,UACxB,kBAAkB,KAAK,IAAI;AAAA,UAC3B,GAAI,0BAA0B,kBAAkB,IAAI;AAAA,YAClD,WAAY,IAAmC;AAAA,UACjD,IAAI,CAAC;AAAA,QACP,CAAC;AAAA,MACH;AAAA,MACA,UAAU,eAAe;AAAA,QACvB;AAAA,MACF,GAAG;AACD,cAAM,QAAQ,SAAS;AACvB,cAAM,eAAe,UAAU,iBAAiB,OAAO,cAAc,aAAa;AAClF,cAAM,eAAe,cAAc;AACnC,cAAM,aAAa,cAAc;AACjC,cAAM,cAAc,cAAc;AAClC,cAAM,qBAAqB,oBAAoB,cAAc,YAAY;AACzE,cAAM,YAAa,cAA6C;AAKhE,YAAI,cAAc,aAAa,GAAG;AAChC,iBAAO;AAAA,QACT;AAGA,YAAI,cAAc,WAAW,WAAW;AACtC,iBAAO;AAAA,QACT;AAGA,YAAI,cAAc,eAAe,KAAK,GAAG;AACvC,iBAAO;AAAA,QACT;AACA,YAAI,kBAAkB,kBAAkB,KAAK,oBAAoB,eAAe;AAAA,UAC9E;AAAA,UACA;AAAA,UACA,eAAe;AAAA,UACf;AAAA,QACF,CAAC,GAAG;AACF,iBAAO;AAAA,QACT;AAGA,YAAI,gBAAgB,CAAC,WAAW;AAE9B,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA,MACA,4BAA4B;AAAA,IAC9B,CAAC;AACD,WAAO;AAAA,EACT;AACA,QAAM,aAAa,iBAAgC;AACnD,QAAM,qBAAqB,iBAA6C;AACxE,QAAM,gBAAgB,iBAEnB,GAAG,WAAW,oBAAoB,iBAAiB;AAAA,IACpD,iBAAiB;AACf,aAAO,mBAAmB;AAAA,QACxB,kBAAkB,KAAK,IAAI;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,cAAc,CAAC,YAEhB,WAAW;AAChB,QAAM,YAAY,CAAC,YAEd,iBAAiB;AACtB,QAAM,WAAW,CAA+C,cAA4B,KAAU,UAA2B,CAAC,MAAkD,CAAC,UAAwC,aAAwB;AACnP,UAAM,QAAQ,YAAY,OAAO,KAAK,QAAQ;AAC9C,UAAM,SAAS,UAAU,OAAO,KAAK,QAAQ;AAC7C,UAAM,cAAc,CAACC,SAAiB,SAAS;AAC7C,YAAMC,WAA0C;AAAA,QAC9C,cAAcD;AAAA,QACd,WAAW;AAAA,MACb;AACA,aAAQ,IAAI,UAAU,YAAY,EAAiC,SAAS,KAAKC,QAAO;AAAA,IAC1F;AACA,UAAM,mBAAoB,IAAI,UAAU,YAAY,EAAiC,OAAO,GAAG,EAAE,SAAS,CAAC;AAC3G,QAAI,OAAO;AACT,eAAS,YAAY,CAAC;AAAA,IACxB,WAAW,QAAQ;AACjB,YAAM,kBAAkB,kBAAkB;AAC1C,UAAI,CAAC,iBAAiB;AACpB,iBAAS,YAAY,CAAC;AACtB;AAAA,MACF;AACA,YAAM,mBAAmB,OAAO,oBAAI,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,eAAe,CAAC,KAAK,OAAQ;AAC3F,UAAI,iBAAiB;AACnB,iBAAS,YAAY,CAAC;AAAA,MACxB;AAAA,IACF,OAAO;AAEL,eAAS,YAAY,KAAK,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,gBAAgB,cAAsB;AAC7C,WAAO,CAAC,WAAyC,QAAQ,MAAM,KAAK,iBAAiB;AAAA,EACvF;AACA,WAAS,uBAAiJ,OAAc,cAAsB;AAC5L,WAAO;AAAA,MACL,cAAc,QAAQ,UAAU,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACrE,gBAAgB,QAAQ,YAAY,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,MACzE,eAAe,QAAQ,WAAW,KAAK,GAAG,gBAAgB,YAAY,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AACO,SAAS,iBAAiB,SAAgE;AAAA,EAC/F;AAAA,EACA;AACF,GAAmC,UAAwC;AACzE,QAAM,YAAY,MAAM,SAAS;AACjC,SAAO,QAAQ,iBAAiB,MAAM,SAAS,GAAG,OAAO,WAAW,SAAS,GAAG,YAAY,QAAQ;AACtG;AACO,SAAS,qBAAqB,SAAgE;AAAA,EACnG;AAAA,EACA;AACF,GAAmC,UAAwC;AACzE,SAAO,QAAQ,uBAAuB,MAAM,CAAC,GAAG,OAAO,WAAW,CAAC,GAAG,YAAY,QAAQ;AAC5F;AACO,SAAS,yBAAyB,QAAqJ,MAA0C,qBAA0C,eAA+B;AAC/S,SAAO,oBAAoB,oBAAoB,OAAO,KAAK,IAAI,YAAY,EAAE,IAAI,GAAiD,YAAY,MAAM,IAAI,OAAO,UAAU,QAAW,oBAAoB,MAAM,IAAI,OAAO,UAAU,QAAW,OAAO,KAAK,IAAI,cAAc,mBAAmB,OAAO,OAAO,OAAO,KAAK,gBAAgB,QAAW,aAAa;AACnW;;;AC7oBO,SAAS,WAAc,OAAwB;AACpD,SAAQ,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI;AAC5C;;;ACyCA,SAAS,4BAA4B,OAAwB,eAA8B,QAA6E;AACtK,QAAM,WAAW,MAAM,aAAa;AACpC,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AAWO,SAAS,oBAAoB,IAQb;AACrB,UAAQ,SAAS,KAAK,GAAG,IAAI,gBAAgB,GAAG,kBAAkB,GAAG;AACvE;AACA,SAAS,+BAA+B,OAA2B,IAKhE,QAAmD;AACpD,QAAM,WAAW,MAAM,oBAAoB,EAAE,CAAC;AAC9C,MAAI,UAAU;AACZ,WAAO,QAAQ;AAAA,EACjB;AACF;AACA,IAAM,eAAe,CAAC;AACf,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,GASG;AACD,QAAM,gBAAgB,aAAa,GAAG,WAAW,gBAAgB;AACjE,WAAS,uBAAuB,OAAwB,KAAoB,WAAoB,MAM7F;AACD,UAAM,IAAI,aAAa,MAAM;AAAA,MAC3B,QAAQ;AAAA,MACR,cAAc,IAAI;AAAA,IACpB;AACA,gCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,eAAS,SAAS;AAClB,eAAS,YAAY,aAAa,SAAS;AAAA;AAAA,QAE3C,SAAS;AAAA;AAAA;AAAA,QAET,KAAK;AAAA;AACL,UAAI,IAAI,iBAAiB,QAAW;AAClC,iBAAS,eAAe,IAAI;AAAA,MAC9B;AACA,eAAS,mBAAmB,KAAK;AACjC,YAAM,qBAAqB,YAAY,KAAK,IAAI,YAAY;AAC5D,UAAI,0BAA0B,kBAAkB,KAAK,eAAe,KAAK;AACvE;AACA,QAAC,SAAwC,YAAY,IAAI;AAAA,MAC3D;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,yBAAyB,OAAwB,MAMvD,SAAkB,WAAoB;AACvC,gCAA4B,OAAO,KAAK,IAAI,eAAe,cAAY;AACrE,UAAI,SAAS,cAAc,KAAK,aAAa,CAAC,UAAW;AACzD,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,YAAY,KAAK,IAAI,YAAY;AACrC,eAAS,SAAS;AAClB,UAAI,OAAO;AACT,YAAI,SAAS,SAAS,QAAW;AAC/B,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AAKJ,cAAI,UAAU,gBAAgB,SAAS,MAAM,uBAAqB;AAEhE,mBAAO,MAAM,mBAAmB,SAAS;AAAA,cACvC,KAAK,IAAI;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AACD,mBAAS,OAAO;AAAA,QAClB,OAAO;AAEL,mBAAS,OAAO;AAAA,QAClB;AAAA,MACF,OAAO;AAEL,iBAAS,OAAO,YAAY,KAAK,IAAI,YAAY,EAAE,qBAAqB,OAAO,0BAA0B,QAAQ,SAAS,IAAI,IAAI,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,OAAO,IAAI;AAAA,MACxL;AACA,aAAO,SAAS;AAChB,eAAS,qBAAqB,KAAK;AAAA,IACrC,CAAC;AAAA,EACH;AACA,QAAM,aAAa,YAAY;AAAA,IAC7B,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,mBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,UACF;AAAA,QACF,GAA2C;AACzC,iBAAO,MAAM,aAAa;AAAA,QAC5B;AAAA,QACA,SAAS,mBAA4C;AAAA,MACvD;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAIX;AACF,qBAAW,SAAS,OAAO,SAAS;AAClC,kBAAM;AAAA,cACJ,kBAAkB;AAAA,cAClB;AAAA,YACF,IAAI;AACJ,mCAAuB,OAAO,KAAK,MAAM;AAAA,cACvC;AAAA,cACA,WAAW,OAAO,KAAK;AAAA,cACvB,kBAAkB,OAAO,KAAK;AAAA,YAChC,CAAC;AACD;AAAA,cAAyB;AAAA,cAAO;AAAA,gBAC9B;AAAA,gBACA,WAAW,OAAO,KAAK;AAAA,gBACvB,oBAAoB,OAAO,KAAK;AAAA,gBAChC,eAAe,CAAC;AAAA,cAClB;AAAA,cAAG;AAAA;AAAA,cAEH;AAAA,YAAI;AAAA,UACN;AAAA,QACF;AAAA,QACA,SAAS,CAAC,YAAiD;AACzD,gBAAM,oBAAiD,QAAQ,IAAI,WAAS;AAC1E,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI;AACJ,kBAAM,qBAAqB,YAAY,YAAY;AACnD,kBAAM,mBAAkC;AAAA,cACtC,MAAM;AAAA,cACN;AAAA,cACA,cAAc,MAAM;AAAA,cACpB,eAAe,mBAAmB;AAAA,gBAChC,WAAW;AAAA,gBACX;AAAA,gBACA;AAAA,cACF,CAAC;AAAA,YACH;AACA,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AACD,gBAAM,SAAS;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,CAAC,gBAAgB,GAAG;AAAA,cACpB,WAAW,OAAO;AAAA,cAClB,WAAW,KAAK,IAAI;AAAA,YACtB;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAQ,OAAO;AAAA,UACb,SAAS;AAAA,YACP;AAAA,YACA;AAAA,UACF;AAAA,QACF,GAEI;AACF,sCAA4B,OAAO,eAAe,cAAY;AAC5D,qBAAS,OAAO,aAAa,SAAS,MAAa,QAAQ,OAAO,CAAC;AAAA,UACrE,CAAC;AAAA,QACH;AAAA,QACA,SAAS,mBAEN;AAAA,MACL;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,SAAS,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,GAAG;AACnC,+BAAuB,OAAO,KAAK,WAAW,IAAI;AAAA,MACpD,CAAC,EAAE,QAAQ,WAAW,WAAW,CAAC,OAAO;AAAA,QACvC;AAAA,QACA;AAAA,MACF,MAAM;AACJ,cAAM,YAAY,cAAc,KAAK,GAAG;AACxC,iCAAyB,OAAO,MAAM,SAAS,SAAS;AAAA,MAC1D,CAAC,EAAE,QAAQ,WAAW,UAAU,CAAC,OAAO;AAAA,QACtC,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,oCAA4B,OAAO,IAAI,eAAe,cAAY;AAChE,cAAI,WAAW;AAAA,UAEf,OAAO;AAEL,gBAAI,SAAS,cAAc,UAAW;AACtC,qBAAS,SAAS;AAClB,qBAAS,QAAS,WAAW;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD;AAAA;AAAA,YAEA,OAAO,WAAW,oBAAoB,OAAO,WAAW;AAAA,YAAiB;AACvE,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,gBAAgB,YAAY;AAAA,IAChC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO;AAAA,UACb;AAAA,QACF,GAA8C;AAC5C,gBAAM,WAAW,oBAAoB,OAAO;AAC5C,cAAI,YAAY,OAAO;AACrB,mBAAO,MAAM,QAAQ;AAAA,UACvB;AAAA,QACF;AAAA,QACA,SAAS,mBAA+C;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,cAAc,SAAS,CAAC,OAAO;AAAA,QAC7C;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,IAAI,MAAO;AAChB,cAAM,oBAAoB,IAAI,CAAC,IAAI;AAAA,UACjC;AAAA,UACA,QAAQ;AAAA,UACR,cAAc,IAAI;AAAA,UAClB;AAAA,QACF;AAAA,MACF,CAAC,EAAE,QAAQ,cAAc,WAAW,CAAC,OAAO;AAAA,QAC1C;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,OAAO;AAChB,mBAAS,qBAAqB,KAAK;AAAA,QACrC,CAAC;AAAA,MACH,CAAC,EAAE,QAAQ,cAAc,UAAU,CAAC,OAAO;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,MACF,MAAM;AACJ,YAAI,CAAC,KAAK,IAAI,MAAO;AACrB,uCAA+B,OAAO,MAAM,cAAY;AACtD,cAAI,SAAS,cAAc,KAAK,UAAW;AAC3C,mBAAS,SAAS;AAClB,mBAAS,QAAS,WAAW;AAAA,QAC/B,CAAC;AAAA,MACH,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD;AAAA;AAAA,aAEC,OAAO,WAAW,oBAAoB,OAAO,WAAW;AAAA,YAEzD,QAAQ,OAAO;AAAA,YAAW;AACxB,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,QAAM,2BAAsD;AAAA,IAC1D,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,EACT;AACA,QAAM,oBAAoB,YAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,IACd,UAAU;AAAA,MACR,kBAAkB;AAAA,QAChB,QAAQ,OAAO,QAGV;AACH,qBAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF,KAAK,OAAO,SAAS;AACnB,mCAAuB,OAAO,aAAa;AAC3C,uBAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF,KAAK,cAAc;AACjB,oBAAM,qBAAqB,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,uBAAuB,MAAM,CAAC;AACxF,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AAAA,YACF;AAGA,kBAAM,KAAK,aAAa,IAAI;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,SAAS,mBAGL;AAAA,MACN;AAAA,IACF;AAAA,IACA,cAAc,SAAS;AACrB,cAAQ,QAAQ,WAAW,QAAQ,mBAAmB,CAAC,OAAO;AAAA,QAC5D,SAAS;AAAA,UACP;AAAA,QACF;AAAA,MACF,MAAM;AACJ,+BAAuB,OAAO,aAAa;AAAA,MAC7C,CAAC,EAAE,WAAW,oBAAoB,CAAC,OAAO,WAAW;AACnD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM;AACjC,mBAAW,CAAC,MAAM,YAAY,KAAK,OAAO,QAAQ,SAAS,QAAQ,CAAC,CAAC,GAAG;AACtE,qBAAW,CAAC,IAAI,SAAS,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC1D,kBAAM,qBAAqB,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,uBAAuB,MAAM,CAAC;AACxF,uBAAW,iBAAiB,WAAW;AACrC,oBAAM,oBAAoB,kBAAkB,SAAS,aAAa;AAClE,kBAAI,CAAC,mBAAmB;AACtB,kCAAkB,KAAK,aAAa;AAAA,cACtC;AACA,oBAAM,KAAK,aAAa,IAAI,SAAS,KAAK,aAAa;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC,EAAE,WAAW,QAAQ,YAAY,UAAU,GAAG,oBAAoB,UAAU,CAAC,GAAG,CAAC,OAAO,WAAW;AAClG,oCAA4B,OAAO,CAAC,MAAM,CAAC;AAAA,MAC7C,CAAC,EAAE,WAAW,WAAW,QAAQ,qBAAqB,OAAO,CAAC,OAAO,WAAW;AAC9E,cAAM,cAA2C,OAAO,QAAQ,IAAI,CAAC;AAAA,UACnE;AAAA,UACA;AAAA,QACF,MAAM;AACJ,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,SAAS;AAAA,YACT,MAAM;AAAA,cACJ,eAAe;AAAA,cACf,WAAW;AAAA,cACX,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF,CAAC;AACD,oCAA4B,OAAO,WAAW;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,WAAS,uBAAuB,OAA+B,eAA8B;AAC3F,UAAM,eAAe,WAAW,MAAM,KAAK,aAAa,KAAK,CAAC,CAAC;AAG/D,eAAW,OAAO,cAAc;AAC9B,YAAM,UAAU,IAAI;AACpB,YAAM,QAAQ,IAAI,MAAM;AACxB,YAAM,mBAAmB,MAAM,KAAK,OAAO,IAAI,KAAK;AACpD,UAAI,kBAAkB;AACpB,cAAM,KAAK,OAAO,EAAE,KAAK,IAAI,WAAW,gBAAgB,EAAE,OAAO,QAAM,OAAO,aAAa;AAAA,MAC7F;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa;AAAA,EACjC;AACA,WAAS,4BAA4B,OAAkCC,UAAsC;AAC3G,UAAM,oBAAoBA,SAAQ,IAAI,YAAU;AAC9C,YAAM,eAAe,yBAAyB,QAAQ,gBAAgB,aAAa,aAAa;AAChG,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,OAAO,KAAK;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,sBAAkB,aAAa,iBAAiB,OAAO,kBAAkB,QAAQ,iBAAiB,iBAAiB,CAAC;AAAA,EACtH;AAGA,QAAM,oBAAoB,YAAY;AAAA,IACpC,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,0BAA0B,GAAG,GAIC;AAAA,MAE9B;AAAA,MACA,uBAAuB,GAAG,GAEI;AAAA,MAE9B;AAAA,MACA,gCAAgC;AAAA,MAAC;AAAA,IACnC;AAAA,EACF,CAAC;AACD,QAAM,6BAA6B,YAAY;AAAA,IAC7C,MAAM,GAAG,WAAW;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,MACR,sBAAsB;AAAA,QACpB,QAAQ,OAAO,QAAgC;AAC7C,iBAAO,aAAa,OAAO,OAAO,OAAO;AAAA,QAC3C;AAAA,QACA,SAAS,mBAA4B;AAAA,MACvC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,cAAc,YAAY;AAAA,IAC9B,MAAM,GAAG,WAAW;AAAA,IACpB,cAAc;AAAA,MACZ,QAAQ,SAAS;AAAA,MACjB,SAAS,kBAAkB;AAAA,MAC3B,sBAAsB;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,IACA,UAAU;AAAA,MACR,qBAAqB,OAAO;AAAA,QAC1B;AAAA,MACF,GAA0B;AACxB,cAAM,uBAAuB,MAAM,yBAAyB,cAAc,WAAW,UAAU,aAAa;AAAA,MAC9G;AAAA,IACF;AAAA,IACA,eAAe,aAAW;AACxB,cAAQ,QAAQ,UAAU,WAAS;AACjC,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,WAAW,WAAS;AAC7B,cAAM,SAAS;AAAA,MACjB,CAAC,EAAE,QAAQ,SAAS,WAAS;AAC3B,cAAM,UAAU;AAAA,MAClB,CAAC,EAAE,QAAQ,aAAa,WAAS;AAC/B,cAAM,UAAU;AAAA,MAClB,CAAC,EAGA,WAAW,oBAAoB,YAAU;AAAA,QACxC,GAAG;AAAA,MACL,EAAE;AAAA,IACJ;AAAA,EACF,CAAC;AACD,QAAM,kBAAkB,gBAAgB;AAAA,IACtC,SAAS,WAAW;AAAA,IACpB,WAAW,cAAc;AAAA,IACzB,UAAU,kBAAkB;AAAA,IAC5B,eAAe,2BAA2B;AAAA,IAC1C,QAAQ,YAAY;AAAA,EACtB,CAAC;AACD,QAAM,UAAkC,CAAC,OAAO,WAAW,gBAAgB,cAAc,MAAM,MAAM,IAAI,SAAY,OAAO,MAAM;AAClI,QAAMA,WAAU;AAAA,IACd,GAAG,YAAY;AAAA,IACf,GAAG,WAAW;AAAA,IACd,GAAG,kBAAkB;AAAA,IACrB,GAAG,2BAA2B;AAAA,IAC9B,GAAG,cAAc;AAAA,IACjB,GAAG,kBAAkB;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAA;AAAA,EACF;AACF;;;AC9iBO,IAAM,YAA2B,uBAAO,IAAI,gBAAgB;AA2BnE,IAAM,kBAAsC;AAAA,EAC1C,QAAQ;AACV;AAGA,IAAM,uBAAsC,gCAAgB,iBAAiB,MAAM;AAAC,CAAC;AACrF,IAAM,0BAAyC,gCAAgB,iBAA0C,MAAM;AAAC,CAAC;AAE1G,SAAS,eAAoF;AAAA,EAClG;AAAA,EACA;AAAA,EACA,gBAAAC;AACF,GAIG;AAED,QAAM,qBAAqB,CAAC,UAAqB;AACjD,QAAM,wBAAwB,CAAC,UAAqB;AACpD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,iBAEN,UAAqC;AACtC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG,sBAAsB,SAAS,MAAM;AAAA,IAC1C;AAAA,EACF;AACA,WAAS,eAAe,WAAsB;AAC5C,UAAM,QAAQ,UAAU,WAAW;AACnC,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,CAAC,OAAO;AACV,YAAK,eAAuB,UAAW,QAAO;AAC9C,QAAC,eAAuB,YAAY;AACpC,gBAAQ,MAAM,mCAAmC,WAAW,qDAAqD;AAAA,MACnH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,cAAc,WAAsB;AAC3C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,iBAAiB,WAAsB,UAAyB;AACvE,WAAO,cAAc,SAAS,IAAI,QAAQ;AAAA,EAC5C;AACA,WAAS,gBAAgB,WAAsB;AAC7C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,aAAa,WAAsB;AAC1C,WAAO,eAAe,SAAS,GAAG;AAAA,EACpC;AACA,WAAS,sBAAsB,cAAsB,oBAA4D,UAEtE;AACzC,WAAO,CAAC,cAAmB;AAEzB,UAAI,cAAc,WAAW;AAC3B,eAAOA,gBAAe,oBAAoB,QAAQ;AAAA,MACpD;AACA,YAAM,iBAAiB,mBAAmB;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,sBAAsB,CAAC,UAAqB,iBAAiB,OAAO,cAAc,KAAK;AAC7F,aAAOA,gBAAe,qBAAqB,QAAQ;AAAA,IACrD;AAAA,EACF;AACA,WAAS,mBAAmB,cAAsB,oBAAyD;AACzG,WAAO,sBAAsB,cAAc,oBAAoB,gBAAgB;AAAA,EACjF;AACA,WAAS,2BAA2B,cAAsB,oBAAsE;AAC9H,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,aAAS,6BAEN,UAAgE;AACjE,YAAM,wBAAwB;AAAA,QAC5B,GAAI;AAAA,QACJ,GAAG,sBAAsB,SAAS,MAAM;AAAA,MAC1C;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,YAAY,cAAc;AAChC,YAAM,aAAa,cAAc;AACjC,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,eAAe,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QAChH,iBAAiB,mBAAmB,sBAAsB,sBAAsB,MAAM,sBAAsB,YAAY;AAAA,QACxH,oBAAoB,aAAa;AAAA,QACjC,wBAAwB,aAAa;AAAA,QACrC,sBAAsB,WAAW;AAAA,QACjC,0BAA0B,WAAW;AAAA,MACvC;AAAA,IACF;AACA,WAAO,sBAAsB,cAAc,oBAAoB,4BAA4B;AAAA,EAC7F;AACA,WAAS,wBAAwB;AAC/B,WAAQ,QAAM;AACZ,UAAI;AACJ,UAAI,OAAO,OAAO,UAAU;AAC1B,qBAAa,oBAAoB,EAAE,KAAK;AAAA,MAC1C,OAAO;AACL,qBAAa;AAAA,MACf;AACA,YAAM,yBAAyB,CAAC,UAAqB,eAAe,KAAK,GAAG,YAAY,UAAoB,KAAK;AACjH,YAAM,8BAA8B,eAAe,YAAY,wBAAwB;AACvF,aAAOA,gBAAe,6BAA6B,gBAAgB;AAAA,IACrE;AAAA,EACF;AACA,WAAS,oBAAoB,OAAkB,MAI5C;AACD,UAAM,WAAW,MAAM,WAAW;AAClC,UAAM,eAAe,oBAAI,IAAmB;AAC5C,UAAM,YAAY,UAAU,MAAM,cAAc,oBAAoB;AACpE,eAAW,OAAO,WAAW;AAC3B,YAAM,WAAW,SAAS,SAAS,KAAK,IAAI,IAAI;AAChD,UAAI,CAAC,UAAU;AACb;AAAA,MACF;AACA,UAAI,2BAA2B,IAAI,OAAO;AAAA;AAAA,QAE1C,SAAS,IAAI,EAAE;AAAA;AAAA;AAAA,QAEf,OAAO,OAAO,QAAQ,EAAE,KAAK;AAAA,YAAM,CAAC;AACpC,iBAAW,cAAc,yBAAyB;AAChD,qBAAa,IAAI,UAAU;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,MAAM,KAAK,aAAa,OAAO,CAAC,EAAE,QAAQ,mBAAiB;AAChE,YAAM,gBAAgB,SAAS,QAAQ,aAAa;AACpD,aAAO,gBAAgB;AAAA,QACrB;AAAA,QACA,cAAc,cAAc;AAAA,QAC5B,cAAc,cAAc;AAAA,MAC9B,IAAI,CAAC;AAAA,IACP,CAAC;AAAA,EACH;AACA,WAAS,yBAAsE,OAAkB,WAA2E;AAC1K,WAAO,UAAU,OAAO,OAAO,cAAc,KAAK,CAAoB,GAAG,CAAC,UAEpE,OAAO,iBAAiB,aAAa,MAAM,WAAW,sBAAsB,WAAS,MAAM,YAAY;AAAA,EAC/G;AACA,WAAS,eAAe,SAAoD,MAAuC,UAA6B;AAC9I,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,iBAAiB,SAAS,MAAM,QAAQ,KAAK;AAAA,EACtD;AACA,WAAS,mBAAmB,SAAoD,MAAuC,UAA6B;AAClJ,QAAI,CAAC,QAAQ,CAAC,QAAQ,qBAAsB,QAAO;AACnD,WAAO,qBAAqB,SAAS,MAAM,QAAQ,KAAK;AAAA,EAC1D;AACF;;;ACtOA,SAAS,0BAA0BC,0BAAyB,0BAA0BC,2BAA0B,0BAA0B,gCAAgC;;;ACG1K,IAAM,QAA0C,UAAU,oBAAI,QAAQ,IAAI;AACnE,IAAM,4BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AACF,MAAM;AACJ,MAAI,aAAa;AACjB,QAAM,SAAS,OAAO,IAAI,SAAS;AACnC,MAAI,OAAO,WAAW,UAAU;AAC9B,iBAAa;AAAA,EACf,OAAO;AACL,UAAM,cAAc,KAAK,UAAU,WAAW,CAAC,KAAK,UAAU;AAE5D,cAAQ,OAAO,UAAU,WAAW;AAAA,QAClC,SAAS,MAAM,SAAS;AAAA,MAC1B,IAAI;AAEJ,cAAQ,cAAc,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,KAAK,EAAE,OAAY,CAAC,KAAKC,SAAQ;AACjF,YAAIA,IAAG,IAAK,MAAcA,IAAG;AAC7B,eAAO;AAAA,MACT,GAAG,CAAC,CAAC,IAAI;AACT,aAAO;AAAA,IACT,CAAC;AACD,QAAI,cAAc,SAAS,GAAG;AAC5B,aAAO,IAAI,WAAW,WAAW;AAAA,IACnC;AACA,iBAAa;AAAA,EACf;AACA,SAAO,GAAG,YAAY,IAAI,UAAU;AACtC;;;ADpBA,SAAS,sBAAsB;AA4SxB,SAAS,kBAAmE,SAAsD;AACvI,SAAO,SAAS,cAAc,SAAS;AACrC,UAAM,yBAAyB,eAAe,CAAC,WAA0B,QAAQ,yBAAyB,QAAQ;AAAA,MAChH,aAAc,QAAQ,eAAe;AAAA,IACvC,CAAC,CAAC;AACF,UAAM,sBAA4D;AAAA,MAChE,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,2BAA2B;AAAA,MAC3B,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,MACtB,GAAG;AAAA,MACH;AAAA,MACA,mBAAmB,cAAc;AAC/B,YAAI,0BAA0B;AAC9B,YAAI,wBAAwB,aAAa,oBAAoB;AAC3D,gBAAM,cAAc,aAAa,mBAAmB;AACpD,oCAA0B,CAAAC,kBAAgB;AACxC,kBAAM,gBAAgB,YAAYA,aAAY;AAC9C,gBAAI,OAAO,kBAAkB,UAAU;AAErC,qBAAO;AAAA,YACT,OAAO;AAGL,qBAAO,0BAA0B;AAAA,gBAC/B,GAAGA;AAAA,gBACH,WAAW;AAAA,cACb,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF,WAAW,QAAQ,oBAAoB;AACrC,oCAA0B,QAAQ;AAAA,QACpC;AACA,eAAO,wBAAwB,YAAY;AAAA,MAC7C;AAAA,MACA,UAAU,CAAC,GAAI,QAAQ,YAAY,CAAC,CAAE;AAAA,IACxC;AACA,UAAM,UAA2C;AAAA,MAC/C,qBAAqB,CAAC;AAAA,MACtB,MAAM,IAAI;AAER,WAAG;AAAA,MACL;AAAA,MACA,QAAQ,OAAO;AAAA,MACf;AAAA,MACA,oBAAoB,eAAe,YAAU,uBAAuB,MAAM,KAAK,IAAI;AAAA,IACrF;AACA,UAAM,MAAM;AAAA,MACV;AAAA,MACA,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF,GAAG;AACD,YAAI,aAAa;AACf,qBAAW,MAAM,aAAa;AAC5B,gBAAI,CAAC,oBAAoB,SAAU,SAAS,EAAS,GAAG;AACtD;AACA,cAAC,oBAAoB,SAAmB,KAAK,EAAE;AAAA,YACjD;AAAA,UACF;AAAA,QACF;AACA,YAAI,WAAW;AACb,qBAAW,CAAC,cAAc,iBAAiB,KAAK,OAAO,QAAQ,SAAS,GAAG;AACzE,gBAAI,OAAO,sBAAsB,YAAY;AAC3C,gCAAkB,sBAAsB,SAAS,YAAY,CAAC;AAAA,YAChE,OAAO;AACL,qBAAO,OAAO,sBAAsB,SAAS,YAAY,KAAK,CAAC,GAAG,iBAAiB;AAAA,YACrF;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,qBAAqB,QAAQ,IAAI,OAAK,EAAE,KAAK,KAAY,qBAA4B,OAAO,CAAC;AACnG,aAAS,gBAAgB,QAAmD;AAC1E,YAAM,qBAAqB,OAAO,UAAU;AAAA,QAC1C,OAAO,QAAM;AAAA,UACX,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,QACA,UAAU,QAAM;AAAA,UACd,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,QACA,eAAe,QAAM;AAAA,UACnB,GAAG;AAAA,UACH,MAAM;AAAA,QACR;AAAA,MACF,CAAC;AACD,iBAAW,CAAC,cAAc,UAAU,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AAC3E,YAAI,OAAO,qBAAqB,QAAQ,gBAAgB,QAAQ,qBAAqB;AACnF,cAAI,OAAO,qBAAqB,SAAS;AACvC,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,yBAAwB,EAAE,IAAI,wEAAwE,YAAY,gDAAgD;AAAA,UAC5N,WAAW,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AACnF,oBAAQ,MAAM,wEAAwE,YAAY,gDAAgD;AAAA,UACpJ;AACA;AAAA,QACF;AACA,YAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,cAAI,0BAA0B,UAAU,GAAG;AACzC,kBAAM;AAAA,cACJ;AAAA,YACF,IAAI;AACJ,kBAAM;AAAA,cACJ;AAAA,cACA,sBAAAC;AAAA,YACF,IAAI;AACJ,gBAAI,OAAO,aAAa,UAAU;AAChC,kBAAI,WAAW,GAAG;AAChB,sBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeC,0BAAyB,EAAE,IAAI,0BAA0B,YAAY,mCAAmC;AAAA,cAClK;AACA,kBAAI,OAAOD,0BAAyB,YAAY;AAC9C,sBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE,IAAI,sCAAsC,YAAY,0CAA0C;AAAA,cACrL;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,oBAAoB,YAAY,IAAI;AAC5C,mBAAW,KAAK,oBAAoB;AAClC,YAAE,eAAe,cAAc,UAAU;AAAA,QAC3C;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,IAAI,gBAAgB;AAAA,MACzB,WAAW,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;AEzbA,SAAS,0BAA0BE,gCAA+B;AAE3D,IAAM,SAAwB,uBAAO;AAOrC,SAAS,gBAAoE;AAClF,SAAO,WAAY;AACjB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAeA,yBAAwB,EAAE,IAAI,+FAA+F;AAAA,EACvL;AACF;;;ACVO,SAAS,WAAc,GAAwB;AAAC;AAChD,SAAS,WAA6B,WAAc,MAAqC;AAC9F,SAAO,OAAO,OAAO,QAAQ,GAAG,IAAI;AACtC;;;ACDO,IAAM,6BAAoI,CAAC;AAAA,EAChJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,sBAAsB,GAAG,IAAI,WAAW;AAC9C,MAAI,wBAA2C;AAC/C,MAAI,kBAA+D;AACnE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AAIR,QAAM,8BAA8B,CAAC,sBAAiD,WAAmB;AACvG,QAAI,0BAA0B,MAAM,MAAM,GAAG;AAC3C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,KAAK,IAAI,SAAS,GAAG;AACvB,YAAI,IAAI,WAAW,OAAO;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AACA,QAAI,uBAAuB,MAAM,MAAM,GAAG;AACxC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,YAAM,MAAM,qBAAqB,IAAI,aAAa;AAClD,UAAI,KAAK;AACP,YAAI,OAAO,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AACA,QAAI,IAAI,gBAAgB,kBAAkB,MAAM,MAAM,GAAG;AACvD,2BAAqB,OAAO,OAAO,QAAQ,aAAa;AACxD,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,YAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,UAAI,IAAI,WAAW;AACjB,iBAAS,IAAI,WAAW,IAAI,uBAAuB,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC;AAAA,MAClF;AACA,aAAO;AAAA,IACT;AACA,QAAI,UAAU;AACd,QAAI,WAAW,SAAS,MAAM,MAAM,GAAG;AACrC,YAAM;AAAA,QACJ,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI;AACJ,UAAI,aAAa,IAAI,WAAW;AAC9B,cAAM,WAAW,oBAAoB,sBAAsB,IAAI,eAAe,YAAY;AAC1F,iBAAS,IAAI,WAAW,IAAI,uBAAuB,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC;AAChF,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,MAAM,cAAc;AAC7C,QAAM,uBAAuB,CAAC,kBAA0B;AACtD,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,2BAA2B,cAAc,IAAI,aAAa;AAChE,WAAO,0BAA0B,QAAQ;AAAA,EAC3C;AACA,QAAM,sBAAsB,CAAC,eAAuB,cAAsB;AACxE,UAAM,gBAAgB,iBAAiB;AACvC,WAAO,CAAC,CAAC,eAAe,IAAI,aAAa,GAAG,IAAI,SAAS;AAAA,EAC3D;AACA,QAAM,wBAA+C;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,uBAAuB,sBAAoE;AAIlG,WAAO,KAAK,MAAM,KAAK,UAAU,OAAO,YAAY,CAAC,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,EAC7H;AACA,SAAO,CAAC,QAAQC,WAAoF;AAClG,QAAI,CAAC,uBAAuB;AAE1B,8BAAwB,uBAAuB,cAAc,oBAAoB;AAAA,IACnF;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,8BAAwB,CAAC;AACzB,oBAAc,qBAAqB,MAAM;AACzC,wBAAkB;AAClB,aAAO,CAAC,MAAM,KAAK;AAAA,IACrB;AAMA,QAAI,IAAI,gBAAgB,8BAA8B,MAAM,MAAM,GAAG;AACnE,aAAO,CAAC,OAAO,qBAAqB;AAAA,IACtC;AAGA,UAAM,YAAY,4BAA4B,cAAc,sBAAsB,MAAM;AACxF,QAAI,uBAAuB;AAG3B,QAAI,QAAQ,IAAI,aAAa,UAAU,OAAO,OAAO,SAAS,YAAY,OAAO,SAAS,GAAG,IAAI,WAAW,eAAe;AACzH,aAAO,CAAC,OAAO,cAAc,YAAY;AAAA,IAC3C;AACA,QAAI,WAAW;AACb,UAAI,CAAC,iBAAiB;AAMpB,0BAAkB,WAAW,MAAM;AAEjC,gBAAM,mBAAsC,uBAAuB,cAAc,oBAAoB;AAErG,gBAAM,CAAC,EAAE,OAAO,IAAI,mBAAmB,uBAAuB,MAAM,gBAAgB;AAGpF,UAAAA,OAAM,KAAK,IAAI,gBAAgB,qBAAqB,OAAO,CAAC;AAE5D,kCAAwB;AACxB,4BAAkB;AAAA,QACpB,GAAG,GAAG;AAAA,MACR;AACA,YAAM,4BAA4B,OAAO,OAAO,QAAQ,YAAY,CAAC,CAAC,OAAO,KAAK,WAAW,mBAAmB;AAChH,YAAM,iCAAiC,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,aAAa,CAAC,CAAC,OAAO,KAAK,IAAI;AACvH,6BAAuB,CAAC,6BAA6B,CAAC;AAAA,IACxD;AACA,WAAO,CAAC,sBAAsB,KAAK;AAAA,EACrC;AACF;;;AC7GO,IAAM,mCAAmC,aAAgB,MAAQ;AACjE,IAAM,8BAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,QAAM,wBAAwB,QAAQ,uBAAuB,OAAO,WAAW,WAAW,WAAW,UAAU,qBAAqB,KAAK;AACzI,WAAS,gCAAgC,eAAuB;AAC9D,UAAM,gBAAgB,cAAc,qBAAqB,IAAI,aAAa;AAC1E,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AACA,UAAM,mBAAmB,cAAc,OAAO;AAC9C,WAAO;AAAA,EACT;AACA,QAAM,yBAAoD,CAAC;AAC3D,WAAS,iBAEN,YAA8C;AAC/C,eAAW,WAAW,WAAW,OAAO,GAAG;AACzC,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF;AACA,QAAM,UAAwC,CAAC,QAAQC,WAAU;AAC/D,UAAM,QAAQA,OAAM,SAAS;AAC7B,UAAM,SAAS,aAAa,KAAK;AACjC,QAAI,sBAAsB,MAAM,GAAG;AACjC,UAAI;AACJ,UAAI,qBAAqB,MAAM,MAAM,GAAG;AACtC,yBAAiB,OAAO,QAAQ,IAAI,WAAS,MAAM,iBAAiB,aAAa;AAAA,MACnF,OAAO;AACL,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,uBAAuB,MAAM,MAAM,IAAI,OAAO,UAAU,OAAO,KAAK;AACxE,yBAAiB,CAAC,aAAa;AAAA,MACjC;AACA,4BAAsB,gBAAgBA,QAAO,MAAM;AAAA,IACrD;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW,CAAC,KAAK,OAAO,KAAK,OAAO,QAAQ,sBAAsB,GAAG;AACnE,YAAI,QAAS,cAAa,OAAO;AACjC,eAAO,uBAAuB,GAAG;AAAA,MACnC;AACA,uBAAiB,cAAc,cAAc;AAC7C,uBAAiB,cAAc,gBAAgB;AAAA,IACjD;AACA,QAAI,QAAQ,mBAAmB,MAAM,GAAG;AACtC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,QAAQ,uBAAuB,MAAM;AAIzC,4BAAsB,OAAO,KAAK,OAAO,GAAsBA,QAAO,MAAM;AAAA,IAC9E;AAAA,EACF;AACA,WAAS,sBAAsB,WAA4BC,MAAuB,QAA6B;AAC7G,UAAM,QAAQA,KAAI,SAAS;AAC3B,eAAW,iBAAiB,WAAW;AACrC,YAAM,QAAQ,iBAAiB,OAAO,aAAa;AACnD,UAAI,OAAO,cAAc;AACvB,0BAAkB,eAAe,MAAM,cAAcA,MAAK,MAAM;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AACA,WAAS,kBAAkB,eAA8B,cAAsBA,MAAuB,QAA6B;AACjI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,oBAAoB,oBAAoB,qBAAqB,OAAO;AAC1E,QAAI,sBAAsB,UAAU;AAElC;AAAA,IACF;AAKA,UAAM,yBAAyB,KAAK,IAAI,GAAG,KAAK,IAAI,mBAAmB,gCAAgC,CAAC;AACxG,QAAI,CAAC,gCAAgC,aAAa,GAAG;AACnD,YAAM,iBAAiB,uBAAuB,aAAa;AAC3D,UAAI,gBAAgB;AAClB,qBAAa,cAAc;AAAA,MAC7B;AACA,6BAAuB,aAAa,IAAI,WAAW,MAAM;AACvD,YAAI,CAAC,gCAAgC,aAAa,GAAG;AAEnD,gBAAM,QAAQ,iBAAiBA,KAAI,SAAS,GAAG,aAAa;AAC5D,cAAI,OAAO,cAAc;AACvB,kBAAM,eAAeA,KAAI,SAAS,qBAAqB,MAAM,cAAc,MAAM,YAAY,CAAC;AAC9F,0BAAc,MAAM;AAAA,UACtB;AACA,UAAAA,KAAI,SAAS,kBAAkB;AAAA,YAC7B;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AACA,eAAO,uBAAwB,aAAa;AAAA,MAC9C,GAAG,yBAAyB,GAAI;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;;;AClEA,IAAM,qBAAqB,IAAI,MAAM,kDAAkD;AAGhF,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF,MAAM;AACJ,QAAM,eAAe,mBAAmB,UAAU;AAClD,QAAM,kBAAkB,mBAAmB,aAAa;AACxD,QAAM,mBAAmB,YAAY,YAAY,aAAa;AAQ9D,QAAM,eAA+C,CAAC;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,IAAI;AACR,WAAS,sBAAsB,UAAkB,MAAe,MAAe;AAC7E,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,WAAW,eAAe;AAC5B,gBAAU,cAAc;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,UAAU;AAAA,IACnB;AAAA,EACF;AACA,WAAS,qBAAqB,UAAkB;AAC9C,UAAM,YAAY,aAAa,QAAQ;AACvC,QAAI,WAAW;AACb,aAAO,aAAa,QAAQ;AAC5B,gBAAU,kBAAkB;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,oBAAoB,QAA0F;AACrH,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,OAAO;AACX,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,CAAC,cAAc,cAAc,SAAS;AAAA,EAC/C;AACA,QAAM,UAAwC,CAAC,QAAQ,OAAO,gBAAgB;AAC5E,UAAM,WAAW,YAAY,MAAM;AACnC,aAAS,oBAAoB,cAAsBC,WAAyB,WAAmB,cAAuB;AACpH,YAAM,WAAW,iBAAiB,aAAaA,SAAQ;AACvD,YAAM,WAAW,iBAAiB,MAAM,SAAS,GAAGA,SAAQ;AAC5D,UAAI,CAAC,YAAY,UAAU;AACzB,qBAAa,cAAc,cAAcA,WAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,GAAG;AACpC,YAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,0BAAoB,cAAc,UAAU,WAAW,YAAY;AAAA,IACrE,WAAW,qBAAqB,MAAM,MAAM,GAAG;AAC7C,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF,KAAK,OAAO,SAAS;AACnB,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,4BAAoB,cAAc,eAAe,OAAO,KAAK,WAAW,YAAY;AACpF,8BAAsB,eAAe,OAAO,CAAC,CAAC;AAAA,MAChD;AAAA,IACF,WAAW,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC9C,YAAM,QAAQ,MAAM,SAAS,EAAE,WAAW,EAAE,UAAU,QAAQ;AAC9D,UAAI,OAAO;AACT,cAAM,CAAC,cAAc,cAAc,SAAS,IAAI,oBAAoB,MAAM;AAC1E,qBAAa,cAAc,cAAc,UAAU,OAAO,SAAS;AAAA,MACrE;AAAA,IACF,WAAW,iBAAiB,MAAM,GAAG;AACnC,4BAAsB,UAAU,OAAO,SAAS,OAAO,KAAK,aAAa;AAAA,IAC3E,WAAW,kBAAkB,MAAM,MAAM,KAAK,qBAAqB,MAAM,MAAM,GAAG;AAChF,2BAAqB,QAAQ;AAAA,IAC/B,WAAW,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAC/C,iBAAWA,aAAY,OAAO,KAAK,YAAY,GAAG;AAChD,6BAAqBA,SAAQ;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY,QAAa;AAChC,QAAI,aAAa,MAAM,EAAG,QAAO,OAAO,KAAK,IAAI;AACjD,QAAI,gBAAgB,MAAM,GAAG;AAC3B,aAAO,OAAO,KAAK,IAAI,iBAAiB,OAAO,KAAK;AAAA,IACtD;AACA,QAAI,kBAAkB,MAAM,MAAM,EAAG,QAAO,OAAO,QAAQ;AAC3D,QAAI,qBAAqB,MAAM,MAAM,EAAG,QAAO,oBAAoB,OAAO,OAAO;AACjF,WAAO;AAAA,EACT;AACA,WAAS,aAAa,cAAsB,cAAmB,eAAuB,OAAyB,WAAmB;AAChI,UAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,UAAM,oBAAoB,oBAAoB;AAC9C,QAAI,CAAC,kBAAmB;AACxB,UAAM,YAAY,CAAC;AACnB,UAAM,oBAAoB,IAAI,QAAc,aAAW;AACrD,gBAAU,oBAAoB;AAAA,IAChC,CAAC;AACD,UAAM,kBAG0B,QAAQ,KAAK,CAAC,IAAI,QAG/C,aAAW;AACZ,gBAAU,gBAAgB;AAAA,IAC5B,CAAC,GAAG,kBAAkB,KAAK,MAAM;AAC/B,YAAM;AAAA,IACR,CAAC,CAAC,CAAC;AAGH,oBAAgB,MAAM,MAAM;AAAA,IAAC,CAAC;AAC9B,iBAAa,aAAa,IAAI;AAC9B,UAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,aAAa;AACpI,UAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,MACH,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,MACpM;AAAA,MACA;AAAA,IACF;AACA,UAAM,iBAAiB,kBAAkB,cAAc,YAAmB;AAE1E,YAAQ,QAAQ,cAAc,EAAE,MAAM,OAAK;AACzC,UAAI,MAAM,mBAAoB;AAC9B,YAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ACjPO,IAAM,uBAA+C,CAAC;AAAA,EAC3D;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AACF,MAAM;AACJ,SAAO,CAAC,QAAQ,UAAU;AACxB,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AAExC,YAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,IACjE;AACA,QAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,UAAI,IAAI,gBAAgB,qBAAqB,MAAM,MAAM,KAAK,OAAO,YAAY,UAAU,MAAM,SAAS,EAAE,WAAW,GAAG,QAAQ,yBAAyB,YAAY;AACrK,gBAAQ,KAAK,yEAAyE,WAAW;AAAA,8FACX,gBAAgB,QAAQ;AAAA,iGACrB,EAAE,EAAE;AAAA,MAC/F;AAAA,IACF;AAAA,EACF;AACF;;;ACbO,IAAM,iCAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,wBAAwB,QAAQ,YAAY,aAAa,GAAG,oBAAoB,aAAa,CAAC;AACpG,QAAM,aAAa,QAAQ,YAAY,YAAY,aAAa,GAAG,WAAW,YAAY,aAAa,CAAC;AACxG,MAAI,0BAAwD,CAAC;AAE7D,MAAI,sBAAsB;AAC1B,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,cAAc,QAAQ,MAAM,MAAM,GAAG;AAC3E;AAAA,IACF;AACA,QAAI,WAAW,MAAM,GAAG;AACtB,4BAAsB,KAAK,IAAI,GAAG,sBAAsB,CAAC;AAAA,IAC3D;AACA,QAAI,sBAAsB,MAAM,GAAG;AACjC,qBAAe,yBAAyB,QAAQ,mBAAmB,qBAAqB,aAAa,GAAG,KAAK;AAAA,IAC/G,WAAW,WAAW,MAAM,GAAG;AAC7B,qBAAe,CAAC,GAAG,KAAK;AAAA,IAC1B,WAAW,IAAI,KAAK,eAAe,MAAM,MAAM,GAAG;AAChD,qBAAe,oBAAoB,OAAO,SAAS,QAAW,QAAW,QAAW,QAAW,aAAa,GAAG,KAAK;AAAA,IACtH;AAAA,EACF;AACA,WAAS,qBAAqB;AAC5B,WAAO,sBAAsB;AAAA,EAC/B;AACA,WAAS,eAAe,SAAgD,OAAyB;AAC/F,UAAM,YAAY,MAAM,SAAS;AACjC,UAAM,QAAQ,UAAU,WAAW;AACnC,4BAAwB,KAAK,GAAG,OAAO;AACvC,QAAI,MAAM,OAAO,yBAAyB,aAAa,mBAAmB,GAAG;AAC3E;AAAA,IACF;AACA,UAAM,OAAO;AACb,8BAA0B,CAAC;AAC3B,QAAI,KAAK,WAAW,EAAG;AACvB,UAAM,eAAe,IAAI,KAAK,oBAAoB,WAAW,IAAI;AACjE,YAAQ,MAAM,MAAM;AAClB,YAAM,cAAc,MAAM,KAAK,aAAa,OAAO,CAAC;AACpD,iBAAW;AAAA,QACT;AAAA,MACF,KAAK,aAAa;AAChB,cAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,cAAM,uBAAuB,oBAAoB,cAAc,sBAAsB,eAAe,YAAY;AAChH,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,kBAAM,SAAS,kBAAkB;AAAA,cAC/B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,kBAAM,SAAS,aAAa,aAAa,CAAC;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3EO,IAAM,sBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,wBAAwB,oBAAI,IAAY;AAC9C,MAAI,qBAA2D;AAC/D,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,IAAI,gBAAgB,0BAA0B,MAAM,MAAM,KAAK,IAAI,gBAAgB,uBAAuB,MAAM,MAAM,GAAG;AAC3H,4BAAsB,OAAO,QAAQ,eAAe,KAAK;AAAA,IAC3D;AACA,QAAI,WAAW,QAAQ,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,OAAO,KAAK,WAAW;AAClG,4BAAsB,OAAO,KAAK,IAAI,eAAe,KAAK;AAAA,IAC5D;AACA,QAAI,WAAW,UAAU,MAAM,MAAM,KAAK,WAAW,SAAS,MAAM,MAAM,KAAK,CAAC,OAAO,KAAK,WAAW;AACrG,oBAAc,OAAO,KAAK,KAAK,KAAK;AAAA,IACtC;AACA,QAAI,IAAI,KAAK,cAAc,MAAM,MAAM,GAAG;AACxC,iBAAW;AAEX,UAAI,oBAAoB;AACtB,qBAAa,kBAAkB;AAC/B,6BAAqB;AAAA,MACvB;AACA,4BAAsB,MAAM;AAAA,IAC9B;AAAA,EACF;AACA,WAAS,sBAAsB,eAAuBC,MAAuB;AAC3E,0BAAsB,IAAI,aAAa;AACvC,QAAI,CAAC,oBAAoB;AACvB,2BAAqB,WAAW,MAAM;AAEpC,mBAAW,OAAO,uBAAuB;AACvC,gCAAsB;AAAA,YACpB,eAAe;AAAA,UACjB,GAAGA,IAAG;AAAA,QACR;AACA,8BAAsB,MAAM;AAC5B,6BAAqB;AAAA,MACvB,GAAG,CAAC;AAAA,IACN;AAAA,EACF;AACA,WAAS,cAAc;AAAA,IACrB;AAAA,EACF,GAA4BA,MAAuB;AACjD,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,qBAAsB;AACrE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,0BAA0B,aAAa;AAC3C,QAAI,CAAC,OAAO,SAAS,qBAAqB,EAAG;AAC7C,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,QAAI,aAAa,SAAS;AACxB,mBAAa,YAAY,OAAO;AAChC,kBAAY,UAAU;AAAA,IACxB;AACA,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,iBAAa,IAAI,eAAe;AAAA,MAC9B;AAAA,MACA,iBAAiB;AAAA,MACjB,SAAS,WAAW,MAAM;AACxB,YAAI,MAAM,OAAO,WAAW,CAAC,wBAAwB;AACnD,UAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,QAC1C;AACA,sBAAc;AAAA,UACZ;AAAA,QACF,GAAGA,IAAG;AAAA,MACR,GAAG,qBAAqB;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,WAAS,sBAAsB;AAAA,IAC7B;AAAA,EACF,GAA4BA,MAAuB;AACjD,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,gBAAgB,MAAM,QAAQ,aAAa;AACjD,UAAM,gBAAgB,qBAAqB,IAAI,aAAa;AAC5D,QAAI,CAAC,iBAAiB,cAAc,WAAW,sBAAsB;AACnE;AAAA,IACF;AACA,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,0BAA0B,aAAa;AAI3C,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,YAAM,iBAAkB,aAAqB,uBAAuB,CAAC;AACrE,qBAAe,aAAa,MAAM;AAClC,qBAAe,aAAa;AAAA,IAC9B;AACA,QAAI,CAAC,OAAO,SAAS,qBAAqB,GAAG;AAC3C,wBAAkB,aAAa;AAC/B;AAAA,IACF;AACA,UAAM,cAAc,aAAa,IAAI,aAAa;AAClD,UAAM,oBAAoB,KAAK,IAAI,IAAI;AACvC,QAAI,CAAC,eAAe,oBAAoB,YAAY,mBAAmB;AACrE,oBAAc;AAAA,QACZ;AAAA,MACF,GAAGA,IAAG;AAAA,IACR;AAAA,EACF;AACA,WAAS,kBAAkB,KAAa;AACtC,UAAM,eAAe,aAAa,IAAI,GAAG;AACzC,QAAI,cAAc,SAAS;AACzB,mBAAa,aAAa,OAAO;AAAA,IACnC;AACA,iBAAa,OAAO,GAAG;AAAA,EACzB;AACA,WAAS,aAAa;AACpB,eAAW,OAAO,aAAa,KAAK,GAAG;AACrC,wBAAkB,GAAG;AAAA,IACvB;AAAA,EACF;AACA,WAAS,0BAA0B,cAAmC,oBAAI,IAAI,GAAG;AAC/E,QAAI,yBAA8C;AAClD,QAAI,wBAAwB,OAAO;AACnC,eAAW,SAAS,YAAY,OAAO,GAAG;AACxC,UAAI,CAAC,CAAC,MAAM,iBAAiB;AAC3B,gCAAwB,KAAK,IAAI,MAAM,iBAAkB,qBAAqB;AAC9E,iCAAyB,MAAM,0BAA0B;AAAA,MAC3D;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;;AC0LO,IAAM,6BAAqD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,UAAU,YAAY,aAAa;AAC1D,QAAM,kBAAkB,WAAW,YAAY,aAAa;AAC5D,QAAM,oBAAoB,YAAY,YAAY,aAAa;AAQ/D,QAAM,eAA+C,CAAC;AACtD,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,eAAe,MAAM,GAAG;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA;AAAA,QACF;AAAA,MACF,IAAI,OAAO;AACX,YAAM,qBAAqB,sBAAsB,SAAS,YAAY;AACtE,YAAM,iBAAiB,oBAAoB;AAC3C,UAAI,gBAAgB;AAClB,cAAM,YAAY,CAAC;AACnB,cAAM,iBAAiB,IAAK,QAGW,CAAC,SAAS,WAAW;AAC1D,oBAAU,UAAU;AACpB,oBAAU,SAAS;AAAA,QACrB,CAAC;AAGD,uBAAe,MAAM,MAAM;AAAA,QAAC,CAAC;AAC7B,qBAAa,SAAS,IAAI;AAC1B,cAAM,WAAY,IAAI,UAAU,YAAY,EAAU,OAAO,qBAAqB,kBAAkB,IAAI,eAAe,SAAS;AAChI,cAAM,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAIC,WAAUA,MAAK;AACpD,cAAM,eAAe;AAAA,UACnB,GAAG;AAAA,UACH,eAAe,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,UAC9C;AAAA,UACA;AAAA,UACA,kBAAmB,qBAAqB,kBAAkB,IAAI,CAAC,iBAA8B,MAAM,SAAS,IAAI,KAAK,gBAAgB,cAAuB,cAAuB,YAAY,CAAC,IAAI;AAAA,UACpM;AAAA,QACF;AACA,uBAAe,cAAc,YAAmB;AAAA,MAClD;AAAA,IACF,WAAW,kBAAkB,MAAM,GAAG;AACpC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,mBAAa,SAAS,GAAG,QAAQ;AAAA,QAC/B,MAAM,OAAO;AAAA,QACb,MAAM;AAAA,MACR,CAAC;AACD,aAAO,aAAa,SAAS;AAAA,IAC/B,WAAW,gBAAgB,MAAM,GAAG;AAClC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,OAAO;AACX,mBAAa,SAAS,GAAG,OAAO;AAAA,QAC9B,OAAO,OAAO,WAAW,OAAO;AAAA,QAChC,kBAAkB,CAAC;AAAA,QACnB,MAAM;AAAA,MACR,CAAC;AACD,aAAO,aAAa,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;;;ACnZO,IAAM,0BAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,IAAI;AACR,QAAM,UAAwC,CAAC,QAAQ,UAAU;AAC/D,QAAI,QAAQ,MAAM,MAAM,GAAG;AACzB,0BAAoB,OAAO,gBAAgB;AAAA,IAC7C;AACA,QAAI,SAAS,MAAM,MAAM,GAAG;AAC1B,0BAAoB,OAAO,oBAAoB;AAAA,IACjD;AAAA,EACF;AACA,WAAS,oBAAoBC,MAAuB,MAA+C;AACjG,UAAM,QAAQA,KAAI,SAAS,EAAE,WAAW;AACxC,UAAM,UAAU,MAAM;AACtB,UAAM,gBAAgB,cAAc;AACpC,YAAQ,MAAM,MAAM;AAClB,iBAAW,iBAAiB,cAAc,KAAK,GAAG;AAChD,cAAM,gBAAgB,QAAQ,aAAa;AAC3C,cAAM,uBAAuB,cAAc,IAAI,aAAa;AAC5D,YAAI,CAAC,wBAAwB,CAAC,cAAe;AAC7C,cAAM,SAAS,CAAC,GAAG,qBAAqB,OAAO,CAAC;AAChD,cAAM,gBAAgB,OAAO,KAAK,SAAO,IAAI,IAAI,MAAM,IAAI,KAAK,OAAO,MAAM,SAAO,IAAI,IAAI,MAAM,MAAS,KAAK,MAAM,OAAO,IAAI;AACjI,YAAI,eAAe;AACjB,cAAI,qBAAqB,SAAS,GAAG;AACnC,YAAAA,KAAI,SAAS,kBAAkB;AAAA,cAC7B;AAAA,YACF,CAAC,CAAC;AAAA,UACJ,WAAW,cAAc,WAAW,sBAAsB;AACxD,YAAAA,KAAI,SAAS,aAAa,aAAa,CAAC;AAAA,UAC1C;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AC3BO,SAAS,gBAA8G,OAAiE;AAC7L,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAMC,WAAU;AAAA,IACd,gBAAgB,aAAgF,GAAG,WAAW,iBAAiB;AAAA,EACjI;AACA,QAAM,uBAAuB,CAAC,WAAmB,OAAO,KAAK,WAAW,GAAG,WAAW,GAAG;AACzF,QAAM,kBAA4C,CAAC,sBAAsB,6BAA6B,gCAAgC,qBAAqB,4BAA4B,0BAA0B;AACjN,QAAM,aAAkH,WAAS;AAC/H,QAAIC,eAAc;AAClB,UAAM,gBAAgB,iBAAiB,MAAM,QAAQ;AACrD,UAAM,cAAc;AAAA,MAClB,GAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,gBAAgB,IAAI,WAAS,MAAM,WAAW,CAAC;AAChE,UAAM,wBAAwB,2BAA2B,WAAW;AACpE,UAAM,sBAAsB,wBAAwB,WAAW;AAC/D,WAAO,UAAQ;AACb,aAAO,YAAU;AACf,YAAI,CAAC,SAAS,MAAM,GAAG;AACrB,iBAAO,KAAK,MAAM;AAAA,QACpB;AACA,YAAI,CAACA,cAAa;AAChB,UAAAA,eAAc;AAEd,gBAAM,SAAS,IAAI,gBAAgB,qBAAqB,MAAM,CAAC;AAAA,QACjE;AACA,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH;AAAA,QACF;AACA,cAAM,cAAc,MAAM,SAAS;AACnC,cAAM,CAAC,sBAAsB,mBAAmB,IAAI,sBAAsB,QAAQ,eAAe,WAAW;AAC5G,YAAI;AACJ,YAAI,sBAAsB;AACxB,gBAAM,KAAK,MAAM;AAAA,QACnB,OAAO;AACL,gBAAM;AAAA,QACR;AACA,YAAI,CAAC,CAAC,MAAM,SAAS,EAAE,WAAW,GAAG;AAInC,8BAAoB,QAAQ,eAAe,WAAW;AACtD,cAAI,qBAAqB,MAAM,KAAK,QAAQ,mBAAmB,MAAM,GAAG;AAGtE,uBAAW,WAAW,UAAU;AAC9B,sBAAQ,QAAQ,eAAe,WAAW;AAAA,YAC5C;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAAD;AAAA,EACF;AACA,WAAS,aAAa,eAElB;AACF,WAAQ,MAAM,IAAI,UAAU,cAAc,YAAY,EAAiC,SAAS,cAAc,cAAqB;AAAA,MACjI,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACF;;;AC1DO,IAAM,iBAAgC,uBAAO;AAiU7C,IAAM,aAAa,CAAC;AAAA,EACzB,gBAAAE,kBAAiB;AACnB,IAAuB,CAAC,OAA2B;AAAA,EACjD,MAAM;AAAA,EACN,KAAK,KAAK;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAG,SAAS;AACV,kBAAc;AACd,eAAuC,kBAAkB;AACzD,UAAM,gBAAgC,SAAO;AAC3C,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,YAAI,CAAC,SAAS,SAAS,IAAI,IAAW,GAAG;AACvC,kBAAQ,MAAM,aAAa,IAAI,IAAI,gDAAgD;AAAA,QACrF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK;AAAA,MACjB;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,MAAM,CAAC;AAAA,IACT,CAAC;AACD,UAAM,YAAY,eAAe;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,gBAAAA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,YAAY;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,WAAW;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,aAAa;AAAA,MAC5B,oBAAoB,aAAa;AAAA,IACnC,CAAC;AACD,eAAW,IAAI,iBAAiB,YAAY;AAC5C,UAAM,mBAAmB,oBAAI,QAA2C;AACxE,UAAM,mBAAmB,CAAC,aAAuB;AAC/C,YAAM,QAAQ,oBAAoB,kBAAkB,UAAU,OAAO;AAAA,QACnE,sBAAsB,oBAAI,IAAI;AAAA,QAC9B,cAAc,oBAAI,IAAI;AAAA,QACtB,gBAAgB,oBAAI,IAAI;AAAA,QACxB,kBAAkB,oBAAI,IAAI;AAAA,MAC5B,EAAE;AACF,aAAO;AAAA,IACT;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,IAAI,MAAM,iBAAiB;AACtC,eAAW,KAAK;AAAA,MACd;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,MAAM;AAAA,MACN,eAAe,cAAc,YAAY;AACvC,cAAM,SAAS;AACf,cAAM,WAAW,OAAO,UAAU,YAAY,MAAM,CAAC;AACrD,YAAI,kBAAkB,UAAU,GAAG;AACjC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,mBAAmB,cAAc,UAAU;AAAA,YACnD,UAAU,mBAAmB,cAAc,UAAU;AAAA,UACvD,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AACA,YAAI,qBAAqB,UAAU,GAAG;AACpC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,sBAAsB;AAAA,YAC9B,UAAU,sBAAsB,YAAY;AAAA,UAC9C,GAAG,uBAAuB,eAAe,YAAY,CAAC;AAAA,QACxD;AACA,YAAI,0BAA0B,UAAU,GAAG;AACzC,qBAAW,UAAU;AAAA,YACnB,MAAM;AAAA,YACN,QAAQ,2BAA2B,cAAc,UAAU;AAAA,YAC3D,UAAU,2BAA2B,cAAc,UAAU;AAAA,UAC/D,GAAG,uBAAuB,YAAY,YAAY,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACniBO,IAAM,YAA2B,+BAAe,WAAW,CAAC;","names":["QueryStatus","isPlainObject","retry","updateListeners","arg","force","options","actions","createSelector","_formatProdErrorMessage","_formatProdErrorMessage2","key","queryArgsApi","_formatProdErrorMessage","getPreviousPageParam","_formatProdErrorMessage2","_formatProdErrorMessage","mwApi","mwApi","api","cacheKey","extra","api","extra","api","actions","initialized","createSelector"]}
Index: de_modules/@reduxjs/toolkit/dist/react/cjs/index.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-'use strict'
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./redux-toolkit-react.production.min.cjs')
-} else {
-  module.exports = require('./redux-toolkit-react.development.cjs')
-}
Index: de_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.development.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.development.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/react/index.ts
-var react_exports = {};
-__export(react_exports, {
-  createDynamicMiddleware: () => createDynamicMiddleware
-});
-module.exports = __toCommonJS(react_exports);
-__reExport(react_exports, require("@reduxjs/toolkit"), module.exports);
-
-// src/dynamicMiddleware/react/index.ts
-var import_toolkit = require("@reduxjs/toolkit");
-var import_react_redux = require("react-redux");
-var createDynamicMiddleware = () => {
-  const instance = (0, import_toolkit.createDynamicMiddleware)();
-  const createDispatchWithMiddlewareHookFactory = (context = import_react_redux.ReactReduxContext) => {
-    const useDispatch = context === import_react_redux.ReactReduxContext ? import_react_redux.useDispatch : (0, import_react_redux.createDispatchHook)(context);
-    function createDispatchWithMiddlewareHook2(...middlewares) {
-      instance.addMiddleware(...middlewares);
-      return useDispatch;
-    }
-    createDispatchWithMiddlewareHook2.withTypes = () => createDispatchWithMiddlewareHook2;
-    return createDispatchWithMiddlewareHook2;
-  };
-  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();
-  return {
-    ...instance,
-    createDispatchWithMiddlewareHookFactory,
-    createDispatchWithMiddlewareHook
-  };
-};
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  createDynamicMiddleware,
-  ...require("@reduxjs/toolkit")
-});
-//# sourceMappingURL=redux-toolkit-react.development.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.development.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.development.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/react/index.ts","../../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport * from '@reduxjs/toolkit';\nexport { createDynamicMiddleware } from '../dynamicMiddleware/react';\nexport type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index';","import type { DynamicMiddlewareInstance, GetDispatch, GetState, MiddlewareApiConfig, TSHelpersExtractDispatchExtensions } from '@reduxjs/toolkit';\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from 'react-redux';\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux';\nexport type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;\nexport type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {\n  <Middlewares extends [Middleware<any, State, DispatchType>, ...Middleware<any, State, DispatchType>[]]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;\n  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;\n};\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;\ntype ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {\n  createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;\n};\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n  const instance = cDM<State, DispatchType>();\n  const createDispatchWithMiddlewareHookFactory = (\n  // @ts-ignore\n  context: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null> = ReactReduxContext) => {\n    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);\n    function createDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares) {\n      instance.addMiddleware(...middlewares);\n      return useDispatch;\n    }\n    createDispatchWithMiddlewareHook.withTypes = () => createDispatchWithMiddlewareHook;\n    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  };\n  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();\n  return {\n    ...instance,\n    createDispatchWithMiddlewareHookFactory,\n    createDispatchWithMiddlewareHook\n  };\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAc,6BAHd;;;ACCA,qBAA+C;AAG/C,yBAAyF;AAYlF,IAAM,0BAA0B,MAAgJ;AACrL,QAAM,eAAW,eAAAA,yBAAyB;AAC1C,QAAM,0CAA0C,CAEhD,UAA2F,yCAAsB;AAC/G,UAAM,cAAc,YAAY,uCAAoB,mBAAAC,kBAAqB,uCAAmB,OAAO;AACnG,aAASC,qCAAgG,aAA0B;AACjI,eAAS,cAAc,GAAG,WAAW;AACrC,aAAO;AAAA,IACT;AACA,IAAAA,kCAAiC,YAAY,MAAMA;AACnD,WAAOA;AAAA,EACT;AACA,QAAM,mCAAmC,wCAAwC;AACjF,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF;AACF;","names":["cDM","useDefaultDispatch","createDispatchWithMiddlewareHook"]}
Index: de_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.production.min.cjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.production.min.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-"use strict";var s=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var x=(t,e)=>{for(var a in e)s(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of y(e))!M.call(t,i)&&i!==a&&s(t,i,{get:()=>e[i],enumerable:!(n=w(e,i))||n.enumerable});return t},r=(t,e,a)=>(d(t,e,"default"),a&&d(a,e,"default"));var m=t=>d(s({},"__esModule",{value:!0}),t);var o={};x(o,{createDynamicMiddleware:()=>D});module.exports=m(o);r(o,require("@reduxjs/toolkit"),module.exports);var h=require("@reduxjs/toolkit"),c=require("react-redux"),D=()=>{let t=(0,h.createDynamicMiddleware)(),e=(n=c.ReactReduxContext)=>{let i=n===c.ReactReduxContext?c.useDispatch:(0,c.createDispatchHook)(n);function p(...l){return t.addMiddleware(...l),i}return p.withTypes=()=>p,p},a=e();return{...t,createDispatchWithMiddlewareHookFactory:e,createDispatchWithMiddlewareHook:a}};0&&(module.exports={createDynamicMiddleware,...require("@reduxjs/toolkit")});
-//# sourceMappingURL=redux-toolkit-react.production.min.cjs.map
Index: de_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.production.min.cjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/cjs/redux-toolkit-react.production.min.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../../src/react/index.ts","../../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport * from '@reduxjs/toolkit';\nexport { createDynamicMiddleware } from '../dynamicMiddleware/react';\nexport type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index';","import type { DynamicMiddlewareInstance, GetDispatch, GetState, MiddlewareApiConfig, TSHelpersExtractDispatchExtensions } from '@reduxjs/toolkit';\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from 'react-redux';\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux';\nexport type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;\nexport type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {\n  <Middlewares extends [Middleware<any, State, DispatchType>, ...Middleware<any, State, DispatchType>[]]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;\n  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;\n};\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;\ntype ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {\n  createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;\n};\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n  const instance = cDM<State, DispatchType>();\n  const createDispatchWithMiddlewareHookFactory = (\n  // @ts-ignore\n  context: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null> = ReactReduxContext) => {\n    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);\n    function createDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares) {\n      instance.addMiddleware(...middlewares);\n      return useDispatch;\n    }\n    createDispatchWithMiddlewareHook.withTypes = () => createDispatchWithMiddlewareHook;\n    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  };\n  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();\n  return {\n    ...instance,\n    createDispatchWithMiddlewareHookFactory,\n    createDispatchWithMiddlewareHook\n  };\n};"],"mappings":"2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAGAI,EAAAJ,EAAc,4BAHd,gBCCA,IAAAK,EAA+C,4BAG/CC,EAAyF,uBAY5EC,EAA0B,IAAgJ,CACrL,IAAMC,KAAW,EAAAC,yBAAyB,EACpCC,EAA0C,CAEhDC,EAA2F,sBAAsB,CAC/G,IAAMC,EAAcD,IAAY,oBAAoB,EAAAE,eAAqB,sBAAmBF,CAAO,EACnG,SAASG,KAAgGC,EAA0B,CACjI,OAAAP,EAAS,cAAc,GAAGO,CAAW,EAC9BH,CACT,CACA,OAAAE,EAAiC,UAAY,IAAMA,EAC5CA,CACT,EACMA,EAAmCJ,EAAwC,EACjF,MAAO,CACL,GAAGF,EACH,wCAAAE,EACA,iCAAAI,CACF,CACF","names":["react_exports","__export","createDynamicMiddleware","__toCommonJS","__reExport","import_toolkit","import_react_redux","createDynamicMiddleware","instance","cDM","createDispatchWithMiddlewareHookFactory","context","useDispatch","useDefaultDispatch","createDispatchWithMiddlewareHook","middlewares"]}
Index: de_modules/@reduxjs/toolkit/dist/react/index.d.mts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { DynamicMiddlewareInstance, TSHelpersExtractDispatchExtensions, MiddlewareApiConfig, GetState, GetDispatch } from '@reduxjs/toolkit';
-export * from '@reduxjs/toolkit';
-import { Context } from 'react';
-import { ReactReduxContextValue } from 'react-redux';
-import { Dispatch, UnknownAction, Action, Middleware } from 'redux';
-
-type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;
-type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    <Middlewares extends [
-        Middleware<any, State, DispatchType>,
-        ...Middleware<any, State, DispatchType>[]
-    ]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;
-};
-type ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;
-type ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {
-    createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;
-    createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;
-};
-declare const createDynamicMiddleware: <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>() => ReactDynamicMiddlewareInstance<State, DispatchType>;
-
-export { type CreateDispatchWithMiddlewareHook, createDynamicMiddleware };
Index: de_modules/@reduxjs/toolkit/dist/react/index.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { DynamicMiddlewareInstance, TSHelpersExtractDispatchExtensions, MiddlewareApiConfig, GetState, GetDispatch } from '@reduxjs/toolkit';
-export * from '@reduxjs/toolkit';
-import { Context } from 'react';
-import { ReactReduxContextValue } from 'react-redux';
-import { Dispatch, UnknownAction, Action, Middleware } from 'redux';
-
-type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;
-type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {
-    <Middlewares extends [
-        Middleware<any, State, DispatchType>,
-        ...Middleware<any, State, DispatchType>[]
-    ]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;
-    withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;
-};
-type ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;
-type ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {
-    createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;
-    createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;
-};
-declare const createDynamicMiddleware: <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>() => ReactDynamicMiddlewareInstance<State, DispatchType>;
-
-export { type CreateDispatchWithMiddlewareHook, createDynamicMiddleware };
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.browser.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export*from"@reduxjs/toolkit";import{createDynamicMiddleware as p}from"@reduxjs/toolkit";import{createDispatchHook as d,ReactReduxContext as c,useDispatch as s}from"react-redux";var h=()=>{let t=p(),a=(i=c)=>{let o=i===c?s:d(i);function e(...r){return t.addMiddleware(...r),o}return e.withTypes=()=>e,e},n=a();return{...t,createDispatchWithMiddlewareHookFactory:a,createDispatchWithMiddlewareHook:n}};export{h as createDynamicMiddleware};
-//# sourceMappingURL=redux-toolkit-react.browser.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.browser.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/react/index.ts","../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport * from '@reduxjs/toolkit';\nexport { createDynamicMiddleware } from '../dynamicMiddleware/react';\nexport type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index';","import type { DynamicMiddlewareInstance, GetDispatch, GetState, MiddlewareApiConfig, TSHelpersExtractDispatchExtensions } from '@reduxjs/toolkit';\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from 'react-redux';\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux';\nexport type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;\nexport type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {\n  <Middlewares extends [Middleware<any, State, DispatchType>, ...Middleware<any, State, DispatchType>[]]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;\n  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;\n};\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;\ntype ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {\n  createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;\n};\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n  const instance = cDM<State, DispatchType>();\n  const createDispatchWithMiddlewareHookFactory = (\n  // @ts-ignore\n  context: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null> = ReactReduxContext) => {\n    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);\n    function createDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares) {\n      instance.addMiddleware(...middlewares);\n      return useDispatch;\n    }\n    createDispatchWithMiddlewareHook.withTypes = () => createDispatchWithMiddlewareHook;\n    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  };\n  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();\n  return {\n    ...instance,\n    createDispatchWithMiddlewareHookFactory,\n    createDispatchWithMiddlewareHook\n  };\n};"],"mappings":"AAGA,WAAc,mBCFd,OAAS,2BAA2BA,MAAW,mBAG/C,OAAS,sBAAAC,EAAoB,qBAAAC,EAAmB,eAAeC,MAA0B,cAYlF,IAAMC,EAA0B,IAAgJ,CACrL,IAAMC,EAAWL,EAAyB,EACpCM,EAA0C,CAEhDC,EAA2FL,IAAsB,CAC/G,IAAMM,EAAcD,IAAYL,EAAoBC,EAAqBF,EAAmBM,CAAO,EACnG,SAASE,KAAgGC,EAA0B,CACjI,OAAAL,EAAS,cAAc,GAAGK,CAAW,EAC9BF,CACT,CACA,OAAAC,EAAiC,UAAY,IAAMA,EAC5CA,CACT,EACMA,EAAmCH,EAAwC,EACjF,MAAO,CACL,GAAGD,EACH,wCAAAC,EACA,iCAAAG,CACF,CACF","names":["cDM","createDispatchHook","ReactReduxContext","useDefaultDispatch","createDynamicMiddleware","instance","createDispatchWithMiddlewareHookFactory","context","useDispatch","createDispatchWithMiddlewareHook","middlewares"]}
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.legacy-esm.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-
-// src/react/index.ts
-export * from "@reduxjs/toolkit";
-
-// src/dynamicMiddleware/react/index.ts
-import { createDynamicMiddleware as cDM } from "@reduxjs/toolkit";
-import { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from "react-redux";
-var createDynamicMiddleware = () => {
-  const instance = cDM();
-  const createDispatchWithMiddlewareHookFactory = (context = ReactReduxContext) => {
-    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);
-    function createDispatchWithMiddlewareHook2(...middlewares) {
-      instance.addMiddleware(...middlewares);
-      return useDispatch;
-    }
-    createDispatchWithMiddlewareHook2.withTypes = () => createDispatchWithMiddlewareHook2;
-    return createDispatchWithMiddlewareHook2;
-  };
-  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();
-  return __spreadProps(__spreadValues({}, instance), {
-    createDispatchWithMiddlewareHookFactory,
-    createDispatchWithMiddlewareHook
-  });
-};
-export {
-  createDynamicMiddleware
-};
-//# sourceMappingURL=redux-toolkit-react.legacy-esm.js.map
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.legacy-esm.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/react/index.ts","../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport * from '@reduxjs/toolkit';\nexport { createDynamicMiddleware } from '../dynamicMiddleware/react';\nexport type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index';","import type { DynamicMiddlewareInstance, GetDispatch, GetState, MiddlewareApiConfig, TSHelpersExtractDispatchExtensions } from '@reduxjs/toolkit';\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from 'react-redux';\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux';\nexport type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;\nexport type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {\n  <Middlewares extends [Middleware<any, State, DispatchType>, ...Middleware<any, State, DispatchType>[]]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;\n  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;\n};\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;\ntype ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {\n  createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;\n};\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n  const instance = cDM<State, DispatchType>();\n  const createDispatchWithMiddlewareHookFactory = (\n  // @ts-ignore\n  context: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null> = ReactReduxContext) => {\n    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);\n    function createDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares) {\n      instance.addMiddleware(...middlewares);\n      return useDispatch;\n    }\n    createDispatchWithMiddlewareHook.withTypes = () => createDispatchWithMiddlewareHook;\n    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  };\n  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();\n  return {\n    ...instance,\n    createDispatchWithMiddlewareHookFactory,\n    createDispatchWithMiddlewareHook\n  };\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGA,cAAc;;;ACFd,SAAS,2BAA2B,WAAW;AAG/C,SAAS,oBAAoB,mBAAmB,eAAe,0BAA0B;AAYlF,IAAM,0BAA0B,MAAgJ;AACrL,QAAM,WAAW,IAAyB;AAC1C,QAAM,0CAA0C,CAEhD,UAA2F,sBAAsB;AAC/G,UAAM,cAAc,YAAY,oBAAoB,qBAAqB,mBAAmB,OAAO;AACnG,aAASA,qCAAgG,aAA0B;AACjI,eAAS,cAAc,GAAG,WAAW;AACrC,aAAO;AAAA,IACT;AACA,IAAAA,kCAAiC,YAAY,MAAMA;AACnD,WAAOA;AAAA,EACT;AACA,QAAM,mCAAmC,wCAAwC;AACjF,SAAO,iCACF,WADE;AAAA,IAEL;AAAA,IACA;AAAA,EACF;AACF;","names":["createDispatchWithMiddlewareHook"]}
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.modern.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.modern.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-// src/react/index.ts
-export * from "@reduxjs/toolkit";
-
-// src/dynamicMiddleware/react/index.ts
-import { createDynamicMiddleware as cDM } from "@reduxjs/toolkit";
-import { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from "react-redux";
-var createDynamicMiddleware = () => {
-  const instance = cDM();
-  const createDispatchWithMiddlewareHookFactory = (context = ReactReduxContext) => {
-    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);
-    function createDispatchWithMiddlewareHook2(...middlewares) {
-      instance.addMiddleware(...middlewares);
-      return useDispatch;
-    }
-    createDispatchWithMiddlewareHook2.withTypes = () => createDispatchWithMiddlewareHook2;
-    return createDispatchWithMiddlewareHook2;
-  };
-  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();
-  return {
-    ...instance,
-    createDispatchWithMiddlewareHookFactory,
-    createDispatchWithMiddlewareHook
-  };
-};
-export {
-  createDynamicMiddleware
-};
-//# sourceMappingURL=redux-toolkit-react.modern.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.modern.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/react/redux-toolkit-react.modern.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/react/index.ts","../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from '@reduxjs/toolkit';\nexport * from '@reduxjs/toolkit';\nexport { createDynamicMiddleware } from '../dynamicMiddleware/react';\nexport type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index';","import type { DynamicMiddlewareInstance, GetDispatch, GetState, MiddlewareApiConfig, TSHelpersExtractDispatchExtensions } from '@reduxjs/toolkit';\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit';\nimport type { Context } from 'react';\nimport type { ReactReduxContextValue } from 'react-redux';\nimport { createDispatchHook, ReactReduxContext, useDispatch as useDefaultDispatch } from 'react-redux';\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux';\nexport type UseDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[] = [], State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType;\nexport type CreateDispatchWithMiddlewareHook<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = {\n  <Middlewares extends [Middleware<any, State, DispatchType>, ...Middleware<any, State, DispatchType>[]]>(...middlewares: Middlewares): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>;\n  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): CreateDispatchWithMiddlewareHook<GetState<MiddlewareConfig>, GetDispatch<MiddlewareConfig>>;\n};\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> = DispatchType extends Dispatch<infer Action> ? Action : never;\ntype ReactDynamicMiddlewareInstance<State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> = DynamicMiddlewareInstance<State, DispatchType> & {\n  createDispatchWithMiddlewareHookFactory: (context?: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null>) => CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<State, DispatchType>;\n};\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n  const instance = cDM<State, DispatchType>();\n  const createDispatchWithMiddlewareHookFactory = (\n  // @ts-ignore\n  context: Context<ReactReduxContextValue<State, ActionFromDispatch<DispatchType>> | null> = ReactReduxContext) => {\n    const useDispatch = context === ReactReduxContext ? useDefaultDispatch : createDispatchHook(context);\n    function createDispatchWithMiddlewareHook<Middlewares extends Middleware<any, State, DispatchType>[]>(...middlewares: Middlewares) {\n      instance.addMiddleware(...middlewares);\n      return useDispatch;\n    }\n    createDispatchWithMiddlewareHook.withTypes = () => createDispatchWithMiddlewareHook;\n    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<State, DispatchType>;\n  };\n  const createDispatchWithMiddlewareHook = createDispatchWithMiddlewareHookFactory();\n  return {\n    ...instance,\n    createDispatchWithMiddlewareHookFactory,\n    createDispatchWithMiddlewareHook\n  };\n};"],"mappings":";AAGA,cAAc;;;ACFd,SAAS,2BAA2B,WAAW;AAG/C,SAAS,oBAAoB,mBAAmB,eAAe,0BAA0B;AAYlF,IAAM,0BAA0B,MAAgJ;AACrL,QAAM,WAAW,IAAyB;AAC1C,QAAM,0CAA0C,CAEhD,UAA2F,sBAAsB;AAC/G,UAAM,cAAc,YAAY,oBAAoB,qBAAqB,mBAAmB,OAAO;AACnG,aAASA,qCAAgG,aAA0B;AACjI,eAAS,cAAc,GAAG,WAAW;AACrC,aAAO;AAAA,IACT;AACA,IAAAA,kCAAiC,YAAY,MAAMA;AACnD,WAAOA;AAAA,EACT;AACA,QAAM,mCAAmC,wCAAwC;AACjF,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF;AACF;","names":["createDispatchWithMiddlewareHook"]}
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.browser.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export*from"redux";import{freeze as wa,original as Pa}from"immer";import{current as G,isDraft as v,produce as F,isDraftable as Q,setUseStrictIteration as ln}from"immer";import{createSelector as Ia,lruMemoize as va}from"reselect";import{createSelectorCreator as pe,weakMapMemoize as fe}from"reselect";var Ie=(...e)=>{let t=pe(...e),r=Object.assign((...n)=>{let a=t(...n),o=(i,...h)=>a(v(i)?G(i):i,...h);return Object.assign(o,a),o},{withTypes:()=>r});return r},ye=Ie(fe);import{createStore as ve,combineReducers as De,applyMiddleware as Oe,compose as V,isPlainObject as Y,isAction as B}from"redux";var Ne=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?V:V.apply(null,arguments)},kn=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}};import{thunk as kt,withExtraArgument as gt}from"redux-thunk";var Z=e=>e&&typeof e.match=="function";function P(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(C(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>B(n)&&n.type===e,r}function he(e){return typeof e=="function"&&"type"in e&&Z(e)}function Ae(e){return B(e)&&Object.keys(e).every(yt)}function yt(e){return["type","payload","error","meta"].indexOf(e)>-1}function ht(e){let t=e?`${e}`.split("/"):[],r=t[t.length-1]||"actionCreator";return`Detected an action creator with type "${e||"unknown"}" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${r}())\` instead of \`dispatch(${r})\`. This is necessary even if the action has no payload.`}function At(e={}){return()=>r=>n=>r(n)}var L=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Te(e){return Q(e)?F(e,()=>{}):e}function M(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Tt(e){return typeof e!="object"||e==null||Object.isFrozen(e)}function mt(e={}){if(1)return()=>n=>a=>n(a);var t,r}function je(e){let t=typeof e;return e==null||t==="string"||t==="boolean"||t==="number"||Array.isArray(e)||Y(e)}function Fe(e,t="",r=je,n,a=[],o){let i;if(!r(e))return{keyPath:t||"<root>",value:e};if(typeof e!="object"||e===null||o?.has(e))return!1;let h=n!=null?n(e):Object.entries(e),s=a.length>0;for(let[c,y]of h){let A=t?t+"."+c:c;if(!(s&&a.some(f=>f instanceof RegExp?f.test(A):A===f))){if(!r(y))return{keyPath:A,value:y};if(typeof y=="object"&&(i=Fe(y,A,r,n,a,o),i))return i}}return o&&Ve(e)&&o.add(e),!1}function Ve(e){if(!Object.isFrozen(e))return!1;for(let t of Object.values(e))if(!(typeof t!="object"||t===null)&&!Ve(t))return!1;return!0}function St(e={}){return()=>t=>r=>t(r)}function xt(e){return typeof e=="boolean"}var Le=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:o=!0}=t??{},i=new L;return r&&(xt(r)?i.push(kt):i.push(gt(r.extraArgument))),i};var me="RTK_autoBatch",Ct=()=>e=>({payload:e,meta:{[me]:!0}}),_e=e=>t=>{setTimeout(t,e)},Se=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),a=!0,o=!1,i=!1,h=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:_e(10):e.type==="callback"?e.queueNotification:_e(e.timeout),c=()=>{i=!1,o&&(o=!1,h.forEach(y=>y()))};return Object.assign({},n,{subscribe(y){let A=()=>a&&y(),S=n.subscribe(A);return h.add(y),()=>{S(),h.delete(y)}},dispatch(y){try{return a=!y?.meta?.[me],o=!a,o&&(i||(i=!0,s(c))),n.dispatch(y)}finally{a=!0}}})};var Ue=e=>function(r){let{autoBatch:n=!0}=r??{},a=new L(e);return n&&a.push(Se(typeof n=="object"?n:void 0)),a};function Et(e){let t=Le(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:o=!0,preloadedState:i=void 0,enhancers:h=void 0}=e||{},s;if(typeof r=="function")s=r;else if(Y(r))s=De(r);else throw new Error(C(1));let c;typeof n=="function"?c=n(t):c=t();let y=V;a&&(y=Ne({trace:!1,...typeof a=="object"&&a}));let A=Oe(...c),S=Ue(A),f=typeof h=="function"?h(S):S(),d=y(...f);return ve(s,i,d)}function ee(e){let t={},r=[],n,a={addCase(o,i){let h=typeof o=="string"?o:o.type;if(!h)throw new Error(C(28));if(h in t)throw new Error(C(29));return t[h]=i,a},addAsyncThunk(o,i){return i.pending&&(t[o.pending.type]=i.pending),i.rejected&&(t[o.rejected.type]=i.rejected),i.fulfilled&&(t[o.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:o.settled,reducer:i.settled}),a},addMatcher(o,i){return r.push({matcher:o,reducer:i}),a},addDefaultCase(o){return n=o,a}};return e(a),[t,r,n]}function Rt(e){return typeof e=="function"}function ke(e,t){let[r,n,a]=ee(t),o;if(Rt(e))o=()=>Te(e());else{let h=Te(e);o=()=>h}function i(h=o(),s){let c=[r[s.type],...n.filter(({matcher:y})=>y(s)).map(({reducer:y})=>y)];return c.filter(y=>!!y).length===0&&(c=[a]),c.reduce((y,A)=>{if(A)if(v(y)){let f=A(y,s);return f===void 0?y:f}else{if(Q(y))return F(y,S=>A(S,s));{let S=A(y,s);if(S===void 0){if(y===null)return y;throw Error("A case reducer on a non-draftable value must not return undefined")}return S}}return y},h)}return i.getInitialState=o,i}var We=(e,t)=>Z(e)?e.match(t):e(t);function _(...e){return t=>e.some(r=>We(r,t))}function K(...e){return t=>e.every(r=>We(r,t))}function ne(e,t){if(!e||!e.meta)return!1;let r=typeof e.meta.requestId=="string",n=t.indexOf(e.meta.requestStatus)>-1;return r&&n}function H(e){return typeof e[0]=="function"&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function ze(...e){return e.length===0?t=>ne(t,["pending"]):H(e)?_(...e.map(t=>t.pending)):ze()(e[0])}function te(...e){return e.length===0?t=>ne(t,["rejected"]):H(e)?_(...e.map(t=>t.rejected)):te()(e[0])}function Ge(...e){let t=r=>r&&r.meta&&r.meta.rejectedWithValue;return e.length===0?K(te(...e),t):H(e)?K(te(...e),t):Ge()(e[0])}function Be(...e){return e.length===0?t=>ne(t,["fulfilled"]):H(e)?_(...e.map(t=>t.fulfilled)):Be()(e[0])}function Ke(...e){return e.length===0?t=>ne(t,["pending","fulfilled","rejected"]):H(e)?_(...e.flatMap(t=>[t.pending,t.rejected,t.fulfilled])):Ke()(e[0])}var wt="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",D=(e=21)=>{let t="",r=e;for(;r--;)t+=wt[Math.random()*64|0];return t};var Pt=["name","message","stack","code"],q=class{constructor(t,r){this.payload=t;this.meta=r}_type},re=class{constructor(t,r){this.payload=t;this.meta=r}_type},qe=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of Pt)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},He="External signal was aborted",ge=(()=>{function e(t,r,n){let a=P(t+"/fulfilled",(s,c,y,A)=>({payload:s,meta:{...A||{},arg:y,requestId:c,requestStatus:"fulfilled"}})),o=P(t+"/pending",(s,c,y)=>({payload:void 0,meta:{...y||{},arg:c,requestId:s,requestStatus:"pending"}})),i=P(t+"/rejected",(s,c,y,A,S)=>({payload:A,error:(n&&n.serializeError||qe)(s||"Rejected"),meta:{...S||{},arg:y,requestId:c,rejectedWithValue:!!A,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function h(s,{signal:c}={}){return(y,A,S)=>{let f=n?.idGenerator?n.idGenerator(s):D(),d=new AbortController,l,u;function p(T){u=T,d.abort()}c&&(c.aborted?p(He):c.addEventListener("abort",()=>p(He),{once:!0}));let g=async function(){let T;try{let k=n?.condition?.(s,{getState:A,extra:S});if(Mt(k)&&(k=await k),k===!1||d.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let R=new Promise((x,E)=>{l=()=>{E({name:"AbortError",message:u||"Aborted"})},d.signal.addEventListener("abort",l,{once:!0})});y(o(f,s,n?.getPendingMeta?.({requestId:f,arg:s},{getState:A,extra:S}))),T=await Promise.race([R,Promise.resolve(r(s,{dispatch:y,getState:A,extra:S,requestId:f,signal:d.signal,abort:p,rejectWithValue:(x,E)=>new q(x,E),fulfillWithValue:(x,E)=>new re(x,E)})).then(x=>{if(x instanceof q)throw x;return x instanceof re?a(x.payload,f,s,x.meta):a(x,f,s)})])}catch(k){T=k instanceof q?i(null,f,s,k.payload,k.meta):i(k,f,s)}finally{l&&d.signal.removeEventListener("abort",l)}return n&&!n.dispatchConditionRejection&&i.match(T)&&T.meta.condition||y(T),T}();return Object.assign(g,{abort:p,requestId:f,arg:s,unwrap(){return g.then($e)}})}}return Object.assign(h,{pending:o,rejected:i,fulfilled:a,settled:_(i,a),typePrefix:t})}return e.withTypes=()=>e,e})();function $e(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Mt(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var Xe=Symbol.for("rtk-slice-createasyncthunk"),bt={[Xe]:ge},Je=(n=>(n.reducer="reducer",n.reducerWithPrepare="reducerWithPrepare",n.asyncThunk="asyncThunk",n))(Je||{});function It(e,t){return`${e}/${t}`}function Qe({creators:e}={}){let t=e?.asyncThunk?.[Xe];return function(n){let{name:a,reducerPath:o=a}=n;if(!a)throw new Error(C(11));let i=(typeof n.reducers=="function"?n.reducers(Ot()):n.reducers)||{},h=Object.keys(i),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},c={addCase(T,m){let k=typeof T=="string"?T:T.type;if(!k)throw new Error(C(12));if(k in s.sliceCaseReducersByType)throw new Error(C(13));return s.sliceCaseReducersByType[k]=m,c},addMatcher(T,m){return s.sliceMatchers.push({matcher:T,reducer:m}),c},exposeAction(T,m){return s.actionCreators[T]=m,c},exposeCaseReducer(T,m){return s.sliceCaseReducersByName[T]=m,c}};h.forEach(T=>{let m=i[T],k={reducerName:T,type:It(a,T),createNotation:typeof n.reducers=="function"};jt(m)?Vt(k,m,c,t):Nt(k,m,c)});function y(){let[T={},m=[],k=void 0]=typeof n.extraReducers=="function"?ee(n.extraReducers):[n.extraReducers],R={...T,...s.sliceCaseReducersByType};return ke(n.initialState,x=>{for(let E in R)x.addCase(E,R[E]);for(let E of s.sliceMatchers)x.addMatcher(E.matcher,E.reducer);for(let E of m)x.addMatcher(E.matcher,E.reducer);k&&x.addDefaultCase(k)})}let A=T=>T,S=new Map,f=new WeakMap,d;function l(T,m){return d||(d=y()),d(T,m)}function u(){return d||(d=y()),d.getInitialState()}function p(T,m=!1){function k(x){let E=x[T];return typeof E>"u"&&m&&(E=M(f,k,u)),E}function R(x=A){let E=M(S,m,()=>new WeakMap);return M(E,x,()=>{let z={};for(let[J,j]of Object.entries(n.selectors??{}))z[J]=vt(j,x,()=>M(f,x,u),m);return z})}return{reducerPath:T,getSelectors:R,get selectors(){return R(k)},selectSlice:k}}let g={name:a,reducer:l,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:u,...p(o),injectInto(T,{reducerPath:m,...k}={}){let R=m??o;return T.inject({reducerPath:R,reducer:l},k),{...g,...p(R,!0)}}};return g}}function vt(e,t,r,n){function a(o,...i){let h=t(o);return typeof h>"u"&&n&&(h=r()),e(h,...i)}return a.unwrapped=e,a}var Dt=Qe();function Ot(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function Nt({type:e,reducerName:t,createNotation:r},n,a){let o,i;if("reducer"in n){if(r&&!Ft(n))throw new Error(C(17));o=n.reducer,i=n.prepare}else o=n;a.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,i?P(e,i):P(e))}function jt(e){return e._reducerDefinitionType==="asyncThunk"}function Ft(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Vt({type:e,reducerName:t},r,n,a){if(!a)throw new Error(C(18));let{payloadCreator:o,fulfilled:i,pending:h,rejected:s,settled:c,options:y}=r,A=a(e,o,y);n.exposeAction(t,A),i&&n.addCase(A.fulfilled,i),h&&n.addCase(A.pending,h),s&&n.addCase(A.rejected,s),c&&n.addMatcher(A.settled,c),n.exposeCaseReducer(t,{fulfilled:i||ae,pending:h||ae,rejected:s||ae,settled:c||ae})}function ae(){}function Lt(){return{ids:[],entities:{}}}function Ye(e){function t(r={},n){let a=Object.assign(Lt(),r);return n?e.setAll(a,n):a}return{getInitialState:t}}function Ze(){function e(t,r={}){let{createSelector:n=ye}=r,a=A=>A.ids,o=A=>A.entities,i=n(a,o,(A,S)=>A.map(f=>S[f])),h=(A,S)=>S,s=(A,S)=>A[S],c=n(a,A=>A.length);if(!t)return{selectIds:a,selectEntities:o,selectAll:i,selectTotal:c,selectById:n(o,h,s)};let y=n(t,o);return{selectIds:n(t,a),selectEntities:y,selectAll:n(t,i),selectTotal:n(t,c),selectById:n(y,h,s)}}return{getSelectors:e}}var _t=v;function et(e){let t=w((r,n)=>e(n));return function(n){return t(n,void 0)}}function w(e){return function(r,n){function a(i){return Ae(i)}let o=i=>{a(n)?e(n.payload,i):e(n,i)};return _t(r)?(o(r),r):F(r,o)}}function O(e,t){return t(e)}function b(e){return Array.isArray(e)||(e=Object.values(e)),e}function $(e){return v(e)?G(e):e}function oe(e,t,r){e=b(e);let n=$(r.ids),a=new Set(n),o=[],i=new Set([]),h=[];for(let s of e){let c=O(s,t);a.has(c)||i.has(c)?h.push({id:c,changes:s}):(i.add(c),o.push(s))}return[o,h,n]}function ie(e){function t(d,l){let u=O(d,e);u in l.entities||(l.ids.push(u),l.entities[u]=d)}function r(d,l){d=b(d);for(let u of d)t(u,l)}function n(d,l){let u=O(d,e);u in l.entities||l.ids.push(u),l.entities[u]=d}function a(d,l){d=b(d);for(let u of d)n(u,l)}function o(d,l){d=b(d),l.ids=[],l.entities={},r(d,l)}function i(d,l){return h([d],l)}function h(d,l){let u=!1;d.forEach(p=>{p in l.entities&&(delete l.entities[p],u=!0)}),u&&(l.ids=l.ids.filter(p=>p in l.entities))}function s(d){Object.assign(d,{ids:[],entities:{}})}function c(d,l,u){let p=u.entities[l.id];if(p===void 0)return!1;let g=Object.assign({},p,l.changes),T=O(g,e),m=T!==l.id;return m&&(d[l.id]=T,delete u.entities[l.id]),u.entities[T]=g,m}function y(d,l){return A([d],l)}function A(d,l){let u={},p={};d.forEach(T=>{T.id in l.entities&&(p[T.id]={id:T.id,changes:{...p[T.id]?.changes,...T.changes}})}),d=Object.values(p),d.length>0&&d.filter(m=>c(u,m,l)).length>0&&(l.ids=Object.values(l.entities).map(m=>O(m,e)))}function S(d,l){return f([d],l)}function f(d,l){let[u,p]=oe(d,e,l);r(u,l),A(p,l)}return{removeAll:et(s),addOne:w(t),addMany:w(r),setOne:w(n),setMany:w(a),setAll:w(o),updateOne:w(y),updateMany:w(A),upsertOne:w(S),upsertMany:w(f),removeOne:w(i),removeMany:w(h)}}function Ut(e,t,r){let n=0,a=e.length;for(;n<a;){let o=n+a>>>1,i=e[o];r(t,i)>=0?n=o+1:a=o}return n}function Wt(e,t,r){let n=Ut(e,t,r);return e.splice(n,0,t),e}function tt(e,t){let{removeOne:r,removeMany:n,removeAll:a}=ie(e);function o(u,p){return i([u],p)}function i(u,p,g){u=b(u);let T=new Set(g??$(p.ids)),m=new Set,k=u.filter(R=>{let x=O(R,e),E=!m.has(x);return E&&m.add(x),!T.has(x)&&E});k.length!==0&&l(p,k)}function h(u,p){return s([u],p)}function s(u,p){let g={};if(u=b(u),u.length!==0){for(let T of u){let m=e(T);g[m]=T,delete p.entities[m]}u=b(g),l(p,u)}}function c(u,p){u=b(u),p.entities={},p.ids=[],i(u,p,[])}function y(u,p){return A([u],p)}function A(u,p){let g=!1,T=!1;for(let m of u){let k=p.entities[m.id];if(!k)continue;g=!0,Object.assign(k,m.changes);let R=e(k);if(m.id!==R){T=!0,delete p.entities[m.id];let x=p.ids.indexOf(m.id);p.ids[x]=R,p.entities[R]=k}}g&&l(p,[],g,T)}function S(u,p){return f([u],p)}function f(u,p){let[g,T,m]=oe(u,e,p);g.length&&i(g,p,m),T.length&&A(T,p)}function d(u,p){if(u.length!==p.length)return!1;for(let g=0;g<u.length;g++)if(u[g]!==p[g])return!1;return!0}let l=(u,p,g,T)=>{let m=$(u.entities),k=$(u.ids),R=u.entities,x=k;T&&(x=new Set(k));let E=[];for(let j of x){let be=m[j];be&&E.push(be)}let z=E.length===0;for(let j of p)R[e(j)]=j,z||Wt(E,j,t);z?E=p.slice().sort(t):g&&E.sort(t);let J=E.map(e);d(k,J)||(u.ids=J)};return{removeOne:r,removeMany:n,removeAll:a,addOne:w(o),updateOne:w(y),upsertOne:w(S),setOne:w(h),setMany:w(s),setAll:w(c),addMany:w(i),updateMany:w(A),upsertMany:w(f)}}function zt(e={}){let{selectId:t,sortComparer:r}={sortComparer:!1,selectId:i=>i.id,...e},n=r?tt(t,r):ie(t),a=Ye(n),o=Ze();return{selectId:t,sortComparer:r,...a,...o,...n}}var Gt="task",nt="listener",rt="completed",xe="cancelled",at=`task-${xe}`,ot=`task-${rt}`,se=`${nt}-${xe}`,it=`${nt}-${rt}`,I=class{constructor(t){this.code=t;this.message=`${Gt} ${xe} (reason: ${t})`}name="TaskAbortError";message};var ce=(e,t)=>{if(typeof e!="function")throw new TypeError(C(32))},U=()=>{},de=(e,t=U)=>(e.catch(t),e),ue=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t));var N=e=>{if(e.aborted)throw new I(e.reason)};function Ce(e,t){let r=U;return new Promise((n,a)=>{let o=()=>a(new I(e.reason));if(e.aborted){o();return}r=ue(e,o),t.finally(()=>r()).then(n,a)}).finally(()=>{r=U})}var st=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof I?"cancelled":"rejected",error:r}}finally{t?.()}},X=e=>t=>de(Ce(e,t).then(r=>(N(e),r))),Ee=e=>{let t=X(e);return r=>t(new Promise(n=>setTimeout(n,r)))};var{assign:W}=Object,ct={},le="listenerMiddleware",Bt=(e,t)=>{let r=n=>ue(e,()=>n.abort(e.reason));return(n,a)=>{ce(n,"taskExecutor");let o=new AbortController;r(o);let i=st(async()=>{N(e),N(o.signal);let h=await n({pause:X(o.signal),delay:Ee(o.signal),signal:o.signal});return N(o.signal),h},()=>o.abort(ot));return a?.autoJoin&&t.push(i.catch(U)),{result:X(e)(i),cancel(){o.abort(at)}}}},Kt=(e,t)=>{let r=async(n,a)=>{N(t);let o=()=>{},h=[new Promise((s,c)=>{let y=e({predicate:n,effect:(A,S)=>{S.unsubscribe(),s([A,S.getState(),S.getOriginalState()])}});o=()=>{y(),c()}})];a!=null&&h.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await Ce(t,Promise.race(h));return N(t),s}finally{o()}};return(n,a)=>de(r(n,a))},lt=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:o}=e;if(t)a=P(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(C(21));return ce(o,"options.listener"),{predicate:a,type:t,effect:o}},pt=W(e=>{let{type:t,predicate:r,effect:n}=lt(e);return{id:D(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(C(22))}}},{withTypes:()=>pt}),dt=(e,t)=>{let{type:r,effect:n,predicate:a}=lt(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===a)&&o.effect===n)},Re=e=>{e.pending.forEach(t=>{t.abort(se)})},Ht=(e,t)=>()=>{for(let r of t.keys())Re(r);e.clear()},ut=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},we=W(P(`${le}/add`),{withTypes:()=>we}),ft=P(`${le}/removeAll`),Pe=W(P(`${le}/remove`),{withTypes:()=>Pe}),qt=(...e)=>{console.error(`${le}/error`,...e)},$t=(e={})=>{let t=new Map,r=new Map,n=f=>{let d=r.get(f)??0;r.set(f,d+1)},a=f=>{let d=r.get(f)??1;d===1?r.delete(f):r.set(f,d-1)},{extra:o,onError:i=qt}=e;ce(i,"onError");let h=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),d=>{f.unsubscribe(),d?.cancelActive&&Re(f)}),s=f=>{let d=dt(t,f)??pt(f);return h(d)};W(s,{withTypes:()=>s});let c=f=>{let d=dt(t,f);return d&&(d.unsubscribe(),f.cancelActive&&Re(d)),!!d};W(c,{withTypes:()=>c});let y=async(f,d,l,u)=>{let p=new AbortController,g=Kt(s,p.signal),T=[];try{f.pending.add(p),n(f),await Promise.resolve(f.effect(d,W({},l,{getOriginalState:u,condition:(m,k)=>g(m,k).then(Boolean),take:g,delay:Ee(p.signal),pause:X(p.signal),extra:o,signal:p.signal,fork:Bt(p.signal,T),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((m,k,R)=>{m!==p&&(m.abort(se),R.delete(m))})},cancel:()=>{p.abort(se),f.pending.delete(p)},throwIfCancelled:()=>{N(p.signal)}})))}catch(m){m instanceof I||ut(i,m,{raisedBy:"effect"})}finally{await Promise.all(T),p.abort(it),a(f),f.pending.delete(p)}},A=Ht(t,r);return{middleware:f=>d=>l=>{if(!B(l))return d(l);if(we.match(l))return s(l.payload);if(ft.match(l)){A();return}if(Pe.match(l))return c(l.payload);let u=f.getState(),p=()=>{if(u===ct)throw new Error(C(23));return u},g;try{if(g=d(l),t.size>0){let T=f.getState(),m=Array.from(t.values());for(let k of m){let R=!1;try{R=k.predicate(l,T,u)}catch(x){R=!1,ut(i,x,{raisedBy:"predicate"})}R&&y(k,l,f,p)}}}finally{u=ct}return g},startListening:s,stopListening:c,clearListeners:A}};var Xt=e=>({middleware:e,applied:new Map}),Jt=e=>t=>t?.meta?.instanceId===e,Qt=()=>{let e=D(),t=new Map,r=Object.assign(P("dynamicMiddleware/add",(...h)=>({payload:h,meta:{instanceId:e}})),{withTypes:()=>r}),n=Object.assign(function(...s){s.forEach(c=>{M(t,c,Xt)})},{withTypes:()=>n}),a=h=>{let s=Array.from(t.values()).map(c=>M(c.applied,h,c.middleware));return V(...s)},o=K(r,Jt(e));return{middleware:h=>s=>c=>o(c)?(n(...c.payload),h.dispatch):a(h)(s)(c),addMiddleware:n,withMiddleware:r,instanceId:e}};import{combineReducers as Yt}from"redux";var Zt=e=>"reducerPath"in e&&typeof e.reducerPath=="string",en=e=>e.flatMap(t=>Zt(t)?[[t.reducerPath,t.reducer]]:Object.entries(t)),Me=Symbol.for("rtk-state-proxy-original"),tn=e=>!!e&&!!e[Me],nn=new WeakMap,rn=(e,t,r)=>M(nn,e,()=>new Proxy(e,{get:(n,a,o)=>{if(a===Me)return n;let i=Reflect.get(n,a,o);if(typeof i>"u"){let h=r[a];if(typeof h<"u")return h;let s=t[a];if(s){let c=s(void 0,{type:D()});if(typeof c>"u")throw new Error(C(24));return r[a]=c,c}}return i}})),an=e=>{if(!tn(e))throw new Error(C(25));return e[Me]},on={},sn=(e=on)=>e;function cn(...e){let t=Object.fromEntries(en(e)),r=()=>Object.keys(t).length?Yt(t):sn,n=r();function a(s,c){return n(s,c)}a.withLazyLoadedSlices=()=>a;let o={},i=(s,c={})=>{let{reducerPath:y,reducer:A}=s,S=t[y];return!c.overrideExisting&&S&&S!==A||(c.overrideExisting&&S!==A&&delete o[y],t[y]=A,n=r()),a},h=Object.assign(function(c,y){return function(S,...f){return c(rn(y?y(S,...f):S,t,o),...f)}},{original:an});return Object.assign(a,{inject:i,selector:h})}function C(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}export{Je as ReducerType,me as SHOULD_AUTOBATCH,I as TaskAbortError,L as Tuple,we as addListener,bt as asyncThunkCreator,Se as autoBatchEnhancer,Qe as buildCreateSlice,ft as clearAllListeners,cn as combineSlices,Et as configureStore,P as createAction,At as createActionCreatorInvariantMiddleware,ge as createAsyncThunk,ye as createDraftSafeSelector,Ie as createDraftSafeSelectorCreator,Qt as createDynamicMiddleware,zt as createEntityAdapter,mt as createImmutableStateInvariantMiddleware,$t as createListenerMiddleware,F as createNextState,ke as createReducer,Ia as createSelector,pe as createSelectorCreator,St as createSerializableStateInvariantMiddleware,Dt as createSlice,G as current,Fe as findNonSerializableValue,C as formatProdErrorMessage,wa as freeze,he as isActionCreator,K as isAllOf,_ as isAnyOf,Ke as isAsyncThunkAction,v as isDraft,Ae as isFluxStandardAction,Be as isFulfilled,Tt as isImmutableDefault,ze as isPending,je as isPlain,te as isRejected,Ge as isRejectedWithValue,va as lruMemoize,qe as miniSerializeError,D as nanoid,Pa as original,Ct as prepareAutoBatched,Pe as removeListener,$e as unwrapResult,fe as weakMapMemoize};
-//# sourceMappingURL=redux-toolkit.browser.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.browser.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/index.ts","../src/immerImports.ts","../src/reselectImports.ts","../src/createDraftSafeSelector.ts","../src/reduxImports.ts","../src/devtoolsExtension.ts","../src/getDefaultMiddleware.ts","../src/tsHelpers.ts","../src/createAction.ts","../src/actionCreatorInvariantMiddleware.ts","../src/utils.ts","../src/immutableStateInvariantMiddleware.ts","../src/serializableStateInvariantMiddleware.ts","../src/autoBatchEnhancer.ts","../src/getDefaultEnhancers.ts","../src/configureStore.ts","../src/mapBuilders.ts","../src/createReducer.ts","../src/matchers.ts","../src/nanoid.ts","../src/createAsyncThunk.ts","../src/createSlice.ts","../src/entities/entity_state.ts","../src/entities/state_selectors.ts","../src/entities/state_adapter.ts","../src/entities/utils.ts","../src/entities/unsorted_state_adapter.ts","../src/entities/sorted_state_adapter.ts","../src/entities/create_adapter.ts","../src/listenerMiddleware/exceptions.ts","../src/listenerMiddleware/utils.ts","../src/listenerMiddleware/task.ts","../src/listenerMiddleware/index.ts","../src/dynamicMiddleware/index.ts","../src/combineSlices.ts","../src/formatProdErrorMessage.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';","export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';","export { createSelectorCreator, weakMapMemoize } from 'reselect';","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n  /**\n   * The function to identify whether a value is an action creator.\n   * The default checks for a function with a static type property and match method.\n   */\n  isActionCreator?: (action: unknown) => action is Function & {\n    type?: unknown;\n  };\n}\nexport function getMessage(type?: unknown) {\n  const splitType = type ? `${type}`.split('/') : [];\n  const actionName = splitType[splitType.length - 1] || 'actionCreator';\n  return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  }\n  const {\n    isActionCreator = isRTKAction\n  } = options;\n  return () => next => action => {\n    if (isActionCreator(action)) {\n      console.warn(getMessage(action.type));\n    }\n    return next(action);\n  };\n}","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseLike<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  let resolve: any;\n  let reject: any;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    promise,\n    resolve,\n    reject\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n  return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n  return {\n    detectMutations() {\n      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n    }\n  };\n}\ninterface TrackedProperty {\n  value: any;\n  children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n  const tracked: Partial<TrackedProperty> = {\n    value: obj\n  };\n  if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n    checkedObjects.add(obj);\n    tracked.children = {};\n    const hasIgnoredPaths = ignoredPaths.length > 0;\n    for (const key in obj) {\n      const nestedPath = path ? path + '.' + key : key;\n      if (hasIgnoredPaths) {\n        const hasMatches = ignoredPaths.some(ignored => {\n          if (ignored instanceof RegExp) {\n            return ignored.test(nestedPath);\n          }\n          return nestedPath === ignored;\n        });\n        if (hasMatches) {\n          continue;\n        }\n      }\n      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n    }\n  }\n  return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n  wasMutated: boolean;\n  path?: string;\n} {\n  const prevObj = trackedProperty ? trackedProperty.value : undefined;\n  const sameRef = prevObj === obj;\n  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n    return {\n      wasMutated: true,\n      path\n    };\n  }\n  if (isImmutable(prevObj) || isImmutable(obj)) {\n    return {\n      wasMutated: false\n    };\n  }\n\n  // Gather all keys from prev (tracked) and after objs\n  const keysToDetect: Record<string, boolean> = {};\n  for (let key in trackedProperty.children) {\n    keysToDetect[key] = true;\n  }\n  for (let key in obj) {\n    keysToDetect[key] = true;\n  }\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (let key in keysToDetect) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n    if (result.wasMutated) {\n      return result;\n    }\n  }\n  return {\n    wasMutated: false\n  };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n  /**\n    Callback function to check if a value is considered to be immutable.\n    This function is applied recursively to every value contained in the state.\n    The default implementation will return true for primitive types\n    (like numbers, strings, booleans, null and undefined).\n   */\n  isImmutable?: IsImmutableFunc;\n  /**\n    An array of dot-separated path strings that match named nodes from\n    the root state to ignore when checking for immutability.\n    Defaults to undefined\n   */\n  ignoredPaths?: IgnorePaths;\n  /** Print a warning if checks take longer than N ms. Default: 32ms */\n  warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n      return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n    }\n    function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n      let stack: any[] = [],\n        keys: any[] = [];\n      if (!decycler) decycler = function (_: string, value: any) {\n        if (stack[0] === value) return '[Circular ~]';\n        return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n      };\n      return function (this: any, key: string, value: any) {\n        if (stack.length > 0) {\n          var thisPos = stack.indexOf(this);\n          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n          if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n        } else stack.push(value);\n        return serializer == null ? value : serializer.call(this, key, value);\n      };\n    }\n    let {\n      isImmutable = isImmutableDefault,\n      ignoredPaths,\n      warnAfter = 32\n    } = options;\n    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n    return ({\n      getState\n    }) => {\n      let state = getState();\n      let tracker = track(state);\n      let result;\n      return next => action => {\n        const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        const dispatchedAction = next(action);\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n        return dispatchedAction;\n      };\n    };\n  }\n}","import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n  const type = typeof val;\n  return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n  keyPath: string;\n  value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n  let foundNestedSerializable: NonSerializableValue | false;\n  if (!isSerializable(value)) {\n    return {\n      keyPath: path || '<root>',\n      value: value\n    };\n  }\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n  if (cache?.has(value)) return false;\n  const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (const [key, nestedValue] of entries) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    if (!isSerializable(nestedValue)) {\n      return {\n        keyPath: nestedPath,\n        value: nestedValue\n      };\n    }\n    if (typeof nestedValue === 'object') {\n      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n      if (foundNestedSerializable) {\n        return foundNestedSerializable;\n      }\n    }\n  }\n  if (cache && isNestedFrozen(value)) cache.add(value);\n  return false;\n}\nexport function isNestedFrozen(value: object) {\n  if (!Object.isFrozen(value)) return false;\n  for (const nestedValue of Object.values(value)) {\n    if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n    if (!isNestedFrozen(nestedValue)) return false;\n  }\n  return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n  /**\n   * The function to check if a value is considered serializable. This\n   * function is applied recursively to every value contained in the\n   * state. Defaults to `isPlain()`.\n   */\n  isSerializable?: (value: any) => boolean;\n  /**\n   * The function that will be used to retrieve entries from each\n   * value.  If unspecified, `Object.entries` will be used. Defaults\n   * to `undefined`.\n   */\n  getEntries?: (value: any) => [string, any][];\n\n  /**\n   * An array of action types to ignore when checking for serializability.\n   * Defaults to []\n   */\n  ignoredActions?: string[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to\n   * ['meta.arg', 'meta.baseQueryMeta']\n   */\n  ignoredActionPaths?: (string | RegExp)[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to []\n   */\n  ignoredPaths?: (string | RegExp)[];\n  /**\n   * Execution time warning threshold. If the middleware takes longer\n   * than `warnAfter` ms, a warning will be displayed in the console.\n   * Defaults to 32ms.\n   */\n  warnAfter?: number;\n\n  /**\n   * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n   */\n  ignoreState?: boolean;\n\n  /**\n   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n   */\n  ignoreActions?: boolean;\n\n  /**\n   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n   * The cache is automatically disabled if no browser support for WeakSet is present.\n   */\n  disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    const {\n      isSerializable = isPlain,\n      getEntries,\n      ignoredActions = [],\n      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n      ignoredPaths = [],\n      warnAfter = 32,\n      ignoreState = false,\n      ignoreActions = false,\n      disableCache = false\n    } = options;\n    const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n    return storeAPI => next => action => {\n      if (!isAction(action)) {\n        return next(action);\n      }\n      const result = next(action);\n      const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n        measureUtils.measureTime(() => {\n          const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n          if (foundActionNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundActionNonSerializableValue;\n            console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n          }\n        });\n      }\n      if (!ignoreState) {\n        measureUtils.measureTime(() => {\n          const state = storeAPI.getState();\n          const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n          if (foundStateNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundStateNonSerializableValue;\n            console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n      }\n      return result;\n    };\n  }\n}","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * Whether to check for duplicate middleware instances. Defaults to `true`.\n   */\n  duplicateMiddlewareCheck?: boolean;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    duplicateMiddlewareCheck = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n    let middlewareReferences = new Set<Middleware<any, S>>();\n    finalMiddleware.forEach(middleware => {\n      if (middlewareReferences.has(middleware)) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n      }\n      middlewareReferences.add(middleware);\n    });\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n   * @remarks\n   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param asyncThunk - The async thunk action creator itself.\n   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n   * @example\n  ```ts no-transpile\n  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n  const response = await fetch(`https://reqres.in/api/users/${id}`)\n  return (await response.json()).data\n  })\n  const reducer = createReducer(initialState, (builder) => {\n  builder.addAsyncThunk(fetchUserById, {\n    pending: (state, action) => {\n      state.fetchUserById.loading = 'pending'\n    },\n    fulfilled: (state, action) => {\n      state.fetchUserById.data = action.payload\n    },\n    rejected: (state, action) => {\n      state.fetchUserById.error = action.error\n    },\n    settled: (state, action) => {\n      state.fetchUserById.loading = action.meta.requestStatus\n    },\n  })\n  })\n   */\n  addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n      if (process.env.NODE_ENV !== 'production') {\n        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n      if (reducers.settled) actionMatchers.push({\n        matcher: asyncThunk.settled,\n        reducer: reducers.settled\n      });\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n  if (hasMatchFunction(matcher)) {\n    return matcher.match(action);\n  } else {\n    return matcher(action);\n  }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n    return matchers.some(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAllOf<Matchers> => {\n    return matchers.every(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n  if (!action || !action.meta) return false;\n  const hasValidRequestId = typeof action.meta.requestId === 'string';\n  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n  return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n  return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isPending()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejected()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n  rejectValue: infer RejectedValue;\n}> ? {\n  payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  const hasFlag = (action: any): action is any => {\n    return action && action.meta && action.meta.rejectedWithValue;\n  };\n  if (asyncThunks.length === 0) {\n    return isAllOf(isRejected(...asyncThunks), hasFlag);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejectedWithValue()(asyncThunks[0]);\n  }\n  return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isFulfilled()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n  pending: {\n    match: (action: any) => action is any;\n  };\n  fulfilled: {\n    match: (action: any) => action is any;\n  };\n  rejected: {\n    match: (action: any) => action is any;\n  };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isAsyncThunkAction()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\n *\n * @public\n */\nexport let nanoid = (size = 21) => {\n  let id = '';\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size;\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};","import type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n  dispatch: D;\n  getState: () => S;\n  extra: E;\n  requestId: string;\n  signal: AbortSignal;\n  abort: (reason?: string) => void;\n  rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n  fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n  name?: string;\n  message?: string;\n  stack?: string;\n  code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'RejectWithValue';\n  constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'FulfillWithMeta';\n  constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n  if (typeof value === 'object' && value !== null) {\n    const simpleError: SerializedError = {};\n    for (const property of commonProperties) {\n      if (typeof value[property] === 'string') {\n        simpleError[property] = value[property];\n      }\n    }\n    return simpleError;\n  }\n  return {\n    message: String(value)\n  };\n};\nexport type AsyncThunkConfig = {\n  state?: unknown;\n  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n  extra?: unknown;\n  rejectValue?: unknown;\n  serializedErrorType?: unknown;\n  pendingMeta?: unknown;\n  fulfilledMeta?: unknown;\n  rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n  state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n  extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n  dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n  serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n  abort: (reason?: string) => void;\n  requestId: string;\n  arg: ThunkArg;\n  unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n  /**\n   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n   */\n  signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  /**\n   * A method to control whether the asyncThunk should be executed. Has access to the\n   * `arg`, `api.getState()` and `api.extra` arguments.\n   *\n   * @returns `false` if it should be skipped\n   */\n  condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n  /**\n   * If `condition` returns `false`, the asyncThunk will be skipped.\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\n   * will be dispatched or not.\n   *\n   * @default `false`\n   */\n  dispatchConditionRejection?: boolean;\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n  /**\n   * A function to use when generating the `requestId` for the request sequence.\n   *\n   * @default `nanoid`\n   */\n  idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   *\n   * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n   * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n   */\n  getPendingMeta?(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   */\n  getPendingMeta(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'rejected';\n  aborted: boolean;\n  condition: boolean;\n} & (({\n  rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n  rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n  fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n  // matchSettled?\n  settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n  typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  // separate signature without `AsyncThunkConfig` for better inference\n  <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n  function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n    type RejectedValue = GetRejectValue<ThunkApiConfig>;\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n    const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n      payload,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'fulfilled' as const\n      }\n    }));\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n      payload: undefined,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'pending' as const\n      }\n    }));\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n      payload,\n      error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        rejectedWithValue: !!payload,\n        requestStatus: 'rejected' as const,\n        aborted: error?.name === 'AbortError',\n        condition: error?.name === 'ConditionError'\n      }\n    }));\n    function actionCreator(arg: ThunkArg, {\n      signal\n    }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n      return (dispatch, getState, extra) => {\n        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n        const abortController = new AbortController();\n        let abortHandler: (() => void) | undefined;\n        let abortReason: string | undefined;\n        function abort(reason?: string) {\n          abortReason = reason;\n          abortController.abort();\n        }\n        if (signal) {\n          if (signal.aborted) {\n            abort(externalAbortMessage);\n          } else {\n            signal.addEventListener('abort', () => abort(externalAbortMessage), {\n              once: true\n            });\n          }\n        }\n        const promise = async function () {\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n          try {\n            let conditionResult = options?.condition?.(arg, {\n              getState,\n              extra\n            });\n            if (isThenable(conditionResult)) {\n              conditionResult = await conditionResult;\n            }\n            if (conditionResult === false || abortController.signal.aborted) {\n              // eslint-disable-next-line no-throw-literal\n              throw {\n                name: 'ConditionError',\n                message: 'Aborted due to condition callback returning false.'\n              };\n            }\n            const abortedPromise = new Promise<never>((_, reject) => {\n              abortHandler = () => {\n                reject({\n                  name: 'AbortError',\n                  message: abortReason || 'Aborted'\n                });\n              };\n              abortController.signal.addEventListener('abort', abortHandler, {\n                once: true\n              });\n            });\n            dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n              requestId,\n              arg\n            }, {\n              getState,\n              extra\n            })) as any);\n            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n              dispatch,\n              getState,\n              extra,\n              requestId,\n              signal: abortController.signal,\n              abort,\n              rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n                return new RejectWithValue(value, meta);\n              }) as any,\n              fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n                return new FulfillWithMeta(value, meta);\n              }) as any\n            })).then(result => {\n              if (result instanceof RejectWithValue) {\n                throw result;\n              }\n              if (result instanceof FulfillWithMeta) {\n                return fulfilled(result.payload, requestId, arg, result.meta);\n              }\n              return fulfilled(result as any, requestId, arg);\n            })]);\n          } catch (err) {\n            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n          } finally {\n            if (abortHandler) {\n              abortController.signal.removeEventListener('abort', abortHandler);\n            }\n          }\n          // We dispatch the result action _after_ the catch, to avoid having any errors\n          // here get swallowed by the try/catch block,\n          // per https://twitter.com/dan_abramov/status/770914221638942720\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n          if (!skipDispatch) {\n            dispatch(finalAction as any);\n          }\n          return finalAction;\n        }();\n        return Object.assign(promise as SafePromise<any>, {\n          abort,\n          requestId,\n          arg,\n          unwrap() {\n            return promise.then<any>(unwrapResult);\n          }\n        });\n      };\n    }\n    return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n      pending,\n      rejected,\n      fulfilled,\n      settled: isAnyOf(rejected, fulfilled),\n      typePrefix\n    });\n  }\n  createAsyncThunk.withTypes = () => createAsyncThunk;\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n  payload: any;\n  meta?: any;\n  error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n  error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n  if (action.meta && action.meta.rejectedWithValue) {\n    throw action.payload;\n  }\n  if (action.error) {\n    throw action.error;\n  }\n  return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n  return value !== null && typeof value === 'object' && typeof value.then === 'function';\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import type { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n  return {\n    ids: [],\n    entities: {} as Record<Id, T>\n  };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n  function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n  function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n  function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n    const state = Object.assign(getInitialEntityState(), additionalState);\n    return entities ? stateAdapter.setAll(state, entities) : state;\n  }\n  return {\n    getInitialState\n  };\n}","import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n  createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n  function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n  function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n  function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n    const {\n      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n    } = options;\n    const selectIds = (state: EntityState<T, Id>) => state.ids;\n    const selectEntities = (state: EntityState<T, Id>) => state.entities;\n    const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n    const selectId = (_: unknown, id: Id) => id;\n    const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n    const selectTotal = createSelector(selectIds, ids => ids.length);\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n        selectById: createSelector(selectEntities, selectId, selectById)\n      };\n    }\n    const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: selectGlobalizedEntities,\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n      selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n    };\n  }\n  return {\n    getSelectors\n  };\n}","import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n  const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n  return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n    return operator(state as S, undefined);\n  };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n  return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n    function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n      return isFSA(arg);\n    }\n    const runMutator = (draft: DraftableEntityState<T, Id>) => {\n      if (isPayloadActionArgument(arg)) {\n        mutator(arg.payload, draft);\n      } else {\n        mutator(arg, draft);\n      }\n    };\n    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n      // we must already be inside a `createNextState` call, likely because\n      // this is being wrapped in `createReducer` or `createSlice`.\n      // It's safe to just pass the draft to the mutator.\n      runMutator(state);\n\n      // since it's a draft, we'll just return it\n      return state;\n    }\n    return createNextState(state, runMutator);\n  };\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n  const key = selectId(entity);\n  if (process.env.NODE_ENV !== 'production' && key === undefined) {\n    console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n  }\n  return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n  if (!Array.isArray(entities)) {\n    entities = Object.values(entities);\n  }\n  return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n  newEntities = ensureEntitiesArray(newEntities);\n  const existingIdsArray = getCurrent(state.ids);\n  const existingIds = new Set<Id>(existingIdsArray);\n  const added: T[] = [];\n  const addedIds = new Set<Id>([]);\n  const updated: Update<T, Id>[] = [];\n  for (const entity of newEntities) {\n    const id = selectIdValue(entity, selectId);\n    if (existingIds.has(id) || addedIds.has(id)) {\n      updated.push({\n        id,\n        changes: entity\n      });\n    } else {\n      addedIds.add(id);\n      added.push(entity);\n    }\n  }\n  return [added, updated, existingIdsArray];\n}","import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  function addOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (key in state.entities) {\n      return;\n    }\n    state.ids.push(key as Id & Draft<Id>);\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      addOneMutably(entity, state);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (!(key in state.entities)) {\n      state.ids.push(key as Id & Draft<Id>);\n    }\n    ;\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      setOneMutably(entity, state);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.ids = [];\n    state.entities = {} as Record<Id, T>;\n    addManyMutably(newEntities, state);\n  }\n  function removeOneMutably(key: Id, state: R): void {\n    return removeManyMutably([key], state);\n  }\n  function removeManyMutably(keys: readonly Id[], state: R): void {\n    let didMutate = false;\n    keys.forEach(key => {\n      if (key in state.entities) {\n        delete (state.entities as Record<Id, T>)[key];\n        didMutate = true;\n      }\n    });\n    if (didMutate) {\n      state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n    }\n  }\n  function removeAllMutably(state: R): void {\n    Object.assign(state, {\n      ids: [],\n      entities: {}\n    });\n  }\n  function takeNewKey(keys: {\n    [id: string]: Id;\n  }, update: Update<T, Id>, state: R): boolean {\n    const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n    if (original === undefined) {\n      return false;\n    }\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete (state.entities as Record<Id, T>)[update.id];\n    }\n    ;\n    (state.entities as Record<Id, T>)[newKey] = updated;\n    return hasNewKey;\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    const newKeys: {\n      [id: string]: Id;\n    } = {};\n    const updatesPerEntity: {\n      [id: string]: Update<T, Id>;\n    } = {};\n    updates.forEach(update => {\n      // Only apply updates to entities that currently exist\n      if (update.id in state.entities) {\n        // If there are multiple updates to one entity, merge them together\n        updatesPerEntity[update.id] = {\n          id: update.id,\n          // Spreads ignore falsy values, so this works even if there isn't\n          // an existing update already at this key\n          changes: {\n            ...updatesPerEntity[update.id]?.changes,\n            ...update.changes\n          }\n        };\n      }\n    });\n    updates = Object.values(updatesPerEntity);\n    const didMutateEntities = updates.length > 0;\n    if (didMutateEntities) {\n      const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n      if (didMutateIds) {\n        state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n      }\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    addManyMutably(added, state);\n    updateManyMutably(updated, state);\n  }\n  return {\n    removeAll: createSingleArgumentStateOperator(removeAllMutably),\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably)\n  };\n}","import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n  let lowIndex = 0;\n  let highIndex = sortedItems.length;\n  while (lowIndex < highIndex) {\n    let middleIndex = lowIndex + highIndex >>> 1;\n    const currentItem = sortedItems[middleIndex];\n    const res = comparisonFunction(item, currentItem);\n    if (res >= 0) {\n      lowIndex = middleIndex + 1;\n    } else {\n      highIndex = middleIndex;\n    }\n  }\n  return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n  sortedItems.splice(insertAtIndex, 0, item);\n  return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  const {\n    removeOne,\n    removeMany,\n    removeAll\n  } = createUnsortedStateAdapter(selectId);\n  function addOneMutably(entity: T, state: R): void {\n    return addManyMutably([entity], state);\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n    const addedKeys = new Set<Id>();\n    const models = newEntities.filter(model => {\n      const modelId = selectIdValue(model, selectId);\n      const notAdded = !addedKeys.has(modelId);\n      if (notAdded) addedKeys.add(modelId);\n      return !existingKeys.has(modelId) && notAdded;\n    });\n    if (models.length !== 0) {\n      mergeFunction(state, models);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    return setManyMutably([entity], state);\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    let deduplicatedEntities = {} as Record<Id, T>;\n    newEntities = ensureEntitiesArray(newEntities);\n    if (newEntities.length !== 0) {\n      for (const item of newEntities) {\n        const entityId = selectId(item);\n        // For multiple items with the same ID, we should keep the last one.\n        deduplicatedEntities[entityId] = item;\n        delete (state.entities as Record<Id, T>)[entityId];\n      }\n      newEntities = ensureEntitiesArray(deduplicatedEntities);\n      mergeFunction(state, newEntities);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.entities = {} as Record<Id, T>;\n    state.ids = [];\n    addManyMutably(newEntities, state, []);\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    let appliedUpdates = false;\n    let replacedIds = false;\n    for (let update of updates) {\n      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n      if (!entity) {\n        continue;\n      }\n      appliedUpdates = true;\n      Object.assign(entity, update.changes);\n      const newId = selectId(entity);\n      if (update.id !== newId) {\n        // We do support the case where updates can change an item's ID.\n        // This makes things trickier - go ahead and swap the IDs in state now.\n        replacedIds = true;\n        delete (state.entities as Record<Id, T>)[update.id];\n        const oldIndex = (state.ids as Id[]).indexOf(update.id);\n        state.ids[oldIndex] = newId;\n        (state.entities as Record<Id, T>)[newId] = entity;\n      }\n    }\n    if (appliedUpdates) {\n      mergeFunction(state, [], appliedUpdates, replacedIds);\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    if (added.length) {\n      addManyMutably(added, state, existingIdsArray);\n    }\n    if (updated.length) {\n      updateManyMutably(updated, state);\n    }\n  }\n  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] === b[i]) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n  const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n    const currentEntities = getCurrent(state.entities);\n    const currentIds = getCurrent(state.ids);\n    const stateEntities = state.entities as Record<Id, T>;\n    let ids: Iterable<Id> = currentIds;\n    if (replacedIds) {\n      ids = new Set(currentIds);\n    }\n    let sortedEntities: T[] = [];\n    for (const id of ids) {\n      const entity = currentEntities[id];\n      if (entity) {\n        sortedEntities.push(entity);\n      }\n    }\n    const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n    // Insert/overwrite all new/updated\n    for (const item of addedItems) {\n      stateEntities[selectId(item)] = item;\n      if (!wasPreviouslyEmpty) {\n        // Binary search insertion generally requires fewer comparisons\n        insert(sortedEntities, item, comparer);\n      }\n    }\n    if (wasPreviouslyEmpty) {\n      // All we have is the incoming values, sort them\n      sortedEntities = addedItems.slice().sort(comparer);\n    } else if (appliedUpdates) {\n      // We should have a _mostly_-sorted array already\n      sortedEntities.sort(comparer);\n    }\n    const newSortedIds = sortedEntities.map(selectId);\n    if (!areArraysEqual(currentIds, newSortedIds)) {\n      state.ids = newSortedIds;\n    }\n  };\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably)\n  };\n}","import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n  id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n  const {\n    selectId,\n    sortComparer\n  }: Required<EntityAdapterOptions<T, EntityId>> = {\n    sortComparer: false,\n    selectId: (instance: any) => instance.id,\n    ...options\n  };\n  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n  const stateFactory = createInitialStateFactory(stateAdapter);\n  const selectorsFactory = createSelectorsFactory<T, EntityId>();\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter\n  };\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n  if (typeof func !== 'function') {\n    throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n  }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n  promise.catch(onError);\n  return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n  abortSignal.addEventListener('abort', callback, {\n    once: true\n  });\n  return () => abortSignal.removeEventListener('abort', callback);\n};","import { TaskAbortError } from './exceptions';\nimport type { TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    throw new TaskAbortError(signal.reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignal, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => childAbortController.abort(taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        childAbortController.abort(taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    controller.abort(listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n  return () => {\n    for (const listener of executingListeners.keys()) {\n      cancelActiveListeners(listener);\n    }\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n\n  // Track listeners whose effect is currently executing so clearListeners can\n  // abort even listeners that have become unsubscribed while executing.\n  const executingListeners = new Map<ListenerEntry, number>();\n  const trackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 0;\n    executingListeners.set(entry, count + 1);\n  };\n  const untrackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 1;\n    if (count === 1) {\n      executingListeners.delete(entry);\n    } else {\n      executingListeners.set(entry, count - 1);\n    }\n  };\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      trackExecutingListener(entry);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              controller.abort(listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          internalTaskController.abort(listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      internalTaskController.abort(listenerCompleted); // Notify that the task has completed\n      untrackExecutingListener(entry);\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n  middleware,\n  applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n  meta: {\n    instanceId: string;\n  };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n  const instanceId = nanoid();\n  const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n  const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n    payload: middlewares,\n    meta: {\n      instanceId\n    }\n  })), {\n    withTypes: () => withMiddleware\n  }) as WithMiddleware<State, DispatchType>;\n  const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n    middlewares.forEach(middleware => {\n      getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n    });\n  }, {\n    withTypes: () => addMiddleware\n  }) as AddMiddleware<State, DispatchType>;\n  const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n    const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n    return compose(...appliedMiddleware);\n  };\n  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n  const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n    if (isWithMiddleware(action)) {\n      addMiddleware(...action.payload);\n      return api.dispatch;\n    }\n    return getFinalMiddleware(api)(next)(action);\n  };\n  return {\n    middleware,\n    addMiddleware,\n    withMiddleware,\n    instanceId\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const cached = initialStateCache[prop];\n      if (typeof cached !== 'undefined') return cached;\n      const reducer = reducerMap[prop];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        initialStateCache[prop] = reducerResult;\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n  const reducerMap = Object.fromEntries(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const initialStateCache: Record<PropertyKey, unknown> = {};\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    if (config.overrideExisting && currentReducer !== reducerToInject) {\n      delete initialStateCache[reducerPath];\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}"],"mappings":"AAGA,WAAc,QACd,OAAS,UAAAA,GAAQ,YAAAC,OAAgB,QCJjC,OAAS,WAAAC,EAAS,WAAAC,EAAoB,WAAXC,EAA4B,eAAAC,EAAa,yBAAAC,OAA6B,QDOjG,OAAS,kBAAAC,GAAgB,cAAAC,OAAkB,WEP3C,OAAS,yBAAAC,GAAuB,kBAAAC,OAAsB,WCE/C,IAAMC,GAA+D,IAAIC,IAAoB,CAClG,IAAMC,EAAkBC,GAA8B,GAAGF,CAAI,EACvDG,EAA0B,OAAO,OAAO,IAAIH,IAAoB,CACpE,IAAMI,EAAWH,EAAe,GAAGD,CAAI,EACjCK,EAAkB,CAACC,KAAmBC,IAAoBH,EAASI,EAAQF,CAAK,EAAIG,EAAQH,CAAK,EAAIA,EAAO,GAAGC,CAAI,EACzH,cAAO,OAAOF,EAAiBD,CAAQ,EAChCC,CACT,EAAG,CACD,UAAW,IAAMF,CACnB,CAAC,EACD,OAAOA,CACT,EASaA,GACbJ,GAA+BW,EAAc,ECvB7C,OAAS,eAAAC,GAAa,mBAAAC,GAAiB,mBAAAC,GAAiB,WAAAC,EAAS,iBAAAC,EAAe,YAAAC,MAAgB,QCmNzF,IAAMC,GAA2C,OAAO,OAAW,KAAgB,OAAe,qCAAwC,OAAe,qCAAuC,UAAY,CACjN,GAAI,UAAU,SAAW,EACzB,OAAI,OAAO,UAAU,CAAC,GAAM,SAAiBC,EACtCA,EAAQ,MAAM,KAAM,SAA8B,CAC3D,EAKaC,GAET,OAAO,OAAW,KAAgB,OAAe,6BAAgC,OAAe,6BAA+B,UAAY,CAC7I,OAAO,SAAUC,EAAM,CACrB,OAAOA,CACT,CACF,EChOA,OAAS,SAASC,GAAiB,qBAAAC,OAAyB,cCqFrD,IAAMC,EAAwBC,GAC5BA,GAAK,OAAQA,EAA0B,OAAU,WC6GnD,SAASC,EAAaC,EAAcC,EAA+B,CACxE,SAASC,KAAiBC,EAAa,CACrC,GAAIF,EAAe,CACjB,IAAIG,EAAWH,EAAc,GAAGE,CAAI,EACpC,GAAI,CAACC,EACH,MAAM,IAAI,MAA8CC,EAAwB,CAAC,CAA4C,EAE/H,MAAO,CACL,KAAAL,EACA,QAASI,EAAS,QAClB,GAAI,SAAUA,GAAY,CACxB,KAAMA,EAAS,IACjB,EACA,GAAI,UAAWA,GAAY,CACzB,MAAOA,EAAS,KAClB,CACF,CACF,CACA,MAAO,CACL,KAAAJ,EACA,QAASG,EAAK,CAAC,CACjB,CACF,CACA,OAAAD,EAAc,SAAW,IAAM,GAAGF,CAAI,GACtCE,EAAc,KAAOF,EACrBE,EAAc,MAASI,GAA6CC,EAASD,CAAM,GAAKA,EAAO,OAASN,EACjGE,CACT,CAKO,SAASM,GAAgBF,EAA0E,CACxG,OAAO,OAAOA,GAAW,YAAc,SAAUA,GAEjDG,EAAiBH,CAAa,CAChC,CAKO,SAASI,GAAMJ,EAKpB,CACA,OAAOC,EAASD,CAAM,GAAK,OAAO,KAAKA,CAAM,EAAE,MAAMK,EAAU,CACjE,CACA,SAASA,GAAWC,EAAa,CAC/B,MAAO,CAAC,OAAQ,UAAW,QAAS,MAAM,EAAE,QAAQA,CAAG,EAAI,EAC7D,CC7OO,SAASC,GAAWC,EAAgB,CACzC,IAAMC,EAAYD,EAAO,GAAGA,CAAI,GAAG,MAAM,GAAG,EAAI,CAAC,EAC3CE,EAAaD,EAAUA,EAAU,OAAS,CAAC,GAAK,gBACtD,MAAO,yCAAyCD,GAAQ,SAAS;AAAA,kFACeE,CAAU,+BAA+BA,CAAU,2DACrI,CACO,SAASC,GAAuCC,EAAmD,CAAC,EAAe,CAEtH,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,CAW9C,CCLO,IAAMC,EAAN,MAAMC,UAAyD,KAAqB,CAGzF,eAAeC,EAAc,CAC3B,MAAM,GAAGA,CAAK,EACd,OAAO,eAAe,KAAMD,EAAM,SAAS,CAC7C,CACA,WAAqB,OAAO,OAAO,GAAI,CACrC,OAAOA,CACT,CAIS,UAAUE,EAAY,CAC7B,OAAO,MAAM,OAAO,MAAM,KAAMA,CAAG,CACrC,CAIA,WAAWA,EAAY,CACrB,OAAIA,EAAI,SAAW,GAAK,MAAM,QAAQA,EAAI,CAAC,CAAC,EACnC,IAAIF,EAAM,GAAGE,EAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAElC,IAAIF,EAAM,GAAGE,EAAI,OAAO,IAAI,CAAC,CACtC,CACF,EACO,SAASC,GAAmBC,EAAQ,CACzC,OAAOC,EAAYD,CAAG,EAAIE,EAAgBF,EAAK,IAAM,CAAC,CAAC,EAAIA,CAC7D,CASO,SAASG,EAAyCC,EAAgCC,EAAQC,EAA2B,CAC1H,OAAIF,EAAI,IAAIC,CAAG,EAAUD,EAAI,IAAIC,CAAG,EAC7BD,EAAI,IAAIC,EAAKC,EAAQD,CAAG,CAAC,EAAE,IAAIA,CAAG,CAC3C,CCtDO,SAASE,GAAmBC,EAAyB,CAC1D,OAAO,OAAOA,GAAU,UAAYA,GAAS,MAAQ,OAAO,SAASA,CAAK,CAC5E,CA0HO,SAASC,GAAwCC,EAAoD,CAAC,EAAe,CAC1H,GAAI,EACF,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,EAEjC,IAAAC,EAGAC,CAuDb,CCxLO,SAASC,GAAQC,EAAU,CAChC,IAAMC,EAAO,OAAOD,EACpB,OAAOA,GAAO,MAAQC,IAAS,UAAYA,IAAS,WAAaA,IAAS,UAAY,MAAM,QAAQD,CAAG,GAAKE,EAAcF,CAAG,CAC/H,CAUO,SAASG,GAAyBC,EAAgBC,EAAe,GAAIC,EAA8CP,GAASQ,EAAkDC,EAA4B,CAAC,EAAGC,EAAuD,CAC1Q,IAAIC,EACJ,GAAI,CAACJ,EAAeF,CAAK,EACvB,MAAO,CACL,QAASC,GAAQ,SACjB,MAAOD,CACT,EAKF,GAHI,OAAOA,GAAU,UAAYA,IAAU,MAGvCK,GAAO,IAAIL,CAAK,EAAG,MAAO,GAC9B,IAAMO,EAAUJ,GAAc,KAAOA,EAAWH,CAAK,EAAI,OAAO,QAAQA,CAAK,EACvEQ,EAAkBJ,EAAa,OAAS,EAC9C,OAAW,CAACK,EAAKC,CAAW,IAAKH,EAAS,CACxC,IAAMI,EAAaV,EAAOA,EAAO,IAAMQ,EAAMA,EAC7C,GAAI,EAAAD,GACiBJ,EAAa,KAAKQ,GAC/BA,aAAmB,OACdA,EAAQ,KAAKD,CAAU,EAEzBA,IAAeC,CACvB,GAKH,IAAI,CAACV,EAAeQ,CAAW,EAC7B,MAAO,CACL,QAASC,EACT,MAAOD,CACT,EAEF,GAAI,OAAOA,GAAgB,WACzBJ,EAA0BP,GAAyBW,EAAaC,EAAYT,EAAgBC,EAAYC,EAAcC,CAAK,EACvHC,GACF,OAAOA,EAGb,CACA,OAAID,GAASQ,GAAeb,CAAK,GAAGK,EAAM,IAAIL,CAAK,EAC5C,EACT,CACO,SAASa,GAAeb,EAAe,CAC5C,GAAI,CAAC,OAAO,SAASA,CAAK,EAAG,MAAO,GACpC,QAAWU,KAAe,OAAO,OAAOV,CAAK,EAC3C,GAAI,SAAOU,GAAgB,UAAYA,IAAgB,OACnD,CAACG,GAAeH,CAAW,EAAG,MAAO,GAE3C,MAAO,EACT,CAwEO,SAASI,GAA2CC,EAAuD,CAAC,EAAe,CAE9H,MAAO,IAAMC,GAAQC,GAAUD,EAAKC,CAAM,CAmD9C,CN3LA,SAASC,GAAUC,EAAsB,CACvC,OAAO,OAAOA,GAAM,SACtB,CAuBO,IAAMC,GAA4B,IAAyC,SAA8BC,EAAS,CACvH,GAAM,CACJ,MAAAC,EAAQ,GACR,eAAAC,EAAiB,GACjB,kBAAAC,EAAoB,GACpB,mBAAAC,EAAqB,EACvB,EAAIJ,GAAW,CAAC,EACZK,EAAkB,IAAIC,EAC1B,OAAIL,IACEJ,GAAUI,CAAK,EACjBI,EAAgB,KAAKE,EAAe,EAEpCF,EAAgB,KAAKG,GAAkBP,EAAM,aAAa,CAAC,GA4BxDI,CACT,EO/EO,IAAMI,GAAmB,gBACnBC,GAAqB,IAAWC,IAGvC,CACJ,QAAAA,EACA,KAAM,CACJ,CAACF,EAAgB,EAAG,EACtB,CACF,GACMG,GAAwBC,GACpBC,GAAuB,CAC7B,WAAWA,EAAQD,CAAO,CAC5B,EAoCWE,GAAoB,CAACC,EAA4B,CAC5D,KAAM,KACR,IAAqBC,GAAQ,IAAIC,IAAS,CACxC,IAAMC,EAAQF,EAAK,GAAGC,CAAI,EACtBE,EAAY,GACZC,EAA0B,GAC1BC,EAAqB,GACnBC,EAAY,IAAI,IAChBC,EAAgBR,EAAQ,OAAS,OAAS,eAAiBA,EAAQ,OAAS,MAElF,OAAO,OAAW,KAAe,OAAO,sBAAwB,OAAO,sBAAwBJ,GAAqB,EAAE,EAAII,EAAQ,OAAS,WAAaA,EAAQ,kBAAoBJ,GAAqBI,EAAQ,OAAO,EAClNS,EAAkB,IAAM,CAG5BH,EAAqB,GACjBD,IACFA,EAA0B,GAC1BE,EAAU,QAAQG,GAAKA,EAAE,CAAC,EAE9B,EACA,OAAO,OAAO,OAAO,CAAC,EAAGP,EAAO,CAG9B,UAAUQ,EAAsB,CAK9B,IAAMC,EAAmC,IAAMR,GAAaO,EAAS,EAC/DE,EAAcV,EAAM,UAAUS,CAAe,EACnD,OAAAL,EAAU,IAAII,CAAQ,EACf,IAAM,CACXE,EAAY,EACZN,EAAU,OAAOI,CAAQ,CAC3B,CACF,EAGA,SAASG,EAAa,CACpB,GAAI,CAGF,OAAAV,EAAY,CAACU,GAAQ,OAAOrB,EAAgB,EAG5CY,EAA0B,CAACD,EACvBC,IAIGC,IACHA,EAAqB,GACrBE,EAAcC,CAAe,IAS1BN,EAAM,SAASW,CAAM,CAC9B,QAAE,CAEAV,EAAY,EACd,CACF,CACF,CAAC,CACH,EC1GO,IAAMW,GAAyDC,GAEvC,SAA6BC,EAAS,CACnE,GAAM,CACJ,UAAAC,EAAY,EACd,EAAID,GAAW,CAAC,EACZE,EAAgB,IAAIC,EAAuBJ,CAAkB,EACjE,OAAIE,GACFC,EAAc,KAAKE,GAAkB,OAAOH,GAAc,SAAWA,EAAY,MAAS,CAAC,EAEtFC,CACT,EC8DO,SAASG,GAEYC,EAAuE,CACjG,IAAMC,EAAuBC,GAA6B,EACpD,CACJ,QAAAC,EAAU,OACV,WAAAC,EACA,SAAAC,EAAW,GACX,yBAAAC,EAA2B,GAC3B,eAAAC,EAAiB,OACjB,UAAAC,EAAY,MACd,EAAIR,GAAW,CAAC,EACZS,EACJ,GAAI,OAAON,GAAY,WACrBM,EAAcN,UACLO,EAAcP,CAAO,EAC9BM,EAAcE,GAAgBR,CAAO,MAErC,OAAM,IAAI,MAA8CS,EAAwB,CAAC,CAA8H,EAKjN,IAAIC,EACA,OAAOT,GAAe,WACxBS,EAAkBT,EAAWH,CAAoB,EAKjDY,EAAkBZ,EAAqB,EAczC,IAAIa,EAAeC,EACfV,IACFS,EAAeE,GAAoB,CAEjC,MAAO,GACP,GAAI,OAAOX,GAAa,UAAYA,CACtC,CAAC,GAEH,IAAMY,EAAqBC,GAAgB,GAAGL,CAAe,EACvDM,EAAsBC,GAA4BH,CAAkB,EAItEI,EAAiB,OAAOb,GAAc,WAAaA,EAAUW,CAAmB,EAAIA,EAAoB,EAUtGG,EAAuCR,EAAa,GAAGO,CAAc,EAC3E,OAAOE,GAAYd,EAAaF,EAAqBe,CAAgB,CACvE,CCTO,SAASE,GAAiCC,EAAmK,CAClN,IAAMC,EAAmC,CAAC,EACpCC,EAAwD,CAAC,EAC3DC,EACEC,EAAU,CACd,QAAQC,EAAuDC,EAAyB,CActF,IAAMC,EAAO,OAAOF,GAAwB,SAAWA,EAAsBA,EAAoB,KACjG,GAAI,CAACE,EACH,MAAM,IAAI,MAA8CC,EAAyB,EAAE,CAAkE,EAEvJ,GAAID,KAAQN,EACV,MAAM,IAAI,MAA8CO,EAAyB,EAAE,CAAkG,EAEvL,OAAAP,EAAWM,CAAI,EAAID,EACZF,CACT,EACA,cAAgFK,EAA4DC,EAAqE,CAO/M,OAAIA,EAAS,UAAST,EAAWQ,EAAW,QAAQ,IAAI,EAAIC,EAAS,SACjEA,EAAS,WAAUT,EAAWQ,EAAW,SAAS,IAAI,EAAIC,EAAS,UACnEA,EAAS,YAAWT,EAAWQ,EAAW,UAAU,IAAI,EAAIC,EAAS,WACrEA,EAAS,SAASR,EAAe,KAAK,CACxC,QAASO,EAAW,QACpB,QAASC,EAAS,OACpB,CAAC,EACMN,CACT,EACA,WAAcO,EAAuBL,EAA4D,CAM/F,OAAAJ,EAAe,KAAK,CAClB,QAAAS,EACA,QAAAL,CACF,CAAC,EACMF,CACT,EACA,eAAeE,EAAiC,CAM9C,OAAAH,EAAqBG,EACdF,CACT,CACF,EACA,OAAAJ,EAAgBI,CAAO,EAChB,CAACH,EAAYC,EAAgBC,CAAkB,CACxD,CChKA,SAASS,GAAmBC,EAA0B,CACpD,OAAO,OAAOA,GAAM,UACtB,CAqEO,SAASC,GAA0CC,EAA6BC,EAAiG,CAMtL,GAAI,CAACC,EAAYC,EAAqBC,CAAuB,EAAIC,GAA8BJ,CAAoB,EAG/GK,EACJ,GAAIT,GAAgBG,CAAY,EAC9BM,EAAkB,IAAMC,GAAgBP,EAAa,CAAC,MACjD,CACL,IAAMQ,EAAqBD,GAAgBP,CAAY,EACvDM,EAAkB,IAAME,CAC1B,CACA,SAASC,EAAQC,EAAQJ,EAAgB,EAAGK,EAAgB,CAC1D,IAAIC,EAAe,CAACV,EAAWS,EAAO,IAAI,EAAG,GAAGR,EAAoB,OAAO,CAAC,CAC1E,QAAAU,CACF,IAAMA,EAAQF,CAAM,CAAC,EAAE,IAAI,CAAC,CAC1B,QAAAF,CACF,IAAMA,CAAO,CAAC,EACd,OAAIG,EAAa,OAAOE,GAAM,CAAC,CAACA,CAAE,EAAE,SAAW,IAC7CF,EAAe,CAACR,CAAuB,GAElCQ,EAAa,OAAO,CAACG,EAAeC,IAAmB,CAC5D,GAAIA,EACF,GAAIC,EAAQF,CAAa,EAAG,CAK1B,IAAMG,EAASF,EADDD,EACoBJ,CAAM,EACxC,OAAIO,IAAW,OACNH,EAEFG,CACT,KAAO,IAAKC,EAAYJ,CAAa,EAenC,OAAOK,EAAgBL,EAAgBM,GAC9BL,EAAYK,EAAOV,CAAM,CACjC,EAjBqC,CAGtC,IAAMO,EAASF,EAAYD,EAAsBJ,CAAM,EACvD,GAAIO,IAAW,OAAW,CACxB,GAAIH,IAAkB,KACpB,OAAOA,EAET,MAAM,MAAM,mEAAmE,CACjF,CACA,OAAOG,CACT,EASF,OAAOH,CACT,EAAGL,CAAK,CACV,CACA,OAAAD,EAAQ,gBAAkBH,EACnBG,CACT,CClLA,IAAMa,GAAU,CAACC,EAAuBC,IAClCC,EAAiBF,CAAO,EACnBA,EAAQ,MAAMC,CAAM,EAEpBD,EAAQC,CAAM,EAalB,SAASE,KAA4CC,EAAoB,CAC9E,OAAQH,GACCG,EAAS,KAAKJ,GAAWD,GAAQC,EAASC,CAAM,CAAC,CAE5D,CAWO,SAASI,KAA4CD,EAAoB,CAC9E,OAAQH,GACCG,EAAS,MAAMJ,GAAWD,GAAQC,EAASC,CAAM,CAAC,CAE7D,CAQO,SAASK,GAA2BL,EAAaM,EAAgC,CACtF,GAAI,CAACN,GAAU,CAACA,EAAO,KAAM,MAAO,GACpC,IAAMO,EAAoB,OAAOP,EAAO,KAAK,WAAc,SACrDQ,EAAwBF,EAAY,QAAQN,EAAO,KAAK,aAAa,EAAI,GAC/E,OAAOO,GAAqBC,CAC9B,CACA,SAASC,EAAkBC,EAAkD,CAC3E,OAAO,OAAOA,EAAE,CAAC,GAAM,YAAc,YAAaA,EAAE,CAAC,GAAK,cAAeA,EAAE,CAAC,GAAK,aAAcA,EAAE,CAAC,CACpG,CA2BO,SAASC,MAAsEC,EAAkC,CACtH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,SAAS,CAAC,EAEnES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,OAAO,CAAC,EAF1DF,GAAU,EAAEC,EAAY,CAAC,CAAC,CAGrC,CA2BO,SAASE,MAAuEF,EAAkC,CACvH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,UAAU,CAAC,EAEpES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,QAAQ,CAAC,EAF3DC,GAAW,EAAEF,EAAY,CAAC,CAAC,CAGtC,CA+BO,SAASG,MAAgFH,EAAkC,CAChI,IAAMI,EAAWhB,GACRA,GAAUA,EAAO,MAAQA,EAAO,KAAK,kBAE9C,OAAIY,EAAY,SAAW,EAClBR,EAAQU,GAAW,GAAGF,CAAW,EAAGI,CAAO,EAE/CP,EAAkBG,CAAW,EAG3BR,EAAQU,GAAW,GAAGF,CAAW,EAAGI,CAAO,EAFzCD,GAAoB,EAAEH,EAAY,CAAC,CAAC,CAG/C,CA2BO,SAASK,MAAwEL,EAAkC,CACxH,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,WAAW,CAAC,EAErES,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,IAAIC,GAAcA,EAAW,SAAS,CAAC,EAF5DI,GAAY,EAAEL,EAAY,CAAC,CAAC,CAGvC,CAoCO,SAASM,MAA+EN,EAAkC,CAC/H,OAAIA,EAAY,SAAW,EACjBZ,GAAgBK,GAA2BL,EAAQ,CAAC,UAAW,YAAa,UAAU,CAAC,EAE5FS,EAAkBG,CAAW,EAG3BV,EAAQ,GAAGU,EAAY,QAAQC,GAAc,CAACA,EAAW,QAASA,EAAW,SAAUA,EAAW,SAAS,CAAC,CAAC,EAF3GK,GAAmB,EAAEN,EAAY,CAAC,CAAC,CAG9C,CCzPA,IAAIO,GAAc,mEAMPC,EAAS,CAACC,EAAO,KAAO,CACjC,IAAIC,EAAK,GAELC,EAAIF,EACR,KAAOE,KAELD,GAAMH,GAAY,KAAK,OAAO,EAAI,GAAK,CAAC,EAE1C,OAAOG,CACT,ECSA,IAAME,GAAiD,CAAC,OAAQ,UAAW,QAAS,MAAM,EACpFC,EAAN,KAA6C,CAM3C,YAA4BC,EAAkCC,EAAoB,CAAtD,aAAAD,EAAkC,UAAAC,CAAqB,CADlE,KAEnB,EACMC,GAAN,KAA8C,CAM5C,YAA4BF,EAAkCC,EAAqB,CAAvD,aAAAD,EAAkC,UAAAC,CAAsB,CADnE,KAEnB,EAQaE,GAAsBC,GAAgC,CACjE,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAAM,CAC/C,IAAMC,EAA+B,CAAC,EACtC,QAAWC,KAAYR,GACjB,OAAOM,EAAME,CAAQ,GAAM,WAC7BD,EAAYC,CAAQ,EAAIF,EAAME,CAAQ,GAG1C,OAAOD,CACT,CACA,MAAO,CACL,QAAS,OAAOD,CAAK,CACvB,CACF,EA4MMG,GAAuB,8BAChBC,IAAmC,IAAM,CACpD,SAASA,EAA8EC,EAAoBC,EAA8EC,EAAuG,CAK9R,IAAMC,EAAkFC,EAAaJ,EAAa,aAAc,CAACT,EAAmBc,EAAmBC,EAAed,KAA0B,CAC9M,QAAAD,EACA,KAAM,CACJ,GAAIC,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,cAAe,WACjB,CACF,EAAE,EACIE,EAAoEH,EAAaJ,EAAa,WAAY,CAACK,EAAmBC,EAAed,KAAwB,CACzK,QAAS,OACT,KAAM,CACJ,GAAIA,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,cAAe,SACjB,CACF,EAAE,EACIG,EAAsEJ,EAAaJ,EAAa,YAAa,CAACS,EAAqBJ,EAAmBC,EAAef,EAAyBC,KAAyB,CAC3N,QAAAD,EACA,OAAQW,GAAWA,EAAQ,gBAAkBR,IAAoBe,GAAS,UAAU,EACpF,KAAM,CACJ,GAAIjB,GAAe,CAAC,EACpB,IAAAc,EACA,UAAAD,EACA,kBAAmB,CAAC,CAACd,EACrB,cAAe,WACf,QAASkB,GAAO,OAAS,aACzB,UAAWA,GAAO,OAAS,gBAC7B,CACF,EAAE,EACF,SAASC,EAAcJ,EAAe,CACpC,OAAAK,CACF,EAA8B,CAAC,EAAmE,CAChG,MAAO,CAACC,EAAUC,EAAUC,IAAU,CACpC,IAAMT,EAAYH,GAAS,YAAcA,EAAQ,YAAYI,CAAG,EAAIS,EAAO,EACrEC,EAAkB,IAAI,gBACxBC,EACAC,EACJ,SAASC,EAAMC,EAAiB,CAC9BF,EAAcE,EACdJ,EAAgB,MAAM,CACxB,CACIL,IACEA,EAAO,QACTQ,EAAMrB,EAAoB,EAE1Ba,EAAO,iBAAiB,QAAS,IAAMQ,EAAMrB,EAAoB,EAAG,CAClE,KAAM,EACR,CAAC,GAGL,IAAMuB,EAAU,gBAAkB,CAChC,IAAIC,EACJ,GAAI,CACF,IAAIC,EAAkBrB,GAAS,YAAYI,EAAK,CAC9C,SAAAO,EACA,MAAAC,CACF,CAAC,EAID,GAHIU,GAAWD,CAAe,IAC5BA,EAAkB,MAAMA,GAEtBA,IAAoB,IAASP,EAAgB,OAAO,QAEtD,KAAM,CACJ,KAAM,iBACN,QAAS,oDACX,EAEF,IAAMS,EAAiB,IAAI,QAAe,CAACC,EAAGC,IAAW,CACvDV,EAAe,IAAM,CACnBU,EAAO,CACL,KAAM,aACN,QAAST,GAAe,SAC1B,CAAC,CACH,EACAF,EAAgB,OAAO,iBAAiB,QAASC,EAAc,CAC7D,KAAM,EACR,CAAC,CACH,CAAC,EACDL,EAASL,EAAQF,EAAWC,EAAKJ,GAAS,iBAAiB,CACzD,UAAAG,EACA,IAAAC,CACF,EAAG,CACD,SAAAO,EACA,MAAAC,CACF,CAAC,CAAC,CAAQ,EACVQ,EAAc,MAAM,QAAQ,KAAK,CAACG,EAAgB,QAAQ,QAAQxB,EAAeK,EAAK,CACpF,SAAAM,EACA,SAAAC,EACA,MAAAC,EACA,UAAAT,EACA,OAAQW,EAAgB,OACxB,MAAAG,EACA,gBAAkB,CAACxB,EAAsBH,IAChC,IAAIF,EAAgBK,EAAOH,CAAI,EAExC,iBAAmB,CAACG,EAAgBH,IAC3B,IAAIC,GAAgBE,EAAOH,CAAI,CAE1C,CAAC,CAAC,EAAE,KAAKoC,GAAU,CACjB,GAAIA,aAAkBtC,EACpB,MAAMsC,EAER,OAAIA,aAAkBnC,GACbU,EAAUyB,EAAO,QAASvB,EAAWC,EAAKsB,EAAO,IAAI,EAEvDzB,EAAUyB,EAAevB,EAAWC,CAAG,CAChD,CAAC,CAAC,CAAC,CACL,OAASuB,EAAK,CACZP,EAAcO,aAAevC,EAAkBkB,EAAS,KAAMH,EAAWC,EAAKuB,EAAI,QAASA,EAAI,IAAI,EAAIrB,EAASqB,EAAYxB,EAAWC,CAAG,CAC5I,QAAE,CACIW,GACFD,EAAgB,OAAO,oBAAoB,QAASC,CAAY,CAEpE,CAOA,OADqBf,GAAW,CAACA,EAAQ,4BAA8BM,EAAS,MAAMc,CAAW,GAAMA,EAAoB,KAAK,WAE9HV,EAASU,CAAkB,EAEtBA,CACT,EAAE,EACF,OAAO,OAAO,OAAOD,EAA6B,CAChD,MAAAF,EACA,UAAAd,EACA,IAAAC,EACA,QAAS,CACP,OAAOe,EAAQ,KAAUS,EAAY,CACvC,CACF,CAAC,CACH,CACF,CACA,OAAO,OAAO,OAAOpB,EAA8E,CACjG,QAAAH,EACA,SAAAC,EACA,UAAAL,EACA,QAAS4B,EAAQvB,EAAUL,CAAS,EACpC,WAAAH,CACF,CAAC,CACH,CACA,OAAAD,EAAiB,UAAY,IAAMA,EAC5BA,CACT,GAAG,EAaI,SAAS+B,GAA0CE,EAAsC,CAC9F,GAAIA,EAAO,MAAQA,EAAO,KAAK,kBAC7B,MAAMA,EAAO,QAEf,GAAIA,EAAO,MACT,MAAMA,EAAO,MAEf,OAAOA,EAAO,OAChB,CAEA,SAASR,GAAW7B,EAAuC,CACzD,OAAOA,IAAU,MAAQ,OAAOA,GAAU,UAAY,OAAOA,EAAM,MAAS,UAC9E,CCjbA,IAAMsC,GAAkC,OAAO,IAAI,4BAA4B,EAElEC,GAET,CACF,CAACD,EAAgB,EAAGE,EACtB,EAwLYC,QACVA,EAAA,QAAU,UACVA,EAAA,mBAAqB,qBACrBA,EAAA,WAAa,aAHHA,QAAA,IAgIZ,SAASC,GAAQC,EAAeC,EAA2B,CACzD,MAAO,GAAGD,CAAK,IAAIC,CAAS,EAC9B,CAMO,SAASC,GAAiB,CAC/B,SAAAC,CACF,EAA4B,CAAC,EAAG,CAC9B,IAAMC,EAAMD,GAAU,aAAaR,EAAgB,EACnD,OAAO,SAA4KU,EAA0I,CAC3T,GAAM,CACJ,KAAAC,EACA,YAAAC,EAAcD,CAChB,EAAID,EACJ,GAAI,CAACC,EACH,MAAM,IAAI,MAA8CE,EAAwB,EAAE,CAAiD,EAOrI,IAAMC,GAAY,OAAOJ,EAAQ,UAAa,WAAaA,EAAQ,SAASK,GAA4B,CAAC,EAAIL,EAAQ,WAAa,CAAC,EAC7HM,EAAe,OAAO,KAAKF,CAAQ,EACnCG,EAAyC,CAC7C,wBAAyB,CAAC,EAC1B,wBAAyB,CAAC,EAC1B,eAAgB,CAAC,EACjB,cAAe,CAAC,CAClB,EACMC,EAAuD,CAC3D,QAAQC,EAAuDC,EAA6B,CAC1F,IAAMC,EAAO,OAAOF,GAAwB,SAAWA,EAAsBA,EAAoB,KACjG,GAAI,CAACE,EACH,MAAM,IAAI,MAA8CR,EAAyB,EAAE,CAAkE,EAEvJ,GAAIQ,KAAQJ,EAAQ,wBAClB,MAAM,IAAI,MAA8CJ,EAAyB,EAAE,CAA4F,EAEjL,OAAAI,EAAQ,wBAAwBI,CAAI,EAAID,EACjCF,CACT,EACA,WAAWI,EAASF,EAAS,CAC3B,OAAAH,EAAQ,cAAc,KAAK,CACzB,QAAAK,EACA,QAAAF,CACF,CAAC,EACMF,CACT,EACA,aAAaP,EAAMY,EAAe,CAChC,OAAAN,EAAQ,eAAeN,CAAI,EAAIY,EACxBL,CACT,EACA,kBAAkBP,EAAMS,EAAS,CAC/B,OAAAH,EAAQ,wBAAwBN,CAAI,EAAIS,EACjCF,CACT,CACF,EACAF,EAAa,QAAQQ,GAAe,CAClC,IAAMC,EAAoBX,EAASU,CAAW,EACxCE,EAAiC,CACrC,YAAAF,EACA,KAAMpB,GAAQO,EAAMa,CAAW,EAC/B,eAAgB,OAAOd,EAAQ,UAAa,UAC9C,EACIiB,GAA0CF,CAAiB,EAC7DG,GAAiCF,EAAgBD,EAAmBP,EAAgBT,CAAG,EAEvFoB,GAAqCH,EAAgBD,EAA0BP,CAAc,CAEjG,CAAC,EACD,SAASY,GAAe,CAMtB,GAAM,CAACC,EAAgB,CAAC,EAAGC,EAAiB,CAAC,EAAGC,EAAqB,MAAS,EAAI,OAAOvB,EAAQ,eAAkB,WAAawB,GAA8BxB,EAAQ,aAAa,EAAI,CAACA,EAAQ,aAAa,EACvMyB,EAAoB,CACxB,GAAGJ,EACH,GAAGd,EAAQ,uBACb,EACA,OAAOmB,GAAc1B,EAAQ,aAAc2B,GAAW,CACpD,QAASC,KAAOH,EACdE,EAAQ,QAAQC,EAAKH,EAAkBG,CAAG,CAAqB,EAEjE,QAASC,KAAMtB,EAAQ,cACrBoB,EAAQ,WAAWE,EAAG,QAASA,EAAG,OAAO,EAE3C,QAASC,KAAKR,EACZK,EAAQ,WAAWG,EAAE,QAASA,EAAE,OAAO,EAErCP,GACFI,EAAQ,eAAeJ,CAAkB,CAE7C,CAAC,CACH,CACA,IAAMQ,EAAcC,GAAiBA,EAC/BC,EAAwB,IAAI,IAC5BC,EAAqB,IAAI,QAC3BC,EACJ,SAASzB,EAAQsB,EAA0BI,EAAuB,CAChE,OAAKD,IAAUA,EAAWf,EAAa,GAChCe,EAASH,EAAOI,CAAM,CAC/B,CACA,SAASC,GAAkB,CACzB,OAAKF,IAAUA,EAAWf,EAAa,GAChCe,EAAS,gBAAgB,CAClC,CACA,SAASG,EAAmEpC,EAAiCqC,EAAW,GAA4I,CAClQ,SAASC,EAAYR,EAA6C,CAChE,IAAIS,EAAaT,EAAM9B,CAAW,EAClC,OAAI,OAAOuC,EAAe,KACpBF,IACFE,EAAaC,EAAoBR,EAAoBM,EAAaH,CAAe,GAK9EI,CACT,CACA,SAASE,EAAaC,EAAyCb,EAAY,CACzE,IAAMc,EAAgBH,EAAoBT,EAAuBM,EAAU,IAAM,IAAI,OAAS,EAC9F,OAAOG,EAAoBG,EAAeD,EAAa,IAAM,CAC3D,IAAME,EAA0C,CAAC,EACjD,OAAW,CAAC7C,EAAM8C,CAAQ,IAAK,OAAO,QAAQ/C,EAAQ,WAAa,CAAC,CAAC,EACnE8C,EAAI7C,CAAI,EAAI+C,GAAaD,EAAUH,EAAa,IAAMF,EAAoBR,EAAoBU,EAAaP,CAAe,EAAGE,CAAQ,EAEvI,OAAOO,CACT,CAAC,CACH,CACA,MAAO,CACL,YAAA5C,EACA,aAAAyC,EACA,IAAI,WAAY,CACd,OAAOA,EAAaH,CAAW,CACjC,EACA,YAAAA,CACF,CACF,CACA,IAAM7C,EAAkE,CACtE,KAAAM,EACA,QAAAS,EACA,QAASH,EAAQ,eACjB,aAAcA,EAAQ,wBACtB,gBAAA8B,EACA,GAAGC,EAAkBpC,CAAW,EAChC,WAAW+C,EAAY,CACrB,YAAaC,EACb,GAAGC,CACL,EAAI,CAAC,EAAG,CACN,IAAMC,EAAiBF,GAAWhD,EAClC,OAAA+C,EAAW,OAAO,CAChB,YAAaG,EACb,QAAA1C,CACF,EAAGyC,CAAM,EACF,CACL,GAAGxD,EACH,GAAG2C,EAAkBc,EAAgB,EAAI,CAC3C,CACF,CACF,EACA,OAAOzD,CACT,CACF,CACA,SAASqD,GAAyDD,EAAaH,EAAwCP,EAA8BE,EAAoB,CACvK,SAASc,EAAQC,KAAwBC,EAAa,CACpD,IAAId,EAAaG,EAAYU,CAAS,EACtC,OAAI,OAAOb,EAAe,KACpBF,IACFE,EAAaJ,EAAgB,GAK1BU,EAASN,EAAY,GAAGc,CAAI,CACrC,CACA,OAAAF,EAAQ,UAAYN,EACbM,CACT,CAUO,IAAMG,GAA6B3D,GAAiB,EAkE3D,SAASQ,IAAsD,CAC7D,SAASoD,EAAWC,EAAoDP,EAAgG,CACtK,MAAO,CACL,uBAAwB,aACxB,eAAAO,EACA,GAAGP,CACL,CACF,CACA,OAAAM,EAAW,UAAY,IAAMA,EACtB,CACL,QAAQE,EAAsC,CAC5C,OAAO,OAAO,OAAO,CAGnB,CAACA,EAAY,IAAI,KAAKJ,EAAsC,CAC1D,OAAOI,EAAY,GAAGJ,CAAI,CAC5B,CACF,EAAEI,EAAY,IAAI,EAAG,CACnB,uBAAwB,SAC1B,CAAU,CACZ,EACA,gBAAgBC,EAASlD,EAAS,CAChC,MAAO,CACL,uBAAwB,qBACxB,QAAAkD,EACA,QAAAlD,CACF,CACF,EACA,WAAY+C,CACd,CACF,CACA,SAAStC,GAAqC,CAC5C,KAAAR,EACA,YAAAG,EACA,eAAA+C,CACF,EAAmBC,EAGuDvD,EAA+C,CACvH,IAAIoD,EACAI,EACJ,GAAI,YAAaD,EAAyB,CACxC,GAAID,GAAkB,CAACG,GAAmCF,CAAuB,EAC/E,MAAM,IAAI,MAA8C3D,EAAyB,EAAE,CAA+G,EAEpMwD,EAAcG,EAAwB,QACtCC,EAAkBD,EAAwB,OAC5C,MACEH,EAAcG,EAEhBvD,EAAQ,QAAQI,EAAMgD,CAAW,EAAE,kBAAkB7C,EAAa6C,CAAW,EAAE,aAAa7C,EAAaiD,EAAkBE,EAAatD,EAAMoD,CAAe,EAAIE,EAAatD,CAAI,CAAC,CACrL,CACA,SAASM,GAA0CF,EAAqG,CACtJ,OAAOA,EAAkB,yBAA2B,YACtD,CACA,SAASiD,GAA0CjD,EAA2F,CAC5I,OAAOA,EAAkB,yBAA2B,oBACtD,CACA,SAASG,GAAwC,CAC/C,KAAAP,EACA,YAAAG,CACF,EAAmBC,EAA2ER,EAA+CR,EAA2C,CACtL,GAAI,CAACA,EACH,MAAM,IAAI,MAA8CI,EAAyB,EAAE,CAAiM,EAEtR,GAAM,CACJ,eAAAuD,EACA,UAAAQ,EACA,QAAAC,EACA,SAAAC,EACA,QAAAC,EACA,QAAArE,CACF,EAAIe,EACEuD,EAAQvE,EAAIY,EAAM+C,EAAgB1D,CAAc,EACtDO,EAAQ,aAAaO,EAAawD,CAAK,EACnCJ,GACF3D,EAAQ,QAAQ+D,EAAM,UAAWJ,CAAS,EAExCC,GACF5D,EAAQ,QAAQ+D,EAAM,QAASH,CAAO,EAEpCC,GACF7D,EAAQ,QAAQ+D,EAAM,SAAUF,CAAQ,EAEtCC,GACF9D,EAAQ,WAAW+D,EAAM,QAASD,CAAO,EAE3C9D,EAAQ,kBAAkBO,EAAa,CACrC,UAAWoD,GAAaK,GACxB,QAASJ,GAAWI,GACpB,SAAUH,GAAYG,GACtB,QAASF,GAAWE,EACtB,CAAC,CACH,CACA,SAASA,IAAO,CAAC,CC3qBV,SAASC,IAAoE,CAClF,MAAO,CACL,IAAK,CAAC,EACN,SAAU,CAAC,CACb,CACF,CACO,SAASC,GAAkDC,EAAoE,CAGpI,SAASC,EAAgBC,EAAuB,CAAC,EAAGC,EAA8C,CAChG,IAAMC,EAAQ,OAAO,OAAON,GAAsB,EAAGI,CAAe,EACpE,OAAOC,EAAWH,EAAa,OAAOI,EAAOD,CAAQ,EAAIC,CAC3D,CACA,MAAO,CACL,gBAAAH,CACF,CACF,CCVO,SAASI,IAAiD,CAG/D,SAASC,EAAgBC,EAAgDC,EAA+B,CAAC,EAAgC,CACvI,GAAM,CACJ,eAAAC,EAAiBC,EACnB,EAAIF,EACEG,EAAaC,GAA8BA,EAAM,IACjDC,EAAkBD,GAA8BA,EAAM,SACtDE,EAAYL,EAAeE,EAAWE,EAAgB,CAACE,EAAKC,IAAkBD,EAAI,IAAIE,GAAMD,EAASC,CAAE,CAAE,CAAC,EAC1GC,EAAW,CAACC,EAAYF,IAAWA,EACnCG,EAAa,CAACJ,EAAyBC,IAAWD,EAASC,CAAE,EAC7DI,EAAcZ,EAAeE,EAAWI,GAAOA,EAAI,MAAM,EAC/D,GAAI,CAACR,EACH,MAAO,CACL,UAAAI,EACA,eAAAE,EACA,UAAAC,EACA,YAAAO,EACA,WAAYZ,EAAeI,EAAgBK,EAAUE,CAAU,CACjE,EAEF,IAAME,EAA2Bb,EAAeF,EAAgDM,CAAc,EAC9G,MAAO,CACL,UAAWJ,EAAeF,EAAaI,CAAS,EAChD,eAAgBW,EAChB,UAAWb,EAAeF,EAAaO,CAAS,EAChD,YAAaL,EAAeF,EAAac,CAAW,EACpD,WAAYZ,EAAea,EAA0BJ,EAAUE,CAAU,CAC3E,CACF,CACA,MAAO,CACL,aAAAd,CACF,CACF,CCpCO,IAAMiB,GAAeC,EACrB,SAASC,GAA0DC,EAAuD,CAC/H,IAAMC,EAAWC,EAAoB,CAACC,EAAcC,IAAuCJ,EAAQI,CAAK,CAAC,EACzG,OAAO,SAA0DA,EAAgC,CAC/F,OAAOH,EAASG,EAAY,MAAS,CACvC,CACF,CACO,SAASF,EAA+CF,EAA+D,CAC5H,OAAO,SAA0DI,EAAUC,EAA8B,CACvG,SAASC,EAAwBD,EAAoD,CACnF,OAAOE,GAAMF,CAAG,CAClB,CACA,IAAMG,EAAcC,GAAuC,CACrDH,EAAwBD,CAAG,EAC7BL,EAAQK,EAAI,QAASI,CAAK,EAE1BT,EAAQK,EAAKI,CAAK,CAEtB,EACA,OAAIZ,GAA0CO,CAAK,GAIjDI,EAAWJ,CAAK,EAGTA,GAEFM,EAAgBN,EAAOI,CAAU,CAC1C,CACF,CChCO,SAASG,EAAsCC,EAAWC,EAA6B,CAK5F,OAJYA,EAASD,CAAM,CAK7B,CACO,SAASE,EAA4CC,EAAsD,CAChH,OAAK,MAAM,QAAQA,CAAQ,IACzBA,EAAW,OAAO,OAAOA,CAAQ,GAE5BA,CACT,CACO,SAASC,EAAcC,EAAwB,CACpD,OAAQC,EAAQD,CAAK,EAAIE,EAAQF,CAAK,EAAIA,CAC5C,CACO,SAASG,GAAkDC,EAA2CR,EAA6BS,EAAkE,CAC1MD,EAAcP,EAAoBO,CAAW,EAC7C,IAAME,EAAmBP,EAAWM,EAAM,GAAG,EACvCE,EAAc,IAAI,IAAQD,CAAgB,EAC1CE,EAAa,CAAC,EACdC,EAAW,IAAI,IAAQ,CAAC,CAAC,EACzBC,EAA2B,CAAC,EAClC,QAAWf,KAAUS,EAAa,CAChC,IAAMO,EAAKjB,EAAcC,EAAQC,CAAQ,EACrCW,EAAY,IAAII,CAAE,GAAKF,EAAS,IAAIE,CAAE,EACxCD,EAAQ,KAAK,CACX,GAAAC,EACA,QAAShB,CACX,CAAC,GAEDc,EAAS,IAAIE,CAAE,EACfH,EAAM,KAAKb,CAAM,EAErB,CACA,MAAO,CAACa,EAAOE,EAASJ,CAAgB,CAC1C,CCnCO,SAASM,GAAmDC,EAAwD,CAEzH,SAASC,EAAcC,EAAWC,EAAgB,CAChD,IAAMC,EAAMC,EAAcH,EAAQF,CAAQ,EACtCI,KAAOD,EAAM,WAGjBA,EAAM,IAAI,KAAKC,CAAqB,EACnCD,EAAM,SAA2BC,CAAG,EAAIF,EAC3C,CACA,SAASI,EAAeC,EAA2CJ,EAAgB,CACjFI,EAAcC,EAAoBD,CAAW,EAC7C,QAAWL,KAAUK,EACnBN,EAAcC,EAAQC,CAAK,CAE/B,CACA,SAASM,EAAcP,EAAWC,EAAgB,CAChD,IAAMC,EAAMC,EAAcH,EAAQF,CAAQ,EACpCI,KAAOD,EAAM,UACjBA,EAAM,IAAI,KAAKC,CAAqB,EAGrCD,EAAM,SAA2BC,CAAG,EAAIF,CAC3C,CACA,SAASQ,EAAeH,EAA2CJ,EAAgB,CACjFI,EAAcC,EAAoBD,CAAW,EAC7C,QAAWL,KAAUK,EACnBE,EAAcP,EAAQC,CAAK,CAE/B,CACA,SAASQ,EAAcJ,EAA2CJ,EAAgB,CAChFI,EAAcC,EAAoBD,CAAW,EAC7CJ,EAAM,IAAM,CAAC,EACbA,EAAM,SAAW,CAAC,EAClBG,EAAeC,EAAaJ,CAAK,CACnC,CACA,SAASS,EAAiBR,EAASD,EAAgB,CACjD,OAAOU,EAAkB,CAACT,CAAG,EAAGD,CAAK,CACvC,CACA,SAASU,EAAkBC,EAAqBX,EAAgB,CAC9D,IAAIY,EAAY,GAChBD,EAAK,QAAQV,GAAO,CACdA,KAAOD,EAAM,WACf,OAAQA,EAAM,SAA2BC,CAAG,EAC5CW,EAAY,GAEhB,CAAC,EACGA,IACFZ,EAAM,IAAOA,EAAM,IAAa,OAAOa,GAAMA,KAAMb,EAAM,QAAQ,EAErE,CACA,SAASc,EAAiBd,EAAgB,CACxC,OAAO,OAAOA,EAAO,CACnB,IAAK,CAAC,EACN,SAAU,CAAC,CACb,CAAC,CACH,CACA,SAASe,EAAWJ,EAEjBK,EAAuBhB,EAAmB,CAC3C,IAAMiB,EAA2BjB,EAAM,SAA2BgB,EAAO,EAAE,EAC3E,GAAIC,IAAa,OACf,MAAO,GAET,IAAMC,EAAa,OAAO,OAAO,CAAC,EAAGD,EAAUD,EAAO,OAAO,EACvDG,EAASjB,EAAcgB,EAASrB,CAAQ,EACxCuB,EAAYD,IAAWH,EAAO,GACpC,OAAII,IACFT,EAAKK,EAAO,EAAE,EAAIG,EAClB,OAAQnB,EAAM,SAA2BgB,EAAO,EAAE,GAGnDhB,EAAM,SAA2BmB,CAAM,EAAID,EACrCE,CACT,CACA,SAASC,EAAiBL,EAAuBhB,EAAgB,CAC/D,OAAOsB,EAAkB,CAACN,CAAM,EAAGhB,CAAK,CAC1C,CACA,SAASsB,EAAkBC,EAAuCvB,EAAgB,CAChF,IAAMwB,EAEF,CAAC,EACCC,EAEF,CAAC,EACLF,EAAQ,QAAQP,GAAU,CAEpBA,EAAO,MAAMhB,EAAM,WAErByB,EAAiBT,EAAO,EAAE,EAAI,CAC5B,GAAIA,EAAO,GAGX,QAAS,CACP,GAAGS,EAAiBT,EAAO,EAAE,GAAG,QAChC,GAAGA,EAAO,OACZ,CACF,EAEJ,CAAC,EACDO,EAAU,OAAO,OAAOE,CAAgB,EACdF,EAAQ,OAAS,GAEpBA,EAAQ,OAAOP,GAAUD,EAAWS,EAASR,EAAQhB,CAAK,CAAC,EAAE,OAAS,IAEzFA,EAAM,IAAM,OAAO,OAAOA,EAAM,QAAQ,EAAE,IAAI0B,GAAKxB,EAAcwB,EAAQ7B,CAAQ,CAAC,EAGxF,CACA,SAAS8B,EAAiB5B,EAAWC,EAAgB,CACnD,OAAO4B,EAAkB,CAAC7B,CAAM,EAAGC,CAAK,CAC1C,CACA,SAAS4B,EAAkBxB,EAA2CJ,EAAgB,CACpF,GAAM,CAAC6B,EAAOX,CAAO,EAAIY,GAAiC1B,EAAaP,EAAUG,CAAK,EACtFG,EAAe0B,EAAO7B,CAAK,EAC3BsB,EAAkBJ,EAASlB,CAAK,CAClC,CACA,MAAO,CACL,UAAW+B,GAAkCjB,CAAgB,EAC7D,OAAQkB,EAAoBlC,CAAa,EACzC,QAASkC,EAAoB7B,CAAc,EAC3C,OAAQ6B,EAAoB1B,CAAa,EACzC,QAAS0B,EAAoBzB,CAAc,EAC3C,OAAQyB,EAAoBxB,CAAa,EACzC,UAAWwB,EAAoBX,CAAgB,EAC/C,WAAYW,EAAoBV,CAAiB,EACjD,UAAWU,EAAoBL,CAAgB,EAC/C,WAAYK,EAAoBJ,CAAiB,EACjD,UAAWI,EAAoBvB,CAAgB,EAC/C,WAAYuB,EAAoBtB,CAAiB,CACnD,CACF,CCjIO,SAASuB,GAAmBC,EAAkBC,EAASC,EAAyC,CACrG,IAAIC,EAAW,EACXC,EAAYJ,EAAY,OAC5B,KAAOG,EAAWC,GAAW,CAC3B,IAAIC,EAAcF,EAAWC,IAAc,EACrCE,EAAcN,EAAYK,CAAW,EAC/BH,EAAmBD,EAAMK,CAAW,GACrC,EACTH,EAAWE,EAAc,EAEzBD,EAAYC,CAEhB,CACA,OAAOF,CACT,CACO,SAASI,GAAUP,EAAkBC,EAASC,EAAsC,CACzF,IAAMM,EAAgBT,GAAgBC,EAAaC,EAAMC,CAAkB,EAC3E,OAAAF,EAAY,OAAOQ,EAAe,EAAGP,CAAI,EAClCD,CACT,CACO,SAASS,GAAiDC,EAA6BC,EAAkD,CAE9I,GAAM,CACJ,UAAAC,EACA,WAAAC,EACA,UAAAC,CACF,EAAIC,GAA2BL,CAAQ,EACvC,SAASM,EAAcC,EAAWC,EAAgB,CAChD,OAAOC,EAAe,CAACF,CAAM,EAAGC,CAAK,CACvC,CACA,SAASC,EAAeC,EAA2CF,EAAUG,EAA0B,CACrGD,EAAcE,EAAoBF,CAAW,EAC7C,IAAMG,EAAe,IAAI,IAAQF,GAAeG,EAAWN,EAAM,GAAG,CAAC,EAC/DO,EAAY,IAAI,IAChBC,EAASN,EAAY,OAAOO,GAAS,CACzC,IAAMC,EAAUC,EAAcF,EAAOjB,CAAQ,EACvCoB,EAAW,CAACL,EAAU,IAAIG,CAAO,EACvC,OAAIE,GAAUL,EAAU,IAAIG,CAAO,EAC5B,CAACL,EAAa,IAAIK,CAAO,GAAKE,CACvC,CAAC,EACGJ,EAAO,SAAW,GACpBK,EAAcb,EAAOQ,CAAM,CAE/B,CACA,SAASM,EAAcf,EAAWC,EAAgB,CAChD,OAAOe,EAAe,CAAChB,CAAM,EAAGC,CAAK,CACvC,CACA,SAASe,EAAeb,EAA2CF,EAAgB,CACjF,IAAIgB,EAAuB,CAAC,EAE5B,GADAd,EAAcE,EAAoBF,CAAW,EACzCA,EAAY,SAAW,EAAG,CAC5B,QAAWnB,KAAQmB,EAAa,CAC9B,IAAMe,EAAWzB,EAAST,CAAI,EAE9BiC,EAAqBC,CAAQ,EAAIlC,EACjC,OAAQiB,EAAM,SAA2BiB,CAAQ,CACnD,CACAf,EAAcE,EAAoBY,CAAoB,EACtDH,EAAcb,EAAOE,CAAW,CAClC,CACF,CACA,SAASgB,EAAchB,EAA2CF,EAAgB,CAChFE,EAAcE,EAAoBF,CAAW,EAC7CF,EAAM,SAAW,CAAC,EAClBA,EAAM,IAAM,CAAC,EACbC,EAAeC,EAAaF,EAAO,CAAC,CAAC,CACvC,CACA,SAASmB,EAAiBC,EAAuBpB,EAAgB,CAC/D,OAAOqB,EAAkB,CAACD,CAAM,EAAGpB,CAAK,CAC1C,CACA,SAASqB,EAAkBC,EAAuCtB,EAAgB,CAChF,IAAIuB,EAAiB,GACjBC,EAAc,GAClB,QAASJ,KAAUE,EAAS,CAC1B,IAAMvB,EAAyBC,EAAM,SAA2BoB,EAAO,EAAE,EACzE,GAAI,CAACrB,EACH,SAEFwB,EAAiB,GACjB,OAAO,OAAOxB,EAAQqB,EAAO,OAAO,EACpC,IAAMK,EAAQjC,EAASO,CAAM,EAC7B,GAAIqB,EAAO,KAAOK,EAAO,CAGvBD,EAAc,GACd,OAAQxB,EAAM,SAA2BoB,EAAO,EAAE,EAClD,IAAMM,EAAY1B,EAAM,IAAa,QAAQoB,EAAO,EAAE,EACtDpB,EAAM,IAAI0B,CAAQ,EAAID,EACrBzB,EAAM,SAA2ByB,CAAK,EAAI1B,CAC7C,CACF,CACIwB,GACFV,EAAcb,EAAO,CAAC,EAAGuB,EAAgBC,CAAW,CAExD,CACA,SAASG,EAAiB5B,EAAWC,EAAgB,CACnD,OAAO4B,EAAkB,CAAC7B,CAAM,EAAGC,CAAK,CAC1C,CACA,SAAS4B,EAAkB1B,EAA2CF,EAAgB,CACpF,GAAM,CAAC6B,EAAOC,EAASC,CAAgB,EAAIC,GAAiC9B,EAAaV,EAAUQ,CAAK,EACpG6B,EAAM,QACR5B,EAAe4B,EAAO7B,EAAO+B,CAAgB,EAE3CD,EAAQ,QACVT,EAAkBS,EAAS9B,CAAK,CAEpC,CACA,SAASiC,EAAeC,EAAuBC,EAAuB,CACpE,GAAID,EAAE,SAAWC,EAAE,OACjB,MAAO,GAET,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAC5B,GAAIF,EAAEE,CAAC,IAAMD,EAAEC,CAAC,EAGhB,MAAO,GAET,MAAO,EACT,CAEA,IAAMvB,EAA+B,CAACb,EAAOqC,EAAYd,EAAgBC,IAAgB,CACvF,IAAMc,EAAkBhC,EAAWN,EAAM,QAAQ,EAC3CuC,EAAajC,EAAWN,EAAM,GAAG,EACjCwC,EAAgBxC,EAAM,SACxByC,EAAoBF,EACpBf,IACFiB,EAAM,IAAI,IAAIF,CAAU,GAE1B,IAAIG,EAAsB,CAAC,EAC3B,QAAWC,KAAMF,EAAK,CACpB,IAAM1C,GAASuC,EAAgBK,CAAE,EAC7B5C,IACF2C,EAAe,KAAK3C,EAAM,CAE9B,CACA,IAAM6C,EAAqBF,EAAe,SAAW,EAGrD,QAAW3D,KAAQsD,EACjBG,EAAchD,EAAST,CAAI,CAAC,EAAIA,EAC3B6D,GAEHvD,GAAOqD,EAAgB3D,EAAMU,CAAQ,EAGrCmD,EAEFF,EAAiBL,EAAW,MAAM,EAAE,KAAK5C,CAAQ,EACxC8B,GAETmB,EAAe,KAAKjD,CAAQ,EAE9B,IAAMoD,EAAeH,EAAe,IAAIlD,CAAQ,EAC3CyC,EAAeM,EAAYM,CAAY,IAC1C7C,EAAM,IAAM6C,EAEhB,EACA,MAAO,CACL,UAAAnD,EACA,WAAAC,EACA,UAAAC,EACA,OAAQkD,EAAoBhD,CAAa,EACzC,UAAWgD,EAAoB3B,CAAgB,EAC/C,UAAW2B,EAAoBnB,CAAgB,EAC/C,OAAQmB,EAAoBhC,CAAa,EACzC,QAASgC,EAAoB/B,CAAc,EAC3C,OAAQ+B,EAAoB5B,CAAa,EACzC,QAAS4B,EAAoB7C,CAAc,EAC3C,WAAY6C,EAAoBzB,CAAiB,EACjD,WAAYyB,EAAoBlB,CAAiB,CACnD,CACF,CChKO,SAASmB,GAAuBC,EAA6C,CAAC,EAA+B,CAClH,GAAM,CACJ,SAAAC,EACA,aAAAC,CACF,EAAiD,CAC/C,aAAc,GACd,SAAWC,GAAkBA,EAAS,GACtC,GAAGH,CACL,EACMI,EAAeF,EAAeG,GAAyBJ,EAAUC,CAAY,EAAII,GAA2BL,CAAQ,EACpHM,EAAeC,GAA0BJ,CAAY,EACrDK,EAAmBC,GAAoC,EAC7D,MAAO,CACL,SAAAT,EACA,aAAAC,EACA,GAAGK,EACH,GAAGE,EACH,GAAGL,CACL,CACF,CCnCA,IAAMO,GAAO,OACPC,GAAW,WACXC,GAAY,YACZC,GAAY,YAGLC,GAAgB,QAAQD,EAAS,GACjCE,GAAgB,QAAQH,EAAS,GACjCI,GAAoB,GAAGL,EAAQ,IAAIE,EAAS,GAC5CI,GAAoB,GAAGN,EAAQ,IAAIC,EAAS,GAC5CM,EAAN,KAAgD,CAGrD,YAAmBC,EAA0B,CAA1B,UAAAA,EACjB,KAAK,QAAU,GAAGT,EAAI,IAAIG,EAAS,aAAaM,CAAI,GACtD,CAJA,KAAO,iBACP,OAIF,EChBO,IAAMC,GAAuG,CAACC,EAAeC,IAAqB,CACvJ,GAAI,OAAOD,GAAS,WAClB,MAAM,IAAI,UAAkDE,EAAwB,EAAE,CAAmC,CAE7H,EACaC,EAAO,IAAM,CAAC,EACdC,GAAiB,CAAKC,EAAqBC,EAAUH,KAChEE,EAAQ,MAAMC,CAAO,EACdD,GAEIE,GAAyB,CAACC,EAA0BC,KAC/DD,EAAY,iBAAiB,QAASC,EAAU,CAC9C,KAAM,EACR,CAAC,EACM,IAAMD,EAAY,oBAAoB,QAASC,CAAQ,GCLzD,IAAMC,EAAkBC,GAA8B,CAC3D,GAAIA,EAAO,QACT,MAAM,IAAIC,EAAeD,EAAO,MAAM,CAE1C,EAOO,SAASE,GAAkBF,EAAqBG,EAAiC,CACtF,IAAIC,EAAUC,EACd,OAAO,IAAI,QAAW,CAACC,EAASC,IAAW,CACzC,IAAMC,EAAkB,IAAMD,EAAO,IAAIN,EAAeD,EAAO,MAAM,CAAC,EACtE,GAAIA,EAAO,QAAS,CAClBQ,EAAgB,EAChB,MACF,CACAJ,EAAUK,GAAuBT,EAAQQ,CAAe,EACxDL,EAAQ,QAAQ,IAAMC,EAAQ,CAAC,EAAE,KAAKE,EAASC,CAAM,CACvD,CAAC,EAAE,QAAQ,IAAM,CAEfH,EAAUC,CACZ,CAAC,CACH,CASO,IAAMK,GAAU,MAAWC,EAAwBC,IAAiD,CACzG,GAAI,CACF,aAAM,QAAQ,QAAQ,EAEf,CACL,OAAQ,KACR,MAHY,MAAMD,EAAK,CAIzB,CACF,OAASE,EAAY,CACnB,MAAO,CACL,OAAQA,aAAiBZ,EAAiB,YAAc,WACxD,MAAAY,CACF,CACF,QAAE,CACAD,IAAU,CACZ,CACF,EASaE,EAAmBd,GACtBG,GACCY,GAAeb,GAAeF,EAAQG,CAAO,EAAE,KAAKa,IACzDjB,EAAeC,CAAM,EACdgB,EACR,CAAC,EAUOC,GAAejB,GAAwB,CAClD,IAAMkB,EAAQJ,EAAkBd,CAAM,EACtC,OAAQmB,GACCD,EAAM,IAAI,QAAcZ,GAAW,WAAWA,EAASa,CAAS,CAAC,CAAC,CAE7E,EC3EA,GAAM,CACJ,OAAAC,CACF,EAAI,OAIEC,GAAqB,CAAC,EACtBC,GAAM,qBACNC,GAAa,CAACC,EAAgCC,IAA2C,CAC7F,IAAMC,EAAmBC,GAAgCC,GAAuBJ,EAAmB,IAAMG,EAAW,MAAMH,EAAkB,MAAM,CAAC,EACnJ,MAAO,CAAKK,EAAqCC,IAAsC,CACrFC,GAAeF,EAAc,cAAc,EAC3C,IAAMG,EAAuB,IAAI,gBACjCN,EAAgBM,CAAoB,EACpC,IAAMC,EAASC,GAAW,SAAwB,CAChDC,EAAeX,CAAiB,EAChCW,EAAeH,EAAqB,MAAM,EAC1C,IAAMC,EAAU,MAAMJ,EAAa,CACjC,MAAOO,EAAYJ,EAAqB,MAAM,EAC9C,MAAOK,GAAYL,EAAqB,MAAM,EAC9C,OAAQA,EAAqB,MAC/B,CAAC,EACD,OAAAG,EAAeH,EAAqB,MAAM,EACnCC,CACT,EAAG,IAAMD,EAAqB,MAAMM,EAAa,CAAC,EAClD,OAAIR,GAAM,UACRL,EAAuB,KAAKQ,EAAO,MAAMM,CAAI,CAAC,EAEzC,CACL,OAAQH,EAA2BZ,CAAiB,EAAES,CAAM,EAC5D,QAAS,CACPD,EAAqB,MAAMQ,EAAa,CAC1C,CACF,CACF,CACF,EACMC,GAAoB,CAAKC,EAAwEC,IAAwC,CAQ7I,IAAMC,EAAO,MAA2CC,EAAcC,IAAgC,CACpGX,EAAeQ,CAAM,EAGrB,IAAII,EAAmC,IAAM,CAAC,EAiBxCC,EAAwD,CAhBzC,IAAI,QAAwB,CAACC,EAASC,IAAW,CAEpE,IAAIC,EAAgBT,EAAe,CACjC,UAAWG,EACX,OAAQ,CAACO,EAAQC,IAAsB,CAErCA,EAAY,YAAY,EAExBJ,EAAQ,CAACG,EAAQC,EAAY,SAAS,EAAGA,EAAY,iBAAiB,CAAC,CAAC,CAC1E,CACF,CAAC,EACDN,EAAc,IAAM,CAClBI,EAAc,EACdD,EAAO,CACT,CACF,CAAC,CAC0E,EACvEJ,GAAW,MACbE,EAAS,KAAK,IAAI,QAAcC,GAAW,WAAWA,EAASH,EAAS,IAAI,CAAC,CAAC,EAEhF,GAAI,CACF,IAAMQ,EAAS,MAAMC,GAAeZ,EAAQ,QAAQ,KAAKK,CAAQ,CAAC,EAClE,OAAAb,EAAeQ,CAAM,EACdW,CACT,QAAE,CAEAP,EAAY,CACd,CACF,EACA,MAAQ,CAACF,EAAoCC,IAAgCU,GAAeZ,EAAKC,EAAWC,CAAO,CAAC,CACtH,EACMW,GAA6BC,GAAwC,CACzE,GAAI,CACF,KAAAC,EACA,cAAAC,EACA,QAAAC,EACA,UAAAhB,EACA,OAAAiB,CACF,EAAIJ,EACJ,GAAIC,EACFd,EAAYkB,EAAaJ,CAAI,EAAE,cACtBC,EACTD,EAAOC,EAAe,KACtBf,EAAYe,EAAc,cACjBC,EACThB,EAAYgB,UACH,CAAAhB,EAGT,MAAM,IAAI,MAA8CmB,EAAwB,EAAE,CAA6F,EAEjL,OAAAjC,GAAe+B,EAAQ,kBAAkB,EAClC,CACL,UAAAjB,EACA,KAAAc,EACA,OAAAG,CACF,CACF,EAGaG,GAAwE7C,EAAQsC,GAAwC,CACnI,GAAM,CACJ,KAAAC,EACA,UAAAd,EACA,OAAAiB,CACF,EAAIL,GAA0BC,CAAO,EAWrC,MAVsC,CACpC,GAAIQ,EAAO,EACX,OAAAJ,EACA,KAAAH,EACA,UAAAd,EACA,QAAS,IAAI,IACb,YAAa,IAAM,CACjB,MAAM,IAAI,MAA8CmB,EAAyB,EAAE,CAAiC,CACtH,CACF,CAEF,EAAG,CACD,UAAW,IAAMC,EACnB,CAAC,EACKE,GAAoB,CAACC,EAAyCV,IAAwC,CAC1G,GAAM,CACJ,KAAAC,EACA,OAAAG,EACA,UAAAjB,CACF,EAAIY,GAA0BC,CAAO,EACrC,OAAO,MAAM,KAAKU,EAAY,OAAO,CAAC,EAAE,KAAKC,IACd,OAAOV,GAAS,SAAWU,EAAM,OAASV,EAAOU,EAAM,YAAcxB,IACnEwB,EAAM,SAAWP,CACjD,CACH,EACMQ,GAAyBD,GAA2D,CACxFA,EAAM,QAAQ,QAAQ1C,GAAc,CAClCA,EAAW,MAAM4C,EAAiB,CACpC,CAAC,CACH,EACMC,GAAgC,CAACJ,EAAyCK,IACvE,IAAM,CACX,QAAWC,KAAYD,EAAmB,KAAK,EAC7CH,GAAsBI,CAAQ,EAEhCN,EAAY,MAAM,CACpB,EAUIO,GAAoB,CAACC,EAAoCC,EAAwBC,IAAuC,CAC5H,GAAI,CACFF,EAAaC,EAAeC,CAAS,CACvC,OAASC,EAAmB,CAG1B,WAAW,IAAM,CACf,MAAMA,CACR,EAAG,CAAC,CACN,CACF,EAKaC,GAA6B5D,EAAsB2C,EAAa,GAAGzC,EAAG,MAAM,EAAG,CAC1F,UAAW,IAAM0D,EACnB,CAAC,EAKYC,GAAmClB,EAAa,GAAGzC,EAAG,YAAY,EAKlE4D,GAAgC9D,EAAsB2C,EAAa,GAAGzC,EAAG,SAAS,EAAG,CAChG,UAAW,IAAM4D,EACnB,CAAC,EACKC,GAA4C,IAAIC,IAAoB,CACxE,QAAQ,MAAM,GAAG9D,EAAG,SAAU,GAAG8D,CAAI,CACvC,EAKaC,GAA2B,CAAyIC,EAAoE,CAAC,IAAM,CAC1P,IAAMlB,EAAc,IAAI,IAIlBK,EAAqB,IAAI,IACzBc,EAA0BlB,GAAyB,CACvD,IAAMmB,EAAQf,EAAmB,IAAIJ,CAAK,GAAK,EAC/CI,EAAmB,IAAIJ,EAAOmB,EAAQ,CAAC,CACzC,EACMC,EAA4BpB,GAAyB,CACzD,IAAMmB,EAAQf,EAAmB,IAAIJ,CAAK,GAAK,EAC3CmB,IAAU,EACZf,EAAmB,OAAOJ,CAAK,EAE/BI,EAAmB,IAAIJ,EAAOmB,EAAQ,CAAC,CAE3C,EACM,CACJ,MAAAE,EACA,QAAAC,EAAUR,EACZ,EAAIG,EACJvD,GAAe4D,EAAS,SAAS,EACjC,IAAMC,EAAevB,IACnBA,EAAM,YAAc,IAAMD,EAAY,OAAOC,EAAM,EAAE,EACrDD,EAAY,IAAIC,EAAM,GAAIA,CAAK,EACvBwB,GAA+C,CACrDxB,EAAM,YAAY,EACdwB,GAAe,cACjBvB,GAAsBD,CAAK,CAE/B,GAEI3B,EAAmBgB,GAAwC,CAC/D,IAAMW,EAAQF,GAAkBC,EAAaV,CAAO,GAAKO,GAAoBP,CAAc,EAC3F,OAAOkC,EAAYvB,CAAK,CAC1B,EACAjD,EAAOsB,EAAgB,CACrB,UAAW,IAAMA,CACnB,CAAC,EACD,IAAMS,EAAiBO,GAA8E,CACnG,IAAMW,EAAQF,GAAkBC,EAAaV,CAAO,EACpD,OAAIW,IACFA,EAAM,YAAY,EACdX,EAAQ,cACVY,GAAsBD,CAAK,GAGxB,CAAC,CAACA,CACX,EACAjD,EAAO+B,EAAe,CACpB,UAAW,IAAMA,CACnB,CAAC,EACD,IAAM2C,EAAiB,MAAOzB,EAAwDjB,EAAiB2C,EAAoBC,IAAsC,CAC/J,IAAMC,EAAyB,IAAI,gBAC7BrD,EAAOH,GAAkBC,EAA6CuD,EAAuB,MAAM,EACnGC,EAAmC,CAAC,EAC1C,GAAI,CACF7B,EAAM,QAAQ,IAAI4B,CAAsB,EACxCV,EAAuBlB,CAAK,EAC5B,MAAM,QAAQ,QAAQA,EAAM,OAAOjB,EAEnChC,EAAO,CAAC,EAAG2E,EAAK,CACd,iBAAAC,EACA,UAAW,CAACnD,EAAsCC,IAAqBF,EAAKC,EAAWC,CAAO,EAAE,KAAK,OAAO,EAC5G,KAAAF,EACA,MAAOP,GAAY4D,EAAuB,MAAM,EAChD,MAAO7D,EAAiB6D,EAAuB,MAAM,EACrD,MAAAP,EACA,OAAQO,EAAuB,OAC/B,KAAM1E,GAAW0E,EAAuB,OAAQC,CAAgB,EAChE,YAAa7B,EAAM,YACnB,UAAW,IAAM,CACfD,EAAY,IAAIC,EAAM,GAAIA,CAAK,CACjC,EACA,sBAAuB,IAAM,CAC3BA,EAAM,QAAQ,QAAQ,CAAC1C,EAAYwE,EAAGC,IAAQ,CACxCzE,IAAesE,IACjBtE,EAAW,MAAM4C,EAAiB,EAClC6B,EAAI,OAAOzE,CAAU,EAEzB,CAAC,CACH,EACA,OAAQ,IAAM,CACZsE,EAAuB,MAAM1B,EAAiB,EAC9CF,EAAM,QAAQ,OAAO4B,CAAsB,CAC7C,EACA,iBAAkB,IAAM,CACtB9D,EAAe8D,EAAuB,MAAM,CAC9C,CACF,CAAC,CAAC,CAAC,CACL,OAASI,EAAe,CAChBA,aAAyBC,GAC7B3B,GAAkBgB,EAASU,EAAe,CACxC,SAAU,QACZ,CAAC,CAEL,QAAE,CACA,MAAM,QAAQ,IAAIH,CAAgB,EAClCD,EAAuB,MAAMM,EAAiB,EAC9Cd,EAAyBpB,CAAK,EAC9BA,EAAM,QAAQ,OAAO4B,CAAsB,CAC7C,CACF,EACMO,EAA0BhC,GAA8BJ,EAAaK,CAAkB,EA0D7F,MAAO,CACL,WA1D6EsB,GAAOU,GAAQrD,GAAU,CACtG,GAAI,CAACsD,EAAStD,CAAM,EAElB,OAAOqD,EAAKrD,CAAM,EAEpB,GAAI4B,GAAY,MAAM5B,CAAM,EAC1B,OAAOV,EAAeU,EAAO,OAAc,EAE7C,GAAI6B,GAAkB,MAAM7B,CAAM,EAAG,CACnCoD,EAAwB,EACxB,MACF,CACA,GAAItB,GAAe,MAAM9B,CAAM,EAC7B,OAAOD,EAAcC,EAAO,OAAO,EAIrC,IAAIuD,EAAuDZ,EAAI,SAAS,EAIlEC,EAAmB,IAAiB,CACxC,GAAIW,IAAkBtF,GACpB,MAAM,IAAI,MAA8C2C,EAAyB,EAAE,CAA+D,EAEpJ,OAAO2C,CACT,EACI1E,EACJ,GAAI,CAGF,GADAA,EAASwE,EAAKrD,CAAM,EAChBgB,EAAY,KAAO,EAAG,CACxB,IAAMwC,EAAeb,EAAI,SAAS,EAE5Bc,EAAkB,MAAM,KAAKzC,EAAY,OAAO,CAAC,EACvD,QAAWC,KAASwC,EAAiB,CACnC,IAAIC,EAAc,GAClB,GAAI,CACFA,EAAczC,EAAM,UAAUjB,EAAQwD,EAAcD,CAAa,CACnE,OAASI,EAAgB,CACvBD,EAAc,GACdnC,GAAkBgB,EAASoB,EAAgB,CACzC,SAAU,WACZ,CAAC,CACH,CACKD,GAGLhB,EAAezB,EAAOjB,EAAQ2C,EAAKC,CAAgB,CACrD,CACF,CACF,QAAE,CAEAW,EAAgBtF,EAClB,CACA,OAAOY,CACT,EAGE,eAAAS,EACA,cAAAS,EACA,eAAgBqD,CAClB,CACF,ECpXA,IAAMQ,GAA8GC,IAA4F,CAC9M,WAAAA,EACA,QAAS,IAAI,GACf,GACMC,GAAiBC,GAAwBC,GAI1CA,GAAQ,MAAM,aAAeD,EACrBE,GAA0B,IAA2I,CAChL,IAAMF,EAAaG,EAAO,EACpBC,EAAgB,IAAI,IACpBC,EAAiB,OAAO,OAAOC,EAAa,wBAAyB,IAAIC,KAAyD,CACtI,QAASA,EACT,KAAM,CACJ,WAAAP,CACF,CACF,EAAE,EAAG,CACH,UAAW,IAAMK,CACnB,CAAC,EACKG,EAAgB,OAAO,OAAO,YAA0BD,EAAqD,CACjHA,EAAY,QAAQT,GAAc,CAChCW,EAAoBL,EAAeN,EAAYD,EAAqB,CACtE,CAAC,CACH,EAAG,CACD,UAAW,IAAMW,CACnB,CAAC,EACKE,EAA0DC,GAAO,CACrE,IAAMC,EAAoB,MAAM,KAAKR,EAAc,OAAO,CAAC,EAAE,IAAIS,GAASJ,EAAoBI,EAAM,QAASF,EAAKE,EAAM,UAAU,CAAC,EACnI,OAAOC,EAAQ,GAAGF,CAAiB,CACrC,EACMG,EAAmBC,EAAQX,EAAgBN,GAAcC,CAAU,CAAC,EAQ1E,MAAO,CACL,WARyDW,GAAOM,GAAQhB,GACpEc,EAAiBd,CAAM,GACzBO,EAAc,GAAGP,EAAO,OAAO,EACxBU,EAAI,UAEND,EAAmBC,CAAG,EAAEM,CAAI,EAAEhB,CAAM,EAI3C,cAAAO,EACA,eAAAH,EACA,WAAAL,CACF,CACF,ECnDA,OAAS,mBAAAkB,OAAuB,QAwOhC,IAAMC,GAAeC,GAA8E,gBAAiBA,GAAkB,OAAOA,EAAe,aAAgB,SACtKC,GAAeC,GAA6CA,EAAO,QAA2BC,GAAcJ,GAAYI,CAAU,EAAI,CAAC,CAACA,EAAW,YAAaA,EAAW,OAAO,CAAC,EAAI,OAAO,QAAQA,CAAU,CAAC,EACjNC,GAAiB,OAAO,IAAI,0BAA0B,EACtDC,GAAgBC,GAAe,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMF,EAAc,EAChEG,GAAgB,IAAI,QACpBC,GAAmB,CAAwBC,EAAcC,EAAmDC,IAAoDC,EAAoBL,GAAeE,EAAO,IAAM,IAAI,MAAMA,EAAO,CACrO,IAAK,CAACI,EAAQC,EAAMC,IAAa,CAC/B,GAAID,IAASV,GAAgB,OAAOS,EACpC,IAAMG,EAAS,QAAQ,IAAIH,EAAQC,EAAMC,CAAQ,EACjD,GAAI,OAAOC,EAAW,IAAa,CACjC,IAAMC,EAASN,EAAkBG,CAAI,EACrC,GAAI,OAAOG,EAAW,IAAa,OAAOA,EAC1C,IAAMC,EAAUR,EAAWI,CAAI,EAC/B,GAAII,EAAS,CAEX,IAAMC,EAAgBD,EAAQ,OAAW,CACvC,KAAME,EAAO,CACf,CAAC,EACD,GAAI,OAAOD,EAAkB,IAC3B,MAAM,IAAI,MAA8CE,EAAwB,EAAE,CAAwV,EAE5a,OAAAV,EAAkBG,CAAI,EAAIK,EACnBA,CACT,CACF,CACA,OAAOH,CACT,CACF,CAAC,CAAC,EACIM,GAAYb,GAAe,CAC/B,GAAI,CAACJ,GAAaI,CAAK,EACrB,MAAM,IAAI,MAA8CY,EAAyB,EAAE,CAA0C,EAE/H,OAAOZ,EAAML,EAAc,CAC7B,EACMmB,GAAc,CAAC,EACfC,GAA4C,CAACf,EAAQc,KAAgBd,EACpE,SAASgB,MAAkEvB,EAAsI,CACtN,IAAMQ,EAAa,OAAO,YAAYT,GAAYC,CAAM,CAAC,EACnDwB,EAAa,IAAM,OAAO,KAAKhB,CAAU,EAAE,OAASiB,GAAgBjB,CAAU,EAAIc,GACpFN,EAAUQ,EAAW,EACzB,SAASE,EAAgBnB,EAAgCoB,EAAuB,CAC9E,OAAOX,EAAQT,EAAOoB,CAAM,CAC9B,CACAD,EAAgB,qBAAuB,IAAMA,EAC7C,IAAMjB,EAAkD,CAAC,EACnDmB,EAAS,CAACC,EAAqBC,EAAuB,CAAC,IAA8B,CACzF,GAAM,CACJ,YAAAC,EACA,QAASC,CACX,EAAIH,EACEI,EAAiBzB,EAAWuB,CAAW,EAC7C,MAAI,CAACD,EAAO,kBAAoBG,GAAkBA,IAAmBD,IAMjEF,EAAO,kBAAoBG,IAAmBD,GAChD,OAAOvB,EAAkBsB,CAAW,EAEtCvB,EAAWuB,CAAW,EAAIC,EAC1BhB,EAAUQ,EAAW,GACdE,CACT,EACMQ,EAAW,OAAO,OAAO,SAA2EC,EAAkDC,EAA8D,CACxN,OAAO,SAAkB7B,KAAiB8B,EAAY,CACpD,OAAOF,EAAW7B,GAAiB8B,EAAcA,EAAY7B,EAAc,GAAG8B,CAAI,EAAI9B,EAAOC,EAAYC,CAAiB,EAAG,GAAG4B,CAAI,CACtI,CACF,EAAG,CACD,SAAAjB,EACF,CAAC,EACD,OAAO,OAAO,OAAOM,EAAiB,CACpC,OAAAE,EACA,SAAAM,CACF,CAAC,CACH,CC9SO,SAASI,EAAuBC,EAAc,CACnD,MAAO,iCAAiCA,CAAI,oDAAoDA,CAAI,iFACtG","names":["freeze","original","current","isDraft","produce","isDraftable","setUseStrictIteration","createSelector","lruMemoize","createSelectorCreator","weakMapMemoize","createDraftSafeSelectorCreator","args","createSelector","createSelectorCreator","createDraftSafeSelector","selector","wrappedSelector","value","rest","isDraft","current","weakMapMemoize","createStore","combineReducers","applyMiddleware","compose","isPlainObject","isAction","composeWithDevTools","compose","devToolsEnhancer","noop","thunkMiddleware","withExtraArgument","hasMatchFunction","v","createAction","type","prepareAction","actionCreator","args","prepared","formatProdErrorMessage","action","isAction","isActionCreator","hasMatchFunction","isFSA","isValidKey","key","getMessage","type","splitType","actionName","createActionCreatorInvariantMiddleware","options","next","action","Tuple","_Tuple","items","arr","freezeDraftable","val","isDraftable","produce","getOrInsertComputed","map","key","compute","isImmutableDefault","value","createImmutableStateInvariantMiddleware","options","next","action","stringify","getSerialize","isPlain","val","type","isPlainObject","findNonSerializableValue","value","path","isSerializable","getEntries","ignoredPaths","cache","foundNestedSerializable","entries","hasIgnoredPaths","key","nestedValue","nestedPath","ignored","isNestedFrozen","createSerializableStateInvariantMiddleware","options","next","action","isBoolean","x","buildGetDefaultMiddleware","options","thunk","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","Tuple","thunkMiddleware","withExtraArgument","SHOULD_AUTOBATCH","prepareAutoBatched","payload","createQueueWithTimer","timeout","notify","autoBatchEnhancer","options","next","args","store","notifying","shouldNotifyAtEndOfTick","notificationQueued","listeners","queueCallback","notifyListeners","l","listener","wrappedListener","unsubscribe","action","buildGetDefaultEnhancers","middlewareEnhancer","options","autoBatch","enhancerArray","Tuple","autoBatchEnhancer","configureStore","options","getDefaultMiddleware","buildGetDefaultMiddleware","reducer","middleware","devTools","duplicateMiddlewareCheck","preloadedState","enhancers","rootReducer","isPlainObject","combineReducers","formatProdErrorMessage","finalMiddleware","finalCompose","compose","composeWithDevTools","middlewareEnhancer","applyMiddleware","getDefaultEnhancers","buildGetDefaultEnhancers","storeEnhancers","composedEnhancer","createStore","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","typeOrActionCreator","reducer","type","formatProdErrorMessage","asyncThunk","reducers","matcher","isStateFunction","x","createReducer","initialState","mapOrBuilderCallback","actionsMap","finalActionMatchers","finalDefaultCaseReducer","executeReducerBuilderCallback","getInitialState","freezeDraftable","frozenInitialState","reducer","state","action","caseReducers","matcher","cr","previousState","caseReducer","isDraft","result","isDraftable","produce","draft","matches","matcher","action","hasMatchFunction","isAnyOf","matchers","isAllOf","hasExpectedRequestMetadata","validStatus","hasValidRequestId","hasValidRequestStatus","isAsyncThunkArray","a","isPending","asyncThunks","asyncThunk","isRejected","isRejectedWithValue","hasFlag","isFulfilled","isAsyncThunkAction","urlAlphabet","nanoid","size","id","i","commonProperties","RejectWithValue","payload","meta","FulfillWithMeta","miniSerializeError","value","simpleError","property","externalAbortMessage","createAsyncThunk","typePrefix","payloadCreator","options","fulfilled","createAction","requestId","arg","pending","rejected","error","actionCreator","signal","dispatch","getState","extra","nanoid","abortController","abortHandler","abortReason","abort","reason","promise","finalAction","conditionResult","isThenable","abortedPromise","_","reject","result","err","unwrapResult","isAnyOf","action","asyncThunkSymbol","asyncThunkCreator","createAsyncThunk","ReducerType","getType","slice","actionKey","buildCreateSlice","creators","cAT","options","name","reducerPath","formatProdErrorMessage","reducers","buildReducerCreators","reducerNames","context","contextMethods","typeOrActionCreator","reducer","type","matcher","actionCreator","reducerName","reducerDefinition","reducerDetails","isAsyncThunkSliceReducerDefinition","handleThunkCaseReducerDefinition","handleNormalReducerDefinition","buildReducer","extraReducers","actionMatchers","defaultCaseReducer","executeReducerBuilderCallback","finalCaseReducers","createReducer","builder","key","sM","m","selectSelf","state","injectedSelectorCache","injectedStateCache","_reducer","action","getInitialState","makeSelectorProps","injected","selectSlice","sliceState","getOrInsertComputed","getSelectors","selectState","selectorCache","map","selector","wrapSelector","injectable","pathOpt","config","newReducerPath","wrapper","rootState","args","createSlice","asyncThunk","payloadCreator","caseReducer","prepare","createNotation","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","createAction","fulfilled","pending","rejected","settled","thunk","noop","getInitialEntityState","createInitialStateFactory","stateAdapter","getInitialState","additionalState","entities","state","createSelectorsFactory","getSelectors","selectState","options","createSelector","createDraftSafeSelector","selectIds","state","selectEntities","selectAll","ids","entities","id","selectId","_","selectById","selectTotal","selectGlobalizedEntities","isDraftTyped","isDraft","createSingleArgumentStateOperator","mutator","operator","createStateOperator","_","state","arg","isPayloadActionArgument","isFSA","runMutator","draft","produce","selectIdValue","entity","selectId","ensureEntitiesArray","entities","getCurrent","value","isDraft","current","splitAddedUpdatedEntities","newEntities","state","existingIdsArray","existingIds","added","addedIds","updated","id","createUnsortedStateAdapter","selectId","addOneMutably","entity","state","key","selectIdValue","addManyMutably","newEntities","ensureEntitiesArray","setOneMutably","setManyMutably","setAllMutably","removeOneMutably","removeManyMutably","keys","didMutate","id","removeAllMutably","takeNewKey","update","original","updated","newKey","hasNewKey","updateOneMutably","updateManyMutably","updates","newKeys","updatesPerEntity","e","upsertOneMutably","upsertManyMutably","added","splitAddedUpdatedEntities","createSingleArgumentStateOperator","createStateOperator","findInsertIndex","sortedItems","item","comparisonFunction","lowIndex","highIndex","middleIndex","currentItem","insert","insertAtIndex","createSortedStateAdapter","selectId","comparer","removeOne","removeMany","removeAll","createUnsortedStateAdapter","addOneMutably","entity","state","addManyMutably","newEntities","existingIds","ensureEntitiesArray","existingKeys","getCurrent","addedKeys","models","model","modelId","selectIdValue","notAdded","mergeFunction","setOneMutably","setManyMutably","deduplicatedEntities","entityId","setAllMutably","updateOneMutably","update","updateManyMutably","updates","appliedUpdates","replacedIds","newId","oldIndex","upsertOneMutably","upsertManyMutably","added","updated","existingIdsArray","splitAddedUpdatedEntities","areArraysEqual","a","b","i","addedItems","currentEntities","currentIds","stateEntities","ids","sortedEntities","id","wasPreviouslyEmpty","newSortedIds","createStateOperator","createEntityAdapter","options","selectId","sortComparer","instance","stateAdapter","createSortedStateAdapter","createUnsortedStateAdapter","stateFactory","createInitialStateFactory","selectorsFactory","createSelectorsFactory","task","listener","completed","cancelled","taskCancelled","taskCompleted","listenerCancelled","listenerCompleted","TaskAbortError","code","assertFunction","func","expected","formatProdErrorMessage","noop","catchRejection","promise","onError","addAbortSignalListener","abortSignal","callback","validateActive","signal","TaskAbortError","raceWithSignal","promise","cleanup","noop","resolve","reject","notifyRejection","addAbortSignalListener","runTask","task","cleanUp","error","createPause","catchRejection","output","createDelay","pause","timeoutMs","assign","INTERNAL_NIL_TOKEN","alm","createFork","parentAbortSignal","parentBlockingPromises","linkControllers","controller","addAbortSignalListener","taskExecutor","opts","assertFunction","childAbortController","result","runTask","validateActive","createPause","createDelay","taskCompleted","noop","taskCancelled","createTakePattern","startListening","signal","take","predicate","timeout","unsubscribe","promises","resolve","reject","stopListening","action","listenerApi","output","raceWithSignal","catchRejection","getListenerEntryPropsFrom","options","type","actionCreator","matcher","effect","createAction","formatProdErrorMessage","createListenerEntry","nanoid","findListenerEntry","listenerMap","entry","cancelActiveListeners","listenerCancelled","createClearListenerMiddleware","executingListeners","listener","safelyNotifyError","errorHandler","errorToNotify","errorInfo","errorHandlerError","addListener","clearAllListeners","removeListener","defaultErrorHandler","args","createListenerMiddleware","middlewareOptions","trackExecutingListener","count","untrackExecutingListener","extra","onError","insertEntry","cancelOptions","notifyListener","api","getOriginalState","internalTaskController","autoJoinPromises","_","set","listenerError","TaskAbortError","listenerCompleted","clearListenerMiddleware","next","isAction","originalState","currentState","listenerEntries","runListener","predicateError","createMiddlewareEntry","middleware","matchInstance","instanceId","action","createDynamicMiddleware","nanoid","middlewareMap","withMiddleware","createAction","middlewares","addMiddleware","getOrInsertComputed","getFinalMiddleware","api","appliedMiddleware","entry","compose","isWithMiddleware","isAllOf","next","combineReducers","isSliceLike","maybeSliceLike","getReducers","slices","sliceOrMap","ORIGINAL_STATE","isStateProxy","value","stateProxyMap","createStateProxy","state","reducerMap","initialStateCache","getOrInsertComputed","target","prop","receiver","result","cached","reducer","reducerResult","nanoid","formatProdErrorMessage","original","emptyObject","noopReducer","combineSlices","getReducer","combineReducers","combinedReducer","action","inject","slice","config","reducerPath","reducerToInject","currentReducer","selector","selectorFn","selectState","args","formatProdErrorMessage","code"]}
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.legacy-esm.js
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2337 +1,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-var __objRest = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
-
-// src/index.ts
-export * from "redux";
-import { freeze, original as original2 } from "immer";
-
-// src/immerImports.ts
-import { current, isDraft, produce, isDraftable, setUseStrictIteration } from "immer";
-
-// src/index.ts
-import { createSelector, lruMemoize } from "reselect";
-
-// src/reselectImports.ts
-import { createSelectorCreator, weakMapMemoize } from "reselect";
-
-// src/createDraftSafeSelector.ts
-var createDraftSafeSelectorCreator = (...args) => {
-  const createSelector2 = createSelectorCreator(...args);
-  const createDraftSafeSelector2 = Object.assign((...args2) => {
-    const selector = createSelector2(...args2);
-    const wrappedSelector = (value, ...rest) => selector(isDraft(value) ? current(value) : value, ...rest);
-    Object.assign(wrappedSelector, selector);
-    return wrappedSelector;
-  }, {
-    withTypes: () => createDraftSafeSelector2
-  });
-  return createDraftSafeSelector2;
-};
-var createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(weakMapMemoize);
-
-// src/reduxImports.ts
-import { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from "redux";
-
-// src/devtoolsExtension.ts
-var composeWithDevTools = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {
-  if (arguments.length === 0) return void 0;
-  if (typeof arguments[0] === "object") return compose;
-  return compose.apply(null, arguments);
-};
-var devToolsEnhancer = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {
-  return function(noop3) {
-    return noop3;
-  };
-};
-
-// src/getDefaultMiddleware.ts
-import { thunk as thunkMiddleware, withExtraArgument } from "redux-thunk";
-
-// src/tsHelpers.ts
-var hasMatchFunction = (v) => {
-  return v && typeof v.match === "function";
-};
-
-// src/createAction.ts
-function createAction(type, prepareAction) {
-  function actionCreator(...args) {
-    if (prepareAction) {
-      let prepared = prepareAction(...args);
-      if (!prepared) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(0) : "prepareAction did not return an object");
-      }
-      return __spreadValues(__spreadValues({
-        type,
-        payload: prepared.payload
-      }, "meta" in prepared && {
-        meta: prepared.meta
-      }), "error" in prepared && {
-        error: prepared.error
-      });
-    }
-    return {
-      type,
-      payload: args[0]
-    };
-  }
-  actionCreator.toString = () => `${type}`;
-  actionCreator.type = type;
-  actionCreator.match = (action) => isAction(action) && action.type === type;
-  return actionCreator;
-}
-function isActionCreator(action) {
-  return typeof action === "function" && "type" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it
-  hasMatchFunction(action);
-}
-function isFSA(action) {
-  return isAction(action) && Object.keys(action).every(isValidKey);
-}
-function isValidKey(key) {
-  return ["type", "payload", "error", "meta"].indexOf(key) > -1;
-}
-
-// src/actionCreatorInvariantMiddleware.ts
-function getMessage(type) {
-  const splitType = type ? `${type}`.split("/") : [];
-  const actionName = splitType[splitType.length - 1] || "actionCreator";
-  return `Detected an action creator with type "${type || "unknown"}" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${actionName}())\` instead of \`dispatch(${actionName})\`. This is necessary even if the action has no payload.`;
-}
-function createActionCreatorInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  }
-  const {
-    isActionCreator: isActionCreator2 = isActionCreator
-  } = options;
-  return () => (next) => (action) => {
-    if (isActionCreator2(action)) {
-      console.warn(getMessage(action.type));
-    }
-    return next(action);
-  };
-}
-
-// src/utils.ts
-function getTimeMeasureUtils(maxDelay, fnName) {
-  let elapsed = 0;
-  return {
-    measureTime(fn) {
-      const started = Date.now();
-      try {
-        return fn();
-      } finally {
-        const finished = Date.now();
-        elapsed += finished - started;
-      }
-    },
-    warnIfExceeded() {
-      if (elapsed > maxDelay) {
-        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. 
-If your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.
-It is disabled in production builds, so you don't need to worry about that.`);
-      }
-    }
-  };
-}
-var Tuple = class _Tuple extends Array {
-  constructor(...items) {
-    super(...items);
-    Object.setPrototypeOf(this, _Tuple.prototype);
-  }
-  static get [Symbol.species]() {
-    return _Tuple;
-  }
-  concat(...arr) {
-    return super.concat.apply(this, arr);
-  }
-  prepend(...arr) {
-    if (arr.length === 1 && Array.isArray(arr[0])) {
-      return new _Tuple(...arr[0].concat(this));
-    }
-    return new _Tuple(...arr.concat(this));
-  }
-};
-function freezeDraftable(val) {
-  return isDraftable(val) ? produce(val, () => {
-  }) : val;
-}
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-
-// src/immutableStateInvariantMiddleware.ts
-function isImmutableDefault(value) {
-  return typeof value !== "object" || value == null || Object.isFrozen(value);
-}
-function trackForMutations(isImmutable, ignoredPaths, obj) {
-  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);
-  return {
-    detectMutations() {
-      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);
-    }
-  };
-}
-function trackProperties(isImmutable, ignoredPaths = [], obj, path = "", checkedObjects = /* @__PURE__ */ new Set()) {
-  const tracked = {
-    value: obj
-  };
-  if (!isImmutable(obj) && !checkedObjects.has(obj)) {
-    checkedObjects.add(obj);
-    tracked.children = {};
-    const hasIgnoredPaths = ignoredPaths.length > 0;
-    for (const key in obj) {
-      const nestedPath = path ? path + "." + key : key;
-      if (hasIgnoredPaths) {
-        const hasMatches = ignoredPaths.some((ignored) => {
-          if (ignored instanceof RegExp) {
-            return ignored.test(nestedPath);
-          }
-          return nestedPath === ignored;
-        });
-        if (hasMatches) {
-          continue;
-        }
-      }
-      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);
-    }
-  }
-  return tracked;
-}
-function detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = "") {
-  const prevObj = trackedProperty ? trackedProperty.value : void 0;
-  const sameRef = prevObj === obj;
-  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {
-    return {
-      wasMutated: true,
-      path
-    };
-  }
-  if (isImmutable(prevObj) || isImmutable(obj)) {
-    return {
-      wasMutated: false
-    };
-  }
-  const keysToDetect = {};
-  for (let key in trackedProperty.children) {
-    keysToDetect[key] = true;
-  }
-  for (let key in obj) {
-    keysToDetect[key] = true;
-  }
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (let key in keysToDetect) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);
-    if (result.wasMutated) {
-      return result;
-    }
-  }
-  return {
-    wasMutated: false
-  };
-}
-function createImmutableStateInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  } else {
-    let stringify2 = function(obj, serializer, indent, decycler) {
-      return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);
-    }, getSerialize2 = function(serializer, decycler) {
-      let stack = [], keys = [];
-      if (!decycler) decycler = function(_, value) {
-        if (stack[0] === value) return "[Circular ~]";
-        return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]";
-      };
-      return function(key, value) {
-        if (stack.length > 0) {
-          var thisPos = stack.indexOf(this);
-          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
-          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
-          if (~stack.indexOf(value)) value = decycler.call(this, key, value);
-        } else stack.push(value);
-        return serializer == null ? value : serializer.call(this, key, value);
-      };
-    };
-    var stringify = stringify2, getSerialize = getSerialize2;
-    let {
-      isImmutable = isImmutableDefault,
-      ignoredPaths,
-      warnAfter = 32
-    } = options;
-    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);
-    return ({
-      getState
-    }) => {
-      let state = getState();
-      let tracker = track(state);
-      let result;
-      return (next) => (action) => {
-        const measureUtils = getTimeMeasureUtils(warnAfter, "ImmutableStateInvariantMiddleware");
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ""}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        const dispatchedAction = next(action);
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ""}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-        return dispatchedAction;
-      };
-    };
-  }
-}
-
-// src/serializableStateInvariantMiddleware.ts
-function isPlain(val) {
-  const type = typeof val;
-  return val == null || type === "string" || type === "boolean" || type === "number" || Array.isArray(val) || isPlainObject(val);
-}
-function findNonSerializableValue(value, path = "", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {
-  let foundNestedSerializable;
-  if (!isSerializable(value)) {
-    return {
-      keyPath: path || "<root>",
-      value
-    };
-  }
-  if (typeof value !== "object" || value === null) {
-    return false;
-  }
-  if (cache == null ? void 0 : cache.has(value)) return false;
-  const entries = getEntries != null ? getEntries(value) : Object.entries(value);
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (const [key, nestedValue] of entries) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    if (!isSerializable(nestedValue)) {
-      return {
-        keyPath: nestedPath,
-        value: nestedValue
-      };
-    }
-    if (typeof nestedValue === "object") {
-      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);
-      if (foundNestedSerializable) {
-        return foundNestedSerializable;
-      }
-    }
-  }
-  if (cache && isNestedFrozen(value)) cache.add(value);
-  return false;
-}
-function isNestedFrozen(value) {
-  if (!Object.isFrozen(value)) return false;
-  for (const nestedValue of Object.values(value)) {
-    if (typeof nestedValue !== "object" || nestedValue === null) continue;
-    if (!isNestedFrozen(nestedValue)) return false;
-  }
-  return true;
-}
-function createSerializableStateInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  } else {
-    const {
-      isSerializable = isPlain,
-      getEntries,
-      ignoredActions = [],
-      ignoredActionPaths = ["meta.arg", "meta.baseQueryMeta"],
-      ignoredPaths = [],
-      warnAfter = 32,
-      ignoreState = false,
-      ignoreActions = false,
-      disableCache = false
-    } = options;
-    const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;
-    return (storeAPI) => (next) => (action) => {
-      if (!isAction(action)) {
-        return next(action);
-      }
-      const result = next(action);
-      const measureUtils = getTimeMeasureUtils(warnAfter, "SerializableStateInvariantMiddleware");
-      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {
-        measureUtils.measureTime(() => {
-          const foundActionNonSerializableValue = findNonSerializableValue(action, "", isSerializable, getEntries, ignoredActionPaths, cache);
-          if (foundActionNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundActionNonSerializableValue;
-            console.error(`A non-serializable value was detected in an action, in the path: \`${keyPath}\`. Value:`, value, "\nTake a look at the logic that dispatched this action: ", action, "\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)", "\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)");
-          }
-        });
-      }
-      if (!ignoreState) {
-        measureUtils.measureTime(() => {
-          const state = storeAPI.getState();
-          const foundStateNonSerializableValue = findNonSerializableValue(state, "", isSerializable, getEntries, ignoredPaths, cache);
-          if (foundStateNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundStateNonSerializableValue;
-            console.error(`A non-serializable value was detected in the state, in the path: \`${keyPath}\`. Value:`, value, `
-Take a look at the reducer(s) handling this action type: ${action.type}.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-      }
-      return result;
-    };
-  }
-}
-
-// src/getDefaultMiddleware.ts
-function isBoolean(x) {
-  return typeof x === "boolean";
-}
-var buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {
-  const {
-    thunk = true,
-    immutableCheck = true,
-    serializableCheck = true,
-    actionCreatorCheck = true
-  } = options != null ? options : {};
-  let middlewareArray = new Tuple();
-  if (thunk) {
-    if (isBoolean(thunk)) {
-      middlewareArray.push(thunkMiddleware);
-    } else {
-      middlewareArray.push(withExtraArgument(thunk.extraArgument));
-    }
-  }
-  if (process.env.NODE_ENV !== "production") {
-    if (immutableCheck) {
-      let immutableOptions = {};
-      if (!isBoolean(immutableCheck)) {
-        immutableOptions = immutableCheck;
-      }
-      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));
-    }
-    if (serializableCheck) {
-      let serializableOptions = {};
-      if (!isBoolean(serializableCheck)) {
-        serializableOptions = serializableCheck;
-      }
-      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));
-    }
-    if (actionCreatorCheck) {
-      let actionCreatorOptions = {};
-      if (!isBoolean(actionCreatorCheck)) {
-        actionCreatorOptions = actionCreatorCheck;
-      }
-      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));
-    }
-  }
-  return middlewareArray;
-};
-
-// src/autoBatchEnhancer.ts
-var SHOULD_AUTOBATCH = "RTK_autoBatch";
-var prepareAutoBatched = () => (payload) => ({
-  payload,
-  meta: {
-    [SHOULD_AUTOBATCH]: true
-  }
-});
-var createQueueWithTimer = (timeout) => {
-  return (notify) => {
-    setTimeout(notify, timeout);
-  };
-};
-var autoBatchEnhancer = (options = {
-  type: "raf"
-}) => (next) => (...args) => {
-  const store = next(...args);
-  let notifying = true;
-  let shouldNotifyAtEndOfTick = false;
-  let notificationQueued = false;
-  const listeners = /* @__PURE__ */ new Set();
-  const queueCallback = options.type === "tick" ? queueMicrotask : options.type === "raf" ? (
-    // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.
-    typeof window !== "undefined" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10)
-  ) : options.type === "callback" ? options.queueNotification : createQueueWithTimer(options.timeout);
-  const notifyListeners = () => {
-    notificationQueued = false;
-    if (shouldNotifyAtEndOfTick) {
-      shouldNotifyAtEndOfTick = false;
-      listeners.forEach((l) => l());
-    }
-  };
-  return Object.assign({}, store, {
-    // Override the base `store.subscribe` method to keep original listeners
-    // from running if we're delaying notifications
-    subscribe(listener2) {
-      const wrappedListener = () => notifying && listener2();
-      const unsubscribe = store.subscribe(wrappedListener);
-      listeners.add(listener2);
-      return () => {
-        unsubscribe();
-        listeners.delete(listener2);
-      };
-    },
-    // Override the base `store.dispatch` method so that we can check actions
-    // for the `shouldAutoBatch` flag and determine if batching is active
-    dispatch(action) {
-      var _a;
-      try {
-        notifying = !((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a[SHOULD_AUTOBATCH]);
-        shouldNotifyAtEndOfTick = !notifying;
-        if (shouldNotifyAtEndOfTick) {
-          if (!notificationQueued) {
-            notificationQueued = true;
-            queueCallback(notifyListeners);
-          }
-        }
-        return store.dispatch(action);
-      } finally {
-        notifying = true;
-      }
-    }
-  });
-};
-
-// src/getDefaultEnhancers.ts
-var buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {
-  const {
-    autoBatch = true
-  } = options != null ? options : {};
-  let enhancerArray = new Tuple(middlewareEnhancer);
-  if (autoBatch) {
-    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === "object" ? autoBatch : void 0));
-  }
-  return enhancerArray;
-};
-
-// src/configureStore.ts
-function configureStore(options) {
-  const getDefaultMiddleware = buildGetDefaultMiddleware();
-  const {
-    reducer = void 0,
-    middleware,
-    devTools = true,
-    duplicateMiddlewareCheck = true,
-    preloadedState = void 0,
-    enhancers = void 0
-  } = options || {};
-  let rootReducer;
-  if (typeof reducer === "function") {
-    rootReducer = reducer;
-  } else if (isPlainObject(reducer)) {
-    rootReducer = combineReducers(reducer);
-  } else {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(1) : "`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers");
-  }
-  if (process.env.NODE_ENV !== "production" && middleware && typeof middleware !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(2) : "`middleware` field must be a callback");
-  }
-  let finalMiddleware;
-  if (typeof middleware === "function") {
-    finalMiddleware = middleware(getDefaultMiddleware);
-    if (process.env.NODE_ENV !== "production" && !Array.isArray(finalMiddleware)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(3) : "when using a middleware builder function, an array of middleware must be returned");
-    }
-  } else {
-    finalMiddleware = getDefaultMiddleware();
-  }
-  if (process.env.NODE_ENV !== "production" && finalMiddleware.some((item) => typeof item !== "function")) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(4) : "each middleware provided to configureStore must be a function");
-  }
-  if (process.env.NODE_ENV !== "production" && duplicateMiddlewareCheck) {
-    let middlewareReferences = /* @__PURE__ */ new Set();
-    finalMiddleware.forEach((middleware2) => {
-      if (middlewareReferences.has(middleware2)) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(42) : "Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.");
-      }
-      middlewareReferences.add(middleware2);
-    });
-  }
-  let finalCompose = compose;
-  if (devTools) {
-    finalCompose = composeWithDevTools(__spreadValues({
-      // Enable capture of stack traces for dispatched Redux actions
-      trace: process.env.NODE_ENV !== "production"
-    }, typeof devTools === "object" && devTools));
-  }
-  const middlewareEnhancer = applyMiddleware(...finalMiddleware);
-  const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);
-  if (process.env.NODE_ENV !== "production" && enhancers && typeof enhancers !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(5) : "`enhancers` field must be a callback");
-  }
-  let storeEnhancers = typeof enhancers === "function" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();
-  if (process.env.NODE_ENV !== "production" && !Array.isArray(storeEnhancers)) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(6) : "`enhancers` callback must return an array");
-  }
-  if (process.env.NODE_ENV !== "production" && storeEnhancers.some((item) => typeof item !== "function")) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(7) : "each enhancer provided to configureStore must be a function");
-  }
-  if (process.env.NODE_ENV !== "production" && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {
-    console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");
-  }
-  const composedEnhancer = finalCompose(...storeEnhancers);
-  return createStore(rootReducer, preloadedState, composedEnhancer);
-}
-
-// src/mapBuilders.ts
-function executeReducerBuilderCallback(builderCallback) {
-  const actionsMap = {};
-  const actionMatchers = [];
-  let defaultCaseReducer;
-  const builder = {
-    addCase(typeOrActionCreator, reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (actionMatchers.length > 0) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(26) : "`builder.addCase` should only be called before calling `builder.addMatcher`");
-        }
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(27) : "`builder.addCase` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-      if (!type) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(28) : "`builder.addCase` cannot be called with an empty action type");
-      }
-      if (type in actionsMap) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(29) : `\`builder.addCase\` cannot be called with two reducers for the same action type '${type}'`);
-      }
-      actionsMap[type] = reducer;
-      return builder;
-    },
-    addAsyncThunk(asyncThunk, reducers) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(43) : "`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;
-      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;
-      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;
-      if (reducers.settled) actionMatchers.push({
-        matcher: asyncThunk.settled,
-        reducer: reducers.settled
-      });
-      return builder;
-    },
-    addMatcher(matcher, reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(30) : "`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      actionMatchers.push({
-        matcher,
-        reducer
-      });
-      return builder;
-    },
-    addDefaultCase(reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(31) : "`builder.addDefaultCase` can only be called once");
-        }
-      }
-      defaultCaseReducer = reducer;
-      return builder;
-    }
-  };
-  builderCallback(builder);
-  return [actionsMap, actionMatchers, defaultCaseReducer];
-}
-
-// src/createReducer.ts
-function isStateFunction(x) {
-  return typeof x === "function";
-}
-function createReducer(initialState, mapOrBuilderCallback) {
-  if (process.env.NODE_ENV !== "production") {
-    if (typeof mapOrBuilderCallback === "object") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(8) : "The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");
-    }
-  }
-  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);
-  let getInitialState;
-  if (isStateFunction(initialState)) {
-    getInitialState = () => freezeDraftable(initialState());
-  } else {
-    const frozenInitialState = freezeDraftable(initialState);
-    getInitialState = () => frozenInitialState;
-  }
-  function reducer(state = getInitialState(), action) {
-    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({
-      matcher
-    }) => matcher(action)).map(({
-      reducer: reducer2
-    }) => reducer2)];
-    if (caseReducers.filter((cr) => !!cr).length === 0) {
-      caseReducers = [finalDefaultCaseReducer];
-    }
-    return caseReducers.reduce((previousState, caseReducer) => {
-      if (caseReducer) {
-        if (isDraft(previousState)) {
-          const draft = previousState;
-          const result = caseReducer(draft, action);
-          if (result === void 0) {
-            return previousState;
-          }
-          return result;
-        } else if (!isDraftable(previousState)) {
-          const result = caseReducer(previousState, action);
-          if (result === void 0) {
-            if (previousState === null) {
-              return previousState;
-            }
-            throw Error("A case reducer on a non-draftable value must not return undefined");
-          }
-          return result;
-        } else {
-          return produce(previousState, (draft) => {
-            return caseReducer(draft, action);
-          });
-        }
-      }
-      return previousState;
-    }, state);
-  }
-  reducer.getInitialState = getInitialState;
-  return reducer;
-}
-
-// src/matchers.ts
-var matches = (matcher, action) => {
-  if (hasMatchFunction(matcher)) {
-    return matcher.match(action);
-  } else {
-    return matcher(action);
-  }
-};
-function isAnyOf(...matchers) {
-  return (action) => {
-    return matchers.some((matcher) => matches(matcher, action));
-  };
-}
-function isAllOf(...matchers) {
-  return (action) => {
-    return matchers.every((matcher) => matches(matcher, action));
-  };
-}
-function hasExpectedRequestMetadata(action, validStatus) {
-  if (!action || !action.meta) return false;
-  const hasValidRequestId = typeof action.meta.requestId === "string";
-  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;
-  return hasValidRequestId && hasValidRequestStatus;
-}
-function isAsyncThunkArray(a) {
-  return typeof a[0] === "function" && "pending" in a[0] && "fulfilled" in a[0] && "rejected" in a[0];
-}
-function isPending(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isPending()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));
-}
-function isRejected(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejected()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));
-}
-function isRejectedWithValue(...asyncThunks) {
-  const hasFlag = (action) => {
-    return action && action.meta && action.meta.rejectedWithValue;
-  };
-  if (asyncThunks.length === 0) {
-    return isAllOf(isRejected(...asyncThunks), hasFlag);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejectedWithValue()(asyncThunks[0]);
-  }
-  return isAllOf(isRejected(...asyncThunks), hasFlag);
-}
-function isFulfilled(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["fulfilled"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isFulfilled()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));
-}
-function isAsyncThunkAction(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending", "fulfilled", "rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isAsyncThunkAction()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));
-}
-
-// src/nanoid.ts
-var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW";
-var nanoid = (size = 21) => {
-  let id = "";
-  let i = size;
-  while (i--) {
-    id += urlAlphabet[Math.random() * 64 | 0];
-  }
-  return id;
-};
-
-// src/createAsyncThunk.ts
-var commonProperties = ["name", "message", "stack", "code"];
-var RejectWithValue = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-    /*
-    type-only property to distinguish between RejectWithValue and FulfillWithMeta
-    does not exist at runtime
-    */
-    __publicField(this, "_type");
-  }
-};
-var FulfillWithMeta = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-    /*
-    type-only property to distinguish between RejectWithValue and FulfillWithMeta
-    does not exist at runtime
-    */
-    __publicField(this, "_type");
-  }
-};
-var miniSerializeError = (value) => {
-  if (typeof value === "object" && value !== null) {
-    const simpleError = {};
-    for (const property of commonProperties) {
-      if (typeof value[property] === "string") {
-        simpleError[property] = value[property];
-      }
-    }
-    return simpleError;
-  }
-  return {
-    message: String(value)
-  };
-};
-var externalAbortMessage = "External signal was aborted";
-var createAsyncThunk = /* @__PURE__ */ (() => {
-  function createAsyncThunk2(typePrefix, payloadCreator, options) {
-    const fulfilled = createAction(typePrefix + "/fulfilled", (payload, requestId, arg, meta) => ({
-      payload,
-      meta: __spreadProps(__spreadValues({}, meta || {}), {
-        arg,
-        requestId,
-        requestStatus: "fulfilled"
-      })
-    }));
-    const pending = createAction(typePrefix + "/pending", (requestId, arg, meta) => ({
-      payload: void 0,
-      meta: __spreadProps(__spreadValues({}, meta || {}), {
-        arg,
-        requestId,
-        requestStatus: "pending"
-      })
-    }));
-    const rejected = createAction(typePrefix + "/rejected", (error, requestId, arg, payload, meta) => ({
-      payload,
-      error: (options && options.serializeError || miniSerializeError)(error || "Rejected"),
-      meta: __spreadProps(__spreadValues({}, meta || {}), {
-        arg,
-        requestId,
-        rejectedWithValue: !!payload,
-        requestStatus: "rejected",
-        aborted: (error == null ? void 0 : error.name) === "AbortError",
-        condition: (error == null ? void 0 : error.name) === "ConditionError"
-      })
-    }));
-    function actionCreator(arg, {
-      signal
-    } = {}) {
-      return (dispatch, getState, extra) => {
-        const requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();
-        const abortController = new AbortController();
-        let abortHandler;
-        let abortReason;
-        function abort(reason) {
-          abortReason = reason;
-          abortController.abort();
-        }
-        if (signal) {
-          if (signal.aborted) {
-            abort(externalAbortMessage);
-          } else {
-            signal.addEventListener("abort", () => abort(externalAbortMessage), {
-              once: true
-            });
-          }
-        }
-        const promise = async function() {
-          var _a, _b;
-          let finalAction;
-          try {
-            let conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, {
-              getState,
-              extra
-            });
-            if (isThenable(conditionResult)) {
-              conditionResult = await conditionResult;
-            }
-            if (conditionResult === false || abortController.signal.aborted) {
-              throw {
-                name: "ConditionError",
-                message: "Aborted due to condition callback returning false."
-              };
-            }
-            const abortedPromise = new Promise((_, reject) => {
-              abortHandler = () => {
-                reject({
-                  name: "AbortError",
-                  message: abortReason || "Aborted"
-                });
-              };
-              abortController.signal.addEventListener("abort", abortHandler, {
-                once: true
-              });
-            });
-            dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, {
-              requestId,
-              arg
-            }, {
-              getState,
-              extra
-            })));
-            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {
-              dispatch,
-              getState,
-              extra,
-              requestId,
-              signal: abortController.signal,
-              abort,
-              rejectWithValue: (value, meta) => {
-                return new RejectWithValue(value, meta);
-              },
-              fulfillWithValue: (value, meta) => {
-                return new FulfillWithMeta(value, meta);
-              }
-            })).then((result) => {
-              if (result instanceof RejectWithValue) {
-                throw result;
-              }
-              if (result instanceof FulfillWithMeta) {
-                return fulfilled(result.payload, requestId, arg, result.meta);
-              }
-              return fulfilled(result, requestId, arg);
-            })]);
-          } catch (err) {
-            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);
-          } finally {
-            if (abortHandler) {
-              abortController.signal.removeEventListener("abort", abortHandler);
-            }
-          }
-          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;
-          if (!skipDispatch) {
-            dispatch(finalAction);
-          }
-          return finalAction;
-        }();
-        return Object.assign(promise, {
-          abort,
-          requestId,
-          arg,
-          unwrap() {
-            return promise.then(unwrapResult);
-          }
-        });
-      };
-    }
-    return Object.assign(actionCreator, {
-      pending,
-      rejected,
-      fulfilled,
-      settled: isAnyOf(rejected, fulfilled),
-      typePrefix
-    });
-  }
-  createAsyncThunk2.withTypes = () => createAsyncThunk2;
-  return createAsyncThunk2;
-})();
-function unwrapResult(action) {
-  if (action.meta && action.meta.rejectedWithValue) {
-    throw action.payload;
-  }
-  if (action.error) {
-    throw action.error;
-  }
-  return action.payload;
-}
-function isThenable(value) {
-  return value !== null && typeof value === "object" && typeof value.then === "function";
-}
-
-// src/createSlice.ts
-var asyncThunkSymbol = /* @__PURE__ */ Symbol.for("rtk-slice-createasyncthunk");
-var asyncThunkCreator = {
-  [asyncThunkSymbol]: createAsyncThunk
-};
-var ReducerType = /* @__PURE__ */ ((ReducerType2) => {
-  ReducerType2["reducer"] = "reducer";
-  ReducerType2["reducerWithPrepare"] = "reducerWithPrepare";
-  ReducerType2["asyncThunk"] = "asyncThunk";
-  return ReducerType2;
-})(ReducerType || {});
-function getType(slice, actionKey) {
-  return `${slice}/${actionKey}`;
-}
-function buildCreateSlice({
-  creators
-} = {}) {
-  var _a;
-  const cAT = (_a = creators == null ? void 0 : creators.asyncThunk) == null ? void 0 : _a[asyncThunkSymbol];
-  return function createSlice2(options) {
-    const {
-      name,
-      reducerPath = name
-    } = options;
-    if (!name) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(11) : "`name` is a required option for createSlice");
-    }
-    if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-      if (options.initialState === void 0) {
-        console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");
-      }
-    }
-    const reducers = (typeof options.reducers === "function" ? options.reducers(buildReducerCreators()) : options.reducers) || {};
-    const reducerNames = Object.keys(reducers);
-    const context = {
-      sliceCaseReducersByName: {},
-      sliceCaseReducersByType: {},
-      actionCreators: {},
-      sliceMatchers: []
-    };
-    const contextMethods = {
-      addCase(typeOrActionCreator, reducer2) {
-        const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-        if (!type) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(12) : "`context.addCase` cannot be called with an empty action type");
-        }
-        if (type in context.sliceCaseReducersByType) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(13) : "`context.addCase` cannot be called with two reducers for the same action type: " + type);
-        }
-        context.sliceCaseReducersByType[type] = reducer2;
-        return contextMethods;
-      },
-      addMatcher(matcher, reducer2) {
-        context.sliceMatchers.push({
-          matcher,
-          reducer: reducer2
-        });
-        return contextMethods;
-      },
-      exposeAction(name2, actionCreator) {
-        context.actionCreators[name2] = actionCreator;
-        return contextMethods;
-      },
-      exposeCaseReducer(name2, reducer2) {
-        context.sliceCaseReducersByName[name2] = reducer2;
-        return contextMethods;
-      }
-    };
-    reducerNames.forEach((reducerName) => {
-      const reducerDefinition = reducers[reducerName];
-      const reducerDetails = {
-        reducerName,
-        type: getType(name, reducerName),
-        createNotation: typeof options.reducers === "function"
-      };
-      if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {
-        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);
-      } else {
-        handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);
-      }
-    });
-    function buildReducer() {
-      if (process.env.NODE_ENV !== "production") {
-        if (typeof options.extraReducers === "object") {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(14) : "The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");
-        }
-      }
-      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];
-      const finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), context.sliceCaseReducersByType);
-      return createReducer(options.initialState, (builder) => {
-        for (let key in finalCaseReducers) {
-          builder.addCase(key, finalCaseReducers[key]);
-        }
-        for (let sM of context.sliceMatchers) {
-          builder.addMatcher(sM.matcher, sM.reducer);
-        }
-        for (let m of actionMatchers) {
-          builder.addMatcher(m.matcher, m.reducer);
-        }
-        if (defaultCaseReducer) {
-          builder.addDefaultCase(defaultCaseReducer);
-        }
-      });
-    }
-    const selectSelf = (state) => state;
-    const injectedSelectorCache = /* @__PURE__ */ new Map();
-    const injectedStateCache = /* @__PURE__ */ new WeakMap();
-    let _reducer;
-    function reducer(state, action) {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer(state, action);
-    }
-    function getInitialState() {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer.getInitialState();
-    }
-    function makeSelectorProps(reducerPath2, injected = false) {
-      function selectSlice(state) {
-        let sliceState = state[reducerPath2];
-        if (typeof sliceState === "undefined") {
-          if (injected) {
-            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);
-          } else if (process.env.NODE_ENV !== "production") {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(15) : "selectSlice returned undefined for an uninjected slice reducer");
-          }
-        }
-        return sliceState;
-      }
-      function getSelectors(selectState = selectSelf) {
-        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());
-        return getOrInsertComputed(selectorCache, selectState, () => {
-          var _a2;
-          const map = {};
-          for (const [name2, selector] of Object.entries((_a2 = options.selectors) != null ? _a2 : {})) {
-            map[name2] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);
-          }
-          return map;
-        });
-      }
-      return {
-        reducerPath: reducerPath2,
-        getSelectors,
-        get selectors() {
-          return getSelectors(selectSlice);
-        },
-        selectSlice
-      };
-    }
-    const slice = __spreadProps(__spreadValues({
-      name,
-      reducer,
-      actions: context.actionCreators,
-      caseReducers: context.sliceCaseReducersByName,
-      getInitialState
-    }, makeSelectorProps(reducerPath)), {
-      injectInto(injectable, _a2 = {}) {
-        var _b = _a2, {
-          reducerPath: pathOpt
-        } = _b, config = __objRest(_b, [
-          "reducerPath"
-        ]);
-        const newReducerPath = pathOpt != null ? pathOpt : reducerPath;
-        injectable.inject({
-          reducerPath: newReducerPath,
-          reducer
-        }, config);
-        return __spreadValues(__spreadValues({}, slice), makeSelectorProps(newReducerPath, true));
-      }
-    });
-    return slice;
-  };
-}
-function wrapSelector(selector, selectState, getInitialState, injected) {
-  function wrapper(rootState, ...args) {
-    let sliceState = selectState(rootState);
-    if (typeof sliceState === "undefined") {
-      if (injected) {
-        sliceState = getInitialState();
-      } else if (process.env.NODE_ENV !== "production") {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(16) : "selectState returned undefined for an uninjected slice reducer");
-      }
-    }
-    return selector(sliceState, ...args);
-  }
-  wrapper.unwrapped = selector;
-  return wrapper;
-}
-var createSlice = /* @__PURE__ */ buildCreateSlice();
-function buildReducerCreators() {
-  function asyncThunk(payloadCreator, config) {
-    return __spreadValues({
-      _reducerDefinitionType: "asyncThunk" /* asyncThunk */,
-      payloadCreator
-    }, config);
-  }
-  asyncThunk.withTypes = () => asyncThunk;
-  return {
-    reducer(caseReducer) {
-      return Object.assign({
-        // hack so the wrapping function has the same name as the original
-        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original
-        [caseReducer.name](...args) {
-          return caseReducer(...args);
-        }
-      }[caseReducer.name], {
-        _reducerDefinitionType: "reducer" /* reducer */
-      });
-    },
-    preparedReducer(prepare, reducer) {
-      return {
-        _reducerDefinitionType: "reducerWithPrepare" /* reducerWithPrepare */,
-        prepare,
-        reducer
-      };
-    },
-    asyncThunk
-  };
-}
-function handleNormalReducerDefinition({
-  type,
-  reducerName,
-  createNotation
-}, maybeReducerWithPrepare, context) {
-  let caseReducer;
-  let prepareCallback;
-  if ("reducer" in maybeReducerWithPrepare) {
-    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(17) : "Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.");
-    }
-    caseReducer = maybeReducerWithPrepare.reducer;
-    prepareCallback = maybeReducerWithPrepare.prepare;
-  } else {
-    caseReducer = maybeReducerWithPrepare;
-  }
-  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));
-}
-function isAsyncThunkSliceReducerDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "asyncThunk" /* asyncThunk */;
-}
-function isCaseReducerWithPrepareDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "reducerWithPrepare" /* reducerWithPrepare */;
-}
-function handleThunkCaseReducerDefinition({
-  type,
-  reducerName
-}, reducerDefinition, context, cAT) {
-  if (!cAT) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(18) : "Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.");
-  }
-  const {
-    payloadCreator,
-    fulfilled,
-    pending,
-    rejected,
-    settled,
-    options
-  } = reducerDefinition;
-  const thunk = cAT(type, payloadCreator, options);
-  context.exposeAction(reducerName, thunk);
-  if (fulfilled) {
-    context.addCase(thunk.fulfilled, fulfilled);
-  }
-  if (pending) {
-    context.addCase(thunk.pending, pending);
-  }
-  if (rejected) {
-    context.addCase(thunk.rejected, rejected);
-  }
-  if (settled) {
-    context.addMatcher(thunk.settled, settled);
-  }
-  context.exposeCaseReducer(reducerName, {
-    fulfilled: fulfilled || noop,
-    pending: pending || noop,
-    rejected: rejected || noop,
-    settled: settled || noop
-  });
-}
-function noop() {
-}
-
-// src/entities/entity_state.ts
-function getInitialEntityState() {
-  return {
-    ids: [],
-    entities: {}
-  };
-}
-function createInitialStateFactory(stateAdapter) {
-  function getInitialState(additionalState = {}, entities) {
-    const state = Object.assign(getInitialEntityState(), additionalState);
-    return entities ? stateAdapter.setAll(state, entities) : state;
-  }
-  return {
-    getInitialState
-  };
-}
-
-// src/entities/state_selectors.ts
-function createSelectorsFactory() {
-  function getSelectors(selectState, options = {}) {
-    const {
-      createSelector: createSelector2 = createDraftSafeSelector
-    } = options;
-    const selectIds = (state) => state.ids;
-    const selectEntities = (state) => state.entities;
-    const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
-    const selectId = (_, id) => id;
-    const selectById = (entities, id) => entities[id];
-    const selectTotal = createSelector2(selectIds, (ids) => ids.length);
-    if (!selectState) {
-      return {
-        selectIds,
-        selectEntities,
-        selectAll,
-        selectTotal,
-        selectById: createSelector2(selectEntities, selectId, selectById)
-      };
-    }
-    const selectGlobalizedEntities = createSelector2(selectState, selectEntities);
-    return {
-      selectIds: createSelector2(selectState, selectIds),
-      selectEntities: selectGlobalizedEntities,
-      selectAll: createSelector2(selectState, selectAll),
-      selectTotal: createSelector2(selectState, selectTotal),
-      selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)
-    };
-  }
-  return {
-    getSelectors
-  };
-}
-
-// src/entities/state_adapter.ts
-var isDraftTyped = isDraft;
-function createSingleArgumentStateOperator(mutator) {
-  const operator = createStateOperator((_, state) => mutator(state));
-  return function operation(state) {
-    return operator(state, void 0);
-  };
-}
-function createStateOperator(mutator) {
-  return function operation(state, arg) {
-    function isPayloadActionArgument(arg2) {
-      return isFSA(arg2);
-    }
-    const runMutator = (draft) => {
-      if (isPayloadActionArgument(arg)) {
-        mutator(arg.payload, draft);
-      } else {
-        mutator(arg, draft);
-      }
-    };
-    if (isDraftTyped(state)) {
-      runMutator(state);
-      return state;
-    }
-    return produce(state, runMutator);
-  };
-}
-
-// src/entities/utils.ts
-function selectIdValue(entity, selectId) {
-  const key = selectId(entity);
-  if (process.env.NODE_ENV !== "production" && key === void 0) {
-    console.warn("The entity passed to the `selectId` implementation returned undefined.", "You should probably provide your own `selectId` implementation.", "The entity that was passed:", entity, "The `selectId` implementation:", selectId.toString());
-  }
-  return key;
-}
-function ensureEntitiesArray(entities) {
-  if (!Array.isArray(entities)) {
-    entities = Object.values(entities);
-  }
-  return entities;
-}
-function getCurrent(value) {
-  return isDraft(value) ? current(value) : value;
-}
-function splitAddedUpdatedEntities(newEntities, selectId, state) {
-  newEntities = ensureEntitiesArray(newEntities);
-  const existingIdsArray = getCurrent(state.ids);
-  const existingIds = new Set(existingIdsArray);
-  const added = [];
-  const addedIds = /* @__PURE__ */ new Set([]);
-  const updated = [];
-  for (const entity of newEntities) {
-    const id = selectIdValue(entity, selectId);
-    if (existingIds.has(id) || addedIds.has(id)) {
-      updated.push({
-        id,
-        changes: entity
-      });
-    } else {
-      addedIds.add(id);
-      added.push(entity);
-    }
-  }
-  return [added, updated, existingIdsArray];
-}
-
-// src/entities/unsorted_state_adapter.ts
-function createUnsortedStateAdapter(selectId) {
-  function addOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (key in state.entities) {
-      return;
-    }
-    state.ids.push(key);
-    state.entities[key] = entity;
-  }
-  function addManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      addOneMutably(entity, state);
-    }
-  }
-  function setOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (!(key in state.entities)) {
-      state.ids.push(key);
-    }
-    ;
-    state.entities[key] = entity;
-  }
-  function setManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      setOneMutably(entity, state);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.ids = [];
-    state.entities = {};
-    addManyMutably(newEntities, state);
-  }
-  function removeOneMutably(key, state) {
-    return removeManyMutably([key], state);
-  }
-  function removeManyMutably(keys, state) {
-    let didMutate = false;
-    keys.forEach((key) => {
-      if (key in state.entities) {
-        delete state.entities[key];
-        didMutate = true;
-      }
-    });
-    if (didMutate) {
-      state.ids = state.ids.filter((id) => id in state.entities);
-    }
-  }
-  function removeAllMutably(state) {
-    Object.assign(state, {
-      ids: [],
-      entities: {}
-    });
-  }
-  function takeNewKey(keys, update, state) {
-    const original3 = state.entities[update.id];
-    if (original3 === void 0) {
-      return false;
-    }
-    const updated = Object.assign({}, original3, update.changes);
-    const newKey = selectIdValue(updated, selectId);
-    const hasNewKey = newKey !== update.id;
-    if (hasNewKey) {
-      keys[update.id] = newKey;
-      delete state.entities[update.id];
-    }
-    ;
-    state.entities[newKey] = updated;
-    return hasNewKey;
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    const newKeys = {};
-    const updatesPerEntity = {};
-    updates.forEach((update) => {
-      var _a;
-      if (update.id in state.entities) {
-        updatesPerEntity[update.id] = {
-          id: update.id,
-          // Spreads ignore falsy values, so this works even if there isn't
-          // an existing update already at this key
-          changes: __spreadValues(__spreadValues({}, (_a = updatesPerEntity[update.id]) == null ? void 0 : _a.changes), update.changes)
-        };
-      }
-    });
-    updates = Object.values(updatesPerEntity);
-    const didMutateEntities = updates.length > 0;
-    if (didMutateEntities) {
-      const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;
-      if (didMutateIds) {
-        state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));
-      }
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    addManyMutably(added, state);
-    updateManyMutably(updated, state);
-  }
-  return {
-    removeAll: createSingleArgumentStateOperator(removeAllMutably),
-    addOne: createStateOperator(addOneMutably),
-    addMany: createStateOperator(addManyMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    upsertMany: createStateOperator(upsertManyMutably),
-    removeOne: createStateOperator(removeOneMutably),
-    removeMany: createStateOperator(removeManyMutably)
-  };
-}
-
-// src/entities/sorted_state_adapter.ts
-function findInsertIndex(sortedItems, item, comparisonFunction) {
-  let lowIndex = 0;
-  let highIndex = sortedItems.length;
-  while (lowIndex < highIndex) {
-    let middleIndex = lowIndex + highIndex >>> 1;
-    const currentItem = sortedItems[middleIndex];
-    const res = comparisonFunction(item, currentItem);
-    if (res >= 0) {
-      lowIndex = middleIndex + 1;
-    } else {
-      highIndex = middleIndex;
-    }
-  }
-  return lowIndex;
-}
-function insert(sortedItems, item, comparisonFunction) {
-  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);
-  sortedItems.splice(insertAtIndex, 0, item);
-  return sortedItems;
-}
-function createSortedStateAdapter(selectId, comparer) {
-  const {
-    removeOne,
-    removeMany,
-    removeAll
-  } = createUnsortedStateAdapter(selectId);
-  function addOneMutably(entity, state) {
-    return addManyMutably([entity], state);
-  }
-  function addManyMutably(newEntities, state, existingIds) {
-    newEntities = ensureEntitiesArray(newEntities);
-    const existingKeys = new Set(existingIds != null ? existingIds : getCurrent(state.ids));
-    const addedKeys = /* @__PURE__ */ new Set();
-    const models = newEntities.filter((model) => {
-      const modelId = selectIdValue(model, selectId);
-      const notAdded = !addedKeys.has(modelId);
-      if (notAdded) addedKeys.add(modelId);
-      return !existingKeys.has(modelId) && notAdded;
-    });
-    if (models.length !== 0) {
-      mergeFunction(state, models);
-    }
-  }
-  function setOneMutably(entity, state) {
-    return setManyMutably([entity], state);
-  }
-  function setManyMutably(newEntities, state) {
-    let deduplicatedEntities = {};
-    newEntities = ensureEntitiesArray(newEntities);
-    if (newEntities.length !== 0) {
-      for (const item of newEntities) {
-        const entityId = selectId(item);
-        deduplicatedEntities[entityId] = item;
-        delete state.entities[entityId];
-      }
-      newEntities = ensureEntitiesArray(deduplicatedEntities);
-      mergeFunction(state, newEntities);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.entities = {};
-    state.ids = [];
-    addManyMutably(newEntities, state, []);
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    let appliedUpdates = false;
-    let replacedIds = false;
-    for (let update of updates) {
-      const entity = state.entities[update.id];
-      if (!entity) {
-        continue;
-      }
-      appliedUpdates = true;
-      Object.assign(entity, update.changes);
-      const newId = selectId(entity);
-      if (update.id !== newId) {
-        replacedIds = true;
-        delete state.entities[update.id];
-        const oldIndex = state.ids.indexOf(update.id);
-        state.ids[oldIndex] = newId;
-        state.entities[newId] = entity;
-      }
-    }
-    if (appliedUpdates) {
-      mergeFunction(state, [], appliedUpdates, replacedIds);
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    if (added.length) {
-      addManyMutably(added, state, existingIdsArray);
-    }
-    if (updated.length) {
-      updateManyMutably(updated, state);
-    }
-  }
-  function areArraysEqual(a, b) {
-    if (a.length !== b.length) {
-      return false;
-    }
-    for (let i = 0; i < a.length; i++) {
-      if (a[i] === b[i]) {
-        continue;
-      }
-      return false;
-    }
-    return true;
-  }
-  const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {
-    const currentEntities = getCurrent(state.entities);
-    const currentIds = getCurrent(state.ids);
-    const stateEntities = state.entities;
-    let ids = currentIds;
-    if (replacedIds) {
-      ids = new Set(currentIds);
-    }
-    let sortedEntities = [];
-    for (const id of ids) {
-      const entity = currentEntities[id];
-      if (entity) {
-        sortedEntities.push(entity);
-      }
-    }
-    const wasPreviouslyEmpty = sortedEntities.length === 0;
-    for (const item of addedItems) {
-      stateEntities[selectId(item)] = item;
-      if (!wasPreviouslyEmpty) {
-        insert(sortedEntities, item, comparer);
-      }
-    }
-    if (wasPreviouslyEmpty) {
-      sortedEntities = addedItems.slice().sort(comparer);
-    } else if (appliedUpdates) {
-      sortedEntities.sort(comparer);
-    }
-    const newSortedIds = sortedEntities.map(selectId);
-    if (!areArraysEqual(currentIds, newSortedIds)) {
-      state.ids = newSortedIds;
-    }
-  };
-  return {
-    removeOne,
-    removeMany,
-    removeAll,
-    addOne: createStateOperator(addOneMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    addMany: createStateOperator(addManyMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertMany: createStateOperator(upsertManyMutably)
-  };
-}
-
-// src/entities/create_adapter.ts
-function createEntityAdapter(options = {}) {
-  const {
-    selectId,
-    sortComparer
-  } = __spreadValues({
-    sortComparer: false,
-    selectId: (instance) => instance.id
-  }, options);
-  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);
-  const stateFactory = createInitialStateFactory(stateAdapter);
-  const selectorsFactory = createSelectorsFactory();
-  return __spreadValues(__spreadValues(__spreadValues({
-    selectId,
-    sortComparer
-  }, stateFactory), selectorsFactory), stateAdapter);
-}
-
-// src/listenerMiddleware/exceptions.ts
-var task = "task";
-var listener = "listener";
-var completed = "completed";
-var cancelled = "cancelled";
-var taskCancelled = `task-${cancelled}`;
-var taskCompleted = `task-${completed}`;
-var listenerCancelled = `${listener}-${cancelled}`;
-var listenerCompleted = `${listener}-${completed}`;
-var TaskAbortError = class {
-  constructor(code) {
-    this.code = code;
-    __publicField(this, "name", "TaskAbortError");
-    __publicField(this, "message");
-    this.message = `${task} ${cancelled} (reason: ${code})`;
-  }
-};
-
-// src/listenerMiddleware/utils.ts
-var assertFunction = (func, expected) => {
-  if (typeof func !== "function") {
-    throw new TypeError(process.env.NODE_ENV === "production" ? formatProdErrorMessage(32) : `${expected} is not a function`);
-  }
-};
-var noop2 = () => {
-};
-var catchRejection = (promise, onError = noop2) => {
-  promise.catch(onError);
-  return promise;
-};
-var addAbortSignalListener = (abortSignal, callback) => {
-  abortSignal.addEventListener("abort", callback, {
-    once: true
-  });
-  return () => abortSignal.removeEventListener("abort", callback);
-};
-
-// src/listenerMiddleware/task.ts
-var validateActive = (signal) => {
-  if (signal.aborted) {
-    throw new TaskAbortError(signal.reason);
-  }
-};
-function raceWithSignal(signal, promise) {
-  let cleanup = noop2;
-  return new Promise((resolve, reject) => {
-    const notifyRejection = () => reject(new TaskAbortError(signal.reason));
-    if (signal.aborted) {
-      notifyRejection();
-      return;
-    }
-    cleanup = addAbortSignalListener(signal, notifyRejection);
-    promise.finally(() => cleanup()).then(resolve, reject);
-  }).finally(() => {
-    cleanup = noop2;
-  });
-}
-var runTask = async (task2, cleanUp) => {
-  try {
-    await Promise.resolve();
-    const value = await task2();
-    return {
-      status: "ok",
-      value
-    };
-  } catch (error) {
-    return {
-      status: error instanceof TaskAbortError ? "cancelled" : "rejected",
-      error
-    };
-  } finally {
-    cleanUp == null ? void 0 : cleanUp();
-  }
-};
-var createPause = (signal) => {
-  return (promise) => {
-    return catchRejection(raceWithSignal(signal, promise).then((output) => {
-      validateActive(signal);
-      return output;
-    }));
-  };
-};
-var createDelay = (signal) => {
-  const pause = createPause(signal);
-  return (timeoutMs) => {
-    return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));
-  };
-};
-
-// src/listenerMiddleware/index.ts
-var {
-  assign
-} = Object;
-var INTERNAL_NIL_TOKEN = {};
-var alm = "listenerMiddleware";
-var createFork = (parentAbortSignal, parentBlockingPromises) => {
-  const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));
-  return (taskExecutor, opts) => {
-    assertFunction(taskExecutor, "taskExecutor");
-    const childAbortController = new AbortController();
-    linkControllers(childAbortController);
-    const result = runTask(async () => {
-      validateActive(parentAbortSignal);
-      validateActive(childAbortController.signal);
-      const result2 = await taskExecutor({
-        pause: createPause(childAbortController.signal),
-        delay: createDelay(childAbortController.signal),
-        signal: childAbortController.signal
-      });
-      validateActive(childAbortController.signal);
-      return result2;
-    }, () => childAbortController.abort(taskCompleted));
-    if (opts == null ? void 0 : opts.autoJoin) {
-      parentBlockingPromises.push(result.catch(noop2));
-    }
-    return {
-      result: createPause(parentAbortSignal)(result),
-      cancel() {
-        childAbortController.abort(taskCancelled);
-      }
-    };
-  };
-};
-var createTakePattern = (startListening, signal) => {
-  const take = async (predicate, timeout) => {
-    validateActive(signal);
-    let unsubscribe = () => {
-    };
-    const tuplePromise = new Promise((resolve, reject) => {
-      let stopListening = startListening({
-        predicate,
-        effect: (action, listenerApi) => {
-          listenerApi.unsubscribe();
-          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);
-        }
-      });
-      unsubscribe = () => {
-        stopListening();
-        reject();
-      };
-    });
-    const promises = [tuplePromise];
-    if (timeout != null) {
-      promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));
-    }
-    try {
-      const output = await raceWithSignal(signal, Promise.race(promises));
-      validateActive(signal);
-      return output;
-    } finally {
-      unsubscribe();
-    }
-  };
-  return (predicate, timeout) => catchRejection(take(predicate, timeout));
-};
-var getListenerEntryPropsFrom = (options) => {
-  let {
-    type,
-    actionCreator,
-    matcher,
-    predicate,
-    effect
-  } = options;
-  if (type) {
-    predicate = createAction(type).match;
-  } else if (actionCreator) {
-    type = actionCreator.type;
-    predicate = actionCreator.match;
-  } else if (matcher) {
-    predicate = matcher;
-  } else if (predicate) {
-  } else {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(21) : "Creating or removing a listener requires one of the known fields for matching an action");
-  }
-  assertFunction(effect, "options.listener");
-  return {
-    predicate,
-    type,
-    effect
-  };
-};
-var createListenerEntry = /* @__PURE__ */ assign((options) => {
-  const {
-    type,
-    predicate,
-    effect
-  } = getListenerEntryPropsFrom(options);
-  const entry = {
-    id: nanoid(),
-    effect,
-    type,
-    predicate,
-    pending: /* @__PURE__ */ new Set(),
-    unsubscribe: () => {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(22) : "Unsubscribe not initialized");
-    }
-  };
-  return entry;
-}, {
-  withTypes: () => createListenerEntry
-});
-var findListenerEntry = (listenerMap, options) => {
-  const {
-    type,
-    effect,
-    predicate
-  } = getListenerEntryPropsFrom(options);
-  return Array.from(listenerMap.values()).find((entry) => {
-    const matchPredicateOrType = typeof type === "string" ? entry.type === type : entry.predicate === predicate;
-    return matchPredicateOrType && entry.effect === effect;
-  });
-};
-var cancelActiveListeners = (entry) => {
-  entry.pending.forEach((controller) => {
-    controller.abort(listenerCancelled);
-  });
-};
-var createClearListenerMiddleware = (listenerMap, executingListeners) => {
-  return () => {
-    for (const listener2 of executingListeners.keys()) {
-      cancelActiveListeners(listener2);
-    }
-    listenerMap.clear();
-  };
-};
-var safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {
-  try {
-    errorHandler(errorToNotify, errorInfo);
-  } catch (errorHandlerError) {
-    setTimeout(() => {
-      throw errorHandlerError;
-    }, 0);
-  }
-};
-var addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {
-  withTypes: () => addListener
-});
-var clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);
-var removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {
-  withTypes: () => removeListener
-});
-var defaultErrorHandler = (...args) => {
-  console.error(`${alm}/error`, ...args);
-};
-var createListenerMiddleware = (middlewareOptions = {}) => {
-  const listenerMap = /* @__PURE__ */ new Map();
-  const executingListeners = /* @__PURE__ */ new Map();
-  const trackExecutingListener = (entry) => {
-    var _a;
-    const count = (_a = executingListeners.get(entry)) != null ? _a : 0;
-    executingListeners.set(entry, count + 1);
-  };
-  const untrackExecutingListener = (entry) => {
-    var _a;
-    const count = (_a = executingListeners.get(entry)) != null ? _a : 1;
-    if (count === 1) {
-      executingListeners.delete(entry);
-    } else {
-      executingListeners.set(entry, count - 1);
-    }
-  };
-  const {
-    extra,
-    onError = defaultErrorHandler
-  } = middlewareOptions;
-  assertFunction(onError, "onError");
-  const insertEntry = (entry) => {
-    entry.unsubscribe = () => listenerMap.delete(entry.id);
-    listenerMap.set(entry.id, entry);
-    return (cancelOptions) => {
-      entry.unsubscribe();
-      if (cancelOptions == null ? void 0 : cancelOptions.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    };
-  };
-  const startListening = (options) => {
-    var _a;
-    const entry = (_a = findListenerEntry(listenerMap, options)) != null ? _a : createListenerEntry(options);
-    return insertEntry(entry);
-  };
-  assign(startListening, {
-    withTypes: () => startListening
-  });
-  const stopListening = (options) => {
-    const entry = findListenerEntry(listenerMap, options);
-    if (entry) {
-      entry.unsubscribe();
-      if (options.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    }
-    return !!entry;
-  };
-  assign(stopListening, {
-    withTypes: () => stopListening
-  });
-  const notifyListener = async (entry, action, api, getOriginalState) => {
-    const internalTaskController = new AbortController();
-    const take = createTakePattern(startListening, internalTaskController.signal);
-    const autoJoinPromises = [];
-    try {
-      entry.pending.add(internalTaskController);
-      trackExecutingListener(entry);
-      await Promise.resolve(entry.effect(
-        action,
-        // Use assign() rather than ... to avoid extra helper functions added to bundle
-        assign({}, api, {
-          getOriginalState,
-          condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),
-          take,
-          delay: createDelay(internalTaskController.signal),
-          pause: createPause(internalTaskController.signal),
-          extra,
-          signal: internalTaskController.signal,
-          fork: createFork(internalTaskController.signal, autoJoinPromises),
-          unsubscribe: entry.unsubscribe,
-          subscribe: () => {
-            listenerMap.set(entry.id, entry);
-          },
-          cancelActiveListeners: () => {
-            entry.pending.forEach((controller, _, set) => {
-              if (controller !== internalTaskController) {
-                controller.abort(listenerCancelled);
-                set.delete(controller);
-              }
-            });
-          },
-          cancel: () => {
-            internalTaskController.abort(listenerCancelled);
-            entry.pending.delete(internalTaskController);
-          },
-          throwIfCancelled: () => {
-            validateActive(internalTaskController.signal);
-          }
-        })
-      ));
-    } catch (listenerError) {
-      if (!(listenerError instanceof TaskAbortError)) {
-        safelyNotifyError(onError, listenerError, {
-          raisedBy: "effect"
-        });
-      }
-    } finally {
-      await Promise.all(autoJoinPromises);
-      internalTaskController.abort(listenerCompleted);
-      untrackExecutingListener(entry);
-      entry.pending.delete(internalTaskController);
-    }
-  };
-  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);
-  const middleware = (api) => (next) => (action) => {
-    if (!isAction(action)) {
-      return next(action);
-    }
-    if (addListener.match(action)) {
-      return startListening(action.payload);
-    }
-    if (clearAllListeners.match(action)) {
-      clearListenerMiddleware();
-      return;
-    }
-    if (removeListener.match(action)) {
-      return stopListening(action.payload);
-    }
-    let originalState = api.getState();
-    const getOriginalState = () => {
-      if (originalState === INTERNAL_NIL_TOKEN) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(23) : `${alm}: getOriginalState can only be called synchronously`);
-      }
-      return originalState;
-    };
-    let result;
-    try {
-      result = next(action);
-      if (listenerMap.size > 0) {
-        const currentState = api.getState();
-        const listenerEntries = Array.from(listenerMap.values());
-        for (const entry of listenerEntries) {
-          let runListener = false;
-          try {
-            runListener = entry.predicate(action, currentState, originalState);
-          } catch (predicateError) {
-            runListener = false;
-            safelyNotifyError(onError, predicateError, {
-              raisedBy: "predicate"
-            });
-          }
-          if (!runListener) {
-            continue;
-          }
-          notifyListener(entry, action, api, getOriginalState);
-        }
-      }
-    } finally {
-      originalState = INTERNAL_NIL_TOKEN;
-    }
-    return result;
-  };
-  return {
-    middleware,
-    startListening,
-    stopListening,
-    clearListeners: clearListenerMiddleware
-  };
-};
-
-// src/dynamicMiddleware/index.ts
-var createMiddlewareEntry = (middleware) => ({
-  middleware,
-  applied: /* @__PURE__ */ new Map()
-});
-var matchInstance = (instanceId) => (action) => {
-  var _a;
-  return ((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a.instanceId) === instanceId;
-};
-var createDynamicMiddleware = () => {
-  const instanceId = nanoid();
-  const middlewareMap = /* @__PURE__ */ new Map();
-  const withMiddleware = Object.assign(createAction("dynamicMiddleware/add", (...middlewares) => ({
-    payload: middlewares,
-    meta: {
-      instanceId
-    }
-  })), {
-    withTypes: () => withMiddleware
-  });
-  const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {
-    middlewares.forEach((middleware2) => {
-      getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);
-    });
-  }, {
-    withTypes: () => addMiddleware
-  });
-  const getFinalMiddleware = (api) => {
-    const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));
-    return compose(...appliedMiddleware);
-  };
-  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));
-  const middleware = (api) => (next) => (action) => {
-    if (isWithMiddleware(action)) {
-      addMiddleware(...action.payload);
-      return api.dispatch;
-    }
-    return getFinalMiddleware(api)(next)(action);
-  };
-  return {
-    middleware,
-    addMiddleware,
-    withMiddleware,
-    instanceId
-  };
-};
-
-// src/combineSlices.ts
-import { combineReducers as combineReducers2 } from "redux";
-var isSliceLike = (maybeSliceLike) => "reducerPath" in maybeSliceLike && typeof maybeSliceLike.reducerPath === "string";
-var getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));
-var ORIGINAL_STATE = Symbol.for("rtk-state-proxy-original");
-var isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];
-var stateProxyMap = /* @__PURE__ */ new WeakMap();
-var createStateProxy = (state, reducerMap, initialStateCache) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {
-  get: (target, prop, receiver) => {
-    if (prop === ORIGINAL_STATE) return target;
-    const result = Reflect.get(target, prop, receiver);
-    if (typeof result === "undefined") {
-      const cached = initialStateCache[prop];
-      if (typeof cached !== "undefined") return cached;
-      const reducer = reducerMap[prop];
-      if (reducer) {
-        const reducerResult = reducer(void 0, {
-          type: nanoid()
-        });
-        if (typeof reducerResult === "undefined") {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(24) : `The slice reducer for key "${prop.toString()}" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-        }
-        initialStateCache[prop] = reducerResult;
-        return reducerResult;
-      }
-    }
-    return result;
-  }
-}));
-var original = (state) => {
-  if (!isStateProxy(state)) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(25) : "original must be used on state Proxy");
-  }
-  return state[ORIGINAL_STATE];
-};
-var emptyObject = {};
-var noopReducer = (state = emptyObject) => state;
-function combineSlices(...slices) {
-  const reducerMap = Object.fromEntries(getReducers(slices));
-  const getReducer = () => Object.keys(reducerMap).length ? combineReducers2(reducerMap) : noopReducer;
-  let reducer = getReducer();
-  function combinedReducer(state, action) {
-    return reducer(state, action);
-  }
-  combinedReducer.withLazyLoadedSlices = () => combinedReducer;
-  const initialStateCache = {};
-  const inject = (slice, config = {}) => {
-    const {
-      reducerPath,
-      reducer: reducerToInject
-    } = slice;
-    const currentReducer = reducerMap[reducerPath];
-    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-        console.error(`called \`inject\` to override already-existing reducer ${reducerPath} without specifying \`overrideExisting: true\``);
-      }
-      return combinedReducer;
-    }
-    if (config.overrideExisting && currentReducer !== reducerToInject) {
-      delete initialStateCache[reducerPath];
-    }
-    reducerMap[reducerPath] = reducerToInject;
-    reducer = getReducer();
-    return combinedReducer;
-  };
-  const selector = Object.assign(function makeSelector(selectorFn, selectState) {
-    return function selector2(state, ...args) {
-      return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap, initialStateCache), ...args);
-    };
-  }, {
-    original
-  });
-  return Object.assign(combinedReducer, {
-    inject,
-    selector
-  });
-}
-
-// src/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-export {
-  ReducerType,
-  SHOULD_AUTOBATCH,
-  TaskAbortError,
-  Tuple,
-  addListener,
-  asyncThunkCreator,
-  autoBatchEnhancer,
-  buildCreateSlice,
-  clearAllListeners,
-  combineSlices,
-  configureStore,
-  createAction,
-  createActionCreatorInvariantMiddleware,
-  createAsyncThunk,
-  createDraftSafeSelector,
-  createDraftSafeSelectorCreator,
-  createDynamicMiddleware,
-  createEntityAdapter,
-  createImmutableStateInvariantMiddleware,
-  createListenerMiddleware,
-  produce as createNextState,
-  createReducer,
-  createSelector,
-  createSelectorCreator,
-  createSerializableStateInvariantMiddleware,
-  createSlice,
-  current,
-  findNonSerializableValue,
-  formatProdErrorMessage,
-  freeze,
-  isActionCreator,
-  isAllOf,
-  isAnyOf,
-  isAsyncThunkAction,
-  isDraft,
-  isFSA as isFluxStandardAction,
-  isFulfilled,
-  isImmutableDefault,
-  isPending,
-  isPlain,
-  isRejected,
-  isRejectedWithValue,
-  lruMemoize,
-  miniSerializeError,
-  nanoid,
-  original2 as original,
-  prepareAutoBatched,
-  removeListener,
-  unwrapResult,
-  weakMapMemoize
-};
-//# sourceMappingURL=redux-toolkit.legacy-esm.js.map
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.legacy-esm.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/index.ts","../src/immerImports.ts","../src/reselectImports.ts","../src/createDraftSafeSelector.ts","../src/reduxImports.ts","../src/devtoolsExtension.ts","../src/getDefaultMiddleware.ts","../src/tsHelpers.ts","../src/createAction.ts","../src/actionCreatorInvariantMiddleware.ts","../src/utils.ts","../src/immutableStateInvariantMiddleware.ts","../src/serializableStateInvariantMiddleware.ts","../src/autoBatchEnhancer.ts","../src/getDefaultEnhancers.ts","../src/configureStore.ts","../src/mapBuilders.ts","../src/createReducer.ts","../src/matchers.ts","../src/nanoid.ts","../src/createAsyncThunk.ts","../src/createSlice.ts","../src/entities/entity_state.ts","../src/entities/state_selectors.ts","../src/entities/state_adapter.ts","../src/entities/utils.ts","../src/entities/unsorted_state_adapter.ts","../src/entities/sorted_state_adapter.ts","../src/entities/create_adapter.ts","../src/listenerMiddleware/exceptions.ts","../src/listenerMiddleware/utils.ts","../src/listenerMiddleware/task.ts","../src/listenerMiddleware/index.ts","../src/dynamicMiddleware/index.ts","../src/combineSlices.ts","../src/formatProdErrorMessage.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';","export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';","export { createSelectorCreator, weakMapMemoize } from 'reselect';","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n  /**\n   * The function to identify whether a value is an action creator.\n   * The default checks for a function with a static type property and match method.\n   */\n  isActionCreator?: (action: unknown) => action is Function & {\n    type?: unknown;\n  };\n}\nexport function getMessage(type?: unknown) {\n  const splitType = type ? `${type}`.split('/') : [];\n  const actionName = splitType[splitType.length - 1] || 'actionCreator';\n  return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  }\n  const {\n    isActionCreator = isRTKAction\n  } = options;\n  return () => next => action => {\n    if (isActionCreator(action)) {\n      console.warn(getMessage(action.type));\n    }\n    return next(action);\n  };\n}","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseLike<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  let resolve: any;\n  let reject: any;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    promise,\n    resolve,\n    reject\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n  return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n  return {\n    detectMutations() {\n      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n    }\n  };\n}\ninterface TrackedProperty {\n  value: any;\n  children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n  const tracked: Partial<TrackedProperty> = {\n    value: obj\n  };\n  if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n    checkedObjects.add(obj);\n    tracked.children = {};\n    const hasIgnoredPaths = ignoredPaths.length > 0;\n    for (const key in obj) {\n      const nestedPath = path ? path + '.' + key : key;\n      if (hasIgnoredPaths) {\n        const hasMatches = ignoredPaths.some(ignored => {\n          if (ignored instanceof RegExp) {\n            return ignored.test(nestedPath);\n          }\n          return nestedPath === ignored;\n        });\n        if (hasMatches) {\n          continue;\n        }\n      }\n      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n    }\n  }\n  return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n  wasMutated: boolean;\n  path?: string;\n} {\n  const prevObj = trackedProperty ? trackedProperty.value : undefined;\n  const sameRef = prevObj === obj;\n  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n    return {\n      wasMutated: true,\n      path\n    };\n  }\n  if (isImmutable(prevObj) || isImmutable(obj)) {\n    return {\n      wasMutated: false\n    };\n  }\n\n  // Gather all keys from prev (tracked) and after objs\n  const keysToDetect: Record<string, boolean> = {};\n  for (let key in trackedProperty.children) {\n    keysToDetect[key] = true;\n  }\n  for (let key in obj) {\n    keysToDetect[key] = true;\n  }\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (let key in keysToDetect) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n    if (result.wasMutated) {\n      return result;\n    }\n  }\n  return {\n    wasMutated: false\n  };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n  /**\n    Callback function to check if a value is considered to be immutable.\n    This function is applied recursively to every value contained in the state.\n    The default implementation will return true for primitive types\n    (like numbers, strings, booleans, null and undefined).\n   */\n  isImmutable?: IsImmutableFunc;\n  /**\n    An array of dot-separated path strings that match named nodes from\n    the root state to ignore when checking for immutability.\n    Defaults to undefined\n   */\n  ignoredPaths?: IgnorePaths;\n  /** Print a warning if checks take longer than N ms. Default: 32ms */\n  warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n      return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n    }\n    function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n      let stack: any[] = [],\n        keys: any[] = [];\n      if (!decycler) decycler = function (_: string, value: any) {\n        if (stack[0] === value) return '[Circular ~]';\n        return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n      };\n      return function (this: any, key: string, value: any) {\n        if (stack.length > 0) {\n          var thisPos = stack.indexOf(this);\n          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n          if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n        } else stack.push(value);\n        return serializer == null ? value : serializer.call(this, key, value);\n      };\n    }\n    let {\n      isImmutable = isImmutableDefault,\n      ignoredPaths,\n      warnAfter = 32\n    } = options;\n    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n    return ({\n      getState\n    }) => {\n      let state = getState();\n      let tracker = track(state);\n      let result;\n      return next => action => {\n        const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        const dispatchedAction = next(action);\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n        return dispatchedAction;\n      };\n    };\n  }\n}","import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n  const type = typeof val;\n  return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n  keyPath: string;\n  value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n  let foundNestedSerializable: NonSerializableValue | false;\n  if (!isSerializable(value)) {\n    return {\n      keyPath: path || '<root>',\n      value: value\n    };\n  }\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n  if (cache?.has(value)) return false;\n  const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (const [key, nestedValue] of entries) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    if (!isSerializable(nestedValue)) {\n      return {\n        keyPath: nestedPath,\n        value: nestedValue\n      };\n    }\n    if (typeof nestedValue === 'object') {\n      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n      if (foundNestedSerializable) {\n        return foundNestedSerializable;\n      }\n    }\n  }\n  if (cache && isNestedFrozen(value)) cache.add(value);\n  return false;\n}\nexport function isNestedFrozen(value: object) {\n  if (!Object.isFrozen(value)) return false;\n  for (const nestedValue of Object.values(value)) {\n    if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n    if (!isNestedFrozen(nestedValue)) return false;\n  }\n  return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n  /**\n   * The function to check if a value is considered serializable. This\n   * function is applied recursively to every value contained in the\n   * state. Defaults to `isPlain()`.\n   */\n  isSerializable?: (value: any) => boolean;\n  /**\n   * The function that will be used to retrieve entries from each\n   * value.  If unspecified, `Object.entries` will be used. Defaults\n   * to `undefined`.\n   */\n  getEntries?: (value: any) => [string, any][];\n\n  /**\n   * An array of action types to ignore when checking for serializability.\n   * Defaults to []\n   */\n  ignoredActions?: string[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to\n   * ['meta.arg', 'meta.baseQueryMeta']\n   */\n  ignoredActionPaths?: (string | RegExp)[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to []\n   */\n  ignoredPaths?: (string | RegExp)[];\n  /**\n   * Execution time warning threshold. If the middleware takes longer\n   * than `warnAfter` ms, a warning will be displayed in the console.\n   * Defaults to 32ms.\n   */\n  warnAfter?: number;\n\n  /**\n   * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n   */\n  ignoreState?: boolean;\n\n  /**\n   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n   */\n  ignoreActions?: boolean;\n\n  /**\n   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n   * The cache is automatically disabled if no browser support for WeakSet is present.\n   */\n  disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    const {\n      isSerializable = isPlain,\n      getEntries,\n      ignoredActions = [],\n      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n      ignoredPaths = [],\n      warnAfter = 32,\n      ignoreState = false,\n      ignoreActions = false,\n      disableCache = false\n    } = options;\n    const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n    return storeAPI => next => action => {\n      if (!isAction(action)) {\n        return next(action);\n      }\n      const result = next(action);\n      const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n        measureUtils.measureTime(() => {\n          const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n          if (foundActionNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundActionNonSerializableValue;\n            console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n          }\n        });\n      }\n      if (!ignoreState) {\n        measureUtils.measureTime(() => {\n          const state = storeAPI.getState();\n          const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n          if (foundStateNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundStateNonSerializableValue;\n            console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n      }\n      return result;\n    };\n  }\n}","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * Whether to check for duplicate middleware instances. Defaults to `true`.\n   */\n  duplicateMiddlewareCheck?: boolean;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    duplicateMiddlewareCheck = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n    let middlewareReferences = new Set<Middleware<any, S>>();\n    finalMiddleware.forEach(middleware => {\n      if (middlewareReferences.has(middleware)) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n      }\n      middlewareReferences.add(middleware);\n    });\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n   * @remarks\n   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param asyncThunk - The async thunk action creator itself.\n   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n   * @example\n  ```ts no-transpile\n  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n  const response = await fetch(`https://reqres.in/api/users/${id}`)\n  return (await response.json()).data\n  })\n  const reducer = createReducer(initialState, (builder) => {\n  builder.addAsyncThunk(fetchUserById, {\n    pending: (state, action) => {\n      state.fetchUserById.loading = 'pending'\n    },\n    fulfilled: (state, action) => {\n      state.fetchUserById.data = action.payload\n    },\n    rejected: (state, action) => {\n      state.fetchUserById.error = action.error\n    },\n    settled: (state, action) => {\n      state.fetchUserById.loading = action.meta.requestStatus\n    },\n  })\n  })\n   */\n  addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n      if (process.env.NODE_ENV !== 'production') {\n        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n      if (reducers.settled) actionMatchers.push({\n        matcher: asyncThunk.settled,\n        reducer: reducers.settled\n      });\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n  if (hasMatchFunction(matcher)) {\n    return matcher.match(action);\n  } else {\n    return matcher(action);\n  }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n    return matchers.some(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAllOf<Matchers> => {\n    return matchers.every(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n  if (!action || !action.meta) return false;\n  const hasValidRequestId = typeof action.meta.requestId === 'string';\n  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n  return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n  return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isPending()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejected()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n  rejectValue: infer RejectedValue;\n}> ? {\n  payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  const hasFlag = (action: any): action is any => {\n    return action && action.meta && action.meta.rejectedWithValue;\n  };\n  if (asyncThunks.length === 0) {\n    return isAllOf(isRejected(...asyncThunks), hasFlag);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejectedWithValue()(asyncThunks[0]);\n  }\n  return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isFulfilled()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n  pending: {\n    match: (action: any) => action is any;\n  };\n  fulfilled: {\n    match: (action: any) => action is any;\n  };\n  rejected: {\n    match: (action: any) => action is any;\n  };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isAsyncThunkAction()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\n *\n * @public\n */\nexport let nanoid = (size = 21) => {\n  let id = '';\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size;\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};","import type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n  dispatch: D;\n  getState: () => S;\n  extra: E;\n  requestId: string;\n  signal: AbortSignal;\n  abort: (reason?: string) => void;\n  rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n  fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n  name?: string;\n  message?: string;\n  stack?: string;\n  code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'RejectWithValue';\n  constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'FulfillWithMeta';\n  constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n  if (typeof value === 'object' && value !== null) {\n    const simpleError: SerializedError = {};\n    for (const property of commonProperties) {\n      if (typeof value[property] === 'string') {\n        simpleError[property] = value[property];\n      }\n    }\n    return simpleError;\n  }\n  return {\n    message: String(value)\n  };\n};\nexport type AsyncThunkConfig = {\n  state?: unknown;\n  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n  extra?: unknown;\n  rejectValue?: unknown;\n  serializedErrorType?: unknown;\n  pendingMeta?: unknown;\n  fulfilledMeta?: unknown;\n  rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n  state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n  extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n  dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n  serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n  abort: (reason?: string) => void;\n  requestId: string;\n  arg: ThunkArg;\n  unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n  /**\n   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n   */\n  signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  /**\n   * A method to control whether the asyncThunk should be executed. Has access to the\n   * `arg`, `api.getState()` and `api.extra` arguments.\n   *\n   * @returns `false` if it should be skipped\n   */\n  condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n  /**\n   * If `condition` returns `false`, the asyncThunk will be skipped.\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\n   * will be dispatched or not.\n   *\n   * @default `false`\n   */\n  dispatchConditionRejection?: boolean;\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n  /**\n   * A function to use when generating the `requestId` for the request sequence.\n   *\n   * @default `nanoid`\n   */\n  idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   *\n   * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n   * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n   */\n  getPendingMeta?(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   */\n  getPendingMeta(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'rejected';\n  aborted: boolean;\n  condition: boolean;\n} & (({\n  rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n  rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n  fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n  // matchSettled?\n  settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n  typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  // separate signature without `AsyncThunkConfig` for better inference\n  <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n  function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n    type RejectedValue = GetRejectValue<ThunkApiConfig>;\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n    const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n      payload,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'fulfilled' as const\n      }\n    }));\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n      payload: undefined,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'pending' as const\n      }\n    }));\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n      payload,\n      error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        rejectedWithValue: !!payload,\n        requestStatus: 'rejected' as const,\n        aborted: error?.name === 'AbortError',\n        condition: error?.name === 'ConditionError'\n      }\n    }));\n    function actionCreator(arg: ThunkArg, {\n      signal\n    }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n      return (dispatch, getState, extra) => {\n        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n        const abortController = new AbortController();\n        let abortHandler: (() => void) | undefined;\n        let abortReason: string | undefined;\n        function abort(reason?: string) {\n          abortReason = reason;\n          abortController.abort();\n        }\n        if (signal) {\n          if (signal.aborted) {\n            abort(externalAbortMessage);\n          } else {\n            signal.addEventListener('abort', () => abort(externalAbortMessage), {\n              once: true\n            });\n          }\n        }\n        const promise = async function () {\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n          try {\n            let conditionResult = options?.condition?.(arg, {\n              getState,\n              extra\n            });\n            if (isThenable(conditionResult)) {\n              conditionResult = await conditionResult;\n            }\n            if (conditionResult === false || abortController.signal.aborted) {\n              // eslint-disable-next-line no-throw-literal\n              throw {\n                name: 'ConditionError',\n                message: 'Aborted due to condition callback returning false.'\n              };\n            }\n            const abortedPromise = new Promise<never>((_, reject) => {\n              abortHandler = () => {\n                reject({\n                  name: 'AbortError',\n                  message: abortReason || 'Aborted'\n                });\n              };\n              abortController.signal.addEventListener('abort', abortHandler, {\n                once: true\n              });\n            });\n            dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n              requestId,\n              arg\n            }, {\n              getState,\n              extra\n            })) as any);\n            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n              dispatch,\n              getState,\n              extra,\n              requestId,\n              signal: abortController.signal,\n              abort,\n              rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n                return new RejectWithValue(value, meta);\n              }) as any,\n              fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n                return new FulfillWithMeta(value, meta);\n              }) as any\n            })).then(result => {\n              if (result instanceof RejectWithValue) {\n                throw result;\n              }\n              if (result instanceof FulfillWithMeta) {\n                return fulfilled(result.payload, requestId, arg, result.meta);\n              }\n              return fulfilled(result as any, requestId, arg);\n            })]);\n          } catch (err) {\n            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n          } finally {\n            if (abortHandler) {\n              abortController.signal.removeEventListener('abort', abortHandler);\n            }\n          }\n          // We dispatch the result action _after_ the catch, to avoid having any errors\n          // here get swallowed by the try/catch block,\n          // per https://twitter.com/dan_abramov/status/770914221638942720\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n          if (!skipDispatch) {\n            dispatch(finalAction as any);\n          }\n          return finalAction;\n        }();\n        return Object.assign(promise as SafePromise<any>, {\n          abort,\n          requestId,\n          arg,\n          unwrap() {\n            return promise.then<any>(unwrapResult);\n          }\n        });\n      };\n    }\n    return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n      pending,\n      rejected,\n      fulfilled,\n      settled: isAnyOf(rejected, fulfilled),\n      typePrefix\n    });\n  }\n  createAsyncThunk.withTypes = () => createAsyncThunk;\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n  payload: any;\n  meta?: any;\n  error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n  error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n  if (action.meta && action.meta.rejectedWithValue) {\n    throw action.payload;\n  }\n  if (action.error) {\n    throw action.error;\n  }\n  return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n  return value !== null && typeof value === 'object' && typeof value.then === 'function';\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import type { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n  return {\n    ids: [],\n    entities: {} as Record<Id, T>\n  };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n  function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n  function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n  function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n    const state = Object.assign(getInitialEntityState(), additionalState);\n    return entities ? stateAdapter.setAll(state, entities) : state;\n  }\n  return {\n    getInitialState\n  };\n}","import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n  createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n  function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n  function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n  function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n    const {\n      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n    } = options;\n    const selectIds = (state: EntityState<T, Id>) => state.ids;\n    const selectEntities = (state: EntityState<T, Id>) => state.entities;\n    const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n    const selectId = (_: unknown, id: Id) => id;\n    const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n    const selectTotal = createSelector(selectIds, ids => ids.length);\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n        selectById: createSelector(selectEntities, selectId, selectById)\n      };\n    }\n    const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: selectGlobalizedEntities,\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n      selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n    };\n  }\n  return {\n    getSelectors\n  };\n}","import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n  const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n  return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n    return operator(state as S, undefined);\n  };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n  return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n    function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n      return isFSA(arg);\n    }\n    const runMutator = (draft: DraftableEntityState<T, Id>) => {\n      if (isPayloadActionArgument(arg)) {\n        mutator(arg.payload, draft);\n      } else {\n        mutator(arg, draft);\n      }\n    };\n    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n      // we must already be inside a `createNextState` call, likely because\n      // this is being wrapped in `createReducer` or `createSlice`.\n      // It's safe to just pass the draft to the mutator.\n      runMutator(state);\n\n      // since it's a draft, we'll just return it\n      return state;\n    }\n    return createNextState(state, runMutator);\n  };\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n  const key = selectId(entity);\n  if (process.env.NODE_ENV !== 'production' && key === undefined) {\n    console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n  }\n  return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n  if (!Array.isArray(entities)) {\n    entities = Object.values(entities);\n  }\n  return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n  newEntities = ensureEntitiesArray(newEntities);\n  const existingIdsArray = getCurrent(state.ids);\n  const existingIds = new Set<Id>(existingIdsArray);\n  const added: T[] = [];\n  const addedIds = new Set<Id>([]);\n  const updated: Update<T, Id>[] = [];\n  for (const entity of newEntities) {\n    const id = selectIdValue(entity, selectId);\n    if (existingIds.has(id) || addedIds.has(id)) {\n      updated.push({\n        id,\n        changes: entity\n      });\n    } else {\n      addedIds.add(id);\n      added.push(entity);\n    }\n  }\n  return [added, updated, existingIdsArray];\n}","import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  function addOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (key in state.entities) {\n      return;\n    }\n    state.ids.push(key as Id & Draft<Id>);\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      addOneMutably(entity, state);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (!(key in state.entities)) {\n      state.ids.push(key as Id & Draft<Id>);\n    }\n    ;\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      setOneMutably(entity, state);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.ids = [];\n    state.entities = {} as Record<Id, T>;\n    addManyMutably(newEntities, state);\n  }\n  function removeOneMutably(key: Id, state: R): void {\n    return removeManyMutably([key], state);\n  }\n  function removeManyMutably(keys: readonly Id[], state: R): void {\n    let didMutate = false;\n    keys.forEach(key => {\n      if (key in state.entities) {\n        delete (state.entities as Record<Id, T>)[key];\n        didMutate = true;\n      }\n    });\n    if (didMutate) {\n      state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n    }\n  }\n  function removeAllMutably(state: R): void {\n    Object.assign(state, {\n      ids: [],\n      entities: {}\n    });\n  }\n  function takeNewKey(keys: {\n    [id: string]: Id;\n  }, update: Update<T, Id>, state: R): boolean {\n    const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n    if (original === undefined) {\n      return false;\n    }\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete (state.entities as Record<Id, T>)[update.id];\n    }\n    ;\n    (state.entities as Record<Id, T>)[newKey] = updated;\n    return hasNewKey;\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    const newKeys: {\n      [id: string]: Id;\n    } = {};\n    const updatesPerEntity: {\n      [id: string]: Update<T, Id>;\n    } = {};\n    updates.forEach(update => {\n      // Only apply updates to entities that currently exist\n      if (update.id in state.entities) {\n        // If there are multiple updates to one entity, merge them together\n        updatesPerEntity[update.id] = {\n          id: update.id,\n          // Spreads ignore falsy values, so this works even if there isn't\n          // an existing update already at this key\n          changes: {\n            ...updatesPerEntity[update.id]?.changes,\n            ...update.changes\n          }\n        };\n      }\n    });\n    updates = Object.values(updatesPerEntity);\n    const didMutateEntities = updates.length > 0;\n    if (didMutateEntities) {\n      const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n      if (didMutateIds) {\n        state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n      }\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    addManyMutably(added, state);\n    updateManyMutably(updated, state);\n  }\n  return {\n    removeAll: createSingleArgumentStateOperator(removeAllMutably),\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably)\n  };\n}","import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n  let lowIndex = 0;\n  let highIndex = sortedItems.length;\n  while (lowIndex < highIndex) {\n    let middleIndex = lowIndex + highIndex >>> 1;\n    const currentItem = sortedItems[middleIndex];\n    const res = comparisonFunction(item, currentItem);\n    if (res >= 0) {\n      lowIndex = middleIndex + 1;\n    } else {\n      highIndex = middleIndex;\n    }\n  }\n  return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n  sortedItems.splice(insertAtIndex, 0, item);\n  return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  const {\n    removeOne,\n    removeMany,\n    removeAll\n  } = createUnsortedStateAdapter(selectId);\n  function addOneMutably(entity: T, state: R): void {\n    return addManyMutably([entity], state);\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n    const addedKeys = new Set<Id>();\n    const models = newEntities.filter(model => {\n      const modelId = selectIdValue(model, selectId);\n      const notAdded = !addedKeys.has(modelId);\n      if (notAdded) addedKeys.add(modelId);\n      return !existingKeys.has(modelId) && notAdded;\n    });\n    if (models.length !== 0) {\n      mergeFunction(state, models);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    return setManyMutably([entity], state);\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    let deduplicatedEntities = {} as Record<Id, T>;\n    newEntities = ensureEntitiesArray(newEntities);\n    if (newEntities.length !== 0) {\n      for (const item of newEntities) {\n        const entityId = selectId(item);\n        // For multiple items with the same ID, we should keep the last one.\n        deduplicatedEntities[entityId] = item;\n        delete (state.entities as Record<Id, T>)[entityId];\n      }\n      newEntities = ensureEntitiesArray(deduplicatedEntities);\n      mergeFunction(state, newEntities);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.entities = {} as Record<Id, T>;\n    state.ids = [];\n    addManyMutably(newEntities, state, []);\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    let appliedUpdates = false;\n    let replacedIds = false;\n    for (let update of updates) {\n      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n      if (!entity) {\n        continue;\n      }\n      appliedUpdates = true;\n      Object.assign(entity, update.changes);\n      const newId = selectId(entity);\n      if (update.id !== newId) {\n        // We do support the case where updates can change an item's ID.\n        // This makes things trickier - go ahead and swap the IDs in state now.\n        replacedIds = true;\n        delete (state.entities as Record<Id, T>)[update.id];\n        const oldIndex = (state.ids as Id[]).indexOf(update.id);\n        state.ids[oldIndex] = newId;\n        (state.entities as Record<Id, T>)[newId] = entity;\n      }\n    }\n    if (appliedUpdates) {\n      mergeFunction(state, [], appliedUpdates, replacedIds);\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    if (added.length) {\n      addManyMutably(added, state, existingIdsArray);\n    }\n    if (updated.length) {\n      updateManyMutably(updated, state);\n    }\n  }\n  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] === b[i]) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n  const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n    const currentEntities = getCurrent(state.entities);\n    const currentIds = getCurrent(state.ids);\n    const stateEntities = state.entities as Record<Id, T>;\n    let ids: Iterable<Id> = currentIds;\n    if (replacedIds) {\n      ids = new Set(currentIds);\n    }\n    let sortedEntities: T[] = [];\n    for (const id of ids) {\n      const entity = currentEntities[id];\n      if (entity) {\n        sortedEntities.push(entity);\n      }\n    }\n    const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n    // Insert/overwrite all new/updated\n    for (const item of addedItems) {\n      stateEntities[selectId(item)] = item;\n      if (!wasPreviouslyEmpty) {\n        // Binary search insertion generally requires fewer comparisons\n        insert(sortedEntities, item, comparer);\n      }\n    }\n    if (wasPreviouslyEmpty) {\n      // All we have is the incoming values, sort them\n      sortedEntities = addedItems.slice().sort(comparer);\n    } else if (appliedUpdates) {\n      // We should have a _mostly_-sorted array already\n      sortedEntities.sort(comparer);\n    }\n    const newSortedIds = sortedEntities.map(selectId);\n    if (!areArraysEqual(currentIds, newSortedIds)) {\n      state.ids = newSortedIds;\n    }\n  };\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably)\n  };\n}","import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n  id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n  const {\n    selectId,\n    sortComparer\n  }: Required<EntityAdapterOptions<T, EntityId>> = {\n    sortComparer: false,\n    selectId: (instance: any) => instance.id,\n    ...options\n  };\n  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n  const stateFactory = createInitialStateFactory(stateAdapter);\n  const selectorsFactory = createSelectorsFactory<T, EntityId>();\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter\n  };\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n  if (typeof func !== 'function') {\n    throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n  }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n  promise.catch(onError);\n  return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n  abortSignal.addEventListener('abort', callback, {\n    once: true\n  });\n  return () => abortSignal.removeEventListener('abort', callback);\n};","import { TaskAbortError } from './exceptions';\nimport type { TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    throw new TaskAbortError(signal.reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignal, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => childAbortController.abort(taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        childAbortController.abort(taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    controller.abort(listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n  return () => {\n    for (const listener of executingListeners.keys()) {\n      cancelActiveListeners(listener);\n    }\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n\n  // Track listeners whose effect is currently executing so clearListeners can\n  // abort even listeners that have become unsubscribed while executing.\n  const executingListeners = new Map<ListenerEntry, number>();\n  const trackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 0;\n    executingListeners.set(entry, count + 1);\n  };\n  const untrackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 1;\n    if (count === 1) {\n      executingListeners.delete(entry);\n    } else {\n      executingListeners.set(entry, count - 1);\n    }\n  };\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      trackExecutingListener(entry);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              controller.abort(listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          internalTaskController.abort(listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      internalTaskController.abort(listenerCompleted); // Notify that the task has completed\n      untrackExecutingListener(entry);\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n  middleware,\n  applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n  meta: {\n    instanceId: string;\n  };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n  const instanceId = nanoid();\n  const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n  const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n    payload: middlewares,\n    meta: {\n      instanceId\n    }\n  })), {\n    withTypes: () => withMiddleware\n  }) as WithMiddleware<State, DispatchType>;\n  const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n    middlewares.forEach(middleware => {\n      getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n    });\n  }, {\n    withTypes: () => addMiddleware\n  }) as AddMiddleware<State, DispatchType>;\n  const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n    const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n    return compose(...appliedMiddleware);\n  };\n  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n  const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n    if (isWithMiddleware(action)) {\n      addMiddleware(...action.payload);\n      return api.dispatch;\n    }\n    return getFinalMiddleware(api)(next)(action);\n  };\n  return {\n    middleware,\n    addMiddleware,\n    withMiddleware,\n    instanceId\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const cached = initialStateCache[prop];\n      if (typeof cached !== 'undefined') return cached;\n      const reducer = reducerMap[prop];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        initialStateCache[prop] = reducerResult;\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n  const reducerMap = Object.fromEntries(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const initialStateCache: Record<PropertyKey, unknown> = {};\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    if (config.overrideExisting && currentReducer !== reducerToInject) {\n      delete initialStateCache[reducerPath];\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,cAAc;AACd,SAAS,QAAQ,YAAAA,iBAAgB;;;ACJjC,SAAS,SAAS,SAAoB,SAAiB,aAAa,6BAA6B;;;ADOjG,SAAS,gBAAgB,kBAAkB;;;AEP3C,SAAS,uBAAuB,sBAAsB;;;ACE/C,IAAM,iCAA+D,IAAI,SAAoB;AAClG,QAAMC,kBAAkB,sBAA8B,GAAG,IAAI;AAC7D,QAAMC,2BAA0B,OAAO,OAAO,IAAIC,UAAoB;AACpE,UAAM,WAAWF,gBAAe,GAAGE,KAAI;AACvC,UAAM,kBAAkB,CAAC,UAAmB,SAAoB,SAAS,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI,OAAO,GAAG,IAAI;AACzH,WAAO,OAAO,iBAAiB,QAAQ;AACvC,WAAO;AAAA,EACT,GAAG;AAAA,IACD,WAAW,MAAMD;AAAA,EACnB,CAAC;AACD,SAAOA;AACT;AASO,IAAM,0BACb,+CAA+B,cAAc;;;ACvB7C,SAAS,aAAa,iBAAiB,iBAAiB,SAAS,eAAe,gBAAgB;;;ACmNzF,IAAM,sBAA2C,OAAO,WAAW,eAAgB,OAAe,uCAAwC,OAAe,uCAAuC,WAAY;AACjN,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,UAAU,CAAC,MAAM,SAAU,QAAO;AAC7C,SAAO,QAAQ,MAAM,MAAM,SAA8B;AAC3D;AAKO,IAAM,mBAET,OAAO,WAAW,eAAgB,OAAe,+BAAgC,OAAe,+BAA+B,WAAY;AAC7I,SAAO,SAAUE,OAAM;AACrB,WAAOA;AAAA,EACT;AACF;;;AChOA,SAAS,SAAS,iBAAiB,yBAAyB;;;ACqFrD,IAAM,mBAAmB,CAAK,MAA4C;AAC/E,SAAO,KAAK,OAAQ,EAA0B,UAAU;AAC1D;;;AC4GO,SAAS,aAAa,MAAc,eAA+B;AACxE,WAAS,iBAAiB,MAAa;AACrC,QAAI,eAAe;AACjB,UAAI,WAAW,cAAc,GAAG,IAAI;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,wCAAwC;AAAA,MAC/H;AACA,aAAO;AAAA,QACL;AAAA,QACA,SAAS,SAAS;AAAA,SACd,UAAU,YAAY;AAAA,QACxB,MAAM,SAAS;AAAA,MACjB,IACI,WAAW,YAAY;AAAA,QACzB,OAAO,SAAS;AAAA,MAClB;AAAA,IAEJ;AACA,WAAO;AAAA,MACL;AAAA,MACA,SAAS,KAAK,CAAC;AAAA,IACjB;AAAA,EACF;AACA,gBAAc,WAAW,MAAM,GAAG,IAAI;AACtC,gBAAc,OAAO;AACrB,gBAAc,QAAQ,CAAC,WAA6C,SAAS,MAAM,KAAK,OAAO,SAAS;AACxG,SAAO;AACT;AAKO,SAAS,gBAAgB,QAA0E;AACxG,SAAO,OAAO,WAAW,cAAc,UAAU;AAAA,EAEjD,iBAAiB,MAAa;AAChC;AAKO,SAAS,MAAM,QAKpB;AACA,SAAO,SAAS,MAAM,KAAK,OAAO,KAAK,MAAM,EAAE,MAAM,UAAU;AACjE;AACA,SAAS,WAAW,KAAa;AAC/B,SAAO,CAAC,QAAQ,WAAW,SAAS,MAAM,EAAE,QAAQ,GAAG,IAAI;AAC7D;;;AC7OO,SAAS,WAAW,MAAgB;AACzC,QAAM,YAAY,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACjD,QAAM,aAAa,UAAU,UAAU,SAAS,CAAC,KAAK;AACtD,SAAO,yCAAyC,QAAQ,SAAS;AAAA,kFACe,UAAU,+BAA+B,UAAU;AACrI;AACO,SAAS,uCAAuC,UAAmD,CAAC,GAAe;AACxH,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C;AACA,QAAM;AAAA,IACJ,iBAAAC,mBAAkB;AAAA,EACpB,IAAI;AACJ,SAAO,MAAM,UAAQ,YAAU;AAC7B,QAAIA,iBAAgB,MAAM,GAAG;AAC3B,cAAQ,KAAK,WAAW,OAAO,IAAI,CAAC;AAAA,IACtC;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;;;AC7BO,SAAS,oBAAoB,UAAkB,QAAgB;AACpE,MAAI,UAAU;AACd,SAAO;AAAA,IACL,YAAe,IAAgB;AAC7B,YAAM,UAAU,KAAK,IAAI;AACzB,UAAI;AACF,eAAO,GAAG;AAAA,MACZ,UAAE;AACA,cAAM,WAAW,KAAK,IAAI;AAC1B,mBAAW,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,IACA,iBAAiB;AACf,UAAI,UAAU,UAAU;AACtB,gBAAQ,KAAK,GAAG,MAAM,SAAS,OAAO,mDAAmD,QAAQ;AAAA;AAAA,4EAE7B;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAIO,IAAM,QAAN,MAAM,eAAyD,MAAqB;AAAA,EAGzF,eAAe,OAAc;AAC3B,UAAM,GAAG,KAAK;AACd,WAAO,eAAe,MAAM,OAAM,SAAS;AAAA,EAC7C;AAAA,EACA,YAAqB,OAAO,OAAO,IAAI;AACrC,WAAO;AAAA,EACT;AAAA,EAIS,UAAU,KAAY;AAC7B,WAAO,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EACrC;AAAA,EAIA,WAAW,KAAY;AACrB,QAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,GAAG;AAC7C,aAAO,IAAI,OAAM,GAAG,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAAA,IACzC;AACA,WAAO,IAAI,OAAM,GAAG,IAAI,OAAO,IAAI,CAAC;AAAA,EACtC;AACF;AACO,SAAS,gBAAmB,KAAQ;AACzC,SAAO,YAAY,GAAG,IAAI,QAAgB,KAAK,MAAM;AAAA,EAAC,CAAC,IAAI;AAC7D;AASO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;;;ACtDO,SAAS,mBAAmB,OAAyB;AAC1D,SAAO,OAAO,UAAU,YAAY,SAAS,QAAQ,OAAO,SAAS,KAAK;AAC5E;AACO,SAAS,kBAAkB,aAA8B,cAAuC,KAAU;AAC/G,QAAM,oBAAoB,gBAAgB,aAAa,cAAc,GAAG;AACxE,SAAO;AAAA,IACL,kBAAkB;AAChB,aAAO,gBAAgB,aAAa,cAAc,mBAAmB,GAAG;AAAA,IAC1E;AAAA,EACF;AACF;AAKA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,KAA0B,OAAe,IAAI,iBAA2C,oBAAI,IAAI,GAAG;AACxL,QAAM,UAAoC;AAAA,IACxC,OAAO;AAAA,EACT;AACA,MAAI,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG,GAAG;AACjD,mBAAe,IAAI,GAAG;AACtB,YAAQ,WAAW,CAAC;AACpB,UAAM,kBAAkB,aAAa,SAAS;AAC9C,eAAW,OAAO,KAAK;AACrB,YAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,UAAI,iBAAiB;AACnB,cAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,cAAI,mBAAmB,QAAQ;AAC7B,mBAAO,QAAQ,KAAK,UAAU;AAAA,UAChC;AACA,iBAAO,eAAe;AAAA,QACxB,CAAC;AACD,YAAI,YAAY;AACd;AAAA,QACF;AAAA,MACF;AACA,cAAQ,SAAS,GAAG,IAAI,gBAAgB,aAAa,cAAc,IAAI,GAAG,GAAG,UAAU;AAAA,IACzF;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,iBAAkC,KAAU,gBAAyB,OAAO,OAAe,IAGhL;AACA,QAAM,UAAU,kBAAkB,gBAAgB,QAAQ;AAC1D,QAAM,UAAU,YAAY;AAC5B,MAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,MAAM,GAAG,GAAG;AACnD,WAAO;AAAA,MACL,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,OAAO,KAAK,YAAY,GAAG,GAAG;AAC5C,WAAO;AAAA,MACL,YAAY;AAAA,IACd;AAAA,EACF;AAGA,QAAM,eAAwC,CAAC;AAC/C,WAAS,OAAO,gBAAgB,UAAU;AACxC,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,WAAS,OAAO,KAAK;AACnB,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,QAAM,kBAAkB,aAAa,SAAS;AAC9C,WAAS,OAAO,cAAc;AAC5B,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,gBAAgB,aAAa,cAAc,gBAAgB,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,SAAS,UAAU;AACtH,QAAI,OAAO,YAAY;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AAAA,IACL,YAAY;AAAA,EACd;AACF;AAmCO,SAAS,wCAAwC,UAAoD,CAAC,GAAe;AAC1H,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,QAASC,aAAT,SAAmB,KAAU,YAA6B,QAA0B,UAAmC;AACrH,aAAO,KAAK,UAAU,KAAKC,cAAa,YAAY,QAAQ,GAAG,MAAM;AAAA,IACvE,GACSA,gBAAT,SAAsB,YAA6B,UAA2C;AAC5F,UAAI,QAAe,CAAC,GAClB,OAAc,CAAC;AACjB,UAAI,CAAC,SAAU,YAAW,SAAU,GAAW,OAAY;AACzD,YAAI,MAAM,CAAC,MAAM,MAAO,QAAO;AAC/B,eAAO,iBAAiB,KAAK,MAAM,GAAG,MAAM,QAAQ,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;AAAA,MAC1E;AACA,aAAO,SAAqB,KAAa,OAAY;AACnD,YAAI,MAAM,SAAS,GAAG;AACpB,cAAI,UAAU,MAAM,QAAQ,IAAI;AAChC,WAAC,UAAU,MAAM,OAAO,UAAU,CAAC,IAAI,MAAM,KAAK,IAAI;AACtD,WAAC,UAAU,KAAK,OAAO,SAAS,UAAU,GAAG,IAAI,KAAK,KAAK,GAAG;AAC9D,cAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,SAAQ,SAAU,KAAK,MAAM,KAAK,KAAK;AAAA,QACpE,MAAO,OAAM,KAAK,KAAK;AACvB,eAAO,cAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,KAAK,KAAK;AAAA,MACtE;AAAA,IACF;AAnBS,oBAAAD,YAGA,eAAAC;AAiBT,QAAI;AAAA,MACF,cAAc;AAAA,MACd;AAAA,MACA,YAAY;AAAA,IACd,IAAI;AACJ,UAAM,QAAQ,kBAAkB,KAAK,MAAM,aAAa,YAAY;AACpE,WAAO,CAAC;AAAA,MACN;AAAA,IACF,MAAM;AACJ,UAAI,QAAQ,SAAS;AACrB,UAAI,UAAU,MAAM,KAAK;AACzB,UAAI;AACJ,aAAO,UAAQ,YAAU;AACvB,cAAM,eAAe,oBAAoB,WAAW,mCAAmC;AACvF,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,kEAAkE,OAAO,QAAQ,EAAE,2GAA2G;AAAA,UACtR;AAAA,QACF,CAAC;AACD,cAAM,mBAAmB,KAAK,MAAM;AACpC,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,iEAAiE,OAAO,QAAQ,EAAE,uDAAuDD,WAAU,MAAM,CAAC,sEAAsE;AAAA,UACzT;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAC5B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACxLO,SAAS,QAAQ,KAAU;AAChC,QAAM,OAAO,OAAO;AACpB,SAAO,OAAO,QAAQ,SAAS,YAAY,SAAS,aAAa,SAAS,YAAY,MAAM,QAAQ,GAAG,KAAK,cAAc,GAAG;AAC/H;AAUO,SAAS,yBAAyB,OAAgB,OAAe,IAAI,iBAA8C,SAAS,YAAkD,eAA4B,CAAC,GAAG,OAAuD;AAC1Q,MAAI;AACJ,MAAI,CAAC,eAAe,KAAK,GAAG;AAC1B,WAAO;AAAA,MACL,SAAS,QAAQ;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,MAAI,+BAAO,IAAI,OAAQ,QAAO;AAC9B,QAAM,UAAU,cAAc,OAAO,WAAW,KAAK,IAAI,OAAO,QAAQ,KAAK;AAC7E,QAAM,kBAAkB,aAAa,SAAS;AAC9C,aAAW,CAAC,KAAK,WAAW,KAAK,SAAS;AACxC,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,eAAe,WAAW,GAAG;AAChC,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,OAAO,gBAAgB,UAAU;AACnC,gCAA0B,yBAAyB,aAAa,YAAY,gBAAgB,YAAY,cAAc,KAAK;AAC3H,UAAI,yBAAyB;AAC3B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,eAAe,KAAK,EAAG,OAAM,IAAI,KAAK;AACnD,SAAO;AACT;AACO,SAAS,eAAe,OAAe;AAC5C,MAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,aAAW,eAAe,OAAO,OAAO,KAAK,GAAG;AAC9C,QAAI,OAAO,gBAAgB,YAAY,gBAAgB,KAAM;AAC7D,QAAI,CAAC,eAAe,WAAW,EAAG,QAAO;AAAA,EAC3C;AACA,SAAO;AACT;AAwEO,SAAS,2CAA2C,UAAuD,CAAC,GAAe;AAChI,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,UAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,qBAAqB,CAAC,YAAY,oBAAoB;AAAA,MACtD,eAAe,CAAC;AAAA,MAChB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe;AAAA,IACjB,IAAI;AACJ,UAAM,QAAqC,CAAC,gBAAgB,UAAU,oBAAI,QAAQ,IAAI;AACtF,WAAO,cAAY,UAAQ,YAAU;AACnC,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,eAAO,KAAK,MAAM;AAAA,MACpB;AACA,YAAM,SAAS,KAAK,MAAM;AAC1B,YAAM,eAAe,oBAAoB,WAAW,sCAAsC;AAC1F,UAAI,CAAC,iBAAiB,EAAE,eAAe,UAAU,eAAe,QAAQ,OAAO,IAAW,MAAM,KAAK;AACnG,qBAAa,YAAY,MAAM;AAC7B,gBAAM,kCAAkC,yBAAyB,QAAQ,IAAI,gBAAgB,YAAY,oBAAoB,KAAK;AAClI,cAAI,iCAAiC;AACnC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO,4DAA4D,QAAQ,yIAAyI,6HAA6H;AAAA,UAC5b;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,CAAC,aAAa;AAChB,qBAAa,YAAY,MAAM;AAC7B,gBAAM,QAAQ,SAAS,SAAS;AAChC,gBAAM,iCAAiC,yBAAyB,OAAO,IAAI,gBAAgB,YAAY,cAAc,KAAK;AAC1H,cAAI,gCAAgC;AAClC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO;AAAA,2DACjE,OAAO,IAAI;AAAA,+HACyD;AAAA,UACrH;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAAA,MAC9B;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AN3LA,SAAS,UAAU,GAAsB;AACvC,SAAO,OAAO,MAAM;AACtB;AAuBO,IAAM,4BAA4B,MAAyC,SAAS,qBAAqB,SAAS;AACvH,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB,IAAI,4BAAW,CAAC;AAChB,MAAI,kBAAkB,IAAI,MAAoB;AAC9C,MAAI,OAAO;AACT,QAAI,UAAU,KAAK,GAAG;AACpB,sBAAgB,KAAK,eAAe;AAAA,IACtC,OAAO;AACL,sBAAgB,KAAK,kBAAkB,MAAM,aAAa,CAAC;AAAA,IAC7D;AAAA,EACF;AACA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,gBAAgB;AAElB,UAAI,mBAA6D,CAAC;AAClE,UAAI,CAAC,UAAU,cAAc,GAAG;AAC9B,2BAAmB;AAAA,MACrB;AACA,sBAAgB,QAAQ,wCAAwC,gBAAgB,CAAC;AAAA,IAEnF;AACA,QAAI,mBAAmB;AACrB,UAAI,sBAAmE,CAAC;AACxE,UAAI,CAAC,UAAU,iBAAiB,GAAG;AACjC,8BAAsB;AAAA,MACxB;AACA,sBAAgB,KAAK,2CAA2C,mBAAmB,CAAC;AAAA,IACtF;AACA,QAAI,oBAAoB;AACtB,UAAI,uBAAgE,CAAC;AACrE,UAAI,CAAC,UAAU,kBAAkB,GAAG;AAClC,+BAAuB;AAAA,MACzB;AACA,sBAAgB,QAAQ,uCAAuC,oBAAoB,CAAC;AAAA,IACtF;AAAA,EACF;AACA,SAAO;AACT;;;AO/EO,IAAM,mBAAmB;AACzB,IAAM,qBAAqB,MAAU,CAAC,aAGvC;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,CAAC,gBAAgB,GAAG;AAAA,EACtB;AACF;AACA,IAAM,uBAAuB,CAAC,YAAoB;AAChD,SAAO,CAAC,WAAuB;AAC7B,eAAW,QAAQ,OAAO;AAAA,EAC5B;AACF;AAmCO,IAAM,oBAAoB,CAAC,UAA4B;AAAA,EAC5D,MAAM;AACR,MAAqB,UAAQ,IAAI,SAAS;AACxC,QAAM,QAAQ,KAAK,GAAG,IAAI;AAC1B,MAAI,YAAY;AAChB,MAAI,0BAA0B;AAC9B,MAAI,qBAAqB;AACzB,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,gBAAgB,QAAQ,SAAS,SAAS,iBAAiB,QAAQ,SAAS;AAAA;AAAA,IAElF,OAAO,WAAW,eAAe,OAAO,wBAAwB,OAAO,wBAAwB,qBAAqB,EAAE;AAAA,MAAI,QAAQ,SAAS,aAAa,QAAQ,oBAAoB,qBAAqB,QAAQ,OAAO;AACxN,QAAM,kBAAkB,MAAM;AAG5B,yBAAqB;AACrB,QAAI,yBAAyB;AAC3B,gCAA0B;AAC1B,gBAAU,QAAQ,OAAK,EAAE,CAAC;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,OAAO,OAAO,CAAC,GAAG,OAAO;AAAA;AAAA;AAAA,IAG9B,UAAUE,WAAsB;AAK9B,YAAM,kBAAmC,MAAM,aAAaA,UAAS;AACrE,YAAM,cAAc,MAAM,UAAU,eAAe;AACnD,gBAAU,IAAIA,SAAQ;AACtB,aAAO,MAAM;AACX,oBAAY;AACZ,kBAAU,OAAOA,SAAQ;AAAA,MAC3B;AAAA,IACF;AAAA;AAAA;AAAA,IAGA,SAAS,QAAa;AAxF1B;AAyFM,UAAI;AAGF,oBAAY,GAAC,sCAAQ,SAAR,mBAAe;AAG5B,kCAA0B,CAAC;AAC3B,YAAI,yBAAyB;AAI3B,cAAI,CAAC,oBAAoB;AACvB,iCAAqB;AACrB,0BAAc,eAAe;AAAA,UAC/B;AAAA,QACF;AAOA,eAAO,MAAM,SAAS,MAAM;AAAA,MAC9B,UAAE;AAEA,oBAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AC1GO,IAAM,2BAA2B,CAA8B,uBAEvC,SAAS,oBAAoB,SAAS;AACnE,QAAM;AAAA,IACJ,YAAY;AAAA,EACd,IAAI,4BAAW,CAAC;AAChB,MAAI,gBAAgB,IAAI,MAAuB,kBAAkB;AACjE,MAAI,WAAW;AACb,kBAAc,KAAK,kBAAkB,OAAO,cAAc,WAAW,YAAY,MAAS,CAAC;AAAA,EAC7F;AACA,SAAO;AACT;;;AC8DO,SAAS,eAEY,SAAuE;AACjG,QAAM,uBAAuB,0BAA6B;AAC1D,QAAM;AAAA,IACJ,UAAU;AAAA,IACV;AAAA,IACA,WAAW;AAAA,IACX,2BAA2B;AAAA,IAC3B,iBAAiB;AAAA,IACjB,YAAY;AAAA,EACd,IAAI,WAAW,CAAC;AAChB,MAAI;AACJ,MAAI,OAAO,YAAY,YAAY;AACjC,kBAAc;AAAA,EAChB,WAAW,cAAc,OAAO,GAAG;AACjC,kBAAc,gBAAgB,OAAO;AAAA,EACvC,OAAO;AACL,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,0HAA0H;AAAA,EACjN;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,cAAc,OAAO,eAAe,YAAY;AAC3F,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,uCAAuC;AAAA,EAC/H;AACA,MAAI;AACJ,MAAI,OAAO,eAAe,YAAY;AACpC,sBAAkB,WAAW,oBAAoB;AACjD,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,MAAM,QAAQ,eAAe,GAAG;AAC5E,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,mFAAmF;AAAA,IAC3K;AAAA,EACF,OAAO;AACL,sBAAkB,qBAAqB;AAAA,EACzC;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,gBAAgB,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC5G,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D;AAAA,EACvJ;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,0BAA0B;AACrE,QAAI,uBAAuB,oBAAI,IAAwB;AACvD,oBAAgB,QAAQ,CAAAC,gBAAc;AACpC,UAAI,qBAAqB,IAAIA,WAAU,GAAG;AACxC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,mHAAmH;AAAA,MAC5M;AACA,2BAAqB,IAAIA,WAAU;AAAA,IACrC,CAAC;AAAA,EACH;AACA,MAAI,eAAe;AACnB,MAAI,UAAU;AACZ,mBAAe,oBAAoB;AAAA;AAAA,MAEjC,OAAO,QAAQ,IAAI,aAAa;AAAA,OAC5B,OAAO,aAAa,YAAY,SACrC;AAAA,EACH;AACA,QAAM,qBAAqB,gBAAgB,GAAG,eAAe;AAC7D,QAAM,sBAAsB,yBAA4B,kBAAkB;AAC1E,MAAI,QAAQ,IAAI,aAAa,gBAAgB,aAAa,OAAO,cAAc,YAAY;AACzF,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sCAAsC;AAAA,EAC9H;AACA,MAAI,iBAAiB,OAAO,cAAc,aAAa,UAAU,mBAAmB,IAAI,oBAAoB;AAC5G,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,MAAM,QAAQ,cAAc,GAAG;AAC3E,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,2CAA2C;AAAA,EACnI;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC3G,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,6DAA6D;AAAA,EACrJ;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,gBAAgB,UAAU,CAAC,eAAe,SAAS,kBAAkB,GAAG;AACnH,YAAQ,MAAM,kIAAkI;AAAA,EAClJ;AACA,QAAM,mBAAuC,aAAa,GAAG,cAAc;AAC3E,SAAO,YAAY,aAAa,gBAAqB,gBAAgB;AACvE;;;ACTO,SAAS,8BAAiC,iBAAmK;AAClN,QAAM,aAAmC,CAAC;AAC1C,QAAM,iBAAwD,CAAC;AAC/D,MAAI;AACJ,QAAM,UAAU;AAAA,IACd,QAAQ,qBAAuD,SAAyB;AACtF,UAAI,QAAQ,IAAI,aAAa,cAAc;AAMzC,YAAI,eAAe,SAAS,GAAG;AAC7B,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,6EAA6E;AAAA,QACrK;AACA,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,iFAAiF;AAAA,QAC1K;AAAA,MACF;AACA,YAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8DAA8D;AAAA,MACvJ;AACA,UAAI,QAAQ,YAAY;AACtB,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAuF,IAAI,GAAG;AAAA,MACvL;AACA,iBAAW,IAAI,IAAI;AACnB,aAAO;AAAA,IACT;AAAA,IACA,cAAgF,YAA4D,UAAqE;AAC/M,UAAI,QAAQ,IAAI,aAAa,cAAc;AAEzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,uFAAuF;AAAA,QAChL;AAAA,MACF;AACA,UAAI,SAAS,QAAS,YAAW,WAAW,QAAQ,IAAI,IAAI,SAAS;AACrE,UAAI,SAAS,SAAU,YAAW,WAAW,SAAS,IAAI,IAAI,SAAS;AACvE,UAAI,SAAS,UAAW,YAAW,WAAW,UAAU,IAAI,IAAI,SAAS;AACzE,UAAI,SAAS,QAAS,gBAAe,KAAK;AAAA,QACxC,SAAS,WAAW;AAAA,QACpB,SAAS,SAAS;AAAA,MACpB,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,WAAc,SAAuB,SAA4D;AAC/F,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAoF;AAAA,QAC7K;AAAA,MACF;AACA,qBAAe,KAAK;AAAA,QAClB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,eAAe,SAAiC;AAC9C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,kDAAkD;AAAA,QAC3I;AAAA,MACF;AACA,2BAAqB;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,kBAAgB,OAAO;AACvB,SAAO,CAAC,YAAY,gBAAgB,kBAAkB;AACxD;;;AChKA,SAAS,gBAAmB,GAA0B;AACpD,SAAO,OAAO,MAAM;AACtB;AAqEO,SAAS,cAA0C,cAA6B,sBAAiG;AACtL,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,OAAO,yBAAyB,UAAU;AAC5C,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,8JAA8J;AAAA,IACrP;AAAA,EACF;AACA,MAAI,CAAC,YAAY,qBAAqB,uBAAuB,IAAI,8BAA8B,oBAAoB;AAGnH,MAAI;AACJ,MAAI,gBAAgB,YAAY,GAAG;AACjC,sBAAkB,MAAM,gBAAgB,aAAa,CAAC;AAAA,EACxD,OAAO;AACL,UAAM,qBAAqB,gBAAgB,YAAY;AACvD,sBAAkB,MAAM;AAAA,EAC1B;AACA,WAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAgB;AAC1D,QAAI,eAAe,CAAC,WAAW,OAAO,IAAI,GAAG,GAAG,oBAAoB,OAAO,CAAC;AAAA,MAC1E;AAAA,IACF,MAAM,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC;AAAA,MAC1B,SAAAC;AAAA,IACF,MAAMA,QAAO,CAAC;AACd,QAAI,aAAa,OAAO,QAAM,CAAC,CAAC,EAAE,EAAE,WAAW,GAAG;AAChD,qBAAe,CAAC,uBAAuB;AAAA,IACzC;AACA,WAAO,aAAa,OAAO,CAAC,eAAe,gBAAmB;AAC5D,UAAI,aAAa;AACf,YAAI,QAAQ,aAAa,GAAG;AAI1B,gBAAM,QAAQ;AACd,gBAAM,SAAS,YAAY,OAAO,MAAM;AACxC,cAAI,WAAW,QAAW;AACxB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,WAAW,CAAC,YAAY,aAAa,GAAG;AAGtC,gBAAM,SAAS,YAAY,eAAsB,MAAM;AACvD,cAAI,WAAW,QAAW;AACxB,gBAAI,kBAAkB,MAAM;AAC1B,qBAAO;AAAA,YACT;AACA,kBAAM,MAAM,mEAAmE;AAAA,UACjF;AACA,iBAAO;AAAA,QACT,OAAO;AAIL,iBAAO,QAAgB,eAAe,CAAC,UAAoB;AACzD,mBAAO,YAAY,OAAO,MAAM;AAAA,UAClC,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT,GAAG,KAAK;AAAA,EACV;AACA,UAAQ,kBAAkB;AAC1B,SAAO;AACT;;;AClLA,IAAM,UAAU,CAAC,SAAuB,WAAgB;AACtD,MAAI,iBAAiB,OAAO,GAAG;AAC7B,WAAO,QAAQ,MAAM,MAAM;AAAA,EAC7B,OAAO;AACL,WAAO,QAAQ,MAAM;AAAA,EACvB;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,KAAK,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC1D;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,MAAM,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC3D;AACF;AAQO,SAAS,2BAA2B,QAAa,aAAgC;AACtF,MAAI,CAAC,UAAU,CAAC,OAAO,KAAM,QAAO;AACpC,QAAM,oBAAoB,OAAO,OAAO,KAAK,cAAc;AAC3D,QAAM,wBAAwB,YAAY,QAAQ,OAAO,KAAK,aAAa,IAAI;AAC/E,SAAO,qBAAqB;AAC9B;AACA,SAAS,kBAAkB,GAAkD;AAC3E,SAAO,OAAO,EAAE,CAAC,MAAM,cAAc,aAAa,EAAE,CAAC,KAAK,eAAe,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;AACpG;AA2BO,SAAS,aAAsE,aAAkC;AACtH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,SAAS,CAAC;AAAA,EACxE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,UAAU,EAAE,YAAY,CAAC,CAAC;AAAA,EACnC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,OAAO,CAAC;AACrE;AA2BO,SAAS,cAAuE,aAAkC;AACvH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,UAAU,CAAC;AAAA,EACzE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,WAAW,EAAE,YAAY,CAAC,CAAC;AAAA,EACpC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,QAAQ,CAAC;AACtE;AA+BO,SAAS,uBAAgF,aAAkC;AAChI,QAAM,UAAU,CAAC,WAA+B;AAC9C,WAAO,UAAU,OAAO,QAAQ,OAAO,KAAK;AAAA,EAC9C;AACA,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AAAA,EACpD;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC7C;AACA,SAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AACpD;AA2BO,SAAS,eAAwE,aAAkC;AACxH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,CAAC;AAAA,EAC1E;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,YAAY,EAAE,YAAY,CAAC,CAAC;AAAA,EACrC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,SAAS,CAAC;AACvE;AAoCO,SAAS,sBAA+E,aAAkC;AAC/H,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,aAAa,UAAU,CAAC;AAAA,EACjG;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC5C;AACA,SAAO,QAAQ,GAAG,YAAY,QAAQ,gBAAc,CAAC,WAAW,SAAS,WAAW,UAAU,WAAW,SAAS,CAAC,CAAC;AACtH;;;ACzPA,IAAI,cAAc;AAMX,IAAI,SAAS,CAAC,OAAO,OAAO;AACjC,MAAI,KAAK;AAET,MAAI,IAAI;AACR,SAAO,KAAK;AAEV,UAAM,YAAY,KAAK,OAAO,IAAI,KAAK,CAAC;AAAA,EAC1C;AACA,SAAO;AACT;;;ACSA,IAAM,mBAAiD,CAAC,QAAQ,WAAW,SAAS,MAAM;AAC1F,IAAM,kBAAN,MAA6C;AAAA,EAM3C,YAA4B,SAAkC,MAAoB;AAAtD;AAAkC;AAD9D;AAAA;AAAA;AAAA;AAAA,wBAAiB;AAAA,EACkE;AACrF;AACA,IAAM,kBAAN,MAA8C;AAAA,EAM5C,YAA4B,SAAkC,MAAqB;AAAvD;AAAkC;AAD9D;AAAA;AAAA;AAAA;AAAA,wBAAiB;AAAA,EACmE;AACtF;AAQO,IAAM,qBAAqB,CAAC,UAAgC;AACjE,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAM,cAA+B,CAAC;AACtC,eAAW,YAAY,kBAAkB;AACvC,UAAI,OAAO,MAAM,QAAQ,MAAM,UAAU;AACvC,oBAAY,QAAQ,IAAI,MAAM,QAAQ;AAAA,MACxC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,SAAS,OAAO,KAAK;AAAA,EACvB;AACF;AA4MA,IAAM,uBAAuB;AACtB,IAAM,mBAAmC,uBAAM;AACpD,WAASC,kBAA8E,YAAoB,gBAA8E,SAAuG;AAK9R,UAAM,YAAkF,aAAa,aAAa,cAAc,CAAC,SAAmB,WAAmB,KAAe,UAA0B;AAAA,MAC9M;AAAA,MACA,MAAM,iCACA,QAAe,CAAC,IADhB;AAAA,QAEJ;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,UAAoE,aAAa,aAAa,YAAY,CAAC,WAAmB,KAAe,UAAwB;AAAA,MACzK,SAAS;AAAA,MACT,MAAM,iCACA,QAAe,CAAC,IADhB;AAAA,QAEJ;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,WAAsE,aAAa,aAAa,aAAa,CAAC,OAAqB,WAAmB,KAAe,SAAyB,UAAyB;AAAA,MAC3N;AAAA,MACA,QAAQ,WAAW,QAAQ,kBAAkB,oBAAoB,SAAS,UAAU;AAAA,MACpF,MAAM,iCACA,QAAe,CAAC,IADhB;AAAA,QAEJ;AAAA,QACA;AAAA,QACA,mBAAmB,CAAC,CAAC;AAAA,QACrB,eAAe;AAAA,QACf,UAAS,+BAAO,UAAS;AAAA,QACzB,YAAW,+BAAO,UAAS;AAAA,MAC7B;AAAA,IACF,EAAE;AACF,aAAS,cAAc,KAAe;AAAA,MACpC;AAAA,IACF,IAA8B,CAAC,GAAmE;AAChG,aAAO,CAAC,UAAU,UAAU,UAAU;AACpC,cAAM,aAAY,mCAAS,eAAc,QAAQ,YAAY,GAAG,IAAI,OAAO;AAC3E,cAAM,kBAAkB,IAAI,gBAAgB;AAC5C,YAAI;AACJ,YAAI;AACJ,iBAAS,MAAM,QAAiB;AAC9B,wBAAc;AACd,0BAAgB,MAAM;AAAA,QACxB;AACA,YAAI,QAAQ;AACV,cAAI,OAAO,SAAS;AAClB,kBAAM,oBAAoB;AAAA,UAC5B,OAAO;AACL,mBAAO,iBAAiB,SAAS,MAAM,MAAM,oBAAoB,GAAG;AAAA,cAClE,MAAM;AAAA,YACR,CAAC;AAAA,UACH;AAAA,QACF;AACA,cAAM,UAAU,iBAAkB;AAvU1C;AAwUU,cAAI;AACJ,cAAI;AACF,gBAAI,mBAAkB,wCAAS,cAAT,iCAAqB,KAAK;AAAA,cAC9C;AAAA,cACA;AAAA,YACF;AACA,gBAAI,WAAW,eAAe,GAAG;AAC/B,gCAAkB,MAAM;AAAA,YAC1B;AACA,gBAAI,oBAAoB,SAAS,gBAAgB,OAAO,SAAS;AAE/D,oBAAM;AAAA,gBACJ,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,YACF;AACA,kBAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,6BAAe,MAAM;AACnB,uBAAO;AAAA,kBACL,MAAM;AAAA,kBACN,SAAS,eAAe;AAAA,gBAC1B,CAAC;AAAA,cACH;AACA,8BAAgB,OAAO,iBAAiB,SAAS,cAAc;AAAA,gBAC7D,MAAM;AAAA,cACR,CAAC;AAAA,YACH,CAAC;AACD,qBAAS,QAAQ,WAAW,MAAK,wCAAS,mBAAT,iCAA0B;AAAA,cACzD;AAAA,cACA;AAAA,YACF,GAAG;AAAA,cACD;AAAA,cACA;AAAA,YACF,EAAE,CAAQ;AACV,0BAAc,MAAM,QAAQ,KAAK,CAAC,gBAAgB,QAAQ,QAAQ,eAAe,KAAK;AAAA,cACpF;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ,gBAAgB;AAAA,cACxB;AAAA,cACA,iBAAkB,CAAC,OAAsB,SAAwB;AAC/D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,cACA,kBAAmB,CAAC,OAAgB,SAAyB;AAC3D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,YACF,CAAC,CAAC,EAAE,KAAK,YAAU;AACjB,kBAAI,kBAAkB,iBAAiB;AACrC,sBAAM;AAAA,cACR;AACA,kBAAI,kBAAkB,iBAAiB;AACrC,uBAAO,UAAU,OAAO,SAAS,WAAW,KAAK,OAAO,IAAI;AAAA,cAC9D;AACA,qBAAO,UAAU,QAAe,WAAW,GAAG;AAAA,YAChD,CAAC,CAAC,CAAC;AAAA,UACL,SAAS,KAAK;AACZ,0BAAc,eAAe,kBAAkB,SAAS,MAAM,WAAW,KAAK,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAY,WAAW,GAAG;AAAA,UAC5I,UAAE;AACA,gBAAI,cAAc;AAChB,8BAAgB,OAAO,oBAAoB,SAAS,YAAY;AAAA,YAClE;AAAA,UACF;AAMA,gBAAM,eAAe,WAAW,CAAC,QAAQ,8BAA8B,SAAS,MAAM,WAAW,KAAM,YAAoB,KAAK;AAChI,cAAI,CAAC,cAAc;AACjB,qBAAS,WAAkB;AAAA,UAC7B;AACA,iBAAO;AAAA,QACT,EAAE;AACF,eAAO,OAAO,OAAO,SAA6B;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AACP,mBAAO,QAAQ,KAAU,YAAY;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAA8E;AAAA,MACjG;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,UAAU,SAAS;AAAA,MACpC;AAAA,IACF,CAAC;AAAA,EACH;AACA,EAAAA,kBAAiB,YAAY,MAAMA;AACnC,SAAOA;AACT,GAAG;AAaI,SAAS,aAA0C,QAAsC;AAC9F,MAAI,OAAO,QAAQ,OAAO,KAAK,mBAAmB;AAChD,UAAM,OAAO;AAAA,EACf;AACA,MAAI,OAAO,OAAO;AAChB,UAAM,OAAO;AAAA,EACf;AACA,SAAO,OAAO;AAChB;AAEA,SAAS,WAAW,OAAuC;AACzD,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,MAAM,SAAS;AAC9E;;;ACjbA,IAAM,mBAAkC,uBAAO,IAAI,4BAA4B;AAExE,IAAM,oBAET;AAAA,EACF,CAAC,gBAAgB,GAAG;AACtB;AAwLO,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,gBAAa;AAHH,SAAAA;AAAA,GAAA;AAgIZ,SAAS,QAAQ,OAAe,WAA2B;AACzD,SAAO,GAAG,KAAK,IAAI,SAAS;AAC9B;AAMO,SAAS,iBAAiB;AAAA,EAC/B;AACF,IAA4B,CAAC,GAAG;AAtVhC;AAuVE,QAAM,OAAM,0CAAU,eAAV,mBAAuB;AACnC,SAAO,SAASC,aAAmK,SAA0I;AAC3T,UAAM;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,IAChB,IAAI;AACJ,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,6CAA6C;AAAA,IACrI;AACA,QAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,UAAI,QAAQ,iBAAiB,QAAW;AACtC,gBAAQ,MAAM,0GAA0G;AAAA,MAC1H;AAAA,IACF;AACA,UAAM,YAAY,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,qBAA4B,CAAC,IAAI,QAAQ,aAAa,CAAC;AACnI,UAAM,eAAe,OAAO,KAAK,QAAQ;AACzC,UAAM,UAAyC;AAAA,MAC7C,yBAAyB,CAAC;AAAA,MAC1B,yBAAyB,CAAC;AAAA,MAC1B,gBAAgB,CAAC;AAAA,MACjB,eAAe,CAAC;AAAA,IAClB;AACA,UAAM,iBAAuD;AAAA,MAC3D,QAAQ,qBAAuDC,UAA6B;AAC1F,cAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,YAAI,CAAC,MAAM;AACT,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8DAA8D;AAAA,QACvJ;AACA,YAAI,QAAQ,QAAQ,yBAAyB;AAC3C,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAoF,IAAI;AAAA,QACjL;AACA,gBAAQ,wBAAwB,IAAI,IAAIA;AACxC,eAAO;AAAA,MACT;AAAA,MACA,WAAW,SAASA,UAAS;AAC3B,gBAAQ,cAAc,KAAK;AAAA,UACzB;AAAA,UACA,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,aAAaC,OAAM,eAAe;AAChC,gBAAQ,eAAeA,KAAI,IAAI;AAC/B,eAAO;AAAA,MACT;AAAA,MACA,kBAAkBA,OAAMD,UAAS;AAC/B,gBAAQ,wBAAwBC,KAAI,IAAID;AACxC,eAAO;AAAA,MACT;AAAA,IACF;AACA,iBAAa,QAAQ,iBAAe;AAClC,YAAM,oBAAoB,SAAS,WAAW;AAC9C,YAAM,iBAAiC;AAAA,QACrC;AAAA,QACA,MAAM,QAAQ,MAAM,WAAW;AAAA,QAC/B,gBAAgB,OAAO,QAAQ,aAAa;AAAA,MAC9C;AACA,UAAI,mCAA0C,iBAAiB,GAAG;AAChE,yCAAiC,gBAAgB,mBAAmB,gBAAgB,GAAG;AAAA,MACzF,OAAO;AACL,sCAAqC,gBAAgB,mBAA0B,cAAc;AAAA,MAC/F;AAAA,IACF,CAAC;AACD,aAAS,eAAe;AACtB,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,OAAO,QAAQ,kBAAkB,UAAU;AAC7C,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,wKAAwK;AAAA,QACjQ;AAAA,MACF;AACA,YAAM,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,GAAG,qBAAqB,MAAS,IAAI,OAAO,QAAQ,kBAAkB,aAAa,8BAA8B,QAAQ,aAAa,IAAI,CAAC,QAAQ,aAAa;AAC7M,YAAM,oBAAoB,kCACrB,gBACA,QAAQ;AAEb,aAAO,cAAc,QAAQ,cAAc,aAAW;AACpD,iBAAS,OAAO,mBAAmB;AACjC,kBAAQ,QAAQ,KAAK,kBAAkB,GAAG,CAAqB;AAAA,QACjE;AACA,iBAAS,MAAM,QAAQ,eAAe;AACpC,kBAAQ,WAAW,GAAG,SAAS,GAAG,OAAO;AAAA,QAC3C;AACA,iBAAS,KAAK,gBAAgB;AAC5B,kBAAQ,WAAW,EAAE,SAAS,EAAE,OAAO;AAAA,QACzC;AACA,YAAI,oBAAoB;AACtB,kBAAQ,eAAe,kBAAkB;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH;AACA,UAAM,aAAa,CAAC,UAAiB;AACrC,UAAM,wBAAwB,oBAAI,IAAsG;AACxI,UAAM,qBAAqB,oBAAI,QAA0C;AACzE,QAAI;AACJ,aAAS,QAAQ,OAA0B,QAAuB;AAChE,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,OAAO,MAAM;AAAA,IAC/B;AACA,aAAS,kBAAkB;AACzB,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,gBAAgB;AAAA,IAClC;AACA,aAAS,kBAAmEE,cAAiC,WAAW,OAA4I;AAClQ,eAAS,YAAY,OAA6C;AAChE,YAAI,aAAa,MAAMA,YAAW;AAClC,YAAI,OAAO,eAAe,aAAa;AACrC,cAAI,UAAU;AACZ,yBAAa,oBAAoB,oBAAoB,aAAa,eAAe;AAAA,UACnF,WAAW,QAAQ,IAAI,aAAa,cAAc;AAChD,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,gEAAgE;AAAA,UACzJ;AAAA,QACF;AACA,eAAO;AAAA,MACT;AACA,eAAS,aAAa,cAAyC,YAAY;AACzE,cAAM,gBAAgB,oBAAoB,uBAAuB,UAAU,MAAM,oBAAI,QAAQ,CAAC;AAC9F,eAAO,oBAAoB,eAAe,aAAa,MAAM;AA1crE,cAAAC;AA2cU,gBAAM,MAA0C,CAAC;AACjD,qBAAW,CAACF,OAAM,QAAQ,KAAK,OAAO,SAAQE,MAAA,QAAQ,cAAR,OAAAA,MAAqB,CAAC,CAAC,GAAG;AACtE,gBAAIF,KAAI,IAAI,aAAa,UAAU,aAAa,MAAM,oBAAoB,oBAAoB,aAAa,eAAe,GAAG,QAAQ;AAAA,UACvI;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO;AAAA,QACL,aAAAC;AAAA,QACA;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,WAAW;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,QAAkE;AAAA,MACtE;AAAA,MACA;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ;AAAA,MACtB;AAAA,OACG,kBAAkB,WAAW,IANsC;AAAA,MAOtE,WAAW,YAAYC,MAGnB,CAAC,GAAG;AAHe,iBAAAA,KACrB;AAAA,uBAAa;AAAA,QAnerB,IAke6B,IAElB,mBAFkB,IAElB;AAAA,UADH;AAAA;AAGA,cAAM,iBAAiB,4BAAW;AAClC,mBAAW,OAAO;AAAA,UAChB,aAAa;AAAA,UACb;AAAA,QACF,GAAG,MAAM;AACT,eAAO,kCACF,QACA,kBAAkB,gBAAgB,IAAI;AAAA,MAE7C;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AACA,SAAS,aAAyD,UAAa,aAAwC,iBAA8B,UAAoB;AACvK,WAAS,QAAQ,cAAwB,MAAa;AACpD,QAAI,aAAa,YAAY,SAAS;AACtC,QAAI,OAAO,eAAe,aAAa;AACrC,UAAI,UAAU;AACZ,qBAAa,gBAAgB;AAAA,MAC/B,WAAW,QAAQ,IAAI,aAAa,cAAc;AAChD,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,gEAAgE;AAAA,MACzJ;AAAA,IACF;AACA,WAAO,SAAS,YAAY,GAAG,IAAI;AAAA,EACrC;AACA,UAAQ,YAAY;AACpB,SAAO;AACT;AAUO,IAAM,cAA6B,iCAAiB;AAkE3D,SAAS,uBAAsD;AAC7D,WAAS,WAAW,gBAAoD,QAAgG;AACtK,WAAO;AAAA,MACL,wBAAwB;AAAA,MACxB;AAAA,OACG;AAAA,EAEP;AACA,aAAW,YAAY,MAAM;AAC7B,SAAO;AAAA,IACL,QAAQ,aAAsC;AAC5C,aAAO,OAAO,OAAO;AAAA;AAAA;AAAA,QAGnB,CAAC,YAAY,IAAI,KAAK,MAAsC;AAC1D,iBAAO,YAAY,GAAG,IAAI;AAAA,QAC5B;AAAA,MACF,EAAE,YAAY,IAAI,GAAG;AAAA,QACnB,wBAAwB;AAAA,MAC1B,CAAU;AAAA,IACZ;AAAA,IACA,gBAAgB,SAAS,SAAS;AAChC,aAAO;AAAA,QACL,wBAAwB;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AACA,SAAS,8BAAqC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,GAAmB,yBAGuD,SAA+C;AACvH,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa,yBAAyB;AACxC,QAAI,kBAAkB,CAAC,mCAAmC,uBAAuB,GAAG;AAClF,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,2GAA2G;AAAA,IACpM;AACA,kBAAc,wBAAwB;AACtC,sBAAkB,wBAAwB;AAAA,EAC5C,OAAO;AACL,kBAAc;AAAA,EAChB;AACA,UAAQ,QAAQ,MAAM,WAAW,EAAE,kBAAkB,aAAa,WAAW,EAAE,aAAa,aAAa,kBAAkB,aAAa,MAAM,eAAe,IAAI,aAAa,IAAI,CAAC;AACrL;AACA,SAAS,mCAA0C,mBAAqG;AACtJ,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,mCAA0C,mBAA2F;AAC5I,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,iCAAwC;AAAA,EAC/C;AAAA,EACA;AACF,GAAmB,mBAA2E,SAA+C,KAA2C;AACtL,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,wLAA6L;AAAA,EACtR;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,IAAI,MAAM,gBAAgB,OAAc;AACtD,UAAQ,aAAa,aAAa,KAAK;AACvC,MAAI,WAAW;AACb,YAAQ,QAAQ,MAAM,WAAW,SAAS;AAAA,EAC5C;AACA,MAAI,SAAS;AACX,YAAQ,QAAQ,MAAM,SAAS,OAAO;AAAA,EACxC;AACA,MAAI,UAAU;AACZ,YAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,EAC1C;AACA,MAAI,SAAS;AACX,YAAQ,WAAW,MAAM,SAAS,OAAO;AAAA,EAC3C;AACA,UAAQ,kBAAkB,aAAa;AAAA,IACrC,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,IACpB,UAAU,YAAY;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB,CAAC;AACH;AACA,SAAS,OAAO;AAAC;;;AC3qBV,SAAS,wBAAoE;AAClF,SAAO;AAAA,IACL,KAAK,CAAC;AAAA,IACN,UAAU,CAAC;AAAA,EACb;AACF;AACO,SAAS,0BAAkD,cAAoE;AAGpI,WAAS,gBAAgB,kBAAuB,CAAC,GAAG,UAA8C;AAChG,UAAM,QAAQ,OAAO,OAAO,sBAAsB,GAAG,eAAe;AACpE,WAAO,WAAW,aAAa,OAAO,OAAO,QAAQ,IAAI;AAAA,EAC3D;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACVO,SAAS,yBAAiD;AAG/D,WAAS,aAAgB,aAAgD,UAA+B,CAAC,GAAgC;AACvI,UAAM;AAAA,MACJ,gBAAAC,kBAAiB;AAAA,IACnB,IAAI;AACJ,UAAM,YAAY,CAAC,UAA8B,MAAM;AACvD,UAAM,iBAAiB,CAAC,UAA8B,MAAM;AAC5D,UAAM,YAAYA,gBAAe,WAAW,gBAAgB,CAAC,KAAK,aAAkB,IAAI,IAAI,QAAM,SAAS,EAAE,CAAE,CAAC;AAChH,UAAM,WAAW,CAAC,GAAY,OAAW;AACzC,UAAM,aAAa,CAAC,UAAyB,OAAW,SAAS,EAAE;AACnE,UAAM,cAAcA,gBAAe,WAAW,SAAO,IAAI,MAAM;AAC/D,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAYA,gBAAe,gBAAgB,UAAU,UAAU;AAAA,MACjE;AAAA,IACF;AACA,UAAM,2BAA2BA,gBAAe,aAAgD,cAAc;AAC9G,WAAO;AAAA,MACL,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,gBAAgB;AAAA,MAChB,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,aAAaA,gBAAe,aAAa,WAAW;AAAA,MACpD,YAAYA,gBAAe,0BAA0B,UAAU,UAAU;AAAA,IAC3E;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACpCO,IAAM,eAAe;AACrB,SAAS,kCAA0D,SAAuD;AAC/H,QAAM,WAAW,oBAAoB,CAAC,GAAc,UAAuC,QAAQ,KAAK,CAAC;AACzG,SAAO,SAAS,UAAiD,OAAgC;AAC/F,WAAO,SAAS,OAAY,MAAS;AAAA,EACvC;AACF;AACO,SAAS,oBAA+C,SAA+D;AAC5H,SAAO,SAAS,UAAiD,OAAU,KAA8B;AACvG,aAAS,wBAAwBC,MAAoD;AACnF,aAAO,MAAMA,IAAG;AAAA,IAClB;AACA,UAAM,aAAa,CAAC,UAAuC;AACzD,UAAI,wBAAwB,GAAG,GAAG;AAChC,gBAAQ,IAAI,SAAS,KAAK;AAAA,MAC5B,OAAO;AACL,gBAAQ,KAAK,KAAK;AAAA,MACpB;AAAA,IACF;AACA,QAAI,aAA0C,KAAK,GAAG;AAIpD,iBAAW,KAAK;AAGhB,aAAO;AAAA,IACT;AACA,WAAO,QAAgB,OAAO,UAAU;AAAA,EAC1C;AACF;;;AChCO,SAAS,cAAsC,QAAW,UAA6B;AAC5F,QAAM,MAAM,SAAS,MAAM;AAC3B,MAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,QAAW;AAC9D,YAAQ,KAAK,0EAA0E,mEAAmE,+BAA+B,QAAQ,kCAAkC,SAAS,SAAS,CAAC;AAAA,EACxP;AACA,SAAO;AACT;AACO,SAAS,oBAA4C,UAAsD;AAChH,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,eAAW,OAAO,OAAO,QAAQ;AAAA,EACnC;AACA,SAAO;AACT;AACO,SAAS,WAAc,OAAwB;AACpD,SAAQ,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI;AAC5C;AACO,SAAS,0BAAkD,aAA2C,UAA6B,OAAkE;AAC1M,gBAAc,oBAAoB,WAAW;AAC7C,QAAM,mBAAmB,WAAW,MAAM,GAAG;AAC7C,QAAM,cAAc,IAAI,IAAQ,gBAAgB;AAChD,QAAM,QAAa,CAAC;AACpB,QAAM,WAAW,oBAAI,IAAQ,CAAC,CAAC;AAC/B,QAAM,UAA2B,CAAC;AAClC,aAAW,UAAU,aAAa;AAChC,UAAM,KAAK,cAAc,QAAQ,QAAQ;AACzC,QAAI,YAAY,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,GAAG;AAC3C,cAAQ,KAAK;AAAA,QACX;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAAA,IACH,OAAO;AACL,eAAS,IAAI,EAAE;AACf,YAAM,KAAK,MAAM;AAAA,IACnB;AAAA,EACF;AACA,SAAO,CAAC,OAAO,SAAS,gBAAgB;AAC1C;;;ACnCO,SAAS,2BAAmD,UAAwD;AAEzH,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,OAAO,MAAM,UAAU;AACzB;AAAA,IACF;AACA,UAAM,IAAI,KAAK,GAAqB;AACpC,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,EAAE,OAAO,MAAM,WAAW;AAC5B,YAAM,IAAI,KAAK,GAAqB;AAAA,IACtC;AACA;AACA,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,MAAM,CAAC;AACb,UAAM,WAAW,CAAC;AAClB,mBAAe,aAAa,KAAK;AAAA,EACnC;AACA,WAAS,iBAAiB,KAAS,OAAgB;AACjD,WAAO,kBAAkB,CAAC,GAAG,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,kBAAkB,MAAqB,OAAgB;AAC9D,QAAI,YAAY;AAChB,SAAK,QAAQ,SAAO;AAClB,UAAI,OAAO,MAAM,UAAU;AACzB,eAAQ,MAAM,SAA2B,GAAG;AAC5C,oBAAY;AAAA,MACd;AAAA,IACF,CAAC;AACD,QAAI,WAAW;AACb,YAAM,MAAO,MAAM,IAAa,OAAO,QAAM,MAAM,MAAM,QAAQ;AAAA,IACnE;AAAA,EACF;AACA,WAAS,iBAAiB,OAAgB;AACxC,WAAO,OAAO,OAAO;AAAA,MACnB,KAAK,CAAC;AAAA,MACN,UAAU,CAAC;AAAA,IACb,CAAC;AAAA,EACH;AACA,WAAS,WAAW,MAEjB,QAAuB,OAAmB;AAC3C,UAAMC,YAA2B,MAAM,SAA2B,OAAO,EAAE;AAC3E,QAAIA,cAAa,QAAW;AAC1B,aAAO;AAAA,IACT;AACA,UAAM,UAAa,OAAO,OAAO,CAAC,GAAGA,WAAU,OAAO,OAAO;AAC7D,UAAM,SAAS,cAAc,SAAS,QAAQ;AAC9C,UAAM,YAAY,WAAW,OAAO;AACpC,QAAI,WAAW;AACb,WAAK,OAAO,EAAE,IAAI;AAClB,aAAQ,MAAM,SAA2B,OAAO,EAAE;AAAA,IACpD;AACA;AACA,IAAC,MAAM,SAA2B,MAAM,IAAI;AAC5C,WAAO;AAAA,EACT;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,UAAM,UAEF,CAAC;AACL,UAAM,mBAEF,CAAC;AACL,YAAQ,QAAQ,YAAU;AAzF9B;AA2FM,UAAI,OAAO,MAAM,MAAM,UAAU;AAE/B,yBAAiB,OAAO,EAAE,IAAI;AAAA,UAC5B,IAAI,OAAO;AAAA;AAAA;AAAA,UAGX,SAAS,mCACJ,sBAAiB,OAAO,EAAE,MAA1B,mBAA6B,UAC7B,OAAO;AAAA,QAEd;AAAA,MACF;AAAA,IACF,CAAC;AACD,cAAU,OAAO,OAAO,gBAAgB;AACxC,UAAM,oBAAoB,QAAQ,SAAS;AAC3C,QAAI,mBAAmB;AACrB,YAAM,eAAe,QAAQ,OAAO,YAAU,WAAW,SAAS,QAAQ,KAAK,CAAC,EAAE,SAAS;AAC3F,UAAI,cAAc;AAChB,cAAM,MAAM,OAAO,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAK,cAAc,GAAQ,QAAQ,CAAC;AAAA,MACpF;AAAA,IACF;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,OAAO,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACtF,mBAAe,OAAO,KAAK;AAC3B,sBAAkB,SAAS,KAAK;AAAA,EAClC;AACA,SAAO;AAAA,IACL,WAAW,kCAAkC,gBAAgB;AAAA,IAC7D,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;ACjIO,SAAS,gBAAmB,aAAkB,MAAS,oBAAyC;AACrG,MAAI,WAAW;AACf,MAAI,YAAY,YAAY;AAC5B,SAAO,WAAW,WAAW;AAC3B,QAAI,cAAc,WAAW,cAAc;AAC3C,UAAM,cAAc,YAAY,WAAW;AAC3C,UAAM,MAAM,mBAAmB,MAAM,WAAW;AAChD,QAAI,OAAO,GAAG;AACZ,iBAAW,cAAc;AAAA,IAC3B,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAO;AACT;AACO,SAAS,OAAU,aAAkB,MAAS,oBAAsC;AACzF,QAAM,gBAAgB,gBAAgB,aAAa,MAAM,kBAAkB;AAC3E,cAAY,OAAO,eAAe,GAAG,IAAI;AACzC,SAAO;AACT;AACO,SAAS,yBAAiD,UAA6B,UAAkD;AAE9I,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,2BAA2B,QAAQ;AACvC,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAU,aAA0B;AACrG,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,eAAe,IAAI,IAAQ,oCAAe,WAAW,MAAM,GAAG,CAAC;AACrE,UAAM,YAAY,oBAAI,IAAQ;AAC9B,UAAM,SAAS,YAAY,OAAO,WAAS;AACzC,YAAM,UAAU,cAAc,OAAO,QAAQ;AAC7C,YAAM,WAAW,CAAC,UAAU,IAAI,OAAO;AACvC,UAAI,SAAU,WAAU,IAAI,OAAO;AACnC,aAAO,CAAC,aAAa,IAAI,OAAO,KAAK;AAAA,IACvC,CAAC;AACD,QAAI,OAAO,WAAW,GAAG;AACvB,oBAAc,OAAO,MAAM;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,QAAI,uBAAuB,CAAC;AAC5B,kBAAc,oBAAoB,WAAW;AAC7C,QAAI,YAAY,WAAW,GAAG;AAC5B,iBAAW,QAAQ,aAAa;AAC9B,cAAM,WAAW,SAAS,IAAI;AAE9B,6BAAqB,QAAQ,IAAI;AACjC,eAAQ,MAAM,SAA2B,QAAQ;AAAA,MACnD;AACA,oBAAc,oBAAoB,oBAAoB;AACtD,oBAAc,OAAO,WAAW;AAAA,IAClC;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,WAAW,CAAC;AAClB,UAAM,MAAM,CAAC;AACb,mBAAe,aAAa,OAAO,CAAC,CAAC;AAAA,EACvC;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,QAAI,iBAAiB;AACrB,QAAI,cAAc;AAClB,aAAS,UAAU,SAAS;AAC1B,YAAM,SAAyB,MAAM,SAA2B,OAAO,EAAE;AACzE,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,uBAAiB;AACjB,aAAO,OAAO,QAAQ,OAAO,OAAO;AACpC,YAAM,QAAQ,SAAS,MAAM;AAC7B,UAAI,OAAO,OAAO,OAAO;AAGvB,sBAAc;AACd,eAAQ,MAAM,SAA2B,OAAO,EAAE;AAClD,cAAM,WAAY,MAAM,IAAa,QAAQ,OAAO,EAAE;AACtD,cAAM,IAAI,QAAQ,IAAI;AACtB,QAAC,MAAM,SAA2B,KAAK,IAAI;AAAA,MAC7C;AAAA,IACF;AACA,QAAI,gBAAgB;AAClB,oBAAc,OAAO,CAAC,GAAG,gBAAgB,WAAW;AAAA,IACtD;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,SAAS,gBAAgB,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACxG,QAAI,MAAM,QAAQ;AAChB,qBAAe,OAAO,OAAO,gBAAgB;AAAA,IAC/C;AACA,QAAI,QAAQ,QAAQ;AAClB,wBAAkB,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AACA,WAAS,eAAe,GAAuB,GAAuB;AACpE,QAAI,EAAE,WAAW,EAAE,QAAQ;AACzB,aAAO;AAAA,IACT;AACA,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAI,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG;AACjB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,gBAA+B,CAAC,OAAO,YAAY,gBAAgB,gBAAgB;AACvF,UAAM,kBAAkB,WAAW,MAAM,QAAQ;AACjD,UAAM,aAAa,WAAW,MAAM,GAAG;AACvC,UAAM,gBAAgB,MAAM;AAC5B,QAAI,MAAoB;AACxB,QAAI,aAAa;AACf,YAAM,IAAI,IAAI,UAAU;AAAA,IAC1B;AACA,QAAI,iBAAsB,CAAC;AAC3B,eAAW,MAAM,KAAK;AACpB,YAAM,SAAS,gBAAgB,EAAE;AACjC,UAAI,QAAQ;AACV,uBAAe,KAAK,MAAM;AAAA,MAC5B;AAAA,IACF;AACA,UAAM,qBAAqB,eAAe,WAAW;AAGrD,eAAW,QAAQ,YAAY;AAC7B,oBAAc,SAAS,IAAI,CAAC,IAAI;AAChC,UAAI,CAAC,oBAAoB;AAEvB,eAAO,gBAAgB,MAAM,QAAQ;AAAA,MACvC;AAAA,IACF;AACA,QAAI,oBAAoB;AAEtB,uBAAiB,WAAW,MAAM,EAAE,KAAK,QAAQ;AAAA,IACnD,WAAW,gBAAgB;AAEzB,qBAAe,KAAK,QAAQ;AAAA,IAC9B;AACA,UAAM,eAAe,eAAe,IAAI,QAAQ;AAChD,QAAI,CAAC,eAAe,YAAY,YAAY,GAAG;AAC7C,YAAM,MAAM;AAAA,IACd;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;AChKO,SAAS,oBAAuB,UAA6C,CAAC,GAA+B;AAClH,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAiD;AAAA,IAC/C,cAAc;AAAA,IACd,UAAU,CAAC,aAAkB,SAAS;AAAA,KACnC;AAEL,QAAM,eAAe,eAAe,yBAAyB,UAAU,YAAY,IAAI,2BAA2B,QAAQ;AAC1H,QAAM,eAAe,0BAA0B,YAAY;AAC3D,QAAM,mBAAmB,uBAAoC;AAC7D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,KACG,eACA,mBACA;AAEP;;;ACnCA,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,YAAY;AAClB,IAAM,YAAY;AAGX,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,iBAAN,MAAgD;AAAA,EAGrD,YAAmB,MAA0B;AAA1B;AAFnB,gCAAO;AACP;AAEE,SAAK,UAAU,GAAG,IAAI,IAAI,SAAS,aAAa,IAAI;AAAA,EACtD;AACF;;;AChBO,IAAM,iBAAuG,CAAC,MAAe,aAAqB;AACvJ,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,GAAG,QAAQ,oBAAoB;AAAA,EAC3H;AACF;AACO,IAAMC,QAAO,MAAM;AAAC;AACpB,IAAM,iBAAiB,CAAK,SAAqB,UAAUA,UAAqB;AACrF,UAAQ,MAAM,OAAO;AACrB,SAAO;AACT;AACO,IAAM,yBAAyB,CAAC,aAA0B,aAAmC;AAClG,cAAY,iBAAiB,SAAS,UAAU;AAAA,IAC9C,MAAM;AAAA,EACR,CAAC;AACD,SAAO,MAAM,YAAY,oBAAoB,SAAS,QAAQ;AAChE;;;ACNO,IAAM,iBAAiB,CAAC,WAA8B;AAC3D,MAAI,OAAO,SAAS;AAClB,UAAM,IAAI,eAAe,OAAO,MAAM;AAAA,EACxC;AACF;AAOO,SAAS,eAAkB,QAAqB,SAAiC;AACtF,MAAI,UAAUC;AACd,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,UAAM,kBAAkB,MAAM,OAAO,IAAI,eAAe,OAAO,MAAM,CAAC;AACtE,QAAI,OAAO,SAAS;AAClB,sBAAgB;AAChB;AAAA,IACF;AACA,cAAU,uBAAuB,QAAQ,eAAe;AACxD,YAAQ,QAAQ,MAAM,QAAQ,CAAC,EAAE,KAAK,SAAS,MAAM;AAAA,EACvD,CAAC,EAAE,QAAQ,MAAM;AAEf,cAAUA;AAAA,EACZ,CAAC;AACH;AASO,IAAM,UAAU,OAAWC,OAAwB,YAAiD;AACzG,MAAI;AACF,UAAM,QAAQ,QAAQ;AACtB,UAAM,QAAQ,MAAMA,MAAK;AACzB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,EACF,SAAS,OAAY;AACnB,WAAO;AAAA,MACL,QAAQ,iBAAiB,iBAAiB,cAAc;AAAA,MACxD;AAAA,IACF;AAAA,EACF,UAAE;AACA;AAAA,EACF;AACF;AASO,IAAM,cAAc,CAAK,WAAwB;AACtD,SAAO,CAAC,YAAoC;AAC1C,WAAO,eAAe,eAAe,QAAQ,OAAO,EAAE,KAAK,YAAU;AACnE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,CAAC,CAAC;AAAA,EACJ;AACF;AAQO,IAAM,cAAc,CAAC,WAAwB;AAClD,QAAM,QAAQ,YAAkB,MAAM;AACtC,SAAO,CAAC,cAAqC;AAC3C,WAAO,MAAM,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,CAAC,CAAC;AAAA,EAC3E;AACF;;;AC3EA,IAAM;AAAA,EACJ;AACF,IAAI;AAIJ,IAAM,qBAAqB,CAAC;AAC5B,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,mBAAgC,2BAA2C;AAC7F,QAAM,kBAAkB,CAAC,eAAgC,uBAAuB,mBAAmB,MAAM,WAAW,MAAM,kBAAkB,MAAM,CAAC;AACnJ,SAAO,CAAK,cAAqC,SAAsC;AACrF,mBAAe,cAAc,cAAc;AAC3C,UAAM,uBAAuB,IAAI,gBAAgB;AACjD,oBAAgB,oBAAoB;AACpC,UAAM,SAAS,QAAW,YAAwB;AAChD,qBAAe,iBAAiB;AAChC,qBAAe,qBAAqB,MAAM;AAC1C,YAAMC,UAAU,MAAM,aAAa;AAAA,QACjC,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,QAAQ,qBAAqB;AAAA,MAC/B,CAAC;AACD,qBAAe,qBAAqB,MAAM;AAC1C,aAAOA;AAAA,IACT,GAAG,MAAM,qBAAqB,MAAM,aAAa,CAAC;AAClD,QAAI,6BAAM,UAAU;AAClB,6BAAuB,KAAK,OAAO,MAAMC,KAAI,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,MACL,QAAQ,YAA2B,iBAAiB,EAAE,MAAM;AAAA,MAC5D,SAAS;AACP,6BAAqB,MAAM,aAAa;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;AACA,IAAM,oBAAoB,CAAK,gBAAwE,WAAwC;AAQ7I,QAAM,OAAO,OAA2C,WAAc,YAAgC;AACpG,mBAAe,MAAM;AAGrB,QAAI,cAAmC,MAAM;AAAA,IAAC;AAC9C,UAAM,eAAe,IAAI,QAAwB,CAAC,SAAS,WAAW;AAEpE,UAAI,gBAAgB,eAAe;AAAA,QACjC;AAAA,QACA,QAAQ,CAAC,QAAQ,gBAAsB;AAErC,sBAAY,YAAY;AAExB,kBAAQ,CAAC,QAAQ,YAAY,SAAS,GAAG,YAAY,iBAAiB,CAAC,CAAC;AAAA,QAC1E;AAAA,MACF,CAAC;AACD,oBAAc,MAAM;AAClB,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,WAAwD,CAAC,YAAY;AAC3E,QAAI,WAAW,MAAM;AACnB,eAAS,KAAK,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,IAAI,CAAC,CAAC;AAAA,IAChF;AACA,QAAI;AACF,YAAM,SAAS,MAAM,eAAe,QAAQ,QAAQ,KAAK,QAAQ,CAAC;AAClE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,UAAE;AAEA,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAQ,CAAC,WAAoC,YAAgC,eAAe,KAAK,WAAW,OAAO,CAAC;AACtH;AACA,IAAM,4BAA4B,CAAC,YAAwC;AACzE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI,MAAM;AACR,gBAAY,aAAa,IAAI,EAAE;AAAA,EACjC,WAAW,eAAe;AACxB,WAAO,cAAe;AACtB,gBAAY,cAAc;AAAA,EAC5B,WAAW,SAAS;AAClB,gBAAY;AAAA,EACd,WAAW,WAAW;AAAA,EAEtB,OAAO;AACL,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,yFAAyF;AAAA,EACjL;AACA,iBAAe,QAAQ,kBAAkB;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGO,IAAM,sBAAwE,uBAAO,CAAC,YAAwC;AACnI,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,QAAM,QAAgC;AAAA,IACpC,IAAI,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,oBAAI,IAAqB;AAAA,IAClC,aAAa,MAAM;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,6BAA6B;AAAA,IACtH;AAAA,EACF;AACA,SAAO;AACT,GAAG;AAAA,EACD,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,oBAAoB,CAAC,aAAyC,YAAwC;AAC1G,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,SAAO,MAAM,KAAK,YAAY,OAAO,CAAC,EAAE,KAAK,WAAS;AACpD,UAAM,uBAAuB,OAAO,SAAS,WAAW,MAAM,SAAS,OAAO,MAAM,cAAc;AAClG,WAAO,wBAAwB,MAAM,WAAW;AAAA,EAClD,CAAC;AACH;AACA,IAAM,wBAAwB,CAAC,UAA2D;AACxF,QAAM,QAAQ,QAAQ,gBAAc;AAClC,eAAW,MAAM,iBAAiB;AAAA,EACpC,CAAC;AACH;AACA,IAAM,gCAAgC,CAAC,aAAyC,uBAAmD;AACjI,SAAO,MAAM;AACX,eAAWC,aAAY,mBAAmB,KAAK,GAAG;AAChD,4BAAsBA,SAAQ;AAAA,IAChC;AACA,gBAAY,MAAM;AAAA,EACpB;AACF;AASA,IAAM,oBAAoB,CAAC,cAAoC,eAAwB,cAAuC;AAC5H,MAAI;AACF,iBAAa,eAAe,SAAS;AAAA,EACvC,SAAS,mBAAmB;AAG1B,eAAW,MAAM;AACf,YAAM;AAAA,IACR,GAAG,CAAC;AAAA,EACN;AACF;AAKO,IAAM,cAA6B,uBAAsB,6BAAa,GAAG,GAAG,MAAM,GAAG;AAAA,EAC1F,WAAW,MAAM;AACnB,CAAC;AAKM,IAAM,oBAAmC,6BAAa,GAAG,GAAG,YAAY;AAKxE,IAAM,iBAAgC,uBAAsB,6BAAa,GAAG,GAAG,SAAS,GAAG;AAAA,EAChG,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,sBAA4C,IAAI,SAAoB;AACxE,UAAQ,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI;AACvC;AAKO,IAAM,2BAA2B,CAAyI,oBAAoE,CAAC,MAAM;AAC1P,QAAM,cAAc,oBAAI,IAA2B;AAInD,QAAM,qBAAqB,oBAAI,IAA2B;AAC1D,QAAM,yBAAyB,CAAC,UAAyB;AA1N3D;AA2NI,UAAM,SAAQ,wBAAmB,IAAI,KAAK,MAA5B,YAAiC;AAC/C,uBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,EACzC;AACA,QAAM,2BAA2B,CAAC,UAAyB;AA9N7D;AA+NI,UAAM,SAAQ,wBAAmB,IAAI,KAAK,MAA5B,YAAiC;AAC/C,QAAI,UAAU,GAAG;AACf,yBAAmB,OAAO,KAAK;AAAA,IACjC,OAAO;AACL,yBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,IACzC;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,EACZ,IAAI;AACJ,iBAAe,SAAS,SAAS;AACjC,QAAM,cAAc,CAAC,UAAyB;AAC5C,UAAM,cAAc,MAAM,YAAY,OAAO,MAAM,EAAE;AACrD,gBAAY,IAAI,MAAM,IAAI,KAAK;AAC/B,WAAO,CAAC,kBAA+C;AACrD,YAAM,YAAY;AAClB,UAAI,+CAAe,cAAc;AAC/B,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACA,QAAM,iBAAkB,CAAC,YAAwC;AArPnE;AAsPI,UAAM,SAAQ,uBAAkB,aAAa,OAAO,MAAtC,YAA2C,oBAAoB,OAAc;AAC3F,WAAO,YAAY,KAAK;AAAA,EAC1B;AACA,SAAO,gBAAgB;AAAA,IACrB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,CAAC,YAA8E;AACnG,UAAM,QAAQ,kBAAkB,aAAa,OAAO;AACpD,QAAI,OAAO;AACT,YAAM,YAAY;AAClB,UAAI,QAAQ,cAAc;AACxB,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,CAAC,CAAC;AAAA,EACX;AACA,SAAO,eAAe;AAAA,IACpB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,iBAAiB,OAAO,OAAwD,QAAiB,KAAoB,qBAAsC;AAC/J,UAAM,yBAAyB,IAAI,gBAAgB;AACnD,UAAM,OAAO,kBAAkB,gBAA6C,uBAAuB,MAAM;AACzG,UAAM,mBAAmC,CAAC;AAC1C,QAAI;AACF,YAAM,QAAQ,IAAI,sBAAsB;AACxC,6BAAuB,KAAK;AAC5B,YAAM,QAAQ,QAAQ,MAAM;AAAA,QAAO;AAAA;AAAA,QAEnC,OAAO,CAAC,GAAG,KAAK;AAAA,UACd;AAAA,UACA,WAAW,CAAC,WAAsC,YAAqB,KAAK,WAAW,OAAO,EAAE,KAAK,OAAO;AAAA,UAC5G;AAAA,UACA,OAAO,YAAY,uBAAuB,MAAM;AAAA,UAChD,OAAO,YAAiB,uBAAuB,MAAM;AAAA,UACrD;AAAA,UACA,QAAQ,uBAAuB;AAAA,UAC/B,MAAM,WAAW,uBAAuB,QAAQ,gBAAgB;AAAA,UAChE,aAAa,MAAM;AAAA,UACnB,WAAW,MAAM;AACf,wBAAY,IAAI,MAAM,IAAI,KAAK;AAAA,UACjC;AAAA,UACA,uBAAuB,MAAM;AAC3B,kBAAM,QAAQ,QAAQ,CAAC,YAAY,GAAG,QAAQ;AAC5C,kBAAI,eAAe,wBAAwB;AACzC,2BAAW,MAAM,iBAAiB;AAClC,oBAAI,OAAO,UAAU;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,QAAQ,MAAM;AACZ,mCAAuB,MAAM,iBAAiB;AAC9C,kBAAM,QAAQ,OAAO,sBAAsB;AAAA,UAC7C;AAAA,UACA,kBAAkB,MAAM;AACtB,2BAAe,uBAAuB,MAAM;AAAA,UAC9C;AAAA,QACF,CAAC;AAAA,MAAC,CAAC;AAAA,IACL,SAAS,eAAe;AACtB,UAAI,EAAE,yBAAyB,iBAAiB;AAC9C,0BAAkB,SAAS,eAAe;AAAA,UACxC,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF,UAAE;AACA,YAAM,QAAQ,IAAI,gBAAgB;AAClC,6BAAuB,MAAM,iBAAiB;AAC9C,+BAAyB,KAAK;AAC9B,YAAM,QAAQ,OAAO,sBAAsB;AAAA,IAC7C;AAAA,EACF;AACA,QAAM,0BAA0B,8BAA8B,aAAa,kBAAkB;AAC7F,QAAM,aAAyE,SAAO,UAAQ,YAAU;AACtG,QAAI,CAAC,SAAS,MAAM,GAAG;AAErB,aAAO,KAAK,MAAM;AAAA,IACpB;AACA,QAAI,YAAY,MAAM,MAAM,GAAG;AAC7B,aAAO,eAAe,OAAO,OAAc;AAAA,IAC7C;AACA,QAAI,kBAAkB,MAAM,MAAM,GAAG;AACnC,8BAAwB;AACxB;AAAA,IACF;AACA,QAAI,eAAe,MAAM,MAAM,GAAG;AAChC,aAAO,cAAc,OAAO,OAAO;AAAA,IACrC;AAGA,QAAI,gBAAuD,IAAI,SAAS;AAIxE,UAAM,mBAAmB,MAAiB;AACxC,UAAI,kBAAkB,oBAAoB;AACxC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,GAAG,GAAG,qDAAqD;AAAA,MACpJ;AACA,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI;AAEF,eAAS,KAAK,MAAM;AACpB,UAAI,YAAY,OAAO,GAAG;AACxB,cAAM,eAAe,IAAI,SAAS;AAElC,cAAM,kBAAkB,MAAM,KAAK,YAAY,OAAO,CAAC;AACvD,mBAAW,SAAS,iBAAiB;AACnC,cAAI,cAAc;AAClB,cAAI;AACF,0BAAc,MAAM,UAAU,QAAQ,cAAc,aAAa;AAAA,UACnE,SAAS,gBAAgB;AACvB,0BAAc;AACd,8BAAkB,SAAS,gBAAgB;AAAA,cACzC,UAAU;AAAA,YACZ,CAAC;AAAA,UACH;AACA,cAAI,CAAC,aAAa;AAChB;AAAA,UACF;AACA,yBAAe,OAAO,QAAQ,KAAK,gBAAgB;AAAA,QACrD;AAAA,MACF;AAAA,IACF,UAAE;AAEA,sBAAgB;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAClB;AACF;;;ACpXA,IAAM,wBAAwB,CAAsF,gBAA4F;AAAA,EAC9M;AAAA,EACA,SAAS,oBAAI,IAAI;AACnB;AACA,IAAM,gBAAgB,CAAC,eAAuB,CAAC,WAI7C;AAhBF;AAgBK,iDAAQ,SAAR,mBAAc,gBAAe;AAAA;AAC3B,IAAM,0BAA0B,MAA2I;AAChL,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,oBAAI,IAAgF;AAC1G,QAAM,iBAAiB,OAAO,OAAO,aAAa,yBAAyB,IAAI,iBAAyD;AAAA,IACtI,SAAS;AAAA,IACT,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,EAAE,GAAG;AAAA,IACH,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,OAAO,OAAO,SAASC,kBAAiB,aAAqD;AACjH,gBAAY,QAAQ,CAAAC,gBAAc;AAChC,0BAAoB,eAAeA,aAAY,qBAAqB;AAAA,IACtE,CAAC;AAAA,EACH,GAAG;AAAA,IACD,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,qBAA0D,SAAO;AACrE,UAAM,oBAAoB,MAAM,KAAK,cAAc,OAAO,CAAC,EAAE,IAAI,WAAS,oBAAoB,MAAM,SAAS,KAAK,MAAM,UAAU,CAAC;AACnI,WAAO,QAAQ,GAAG,iBAAiB;AAAA,EACrC;AACA,QAAM,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,CAAC;AAC1E,QAAM,aAAqD,SAAO,UAAQ,YAAU;AAClF,QAAI,iBAAiB,MAAM,GAAG;AAC5B,oBAAc,GAAG,OAAO,OAAO;AAC/B,aAAO,IAAI;AAAA,IACb;AACA,WAAO,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM;AAAA,EAC7C;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACnDA,SAAS,mBAAAC,wBAAuB;AAwOhC,IAAM,cAAc,CAAC,mBAA8E,iBAAiB,kBAAkB,OAAO,eAAe,gBAAgB;AAC5K,IAAM,cAAc,CAAC,WAA6C,OAAO,QAA2B,gBAAc,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,aAAa,WAAW,OAAO,CAAC,IAAI,OAAO,QAAQ,UAAU,CAAC;AACvN,IAAM,iBAAiB,OAAO,IAAI,0BAA0B;AAC5D,IAAM,eAAe,CAAC,UAAe,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,cAAc;AACtE,IAAM,gBAAgB,oBAAI,QAAwB;AAClD,IAAM,mBAAmB,CAAwB,OAAc,YAAmD,sBAAoD,oBAAoB,eAAe,OAAO,MAAM,IAAI,MAAM,OAAO;AAAA,EACrO,KAAK,CAAC,QAAQ,MAAM,aAAa;AAC/B,QAAI,SAAS,eAAgB,QAAO;AACpC,UAAM,SAAS,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACjD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,SAAS,kBAAkB,IAAI;AACrC,UAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,YAAM,UAAU,WAAW,IAAI;AAC/B,UAAI,SAAS;AAEX,cAAM,gBAAgB,QAAQ,QAAW;AAAA,UACvC,MAAM,OAAO;AAAA,QACf,CAAC;AACD,YAAI,OAAO,kBAAkB,aAAa;AACxC,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,8BAA8B,KAAK,SAAS,CAAC,mRAAuS;AAAA,QAC5a;AACA,0BAAkB,IAAI,IAAI;AAC1B,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF,CAAC,CAAC;AACF,IAAM,WAAW,CAAC,UAAe;AAC/B,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,sCAAsC;AAAA,EAC/H;AACA,SAAO,MAAM,cAAc;AAC7B;AACA,IAAM,cAAc,CAAC;AACrB,IAAM,cAA4C,CAAC,QAAQ,gBAAgB;AACpE,SAAS,iBAAkE,QAAsI;AACtN,QAAM,aAAa,OAAO,YAAY,YAAY,MAAM,CAAC;AACzD,QAAM,aAAa,MAAM,OAAO,KAAK,UAAU,EAAE,SAASC,iBAAgB,UAAU,IAAI;AACxF,MAAI,UAAU,WAAW;AACzB,WAAS,gBAAgB,OAAgC,QAAuB;AAC9E,WAAO,QAAQ,OAAO,MAAM;AAAA,EAC9B;AACA,kBAAgB,uBAAuB,MAAM;AAC7C,QAAM,oBAAkD,CAAC;AACzD,QAAM,SAAS,CAAC,OAAqB,SAAuB,CAAC,MAA8B;AACzF,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI;AACJ,UAAM,iBAAiB,WAAW,WAAW;AAC7C,QAAI,CAAC,OAAO,oBAAoB,kBAAkB,mBAAmB,iBAAiB;AACpF,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,gBAAQ,MAAM,0DAA0D,WAAW,gDAAgD;AAAA,MACrI;AACA,aAAO;AAAA,IACT;AACA,QAAI,OAAO,oBAAoB,mBAAmB,iBAAiB;AACjE,aAAO,kBAAkB,WAAW;AAAA,IACtC;AACA,eAAW,WAAW,IAAI;AAC1B,cAAU,WAAW;AACrB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,OAAO,OAAO,SAAS,aAAkE,YAAkD,aAA8D;AACxN,WAAO,SAASC,UAAS,UAAiB,MAAY;AACpD,aAAO,WAAW,iBAAiB,cAAc,YAAY,OAAc,GAAG,IAAI,IAAI,OAAO,YAAY,iBAAiB,GAAG,GAAG,IAAI;AAAA,IACtI;AAAA,EACF,GAAG;AAAA,IACD;AAAA,EACF,CAAC;AACD,SAAO,OAAO,OAAO,iBAAiB;AAAA,IACpC;AAAA,IACA;AAAA,EACF,CAAC;AACH;;;AC9SO,SAAS,uBAAuB,MAAc;AACnD,SAAO,iCAAiC,IAAI,oDAAoD,IAAI;AACtG;","names":["original","createSelector","createDraftSafeSelector","args","noop","isActionCreator","stringify","getSerialize","listener","middleware","reducer","createAsyncThunk","ReducerType","createSlice","reducer","name","reducerPath","_a","createSelector","arg","original","noop","noop","task","result","noop","listener","addMiddleware","middleware","combineReducers","combineReducers","selector"]}
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2311 +1,0 @@
-// src/index.ts
-export * from "redux";
-import { freeze, original as original2 } from "immer";
-
-// src/immerImports.ts
-import { current, isDraft, produce, isDraftable, setUseStrictIteration } from "immer";
-
-// src/index.ts
-import { createSelector, lruMemoize } from "reselect";
-
-// src/reselectImports.ts
-import { createSelectorCreator, weakMapMemoize } from "reselect";
-
-// src/createDraftSafeSelector.ts
-var createDraftSafeSelectorCreator = (...args) => {
-  const createSelector2 = createSelectorCreator(...args);
-  const createDraftSafeSelector2 = Object.assign((...args2) => {
-    const selector = createSelector2(...args2);
-    const wrappedSelector = (value, ...rest) => selector(isDraft(value) ? current(value) : value, ...rest);
-    Object.assign(wrappedSelector, selector);
-    return wrappedSelector;
-  }, {
-    withTypes: () => createDraftSafeSelector2
-  });
-  return createDraftSafeSelector2;
-};
-var createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(weakMapMemoize);
-
-// src/reduxImports.ts
-import { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from "redux";
-
-// src/devtoolsExtension.ts
-var composeWithDevTools = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {
-  if (arguments.length === 0) return void 0;
-  if (typeof arguments[0] === "object") return compose;
-  return compose.apply(null, arguments);
-};
-var devToolsEnhancer = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {
-  return function(noop3) {
-    return noop3;
-  };
-};
-
-// src/getDefaultMiddleware.ts
-import { thunk as thunkMiddleware, withExtraArgument } from "redux-thunk";
-
-// src/tsHelpers.ts
-var hasMatchFunction = (v) => {
-  return v && typeof v.match === "function";
-};
-
-// src/createAction.ts
-function createAction(type, prepareAction) {
-  function actionCreator(...args) {
-    if (prepareAction) {
-      let prepared = prepareAction(...args);
-      if (!prepared) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(0) : "prepareAction did not return an object");
-      }
-      return {
-        type,
-        payload: prepared.payload,
-        ..."meta" in prepared && {
-          meta: prepared.meta
-        },
-        ..."error" in prepared && {
-          error: prepared.error
-        }
-      };
-    }
-    return {
-      type,
-      payload: args[0]
-    };
-  }
-  actionCreator.toString = () => `${type}`;
-  actionCreator.type = type;
-  actionCreator.match = (action) => isAction(action) && action.type === type;
-  return actionCreator;
-}
-function isActionCreator(action) {
-  return typeof action === "function" && "type" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it
-  hasMatchFunction(action);
-}
-function isFSA(action) {
-  return isAction(action) && Object.keys(action).every(isValidKey);
-}
-function isValidKey(key) {
-  return ["type", "payload", "error", "meta"].indexOf(key) > -1;
-}
-
-// src/actionCreatorInvariantMiddleware.ts
-function getMessage(type) {
-  const splitType = type ? `${type}`.split("/") : [];
-  const actionName = splitType[splitType.length - 1] || "actionCreator";
-  return `Detected an action creator with type "${type || "unknown"}" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${actionName}())\` instead of \`dispatch(${actionName})\`. This is necessary even if the action has no payload.`;
-}
-function createActionCreatorInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  }
-  const {
-    isActionCreator: isActionCreator2 = isActionCreator
-  } = options;
-  return () => (next) => (action) => {
-    if (isActionCreator2(action)) {
-      console.warn(getMessage(action.type));
-    }
-    return next(action);
-  };
-}
-
-// src/utils.ts
-function getTimeMeasureUtils(maxDelay, fnName) {
-  let elapsed = 0;
-  return {
-    measureTime(fn) {
-      const started = Date.now();
-      try {
-        return fn();
-      } finally {
-        const finished = Date.now();
-        elapsed += finished - started;
-      }
-    },
-    warnIfExceeded() {
-      if (elapsed > maxDelay) {
-        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. 
-If your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.
-It is disabled in production builds, so you don't need to worry about that.`);
-      }
-    }
-  };
-}
-var Tuple = class _Tuple extends Array {
-  constructor(...items) {
-    super(...items);
-    Object.setPrototypeOf(this, _Tuple.prototype);
-  }
-  static get [Symbol.species]() {
-    return _Tuple;
-  }
-  concat(...arr) {
-    return super.concat.apply(this, arr);
-  }
-  prepend(...arr) {
-    if (arr.length === 1 && Array.isArray(arr[0])) {
-      return new _Tuple(...arr[0].concat(this));
-    }
-    return new _Tuple(...arr.concat(this));
-  }
-};
-function freezeDraftable(val) {
-  return isDraftable(val) ? produce(val, () => {
-  }) : val;
-}
-function getOrInsertComputed(map, key, compute) {
-  if (map.has(key)) return map.get(key);
-  return map.set(key, compute(key)).get(key);
-}
-
-// src/immutableStateInvariantMiddleware.ts
-function isImmutableDefault(value) {
-  return typeof value !== "object" || value == null || Object.isFrozen(value);
-}
-function trackForMutations(isImmutable, ignoredPaths, obj) {
-  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);
-  return {
-    detectMutations() {
-      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);
-    }
-  };
-}
-function trackProperties(isImmutable, ignoredPaths = [], obj, path = "", checkedObjects = /* @__PURE__ */ new Set()) {
-  const tracked = {
-    value: obj
-  };
-  if (!isImmutable(obj) && !checkedObjects.has(obj)) {
-    checkedObjects.add(obj);
-    tracked.children = {};
-    const hasIgnoredPaths = ignoredPaths.length > 0;
-    for (const key in obj) {
-      const nestedPath = path ? path + "." + key : key;
-      if (hasIgnoredPaths) {
-        const hasMatches = ignoredPaths.some((ignored) => {
-          if (ignored instanceof RegExp) {
-            return ignored.test(nestedPath);
-          }
-          return nestedPath === ignored;
-        });
-        if (hasMatches) {
-          continue;
-        }
-      }
-      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);
-    }
-  }
-  return tracked;
-}
-function detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = "") {
-  const prevObj = trackedProperty ? trackedProperty.value : void 0;
-  const sameRef = prevObj === obj;
-  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {
-    return {
-      wasMutated: true,
-      path
-    };
-  }
-  if (isImmutable(prevObj) || isImmutable(obj)) {
-    return {
-      wasMutated: false
-    };
-  }
-  const keysToDetect = {};
-  for (let key in trackedProperty.children) {
-    keysToDetect[key] = true;
-  }
-  for (let key in obj) {
-    keysToDetect[key] = true;
-  }
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (let key in keysToDetect) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);
-    if (result.wasMutated) {
-      return result;
-    }
-  }
-  return {
-    wasMutated: false
-  };
-}
-function createImmutableStateInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  } else {
-    let stringify2 = function(obj, serializer, indent, decycler) {
-      return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);
-    }, getSerialize2 = function(serializer, decycler) {
-      let stack = [], keys = [];
-      if (!decycler) decycler = function(_, value) {
-        if (stack[0] === value) return "[Circular ~]";
-        return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]";
-      };
-      return function(key, value) {
-        if (stack.length > 0) {
-          var thisPos = stack.indexOf(this);
-          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
-          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
-          if (~stack.indexOf(value)) value = decycler.call(this, key, value);
-        } else stack.push(value);
-        return serializer == null ? value : serializer.call(this, key, value);
-      };
-    };
-    var stringify = stringify2, getSerialize = getSerialize2;
-    let {
-      isImmutable = isImmutableDefault,
-      ignoredPaths,
-      warnAfter = 32
-    } = options;
-    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);
-    return ({
-      getState
-    }) => {
-      let state = getState();
-      let tracker = track(state);
-      let result;
-      return (next) => (action) => {
-        const measureUtils = getTimeMeasureUtils(warnAfter, "ImmutableStateInvariantMiddleware");
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ""}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        const dispatchedAction = next(action);
-        measureUtils.measureTime(() => {
-          state = getState();
-          result = tracker.detectMutations();
-          tracker = track(state);
-          if (result.wasMutated) {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ""}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-        return dispatchedAction;
-      };
-    };
-  }
-}
-
-// src/serializableStateInvariantMiddleware.ts
-function isPlain(val) {
-  const type = typeof val;
-  return val == null || type === "string" || type === "boolean" || type === "number" || Array.isArray(val) || isPlainObject(val);
-}
-function findNonSerializableValue(value, path = "", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {
-  let foundNestedSerializable;
-  if (!isSerializable(value)) {
-    return {
-      keyPath: path || "<root>",
-      value
-    };
-  }
-  if (typeof value !== "object" || value === null) {
-    return false;
-  }
-  if (cache?.has(value)) return false;
-  const entries = getEntries != null ? getEntries(value) : Object.entries(value);
-  const hasIgnoredPaths = ignoredPaths.length > 0;
-  for (const [key, nestedValue] of entries) {
-    const nestedPath = path ? path + "." + key : key;
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath);
-        }
-        return nestedPath === ignored;
-      });
-      if (hasMatches) {
-        continue;
-      }
-    }
-    if (!isSerializable(nestedValue)) {
-      return {
-        keyPath: nestedPath,
-        value: nestedValue
-      };
-    }
-    if (typeof nestedValue === "object") {
-      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);
-      if (foundNestedSerializable) {
-        return foundNestedSerializable;
-      }
-    }
-  }
-  if (cache && isNestedFrozen(value)) cache.add(value);
-  return false;
-}
-function isNestedFrozen(value) {
-  if (!Object.isFrozen(value)) return false;
-  for (const nestedValue of Object.values(value)) {
-    if (typeof nestedValue !== "object" || nestedValue === null) continue;
-    if (!isNestedFrozen(nestedValue)) return false;
-  }
-  return true;
-}
-function createSerializableStateInvariantMiddleware(options = {}) {
-  if (process.env.NODE_ENV === "production") {
-    return () => (next) => (action) => next(action);
-  } else {
-    const {
-      isSerializable = isPlain,
-      getEntries,
-      ignoredActions = [],
-      ignoredActionPaths = ["meta.arg", "meta.baseQueryMeta"],
-      ignoredPaths = [],
-      warnAfter = 32,
-      ignoreState = false,
-      ignoreActions = false,
-      disableCache = false
-    } = options;
-    const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;
-    return (storeAPI) => (next) => (action) => {
-      if (!isAction(action)) {
-        return next(action);
-      }
-      const result = next(action);
-      const measureUtils = getTimeMeasureUtils(warnAfter, "SerializableStateInvariantMiddleware");
-      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {
-        measureUtils.measureTime(() => {
-          const foundActionNonSerializableValue = findNonSerializableValue(action, "", isSerializable, getEntries, ignoredActionPaths, cache);
-          if (foundActionNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundActionNonSerializableValue;
-            console.error(`A non-serializable value was detected in an action, in the path: \`${keyPath}\`. Value:`, value, "\nTake a look at the logic that dispatched this action: ", action, "\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)", "\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)");
-          }
-        });
-      }
-      if (!ignoreState) {
-        measureUtils.measureTime(() => {
-          const state = storeAPI.getState();
-          const foundStateNonSerializableValue = findNonSerializableValue(state, "", isSerializable, getEntries, ignoredPaths, cache);
-          if (foundStateNonSerializableValue) {
-            const {
-              keyPath,
-              value
-            } = foundStateNonSerializableValue;
-            console.error(`A non-serializable value was detected in the state, in the path: \`${keyPath}\`. Value:`, value, `
-Take a look at the reducer(s) handling this action type: ${action.type}.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);
-          }
-        });
-        measureUtils.warnIfExceeded();
-      }
-      return result;
-    };
-  }
-}
-
-// src/getDefaultMiddleware.ts
-function isBoolean(x) {
-  return typeof x === "boolean";
-}
-var buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {
-  const {
-    thunk = true,
-    immutableCheck = true,
-    serializableCheck = true,
-    actionCreatorCheck = true
-  } = options ?? {};
-  let middlewareArray = new Tuple();
-  if (thunk) {
-    if (isBoolean(thunk)) {
-      middlewareArray.push(thunkMiddleware);
-    } else {
-      middlewareArray.push(withExtraArgument(thunk.extraArgument));
-    }
-  }
-  if (process.env.NODE_ENV !== "production") {
-    if (immutableCheck) {
-      let immutableOptions = {};
-      if (!isBoolean(immutableCheck)) {
-        immutableOptions = immutableCheck;
-      }
-      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));
-    }
-    if (serializableCheck) {
-      let serializableOptions = {};
-      if (!isBoolean(serializableCheck)) {
-        serializableOptions = serializableCheck;
-      }
-      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));
-    }
-    if (actionCreatorCheck) {
-      let actionCreatorOptions = {};
-      if (!isBoolean(actionCreatorCheck)) {
-        actionCreatorOptions = actionCreatorCheck;
-      }
-      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));
-    }
-  }
-  return middlewareArray;
-};
-
-// src/autoBatchEnhancer.ts
-var SHOULD_AUTOBATCH = "RTK_autoBatch";
-var prepareAutoBatched = () => (payload) => ({
-  payload,
-  meta: {
-    [SHOULD_AUTOBATCH]: true
-  }
-});
-var createQueueWithTimer = (timeout) => {
-  return (notify) => {
-    setTimeout(notify, timeout);
-  };
-};
-var autoBatchEnhancer = (options = {
-  type: "raf"
-}) => (next) => (...args) => {
-  const store = next(...args);
-  let notifying = true;
-  let shouldNotifyAtEndOfTick = false;
-  let notificationQueued = false;
-  const listeners = /* @__PURE__ */ new Set();
-  const queueCallback = options.type === "tick" ? queueMicrotask : options.type === "raf" ? (
-    // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.
-    typeof window !== "undefined" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10)
-  ) : options.type === "callback" ? options.queueNotification : createQueueWithTimer(options.timeout);
-  const notifyListeners = () => {
-    notificationQueued = false;
-    if (shouldNotifyAtEndOfTick) {
-      shouldNotifyAtEndOfTick = false;
-      listeners.forEach((l) => l());
-    }
-  };
-  return Object.assign({}, store, {
-    // Override the base `store.subscribe` method to keep original listeners
-    // from running if we're delaying notifications
-    subscribe(listener2) {
-      const wrappedListener = () => notifying && listener2();
-      const unsubscribe = store.subscribe(wrappedListener);
-      listeners.add(listener2);
-      return () => {
-        unsubscribe();
-        listeners.delete(listener2);
-      };
-    },
-    // Override the base `store.dispatch` method so that we can check actions
-    // for the `shouldAutoBatch` flag and determine if batching is active
-    dispatch(action) {
-      try {
-        notifying = !action?.meta?.[SHOULD_AUTOBATCH];
-        shouldNotifyAtEndOfTick = !notifying;
-        if (shouldNotifyAtEndOfTick) {
-          if (!notificationQueued) {
-            notificationQueued = true;
-            queueCallback(notifyListeners);
-          }
-        }
-        return store.dispatch(action);
-      } finally {
-        notifying = true;
-      }
-    }
-  });
-};
-
-// src/getDefaultEnhancers.ts
-var buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {
-  const {
-    autoBatch = true
-  } = options ?? {};
-  let enhancerArray = new Tuple(middlewareEnhancer);
-  if (autoBatch) {
-    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === "object" ? autoBatch : void 0));
-  }
-  return enhancerArray;
-};
-
-// src/configureStore.ts
-function configureStore(options) {
-  const getDefaultMiddleware = buildGetDefaultMiddleware();
-  const {
-    reducer = void 0,
-    middleware,
-    devTools = true,
-    duplicateMiddlewareCheck = true,
-    preloadedState = void 0,
-    enhancers = void 0
-  } = options || {};
-  let rootReducer;
-  if (typeof reducer === "function") {
-    rootReducer = reducer;
-  } else if (isPlainObject(reducer)) {
-    rootReducer = combineReducers(reducer);
-  } else {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(1) : "`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers");
-  }
-  if (process.env.NODE_ENV !== "production" && middleware && typeof middleware !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(2) : "`middleware` field must be a callback");
-  }
-  let finalMiddleware;
-  if (typeof middleware === "function") {
-    finalMiddleware = middleware(getDefaultMiddleware);
-    if (process.env.NODE_ENV !== "production" && !Array.isArray(finalMiddleware)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(3) : "when using a middleware builder function, an array of middleware must be returned");
-    }
-  } else {
-    finalMiddleware = getDefaultMiddleware();
-  }
-  if (process.env.NODE_ENV !== "production" && finalMiddleware.some((item) => typeof item !== "function")) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(4) : "each middleware provided to configureStore must be a function");
-  }
-  if (process.env.NODE_ENV !== "production" && duplicateMiddlewareCheck) {
-    let middlewareReferences = /* @__PURE__ */ new Set();
-    finalMiddleware.forEach((middleware2) => {
-      if (middlewareReferences.has(middleware2)) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(42) : "Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.");
-      }
-      middlewareReferences.add(middleware2);
-    });
-  }
-  let finalCompose = compose;
-  if (devTools) {
-    finalCompose = composeWithDevTools({
-      // Enable capture of stack traces for dispatched Redux actions
-      trace: process.env.NODE_ENV !== "production",
-      ...typeof devTools === "object" && devTools
-    });
-  }
-  const middlewareEnhancer = applyMiddleware(...finalMiddleware);
-  const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);
-  if (process.env.NODE_ENV !== "production" && enhancers && typeof enhancers !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(5) : "`enhancers` field must be a callback");
-  }
-  let storeEnhancers = typeof enhancers === "function" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();
-  if (process.env.NODE_ENV !== "production" && !Array.isArray(storeEnhancers)) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(6) : "`enhancers` callback must return an array");
-  }
-  if (process.env.NODE_ENV !== "production" && storeEnhancers.some((item) => typeof item !== "function")) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(7) : "each enhancer provided to configureStore must be a function");
-  }
-  if (process.env.NODE_ENV !== "production" && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {
-    console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");
-  }
-  const composedEnhancer = finalCompose(...storeEnhancers);
-  return createStore(rootReducer, preloadedState, composedEnhancer);
-}
-
-// src/mapBuilders.ts
-function executeReducerBuilderCallback(builderCallback) {
-  const actionsMap = {};
-  const actionMatchers = [];
-  let defaultCaseReducer;
-  const builder = {
-    addCase(typeOrActionCreator, reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (actionMatchers.length > 0) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(26) : "`builder.addCase` should only be called before calling `builder.addMatcher`");
-        }
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(27) : "`builder.addCase` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-      if (!type) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(28) : "`builder.addCase` cannot be called with an empty action type");
-      }
-      if (type in actionsMap) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(29) : `\`builder.addCase\` cannot be called with two reducers for the same action type '${type}'`);
-      }
-      actionsMap[type] = reducer;
-      return builder;
-    },
-    addAsyncThunk(asyncThunk, reducers) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(43) : "`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;
-      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;
-      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;
-      if (reducers.settled) actionMatchers.push({
-        matcher: asyncThunk.settled,
-        reducer: reducers.settled
-      });
-      return builder;
-    },
-    addMatcher(matcher, reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(30) : "`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");
-        }
-      }
-      actionMatchers.push({
-        matcher,
-        reducer
-      });
-      return builder;
-    },
-    addDefaultCase(reducer) {
-      if (process.env.NODE_ENV !== "production") {
-        if (defaultCaseReducer) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(31) : "`builder.addDefaultCase` can only be called once");
-        }
-      }
-      defaultCaseReducer = reducer;
-      return builder;
-    }
-  };
-  builderCallback(builder);
-  return [actionsMap, actionMatchers, defaultCaseReducer];
-}
-
-// src/createReducer.ts
-function isStateFunction(x) {
-  return typeof x === "function";
-}
-function createReducer(initialState, mapOrBuilderCallback) {
-  if (process.env.NODE_ENV !== "production") {
-    if (typeof mapOrBuilderCallback === "object") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(8) : "The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");
-    }
-  }
-  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);
-  let getInitialState;
-  if (isStateFunction(initialState)) {
-    getInitialState = () => freezeDraftable(initialState());
-  } else {
-    const frozenInitialState = freezeDraftable(initialState);
-    getInitialState = () => frozenInitialState;
-  }
-  function reducer(state = getInitialState(), action) {
-    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({
-      matcher
-    }) => matcher(action)).map(({
-      reducer: reducer2
-    }) => reducer2)];
-    if (caseReducers.filter((cr) => !!cr).length === 0) {
-      caseReducers = [finalDefaultCaseReducer];
-    }
-    return caseReducers.reduce((previousState, caseReducer) => {
-      if (caseReducer) {
-        if (isDraft(previousState)) {
-          const draft = previousState;
-          const result = caseReducer(draft, action);
-          if (result === void 0) {
-            return previousState;
-          }
-          return result;
-        } else if (!isDraftable(previousState)) {
-          const result = caseReducer(previousState, action);
-          if (result === void 0) {
-            if (previousState === null) {
-              return previousState;
-            }
-            throw Error("A case reducer on a non-draftable value must not return undefined");
-          }
-          return result;
-        } else {
-          return produce(previousState, (draft) => {
-            return caseReducer(draft, action);
-          });
-        }
-      }
-      return previousState;
-    }, state);
-  }
-  reducer.getInitialState = getInitialState;
-  return reducer;
-}
-
-// src/matchers.ts
-var matches = (matcher, action) => {
-  if (hasMatchFunction(matcher)) {
-    return matcher.match(action);
-  } else {
-    return matcher(action);
-  }
-};
-function isAnyOf(...matchers) {
-  return (action) => {
-    return matchers.some((matcher) => matches(matcher, action));
-  };
-}
-function isAllOf(...matchers) {
-  return (action) => {
-    return matchers.every((matcher) => matches(matcher, action));
-  };
-}
-function hasExpectedRequestMetadata(action, validStatus) {
-  if (!action || !action.meta) return false;
-  const hasValidRequestId = typeof action.meta.requestId === "string";
-  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;
-  return hasValidRequestId && hasValidRequestStatus;
-}
-function isAsyncThunkArray(a) {
-  return typeof a[0] === "function" && "pending" in a[0] && "fulfilled" in a[0] && "rejected" in a[0];
-}
-function isPending(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isPending()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));
-}
-function isRejected(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejected()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));
-}
-function isRejectedWithValue(...asyncThunks) {
-  const hasFlag = (action) => {
-    return action && action.meta && action.meta.rejectedWithValue;
-  };
-  if (asyncThunks.length === 0) {
-    return isAllOf(isRejected(...asyncThunks), hasFlag);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejectedWithValue()(asyncThunks[0]);
-  }
-  return isAllOf(isRejected(...asyncThunks), hasFlag);
-}
-function isFulfilled(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["fulfilled"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isFulfilled()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));
-}
-function isAsyncThunkAction(...asyncThunks) {
-  if (asyncThunks.length === 0) {
-    return (action) => hasExpectedRequestMetadata(action, ["pending", "fulfilled", "rejected"]);
-  }
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isAsyncThunkAction()(asyncThunks[0]);
-  }
-  return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));
-}
-
-// src/nanoid.ts
-var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW";
-var nanoid = (size = 21) => {
-  let id = "";
-  let i = size;
-  while (i--) {
-    id += urlAlphabet[Math.random() * 64 | 0];
-  }
-  return id;
-};
-
-// src/createAsyncThunk.ts
-var commonProperties = ["name", "message", "stack", "code"];
-var RejectWithValue = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-  }
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  _type;
-};
-var FulfillWithMeta = class {
-  constructor(payload, meta) {
-    this.payload = payload;
-    this.meta = meta;
-  }
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  _type;
-};
-var miniSerializeError = (value) => {
-  if (typeof value === "object" && value !== null) {
-    const simpleError = {};
-    for (const property of commonProperties) {
-      if (typeof value[property] === "string") {
-        simpleError[property] = value[property];
-      }
-    }
-    return simpleError;
-  }
-  return {
-    message: String(value)
-  };
-};
-var externalAbortMessage = "External signal was aborted";
-var createAsyncThunk = /* @__PURE__ */ (() => {
-  function createAsyncThunk2(typePrefix, payloadCreator, options) {
-    const fulfilled = createAction(typePrefix + "/fulfilled", (payload, requestId, arg, meta) => ({
-      payload,
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        requestStatus: "fulfilled"
-      }
-    }));
-    const pending = createAction(typePrefix + "/pending", (requestId, arg, meta) => ({
-      payload: void 0,
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        requestStatus: "pending"
-      }
-    }));
-    const rejected = createAction(typePrefix + "/rejected", (error, requestId, arg, payload, meta) => ({
-      payload,
-      error: (options && options.serializeError || miniSerializeError)(error || "Rejected"),
-      meta: {
-        ...meta || {},
-        arg,
-        requestId,
-        rejectedWithValue: !!payload,
-        requestStatus: "rejected",
-        aborted: error?.name === "AbortError",
-        condition: error?.name === "ConditionError"
-      }
-    }));
-    function actionCreator(arg, {
-      signal
-    } = {}) {
-      return (dispatch, getState, extra) => {
-        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();
-        const abortController = new AbortController();
-        let abortHandler;
-        let abortReason;
-        function abort(reason) {
-          abortReason = reason;
-          abortController.abort();
-        }
-        if (signal) {
-          if (signal.aborted) {
-            abort(externalAbortMessage);
-          } else {
-            signal.addEventListener("abort", () => abort(externalAbortMessage), {
-              once: true
-            });
-          }
-        }
-        const promise = async function() {
-          let finalAction;
-          try {
-            let conditionResult = options?.condition?.(arg, {
-              getState,
-              extra
-            });
-            if (isThenable(conditionResult)) {
-              conditionResult = await conditionResult;
-            }
-            if (conditionResult === false || abortController.signal.aborted) {
-              throw {
-                name: "ConditionError",
-                message: "Aborted due to condition callback returning false."
-              };
-            }
-            const abortedPromise = new Promise((_, reject) => {
-              abortHandler = () => {
-                reject({
-                  name: "AbortError",
-                  message: abortReason || "Aborted"
-                });
-              };
-              abortController.signal.addEventListener("abort", abortHandler, {
-                once: true
-              });
-            });
-            dispatch(pending(requestId, arg, options?.getPendingMeta?.({
-              requestId,
-              arg
-            }, {
-              getState,
-              extra
-            })));
-            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {
-              dispatch,
-              getState,
-              extra,
-              requestId,
-              signal: abortController.signal,
-              abort,
-              rejectWithValue: (value, meta) => {
-                return new RejectWithValue(value, meta);
-              },
-              fulfillWithValue: (value, meta) => {
-                return new FulfillWithMeta(value, meta);
-              }
-            })).then((result) => {
-              if (result instanceof RejectWithValue) {
-                throw result;
-              }
-              if (result instanceof FulfillWithMeta) {
-                return fulfilled(result.payload, requestId, arg, result.meta);
-              }
-              return fulfilled(result, requestId, arg);
-            })]);
-          } catch (err) {
-            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);
-          } finally {
-            if (abortHandler) {
-              abortController.signal.removeEventListener("abort", abortHandler);
-            }
-          }
-          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;
-          if (!skipDispatch) {
-            dispatch(finalAction);
-          }
-          return finalAction;
-        }();
-        return Object.assign(promise, {
-          abort,
-          requestId,
-          arg,
-          unwrap() {
-            return promise.then(unwrapResult);
-          }
-        });
-      };
-    }
-    return Object.assign(actionCreator, {
-      pending,
-      rejected,
-      fulfilled,
-      settled: isAnyOf(rejected, fulfilled),
-      typePrefix
-    });
-  }
-  createAsyncThunk2.withTypes = () => createAsyncThunk2;
-  return createAsyncThunk2;
-})();
-function unwrapResult(action) {
-  if (action.meta && action.meta.rejectedWithValue) {
-    throw action.payload;
-  }
-  if (action.error) {
-    throw action.error;
-  }
-  return action.payload;
-}
-function isThenable(value) {
-  return value !== null && typeof value === "object" && typeof value.then === "function";
-}
-
-// src/createSlice.ts
-var asyncThunkSymbol = /* @__PURE__ */ Symbol.for("rtk-slice-createasyncthunk");
-var asyncThunkCreator = {
-  [asyncThunkSymbol]: createAsyncThunk
-};
-var ReducerType = /* @__PURE__ */ ((ReducerType2) => {
-  ReducerType2["reducer"] = "reducer";
-  ReducerType2["reducerWithPrepare"] = "reducerWithPrepare";
-  ReducerType2["asyncThunk"] = "asyncThunk";
-  return ReducerType2;
-})(ReducerType || {});
-function getType(slice, actionKey) {
-  return `${slice}/${actionKey}`;
-}
-function buildCreateSlice({
-  creators
-} = {}) {
-  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];
-  return function createSlice2(options) {
-    const {
-      name,
-      reducerPath = name
-    } = options;
-    if (!name) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(11) : "`name` is a required option for createSlice");
-    }
-    if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-      if (options.initialState === void 0) {
-        console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");
-      }
-    }
-    const reducers = (typeof options.reducers === "function" ? options.reducers(buildReducerCreators()) : options.reducers) || {};
-    const reducerNames = Object.keys(reducers);
-    const context = {
-      sliceCaseReducersByName: {},
-      sliceCaseReducersByType: {},
-      actionCreators: {},
-      sliceMatchers: []
-    };
-    const contextMethods = {
-      addCase(typeOrActionCreator, reducer2) {
-        const type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
-        if (!type) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(12) : "`context.addCase` cannot be called with an empty action type");
-        }
-        if (type in context.sliceCaseReducersByType) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(13) : "`context.addCase` cannot be called with two reducers for the same action type: " + type);
-        }
-        context.sliceCaseReducersByType[type] = reducer2;
-        return contextMethods;
-      },
-      addMatcher(matcher, reducer2) {
-        context.sliceMatchers.push({
-          matcher,
-          reducer: reducer2
-        });
-        return contextMethods;
-      },
-      exposeAction(name2, actionCreator) {
-        context.actionCreators[name2] = actionCreator;
-        return contextMethods;
-      },
-      exposeCaseReducer(name2, reducer2) {
-        context.sliceCaseReducersByName[name2] = reducer2;
-        return contextMethods;
-      }
-    };
-    reducerNames.forEach((reducerName) => {
-      const reducerDefinition = reducers[reducerName];
-      const reducerDetails = {
-        reducerName,
-        type: getType(name, reducerName),
-        createNotation: typeof options.reducers === "function"
-      };
-      if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {
-        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);
-      } else {
-        handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);
-      }
-    });
-    function buildReducer() {
-      if (process.env.NODE_ENV !== "production") {
-        if (typeof options.extraReducers === "object") {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(14) : "The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");
-        }
-      }
-      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];
-      const finalCaseReducers = {
-        ...extraReducers,
-        ...context.sliceCaseReducersByType
-      };
-      return createReducer(options.initialState, (builder) => {
-        for (let key in finalCaseReducers) {
-          builder.addCase(key, finalCaseReducers[key]);
-        }
-        for (let sM of context.sliceMatchers) {
-          builder.addMatcher(sM.matcher, sM.reducer);
-        }
-        for (let m of actionMatchers) {
-          builder.addMatcher(m.matcher, m.reducer);
-        }
-        if (defaultCaseReducer) {
-          builder.addDefaultCase(defaultCaseReducer);
-        }
-      });
-    }
-    const selectSelf = (state) => state;
-    const injectedSelectorCache = /* @__PURE__ */ new Map();
-    const injectedStateCache = /* @__PURE__ */ new WeakMap();
-    let _reducer;
-    function reducer(state, action) {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer(state, action);
-    }
-    function getInitialState() {
-      if (!_reducer) _reducer = buildReducer();
-      return _reducer.getInitialState();
-    }
-    function makeSelectorProps(reducerPath2, injected = false) {
-      function selectSlice(state) {
-        let sliceState = state[reducerPath2];
-        if (typeof sliceState === "undefined") {
-          if (injected) {
-            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);
-          } else if (process.env.NODE_ENV !== "production") {
-            throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(15) : "selectSlice returned undefined for an uninjected slice reducer");
-          }
-        }
-        return sliceState;
-      }
-      function getSelectors(selectState = selectSelf) {
-        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());
-        return getOrInsertComputed(selectorCache, selectState, () => {
-          const map = {};
-          for (const [name2, selector] of Object.entries(options.selectors ?? {})) {
-            map[name2] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);
-          }
-          return map;
-        });
-      }
-      return {
-        reducerPath: reducerPath2,
-        getSelectors,
-        get selectors() {
-          return getSelectors(selectSlice);
-        },
-        selectSlice
-      };
-    }
-    const slice = {
-      name,
-      reducer,
-      actions: context.actionCreators,
-      caseReducers: context.sliceCaseReducersByName,
-      getInitialState,
-      ...makeSelectorProps(reducerPath),
-      injectInto(injectable, {
-        reducerPath: pathOpt,
-        ...config
-      } = {}) {
-        const newReducerPath = pathOpt ?? reducerPath;
-        injectable.inject({
-          reducerPath: newReducerPath,
-          reducer
-        }, config);
-        return {
-          ...slice,
-          ...makeSelectorProps(newReducerPath, true)
-        };
-      }
-    };
-    return slice;
-  };
-}
-function wrapSelector(selector, selectState, getInitialState, injected) {
-  function wrapper(rootState, ...args) {
-    let sliceState = selectState(rootState);
-    if (typeof sliceState === "undefined") {
-      if (injected) {
-        sliceState = getInitialState();
-      } else if (process.env.NODE_ENV !== "production") {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(16) : "selectState returned undefined for an uninjected slice reducer");
-      }
-    }
-    return selector(sliceState, ...args);
-  }
-  wrapper.unwrapped = selector;
-  return wrapper;
-}
-var createSlice = /* @__PURE__ */ buildCreateSlice();
-function buildReducerCreators() {
-  function asyncThunk(payloadCreator, config) {
-    return {
-      _reducerDefinitionType: "asyncThunk" /* asyncThunk */,
-      payloadCreator,
-      ...config
-    };
-  }
-  asyncThunk.withTypes = () => asyncThunk;
-  return {
-    reducer(caseReducer) {
-      return Object.assign({
-        // hack so the wrapping function has the same name as the original
-        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original
-        [caseReducer.name](...args) {
-          return caseReducer(...args);
-        }
-      }[caseReducer.name], {
-        _reducerDefinitionType: "reducer" /* reducer */
-      });
-    },
-    preparedReducer(prepare, reducer) {
-      return {
-        _reducerDefinitionType: "reducerWithPrepare" /* reducerWithPrepare */,
-        prepare,
-        reducer
-      };
-    },
-    asyncThunk
-  };
-}
-function handleNormalReducerDefinition({
-  type,
-  reducerName,
-  createNotation
-}, maybeReducerWithPrepare, context) {
-  let caseReducer;
-  let prepareCallback;
-  if ("reducer" in maybeReducerWithPrepare) {
-    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(17) : "Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.");
-    }
-    caseReducer = maybeReducerWithPrepare.reducer;
-    prepareCallback = maybeReducerWithPrepare.prepare;
-  } else {
-    caseReducer = maybeReducerWithPrepare;
-  }
-  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));
-}
-function isAsyncThunkSliceReducerDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "asyncThunk" /* asyncThunk */;
-}
-function isCaseReducerWithPrepareDefinition(reducerDefinition) {
-  return reducerDefinition._reducerDefinitionType === "reducerWithPrepare" /* reducerWithPrepare */;
-}
-function handleThunkCaseReducerDefinition({
-  type,
-  reducerName
-}, reducerDefinition, context, cAT) {
-  if (!cAT) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(18) : "Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.");
-  }
-  const {
-    payloadCreator,
-    fulfilled,
-    pending,
-    rejected,
-    settled,
-    options
-  } = reducerDefinition;
-  const thunk = cAT(type, payloadCreator, options);
-  context.exposeAction(reducerName, thunk);
-  if (fulfilled) {
-    context.addCase(thunk.fulfilled, fulfilled);
-  }
-  if (pending) {
-    context.addCase(thunk.pending, pending);
-  }
-  if (rejected) {
-    context.addCase(thunk.rejected, rejected);
-  }
-  if (settled) {
-    context.addMatcher(thunk.settled, settled);
-  }
-  context.exposeCaseReducer(reducerName, {
-    fulfilled: fulfilled || noop,
-    pending: pending || noop,
-    rejected: rejected || noop,
-    settled: settled || noop
-  });
-}
-function noop() {
-}
-
-// src/entities/entity_state.ts
-function getInitialEntityState() {
-  return {
-    ids: [],
-    entities: {}
-  };
-}
-function createInitialStateFactory(stateAdapter) {
-  function getInitialState(additionalState = {}, entities) {
-    const state = Object.assign(getInitialEntityState(), additionalState);
-    return entities ? stateAdapter.setAll(state, entities) : state;
-  }
-  return {
-    getInitialState
-  };
-}
-
-// src/entities/state_selectors.ts
-function createSelectorsFactory() {
-  function getSelectors(selectState, options = {}) {
-    const {
-      createSelector: createSelector2 = createDraftSafeSelector
-    } = options;
-    const selectIds = (state) => state.ids;
-    const selectEntities = (state) => state.entities;
-    const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
-    const selectId = (_, id) => id;
-    const selectById = (entities, id) => entities[id];
-    const selectTotal = createSelector2(selectIds, (ids) => ids.length);
-    if (!selectState) {
-      return {
-        selectIds,
-        selectEntities,
-        selectAll,
-        selectTotal,
-        selectById: createSelector2(selectEntities, selectId, selectById)
-      };
-    }
-    const selectGlobalizedEntities = createSelector2(selectState, selectEntities);
-    return {
-      selectIds: createSelector2(selectState, selectIds),
-      selectEntities: selectGlobalizedEntities,
-      selectAll: createSelector2(selectState, selectAll),
-      selectTotal: createSelector2(selectState, selectTotal),
-      selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)
-    };
-  }
-  return {
-    getSelectors
-  };
-}
-
-// src/entities/state_adapter.ts
-var isDraftTyped = isDraft;
-function createSingleArgumentStateOperator(mutator) {
-  const operator = createStateOperator((_, state) => mutator(state));
-  return function operation(state) {
-    return operator(state, void 0);
-  };
-}
-function createStateOperator(mutator) {
-  return function operation(state, arg) {
-    function isPayloadActionArgument(arg2) {
-      return isFSA(arg2);
-    }
-    const runMutator = (draft) => {
-      if (isPayloadActionArgument(arg)) {
-        mutator(arg.payload, draft);
-      } else {
-        mutator(arg, draft);
-      }
-    };
-    if (isDraftTyped(state)) {
-      runMutator(state);
-      return state;
-    }
-    return produce(state, runMutator);
-  };
-}
-
-// src/entities/utils.ts
-function selectIdValue(entity, selectId) {
-  const key = selectId(entity);
-  if (process.env.NODE_ENV !== "production" && key === void 0) {
-    console.warn("The entity passed to the `selectId` implementation returned undefined.", "You should probably provide your own `selectId` implementation.", "The entity that was passed:", entity, "The `selectId` implementation:", selectId.toString());
-  }
-  return key;
-}
-function ensureEntitiesArray(entities) {
-  if (!Array.isArray(entities)) {
-    entities = Object.values(entities);
-  }
-  return entities;
-}
-function getCurrent(value) {
-  return isDraft(value) ? current(value) : value;
-}
-function splitAddedUpdatedEntities(newEntities, selectId, state) {
-  newEntities = ensureEntitiesArray(newEntities);
-  const existingIdsArray = getCurrent(state.ids);
-  const existingIds = new Set(existingIdsArray);
-  const added = [];
-  const addedIds = /* @__PURE__ */ new Set([]);
-  const updated = [];
-  for (const entity of newEntities) {
-    const id = selectIdValue(entity, selectId);
-    if (existingIds.has(id) || addedIds.has(id)) {
-      updated.push({
-        id,
-        changes: entity
-      });
-    } else {
-      addedIds.add(id);
-      added.push(entity);
-    }
-  }
-  return [added, updated, existingIdsArray];
-}
-
-// src/entities/unsorted_state_adapter.ts
-function createUnsortedStateAdapter(selectId) {
-  function addOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (key in state.entities) {
-      return;
-    }
-    state.ids.push(key);
-    state.entities[key] = entity;
-  }
-  function addManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      addOneMutably(entity, state);
-    }
-  }
-  function setOneMutably(entity, state) {
-    const key = selectIdValue(entity, selectId);
-    if (!(key in state.entities)) {
-      state.ids.push(key);
-    }
-    ;
-    state.entities[key] = entity;
-  }
-  function setManyMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    for (const entity of newEntities) {
-      setOneMutably(entity, state);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.ids = [];
-    state.entities = {};
-    addManyMutably(newEntities, state);
-  }
-  function removeOneMutably(key, state) {
-    return removeManyMutably([key], state);
-  }
-  function removeManyMutably(keys, state) {
-    let didMutate = false;
-    keys.forEach((key) => {
-      if (key in state.entities) {
-        delete state.entities[key];
-        didMutate = true;
-      }
-    });
-    if (didMutate) {
-      state.ids = state.ids.filter((id) => id in state.entities);
-    }
-  }
-  function removeAllMutably(state) {
-    Object.assign(state, {
-      ids: [],
-      entities: {}
-    });
-  }
-  function takeNewKey(keys, update, state) {
-    const original3 = state.entities[update.id];
-    if (original3 === void 0) {
-      return false;
-    }
-    const updated = Object.assign({}, original3, update.changes);
-    const newKey = selectIdValue(updated, selectId);
-    const hasNewKey = newKey !== update.id;
-    if (hasNewKey) {
-      keys[update.id] = newKey;
-      delete state.entities[update.id];
-    }
-    ;
-    state.entities[newKey] = updated;
-    return hasNewKey;
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    const newKeys = {};
-    const updatesPerEntity = {};
-    updates.forEach((update) => {
-      if (update.id in state.entities) {
-        updatesPerEntity[update.id] = {
-          id: update.id,
-          // Spreads ignore falsy values, so this works even if there isn't
-          // an existing update already at this key
-          changes: {
-            ...updatesPerEntity[update.id]?.changes,
-            ...update.changes
-          }
-        };
-      }
-    });
-    updates = Object.values(updatesPerEntity);
-    const didMutateEntities = updates.length > 0;
-    if (didMutateEntities) {
-      const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;
-      if (didMutateIds) {
-        state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));
-      }
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    addManyMutably(added, state);
-    updateManyMutably(updated, state);
-  }
-  return {
-    removeAll: createSingleArgumentStateOperator(removeAllMutably),
-    addOne: createStateOperator(addOneMutably),
-    addMany: createStateOperator(addManyMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    upsertMany: createStateOperator(upsertManyMutably),
-    removeOne: createStateOperator(removeOneMutably),
-    removeMany: createStateOperator(removeManyMutably)
-  };
-}
-
-// src/entities/sorted_state_adapter.ts
-function findInsertIndex(sortedItems, item, comparisonFunction) {
-  let lowIndex = 0;
-  let highIndex = sortedItems.length;
-  while (lowIndex < highIndex) {
-    let middleIndex = lowIndex + highIndex >>> 1;
-    const currentItem = sortedItems[middleIndex];
-    const res = comparisonFunction(item, currentItem);
-    if (res >= 0) {
-      lowIndex = middleIndex + 1;
-    } else {
-      highIndex = middleIndex;
-    }
-  }
-  return lowIndex;
-}
-function insert(sortedItems, item, comparisonFunction) {
-  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);
-  sortedItems.splice(insertAtIndex, 0, item);
-  return sortedItems;
-}
-function createSortedStateAdapter(selectId, comparer) {
-  const {
-    removeOne,
-    removeMany,
-    removeAll
-  } = createUnsortedStateAdapter(selectId);
-  function addOneMutably(entity, state) {
-    return addManyMutably([entity], state);
-  }
-  function addManyMutably(newEntities, state, existingIds) {
-    newEntities = ensureEntitiesArray(newEntities);
-    const existingKeys = new Set(existingIds ?? getCurrent(state.ids));
-    const addedKeys = /* @__PURE__ */ new Set();
-    const models = newEntities.filter((model) => {
-      const modelId = selectIdValue(model, selectId);
-      const notAdded = !addedKeys.has(modelId);
-      if (notAdded) addedKeys.add(modelId);
-      return !existingKeys.has(modelId) && notAdded;
-    });
-    if (models.length !== 0) {
-      mergeFunction(state, models);
-    }
-  }
-  function setOneMutably(entity, state) {
-    return setManyMutably([entity], state);
-  }
-  function setManyMutably(newEntities, state) {
-    let deduplicatedEntities = {};
-    newEntities = ensureEntitiesArray(newEntities);
-    if (newEntities.length !== 0) {
-      for (const item of newEntities) {
-        const entityId = selectId(item);
-        deduplicatedEntities[entityId] = item;
-        delete state.entities[entityId];
-      }
-      newEntities = ensureEntitiesArray(deduplicatedEntities);
-      mergeFunction(state, newEntities);
-    }
-  }
-  function setAllMutably(newEntities, state) {
-    newEntities = ensureEntitiesArray(newEntities);
-    state.entities = {};
-    state.ids = [];
-    addManyMutably(newEntities, state, []);
-  }
-  function updateOneMutably(update, state) {
-    return updateManyMutably([update], state);
-  }
-  function updateManyMutably(updates, state) {
-    let appliedUpdates = false;
-    let replacedIds = false;
-    for (let update of updates) {
-      const entity = state.entities[update.id];
-      if (!entity) {
-        continue;
-      }
-      appliedUpdates = true;
-      Object.assign(entity, update.changes);
-      const newId = selectId(entity);
-      if (update.id !== newId) {
-        replacedIds = true;
-        delete state.entities[update.id];
-        const oldIndex = state.ids.indexOf(update.id);
-        state.ids[oldIndex] = newId;
-        state.entities[newId] = entity;
-      }
-    }
-    if (appliedUpdates) {
-      mergeFunction(state, [], appliedUpdates, replacedIds);
-    }
-  }
-  function upsertOneMutably(entity, state) {
-    return upsertManyMutably([entity], state);
-  }
-  function upsertManyMutably(newEntities, state) {
-    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);
-    if (added.length) {
-      addManyMutably(added, state, existingIdsArray);
-    }
-    if (updated.length) {
-      updateManyMutably(updated, state);
-    }
-  }
-  function areArraysEqual(a, b) {
-    if (a.length !== b.length) {
-      return false;
-    }
-    for (let i = 0; i < a.length; i++) {
-      if (a[i] === b[i]) {
-        continue;
-      }
-      return false;
-    }
-    return true;
-  }
-  const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {
-    const currentEntities = getCurrent(state.entities);
-    const currentIds = getCurrent(state.ids);
-    const stateEntities = state.entities;
-    let ids = currentIds;
-    if (replacedIds) {
-      ids = new Set(currentIds);
-    }
-    let sortedEntities = [];
-    for (const id of ids) {
-      const entity = currentEntities[id];
-      if (entity) {
-        sortedEntities.push(entity);
-      }
-    }
-    const wasPreviouslyEmpty = sortedEntities.length === 0;
-    for (const item of addedItems) {
-      stateEntities[selectId(item)] = item;
-      if (!wasPreviouslyEmpty) {
-        insert(sortedEntities, item, comparer);
-      }
-    }
-    if (wasPreviouslyEmpty) {
-      sortedEntities = addedItems.slice().sort(comparer);
-    } else if (appliedUpdates) {
-      sortedEntities.sort(comparer);
-    }
-    const newSortedIds = sortedEntities.map(selectId);
-    if (!areArraysEqual(currentIds, newSortedIds)) {
-      state.ids = newSortedIds;
-    }
-  };
-  return {
-    removeOne,
-    removeMany,
-    removeAll,
-    addOne: createStateOperator(addOneMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    addMany: createStateOperator(addManyMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertMany: createStateOperator(upsertManyMutably)
-  };
-}
-
-// src/entities/create_adapter.ts
-function createEntityAdapter(options = {}) {
-  const {
-    selectId,
-    sortComparer
-  } = {
-    sortComparer: false,
-    selectId: (instance) => instance.id,
-    ...options
-  };
-  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);
-  const stateFactory = createInitialStateFactory(stateAdapter);
-  const selectorsFactory = createSelectorsFactory();
-  return {
-    selectId,
-    sortComparer,
-    ...stateFactory,
-    ...selectorsFactory,
-    ...stateAdapter
-  };
-}
-
-// src/listenerMiddleware/exceptions.ts
-var task = "task";
-var listener = "listener";
-var completed = "completed";
-var cancelled = "cancelled";
-var taskCancelled = `task-${cancelled}`;
-var taskCompleted = `task-${completed}`;
-var listenerCancelled = `${listener}-${cancelled}`;
-var listenerCompleted = `${listener}-${completed}`;
-var TaskAbortError = class {
-  constructor(code) {
-    this.code = code;
-    this.message = `${task} ${cancelled} (reason: ${code})`;
-  }
-  name = "TaskAbortError";
-  message;
-};
-
-// src/listenerMiddleware/utils.ts
-var assertFunction = (func, expected) => {
-  if (typeof func !== "function") {
-    throw new TypeError(process.env.NODE_ENV === "production" ? formatProdErrorMessage(32) : `${expected} is not a function`);
-  }
-};
-var noop2 = () => {
-};
-var catchRejection = (promise, onError = noop2) => {
-  promise.catch(onError);
-  return promise;
-};
-var addAbortSignalListener = (abortSignal, callback) => {
-  abortSignal.addEventListener("abort", callback, {
-    once: true
-  });
-  return () => abortSignal.removeEventListener("abort", callback);
-};
-
-// src/listenerMiddleware/task.ts
-var validateActive = (signal) => {
-  if (signal.aborted) {
-    throw new TaskAbortError(signal.reason);
-  }
-};
-function raceWithSignal(signal, promise) {
-  let cleanup = noop2;
-  return new Promise((resolve, reject) => {
-    const notifyRejection = () => reject(new TaskAbortError(signal.reason));
-    if (signal.aborted) {
-      notifyRejection();
-      return;
-    }
-    cleanup = addAbortSignalListener(signal, notifyRejection);
-    promise.finally(() => cleanup()).then(resolve, reject);
-  }).finally(() => {
-    cleanup = noop2;
-  });
-}
-var runTask = async (task2, cleanUp) => {
-  try {
-    await Promise.resolve();
-    const value = await task2();
-    return {
-      status: "ok",
-      value
-    };
-  } catch (error) {
-    return {
-      status: error instanceof TaskAbortError ? "cancelled" : "rejected",
-      error
-    };
-  } finally {
-    cleanUp?.();
-  }
-};
-var createPause = (signal) => {
-  return (promise) => {
-    return catchRejection(raceWithSignal(signal, promise).then((output) => {
-      validateActive(signal);
-      return output;
-    }));
-  };
-};
-var createDelay = (signal) => {
-  const pause = createPause(signal);
-  return (timeoutMs) => {
-    return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));
-  };
-};
-
-// src/listenerMiddleware/index.ts
-var {
-  assign
-} = Object;
-var INTERNAL_NIL_TOKEN = {};
-var alm = "listenerMiddleware";
-var createFork = (parentAbortSignal, parentBlockingPromises) => {
-  const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));
-  return (taskExecutor, opts) => {
-    assertFunction(taskExecutor, "taskExecutor");
-    const childAbortController = new AbortController();
-    linkControllers(childAbortController);
-    const result = runTask(async () => {
-      validateActive(parentAbortSignal);
-      validateActive(childAbortController.signal);
-      const result2 = await taskExecutor({
-        pause: createPause(childAbortController.signal),
-        delay: createDelay(childAbortController.signal),
-        signal: childAbortController.signal
-      });
-      validateActive(childAbortController.signal);
-      return result2;
-    }, () => childAbortController.abort(taskCompleted));
-    if (opts?.autoJoin) {
-      parentBlockingPromises.push(result.catch(noop2));
-    }
-    return {
-      result: createPause(parentAbortSignal)(result),
-      cancel() {
-        childAbortController.abort(taskCancelled);
-      }
-    };
-  };
-};
-var createTakePattern = (startListening, signal) => {
-  const take = async (predicate, timeout) => {
-    validateActive(signal);
-    let unsubscribe = () => {
-    };
-    const tuplePromise = new Promise((resolve, reject) => {
-      let stopListening = startListening({
-        predicate,
-        effect: (action, listenerApi) => {
-          listenerApi.unsubscribe();
-          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);
-        }
-      });
-      unsubscribe = () => {
-        stopListening();
-        reject();
-      };
-    });
-    const promises = [tuplePromise];
-    if (timeout != null) {
-      promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));
-    }
-    try {
-      const output = await raceWithSignal(signal, Promise.race(promises));
-      validateActive(signal);
-      return output;
-    } finally {
-      unsubscribe();
-    }
-  };
-  return (predicate, timeout) => catchRejection(take(predicate, timeout));
-};
-var getListenerEntryPropsFrom = (options) => {
-  let {
-    type,
-    actionCreator,
-    matcher,
-    predicate,
-    effect
-  } = options;
-  if (type) {
-    predicate = createAction(type).match;
-  } else if (actionCreator) {
-    type = actionCreator.type;
-    predicate = actionCreator.match;
-  } else if (matcher) {
-    predicate = matcher;
-  } else if (predicate) {
-  } else {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(21) : "Creating or removing a listener requires one of the known fields for matching an action");
-  }
-  assertFunction(effect, "options.listener");
-  return {
-    predicate,
-    type,
-    effect
-  };
-};
-var createListenerEntry = /* @__PURE__ */ assign((options) => {
-  const {
-    type,
-    predicate,
-    effect
-  } = getListenerEntryPropsFrom(options);
-  const entry = {
-    id: nanoid(),
-    effect,
-    type,
-    predicate,
-    pending: /* @__PURE__ */ new Set(),
-    unsubscribe: () => {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(22) : "Unsubscribe not initialized");
-    }
-  };
-  return entry;
-}, {
-  withTypes: () => createListenerEntry
-});
-var findListenerEntry = (listenerMap, options) => {
-  const {
-    type,
-    effect,
-    predicate
-  } = getListenerEntryPropsFrom(options);
-  return Array.from(listenerMap.values()).find((entry) => {
-    const matchPredicateOrType = typeof type === "string" ? entry.type === type : entry.predicate === predicate;
-    return matchPredicateOrType && entry.effect === effect;
-  });
-};
-var cancelActiveListeners = (entry) => {
-  entry.pending.forEach((controller) => {
-    controller.abort(listenerCancelled);
-  });
-};
-var createClearListenerMiddleware = (listenerMap, executingListeners) => {
-  return () => {
-    for (const listener2 of executingListeners.keys()) {
-      cancelActiveListeners(listener2);
-    }
-    listenerMap.clear();
-  };
-};
-var safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {
-  try {
-    errorHandler(errorToNotify, errorInfo);
-  } catch (errorHandlerError) {
-    setTimeout(() => {
-      throw errorHandlerError;
-    }, 0);
-  }
-};
-var addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {
-  withTypes: () => addListener
-});
-var clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);
-var removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {
-  withTypes: () => removeListener
-});
-var defaultErrorHandler = (...args) => {
-  console.error(`${alm}/error`, ...args);
-};
-var createListenerMiddleware = (middlewareOptions = {}) => {
-  const listenerMap = /* @__PURE__ */ new Map();
-  const executingListeners = /* @__PURE__ */ new Map();
-  const trackExecutingListener = (entry) => {
-    const count = executingListeners.get(entry) ?? 0;
-    executingListeners.set(entry, count + 1);
-  };
-  const untrackExecutingListener = (entry) => {
-    const count = executingListeners.get(entry) ?? 1;
-    if (count === 1) {
-      executingListeners.delete(entry);
-    } else {
-      executingListeners.set(entry, count - 1);
-    }
-  };
-  const {
-    extra,
-    onError = defaultErrorHandler
-  } = middlewareOptions;
-  assertFunction(onError, "onError");
-  const insertEntry = (entry) => {
-    entry.unsubscribe = () => listenerMap.delete(entry.id);
-    listenerMap.set(entry.id, entry);
-    return (cancelOptions) => {
-      entry.unsubscribe();
-      if (cancelOptions?.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    };
-  };
-  const startListening = (options) => {
-    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options);
-    return insertEntry(entry);
-  };
-  assign(startListening, {
-    withTypes: () => startListening
-  });
-  const stopListening = (options) => {
-    const entry = findListenerEntry(listenerMap, options);
-    if (entry) {
-      entry.unsubscribe();
-      if (options.cancelActive) {
-        cancelActiveListeners(entry);
-      }
-    }
-    return !!entry;
-  };
-  assign(stopListening, {
-    withTypes: () => stopListening
-  });
-  const notifyListener = async (entry, action, api, getOriginalState) => {
-    const internalTaskController = new AbortController();
-    const take = createTakePattern(startListening, internalTaskController.signal);
-    const autoJoinPromises = [];
-    try {
-      entry.pending.add(internalTaskController);
-      trackExecutingListener(entry);
-      await Promise.resolve(entry.effect(
-        action,
-        // Use assign() rather than ... to avoid extra helper functions added to bundle
-        assign({}, api, {
-          getOriginalState,
-          condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),
-          take,
-          delay: createDelay(internalTaskController.signal),
-          pause: createPause(internalTaskController.signal),
-          extra,
-          signal: internalTaskController.signal,
-          fork: createFork(internalTaskController.signal, autoJoinPromises),
-          unsubscribe: entry.unsubscribe,
-          subscribe: () => {
-            listenerMap.set(entry.id, entry);
-          },
-          cancelActiveListeners: () => {
-            entry.pending.forEach((controller, _, set) => {
-              if (controller !== internalTaskController) {
-                controller.abort(listenerCancelled);
-                set.delete(controller);
-              }
-            });
-          },
-          cancel: () => {
-            internalTaskController.abort(listenerCancelled);
-            entry.pending.delete(internalTaskController);
-          },
-          throwIfCancelled: () => {
-            validateActive(internalTaskController.signal);
-          }
-        })
-      ));
-    } catch (listenerError) {
-      if (!(listenerError instanceof TaskAbortError)) {
-        safelyNotifyError(onError, listenerError, {
-          raisedBy: "effect"
-        });
-      }
-    } finally {
-      await Promise.all(autoJoinPromises);
-      internalTaskController.abort(listenerCompleted);
-      untrackExecutingListener(entry);
-      entry.pending.delete(internalTaskController);
-    }
-  };
-  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);
-  const middleware = (api) => (next) => (action) => {
-    if (!isAction(action)) {
-      return next(action);
-    }
-    if (addListener.match(action)) {
-      return startListening(action.payload);
-    }
-    if (clearAllListeners.match(action)) {
-      clearListenerMiddleware();
-      return;
-    }
-    if (removeListener.match(action)) {
-      return stopListening(action.payload);
-    }
-    let originalState = api.getState();
-    const getOriginalState = () => {
-      if (originalState === INTERNAL_NIL_TOKEN) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(23) : `${alm}: getOriginalState can only be called synchronously`);
-      }
-      return originalState;
-    };
-    let result;
-    try {
-      result = next(action);
-      if (listenerMap.size > 0) {
-        const currentState = api.getState();
-        const listenerEntries = Array.from(listenerMap.values());
-        for (const entry of listenerEntries) {
-          let runListener = false;
-          try {
-            runListener = entry.predicate(action, currentState, originalState);
-          } catch (predicateError) {
-            runListener = false;
-            safelyNotifyError(onError, predicateError, {
-              raisedBy: "predicate"
-            });
-          }
-          if (!runListener) {
-            continue;
-          }
-          notifyListener(entry, action, api, getOriginalState);
-        }
-      }
-    } finally {
-      originalState = INTERNAL_NIL_TOKEN;
-    }
-    return result;
-  };
-  return {
-    middleware,
-    startListening,
-    stopListening,
-    clearListeners: clearListenerMiddleware
-  };
-};
-
-// src/dynamicMiddleware/index.ts
-var createMiddlewareEntry = (middleware) => ({
-  middleware,
-  applied: /* @__PURE__ */ new Map()
-});
-var matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;
-var createDynamicMiddleware = () => {
-  const instanceId = nanoid();
-  const middlewareMap = /* @__PURE__ */ new Map();
-  const withMiddleware = Object.assign(createAction("dynamicMiddleware/add", (...middlewares) => ({
-    payload: middlewares,
-    meta: {
-      instanceId
-    }
-  })), {
-    withTypes: () => withMiddleware
-  });
-  const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {
-    middlewares.forEach((middleware2) => {
-      getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);
-    });
-  }, {
-    withTypes: () => addMiddleware
-  });
-  const getFinalMiddleware = (api) => {
-    const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));
-    return compose(...appliedMiddleware);
-  };
-  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));
-  const middleware = (api) => (next) => (action) => {
-    if (isWithMiddleware(action)) {
-      addMiddleware(...action.payload);
-      return api.dispatch;
-    }
-    return getFinalMiddleware(api)(next)(action);
-  };
-  return {
-    middleware,
-    addMiddleware,
-    withMiddleware,
-    instanceId
-  };
-};
-
-// src/combineSlices.ts
-import { combineReducers as combineReducers2 } from "redux";
-var isSliceLike = (maybeSliceLike) => "reducerPath" in maybeSliceLike && typeof maybeSliceLike.reducerPath === "string";
-var getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));
-var ORIGINAL_STATE = Symbol.for("rtk-state-proxy-original");
-var isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];
-var stateProxyMap = /* @__PURE__ */ new WeakMap();
-var createStateProxy = (state, reducerMap, initialStateCache) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {
-  get: (target, prop, receiver) => {
-    if (prop === ORIGINAL_STATE) return target;
-    const result = Reflect.get(target, prop, receiver);
-    if (typeof result === "undefined") {
-      const cached = initialStateCache[prop];
-      if (typeof cached !== "undefined") return cached;
-      const reducer = reducerMap[prop];
-      if (reducer) {
-        const reducerResult = reducer(void 0, {
-          type: nanoid()
-        });
-        if (typeof reducerResult === "undefined") {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(24) : `The slice reducer for key "${prop.toString()}" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-        }
-        initialStateCache[prop] = reducerResult;
-        return reducerResult;
-      }
-    }
-    return result;
-  }
-}));
-var original = (state) => {
-  if (!isStateProxy(state)) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(25) : "original must be used on state Proxy");
-  }
-  return state[ORIGINAL_STATE];
-};
-var emptyObject = {};
-var noopReducer = (state = emptyObject) => state;
-function combineSlices(...slices) {
-  const reducerMap = Object.fromEntries(getReducers(slices));
-  const getReducer = () => Object.keys(reducerMap).length ? combineReducers2(reducerMap) : noopReducer;
-  let reducer = getReducer();
-  function combinedReducer(state, action) {
-    return reducer(state, action);
-  }
-  combinedReducer.withLazyLoadedSlices = () => combinedReducer;
-  const initialStateCache = {};
-  const inject = (slice, config = {}) => {
-    const {
-      reducerPath,
-      reducer: reducerToInject
-    } = slice;
-    const currentReducer = reducerMap[reducerPath];
-    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {
-      if (typeof process !== "undefined" && process.env.NODE_ENV === "development") {
-        console.error(`called \`inject\` to override already-existing reducer ${reducerPath} without specifying \`overrideExisting: true\``);
-      }
-      return combinedReducer;
-    }
-    if (config.overrideExisting && currentReducer !== reducerToInject) {
-      delete initialStateCache[reducerPath];
-    }
-    reducerMap[reducerPath] = reducerToInject;
-    reducer = getReducer();
-    return combinedReducer;
-  };
-  const selector = Object.assign(function makeSelector(selectorFn, selectState) {
-    return function selector2(state, ...args) {
-      return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap, initialStateCache), ...args);
-    };
-  }, {
-    original
-  });
-  return Object.assign(combinedReducer, {
-    inject,
-    selector
-  });
-}
-
-// src/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-export {
-  ReducerType,
-  SHOULD_AUTOBATCH,
-  TaskAbortError,
-  Tuple,
-  addListener,
-  asyncThunkCreator,
-  autoBatchEnhancer,
-  buildCreateSlice,
-  clearAllListeners,
-  combineSlices,
-  configureStore,
-  createAction,
-  createActionCreatorInvariantMiddleware,
-  createAsyncThunk,
-  createDraftSafeSelector,
-  createDraftSafeSelectorCreator,
-  createDynamicMiddleware,
-  createEntityAdapter,
-  createImmutableStateInvariantMiddleware,
-  createListenerMiddleware,
-  produce as createNextState,
-  createReducer,
-  createSelector,
-  createSelectorCreator,
-  createSerializableStateInvariantMiddleware,
-  createSlice,
-  current,
-  findNonSerializableValue,
-  formatProdErrorMessage,
-  freeze,
-  isActionCreator,
-  isAllOf,
-  isAnyOf,
-  isAsyncThunkAction,
-  isDraft,
-  isFSA as isFluxStandardAction,
-  isFulfilled,
-  isImmutableDefault,
-  isPending,
-  isPlain,
-  isRejected,
-  isRejectedWithValue,
-  lruMemoize,
-  miniSerializeError,
-  nanoid,
-  original2 as original,
-  prepareAutoBatched,
-  removeListener,
-  unwrapResult,
-  weakMapMemoize
-};
-//# sourceMappingURL=redux-toolkit.modern.mjs.map
Index: de_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/index.ts","../src/immerImports.ts","../src/reselectImports.ts","../src/createDraftSafeSelector.ts","../src/reduxImports.ts","../src/devtoolsExtension.ts","../src/getDefaultMiddleware.ts","../src/tsHelpers.ts","../src/createAction.ts","../src/actionCreatorInvariantMiddleware.ts","../src/utils.ts","../src/immutableStateInvariantMiddleware.ts","../src/serializableStateInvariantMiddleware.ts","../src/autoBatchEnhancer.ts","../src/getDefaultEnhancers.ts","../src/configureStore.ts","../src/mapBuilders.ts","../src/createReducer.ts","../src/matchers.ts","../src/nanoid.ts","../src/createAsyncThunk.ts","../src/createSlice.ts","../src/entities/entity_state.ts","../src/entities/state_selectors.ts","../src/entities/state_adapter.ts","../src/entities/utils.ts","../src/entities/unsorted_state_adapter.ts","../src/entities/sorted_state_adapter.ts","../src/entities/create_adapter.ts","../src/listenerMiddleware/exceptions.ts","../src/listenerMiddleware/utils.ts","../src/listenerMiddleware/task.ts","../src/listenerMiddleware/index.ts","../src/dynamicMiddleware/index.ts","../src/combineSlices.ts","../src/formatProdErrorMessage.ts"],"sourcesContent":["// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';","export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';","export { createSelectorCreator, weakMapMemoize } from 'reselect';","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n  Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n  (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n  match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n  return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n  __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n  return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n  /**\n   * The function to identify whether a value is an action creator.\n   * The default checks for a function with a static type property and match method.\n   */\n  isActionCreator?: (action: unknown) => action is Function & {\n    type?: unknown;\n  };\n}\nexport function getMessage(type?: unknown) {\n  const splitType = type ? `${type}`.split('/') : [];\n  const actionName = splitType[splitType.length - 1] || 'actionCreator';\n  return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  }\n  const {\n    isActionCreator = isRTKAction\n  } = options;\n  return () => next => action => {\n    if (isActionCreator(action)) {\n      console.warn(getMessage(action.type));\n    }\n    return next(action);\n  };\n}","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseLike<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  let resolve: any;\n  let reject: any;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return {\n    promise,\n    resolve,\n    reject\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n  return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n  return {\n    detectMutations() {\n      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n    }\n  };\n}\ninterface TrackedProperty {\n  value: any;\n  children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n  const tracked: Partial<TrackedProperty> = {\n    value: obj\n  };\n  if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n    checkedObjects.add(obj);\n    tracked.children = {};\n    const hasIgnoredPaths = ignoredPaths.length > 0;\n    for (const key in obj) {\n      const nestedPath = path ? path + '.' + key : key;\n      if (hasIgnoredPaths) {\n        const hasMatches = ignoredPaths.some(ignored => {\n          if (ignored instanceof RegExp) {\n            return ignored.test(nestedPath);\n          }\n          return nestedPath === ignored;\n        });\n        if (hasMatches) {\n          continue;\n        }\n      }\n      tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n    }\n  }\n  return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n  wasMutated: boolean;\n  path?: string;\n} {\n  const prevObj = trackedProperty ? trackedProperty.value : undefined;\n  const sameRef = prevObj === obj;\n  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n    return {\n      wasMutated: true,\n      path\n    };\n  }\n  if (isImmutable(prevObj) || isImmutable(obj)) {\n    return {\n      wasMutated: false\n    };\n  }\n\n  // Gather all keys from prev (tracked) and after objs\n  const keysToDetect: Record<string, boolean> = {};\n  for (let key in trackedProperty.children) {\n    keysToDetect[key] = true;\n  }\n  for (let key in obj) {\n    keysToDetect[key] = true;\n  }\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (let key in keysToDetect) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n    if (result.wasMutated) {\n      return result;\n    }\n  }\n  return {\n    wasMutated: false\n  };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n  /**\n    Callback function to check if a value is considered to be immutable.\n    This function is applied recursively to every value contained in the state.\n    The default implementation will return true for primitive types\n    (like numbers, strings, booleans, null and undefined).\n   */\n  isImmutable?: IsImmutableFunc;\n  /**\n    An array of dot-separated path strings that match named nodes from\n    the root state to ignore when checking for immutability.\n    Defaults to undefined\n   */\n  ignoredPaths?: IgnorePaths;\n  /** Print a warning if checks take longer than N ms. Default: 32ms */\n  warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n      return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n    }\n    function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n      let stack: any[] = [],\n        keys: any[] = [];\n      if (!decycler) decycler = function (_: string, value: any) {\n        if (stack[0] === value) return '[Circular ~]';\n        return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n      };\n      return function (this: any, key: string, value: any) {\n        if (stack.length > 0) {\n          var thisPos = stack.indexOf(this);\n          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n          if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n        } else stack.push(value);\n        return serializer == null ? value : serializer.call(this, key, value);\n      };\n    }\n    let {\n      isImmutable = isImmutableDefault,\n      ignoredPaths,\n      warnAfter = 32\n    } = options;\n    const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n    return ({\n      getState\n    }) => {\n      let state = getState();\n      let tracker = track(state);\n      let result;\n      return next => action => {\n        const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        const dispatchedAction = next(action);\n        measureUtils.measureTime(() => {\n          state = getState();\n          result = tracker.detectMutations();\n          // Track before potentially not meeting the invariant\n          tracker = track(state);\n          if (result.wasMutated) {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n        return dispatchedAction;\n      };\n    };\n  }\n}","import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n  const type = typeof val;\n  return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n  keyPath: string;\n  value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n  let foundNestedSerializable: NonSerializableValue | false;\n  if (!isSerializable(value)) {\n    return {\n      keyPath: path || '<root>',\n      value: value\n    };\n  }\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n  if (cache?.has(value)) return false;\n  const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n  const hasIgnoredPaths = ignoredPaths.length > 0;\n  for (const [key, nestedValue] of entries) {\n    const nestedPath = path ? path + '.' + key : key;\n    if (hasIgnoredPaths) {\n      const hasMatches = ignoredPaths.some(ignored => {\n        if (ignored instanceof RegExp) {\n          return ignored.test(nestedPath);\n        }\n        return nestedPath === ignored;\n      });\n      if (hasMatches) {\n        continue;\n      }\n    }\n    if (!isSerializable(nestedValue)) {\n      return {\n        keyPath: nestedPath,\n        value: nestedValue\n      };\n    }\n    if (typeof nestedValue === 'object') {\n      foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n      if (foundNestedSerializable) {\n        return foundNestedSerializable;\n      }\n    }\n  }\n  if (cache && isNestedFrozen(value)) cache.add(value);\n  return false;\n}\nexport function isNestedFrozen(value: object) {\n  if (!Object.isFrozen(value)) return false;\n  for (const nestedValue of Object.values(value)) {\n    if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n    if (!isNestedFrozen(nestedValue)) return false;\n  }\n  return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n  /**\n   * The function to check if a value is considered serializable. This\n   * function is applied recursively to every value contained in the\n   * state. Defaults to `isPlain()`.\n   */\n  isSerializable?: (value: any) => boolean;\n  /**\n   * The function that will be used to retrieve entries from each\n   * value.  If unspecified, `Object.entries` will be used. Defaults\n   * to `undefined`.\n   */\n  getEntries?: (value: any) => [string, any][];\n\n  /**\n   * An array of action types to ignore when checking for serializability.\n   * Defaults to []\n   */\n  ignoredActions?: string[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to\n   * ['meta.arg', 'meta.baseQueryMeta']\n   */\n  ignoredActionPaths?: (string | RegExp)[];\n\n  /**\n   * An array of dot-separated path strings or regular expressions to ignore\n   * when checking for serializability, Defaults to []\n   */\n  ignoredPaths?: (string | RegExp)[];\n  /**\n   * Execution time warning threshold. If the middleware takes longer\n   * than `warnAfter` ms, a warning will be displayed in the console.\n   * Defaults to 32ms.\n   */\n  warnAfter?: number;\n\n  /**\n   * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n   */\n  ignoreState?: boolean;\n\n  /**\n   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n   */\n  ignoreActions?: boolean;\n\n  /**\n   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n   * The cache is automatically disabled if no browser support for WeakSet is present.\n   */\n  disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n  if (process.env.NODE_ENV === 'production') {\n    return () => next => action => next(action);\n  } else {\n    const {\n      isSerializable = isPlain,\n      getEntries,\n      ignoredActions = [],\n      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n      ignoredPaths = [],\n      warnAfter = 32,\n      ignoreState = false,\n      ignoreActions = false,\n      disableCache = false\n    } = options;\n    const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n    return storeAPI => next => action => {\n      if (!isAction(action)) {\n        return next(action);\n      }\n      const result = next(action);\n      const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n      if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n        measureUtils.measureTime(() => {\n          const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n          if (foundActionNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundActionNonSerializableValue;\n            console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n          }\n        });\n      }\n      if (!ignoreState) {\n        measureUtils.measureTime(() => {\n          const state = storeAPI.getState();\n          const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n          if (foundStateNonSerializableValue) {\n            const {\n              keyPath,\n              value\n            } = foundStateNonSerializableValue;\n            console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n          }\n        });\n        measureUtils.warnIfExceeded();\n      }\n      return result;\n    };\n  }\n}","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * Whether to check for duplicate middleware instances. Defaults to `true`.\n   */\n  duplicateMiddlewareCheck?: boolean;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    duplicateMiddlewareCheck = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n    let middlewareReferences = new Set<Middleware<any, S>>();\n    finalMiddleware.forEach(middleware => {\n      if (middlewareReferences.has(middleware)) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n      }\n      middlewareReferences.add(middleware);\n    });\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n   * @remarks\n   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param asyncThunk - The async thunk action creator itself.\n   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n   * @example\n  ```ts no-transpile\n  import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n  const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n  const response = await fetch(`https://reqres.in/api/users/${id}`)\n  return (await response.json()).data\n  })\n  const reducer = createReducer(initialState, (builder) => {\n  builder.addAsyncThunk(fetchUserById, {\n    pending: (state, action) => {\n      state.fetchUserById.loading = 'pending'\n    },\n    fulfilled: (state, action) => {\n      state.fetchUserById.data = action.payload\n    },\n    rejected: (state, action) => {\n      state.fetchUserById.error = action.error\n    },\n    settled: (state, action) => {\n      state.fetchUserById.loading = action.meta.requestStatus\n    },\n  })\n  })\n   */\n  addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n      if (process.env.NODE_ENV !== 'production') {\n        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n      if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n      if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n      if (reducers.settled) actionMatchers.push({\n        matcher: asyncThunk.settled,\n        reducer: reducers.settled\n      });\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n  if (hasMatchFunction(matcher)) {\n    return matcher.match(action);\n  } else {\n    return matcher(action);\n  }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n    return matchers.some(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n  return (action: any): action is ActionMatchingAllOf<Matchers> => {\n    return matchers.every(matcher => matches(matcher, action));\n  };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n  if (!action || !action.meta) return false;\n  const hasValidRequestId = typeof action.meta.requestId === 'string';\n  const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n  return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n  return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isPending()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejected()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n  rejectValue: infer RejectedValue;\n}> ? {\n  payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  const hasFlag = (action: any): action is any => {\n    return action && action.meta && action.meta.rejectedWithValue;\n  };\n  if (asyncThunks.length === 0) {\n    return isAllOf(isRejected(...asyncThunks), hasFlag);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isRejectedWithValue()(asyncThunks[0]);\n  }\n  return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isFulfilled()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n  pending: {\n    match: (action: any) => action is any;\n  };\n  fulfilled: {\n    match: (action: any) => action is any;\n  };\n  rejected: {\n    match: (action: any) => action is any;\n  };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n  if (asyncThunks.length === 0) {\n    return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n  }\n  if (!isAsyncThunkArray(asyncThunks)) {\n    return isAsyncThunkAction()(asyncThunks[0]);\n  }\n  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\n *\n * @public\n */\nexport let nanoid = (size = 21) => {\n  let id = '';\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size;\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};","import type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n  dispatch: D;\n  getState: () => S;\n  extra: E;\n  requestId: string;\n  signal: AbortSignal;\n  abort: (reason?: string) => void;\n  rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n  fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n  name?: string;\n  message?: string;\n  stack?: string;\n  code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'RejectWithValue';\n  constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n  /*\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\n  does not exist at runtime\n  */\n  private readonly _type!: 'FulfillWithMeta';\n  constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n  if (typeof value === 'object' && value !== null) {\n    const simpleError: SerializedError = {};\n    for (const property of commonProperties) {\n      if (typeof value[property] === 'string') {\n        simpleError[property] = value[property];\n      }\n    }\n    return simpleError;\n  }\n  return {\n    message: String(value)\n  };\n};\nexport type AsyncThunkConfig = {\n  state?: unknown;\n  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n  extra?: unknown;\n  rejectValue?: unknown;\n  serializedErrorType?: unknown;\n  pendingMeta?: unknown;\n  fulfilledMeta?: unknown;\n  rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n  state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n  extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n  dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n  rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n  serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n  abort: (reason?: string) => void;\n  requestId: string;\n  arg: ThunkArg;\n  unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n  /**\n   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n   */\n  signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  /**\n   * A method to control whether the asyncThunk should be executed. Has access to the\n   * `arg`, `api.getState()` and `api.extra` arguments.\n   *\n   * @returns `false` if it should be skipped\n   */\n  condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n  /**\n   * If `condition` returns `false`, the asyncThunk will be skipped.\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\n   * will be dispatched or not.\n   *\n   * @default `false`\n   */\n  dispatchConditionRejection?: boolean;\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n  /**\n   * A function to use when generating the `requestId` for the request sequence.\n   *\n   * @default `nanoid`\n   */\n  idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   *\n   * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n   * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n   */\n  getPendingMeta?(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n  /**\n   * A method to generate additional properties to be added to `meta` of the pending action.\n   */\n  getPendingMeta(base: {\n    arg: ThunkArg;\n    requestId: string;\n  }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'rejected';\n  aborted: boolean;\n  condition: boolean;\n} & (({\n  rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n  rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n  arg: ThunkArg;\n  requestId: string;\n  requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n  fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n  // matchSettled?\n  settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n  typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  // separate signature without `AsyncThunkConfig` for better inference\n  <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n  /**\n   *\n   * @param typePrefix\n   * @param payloadCreator\n   * @param options\n   *\n   * @public\n   */\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n  function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n    type RejectedValue = GetRejectValue<ThunkApiConfig>;\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n    const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n      payload,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'fulfilled' as const\n      }\n    }));\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n      payload: undefined,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        requestStatus: 'pending' as const\n      }\n    }));\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n      payload,\n      error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n      meta: {\n        ...(meta as any || {}),\n        arg,\n        requestId,\n        rejectedWithValue: !!payload,\n        requestStatus: 'rejected' as const,\n        aborted: error?.name === 'AbortError',\n        condition: error?.name === 'ConditionError'\n      }\n    }));\n    function actionCreator(arg: ThunkArg, {\n      signal\n    }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n      return (dispatch, getState, extra) => {\n        const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n        const abortController = new AbortController();\n        let abortHandler: (() => void) | undefined;\n        let abortReason: string | undefined;\n        function abort(reason?: string) {\n          abortReason = reason;\n          abortController.abort();\n        }\n        if (signal) {\n          if (signal.aborted) {\n            abort(externalAbortMessage);\n          } else {\n            signal.addEventListener('abort', () => abort(externalAbortMessage), {\n              once: true\n            });\n          }\n        }\n        const promise = async function () {\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n          try {\n            let conditionResult = options?.condition?.(arg, {\n              getState,\n              extra\n            });\n            if (isThenable(conditionResult)) {\n              conditionResult = await conditionResult;\n            }\n            if (conditionResult === false || abortController.signal.aborted) {\n              // eslint-disable-next-line no-throw-literal\n              throw {\n                name: 'ConditionError',\n                message: 'Aborted due to condition callback returning false.'\n              };\n            }\n            const abortedPromise = new Promise<never>((_, reject) => {\n              abortHandler = () => {\n                reject({\n                  name: 'AbortError',\n                  message: abortReason || 'Aborted'\n                });\n              };\n              abortController.signal.addEventListener('abort', abortHandler, {\n                once: true\n              });\n            });\n            dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n              requestId,\n              arg\n            }, {\n              getState,\n              extra\n            })) as any);\n            finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n              dispatch,\n              getState,\n              extra,\n              requestId,\n              signal: abortController.signal,\n              abort,\n              rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n                return new RejectWithValue(value, meta);\n              }) as any,\n              fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n                return new FulfillWithMeta(value, meta);\n              }) as any\n            })).then(result => {\n              if (result instanceof RejectWithValue) {\n                throw result;\n              }\n              if (result instanceof FulfillWithMeta) {\n                return fulfilled(result.payload, requestId, arg, result.meta);\n              }\n              return fulfilled(result as any, requestId, arg);\n            })]);\n          } catch (err) {\n            finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n          } finally {\n            if (abortHandler) {\n              abortController.signal.removeEventListener('abort', abortHandler);\n            }\n          }\n          // We dispatch the result action _after_ the catch, to avoid having any errors\n          // here get swallowed by the try/catch block,\n          // per https://twitter.com/dan_abramov/status/770914221638942720\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n          const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n          if (!skipDispatch) {\n            dispatch(finalAction as any);\n          }\n          return finalAction;\n        }();\n        return Object.assign(promise as SafePromise<any>, {\n          abort,\n          requestId,\n          arg,\n          unwrap() {\n            return promise.then<any>(unwrapResult);\n          }\n        });\n      };\n    }\n    return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n      pending,\n      rejected,\n      fulfilled,\n      settled: isAnyOf(rejected, fulfilled),\n      typePrefix\n    });\n  }\n  createAsyncThunk.withTypes = () => createAsyncThunk;\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n  payload: any;\n  meta?: any;\n  error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n  error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n  if (action.meta && action.meta.rejectedWithValue) {\n    throw action.payload;\n  }\n  if (action.error) {\n    throw action.error;\n  }\n  return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n  return value !== null && typeof value === 'object' && typeof value.then === 'function';\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import type { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n  return {\n    ids: [],\n    entities: {} as Record<Id, T>\n  };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n  function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n  function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n  function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n    const state = Object.assign(getInitialEntityState(), additionalState);\n    return entities ? stateAdapter.setAll(state, entities) : state;\n  }\n  return {\n    getInitialState\n  };\n}","import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n  createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n  function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n  function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n  function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n    const {\n      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n    } = options;\n    const selectIds = (state: EntityState<T, Id>) => state.ids;\n    const selectEntities = (state: EntityState<T, Id>) => state.entities;\n    const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n    const selectId = (_: unknown, id: Id) => id;\n    const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n    const selectTotal = createSelector(selectIds, ids => ids.length);\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n        selectById: createSelector(selectEntities, selectId, selectById)\n      };\n    }\n    const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: selectGlobalizedEntities,\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n      selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n    };\n  }\n  return {\n    getSelectors\n  };\n}","import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n  const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n  return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n    return operator(state as S, undefined);\n  };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n  return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n    function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n      return isFSA(arg);\n    }\n    const runMutator = (draft: DraftableEntityState<T, Id>) => {\n      if (isPayloadActionArgument(arg)) {\n        mutator(arg.payload, draft);\n      } else {\n        mutator(arg, draft);\n      }\n    };\n    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n      // we must already be inside a `createNextState` call, likely because\n      // this is being wrapped in `createReducer` or `createSlice`.\n      // It's safe to just pass the draft to the mutator.\n      runMutator(state);\n\n      // since it's a draft, we'll just return it\n      return state;\n    }\n    return createNextState(state, runMutator);\n  };\n}","import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n  const key = selectId(entity);\n  if (process.env.NODE_ENV !== 'production' && key === undefined) {\n    console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n  }\n  return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n  if (!Array.isArray(entities)) {\n    entities = Object.values(entities);\n  }\n  return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n  return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n  newEntities = ensureEntitiesArray(newEntities);\n  const existingIdsArray = getCurrent(state.ids);\n  const existingIds = new Set<Id>(existingIdsArray);\n  const added: T[] = [];\n  const addedIds = new Set<Id>([]);\n  const updated: Update<T, Id>[] = [];\n  for (const entity of newEntities) {\n    const id = selectIdValue(entity, selectId);\n    if (existingIds.has(id) || addedIds.has(id)) {\n      updated.push({\n        id,\n        changes: entity\n      });\n    } else {\n      addedIds.add(id);\n      added.push(entity);\n    }\n  }\n  return [added, updated, existingIdsArray];\n}","import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  function addOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (key in state.entities) {\n      return;\n    }\n    state.ids.push(key as Id & Draft<Id>);\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      addOneMutably(entity, state);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    const key = selectIdValue(entity, selectId);\n    if (!(key in state.entities)) {\n      state.ids.push(key as Id & Draft<Id>);\n    }\n    ;\n    (state.entities as Record<Id, T>)[key] = entity;\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    for (const entity of newEntities) {\n      setOneMutably(entity, state);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.ids = [];\n    state.entities = {} as Record<Id, T>;\n    addManyMutably(newEntities, state);\n  }\n  function removeOneMutably(key: Id, state: R): void {\n    return removeManyMutably([key], state);\n  }\n  function removeManyMutably(keys: readonly Id[], state: R): void {\n    let didMutate = false;\n    keys.forEach(key => {\n      if (key in state.entities) {\n        delete (state.entities as Record<Id, T>)[key];\n        didMutate = true;\n      }\n    });\n    if (didMutate) {\n      state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n    }\n  }\n  function removeAllMutably(state: R): void {\n    Object.assign(state, {\n      ids: [],\n      entities: {}\n    });\n  }\n  function takeNewKey(keys: {\n    [id: string]: Id;\n  }, update: Update<T, Id>, state: R): boolean {\n    const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n    if (original === undefined) {\n      return false;\n    }\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete (state.entities as Record<Id, T>)[update.id];\n    }\n    ;\n    (state.entities as Record<Id, T>)[newKey] = updated;\n    return hasNewKey;\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    const newKeys: {\n      [id: string]: Id;\n    } = {};\n    const updatesPerEntity: {\n      [id: string]: Update<T, Id>;\n    } = {};\n    updates.forEach(update => {\n      // Only apply updates to entities that currently exist\n      if (update.id in state.entities) {\n        // If there are multiple updates to one entity, merge them together\n        updatesPerEntity[update.id] = {\n          id: update.id,\n          // Spreads ignore falsy values, so this works even if there isn't\n          // an existing update already at this key\n          changes: {\n            ...updatesPerEntity[update.id]?.changes,\n            ...update.changes\n          }\n        };\n      }\n    });\n    updates = Object.values(updatesPerEntity);\n    const didMutateEntities = updates.length > 0;\n    if (didMutateEntities) {\n      const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n      if (didMutateIds) {\n        state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n      }\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    addManyMutably(added, state);\n    updateManyMutably(updated, state);\n  }\n  return {\n    removeAll: createSingleArgumentStateOperator(removeAllMutably),\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably)\n  };\n}","import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n  let lowIndex = 0;\n  let highIndex = sortedItems.length;\n  while (lowIndex < highIndex) {\n    let middleIndex = lowIndex + highIndex >>> 1;\n    const currentItem = sortedItems[middleIndex];\n    const res = comparisonFunction(item, currentItem);\n    if (res >= 0) {\n      lowIndex = middleIndex + 1;\n    } else {\n      highIndex = middleIndex;\n    }\n  }\n  return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n  sortedItems.splice(insertAtIndex, 0, item);\n  return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n  type R = DraftableEntityState<T, Id>;\n  const {\n    removeOne,\n    removeMany,\n    removeAll\n  } = createUnsortedStateAdapter(selectId);\n  function addOneMutably(entity: T, state: R): void {\n    return addManyMutably([entity], state);\n  }\n  function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n    const addedKeys = new Set<Id>();\n    const models = newEntities.filter(model => {\n      const modelId = selectIdValue(model, selectId);\n      const notAdded = !addedKeys.has(modelId);\n      if (notAdded) addedKeys.add(modelId);\n      return !existingKeys.has(modelId) && notAdded;\n    });\n    if (models.length !== 0) {\n      mergeFunction(state, models);\n    }\n  }\n  function setOneMutably(entity: T, state: R): void {\n    return setManyMutably([entity], state);\n  }\n  function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    let deduplicatedEntities = {} as Record<Id, T>;\n    newEntities = ensureEntitiesArray(newEntities);\n    if (newEntities.length !== 0) {\n      for (const item of newEntities) {\n        const entityId = selectId(item);\n        // For multiple items with the same ID, we should keep the last one.\n        deduplicatedEntities[entityId] = item;\n        delete (state.entities as Record<Id, T>)[entityId];\n      }\n      newEntities = ensureEntitiesArray(deduplicatedEntities);\n      mergeFunction(state, newEntities);\n    }\n  }\n  function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    newEntities = ensureEntitiesArray(newEntities);\n    state.entities = {} as Record<Id, T>;\n    state.ids = [];\n    addManyMutably(newEntities, state, []);\n  }\n  function updateOneMutably(update: Update<T, Id>, state: R): void {\n    return updateManyMutably([update], state);\n  }\n  function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n    let appliedUpdates = false;\n    let replacedIds = false;\n    for (let update of updates) {\n      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n      if (!entity) {\n        continue;\n      }\n      appliedUpdates = true;\n      Object.assign(entity, update.changes);\n      const newId = selectId(entity);\n      if (update.id !== newId) {\n        // We do support the case where updates can change an item's ID.\n        // This makes things trickier - go ahead and swap the IDs in state now.\n        replacedIds = true;\n        delete (state.entities as Record<Id, T>)[update.id];\n        const oldIndex = (state.ids as Id[]).indexOf(update.id);\n        state.ids[oldIndex] = newId;\n        (state.entities as Record<Id, T>)[newId] = entity;\n      }\n    }\n    if (appliedUpdates) {\n      mergeFunction(state, [], appliedUpdates, replacedIds);\n    }\n  }\n  function upsertOneMutably(entity: T, state: R): void {\n    return upsertManyMutably([entity], state);\n  }\n  function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n    if (added.length) {\n      addManyMutably(added, state, existingIdsArray);\n    }\n    if (updated.length) {\n      updateManyMutably(updated, state);\n    }\n  }\n  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] === b[i]) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n  const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n    const currentEntities = getCurrent(state.entities);\n    const currentIds = getCurrent(state.ids);\n    const stateEntities = state.entities as Record<Id, T>;\n    let ids: Iterable<Id> = currentIds;\n    if (replacedIds) {\n      ids = new Set(currentIds);\n    }\n    let sortedEntities: T[] = [];\n    for (const id of ids) {\n      const entity = currentEntities[id];\n      if (entity) {\n        sortedEntities.push(entity);\n      }\n    }\n    const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n    // Insert/overwrite all new/updated\n    for (const item of addedItems) {\n      stateEntities[selectId(item)] = item;\n      if (!wasPreviouslyEmpty) {\n        // Binary search insertion generally requires fewer comparisons\n        insert(sortedEntities, item, comparer);\n      }\n    }\n    if (wasPreviouslyEmpty) {\n      // All we have is the incoming values, sort them\n      sortedEntities = addedItems.slice().sort(comparer);\n    } else if (appliedUpdates) {\n      // We should have a _mostly_-sorted array already\n      sortedEntities.sort(comparer);\n    }\n    const newSortedIds = sortedEntities.map(selectId);\n    if (!areArraysEqual(currentIds, newSortedIds)) {\n      state.ids = newSortedIds;\n    }\n  };\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably)\n  };\n}","import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n  id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n  const {\n    selectId,\n    sortComparer\n  }: Required<EntityAdapterOptions<T, EntityId>> = {\n    sortComparer: false,\n    selectId: (instance: any) => instance.id,\n    ...options\n  };\n  const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n  const stateFactory = createInitialStateFactory(stateAdapter);\n  const selectorsFactory = createSelectorsFactory<T, EntityId>();\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter\n  };\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n  if (typeof func !== 'function') {\n    throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n  }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n  promise.catch(onError);\n  return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n  abortSignal.addEventListener('abort', callback, {\n    once: true\n  });\n  return () => abortSignal.removeEventListener('abort', callback);\n};","import { TaskAbortError } from './exceptions';\nimport type { TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    throw new TaskAbortError(signal.reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignal, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => childAbortController.abort(taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        childAbortController.abort(taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    controller.abort(listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n  return () => {\n    for (const listener of executingListeners.keys()) {\n      cancelActiveListeners(listener);\n    }\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n\n  // Track listeners whose effect is currently executing so clearListeners can\n  // abort even listeners that have become unsubscribed while executing.\n  const executingListeners = new Map<ListenerEntry, number>();\n  const trackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 0;\n    executingListeners.set(entry, count + 1);\n  };\n  const untrackExecutingListener = (entry: ListenerEntry) => {\n    const count = executingListeners.get(entry) ?? 1;\n    if (count === 1) {\n      executingListeners.delete(entry);\n    } else {\n      executingListeners.set(entry, count - 1);\n    }\n  };\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      trackExecutingListener(entry);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              controller.abort(listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          internalTaskController.abort(listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      internalTaskController.abort(listenerCompleted); // Notify that the task has completed\n      untrackExecutingListener(entry);\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n  middleware,\n  applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n  meta: {\n    instanceId: string;\n  };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n  const instanceId = nanoid();\n  const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n  const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n    payload: middlewares,\n    meta: {\n      instanceId\n    }\n  })), {\n    withTypes: () => withMiddleware\n  }) as WithMiddleware<State, DispatchType>;\n  const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n    middlewares.forEach(middleware => {\n      getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n    });\n  }, {\n    withTypes: () => addMiddleware\n  }) as AddMiddleware<State, DispatchType>;\n  const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n    const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n    return compose(...appliedMiddleware);\n  };\n  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n  const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n    if (isWithMiddleware(action)) {\n      addMiddleware(...action.payload);\n      return api.dispatch;\n    }\n    return getFinalMiddleware(api)(next)(action);\n  };\n  return {\n    middleware,\n    addMiddleware,\n    withMiddleware,\n    instanceId\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const cached = initialStateCache[prop];\n      if (typeof cached !== 'undefined') return cached;\n      const reducer = reducerMap[prop];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        initialStateCache[prop] = reducerResult;\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n  const reducerMap = Object.fromEntries(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const initialStateCache: Record<PropertyKey, unknown> = {};\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    if (config.overrideExisting && currentReducer !== reducerToInject) {\n      delete initialStateCache[reducerPath];\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}"],"mappings":";AAGA,cAAc;AACd,SAAS,QAAQ,YAAAA,iBAAgB;;;ACJjC,SAAS,SAAS,SAAoB,SAAiB,aAAa,6BAA6B;;;ADOjG,SAAS,gBAAgB,kBAAkB;;;AEP3C,SAAS,uBAAuB,sBAAsB;;;ACE/C,IAAM,iCAA+D,IAAI,SAAoB;AAClG,QAAMC,kBAAkB,sBAA8B,GAAG,IAAI;AAC7D,QAAMC,2BAA0B,OAAO,OAAO,IAAIC,UAAoB;AACpE,UAAM,WAAWF,gBAAe,GAAGE,KAAI;AACvC,UAAM,kBAAkB,CAAC,UAAmB,SAAoB,SAAS,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI,OAAO,GAAG,IAAI;AACzH,WAAO,OAAO,iBAAiB,QAAQ;AACvC,WAAO;AAAA,EACT,GAAG;AAAA,IACD,WAAW,MAAMD;AAAA,EACnB,CAAC;AACD,SAAOA;AACT;AASO,IAAM,0BACb,+CAA+B,cAAc;;;ACvB7C,SAAS,aAAa,iBAAiB,iBAAiB,SAAS,eAAe,gBAAgB;;;ACmNzF,IAAM,sBAA2C,OAAO,WAAW,eAAgB,OAAe,uCAAwC,OAAe,uCAAuC,WAAY;AACjN,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,UAAU,CAAC,MAAM,SAAU,QAAO;AAC7C,SAAO,QAAQ,MAAM,MAAM,SAA8B;AAC3D;AAKO,IAAM,mBAET,OAAO,WAAW,eAAgB,OAAe,+BAAgC,OAAe,+BAA+B,WAAY;AAC7I,SAAO,SAAUE,OAAM;AACrB,WAAOA;AAAA,EACT;AACF;;;AChOA,SAAS,SAAS,iBAAiB,yBAAyB;;;ACqFrD,IAAM,mBAAmB,CAAK,MAA4C;AAC/E,SAAO,KAAK,OAAQ,EAA0B,UAAU;AAC1D;;;AC4GO,SAAS,aAAa,MAAc,eAA+B;AACxE,WAAS,iBAAiB,MAAa;AACrC,QAAI,eAAe;AACjB,UAAI,WAAW,cAAc,GAAG,IAAI;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,wCAAwC;AAAA,MAC/H;AACA,aAAO;AAAA,QACL;AAAA,QACA,SAAS,SAAS;AAAA,QAClB,GAAI,UAAU,YAAY;AAAA,UACxB,MAAM,SAAS;AAAA,QACjB;AAAA,QACA,GAAI,WAAW,YAAY;AAAA,UACzB,OAAO,SAAS;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA,SAAS,KAAK,CAAC;AAAA,IACjB;AAAA,EACF;AACA,gBAAc,WAAW,MAAM,GAAG,IAAI;AACtC,gBAAc,OAAO;AACrB,gBAAc,QAAQ,CAAC,WAA6C,SAAS,MAAM,KAAK,OAAO,SAAS;AACxG,SAAO;AACT;AAKO,SAAS,gBAAgB,QAA0E;AACxG,SAAO,OAAO,WAAW,cAAc,UAAU;AAAA,EAEjD,iBAAiB,MAAa;AAChC;AAKO,SAAS,MAAM,QAKpB;AACA,SAAO,SAAS,MAAM,KAAK,OAAO,KAAK,MAAM,EAAE,MAAM,UAAU;AACjE;AACA,SAAS,WAAW,KAAa;AAC/B,SAAO,CAAC,QAAQ,WAAW,SAAS,MAAM,EAAE,QAAQ,GAAG,IAAI;AAC7D;;;AC7OO,SAAS,WAAW,MAAgB;AACzC,QAAM,YAAY,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACjD,QAAM,aAAa,UAAU,UAAU,SAAS,CAAC,KAAK;AACtD,SAAO,yCAAyC,QAAQ,SAAS;AAAA,kFACe,UAAU,+BAA+B,UAAU;AACrI;AACO,SAAS,uCAAuC,UAAmD,CAAC,GAAe;AACxH,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C;AACA,QAAM;AAAA,IACJ,iBAAAC,mBAAkB;AAAA,EACpB,IAAI;AACJ,SAAO,MAAM,UAAQ,YAAU;AAC7B,QAAIA,iBAAgB,MAAM,GAAG;AAC3B,cAAQ,KAAK,WAAW,OAAO,IAAI,CAAC;AAAA,IACtC;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;;;AC7BO,SAAS,oBAAoB,UAAkB,QAAgB;AACpE,MAAI,UAAU;AACd,SAAO;AAAA,IACL,YAAe,IAAgB;AAC7B,YAAM,UAAU,KAAK,IAAI;AACzB,UAAI;AACF,eAAO,GAAG;AAAA,MACZ,UAAE;AACA,cAAM,WAAW,KAAK,IAAI;AAC1B,mBAAW,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,IACA,iBAAiB;AACf,UAAI,UAAU,UAAU;AACtB,gBAAQ,KAAK,GAAG,MAAM,SAAS,OAAO,mDAAmD,QAAQ;AAAA;AAAA,4EAE7B;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAIO,IAAM,QAAN,MAAM,eAAyD,MAAqB;AAAA,EAGzF,eAAe,OAAc;AAC3B,UAAM,GAAG,KAAK;AACd,WAAO,eAAe,MAAM,OAAM,SAAS;AAAA,EAC7C;AAAA,EACA,YAAqB,OAAO,OAAO,IAAI;AACrC,WAAO;AAAA,EACT;AAAA,EAIS,UAAU,KAAY;AAC7B,WAAO,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EACrC;AAAA,EAIA,WAAW,KAAY;AACrB,QAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,GAAG;AAC7C,aAAO,IAAI,OAAM,GAAG,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAAA,IACzC;AACA,WAAO,IAAI,OAAM,GAAG,IAAI,OAAO,IAAI,CAAC;AAAA,EACtC;AACF;AACO,SAAS,gBAAmB,KAAQ;AACzC,SAAO,YAAY,GAAG,IAAI,QAAgB,KAAK,MAAM;AAAA,EAAC,CAAC,IAAI;AAC7D;AASO,SAAS,oBAAyC,KAAgC,KAAQ,SAA2B;AAC1H,MAAI,IAAI,IAAI,GAAG,EAAG,QAAO,IAAI,IAAI,GAAG;AACpC,SAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG;AAC3C;;;ACtDO,SAAS,mBAAmB,OAAyB;AAC1D,SAAO,OAAO,UAAU,YAAY,SAAS,QAAQ,OAAO,SAAS,KAAK;AAC5E;AACO,SAAS,kBAAkB,aAA8B,cAAuC,KAAU;AAC/G,QAAM,oBAAoB,gBAAgB,aAAa,cAAc,GAAG;AACxE,SAAO;AAAA,IACL,kBAAkB;AAChB,aAAO,gBAAgB,aAAa,cAAc,mBAAmB,GAAG;AAAA,IAC1E;AAAA,EACF;AACF;AAKA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,KAA0B,OAAe,IAAI,iBAA2C,oBAAI,IAAI,GAAG;AACxL,QAAM,UAAoC;AAAA,IACxC,OAAO;AAAA,EACT;AACA,MAAI,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG,GAAG;AACjD,mBAAe,IAAI,GAAG;AACtB,YAAQ,WAAW,CAAC;AACpB,UAAM,kBAAkB,aAAa,SAAS;AAC9C,eAAW,OAAO,KAAK;AACrB,YAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,UAAI,iBAAiB;AACnB,cAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,cAAI,mBAAmB,QAAQ;AAC7B,mBAAO,QAAQ,KAAK,UAAU;AAAA,UAChC;AACA,iBAAO,eAAe;AAAA,QACxB,CAAC;AACD,YAAI,YAAY;AACd;AAAA,QACF;AAAA,MACF;AACA,cAAQ,SAAS,GAAG,IAAI,gBAAgB,aAAa,cAAc,IAAI,GAAG,GAAG,UAAU;AAAA,IACzF;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,aAA8B,eAA4B,CAAC,GAAG,iBAAkC,KAAU,gBAAyB,OAAO,OAAe,IAGhL;AACA,QAAM,UAAU,kBAAkB,gBAAgB,QAAQ;AAC1D,QAAM,UAAU,YAAY;AAC5B,MAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,MAAM,GAAG,GAAG;AACnD,WAAO;AAAA,MACL,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,OAAO,KAAK,YAAY,GAAG,GAAG;AAC5C,WAAO;AAAA,MACL,YAAY;AAAA,IACd;AAAA,EACF;AAGA,QAAM,eAAwC,CAAC;AAC/C,WAAS,OAAO,gBAAgB,UAAU;AACxC,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,WAAS,OAAO,KAAK;AACnB,iBAAa,GAAG,IAAI;AAAA,EACtB;AACA,QAAM,kBAAkB,aAAa,SAAS;AAC9C,WAAS,OAAO,cAAc;AAC5B,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,gBAAgB,aAAa,cAAc,gBAAgB,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,SAAS,UAAU;AACtH,QAAI,OAAO,YAAY;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AAAA,IACL,YAAY;AAAA,EACd;AACF;AAmCO,SAAS,wCAAwC,UAAoD,CAAC,GAAe;AAC1H,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,QAASC,aAAT,SAAmB,KAAU,YAA6B,QAA0B,UAAmC;AACrH,aAAO,KAAK,UAAU,KAAKC,cAAa,YAAY,QAAQ,GAAG,MAAM;AAAA,IACvE,GACSA,gBAAT,SAAsB,YAA6B,UAA2C;AAC5F,UAAI,QAAe,CAAC,GAClB,OAAc,CAAC;AACjB,UAAI,CAAC,SAAU,YAAW,SAAU,GAAW,OAAY;AACzD,YAAI,MAAM,CAAC,MAAM,MAAO,QAAO;AAC/B,eAAO,iBAAiB,KAAK,MAAM,GAAG,MAAM,QAAQ,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;AAAA,MAC1E;AACA,aAAO,SAAqB,KAAa,OAAY;AACnD,YAAI,MAAM,SAAS,GAAG;AACpB,cAAI,UAAU,MAAM,QAAQ,IAAI;AAChC,WAAC,UAAU,MAAM,OAAO,UAAU,CAAC,IAAI,MAAM,KAAK,IAAI;AACtD,WAAC,UAAU,KAAK,OAAO,SAAS,UAAU,GAAG,IAAI,KAAK,KAAK,GAAG;AAC9D,cAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,SAAQ,SAAU,KAAK,MAAM,KAAK,KAAK;AAAA,QACpE,MAAO,OAAM,KAAK,KAAK;AACvB,eAAO,cAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,KAAK,KAAK;AAAA,MACtE;AAAA,IACF;AAnBS,oBAAAD,YAGA,eAAAC;AAiBT,QAAI;AAAA,MACF,cAAc;AAAA,MACd;AAAA,MACA,YAAY;AAAA,IACd,IAAI;AACJ,UAAM,QAAQ,kBAAkB,KAAK,MAAM,aAAa,YAAY;AACpE,WAAO,CAAC;AAAA,MACN;AAAA,IACF,MAAM;AACJ,UAAI,QAAQ,SAAS;AACrB,UAAI,UAAU,MAAM,KAAK;AACzB,UAAI;AACJ,aAAO,UAAQ,YAAU;AACvB,cAAM,eAAe,oBAAoB,WAAW,mCAAmC;AACvF,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,kEAAkE,OAAO,QAAQ,EAAE,2GAA2G;AAAA,UACtR;AAAA,QACF,CAAC;AACD,cAAM,mBAAmB,KAAK,MAAM;AACpC,qBAAa,YAAY,MAAM;AAC7B,kBAAQ,SAAS;AACjB,mBAAS,QAAQ,gBAAgB;AAEjC,oBAAU,MAAM,KAAK;AACrB,cAAI,OAAO,YAAY;AACrB,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,iEAAiE,OAAO,QAAQ,EAAE,uDAAuDD,WAAU,MAAM,CAAC,sEAAsE;AAAA,UACzT;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAC5B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACxLO,SAAS,QAAQ,KAAU;AAChC,QAAM,OAAO,OAAO;AACpB,SAAO,OAAO,QAAQ,SAAS,YAAY,SAAS,aAAa,SAAS,YAAY,MAAM,QAAQ,GAAG,KAAK,cAAc,GAAG;AAC/H;AAUO,SAAS,yBAAyB,OAAgB,OAAe,IAAI,iBAA8C,SAAS,YAAkD,eAA4B,CAAC,GAAG,OAAuD;AAC1Q,MAAI;AACJ,MAAI,CAAC,eAAe,KAAK,GAAG;AAC1B,WAAO;AAAA,MACL,SAAS,QAAQ;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,MAAI,OAAO,IAAI,KAAK,EAAG,QAAO;AAC9B,QAAM,UAAU,cAAc,OAAO,WAAW,KAAK,IAAI,OAAO,QAAQ,KAAK;AAC7E,QAAM,kBAAkB,aAAa,SAAS;AAC9C,aAAW,CAAC,KAAK,WAAW,KAAK,SAAS;AACxC,UAAM,aAAa,OAAO,OAAO,MAAM,MAAM;AAC7C,QAAI,iBAAiB;AACnB,YAAM,aAAa,aAAa,KAAK,aAAW;AAC9C,YAAI,mBAAmB,QAAQ;AAC7B,iBAAO,QAAQ,KAAK,UAAU;AAAA,QAChC;AACA,eAAO,eAAe;AAAA,MACxB,CAAC;AACD,UAAI,YAAY;AACd;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,eAAe,WAAW,GAAG;AAChC,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,OAAO,gBAAgB,UAAU;AACnC,gCAA0B,yBAAyB,aAAa,YAAY,gBAAgB,YAAY,cAAc,KAAK;AAC3H,UAAI,yBAAyB;AAC3B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,eAAe,KAAK,EAAG,OAAM,IAAI,KAAK;AACnD,SAAO;AACT;AACO,SAAS,eAAe,OAAe;AAC5C,MAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,aAAW,eAAe,OAAO,OAAO,KAAK,GAAG;AAC9C,QAAI,OAAO,gBAAgB,YAAY,gBAAgB,KAAM;AAC7D,QAAI,CAAC,eAAe,WAAW,EAAG,QAAO;AAAA,EAC3C;AACA,SAAO;AACT;AAwEO,SAAS,2CAA2C,UAAuD,CAAC,GAAe;AAChI,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO,MAAM,UAAQ,YAAU,KAAK,MAAM;AAAA,EAC5C,OAAO;AACL,UAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,qBAAqB,CAAC,YAAY,oBAAoB;AAAA,MACtD,eAAe,CAAC;AAAA,MAChB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe;AAAA,IACjB,IAAI;AACJ,UAAM,QAAqC,CAAC,gBAAgB,UAAU,oBAAI,QAAQ,IAAI;AACtF,WAAO,cAAY,UAAQ,YAAU;AACnC,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,eAAO,KAAK,MAAM;AAAA,MACpB;AACA,YAAM,SAAS,KAAK,MAAM;AAC1B,YAAM,eAAe,oBAAoB,WAAW,sCAAsC;AAC1F,UAAI,CAAC,iBAAiB,EAAE,eAAe,UAAU,eAAe,QAAQ,OAAO,IAAW,MAAM,KAAK;AACnG,qBAAa,YAAY,MAAM;AAC7B,gBAAM,kCAAkC,yBAAyB,QAAQ,IAAI,gBAAgB,YAAY,oBAAoB,KAAK;AAClI,cAAI,iCAAiC;AACnC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO,4DAA4D,QAAQ,yIAAyI,6HAA6H;AAAA,UAC5b;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,CAAC,aAAa;AAChB,qBAAa,YAAY,MAAM;AAC7B,gBAAM,QAAQ,SAAS,SAAS;AAChC,gBAAM,iCAAiC,yBAAyB,OAAO,IAAI,gBAAgB,YAAY,cAAc,KAAK;AAC1H,cAAI,gCAAgC;AAClC,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI;AACJ,oBAAQ,MAAM,sEAAsE,OAAO,cAAc,OAAO;AAAA,2DACjE,OAAO,IAAI;AAAA,+HACyD;AAAA,UACrH;AAAA,QACF,CAAC;AACD,qBAAa,eAAe;AAAA,MAC9B;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AN3LA,SAAS,UAAU,GAAsB;AACvC,SAAO,OAAO,MAAM;AACtB;AAuBO,IAAM,4BAA4B,MAAyC,SAAS,qBAAqB,SAAS;AACvH,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB,IAAI,WAAW,CAAC;AAChB,MAAI,kBAAkB,IAAI,MAAoB;AAC9C,MAAI,OAAO;AACT,QAAI,UAAU,KAAK,GAAG;AACpB,sBAAgB,KAAK,eAAe;AAAA,IACtC,OAAO;AACL,sBAAgB,KAAK,kBAAkB,MAAM,aAAa,CAAC;AAAA,IAC7D;AAAA,EACF;AACA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,gBAAgB;AAElB,UAAI,mBAA6D,CAAC;AAClE,UAAI,CAAC,UAAU,cAAc,GAAG;AAC9B,2BAAmB;AAAA,MACrB;AACA,sBAAgB,QAAQ,wCAAwC,gBAAgB,CAAC;AAAA,IAEnF;AACA,QAAI,mBAAmB;AACrB,UAAI,sBAAmE,CAAC;AACxE,UAAI,CAAC,UAAU,iBAAiB,GAAG;AACjC,8BAAsB;AAAA,MACxB;AACA,sBAAgB,KAAK,2CAA2C,mBAAmB,CAAC;AAAA,IACtF;AACA,QAAI,oBAAoB;AACtB,UAAI,uBAAgE,CAAC;AACrE,UAAI,CAAC,UAAU,kBAAkB,GAAG;AAClC,+BAAuB;AAAA,MACzB;AACA,sBAAgB,QAAQ,uCAAuC,oBAAoB,CAAC;AAAA,IACtF;AAAA,EACF;AACA,SAAO;AACT;;;AO/EO,IAAM,mBAAmB;AACzB,IAAM,qBAAqB,MAAU,CAAC,aAGvC;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,CAAC,gBAAgB,GAAG;AAAA,EACtB;AACF;AACA,IAAM,uBAAuB,CAAC,YAAoB;AAChD,SAAO,CAAC,WAAuB;AAC7B,eAAW,QAAQ,OAAO;AAAA,EAC5B;AACF;AAmCO,IAAM,oBAAoB,CAAC,UAA4B;AAAA,EAC5D,MAAM;AACR,MAAqB,UAAQ,IAAI,SAAS;AACxC,QAAM,QAAQ,KAAK,GAAG,IAAI;AAC1B,MAAI,YAAY;AAChB,MAAI,0BAA0B;AAC9B,MAAI,qBAAqB;AACzB,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,gBAAgB,QAAQ,SAAS,SAAS,iBAAiB,QAAQ,SAAS;AAAA;AAAA,IAElF,OAAO,WAAW,eAAe,OAAO,wBAAwB,OAAO,wBAAwB,qBAAqB,EAAE;AAAA,MAAI,QAAQ,SAAS,aAAa,QAAQ,oBAAoB,qBAAqB,QAAQ,OAAO;AACxN,QAAM,kBAAkB,MAAM;AAG5B,yBAAqB;AACrB,QAAI,yBAAyB;AAC3B,gCAA0B;AAC1B,gBAAU,QAAQ,OAAK,EAAE,CAAC;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,OAAO,OAAO,CAAC,GAAG,OAAO;AAAA;AAAA;AAAA,IAG9B,UAAUE,WAAsB;AAK9B,YAAM,kBAAmC,MAAM,aAAaA,UAAS;AACrE,YAAM,cAAc,MAAM,UAAU,eAAe;AACnD,gBAAU,IAAIA,SAAQ;AACtB,aAAO,MAAM;AACX,oBAAY;AACZ,kBAAU,OAAOA,SAAQ;AAAA,MAC3B;AAAA,IACF;AAAA;AAAA;AAAA,IAGA,SAAS,QAAa;AACpB,UAAI;AAGF,oBAAY,CAAC,QAAQ,OAAO,gBAAgB;AAG5C,kCAA0B,CAAC;AAC3B,YAAI,yBAAyB;AAI3B,cAAI,CAAC,oBAAoB;AACvB,iCAAqB;AACrB,0BAAc,eAAe;AAAA,UAC/B;AAAA,QACF;AAOA,eAAO,MAAM,SAAS,MAAM;AAAA,MAC9B,UAAE;AAEA,oBAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AC1GO,IAAM,2BAA2B,CAA8B,uBAEvC,SAAS,oBAAoB,SAAS;AACnE,QAAM;AAAA,IACJ,YAAY;AAAA,EACd,IAAI,WAAW,CAAC;AAChB,MAAI,gBAAgB,IAAI,MAAuB,kBAAkB;AACjE,MAAI,WAAW;AACb,kBAAc,KAAK,kBAAkB,OAAO,cAAc,WAAW,YAAY,MAAS,CAAC;AAAA,EAC7F;AACA,SAAO;AACT;;;AC8DO,SAAS,eAEY,SAAuE;AACjG,QAAM,uBAAuB,0BAA6B;AAC1D,QAAM;AAAA,IACJ,UAAU;AAAA,IACV;AAAA,IACA,WAAW;AAAA,IACX,2BAA2B;AAAA,IAC3B,iBAAiB;AAAA,IACjB,YAAY;AAAA,EACd,IAAI,WAAW,CAAC;AAChB,MAAI;AACJ,MAAI,OAAO,YAAY,YAAY;AACjC,kBAAc;AAAA,EAChB,WAAW,cAAc,OAAO,GAAG;AACjC,kBAAc,gBAAgB,OAAO;AAAA,EACvC,OAAO;AACL,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,0HAA0H;AAAA,EACjN;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,cAAc,OAAO,eAAe,YAAY;AAC3F,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,uCAAuC;AAAA,EAC/H;AACA,MAAI;AACJ,MAAI,OAAO,eAAe,YAAY;AACpC,sBAAkB,WAAW,oBAAoB;AACjD,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,MAAM,QAAQ,eAAe,GAAG;AAC5E,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,mFAAmF;AAAA,IAC3K;AAAA,EACF,OAAO;AACL,sBAAkB,qBAAqB;AAAA,EACzC;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,gBAAgB,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC5G,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D;AAAA,EACvJ;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,0BAA0B;AACrE,QAAI,uBAAuB,oBAAI,IAAwB;AACvD,oBAAgB,QAAQ,CAAAC,gBAAc;AACpC,UAAI,qBAAqB,IAAIA,WAAU,GAAG;AACxC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,mHAAmH;AAAA,MAC5M;AACA,2BAAqB,IAAIA,WAAU;AAAA,IACrC,CAAC;AAAA,EACH;AACA,MAAI,eAAe;AACnB,MAAI,UAAU;AACZ,mBAAe,oBAAoB;AAAA;AAAA,MAEjC,OAAO,QAAQ,IAAI,aAAa;AAAA,MAChC,GAAI,OAAO,aAAa,YAAY;AAAA,IACtC,CAAC;AAAA,EACH;AACA,QAAM,qBAAqB,gBAAgB,GAAG,eAAe;AAC7D,QAAM,sBAAsB,yBAA4B,kBAAkB;AAC1E,MAAI,QAAQ,IAAI,aAAa,gBAAgB,aAAa,OAAO,cAAc,YAAY;AACzF,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sCAAsC;AAAA,EAC9H;AACA,MAAI,iBAAiB,OAAO,cAAc,aAAa,UAAU,mBAAmB,IAAI,oBAAoB;AAC5G,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,MAAM,QAAQ,cAAc,GAAG;AAC3E,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,2CAA2C;AAAA,EACnI;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe,KAAK,CAAC,SAAc,OAAO,SAAS,UAAU,GAAG;AAC3G,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,6DAA6D;AAAA,EACrJ;AACA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,gBAAgB,UAAU,CAAC,eAAe,SAAS,kBAAkB,GAAG;AACnH,YAAQ,MAAM,kIAAkI;AAAA,EAClJ;AACA,QAAM,mBAAuC,aAAa,GAAG,cAAc;AAC3E,SAAO,YAAY,aAAa,gBAAqB,gBAAgB;AACvE;;;ACTO,SAAS,8BAAiC,iBAAmK;AAClN,QAAM,aAAmC,CAAC;AAC1C,QAAM,iBAAwD,CAAC;AAC/D,MAAI;AACJ,QAAM,UAAU;AAAA,IACd,QAAQ,qBAAuD,SAAyB;AACtF,UAAI,QAAQ,IAAI,aAAa,cAAc;AAMzC,YAAI,eAAe,SAAS,GAAG;AAC7B,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,6EAA6E;AAAA,QACrK;AACA,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,iFAAiF;AAAA,QAC1K;AAAA,MACF;AACA,YAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8DAA8D;AAAA,MACvJ;AACA,UAAI,QAAQ,YAAY;AACtB,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAuF,IAAI,GAAG;AAAA,MACvL;AACA,iBAAW,IAAI,IAAI;AACnB,aAAO;AAAA,IACT;AAAA,IACA,cAAgF,YAA4D,UAAqE;AAC/M,UAAI,QAAQ,IAAI,aAAa,cAAc;AAEzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,uFAAuF;AAAA,QAChL;AAAA,MACF;AACA,UAAI,SAAS,QAAS,YAAW,WAAW,QAAQ,IAAI,IAAI,SAAS;AACrE,UAAI,SAAS,SAAU,YAAW,WAAW,SAAS,IAAI,IAAI,SAAS;AACvE,UAAI,SAAS,UAAW,YAAW,WAAW,UAAU,IAAI,IAAI,SAAS;AACzE,UAAI,SAAS,QAAS,gBAAe,KAAK;AAAA,QACxC,SAAS,WAAW;AAAA,QACpB,SAAS,SAAS;AAAA,MACpB,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,WAAc,SAAuB,SAA4D;AAC/F,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAoF;AAAA,QAC7K;AAAA,MACF;AACA,qBAAe,KAAK;AAAA,QAClB;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,eAAe,SAAiC;AAC9C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,oBAAoB;AACtB,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,kDAAkD;AAAA,QAC3I;AAAA,MACF;AACA,2BAAqB;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,kBAAgB,OAAO;AACvB,SAAO,CAAC,YAAY,gBAAgB,kBAAkB;AACxD;;;AChKA,SAAS,gBAAmB,GAA0B;AACpD,SAAO,OAAO,MAAM;AACtB;AAqEO,SAAS,cAA0C,cAA6B,sBAAiG;AACtL,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,OAAO,yBAAyB,UAAU;AAC5C,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,8JAA8J;AAAA,IACrP;AAAA,EACF;AACA,MAAI,CAAC,YAAY,qBAAqB,uBAAuB,IAAI,8BAA8B,oBAAoB;AAGnH,MAAI;AACJ,MAAI,gBAAgB,YAAY,GAAG;AACjC,sBAAkB,MAAM,gBAAgB,aAAa,CAAC;AAAA,EACxD,OAAO;AACL,UAAM,qBAAqB,gBAAgB,YAAY;AACvD,sBAAkB,MAAM;AAAA,EAC1B;AACA,WAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAgB;AAC1D,QAAI,eAAe,CAAC,WAAW,OAAO,IAAI,GAAG,GAAG,oBAAoB,OAAO,CAAC;AAAA,MAC1E;AAAA,IACF,MAAM,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC;AAAA,MAC1B,SAAAC;AAAA,IACF,MAAMA,QAAO,CAAC;AACd,QAAI,aAAa,OAAO,QAAM,CAAC,CAAC,EAAE,EAAE,WAAW,GAAG;AAChD,qBAAe,CAAC,uBAAuB;AAAA,IACzC;AACA,WAAO,aAAa,OAAO,CAAC,eAAe,gBAAmB;AAC5D,UAAI,aAAa;AACf,YAAI,QAAQ,aAAa,GAAG;AAI1B,gBAAM,QAAQ;AACd,gBAAM,SAAS,YAAY,OAAO,MAAM;AACxC,cAAI,WAAW,QAAW;AACxB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,WAAW,CAAC,YAAY,aAAa,GAAG;AAGtC,gBAAM,SAAS,YAAY,eAAsB,MAAM;AACvD,cAAI,WAAW,QAAW;AACxB,gBAAI,kBAAkB,MAAM;AAC1B,qBAAO;AAAA,YACT;AACA,kBAAM,MAAM,mEAAmE;AAAA,UACjF;AACA,iBAAO;AAAA,QACT,OAAO;AAIL,iBAAO,QAAgB,eAAe,CAAC,UAAoB;AACzD,mBAAO,YAAY,OAAO,MAAM;AAAA,UAClC,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT,GAAG,KAAK;AAAA,EACV;AACA,UAAQ,kBAAkB;AAC1B,SAAO;AACT;;;AClLA,IAAM,UAAU,CAAC,SAAuB,WAAgB;AACtD,MAAI,iBAAiB,OAAO,GAAG;AAC7B,WAAO,QAAQ,MAAM,MAAM;AAAA,EAC7B,OAAO;AACL,WAAO,QAAQ,MAAM;AAAA,EACvB;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,KAAK,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC1D;AACF;AAWO,SAAS,WAA4C,UAAoB;AAC9E,SAAO,CAAC,WAAyD;AAC/D,WAAO,SAAS,MAAM,aAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC3D;AACF;AAQO,SAAS,2BAA2B,QAAa,aAAgC;AACtF,MAAI,CAAC,UAAU,CAAC,OAAO,KAAM,QAAO;AACpC,QAAM,oBAAoB,OAAO,OAAO,KAAK,cAAc;AAC3D,QAAM,wBAAwB,YAAY,QAAQ,OAAO,KAAK,aAAa,IAAI;AAC/E,SAAO,qBAAqB;AAC9B;AACA,SAAS,kBAAkB,GAAkD;AAC3E,SAAO,OAAO,EAAE,CAAC,MAAM,cAAc,aAAa,EAAE,CAAC,KAAK,eAAe,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;AACpG;AA2BO,SAAS,aAAsE,aAAkC;AACtH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,SAAS,CAAC;AAAA,EACxE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,UAAU,EAAE,YAAY,CAAC,CAAC;AAAA,EACnC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,OAAO,CAAC;AACrE;AA2BO,SAAS,cAAuE,aAAkC;AACvH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,UAAU,CAAC;AAAA,EACzE;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,WAAW,EAAE,YAAY,CAAC,CAAC;AAAA,EACpC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,QAAQ,CAAC;AACtE;AA+BO,SAAS,uBAAgF,aAAkC;AAChI,QAAM,UAAU,CAAC,WAA+B;AAC9C,WAAO,UAAU,OAAO,QAAQ,OAAO,KAAK;AAAA,EAC9C;AACA,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AAAA,EACpD;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC7C;AACA,SAAO,QAAQ,WAAW,GAAG,WAAW,GAAG,OAAO;AACpD;AA2BO,SAAS,eAAwE,aAAkC;AACxH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,CAAC;AAAA,EAC1E;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,YAAY,EAAE,YAAY,CAAC,CAAC;AAAA,EACrC;AACA,SAAO,QAAQ,GAAG,YAAY,IAAI,gBAAc,WAAW,SAAS,CAAC;AACvE;AAoCO,SAAS,sBAA+E,aAAkC;AAC/H,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC,WAAgB,2BAA2B,QAAQ,CAAC,WAAW,aAAa,UAAU,CAAC;AAAA,EACjG;AACA,MAAI,CAAC,kBAAkB,WAAW,GAAG;AACnC,WAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAAA,EAC5C;AACA,SAAO,QAAQ,GAAG,YAAY,QAAQ,gBAAc,CAAC,WAAW,SAAS,WAAW,UAAU,WAAW,SAAS,CAAC,CAAC;AACtH;;;ACzPA,IAAI,cAAc;AAMX,IAAI,SAAS,CAAC,OAAO,OAAO;AACjC,MAAI,KAAK;AAET,MAAI,IAAI;AACR,SAAO,KAAK;AAEV,UAAM,YAAY,KAAK,OAAO,IAAI,KAAK,CAAC;AAAA,EAC1C;AACA,SAAO;AACT;;;ACSA,IAAM,mBAAiD,CAAC,QAAQ,WAAW,SAAS,MAAM;AAC1F,IAAM,kBAAN,MAA6C;AAAA,EAM3C,YAA4B,SAAkC,MAAoB;AAAtD;AAAkC;AAAA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,EADlE;AAEnB;AACA,IAAM,kBAAN,MAA8C;AAAA,EAM5C,YAA4B,SAAkC,MAAqB;AAAvD;AAAkC;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,EADnE;AAEnB;AAQO,IAAM,qBAAqB,CAAC,UAAgC;AACjE,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAM,cAA+B,CAAC;AACtC,eAAW,YAAY,kBAAkB;AACvC,UAAI,OAAO,MAAM,QAAQ,MAAM,UAAU;AACvC,oBAAY,QAAQ,IAAI,MAAM,QAAQ;AAAA,MACxC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,SAAS,OAAO,KAAK;AAAA,EACvB;AACF;AA4MA,IAAM,uBAAuB;AACtB,IAAM,mBAAmC,uBAAM;AACpD,WAASC,kBAA8E,YAAoB,gBAA8E,SAAuG;AAK9R,UAAM,YAAkF,aAAa,aAAa,cAAc,CAAC,SAAmB,WAAmB,KAAe,UAA0B;AAAA,MAC9M;AAAA,MACA,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,UAAoE,aAAa,aAAa,YAAY,CAAC,WAAmB,KAAe,UAAwB;AAAA,MACzK,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB;AAAA,IACF,EAAE;AACF,UAAM,WAAsE,aAAa,aAAa,aAAa,CAAC,OAAqB,WAAmB,KAAe,SAAyB,UAAyB;AAAA,MAC3N;AAAA,MACA,QAAQ,WAAW,QAAQ,kBAAkB,oBAAoB,SAAS,UAAU;AAAA,MACpF,MAAM;AAAA,QACJ,GAAI,QAAe,CAAC;AAAA,QACpB;AAAA,QACA;AAAA,QACA,mBAAmB,CAAC,CAAC;AAAA,QACrB,eAAe;AAAA,QACf,SAAS,OAAO,SAAS;AAAA,QACzB,WAAW,OAAO,SAAS;AAAA,MAC7B;AAAA,IACF,EAAE;AACF,aAAS,cAAc,KAAe;AAAA,MACpC;AAAA,IACF,IAA8B,CAAC,GAAmE;AAChG,aAAO,CAAC,UAAU,UAAU,UAAU;AACpC,cAAM,YAAY,SAAS,cAAc,QAAQ,YAAY,GAAG,IAAI,OAAO;AAC3E,cAAM,kBAAkB,IAAI,gBAAgB;AAC5C,YAAI;AACJ,YAAI;AACJ,iBAAS,MAAM,QAAiB;AAC9B,wBAAc;AACd,0BAAgB,MAAM;AAAA,QACxB;AACA,YAAI,QAAQ;AACV,cAAI,OAAO,SAAS;AAClB,kBAAM,oBAAoB;AAAA,UAC5B,OAAO;AACL,mBAAO,iBAAiB,SAAS,MAAM,MAAM,oBAAoB,GAAG;AAAA,cAClE,MAAM;AAAA,YACR,CAAC;AAAA,UACH;AAAA,QACF;AACA,cAAM,UAAU,iBAAkB;AAChC,cAAI;AACJ,cAAI;AACF,gBAAI,kBAAkB,SAAS,YAAY,KAAK;AAAA,cAC9C;AAAA,cACA;AAAA,YACF,CAAC;AACD,gBAAI,WAAW,eAAe,GAAG;AAC/B,gCAAkB,MAAM;AAAA,YAC1B;AACA,gBAAI,oBAAoB,SAAS,gBAAgB,OAAO,SAAS;AAE/D,oBAAM;AAAA,gBACJ,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,YACF;AACA,kBAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,6BAAe,MAAM;AACnB,uBAAO;AAAA,kBACL,MAAM;AAAA,kBACN,SAAS,eAAe;AAAA,gBAC1B,CAAC;AAAA,cACH;AACA,8BAAgB,OAAO,iBAAiB,SAAS,cAAc;AAAA,gBAC7D,MAAM;AAAA,cACR,CAAC;AAAA,YACH,CAAC;AACD,qBAAS,QAAQ,WAAW,KAAK,SAAS,iBAAiB;AAAA,cACzD;AAAA,cACA;AAAA,YACF,GAAG;AAAA,cACD;AAAA,cACA;AAAA,YACF,CAAC,CAAC,CAAQ;AACV,0BAAc,MAAM,QAAQ,KAAK,CAAC,gBAAgB,QAAQ,QAAQ,eAAe,KAAK;AAAA,cACpF;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ,gBAAgB;AAAA,cACxB;AAAA,cACA,iBAAkB,CAAC,OAAsB,SAAwB;AAC/D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,cACA,kBAAmB,CAAC,OAAgB,SAAyB;AAC3D,uBAAO,IAAI,gBAAgB,OAAO,IAAI;AAAA,cACxC;AAAA,YACF,CAAC,CAAC,EAAE,KAAK,YAAU;AACjB,kBAAI,kBAAkB,iBAAiB;AACrC,sBAAM;AAAA,cACR;AACA,kBAAI,kBAAkB,iBAAiB;AACrC,uBAAO,UAAU,OAAO,SAAS,WAAW,KAAK,OAAO,IAAI;AAAA,cAC9D;AACA,qBAAO,UAAU,QAAe,WAAW,GAAG;AAAA,YAChD,CAAC,CAAC,CAAC;AAAA,UACL,SAAS,KAAK;AACZ,0BAAc,eAAe,kBAAkB,SAAS,MAAM,WAAW,KAAK,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAY,WAAW,GAAG;AAAA,UAC5I,UAAE;AACA,gBAAI,cAAc;AAChB,8BAAgB,OAAO,oBAAoB,SAAS,YAAY;AAAA,YAClE;AAAA,UACF;AAMA,gBAAM,eAAe,WAAW,CAAC,QAAQ,8BAA8B,SAAS,MAAM,WAAW,KAAM,YAAoB,KAAK;AAChI,cAAI,CAAC,cAAc;AACjB,qBAAS,WAAkB;AAAA,UAC7B;AACA,iBAAO;AAAA,QACT,EAAE;AACF,eAAO,OAAO,OAAO,SAA6B;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AACP,mBAAO,QAAQ,KAAU,YAAY;AAAA,UACvC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAA8E;AAAA,MACjG;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,UAAU,SAAS;AAAA,MACpC;AAAA,IACF,CAAC;AAAA,EACH;AACA,EAAAA,kBAAiB,YAAY,MAAMA;AACnC,SAAOA;AACT,GAAG;AAaI,SAAS,aAA0C,QAAsC;AAC9F,MAAI,OAAO,QAAQ,OAAO,KAAK,mBAAmB;AAChD,UAAM,OAAO;AAAA,EACf;AACA,MAAI,OAAO,OAAO;AAChB,UAAM,OAAO;AAAA,EACf;AACA,SAAO,OAAO;AAChB;AAEA,SAAS,WAAW,OAAuC;AACzD,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,MAAM,SAAS;AAC9E;;;ACjbA,IAAM,mBAAkC,uBAAO,IAAI,4BAA4B;AAExE,IAAM,oBAET;AAAA,EACF,CAAC,gBAAgB,GAAG;AACtB;AAwLO,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,gBAAa;AAHH,SAAAA;AAAA,GAAA;AAgIZ,SAAS,QAAQ,OAAe,WAA2B;AACzD,SAAO,GAAG,KAAK,IAAI,SAAS;AAC9B;AAMO,SAAS,iBAAiB;AAAA,EAC/B;AACF,IAA4B,CAAC,GAAG;AAC9B,QAAM,MAAM,UAAU,aAAa,gBAAgB;AACnD,SAAO,SAASC,aAAmK,SAA0I;AAC3T,UAAM;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,IAChB,IAAI;AACJ,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,6CAA6C;AAAA,IACrI;AACA,QAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,UAAI,QAAQ,iBAAiB,QAAW;AACtC,gBAAQ,MAAM,0GAA0G;AAAA,MAC1H;AAAA,IACF;AACA,UAAM,YAAY,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,qBAA4B,CAAC,IAAI,QAAQ,aAAa,CAAC;AACnI,UAAM,eAAe,OAAO,KAAK,QAAQ;AACzC,UAAM,UAAyC;AAAA,MAC7C,yBAAyB,CAAC;AAAA,MAC1B,yBAAyB,CAAC;AAAA,MAC1B,gBAAgB,CAAC;AAAA,MACjB,eAAe,CAAC;AAAA,IAClB;AACA,UAAM,iBAAuD;AAAA,MAC3D,QAAQ,qBAAuDC,UAA6B;AAC1F,cAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;AACjG,YAAI,CAAC,MAAM;AACT,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8DAA8D;AAAA,QACvJ;AACA,YAAI,QAAQ,QAAQ,yBAAyB;AAC3C,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,oFAAoF,IAAI;AAAA,QACjL;AACA,gBAAQ,wBAAwB,IAAI,IAAIA;AACxC,eAAO;AAAA,MACT;AAAA,MACA,WAAW,SAASA,UAAS;AAC3B,gBAAQ,cAAc,KAAK;AAAA,UACzB;AAAA,UACA,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,aAAaC,OAAM,eAAe;AAChC,gBAAQ,eAAeA,KAAI,IAAI;AAC/B,eAAO;AAAA,MACT;AAAA,MACA,kBAAkBA,OAAMD,UAAS;AAC/B,gBAAQ,wBAAwBC,KAAI,IAAID;AACxC,eAAO;AAAA,MACT;AAAA,IACF;AACA,iBAAa,QAAQ,iBAAe;AAClC,YAAM,oBAAoB,SAAS,WAAW;AAC9C,YAAM,iBAAiC;AAAA,QACrC;AAAA,QACA,MAAM,QAAQ,MAAM,WAAW;AAAA,QAC/B,gBAAgB,OAAO,QAAQ,aAAa;AAAA,MAC9C;AACA,UAAI,mCAA0C,iBAAiB,GAAG;AAChE,yCAAiC,gBAAgB,mBAAmB,gBAAgB,GAAG;AAAA,MACzF,OAAO;AACL,sCAAqC,gBAAgB,mBAA0B,cAAc;AAAA,MAC/F;AAAA,IACF,CAAC;AACD,aAAS,eAAe;AACtB,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,OAAO,QAAQ,kBAAkB,UAAU;AAC7C,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,wKAAwK;AAAA,QACjQ;AAAA,MACF;AACA,YAAM,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,GAAG,qBAAqB,MAAS,IAAI,OAAO,QAAQ,kBAAkB,aAAa,8BAA8B,QAAQ,aAAa,IAAI,CAAC,QAAQ,aAAa;AAC7M,YAAM,oBAAoB;AAAA,QACxB,GAAG;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AACA,aAAO,cAAc,QAAQ,cAAc,aAAW;AACpD,iBAAS,OAAO,mBAAmB;AACjC,kBAAQ,QAAQ,KAAK,kBAAkB,GAAG,CAAqB;AAAA,QACjE;AACA,iBAAS,MAAM,QAAQ,eAAe;AACpC,kBAAQ,WAAW,GAAG,SAAS,GAAG,OAAO;AAAA,QAC3C;AACA,iBAAS,KAAK,gBAAgB;AAC5B,kBAAQ,WAAW,EAAE,SAAS,EAAE,OAAO;AAAA,QACzC;AACA,YAAI,oBAAoB;AACtB,kBAAQ,eAAe,kBAAkB;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH;AACA,UAAM,aAAa,CAAC,UAAiB;AACrC,UAAM,wBAAwB,oBAAI,IAAsG;AACxI,UAAM,qBAAqB,oBAAI,QAA0C;AACzE,QAAI;AACJ,aAAS,QAAQ,OAA0B,QAAuB;AAChE,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,OAAO,MAAM;AAAA,IAC/B;AACA,aAAS,kBAAkB;AACzB,UAAI,CAAC,SAAU,YAAW,aAAa;AACvC,aAAO,SAAS,gBAAgB;AAAA,IAClC;AACA,aAAS,kBAAmEE,cAAiC,WAAW,OAA4I;AAClQ,eAAS,YAAY,OAA6C;AAChE,YAAI,aAAa,MAAMA,YAAW;AAClC,YAAI,OAAO,eAAe,aAAa;AACrC,cAAI,UAAU;AACZ,yBAAa,oBAAoB,oBAAoB,aAAa,eAAe;AAAA,UACnF,WAAW,QAAQ,IAAI,aAAa,cAAc;AAChD,kBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,gEAAgE;AAAA,UACzJ;AAAA,QACF;AACA,eAAO;AAAA,MACT;AACA,eAAS,aAAa,cAAyC,YAAY;AACzE,cAAM,gBAAgB,oBAAoB,uBAAuB,UAAU,MAAM,oBAAI,QAAQ,CAAC;AAC9F,eAAO,oBAAoB,eAAe,aAAa,MAAM;AAC3D,gBAAM,MAA0C,CAAC;AACjD,qBAAW,CAACD,OAAM,QAAQ,KAAK,OAAO,QAAQ,QAAQ,aAAa,CAAC,CAAC,GAAG;AACtE,gBAAIA,KAAI,IAAI,aAAa,UAAU,aAAa,MAAM,oBAAoB,oBAAoB,aAAa,eAAe,GAAG,QAAQ;AAAA,UACvI;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO;AAAA,QACL,aAAAC;AAAA,QACA;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,WAAW;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,QAAkE;AAAA,MACtE;AAAA,MACA;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ;AAAA,MACtB;AAAA,MACA,GAAG,kBAAkB,WAAW;AAAA,MAChC,WAAW,YAAY;AAAA,QACrB,aAAa;AAAA,QACb,GAAG;AAAA,MACL,IAAI,CAAC,GAAG;AACN,cAAM,iBAAiB,WAAW;AAClC,mBAAW,OAAO;AAAA,UAChB,aAAa;AAAA,UACb;AAAA,QACF,GAAG,MAAM;AACT,eAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG,kBAAkB,gBAAgB,IAAI;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AACA,SAAS,aAAyD,UAAa,aAAwC,iBAA8B,UAAoB;AACvK,WAAS,QAAQ,cAAwB,MAAa;AACpD,QAAI,aAAa,YAAY,SAAS;AACtC,QAAI,OAAO,eAAe,aAAa;AACrC,UAAI,UAAU;AACZ,qBAAa,gBAAgB;AAAA,MAC/B,WAAW,QAAQ,IAAI,aAAa,cAAc;AAChD,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,gEAAgE;AAAA,MACzJ;AAAA,IACF;AACA,WAAO,SAAS,YAAY,GAAG,IAAI;AAAA,EACrC;AACA,UAAQ,YAAY;AACpB,SAAO;AACT;AAUO,IAAM,cAA6B,iCAAiB;AAkE3D,SAAS,uBAAsD;AAC7D,WAAS,WAAW,gBAAoD,QAAgG;AACtK,WAAO;AAAA,MACL,wBAAwB;AAAA,MACxB;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACA,aAAW,YAAY,MAAM;AAC7B,SAAO;AAAA,IACL,QAAQ,aAAsC;AAC5C,aAAO,OAAO,OAAO;AAAA;AAAA;AAAA,QAGnB,CAAC,YAAY,IAAI,KAAK,MAAsC;AAC1D,iBAAO,YAAY,GAAG,IAAI;AAAA,QAC5B;AAAA,MACF,EAAE,YAAY,IAAI,GAAG;AAAA,QACnB,wBAAwB;AAAA,MAC1B,CAAU;AAAA,IACZ;AAAA,IACA,gBAAgB,SAAS,SAAS;AAChC,aAAO;AAAA,QACL,wBAAwB;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AACA,SAAS,8BAAqC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,GAAmB,yBAGuD,SAA+C;AACvH,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa,yBAAyB;AACxC,QAAI,kBAAkB,CAAC,mCAAmC,uBAAuB,GAAG;AAClF,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,2GAA2G;AAAA,IACpM;AACA,kBAAc,wBAAwB;AACtC,sBAAkB,wBAAwB;AAAA,EAC5C,OAAO;AACL,kBAAc;AAAA,EAChB;AACA,UAAQ,QAAQ,MAAM,WAAW,EAAE,kBAAkB,aAAa,WAAW,EAAE,aAAa,aAAa,kBAAkB,aAAa,MAAM,eAAe,IAAI,aAAa,IAAI,CAAC;AACrL;AACA,SAAS,mCAA0C,mBAAqG;AACtJ,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,mCAA0C,mBAA2F;AAC5I,SAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,iCAAwC;AAAA,EAC/C;AAAA,EACA;AACF,GAAmB,mBAA2E,SAA+C,KAA2C;AACtL,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,wLAA6L;AAAA,EACtR;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,IAAI,MAAM,gBAAgB,OAAc;AACtD,UAAQ,aAAa,aAAa,KAAK;AACvC,MAAI,WAAW;AACb,YAAQ,QAAQ,MAAM,WAAW,SAAS;AAAA,EAC5C;AACA,MAAI,SAAS;AACX,YAAQ,QAAQ,MAAM,SAAS,OAAO;AAAA,EACxC;AACA,MAAI,UAAU;AACZ,YAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,EAC1C;AACA,MAAI,SAAS;AACX,YAAQ,WAAW,MAAM,SAAS,OAAO;AAAA,EAC3C;AACA,UAAQ,kBAAkB,aAAa;AAAA,IACrC,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,IACpB,UAAU,YAAY;AAAA,IACtB,SAAS,WAAW;AAAA,EACtB,CAAC;AACH;AACA,SAAS,OAAO;AAAC;;;AC3qBV,SAAS,wBAAoE;AAClF,SAAO;AAAA,IACL,KAAK,CAAC;AAAA,IACN,UAAU,CAAC;AAAA,EACb;AACF;AACO,SAAS,0BAAkD,cAAoE;AAGpI,WAAS,gBAAgB,kBAAuB,CAAC,GAAG,UAA8C;AAChG,UAAM,QAAQ,OAAO,OAAO,sBAAsB,GAAG,eAAe;AACpE,WAAO,WAAW,aAAa,OAAO,OAAO,QAAQ,IAAI;AAAA,EAC3D;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACVO,SAAS,yBAAiD;AAG/D,WAAS,aAAgB,aAAgD,UAA+B,CAAC,GAAgC;AACvI,UAAM;AAAA,MACJ,gBAAAC,kBAAiB;AAAA,IACnB,IAAI;AACJ,UAAM,YAAY,CAAC,UAA8B,MAAM;AACvD,UAAM,iBAAiB,CAAC,UAA8B,MAAM;AAC5D,UAAM,YAAYA,gBAAe,WAAW,gBAAgB,CAAC,KAAK,aAAkB,IAAI,IAAI,QAAM,SAAS,EAAE,CAAE,CAAC;AAChH,UAAM,WAAW,CAAC,GAAY,OAAW;AACzC,UAAM,aAAa,CAAC,UAAyB,OAAW,SAAS,EAAE;AACnE,UAAM,cAAcA,gBAAe,WAAW,SAAO,IAAI,MAAM;AAC/D,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAYA,gBAAe,gBAAgB,UAAU,UAAU;AAAA,MACjE;AAAA,IACF;AACA,UAAM,2BAA2BA,gBAAe,aAAgD,cAAc;AAC9G,WAAO;AAAA,MACL,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,gBAAgB;AAAA,MAChB,WAAWA,gBAAe,aAAa,SAAS;AAAA,MAChD,aAAaA,gBAAe,aAAa,WAAW;AAAA,MACpD,YAAYA,gBAAe,0BAA0B,UAAU,UAAU;AAAA,IAC3E;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACpCO,IAAM,eAAe;AACrB,SAAS,kCAA0D,SAAuD;AAC/H,QAAM,WAAW,oBAAoB,CAAC,GAAc,UAAuC,QAAQ,KAAK,CAAC;AACzG,SAAO,SAAS,UAAiD,OAAgC;AAC/F,WAAO,SAAS,OAAY,MAAS;AAAA,EACvC;AACF;AACO,SAAS,oBAA+C,SAA+D;AAC5H,SAAO,SAAS,UAAiD,OAAU,KAA8B;AACvG,aAAS,wBAAwBC,MAAoD;AACnF,aAAO,MAAMA,IAAG;AAAA,IAClB;AACA,UAAM,aAAa,CAAC,UAAuC;AACzD,UAAI,wBAAwB,GAAG,GAAG;AAChC,gBAAQ,IAAI,SAAS,KAAK;AAAA,MAC5B,OAAO;AACL,gBAAQ,KAAK,KAAK;AAAA,MACpB;AAAA,IACF;AACA,QAAI,aAA0C,KAAK,GAAG;AAIpD,iBAAW,KAAK;AAGhB,aAAO;AAAA,IACT;AACA,WAAO,QAAgB,OAAO,UAAU;AAAA,EAC1C;AACF;;;AChCO,SAAS,cAAsC,QAAW,UAA6B;AAC5F,QAAM,MAAM,SAAS,MAAM;AAC3B,MAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,QAAW;AAC9D,YAAQ,KAAK,0EAA0E,mEAAmE,+BAA+B,QAAQ,kCAAkC,SAAS,SAAS,CAAC;AAAA,EACxP;AACA,SAAO;AACT;AACO,SAAS,oBAA4C,UAAsD;AAChH,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,eAAW,OAAO,OAAO,QAAQ;AAAA,EACnC;AACA,SAAO;AACT;AACO,SAAS,WAAc,OAAwB;AACpD,SAAQ,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI;AAC5C;AACO,SAAS,0BAAkD,aAA2C,UAA6B,OAAkE;AAC1M,gBAAc,oBAAoB,WAAW;AAC7C,QAAM,mBAAmB,WAAW,MAAM,GAAG;AAC7C,QAAM,cAAc,IAAI,IAAQ,gBAAgB;AAChD,QAAM,QAAa,CAAC;AACpB,QAAM,WAAW,oBAAI,IAAQ,CAAC,CAAC;AAC/B,QAAM,UAA2B,CAAC;AAClC,aAAW,UAAU,aAAa;AAChC,UAAM,KAAK,cAAc,QAAQ,QAAQ;AACzC,QAAI,YAAY,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,GAAG;AAC3C,cAAQ,KAAK;AAAA,QACX;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAAA,IACH,OAAO;AACL,eAAS,IAAI,EAAE;AACf,YAAM,KAAK,MAAM;AAAA,IACnB;AAAA,EACF;AACA,SAAO,CAAC,OAAO,SAAS,gBAAgB;AAC1C;;;ACnCO,SAAS,2BAAmD,UAAwD;AAEzH,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,OAAO,MAAM,UAAU;AACzB;AAAA,IACF;AACA,UAAM,IAAI,KAAK,GAAqB;AACpC,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,UAAM,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,EAAE,OAAO,MAAM,WAAW;AAC5B,YAAM,IAAI,KAAK,GAAqB;AAAA,IACtC;AACA;AACA,IAAC,MAAM,SAA2B,GAAG,IAAI;AAAA,EAC3C;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,kBAAc,oBAAoB,WAAW;AAC7C,eAAW,UAAU,aAAa;AAChC,oBAAc,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,MAAM,CAAC;AACb,UAAM,WAAW,CAAC;AAClB,mBAAe,aAAa,KAAK;AAAA,EACnC;AACA,WAAS,iBAAiB,KAAS,OAAgB;AACjD,WAAO,kBAAkB,CAAC,GAAG,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,kBAAkB,MAAqB,OAAgB;AAC9D,QAAI,YAAY;AAChB,SAAK,QAAQ,SAAO;AAClB,UAAI,OAAO,MAAM,UAAU;AACzB,eAAQ,MAAM,SAA2B,GAAG;AAC5C,oBAAY;AAAA,MACd;AAAA,IACF,CAAC;AACD,QAAI,WAAW;AACb,YAAM,MAAO,MAAM,IAAa,OAAO,QAAM,MAAM,MAAM,QAAQ;AAAA,IACnE;AAAA,EACF;AACA,WAAS,iBAAiB,OAAgB;AACxC,WAAO,OAAO,OAAO;AAAA,MACnB,KAAK,CAAC;AAAA,MACN,UAAU,CAAC;AAAA,IACb,CAAC;AAAA,EACH;AACA,WAAS,WAAW,MAEjB,QAAuB,OAAmB;AAC3C,UAAMC,YAA2B,MAAM,SAA2B,OAAO,EAAE;AAC3E,QAAIA,cAAa,QAAW;AAC1B,aAAO;AAAA,IACT;AACA,UAAM,UAAa,OAAO,OAAO,CAAC,GAAGA,WAAU,OAAO,OAAO;AAC7D,UAAM,SAAS,cAAc,SAAS,QAAQ;AAC9C,UAAM,YAAY,WAAW,OAAO;AACpC,QAAI,WAAW;AACb,WAAK,OAAO,EAAE,IAAI;AAClB,aAAQ,MAAM,SAA2B,OAAO,EAAE;AAAA,IACpD;AACA;AACA,IAAC,MAAM,SAA2B,MAAM,IAAI;AAC5C,WAAO;AAAA,EACT;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,UAAM,UAEF,CAAC;AACL,UAAM,mBAEF,CAAC;AACL,YAAQ,QAAQ,YAAU;AAExB,UAAI,OAAO,MAAM,MAAM,UAAU;AAE/B,yBAAiB,OAAO,EAAE,IAAI;AAAA,UAC5B,IAAI,OAAO;AAAA;AAAA;AAAA,UAGX,SAAS;AAAA,YACP,GAAG,iBAAiB,OAAO,EAAE,GAAG;AAAA,YAChC,GAAG,OAAO;AAAA,UACZ;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AACD,cAAU,OAAO,OAAO,gBAAgB;AACxC,UAAM,oBAAoB,QAAQ,SAAS;AAC3C,QAAI,mBAAmB;AACrB,YAAM,eAAe,QAAQ,OAAO,YAAU,WAAW,SAAS,QAAQ,KAAK,CAAC,EAAE,SAAS;AAC3F,UAAI,cAAc;AAChB,cAAM,MAAM,OAAO,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAK,cAAc,GAAQ,QAAQ,CAAC;AAAA,MACpF;AAAA,IACF;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,OAAO,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACtF,mBAAe,OAAO,KAAK;AAC3B,sBAAkB,SAAS,KAAK;AAAA,EAClC;AACA,SAAO;AAAA,IACL,WAAW,kCAAkC,gBAAgB;AAAA,IAC7D,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;ACjIO,SAAS,gBAAmB,aAAkB,MAAS,oBAAyC;AACrG,MAAI,WAAW;AACf,MAAI,YAAY,YAAY;AAC5B,SAAO,WAAW,WAAW;AAC3B,QAAI,cAAc,WAAW,cAAc;AAC3C,UAAM,cAAc,YAAY,WAAW;AAC3C,UAAM,MAAM,mBAAmB,MAAM,WAAW;AAChD,QAAI,OAAO,GAAG;AACZ,iBAAW,cAAc;AAAA,IAC3B,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAO;AACT;AACO,SAAS,OAAU,aAAkB,MAAS,oBAAsC;AACzF,QAAM,gBAAgB,gBAAgB,aAAa,MAAM,kBAAkB;AAC3E,cAAY,OAAO,eAAe,GAAG,IAAI;AACzC,SAAO;AACT;AACO,SAAS,yBAAiD,UAA6B,UAAkD;AAE9I,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,2BAA2B,QAAQ;AACvC,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAU,aAA0B;AACrG,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,eAAe,IAAI,IAAQ,eAAe,WAAW,MAAM,GAAG,CAAC;AACrE,UAAM,YAAY,oBAAI,IAAQ;AAC9B,UAAM,SAAS,YAAY,OAAO,WAAS;AACzC,YAAM,UAAU,cAAc,OAAO,QAAQ;AAC7C,YAAM,WAAW,CAAC,UAAU,IAAI,OAAO;AACvC,UAAI,SAAU,WAAU,IAAI,OAAO;AACnC,aAAO,CAAC,aAAa,IAAI,OAAO,KAAK;AAAA,IACvC,CAAC;AACD,QAAI,OAAO,WAAW,GAAG;AACvB,oBAAc,OAAO,MAAM;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,cAAc,QAAW,OAAgB;AAChD,WAAO,eAAe,CAAC,MAAM,GAAG,KAAK;AAAA,EACvC;AACA,WAAS,eAAe,aAA2C,OAAgB;AACjF,QAAI,uBAAuB,CAAC;AAC5B,kBAAc,oBAAoB,WAAW;AAC7C,QAAI,YAAY,WAAW,GAAG;AAC5B,iBAAW,QAAQ,aAAa;AAC9B,cAAM,WAAW,SAAS,IAAI;AAE9B,6BAAqB,QAAQ,IAAI;AACjC,eAAQ,MAAM,SAA2B,QAAQ;AAAA,MACnD;AACA,oBAAc,oBAAoB,oBAAoB;AACtD,oBAAc,OAAO,WAAW;AAAA,IAClC;AAAA,EACF;AACA,WAAS,cAAc,aAA2C,OAAgB;AAChF,kBAAc,oBAAoB,WAAW;AAC7C,UAAM,WAAW,CAAC;AAClB,UAAM,MAAM,CAAC;AACb,mBAAe,aAAa,OAAO,CAAC,CAAC;AAAA,EACvC;AACA,WAAS,iBAAiB,QAAuB,OAAgB;AAC/D,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,SAAuC,OAAgB;AAChF,QAAI,iBAAiB;AACrB,QAAI,cAAc;AAClB,aAAS,UAAU,SAAS;AAC1B,YAAM,SAAyB,MAAM,SAA2B,OAAO,EAAE;AACzE,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,uBAAiB;AACjB,aAAO,OAAO,QAAQ,OAAO,OAAO;AACpC,YAAM,QAAQ,SAAS,MAAM;AAC7B,UAAI,OAAO,OAAO,OAAO;AAGvB,sBAAc;AACd,eAAQ,MAAM,SAA2B,OAAO,EAAE;AAClD,cAAM,WAAY,MAAM,IAAa,QAAQ,OAAO,EAAE;AACtD,cAAM,IAAI,QAAQ,IAAI;AACtB,QAAC,MAAM,SAA2B,KAAK,IAAI;AAAA,MAC7C;AAAA,IACF;AACA,QAAI,gBAAgB;AAClB,oBAAc,OAAO,CAAC,GAAG,gBAAgB,WAAW;AAAA,IACtD;AAAA,EACF;AACA,WAAS,iBAAiB,QAAW,OAAgB;AACnD,WAAO,kBAAkB,CAAC,MAAM,GAAG,KAAK;AAAA,EAC1C;AACA,WAAS,kBAAkB,aAA2C,OAAgB;AACpF,UAAM,CAAC,OAAO,SAAS,gBAAgB,IAAI,0BAAiC,aAAa,UAAU,KAAK;AACxG,QAAI,MAAM,QAAQ;AAChB,qBAAe,OAAO,OAAO,gBAAgB;AAAA,IAC/C;AACA,QAAI,QAAQ,QAAQ;AAClB,wBAAkB,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AACA,WAAS,eAAe,GAAuB,GAAuB;AACpE,QAAI,EAAE,WAAW,EAAE,QAAQ;AACzB,aAAO;AAAA,IACT;AACA,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAI,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG;AACjB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,gBAA+B,CAAC,OAAO,YAAY,gBAAgB,gBAAgB;AACvF,UAAM,kBAAkB,WAAW,MAAM,QAAQ;AACjD,UAAM,aAAa,WAAW,MAAM,GAAG;AACvC,UAAM,gBAAgB,MAAM;AAC5B,QAAI,MAAoB;AACxB,QAAI,aAAa;AACf,YAAM,IAAI,IAAI,UAAU;AAAA,IAC1B;AACA,QAAI,iBAAsB,CAAC;AAC3B,eAAW,MAAM,KAAK;AACpB,YAAM,SAAS,gBAAgB,EAAE;AACjC,UAAI,QAAQ;AACV,uBAAe,KAAK,MAAM;AAAA,MAC5B;AAAA,IACF;AACA,UAAM,qBAAqB,eAAe,WAAW;AAGrD,eAAW,QAAQ,YAAY;AAC7B,oBAAc,SAAS,IAAI,CAAC,IAAI;AAChC,UAAI,CAAC,oBAAoB;AAEvB,eAAO,gBAAgB,MAAM,QAAQ;AAAA,MACvC;AAAA,IACF;AACA,QAAI,oBAAoB;AAEtB,uBAAiB,WAAW,MAAM,EAAE,KAAK,QAAQ;AAAA,IACnD,WAAW,gBAAgB;AAEzB,qBAAe,KAAK,QAAQ;AAAA,IAC9B;AACA,UAAM,eAAe,eAAe,IAAI,QAAQ;AAChD,QAAI,CAAC,eAAe,YAAY,YAAY,GAAG;AAC7C,YAAM,MAAM;AAAA,IACd;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,oBAAoB,aAAa;AAAA,IACzC,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,WAAW,oBAAoB,gBAAgB;AAAA,IAC/C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,QAAQ,oBAAoB,aAAa;AAAA,IACzC,SAAS,oBAAoB,cAAc;AAAA,IAC3C,YAAY,oBAAoB,iBAAiB;AAAA,IACjD,YAAY,oBAAoB,iBAAiB;AAAA,EACnD;AACF;;;AChKO,SAAS,oBAAuB,UAA6C,CAAC,GAA+B;AAClH,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAiD;AAAA,IAC/C,cAAc;AAAA,IACd,UAAU,CAAC,aAAkB,SAAS;AAAA,IACtC,GAAG;AAAA,EACL;AACA,QAAM,eAAe,eAAe,yBAAyB,UAAU,YAAY,IAAI,2BAA2B,QAAQ;AAC1H,QAAM,eAAe,0BAA0B,YAAY;AAC3D,QAAM,mBAAmB,uBAAoC;AAC7D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;;;ACnCA,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,YAAY;AAClB,IAAM,YAAY;AAGX,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,gBAAgB,QAAQ,SAAS;AACvC,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,oBAAoB,GAAG,QAAQ,IAAI,SAAS;AAClD,IAAM,iBAAN,MAAgD;AAAA,EAGrD,YAAmB,MAA0B;AAA1B;AACjB,SAAK,UAAU,GAAG,IAAI,IAAI,SAAS,aAAa,IAAI;AAAA,EACtD;AAAA,EAJA,OAAO;AAAA,EACP;AAIF;;;AChBO,IAAM,iBAAuG,CAAC,MAAe,aAAqB;AACvJ,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,GAAG,QAAQ,oBAAoB;AAAA,EAC3H;AACF;AACO,IAAMC,QAAO,MAAM;AAAC;AACpB,IAAM,iBAAiB,CAAK,SAAqB,UAAUA,UAAqB;AACrF,UAAQ,MAAM,OAAO;AACrB,SAAO;AACT;AACO,IAAM,yBAAyB,CAAC,aAA0B,aAAmC;AAClG,cAAY,iBAAiB,SAAS,UAAU;AAAA,IAC9C,MAAM;AAAA,EACR,CAAC;AACD,SAAO,MAAM,YAAY,oBAAoB,SAAS,QAAQ;AAChE;;;ACNO,IAAM,iBAAiB,CAAC,WAA8B;AAC3D,MAAI,OAAO,SAAS;AAClB,UAAM,IAAI,eAAe,OAAO,MAAM;AAAA,EACxC;AACF;AAOO,SAAS,eAAkB,QAAqB,SAAiC;AACtF,MAAI,UAAUC;AACd,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,UAAM,kBAAkB,MAAM,OAAO,IAAI,eAAe,OAAO,MAAM,CAAC;AACtE,QAAI,OAAO,SAAS;AAClB,sBAAgB;AAChB;AAAA,IACF;AACA,cAAU,uBAAuB,QAAQ,eAAe;AACxD,YAAQ,QAAQ,MAAM,QAAQ,CAAC,EAAE,KAAK,SAAS,MAAM;AAAA,EACvD,CAAC,EAAE,QAAQ,MAAM;AAEf,cAAUA;AAAA,EACZ,CAAC;AACH;AASO,IAAM,UAAU,OAAWC,OAAwB,YAAiD;AACzG,MAAI;AACF,UAAM,QAAQ,QAAQ;AACtB,UAAM,QAAQ,MAAMA,MAAK;AACzB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,EACF,SAAS,OAAY;AACnB,WAAO;AAAA,MACL,QAAQ,iBAAiB,iBAAiB,cAAc;AAAA,MACxD;AAAA,IACF;AAAA,EACF,UAAE;AACA,cAAU;AAAA,EACZ;AACF;AASO,IAAM,cAAc,CAAK,WAAwB;AACtD,SAAO,CAAC,YAAoC;AAC1C,WAAO,eAAe,eAAe,QAAQ,OAAO,EAAE,KAAK,YAAU;AACnE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,CAAC,CAAC;AAAA,EACJ;AACF;AAQO,IAAM,cAAc,CAAC,WAAwB;AAClD,QAAM,QAAQ,YAAkB,MAAM;AACtC,SAAO,CAAC,cAAqC;AAC3C,WAAO,MAAM,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,CAAC,CAAC;AAAA,EAC3E;AACF;;;AC3EA,IAAM;AAAA,EACJ;AACF,IAAI;AAIJ,IAAM,qBAAqB,CAAC;AAC5B,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,mBAAgC,2BAA2C;AAC7F,QAAM,kBAAkB,CAAC,eAAgC,uBAAuB,mBAAmB,MAAM,WAAW,MAAM,kBAAkB,MAAM,CAAC;AACnJ,SAAO,CAAK,cAAqC,SAAsC;AACrF,mBAAe,cAAc,cAAc;AAC3C,UAAM,uBAAuB,IAAI,gBAAgB;AACjD,oBAAgB,oBAAoB;AACpC,UAAM,SAAS,QAAW,YAAwB;AAChD,qBAAe,iBAAiB;AAChC,qBAAe,qBAAqB,MAAM;AAC1C,YAAMC,UAAU,MAAM,aAAa;AAAA,QACjC,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,OAAO,YAAY,qBAAqB,MAAM;AAAA,QAC9C,QAAQ,qBAAqB;AAAA,MAC/B,CAAC;AACD,qBAAe,qBAAqB,MAAM;AAC1C,aAAOA;AAAA,IACT,GAAG,MAAM,qBAAqB,MAAM,aAAa,CAAC;AAClD,QAAI,MAAM,UAAU;AAClB,6BAAuB,KAAK,OAAO,MAAMC,KAAI,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,MACL,QAAQ,YAA2B,iBAAiB,EAAE,MAAM;AAAA,MAC5D,SAAS;AACP,6BAAqB,MAAM,aAAa;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;AACA,IAAM,oBAAoB,CAAK,gBAAwE,WAAwC;AAQ7I,QAAM,OAAO,OAA2C,WAAc,YAAgC;AACpG,mBAAe,MAAM;AAGrB,QAAI,cAAmC,MAAM;AAAA,IAAC;AAC9C,UAAM,eAAe,IAAI,QAAwB,CAAC,SAAS,WAAW;AAEpE,UAAI,gBAAgB,eAAe;AAAA,QACjC;AAAA,QACA,QAAQ,CAAC,QAAQ,gBAAsB;AAErC,sBAAY,YAAY;AAExB,kBAAQ,CAAC,QAAQ,YAAY,SAAS,GAAG,YAAY,iBAAiB,CAAC,CAAC;AAAA,QAC1E;AAAA,MACF,CAAC;AACD,oBAAc,MAAM;AAClB,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,WAAwD,CAAC,YAAY;AAC3E,QAAI,WAAW,MAAM;AACnB,eAAS,KAAK,IAAI,QAAc,aAAW,WAAW,SAAS,SAAS,IAAI,CAAC,CAAC;AAAA,IAChF;AACA,QAAI;AACF,YAAM,SAAS,MAAM,eAAe,QAAQ,QAAQ,KAAK,QAAQ,CAAC;AAClE,qBAAe,MAAM;AACrB,aAAO;AAAA,IACT,UAAE;AAEA,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAQ,CAAC,WAAoC,YAAgC,eAAe,KAAK,WAAW,OAAO,CAAC;AACtH;AACA,IAAM,4BAA4B,CAAC,YAAwC;AACzE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI,MAAM;AACR,gBAAY,aAAa,IAAI,EAAE;AAAA,EACjC,WAAW,eAAe;AACxB,WAAO,cAAe;AACtB,gBAAY,cAAc;AAAA,EAC5B,WAAW,SAAS;AAClB,gBAAY;AAAA,EACd,WAAW,WAAW;AAAA,EAEtB,OAAO;AACL,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,yFAAyF;AAAA,EACjL;AACA,iBAAe,QAAQ,kBAAkB;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGO,IAAM,sBAAwE,uBAAO,CAAC,YAAwC;AACnI,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,QAAM,QAAgC;AAAA,IACpC,IAAI,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,oBAAI,IAAqB;AAAA,IAClC,aAAa,MAAM;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,6BAA6B;AAAA,IACtH;AAAA,EACF;AACA,SAAO;AACT,GAAG;AAAA,EACD,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,oBAAoB,CAAC,aAAyC,YAAwC;AAC1G,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,OAAO;AACrC,SAAO,MAAM,KAAK,YAAY,OAAO,CAAC,EAAE,KAAK,WAAS;AACpD,UAAM,uBAAuB,OAAO,SAAS,WAAW,MAAM,SAAS,OAAO,MAAM,cAAc;AAClG,WAAO,wBAAwB,MAAM,WAAW;AAAA,EAClD,CAAC;AACH;AACA,IAAM,wBAAwB,CAAC,UAA2D;AACxF,QAAM,QAAQ,QAAQ,gBAAc;AAClC,eAAW,MAAM,iBAAiB;AAAA,EACpC,CAAC;AACH;AACA,IAAM,gCAAgC,CAAC,aAAyC,uBAAmD;AACjI,SAAO,MAAM;AACX,eAAWC,aAAY,mBAAmB,KAAK,GAAG;AAChD,4BAAsBA,SAAQ;AAAA,IAChC;AACA,gBAAY,MAAM;AAAA,EACpB;AACF;AASA,IAAM,oBAAoB,CAAC,cAAoC,eAAwB,cAAuC;AAC5H,MAAI;AACF,iBAAa,eAAe,SAAS;AAAA,EACvC,SAAS,mBAAmB;AAG1B,eAAW,MAAM;AACf,YAAM;AAAA,IACR,GAAG,CAAC;AAAA,EACN;AACF;AAKO,IAAM,cAA6B,uBAAsB,6BAAa,GAAG,GAAG,MAAM,GAAG;AAAA,EAC1F,WAAW,MAAM;AACnB,CAAC;AAKM,IAAM,oBAAmC,6BAAa,GAAG,GAAG,YAAY;AAKxE,IAAM,iBAAgC,uBAAsB,6BAAa,GAAG,GAAG,SAAS,GAAG;AAAA,EAChG,WAAW,MAAM;AACnB,CAAC;AACD,IAAM,sBAA4C,IAAI,SAAoB;AACxE,UAAQ,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI;AACvC;AAKO,IAAM,2BAA2B,CAAyI,oBAAoE,CAAC,MAAM;AAC1P,QAAM,cAAc,oBAAI,IAA2B;AAInD,QAAM,qBAAqB,oBAAI,IAA2B;AAC1D,QAAM,yBAAyB,CAAC,UAAyB;AACvD,UAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;AAC/C,uBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,EACzC;AACA,QAAM,2BAA2B,CAAC,UAAyB;AACzD,UAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;AAC/C,QAAI,UAAU,GAAG;AACf,yBAAmB,OAAO,KAAK;AAAA,IACjC,OAAO;AACL,yBAAmB,IAAI,OAAO,QAAQ,CAAC;AAAA,IACzC;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,EACZ,IAAI;AACJ,iBAAe,SAAS,SAAS;AACjC,QAAM,cAAc,CAAC,UAAyB;AAC5C,UAAM,cAAc,MAAM,YAAY,OAAO,MAAM,EAAE;AACrD,gBAAY,IAAI,MAAM,IAAI,KAAK;AAC/B,WAAO,CAAC,kBAA+C;AACrD,YAAM,YAAY;AAClB,UAAI,eAAe,cAAc;AAC/B,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACA,QAAM,iBAAkB,CAAC,YAAwC;AAC/D,UAAM,QAAQ,kBAAkB,aAAa,OAAO,KAAK,oBAAoB,OAAc;AAC3F,WAAO,YAAY,KAAK;AAAA,EAC1B;AACA,SAAO,gBAAgB;AAAA,IACrB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,CAAC,YAA8E;AACnG,UAAM,QAAQ,kBAAkB,aAAa,OAAO;AACpD,QAAI,OAAO;AACT,YAAM,YAAY;AAClB,UAAI,QAAQ,cAAc;AACxB,8BAAsB,KAAK;AAAA,MAC7B;AAAA,IACF;AACA,WAAO,CAAC,CAAC;AAAA,EACX;AACA,SAAO,eAAe;AAAA,IACpB,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,iBAAiB,OAAO,OAAwD,QAAiB,KAAoB,qBAAsC;AAC/J,UAAM,yBAAyB,IAAI,gBAAgB;AACnD,UAAM,OAAO,kBAAkB,gBAA6C,uBAAuB,MAAM;AACzG,UAAM,mBAAmC,CAAC;AAC1C,QAAI;AACF,YAAM,QAAQ,IAAI,sBAAsB;AACxC,6BAAuB,KAAK;AAC5B,YAAM,QAAQ,QAAQ,MAAM;AAAA,QAAO;AAAA;AAAA,QAEnC,OAAO,CAAC,GAAG,KAAK;AAAA,UACd;AAAA,UACA,WAAW,CAAC,WAAsC,YAAqB,KAAK,WAAW,OAAO,EAAE,KAAK,OAAO;AAAA,UAC5G;AAAA,UACA,OAAO,YAAY,uBAAuB,MAAM;AAAA,UAChD,OAAO,YAAiB,uBAAuB,MAAM;AAAA,UACrD;AAAA,UACA,QAAQ,uBAAuB;AAAA,UAC/B,MAAM,WAAW,uBAAuB,QAAQ,gBAAgB;AAAA,UAChE,aAAa,MAAM;AAAA,UACnB,WAAW,MAAM;AACf,wBAAY,IAAI,MAAM,IAAI,KAAK;AAAA,UACjC;AAAA,UACA,uBAAuB,MAAM;AAC3B,kBAAM,QAAQ,QAAQ,CAAC,YAAY,GAAG,QAAQ;AAC5C,kBAAI,eAAe,wBAAwB;AACzC,2BAAW,MAAM,iBAAiB;AAClC,oBAAI,OAAO,UAAU;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,QAAQ,MAAM;AACZ,mCAAuB,MAAM,iBAAiB;AAC9C,kBAAM,QAAQ,OAAO,sBAAsB;AAAA,UAC7C;AAAA,UACA,kBAAkB,MAAM;AACtB,2BAAe,uBAAuB,MAAM;AAAA,UAC9C;AAAA,QACF,CAAC;AAAA,MAAC,CAAC;AAAA,IACL,SAAS,eAAe;AACtB,UAAI,EAAE,yBAAyB,iBAAiB;AAC9C,0BAAkB,SAAS,eAAe;AAAA,UACxC,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF,UAAE;AACA,YAAM,QAAQ,IAAI,gBAAgB;AAClC,6BAAuB,MAAM,iBAAiB;AAC9C,+BAAyB,KAAK;AAC9B,YAAM,QAAQ,OAAO,sBAAsB;AAAA,IAC7C;AAAA,EACF;AACA,QAAM,0BAA0B,8BAA8B,aAAa,kBAAkB;AAC7F,QAAM,aAAyE,SAAO,UAAQ,YAAU;AACtG,QAAI,CAAC,SAAS,MAAM,GAAG;AAErB,aAAO,KAAK,MAAM;AAAA,IACpB;AACA,QAAI,YAAY,MAAM,MAAM,GAAG;AAC7B,aAAO,eAAe,OAAO,OAAc;AAAA,IAC7C;AACA,QAAI,kBAAkB,MAAM,MAAM,GAAG;AACnC,8BAAwB;AACxB;AAAA,IACF;AACA,QAAI,eAAe,MAAM,MAAM,GAAG;AAChC,aAAO,cAAc,OAAO,OAAO;AAAA,IACrC;AAGA,QAAI,gBAAuD,IAAI,SAAS;AAIxE,UAAM,mBAAmB,MAAiB;AACxC,UAAI,kBAAkB,oBAAoB;AACxC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,GAAG,GAAG,qDAAqD;AAAA,MACpJ;AACA,aAAO;AAAA,IACT;AACA,QAAI;AACJ,QAAI;AAEF,eAAS,KAAK,MAAM;AACpB,UAAI,YAAY,OAAO,GAAG;AACxB,cAAM,eAAe,IAAI,SAAS;AAElC,cAAM,kBAAkB,MAAM,KAAK,YAAY,OAAO,CAAC;AACvD,mBAAW,SAAS,iBAAiB;AACnC,cAAI,cAAc;AAClB,cAAI;AACF,0BAAc,MAAM,UAAU,QAAQ,cAAc,aAAa;AAAA,UACnE,SAAS,gBAAgB;AACvB,0BAAc;AACd,8BAAkB,SAAS,gBAAgB;AAAA,cACzC,UAAU;AAAA,YACZ,CAAC;AAAA,UACH;AACA,cAAI,CAAC,aAAa;AAChB;AAAA,UACF;AACA,yBAAe,OAAO,QAAQ,KAAK,gBAAgB;AAAA,QACrD;AAAA,MACF;AAAA,IACF,UAAE;AAEA,sBAAgB;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAClB;AACF;;;ACpXA,IAAM,wBAAwB,CAAsF,gBAA4F;AAAA,EAC9M;AAAA,EACA,SAAS,oBAAI,IAAI;AACnB;AACA,IAAM,gBAAgB,CAAC,eAAuB,CAAC,WAI1C,QAAQ,MAAM,eAAe;AAC3B,IAAM,0BAA0B,MAA2I;AAChL,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,oBAAI,IAAgF;AAC1G,QAAM,iBAAiB,OAAO,OAAO,aAAa,yBAAyB,IAAI,iBAAyD;AAAA,IACtI,SAAS;AAAA,IACT,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,EAAE,GAAG;AAAA,IACH,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,gBAAgB,OAAO,OAAO,SAASC,kBAAiB,aAAqD;AACjH,gBAAY,QAAQ,CAAAC,gBAAc;AAChC,0BAAoB,eAAeA,aAAY,qBAAqB;AAAA,IACtE,CAAC;AAAA,EACH,GAAG;AAAA,IACD,WAAW,MAAM;AAAA,EACnB,CAAC;AACD,QAAM,qBAA0D,SAAO;AACrE,UAAM,oBAAoB,MAAM,KAAK,cAAc,OAAO,CAAC,EAAE,IAAI,WAAS,oBAAoB,MAAM,SAAS,KAAK,MAAM,UAAU,CAAC;AACnI,WAAO,QAAQ,GAAG,iBAAiB;AAAA,EACrC;AACA,QAAM,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,CAAC;AAC1E,QAAM,aAAqD,SAAO,UAAQ,YAAU;AAClF,QAAI,iBAAiB,MAAM,GAAG;AAC5B,oBAAc,GAAG,OAAO,OAAO;AAC/B,aAAO,IAAI;AAAA,IACb;AACA,WAAO,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM;AAAA,EAC7C;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACnDA,SAAS,mBAAAC,wBAAuB;AAwOhC,IAAM,cAAc,CAAC,mBAA8E,iBAAiB,kBAAkB,OAAO,eAAe,gBAAgB;AAC5K,IAAM,cAAc,CAAC,WAA6C,OAAO,QAA2B,gBAAc,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,aAAa,WAAW,OAAO,CAAC,IAAI,OAAO,QAAQ,UAAU,CAAC;AACvN,IAAM,iBAAiB,OAAO,IAAI,0BAA0B;AAC5D,IAAM,eAAe,CAAC,UAAe,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,cAAc;AACtE,IAAM,gBAAgB,oBAAI,QAAwB;AAClD,IAAM,mBAAmB,CAAwB,OAAc,YAAmD,sBAAoD,oBAAoB,eAAe,OAAO,MAAM,IAAI,MAAM,OAAO;AAAA,EACrO,KAAK,CAAC,QAAQ,MAAM,aAAa;AAC/B,QAAI,SAAS,eAAgB,QAAO;AACpC,UAAM,SAAS,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACjD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,SAAS,kBAAkB,IAAI;AACrC,UAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,YAAM,UAAU,WAAW,IAAI;AAC/B,UAAI,SAAS;AAEX,cAAM,gBAAgB,QAAQ,QAAW;AAAA,UACvC,MAAM,OAAO;AAAA,QACf,CAAC;AACD,YAAI,OAAO,kBAAkB,aAAa;AACxC,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,8BAA8B,KAAK,SAAS,CAAC,mRAAuS;AAAA,QAC5a;AACA,0BAAkB,IAAI,IAAI;AAC1B,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF,CAAC,CAAC;AACF,IAAM,WAAW,CAAC,UAAe;AAC/B,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,sCAAsC;AAAA,EAC/H;AACA,SAAO,MAAM,cAAc;AAC7B;AACA,IAAM,cAAc,CAAC;AACrB,IAAM,cAA4C,CAAC,QAAQ,gBAAgB;AACpE,SAAS,iBAAkE,QAAsI;AACtN,QAAM,aAAa,OAAO,YAAY,YAAY,MAAM,CAAC;AACzD,QAAM,aAAa,MAAM,OAAO,KAAK,UAAU,EAAE,SAASC,iBAAgB,UAAU,IAAI;AACxF,MAAI,UAAU,WAAW;AACzB,WAAS,gBAAgB,OAAgC,QAAuB;AAC9E,WAAO,QAAQ,OAAO,MAAM;AAAA,EAC9B;AACA,kBAAgB,uBAAuB,MAAM;AAC7C,QAAM,oBAAkD,CAAC;AACzD,QAAM,SAAS,CAAC,OAAqB,SAAuB,CAAC,MAA8B;AACzF,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACX,IAAI;AACJ,UAAM,iBAAiB,WAAW,WAAW;AAC7C,QAAI,CAAC,OAAO,oBAAoB,kBAAkB,mBAAmB,iBAAiB;AACpF,UAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,eAAe;AAC5E,gBAAQ,MAAM,0DAA0D,WAAW,gDAAgD;AAAA,MACrI;AACA,aAAO;AAAA,IACT;AACA,QAAI,OAAO,oBAAoB,mBAAmB,iBAAiB;AACjE,aAAO,kBAAkB,WAAW;AAAA,IACtC;AACA,eAAW,WAAW,IAAI;AAC1B,cAAU,WAAW;AACrB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,OAAO,OAAO,SAAS,aAAkE,YAAkD,aAA8D;AACxN,WAAO,SAASC,UAAS,UAAiB,MAAY;AACpD,aAAO,WAAW,iBAAiB,cAAc,YAAY,OAAc,GAAG,IAAI,IAAI,OAAO,YAAY,iBAAiB,GAAG,GAAG,IAAI;AAAA,IACtI;AAAA,EACF,GAAG;AAAA,IACD;AAAA,EACF,CAAC;AACD,SAAO,OAAO,OAAO,iBAAiB;AAAA,IACpC;AAAA,IACA;AAAA,EACF,CAAC;AACH;;;AC9SO,SAAS,uBAAuB,MAAc;AACnD,SAAO,iCAAiC,IAAI,oDAAoD,IAAI;AACtG;","names":["original","createSelector","createDraftSafeSelector","args","noop","isActionCreator","stringify","getSerialize","listener","middleware","reducer","createAsyncThunk","ReducerType","createSlice","reducer","name","reducerPath","createSelector","arg","original","noop","noop","task","result","noop","listener","addMiddleware","middleware","combineReducers","combineReducers","selector"]}
Index: de_modules/@reduxjs/toolkit/dist/uncheckedindexed.ts
===================================================================
--- node_modules/@reduxjs/toolkit/dist/uncheckedindexed.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// inlined from https://github.com/EskiMojo14/uncheckedindexed
-// relies on remaining as a TS file, not .d.ts
-type IfMaybeUndefined<T, True, False> = [undefined] extends [T] ? True : False
-
-const testAccess = ({} as Record<string, 0>)['a']
-
-export type IfUncheckedIndexedAccess<True, False> = IfMaybeUndefined<
-  typeof testAccess,
-  True,
-  False
->
-
-export type UncheckedIndexedAccess<T> = IfUncheckedIndexedAccess<
-  T | undefined,
-  T
->
Index: de_modules/@reduxjs/toolkit/node_modules/immer/LICENSE
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2017 Michel Weststrate
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.development.js
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1691 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/immer.ts
-var immer_exports = {};
-__export(immer_exports, {
-  Immer: () => Immer2,
-  applyPatches: () => applyPatches,
-  castDraft: () => castDraft,
-  castImmutable: () => castImmutable,
-  createDraft: () => createDraft,
-  current: () => current,
-  enableArrayMethods: () => enableArrayMethods,
-  enableMapSet: () => enableMapSet,
-  enablePatches: () => enablePatches,
-  finishDraft: () => finishDraft,
-  freeze: () => freeze,
-  immerable: () => DRAFTABLE,
-  isDraft: () => isDraft,
-  isDraftable: () => isDraftable,
-  nothing: () => NOTHING,
-  original: () => original,
-  produce: () => produce,
-  produceWithPatches: () => produceWithPatches,
-  setAutoFreeze: () => setAutoFreeze,
-  setUseStrictIteration: () => setUseStrictIteration,
-  setUseStrictShallowCopy: () => setUseStrictShallowCopy
-});
-module.exports = __toCommonJS(immer_exports);
-
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = isFunction(e) ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var O = Object;
-var getPrototypeOf = O.getPrototypeOf;
-var CONSTRUCTOR = "constructor";
-var PROTOTYPE = "prototype";
-var CONFIGURABLE = "configurable";
-var ENUMERABLE = "enumerable";
-var WRITABLE = "writable";
-var VALUE = "value";
-var isDraft = (value) => !!value && !!value[DRAFT_STATE];
-function isDraftable(value) {
-  if (!value)
-    return false;
-  return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);
-}
-var objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || !isObjectish(value))
-    return false;
-  const proto = getPrototypeOf(value);
-  if (proto === null || proto === O[PROTOTYPE])
-    return true;
-  const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];
-  if (Ctor === Object)
-    return true;
-  if (!isFunction(Ctor))
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-var has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);
-var get = (thing, prop, type = getArchtype(thing)) => (
-  // @ts-ignore
-  type === 2 /* Map */ ? thing.get(prop) : thing[prop]
-);
-var set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {
-  if (type === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (type === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-};
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-var isArray = Array.isArray;
-var isMap = (target) => target instanceof Map;
-var isSet = (target) => target instanceof Set;
-var isObjectish = (target) => typeof target === "object";
-var isFunction = (target) => typeof target === "function";
-var isBoolean = (target) => typeof target === "boolean";
-function isArrayIndex(value) {
-  const n = +value;
-  return Number.isInteger(n) && String(n) === value;
-}
-var getProxyDraft = (value) => {
-  if (!isObjectish(value))
-    return null;
-  return value?.[DRAFT_STATE];
-};
-var latest = (state) => state.copy_ || state.base_;
-var getValue = (value) => {
-  const proxyDraft = getProxyDraft(value);
-  return proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value;
-};
-var getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (isArray(base))
-    return Array[PROTOTYPE].slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = O.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc[WRITABLE] === false) {
-        desc[WRITABLE] = true;
-        desc[CONFIGURABLE] = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          [CONFIGURABLE]: true,
-          [WRITABLE]: true,
-          // could live with !!desc.set as well here...
-          [ENUMERABLE]: desc[ENUMERABLE],
-          [VALUE]: base[key]
-        };
-    }
-    return O.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return { ...base };
-    }
-    const obj = O.create(proto);
-    return O.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    O.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  O.freeze(obj);
-  if (deep)
-    each(
-      obj,
-      (_key, value) => {
-        freeze(value, true);
-      },
-      false
-    );
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  [VALUE]: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || !isObjectish(obj))
-    return true;
-  return O.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var PluginMapSet = "MapSet";
-var PluginPatches = "Patches";
-var PluginArrayMethods = "ArrayMethods";
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-var isPluginLoaded = (pluginKey) => !!plugins[pluginKey];
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-var getCurrentScope = () => currentScope;
-var createScope = (parent_, immer_) => ({
-  drafts_: [],
-  parent_,
-  immer_,
-  // Whenever the modified draft contains a draft from another scope, we
-  // need to prevent auto-freezing so the unowned draft can be finalized.
-  canAutoFreeze_: true,
-  unfinalizedDrafts_: 0,
-  handledSet_: /* @__PURE__ */ new Set(),
-  processedForPatches_: /* @__PURE__ */ new Set(),
-  mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,
-  arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0
-});
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    scope.patchPlugin_ = getPlugin(PluginPatches);
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-var enterScope = (immer2) => currentScope = createScope(currentScope, immer2);
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-    }
-    const { patchPlugin_ } = scope;
-    if (patchPlugin_) {
-      patchPlugin_.generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft);
-  }
-  maybeFreeze(scope, result, true);
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value) {
-  if (isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    const finalValue = handleValue(value, rootScope.handledSet_, rootScope);
-    return finalValue;
-  }
-  if (!isSameScope(state, rootScope)) {
-    return value;
-  }
-  if (!state.modified_) {
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    const { callbacks_ } = state;
-    if (callbacks_) {
-      while (callbacks_.length > 0) {
-        const callback = callbacks_.pop();
-        callback(rootScope);
-      }
-    }
-    generatePatchesAndFinalize(state, rootScope);
-  }
-  return state.copy_;
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-function markStateFinalized(state) {
-  state.finalized_ = true;
-  state.scope_.unfinalizedDrafts_--;
-}
-var isSameScope = (state, rootScope) => state.scope_ === rootScope;
-var EMPTY_LOCATIONS_RESULT = [];
-function updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {
-  const parentCopy = latest(parent);
-  const parentType = parent.type_;
-  if (originalKey !== void 0) {
-    const currentValue = get(parentCopy, originalKey, parentType);
-    if (currentValue === draftValue) {
-      set(parentCopy, originalKey, finalizedValue, parentType);
-      return;
-    }
-  }
-  if (!parent.draftLocations_) {
-    const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();
-    each(parentCopy, (key, value) => {
-      if (isDraft(value)) {
-        const keys = draftLocations.get(value) || [];
-        keys.push(key);
-        draftLocations.set(value, keys);
-      }
-    });
-  }
-  const locations = parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT;
-  for (const location of locations) {
-    set(parentCopy, location, finalizedValue, parentType);
-  }
-}
-function registerChildFinalizationCallback(parent, child, key) {
-  parent.callbacks_.push(function childCleanup(rootScope) {
-    const state = child;
-    if (!state || !isSameScope(state, rootScope)) {
-      return;
-    }
-    rootScope.mapSetPlugin_?.fixSetContents(state);
-    const finalizedValue = getFinalValue(state);
-    updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key);
-    generatePatchesAndFinalize(state, rootScope);
-  });
-}
-function generatePatchesAndFinalize(state, rootScope) {
-  const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || (state.assigned_?.size ?? 0) > 0);
-  if (shouldFinalize) {
-    const { patchPlugin_ } = rootScope;
-    if (patchPlugin_) {
-      const basePath = patchPlugin_.getPath(state);
-      if (basePath) {
-        patchPlugin_.generatePatches_(state, basePath, rootScope);
-      }
-    }
-    markStateFinalized(state);
-  }
-}
-function handleCrossReference(target, key, value) {
-  const { scope_ } = target;
-  if (isDraft(value)) {
-    const state = value[DRAFT_STATE];
-    if (isSameScope(state, scope_)) {
-      state.callbacks_.push(function crossReferenceCleanup() {
-        prepareCopy(target);
-        const finalizedValue = getFinalValue(state);
-        updateDraftInParent(target, value, finalizedValue, key);
-      });
-    }
-  } else if (isDraftable(value)) {
-    target.callbacks_.push(function nestedDraftCleanup() {
-      const targetCopy = latest(target);
-      if (target.type_ === 3 /* Set */) {
-        if (targetCopy.has(value)) {
-          handleValue(value, scope_.handledSet_, scope_);
-        }
-      } else {
-        if (get(targetCopy, key, target.type_) === value) {
-          if (scope_.drafts_.length > 1 && (target.assigned_.get(key) ?? false) === true && target.copy_) {
-            handleValue(
-              get(target.copy_, key, target.type_),
-              scope_.handledSet_,
-              scope_
-            );
-          }
-        }
-      }
-    });
-  }
-}
-function handleValue(target, handledSet, rootScope) {
-  if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-    return target;
-  }
-  if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {
-    return target;
-  }
-  handledSet.add(target);
-  each(target, (key, value) => {
-    if (isDraft(value)) {
-      const state = value[DRAFT_STATE];
-      if (isSameScope(state, rootScope)) {
-        const updatedValue = getFinalValue(state);
-        set(target, key, updatedValue, target.type_);
-        markStateFinalized(state);
-      }
-    } else if (isDraftable(value)) {
-      handleValue(value, handledSet, rootScope);
-    }
-  });
-  return target;
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const baseIsArray = isArray(base);
-  const state = {
-    type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    // actually instantiated in `prepareCopy()`
-    assigned_: void 0,
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false,
-    // `callbacks` actually gets assigned in `createProxy`
-    callbacks_: void 0
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (baseIsArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return [proxy, state];
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    let arrayPlugin = state.scope_.arrayMethodsPlugin_;
-    const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === "string";
-    if (isArrayWithStringProp) {
-      if (arrayPlugin?.isArrayOperationMethod(prop)) {
-        return arrayPlugin.createMethodInterceptor(state, prop);
-      }
-    }
-    const source = latest(state);
-    if (!has(source, prop, state.type_)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (isArrayWithStringProp && state.operationMethod && arrayPlugin?.isMutatingArrayMethod(
-      state.operationMethod
-    ) && isArrayIndex(prop)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      const childKey = state.type_ === 1 /* Array */ ? +prop : prop;
-      const childDraft = createProxy(state.scope_, value, state, childKey);
-      return state.copy_[childKey] = childDraft;
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc?.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2?.[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_.set(prop, false);
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_.set(prop, true);
-    handleCrossReference(state, prop, value);
-    return true;
-  },
-  deleteProperty(state, prop) {
-    prepareCopy(state);
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_.set(prop, false);
-      markChanged(state);
-    } else {
-      state.assigned_.delete(prop);
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      [WRITABLE]: true,
-      [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== "length",
-      [ENUMERABLE]: desc[ENUMERABLE],
-      [VALUE]: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-for (let key in objectTraps) {
-  let fn = objectTraps[key];
-  arrayTraps[key] = function() {
-    const args = arguments;
-    args[0] = args[0][0];
-    return fn.apply(this, args);
-  };
-}
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? VALUE in desc ? desc[VALUE] : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    desc.get?.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.assigned_ = /* @__PURE__ */ new Map();
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = false;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (isFunction(base) && !isFunction(recipe)) {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (!isFunction(recipe))
-        die(6);
-      if (patchListener !== void 0 && !isFunction(patchListener))
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(scope, base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || !isObjectish(base)) {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin(PluginPatches).generateReplacementPatches_(base, result, {
-            patches_: p,
-            inversePatches_: ip
-          });
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (isFunction(base)) {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (isBoolean(config?.autoFreeze))
-      this.setAutoFreeze(config.autoFreeze);
-    if (isBoolean(config?.useStrictShallowCopy))
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (isBoolean(config?.useStrictIteration))
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(scope, base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(rootScope, value, parent, key) {
-  const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = parent?.scope_ ?? getCurrentScope();
-  scope.drafts_.push(draft);
-  state.callbacks_ = parent?.callbacks_ ?? [];
-  state.key_ = key;
-  if (parent && key !== void 0) {
-    registerChildFinalizationCallback(parent, state, key);
-  } else {
-    state.callbacks_.push(function rootDraftCleanup(rootScope2) {
-      rootScope2.mapSetPlugin_?.fixSetContents(state);
-      const { patchPlugin_ } = rootScope2;
-      if (state.modified_ && patchPlugin_) {
-        patchPlugin_.generatePatches_(state, [], rootScope2);
-      }
-    });
-  }
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  function getPath(state, path = []) {
-    if (state.key_ !== void 0) {
-      const parentCopy = state.parent_.copy_ ?? state.parent_.base_;
-      const proxyDraft = getProxyDraft(get(parentCopy, state.key_));
-      const valueAtKey = get(parentCopy, state.key_);
-      if (valueAtKey === void 0) {
-        return null;
-      }
-      if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {
-        return null;
-      }
-      if (proxyDraft != null && proxyDraft.base_ !== state.base_) {
-        return null;
-      }
-      const isSet2 = state.parent_.type_ === 3 /* Set */;
-      let key;
-      if (isSet2) {
-        const setParent = state.parent_;
-        key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);
-      } else {
-        key = state.key_;
-      }
-      if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {
-        return null;
-      }
-      path.push(key);
-    }
-    if (state.parent_) {
-      return getPath(state.parent_, path);
-    }
-    path.reverse();
-    try {
-      resolvePath(state.copy_, path);
-    } catch (e) {
-      return null;
-    }
-    return path;
-  }
-  function resolvePath(base, path) {
-    let current2 = base;
-    for (let i = 0; i < path.length - 1; i++) {
-      const key = path[i];
-      current2 = get(current2, key);
-      if (!isObjectish(current2) || current2 === null) {
-        throw new Error(`Cannot resolve path at '${path.join("/")}'`);
-      }
-    }
-    return current2;
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, scope) {
-    if (state.scope_.processedForPatches_.has(state)) {
-      return;
-    }
-    state.scope_.processedForPatches_.add(state);
-    const { patches_, inversePatches_ } = scope;
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    const allReassigned = state.allIndicesReassigned_ === true;
-    for (let i = 0; i < base_.length; i++) {
-      const copiedItem = copy_[i];
-      const baseItem = base_[i];
-      const isAssigned = allReassigned || assigned_?.get(i.toString());
-      if (isAssigned && copiedItem !== baseItem) {
-        const childState = copiedItem?.[DRAFT_STATE];
-        if (childState && childState.modified_) {
-          continue;
-        }
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copiedItem)
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(baseItem)
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_, type_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key, type_);
-      const value = get(copy_, key, type_);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(
-        op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }
-      );
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, scope) {
-    const { patches_, inversePatches_ } = scope;
-    patches_.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches_.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === CONSTRUCTOR))
-          die(errorOffset + 3);
-        if (isFunction(base) && p === PROTOTYPE)
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (!isObjectish(base))
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin(PluginPatches, {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_,
-    getPath
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-        handleCrossReference(state, key, value);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(state.scope_, value, state, key);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    const map = new DraftMap(target, parent);
-    return [map, map[DRAFT_STATE]];
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false,
-        assigned_: void 0,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-        handleCrossReference(state, value, value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    const set2 = new DraftSet(target, parent);
-    return [set2, set2[DRAFT_STATE]];
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(state.scope_, value, state, value);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  function fixSetContents(target) {
-    if (target.type_ === 3 /* Set */ && target.copy_) {
-      const copy = new Set(target.copy_);
-      target.copy_.clear();
-      copy.forEach((value) => {
-        target.copy_.add(getValue(value));
-      });
-    }
-  }
-  loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });
-}
-
-// src/plugins/arrayMethods.ts
-function enableArrayMethods() {
-  const SHIFTING_METHODS = /* @__PURE__ */ new Set(["shift", "unshift"]);
-  const QUEUE_METHODS = /* @__PURE__ */ new Set(["push", "pop"]);
-  const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([
-    ...QUEUE_METHODS,
-    ...SHIFTING_METHODS
-  ]);
-  const REORDERING_METHODS = /* @__PURE__ */ new Set(["reverse", "sort"]);
-  const MUTATING_METHODS = /* @__PURE__ */ new Set([
-    ...RESULT_RETURNING_METHODS,
-    ...REORDERING_METHODS,
-    "splice"
-  ]);
-  const FIND_METHODS = /* @__PURE__ */ new Set(["find", "findLast"]);
-  const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([
-    "filter",
-    "slice",
-    "concat",
-    "flat",
-    ...FIND_METHODS,
-    "findIndex",
-    "findLastIndex",
-    "some",
-    "every",
-    "indexOf",
-    "lastIndexOf",
-    "includes",
-    "join",
-    "toString",
-    "toLocaleString"
-  ]);
-  function isMutatingArrayMethod(method) {
-    return MUTATING_METHODS.has(method);
-  }
-  function isNonMutatingArrayMethod(method) {
-    return NON_MUTATING_METHODS.has(method);
-  }
-  function isArrayOperationMethod(method) {
-    return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);
-  }
-  function enterOperation(state, method) {
-    state.operationMethod = method;
-  }
-  function exitOperation(state) {
-    state.operationMethod = void 0;
-  }
-  function executeArrayMethod(state, operation, markLength = true) {
-    prepareCopy(state);
-    const result = operation();
-    markChanged(state);
-    if (markLength)
-      state.assigned_.set("length", true);
-    return result;
-  }
-  function markAllIndicesReassigned(state) {
-    state.allIndicesReassigned_ = true;
-  }
-  function normalizeSliceIndex(index, length) {
-    if (index < 0) {
-      return Math.max(length + index, 0);
-    }
-    return Math.min(index, length);
-  }
-  function handleSimpleOperation(state, method, args) {
-    return executeArrayMethod(state, () => {
-      const result = state.copy_[method](...args);
-      if (SHIFTING_METHODS.has(method)) {
-        markAllIndicesReassigned(state);
-      }
-      return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;
-    });
-  }
-  function handleReorderingOperation(state, method, args) {
-    return executeArrayMethod(
-      state,
-      () => {
-        ;
-        state.copy_[method](...args);
-        markAllIndicesReassigned(state);
-        return state.draft_;
-      },
-      false
-    );
-  }
-  function createMethodInterceptor(state, originalMethod) {
-    return function interceptedMethod(...args) {
-      const method = originalMethod;
-      enterOperation(state, method);
-      try {
-        if (isMutatingArrayMethod(method)) {
-          if (RESULT_RETURNING_METHODS.has(method)) {
-            return handleSimpleOperation(state, method, args);
-          }
-          if (REORDERING_METHODS.has(method)) {
-            return handleReorderingOperation(state, method, args);
-          }
-          if (method === "splice") {
-            const res = executeArrayMethod(
-              state,
-              () => state.copy_.splice(...args)
-            );
-            markAllIndicesReassigned(state);
-            return res;
-          }
-        } else {
-          return handleNonMutatingOperation(state, method, args);
-        }
-      } finally {
-        exitOperation(state);
-      }
-    };
-  }
-  function handleNonMutatingOperation(state, method, args) {
-    const source = latest(state);
-    if (method === "filter") {
-      const predicate = args[0];
-      const result = [];
-      for (let i = 0; i < source.length; i++) {
-        if (predicate(source[i], i, source)) {
-          result.push(state.draft_[i]);
-        }
-      }
-      return result;
-    }
-    if (FIND_METHODS.has(method)) {
-      const predicate = args[0];
-      const isForward = method === "find";
-      const step = isForward ? 1 : -1;
-      const start = isForward ? 0 : source.length - 1;
-      for (let i = start; i >= 0 && i < source.length; i += step) {
-        if (predicate(source[i], i, source)) {
-          return state.draft_[i];
-        }
-      }
-      return void 0;
-    }
-    if (method === "slice") {
-      const rawStart = args[0] ?? 0;
-      const rawEnd = args[1] ?? source.length;
-      const start = normalizeSliceIndex(rawStart, source.length);
-      const end = normalizeSliceIndex(rawEnd, source.length);
-      const result = [];
-      for (let i = start; i < end; i++) {
-        result.push(state.draft_[i]);
-      }
-      return result;
-    }
-    return source[method](...args);
-  }
-  loadPlugin(PluginArrayMethods, {
-    createMethodInterceptor,
-    isArrayOperationMethod,
-    isMutatingArrayMethod
-  });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-var castDraft = (value) => value;
-var castImmutable = (value) => value;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableArrayMethods,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  immerable,
-  isDraft,
-  isDraftable,
-  nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-});
-//# sourceMappingURL=immer.cjs.development.js.map
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.development.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.development.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/immer.ts","../../src/utils/env.ts","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/patches.ts","../../src/plugins/mapset.ts","../../src/plugins/arrayMethods.ts"],"sourcesContent":["import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport let castDraft = <T>(value: T): Draft<T> => value as any\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","import {isFunction} from \"../internal\"\n\nexport const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = isFunction(e) ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tisArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value[CONSTRUCTOR]?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (isArray(base)) return Array[PROTOTYPE].slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = O.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc[WRITABLE] === false) {\n\t\t\t\tdesc[WRITABLE] = true\n\t\t\t\tdesc[CONFIGURABLE] = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = O.create(proto)\n\t\treturn O.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tO.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tO.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin,\n\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft)\n\t}\n\n\tmaybeFreeze(scope, result, true)\n\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n","import {\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): [Drafted<T, ProxyState>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false,\n\t\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (baseIsArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn [proxy as any, state]\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(prop)\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\n\t}\n}\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? VALUE in desc\n\t\t\t? desc[VALUE]\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent,\n\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (isFunction(base) && !isFunction(recipe)) {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(scope, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || !isObjectish(base)) {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (isFunction(base)) {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(scope, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(PluginPatches).applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n","import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n *   // Optimized - no proxy creation per element\n *   draft.items.sort((a, b) => a.value - b.value)\n *\n *   // filter returns drafts - mutations propagate\n *   const filtered = draft.items.filter(x => x.value > 5)\n *   filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t *    to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t *   Since the result structure differs from the original, tracking mutations\n\t *   back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t//   This is intentional - concat/flat create new data structures rather than\n\t\t//   selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,eAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACf3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,MAAM,IAAW,IAAI;AACzD,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACnCA,IAAM,IAAI;AAEH,IAAM,iBAAiB,EAAE;AAEzB,IAAM,cAAc;AACpB,IAAM,YAAY;AAElB,IAAM,eAAe;AACrB,IAAM,aAAa;AACnB,IAAM,WAAW;AACjB,IAAM,QAAQ;AAId,IAAI,UAAU,CAAC,UAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AAIrE,SAAS,YAAY,OAAqB;AAChD,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,QAAQ,KAAK,KACb,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,CAAC,MAAM,WAAW,IAAI,SAAS,KAChC,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;AAC5D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,CAAC,YAAY,KAAK;AAAG,WAAO;AAC1C,QAAM,QAAQ,eAAe,KAAK;AAClC,MAAI,UAAU,QAAQ,UAAU,EAAE,SAAS;AAAG,WAAO;AAErD,QAAM,OAAO,EAAE,eAAe,KAAK,OAAO,WAAW,KAAK,MAAM,WAAW;AAC3E,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,CAAC,WAAW,IAAI;AAAG,WAAO;AAE9B,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG;AACvD,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,QAAQ,KAAK,oBAEb,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK,MAExB,uBACG,MAAM,IAAI,IAAI,IACd,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,IAAI;AAGzC,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK;AAAA;AAAA,EAGxB,uBAAwB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAAA;AAG9C,IAAI,MAAM,CAChB,OACA,gBACA,OACA,OAAO,YAAY,KAAK,MACpB;AACJ,MAAI;AAAuB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WACjD,sBAAuB;AAC/B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAEO,IAAI,UAAU,MAAM;AAGpB,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAGjE,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAEjE,IAAI,cAAc,CAAC,WAAgB,OAAO,WAAW;AAErD,IAAI,aAAa,CAAC,WACxB,OAAO,WAAW;AAEZ,IAAI,YAAY,CAAC,WACvB,OAAO,WAAW;AAEZ,SAAS,aAAa,OAAkD;AAC9E,QAAM,IAAI,CAAC;AACX,SAAO,OAAO,UAAU,CAAC,KAAK,OAAO,CAAC,MAAM;AAC7C;AAEO,IAAI,gBAAgB,CAAgB,UAAgC;AAC1E,MAAI,CAAC,YAAY,KAAK;AAAG,WAAO;AAChC,SAAQ,QAAiC,WAAW;AACrD;AAGO,IAAI,SAAS,CAAC,UAA2B,MAAM,SAAS,MAAM;AAE9D,IAAI,WAAW,CAAmB,UAAgB;AACxD,QAAM,aAAa,cAAc,KAAK;AACtC,SAAO,aAAa,WAAW,SAAS,WAAW,QAAQ;AAC5D;AAEO,IAAI,gBAAgB,CAAC,UAC3B,MAAM,YAAY,MAAM,QAAQ,MAAM;AAGhC,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,QAAQ,IAAI;AAAG,WAAO,MAAM,SAAS,EAAE,MAAM,KAAK,IAAI;AAE1D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,EAAE,0BAA0B,IAAI;AACpD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,QAAQ,MAAM,OAAO;AAC7B,aAAK,QAAQ,IAAI;AACjB,aAAK,YAAY,IAAI;AAAA,MACtB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,CAAC,YAAY,GAAG;AAAA,UAChB,CAAC,QAAQ,GAAG;AAAA;AAAA,UACZ,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,UAC7B,CAAC,KAAK,GAAG,KAAK,GAAG;AAAA,QAClB;AAAA,IACF;AACA,WAAO,EAAE,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EAClD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,EAAC,GAAG,KAAI;AAAA,IAChB;AACA,UAAM,MAAM,EAAE,OAAO,KAAK;AAC1B,WAAO,EAAE,OAAO,KAAK,IAAI;AAAA,EAC1B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,MAAE,iBAAiB,KAAK;AAAA,MACvB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,IAAE,OAAO,GAAG;AACZ,MAAI;AAGH;AAAA,MACC;AAAA,MACA,CAAC,MAAM,UAAU;AAChB,eAAO,OAAO,IAAI;AAAA,MACnB;AAAA,MACA;AAAA,IACD;AACD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,CAAC,KAAK,GAAG;AACV;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,CAAC,YAAY,GAAG;AAAG,WAAO;AAC9C,SAAO,EAAE,SAAS,GAAG;AACtB;;;AChRO,IAAM,eAAe;AACrB,IAAM,gBAAgB;AACtB,IAAM,qBAAqB;AA8BlC,IAAM,UAIF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,IAAI,iBAAiB,CAA0B,cACrD,CAAC,CAAC,QAAQ,SAAS;AAMb,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;ACxCA,IAAI;AAEG,IAAI,kBAAkB,MAAM;AAEnC,IAAI,cAAc,CACjB,SACA,YACiB;AAAA,EACjB,SAAS,CAAC;AAAA,EACV;AAAA,EACA;AAAA;AAAA;AAAA,EAGA,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,aAAa,oBAAI,IAAI;AAAA,EACrB,sBAAsB,oBAAI,IAAI;AAAA,EAC9B,eAAe,eAAe,YAAY,IACvC,UAAU,YAAY,IACtB;AAAA,EACH,qBAAqB,eAAe,kBAAkB,IACnD,UAAU,kBAAkB,IAC5B;AACJ;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,UAAM,eAAe,UAAU,aAAa;AAC5C,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,IAAI,aAAa,CAACC,WACvB,eAAe,YAAY,cAAcA,MAAK;AAEhD,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;ACpEO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AAEtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAAA,IAChC;AACA,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,mBAAa;AAAA,QACZ,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,SAAS;AAAA,EACnC;AAEA,cAAY,OAAO,QAAQ,IAAI;AAE/B,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY;AAEpD,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,CAAC,OAAO;AACX,UAAM,aAAa,YAAY,OAAO,UAAU,aAAa,SAAS;AACtE,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,YAAY,OAAO,SAAS,GAAG;AACnC,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,MAAM,WAAW;AACrB,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AAEtB,UAAM,EAAC,WAAU,IAAI;AACrB,QAAI,YAAY;AACf,aAAO,WAAW,SAAS,GAAG;AAC7B,cAAM,WAAW,WAAW,IAAI;AAChC,iBAAS,SAAS;AAAA,MACnB;AAAA,IACD;AAEA,+BAA2B,OAAO,SAAS;AAAA,EAC5C;AAGA,SAAO,MAAM;AACd;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;AAEA,SAAS,mBAAmB,OAAmB;AAC9C,QAAM,aAAa;AACnB,QAAM,OAAO;AACd;AAEA,IAAI,cAAc,CAAC,OAAmB,cACrC,MAAM,WAAW;AAGlB,IAAM,yBAAuD,CAAC;AAIvD,SAAS,oBACf,QACA,YACA,gBACA,aACO;AACP,QAAM,aAAa,OAAO,MAAM;AAChC,QAAM,aAAa,OAAO;AAG1B,MAAI,gBAAgB,QAAW;AAC9B,UAAM,eAAe,IAAI,YAAY,aAAa,UAAU;AAC5D,QAAI,iBAAiB,YAAY;AAEhC,UAAI,YAAY,aAAa,gBAAgB,UAAU;AACvD;AAAA,IACD;AAAA,EACD;AAMA,MAAI,CAAC,OAAO,iBAAiB;AAC5B,UAAM,iBAAkB,OAAO,kBAAkB,oBAAI,IAAI;AAGzD,SAAK,YAAY,CAAC,KAAK,UAAU;AAChC,UAAI,QAAQ,KAAK,GAAG;AACnB,cAAM,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC;AAC3C,aAAK,KAAK,GAAG;AACb,uBAAe,IAAI,OAAO,IAAI;AAAA,MAC/B;AAAA,IACD,CAAC;AAAA,EACF;AAGA,QAAM,YACL,OAAO,gBAAgB,IAAI,UAAU,KAAK;AAG3C,aAAW,YAAY,WAAW;AACjC,QAAI,YAAY,UAAU,gBAAgB,UAAU;AAAA,EACrD;AACD;AAKO,SAAS,kCACf,QACA,OACA,KACC;AACD,SAAO,WAAW,KAAK,SAAS,aAAa,WAAW;AACvD,UAAM,QAAoB;AAG1B,QAAI,CAAC,SAAS,CAAC,YAAY,OAAO,SAAS,GAAG;AAC7C;AAAA,IACD;AAGA,cAAU,eAAe,eAAe,KAAK;AAE7C,UAAM,iBAAiB,cAAc,KAAK;AAG1C,wBAAoB,QAAQ,MAAM,UAAU,OAAO,gBAAgB,GAAG;AAEtE,+BAA2B,OAAO,SAAS;AAAA,EAC5C,CAAC;AACF;AAEA,SAAS,2BAA2B,OAAmB,WAAuB;AAC7E,QAAM,iBACL,MAAM,aACN,CAAC,MAAM,eACN,MAAM,yBACL,MAAM,2BACL,MAA0B,0BAC3B,MAAM,WAAW,QAAQ,KAAK;AAEjC,MAAI,gBAAgB;AACnB,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,YAAM,WAAW,aAAc,QAAQ,KAAK;AAE5C,UAAI,UAAU;AACb,qBAAc,iBAAiB,OAAO,UAAU,SAAS;AAAA,MAC1D;AAAA,IACD;AAEA,uBAAmB,KAAK;AAAA,EACzB;AACD;AAEO,SAAS,qBACf,QACA,KACA,OACC;AACD,QAAM,EAAC,OAAM,IAAI;AAEjB,MAAI,QAAQ,KAAK,GAAG;AACnB,UAAM,QAAoB,MAAM,WAAW;AAC3C,QAAI,YAAY,OAAO,MAAM,GAAG;AAG/B,YAAM,WAAW,KAAK,SAAS,wBAAwB;AAEtD,oBAAY,MAAM;AAElB,cAAM,iBAAiB,cAAc,KAAK;AAE1C,4BAAoB,QAAQ,OAAO,gBAAgB,GAAG;AAAA,MACvD,CAAC;AAAA,IACF;AAAA,EACD,WAAW,YAAY,KAAK,GAAG;AAE9B,WAAO,WAAW,KAAK,SAAS,qBAAqB;AACpD,YAAM,aAAa,OAAO,MAAM;AAGhC,UAAI,OAAO,uBAAwB;AAClC,YAAI,WAAW,IAAI,KAAK,GAAG;AAE1B,sBAAY,OAAO,OAAO,aAAa,MAAM;AAAA,QAC9C;AAAA,MACD,OAAO;AAEN,YAAI,IAAI,YAAY,KAAK,OAAO,KAAK,MAAM,OAAO;AACjD,cACC,OAAO,QAAQ,SAAS,MACtB,OAAyC,UAAW,IAAI,GAAG,KAC5D,WAAW,QACZ,OAAO,OACN;AAGD;AAAA,cACC,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,cACnC,OAAO;AAAA,cACP;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AACD;AAEO,SAAS,YACf,QACA,YACA,WACC;AACD,MAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE,WAAO;AAAA,EACR;AAGA,MACC,QAAQ,MAAM,KACd,WAAW,IAAI,MAAM,KACrB,CAAC,YAAY,MAAM,KACnB,SAAS,MAAM,GACd;AACD,WAAO;AAAA,EACR;AAEA,aAAW,IAAI,MAAM;AAGrB,OAAK,QAAQ,CAAC,KAAK,UAAU;AAC5B,QAAI,QAAQ,KAAK,GAAG;AACnB,YAAM,QAAoB,MAAM,WAAW;AAC3C,UAAI,YAAY,OAAO,SAAS,GAAG;AAGlC,cAAM,eAAe,cAAc,KAAK;AAExC,YAAI,QAAQ,KAAK,cAAc,OAAO,KAAK;AAE3C,2BAAmB,KAAK;AAAA,MACzB;AAAA,IACD,WAAW,YAAY,KAAK,GAAG;AAE9B,kBAAY,OAAO,YAAY,SAAS;AAAA,IACzC;AAAA,EACD,CAAC;AAED,SAAO;AACR;;;ACtQO,SAAS,iBACf,MACA,QACuC;AACvC,QAAM,cAAc,QAAQ,IAAI;AAChC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA;AAAA,IAGZ,WAAW;AAAA;AAAA,IAEX,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA,EACb;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,aAAa;AAChB,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO,CAAC,OAAc,KAAK;AAC5B;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,QAAI,cAAc,MAAM,OAAO;AAC/B,UAAM,wBACL,MAAM,2BAA4B,OAAO,SAAS;AAGnD,QAAI,uBAAuB;AAC1B,UAAI,aAAa,uBAAuB,IAAI,GAAG;AAC9C,eAAO,YAAY,wBAAwB,OAAO,IAAI;AAAA,MACvD;AAAA,IACD;AAEA,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,MAAM,MAAM,KAAK,GAAG;AAEpC,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAIA,QACC,yBACC,MAA0B,mBAC3B,aAAa;AAAA,MACX,MAA0B;AAAA,IAC5B,KACA,aAAa,IAAI,GAChB;AAED,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AAEjB,YAAM,WAAW,MAAM,0BAA2B,CAAE,OAAkB;AACtE,YAAM,aAAa,YAAY,MAAM,QAAQ,OAAO,OAAO,QAAQ;AAEnE,aAAQ,MAAM,MAAO,QAAQ,IAAI;AAAA,IAClC;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,MAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,WAAU,WAAW;AAC5D,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAW,IAAI,MAAM,KAAK;AAChC,eAAO;AAAA,MACR;AACA,UACC,GAAG,OAAOA,QAAO,MAChB,UAAU,UAAa,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK;AAE1D,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAW,IAAI,MAAM,IAAI;AAE/B,yBAAqB,OAAO,MAAM,KAAK;AACvC,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AACnC,gBAAY,KAAK;AAEjB,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAW,IAAI,MAAM,KAAK;AAChC,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,YAAM,UAAW,OAAO,IAAI;AAAA,IAC7B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,CAAC,QAAQ,GAAG;AAAA,MACZ,CAAC,YAAY,GAAG,MAAM,2BAA4B,SAAS;AAAA,MAC3D,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,MAC7B,CAAC,KAAK,GAAG,MAAM,IAAI;AAAA,IACpB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AAGrD,SAAS,OAAO,aAAa;AAC5B,MAAI,KAAK,YAAY,GAA+B;AAEpD,aAAW,GAAG,IAAI,WAAW;AAC5B,UAAM,OAAO;AACb,SAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;AACnB,WAAO,GAAG,MAAM,MAAM,IAAI;AAAA,EAC3B;AACD;AACA,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AAC7E,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,SAAS,OACR,KAAK,KAAK;AAAA;AAAA;AAAA,IAGV,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,MAC5B;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,OAAO;AAGjB,UAAM,YAAY,oBAAI,IAAI;AAC1B,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;ACjSO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAiC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,WAAW,IAAI,KAAK,CAAC,WAAW,MAAM,GAAG;AAC5C,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,CAAC,WAAW,MAAM;AAAG,YAAI,CAAC;AAC9B,UAAI,kBAAkB,UAAa,CAAC,WAAW,aAAa;AAAG,YAAI,CAAC;AAEpE,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;AACvC,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,aAAa,EAAE,4BAA4B,MAAM,QAAQ;AAAA,YAClE,UAAU;AAAA,YACV,iBAAiB;AAAA,UAClB,CAAe;AACf,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,WAAW,IAAI,GAAG;AACrB,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA7FC,QAAI,UAAU,QAAQ,UAAU;AAAG,WAAK,cAAc,OAAQ,UAAU;AACxE,QAAI,UAAU,QAAQ,oBAAoB;AACzC,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,UAAU,QAAQ,kBAAkB;AACvC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EA0FA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,aAAa,EAAE;AAClD,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,WACA,OACA,QACA,KACyB;AAIzB,QAAM,CAAC,OAAO,KAAK,IAAI,MAAM,KAAK,IAC/B,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,MAAM,KAAK,IACX,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,QAAQ,QAAQ,UAAU,gBAAgB;AAChD,QAAM,QAAQ,KAAK,KAAK;AAIxB,QAAM,aAAa,QAAQ,cAAc,CAAC;AAC1C,QAAM,OAAO;AAEb,MAAI,UAAU,QAAQ,QAAW;AAChC,sCAAkC,QAAQ,OAAO,GAAG;AAAA,EACrD,OAAO;AAEN,UAAM,WAAW,KAAK,SAAS,iBAAiBC,YAAW;AAC1D,MAAAA,WAAU,eAAe,eAAe,KAAK;AAE7C,YAAM,EAAC,aAAY,IAAIA;AAEvB,UAAI,MAAM,aAAa,cAAc;AACpC,qBAAa,iBAAiB,OAAO,CAAC,GAAGA,UAAS;AAAA,MACnD;AAAA,IACD,CAAC;AAAA,EACF;AAEA,SAAO;AACR;;;AClQO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACXO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,WAAS,QAAQ,OAAmB,OAAkB,CAAC,GAAqB;AAE3E,QAAI,MAAM,SAAS,QAAW;AAG7B,YAAM,aAAa,MAAM,QAAS,SAAS,MAAM,QAAS;AAC1D,YAAM,aAAa,cAAc,IAAI,YAAY,MAAM,IAAK,CAAC;AAC7D,YAAM,aAAa,IAAI,YAAY,MAAM,IAAK;AAE9C,UAAI,eAAe,QAAW;AAC7B,eAAO;AAAA,MACR;AAIA,UACC,eAAe,MAAM,UACrB,eAAe,MAAM,SACrB,eAAe,MAAM,OACpB;AACD,eAAO;AAAA,MACR;AACA,UAAI,cAAc,QAAQ,WAAW,UAAU,MAAM,OAAO;AAC3D,eAAO;AAAA,MACR;AAGA,YAAMC,SAAQ,MAAM,QAAS;AAC7B,UAAI;AAEJ,UAAIA,QAAO;AAEV,cAAM,YAAY,MAAM;AACxB,cAAM,MAAM,KAAK,UAAU,QAAQ,KAAK,CAAC,EAAE,QAAQ,MAAM,IAAI;AAAA,MAC9D,OAAO;AACN,cAAM,MAAM;AAAA,MACb;AAGA,UAAI,EAAGA,UAAS,WAAW,OAAO,OAAQ,IAAI,YAAY,GAAG,IAAI;AAChE,eAAO;AAAA,MACR;AAGA,WAAK,KAAK,GAAG;AAAA,IACd;AAGA,QAAI,MAAM,SAAS;AAClB,aAAO,QAAQ,MAAM,SAAS,IAAI;AAAA,IACnC;AAGA,SAAK,QAAQ;AAEb,QAAI;AAEH,kBAAY,MAAM,OAAO,IAAI;AAAA,IAC9B,SAAS,GAAP;AACD,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,EACR;AAGA,WAAS,YAAY,MAAW,MAAsB;AACrD,QAAIC,WAAU;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,YAAM,MAAM,KAAK,CAAC;AAClB,MAAAA,WAAU,IAAIA,UAAS,GAAG;AAC1B,UAAI,CAAC,YAAYA,QAAO,KAAKA,aAAY,MAAM;AAC9C,cAAM,IAAI,MAAM,2BAA2B,KAAK,KAAK,GAAG,IAAI;AAAA,MAC7D;AAAA,IACD;AACA,WAAOA;AAAA,EACR;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,OACO;AACP,QAAI,MAAM,OAAO,qBAAqB,IAAI,KAAK,GAAG;AACjD;AAAA,IACD;AAEA,UAAM,OAAO,qBAAqB,IAAI,KAAK;AAE3C,UAAM,EAAC,UAAU,gBAAe,IAAI;AAEpC,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAEA,UAAM,gBAAgB,MAAM,0BAA0B;AAGtD,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,YAAM,aAAa,MAAM,CAAC;AAC1B,YAAM,WAAW,MAAM,CAAC;AAExB,YAAM,aAAa,iBAAiB,WAAW,IAAI,EAAE,SAAS,CAAC;AAC/D,UAAI,cAAc,eAAe,UAAU;AAC1C,cAAM,aAAa,aAAa,WAAW;AAC3C,YAAI,cAAc,WAAW,WAAW;AAEvC;AAAA,QACD;AACA,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,UAAU;AAAA,QAC1C,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,QAAQ;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,OAAO,MAAK,IAAI;AAC9B,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,KAAK,KAAK;AACvC,YAAM,QAAQ,IAAI,OAAQ,KAAK,KAAK;AACpC,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ;AAAA,QACP,OAAO,SACJ,EAAC,IAAI,KAAI,IACT,EAAC,IAAI,MAAM,OAAO,wBAAwB,KAAK,EAAC;AAAA,MACpD;AACA,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,OACO;AACP,UAAM,EAAC,UAAU,gBAAe,IAAI;AACpC,aAAU,KAAK;AAAA,MACd,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,oBAAiB,KAAK;AAAA,MACrB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,WAAW,IAAI,KAAK,MAAM;AAAW,cAAI,cAAc,CAAC;AAC5D,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,CAAC,YAAY,IAAI;AAAG,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAC5D;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AACpD,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACxZO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,6BAAqB,OAAO,KAAK,KAAK;AAAA,MACvC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,GAAG;AACzD,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAxIC,aAwIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UACR,QACA,QACgB;AAEhB,UAAM,MAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAAC,KAAY,IAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AACtB,6BAAqB,OAAO,OAAO,KAAK;AAAA,MACzC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA9FC,aA8FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UACR,QACA,QACgB;AAEhB,UAAMC,OAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAACA,MAAYA,KAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,KAAK;AAC3D,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,WAAS,eAAe,QAAoB;AAG3C,QAAI,OAAO,yBAA0B,OAAO,OAAO;AAClD,YAAM,OAAO,IAAI,IAAI,OAAO,KAAK;AACjC,aAAO,MAAM,MAAM;AACnB,WAAK,QAAQ,WAAS;AACrB,eAAO,MAAO,IAAI,SAAS,KAAK,CAAC;AAAA,MAClC,CAAC;AAAA,IACF;AAAA,EACD;AAEA,aAAW,cAAc,EAAC,WAAW,WAAW,eAAc,CAAC;AAChE;;;ACzOO,SAAS,qBAAqB;AACpC,QAAM,mBAAmB,oBAAI,IAAyB,CAAC,SAAS,SAAS,CAAC;AAE1E,QAAM,gBAAgB,oBAAI,IAAyB,CAAC,QAAQ,KAAK,CAAC;AAElE,QAAM,2BAA2B,oBAAI,IAAyB;AAAA,IAC7D,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,oBAAI,IAAyB,CAAC,WAAW,MAAM,CAAC;AAG3E,QAAM,mBAAmB,oBAAI,IAAyB;AAAA,IACrD,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACD,CAAC;AAED,QAAM,eAAe,oBAAI,IAA4B,CAAC,QAAQ,UAAU,CAAC;AAEzE,QAAM,uBAAuB,oBAAI,IAA4B;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAGD,WAAS,sBACR,QACgC;AAChC,WAAO,iBAAiB,IAAI,MAAa;AAAA,EAC1C;AAEA,WAAS,yBACR,QACmC;AACnC,WAAO,qBAAqB,IAAI,MAAa;AAAA,EAC9C;AAEA,WAAS,uBACR,QACiC;AACjC,WAAO,sBAAsB,MAAM,KAAK,yBAAyB,MAAM;AAAA,EACxE;AAEA,WAAS,eACR,OACA,QACC;AACD,UAAM,kBAAkB;AAAA,EACzB;AAEA,WAAS,cAAc,OAAwB;AAC9C,UAAM,kBAAkB;AAAA,EACzB;AAGA,WAAS,mBACR,OACA,WACA,aAAa,MACT;AACJ,gBAAY,KAAK;AACjB,UAAM,SAAS,UAAU;AACzB,gBAAY,KAAK;AACjB,QAAI;AAAY,YAAM,UAAW,IAAI,UAAU,IAAI;AACnD,WAAO;AAAA,EACR;AAEA,WAAS,yBAAyB,OAAwB;AACzD,UAAM,wBAAwB;AAAA,EAC/B;AAEA,WAAS,oBAAoB,OAAe,QAAwB;AACnE,QAAI,QAAQ,GAAG;AACd,aAAO,KAAK,IAAI,SAAS,OAAO,CAAC;AAAA,IAClC;AACA,WAAO,KAAK,IAAI,OAAO,MAAM;AAAA,EAC9B;AAWA,WAAS,sBACR,OACA,QACA,MACC;AACD,WAAO,mBAAmB,OAAO,MAAM;AACtC,YAAM,SAAU,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AAGpD,UAAI,iBAAiB,IAAI,MAA6B,GAAG;AACxD,iCAAyB,KAAK;AAAA,MAC/B;AAGA,aAAO,yBAAyB,IAAI,MAA6B,IAC9D,SACA,MAAM;AAAA,IACV,CAAC;AAAA,EACF;AAWA,WAAS,0BACR,OACA,QACA,MACC;AACD,WAAO;AAAA,MACN;AAAA,MACA,MAAM;AACL;AAAC,QAAC,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AACtC,iCAAyB,KAAK;AAC9B,eAAO,MAAM;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAkBA,WAAS,wBACR,OACA,gBACC;AACD,WAAO,SAAS,qBAAqB,MAAa;AAGjD,YAAM,SAAS;AACf,qBAAe,OAAO,MAAM;AAE5B,UAAI;AAEH,YAAI,sBAAsB,MAAM,GAAG;AAElC,cAAI,yBAAyB,IAAI,MAAM,GAAG;AACzC,mBAAO,sBAAsB,OAAO,QAAQ,IAAI;AAAA,UACjD;AACA,cAAI,mBAAmB,IAAI,MAAM,GAAG;AACnC,mBAAO,0BAA0B,OAAO,QAAQ,IAAI;AAAA,UACrD;AAEA,cAAI,WAAW,UAAU;AACxB,kBAAM,MAAM;AAAA,cAAmB;AAAA,cAAO,MACrC,MAAM,MAAO,OAAO,GAAI,IAAmC;AAAA,YAC5D;AACA,qCAAyB,KAAK;AAC9B,mBAAO;AAAA,UACR;AAAA,QACD,OAAO;AAEN,iBAAO,2BAA2B,OAAO,QAAQ,IAAI;AAAA,QACtD;AAAA,MACD,UAAE;AAED,sBAAc,KAAK;AAAA,MACpB;AAAA,IACD;AAAA,EACD;AA4BA,WAAS,2BACR,OACA,QACA,MACC;AACD,UAAM,SAAS,OAAO,KAAK;AAG3B,QAAI,WAAW,UAAU;AACxB,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AAEpC,iBAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,QAC5B;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAEA,QAAI,aAAa,IAAI,MAAM,GAAG;AAC7B,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,YAAY,WAAW;AAC7B,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,YAAY,IAAI,OAAO,SAAS;AAE9C,eAAS,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,QAAQ,KAAK,MAAM;AAC3D,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AACpC,iBAAO,MAAM,OAAO,CAAC;AAAA,QACtB;AAAA,MACD;AACA,aAAO;AAAA,IACR;AAEA,QAAI,WAAW,SAAS;AACvB,YAAM,WAAW,KAAK,CAAC,KAAK;AAC5B,YAAM,SAAS,KAAK,CAAC,KAAK,OAAO;AAGjC,YAAM,QAAQ,oBAAoB,UAAU,OAAO,MAAM;AACzD,YAAM,MAAM,oBAAoB,QAAQ,OAAO,MAAM;AAErD,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AACjC,eAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,MAC5B;AAEA,aAAO;AAAA,IACR;AAOA,WAAO,OAAO,MAAsC,EAAE,GAAG,IAAI;AAAA,EAC9D;AAEA,aAAW,oBAAoB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;AZhXA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,IAAI,YAAY,CAAI,UAAuB;AAO3C,IAAI,gBAAgB,CAAI,UAA2B;","names":["Immer","immer","current","Immer","base","rootScope","isSet","current","set","Immer"]}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.production.js
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-"use strict";var _e=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var et=Object.prototype.hasOwnProperty;var tt=(e,t)=>{for(var r in t)_e(e,r,{get:t[r],enumerable:!0})},rt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ze(t))!et.call(e,o)&&o!==r&&_e(e,o,{get:()=>t[o],enumerable:!(n=Xe(t,o))||n.enumerable});return e};var nt=e=>rt(_e({},"__esModule",{value:!0}),e);var At={};tt(At,{Immer:()=>me,applyPatches:()=>mt,castDraft:()=>gt,castImmutable:()=>xt,createDraft:()=>St,current:()=>Oe,enableArrayMethods:()=>Qe,enableMapSet:()=>Je,enablePatches:()=>Ye,finishDraft:()=>Pt,freeze:()=>J,immerable:()=>j,isDraft:()=>w,isDraftable:()=>D,nothing:()=>K,original:()=>Ue,produce:()=>lt,produceWithPatches:()=>yt,setAutoFreeze:()=>dt,setUseStrictIteration:()=>ht,setUseStrictShallowCopy:()=>pt});module.exports=nt(At);var K=Symbol.for("immer-nothing"),j=Symbol.for("immer-draftable"),y=Symbol.for("immer-state");function b(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var C=Object,L=C.getPrototypeOf,te="constructor",re="prototype",Pe="configurable",ce="enumerable",se="writable",ne="value",w=e=>!!e&&!!e[y];function D(e){return e?ke(e)||$(e)||!!e[j]||!!e[te]?.[j]||q(e)||Y(e):!1}var at=C[re][te].toString(),ze=new WeakMap;function ke(e){if(!e||!W(e))return!1;let t=L(e);if(t===null||t===C[re])return!0;let r=C.hasOwnProperty.call(t,te)&&t[te];if(r===Object)return!0;if(!V(r))return!1;let n=ze.get(r);return n===void 0&&(n=Function.toString.call(r),ze.set(r,n)),n===at}function Ue(e){return w(e)||b(15,e),e[y].t}function U(e,t,r=!0){H(e)===0?(r?Reflect.ownKeys(e):C.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function H(e){let t=e[y];return t?t.r:$(e)?1:q(e)?2:Y(e)?3:0}var G=(e,t,r=H(e))=>r===2?e.has(t):C[re].hasOwnProperty.call(e,t),k=(e,t,r=H(e))=>r===2?e.get(t):e[t],ae=(e,t,r,n=H(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function je(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var $=Array.isArray,q=e=>e instanceof Map,Y=e=>e instanceof Set,W=e=>typeof e=="object",V=e=>typeof e=="function",ge=e=>typeof e=="boolean";function Le(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Ee=e=>W(e)?e?.[y]:null,O=e=>e.e||e.t,Ve=e=>{let t=Ee(e);return t?t.e??t.t:e},xe=e=>e.s?e.e:e.t;function fe(e,t){if(q(e))return new Map(e);if(Y(e))return new Set(e);if($(e))return Array[re].slice.call(e);let r=ke(e);if(t===!0||t==="class_only"&&!r){let n=C.getOwnPropertyDescriptors(e);delete n[y];let o=Reflect.ownKeys(n);for(let i=0;i<o.length;i++){let d=o[i],S=n[d];S[se]===!1&&(S[se]=!0,S[Pe]=!0),(S.get||S.set)&&(n[d]={[Pe]:!0,[se]:!0,[ce]:S[ce],[ne]:e[d]})}return C.create(L(e),n)}else{let n=L(e);if(n!==null&&r)return{...e};let o=C.create(n);return C.assign(o,e)}}function J(e,t=!1){return oe(e)||w(e)||!D(e)||(H(e)>1&&C.defineProperties(e,{set:Se,add:Se,clear:Se,delete:Se}),C.freeze(e),t&&U(e,(r,n)=>{J(n,!0)},!1)),e}function ot(){b(2)}var Se={[ne]:ot};function oe(e){return e===null||!W(e)?!0:C.isFrozen(e)}var v="MapSet",Q="Patches",le="ArrayMethods",Ae={};function B(e){let t=Ae[e];return t||b(0,e),t}var we=e=>!!Ae[e];function ie(e,t){Ae[e]||(Ae[e]=t)}var ye,X=()=>ye,it=(e,t)=>({o:[],i:e,l:t,F:!0,m:0,P:new Set,T:new Set,I:we(v)?B(v):void 0,E:we(le)?B(le):void 0});function Fe(e,t){t&&(e.x=B(Q),e.p=[],e.d=[],e.C=t)}function de(e){Ie(e),e.o.forEach(st),e.o=null}function Ie(e){e===ye&&(ye=e.i)}var Ce=e=>ye=it(ye,e);function st(e){let t=e[y];t.r===0||t.r===1?t.b():t.g=!0}function Ne(e,t){t.m=t.o.length;let r=t.o[0];if(e!==void 0&&e!==r){r[y].s&&(de(t),b(4)),D(e)&&(e=Be(t,e));let{x:o}=t;o&&o.M(r[y].t,e,t)}else e=Be(t,r);return ct(t,e,!0),de(t),t.p&&t.C(t.p,t.d),e!==K?e:void 0}function Be(e,t){if(oe(t))return t;let r=t[y];if(!r)return Me(t,e.P,e);if(!Te(r,e))return t;if(!r.s)return r.t;if(!r.u){let{f:n}=r;if(n)for(;n.length>0;)n.pop()(e);ve(r,e)}return r.e}function ct(e,t,r=!1){!e.i&&e.l.h&&e.F&&J(t,r)}function Ke(e){e.u=!0,e.n.m--}var Te=(e,t)=>e.n===t,ut=[];function He(e,t,r,n){let o=O(e),i=e.r;if(n!==void 0&&k(o,n,i)===t){ae(o,n,r,i);return}if(!e.D){let S=e.D=new Map;U(o,(p,M)=>{if(w(M)){let a=S.get(M)||[];a.push(p),S.set(M,a)}})}let d=e.D.get(t)??ut;for(let S of d)ae(o,S,r,i)}function We(e,t,r){e.f.push(function(o){let i=t;if(!i||!Te(i,o))return;o.I?.fixSetContents(i);let d=xe(i);He(e,i.c??i,d,r),ve(i,o)})}function ve(e,t){if(e.s&&!e.u&&(e.r===3||e.r===1&&e.R||(e.a?.size??0)>0)){let{x:n}=t;if(n){let o=n.getPath(e);o&&n.O(e,o,t)}Ke(e)}}function pe(e,t,r){let{n}=e;if(w(r)){let o=r[y];Te(o,n)&&o.f.push(function(){Z(e);let d=xe(o);He(e,r,d,t)})}else D(r)&&e.f.push(function(){let i=O(e);e.r===3?i.has(r)&&Me(r,n.P,n):k(i,t,e.r)===r&&n.o.length>1&&(e.a.get(t)??!1)===!0&&e.e&&Me(k(e.e,t,e.r),n.P,n)})}function Me(e,t,r){return!r.l.h&&r.m<1||w(e)||t.has(e)||!D(e)||oe(e)||(t.add(e),U(e,(n,o)=>{if(w(o)){let i=o[y];if(Te(i,r)){let d=xe(i);ae(e,n,d,e.r),Ke(i)}}else D(o)&&Me(o,t,r)})),e}function Ge(e,t){let r=$(e),n={r:r?1:0,n:t?t.n:X(),s:!1,u:!1,a:void 0,i:t,t:e,c:null,e:null,b:null,S:!1,f:void 0},o=n,i=be;r&&(o=[n],i=he);let{revoke:d,proxy:S}=Proxy.revocable(o,i);return n.c=S,n.b=d,[S,n]}var be={get(e,t){if(t===y)return e;let r=e.n.E,n=e.r===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=O(e);if(!G(o,t,e.r))return ft(e,o,t);let i=o[t];if(e.u||!D(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Le(t))return i;if(i===Re(e.t,t)){Z(e);let d=e.r===1?+t:t,S=ee(e.n,i,e,d);return e.e[d]=S}return i},has(e,t){return t in O(e)},ownKeys(e){return Reflect.ownKeys(O(e))},set(e,t,r){let n=$e(O(e),t);if(n?.set)return n.set.call(e.c,r),!0;if(!e.s){let o=Re(O(e),t),i=o?.[y];if(i&&i.t===r)return e.e[t]=r,e.a.set(t,!1),!0;if(je(r,o)&&(r!==void 0||G(e.t,t,e.r)))return!0;Z(e),z(e)}return e.e[t]===r&&(r!==void 0||t in e.e)||Number.isNaN(r)&&Number.isNaN(e.e[t])||(e.e[t]=r,e.a.set(t,!0),pe(e,t,r)),!0},deleteProperty(e,t){return Z(e),Re(e.t,t)!==void 0||t in e.t?(e.a.set(t,!1),z(e)):e.a.delete(t),e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let r=O(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[se]:!0,[Pe]:e.r!==1||t!=="length",[ce]:n[ce],[ne]:r[t]}},defineProperty(){b(11)},getPrototypeOf(e){return L(e.t)},setPrototypeOf(){b(12)}},he={};for(let e in be){let t=be[e];he[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}he.deleteProperty=function(e,t){return he.set.call(this,e,t,void 0)};he.set=function(e,t,r){return be.set.call(this,e[0],t,r,e[0])};function Re(e,t){let r=e[y];return(r?O(r):e)[t]}function ft(e,t,r){let n=$e(t,r);return n?ne in n?n[ne]:n.get?.call(e.c):void 0}function $e(e,t){if(!(t in e))return;let r=L(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=L(r)}}function z(e){e.s||(e.s=!0,e.i&&z(e.i))}function Z(e){e.e||(e.a=new Map,e.e=fe(e.t,e.n.l.A))}var me=class{constructor(t){this.h=!0;this.A=!1;this._=!1;this.produce=(t,r,n)=>{if(V(t)&&!V(r)){let i=r;r=t;let d=this;return function(p=i,...M){return d.produce(p,a=>r.call(this,a,...M))}}V(r)||b(6),n!==void 0&&!V(n)&&b(7);let o;if(D(t)){let i=Ce(this),d=ee(i,t,void 0),S=!0;try{o=r(d),S=!1}finally{S?de(i):Ie(i)}return Fe(i,n),Ne(o,i)}else if(!t||!W(t)){if(o=r(t),o===void 0&&(o=t),o===K&&(o=void 0),this.h&&J(o,!0),n){let i=[],d=[];B(Q).M(t,o,{p:i,d}),n(i,d)}return o}else b(1,t)};this.produceWithPatches=(t,r)=>{if(V(t))return(d,...S)=>this.produceWithPatches(d,p=>t(p,...S));let n,o;return[this.produce(t,r,(d,S)=>{n=d,o=S}),n,o]};ge(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),ge(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),ge(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){D(t)||b(8),w(t)&&(t=Oe(t));let r=Ce(this),n=ee(r,t,void 0);return n[y].S=!0,Ie(r),n}finishDraft(t,r){let n=t&&t[y];(!n||!n.S)&&b(9);let{n:o}=n;return Fe(o,r),Ne(void 0,o)}setAutoFreeze(t){this.h=t}setUseStrictShallowCopy(t){this.A=t}setUseStrictIteration(t){this._=t}shouldUseStrictIteration(){return this._}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){let i=r[n];if(i.path.length===0&&i.op==="replace"){t=i.value;break}}n>-1&&(r=r.slice(n+1));let o=B(Q).N;return w(t)?o(t,r):this.produce(t,i=>o(i,r))}};function ee(e,t,r,n){let[o,i]=q(t)?B(v).w(t,r):Y(t)?B(v).V(t,r):Ge(t,r);return(r?.n??X()).o.push(o),i.f=r?.f??[],i.y=n,r&&n!==void 0?We(r,i,n):i.f.push(function(p){p.I?.fixSetContents(i);let{x:M}=p;i.s&&M&&M.O(i,[],p)}),o}function Oe(e){return w(e)||b(10,e),qe(e)}function qe(e){if(!D(e)||oe(e))return e;let t=e[y],r,n=!0;if(t){if(!t.s)return t.t;t.u=!0,r=fe(e,t.n.l.A),n=t.n.l.shouldUseStrictIteration()}else r=fe(e,!0);return U(r,(o,i)=>{ae(r,o,qe(i))},n),t&&(t.u=!1),r}function Ye(){function t(u,g=[]){if(u.y!==void 0){let m=u.i.e??u.i.t,x=Ee(k(m,u.y)),A=k(m,u.y);if(A===void 0||A!==u.c&&A!==u.t&&A!==u.e||x!=null&&x.t!==u.t)return null;let s=u.i.r===3,l;if(s){let h=u.i;l=Array.from(h.o.keys()).indexOf(u.y)}else l=u.y;if(!(s&&m.size>l||G(m,l)))return null;g.push(l)}if(u.i)return t(u.i,g);g.reverse();try{r(u.e,g)}catch{return null}return g}function r(u,g){let m=u;for(let x=0;x<g.length-1;x++){let A=g[x];if(m=k(m,A),!W(m)||m===null)throw new Error(`Cannot resolve path at '${g.join("/")}'`)}return m}let n="replace",o="add",i="remove";function d(u,g,m){if(u.n.T.has(u))return;u.n.T.add(u);let{p:x,d:A}=m;switch(u.r){case 0:case 2:return p(u,g,x,A);case 1:return S(u,g,x,A);case 3:return M(u,g,x,A)}}function S(u,g,m,x){let{t:A,a:s}=u,l=u.e;l.length<A.length&&([A,l]=[l,A],[m,x]=[x,m]);let h=u.R===!0;for(let f=0;f<A.length;f++){let I=l[f],E=A[f];if((h||s?.get(f.toString()))&&I!==E){let N=I?.[y];if(N&&N.s)continue;let R=g.concat([f]);m.push({op:n,path:R,value:_(I)}),x.push({op:n,path:R,value:_(E)})}}for(let f=A.length;f<l.length;f++){let I=g.concat([f]);m.push({op:o,path:I,value:_(l[f])})}for(let f=l.length-1;A.length<=f;--f){let I=g.concat([f]);x.push({op:i,path:I})}}function p(u,g,m,x){let{t:A,e:s,r:l}=u;U(u.a,(h,f)=>{let I=k(A,h,l),E=k(s,h,l),T=f?G(A,h)?n:o:i;if(I===E&&T===n)return;let N=g.concat(h);m.push(T===i?{op:T,path:N}:{op:T,path:N,value:_(E)}),x.push(T===o?{op:i,path:N}:T===i?{op:o,path:N,value:_(I)}:{op:n,path:N,value:_(I)})})}function M(u,g,m,x){let{t:A,e:s}=u,l=0;A.forEach(h=>{if(!s.has(h)){let f=g.concat([l]);m.push({op:i,path:f,value:h}),x.unshift({op:o,path:f,value:h})}l++}),l=0,s.forEach(h=>{if(!A.has(h)){let f=g.concat([l]);m.push({op:o,path:f,value:h}),x.unshift({op:i,path:f,value:h})}l++})}function a(u,g,m){let{p:x,d:A}=m;x.push({op:n,path:[],value:g===K?void 0:g}),A.push({op:n,path:[],value:u})}function c(u,g){return g.forEach(m=>{let{path:x,op:A}=m,s=u;for(let I=0;I<x.length-1;I++){let E=H(s),T=x[I];typeof T!="string"&&typeof T!="number"&&(T=""+T),(E===0||E===1)&&(T==="__proto__"||T===te)&&b(16+3),V(s)&&T===re&&b(16+3),s=k(s,T),W(s)||b(16+2,x.join("/"))}let l=H(s),h=P(m.value),f=x[x.length-1];switch(A){case n:switch(l){case 2:return s.set(f,h);case 3:b(16);default:return s[f]=h}case o:switch(l){case 1:return f==="-"?s.push(h):s.splice(f,0,h);case 2:return s.set(f,h);case 3:return s.add(h);default:return s[f]=h}case i:switch(l){case 1:return s.splice(f,1);case 2:return s.delete(f);case 3:return s.delete(m.value);default:return delete s[f]}default:b(16+1,A)}}),u}function P(u){if(!D(u))return u;if($(u))return u.map(P);if(q(u))return new Map(Array.from(u.entries()).map(([m,x])=>[m,P(x)]));if(Y(u))return new Set(Array.from(u).map(P));let g=Object.create(L(u));for(let m in u)g[m]=P(u[m]);return G(u,j)&&(g[j]=u[j]),g}function _(u){return w(u)?P(u):u}ie(Q,{N:c,O:d,M:a,getPath:t})}function Je(){class e extends Map{constructor(a,c){super();this[y]={r:2,i:c,n:c?c.n:X(),s:!1,u:!1,e:void 0,a:void 0,t:a,c:this,S:!1,g:!1,f:[]}}get size(){return O(this[y]).size}has(a){return O(this[y]).has(a)}set(a,c){let P=this[y];return d(P),(!O(P).has(a)||O(P).get(a)!==c)&&(r(P),z(P),P.a.set(a,!0),P.e.set(a,c),P.a.set(a,!0),pe(P,a,c)),this}delete(a){if(!this.has(a))return!1;let c=this[y];return d(c),r(c),z(c),c.t.has(a)?c.a.set(a,!1):c.a.delete(a),c.e.delete(a),!0}clear(){let a=this[y];d(a),O(a).size&&(r(a),z(a),a.a=new Map,U(a.t,c=>{a.a.set(c,!1)}),a.e.clear())}forEach(a,c){let P=this[y];O(P).forEach((_,u,g)=>{a.call(c,this.get(u),u,this)})}get(a){let c=this[y];d(c);let P=O(c).get(a);if(c.u||!D(P)||P!==c.t.get(a))return P;let _=ee(c.n,P,c,a);return r(c),c.e.set(a,_),_}keys(){return O(this[y]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let c=a.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let c=a.next();if(c.done)return c;let P=this.get(c.value);return{done:!1,value:[c.value,P]}}}}[(y,Symbol.iterator)](){return this.entries()}}function t(p,M){let a=new e(p,M);return[a,a[y]]}function r(p){p.e||(p.a=new Map,p.e=new Map(p.t))}class n extends Set{constructor(a,c){super();this[y]={r:3,i:c,n:c?c.n:X(),s:!1,u:!1,e:void 0,t:a,c:this,o:new Map,g:!1,S:!1,a:void 0,f:[]}}get size(){return O(this[y]).size}has(a){let c=this[y];return d(c),c.e?!!(c.e.has(a)||c.o.has(a)&&c.e.has(c.o.get(a))):c.t.has(a)}add(a){let c=this[y];return d(c),this.has(a)||(i(c),z(c),c.e.add(a),pe(c,a,a)),this}delete(a){if(!this.has(a))return!1;let c=this[y];return d(c),i(c),z(c),c.e.delete(a)||(c.o.has(a)?c.e.delete(c.o.get(a)):!1)}clear(){let a=this[y];d(a),O(a).size&&(i(a),z(a),a.e.clear())}values(){let a=this[y];return d(a),i(a),a.e.values()}entries(){let a=this[y];return d(a),i(a),a.e.entries()}keys(){return this.values()}[(y,Symbol.iterator)](){return this.values()}forEach(a,c){let P=this.values(),_=P.next();for(;!_.done;)a.call(c,_.value,_.value,this),_=P.next()}}function o(p,M){let a=new n(p,M);return[a,a[y]]}function i(p){p.e||(p.e=new Set,p.t.forEach(M=>{if(D(M)){let a=ee(p.n,M,p,M);p.o.set(M,a),p.e.add(a)}else p.e.add(M)}))}function d(p){p.g&&b(3,JSON.stringify(O(p)))}function S(p){if(p.r===3&&p.e){let M=new Set(p.e);p.e.clear(),M.forEach(a=>{p.e.add(Ve(a))})}}ie(v,{w:t,V:o,fixSetContents:S})}function Qe(){let e=new Set(["shift","unshift"]),t=new Set(["push","pop"]),r=new Set([...t,...e]),n=new Set(["reverse","sort"]),o=new Set([...r,...n,"splice"]),i=new Set(["find","findLast"]),d=new Set(["filter","slice","concat","flat",...i,"findIndex","findLastIndex","some","every","indexOf","lastIndexOf","includes","join","toString","toLocaleString"]);function S(s){return o.has(s)}function p(s){return d.has(s)}function M(s){return S(s)||p(s)}function a(s,l){s.operationMethod=l}function c(s){s.operationMethod=void 0}function P(s,l,h=!0){Z(s);let f=l();return z(s),h&&s.a.set("length",!0),f}function _(s){s.R=!0}function u(s,l){return s<0?Math.max(l+s,0):Math.min(s,l)}function g(s,l,h){return P(s,()=>{let f=s.e[l](...h);return e.has(l)&&_(s),r.has(l)?f:s.c})}function m(s,l,h){return P(s,()=>(s.e[l](...h),_(s),s.c),!1)}function x(s,l){return function(...f){let I=l;a(s,I);try{if(S(I)){if(r.has(I))return g(s,I,f);if(n.has(I))return m(s,I,f);if(I==="splice"){let E=P(s,()=>s.e.splice(...f));return _(s),E}}else return A(s,I,f)}finally{c(s)}}}function A(s,l,h){let f=O(s);if(l==="filter"){let I=h[0],E=[];for(let T=0;T<f.length;T++)I(f[T],T,f)&&E.push(s.c[T]);return E}if(i.has(l)){let I=h[0],E=l==="find",T=E?1:-1,N=E?0:f.length-1;for(let R=N;R>=0&&R<f.length;R+=T)if(I(f[R],R,f))return s.c[R];return}if(l==="slice"){let I=h[0]??0,E=h[1]??f.length,T=u(I,f.length),N=u(E,f.length),R=[];for(let De=T;De<N;De++)R.push(s.c[De]);return R}return f[l](...h)}ie(le,{createMethodInterceptor:x,isArrayOperationMethod:M,isMutatingArrayMethod:S})}var F=new me,lt=F.produce,yt=F.produceWithPatches.bind(F),dt=F.setAutoFreeze.bind(F),pt=F.setUseStrictShallowCopy.bind(F),ht=F.setUseStrictIteration.bind(F),mt=F.applyPatches.bind(F),St=F.createDraft.bind(F),Pt=F.finishDraft.bind(F),gt=e=>e,xt=e=>e;0&&(module.exports={Immer,applyPatches,castDraft,castImmutable,createDraft,current,enableArrayMethods,enableMapSet,enablePatches,finishDraft,freeze,immerable,isDraft,isDraftable,nothing,original,produce,produceWithPatches,setAutoFreeze,setUseStrictIteration,setUseStrictShallowCopy});
-//# sourceMappingURL=immer.cjs.production.js.map
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.production.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/immer.cjs.production.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/immer.ts","../../src/utils/env.ts","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/patches.ts","../../src/plugins/mapset.ts","../../src/plugins/arrayMethods.ts"],"sourcesContent":["import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport let castDraft = <T>(value: T): Draft<T> => value as any\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","import {isFunction} from \"../internal\"\n\nexport const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = isFunction(e) ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tisArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value[CONSTRUCTOR]?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (isArray(base)) return Array[PROTOTYPE].slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = O.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc[WRITABLE] === false) {\n\t\t\t\tdesc[WRITABLE] = true\n\t\t\t\tdesc[CONFIGURABLE] = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = O.create(proto)\n\t\treturn O.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tO.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tO.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin,\n\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft)\n\t}\n\n\tmaybeFreeze(scope, result, true)\n\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n","import {\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): [Drafted<T, ProxyState>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false,\n\t\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (baseIsArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn [proxy as any, state]\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(prop)\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\n\t}\n}\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? VALUE in desc\n\t\t\t? desc[VALUE]\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent,\n\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (isFunction(base) && !isFunction(recipe)) {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(scope, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || !isObjectish(base)) {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (isFunction(base)) {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(scope, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(PluginPatches).applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n","import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n *   // Optimized - no proxy creation per element\n *   draft.items.sort((a, b) => a.value - b.value)\n *\n *   // filter returns drafts - mutations propagate\n *   const filtered = draft.items.filter(x => x.value > 5)\n *   filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t *    to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t *   Since the result structure differs from the original, tracking mutations\n\t *   back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t//   This is intentional - concat/flat create new data structures rather than\n\t\t//   selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\n}\n"],"mappings":"ubAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,WAAAE,GAAA,iBAAAC,GAAA,cAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,YAAAC,GAAA,uBAAAC,GAAA,iBAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,WAAAC,EAAA,cAAAC,EAAA,YAAAC,EAAA,gBAAAC,EAAA,YAAAC,EAAA,aAAAC,GAAA,YAAAC,GAAA,uBAAAC,GAAA,kBAAAC,GAAA,0BAAAC,GAAA,4BAAAC,KAAA,eAAAC,GAAAvB,ICKO,IAAMwB,EAAyB,OAAO,IAAI,eAAe,EAUnDC,EAA2B,OAAO,IAAI,iBAAiB,EAEvDC,EAA6B,OAAO,IAAI,aAAa,ECuB3D,SAASC,EAAIC,KAAkBC,EAAoB,CAMzD,MAAM,IAAI,MACT,8BAA8BD,0CAC/B,CACD,CCnCA,IAAME,EAAI,OAEGC,EAAiBD,EAAE,eAEnBE,GAAc,cACdC,GAAY,YAEZC,GAAe,eACfC,GAAa,aACbC,GAAW,WACXC,GAAQ,QAIVC,EAAWC,GAAwB,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMC,CAAW,EAIrE,SAASC,EAAYF,EAAqB,CAChD,OAAKA,EAEJG,GAAcH,CAAK,GACnBI,EAAQJ,CAAK,GACb,CAAC,CAACA,EAAMK,CAAS,GACjB,CAAC,CAACL,EAAMP,EAAW,IAAIY,CAAS,GAChCC,EAAMN,CAAK,GACXO,EAAMP,CAAK,EAPO,EASpB,CAEA,IAAMQ,GAAmBjB,EAAEG,EAAS,EAAED,EAAW,EAAE,SAAS,EACtDgB,GAAoB,IAAI,QAEvB,SAASN,GAAcH,EAAqB,CAClD,GAAI,CAACA,GAAS,CAACU,EAAYV,CAAK,EAAG,MAAO,GAC1C,IAAMW,EAAQnB,EAAeQ,CAAK,EAClC,GAAIW,IAAU,MAAQA,IAAUpB,EAAEG,EAAS,EAAG,MAAO,GAErD,IAAMkB,EAAOrB,EAAE,eAAe,KAAKoB,EAAOlB,EAAW,GAAKkB,EAAMlB,EAAW,EAC3E,GAAImB,IAAS,OAAQ,MAAO,GAE5B,GAAI,CAACC,EAAWD,CAAI,EAAG,MAAO,GAE9B,IAAIE,EAAaL,GAAkB,IAAIG,CAAI,EAC3C,OAAIE,IAAe,SAClBA,EAAa,SAAS,SAAS,KAAKF,CAAI,EACxCH,GAAkB,IAAIG,EAAME,CAAU,GAGhCA,IAAeN,EACvB,CAKO,SAASO,GAASf,EAA0B,CAClD,OAAKD,EAAQC,CAAK,GAAGgB,EAAI,GAAIhB,CAAK,EAC3BA,EAAMC,CAAW,EAAEgB,CAC3B,CAgBO,SAASC,EAAKC,EAAUC,EAAWC,EAAkB,GAAM,CAC7DC,EAAYH,CAAG,IAAM,GAGXE,EAAS,QAAQ,QAAQF,CAAG,EAAI5B,EAAE,KAAK4B,CAAG,GAClD,QAAQI,GAAO,CACnBH,EAAKG,EAAKJ,EAAII,CAAG,EAAGJ,CAAG,CACxB,CAAC,EAEDA,EAAI,QAAQ,CAACK,EAAYC,IAAeL,EAAKK,EAAOD,EAAOL,CAAG,CAAC,CAEjE,CAGO,SAASG,EAAYI,EAAsB,CACjD,IAAMC,EAAgCD,EAAMzB,CAAW,EACvD,OAAO0B,EACJA,EAAMC,EACNxB,EAAQsB,CAAK,IAEbpB,EAAMoB,CAAK,IAEXnB,EAAMmB,CAAK,KAGf,CAGO,IAAIG,EAAM,CAChBH,EACAI,EACAC,EAAOT,EAAYI,CAAK,IAExBK,IAAS,EACNL,EAAM,IAAII,CAAI,EACdvC,EAAEG,EAAS,EAAE,eAAe,KAAKgC,EAAOI,CAAI,EAGrCE,EAAM,CAChBN,EACAI,EACAC,EAAOT,EAAYI,CAAK,IAGxBK,IAAS,EAAeL,EAAM,IAAII,CAAI,EAAIJ,EAAMI,CAAI,EAG1CG,GAAM,CAChBP,EACAQ,EACAlC,EACA+B,EAAOT,EAAYI,CAAK,IACpB,CACAK,IAAS,EAAcL,EAAM,IAAIQ,EAAgBlC,CAAK,EACjD+B,IAAS,EACjBL,EAAM,IAAI1B,CAAK,EACT0B,EAAMQ,CAAc,EAAIlC,CAChC,EAGO,SAASmC,GAAGC,EAAQC,EAAiB,CAE3C,OAAID,IAAMC,EACFD,IAAM,GAAK,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,CAE1B,CAEO,IAAIjC,EAAU,MAAM,QAGhBE,EAASgC,GAAkCA,aAAkB,IAG7D/B,EAAS+B,GAAkCA,aAAkB,IAE7D5B,EAAe4B,GAAgB,OAAOA,GAAW,SAEjDzB,EAAcyB,GACxB,OAAOA,GAAW,WAERC,GAAaD,GACvB,OAAOA,GAAW,UAEZ,SAASE,GAAaxC,EAAkD,CAC9E,IAAMyC,EAAI,CAACzC,EACX,OAAO,OAAO,UAAUyC,CAAC,GAAK,OAAOA,CAAC,IAAMzC,CAC7C,CAEO,IAAI0C,GAAgC1C,GACrCU,EAAYV,CAAK,EACdA,IAAiCC,CAAW,EADpB,KAKtB0C,EAAUhB,GAA2BA,EAAMiB,GAASjB,EAAMV,EAE1D4B,GAA8B7C,GAAgB,CACxD,IAAM8C,EAAaJ,GAAc1C,CAAK,EACtC,OAAO8C,EAAaA,EAAWF,GAASE,EAAW7B,EAAQjB,CAC5D,EAEW+C,GAAiBpB,GAC3BA,EAAMqB,EAAYrB,EAAMiB,EAAQjB,EAAMV,EAGhC,SAASgC,GAAYC,EAAW7B,EAAoB,CAC1D,GAAIf,EAAM4C,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI3C,EAAM2C,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI9C,EAAQ8C,CAAI,EAAG,OAAO,MAAMxD,EAAS,EAAE,MAAM,KAAKwD,CAAI,EAE1D,IAAMC,EAAUhD,GAAc+C,CAAI,EAElC,GAAI7B,IAAW,IAASA,IAAW,cAAgB,CAAC8B,EAAU,CAE7D,IAAMC,EAAc7D,EAAE,0BAA0B2D,CAAI,EACpD,OAAOE,EAAYnD,CAAkB,EACrC,IAAIoD,EAAO,QAAQ,QAAQD,CAAW,EACtC,QAAS,EAAI,EAAG,EAAIC,EAAK,OAAQ,IAAK,CACrC,IAAM9B,EAAW8B,EAAK,CAAC,EACjBC,EAAOF,EAAY7B,CAAG,EACxB+B,EAAKzD,EAAQ,IAAM,KACtByD,EAAKzD,EAAQ,EAAI,GACjByD,EAAK3D,EAAY,EAAI,KAKlB2D,EAAK,KAAOA,EAAK,OACpBF,EAAY7B,CAAG,EAAI,CAClB,CAAC5B,EAAY,EAAG,GAChB,CAACE,EAAQ,EAAG,GACZ,CAACD,EAAU,EAAG0D,EAAK1D,EAAU,EAC7B,CAACE,EAAK,EAAGoD,EAAK3B,CAAG,CAClB,GAEF,OAAOhC,EAAE,OAAOC,EAAe0D,CAAI,EAAGE,CAAW,MAC3C,CAEN,IAAMzC,EAAQnB,EAAe0D,CAAI,EACjC,GAAIvC,IAAU,MAAQwC,EACrB,MAAO,CAAC,GAAGD,CAAI,EAEhB,IAAM/B,EAAM5B,EAAE,OAAOoB,CAAK,EAC1B,OAAOpB,EAAE,OAAO4B,EAAK+B,CAAI,EAE3B,CAUO,SAASK,EAAUpC,EAAUqC,EAAgB,GAAU,CAC7D,OAAIC,GAAStC,CAAG,GAAKpB,EAAQoB,CAAG,GAAK,CAACjB,EAAYiB,CAAG,IACjDG,EAAYH,CAAG,EAAI,GACtB5B,EAAE,iBAAiB4B,EAAK,CACvB,IAAKuC,GACL,IAAKA,GACL,MAAOA,GACP,OAAQA,EACT,CAAC,EAEFnE,EAAE,OAAO4B,CAAG,EACRqC,GAGHtC,EACCC,EACA,CAACwC,EAAM3D,IAAU,CAChBuD,EAAOvD,EAAO,EAAI,CACnB,EACA,EACD,GACMmB,CACR,CAEA,SAASyC,IAA8B,CACtC5C,EAAI,CAAC,CACN,CAEA,IAAM0C,GAA2B,CAChC,CAAC5D,EAAK,EAAG8D,EACV,EAEO,SAASH,GAAStC,EAAmB,CAE3C,OAAIA,IAAQ,MAAQ,CAACT,EAAYS,CAAG,EAAU,GACvC5B,EAAE,SAAS4B,CAAG,CACtB,CChRO,IAAM0C,EAAe,SACfC,EAAgB,UAChBC,GAAqB,eA8B5BC,GAIF,CAAC,EAIE,SAASC,EACfC,EACiC,CACjC,IAAMC,EAASH,GAAQE,CAAS,EAChC,OAAKC,GACJC,EAAI,EAAGF,CAAS,EAGVC,CACR,CAEO,IAAIE,GAA2CH,GACrD,CAAC,CAACF,GAAQE,CAAS,EAMb,SAASI,GACfC,EACAC,EACO,CACFC,GAAQF,CAAS,IAAGE,GAAQF,CAAS,EAAIC,EAC/C,CCxCA,IAAIE,GAEOC,EAAkB,IAAMD,GAE/BE,GAAc,CACjBC,EACAC,KACiB,CACjBC,EAAS,CAAC,EACVF,IACAC,IAGAE,EAAgB,GAChBC,EAAoB,EACpBC,EAAa,IAAI,IACjBC,EAAsB,IAAI,IAC1BC,EAAeC,GAAeC,CAAY,EACvCC,EAAUD,CAAY,EACtB,OACHE,EAAqBH,GAAeI,EAAkB,EACnDF,EAAUE,EAAkB,EAC5B,MACJ,GAEO,SAASC,GACfC,EACAC,EACC,CACGA,IACHD,EAAME,EAAeN,EAAUO,CAAa,EAC5CH,EAAMI,EAAW,CAAC,EAClBJ,EAAMK,EAAkB,CAAC,EACzBL,EAAMM,EAAiBL,EAEzB,CAEO,SAASM,GAAYP,EAAmB,CAC9CQ,GAAWR,CAAK,EAChBA,EAAMZ,EAAQ,QAAQqB,EAAW,EAEjCT,EAAMZ,EAAU,IACjB,CAEO,SAASoB,GAAWR,EAAmB,CACzCA,IAAUjB,KACbA,GAAeiB,EAAMd,EAEvB,CAEO,IAAIwB,GAAcC,GACvB5B,GAAeE,GAAYF,GAAc4B,CAAK,EAEhD,SAASF,GAAYG,EAAgB,CACpC,IAAMC,EAAoBD,EAAME,CAAW,EACvCD,EAAME,IAAU,GAAmBF,EAAME,IAAU,EACtDF,EAAMG,EAAQ,EACVH,EAAMI,EAAW,EACvB,CCpEO,SAASC,GAAcC,EAAaC,EAAmB,CAC7DA,EAAMC,EAAqBD,EAAME,EAAQ,OACzC,IAAMC,EAAYH,EAAME,EAAS,CAAC,EAGlC,GAFmBH,IAAW,QAAaA,IAAWI,EAEtC,CACXA,EAAUC,CAAW,EAAEC,IAC1BC,GAAYN,CAAK,EACjBO,EAAI,CAAC,GAEFC,EAAYT,CAAM,IAErBA,EAASU,GAAST,EAAOD,CAAM,GAEhC,GAAM,CAACW,GAAY,EAAIV,EACnBU,GACHA,EAAaC,EACZR,EAAUC,CAAW,EAAEQ,EACvBb,EACAC,CACD,OAIDD,EAASU,GAAST,EAAOG,CAAS,EAGnC,OAAAU,GAAYb,EAAOD,EAAQ,EAAI,EAE/BO,GAAYN,CAAK,EACbA,EAAMc,GACTd,EAAMe,EAAgBf,EAAMc,EAAUd,EAAMgB,CAAgB,EAEtDjB,IAAWkB,EAAUlB,EAAS,MACtC,CAEA,SAASU,GAASS,EAAuBC,EAAY,CAEpD,GAAIC,GAASD,CAAK,EAAG,OAAOA,EAE5B,IAAME,EAAoBF,EAAMf,CAAW,EAC3C,GAAI,CAACiB,EAEJ,OADmBC,GAAYH,EAAOD,EAAUK,EAAaL,CAAS,EAKvE,GAAI,CAACM,GAAYH,EAAOH,CAAS,EAChC,OAAOC,EAIR,GAAI,CAACE,EAAMhB,EACV,OAAOgB,EAAMT,EAGd,GAAI,CAACS,EAAMI,EAAY,CAEtB,GAAM,CAACC,GAAU,EAAIL,EACrB,GAAIK,EACH,KAAOA,EAAW,OAAS,GACTA,EAAW,IAAI,EACvBR,CAAS,EAIpBS,GAA2BN,EAAOH,CAAS,EAI5C,OAAOG,EAAMO,CACd,CAEA,SAASf,GAAYb,EAAmBmB,EAAYU,EAAO,GAAO,CAE7D,CAAC7B,EAAM8B,GAAW9B,EAAM+B,EAAOC,GAAehC,EAAMiC,GACvDC,EAAOf,EAAOU,CAAI,CAEpB,CAEA,SAASM,GAAmBd,EAAmB,CAC9CA,EAAMI,EAAa,GACnBJ,EAAMe,EAAOnC,GACd,CAEA,IAAIuB,GAAc,CAACH,EAAmBH,IACrCG,EAAMe,IAAWlB,EAGZmB,GAAuD,CAAC,EAIvD,SAASC,GACfC,EACAC,EACAC,EACAC,EACO,CACP,IAAMC,EAAaC,EAAOL,CAAM,EAC1BM,EAAaN,EAAOO,EAG1B,GAAIJ,IAAgB,QACEK,EAAIJ,EAAYD,EAAaG,CAAU,IACvCL,EAAY,CAEhCQ,GAAIL,EAAYD,EAAaD,EAAgBI,CAAU,EACvD,OAQF,GAAI,CAACN,EAAOU,EAAiB,CAC5B,IAAMC,EAAkBX,EAAOU,EAAkB,IAAI,IAGrDE,EAAKR,EAAY,CAACS,EAAKjC,IAAU,CAChC,GAAIkC,EAAQlC,CAAK,EAAG,CACnB,IAAMmC,EAAOJ,EAAe,IAAI/B,CAAK,GAAK,CAAC,EAC3CmC,EAAK,KAAKF,CAAG,EACbF,EAAe,IAAI/B,EAAOmC,CAAI,EAEhC,CAAC,EAIF,IAAMC,EACLhB,EAAOU,EAAgB,IAAIT,CAAU,GAAKH,GAG3C,QAAWmB,KAAYD,EACtBP,GAAIL,EAAYa,EAAUf,EAAgBI,CAAU,CAEtD,CAKO,SAASY,GACflB,EACAmB,EACAN,EACC,CACDb,EAAOb,EAAW,KAAK,SAAsBR,EAAW,CACvD,IAAMG,EAAoBqC,EAG1B,GAAI,CAACrC,GAAS,CAACG,GAAYH,EAAOH,CAAS,EAC1C,OAIDA,EAAUyC,GAAe,eAAetC,CAAK,EAE7C,IAAMoB,EAAiBmB,GAAcvC,CAAK,EAG1CiB,GAAoBC,EAAQlB,EAAMwC,GAAUxC,EAAOoB,EAAgBW,CAAG,EAEtEzB,GAA2BN,EAAOH,CAAS,CAC5C,CAAC,CACF,CAEA,SAASS,GAA2BN,EAAmBH,EAAuB,CAS7E,GAPCG,EAAMhB,GACN,CAACgB,EAAMI,IACNJ,EAAMyB,IAAU,GACfzB,EAAMyB,IAAU,GACfzB,EAA0ByC,IAC3BzC,EAAM0C,GAAW,MAAQ,GAAK,GAEb,CACnB,GAAM,CAACrD,GAAY,EAAIQ,EACvB,GAAIR,EAAc,CACjB,IAAMsD,EAAWtD,EAAc,QAAQW,CAAK,EAExC2C,GACHtD,EAAcuD,EAAiB5C,EAAO2C,EAAU9C,CAAS,EAI3DiB,GAAmBd,CAAK,EAE1B,CAEO,SAAS6C,GACfC,EACAf,EACAjC,EACC,CACD,GAAM,CAACiB,CAAM,EAAI+B,EAEjB,GAAId,EAAQlC,CAAK,EAAG,CACnB,IAAME,EAAoBF,EAAMf,CAAW,EACvCoB,GAAYH,EAAOe,CAAM,GAG5Bf,EAAMK,EAAW,KAAK,UAAiC,CAEtD0C,EAAYD,CAAM,EAElB,IAAM1B,EAAiBmB,GAAcvC,CAAK,EAE1CiB,GAAoB6B,EAAQhD,EAAOsB,EAAgBW,CAAG,CACvD,CAAC,OAEQ5C,EAAYW,CAAK,GAE3BgD,EAAOzC,EAAW,KAAK,UAA8B,CACpD,IAAM2C,EAAazB,EAAOuB,CAAM,EAG5BA,EAAOrB,IAAU,EAChBuB,EAAW,IAAIlD,CAAK,GAEvBG,GAAYH,EAAOiB,EAAOb,EAAaa,CAAM,EAI1CW,EAAIsB,EAAYjB,EAAKe,EAAOrB,CAAK,IAAM3B,GAEzCiB,EAAOlC,EAAQ,OAAS,IACtBiE,EAAyCJ,EAAW,IAAIX,CAAG,GAC5D,MAAW,IACZe,EAAOvC,GAIPN,GACCyB,EAAIoB,EAAOvC,EAAOwB,EAAKe,EAAOrB,CAAK,EACnCV,EAAOb,EACPa,CACD,CAIJ,CAAC,CAEH,CAEO,SAASd,GACf6C,EACAG,EACApD,EACC,CAWD,MAVI,CAACA,EAAUa,EAAOC,GAAed,EAAUjB,EAAqB,GAWnEoD,EAAQc,CAAM,GACdG,EAAW,IAAIH,CAAM,GACrB,CAAC3D,EAAY2D,CAAM,GACnB/C,GAAS+C,CAAM,IAKhBG,EAAW,IAAIH,CAAM,EAGrBhB,EAAKgB,EAAQ,CAACf,EAAKjC,IAAU,CAC5B,GAAIkC,EAAQlC,CAAK,EAAG,CACnB,IAAME,EAAoBF,EAAMf,CAAW,EAC3C,GAAIoB,GAAYH,EAAOH,CAAS,EAAG,CAGlC,IAAMqD,EAAeX,GAAcvC,CAAK,EAExC2B,GAAImB,EAAQf,EAAKmB,EAAcJ,EAAOrB,CAAK,EAE3CX,GAAmBd,CAAK,QAEfb,EAAYW,CAAK,GAE3BG,GAAYH,EAAOmD,EAAYpD,CAAS,CAE1C,CAAC,GAEMiD,CACR,CCtQO,SAASK,GACfC,EACAC,EACuC,CACvC,IAAMC,EAAcC,EAAQH,CAAI,EAC1BI,EAAoB,CACzBC,EAAOH,MAEPI,EAAQL,EAASA,EAAOK,EAASC,EAAgB,EAEjDC,EAAW,GAEXC,EAAY,GAGZC,EAAW,OAEXC,EAASV,EAETW,EAAOZ,EAEPa,EAAQ,KAERC,EAAO,KAEPC,EAAS,KACTC,EAAW,GAEXC,EAAY,MACb,EAQIC,EAAYd,EACZe,EAA2CC,GAC3ClB,IACHgB,EAAS,CAACd,CAAK,EACfe,EAAQE,IAGT,GAAM,CAAC,OAAAC,EAAQ,MAAAC,CAAK,EAAI,MAAM,UAAUL,EAAQC,CAAK,EACrD,OAAAf,EAAMS,EAASU,EACfnB,EAAMW,EAAUO,EACT,CAACC,EAAcnB,CAAK,CAC5B,CAKO,IAAMgB,GAAwC,CACpD,IAAIhB,EAAOoB,EAAM,CAChB,GAAIA,IAASC,EAAa,OAAOrB,EAEjC,IAAIsB,EAActB,EAAME,EAAOqB,EACzBC,EACLxB,EAAMC,IAAU,GAAkB,OAAOmB,GAAS,SAGnD,GAAII,GACCF,GAAa,uBAAuBF,CAAI,EAC3C,OAAOE,EAAY,wBAAwBtB,EAAOoB,CAAI,EAIxD,IAAMK,EAASC,EAAO1B,CAAK,EAC3B,GAAI,CAAC2B,EAAIF,EAAQL,EAAMpB,EAAMC,CAAK,EAEjC,OAAO2B,GAAkB5B,EAAOyB,EAAQL,CAAI,EAE7C,IAAMS,EAAQJ,EAAOL,CAAI,EAOzB,GANIpB,EAAMK,GAAc,CAACyB,EAAYD,CAAK,GAOzCL,GACCxB,EAA0B,iBAC3BsB,GAAa,sBACXtB,EAA0B,eAC5B,GACA+B,GAAaX,CAAI,EAGjB,OAAOS,EAIR,GAAIA,IAAUG,GAAKhC,EAAMQ,EAAOY,CAAI,EAAG,CACtCa,EAAYjC,CAAK,EAEjB,IAAMkC,EAAWlC,EAAMC,IAAU,EAAiB,CAAEmB,EAAkBA,EAChEe,EAAaC,GAAYpC,EAAME,EAAQ2B,EAAO7B,EAAOkC,CAAQ,EAEnE,OAAQlC,EAAMU,EAAOwB,CAAQ,EAAIC,EAElC,OAAON,CACR,EACA,IAAI7B,EAAOoB,EAAM,CAChB,OAAOA,KAAQM,EAAO1B,CAAK,CAC5B,EACA,QAAQA,EAAO,CACd,OAAO,QAAQ,QAAQ0B,EAAO1B,CAAK,CAAC,CACrC,EACA,IACCA,EACAoB,EACAS,EACC,CACD,IAAMQ,EAAOC,GAAuBZ,EAAO1B,CAAK,EAAGoB,CAAI,EACvD,GAAIiB,GAAM,IAGT,OAAAA,EAAK,IAAI,KAAKrC,EAAMS,EAAQoB,CAAK,EAC1B,GAER,GAAI,CAAC7B,EAAMI,EAAW,CAGrB,IAAMmC,EAAUP,GAAKN,EAAO1B,CAAK,EAAGoB,CAAI,EAElCoB,EAAiCD,IAAUlB,CAAW,EAC5D,GAAImB,GAAgBA,EAAahC,IAAUqB,EAC1C,OAAA7B,EAAMU,EAAOU,CAAI,EAAIS,EACrB7B,EAAMM,EAAW,IAAIc,EAAM,EAAK,EACzB,GAER,GACCqB,GAAGZ,EAAOU,CAAO,IAChBV,IAAU,QAAaF,EAAI3B,EAAMQ,EAAOY,EAAMpB,EAAMC,CAAK,GAE1D,MAAO,GACRgC,EAAYjC,CAAK,EACjB0C,EAAY1C,CAAK,EAGlB,OACEA,EAAMU,EAAOU,CAAI,IAAMS,IAEtBA,IAAU,QAAaT,KAAQpB,EAAMU,IAEtC,OAAO,MAAMmB,CAAK,GAAK,OAAO,MAAM7B,EAAMU,EAAOU,CAAI,CAAC,IAKxDpB,EAAMU,EAAOU,CAAI,EAAIS,EACrB7B,EAAMM,EAAW,IAAIc,EAAM,EAAI,EAE/BuB,GAAqB3C,EAAOoB,EAAMS,CAAK,GAChC,EACR,EACA,eAAe7B,EAAOoB,EAAc,CACnC,OAAAa,EAAYjC,CAAK,EAEbgC,GAAKhC,EAAMQ,EAAOY,CAAI,IAAM,QAAaA,KAAQpB,EAAMQ,GAC1DR,EAAMM,EAAW,IAAIc,EAAM,EAAK,EAChCsB,EAAY1C,CAAK,GAGjBA,EAAMM,EAAW,OAAOc,CAAI,EAEzBpB,EAAMU,GACT,OAAOV,EAAMU,EAAMU,CAAI,EAEjB,EACR,EAGA,yBAAyBpB,EAAOoB,EAAM,CACrC,IAAMwB,EAAQlB,EAAO1B,CAAK,EACpBqC,EAAO,QAAQ,yBAAyBO,EAAOxB,CAAI,EACzD,OAAKiB,GACE,CACN,CAACQ,EAAQ,EAAG,GACZ,CAACC,EAAY,EAAG9C,EAAMC,IAAU,GAAkBmB,IAAS,SAC3D,CAAC2B,EAAU,EAAGV,EAAKU,EAAU,EAC7B,CAACC,EAAK,EAAGJ,EAAMxB,CAAI,CACpB,CACD,EACA,gBAAiB,CAChB6B,EAAI,EAAE,CACP,EACA,eAAejD,EAAO,CACrB,OAAOkD,EAAelD,EAAMQ,CAAK,CAClC,EACA,gBAAiB,CAChByC,EAAI,EAAE,CACP,CACD,EAMMhC,GAA8C,CAAC,EAGrD,QAASkC,KAAOnC,GAAa,CAC5B,IAAIoC,EAAKpC,GAAYmC,CAA+B,EAEpDlC,GAAWkC,CAAG,EAAI,UAAW,CAC5B,IAAME,EAAO,UACb,OAAAA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAE,CAAC,EACZD,EAAG,MAAM,KAAMC,CAAI,CAC3B,EAEDpC,GAAW,eAAiB,SAASjB,EAAOoB,EAAM,CAIjD,OAAOH,GAAW,IAAK,KAAK,KAAMjB,EAAOoB,EAAM,MAAS,CACzD,EACAH,GAAW,IAAM,SAASjB,EAAOoB,EAAMS,EAAO,CAO7C,OAAOb,GAAY,IAAK,KAAK,KAAMhB,EAAM,CAAC,EAAGoB,EAAMS,EAAO7B,EAAM,CAAC,CAAC,CACnE,EAGA,SAASgC,GAAKsB,EAAgBlC,EAAmB,CAChD,IAAMpB,EAAQsD,EAAMjC,CAAW,EAE/B,OADerB,EAAQ0B,EAAO1B,CAAK,EAAIsD,GACzBlC,CAAI,CACnB,CAEA,SAASQ,GAAkB5B,EAAmByB,EAAaL,EAAmB,CAC7E,IAAMiB,EAAOC,GAAuBb,EAAQL,CAAI,EAChD,OAAOiB,EACJW,MAASX,EACRA,EAAKW,EAAK,EAGVX,EAAK,KAAK,KAAKrC,EAAMS,CAAM,EAC5B,MACJ,CAEA,SAAS6B,GACRb,EACAL,EACiC,CAEjC,GAAI,EAAEA,KAAQK,GAAS,OACvB,IAAI8B,EAAQL,EAAezB,CAAM,EACjC,KAAO8B,GAAO,CACb,IAAMlB,EAAO,OAAO,yBAAyBkB,EAAOnC,CAAI,EACxD,GAAIiB,EAAM,OAAOA,EACjBkB,EAAQL,EAAeK,CAAK,EAG9B,CAEO,SAASb,EAAY1C,EAAmB,CACzCA,EAAMI,IACVJ,EAAMI,EAAY,GACdJ,EAAMO,GACTmC,EAAY1C,EAAMO,CAAO,EAG5B,CAEO,SAAS0B,EAAYjC,EAAmB,CACzCA,EAAMU,IAGVV,EAAMM,EAAY,IAAI,IACtBN,EAAMU,EAAQ8C,GACbxD,EAAMQ,EACNR,EAAME,EAAOuD,EAAOC,CACrB,EAEF,CCjSO,IAAMC,GAAN,KAAoC,CAK1C,YAAYC,EAIT,CARH,KAAAC,EAAuB,GACvB,KAAAC,EAAoC,GACpC,KAAAC,EAA+B,GAiC/B,aAAoB,CAACC,EAAWC,EAAcC,IAAwB,CAErE,GAAIC,EAAWH,CAAI,GAAK,CAACG,EAAWF,CAAM,EAAG,CAC5C,IAAMG,EAAcH,EACpBA,EAASD,EAET,IAAMK,EAAO,KACb,OAAO,SAENL,EAAOI,KACJE,EACF,CACD,OAAOD,EAAK,QAAQL,EAAOO,GAAmBN,EAAO,KAAK,KAAMM,EAAO,GAAGD,CAAI,CAAC,CAChF,EAGIH,EAAWF,CAAM,GAAGO,EAAI,CAAC,EAC1BN,IAAkB,QAAa,CAACC,EAAWD,CAAa,GAAGM,EAAI,CAAC,EAEpE,IAAIC,EAGJ,GAAIC,EAAYV,CAAI,EAAG,CACtB,IAAMW,EAAQC,GAAW,IAAI,EACvBC,EAAQC,GAAYH,EAAOX,EAAM,MAAS,EAC5Ce,EAAW,GACf,GAAI,CACHN,EAASR,EAAOY,CAAK,EACrBE,EAAW,EACZ,QAAE,CAEGA,EAAUC,GAAYL,CAAK,EAC1BM,GAAWN,CAAK,CACtB,CACA,OAAAO,GAAkBP,EAAOT,CAAa,EAC/BiB,GAAcV,EAAQE,CAAK,UACxB,CAACX,GAAQ,CAACoB,EAAYpB,CAAI,EAAG,CAKvC,GAJAS,EAASR,EAAOD,CAAI,EAChBS,IAAW,SAAWA,EAAST,GAC/BS,IAAWY,IAASZ,EAAS,QAC7B,KAAKZ,GAAayB,EAAOb,EAAQ,EAAI,EACrCP,EAAe,CAClB,IAAMqB,EAAa,CAAC,EACdC,EAAc,CAAC,EACrBC,EAAUC,CAAa,EAAEC,EAA4B3B,EAAMS,EAAQ,CAClEmB,EAAUL,EACVM,CACD,CAAe,EACf3B,EAAcqB,EAAGC,CAAE,EAEpB,OAAOf,OACDD,EAAI,EAAGR,CAAI,CACnB,EAEA,wBAA0C,CAACA,EAAWC,IAAsB,CAE3E,GAAIE,EAAWH,CAAI,EAClB,MAAO,CAAC8B,KAAexB,IACtB,KAAK,mBAAmBwB,EAAQvB,GAAeP,EAAKO,EAAO,GAAGD,CAAI,CAAC,EAGrE,IAAIyB,EAAkBC,EAKtB,MAAO,CAJQ,KAAK,QAAQhC,EAAMC,EAAQ,CAACsB,EAAYC,IAAgB,CACtEO,EAAUR,EACVS,EAAiBR,CAClB,CAAC,EACeO,EAAUC,CAAe,CAC1C,EA7FKC,GAAUrC,GAAQ,UAAU,GAAG,KAAK,cAAcA,EAAQ,UAAU,EACpEqC,GAAUrC,GAAQ,oBAAoB,GACzC,KAAK,wBAAwBA,EAAQ,oBAAoB,EACtDqC,GAAUrC,GAAQ,kBAAkB,GACvC,KAAK,sBAAsBA,EAAQ,kBAAkB,CACvD,CA0FA,YAAiCI,EAAmB,CAC9CU,EAAYV,CAAI,GAAGQ,EAAI,CAAC,EACzB0B,EAAQlC,CAAI,IAAGA,EAAOmC,GAAQnC,CAAI,GACtC,IAAMW,EAAQC,GAAW,IAAI,EACvBC,EAAQC,GAAYH,EAAOX,EAAM,MAAS,EAChD,OAAAa,EAAMuB,CAAW,EAAEC,EAAY,GAC/BpB,GAAWN,CAAK,EACTE,CACR,CAEA,YACCN,EACAL,EACuC,CACvC,IAAM4B,EAAoBvB,GAAUA,EAAc6B,CAAW,GACzD,CAACN,GAAS,CAACA,EAAMO,IAAW7B,EAAI,CAAC,EACrC,GAAM,CAAC8B,EAAQ3B,CAAK,EAAImB,EACxB,OAAAZ,GAAkBP,EAAOT,CAAa,EAC/BiB,GAAc,OAAWR,CAAK,CACtC,CAOA,cAAc4B,EAAgB,CAC7B,KAAK1C,EAAc0C,CACpB,CAOA,wBAAwBA,EAAmB,CAC1C,KAAKzC,EAAwByC,CAC9B,CAQA,sBAAsBA,EAAgB,CACrC,KAAKxC,EAAsBwC,CAC5B,CAEA,0BAAoC,CACnC,OAAO,KAAKxC,CACb,CAEA,aAAkCC,EAAS+B,EAA8B,CAGxE,IAAIS,EACJ,IAAKA,EAAIT,EAAQ,OAAS,EAAGS,GAAK,EAAGA,IAAK,CACzC,IAAMC,EAAQV,EAAQS,CAAC,EACvB,GAAIC,EAAM,KAAK,SAAW,GAAKA,EAAM,KAAO,UAAW,CACtDzC,EAAOyC,EAAM,MACb,OAKED,EAAI,KACPT,EAAUA,EAAQ,MAAMS,EAAI,CAAC,GAG9B,IAAME,EAAmBjB,EAAUC,CAAa,EAAEiB,EAClD,OAAIT,EAAQlC,CAAI,EAER0C,EAAiB1C,EAAM+B,CAAO,EAG/B,KAAK,QAAQ/B,EAAOO,GAC1BmC,EAAiBnC,EAAOwB,CAAO,CAChC,CACD,CACD,EAEO,SAASjB,GACf8B,EACAL,EACAM,EACAC,EACyB,CAIzB,GAAM,CAACvC,EAAOuB,CAAK,EAAIiB,EAAMR,CAAK,EAC/Bd,EAAUuB,CAAY,EAAEC,EAAUV,EAAOM,CAAM,EAC/CK,EAAMX,CAAK,EACXd,EAAUuB,CAAY,EAAEG,EAAUZ,EAAOM,CAAM,EAC/CO,GAAiBb,EAAOM,CAAM,EAGjC,OADcA,GAAQP,GAAUe,EAAgB,GAC1CC,EAAQ,KAAK/C,CAAK,EAIxBuB,EAAMyB,EAAaV,GAAQU,GAAc,CAAC,EAC1CzB,EAAM0B,EAAOV,EAETD,GAAUC,IAAQ,OACrBW,GAAkCZ,EAAQf,EAAOgB,CAAG,EAGpDhB,EAAMyB,EAAW,KAAK,SAA0BX,EAAW,CAC1DA,EAAUc,GAAe,eAAe5B,CAAK,EAE7C,GAAM,CAAC6B,GAAY,EAAIf,EAEnBd,EAAM8B,GAAaD,GACtBA,EAAaE,EAAiB/B,EAAO,CAAC,EAAGc,CAAS,CAEpD,CAAC,EAGKrC,CACR,CClQO,SAASuD,GAAQC,EAAiB,CACxC,OAAKC,EAAQD,CAAK,GAAGE,EAAI,GAAIF,CAAK,EAC3BG,GAAYH,CAAK,CACzB,CAEA,SAASG,GAAYH,EAAiB,CACrC,GAAI,CAACI,EAAYJ,CAAK,GAAKK,GAASL,CAAK,EAAG,OAAOA,EACnD,IAAMM,EAAgCN,EAAMO,CAAW,EACnDC,EACAC,EAAS,GACb,GAAIH,EAAO,CACV,GAAI,CAACA,EAAMI,EAAW,OAAOJ,EAAMK,EAEnCL,EAAMM,EAAa,GACnBJ,EAAOK,GAAYb,EAAOM,EAAMQ,EAAOC,EAAOC,CAAqB,EACnEP,EAASH,EAAMQ,EAAOC,EAAO,yBAAyB,OAEtDP,EAAOK,GAAYb,EAAO,EAAI,EAG/B,OAAAiB,EACCT,EACA,CAACU,EAAKC,IAAe,CACpBC,GAAIZ,EAAMU,EAAKf,GAAYgB,CAAU,CAAC,CACvC,EACAV,CACD,EACIH,IACHA,EAAMM,EAAa,IAEbJ,CACR,CCXO,SAASa,IAAgB,CAe/B,SAASC,EAAQC,EAAmBC,EAAkB,CAAC,EAAqB,CAE3E,GAAID,EAAME,IAAS,OAAW,CAG7B,IAAMC,EAAaH,EAAMI,EAASC,GAASL,EAAMI,EAASE,EACpDC,EAAaC,GAAcC,EAAIN,EAAYH,EAAME,CAAK,CAAC,EACvDQ,EAAaD,EAAIN,EAAYH,EAAME,CAAK,EAe9C,GAbIQ,IAAe,QAOlBA,IAAeV,EAAMW,GACrBD,IAAeV,EAAMM,GACrBI,IAAeV,EAAMK,GAIlBE,GAAc,MAAQA,EAAWD,IAAUN,EAAMM,EACpD,OAAO,KAIR,IAAMM,EAAQZ,EAAMI,EAASS,IAAU,EACnCC,EAEJ,GAAIF,EAAO,CAEV,IAAMG,EAAYf,EAAMI,EACxBU,EAAM,MAAM,KAAKC,EAAUC,EAAQ,KAAK,CAAC,EAAE,QAAQhB,EAAME,CAAI,OAE7DY,EAAMd,EAAME,EAIb,GAAI,EAAGU,GAAST,EAAW,KAAOW,GAAQG,EAAId,EAAYW,CAAG,GAC5D,OAAO,KAIRb,EAAK,KAAKa,CAAG,EAId,GAAId,EAAMI,EACT,OAAOL,EAAQC,EAAMI,EAASH,CAAI,EAInCA,EAAK,QAAQ,EAEb,GAAI,CAEHiB,EAAYlB,EAAMK,EAAOJ,CAAI,CAC9B,MAAE,CACD,OAAO,IACR,CAEA,OAAOA,CACR,CAGA,SAASiB,EAAYC,EAAWlB,EAAsB,CACrD,IAAImB,EAAUD,EACd,QAASE,EAAI,EAAGA,EAAIpB,EAAK,OAAS,EAAGoB,IAAK,CACzC,IAAMP,EAAMb,EAAKoB,CAAC,EAElB,GADAD,EAAUX,EAAIW,EAASN,CAAG,EACtB,CAACQ,EAAYF,CAAO,GAAKA,IAAY,KACxC,MAAM,IAAI,MAAM,2BAA2BnB,EAAK,KAAK,GAAG,IAAI,EAG9D,OAAOmB,CACR,CAEA,IAAMG,EAAU,UACVC,EAAM,MACNC,EAAS,SAEf,SAASC,EACR1B,EACA2B,EACAC,EACO,CACP,GAAI5B,EAAM6B,EAAOC,EAAqB,IAAI9B,CAAK,EAC9C,OAGDA,EAAM6B,EAAOC,EAAqB,IAAI9B,CAAK,EAE3C,GAAM,CAAC+B,IAAUC,GAAe,EAAIJ,EAEpC,OAAQ5B,EAAMa,EAAO,CACpB,OACA,OACC,OAAOoB,EACNjC,EACA2B,EACAI,EACAC,CACD,EACD,OACC,OAAOE,EACNlC,EACA2B,EACAI,EACAC,CACD,EACD,OACC,OAAOG,EACLnC,EACD2B,EACAI,EACAC,CACD,CACF,CACD,CAEA,SAASE,EACRlC,EACA2B,EACAS,EACAC,EACC,CACD,GAAI,CAAC/B,IAAOgC,GAAS,EAAItC,EACrBK,EAAQL,EAAMK,EAGdA,EAAM,OAASC,EAAM,SAEvB,CAACA,EAAOD,CAAK,EAAI,CAACA,EAAOC,CAAK,EAC9B,CAAC8B,EAASC,CAAc,EAAI,CAACA,EAAgBD,CAAO,GAGtD,IAAMG,EAAgBvC,EAAMwC,IAA0B,GAGtD,QAASnB,EAAI,EAAGA,EAAIf,EAAM,OAAQe,IAAK,CACtC,IAAMoB,EAAapC,EAAMgB,CAAC,EACpBqB,EAAWpC,EAAMe,CAAC,EAGxB,IADmBkB,GAAiBD,GAAW,IAAIjB,EAAE,SAAS,CAAC,IAC7CoB,IAAeC,EAAU,CAC1C,IAAMC,EAAaF,IAAaG,CAAW,EAC3C,GAAID,GAAcA,EAAWE,EAE5B,SAED,IAAM5C,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIb,EACJ,KAAAtB,EAGA,MAAO6C,EAAwBL,CAAU,CAC1C,CAAC,EACDJ,EAAe,KAAK,CACnB,GAAId,EACJ,KAAAtB,EACA,MAAO6C,EAAwBJ,CAAQ,CACxC,CAAC,GAKH,QAASrB,EAAIf,EAAM,OAAQe,EAAIhB,EAAM,OAAQgB,IAAK,CACjD,IAAMpB,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIZ,EACJ,KAAAvB,EAGA,MAAO6C,EAAwBzC,EAAMgB,CAAC,CAAC,CACxC,CAAC,EAEF,QAASA,EAAIhB,EAAM,OAAS,EAAGC,EAAM,QAAUe,EAAG,EAAEA,EAAG,CACtD,IAAMpB,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCgB,EAAe,KAAK,CACnB,GAAIZ,EACJ,KAAAxB,CACD,CAAC,EAEH,CAGA,SAASgC,EACRjC,EACA2B,EACAS,EACAC,EACC,CACD,GAAM,CAAC/B,IAAOD,IAAOQ,GAAK,EAAIb,EAC9B+C,EAAK/C,EAAMsC,EAAY,CAACxB,EAAKkC,IAAkB,CAC9C,IAAMC,EAAYxC,EAAIH,EAAOQ,EAAKD,CAAK,EACjCqC,EAAQzC,EAAIJ,EAAQS,EAAKD,CAAK,EAC9BsC,EAAMH,EAAyB/B,EAAIX,EAAOQ,CAAG,EAAIS,EAAUC,EAArCC,EAC5B,GAAIwB,IAAcC,GAASC,IAAO5B,EAAS,OAC3C,IAAMtB,EAAO0B,EAAS,OAAOb,CAAU,EACvCsB,EAAQ,KACPe,IAAO1B,EACJ,CAAC,GAAA0B,EAAI,KAAAlD,CAAI,EACT,CAAC,GAAAkD,EAAI,KAAAlD,EAAM,MAAO6C,EAAwBI,CAAK,CAAC,CACpD,EACAb,EAAe,KACdc,IAAO3B,EACJ,CAAC,GAAIC,EAAQ,KAAAxB,CAAI,EACjBkD,IAAO1B,EACP,CAAC,GAAID,EAAK,KAAAvB,EAAM,MAAO6C,EAAwBG,CAAS,CAAC,EACzD,CAAC,GAAI1B,EAAS,KAAAtB,EAAM,MAAO6C,EAAwBG,CAAS,CAAC,CACjE,CACD,CAAC,CACF,CAEA,SAASd,EACRnC,EACA2B,EACAS,EACAC,EACC,CACD,GAAI,CAAC/B,IAAOD,GAAK,EAAIL,EAEjBqB,EAAI,EACRf,EAAM,QAAS4C,GAAe,CAC7B,GAAI,CAAC7C,EAAO,IAAI6C,CAAK,EAAG,CACvB,IAAMjD,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIX,EACJ,KAAAxB,EACA,MAAAiD,CACD,CAAC,EACDb,EAAe,QAAQ,CACtB,GAAIb,EACJ,KAAAvB,EACA,MAAAiD,CACD,CAAC,EAEF7B,GACD,CAAC,EACDA,EAAI,EACJhB,EAAO,QAAS6C,GAAe,CAC9B,GAAI,CAAC5C,EAAM,IAAI4C,CAAK,EAAG,CACtB,IAAMjD,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIZ,EACJ,KAAAvB,EACA,MAAAiD,CACD,CAAC,EACDb,EAAe,QAAQ,CACtB,GAAIZ,EACJ,KAAAxB,EACA,MAAAiD,CACD,CAAC,EAEF7B,GACD,CAAC,CACF,CAEA,SAAS+B,EACRC,EACAC,EACA1B,EACO,CACP,GAAM,CAACG,IAAUC,GAAe,EAAIJ,EACpCG,EAAU,KAAK,CACd,GAAIR,EACJ,KAAM,CAAC,EACP,MAAO+B,IAAgBC,EAAU,OAAYD,CAC9C,CAAC,EACDtB,EAAiB,KAAK,CACrB,GAAIT,EACJ,KAAM,CAAC,EACP,MAAO8B,CACR,CAAC,CACF,CAEA,SAASG,EAAiBC,EAAUrB,EAA8B,CACjE,OAAAA,EAAQ,QAAQsB,GAAS,CACxB,GAAM,CAAC,KAAAzD,EAAM,GAAAkD,CAAE,EAAIO,EAEfvC,EAAYsC,EAChB,QAASpC,EAAI,EAAGA,EAAIpB,EAAK,OAAS,EAAGoB,IAAK,CACzC,IAAMsC,EAAaC,EAAYzC,CAAI,EAC/B0C,EAAI5D,EAAKoB,CAAC,EACV,OAAOwC,GAAM,UAAY,OAAOA,GAAM,WACzCA,EAAI,GAAKA,IAKRF,IAAe,GAAmBA,IAAe,KACjDE,IAAM,aAAeA,IAAMC,KAE5BC,EAAI,GAAc,CAAC,EAChBC,EAAW7C,CAAI,GAAK0C,IAAMI,IAAWF,EAAI,GAAc,CAAC,EAC5D5C,EAAOV,EAAIU,EAAM0C,CAAC,EACbvC,EAAYH,CAAI,GAAG4C,EAAI,GAAc,EAAG9D,EAAK,KAAK,GAAG,CAAC,EAG5D,IAAMiE,EAAON,EAAYzC,CAAI,EACvB+B,EAAQiB,EAAoBT,EAAM,KAAK,EACvC5C,EAAMb,EAAKA,EAAK,OAAS,CAAC,EAChC,OAAQkD,EAAI,CACX,KAAK5B,EACJ,OAAQ2C,EAAM,CACb,OACC,OAAO/C,EAAK,IAAIL,EAAKoC,CAAK,EAE3B,OACCa,EAAI,EAAW,EAChB,QAKC,OAAQ5C,EAAKL,CAAG,EAAIoC,CACtB,CACD,KAAK1B,EACJ,OAAQ0C,EAAM,CACb,OACC,OAAOpD,IAAQ,IACZK,EAAK,KAAK+B,CAAK,EACf/B,EAAK,OAAOL,EAAY,EAAGoC,CAAK,EACpC,OACC,OAAO/B,EAAK,IAAIL,EAAKoC,CAAK,EAC3B,OACC,OAAO/B,EAAK,IAAI+B,CAAK,EACtB,QACC,OAAQ/B,EAAKL,CAAG,EAAIoC,CACtB,CACD,KAAKzB,EACJ,OAAQyC,EAAM,CACb,OACC,OAAO/C,EAAK,OAAOL,EAAY,CAAC,EACjC,OACC,OAAOK,EAAK,OAAOL,CAAG,EACvB,OACC,OAAOK,EAAK,OAAOuC,EAAM,KAAK,EAC/B,QACC,OAAO,OAAOvC,EAAKL,CAAG,CACxB,CACD,QACCiD,EAAI,GAAc,EAAGZ,CAAE,CACzB,CACD,CAAC,EAEMM,CACR,CAMA,SAASU,EAAoBC,EAAU,CACtC,GAAI,CAACC,EAAYD,CAAG,EAAG,OAAOA,EAC9B,GAAIE,EAAQF,CAAG,EAAG,OAAOA,EAAI,IAAID,CAAmB,EACpD,GAAII,EAAMH,CAAG,EACZ,OAAO,IAAI,IACV,MAAM,KAAKA,EAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACI,EAAGC,CAAC,IAAM,CAACD,EAAGL,EAAoBM,CAAC,CAAC,CAAC,CACtE,EACD,GAAI7D,EAAMwD,CAAG,EAAG,OAAO,IAAI,IAAI,MAAM,KAAKA,CAAG,EAAE,IAAID,CAAmB,CAAC,EACvE,IAAMO,EAAS,OAAO,OAAOC,EAAeP,CAAG,CAAC,EAChD,QAAWtD,KAAOsD,EAAKM,EAAO5D,CAAG,EAAIqD,EAAoBC,EAAItD,CAAG,CAAC,EACjE,OAAIG,EAAImD,EAAKQ,CAAS,IAAGF,EAAOE,CAAS,EAAIR,EAAIQ,CAAS,GACnDF,CACR,CAEA,SAAS5B,EAA2BsB,EAAW,CAC9C,OAAIS,EAAQT,CAAG,EACPD,EAAoBC,CAAG,EACjBA,CACf,CAEAU,GAAWC,EAAe,CACzBvB,IACA9B,IACA0B,IACA,QAAArD,CACD,CAAC,CACF,CCxZO,SAASiF,IAAe,CAC9B,MAAMC,UAAiB,GAAI,CAG1B,YAAYC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPC,EAAW,OACXC,EAAOX,EACPY,EAAQ,KACRC,EAAW,GACXC,EAAU,GACVC,EAAY,CAAC,CACd,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKd,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIe,EAAmB,CACtB,OAAOD,EAAO,KAAKd,CAAW,CAAC,EAAE,IAAIe,CAAG,CACzC,CAEA,IAAIA,EAAUC,EAAY,CACzB,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,GACjB,CAACH,EAAOG,CAAK,EAAE,IAAIF,CAAG,GAAKD,EAAOG,CAAK,EAAE,IAAIF,CAAG,IAAMC,KACzDG,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAW,IAAIO,EAAK,EAAI,EAC9BE,EAAMV,EAAO,IAAIQ,EAAKC,CAAK,EAC3BC,EAAMT,EAAW,IAAIO,EAAK,EAAI,EAC9BM,GAAqBJ,EAAOF,EAAKC,CAAK,GAEhC,IACR,CAEA,OAAOD,EAAmB,CACzB,GAAI,CAAC,KAAK,IAAIA,CAAG,EAChB,MAAO,GAGR,IAAME,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACbA,EAAMR,EAAM,IAAIM,CAAG,EACtBE,EAAMT,EAAW,IAAIO,EAAK,EAAK,EAE/BE,EAAMT,EAAW,OAAOO,CAAG,EAE5BE,EAAMV,EAAO,OAAOQ,CAAG,EAChB,EACR,CAEA,OAAQ,CACP,IAAME,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAY,IAAI,IACtBc,EAAKL,EAAMR,EAAOM,GAAO,CACxBE,EAAMT,EAAW,IAAIO,EAAK,EAAK,CAChC,CAAC,EACDE,EAAMV,EAAO,MAAM,EAErB,CAEA,QAAQgB,EAA+CC,EAAe,CACrE,IAAMP,EAAkB,KAAKjB,CAAW,EACxCc,EAAOG,CAAK,EAAE,QAAQ,CAACQ,EAAaV,EAAUW,IAAc,CAC3DH,EAAG,KAAKC,EAAS,KAAK,IAAIT,CAAG,EAAGA,EAAK,IAAI,CAC1C,CAAC,CACF,CAEA,IAAIA,EAAe,CAClB,IAAME,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACrB,IAAMD,EAAQF,EAAOG,CAAK,EAAE,IAAIF,CAAG,EAInC,GAHIE,EAAMX,GAAc,CAACqB,EAAYX,CAAK,GAGtCA,IAAUC,EAAMR,EAAM,IAAIM,CAAG,EAChC,OAAOC,EAGR,IAAMY,EAAQC,GAAYZ,EAAMd,EAAQa,EAAOC,EAAOF,CAAG,EACzD,OAAAI,EAAeF,CAAK,EACpBA,EAAMV,EAAO,IAAIQ,EAAKa,CAAK,EACpBA,CACR,CAEA,MAA8B,CAC7B,OAAOd,EAAO,KAAKd,CAAW,CAAC,EAAE,KAAK,CACvC,CAEA,QAAgC,CAC/B,IAAM8B,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,OAAO,EACrC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,OAAIC,EAAE,KAAaA,EAEZ,CACN,KAAM,GACN,MAHa,KAAK,IAAIA,EAAE,KAAK,CAI9B,CACD,CACD,CACD,CAEA,SAAwC,CACvC,IAAMD,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,QAAQ,EACtC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,GAAIC,EAAE,KAAM,OAAOA,EACnB,IAAMf,EAAQ,KAAK,IAAIe,EAAE,KAAK,EAC9B,MAAO,CACN,KAAM,GACN,MAAO,CAACA,EAAE,MAAOf,CAAK,CACvB,CACD,CACD,CACD,CAEA,EAxIChB,EAwIA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,QAAQ,CACrB,CACD,CAEA,SAASgC,EACRlC,EACAC,EACgB,CAEhB,IAAMkC,EAAM,IAAIpC,EAASC,EAAQC,CAAM,EACvC,MAAO,CAACkC,EAAYA,EAAIjC,CAAW,CAAC,CACrC,CAEA,SAASmB,EAAeF,EAAiB,CACnCA,EAAMV,IACVU,EAAMT,EAAY,IAAI,IACtBS,EAAMV,EAAQ,IAAI,IAAIU,EAAMR,CAAK,EAEnC,CAEA,MAAMyB,UAAiB,GAAI,CAE1B,YAAYpC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPE,EAAOX,EACPY,EAAQ,KACRyB,EAAS,IAAI,IACbvB,EAAU,GACVD,EAAW,GACXH,EAAW,OACXK,EAAY,CAAC,CACd,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKd,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIgB,EAAqB,CACxB,IAAMC,EAAkB,KAAKjB,CAAW,EAGxC,OAFAkB,EAAgBD,CAAK,EAEhBA,EAAMV,EAGP,GAAAU,EAAMV,EAAM,IAAIS,CAAK,GACrBC,EAAMkB,EAAQ,IAAInB,CAAK,GAAKC,EAAMV,EAAM,IAAIU,EAAMkB,EAAQ,IAAInB,CAAK,CAAC,GAHhEC,EAAMR,EAAM,IAAIO,CAAK,CAM9B,CAEA,IAAIA,EAAiB,CACpB,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EAChB,KAAK,IAAID,CAAK,IAClBoB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMV,EAAO,IAAIS,CAAK,EACtBK,GAAqBJ,EAAOD,EAAOA,CAAK,GAElC,IACR,CAEA,OAAOA,EAAiB,CACvB,GAAI,CAAC,KAAK,IAAIA,CAAK,EAClB,MAAO,GAGR,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EAEhBA,EAAMV,EAAO,OAAOS,CAAK,IACxBC,EAAMkB,EAAQ,IAAInB,CAAK,EACrBC,EAAMV,EAAO,OAAOU,EAAMkB,EAAQ,IAAInB,CAAK,CAAC,EACjB,GAEhC,CAEA,OAAQ,CACP,IAAMC,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBmB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMV,EAAO,MAAM,EAErB,CAEA,QAAgC,CAC/B,IAAMU,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACbA,EAAMV,EAAO,OAAO,CAC5B,CAEA,SAAwC,CACvC,IAAMU,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACbA,EAAMV,EAAO,QAAQ,CAC7B,CAEA,MAA8B,CAC7B,OAAO,KAAK,OAAO,CACpB,CAEA,EA9FCP,EA8FA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,OAAO,CACpB,CAEA,QAAQuB,EAASC,EAAe,CAC/B,IAAMM,EAAW,KAAK,OAAO,EACzBO,EAASP,EAAS,KAAK,EAC3B,KAAO,CAACO,EAAO,MACdd,EAAG,KAAKC,EAASa,EAAO,MAAOA,EAAO,MAAO,IAAI,EACjDA,EAASP,EAAS,KAAK,CAEzB,CACD,CACA,SAASQ,EACRxC,EACAC,EACgB,CAEhB,IAAMwC,EAAM,IAAIL,EAASpC,EAAQC,CAAM,EACvC,MAAO,CAACwC,EAAYA,EAAIvC,CAAW,CAAC,CACrC,CAEA,SAASoC,EAAenB,EAAiB,CACnCA,EAAMV,IAEVU,EAAMV,EAAQ,IAAI,IAClBU,EAAMR,EAAM,QAAQO,GAAS,CAC5B,GAAIW,EAAYX,CAAK,EAAG,CACvB,IAAMY,EAAQC,GAAYZ,EAAMd,EAAQa,EAAOC,EAAOD,CAAK,EAC3DC,EAAMkB,EAAQ,IAAInB,EAAOY,CAAK,EAC9BX,EAAMV,EAAO,IAAIqB,CAAK,OAEtBX,EAAMV,EAAO,IAAIS,CAAK,CAExB,CAAC,EAEH,CAEA,SAASE,EAAgBD,EAA+C,CACnEA,EAAML,GAAU4B,EAAI,EAAG,KAAK,UAAU1B,EAAOG,CAAK,CAAC,CAAC,CACzD,CAEA,SAASwB,EAAe3C,EAAoB,CAG3C,GAAIA,EAAOG,IAAU,GAAgBH,EAAOS,EAAO,CAClD,IAAMmC,EAAO,IAAI,IAAI5C,EAAOS,CAAK,EACjCT,EAAOS,EAAM,MAAM,EACnBmC,EAAK,QAAQ1B,GAAS,CACrBlB,EAAOS,EAAO,IAAIoC,GAAS3B,CAAK,CAAC,CAClC,CAAC,EAEH,CAEA4B,GAAWC,EAAc,CAACb,IAAWM,IAAW,eAAAG,CAAc,CAAC,CAChE,CCzOO,SAASK,IAAqB,CACpC,IAAMC,EAAmB,IAAI,IAAyB,CAAC,QAAS,SAAS,CAAC,EAEpEC,EAAgB,IAAI,IAAyB,CAAC,OAAQ,KAAK,CAAC,EAE5DC,EAA2B,IAAI,IAAyB,CAC7D,GAAGD,EACH,GAAGD,CACJ,CAAC,EAEKG,EAAqB,IAAI,IAAyB,CAAC,UAAW,MAAM,CAAC,EAGrEC,EAAmB,IAAI,IAAyB,CACrD,GAAGF,EACH,GAAGC,EACH,QACD,CAAC,EAEKE,EAAe,IAAI,IAA4B,CAAC,OAAQ,UAAU,CAAC,EAEnEC,EAAuB,IAAI,IAA4B,CAC5D,SACA,QACA,SACA,OACA,GAAGD,EACH,YACA,gBACA,OACA,QACA,UACA,cACA,WACA,OACA,WACA,gBACD,CAAC,EAGD,SAASE,EACRC,EACgC,CAChC,OAAOJ,EAAiB,IAAII,CAAa,CAC1C,CAEA,SAASC,EACRD,EACmC,CACnC,OAAOF,EAAqB,IAAIE,CAAa,CAC9C,CAEA,SAASE,EACRF,EACiC,CACjC,OAAOD,EAAsBC,CAAM,GAAKC,EAAyBD,CAAM,CACxE,CAEA,SAASG,EACRC,EACAJ,EACC,CACDI,EAAM,gBAAkBJ,CACzB,CAEA,SAASK,EAAcD,EAAwB,CAC9CA,EAAM,gBAAkB,MACzB,CAGA,SAASE,EACRF,EACAG,EACAC,EAAa,GACT,CACJC,EAAYL,CAAK,EACjB,IAAMM,EAASH,EAAU,EACzB,OAAAI,EAAYP,CAAK,EACbI,GAAYJ,EAAMQ,EAAW,IAAI,SAAU,EAAI,EAC5CF,CACR,CAEA,SAASG,EAAyBT,EAAwB,CACzDA,EAAMU,EAAwB,EAC/B,CAEA,SAASC,EAAoBC,EAAeC,EAAwB,CACnE,OAAID,EAAQ,EACJ,KAAK,IAAIC,EAASD,EAAO,CAAC,EAE3B,KAAK,IAAIA,EAAOC,CAAM,CAC9B,CAWA,SAASC,EACRd,EACAJ,EACAmB,EACC,CACD,OAAOb,EAAmBF,EAAO,IAAM,CACtC,IAAMM,EAAUN,EAAMgB,EAAepB,CAAM,EAAE,GAAGmB,CAAI,EAGpD,OAAI3B,EAAiB,IAAIQ,CAA6B,GACrDa,EAAyBT,CAAK,EAIxBV,EAAyB,IAAIM,CAA6B,EAC9DU,EACAN,EAAMiB,CACV,CAAC,CACF,CAWA,SAASC,EACRlB,EACAJ,EACAmB,EACC,CACD,OAAOb,EACNF,EACA,KACGA,EAAMgB,EAAepB,CAAM,EAAE,GAAGmB,CAAI,EACtCN,EAAyBT,CAAK,EACvBA,EAAMiB,GAEd,EACD,CACD,CAkBA,SAASE,EACRnB,EACAoB,EACC,CACD,OAAO,YAA8BL,EAAa,CAGjD,IAAMnB,EAASwB,EACfrB,EAAeC,EAAOJ,CAAM,EAE5B,GAAI,CAEH,GAAID,EAAsBC,CAAM,EAAG,CAElC,GAAIN,EAAyB,IAAIM,CAAM,EACtC,OAAOkB,EAAsBd,EAAOJ,EAAQmB,CAAI,EAEjD,GAAIxB,EAAmB,IAAIK,CAAM,EAChC,OAAOsB,EAA0BlB,EAAOJ,EAAQmB,CAAI,EAGrD,GAAInB,IAAW,SAAU,CACxB,IAAMyB,EAAMnB,EAAmBF,EAAO,IACrCA,EAAMgB,EAAO,OAAO,GAAID,CAAmC,CAC5D,EACA,OAAAN,EAAyBT,CAAK,EACvBqB,OAIR,QAAOC,EAA2BtB,EAAOJ,EAAQmB,CAAI,CAEvD,QAAE,CAEDd,EAAcD,CAAK,CACpB,CACD,CACD,CA4BA,SAASsB,EACRtB,EACAJ,EACAmB,EACC,CACD,IAAMQ,EAASC,EAAOxB,CAAK,EAG3B,GAAIJ,IAAW,SAAU,CACxB,IAAM6B,EAAYV,EAAK,CAAC,EAClBT,EAAgB,CAAC,EAGvB,QAASoB,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IAC9BD,EAAUF,EAAOG,CAAC,EAAGA,EAAGH,CAAM,GAEjCjB,EAAO,KAAKN,EAAMiB,EAAOS,CAAC,CAAC,EAI7B,OAAOpB,EAGR,GAAIb,EAAa,IAAIG,CAAM,EAAG,CAC7B,IAAM6B,EAAYV,EAAK,CAAC,EAClBY,EAAY/B,IAAW,OACvBgC,EAAOD,EAAY,EAAI,GACvBE,EAAQF,EAAY,EAAIJ,EAAO,OAAS,EAE9C,QAASG,EAAIG,EAAOH,GAAK,GAAKA,EAAIH,EAAO,OAAQG,GAAKE,EACrD,GAAIH,EAAUF,EAAOG,CAAC,EAAGA,EAAGH,CAAM,EACjC,OAAOvB,EAAMiB,EAAOS,CAAC,EAGvB,OAGD,GAAI9B,IAAW,QAAS,CACvB,IAAMkC,EAAWf,EAAK,CAAC,GAAK,EACtBgB,EAAShB,EAAK,CAAC,GAAKQ,EAAO,OAG3BM,EAAQlB,EAAoBmB,EAAUP,EAAO,MAAM,EACnDS,EAAMrB,EAAoBoB,EAAQR,EAAO,MAAM,EAE/CjB,EAAgB,CAAC,EAGvB,QAASoB,GAAIG,EAAOH,GAAIM,EAAKN,KAC5BpB,EAAO,KAAKN,EAAMiB,EAAOS,EAAC,CAAC,EAG5B,OAAOpB,EAQR,OAAOiB,EAAO3B,CAAsC,EAAE,GAAGmB,CAAI,CAC9D,CAEAkB,GAAWC,GAAoB,CAC9B,wBAAAf,EACA,uBAAArB,EACA,sBAAAH,CACD,CAAC,CACF,CZhXA,IAAMwC,EAAQ,IAAIC,GAqBLC,GAAoCF,EAAM,QAM1CG,GAA0DH,EAAM,mBAAmB,KAC/FA,CACD,EAOaI,GAAgCJ,EAAM,cAAc,KAAKA,CAAK,EAO9DK,GAA0CL,EAAM,wBAAwB,KACpFA,CACD,EAQaM,GAAwCN,EAAM,sBAAsB,KAChFA,CACD,EAOaO,GAA+BP,EAAM,aAAa,KAAKA,CAAK,EAM5DQ,GAA8BR,EAAM,YAAY,KAAKA,CAAK,EAU1DS,GAA8BT,EAAM,YAAY,KAAKA,CAAK,EAQ5DU,GAAgBC,GAAuBA,EAOvCC,GAAoBD,GAA2BA","names":["immer_exports","__export","Immer","applyPatches","castDraft","castImmutable","createDraft","current","enableArrayMethods","enableMapSet","enablePatches","finishDraft","freeze","DRAFTABLE","isDraft","isDraftable","NOTHING","original","produce","produceWithPatches","setAutoFreeze","setUseStrictIteration","setUseStrictShallowCopy","__toCommonJS","NOTHING","DRAFTABLE","DRAFT_STATE","die","error","args","O","getPrototypeOf","CONSTRUCTOR","PROTOTYPE","CONFIGURABLE","ENUMERABLE","WRITABLE","VALUE","isDraft","value","DRAFT_STATE","isDraftable","isPlainObject","isArray","DRAFTABLE","isMap","isSet","objectCtorString","cachedCtorStrings","isObjectish","proto","Ctor","isFunction","ctorString","original","die","base_","each","obj","iter","strict","getArchtype","key","entry","index","thing","state","type_","has","prop","type","get","set","propOrOldValue","is","x","y","target","isBoolean","isArrayIndex","n","getProxyDraft","latest","copy_","getValue","proxyDraft","getFinalValue","modified_","shallowCopy","base","isPlain","descriptors","keys","desc","freeze","deep","isFrozen","dontMutateMethodOverride","_key","dontMutateFrozenCollections","PluginMapSet","PluginPatches","PluginArrayMethods","plugins","getPlugin","pluginKey","plugin","die","isPluginLoaded","loadPlugin","pluginKey","implementation","plugins","currentScope","getCurrentScope","createScope","parent_","immer_","drafts_","canAutoFreeze_","unfinalizedDrafts_","handledSet_","processedForPatches_","mapSetPlugin_","isPluginLoaded","PluginMapSet","getPlugin","arrayMethodsPlugin_","PluginArrayMethods","usePatchesInScope","scope","patchListener","patchPlugin_","PluginPatches","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","revokeDraft","enterScope","immer","draft","state","DRAFT_STATE","type_","revoke_","revoked_","processResult","result","scope","unfinalizedDrafts_","drafts_","baseDraft","DRAFT_STATE","modified_","revokeScope","die","isDraftable","finalize","patchPlugin_","generateReplacementPatches_","base_","maybeFreeze","patches_","patchListener_","inversePatches_","NOTHING","rootScope","value","isFrozen","state","handleValue","handledSet_","isSameScope","finalized_","callbacks_","generatePatchesAndFinalize","copy_","deep","parent_","immer_","autoFreeze_","canAutoFreeze_","freeze","markStateFinalized","scope_","EMPTY_LOCATIONS_RESULT","updateDraftInParent","parent","draftValue","finalizedValue","originalKey","parentCopy","latest","parentType","type_","get","set","draftLocations_","draftLocations","each","key","isDraft","keys","locations","location","registerChildFinalizationCallback","child","mapSetPlugin_","getFinalValue","draft_","allIndicesReassigned_","assigned_","basePath","generatePatches_","handleCrossReference","target","prepareCopy","targetCopy","handledSet","updatedValue","createProxyProxy","base","parent","baseIsArray","isArray","state","type_","scope_","getCurrentScope","modified_","finalized_","assigned_","parent_","base_","draft_","copy_","revoke_","isManual_","callbacks_","target","traps","objectTraps","arrayTraps","revoke","proxy","prop","DRAFT_STATE","arrayPlugin","arrayMethodsPlugin_","isArrayWithStringProp","source","latest","has","readPropFromProto","value","isDraftable","isArrayIndex","peek","prepareCopy","childKey","childDraft","createProxy","desc","getDescriptorFromProto","current","currentState","is","markChanged","handleCrossReference","owner","WRITABLE","CONFIGURABLE","ENUMERABLE","VALUE","die","getPrototypeOf","key","fn","args","draft","proto","shallowCopy","immer_","useStrictShallowCopy_","Immer","config","autoFreeze_","useStrictShallowCopy_","useStrictIteration_","base","recipe","patchListener","isFunction","defaultBase","self","args","draft","die","result","isDraftable","scope","enterScope","proxy","createProxy","hasError","revokeScope","leaveScope","usePatchesInScope","processResult","isObjectish","NOTHING","freeze","p","ip","getPlugin","PluginPatches","generateReplacementPatches_","patches_","inversePatches_","state","patches","inversePatches","isBoolean","isDraft","current","DRAFT_STATE","isManual_","scope_","value","i","patch","applyPatchesImpl","applyPatches_","rootScope","parent","key","isMap","PluginMapSet","proxyMap_","isSet","proxySet_","createProxyProxy","getCurrentScope","drafts_","callbacks_","key_","registerChildFinalizationCallback","mapSetPlugin_","patchPlugin_","modified_","generatePatches_","current","value","isDraft","die","currentImpl","isDraftable","isFrozen","state","DRAFT_STATE","copy","strict","modified_","base_","finalized_","shallowCopy","scope_","immer_","useStrictShallowCopy_","each","key","childValue","set","enablePatches","getPath","state","path","key_","parentCopy","parent_","copy_","base_","proxyDraft","getProxyDraft","get","valueAtKey","draft_","isSet","type_","key","setParent","drafts_","has","resolvePath","base","current","i","isObjectish","REPLACE","ADD","REMOVE","generatePatches_","basePath","scope","scope_","processedForPatches_","patches_","inversePatches_","generatePatchesFromAssigned","generateArrayPatches","generateSetPatches","patches","inversePatches","assigned_","allReassigned","allIndicesReassigned_","copiedItem","baseItem","childState","DRAFT_STATE","modified_","clonePatchValueIfNeeded","each","assignedValue","origValue","value","op","generateReplacementPatches_","baseValue","replacement","NOTHING","applyPatches_","draft","patch","parentType","getArchtype","p","CONSTRUCTOR","die","isFunction","PROTOTYPE","type","deepClonePatchValue","obj","isDraftable","isArray","isMap","k","v","cloned","getPrototypeOf","DRAFTABLE","isDraft","loadPlugin","PluginPatches","enableMapSet","DraftMap","target","parent","DRAFT_STATE","type_","parent_","scope_","getCurrentScope","modified_","finalized_","copy_","assigned_","base_","draft_","isManual_","revoked_","callbacks_","latest","key","value","state","assertUnrevoked","prepareMapCopy","markChanged","handleCrossReference","each","cb","thisArg","_value","_map","isDraftable","draft","createProxy","iterator","r","proxyMap_","map","DraftSet","drafts_","prepareSetCopy","result","proxySet_","set","die","fixSetContents","copy","getValue","loadPlugin","PluginMapSet","enableArrayMethods","SHIFTING_METHODS","QUEUE_METHODS","RESULT_RETURNING_METHODS","REORDERING_METHODS","MUTATING_METHODS","FIND_METHODS","NON_MUTATING_METHODS","isMutatingArrayMethod","method","isNonMutatingArrayMethod","isArrayOperationMethod","enterOperation","state","exitOperation","executeArrayMethod","operation","markLength","prepareCopy","result","markChanged","assigned_","markAllIndicesReassigned","allIndicesReassigned_","normalizeSliceIndex","index","length","handleSimpleOperation","args","copy_","draft_","handleReorderingOperation","createMethodInterceptor","originalMethod","res","handleNonMutatingOperation","source","latest","predicate","i","isForward","step","start","rawStart","rawEnd","end","loadPlugin","PluginArrayMethods","immer","Immer","produce","produceWithPatches","setAutoFreeze","setUseStrictShallowCopy","setUseStrictIteration","applyPatches","createDraft","finishDraft","castDraft","value","castImmutable"]}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/index.js
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-
-'use strict'
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./immer.cjs.production.js')
-} else {
-  module.exports = require('./immer.cjs.development.js')
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/index.js.flow
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/cjs/index.js.flow	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-// @flow
-
-export interface Patch {
-	op: "replace" | "remove" | "add";
-	path: (string | number)[];
-	value?: any;
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-type Base = {...} | Array<any>
-interface IProduce {
-	/**
-	 * Immer takes a state, and runs a function against it.
-	 * That function can freely mutate the state, as it will create copies-on-write.
-	 * This means that the original state will stay unchanged, and once the function finishes, the modified state is returned.
-	 *
-	 * If the first argument is a function, this is interpreted as the recipe, and will create a curried function that will execute the recipe
-	 * any time it is called with the current state.
-	 *
-	 * @param currentState - the state to start with
-	 * @param recipe - function that receives a proxy of the current state as first argument and which can be freely modified
-	 * @param initialState - if a curried function is created and this argument was given, it will be used as fallback if the curried function is called with a state of undefined
-	 * @returns The next state: a new state, or the current state if nothing was modified
-	 */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void,
-		patchListener?: PatchListener
-	): S;
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-}
-
-interface IProduceWithPatches {
-        /**
-         * Like `produce`, but instead of just returning the new state,
-         * a tuple is returned with [nextState, patches, inversePatches]
-         *
-         * Like produce, this function supports currying
-         */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void
-	): [S, Patch[], Patch[]];
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-}
-
-declare export var produce: IProduce
-
-declare export var produceWithPatches: IProduceWithPatches
-
-declare export var nothing: typeof undefined
-
-declare export var immerable: Symbol
-
-/**
- * Automatically freezes any state trees generated by immer.
- * This protects against accidental modifications of the state tree outside of an immer function.
- * This comes with a performance impact, so it is recommended to disable this option in production.
- * By default it is turned on during local development, and turned off in production.
- */
-declare export function setAutoFreeze(autoFreeze: boolean): void
-
-/**
- * Pass false to disable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare export function setUseStrictShallowCopy(useStrictShallowCopy: boolean): void
-
-declare export function applyPatches<S>(state: S, patches: Patch[]): S
-
-declare export function original<S>(value: S): S
-
-declare export function current<S>(value: S): S
-
-declare export function isDraft(value: any): boolean
-
-/**
- * Creates a mutable draft from an (immutable) object / array.
- * The draft can be modified until `finishDraft` is called
- */
-declare export function createDraft<T>(base: T): T
-
-/**
- * Given a draft that was created using `createDraft`,
- * finalizes the draft into a new immutable object.
- * Optionally a patch-listener can be provided to gather the patches that are needed to construct the object.
- */
-declare export function finishDraft<T>(base: T, listener?: PatchListener): T
-
-declare export function enableMapSet(): void
-declare export function enablePatches(): void
-declare export function enableArrayMethods(): void
-
-declare export function freeze<T>(obj: T, freeze?: boolean): T
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,317 +1,0 @@
-/**
- * The sentinel value returned by producers to replace the draft with undefined.
- */
-declare const NOTHING: unique symbol;
-/**
- * To let Immer treat your class instances as plain immutable objects
- * (albeit with a custom prototype), you must define either an instance property
- * or a static property on each of your custom classes.
- *
- * Otherwise, your class instance will never be drafted, which means it won't be
- * safe to mutate in a produce callback.
- */
-declare const DRAFTABLE: unique symbol;
-
-type AnyFunc = (...args: any[]) => any;
-type PrimitiveType = number | string | boolean;
-/** Object types that should never be mapped */
-type AtomicObject = Function | Promise<any> | Date | RegExp;
-/**
- * If the lib "ES2015.Collection" is not included in tsconfig.json,
- * types like ReadonlyArray, WeakMap etc. fall back to `any` (specified nowhere)
- * or `{}` (from the node types), in both cases entering an infinite recursion in
- * pattern matching type mappings
- * This type can be used to cast these types to `void` in these cases.
- */
-type IfAvailable<T, Fallback = void> = true | false extends (T extends never ? true : false) ? Fallback : keyof T extends never ? Fallback : T;
-/**
- * These should also never be mapped but must be tested after regular Map and
- * Set
- */
-type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>;
-type WritableDraft<T> = T extends any[] ? number extends T["length"] ? Draft<T[number]>[] : WritableNonArrayDraft<T> : WritableNonArrayDraft<T>;
-type WritableNonArrayDraft<T> = {
-    -readonly [K in keyof T]: T[K] extends infer V ? V extends object ? Draft<V> : V : never;
-};
-/** Convert a readonly type into a mutable type, if possible */
-type Draft<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? Map<Draft<K>, Draft<V>> : T extends ReadonlySet<infer V> ? Set<Draft<V>> : T extends WeakReferences ? T : T extends object ? WritableDraft<T> : T;
-/** Convert a mutable type into a readonly type */
-type Immutable<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Immutable<K>, Immutable<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Immutable<V>> : T extends WeakReferences ? T : T extends object ? {
-    readonly [K in keyof T]: Immutable<T[K]>;
-} : T;
-interface Patch {
-    op: "replace" | "remove" | "add";
-    path: (string | number)[];
-    value?: any;
-}
-type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void;
-/**
- * Utility types
- */
-type PatchesTuple<T> = readonly [T, Patch[], Patch[]];
-type ValidRecipeReturnType<State> = State | void | undefined | (State extends undefined ? typeof NOTHING : never);
-type ReturnTypeWithPatchesIfNeeded<State, UsePatches extends boolean> = UsePatches extends true ? PatchesTuple<State> : State;
-/**
- * Core Producer inference
- */
-type InferRecipeFromCurried<Curried> = Curried extends (base: infer State, ...rest: infer Args) => any ? ReturnType<Curried> extends State ? (draft: Draft<State>, ...rest: Args) => ValidRecipeReturnType<Draft<State>> : never : never;
-type InferInitialStateFromCurried<Curried> = Curried extends (base: infer State, ...rest: any[]) => any ? State : never;
-type InferCurriedFromRecipe<Recipe, UsePatches extends boolean> = Recipe extends (draft: infer DraftState, ...args: infer RestArgs) => any ? ReturnType<Recipe> extends ValidRecipeReturnType<DraftState> ? (base: Immutable<DraftState>, ...args: RestArgs) => ReturnTypeWithPatchesIfNeeded<DraftState, UsePatches> : never : never;
-type InferCurriedFromInitialStateAndRecipe<State, Recipe, UsePatches extends boolean> = Recipe extends (draft: Draft<State>, ...rest: infer RestArgs) => ValidRecipeReturnType<State> ? (base?: State | undefined, ...args: RestArgs) => ReturnTypeWithPatchesIfNeeded<State, UsePatches> : never;
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-interface IProduce {
-    /** Curried producer that infers the recipe from the curried output function (e.g. when passing to setState) */
-    <Curried>(recipe: InferRecipeFromCurried<Curried>, initialState?: InferInitialStateFromCurried<Curried>): Curried;
-    /** Curried producer that infers curried from the recipe  */
-    <Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, false>;
-    /** Curried producer that infers curried from the State generic, which is explicitly passed in.  */
-    <State>(recipe: (state: Draft<State>, initialState: State) => ValidRecipeReturnType<State>): (state?: State) => State;
-    <State, Args extends any[]>(recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>, initialState: State): (state?: State, ...args: Args) => State;
-    <State>(recipe: (state: Draft<State>) => ValidRecipeReturnType<State>): (state: State) => State;
-    <State, Args extends any[]>(recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>): (state: State, ...args: Args) => State;
-    /** Curried producer with initial state, infers recipe from initial state */
-    <State, Recipe extends Function>(recipe: Recipe, initialState: State): InferCurriedFromInitialStateAndRecipe<State, Recipe, false>;
-    /** Normal producer */
-    <Base, D = Draft<Base>>(// By using a default inferred D, rather than Draft<Base> in the recipe, we can override it.
-    base: Base, recipe: (draft: D) => ValidRecipeReturnType<D>, listener?: PatchListener): Base;
-}
-/**
- * Like `produce`, but instead of just returning the new state,
- * a tuple is returned with [nextState, patches, inversePatches]
- *
- * Like produce, this function supports currying
- */
-interface IProduceWithPatches {
-    <Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, true>;
-    <State, Recipe extends Function>(recipe: Recipe, initialState: State): InferCurriedFromInitialStateAndRecipe<State, Recipe, true>;
-    <Base, D = Draft<Base>>(base: Base, recipe: (draft: D) => ValidRecipeReturnType<D>, listener?: PatchListener): PatchesTuple<Base>;
-}
-/**
- * The type for `recipe function`
- */
-type Producer<T> = (draft: Draft<T>) => ValidRecipeReturnType<Draft<T>>;
-
-type Objectish = AnyObject | AnyArray | AnyMap | AnySet;
-type AnyObject = {
-    [key: string]: any;
-};
-type AnyArray = Array<any>;
-type AnySet = Set<any>;
-type AnyMap = Map<any, any>;
-
-/** Returns true if the given value is an Immer draft */
-declare let isDraft: (value: any) => boolean;
-/** Returns true if the given value can be drafted by Immer */
-declare function isDraftable(value: any): boolean;
-/** Get the underlying object that is represented by the given draft */
-declare function original<T>(value: T): T | undefined;
-/**
- * Freezes draftable objects. Returns the original object.
- * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.
- *
- * @param obj
- * @param deep
- */
-declare function freeze<T>(obj: T, deep?: boolean): T;
-
-interface ProducersFns {
-    produce: IProduce;
-    produceWithPatches: IProduceWithPatches;
-}
-type StrictMode = boolean | "class_only";
-declare class Immer implements ProducersFns {
-    autoFreeze_: boolean;
-    useStrictShallowCopy_: StrictMode;
-    useStrictIteration_: boolean;
-    constructor(config?: {
-        autoFreeze?: boolean;
-        useStrictShallowCopy?: StrictMode;
-        useStrictIteration?: boolean;
-    });
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    produce: IProduce;
-    produceWithPatches: IProduceWithPatches;
-    createDraft<T extends Objectish>(base: T): Draft<T>;
-    finishDraft<D extends Draft<any>>(draft: D, patchListener?: PatchListener): D extends Draft<infer T> ? T : never;
-    /**
-     * Pass true to automatically freeze all copies created by Immer.
-     *
-     * By default, auto-freezing is enabled.
-     */
-    setAutoFreeze(value: boolean): void;
-    /**
-     * Pass true to enable strict shallow copy.
-     *
-     * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-     */
-    setUseStrictShallowCopy(value: StrictMode): void;
-    /**
-     * Pass false to use faster iteration that skips non-enumerable properties
-     * but still handles symbols for compatibility.
-     *
-     * By default, strict iteration is enabled (includes all own properties).
-     */
-    setUseStrictIteration(value: boolean): void;
-    shouldUseStrictIteration(): boolean;
-    applyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T;
-}
-
-/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */
-declare function current<T>(value: T): T;
-
-declare function enablePatches(): void;
-
-declare function enableMapSet(): void;
-
-/**
- * Enables optimized array method handling for Immer drafts.
- *
- * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,
- * significantly improving performance for array-heavy operations.
- *
- * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):
- * Operate directly on the copy without creating per-element proxies.
- *
- * **Non-mutating methods** fall into categories:
- * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track
- * - **Transform operations** (concat, flat): Return base values - mutations don't track
- * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives
- *
- * **Important**: Callbacks for overridden methods receive base values, not drafts.
- * This is the core performance optimization.
- *
- * @example
- * ```ts
- * import { enableArrayMethods, produce } from "immer"
- *
- * enableArrayMethods()
- *
- * const next = produce(state, draft => {
- *   // Optimized - no proxy creation per element
- *   draft.items.sort((a, b) => a.value - b.value)
- *
- *   // filter returns drafts - mutations propagate
- *   const filtered = draft.items.filter(x => x.value > 5)
- *   filtered[0].value = 999 // Affects draft.items[originalIndex]
- * })
- * ```
- *
- * @see https://immerjs.github.io/immer/array-methods
- */
-declare function enableArrayMethods(): void;
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-declare const produce: IProduce;
-/**
- * Like `produce`, but `produceWithPatches` always returns a tuple
- * [nextState, patches, inversePatches] (instead of just the next state)
- */
-declare const produceWithPatches: IProduceWithPatches;
-/**
- * Pass true to automatically freeze all copies created by Immer.
- *
- * Always freeze by default, even in production mode
- */
-declare const setAutoFreeze: (value: boolean) => void;
-/**
- * Pass true to enable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare const setUseStrictShallowCopy: (value: StrictMode) => void;
-/**
- * Pass false to use loose iteration that only processes enumerable string properties.
- * This skips symbols and non-enumerable properties for maximum performance.
- *
- * By default, strict iteration is enabled (includes all own properties).
- */
-declare const setUseStrictIteration: (value: boolean) => void;
-/**
- * Apply an array of Immer patches to the first argument.
- *
- * This function is a producer, which means copy-on-write is in effect.
- */
-declare const applyPatches: <T extends Objectish>(base: T, patches: readonly Patch[]) => T;
-/**
- * Create an Immer draft from the given base state, which may be a draft itself.
- * The draft can be modified until you finalize it with the `finishDraft` function.
- */
-declare const createDraft: <T extends Objectish>(base: T) => Draft<T>;
-/**
- * Finalize an Immer draft from a `createDraft` call, returning the base state
- * (if no changes were made) or a modified copy. The draft must *not* be
- * mutated afterwards.
- *
- * Pass a function as the 2nd argument to generate Immer patches based on the
- * changes that were made.
- */
-declare const finishDraft: <D extends unknown>(draft: D, patchListener?: PatchListener | undefined) => D extends Draft<infer T> ? T : never;
-/**
- * This function is actually a no-op, but can be used to cast an immutable type
- * to an draft type and make TypeScript happy
- *
- * @param value
- */
-declare let castDraft: <T>(value: T) => Draft<T>;
-/**
- * This function is actually a no-op, but can be used to cast a mutable type
- * to an immutable type and make TypeScript happy
- * @param value
- */
-declare let castImmutable: <T>(value: T) => Immutable<T>;
-
-export { Draft, Immer, Immutable, Objectish, Patch, PatchListener, Producer, StrictMode, WritableDraft, applyPatches, castDraft, castImmutable, createDraft, current, enableArrayMethods, enableMapSet, enablePatches, finishDraft, freeze, DRAFTABLE as immerable, isDraft, isDraftable, NOTHING as nothing, original, produce, produceWithPatches, setAutoFreeze, setUseStrictIteration, setUseStrictShallowCopy };
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.legacy-esm.js
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1672 +1,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = isFunction(e) ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var O = Object;
-var getPrototypeOf = O.getPrototypeOf;
-var CONSTRUCTOR = "constructor";
-var PROTOTYPE = "prototype";
-var CONFIGURABLE = "configurable";
-var ENUMERABLE = "enumerable";
-var WRITABLE = "writable";
-var VALUE = "value";
-var isDraft = (value) => !!value && !!value[DRAFT_STATE];
-function isDraftable(value) {
-  var _a;
-  if (!value)
-    return false;
-  return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!((_a = value[CONSTRUCTOR]) == null ? void 0 : _a[DRAFTABLE]) || isMap(value) || isSet(value);
-}
-var objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || !isObjectish(value))
-    return false;
-  const proto = getPrototypeOf(value);
-  if (proto === null || proto === O[PROTOTYPE])
-    return true;
-  const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];
-  if (Ctor === Object)
-    return true;
-  if (!isFunction(Ctor))
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-var has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);
-var get = (thing, prop, type = getArchtype(thing)) => (
-  // @ts-ignore
-  type === 2 /* Map */ ? thing.get(prop) : thing[prop]
-);
-var set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {
-  if (type === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (type === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-};
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-var isArray = Array.isArray;
-var isMap = (target) => target instanceof Map;
-var isSet = (target) => target instanceof Set;
-var isObjectish = (target) => typeof target === "object";
-var isFunction = (target) => typeof target === "function";
-var isBoolean = (target) => typeof target === "boolean";
-function isArrayIndex(value) {
-  const n = +value;
-  return Number.isInteger(n) && String(n) === value;
-}
-var getProxyDraft = (value) => {
-  if (!isObjectish(value))
-    return null;
-  return value == null ? void 0 : value[DRAFT_STATE];
-};
-var latest = (state) => state.copy_ || state.base_;
-var getValue = (value) => {
-  var _a;
-  const proxyDraft = getProxyDraft(value);
-  return proxyDraft ? (_a = proxyDraft.copy_) != null ? _a : proxyDraft.base_ : value;
-};
-var getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (isArray(base))
-    return Array[PROTOTYPE].slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = O.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc[WRITABLE] === false) {
-        desc[WRITABLE] = true;
-        desc[CONFIGURABLE] = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          [CONFIGURABLE]: true,
-          [WRITABLE]: true,
-          // could live with !!desc.set as well here...
-          [ENUMERABLE]: desc[ENUMERABLE],
-          [VALUE]: base[key]
-        };
-    }
-    return O.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return __spreadValues({}, base);
-    }
-    const obj = O.create(proto);
-    return O.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    O.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  O.freeze(obj);
-  if (deep)
-    each(
-      obj,
-      (_key, value) => {
-        freeze(value, true);
-      },
-      false
-    );
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  [VALUE]: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || !isObjectish(obj))
-    return true;
-  return O.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var PluginMapSet = "MapSet";
-var PluginPatches = "Patches";
-var PluginArrayMethods = "ArrayMethods";
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-var isPluginLoaded = (pluginKey) => !!plugins[pluginKey];
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-var getCurrentScope = () => currentScope;
-var createScope = (parent_, immer_) => ({
-  drafts_: [],
-  parent_,
-  immer_,
-  // Whenever the modified draft contains a draft from another scope, we
-  // need to prevent auto-freezing so the unowned draft can be finalized.
-  canAutoFreeze_: true,
-  unfinalizedDrafts_: 0,
-  handledSet_: /* @__PURE__ */ new Set(),
-  processedForPatches_: /* @__PURE__ */ new Set(),
-  mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,
-  arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0
-});
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    scope.patchPlugin_ = getPlugin(PluginPatches);
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-var enterScope = (immer2) => currentScope = createScope(currentScope, immer2);
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-    }
-    const { patchPlugin_ } = scope;
-    if (patchPlugin_) {
-      patchPlugin_.generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft);
-  }
-  maybeFreeze(scope, result, true);
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value) {
-  if (isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    const finalValue = handleValue(value, rootScope.handledSet_, rootScope);
-    return finalValue;
-  }
-  if (!isSameScope(state, rootScope)) {
-    return value;
-  }
-  if (!state.modified_) {
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    const { callbacks_ } = state;
-    if (callbacks_) {
-      while (callbacks_.length > 0) {
-        const callback = callbacks_.pop();
-        callback(rootScope);
-      }
-    }
-    generatePatchesAndFinalize(state, rootScope);
-  }
-  return state.copy_;
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-function markStateFinalized(state) {
-  state.finalized_ = true;
-  state.scope_.unfinalizedDrafts_--;
-}
-var isSameScope = (state, rootScope) => state.scope_ === rootScope;
-var EMPTY_LOCATIONS_RESULT = [];
-function updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {
-  var _a;
-  const parentCopy = latest(parent);
-  const parentType = parent.type_;
-  if (originalKey !== void 0) {
-    const currentValue = get(parentCopy, originalKey, parentType);
-    if (currentValue === draftValue) {
-      set(parentCopy, originalKey, finalizedValue, parentType);
-      return;
-    }
-  }
-  if (!parent.draftLocations_) {
-    const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();
-    each(parentCopy, (key, value) => {
-      if (isDraft(value)) {
-        const keys = draftLocations.get(value) || [];
-        keys.push(key);
-        draftLocations.set(value, keys);
-      }
-    });
-  }
-  const locations = (_a = parent.draftLocations_.get(draftValue)) != null ? _a : EMPTY_LOCATIONS_RESULT;
-  for (const location of locations) {
-    set(parentCopy, location, finalizedValue, parentType);
-  }
-}
-function registerChildFinalizationCallback(parent, child, key) {
-  parent.callbacks_.push(function childCleanup(rootScope) {
-    var _a, _b;
-    const state = child;
-    if (!state || !isSameScope(state, rootScope)) {
-      return;
-    }
-    (_a = rootScope.mapSetPlugin_) == null ? void 0 : _a.fixSetContents(state);
-    const finalizedValue = getFinalValue(state);
-    updateDraftInParent(parent, (_b = state.draft_) != null ? _b : state, finalizedValue, key);
-    generatePatchesAndFinalize(state, rootScope);
-  });
-}
-function generatePatchesAndFinalize(state, rootScope) {
-  var _a, _b;
-  const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || ((_b = (_a = state.assigned_) == null ? void 0 : _a.size) != null ? _b : 0) > 0);
-  if (shouldFinalize) {
-    const { patchPlugin_ } = rootScope;
-    if (patchPlugin_) {
-      const basePath = patchPlugin_.getPath(state);
-      if (basePath) {
-        patchPlugin_.generatePatches_(state, basePath, rootScope);
-      }
-    }
-    markStateFinalized(state);
-  }
-}
-function handleCrossReference(target, key, value) {
-  const { scope_ } = target;
-  if (isDraft(value)) {
-    const state = value[DRAFT_STATE];
-    if (isSameScope(state, scope_)) {
-      state.callbacks_.push(function crossReferenceCleanup() {
-        prepareCopy(target);
-        const finalizedValue = getFinalValue(state);
-        updateDraftInParent(target, value, finalizedValue, key);
-      });
-    }
-  } else if (isDraftable(value)) {
-    target.callbacks_.push(function nestedDraftCleanup() {
-      var _a;
-      const targetCopy = latest(target);
-      if (target.type_ === 3 /* Set */) {
-        if (targetCopy.has(value)) {
-          handleValue(value, scope_.handledSet_, scope_);
-        }
-      } else {
-        if (get(targetCopy, key, target.type_) === value) {
-          if (scope_.drafts_.length > 1 && ((_a = target.assigned_.get(key)) != null ? _a : false) === true && target.copy_) {
-            handleValue(
-              get(target.copy_, key, target.type_),
-              scope_.handledSet_,
-              scope_
-            );
-          }
-        }
-      }
-    });
-  }
-}
-function handleValue(target, handledSet, rootScope) {
-  if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-    return target;
-  }
-  if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {
-    return target;
-  }
-  handledSet.add(target);
-  each(target, (key, value) => {
-    if (isDraft(value)) {
-      const state = value[DRAFT_STATE];
-      if (isSameScope(state, rootScope)) {
-        const updatedValue = getFinalValue(state);
-        set(target, key, updatedValue, target.type_);
-        markStateFinalized(state);
-      }
-    } else if (isDraftable(value)) {
-      handleValue(value, handledSet, rootScope);
-    }
-  });
-  return target;
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const baseIsArray = isArray(base);
-  const state = {
-    type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    // actually instantiated in `prepareCopy()`
-    assigned_: void 0,
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false,
-    // `callbacks` actually gets assigned in `createProxy`
-    callbacks_: void 0
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (baseIsArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return [proxy, state];
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    let arrayPlugin = state.scope_.arrayMethodsPlugin_;
-    const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === "string";
-    if (isArrayWithStringProp) {
-      if (arrayPlugin == null ? void 0 : arrayPlugin.isArrayOperationMethod(prop)) {
-        return arrayPlugin.createMethodInterceptor(state, prop);
-      }
-    }
-    const source = latest(state);
-    if (!has(source, prop, state.type_)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (isArrayWithStringProp && state.operationMethod && (arrayPlugin == null ? void 0 : arrayPlugin.isMutatingArrayMethod(
-      state.operationMethod
-    )) && isArrayIndex(prop)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      const childKey = state.type_ === 1 /* Array */ ? +prop : prop;
-      const childDraft = createProxy(state.scope_, value, state, childKey);
-      return state.copy_[childKey] = childDraft;
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc == null ? void 0 : desc.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2 == null ? void 0 : current2[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_.set(prop, false);
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_.set(prop, true);
-    handleCrossReference(state, prop, value);
-    return true;
-  },
-  deleteProperty(state, prop) {
-    prepareCopy(state);
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_.set(prop, false);
-      markChanged(state);
-    } else {
-      state.assigned_.delete(prop);
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      [WRITABLE]: true,
-      [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== "length",
-      [ENUMERABLE]: desc[ENUMERABLE],
-      [VALUE]: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-for (let key in objectTraps) {
-  let fn = objectTraps[key];
-  arrayTraps[key] = function() {
-    const args = arguments;
-    args[0] = args[0][0];
-    return fn.apply(this, args);
-  };
-}
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  var _a;
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? VALUE in desc ? desc[VALUE] : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    (_a = desc.get) == null ? void 0 : _a.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.assigned_ = /* @__PURE__ */ new Map();
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = false;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (isFunction(base) && !isFunction(recipe)) {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (!isFunction(recipe))
-        die(6);
-      if (patchListener !== void 0 && !isFunction(patchListener))
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(scope, base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || !isObjectish(base)) {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin(PluginPatches).generateReplacementPatches_(base, result, {
-            patches_: p,
-            inversePatches_: ip
-          });
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (isFunction(base)) {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (isBoolean(config == null ? void 0 : config.autoFreeze))
-      this.setAutoFreeze(config.autoFreeze);
-    if (isBoolean(config == null ? void 0 : config.useStrictShallowCopy))
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (isBoolean(config == null ? void 0 : config.useStrictIteration))
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(scope, base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(rootScope, value, parent, key) {
-  var _a, _b;
-  const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = (_a = parent == null ? void 0 : parent.scope_) != null ? _a : getCurrentScope();
-  scope.drafts_.push(draft);
-  state.callbacks_ = (_b = parent == null ? void 0 : parent.callbacks_) != null ? _b : [];
-  state.key_ = key;
-  if (parent && key !== void 0) {
-    registerChildFinalizationCallback(parent, state, key);
-  } else {
-    state.callbacks_.push(function rootDraftCleanup(rootScope2) {
-      var _a2;
-      (_a2 = rootScope2.mapSetPlugin_) == null ? void 0 : _a2.fixSetContents(state);
-      const { patchPlugin_ } = rootScope2;
-      if (state.modified_ && patchPlugin_) {
-        patchPlugin_.generatePatches_(state, [], rootScope2);
-      }
-    });
-  }
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  function getPath(state, path = []) {
-    var _a;
-    if (state.key_ !== void 0) {
-      const parentCopy = (_a = state.parent_.copy_) != null ? _a : state.parent_.base_;
-      const proxyDraft = getProxyDraft(get(parentCopy, state.key_));
-      const valueAtKey = get(parentCopy, state.key_);
-      if (valueAtKey === void 0) {
-        return null;
-      }
-      if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {
-        return null;
-      }
-      if (proxyDraft != null && proxyDraft.base_ !== state.base_) {
-        return null;
-      }
-      const isSet2 = state.parent_.type_ === 3 /* Set */;
-      let key;
-      if (isSet2) {
-        const setParent = state.parent_;
-        key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);
-      } else {
-        key = state.key_;
-      }
-      if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {
-        return null;
-      }
-      path.push(key);
-    }
-    if (state.parent_) {
-      return getPath(state.parent_, path);
-    }
-    path.reverse();
-    try {
-      resolvePath(state.copy_, path);
-    } catch (e) {
-      return null;
-    }
-    return path;
-  }
-  function resolvePath(base, path) {
-    let current2 = base;
-    for (let i = 0; i < path.length - 1; i++) {
-      const key = path[i];
-      current2 = get(current2, key);
-      if (!isObjectish(current2) || current2 === null) {
-        throw new Error(`Cannot resolve path at '${path.join("/")}'`);
-      }
-    }
-    return current2;
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, scope) {
-    if (state.scope_.processedForPatches_.has(state)) {
-      return;
-    }
-    state.scope_.processedForPatches_.add(state);
-    const { patches_, inversePatches_ } = scope;
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    const allReassigned = state.allIndicesReassigned_ === true;
-    for (let i = 0; i < base_.length; i++) {
-      const copiedItem = copy_[i];
-      const baseItem = base_[i];
-      const isAssigned = allReassigned || (assigned_ == null ? void 0 : assigned_.get(i.toString()));
-      if (isAssigned && copiedItem !== baseItem) {
-        const childState = copiedItem == null ? void 0 : copiedItem[DRAFT_STATE];
-        if (childState && childState.modified_) {
-          continue;
-        }
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copiedItem)
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(baseItem)
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_, type_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key, type_);
-      const value = get(copy_, key, type_);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(
-        op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }
-      );
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, scope) {
-    const { patches_, inversePatches_ } = scope;
-    patches_.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches_.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === CONSTRUCTOR))
-          die(errorOffset + 3);
-        if (isFunction(base) && p === PROTOTYPE)
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (!isObjectish(base))
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin(PluginPatches, {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_,
-    getPath
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-        handleCrossReference(state, key, value);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(state.scope_, value, state, key);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    const map = new DraftMap(target, parent);
-    return [map, map[DRAFT_STATE]];
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false,
-        assigned_: void 0,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-        handleCrossReference(state, value, value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    const set2 = new DraftSet(target, parent);
-    return [set2, set2[DRAFT_STATE]];
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(state.scope_, value, state, value);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  function fixSetContents(target) {
-    if (target.type_ === 3 /* Set */ && target.copy_) {
-      const copy = new Set(target.copy_);
-      target.copy_.clear();
-      copy.forEach((value) => {
-        target.copy_.add(getValue(value));
-      });
-    }
-  }
-  loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });
-}
-
-// src/plugins/arrayMethods.ts
-function enableArrayMethods() {
-  const SHIFTING_METHODS = /* @__PURE__ */ new Set(["shift", "unshift"]);
-  const QUEUE_METHODS = /* @__PURE__ */ new Set(["push", "pop"]);
-  const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([
-    ...QUEUE_METHODS,
-    ...SHIFTING_METHODS
-  ]);
-  const REORDERING_METHODS = /* @__PURE__ */ new Set(["reverse", "sort"]);
-  const MUTATING_METHODS = /* @__PURE__ */ new Set([
-    ...RESULT_RETURNING_METHODS,
-    ...REORDERING_METHODS,
-    "splice"
-  ]);
-  const FIND_METHODS = /* @__PURE__ */ new Set(["find", "findLast"]);
-  const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([
-    "filter",
-    "slice",
-    "concat",
-    "flat",
-    ...FIND_METHODS,
-    "findIndex",
-    "findLastIndex",
-    "some",
-    "every",
-    "indexOf",
-    "lastIndexOf",
-    "includes",
-    "join",
-    "toString",
-    "toLocaleString"
-  ]);
-  function isMutatingArrayMethod(method) {
-    return MUTATING_METHODS.has(method);
-  }
-  function isNonMutatingArrayMethod(method) {
-    return NON_MUTATING_METHODS.has(method);
-  }
-  function isArrayOperationMethod(method) {
-    return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);
-  }
-  function enterOperation(state, method) {
-    state.operationMethod = method;
-  }
-  function exitOperation(state) {
-    state.operationMethod = void 0;
-  }
-  function executeArrayMethod(state, operation, markLength = true) {
-    prepareCopy(state);
-    const result = operation();
-    markChanged(state);
-    if (markLength)
-      state.assigned_.set("length", true);
-    return result;
-  }
-  function markAllIndicesReassigned(state) {
-    state.allIndicesReassigned_ = true;
-  }
-  function normalizeSliceIndex(index, length) {
-    if (index < 0) {
-      return Math.max(length + index, 0);
-    }
-    return Math.min(index, length);
-  }
-  function handleSimpleOperation(state, method, args) {
-    return executeArrayMethod(state, () => {
-      const result = state.copy_[method](...args);
-      if (SHIFTING_METHODS.has(method)) {
-        markAllIndicesReassigned(state);
-      }
-      return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;
-    });
-  }
-  function handleReorderingOperation(state, method, args) {
-    return executeArrayMethod(
-      state,
-      () => {
-        ;
-        state.copy_[method](...args);
-        markAllIndicesReassigned(state);
-        return state.draft_;
-      },
-      false
-    );
-  }
-  function createMethodInterceptor(state, originalMethod) {
-    return function interceptedMethod(...args) {
-      const method = originalMethod;
-      enterOperation(state, method);
-      try {
-        if (isMutatingArrayMethod(method)) {
-          if (RESULT_RETURNING_METHODS.has(method)) {
-            return handleSimpleOperation(state, method, args);
-          }
-          if (REORDERING_METHODS.has(method)) {
-            return handleReorderingOperation(state, method, args);
-          }
-          if (method === "splice") {
-            const res = executeArrayMethod(
-              state,
-              () => state.copy_.splice(...args)
-            );
-            markAllIndicesReassigned(state);
-            return res;
-          }
-        } else {
-          return handleNonMutatingOperation(state, method, args);
-        }
-      } finally {
-        exitOperation(state);
-      }
-    };
-  }
-  function handleNonMutatingOperation(state, method, args) {
-    var _a, _b;
-    const source = latest(state);
-    if (method === "filter") {
-      const predicate = args[0];
-      const result = [];
-      for (let i = 0; i < source.length; i++) {
-        if (predicate(source[i], i, source)) {
-          result.push(state.draft_[i]);
-        }
-      }
-      return result;
-    }
-    if (FIND_METHODS.has(method)) {
-      const predicate = args[0];
-      const isForward = method === "find";
-      const step = isForward ? 1 : -1;
-      const start = isForward ? 0 : source.length - 1;
-      for (let i = start; i >= 0 && i < source.length; i += step) {
-        if (predicate(source[i], i, source)) {
-          return state.draft_[i];
-        }
-      }
-      return void 0;
-    }
-    if (method === "slice") {
-      const rawStart = (_a = args[0]) != null ? _a : 0;
-      const rawEnd = (_b = args[1]) != null ? _b : source.length;
-      const start = normalizeSliceIndex(rawStart, source.length);
-      const end = normalizeSliceIndex(rawEnd, source.length);
-      const result = [];
-      for (let i = start; i < end; i++) {
-        result.push(state.draft_[i]);
-      }
-      return result;
-    }
-    return source[method](...args);
-  }
-  loadPlugin(PluginArrayMethods, {
-    createMethodInterceptor,
-    isArrayOperationMethod,
-    isMutatingArrayMethod
-  });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-var castDraft = (value) => value;
-var castImmutable = (value) => value;
-export {
-  Immer2 as Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableArrayMethods,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  DRAFTABLE as immerable,
-  isDraft,
-  isDraftable,
-  NOTHING as nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-};
-//# sourceMappingURL=immer.legacy-esm.js.map
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.legacy-esm.js.map
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/plugins/arrayMethods.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","import {isFunction} from \"../internal\"\n\nexport const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = isFunction(e) ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tisArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value[CONSTRUCTOR]?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (isArray(base)) return Array[PROTOTYPE].slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = O.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc[WRITABLE] === false) {\n\t\t\t\tdesc[WRITABLE] = true\n\t\t\t\tdesc[CONFIGURABLE] = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = O.create(proto)\n\t\treturn O.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tO.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tO.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin,\n\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft)\n\t}\n\n\tmaybeFreeze(scope, result, true)\n\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n","import {\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): [Drafted<T, ProxyState>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false,\n\t\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (baseIsArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn [proxy as any, state]\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(prop)\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\n\t}\n}\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? VALUE in desc\n\t\t\t? desc[VALUE]\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent,\n\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (isFunction(base) && !isFunction(recipe)) {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(scope, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || !isObjectish(base)) {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (isFunction(base)) {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(scope, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(PluginPatches).applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n","import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n *   // Optimized - no proxy creation per element\n *   draft.items.sort((a, b) => a.value - b.value)\n *\n *   // filter returns drafts - mutations propagate\n *   const filtered = draft.items.filter(x => x.value > 5)\n *   filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t *    to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t *   Since the result structure differs from the original, tracking mutations\n\t *   back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t//   This is intentional - concat/flat create new data structures rather than\n\t\t//   selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport let castDraft = <T>(value: T): Draft<T> => value as any\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\n"],"mappings":";;;;;;;;;;;;;;;;;;AAKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACf3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,MAAM,IAAW,IAAI;AACzD,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACnCA,IAAM,IAAI;AAEH,IAAM,iBAAiB,EAAE;AAEzB,IAAM,cAAc;AACpB,IAAM,YAAY;AAElB,IAAM,eAAe;AACrB,IAAM,aAAa;AACnB,IAAM,WAAW;AACjB,IAAM,QAAQ;AAId,IAAI,UAAU,CAAC,UAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AAIrE,SAAS,YAAY,OAAqB;AAhCjD;AAiCC,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,QAAQ,KAAK,KACb,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,GAAC,WAAM,WAAW,MAAjB,mBAAqB,eACvB,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;AAC5D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,CAAC,YAAY,KAAK;AAAG,WAAO;AAC1C,QAAM,QAAQ,eAAe,KAAK;AAClC,MAAI,UAAU,QAAQ,UAAU,EAAE,SAAS;AAAG,WAAO;AAErD,QAAM,OAAO,EAAE,eAAe,KAAK,OAAO,WAAW,KAAK,MAAM,WAAW;AAC3E,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,CAAC,WAAW,IAAI;AAAG,WAAO;AAE9B,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG;AACvD,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,QAAQ,KAAK,oBAEb,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK,MAExB,uBACG,MAAM,IAAI,IAAI,IACd,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,IAAI;AAGzC,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK;AAAA;AAAA,EAGxB,uBAAwB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAAA;AAG9C,IAAI,MAAM,CAChB,OACA,gBACA,OACA,OAAO,YAAY,KAAK,MACpB;AACJ,MAAI;AAAuB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WACjD,sBAAuB;AAC/B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAEO,IAAI,UAAU,MAAM;AAGpB,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAGjE,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAEjE,IAAI,cAAc,CAAC,WAAgB,OAAO,WAAW;AAErD,IAAI,aAAa,CAAC,WACxB,OAAO,WAAW;AAEZ,IAAI,YAAY,CAAC,WACvB,OAAO,WAAW;AAEZ,SAAS,aAAa,OAAkD;AAC9E,QAAM,IAAI,CAAC;AACX,SAAO,OAAO,UAAU,CAAC,KAAK,OAAO,CAAC,MAAM;AAC7C;AAEO,IAAI,gBAAgB,CAAgB,UAAgC;AAC1E,MAAI,CAAC,YAAY,KAAK;AAAG,WAAO;AAChC,SAAQ,+BAAiC;AAC1C;AAGO,IAAI,SAAS,CAAC,UAA2B,MAAM,SAAS,MAAM;AAE9D,IAAI,WAAW,CAAmB,UAAgB;AA1LzD;AA2LC,QAAM,aAAa,cAAc,KAAK;AACtC,SAAO,cAAa,gBAAW,UAAX,YAAoB,WAAW,QAAQ;AAC5D;AAEO,IAAI,gBAAgB,CAAC,UAC3B,MAAM,YAAY,MAAM,QAAQ,MAAM;AAGhC,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,QAAQ,IAAI;AAAG,WAAO,MAAM,SAAS,EAAE,MAAM,KAAK,IAAI;AAE1D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,EAAE,0BAA0B,IAAI;AACpD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,QAAQ,MAAM,OAAO;AAC7B,aAAK,QAAQ,IAAI;AACjB,aAAK,YAAY,IAAI;AAAA,MACtB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,CAAC,YAAY,GAAG;AAAA,UAChB,CAAC,QAAQ,GAAG;AAAA;AAAA,UACZ,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,UAC7B,CAAC,KAAK,GAAG,KAAK,GAAG;AAAA,QAClB;AAAA,IACF;AACA,WAAO,EAAE,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EAClD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,mBAAI;AAAA,IACZ;AACA,UAAM,MAAM,EAAE,OAAO,KAAK;AAC1B,WAAO,EAAE,OAAO,KAAK,IAAI;AAAA,EAC1B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,MAAE,iBAAiB,KAAK;AAAA,MACvB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,IAAE,OAAO,GAAG;AACZ,MAAI;AAGH;AAAA,MACC;AAAA,MACA,CAAC,MAAM,UAAU;AAChB,eAAO,OAAO,IAAI;AAAA,MACnB;AAAA,MACA;AAAA,IACD;AACD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,CAAC,KAAK,GAAG;AACV;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,CAAC,YAAY,GAAG;AAAG,WAAO;AAC9C,SAAO,EAAE,SAAS,GAAG;AACtB;;;AChRO,IAAM,eAAe;AACrB,IAAM,gBAAgB;AACtB,IAAM,qBAAqB;AA8BlC,IAAM,UAIF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,IAAI,iBAAiB,CAA0B,cACrD,CAAC,CAAC,QAAQ,SAAS;AAMb,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;ACxCA,IAAI;AAEG,IAAI,kBAAkB,MAAM;AAEnC,IAAI,cAAc,CACjB,SACA,YACiB;AAAA,EACjB,SAAS,CAAC;AAAA,EACV;AAAA,EACA;AAAA;AAAA;AAAA,EAGA,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,aAAa,oBAAI,IAAI;AAAA,EACrB,sBAAsB,oBAAI,IAAI;AAAA,EAC9B,eAAe,eAAe,YAAY,IACvC,UAAU,YAAY,IACtB;AAAA,EACH,qBAAqB,eAAe,kBAAkB,IACnD,UAAU,kBAAkB,IAC5B;AACJ;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,UAAM,eAAe,UAAU,aAAa;AAC5C,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,IAAI,aAAa,CAACA,WACvB,eAAe,YAAY,cAAcA,MAAK;AAEhD,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;ACpEO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AAEtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAAA,IAChC;AACA,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,mBAAa;AAAA,QACZ,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,SAAS;AAAA,EACnC;AAEA,cAAY,OAAO,QAAQ,IAAI;AAE/B,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY;AAEpD,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,CAAC,OAAO;AACX,UAAM,aAAa,YAAY,OAAO,UAAU,aAAa,SAAS;AACtE,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,YAAY,OAAO,SAAS,GAAG;AACnC,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,MAAM,WAAW;AACrB,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AAEtB,UAAM,EAAC,WAAU,IAAI;AACrB,QAAI,YAAY;AACf,aAAO,WAAW,SAAS,GAAG;AAC7B,cAAM,WAAW,WAAW,IAAI;AAChC,iBAAS,SAAS;AAAA,MACnB;AAAA,IACD;AAEA,+BAA2B,OAAO,SAAS;AAAA,EAC5C;AAGA,SAAO,MAAM;AACd;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;AAEA,SAAS,mBAAmB,OAAmB;AAC9C,QAAM,aAAa;AACnB,QAAM,OAAO;AACd;AAEA,IAAI,cAAc,CAAC,OAAmB,cACrC,MAAM,WAAW;AAGlB,IAAM,yBAAuD,CAAC;AAIvD,SAAS,oBACf,QACA,YACA,gBACA,aACO;AA5HR;AA6HC,QAAM,aAAa,OAAO,MAAM;AAChC,QAAM,aAAa,OAAO;AAG1B,MAAI,gBAAgB,QAAW;AAC9B,UAAM,eAAe,IAAI,YAAY,aAAa,UAAU;AAC5D,QAAI,iBAAiB,YAAY;AAEhC,UAAI,YAAY,aAAa,gBAAgB,UAAU;AACvD;AAAA,IACD;AAAA,EACD;AAMA,MAAI,CAAC,OAAO,iBAAiB;AAC5B,UAAM,iBAAkB,OAAO,kBAAkB,oBAAI,IAAI;AAGzD,SAAK,YAAY,CAAC,KAAK,UAAU;AAChC,UAAI,QAAQ,KAAK,GAAG;AACnB,cAAM,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC;AAC3C,aAAK,KAAK,GAAG;AACb,uBAAe,IAAI,OAAO,IAAI;AAAA,MAC/B;AAAA,IACD,CAAC;AAAA,EACF;AAGA,QAAM,aACL,YAAO,gBAAgB,IAAI,UAAU,MAArC,YAA0C;AAG3C,aAAW,YAAY,WAAW;AACjC,QAAI,YAAY,UAAU,gBAAgB,UAAU;AAAA,EACrD;AACD;AAKO,SAAS,kCACf,QACA,OACA,KACC;AACD,SAAO,WAAW,KAAK,SAAS,aAAa,WAAW;AA7KzD;AA8KE,UAAM,QAAoB;AAG1B,QAAI,CAAC,SAAS,CAAC,YAAY,OAAO,SAAS,GAAG;AAC7C;AAAA,IACD;AAGA,oBAAU,kBAAV,mBAAyB,eAAe;AAExC,UAAM,iBAAiB,cAAc,KAAK;AAG1C,wBAAoB,SAAQ,WAAM,WAAN,YAAgB,OAAO,gBAAgB,GAAG;AAEtE,+BAA2B,OAAO,SAAS;AAAA,EAC5C,CAAC;AACF;AAEA,SAAS,2BAA2B,OAAmB,WAAuB;AAjM9E;AAkMC,QAAM,iBACL,MAAM,aACN,CAAC,MAAM,eACN,MAAM,yBACL,MAAM,2BACL,MAA0B,2BAC3B,iBAAM,cAAN,mBAAiB,SAAjB,YAAyB,KAAK;AAEjC,MAAI,gBAAgB;AACnB,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,YAAM,WAAW,aAAc,QAAQ,KAAK;AAE5C,UAAI,UAAU;AACb,qBAAc,iBAAiB,OAAO,UAAU,SAAS;AAAA,MAC1D;AAAA,IACD;AAEA,uBAAmB,KAAK;AAAA,EACzB;AACD;AAEO,SAAS,qBACf,QACA,KACA,OACC;AACD,QAAM,EAAC,OAAM,IAAI;AAEjB,MAAI,QAAQ,KAAK,GAAG;AACnB,UAAM,QAAoB,MAAM,WAAW;AAC3C,QAAI,YAAY,OAAO,MAAM,GAAG;AAG/B,YAAM,WAAW,KAAK,SAAS,wBAAwB;AAEtD,oBAAY,MAAM;AAElB,cAAM,iBAAiB,cAAc,KAAK;AAE1C,4BAAoB,QAAQ,OAAO,gBAAgB,GAAG;AAAA,MACvD,CAAC;AAAA,IACF;AAAA,EACD,WAAW,YAAY,KAAK,GAAG;AAE9B,WAAO,WAAW,KAAK,SAAS,qBAAqB;AA/OvD;AAgPG,YAAM,aAAa,OAAO,MAAM;AAGhC,UAAI,OAAO,uBAAwB;AAClC,YAAI,WAAW,IAAI,KAAK,GAAG;AAE1B,sBAAY,OAAO,OAAO,aAAa,MAAM;AAAA,QAC9C;AAAA,MACD,OAAO;AAEN,YAAI,IAAI,YAAY,KAAK,OAAO,KAAK,MAAM,OAAO;AACjD,cACC,OAAO,QAAQ,SAAS,OACtB,YAAyC,UAAW,IAAI,GAAG,MAA3D,YACD,WAAW,QACZ,OAAO,OACN;AAGD;AAAA,cACC,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,cACnC,OAAO;AAAA,cACP;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AACD;AAEO,SAAS,YACf,QACA,YACA,WACC;AACD,MAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE,WAAO;AAAA,EACR;AAGA,MACC,QAAQ,MAAM,KACd,WAAW,IAAI,MAAM,KACrB,CAAC,YAAY,MAAM,KACnB,SAAS,MAAM,GACd;AACD,WAAO;AAAA,EACR;AAEA,aAAW,IAAI,MAAM;AAGrB,OAAK,QAAQ,CAAC,KAAK,UAAU;AAC5B,QAAI,QAAQ,KAAK,GAAG;AACnB,YAAM,QAAoB,MAAM,WAAW;AAC3C,UAAI,YAAY,OAAO,SAAS,GAAG;AAGlC,cAAM,eAAe,cAAc,KAAK;AAExC,YAAI,QAAQ,KAAK,cAAc,OAAO,KAAK;AAE3C,2BAAmB,KAAK;AAAA,MACzB;AAAA,IACD,WAAW,YAAY,KAAK,GAAG;AAE9B,kBAAY,OAAO,YAAY,SAAS;AAAA,IACzC;AAAA,EACD,CAAC;AAED,SAAO;AACR;;;ACtQO,SAAS,iBACf,MACA,QACuC;AACvC,QAAM,cAAc,QAAQ,IAAI;AAChC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA;AAAA,IAGZ,WAAW;AAAA;AAAA,IAEX,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA,EACb;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,aAAa;AAChB,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO,CAAC,OAAc,KAAK;AAC5B;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,QAAI,cAAc,MAAM,OAAO;AAC/B,UAAM,wBACL,MAAM,2BAA4B,OAAO,SAAS;AAGnD,QAAI,uBAAuB;AAC1B,UAAI,2CAAa,uBAAuB,OAAO;AAC9C,eAAO,YAAY,wBAAwB,OAAO,IAAI;AAAA,MACvD;AAAA,IACD;AAEA,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,MAAM,MAAM,KAAK,GAAG;AAEpC,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAIA,QACC,yBACC,MAA0B,oBAC3B,2CAAa;AAAA,MACX,MAA0B;AAAA,UAE5B,aAAa,IAAI,GAChB;AAED,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AAEjB,YAAM,WAAW,MAAM,0BAA2B,CAAE,OAAkB;AACtE,YAAM,aAAa,YAAY,MAAM,QAAQ,OAAO,OAAO,QAAQ;AAEnE,aAAQ,MAAM,MAAO,QAAQ,IAAI;AAAA,IAClC;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,6BAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,YAAA,gBAAAA,SAAU;AACjD,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAW,IAAI,MAAM,KAAK;AAChC,eAAO;AAAA,MACR;AACA,UACC,GAAG,OAAOA,QAAO,MAChB,UAAU,UAAa,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK;AAE1D,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAW,IAAI,MAAM,IAAI;AAE/B,yBAAqB,OAAO,MAAM,KAAK;AACvC,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AACnC,gBAAY,KAAK;AAEjB,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAW,IAAI,MAAM,KAAK;AAChC,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,YAAM,UAAW,OAAO,IAAI;AAAA,IAC7B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,CAAC,QAAQ,GAAG;AAAA,MACZ,CAAC,YAAY,GAAG,MAAM,2BAA4B,SAAS;AAAA,MAC3D,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,MAC7B,CAAC,KAAK,GAAG,MAAM,IAAI;AAAA,IACpB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AAGrD,SAAS,OAAO,aAAa;AAC5B,MAAI,KAAK,YAAY,GAA+B;AAEpD,aAAW,GAAG,IAAI,WAAW;AAC5B,UAAM,OAAO;AACb,SAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;AACnB,WAAO,GAAG,MAAM,MAAM,IAAI;AAAA,EAC3B;AACD;AACA,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AAlS9E;AAmSC,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,SAAS,OACR,KAAK,KAAK;AAAA;AAAA;AAAA,KAGV,UAAK,QAAL,mBAAU,KAAK,MAAM;AAAA,MACtB;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,OAAO;AAGjB,UAAM,YAAY,oBAAI,IAAI;AAC1B,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;ACjSO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAiC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,WAAW,IAAI,KAAK,CAAC,WAAW,MAAM,GAAG;AAC5C,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,CAAC,WAAW,MAAM;AAAG,YAAI,CAAC;AAC9B,UAAI,kBAAkB,UAAa,CAAC,WAAW,aAAa;AAAG,YAAI,CAAC;AAEpE,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;AACvC,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,aAAa,EAAE,4BAA4B,MAAM,QAAQ;AAAA,YAClE,UAAU;AAAA,YACV,iBAAiB;AAAA,UAClB,CAAe;AACf,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,WAAW,IAAI,GAAG;AACrB,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA7FC,QAAI,UAAU,iCAAQ,UAAU;AAAG,WAAK,cAAc,OAAQ,UAAU;AACxE,QAAI,UAAU,iCAAQ,oBAAoB;AACzC,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,UAAU,iCAAQ,kBAAkB;AACvC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EA0FA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,aAAa,EAAE;AAClD,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,WACA,OACA,QACA,KACyB;AA9O1B;AAkPC,QAAM,CAAC,OAAO,KAAK,IAAI,MAAM,KAAK,IAC/B,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,MAAM,KAAK,IACX,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,SAAQ,sCAAQ,WAAR,YAAkB,gBAAgB;AAChD,QAAM,QAAQ,KAAK,KAAK;AAIxB,QAAM,cAAa,sCAAQ,eAAR,YAAsB,CAAC;AAC1C,QAAM,OAAO;AAEb,MAAI,UAAU,QAAQ,QAAW;AAChC,sCAAkC,QAAQ,OAAO,GAAG;AAAA,EACrD,OAAO;AAEN,UAAM,WAAW,KAAK,SAAS,iBAAiBC,YAAW;AApQ7D,UAAAC;AAqQG,OAAAA,MAAAD,WAAU,kBAAV,gBAAAC,IAAyB,eAAe;AAExC,YAAM,EAAC,aAAY,IAAID;AAEvB,UAAI,MAAM,aAAa,cAAc;AACpC,qBAAa,iBAAiB,OAAO,CAAC,GAAGA,UAAS;AAAA,MACnD;AAAA,IACD,CAAC;AAAA,EACF;AAEA,SAAO;AACR;;;AClQO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACXO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,WAAS,QAAQ,OAAmB,OAAkB,CAAC,GAAqB;AAjD7E;AAmDE,QAAI,MAAM,SAAS,QAAW;AAG7B,YAAM,cAAa,WAAM,QAAS,UAAf,YAAwB,MAAM,QAAS;AAC1D,YAAM,aAAa,cAAc,IAAI,YAAY,MAAM,IAAK,CAAC;AAC7D,YAAM,aAAa,IAAI,YAAY,MAAM,IAAK;AAE9C,UAAI,eAAe,QAAW;AAC7B,eAAO;AAAA,MACR;AAIA,UACC,eAAe,MAAM,UACrB,eAAe,MAAM,SACrB,eAAe,MAAM,OACpB;AACD,eAAO;AAAA,MACR;AACA,UAAI,cAAc,QAAQ,WAAW,UAAU,MAAM,OAAO;AAC3D,eAAO;AAAA,MACR;AAGA,YAAME,SAAQ,MAAM,QAAS;AAC7B,UAAI;AAEJ,UAAIA,QAAO;AAEV,cAAM,YAAY,MAAM;AACxB,cAAM,MAAM,KAAK,UAAU,QAAQ,KAAK,CAAC,EAAE,QAAQ,MAAM,IAAI;AAAA,MAC9D,OAAO;AACN,cAAM,MAAM;AAAA,MACb;AAGA,UAAI,EAAGA,UAAS,WAAW,OAAO,OAAQ,IAAI,YAAY,GAAG,IAAI;AAChE,eAAO;AAAA,MACR;AAGA,WAAK,KAAK,GAAG;AAAA,IACd;AAGA,QAAI,MAAM,SAAS;AAClB,aAAO,QAAQ,MAAM,SAAS,IAAI;AAAA,IACnC;AAGA,SAAK,QAAQ;AAEb,QAAI;AAEH,kBAAY,MAAM,OAAO,IAAI;AAAA,IAC9B,SAAS,GAAP;AACD,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,EACR;AAGA,WAAS,YAAY,MAAW,MAAsB;AACrD,QAAIC,WAAU;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,YAAM,MAAM,KAAK,CAAC;AAClB,MAAAA,WAAU,IAAIA,UAAS,GAAG;AAC1B,UAAI,CAAC,YAAYA,QAAO,KAAKA,aAAY,MAAM;AAC9C,cAAM,IAAI,MAAM,2BAA2B,KAAK,KAAK,GAAG,IAAI;AAAA,MAC7D;AAAA,IACD;AACA,WAAOA;AAAA,EACR;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,OACO;AACP,QAAI,MAAM,OAAO,qBAAqB,IAAI,KAAK,GAAG;AACjD;AAAA,IACD;AAEA,UAAM,OAAO,qBAAqB,IAAI,KAAK;AAE3C,UAAM,EAAC,UAAU,gBAAe,IAAI;AAEpC,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAEA,UAAM,gBAAgB,MAAM,0BAA0B;AAGtD,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,YAAM,aAAa,MAAM,CAAC;AAC1B,YAAM,WAAW,MAAM,CAAC;AAExB,YAAM,aAAa,kBAAiB,uCAAW,IAAI,EAAE,SAAS;AAC9D,UAAI,cAAc,eAAe,UAAU;AAC1C,cAAM,aAAa,yCAAa;AAChC,YAAI,cAAc,WAAW,WAAW;AAEvC;AAAA,QACD;AACA,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,UAAU;AAAA,QAC1C,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,QAAQ;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,OAAO,MAAK,IAAI;AAC9B,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,KAAK,KAAK;AACvC,YAAM,QAAQ,IAAI,OAAQ,KAAK,KAAK;AACpC,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ;AAAA,QACP,OAAO,SACJ,EAAC,IAAI,KAAI,IACT,EAAC,IAAI,MAAM,OAAO,wBAAwB,KAAK,EAAC;AAAA,MACpD;AACA,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,OACO;AACP,UAAM,EAAC,UAAU,gBAAe,IAAI;AACpC,aAAU,KAAK;AAAA,MACd,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,oBAAiB,KAAK;AAAA,MACrB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,WAAW,IAAI,KAAK,MAAM;AAAW,cAAI,cAAc,CAAC;AAC5D,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,CAAC,YAAY,IAAI;AAAG,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAC5D;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AACpD,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACxZO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,6BAAqB,OAAO,KAAK,KAAK;AAAA,MACvC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,GAAG;AACzD,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAxIC,aAwIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UACR,QACA,QACgB;AAEhB,UAAM,MAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAAC,KAAY,IAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AACtB,6BAAqB,OAAO,OAAO,KAAK;AAAA,MACzC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA9FC,aA8FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UACR,QACA,QACgB;AAEhB,UAAMC,OAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAACA,MAAYA,KAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,KAAK;AAC3D,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,WAAS,eAAe,QAAoB;AAG3C,QAAI,OAAO,yBAA0B,OAAO,OAAO;AAClD,YAAM,OAAO,IAAI,IAAI,OAAO,KAAK;AACjC,aAAO,MAAM,MAAM;AACnB,WAAK,QAAQ,WAAS;AACrB,eAAO,MAAO,IAAI,SAAS,KAAK,CAAC;AAAA,MAClC,CAAC;AAAA,IACF;AAAA,EACD;AAEA,aAAW,cAAc,EAAC,WAAW,WAAW,eAAc,CAAC;AAChE;;;ACzOO,SAAS,qBAAqB;AACpC,QAAM,mBAAmB,oBAAI,IAAyB,CAAC,SAAS,SAAS,CAAC;AAE1E,QAAM,gBAAgB,oBAAI,IAAyB,CAAC,QAAQ,KAAK,CAAC;AAElE,QAAM,2BAA2B,oBAAI,IAAyB;AAAA,IAC7D,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,oBAAI,IAAyB,CAAC,WAAW,MAAM,CAAC;AAG3E,QAAM,mBAAmB,oBAAI,IAAyB;AAAA,IACrD,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACD,CAAC;AAED,QAAM,eAAe,oBAAI,IAA4B,CAAC,QAAQ,UAAU,CAAC;AAEzE,QAAM,uBAAuB,oBAAI,IAA4B;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAGD,WAAS,sBACR,QACgC;AAChC,WAAO,iBAAiB,IAAI,MAAa;AAAA,EAC1C;AAEA,WAAS,yBACR,QACmC;AACnC,WAAO,qBAAqB,IAAI,MAAa;AAAA,EAC9C;AAEA,WAAS,uBACR,QACiC;AACjC,WAAO,sBAAsB,MAAM,KAAK,yBAAyB,MAAM;AAAA,EACxE;AAEA,WAAS,eACR,OACA,QACC;AACD,UAAM,kBAAkB;AAAA,EACzB;AAEA,WAAS,cAAc,OAAwB;AAC9C,UAAM,kBAAkB;AAAA,EACzB;AAGA,WAAS,mBACR,OACA,WACA,aAAa,MACT;AACJ,gBAAY,KAAK;AACjB,UAAM,SAAS,UAAU;AACzB,gBAAY,KAAK;AACjB,QAAI;AAAY,YAAM,UAAW,IAAI,UAAU,IAAI;AACnD,WAAO;AAAA,EACR;AAEA,WAAS,yBAAyB,OAAwB;AACzD,UAAM,wBAAwB;AAAA,EAC/B;AAEA,WAAS,oBAAoB,OAAe,QAAwB;AACnE,QAAI,QAAQ,GAAG;AACd,aAAO,KAAK,IAAI,SAAS,OAAO,CAAC;AAAA,IAClC;AACA,WAAO,KAAK,IAAI,OAAO,MAAM;AAAA,EAC9B;AAWA,WAAS,sBACR,OACA,QACA,MACC;AACD,WAAO,mBAAmB,OAAO,MAAM;AACtC,YAAM,SAAU,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AAGpD,UAAI,iBAAiB,IAAI,MAA6B,GAAG;AACxD,iCAAyB,KAAK;AAAA,MAC/B;AAGA,aAAO,yBAAyB,IAAI,MAA6B,IAC9D,SACA,MAAM;AAAA,IACV,CAAC;AAAA,EACF;AAWA,WAAS,0BACR,OACA,QACA,MACC;AACD,WAAO;AAAA,MACN;AAAA,MACA,MAAM;AACL;AAAC,QAAC,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AACtC,iCAAyB,KAAK;AAC9B,eAAO,MAAM;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAkBA,WAAS,wBACR,OACA,gBACC;AACD,WAAO,SAAS,qBAAqB,MAAa;AAGjD,YAAM,SAAS;AACf,qBAAe,OAAO,MAAM;AAE5B,UAAI;AAEH,YAAI,sBAAsB,MAAM,GAAG;AAElC,cAAI,yBAAyB,IAAI,MAAM,GAAG;AACzC,mBAAO,sBAAsB,OAAO,QAAQ,IAAI;AAAA,UACjD;AACA,cAAI,mBAAmB,IAAI,MAAM,GAAG;AACnC,mBAAO,0BAA0B,OAAO,QAAQ,IAAI;AAAA,UACrD;AAEA,cAAI,WAAW,UAAU;AACxB,kBAAM,MAAM;AAAA,cAAmB;AAAA,cAAO,MACrC,MAAM,MAAO,OAAO,GAAI,IAAmC;AAAA,YAC5D;AACA,qCAAyB,KAAK;AAC9B,mBAAO;AAAA,UACR;AAAA,QACD,OAAO;AAEN,iBAAO,2BAA2B,OAAO,QAAQ,IAAI;AAAA,QACtD;AAAA,MACD,UAAE;AAED,sBAAc,KAAK;AAAA,MACpB;AAAA,IACD;AAAA,EACD;AA4BA,WAAS,2BACR,OACA,QACA,MACC;AA1UH;AA2UE,UAAM,SAAS,OAAO,KAAK;AAG3B,QAAI,WAAW,UAAU;AACxB,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AAEpC,iBAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,QAC5B;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAEA,QAAI,aAAa,IAAI,MAAM,GAAG;AAC7B,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,YAAY,WAAW;AAC7B,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,YAAY,IAAI,OAAO,SAAS;AAE9C,eAAS,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,QAAQ,KAAK,MAAM;AAC3D,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AACpC,iBAAO,MAAM,OAAO,CAAC;AAAA,QACtB;AAAA,MACD;AACA,aAAO;AAAA,IACR;AAEA,QAAI,WAAW,SAAS;AACvB,YAAM,YAAW,UAAK,CAAC,MAAN,YAAW;AAC5B,YAAM,UAAS,UAAK,CAAC,MAAN,YAAW,OAAO;AAGjC,YAAM,QAAQ,oBAAoB,UAAU,OAAO,MAAM;AACzD,YAAM,MAAM,oBAAoB,QAAQ,OAAO,MAAM;AAErD,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AACjC,eAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,MAC5B;AAEA,aAAO;AAAA,IACR;AAOA,WAAO,OAAO,MAAsC,EAAE,GAAG,IAAI;AAAA,EAC9D;AAEA,aAAW,oBAAoB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;AChXA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,IAAI,YAAY,CAAI,UAAuB;AAO3C,IAAI,gBAAgB,CAAI,UAA2B;","names":["immer","current","Immer","base","rootScope","_a","isSet","current","set","Immer"]}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1644 +1,0 @@
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = isFunction(e) ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var O = Object;
-var getPrototypeOf = O.getPrototypeOf;
-var CONSTRUCTOR = "constructor";
-var PROTOTYPE = "prototype";
-var CONFIGURABLE = "configurable";
-var ENUMERABLE = "enumerable";
-var WRITABLE = "writable";
-var VALUE = "value";
-var isDraft = (value) => !!value && !!value[DRAFT_STATE];
-function isDraftable(value) {
-  if (!value)
-    return false;
-  return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);
-}
-var objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || !isObjectish(value))
-    return false;
-  const proto = getPrototypeOf(value);
-  if (proto === null || proto === O[PROTOTYPE])
-    return true;
-  const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];
-  if (Ctor === Object)
-    return true;
-  if (!isFunction(Ctor))
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-var has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);
-var get = (thing, prop, type = getArchtype(thing)) => (
-  // @ts-ignore
-  type === 2 /* Map */ ? thing.get(prop) : thing[prop]
-);
-var set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {
-  if (type === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (type === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-};
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-var isArray = Array.isArray;
-var isMap = (target) => target instanceof Map;
-var isSet = (target) => target instanceof Set;
-var isObjectish = (target) => typeof target === "object";
-var isFunction = (target) => typeof target === "function";
-var isBoolean = (target) => typeof target === "boolean";
-function isArrayIndex(value) {
-  const n = +value;
-  return Number.isInteger(n) && String(n) === value;
-}
-var getProxyDraft = (value) => {
-  if (!isObjectish(value))
-    return null;
-  return value?.[DRAFT_STATE];
-};
-var latest = (state) => state.copy_ || state.base_;
-var getValue = (value) => {
-  const proxyDraft = getProxyDraft(value);
-  return proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value;
-};
-var getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (isArray(base))
-    return Array[PROTOTYPE].slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = O.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc[WRITABLE] === false) {
-        desc[WRITABLE] = true;
-        desc[CONFIGURABLE] = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          [CONFIGURABLE]: true,
-          [WRITABLE]: true,
-          // could live with !!desc.set as well here...
-          [ENUMERABLE]: desc[ENUMERABLE],
-          [VALUE]: base[key]
-        };
-    }
-    return O.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return { ...base };
-    }
-    const obj = O.create(proto);
-    return O.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    O.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  O.freeze(obj);
-  if (deep)
-    each(
-      obj,
-      (_key, value) => {
-        freeze(value, true);
-      },
-      false
-    );
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  [VALUE]: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || !isObjectish(obj))
-    return true;
-  return O.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var PluginMapSet = "MapSet";
-var PluginPatches = "Patches";
-var PluginArrayMethods = "ArrayMethods";
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-var isPluginLoaded = (pluginKey) => !!plugins[pluginKey];
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-var getCurrentScope = () => currentScope;
-var createScope = (parent_, immer_) => ({
-  drafts_: [],
-  parent_,
-  immer_,
-  // Whenever the modified draft contains a draft from another scope, we
-  // need to prevent auto-freezing so the unowned draft can be finalized.
-  canAutoFreeze_: true,
-  unfinalizedDrafts_: 0,
-  handledSet_: /* @__PURE__ */ new Set(),
-  processedForPatches_: /* @__PURE__ */ new Set(),
-  mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,
-  arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0
-});
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    scope.patchPlugin_ = getPlugin(PluginPatches);
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-var enterScope = (immer2) => currentScope = createScope(currentScope, immer2);
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-    }
-    const { patchPlugin_ } = scope;
-    if (patchPlugin_) {
-      patchPlugin_.generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft);
-  }
-  maybeFreeze(scope, result, true);
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value) {
-  if (isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    const finalValue = handleValue(value, rootScope.handledSet_, rootScope);
-    return finalValue;
-  }
-  if (!isSameScope(state, rootScope)) {
-    return value;
-  }
-  if (!state.modified_) {
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    const { callbacks_ } = state;
-    if (callbacks_) {
-      while (callbacks_.length > 0) {
-        const callback = callbacks_.pop();
-        callback(rootScope);
-      }
-    }
-    generatePatchesAndFinalize(state, rootScope);
-  }
-  return state.copy_;
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-function markStateFinalized(state) {
-  state.finalized_ = true;
-  state.scope_.unfinalizedDrafts_--;
-}
-var isSameScope = (state, rootScope) => state.scope_ === rootScope;
-var EMPTY_LOCATIONS_RESULT = [];
-function updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {
-  const parentCopy = latest(parent);
-  const parentType = parent.type_;
-  if (originalKey !== void 0) {
-    const currentValue = get(parentCopy, originalKey, parentType);
-    if (currentValue === draftValue) {
-      set(parentCopy, originalKey, finalizedValue, parentType);
-      return;
-    }
-  }
-  if (!parent.draftLocations_) {
-    const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();
-    each(parentCopy, (key, value) => {
-      if (isDraft(value)) {
-        const keys = draftLocations.get(value) || [];
-        keys.push(key);
-        draftLocations.set(value, keys);
-      }
-    });
-  }
-  const locations = parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT;
-  for (const location of locations) {
-    set(parentCopy, location, finalizedValue, parentType);
-  }
-}
-function registerChildFinalizationCallback(parent, child, key) {
-  parent.callbacks_.push(function childCleanup(rootScope) {
-    const state = child;
-    if (!state || !isSameScope(state, rootScope)) {
-      return;
-    }
-    rootScope.mapSetPlugin_?.fixSetContents(state);
-    const finalizedValue = getFinalValue(state);
-    updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key);
-    generatePatchesAndFinalize(state, rootScope);
-  });
-}
-function generatePatchesAndFinalize(state, rootScope) {
-  const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || (state.assigned_?.size ?? 0) > 0);
-  if (shouldFinalize) {
-    const { patchPlugin_ } = rootScope;
-    if (patchPlugin_) {
-      const basePath = patchPlugin_.getPath(state);
-      if (basePath) {
-        patchPlugin_.generatePatches_(state, basePath, rootScope);
-      }
-    }
-    markStateFinalized(state);
-  }
-}
-function handleCrossReference(target, key, value) {
-  const { scope_ } = target;
-  if (isDraft(value)) {
-    const state = value[DRAFT_STATE];
-    if (isSameScope(state, scope_)) {
-      state.callbacks_.push(function crossReferenceCleanup() {
-        prepareCopy(target);
-        const finalizedValue = getFinalValue(state);
-        updateDraftInParent(target, value, finalizedValue, key);
-      });
-    }
-  } else if (isDraftable(value)) {
-    target.callbacks_.push(function nestedDraftCleanup() {
-      const targetCopy = latest(target);
-      if (target.type_ === 3 /* Set */) {
-        if (targetCopy.has(value)) {
-          handleValue(value, scope_.handledSet_, scope_);
-        }
-      } else {
-        if (get(targetCopy, key, target.type_) === value) {
-          if (scope_.drafts_.length > 1 && (target.assigned_.get(key) ?? false) === true && target.copy_) {
-            handleValue(
-              get(target.copy_, key, target.type_),
-              scope_.handledSet_,
-              scope_
-            );
-          }
-        }
-      }
-    });
-  }
-}
-function handleValue(target, handledSet, rootScope) {
-  if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-    return target;
-  }
-  if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {
-    return target;
-  }
-  handledSet.add(target);
-  each(target, (key, value) => {
-    if (isDraft(value)) {
-      const state = value[DRAFT_STATE];
-      if (isSameScope(state, rootScope)) {
-        const updatedValue = getFinalValue(state);
-        set(target, key, updatedValue, target.type_);
-        markStateFinalized(state);
-      }
-    } else if (isDraftable(value)) {
-      handleValue(value, handledSet, rootScope);
-    }
-  });
-  return target;
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const baseIsArray = isArray(base);
-  const state = {
-    type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    // actually instantiated in `prepareCopy()`
-    assigned_: void 0,
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false,
-    // `callbacks` actually gets assigned in `createProxy`
-    callbacks_: void 0
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (baseIsArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return [proxy, state];
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    let arrayPlugin = state.scope_.arrayMethodsPlugin_;
-    const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === "string";
-    if (isArrayWithStringProp) {
-      if (arrayPlugin?.isArrayOperationMethod(prop)) {
-        return arrayPlugin.createMethodInterceptor(state, prop);
-      }
-    }
-    const source = latest(state);
-    if (!has(source, prop, state.type_)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (isArrayWithStringProp && state.operationMethod && arrayPlugin?.isMutatingArrayMethod(
-      state.operationMethod
-    ) && isArrayIndex(prop)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      const childKey = state.type_ === 1 /* Array */ ? +prop : prop;
-      const childDraft = createProxy(state.scope_, value, state, childKey);
-      return state.copy_[childKey] = childDraft;
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc?.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2?.[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_.set(prop, false);
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_.set(prop, true);
-    handleCrossReference(state, prop, value);
-    return true;
-  },
-  deleteProperty(state, prop) {
-    prepareCopy(state);
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_.set(prop, false);
-      markChanged(state);
-    } else {
-      state.assigned_.delete(prop);
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      [WRITABLE]: true,
-      [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== "length",
-      [ENUMERABLE]: desc[ENUMERABLE],
-      [VALUE]: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-for (let key in objectTraps) {
-  let fn = objectTraps[key];
-  arrayTraps[key] = function() {
-    const args = arguments;
-    args[0] = args[0][0];
-    return fn.apply(this, args);
-  };
-}
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? VALUE in desc ? desc[VALUE] : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    desc.get?.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.assigned_ = /* @__PURE__ */ new Map();
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = false;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (isFunction(base) && !isFunction(recipe)) {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (!isFunction(recipe))
-        die(6);
-      if (patchListener !== void 0 && !isFunction(patchListener))
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(scope, base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || !isObjectish(base)) {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin(PluginPatches).generateReplacementPatches_(base, result, {
-            patches_: p,
-            inversePatches_: ip
-          });
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (isFunction(base)) {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (isBoolean(config?.autoFreeze))
-      this.setAutoFreeze(config.autoFreeze);
-    if (isBoolean(config?.useStrictShallowCopy))
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (isBoolean(config?.useStrictIteration))
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(scope, base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(rootScope, value, parent, key) {
-  const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = parent?.scope_ ?? getCurrentScope();
-  scope.drafts_.push(draft);
-  state.callbacks_ = parent?.callbacks_ ?? [];
-  state.key_ = key;
-  if (parent && key !== void 0) {
-    registerChildFinalizationCallback(parent, state, key);
-  } else {
-    state.callbacks_.push(function rootDraftCleanup(rootScope2) {
-      rootScope2.mapSetPlugin_?.fixSetContents(state);
-      const { patchPlugin_ } = rootScope2;
-      if (state.modified_ && patchPlugin_) {
-        patchPlugin_.generatePatches_(state, [], rootScope2);
-      }
-    });
-  }
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  function getPath(state, path = []) {
-    if (state.key_ !== void 0) {
-      const parentCopy = state.parent_.copy_ ?? state.parent_.base_;
-      const proxyDraft = getProxyDraft(get(parentCopy, state.key_));
-      const valueAtKey = get(parentCopy, state.key_);
-      if (valueAtKey === void 0) {
-        return null;
-      }
-      if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {
-        return null;
-      }
-      if (proxyDraft != null && proxyDraft.base_ !== state.base_) {
-        return null;
-      }
-      const isSet2 = state.parent_.type_ === 3 /* Set */;
-      let key;
-      if (isSet2) {
-        const setParent = state.parent_;
-        key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);
-      } else {
-        key = state.key_;
-      }
-      if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {
-        return null;
-      }
-      path.push(key);
-    }
-    if (state.parent_) {
-      return getPath(state.parent_, path);
-    }
-    path.reverse();
-    try {
-      resolvePath(state.copy_, path);
-    } catch (e) {
-      return null;
-    }
-    return path;
-  }
-  function resolvePath(base, path) {
-    let current2 = base;
-    for (let i = 0; i < path.length - 1; i++) {
-      const key = path[i];
-      current2 = get(current2, key);
-      if (!isObjectish(current2) || current2 === null) {
-        throw new Error(`Cannot resolve path at '${path.join("/")}'`);
-      }
-    }
-    return current2;
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, scope) {
-    if (state.scope_.processedForPatches_.has(state)) {
-      return;
-    }
-    state.scope_.processedForPatches_.add(state);
-    const { patches_, inversePatches_ } = scope;
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches_,
-          inversePatches_
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    const allReassigned = state.allIndicesReassigned_ === true;
-    for (let i = 0; i < base_.length; i++) {
-      const copiedItem = copy_[i];
-      const baseItem = base_[i];
-      const isAssigned = allReassigned || assigned_?.get(i.toString());
-      if (isAssigned && copiedItem !== baseItem) {
-        const childState = copiedItem?.[DRAFT_STATE];
-        if (childState && childState.modified_) {
-          continue;
-        }
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copiedItem)
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(baseItem)
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_, type_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key, type_);
-      const value = get(copy_, key, type_);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(
-        op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }
-      );
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, scope) {
-    const { patches_, inversePatches_ } = scope;
-    patches_.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches_.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === CONSTRUCTOR))
-          die(errorOffset + 3);
-        if (isFunction(base) && p === PROTOTYPE)
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (!isObjectish(base))
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin(PluginPatches, {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_,
-    getPath
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-        handleCrossReference(state, key, value);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(state.scope_, value, state, key);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    const map = new DraftMap(target, parent);
-    return [map, map[DRAFT_STATE]];
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false,
-        assigned_: void 0,
-        callbacks_: []
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-        handleCrossReference(state, value, value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    const set2 = new DraftSet(target, parent);
-    return [set2, set2[DRAFT_STATE]];
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(state.scope_, value, state, value);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  function fixSetContents(target) {
-    if (target.type_ === 3 /* Set */ && target.copy_) {
-      const copy = new Set(target.copy_);
-      target.copy_.clear();
-      copy.forEach((value) => {
-        target.copy_.add(getValue(value));
-      });
-    }
-  }
-  loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });
-}
-
-// src/plugins/arrayMethods.ts
-function enableArrayMethods() {
-  const SHIFTING_METHODS = /* @__PURE__ */ new Set(["shift", "unshift"]);
-  const QUEUE_METHODS = /* @__PURE__ */ new Set(["push", "pop"]);
-  const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([
-    ...QUEUE_METHODS,
-    ...SHIFTING_METHODS
-  ]);
-  const REORDERING_METHODS = /* @__PURE__ */ new Set(["reverse", "sort"]);
-  const MUTATING_METHODS = /* @__PURE__ */ new Set([
-    ...RESULT_RETURNING_METHODS,
-    ...REORDERING_METHODS,
-    "splice"
-  ]);
-  const FIND_METHODS = /* @__PURE__ */ new Set(["find", "findLast"]);
-  const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([
-    "filter",
-    "slice",
-    "concat",
-    "flat",
-    ...FIND_METHODS,
-    "findIndex",
-    "findLastIndex",
-    "some",
-    "every",
-    "indexOf",
-    "lastIndexOf",
-    "includes",
-    "join",
-    "toString",
-    "toLocaleString"
-  ]);
-  function isMutatingArrayMethod(method) {
-    return MUTATING_METHODS.has(method);
-  }
-  function isNonMutatingArrayMethod(method) {
-    return NON_MUTATING_METHODS.has(method);
-  }
-  function isArrayOperationMethod(method) {
-    return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);
-  }
-  function enterOperation(state, method) {
-    state.operationMethod = method;
-  }
-  function exitOperation(state) {
-    state.operationMethod = void 0;
-  }
-  function executeArrayMethod(state, operation, markLength = true) {
-    prepareCopy(state);
-    const result = operation();
-    markChanged(state);
-    if (markLength)
-      state.assigned_.set("length", true);
-    return result;
-  }
-  function markAllIndicesReassigned(state) {
-    state.allIndicesReassigned_ = true;
-  }
-  function normalizeSliceIndex(index, length) {
-    if (index < 0) {
-      return Math.max(length + index, 0);
-    }
-    return Math.min(index, length);
-  }
-  function handleSimpleOperation(state, method, args) {
-    return executeArrayMethod(state, () => {
-      const result = state.copy_[method](...args);
-      if (SHIFTING_METHODS.has(method)) {
-        markAllIndicesReassigned(state);
-      }
-      return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;
-    });
-  }
-  function handleReorderingOperation(state, method, args) {
-    return executeArrayMethod(
-      state,
-      () => {
-        ;
-        state.copy_[method](...args);
-        markAllIndicesReassigned(state);
-        return state.draft_;
-      },
-      false
-    );
-  }
-  function createMethodInterceptor(state, originalMethod) {
-    return function interceptedMethod(...args) {
-      const method = originalMethod;
-      enterOperation(state, method);
-      try {
-        if (isMutatingArrayMethod(method)) {
-          if (RESULT_RETURNING_METHODS.has(method)) {
-            return handleSimpleOperation(state, method, args);
-          }
-          if (REORDERING_METHODS.has(method)) {
-            return handleReorderingOperation(state, method, args);
-          }
-          if (method === "splice") {
-            const res = executeArrayMethod(
-              state,
-              () => state.copy_.splice(...args)
-            );
-            markAllIndicesReassigned(state);
-            return res;
-          }
-        } else {
-          return handleNonMutatingOperation(state, method, args);
-        }
-      } finally {
-        exitOperation(state);
-      }
-    };
-  }
-  function handleNonMutatingOperation(state, method, args) {
-    const source = latest(state);
-    if (method === "filter") {
-      const predicate = args[0];
-      const result = [];
-      for (let i = 0; i < source.length; i++) {
-        if (predicate(source[i], i, source)) {
-          result.push(state.draft_[i]);
-        }
-      }
-      return result;
-    }
-    if (FIND_METHODS.has(method)) {
-      const predicate = args[0];
-      const isForward = method === "find";
-      const step = isForward ? 1 : -1;
-      const start = isForward ? 0 : source.length - 1;
-      for (let i = start; i >= 0 && i < source.length; i += step) {
-        if (predicate(source[i], i, source)) {
-          return state.draft_[i];
-        }
-      }
-      return void 0;
-    }
-    if (method === "slice") {
-      const rawStart = args[0] ?? 0;
-      const rawEnd = args[1] ?? source.length;
-      const start = normalizeSliceIndex(rawStart, source.length);
-      const end = normalizeSliceIndex(rawEnd, source.length);
-      const result = [];
-      for (let i = start; i < end; i++) {
-        result.push(state.draft_[i]);
-      }
-      return result;
-    }
-    return source[method](...args);
-  }
-  loadPlugin(PluginArrayMethods, {
-    createMethodInterceptor,
-    isArrayOperationMethod,
-    isMutatingArrayMethod
-  });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-var castDraft = (value) => value;
-var castImmutable = (value) => value;
-export {
-  Immer2 as Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableArrayMethods,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  DRAFTABLE as immerable,
-  isDraft,
-  isDraftable,
-  NOTHING as nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-};
-//# sourceMappingURL=immer.mjs.map
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/plugins/arrayMethods.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","import {isFunction} from \"../internal\"\n\nexport const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = isFunction(e) ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tisArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value[CONSTRUCTOR]?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (isArray(base)) return Array[PROTOTYPE].slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = O.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc[WRITABLE] === false) {\n\t\t\t\tdesc[WRITABLE] = true\n\t\t\t\tdesc[CONFIGURABLE] = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = O.create(proto)\n\t\treturn O.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tO.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tO.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin,\n\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft)\n\t}\n\n\tmaybeFreeze(scope, result, true)\n\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n","import {\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): [Drafted<T, ProxyState>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false,\n\t\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (baseIsArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn [proxy as any, state]\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(prop)\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\n\t}\n}\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? VALUE in desc\n\t\t\t? desc[VALUE]\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent,\n\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (isFunction(base) && !isFunction(recipe)) {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(scope, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || !isObjectish(base)) {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (isFunction(base)) {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(scope, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(PluginPatches).applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n","import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n *   // Optimized - no proxy creation per element\n *   draft.items.sort((a, b) => a.value - b.value)\n *\n *   // filter returns drafts - mutations propagate\n *   const filtered = draft.items.filter(x => x.value > 5)\n *   filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t *    to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t *   Since the result structure differs from the original, tracking mutations\n\t *   back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t//   This is intentional - concat/flat create new data structures rather than\n\t\t//   selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport let castDraft = <T>(value: T): Draft<T> => value as any\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\n"],"mappings":";AAKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACf3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,MAAM,IAAW,IAAI;AACzD,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACnCA,IAAM,IAAI;AAEH,IAAM,iBAAiB,EAAE;AAEzB,IAAM,cAAc;AACpB,IAAM,YAAY;AAElB,IAAM,eAAe;AACrB,IAAM,aAAa;AACnB,IAAM,WAAW;AACjB,IAAM,QAAQ;AAId,IAAI,UAAU,CAAC,UAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AAIrE,SAAS,YAAY,OAAqB;AAChD,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,QAAQ,KAAK,KACb,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,CAAC,MAAM,WAAW,IAAI,SAAS,KAChC,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;AAC5D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,CAAC,YAAY,KAAK;AAAG,WAAO;AAC1C,QAAM,QAAQ,eAAe,KAAK;AAClC,MAAI,UAAU,QAAQ,UAAU,EAAE,SAAS;AAAG,WAAO;AAErD,QAAM,OAAO,EAAE,eAAe,KAAK,OAAO,WAAW,KAAK,MAAM,WAAW;AAC3E,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,CAAC,WAAW,IAAI;AAAG,WAAO;AAE9B,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG;AACvD,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,QAAQ,KAAK,oBAEb,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK,MAExB,uBACG,MAAM,IAAI,IAAI,IACd,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,IAAI;AAGzC,IAAI,MAAM,CAChB,OACA,MACA,OAAO,YAAY,KAAK;AAAA;AAAA,EAGxB,uBAAwB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAAA;AAG9C,IAAI,MAAM,CAChB,OACA,gBACA,OACA,OAAO,YAAY,KAAK,MACpB;AACJ,MAAI;AAAuB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WACjD,sBAAuB;AAC/B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAEO,IAAI,UAAU,MAAM;AAGpB,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAGjE,IAAI,QAAQ,CAAC,WAAkC,kBAAkB;AAEjE,IAAI,cAAc,CAAC,WAAgB,OAAO,WAAW;AAErD,IAAI,aAAa,CAAC,WACxB,OAAO,WAAW;AAEZ,IAAI,YAAY,CAAC,WACvB,OAAO,WAAW;AAEZ,SAAS,aAAa,OAAkD;AAC9E,QAAM,IAAI,CAAC;AACX,SAAO,OAAO,UAAU,CAAC,KAAK,OAAO,CAAC,MAAM;AAC7C;AAEO,IAAI,gBAAgB,CAAgB,UAAgC;AAC1E,MAAI,CAAC,YAAY,KAAK;AAAG,WAAO;AAChC,SAAQ,QAAiC,WAAW;AACrD;AAGO,IAAI,SAAS,CAAC,UAA2B,MAAM,SAAS,MAAM;AAE9D,IAAI,WAAW,CAAmB,UAAgB;AACxD,QAAM,aAAa,cAAc,KAAK;AACtC,SAAO,aAAa,WAAW,SAAS,WAAW,QAAQ;AAC5D;AAEO,IAAI,gBAAgB,CAAC,UAC3B,MAAM,YAAY,MAAM,QAAQ,MAAM;AAGhC,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,QAAQ,IAAI;AAAG,WAAO,MAAM,SAAS,EAAE,MAAM,KAAK,IAAI;AAE1D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,EAAE,0BAA0B,IAAI;AACpD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,QAAQ,MAAM,OAAO;AAC7B,aAAK,QAAQ,IAAI;AACjB,aAAK,YAAY,IAAI;AAAA,MACtB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,CAAC,YAAY,GAAG;AAAA,UAChB,CAAC,QAAQ,GAAG;AAAA;AAAA,UACZ,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,UAC7B,CAAC,KAAK,GAAG,KAAK,GAAG;AAAA,QAClB;AAAA,IACF;AACA,WAAO,EAAE,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EAClD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,EAAC,GAAG,KAAI;AAAA,IAChB;AACA,UAAM,MAAM,EAAE,OAAO,KAAK;AAC1B,WAAO,EAAE,OAAO,KAAK,IAAI;AAAA,EAC1B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,MAAE,iBAAiB,KAAK;AAAA,MACvB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,IAAE,OAAO,GAAG;AACZ,MAAI;AAGH;AAAA,MACC;AAAA,MACA,CAAC,MAAM,UAAU;AAChB,eAAO,OAAO,IAAI;AAAA,MACnB;AAAA,MACA;AAAA,IACD;AACD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,CAAC,KAAK,GAAG;AACV;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,CAAC,YAAY,GAAG;AAAG,WAAO;AAC9C,SAAO,EAAE,SAAS,GAAG;AACtB;;;AChRO,IAAM,eAAe;AACrB,IAAM,gBAAgB;AACtB,IAAM,qBAAqB;AA8BlC,IAAM,UAIF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,IAAI,iBAAiB,CAA0B,cACrD,CAAC,CAAC,QAAQ,SAAS;AAMb,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;ACxCA,IAAI;AAEG,IAAI,kBAAkB,MAAM;AAEnC,IAAI,cAAc,CACjB,SACA,YACiB;AAAA,EACjB,SAAS,CAAC;AAAA,EACV;AAAA,EACA;AAAA;AAAA;AAAA,EAGA,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,aAAa,oBAAI,IAAI;AAAA,EACrB,sBAAsB,oBAAI,IAAI;AAAA,EAC9B,eAAe,eAAe,YAAY,IACvC,UAAU,YAAY,IACtB;AAAA,EACH,qBAAqB,eAAe,kBAAkB,IACnD,UAAU,kBAAkB,IAC5B;AACJ;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,UAAM,eAAe,UAAU,aAAa;AAC5C,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,IAAI,aAAa,CAACA,WACvB,eAAe,YAAY,cAAcA,MAAK;AAEhD,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;ACpEO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AAEtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAAA,IAChC;AACA,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,mBAAa;AAAA,QACZ,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,SAAS;AAAA,EACnC;AAEA,cAAY,OAAO,QAAQ,IAAI;AAE/B,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY;AAEpD,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,CAAC,OAAO;AACX,UAAM,aAAa,YAAY,OAAO,UAAU,aAAa,SAAS;AACtE,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,YAAY,OAAO,SAAS,GAAG;AACnC,WAAO;AAAA,EACR;AAGA,MAAI,CAAC,MAAM,WAAW;AACrB,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AAEtB,UAAM,EAAC,WAAU,IAAI;AACrB,QAAI,YAAY;AACf,aAAO,WAAW,SAAS,GAAG;AAC7B,cAAM,WAAW,WAAW,IAAI;AAChC,iBAAS,SAAS;AAAA,MACnB;AAAA,IACD;AAEA,+BAA2B,OAAO,SAAS;AAAA,EAC5C;AAGA,SAAO,MAAM;AACd;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;AAEA,SAAS,mBAAmB,OAAmB;AAC9C,QAAM,aAAa;AACnB,QAAM,OAAO;AACd;AAEA,IAAI,cAAc,CAAC,OAAmB,cACrC,MAAM,WAAW;AAGlB,IAAM,yBAAuD,CAAC;AAIvD,SAAS,oBACf,QACA,YACA,gBACA,aACO;AACP,QAAM,aAAa,OAAO,MAAM;AAChC,QAAM,aAAa,OAAO;AAG1B,MAAI,gBAAgB,QAAW;AAC9B,UAAM,eAAe,IAAI,YAAY,aAAa,UAAU;AAC5D,QAAI,iBAAiB,YAAY;AAEhC,UAAI,YAAY,aAAa,gBAAgB,UAAU;AACvD;AAAA,IACD;AAAA,EACD;AAMA,MAAI,CAAC,OAAO,iBAAiB;AAC5B,UAAM,iBAAkB,OAAO,kBAAkB,oBAAI,IAAI;AAGzD,SAAK,YAAY,CAAC,KAAK,UAAU;AAChC,UAAI,QAAQ,KAAK,GAAG;AACnB,cAAM,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC;AAC3C,aAAK,KAAK,GAAG;AACb,uBAAe,IAAI,OAAO,IAAI;AAAA,MAC/B;AAAA,IACD,CAAC;AAAA,EACF;AAGA,QAAM,YACL,OAAO,gBAAgB,IAAI,UAAU,KAAK;AAG3C,aAAW,YAAY,WAAW;AACjC,QAAI,YAAY,UAAU,gBAAgB,UAAU;AAAA,EACrD;AACD;AAKO,SAAS,kCACf,QACA,OACA,KACC;AACD,SAAO,WAAW,KAAK,SAAS,aAAa,WAAW;AACvD,UAAM,QAAoB;AAG1B,QAAI,CAAC,SAAS,CAAC,YAAY,OAAO,SAAS,GAAG;AAC7C;AAAA,IACD;AAGA,cAAU,eAAe,eAAe,KAAK;AAE7C,UAAM,iBAAiB,cAAc,KAAK;AAG1C,wBAAoB,QAAQ,MAAM,UAAU,OAAO,gBAAgB,GAAG;AAEtE,+BAA2B,OAAO,SAAS;AAAA,EAC5C,CAAC;AACF;AAEA,SAAS,2BAA2B,OAAmB,WAAuB;AAC7E,QAAM,iBACL,MAAM,aACN,CAAC,MAAM,eACN,MAAM,yBACL,MAAM,2BACL,MAA0B,0BAC3B,MAAM,WAAW,QAAQ,KAAK;AAEjC,MAAI,gBAAgB;AACnB,UAAM,EAAC,aAAY,IAAI;AACvB,QAAI,cAAc;AACjB,YAAM,WAAW,aAAc,QAAQ,KAAK;AAE5C,UAAI,UAAU;AACb,qBAAc,iBAAiB,OAAO,UAAU,SAAS;AAAA,MAC1D;AAAA,IACD;AAEA,uBAAmB,KAAK;AAAA,EACzB;AACD;AAEO,SAAS,qBACf,QACA,KACA,OACC;AACD,QAAM,EAAC,OAAM,IAAI;AAEjB,MAAI,QAAQ,KAAK,GAAG;AACnB,UAAM,QAAoB,MAAM,WAAW;AAC3C,QAAI,YAAY,OAAO,MAAM,GAAG;AAG/B,YAAM,WAAW,KAAK,SAAS,wBAAwB;AAEtD,oBAAY,MAAM;AAElB,cAAM,iBAAiB,cAAc,KAAK;AAE1C,4BAAoB,QAAQ,OAAO,gBAAgB,GAAG;AAAA,MACvD,CAAC;AAAA,IACF;AAAA,EACD,WAAW,YAAY,KAAK,GAAG;AAE9B,WAAO,WAAW,KAAK,SAAS,qBAAqB;AACpD,YAAM,aAAa,OAAO,MAAM;AAGhC,UAAI,OAAO,uBAAwB;AAClC,YAAI,WAAW,IAAI,KAAK,GAAG;AAE1B,sBAAY,OAAO,OAAO,aAAa,MAAM;AAAA,QAC9C;AAAA,MACD,OAAO;AAEN,YAAI,IAAI,YAAY,KAAK,OAAO,KAAK,MAAM,OAAO;AACjD,cACC,OAAO,QAAQ,SAAS,MACtB,OAAyC,UAAW,IAAI,GAAG,KAC5D,WAAW,QACZ,OAAO,OACN;AAGD;AAAA,cACC,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,cACnC,OAAO;AAAA,cACP;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AACD;AAEO,SAAS,YACf,QACA,YACA,WACC;AACD,MAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE,WAAO;AAAA,EACR;AAGA,MACC,QAAQ,MAAM,KACd,WAAW,IAAI,MAAM,KACrB,CAAC,YAAY,MAAM,KACnB,SAAS,MAAM,GACd;AACD,WAAO;AAAA,EACR;AAEA,aAAW,IAAI,MAAM;AAGrB,OAAK,QAAQ,CAAC,KAAK,UAAU;AAC5B,QAAI,QAAQ,KAAK,GAAG;AACnB,YAAM,QAAoB,MAAM,WAAW;AAC3C,UAAI,YAAY,OAAO,SAAS,GAAG;AAGlC,cAAM,eAAe,cAAc,KAAK;AAExC,YAAI,QAAQ,KAAK,cAAc,OAAO,KAAK;AAE3C,2BAAmB,KAAK;AAAA,MACzB;AAAA,IACD,WAAW,YAAY,KAAK,GAAG;AAE9B,kBAAY,OAAO,YAAY,SAAS;AAAA,IACzC;AAAA,EACD,CAAC;AAED,SAAO;AACR;;;ACtQO,SAAS,iBACf,MACA,QACuC;AACvC,QAAM,cAAc,QAAQ,IAAI;AAChC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA;AAAA,IAGZ,WAAW;AAAA;AAAA,IAEX,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA,EACb;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,aAAa;AAChB,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO,CAAC,OAAc,KAAK;AAC5B;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,QAAI,cAAc,MAAM,OAAO;AAC/B,UAAM,wBACL,MAAM,2BAA4B,OAAO,SAAS;AAGnD,QAAI,uBAAuB;AAC1B,UAAI,aAAa,uBAAuB,IAAI,GAAG;AAC9C,eAAO,YAAY,wBAAwB,OAAO,IAAI;AAAA,MACvD;AAAA,IACD;AAEA,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,MAAM,MAAM,KAAK,GAAG;AAEpC,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAIA,QACC,yBACC,MAA0B,mBAC3B,aAAa;AAAA,MACX,MAA0B;AAAA,IAC5B,KACA,aAAa,IAAI,GAChB;AAED,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AAEjB,YAAM,WAAW,MAAM,0BAA2B,CAAE,OAAkB;AACtE,YAAM,aAAa,YAAY,MAAM,QAAQ,OAAO,OAAO,QAAQ;AAEnE,aAAQ,MAAM,MAAO,QAAQ,IAAI;AAAA,IAClC;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,MAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,WAAU,WAAW;AAC5D,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAW,IAAI,MAAM,KAAK;AAChC,eAAO;AAAA,MACR;AACA,UACC,GAAG,OAAOA,QAAO,MAChB,UAAU,UAAa,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK;AAE1D,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAW,IAAI,MAAM,IAAI;AAE/B,yBAAqB,OAAO,MAAM,KAAK;AACvC,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AACnC,gBAAY,KAAK;AAEjB,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAW,IAAI,MAAM,KAAK;AAChC,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,YAAM,UAAW,OAAO,IAAI;AAAA,IAC7B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,CAAC,QAAQ,GAAG;AAAA,MACZ,CAAC,YAAY,GAAG,MAAM,2BAA4B,SAAS;AAAA,MAC3D,CAAC,UAAU,GAAG,KAAK,UAAU;AAAA,MAC7B,CAAC,KAAK,GAAG,MAAM,IAAI;AAAA,IACpB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AAGrD,SAAS,OAAO,aAAa;AAC5B,MAAI,KAAK,YAAY,GAA+B;AAEpD,aAAW,GAAG,IAAI,WAAW;AAC5B,UAAM,OAAO;AACb,SAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;AACnB,WAAO,GAAG,MAAM,MAAM,IAAI;AAAA,EAC3B;AACD;AACA,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AAC7E,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,SAAS,OACR,KAAK,KAAK;AAAA;AAAA;AAAA,IAGV,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,MAC5B;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,OAAO;AAGjB,UAAM,YAAY,oBAAI,IAAI;AAC1B,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;ACjSO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAiC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,WAAW,IAAI,KAAK,CAAC,WAAW,MAAM,GAAG;AAC5C,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,CAAC,WAAW,MAAM;AAAG,YAAI,CAAC;AAC9B,UAAI,kBAAkB,UAAa,CAAC,WAAW,aAAa;AAAG,YAAI,CAAC;AAEpE,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;AACvC,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,aAAa,EAAE,4BAA4B,MAAM,QAAQ;AAAA,YAClE,UAAU;AAAA,YACV,iBAAiB;AAAA,UAClB,CAAe;AACf,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,WAAW,IAAI,GAAG;AACrB,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA7FC,QAAI,UAAU,QAAQ,UAAU;AAAG,WAAK,cAAc,OAAQ,UAAU;AACxE,QAAI,UAAU,QAAQ,oBAAoB;AACzC,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,UAAU,QAAQ,kBAAkB;AACvC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EA0FA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,OAAO,MAAM,MAAS;AAChD,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,aAAa,EAAE;AAClD,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,WACA,OACA,QACA,KACyB;AAIzB,QAAM,CAAC,OAAO,KAAK,IAAI,MAAM,KAAK,IAC/B,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,MAAM,KAAK,IACX,UAAU,YAAY,EAAE,UAAU,OAAO,MAAM,IAC/C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,QAAQ,QAAQ,UAAU,gBAAgB;AAChD,QAAM,QAAQ,KAAK,KAAK;AAIxB,QAAM,aAAa,QAAQ,cAAc,CAAC;AAC1C,QAAM,OAAO;AAEb,MAAI,UAAU,QAAQ,QAAW;AAChC,sCAAkC,QAAQ,OAAO,GAAG;AAAA,EACrD,OAAO;AAEN,UAAM,WAAW,KAAK,SAAS,iBAAiBC,YAAW;AAC1D,MAAAA,WAAU,eAAe,eAAe,KAAK;AAE7C,YAAM,EAAC,aAAY,IAAIA;AAEvB,UAAI,MAAM,aAAa,cAAc;AACpC,qBAAa,iBAAiB,OAAO,CAAC,GAAGA,UAAS;AAAA,MACnD;AAAA,IACD,CAAC;AAAA,EACF;AAEA,SAAO;AACR;;;AClQO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACXO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,WAAS,QAAQ,OAAmB,OAAkB,CAAC,GAAqB;AAE3E,QAAI,MAAM,SAAS,QAAW;AAG7B,YAAM,aAAa,MAAM,QAAS,SAAS,MAAM,QAAS;AAC1D,YAAM,aAAa,cAAc,IAAI,YAAY,MAAM,IAAK,CAAC;AAC7D,YAAM,aAAa,IAAI,YAAY,MAAM,IAAK;AAE9C,UAAI,eAAe,QAAW;AAC7B,eAAO;AAAA,MACR;AAIA,UACC,eAAe,MAAM,UACrB,eAAe,MAAM,SACrB,eAAe,MAAM,OACpB;AACD,eAAO;AAAA,MACR;AACA,UAAI,cAAc,QAAQ,WAAW,UAAU,MAAM,OAAO;AAC3D,eAAO;AAAA,MACR;AAGA,YAAMC,SAAQ,MAAM,QAAS;AAC7B,UAAI;AAEJ,UAAIA,QAAO;AAEV,cAAM,YAAY,MAAM;AACxB,cAAM,MAAM,KAAK,UAAU,QAAQ,KAAK,CAAC,EAAE,QAAQ,MAAM,IAAI;AAAA,MAC9D,OAAO;AACN,cAAM,MAAM;AAAA,MACb;AAGA,UAAI,EAAGA,UAAS,WAAW,OAAO,OAAQ,IAAI,YAAY,GAAG,IAAI;AAChE,eAAO;AAAA,MACR;AAGA,WAAK,KAAK,GAAG;AAAA,IACd;AAGA,QAAI,MAAM,SAAS;AAClB,aAAO,QAAQ,MAAM,SAAS,IAAI;AAAA,IACnC;AAGA,SAAK,QAAQ;AAEb,QAAI;AAEH,kBAAY,MAAM,OAAO,IAAI;AAAA,IAC9B,SAAS,GAAP;AACD,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,EACR;AAGA,WAAS,YAAY,MAAW,MAAsB;AACrD,QAAIC,WAAU;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,YAAM,MAAM,KAAK,CAAC;AAClB,MAAAA,WAAU,IAAIA,UAAS,GAAG;AAC1B,UAAI,CAAC,YAAYA,QAAO,KAAKA,aAAY,MAAM;AAC9C,cAAM,IAAI,MAAM,2BAA2B,KAAK,KAAK,GAAG,IAAI;AAAA,MAC7D;AAAA,IACD;AACA,WAAOA;AAAA,EACR;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,OACO;AACP,QAAI,MAAM,OAAO,qBAAqB,IAAI,KAAK,GAAG;AACjD;AAAA,IACD;AAEA,UAAM,OAAO,qBAAqB,IAAI,KAAK;AAE3C,UAAM,EAAC,UAAU,gBAAe,IAAI;AAEpC,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAEA,UAAM,gBAAgB,MAAM,0BAA0B;AAGtD,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,YAAM,aAAa,MAAM,CAAC;AAC1B,YAAM,WAAW,MAAM,CAAC;AAExB,YAAM,aAAa,iBAAiB,WAAW,IAAI,EAAE,SAAS,CAAC;AAC/D,UAAI,cAAc,eAAe,UAAU;AAC1C,cAAM,aAAa,aAAa,WAAW;AAC3C,YAAI,cAAc,WAAW,WAAW;AAEvC;AAAA,QACD;AACA,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,UAAU;AAAA,QAC1C,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,QAAQ;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,OAAO,MAAK,IAAI;AAC9B,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,KAAK,KAAK;AACvC,YAAM,QAAQ,IAAI,OAAQ,KAAK,KAAK;AACpC,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ;AAAA,QACP,OAAO,SACJ,EAAC,IAAI,KAAI,IACT,EAAC,IAAI,MAAM,OAAO,wBAAwB,KAAK,EAAC;AAAA,MACpD;AACA,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,OACO;AACP,UAAM,EAAC,UAAU,gBAAe,IAAI;AACpC,aAAU,KAAK;AAAA,MACd,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,oBAAiB,KAAK;AAAA,MACrB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,WAAW,IAAI,KAAK,MAAM;AAAW,cAAI,cAAc,CAAC;AAC5D,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,CAAC,YAAY,IAAI;AAAG,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAC5D;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AACpD,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACxZO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,6BAAqB,OAAO,KAAK,KAAK;AAAA,MACvC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,GAAG;AACzD,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAxIC,aAwIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UACR,QACA,QACgB;AAEhB,UAAM,MAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAAC,KAAY,IAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY,CAAC;AAAA,MACd;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AACtB,6BAAqB,OAAO,OAAO,KAAK;AAAA,MACzC;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA9FC,aA8FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UACR,QACA,QACgB;AAEhB,UAAMC,OAAM,IAAI,SAAS,QAAQ,MAAM;AACvC,WAAO,CAACA,MAAYA,KAAI,WAAW,CAAC;AAAA,EACrC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO,OAAO,KAAK;AAC3D,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,WAAS,eAAe,QAAoB;AAG3C,QAAI,OAAO,yBAA0B,OAAO,OAAO;AAClD,YAAM,OAAO,IAAI,IAAI,OAAO,KAAK;AACjC,aAAO,MAAM,MAAM;AACnB,WAAK,QAAQ,WAAS;AACrB,eAAO,MAAO,IAAI,SAAS,KAAK,CAAC;AAAA,MAClC,CAAC;AAAA,IACF;AAAA,EACD;AAEA,aAAW,cAAc,EAAC,WAAW,WAAW,eAAc,CAAC;AAChE;;;ACzOO,SAAS,qBAAqB;AACpC,QAAM,mBAAmB,oBAAI,IAAyB,CAAC,SAAS,SAAS,CAAC;AAE1E,QAAM,gBAAgB,oBAAI,IAAyB,CAAC,QAAQ,KAAK,CAAC;AAElE,QAAM,2BAA2B,oBAAI,IAAyB;AAAA,IAC7D,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,oBAAI,IAAyB,CAAC,WAAW,MAAM,CAAC;AAG3E,QAAM,mBAAmB,oBAAI,IAAyB;AAAA,IACrD,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACD,CAAC;AAED,QAAM,eAAe,oBAAI,IAA4B,CAAC,QAAQ,UAAU,CAAC;AAEzE,QAAM,uBAAuB,oBAAI,IAA4B;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAGD,WAAS,sBACR,QACgC;AAChC,WAAO,iBAAiB,IAAI,MAAa;AAAA,EAC1C;AAEA,WAAS,yBACR,QACmC;AACnC,WAAO,qBAAqB,IAAI,MAAa;AAAA,EAC9C;AAEA,WAAS,uBACR,QACiC;AACjC,WAAO,sBAAsB,MAAM,KAAK,yBAAyB,MAAM;AAAA,EACxE;AAEA,WAAS,eACR,OACA,QACC;AACD,UAAM,kBAAkB;AAAA,EACzB;AAEA,WAAS,cAAc,OAAwB;AAC9C,UAAM,kBAAkB;AAAA,EACzB;AAGA,WAAS,mBACR,OACA,WACA,aAAa,MACT;AACJ,gBAAY,KAAK;AACjB,UAAM,SAAS,UAAU;AACzB,gBAAY,KAAK;AACjB,QAAI;AAAY,YAAM,UAAW,IAAI,UAAU,IAAI;AACnD,WAAO;AAAA,EACR;AAEA,WAAS,yBAAyB,OAAwB;AACzD,UAAM,wBAAwB;AAAA,EAC/B;AAEA,WAAS,oBAAoB,OAAe,QAAwB;AACnE,QAAI,QAAQ,GAAG;AACd,aAAO,KAAK,IAAI,SAAS,OAAO,CAAC;AAAA,IAClC;AACA,WAAO,KAAK,IAAI,OAAO,MAAM;AAAA,EAC9B;AAWA,WAAS,sBACR,OACA,QACA,MACC;AACD,WAAO,mBAAmB,OAAO,MAAM;AACtC,YAAM,SAAU,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AAGpD,UAAI,iBAAiB,IAAI,MAA6B,GAAG;AACxD,iCAAyB,KAAK;AAAA,MAC/B;AAGA,aAAO,yBAAyB,IAAI,MAA6B,IAC9D,SACA,MAAM;AAAA,IACV,CAAC;AAAA,EACF;AAWA,WAAS,0BACR,OACA,QACA,MACC;AACD,WAAO;AAAA,MACN;AAAA,MACA,MAAM;AACL;AAAC,QAAC,MAAM,MAAe,MAAM,EAAE,GAAG,IAAI;AACtC,iCAAyB,KAAK;AAC9B,eAAO,MAAM;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAkBA,WAAS,wBACR,OACA,gBACC;AACD,WAAO,SAAS,qBAAqB,MAAa;AAGjD,YAAM,SAAS;AACf,qBAAe,OAAO,MAAM;AAE5B,UAAI;AAEH,YAAI,sBAAsB,MAAM,GAAG;AAElC,cAAI,yBAAyB,IAAI,MAAM,GAAG;AACzC,mBAAO,sBAAsB,OAAO,QAAQ,IAAI;AAAA,UACjD;AACA,cAAI,mBAAmB,IAAI,MAAM,GAAG;AACnC,mBAAO,0BAA0B,OAAO,QAAQ,IAAI;AAAA,UACrD;AAEA,cAAI,WAAW,UAAU;AACxB,kBAAM,MAAM;AAAA,cAAmB;AAAA,cAAO,MACrC,MAAM,MAAO,OAAO,GAAI,IAAmC;AAAA,YAC5D;AACA,qCAAyB,KAAK;AAC9B,mBAAO;AAAA,UACR;AAAA,QACD,OAAO;AAEN,iBAAO,2BAA2B,OAAO,QAAQ,IAAI;AAAA,QACtD;AAAA,MACD,UAAE;AAED,sBAAc,KAAK;AAAA,MACpB;AAAA,IACD;AAAA,EACD;AA4BA,WAAS,2BACR,OACA,QACA,MACC;AACD,UAAM,SAAS,OAAO,KAAK;AAG3B,QAAI,WAAW,UAAU;AACxB,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AAEpC,iBAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,QAC5B;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAEA,QAAI,aAAa,IAAI,MAAM,GAAG;AAC7B,YAAM,YAAY,KAAK,CAAC;AACxB,YAAM,YAAY,WAAW;AAC7B,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,YAAY,IAAI,OAAO,SAAS;AAE9C,eAAS,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,QAAQ,KAAK,MAAM;AAC3D,YAAI,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG;AACpC,iBAAO,MAAM,OAAO,CAAC;AAAA,QACtB;AAAA,MACD;AACA,aAAO;AAAA,IACR;AAEA,QAAI,WAAW,SAAS;AACvB,YAAM,WAAW,KAAK,CAAC,KAAK;AAC5B,YAAM,SAAS,KAAK,CAAC,KAAK,OAAO;AAGjC,YAAM,QAAQ,oBAAoB,UAAU,OAAO,MAAM;AACzD,YAAM,MAAM,oBAAoB,QAAQ,OAAO,MAAM;AAErD,YAAM,SAAgB,CAAC;AAGvB,eAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AACjC,eAAO,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,MAC5B;AAEA,aAAO;AAAA,IACR;AAOA,WAAO,OAAO,MAAsC,EAAE,GAAG,IAAI;AAAA,EAC9D;AAEA,aAAW,oBAAoB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;AChXA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,IAAI,YAAY,CAAI,UAAuB;AAO3C,IAAI,gBAAgB,CAAI,UAA2B;","names":["immer","current","Immer","base","rootScope","isSet","current","set","Immer"]}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.production.mjs
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.production.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-var v=Symbol.for("immer-nothing"),B=Symbol.for("immer-draftable"),y=Symbol.for("immer-state");function b(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var C=Object,j=C.getPrototypeOf,ee="constructor",te="prototype",Se="configurable",ce="enumerable",se="writable",re="value",w=e=>!!e&&!!e[y];function _(e){return e?ze(e)||$(e)||!!e[B]||!!e[ee]?.[B]||q(e)||Y(e):!1}var $e=C[te][ee].toString(),Re=new WeakMap;function ze(e){if(!e||!H(e))return!1;let t=j(e);if(t===null||t===C[te])return!0;let r=C.hasOwnProperty.call(t,ee)&&t[ee];if(r===Object)return!0;if(!L(r))return!1;let n=Re.get(r);return n===void 0&&(n=Function.toString.call(r),Re.set(r,n)),n===$e}function qe(e){return w(e)||b(15,e),e[y].t}function U(e,t,r=!0){K(e)===0?(r?Reflect.ownKeys(e):C.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function K(e){let t=e[y];return t?t.r:$(e)?1:q(e)?2:Y(e)?3:0}var G=(e,t,r=K(e))=>r===2?e.has(t):C[te].hasOwnProperty.call(e,t),k=(e,t,r=K(e))=>r===2?e.get(t):e[t],ne=(e,t,r,n=K(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function ke(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var $=Array.isArray,q=e=>e instanceof Map,Y=e=>e instanceof Set,H=e=>typeof e=="object",L=e=>typeof e=="function",Pe=e=>typeof e=="boolean";function Ue(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var De=e=>H(e)?e?.[y]:null,O=e=>e.e||e.t,je=e=>{let t=De(e);return t?t.e??t.t:e},ge=e=>e.s?e.e:e.t;function fe(e,t){if(q(e))return new Map(e);if(Y(e))return new Set(e);if($(e))return Array[te].slice.call(e);let r=ze(e);if(t===!0||t==="class_only"&&!r){let n=C.getOwnPropertyDescriptors(e);delete n[y];let o=Reflect.ownKeys(n);for(let i=0;i<o.length;i++){let d=o[i],S=n[d];S[se]===!1&&(S[se]=!0,S[Se]=!0),(S.get||S.set)&&(n[d]={[Se]:!0,[se]:!0,[ce]:S[ce],[re]:e[d]})}return C.create(j(e),n)}else{let n=j(e);if(n!==null&&r)return{...e};let o=C.create(n);return C.assign(o,e)}}function ae(e,t=!1){return oe(e)||w(e)||!_(e)||(K(e)>1&&C.defineProperties(e,{set:me,add:me,clear:me,delete:me}),C.freeze(e),t&&U(e,(r,n)=>{ae(n,!0)},!1)),e}function Ye(){b(2)}var me={[re]:Ye};function oe(e){return e===null||!H(e)?!0:C.isFrozen(e)}var W="MapSet",J="Patches",le="ArrayMethods",xe={};function V(e){let t=xe[e];return t||b(0,e),t}var _e=e=>!!xe[e];function ie(e,t){xe[e]||(xe[e]=t)}var ye,Q=()=>ye,Je=(e,t)=>({o:[],i:e,l:t,F:!0,m:0,P:new Set,T:new Set,I:_e(W)?V(W):void 0,E:_e(le)?V(le):void 0});function Ee(e,t){t&&(e.x=V(J),e.p=[],e.d=[],e.C=t)}function de(e){Ae(e),e.o.forEach(Qe),e.o=null}function Ae(e){e===ye&&(ye=e.i)}var we=e=>ye=Je(ye,e);function Qe(e){let t=e[y];t.r===0||t.r===1?t.b():t.g=!0}function Fe(e,t){t.m=t.o.length;let r=t.o[0];if(e!==void 0&&e!==r){r[y].s&&(de(t),b(4)),_(e)&&(e=Le(t,e));let{x:o}=t;o&&o.M(r[y].t,e,t)}else e=Le(t,r);return Xe(t,e,!0),de(t),t.p&&t.C(t.p,t.d),e!==v?e:void 0}function Le(e,t){if(oe(t))return t;let r=t[y];if(!r)return Ie(t,e.P,e);if(!Me(r,e))return t;if(!r.s)return r.t;if(!r.u){let{f:n}=r;if(n)for(;n.length>0;)n.pop()(e);He(r,e)}return r.e}function Xe(e,t,r=!1){!e.i&&e.l.h&&e.F&&ae(t,r)}function Ve(e){e.u=!0,e.n.m--}var Me=(e,t)=>e.n===t,Ze=[];function Be(e,t,r,n){let o=O(e),i=e.r;if(n!==void 0&&k(o,n,i)===t){ne(o,n,r,i);return}if(!e.D){let S=e.D=new Map;U(o,(p,M)=>{if(w(M)){let a=S.get(M)||[];a.push(p),S.set(M,a)}})}let d=e.D.get(t)??Ze;for(let S of d)ne(o,S,r,i)}function Ke(e,t,r){e.f.push(function(o){let i=t;if(!i||!Me(i,o))return;o.I?.fixSetContents(i);let d=ge(i);Be(e,i.c??i,d,r),He(i,o)})}function He(e,t){if(e.s&&!e.u&&(e.r===3||e.r===1&&e.R||(e.a?.size??0)>0)){let{x:n}=t;if(n){let o=n.getPath(e);o&&n.O(e,o,t)}Ve(e)}}function pe(e,t,r){let{n}=e;if(w(r)){let o=r[y];Me(o,n)&&o.f.push(function(){X(e);let d=ge(o);Be(e,r,d,t)})}else _(r)&&e.f.push(function(){let i=O(e);e.r===3?i.has(r)&&Ie(r,n.P,n):k(i,t,e.r)===r&&n.o.length>1&&(e.a.get(t)??!1)===!0&&e.e&&Ie(k(e.e,t,e.r),n.P,n)})}function Ie(e,t,r){return!r.l.h&&r.m<1||w(e)||t.has(e)||!_(e)||oe(e)||(t.add(e),U(e,(n,o)=>{if(w(o)){let i=o[y];if(Me(i,r)){let d=ge(i);ne(e,n,d,e.r),Ve(i)}}else _(o)&&Ie(o,t,r)})),e}function We(e,t){let r=$(e),n={r:r?1:0,n:t?t.n:Q(),s:!1,u:!1,a:void 0,i:t,t:e,c:null,e:null,b:null,S:!1,f:void 0},o=n,i=Te;r&&(o=[n],i=he);let{revoke:d,proxy:S}=Proxy.revocable(o,i);return n.c=S,n.b=d,[S,n]}var Te={get(e,t){if(t===y)return e;let r=e.n.E,n=e.r===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=O(e);if(!G(o,t,e.r))return et(e,o,t);let i=o[t];if(e.u||!_(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Ue(t))return i;if(i===Ce(e.t,t)){X(e);let d=e.r===1?+t:t,S=Z(e.n,i,e,d);return e.e[d]=S}return i},has(e,t){return t in O(e)},ownKeys(e){return Reflect.ownKeys(O(e))},set(e,t,r){let n=ve(O(e),t);if(n?.set)return n.set.call(e.c,r),!0;if(!e.s){let o=Ce(O(e),t),i=o?.[y];if(i&&i.t===r)return e.e[t]=r,e.a.set(t,!1),!0;if(ke(r,o)&&(r!==void 0||G(e.t,t,e.r)))return!0;X(e),z(e)}return e.e[t]===r&&(r!==void 0||t in e.e)||Number.isNaN(r)&&Number.isNaN(e.e[t])||(e.e[t]=r,e.a.set(t,!0),pe(e,t,r)),!0},deleteProperty(e,t){return X(e),Ce(e.t,t)!==void 0||t in e.t?(e.a.set(t,!1),z(e)):e.a.delete(t),e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let r=O(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[se]:!0,[Se]:e.r!==1||t!=="length",[ce]:n[ce],[re]:r[t]}},defineProperty(){b(11)},getPrototypeOf(e){return j(e.t)},setPrototypeOf(){b(12)}},he={};for(let e in Te){let t=Te[e];he[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}he.deleteProperty=function(e,t){return he.set.call(this,e,t,void 0)};he.set=function(e,t,r){return Te.set.call(this,e[0],t,r,e[0])};function Ce(e,t){let r=e[y];return(r?O(r):e)[t]}function et(e,t,r){let n=ve(t,r);return n?re in n?n[re]:n.get?.call(e.c):void 0}function ve(e,t){if(!(t in e))return;let r=j(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=j(r)}}function z(e){e.s||(e.s=!0,e.i&&z(e.i))}function X(e){e.e||(e.a=new Map,e.e=fe(e.t,e.n.l.A))}var be=class{constructor(t){this.h=!0;this.A=!1;this._=!1;this.produce=(t,r,n)=>{if(L(t)&&!L(r)){let i=r;r=t;let d=this;return function(p=i,...M){return d.produce(p,a=>r.call(this,a,...M))}}L(r)||b(6),n!==void 0&&!L(n)&&b(7);let o;if(_(t)){let i=we(this),d=Z(i,t,void 0),S=!0;try{o=r(d),S=!1}finally{S?de(i):Ae(i)}return Ee(i,n),Fe(o,i)}else if(!t||!H(t)){if(o=r(t),o===void 0&&(o=t),o===v&&(o=void 0),this.h&&ae(o,!0),n){let i=[],d=[];V(J).M(t,o,{p:i,d}),n(i,d)}return o}else b(1,t)};this.produceWithPatches=(t,r)=>{if(L(t))return(d,...S)=>this.produceWithPatches(d,p=>t(p,...S));let n,o;return[this.produce(t,r,(d,S)=>{n=d,o=S}),n,o]};Pe(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Pe(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Pe(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){_(t)||b(8),w(t)&&(t=Ne(t));let r=we(this),n=Z(r,t,void 0);return n[y].S=!0,Ae(r),n}finishDraft(t,r){let n=t&&t[y];(!n||!n.S)&&b(9);let{n:o}=n;return Ee(o,r),Fe(void 0,o)}setAutoFreeze(t){this.h=t}setUseStrictShallowCopy(t){this.A=t}setUseStrictIteration(t){this._=t}shouldUseStrictIteration(){return this._}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){let i=r[n];if(i.path.length===0&&i.op==="replace"){t=i.value;break}}n>-1&&(r=r.slice(n+1));let o=V(J).N;return w(t)?o(t,r):this.produce(t,i=>o(i,r))}};function Z(e,t,r,n){let[o,i]=q(t)?V(W).w(t,r):Y(t)?V(W).V(t,r):We(t,r);return(r?.n??Q()).o.push(o),i.f=r?.f??[],i.y=n,r&&n!==void 0?Ke(r,i,n):i.f.push(function(p){p.I?.fixSetContents(i);let{x:M}=p;i.s&&M&&M.O(i,[],p)}),o}function Ne(e){return w(e)||b(10,e),Ge(e)}function Ge(e){if(!_(e)||oe(e))return e;let t=e[y],r,n=!0;if(t){if(!t.s)return t.t;t.u=!0,r=fe(e,t.n.l.A),n=t.n.l.shouldUseStrictIteration()}else r=fe(e,!0);return U(r,(o,i)=>{ne(r,o,Ge(i))},n),t&&(t.u=!1),r}function tt(){function t(u,g=[]){if(u.y!==void 0){let m=u.i.e??u.i.t,x=De(k(m,u.y)),A=k(m,u.y);if(A===void 0||A!==u.c&&A!==u.t&&A!==u.e||x!=null&&x.t!==u.t)return null;let s=u.i.r===3,l;if(s){let h=u.i;l=Array.from(h.o.keys()).indexOf(u.y)}else l=u.y;if(!(s&&m.size>l||G(m,l)))return null;g.push(l)}if(u.i)return t(u.i,g);g.reverse();try{r(u.e,g)}catch{return null}return g}function r(u,g){let m=u;for(let x=0;x<g.length-1;x++){let A=g[x];if(m=k(m,A),!H(m)||m===null)throw new Error(`Cannot resolve path at '${g.join("/")}'`)}return m}let n="replace",o="add",i="remove";function d(u,g,m){if(u.n.T.has(u))return;u.n.T.add(u);let{p:x,d:A}=m;switch(u.r){case 0:case 2:return p(u,g,x,A);case 1:return S(u,g,x,A);case 3:return M(u,g,x,A)}}function S(u,g,m,x){let{t:A,a:s}=u,l=u.e;l.length<A.length&&([A,l]=[l,A],[m,x]=[x,m]);let h=u.R===!0;for(let f=0;f<A.length;f++){let I=l[f],E=A[f];if((h||s?.get(f.toString()))&&I!==E){let N=I?.[y];if(N&&N.s)continue;let R=g.concat([f]);m.push({op:n,path:R,value:D(I)}),x.push({op:n,path:R,value:D(E)})}}for(let f=A.length;f<l.length;f++){let I=g.concat([f]);m.push({op:o,path:I,value:D(l[f])})}for(let f=l.length-1;A.length<=f;--f){let I=g.concat([f]);x.push({op:i,path:I})}}function p(u,g,m,x){let{t:A,e:s,r:l}=u;U(u.a,(h,f)=>{let I=k(A,h,l),E=k(s,h,l),T=f?G(A,h)?n:o:i;if(I===E&&T===n)return;let N=g.concat(h);m.push(T===i?{op:T,path:N}:{op:T,path:N,value:D(E)}),x.push(T===o?{op:i,path:N}:T===i?{op:o,path:N,value:D(I)}:{op:n,path:N,value:D(I)})})}function M(u,g,m,x){let{t:A,e:s}=u,l=0;A.forEach(h=>{if(!s.has(h)){let f=g.concat([l]);m.push({op:i,path:f,value:h}),x.unshift({op:o,path:f,value:h})}l++}),l=0,s.forEach(h=>{if(!A.has(h)){let f=g.concat([l]);m.push({op:o,path:f,value:h}),x.unshift({op:i,path:f,value:h})}l++})}function a(u,g,m){let{p:x,d:A}=m;x.push({op:n,path:[],value:g===v?void 0:g}),A.push({op:n,path:[],value:u})}function c(u,g){return g.forEach(m=>{let{path:x,op:A}=m,s=u;for(let I=0;I<x.length-1;I++){let E=K(s),T=x[I];typeof T!="string"&&typeof T!="number"&&(T=""+T),(E===0||E===1)&&(T==="__proto__"||T===ee)&&b(16+3),L(s)&&T===te&&b(16+3),s=k(s,T),H(s)||b(16+2,x.join("/"))}let l=K(s),h=P(m.value),f=x[x.length-1];switch(A){case n:switch(l){case 2:return s.set(f,h);case 3:b(16);default:return s[f]=h}case o:switch(l){case 1:return f==="-"?s.push(h):s.splice(f,0,h);case 2:return s.set(f,h);case 3:return s.add(h);default:return s[f]=h}case i:switch(l){case 1:return s.splice(f,1);case 2:return s.delete(f);case 3:return s.delete(m.value);default:return delete s[f]}default:b(16+1,A)}}),u}function P(u){if(!_(u))return u;if($(u))return u.map(P);if(q(u))return new Map(Array.from(u.entries()).map(([m,x])=>[m,P(x)]));if(Y(u))return new Set(Array.from(u).map(P));let g=Object.create(j(u));for(let m in u)g[m]=P(u[m]);return G(u,B)&&(g[B]=u[B]),g}function D(u){return w(u)?P(u):u}ie(J,{N:c,O:d,M:a,getPath:t})}function rt(){class e extends Map{constructor(a,c){super();this[y]={r:2,i:c,n:c?c.n:Q(),s:!1,u:!1,e:void 0,a:void 0,t:a,c:this,S:!1,g:!1,f:[]}}get size(){return O(this[y]).size}has(a){return O(this[y]).has(a)}set(a,c){let P=this[y];return d(P),(!O(P).has(a)||O(P).get(a)!==c)&&(r(P),z(P),P.a.set(a,!0),P.e.set(a,c),P.a.set(a,!0),pe(P,a,c)),this}delete(a){if(!this.has(a))return!1;let c=this[y];return d(c),r(c),z(c),c.t.has(a)?c.a.set(a,!1):c.a.delete(a),c.e.delete(a),!0}clear(){let a=this[y];d(a),O(a).size&&(r(a),z(a),a.a=new Map,U(a.t,c=>{a.a.set(c,!1)}),a.e.clear())}forEach(a,c){let P=this[y];O(P).forEach((D,u,g)=>{a.call(c,this.get(u),u,this)})}get(a){let c=this[y];d(c);let P=O(c).get(a);if(c.u||!_(P)||P!==c.t.get(a))return P;let D=Z(c.n,P,c,a);return r(c),c.e.set(a,D),D}keys(){return O(this[y]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let c=a.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let c=a.next();if(c.done)return c;let P=this.get(c.value);return{done:!1,value:[c.value,P]}}}}[(y,Symbol.iterator)](){return this.entries()}}function t(p,M){let a=new e(p,M);return[a,a[y]]}function r(p){p.e||(p.a=new Map,p.e=new Map(p.t))}class n extends Set{constructor(a,c){super();this[y]={r:3,i:c,n:c?c.n:Q(),s:!1,u:!1,e:void 0,t:a,c:this,o:new Map,g:!1,S:!1,a:void 0,f:[]}}get size(){return O(this[y]).size}has(a){let c=this[y];return d(c),c.e?!!(c.e.has(a)||c.o.has(a)&&c.e.has(c.o.get(a))):c.t.has(a)}add(a){let c=this[y];return d(c),this.has(a)||(i(c),z(c),c.e.add(a),pe(c,a,a)),this}delete(a){if(!this.has(a))return!1;let c=this[y];return d(c),i(c),z(c),c.e.delete(a)||(c.o.has(a)?c.e.delete(c.o.get(a)):!1)}clear(){let a=this[y];d(a),O(a).size&&(i(a),z(a),a.e.clear())}values(){let a=this[y];return d(a),i(a),a.e.values()}entries(){let a=this[y];return d(a),i(a),a.e.entries()}keys(){return this.values()}[(y,Symbol.iterator)](){return this.values()}forEach(a,c){let P=this.values(),D=P.next();for(;!D.done;)a.call(c,D.value,D.value,this),D=P.next()}}function o(p,M){let a=new n(p,M);return[a,a[y]]}function i(p){p.e||(p.e=new Set,p.t.forEach(M=>{if(_(M)){let a=Z(p.n,M,p,M);p.o.set(M,a),p.e.add(a)}else p.e.add(M)}))}function d(p){p.g&&b(3,JSON.stringify(O(p)))}function S(p){if(p.r===3&&p.e){let M=new Set(p.e);p.e.clear(),M.forEach(a=>{p.e.add(je(a))})}}ie(W,{w:t,V:o,fixSetContents:S})}function nt(){let e=new Set(["shift","unshift"]),t=new Set(["push","pop"]),r=new Set([...t,...e]),n=new Set(["reverse","sort"]),o=new Set([...r,...n,"splice"]),i=new Set(["find","findLast"]),d=new Set(["filter","slice","concat","flat",...i,"findIndex","findLastIndex","some","every","indexOf","lastIndexOf","includes","join","toString","toLocaleString"]);function S(s){return o.has(s)}function p(s){return d.has(s)}function M(s){return S(s)||p(s)}function a(s,l){s.operationMethod=l}function c(s){s.operationMethod=void 0}function P(s,l,h=!0){X(s);let f=l();return z(s),h&&s.a.set("length",!0),f}function D(s){s.R=!0}function u(s,l){return s<0?Math.max(l+s,0):Math.min(s,l)}function g(s,l,h){return P(s,()=>{let f=s.e[l](...h);return e.has(l)&&D(s),r.has(l)?f:s.c})}function m(s,l,h){return P(s,()=>(s.e[l](...h),D(s),s.c),!1)}function x(s,l){return function(...f){let I=l;a(s,I);try{if(S(I)){if(r.has(I))return g(s,I,f);if(n.has(I))return m(s,I,f);if(I==="splice"){let E=P(s,()=>s.e.splice(...f));return D(s),E}}else return A(s,I,f)}finally{c(s)}}}function A(s,l,h){let f=O(s);if(l==="filter"){let I=h[0],E=[];for(let T=0;T<f.length;T++)I(f[T],T,f)&&E.push(s.c[T]);return E}if(i.has(l)){let I=h[0],E=l==="find",T=E?1:-1,N=E?0:f.length-1;for(let R=N;R>=0&&R<f.length;R+=T)if(I(f[R],R,f))return s.c[R];return}if(l==="slice"){let I=h[0]??0,E=h[1]??f.length,T=u(I,f.length),N=u(E,f.length),R=[];for(let Oe=T;Oe<N;Oe++)R.push(s.c[Oe]);return R}return f[l](...h)}ie(le,{createMethodInterceptor:x,isArrayOperationMethod:M,isMutatingArrayMethod:S})}var F=new be,vr=F.produce,Gr=F.produceWithPatches.bind(F),$r=F.setAutoFreeze.bind(F),qr=F.setUseStrictShallowCopy.bind(F),Yr=F.setUseStrictIteration.bind(F),Jr=F.applyPatches.bind(F),Qr=F.createDraft.bind(F),Xr=F.finishDraft.bind(F),Zr=e=>e,en=e=>e;export{be as Immer,Jr as applyPatches,Zr as castDraft,en as castImmutable,Qr as createDraft,Ne as current,nt as enableArrayMethods,rt as enableMapSet,tt as enablePatches,Xr as finishDraft,ae as freeze,B as immerable,w as isDraft,_ as isDraftable,v as nothing,qe as original,vr as produce,Gr as produceWithPatches,$r as setAutoFreeze,Yr as setUseStrictIteration,qr as setUseStrictShallowCopy};
-//# sourceMappingURL=immer.production.mjs.map
Index: de_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.production.mjs.map
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.production.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/plugins/arrayMethods.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","import {isFunction} from \"../internal\"\n\nexport const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = isFunction(e) ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tisArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value[CONSTRUCTOR]?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (isArray(base)) return Array[PROTOTYPE].slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = O.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc[WRITABLE] === false) {\n\t\t\t\tdesc[WRITABLE] = true\n\t\t\t\tdesc[CONFIGURABLE] = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = O.create(proto)\n\t\treturn O.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tO.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tO.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin,\n\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft)\n\t}\n\n\tmaybeFreeze(scope, result, true)\n\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n","import {\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): [Drafted<T, ProxyState>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false,\n\t\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (baseIsArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn [proxy as any, state]\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(prop)\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\n\t}\n}\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? VALUE in desc\n\t\t\t? desc[VALUE]\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent,\n\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (isFunction(base) && !isFunction(recipe)) {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(scope, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || !isObjectish(base)) {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (isFunction(base)) {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(scope, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(PluginPatches).applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n","import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n *   // Optimized - no proxy creation per element\n *   draft.items.sort((a, b) => a.value - b.value)\n *\n *   // filter returns drafts - mutations propagate\n *   const filtered = draft.items.filter(x => x.value > 5)\n *   filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t *    to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t *   Since the result structure differs from the original, tracking mutations\n\t *   back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t//   This is intentional - concat/flat create new data structures rather than\n\t\t//   selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport let castDraft = <T>(value: T): Draft<T> => value as any\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\n"],"mappings":"AAKO,IAAMA,EAAyB,OAAO,IAAI,eAAe,EAUnDC,EAA2B,OAAO,IAAI,iBAAiB,EAEvDC,EAA6B,OAAO,IAAI,aAAa,ECuB3D,SAASC,EAAIC,KAAkBC,EAAoB,CAMzD,MAAM,IAAI,MACT,8BAA8BD,0CAC/B,CACD,CCnCA,IAAME,EAAI,OAEGC,EAAiBD,EAAE,eAEnBE,GAAc,cACdC,GAAY,YAEZC,GAAe,eACfC,GAAa,aACbC,GAAW,WACXC,GAAQ,QAIVC,EAAWC,GAAwB,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMC,CAAW,EAIrE,SAASC,EAAYF,EAAqB,CAChD,OAAKA,EAEJG,GAAcH,CAAK,GACnBI,EAAQJ,CAAK,GACb,CAAC,CAACA,EAAMK,CAAS,GACjB,CAAC,CAACL,EAAMP,EAAW,IAAIY,CAAS,GAChCC,EAAMN,CAAK,GACXO,EAAMP,CAAK,EAPO,EASpB,CAEA,IAAMQ,GAAmBjB,EAAEG,EAAS,EAAED,EAAW,EAAE,SAAS,EACtDgB,GAAoB,IAAI,QAEvB,SAASN,GAAcH,EAAqB,CAClD,GAAI,CAACA,GAAS,CAACU,EAAYV,CAAK,EAAG,MAAO,GAC1C,IAAMW,EAAQnB,EAAeQ,CAAK,EAClC,GAAIW,IAAU,MAAQA,IAAUpB,EAAEG,EAAS,EAAG,MAAO,GAErD,IAAMkB,EAAOrB,EAAE,eAAe,KAAKoB,EAAOlB,EAAW,GAAKkB,EAAMlB,EAAW,EAC3E,GAAImB,IAAS,OAAQ,MAAO,GAE5B,GAAI,CAACC,EAAWD,CAAI,EAAG,MAAO,GAE9B,IAAIE,EAAaL,GAAkB,IAAIG,CAAI,EAC3C,OAAIE,IAAe,SAClBA,EAAa,SAAS,SAAS,KAAKF,CAAI,EACxCH,GAAkB,IAAIG,EAAME,CAAU,GAGhCA,IAAeN,EACvB,CAKO,SAASO,GAASf,EAA0B,CAClD,OAAKD,EAAQC,CAAK,GAAGgB,EAAI,GAAIhB,CAAK,EAC3BA,EAAMC,CAAW,EAAEgB,CAC3B,CAgBO,SAASC,EAAKC,EAAUC,EAAWC,EAAkB,GAAM,CAC7DC,EAAYH,CAAG,IAAM,GAGXE,EAAS,QAAQ,QAAQF,CAAG,EAAI5B,EAAE,KAAK4B,CAAG,GAClD,QAAQI,GAAO,CACnBH,EAAKG,EAAKJ,EAAII,CAAG,EAAGJ,CAAG,CACxB,CAAC,EAEDA,EAAI,QAAQ,CAACK,EAAYC,IAAeL,EAAKK,EAAOD,EAAOL,CAAG,CAAC,CAEjE,CAGO,SAASG,EAAYI,EAAsB,CACjD,IAAMC,EAAgCD,EAAMzB,CAAW,EACvD,OAAO0B,EACJA,EAAMC,EACNxB,EAAQsB,CAAK,IAEbpB,EAAMoB,CAAK,IAEXnB,EAAMmB,CAAK,KAGf,CAGO,IAAIG,EAAM,CAChBH,EACAI,EACAC,EAAOT,EAAYI,CAAK,IAExBK,IAAS,EACNL,EAAM,IAAII,CAAI,EACdvC,EAAEG,EAAS,EAAE,eAAe,KAAKgC,EAAOI,CAAI,EAGrCE,EAAM,CAChBN,EACAI,EACAC,EAAOT,EAAYI,CAAK,IAGxBK,IAAS,EAAeL,EAAM,IAAII,CAAI,EAAIJ,EAAMI,CAAI,EAG1CG,GAAM,CAChBP,EACAQ,EACAlC,EACA+B,EAAOT,EAAYI,CAAK,IACpB,CACAK,IAAS,EAAcL,EAAM,IAAIQ,EAAgBlC,CAAK,EACjD+B,IAAS,EACjBL,EAAM,IAAI1B,CAAK,EACT0B,EAAMQ,CAAc,EAAIlC,CAChC,EAGO,SAASmC,GAAGC,EAAQC,EAAiB,CAE3C,OAAID,IAAMC,EACFD,IAAM,GAAK,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,CAE1B,CAEO,IAAIjC,EAAU,MAAM,QAGhBE,EAASgC,GAAkCA,aAAkB,IAG7D/B,EAAS+B,GAAkCA,aAAkB,IAE7D5B,EAAe4B,GAAgB,OAAOA,GAAW,SAEjDzB,EAAcyB,GACxB,OAAOA,GAAW,WAERC,GAAaD,GACvB,OAAOA,GAAW,UAEZ,SAASE,GAAaxC,EAAkD,CAC9E,IAAMyC,EAAI,CAACzC,EACX,OAAO,OAAO,UAAUyC,CAAC,GAAK,OAAOA,CAAC,IAAMzC,CAC7C,CAEO,IAAI0C,GAAgC1C,GACrCU,EAAYV,CAAK,EACdA,IAAiCC,CAAW,EADpB,KAKtB0C,EAAUhB,GAA2BA,EAAMiB,GAASjB,EAAMV,EAE1D4B,GAA8B7C,GAAgB,CACxD,IAAM8C,EAAaJ,GAAc1C,CAAK,EACtC,OAAO8C,EAAaA,EAAWF,GAASE,EAAW7B,EAAQjB,CAC5D,EAEW+C,GAAiBpB,GAC3BA,EAAMqB,EAAYrB,EAAMiB,EAAQjB,EAAMV,EAGhC,SAASgC,GAAYC,EAAW7B,EAAoB,CAC1D,GAAIf,EAAM4C,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI3C,EAAM2C,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI9C,EAAQ8C,CAAI,EAAG,OAAO,MAAMxD,EAAS,EAAE,MAAM,KAAKwD,CAAI,EAE1D,IAAMC,EAAUhD,GAAc+C,CAAI,EAElC,GAAI7B,IAAW,IAASA,IAAW,cAAgB,CAAC8B,EAAU,CAE7D,IAAMC,EAAc7D,EAAE,0BAA0B2D,CAAI,EACpD,OAAOE,EAAYnD,CAAkB,EACrC,IAAIoD,EAAO,QAAQ,QAAQD,CAAW,EACtC,QAAS,EAAI,EAAG,EAAIC,EAAK,OAAQ,IAAK,CACrC,IAAM9B,EAAW8B,EAAK,CAAC,EACjBC,EAAOF,EAAY7B,CAAG,EACxB+B,EAAKzD,EAAQ,IAAM,KACtByD,EAAKzD,EAAQ,EAAI,GACjByD,EAAK3D,EAAY,EAAI,KAKlB2D,EAAK,KAAOA,EAAK,OACpBF,EAAY7B,CAAG,EAAI,CAClB,CAAC5B,EAAY,EAAG,GAChB,CAACE,EAAQ,EAAG,GACZ,CAACD,EAAU,EAAG0D,EAAK1D,EAAU,EAC7B,CAACE,EAAK,EAAGoD,EAAK3B,CAAG,CAClB,GAEF,OAAOhC,EAAE,OAAOC,EAAe0D,CAAI,EAAGE,CAAW,MAC3C,CAEN,IAAMzC,EAAQnB,EAAe0D,CAAI,EACjC,GAAIvC,IAAU,MAAQwC,EACrB,MAAO,CAAC,GAAGD,CAAI,EAEhB,IAAM/B,EAAM5B,EAAE,OAAOoB,CAAK,EAC1B,OAAOpB,EAAE,OAAO4B,EAAK+B,CAAI,EAE3B,CAUO,SAASK,GAAUpC,EAAUqC,EAAgB,GAAU,CAC7D,OAAIC,GAAStC,CAAG,GAAKpB,EAAQoB,CAAG,GAAK,CAACjB,EAAYiB,CAAG,IACjDG,EAAYH,CAAG,EAAI,GACtB5B,EAAE,iBAAiB4B,EAAK,CACvB,IAAKuC,GACL,IAAKA,GACL,MAAOA,GACP,OAAQA,EACT,CAAC,EAEFnE,EAAE,OAAO4B,CAAG,EACRqC,GAGHtC,EACCC,EACA,CAACwC,EAAM3D,IAAU,CAChBuD,GAAOvD,EAAO,EAAI,CACnB,EACA,EACD,GACMmB,CACR,CAEA,SAASyC,IAA8B,CACtC5C,EAAI,CAAC,CACN,CAEA,IAAM0C,GAA2B,CAChC,CAAC5D,EAAK,EAAG8D,EACV,EAEO,SAASH,GAAStC,EAAmB,CAE3C,OAAIA,IAAQ,MAAQ,CAACT,EAAYS,CAAG,EAAU,GACvC5B,EAAE,SAAS4B,CAAG,CACtB,CChRO,IAAM0C,EAAe,SACfC,EAAgB,UAChBC,GAAqB,eA8B5BC,GAIF,CAAC,EAIE,SAASC,EACfC,EACiC,CACjC,IAAMC,EAASH,GAAQE,CAAS,EAChC,OAAKC,GACJC,EAAI,EAAGF,CAAS,EAGVC,CACR,CAEO,IAAIE,GAA2CH,GACrD,CAAC,CAACF,GAAQE,CAAS,EAMb,SAASI,GACfC,EACAC,EACO,CACFC,GAAQF,CAAS,IAAGE,GAAQF,CAAS,EAAIC,EAC/C,CCxCA,IAAIE,GAEOC,EAAkB,IAAMD,GAE/BE,GAAc,CACjBC,EACAC,KACiB,CACjBC,EAAS,CAAC,EACVF,IACAC,IAGAE,EAAgB,GAChBC,EAAoB,EACpBC,EAAa,IAAI,IACjBC,EAAsB,IAAI,IAC1BC,EAAeC,GAAeC,CAAY,EACvCC,EAAUD,CAAY,EACtB,OACHE,EAAqBH,GAAeI,EAAkB,EACnDF,EAAUE,EAAkB,EAC5B,MACJ,GAEO,SAASC,GACfC,EACAC,EACC,CACGA,IACHD,EAAME,EAAeN,EAAUO,CAAa,EAC5CH,EAAMI,EAAW,CAAC,EAClBJ,EAAMK,EAAkB,CAAC,EACzBL,EAAMM,EAAiBL,EAEzB,CAEO,SAASM,GAAYP,EAAmB,CAC9CQ,GAAWR,CAAK,EAChBA,EAAMZ,EAAQ,QAAQqB,EAAW,EAEjCT,EAAMZ,EAAU,IACjB,CAEO,SAASoB,GAAWR,EAAmB,CACzCA,IAAUjB,KACbA,GAAeiB,EAAMd,EAEvB,CAEO,IAAIwB,GAAcC,GACvB5B,GAAeE,GAAYF,GAAc4B,CAAK,EAEhD,SAASF,GAAYG,EAAgB,CACpC,IAAMC,EAAoBD,EAAME,CAAW,EACvCD,EAAME,IAAU,GAAmBF,EAAME,IAAU,EACtDF,EAAMG,EAAQ,EACVH,EAAMI,EAAW,EACvB,CCpEO,SAASC,GAAcC,EAAaC,EAAmB,CAC7DA,EAAMC,EAAqBD,EAAME,EAAQ,OACzC,IAAMC,EAAYH,EAAME,EAAS,CAAC,EAGlC,GAFmBH,IAAW,QAAaA,IAAWI,EAEtC,CACXA,EAAUC,CAAW,EAAEC,IAC1BC,GAAYN,CAAK,EACjBO,EAAI,CAAC,GAEFC,EAAYT,CAAM,IAErBA,EAASU,GAAST,EAAOD,CAAM,GAEhC,GAAM,CAACW,GAAY,EAAIV,EACnBU,GACHA,EAAaC,EACZR,EAAUC,CAAW,EAAEQ,EACvBb,EACAC,CACD,OAIDD,EAASU,GAAST,EAAOG,CAAS,EAGnC,OAAAU,GAAYb,EAAOD,EAAQ,EAAI,EAE/BO,GAAYN,CAAK,EACbA,EAAMc,GACTd,EAAMe,EAAgBf,EAAMc,EAAUd,EAAMgB,CAAgB,EAEtDjB,IAAWkB,EAAUlB,EAAS,MACtC,CAEA,SAASU,GAASS,EAAuBC,EAAY,CAEpD,GAAIC,GAASD,CAAK,EAAG,OAAOA,EAE5B,IAAME,EAAoBF,EAAMf,CAAW,EAC3C,GAAI,CAACiB,EAEJ,OADmBC,GAAYH,EAAOD,EAAUK,EAAaL,CAAS,EAKvE,GAAI,CAACM,GAAYH,EAAOH,CAAS,EAChC,OAAOC,EAIR,GAAI,CAACE,EAAMhB,EACV,OAAOgB,EAAMT,EAGd,GAAI,CAACS,EAAMI,EAAY,CAEtB,GAAM,CAACC,GAAU,EAAIL,EACrB,GAAIK,EACH,KAAOA,EAAW,OAAS,GACTA,EAAW,IAAI,EACvBR,CAAS,EAIpBS,GAA2BN,EAAOH,CAAS,EAI5C,OAAOG,EAAMO,CACd,CAEA,SAASf,GAAYb,EAAmBmB,EAAYU,EAAO,GAAO,CAE7D,CAAC7B,EAAM8B,GAAW9B,EAAM+B,EAAOC,GAAehC,EAAMiC,GACvDC,GAAOf,EAAOU,CAAI,CAEpB,CAEA,SAASM,GAAmBd,EAAmB,CAC9CA,EAAMI,EAAa,GACnBJ,EAAMe,EAAOnC,GACd,CAEA,IAAIuB,GAAc,CAACH,EAAmBH,IACrCG,EAAMe,IAAWlB,EAGZmB,GAAuD,CAAC,EAIvD,SAASC,GACfC,EACAC,EACAC,EACAC,EACO,CACP,IAAMC,EAAaC,EAAOL,CAAM,EAC1BM,EAAaN,EAAOO,EAG1B,GAAIJ,IAAgB,QACEK,EAAIJ,EAAYD,EAAaG,CAAU,IACvCL,EAAY,CAEhCQ,GAAIL,EAAYD,EAAaD,EAAgBI,CAAU,EACvD,OAQF,GAAI,CAACN,EAAOU,EAAiB,CAC5B,IAAMC,EAAkBX,EAAOU,EAAkB,IAAI,IAGrDE,EAAKR,EAAY,CAACS,EAAKjC,IAAU,CAChC,GAAIkC,EAAQlC,CAAK,EAAG,CACnB,IAAMmC,EAAOJ,EAAe,IAAI/B,CAAK,GAAK,CAAC,EAC3CmC,EAAK,KAAKF,CAAG,EACbF,EAAe,IAAI/B,EAAOmC,CAAI,EAEhC,CAAC,EAIF,IAAMC,EACLhB,EAAOU,EAAgB,IAAIT,CAAU,GAAKH,GAG3C,QAAWmB,KAAYD,EACtBP,GAAIL,EAAYa,EAAUf,EAAgBI,CAAU,CAEtD,CAKO,SAASY,GACflB,EACAmB,EACAN,EACC,CACDb,EAAOb,EAAW,KAAK,SAAsBR,EAAW,CACvD,IAAMG,EAAoBqC,EAG1B,GAAI,CAACrC,GAAS,CAACG,GAAYH,EAAOH,CAAS,EAC1C,OAIDA,EAAUyC,GAAe,eAAetC,CAAK,EAE7C,IAAMoB,EAAiBmB,GAAcvC,CAAK,EAG1CiB,GAAoBC,EAAQlB,EAAMwC,GAAUxC,EAAOoB,EAAgBW,CAAG,EAEtEzB,GAA2BN,EAAOH,CAAS,CAC5C,CAAC,CACF,CAEA,SAASS,GAA2BN,EAAmBH,EAAuB,CAS7E,GAPCG,EAAMhB,GACN,CAACgB,EAAMI,IACNJ,EAAMyB,IAAU,GACfzB,EAAMyB,IAAU,GACfzB,EAA0ByC,IAC3BzC,EAAM0C,GAAW,MAAQ,GAAK,GAEb,CACnB,GAAM,CAACrD,GAAY,EAAIQ,EACvB,GAAIR,EAAc,CACjB,IAAMsD,EAAWtD,EAAc,QAAQW,CAAK,EAExC2C,GACHtD,EAAcuD,EAAiB5C,EAAO2C,EAAU9C,CAAS,EAI3DiB,GAAmBd,CAAK,EAE1B,CAEO,SAAS6C,GACfC,EACAf,EACAjC,EACC,CACD,GAAM,CAACiB,CAAM,EAAI+B,EAEjB,GAAId,EAAQlC,CAAK,EAAG,CACnB,IAAME,EAAoBF,EAAMf,CAAW,EACvCoB,GAAYH,EAAOe,CAAM,GAG5Bf,EAAMK,EAAW,KAAK,UAAiC,CAEtD0C,EAAYD,CAAM,EAElB,IAAM1B,EAAiBmB,GAAcvC,CAAK,EAE1CiB,GAAoB6B,EAAQhD,EAAOsB,EAAgBW,CAAG,CACvD,CAAC,OAEQ5C,EAAYW,CAAK,GAE3BgD,EAAOzC,EAAW,KAAK,UAA8B,CACpD,IAAM2C,EAAazB,EAAOuB,CAAM,EAG5BA,EAAOrB,IAAU,EAChBuB,EAAW,IAAIlD,CAAK,GAEvBG,GAAYH,EAAOiB,EAAOb,EAAaa,CAAM,EAI1CW,EAAIsB,EAAYjB,EAAKe,EAAOrB,CAAK,IAAM3B,GAEzCiB,EAAOlC,EAAQ,OAAS,IACtBiE,EAAyCJ,EAAW,IAAIX,CAAG,GAC5D,MAAW,IACZe,EAAOvC,GAIPN,GACCyB,EAAIoB,EAAOvC,EAAOwB,EAAKe,EAAOrB,CAAK,EACnCV,EAAOb,EACPa,CACD,CAIJ,CAAC,CAEH,CAEO,SAASd,GACf6C,EACAG,EACApD,EACC,CAWD,MAVI,CAACA,EAAUa,EAAOC,GAAed,EAAUjB,EAAqB,GAWnEoD,EAAQc,CAAM,GACdG,EAAW,IAAIH,CAAM,GACrB,CAAC3D,EAAY2D,CAAM,GACnB/C,GAAS+C,CAAM,IAKhBG,EAAW,IAAIH,CAAM,EAGrBhB,EAAKgB,EAAQ,CAACf,EAAKjC,IAAU,CAC5B,GAAIkC,EAAQlC,CAAK,EAAG,CACnB,IAAME,EAAoBF,EAAMf,CAAW,EAC3C,GAAIoB,GAAYH,EAAOH,CAAS,EAAG,CAGlC,IAAMqD,EAAeX,GAAcvC,CAAK,EAExC2B,GAAImB,EAAQf,EAAKmB,EAAcJ,EAAOrB,CAAK,EAE3CX,GAAmBd,CAAK,QAEfb,EAAYW,CAAK,GAE3BG,GAAYH,EAAOmD,EAAYpD,CAAS,CAE1C,CAAC,GAEMiD,CACR,CCtQO,SAASK,GACfC,EACAC,EACuC,CACvC,IAAMC,EAAcC,EAAQH,CAAI,EAC1BI,EAAoB,CACzBC,EAAOH,MAEPI,EAAQL,EAASA,EAAOK,EAASC,EAAgB,EAEjDC,EAAW,GAEXC,EAAY,GAGZC,EAAW,OAEXC,EAASV,EAETW,EAAOZ,EAEPa,EAAQ,KAERC,EAAO,KAEPC,EAAS,KACTC,EAAW,GAEXC,EAAY,MACb,EAQIC,EAAYd,EACZe,EAA2CC,GAC3ClB,IACHgB,EAAS,CAACd,CAAK,EACfe,EAAQE,IAGT,GAAM,CAAC,OAAAC,EAAQ,MAAAC,CAAK,EAAI,MAAM,UAAUL,EAAQC,CAAK,EACrD,OAAAf,EAAMS,EAASU,EACfnB,EAAMW,EAAUO,EACT,CAACC,EAAcnB,CAAK,CAC5B,CAKO,IAAMgB,GAAwC,CACpD,IAAIhB,EAAOoB,EAAM,CAChB,GAAIA,IAASC,EAAa,OAAOrB,EAEjC,IAAIsB,EAActB,EAAME,EAAOqB,EACzBC,EACLxB,EAAMC,IAAU,GAAkB,OAAOmB,GAAS,SAGnD,GAAII,GACCF,GAAa,uBAAuBF,CAAI,EAC3C,OAAOE,EAAY,wBAAwBtB,EAAOoB,CAAI,EAIxD,IAAMK,EAASC,EAAO1B,CAAK,EAC3B,GAAI,CAAC2B,EAAIF,EAAQL,EAAMpB,EAAMC,CAAK,EAEjC,OAAO2B,GAAkB5B,EAAOyB,EAAQL,CAAI,EAE7C,IAAMS,EAAQJ,EAAOL,CAAI,EAOzB,GANIpB,EAAMK,GAAc,CAACyB,EAAYD,CAAK,GAOzCL,GACCxB,EAA0B,iBAC3BsB,GAAa,sBACXtB,EAA0B,eAC5B,GACA+B,GAAaX,CAAI,EAGjB,OAAOS,EAIR,GAAIA,IAAUG,GAAKhC,EAAMQ,EAAOY,CAAI,EAAG,CACtCa,EAAYjC,CAAK,EAEjB,IAAMkC,EAAWlC,EAAMC,IAAU,EAAiB,CAAEmB,EAAkBA,EAChEe,EAAaC,EAAYpC,EAAME,EAAQ2B,EAAO7B,EAAOkC,CAAQ,EAEnE,OAAQlC,EAAMU,EAAOwB,CAAQ,EAAIC,EAElC,OAAON,CACR,EACA,IAAI7B,EAAOoB,EAAM,CAChB,OAAOA,KAAQM,EAAO1B,CAAK,CAC5B,EACA,QAAQA,EAAO,CACd,OAAO,QAAQ,QAAQ0B,EAAO1B,CAAK,CAAC,CACrC,EACA,IACCA,EACAoB,EACAS,EACC,CACD,IAAMQ,EAAOC,GAAuBZ,EAAO1B,CAAK,EAAGoB,CAAI,EACvD,GAAIiB,GAAM,IAGT,OAAAA,EAAK,IAAI,KAAKrC,EAAMS,EAAQoB,CAAK,EAC1B,GAER,GAAI,CAAC7B,EAAMI,EAAW,CAGrB,IAAMmC,EAAUP,GAAKN,EAAO1B,CAAK,EAAGoB,CAAI,EAElCoB,EAAiCD,IAAUlB,CAAW,EAC5D,GAAImB,GAAgBA,EAAahC,IAAUqB,EAC1C,OAAA7B,EAAMU,EAAOU,CAAI,EAAIS,EACrB7B,EAAMM,EAAW,IAAIc,EAAM,EAAK,EACzB,GAER,GACCqB,GAAGZ,EAAOU,CAAO,IAChBV,IAAU,QAAaF,EAAI3B,EAAMQ,EAAOY,EAAMpB,EAAMC,CAAK,GAE1D,MAAO,GACRgC,EAAYjC,CAAK,EACjB0C,EAAY1C,CAAK,EAGlB,OACEA,EAAMU,EAAOU,CAAI,IAAMS,IAEtBA,IAAU,QAAaT,KAAQpB,EAAMU,IAEtC,OAAO,MAAMmB,CAAK,GAAK,OAAO,MAAM7B,EAAMU,EAAOU,CAAI,CAAC,IAKxDpB,EAAMU,EAAOU,CAAI,EAAIS,EACrB7B,EAAMM,EAAW,IAAIc,EAAM,EAAI,EAE/BuB,GAAqB3C,EAAOoB,EAAMS,CAAK,GAChC,EACR,EACA,eAAe7B,EAAOoB,EAAc,CACnC,OAAAa,EAAYjC,CAAK,EAEbgC,GAAKhC,EAAMQ,EAAOY,CAAI,IAAM,QAAaA,KAAQpB,EAAMQ,GAC1DR,EAAMM,EAAW,IAAIc,EAAM,EAAK,EAChCsB,EAAY1C,CAAK,GAGjBA,EAAMM,EAAW,OAAOc,CAAI,EAEzBpB,EAAMU,GACT,OAAOV,EAAMU,EAAMU,CAAI,EAEjB,EACR,EAGA,yBAAyBpB,EAAOoB,EAAM,CACrC,IAAMwB,EAAQlB,EAAO1B,CAAK,EACpBqC,EAAO,QAAQ,yBAAyBO,EAAOxB,CAAI,EACzD,OAAKiB,GACE,CACN,CAACQ,EAAQ,EAAG,GACZ,CAACC,EAAY,EAAG9C,EAAMC,IAAU,GAAkBmB,IAAS,SAC3D,CAAC2B,EAAU,EAAGV,EAAKU,EAAU,EAC7B,CAACC,EAAK,EAAGJ,EAAMxB,CAAI,CACpB,CACD,EACA,gBAAiB,CAChB6B,EAAI,EAAE,CACP,EACA,eAAejD,EAAO,CACrB,OAAOkD,EAAelD,EAAMQ,CAAK,CAClC,EACA,gBAAiB,CAChByC,EAAI,EAAE,CACP,CACD,EAMMhC,GAA8C,CAAC,EAGrD,QAASkC,KAAOnC,GAAa,CAC5B,IAAIoC,EAAKpC,GAAYmC,CAA+B,EAEpDlC,GAAWkC,CAAG,EAAI,UAAW,CAC5B,IAAME,EAAO,UACb,OAAAA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAE,CAAC,EACZD,EAAG,MAAM,KAAMC,CAAI,CAC3B,EAEDpC,GAAW,eAAiB,SAASjB,EAAOoB,EAAM,CAIjD,OAAOH,GAAW,IAAK,KAAK,KAAMjB,EAAOoB,EAAM,MAAS,CACzD,EACAH,GAAW,IAAM,SAASjB,EAAOoB,EAAMS,EAAO,CAO7C,OAAOb,GAAY,IAAK,KAAK,KAAMhB,EAAM,CAAC,EAAGoB,EAAMS,EAAO7B,EAAM,CAAC,CAAC,CACnE,EAGA,SAASgC,GAAKsB,EAAgBlC,EAAmB,CAChD,IAAMpB,EAAQsD,EAAMjC,CAAW,EAE/B,OADerB,EAAQ0B,EAAO1B,CAAK,EAAIsD,GACzBlC,CAAI,CACnB,CAEA,SAASQ,GAAkB5B,EAAmByB,EAAaL,EAAmB,CAC7E,IAAMiB,EAAOC,GAAuBb,EAAQL,CAAI,EAChD,OAAOiB,EACJW,MAASX,EACRA,EAAKW,EAAK,EAGVX,EAAK,KAAK,KAAKrC,EAAMS,CAAM,EAC5B,MACJ,CAEA,SAAS6B,GACRb,EACAL,EACiC,CAEjC,GAAI,EAAEA,KAAQK,GAAS,OACvB,IAAI8B,EAAQL,EAAezB,CAAM,EACjC,KAAO8B,GAAO,CACb,IAAMlB,EAAO,OAAO,yBAAyBkB,EAAOnC,CAAI,EACxD,GAAIiB,EAAM,OAAOA,EACjBkB,EAAQL,EAAeK,CAAK,EAG9B,CAEO,SAASb,EAAY1C,EAAmB,CACzCA,EAAMI,IACVJ,EAAMI,EAAY,GACdJ,EAAMO,GACTmC,EAAY1C,EAAMO,CAAO,EAG5B,CAEO,SAAS0B,EAAYjC,EAAmB,CACzCA,EAAMU,IAGVV,EAAMM,EAAY,IAAI,IACtBN,EAAMU,EAAQ8C,GACbxD,EAAMQ,EACNR,EAAME,EAAOuD,EAAOC,CACrB,EAEF,CCjSO,IAAMC,GAAN,KAAoC,CAK1C,YAAYC,EAIT,CARH,KAAAC,EAAuB,GACvB,KAAAC,EAAoC,GACpC,KAAAC,EAA+B,GAiC/B,aAAoB,CAACC,EAAWC,EAAcC,IAAwB,CAErE,GAAIC,EAAWH,CAAI,GAAK,CAACG,EAAWF,CAAM,EAAG,CAC5C,IAAMG,EAAcH,EACpBA,EAASD,EAET,IAAMK,EAAO,KACb,OAAO,SAENL,EAAOI,KACJE,EACF,CACD,OAAOD,EAAK,QAAQL,EAAOO,GAAmBN,EAAO,KAAK,KAAMM,EAAO,GAAGD,CAAI,CAAC,CAChF,EAGIH,EAAWF,CAAM,GAAGO,EAAI,CAAC,EAC1BN,IAAkB,QAAa,CAACC,EAAWD,CAAa,GAAGM,EAAI,CAAC,EAEpE,IAAIC,EAGJ,GAAIC,EAAYV,CAAI,EAAG,CACtB,IAAMW,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYH,EAAOX,EAAM,MAAS,EAC5Ce,EAAW,GACf,GAAI,CACHN,EAASR,EAAOY,CAAK,EACrBE,EAAW,EACZ,QAAE,CAEGA,EAAUC,GAAYL,CAAK,EAC1BM,GAAWN,CAAK,CACtB,CACA,OAAAO,GAAkBP,EAAOT,CAAa,EAC/BiB,GAAcV,EAAQE,CAAK,UACxB,CAACX,GAAQ,CAACoB,EAAYpB,CAAI,EAAG,CAKvC,GAJAS,EAASR,EAAOD,CAAI,EAChBS,IAAW,SAAWA,EAAST,GAC/BS,IAAWY,IAASZ,EAAS,QAC7B,KAAKZ,GAAayB,GAAOb,EAAQ,EAAI,EACrCP,EAAe,CAClB,IAAMqB,EAAa,CAAC,EACdC,EAAc,CAAC,EACrBC,EAAUC,CAAa,EAAEC,EAA4B3B,EAAMS,EAAQ,CAClEmB,EAAUL,EACVM,CACD,CAAe,EACf3B,EAAcqB,EAAGC,CAAE,EAEpB,OAAOf,OACDD,EAAI,EAAGR,CAAI,CACnB,EAEA,wBAA0C,CAACA,EAAWC,IAAsB,CAE3E,GAAIE,EAAWH,CAAI,EAClB,MAAO,CAAC8B,KAAexB,IACtB,KAAK,mBAAmBwB,EAAQvB,GAAeP,EAAKO,EAAO,GAAGD,CAAI,CAAC,EAGrE,IAAIyB,EAAkBC,EAKtB,MAAO,CAJQ,KAAK,QAAQhC,EAAMC,EAAQ,CAACsB,EAAYC,IAAgB,CACtEO,EAAUR,EACVS,EAAiBR,CAClB,CAAC,EACeO,EAAUC,CAAe,CAC1C,EA7FKC,GAAUrC,GAAQ,UAAU,GAAG,KAAK,cAAcA,EAAQ,UAAU,EACpEqC,GAAUrC,GAAQ,oBAAoB,GACzC,KAAK,wBAAwBA,EAAQ,oBAAoB,EACtDqC,GAAUrC,GAAQ,kBAAkB,GACvC,KAAK,sBAAsBA,EAAQ,kBAAkB,CACvD,CA0FA,YAAiCI,EAAmB,CAC9CU,EAAYV,CAAI,GAAGQ,EAAI,CAAC,EACzB0B,EAAQlC,CAAI,IAAGA,EAAOmC,GAAQnC,CAAI,GACtC,IAAMW,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYH,EAAOX,EAAM,MAAS,EAChD,OAAAa,EAAMuB,CAAW,EAAEC,EAAY,GAC/BpB,GAAWN,CAAK,EACTE,CACR,CAEA,YACCN,EACAL,EACuC,CACvC,IAAM4B,EAAoBvB,GAAUA,EAAc6B,CAAW,GACzD,CAACN,GAAS,CAACA,EAAMO,IAAW7B,EAAI,CAAC,EACrC,GAAM,CAAC8B,EAAQ3B,CAAK,EAAImB,EACxB,OAAAZ,GAAkBP,EAAOT,CAAa,EAC/BiB,GAAc,OAAWR,CAAK,CACtC,CAOA,cAAc4B,EAAgB,CAC7B,KAAK1C,EAAc0C,CACpB,CAOA,wBAAwBA,EAAmB,CAC1C,KAAKzC,EAAwByC,CAC9B,CAQA,sBAAsBA,EAAgB,CACrC,KAAKxC,EAAsBwC,CAC5B,CAEA,0BAAoC,CACnC,OAAO,KAAKxC,CACb,CAEA,aAAkCC,EAAS+B,EAA8B,CAGxE,IAAIS,EACJ,IAAKA,EAAIT,EAAQ,OAAS,EAAGS,GAAK,EAAGA,IAAK,CACzC,IAAMC,EAAQV,EAAQS,CAAC,EACvB,GAAIC,EAAM,KAAK,SAAW,GAAKA,EAAM,KAAO,UAAW,CACtDzC,EAAOyC,EAAM,MACb,OAKED,EAAI,KACPT,EAAUA,EAAQ,MAAMS,EAAI,CAAC,GAG9B,IAAME,EAAmBjB,EAAUC,CAAa,EAAEiB,EAClD,OAAIT,EAAQlC,CAAI,EAER0C,EAAiB1C,EAAM+B,CAAO,EAG/B,KAAK,QAAQ/B,EAAOO,GAC1BmC,EAAiBnC,EAAOwB,CAAO,CAChC,CACD,CACD,EAEO,SAASjB,EACf8B,EACAL,EACAM,EACAC,EACyB,CAIzB,GAAM,CAACvC,EAAOuB,CAAK,EAAIiB,EAAMR,CAAK,EAC/Bd,EAAUuB,CAAY,EAAEC,EAAUV,EAAOM,CAAM,EAC/CK,EAAMX,CAAK,EACXd,EAAUuB,CAAY,EAAEG,EAAUZ,EAAOM,CAAM,EAC/CO,GAAiBb,EAAOM,CAAM,EAGjC,OADcA,GAAQP,GAAUe,EAAgB,GAC1CC,EAAQ,KAAK/C,CAAK,EAIxBuB,EAAMyB,EAAaV,GAAQU,GAAc,CAAC,EAC1CzB,EAAM0B,EAAOV,EAETD,GAAUC,IAAQ,OACrBW,GAAkCZ,EAAQf,EAAOgB,CAAG,EAGpDhB,EAAMyB,EAAW,KAAK,SAA0BX,EAAW,CAC1DA,EAAUc,GAAe,eAAe5B,CAAK,EAE7C,GAAM,CAAC6B,GAAY,EAAIf,EAEnBd,EAAM8B,GAAaD,GACtBA,EAAaE,EAAiB/B,EAAO,CAAC,EAAGc,CAAS,CAEpD,CAAC,EAGKrC,CACR,CClQO,SAASuD,GAAQC,EAAiB,CACxC,OAAKC,EAAQD,CAAK,GAAGE,EAAI,GAAIF,CAAK,EAC3BG,GAAYH,CAAK,CACzB,CAEA,SAASG,GAAYH,EAAiB,CACrC,GAAI,CAACI,EAAYJ,CAAK,GAAKK,GAASL,CAAK,EAAG,OAAOA,EACnD,IAAMM,EAAgCN,EAAMO,CAAW,EACnDC,EACAC,EAAS,GACb,GAAIH,EAAO,CACV,GAAI,CAACA,EAAMI,EAAW,OAAOJ,EAAMK,EAEnCL,EAAMM,EAAa,GACnBJ,EAAOK,GAAYb,EAAOM,EAAMQ,EAAOC,EAAOC,CAAqB,EACnEP,EAASH,EAAMQ,EAAOC,EAAO,yBAAyB,OAEtDP,EAAOK,GAAYb,EAAO,EAAI,EAG/B,OAAAiB,EACCT,EACA,CAACU,EAAKC,IAAe,CACpBC,GAAIZ,EAAMU,EAAKf,GAAYgB,CAAU,CAAC,CACvC,EACAV,CACD,EACIH,IACHA,EAAMM,EAAa,IAEbJ,CACR,CCXO,SAASa,IAAgB,CAe/B,SAASC,EAAQC,EAAmBC,EAAkB,CAAC,EAAqB,CAE3E,GAAID,EAAME,IAAS,OAAW,CAG7B,IAAMC,EAAaH,EAAMI,EAASC,GAASL,EAAMI,EAASE,EACpDC,EAAaC,GAAcC,EAAIN,EAAYH,EAAME,CAAK,CAAC,EACvDQ,EAAaD,EAAIN,EAAYH,EAAME,CAAK,EAe9C,GAbIQ,IAAe,QAOlBA,IAAeV,EAAMW,GACrBD,IAAeV,EAAMM,GACrBI,IAAeV,EAAMK,GAIlBE,GAAc,MAAQA,EAAWD,IAAUN,EAAMM,EACpD,OAAO,KAIR,IAAMM,EAAQZ,EAAMI,EAASS,IAAU,EACnCC,EAEJ,GAAIF,EAAO,CAEV,IAAMG,EAAYf,EAAMI,EACxBU,EAAM,MAAM,KAAKC,EAAUC,EAAQ,KAAK,CAAC,EAAE,QAAQhB,EAAME,CAAI,OAE7DY,EAAMd,EAAME,EAIb,GAAI,EAAGU,GAAST,EAAW,KAAOW,GAAQG,EAAId,EAAYW,CAAG,GAC5D,OAAO,KAIRb,EAAK,KAAKa,CAAG,EAId,GAAId,EAAMI,EACT,OAAOL,EAAQC,EAAMI,EAASH,CAAI,EAInCA,EAAK,QAAQ,EAEb,GAAI,CAEHiB,EAAYlB,EAAMK,EAAOJ,CAAI,CAC9B,MAAE,CACD,OAAO,IACR,CAEA,OAAOA,CACR,CAGA,SAASiB,EAAYC,EAAWlB,EAAsB,CACrD,IAAImB,EAAUD,EACd,QAASE,EAAI,EAAGA,EAAIpB,EAAK,OAAS,EAAGoB,IAAK,CACzC,IAAMP,EAAMb,EAAKoB,CAAC,EAElB,GADAD,EAAUX,EAAIW,EAASN,CAAG,EACtB,CAACQ,EAAYF,CAAO,GAAKA,IAAY,KACxC,MAAM,IAAI,MAAM,2BAA2BnB,EAAK,KAAK,GAAG,IAAI,EAG9D,OAAOmB,CACR,CAEA,IAAMG,EAAU,UACVC,EAAM,MACNC,EAAS,SAEf,SAASC,EACR1B,EACA2B,EACAC,EACO,CACP,GAAI5B,EAAM6B,EAAOC,EAAqB,IAAI9B,CAAK,EAC9C,OAGDA,EAAM6B,EAAOC,EAAqB,IAAI9B,CAAK,EAE3C,GAAM,CAAC+B,IAAUC,GAAe,EAAIJ,EAEpC,OAAQ5B,EAAMa,EAAO,CACpB,OACA,OACC,OAAOoB,EACNjC,EACA2B,EACAI,EACAC,CACD,EACD,OACC,OAAOE,EACNlC,EACA2B,EACAI,EACAC,CACD,EACD,OACC,OAAOG,EACLnC,EACD2B,EACAI,EACAC,CACD,CACF,CACD,CAEA,SAASE,EACRlC,EACA2B,EACAS,EACAC,EACC,CACD,GAAI,CAAC/B,IAAOgC,GAAS,EAAItC,EACrBK,EAAQL,EAAMK,EAGdA,EAAM,OAASC,EAAM,SAEvB,CAACA,EAAOD,CAAK,EAAI,CAACA,EAAOC,CAAK,EAC9B,CAAC8B,EAASC,CAAc,EAAI,CAACA,EAAgBD,CAAO,GAGtD,IAAMG,EAAgBvC,EAAMwC,IAA0B,GAGtD,QAASnB,EAAI,EAAGA,EAAIf,EAAM,OAAQe,IAAK,CACtC,IAAMoB,EAAapC,EAAMgB,CAAC,EACpBqB,EAAWpC,EAAMe,CAAC,EAGxB,IADmBkB,GAAiBD,GAAW,IAAIjB,EAAE,SAAS,CAAC,IAC7CoB,IAAeC,EAAU,CAC1C,IAAMC,EAAaF,IAAaG,CAAW,EAC3C,GAAID,GAAcA,EAAWE,EAE5B,SAED,IAAM5C,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIb,EACJ,KAAAtB,EAGA,MAAO6C,EAAwBL,CAAU,CAC1C,CAAC,EACDJ,EAAe,KAAK,CACnB,GAAId,EACJ,KAAAtB,EACA,MAAO6C,EAAwBJ,CAAQ,CACxC,CAAC,GAKH,QAASrB,EAAIf,EAAM,OAAQe,EAAIhB,EAAM,OAAQgB,IAAK,CACjD,IAAMpB,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIZ,EACJ,KAAAvB,EAGA,MAAO6C,EAAwBzC,EAAMgB,CAAC,CAAC,CACxC,CAAC,EAEF,QAASA,EAAIhB,EAAM,OAAS,EAAGC,EAAM,QAAUe,EAAG,EAAEA,EAAG,CACtD,IAAMpB,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCgB,EAAe,KAAK,CACnB,GAAIZ,EACJ,KAAAxB,CACD,CAAC,EAEH,CAGA,SAASgC,EACRjC,EACA2B,EACAS,EACAC,EACC,CACD,GAAM,CAAC/B,IAAOD,IAAOQ,GAAK,EAAIb,EAC9B+C,EAAK/C,EAAMsC,EAAY,CAACxB,EAAKkC,IAAkB,CAC9C,IAAMC,EAAYxC,EAAIH,EAAOQ,EAAKD,CAAK,EACjCqC,EAAQzC,EAAIJ,EAAQS,EAAKD,CAAK,EAC9BsC,EAAMH,EAAyB/B,EAAIX,EAAOQ,CAAG,EAAIS,EAAUC,EAArCC,EAC5B,GAAIwB,IAAcC,GAASC,IAAO5B,EAAS,OAC3C,IAAMtB,EAAO0B,EAAS,OAAOb,CAAU,EACvCsB,EAAQ,KACPe,IAAO1B,EACJ,CAAC,GAAA0B,EAAI,KAAAlD,CAAI,EACT,CAAC,GAAAkD,EAAI,KAAAlD,EAAM,MAAO6C,EAAwBI,CAAK,CAAC,CACpD,EACAb,EAAe,KACdc,IAAO3B,EACJ,CAAC,GAAIC,EAAQ,KAAAxB,CAAI,EACjBkD,IAAO1B,EACP,CAAC,GAAID,EAAK,KAAAvB,EAAM,MAAO6C,EAAwBG,CAAS,CAAC,EACzD,CAAC,GAAI1B,EAAS,KAAAtB,EAAM,MAAO6C,EAAwBG,CAAS,CAAC,CACjE,CACD,CAAC,CACF,CAEA,SAASd,EACRnC,EACA2B,EACAS,EACAC,EACC,CACD,GAAI,CAAC/B,IAAOD,GAAK,EAAIL,EAEjBqB,EAAI,EACRf,EAAM,QAAS4C,GAAe,CAC7B,GAAI,CAAC7C,EAAO,IAAI6C,CAAK,EAAG,CACvB,IAAMjD,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIX,EACJ,KAAAxB,EACA,MAAAiD,CACD,CAAC,EACDb,EAAe,QAAQ,CACtB,GAAIb,EACJ,KAAAvB,EACA,MAAAiD,CACD,CAAC,EAEF7B,GACD,CAAC,EACDA,EAAI,EACJhB,EAAO,QAAS6C,GAAe,CAC9B,GAAI,CAAC5C,EAAM,IAAI4C,CAAK,EAAG,CACtB,IAAMjD,EAAO0B,EAAS,OAAO,CAACN,CAAC,CAAC,EAChCe,EAAQ,KAAK,CACZ,GAAIZ,EACJ,KAAAvB,EACA,MAAAiD,CACD,CAAC,EACDb,EAAe,QAAQ,CACtB,GAAIZ,EACJ,KAAAxB,EACA,MAAAiD,CACD,CAAC,EAEF7B,GACD,CAAC,CACF,CAEA,SAAS+B,EACRC,EACAC,EACA1B,EACO,CACP,GAAM,CAACG,IAAUC,GAAe,EAAIJ,EACpCG,EAAU,KAAK,CACd,GAAIR,EACJ,KAAM,CAAC,EACP,MAAO+B,IAAgBC,EAAU,OAAYD,CAC9C,CAAC,EACDtB,EAAiB,KAAK,CACrB,GAAIT,EACJ,KAAM,CAAC,EACP,MAAO8B,CACR,CAAC,CACF,CAEA,SAASG,EAAiBC,EAAUrB,EAA8B,CACjE,OAAAA,EAAQ,QAAQsB,GAAS,CACxB,GAAM,CAAC,KAAAzD,EAAM,GAAAkD,CAAE,EAAIO,EAEfvC,EAAYsC,EAChB,QAASpC,EAAI,EAAGA,EAAIpB,EAAK,OAAS,EAAGoB,IAAK,CACzC,IAAMsC,EAAaC,EAAYzC,CAAI,EAC/B0C,EAAI5D,EAAKoB,CAAC,EACV,OAAOwC,GAAM,UAAY,OAAOA,GAAM,WACzCA,EAAI,GAAKA,IAKRF,IAAe,GAAmBA,IAAe,KACjDE,IAAM,aAAeA,IAAMC,KAE5BC,EAAI,GAAc,CAAC,EAChBC,EAAW7C,CAAI,GAAK0C,IAAMI,IAAWF,EAAI,GAAc,CAAC,EAC5D5C,EAAOV,EAAIU,EAAM0C,CAAC,EACbvC,EAAYH,CAAI,GAAG4C,EAAI,GAAc,EAAG9D,EAAK,KAAK,GAAG,CAAC,EAG5D,IAAMiE,EAAON,EAAYzC,CAAI,EACvB+B,EAAQiB,EAAoBT,EAAM,KAAK,EACvC5C,EAAMb,EAAKA,EAAK,OAAS,CAAC,EAChC,OAAQkD,EAAI,CACX,KAAK5B,EACJ,OAAQ2C,EAAM,CACb,OACC,OAAO/C,EAAK,IAAIL,EAAKoC,CAAK,EAE3B,OACCa,EAAI,EAAW,EAChB,QAKC,OAAQ5C,EAAKL,CAAG,EAAIoC,CACtB,CACD,KAAK1B,EACJ,OAAQ0C,EAAM,CACb,OACC,OAAOpD,IAAQ,IACZK,EAAK,KAAK+B,CAAK,EACf/B,EAAK,OAAOL,EAAY,EAAGoC,CAAK,EACpC,OACC,OAAO/B,EAAK,IAAIL,EAAKoC,CAAK,EAC3B,OACC,OAAO/B,EAAK,IAAI+B,CAAK,EACtB,QACC,OAAQ/B,EAAKL,CAAG,EAAIoC,CACtB,CACD,KAAKzB,EACJ,OAAQyC,EAAM,CACb,OACC,OAAO/C,EAAK,OAAOL,EAAY,CAAC,EACjC,OACC,OAAOK,EAAK,OAAOL,CAAG,EACvB,OACC,OAAOK,EAAK,OAAOuC,EAAM,KAAK,EAC/B,QACC,OAAO,OAAOvC,EAAKL,CAAG,CACxB,CACD,QACCiD,EAAI,GAAc,EAAGZ,CAAE,CACzB,CACD,CAAC,EAEMM,CACR,CAMA,SAASU,EAAoBC,EAAU,CACtC,GAAI,CAACC,EAAYD,CAAG,EAAG,OAAOA,EAC9B,GAAIE,EAAQF,CAAG,EAAG,OAAOA,EAAI,IAAID,CAAmB,EACpD,GAAII,EAAMH,CAAG,EACZ,OAAO,IAAI,IACV,MAAM,KAAKA,EAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACI,EAAGC,CAAC,IAAM,CAACD,EAAGL,EAAoBM,CAAC,CAAC,CAAC,CACtE,EACD,GAAI7D,EAAMwD,CAAG,EAAG,OAAO,IAAI,IAAI,MAAM,KAAKA,CAAG,EAAE,IAAID,CAAmB,CAAC,EACvE,IAAMO,EAAS,OAAO,OAAOC,EAAeP,CAAG,CAAC,EAChD,QAAWtD,KAAOsD,EAAKM,EAAO5D,CAAG,EAAIqD,EAAoBC,EAAItD,CAAG,CAAC,EACjE,OAAIG,EAAImD,EAAKQ,CAAS,IAAGF,EAAOE,CAAS,EAAIR,EAAIQ,CAAS,GACnDF,CACR,CAEA,SAAS5B,EAA2BsB,EAAW,CAC9C,OAAIS,EAAQT,CAAG,EACPD,EAAoBC,CAAG,EACjBA,CACf,CAEAU,GAAWC,EAAe,CACzBvB,IACA9B,IACA0B,IACA,QAAArD,CACD,CAAC,CACF,CCxZO,SAASiF,IAAe,CAC9B,MAAMC,UAAiB,GAAI,CAG1B,YAAYC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPC,EAAW,OACXC,EAAOX,EACPY,EAAQ,KACRC,EAAW,GACXC,EAAU,GACVC,EAAY,CAAC,CACd,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKd,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIe,EAAmB,CACtB,OAAOD,EAAO,KAAKd,CAAW,CAAC,EAAE,IAAIe,CAAG,CACzC,CAEA,IAAIA,EAAUC,EAAY,CACzB,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,GACjB,CAACH,EAAOG,CAAK,EAAE,IAAIF,CAAG,GAAKD,EAAOG,CAAK,EAAE,IAAIF,CAAG,IAAMC,KACzDG,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAW,IAAIO,EAAK,EAAI,EAC9BE,EAAMV,EAAO,IAAIQ,EAAKC,CAAK,EAC3BC,EAAMT,EAAW,IAAIO,EAAK,EAAI,EAC9BM,GAAqBJ,EAAOF,EAAKC,CAAK,GAEhC,IACR,CAEA,OAAOD,EAAmB,CACzB,GAAI,CAAC,KAAK,IAAIA,CAAG,EAChB,MAAO,GAGR,IAAME,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACbA,EAAMR,EAAM,IAAIM,CAAG,EACtBE,EAAMT,EAAW,IAAIO,EAAK,EAAK,EAE/BE,EAAMT,EAAW,OAAOO,CAAG,EAE5BE,EAAMV,EAAO,OAAOQ,CAAG,EAChB,EACR,CAEA,OAAQ,CACP,IAAME,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAY,IAAI,IACtBc,EAAKL,EAAMR,EAAOM,GAAO,CACxBE,EAAMT,EAAW,IAAIO,EAAK,EAAK,CAChC,CAAC,EACDE,EAAMV,EAAO,MAAM,EAErB,CAEA,QAAQgB,EAA+CC,EAAe,CACrE,IAAMP,EAAkB,KAAKjB,CAAW,EACxCc,EAAOG,CAAK,EAAE,QAAQ,CAACQ,EAAaV,EAAUW,IAAc,CAC3DH,EAAG,KAAKC,EAAS,KAAK,IAAIT,CAAG,EAAGA,EAAK,IAAI,CAC1C,CAAC,CACF,CAEA,IAAIA,EAAe,CAClB,IAAME,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACrB,IAAMD,EAAQF,EAAOG,CAAK,EAAE,IAAIF,CAAG,EAInC,GAHIE,EAAMX,GAAc,CAACqB,EAAYX,CAAK,GAGtCA,IAAUC,EAAMR,EAAM,IAAIM,CAAG,EAChC,OAAOC,EAGR,IAAMY,EAAQC,EAAYZ,EAAMd,EAAQa,EAAOC,EAAOF,CAAG,EACzD,OAAAI,EAAeF,CAAK,EACpBA,EAAMV,EAAO,IAAIQ,EAAKa,CAAK,EACpBA,CACR,CAEA,MAA8B,CAC7B,OAAOd,EAAO,KAAKd,CAAW,CAAC,EAAE,KAAK,CACvC,CAEA,QAAgC,CAC/B,IAAM8B,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,OAAO,EACrC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,OAAIC,EAAE,KAAaA,EAEZ,CACN,KAAM,GACN,MAHa,KAAK,IAAIA,EAAE,KAAK,CAI9B,CACD,CACD,CACD,CAEA,SAAwC,CACvC,IAAMD,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,QAAQ,EACtC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,GAAIC,EAAE,KAAM,OAAOA,EACnB,IAAMf,EAAQ,KAAK,IAAIe,EAAE,KAAK,EAC9B,MAAO,CACN,KAAM,GACN,MAAO,CAACA,EAAE,MAAOf,CAAK,CACvB,CACD,CACD,CACD,CAEA,EAxIChB,EAwIA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,QAAQ,CACrB,CACD,CAEA,SAASgC,EACRlC,EACAC,EACgB,CAEhB,IAAMkC,EAAM,IAAIpC,EAASC,EAAQC,CAAM,EACvC,MAAO,CAACkC,EAAYA,EAAIjC,CAAW,CAAC,CACrC,CAEA,SAASmB,EAAeF,EAAiB,CACnCA,EAAMV,IACVU,EAAMT,EAAY,IAAI,IACtBS,EAAMV,EAAQ,IAAI,IAAIU,EAAMR,CAAK,EAEnC,CAEA,MAAMyB,UAAiB,GAAI,CAE1B,YAAYpC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPE,EAAOX,EACPY,EAAQ,KACRyB,EAAS,IAAI,IACbvB,EAAU,GACVD,EAAW,GACXH,EAAW,OACXK,EAAY,CAAC,CACd,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKd,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIgB,EAAqB,CACxB,IAAMC,EAAkB,KAAKjB,CAAW,EAGxC,OAFAkB,EAAgBD,CAAK,EAEhBA,EAAMV,EAGP,GAAAU,EAAMV,EAAM,IAAIS,CAAK,GACrBC,EAAMkB,EAAQ,IAAInB,CAAK,GAAKC,EAAMV,EAAM,IAAIU,EAAMkB,EAAQ,IAAInB,CAAK,CAAC,GAHhEC,EAAMR,EAAM,IAAIO,CAAK,CAM9B,CAEA,IAAIA,EAAiB,CACpB,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EAChB,KAAK,IAAID,CAAK,IAClBoB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMV,EAAO,IAAIS,CAAK,EACtBK,GAAqBJ,EAAOD,EAAOA,CAAK,GAElC,IACR,CAEA,OAAOA,EAAiB,CACvB,GAAI,CAAC,KAAK,IAAIA,CAAK,EAClB,MAAO,GAGR,IAAMC,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EAEhBA,EAAMV,EAAO,OAAOS,CAAK,IACxBC,EAAMkB,EAAQ,IAAInB,CAAK,EACrBC,EAAMV,EAAO,OAAOU,EAAMkB,EAAQ,IAAInB,CAAK,CAAC,EACjB,GAEhC,CAEA,OAAQ,CACP,IAAMC,EAAkB,KAAKjB,CAAW,EACxCkB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBmB,EAAenB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMV,EAAO,MAAM,EAErB,CAEA,QAAgC,CAC/B,IAAMU,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACbA,EAAMV,EAAO,OAAO,CAC5B,CAEA,SAAwC,CACvC,IAAMU,EAAkB,KAAKjB,CAAW,EACxC,OAAAkB,EAAgBD,CAAK,EACrBmB,EAAenB,CAAK,EACbA,EAAMV,EAAO,QAAQ,CAC7B,CAEA,MAA8B,CAC7B,OAAO,KAAK,OAAO,CACpB,CAEA,EA9FCP,EA8FA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,OAAO,CACpB,CAEA,QAAQuB,EAASC,EAAe,CAC/B,IAAMM,EAAW,KAAK,OAAO,EACzBO,EAASP,EAAS,KAAK,EAC3B,KAAO,CAACO,EAAO,MACdd,EAAG,KAAKC,EAASa,EAAO,MAAOA,EAAO,MAAO,IAAI,EACjDA,EAASP,EAAS,KAAK,CAEzB,CACD,CACA,SAASQ,EACRxC,EACAC,EACgB,CAEhB,IAAMwC,EAAM,IAAIL,EAASpC,EAAQC,CAAM,EACvC,MAAO,CAACwC,EAAYA,EAAIvC,CAAW,CAAC,CACrC,CAEA,SAASoC,EAAenB,EAAiB,CACnCA,EAAMV,IAEVU,EAAMV,EAAQ,IAAI,IAClBU,EAAMR,EAAM,QAAQO,GAAS,CAC5B,GAAIW,EAAYX,CAAK,EAAG,CACvB,IAAMY,EAAQC,EAAYZ,EAAMd,EAAQa,EAAOC,EAAOD,CAAK,EAC3DC,EAAMkB,EAAQ,IAAInB,EAAOY,CAAK,EAC9BX,EAAMV,EAAO,IAAIqB,CAAK,OAEtBX,EAAMV,EAAO,IAAIS,CAAK,CAExB,CAAC,EAEH,CAEA,SAASE,EAAgBD,EAA+C,CACnEA,EAAML,GAAU4B,EAAI,EAAG,KAAK,UAAU1B,EAAOG,CAAK,CAAC,CAAC,CACzD,CAEA,SAASwB,EAAe3C,EAAoB,CAG3C,GAAIA,EAAOG,IAAU,GAAgBH,EAAOS,EAAO,CAClD,IAAMmC,EAAO,IAAI,IAAI5C,EAAOS,CAAK,EACjCT,EAAOS,EAAM,MAAM,EACnBmC,EAAK,QAAQ1B,GAAS,CACrBlB,EAAOS,EAAO,IAAIoC,GAAS3B,CAAK,CAAC,CAClC,CAAC,EAEH,CAEA4B,GAAWC,EAAc,CAACb,IAAWM,IAAW,eAAAG,CAAc,CAAC,CAChE,CCzOO,SAASK,IAAqB,CACpC,IAAMC,EAAmB,IAAI,IAAyB,CAAC,QAAS,SAAS,CAAC,EAEpEC,EAAgB,IAAI,IAAyB,CAAC,OAAQ,KAAK,CAAC,EAE5DC,EAA2B,IAAI,IAAyB,CAC7D,GAAGD,EACH,GAAGD,CACJ,CAAC,EAEKG,EAAqB,IAAI,IAAyB,CAAC,UAAW,MAAM,CAAC,EAGrEC,EAAmB,IAAI,IAAyB,CACrD,GAAGF,EACH,GAAGC,EACH,QACD,CAAC,EAEKE,EAAe,IAAI,IAA4B,CAAC,OAAQ,UAAU,CAAC,EAEnEC,EAAuB,IAAI,IAA4B,CAC5D,SACA,QACA,SACA,OACA,GAAGD,EACH,YACA,gBACA,OACA,QACA,UACA,cACA,WACA,OACA,WACA,gBACD,CAAC,EAGD,SAASE,EACRC,EACgC,CAChC,OAAOJ,EAAiB,IAAII,CAAa,CAC1C,CAEA,SAASC,EACRD,EACmC,CACnC,OAAOF,EAAqB,IAAIE,CAAa,CAC9C,CAEA,SAASE,EACRF,EACiC,CACjC,OAAOD,EAAsBC,CAAM,GAAKC,EAAyBD,CAAM,CACxE,CAEA,SAASG,EACRC,EACAJ,EACC,CACDI,EAAM,gBAAkBJ,CACzB,CAEA,SAASK,EAAcD,EAAwB,CAC9CA,EAAM,gBAAkB,MACzB,CAGA,SAASE,EACRF,EACAG,EACAC,EAAa,GACT,CACJC,EAAYL,CAAK,EACjB,IAAMM,EAASH,EAAU,EACzB,OAAAI,EAAYP,CAAK,EACbI,GAAYJ,EAAMQ,EAAW,IAAI,SAAU,EAAI,EAC5CF,CACR,CAEA,SAASG,EAAyBT,EAAwB,CACzDA,EAAMU,EAAwB,EAC/B,CAEA,SAASC,EAAoBC,EAAeC,EAAwB,CACnE,OAAID,EAAQ,EACJ,KAAK,IAAIC,EAASD,EAAO,CAAC,EAE3B,KAAK,IAAIA,EAAOC,CAAM,CAC9B,CAWA,SAASC,EACRd,EACAJ,EACAmB,EACC,CACD,OAAOb,EAAmBF,EAAO,IAAM,CACtC,IAAMM,EAAUN,EAAMgB,EAAepB,CAAM,EAAE,GAAGmB,CAAI,EAGpD,OAAI3B,EAAiB,IAAIQ,CAA6B,GACrDa,EAAyBT,CAAK,EAIxBV,EAAyB,IAAIM,CAA6B,EAC9DU,EACAN,EAAMiB,CACV,CAAC,CACF,CAWA,SAASC,EACRlB,EACAJ,EACAmB,EACC,CACD,OAAOb,EACNF,EACA,KACGA,EAAMgB,EAAepB,CAAM,EAAE,GAAGmB,CAAI,EACtCN,EAAyBT,CAAK,EACvBA,EAAMiB,GAEd,EACD,CACD,CAkBA,SAASE,EACRnB,EACAoB,EACC,CACD,OAAO,YAA8BL,EAAa,CAGjD,IAAMnB,EAASwB,EACfrB,EAAeC,EAAOJ,CAAM,EAE5B,GAAI,CAEH,GAAID,EAAsBC,CAAM,EAAG,CAElC,GAAIN,EAAyB,IAAIM,CAAM,EACtC,OAAOkB,EAAsBd,EAAOJ,EAAQmB,CAAI,EAEjD,GAAIxB,EAAmB,IAAIK,CAAM,EAChC,OAAOsB,EAA0BlB,EAAOJ,EAAQmB,CAAI,EAGrD,GAAInB,IAAW,SAAU,CACxB,IAAMyB,EAAMnB,EAAmBF,EAAO,IACrCA,EAAMgB,EAAO,OAAO,GAAID,CAAmC,CAC5D,EACA,OAAAN,EAAyBT,CAAK,EACvBqB,OAIR,QAAOC,EAA2BtB,EAAOJ,EAAQmB,CAAI,CAEvD,QAAE,CAEDd,EAAcD,CAAK,CACpB,CACD,CACD,CA4BA,SAASsB,EACRtB,EACAJ,EACAmB,EACC,CACD,IAAMQ,EAASC,EAAOxB,CAAK,EAG3B,GAAIJ,IAAW,SAAU,CACxB,IAAM6B,EAAYV,EAAK,CAAC,EAClBT,EAAgB,CAAC,EAGvB,QAASoB,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IAC9BD,EAAUF,EAAOG,CAAC,EAAGA,EAAGH,CAAM,GAEjCjB,EAAO,KAAKN,EAAMiB,EAAOS,CAAC,CAAC,EAI7B,OAAOpB,EAGR,GAAIb,EAAa,IAAIG,CAAM,EAAG,CAC7B,IAAM6B,EAAYV,EAAK,CAAC,EAClBY,EAAY/B,IAAW,OACvBgC,EAAOD,EAAY,EAAI,GACvBE,EAAQF,EAAY,EAAIJ,EAAO,OAAS,EAE9C,QAASG,EAAIG,EAAOH,GAAK,GAAKA,EAAIH,EAAO,OAAQG,GAAKE,EACrD,GAAIH,EAAUF,EAAOG,CAAC,EAAGA,EAAGH,CAAM,EACjC,OAAOvB,EAAMiB,EAAOS,CAAC,EAGvB,OAGD,GAAI9B,IAAW,QAAS,CACvB,IAAMkC,EAAWf,EAAK,CAAC,GAAK,EACtBgB,EAAShB,EAAK,CAAC,GAAKQ,EAAO,OAG3BM,EAAQlB,EAAoBmB,EAAUP,EAAO,MAAM,EACnDS,EAAMrB,EAAoBoB,EAAQR,EAAO,MAAM,EAE/CjB,EAAgB,CAAC,EAGvB,QAASoB,GAAIG,EAAOH,GAAIM,EAAKN,KAC5BpB,EAAO,KAAKN,EAAMiB,EAAOS,EAAC,CAAC,EAG5B,OAAOpB,EAQR,OAAOiB,EAAO3B,CAAsC,EAAE,GAAGmB,CAAI,CAC9D,CAEAkB,GAAWC,GAAoB,CAC9B,wBAAAf,EACA,uBAAArB,EACA,sBAAAH,CACD,CAAC,CACF,CChXA,IAAMwC,EAAQ,IAAIC,GAqBLC,GAAoCF,EAAM,QAM1CG,GAA0DH,EAAM,mBAAmB,KAC/FA,CACD,EAOaI,GAAgCJ,EAAM,cAAc,KAAKA,CAAK,EAO9DK,GAA0CL,EAAM,wBAAwB,KACpFA,CACD,EAQaM,GAAwCN,EAAM,sBAAsB,KAChFA,CACD,EAOaO,GAA+BP,EAAM,aAAa,KAAKA,CAAK,EAM5DQ,GAA8BR,EAAM,YAAY,KAAKA,CAAK,EAU1DS,GAA8BT,EAAM,YAAY,KAAKA,CAAK,EAQ5DU,GAAgBC,GAAuBA,EAOvCC,GAAoBD,GAA2BA","names":["NOTHING","DRAFTABLE","DRAFT_STATE","die","error","args","O","getPrototypeOf","CONSTRUCTOR","PROTOTYPE","CONFIGURABLE","ENUMERABLE","WRITABLE","VALUE","isDraft","value","DRAFT_STATE","isDraftable","isPlainObject","isArray","DRAFTABLE","isMap","isSet","objectCtorString","cachedCtorStrings","isObjectish","proto","Ctor","isFunction","ctorString","original","die","base_","each","obj","iter","strict","getArchtype","key","entry","index","thing","state","type_","has","prop","type","get","set","propOrOldValue","is","x","y","target","isBoolean","isArrayIndex","n","getProxyDraft","latest","copy_","getValue","proxyDraft","getFinalValue","modified_","shallowCopy","base","isPlain","descriptors","keys","desc","freeze","deep","isFrozen","dontMutateMethodOverride","_key","dontMutateFrozenCollections","PluginMapSet","PluginPatches","PluginArrayMethods","plugins","getPlugin","pluginKey","plugin","die","isPluginLoaded","loadPlugin","pluginKey","implementation","plugins","currentScope","getCurrentScope","createScope","parent_","immer_","drafts_","canAutoFreeze_","unfinalizedDrafts_","handledSet_","processedForPatches_","mapSetPlugin_","isPluginLoaded","PluginMapSet","getPlugin","arrayMethodsPlugin_","PluginArrayMethods","usePatchesInScope","scope","patchListener","patchPlugin_","PluginPatches","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","revokeDraft","enterScope","immer","draft","state","DRAFT_STATE","type_","revoke_","revoked_","processResult","result","scope","unfinalizedDrafts_","drafts_","baseDraft","DRAFT_STATE","modified_","revokeScope","die","isDraftable","finalize","patchPlugin_","generateReplacementPatches_","base_","maybeFreeze","patches_","patchListener_","inversePatches_","NOTHING","rootScope","value","isFrozen","state","handleValue","handledSet_","isSameScope","finalized_","callbacks_","generatePatchesAndFinalize","copy_","deep","parent_","immer_","autoFreeze_","canAutoFreeze_","freeze","markStateFinalized","scope_","EMPTY_LOCATIONS_RESULT","updateDraftInParent","parent","draftValue","finalizedValue","originalKey","parentCopy","latest","parentType","type_","get","set","draftLocations_","draftLocations","each","key","isDraft","keys","locations","location","registerChildFinalizationCallback","child","mapSetPlugin_","getFinalValue","draft_","allIndicesReassigned_","assigned_","basePath","generatePatches_","handleCrossReference","target","prepareCopy","targetCopy","handledSet","updatedValue","createProxyProxy","base","parent","baseIsArray","isArray","state","type_","scope_","getCurrentScope","modified_","finalized_","assigned_","parent_","base_","draft_","copy_","revoke_","isManual_","callbacks_","target","traps","objectTraps","arrayTraps","revoke","proxy","prop","DRAFT_STATE","arrayPlugin","arrayMethodsPlugin_","isArrayWithStringProp","source","latest","has","readPropFromProto","value","isDraftable","isArrayIndex","peek","prepareCopy","childKey","childDraft","createProxy","desc","getDescriptorFromProto","current","currentState","is","markChanged","handleCrossReference","owner","WRITABLE","CONFIGURABLE","ENUMERABLE","VALUE","die","getPrototypeOf","key","fn","args","draft","proto","shallowCopy","immer_","useStrictShallowCopy_","Immer","config","autoFreeze_","useStrictShallowCopy_","useStrictIteration_","base","recipe","patchListener","isFunction","defaultBase","self","args","draft","die","result","isDraftable","scope","enterScope","proxy","createProxy","hasError","revokeScope","leaveScope","usePatchesInScope","processResult","isObjectish","NOTHING","freeze","p","ip","getPlugin","PluginPatches","generateReplacementPatches_","patches_","inversePatches_","state","patches","inversePatches","isBoolean","isDraft","current","DRAFT_STATE","isManual_","scope_","value","i","patch","applyPatchesImpl","applyPatches_","rootScope","parent","key","isMap","PluginMapSet","proxyMap_","isSet","proxySet_","createProxyProxy","getCurrentScope","drafts_","callbacks_","key_","registerChildFinalizationCallback","mapSetPlugin_","patchPlugin_","modified_","generatePatches_","current","value","isDraft","die","currentImpl","isDraftable","isFrozen","state","DRAFT_STATE","copy","strict","modified_","base_","finalized_","shallowCopy","scope_","immer_","useStrictShallowCopy_","each","key","childValue","set","enablePatches","getPath","state","path","key_","parentCopy","parent_","copy_","base_","proxyDraft","getProxyDraft","get","valueAtKey","draft_","isSet","type_","key","setParent","drafts_","has","resolvePath","base","current","i","isObjectish","REPLACE","ADD","REMOVE","generatePatches_","basePath","scope","scope_","processedForPatches_","patches_","inversePatches_","generatePatchesFromAssigned","generateArrayPatches","generateSetPatches","patches","inversePatches","assigned_","allReassigned","allIndicesReassigned_","copiedItem","baseItem","childState","DRAFT_STATE","modified_","clonePatchValueIfNeeded","each","assignedValue","origValue","value","op","generateReplacementPatches_","baseValue","replacement","NOTHING","applyPatches_","draft","patch","parentType","getArchtype","p","CONSTRUCTOR","die","isFunction","PROTOTYPE","type","deepClonePatchValue","obj","isDraftable","isArray","isMap","k","v","cloned","getPrototypeOf","DRAFTABLE","isDraft","loadPlugin","PluginPatches","enableMapSet","DraftMap","target","parent","DRAFT_STATE","type_","parent_","scope_","getCurrentScope","modified_","finalized_","copy_","assigned_","base_","draft_","isManual_","revoked_","callbacks_","latest","key","value","state","assertUnrevoked","prepareMapCopy","markChanged","handleCrossReference","each","cb","thisArg","_value","_map","isDraftable","draft","createProxy","iterator","r","proxyMap_","map","DraftSet","drafts_","prepareSetCopy","result","proxySet_","set","die","fixSetContents","copy","getValue","loadPlugin","PluginMapSet","enableArrayMethods","SHIFTING_METHODS","QUEUE_METHODS","RESULT_RETURNING_METHODS","REORDERING_METHODS","MUTATING_METHODS","FIND_METHODS","NON_MUTATING_METHODS","isMutatingArrayMethod","method","isNonMutatingArrayMethod","isArrayOperationMethod","enterOperation","state","exitOperation","executeArrayMethod","operation","markLength","prepareCopy","result","markChanged","assigned_","markAllIndicesReassigned","allIndicesReassigned_","normalizeSliceIndex","index","length","handleSimpleOperation","args","copy_","draft_","handleReorderingOperation","createMethodInterceptor","originalMethod","res","handleNonMutatingOperation","source","latest","predicate","i","isForward","step","start","rawStart","rawEnd","end","loadPlugin","PluginArrayMethods","immer","Immer","produce","produceWithPatches","setAutoFreeze","setUseStrictShallowCopy","setUseStrictIteration","applyPatches","createDraft","finishDraft","castDraft","value","castImmutable"]}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/package.json
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-{
-  "name": "immer",
-  "version": "11.1.3",
-  "description": "Create your next immutable state by mutating the current one",
-  "main": "./dist/cjs/index.js",
-  "module": "./dist/immer.legacy-esm.js",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "react-native": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/immer.legacy-esm.js"
-      },
-      "import": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/immer.mjs"
-      },
-      "require": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/cjs/index.js"
-      }
-    }
-  },
-  "jsnext:main": "dist/immer.mjs",
-  "source": "src/immer.ts",
-  "types": "./dist/immer.d.ts",
-  "sideEffects": false,
-  "scripts": {
-    "test": "vitest run && yarn test:build && yarn test:flow",
-    "test:perf": "cd __performance_tests__ && node add-data.mjs && node todo.mjs && node incremental.mjs && node large-obj.mjs",
-    "test:flow": "yarn flow check __tests__/flow",
-    "test:build": "yarn build && vitest run --config vitest.config.build.ts",
-    "test:src": "vitest run",
-    "watch": "vitest",
-    "coverage": "vitest run --coverage",
-    "coveralls": "vitest run --coverage && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls && rm -rf ./coverage",
-    "build": "tsup",
-    "publish-docs": "cd website && GIT_USER=mweststrate USE_SSH=true yarn docusaurus deploy",
-    "start": "cd website && yarn start",
-    "test:size": "yarn build && yarn import-size --report . produce enableMapSet enablePatches enableArrayMethods",
-    "test:sizequick": "yarn build && yarn import-size . produce"
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "pretty-quick --staged"
-    }
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/immerjs/immer.git"
-  },
-  "keywords": [
-    "immutable",
-    "mutable",
-    "copy-on-write"
-  ],
-  "author": "Michel Weststrate <info@michel.codes>",
-  "license": "MIT",
-  "funding": {
-    "type": "opencollective",
-    "url": "https://opencollective.com/immer"
-  },
-  "bugs": {
-    "url": "https://github.com/immerjs/immer/issues"
-  },
-  "homepage": "https://github.com/immerjs/immer#readme",
-  "files": [
-    "dist",
-    "compat",
-    "src"
-  ],
-  "devDependencies": {
-    "@babel/core": "^7.21.3",
-    "@types/node": "^24.3.1",
-    "@vitest/coverage-v8": "2.1.9",
-    "coveralls": "^3.0.0",
-    "cpx2": "^3.0.0",
-    "deep-freeze": "^0.0.1",
-    "flow-bin": "^0.123.0",
-    "husky": "^1.2.0",
-    "immutable": "^3.8.2",
-    "import-size": "^1.0.2",
-    "lodash": "^4.17.4",
-    "lodash.clonedeep": "^4.5.0",
-    "prettier": "1.19.1",
-    "pretty-quick": "^1.8.0",
-    "redux": "^4.0.5",
-    "rimraf": "^2.6.2",
-    "seamless-immutable": "^7.1.3",
-    "semantic-release": "^17.0.2",
-    "tsup": "^6.7.0",
-    "type-plus": "^7.6.2",
-    "typescript": "^5.0.2",
-    "vite": "^5.4.0",
-    "vitest": "^2.0.0"
-  }
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/readme.md
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<img src="images/immer-logo.svg" height="200px" align="right"/>
-
-# Immer
-
-[![npm](https://img.shields.io/npm/v/immer.svg)](https://www.npmjs.com/package/immer) [![Build Status](https://github.com/immerjs/immer/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/immerjs/immer/actions?query=branch%3Amain) [![Coverage Status](https://coveralls.io/repos/github/immerjs/immer/badge.svg?branch=main)](https://coveralls.io/github/immerjs/immer?branch=main) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![OpenCollective](https://opencollective.com/immer/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/immer/sponsors/badge.svg)](#sponsors) [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/immerjs/immer)
-
-_Create the next immutable state tree by simply modifying the current tree_
-
-Winner of the "Breakthrough of the year" [React open source award](https://osawards.com/react/) and "Most impactful contribution" [JavaScript open source award](https://osawards.com/javascript/) in 2019
-
-## Contribute using one-click online setup
-
-You can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:
-
-- clone the immer repo.
-- install the dependencies.
-- run `yarn run start`.
-
-so that you can start coding straight away.
-
-[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
-
-## Documentation
-
-The documentation of this package is hosted at https://immerjs.github.io/immer/
-
-## Support
-
-Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!
-
-## Release notes
-
-https://github.com/immerjs/immer/releases
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {
-	die,
-	isDraft,
-	shallowCopy,
-	each,
-	DRAFT_STATE,
-	set,
-	ImmerState,
-	isDraftable,
-	isFrozen
-} from "../internal"
-
-/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */
-export function current<T>(value: T): T
-export function current(value: any): any {
-	if (!isDraft(value)) die(10, value)
-	return currentImpl(value)
-}
-
-function currentImpl(value: any): any {
-	if (!isDraftable(value) || isFrozen(value)) return value
-	const state: ImmerState | undefined = value[DRAFT_STATE]
-	let copy: any
-	let strict = true // Default to strict for compatibility
-	if (state) {
-		if (!state.modified_) return state.base_
-		// Optimization: avoid generating new drafts during copying
-		state.finalized_ = true
-		copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)
-		strict = state.scope_.immer_.shouldUseStrictIteration()
-	} else {
-		copy = shallowCopy(value, true)
-	}
-	// recurse
-	each(
-		copy,
-		(key, childValue) => {
-			set(copy, key, currentImpl(childValue))
-		},
-		strict
-	)
-	if (state) {
-		state.finalized_ = false
-	}
-	return copy
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,318 +1,0 @@
-import {
-	ImmerScope,
-	DRAFT_STATE,
-	isDraftable,
-	NOTHING,
-	PatchPath,
-	each,
-	freeze,
-	ImmerState,
-	isDraft,
-	SetState,
-	set,
-	ArchType,
-	getPlugin,
-	die,
-	revokeScope,
-	isFrozen,
-	get,
-	Patch,
-	latest,
-	prepareCopy,
-	getFinalValue,
-	getValue,
-	ProxyArrayState
-} from "../internal"
-
-export function processResult(result: any, scope: ImmerScope) {
-	scope.unfinalizedDrafts_ = scope.drafts_.length
-	const baseDraft = scope.drafts_![0]
-	const isReplaced = result !== undefined && result !== baseDraft
-
-	if (isReplaced) {
-		if (baseDraft[DRAFT_STATE].modified_) {
-			revokeScope(scope)
-			die(4)
-		}
-		if (isDraftable(result)) {
-			// Finalize the result in case it contains (or is) a subset of the draft.
-			result = finalize(scope, result)
-		}
-		const {patchPlugin_} = scope
-		if (patchPlugin_) {
-			patchPlugin_.generateReplacementPatches_(
-				baseDraft[DRAFT_STATE].base_,
-				result,
-				scope
-			)
-		}
-	} else {
-		// Finalize the base draft.
-		result = finalize(scope, baseDraft)
-	}
-
-	maybeFreeze(scope, result, true)
-
-	revokeScope(scope)
-	if (scope.patches_) {
-		scope.patchListener_!(scope.patches_, scope.inversePatches_!)
-	}
-	return result !== NOTHING ? result : undefined
-}
-
-function finalize(rootScope: ImmerScope, value: any) {
-	// Don't recurse in tho recursive data structures
-	if (isFrozen(value)) return value
-
-	const state: ImmerState = value[DRAFT_STATE]
-	if (!state) {
-		const finalValue = handleValue(value, rootScope.handledSet_, rootScope)
-		return finalValue
-	}
-
-	// Never finalize drafts owned by another scope
-	if (!isSameScope(state, rootScope)) {
-		return value
-	}
-
-	// Unmodified draft, return the (frozen) original
-	if (!state.modified_) {
-		return state.base_
-	}
-
-	if (!state.finalized_) {
-		// Execute all registered draft finalization callbacks
-		const {callbacks_} = state
-		if (callbacks_) {
-			while (callbacks_.length > 0) {
-				const callback = callbacks_.pop()!
-				callback(rootScope)
-			}
-		}
-
-		generatePatchesAndFinalize(state, rootScope)
-	}
-
-	// By now the root copy has been fully updated throughout its tree
-	return state.copy_
-}
-
-function maybeFreeze(scope: ImmerScope, value: any, deep = false) {
-	// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects
-	if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-		freeze(value, deep)
-	}
-}
-
-function markStateFinalized(state: ImmerState) {
-	state.finalized_ = true
-	state.scope_.unfinalizedDrafts_--
-}
-
-let isSameScope = (state: ImmerState, rootScope: ImmerScope) =>
-	state.scope_ === rootScope
-
-// A reusable empty array to avoid allocations
-const EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []
-
-// Updates all references to a draft in its parent to the finalized value.
-// This handles cases where the same draft appears multiple times in the parent, or has been moved around.
-export function updateDraftInParent(
-	parent: ImmerState,
-	draftValue: any,
-	finalizedValue: any,
-	originalKey?: string | number | symbol
-): void {
-	const parentCopy = latest(parent)
-	const parentType = parent.type_
-
-	// Fast path: Check if draft is still at original key
-	if (originalKey !== undefined) {
-		const currentValue = get(parentCopy, originalKey, parentType)
-		if (currentValue === draftValue) {
-			// Still at original location, just update it
-			set(parentCopy, originalKey, finalizedValue, parentType)
-			return
-		}
-	}
-
-	// Slow path: Build reverse mapping of all children
-	// to their indices in the parent, so that we can
-	// replace all locations where this draft appears.
-	// We only have to build this once per parent.
-	if (!parent.draftLocations_) {
-		const draftLocations = (parent.draftLocations_ = new Map())
-
-		// Use `each` which works on Arrays, Maps, and Objects
-		each(parentCopy, (key, value) => {
-			if (isDraft(value)) {
-				const keys = draftLocations.get(value) || []
-				keys.push(key)
-				draftLocations.set(value, keys)
-			}
-		})
-	}
-
-	// Look up all locations where this draft appears
-	const locations =
-		parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT
-
-	// Update all locations
-	for (const location of locations) {
-		set(parentCopy, location, finalizedValue, parentType)
-	}
-}
-
-// Register a callback to finalize a child draft when the parent draft is finalized.
-// This assumes there is a parent -> child relationship between the two drafts,
-// and we have a key to locate the child in the parent.
-export function registerChildFinalizationCallback(
-	parent: ImmerState,
-	child: ImmerState,
-	key: string | number | symbol
-) {
-	parent.callbacks_.push(function childCleanup(rootScope) {
-		const state: ImmerState = child
-
-		// Can only continue if this is a draft owned by this scope
-		if (!state || !isSameScope(state, rootScope)) {
-			return
-		}
-
-		// Handle potential set value finalization first
-		rootScope.mapSetPlugin_?.fixSetContents(state)
-
-		const finalizedValue = getFinalValue(state)
-
-		// Update all locations in the parent that referenced this draft
-		updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)
-
-		generatePatchesAndFinalize(state, rootScope)
-	})
-}
-
-function generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {
-	const shouldFinalize =
-		state.modified_ &&
-		!state.finalized_ &&
-		(state.type_ === ArchType.Set ||
-			(state.type_ === ArchType.Array &&
-				(state as ProxyArrayState).allIndicesReassigned_) ||
-			(state.assigned_?.size ?? 0) > 0)
-
-	if (shouldFinalize) {
-		const {patchPlugin_} = rootScope
-		if (patchPlugin_) {
-			const basePath = patchPlugin_!.getPath(state)
-
-			if (basePath) {
-				patchPlugin_!.generatePatches_(state, basePath, rootScope)
-			}
-		}
-
-		markStateFinalized(state)
-	}
-}
-
-export function handleCrossReference(
-	target: ImmerState,
-	key: string | number | symbol,
-	value: any
-) {
-	const {scope_} = target
-	// Check if value is a draft from this scope
-	if (isDraft(value)) {
-		const state: ImmerState = value[DRAFT_STATE]
-		if (isSameScope(state, scope_)) {
-			// Register callback to update this location when the draft finalizes
-
-			state.callbacks_.push(function crossReferenceCleanup() {
-				// Update the target location with finalized value
-				prepareCopy(target)
-
-				const finalizedValue = getFinalValue(state)
-
-				updateDraftInParent(target, value, finalizedValue, key)
-			})
-		}
-	} else if (isDraftable(value)) {
-		// Handle non-draft objects that might contain drafts
-		target.callbacks_.push(function nestedDraftCleanup() {
-			const targetCopy = latest(target)
-
-			// For Sets, check if value is still in the set
-			if (target.type_ === ArchType.Set) {
-				if (targetCopy.has(value)) {
-					// Process the value to replace any nested drafts
-					handleValue(value, scope_.handledSet_, scope_)
-				}
-			} else {
-				// Maps/objects
-				if (get(targetCopy, key, target.type_) === value) {
-					if (
-						scope_.drafts_.length > 1 &&
-						((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??
-							false) === true &&
-						target.copy_
-					) {
-						// This might be a non-draft value that has drafts
-						// inside. We do need to recurse here to handle those.
-						handleValue(
-							get(target.copy_, key, target.type_),
-							scope_.handledSet_,
-							scope_
-						)
-					}
-				}
-			}
-		})
-	}
-}
-
-export function handleValue(
-	target: any,
-	handledSet: Set<any>,
-	rootScope: ImmerScope
-) {
-	if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-		// optimization: if an object is not a draft, and we don't have to
-		// deepfreeze everything, and we are sure that no drafts are left in the remaining object
-		// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.
-		// This benefits especially adding large data tree's without further processing.
-		// See add-data.js perf test
-		return target
-	}
-
-	// Skip if already handled, frozen, or not draftable
-	if (
-		isDraft(target) ||
-		handledSet.has(target) ||
-		!isDraftable(target) ||
-		isFrozen(target)
-	) {
-		return target
-	}
-
-	handledSet.add(target)
-
-	// Process ALL properties/entries
-	each(target, (key, value) => {
-		if (isDraft(value)) {
-			const state: ImmerState = value[DRAFT_STATE]
-			if (isSameScope(state, rootScope)) {
-				// Replace draft with finalized value
-
-				const updatedValue = getFinalValue(state)
-
-				set(target, key, updatedValue, target.type_)
-
-				markStateFinalized(state)
-			}
-		} else if (isDraftable(value)) {
-			// Recursively handle nested values
-			handleValue(value, handledSet, rootScope)
-		}
-	})
-
-	return target
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,273 +1,0 @@
-import {
-	IProduceWithPatches,
-	IProduce,
-	ImmerState,
-	Drafted,
-	isDraftable,
-	processResult,
-	Patch,
-	Objectish,
-	DRAFT_STATE,
-	Draft,
-	PatchListener,
-	isDraft,
-	isMap,
-	isSet,
-	createProxyProxy,
-	getPlugin,
-	die,
-	enterScope,
-	revokeScope,
-	leaveScope,
-	usePatchesInScope,
-	getCurrentScope,
-	NOTHING,
-	freeze,
-	current,
-	ImmerScope,
-	registerChildFinalizationCallback,
-	ArchType,
-	MapSetPlugin,
-	AnyMap,
-	AnySet,
-	isObjectish,
-	isFunction,
-	isBoolean,
-	PluginMapSet,
-	PluginPatches
-} from "../internal"
-
-interface ProducersFns {
-	produce: IProduce
-	produceWithPatches: IProduceWithPatches
-}
-
-export type StrictMode = boolean | "class_only"
-
-export class Immer implements ProducersFns {
-	autoFreeze_: boolean = true
-	useStrictShallowCopy_: StrictMode = false
-	useStrictIteration_: boolean = false
-
-	constructor(config?: {
-		autoFreeze?: boolean
-		useStrictShallowCopy?: StrictMode
-		useStrictIteration?: boolean
-	}) {
-		if (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)
-		if (isBoolean(config?.useStrictShallowCopy))
-			this.setUseStrictShallowCopy(config!.useStrictShallowCopy)
-		if (isBoolean(config?.useStrictIteration))
-			this.setUseStrictIteration(config!.useStrictIteration)
-	}
-
-	/**
-	 * The `produce` function takes a value and a "recipe function" (whose
-	 * return value often depends on the base state). The recipe function is
-	 * free to mutate its first argument however it wants. All mutations are
-	 * only ever applied to a __copy__ of the base state.
-	 *
-	 * Pass only a function to create a "curried producer" which relieves you
-	 * from passing the recipe function every time.
-	 *
-	 * Only plain objects and arrays are made mutable. All other objects are
-	 * considered uncopyable.
-	 *
-	 * Note: This function is __bound__ to its `Immer` instance.
-	 *
-	 * @param {any} base - the initial state
-	 * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-	 * @param {Function} patchListener - optional function that will be called with all the patches produced here
-	 * @returns {any} a new state, or the initial state if nothing was modified
-	 */
-	produce: IProduce = (base: any, recipe?: any, patchListener?: any) => {
-		// curried invocation
-		if (isFunction(base) && !isFunction(recipe)) {
-			const defaultBase = recipe
-			recipe = base
-
-			const self = this
-			return function curriedProduce(
-				this: any,
-				base = defaultBase,
-				...args: any[]
-			) {
-				return self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore
-			}
-		}
-
-		if (!isFunction(recipe)) die(6)
-		if (patchListener !== undefined && !isFunction(patchListener)) die(7)
-
-		let result
-
-		// Only plain objects, arrays, and "immerable classes" are drafted.
-		if (isDraftable(base)) {
-			const scope = enterScope(this)
-			const proxy = createProxy(scope, base, undefined)
-			let hasError = true
-			try {
-				result = recipe(proxy)
-				hasError = false
-			} finally {
-				// finally instead of catch + rethrow better preserves original stack
-				if (hasError) revokeScope(scope)
-				else leaveScope(scope)
-			}
-			usePatchesInScope(scope, patchListener)
-			return processResult(result, scope)
-		} else if (!base || !isObjectish(base)) {
-			result = recipe(base)
-			if (result === undefined) result = base
-			if (result === NOTHING) result = undefined
-			if (this.autoFreeze_) freeze(result, true)
-			if (patchListener) {
-				const p: Patch[] = []
-				const ip: Patch[] = []
-				getPlugin(PluginPatches).generateReplacementPatches_(base, result, {
-					patches_: p,
-					inversePatches_: ip
-				} as ImmerScope) // dummy scope
-				patchListener(p, ip)
-			}
-			return result
-		} else die(1, base)
-	}
-
-	produceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {
-		// curried invocation
-		if (isFunction(base)) {
-			return (state: any, ...args: any[]) =>
-				this.produceWithPatches(state, (draft: any) => base(draft, ...args))
-		}
-
-		let patches: Patch[], inversePatches: Patch[]
-		const result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {
-			patches = p
-			inversePatches = ip
-		})
-		return [result, patches!, inversePatches!]
-	}
-
-	createDraft<T extends Objectish>(base: T): Draft<T> {
-		if (!isDraftable(base)) die(8)
-		if (isDraft(base)) base = current(base)
-		const scope = enterScope(this)
-		const proxy = createProxy(scope, base, undefined)
-		proxy[DRAFT_STATE].isManual_ = true
-		leaveScope(scope)
-		return proxy as any
-	}
-
-	finishDraft<D extends Draft<any>>(
-		draft: D,
-		patchListener?: PatchListener
-	): D extends Draft<infer T> ? T : never {
-		const state: ImmerState = draft && (draft as any)[DRAFT_STATE]
-		if (!state || !state.isManual_) die(9)
-		const {scope_: scope} = state
-		usePatchesInScope(scope, patchListener)
-		return processResult(undefined, scope)
-	}
-
-	/**
-	 * Pass true to automatically freeze all copies created by Immer.
-	 *
-	 * By default, auto-freezing is enabled.
-	 */
-	setAutoFreeze(value: boolean) {
-		this.autoFreeze_ = value
-	}
-
-	/**
-	 * Pass true to enable strict shallow copy.
-	 *
-	 * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-	 */
-	setUseStrictShallowCopy(value: StrictMode) {
-		this.useStrictShallowCopy_ = value
-	}
-
-	/**
-	 * Pass false to use faster iteration that skips non-enumerable properties
-	 * but still handles symbols for compatibility.
-	 *
-	 * By default, strict iteration is enabled (includes all own properties).
-	 */
-	setUseStrictIteration(value: boolean) {
-		this.useStrictIteration_ = value
-	}
-
-	shouldUseStrictIteration(): boolean {
-		return this.useStrictIteration_
-	}
-
-	applyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {
-		// If a patch replaces the entire state, take that replacement as base
-		// before applying patches
-		let i: number
-		for (i = patches.length - 1; i >= 0; i--) {
-			const patch = patches[i]
-			if (patch.path.length === 0 && patch.op === "replace") {
-				base = patch.value
-				break
-			}
-		}
-		// If there was a patch that replaced the entire state, start from the
-		// patch after that.
-		if (i > -1) {
-			patches = patches.slice(i + 1)
-		}
-
-		const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_
-		if (isDraft(base)) {
-			// N.B: never hits if some patch a replacement, patches are never drafts
-			return applyPatchesImpl(base, patches)
-		}
-		// Otherwise, produce a copy of the base state.
-		return this.produce(base, (draft: Drafted) =>
-			applyPatchesImpl(draft, patches)
-		)
-	}
-}
-
-export function createProxy<T extends Objectish>(
-	rootScope: ImmerScope,
-	value: T,
-	parent?: ImmerState,
-	key?: string | number | symbol
-): Drafted<T, ImmerState> {
-	// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft
-	// returning a tuple here lets us skip a proxy access
-	// to DRAFT_STATE later
-	const [draft, state] = isMap(value)
-		? getPlugin(PluginMapSet).proxyMap_(value, parent)
-		: isSet(value)
-		? getPlugin(PluginMapSet).proxySet_(value, parent)
-		: createProxyProxy(value, parent)
-
-	const scope = parent?.scope_ ?? getCurrentScope()
-	scope.drafts_.push(draft)
-
-	// Ensure the parent callbacks are passed down so we actually
-	// track all callbacks added throughout the tree
-	state.callbacks_ = parent?.callbacks_ ?? []
-	state.key_ = key
-
-	if (parent && key !== undefined) {
-		registerChildFinalizationCallback(parent, state, key)
-	} else {
-		// It's a root draft, register it with the scope
-		state.callbacks_.push(function rootDraftCleanup(rootScope) {
-			rootScope.mapSetPlugin_?.fixSetContents(state)
-
-			const {patchPlugin_} = rootScope
-
-			if (state.modified_ && patchPlugin_) {
-				patchPlugin_.generatePatches_(state, [], rootScope)
-			}
-		})
-	}
-
-	return draft as any
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,336 +1,0 @@
-import {
-	has,
-	is,
-	isDraftable,
-	shallowCopy,
-	latest,
-	ImmerBaseState,
-	ImmerState,
-	Drafted,
-	AnyObject,
-	AnyArray,
-	Objectish,
-	getCurrentScope,
-	getPrototypeOf,
-	DRAFT_STATE,
-	die,
-	createProxy,
-	ArchType,
-	handleCrossReference,
-	WRITABLE,
-	CONFIGURABLE,
-	ENUMERABLE,
-	VALUE,
-	isArray,
-	isArrayIndex
-} from "../internal"
-
-interface ProxyBaseState extends ImmerBaseState {
-	parent_?: ImmerState
-	revoke_(): void
-}
-
-export interface ProxyObjectState extends ProxyBaseState {
-	type_: ArchType.Object
-	base_: any
-	copy_: any
-	draft_: Drafted<AnyObject, ProxyObjectState>
-}
-
-export interface ProxyArrayState extends ProxyBaseState {
-	type_: ArchType.Array
-	base_: AnyArray
-	copy_: AnyArray | null
-	draft_: Drafted<AnyArray, ProxyArrayState>
-	operationMethod?: string
-	allIndicesReassigned_?: boolean
-}
-
-type ProxyState = ProxyObjectState | ProxyArrayState
-
-/**
- * Returns a new draft of the `base` object.
- *
- * The second argument is the parent draft-state (used internally).
- */
-export function createProxyProxy<T extends Objectish>(
-	base: T,
-	parent?: ImmerState
-): [Drafted<T, ProxyState>, ProxyState] {
-	const baseIsArray = isArray(base)
-	const state: ProxyState = {
-		type_: baseIsArray ? ArchType.Array : (ArchType.Object as any),
-		// Track which produce call this is associated with.
-		scope_: parent ? parent.scope_ : getCurrentScope()!,
-		// True for both shallow and deep changes.
-		modified_: false,
-		// Used during finalization.
-		finalized_: false,
-		// Track which properties have been assigned (true) or deleted (false).
-		// actually instantiated in `prepareCopy()`
-		assigned_: undefined,
-		// The parent draft state.
-		parent_: parent,
-		// The base state.
-		base_: base,
-		// The base proxy.
-		draft_: null as any, // set below
-		// The base copy with any updated values.
-		copy_: null,
-		// Called by the `produce` function.
-		revoke_: null as any,
-		isManual_: false,
-		// `callbacks` actually gets assigned in `createProxy`
-		callbacks_: undefined as any
-	}
-
-	// the traps must target something, a bit like the 'real' base.
-	// but also, we need to be able to determine from the target what the relevant state is
-	// (to avoid creating traps per instance to capture the state in closure,
-	// and to avoid creating weird hidden properties as well)
-	// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)
-	// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb
-	let target: T = state as any
-	let traps: ProxyHandler<object | Array<any>> = objectTraps
-	if (baseIsArray) {
-		target = [state] as any
-		traps = arrayTraps
-	}
-
-	const {revoke, proxy} = Proxy.revocable(target, traps)
-	state.draft_ = proxy as any
-	state.revoke_ = revoke
-	return [proxy as any, state]
-}
-
-/**
- * Object drafts
- */
-export const objectTraps: ProxyHandler<ProxyState> = {
-	get(state, prop) {
-		if (prop === DRAFT_STATE) return state
-
-		let arrayPlugin = state.scope_.arrayMethodsPlugin_
-		const isArrayWithStringProp =
-			state.type_ === ArchType.Array && typeof prop === "string"
-		// Intercept array methods so that we can override
-		// behavior and skip proxy creation for perf
-		if (isArrayWithStringProp) {
-			if (arrayPlugin?.isArrayOperationMethod(prop)) {
-				return arrayPlugin.createMethodInterceptor(state, prop)
-			}
-		}
-
-		const source = latest(state)
-		if (!has(source, prop, state.type_)) {
-			// non-existing or non-own property...
-			return readPropFromProto(state, source, prop)
-		}
-		const value = source[prop]
-		if (state.finalized_ || !isDraftable(value)) {
-			return value
-		}
-
-		// During mutating array operations, defer proxy creation for array elements
-		// This optimization avoids creating unnecessary proxies during sort/reverse
-		if (
-			isArrayWithStringProp &&
-			(state as ProxyArrayState).operationMethod &&
-			arrayPlugin?.isMutatingArrayMethod(
-				(state as ProxyArrayState).operationMethod!
-			) &&
-			isArrayIndex(prop)
-		) {
-			// Return raw value during mutating operations, create proxy only if modified
-			return value
-		}
-		// Check for existing draft in modified state.
-		// Assigned values are never drafted. This catches any drafts we created, too.
-		if (value === peek(state.base_, prop)) {
-			prepareCopy(state)
-			// Ensure array keys are always numbers
-			const childKey = state.type_ === ArchType.Array ? +(prop as string) : prop
-			const childDraft = createProxy(state.scope_, value, state, childKey)
-
-			return (state.copy_![childKey] = childDraft)
-		}
-		return value
-	},
-	has(state, prop) {
-		return prop in latest(state)
-	},
-	ownKeys(state) {
-		return Reflect.ownKeys(latest(state))
-	},
-	set(
-		state: ProxyObjectState,
-		prop: string /* strictly not, but helps TS */,
-		value
-	) {
-		const desc = getDescriptorFromProto(latest(state), prop)
-		if (desc?.set) {
-			// special case: if this write is captured by a setter, we have
-			// to trigger it with the correct context
-			desc.set.call(state.draft_, value)
-			return true
-		}
-		if (!state.modified_) {
-			// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)
-			// from setting an existing property with value undefined to undefined (which is not a change)
-			const current = peek(latest(state), prop)
-			// special case, if we assigning the original value to a draft, we can ignore the assignment
-			const currentState: ProxyObjectState = current?.[DRAFT_STATE]
-			if (currentState && currentState.base_ === value) {
-				state.copy_![prop] = value
-				state.assigned_!.set(prop, false)
-				return true
-			}
-			if (
-				is(value, current) &&
-				(value !== undefined || has(state.base_, prop, state.type_))
-			)
-				return true
-			prepareCopy(state)
-			markChanged(state)
-		}
-
-		if (
-			(state.copy_![prop] === value &&
-				// special case: handle new props with value 'undefined'
-				(value !== undefined || prop in state.copy_)) ||
-			// special case: NaN
-			(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))
-		)
-			return true
-
-		// @ts-ignore
-		state.copy_![prop] = value
-		state.assigned_!.set(prop, true)
-
-		handleCrossReference(state, prop, value)
-		return true
-	},
-	deleteProperty(state, prop: string) {
-		prepareCopy(state)
-		// The `undefined` check is a fast path for pre-existing keys.
-		if (peek(state.base_, prop) !== undefined || prop in state.base_) {
-			state.assigned_!.set(prop, false)
-			markChanged(state)
-		} else {
-			// if an originally not assigned property was deleted
-			state.assigned_!.delete(prop)
-		}
-		if (state.copy_) {
-			delete state.copy_[prop]
-		}
-		return true
-	},
-	// Note: We never coerce `desc.value` into an Immer draft, because we can't make
-	// the same guarantee in ES5 mode.
-	getOwnPropertyDescriptor(state, prop) {
-		const owner = latest(state)
-		const desc = Reflect.getOwnPropertyDescriptor(owner, prop)
-		if (!desc) return desc
-		return {
-			[WRITABLE]: true,
-			[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== "length",
-			[ENUMERABLE]: desc[ENUMERABLE],
-			[VALUE]: owner[prop]
-		}
-	},
-	defineProperty() {
-		die(11)
-	},
-	getPrototypeOf(state) {
-		return getPrototypeOf(state.base_)
-	},
-	setPrototypeOf() {
-		die(12)
-	}
-}
-
-/**
- * Array drafts
- */
-
-const arrayTraps: ProxyHandler<[ProxyArrayState]> = {}
-// Use `for..in` instead of `each` to work around a weird
-// prod test suite issue
-for (let key in objectTraps) {
-	let fn = objectTraps[key as keyof typeof objectTraps] as Function
-	// @ts-ignore
-	arrayTraps[key] = function() {
-		const args = arguments
-		args[0] = args[0][0]
-		return fn.apply(this, args)
-	}
-}
-arrayTraps.deleteProperty = function(state, prop) {
-	if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop as any)))
-		die(13)
-	// @ts-ignore
-	return arrayTraps.set!.call(this, state, prop, undefined)
-}
-arrayTraps.set = function(state, prop, value) {
-	if (
-		process.env.NODE_ENV !== "production" &&
-		prop !== "length" &&
-		isNaN(parseInt(prop as any))
-	)
-		die(14)
-	return objectTraps.set!.call(this, state[0], prop, value, state[0])
-}
-
-// Access a property without creating an Immer draft.
-function peek(draft: Drafted, prop: PropertyKey) {
-	const state = draft[DRAFT_STATE]
-	const source = state ? latest(state) : draft
-	return source[prop]
-}
-
-function readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {
-	const desc = getDescriptorFromProto(source, prop)
-	return desc
-		? VALUE in desc
-			? desc[VALUE]
-			: // This is a very special case, if the prop is a getter defined by the
-			  // prototype, we should invoke it with the draft as context!
-			  desc.get?.call(state.draft_)
-		: undefined
-}
-
-function getDescriptorFromProto(
-	source: any,
-	prop: PropertyKey
-): PropertyDescriptor | undefined {
-	// 'in' checks proto!
-	if (!(prop in source)) return undefined
-	let proto = getPrototypeOf(source)
-	while (proto) {
-		const desc = Object.getOwnPropertyDescriptor(proto, prop)
-		if (desc) return desc
-		proto = getPrototypeOf(proto)
-	}
-	return undefined
-}
-
-export function markChanged(state: ImmerState) {
-	if (!state.modified_) {
-		state.modified_ = true
-		if (state.parent_) {
-			markChanged(state.parent_)
-		}
-	}
-}
-
-export function prepareCopy(state: ImmerState) {
-	if (!state.copy_) {
-		// Actually create the `assigned_` map now that we
-		// know this is a modified draft.
-		state.assigned_ = new Map()
-		state.copy_ = shallowCopy(
-			state.base_,
-			state.scope_.immer_.useStrictShallowCopy_
-		)
-	}
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-import {
-	Patch,
-	PatchListener,
-	Drafted,
-	Immer,
-	DRAFT_STATE,
-	ImmerState,
-	ArchType,
-	getPlugin,
-	PatchesPlugin,
-	MapSetPlugin,
-	isPluginLoaded,
-	PluginMapSet,
-	PluginPatches,
-	ArrayMethodsPlugin,
-	PluginArrayMethods
-} from "../internal"
-
-/** Each scope represents a `produce` call. */
-
-export interface ImmerScope {
-	patches_?: Patch[]
-	inversePatches_?: Patch[]
-	patchPlugin_?: PatchesPlugin
-	mapSetPlugin_?: MapSetPlugin
-	arrayMethodsPlugin_?: ArrayMethodsPlugin
-	canAutoFreeze_: boolean
-	drafts_: any[]
-	parent_?: ImmerScope
-	patchListener_?: PatchListener
-	immer_: Immer
-	unfinalizedDrafts_: number
-	handledSet_: Set<any>
-	processedForPatches_: Set<any>
-}
-
-let currentScope: ImmerScope | undefined
-
-export let getCurrentScope = () => currentScope!
-
-let createScope = (
-	parent_: ImmerScope | undefined,
-	immer_: Immer
-): ImmerScope => ({
-	drafts_: [],
-	parent_,
-	immer_,
-	// Whenever the modified draft contains a draft from another scope, we
-	// need to prevent auto-freezing so the unowned draft can be finalized.
-	canAutoFreeze_: true,
-	unfinalizedDrafts_: 0,
-	handledSet_: new Set(),
-	processedForPatches_: new Set(),
-	mapSetPlugin_: isPluginLoaded(PluginMapSet)
-		? getPlugin(PluginMapSet)
-		: undefined,
-	arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)
-		? getPlugin(PluginArrayMethods)
-		: undefined
-})
-
-export function usePatchesInScope(
-	scope: ImmerScope,
-	patchListener?: PatchListener
-) {
-	if (patchListener) {
-		scope.patchPlugin_ = getPlugin(PluginPatches) // assert we have the plugin
-		scope.patches_ = []
-		scope.inversePatches_ = []
-		scope.patchListener_ = patchListener
-	}
-}
-
-export function revokeScope(scope: ImmerScope) {
-	leaveScope(scope)
-	scope.drafts_.forEach(revokeDraft)
-	// @ts-ignore
-	scope.drafts_ = null
-}
-
-export function leaveScope(scope: ImmerScope) {
-	if (scope === currentScope) {
-		currentScope = scope.parent_
-	}
-}
-
-export let enterScope = (immer: Immer) =>
-	(currentScope = createScope(currentScope, immer))
-
-function revokeDraft(draft: Drafted) {
-	const state: ImmerState = draft[DRAFT_STATE]
-	if (state.type_ === ArchType.Object || state.type_ === ArchType.Array)
-		state.revoke_()
-	else state.revoked_ = true
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-import {
-	IProduce,
-	IProduceWithPatches,
-	Immer,
-	Draft,
-	Immutable
-} from "./internal"
-
-export {
-	Draft,
-	WritableDraft,
-	Immutable,
-	Patch,
-	PatchListener,
-	Producer,
-	original,
-	current,
-	isDraft,
-	isDraftable,
-	NOTHING as nothing,
-	DRAFTABLE as immerable,
-	freeze,
-	Objectish,
-	StrictMode
-} from "./internal"
-
-const immer = new Immer()
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-export const produce: IProduce = /* @__PURE__ */ immer.produce
-
-/**
- * Like `produce`, but `produceWithPatches` always returns a tuple
- * [nextState, patches, inversePatches] (instead of just the next state)
- */
-export const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-	immer
-)
-
-/**
- * Pass true to automatically freeze all copies created by Immer.
- *
- * Always freeze by default, even in production mode
- */
-export const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)
-
-/**
- * Pass true to enable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-export const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-	immer
-)
-
-/**
- * Pass false to use loose iteration that only processes enumerable string properties.
- * This skips symbols and non-enumerable properties for maximum performance.
- *
- * By default, strict iteration is enabled (includes all own properties).
- */
-export const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-	immer
-)
-
-/**
- * Apply an array of Immer patches to the first argument.
- *
- * This function is a producer, which means copy-on-write is in effect.
- */
-export const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)
-
-/**
- * Create an Immer draft from the given base state, which may be a draft itself.
- * The draft can be modified until you finalize it with the `finishDraft` function.
- */
-export const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)
-
-/**
- * Finalize an Immer draft from a `createDraft` call, returning the base state
- * (if no changes were made) or a modified copy. The draft must *not* be
- * mutated afterwards.
- *
- * Pass a function as the 2nd argument to generate Immer patches based on the
- * changes that were made.
- */
-export const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)
-
-/**
- * This function is actually a no-op, but can be used to cast an immutable type
- * to an draft type and make TypeScript happy
- *
- * @param value
- */
-export let castDraft = <T>(value: T): Draft<T> => value as any
-
-/**
- * This function is actually a no-op, but can be used to cast a mutable type
- * to an immutable type and make TypeScript happy
- * @param value
- */
-export let castImmutable = <T>(value: T): Immutable<T> => value as any
-
-export {Immer}
-
-export {enablePatches} from "./plugins/patches"
-export {enableMapSet} from "./plugins/mapset"
-export {enableArrayMethods} from "./plugins/arrayMethods"
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/internal.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/internal.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export * from "./utils/env"
-export * from "./utils/errors"
-export * from "./types/types-external"
-export * from "./types/types-internal"
-export * from "./utils/common"
-export * from "./utils/plugins"
-export * from "./core/scope"
-export * from "./core/finalize"
-export * from "./core/proxy"
-export * from "./core/immerClass"
-export * from "./core/current"
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/arrayMethods.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/arrayMethods.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,395 +1,0 @@
-import {
-	PluginArrayMethods,
-	latest,
-	loadPlugin,
-	markChanged,
-	prepareCopy,
-	ProxyArrayState
-} from "../internal"
-
-/**
- * Methods that directly modify the array in place.
- * These operate on the copy without creating per-element proxies:
- * - `push`, `pop`: Add/remove from end
- * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)
- * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)
- * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)
- */
-type MutatingArrayMethod =
-	| "push"
-	| "pop"
-	| "shift"
-	| "unshift"
-	| "splice"
-	| "reverse"
-	| "sort"
-
-/**
- * Methods that read from the array without modifying it.
- * These fall into distinct categories based on return semantics:
- *
- * **Subset operations** (return drafts - mutations propagate):
- * - `filter`, `slice`: Return array of draft proxies
- * - `find`, `findLast`: Return single draft proxy or undefined
- *
- * **Transform operations** (return base values - mutations don't track):
- * - `concat`, `flat`: Create new structures, not subsets of original
- *
- * **Primitive-returning** (no draft needed):
- * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers
- * - `some`, `every`, `includes`: Return booleans
- * - `join`, `toString`, `toLocaleString`: Return strings
- */
-type NonMutatingArrayMethod =
-	| "filter"
-	| "slice"
-	| "concat"
-	| "flat"
-	| "find"
-	| "findIndex"
-	| "findLast"
-	| "findLastIndex"
-	| "some"
-	| "every"
-	| "indexOf"
-	| "lastIndexOf"
-	| "includes"
-	| "join"
-	| "toString"
-	| "toLocaleString"
-
-/** Union of all array operation methods handled by the plugin. */
-export type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod
-
-/**
- * Enables optimized array method handling for Immer drafts.
- *
- * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,
- * significantly improving performance for array-heavy operations.
- *
- * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):
- * Operate directly on the copy without creating per-element proxies.
- *
- * **Non-mutating methods** fall into categories:
- * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track
- * - **Transform operations** (concat, flat): Return base values - mutations don't track
- * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives
- *
- * **Important**: Callbacks for overridden methods receive base values, not drafts.
- * This is the core performance optimization.
- *
- * @example
- * ```ts
- * import { enableArrayMethods, produce } from "immer"
- *
- * enableArrayMethods()
- *
- * const next = produce(state, draft => {
- *   // Optimized - no proxy creation per element
- *   draft.items.sort((a, b) => a.value - b.value)
- *
- *   // filter returns drafts - mutations propagate
- *   const filtered = draft.items.filter(x => x.value > 5)
- *   filtered[0].value = 999 // Affects draft.items[originalIndex]
- * })
- * ```
- *
- * @see https://immerjs.github.io/immer/array-methods
- */
-export function enableArrayMethods() {
-	const SHIFTING_METHODS = new Set<MutatingArrayMethod>(["shift", "unshift"])
-
-	const QUEUE_METHODS = new Set<MutatingArrayMethod>(["push", "pop"])
-
-	const RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([
-		...QUEUE_METHODS,
-		...SHIFTING_METHODS
-	])
-
-	const REORDERING_METHODS = new Set<MutatingArrayMethod>(["reverse", "sort"])
-
-	// Optimized method detection using array-based lookup
-	const MUTATING_METHODS = new Set<MutatingArrayMethod>([
-		...RESULT_RETURNING_METHODS,
-		...REORDERING_METHODS,
-		"splice"
-	])
-
-	const FIND_METHODS = new Set<NonMutatingArrayMethod>(["find", "findLast"])
-
-	const NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([
-		"filter",
-		"slice",
-		"concat",
-		"flat",
-		...FIND_METHODS,
-		"findIndex",
-		"findLastIndex",
-		"some",
-		"every",
-		"indexOf",
-		"lastIndexOf",
-		"includes",
-		"join",
-		"toString",
-		"toLocaleString"
-	])
-
-	// Type guard for method detection
-	function isMutatingArrayMethod(
-		method: string
-	): method is MutatingArrayMethod {
-		return MUTATING_METHODS.has(method as any)
-	}
-
-	function isNonMutatingArrayMethod(
-		method: string
-	): method is NonMutatingArrayMethod {
-		return NON_MUTATING_METHODS.has(method as any)
-	}
-
-	function isArrayOperationMethod(
-		method: string
-	): method is ArrayOperationMethod {
-		return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)
-	}
-
-	function enterOperation(
-		state: ProxyArrayState,
-		method: ArrayOperationMethod
-	) {
-		state.operationMethod = method
-	}
-
-	function exitOperation(state: ProxyArrayState) {
-		state.operationMethod = undefined
-	}
-
-	// Shared utility functions for array method handlers
-	function executeArrayMethod<T>(
-		state: ProxyArrayState,
-		operation: () => T,
-		markLength = true
-	): T {
-		prepareCopy(state)
-		const result = operation()
-		markChanged(state)
-		if (markLength) state.assigned_!.set("length", true)
-		return result
-	}
-
-	function markAllIndicesReassigned(state: ProxyArrayState) {
-		state.allIndicesReassigned_ = true
-	}
-
-	function normalizeSliceIndex(index: number, length: number): number {
-		if (index < 0) {
-			return Math.max(length + index, 0)
-		}
-		return Math.min(index, length)
-	}
-
-	/**
-	 * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).
-	 *
-	 * Operates directly on `state.copy_` without creating per-element proxies.
-	 * For shifting methods (shift, unshift), marks all indices as reassigned since
-	 * indices shift.
-	 *
-	 * @returns For push/pop/shift/unshift: the native method result. For others: the draft.
-	 */
-	function handleSimpleOperation(
-		state: ProxyArrayState,
-		method: string,
-		args: any[]
-	) {
-		return executeArrayMethod(state, () => {
-			const result = (state.copy_! as any)[method](...args)
-
-			// Handle index reassignment for shifting methods
-			if (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {
-				markAllIndicesReassigned(state)
-			}
-
-			// Return appropriate value based on method
-			return RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)
-				? result
-				: state.draft_
-		})
-	}
-
-	/**
-	 * Handles reordering operations (reverse, sort) that change element order.
-	 *
-	 * Operates directly on `state.copy_` and marks all indices as reassigned
-	 * since element positions change. Does not mark length as changed since
-	 * these operations preserve array length.
-	 *
-	 * @returns The draft proxy for method chaining.
-	 */
-	function handleReorderingOperation(
-		state: ProxyArrayState,
-		method: string,
-		args: any[]
-	) {
-		return executeArrayMethod(
-			state,
-			() => {
-				;(state.copy_! as any)[method](...args)
-				markAllIndicesReassigned(state)
-				return state.draft_
-			},
-			false
-		) // Don't mark length as changed
-	}
-
-	/**
-	 * Creates an interceptor function for a specific array method.
-	 *
-	 * The interceptor wraps array method calls to:
-	 * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap
-	 *    to detect we're inside an optimized method and skip proxy creation)
-	 * 2. Route to appropriate handler based on method type
-	 * 3. Clean up the operation flag in `finally` block
-	 *
-	 * The `operationMethod` flag is the key mechanism that enables the proxy's `get`
-	 * trap to return base values instead of creating nested proxies during iteration.
-	 *
-	 * @param state - The proxy array state
-	 * @param originalMethod - Name of the array method being intercepted
-	 * @returns Interceptor function that handles the method call
-	 */
-	function createMethodInterceptor(
-		state: ProxyArrayState,
-		originalMethod: string
-	) {
-		return function interceptedMethod(...args: any[]) {
-			// Enter operation mode - this flag tells the proxy's get trap to return
-			// base values instead of creating nested proxies during iteration
-			const method = originalMethod as ArrayOperationMethod
-			enterOperation(state, method)
-
-			try {
-				// Check if this is a mutating method
-				if (isMutatingArrayMethod(method)) {
-					// Direct method dispatch - no configuration lookup needed
-					if (RESULT_RETURNING_METHODS.has(method)) {
-						return handleSimpleOperation(state, method, args)
-					}
-					if (REORDERING_METHODS.has(method)) {
-						return handleReorderingOperation(state, method, args)
-					}
-
-					if (method === "splice") {
-						const res = executeArrayMethod(state, () =>
-							state.copy_!.splice(...(args as [number, number, ...any[]]))
-						)
-						markAllIndicesReassigned(state)
-						return res
-					}
-				} else {
-					// Handle non-mutating methods
-					return handleNonMutatingOperation(state, method, args)
-				}
-			} finally {
-				// Always exit operation mode - must be in finally to handle exceptions
-				exitOperation(state)
-			}
-		}
-	}
-
-	/**
-	 * Handles non-mutating array methods with different return semantics.
-	 *
-	 * **Subset operations** return draft proxies for mutation tracking:
-	 * - `filter`, `slice`: Return `state.draft_[i]` for each selected element
-	 * - `find`, `findLast`: Return `state.draft_[i]` for the found element
-	 *
-	 * This allows mutations on returned elements to propagate back to the draft:
-	 * ```ts
-	 * const filtered = draft.items.filter(x => x.value > 5)
-	 * filtered[0].value = 999 // Mutates draft.items[originalIndex]
-	 * ```
-	 *
-	 * **Transform operations** return base values (no draft tracking):
-	 * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.
-	 *   Since the result structure differs from the original, tracking mutations
-	 *   back to specific draft indices would be impractical/impossible.
-	 *
-	 * **Primitive operations** return the native result directly:
-	 * - `indexOf`, `includes`, `some`, `every`, `join`, etc.
-	 *
-	 * @param state - The proxy array state
-	 * @param method - The non-mutating method name
-	 * @param args - Arguments passed to the method
-	 * @returns Drafts for subset operations, base values for transforms, primitives otherwise
-	 */
-	function handleNonMutatingOperation(
-		state: ProxyArrayState,
-		method: NonMutatingArrayMethod,
-		args: any[]
-	) {
-		const source = latest(state)
-
-		// Methods that return arrays with selected items - need to return drafts
-		if (method === "filter") {
-			const predicate = args[0]
-			const result: any[] = []
-
-			// First pass: call predicate on base values to determine which items pass
-			for (let i = 0; i < source.length; i++) {
-				if (predicate(source[i], i, source)) {
-					// Only create draft for items that passed the predicate
-					result.push(state.draft_[i])
-				}
-			}
-
-			return result
-		}
-
-		if (FIND_METHODS.has(method)) {
-			const predicate = args[0]
-			const isForward = method === "find"
-			const step = isForward ? 1 : -1
-			const start = isForward ? 0 : source.length - 1
-
-			for (let i = start; i >= 0 && i < source.length; i += step) {
-				if (predicate(source[i], i, source)) {
-					return state.draft_[i]
-				}
-			}
-			return undefined
-		}
-
-		if (method === "slice") {
-			const rawStart = args[0] ?? 0
-			const rawEnd = args[1] ?? source.length
-
-			// Normalize negative indices
-			const start = normalizeSliceIndex(rawStart, source.length)
-			const end = normalizeSliceIndex(rawEnd, source.length)
-
-			const result: any[] = []
-
-			// Return drafts for items in the slice range
-			for (let i = start; i < end; i++) {
-				result.push(state.draft_[i])
-			}
-
-			return result
-		}
-
-		// For other methods, call on base array directly:
-		// - indexOf, includes, join, toString: Return primitives, no draft needed
-		// - concat, flat: Return NEW arrays (not subsets). Elements are base values.
-		//   This is intentional - concat/flat create new data structures rather than
-		//   selecting subsets of the original, making draft tracking impractical.
-		return source[method as keyof typeof Array.prototype](...args)
-	}
-
-	loadPlugin(PluginArrayMethods, {
-		createMethodInterceptor,
-		isArrayOperationMethod,
-		isMutatingArrayMethod
-	})
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/mapset.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/mapset.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,332 +1,0 @@
-// types only!
-import {
-	ImmerState,
-	AnyMap,
-	AnySet,
-	MapState,
-	SetState,
-	DRAFT_STATE,
-	getCurrentScope,
-	latest,
-	isDraftable,
-	createProxy,
-	loadPlugin,
-	markChanged,
-	die,
-	ArchType,
-	each,
-	getValue,
-	PluginMapSet,
-	handleCrossReference
-} from "../internal"
-
-export function enableMapSet() {
-	class DraftMap extends Map {
-		[DRAFT_STATE]: MapState
-
-		constructor(target: AnyMap, parent?: ImmerState) {
-			super()
-			this[DRAFT_STATE] = {
-				type_: ArchType.Map,
-				parent_: parent,
-				scope_: parent ? parent.scope_ : getCurrentScope()!,
-				modified_: false,
-				finalized_: false,
-				copy_: undefined,
-				assigned_: undefined,
-				base_: target,
-				draft_: this as any,
-				isManual_: false,
-				revoked_: false,
-				callbacks_: []
-			}
-		}
-
-		get size(): number {
-			return latest(this[DRAFT_STATE]).size
-		}
-
-		has(key: any): boolean {
-			return latest(this[DRAFT_STATE]).has(key)
-		}
-
-		set(key: any, value: any) {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (!latest(state).has(key) || latest(state).get(key) !== value) {
-				prepareMapCopy(state)
-				markChanged(state)
-				state.assigned_!.set(key, true)
-				state.copy_!.set(key, value)
-				state.assigned_!.set(key, true)
-				handleCrossReference(state, key, value)
-			}
-			return this
-		}
-
-		delete(key: any): boolean {
-			if (!this.has(key)) {
-				return false
-			}
-
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareMapCopy(state)
-			markChanged(state)
-			if (state.base_.has(key)) {
-				state.assigned_!.set(key, false)
-			} else {
-				state.assigned_!.delete(key)
-			}
-			state.copy_!.delete(key)
-			return true
-		}
-
-		clear() {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (latest(state).size) {
-				prepareMapCopy(state)
-				markChanged(state)
-				state.assigned_ = new Map()
-				each(state.base_, key => {
-					state.assigned_!.set(key, false)
-				})
-				state.copy_!.clear()
-			}
-		}
-
-		forEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {
-			const state: MapState = this[DRAFT_STATE]
-			latest(state).forEach((_value: any, key: any, _map: any) => {
-				cb.call(thisArg, this.get(key), key, this)
-			})
-		}
-
-		get(key: any): any {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			const value = latest(state).get(key)
-			if (state.finalized_ || !isDraftable(value)) {
-				return value
-			}
-			if (value !== state.base_.get(key)) {
-				return value // either already drafted or reassigned
-			}
-			// despite what it looks, this creates a draft only once, see above condition
-			const draft = createProxy(state.scope_, value, state, key)
-			prepareMapCopy(state)
-			state.copy_!.set(key, draft)
-			return draft
-		}
-
-		keys(): IterableIterator<any> {
-			return latest(this[DRAFT_STATE]).keys()
-		}
-
-		values(): IterableIterator<any> {
-			const iterator = this.keys()
-			return {
-				[Symbol.iterator]: () => this.values(),
-				next: () => {
-					const r = iterator.next()
-					/* istanbul ignore next */
-					if (r.done) return r
-					const value = this.get(r.value)
-					return {
-						done: false,
-						value
-					}
-				}
-			} as any
-		}
-
-		entries(): IterableIterator<[any, any]> {
-			const iterator = this.keys()
-			return {
-				[Symbol.iterator]: () => this.entries(),
-				next: () => {
-					const r = iterator.next()
-					/* istanbul ignore next */
-					if (r.done) return r
-					const value = this.get(r.value)
-					return {
-						done: false,
-						value: [r.value, value]
-					}
-				}
-			} as any
-		}
-
-		[Symbol.iterator]() {
-			return this.entries()
-		}
-	}
-
-	function proxyMap_<T extends AnyMap>(
-		target: T,
-		parent?: ImmerState
-	): [T, MapState] {
-		// @ts-ignore
-		const map = new DraftMap(target, parent)
-		return [map as any, map[DRAFT_STATE]]
-	}
-
-	function prepareMapCopy(state: MapState) {
-		if (!state.copy_) {
-			state.assigned_ = new Map()
-			state.copy_ = new Map(state.base_)
-		}
-	}
-
-	class DraftSet extends Set {
-		[DRAFT_STATE]: SetState
-		constructor(target: AnySet, parent?: ImmerState) {
-			super()
-			this[DRAFT_STATE] = {
-				type_: ArchType.Set,
-				parent_: parent,
-				scope_: parent ? parent.scope_ : getCurrentScope()!,
-				modified_: false,
-				finalized_: false,
-				copy_: undefined,
-				base_: target,
-				draft_: this,
-				drafts_: new Map(),
-				revoked_: false,
-				isManual_: false,
-				assigned_: undefined,
-				callbacks_: []
-			}
-		}
-
-		get size(): number {
-			return latest(this[DRAFT_STATE]).size
-		}
-
-		has(value: any): boolean {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			// bit of trickery here, to be able to recognize both the value, and the draft of its value
-			if (!state.copy_) {
-				return state.base_.has(value)
-			}
-			if (state.copy_.has(value)) return true
-			if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-				return true
-			return false
-		}
-
-		add(value: any): any {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (!this.has(value)) {
-				prepareSetCopy(state)
-				markChanged(state)
-				state.copy_!.add(value)
-				handleCrossReference(state, value, value)
-			}
-			return this
-		}
-
-		delete(value: any): any {
-			if (!this.has(value)) {
-				return false
-			}
-
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			markChanged(state)
-			return (
-				state.copy_!.delete(value) ||
-				(state.drafts_.has(value)
-					? state.copy_!.delete(state.drafts_.get(value))
-					: /* istanbul ignore next */ false)
-			)
-		}
-
-		clear() {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (latest(state).size) {
-				prepareSetCopy(state)
-				markChanged(state)
-				state.copy_!.clear()
-			}
-		}
-
-		values(): IterableIterator<any> {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			return state.copy_!.values()
-		}
-
-		entries(): IterableIterator<[any, any]> {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			return state.copy_!.entries()
-		}
-
-		keys(): IterableIterator<any> {
-			return this.values()
-		}
-
-		[Symbol.iterator]() {
-			return this.values()
-		}
-
-		forEach(cb: any, thisArg?: any) {
-			const iterator = this.values()
-			let result = iterator.next()
-			while (!result.done) {
-				cb.call(thisArg, result.value, result.value, this)
-				result = iterator.next()
-			}
-		}
-	}
-	function proxySet_<T extends AnySet>(
-		target: T,
-		parent?: ImmerState
-	): [T, SetState] {
-		// @ts-ignore
-		const set = new DraftSet(target, parent)
-		return [set as any, set[DRAFT_STATE]]
-	}
-
-	function prepareSetCopy(state: SetState) {
-		if (!state.copy_) {
-			// create drafts for all entries to preserve insertion order
-			state.copy_ = new Set()
-			state.base_.forEach(value => {
-				if (isDraftable(value)) {
-					const draft = createProxy(state.scope_, value, state, value)
-					state.drafts_.set(value, draft)
-					state.copy_!.add(draft)
-				} else {
-					state.copy_!.add(value)
-				}
-			})
-		}
-	}
-
-	function assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {
-		if (state.revoked_) die(3, JSON.stringify(latest(state)))
-	}
-
-	function fixSetContents(target: ImmerState) {
-		// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628
-		// To preserve insertion order in all cases we then clear the set
-		if (target.type_ === ArchType.Set && target.copy_) {
-			const copy = new Set(target.copy_)
-			target.copy_.clear()
-			copy.forEach(value => {
-				target.copy_!.add(getValue(value))
-			})
-		}
-	}
-
-	loadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/patches.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/plugins/patches.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,431 +1,0 @@
-import {immerable} from "../immer"
-import {
-	ImmerState,
-	Patch,
-	SetState,
-	ProxyArrayState,
-	MapState,
-	ProxyObjectState,
-	PatchPath,
-	get,
-	each,
-	has,
-	getArchtype,
-	getPrototypeOf,
-	isSet,
-	isMap,
-	loadPlugin,
-	ArchType,
-	die,
-	isDraft,
-	isDraftable,
-	NOTHING,
-	errors,
-	DRAFT_STATE,
-	getProxyDraft,
-	ImmerScope,
-	isObjectish,
-	isFunction,
-	CONSTRUCTOR,
-	PluginPatches,
-	isArray,
-	PROTOTYPE
-} from "../internal"
-
-export function enablePatches() {
-	const errorOffset = 16
-	if (process.env.NODE_ENV !== "production") {
-		errors.push(
-			'Sets cannot have "replace" patches.',
-			function(op: string) {
-				return "Unsupported patch operation: " + op
-			},
-			function(path: string) {
-				return "Cannot apply patch, path doesn't resolve: " + path
-			},
-			"Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-		)
-	}
-
-	function getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {
-		// Step 1: Check if state has a stored key
-		if (state.key_ !== undefined) {
-			// Step 2: Validate the key is still valid in parent
-
-			const parentCopy = state.parent_!.copy_ ?? state.parent_!.base_
-			const proxyDraft = getProxyDraft(get(parentCopy, state.key_!))
-			const valueAtKey = get(parentCopy, state.key_!)
-
-			if (valueAtKey === undefined) {
-				return null
-			}
-
-			// Check if the value at the key is still related to this draft
-			// It should be either the draft itself, the base, or the copy
-			if (
-				valueAtKey !== state.draft_ &&
-				valueAtKey !== state.base_ &&
-				valueAtKey !== state.copy_
-			) {
-				return null // Value was replaced with something else
-			}
-			if (proxyDraft != null && proxyDraft.base_ !== state.base_) {
-				return null // Different draft
-			}
-
-			// Step 3: Handle Set case specially
-			const isSet = state.parent_!.type_ === ArchType.Set
-			let key: string | number
-
-			if (isSet) {
-				// For Sets, find the index in the drafts_ map
-				const setParent = state.parent_ as SetState
-				key = Array.from(setParent.drafts_.keys()).indexOf(state.key_)
-			} else {
-				key = state.key_ as string | number
-			}
-
-			// Step 4: Validate key still exists in parent
-			if (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {
-				return null // Key deleted
-			}
-
-			// Step 5: Add key to path
-			path.push(key)
-		}
-
-		// Step 6: Recurse to parent if exists
-		if (state.parent_) {
-			return getPath(state.parent_, path)
-		}
-
-		// Step 7: At root - reverse path and validate
-		path.reverse()
-
-		try {
-			// Validate path can be resolved from ROOT
-			resolvePath(state.copy_, path)
-		} catch (e) {
-			return null // Path invalid
-		}
-
-		return path
-	}
-
-	// NEW: Add resolvePath helper function
-	function resolvePath(base: any, path: PatchPath): any {
-		let current = base
-		for (let i = 0; i < path.length - 1; i++) {
-			const key = path[i]
-			current = get(current, key)
-			if (!isObjectish(current) || current === null) {
-				throw new Error(`Cannot resolve path at '${path.join("/")}'`)
-			}
-		}
-		return current
-	}
-
-	const REPLACE = "replace"
-	const ADD = "add"
-	const REMOVE = "remove"
-
-	function generatePatches_(
-		state: ImmerState,
-		basePath: PatchPath,
-		scope: ImmerScope
-	): void {
-		if (state.scope_.processedForPatches_.has(state)) {
-			return
-		}
-
-		state.scope_.processedForPatches_.add(state)
-
-		const {patches_, inversePatches_} = scope
-
-		switch (state.type_) {
-			case ArchType.Object:
-			case ArchType.Map:
-				return generatePatchesFromAssigned(
-					state,
-					basePath,
-					patches_!,
-					inversePatches_!
-				)
-			case ArchType.Array:
-				return generateArrayPatches(
-					state,
-					basePath,
-					patches_!,
-					inversePatches_!
-				)
-			case ArchType.Set:
-				return generateSetPatches(
-					(state as any) as SetState,
-					basePath,
-					patches_!,
-					inversePatches_!
-				)
-		}
-	}
-
-	function generateArrayPatches(
-		state: ProxyArrayState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		let {base_, assigned_} = state
-		let copy_ = state.copy_!
-
-		// Reduce complexity by ensuring `base` is never longer.
-		if (copy_.length < base_.length) {
-			// @ts-ignore
-			;[base_, copy_] = [copy_, base_]
-			;[patches, inversePatches] = [inversePatches, patches]
-		}
-
-		const allReassigned = state.allIndicesReassigned_ === true
-
-		// Process replaced indices.
-		for (let i = 0; i < base_.length; i++) {
-			const copiedItem = copy_[i]
-			const baseItem = base_[i]
-
-			const isAssigned = allReassigned || assigned_?.get(i.toString())
-			if (isAssigned && copiedItem !== baseItem) {
-				const childState = copiedItem?.[DRAFT_STATE]
-				if (childState && childState.modified_) {
-					// Skip - let the child generate its own patches
-					continue
-				}
-				const path = basePath.concat([i])
-				patches.push({
-					op: REPLACE,
-					path,
-					// Need to maybe clone it, as it can in fact be the original value
-					// due to the base/copy inversion at the start of this function
-					value: clonePatchValueIfNeeded(copiedItem)
-				})
-				inversePatches.push({
-					op: REPLACE,
-					path,
-					value: clonePatchValueIfNeeded(baseItem)
-				})
-			}
-		}
-
-		// Process added indices.
-		for (let i = base_.length; i < copy_.length; i++) {
-			const path = basePath.concat([i])
-			patches.push({
-				op: ADD,
-				path,
-				// Need to maybe clone it, as it can in fact be the original value
-				// due to the base/copy inversion at the start of this function
-				value: clonePatchValueIfNeeded(copy_[i])
-			})
-		}
-		for (let i = copy_.length - 1; base_.length <= i; --i) {
-			const path = basePath.concat([i])
-			inversePatches.push({
-				op: REMOVE,
-				path
-			})
-		}
-	}
-
-	// This is used for both Map objects and normal objects.
-	function generatePatchesFromAssigned(
-		state: MapState | ProxyObjectState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		const {base_, copy_, type_} = state
-		each(state.assigned_!, (key, assignedValue) => {
-			const origValue = get(base_, key, type_)
-			const value = get(copy_!, key, type_)
-			const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD
-			if (origValue === value && op === REPLACE) return
-			const path = basePath.concat(key as any)
-			patches.push(
-				op === REMOVE
-					? {op, path}
-					: {op, path, value: clonePatchValueIfNeeded(value)}
-			)
-			inversePatches.push(
-				op === ADD
-					? {op: REMOVE, path}
-					: op === REMOVE
-					? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}
-					: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}
-			)
-		})
-	}
-
-	function generateSetPatches(
-		state: SetState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		let {base_, copy_} = state
-
-		let i = 0
-		base_.forEach((value: any) => {
-			if (!copy_!.has(value)) {
-				const path = basePath.concat([i])
-				patches.push({
-					op: REMOVE,
-					path,
-					value
-				})
-				inversePatches.unshift({
-					op: ADD,
-					path,
-					value
-				})
-			}
-			i++
-		})
-		i = 0
-		copy_!.forEach((value: any) => {
-			if (!base_.has(value)) {
-				const path = basePath.concat([i])
-				patches.push({
-					op: ADD,
-					path,
-					value
-				})
-				inversePatches.unshift({
-					op: REMOVE,
-					path,
-					value
-				})
-			}
-			i++
-		})
-	}
-
-	function generateReplacementPatches_(
-		baseValue: any,
-		replacement: any,
-		scope: ImmerScope
-	): void {
-		const {patches_, inversePatches_} = scope
-		patches_!.push({
-			op: REPLACE,
-			path: [],
-			value: replacement === NOTHING ? undefined : replacement
-		})
-		inversePatches_!.push({
-			op: REPLACE,
-			path: [],
-			value: baseValue
-		})
-	}
-
-	function applyPatches_<T>(draft: T, patches: readonly Patch[]): T {
-		patches.forEach(patch => {
-			const {path, op} = patch
-
-			let base: any = draft
-			for (let i = 0; i < path.length - 1; i++) {
-				const parentType = getArchtype(base)
-				let p = path[i]
-				if (typeof p !== "string" && typeof p !== "number") {
-					p = "" + p
-				}
-
-				// See #738, avoid prototype pollution
-				if (
-					(parentType === ArchType.Object || parentType === ArchType.Array) &&
-					(p === "__proto__" || p === CONSTRUCTOR)
-				)
-					die(errorOffset + 3)
-				if (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)
-				base = get(base, p)
-				if (!isObjectish(base)) die(errorOffset + 2, path.join("/"))
-			}
-
-			const type = getArchtype(base)
-			const value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411
-			const key = path[path.length - 1]
-			switch (op) {
-				case REPLACE:
-					switch (type) {
-						case ArchType.Map:
-							return base.set(key, value)
-						/* istanbul ignore next */
-						case ArchType.Set:
-							die(errorOffset)
-						default:
-							// if value is an object, then it's assigned by reference
-							// in the following add or remove ops, the value field inside the patch will also be modifyed
-							// so we use value from the cloned patch
-							// @ts-ignore
-							return (base[key] = value)
-					}
-				case ADD:
-					switch (type) {
-						case ArchType.Array:
-							return key === "-"
-								? base.push(value)
-								: base.splice(key as any, 0, value)
-						case ArchType.Map:
-							return base.set(key, value)
-						case ArchType.Set:
-							return base.add(value)
-						default:
-							return (base[key] = value)
-					}
-				case REMOVE:
-					switch (type) {
-						case ArchType.Array:
-							return base.splice(key as any, 1)
-						case ArchType.Map:
-							return base.delete(key)
-						case ArchType.Set:
-							return base.delete(patch.value)
-						default:
-							return delete base[key]
-					}
-				default:
-					die(errorOffset + 1, op)
-			}
-		})
-
-		return draft
-	}
-
-	// optimize: this is quite a performance hit, can we detect intelligently when it is needed?
-	// E.g. auto-draft when new objects from outside are assigned and modified?
-	// (See failing test when deepClone just returns obj)
-	function deepClonePatchValue<T>(obj: T): T
-	function deepClonePatchValue(obj: any) {
-		if (!isDraftable(obj)) return obj
-		if (isArray(obj)) return obj.map(deepClonePatchValue)
-		if (isMap(obj))
-			return new Map(
-				Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-			)
-		if (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))
-		const cloned = Object.create(getPrototypeOf(obj))
-		for (const key in obj) cloned[key] = deepClonePatchValue(obj[key])
-		if (has(obj, immerable)) cloned[immerable] = obj[immerable]
-		return cloned
-	}
-
-	function clonePatchValueIfNeeded<T>(obj: T): T {
-		if (isDraft(obj)) {
-			return deepClonePatchValue(obj)
-		} else return obj
-	}
-
-	loadPlugin(PluginPatches, {
-		applyPatches_,
-		generatePatches_,
-		generateReplacementPatches_,
-		getPath
-	})
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/types/globals.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/types/globals.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-declare const __DEV__: boolean
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/types/index.js.flow
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/types/index.js.flow	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-// @flow
-
-export interface Patch {
-	op: "replace" | "remove" | "add";
-	path: (string | number)[];
-	value?: any;
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-type Base = {...} | Array<any>
-interface IProduce {
-	/**
-	 * Immer takes a state, and runs a function against it.
-	 * That function can freely mutate the state, as it will create copies-on-write.
-	 * This means that the original state will stay unchanged, and once the function finishes, the modified state is returned.
-	 *
-	 * If the first argument is a function, this is interpreted as the recipe, and will create a curried function that will execute the recipe
-	 * any time it is called with the current state.
-	 *
-	 * @param currentState - the state to start with
-	 * @param recipe - function that receives a proxy of the current state as first argument and which can be freely modified
-	 * @param initialState - if a curried function is created and this argument was given, it will be used as fallback if the curried function is called with a state of undefined
-	 * @returns The next state: a new state, or the current state if nothing was modified
-	 */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void,
-		patchListener?: PatchListener
-	): S;
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-}
-
-interface IProduceWithPatches {
-        /**
-         * Like `produce`, but instead of just returning the new state,
-         * a tuple is returned with [nextState, patches, inversePatches]
-         *
-         * Like produce, this function supports currying
-         */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void
-	): [S, Patch[], Patch[]];
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-}
-
-declare export var produce: IProduce
-
-declare export var produceWithPatches: IProduceWithPatches
-
-declare export var nothing: typeof undefined
-
-declare export var immerable: Symbol
-
-/**
- * Automatically freezes any state trees generated by immer.
- * This protects against accidental modifications of the state tree outside of an immer function.
- * This comes with a performance impact, so it is recommended to disable this option in production.
- * By default it is turned on during local development, and turned off in production.
- */
-declare export function setAutoFreeze(autoFreeze: boolean): void
-
-/**
- * Pass false to disable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare export function setUseStrictShallowCopy(useStrictShallowCopy: boolean): void
-
-declare export function applyPatches<S>(state: S, patches: Patch[]): S
-
-declare export function original<S>(value: S): S
-
-declare export function current<S>(value: S): S
-
-declare export function isDraft(value: any): boolean
-
-/**
- * Creates a mutable draft from an (immutable) object / array.
- * The draft can be modified until `finishDraft` is called
- */
-declare export function createDraft<T>(base: T): T
-
-/**
- * Given a draft that was created using `createDraft`,
- * finalizes the draft into a new immutable object.
- * Optionally a patch-listener can be provided to gather the patches that are needed to construct the object.
- */
-declare export function finishDraft<T>(base: T, listener?: PatchListener): T
-
-declare export function enableMapSet(): void
-declare export function enablePatches(): void
-declare export function enableArrayMethods(): void
-
-declare export function freeze<T>(obj: T, freeze?: boolean): T
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/types/types-external.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/types/types-external.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,251 +1,0 @@
-import {NOTHING} from "../internal"
-
-type AnyFunc = (...args: any[]) => any
-
-type PrimitiveType = number | string | boolean
-
-/** Object types that should never be mapped */
-type AtomicObject = Function | Promise<any> | Date | RegExp
-
-/**
- * If the lib "ES2015.Collection" is not included in tsconfig.json,
- * types like ReadonlyArray, WeakMap etc. fall back to `any` (specified nowhere)
- * or `{}` (from the node types), in both cases entering an infinite recursion in
- * pattern matching type mappings
- * This type can be used to cast these types to `void` in these cases.
- */
-export type IfAvailable<T, Fallback = void> =
-	// fallback if any
-	true | false extends (T extends never
-	? true
-	: false)
-		? Fallback // fallback if empty type
-		: keyof T extends never
-		? Fallback // original type
-		: T
-
-/**
- * These should also never be mapped but must be tested after regular Map and
- * Set
- */
-type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>
-
-export type WritableDraft<T> = T extends any[]
-	? number extends T["length"]
-		? Draft<T[number]>[]
-		: WritableNonArrayDraft<T>
-	: WritableNonArrayDraft<T>
-
-type WritableNonArrayDraft<T> = {
-	-readonly [K in keyof T]: T[K] extends infer V
-		? V extends object
-			? Draft<V>
-			: V
-		: never
-}
-
-/** Convert a readonly type into a mutable type, if possible */
-export type Draft<T> = T extends PrimitiveType
-	? T
-	: T extends AtomicObject
-	? T
-	: T extends ReadonlyMap<infer K, infer V> // Map extends ReadonlyMap
-	? Map<Draft<K>, Draft<V>>
-	: T extends ReadonlySet<infer V> // Set extends ReadonlySet
-	? Set<Draft<V>>
-	: T extends WeakReferences
-	? T
-	: T extends object
-	? WritableDraft<T>
-	: T
-
-/** Convert a mutable type into a readonly type */
-export type Immutable<T> = T extends PrimitiveType
-	? T
-	: T extends AtomicObject
-	? T
-	: T extends ReadonlyMap<infer K, infer V> // Map extends ReadonlyMap
-	? ReadonlyMap<Immutable<K>, Immutable<V>>
-	: T extends ReadonlySet<infer V> // Set extends ReadonlySet
-	? ReadonlySet<Immutable<V>>
-	: T extends WeakReferences
-	? T
-	: T extends object
-	? {readonly [K in keyof T]: Immutable<T[K]>}
-	: T
-
-export interface Patch {
-	op: "replace" | "remove" | "add"
-	path: (string | number)[]
-	value?: any
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-/** Converts `nothing` into `undefined` */
-type FromNothing<T> = T extends typeof NOTHING ? undefined : T
-
-/** The inferred return type of `produce` */
-export type Produced<Base, Return> = Return extends void
-	? Base
-	: FromNothing<Return>
-
-/**
- * Utility types
- */
-type PatchesTuple<T> = readonly [T, Patch[], Patch[]]
-
-type ValidRecipeReturnType<State> =
-	| State
-	| void
-	| undefined
-	| (State extends undefined ? typeof NOTHING : never)
-
-type ReturnTypeWithPatchesIfNeeded<
-	State,
-	UsePatches extends boolean
-> = UsePatches extends true ? PatchesTuple<State> : State
-
-/**
- * Core Producer inference
- */
-type InferRecipeFromCurried<Curried> = Curried extends (
-	base: infer State,
-	...rest: infer Args
-) => any // extra assertion to make sure this is a proper curried function (state, args) => state
-	? ReturnType<Curried> extends State
-		? (
-				draft: Draft<State>,
-				...rest: Args
-		  ) => ValidRecipeReturnType<Draft<State>>
-		: never
-	: never
-
-type InferInitialStateFromCurried<Curried> = Curried extends (
-	base: infer State,
-	...rest: any[]
-) => any // extra assertion to make sure this is a proper curried function (state, args) => state
-	? State
-	: never
-
-type InferCurriedFromRecipe<
-	Recipe,
-	UsePatches extends boolean
-> = Recipe extends (draft: infer DraftState, ...args: infer RestArgs) => any // verify return type
-	? ReturnType<Recipe> extends ValidRecipeReturnType<DraftState>
-		? (
-				base: Immutable<DraftState>,
-				...args: RestArgs
-		  ) => ReturnTypeWithPatchesIfNeeded<DraftState, UsePatches> // N.b. we return mutable draftstate, in case the recipe's first arg isn't read only, and that isn't expected as output either
-		: never // incorrect return type
-	: never // not a function
-
-type InferCurriedFromInitialStateAndRecipe<
-	State,
-	Recipe,
-	UsePatches extends boolean
-> = Recipe extends (
-	draft: Draft<State>,
-	...rest: infer RestArgs
-) => ValidRecipeReturnType<State>
-	? (
-			base?: State | undefined,
-			...args: RestArgs
-	  ) => ReturnTypeWithPatchesIfNeeded<State, UsePatches>
-	: never // recipe doesn't match initial state
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-export interface IProduce {
-	/** Curried producer that infers the recipe from the curried output function (e.g. when passing to setState) */
-	<Curried>(
-		recipe: InferRecipeFromCurried<Curried>,
-		initialState?: InferInitialStateFromCurried<Curried>
-	): Curried
-
-	/** Curried producer that infers curried from the recipe  */
-	<Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<
-		Recipe,
-		false
-	>
-
-	/** Curried producer that infers curried from the State generic, which is explicitly passed in.  */
-	<State>(
-		recipe: (
-			state: Draft<State>,
-			initialState: State
-		) => ValidRecipeReturnType<State>
-	): (state?: State) => State
-	<State, Args extends any[]>(
-		recipe: (
-			state: Draft<State>,
-			...args: Args
-		) => ValidRecipeReturnType<State>,
-		initialState: State
-	): (state?: State, ...args: Args) => State
-	<State>(recipe: (state: Draft<State>) => ValidRecipeReturnType<State>): (
-		state: State
-	) => State
-	<State, Args extends any[]>(
-		recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>
-	): (state: State, ...args: Args) => State
-
-	/** Curried producer with initial state, infers recipe from initial state */
-	<State, Recipe extends Function>(
-		recipe: Recipe,
-		initialState: State
-	): InferCurriedFromInitialStateAndRecipe<State, Recipe, false>
-
-	/** Normal producer */
-	<Base, D = Draft<Base>>( // By using a default inferred D, rather than Draft<Base> in the recipe, we can override it.
-		base: Base,
-		recipe: (draft: D) => ValidRecipeReturnType<D>,
-		listener?: PatchListener
-	): Base
-}
-
-/**
- * Like `produce`, but instead of just returning the new state,
- * a tuple is returned with [nextState, patches, inversePatches]
- *
- * Like produce, this function supports currying
- */
-export interface IProduceWithPatches {
-	// Types copied from IProduce, wrapped with PatchesTuple
-	<Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, true>
-	<State, Recipe extends Function>(
-		recipe: Recipe,
-		initialState: State
-	): InferCurriedFromInitialStateAndRecipe<State, Recipe, true>
-	<Base, D = Draft<Base>>(
-		base: Base,
-		recipe: (draft: D) => ValidRecipeReturnType<D>,
-		listener?: PatchListener
-	): PatchesTuple<Base>
-}
-
-/**
- * The type for `recipe function`
- */
-export type Producer<T> = (draft: Draft<T>) => ValidRecipeReturnType<Draft<T>>
-
-// Fixes #507: bili doesn't export the types of this file if there is no actual source in it..
-// hopefully it get's tree-shaken away for everyone :)
-export function never_used() {}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/types/types-internal.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/types/types-internal.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-import {
-	SetState,
-	ImmerScope,
-	ProxyObjectState,
-	ProxyArrayState,
-	MapState,
-	DRAFT_STATE,
-	Patch,
-	PatchPath
-} from "../internal"
-
-export type Objectish = AnyObject | AnyArray | AnyMap | AnySet
-export type ObjectishNoSet = AnyObject | AnyArray | AnyMap
-
-export type AnyObject = {[key: string]: any}
-export type AnyArray = Array<any>
-export type AnySet = Set<any>
-export type AnyMap = Map<any, any>
-
-export const enum ArchType {
-	Object,
-	Array,
-	Map,
-	Set
-}
-
-export interface ImmerBaseState {
-	parent_?: ImmerState
-	scope_: ImmerScope
-	modified_: boolean
-	finalized_: boolean
-	isManual_: boolean
-	assigned_: Map<any, boolean> | undefined
-	key_?: string | number | symbol
-	callbacks_: ((scope: ImmerScope) => void)[]
-	draftLocations_?: Map<any, (string | number | symbol)[]>
-}
-
-export type ImmerState =
-	| ProxyObjectState
-	| ProxyArrayState
-	| MapState
-	| SetState
-
-// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)
-export type Drafted<Base = any, T extends ImmerState = ImmerState> = {
-	[DRAFT_STATE]: T
-} & Base
-
-export type GeneratePatches = (
-	state: ImmerState,
-	basePath: PatchPath,
-	patches: Patch[],
-	inversePatches: Patch[]
-) => void
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,286 +1,0 @@
-import {
-	DRAFT_STATE,
-	DRAFTABLE,
-	Objectish,
-	Drafted,
-	AnyObject,
-	AnyMap,
-	AnySet,
-	ImmerState,
-	ArchType,
-	die,
-	StrictMode
-} from "../internal"
-
-const O = Object
-
-export const getPrototypeOf = O.getPrototypeOf
-
-export const CONSTRUCTOR = "constructor"
-export const PROTOTYPE = "prototype"
-
-export const CONFIGURABLE = "configurable"
-export const ENUMERABLE = "enumerable"
-export const WRITABLE = "writable"
-export const VALUE = "value"
-
-/** Returns true if the given value is an Immer draft */
-/*#__PURE__*/
-export let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]
-
-/** Returns true if the given value can be drafted by Immer */
-/*#__PURE__*/
-export function isDraftable(value: any): boolean {
-	if (!value) return false
-	return (
-		isPlainObject(value) ||
-		isArray(value) ||
-		!!value[DRAFTABLE] ||
-		!!value[CONSTRUCTOR]?.[DRAFTABLE] ||
-		isMap(value) ||
-		isSet(value)
-	)
-}
-
-const objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString()
-const cachedCtorStrings = new WeakMap()
-/*#__PURE__*/
-export function isPlainObject(value: any): boolean {
-	if (!value || !isObjectish(value)) return false
-	const proto = getPrototypeOf(value)
-	if (proto === null || proto === O[PROTOTYPE]) return true
-
-	const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]
-	if (Ctor === Object) return true
-
-	if (!isFunction(Ctor)) return false
-
-	let ctorString = cachedCtorStrings.get(Ctor)
-	if (ctorString === undefined) {
-		ctorString = Function.toString.call(Ctor)
-		cachedCtorStrings.set(Ctor, ctorString)
-	}
-
-	return ctorString === objectCtorString
-}
-
-/** Get the underlying object that is represented by the given draft */
-/*#__PURE__*/
-export function original<T>(value: T): T | undefined
-export function original(value: Drafted<any>): any {
-	if (!isDraft(value)) die(15, value)
-	return value[DRAFT_STATE].base_
-}
-
-/**
- * Each iterates a map, set or array.
- * Or, if any other kind of object, all of its own properties.
- *
- * @param obj The object to iterate over
- * @param iter The iterator function
- * @param strict When true (default), includes symbols and non-enumerable properties.
- *               When false, uses looseiteration over only enumerable string properties.
- */
-export function each<T extends Objectish>(
-	obj: T,
-	iter: (key: string | number, value: any, source: T) => void,
-	strict?: boolean
-): void
-export function each(obj: any, iter: any, strict: boolean = true) {
-	if (getArchtype(obj) === ArchType.Object) {
-		// If strict, we do a full iteration including symbols and non-enumerable properties
-		// Otherwise, we only iterate enumerable string properties for performance
-		const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj)
-		keys.forEach(key => {
-			iter(key, obj[key], obj)
-		})
-	} else {
-		obj.forEach((entry: any, index: any) => iter(index, entry, obj))
-	}
-}
-
-/*#__PURE__*/
-export function getArchtype(thing: any): ArchType {
-	const state: undefined | ImmerState = thing[DRAFT_STATE]
-	return state
-		? state.type_
-		: isArray(thing)
-		? ArchType.Array
-		: isMap(thing)
-		? ArchType.Map
-		: isSet(thing)
-		? ArchType.Set
-		: ArchType.Object
-}
-
-/*#__PURE__*/
-export let has = (
-	thing: any,
-	prop: PropertyKey,
-	type = getArchtype(thing)
-): boolean =>
-	type === ArchType.Map
-		? thing.has(prop)
-		: O[PROTOTYPE].hasOwnProperty.call(thing, prop)
-
-/*#__PURE__*/
-export let get = (
-	thing: AnyMap | AnyObject,
-	prop: PropertyKey,
-	type = getArchtype(thing)
-): any =>
-	// @ts-ignore
-	type === ArchType.Map ? thing.get(prop) : thing[prop]
-
-/*#__PURE__*/
-export let set = (
-	thing: any,
-	propOrOldValue: PropertyKey,
-	value: any,
-	type = getArchtype(thing)
-) => {
-	if (type === ArchType.Map) thing.set(propOrOldValue, value)
-	else if (type === ArchType.Set) {
-		thing.add(value)
-	} else thing[propOrOldValue] = value
-}
-
-/*#__PURE__*/
-export function is(x: any, y: any): boolean {
-	// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
-	if (x === y) {
-		return x !== 0 || 1 / x === 1 / y
-	} else {
-		return x !== x && y !== y
-	}
-}
-
-export let isArray = Array.isArray
-
-/*#__PURE__*/
-export let isMap = (target: any): target is AnyMap => target instanceof Map
-
-/*#__PURE__*/
-export let isSet = (target: any): target is AnySet => target instanceof Set
-
-export let isObjectish = (target: any) => typeof target === "object"
-
-export let isFunction = (target: any): target is Function =>
-	typeof target === "function"
-
-export let isBoolean = (target: any): target is boolean =>
-	typeof target === "boolean"
-
-export function isArrayIndex(value: string | number): value is number | string {
-	const n = +value
-	return Number.isInteger(n) && String(n) === value
-}
-
-export let getProxyDraft = <T extends any>(value: T): ImmerState | null => {
-	if (!isObjectish(value)) return null
-	return (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]
-}
-
-/*#__PURE__*/
-export let latest = (state: ImmerState): any => state.copy_ || state.base_
-
-export let getValue = <T extends object>(value: T): T => {
-	const proxyDraft = getProxyDraft(value)
-	return proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value
-}
-
-export let getFinalValue = (state: ImmerState): any =>
-	state.modified_ ? state.copy_ : state.base_
-
-/*#__PURE__*/
-export function shallowCopy(base: any, strict: StrictMode) {
-	if (isMap(base)) {
-		return new Map(base)
-	}
-	if (isSet(base)) {
-		return new Set(base)
-	}
-	if (isArray(base)) return Array[PROTOTYPE].slice.call(base)
-
-	const isPlain = isPlainObject(base)
-
-	if (strict === true || (strict === "class_only" && !isPlain)) {
-		// Perform a strict copy
-		const descriptors = O.getOwnPropertyDescriptors(base)
-		delete descriptors[DRAFT_STATE as any]
-		let keys = Reflect.ownKeys(descriptors)
-		for (let i = 0; i < keys.length; i++) {
-			const key: any = keys[i]
-			const desc = descriptors[key]
-			if (desc[WRITABLE] === false) {
-				desc[WRITABLE] = true
-				desc[CONFIGURABLE] = true
-			}
-			// like object.assign, we will read any _own_, get/set accessors. This helps in dealing
-			// with libraries that trap values, like mobx or vue
-			// unlike object.assign, non-enumerables will be copied as well
-			if (desc.get || desc.set)
-				descriptors[key] = {
-					[CONFIGURABLE]: true,
-					[WRITABLE]: true, // could live with !!desc.set as well here...
-					[ENUMERABLE]: desc[ENUMERABLE],
-					[VALUE]: base[key]
-				}
-		}
-		return O.create(getPrototypeOf(base), descriptors)
-	} else {
-		// perform a sloppy copy
-		const proto = getPrototypeOf(base)
-		if (proto !== null && isPlain) {
-			return {...base} // assumption: better inner class optimization than the assign below
-		}
-		const obj = O.create(proto)
-		return O.assign(obj, base)
-	}
-}
-
-/**
- * Freezes draftable objects. Returns the original object.
- * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.
- *
- * @param obj
- * @param deep
- */
-export function freeze<T>(obj: T, deep?: boolean): T
-export function freeze<T>(obj: any, deep: boolean = false): T {
-	if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj
-	if (getArchtype(obj) > 1 /* Map or Set */) {
-		O.defineProperties(obj, {
-			set: dontMutateMethodOverride,
-			add: dontMutateMethodOverride,
-			clear: dontMutateMethodOverride,
-			delete: dontMutateMethodOverride
-		})
-	}
-	O.freeze(obj)
-	if (deep)
-		// See #590, don't recurse into non-enumerable / Symbol properties when freezing
-		// So use Object.values (only string-like, enumerables) instead of each()
-		each(
-			obj,
-			(_key, value) => {
-				freeze(value, true)
-			},
-			false
-		)
-	return obj
-}
-
-function dontMutateFrozenCollections() {
-	die(2)
-}
-
-const dontMutateMethodOverride = {
-	[VALUE]: dontMutateFrozenCollections
-}
-
-export function isFrozen(obj: any): boolean {
-	// Fast path: primitives and null/undefined are always "frozen"
-	if (obj === null || !isObjectish(obj)) return true
-	return O.isFrozen(obj)
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-// Should be no imports here!
-
-/**
- * The sentinel value returned by producers to replace the draft with undefined.
- */
-export const NOTHING: unique symbol = Symbol.for("immer-nothing")
-
-/**
- * To let Immer treat your class instances as plain immutable objects
- * (albeit with a custom prototype), you must define either an instance property
- * or a static property on each of your custom classes.
- *
- * Otherwise, your class instance will never be drafted, which means it won't be
- * safe to mutate in a produce callback.
- */
-export const DRAFTABLE: unique symbol = Symbol.for("immer-draftable")
-
-export const DRAFT_STATE: unique symbol = Symbol.for("immer-state")
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import {isFunction} from "../internal"
-
-export const errors =
-	process.env.NODE_ENV !== "production"
-		? [
-				// All error codes, starting by 0:
-				function(plugin: string) {
-					return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`
-				},
-				function(thing: string) {
-					return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`
-				},
-				"This object has been frozen and should not be mutated",
-				function(data: any) {
-					return (
-						"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " +
-						data
-					)
-				},
-				"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-				"Immer forbids circular references",
-				"The first or second argument to `produce` must be a function",
-				"The third argument to `produce` must be a function or undefined",
-				"First argument to `createDraft` must be a plain object, an array, or an immerable object",
-				"First argument to `finishDraft` must be a draft returned by `createDraft`",
-				function(thing: string) {
-					return `'current' expects a draft, got: ${thing}`
-				},
-				"Object.defineProperty() cannot be used on an Immer draft",
-				"Object.setPrototypeOf() cannot be used on an Immer draft",
-				"Immer only supports deleting array indices",
-				"Immer only supports setting array indices and the 'length' property",
-				function(thing: string) {
-					return `'original' expects a draft, got: ${thing}`
-				}
-				// Note: if more errors are added, the errorOffset in Patches.ts should be increased
-				// See Patches.ts for additional errors
-		  ]
-		: []
-
-export function die(error: number, ...args: any[]): never {
-	if (process.env.NODE_ENV !== "production") {
-		const e = errors[error]
-		const msg = isFunction(e) ? e.apply(null, args as any) : e
-		throw new Error(`[Immer] ${msg}`)
-	}
-	throw new Error(
-		`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-	)
-}
Index: de_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts
===================================================================
--- node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,99 +1,0 @@
-import {
-	ImmerState,
-	Patch,
-	Drafted,
-	ImmerBaseState,
-	AnyMap,
-	AnySet,
-	ArchType,
-	die,
-	ImmerScope,
-	ProxyArrayState
-} from "../internal"
-
-export const PluginMapSet = "MapSet"
-export const PluginPatches = "Patches"
-export const PluginArrayMethods = "ArrayMethods"
-
-export type PatchesPlugin = {
-	generatePatches_(
-		state: ImmerState,
-		basePath: PatchPath,
-		rootScope: ImmerScope
-	): void
-	generateReplacementPatches_(
-		base: any,
-		replacement: any,
-		rootScope: ImmerScope
-	): void
-	applyPatches_<T>(draft: T, patches: readonly Patch[]): T
-	getPath: (state: ImmerState) => PatchPath | null
-}
-
-export type MapSetPlugin = {
-	proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]
-	proxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]
-	fixSetContents: (state: ImmerState) => void
-}
-
-export type ArrayMethodsPlugin = {
-	createMethodInterceptor: (state: ProxyArrayState, method: string) => Function
-	isArrayOperationMethod: (method: string) => boolean
-	isMutatingArrayMethod: (method: string) => boolean
-}
-
-/** Plugin utilities */
-const plugins: {
-	Patches?: PatchesPlugin
-	MapSet?: MapSetPlugin
-	ArrayMethods?: ArrayMethodsPlugin
-} = {}
-
-type Plugins = typeof plugins
-
-export function getPlugin<K extends keyof Plugins>(
-	pluginKey: K
-): Exclude<Plugins[K], undefined> {
-	const plugin = plugins[pluginKey]
-	if (!plugin) {
-		die(0, pluginKey)
-	}
-	// @ts-ignore
-	return plugin
-}
-
-export let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>
-	!!plugins[pluginKey]
-
-export let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {
-	delete plugins[pluginKey]
-}
-
-export function loadPlugin<K extends keyof Plugins>(
-	pluginKey: K,
-	implementation: Plugins[K]
-): void {
-	if (!plugins[pluginKey]) plugins[pluginKey] = implementation
-}
-/** Map / Set plugin */
-
-export interface MapState extends ImmerBaseState {
-	type_: ArchType.Map
-	copy_: AnyMap | undefined
-	base_: AnyMap
-	revoked_: boolean
-	draft_: Drafted<AnyMap, MapState>
-}
-
-export interface SetState extends ImmerBaseState {
-	type_: ArchType.Set
-	copy_: AnySet | undefined
-	base_: AnySet
-	drafts_: Map<any, Drafted> // maps the original value to the draft value in the new set
-	revoked_: boolean
-	draft_: Drafted<AnySet, SetState>
-}
-
-/** Patches plugin */
-
-export type PatchPath = (string | number)[]
Index: de_modules/@reduxjs/toolkit/package.json
===================================================================
--- node_modules/@reduxjs/toolkit/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,286 +1,0 @@
-{
-  "name": "@reduxjs/toolkit",
-  "version": "2.11.2",
-  "description": "The official, opinionated, batteries-included toolset for efficient Redux development",
-  "author": "Mark Erikson <mark@isquaredsoftware.com>",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/reduxjs/redux-toolkit.git"
-  },
-  "keywords": [
-    "redux",
-    "react",
-    "starter",
-    "toolkit",
-    "reducer",
-    "slice",
-    "immer",
-    "immutable",
-    "redux-toolkit"
-  ],
-  "publishConfig": {
-    "access": "public"
-  },
-  "module": "dist/redux-toolkit.legacy-esm.js",
-  "main": "dist/cjs/index.js",
-  "types": "dist/index.d.ts",
-  "react-native": "dist/redux-toolkit.legacy-esm.js",
-  "unpkg": "dist/redux-toolkit.browser.mjs",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "module-sync": {
-        "types": "./dist/index.d.mts",
-        "default": "./dist/redux-toolkit.modern.mjs"
-      },
-      "module": {
-        "types": "./dist/index.d.mts",
-        "default": "./dist/redux-toolkit.modern.mjs"
-      },
-      "react-native": {
-        "import": {
-          "types": "./dist/index.d.mts",
-          "default": "./dist/redux-toolkit.modern.mjs"
-        },
-        "default": {
-          "types": "./dist/index.d.ts",
-          "default": "./dist/cjs/index.js"
-        }
-      },
-      "browser": {
-        "import": {
-          "types": "./dist/index.d.mts",
-          "default": "./dist/redux-toolkit.browser.mjs"
-        },
-        "default": {
-          "types": "./dist/index.d.ts",
-          "default": "./dist/cjs/index.js"
-        }
-      },
-      "import": {
-        "types": "./dist/index.d.mts",
-        "default": "./dist/redux-toolkit.modern.mjs"
-      },
-      "default": {
-        "types": "./dist/index.d.ts",
-        "default": "./dist/cjs/index.js"
-      }
-    },
-    "./react": {
-      "module-sync": {
-        "types": "./dist/react/index.d.mts",
-        "default": "./dist/react/redux-toolkit-react.modern.mjs"
-      },
-      "module": {
-        "types": "./dist/react/index.d.mts",
-        "default": "./dist/react/redux-toolkit-react.modern.mjs"
-      },
-      "react-native": {
-        "import": {
-          "types": "./dist/react/index.d.mts",
-          "default": "./dist/react/redux-toolkit-react.modern.mjs"
-        },
-        "default": {
-          "types": "./dist/react/index.d.ts",
-          "default": "./dist/react/cjs/index.js"
-        }
-      },
-      "browser": {
-        "import": {
-          "types": "./dist/react/index.d.mts",
-          "default": "./dist/react/redux-toolkit-react.browser.mjs"
-        },
-        "default": {
-          "types": "./dist/react/index.d.ts",
-          "default": "./dist/react/cjs/index.js"
-        }
-      },
-      "import": {
-        "types": "./dist/react/index.d.mts",
-        "default": "./dist/react/redux-toolkit-react.modern.mjs"
-      },
-      "default": {
-        "types": "./dist/react/index.d.ts",
-        "default": "./dist/react/cjs/index.js"
-      }
-    },
-    "./query": {
-      "module-sync": {
-        "types": "./dist/query/index.d.mts",
-        "default": "./dist/query/rtk-query.modern.mjs"
-      },
-      "module": {
-        "types": "./dist/query/index.d.mts",
-        "default": "./dist/query/rtk-query.modern.mjs"
-      },
-      "react-native": {
-        "import": {
-          "types": "./dist/query/index.d.mts",
-          "default": "./dist/query/rtk-query.modern.mjs"
-        },
-        "default": {
-          "types": "./dist/query/index.d.ts",
-          "default": "./dist/query/cjs/index.js"
-        }
-      },
-      "browser": {
-        "import": {
-          "types": "./dist/query/index.d.mts",
-          "default": "./dist/query/rtk-query.browser.mjs"
-        },
-        "default": {
-          "types": "./dist/query/index.d.ts",
-          "default": "./dist/query/cjs/index.js"
-        }
-      },
-      "import": {
-        "types": "./dist/query/index.d.mts",
-        "default": "./dist/query/rtk-query.modern.mjs"
-      },
-      "default": {
-        "types": "./dist/query/index.d.ts",
-        "default": "./dist/query/cjs/index.js"
-      }
-    },
-    "./query/react": {
-      "module-sync": {
-        "types": "./dist/query/react/index.d.mts",
-        "default": "./dist/query/react/rtk-query-react.modern.mjs"
-      },
-      "module": {
-        "types": "./dist/query/react/index.d.mts",
-        "default": "./dist/query/react/rtk-query-react.modern.mjs"
-      },
-      "react-native": {
-        "import": {
-          "types": "./dist/query/react/index.d.mts",
-          "default": "./dist/query/react/rtk-query-react.modern.mjs"
-        },
-        "default": {
-          "types": "./dist/query/react/index.d.ts",
-          "default": "./dist/query/react/cjs/index.js"
-        }
-      },
-      "browser": {
-        "import": {
-          "types": "./dist/query/react/index.d.mts",
-          "default": "./dist/query/react/rtk-query-react.browser.mjs"
-        },
-        "default": {
-          "types": "./dist/query/react/index.d.ts",
-          "default": "./dist/query/react/cjs/index.js"
-        }
-      },
-      "import": {
-        "types": "./dist/query/react/index.d.mts",
-        "default": "./dist/query/react/rtk-query-react.modern.mjs"
-      },
-      "default": {
-        "types": "./dist/query/react/index.d.ts",
-        "default": "./dist/query/react/cjs/index.js"
-      }
-    }
-  },
-  "devDependencies": {
-    "@arethetypeswrong/cli": "^0.13.5",
-    "@babel/core": "^7.24.8",
-    "@babel/helper-module-imports": "^7.24.7",
-    "@microsoft/api-extractor": "^7.13.2",
-    "@phryneas/ts-version": "^1.0.2",
-    "@size-limit/file": "^11.0.1",
-    "@size-limit/webpack": "^11.0.1",
-    "@testing-library/dom": "^10.4.0",
-    "@testing-library/react": "^16.0.1",
-    "@testing-library/react-render-stream": "^1.0.3",
-    "@testing-library/user-event": "^14.5.2",
-    "@types/babel__core": "^7.20.5",
-    "@types/babel__helper-module-imports": "^7.18.3",
-    "@types/json-stringify-safe": "^5.0.0",
-    "@types/nanoid": "^2.1.0",
-    "@types/node": "^20.11.0",
-    "@types/query-string": "^6.3.0",
-    "@types/react": "^19.0.1",
-    "@types/react-dom": "^19.0.1",
-    "@types/yargs": "^16.0.1",
-    "@typescript-eslint/eslint-plugin": "^6",
-    "@typescript-eslint/parser": "^6",
-    "axios": "^0.19.2",
-    "esbuild": "^0.25.1",
-    "esbuild-extra": "^0.4.0",
-    "eslint": "^7.25.0",
-    "eslint-config-prettier": "^9.1.0",
-    "eslint-config-react-app": "^7.0.1",
-    "eslint-plugin-flowtype": "^5.7.2",
-    "eslint-plugin-import": "^2.22.1",
-    "eslint-plugin-jsx-a11y": "^6.4.1",
-    "eslint-plugin-prettier": "^5.1.3",
-    "eslint-plugin-react": "^7.23.2",
-    "eslint-plugin-react-hooks": "^4.2.0",
-    "fs-extra": "^9.1.0",
-    "invariant": "^2.2.4",
-    "jsdom": "^25.0.1",
-    "json-stringify-safe": "^5.0.1",
-    "msw": "^2.1.4",
-    "node-fetch": "^3.3.2",
-    "prettier": "^3.2.5",
-    "query-string": "^7.0.1",
-    "react": "^19.0.0",
-    "react-dom": "^19.0.0",
-    "rimraf": "^3.0.2",
-    "size-limit": "^11.0.1",
-    "tslib": "^1.10.0",
-    "tsup": "^8.4.0",
-    "tsx": "^4.19.0",
-    "typescript": "^5.8.2",
-    "valibot": "^1.0.0",
-    "vite-tsconfig-paths": "^4.3.1",
-    "vitest": "^4",
-    "yargs": "^15.3.1"
-  },
-  "scripts": {
-    "clean": "rimraf dist",
-    "run-build": "tsup --config=$INIT_CWD/tsup.config.mts",
-    "build": "yarn clean && yarn run-build && tsx scripts/fixUniqueSymbolExports.mts",
-    "build-only": "yarn clean && yarn run-build",
-    "format": "prettier --write \"(src|examples)/**/*.{ts,tsx}\" \"**/*.md\"",
-    "format:check": "prettier --list-different \"(src|examples)/**/*.{ts,tsx}\" \"docs/*/**.md\"",
-    "lint": "eslint src examples",
-    "test": "vitest --typecheck --run ",
-    "test:watch": "vitest --watch",
-    "type-tests": "yarn tsc -p tsconfig.test.json --noEmit",
-    "prepack": "yarn build",
-    "size": "size-limit"
-  },
-  "files": [
-    "dist/",
-    "src/",
-    "query",
-    "react"
-  ],
-  "dependencies": {
-    "@standard-schema/spec": "^1.0.0",
-    "@standard-schema/utils": "^0.3.0",
-    "immer": "^11.0.0",
-    "redux": "^5.0.1",
-    "redux-thunk": "^3.1.0",
-    "reselect": "^5.1.0"
-  },
-  "peerDependencies": {
-    "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
-    "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
-  },
-  "peerDependenciesMeta": {
-    "react": {
-      "optional": true
-    },
-    "react-redux": {
-      "optional": true
-    }
-  },
-  "sideEffects": false,
-  "bugs": {
-    "url": "https://github.com/reduxjs/redux-toolkit/issues"
-  },
-  "homepage": "https://redux-toolkit.js.org"
-}
Index: de_modules/@reduxjs/toolkit/query/package.json
===================================================================
--- node_modules/@reduxjs/toolkit/query/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-{
-  "name": "@reduxjs/toolkit-query",
-  "version": "1.0.0",
-  "description": "",
-  "type": "module",
-  "module": "../dist/query/rtk-query.legacy-esm.js",
-  "main": "../dist/query/cjs/index.js",
-  "types": "./../dist/query/index.d.ts",
-  "react-native": "./../dist/query/rtk-query.legacy-esm.js",
-  "author": "Mark Erikson <mark@isquaredsoftware.com>",
-  "license": "MIT",
-  "sideEffects": false
-}
Index: de_modules/@reduxjs/toolkit/query/react/package.json
===================================================================
--- node_modules/@reduxjs/toolkit/query/react/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-{
-  "name": "@reduxjs/toolkit-query-react",
-  "version": "1.0.0",
-  "description": "",
-  "type": "module",
-  "module": "../../dist/query/react/rtk-query-react.legacy-esm.js",
-  "main": "../../dist/query/react/cjs/index.js",
-  "types": "./../../dist/query/react/index.d.ts",
-  "react-native": "./../../dist/query/react/rtk-query-react.legacy-esm.js",
-  "author": "Mark Erikson <mark@isquaredsoftware.com>",
-  "license": "MIT",
-  "sideEffects": false
-}
Index: de_modules/@reduxjs/toolkit/react/package.json
===================================================================
--- node_modules/@reduxjs/toolkit/react/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-{
-  "name": "@reduxjs/toolkit-react",
-  "version": "1.0.0",
-  "description": "",
-  "type": "module",
-  "module": "../dist/react/redux-toolkit-react.legacy-esm.js",
-  "main": "./../dist/react/redux-toolkit-react.modern.mjs",
-  "types": "./../dist/react/index.d.ts",
-  "react-native": "./../dist/react/redux-toolkit-react.modern.mjs",
-  "author": "Mark Erikson <mark@isquaredsoftware.com>",
-  "license": "MIT",
-  "sideEffects": false
-}
Index: de_modules/@reduxjs/toolkit/src/actionCreatorInvariantMiddleware.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/actionCreatorInvariantMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import type { Middleware } from 'redux'
-import { isActionCreator as isRTKAction } from './createAction'
-
-export interface ActionCreatorInvariantMiddlewareOptions {
-  /**
-   * The function to identify whether a value is an action creator.
-   * The default checks for a function with a static type property and match method.
-   */
-  isActionCreator?: (action: unknown) => action is Function & { type?: unknown }
-}
-
-export function getMessage(type?: unknown) {
-  const splitType = type ? `${type}`.split('/') : []
-  const actionName = splitType[splitType.length - 1] || 'actionCreator'
-  return `Detected an action creator with type "${
-    type || 'unknown'
-  }" being dispatched. 
-Make sure you're calling the action creator before dispatching, i.e. \`dispatch(${actionName}())\` instead of \`dispatch(${actionName})\`. This is necessary even if the action has no payload.`
-}
-
-export function createActionCreatorInvariantMiddleware(
-  options: ActionCreatorInvariantMiddlewareOptions = {},
-): Middleware {
-  if (process.env.NODE_ENV === 'production') {
-    return () => (next) => (action) => next(action)
-  }
-  const { isActionCreator = isRTKAction } = options
-  return () => (next) => (action) => {
-    if (isActionCreator(action)) {
-      console.warn(getMessage(action.type))
-    }
-    return next(action)
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,128 +1,0 @@
-import type { StoreEnhancer } from 'redux'
-
-export const SHOULD_AUTOBATCH = 'RTK_autoBatch'
-
-export const prepareAutoBatched =
-  <T>() =>
-  (payload: T): { payload: T; meta: unknown } => ({
-    payload,
-    meta: { [SHOULD_AUTOBATCH]: true },
-  })
-
-const createQueueWithTimer = (timeout: number) => {
-  return (notify: () => void) => {
-    setTimeout(notify, timeout)
-  }
-}
-
-export type AutoBatchOptions =
-  | { type: 'tick' }
-  | { type: 'timer'; timeout: number }
-  | { type: 'raf' }
-  | { type: 'callback'; queueNotification: (notify: () => void) => void }
-
-/**
- * A Redux store enhancer that watches for "low-priority" actions, and delays
- * notifying subscribers until either the queued callback executes or the
- * next "standard-priority" action is dispatched.
- *
- * This allows dispatching multiple "low-priority" actions in a row with only
- * a single subscriber notification to the UI after the sequence of actions
- * is finished, thus improving UI re-render performance.
- *
- * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.
- * This can be added to `action.meta` manually, or by using the
- * `prepareAutoBatched` helper.
- *
- * By default, it will queue a notification for the end of the event loop tick.
- * However, you can pass several other options to configure the behavior:
- * - `{type: 'tick'}`: queues using `queueMicrotask`
- * - `{type: 'timer', timeout: number}`: queues using `setTimeout`
- * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)
- * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback
- *
- *
- */
-export const autoBatchEnhancer =
-  (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>
-  (next) =>
-  (...args) => {
-    const store = next(...args)
-
-    let notifying = true
-    let shouldNotifyAtEndOfTick = false
-    let notificationQueued = false
-
-    const listeners = new Set<() => void>()
-
-    const queueCallback =
-      options.type === 'tick'
-        ? queueMicrotask
-        : options.type === 'raf'
-          ? // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.
-            typeof window !== 'undefined' && window.requestAnimationFrame
-            ? window.requestAnimationFrame
-            : createQueueWithTimer(10)
-          : options.type === 'callback'
-            ? options.queueNotification
-            : createQueueWithTimer(options.timeout)
-
-    const notifyListeners = () => {
-      // We're running at the end of the event loop tick.
-      // Run the real listener callbacks to actually update the UI.
-      notificationQueued = false
-      if (shouldNotifyAtEndOfTick) {
-        shouldNotifyAtEndOfTick = false
-        listeners.forEach((l) => l())
-      }
-    }
-
-    return Object.assign({}, store, {
-      // Override the base `store.subscribe` method to keep original listeners
-      // from running if we're delaying notifications
-      subscribe(listener: () => void) {
-        // Each wrapped listener will only call the real listener if
-        // the `notifying` flag is currently active when it's called.
-        // This lets the base store work as normal, while the actual UI
-        // update becomes controlled by this enhancer.
-        const wrappedListener: typeof listener = () => notifying && listener()
-        const unsubscribe = store.subscribe(wrappedListener)
-        listeners.add(listener)
-        return () => {
-          unsubscribe()
-          listeners.delete(listener)
-        }
-      },
-      // Override the base `store.dispatch` method so that we can check actions
-      // for the `shouldAutoBatch` flag and determine if batching is active
-      dispatch(action: any) {
-        try {
-          // If the action does _not_ have the `shouldAutoBatch` flag,
-          // we resume/continue normal notify-after-each-dispatch behavior
-          notifying = !action?.meta?.[SHOULD_AUTOBATCH]
-          // If a `notifyListeners` microtask was queued, you can't cancel it.
-          // Instead, we set a flag so that it's a no-op when it does run
-          shouldNotifyAtEndOfTick = !notifying
-          if (shouldNotifyAtEndOfTick) {
-            // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue
-            // a microtask to notify listeners at the end of the event loop tick.
-            // Make sure we only enqueue this _once_ per tick.
-            if (!notificationQueued) {
-              notificationQueued = true
-              queueCallback(notifyListeners)
-            }
-          }
-          // Go ahead and process the action as usual, including reducers.
-          // If normal notification behavior is enabled, the store will notify
-          // all of its own listeners, and the wrapper callbacks above will
-          // see `notifying` is true and pass on to the real listener callbacks.
-          // If we're "batching" behavior, then the wrapped callbacks will
-          // bail out, causing the base store notification behavior to be no-ops.
-          return store.dispatch(action)
-        } finally {
-          // Assume we're back to normal behavior after each action
-          notifying = true
-        }
-      },
-    })
-  }
Index: de_modules/@reduxjs/toolkit/src/combineSlices.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/combineSlices.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,487 +1,0 @@
-import type {
-  PreloadedStateShapeFromReducersMapObject,
-  Reducer,
-  StateFromReducersMapObject,
-  UnknownAction,
-} from 'redux'
-import { combineReducers } from 'redux'
-import { nanoid } from './nanoid'
-import type {
-  Id,
-  NonUndefined,
-  Tail,
-  UnionToIntersection,
-  WithOptionalProp,
-} from './tsHelpers'
-import { getOrInsertComputed } from './utils'
-
-type SliceLike<ReducerPath extends string, State, PreloadedState = State> = {
-  reducerPath: ReducerPath
-  reducer: Reducer<State, any, PreloadedState>
-}
-
-type AnySliceLike = SliceLike<string, any>
-
-type SliceLikeReducerPath<A extends AnySliceLike> =
-  A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never
-
-type SliceLikeState<A extends AnySliceLike> =
-  A extends SliceLike<any, infer State, any> ? State : never
-
-type SliceLikePreloadedState<A extends AnySliceLike> =
-  A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never
-
-export type WithSlice<A extends AnySliceLike> = {
-  [Path in SliceLikeReducerPath<A>]: SliceLikeState<A>
-}
-
-export type WithSlicePreloadedState<A extends AnySliceLike> = {
-  [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A>
-}
-
-type ReducerMap = Record<string, Reducer>
-
-type ExistingSliceLike<DeclaredState, PreloadedState> = {
-  [ReducerPath in keyof DeclaredState]: SliceLike<
-    ReducerPath & string,
-    NonUndefined<DeclaredState[ReducerPath]>,
-    NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>
-  >
-}[keyof DeclaredState]
-
-export type InjectConfig = {
-  /**
-   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.
-   */
-  overrideExisting?: boolean
-}
-
-/**
- * A reducer that allows for slices/reducers to be injected after initialisation.
- */
-export interface CombinedSliceReducer<
-  InitialState,
-  DeclaredState extends InitialState = InitialState,
-  PreloadedState extends Partial<
-    Record<keyof PreloadedState, any>
-  > = Partial<DeclaredState>,
-> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {
-  /**
-   * Provide a type for slices that will be injected lazily.
-   *
-   * One way to do this would be with interface merging:
-   * ```ts
-   *
-   * export interface LazyLoadedSlices {}
-   *
-   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-   *
-   * // elsewhere
-   *
-   * declare module './reducer' {
-   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-   * }
-   *
-   * const withBoolean = rootReducer.inject(booleanSlice);
-   *
-   * // elsewhere again
-   *
-   * declare module './reducer' {
-   *   export interface LazyLoadedSlices {
-   *     customName: CustomState
-   *   }
-   * }
-   *
-   * const withCustom = rootReducer.inject({ reducerPath: "customName", reducer: customSlice.reducer })
-   * ```
-   */
-  withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<
-    InitialState,
-    Id<DeclaredState & Partial<Lazy>>,
-    Id<PreloadedState & Partial<LazyPreloaded>>
-  >
-
-  /**
-   * Inject a slice.
-   *
-   * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-   *
-   * ```ts
-   * rootReducer.inject(booleanSlice)
-   * rootReducer.inject(baseApi)
-   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-   * ```
-   *
-   */
-  inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(
-    slice: Sl,
-    config?: InjectConfig,
-  ): CombinedSliceReducer<
-    InitialState,
-    Id<DeclaredState & WithSlice<Sl>>,
-    Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>
-  >
-
-  /**
-   * Inject a slice.
-   *
-   * Accepts an individual slice, RTKQ API instance, or a "slice-like" { reducerPath, reducer } object.
-   *
-   * ```ts
-   * rootReducer.inject(booleanSlice)
-   * rootReducer.inject(baseApi)
-   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })
-   * ```
-   *
-   */
-  inject<ReducerPath extends string, State, PreloadedState = State>(
-    slice: SliceLike<
-      ReducerPath,
-      State & (ReducerPath extends keyof DeclaredState ? never : State),
-      PreloadedState &
-        (ReducerPath extends keyof PreloadedState ? never : PreloadedState)
-    >,
-    config?: InjectConfig,
-  ): CombinedSliceReducer<
-    InitialState,
-    Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>,
-    Id<
-      PreloadedState &
-        WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>
-    >
-  >
-
-  /**
-   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-   *
-   * ```ts
-   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-   * //                                                                ^? boolean | undefined
-   *
-   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-   *   return state.boolean;
-   *   //           ^? boolean
-   * })
-   * ```
-   *
-   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-   *
-   * ```ts
-   *
-   * export interface LazyLoadedSlices {};
-   *
-   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-   *
-   * export const rootReducer = combineSlices({ inner: innerReducer });
-   *
-   * export type RootState = ReturnType<typeof rootReducer>;
-   *
-   * // elsewhere
-   *
-   * declare module "./reducer.ts" {
-   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-   * }
-   *
-   * const withBool = innerReducer.inject(booleanSlice);
-   *
-   * const selectBoolean = withBool.selector(
-   *   (state) => state.boolean,
-   *   (rootState: RootState) => state.inner
-   * );
-   * //    now expects to be passed RootState instead of innerReducer state
-   *
-   * ```
-   *
-   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-   *
-   * ```ts
-   * const injectedReducer = rootReducer.inject(booleanSlice);
-   * const selectBoolean = injectedReducer.selector((state) => {
-   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-   *   return state.boolean
-   * })
-   * ```
-   */
-  selector: {
-    /**
-     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-     *
-     * ```ts
-     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-     * //                                                                ^? boolean | undefined
-     *
-     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-     *   return state.boolean;
-     *   //           ^? boolean
-     * })
-     * ```
-     *
-     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-     *
-     * ```ts
-     * const injectedReducer = rootReducer.inject(booleanSlice);
-     * const selectBoolean = injectedReducer.selector((state) => {
-     *   console.log(injectedReducer.selector.original(state).boolean) // undefined
-     *   return state.boolean
-     * })
-     * ```
-     */
-    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(
-      selectorFn: Selector,
-    ): (
-      state: WithOptionalProp<
-        Parameters<Selector>[0],
-        Exclude<keyof DeclaredState, keyof InitialState>
-      >,
-      ...args: Tail<Parameters<Selector>>
-    ) => ReturnType<Selector>
-
-    /**
-     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.
-     *
-     * ```ts
-     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;
-     * //                                                                ^? boolean | undefined
-     *
-     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {
-     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined
-     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined
-     *   return state.boolean;
-     *   //           ^? boolean
-     * })
-     * ```
-     *
-     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.
-     *
-     * ```ts
-     *
-     * interface LazyLoadedSlices {};
-     *
-     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();
-     *
-     * const rootReducer = combineSlices({ inner: innerReducer });
-     *
-     * type RootState = ReturnType<typeof rootReducer>;
-     *
-     * // elsewhere
-     *
-     * declare module "./reducer.ts" {
-     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}
-     * }
-     *
-     * const withBool = innerReducer.inject(booleanSlice);
-     *
-     * const selectBoolean = withBool.selector(
-     *   (state) => state.boolean,
-     *   (rootState: RootState) => state.inner
-     * );
-     * //    now expects to be passed RootState instead of innerReducer state
-     *
-     * ```
-     *
-     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)
-     *
-     * ```ts
-     * const injectedReducer = rootReducer.inject(booleanSlice);
-     * const selectBoolean = injectedReducer.selector((state) => {
-     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined
-     *   return state.boolean
-     * })
-     * ```
-     */
-    <
-      Selector extends (state: DeclaredState, ...args: any[]) => unknown,
-      RootState,
-    >(
-      selectorFn: Selector,
-      selectState: (
-        rootState: RootState,
-        ...args: Tail<Parameters<Selector>>
-      ) => WithOptionalProp<
-        Parameters<Selector>[0],
-        Exclude<keyof DeclaredState, keyof InitialState>
-      >,
-    ): (
-      state: RootState,
-      ...args: Tail<Parameters<Selector>>
-    ) => ReturnType<Selector>
-    /**
-     * Returns the unproxied state. Useful for debugging.
-     * @param state state Proxy, that ensures injected reducers have value
-     * @returns original, unproxied state
-     * @throws if value passed is not a state Proxy
-     */
-    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>
-  }
-}
-
-type InitialState<Slices extends Array<AnySliceLike | ReducerMap>> =
-  UnionToIntersection<
-    Slices[number] extends infer Slice
-      ? Slice extends AnySliceLike
-        ? WithSlice<Slice>
-        : StateFromReducersMapObject<Slice>
-      : never
-  >
-
-type InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> =
-  UnionToIntersection<
-    Slices[number] extends infer Slice
-      ? Slice extends AnySliceLike
-        ? WithSlicePreloadedState<Slice>
-        : PreloadedStateShapeFromReducersMapObject<Slice>
-      : never
-  >
-
-const isSliceLike = (
-  maybeSliceLike: AnySliceLike | ReducerMap,
-): maybeSliceLike is AnySliceLike =>
-  'reducerPath' in maybeSliceLike &&
-  typeof maybeSliceLike.reducerPath === 'string'
-
-const getReducers = (slices: Array<AnySliceLike | ReducerMap>) =>
-  slices.flatMap<[string, Reducer]>((sliceOrMap) =>
-    isSliceLike(sliceOrMap)
-      ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]]
-      : Object.entries(sliceOrMap),
-  )
-
-const ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original')
-
-const isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE]
-
-const stateProxyMap = new WeakMap<object, object>()
-
-const createStateProxy = <State extends object>(
-  state: State,
-  reducerMap: Partial<Record<PropertyKey, Reducer>>,
-  initialStateCache: Record<PropertyKey, unknown>,
-) =>
-  getOrInsertComputed(
-    stateProxyMap,
-    state,
-    () =>
-      new Proxy(state, {
-        get: (target, prop, receiver) => {
-          if (prop === ORIGINAL_STATE) return target
-          const result = Reflect.get(target, prop, receiver)
-          if (typeof result === 'undefined') {
-            const cached = initialStateCache[prop]
-            if (typeof cached !== 'undefined') return cached
-            const reducer = reducerMap[prop]
-            if (reducer) {
-              // ensure action type is random, to prevent reducer treating it differently
-              const reducerResult = reducer(undefined, { type: nanoid() })
-              if (typeof reducerResult === 'undefined') {
-                throw new Error(
-                  `The slice reducer for key "${prop.toString()}" returned undefined when called for selector(). ` +
-                    `If the state passed to the reducer is undefined, you must ` +
-                    `explicitly return the initial state. The initial state may ` +
-                    `not be undefined. If you don't want to set a value for this reducer, ` +
-                    `you can use null instead of undefined.`,
-                )
-              }
-              initialStateCache[prop] = reducerResult
-              return reducerResult
-            }
-          }
-          return result
-        },
-      }),
-  ) as State
-
-const original = (state: any) => {
-  if (!isStateProxy(state)) {
-    throw new Error('original must be used on state Proxy')
-  }
-  return state[ORIGINAL_STATE]
-}
-
-const emptyObject = {}
-const noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state
-
-export function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(
-  ...slices: Slices
-): CombinedSliceReducer<
-  Id<InitialState<Slices>>,
-  Id<InitialState<Slices>>,
-  Partial<Id<InitialPreloadedState<Slices>>>
-> {
-  const reducerMap = Object.fromEntries(getReducers(slices))
-
-  const getReducer = () =>
-    Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer
-
-  let reducer = getReducer()
-
-  function combinedReducer(
-    state: Record<string, unknown>,
-    action: UnknownAction,
-  ) {
-    return reducer(state, action)
-  }
-
-  combinedReducer.withLazyLoadedSlices = () => combinedReducer
-
-  const initialStateCache: Record<PropertyKey, unknown> = {}
-
-  const inject = (
-    slice: AnySliceLike,
-    config: InjectConfig = {},
-  ): typeof combinedReducer => {
-    const { reducerPath, reducer: reducerToInject } = slice
-
-    const currentReducer = reducerMap[reducerPath]
-    if (
-      !config.overrideExisting &&
-      currentReducer &&
-      currentReducer !== reducerToInject
-    ) {
-      if (
-        typeof process !== 'undefined' &&
-        process.env.NODE_ENV === 'development'
-      ) {
-        console.error(
-          `called \`inject\` to override already-existing reducer ${reducerPath} without specifying \`overrideExisting: true\``,
-        )
-      }
-
-      return combinedReducer
-    }
-
-    if (config.overrideExisting && currentReducer !== reducerToInject) {
-      delete initialStateCache[reducerPath]
-    }
-
-    reducerMap[reducerPath] = reducerToInject
-
-    reducer = getReducer()
-
-    return combinedReducer
-  }
-
-  const selector = Object.assign(
-    function makeSelector<State extends object, RootState, Args extends any[]>(
-      selectorFn: (state: State, ...args: Args) => any,
-      selectState?: (rootState: RootState, ...args: Args) => State,
-    ) {
-      return function selector(state: State, ...args: Args) {
-        return selectorFn(
-          createStateProxy(
-            selectState ? selectState(state as any, ...args) : state,
-            reducerMap,
-            initialStateCache,
-          ),
-          ...args,
-        )
-      }
-    },
-    { original },
-  )
-
-  return Object.assign(combinedReducer, { inject, selector }) as any
-}
Index: de_modules/@reduxjs/toolkit/src/configureStore.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/configureStore.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,248 +1,0 @@
-import type {
-  Reducer,
-  ReducersMapObject,
-  Middleware,
-  Action,
-  StoreEnhancer,
-  Store,
-  UnknownAction,
-} from 'redux'
-import {
-  applyMiddleware,
-  createStore,
-  compose,
-  combineReducers,
-  isPlainObject,
-} from './reduxImports'
-import type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'
-import { composeWithDevTools } from './devtoolsExtension'
-
-import type {
-  ThunkMiddlewareFor,
-  GetDefaultMiddleware,
-} from './getDefaultMiddleware'
-import { buildGetDefaultMiddleware } from './getDefaultMiddleware'
-import type {
-  ExtractDispatchExtensions,
-  ExtractStoreExtensions,
-  ExtractStateExtensions,
-  UnknownIfNonSpecific,
-} from './tsHelpers'
-import type { Tuple } from './utils'
-import type { GetDefaultEnhancers } from './getDefaultEnhancers'
-import { buildGetDefaultEnhancers } from './getDefaultEnhancers'
-
-/**
- * Options for `configureStore()`.
- *
- * @public
- */
-export interface ConfigureStoreOptions<
-  S = any,
-  A extends Action = UnknownAction,
-  M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>,
-  E extends Tuple<Enhancers> = Tuple<Enhancers>,
-  P = S,
-> {
-  /**
-   * A single reducer function that will be used as the root reducer, or an
-   * object of slice reducers that will be passed to `combineReducers()`.
-   */
-  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>
-
-  /**
-   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.
-   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.
-   *
-   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`
-   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage
-   */
-  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M
-
-  /**
-   * Whether to enable Redux DevTools integration. Defaults to `true`.
-   *
-   * Additional configuration can be done by passing Redux DevTools options
-   */
-  devTools?: boolean | DevToolsOptions
-
-  /**
-   * Whether to check for duplicate middleware instances. Defaults to `true`.
-   */
-  duplicateMiddlewareCheck?: boolean
-
-  /**
-   * The initial state, same as Redux's createStore.
-   * You may optionally specify it to hydrate the state
-   * from the server in universal apps, or to restore a previously serialized
-   * user session. If you use `combineReducers()` to produce the root reducer
-   * function (either directly or indirectly by passing an object as `reducer`),
-   * this must be an object with the same shape as the reducer map keys.
-   */
-  // we infer here, and instead complain if the reducer doesn't match
-  preloadedState?: P
-
-  /**
-   * The store enhancers to apply. See Redux's `createStore()`.
-   * All enhancers will be included before the DevTools Extension enhancer.
-   * If you need to customize the order of enhancers, supply a callback
-   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,
-   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).
-   * If you only need to add middleware, you can use the `middleware` parameter instead.
-   */
-  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E
-}
-
-export type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>
-
-type Enhancers = ReadonlyArray<StoreEnhancer>
-
-/**
- * A Redux store returned by `configureStore()`. Supports dispatching
- * side-effectful _thunks_ in addition to plain actions.
- *
- * @public
- */
-export type EnhancedStore<
-  S = any,
-  A extends Action = UnknownAction,
-  E extends Enhancers = Enhancers,
-> = ExtractStoreExtensions<E> &
-  Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>
-
-/**
- * A friendly abstraction over the standard Redux `createStore()` function.
- *
- * @param options The store configuration.
- * @returns A configured Redux store.
- *
- * @public
- */
-export function configureStore<
-  S = any,
-  A extends Action = UnknownAction,
-  M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>,
-  E extends Tuple<Enhancers> = Tuple<
-    [StoreEnhancer<{ dispatch: ExtractDispatchExtensions<M> }>, StoreEnhancer]
-  >,
-  P = S,
->(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {
-  const getDefaultMiddleware = buildGetDefaultMiddleware<S>()
-
-  const {
-    reducer = undefined,
-    middleware,
-    devTools = true,
-    duplicateMiddlewareCheck = true,
-    preloadedState = undefined,
-    enhancers = undefined,
-  } = options || {}
-
-  let rootReducer: Reducer<S, A, P>
-
-  if (typeof reducer === 'function') {
-    rootReducer = reducer
-  } else if (isPlainObject(reducer)) {
-    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>
-  } else {
-    throw new Error(
-      '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers',
-    )
-  }
-
-  if (
-    process.env.NODE_ENV !== 'production' &&
-    middleware &&
-    typeof middleware !== 'function'
-  ) {
-    throw new Error('`middleware` field must be a callback')
-  }
-
-  let finalMiddleware: Tuple<Middlewares<S>>
-  if (typeof middleware === 'function') {
-    finalMiddleware = middleware(getDefaultMiddleware)
-
-    if (
-      process.env.NODE_ENV !== 'production' &&
-      !Array.isArray(finalMiddleware)
-    ) {
-      throw new Error(
-        'when using a middleware builder function, an array of middleware must be returned',
-      )
-    }
-  } else {
-    finalMiddleware = getDefaultMiddleware()
-  }
-  if (
-    process.env.NODE_ENV !== 'production' &&
-    finalMiddleware.some((item: any) => typeof item !== 'function')
-  ) {
-    throw new Error(
-      'each middleware provided to configureStore must be a function',
-    )
-  }
-
-  if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {
-    let middlewareReferences = new Set<Middleware<any, S>>()
-    finalMiddleware.forEach((middleware) => {
-      if (middlewareReferences.has(middleware)) {
-        throw new Error(
-          'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.',
-        )
-      }
-      middlewareReferences.add(middleware)
-    })
-  }
-
-  let finalCompose = compose
-
-  if (devTools) {
-    finalCompose = composeWithDevTools({
-      // Enable capture of stack traces for dispatched Redux actions
-      trace: process.env.NODE_ENV !== 'production',
-      ...(typeof devTools === 'object' && devTools),
-    })
-  }
-
-  const middlewareEnhancer = applyMiddleware(...finalMiddleware)
-
-  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer)
-
-  if (
-    process.env.NODE_ENV !== 'production' &&
-    enhancers &&
-    typeof enhancers !== 'function'
-  ) {
-    throw new Error('`enhancers` field must be a callback')
-  }
-
-  let storeEnhancers =
-    typeof enhancers === 'function'
-      ? enhancers(getDefaultEnhancers)
-      : getDefaultEnhancers()
-
-  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {
-    throw new Error('`enhancers` callback must return an array')
-  }
-  if (
-    process.env.NODE_ENV !== 'production' &&
-    storeEnhancers.some((item: any) => typeof item !== 'function')
-  ) {
-    throw new Error(
-      'each enhancer provided to configureStore must be a function',
-    )
-  }
-  if (
-    process.env.NODE_ENV !== 'production' &&
-    finalMiddleware.length &&
-    !storeEnhancers.includes(middlewareEnhancer)
-  ) {
-    console.error(
-      'middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`',
-    )
-  }
-
-  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers)
-
-  return createStore(rootReducer, preloadedState as P, composedEnhancer)
-}
Index: de_modules/@reduxjs/toolkit/src/createAction.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/createAction.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,324 +1,0 @@
-import { isAction } from './reduxImports'
-import type {
-  IsUnknownOrNonInferrable,
-  IfMaybeUndefined,
-  IfVoid,
-  IsAny,
-} from './tsHelpers'
-import { hasMatchFunction } from './tsHelpers'
-
-/**
- * An action with a string type and an associated payload. This is the
- * type of action returned by `createAction()` action creators.
- *
- * @template P The type of the action's payload.
- * @template T the type used for the action type.
- * @template M The type of the action's meta (optional)
- * @template E The type of the action's error (optional)
- *
- * @public
- */
-export type PayloadAction<
-  P = void,
-  T extends string = string,
-  M = never,
-  E = never,
-> = {
-  payload: P
-  type: T
-} & ([M] extends [never]
-  ? {}
-  : {
-      meta: M
-    }) &
-  ([E] extends [never]
-    ? {}
-    : {
-        error: E
-      })
-
-/**
- * A "prepare" method to be used as the second parameter of `createAction`.
- * Takes any number of arguments and returns a Flux Standard Action without
- * type (will be added later) that *must* contain a payload (might be undefined).
- *
- * @public
- */
-export type PrepareAction<P> =
-  | ((...args: any[]) => { payload: P })
-  | ((...args: any[]) => { payload: P; meta: any })
-  | ((...args: any[]) => { payload: P; error: any })
-  | ((...args: any[]) => { payload: P; meta: any; error: any })
-
-/**
- * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.
- *
- * @internal
- */
-export type _ActionCreatorWithPreparedPayload<
-  PA extends PrepareAction<any> | void,
-  T extends string = string,
-> =
-  PA extends PrepareAction<infer P>
-    ? ActionCreatorWithPreparedPayload<
-        Parameters<PA>,
-        P,
-        T,
-        ReturnType<PA> extends {
-          error: infer E
-        }
-          ? E
-          : never,
-        ReturnType<PA> extends {
-          meta: infer M
-        }
-          ? M
-          : never
-      >
-    : void
-
-/**
- * Basic type for all action creators.
- *
- * @inheritdoc {redux#ActionCreator}
- */
-export type BaseActionCreator<P, T extends string, M = never, E = never> = {
-  type: T
-  match: (action: unknown) => action is PayloadAction<P, T, M, E>
-}
-
-/**
- * An action creator that takes multiple arguments that are passed
- * to a `PrepareAction` method to create the final Action.
- * @typeParam Args arguments for the action creator function
- * @typeParam P `payload` type
- * @typeParam T `type` name
- * @typeParam E optional `error` type
- * @typeParam M optional `meta` type
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-export interface ActionCreatorWithPreparedPayload<
-  Args extends unknown[],
-  P,
-  T extends string = string,
-  E = never,
-  M = never,
-> extends BaseActionCreator<P, T, M, E> {
-  /**
-   * Calling this {@link redux#ActionCreator} with `Args` will return
-   * an Action with a payload of type `P` and (depending on the `PrepareAction`
-   * method used) a `meta`- and `error` property of types `M` and `E` respectively.
-   */
-  (...args: Args): PayloadAction<P, T, M, E>
-}
-
-/**
- * An action creator of type `T` that takes an optional payload of type `P`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-export interface ActionCreatorWithOptionalPayload<P, T extends string = string>
-  extends BaseActionCreator<P, T> {
-  /**
-   * Calling this {@link redux#ActionCreator} with an argument will
-   * return a {@link PayloadAction} of type `T` with a payload of `P`.
-   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.
-   */
-  (payload?: P): PayloadAction<P, T>
-}
-
-/**
- * An action creator of type `T` that takes no payload.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-export interface ActionCreatorWithoutPayload<T extends string = string>
-  extends BaseActionCreator<undefined, T> {
-  /**
-   * Calling this {@link redux#ActionCreator} will
-   * return a {@link PayloadAction} of type `T` with a payload of `undefined`
-   */
-  (noArgument: void): PayloadAction<undefined, T>
-}
-
-/**
- * An action creator of type `T` that requires a payload of type P.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-export interface ActionCreatorWithPayload<P, T extends string = string>
-  extends BaseActionCreator<P, T> {
-  /**
-   * Calling this {@link redux#ActionCreator} with an argument will
-   * return a {@link PayloadAction} of type `T` with a payload of `P`
-   */
-  (payload: P): PayloadAction<P, T>
-}
-
-/**
- * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.
- *
- * @inheritdoc {redux#ActionCreator}
- *
- * @public
- */
-export interface ActionCreatorWithNonInferrablePayload<
-  T extends string = string,
-> extends BaseActionCreator<unknown, T> {
-  /**
-   * Calling this {@link redux#ActionCreator} with an argument will
-   * return a {@link PayloadAction} of type `T` with a payload
-   * of exactly the type of the argument.
-   */
-  <PT extends unknown>(payload: PT): PayloadAction<PT, T>
-}
-
-/**
- * An action creator that produces actions with a `payload` attribute.
- *
- * @typeParam P the `payload` type
- * @typeParam T the `type` of the resulting action
- * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.
- *
- * @public
- */
-export type PayloadActionCreator<
-  P = void,
-  T extends string = string,
-  PA extends PrepareAction<P> | void = void,
-> = IfPrepareActionMethodProvided<
-  PA,
-  _ActionCreatorWithPreparedPayload<PA, T>,
-  // else
-  IsAny<
-    P,
-    ActionCreatorWithPayload<any, T>,
-    IsUnknownOrNonInferrable<
-      P,
-      ActionCreatorWithNonInferrablePayload<T>,
-      // else
-      IfVoid<
-        P,
-        ActionCreatorWithoutPayload<T>,
-        // else
-        IfMaybeUndefined<
-          P,
-          ActionCreatorWithOptionalPayload<P, T>,
-          // else
-          ActionCreatorWithPayload<P, T>
-        >
-      >
-    >
-  >
->
-
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-export function createAction<P = void, T extends string = string>(
-  type: T,
-): PayloadActionCreator<P, T>
-
-/**
- * A utility function to create an action creator for the given action type
- * string. The action creator accepts a single argument, which will be included
- * in the action object as a field called payload. The action creator function
- * will also have its toString() overridden so that it returns the action type.
- *
- * @param type The action type to use for created actions.
- * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.
- *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.
- *
- * @public
- */
-export function createAction<
-  PA extends PrepareAction<any>,
-  T extends string = string,
->(
-  type: T,
-  prepareAction: PA,
-): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>
-
-export function createAction(type: string, prepareAction?: Function): any {
-  function actionCreator(...args: any[]) {
-    if (prepareAction) {
-      let prepared = prepareAction(...args)
-      if (!prepared) {
-        throw new Error('prepareAction did not return an object')
-      }
-
-      return {
-        type,
-        payload: prepared.payload,
-        ...('meta' in prepared && { meta: prepared.meta }),
-        ...('error' in prepared && { error: prepared.error }),
-      }
-    }
-    return { type, payload: args[0] }
-  }
-
-  actionCreator.toString = () => `${type}`
-
-  actionCreator.type = type
-
-  actionCreator.match = (action: unknown): action is PayloadAction =>
-    isAction(action) && action.type === type
-
-  return actionCreator
-}
-
-/**
- * Returns true if value is an RTK-like action creator, with a static type property and match method.
- */
-export function isActionCreator(
-  action: unknown,
-): action is BaseActionCreator<unknown, string> & Function {
-  return (
-    typeof action === 'function' &&
-    'type' in action &&
-    // hasMatchFunction only wants Matchers but I don't see the point in rewriting it
-    hasMatchFunction(action as any)
-  )
-}
-
-/**
- * Returns true if value is an action with a string type and valid Flux Standard Action keys.
- */
-export function isFSA(action: unknown): action is {
-  type: string
-  payload?: unknown
-  error?: unknown
-  meta?: unknown
-} {
-  return isAction(action) && Object.keys(action).every(isValidKey)
-}
-
-function isValidKey(key: string) {
-  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1
-}
-
-// helper types for more readable typings
-
-type IfPrepareActionMethodProvided<
-  PA extends PrepareAction<any> | void,
-  True,
-  False,
-> = PA extends (...args: any[]) => any ? True : False
Index: de_modules/@reduxjs/toolkit/src/createAsyncThunk.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,791 +1,0 @@
-import type { Dispatch, UnknownAction } from 'redux'
-import type { ThunkDispatch } from 'redux-thunk'
-import type { ActionCreatorWithPreparedPayload } from './createAction'
-import { createAction } from './createAction'
-import { isAnyOf } from './matchers'
-import { nanoid } from './nanoid'
-import type {
-  FallbackIfUnknown,
-  Id,
-  IsAny,
-  IsUnknown,
-  SafePromise,
-} from './tsHelpers'
-
-export type BaseThunkAPI<
-  S,
-  E,
-  D extends Dispatch = Dispatch,
-  RejectedValue = unknown,
-  RejectedMeta = unknown,
-  FulfilledMeta = unknown,
-> = {
-  dispatch: D
-  getState: () => S
-  extra: E
-  requestId: string
-  signal: AbortSignal
-  abort: (reason?: string) => void
-  rejectWithValue: IsUnknown<
-    RejectedMeta,
-    (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>,
-    (
-      value: RejectedValue,
-      meta: RejectedMeta,
-    ) => RejectWithValue<RejectedValue, RejectedMeta>
-  >
-  fulfillWithValue: IsUnknown<
-    FulfilledMeta,
-    <FulfilledValue>(value: FulfilledValue) => FulfilledValue,
-    <FulfilledValue>(
-      value: FulfilledValue,
-      meta: FulfilledMeta,
-    ) => FulfillWithMeta<FulfilledValue, FulfilledMeta>
-  >
-}
-
-/**
- * @public
- */
-export interface SerializedError {
-  name?: string
-  message?: string
-  stack?: string
-  code?: string
-}
-
-const commonProperties: Array<keyof SerializedError> = [
-  'name',
-  'message',
-  'stack',
-  'code',
-]
-
-class RejectWithValue<Payload, RejectedMeta> {
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  private readonly _type!: 'RejectWithValue'
-  constructor(
-    public readonly payload: Payload,
-    public readonly meta: RejectedMeta,
-  ) {}
-}
-
-class FulfillWithMeta<Payload, FulfilledMeta> {
-  /*
-  type-only property to distinguish between RejectWithValue and FulfillWithMeta
-  does not exist at runtime
-  */
-  private readonly _type!: 'FulfillWithMeta'
-  constructor(
-    public readonly payload: Payload,
-    public readonly meta: FulfilledMeta,
-  ) {}
-}
-
-/**
- * Serializes an error into a plain object.
- * Reworked from https://github.com/sindresorhus/serialize-error
- *
- * @public
- */
-export const miniSerializeError = (value: any): SerializedError => {
-  if (typeof value === 'object' && value !== null) {
-    const simpleError: SerializedError = {}
-    for (const property of commonProperties) {
-      if (typeof value[property] === 'string') {
-        simpleError[property] = value[property]
-      }
-    }
-
-    return simpleError
-  }
-
-  return { message: String(value) }
-}
-
-export type AsyncThunkConfig = {
-  state?: unknown
-  dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>
-  extra?: unknown
-  rejectValue?: unknown
-  serializedErrorType?: unknown
-  pendingMeta?: unknown
-  fulfilledMeta?: unknown
-  rejectedMeta?: unknown
-}
-
-export type GetState<ThunkApiConfig> = ThunkApiConfig extends {
-  state: infer State
-}
-  ? State
-  : unknown
-
-type GetExtra<ThunkApiConfig> = ThunkApiConfig extends { extra: infer Extra }
-  ? Extra
-  : unknown
-type GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {
-  dispatch: infer Dispatch
-}
-  ? FallbackIfUnknown<
-      Dispatch,
-      ThunkDispatch<
-        GetState<ThunkApiConfig>,
-        GetExtra<ThunkApiConfig>,
-        UnknownAction
-      >
-    >
-  : ThunkDispatch<
-      GetState<ThunkApiConfig>,
-      GetExtra<ThunkApiConfig>,
-      UnknownAction
-    >
-
-export type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<
-  GetState<ThunkApiConfig>,
-  GetExtra<ThunkApiConfig>,
-  GetDispatch<ThunkApiConfig>,
-  GetRejectValue<ThunkApiConfig>,
-  GetRejectedMeta<ThunkApiConfig>,
-  GetFulfilledMeta<ThunkApiConfig>
->
-
-type GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {
-  rejectValue: infer RejectValue
-}
-  ? RejectValue
-  : unknown
-
-type GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {
-  pendingMeta: infer PendingMeta
-}
-  ? PendingMeta
-  : unknown
-
-type GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {
-  fulfilledMeta: infer FulfilledMeta
-}
-  ? FulfilledMeta
-  : unknown
-
-type GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {
-  rejectedMeta: infer RejectedMeta
-}
-  ? RejectedMeta
-  : unknown
-
-type GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {
-  serializedErrorType: infer GetSerializedErrorType
-}
-  ? GetSerializedErrorType
-  : SerializedError
-
-type MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)
-
-/**
- * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-export type AsyncThunkPayloadCreatorReturnValue<
-  Returned,
-  ThunkApiConfig extends AsyncThunkConfig,
-> = MaybePromise<
-  | IsUnknown<
-      GetFulfilledMeta<ThunkApiConfig>,
-      Returned,
-      FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>
-    >
-  | RejectWithValue<
-      GetRejectValue<ThunkApiConfig>,
-      GetRejectedMeta<ThunkApiConfig>
-    >
->
-/**
- * A type describing the `payloadCreator` argument to `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-export type AsyncThunkPayloadCreator<
-  Returned,
-  ThunkArg = void,
-  ThunkApiConfig extends AsyncThunkConfig = {},
-> = (
-  arg: ThunkArg,
-  thunkAPI: GetThunkAPI<ThunkApiConfig>,
-) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>
-
-/**
- * A ThunkAction created by `createAsyncThunk`.
- * Dispatching it returns a Promise for either a
- * fulfilled or rejected action.
- * Also, the returned value contains an `abort()` method
- * that allows the asyncAction to be cancelled from the outside.
- *
- * @public
- */
-export type AsyncThunkAction<
-  Returned,
-  ThunkArg,
-  ThunkApiConfig extends AsyncThunkConfig,
-> = (
-  dispatch: NonNullable<GetDispatch<ThunkApiConfig>>,
-  getState: () => GetState<ThunkApiConfig>,
-  extra: GetExtra<ThunkApiConfig>,
-) => SafePromise<
-  | ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>>
-  | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>
-> & {
-  abort: (reason?: string) => void
-  requestId: string
-  arg: ThunkArg
-  unwrap: () => Promise<Returned>
-}
-
-/**
- * Config provided when calling the async thunk action creator.
- */
-export interface AsyncThunkDispatchConfig {
-  /**
-   * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.
-   */
-  signal?: AbortSignal
-}
-
-type AsyncThunkActionCreator<
-  Returned,
-  ThunkArg,
-  ThunkApiConfig extends AsyncThunkConfig,
-> = IsAny<
-  ThunkArg,
-  // any handling
-  (
-    arg: ThunkArg,
-    config?: AsyncThunkDispatchConfig,
-  ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,
-  // unknown handling
-  unknown extends ThunkArg
-    ? (
-        arg: ThunkArg,
-        config?: AsyncThunkDispatchConfig,
-      ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined
-    : [ThunkArg] extends [void] | [undefined]
-      ? (
-          arg?: undefined,
-          config?: AsyncThunkDispatchConfig,
-        ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void
-      : [void] extends [ThunkArg] // make optional
-        ? (
-            arg?: ThunkArg,
-            config?: AsyncThunkDispatchConfig,
-          ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined
-        : [undefined] extends [ThunkArg]
-          ? WithStrictNullChecks<
-              // with strict nullChecks: make optional
-              (
-                arg?: ThunkArg,
-                config?: AsyncThunkDispatchConfig,
-              ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,
-              // without strict null checks this will match everything, so don't make it optional
-              (
-                arg: ThunkArg,
-                config?: AsyncThunkDispatchConfig,
-              ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>
-            > // default case: normal argument
-          : (
-              arg: ThunkArg,
-              config?: AsyncThunkDispatchConfig,
-            ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>
->
-
-/**
- * Options object for `createAsyncThunk`.
- *
- * @public
- */
-export type AsyncThunkOptions<
-  ThunkArg = void,
-  ThunkApiConfig extends AsyncThunkConfig = {},
-> = {
-  /**
-   * A method to control whether the asyncThunk should be executed. Has access to the
-   * `arg`, `api.getState()` and `api.extra` arguments.
-   *
-   * @returns `false` if it should be skipped
-   */
-  condition?(
-    arg: ThunkArg,
-    api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>,
-  ): MaybePromise<boolean | undefined>
-  /**
-   * If `condition` returns `false`, the asyncThunk will be skipped.
-   * This option allows you to control whether a `rejected` action with `meta.condition == false`
-   * will be dispatched or not.
-   *
-   * @default `false`
-   */
-  dispatchConditionRejection?: boolean
-
-  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>
-
-  /**
-   * A function to use when generating the `requestId` for the request sequence.
-   *
-   * @default `nanoid`
-   */
-  idGenerator?: (arg: ThunkArg) => string
-} & IsUnknown<
-  GetPendingMeta<ThunkApiConfig>,
-  {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     *
-     * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.
-     * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload
-     */
-    getPendingMeta?(
-      base: {
-        arg: ThunkArg
-        requestId: string
-      },
-      api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>,
-    ): GetPendingMeta<ThunkApiConfig>
-  },
-  {
-    /**
-     * A method to generate additional properties to be added to `meta` of the pending action.
-     */
-    getPendingMeta(
-      base: {
-        arg: ThunkArg
-        requestId: string
-      },
-      api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>,
-    ): GetPendingMeta<ThunkApiConfig>
-  }
->
-
-export type AsyncThunkPendingActionCreator<
-  ThunkArg,
-  ThunkApiConfig = {},
-> = ActionCreatorWithPreparedPayload<
-  [string, ThunkArg, GetPendingMeta<ThunkApiConfig>?],
-  undefined,
-  string,
-  never,
-  {
-    arg: ThunkArg
-    requestId: string
-    requestStatus: 'pending'
-  } & GetPendingMeta<ThunkApiConfig>
->
-
-export type AsyncThunkRejectedActionCreator<
-  ThunkArg,
-  ThunkApiConfig = {},
-> = ActionCreatorWithPreparedPayload<
-  [
-    Error | null,
-    string,
-    ThunkArg,
-    GetRejectValue<ThunkApiConfig>?,
-    GetRejectedMeta<ThunkApiConfig>?,
-  ],
-  GetRejectValue<ThunkApiConfig> | undefined,
-  string,
-  GetSerializedErrorType<ThunkApiConfig>,
-  {
-    arg: ThunkArg
-    requestId: string
-    requestStatus: 'rejected'
-    aborted: boolean
-    condition: boolean
-  } & (
-    | ({ rejectedWithValue: false } & {
-        [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined
-      })
-    | ({ rejectedWithValue: true } & GetRejectedMeta<ThunkApiConfig>)
-  )
->
-
-export type AsyncThunkFulfilledActionCreator<
-  Returned,
-  ThunkArg,
-  ThunkApiConfig = {},
-> = ActionCreatorWithPreparedPayload<
-  [Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?],
-  Returned,
-  string,
-  never,
-  {
-    arg: ThunkArg
-    requestId: string
-    requestStatus: 'fulfilled'
-  } & GetFulfilledMeta<ThunkApiConfig>
->
-
-/**
- * A type describing the return value of `createAsyncThunk`.
- * Might be useful for wrapping `createAsyncThunk` in custom abstractions.
- *
- * @public
- */
-export type AsyncThunk<
-  Returned,
-  ThunkArg,
-  ThunkApiConfig extends AsyncThunkConfig,
-> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {
-  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>
-  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>
-  fulfilled: AsyncThunkFulfilledActionCreator<
-    Returned,
-    ThunkArg,
-    ThunkApiConfig
-  >
-  // matchSettled?
-  settled: (
-    action: any,
-  ) => action is ReturnType<
-    | AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>
-    | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>
-  >
-  typePrefix: string
-}
-
-export type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<
-  NewConfig & Omit<OldConfig, keyof NewConfig>
->
-
-export type CreateAsyncThunkFunction<
-  CurriedThunkApiConfig extends AsyncThunkConfig,
-> = {
-  /**
-   *
-   * @param typePrefix
-   * @param payloadCreator
-   * @param options
-   *
-   * @public
-   */
-  // separate signature without `AsyncThunkConfig` for better inference
-  <Returned, ThunkArg = void>(
-    typePrefix: string,
-    payloadCreator: AsyncThunkPayloadCreator<
-      Returned,
-      ThunkArg,
-      CurriedThunkApiConfig
-    >,
-    options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>,
-  ): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>
-
-  /**
-   *
-   * @param typePrefix
-   * @param payloadCreator
-   * @param options
-   *
-   * @public
-   */
-  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(
-    typePrefix: string,
-    payloadCreator: AsyncThunkPayloadCreator<
-      Returned,
-      ThunkArg,
-      OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>
-    >,
-    options?: AsyncThunkOptions<
-      ThunkArg,
-      OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>
-    >,
-  ): AsyncThunk<
-    Returned,
-    ThunkArg,
-    OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>
-  >
-}
-
-type CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> =
-  CreateAsyncThunkFunction<CurriedThunkApiConfig> & {
-    withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<
-      OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>
-    >
-  }
-
-const externalAbortMessage = 'External signal was aborted'
-
-export const createAsyncThunk = /* @__PURE__ */ (() => {
-  function createAsyncThunk<
-    Returned,
-    ThunkArg,
-    ThunkApiConfig extends AsyncThunkConfig,
-  >(
-    typePrefix: string,
-    payloadCreator: AsyncThunkPayloadCreator<
-      Returned,
-      ThunkArg,
-      ThunkApiConfig
-    >,
-    options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>,
-  ): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {
-    type RejectedValue = GetRejectValue<ThunkApiConfig>
-    type PendingMeta = GetPendingMeta<ThunkApiConfig>
-    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>
-    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>
-
-    const fulfilled: AsyncThunkFulfilledActionCreator<
-      Returned,
-      ThunkArg,
-      ThunkApiConfig
-    > = createAction(
-      typePrefix + '/fulfilled',
-      (
-        payload: Returned,
-        requestId: string,
-        arg: ThunkArg,
-        meta?: FulfilledMeta,
-      ) => ({
-        payload,
-        meta: {
-          ...((meta as any) || {}),
-          arg,
-          requestId,
-          requestStatus: 'fulfilled' as const,
-        },
-      }),
-    )
-
-    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> =
-      createAction(
-        typePrefix + '/pending',
-        (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({
-          payload: undefined,
-          meta: {
-            ...((meta as any) || {}),
-            arg,
-            requestId,
-            requestStatus: 'pending' as const,
-          },
-        }),
-      )
-
-    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> =
-      createAction(
-        typePrefix + '/rejected',
-        (
-          error: Error | null,
-          requestId: string,
-          arg: ThunkArg,
-          payload?: RejectedValue,
-          meta?: RejectedMeta,
-        ) => ({
-          payload,
-          error: ((options && options.serializeError) || miniSerializeError)(
-            error || 'Rejected',
-          ) as GetSerializedErrorType<ThunkApiConfig>,
-          meta: {
-            ...((meta as any) || {}),
-            arg,
-            requestId,
-            rejectedWithValue: !!payload,
-            requestStatus: 'rejected' as const,
-            aborted: error?.name === 'AbortError',
-            condition: error?.name === 'ConditionError',
-          },
-        }),
-      )
-
-    function actionCreator(
-      arg: ThunkArg,
-      { signal }: AsyncThunkDispatchConfig = {},
-    ): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {
-      return (dispatch, getState, extra) => {
-        const requestId = options?.idGenerator
-          ? options.idGenerator(arg)
-          : nanoid()
-
-        const abortController = new AbortController()
-        let abortHandler: (() => void) | undefined
-        let abortReason: string | undefined
-
-        function abort(reason?: string) {
-          abortReason = reason
-          abortController.abort()
-        }
-
-        if (signal) {
-          if (signal.aborted) {
-            abort(externalAbortMessage)
-          } else {
-            signal.addEventListener(
-              'abort',
-              () => abort(externalAbortMessage),
-              { once: true },
-            )
-          }
-        }
-
-        const promise = (async function () {
-          let finalAction: ReturnType<typeof fulfilled | typeof rejected>
-          try {
-            let conditionResult = options?.condition?.(arg, { getState, extra })
-            if (isThenable(conditionResult)) {
-              conditionResult = await conditionResult
-            }
-
-            if (conditionResult === false || abortController.signal.aborted) {
-              // eslint-disable-next-line no-throw-literal
-              throw {
-                name: 'ConditionError',
-                message: 'Aborted due to condition callback returning false.',
-              }
-            }
-
-            const abortedPromise = new Promise<never>((_, reject) => {
-              abortHandler = () => {
-                reject({
-                  name: 'AbortError',
-                  message: abortReason || 'Aborted',
-                })
-              }
-              abortController.signal.addEventListener('abort', abortHandler, {
-                once: true,
-              })
-            })
-            dispatch(
-              pending(
-                requestId,
-                arg,
-                options?.getPendingMeta?.(
-                  { requestId, arg },
-                  { getState, extra },
-                ),
-              ) as any,
-            )
-            finalAction = await Promise.race([
-              abortedPromise,
-              Promise.resolve(
-                payloadCreator(arg, {
-                  dispatch,
-                  getState,
-                  extra,
-                  requestId,
-                  signal: abortController.signal,
-                  abort,
-                  rejectWithValue: ((
-                    value: RejectedValue,
-                    meta?: RejectedMeta,
-                  ) => {
-                    return new RejectWithValue(value, meta)
-                  }) as any,
-                  fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {
-                    return new FulfillWithMeta(value, meta)
-                  }) as any,
-                }),
-              ).then((result) => {
-                if (result instanceof RejectWithValue) {
-                  throw result
-                }
-                if (result instanceof FulfillWithMeta) {
-                  return fulfilled(result.payload, requestId, arg, result.meta)
-                }
-                return fulfilled(result as any, requestId, arg)
-              }),
-            ])
-          } catch (err) {
-            finalAction =
-              err instanceof RejectWithValue
-                ? rejected(null, requestId, arg, err.payload, err.meta)
-                : rejected(err as any, requestId, arg)
-          } finally {
-            if (abortHandler) {
-              abortController.signal.removeEventListener('abort', abortHandler)
-            }
-          }
-          // We dispatch the result action _after_ the catch, to avoid having any errors
-          // here get swallowed by the try/catch block,
-          // per https://twitter.com/dan_abramov/status/770914221638942720
-          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks
-
-          const skipDispatch =
-            options &&
-            !options.dispatchConditionRejection &&
-            rejected.match(finalAction) &&
-            (finalAction as any).meta.condition
-
-          if (!skipDispatch) {
-            dispatch(finalAction as any)
-          }
-          return finalAction
-        })()
-        return Object.assign(promise as SafePromise<any>, {
-          abort,
-          requestId,
-          arg,
-          unwrap() {
-            return promise.then<any>(unwrapResult)
-          },
-        })
-      }
-    }
-
-    return Object.assign(
-      actionCreator as AsyncThunkActionCreator<
-        Returned,
-        ThunkArg,
-        ThunkApiConfig
-      >,
-      {
-        pending,
-        rejected,
-        fulfilled,
-        settled: isAnyOf(rejected, fulfilled),
-        typePrefix,
-      },
-    )
-  }
-  createAsyncThunk.withTypes = () => createAsyncThunk
-
-  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>
-})()
-
-interface UnwrappableAction {
-  payload: any
-  meta?: any
-  error?: any
-}
-
-type UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<
-  T,
-  { error: any }
->['payload']
-
-/**
- * @public
- */
-export function unwrapResult<R extends UnwrappableAction>(
-  action: R,
-): UnwrappedActionPayload<R> {
-  if (action.meta && action.meta.rejectedWithValue) {
-    throw action.payload
-  }
-  if (action.error) {
-    throw action.error
-  }
-  return action.payload
-}
-
-type WithStrictNullChecks<True, False> = undefined extends boolean
-  ? False
-  : True
-
-function isThenable(value: any): value is PromiseLike<any> {
-  return (
-    value !== null &&
-    typeof value === 'object' &&
-    typeof value.then === 'function'
-  )
-}
Index: de_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { current, isDraft } from './immerImports'
-import { createSelectorCreator, weakMapMemoize } from './reselectImports'
-
-export const createDraftSafeSelectorCreator: typeof createSelectorCreator = (
-  ...args: unknown[]
-) => {
-  const createSelector = (createSelectorCreator as any)(...args)
-  const createDraftSafeSelector = Object.assign(
-    (...args: unknown[]) => {
-      const selector = createSelector(...args)
-      const wrappedSelector = (value: unknown, ...rest: unknown[]) =>
-        selector(isDraft(value) ? current(value) : value, ...rest)
-      Object.assign(wrappedSelector, selector)
-      return wrappedSelector as any
-    },
-    { withTypes: () => createDraftSafeSelector },
-  )
-  return createDraftSafeSelector
-}
-
-/**
- * "Draft-Safe" version of `reselect`'s `createSelector`:
- * If an `immer`-drafted object is passed into the resulting selector's first argument,
- * the selector will act on the current draft value, instead of returning a cached value
- * that might be possibly outdated if the draft has been modified since.
- * @public
- */
-export const createDraftSafeSelector =
-  /* @__PURE__ */
-  createDraftSafeSelectorCreator(weakMapMemoize)
Index: de_modules/@reduxjs/toolkit/src/createReducer.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/createReducer.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,226 +1,0 @@
-import type { Draft } from 'immer'
-import {
-  createNextState,
-  isDraft,
-  isDraftable,
-  setUseStrictIteration,
-} from './immerImports'
-import type { Action, Reducer, UnknownAction } from 'redux'
-import type { ActionReducerMapBuilder } from './mapBuilders'
-import { executeReducerBuilderCallback } from './mapBuilders'
-import type { NoInfer, TypeGuard } from './tsHelpers'
-import { freezeDraftable } from './utils'
-
-/**
- * Defines a mapping from action types to corresponding action object shapes.
- *
- * @deprecated This should not be used manually - it is only used for internal
- *             inference purposes and should not have any further value.
- *             It might be removed in the future.
- * @public
- */
-export type Actions<T extends keyof any = string> = Record<T, Action>
-
-export type ActionMatcherDescription<S, A extends Action> = {
-  matcher: TypeGuard<A>
-  reducer: CaseReducer<S, NoInfer<A>>
-}
-
-export type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<
-  ActionMatcherDescription<S, any>
->
-
-export type ActionMatcherDescriptionCollection<S> = Array<
-  ActionMatcherDescription<S, any>
->
-
-/**
- * A *case reducer* is a reducer function for a specific action type. Case
- * reducers can be composed to full reducers using `createReducer()`.
- *
- * Unlike a normal Redux reducer, a case reducer is never called with an
- * `undefined` state to determine the initial state. Instead, the initial
- * state is explicitly specified as an argument to `createReducer()`.
- *
- * In addition, a case reducer can choose to mutate the passed-in `state`
- * value directly instead of returning a new state. This does not actually
- * cause the store state to be mutated directly; instead, thanks to
- * [immer](https://github.com/mweststrate/immer), the mutations are
- * translated to copy operations that result in a new state.
- *
- * @public
- */
-export type CaseReducer<S = any, A extends Action = UnknownAction> = (
-  state: Draft<S>,
-  action: A,
-) => NoInfer<S> | void | Draft<NoInfer<S>>
-
-/**
- * A mapping from action types to case reducers for `createReducer()`.
- *
- * @deprecated This should not be used manually - it is only used
- *             for internal inference purposes and using it manually
- *             would lead to type erasure.
- *             It might be removed in the future.
- * @public
- */
-export type CaseReducers<S, AS extends Actions> = {
-  [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void
-}
-
-export type NotFunction<T> = T extends Function ? never : T
-
-function isStateFunction<S>(x: unknown): x is () => S {
-  return typeof x === 'function'
-}
-
-export type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {
-  getInitialState: () => S
-}
-
-/**
- * A utility function that allows defining a reducer as a mapping from action
- * type to *case reducer* functions that handle these action types. The
- * reducer's initial state is passed as the first argument.
- *
- * @remarks
- * The body of every case reducer is implicitly wrapped with a call to
- * `produce()` from the [immer](https://github.com/mweststrate/immer) library.
- * This means that rather than returning a new state object, you can also
- * mutate the passed-in state object directly; these mutations will then be
- * automatically and efficiently translated into copies, giving you both
- * convenience and immutability.
- *
- * @overloadSummary
- * This function accepts a callback that receives a `builder` object as its argument.
- * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be
- * called to define what actions this reducer will handle.
- *
- * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
- * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define
- *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
- * @example
-```ts
-import {
-  createAction,
-  createReducer,
-  UnknownAction,
-  PayloadAction,
-} from "@reduxjs/toolkit";
-
-const increment = createAction<number>("increment");
-const decrement = createAction<number>("decrement");
-
-function isActionWithNumberPayload(
-  action: UnknownAction
-): action is PayloadAction<number> {
-  return typeof action.payload === "number";
-}
-
-const reducer = createReducer(
-  {
-    counter: 0,
-    sumOfNumberPayloads: 0,
-    unhandledActions: 0,
-  },
-  (builder) => {
-    builder
-      .addCase(increment, (state, action) => {
-        // action is inferred correctly here
-        state.counter += action.payload;
-      })
-      // You can chain calls, or have separate `builder.addCase()` lines each time
-      .addCase(decrement, (state, action) => {
-        state.counter -= action.payload;
-      })
-      // You can apply a "matcher function" to incoming actions
-      .addMatcher(isActionWithNumberPayload, (state, action) => {})
-      // and provide a default case if no other handlers matched
-      .addDefaultCase((state, action) => {});
-  }
-);
-```
- * @public
- */
-export function createReducer<S extends NotFunction<any>>(
-  initialState: S | (() => S),
-  mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void,
-): ReducerWithInitialState<S> {
-  if (process.env.NODE_ENV !== 'production') {
-    if (typeof mapOrBuilderCallback === 'object') {
-      throw new Error(
-        "The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer",
-      )
-    }
-  }
-
-  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =
-    executeReducerBuilderCallback(mapOrBuilderCallback)
-
-  // Ensure the initial state gets frozen either way (if draftable)
-  let getInitialState: () => S
-  if (isStateFunction(initialState)) {
-    getInitialState = () => freezeDraftable(initialState())
-  } else {
-    const frozenInitialState = freezeDraftable(initialState)
-    getInitialState = () => frozenInitialState
-  }
-
-  function reducer(state = getInitialState(), action: any): S {
-    let caseReducers = [
-      actionsMap[action.type],
-      ...finalActionMatchers
-        .filter(({ matcher }) => matcher(action))
-        .map(({ reducer }) => reducer),
-    ]
-    if (caseReducers.filter((cr) => !!cr).length === 0) {
-      caseReducers = [finalDefaultCaseReducer]
-    }
-
-    return caseReducers.reduce((previousState, caseReducer): S => {
-      if (caseReducer) {
-        if (isDraft(previousState)) {
-          // If it's already a draft, we must already be inside a `createNextState` call,
-          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested
-          // inside an existing draft. It's safe to just pass the draft to the mutator.
-          const draft = previousState as Draft<S> // We can assume this is already a draft
-          const result = caseReducer(draft, action)
-
-          if (result === undefined) {
-            return previousState
-          }
-
-          return result as S
-        } else if (!isDraftable(previousState)) {
-          // If state is not draftable (ex: a primitive, such as 0), we want to directly
-          // return the caseReducer func and not wrap it with produce.
-          const result = caseReducer(previousState as any, action)
-
-          if (result === undefined) {
-            if (previousState === null) {
-              return previousState
-            }
-            throw Error(
-              'A case reducer on a non-draftable value must not return undefined',
-            )
-          }
-
-          return result as S
-        } else {
-          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather
-          // than an Immutable<S>, and TypeScript cannot find out how to reconcile
-          // these two types.
-          return createNextState(previousState, (draft: Draft<S>) => {
-            return caseReducer(draft, action)
-          })
-        }
-      }
-
-      return previousState
-    }, state)
-  }
-
-  reducer.getInitialState = getInitialState
-
-  return reducer as ReducerWithInitialState<S>
-}
Index: de_modules/@reduxjs/toolkit/src/createSlice.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/createSlice.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1073 +1,0 @@
-import type { Action, Reducer, UnknownAction } from 'redux'
-import type { Selector } from 'reselect'
-import type { InjectConfig } from './combineSlices'
-import type {
-  ActionCreatorWithoutPayload,
-  PayloadAction,
-  PayloadActionCreator,
-  PrepareAction,
-  _ActionCreatorWithPreparedPayload,
-} from './createAction'
-import { createAction } from './createAction'
-import type {
-  AsyncThunk,
-  AsyncThunkConfig,
-  AsyncThunkOptions,
-  AsyncThunkPayloadCreator,
-  OverrideThunkApiConfigs,
-} from './createAsyncThunk'
-import { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk'
-import type {
-  ActionMatcherDescriptionCollection,
-  CaseReducer,
-  ReducerWithInitialState,
-} from './createReducer'
-import { createReducer } from './createReducer'
-import type {
-  ActionReducerMapBuilder,
-  AsyncThunkReducers,
-  TypedActionCreator,
-} from './mapBuilders'
-import { executeReducerBuilderCallback } from './mapBuilders'
-import type { Id, TypeGuard } from './tsHelpers'
-import { getOrInsertComputed } from './utils'
-
-const asyncThunkSymbol = /* @__PURE__ */ Symbol.for(
-  'rtk-slice-createasyncthunk',
-)
-// type is annotated because it's too long to infer
-export const asyncThunkCreator: {
-  [asyncThunkSymbol]: typeof _createAsyncThunk
-} = {
-  [asyncThunkSymbol]: _createAsyncThunk,
-}
-
-type InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {
-  reducerPath?: NewReducerPath
-}
-
-/**
- * The return value of `createSlice`
- *
- * @public
- */
-export interface Slice<
-  State = any,
-  CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,
-  Name extends string = string,
-  ReducerPath extends string = Name,
-  Selectors extends SliceSelectors<State> = SliceSelectors<State>,
-> {
-  /**
-   * The slice name.
-   */
-  name: Name
-
-  /**
-   *  The slice reducer path.
-   */
-  reducerPath: ReducerPath
-
-  /**
-   * The slice's reducer.
-   */
-  reducer: Reducer<State>
-
-  /**
-   * Action creators for the types of actions that are handled by the slice
-   * reducer.
-   */
-  actions: CaseReducerActions<CaseReducers, Name>
-
-  /**
-   * The individual case reducer functions that were passed in the `reducers` parameter.
-   * This enables reuse and testing if they were defined inline when calling `createSlice`.
-   */
-  caseReducers: SliceDefinedCaseReducers<CaseReducers>
-
-  /**
-   * Provides access to the initial state value given to the slice.
-   * If a lazy state initializer was provided, it will be called and a fresh value returned.
-   */
-  getInitialState: () => State
-
-  /**
-   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-   */
-  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>
-
-  /**
-   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-   */
-  getSelectors<RootState>(
-    selectState: (rootState: RootState) => State,
-  ): Id<SliceDefinedSelectors<State, Selectors, RootState>>
-
-  /**
-   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)
-   *
-   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.
-   */
-  get selectors(): Id<
-    SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>
-  >
-
-  /**
-   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.
-   */
-  injectInto<NewReducerPath extends string = ReducerPath>(
-    this: this,
-    injectable: {
-      inject: (
-        slice: { reducerPath: string; reducer: Reducer },
-        config?: InjectConfig,
-      ) => void
-    },
-    config?: InjectIntoConfig<NewReducerPath>,
-  ): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>
-
-  /**
-   * Select the slice state, using the slice's current reducerPath.
-   *
-   * Will throw an error if slice is not found.
-   */
-  selectSlice(state: { [K in ReducerPath]: State }): State
-}
-
-/**
- * A slice after being called with `injectInto(reducer)`.
- *
- * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.
- */
-type InjectedSlice<
-  State = any,
-  CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,
-  Name extends string = string,
-  ReducerPath extends string = Name,
-  Selectors extends SliceSelectors<State> = SliceSelectors<State>,
-> = Omit<
-  Slice<State, CaseReducers, Name, ReducerPath, Selectors>,
-  'getSelectors' | 'selectors'
-> & {
-  /**
-   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)
-   */
-  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>
-
-  /**
-   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)
-   */
-  getSelectors<RootState>(
-    selectState: (rootState: RootState) => State | undefined,
-  ): Id<SliceDefinedSelectors<State, Selectors, RootState>>
-
-  /**
-   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)
-   *
-   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.
-   */
-  get selectors(): Id<
-    SliceDefinedSelectors<
-      State,
-      Selectors,
-      { [K in ReducerPath]?: State | undefined }
-    >
-  >
-
-  /**
-   * Select the slice state, using the slice's current reducerPath.
-   *
-   * Returns initial state if slice is not found.
-   */
-  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State
-}
-
-/**
- * Options for `createSlice()`.
- *
- * @public
- */
-export interface CreateSliceOptions<
-  State = any,
-  CR extends SliceCaseReducers<State> = SliceCaseReducers<State>,
-  Name extends string = string,
-  ReducerPath extends string = Name,
-  Selectors extends SliceSelectors<State> = SliceSelectors<State>,
-> {
-  /**
-   * The slice's name. Used to namespace the generated action types.
-   */
-  name: Name
-
-  /**
-   * The slice's reducer path. Used when injecting into a combined slice reducer.
-   */
-  reducerPath?: ReducerPath
-
-  /**
-   * The initial state that should be used when the reducer is called the first time. This may also be a "lazy initializer" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.
-   */
-  initialState: State | (() => State)
-
-  /**
-   * A mapping from action types to action-type-specific *case reducer*
-   * functions. For every action type, a matching action creator will be
-   * generated using `createAction()`.
-   */
-  reducers:
-    | ValidateSliceCaseReducers<State, CR>
-    | ((creators: ReducerCreators<State>) => CR)
-
-  /**
-   * A callback that receives a *builder* object to define
-   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.
-   *
-   *
-   * @example
-```ts
-import { createAction, createSlice, Action } from '@reduxjs/toolkit'
-const incrementBy = createAction<number>('incrementBy')
-const decrement = createAction('decrement')
-
-interface RejectedAction extends Action {
-  error: Error
-}
-
-function isRejectedAction(action: Action): action is RejectedAction {
-  return action.type.endsWith('rejected')
-}
-
-createSlice({
-  name: 'counter',
-  initialState: 0,
-  reducers: {},
-  extraReducers: builder => {
-    builder
-      .addCase(incrementBy, (state, action) => {
-        // action is inferred correctly here if using TS
-      })
-      // You can chain calls, or have separate `builder.addCase()` lines each time
-      .addCase(decrement, (state, action) => {})
-      // You can match a range of action types
-      .addMatcher(
-        isRejectedAction,
-        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard
-        (state, action) => {}
-      )
-      // and provide a default case if no other handlers matched
-      .addDefaultCase((state, action) => {})
-    }
-})
-```
-   */
-  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void
-
-  /**
-   * A map of selectors that receive the slice's state and any additional arguments, and return a result.
-   */
-  selectors?: Selectors
-}
-
-export enum ReducerType {
-  reducer = 'reducer',
-  reducerWithPrepare = 'reducerWithPrepare',
-  asyncThunk = 'asyncThunk',
-}
-
-type ReducerDefinition<T extends ReducerType = ReducerType> = {
-  _reducerDefinitionType: T
-}
-
-export type CaseReducerDefinition<
-  S = any,
-  A extends Action = UnknownAction,
-> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>
-
-/**
- * A CaseReducer with a `prepare` method.
- *
- * @public
- */
-export type CaseReducerWithPrepare<State, Action extends PayloadAction> = {
-  reducer: CaseReducer<State, Action>
-  prepare: PrepareAction<Action['payload']>
-}
-
-export interface CaseReducerWithPrepareDefinition<
-  State,
-  Action extends PayloadAction,
-> extends CaseReducerWithPrepare<State, Action>,
-    ReducerDefinition<ReducerType.reducerWithPrepare> {}
-
-type AsyncThunkSliceReducerConfig<
-  State,
-  ThunkArg extends any,
-  Returned = unknown,
-  ThunkApiConfig extends AsyncThunkConfig = {},
-> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {
-  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>
-}
-
-type AsyncThunkSliceReducerDefinition<
-  State,
-  ThunkArg extends any,
-  Returned = unknown,
-  ThunkApiConfig extends AsyncThunkConfig = {},
-> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> &
-  ReducerDefinition<ReducerType.asyncThunk> & {
-    payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>
-  }
-
-/**
- * Providing these as part of the config would cause circular types, so we disallow passing them
- */
-type PreventCircular<ThunkApiConfig> = {
-  [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch'
-    ? never
-    : ThunkApiConfig[K]
-}
-
-interface AsyncThunkCreator<
-  State,
-  CurriedThunkApiConfig extends
-    PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>,
-> {
-  <Returned, ThunkArg = void>(
-    payloadCreator: AsyncThunkPayloadCreator<
-      Returned,
-      ThunkArg,
-      CurriedThunkApiConfig
-    >,
-    config?: AsyncThunkSliceReducerConfig<
-      State,
-      ThunkArg,
-      Returned,
-      CurriedThunkApiConfig
-    >,
-  ): AsyncThunkSliceReducerDefinition<
-    State,
-    ThunkArg,
-    Returned,
-    CurriedThunkApiConfig
-  >
-  <
-    Returned,
-    ThunkArg,
-    ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {},
-  >(
-    payloadCreator: AsyncThunkPayloadCreator<
-      Returned,
-      ThunkArg,
-      ThunkApiConfig
-    >,
-    config?: AsyncThunkSliceReducerConfig<
-      State,
-      ThunkArg,
-      Returned,
-      ThunkApiConfig
-    >,
-  ): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>
-  withTypes<
-    ThunkApiConfig extends PreventCircular<AsyncThunkConfig>,
-  >(): AsyncThunkCreator<
-    State,
-    OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>
-  >
-}
-
-export interface ReducerCreators<State> {
-  reducer(
-    caseReducer: CaseReducer<State, PayloadAction>,
-  ): CaseReducerDefinition<State, PayloadAction>
-  reducer<Payload>(
-    caseReducer: CaseReducer<State, PayloadAction<Payload>>,
-  ): CaseReducerDefinition<State, PayloadAction<Payload>>
-
-  asyncThunk: AsyncThunkCreator<State>
-
-  preparedReducer<Prepare extends PrepareAction<any>>(
-    prepare: Prepare,
-    reducer: CaseReducer<
-      State,
-      ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>
-    >,
-  ): {
-    _reducerDefinitionType: ReducerType.reducerWithPrepare
-    prepare: Prepare
-    reducer: CaseReducer<
-      State,
-      ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>
-    >
-  }
-}
-
-/**
- * The type describing a slice's `reducers` option.
- *
- * @public
- */
-export type SliceCaseReducers<State> =
-  | Record<string, ReducerDefinition>
-  | Record<
-      string,
-      | CaseReducer<State, PayloadAction<any>>
-      | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>
-    >
-
-/**
- * The type describing a slice's `selectors` option.
- */
-export type SliceSelectors<State> = {
-  [K: string]: (sliceState: State, ...args: any[]) => any
-}
-
-type SliceActionType<
-  SliceName extends string,
-  ActionName extends keyof any,
-> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string
-
-/**
- * Derives the slice's `actions` property from the `reducers` options
- *
- * @public
- */
-export type CaseReducerActions<
-  CaseReducers extends SliceCaseReducers<any>,
-  SliceName extends string,
-> = {
-  [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition
-    ? Definition extends { prepare: any }
-      ? ActionCreatorForCaseReducerWithPrepare<
-          Definition,
-          SliceActionType<SliceName, Type>
-        >
-      : Definition extends AsyncThunkSliceReducerDefinition<
-            any,
-            infer ThunkArg,
-            infer Returned,
-            infer ThunkApiConfig
-          >
-        ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig>
-        : Definition extends { reducer: any }
-          ? ActionCreatorForCaseReducer<
-              Definition['reducer'],
-              SliceActionType<SliceName, Type>
-            >
-          : ActionCreatorForCaseReducer<
-              Definition,
-              SliceActionType<SliceName, Type>
-            >
-    : never
-}
-
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`
- *
- * @internal
- */
-type ActionCreatorForCaseReducerWithPrepare<
-  CR extends { prepare: any },
-  Type extends string,
-> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>
-
-/**
- * Get a `PayloadActionCreator` type for a passed `CaseReducer`
- *
- * @internal
- */
-type ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (
-  state: any,
-  action: infer Action,
-) => any
-  ? Action extends { payload: infer P }
-    ? PayloadActionCreator<P, Type>
-    : ActionCreatorWithoutPayload<Type>
-  : ActionCreatorWithoutPayload<Type>
-
-/**
- * Extracts the CaseReducers out of a `reducers` object, even if they are
- * tested into a `CaseReducerWithPrepare`.
- *
- * @internal
- */
-type SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {
-  [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition
-    ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any>
-      ? Id<
-          Pick<
-            Required<Definition>,
-            'fulfilled' | 'rejected' | 'pending' | 'settled'
-          >
-        >
-      : Definition extends {
-            reducer: infer Reducer
-          }
-        ? Reducer
-        : Definition
-    : never
-}
-
-type RemappedSelector<S extends Selector, NewState> =
-  S extends Selector<any, infer R, infer P>
-    ? Selector<NewState, R, P> & { unwrapped: S }
-    : never
-
-/**
- * Extracts the final selector type from the `selectors` object.
- *
- * Removes the `string` index signature from the default value.
- */
-type SliceDefinedSelectors<
-  State,
-  Selectors extends SliceSelectors<State>,
-  RootState,
-> = {
-  [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<
-    Selectors[K],
-    RootState
-  >
-}
-
-/**
- * Used on a SliceCaseReducers object.
- * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that
- * the `reducer` and the `prepare` function use the same type of `payload`.
- *
- * Might do additional such checks in the future.
- *
- * This type is only ever useful if you want to write your own wrapper around
- * `createSlice`. Please don't use it otherwise!
- *
- * @public
- */
-export type ValidateSliceCaseReducers<
-  S,
-  ACR extends SliceCaseReducers<S>,
-> = ACR & {
-  [T in keyof ACR]: ACR[T] extends {
-    reducer(s: S, action?: infer A): any
-  }
-    ? {
-        prepare(...a: never[]): Omit<A, 'type'>
-      }
-    : {}
-}
-
-function getType(slice: string, actionKey: string): string {
-  return `${slice}/${actionKey}`
-}
-
-interface BuildCreateSliceConfig {
-  creators?: {
-    asyncThunk?: typeof asyncThunkCreator
-  }
-}
-
-export function buildCreateSlice({ creators }: BuildCreateSliceConfig = {}) {
-  const cAT = creators?.asyncThunk?.[asyncThunkSymbol]
-  return function createSlice<
-    State,
-    CaseReducers extends SliceCaseReducers<State>,
-    Name extends string,
-    Selectors extends SliceSelectors<State>,
-    ReducerPath extends string = Name,
-  >(
-    options: CreateSliceOptions<
-      State,
-      CaseReducers,
-      Name,
-      ReducerPath,
-      Selectors
-    >,
-  ): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {
-    const { name, reducerPath = name as unknown as ReducerPath } = options
-    if (!name) {
-      throw new Error('`name` is a required option for createSlice')
-    }
-
-    if (
-      typeof process !== 'undefined' &&
-      process.env.NODE_ENV === 'development'
-    ) {
-      if (options.initialState === undefined) {
-        console.error(
-          'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`',
-        )
-      }
-    }
-
-    const reducers =
-      (typeof options.reducers === 'function'
-        ? options.reducers(buildReducerCreators<State>())
-        : options.reducers) || {}
-
-    const reducerNames = Object.keys(reducers)
-
-    const context: ReducerHandlingContext<State> = {
-      sliceCaseReducersByName: {},
-      sliceCaseReducersByType: {},
-      actionCreators: {},
-      sliceMatchers: [],
-    }
-
-    const contextMethods: ReducerHandlingContextMethods<State> = {
-      addCase(
-        typeOrActionCreator: string | TypedActionCreator<any>,
-        reducer: CaseReducer<State>,
-      ) {
-        const type =
-          typeof typeOrActionCreator === 'string'
-            ? typeOrActionCreator
-            : typeOrActionCreator.type
-        if (!type) {
-          throw new Error(
-            '`context.addCase` cannot be called with an empty action type',
-          )
-        }
-        if (type in context.sliceCaseReducersByType) {
-          throw new Error(
-            '`context.addCase` cannot be called with two reducers for the same action type: ' +
-              type,
-          )
-        }
-        context.sliceCaseReducersByType[type] = reducer
-        return contextMethods
-      },
-      addMatcher(matcher, reducer) {
-        context.sliceMatchers.push({ matcher, reducer })
-        return contextMethods
-      },
-      exposeAction(name, actionCreator) {
-        context.actionCreators[name] = actionCreator
-        return contextMethods
-      },
-      exposeCaseReducer(name, reducer) {
-        context.sliceCaseReducersByName[name] = reducer
-        return contextMethods
-      },
-    }
-
-    reducerNames.forEach((reducerName) => {
-      const reducerDefinition = reducers[reducerName]
-      const reducerDetails: ReducerDetails = {
-        reducerName,
-        type: getType(name, reducerName),
-        createNotation: typeof options.reducers === 'function',
-      }
-      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {
-        handleThunkCaseReducerDefinition(
-          reducerDetails,
-          reducerDefinition,
-          contextMethods,
-          cAT,
-        )
-      } else {
-        handleNormalReducerDefinition<State>(
-          reducerDetails,
-          reducerDefinition as any,
-          contextMethods,
-        )
-      }
-    })
-
-    function buildReducer() {
-      if (process.env.NODE_ENV !== 'production') {
-        if (typeof options.extraReducers === 'object') {
-          throw new Error(
-            "The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice",
-          )
-        }
-      }
-      const [
-        extraReducers = {},
-        actionMatchers = [],
-        defaultCaseReducer = undefined,
-      ] =
-        typeof options.extraReducers === 'function'
-          ? executeReducerBuilderCallback(options.extraReducers)
-          : [options.extraReducers]
-
-      const finalCaseReducers = {
-        ...extraReducers,
-        ...context.sliceCaseReducersByType,
-      }
-
-      return createReducer(options.initialState, (builder) => {
-        for (let key in finalCaseReducers) {
-          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>)
-        }
-        for (let sM of context.sliceMatchers) {
-          builder.addMatcher(sM.matcher, sM.reducer)
-        }
-        for (let m of actionMatchers) {
-          builder.addMatcher(m.matcher, m.reducer)
-        }
-        if (defaultCaseReducer) {
-          builder.addDefaultCase(defaultCaseReducer)
-        }
-      })
-    }
-
-    const selectSelf = (state: State) => state
-
-    const injectedSelectorCache = new Map<
-      boolean,
-      WeakMap<
-        (rootState: any) => State | undefined,
-        Record<string, (rootState: any) => any>
-      >
-    >()
-
-    const injectedStateCache = new WeakMap<(rootState: any) => State, State>()
-
-    let _reducer: ReducerWithInitialState<State>
-
-    function reducer(state: State | undefined, action: UnknownAction) {
-      if (!_reducer) _reducer = buildReducer()
-
-      return _reducer(state, action)
-    }
-
-    function getInitialState() {
-      if (!_reducer) _reducer = buildReducer()
-
-      return _reducer.getInitialState()
-    }
-
-    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(
-      reducerPath: CurrentReducerPath,
-      injected = false,
-    ): Pick<
-      Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>,
-      'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'
-    > {
-      function selectSlice(state: { [K in CurrentReducerPath]: State }) {
-        let sliceState = state[reducerPath]
-        if (typeof sliceState === 'undefined') {
-          if (injected) {
-            sliceState = getOrInsertComputed(
-              injectedStateCache,
-              selectSlice,
-              getInitialState,
-            )
-          } else if (process.env.NODE_ENV !== 'production') {
-            throw new Error(
-              'selectSlice returned undefined for an uninjected slice reducer',
-            )
-          }
-        }
-        return sliceState
-      }
-
-      function getSelectors(
-        selectState: (rootState: any) => State = selectSelf,
-      ) {
-        const selectorCache = getOrInsertComputed(
-          injectedSelectorCache,
-          injected,
-          () => new WeakMap(),
-        )
-
-        return getOrInsertComputed(selectorCache, selectState, () => {
-          const map: Record<string, Selector<any, any>> = {}
-          for (const [name, selector] of Object.entries(
-            options.selectors ?? {},
-          )) {
-            map[name] = wrapSelector(
-              selector,
-              selectState,
-              () =>
-                getOrInsertComputed(
-                  injectedStateCache,
-                  selectState,
-                  getInitialState,
-                ),
-              injected,
-            )
-          }
-          return map
-        }) as any
-      }
-      return {
-        reducerPath,
-        getSelectors,
-        get selectors() {
-          return getSelectors(selectSlice)
-        },
-        selectSlice,
-      }
-    }
-
-    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {
-      name,
-      reducer,
-      actions: context.actionCreators as any,
-      caseReducers: context.sliceCaseReducersByName as any,
-      getInitialState,
-      ...makeSelectorProps(reducerPath),
-      injectInto(injectable, { reducerPath: pathOpt, ...config } = {}) {
-        const newReducerPath = pathOpt ?? reducerPath
-        injectable.inject({ reducerPath: newReducerPath, reducer }, config)
-        return {
-          ...slice,
-          ...makeSelectorProps(newReducerPath, true),
-        } as any
-      },
-    }
-    return slice
-  }
-}
-
-function wrapSelector<State, NewState, S extends Selector<State>>(
-  selector: S,
-  selectState: Selector<NewState, State>,
-  getInitialState: () => State,
-  injected?: boolean,
-) {
-  function wrapper(rootState: NewState, ...args: any[]) {
-    let sliceState = selectState(rootState)
-    if (typeof sliceState === 'undefined') {
-      if (injected) {
-        sliceState = getInitialState()
-      } else if (process.env.NODE_ENV !== 'production') {
-        throw new Error(
-          'selectState returned undefined for an uninjected slice reducer',
-        )
-      }
-    }
-    return selector(sliceState, ...args)
-  }
-  wrapper.unwrapped = selector
-  return wrapper as RemappedSelector<S, NewState>
-}
-
-/**
- * A function that accepts an initial state, an object full of reducer
- * functions, and a "slice name", and automatically generates
- * action creators and action types that correspond to the
- * reducers and state.
- *
- * @public
- */
-export const createSlice = /* @__PURE__ */ buildCreateSlice()
-
-interface ReducerHandlingContext<State> {
-  sliceCaseReducersByName: Record<
-    string,
-    | CaseReducer<State, any>
-    | Pick<
-        AsyncThunkSliceReducerDefinition<State, any, any, any>,
-        'fulfilled' | 'rejected' | 'pending' | 'settled'
-      >
-  >
-  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>
-  sliceMatchers: ActionMatcherDescriptionCollection<State>
-  actionCreators: Record<string, Function>
-}
-
-interface ReducerHandlingContextMethods<State> {
-  /**
-   * Adds a case reducer to handle a single action type.
-   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-   * @param reducer - The actual case reducer function.
-   */
-  addCase<ActionCreator extends TypedActionCreator<string>>(
-    actionCreator: ActionCreator,
-    reducer: CaseReducer<State, ReturnType<ActionCreator>>,
-  ): ReducerHandlingContextMethods<State>
-  /**
-   * Adds a case reducer to handle a single action type.
-   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-   * @param reducer - The actual case reducer function.
-   */
-  addCase<Type extends string, A extends Action<Type>>(
-    type: Type,
-    reducer: CaseReducer<State, A>,
-  ): ReducerHandlingContextMethods<State>
-
-  /**
-   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.
-   * @remarks
-   * If multiple matcher reducers match, all of them will be executed in the order
-   * they were defined in - even if a case reducer already matched.
-   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.
-   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)
-   *   function
-   * @param reducer - The actual case reducer function.
-   *
-   */
-  addMatcher<A>(
-    matcher: TypeGuard<A>,
-    reducer: CaseReducer<State, A extends Action ? A : A & Action>,
-  ): ReducerHandlingContextMethods<State>
-  /**
-   * Add an action to be exposed under the final `slice.actions` key.
-   * @param name The key to be exposed as.
-   * @param actionCreator The action to expose.
-   * @example
-   * context.exposeAction("addPost", createAction<Post>("addPost"));
-   *
-   * export const { addPost } = slice.actions
-   *
-   * dispatch(addPost(post))
-   */
-  exposeAction(
-    name: string,
-    actionCreator: Function,
-  ): ReducerHandlingContextMethods<State>
-  /**
-   * Add a case reducer to be exposed under the final `slice.caseReducers` key.
-   * @param name The key to be exposed as.
-   * @param reducer The reducer to expose.
-   * @example
-   * context.exposeCaseReducer("addPost", (state, action: PayloadAction<Post>) => {
-   *   state.push(action.payload)
-   * })
-   *
-   * slice.caseReducers.addPost([], addPost(post))
-   */
-  exposeCaseReducer(
-    name: string,
-    reducer:
-      | CaseReducer<State, any>
-      | Pick<
-          AsyncThunkSliceReducerDefinition<State, any, any, any>,
-          'fulfilled' | 'rejected' | 'pending' | 'settled'
-        >,
-  ): ReducerHandlingContextMethods<State>
-}
-
-interface ReducerDetails {
-  /** The key the reducer was defined under */
-  reducerName: string
-  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */
-  type: string
-  /** Whether create. notation was used when defining reducers */
-  createNotation: boolean
-}
-
-function buildReducerCreators<State>(): ReducerCreators<State> {
-  function asyncThunk(
-    payloadCreator: AsyncThunkPayloadCreator<any, any>,
-    config: AsyncThunkSliceReducerConfig<State, any>,
-  ): AsyncThunkSliceReducerDefinition<State, any> {
-    return {
-      _reducerDefinitionType: ReducerType.asyncThunk,
-      payloadCreator,
-      ...config,
-    }
-  }
-  asyncThunk.withTypes = () => asyncThunk
-  return {
-    reducer(caseReducer: CaseReducer<State, any>) {
-      return Object.assign(
-        {
-          // hack so the wrapping function has the same name as the original
-          // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original
-          [caseReducer.name](...args: Parameters<typeof caseReducer>) {
-            return caseReducer(...args)
-          },
-        }[caseReducer.name],
-        {
-          _reducerDefinitionType: ReducerType.reducer,
-        } as const,
-      )
-    },
-    preparedReducer(prepare, reducer) {
-      return {
-        _reducerDefinitionType: ReducerType.reducerWithPrepare,
-        prepare,
-        reducer,
-      }
-    },
-    asyncThunk: asyncThunk as any,
-  }
-}
-
-function handleNormalReducerDefinition<State>(
-  { type, reducerName, createNotation }: ReducerDetails,
-  maybeReducerWithPrepare:
-    | CaseReducer<State, { payload: any; type: string }>
-    | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>,
-  context: ReducerHandlingContextMethods<State>,
-) {
-  let caseReducer: CaseReducer<State, any>
-  let prepareCallback: PrepareAction<any> | undefined
-  if ('reducer' in maybeReducerWithPrepare) {
-    if (
-      createNotation &&
-      !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)
-    ) {
-      throw new Error(
-        'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.',
-      )
-    }
-    caseReducer = maybeReducerWithPrepare.reducer
-    prepareCallback = maybeReducerWithPrepare.prepare
-  } else {
-    caseReducer = maybeReducerWithPrepare
-  }
-  context
-    .addCase(type, caseReducer)
-    .exposeCaseReducer(reducerName, caseReducer)
-    .exposeAction(
-      reducerName,
-      prepareCallback
-        ? createAction(type, prepareCallback)
-        : createAction(type),
-    )
-}
-
-function isAsyncThunkSliceReducerDefinition<State>(
-  reducerDefinition: any,
-): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {
-  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk
-}
-
-function isCaseReducerWithPrepareDefinition<State>(
-  reducerDefinition: any,
-): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {
-  return (
-    reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare
-  )
-}
-
-function handleThunkCaseReducerDefinition<State>(
-  { type, reducerName }: ReducerDetails,
-  reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>,
-  context: ReducerHandlingContextMethods<State>,
-  cAT: typeof _createAsyncThunk | undefined,
-) {
-  if (!cAT) {
-    throw new Error(
-      'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' +
-        'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.',
-    )
-  }
-  const { payloadCreator, fulfilled, pending, rejected, settled, options } =
-    reducerDefinition
-  const thunk = cAT(type, payloadCreator, options as any)
-  context.exposeAction(reducerName, thunk)
-
-  if (fulfilled) {
-    context.addCase(thunk.fulfilled, fulfilled)
-  }
-  if (pending) {
-    context.addCase(thunk.pending, pending)
-  }
-  if (rejected) {
-    context.addCase(thunk.rejected, rejected)
-  }
-  if (settled) {
-    context.addMatcher(thunk.settled, settled)
-  }
-
-  context.exposeCaseReducer(reducerName, {
-    fulfilled: fulfilled || noop,
-    pending: pending || noop,
-    rejected: rejected || noop,
-    settled: settled || noop,
-  })
-}
-
-function noop() {}
Index: de_modules/@reduxjs/toolkit/src/devtoolsExtension.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,241 +1,0 @@
-import type { Action, ActionCreator, StoreEnhancer } from 'redux'
-import { compose } from './reduxImports'
-
-/**
- * @public
- */
-export interface DevToolsEnhancerOptions {
-  /**
-   * the instance name to be showed on the monitor page. Default value is `document.title`.
-   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.
-   */
-  name?: string
-  /**
-   * action creators functions to be available in the Dispatcher.
-   */
-  actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }
-  /**
-   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.
-   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.
-   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).
-   *
-   * @default 500 ms.
-   */
-  latency?: number
-  /**
-   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.
-   *
-   * @default 50
-   */
-  maxAge?: number
-  /**
-   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you
-   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`
-   * functions.
-   */
-  serialize?:
-    | boolean
-    | {
-        /**
-         * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).
-         * - `false` - will handle also circular references.
-         * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.
-         * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.
-         *   For each of them you can indicate if to include (by setting as `true`).
-         *   For `function` key you can also specify a custom function which handles serialization.
-         *   See [`jsan`](https://github.com/kolodny/jsan) for more details.
-         */
-        options?:
-          | undefined
-          | boolean
-          | {
-              date?: true
-              regex?: true
-              undefined?: true
-              error?: true
-              symbol?: true
-              map?: true
-              set?: true
-              function?: true | ((fn: (...args: any[]) => any) => string)
-            }
-        /**
-         * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.
-         * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)
-         * key. So you can deserialize it back while importing or persisting data.
-         * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):
-         */
-        replacer?: (key: string, value: unknown) => any
-        /**
-         * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)
-         * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)
-         * as an example on how to serialize special data types and get them back.
-         */
-        reviver?: (key: string, value: unknown) => any
-        /**
-         * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).
-         * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.
-         * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.
-         */
-        immutable?: any
-        /**
-         * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...
-         */
-        refs?: any
-      }
-  /**
-   * function which takes `action` object and id number as arguments, and should return `action` object back.
-   */
-  actionSanitizer?: <A extends Action>(action: A, id: number) => A
-  /**
-   * function which takes `state` object and index as arguments, and should return `state` object back.
-   */
-  stateSanitizer?: <S>(state: S, index: number) => S
-  /**
-   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-   */
-  actionsDenylist?: string | string[]
-  /**
-   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).
-   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.
-   */
-  actionsAllowlist?: string | string[]
-  /**
-   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.
-   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.
-   */
-  predicate?: <S, A extends Action>(state: S, action: A) => boolean
-  /**
-   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.
-   * Available only for Redux enhancer, for others use `autoPause`.
-   *
-   * @default true
-   */
-  shouldRecordChanges?: boolean
-  /**
-   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.
-   * If not specified, will commit when paused. Available only for Redux enhancer.
-   *
-   * @default "@@PAUSED""
-   */
-  pauseActionType?: string
-  /**
-   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.
-   * Not available for Redux enhancer (as it already does it but storing the data to be sent).
-   *
-   * @default false
-   */
-  autoPause?: boolean
-  /**
-   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.
-   * Available only for Redux enhancer.
-   *
-   * @default false
-   */
-  shouldStartLocked?: boolean
-  /**
-   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.
-   *
-   * @default true
-   */
-  shouldHotReload?: boolean
-  /**
-   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.
-   *
-   * @default false
-   */
-  shouldCatchErrors?: boolean
-  /**
-   * If you want to restrict the extension, specify the features you allow.
-   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.
-   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.
-   * Otherwise, you'll get/set the data right from the monitor part.
-   */
-  features?: {
-    /**
-     * start/pause recording of dispatched actions
-     */
-    pause?: boolean
-    /**
-     * lock/unlock dispatching actions and side effects
-     */
-    lock?: boolean
-    /**
-     * persist states on page reloading
-     */
-    persist?: boolean
-    /**
-     * export history of actions in a file
-     */
-    export?: boolean | 'custom'
-    /**
-     * import history of actions from a file
-     */
-    import?: boolean | 'custom'
-    /**
-     * jump back and forth (time travelling)
-     */
-    jump?: boolean
-    /**
-     * skip (cancel) actions
-     */
-    skip?: boolean
-    /**
-     * drag and drop actions in the history list
-     */
-    reorder?: boolean
-    /**
-     * dispatch custom actions or action creators
-     */
-    dispatch?: boolean
-    /**
-     * generate tests for the selected actions
-     */
-    test?: boolean
-  }
-  /**
-   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.
-   * Defaults to false.
-   */
-  trace?: boolean | (<A extends Action>(action: A) => string)
-  /**
-   * The maximum number of stack trace entries to record per action. Defaults to 10.
-   */
-  traceLimit?: number
-}
-
-type Compose = typeof compose
-
-interface ComposeWithDevTools {
-  (options: DevToolsEnhancerOptions): Compose
-  <StoreExt extends {}>(
-    ...funcs: StoreEnhancer<StoreExt>[]
-  ): StoreEnhancer<StoreExt>
-}
-
-/**
- * @public
- */
-export const composeWithDevTools: ComposeWithDevTools =
-  typeof window !== 'undefined' &&
-  (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
-    ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
-    : function () {
-        if (arguments.length === 0) return undefined
-        if (typeof arguments[0] === 'object') return compose
-        return compose.apply(null, arguments as any as Function[])
-      }
-
-/**
- * @public
- */
-export const devToolsEnhancer: {
-  (options: DevToolsEnhancerOptions): StoreEnhancer<any>
-} =
-  typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__
-    ? (window as any).__REDUX_DEVTOOLS_EXTENSION__
-    : function () {
-        return function (noop) {
-          return noop
-        }
-      }
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import type { Dispatch, Middleware, UnknownAction } from 'redux'
-import { compose } from '../reduxImports'
-import { createAction } from '../createAction'
-import { isAllOf } from '../matchers'
-import { nanoid } from '../nanoid'
-import { getOrInsertComputed } from '../utils'
-import type {
-  AddMiddleware,
-  DynamicMiddleware,
-  DynamicMiddlewareInstance,
-  MiddlewareEntry,
-  WithMiddleware,
-} from './types'
-export type {
-  DynamicMiddlewareInstance,
-  GetDispatchType as GetDispatch,
-  MiddlewareApiConfig,
-} from './types'
-
-const createMiddlewareEntry = <
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
->(
-  middleware: Middleware<any, State, DispatchType>,
-): MiddlewareEntry<State, DispatchType> => ({
-  middleware,
-  applied: new Map(),
-})
-
-const matchInstance =
-  (instanceId: string) =>
-  (action: any): action is { meta: { instanceId: string } } =>
-    action?.meta?.instanceId === instanceId
-
-export const createDynamicMiddleware = <
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
->(): DynamicMiddlewareInstance<State, DispatchType> => {
-  const instanceId = nanoid()
-  const middlewareMap = new Map<
-    Middleware<any, State, DispatchType>,
-    MiddlewareEntry<State, DispatchType>
-  >()
-
-  const withMiddleware = Object.assign(
-    createAction(
-      'dynamicMiddleware/add',
-      (...middlewares: Middleware<any, State, DispatchType>[]) => ({
-        payload: middlewares,
-        meta: {
-          instanceId,
-        },
-      }),
-    ),
-    { withTypes: () => withMiddleware },
-  ) as WithMiddleware<State, DispatchType>
-
-  const addMiddleware = Object.assign(
-    function addMiddleware(
-      ...middlewares: Middleware<any, State, DispatchType>[]
-    ) {
-      middlewares.forEach((middleware) => {
-        getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry)
-      })
-    },
-    { withTypes: () => addMiddleware },
-  ) as AddMiddleware<State, DispatchType>
-
-  const getFinalMiddleware: Middleware<{}, State, DispatchType> = (api) => {
-    const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) =>
-      getOrInsertComputed(entry.applied, api, entry.middleware),
-    )
-    return compose(...appliedMiddleware)
-  }
-
-  const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId))
-
-  const middleware: DynamicMiddleware<State, DispatchType> =
-    (api) => (next) => (action) => {
-      if (isWithMiddleware(action)) {
-        addMiddleware(...action.payload)
-        return api.dispatch
-      }
-      return getFinalMiddleware(api)(next)(action)
-    }
-
-  return {
-    middleware,
-    addMiddleware,
-    withMiddleware,
-    instanceId,
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/react/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/react/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import type {
-  DynamicMiddlewareInstance,
-  GetDispatch,
-  GetState,
-  MiddlewareApiConfig,
-  TSHelpersExtractDispatchExtensions,
-} from '@reduxjs/toolkit'
-import { createDynamicMiddleware as cDM } from '@reduxjs/toolkit'
-import type { Context } from 'react'
-import type { ReactReduxContextValue } from 'react-redux'
-import {
-  createDispatchHook,
-  ReactReduxContext,
-  useDispatch as useDefaultDispatch,
-} from 'react-redux'
-import type { Action, Dispatch, Middleware, UnknownAction } from 'redux'
-
-export type UseDispatchWithMiddlewareHook<
-  Middlewares extends Middleware<any, State, DispatchType>[] = [],
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType
-
-export type CreateDispatchWithMiddlewareHook<
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = {
-  <
-    Middlewares extends [
-      Middleware<any, State, DispatchType>,
-      ...Middleware<any, State, DispatchType>[],
-    ],
-  >(
-    ...middlewares: Middlewares
-  ): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>
-  withTypes<
-    MiddlewareConfig extends MiddlewareApiConfig,
-  >(): CreateDispatchWithMiddlewareHook<
-    GetState<MiddlewareConfig>,
-    GetDispatch<MiddlewareConfig>
-  >
-}
-
-type ActionFromDispatch<DispatchType extends Dispatch<Action>> =
-  DispatchType extends Dispatch<infer Action> ? Action : never
-
-type ReactDynamicMiddlewareInstance<
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = DynamicMiddlewareInstance<State, DispatchType> & {
-  createDispatchWithMiddlewareHookFactory: (
-    context?: Context<ReactReduxContextValue<
-      State,
-      ActionFromDispatch<DispatchType>
-    > | null>,
-  ) => CreateDispatchWithMiddlewareHook<State, DispatchType>
-  createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<
-    State,
-    DispatchType
-  >
-}
-
-export const createDynamicMiddleware = <
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
->(): ReactDynamicMiddlewareInstance<State, DispatchType> => {
-  const instance = cDM<State, DispatchType>()
-  const createDispatchWithMiddlewareHookFactory = (
-    // @ts-ignore
-    context: Context<ReactReduxContextValue<
-      State,
-      ActionFromDispatch<DispatchType>
-    > | null> = ReactReduxContext,
-  ) => {
-    const useDispatch =
-      context === ReactReduxContext
-        ? useDefaultDispatch
-        : createDispatchHook(context)
-    function createDispatchWithMiddlewareHook<
-      Middlewares extends Middleware<any, State, DispatchType>[],
-    >(...middlewares: Middlewares) {
-      instance.addMiddleware(...middlewares)
-      return useDispatch
-    }
-    createDispatchWithMiddlewareHook.withTypes = () =>
-      createDispatchWithMiddlewareHook
-    return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<
-      State,
-      DispatchType
-    >
-  }
-
-  const createDispatchWithMiddlewareHook =
-    createDispatchWithMiddlewareHookFactory()
-
-  return {
-    ...instance,
-    createDispatchWithMiddlewareHookFactory,
-    createDispatchWithMiddlewareHook,
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/index.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/index.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-import type { Action, Middleware, UnknownAction } from 'redux'
-import type { ThunkDispatch } from 'redux-thunk'
-import { configureStore } from '../../configureStore'
-import { createDynamicMiddleware } from '../index'
-
-const untypedInstance = createDynamicMiddleware()
-
-interface AppDispatch extends ThunkDispatch<number, undefined, UnknownAction> {
-  (n: 1): 1
-}
-
-const typedInstance = createDynamicMiddleware<number, AppDispatch>()
-
-declare const staticMiddleware: Middleware<(n: 1) => 1>
-
-const store = configureStore({
-  reducer: () => 0,
-  middleware: (gDM) =>
-    gDM().prepend(typedInstance.middleware).concat(staticMiddleware),
-})
-
-declare const compatibleMiddleware: Middleware<{}, number, AppDispatch>
-declare const incompatibleMiddleware: Middleware<{}, string, AppDispatch>
-
-declare const addedMiddleware: Middleware<(n: 2) => 2>
-
-describe('type tests', () => {
-  test('instance typed at creation ensures middleware compatibility with store', () => {
-    const store = configureStore({
-      reducer: () => '',
-      // @ts-expect-error
-      middleware: (gDM) => gDM().prepend(typedInstance.middleware),
-    })
-  })
-
-  test('instance typed at creation enforces correct middleware type', () => {
-    typedInstance.addMiddleware(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-
-    const dispatch = store.dispatch(
-      typedInstance.withMiddleware(
-        compatibleMiddleware,
-        // @ts-expect-error
-        incompatibleMiddleware,
-      ),
-    )
-  })
-
-  test('withTypes() enforces correct middleware type', () => {
-    const addMiddleware = untypedInstance.addMiddleware.withTypes<{
-      state: number
-      dispatch: AppDispatch
-    }>()
-
-    addMiddleware(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-
-    const withMiddleware = untypedInstance.withMiddleware.withTypes<{
-      state: number
-      dispatch: AppDispatch
-    }>()
-
-    const dispatch = store.dispatch(
-      withMiddleware(
-        compatibleMiddleware,
-        // @ts-expect-error
-        incompatibleMiddleware,
-      ),
-    )
-  })
-
-  test('withMiddleware returns typed dispatch, with any applicable extensions', () => {
-    const dispatch = store.dispatch(
-      typedInstance.withMiddleware(addedMiddleware),
-    )
-
-    // standard
-    expectTypeOf(dispatch({ type: 'foo' })).toEqualTypeOf<Action<string>>()
-
-    // thunk
-    expectTypeOf(dispatch(() => 'foo')).toBeString()
-
-    // static
-    expectTypeOf(dispatch(1)).toEqualTypeOf<1>()
-
-    // added
-    expectTypeOf(dispatch(2)).toEqualTypeOf<2>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/index.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/index.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import type { Middleware } from 'redux'
-import { createDynamicMiddleware } from '../index'
-import { configureStore } from '../../configureStore'
-import type { BaseActionCreator, PayloadAction } from '../../createAction'
-import { createAction } from '../../createAction'
-import { isAllOf } from '../../matchers'
-
-const probeType = 'probeableMW/probe'
-
-export interface ProbeMiddleware
-  extends BaseActionCreator<number, typeof probeType> {
-  <Id extends number>(id: Id): PayloadAction<Id, typeof probeType>
-}
-
-export const probeMiddleware = createAction(probeType) as ProbeMiddleware
-
-const matchId =
-  <Id extends number>(id: Id) =>
-  (action: any): action is PayloadAction<Id> =>
-    action.payload === id
-
-export const makeProbeableMiddleware = <Id extends number>(
-  id: Id,
-): Middleware<{
-  (action: PayloadAction<Id, typeof probeType>): Id
-}> => {
-  const isMiddlewareAction = isAllOf(probeMiddleware, matchId(id))
-  return (api) => (next) => (action) => {
-    if (isMiddlewareAction(action)) {
-      return id
-    }
-    return next(action)
-  }
-}
-
-const staticMiddleware = makeProbeableMiddleware(1)
-
-describe('createDynamicMiddleware', () => {
-  it('allows injecting middleware after store instantiation', () => {
-    const dynamicInstance = createDynamicMiddleware()
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) =>
-        gDM().prepend(dynamicInstance.middleware).concat(staticMiddleware),
-    })
-    // normal, pre-inject
-    expect(store.dispatch(probeMiddleware(2))).toEqual(probeMiddleware(2))
-    // static
-    expect(store.dispatch(probeMiddleware(1))).toBe(1)
-
-    // inject
-    dynamicInstance.addMiddleware(makeProbeableMiddleware(2))
-
-    // injected
-    expect(store.dispatch(probeMiddleware(2))).toBe(2)
-  })
-  it('returns dispatch when withMiddleware is dispatched', () => {
-    const dynamicInstance = createDynamicMiddleware()
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().prepend(dynamicInstance.middleware),
-    })
-
-    // normal, pre-inject
-    expect(store.dispatch(probeMiddleware(2))).toEqual(probeMiddleware(2))
-
-    const dispatch = store.dispatch(
-      dynamicInstance.withMiddleware(makeProbeableMiddleware(2)),
-    )
-    expect(dispatch).toEqual(expect.any(Function))
-
-    expect(dispatch(probeMiddleware(2))).toBe(2)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/react.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/react.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import type { Context } from 'react'
-import type { ReactReduxContextValue } from 'react-redux'
-import type { Action, Middleware, UnknownAction } from 'redux'
-import type { ThunkDispatch } from 'redux-thunk'
-import { createDynamicMiddleware } from '../react'
-
-interface AppDispatch extends ThunkDispatch<number, undefined, UnknownAction> {
-  (n: 1): 1
-}
-
-const untypedInstance = createDynamicMiddleware()
-
-const typedInstance = createDynamicMiddleware<number, AppDispatch>()
-
-declare const compatibleMiddleware: Middleware<{}, number, AppDispatch>
-declare const incompatibleMiddleware: Middleware<{}, string, AppDispatch>
-
-declare const customContext: Context<ReactReduxContextValue | null>
-
-declare const addedMiddleware: Middleware<(n: 2) => 2>
-
-describe('type tests', () => {
-  test('instance typed at creation enforces correct middleware type', () => {
-    const useDispatch = typedInstance.createDispatchWithMiddlewareHook(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-
-    const createDispatchWithMiddlewareHook =
-      typedInstance.createDispatchWithMiddlewareHookFactory(customContext)
-    const useDispatchWithContext = createDispatchWithMiddlewareHook(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-  })
-
-  test('withTypes() enforces correct middleware type', () => {
-    const createDispatchWithMiddlewareHook =
-      untypedInstance.createDispatchWithMiddlewareHook.withTypes<{
-        state: number
-        dispatch: AppDispatch
-      }>()
-    const useDispatch = createDispatchWithMiddlewareHook(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-
-    const createCustomDispatchWithMiddlewareHook = untypedInstance
-      .createDispatchWithMiddlewareHookFactory(customContext)
-      .withTypes<{
-        state: number
-        dispatch: AppDispatch
-      }>()
-    const useCustomDispatch = createCustomDispatchWithMiddlewareHook(
-      compatibleMiddleware,
-      // @ts-expect-error
-      incompatibleMiddleware,
-    )
-  })
-
-  test('useDispatchWithMW returns typed dispatch, with any applicable extensions', () => {
-    const useDispatchWithMW =
-      typedInstance.createDispatchWithMiddlewareHook(addedMiddleware)
-    const dispatch = useDispatchWithMW()
-
-    // standard
-    expectTypeOf(dispatch({ type: 'foo' })).toEqualTypeOf<Action<string>>()
-
-    // thunk
-    expectTypeOf(dispatch(() => 'foo')).toBeString()
-
-    // static
-    expectTypeOf(dispatch(1)).toEqualTypeOf<1>()
-
-    // added
-    expectTypeOf(dispatch(2)).toEqualTypeOf<2>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/react.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/tests/react.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import * as React from 'react'
-import { createDynamicMiddleware } from '../react'
-import { configureStore } from '../../configureStore'
-import { makeProbeableMiddleware, probeMiddleware } from './index.test'
-import { render } from '@testing-library/react'
-import type { Dispatch } from 'redux'
-import type { ReactReduxContextValue } from 'react-redux'
-import { Provider } from 'react-redux'
-
-const staticMiddleware = makeProbeableMiddleware(1)
-
-describe('createReactDynamicMiddleware', () => {
-  describe('createDispatchWithMiddlewareHook', () => {
-    it('injects middleware upon creation', () => {
-      const dynamicInstance = createDynamicMiddleware()
-      const store = configureStore({
-        reducer: () => 0,
-        middleware: (gDM) =>
-          gDM().prepend(dynamicInstance.middleware).concat(staticMiddleware),
-      })
-      // normal, pre-inject
-      expect(store.dispatch(probeMiddleware(2))).toEqual(probeMiddleware(2))
-      // static
-      expect(store.dispatch(probeMiddleware(1))).toBe(1)
-
-      const useDispatch = dynamicInstance.createDispatchWithMiddlewareHook(
-        makeProbeableMiddleware(2),
-      )
-
-      // injected
-      expect(store.dispatch(probeMiddleware(2))).toBe(2)
-    })
-
-    it('returns dispatch', () => {
-      const dynamicInstance = createDynamicMiddleware()
-      const store = configureStore({
-        reducer: () => 0,
-        middleware: (gDM) =>
-          gDM().prepend(dynamicInstance.middleware).concat(staticMiddleware),
-      })
-
-      const useDispatch = dynamicInstance.createDispatchWithMiddlewareHook(
-        makeProbeableMiddleware(2),
-      )
-
-      let dispatch: Dispatch | undefined
-      function Component() {
-        dispatch = useDispatch()
-
-        return null
-      }
-      render(<Component />, {
-        wrapper: ({ children }) => (
-          <Provider store={store}>{children}</Provider>
-        ),
-      })
-      expect(dispatch).toBe(store.dispatch)
-    })
-  })
-  describe('createDispatchWithMiddlewareHookFactory', () => {
-    it('returns the correct store dispatch', () => {
-      const dynamicInstance = createDynamicMiddleware()
-      const store = configureStore({
-        reducer: () => 0,
-        middleware: (gDM) =>
-          gDM().prepend(dynamicInstance.middleware).concat(staticMiddleware),
-      })
-      const store2 = configureStore({
-        reducer: () => '',
-        middleware: (gDM) =>
-          gDM().prepend(dynamicInstance.middleware).concat(staticMiddleware),
-      })
-
-      const context = React.createContext<ReactReduxContextValue | null>(null)
-
-      const createDispatchWithMiddlewareHook =
-        dynamicInstance.createDispatchWithMiddlewareHookFactory(context)
-
-      const useDispatch = createDispatchWithMiddlewareHook(
-        makeProbeableMiddleware(2),
-      )
-
-      let dispatch: Dispatch | undefined
-      function Component() {
-        dispatch = useDispatch()
-
-        return null
-      }
-      render(<Component />, {
-        wrapper: ({ children }) => (
-          <Provider store={store}>
-            <Provider context={context} store={store2}>
-              {children}
-            </Provider>
-          </Provider>
-        ),
-      })
-      expect(dispatch).toBe(store2.dispatch)
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/dynamicMiddleware/types.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/dynamicMiddleware/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import type { Dispatch, Middleware, MiddlewareAPI, UnknownAction } from 'redux'
-import type { BaseActionCreator, PayloadAction } from '../createAction'
-import type { GetState } from '../createAsyncThunk'
-import type { ExtractDispatchExtensions, FallbackIfUnknown } from '../tsHelpers'
-
-export type GetMiddlewareApi<MiddlewareApiConfig> = MiddlewareAPI<
-  GetDispatchType<MiddlewareApiConfig>,
-  GetState<MiddlewareApiConfig>
->
-
-export type MiddlewareApiConfig = {
-  state?: unknown
-  dispatch?: Dispatch
-}
-
-// TODO: consolidate with cAT helpers?
-export type GetDispatchType<MiddlewareApiConfig> = MiddlewareApiConfig extends {
-  dispatch: infer DispatchType
-}
-  ? FallbackIfUnknown<DispatchType, Dispatch>
-  : Dispatch
-
-export type AddMiddleware<
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = {
-  (...middlewares: Middleware<any, State, DispatchType>[]): void
-  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): AddMiddleware<
-    GetState<MiddlewareConfig>,
-    GetDispatchType<MiddlewareConfig>
-  >
-}
-
-export type WithMiddleware<
-  State = any,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = BaseActionCreator<
-  Middleware<any, State, DispatchType>[],
-  'dynamicMiddleware/add',
-  { instanceId: string }
-> & {
-  <Middlewares extends Middleware<any, State, DispatchType>[]>(
-    ...middlewares: Middlewares
-  ): PayloadAction<Middlewares, 'dynamicMiddleware/add', { instanceId: string }>
-  withTypes<MiddlewareConfig extends MiddlewareApiConfig>(): WithMiddleware<
-    GetState<MiddlewareConfig>,
-    GetDispatchType<MiddlewareConfig>
-  >
-}
-
-export interface DynamicDispatch {
-  // return a version of dispatch that knows about middleware
-  <Middlewares extends Middleware<any>[]>(
-    action: PayloadAction<Middlewares, 'dynamicMiddleware/add'>,
-  ): ExtractDispatchExtensions<Middlewares> & this
-}
-
-export type MiddlewareEntry<
-  State = unknown,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = {
-  middleware: Middleware<any, State, DispatchType>
-  applied: Map<
-    MiddlewareAPI<DispatchType, State>,
-    ReturnType<Middleware<any, State, DispatchType>>
-  >
-}
-
-export type DynamicMiddleware<
-  State = unknown,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = Middleware<DynamicDispatch, State, DispatchType>
-
-export type DynamicMiddlewareInstance<
-  State = unknown,
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> = {
-  middleware: DynamicMiddleware<State, DispatchType>
-  addMiddleware: AddMiddleware<State, DispatchType>
-  withMiddleware: WithMiddleware<State, DispatchType>
-  instanceId: string
-}
Index: de_modules/@reduxjs/toolkit/src/entities/create_adapter.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/create_adapter.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models'
-import { createInitialStateFactory } from './entity_state'
-import { createSelectorsFactory } from './state_selectors'
-import { createSortedStateAdapter } from './sorted_state_adapter'
-import { createUnsortedStateAdapter } from './unsorted_state_adapter'
-import type { WithRequiredProp } from '../tsHelpers'
-
-export function createEntityAdapter<T, Id extends EntityId>(
-  options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>,
-): EntityAdapter<T, Id>
-
-export function createEntityAdapter<T extends { id: EntityId }>(
-  options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>,
-): EntityAdapter<T, T['id']>
-
-/**
- *
- * @param options
- *
- * @public
- */
-export function createEntityAdapter<T>(
-  options: EntityAdapterOptions<T, EntityId> = {},
-): EntityAdapter<T, EntityId> {
-  const {
-    selectId,
-    sortComparer,
-  }: Required<EntityAdapterOptions<T, EntityId>> = {
-    sortComparer: false,
-    selectId: (instance: any) => instance.id,
-    ...options,
-  }
-
-  const stateAdapter = sortComparer
-    ? createSortedStateAdapter(selectId, sortComparer)
-    : createUnsortedStateAdapter(selectId)
-  const stateFactory = createInitialStateFactory(stateAdapter)
-  const selectorsFactory = createSelectorsFactory<T, EntityId>()
-
-  return {
-    selectId,
-    sortComparer,
-    ...stateFactory,
-    ...selectorsFactory,
-    ...stateAdapter,
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/entity_state.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/entity_state.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import type {
-  EntityId,
-  EntityState,
-  EntityStateAdapter,
-  EntityStateFactory,
-} from './models'
-
-export function getInitialEntityState<T, Id extends EntityId>(): EntityState<
-  T,
-  Id
-> {
-  return {
-    ids: [],
-    entities: {} as Record<Id, T>,
-  }
-}
-
-export function createInitialStateFactory<T, Id extends EntityId>(
-  stateAdapter: EntityStateAdapter<T, Id>,
-): EntityStateFactory<T, Id> {
-  function getInitialState(
-    state?: undefined,
-    entities?: readonly T[] | Record<Id, T>,
-  ): EntityState<T, Id>
-  function getInitialState<S extends object>(
-    additionalState: S,
-    entities?: readonly T[] | Record<Id, T>,
-  ): EntityState<T, Id> & S
-  function getInitialState(
-    additionalState: any = {},
-    entities?: readonly T[] | Record<Id, T>,
-  ): any {
-    const state = Object.assign(getInitialEntityState(), additionalState)
-    return entities ? stateAdapter.setAll(state, entities) : state
-  }
-
-  return { getInitialState }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export { createEntityAdapter } from './create_adapter'
-export type {
-  EntityState,
-  EntityAdapter,
-  Update,
-  IdSelector,
-  Comparer,
-} from './models'
Index: de_modules/@reduxjs/toolkit/src/entities/models.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/models.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,198 +1,0 @@
-import type { Draft } from 'immer'
-import type { PayloadAction } from '../createAction'
-import type { CastAny, Id } from '../tsHelpers'
-import type { UncheckedIndexedAccess } from '../uncheckedindexed.js'
-import type { GetSelectorsOptions } from './state_selectors'
-
-/**
- * @public
- */
-export type EntityId = number | string
-
-/**
- * @public
- */
-export type Comparer<T> = (a: T, b: T) => number
-
-/**
- * @public
- */
-export type IdSelector<T, Id extends EntityId> = (model: T) => Id
-
-/**
- * @public
- */
-export type Update<T, Id extends EntityId> = { id: Id; changes: Partial<T> }
-
-/**
- * @public
- */
-export interface EntityState<T, Id extends EntityId> {
-  ids: Id[]
-  entities: Record<Id, T>
-}
-
-/**
- * @public
- */
-export interface EntityAdapterOptions<T, Id extends EntityId> {
-  selectId?: IdSelector<T, Id>
-  sortComparer?: false | Comparer<T>
-}
-
-export type PreventAny<S, T, Id extends EntityId> = CastAny<
-  S,
-  EntityState<T, Id>
->
-
-export type DraftableEntityState<T, Id extends EntityId> =
-  | EntityState<T, Id>
-  | Draft<EntityState<T, Id>>
-
-/**
- * @public
- */
-export interface EntityStateAdapter<T, Id extends EntityId> {
-  addOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entity: T,
-  ): S
-  addOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    action: PayloadAction<T>,
-  ): S
-
-  addMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: readonly T[] | Record<Id, T>,
-  ): S
-  addMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: PayloadAction<readonly T[] | Record<Id, T>>,
-  ): S
-
-  setOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entity: T,
-  ): S
-  setOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    action: PayloadAction<T>,
-  ): S
-  setMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: readonly T[] | Record<Id, T>,
-  ): S
-  setMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: PayloadAction<readonly T[] | Record<Id, T>>,
-  ): S
-  setAll<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: readonly T[] | Record<Id, T>,
-  ): S
-  setAll<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: PayloadAction<readonly T[] | Record<Id, T>>,
-  ): S
-
-  removeOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    key: Id,
-  ): S
-  removeOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    key: PayloadAction<Id>,
-  ): S
-
-  removeMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    keys: readonly Id[],
-  ): S
-  removeMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    keys: PayloadAction<readonly Id[]>,
-  ): S
-
-  removeAll<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-  ): S
-
-  updateOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    update: Update<T, Id>,
-  ): S
-  updateOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    update: PayloadAction<Update<T, Id>>,
-  ): S
-
-  updateMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    updates: ReadonlyArray<Update<T, Id>>,
-  ): S
-  updateMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    updates: PayloadAction<ReadonlyArray<Update<T, Id>>>,
-  ): S
-
-  upsertOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entity: T,
-  ): S
-  upsertOne<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entity: PayloadAction<T>,
-  ): S
-
-  upsertMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: readonly T[] | Record<Id, T>,
-  ): S
-  upsertMany<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-    entities: PayloadAction<readonly T[] | Record<Id, T>>,
-  ): S
-}
-
-/**
- * @public
- */
-export interface EntitySelectors<T, V, IdType extends EntityId> {
-  selectIds: (state: V) => IdType[]
-  selectEntities: (state: V) => Record<IdType, T>
-  selectAll: (state: V) => T[]
-  selectTotal: (state: V) => number
-  selectById: (state: V, id: IdType) => Id<UncheckedIndexedAccess<T>>
-}
-
-/**
- * @public
- */
-export interface EntityStateFactory<T, Id extends EntityId> {
-  getInitialState(
-    state?: undefined,
-    entities?: Record<Id, T> | readonly T[],
-  ): EntityState<T, Id>
-  getInitialState<S extends object>(
-    state: S,
-    entities?: Record<Id, T> | readonly T[],
-  ): EntityState<T, Id> & S
-}
-
-/**
- * @public
- */
-export interface EntityAdapter<T, Id extends EntityId>
-  extends EntityStateAdapter<T, Id>,
-    EntityStateFactory<T, Id>,
-    Required<EntityAdapterOptions<T, Id>> {
-  getSelectors(
-    selectState?: undefined,
-    options?: GetSelectorsOptions,
-  ): EntitySelectors<T, EntityState<T, Id>, Id>
-  getSelectors<V>(
-    selectState: (state: V) => EntityState<T, Id>,
-    options?: GetSelectorsOptions,
-  ): EntitySelectors<T, V, Id>
-}
Index: de_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,266 +1,0 @@
-import type {
-  IdSelector,
-  Comparer,
-  EntityStateAdapter,
-  Update,
-  EntityId,
-  DraftableEntityState,
-} from './models'
-import { createStateOperator } from './state_adapter'
-import { createUnsortedStateAdapter } from './unsorted_state_adapter'
-import {
-  selectIdValue,
-  ensureEntitiesArray,
-  splitAddedUpdatedEntities,
-  getCurrent,
-} from './utils'
-
-// Borrowed from Replay
-export function findInsertIndex<T>(
-  sortedItems: T[],
-  item: T,
-  comparisonFunction: Comparer<T>,
-): number {
-  let lowIndex = 0
-  let highIndex = sortedItems.length
-  while (lowIndex < highIndex) {
-    let middleIndex = (lowIndex + highIndex) >>> 1
-    const currentItem = sortedItems[middleIndex]
-    const res = comparisonFunction(item, currentItem)
-    if (res >= 0) {
-      lowIndex = middleIndex + 1
-    } else {
-      highIndex = middleIndex
-    }
-  }
-
-  return lowIndex
-}
-
-export function insert<T>(
-  sortedItems: T[],
-  item: T,
-  comparisonFunction: Comparer<T>,
-): T[] {
-  const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction)
-
-  sortedItems.splice(insertAtIndex, 0, item)
-
-  return sortedItems
-}
-
-export function createSortedStateAdapter<T, Id extends EntityId>(
-  selectId: IdSelector<T, Id>,
-  comparer: Comparer<T>,
-): EntityStateAdapter<T, Id> {
-  type R = DraftableEntityState<T, Id>
-
-  const { removeOne, removeMany, removeAll } =
-    createUnsortedStateAdapter(selectId)
-
-  function addOneMutably(entity: T, state: R): void {
-    return addManyMutably([entity], state)
-  }
-
-  function addManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-    existingIds?: Id[],
-  ): void {
-    newEntities = ensureEntitiesArray(newEntities)
-
-    const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids))
-    const addedKeys = new Set<Id>();
-    const models = newEntities.filter(
-      (model) => {
-          const modelId = selectIdValue(model, selectId);
-          const notAdded = !addedKeys.has(modelId);
-          if (notAdded) addedKeys.add(modelId);
-          return !existingKeys.has(modelId) && notAdded;
-      }
-    )
-
-    if (models.length !== 0) {
-      mergeFunction(state, models)
-    }
-  }
-
-  function setOneMutably(entity: T, state: R): void {
-    return setManyMutably([entity], state)
-  }
-
-  function setManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    let deduplicatedEntities = {} as Record<Id, T>;
-    newEntities = ensureEntitiesArray(newEntities)
-    if (newEntities.length !== 0) {
-      for (const item of newEntities) {
-        const entityId = selectId(item);
-        // For multiple items with the same ID, we should keep the last one.
-        deduplicatedEntities[entityId] = item;
-        delete (state.entities as Record<Id, T>)[entityId]
-      }
-      newEntities = ensureEntitiesArray(deduplicatedEntities);
-      mergeFunction(state, newEntities)
-    }
-  }
-
-  function setAllMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    newEntities = ensureEntitiesArray(newEntities)
-    state.entities = {} as Record<Id, T>
-    state.ids = []
-
-    addManyMutably(newEntities, state, [])
-  }
-
-  function updateOneMutably(update: Update<T, Id>, state: R): void {
-    return updateManyMutably([update], state)
-  }
-
-  function updateManyMutably(
-    updates: ReadonlyArray<Update<T, Id>>,
-    state: R,
-  ): void {
-    let appliedUpdates = false
-    let replacedIds = false
-
-    for (let update of updates) {
-      const entity: T | undefined = (state.entities as Record<Id, T>)[update.id]
-      if (!entity) {
-        continue
-      }
-
-      appliedUpdates = true
-
-      Object.assign(entity, update.changes)
-      const newId = selectId(entity)
-
-      if (update.id !== newId) {
-        // We do support the case where updates can change an item's ID.
-        // This makes things trickier - go ahead and swap the IDs in state now.
-        replacedIds = true
-        delete (state.entities as Record<Id, T>)[update.id]
-        const oldIndex = (state.ids as Id[]).indexOf(update.id)
-        state.ids[oldIndex] = newId
-        ;(state.entities as Record<Id, T>)[newId] = entity
-      }
-    }
-
-    if (appliedUpdates) {
-      mergeFunction(state, [], appliedUpdates, replacedIds)
-    }
-  }
-
-  function upsertOneMutably(entity: T, state: R): void {
-    return upsertManyMutably([entity], state)
-  }
-
-  function upsertManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(
-      newEntities,
-      selectId,
-      state,
-    )
-
-    if (added.length) {
-      addManyMutably(added, state, existingIdsArray)
-    }
-    if (updated.length) {
-      updateManyMutably(updated, state)
-    }
-  }
-
-  function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {
-    if (a.length !== b.length) {
-      return false
-    }
-
-    for (let i = 0; i < a.length; i++) {
-      if (a[i] === b[i]) {
-        continue
-      }
-      return false
-    }
-    return true
-  }
-
-  type MergeFunction = (
-    state: R,
-    addedItems: readonly T[],
-    appliedUpdates?: boolean,
-    replacedIds?: boolean,
-  ) => void
-
-  const mergeFunction: MergeFunction = (
-    state,
-    addedItems,
-    appliedUpdates,
-    replacedIds,
-  ) => {
-    const currentEntities = getCurrent(state.entities)
-    const currentIds = getCurrent(state.ids)
-
-    const stateEntities = state.entities as Record<Id, T>
-
-    let ids: Iterable<Id> = currentIds
-    if (replacedIds) {
-      ids = new Set(currentIds)
-    }
-
-    let sortedEntities: T[] = []
-    for (const id of ids) {
-      const entity = currentEntities[id]
-      if (entity) {
-        sortedEntities.push(entity)
-      }
-    }
-    const wasPreviouslyEmpty = sortedEntities.length === 0
-
-    // Insert/overwrite all new/updated
-    for (const item of addedItems) {
-      stateEntities[selectId(item)] = item
-
-      if (!wasPreviouslyEmpty) {
-        // Binary search insertion generally requires fewer comparisons
-        insert(sortedEntities, item, comparer)
-      }
-    }
-
-    if (wasPreviouslyEmpty) {
-      // All we have is the incoming values, sort them
-      sortedEntities = addedItems.slice().sort(comparer)
-    } else if (appliedUpdates) {
-      // We should have a _mostly_-sorted array already
-      sortedEntities.sort(comparer)
-    }
-
-    const newSortedIds = sortedEntities.map(selectId)
-
-    if (!areArraysEqual(currentIds, newSortedIds)) {
-      state.ids = newSortedIds
-    }
-  }
-
-  return {
-    removeOne,
-    removeMany,
-    removeAll,
-    addOne: createStateOperator(addOneMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    addMany: createStateOperator(addManyMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertMany: createStateOperator(upsertManyMutably),
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/state_adapter.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/state_adapter.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-import { createNextState, isDraft } from '../immerImports'
-import type { Draft } from 'immer'
-import type { EntityId, DraftableEntityState, PreventAny } from './models'
-import type { PayloadAction } from '../createAction'
-import { isFSA } from '../createAction'
-
-export const isDraftTyped = isDraft as <T>(
-  value: T | Draft<T>,
-) => value is Draft<T>
-
-export function createSingleArgumentStateOperator<T, Id extends EntityId>(
-  mutator: (state: DraftableEntityState<T, Id>) => void,
-) {
-  const operator = createStateOperator(
-    (_: undefined, state: DraftableEntityState<T, Id>) => mutator(state),
-  )
-
-  return function operation<S extends DraftableEntityState<T, Id>>(
-    state: PreventAny<S, T, Id>,
-  ): S {
-    return operator(state as S, undefined)
-  }
-}
-
-export function createStateOperator<T, Id extends EntityId, R>(
-  mutator: (arg: R, state: DraftableEntityState<T, Id>) => void,
-) {
-  return function operation<S extends DraftableEntityState<T, Id>>(
-    state: S,
-    arg: R | PayloadAction<R>,
-  ): S {
-    function isPayloadActionArgument(
-      arg: R | PayloadAction<R>,
-    ): arg is PayloadAction<R> {
-      return isFSA(arg)
-    }
-
-    const runMutator = (draft: DraftableEntityState<T, Id>) => {
-      if (isPayloadActionArgument(arg)) {
-        mutator(arg.payload, draft)
-      } else {
-        mutator(arg, draft)
-      }
-    }
-
-    if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {
-      // we must already be inside a `createNextState` call, likely because
-      // this is being wrapped in `createReducer` or `createSlice`.
-      // It's safe to just pass the draft to the mutator.
-      runMutator(state)
-
-      // since it's a draft, we'll just return it
-      return state
-    }
-
-    return createNextState(state, runMutator)
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/state_selectors.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/state_selectors.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import type { CreateSelectorFunction, Selector } from 'reselect'
-import { createDraftSafeSelector } from '../createDraftSafeSelector'
-import type { EntityId, EntitySelectors, EntityState } from './models'
-
-type AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>
-
-export type GetSelectorsOptions = {
-  createSelector?: AnyCreateSelectorFunction
-}
-
-export function createSelectorsFactory<T, Id extends EntityId>() {
-  function getSelectors(
-    selectState?: undefined,
-    options?: GetSelectorsOptions,
-  ): EntitySelectors<T, EntityState<T, Id>, Id>
-  function getSelectors<V>(
-    selectState: (state: V) => EntityState<T, Id>,
-    options?: GetSelectorsOptions,
-  ): EntitySelectors<T, V, Id>
-  function getSelectors<V>(
-    selectState?: (state: V) => EntityState<T, Id>,
-    options: GetSelectorsOptions = {},
-  ): EntitySelectors<T, any, Id> {
-    const {
-      createSelector = createDraftSafeSelector as AnyCreateSelectorFunction,
-    } = options
-
-    const selectIds = (state: EntityState<T, Id>) => state.ids
-
-    const selectEntities = (state: EntityState<T, Id>) => state.entities
-
-    const selectAll = createSelector(
-      selectIds,
-      selectEntities,
-      (ids, entities): T[] => ids.map((id) => entities[id]!),
-    )
-
-    const selectId = (_: unknown, id: Id) => id
-
-    const selectById = (entities: Record<Id, T>, id: Id) => entities[id]
-
-    const selectTotal = createSelector(selectIds, (ids) => ids.length)
-
-    if (!selectState) {
-      return {
-        selectIds,
-        selectEntities,
-        selectAll,
-        selectTotal,
-        selectById: createSelector(selectEntities, selectId, selectById),
-      }
-    }
-
-    const selectGlobalizedEntities = createSelector(
-      selectState as Selector<V, EntityState<T, Id>>,
-      selectEntities,
-    )
-
-    return {
-      selectIds: createSelector(selectState, selectIds),
-      selectEntities: selectGlobalizedEntities,
-      selectAll: createSelector(selectState, selectAll),
-      selectTotal: createSelector(selectState, selectTotal),
-      selectById: createSelector(
-        selectGlobalizedEntities,
-        selectId,
-        selectById,
-      ),
-    }
-  }
-
-  return { getSelectors }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/tests/entity_slice_enhancer.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/entity_slice_enhancer.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import { createEntityAdapter, createSlice } from '../..'
-import type {
-  PayloadAction,
-  Slice,
-  SliceCaseReducers,
-  UnknownAction,
-} from '../..'
-import type { EntityId, EntityState, IdSelector } from '../models'
-import type { BookModel } from './fixtures/book'
-
-describe('Entity Slice Enhancer', () => {
-  let slice: Slice<EntityState<BookModel, BookModel['id']>>
-
-  beforeEach(() => {
-    const indieSlice = entitySliceEnhancer({
-      name: 'book',
-      selectId: (book: BookModel) => book.id,
-    })
-    slice = indieSlice
-  })
-
-  it('exposes oneAdded', () => {
-    const book = {
-      id: '0',
-      title: 'Der Steppenwolf',
-      author: 'Herman Hesse',
-    }
-    const action = slice.actions.oneAdded(book)
-    const oneAdded = slice.reducer(undefined, action as UnknownAction)
-    expect(oneAdded.entities['0']).toBe(book)
-  })
-})
-
-interface EntitySliceArgs<T, Id extends EntityId> {
-  name: string
-  selectId: IdSelector<T, Id>
-  modelReducer?: SliceCaseReducers<T>
-}
-
-function entitySliceEnhancer<T, Id extends EntityId>({
-  name,
-  selectId,
-  modelReducer,
-}: EntitySliceArgs<T, Id>) {
-  const modelAdapter = createEntityAdapter({
-    selectId,
-  })
-
-  return createSlice({
-    name,
-    initialState: modelAdapter.getInitialState(),
-    reducers: {
-      oneAdded(state, action: PayloadAction<T>) {
-        modelAdapter.addOne(state, action.payload)
-      },
-      ...modelReducer,
-    },
-  })
-}
Index: de_modules/@reduxjs/toolkit/src/entities/tests/entity_state.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/entity_state.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-import type { EntityAdapter } from '../index'
-import { createEntityAdapter } from '../index'
-import type { PayloadAction } from '../../createAction'
-import { createAction } from '../../createAction'
-import { createSlice } from '../../createSlice'
-import type { BookModel } from './fixtures/book'
-
-describe('Entity State', () => {
-  let adapter: EntityAdapter<BookModel, string>
-
-  beforeEach(() => {
-    adapter = createEntityAdapter({
-      selectId: (book: BookModel) => book.id,
-    })
-  })
-
-  it('should let you get the initial state', () => {
-    const initialState = adapter.getInitialState()
-
-    expect(initialState).toEqual({
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you provide additional initial state properties', () => {
-    const additionalProperties = { isHydrated: true }
-
-    const initialState = adapter.getInitialState(additionalProperties)
-
-    expect(initialState).toEqual({
-      ...additionalProperties,
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you provide initial entities', () => {
-    const book1: BookModel = { id: 'a', title: 'First' }
-
-    const initialState = adapter.getInitialState(undefined, [book1])
-
-    expect(initialState).toEqual({
-      ids: [book1.id],
-      entities: { [book1.id]: book1 },
-    })
-
-    const additionalProperties = { isHydrated: true }
-
-    const initialState2 = adapter.getInitialState(additionalProperties, [book1])
-
-    expect(initialState2).toEqual({
-      ...additionalProperties,
-      ids: [book1.id],
-      entities: { [book1.id]: book1 },
-    })
-  })
-
-  it('should allow methods to be passed as reducers', () => {
-    const upsertBook = createAction<BookModel>('otherBooks/upsert')
-
-    const booksSlice = createSlice({
-      name: 'books',
-      initialState: adapter.getInitialState(),
-      reducers: {
-        addOne: adapter.addOne,
-        removeOne(state, action: PayloadAction<string>) {
-          // TODO The nested `produce` calls don't mutate `state` here as I would have expected.
-          // TODO (note that `state` here is actually an Immer Draft<S>, from `createReducer`)
-          // TODO However, this works if we _return_ the new plain result value instead
-          // TODO See https://github.com/immerjs/immer/issues/533
-          const result = adapter.removeOne(state, action)
-          return result
-        },
-      },
-      extraReducers: (builder) => {
-        builder.addCase(upsertBook, (state, action) => {
-          return adapter.upsertOne(state, action)
-        })
-      },
-    })
-
-    const { addOne, removeOne } = booksSlice.actions
-    const { reducer } = booksSlice
-
-    const selectors = adapter.getSelectors()
-
-    const book1: BookModel = { id: 'a', title: 'First' }
-    const book1a: BookModel = { id: 'a', title: 'Second' }
-
-    const afterAddOne = reducer(undefined, addOne(book1))
-    expect(afterAddOne.entities[book1.id]).toBe(book1)
-
-    const afterRemoveOne = reducer(afterAddOne, removeOne(book1.id))
-    expect(afterRemoveOne.entities[book1.id]).toBeUndefined()
-    expect(selectors.selectTotal(afterRemoveOne)).toBe(0)
-
-    const afterUpsertFirst = reducer(afterRemoveOne, upsertBook(book1))
-    const afterUpsertSecond = reducer(afterUpsertFirst, upsertBook(book1a))
-
-    expect(afterUpsertSecond.entities[book1.id]).toEqual(book1a)
-    expect(selectors.selectTotal(afterUpsertSecond)).toBe(1)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/entities/tests/fixtures/book.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/fixtures/book.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-export interface BookModel {
-  id: string
-  title: string
-  author?: string
-}
-
-export const AClockworkOrange: BookModel = Object.freeze({
-  id: 'aco',
-  title: 'A Clockwork Orange',
-})
-
-export const AnimalFarm: BookModel = Object.freeze({
-  id: 'af',
-  title: 'Animal Farm',
-})
-
-export const TheGreatGatsby: BookModel = Object.freeze({
-  id: 'tgg',
-  title: 'The Great Gatsby',
-})
-
-export const TheHobbit: BookModel = Object.freeze({
-  id: 'th',
-  title: 'The Hobbit',
-  author: 'J. R. R. Tolkien',
-})
Index: de_modules/@reduxjs/toolkit/src/entities/tests/sorted_state_adapter.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/sorted_state_adapter.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1181 +1,0 @@
-import type { PayloadAction } from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createAction,
-  createSlice,
-  nanoid,
-} from '@reduxjs/toolkit'
-import { createNextState } from '../..'
-import { createEntityAdapter } from '../create_adapter'
-import type { EntityAdapter, EntityState } from '../models'
-import type { BookModel } from './fixtures/book'
-import {
-  AClockworkOrange,
-  AnimalFarm,
-  TheGreatGatsby,
-  TheHobbit,
-} from './fixtures/book'
-
-describe('Sorted State Adapter', () => {
-  let adapter: EntityAdapter<BookModel, string>
-  let state: EntityState<BookModel, string>
-
-  beforeAll(() => {
-    //eslint-disable-next-line
-    Object.defineProperty(Array.prototype, 'unwantedField', {
-      enumerable: true,
-      configurable: true,
-      value: 'This should not appear anywhere',
-    })
-  })
-
-  afterAll(() => {
-    delete (Array.prototype as any).unwantedField
-  })
-
-  beforeEach(() => {
-    adapter = createEntityAdapter({
-      selectId: (book: BookModel) => book.id,
-      sortComparer: (a, b) => {
-        return a.title.localeCompare(b.title)
-      },
-    })
-
-    state = { ids: [], entities: {} }
-  })
-
-  it('should let you add one entity to the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    expect(withOneEntity).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you add one entity to the state as an FSA', () => {
-    const bookAction = createAction<BookModel>('books/add')
-    const withOneEntity = adapter.addOne(state, bookAction(TheGreatGatsby))
-
-    expect(withOneEntity).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should not change state if you attempt to re-add an entity', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const readded = adapter.addOne(withOneEntity, TheGreatGatsby)
-
-    expect(readded).toBe(withOneEntity)
-  })
-
-  it('should let you add many entities to the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withManyMore = adapter.addMany(withOneEntity, [
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    expect(withManyMore).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you add many entities to the state from a dictionary', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withManyMore = adapter.addMany(withOneEntity, {
-      [AClockworkOrange.id]: AClockworkOrange,
-      [AnimalFarm.id]: AnimalFarm,
-    })
-
-    expect(withManyMore).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should remove existing and add new ones on setAll', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withAll = adapter.setAll(withOneEntity, [
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    expect(withAll).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should remove existing and add new ones on setAll when passing in a dictionary', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withAll = adapter.setAll(withOneEntity, {
-      [AClockworkOrange.id]: AClockworkOrange,
-      [AnimalFarm.id]: AnimalFarm,
-    })
-
-    expect(withAll).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should remove existing and add new ones on addAll (deprecated)', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withAll = adapter.setAll(withOneEntity, [
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    expect(withAll).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you add remove an entity from the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withoutOne = adapter.removeOne(withOneEntity, TheGreatGatsby.id)
-
-    expect(withoutOne).toEqual({
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you remove many entities by id from the state', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    const withoutMany = adapter.removeMany(withAll, [
-      TheGreatGatsby.id,
-      AClockworkOrange.id,
-    ])
-
-    expect(withoutMany).toEqual({
-      ids: [AnimalFarm.id],
-      entities: {
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you remove all entities from the state', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    const withoutAll = adapter.removeAll(withAll)
-
-    expect(withoutAll).toEqual({
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you update an entity in the state', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should not change state if you attempt to update an entity that has not been added', () => {
-    const withUpdates = adapter.updateOne(state, {
-      id: TheGreatGatsby.id,
-      changes: { title: 'A New Title' },
-    })
-
-    expect(withUpdates).toBe(state)
-  })
-
-  it('Replaces an existing entity if you change the ID while updating', () => {
-    const a = { id: 'a', title: 'First' }
-    const b = { id: 'b', title: 'Second' }
-    const c = { id: 'c', title: 'Third' }
-    const d = { id: 'd', title: 'Fourth' }
-    const withAdded = adapter.setAll(state, [a, b, c])
-
-    const withUpdated = adapter.updateOne(withAdded, {
-      id: 'b',
-      changes: {
-        id: 'c',
-      },
-    })
-
-    const { ids, entities } = withUpdated
-
-    expect(ids).toEqual(['a', 'c'])
-    expect(entities.a).toBeTruthy()
-    expect(entities.b).not.toBeTruthy()
-    expect(entities.c).toBeTruthy()
-    expect(entities.c!.id).toBe('c')
-    expect(entities.c!.title).toBe('Second')
-  })
-
-  it('should not change ids state if you attempt to update an entity that does not impact sorting', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-    const changes = { title: 'The Great Gatsby II' }
-
-    const withUpdates = adapter.updateOne(withAll, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withAll.ids).toBe(withUpdates.ids)
-  })
-
-  it('should let you update the id of entity', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { id: 'A New Id' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [changes.id],
-      entities: {
-        [changes.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should resort correctly if same id but sort key update', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AnimalFarm,
-      AClockworkOrange,
-    ])
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.updateOne(withAll, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [AClockworkOrange.id, TheGreatGatsby.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should resort correctly if the id and sort key update', () => {
-    const withOne = adapter.setAll(state, [
-      TheGreatGatsby,
-      AnimalFarm,
-      AClockworkOrange,
-    ])
-    const changes = { id: 'A New Id', title: 'A New Hope' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [AClockworkOrange.id, changes.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [changes.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should maintain a stable sorting order when updating items', () => {
-    interface OrderedEntity {
-      id: string
-      order: number
-      ts: number
-    }
-    const sortedItemsAdapter = createEntityAdapter<OrderedEntity>({
-      sortComparer: (a, b) => a.order - b.order,
-    })
-    const withInitialItems = sortedItemsAdapter.setAll(
-      sortedItemsAdapter.getInitialState(),
-      [
-        { id: 'C', order: 3, ts: 0 },
-        { id: 'A', order: 1, ts: 0 },
-        { id: 'F', order: 4, ts: 0 },
-        { id: 'B', order: 2, ts: 0 },
-        { id: 'D', order: 3, ts: 0 },
-        { id: 'E', order: 3, ts: 0 },
-      ],
-    )
-
-    expect(withInitialItems.ids).toEqual(['A', 'B', 'C', 'D', 'E', 'F'])
-
-    const updated = sortedItemsAdapter.updateOne(withInitialItems, {
-      id: 'C',
-      changes: { ts: 5 },
-    })
-
-    expect(updated.ids).toEqual(['A', 'B', 'C', 'D', 'E', 'F'])
-
-    const updated2 = sortedItemsAdapter.updateOne(withInitialItems, {
-      id: 'D',
-      changes: { ts: 6 },
-    })
-
-    expect(updated2.ids).toEqual(['A', 'B', 'C', 'D', 'E', 'F'])
-  })
-
-  it('should let you update many entities by id in the state', () => {
-    const firstChange = { title: 'Zack' }
-    const secondChange = { title: 'Aaron' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby, AClockworkOrange])
-
-    const withUpdates = adapter.updateMany(withMany, [
-      { id: TheGreatGatsby.id, changes: firstChange },
-      { id: AClockworkOrange.id, changes: secondChange },
-    ])
-
-    expect(withUpdates).toEqual({
-      ids: [AClockworkOrange.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: {
-          ...AClockworkOrange,
-          ...secondChange,
-        },
-      },
-    })
-  })
-
-  it('should let you add one entity to the state with upsert()', () => {
-    const withOneEntity = adapter.upsertOne(state, TheGreatGatsby)
-    expect(withOneEntity).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you update an entity in the state with upsert()', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.upsertOne(withOne, {
-      ...TheGreatGatsby,
-      ...changes,
-    })
-    expect(withUpdates).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should let you upsert many entities in the state', () => {
-    const firstChange = { title: 'Zack' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, [
-      { ...TheGreatGatsby, ...firstChange },
-      AClockworkOrange,
-    ])
-
-    expect(withUpserts).toEqual({
-      ids: [AClockworkOrange.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should do nothing when upsertMany is given an empty array', () => {
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, [])
-
-    expect(withUpserts).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should throw when upsertMany is passed undefined or null', async () => {
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const fakeRequest = (response: null | undefined) =>
-      new Promise((resolve) => setTimeout(() => resolve(response), 50))
-
-    const undefinedBooks = (await fakeRequest(undefined)) as BookModel[]
-    expect(() => adapter.upsertMany(withMany, undefinedBooks)).toThrow()
-
-    const nullBooks = (await fakeRequest(null)) as BookModel[]
-    expect(() => adapter.upsertMany(withMany, nullBooks)).toThrow()
-  })
-
-  it('should let you upsert many entities in the state when passing in a dictionary', () => {
-    const firstChange = { title: 'Zack' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, {
-      [TheGreatGatsby.id]: { ...TheGreatGatsby, ...firstChange },
-      [AClockworkOrange.id]: AClockworkOrange,
-    })
-
-    expect(withUpserts).toEqual({
-      ids: [AClockworkOrange.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should let you add a new entity then apply changes to it', () => {
-    const firstChange = { author: TheHobbit.author }
-    const secondChange = { title: 'Zack' }
-    const withMany = adapter.setAll(state, [AClockworkOrange])
-
-    const withUpserts = adapter.upsertMany(withMany, [
-      {...TheGreatGatsby}, { ...TheGreatGatsby, ...firstChange }, {...TheGreatGatsby, ...secondChange}
-    ])
-
-    expect(withUpserts).toEqual({
-      ids: [AClockworkOrange.id, TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-          ...secondChange,
-        },
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should let you add a new entity in the state with setOne() and keep the sorting', () => {
-    const withMany = adapter.setAll(state, [AnimalFarm, TheHobbit])
-    const withOneMore = adapter.setOne(withMany, TheGreatGatsby)
-    expect(withOneMore).toEqual({
-      ids: [AnimalFarm.id, TheGreatGatsby.id, TheHobbit.id],
-      entities: {
-        [AnimalFarm.id]: AnimalFarm,
-        [TheHobbit.id]: TheHobbit,
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you replace an entity in the state with setOne()', () => {
-    let withOne = adapter.setOne(state, TheHobbit)
-    const changeWithoutAuthor = { id: TheHobbit.id, title: 'Silmarillion' }
-    withOne = adapter.setOne(withOne, changeWithoutAuthor)
-
-    expect(withOne).toEqual({
-      ids: [TheHobbit.id],
-      entities: {
-        [TheHobbit.id]: changeWithoutAuthor,
-      },
-    })
-  })
-
-  it('should do nothing when setMany is given an empty array', () => {
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.setMany(withMany, [])
-
-    expect(withUpserts).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you set many entities in the state', () => {
-    const firstChange = { id: TheHobbit.id, title: 'Silmarillion' }
-    const withMany = adapter.setAll(state, [TheHobbit])
-
-    const withSetMany = adapter.setMany(withMany, [
-      firstChange,
-      AClockworkOrange,
-    ])
-
-    expect(withSetMany).toEqual({
-      ids: [AClockworkOrange.id, TheHobbit.id],
-      entities: {
-        [TheHobbit.id]: firstChange,
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should work consistent with Unsorted State Adapter adding duplicate ids', () => {
-    const unsortedAdaptor = createEntityAdapter({
-      selectId: (book: BookModel) => book.id
-    });
-
-    const firstEntry = {id: AClockworkOrange.id, author: TheHobbit.author }
-    const secondEntry = {id: AClockworkOrange.id, title: 'Zack' }
-    const withNothingSorted = adapter.setAll(state, []);
-    const withNothingUnsorted = unsortedAdaptor.setAll(state, []);
-    const withOneSorted = adapter.addMany(withNothingSorted, [
-      { ...AClockworkOrange, ...firstEntry }, {...AClockworkOrange, ...secondEntry}
-    ])
-    const withOneUnsorted = adapter.addMany(withNothingUnsorted, [
-      { ...AClockworkOrange, ...firstEntry }, {...AClockworkOrange, ...secondEntry}
-    ])
-
-    expect(withOneSorted).toEqual(withOneUnsorted);
-  })
-
-  it('should work consistent with Unsorted State Adapter adding duplicate ids', () => {
-    const unsortedAdaptor = createEntityAdapter({
-      selectId: (book: BookModel) => book.id
-    });
-
-    const firstEntry = {id: AClockworkOrange.id, author: TheHobbit.author }
-    const secondEntry = {id: AClockworkOrange.id, title: 'Zack' }
-    const withNothingSorted = adapter.setAll(state, [TheHobbit]);
-    const withNothingUnsorted = unsortedAdaptor.setAll(state, [TheHobbit]);
-    const withOneSorted = adapter.setMany(withNothingSorted, [
-      { ...AClockworkOrange, ...firstEntry, id: 'th' }, {...AClockworkOrange, ...secondEntry, id: 'th'}
-    ])
-    const withOneUnsorted = unsortedAdaptor.setMany(withNothingUnsorted, [
-      { ...AClockworkOrange, ...firstEntry, id: 'th' }, {...AClockworkOrange, ...secondEntry, id: 'th'}
-    ])
-
-    expect(withOneSorted).toEqual(withOneUnsorted);
-  })
-
-  it('should let you set many entities in the state when passing in a dictionary', () => {
-    const changeWithoutAuthor = { id: TheHobbit.id, title: 'Silmarillion' }
-    const withMany = adapter.setAll(state, [TheHobbit])
-
-    const withSetMany = adapter.setMany(withMany, {
-      [TheHobbit.id]: changeWithoutAuthor,
-      [AClockworkOrange.id]: AClockworkOrange,
-    })
-
-    expect(withSetMany).toEqual({
-      ids: [AClockworkOrange.id, TheHobbit.id],
-      entities: {
-        [TheHobbit.id]: changeWithoutAuthor,
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it("only returns one entry for that id in the id's array", () => {
-    const book1: BookModel = { id: 'a', title: 'First' }
-    const book2: BookModel = { id: 'b', title: 'Second' }
-    const initialState = adapter.getInitialState()
-    const withItems = adapter.addMany(initialState, [book1, book2])
-
-    expect(withItems.ids).toEqual(['a', 'b'])
-    const withUpdate = adapter.updateOne(withItems, {
-      id: 'a',
-      changes: { id: 'b' },
-    })
-
-    expect(withUpdate.ids).toEqual(['b'])
-    expect(withUpdate.entities['b']!.title).toBe(book1.title)
-  })
-
-  it('should minimize the amount of sorting work needed', () => {
-    const INITIAL_ITEMS = 10_000
-    const ADDED_ITEMS = 1_000
-
-    type Entity = { id: string; name: string; position: number }
-
-    let numSorts = 0
-
-    const adaptor = createEntityAdapter({
-      selectId: (entity: Entity) => entity.id,
-      sortComparer: (a, b) => {
-        numSorts++
-        if (a.position < b.position) return -1
-        else if (a.position > b.position) return 1
-        return 0
-      },
-    })
-
-    function generateItems(count: number) {
-      const items: readonly Entity[] = new Array(count)
-        .fill(undefined)
-        .map((x, i) => ({
-          name: `${i}`,
-          position: Math.random(),
-          id: nanoid(),
-        }))
-      return items
-    }
-
-    const entitySlice = createSlice({
-      name: 'entity',
-      initialState: adaptor.getInitialState(),
-      reducers: {
-        updateOne: adaptor.updateOne,
-        upsertOne: adaptor.upsertOne,
-        upsertMany: adaptor.upsertMany,
-        addMany: adaptor.addMany,
-      },
-    })
-
-    const store = configureStore({
-      reducer: {
-        entity: entitySlice.reducer,
-      },
-      middleware: (getDefaultMiddleware) => {
-        return getDefaultMiddleware({
-          serializableCheck: false,
-          immutableCheck: false,
-        })
-      },
-    })
-
-    numSorts = 0
-
-    const logComparisons = false
-
-    function measureComparisons(name: string, cb: () => void) {
-      numSorts = 0
-      const start = new Date().getTime()
-      cb()
-      const end = new Date().getTime()
-      const duration = end - start
-
-      if (logComparisons) {
-        console.log(
-          `${name}: sortComparer called ${numSorts.toLocaleString()} times in ${duration.toLocaleString()}ms`,
-        )
-      }
-    }
-
-    const initialItems = generateItems(INITIAL_ITEMS)
-
-    measureComparisons('Original Setup', () => {
-      store.dispatch(entitySlice.actions.upsertMany(initialItems))
-    })
-
-    expect(numSorts).toBeLessThan(INITIAL_ITEMS * 20)
-
-    measureComparisons('Insert One (random)', () => {
-      store.dispatch(
-        entitySlice.actions.upsertOne({
-          id: nanoid(),
-          position: Math.random(),
-          name: 'test',
-        }),
-      )
-    })
-
-    expect(numSorts).toBeLessThan(50)
-
-    measureComparisons('Insert One (middle)', () => {
-      store.dispatch(
-        entitySlice.actions.upsertOne({
-          id: nanoid(),
-          position: 0.5,
-          name: 'test',
-        }),
-      )
-    })
-
-    expect(numSorts).toBeLessThan(50)
-
-    measureComparisons('Insert One (end)', () => {
-      store.dispatch(
-        entitySlice.actions.upsertOne({
-          id: nanoid(),
-          position: 0.9998,
-          name: 'test',
-        }),
-      )
-    })
-
-    expect(numSorts).toBeLessThan(50)
-
-    const addedItems = generateItems(ADDED_ITEMS)
-    measureComparisons('Add Many', () => {
-      store.dispatch(entitySlice.actions.addMany(addedItems))
-    })
-
-    expect(numSorts).toBeLessThan(ADDED_ITEMS * 20)
-
-    // These numbers will vary because of the randomness, but generally
-    // with 10K items the old code had 200K+ sort calls, while the new code
-    // is around 13K sort calls.
-    expect(numSorts).toBeLessThan(20_000)
-
-    const { ids } = store.getState().entity
-    const middleItemId = ids[(ids.length / 2) | 0]
-
-    measureComparisons('Update One (end)', () => {
-      store.dispatch(
-        // Move this middle item near the end
-        entitySlice.actions.updateOne({
-          id: middleItemId,
-          changes: {
-            position: 0.99999,
-          },
-        }),
-      )
-    })
-
-    const SORTING_COUNT_BUFFER = 100
-
-    expect(numSorts).toBeLessThan(
-      INITIAL_ITEMS + ADDED_ITEMS + SORTING_COUNT_BUFFER,
-    )
-
-    measureComparisons('Update One (middle)', () => {
-      store.dispatch(
-        // Move this middle item near the end
-        entitySlice.actions.updateOne({
-          id: middleItemId,
-          changes: {
-            position: 0.42,
-          },
-        }),
-      )
-    })
-
-    expect(numSorts).toBeLessThan(
-      INITIAL_ITEMS + ADDED_ITEMS + SORTING_COUNT_BUFFER,
-    )
-
-    measureComparisons('Update One (replace)', () => {
-      store.dispatch(
-        // Move this middle item near the end
-        entitySlice.actions.updateOne({
-          id: middleItemId,
-          changes: {
-            id: nanoid(),
-            position: 0.98,
-          },
-        }),
-      )
-    })
-
-    expect(numSorts).toBeLessThan(
-      INITIAL_ITEMS + ADDED_ITEMS + SORTING_COUNT_BUFFER,
-    )
-
-    // The old code was around 120K, the new code is around 10K.
-    //expect(numSorts).toBeLessThan(25_000)
-  })
-
-  it('should not throw an Immer `current` error when `state.ids` is a plain array', () => {
-    const book1: BookModel = { id: 'a', title: 'First' }
-    const initialState = adapter.getInitialState()
-    const withItems = adapter.addMany(initialState, [book1])
-    const booksSlice = createSlice({
-      name: 'books',
-      initialState,
-      reducers: {
-        testCurrentBehavior(state, action: PayloadAction<BookModel>) {
-          // Will overwrite `state.ids` with a plain array
-          adapter.removeAll(state)
-
-          // will call `splitAddedUpdatedEntities` and call `current(state.ids)`
-          adapter.upsertMany(state, [book1])
-        },
-      },
-    })
-
-    booksSlice.reducer(
-      initialState,
-      booksSlice.actions.testCurrentBehavior(book1),
-    )
-  })
-
-  it('should not throw an Immer `current` error when the adapter is called twice', () => {
-    const book1: BookModel = { id: 'a', title: 'First' }
-    const book2: BookModel = { id: 'b', title: 'Second' }
-    const initialState = adapter.getInitialState()
-    const booksSlice = createSlice({
-      name: 'books',
-      initialState,
-      reducers: {
-        testCurrentBehavior(state, action: PayloadAction<BookModel>) {
-          // Will overwrite `state.ids` with a plain array
-          adapter.removeAll(state)
-
-          // will call `splitAddedUpdatedEntities` and call `current(state.ids)`
-          adapter.addOne(state, book1)
-          adapter.addOne(state, book2)
-        },
-      },
-    })
-
-    booksSlice.reducer(
-      initialState,
-      booksSlice.actions.testCurrentBehavior(book1),
-    )
-  })
-
-  describe('can be used mutably when wrapped in createNextState', () => {
-    test('removeAll', () => {
-      const withTwo = adapter.addMany(state, [TheGreatGatsby, AnimalFarm])
-      const result = createNextState(withTwo, (draft) => {
-        adapter.removeAll(draft)
-      })
-      expect(result).toEqual({
-        entities: {},
-        ids: [],
-      })
-    })
-
-    test('addOne', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.addOne(draft, TheGreatGatsby)
-      })
-
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('addMany', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.addMany(draft, [TheGreatGatsby, AnimalFarm])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['af', 'tgg'],
-      })
-    })
-
-    test('setAll', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.setAll(draft, [TheGreatGatsby, AnimalFarm])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['af', 'tgg'],
-      })
-    })
-
-    test('updateOne', () => {
-      const withOne = adapter.addOne(state, TheGreatGatsby)
-      const changes = { title: 'A New Hope' }
-      const result = createNextState(withOne, (draft) => {
-        adapter.updateOne(draft, {
-          id: TheGreatGatsby.id,
-          changes,
-        })
-      })
-
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('updateMany', () => {
-      const firstChange = { title: 'First Change' }
-      const secondChange = { title: 'Second Change' }
-      const thirdChange = { title: 'Third Change' }
-      const fourthChange = { author: 'Fourth Change' }
-      const withMany = adapter.setAll(state, [
-        TheGreatGatsby,
-        AClockworkOrange,
-        TheHobbit,
-      ])
-
-      const result = createNextState(withMany, (draft) => {
-        adapter.updateMany(draft, [
-          { id: TheHobbit.id, changes: firstChange },
-          { id: TheGreatGatsby.id, changes: secondChange },
-          { id: AClockworkOrange.id, changes: thirdChange },
-          { id: TheHobbit.id, changes: fourthChange },
-        ])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          aco: {
-            id: 'aco',
-            title: 'Third Change',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'Second Change',
-          },
-          th: {
-            author: 'Fourth Change',
-            id: 'th',
-            title: 'First Change',
-          },
-        },
-        ids: ['th', 'tgg', 'aco'],
-      })
-    })
-
-    test('upsertOne (insert)', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.upsertOne(draft, TheGreatGatsby)
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('upsertOne (update)', () => {
-      const withOne = adapter.upsertOne(state, TheGreatGatsby)
-      const result = createNextState(withOne, (draft) => {
-        adapter.upsertOne(draft, {
-          id: TheGreatGatsby.id,
-          title: 'A New Hope',
-        })
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('upsertMany', () => {
-      const withOne = adapter.upsertOne(state, TheGreatGatsby)
-      const result = createNextState(withOne, (draft) => {
-        adapter.upsertMany(draft, [
-          {
-            id: TheGreatGatsby.id,
-            title: 'A New Hope',
-          },
-          AnimalFarm,
-        ])
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg', 'af'],
-      })
-    })
-
-    test('setOne (insert)', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.setOne(draft, TheGreatGatsby)
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('setOne (update)', () => {
-      const withOne = adapter.setOne(state, TheHobbit)
-      const result = createNextState(withOne, (draft) => {
-        adapter.setOne(draft, {
-          id: TheHobbit.id,
-          title: 'Silmarillion',
-        })
-      })
-      expect(result).toEqual({
-        entities: {
-          th: {
-            id: 'th',
-            title: 'Silmarillion',
-          },
-        },
-        ids: ['th'],
-      })
-    })
-
-    test('setMany', () => {
-      const withOne = adapter.setOne(state, TheHobbit)
-      const result = createNextState(withOne, (draft) => {
-        adapter.setMany(draft, [
-          {
-            id: TheHobbit.id,
-            title: 'Silmarillion',
-          },
-          AnimalFarm,
-        ])
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          th: {
-            id: 'th',
-            title: 'Silmarillion',
-          },
-        },
-        ids: ['af', 'th'],
-      })
-    })
-
-    test('removeOne', () => {
-      const withTwo = adapter.addMany(state, [TheGreatGatsby, AnimalFarm])
-      const result = createNextState(withTwo, (draft) => {
-        adapter.removeOne(draft, TheGreatGatsby.id)
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-        },
-        ids: ['af'],
-      })
-    })
-
-    test('removeMany', () => {
-      const withThree = adapter.addMany(state, [
-        TheGreatGatsby,
-        AnimalFarm,
-        AClockworkOrange,
-      ])
-      const result = createNextState(withThree, (draft) => {
-        adapter.removeMany(draft, [TheGreatGatsby.id, AnimalFarm.id])
-      })
-      expect(result).toEqual({
-        entities: {
-          aco: {
-            id: 'aco',
-            title: 'A Clockwork Orange',
-          },
-        },
-        ids: ['aco'],
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/entities/tests/state_adapter.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/state_adapter.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import type { EntityAdapter } from '../index'
-import { createEntityAdapter } from '../index'
-import type { PayloadAction } from '../../createAction'
-import { configureStore } from '../../configureStore'
-import { createSlice } from '../../createSlice'
-import type { BookModel } from './fixtures/book'
-
-describe('createStateOperator', () => {
-  let adapter: EntityAdapter<BookModel, string>
-
-  beforeEach(() => {
-    adapter = createEntityAdapter({
-      selectId: (book: BookModel) => book.id,
-    })
-  })
-  it('Correctly mutates a draft state when inside `createNextState', () => {
-    const booksSlice = createSlice({
-      name: 'books',
-      initialState: adapter.getInitialState(),
-      reducers: {
-        // We should be able to call an adapter method as a mutating helper in a larger reducer
-        addOne(state, action: PayloadAction<BookModel>) {
-          // Originally, having nested `produce` calls don't mutate `state` here as I would have expected.
-          // (note that `state` here is actually an Immer Draft<S>, from `createReducer`)
-          // One woarkound was to return the new plain result value instead
-          // See https://github.com/immerjs/immer/issues/533
-          // However, after tweaking `createStateOperator` to check if the argument is a draft,
-          // we can just treat the operator as strictly mutating, without returning a result,
-          // and the result should be correct.
-          const result = adapter.addOne(state, action)
-          expect(result.ids.length).toBe(1)
-          //Deliberately _don't_ return result
-        },
-        // We should also be able to pass them individually as case reducers
-        addAnother: adapter.addOne,
-      },
-    })
-
-    const { addOne, addAnother } = booksSlice.actions
-
-    const store = configureStore({
-      reducer: {
-        books: booksSlice.reducer,
-      },
-    })
-
-    const book1: BookModel = { id: 'a', title: 'First' }
-    store.dispatch(addOne(book1))
-
-    const state1 = store.getState()
-    expect(state1.books.ids.length).toBe(1)
-    expect(state1.books.entities['a']).toBe(book1)
-
-    const book2: BookModel = { id: 'b', title: 'Second' }
-    store.dispatch(addAnother(book2))
-
-    const state2 = store.getState()
-    expect(state2.books.ids.length).toBe(2)
-    expect(state2.books.entities['b']).toBe(book2)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/entities/tests/state_selectors.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/state_selectors.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-import { createDraftSafeSelectorCreator } from '../../createDraftSafeSelector'
-import type { EntityAdapter, EntityState } from '../index'
-import { createEntityAdapter } from '../index'
-import type { EntitySelectors } from '../models'
-import type { BookModel } from './fixtures/book'
-import { AClockworkOrange, AnimalFarm, TheGreatGatsby } from './fixtures/book'
-import type { Selector } from 'reselect'
-import { createSelector, weakMapMemoize } from 'reselect'
-import { vi } from 'vitest'
-
-describe('Entity State Selectors', () => {
-  describe('Composed Selectors', () => {
-    interface State {
-      books: EntityState<BookModel, string>
-    }
-
-    let adapter: EntityAdapter<BookModel, string>
-    let selectors: EntitySelectors<BookModel, State, string>
-    let state: State
-
-    beforeEach(() => {
-      adapter = createEntityAdapter({
-        selectId: (book: BookModel) => book.id,
-      })
-
-      state = {
-        books: adapter.setAll(adapter.getInitialState(), [
-          AClockworkOrange,
-          AnimalFarm,
-          TheGreatGatsby,
-        ]),
-      }
-
-      selectors = adapter.getSelectors((state: State) => state.books)
-    })
-
-    it('should create a selector for selecting the ids', () => {
-      const ids = selectors.selectIds(state)
-
-      expect(ids).toEqual(state.books.ids)
-    })
-
-    it('should create a selector for selecting the entities', () => {
-      const entities = selectors.selectEntities(state)
-
-      expect(entities).toEqual(state.books.entities)
-    })
-
-    it('should create a selector for selecting the list of models', () => {
-      const models = selectors.selectAll(state)
-
-      expect(models).toEqual([AClockworkOrange, AnimalFarm, TheGreatGatsby])
-    })
-
-    it('should create a selector for selecting the count of models', () => {
-      const total = selectors.selectTotal(state)
-
-      expect(total).toEqual(3)
-    })
-
-    it('should create a selector for selecting a single item by ID', () => {
-      const first = selectors.selectById(state, AClockworkOrange.id)
-      expect(first).toBe(AClockworkOrange)
-      const second = selectors.selectById(state, AnimalFarm.id)
-      expect(second).toBe(AnimalFarm)
-    })
-  })
-
-  describe('Uncomposed Selectors', () => {
-    type State = EntityState<BookModel, string>
-
-    let adapter: EntityAdapter<BookModel, string>
-    let selectors: EntitySelectors<
-      BookModel,
-      EntityState<BookModel, string>,
-      string
-    >
-    let state: State
-
-    beforeEach(() => {
-      adapter = createEntityAdapter({
-        selectId: (book: BookModel) => book.id,
-      })
-
-      state = adapter.setAll(adapter.getInitialState(), [
-        AClockworkOrange,
-        AnimalFarm,
-        TheGreatGatsby,
-      ])
-
-      selectors = adapter.getSelectors()
-    })
-
-    it('should create a selector for selecting the ids', () => {
-      const ids = selectors.selectIds(state)
-
-      expect(ids).toEqual(state.ids)
-    })
-
-    it('should create a selector for selecting the entities', () => {
-      const entities = selectors.selectEntities(state)
-
-      expect(entities).toEqual(state.entities)
-    })
-
-    it('should type single entity from Dictionary as entity type or undefined', () => {
-      expectType<
-        Selector<EntityState<BookModel, string>, BookModel | undefined>
-      >(createSelector(selectors.selectEntities, (entities) => entities[0]))
-    })
-
-    it('should create a selector for selecting the list of models', () => {
-      const models = selectors.selectAll(state)
-
-      expect(models).toEqual([AClockworkOrange, AnimalFarm, TheGreatGatsby])
-    })
-
-    it('should create a selector for selecting the count of models', () => {
-      const total = selectors.selectTotal(state)
-
-      expect(total).toEqual(3)
-    })
-
-    it('should create a selector for selecting a single item by ID', () => {
-      const first = selectors.selectById(state, AClockworkOrange.id)
-      expect(first).toBe(AClockworkOrange)
-      const second = selectors.selectById(state, AnimalFarm.id)
-      expect(second).toBe(AnimalFarm)
-    })
-  })
-  describe('custom createSelector instance', () => {
-    it('should use the custom createSelector function if provided', () => {
-      const memoizeSpy = vi.fn(
-        // test that we're allowed to pass memoizers with different options, as long as they're optional
-        <F extends (...args: any[]) => any>(fn: F, param?: boolean) => fn,
-      )
-      const createCustomSelector = createDraftSafeSelectorCreator(memoizeSpy)
-
-      const adapter = createEntityAdapter({
-        selectId: (book: BookModel) => book.id,
-      })
-
-      adapter.getSelectors(undefined, { createSelector: createCustomSelector })
-
-      expect(memoizeSpy).toHaveBeenCalled()
-
-      memoizeSpy.mockClear()
-    })
-  })
-})
-
-function expectType<T>(t: T) {
-  return t
-}
Index: de_modules/@reduxjs/toolkit/src/entities/tests/unsorted_state_adapter.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/unsorted_state_adapter.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,759 +1,0 @@
-import type { EntityAdapter, EntityState } from '../models'
-import { createEntityAdapter } from '../create_adapter'
-import type { BookModel } from './fixtures/book'
-import {
-  TheGreatGatsby,
-  AClockworkOrange,
-  AnimalFarm,
-  TheHobbit,
-} from './fixtures/book'
-import { createNextState } from '../..'
-
-describe('Unsorted State Adapter', () => {
-  let adapter: EntityAdapter<BookModel, string>
-  let state: EntityState<BookModel, string>
-
-  beforeAll(() => {
-    //eslint-disable-next-line
-    Object.defineProperty(Array.prototype, 'unwantedField', {
-      enumerable: true,
-      configurable: true,
-      value: 'This should not appear anywhere',
-    })
-  })
-
-  afterAll(() => {
-    delete (Array.prototype as any).unwantedField
-  })
-
-  beforeEach(() => {
-    adapter = createEntityAdapter({
-      selectId: (book: BookModel) => book.id,
-    })
-
-    state = { ids: [], entities: {} }
-  })
-
-  it('should let you add one entity to the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    expect(withOneEntity).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should not change state if you attempt to re-add an entity', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const readded = adapter.addOne(withOneEntity, TheGreatGatsby)
-
-    expect(readded).toBe(withOneEntity)
-  })
-
-  it('should let you add many entities to the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withManyMore = adapter.addMany(withOneEntity, [
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    expect(withManyMore).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you add many entities to the state from a dictionary', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withManyMore = adapter.addMany(withOneEntity, {
-      [AClockworkOrange.id]: AClockworkOrange,
-      [AnimalFarm.id]: AnimalFarm,
-    })
-
-    expect(withManyMore).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you add the only first occurrence for duplicate ids', () => {
-    const firstEntry = {id: AClockworkOrange.id, author: TheHobbit.author }
-    const secondEntry = {id: AClockworkOrange.id, title: 'Zack' }
-    const withOne = adapter.setAll(state, [TheGreatGatsby])
-    const withMany = adapter.addMany(withOne, [
-      { ...AClockworkOrange, ...firstEntry }, {...AClockworkOrange, ...secondEntry}
-    ])
-
-    expect(withMany).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: {
-          ...AClockworkOrange,
-          ...firstEntry,
-        },
-      },
-    })
-  })
-
-  it('should remove existing and add new ones on setAll', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withAll = adapter.setAll(withOneEntity, [
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    expect(withAll).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should remove existing and add new ones on setAll when passing in a dictionary', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withAll = adapter.setAll(withOneEntity, {
-      [AClockworkOrange.id]: AClockworkOrange,
-      [AnimalFarm.id]: AnimalFarm,
-    })
-
-    expect(withAll).toEqual({
-      ids: [AClockworkOrange.id, AnimalFarm.id],
-      entities: {
-        [AClockworkOrange.id]: AClockworkOrange,
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you add remove an entity from the state', () => {
-    const withOneEntity = adapter.addOne(state, TheGreatGatsby)
-
-    const withoutOne = adapter.removeOne(withOneEntity, TheGreatGatsby.id)
-
-    expect(withoutOne).toEqual({
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you remove many entities by id from the state', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    const withoutMany = adapter.removeMany(withAll, [
-      TheGreatGatsby.id,
-      AClockworkOrange.id,
-    ])
-
-    expect(withoutMany).toEqual({
-      ids: [AnimalFarm.id],
-      entities: {
-        [AnimalFarm.id]: AnimalFarm,
-      },
-    })
-  })
-
-  it('should let you remove all entities from the state', () => {
-    const withAll = adapter.setAll(state, [
-      TheGreatGatsby,
-      AClockworkOrange,
-      AnimalFarm,
-    ])
-
-    const withoutAll = adapter.removeAll(withAll)
-
-    expect(withoutAll).toEqual({
-      ids: [],
-      entities: {},
-    })
-  })
-
-  it('should let you update an entity in the state', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should not change state if you attempt to update an entity that has not been added', () => {
-    const withUpdates = adapter.updateOne(state, {
-      id: TheGreatGatsby.id,
-      changes: { title: 'A New Title' },
-    })
-
-    expect(withUpdates).toBe(state)
-  })
-
-  it('should not change ids state if you attempt to update an entity that has already been added', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withOne.ids).toBe(withUpdates.ids)
-  })
-
-  it('should let you update the id of entity', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { id: 'A New Id' }
-
-    const withUpdates = adapter.updateOne(withOne, {
-      id: TheGreatGatsby.id,
-      changes,
-    })
-
-    expect(withUpdates).toEqual({
-      ids: [changes.id],
-      entities: {
-        [changes.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should let you update many entities by id in the state', () => {
-    const firstChange = { title: 'First Change' }
-    const secondChange = { title: 'Second Change' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby, AClockworkOrange])
-
-    const withUpdates = adapter.updateMany(withMany, [
-      { id: TheGreatGatsby.id, changes: firstChange },
-      { id: AClockworkOrange.id, changes: secondChange },
-    ])
-
-    expect(withUpdates).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: {
-          ...AClockworkOrange,
-          ...secondChange,
-        },
-      },
-    })
-  })
-
-  it("doesn't break when multiple renames of one item occur", () => {
-    const withA = adapter.addOne(state, { id: 'a', title: 'First' })
-
-    const withUpdates = adapter.updateMany(withA, [
-      { id: 'a', changes: { id: 'b' } },
-      { id: 'a', changes: { id: 'c' } },
-    ])
-
-    const { ids, entities } = withUpdates
-
-    /*
-      Original code failed with a mish-mash of values, like:
-      {
-        ids: [ 'c' ],
-        entities: { b: { id: 'b', title: 'First' }, c: { id: 'c' } }
-      }
-      We now expect that only 'c' will be left:
-      { 
-        ids: [ 'c' ], 
-        entities: { c: { id: 'c', title: 'First' } } 
-      }
-    */
-    expect(ids.length).toBe(1)
-    expect(ids).toEqual(['c'])
-    expect(entities.a).toBeFalsy()
-    expect(entities.b).toBeFalsy()
-    expect(entities.c).toBeTruthy()
-  })
-
-  it('should let you add one entity to the state with upsert()', () => {
-    const withOneEntity = adapter.upsertOne(state, TheGreatGatsby)
-    expect(withOneEntity).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you update an entity in the state with upsert()', () => {
-    const withOne = adapter.addOne(state, TheGreatGatsby)
-    const changes = { title: 'A New Hope' }
-
-    const withUpdates = adapter.upsertOne(withOne, {
-      ...TheGreatGatsby,
-      ...changes,
-    })
-    expect(withUpdates).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...changes,
-        },
-      },
-    })
-  })
-
-  it('should let you upsert many entities in the state', () => {
-    const firstChange = { title: 'First Change' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, [
-      { ...TheGreatGatsby, ...firstChange },
-      AClockworkOrange,
-    ])
-
-    expect(withUpserts).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should let you upsert many entities in the state when passing in a dictionary', () => {
-    const firstChange = { title: 'Zack' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, {
-      [TheGreatGatsby.id]: { ...TheGreatGatsby, ...firstChange },
-      [AClockworkOrange.id]: AClockworkOrange,
-    })
-
-    expect(withUpserts).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id],
-      entities: {
-        [TheGreatGatsby.id]: {
-          ...TheGreatGatsby,
-          ...firstChange,
-        },
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should let you add a new entity then apply changes to it', () => {
-    const firstChange = { author: TheHobbit.author }
-    const secondChange = { title: 'Zack' }
-    const withMany = adapter.setAll(state, [TheGreatGatsby])
-
-    const withUpserts = adapter.upsertMany(withMany, [
-      {...AClockworkOrange}, { ...AClockworkOrange, ...firstChange }, {...AClockworkOrange, ...secondChange}
-    ])
-
-    expect(withUpserts).toEqual({
-      ids: [TheGreatGatsby.id, AClockworkOrange.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-        [AClockworkOrange.id]: {
-          ...AClockworkOrange,
-          ...firstChange,
-          ...secondChange,
-        },
-      },
-    })
-  })
-
-  it('should let you add a new entity in the state with setOne()', () => {
-    const withOne = adapter.setOne(state, TheGreatGatsby)
-    expect(withOne).toEqual({
-      ids: [TheGreatGatsby.id],
-      entities: {
-        [TheGreatGatsby.id]: TheGreatGatsby,
-      },
-    })
-  })
-
-  it('should let you replace an entity in the state with setOne()', () => {
-    let withOne = adapter.setOne(state, TheHobbit)
-    const changeWithoutAuthor = { id: TheHobbit.id, title: 'Silmarillion' }
-    withOne = adapter.setOne(withOne, changeWithoutAuthor)
-
-    expect(withOne).toEqual({
-      ids: [TheHobbit.id],
-      entities: {
-        [TheHobbit.id]: changeWithoutAuthor,
-      },
-    })
-  })
-
-  it('should let you set many entities in the state', () => {
-    const changeWithoutAuthor = { id: TheHobbit.id, title: 'Silmarillion' }
-    const withMany = adapter.setAll(state, [TheHobbit])
-
-    const withSetMany = adapter.setMany(withMany, [
-      changeWithoutAuthor,
-      AClockworkOrange,
-    ])
-
-    expect(withSetMany).toEqual({
-      ids: [TheHobbit.id, AClockworkOrange.id],
-      entities: {
-        [TheHobbit.id]: changeWithoutAuthor,
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-
-  it('should let you set many entities in the state when passing in a dictionary', () => {
-    const changeWithoutAuthor = { id: TheHobbit.id, title: 'Silmarillion' }
-    const withMany = adapter.setAll(state, [TheHobbit])
-
-    const withSetMany = adapter.setMany(withMany, {
-      [TheHobbit.id]: changeWithoutAuthor,
-      [AClockworkOrange.id]: AClockworkOrange,
-    })
-
-    expect(withSetMany).toEqual({
-      ids: [TheHobbit.id, AClockworkOrange.id],
-      entities: {
-        [TheHobbit.id]: changeWithoutAuthor,
-        [AClockworkOrange.id]: AClockworkOrange,
-      },
-    })
-  })
-  it("only returns one entry for that id in the id's array", () => {
-    const book1: BookModel = { id: 'a', title: 'First' }
-    const book2: BookModel = { id: 'b', title: 'Second' }
-    const initialState = adapter.getInitialState()
-    const withItems = adapter.addMany(initialState, [book1, book2])
-
-    expect(withItems.ids).toEqual(['a', 'b'])
-    const withUpdate = adapter.updateOne(withItems, {
-      id: 'a',
-      changes: { id: 'b' },
-    })
-
-    expect(withUpdate.ids).toEqual(['b'])
-    expect(withUpdate.entities['b']!.title).toBe(book1.title)
-  })
-
-  describe('can be used mutably when wrapped in createNextState', () => {
-    test('removeAll', () => {
-      const withTwo = adapter.addMany(state, [TheGreatGatsby, AnimalFarm])
-      const result = createNextState(withTwo, (draft) => {
-        adapter.removeAll(draft)
-      })
-      expect(result).toEqual({
-        entities: {},
-        ids: [],
-      })
-    })
-
-    test('addOne', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.addOne(draft, TheGreatGatsby)
-      })
-
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('addMany', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.addMany(draft, [TheGreatGatsby, AnimalFarm])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg', 'af'],
-      })
-    })
-
-    test('setAll', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.setAll(draft, [TheGreatGatsby, AnimalFarm])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg', 'af'],
-      })
-    })
-
-    test('updateOne', () => {
-      const withOne = adapter.addOne(state, TheGreatGatsby)
-      const changes = { title: 'A New Hope' }
-      const result = createNextState(withOne, (draft) => {
-        adapter.updateOne(draft, {
-          id: TheGreatGatsby.id,
-          changes,
-        })
-      })
-
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('updateMany', () => {
-      const firstChange = { title: 'First Change' }
-      const secondChange = { title: 'Second Change' }
-      const thirdChange = { title: 'Third Change' }
-      const fourthChange = { author: 'Fourth Change' }
-      const withMany = adapter.setAll(state, [
-        TheGreatGatsby,
-        AClockworkOrange,
-        TheHobbit,
-      ])
-
-      const result = createNextState(withMany, (draft) => {
-        adapter.updateMany(draft, [
-          { id: TheHobbit.id, changes: firstChange },
-          { id: TheGreatGatsby.id, changes: secondChange },
-          { id: AClockworkOrange.id, changes: thirdChange },
-          { id: TheHobbit.id, changes: fourthChange },
-        ])
-      })
-
-      expect(result).toEqual({
-        entities: {
-          aco: {
-            id: 'aco',
-            title: 'Third Change',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'Second Change',
-          },
-          th: {
-            author: 'Fourth Change',
-            id: 'th',
-            title: 'First Change',
-          },
-        },
-        ids: ['tgg', 'aco', 'th'],
-      })
-    })
-
-    test('upsertOne (insert)', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.upsertOne(draft, TheGreatGatsby)
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('upsertOne (update)', () => {
-      const withOne = adapter.upsertOne(state, TheGreatGatsby)
-      const result = createNextState(withOne, (draft) => {
-        adapter.upsertOne(draft, {
-          id: TheGreatGatsby.id,
-          title: 'A New Hope',
-        })
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('upsertMany', () => {
-      const withOne = adapter.upsertOne(state, TheGreatGatsby)
-      const result = createNextState(withOne, (draft) => {
-        adapter.upsertMany(draft, [
-          {
-            id: TheGreatGatsby.id,
-            title: 'A New Hope',
-          },
-          AnimalFarm,
-        ])
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          tgg: {
-            id: 'tgg',
-            title: 'A New Hope',
-          },
-        },
-        ids: ['tgg', 'af'],
-      })
-    })
-
-    test('setOne (insert)', () => {
-      const result = createNextState(state, (draft) => {
-        adapter.setOne(draft, TheGreatGatsby)
-      })
-      expect(result).toEqual({
-        entities: {
-          tgg: {
-            id: 'tgg',
-            title: 'The Great Gatsby',
-          },
-        },
-        ids: ['tgg'],
-      })
-    })
-
-    test('setOne (update)', () => {
-      const withOne = adapter.setOne(state, TheHobbit)
-      const result = createNextState(withOne, (draft) => {
-        adapter.setOne(draft, {
-          id: TheHobbit.id,
-          title: 'Silmarillion',
-        })
-      })
-      expect(result).toEqual({
-        entities: {
-          th: {
-            id: 'th',
-            title: 'Silmarillion',
-          },
-        },
-        ids: ['th'],
-      })
-    })
-
-    test('setMany', () => {
-      const withOne = adapter.setOne(state, TheHobbit)
-      const result = createNextState(withOne, (draft) => {
-        adapter.setMany(draft, [
-          {
-            id: TheHobbit.id,
-            title: 'Silmarillion',
-          },
-          AnimalFarm,
-        ])
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-          th: {
-            id: 'th',
-            title: 'Silmarillion',
-          },
-        },
-        ids: ['th', 'af'],
-      })
-    })
-
-    test('removeOne', () => {
-      const withTwo = adapter.addMany(state, [TheGreatGatsby, AnimalFarm])
-      const result = createNextState(withTwo, (draft) => {
-        adapter.removeOne(draft, TheGreatGatsby.id)
-      })
-      expect(result).toEqual({
-        entities: {
-          af: {
-            id: 'af',
-            title: 'Animal Farm',
-          },
-        },
-        ids: ['af'],
-      })
-    })
-
-    test('removeMany', () => {
-      const withThree = adapter.addMany(state, [
-        TheGreatGatsby,
-        AnimalFarm,
-        AClockworkOrange,
-      ])
-      const result = createNextState(withThree, (draft) => {
-        adapter.removeMany(draft, [TheGreatGatsby.id, AnimalFarm.id])
-      })
-      expect(result).toEqual({
-        entities: {
-          aco: {
-            id: 'aco',
-            title: 'A Clockwork Orange',
-          },
-        },
-        ids: ['aco'],
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/entities/tests/utils.spec.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/tests/utils.spec.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { AClockworkOrange } from './fixtures/book'
-
-describe('Entity utils', () => {
-  describe(`selectIdValue()`, () => {
-    const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(noop)
-
-    beforeEach(() => {
-      vi.resetModules() // this is important - it clears the cache
-      vi.stubEnv('NODE_ENV', 'development')
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-      vi.clearAllMocks()
-    })
-
-    afterAll(() => {
-      vi.restoreAllMocks()
-    })
-
-    it('should not warn when key does exist', async () => {
-      const { selectIdValue } = await import('../utils')
-
-      selectIdValue(AClockworkOrange, (book: any) => book.id)
-      expect(consoleWarnSpy).not.toHaveBeenCalled()
-    })
-
-    it('should warn when key does not exist in dev mode', async () => {
-      const { selectIdValue } = await import('../utils')
-
-      expect(process.env.NODE_ENV).toBe('development')
-
-      selectIdValue(AClockworkOrange, (book: any) => book.foo)
-
-      expect(consoleWarnSpy).toHaveBeenCalledOnce()
-    })
-
-    it('should warn when key is undefined in dev mode', async () => {
-      const { selectIdValue } = await import('../utils')
-
-      expect(process.env.NODE_ENV).toBe('development')
-
-      const undefinedAClockworkOrange = { ...AClockworkOrange, id: undefined }
-      selectIdValue(undefinedAClockworkOrange, (book: any) => book.id)
-
-      expect(consoleWarnSpy).toHaveBeenCalledOnce()
-    })
-
-    it('should not warn when key does not exist in prod mode', async () => {
-      vi.stubEnv('NODE_ENV', 'production')
-
-      const { selectIdValue } = await import('../utils')
-
-      selectIdValue(AClockworkOrange, (book: any) => book.foo)
-
-      expect(consoleWarnSpy).not.toHaveBeenCalled()
-    })
-
-    it('should not warn when key is undefined in prod mode', async () => {
-      vi.stubEnv('NODE_ENV', 'production')
-
-      const { selectIdValue } = await import('../utils')
-
-      const undefinedAClockworkOrange = { ...AClockworkOrange, id: undefined }
-      selectIdValue(undefinedAClockworkOrange, (book: any) => book.id)
-
-      expect(consoleWarnSpy).not.toHaveBeenCalled()
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,204 +1,0 @@
-import type { Draft } from 'immer'
-import type {
-  EntityStateAdapter,
-  IdSelector,
-  Update,
-  EntityId,
-  DraftableEntityState,
-} from './models'
-import {
-  createStateOperator,
-  createSingleArgumentStateOperator,
-} from './state_adapter'
-import {
-  selectIdValue,
-  ensureEntitiesArray,
-  splitAddedUpdatedEntities,
-} from './utils'
-
-export function createUnsortedStateAdapter<T, Id extends EntityId>(
-  selectId: IdSelector<T, Id>,
-): EntityStateAdapter<T, Id> {
-  type R = DraftableEntityState<T, Id>
-
-  function addOneMutably(entity: T, state: R): void {
-    const key = selectIdValue(entity, selectId)
-
-    if (key in state.entities) {
-      return
-    }
-
-    state.ids.push(key as Id & Draft<Id>)
-    ;(state.entities as Record<Id, T>)[key] = entity
-  }
-
-  function addManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    newEntities = ensureEntitiesArray(newEntities)
-
-    for (const entity of newEntities) {
-      addOneMutably(entity, state)
-    }
-  }
-
-  function setOneMutably(entity: T, state: R): void {
-    const key = selectIdValue(entity, selectId)
-    if (!(key in state.entities)) {
-      state.ids.push(key as Id & Draft<Id>)
-    }
-    ;(state.entities as Record<Id, T>)[key] = entity
-  }
-
-  function setManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    newEntities = ensureEntitiesArray(newEntities)
-    for (const entity of newEntities) {
-      setOneMutably(entity, state)
-    }
-  }
-
-  function setAllMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    newEntities = ensureEntitiesArray(newEntities)
-
-    state.ids = []
-    state.entities = {} as Record<Id, T>
-
-    addManyMutably(newEntities, state)
-  }
-
-  function removeOneMutably(key: Id, state: R): void {
-    return removeManyMutably([key], state)
-  }
-
-  function removeManyMutably(keys: readonly Id[], state: R): void {
-    let didMutate = false
-
-    keys.forEach((key) => {
-      if (key in state.entities) {
-        delete (state.entities as Record<Id, T>)[key]
-        didMutate = true
-      }
-    })
-
-    if (didMutate) {
-      state.ids = (state.ids as Id[]).filter((id) => id in state.entities) as
-        | Id[]
-        | Draft<Id[]>
-    }
-  }
-
-  function removeAllMutably(state: R): void {
-    Object.assign(state, {
-      ids: [],
-      entities: {},
-    })
-  }
-
-  function takeNewKey(
-    keys: { [id: string]: Id },
-    update: Update<T, Id>,
-    state: R,
-  ): boolean {
-    const original: T | undefined = (state.entities as Record<Id, T>)[update.id]
-    if (original === undefined) {
-      return false
-    }
-    const updated: T = Object.assign({}, original, update.changes)
-    const newKey = selectIdValue(updated, selectId)
-    const hasNewKey = newKey !== update.id
-
-    if (hasNewKey) {
-      keys[update.id] = newKey
-      delete (state.entities as Record<Id, T>)[update.id]
-    }
-
-    ;(state.entities as Record<Id, T>)[newKey] = updated
-
-    return hasNewKey
-  }
-
-  function updateOneMutably(update: Update<T, Id>, state: R): void {
-    return updateManyMutably([update], state)
-  }
-
-  function updateManyMutably(
-    updates: ReadonlyArray<Update<T, Id>>,
-    state: R,
-  ): void {
-    const newKeys: { [id: string]: Id } = {}
-
-    const updatesPerEntity: { [id: string]: Update<T, Id> } = {}
-
-    updates.forEach((update) => {
-      // Only apply updates to entities that currently exist
-      if (update.id in state.entities) {
-        // If there are multiple updates to one entity, merge them together
-        updatesPerEntity[update.id] = {
-          id: update.id,
-          // Spreads ignore falsy values, so this works even if there isn't
-          // an existing update already at this key
-          changes: {
-            ...updatesPerEntity[update.id]?.changes,
-            ...update.changes,
-          },
-        }
-      }
-    })
-
-    updates = Object.values(updatesPerEntity)
-
-    const didMutateEntities = updates.length > 0
-
-    if (didMutateEntities) {
-      const didMutateIds =
-        updates.filter((update) => takeNewKey(newKeys, update, state)).length >
-        0
-
-      if (didMutateIds) {
-        state.ids = Object.values(state.entities).map((e) =>
-          selectIdValue(e as T, selectId),
-        )
-      }
-    }
-  }
-
-  function upsertOneMutably(entity: T, state: R): void {
-    return upsertManyMutably([entity], state)
-  }
-
-  function upsertManyMutably(
-    newEntities: readonly T[] | Record<Id, T>,
-    state: R,
-  ): void {
-    const [added, updated] = splitAddedUpdatedEntities<T, Id>(
-      newEntities,
-      selectId,
-      state,
-    )
-
-    addManyMutably(added, state)
-    updateManyMutably(updated, state)
-  }
-
-  return {
-    removeAll: createSingleArgumentStateOperator(removeAllMutably),
-    addOne: createStateOperator(addOneMutably),
-    addMany: createStateOperator(addManyMutably),
-    setOne: createStateOperator(setOneMutably),
-    setMany: createStateOperator(setManyMutably),
-    setAll: createStateOperator(setAllMutably),
-    updateOne: createStateOperator(updateOneMutably),
-    updateMany: createStateOperator(updateManyMutably),
-    upsertOne: createStateOperator(upsertOneMutably),
-    upsertMany: createStateOperator(upsertManyMutably),
-    removeOne: createStateOperator(removeOneMutably),
-    removeMany: createStateOperator(removeManyMutably),
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/entities/utils.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/entities/utils.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-import type { Draft } from 'immer'
-import { current, isDraft } from '../immerImports'
-import type {
-  DraftableEntityState,
-  EntityId,
-  IdSelector,
-  Update,
-} from './models'
-
-export function selectIdValue<T, Id extends EntityId>(
-  entity: T,
-  selectId: IdSelector<T, Id>,
-) {
-  const key = selectId(entity)
-
-  if (process.env.NODE_ENV !== 'production' && key === undefined) {
-    console.warn(
-      'The entity passed to the `selectId` implementation returned undefined.',
-      'You should probably provide your own `selectId` implementation.',
-      'The entity that was passed:',
-      entity,
-      'The `selectId` implementation:',
-      selectId.toString(),
-    )
-  }
-
-  return key
-}
-
-export function ensureEntitiesArray<T, Id extends EntityId>(
-  entities: readonly T[] | Record<Id, T>,
-): readonly T[] {
-  if (!Array.isArray(entities)) {
-    entities = Object.values(entities)
-  }
-
-  return entities
-}
-
-export function getCurrent<T>(value: T | Draft<T>): T {
-  return (isDraft(value) ? current(value) : value) as T
-}
-
-export function splitAddedUpdatedEntities<T, Id extends EntityId>(
-  newEntities: readonly T[] | Record<Id, T>,
-  selectId: IdSelector<T, Id>,
-  state: DraftableEntityState<T, Id>,
-): [T[], Update<T, Id>[], Id[]] {
-  newEntities = ensureEntitiesArray(newEntities)
-
-  const existingIdsArray = getCurrent(state.ids)
-  const existingIds = new Set<Id>(existingIdsArray)
-
-  const added: T[] = []
-  const addedIds = new Set<Id>([])
-  const updated: Update<T, Id>[] = []
-
-  for (const entity of newEntities) {
-    const id = selectIdValue(entity, selectId)
-    if (existingIds.has(id) || addedIds.has(id)) {
-      updated.push({ id, changes: entity })
-    } else {
-      addedIds.add(id)
-      added.push(entity)
-    }
-  }
-  return [added, updated, existingIdsArray]
-}
Index: de_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
- *
- * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
- * during build.
- * @param {number} code
- */
-export function formatProdErrorMessage(code: number) {
-  return (
-    `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` +
-    'use the non-minified dev environment for full errors. '
-  )
-}
Index: de_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import type { StoreEnhancer } from 'redux'
-import type { AutoBatchOptions } from './autoBatchEnhancer'
-import { autoBatchEnhancer } from './autoBatchEnhancer'
-import { Tuple } from './utils'
-import type { Middlewares } from './configureStore'
-import type { ExtractDispatchExtensions } from './tsHelpers'
-
-type GetDefaultEnhancersOptions = {
-  autoBatch?: boolean | AutoBatchOptions
-}
-
-export type GetDefaultEnhancers<M extends Middlewares<any>> = (
-  options?: GetDefaultEnhancersOptions,
-) => Tuple<[StoreEnhancer<{ dispatch: ExtractDispatchExtensions<M> }>]>
-
-export const buildGetDefaultEnhancers = <M extends Middlewares<any>>(
-  middlewareEnhancer: StoreEnhancer<{ dispatch: ExtractDispatchExtensions<M> }>,
-): GetDefaultEnhancers<M> =>
-  function getDefaultEnhancers(options) {
-    const { autoBatch = true } = options ?? {}
-
-    let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer)
-    if (autoBatch) {
-      enhancerArray.push(
-        autoBatchEnhancer(
-          typeof autoBatch === 'object' ? autoBatch : undefined,
-        ),
-      )
-    }
-    return enhancerArray as any
-  }
Index: de_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,113 +1,0 @@
-import type { Middleware, UnknownAction } from 'redux'
-import type { ThunkMiddleware } from 'redux-thunk'
-import { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk'
-import type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'
-import { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'
-import type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'
-/* PROD_START_REMOVE_UMD */
-import { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'
-/* PROD_STOP_REMOVE_UMD */
-
-import type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'
-import { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'
-import type { ExcludeFromTuple } from './tsHelpers'
-import { Tuple } from './utils'
-
-function isBoolean(x: any): x is boolean {
-  return typeof x === 'boolean'
-}
-
-interface ThunkOptions<E = any> {
-  extraArgument: E
-}
-
-interface GetDefaultMiddlewareOptions {
-  thunk?: boolean | ThunkOptions
-  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions
-  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions
-  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions
-}
-
-export type ThunkMiddlewareFor<
-  S,
-  O extends GetDefaultMiddlewareOptions = {},
-> = O extends {
-  thunk: false
-}
-  ? never
-  : O extends { thunk: { extraArgument: infer E } }
-    ? ThunkMiddleware<S, UnknownAction, E>
-    : ThunkMiddleware<S, UnknownAction>
-
-export type GetDefaultMiddleware<S = any> = <
-  O extends GetDefaultMiddlewareOptions = {
-    thunk: true
-    immutableCheck: true
-    serializableCheck: true
-    actionCreatorCheck: true
-  },
->(
-  options?: O,
-) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>
-
-export const buildGetDefaultMiddleware = <S = any>(): GetDefaultMiddleware<S> =>
-  function getDefaultMiddleware(options) {
-    const {
-      thunk = true,
-      immutableCheck = true,
-      serializableCheck = true,
-      actionCreatorCheck = true,
-    } = options ?? {}
-
-    let middlewareArray = new Tuple<Middleware[]>()
-
-    if (thunk) {
-      if (isBoolean(thunk)) {
-        middlewareArray.push(thunkMiddleware)
-      } else {
-        middlewareArray.push(withExtraArgument(thunk.extraArgument))
-      }
-    }
-
-    if (process.env.NODE_ENV !== 'production') {
-      if (immutableCheck) {
-        /* PROD_START_REMOVE_UMD */
-        let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}
-
-        if (!isBoolean(immutableCheck)) {
-          immutableOptions = immutableCheck
-        }
-
-        middlewareArray.unshift(
-          createImmutableStateInvariantMiddleware(immutableOptions),
-        )
-        /* PROD_STOP_REMOVE_UMD */
-      }
-
-      if (serializableCheck) {
-        let serializableOptions: SerializableStateInvariantMiddlewareOptions =
-          {}
-
-        if (!isBoolean(serializableCheck)) {
-          serializableOptions = serializableCheck
-        }
-
-        middlewareArray.push(
-          createSerializableStateInvariantMiddleware(serializableOptions),
-        )
-      }
-      if (actionCreatorCheck) {
-        let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}
-
-        if (!isBoolean(actionCreatorCheck)) {
-          actionCreatorOptions = actionCreatorCheck
-        }
-
-        middlewareArray.unshift(
-          createActionCreatorInvariantMiddleware(actionCreatorOptions),
-        )
-      }
-    }
-
-    return middlewareArray as any
-  }
Index: de_modules/@reduxjs/toolkit/src/immerImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/immerImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export {
-  current,
-  isDraft,
-  produce as createNextState,
-  isDraftable,
-  setUseStrictIteration,
-} from 'immer'
Index: de_modules/@reduxjs/toolkit/src/immutableStateInvariantMiddleware.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/immutableStateInvariantMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,274 +1,0 @@
-import type { Middleware } from 'redux'
-import type { IgnorePaths } from './serializableStateInvariantMiddleware'
-import { getTimeMeasureUtils } from './utils'
-
-type EntryProcessor = (key: string, value: any) => any
-
-/**
- * The default `isImmutable` function.
- *
- * @public
- */
-export function isImmutableDefault(value: unknown): boolean {
-  return typeof value !== 'object' || value == null || Object.isFrozen(value)
-}
-
-export function trackForMutations(
-  isImmutable: IsImmutableFunc,
-  ignoredPaths: IgnorePaths | undefined,
-  obj: any,
-) {
-  const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj)
-  return {
-    detectMutations() {
-      return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj)
-    },
-  }
-}
-
-interface TrackedProperty {
-  value: any
-  children: Record<string, any>
-}
-
-function trackProperties(
-  isImmutable: IsImmutableFunc,
-  ignoredPaths: IgnorePaths = [],
-  obj: Record<string, any>,
-  path: string = '',
-  checkedObjects: Set<Record<string, any>> = new Set(),
-) {
-  const tracked: Partial<TrackedProperty> = { value: obj }
-
-  if (!isImmutable(obj) && !checkedObjects.has(obj)) {
-    checkedObjects.add(obj)
-    tracked.children = {}
-
-    const hasIgnoredPaths = ignoredPaths.length > 0
-
-    for (const key in obj) {
-      const nestedPath = path ? path + '.' + key : key
-
-      if (hasIgnoredPaths) {
-        const hasMatches = ignoredPaths.some((ignored) => {
-          if (ignored instanceof RegExp) {
-            return ignored.test(nestedPath)
-          }
-          return nestedPath === ignored
-        })
-        if (hasMatches) {
-          continue
-        }
-      }
-
-      tracked.children[key] = trackProperties(
-        isImmutable,
-        ignoredPaths,
-        obj[key],
-        nestedPath,
-      )
-    }
-  }
-  return tracked as TrackedProperty
-}
-
-function detectMutations(
-  isImmutable: IsImmutableFunc,
-  ignoredPaths: IgnorePaths = [],
-  trackedProperty: TrackedProperty,
-  obj: any,
-  sameParentRef: boolean = false,
-  path: string = '',
-): { wasMutated: boolean; path?: string } {
-  const prevObj = trackedProperty ? trackedProperty.value : undefined
-
-  const sameRef = prevObj === obj
-
-  if (sameParentRef && !sameRef && !Number.isNaN(obj)) {
-    return { wasMutated: true, path }
-  }
-
-  if (isImmutable(prevObj) || isImmutable(obj)) {
-    return { wasMutated: false }
-  }
-
-  // Gather all keys from prev (tracked) and after objs
-  const keysToDetect: Record<string, boolean> = {}
-  for (let key in trackedProperty.children) {
-    keysToDetect[key] = true
-  }
-  for (let key in obj) {
-    keysToDetect[key] = true
-  }
-
-  const hasIgnoredPaths = ignoredPaths.length > 0
-
-  for (let key in keysToDetect) {
-    const nestedPath = path ? path + '.' + key : key
-
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath)
-        }
-        return nestedPath === ignored
-      })
-      if (hasMatches) {
-        continue
-      }
-    }
-
-    const result = detectMutations(
-      isImmutable,
-      ignoredPaths,
-      trackedProperty.children[key],
-      obj[key],
-      sameRef,
-      nestedPath,
-    )
-
-    if (result.wasMutated) {
-      return result
-    }
-  }
-  return { wasMutated: false }
-}
-
-type IsImmutableFunc = (value: any) => boolean
-
-/**
- * Options for `createImmutableStateInvariantMiddleware()`.
- *
- * @public
- */
-export interface ImmutableStateInvariantMiddlewareOptions {
-  /**
-    Callback function to check if a value is considered to be immutable.
-    This function is applied recursively to every value contained in the state.
-    The default implementation will return true for primitive types
-    (like numbers, strings, booleans, null and undefined).
-   */
-  isImmutable?: IsImmutableFunc
-  /**
-    An array of dot-separated path strings that match named nodes from
-    the root state to ignore when checking for immutability.
-    Defaults to undefined
-   */
-  ignoredPaths?: IgnorePaths
-  /** Print a warning if checks take longer than N ms. Default: 32ms */
-  warnAfter?: number
-}
-
-/**
- * Creates a middleware that checks whether any state was mutated in between
- * dispatches or during a dispatch. If any mutations are detected, an error is
- * thrown.
- *
- * @param options Middleware options.
- *
- * @public
- */
-export function createImmutableStateInvariantMiddleware(
-  options: ImmutableStateInvariantMiddlewareOptions = {},
-): Middleware {
-  if (process.env.NODE_ENV === 'production') {
-    return () => (next) => (action) => next(action)
-  } else {
-    function stringify(
-      obj: any,
-      serializer?: EntryProcessor,
-      indent?: string | number,
-      decycler?: EntryProcessor,
-    ): string {
-      return JSON.stringify(obj, getSerialize(serializer, decycler), indent)
-    }
-
-    function getSerialize(
-      serializer?: EntryProcessor,
-      decycler?: EntryProcessor,
-    ): EntryProcessor {
-      let stack: any[] = [],
-        keys: any[] = []
-
-      if (!decycler)
-        decycler = function (_: string, value: any) {
-          if (stack[0] === value) return '[Circular ~]'
-          return (
-            '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'
-          )
-        }
-
-      return function (this: any, key: string, value: any) {
-        if (stack.length > 0) {
-          var thisPos = stack.indexOf(this)
-          ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
-          ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
-          if (~stack.indexOf(value)) value = decycler!.call(this, key, value)
-        } else stack.push(value)
-
-        return serializer == null ? value : serializer.call(this, key, value)
-      }
-    }
-
-    let {
-      isImmutable = isImmutableDefault,
-      ignoredPaths,
-      warnAfter = 32,
-    } = options
-
-    const track = trackForMutations.bind(null, isImmutable, ignoredPaths)
-
-    return ({ getState }) => {
-      let state = getState()
-      let tracker = track(state)
-
-      let result
-      return (next) => (action) => {
-        const measureUtils = getTimeMeasureUtils(
-          warnAfter,
-          'ImmutableStateInvariantMiddleware',
-        )
-
-        measureUtils.measureTime(() => {
-          state = getState()
-
-          result = tracker.detectMutations()
-          // Track before potentially not meeting the invariant
-          tracker = track(state)
-
-          if (result.wasMutated) {
-            throw new Error(
-              `A state mutation was detected between dispatches, in the path '${
-                result.path || ''
-              }'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`,
-            )
-          }
-        })
-
-        const dispatchedAction = next(action)
-
-        measureUtils.measureTime(() => {
-          state = getState()
-
-          result = tracker.detectMutations()
-          // Track before potentially not meeting the invariant
-          tracker = track(state)
-
-          if (result.wasMutated) {
-            throw new Error(
-              `A state mutation was detected inside a dispatch, in the path: ${
-                result.path || ''
-              }. Take a look at the reducer(s) handling the action ${stringify(
-                action,
-              )}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`,
-            )
-          }
-        })
-
-        measureUtils.warnIfExceeded()
-
-        return dispatchedAction
-      }
-    }
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,213 +1,0 @@
-// This must remain here so that the `mangleErrors.cjs` build script
-// does not have to import this into each source file it rewrites.
-import { formatProdErrorMessage } from './formatProdErrorMessage'
-
-export * from 'redux'
-export { freeze, original } from 'immer'
-export { createNextState, current, isDraft } from './immerImports'
-export type { Draft, WritableDraft } from 'immer'
-export { createSelector, lruMemoize } from 'reselect'
-export { createSelectorCreator, weakMapMemoize } from './reselectImports'
-export type { Selector, OutputSelector } from 'reselect'
-export {
-  createDraftSafeSelector,
-  createDraftSafeSelectorCreator,
-} from './createDraftSafeSelector'
-export type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'
-
-export {
-  // js
-  configureStore,
-} from './configureStore'
-export type {
-  // types
-  ConfigureStoreOptions,
-  EnhancedStore,
-} from './configureStore'
-export type { DevToolsEnhancerOptions } from './devtoolsExtension'
-export {
-  // js
-  createAction,
-  isActionCreator,
-  isFSA as isFluxStandardAction,
-} from './createAction'
-export type {
-  // types
-  PayloadAction,
-  PayloadActionCreator,
-  ActionCreatorWithNonInferrablePayload,
-  ActionCreatorWithOptionalPayload,
-  ActionCreatorWithPayload,
-  ActionCreatorWithoutPayload,
-  ActionCreatorWithPreparedPayload,
-  PrepareAction,
-} from './createAction'
-export {
-  // js
-  createReducer,
-} from './createReducer'
-export type {
-  // types
-  Actions,
-  CaseReducer,
-  CaseReducers,
-} from './createReducer'
-export {
-  // js
-  createSlice,
-  buildCreateSlice,
-  asyncThunkCreator,
-  ReducerType,
-} from './createSlice'
-
-export type {
-  // types
-  CreateSliceOptions,
-  Slice,
-  CaseReducerActions,
-  SliceCaseReducers,
-  ValidateSliceCaseReducers,
-  CaseReducerWithPrepare,
-  ReducerCreators,
-  SliceSelectors,
-} from './createSlice'
-export type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'
-export { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'
-export {
-  // js
-  createImmutableStateInvariantMiddleware,
-  isImmutableDefault,
-} from './immutableStateInvariantMiddleware'
-export type {
-  // types
-  ImmutableStateInvariantMiddlewareOptions,
-} from './immutableStateInvariantMiddleware'
-export {
-  // js
-  createSerializableStateInvariantMiddleware,
-  findNonSerializableValue,
-  isPlain,
-} from './serializableStateInvariantMiddleware'
-export type {
-  // types
-  SerializableStateInvariantMiddlewareOptions,
-} from './serializableStateInvariantMiddleware'
-export type {
-  // types
-  ActionReducerMapBuilder,
-  AsyncThunkReducers,
-} from './mapBuilders'
-export { Tuple } from './utils'
-
-export { createEntityAdapter } from './entities/create_adapter'
-export type {
-  EntityState,
-  EntityAdapter,
-  EntitySelectors,
-  EntityStateAdapter,
-  EntityId,
-  Update,
-  IdSelector,
-  Comparer,
-} from './entities/models'
-
-export {
-  createAsyncThunk,
-  unwrapResult,
-  miniSerializeError,
-} from './createAsyncThunk'
-export type {
-  AsyncThunk,
-  AsyncThunkConfig,
-  AsyncThunkDispatchConfig,
-  AsyncThunkOptions,
-  AsyncThunkAction,
-  AsyncThunkPayloadCreatorReturnValue,
-  AsyncThunkPayloadCreator,
-  GetState,
-  GetThunkAPI,
-  SerializedError,
-  CreateAsyncThunkFunction,
-} from './createAsyncThunk'
-
-export {
-  // js
-  isAllOf,
-  isAnyOf,
-  isPending,
-  isRejected,
-  isFulfilled,
-  isAsyncThunkAction,
-  isRejectedWithValue,
-} from './matchers'
-export type {
-  // types
-  ActionMatchingAllOf,
-  ActionMatchingAnyOf,
-} from './matchers'
-
-export { nanoid } from './nanoid'
-
-export type {
-  ListenerEffect,
-  ListenerMiddleware,
-  ListenerEffectAPI,
-  ListenerMiddlewareInstance,
-  CreateListenerMiddlewareOptions,
-  ListenerErrorHandler,
-  TypedStartListening,
-  TypedAddListener,
-  TypedStopListening,
-  TypedRemoveListener,
-  UnsubscribeListener,
-  UnsubscribeListenerOptions,
-  ForkedTaskExecutor,
-  ForkedTask,
-  ForkedTaskAPI,
-  AsyncTaskExecutor,
-  SyncTaskExecutor,
-  TaskCancelled,
-  TaskRejected,
-  TaskResolved,
-  TaskResult,
-} from './listenerMiddleware/index'
-export type { AnyListenerPredicate } from './listenerMiddleware/types'
-
-export {
-  createListenerMiddleware,
-  addListener,
-  removeListener,
-  clearAllListeners,
-  TaskAbortError,
-} from './listenerMiddleware/index'
-
-export type {
-  AddMiddleware,
-  DynamicDispatch,
-  DynamicMiddlewareInstance,
-  GetDispatchType as GetDispatch,
-  MiddlewareApiConfig,
-} from './dynamicMiddleware/types'
-export { createDynamicMiddleware } from './dynamicMiddleware/index'
-
-export {
-  SHOULD_AUTOBATCH,
-  prepareAutoBatched,
-  autoBatchEnhancer,
-} from './autoBatchEnhancer'
-export type { AutoBatchOptions } from './autoBatchEnhancer'
-
-export { combineSlices } from './combineSlices'
-
-export type {
-  CombinedSliceReducer,
-  WithSlice,
-  WithSlicePreloadedState,
-} from './combineSlices'
-
-export type {
-  ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions,
-  SafePromise,
-} from './tsHelpers'
-
-export { formatProdErrorMessage } from './formatProdErrorMessage'
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import type { SerializedError } from '@reduxjs/toolkit'
-
-const task = 'task'
-const listener = 'listener'
-const completed = 'completed'
-const cancelled = 'cancelled'
-
-/* TaskAbortError error codes  */
-export const taskCancelled = `task-${cancelled}` as const
-export const taskCompleted = `task-${completed}` as const
-export const listenerCancelled = `${listener}-${cancelled}` as const
-export const listenerCompleted = `${listener}-${completed}` as const
-
-export class TaskAbortError implements SerializedError {
-  name = 'TaskAbortError'
-  message: string
-  constructor(public code: string | undefined) {
-    this.message = `${task} ${cancelled} (reason: ${code})`
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,562 +1,0 @@
-import type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux'
-import { isAction } from '../reduxImports'
-import type { ThunkDispatch } from 'redux-thunk'
-import { createAction } from '../createAction'
-import { nanoid } from '../nanoid'
-
-import {
-  TaskAbortError,
-  listenerCancelled,
-  listenerCompleted,
-  taskCancelled,
-  taskCompleted,
-} from './exceptions'
-import {
-  createDelay,
-  createPause,
-  raceWithSignal,
-  runTask,
-  validateActive,
-} from './task'
-import type {
-  AddListenerOverloads,
-  AnyListenerPredicate,
-  CreateListenerMiddlewareOptions,
-  FallbackAddListenerOptions,
-  ForkOptions,
-  ForkedTask,
-  ForkedTaskExecutor,
-  ListenerEntry,
-  ListenerErrorHandler,
-  ListenerErrorInfo,
-  ListenerMiddleware,
-  ListenerMiddlewareInstance,
-  TakePattern,
-  TaskResult,
-  TypedAddListener,
-  TypedCreateListenerEntry,
-  TypedRemoveListener,
-  UnsubscribeListener,
-  UnsubscribeListenerOptions,
-} from './types'
-import {
-  addAbortSignalListener,
-  assertFunction,
-  catchRejection,
-  noop,
-} from './utils'
-export { TaskAbortError } from './exceptions'
-export type {
-  AsyncTaskExecutor,
-  CreateListenerMiddlewareOptions,
-  ForkedTask,
-  ForkedTaskAPI,
-  ForkedTaskExecutor,
-  ListenerEffect,
-  ListenerEffectAPI,
-  ListenerErrorHandler,
-  ListenerMiddleware,
-  ListenerMiddlewareInstance,
-  SyncTaskExecutor,
-  TaskCancelled,
-  TaskRejected,
-  TaskResolved,
-  TaskResult,
-  TypedAddListener,
-  TypedRemoveListener,
-  TypedStartListening,
-  TypedStopListening,
-  UnsubscribeListener,
-  UnsubscribeListenerOptions,
-} from './types'
-
-//Overly-aggressive byte-shaving
-const { assign } = Object
-/**
- * @internal
- */
-const INTERNAL_NIL_TOKEN = {} as const
-
-const alm = 'listenerMiddleware' as const
-
-const createFork = (
-  parentAbortSignal: AbortSignal,
-  parentBlockingPromises: Promise<any>[],
-) => {
-  const linkControllers = (controller: AbortController) =>
-    addAbortSignalListener(parentAbortSignal, () =>
-      controller.abort(parentAbortSignal.reason),
-    )
-
-  return <T>(
-    taskExecutor: ForkedTaskExecutor<T>,
-    opts?: ForkOptions,
-  ): ForkedTask<T> => {
-    assertFunction(taskExecutor, 'taskExecutor')
-    const childAbortController = new AbortController()
-
-    linkControllers(childAbortController)
-
-    const result = runTask<T>(
-      async (): Promise<T> => {
-        validateActive(parentAbortSignal)
-        validateActive(childAbortController.signal)
-        const result = (await taskExecutor({
-          pause: createPause(childAbortController.signal),
-          delay: createDelay(childAbortController.signal),
-          signal: childAbortController.signal,
-        })) as T
-        validateActive(childAbortController.signal)
-        return result
-      },
-      () => childAbortController.abort(taskCompleted),
-    )
-
-    if (opts?.autoJoin) {
-      parentBlockingPromises.push(result.catch(noop))
-    }
-
-    return {
-      result: createPause<TaskResult<T>>(parentAbortSignal)(result),
-      cancel() {
-        childAbortController.abort(taskCancelled)
-      },
-    }
-  }
-}
-
-const createTakePattern = <S>(
-  startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>,
-  signal: AbortSignal,
-): TakePattern<S> => {
-  /**
-   * A function that takes a ListenerPredicate and an optional timeout,
-   * and resolves when either the predicate returns `true` based on an action
-   * state combination or when the timeout expires.
-   * If the parent listener is canceled while waiting, this will throw a
-   * TaskAbortError.
-   */
-  const take = async <P extends AnyListenerPredicate<S>>(
-    predicate: P,
-    timeout: number | undefined,
-  ) => {
-    validateActive(signal)
-
-    // Placeholder unsubscribe function until the listener is added
-    let unsubscribe: UnsubscribeListener = () => {}
-
-    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {
-      // Inside the Promise, we synchronously add the listener.
-      let stopListening = startListening({
-        predicate: predicate as any,
-        effect: (action, listenerApi): void => {
-          // One-shot listener that cleans up as soon as the predicate passes
-          listenerApi.unsubscribe()
-          // Resolve the promise with the same arguments the predicate saw
-          resolve([
-            action,
-            listenerApi.getState(),
-            listenerApi.getOriginalState(),
-          ])
-        },
-      })
-      unsubscribe = () => {
-        stopListening()
-        reject()
-      }
-    })
-
-    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise]
-
-    if (timeout != null) {
-      promises.push(
-        new Promise<null>((resolve) => setTimeout(resolve, timeout, null)),
-      )
-    }
-
-    try {
-      const output = await raceWithSignal(signal, Promise.race(promises))
-
-      validateActive(signal)
-      return output
-    } finally {
-      // Always clean up the listener
-      unsubscribe()
-    }
-  }
-
-  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) =>
-    catchRejection(take(predicate, timeout))) as TakePattern<S>
-}
-
-const getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {
-  let { type, actionCreator, matcher, predicate, effect } = options
-
-  if (type) {
-    predicate = createAction(type).match
-  } else if (actionCreator) {
-    type = actionCreator!.type
-    predicate = actionCreator.match
-  } else if (matcher) {
-    predicate = matcher
-  } else if (predicate) {
-    // pass
-  } else {
-    throw new Error(
-      'Creating or removing a listener requires one of the known fields for matching an action',
-    )
-  }
-
-  assertFunction(effect, 'options.listener')
-
-  return { predicate, type, effect }
-}
-
-/** Accepts the possible options for creating a listener, and returns a formatted listener entry */
-export const createListenerEntry: TypedCreateListenerEntry<unknown> =
-  /* @__PURE__ */ assign(
-    (options: FallbackAddListenerOptions) => {
-      const { type, predicate, effect } = getListenerEntryPropsFrom(options)
-
-      const entry: ListenerEntry<unknown> = {
-        id: nanoid(),
-        effect,
-        type,
-        predicate,
-        pending: new Set<AbortController>(),
-        unsubscribe: () => {
-          throw new Error('Unsubscribe not initialized')
-        },
-      }
-
-      return entry
-    },
-    { withTypes: () => createListenerEntry },
-  ) as unknown as TypedCreateListenerEntry<unknown>
-
-const findListenerEntry = (
-  listenerMap: Map<string, ListenerEntry>,
-  options: FallbackAddListenerOptions,
-) => {
-  const { type, effect, predicate } = getListenerEntryPropsFrom(options)
-
-  return Array.from(listenerMap.values()).find((entry) => {
-    const matchPredicateOrType =
-      typeof type === 'string'
-        ? entry.type === type
-        : entry.predicate === predicate
-
-    return matchPredicateOrType && entry.effect === effect
-  })
-}
-
-const cancelActiveListeners = (
-  entry: ListenerEntry<unknown, Dispatch<UnknownAction>>,
-) => {
-  entry.pending.forEach((controller) => {
-    controller.abort(listenerCancelled)
-  })
-}
-
-const createClearListenerMiddleware = (
-  listenerMap: Map<string, ListenerEntry>,
-  executingListeners: Map<ListenerEntry, number>,
-) => {
-  return () => {
-    for (const listener of executingListeners.keys()) {
-      cancelActiveListeners(listener)
-    }
-    listenerMap.clear()
-  }
-}
-
-/**
- * Safely reports errors to the `errorHandler` provided.
- * Errors that occur inside `errorHandler` are notified in a new task.
- * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)
- * @param errorHandler
- * @param errorToNotify
- */
-const safelyNotifyError = (
-  errorHandler: ListenerErrorHandler,
-  errorToNotify: unknown,
-  errorInfo: ListenerErrorInfo,
-): void => {
-  try {
-    errorHandler(errorToNotify, errorInfo)
-  } catch (errorHandlerError) {
-    // We cannot let an error raised here block the listener queue.
-    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...
-    setTimeout(() => {
-      throw errorHandlerError
-    }, 0)
-  }
-}
-
-/**
- * @public
- */
-export const addListener = /* @__PURE__ */ assign(
-  /* @__PURE__ */ createAction(`${alm}/add`),
-  {
-    withTypes: () => addListener,
-  },
-) as unknown as TypedAddListener<unknown>
-
-/**
- * @public
- */
-export const clearAllListeners = /* @__PURE__ */ createAction(
-  `${alm}/removeAll`,
-)
-
-/**
- * @public
- */
-export const removeListener = /* @__PURE__ */ assign(
-  /* @__PURE__ */ createAction(`${alm}/remove`),
-  {
-    withTypes: () => removeListener,
-  },
-) as unknown as TypedRemoveListener<unknown>
-
-const defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {
-  console.error(`${alm}/error`, ...args)
-}
-
-/**
- * @public
- */
-export const createListenerMiddleware = <
-  StateType = unknown,
-  DispatchType extends Dispatch<Action> = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
->(
-  middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {},
-) => {
-  const listenerMap = new Map<string, ListenerEntry>()
-
-  // Track listeners whose effect is currently executing so clearListeners can
-  // abort even listeners that have become unsubscribed while executing.
-  const executingListeners = new Map<ListenerEntry, number>()
-  const trackExecutingListener = (entry: ListenerEntry) => {
-    const count = executingListeners.get(entry) ?? 0
-    executingListeners.set(entry, count + 1)
-  }
-  const untrackExecutingListener = (entry: ListenerEntry) => {
-    const count = executingListeners.get(entry) ?? 1
-    if (count === 1) {
-      executingListeners.delete(entry)
-    } else {
-      executingListeners.set(entry, count - 1)
-    }
-  }
-
-  const { extra, onError = defaultErrorHandler } = middlewareOptions
-
-  assertFunction(onError, 'onError')
-
-  const insertEntry = (entry: ListenerEntry) => {
-    entry.unsubscribe = () => listenerMap.delete(entry.id)
-
-    listenerMap.set(entry.id, entry)
-    return (cancelOptions?: UnsubscribeListenerOptions) => {
-      entry.unsubscribe()
-      if (cancelOptions?.cancelActive) {
-        cancelActiveListeners(entry)
-      }
-    }
-  }
-
-  const startListening = ((options: FallbackAddListenerOptions) => {
-    const entry =
-      findListenerEntry(listenerMap, options) ??
-      createListenerEntry(options as any)
-
-    return insertEntry(entry)
-  }) as AddListenerOverloads<any>
-
-  assign(startListening, {
-    withTypes: () => startListening,
-  })
-
-  const stopListening = (
-    options: FallbackAddListenerOptions & UnsubscribeListenerOptions,
-  ): boolean => {
-    const entry = findListenerEntry(listenerMap, options)
-
-    if (entry) {
-      entry.unsubscribe()
-      if (options.cancelActive) {
-        cancelActiveListeners(entry)
-      }
-    }
-
-    return !!entry
-  }
-
-  assign(stopListening, {
-    withTypes: () => stopListening,
-  })
-
-  const notifyListener = async (
-    entry: ListenerEntry<unknown, Dispatch<UnknownAction>>,
-    action: unknown,
-    api: MiddlewareAPI,
-    getOriginalState: () => StateType,
-  ) => {
-    const internalTaskController = new AbortController()
-    const take = createTakePattern(
-      startListening as AddListenerOverloads<any>,
-      internalTaskController.signal,
-    )
-    const autoJoinPromises: Promise<any>[] = []
-
-    try {
-      entry.pending.add(internalTaskController)
-      trackExecutingListener(entry)
-      await Promise.resolve(
-        entry.effect(
-          action,
-          // Use assign() rather than ... to avoid extra helper functions added to bundle
-          assign({}, api, {
-            getOriginalState,
-            condition: (
-              predicate: AnyListenerPredicate<any>,
-              timeout?: number,
-            ) => take(predicate, timeout).then(Boolean),
-            take,
-            delay: createDelay(internalTaskController.signal),
-            pause: createPause<any>(internalTaskController.signal),
-            extra,
-            signal: internalTaskController.signal,
-            fork: createFork(internalTaskController.signal, autoJoinPromises),
-            unsubscribe: entry.unsubscribe,
-            subscribe: () => {
-              listenerMap.set(entry.id, entry)
-            },
-            cancelActiveListeners: () => {
-              entry.pending.forEach((controller, _, set) => {
-                if (controller !== internalTaskController) {
-                  controller.abort(listenerCancelled)
-                  set.delete(controller)
-                }
-              })
-            },
-            cancel: () => {
-              internalTaskController.abort(listenerCancelled)
-              entry.pending.delete(internalTaskController)
-            },
-            throwIfCancelled: () => {
-              validateActive(internalTaskController.signal)
-            },
-          }),
-        ),
-      )
-    } catch (listenerError) {
-      if (!(listenerError instanceof TaskAbortError)) {
-        safelyNotifyError(onError, listenerError, {
-          raisedBy: 'effect',
-        })
-      }
-    } finally {
-      await Promise.all(autoJoinPromises)
-
-      internalTaskController.abort(listenerCompleted) // Notify that the task has completed
-      untrackExecutingListener(entry)
-      entry.pending.delete(internalTaskController)
-    }
-  }
-
-  const clearListenerMiddleware = createClearListenerMiddleware(
-    listenerMap,
-    executingListeners,
-  )
-
-  const middleware: ListenerMiddleware<
-    StateType,
-    DispatchType,
-    ExtraArgument
-  > = (api) => (next) => (action) => {
-    if (!isAction(action)) {
-      // we only want to notify listeners for action objects
-      return next(action)
-    }
-
-    if (addListener.match(action)) {
-      return startListening(action.payload as any)
-    }
-
-    if (clearAllListeners.match(action)) {
-      clearListenerMiddleware()
-      return
-    }
-
-    if (removeListener.match(action)) {
-      return stopListening(action.payload)
-    }
-
-    // Need to get this state _before_ the reducer processes the action
-    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState()
-
-    // `getOriginalState` can only be called synchronously.
-    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820
-    const getOriginalState = (): StateType => {
-      if (originalState === INTERNAL_NIL_TOKEN) {
-        throw new Error(
-          `${alm}: getOriginalState can only be called synchronously`,
-        )
-      }
-
-      return originalState as StateType
-    }
-
-    let result: unknown
-
-    try {
-      // Actually forward the action to the reducer before we handle listeners
-      result = next(action)
-
-      if (listenerMap.size > 0) {
-        const currentState = api.getState()
-        // Work around ESBuild+TS transpilation issue
-        const listenerEntries = Array.from(listenerMap.values())
-        for (const entry of listenerEntries) {
-          let runListener = false
-
-          try {
-            runListener = entry.predicate(action, currentState, originalState)
-          } catch (predicateError) {
-            runListener = false
-
-            safelyNotifyError(onError, predicateError, {
-              raisedBy: 'predicate',
-            })
-          }
-
-          if (!runListener) {
-            continue
-          }
-
-          notifyListener(entry, action, api, getOriginalState)
-        }
-      }
-    } finally {
-      // Remove `originalState` store from this scope.
-      originalState = INTERNAL_NIL_TOKEN
-    }
-
-    return result
-  }
-
-  return {
-    middleware,
-    startListening,
-    stopListening,
-    clearListeners: clearListenerMiddleware,
-  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>
-}
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import { TaskAbortError } from './exceptions'
-import type { TaskResult } from './types'
-import { addAbortSignalListener, catchRejection, noop } from './utils'
-
-/**
- * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.
- * @param signal
- * @see {TaskAbortError}
- * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.
- */
-export const validateActive = (signal: AbortSignal): void => {
-  if (signal.aborted) {
-    throw new TaskAbortError(signal.reason)
-  }
-}
-
-/**
- * Generates a race between the promise(s) and the AbortSignal
- * This avoids `Promise.race()`-related memory leaks:
- * https://github.com/nodejs/node/issues/17469#issuecomment-349794909
- */
-export function raceWithSignal<T>(
-  signal: AbortSignal,
-  promise: Promise<T>,
-): Promise<T> {
-  let cleanup = noop
-  return new Promise<T>((resolve, reject) => {
-    const notifyRejection = () => reject(new TaskAbortError(signal.reason))
-
-    if (signal.aborted) {
-      notifyRejection()
-      return
-    }
-
-    cleanup = addAbortSignalListener(signal, notifyRejection)
-    promise.finally(() => cleanup()).then(resolve, reject)
-  }).finally(() => {
-    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more
-    cleanup = noop
-  })
-}
-
-/**
- * Runs a task and returns promise that resolves to {@link TaskResult}.
- * Second argument is an optional `cleanUp` function that always runs after task.
- *
- * **Note:** `runTask` runs the executor in the next microtask.
- * @returns
- */
-export const runTask = async <T>(
-  task: () => Promise<T>,
-  cleanUp?: () => void,
-): Promise<TaskResult<T>> => {
-  try {
-    await Promise.resolve()
-    const value = await task()
-    return {
-      status: 'ok',
-      value,
-    }
-  } catch (error: any) {
-    return {
-      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',
-      error,
-    }
-  } finally {
-    cleanUp?.()
-  }
-}
-
-/**
- * Given an input `AbortSignal` and a promise returns another promise that resolves
- * as soon the input promise is provided or rejects as soon as
- * `AbortSignal.abort` is `true`.
- * @param signal
- * @returns
- */
-export const createPause = <T>(signal: AbortSignal) => {
-  return (promise: Promise<T>): Promise<T> => {
-    return catchRejection(
-      raceWithSignal(signal, promise).then((output) => {
-        validateActive(signal)
-        return output
-      }),
-    )
-  }
-}
-
-/**
- * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves
- * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.
- * @param signal
- * @returns
- */
-export const createDelay = (signal: AbortSignal) => {
-  const pause = createPause<void>(signal)
-  return (timeoutMs: number): Promise<void> => {
-    return pause(new Promise<void>((resolve) => setTimeout(resolve, timeoutMs)))
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/effectScenarios.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/effectScenarios.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,498 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import type { PayloadAction } from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createAction,
-  createListenerMiddleware,
-  createSlice,
-  isAnyOf,
-  TaskAbortError,
-} from '@reduxjs/toolkit'
-
-describe('Saga-style Effects Scenarios', () => {
-  interface CounterState {
-    value: number
-  }
-
-  const counterSlice = createSlice({
-    name: 'counter',
-    initialState: { value: 0 } as CounterState,
-    reducers: {
-      increment(state) {
-        state.value += 1
-      },
-      decrement(state) {
-        state.value -= 1
-      },
-      // Use the PayloadAction type to declare the contents of `action.payload`
-      incrementByAmount: (state, action: PayloadAction<number>) => {
-        state.value += action.payload
-      },
-    },
-  })
-  const { increment, decrement, incrementByAmount } = counterSlice.actions
-
-  let { reducer } = counterSlice
-  let listenerMiddleware = createListenerMiddleware<CounterState>()
-  let { middleware, startListening, stopListening } = listenerMiddleware
-
-  let store = configureStore({
-    reducer,
-    middleware: (gDM) => gDM().prepend(middleware),
-  })
-
-  const testAction1 = createAction<string>('testAction1')
-  type TestAction1 = ReturnType<typeof testAction1>
-  const testAction2 = createAction<string>('testAction2')
-  type TestAction2 = ReturnType<typeof testAction2>
-  const testAction3 = createAction<string>('testAction3')
-  type TestAction3 = ReturnType<typeof testAction3>
-
-  type RootState = ReturnType<typeof store.getState>
-
-  function delay(ms: number) {
-    return new Promise((resolve) => setTimeout(resolve, ms))
-  }
-
-  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-  beforeEach(() => {
-    listenerMiddleware = createListenerMiddleware<CounterState>()
-    middleware = listenerMiddleware.middleware
-    startListening = listenerMiddleware.startListening
-    store = configureStore({
-      reducer,
-      middleware: (gDM) => gDM().prepend(middleware),
-    })
-  })
-
-  afterEach(() => {
-    vi.clearAllMocks()
-  })
-
-  afterAll(() => {
-    vi.restoreAllMocks()
-  })
-
-  test('throttle', async () => {
-    // Ignore incoming actions for a given period of time while processing a task.
-    // Ref: https://redux-saga.js.org/docs/api#throttlems-pattern-saga-args
-
-    let listenerCalls = 0
-    let workPerformed = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: (action, listenerApi) => {
-        listenerCalls++
-
-        // Stop listening until further notice
-        listenerApi.unsubscribe()
-
-        // Queue to start listening again after a delay
-        setTimeout(listenerApi.subscribe, 15)
-        workPerformed++
-      },
-    })
-
-    // Dispatch 3 actions. First triggers listener, next two ignored.
-    store.dispatch(increment())
-    store.dispatch(increment())
-    store.dispatch(increment())
-
-    // Wait for resubscription
-    await delay(25)
-
-    // Dispatch 2 more actions, first triggers, second ignored
-    store.dispatch(increment())
-    store.dispatch(increment())
-
-    // Wait for work
-    await delay(5)
-
-    // Both listener calls completed
-    expect(listenerCalls).toBe(2)
-    expect(workPerformed).toBe(2)
-  })
-
-  test('debounce / takeLatest', async () => {
-    // Repeated calls cancel previous ones, no work performed
-    // until the specified delay elapses without another call
-    // NOTE: This is also basically identical to `takeLatest`.
-    // Ref: https://redux-saga.js.org/docs/api#debouncems-pattern-saga-args
-    // Ref: https://redux-saga.js.org/docs/api#takelatestpattern-saga-args
-
-    let listenerCalls = 0
-    let workPerformed = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        listenerCalls++
-
-        // Cancel any in-progress instances of this listener
-        listenerApi.cancelActiveListeners()
-
-        // Delay before starting actual work
-        await listenerApi.delay(15)
-
-        workPerformed++
-      },
-    })
-
-    // First action, listener 1 starts, nothing to cancel
-    store.dispatch(increment())
-    // Second action, listener 2 starts, cancels 1
-    store.dispatch(increment())
-    // Third action, listener 3 starts, cancels 2
-    store.dispatch(increment())
-
-    // 3 listeners started, third is still paused
-    expect(listenerCalls).toBe(3)
-    expect(workPerformed).toBe(0)
-
-    await delay(25)
-
-    // All 3 started
-    expect(listenerCalls).toBe(3)
-    // First two canceled, `delay()` threw JobCanceled and skipped work.
-    // Third actually completed.
-    expect(workPerformed).toBe(1)
-  })
-
-  test('takeEvery', async () => {
-    // Runs the listener on every action match
-    // Ref: https://redux-saga.js.org/docs/api#takeeverypattern-saga-args
-
-    // NOTE: This is already the default behavior - nothing special here!
-
-    let listenerCalls = 0
-    startListening({
-      actionCreator: increment,
-      effect: (action, listenerApi) => {
-        listenerCalls++
-      },
-    })
-
-    store.dispatch(increment())
-    expect(listenerCalls).toBe(1)
-
-    store.dispatch(increment())
-    expect(listenerCalls).toBe(2)
-  })
-
-  test('takeLeading', async () => {
-    // Starts listener on first action, ignores others until task completes
-    // Ref: https://redux-saga.js.org/docs/api#takeleadingpattern-saga-args
-
-    let listenerCalls = 0
-    let workPerformed = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        listenerCalls++
-
-        // Stop listening for this action
-        listenerApi.unsubscribe()
-
-        // Pretend we're doing expensive work
-        await listenerApi.delay(25)
-
-        workPerformed++
-
-        // Re-enable the listener
-        listenerApi.subscribe()
-      },
-    })
-
-    // First action starts the listener, which unsubscribes
-    store.dispatch(increment())
-    // Second action is ignored
-    store.dispatch(increment())
-
-    // One instance in progress, but not complete
-    expect(listenerCalls).toBe(1)
-    expect(workPerformed).toBe(0)
-
-    await delay(5)
-
-    // In-progress listener not done yet
-    store.dispatch(increment())
-
-    // No changes in status
-    expect(listenerCalls).toBe(1)
-    expect(workPerformed).toBe(0)
-
-    await delay(50)
-
-    // Work finished, should have resubscribed
-    expect(workPerformed).toBe(1)
-
-    // Listener is re-subscribed, will trigger again
-    store.dispatch(increment())
-
-    expect(listenerCalls).toBe(2)
-    expect(workPerformed).toBe(1)
-
-    await delay(50)
-
-    expect(workPerformed).toBe(2)
-  })
-
-  test('fork + join', async () => {
-    // fork starts a child job, join waits for the child to complete and return a value
-    // Ref: https://redux-saga.js.org/docs/api#forkfn-args
-    // Ref: https://redux-saga.js.org/docs/api#jointask
-
-    let childResult = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: async (_, listenerApi) => {
-        const childOutput = 42
-        // Spawn a child job and start it immediately
-        const result = await listenerApi.fork(async () => {
-          // Artificially wait a bit inside the child
-          await listenerApi.delay(5)
-          // Complete the child by returning an Outcome-wrapped value
-          return childOutput
-        }).result
-
-        // Unwrap the child result in the listener
-        if (result.status === 'ok') {
-          childResult = result.value
-        }
-      },
-    })
-
-    store.dispatch(increment())
-
-    await delay(10)
-    expect(childResult).toBe(42)
-  })
-
-  test('fork + cancel', async () => {
-    // fork starts a child job, cancel will raise an exception if the
-    // child is paused in the middle of an effect
-    // Ref: https://redux-saga.js.org/docs/api#forkfn-args
-
-    let childResult = 0
-    let listenerCompleted = false
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        // Spawn a child job and start it immediately
-        const forkedTask = listenerApi.fork(async () => {
-          // Artificially wait a bit inside the child
-          await listenerApi.delay(15)
-          // Complete the child by returning an Outcome-wrapped value
-          childResult = 42
-
-          return 0
-        })
-
-        await listenerApi.delay(5)
-        forkedTask.cancel()
-        listenerCompleted = true
-      },
-    })
-
-    // Starts listener, which starts child
-    store.dispatch(increment())
-
-    // Wait for child to have maybe completed
-    await delay(20)
-
-    // Listener finished, but the child was canceled and threw an exception, so it never finished
-    expect(listenerCompleted).toBe(true)
-    expect(childResult).toBe(0)
-  })
-
-  test('canceled', async () => {
-    // canceled allows checking if the current task was canceled
-    // Ref: https://redux-saga.js.org/docs/api#cancelled
-
-    let canceledAndCaught = false
-    let canceledCheck = false
-
-    startListening({
-      matcher: isAnyOf(increment, decrement, incrementByAmount),
-      effect: async (action, listenerApi) => {
-        if (increment.match(action)) {
-          // Have this branch wait around to be canceled by the other
-          try {
-            await listenerApi.delay(10)
-          } catch (err) {
-            // Can check cancelation based on the exception and its reason
-            if (err instanceof TaskAbortError) {
-              canceledAndCaught = true
-            }
-          }
-        } else if (incrementByAmount.match(action)) {
-          // do a non-cancelation-aware wait
-          await delay(15)
-          if (listenerApi.signal.aborted) {
-            canceledCheck = true
-          }
-        } else if (decrement.match(action)) {
-          listenerApi.cancelActiveListeners()
-        }
-      },
-    })
-
-    // Start first branch
-    store.dispatch(increment())
-    // Cancel first listener
-    store.dispatch(decrement())
-
-    // Have to wait for the delay to resolve
-    // TODO Can we make ``Job.delay()` be a race?
-    await delay(15)
-
-    expect(canceledAndCaught).toBe(true)
-
-    // Start second branch
-    store.dispatch(incrementByAmount(42))
-    // Cancel second listener, although it won't know about that until later
-    store.dispatch(decrement())
-
-    expect(canceledCheck).toBe(false)
-
-    await delay(20)
-
-    expect(canceledCheck).toBe(true)
-  })
-
-  test('long-running listener with immediate unsubscribe is cancelable', async () => {
-    let runCount = 0
-    let abortCount = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        runCount++
-
-        // Stop listening for this action
-        listenerApi.unsubscribe()
-
-        try {
-          // Wait indefinitely
-          await listenerApi.condition(() => false)
-        } catch (err) {
-          if (err instanceof TaskAbortError) {
-            abortCount++
-          }
-        }
-      },
-    })
-
-    // First action starts the listener, which unsubscribes
-    store.dispatch(increment())
-    expect(runCount).toBe(1)
-
-    // Verify that the first action unsubscribed the listener
-    store.dispatch(increment())
-    expect(runCount).toBe(1)
-
-    // Now call clearListeners, which should abort the running effect, even
-    // though the listener is no longer subscribed
-    listenerMiddleware.clearListeners()
-    await delay(0)
-
-    expect(abortCount).toBe(1)
-  })
-
-  test('long-running listener with unsubscribe race is cancelable', async () => {
-    let runCount = 0
-    let abortCount = 0
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        runCount++
-
-        if (runCount === 2) {
-          // On the second run, stop listening for this action
-          listenerApi.unsubscribe()
-          return
-        }
-
-        try {
-          // Wait indefinitely
-          await listenerApi.condition(() => false)
-        } catch (err) {
-          if (err instanceof TaskAbortError) {
-            abortCount++
-          }
-        }
-      },
-    })
-
-    // First action starts the hanging effect
-    store.dispatch(increment())
-    expect(runCount).toBe(1)
-
-    // Second action starts the fast effect, which unsubscribes
-    store.dispatch(increment())
-    expect(runCount).toBe(2)
-
-    // Third action should be a noop
-    store.dispatch(increment())
-    expect(runCount).toBe(2)
-
-    // The hanging effect should still be hanging
-    expect(abortCount).toBe(0)
-
-    // Now call clearListeners, which should abort the hanging effect, even
-    // though the listener is no longer subscribed
-    listenerMiddleware.clearListeners()
-    await delay(0)
-
-    expect(abortCount).toBe(1)
-  })
-
-  test('long-running listener with immediate unsubscribe and forked child is cancelable', async () => {
-    let outerAborted = false
-    let innerAborted = false
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        // Stop listening for this action
-        listenerApi.unsubscribe()
-
-        const pollingTask = listenerApi.fork(async (forkApi) => {
-          try {
-            // Cancellation-aware indefinite pause
-            await forkApi.pause(new Promise(() => {}))
-          } catch (err) {
-            if (err instanceof TaskAbortError) {
-              innerAborted = true
-            }
-          }
-        })
-
-        try {
-          // Wait indefinitely
-          await listenerApi.condition(() => false)
-          pollingTask.cancel()
-        } catch (err) {
-          if (err instanceof TaskAbortError) {
-            outerAborted = true
-          }
-        }
-      },
-    })
-
-    store.dispatch(increment())
-    await delay(0)
-
-    listenerMiddleware.clearListeners()
-    await delay(0)
-
-    expect(outerAborted).toBe(true)
-    expect(innerAborted).toBe(true)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/fork.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/fork.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,524 +1,0 @@
-import type { EnhancedStore } from '@reduxjs/toolkit'
-import { configureStore, createSlice, createAction } from '@reduxjs/toolkit'
-
-import type { PayloadAction } from '@reduxjs/toolkit'
-import type { ForkedTaskExecutor, TaskResult } from '../types'
-import { createListenerMiddleware, TaskAbortError } from '../index'
-import {
-  listenerCancelled,
-  listenerCompleted,
-  taskCancelled,
-  taskCompleted,
-} from '../exceptions'
-
-function delay(ms: number) {
-  return new Promise((resolve) => setTimeout(resolve, ms))
-}
-
-// @see https://deno.land/std@0.95.0/async/deferred.ts (MIT)
-export interface Deferred<T> extends Promise<T> {
-  resolve(value?: T | PromiseLike<T>): void
-  reject(reason?: any): void
-}
-
-/** Creates a Promise with the `reject` and `resolve` functions
- * placed as methods on the promise object itself. It allows you to do:
- *
- *     const p = deferred<number>();
- *     // ...
- *     p.resolve(42);
- */
-export function deferred<T>(): Deferred<T> {
-  let methods
-  const promise = new Promise<T>((resolve, reject): void => {
-    methods = { resolve, reject }
-  })
-  return Object.assign(promise, methods) as Deferred<T>
-}
-
-interface CounterSlice {
-  value: number
-}
-
-describe('fork', () => {
-  const counterSlice = createSlice({
-    name: 'counter',
-    initialState: { value: 0 } as CounterSlice,
-    reducers: {
-      increment(state) {
-        state.value += 1
-      },
-      decrement(state) {
-        state.value -= 1
-      },
-      // Use the PayloadAction type to declare the contents of `action.payload`
-      incrementByAmount: (state, action: PayloadAction<number>) => {
-        state.value += action.payload
-      },
-    },
-  })
-  const { increment, decrement, incrementByAmount } = counterSlice.actions
-  let listenerMiddleware = createListenerMiddleware()
-  let { middleware, startListening, stopListening } = listenerMiddleware
-  let store = configureStore({
-    reducer: counterSlice.reducer,
-    middleware: (gDM) => gDM().prepend(middleware),
-  })
-
-  beforeEach(() => {
-    listenerMiddleware = createListenerMiddleware()
-    middleware = listenerMiddleware.middleware
-    startListening = listenerMiddleware.startListening
-    stopListening = listenerMiddleware.stopListening
-    store = configureStore({
-      reducer: counterSlice.reducer,
-      middleware: (gDM) => gDM().prepend(middleware),
-    })
-  })
-
-  it('runs executors in the next microtask', async () => {
-    let hasRunSyncExector = false
-    let hasRunAsyncExecutor = false
-
-    startListening({
-      actionCreator: increment,
-      effect: async (_, listenerApi) => {
-        listenerApi.fork(() => {
-          hasRunSyncExector = true
-        })
-
-        listenerApi.fork(async () => {
-          hasRunAsyncExecutor = true
-        })
-      },
-    })
-
-    store.dispatch(increment())
-
-    expect(hasRunSyncExector).toBe(false)
-    expect(hasRunAsyncExecutor).toBe(false)
-
-    await Promise.resolve()
-
-    expect(hasRunSyncExector).toBe(true)
-    expect(hasRunAsyncExecutor).toBe(true)
-  })
-
-  test('forkedTask.result rejects TaskAbortError if listener is cancelled', async () => {
-    const deferredForkedTaskError = deferred()
-
-    startListening({
-      actionCreator: increment,
-      async effect(_, listenerApi) {
-        listenerApi.cancelActiveListeners()
-        listenerApi
-          .fork(async () => {
-            await delay(10)
-
-            throw new Error('unreachable code')
-          })
-          .result.then(
-            deferredForkedTaskError.resolve,
-            deferredForkedTaskError.resolve,
-          )
-      },
-    })
-
-    store.dispatch(increment())
-    store.dispatch(increment())
-
-    expect(await deferredForkedTaskError).toEqual(
-      new TaskAbortError(listenerCancelled),
-    )
-  })
-
-  it('synchronously throws TypeError error if the provided executor is not a function', () => {
-    const invalidExecutors = [null, {}, undefined, 1]
-
-    startListening({
-      predicate: () => true,
-      effect: async (_, listenerApi) => {
-        invalidExecutors.forEach((invalidExecutor) => {
-          let caughtError
-          try {
-            listenerApi.fork(invalidExecutor as any)
-          } catch (err) {
-            caughtError = err
-          }
-
-          expect(caughtError).toBeInstanceOf(TypeError)
-        })
-      },
-    })
-
-    store.dispatch(increment())
-
-    expect.assertions(invalidExecutors.length)
-  })
-
-  it('does not run an executor if the task is synchronously cancelled', async () => {
-    const storeStateAfter = deferred()
-
-    startListening({
-      actionCreator: increment,
-      effect: async (action, listenerApi) => {
-        const forkedTask = listenerApi.fork(() => {
-          listenerApi.dispatch(decrement())
-          listenerApi.dispatch(decrement())
-          listenerApi.dispatch(decrement())
-        })
-        forkedTask.cancel()
-
-        const result = await forkedTask.result
-        storeStateAfter.resolve(listenerApi.getState())
-      },
-    })
-    store.dispatch(increment())
-
-    await expect(storeStateAfter).resolves.toEqual({ value: 1 })
-  })
-
-  it.each<{
-    desc: string
-    executor: ForkedTaskExecutor<any>
-    cancelAfterMs?: number
-    expected: TaskResult<any>
-  }>([
-    {
-      desc: 'sync exec - success',
-      executor: () => 42,
-      expected: { status: 'ok', value: 42 },
-    },
-    {
-      desc: 'sync exec - error',
-      executor: () => {
-        throw new Error('2020')
-      },
-      expected: { status: 'rejected', error: new Error('2020') },
-    },
-    {
-      desc: 'sync exec - sync cancel',
-      executor: () => 42,
-      cancelAfterMs: -1,
-      expected: {
-        status: 'cancelled',
-        error: new TaskAbortError(taskCancelled),
-      },
-    },
-    {
-      desc: 'sync exec - async cancel',
-      executor: () => 42,
-      cancelAfterMs: 0,
-      expected: { status: 'ok', value: 42 },
-    },
-    {
-      desc: 'async exec - async cancel',
-      executor: async (forkApi) => {
-        await forkApi.delay(100)
-        throw new Error('2020')
-      },
-      cancelAfterMs: 10,
-      expected: {
-        status: 'cancelled',
-        error: new TaskAbortError(taskCancelled),
-      },
-    },
-    {
-      desc: 'async exec - success',
-      executor: async () => {
-        await delay(20)
-        return Promise.resolve(21)
-      },
-      expected: { status: 'ok', value: 21 },
-    },
-    {
-      desc: 'async exec - error',
-      executor: async () => {
-        await Promise.resolve()
-        throw new Error('2020')
-      },
-      expected: { status: 'rejected', error: new Error('2020') },
-    },
-    {
-      desc: 'async exec - success with forkApi.pause',
-      executor: async (forkApi) => {
-        return forkApi.pause(Promise.resolve(2))
-      },
-      expected: { status: 'ok', value: 2 },
-    },
-    {
-      desc: 'async exec - error with forkApi.pause',
-      executor: async (forkApi) => {
-        return forkApi.pause(Promise.reject(22))
-      },
-      expected: { status: 'rejected', error: 22 },
-    },
-    {
-      desc: 'async exec - success with forkApi.delay',
-      executor: async (forkApi) => {
-        await forkApi.delay(10)
-        return 5
-      },
-      expected: { status: 'ok', value: 5 },
-    },
-  ])('$desc', async ({ executor, expected, cancelAfterMs }) => {
-    let deferredResult = deferred()
-    let forkedTask: any = {}
-
-    startListening({
-      predicate: () => true,
-      effect: async (_, listenerApi) => {
-        forkedTask = listenerApi.fork(executor)
-
-        deferredResult.resolve(await forkedTask.result)
-      },
-    })
-
-    store.dispatch({ type: '' })
-
-    if (typeof cancelAfterMs === 'number') {
-      if (cancelAfterMs < 0) {
-        forkedTask.cancel()
-      } else {
-        await delay(cancelAfterMs)
-        forkedTask.cancel()
-      }
-    }
-
-    const result = await deferredResult
-
-    expect(result).toEqual(expected)
-  })
-
-  describe('forkAPI', () => {
-    test('forkApi.delay rejects as soon as the task is cancelled', async () => {
-      let deferredResult = deferred()
-
-      startListening({
-        actionCreator: increment,
-        effect: async (_, listenerApi) => {
-          const forkedTask = listenerApi.fork(async (forkApi) => {
-            await forkApi.delay(100)
-
-            return 4
-          })
-
-          await listenerApi.delay(10)
-          forkedTask.cancel()
-          deferredResult.resolve(await forkedTask.result)
-        },
-      })
-
-      store.dispatch(increment())
-
-      expect(await deferredResult).toEqual({
-        status: 'cancelled',
-        error: new TaskAbortError(taskCancelled),
-      })
-    })
-
-    test('forkApi.delay rejects as soon as the parent listener is cancelled', async () => {
-      let deferredResult = deferred()
-
-      startListening({
-        actionCreator: increment,
-        effect: async (_, listenerApi) => {
-          listenerApi.cancelActiveListeners()
-          await listenerApi.fork(async (forkApi) => {
-            await forkApi
-              .delay(100)
-              .then(deferredResult.resolve, deferredResult.resolve)
-
-            return 4
-          }).result
-
-          deferredResult.resolve(new Error('unreachable'))
-        },
-      })
-
-      store.dispatch(increment())
-
-      await Promise.resolve()
-
-      store.dispatch(increment())
-      expect(await deferredResult).toEqual(
-        new TaskAbortError(listenerCancelled),
-      )
-    })
-
-    it.each([
-      {
-        autoJoin: true,
-        expectedAbortReason: taskCompleted,
-        cancelListener: false,
-      },
-      {
-        autoJoin: false,
-        expectedAbortReason: listenerCompleted,
-        cancelListener: false,
-      },
-      {
-        autoJoin: true,
-        expectedAbortReason: listenerCancelled,
-        cancelListener: true,
-      },
-      {
-        autoJoin: false,
-        expectedAbortReason: listenerCancelled,
-        cancelListener: true,
-      },
-    ])(
-      'signal is $expectedAbortReason when autoJoin: $autoJoin, cancelListener: $cancelListener',
-      async ({ autoJoin, cancelListener, expectedAbortReason }) => {
-        let deferredResult = deferred()
-
-        const unsubscribe = startListening({
-          actionCreator: increment,
-          async effect(_, listenerApi) {
-            listenerApi.fork(
-              async (forkApi) => {
-                forkApi.signal.addEventListener('abort', () => {
-                  deferredResult.resolve(forkApi.signal.reason)
-                })
-
-                await forkApi.delay(10)
-              },
-              { autoJoin },
-            )
-          },
-        })
-
-        store.dispatch(increment())
-
-        // let task start
-        await Promise.resolve()
-
-        if (cancelListener) unsubscribe({ cancelActive: true })
-
-        expect(await deferredResult).toBe(expectedAbortReason)
-      },
-    )
-
-    test('fork.delay does not trigger unhandledRejections for completed or cancelled tasks', async () => {
-      let deferredCompletedEvt = deferred()
-      let deferredCancelledEvt = deferred()
-
-      // Unfortunately we cannot test declaratively unhandleRejections in jest: https://github.com/facebook/jest/issues/5620
-      // This test just fails if an `unhandledRejection` occurs.
-      startListening({
-        actionCreator: increment,
-        effect: async (_, listenerApi) => {
-          const completedTask = listenerApi.fork(async (forkApi) => {
-            forkApi.signal.addEventListener(
-              'abort',
-              deferredCompletedEvt.resolve,
-              { once: true },
-            )
-            forkApi.delay(100) // missing await
-
-            return 4
-          })
-
-          deferredCompletedEvt.resolve(await completedTask.result)
-
-          const godotPauseTrigger = deferred()
-
-          const cancelledTask = listenerApi.fork(async (forkApi) => {
-            forkApi.signal.addEventListener(
-              'abort',
-              deferredCompletedEvt.resolve,
-              { once: true },
-            )
-            forkApi.delay(1_000) // missing await
-            await forkApi.pause(godotPauseTrigger)
-            return 4
-          })
-
-          await Promise.resolve()
-          cancelledTask.cancel()
-          deferredCancelledEvt.resolve(await cancelledTask.result)
-        },
-      })
-
-      store.dispatch(increment())
-      expect(await deferredCompletedEvt).toBeDefined()
-      expect(await deferredCancelledEvt).toBeDefined()
-    })
-  })
-
-  test('forkApi.pause rejects if task is cancelled', async () => {
-    let deferredResult = deferred()
-    startListening({
-      actionCreator: increment,
-      effect: async (_, listenerApi) => {
-        const forkedTask = listenerApi.fork(async (forkApi) => {
-          await forkApi.pause(delay(1_000))
-
-          return 4
-        })
-
-        await Promise.resolve()
-        forkedTask.cancel()
-        deferredResult.resolve(await forkedTask.result)
-      },
-    })
-
-    store.dispatch(increment())
-
-    expect(await deferredResult).toEqual({
-      status: 'cancelled',
-      error: new TaskAbortError(taskCancelled),
-    })
-  })
-
-  test('forkApi.pause rejects as soon as the parent listener is cancelled', async () => {
-    let deferredResult = deferred()
-
-    startListening({
-      actionCreator: increment,
-      effect: async (_, listenerApi) => {
-        listenerApi.cancelActiveListeners()
-        const forkedTask = listenerApi.fork(async (forkApi) => {
-          await forkApi
-            .pause(delay(100))
-            .then(deferredResult.resolve, deferredResult.resolve)
-
-          return 4
-        })
-
-        await forkedTask.result
-        deferredResult.resolve(new Error('unreachable'))
-      },
-    })
-
-    store.dispatch(increment())
-
-    await Promise.resolve()
-
-    store.dispatch(increment())
-    expect(await deferredResult).toEqual(new TaskAbortError(listenerCancelled))
-  })
-
-  test('forkApi.pause rejects if listener is cancelled', async () => {
-    const incrementByInListener = createAction<number>('incrementByInListener')
-
-    startListening({
-      actionCreator: incrementByInListener,
-      async effect({ payload: amountToIncrement }, listenerApi) {
-        listenerApi.cancelActiveListeners()
-        await listenerApi.fork(async (forkApi) => {
-          await forkApi.pause(delay(10))
-          listenerApi.dispatch(incrementByAmount(amountToIncrement))
-        }).result
-        listenerApi.dispatch(incrementByAmount(2 * amountToIncrement))
-      },
-    })
-
-    store.dispatch(incrementByInListener(10))
-    store.dispatch(incrementByInListener(100))
-
-    await delay(50)
-
-    expect(store.getState().value).toEqual(300)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,540 +1,0 @@
-import { createListenerEntry } from '@internal/listenerMiddleware'
-import type {
-  Action,
-  PayloadAction,
-  TypedAddListener,
-  TypedStartListening,
-  UnknownAction,
-  UnsubscribeListener,
-} from '@reduxjs/toolkit'
-import {
-  addListener,
-  configureStore,
-  createAction,
-  createListenerMiddleware,
-  createSlice,
-  isFluxStandardAction,
-} from '@reduxjs/toolkit'
-
-const listenerMiddleware = createListenerMiddleware()
-const { startListening } = listenerMiddleware
-
-const addTypedListenerAction = addListener as TypedAddListener<CounterState>
-
-interface CounterState {
-  value: number
-}
-
-const testAction1 = createAction<string>('testAction1')
-const testAction2 = createAction<string>('testAction2')
-
-const counterSlice = createSlice({
-  name: 'counter',
-  initialState: { value: 0 } as CounterState,
-  reducers: {
-    increment(state) {
-      state.value += 1
-    },
-    decrement(state) {
-      state.value -= 1
-    },
-    // Use the PayloadAction type to declare the contents of `action.payload`
-    incrementByAmount: (state, action: PayloadAction<number>) => {
-      state.value += action.payload
-    },
-  },
-})
-
-const { increment, decrement, incrementByAmount } = counterSlice.actions
-
-describe('type tests', () => {
-  const store = configureStore({
-    reducer: () => 42,
-    middleware: (gDM) => gDM().prepend(createListenerMiddleware().middleware),
-  })
-
-  test('Allows passing an extra argument on middleware creation', () => {
-    const originalExtra = 42
-    const listenerMiddleware = createListenerMiddleware({
-      extra: originalExtra,
-    })
-    const store = configureStore({
-      reducer: counterSlice.reducer,
-      middleware: (gDM) => gDM().prepend(listenerMiddleware.middleware),
-    })
-
-    let foundExtra: number | null = null
-
-    const typedAddListener =
-      listenerMiddleware.startListening as TypedStartListening<
-        CounterState,
-        typeof store.dispatch,
-        typeof originalExtra
-      >
-
-    typedAddListener({
-      matcher: (action): action is Action => true,
-      effect: (action, listenerApi) => {
-        foundExtra = listenerApi.extra
-
-        expectTypeOf(listenerApi.extra).toMatchTypeOf(originalExtra)
-      },
-    })
-
-    store.dispatch(testAction1('a'))
-    expect(foundExtra).toBe(originalExtra)
-  })
-
-  test('unsubscribing via callback from dispatch', () => {
-    const unsubscribe = store.dispatch(
-      addListener({
-        actionCreator: testAction1,
-        effect: () => {},
-      }),
-    )
-
-    expectTypeOf(unsubscribe).toEqualTypeOf<UnsubscribeListener>()
-
-    store.dispatch(testAction1('a'))
-
-    unsubscribe()
-    store.dispatch(testAction2('b'))
-    store.dispatch(testAction1('c'))
-  })
-
-  test('take resolves to `[A, CurrentState, PreviousState] | null` if a possibly undefined timeout parameter is provided', () => {
-    type ExpectedTakeResultType =
-      | readonly [ReturnType<typeof increment>, CounterState, CounterState]
-      | null
-
-    let timeout: number | undefined = undefined
-    let done = false
-
-    const startAppListening =
-      startListening as TypedStartListening<CounterState>
-    startAppListening({
-      predicate: incrementByAmount.match,
-      effect: async (_, listenerApi) => {
-        let takeResult = await listenerApi.take(increment.match, timeout)
-
-        timeout = 1
-        takeResult = await listenerApi.take(increment.match, timeout)
-        expect(takeResult).toBeNull()
-
-        expectTypeOf(takeResult).toMatchTypeOf<ExpectedTakeResultType>()
-
-        done = true
-      },
-    })
-
-    expect(done).toBe(true)
-  })
-
-  test('State args default to unknown', () => {
-    createListenerEntry({
-      predicate: (
-        action,
-        currentState,
-        previousState,
-      ): action is UnknownAction => {
-        expectTypeOf(currentState).toBeUnknown()
-
-        expectTypeOf(previousState).toBeUnknown()
-
-        return true
-      },
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toBeUnknown()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = getState()
-
-          expectTypeOf(thunkState).toBeUnknown()
-        })
-      },
-    })
-
-    startListening({
-      predicate: (
-        action,
-        currentState,
-        previousState,
-      ): action is UnknownAction => {
-        expectTypeOf(currentState).toBeUnknown()
-
-        expectTypeOf(previousState).toBeUnknown()
-
-        return true
-      },
-      effect: (action, listenerApi) => {},
-    })
-
-    startListening({
-      matcher: increment.match,
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toBeUnknown()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = getState()
-
-          expectTypeOf(thunkState).toBeUnknown()
-        })
-      },
-    })
-
-    store.dispatch(
-      addListener({
-        predicate: (
-          action,
-          currentState,
-          previousState,
-        ): action is UnknownAction => {
-          expectTypeOf(currentState).toBeUnknown()
-
-          expectTypeOf(previousState).toBeUnknown()
-
-          return true
-        },
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toBeUnknown()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = getState()
-
-            expectTypeOf(thunkState).toBeUnknown()
-          })
-        },
-      }),
-    )
-
-    store.dispatch(
-      addListener({
-        matcher: increment.match,
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toBeUnknown()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = getState()
-
-            expectTypeOf(thunkState).toBeUnknown()
-          })
-        },
-      }),
-    )
-  })
-
-  test('Action type is inferred from args', () => {
-    startListening({
-      type: 'abcd',
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toEqualTypeOf<{ type: 'abcd' }>()
-      },
-    })
-
-    startListening({
-      actionCreator: incrementByAmount,
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toMatchTypeOf<PayloadAction<number>>()
-      },
-    })
-
-    startListening({
-      matcher: incrementByAmount.match,
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toMatchTypeOf<PayloadAction<number>>()
-      },
-    })
-
-    startListening({
-      predicate: (
-        action,
-        currentState,
-        previousState,
-      ): action is PayloadAction<number> => {
-        return (
-          isFluxStandardAction(action) && typeof action.payload === 'boolean'
-        )
-      },
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toEqualTypeOf<PayloadAction<number>>()
-      },
-    })
-
-    startListening({
-      predicate: (action, currentState) => {
-        return (
-          isFluxStandardAction(action) && typeof action.payload === 'number'
-        )
-      },
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toEqualTypeOf<UnknownAction>()
-      },
-    })
-
-    store.dispatch(
-      addListener({
-        type: 'abcd',
-        effect: (action, listenerApi) => {
-          expectTypeOf(action).toEqualTypeOf<{ type: 'abcd' }>()
-        },
-      }),
-    )
-
-    store.dispatch(
-      addListener({
-        actionCreator: incrementByAmount,
-        effect: (action, listenerApi) => {
-          expectTypeOf(action).toMatchTypeOf<PayloadAction<number>>()
-        },
-      }),
-    )
-
-    store.dispatch(
-      addListener({
-        matcher: incrementByAmount.match,
-        effect: (action, listenerApi) => {
-          expectTypeOf(action).toMatchTypeOf<PayloadAction<number>>()
-        },
-      }),
-    )
-  })
-
-  test('Can create a pre-typed middleware', () => {
-    const typedMiddleware = createListenerMiddleware<CounterState>()
-
-    typedMiddleware.startListening({
-      predicate: (
-        action,
-        currentState,
-        previousState,
-      ): action is UnknownAction => {
-        expectTypeOf(currentState).not.toBeAny()
-
-        expectTypeOf(previousState).not.toBeAny()
-
-        expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-        expectTypeOf(previousState).toEqualTypeOf<CounterState>()
-
-        return true
-      },
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = listenerApi.getState()
-
-          expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-        })
-      },
-    })
-
-    // Can pass a predicate function with fewer args
-    typedMiddleware.startListening({
-      predicate: (action, currentState): action is PayloadAction<number> => {
-        expectTypeOf(currentState).not.toBeAny()
-
-        expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-        return true
-      },
-      effect: (action, listenerApi) => {
-        expectTypeOf(action).toEqualTypeOf<PayloadAction<number>>()
-
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = listenerApi.getState()
-
-          expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-        })
-      },
-    })
-
-    typedMiddleware.startListening({
-      actionCreator: incrementByAmount,
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = listenerApi.getState()
-
-          expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-        })
-      },
-    })
-
-    store.dispatch(
-      addTypedListenerAction({
-        predicate: (
-          action,
-          currentState,
-          previousState,
-        ): action is ReturnType<typeof incrementByAmount> => {
-          expectTypeOf(currentState).not.toBeAny()
-
-          expectTypeOf(previousState).not.toBeAny()
-
-          expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-          expectTypeOf(previousState).toEqualTypeOf<CounterState>()
-
-          return true
-        },
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = listenerApi.getState()
-
-            expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-          })
-        },
-      }),
-    )
-
-    store.dispatch(
-      addTypedListenerAction({
-        predicate: (
-          action,
-          currentState,
-          previousState,
-        ): action is UnknownAction => {
-          expectTypeOf(currentState).not.toBeAny()
-
-          expectTypeOf(previousState).not.toBeAny()
-
-          expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-          expectTypeOf(previousState).toEqualTypeOf<CounterState>()
-
-          return true
-        },
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = listenerApi.getState()
-
-            expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-          })
-        },
-      }),
-    )
-  })
-
-  test('Can create pre-typed versions of startListening and addListener', () => {
-    const typedAddListener = startListening as TypedStartListening<CounterState>
-    const typedAddListenerAction = addListener as TypedAddListener<CounterState>
-
-    typedAddListener({
-      predicate: (
-        action,
-        currentState,
-        previousState,
-      ): action is UnknownAction => {
-        expectTypeOf(currentState).not.toBeAny()
-
-        expectTypeOf(previousState).not.toBeAny()
-
-        expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-        expectTypeOf(previousState).toEqualTypeOf<CounterState>()
-
-        return true
-      },
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = listenerApi.getState()
-
-          expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-        })
-      },
-    })
-
-    typedAddListener({
-      matcher: incrementByAmount.match,
-      effect: (action, listenerApi) => {
-        const listenerState = listenerApi.getState()
-
-        expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-        listenerApi.dispatch((dispatch, getState) => {
-          const thunkState = listenerApi.getState()
-
-          expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-        })
-      },
-    })
-
-    store.dispatch(
-      typedAddListenerAction({
-        predicate: (
-          action,
-          currentState,
-          previousState,
-        ): action is UnknownAction => {
-          expectTypeOf(currentState).not.toBeAny()
-
-          expectTypeOf(previousState).not.toBeAny()
-
-          expectTypeOf(currentState).toEqualTypeOf<CounterState>()
-
-          expectTypeOf(previousState).toEqualTypeOf<CounterState>()
-
-          return true
-        },
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = listenerApi.getState()
-
-            expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-          })
-        },
-      }),
-    )
-
-    store.dispatch(
-      typedAddListenerAction({
-        matcher: incrementByAmount.match,
-        effect: (action, listenerApi) => {
-          const listenerState = listenerApi.getState()
-
-          expectTypeOf(listenerState).toEqualTypeOf<CounterState>()
-
-          listenerApi.dispatch((dispatch, getState) => {
-            const thunkState = listenerApi.getState()
-
-            expectTypeOf(thunkState).toEqualTypeOf<CounterState>()
-          })
-        },
-      }),
-    )
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1371 +1,0 @@
-import {
-  listenerCancelled,
-  listenerCompleted,
-} from '@internal/listenerMiddleware/exceptions'
-import type { AddListenerOverloads } from '@internal/listenerMiddleware/types'
-import { noop } from '@internal/listenerMiddleware/utils'
-import type {
-  Action,
-  ListenerEffect,
-  ListenerEffectAPI,
-  PayloadAction,
-  TypedRemoveListener,
-  TypedStartListening,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import {
-  TaskAbortError,
-  addListener,
-  clearAllListeners,
-  configureStore,
-  createAction,
-  createListenerMiddleware,
-  createSlice,
-  isAnyOf,
-  removeListener,
-} from '@reduxjs/toolkit'
-import type { Mock } from 'vitest'
-
-const middlewareApi = {
-  getState: expect.any(Function),
-  getOriginalState: expect.any(Function),
-  condition: expect.any(Function),
-  extra: undefined,
-  take: expect.any(Function),
-  signal: expect.any(Object),
-  fork: expect.any(Function),
-  delay: expect.any(Function),
-  pause: expect.any(Function),
-  dispatch: expect.any(Function),
-  unsubscribe: expect.any(Function),
-  subscribe: expect.any(Function),
-  cancelActiveListeners: expect.any(Function),
-  cancel: expect.any(Function),
-  throwIfCancelled: expect.any(Function),
-}
-
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-export interface Deferred<T> extends Promise<T> {
-  resolve(value?: T | PromiseLike<T>): void
-  // deno-lint-ignore no-explicit-any
-  reject(reason?: any): void
-}
-
-/** Creates a Promise with the `reject` and `resolve` functions
- * placed as methods on the promise object itself. It allows you to do:
- *
- *     const p = deferred<number>();
- *     // ...
- *     p.resolve(42);
- */
-export function deferred<T>(): Deferred<T> {
-  let methods
-  const promise = new Promise<T>((resolve, reject): void => {
-    methods = { resolve, reject }
-  })
-  return Object.assign(promise, methods) as Deferred<T>
-}
-
-describe('createListenerMiddleware', () => {
-  let store = configureStore({
-    reducer: () => 42,
-    middleware: (gDM) => gDM().prepend(createListenerMiddleware().middleware),
-  })
-
-  interface CounterState {
-    value: number
-  }
-
-  const counterSlice = createSlice({
-    name: 'counter',
-    initialState: { value: 0 } as CounterState,
-    reducers: {
-      increment(state) {
-        state.value += 1
-      },
-      decrement(state) {
-        state.value -= 1
-      },
-      // Use the PayloadAction type to declare the contents of `action.payload`
-      incrementByAmount: (state, action: PayloadAction<number>) => {
-        state.value += action.payload
-      },
-    },
-  })
-  const { increment, decrement, incrementByAmount } = counterSlice.actions
-
-  function delay(ms: number) {
-    return new Promise((resolve) => setTimeout(resolve, ms))
-  }
-
-  let reducer: Mock
-  let listenerMiddleware = createListenerMiddleware()
-  let { middleware, startListening, stopListening, clearListeners } =
-    listenerMiddleware
-  const removeTypedListenerAction =
-    removeListener as TypedRemoveListener<CounterState>
-
-  const testAction1 = createAction<string>('testAction1')
-  type TestAction1 = ReturnType<typeof testAction1>
-  const testAction2 = createAction<string>('testAction2')
-  type TestAction2 = ReturnType<typeof testAction2>
-  const testAction3 = createAction<string>('testAction3')
-
-  vi.spyOn(console, 'error').mockImplementation(noop)
-
-  beforeEach(() => {
-    listenerMiddleware = createListenerMiddleware()
-    middleware = listenerMiddleware.middleware
-    startListening = listenerMiddleware.startListening
-    stopListening = listenerMiddleware.stopListening
-    clearListeners = listenerMiddleware.clearListeners
-    reducer = vi.fn(() => ({}))
-    store = configureStore({
-      reducer,
-      middleware: (gDM) => gDM().prepend(middleware),
-    })
-  })
-
-  afterEach(() => {
-    vi.clearAllMocks()
-  })
-
-  afterAll(() => {
-    vi.restoreAllMocks()
-  })
-
-  describe('Middleware setup', () => {
-    test('Allows passing an extra argument on middleware creation', () => {
-      const originalExtra = 42
-      const listenerMiddleware = createListenerMiddleware({
-        extra: originalExtra,
-      })
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(listenerMiddleware.middleware),
-      })
-
-      let foundExtra: number | null = null
-
-      const typedAddListener =
-        listenerMiddleware.startListening as TypedStartListening<
-          CounterState,
-          typeof store.dispatch,
-          typeof originalExtra
-        >
-
-      typedAddListener({
-        matcher: (action): action is Action => true,
-        effect: (action, listenerApi) => {
-          foundExtra = listenerApi.extra
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      expect(foundExtra).toBe(originalExtra)
-    })
-
-    test('Passes through if there are no listeners', () => {
-      const originalAction = testAction1('a')
-      const resultAction = store.dispatch(originalAction)
-      expect(resultAction).toBe(originalAction)
-    })
-  })
-
-  describe('Subscription and unsubscription', () => {
-    test('directly subscribing', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction1('c'), middlewareApi],
-      ])
-    })
-
-    test('stopListening returns true if an entry has been unsubscribed, false otherwise', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      expect(stopListening({ actionCreator: testAction2, effect })).toBe(false)
-      expect(stopListening({ actionCreator: testAction1, effect })).toBe(true)
-    })
-
-    test('dispatch(removeListener({...})) returns true if an entry has been unsubscribed, false otherwise', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      expect(
-        store.dispatch(
-          removeTypedListenerAction({
-            actionCreator: testAction2,
-            effect,
-          }),
-        ),
-      ).toBe(false)
-      expect(
-        store.dispatch(
-          removeTypedListenerAction({
-            actionCreator: testAction1,
-            effect,
-          }),
-        ),
-      ).toBe(true)
-    })
-
-    test('can subscribe with a string action type', () => {
-      const effect = vi.fn((_: UnknownAction) => {})
-
-      store.dispatch(
-        addListener({
-          type: testAction2.type,
-          effect,
-        }),
-      )
-
-      store.dispatch(testAction2('b'))
-      expect(effect.mock.calls).toEqual([[testAction2('b'), middlewareApi]])
-
-      store.dispatch(removeListener({ type: testAction2.type, effect }))
-
-      store.dispatch(testAction2('b'))
-      expect(effect.mock.calls).toEqual([[testAction2('b'), middlewareApi]])
-    })
-
-    test('can subscribe with a matcher function', () => {
-      const effect = vi.fn((_: UnknownAction) => {})
-
-      const isAction1Or2 = isAnyOf(testAction1, testAction2)
-
-      const unsubscribe = startListening({
-        matcher: isAction1Or2,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction3('c'))
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction2('b'), middlewareApi],
-      ])
-
-      unsubscribe()
-
-      store.dispatch(testAction2('b'))
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction2('b'), middlewareApi],
-      ])
-    })
-
-    test('Can subscribe with an action predicate function', () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let listener1Calls = 0
-
-      startListening({
-        predicate: (action, state) => {
-          return (state as CounterState).value > 1
-        },
-        effect: () => {
-          listener1Calls++
-        },
-      })
-
-      let listener2Calls = 0
-
-      startListening({
-        predicate: (action, state, prevState) => {
-          return (
-            (state as CounterState).value > 1 &&
-            (prevState as CounterState).value % 2 === 0
-          )
-        },
-        effect: () => {
-          listener2Calls++
-        },
-      })
-
-      store.dispatch(increment())
-      store.dispatch(increment())
-      store.dispatch(increment())
-      store.dispatch(increment())
-
-      expect(listener1Calls).toBe(3)
-      expect(listener2Calls).toBe(1)
-    })
-
-    test('subscribing with the same listener will not make it trigger twice (like EventTarget.addEventListener())', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction1('c'), middlewareApi],
-      ])
-    })
-
-    test('subscribing with the same effect but different predicate is allowed', () => {
-      const effect = vi.fn((_: TestAction1 | TestAction2) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-      startListening({
-        actionCreator: testAction2,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction2('b'))
-
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction2('b'), middlewareApi],
-      ])
-    })
-
-    test('unsubscribing via callback', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      const unsubscribe = startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      unsubscribe()
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([[testAction1('a'), middlewareApi]])
-    })
-
-    test('directly unsubscribing', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-
-      stopListening({ actionCreator: testAction1, effect })
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([[testAction1('a'), middlewareApi]])
-    })
-
-    test('unsubscribing without any subscriptions does not trigger an error', () => {
-      stopListening({ matcher: testAction1.match, effect: noop })
-    })
-
-    test('subscribing via action', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      store.dispatch(
-        addListener({
-          actionCreator: testAction1,
-          effect,
-        }),
-      )
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction1('c'), middlewareApi],
-      ])
-    })
-
-    test('unsubscribing via callback from dispatch', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      const unsubscribe = store.dispatch(
-        addListener({
-          actionCreator: testAction1,
-          effect,
-        }),
-      )
-
-      store.dispatch(testAction1('a'))
-
-      unsubscribe()
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([[testAction1('a'), middlewareApi]])
-    })
-
-    test('unsubscribing via action', () => {
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-
-      store.dispatch(removeListener({ actionCreator: testAction1, effect }))
-      store.dispatch(testAction2('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([[testAction1('a'), middlewareApi]])
-    })
-
-    test('can cancel an active listener when unsubscribing directly', async () => {
-      let wasCancelled = false
-      const unsubscribe = startListening({
-        actionCreator: testAction1,
-        effect: async (action, listenerApi) => {
-          try {
-            await listenerApi.condition(testAction2.match)
-          } catch (err) {
-            if (err instanceof TaskAbortError) {
-              wasCancelled = true
-            }
-          }
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      unsubscribe({ cancelActive: true })
-      expect(wasCancelled).toBe(false)
-      await delay(10)
-      expect(wasCancelled).toBe(true)
-    })
-
-    test('can cancel an active listener when unsubscribing via stopListening', async () => {
-      let wasCancelled = false
-      const effect = async (action: any, listenerApi: any) => {
-        try {
-          await listenerApi.condition(testAction2.match)
-        } catch (err) {
-          if (err instanceof TaskAbortError) {
-            wasCancelled = true
-          }
-        }
-      }
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      stopListening({ actionCreator: testAction1, effect, cancelActive: true })
-      expect(wasCancelled).toBe(false)
-      await delay(10)
-      expect(wasCancelled).toBe(true)
-    })
-
-    test('can cancel an active listener when unsubscribing via removeListener', async () => {
-      let wasCancelled = false
-      const effect = async (action: any, listenerApi: any) => {
-        try {
-          await listenerApi.condition(testAction2.match)
-        } catch (err) {
-          if (err instanceof TaskAbortError) {
-            wasCancelled = true
-          }
-        }
-      }
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(
-        removeListener({
-          actionCreator: testAction1,
-          effect,
-          cancelActive: true,
-        }),
-      )
-      expect(wasCancelled).toBe(false)
-      await delay(10)
-      expect(wasCancelled).toBe(true)
-    })
-
-    const addListenerOptions: [
-      string,
-      Omit<
-        AddListenerOverloads<
-          () => void,
-          typeof store.getState,
-          typeof store.dispatch
-        >,
-        'effect' | 'withTypes'
-      >,
-    ][] = [
-      ['predicate', { predicate: () => true }],
-      ['actionCreator', { actionCreator: testAction1 }],
-      ['matcher', { matcher: isAnyOf(testAction1, testAction2) }],
-      ['type', { type: testAction1.type }],
-    ]
-
-    test.each(addListenerOptions)(
-      'add and remove listener with "%s" param correctly',
-      (_, params) => {
-        const effect: ListenerEffect<
-          UnknownAction,
-          typeof store.getState,
-          typeof store.dispatch
-        > = vi.fn()
-
-        startListening({ ...params, effect } as any)
-
-        store.dispatch(testAction1('a'))
-        expect(effect).toBeCalledTimes(1)
-
-        stopListening({ ...params, effect } as any)
-
-        store.dispatch(testAction1('b'))
-        expect(effect).toBeCalledTimes(1)
-      },
-    )
-
-    const unforwardedActions: [string, UnknownAction][] = [
-      [
-        'addListener',
-        addListener({ actionCreator: testAction1, effect: noop }),
-      ],
-      [
-        'removeListener',
-        removeListener({ actionCreator: testAction1, effect: noop }),
-      ],
-    ]
-    test.each(unforwardedActions)(
-      '"%s" is not forwarded to the reducer',
-      (_, action) => {
-        reducer.mockClear()
-
-        store.dispatch(testAction1('a'))
-        store.dispatch(action)
-        store.dispatch(testAction2('b'))
-
-        expect(reducer.mock.calls).toEqual([
-          [{}, testAction1('a')],
-          [{}, testAction2('b')],
-        ])
-      },
-    )
-
-    test('listenerApi.signal has correct reason when listener is cancelled or completes', async () => {
-      const notifyDeferred = createAction<Deferred<string>>('notify-deferred')
-
-      startListening({
-        actionCreator: notifyDeferred,
-        async effect({ payload }, { signal, cancelActiveListeners, delay }) {
-          signal.addEventListener(
-            'abort',
-            () => {
-              payload.resolve(signal.reason)
-            },
-            { once: true },
-          )
-
-          cancelActiveListeners()
-          delay(10)
-        },
-      })
-
-      const deferredCancelledSignalReason = store.dispatch(
-        notifyDeferred(deferred<string>()),
-      ).payload
-      const deferredCompletedSignalReason = store.dispatch(
-        notifyDeferred(deferred<string>()),
-      ).payload
-
-      expect(await deferredCancelledSignalReason).toBe(listenerCancelled)
-      expect(await deferredCompletedSignalReason).toBe(listenerCompleted)
-    })
-
-    test('can self-cancel via middleware api', async () => {
-      const notifyDeferred = createAction<Deferred<string>>('notify-deferred')
-
-      startListening({
-        actionCreator: notifyDeferred,
-        effect: async ({ payload }, { signal, cancel, delay }) => {
-          signal.addEventListener(
-            'abort',
-            () => {
-              payload.resolve(signal.reason)
-            },
-            { once: true },
-          )
-
-          cancel()
-        },
-      })
-
-      const deferredCancelledSignalReason = store.dispatch(
-        notifyDeferred(deferred<string>()),
-      ).payload
-
-      expect(await deferredCancelledSignalReason).toBe(listenerCancelled)
-    })
-
-    test('Can easily check if the listener has been cancelled', async () => {
-      const pauseDeferred = deferred<void>()
-
-      let listenerCancelled = false
-      let listenerStarted = false
-      let listenerCompleted = false
-      let cancelListener: () => void = () => {}
-      let error: TaskAbortError | undefined = undefined
-
-      startListening({
-        actionCreator: testAction1,
-        effect: async ({ payload }, { throwIfCancelled, cancel }) => {
-          cancelListener = cancel
-          try {
-            listenerStarted = true
-            throwIfCancelled()
-            await pauseDeferred
-
-            throwIfCancelled()
-            listenerCompleted = true
-          } catch (err) {
-            if (err instanceof TaskAbortError) {
-              listenerCancelled = true
-              error = err
-            }
-          }
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      expect(listenerStarted).toBe(true)
-      expect(listenerCompleted).toBe(false)
-      expect(listenerCancelled).toBe(false)
-
-      // Cancel it while the listener is paused at a non-cancel-aware promise
-      cancelListener()
-      pauseDeferred.resolve()
-
-      await delay(10)
-      expect(listenerCompleted).toBe(false)
-      expect(listenerCancelled).toBe(true)
-      expect((error as any)?.message).toBe(
-        'task cancelled (reason: listener-cancelled)',
-      )
-    })
-
-    test('can unsubscribe via middleware api', () => {
-      const effect = vi.fn(
-        (action: TestAction1, api: ListenerEffectAPI<any, any>) => {
-          if (action.payload === 'b') {
-            api.unsubscribe()
-          }
-        },
-      )
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(testAction1('b'))
-      store.dispatch(testAction1('c'))
-
-      expect(effect.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-        [testAction1('b'), middlewareApi],
-      ])
-    })
-
-    test('Can re-subscribe via middleware api', async () => {
-      let numListenerRuns = 0
-      startListening({
-        actionCreator: testAction1,
-        effect: async (action, listenerApi) => {
-          numListenerRuns++
-
-          listenerApi.unsubscribe()
-
-          await listenerApi.condition(testAction2.match)
-
-          listenerApi.subscribe()
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      expect(numListenerRuns).toBe(1)
-
-      store.dispatch(testAction1('a'))
-      expect(numListenerRuns).toBe(1)
-
-      store.dispatch(testAction2('b'))
-      expect(numListenerRuns).toBe(1)
-
-      await delay(5)
-
-      store.dispatch(testAction1('b'))
-      expect(numListenerRuns).toBe(2)
-    })
-  })
-
-  describe('clear listeners', () => {
-    test('dispatch(clearListenerAction()) cancels running listeners and removes all subscriptions', async () => {
-      const listener1Test = deferred()
-      let listener1Calls = 0
-      let listener2Calls = 0
-      let listener3Calls = 0
-
-      startListening({
-        actionCreator: testAction1,
-        async effect(_, listenerApi) {
-          listener1Calls++
-          listenerApi.signal.addEventListener(
-            'abort',
-            () => listener1Test.resolve(listener1Calls),
-            { once: true },
-          )
-          await listenerApi.condition(() => true)
-          listener1Test.reject(new Error('unreachable: listener1Test'))
-        },
-      })
-
-      startListening({
-        actionCreator: clearAllListeners,
-        effect() {
-          listener2Calls++
-        },
-      })
-
-      startListening({
-        predicate: () => true,
-        effect() {
-          listener3Calls++
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      store.dispatch(clearAllListeners())
-      store.dispatch(testAction1('b'))
-      expect(await listener1Test).toBe(1)
-      expect(listener1Calls).toBe(1)
-      expect(listener3Calls).toBe(1)
-      expect(listener2Calls).toBe(0)
-    })
-
-    test('clear() cancels running listeners and removes all subscriptions', async () => {
-      const listener1Test = deferred()
-
-      let listener1Calls = 0
-      let listener2Calls = 0
-
-      startListening({
-        actionCreator: testAction1,
-        async effect(_, listenerApi) {
-          listener1Calls++
-          listenerApi.signal.addEventListener(
-            'abort',
-            () => listener1Test.resolve(listener1Calls),
-            { once: true },
-          )
-          await listenerApi.condition(() => true)
-          listener1Test.reject(new Error('unreachable: listener1Test'))
-        },
-      })
-
-      startListening({
-        actionCreator: testAction2,
-        effect() {
-          listener2Calls++
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-
-      clearListeners()
-      store.dispatch(testAction1('b'))
-      store.dispatch(testAction2('c'))
-
-      expect(listener2Calls).toBe(0)
-      expect(await listener1Test).toBe(1)
-    })
-
-    test('clear() cancels all running forked tasks', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      startListening({
-        actionCreator: testAction1,
-        async effect(_, { fork, dispatch }) {
-          await fork(() => dispatch(incrementByAmount(3))).result
-          dispatch(incrementByAmount(4))
-        },
-      })
-
-      expect(store.getState().value).toBe(0)
-      store.dispatch(testAction1('a'))
-
-      clearListeners()
-
-      await Promise.resolve() // Forked tasks run on the next microtask.
-
-      expect(store.getState().value).toBe(0)
-    })
-  })
-
-  describe('Listener API', () => {
-    test('Passes both getState and getOriginalState in the API', () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let listener1Calls = 0
-      startListening({
-        actionCreator: increment,
-        effect: (action, listenerApi) => {
-          const stateBefore = listenerApi.getOriginalState() as CounterState
-          const currentState = listenerApi.getOriginalState() as CounterState
-
-          listener1Calls++
-          // In the "before" phase, we pass the same state
-          expect(currentState).toBe(stateBefore)
-        },
-      })
-
-      let listener2Calls = 0
-      startListening({
-        actionCreator: increment,
-        effect: (action, listenerApi) => {
-          // TODO getState functions aren't typed right here
-          const stateBefore = listenerApi.getOriginalState() as CounterState
-          const currentState = listenerApi.getOriginalState() as CounterState
-
-          listener2Calls++
-          // In the "after" phase, we pass the new state for `getState`, and still have original state too
-          expect(currentState.value).toBe(stateBefore.value + 1)
-        },
-      })
-
-      store.dispatch(increment())
-
-      expect(listener1Calls).toBe(1)
-      expect(listener2Calls).toBe(1)
-    })
-
-    test('getOriginalState can only be invoked synchronously', async () => {
-      const onError = vi.fn()
-
-      const listenerMiddleware = createListenerMiddleware<CounterState>({
-        onError,
-      })
-      const { middleware, startListening } = listenerMiddleware
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      startListening({
-        actionCreator: increment,
-        async effect(_, listenerApi) {
-          const runIncrementBy = () => {
-            listenerApi.dispatch(
-              counterSlice.actions.incrementByAmount(
-                listenerApi.getOriginalState().value + 2,
-              ),
-            )
-          }
-
-          runIncrementBy()
-
-          await Promise.resolve()
-
-          runIncrementBy()
-        },
-      })
-
-      expect(store.getState()).toEqual({ value: 0 })
-
-      store.dispatch(increment()) // state.value+=1 && trigger listener
-      expect(onError).not.toHaveBeenCalled()
-      expect(store.getState()).toEqual({ value: 3 })
-
-      await delay(0)
-
-      expect(onError).toBeCalledWith(
-        new Error(
-          'listenerMiddleware: getOriginalState can only be called synchronously',
-        ),
-        { raisedBy: 'effect' },
-      )
-      expect(store.getState()).toEqual({ value: 3 })
-    })
-
-    test('by default, actions are forwarded to the store', () => {
-      reducer.mockClear()
-
-      const effect = vi.fn((_: TestAction1) => {})
-
-      startListening({
-        actionCreator: testAction1,
-        effect,
-      })
-
-      store.dispatch(testAction1('a'))
-
-      expect(reducer.mock.calls).toEqual([[{}, testAction1('a')]])
-    })
-
-    test('listenerApi.delay does not trigger unhandledRejections for completed or cancelled listners', async () => {
-      const deferredCompletedEvt = deferred()
-      const deferredCancelledEvt = deferred()
-      const godotPauseTrigger = deferred()
-
-      // Unfortunately we cannot test declaratively unhandleRejections in jest: https://github.com/facebook/jest/issues/5620
-      // This test just fails if an `unhandledRejection` occurs.
-      startListening({
-        actionCreator: increment,
-        effect: async (_, listenerApi) => {
-          listenerApi.unsubscribe()
-          listenerApi.signal.addEventListener(
-            'abort',
-            deferredCompletedEvt.resolve,
-            { once: true },
-          )
-          listenerApi.delay(100) // missing await
-        },
-      })
-
-      startListening({
-        actionCreator: increment,
-        effect: async (_, listenerApi) => {
-          listenerApi.cancelActiveListeners()
-          listenerApi.signal.addEventListener(
-            'abort',
-            deferredCancelledEvt.resolve,
-            { once: true },
-          )
-          listenerApi.delay(100) // missing await
-          listenerApi.pause(godotPauseTrigger)
-        },
-      })
-
-      store.dispatch(increment())
-      store.dispatch(increment())
-
-      expect(await deferredCompletedEvt).toBeDefined()
-      expect(await deferredCancelledEvt).toBeDefined()
-    })
-  })
-
-  describe('Error handling', () => {
-    test('Continues running other listeners if one of them raises an error', () => {
-      const matcher = (action: any): action is any => true
-
-      startListening({
-        matcher,
-        effect: () => {
-          throw new Error('Panic!')
-        },
-      })
-
-      const effect = vi.fn(() => {})
-      startListening({ matcher, effect })
-
-      store.dispatch(testAction1('a'))
-      expect(effect.mock.calls).toEqual([[testAction1('a'), middlewareApi]])
-    })
-
-    test('Continues running other listeners if a predicate raises an error', () => {
-      const matcher = (action: any): action is any => true
-      const firstListener = vi.fn(() => {})
-      const secondListener = vi.fn(() => {})
-
-      startListening({
-        // @ts-expect-error
-        matcher: (arg: unknown): arg is unknown => {
-          throw new Error('Predicate Panic!')
-        },
-        effect: firstListener,
-      })
-
-      startListening({ matcher, effect: secondListener })
-
-      store.dispatch(testAction1('a'))
-      expect(firstListener).not.toHaveBeenCalled()
-      expect(secondListener.mock.calls).toEqual([
-        [testAction1('a'), middlewareApi],
-      ])
-    })
-
-    test('Notifies sync listener errors to `onError`, if provided', async () => {
-      const onError = vi.fn()
-      const listenerMiddleware = createListenerMiddleware({
-        onError,
-      })
-      const { middleware, startListening } = listenerMiddleware
-      reducer = vi.fn(() => ({}))
-      store = configureStore({
-        reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      const listenerError = new Error('Boom!')
-
-      const matcher = (action: any): action is any => true
-
-      startListening({
-        matcher,
-        effect: () => {
-          throw listenerError
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-      await delay(100)
-
-      expect(onError).toBeCalledWith(listenerError, {
-        raisedBy: 'effect',
-      })
-    })
-
-    test('Notifies async listeners errors to `onError`, if provided', async () => {
-      const onError = vi.fn()
-      const listenerMiddleware = createListenerMiddleware({
-        onError,
-      })
-      const { middleware, startListening } = listenerMiddleware
-      reducer = vi.fn(() => ({}))
-      store = configureStore({
-        reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      const listenerError = new Error('Boom!')
-      const matcher = (action: any): action is any => true
-
-      startListening({
-        matcher,
-        effect: async () => {
-          throw listenerError
-        },
-      })
-
-      store.dispatch(testAction1('a'))
-
-      await delay(100)
-
-      expect(onError).toBeCalledWith(listenerError, {
-        raisedBy: 'effect',
-      })
-    })
-  })
-
-  describe('take and condition methods', () => {
-    test('take resolves to the tuple [A, CurrentState, PreviousState] when the predicate matches the action', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      const typedAddListener = startListening as TypedStartListening<
-        CounterState,
-        typeof store.dispatch
-      >
-      let result:
-        | [ReturnType<typeof increment>, CounterState, CounterState]
-        | null = null
-
-      typedAddListener({
-        predicate: incrementByAmount.match,
-        async effect(_: UnknownAction, listenerApi) {
-          result = await listenerApi.take(increment.match)
-        },
-      })
-      store.dispatch(incrementByAmount(1))
-      store.dispatch(increment())
-
-      await delay(10)
-
-      expect(result).toEqual([increment(), { value: 2 }, { value: 1 }])
-    })
-
-    test('take resolves to null if the timeout expires', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let takeResult: any = undefined
-
-      startListening({
-        predicate: incrementByAmount.match,
-        effect: async (_, listenerApi) => {
-          takeResult = await listenerApi.take(increment.match, 15)
-        },
-      })
-      store.dispatch(incrementByAmount(1))
-      await delay(25)
-
-      expect(takeResult).toBe(null)
-    })
-
-    test("take resolves to [A, CurrentState, PreviousState] if the timeout is provided but doesn't expire", async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-      let takeResult: any = undefined
-      let stateBefore: any = undefined
-      let stateCurrent: any = undefined
-
-      startListening({
-        predicate: incrementByAmount.match,
-        effect: async (_, listenerApi) => {
-          stateBefore = listenerApi.getState()
-          takeResult = await listenerApi.take(increment.match, 50)
-          stateCurrent = listenerApi.getState()
-        },
-      })
-      store.dispatch(incrementByAmount(1))
-      store.dispatch(increment())
-
-      await delay(25)
-      expect(takeResult).toEqual([increment(), stateCurrent, stateBefore])
-    })
-
-    test('take resolves to `[A, CurrentState, PreviousState] | null` if a possibly undefined timeout parameter is provided', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let timeout: number | undefined = undefined
-      let done = false
-
-      const startAppListening =
-        startListening as TypedStartListening<CounterState>
-      startAppListening({
-        predicate: incrementByAmount.match,
-        effect: async (_, listenerApi) => {
-          const stateBefore = listenerApi.getState()
-
-          let takeResult = await listenerApi.take(increment.match, timeout)
-          const stateCurrent = listenerApi.getState()
-          expect(takeResult).toEqual([increment(), stateCurrent, stateBefore])
-
-          timeout = 1
-          takeResult = await listenerApi.take(increment.match, timeout)
-          expect(takeResult).toBeNull()
-
-          done = true
-        },
-      })
-      store.dispatch(incrementByAmount(1))
-      store.dispatch(increment())
-
-      await delay(25)
-      expect(done).toBe(true)
-    })
-
-    test('condition method resolves promise when the predicate succeeds', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let finalCount = 0
-      let listenerStarted = false
-
-      startListening({
-        predicate: (action, _, previousState) => {
-          return (
-            increment.match(action) &&
-            (previousState as CounterState).value === 0
-          )
-        },
-        effect: async (action, listenerApi) => {
-          listenerStarted = true
-          const result = await listenerApi.condition((action, currentState) => {
-            return (currentState as CounterState).value === 3
-          })
-
-          expect(result).toBe(true)
-          const latestState = listenerApi.getState() as CounterState
-          finalCount = latestState.value
-        },
-      })
-
-      store.dispatch(increment())
-
-      expect(listenerStarted).toBe(true)
-      await delay(25)
-      store.dispatch(increment())
-      store.dispatch(increment())
-
-      await delay(25)
-
-      expect(finalCount).toBe(3)
-    })
-
-    test('condition method resolves promise when there is a timeout', async () => {
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-
-      let finalCount = 0
-      let listenerStarted = false
-
-      startListening({
-        predicate: (action, currentState) => {
-          return (
-            increment.match(action) &&
-            (currentState as CounterState).value === 1
-          )
-        },
-        effect: async (action, listenerApi) => {
-          listenerStarted = true
-          const result = await listenerApi.condition((action, currentState) => {
-            return (currentState as CounterState).value === 3
-          }, 25)
-
-          expect(result).toBe(false)
-          const latestState = listenerApi.getState() as CounterState
-          finalCount = latestState.value
-        },
-      })
-
-      store.dispatch(increment())
-      expect(listenerStarted).toBe(true)
-
-      store.dispatch(increment())
-
-      await delay(50)
-      store.dispatch(increment())
-
-      expect(finalCount).toBe(2)
-    })
-
-    test('take does not trigger unhandledRejections for completed or cancelled tasks', async () => {
-      const deferredCompletedEvt = deferred()
-      const deferredCancelledEvt = deferred()
-      const store = configureStore({
-        reducer: counterSlice.reducer,
-        middleware: (gDM) => gDM().prepend(middleware),
-      })
-      const godotPauseTrigger = deferred()
-
-      startListening({
-        predicate: () => true,
-        effect: async (_, listenerApi) => {
-          listenerApi.unsubscribe() // run once
-          listenerApi.signal.addEventListener(
-            'abort',
-            deferredCompletedEvt.resolve,
-          )
-          listenerApi.take(() => true) // missing await
-        },
-      })
-
-      startListening({
-        predicate: () => true,
-        effect: async (_, listenerApi) => {
-          listenerApi.cancelActiveListeners()
-          listenerApi.signal.addEventListener(
-            'abort',
-            deferredCancelledEvt.resolve,
-          )
-          listenerApi.take(() => true) // missing await
-          await listenerApi.pause(godotPauseTrigger)
-        },
-      })
-
-      store.dispatch({ type: 'type' })
-      store.dispatch({ type: 'type' })
-      expect(await deferredCompletedEvt).toBeDefined()
-    })
-  })
-
-  describe('Job API', () => {
-    test('Allows canceling previous jobs', async () => {
-      let jobsStarted = 0
-      let jobsContinued = 0
-      let jobsCanceled = 0
-
-      startListening({
-        actionCreator: increment,
-        effect: async (action, listenerApi) => {
-          jobsStarted++
-
-          if (jobsStarted < 3) {
-            try {
-              await listenerApi.condition(decrement.match)
-              // Cancelation _should_ cause `condition()` to throw so we never
-              // end up hitting this next line
-              jobsContinued++
-            } catch (err) {
-              if (err instanceof TaskAbortError) {
-                jobsCanceled++
-              }
-            }
-          } else {
-            listenerApi.cancelActiveListeners()
-          }
-        },
-      })
-
-      store.dispatch(increment())
-      store.dispatch(increment())
-      store.dispatch(increment())
-
-      await delay(10)
-      expect(jobsStarted).toBe(3)
-      expect(jobsContinued).toBe(0)
-      expect(jobsCanceled).toBe(2)
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.withTypes.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.withTypes.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,159 +1,0 @@
-import type {
-  Action,
-  ThunkAction,
-  TypedAddListener,
-  TypedRemoveListener,
-  TypedStartListening,
-  TypedStopListening,
-} from '@reduxjs/toolkit'
-import {
-  addListener,
-  configureStore,
-  createAsyncThunk,
-  createListenerMiddleware,
-  createSlice,
-  removeListener,
-} from '@reduxjs/toolkit'
-import { describe, expectTypeOf, test } from 'vitest'
-
-export interface CounterState {
-  counter: number
-}
-
-const initialState: CounterState = {
-  counter: 0,
-}
-
-export const counterSlice = createSlice({
-  name: 'counter',
-  initialState,
-  reducers: {
-    increment(state) {
-      state.counter++
-    },
-  },
-})
-
-export function fetchCount(amount = 1) {
-  return new Promise<{ data: number }>((resolve) =>
-    setTimeout(() => resolve({ data: amount }), 500),
-  )
-}
-
-export const incrementAsync = createAsyncThunk(
-  'counter/fetchCount',
-  async (amount: number) => {
-    const response = await fetchCount(amount)
-    // The value we return becomes the `fulfilled` action payload
-    return response.data
-  },
-)
-
-const { increment } = counterSlice.actions
-
-const store = configureStore({
-  reducer: counterSlice.reducer,
-})
-
-type AppStore = typeof store
-type AppDispatch = typeof store.dispatch
-type RootState = ReturnType<typeof store.getState>
-type AppThunk<ThunkReturnType = void> = ThunkAction<
-  ThunkReturnType,
-  RootState,
-  unknown,
-  Action
->
-type ExtraArgument = { foo: string }
-
-describe('listenerMiddleware.withTypes<RootState, AppDispatch>()', () => {
-  const listenerMiddleware = createListenerMiddleware()
-  let timeout: number | undefined = undefined
-  let done = false
-
-  type ExpectedTakeResultType =
-    | [ReturnType<typeof increment>, RootState, RootState]
-    | null
-
-  test('startListening.withTypes', () => {
-    const startAppListening = listenerMiddleware.startListening.withTypes<
-      RootState,
-      AppDispatch,
-      ExtraArgument
-    >()
-
-    expectTypeOf(startAppListening).toEqualTypeOf<
-      TypedStartListening<RootState, AppDispatch, ExtraArgument>
-    >()
-
-    startAppListening({
-      predicate: increment.match,
-      effect: async (action, listenerApi) => {
-        const stateBefore = listenerApi.getState()
-
-        expectTypeOf(increment).returns.toEqualTypeOf(action)
-
-        expectTypeOf(listenerApi.dispatch).toEqualTypeOf<AppDispatch>()
-
-        expectTypeOf(stateBefore).toEqualTypeOf<RootState>()
-
-        let takeResult = await listenerApi.take(increment.match, timeout)
-        const stateCurrent = listenerApi.getState()
-
-        expectTypeOf(takeResult).toEqualTypeOf<ExpectedTakeResultType>()
-
-        expectTypeOf(stateCurrent).toEqualTypeOf<RootState>()
-
-        expectTypeOf(listenerApi.extra).toEqualTypeOf<ExtraArgument>()
-
-        timeout = 1
-        takeResult = await listenerApi.take(increment.match, timeout)
-
-        done = true
-      },
-    })
-  })
-
-  test('addListener.withTypes', () => {
-    const addAppListener = addListener.withTypes<RootState, AppDispatch, ExtraArgument>()
-
-    expectTypeOf(addAppListener).toEqualTypeOf<
-      TypedAddListener<RootState, AppDispatch, ExtraArgument>
-    >()
-
-    store.dispatch(
-      addAppListener({
-        matcher: increment.match,
-        effect: (action, listenerApi) => {
-          const state = listenerApi.getState()
-
-          expectTypeOf(state).toEqualTypeOf<RootState>()
-
-          expectTypeOf(listenerApi.dispatch).toEqualTypeOf<AppDispatch>()
-
-          expectTypeOf(listenerApi.extra).toEqualTypeOf<ExtraArgument>()
-        },
-      }),
-    )
-  })
-
-  test('removeListener.withTypes', () => {
-    const removeAppListener = removeListener.withTypes<RootState, AppDispatch, ExtraArgument>()
-
-    expectTypeOf(removeAppListener).toEqualTypeOf<
-      TypedRemoveListener<RootState, AppDispatch, ExtraArgument>
-    >()
-  })
-
-  test('stopListening.withTypes', () => {
-    const stopAppListening = listenerMiddleware.stopListening.withTypes<
-      RootState,
-      AppDispatch,
-      ExtraArgument
-    >()
-
-    expectTypeOf(stopAppListening).toEqualTypeOf<
-      TypedStopListening<RootState, AppDispatch, ExtraArgument>
-    >()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.withTypes.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/listenerMiddleware.withTypes.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,120 +1,0 @@
-import type { Action } from 'redux'
-import type { ThunkAction } from 'redux-thunk'
-import { describe, expect, test } from 'vitest'
-import { configureStore } from '../../configureStore'
-import { createAsyncThunk } from '../../createAsyncThunk'
-import { createSlice } from '../../createSlice'
-import { addListener, createListenerMiddleware, removeListener } from '../index'
-
-export interface CounterState {
-  counter: number
-}
-
-const initialState: CounterState = {
-  counter: 0,
-}
-
-export const counterSlice = createSlice({
-  name: 'counter',
-  initialState,
-  reducers: {
-    increment(state) {
-      state.counter++
-    },
-  },
-})
-
-export function fetchCount(amount = 1) {
-  return new Promise<{ data: number }>((resolve) =>
-    setTimeout(() => resolve({ data: amount }), 500),
-  )
-}
-
-export const incrementAsync = createAsyncThunk(
-  'counter/fetchCount',
-  async (amount: number) => {
-    const response = await fetchCount(amount)
-    // The value we return becomes the `fulfilled` action payload
-    return response.data
-  },
-)
-
-const { increment } = counterSlice.actions
-
-const store = configureStore({
-  reducer: counterSlice.reducer,
-})
-
-type AppStore = typeof store
-type AppDispatch = typeof store.dispatch
-type RootState = ReturnType<typeof store.getState>
-type AppThunk<ThunkReturnType = void> = ThunkAction<
-  ThunkReturnType,
-  RootState,
-  unknown,
-  Action
->
-
-type ExtraArgument = { foo: string }
-
-const listenerMiddleware = createListenerMiddleware()
-
-const startAppListening = listenerMiddleware.startListening.withTypes<
-  RootState,
-  AppDispatch,
-  ExtraArgument
->()
-
-const stopAppListening = listenerMiddleware.stopListening.withTypes<
-  RootState,
-  AppDispatch,
-  ExtraArgument
->()
-
-const addAppListener = addListener.withTypes<RootState, AppDispatch, ExtraArgument>()
-
-const removeAppListener = removeListener.withTypes<RootState, AppDispatch, ExtraArgument>()
-
-describe('startAppListening.withTypes', () => {
-  test('should return startListening', () => {
-    expect(startAppListening.withTypes).toEqual(expect.any(Function))
-
-    expect(startAppListening.withTypes().withTypes).toEqual(
-      expect.any(Function),
-    )
-
-    expect(startAppListening).toBe(listenerMiddleware.startListening)
-  })
-})
-
-describe('stopAppListening.withTypes', () => {
-  test('should return stopListening', () => {
-    expect(stopAppListening.withTypes).toEqual(expect.any(Function))
-
-    expect(stopAppListening.withTypes().withTypes).toEqual(expect.any(Function))
-
-    expect(stopAppListening).toBe(listenerMiddleware.stopListening)
-  })
-})
-
-describe('addAppListener.withTypes', () => {
-  test('should return addListener', () => {
-    expect(addAppListener.withTypes).toEqual(expect.any(Function))
-
-    expect(addAppListener.withTypes().withTypes).toEqual(expect.any(Function))
-
-    expect(addAppListener).toBe(addListener)
-  })
-})
-
-describe('removeAppListener.withTypes', () => {
-  test('should return removeListener', () => {
-    expect(removeAppListener.withTypes).toEqual(expect.any(Function))
-
-    expect(removeAppListener.withTypes().withTypes).toEqual(
-      expect.any(Function),
-    )
-
-    expect(removeAppListener).toBe(removeListener)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/useCases.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/tests/useCases.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,175 +1,0 @@
-import {
-  configureStore,
-  createAction,
-  createSlice,
-  isAnyOf,
-} from '@reduxjs/toolkit'
-
-import type { PayloadAction } from '@reduxjs/toolkit'
-
-import { createListenerMiddleware } from '../index'
-
-import type { TypedAddListener } from '../index'
-import { TaskAbortError } from '../exceptions'
-
-interface CounterState {
-  value: number
-}
-
-const counterSlice = createSlice({
-  name: 'counter',
-  initialState: { value: 0 } as CounterState,
-  reducers: {
-    increment(state) {
-      state.value += 1
-    },
-    decrement(state) {
-      state.value -= 1
-    },
-    // Use the PayloadAction type to declare the contents of `action.payload`
-    incrementByAmount: (state, action: PayloadAction<number>) => {
-      state.value += action.payload
-    },
-  },
-})
-const { increment, decrement, incrementByAmount } = counterSlice.actions
-
-describe('Saga-style Effects Scenarios', () => {
-  let listenerMiddleware = createListenerMiddleware<CounterState>()
-  let { middleware, startListening, stopListening } = listenerMiddleware
-
-  let store = configureStore({
-    reducer: counterSlice.reducer,
-    middleware: (gDM) => gDM().prepend(middleware),
-  })
-
-  const testAction1 = createAction<string>('testAction1')
-  type TestAction1 = ReturnType<typeof testAction1>
-  const testAction2 = createAction<string>('testAction2')
-  type TestAction2 = ReturnType<typeof testAction2>
-  const testAction3 = createAction<string>('testAction3')
-  type TestAction3 = ReturnType<typeof testAction3>
-
-  type RootState = ReturnType<typeof store.getState>
-
-  function delay(ms: number) {
-    return new Promise((resolve) => setTimeout(resolve, ms))
-  }
-
-  beforeEach(() => {
-    listenerMiddleware = createListenerMiddleware<CounterState>()
-    middleware = listenerMiddleware.middleware
-    startListening = listenerMiddleware.startListening
-    store = configureStore({
-      reducer: counterSlice.reducer,
-      middleware: (gDM) => gDM().prepend(middleware),
-    })
-  })
-
-  test('Long polling loop', async () => {
-    // Reimplementation of a saga-based long-polling loop that is controlled
-    // by "start/stop" actions. The infinite loop waits for a message from the
-    // server, processes it somehow, and waits for the next message.
-    // Ref: https://gist.github.com/markerikson/5203e71a69fa9dff203c9e27c3d84154
-    const eventPollingStarted = createAction('serverPolling/started')
-    const eventPollingStopped = createAction('serverPolling/stopped')
-
-    // For this example, we're going to fake up a "server event poll" async
-    // function by wrapping an event emitter so that every call returns a
-    // promise that is resolved the next time an event is emitted.
-    // This is the tiniest event emitter I could find to copy-paste in here.
-    let createNanoEvents = () => ({
-      events: {} as Record<string, any>,
-      emit(event: string, ...args: any[]) {
-        ;(this.events[event] || []).forEach((i: any) => i(...args))
-      },
-      on(event: string, cb: (...args: any[]) => void) {
-        ;(this.events[event] = this.events[event] || []).push(cb)
-        return () =>
-          (this.events[event] = (this.events[event] || []).filter(
-            (l: any) => l !== cb,
-          ))
-      },
-    })
-    const emitter = createNanoEvents()
-
-    // Rig up a dummy "receive a message from the server" API we can trigger manually
-    function pollForEvent() {
-      return new Promise<{ type: string }>((resolve, reject) => {
-        const unsubscribe = emitter.on('serverEvent', (arg1: string) => {
-          unsubscribe()
-          resolve({ type: arg1 })
-        })
-      })
-    }
-
-    // Track how many times each message was processed by the loop
-    const receivedMessages = {
-      a: 0,
-      b: 0,
-      c: 0,
-    }
-
-    let pollingTaskStarted = false
-    let pollingTaskCanceled = false
-
-    startListening({
-      actionCreator: eventPollingStarted,
-      effect: async (action, listenerApi) => {
-        listenerApi.unsubscribe()
-
-        // Start a child job that will infinitely loop receiving messages
-        const pollingTask = listenerApi.fork(async (forkApi) => {
-          pollingTaskStarted = true
-          try {
-            while (true) {
-              // Cancelation-aware pause for a new server message
-              const serverEvent = await forkApi.pause(pollForEvent())
-              // Process the message. In this case, just count the times we've seen this message.
-              if (serverEvent.type in receivedMessages) {
-                receivedMessages[
-                  serverEvent.type as keyof typeof receivedMessages
-                ]++
-              }
-            }
-          } catch (err) {
-            if (err instanceof TaskAbortError) {
-              pollingTaskCanceled = true
-            }
-          }
-          return 0
-        })
-
-        // Wait for the "stop polling" action
-        await listenerApi.condition(eventPollingStopped.match)
-        pollingTask.cancel()
-      },
-    })
-
-    store.dispatch(eventPollingStarted())
-    await delay(5)
-    expect(pollingTaskStarted).toBe(true)
-
-    await delay(5)
-    emitter.emit('serverEvent', 'a')
-    // Promise resolution
-    await delay(1)
-    emitter.emit('serverEvent', 'b')
-    // Promise resolution
-    await delay(1)
-
-    store.dispatch(eventPollingStopped())
-
-    // Have to break out of the event loop to let the cancelation promise
-    // kick in - emitting before this would still resolve pollForEvent()
-    await delay(1)
-    emitter.emit('serverEvent', 'c')
-
-    // A and B were processed earlier. The first C was processed because the
-    // emitter synchronously resolved the `pollForEvents` promise before
-    // the cancelation took effect, but after another pause, the
-    // cancelation kicked in and the second C is ignored.
-    expect(receivedMessages).toEqual({ a: 1, b: 1, c: 0 })
-    expect(pollingTaskCanceled).toBe(true)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/types.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,872 +1,0 @@
-import type {
-  Action,
-  Dispatch,
-  Middleware,
-  MiddlewareAPI,
-  UnknownAction,
-} from 'redux'
-import type { ThunkDispatch } from 'redux-thunk'
-import type { BaseActionCreator, PayloadAction } from '../createAction'
-import type { TypedActionCreator } from '../mapBuilders'
-import type { TaskAbortError } from './exceptions'
-
-/**
- * Types copied from RTK
- */
-
-/** @internal */
-type TypedActionCreatorWithMatchFunction<Type extends string> =
-  TypedActionCreator<Type> & {
-    match: MatchFunction<any>
-  }
-
-/** @internal */
-export type AnyListenerPredicate<State> = (
-  action: UnknownAction,
-  currentState: State,
-  originalState: State,
-) => boolean
-
-/** @public */
-export type ListenerPredicate<ActionType extends Action, State> = (
-  action: UnknownAction,
-  currentState: State,
-  originalState: State,
-) => action is ActionType
-
-/** @public */
-export interface ConditionFunction<State> {
-  (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>
-  (predicate: AnyListenerPredicate<State>, timeout?: number): Promise<boolean>
-  (predicate: () => boolean, timeout?: number): Promise<boolean>
-}
-
-/** @internal */
-export type MatchFunction<T> = (v: any) => v is T
-
-/** @public */
-export interface ForkedTaskAPI {
-  /**
-   * Returns a promise that resolves when `waitFor` resolves or
-   * rejects if the task or the parent listener has been cancelled or is completed.
-   */
-  pause<W>(waitFor: Promise<W>): Promise<W>
-  /**
-   * Returns a promise that resolves after `timeoutMs` or
-   * rejects if the task or the parent listener has been cancelled or is completed.
-   * @param timeoutMs
-   */
-  delay(timeoutMs: number): Promise<void>
-  /**
-   * An abort signal whose `aborted` property is set to `true`
-   * if the task execution is either aborted or completed.
-   * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-   */
-  signal: AbortSignal
-}
-
-/** @public */
-export interface AsyncTaskExecutor<T> {
-  (forkApi: ForkedTaskAPI): Promise<T>
-}
-
-/** @public */
-export interface SyncTaskExecutor<T> {
-  (forkApi: ForkedTaskAPI): T
-}
-
-/** @public */
-export type ForkedTaskExecutor<T> = AsyncTaskExecutor<T> | SyncTaskExecutor<T>
-
-/** @public */
-export type TaskResolved<T> = {
-  readonly status: 'ok'
-  readonly value: T
-}
-
-/** @public */
-export type TaskRejected = {
-  readonly status: 'rejected'
-  readonly error: unknown
-}
-
-/** @public */
-export type TaskCancelled = {
-  readonly status: 'cancelled'
-  readonly error: TaskAbortError
-}
-
-/** @public */
-export type TaskResult<Value> =
-  | TaskResolved<Value>
-  | TaskRejected
-  | TaskCancelled
-
-/** @public */
-export interface ForkedTask<T> {
-  /**
-   * A promise that resolves when the task is either completed or cancelled or rejects
-   * if parent listener execution is cancelled or completed.
-   *
-   * ### Example
-   * ```ts
-   * const result = await fork(async (forkApi) => Promise.resolve(4)).result
-   *
-   * if(result.status === 'ok') {
-   *   console.log(result.value) // logs 4
-   * }}
-   * ```
-   */
-  result: Promise<TaskResult<T>>
-  /**
-   * Cancel task if it is in progress or not yet started,
-   * it is noop otherwise.
-   */
-  cancel(): void
-}
-
-/** @public */
-export interface ForkOptions {
-  /**
-   * If true, causes the parent task to not be marked as complete until
-   * all autoJoined forks have completed or failed.
-   */
-  autoJoin: boolean
-}
-
-/** @public */
-export interface ListenerEffectAPI<
-  State,
-  DispatchType extends Dispatch,
-  ExtraArgument = unknown,
-> extends MiddlewareAPI<DispatchType, State> {
-  /**
-   * Returns the store state as it existed when the action was originally dispatched, _before_ the reducers ran.
-   *
-   * ### Synchronous invocation
-   *
-   * This function can **only** be invoked **synchronously**, it throws error otherwise.
-   *
-   * @example
-   *
-   * ```ts
-   * middleware.startListening({
-   *  predicate: () => true,
-   *  async effect(_, { getOriginalState }) {
-   *    getOriginalState(); // sync: OK!
-   *
-   *    setTimeout(getOriginalState, 0); // async: throws Error
-   *
-   *    await Promise().resolve();
-   *
-   *    getOriginalState() // async: throws Error
-   *  }
-   * })
-   * ```
-   */
-  getOriginalState: () => State
-  /**
-   * Removes the listener entry from the middleware and prevent future instances of the listener from running.
-   *
-   * It does **not** cancel any active instances.
-   */
-  unsubscribe(): void
-  /**
-   * It will subscribe a listener if it was previously removed, noop otherwise.
-   */
-  subscribe(): void
-  /**
-   * Returns a promise that resolves when the input predicate returns `true` or
-   * rejects if the listener has been cancelled or is completed.
-   *
-   * The return value is `true` if the predicate succeeds or `false` if a timeout is provided and expires first.
-   *
-   * ### Example
-   *
-   * ```ts
-   * const updateBy = createAction<number>('counter/updateBy');
-   *
-   * middleware.startListening({
-   *  actionCreator: updateBy,
-   *  async effect(_, { condition }) {
-   *    // wait at most 3s for `updateBy` actions.
-   *    if(await condition(updateBy.match, 3_000)) {
-   *      // `updateBy` has been dispatched twice in less than 3s.
-   *    }
-   *  }
-   * })
-   * ```
-   */
-  condition: ConditionFunction<State>
-  /**
-   * Returns a promise that resolves when the input predicate returns `true` or
-   * rejects if the listener has been cancelled or is completed.
-   *
-   * The return value is the `[action, currentState, previousState]` combination that the predicate saw as arguments.
-   *
-   * The promise resolves to null if a timeout is provided and expires first,
-   *
-   * ### Example
-   *
-   * ```ts
-   * const updateBy = createAction<number>('counter/updateBy');
-   *
-   * middleware.startListening({
-   *  actionCreator: updateBy,
-   *  async effect(_, { take }) {
-   *    const [{ payload }] =  await take(updateBy.match);
-   *    console.log(payload); // logs 5;
-   *  }
-   * })
-   *
-   * store.dispatch(updateBy(5));
-   * ```
-   */
-  take: TakePattern<State>
-  /**
-   * Cancels all other running instances of this same listener except for the one that made this call.
-   */
-  cancelActiveListeners: () => void
-  /**
-   * Cancels the instance of this listener that made this call.
-   */
-  cancel: () => void
-  /**
-   * Throws a `TaskAbortError` if this listener has been cancelled
-   */
-  throwIfCancelled: () => void
-  /**
-   * An abort signal whose `aborted` property is set to `true`
-   * if the listener execution is either aborted or completed.
-   * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
-   */
-  signal: AbortSignal
-  /**
-   * Returns a promise that resolves after `timeoutMs` or
-   * rejects if the listener has been cancelled or is completed.
-   */
-  delay(timeoutMs: number): Promise<void>
-  /**
-   * Queues in the next microtask the execution of a task.
-   * @param executor
-   * @param options
-   */
-  fork<T>(executor: ForkedTaskExecutor<T>, options?: ForkOptions): ForkedTask<T>
-  /**
-   * Returns a promise that resolves when `waitFor` resolves or
-   * rejects if the listener has been cancelled or is completed.
-   * @param promise
-   */
-  pause<M>(promise: Promise<M>): Promise<M>
-  extra: ExtraArgument
-}
-
-/** @public */
-export type ListenerEffect<
-  ActionType extends Action,
-  State,
-  DispatchType extends Dispatch,
-  ExtraArgument = unknown,
-> = (
-  action: ActionType,
-  api: ListenerEffectAPI<State, DispatchType, ExtraArgument>,
-) => void | Promise<void>
-
-/**
- * @public
- * Additional infos regarding the error raised.
- */
-export interface ListenerErrorInfo {
-  /**
-   * Which function has generated the exception.
-   */
-  raisedBy: 'effect' | 'predicate'
-}
-
-/**
- * @public
- * Gets notified with synchronous and asynchronous errors raised by `listeners` or `predicates`.
- * @param error The thrown error.
- * @param errorInfo Additional information regarding the thrown error.
- */
-export interface ListenerErrorHandler {
-  (error: unknown, errorInfo: ListenerErrorInfo): void
-}
-
-/** @public */
-export interface CreateListenerMiddlewareOptions<ExtraArgument = unknown> {
-  extra?: ExtraArgument
-  /**
-   * Receives synchronous errors that are raised by `listener` and `listenerOption.predicate`.
-   */
-  onError?: ListenerErrorHandler
-}
-
-/** @public */
-export type ListenerMiddleware<
-  State = unknown,
-  DispatchType extends ThunkDispatch<State, unknown, Action> = ThunkDispatch<
-    State,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-> = Middleware<
-  {
-    (action: Action<'listenerMiddleware/add'>): UnsubscribeListener
-  },
-  State,
-  DispatchType
->
-
-/** @public */
-export interface ListenerMiddlewareInstance<
-  StateType = unknown,
-  DispatchType extends ThunkDispatch<
-    StateType,
-    unknown,
-    Action
-  > = ThunkDispatch<StateType, unknown, UnknownAction>,
-  ExtraArgument = unknown,
-> {
-  middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument>
-
-  startListening: AddListenerOverloads<
-    UnsubscribeListener,
-    StateType,
-    DispatchType,
-    ExtraArgument
-  > &
-    TypedStartListening<StateType, DispatchType, ExtraArgument>
-
-  stopListening: RemoveListenerOverloads<StateType, DispatchType> &
-    TypedStopListening<StateType, DispatchType>
-
-  /**
-   * Unsubscribes all listeners, cancels running listeners and tasks.
-   */
-  clearListeners: () => void
-}
-
-/**
- * API Function Overloads
- */
-
-/** @public */
-export type TakePatternOutputWithoutTimeout<
-  State,
-  Predicate extends AnyListenerPredicate<State>,
-> =
-  Predicate extends MatchFunction<infer ActionType>
-    ? Promise<[ActionType, State, State]>
-    : Promise<[UnknownAction, State, State]>
-
-/** @public */
-export type TakePatternOutputWithTimeout<
-  State,
-  Predicate extends AnyListenerPredicate<State>,
-> =
-  Predicate extends MatchFunction<infer ActionType>
-    ? Promise<[ActionType, State, State] | null>
-    : Promise<[UnknownAction, State, State] | null>
-
-/** @public */
-export interface TakePattern<State> {
-  <Predicate extends AnyListenerPredicate<State>>(
-    predicate: Predicate,
-  ): TakePatternOutputWithoutTimeout<State, Predicate>
-  <Predicate extends AnyListenerPredicate<State>>(
-    predicate: Predicate,
-    timeout: number,
-  ): TakePatternOutputWithTimeout<State, Predicate>
-  <Predicate extends AnyListenerPredicate<State>>(
-    predicate: Predicate,
-    timeout?: number | undefined,
-  ): TakePatternOutputWithTimeout<State, Predicate>
-}
-
-/** @public */
-export interface UnsubscribeListenerOptions {
-  cancelActive?: true
-}
-
-/** @public */
-export type UnsubscribeListener = (
-  unsubscribeOptions?: UnsubscribeListenerOptions,
-) => void
-
-/**
- * @public
- * The possible overloads and options for defining a listener. The return type of each function is specified as a generic arg, so the overloads can be reused for multiple different functions
- */
-export type AddListenerOverloads<
-  Return,
-  StateType = unknown,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-  AdditionalOptions = unknown,
-> = {
-  /** Accepts a "listener predicate" that is also a TS type predicate for the action*/
-  <
-    MiddlewareActionType extends UnknownAction,
-    ListenerPredicateType extends ListenerPredicate<
-      MiddlewareActionType,
-      StateType
-    >,
-  >(
-    options: {
-      actionCreator?: never
-      type?: never
-      matcher?: never
-      predicate: ListenerPredicateType
-      effect: ListenerEffect<
-        ListenerPredicateGuardedActionType<ListenerPredicateType>,
-        StateType,
-        DispatchType,
-        ExtraArgument
-      >
-    } & AdditionalOptions,
-  ): Return
-
-  /** Accepts an RTK action creator, like `incrementByAmount` */
-  <ActionCreatorType extends TypedActionCreatorWithMatchFunction<any>>(
-    options: {
-      actionCreator: ActionCreatorType
-      type?: never
-      matcher?: never
-      predicate?: never
-      effect: ListenerEffect<
-        ReturnType<ActionCreatorType>,
-        StateType,
-        DispatchType,
-        ExtraArgument
-      >
-    } & AdditionalOptions,
-  ): Return
-
-  /** Accepts a specific action type string */
-  <T extends string>(
-    options: {
-      actionCreator?: never
-      type: T
-      matcher?: never
-      predicate?: never
-      effect: ListenerEffect<Action<T>, StateType, DispatchType, ExtraArgument>
-    } & AdditionalOptions,
-  ): Return
-
-  /** Accepts an RTK matcher function, such as `incrementByAmount.match` */
-  <MatchFunctionType extends MatchFunction<UnknownAction>>(
-    options: {
-      actionCreator?: never
-      type?: never
-      matcher: MatchFunctionType
-      predicate?: never
-      effect: ListenerEffect<
-        GuardedType<MatchFunctionType>,
-        StateType,
-        DispatchType,
-        ExtraArgument
-      >
-    } & AdditionalOptions,
-  ): Return
-
-  /** Accepts a "listener predicate" that just returns a boolean, no type assertion */
-  <ListenerPredicateType extends AnyListenerPredicate<StateType>>(
-    options: {
-      actionCreator?: never
-      type?: never
-      matcher?: never
-      predicate: ListenerPredicateType
-      effect: ListenerEffect<
-        UnknownAction,
-        StateType,
-        DispatchType,
-        ExtraArgument
-      >
-    } & AdditionalOptions,
-  ): Return
-}
-
-/** @public */
-export type RemoveListenerOverloads<
-  StateType = unknown,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-> = AddListenerOverloads<
-  boolean,
-  StateType,
-  DispatchType,
-  ExtraArgument,
-  UnsubscribeListenerOptions
->
-
-/** @public */
-export interface RemoveListenerAction<
-  ActionType extends UnknownAction,
-  State,
-  DispatchType extends Dispatch,
-> {
-  type: 'listenerMiddleware/remove'
-  payload: {
-    type: string
-    listener: ListenerEffect<ActionType, State, DispatchType>
-  }
-}
-
-/**
- * A "pre-typed" version of `addListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-export type TypedAddListener<
-  StateType,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-  Payload = ListenerEntry<StateType, DispatchType>,
-  T extends string = 'listenerMiddleware/add',
-> = BaseActionCreator<Payload, T> &
-  AddListenerOverloads<
-    PayloadAction<Payload, T>,
-    StateType,
-    DispatchType,
-    ExtraArgument
-  > & {
-    /**
-     * Creates a "pre-typed" version of `addListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `addListener` call.
-     *
-     * @returns A pre-typed `addListener` with the state, dispatch and extra types already defined.
-     *
-     * @example
-     * ```ts
-     * import { addListener } from '@reduxjs/toolkit'
-     *
-     * export const addAppListener = addListener.withTypes<RootState, AppDispatch, ExtraArguments>()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <
-      OverrideStateType extends StateType,
-      OverrideDispatchType extends Dispatch = ThunkDispatch<
-        OverrideStateType,
-        unknown,
-        UnknownAction
-      >,
-      OverrideExtraArgument = unknown,
-    >() => TypedAddListener<
-      OverrideStateType,
-      OverrideDispatchType,
-      OverrideExtraArgument
-    >
-  }
-
-/**
- * A "pre-typed" version of `removeListenerAction`, so the listener args are well-typed
- *
- * @public
- */
-export type TypedRemoveListener<
-  StateType,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-  Payload = ListenerEntry<StateType, DispatchType>,
-  T extends string = 'listenerMiddleware/remove',
-> = BaseActionCreator<Payload, T> &
-  AddListenerOverloads<
-    PayloadAction<Payload, T>,
-    StateType,
-    DispatchType,
-    ExtraArgument,
-    UnsubscribeListenerOptions
-  > & {
-    /**
-     * Creates a "pre-typed" version of `removeListener`
-     * where the `state`, `dispatch` and `extra` types are predefined.
-     *
-     * This allows you to set the `state`, `dispatch` and `extra` types once,
-     * eliminating the need to specify them with every `removeListener` call.
-     *
-     * @returns A pre-typed `removeListener` with the state, dispatch and extra
-     * types already defined.
-     *
-     * @example
-     * ```ts
-     * import { removeListener } from '@reduxjs/toolkit'
-     *
-     * export const removeAppListener = removeListener.withTypes<
-     *   RootState,
-     *   AppDispatch,
-     *   ExtraArguments
-     * >()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state the middleware listener operates on.
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     * @template OverrideExtraArgument - The specific type of the extra object.
-     *
-     * @since 2.1.0
-     */
-    withTypes: <
-      OverrideStateType extends StateType,
-      OverrideDispatchType extends Dispatch = ThunkDispatch<
-        OverrideStateType,
-        unknown,
-        UnknownAction
-      >,
-      OverrideExtraArgument = unknown,
-    >() => TypedRemoveListener<
-      OverrideStateType,
-      OverrideDispatchType,
-      OverrideExtraArgument
-    >
-  }
-
-/**
- * A "pre-typed" version of `middleware.startListening`, so the listener args are well-typed
- *
- * @public
- */
-export type TypedStartListening<
-  StateType,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-> = AddListenerOverloads<
-  UnsubscribeListener,
-  StateType,
-  DispatchType,
-  ExtraArgument
-> & {
-  /**
-   * Creates a "pre-typed" version of
-   * {@linkcode ListenerMiddlewareInstance.startListening startListening}
-   * where the `state`, `dispatch` and `extra` types are predefined.
-   *
-   * This allows you to set the `state`, `dispatch` and `extra` types once,
-   * eliminating the need to specify them with every
-   * {@linkcode ListenerMiddlewareInstance.startListening startListening} call.
-   *
-   * @returns A pre-typed `startListening` with the state, dispatch and extra types already defined.
-   *
-   * @example
-   * ```ts
-   * import { createListenerMiddleware } from '@reduxjs/toolkit'
-   *
-   * const listenerMiddleware = createListenerMiddleware()
-   *
-   * export const startAppListening = listenerMiddleware.startListening.withTypes<
-   *   RootState,
-   *   AppDispatch,
-   *   ExtraArguments
-   * >()
-   * ```
-   *
-   * @template OverrideStateType - The specific type of state the middleware listener operates on.
-   * @template OverrideDispatchType - The specific type of the dispatch function.
-   * @template OverrideExtraArgument - The specific type of the extra object.
-   *
-   * @since 2.1.0
-   */
-  withTypes: <
-    OverrideStateType extends StateType,
-    OverrideDispatchType extends Dispatch = ThunkDispatch<
-      OverrideStateType,
-      unknown,
-      UnknownAction
-    >,
-    OverrideExtraArgument = unknown,
-  >() => TypedStartListening<
-    OverrideStateType,
-    OverrideDispatchType,
-    OverrideExtraArgument
-  >
-}
-
-/**
- * A "pre-typed" version of `middleware.stopListening`, so the listener args are well-typed
- *
- * @public
- */
-export type TypedStopListening<
-  StateType,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-> = RemoveListenerOverloads<StateType, DispatchType, ExtraArgument> & {
-  /**
-   * Creates a "pre-typed" version of
-   * {@linkcode ListenerMiddlewareInstance.stopListening stopListening}
-   * where the `state`, `dispatch` and `extra` types are predefined.
-   *
-   * This allows you to set the `state`, `dispatch` and `extra` types once,
-   * eliminating the need to specify them with every
-   * {@linkcode ListenerMiddlewareInstance.stopListening stopListening} call.
-   *
-   * @returns A pre-typed `stopListening` with the state, dispatch and extra types already defined.
-   *
-   * @example
-   * ```ts
-   * import { createListenerMiddleware } from '@reduxjs/toolkit'
-   *
-   * const listenerMiddleware = createListenerMiddleware()
-   *
-   * export const stopAppListening = listenerMiddleware.stopListening.withTypes<
-   *   RootState,
-   *   AppDispatch,
-   *   ExtraArguments
-   * >()
-   * ```
-   *
-   * @template OverrideStateType - The specific type of state the middleware listener operates on.
-   * @template OverrideDispatchType - The specific type of the dispatch function.
-   * @template OverrideExtraArgument - The specific type of the extra object.
-   *
-   * @since 2.1.0
-   */
-  withTypes: <
-    OverrideStateType extends StateType,
-    OverrideDispatchType extends Dispatch = ThunkDispatch<
-      OverrideStateType,
-      unknown,
-      UnknownAction
-    >,
-    OverrideExtraArgument = unknown,
-  >() => TypedStopListening<
-    OverrideStateType,
-    OverrideDispatchType,
-    OverrideExtraArgument
-  >
-}
-
-/**
- * A "pre-typed" version of `createListenerEntry`, so the listener args are well-typed
- *
- * @public
- */
-export type TypedCreateListenerEntry<
-  StateType,
-  DispatchType extends Dispatch = ThunkDispatch<
-    StateType,
-    unknown,
-    UnknownAction
-  >,
-  ExtraArgument = unknown,
-> = AddListenerOverloads<
-  ListenerEntry<StateType, DispatchType>,
-  StateType,
-  DispatchType,
-  ExtraArgument
-> & {
-  /**
-   * Creates a "pre-typed" version of `createListenerEntry`
-   * where the `state`, `dispatch` and `extra` types are predefined.
-   *
-   * This allows you to set the `state`, `dispatch` and `extra` types once, eliminating
-   * the need to specify them with every `createListenerEntry` call.
-   *
-   * @returns A pre-typed `createListenerEntry` with the state, dispatch and extra
-   * types already defined.
-   *
-   * @example
-   * ```ts
-   * import { createListenerEntry } from '@reduxjs/toolkit'
-   *
-   * export const createAppListenerEntry = createListenerEntry.withTypes<
-   *   RootState,
-   *   AppDispatch,
-   *   ExtraArguments
-   * >()
-   * ```
-   *
-   * @template OverrideStateType - The specific type of state the middleware listener operates on.
-   * @template OverrideDispatchType - The specific type of the dispatch function.
-   * @template OverrideExtraArgument - The specific type of the extra object.
-   *
-   * @since 2.1.0
-   */
-  withTypes: <
-    OverrideStateType extends StateType,
-    OverrideDispatchType extends Dispatch = ThunkDispatch<
-      OverrideStateType,
-      unknown,
-      UnknownAction
-    >,
-    OverrideExtraArgument = unknown,
-  >() => TypedStopListening<
-    OverrideStateType,
-    OverrideDispatchType,
-    OverrideExtraArgument
-  >
-}
-
-/**
- * Internal Types
- */
-
-/** @internal An single listener entry */
-export type ListenerEntry<
-  State = unknown,
-  DispatchType extends Dispatch = Dispatch,
-> = {
-  id: string
-  effect: ListenerEffect<any, State, DispatchType>
-  unsubscribe: () => void
-  pending: Set<AbortController>
-  type?: string
-  predicate: ListenerPredicate<UnknownAction, State>
-}
-
-/**
- * @internal
- * A shorthand form of the accepted args, solely so that `createListenerEntry` has validly-typed conditional logic when checking the options contents
- */
-export type FallbackAddListenerOptions = {
-  actionCreator?: TypedActionCreatorWithMatchFunction<string>
-  type?: string
-  matcher?: MatchFunction<any>
-  predicate?: ListenerPredicate<any, any>
-} & { effect: ListenerEffect<any, any, any> }
-
-/**
- * Utility Types
- */
-
-/** @public */
-export type GuardedType<T> = T extends (x: any, ...args: any[]) => x is infer T
-  ? T
-  : never
-
-/** @public */
-export type ListenerPredicateGuardedActionType<T> =
-  T extends ListenerPredicate<infer ActionType, any> ? ActionType : never
Index: de_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-export const assertFunction: (
-  func: unknown,
-  expected: string,
-) => asserts func is (...args: unknown[]) => unknown = (
-  func: unknown,
-  expected: string,
-) => {
-  if (typeof func !== 'function') {
-    throw new TypeError(`${expected} is not a function`)
-  }
-}
-
-export const noop = () => {}
-
-export const catchRejection = <T>(
-  promise: Promise<T>,
-  onError = noop,
-): Promise<T> => {
-  promise.catch(onError)
-
-  return promise
-}
-
-export const addAbortSignalListener = (
-  abortSignal: AbortSignal,
-  callback: (evt: Event) => void,
-) => {
-  abortSignal.addEventListener('abort', callback, { once: true })
-  return () => abortSignal.removeEventListener('abort', callback)
-}
Index: de_modules/@reduxjs/toolkit/src/mapBuilders.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/mapBuilders.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,299 +1,0 @@
-import type { Action } from 'redux'
-import type {
-  CaseReducer,
-  CaseReducers,
-  ActionMatcherDescriptionCollection,
-} from './createReducer'
-import type { TypeGuard } from './tsHelpers'
-import type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk'
-
-export type AsyncThunkReducers<
-  State,
-  ThunkArg extends any,
-  Returned = unknown,
-  ThunkApiConfig extends AsyncThunkConfig = {},
-> = {
-  pending?: CaseReducer<
-    State,
-    ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>
-  >
-  rejected?: CaseReducer<
-    State,
-    ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>
-  >
-  fulfilled?: CaseReducer<
-    State,
-    ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>
-  >
-  settled?: CaseReducer<
-    State,
-    ReturnType<
-      AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']
-    >
-  >
-}
-
-export type TypedActionCreator<Type extends string> = {
-  (...args: any[]): Action<Type>
-  type: Type
-}
-
-/**
- * A builder for an action <-> reducer map.
- *
- * @public
- */
-export interface ActionReducerMapBuilder<State> {
-  /**
-   * Adds a case reducer to handle a single exact action type.
-   * @remarks
-   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-   * @param reducer - The actual case reducer function.
-   */
-  addCase<ActionCreator extends TypedActionCreator<string>>(
-    actionCreator: ActionCreator,
-    reducer: CaseReducer<State, ReturnType<ActionCreator>>,
-  ): ActionReducerMapBuilder<State>
-  /**
-   * Adds a case reducer to handle a single exact action type.
-   * @remarks
-   * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.
-   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.
-   * @param reducer - The actual case reducer function.
-   */
-  addCase<Type extends string, A extends Action<Type>>(
-    type: Type,
-    reducer: CaseReducer<State, A>,
-  ): ActionReducerMapBuilder<State>
-
-  /**
-   * Adds case reducers to handle actions based on a `AsyncThunk` action creator.
-   * @remarks
-   * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.
-   * @param asyncThunk - The async thunk action creator itself.
-   * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.
-   * @example
-```ts no-transpile
-import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'
-
-const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {
-  const response = await fetch(`https://reqres.in/api/users/${id}`)
-  return (await response.json()).data
-})
-
-const reducer = createReducer(initialState, (builder) => {
-  builder.addAsyncThunk(fetchUserById, {
-    pending: (state, action) => {
-      state.fetchUserById.loading = 'pending'
-    },
-    fulfilled: (state, action) => {
-      state.fetchUserById.data = action.payload
-    },
-    rejected: (state, action) => {
-      state.fetchUserById.error = action.error
-    },
-    settled: (state, action) => {
-      state.fetchUserById.loading = action.meta.requestStatus
-    },
-  })
-})
-   */
-  addAsyncThunk<
-    Returned,
-    ThunkArg,
-    ThunkApiConfig extends AsyncThunkConfig = {},
-  >(
-    asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>,
-    reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>,
-  ): Omit<ActionReducerMapBuilder<State>, 'addCase'>
-
-  /**
-   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.
-   * @remarks
-   * If multiple matcher reducers match, all of them will be executed in the order
-   * they were defined in - even if a case reducer already matched.
-   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.
-   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)
-   *   function
-   * @param reducer - The actual case reducer function.
-   *
-   * @example
-```ts
-import {
-  createAction,
-  createReducer,
-  AsyncThunk,
-  UnknownAction,
-} from "@reduxjs/toolkit";
-
-type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;
-
-type PendingAction = ReturnType<GenericAsyncThunk["pending"]>;
-type RejectedAction = ReturnType<GenericAsyncThunk["rejected"]>;
-type FulfilledAction = ReturnType<GenericAsyncThunk["fulfilled"]>;
-
-const initialState: Record<string, string> = {};
-const resetAction = createAction("reset-tracked-loading-state");
-
-function isPendingAction(action: UnknownAction): action is PendingAction {
-  return typeof action.type === "string" && action.type.endsWith("/pending");
-}
-
-const reducer = createReducer(initialState, (builder) => {
-  builder
-    .addCase(resetAction, () => initialState)
-    // matcher can be defined outside as a type predicate function
-    .addMatcher(isPendingAction, (state, action) => {
-      state[action.meta.requestId] = "pending";
-    })
-    .addMatcher(
-      // matcher can be defined inline as a type predicate function
-      (action): action is RejectedAction => action.type.endsWith("/rejected"),
-      (state, action) => {
-        state[action.meta.requestId] = "rejected";
-      }
-    )
-    // matcher can just return boolean and the matcher can receive a generic argument
-    .addMatcher<FulfilledAction>(
-      (action) => action.type.endsWith("/fulfilled"),
-      (state, action) => {
-        state[action.meta.requestId] = "fulfilled";
-      }
-    );
-});
-```
-   */
-  addMatcher<A>(
-    matcher: TypeGuard<A> | ((action: any) => boolean),
-    reducer: CaseReducer<State, A extends Action ? A : A & Action>,
-  ): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>
-
-  /**
-   * Adds a "default case" reducer that is executed if no case reducer and no matcher
-   * reducer was executed for this action.
-   * @param reducer - The fallback "default case" reducer function.
-   *
-   * @example
-```ts
-import { createReducer } from '@reduxjs/toolkit'
-const initialState = { otherActions: 0 }
-const reducer = createReducer(initialState, builder => {
-  builder
-    // .addCase(...)
-    // .addMatcher(...)
-    .addDefaultCase((state, action) => {
-      state.otherActions++
-    })
-})
-```
-   */
-  addDefaultCase(reducer: CaseReducer<State, Action>): {}
-}
-
-export function executeReducerBuilderCallback<S>(
-  builderCallback: (builder: ActionReducerMapBuilder<S>) => void,
-): [
-  CaseReducers<S, any>,
-  ActionMatcherDescriptionCollection<S>,
-  CaseReducer<S, Action> | undefined,
-] {
-  const actionsMap: CaseReducers<S, any> = {}
-  const actionMatchers: ActionMatcherDescriptionCollection<S> = []
-  let defaultCaseReducer: CaseReducer<S, Action> | undefined
-  const builder = {
-    addCase(
-      typeOrActionCreator: string | TypedActionCreator<any>,
-      reducer: CaseReducer<S>,
-    ) {
-      if (process.env.NODE_ENV !== 'production') {
-        /*
-         to keep the definition by the user in line with actual behavior,
-         we enforce `addCase` to always be called before calling `addMatcher`
-         as matching cases take precedence over matchers
-         */
-        if (actionMatchers.length > 0) {
-          throw new Error(
-            '`builder.addCase` should only be called before calling `builder.addMatcher`',
-          )
-        }
-        if (defaultCaseReducer) {
-          throw new Error(
-            '`builder.addCase` should only be called before calling `builder.addDefaultCase`',
-          )
-        }
-      }
-      const type =
-        typeof typeOrActionCreator === 'string'
-          ? typeOrActionCreator
-          : typeOrActionCreator.type
-      if (!type) {
-        throw new Error(
-          '`builder.addCase` cannot be called with an empty action type',
-        )
-      }
-      if (type in actionsMap) {
-        throw new Error(
-          '`builder.addCase` cannot be called with two reducers for the same action type ' +
-            `'${type}'`,
-        )
-      }
-      actionsMap[type] = reducer
-      return builder
-    },
-    addAsyncThunk<
-      Returned,
-      ThunkArg,
-      ThunkApiConfig extends AsyncThunkConfig = {},
-    >(
-      asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>,
-      reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>,
-    ) {
-      if (process.env.NODE_ENV !== 'production') {
-        // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case
-        if (defaultCaseReducer) {
-          throw new Error(
-            '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`',
-          )
-        }
-      }
-      if (reducers.pending)
-        actionsMap[asyncThunk.pending.type] = reducers.pending
-      if (reducers.rejected)
-        actionsMap[asyncThunk.rejected.type] = reducers.rejected
-      if (reducers.fulfilled)
-        actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled
-      if (reducers.settled)
-        actionMatchers.push({
-          matcher: asyncThunk.settled,
-          reducer: reducers.settled,
-        })
-      return builder
-    },
-    addMatcher<A>(
-      matcher: TypeGuard<A>,
-      reducer: CaseReducer<S, A extends Action ? A : A & Action>,
-    ) {
-      if (process.env.NODE_ENV !== 'production') {
-        if (defaultCaseReducer) {
-          throw new Error(
-            '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`',
-          )
-        }
-      }
-      actionMatchers.push({ matcher, reducer })
-      return builder
-    },
-    addDefaultCase(reducer: CaseReducer<S, Action>) {
-      if (process.env.NODE_ENV !== 'production') {
-        if (defaultCaseReducer) {
-          throw new Error('`builder.addDefaultCase` can only be called once')
-        }
-      }
-      defaultCaseReducer = reducer
-      return builder
-    },
-  }
-  builderCallback(builder)
-  return [actionsMap, actionMatchers, defaultCaseReducer]
-}
Index: de_modules/@reduxjs/toolkit/src/matchers.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/matchers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,365 +1,0 @@
-import type {
-  ActionFromMatcher,
-  Matcher,
-  UnionToIntersection,
-} from './tsHelpers'
-import { hasMatchFunction } from './tsHelpers'
-import type {
-  AsyncThunk,
-  AsyncThunkFulfilledActionCreator,
-  AsyncThunkPendingActionCreator,
-  AsyncThunkRejectedActionCreator,
-} from './createAsyncThunk'
-
-/** @public */
-export type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> =
-  ActionFromMatcher<Matchers[number]>
-
-/** @public */
-export type ActionMatchingAllOf<Matchers extends Matcher<any>[]> =
-  UnionToIntersection<ActionMatchingAnyOf<Matchers>>
-
-const matches = (matcher: Matcher<any>, action: any) => {
-  if (hasMatchFunction(matcher)) {
-    return matcher.match(action)
-  } else {
-    return matcher(action)
-  }
-}
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches any one of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-export function isAnyOf<Matchers extends Matcher<any>[]>(
-  ...matchers: Matchers
-) {
-  return (action: any): action is ActionMatchingAnyOf<Matchers> => {
-    return matchers.some((matcher) => matches(matcher, action))
-  }
-}
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action matches all of the supplied type guards or action
- * creators.
- *
- * @param matchers The type guards or action creators to match against.
- *
- * @public
- */
-export function isAllOf<Matchers extends Matcher<any>[]>(
-  ...matchers: Matchers
-) {
-  return (action: any): action is ActionMatchingAllOf<Matchers> => {
-    return matchers.every((matcher) => matches(matcher, action))
-  }
-}
-
-/**
- * @param action A redux action
- * @param validStatus An array of valid meta.requestStatus values
- *
- * @internal
- */
-export function hasExpectedRequestMetadata(
-  action: any,
-  validStatus: readonly string[],
-) {
-  if (!action || !action.meta) return false
-
-  const hasValidRequestId = typeof action.meta.requestId === 'string'
-  const hasValidRequestStatus =
-    validStatus.indexOf(action.meta.requestStatus) > -1
-
-  return hasValidRequestId && hasValidRequestStatus
-}
-
-function isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {
-  return (
-    typeof a[0] === 'function' &&
-    'pending' in a[0] &&
-    'fulfilled' in a[0] &&
-    'rejected' in a[0]
-  )
-}
-
-export type UnknownAsyncThunkPendingAction = ReturnType<
-  AsyncThunkPendingActionCreator<unknown>
->
-
-export type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> =
-  ActionFromMatcher<T['pending']>
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is pending.
- *
- * @public
- */
-export function isPending(): (
-  action: any,
-) => action is UnknownAsyncThunkPendingAction
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is pending.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-export function isPending<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(
-  ...asyncThunks: AsyncThunks
-): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>
-/**
- * Tests if `action` is a pending thunk action
- * @public
- */
-export function isPending(action: any): action is UnknownAsyncThunkPendingAction
-export function isPending<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(...asyncThunks: AsyncThunks | [any]) {
-  if (asyncThunks.length === 0) {
-    return (action: any) => hasExpectedRequestMetadata(action, ['pending'])
-  }
-
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isPending()(asyncThunks[0])
-  }
-
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending))
-}
-
-export type UnknownAsyncThunkRejectedAction = ReturnType<
-  AsyncThunkRejectedActionCreator<unknown, unknown>
->
-
-export type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> =
-  ActionFromMatcher<T['rejected']>
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected.
- *
- * @public
- */
-export function isRejected(): (
-  action: any,
-) => action is UnknownAsyncThunkRejectedAction
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-export function isRejected<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(
-  ...asyncThunks: AsyncThunks
-): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>
-/**
- * Tests if `action` is a rejected thunk action
- * @public
- */
-export function isRejected(
-  action: any,
-): action is UnknownAsyncThunkRejectedAction
-export function isRejected<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(...asyncThunks: AsyncThunks | [any]) {
-  if (asyncThunks.length === 0) {
-    return (action: any) => hasExpectedRequestMetadata(action, ['rejected'])
-  }
-
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejected()(asyncThunks[0])
-  }
-
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected))
-}
-
-export type UnknownAsyncThunkRejectedWithValueAction = ReturnType<
-  AsyncThunkRejectedActionCreator<unknown, unknown>
->
-
-export type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> =
-  ActionFromMatcher<T['rejected']> &
-    (T extends AsyncThunk<any, any, { rejectValue: infer RejectedValue }>
-      ? { payload: RejectedValue }
-      : unknown)
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is rejected with value.
- *
- * @public
- */
-export function isRejectedWithValue(): (
-  action: any,
-) => action is UnknownAsyncThunkRejectedAction
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is rejected with value.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-export function isRejectedWithValue<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(
-  ...asyncThunks: AsyncThunks
-): (
-  action: any,
-) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>
-/**
- * Tests if `action` is a rejected thunk action with value
- * @public
- */
-export function isRejectedWithValue(
-  action: any,
-): action is UnknownAsyncThunkRejectedAction
-export function isRejectedWithValue<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(...asyncThunks: AsyncThunks | [any]) {
-  const hasFlag = (action: any): action is any => {
-    return action && action.meta && action.meta.rejectedWithValue
-  }
-
-  if (asyncThunks.length === 0) {
-    return isAllOf(isRejected(...asyncThunks), hasFlag)
-  }
-
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isRejectedWithValue()(asyncThunks[0])
-  }
-
-  return isAllOf(isRejected(...asyncThunks), hasFlag)
-}
-
-export type UnknownAsyncThunkFulfilledAction = ReturnType<
-  AsyncThunkFulfilledActionCreator<unknown, unknown>
->
-
-export type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> =
-  ActionFromMatcher<T['fulfilled']>
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator, and that
- * the action is fulfilled.
- *
- * @public
- */
-export function isFulfilled(): (
-  action: any,
-) => action is UnknownAsyncThunkFulfilledAction
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators,
- * and that the action is fulfilled.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-export function isFulfilled<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(
-  ...asyncThunks: AsyncThunks
-): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>
-/**
- * Tests if `action` is a fulfilled thunk action
- * @public
- */
-export function isFulfilled(
-  action: any,
-): action is UnknownAsyncThunkFulfilledAction
-export function isFulfilled<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(...asyncThunks: AsyncThunks | [any]) {
-  if (asyncThunks.length === 0) {
-    return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled'])
-  }
-
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isFulfilled()(asyncThunks[0])
-  }
-
-  return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled))
-}
-
-export type UnknownAsyncThunkAction =
-  | UnknownAsyncThunkPendingAction
-  | UnknownAsyncThunkRejectedAction
-  | UnknownAsyncThunkFulfilledAction
-
-export type AnyAsyncThunk = {
-  pending: { match: (action: any) => action is any }
-  fulfilled: { match: (action: any) => action is any }
-  rejected: { match: (action: any) => action is any }
-}
-
-export type ActionsFromAsyncThunk<T extends AnyAsyncThunk> =
-  | ActionFromMatcher<T['pending']>
-  | ActionFromMatcher<T['fulfilled']>
-  | ActionFromMatcher<T['rejected']>
-
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action was created by an async thunk action creator.
- *
- * @public
- */
-export function isAsyncThunkAction(): (
-  action: any,
-) => action is UnknownAsyncThunkAction
-/**
- * A higher-order function that returns a function that may be used to check
- * whether an action belongs to one of the provided async thunk action creators.
- *
- * @param asyncThunks (optional) The async thunk action creators to match against.
- *
- * @public
- */
-export function isAsyncThunkAction<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(
-  ...asyncThunks: AsyncThunks
-): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>
-/**
- * Tests if `action` is a thunk action
- * @public
- */
-export function isAsyncThunkAction(
-  action: any,
-): action is UnknownAsyncThunkAction
-export function isAsyncThunkAction<
-  AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]],
->(...asyncThunks: AsyncThunks | [any]) {
-  if (asyncThunks.length === 0) {
-    return (action: any) =>
-      hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected'])
-  }
-
-  if (!isAsyncThunkArray(asyncThunks)) {
-    return isAsyncThunkAction()(asyncThunks[0])
-  }
-
-  return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]))
-}
Index: de_modules/@reduxjs/toolkit/src/nanoid.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/nanoid.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js
-// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped
-// optimize the gzip compression for this alphabet.
-let urlAlphabet =
-  'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'
-
-/**
- *
- * @public
- */
-export let nanoid = (size = 21) => {
-  let id = ''
-  // A compact alternative for `for (var i = 0; i < step; i++)`.
-  let i = size
-  while (i--) {
-    // `| 0` is more compact and faster than `Math.floor()`.
-    id += urlAlphabet[(Math.random() * 64) | 0]
-  }
-  return id
-}
Index: de_modules/@reduxjs/toolkit/src/query/HandledError.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/HandledError.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export class HandledError {
-  constructor(
-    public readonly value: any,
-    public readonly meta: any = undefined,
-  ) {}
-}
Index: de_modules/@reduxjs/toolkit/src/query/apiTypes.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/apiTypes.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-import type { UnknownAction } from '@reduxjs/toolkit'
-import type { BaseQueryFn } from './baseQueryTypes'
-import type { CombinedState, CoreModule, QueryKeys } from './core'
-import type { ApiModules } from './core/module'
-import type { CreateApiOptions } from './createApi'
-import type {
-  EndpointBuilder,
-  EndpointDefinition,
-  EndpointDefinitions,
-  UpdateDefinitions,
-} from './endpointDefinitions'
-import type {
-  NoInfer,
-  UnionToIntersection,
-  WithRequiredProp,
-} from './tsHelpers'
-
-export type ModuleName = keyof ApiModules<any, any, any, any>
-
-export type Module<Name extends ModuleName> = {
-  name: Name
-  init<
-    BaseQuery extends BaseQueryFn,
-    Definitions extends EndpointDefinitions,
-    ReducerPath extends string,
-    TagTypes extends string,
-  >(
-    api: Api<BaseQuery, EndpointDefinitions, ReducerPath, TagTypes, ModuleName>,
-    options: WithRequiredProp<
-      CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>,
-      | 'reducerPath'
-      | 'serializeQueryArgs'
-      | 'keepUnusedDataFor'
-      | 'refetchOnMountOrArgChange'
-      | 'refetchOnFocus'
-      | 'refetchOnReconnect'
-      | 'invalidationBehavior'
-      | 'tagTypes'
-    >,
-    context: ApiContext<Definitions>,
-  ): {
-    injectEndpoint(
-      endpointName: string,
-      definition: EndpointDefinition<any, any, any, any>,
-    ): void
-  }
-}
-
-export interface ApiContext<Definitions extends EndpointDefinitions> {
-  apiUid: string
-  endpointDefinitions: Definitions
-  batch(cb: () => void): void
-  extractRehydrationInfo: (
-    action: UnknownAction,
-  ) => CombinedState<any, any, any> | undefined
-  hasRehydrationInfo: (action: UnknownAction) => boolean
-}
-
-export const getEndpointDefinition = <
-  Definitions extends EndpointDefinitions,
-  EndpointName extends keyof Definitions,
->(
-  context: ApiContext<Definitions>,
-  endpointName: EndpointName,
-) => context.endpointDefinitions[endpointName]
-
-export type Api<
-  BaseQuery extends BaseQueryFn,
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string,
-  TagTypes extends string,
-  Enhancers extends ModuleName = CoreModule,
-> = UnionToIntersection<
-  ApiModules<BaseQuery, Definitions, ReducerPath, TagTypes>[Enhancers]
-> & {
-  /**
-   * A function to inject the endpoints into the original API, but also give you that same API with correct types for these endpoints back. Useful with code-splitting.
-   */
-  injectEndpoints<NewDefinitions extends EndpointDefinitions>(_: {
-    endpoints: (
-      build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>,
-    ) => NewDefinitions
-    /**
-     * Optionally allows endpoints to be overridden if defined by multiple `injectEndpoints` calls.
-     *
-     * If set to `true`, will override existing endpoints with the new definition.
-     * If set to `'throw'`, will throw an error if an endpoint is redefined with a different definition.
-     * If set to `false` (or unset), will not override existing endpoints with the new definition, and log a warning in development.
-     */
-    overrideExisting?: boolean | 'throw'
-  }): Api<
-    BaseQuery,
-    Definitions & NewDefinitions,
-    ReducerPath,
-    TagTypes,
-    Enhancers
-  >
-  /**
-   *A function to enhance a generated API with additional information. Useful with code-generation.
-   */
-  enhanceEndpoints<
-    NewTagTypes extends string = never,
-    NewDefinitions extends EndpointDefinitions = never,
-  >(_: {
-    addTagTypes?: readonly NewTagTypes[]
-    endpoints?: UpdateDefinitions<
-      Definitions,
-      TagTypes | NoInfer<NewTagTypes>,
-      NewDefinitions
-    > extends infer NewDefinitions
-      ? {
-          [K in keyof NewDefinitions]?:
-            | Partial<NewDefinitions[K]>
-            | ((definition: NewDefinitions[K]) => void)
-        }
-      : never
-  }): Api<
-    BaseQuery,
-    UpdateDefinitions<Definitions, TagTypes | NewTagTypes, NewDefinitions>,
-    ReducerPath,
-    TagTypes | NewTagTypes,
-    Enhancers
-  >
-}
Index: de_modules/@reduxjs/toolkit/src/query/baseQueryTypes.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/baseQueryTypes.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import type { ThunkDispatch } from '@reduxjs/toolkit'
-import type { MaybePromise, UnwrapPromise } from './tsHelpers'
-
-export interface BaseQueryApi {
-  signal: AbortSignal
-  abort: (reason?: string) => void
-  dispatch: ThunkDispatch<any, any, any>
-  getState: () => unknown
-  extra: unknown
-  endpoint: string
-  type: 'query' | 'mutation'
-  /**
-   * Only available for queries: indicates if a query has been forced,
-   * i.e. it would have been fetched even if there would already be a cache entry
-   * (this does not mean that there is already a cache entry though!)
-   *
-   * This can be used to for example add a `Cache-Control: no-cache` header for
-   * invalidated queries.
-   */
-  forced?: boolean
-  /**
-   * Only available for queries: the cache key that was used to store the query result
-   */
-  queryCacheKey?: string
-}
-
-export type QueryReturnValue<T = unknown, E = unknown, M = unknown> =
-  | {
-      error: E
-      data?: undefined
-      meta?: M
-    }
-  | {
-      error?: undefined
-      data: T
-      meta?: M
-    }
-
-export type BaseQueryFn<
-  Args = any,
-  Result = unknown,
-  Error = unknown,
-  DefinitionExtraOptions = {},
-  Meta = {},
-> = (
-  args: Args,
-  api: BaseQueryApi,
-  extraOptions: DefinitionExtraOptions,
-) => MaybePromise<QueryReturnValue<Result, Error, Meta>>
-
-export type BaseQueryEnhancer<
-  AdditionalArgs = unknown,
-  AdditionalDefinitionExtraOptions = unknown,
-  Config = void,
-> = <BaseQuery extends BaseQueryFn>(
-  baseQuery: BaseQuery,
-  config: Config,
-) => BaseQueryFn<
-  BaseQueryArg<BaseQuery> & AdditionalArgs,
-  BaseQueryResult<BaseQuery>,
-  BaseQueryError<BaseQuery>,
-  BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions,
-  NonNullable<BaseQueryMeta<BaseQuery>>
->
-
-/**
- * @public
- */
-export type BaseQueryResult<BaseQuery extends BaseQueryFn> =
-  UnwrapPromise<ReturnType<BaseQuery>> extends infer Unwrapped
-    ? Unwrapped extends { data: any }
-      ? Unwrapped['data']
-      : never
-    : never
-
-/**
- * @public
- */
-export type BaseQueryMeta<BaseQuery extends BaseQueryFn> = UnwrapPromise<
-  ReturnType<BaseQuery>
->['meta']
-
-/**
- * @public
- */
-export type BaseQueryError<BaseQuery extends BaseQueryFn> = Exclude<
-  UnwrapPromise<ReturnType<BaseQuery>>,
-  { error?: undefined }
->['error']
-
-/**
- * @public
- */
-export type BaseQueryArg<T extends (arg: any, ...args: any[]) => any> =
-  T extends (arg: infer A, ...args: any[]) => any ? A : any
-
-/**
- * @public
- */
-export type BaseQueryExtraOptions<BaseQuery extends BaseQueryFn> =
-  Parameters<BaseQuery>[2]
Index: de_modules/@reduxjs/toolkit/src/query/core/apiState.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/apiState.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,377 +1,0 @@
-import type { SerializedError } from '@reduxjs/toolkit'
-import type { BaseQueryError } from '../baseQueryTypes'
-import type {
-  BaseEndpointDefinition,
-  EndpointDefinitions,
-  FullTagDescription,
-  InfiniteQueryDefinition,
-  MutationDefinition,
-  PageParamFrom,
-  QueryArgFromAnyQuery,
-  QueryDefinition,
-  ResultTypeFrom,
-} from '../endpointDefinitions'
-import type { Id, WithRequiredProp } from '../tsHelpers'
-
-export type QueryCacheKey = string & { _type: 'queryCacheKey' }
-export type QuerySubstateIdentifier = { queryCacheKey: QueryCacheKey }
-export type MutationSubstateIdentifier =
-  | { requestId: string; fixedCacheKey?: string }
-  | { requestId?: string; fixedCacheKey: string }
-
-export type RefetchConfigOptions = {
-  refetchOnMountOrArgChange: boolean | number
-  refetchOnReconnect: boolean
-  refetchOnFocus: boolean
-}
-
-export type InfiniteQueryConfigOptions<DataType, PageParam, QueryArg> = {
-  /**
-   * The initial page parameter to use for the first page fetch.
-   */
-  initialPageParam: PageParam
-  /**
-   * This function is required to automatically get the next cursor for infinite queries.
-   * The result will also be used to determine the value of `hasNextPage`.
-   */
-  getNextPageParam: (
-    lastPage: DataType,
-    allPages: Array<DataType>,
-    lastPageParam: PageParam,
-    allPageParams: Array<PageParam>,
-    queryArg: QueryArg,
-  ) => PageParam | undefined | null
-  /**
-   * This function can be set to automatically get the previous cursor for infinite queries.
-   * The result will also be used to determine the value of `hasPreviousPage`.
-   */
-  getPreviousPageParam?: (
-    firstPage: DataType,
-    allPages: Array<DataType>,
-    firstPageParam: PageParam,
-    allPageParams: Array<PageParam>,
-    queryArg: QueryArg,
-  ) => PageParam | undefined | null
-  /**
-   * If specified, only keep this many pages in cache at once.
-   * If additional pages are fetched, older pages in the other
-   * direction will be dropped from the cache.
-   */
-  maxPages?: number
-  /**
-   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-   * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-   * RTK Query will try to sequentially refetch all pages currently in the cache.
-   * When `false` only the first page will be refetched.
-   */
-  refetchCachedPages?: boolean
-}
-
-export type InfiniteData<DataType, PageParam> = {
-  pages: Array<DataType>
-  pageParams: Array<PageParam>
-}
-
-// NOTE: DO NOT import and use this for runtime comparisons internally,
-// except in the RTKQ React package. Use the string versions just below this.
-// ESBuild auto-inlines TS enums, which bloats our bundle with many repeated
-// constants like "initialized":
-// https://github.com/evanw/esbuild/releases/tag/v0.14.7
-// We still have to use this in the React package since we don't publicly export
-// the string constants below.
-/**
- * Strings describing the query state at any given time.
- */
-export enum QueryStatus {
-  uninitialized = 'uninitialized',
-  pending = 'pending',
-  fulfilled = 'fulfilled',
-  rejected = 'rejected',
-}
-
-// Use these string constants for runtime comparisons internally
-export const STATUS_UNINITIALIZED = QueryStatus.uninitialized
-export const STATUS_PENDING = QueryStatus.pending
-export const STATUS_FULFILLED = QueryStatus.fulfilled
-export const STATUS_REJECTED = QueryStatus.rejected
-
-export type RequestStatusFlags =
-  | {
-      status: QueryStatus.uninitialized
-      isUninitialized: true
-      isLoading: false
-      isSuccess: false
-      isError: false
-    }
-  | {
-      status: QueryStatus.pending
-      isUninitialized: false
-      isLoading: true
-      isSuccess: false
-      isError: false
-    }
-  | {
-      status: QueryStatus.fulfilled
-      isUninitialized: false
-      isLoading: false
-      isSuccess: true
-      isError: false
-    }
-  | {
-      status: QueryStatus.rejected
-      isUninitialized: false
-      isLoading: false
-      isSuccess: false
-      isError: true
-    }
-
-export function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {
-  return {
-    status,
-    isUninitialized: status === STATUS_UNINITIALIZED,
-    isLoading: status === STATUS_PENDING,
-    isSuccess: status === STATUS_FULFILLED,
-    isError: status === STATUS_REJECTED,
-  } as any
-}
-
-/**
- * @public
- */
-export type SubscriptionOptions = {
-  /**
-   * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).
-   */
-  pollingInterval?: number
-  /**
-   *  Defaults to 'false'. This setting allows you to control whether RTK Query will continue polling if the window is not focused.
-   *
-   *  If pollingInterval is not set or set to 0, this **will not be evaluated** until pollingInterval is greater than 0.
-   *
-   *  Note: requires [`setupListeners`](./setupListeners) to have been called.
-   */
-  skipPollingIfUnfocused?: boolean
-  /**
-   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   *
-   * Note: requires [`setupListeners`](./setupListeners) to have been called.
-   */
-  refetchOnReconnect?: boolean
-  /**
-   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   *
-   * Note: requires [`setupListeners`](./setupListeners) to have been called.
-   */
-  refetchOnFocus?: boolean
-}
-export type SubscribersInternal = Map<string, SubscriptionOptions>
-export type Subscribers = { [requestId: string]: SubscriptionOptions }
-export type QueryKeys<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions]: Definitions[K] extends QueryDefinition<
-    any,
-    any,
-    any,
-    any
-  >
-    ? K
-    : never
-}[keyof Definitions]
-
-export type InfiniteQueryKeys<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions]: Definitions[K] extends InfiniteQueryDefinition<
-    any,
-    any,
-    any,
-    any,
-    any
-  >
-    ? K
-    : never
-}[keyof Definitions]
-
-export type MutationKeys<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions]: Definitions[K] extends MutationDefinition<
-    any,
-    any,
-    any,
-    any
-  >
-    ? K
-    : never
-}[keyof Definitions]
-
-type BaseQuerySubState<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-  DataType = ResultTypeFrom<D>,
-> = {
-  /**
-   * The argument originally passed into the hook or `initiate` action call
-   */
-  originalArgs: QueryArgFromAnyQuery<D>
-  /**
-   * A unique ID associated with the request
-   */
-  requestId: string
-  /**
-   * The received data from the query
-   */
-  data?: DataType
-  /**
-   * The received error if applicable
-   */
-  error?:
-    | SerializedError
-    | (D extends QueryDefinition<any, infer BaseQuery, any, any>
-        ? BaseQueryError<BaseQuery>
-        : never)
-  /**
-   * The name of the endpoint associated with the query
-   */
-  endpointName: string
-  /**
-   * Time that the latest query started
-   */
-  startedTimeStamp: number
-  /**
-   * Time that the latest query was fulfilled
-   */
-  fulfilledTimeStamp?: number
-}
-
-export type QuerySubState<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-  DataType = ResultTypeFrom<D>,
-> = Id<
-  | ({ status: QueryStatus.fulfilled } & WithRequiredProp<
-      BaseQuerySubState<D, DataType>,
-      'data' | 'fulfilledTimeStamp'
-    > & { error: undefined })
-  | ({ status: QueryStatus.pending } & BaseQuerySubState<D, DataType>)
-  | ({ status: QueryStatus.rejected } & WithRequiredProp<
-      BaseQuerySubState<D, DataType>,
-      'error'
-    >)
-  | {
-      status: QueryStatus.uninitialized
-      originalArgs?: undefined
-      data?: undefined
-      error?: undefined
-      requestId?: undefined
-      endpointName?: string
-      startedTimeStamp?: undefined
-      fulfilledTimeStamp?: undefined
-    }
->
-
-export type InfiniteQueryDirection = 'forward' | 'backward'
-
-export type InfiniteQuerySubState<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> =
-  D extends InfiniteQueryDefinition<any, any, any, any, any>
-    ? QuerySubState<D, InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>> & {
-        direction?: InfiniteQueryDirection
-      }
-    : never
-
-type BaseMutationSubState<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> = {
-  requestId: string
-  data?: ResultTypeFrom<D>
-  error?:
-    | SerializedError
-    | (D extends MutationDefinition<any, infer BaseQuery, any, any>
-        ? BaseQueryError<BaseQuery>
-        : never)
-  endpointName: string
-  startedTimeStamp: number
-  fulfilledTimeStamp?: number
-}
-
-export type MutationSubState<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> =
-  | (({
-      status: QueryStatus.fulfilled
-    } & WithRequiredProp<
-      BaseMutationSubState<D>,
-      'data' | 'fulfilledTimeStamp'
-    >) & { error: undefined })
-  | (({ status: QueryStatus.pending } & BaseMutationSubState<D>) & {
-      data?: undefined
-    })
-  | ({ status: QueryStatus.rejected } & WithRequiredProp<
-      BaseMutationSubState<D>,
-      'error'
-    >)
-  | {
-      requestId?: undefined
-      status: QueryStatus.uninitialized
-      data?: undefined
-      error?: undefined
-      endpointName?: string
-      startedTimeStamp?: undefined
-      fulfilledTimeStamp?: undefined
-    }
-
-export type CombinedState<
-  D extends EndpointDefinitions,
-  E extends string,
-  ReducerPath extends string,
-> = {
-  queries: QueryState<D>
-  mutations: MutationState<D>
-  provided: InvalidationState<E>
-  subscriptions: SubscriptionState
-  config: ConfigState<ReducerPath>
-}
-
-export type InvalidationState<TagTypes extends string> = {
-  tags: {
-    [_ in TagTypes]: {
-      [id: string]: Array<QueryCacheKey>
-      [id: number]: Array<QueryCacheKey>
-    }
-  }
-  keys: Record<QueryCacheKey, Array<FullTagDescription<any>>>
-}
-
-export type QueryState<D extends EndpointDefinitions> = {
-  [queryCacheKey: string]:
-    | QuerySubState<D[string]>
-    | InfiniteQuerySubState<D[string]>
-    | undefined
-}
-
-export type SubscriptionInternalState = Map<string, SubscribersInternal>
-
-export type SubscriptionState = {
-  [queryCacheKey: string]: Subscribers | undefined
-}
-
-export type ConfigState<ReducerPath> = RefetchConfigOptions & {
-  reducerPath: ReducerPath
-  online: boolean
-  focused: boolean
-  middlewareRegistered: boolean | 'conflict'
-} & ModifiableConfigState
-
-export type ModifiableConfigState = {
-  keepUnusedDataFor: number
-  invalidationBehavior: 'delayed' | 'immediately'
-} & RefetchConfigOptions
-
-export type MutationState<D extends EndpointDefinitions> = {
-  [requestId: string]: MutationSubState<D[string]> | undefined
-}
-
-export type RootState<
-  Definitions extends EndpointDefinitions,
-  TagTypes extends string,
-  ReducerPath extends string,
-> = { [P in ReducerPath]: CombinedState<Definitions, TagTypes, P> }
Index: de_modules/@reduxjs/toolkit/src/query/core/buildInitiate.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildInitiate.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,596 +1,0 @@
-import type {
-  AsyncThunkAction,
-  SafePromise,
-  SerializedError,
-  ThunkAction,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import type { Dispatch } from 'redux'
-import { asSafePromise } from '../../tsHelpers'
-import { getEndpointDefinition, type Api, type ApiContext } from '../apiTypes'
-import type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes'
-import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
-import {
-  ENDPOINT_QUERY,
-  isQueryDefinition,
-  type EndpointDefinition,
-  type EndpointDefinitions,
-  type InfiniteQueryArgFrom,
-  type InfiniteQueryDefinition,
-  type MutationDefinition,
-  type PageParamFrom,
-  type QueryArgFrom,
-  type QueryDefinition,
-  type ResultTypeFrom,
-} from '../endpointDefinitions'
-import { filterNullishValues } from '../utils'
-import type {
-  InfiniteData,
-  InfiniteQueryConfigOptions,
-  InfiniteQueryDirection,
-  SubscriptionOptions,
-} from './apiState'
-import type {
-  InfiniteQueryResultSelectorResult,
-  QueryResultSelectorResult,
-} from './buildSelectors'
-import type {
-  InfiniteQueryThunk,
-  InfiniteQueryThunkArg,
-  MutationThunk,
-  QueryThunk,
-  QueryThunkArg,
-  ThunkApiMetaConfig,
-} from './buildThunks'
-import type { ApiEndpointQuery } from './module'
-import type { InternalMiddlewareState } from './buildMiddleware/types'
-
-export type BuildInitiateApiEndpointQuery<
-  Definition extends QueryDefinition<any, any, any, any, any>,
-> = {
-  initiate: StartQueryActionCreator<Definition>
-}
-
-export type BuildInitiateApiEndpointInfiniteQuery<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = {
-  initiate: StartInfiniteQueryActionCreator<Definition>
-}
-
-export type BuildInitiateApiEndpointMutation<
-  Definition extends MutationDefinition<any, any, any, any, any>,
-> = {
-  initiate: StartMutationActionCreator<Definition>
-}
-
-export const forceQueryFnSymbol = Symbol('forceQueryFn')
-export const isUpsertQuery = (arg: QueryThunkArg) =>
-  typeof arg[forceQueryFnSymbol] === 'function'
-
-export type StartQueryActionCreatorOptions = {
-  subscribe?: boolean
-  forceRefetch?: boolean | number
-  subscriptionOptions?: SubscriptionOptions
-  [forceQueryFnSymbol]?: () => QueryReturnValue
-}
-
-type RefetchOptions = {
-  refetchCachedPages?: boolean
-}
-
-export type StartInfiniteQueryActionCreatorOptions<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = StartQueryActionCreatorOptions & {
-  direction?: InfiniteQueryDirection
-  param?: unknown
-} & Partial<
-    Pick<
-      Partial<
-        InfiniteQueryConfigOptions<
-          ResultTypeFrom<D>,
-          PageParamFrom<D>,
-          InfiniteQueryArgFrom<D>
-        >
-      >,
-      'initialPageParam' | 'refetchCachedPages'
-    >
-  >
-
-type AnyQueryActionCreator<D extends EndpointDefinition<any, any, any, any>> = (
-  arg: any,
-  options?: StartQueryActionCreatorOptions,
-) => ThunkAction<AnyActionCreatorResult, any, any, UnknownAction>
-
-type StartQueryActionCreator<
-  D extends QueryDefinition<any, any, any, any, any>,
-> = (
-  arg: QueryArgFrom<D>,
-  options?: StartQueryActionCreatorOptions,
-) => ThunkAction<QueryActionCreatorResult<D>, any, any, UnknownAction>
-
-export type StartInfiniteQueryActionCreator<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = (
-  arg: InfiniteQueryArgFrom<D>,
-  options?: StartInfiniteQueryActionCreatorOptions<D>,
-) => ThunkAction<InfiniteQueryActionCreatorResult<D>, any, any, UnknownAction>
-
-type QueryActionCreatorFields = {
-  requestId: string
-  subscriptionOptions: SubscriptionOptions | undefined
-  abort(): void
-  unsubscribe(): void
-  updateSubscriptionOptions(options: SubscriptionOptions): void
-  queryCacheKey: string
-}
-
-type AnyActionCreatorResult = SafePromise<any> &
-  QueryActionCreatorFields & {
-    arg: any
-    unwrap(): Promise<any>
-    refetch(options?: RefetchOptions): AnyActionCreatorResult
-  }
-
-export type QueryActionCreatorResult<
-  D extends QueryDefinition<any, any, any, any>,
-> = SafePromise<QueryResultSelectorResult<D>> &
-  QueryActionCreatorFields & {
-    arg: QueryArgFrom<D>
-    unwrap(): Promise<ResultTypeFrom<D>>
-    refetch(): QueryActionCreatorResult<D>
-  }
-
-export type InfiniteQueryActionCreatorResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = SafePromise<InfiniteQueryResultSelectorResult<D>> &
-  QueryActionCreatorFields & {
-    arg: InfiniteQueryArgFrom<D>
-    unwrap(): Promise<InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>>
-    refetch(
-      options?: Pick<
-        StartInfiniteQueryActionCreatorOptions<D>,
-        'refetchCachedPages'
-      >,
-    ): InfiniteQueryActionCreatorResult<D>
-  }
-
-type StartMutationActionCreator<
-  D extends MutationDefinition<any, any, any, any>,
-> = (
-  arg: QueryArgFrom<D>,
-  options?: {
-    /**
-     * If this mutation should be tracked in the store.
-     * If you just want to manually trigger this mutation using `dispatch` and don't care about the
-     * result, state & potential errors being held in store, you can set this to false.
-     * (defaults to `true`)
-     */
-    track?: boolean
-    fixedCacheKey?: string
-  },
-) => ThunkAction<MutationActionCreatorResult<D>, any, any, UnknownAction>
-
-export type MutationActionCreatorResult<
-  D extends MutationDefinition<any, any, any, any>,
-> = SafePromise<
-  | {
-      data: ResultTypeFrom<D>
-      error?: undefined
-    }
-  | {
-      data?: undefined
-      error:
-        | Exclude<
-            BaseQueryError<
-              D extends MutationDefinition<any, infer BaseQuery, any, any>
-                ? BaseQuery
-                : never
-            >,
-            undefined
-          >
-        | SerializedError
-    }
-> & {
-  /** @internal */
-  arg: {
-    /**
-     * The name of the given endpoint for the mutation
-     */
-    endpointName: string
-    /**
-     * The original arguments supplied to the mutation call
-     */
-    originalArgs: QueryArgFrom<D>
-    /**
-     * Whether the mutation is being tracked in the store.
-     */
-    track?: boolean
-    fixedCacheKey?: string
-  }
-  /**
-   * A unique string generated for the request sequence
-   */
-  requestId: string
-
-  /**
-   * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation
-   * that was fired off from reaching the server, but only to assist in handling the response.
-   *
-   * Calling `abort()` prior to the promise resolving will force it to reach the error state with
-   * the serialized error:
-   * `{ name: 'AbortError', message: 'Aborted' }`
-   *
-   * @example
-   * ```ts
-   * const [updateUser] = useUpdateUserMutation();
-   *
-   * useEffect(() => {
-   *   const promise = updateUser(id);
-   *   promise
-   *     .unwrap()
-   *     .catch((err) => {
-   *       if (err.name === 'AbortError') return;
-   *       // else handle the unexpected error
-   *     })
-   *
-   *   return () => {
-   *     promise.abort();
-   *   }
-   * }, [id, updateUser])
-   * ```
-   */
-  abort(): void
-  /**
-   * Unwraps a mutation call to provide the raw response/error.
-   *
-   * @remarks
-   * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using .unwrap"
-   * addPost({ id: 1, name: 'Example' })
-   *   .unwrap()
-   *   .then((payload) => console.log('fulfilled', payload))
-   *   .catch((error) => console.error('rejected', error));
-   * ```
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using .unwrap with async await"
-   * try {
-   *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-   *   console.log('fulfilled', payload)
-   * } catch (error) {
-   *   console.error('rejected', error);
-   * }
-   * ```
-   */
-  unwrap(): Promise<ResultTypeFrom<D>>
-  /**
-   * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.
-   The value returned by the hook will reset to `isUninitialized` afterwards.
-   */
-  reset(): void
-}
-
-export function buildInitiate({
-  serializeQueryArgs,
-  queryThunk,
-  infiniteQueryThunk,
-  mutationThunk,
-  api,
-  context,
-  getInternalState,
-}: {
-  serializeQueryArgs: InternalSerializeQueryArgs
-  queryThunk: QueryThunk
-  infiniteQueryThunk: InfiniteQueryThunk<any>
-  mutationThunk: MutationThunk
-  api: Api<any, EndpointDefinitions, any, any>
-  context: ApiContext<EndpointDefinitions>
-  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState
-}) {
-  const getRunningQueries = (dispatch: Dispatch) =>
-    getInternalState(dispatch)?.runningQueries
-  const getRunningMutations = (dispatch: Dispatch) =>
-    getInternalState(dispatch)?.runningMutations
-
-  const {
-    unsubscribeQueryResult,
-    removeMutationResult,
-    updateSubscriptionOptions,
-  } = api.internalActions
-  return {
-    buildInitiateQuery,
-    buildInitiateInfiniteQuery,
-    buildInitiateMutation,
-    getRunningQueryThunk,
-    getRunningMutationThunk,
-    getRunningQueriesThunk,
-    getRunningMutationsThunk,
-  }
-
-  function getRunningQueryThunk(endpointName: string, queryArgs: any) {
-    return (dispatch: Dispatch) => {
-      const endpointDefinition = getEndpointDefinition(context, endpointName)
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName,
-      })
-      return getRunningQueries(dispatch)?.get(queryCacheKey) as
-        | QueryActionCreatorResult<never>
-        | InfiniteQueryActionCreatorResult<never>
-        | undefined
-    }
-  }
-
-  function getRunningMutationThunk(
-    /**
-     * this is only here to allow TS to infer the result type by input value
-     * we could use it to validate the result, but it's probably not necessary
-     */
-    _endpointName: string,
-    fixedCacheKeyOrRequestId: string,
-  ) {
-    return (dispatch: Dispatch) => {
-      return getRunningMutations(dispatch)?.get(fixedCacheKeyOrRequestId) as
-        | MutationActionCreatorResult<never>
-        | undefined
-    }
-  }
-
-  function getRunningQueriesThunk() {
-    return (dispatch: Dispatch) =>
-      filterNullishValues(getRunningQueries(dispatch))
-  }
-
-  function getRunningMutationsThunk() {
-    return (dispatch: Dispatch) =>
-      filterNullishValues(getRunningMutations(dispatch))
-  }
-
-  function middlewareWarning(dispatch: Dispatch) {
-    if (process.env.NODE_ENV !== 'production') {
-      if ((middlewareWarning as any).triggered) return
-      const returnedValue = dispatch(
-        api.internalActions.internal_getRTKQSubscriptions(),
-      )
-
-      ;(middlewareWarning as any).triggered = true
-
-      // The RTKQ middleware should return the internal state object,
-      // but it should _not_ be the action object.
-      if (
-        typeof returnedValue !== 'object' ||
-        typeof returnedValue?.type === 'string'
-      ) {
-        // Otherwise, must not have been added
-        throw new Error(
-          `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-You must add the middleware for RTK-Query to function correctly!`,
-        )
-      }
-    }
-  }
-
-  function buildInitiateAnyQuery<T extends 'query' | 'infiniteQuery'>(
-    endpointName: string,
-    endpointDefinition:
-      | QueryDefinition<any, any, any, any>
-      | InfiniteQueryDefinition<any, any, any, any, any>,
-  ) {
-    const queryAction: AnyQueryActionCreator<any> =
-      (
-        arg,
-        {
-          subscribe = true,
-          forceRefetch,
-          subscriptionOptions,
-          [forceQueryFnSymbol]: forceQueryFn,
-          ...rest
-        } = {},
-      ) =>
-      (dispatch, getState) => {
-        const queryCacheKey = serializeQueryArgs({
-          queryArgs: arg,
-          endpointDefinition,
-          endpointName,
-        })
-
-        let thunk: AsyncThunkAction<unknown, QueryThunkArg, ThunkApiMetaConfig>
-
-        const commonThunkArgs = {
-          ...rest,
-          type: ENDPOINT_QUERY as 'query',
-          subscribe,
-          forceRefetch: forceRefetch,
-          subscriptionOptions,
-          endpointName,
-          originalArgs: arg,
-          queryCacheKey,
-          [forceQueryFnSymbol]: forceQueryFn,
-        }
-
-        if (isQueryDefinition(endpointDefinition)) {
-          thunk = queryThunk(commonThunkArgs)
-        } else {
-          const { direction, initialPageParam, refetchCachedPages } =
-            rest as Pick<
-              InfiniteQueryThunkArg<any>,
-              'direction' | 'initialPageParam' | 'refetchCachedPages'
-            >
-          thunk = infiniteQueryThunk({
-            ...(commonThunkArgs as InfiniteQueryThunkArg<any>),
-            // Supply these even if undefined. This helps with a field existence
-            // check over in `buildSlice.ts`
-            direction,
-            initialPageParam,
-            refetchCachedPages,
-          })
-        }
-
-        const selector = (
-          api.endpoints[endpointName] as ApiEndpointQuery<any, any>
-        ).select(arg)
-
-        const thunkResult = dispatch(thunk)
-        const stateAfter = selector(getState())
-
-        middlewareWarning(dispatch)
-
-        const { requestId, abort } = thunkResult
-
-        const skippedSynchronously = stateAfter.requestId !== requestId
-
-        const runningQuery = getRunningQueries(dispatch)?.get(queryCacheKey)
-        const selectFromState = () => selector(getState())
-
-        const statePromise: AnyActionCreatorResult = Object.assign(
-          (forceQueryFn
-            ? // a query has been forced (upsertQueryData)
-              // -> we want to resolve it once data has been written with the data that will be written
-              thunkResult.then(selectFromState)
-            : skippedSynchronously && !runningQuery
-              ? // a query has been skipped due to a condition and we do not have any currently running query
-                // -> we want to resolve it immediately with the current data
-                Promise.resolve(stateAfter)
-              : // query just started or one is already in flight
-                // -> wait for the running query, then resolve with data from after that
-                Promise.all([runningQuery, thunkResult]).then(
-                  selectFromState,
-                )) as SafePromise<any>,
-          {
-            arg,
-            requestId,
-            subscriptionOptions,
-            queryCacheKey,
-            abort,
-            async unwrap() {
-              const result = await statePromise
-
-              if (result.isError) {
-                throw result.error
-              }
-
-              return result.data
-            },
-            refetch: (options?: RefetchOptions) =>
-              dispatch(
-                queryAction(arg, {
-                  subscribe: false,
-                  forceRefetch: true,
-                  ...options,
-                }),
-              ),
-            unsubscribe() {
-              if (subscribe)
-                dispatch(
-                  unsubscribeQueryResult({
-                    queryCacheKey,
-                    requestId,
-                  }),
-                )
-            },
-            updateSubscriptionOptions(options: SubscriptionOptions) {
-              statePromise.subscriptionOptions = options
-              dispatch(
-                updateSubscriptionOptions({
-                  endpointName,
-                  requestId,
-                  queryCacheKey,
-                  options,
-                }),
-              )
-            },
-          },
-        )
-
-        if (!runningQuery && !skippedSynchronously && !forceQueryFn) {
-          const runningQueries = getRunningQueries(dispatch)!
-          runningQueries.set(queryCacheKey, statePromise)
-
-          statePromise.then(() => {
-            runningQueries.delete(queryCacheKey)
-          })
-        }
-
-        return statePromise
-      }
-    return queryAction
-  }
-
-  function buildInitiateQuery(
-    endpointName: string,
-    endpointDefinition: QueryDefinition<any, any, any, any>,
-  ) {
-    const queryAction: StartQueryActionCreator<any> = buildInitiateAnyQuery(
-      endpointName,
-      endpointDefinition,
-    )
-
-    return queryAction
-  }
-
-  function buildInitiateInfiniteQuery(
-    endpointName: string,
-    endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>,
-  ) {
-    const infiniteQueryAction: StartInfiniteQueryActionCreator<any> =
-      buildInitiateAnyQuery(endpointName, endpointDefinition)
-
-    return infiniteQueryAction
-  }
-
-  function buildInitiateMutation(
-    endpointName: string,
-  ): StartMutationActionCreator<any> {
-    return (arg, { track = true, fixedCacheKey } = {}) =>
-      (dispatch, getState) => {
-        const thunk = mutationThunk({
-          type: 'mutation',
-          endpointName,
-          originalArgs: arg,
-          track,
-          fixedCacheKey,
-        })
-        const thunkResult = dispatch(thunk)
-        middlewareWarning(dispatch)
-        const { requestId, abort, unwrap } = thunkResult
-        const returnValuePromise = asSafePromise(
-          thunkResult.unwrap().then((data) => ({ data })),
-          (error) => ({ error }),
-        )
-
-        const reset = () => {
-          dispatch(removeMutationResult({ requestId, fixedCacheKey }))
-        }
-
-        const ret = Object.assign(returnValuePromise, {
-          arg: thunkResult.arg,
-          requestId,
-          abort,
-          unwrap,
-          reset,
-        })
-
-        const runningMutations = getRunningMutations(dispatch)!
-
-        runningMutations.set(requestId, ret)
-        ret.then(() => {
-          runningMutations.delete(requestId)
-        })
-        if (fixedCacheKey) {
-          runningMutations.set(fixedCacheKey, ret)
-          ret.then(() => {
-            if (runningMutations.get(fixedCacheKey) === ret) {
-              runningMutations.delete(fixedCacheKey)
-            }
-          })
-        }
-
-        return ret
-      }
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/batchActions.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/batchActions.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,207 +1,0 @@
-import type { InternalHandlerBuilder, SubscriptionSelectors } from './types'
-import type { SubscriptionInternalState, SubscriptionState } from '../apiState'
-import { produceWithPatches } from '../../utils/immerImports'
-import type { Action } from '@reduxjs/toolkit'
-import { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert'
-
-export const buildBatchedActionsHandler: InternalHandlerBuilder<
-  [actionShouldContinue: boolean, returnValue: SubscriptionSelectors | boolean]
-> = ({ api, queryThunk, internalState, mwApi }) => {
-  const subscriptionsPrefix = `${api.reducerPath}/subscriptions`
-
-  let previousSubscriptions: SubscriptionState =
-    null as unknown as SubscriptionState
-
-  let updateSyncTimer: ReturnType<typeof window.setTimeout> | null = null
-
-  const { updateSubscriptionOptions, unsubscribeQueryResult } =
-    api.internalActions
-
-  // Actually intentionally mutate the subscriptions state used in the middleware
-  // This is done to speed up perf when loading many components
-  const actuallyMutateSubscriptions = (
-    currentSubscriptions: SubscriptionInternalState,
-    action: Action,
-  ) => {
-    if (updateSubscriptionOptions.match(action)) {
-      const { queryCacheKey, requestId, options } = action.payload
-
-      const sub = currentSubscriptions.get(queryCacheKey)
-      if (sub?.has(requestId)) {
-        sub.set(requestId, options)
-      }
-      return true
-    }
-    if (unsubscribeQueryResult.match(action)) {
-      const { queryCacheKey, requestId } = action.payload
-      const sub = currentSubscriptions.get(queryCacheKey)
-      if (sub) {
-        sub.delete(requestId)
-      }
-      return true
-    }
-    if (api.internalActions.removeQueryResult.match(action)) {
-      currentSubscriptions.delete(action.payload.queryCacheKey)
-      return true
-    }
-    if (queryThunk.pending.match(action)) {
-      const {
-        meta: { arg, requestId },
-      } = action
-      const substate = getOrInsertComputed(
-        currentSubscriptions,
-        arg.queryCacheKey,
-        createNewMap,
-      )
-      if (arg.subscribe) {
-        substate.set(
-          requestId,
-          arg.subscriptionOptions ?? substate.get(requestId) ?? {},
-        )
-      }
-      return true
-    }
-    let mutated = false
-
-    if (queryThunk.rejected.match(action)) {
-      const {
-        meta: { condition, arg, requestId },
-      } = action
-      if (condition && arg.subscribe) {
-        const substate = getOrInsertComputed(
-          currentSubscriptions,
-          arg.queryCacheKey,
-          createNewMap,
-        )
-        substate.set(
-          requestId,
-          arg.subscriptionOptions ?? substate.get(requestId) ?? {},
-        )
-
-        mutated = true
-      }
-    }
-
-    return mutated
-  }
-
-  const getSubscriptions = () => internalState.currentSubscriptions
-  const getSubscriptionCount = (queryCacheKey: string) => {
-    const subscriptions = getSubscriptions()
-    const subscriptionsForQueryArg = subscriptions.get(queryCacheKey)
-    return subscriptionsForQueryArg?.size ?? 0
-  }
-  const isRequestSubscribed = (queryCacheKey: string, requestId: string) => {
-    const subscriptions = getSubscriptions()
-    return !!subscriptions?.get(queryCacheKey)?.get(requestId)
-  }
-
-  const subscriptionSelectors: SubscriptionSelectors = {
-    getSubscriptions,
-    getSubscriptionCount,
-    isRequestSubscribed,
-  }
-
-  function serializeSubscriptions(
-    currentSubscriptions: SubscriptionInternalState,
-  ): SubscriptionState {
-    // We now use nested Maps for subscriptions, instead of
-    // plain Records. Stringify this accordingly so we can
-    // convert it to the shape we need for the store.
-    return JSON.parse(
-      JSON.stringify(
-        Object.fromEntries(
-          [...currentSubscriptions].map(([k, v]) => [k, Object.fromEntries(v)]),
-        ),
-      ),
-    )
-  }
-
-  return (
-    action,
-    mwApi,
-  ): [
-    actionShouldContinue: boolean,
-    result: SubscriptionSelectors | boolean,
-  ] => {
-    if (!previousSubscriptions) {
-      // Initialize it the first time this handler runs
-      previousSubscriptions = serializeSubscriptions(
-        internalState.currentSubscriptions,
-      )
-    }
-
-    if (api.util.resetApiState.match(action)) {
-      previousSubscriptions = {}
-      internalState.currentSubscriptions.clear()
-      updateSyncTimer = null
-      return [true, false]
-    }
-
-    // Intercept requests by hooks to see if they're subscribed
-    // We return the internal state reference so that hooks
-    // can do their own checks to see if they're still active.
-    // It's stupid and hacky, but it does cut down on some dispatch calls.
-    if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {
-      return [false, subscriptionSelectors]
-    }
-
-    // Update subscription data based on this action
-    const didMutate = actuallyMutateSubscriptions(
-      internalState.currentSubscriptions,
-      action,
-    )
-
-    let actionShouldContinue = true
-
-    // HACK Sneak the test-only polling state back out
-    if (
-      process.env.NODE_ENV === 'test' &&
-      typeof action.type === 'string' &&
-      action.type === `${api.reducerPath}/getPolling`
-    ) {
-      return [false, internalState.currentPolls] as any
-    }
-
-    if (didMutate) {
-      if (!updateSyncTimer) {
-        // We only use the subscription state for the Redux DevTools at this point,
-        // as the real data is kept here in the middleware.
-        // Given that, we can throttle synchronizing this state significantly to
-        // save on overall perf.
-        // In 1.9, it was updated in a microtask, but now we do it at most every 500ms.
-        updateSyncTimer = setTimeout(() => {
-          // Deep clone the current subscription data
-          const newSubscriptions: SubscriptionState = serializeSubscriptions(
-            internalState.currentSubscriptions,
-          )
-          // Figure out a smaller diff between original and current
-          const [, patches] = produceWithPatches(
-            previousSubscriptions,
-            () => newSubscriptions,
-          )
-
-          // Sync the store state for visibility
-          mwApi.next(api.internalActions.subscriptionsUpdated(patches))
-          // Save the cloned state for later reference
-          previousSubscriptions = newSubscriptions
-          updateSyncTimer = null
-        }, 500)
-      }
-
-      const isSubscriptionSliceAction =
-        typeof action.type == 'string' &&
-        !!action.type.startsWith(subscriptionsPrefix)
-
-      const isAdditionalSubscriptionAction =
-        queryThunk.rejected.match(action) &&
-        action.meta.condition &&
-        !!action.meta.arg.subscribe
-
-      actionShouldContinue =
-        !isSubscriptionSliceAction && !isAdditionalSubscriptionAction
-    }
-
-    return [actionShouldContinue, false]
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheCollection.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheCollection.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,204 +1,0 @@
-import { getEndpointDefinition } from '@internal/query/apiTypes'
-import type { QueryDefinition } from '../../endpointDefinitions'
-import type { ConfigState, QueryCacheKey, QuerySubState } from '../apiState'
-import { isAnyOf } from '../rtkImports'
-import type {
-  ApiMiddlewareInternalHandler,
-  InternalHandlerBuilder,
-  QueryStateMeta,
-  SubMiddlewareApi,
-  TimeoutId,
-} from './types'
-
-export type ReferenceCacheCollection = never
-
-/**
- * @example
- * ```ts
- * // codeblock-meta title="keepUnusedDataFor example"
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => 'posts',
- *       // highlight-start
- *       keepUnusedDataFor: 5
- *       // highlight-end
- *     })
- *   })
- * })
- * ```
- */
-export type CacheCollectionQueryExtraOptions = {
-  /**
-   * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_
-   *
-   * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-   */
-  keepUnusedDataFor?: number
-}
-
-// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store
-// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,
-// it wraps and ends up executing immediately.
-// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.
-export const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647
-export const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1
-
-export const buildCacheCollectionHandler: InternalHandlerBuilder = ({
-  reducerPath,
-  api,
-  queryThunk,
-  context,
-  internalState,
-  selectors: { selectQueryEntry, selectConfig },
-  getRunningQueryThunk,
-  mwApi,
-}) => {
-  const { removeQueryResult, unsubscribeQueryResult, cacheEntriesUpserted } =
-    api.internalActions
-
-  const canTriggerUnsubscribe = isAnyOf(
-    unsubscribeQueryResult.match,
-    queryThunk.fulfilled,
-    queryThunk.rejected,
-    cacheEntriesUpserted.match,
-  )
-
-  function anySubscriptionsRemainingForKey(queryCacheKey: string) {
-    const subscriptions = internalState.currentSubscriptions.get(queryCacheKey)
-    if (!subscriptions) {
-      return false
-    }
-
-    const hasSubscriptions = subscriptions.size > 0
-    return hasSubscriptions
-  }
-
-  const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {}
-
-  function abortAllPromises<T extends { abort?: () => void }>(
-    promiseMap: Map<string, T | undefined>,
-  ): void {
-    for (const promise of promiseMap.values()) {
-      promise?.abort?.()
-    }
-  }
-
-  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {
-    const state = mwApi.getState()
-    const config = selectConfig(state)
-
-    if (canTriggerUnsubscribe(action)) {
-      let queryCacheKeys: QueryCacheKey[]
-
-      if (cacheEntriesUpserted.match(action)) {
-        queryCacheKeys = action.payload.map(
-          (entry) => entry.queryDescription.queryCacheKey,
-        )
-      } else {
-        const { queryCacheKey } = unsubscribeQueryResult.match(action)
-          ? action.payload
-          : action.meta.arg
-        queryCacheKeys = [queryCacheKey]
-      }
-
-      handleUnsubscribeMany(queryCacheKeys, mwApi, config)
-    }
-
-    if (api.util.resetApiState.match(action)) {
-      for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {
-        if (timeout) clearTimeout(timeout)
-        delete currentRemovalTimeouts[key]
-      }
-
-      abortAllPromises(internalState.runningQueries)
-      abortAllPromises(internalState.runningMutations)
-    }
-
-    if (context.hasRehydrationInfo(action)) {
-      const { queries } = context.extractRehydrationInfo(action)!
-      // Gotcha:
-      // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`
-      // will be used instead of the endpoint-specific one.
-      handleUnsubscribeMany(
-        Object.keys(queries) as QueryCacheKey[],
-        mwApi,
-        config,
-      )
-    }
-  }
-
-  function handleUnsubscribeMany(
-    cacheKeys: QueryCacheKey[],
-    api: SubMiddlewareApi,
-    config: ConfigState<string>,
-  ) {
-    const state = api.getState()
-    for (const queryCacheKey of cacheKeys) {
-      const entry = selectQueryEntry(state, queryCacheKey)
-      if (entry?.endpointName) {
-        handleUnsubscribe(queryCacheKey, entry.endpointName, api, config)
-      }
-    }
-  }
-
-  function handleUnsubscribe(
-    queryCacheKey: QueryCacheKey,
-    endpointName: string,
-    api: SubMiddlewareApi,
-    config: ConfigState<string>,
-  ) {
-    const endpointDefinition = getEndpointDefinition(
-      context,
-      endpointName,
-    ) as QueryDefinition<any, any, any, any>
-    const keepUnusedDataFor =
-      endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor
-
-    if (keepUnusedDataFor === Infinity) {
-      // Hey, user said keep this forever!
-      return
-    }
-    // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by
-    // clamping the max value to be at most 1000ms less than the 32-bit max.
-    // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)
-    // Also avoid negative values too.
-    const finalKeepUnusedDataFor = Math.max(
-      0,
-      Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS),
-    )
-
-    if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-      const currentTimeout = currentRemovalTimeouts[queryCacheKey]
-      if (currentTimeout) {
-        clearTimeout(currentTimeout)
-      }
-
-      currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {
-        if (!anySubscriptionsRemainingForKey(queryCacheKey)) {
-          // Try to abort any running query for this cache key
-          const entry = selectQueryEntry(api.getState(), queryCacheKey)
-
-          if (entry?.endpointName) {
-            const runningQuery = api.dispatch(
-              getRunningQueryThunk(entry.endpointName, entry.originalArgs),
-            )
-            runningQuery?.abort()
-          }
-          api.dispatch(removeQueryResult({ queryCacheKey }))
-        }
-        delete currentRemovalTimeouts![queryCacheKey]
-      }, finalKeepUnusedDataFor * 1000)
-    }
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheLifecycle.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheLifecycle.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,379 +1,0 @@
-import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'
-import type {
-  BaseQueryFn,
-  BaseQueryMeta,
-  BaseQueryResult,
-} from '../../baseQueryTypes'
-import type {
-  BaseEndpointDefinition,
-  DefinitionType,
-} from '../../endpointDefinitions'
-import { isAnyQueryDefinition } from '../../endpointDefinitions'
-import type { QueryCacheKey, RootState } from '../apiState'
-import type {
-  MutationResultSelectorResult,
-  QueryResultSelectorResult,
-} from '../buildSelectors'
-import { getMutationCacheKey } from '../buildSlice'
-import type { PatchCollection, Recipe } from '../buildThunks'
-import { isAsyncThunkAction, isFulfilled } from '../rtkImports'
-import type {
-  ApiMiddlewareInternalHandler,
-  InternalHandlerBuilder,
-  PromiseWithKnownReason,
-  SubMiddlewareApi,
-} from './types'
-import { getEndpointDefinition } from '@internal/query/apiTypes'
-
-export type ReferenceCacheLifecycle = never
-
-export interface QueryBaseLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> extends LifecycleApi<ReducerPath> {
-  /**
-   * Gets the current value of this cache entry.
-   */
-  getCacheEntry(): QueryResultSelectorResult<
-    { type: DefinitionType.query } & BaseEndpointDefinition<
-      QueryArg,
-      BaseQuery,
-      ResultType,
-      BaseQueryResult<BaseQuery>
-    >
-  >
-  /**
-   * Updates the current cache entry value.
-   * For documentation see `api.util.updateQueryData`.
-   */
-  updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection
-}
-
-export type MutationBaseLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> = LifecycleApi<ReducerPath> & {
-  /**
-   * Gets the current value of this cache entry.
-   */
-  getCacheEntry(): MutationResultSelectorResult<
-    { type: DefinitionType.mutation } & BaseEndpointDefinition<
-      QueryArg,
-      BaseQuery,
-      ResultType,
-      BaseQueryResult<BaseQuery>
-    >
-  >
-}
-
-type LifecycleApi<ReducerPath extends string = string> = {
-  /**
-   * The dispatch method for the store
-   */
-  dispatch: ThunkDispatch<any, any, UnknownAction>
-  /**
-   * A method to get the current state
-   */
-  getState(): RootState<any, any, ReducerPath>
-  /**
-   * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.
-   */
-  extra: unknown
-  /**
-   * A unique ID generated for the mutation
-   */
-  requestId: string
-}
-
-type CacheLifecyclePromises<ResultType = unknown, MetaType = unknown> = {
-  /**
-   * Promise that will resolve with the first value for this cache key.
-   * This allows you to `await` until an actual value is in cache.
-   *
-   * If the cache entry is removed from the cache before any value has ever
-   * been resolved, this Promise will reject with
-   * `new Error('Promise never resolved before cacheEntryRemoved.')`
-   * to prevent memory leaks.
-   * You can just re-throw that error (or not handle it at all) -
-   * it will be caught outside of `cacheEntryAdded`.
-   *
-   * If you don't interact with this promise, it will not throw.
-   */
-  cacheDataLoaded: PromiseWithKnownReason<
-    {
-      /**
-       * The (transformed) query result.
-       */
-      data: ResultType
-      /**
-       * The `meta` returned by the `baseQuery`
-       */
-      meta: MetaType
-    },
-    typeof neverResolvedError
-  >
-  /**
-   * Promise that allows you to wait for the point in time when the cache entry
-   * has been removed from the cache, by not being used/subscribed to any more
-   * in the application for too long or by dispatching `api.util.resetApiState`.
-   */
-  cacheEntryRemoved: Promise<void>
-}
-
-export interface QueryCacheLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>,
-    CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}
-
-export type MutationCacheLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> &
-  CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>>
-
-export type CacheLifecycleQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = {
-  onCacheEntryAdded?(
-    arg: QueryArg,
-    api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>,
-  ): Promise<void> | void
-}
-
-export type CacheLifecycleInfiniteQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = CacheLifecycleQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery,
-  ReducerPath
->
-
-export type CacheLifecycleMutationExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = {
-  onCacheEntryAdded?(
-    arg: QueryArg,
-    api: MutationCacheLifecycleApi<
-      QueryArg,
-      BaseQuery,
-      ResultType,
-      ReducerPath
-    >,
-  ): Promise<void> | void
-}
-
-const neverResolvedError = new Error(
-  'Promise never resolved before cacheEntryRemoved.',
-) as Error & {
-  message: 'Promise never resolved before cacheEntryRemoved.'
-}
-
-export const buildCacheLifecycleHandler: InternalHandlerBuilder = ({
-  api,
-  reducerPath,
-  context,
-  queryThunk,
-  mutationThunk,
-  internalState,
-  selectors: { selectQueryEntry, selectApiState },
-}) => {
-  const isQueryThunk = isAsyncThunkAction(queryThunk)
-  const isMutationThunk = isAsyncThunkAction(mutationThunk)
-  const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk)
-
-  type CacheLifecycle = {
-    valueResolved?(value: { data: unknown; meta: unknown }): unknown
-    cacheEntryRemoved(): void
-  }
-  const lifecycleMap: Record<string, CacheLifecycle> = {}
-
-  const { removeQueryResult, removeMutationResult, cacheEntriesUpserted } =
-    api.internalActions
-
-  function resolveLifecycleEntry(
-    cacheKey: string,
-    data: unknown,
-    meta: unknown,
-  ) {
-    const lifecycle = lifecycleMap[cacheKey]
-
-    if (lifecycle?.valueResolved) {
-      lifecycle.valueResolved({
-        data,
-        meta,
-      })
-      delete lifecycle.valueResolved
-    }
-  }
-
-  function removeLifecycleEntry(cacheKey: string) {
-    const lifecycle = lifecycleMap[cacheKey]
-    if (lifecycle) {
-      delete lifecycleMap[cacheKey]
-      lifecycle.cacheEntryRemoved()
-    }
-  }
-
-  function getActionMetaFields(
-    action:
-      | ReturnType<typeof queryThunk.pending>
-      | ReturnType<typeof mutationThunk.pending>,
-  ) {
-    const { arg, requestId } = action.meta
-    const { endpointName, originalArgs } = arg
-    return [endpointName, originalArgs, requestId] as const
-  }
-
-  const handler: ApiMiddlewareInternalHandler = (
-    action,
-    mwApi,
-    stateBefore,
-  ) => {
-    const cacheKey = getCacheKey(action) as QueryCacheKey
-
-    function checkForNewCacheKey(
-      endpointName: string,
-      cacheKey: QueryCacheKey,
-      requestId: string,
-      originalArgs: unknown,
-    ) {
-      const oldEntry = selectQueryEntry(stateBefore, cacheKey)
-      const newEntry = selectQueryEntry(mwApi.getState(), cacheKey)
-      if (!oldEntry && newEntry) {
-        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId)
-      }
-    }
-
-    if (queryThunk.pending.match(action)) {
-      const [endpointName, originalArgs, requestId] =
-        getActionMetaFields(action)
-      checkForNewCacheKey(endpointName, cacheKey, requestId, originalArgs)
-    } else if (cacheEntriesUpserted.match(action)) {
-      for (const { queryDescription, value } of action.payload) {
-        const { endpointName, originalArgs, queryCacheKey } = queryDescription
-        checkForNewCacheKey(
-          endpointName,
-          queryCacheKey,
-          action.meta.requestId,
-          originalArgs,
-        )
-
-        resolveLifecycleEntry(queryCacheKey, value, {})
-      }
-    } else if (mutationThunk.pending.match(action)) {
-      const state = mwApi.getState()[reducerPath].mutations[cacheKey]
-      if (state) {
-        const [endpointName, originalArgs, requestId] =
-          getActionMetaFields(action)
-        handleNewKey(endpointName, originalArgs, cacheKey, mwApi, requestId)
-      }
-    } else if (isFulfilledThunk(action)) {
-      resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta)
-    } else if (
-      removeQueryResult.match(action) ||
-      removeMutationResult.match(action)
-    ) {
-      removeLifecycleEntry(cacheKey)
-    } else if (api.util.resetApiState.match(action)) {
-      for (const cacheKey of Object.keys(lifecycleMap)) {
-        removeLifecycleEntry(cacheKey)
-      }
-    }
-  }
-
-  function getCacheKey(action: any) {
-    if (isQueryThunk(action)) return action.meta.arg.queryCacheKey
-    if (isMutationThunk(action)) {
-      return action.meta.arg.fixedCacheKey ?? action.meta.requestId
-    }
-    if (removeQueryResult.match(action)) return action.payload.queryCacheKey
-    if (removeMutationResult.match(action))
-      return getMutationCacheKey(action.payload)
-    return ''
-  }
-
-  function handleNewKey(
-    endpointName: string,
-    originalArgs: any,
-    queryCacheKey: string,
-    mwApi: SubMiddlewareApi,
-    requestId: string,
-  ) {
-    const endpointDefinition = getEndpointDefinition(context, endpointName)
-    const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded
-    if (!onCacheEntryAdded) return
-
-    const lifecycle = {} as CacheLifecycle
-
-    const cacheEntryRemoved = new Promise<void>((resolve) => {
-      lifecycle.cacheEntryRemoved = resolve
-    })
-    const cacheDataLoaded: PromiseWithKnownReason<
-      { data: unknown; meta: unknown },
-      typeof neverResolvedError
-    > = Promise.race([
-      new Promise<{ data: unknown; meta: unknown }>((resolve) => {
-        lifecycle.valueResolved = resolve
-      }),
-      cacheEntryRemoved.then(() => {
-        throw neverResolvedError
-      }),
-    ])
-    // prevent uncaught promise rejections from happening.
-    // if the original promise is used in any way, that will create a new promise that will throw again
-    cacheDataLoaded.catch(() => {})
-    lifecycleMap[queryCacheKey] = lifecycle
-    const selector = (api.endpoints[endpointName] as any).select(
-      isAnyQueryDefinition(endpointDefinition) ? originalArgs : queryCacheKey,
-    )
-
-    const extra = mwApi.dispatch((_, __, extra) => extra)
-    const lifecycleApi = {
-      ...mwApi,
-      getCacheEntry: () => selector(mwApi.getState()),
-      requestId,
-      extra,
-      updateCachedData: (isAnyQueryDefinition(endpointDefinition)
-        ? (updateRecipe: Recipe<any>) =>
-            mwApi.dispatch(
-              api.util.updateQueryData(
-                endpointName as never,
-                originalArgs as never,
-                updateRecipe,
-              ),
-            )
-        : undefined) as any,
-
-      cacheDataLoaded,
-      cacheEntryRemoved,
-    }
-
-    const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi as any)
-    // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further
-    Promise.resolve(runningHandler).catch((e) => {
-      if (e === neverResolvedError) return
-      throw e
-    })
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/devMiddleware.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/devMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import type { InternalHandlerBuilder } from './types'
-
-export const buildDevCheckHandler: InternalHandlerBuilder = ({
-  api,
-  context: { apiUid },
-  reducerPath,
-}) => {
-  return (action, mwApi) => {
-    if (api.util.resetApiState.match(action)) {
-      // dispatch after api reset
-      mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))
-    }
-
-    if (
-      typeof process !== 'undefined' &&
-      process.env.NODE_ENV === 'development'
-    ) {
-      if (
-        api.internalActions.middlewareRegistered.match(action) &&
-        action.payload === apiUid &&
-        mwApi.getState()[reducerPath]?.config?.middlewareRegistered ===
-          'conflict'
-      ) {
-        console.warn(`There is a mismatch between slice and middleware for the reducerPath "${reducerPath}".
-You can only have one api per reducer path, this will lead to crashes in various situations!${
-          reducerPath === 'api'
-            ? `
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`
-            : ''
-        }`)
-      }
-    }
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,162 +1,0 @@
-import type {
-  Action,
-  Middleware,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import type {
-  EndpointDefinitions,
-  FullTagDescription,
-} from '../../endpointDefinitions'
-import type { QueryStatus, QuerySubState, RootState } from '../apiState'
-import type { QueryThunkArg } from '../buildThunks'
-import { createAction, isAction } from '../rtkImports'
-import { buildBatchedActionsHandler } from './batchActions'
-import { buildCacheCollectionHandler } from './cacheCollection'
-import { buildCacheLifecycleHandler } from './cacheLifecycle'
-import { buildDevCheckHandler } from './devMiddleware'
-import { buildInvalidationByTagsHandler } from './invalidationByTags'
-import { buildPollingHandler } from './polling'
-import { buildQueryLifecycleHandler } from './queryLifecycle'
-import type {
-  BuildMiddlewareInput,
-  InternalHandlerBuilder,
-  InternalMiddlewareState,
-} from './types'
-import { buildWindowEventHandler } from './windowEventHandling'
-import type { ApiEndpointQuery } from '../module'
-export type { ReferenceCacheCollection } from './cacheCollection'
-export type {
-  MutationCacheLifecycleApi,
-  QueryCacheLifecycleApi,
-  ReferenceCacheLifecycle,
-} from './cacheLifecycle'
-export type {
-  MutationLifecycleApi,
-  QueryLifecycleApi,
-  ReferenceQueryLifecycle,
-  TypedMutationOnQueryStarted,
-  TypedQueryOnQueryStarted,
-} from './queryLifecycle'
-export type { SubscriptionSelectors } from './types'
-
-export function buildMiddleware<
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string,
-  TagTypes extends string,
->(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {
-  const { reducerPath, queryThunk, api, context, getInternalState } = input
-  const { apiUid } = context
-
-  const actions = {
-    invalidateTags: createAction<
-      Array<TagTypes | FullTagDescription<TagTypes> | null | undefined>
-    >(`${reducerPath}/invalidateTags`),
-  }
-
-  const isThisApiSliceAction = (action: Action) =>
-    action.type.startsWith(`${reducerPath}/`)
-
-  const handlerBuilders: InternalHandlerBuilder[] = [
-    buildDevCheckHandler,
-    buildCacheCollectionHandler,
-    buildInvalidationByTagsHandler,
-    buildPollingHandler,
-    buildCacheLifecycleHandler,
-    buildQueryLifecycleHandler,
-  ]
-
-  const middleware: Middleware<
-    {},
-    RootState<Definitions, string, ReducerPath>,
-    ThunkDispatch<any, any, UnknownAction>
-  > = (mwApi) => {
-    let initialized = false
-
-    const internalState = getInternalState(mwApi.dispatch)
-
-    const builderArgs = {
-      ...(input as any as BuildMiddlewareInput<
-        EndpointDefinitions,
-        string,
-        string
-      >),
-      internalState,
-      refetchQuery,
-      isThisApiSliceAction,
-      mwApi,
-    }
-
-    const handlers = handlerBuilders.map((build) => build(builderArgs))
-
-    const batchedActionsHandler = buildBatchedActionsHandler(builderArgs)
-    const windowEventsHandler = buildWindowEventHandler(builderArgs)
-
-    return (next) => {
-      return (action) => {
-        if (!isAction(action)) {
-          return next(action)
-        }
-        if (!initialized) {
-          initialized = true
-          // dispatch before any other action
-          mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))
-        }
-
-        const mwApiWithNext = { ...mwApi, next }
-
-        const stateBefore = mwApi.getState()
-
-        const [actionShouldContinue, internalProbeResult] =
-          batchedActionsHandler(action, mwApiWithNext, stateBefore)
-
-        let res: any
-
-        if (actionShouldContinue) {
-          res = next(action)
-        } else {
-          res = internalProbeResult
-        }
-
-        if (!!mwApi.getState()[reducerPath]) {
-          // Only run these checks if the middleware is registered okay
-
-          // This looks for actions that aren't specific to the API slice
-          windowEventsHandler(action, mwApiWithNext, stateBefore)
-
-          if (
-            isThisApiSliceAction(action) ||
-            context.hasRehydrationInfo(action)
-          ) {
-            // Only run these additional checks if the actions are part of the API slice,
-            // or the action has hydration-related data
-            for (const handler of handlers) {
-              handler(action, mwApiWithNext, stateBefore)
-            }
-          }
-        }
-
-        return res
-      }
-    }
-  }
-
-  return { middleware, actions }
-
-  function refetchQuery(
-    querySubState: Exclude<
-      QuerySubState<any>,
-      { status: QueryStatus.uninitialized }
-    >,
-  ) {
-    return (
-      input.api.endpoints[querySubState.endpointName] as ApiEndpointQuery<
-        any,
-        any
-      >
-    ).initiate(querySubState.originalArgs as any, {
-      subscribe: false,
-      forceRefetch: true,
-    })
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-import {
-  isAnyOf,
-  isFulfilled,
-  isRejected,
-  isRejectedWithValue,
-} from '../rtkImports'
-
-import type {
-  EndpointDefinitions,
-  FullTagDescription,
-} from '../../endpointDefinitions'
-import { calculateProvidedBy } from '../../endpointDefinitions'
-import type { CombinedState, QueryCacheKey } from '../apiState'
-import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState'
-import { calculateProvidedByThunk } from '../buildThunks'
-import type {
-  SubMiddlewareApi,
-  InternalHandlerBuilder,
-  ApiMiddlewareInternalHandler,
-} from './types'
-import { getOrInsertComputed, createNewMap } from '../../utils/getOrInsert'
-
-export const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({
-  reducerPath,
-  context,
-  context: { endpointDefinitions },
-  mutationThunk,
-  queryThunk,
-  api,
-  assertTagType,
-  refetchQuery,
-  internalState,
-}) => {
-  const { removeQueryResult } = api.internalActions
-  const isThunkActionWithTags = isAnyOf(
-    isFulfilled(mutationThunk),
-    isRejectedWithValue(mutationThunk),
-  )
-
-  const isQueryEnd = isAnyOf(
-    isFulfilled(queryThunk, mutationThunk),
-    isRejected(queryThunk, mutationThunk),
-  )
-  let pendingTagInvalidations: FullTagDescription<string>[] = []
-  // Track via counter so we can avoid iterating over state every time
-  let pendingRequestCount = 0
-
-  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {
-    if (
-      queryThunk.pending.match(action) ||
-      mutationThunk.pending.match(action)
-    ) {
-      pendingRequestCount++
-    }
-
-    if (isQueryEnd(action)) {
-      pendingRequestCount = Math.max(0, pendingRequestCount - 1)
-    }
-
-    if (isThunkActionWithTags(action)) {
-      invalidateTags(
-        calculateProvidedByThunk(
-          action,
-          'invalidatesTags',
-          endpointDefinitions,
-          assertTagType,
-        ),
-        mwApi,
-      )
-    } else if (isQueryEnd(action)) {
-      invalidateTags([], mwApi)
-    } else if (api.util.invalidateTags.match(action)) {
-      invalidateTags(
-        calculateProvidedBy(
-          action.payload,
-          undefined,
-          undefined,
-          undefined,
-          undefined,
-          assertTagType,
-        ),
-        mwApi,
-      )
-    }
-  }
-
-  function hasPendingRequests() {
-    return pendingRequestCount > 0
-  }
-
-  function invalidateTags(
-    newTags: readonly FullTagDescription<string>[],
-    mwApi: SubMiddlewareApi,
-  ) {
-    const rootState = mwApi.getState()
-    const state = rootState[reducerPath]
-
-    pendingTagInvalidations.push(...newTags)
-
-    if (
-      state.config.invalidationBehavior === 'delayed' &&
-      hasPendingRequests()
-    ) {
-      return
-    }
-
-    const tags = pendingTagInvalidations
-    pendingTagInvalidations = []
-    if (tags.length === 0) return
-
-    const toInvalidate = api.util.selectInvalidatedBy(rootState, tags)
-
-    context.batch(() => {
-      const valuesArray = Array.from(toInvalidate.values())
-      for (const { queryCacheKey } of valuesArray) {
-        const querySubState = state.queries[queryCacheKey]
-        const subscriptionSubState = getOrInsertComputed(
-          internalState.currentSubscriptions,
-          queryCacheKey,
-          createNewMap,
-        )
-
-        if (querySubState) {
-          if (subscriptionSubState.size === 0) {
-            mwApi.dispatch(
-              removeQueryResult({
-                queryCacheKey: queryCacheKey as QueryCacheKey,
-              }),
-            )
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            mwApi.dispatch(refetchQuery(querySubState))
-          }
-        }
-      }
-    })
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/polling.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/polling.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,187 +1,0 @@
-import type {
-  QueryCacheKey,
-  QuerySubstateIdentifier,
-  Subscribers,
-  SubscribersInternal,
-} from '../apiState'
-import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState'
-import type {
-  QueryStateMeta,
-  SubMiddlewareApi,
-  TimeoutId,
-  InternalHandlerBuilder,
-  ApiMiddlewareInternalHandler,
-  InternalMiddlewareState,
-} from './types'
-
-export const buildPollingHandler: InternalHandlerBuilder = ({
-  reducerPath,
-  queryThunk,
-  api,
-  refetchQuery,
-  internalState,
-}) => {
-  const { currentPolls, currentSubscriptions } = internalState
-
-  // Batching state for polling updates
-  const pendingPollingUpdates = new Set<string>()
-  let pollingUpdateTimer: ReturnType<typeof setTimeout> | null = null
-
-  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {
-    if (
-      api.internalActions.updateSubscriptionOptions.match(action) ||
-      api.internalActions.unsubscribeQueryResult.match(action)
-    ) {
-      schedulePollingUpdate(action.payload.queryCacheKey, mwApi)
-    }
-
-    if (
-      queryThunk.pending.match(action) ||
-      (queryThunk.rejected.match(action) && action.meta.condition)
-    ) {
-      schedulePollingUpdate(action.meta.arg.queryCacheKey, mwApi)
-    }
-
-    if (
-      queryThunk.fulfilled.match(action) ||
-      (queryThunk.rejected.match(action) && !action.meta.condition)
-    ) {
-      startNextPoll(action.meta.arg, mwApi)
-    }
-
-    if (api.util.resetApiState.match(action)) {
-      clearPolls()
-      // Clear any pending updates
-      if (pollingUpdateTimer) {
-        clearTimeout(pollingUpdateTimer)
-        pollingUpdateTimer = null
-      }
-      pendingPollingUpdates.clear()
-    }
-  }
-
-  function schedulePollingUpdate(queryCacheKey: string, api: SubMiddlewareApi) {
-    pendingPollingUpdates.add(queryCacheKey)
-
-    if (!pollingUpdateTimer) {
-      pollingUpdateTimer = setTimeout(() => {
-        // Process all pending updates in a single batch
-        for (const key of pendingPollingUpdates) {
-          updatePollingInterval({ queryCacheKey: key as any }, api)
-        }
-        pendingPollingUpdates.clear()
-        pollingUpdateTimer = null
-      }, 0)
-    }
-  }
-
-  function startNextPoll(
-    { queryCacheKey }: QuerySubstateIdentifier,
-    api: SubMiddlewareApi,
-  ) {
-    const state = api.getState()[reducerPath]
-    const querySubState = state.queries[queryCacheKey]
-    const subscriptions = currentSubscriptions.get(queryCacheKey)
-
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) return
-
-    const { lowestPollingInterval, skipPollingIfUnfocused } =
-      findLowestPollingInterval(subscriptions)
-    if (!Number.isFinite(lowestPollingInterval)) return
-
-    const currentPoll = currentPolls.get(queryCacheKey)
-
-    if (currentPoll?.timeout) {
-      clearTimeout(currentPoll.timeout)
-      currentPoll.timeout = undefined
-    }
-
-    const nextPollTimestamp = Date.now() + lowestPollingInterval
-
-    currentPolls.set(queryCacheKey, {
-      nextPollTimestamp,
-      pollingInterval: lowestPollingInterval,
-      timeout: setTimeout(() => {
-        if (state.config.focused || !skipPollingIfUnfocused) {
-          api.dispatch(refetchQuery(querySubState))
-        }
-        startNextPoll({ queryCacheKey }, api)
-      }, lowestPollingInterval),
-    })
-  }
-
-  function updatePollingInterval(
-    { queryCacheKey }: QuerySubstateIdentifier,
-    api: SubMiddlewareApi,
-  ) {
-    const state = api.getState()[reducerPath]
-    const querySubState = state.queries[queryCacheKey]
-    const subscriptions = currentSubscriptions.get(queryCacheKey)
-
-    if (!querySubState || querySubState.status === STATUS_UNINITIALIZED) {
-      return
-    }
-
-    const { lowestPollingInterval } = findLowestPollingInterval(subscriptions)
-
-    // HACK add extra data to track how many times this has been called in tests
-    // yes we're mutating a nonexistent field on a Map here
-    if (process.env.NODE_ENV === 'test') {
-      const updateCounters = ((currentPolls as any).pollUpdateCounters ??= {})
-      updateCounters[queryCacheKey] ??= 0
-      updateCounters[queryCacheKey]++
-    }
-
-    if (!Number.isFinite(lowestPollingInterval)) {
-      cleanupPollForKey(queryCacheKey)
-      return
-    }
-
-    const currentPoll = currentPolls.get(queryCacheKey)
-
-    const nextPollTimestamp = Date.now() + lowestPollingInterval
-
-    if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {
-      startNextPoll({ queryCacheKey }, api)
-    }
-  }
-
-  function cleanupPollForKey(key: string) {
-    const existingPoll = currentPolls.get(key)
-    if (existingPoll?.timeout) {
-      clearTimeout(existingPoll.timeout)
-    }
-    currentPolls.delete(key)
-  }
-
-  function clearPolls() {
-    for (const key of currentPolls.keys()) {
-      cleanupPollForKey(key)
-    }
-  }
-
-  function findLowestPollingInterval(
-    subscribers: SubscribersInternal = new Map(),
-  ) {
-    let skipPollingIfUnfocused: boolean | undefined = false
-    let lowestPollingInterval = Number.POSITIVE_INFINITY
-
-    for (const entry of subscribers.values()) {
-      if (!!entry.pollingInterval) {
-        lowestPollingInterval = Math.min(
-          entry.pollingInterval!,
-          lowestPollingInterval,
-        )
-        skipPollingIfUnfocused =
-          entry.skipPollingIfUnfocused || skipPollingIfUnfocused
-      }
-    }
-
-    return {
-      lowestPollingInterval,
-      skipPollingIfUnfocused,
-    }
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/queryLifecycle.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/queryLifecycle.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,505 +1,0 @@
-import { getEndpointDefinition } from '@internal/query/apiTypes'
-import type {
-  BaseQueryError,
-  BaseQueryFn,
-  BaseQueryMeta,
-} from '../../baseQueryTypes'
-import { isAnyQueryDefinition } from '../../endpointDefinitions'
-import type { Recipe } from '../buildThunks'
-import { isFulfilled, isPending, isRejected } from '../rtkImports'
-import type {
-  MutationBaseLifecycleApi,
-  QueryBaseLifecycleApi,
-} from './cacheLifecycle'
-import type {
-  ApiMiddlewareInternalHandler,
-  InternalHandlerBuilder,
-  PromiseConstructorWithKnownReason,
-  PromiseWithKnownReason,
-} from './types'
-
-export type ReferenceQueryLifecycle = never
-
-type QueryLifecyclePromises<ResultType, BaseQuery extends BaseQueryFn> = {
-  /**
-   * Promise that will resolve with the (transformed) query result.
-   *
-   * If the query fails, this promise will reject with the error.
-   *
-   * This allows you to `await` for the query to finish.
-   *
-   * If you don't interact with this promise, it will not throw.
-   */
-  queryFulfilled: PromiseWithKnownReason<
-    {
-      /**
-       * The (transformed) query result.
-       */
-      data: ResultType
-      /**
-       * The `meta` returned by the `baseQuery`
-       */
-      meta: BaseQueryMeta<BaseQuery>
-    },
-    QueryFulfilledRejectionReason<BaseQuery>
-  >
-}
-
-type QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> =
-  | {
-      error: BaseQueryError<BaseQuery>
-      /**
-       * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.
-       */
-      isUnhandledError: false
-      /**
-       * The `meta` returned by the `baseQuery`
-       */
-      meta: BaseQueryMeta<BaseQuery>
-    }
-  | {
-      error: unknown
-      meta?: undefined
-      /**
-       * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.
-       * There can not be made any assumption about the shape of `error`.
-       */
-      isUnhandledError: true
-    }
-
-export type QueryLifecycleQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = {
-  /**
-   * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-   *
-   * Can be used to perform side-effects throughout the lifecycle of the query.
-   *
-   * @example
-   * ```ts
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-   * import { messageCreated } from './notificationsSlice
-   * export interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({
-   *     baseUrl: '/',
-   *   }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, number>({
-   *       query: (id) => `post/${id}`,
-   *       async onQueryStarted(id, { dispatch, queryFulfilled }) {
-   *         // `onStart` side-effect
-   *         dispatch(messageCreated('Fetching posts...'))
-   *         try {
-   *           const { data } = await queryFulfilled
-   *           // `onSuccess` side-effect
-   *           dispatch(messageCreated('Posts received!'))
-   *         } catch (err) {
-   *           // `onError` side-effect
-   *           dispatch(messageCreated('Error fetching posts!'))
-   *         }
-   *       }
-   *     }),
-   *   }),
-   * })
-   * ```
-   */
-  onQueryStarted?(
-    queryArgument: QueryArg,
-    queryLifeCycleApi: QueryLifecycleApi<
-      QueryArg,
-      BaseQuery,
-      ResultType,
-      ReducerPath
-    >,
-  ): Promise<void> | void
-}
-
-export type QueryLifecycleInfiniteQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = QueryLifecycleQueryExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery,
-  ReducerPath
->
-
-export type QueryLifecycleMutationExtraOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = {
-  /**
-   * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).
-   *
-   * Can be used for `optimistic updates`.
-   *
-   * @example
-   *
-   * ```ts
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-   * export interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({
-   *     baseUrl: '/',
-   *   }),
-   *   tagTypes: ['Post'],
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, number>({
-   *       query: (id) => `post/${id}`,
-   *       providesTags: ['Post'],
-   *     }),
-   *     updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
-   *       query: ({ id, ...patch }) => ({
-   *         url: `post/${id}`,
-   *         method: 'PATCH',
-   *         body: patch,
-   *       }),
-   *       invalidatesTags: ['Post'],
-   *       async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
-   *         const patchResult = dispatch(
-   *           api.util.updateQueryData('getPost', id, (draft) => {
-   *             Object.assign(draft, patch)
-   *           })
-   *         )
-   *         try {
-   *           await queryFulfilled
-   *         } catch {
-   *           patchResult.undo()
-   *         }
-   *       },
-   *     }),
-   *   }),
-   * })
-   * ```
-   */
-  onQueryStarted?(
-    queryArgument: QueryArg,
-    mutationLifeCycleApi: MutationLifecycleApi<
-      QueryArg,
-      BaseQuery,
-      ResultType,
-      ReducerPath
-    >,
-  ): Promise<void> | void
-}
-
-export interface QueryLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>,
-    QueryLifecyclePromises<ResultType, BaseQuery> {}
-
-export type MutationLifecycleApi<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  ReducerPath extends string = string,
-> = MutationBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath> &
-  QueryLifecyclePromises<ResultType, BaseQuery>
-
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleQueryExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific query.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedQueryOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, QueryArgument>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedQueryOnQueryStarted<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async (queryArgument, { dispatch, queryFulfilled }) => {
- *   const result = await queryFulfilled
- *
- *   const { posts } = result.data
- *
- *   // Pre-fill the individual post entries with the results
- *   // from the list endpoint query
- *   dispatch(
- *     baseApiSlice.util.upsertQueryEntries(
- *       posts.map((post) => ({
- *         endpointName: 'getPostById',
- *         arg: post.id,
- *         value: post,
- *       })),
- *     ),
- *   )
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     getPostsByUserId: build.query<PostsApiResponse, QueryArgument>({
- *       query: (userId) => `/posts/user/${userId}`,
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-export type TypedQueryOnQueryStarted<
-  ResultType,
-  QueryArgumentType,
-  BaseQueryFunctionType extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = QueryLifecycleQueryExtraOptions<
-  ResultType,
-  QueryArgumentType,
-  BaseQueryFunctionType,
-  ReducerPath
->['onQueryStarted']
-
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryLifecycleMutationExtraOptions.onQueryStarted | onQueryStarted}
- * for a specific mutation.
- *
- * @example
- * <caption>#### __Create and reuse a strongly-typed `onQueryStarted` function__</caption>
- *
- * ```ts
- * import type { TypedMutationOnQueryStarted } from '@reduxjs/toolkit/query'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
- *
- * type Post = {
- *   id: number
- *   title: string
- *   userId: number
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = Pick<Post, 'id'> & Partial<Post>
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * const baseApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, void>({
- *       query: () => `/posts`,
- *     }),
- *
- *     getPostById: build.query<Post, number>({
- *       query: (postId) => `/posts/${postId}`,
- *     }),
- *   }),
- * })
- *
- * const updatePostOnFulfilled: TypedMutationOnQueryStarted<
- *   Post,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   'postsApi'
- * > = async ({ id, ...patch }, { dispatch, queryFulfilled }) => {
- *   const patchCollection = dispatch(
- *     baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {
- *       Object.assign(draftPost, patch)
- *     }),
- *   )
- *
- *   try {
- *     await queryFulfilled
- *   } catch {
- *     patchCollection.undo()
- *   }
- * }
- *
- * export const extendedApiSlice = baseApiSlice.injectEndpoints({
- *   endpoints: (build) => ({
- *     addPost: build.mutation<Post, Omit<QueryArgument, 'id'>>({
- *       query: (body) => ({
- *         url: `posts/add`,
- *         method: 'POST',
- *         body,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *
- *     updatePost: build.mutation<Post, QueryArgument>({
- *       query: ({ id, ...patch }) => ({
- *         url: `post/${id}`,
- *         method: 'PATCH',
- *         body: patch,
- *       }),
- *
- *       onQueryStarted: updatePostOnFulfilled,
- *     }),
- *   }),
- * })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template ReducerPath - The type representing the `reducerPath` for the API slice.
- *
- * @since 2.4.0
- * @public
- */
-export type TypedMutationOnQueryStarted<
-  ResultType,
-  QueryArgumentType,
-  BaseQueryFunctionType extends BaseQueryFn,
-  ReducerPath extends string = string,
-> = QueryLifecycleMutationExtraOptions<
-  ResultType,
-  QueryArgumentType,
-  BaseQueryFunctionType,
-  ReducerPath
->['onQueryStarted']
-
-export const buildQueryLifecycleHandler: InternalHandlerBuilder = ({
-  api,
-  context,
-  queryThunk,
-  mutationThunk,
-}) => {
-  const isPendingThunk = isPending(queryThunk, mutationThunk)
-  const isRejectedThunk = isRejected(queryThunk, mutationThunk)
-  const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk)
-
-  type CacheLifecycle = {
-    resolve(value: { data: unknown; meta: unknown }): unknown
-    reject(value: QueryFulfilledRejectionReason<any>): unknown
-  }
-  const lifecycleMap: Record<string, CacheLifecycle> = {}
-
-  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {
-    if (isPendingThunk(action)) {
-      const {
-        requestId,
-        arg: { endpointName, originalArgs },
-      } = action.meta
-      const endpointDefinition = getEndpointDefinition(context, endpointName)
-      const onQueryStarted = endpointDefinition?.onQueryStarted
-      if (onQueryStarted) {
-        const lifecycle = {} as CacheLifecycle
-        const queryFulfilled =
-          new (Promise as PromiseConstructorWithKnownReason)<
-            { data: unknown; meta: unknown },
-            QueryFulfilledRejectionReason<any>
-          >((resolve, reject) => {
-            lifecycle.resolve = resolve
-            lifecycle.reject = reject
-          })
-        // prevent uncaught promise rejections from happening.
-        // if the original promise is used in any way, that will create a new promise that will throw again
-        queryFulfilled.catch(() => {})
-        lifecycleMap[requestId] = lifecycle
-        const selector = (api.endpoints[endpointName] as any).select(
-          isAnyQueryDefinition(endpointDefinition) ? originalArgs : requestId,
-        )
-
-        const extra = mwApi.dispatch((_, __, extra) => extra)
-        const lifecycleApi = {
-          ...mwApi,
-          getCacheEntry: () => selector(mwApi.getState()),
-          requestId,
-          extra,
-          updateCachedData: (isAnyQueryDefinition(endpointDefinition)
-            ? (updateRecipe: Recipe<any>) =>
-                mwApi.dispatch(
-                  api.util.updateQueryData(
-                    endpointName as never,
-                    originalArgs as never,
-                    updateRecipe,
-                  ),
-                )
-            : undefined) as any,
-          queryFulfilled,
-        }
-        onQueryStarted(originalArgs, lifecycleApi as any)
-      }
-    } else if (isFullfilledThunk(action)) {
-      const { requestId, baseQueryMeta } = action.meta
-      lifecycleMap[requestId]?.resolve({
-        data: action.payload,
-        meta: baseQueryMeta,
-      })
-      delete lifecycleMap[requestId]
-    } else if (isRejectedThunk(action)) {
-      const { requestId, rejectedWithValue, baseQueryMeta } = action.meta
-      lifecycleMap[requestId]?.reject({
-        error: action.payload ?? action.error,
-        isUnhandledError: !rejectedWithValue,
-        meta: baseQueryMeta as any,
-      })
-      delete lifecycleMap[requestId]
-    }
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/types.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,173 +1,0 @@
-import type {
-  Action,
-  AsyncThunkAction,
-  Dispatch,
-  Middleware,
-  MiddlewareAPI,
-  ThunkAction,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import type { Api, ApiContext } from '../../apiTypes'
-import type {
-  AssertTagTypes,
-  EndpointDefinitions,
-} from '../../endpointDefinitions'
-import type {
-  QueryStatus,
-  QuerySubState,
-  RootState,
-  SubscriptionInternalState,
-  SubscriptionState,
-} from '../apiState'
-import type {
-  InfiniteQueryThunk,
-  MutationThunk,
-  QueryThunk,
-  QueryThunkArg,
-  ThunkResult,
-} from '../buildThunks'
-import type {
-  InfiniteQueryActionCreatorResult,
-  MutationActionCreatorResult,
-  QueryActionCreatorResult,
-} from '../buildInitiate'
-import type { AllSelectors } from '../buildSelectors'
-
-export type QueryStateMeta<T> = Record<string, undefined | T>
-export type TimeoutId = ReturnType<typeof setTimeout>
-
-type QueryPollState = {
-  nextPollTimestamp: number
-  timeout?: TimeoutId
-  pollingInterval: number
-}
-
-export interface InternalMiddlewareState {
-  currentSubscriptions: SubscriptionInternalState
-  currentPolls: Map<string, QueryPollState>
-  runningQueries: Map<
-    string,
-    | QueryActionCreatorResult<any>
-    | InfiniteQueryActionCreatorResult<any>
-    | undefined
-  >
-  runningMutations: Map<string, MutationActionCreatorResult<any> | undefined>
-}
-
-export interface SubscriptionSelectors {
-  getSubscriptions: () => SubscriptionInternalState
-  getSubscriptionCount: (queryCacheKey: string) => number
-  isRequestSubscribed: (queryCacheKey: string, requestId: string) => boolean
-}
-
-export interface BuildMiddlewareInput<
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string,
-  TagTypes extends string,
-> {
-  reducerPath: ReducerPath
-  context: ApiContext<Definitions>
-  queryThunk: QueryThunk
-  mutationThunk: MutationThunk
-  infiniteQueryThunk: InfiniteQueryThunk<any>
-  api: Api<any, Definitions, ReducerPath, TagTypes>
-  assertTagType: AssertTagTypes
-  selectors: AllSelectors
-  getRunningQueryThunk: (
-    endpointName: string,
-    queryArgs: any,
-  ) => (dispatch: Dispatch) => QueryActionCreatorResult<any> | undefined
-  getInternalState: (dispatch: Dispatch) => InternalMiddlewareState
-}
-
-export type SubMiddlewareApi = MiddlewareAPI<
-  ThunkDispatch<any, any, UnknownAction>,
-  RootState<EndpointDefinitions, string, string>
->
-
-export interface BuildSubMiddlewareInput
-  extends BuildMiddlewareInput<EndpointDefinitions, string, string> {
-  internalState: InternalMiddlewareState
-  refetchQuery(
-    querySubState: Exclude<
-      QuerySubState<any>,
-      { status: QueryStatus.uninitialized }
-    >,
-  ): ThunkAction<QueryActionCreatorResult<any>, any, any, UnknownAction>
-  isThisApiSliceAction: (action: Action) => boolean
-  selectors: AllSelectors
-  mwApi: MiddlewareAPI<
-    ThunkDispatch<any, any, UnknownAction>,
-    RootState<EndpointDefinitions, string, string>
-  >
-}
-
-export type SubMiddlewareBuilder = (
-  input: BuildSubMiddlewareInput,
-) => Middleware<
-  {},
-  RootState<EndpointDefinitions, string, string>,
-  ThunkDispatch<any, any, UnknownAction>
->
-
-type MwNext = Parameters<ReturnType<Middleware>>[0]
-
-export type ApiMiddlewareInternalHandler<Return = void> = (
-  action: Action,
-  mwApi: SubMiddlewareApi & { next: MwNext },
-  prevState: RootState<EndpointDefinitions, string, string>,
-) => Return
-
-export type InternalHandlerBuilder<ReturnType = void> = (
-  input: BuildSubMiddlewareInput,
-) => ApiMiddlewareInternalHandler<ReturnType>
-
-export interface PromiseConstructorWithKnownReason {
-  /**
-   * Creates a new Promise with a known rejection reason.
-   * @param executor A callback used to initialize the promise. This callback is passed two arguments:
-   * a resolve callback used to resolve the promise with a value or the result of another promise,
-   * and a reject callback used to reject the promise with a provided reason or error.
-   */
-  new <T, R>(
-    executor: (
-      resolve: (value: T | PromiseLike<T>) => void,
-      reject: (reason?: R) => void,
-    ) => void,
-  ): PromiseWithKnownReason<T, R>
-}
-
-export type PromiseWithKnownReason<T, R> = Omit<
-  Promise<T>,
-  'then' | 'catch'
-> & {
-  /**
-   * Attaches callbacks for the resolution and/or rejection of the Promise.
-   * @param onfulfilled The callback to execute when the Promise is resolved.
-   * @param onrejected The callback to execute when the Promise is rejected.
-   * @returns A Promise for the completion of which ever callback is executed.
-   */
-  then<TResult1 = T, TResult2 = never>(
-    onfulfilled?:
-      | ((value: T) => TResult1 | PromiseLike<TResult1>)
-      | undefined
-      | null,
-    onrejected?:
-      | ((reason: R) => TResult2 | PromiseLike<TResult2>)
-      | undefined
-      | null,
-  ): Promise<TResult1 | TResult2>
-
-  /**
-   * Attaches a callback for only the rejection of the Promise.
-   * @param onrejected The callback to execute when the Promise is rejected.
-   * @returns A Promise for the completion of the callback.
-   */
-  catch<TResult = never>(
-    onrejected?:
-      | ((reason: R) => TResult | PromiseLike<TResult>)
-      | undefined
-      | null,
-  ): Promise<T | TResult>
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-import { QueryStatus, STATUS_UNINITIALIZED } from '../apiState'
-import type { QueryCacheKey } from '../apiState'
-import { onFocus, onOnline } from '../setupListeners'
-import type {
-  ApiMiddlewareInternalHandler,
-  InternalHandlerBuilder,
-  SubMiddlewareApi,
-} from './types'
-
-export const buildWindowEventHandler: InternalHandlerBuilder = ({
-  reducerPath,
-  context,
-  api,
-  refetchQuery,
-  internalState,
-}) => {
-  const { removeQueryResult } = api.internalActions
-
-  const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {
-    if (onFocus.match(action)) {
-      refetchValidQueries(mwApi, 'refetchOnFocus')
-    }
-    if (onOnline.match(action)) {
-      refetchValidQueries(mwApi, 'refetchOnReconnect')
-    }
-  }
-
-  function refetchValidQueries(
-    api: SubMiddlewareApi,
-    type: 'refetchOnFocus' | 'refetchOnReconnect',
-  ) {
-    const state = api.getState()[reducerPath]
-    const queries = state.queries
-    const subscriptions = internalState.currentSubscriptions
-
-    context.batch(() => {
-      for (const queryCacheKey of subscriptions.keys()) {
-        const querySubState = queries[queryCacheKey]
-        const subscriptionSubState = subscriptions.get(queryCacheKey)
-
-        if (!subscriptionSubState || !querySubState) continue
-
-        const values = [...subscriptionSubState.values()]
-        const shouldRefetch =
-          values.some((sub) => sub[type] === true) ||
-          (values.every((sub) => sub[type] === undefined) && state.config[type])
-
-        if (shouldRefetch) {
-          if (subscriptionSubState.size === 0) {
-            api.dispatch(
-              removeQueryResult({
-                queryCacheKey: queryCacheKey as QueryCacheKey,
-              }),
-            )
-          } else if (querySubState.status !== STATUS_UNINITIALIZED) {
-            api.dispatch(refetchQuery(querySubState))
-          }
-        }
-      }
-    })
-  }
-
-  return handler
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildSelectors.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildSelectors.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,413 +1,0 @@
-import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
-import type {
-  EndpointDefinition,
-  EndpointDefinitions,
-  InfiniteQueryArgFrom,
-  InfiniteQueryDefinition,
-  MutationDefinition,
-  QueryArgFrom,
-  QueryArgFromAnyQuery,
-  QueryDefinition,
-  ReducerPathFrom,
-  TagDescription,
-  TagTypesFrom,
-} from '../endpointDefinitions'
-import { expandTagDescription } from '../endpointDefinitions'
-import { filterMap, isNotNullish } from '../utils'
-import type {
-  InfiniteData,
-  InfiniteQueryConfigOptions,
-  InfiniteQuerySubState,
-  MutationSubState,
-  QueryCacheKey,
-  QueryState,
-  QuerySubState,
-  RequestStatusFlags,
-  RootState as _RootState,
-  QueryStatus,
-} from './apiState'
-import { STATUS_UNINITIALIZED, getRequestStatusFlags } from './apiState'
-import { getMutationCacheKey } from './buildSlice'
-import type { createSelector as _createSelector } from './rtkImports'
-import { createNextState } from './rtkImports'
-import {
-  type AllQueryKeys,
-  getNextPageParam,
-  getPreviousPageParam,
-} from './buildThunks'
-
-export type SkipToken = typeof skipToken
-/**
- * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`
- * instead of the query argument to get the same effect as if setting
- * `skip: true` in the query options.
- *
- * Useful for scenarios where a query should be skipped when `arg` is `undefined`
- * and TypeScript complains about it because `arg` is not allowed to be passed
- * in as `undefined`, such as
- *
- * ```ts
- * // codeblock-meta title="will error if the query argument is not allowed to be undefined" no-transpile
- * useSomeQuery(arg, { skip: !!arg })
- * ```
- *
- * ```ts
- * // codeblock-meta title="using skipToken instead" no-transpile
- * useSomeQuery(arg ?? skipToken)
- * ```
- *
- * If passed directly into a query or mutation selector, that selector will always
- * return an uninitialized state.
- */
-export const skipToken = /* @__PURE__ */ Symbol.for('RTKQ/skipToken')
-
-export type BuildSelectorsApiEndpointQuery<
-  Definition extends QueryDefinition<any, any, any, any, any>,
-  Definitions extends EndpointDefinitions,
-> = {
-  select: QueryResultSelectorFactory<
-    Definition,
-    _RootState<
-      Definitions,
-      TagTypesFrom<Definition>,
-      ReducerPathFrom<Definition>
-    >
-  >
-}
-
-export type BuildSelectorsApiEndpointInfiniteQuery<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-  Definitions extends EndpointDefinitions,
-> = {
-  select: InfiniteQueryResultSelectorFactory<
-    Definition,
-    _RootState<
-      Definitions,
-      TagTypesFrom<Definition>,
-      ReducerPathFrom<Definition>
-    >
-  >
-}
-
-export type BuildSelectorsApiEndpointMutation<
-  Definition extends MutationDefinition<any, any, any, any, any>,
-  Definitions extends EndpointDefinitions,
-> = {
-  select: MutationResultSelectorFactory<
-    Definition,
-    _RootState<
-      Definitions,
-      TagTypesFrom<Definition>,
-      ReducerPathFrom<Definition>
-    >
-  >
-}
-
-type QueryResultSelectorFactory<
-  Definition extends QueryDefinition<any, any, any, any>,
-  RootState,
-> = (
-  queryArg: QueryArgFrom<Definition> | SkipToken,
-) => (state: RootState) => QueryResultSelectorResult<Definition>
-
-export type QueryResultSelectorResult<
-  Definition extends QueryDefinition<any, any, any, any>,
-> = QuerySubState<Definition> & RequestStatusFlags
-
-type InfiniteQueryResultSelectorFactory<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-  RootState,
-> = (
-  queryArg: InfiniteQueryArgFrom<Definition> | SkipToken,
-) => (state: RootState) => InfiniteQueryResultSelectorResult<Definition>
-
-export type InfiniteQueryResultFlags = {
-  hasNextPage: boolean
-  hasPreviousPage: boolean
-  isFetchingNextPage: boolean
-  isFetchingPreviousPage: boolean
-  isFetchNextPageError: boolean
-  isFetchPreviousPageError: boolean
-}
-
-export type InfiniteQueryResultSelectorResult<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = InfiniteQuerySubState<Definition> &
-  RequestStatusFlags &
-  InfiniteQueryResultFlags
-
-type MutationResultSelectorFactory<
-  Definition extends MutationDefinition<any, any, any, any>,
-  RootState,
-> = (
-  requestId:
-    | string
-    | { requestId: string | undefined; fixedCacheKey: string | undefined }
-    | SkipToken,
-) => (state: RootState) => MutationResultSelectorResult<Definition>
-
-export type MutationResultSelectorResult<
-  Definition extends MutationDefinition<any, any, any, any>,
-> = MutationSubState<Definition> & RequestStatusFlags
-
-const initialSubState: QuerySubState<any> = {
-  status: STATUS_UNINITIALIZED,
-}
-
-// abuse immer to freeze default states
-const defaultQuerySubState = /* @__PURE__ */ createNextState(
-  initialSubState,
-  () => {},
-)
-const defaultMutationSubState = /* @__PURE__ */ createNextState(
-  initialSubState as MutationSubState<any>,
-  () => {},
-)
-
-export type AllSelectors = ReturnType<typeof buildSelectors>
-
-export function buildSelectors<
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string,
->({
-  serializeQueryArgs,
-  reducerPath,
-  createSelector,
-}: {
-  serializeQueryArgs: InternalSerializeQueryArgs
-  reducerPath: ReducerPath
-  createSelector: typeof _createSelector
-}) {
-  type RootState = _RootState<Definitions, string, string>
-
-  const selectSkippedQuery = (state: RootState) => defaultQuerySubState
-  const selectSkippedMutation = (state: RootState) => defaultMutationSubState
-
-  return {
-    buildQuerySelector,
-    buildInfiniteQuerySelector,
-    buildMutationSelector,
-    selectInvalidatedBy,
-    selectCachedArgsForQuery,
-    selectApiState,
-    selectQueries,
-    selectMutations,
-    selectQueryEntry,
-    selectConfig,
-  }
-
-  function withRequestFlags<T extends { status: QueryStatus }>(
-    substate: T,
-  ): T & RequestStatusFlags {
-    return { ...substate, ...getRequestStatusFlags(substate.status) }
-  }
-
-  function selectApiState(rootState: RootState) {
-    const state = rootState[reducerPath]
-    if (process.env.NODE_ENV !== 'production') {
-      if (!state) {
-        if ((selectApiState as any).triggered) return state
-        ;(selectApiState as any).triggered = true
-        console.error(
-          `Error: No data found at \`state.${reducerPath}\`. Did you forget to add the reducer to the store?`,
-        )
-      }
-    }
-    return state
-  }
-
-  function selectQueries(rootState: RootState) {
-    return selectApiState(rootState)?.queries
-  }
-
-  function selectQueryEntry(rootState: RootState, cacheKey: QueryCacheKey) {
-    return selectQueries(rootState)?.[cacheKey]
-  }
-
-  function selectMutations(rootState: RootState) {
-    return selectApiState(rootState)?.mutations
-  }
-
-  function selectConfig(rootState: RootState) {
-    return selectApiState(rootState)?.config
-  }
-
-  function buildAnyQuerySelector(
-    endpointName: string,
-    endpointDefinition: EndpointDefinition<any, any, any, any>,
-    combiner: <T extends { status: QueryStatus }>(
-      substate: T,
-    ) => T & RequestStatusFlags,
-  ) {
-    return (queryArgs: any) => {
-      // Avoid calling serializeQueryArgs if the arg is skipToken
-      if (queryArgs === skipToken) {
-        return createSelector(selectSkippedQuery, combiner)
-      }
-
-      const serializedArgs = serializeQueryArgs({
-        queryArgs,
-        endpointDefinition,
-        endpointName,
-      })
-      const selectQuerySubstate = (state: RootState) =>
-        selectQueryEntry(state, serializedArgs) ?? defaultQuerySubState
-
-      return createSelector(selectQuerySubstate, combiner)
-    }
-  }
-
-  function buildQuerySelector(
-    endpointName: string,
-    endpointDefinition: QueryDefinition<any, any, any, any>,
-  ) {
-    return buildAnyQuerySelector(
-      endpointName,
-      endpointDefinition,
-      withRequestFlags,
-    ) as QueryResultSelectorFactory<any, RootState>
-  }
-
-  function buildInfiniteQuerySelector(
-    endpointName: string,
-    endpointDefinition: InfiniteQueryDefinition<any, any, any, any, any>,
-  ) {
-    const { infiniteQueryOptions } = endpointDefinition
-
-    function withInfiniteQueryResultFlags<T extends { status: QueryStatus }>(
-      substate: T,
-    ): T & RequestStatusFlags & InfiniteQueryResultFlags {
-      const stateWithRequestFlags = {
-        ...(substate as InfiniteQuerySubState<any>),
-        ...getRequestStatusFlags(substate.status),
-      }
-
-      const { isLoading, isError, direction } = stateWithRequestFlags
-      const isForward = direction === 'forward'
-      const isBackward = direction === 'backward'
-
-      return {
-        ...stateWithRequestFlags,
-        hasNextPage: getHasNextPage(
-          infiniteQueryOptions,
-          stateWithRequestFlags.data,
-          stateWithRequestFlags.originalArgs,
-        ),
-        hasPreviousPage: getHasPreviousPage(
-          infiniteQueryOptions,
-          stateWithRequestFlags.data,
-          stateWithRequestFlags.originalArgs,
-        ),
-        isFetchingNextPage: isLoading && isForward,
-        isFetchingPreviousPage: isLoading && isBackward,
-        isFetchNextPageError: isError && isForward,
-        isFetchPreviousPageError: isError && isBackward,
-      }
-    }
-
-    return buildAnyQuerySelector(
-      endpointName,
-      endpointDefinition,
-      withInfiniteQueryResultFlags,
-    ) as unknown as InfiniteQueryResultSelectorFactory<any, RootState>
-  }
-
-  function buildMutationSelector() {
-    return ((id) => {
-      let mutationId: string | typeof skipToken
-      if (typeof id === 'object') {
-        mutationId = getMutationCacheKey(id) ?? skipToken
-      } else {
-        mutationId = id
-      }
-      const selectMutationSubstate = (state: RootState) =>
-        selectApiState(state)?.mutations?.[mutationId as string] ??
-        defaultMutationSubState
-      const finalSelectMutationSubstate =
-        mutationId === skipToken
-          ? selectSkippedMutation
-          : selectMutationSubstate
-
-      return createSelector(finalSelectMutationSubstate, withRequestFlags)
-    }) as MutationResultSelectorFactory<any, RootState>
-  }
-
-  function selectInvalidatedBy(
-    state: RootState,
-    tags: ReadonlyArray<TagDescription<string> | null | undefined>,
-  ): Array<{
-    endpointName: string
-    originalArgs: any
-    queryCacheKey: QueryCacheKey
-  }> {
-    const apiState = state[reducerPath]
-    const toInvalidate = new Set<QueryCacheKey>()
-    const finalTags = filterMap(tags, isNotNullish, expandTagDescription)
-    for (const tag of finalTags) {
-      const provided = apiState.provided.tags[tag.type]
-      if (!provided) {
-        continue
-      }
-
-      let invalidateSubscriptions =
-        (tag.id !== undefined
-          ? // id given: invalidate all queries that provide this type & id
-            provided[tag.id]
-          : // no id: invalidate all queries that provide this type
-            Object.values(provided).flat()) ?? []
-
-      for (const invalidate of invalidateSubscriptions) {
-        toInvalidate.add(invalidate)
-      }
-    }
-
-    return Array.from(toInvalidate.values()).flatMap((queryCacheKey) => {
-      const querySubState = apiState.queries[queryCacheKey]
-      return querySubState
-        ? {
-            queryCacheKey,
-            endpointName: querySubState.endpointName!,
-            originalArgs: querySubState.originalArgs,
-          }
-        : []
-    })
-  }
-
-  function selectCachedArgsForQuery<
-    QueryName extends AllQueryKeys<Definitions>,
-  >(
-    state: RootState,
-    queryName: QueryName,
-  ): Array<QueryArgFromAnyQuery<Definitions[QueryName]>> {
-    return filterMap(
-      Object.values(selectQueries(state) as QueryState<any>),
-      (
-        entry,
-      ): entry is Exclude<
-        QuerySubState<Definitions[QueryName]>,
-        { status: QueryStatus.uninitialized }
-      > =>
-        entry?.endpointName === queryName &&
-        entry.status !== STATUS_UNINITIALIZED,
-      (entry) => entry.originalArgs,
-    )
-  }
-
-  function getHasNextPage(
-    options: InfiniteQueryConfigOptions<any, any, any>,
-    data?: InfiniteData<unknown, unknown>,
-    queryArg?: unknown,
-  ): boolean {
-    if (!data) return false
-    return getNextPageParam(options, data, queryArg) != null
-  }
-
-  function getHasPreviousPage(
-    options: InfiniteQueryConfigOptions<any, any, any>,
-    data?: InfiniteData<unknown, unknown>,
-    queryArg?: unknown,
-  ): boolean {
-    if (!data || !options.getPreviousPageParam) return false
-    return getPreviousPageParam(options, data, queryArg) != null
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/buildSlice.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildSlice.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,735 +1,0 @@
-import type { PayloadAction } from '@reduxjs/toolkit'
-import {
-  combineReducers,
-  createAction,
-  createSlice,
-  isAnyOf,
-  isFulfilled,
-  isRejectedWithValue,
-  createNextState,
-  prepareAutoBatched,
-  SHOULD_AUTOBATCH,
-  nanoid,
-} from './rtkImports'
-import type {
-  QuerySubstateIdentifier,
-  QuerySubState,
-  MutationSubstateIdentifier,
-  MutationSubState,
-  MutationState,
-  QueryState,
-  InvalidationState,
-  Subscribers,
-  QueryCacheKey,
-  SubscriptionState,
-  ConfigState,
-  InfiniteQuerySubState,
-  InfiniteQueryDirection,
-} from './apiState'
-import {
-  STATUS_FULFILLED,
-  STATUS_PENDING,
-  QueryStatus,
-  STATUS_REJECTED,
-  STATUS_UNINITIALIZED,
-} from './apiState'
-import type {
-  AllQueryKeys,
-  QueryArgFromAnyQueryDefinition,
-  DataFromAnyQueryDefinition,
-  InfiniteQueryThunk,
-  MutationThunk,
-  QueryThunk,
-  QueryThunkArg,
-} from './buildThunks'
-import { calculateProvidedByThunk } from './buildThunks'
-import {
-  ENDPOINT_QUERY,
-  isInfiniteQueryDefinition,
-  type AssertTagTypes,
-  type EndpointDefinitions,
-  type FullTagDescription,
-  type QueryDefinition,
-} from '../endpointDefinitions'
-import type { Patch } from 'immer'
-import { applyPatches, original, isDraft } from '../utils/immerImports'
-import { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners'
-import {
-  isDocumentVisible,
-  isOnline,
-  copyWithStructuralSharing,
-} from '../utils'
-import type { ApiContext } from '../apiTypes'
-import { isUpsertQuery } from './buildInitiate'
-import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
-import type { UnwrapPromise } from '../tsHelpers'
-import { getCurrent } from '../utils/getCurrent'
-
-/**
- * A typesafe single entry to be upserted into the cache
- */
-export type NormalizedQueryUpsertEntry<
-  Definitions extends EndpointDefinitions,
-  EndpointName extends AllQueryKeys<Definitions>,
-> = {
-  endpointName: EndpointName
-  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>
-  value: DataFromAnyQueryDefinition<Definitions, EndpointName>
-}
-
-/**
- * The internal version that is not typesafe since we can't carry the generics through `createSlice`
- */
-type NormalizedQueryUpsertEntryPayload = {
-  endpointName: string
-  arg: unknown
-  value: unknown
-}
-
-export type ProcessedQueryUpsertEntry = {
-  queryDescription: QueryThunkArg
-  value: unknown
-}
-
-/**
- * A typesafe representation of a util action creator that accepts cache entry descriptions to upsert
- */
-export type UpsertEntries<Definitions extends EndpointDefinitions> = (<
-  EndpointNames extends Array<AllQueryKeys<Definitions>>,
->(
-  entries: [
-    ...{
-      [I in keyof EndpointNames]: NormalizedQueryUpsertEntry<
-        Definitions,
-        EndpointNames[I]
-      >
-    },
-  ],
-) => PayloadAction<NormalizedQueryUpsertEntryPayload[]>) & {
-  match: (
-    action: unknown,
-  ) => action is PayloadAction<NormalizedQueryUpsertEntryPayload[]>
-}
-
-function updateQuerySubstateIfExists(
-  state: QueryState<any>,
-  queryCacheKey: QueryCacheKey,
-  update: (substate: QuerySubState<any> | InfiniteQuerySubState<any>) => void,
-) {
-  const substate = state[queryCacheKey]
-  if (substate) {
-    update(substate)
-  }
-}
-
-export function getMutationCacheKey(
-  id:
-    | MutationSubstateIdentifier
-    | { requestId: string; arg: { fixedCacheKey?: string | undefined } },
-): string
-export function getMutationCacheKey(id: {
-  fixedCacheKey?: string
-  requestId?: string
-}): string | undefined
-
-export function getMutationCacheKey(
-  id:
-    | { fixedCacheKey?: string; requestId?: string }
-    | MutationSubstateIdentifier
-    | { requestId: string; arg: { fixedCacheKey?: string | undefined } },
-): string | undefined {
-  return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId
-}
-
-function updateMutationSubstateIfExists(
-  state: MutationState<any>,
-  id:
-    | MutationSubstateIdentifier
-    | { requestId: string; arg: { fixedCacheKey?: string | undefined } },
-  update: (substate: MutationSubState<any>) => void,
-) {
-  const substate = state[getMutationCacheKey(id)]
-  if (substate) {
-    update(substate)
-  }
-}
-
-const initialState = {} as any
-
-export function buildSlice({
-  reducerPath,
-  queryThunk,
-  mutationThunk,
-  serializeQueryArgs,
-  context: {
-    endpointDefinitions: definitions,
-    apiUid,
-    extractRehydrationInfo,
-    hasRehydrationInfo,
-  },
-  assertTagType,
-  config,
-}: {
-  reducerPath: string
-  queryThunk: QueryThunk
-  infiniteQueryThunk: InfiniteQueryThunk<any>
-  mutationThunk: MutationThunk
-  serializeQueryArgs: InternalSerializeQueryArgs
-  context: ApiContext<EndpointDefinitions>
-  assertTagType: AssertTagTypes
-  config: Omit<
-    ConfigState<string>,
-    'online' | 'focused' | 'middlewareRegistered'
-  >
-}) {
-  const resetApiState = createAction(`${reducerPath}/resetApiState`)
-
-  function writePendingCacheEntry(
-    draft: QueryState<any>,
-    arg: QueryThunkArg,
-    upserting: boolean,
-    meta: {
-      arg: QueryThunkArg
-      requestId: string
-      // requestStatus: 'pending'
-    } & { startedTimeStamp: number },
-  ) {
-    draft[arg.queryCacheKey] ??= {
-      status: STATUS_UNINITIALIZED,
-      endpointName: arg.endpointName,
-    }
-
-    updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {
-      substate.status = STATUS_PENDING
-
-      substate.requestId =
-        upserting && substate.requestId
-          ? // for `upsertQuery` **updates**, keep the current `requestId`
-            substate.requestId
-          : // for normal queries or `upsertQuery` **inserts** always update the `requestId`
-            meta.requestId
-      if (arg.originalArgs !== undefined) {
-        substate.originalArgs = arg.originalArgs
-      }
-      substate.startedTimeStamp = meta.startedTimeStamp
-
-      const endpointDefinition = definitions[meta.arg.endpointName]
-
-      if (isInfiniteQueryDefinition(endpointDefinition) && 'direction' in arg) {
-        ;(substate as InfiniteQuerySubState<any>).direction =
-          arg.direction as InfiniteQueryDirection
-      }
-    })
-  }
-
-  function writeFulfilledCacheEntry(
-    draft: QueryState<any>,
-    meta: { arg: QueryThunkArg; requestId: string } & {
-      fulfilledTimeStamp: number
-      baseQueryMeta: unknown
-    },
-    payload: unknown,
-    upserting: boolean,
-  ) {
-    updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {
-      if (substate.requestId !== meta.requestId && !upserting) return
-      const { merge } = definitions[meta.arg.endpointName] as QueryDefinition<
-        any,
-        any,
-        any,
-        any
-      >
-      substate.status = STATUS_FULFILLED
-
-      if (merge) {
-        if (substate.data !== undefined) {
-          const { fulfilledTimeStamp, arg, baseQueryMeta, requestId } = meta
-          // There's existing cache data. Let the user merge it in themselves.
-          // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`
-          // themselves inside of `merge()`. But, they might also want to return a new value.
-          // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.
-          let newData = createNextState(substate.data, (draftSubstateData) => {
-            // As usual with Immer, you can mutate _or_ return inside here, but not both
-            return merge(draftSubstateData, payload, {
-              arg: arg.originalArgs,
-              baseQueryMeta,
-              fulfilledTimeStamp,
-              requestId,
-            })
-          })
-          substate.data = newData
-        } else {
-          // Presumably a fresh request. Just cache the response data.
-          substate.data = payload
-        }
-      } else {
-        // Assign or safely update the cache data.
-        substate.data =
-          (definitions[meta.arg.endpointName].structuralSharing ?? true)
-            ? copyWithStructuralSharing(
-                isDraft(substate.data)
-                  ? original(substate.data)
-                  : substate.data,
-                payload,
-              )
-            : payload
-      }
-
-      delete substate.error
-      substate.fulfilledTimeStamp = meta.fulfilledTimeStamp
-    })
-  }
-
-  const querySlice = createSlice({
-    name: `${reducerPath}/queries`,
-    initialState: initialState as QueryState<any>,
-    reducers: {
-      removeQueryResult: {
-        reducer(
-          draft,
-          {
-            payload: { queryCacheKey },
-          }: PayloadAction<QuerySubstateIdentifier>,
-        ) {
-          delete draft[queryCacheKey]
-        },
-        prepare: prepareAutoBatched<QuerySubstateIdentifier>(),
-      },
-      cacheEntriesUpserted: {
-        reducer(
-          draft,
-          action: PayloadAction<
-            ProcessedQueryUpsertEntry[],
-            string,
-            { RTK_autoBatch: boolean; requestId: string; timestamp: number }
-          >,
-        ) {
-          for (const entry of action.payload) {
-            const { queryDescription: arg, value } = entry
-            writePendingCacheEntry(draft, arg, true, {
-              arg,
-              requestId: action.meta.requestId,
-              startedTimeStamp: action.meta.timestamp,
-            })
-
-            writeFulfilledCacheEntry(
-              draft,
-              {
-                arg,
-                requestId: action.meta.requestId,
-                fulfilledTimeStamp: action.meta.timestamp,
-                baseQueryMeta: {},
-              },
-              value,
-              // We know we're upserting here
-              true,
-            )
-          }
-        },
-        prepare: (payload: NormalizedQueryUpsertEntryPayload[]) => {
-          const queryDescriptions: ProcessedQueryUpsertEntry[] = payload.map(
-            (entry) => {
-              const { endpointName, arg, value } = entry
-              const endpointDefinition = definitions[endpointName]
-              const queryDescription: QueryThunkArg = {
-                type: ENDPOINT_QUERY as 'query',
-                endpointName,
-                originalArgs: entry.arg,
-                queryCacheKey: serializeQueryArgs({
-                  queryArgs: arg,
-                  endpointDefinition,
-                  endpointName,
-                }),
-              }
-              return { queryDescription, value }
-            },
-          )
-
-          const result = {
-            payload: queryDescriptions,
-            meta: {
-              [SHOULD_AUTOBATCH]: true,
-              requestId: nanoid(),
-              timestamp: Date.now(),
-            },
-          }
-          return result
-        },
-      },
-      queryResultPatched: {
-        reducer(
-          draft,
-          {
-            payload: { queryCacheKey, patches },
-          }: PayloadAction<
-            QuerySubstateIdentifier & { patches: readonly Patch[] }
-          >,
-        ) {
-          updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {
-            substate.data = applyPatches(substate.data as any, patches.concat())
-          })
-        },
-        prepare: prepareAutoBatched<
-          QuerySubstateIdentifier & { patches: readonly Patch[] }
-        >(),
-      },
-    },
-    extraReducers(builder) {
-      builder
-        .addCase(queryThunk.pending, (draft, { meta, meta: { arg } }) => {
-          const upserting = isUpsertQuery(arg)
-          writePendingCacheEntry(draft, arg, upserting, meta)
-        })
-        .addCase(queryThunk.fulfilled, (draft, { meta, payload }) => {
-          const upserting = isUpsertQuery(meta.arg)
-          writeFulfilledCacheEntry(draft, meta, payload, upserting)
-        })
-        .addCase(
-          queryThunk.rejected,
-          (draft, { meta: { condition, arg, requestId }, error, payload }) => {
-            updateQuerySubstateIfExists(
-              draft,
-              arg.queryCacheKey,
-              (substate) => {
-                if (condition) {
-                  // request was aborted due to condition (another query already running)
-                } else {
-                  // request failed
-                  if (substate.requestId !== requestId) return
-                  substate.status = STATUS_REJECTED
-                  substate.error = (payload ?? error) as any
-                }
-              },
-            )
-          },
-        )
-        .addMatcher(hasRehydrationInfo, (draft, action) => {
-          const { queries } = extractRehydrationInfo(action)!
-          for (const [key, entry] of Object.entries(queries)) {
-            if (
-              // do not rehydrate entries that were currently in flight.
-              entry?.status === STATUS_FULFILLED ||
-              entry?.status === STATUS_REJECTED
-            ) {
-              draft[key] = entry
-            }
-          }
-        })
-    },
-  })
-  const mutationSlice = createSlice({
-    name: `${reducerPath}/mutations`,
-    initialState: initialState as MutationState<any>,
-    reducers: {
-      removeMutationResult: {
-        reducer(draft, { payload }: PayloadAction<MutationSubstateIdentifier>) {
-          const cacheKey = getMutationCacheKey(payload)
-          if (cacheKey in draft) {
-            delete draft[cacheKey]
-          }
-        },
-        prepare: prepareAutoBatched<MutationSubstateIdentifier>(),
-      },
-    },
-    extraReducers(builder) {
-      builder
-        .addCase(
-          mutationThunk.pending,
-          (draft, { meta, meta: { requestId, arg, startedTimeStamp } }) => {
-            if (!arg.track) return
-
-            draft[getMutationCacheKey(meta)] = {
-              requestId,
-              status: STATUS_PENDING,
-              endpointName: arg.endpointName,
-              startedTimeStamp,
-            }
-          },
-        )
-        .addCase(mutationThunk.fulfilled, (draft, { payload, meta }) => {
-          if (!meta.arg.track) return
-
-          updateMutationSubstateIfExists(draft, meta, (substate) => {
-            if (substate.requestId !== meta.requestId) return
-            substate.status = STATUS_FULFILLED
-            substate.data = payload
-            substate.fulfilledTimeStamp = meta.fulfilledTimeStamp
-          })
-        })
-        .addCase(mutationThunk.rejected, (draft, { payload, error, meta }) => {
-          if (!meta.arg.track) return
-
-          updateMutationSubstateIfExists(draft, meta, (substate) => {
-            if (substate.requestId !== meta.requestId) return
-
-            substate.status = STATUS_REJECTED
-            substate.error = (payload ?? error) as any
-          })
-        })
-        .addMatcher(hasRehydrationInfo, (draft, action) => {
-          const { mutations } = extractRehydrationInfo(action)!
-          for (const [key, entry] of Object.entries(mutations)) {
-            if (
-              // do not rehydrate entries that were currently in flight.
-              (entry?.status === STATUS_FULFILLED ||
-                entry?.status === STATUS_REJECTED) &&
-              // only rehydrate endpoints that were persisted using a `fixedCacheKey`
-              key !== entry?.requestId
-            ) {
-              draft[key] = entry
-            }
-          }
-        })
-    },
-  })
-
-  type CalculateProvidedByAction = UnwrapPromise<
-    | ReturnType<ReturnType<QueryThunk>>
-    | ReturnType<ReturnType<InfiniteQueryThunk<any>>>
-  >
-
-  const initialInvalidationState: InvalidationState<string> = {
-    tags: {},
-    keys: {},
-  }
-
-  const invalidationSlice = createSlice({
-    name: `${reducerPath}/invalidation`,
-    initialState: initialInvalidationState,
-    reducers: {
-      updateProvidedBy: {
-        reducer(
-          draft,
-          action: PayloadAction<
-            Array<{
-              queryCacheKey: QueryCacheKey
-              providedTags: readonly FullTagDescription<string>[]
-            }>
-          >,
-        ) {
-          for (const { queryCacheKey, providedTags } of action.payload) {
-            removeCacheKeyFromTags(draft, queryCacheKey)
-
-            for (const { type, id } of providedTags) {
-              const subscribedQueries = ((draft.tags[type] ??= {})[
-                id || '__internal_without_id'
-              ] ??= [])
-              const alreadySubscribed =
-                subscribedQueries.includes(queryCacheKey)
-              if (!alreadySubscribed) {
-                subscribedQueries.push(queryCacheKey)
-              }
-            }
-
-            // Remove readonly from the providedTags array
-            draft.keys[queryCacheKey] =
-              providedTags as FullTagDescription<string>[]
-          }
-        },
-        prepare: prepareAutoBatched<
-          Array<{
-            queryCacheKey: QueryCacheKey
-            providedTags: readonly FullTagDescription<string>[]
-          }>
-        >(),
-      },
-    },
-    extraReducers(builder) {
-      builder
-        .addCase(
-          querySlice.actions.removeQueryResult,
-          (draft, { payload: { queryCacheKey } }) => {
-            removeCacheKeyFromTags(draft, queryCacheKey)
-          },
-        )
-        .addMatcher(hasRehydrationInfo, (draft, action) => {
-          const { provided } = extractRehydrationInfo(action)!
-          for (const [type, incomingTags] of Object.entries(
-            provided.tags ?? {},
-          )) {
-            for (const [id, cacheKeys] of Object.entries(incomingTags)) {
-              const subscribedQueries = ((draft.tags[type] ??= {})[
-                id || '__internal_without_id'
-              ] ??= [])
-              for (const queryCacheKey of cacheKeys) {
-                const alreadySubscribed =
-                  subscribedQueries.includes(queryCacheKey)
-                if (!alreadySubscribed) {
-                  subscribedQueries.push(queryCacheKey)
-                }
-                draft.keys[queryCacheKey] = provided.keys[queryCacheKey]
-              }
-            }
-          }
-        })
-        .addMatcher(
-          isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)),
-          (draft, action) => {
-            writeProvidedTagsForQueries(draft, [action])
-          },
-        )
-        .addMatcher(
-          querySlice.actions.cacheEntriesUpserted.match,
-          (draft, action) => {
-            const mockActions: CalculateProvidedByAction[] = action.payload.map(
-              ({ queryDescription, value }) => {
-                return {
-                  type: 'UNKNOWN',
-                  payload: value,
-                  meta: {
-                    requestStatus: 'fulfilled',
-                    requestId: 'UNKNOWN',
-                    arg: queryDescription,
-                  },
-                }
-              },
-            )
-            writeProvidedTagsForQueries(draft, mockActions)
-          },
-        )
-    },
-  })
-
-  function removeCacheKeyFromTags(
-    draft: InvalidationState<any>,
-    queryCacheKey: QueryCacheKey,
-  ) {
-    const existingTags = getCurrent(draft.keys[queryCacheKey] ?? [])
-
-    // Delete this cache key from any existing tags that may have provided it
-    for (const tag of existingTags) {
-      const tagType = tag.type
-      const tagId = tag.id ?? '__internal_without_id'
-      const tagSubscriptions = draft.tags[tagType]?.[tagId]
-
-      if (tagSubscriptions) {
-        draft.tags[tagType][tagId] = getCurrent(tagSubscriptions).filter(
-          (qc) => qc !== queryCacheKey,
-        )
-      }
-    }
-
-    delete draft.keys[queryCacheKey]
-  }
-
-  function writeProvidedTagsForQueries(
-    draft: InvalidationState<string>,
-    actions: CalculateProvidedByAction[],
-  ) {
-    const providedByEntries = actions.map((action) => {
-      const providedTags = calculateProvidedByThunk(
-        action,
-        'providesTags',
-        definitions,
-        assertTagType,
-      )
-      const { queryCacheKey } = action.meta.arg
-      return { queryCacheKey, providedTags }
-    })
-
-    invalidationSlice.caseReducers.updateProvidedBy(
-      draft,
-      invalidationSlice.actions.updateProvidedBy(providedByEntries),
-    )
-  }
-
-  // Dummy slice to generate actions
-  const subscriptionSlice = createSlice({
-    name: `${reducerPath}/subscriptions`,
-    initialState: initialState as SubscriptionState,
-    reducers: {
-      updateSubscriptionOptions(
-        d,
-        a: PayloadAction<
-          {
-            endpointName: string
-            requestId: string
-            options: Subscribers[number]
-          } & QuerySubstateIdentifier
-        >,
-      ) {
-        // Dummy
-      },
-      unsubscribeQueryResult(
-        d,
-        a: PayloadAction<{ requestId: string } & QuerySubstateIdentifier>,
-      ) {
-        // Dummy
-      },
-      internal_getRTKQSubscriptions() {},
-    },
-  })
-
-  const internalSubscriptionsSlice = createSlice({
-    name: `${reducerPath}/internalSubscriptions`,
-    initialState: initialState as SubscriptionState,
-    reducers: {
-      subscriptionsUpdated: {
-        reducer(state, action: PayloadAction<Patch[]>) {
-          return applyPatches(state, action.payload)
-        },
-        prepare: prepareAutoBatched<Patch[]>(),
-      },
-    },
-  })
-
-  const configSlice = createSlice({
-    name: `${reducerPath}/config`,
-    initialState: {
-      online: isOnline(),
-      focused: isDocumentVisible(),
-      middlewareRegistered: false,
-      ...config,
-    } as ConfigState<string>,
-    reducers: {
-      middlewareRegistered(state, { payload }: PayloadAction<string>) {
-        state.middlewareRegistered =
-          state.middlewareRegistered === 'conflict' || apiUid !== payload
-            ? 'conflict'
-            : true
-      },
-    },
-    extraReducers: (builder) => {
-      builder
-        .addCase(onOnline, (state) => {
-          state.online = true
-        })
-        .addCase(onOffline, (state) => {
-          state.online = false
-        })
-        .addCase(onFocus, (state) => {
-          state.focused = true
-        })
-        .addCase(onFocusLost, (state) => {
-          state.focused = false
-        })
-        // update the state to be a new object to be picked up as a "state change"
-        // by redux-persist's `autoMergeLevel2`
-        .addMatcher(hasRehydrationInfo, (draft) => ({ ...draft }))
-    },
-  })
-
-  const combinedReducer = combineReducers({
-    queries: querySlice.reducer,
-    mutations: mutationSlice.reducer,
-    provided: invalidationSlice.reducer,
-    subscriptions: internalSubscriptionsSlice.reducer,
-    config: configSlice.reducer,
-  })
-
-  const reducer: typeof combinedReducer = (state, action) =>
-    combinedReducer(resetApiState.match(action) ? undefined : state, action)
-
-  const actions = {
-    ...configSlice.actions,
-    ...querySlice.actions,
-    ...subscriptionSlice.actions,
-    ...internalSubscriptionsSlice.actions,
-    ...mutationSlice.actions,
-    ...invalidationSlice.actions,
-    resetApiState,
-  }
-
-  return { reducer, actions }
-}
-export type SliceActions = ReturnType<typeof buildSlice>['actions']
Index: de_modules/@reduxjs/toolkit/src/query/core/buildThunks.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/buildThunks.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1124 +1,0 @@
-import type {
-  AsyncThunk,
-  AsyncThunkPayloadCreator,
-  Draft,
-  ThunkAction,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import type { Patch } from 'immer'
-import { isDraftable, produceWithPatches } from '../utils/immerImports'
-import type { Api, ApiContext } from '../apiTypes'
-import type {
-  BaseQueryError,
-  BaseQueryFn,
-  QueryReturnValue,
-} from '../baseQueryTypes'
-import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
-import type {
-  AssertTagTypes,
-  EndpointDefinition,
-  EndpointDefinitions,
-  InfiniteQueryArgFrom,
-  InfiniteQueryCombinedArg,
-  InfiniteQueryDefinition,
-  MutationDefinition,
-  PageParamFrom,
-  QueryArgFrom,
-  QueryDefinition,
-  ResultDescription,
-  ResultTypeFrom,
-  SchemaFailureConverter,
-  SchemaFailureHandler,
-  SchemaFailureInfo,
-  SchemaType,
-} from '../endpointDefinitions'
-import {
-  calculateProvidedBy,
-  ENDPOINT_QUERY,
-  isInfiniteQueryDefinition,
-  isQueryDefinition,
-} from '../endpointDefinitions'
-import { HandledError } from '../HandledError'
-import type { UnwrapPromise } from '../tsHelpers'
-import type {
-  RootState,
-  QueryKeys,
-  QuerySubstateIdentifier,
-  InfiniteData,
-  InfiniteQueryConfigOptions,
-  QueryCacheKey,
-  InfiniteQueryDirection,
-  InfiniteQueryKeys,
-} from './apiState'
-import { QueryStatus, STATUS_UNINITIALIZED } from './apiState'
-import type {
-  InfiniteQueryActionCreatorResult,
-  QueryActionCreatorResult,
-  StartInfiniteQueryActionCreatorOptions,
-  StartQueryActionCreatorOptions,
-} from './buildInitiate'
-import { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate'
-import type { AllSelectors } from './buildSelectors'
-import type { ApiEndpointQuery, PrefetchOptions } from './module'
-import {
-  createAsyncThunk,
-  isAllOf,
-  isFulfilled,
-  isPending,
-  isRejected,
-  isRejectedWithValue,
-  SHOULD_AUTOBATCH,
-} from './rtkImports'
-import {
-  parseWithSchema,
-  NamedSchemaError,
-  shouldSkip,
-} from '../standardSchema'
-
-export type BuildThunksApiEndpointQuery<
-  Definition extends QueryDefinition<any, any, any, any, any>,
-> = Matchers<QueryThunk, Definition>
-
-export type BuildThunksApiEndpointInfiniteQuery<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = Matchers<InfiniteQueryThunk<any>, Definition>
-
-export type BuildThunksApiEndpointMutation<
-  Definition extends MutationDefinition<any, any, any, any, any>,
-> = Matchers<MutationThunk, Definition>
-
-type EndpointThunk<
-  Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>,
-  Definition extends EndpointDefinition<any, any, any, any>,
-> =
-  Definition extends EndpointDefinition<
-    infer QueryArg,
-    infer BaseQueryFn,
-    any,
-    infer ResultType
-  >
-    ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig>
-      ? AsyncThunk<
-          ResultType,
-          ATArg & { originalArgs: QueryArg },
-          ATConfig & { rejectValue: BaseQueryError<BaseQueryFn> }
-        >
-      : never
-    : Definition extends InfiniteQueryDefinition<
-          infer QueryArg,
-          infer PageParam,
-          infer BaseQueryFn,
-          any,
-          infer ResultType
-        >
-      ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig>
-        ? AsyncThunk<
-            InfiniteData<ResultType, PageParam>,
-            ATArg & { originalArgs: QueryArg },
-            ATConfig & { rejectValue: BaseQueryError<BaseQueryFn> }
-          >
-        : never
-      : never
-
-export type PendingAction<
-  Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>,
-  Definition extends EndpointDefinition<any, any, any, any>,
-> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>
-
-export type FulfilledAction<
-  Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>,
-  Definition extends EndpointDefinition<any, any, any, any>,
-> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>
-
-export type RejectedAction<
-  Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>,
-  Definition extends EndpointDefinition<any, any, any, any>,
-> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>
-
-export type Matcher<M> = (value: any) => value is M
-
-export interface Matchers<
-  Thunk extends QueryThunk | MutationThunk | InfiniteQueryThunk<any>,
-  Definition extends EndpointDefinition<any, any, any, any>,
-> {
-  matchPending: Matcher<PendingAction<Thunk, Definition>>
-  matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>
-  matchRejected: Matcher<RejectedAction<Thunk, Definition>>
-}
-
-export type QueryThunkArg = QuerySubstateIdentifier &
-  StartQueryActionCreatorOptions & {
-    type: 'query'
-    originalArgs: unknown
-    endpointName: string
-  }
-
-export type InfiniteQueryThunkArg<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = QuerySubstateIdentifier &
-  StartInfiniteQueryActionCreatorOptions<D> & {
-    type: `query`
-    originalArgs: unknown
-    endpointName: string
-    param: unknown
-    direction?: InfiniteQueryDirection
-    refetchCachedPages?: boolean
-  }
-
-type MutationThunkArg = {
-  type: 'mutation'
-  originalArgs: unknown
-  endpointName: string
-  track?: boolean
-  fixedCacheKey?: string
-}
-
-export type ThunkResult = unknown
-
-export type ThunkApiMetaConfig = {
-  pendingMeta: { startedTimeStamp: number; [SHOULD_AUTOBATCH]: true }
-  fulfilledMeta: {
-    fulfilledTimeStamp: number
-    baseQueryMeta: unknown
-    [SHOULD_AUTOBATCH]: true
-  }
-  rejectedMeta: { baseQueryMeta: unknown; [SHOULD_AUTOBATCH]: true }
-}
-export type QueryThunk = AsyncThunk<
-  ThunkResult,
-  QueryThunkArg,
-  ThunkApiMetaConfig
->
-export type InfiniteQueryThunk<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = AsyncThunk<ThunkResult, InfiniteQueryThunkArg<D>, ThunkApiMetaConfig>
-export type MutationThunk = AsyncThunk<
-  ThunkResult,
-  MutationThunkArg,
-  ThunkApiMetaConfig
->
-
-function defaultTransformResponse(baseQueryReturnValue: unknown) {
-  return baseQueryReturnValue
-}
-
-export type MaybeDrafted<T> = T | Draft<T>
-export type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>
-export type UpsertRecipe<T> = (
-  data: MaybeDrafted<T> | undefined,
-) => void | MaybeDrafted<T>
-
-export type PatchQueryDataThunk<
-  Definitions extends EndpointDefinitions,
-  PartialState,
-> = <EndpointName extends QueryKeys<Definitions>>(
-  endpointName: EndpointName,
-  arg: QueryArgFrom<Definitions[EndpointName]>,
-  patches: readonly Patch[],
-  updateProvided?: boolean,
-) => ThunkAction<void, PartialState, any, UnknownAction>
-
-export type AllQueryKeys<Definitions extends EndpointDefinitions> =
-  | QueryKeys<Definitions>
-  | InfiniteQueryKeys<Definitions>
-
-export type QueryArgFromAnyQueryDefinition<
-  Definitions extends EndpointDefinitions,
-  EndpointName extends AllQueryKeys<Definitions>,
-> =
-  Definitions[EndpointName] extends InfiniteQueryDefinition<
-    any,
-    any,
-    any,
-    any,
-    any
-  >
-    ? InfiniteQueryArgFrom<Definitions[EndpointName]>
-    : Definitions[EndpointName] extends QueryDefinition<any, any, any, any>
-      ? QueryArgFrom<Definitions[EndpointName]>
-      : never
-
-export type DataFromAnyQueryDefinition<
-  Definitions extends EndpointDefinitions,
-  EndpointName extends AllQueryKeys<Definitions>,
-> =
-  Definitions[EndpointName] extends InfiniteQueryDefinition<
-    any,
-    any,
-    any,
-    any,
-    any
-  >
-    ? InfiniteData<
-        ResultTypeFrom<Definitions[EndpointName]>,
-        PageParamFrom<Definitions[EndpointName]>
-      >
-    : Definitions[EndpointName] extends QueryDefinition<any, any, any, any>
-      ? ResultTypeFrom<Definitions[EndpointName]>
-      : unknown
-
-export type UpsertThunkResult<
-  Definitions extends EndpointDefinitions,
-  EndpointName extends AllQueryKeys<Definitions>,
-> =
-  Definitions[EndpointName] extends InfiniteQueryDefinition<
-    any,
-    any,
-    any,
-    any,
-    any
-  >
-    ? InfiniteQueryActionCreatorResult<Definitions[EndpointName]>
-    : Definitions[EndpointName] extends QueryDefinition<any, any, any, any>
-      ? QueryActionCreatorResult<Definitions[EndpointName]>
-      : QueryActionCreatorResult<never>
-
-export type UpdateQueryDataThunk<
-  Definitions extends EndpointDefinitions,
-  PartialState,
-> = <EndpointName extends AllQueryKeys<Definitions>>(
-  endpointName: EndpointName,
-  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>,
-  updateRecipe: Recipe<DataFromAnyQueryDefinition<Definitions, EndpointName>>,
-  updateProvided?: boolean,
-) => ThunkAction<PatchCollection, PartialState, any, UnknownAction>
-
-export type UpsertQueryDataThunk<
-  Definitions extends EndpointDefinitions,
-  PartialState,
-> = <EndpointName extends AllQueryKeys<Definitions>>(
-  endpointName: EndpointName,
-  arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>,
-  value: DataFromAnyQueryDefinition<Definitions, EndpointName>,
-) => ThunkAction<
-  UpsertThunkResult<Definitions, EndpointName>,
-  PartialState,
-  any,
-  UnknownAction
->
-
-/**
- * An object returned from dispatching a `api.util.updateQueryData` call.
- */
-export type PatchCollection = {
-  /**
-   * An `immer` Patch describing the cache update.
-   */
-  patches: Patch[]
-  /**
-   * An `immer` Patch to revert the cache update.
-   */
-  inversePatches: Patch[]
-  /**
-   * A function that will undo the cache update.
-   */
-  undo: () => void
-}
-
-type TransformCallback = (
-  baseQueryReturnValue: unknown,
-  meta: unknown,
-  arg: unknown,
-) => any
-
-export const addShouldAutoBatch = <T extends Record<string, any>>(
-  arg: T = {} as T,
-): T & { [SHOULD_AUTOBATCH]: true } => {
-  return { ...arg, [SHOULD_AUTOBATCH]: true }
-}
-
-export function buildThunks<
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string,
-  Definitions extends EndpointDefinitions,
->({
-  reducerPath,
-  baseQuery,
-  context: { endpointDefinitions },
-  serializeQueryArgs,
-  api,
-  assertTagType,
-  selectors,
-  onSchemaFailure,
-  catchSchemaFailure: globalCatchSchemaFailure,
-  skipSchemaValidation: globalSkipSchemaValidation,
-}: {
-  baseQuery: BaseQuery
-  reducerPath: ReducerPath
-  context: ApiContext<Definitions>
-  serializeQueryArgs: InternalSerializeQueryArgs
-  api: Api<BaseQuery, Definitions, ReducerPath, any>
-  assertTagType: AssertTagTypes
-  selectors: AllSelectors
-  onSchemaFailure: SchemaFailureHandler | undefined
-  catchSchemaFailure: SchemaFailureConverter<BaseQuery> | undefined
-  skipSchemaValidation: boolean | SchemaType[] | undefined
-}) {
-  type State = RootState<any, string, ReducerPath>
-
-  const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> =
-    (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {
-      const endpointDefinition = endpointDefinitions[endpointName]
-
-      const queryCacheKey = serializeQueryArgs({
-        queryArgs: arg,
-        endpointDefinition,
-        endpointName,
-      })
-
-      dispatch(
-        api.internalActions.queryResultPatched({ queryCacheKey, patches }),
-      )
-
-      if (!updateProvided) {
-        return
-      }
-
-      const newValue = api.endpoints[endpointName].select(arg)(
-        // Work around TS 4.1 mismatch
-        getState() as RootState<any, any, any>,
-      )
-
-      const providedTags = calculateProvidedBy(
-        endpointDefinition.providesTags,
-        newValue.data,
-        undefined,
-        arg,
-        {},
-        assertTagType,
-      )
-
-      dispatch(
-        api.internalActions.updateProvidedBy([{ queryCacheKey, providedTags }]),
-      )
-    }
-
-  function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {
-    const newItems = [item, ...items]
-    return max && newItems.length > max ? newItems.slice(0, -1) : newItems
-  }
-
-  function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {
-    const newItems = [...items, item]
-    return max && newItems.length > max ? newItems.slice(1) : newItems
-  }
-
-  const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> =
-    (endpointName, arg, updateRecipe, updateProvided = true) =>
-    (dispatch, getState) => {
-      const endpointDefinition = api.endpoints[endpointName]
-
-      const currentState = endpointDefinition.select(arg)(
-        // Work around TS 4.1 mismatch
-        getState() as RootState<any, any, any>,
-      )
-
-      const ret: PatchCollection = {
-        patches: [],
-        inversePatches: [],
-        undo: () =>
-          dispatch(
-            api.util.patchQueryData(
-              endpointName,
-              arg,
-              ret.inversePatches,
-              updateProvided,
-            ),
-          ),
-      }
-      if (currentState.status === STATUS_UNINITIALIZED) {
-        return ret
-      }
-      let newValue
-      if ('data' in currentState) {
-        if (isDraftable(currentState.data)) {
-          const [value, patches, inversePatches] = produceWithPatches(
-            currentState.data,
-            updateRecipe,
-          )
-          ret.patches.push(...patches)
-          ret.inversePatches.push(...inversePatches)
-          newValue = value
-        } else {
-          newValue = updateRecipe(currentState.data)
-          ret.patches.push({ op: 'replace', path: [], value: newValue })
-          ret.inversePatches.push({
-            op: 'replace',
-            path: [],
-            value: currentState.data,
-          })
-        }
-      }
-
-      if (ret.patches.length === 0) {
-        return ret
-      }
-
-      dispatch(
-        api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided),
-      )
-
-      return ret
-    }
-
-  const upsertQueryData: UpsertQueryDataThunk<Definitions, State> =
-    (endpointName, arg, value) => (dispatch) => {
-      type EndpointName = typeof endpointName
-      const res = dispatch(
-        (
-          api.endpoints[endpointName] as ApiEndpointQuery<
-            QueryDefinition<any, any, any, any, any>,
-            Definitions
-          >
-        ).initiate(arg, {
-          subscribe: false,
-          forceRefetch: true,
-          [forceQueryFnSymbol]: () => ({ data: value }),
-        }),
-      ) as UpsertThunkResult<Definitions, EndpointName>
-
-      return res
-    }
-
-  const getTransformCallbackForEndpoint = (
-    endpointDefinition: EndpointDefinition<any, any, any, any>,
-    transformFieldName: 'transformResponse' | 'transformErrorResponse',
-  ): TransformCallback => {
-    return endpointDefinition.query && endpointDefinition[transformFieldName]
-      ? (endpointDefinition[transformFieldName]! as TransformCallback)
-      : defaultTransformResponse
-  }
-
-  // The generic async payload function for all of our thunks
-  const executeEndpoint: AsyncThunkPayloadCreator<
-    ThunkResult,
-    QueryThunkArg | MutationThunkArg | InfiniteQueryThunkArg<any>,
-    ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }
-  > = async (
-    arg,
-    {
-      signal,
-      abort,
-      rejectWithValue,
-      fulfillWithValue,
-      dispatch,
-      getState,
-      extra,
-    },
-  ) => {
-    const endpointDefinition = endpointDefinitions[arg.endpointName]
-    const { metaSchema, skipSchemaValidation = globalSkipSchemaValidation } =
-      endpointDefinition
-
-    const isQuery = arg.type === ENDPOINT_QUERY
-
-    try {
-      let transformResponse: TransformCallback = defaultTransformResponse
-
-      const baseQueryApi = {
-        signal,
-        abort,
-        dispatch,
-        getState,
-        extra,
-        endpoint: arg.endpointName,
-        type: arg.type,
-        forced: isQuery ? isForcedQuery(arg, getState()) : undefined,
-        queryCacheKey: isQuery ? arg.queryCacheKey : undefined,
-      }
-
-      const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined
-
-      let finalQueryReturnValue: QueryReturnValue
-
-      // Infinite query wrapper, which executes the request and returns
-      // the InfiniteData `{pages, pageParams}` structure
-      const fetchPage = async (
-        data: InfiniteData<unknown, unknown>,
-        param: unknown,
-        maxPages: number,
-        previous?: boolean,
-      ): Promise<QueryReturnValue> => {
-        // This should handle cases where there is no `getPrevPageParam`,
-        // or `getPPP` returned nullish
-        if (param == null && data.pages.length) {
-          return Promise.resolve({ data })
-        }
-
-        const finalQueryArg: InfiniteQueryCombinedArg<any, any> = {
-          queryArg: arg.originalArgs,
-          pageParam: param,
-        }
-
-        const pageResponse = await executeRequest(finalQueryArg)
-
-        const addTo = previous ? addToStart : addToEnd
-
-        return {
-          data: {
-            pages: addTo(data.pages, pageResponse.data, maxPages),
-            pageParams: addTo(data.pageParams, param, maxPages),
-          },
-          meta: pageResponse.meta,
-        }
-      }
-
-      // Wrapper for executing either `query` or `queryFn`,
-      // and handling any errors
-      async function executeRequest(
-        finalQueryArg: unknown,
-      ): Promise<QueryReturnValue> {
-        let result: QueryReturnValue
-        const { extraOptions, argSchema, rawResponseSchema, responseSchema } =
-          endpointDefinition
-
-        if (argSchema && !shouldSkip(skipSchemaValidation, 'arg')) {
-          finalQueryArg = await parseWithSchema(
-            argSchema,
-            finalQueryArg,
-            'argSchema',
-            {}, // we don't have a meta yet, so we can't pass it
-          )
-        }
-
-        if (forceQueryFn) {
-          // upsertQueryData relies on this to pass in the user-provided value
-          result = forceQueryFn()
-        } else if (endpointDefinition.query) {
-          // We should only run `transformResponse` when the endpoint has a `query` method,
-          // and we're not doing an `upsertQueryData`.
-          transformResponse = getTransformCallbackForEndpoint(
-            endpointDefinition,
-            'transformResponse',
-          )
-
-          result = await baseQuery(
-            endpointDefinition.query(finalQueryArg as any),
-            baseQueryApi,
-            extraOptions as any,
-          )
-        } else {
-          result = await endpointDefinition.queryFn(
-            finalQueryArg as any,
-            baseQueryApi,
-            extraOptions as any,
-            (arg) => baseQuery(arg, baseQueryApi, extraOptions as any),
-          )
-        }
-
-        if (
-          typeof process !== 'undefined' &&
-          process.env.NODE_ENV === 'development'
-        ) {
-          const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`'
-          let err: undefined | string
-          if (!result) {
-            err = `${what} did not return anything.`
-          } else if (typeof result !== 'object') {
-            err = `${what} did not return an object.`
-          } else if (result.error && result.data) {
-            err = `${what} returned an object containing both \`error\` and \`result\`.`
-          } else if (result.error === undefined && result.data === undefined) {
-            err = `${what} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``
-          } else {
-            for (const key of Object.keys(result)) {
-              if (key !== 'error' && key !== 'data' && key !== 'meta') {
-                err = `The object returned by ${what} has the unknown property ${key}.`
-                break
-              }
-            }
-          }
-          if (err) {
-            console.error(
-              `Error encountered handling the endpoint ${arg.endpointName}.
-                  ${err}
-                  It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.
-                  Object returned was:`,
-              result,
-            )
-          }
-        }
-
-        if (result.error) throw new HandledError(result.error, result.meta)
-
-        let { data } = result
-
-        if (
-          rawResponseSchema &&
-          !shouldSkip(skipSchemaValidation, 'rawResponse')
-        ) {
-          data = await parseWithSchema(
-            rawResponseSchema,
-            result.data,
-            'rawResponseSchema',
-            result.meta,
-          )
-        }
-
-        let transformedResponse = await transformResponse(
-          data,
-          result.meta,
-          finalQueryArg,
-        )
-
-        if (responseSchema && !shouldSkip(skipSchemaValidation, 'response')) {
-          transformedResponse = await parseWithSchema(
-            responseSchema,
-            transformedResponse,
-            'responseSchema',
-            result.meta,
-          )
-        }
-
-        return {
-          ...result,
-          data: transformedResponse,
-        }
-      }
-
-      if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {
-        // This is an infinite query endpoint
-        const { infiniteQueryOptions } = endpointDefinition
-
-        // Runtime checks should guarantee this is a positive number if provided
-        const { maxPages = Infinity } = infiniteQueryOptions
-
-        // Priority: per-call override > endpoint config > default (true)
-        const refetchCachedPages =
-          (arg as InfiniteQueryThunkArg<any>).refetchCachedPages ??
-          infiniteQueryOptions.refetchCachedPages ??
-          true
-
-        let result: QueryReturnValue
-
-        // Start by looking up the existing InfiniteData value from state,
-        // falling back to an empty value if it doesn't exist yet
-        const blankData = { pages: [], pageParams: [] }
-        const cachedData = selectors.selectQueryEntry(
-          getState(),
-          arg.queryCacheKey,
-        )?.data as InfiniteData<unknown, unknown> | undefined
-
-        // When the arg changes or the user forces a refetch,
-        // we don't include the `direction` flag. This lets us distinguish
-        // between actually refetching with a forced query, vs just fetching
-        // the next page.
-        const isForcedQueryNeedingRefetch = // arg.forceRefetch
-          isForcedQuery(arg, getState()) &&
-          !(arg as InfiniteQueryThunkArg<any>).direction
-        const existingData = (
-          isForcedQueryNeedingRefetch || !cachedData ? blankData : cachedData
-        ) as InfiniteData<unknown, unknown>
-
-        // If the thunk specified a direction and we do have at least one page,
-        // fetch the next or previous page
-        if ('direction' in arg && arg.direction && existingData.pages.length) {
-          const previous = arg.direction === 'backward'
-          const pageParamFn = previous ? getPreviousPageParam : getNextPageParam
-          const param = pageParamFn(
-            infiniteQueryOptions,
-            existingData,
-            arg.originalArgs,
-          )
-
-          result = await fetchPage(existingData, param, maxPages, previous)
-        } else {
-          // Otherwise, fetch the first page and then any remaining pages
-
-          const { initialPageParam = infiniteQueryOptions.initialPageParam } =
-            arg as InfiniteQueryThunkArg<any>
-
-          // If we're doing a refetch, we should start from
-          // the first page we have cached.
-          // Otherwise, we should start from the initialPageParam
-          const cachedPageParams = cachedData?.pageParams ?? []
-          const firstPageParam = cachedPageParams[0] ?? initialPageParam
-          const totalPages = cachedPageParams.length
-
-          // Fetch first page
-          result = await fetchPage(existingData, firstPageParam, maxPages)
-
-          if (forceQueryFn) {
-            // HACK `upsertQueryData` expects the user to pass in the `{pages, pageParams}` structure,
-            // but `fetchPage` treats that as `pages[0]`. We have to manually un-nest it.
-            result = {
-              data: (result.data as InfiniteData<unknown, unknown>).pages[0],
-            } as QueryReturnValue
-          }
-
-          if (refetchCachedPages) {
-            // Fetch remaining pages
-            for (let i = 1; i < totalPages; i++) {
-              const param = getNextPageParam(
-                infiniteQueryOptions,
-                result.data as InfiniteData<unknown, unknown>,
-                arg.originalArgs,
-              )
-              result = await fetchPage(
-                result.data as InfiniteData<unknown, unknown>,
-                param,
-                maxPages,
-              )
-            }
-          }
-        }
-
-        finalQueryReturnValue = result
-      } else {
-        // Non-infinite endpoint. Just run the one request.
-        finalQueryReturnValue = await executeRequest(arg.originalArgs)
-      }
-
-      if (
-        metaSchema &&
-        !shouldSkip(skipSchemaValidation, 'meta') &&
-        finalQueryReturnValue.meta
-      ) {
-        finalQueryReturnValue.meta = await parseWithSchema(
-          metaSchema,
-          finalQueryReturnValue.meta,
-          'metaSchema',
-          finalQueryReturnValue.meta,
-        )
-      }
-
-      // console.log('Final result: ', transformedData)
-      return fulfillWithValue(
-        finalQueryReturnValue.data,
-        addShouldAutoBatch({
-          fulfilledTimeStamp: Date.now(),
-          baseQueryMeta: finalQueryReturnValue.meta,
-        }),
-      )
-    } catch (error) {
-      let caughtError = error
-      if (caughtError instanceof HandledError) {
-        let transformErrorResponse = getTransformCallbackForEndpoint(
-          endpointDefinition,
-          'transformErrorResponse',
-        )
-        const { rawErrorResponseSchema, errorResponseSchema } =
-          endpointDefinition
-
-        let { value, meta } = caughtError
-
-        try {
-          if (
-            rawErrorResponseSchema &&
-            !shouldSkip(skipSchemaValidation, 'rawErrorResponse')
-          ) {
-            value = await parseWithSchema(
-              rawErrorResponseSchema,
-              value,
-              'rawErrorResponseSchema',
-              meta,
-            )
-          }
-
-          if (metaSchema && !shouldSkip(skipSchemaValidation, 'meta')) {
-            meta = await parseWithSchema(metaSchema, meta, 'metaSchema', meta)
-          }
-          let transformedErrorResponse = await transformErrorResponse(
-            value,
-            meta,
-            arg.originalArgs,
-          )
-          if (
-            errorResponseSchema &&
-            !shouldSkip(skipSchemaValidation, 'errorResponse')
-          ) {
-            transformedErrorResponse = await parseWithSchema(
-              errorResponseSchema,
-              transformedErrorResponse,
-              'errorResponseSchema',
-              meta,
-            )
-          }
-
-          return rejectWithValue(
-            transformedErrorResponse,
-            addShouldAutoBatch({ baseQueryMeta: meta }),
-          )
-        } catch (e) {
-          caughtError = e
-        }
-      }
-      try {
-        if (caughtError instanceof NamedSchemaError) {
-          const info: SchemaFailureInfo = {
-            endpoint: arg.endpointName,
-            arg: arg.originalArgs,
-            type: arg.type,
-            queryCacheKey: isQuery ? arg.queryCacheKey : undefined,
-          }
-          endpointDefinition.onSchemaFailure?.(caughtError, info)
-          onSchemaFailure?.(caughtError, info)
-          const { catchSchemaFailure = globalCatchSchemaFailure } =
-            endpointDefinition
-          if (catchSchemaFailure) {
-            return rejectWithValue(
-              catchSchemaFailure(caughtError, info),
-              addShouldAutoBatch({ baseQueryMeta: caughtError._bqMeta }),
-            )
-          }
-        }
-      } catch (e) {
-        caughtError = e
-      }
-      if (
-        typeof process !== 'undefined' &&
-        process.env.NODE_ENV !== 'production'
-      ) {
-        console.error(
-          `An unhandled error occurred processing a request for the endpoint "${arg.endpointName}".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-          caughtError,
-        )
-      } else {
-        console.error(caughtError)
-      }
-      throw caughtError
-    }
-  }
-
-  function isForcedQuery(
-    arg: QueryThunkArg,
-    state: RootState<any, string, ReducerPath>,
-  ) {
-    const requestState = selectors.selectQueryEntry(state, arg.queryCacheKey)
-    const baseFetchOnMountOrArgChange =
-      selectors.selectConfig(state).refetchOnMountOrArgChange
-
-    const fulfilledVal = requestState?.fulfilledTimeStamp
-    const refetchVal =
-      arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange)
-
-    if (refetchVal) {
-      // Return if it's true or compare the dates because it must be a number
-      return (
-        refetchVal === true ||
-        (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal
-      )
-    }
-    return false
-  }
-
-  const createQueryThunk = <
-    ThunkArgType extends QueryThunkArg | InfiniteQueryThunkArg<any>,
-  >() => {
-    const generatedQueryThunk = createAsyncThunk<
-      ThunkResult,
-      ThunkArgType,
-      ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }
-    >(`${reducerPath}/executeQuery`, executeEndpoint, {
-      getPendingMeta({ arg }) {
-        const endpointDefinition = endpointDefinitions[arg.endpointName]
-        return addShouldAutoBatch({
-          startedTimeStamp: Date.now(),
-          ...(isInfiniteQueryDefinition(endpointDefinition)
-            ? { direction: (arg as InfiniteQueryThunkArg<any>).direction }
-            : {}),
-        })
-      },
-      condition(queryThunkArg, { getState }) {
-        const state = getState()
-
-        const requestState = selectors.selectQueryEntry(
-          state,
-          queryThunkArg.queryCacheKey,
-        )
-        const fulfilledVal = requestState?.fulfilledTimeStamp
-        const currentArg = queryThunkArg.originalArgs
-        const previousArg = requestState?.originalArgs
-        const endpointDefinition =
-          endpointDefinitions[queryThunkArg.endpointName]
-        const direction = (queryThunkArg as InfiniteQueryThunkArg<any>)
-          .direction
-
-        // Order of these checks matters.
-        // In order for `upsertQueryData` to successfully run while an existing request is in flight,
-        /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.
-        if (isUpsertQuery(queryThunkArg)) {
-          return true
-        }
-
-        // Don't retry a request that's currently in-flight
-        if (requestState?.status === 'pending') {
-          return false
-        }
-
-        // if this is forced, continue
-        if (isForcedQuery(queryThunkArg, state)) {
-          return true
-        }
-
-        if (
-          isQueryDefinition(endpointDefinition) &&
-          endpointDefinition?.forceRefetch?.({
-            currentArg,
-            previousArg,
-            endpointState: requestState,
-            state,
-          })
-        ) {
-          return true
-        }
-
-        // Pull from the cache unless we explicitly force refetch or qualify based on time
-        if (fulfilledVal && !direction) {
-          // Value is cached and we didn't specify to refresh, skip it.
-          return false
-        }
-
-        return true
-      },
-      dispatchConditionRejection: true,
-    })
-    return generatedQueryThunk
-  }
-
-  const queryThunk = createQueryThunk<QueryThunkArg>()
-  const infiniteQueryThunk = createQueryThunk<InfiniteQueryThunkArg<any>>()
-
-  const mutationThunk = createAsyncThunk<
-    ThunkResult,
-    MutationThunkArg,
-    ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }
-  >(`${reducerPath}/executeMutation`, executeEndpoint, {
-    getPendingMeta() {
-      return addShouldAutoBatch({ startedTimeStamp: Date.now() })
-    },
-  })
-
-  const hasTheForce = (options: any): options is { force: boolean } =>
-    'force' in options
-  const hasMaxAge = (
-    options: any,
-  ): options is { ifOlderThan: false | number } => 'ifOlderThan' in options
-
-  const prefetch =
-    <EndpointName extends QueryKeys<Definitions>>(
-      endpointName: EndpointName,
-      arg: any,
-      options: PrefetchOptions = {},
-    ): ThunkAction<void, any, any, UnknownAction> =>
-    (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {
-      const force = hasTheForce(options) && options.force
-      const maxAge = hasMaxAge(options) && options.ifOlderThan
-
-      const queryAction = (force: boolean = true) => {
-        const options: StartQueryActionCreatorOptions = {
-          forceRefetch: force,
-          subscribe: false,
-        }
-        return (
-          api.endpoints[endpointName] as ApiEndpointQuery<any, any>
-        ).initiate(arg, options)
-      }
-      const latestStateValue = (
-        api.endpoints[endpointName] as ApiEndpointQuery<any, any>
-      ).select(arg)(getState())
-
-      if (force) {
-        dispatch(queryAction())
-      } else if (maxAge) {
-        const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp
-        if (!lastFulfilledTs) {
-          dispatch(queryAction())
-          return
-        }
-        const shouldRetrigger =
-          (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >=
-          maxAge
-        if (shouldRetrigger) {
-          dispatch(queryAction())
-        }
-      } else {
-        // If prefetching with no options, just let it try
-        dispatch(queryAction(false))
-      }
-    }
-
-  function matchesEndpoint(endpointName: string) {
-    return (action: any): action is UnknownAction =>
-      action?.meta?.arg?.endpointName === endpointName
-  }
-
-  function buildMatchThunkActions<
-    Thunk extends
-      | AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig>
-      | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>,
-  >(thunk: Thunk, endpointName: string) {
-    return {
-      matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),
-      matchFulfilled: isAllOf(
-        isFulfilled(thunk),
-        matchesEndpoint(endpointName),
-      ),
-      matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName)),
-    } as Matchers<Thunk, any>
-  }
-
-  return {
-    queryThunk,
-    mutationThunk,
-    infiniteQueryThunk,
-    prefetch,
-    updateQueryData,
-    upsertQueryData,
-    patchQueryData,
-    buildMatchThunkActions,
-  }
-}
-
-export function getNextPageParam(
-  options: InfiniteQueryConfigOptions<unknown, unknown, unknown>,
-  { pages, pageParams }: InfiniteData<unknown, unknown>,
-  queryArg: unknown,
-): unknown | undefined {
-  const lastIndex = pages.length - 1
-  return options.getNextPageParam(
-    pages[lastIndex],
-    pages,
-    pageParams[lastIndex],
-    pageParams,
-    queryArg,
-  )
-}
-
-export function getPreviousPageParam(
-  options: InfiniteQueryConfigOptions<unknown, unknown, unknown>,
-  { pages, pageParams }: InfiniteData<unknown, unknown>,
-  queryArg: unknown,
-): unknown | undefined {
-  return options.getPreviousPageParam?.(
-    pages[0],
-    pages,
-    pageParams[0],
-    pageParams,
-    queryArg,
-  )
-}
-
-export function calculateProvidedByThunk(
-  action: UnwrapPromise<
-    | ReturnType<ReturnType<QueryThunk>>
-    | ReturnType<ReturnType<MutationThunk>>
-    | ReturnType<ReturnType<InfiniteQueryThunk<any>>>
-  >,
-  type: 'providesTags' | 'invalidatesTags',
-  endpointDefinitions: EndpointDefinitions,
-  assertTagType: AssertTagTypes,
-) {
-  return calculateProvidedBy(
-    endpointDefinitions[action.meta.arg.endpointName][
-      type
-    ] as ResultDescription<any, any, any, any, any>,
-    isFulfilled(action) ? action.payload : undefined,
-    isRejectedWithValue(action) ? action.payload : undefined,
-    action.meta.arg.originalArgs,
-    'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined,
-    assertTagType,
-  )
-}
Index: de_modules/@reduxjs/toolkit/src/query/core/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-import { buildCreateApi } from '../createApi'
-import { coreModule } from './module'
-
-export const createApi = /* @__PURE__ */ buildCreateApi(coreModule())
-
-export { QueryStatus } from './apiState'
-export type {
-  CombinedState,
-  InfiniteData,
-  InfiniteQueryConfigOptions,
-  InfiniteQuerySubState,
-  MutationKeys,
-  QueryCacheKey,
-  QueryKeys,
-  QuerySubState,
-  RootState,
-  SubscriptionOptions,
-} from './apiState'
-export type {
-  InfiniteQueryActionCreatorResult,
-  MutationActionCreatorResult,
-  QueryActionCreatorResult,
-  StartQueryActionCreatorOptions,
-} from './buildInitiate'
-export type {
-  MutationCacheLifecycleApi,
-  MutationLifecycleApi,
-  QueryCacheLifecycleApi,
-  QueryLifecycleApi,
-  SubscriptionSelectors,
-  TypedMutationOnQueryStarted,
-  TypedQueryOnQueryStarted,
-} from './buildMiddleware/index'
-export { skipToken } from './buildSelectors'
-export type {
-  InfiniteQueryResultSelectorResult,
-  MutationResultSelectorResult,
-  QueryResultSelectorResult,
-  SkipToken,
-} from './buildSelectors'
-export type { SliceActions } from './buildSlice'
-export type {
-  PatchQueryDataThunk,
-  UpdateQueryDataThunk,
-  UpsertQueryDataThunk,
-} from './buildThunks'
-export { coreModuleName } from './module'
-export type {
-  ApiEndpointInfiniteQuery,
-  ApiEndpointMutation,
-  ApiEndpointQuery,
-  CoreModule,
-  InternalActions,
-  PrefetchOptions,
-  ThunkWithReturnValue,
-} from './module'
-export { setupListeners } from './setupListeners'
-export { buildCreateApi, coreModule }
Index: de_modules/@reduxjs/toolkit/src/query/core/module.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/module.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,727 +1,0 @@
-/**
- * Note: this file should import all other files for type discovery and declaration merging
- */
-import type {
-  ActionCreatorWithPayload,
-  Dispatch,
-  Middleware,
-  Reducer,
-  ThunkAction,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import { enablePatches } from '../utils/immerImports'
-import type { Api, Module } from '../apiTypes'
-import type { BaseQueryFn } from '../baseQueryTypes'
-import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
-import type {
-  AssertTagTypes,
-  EndpointDefinitions,
-  InfiniteQueryDefinition,
-  MutationDefinition,
-  QueryArgFrom,
-  QueryArgFromAnyQuery,
-  QueryDefinition,
-  TagDescription,
-} from '../endpointDefinitions'
-import {
-  isInfiniteQueryDefinition,
-  isMutationDefinition,
-  isQueryDefinition,
-} from '../endpointDefinitions'
-import { assertCast, safeAssign } from '../tsHelpers'
-import type {
-  CombinedState,
-  MutationKeys,
-  QueryKeys,
-  RootState,
-} from './apiState'
-import type {
-  BuildInitiateApiEndpointMutation,
-  BuildInitiateApiEndpointQuery,
-  MutationActionCreatorResult,
-  QueryActionCreatorResult,
-  InfiniteQueryActionCreatorResult,
-  BuildInitiateApiEndpointInfiniteQuery,
-} from './buildInitiate'
-import { buildInitiate } from './buildInitiate'
-import type {
-  ReferenceCacheCollection,
-  ReferenceCacheLifecycle,
-  ReferenceQueryLifecycle,
-} from './buildMiddleware'
-import { buildMiddleware } from './buildMiddleware'
-import type {
-  BuildSelectorsApiEndpointInfiniteQuery,
-  BuildSelectorsApiEndpointMutation,
-  BuildSelectorsApiEndpointQuery,
-} from './buildSelectors'
-import { buildSelectors } from './buildSelectors'
-import type { SliceActions, UpsertEntries } from './buildSlice'
-import { buildSlice } from './buildSlice'
-import type {
-  AllQueryKeys,
-  BuildThunksApiEndpointInfiniteQuery,
-  BuildThunksApiEndpointMutation,
-  BuildThunksApiEndpointQuery,
-  PatchQueryDataThunk,
-  QueryArgFromAnyQueryDefinition,
-  UpdateQueryDataThunk,
-  UpsertQueryDataThunk,
-} from './buildThunks'
-import { buildThunks } from './buildThunks'
-import { createSelector as _createSelector } from './rtkImports'
-import { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners'
-import type { InternalMiddlewareState } from './buildMiddleware/types'
-import { getOrInsertComputed } from '../utils'
-import type { CreateSelectorFunction } from 'reselect'
-
-/**
- * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_
- * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value
- *
- * @overloadSummary
- * `force`
- * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.
- */
-export type PrefetchOptions =
-  | {
-      ifOlderThan?: false | number
-    }
-  | { force?: boolean }
-
-export const coreModuleName = /* @__PURE__ */ Symbol()
-export type CoreModule =
-  | typeof coreModuleName
-  | ReferenceCacheLifecycle
-  | ReferenceQueryLifecycle
-  | ReferenceCacheCollection
-
-export type ThunkWithReturnValue<T> = ThunkAction<T, any, any, UnknownAction>
-
-export interface ApiModules<
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  BaseQuery extends BaseQueryFn,
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string,
-  TagTypes extends string,
-> {
-  [coreModuleName]: {
-    /**
-     * This api's reducer should be mounted at `store[api.reducerPath]`.
-     *
-     * @example
-     * ```ts
-     * configureStore({
-     *   reducer: {
-     *     [api.reducerPath]: api.reducer,
-     *   },
-     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-     * })
-     * ```
-     */
-    reducerPath: ReducerPath
-    /**
-     * Internal actions not part of the public API. Note: These are subject to change at any given time.
-     */
-    internalActions: InternalActions
-    /**
-     *  A standard redux reducer that enables core functionality. Make sure it's included in your store.
-     *
-     * @example
-     * ```ts
-     * configureStore({
-     *   reducer: {
-     *     [api.reducerPath]: api.reducer,
-     *   },
-     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-     * })
-     * ```
-     */
-    reducer: Reducer<
-      CombinedState<Definitions, TagTypes, ReducerPath>,
-      UnknownAction
-    >
-    /**
-     * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.
-     *
-     * @example
-     * ```ts
-     * configureStore({
-     *   reducer: {
-     *     [api.reducerPath]: api.reducer,
-     *   },
-     *   middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),
-     * })
-     * ```
-     */
-    middleware: Middleware<
-      {},
-      RootState<Definitions, string, ReducerPath>,
-      ThunkDispatch<any, any, UnknownAction>
-    >
-    /**
-     * A collection of utility thunks for various situations.
-     */
-    util: {
-      /**
-       * A thunk that (if dispatched) will return a specific running query, identified
-       * by `endpointName` and `arg`.
-       * If that query is not running, dispatching the thunk will result in `undefined`.
-       *
-       * Can be used to await a specific query triggered in any way,
-       * including via hook calls or manually dispatching `initiate` actions.
-       *
-       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-       */
-      getRunningQueryThunk<EndpointName extends AllQueryKeys<Definitions>>(
-        endpointName: EndpointName,
-        arg: QueryArgFromAnyQueryDefinition<Definitions, EndpointName>,
-      ): ThunkWithReturnValue<
-        | QueryActionCreatorResult<
-            Definitions[EndpointName] & { type: 'query' }
-          >
-        | InfiniteQueryActionCreatorResult<
-            Definitions[EndpointName] & { type: 'infinitequery' }
-          >
-        | undefined
-      >
-
-      /**
-       * A thunk that (if dispatched) will return a specific running mutation, identified
-       * by `endpointName` and `fixedCacheKey` or `requestId`.
-       * If that mutation is not running, dispatching the thunk will result in `undefined`.
-       *
-       * Can be used to await a specific mutation triggered in any way,
-       * including via hook trigger functions or manually dispatching `initiate` actions.
-       *
-       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-       */
-      getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(
-        endpointName: EndpointName,
-        fixedCacheKeyOrRequestId: string,
-      ): ThunkWithReturnValue<
-        | MutationActionCreatorResult<
-            Definitions[EndpointName] & { type: 'mutation' }
-          >
-        | undefined
-      >
-
-      /**
-       * A thunk that (if dispatched) will return all running queries.
-       *
-       * Useful for SSR scenarios to await all running queries triggered in any way,
-       * including via hook calls or manually dispatching `initiate` actions.
-       *
-       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-       */
-      getRunningQueriesThunk(): ThunkWithReturnValue<
-        Array<
-          QueryActionCreatorResult<any> | InfiniteQueryActionCreatorResult<any>
-        >
-      >
-
-      /**
-       * A thunk that (if dispatched) will return all running mutations.
-       *
-       * Useful for SSR scenarios to await all running mutations triggered in any way,
-       * including via hook calls or manually dispatching `initiate` actions.
-       *
-       * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.
-       */
-      getRunningMutationsThunk(): ThunkWithReturnValue<
-        Array<MutationActionCreatorResult<any>>
-      >
-
-      /**
-       * A Redux thunk that can be used to manually trigger pre-fetching of data.
-       *
-       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.
-       *
-       * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.
-       *
-       * @example
-       *
-       * ```ts no-transpile
-       * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))
-       * ```
-       */
-      prefetch<EndpointName extends QueryKeys<Definitions>>(
-        endpointName: EndpointName,
-        arg: QueryArgFrom<Definitions[EndpointName]>,
-        options?: PrefetchOptions,
-      ): ThunkAction<void, any, any, UnknownAction>
-      /**
-       * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.
-       *
-       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.
-       *
-       * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).
-       *
-       * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, arg, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.
-       *
-       * Note that the first two arguments (`endpointName` and `arg`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.
-       *
-       * @example
-       *
-       * ```ts
-       * const patchCollection = dispatch(
-       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-       *     draftPosts.push({ id: 1, name: 'Teddy' })
-       *   })
-       * )
-       * ```
-       */
-      updateQueryData: UpdateQueryDataThunk<
-        Definitions,
-        RootState<Definitions, string, ReducerPath>
-      >
-
-      /**
-       * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.
-       *
-       * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.
-       *
-       * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.
-       *
-       * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.
-       *
-       * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a "last result wins" update behavior.
-       *
-       * @example
-       *
-       * ```ts
-       * await dispatch(
-       *   api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: "Hello!"})
-       * )
-       * ```
-       */
-      upsertQueryData: UpsertQueryDataThunk<
-        Definitions,
-        RootState<Definitions, string, ReducerPath>
-      >
-      /**
-       * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.
-       *
-       * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.
-       *
-       * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.
-       *
-       * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.
-       *
-       * @example
-       * ```ts
-       * const patchCollection = dispatch(
-       *   api.util.updateQueryData('getPosts', undefined, (draftPosts) => {
-       *     draftPosts.push({ id: 1, name: 'Teddy' })
-       *   })
-       * )
-       *
-       * // later
-       * dispatch(
-       *   api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)
-       * )
-       *
-       * // or
-       * patchCollection.undo()
-       * ```
-       */
-      patchQueryData: PatchQueryDataThunk<
-        Definitions,
-        RootState<Definitions, string, ReducerPath>
-      >
-
-      /**
-       * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.
-       *
-       * @example
-       *
-       * ```ts
-       * dispatch(api.util.resetApiState())
-       * ```
-       */
-      resetApiState: SliceActions['resetApiState']
-
-      upsertQueryEntries: UpsertEntries<Definitions>
-
-      /**
-       * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).
-       *
-       * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.
-       *
-       * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.
-       *
-       * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:
-       *
-       * - `[TagType]`
-       * - `[{ type: TagType }]`
-       * - `[{ type: TagType, id: number | string }]`
-       *
-       * @example
-       *
-       * ```ts
-       * dispatch(api.util.invalidateTags(['Post']))
-       * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))
-       * dispatch(
-       *   api.util.invalidateTags([
-       *     { type: 'Post', id: 1 },
-       *     { type: 'Post', id: 'LIST' },
-       *   ])
-       * )
-       * ```
-       */
-      invalidateTags: ActionCreatorWithPayload<
-        Array<TagDescription<TagTypes> | null | undefined>,
-        string
-      >
-
-      /**
-       * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.
-       *
-       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-       */
-      selectInvalidatedBy: (
-        state: RootState<Definitions, string, ReducerPath>,
-        tags: ReadonlyArray<TagDescription<TagTypes> | null | undefined>,
-      ) => Array<{
-        endpointName: string
-        originalArgs: any
-        queryCacheKey: string
-      }>
-
-      /**
-       * A function to select all arguments currently cached for a given endpoint.
-       *
-       * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.
-       */
-      selectCachedArgsForQuery: <QueryName extends AllQueryKeys<Definitions>>(
-        state: RootState<Definitions, string, ReducerPath>,
-        queryName: QueryName,
-      ) => Array<QueryArgFromAnyQuery<Definitions[QueryName]>>
-    }
-    /**
-     * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.
-     */
-    endpoints: {
-      [K in keyof Definitions]: Definitions[K] extends QueryDefinition<
-        any,
-        any,
-        any,
-        any,
-        any
-      >
-        ? ApiEndpointQuery<Definitions[K], Definitions>
-        : Definitions[K] extends MutationDefinition<any, any, any, any, any>
-          ? ApiEndpointMutation<Definitions[K], Definitions>
-          : Definitions[K] extends InfiniteQueryDefinition<
-                any,
-                any,
-                any,
-                any,
-                any
-              >
-            ? ApiEndpointInfiniteQuery<Definitions[K], Definitions>
-            : never
-    }
-  }
-}
-
-export interface ApiEndpointQuery<
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definition extends QueryDefinition<any, any, any, any, any>,
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definitions extends EndpointDefinitions,
-> extends BuildThunksApiEndpointQuery<Definition>,
-    BuildInitiateApiEndpointQuery<Definition>,
-    BuildSelectorsApiEndpointQuery<Definition, Definitions> {
-  name: string
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types: NonNullable<Definition['Types']>
-}
-
-export interface ApiEndpointInfiniteQuery<
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definitions extends EndpointDefinitions,
-> extends BuildThunksApiEndpointInfiniteQuery<Definition>,
-    BuildInitiateApiEndpointInfiniteQuery<Definition>,
-    BuildSelectorsApiEndpointInfiniteQuery<Definition, Definitions> {
-  name: string
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types: NonNullable<Definition['Types']>
-}
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export interface ApiEndpointMutation<
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definition extends MutationDefinition<any, any, any, any, any>,
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  Definitions extends EndpointDefinitions,
-> extends BuildThunksApiEndpointMutation<Definition>,
-    BuildInitiateApiEndpointMutation<Definition>,
-    BuildSelectorsApiEndpointMutation<Definition, Definitions> {
-  name: string
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types: NonNullable<Definition['Types']>
-}
-
-export type ListenerActions = {
-  /**
-   * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior
-   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-   */
-  onOnline: typeof onOnline
-  onOffline: typeof onOffline
-  /**
-   * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior
-   * @link https://redux-toolkit.js.org/rtk-query/api/setupListeners
-   */
-  onFocus: typeof onFocus
-  onFocusLost: typeof onFocusLost
-}
-
-export type InternalActions = SliceActions & ListenerActions
-
-export interface CoreModuleOptions {
-  /**
-   * A selector creator (usually from `reselect`, or matching the same signature)
-   */
-  createSelector?: CreateSelectorFunction<any, any, any>
-}
-
-/**
- * Creates a module containing the basic redux logic for use with `buildCreateApi`.
- *
- * @example
- * ```ts
- * const createBaseApi = buildCreateApi(coreModule());
- * ```
- */
-export const coreModule = ({
-  createSelector = _createSelector,
-}: CoreModuleOptions = {}): Module<CoreModule> => ({
-  name: coreModuleName,
-  init(
-    api,
-    {
-      baseQuery,
-      tagTypes,
-      reducerPath,
-      serializeQueryArgs,
-      keepUnusedDataFor,
-      refetchOnMountOrArgChange,
-      refetchOnFocus,
-      refetchOnReconnect,
-      invalidationBehavior,
-      onSchemaFailure,
-      catchSchemaFailure,
-      skipSchemaValidation,
-    },
-    context,
-  ) {
-    enablePatches()
-
-    assertCast<InternalSerializeQueryArgs>(serializeQueryArgs)
-
-    const assertTagType: AssertTagTypes = (tag) => {
-      if (
-        typeof process !== 'undefined' &&
-        process.env.NODE_ENV === 'development'
-      ) {
-        if (!tagTypes.includes(tag.type as any)) {
-          console.error(
-            `Tag type '${tag.type}' was used, but not specified in \`tagTypes\`!`,
-          )
-        }
-      }
-      return tag
-    }
-
-    Object.assign(api, {
-      reducerPath,
-      endpoints: {},
-      internalActions: {
-        onOnline,
-        onOffline,
-        onFocus,
-        onFocusLost,
-      },
-      util: {},
-    })
-
-    const selectors = buildSelectors({
-      serializeQueryArgs: serializeQueryArgs as any,
-      reducerPath,
-      createSelector,
-    })
-
-    const {
-      selectInvalidatedBy,
-      selectCachedArgsForQuery,
-      buildQuerySelector,
-      buildInfiniteQuerySelector,
-      buildMutationSelector,
-    } = selectors
-
-    safeAssign(api.util, { selectInvalidatedBy, selectCachedArgsForQuery })
-
-    const {
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      buildMatchThunkActions,
-    } = buildThunks({
-      baseQuery,
-      reducerPath,
-      context,
-      api,
-      serializeQueryArgs,
-      assertTagType,
-      selectors,
-      onSchemaFailure,
-      catchSchemaFailure,
-      skipSchemaValidation,
-    })
-
-    const { reducer, actions: sliceActions } = buildSlice({
-      context,
-      queryThunk,
-      infiniteQueryThunk,
-      mutationThunk,
-      serializeQueryArgs,
-      reducerPath,
-      assertTagType,
-      config: {
-        refetchOnFocus,
-        refetchOnReconnect,
-        refetchOnMountOrArgChange,
-        keepUnusedDataFor,
-        reducerPath,
-        invalidationBehavior,
-      },
-    })
-
-    safeAssign(api.util, {
-      patchQueryData,
-      updateQueryData,
-      upsertQueryData,
-      prefetch,
-      resetApiState: sliceActions.resetApiState,
-      upsertQueryEntries: sliceActions.cacheEntriesUpserted as any,
-    })
-    safeAssign(api.internalActions, sliceActions)
-
-    const internalStateMap = new WeakMap<Dispatch, InternalMiddlewareState>()
-
-    const getInternalState = (dispatch: Dispatch) => {
-      const state = getOrInsertComputed(internalStateMap, dispatch, () => ({
-        currentSubscriptions: new Map(),
-        currentPolls: new Map(),
-        runningQueries: new Map(),
-        runningMutations: new Map(),
-      }))
-
-      return state
-    }
-
-    const {
-      buildInitiateQuery,
-      buildInitiateInfiniteQuery,
-      buildInitiateMutation,
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueriesThunk,
-      getRunningQueryThunk,
-    } = buildInitiate({
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      serializeQueryArgs: serializeQueryArgs as any,
-      context,
-      getInternalState,
-    })
-
-    safeAssign(api.util, {
-      getRunningMutationThunk,
-      getRunningMutationsThunk,
-      getRunningQueryThunk,
-      getRunningQueriesThunk,
-    })
-
-    const { middleware, actions: middlewareActions } = buildMiddleware({
-      reducerPath,
-      context,
-      queryThunk,
-      mutationThunk,
-      infiniteQueryThunk,
-      api,
-      assertTagType,
-      selectors,
-      getRunningQueryThunk,
-      getInternalState,
-    })
-    safeAssign(api.util, middlewareActions)
-
-    safeAssign(api, { reducer: reducer as any, middleware })
-
-    return {
-      name: coreModuleName,
-      injectEndpoint(endpointName, definition) {
-        const anyApi = api as any as Api<
-          any,
-          Record<string, any>,
-          string,
-          string,
-          CoreModule
-        >
-        const endpoint = (anyApi.endpoints[endpointName] ??= {} as any)
-
-        if (isQueryDefinition(definition)) {
-          safeAssign(
-            endpoint,
-            {
-              name: endpointName,
-              select: buildQuerySelector(endpointName, definition),
-              initiate: buildInitiateQuery(endpointName, definition),
-            },
-            buildMatchThunkActions(queryThunk, endpointName),
-          )
-        }
-        if (isMutationDefinition(definition)) {
-          safeAssign(
-            endpoint,
-            {
-              name: endpointName,
-              select: buildMutationSelector(),
-              initiate: buildInitiateMutation(endpointName),
-            },
-            buildMatchThunkActions(mutationThunk, endpointName),
-          )
-        }
-        if (isInfiniteQueryDefinition(definition)) {
-          safeAssign(
-            endpoint,
-            {
-              name: endpointName,
-              select: buildInfiniteQuerySelector(endpointName, definition),
-              initiate: buildInitiateInfiniteQuery(endpointName, definition),
-            },
-            buildMatchThunkActions(queryThunk, endpointName),
-          )
-        }
-      },
-    }
-  },
-})
Index: de_modules/@reduxjs/toolkit/src/query/core/rtkImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/rtkImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-// This file exists to consolidate all of the imports from the `@reduxjs/toolkit` package.
-// ESBuild does not de-duplicate imports, so this file is used to ensure that each method
-// imported is only listed once, and there's only one mention of the `@reduxjs/toolkit` package.
-
-export {
-  createAction,
-  createSlice,
-  createSelector,
-  createAsyncThunk,
-  combineReducers,
-  createNextState,
-  isAnyOf,
-  isAllOf,
-  isAction,
-  isPending,
-  isRejected,
-  isFulfilled,
-  isRejectedWithValue,
-  isAsyncThunkAction,
-  prepareAutoBatched,
-  SHOULD_AUTOBATCH,
-  isPlainObject,
-  nanoid,
-} from '@reduxjs/toolkit'
Index: de_modules/@reduxjs/toolkit/src/query/core/setupListeners.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/core/setupListeners.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,118 +1,0 @@
-import type {
-  ThunkDispatch,
-  ActionCreatorWithoutPayload, // Workaround for API-Extractor
-} from '@reduxjs/toolkit'
-import { createAction } from './rtkImports'
-
-export const INTERNAL_PREFIX = '__rtkq/'
-
-const ONLINE = 'online'
-const OFFLINE = 'offline'
-const FOCUS = 'focus'
-const FOCUSED = 'focused'
-const VISIBILITYCHANGE = 'visibilitychange'
-
-export const onFocus = /* @__PURE__ */ createAction(
-  `${INTERNAL_PREFIX}${FOCUSED}`,
-)
-export const onFocusLost = /* @__PURE__ */ createAction(
-  `${INTERNAL_PREFIX}un${FOCUSED}`,
-)
-export const onOnline = /* @__PURE__ */ createAction(
-  `${INTERNAL_PREFIX}${ONLINE}`,
-)
-export const onOffline = /* @__PURE__ */ createAction(
-  `${INTERNAL_PREFIX}${OFFLINE}`,
-)
-
-const actions = {
-  onFocus,
-  onFocusLost,
-  onOnline,
-  onOffline,
-}
-
-let initialized = false
-
-/**
- * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.
- * It requires the dispatch method from your store.
- * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,
- * but you have the option of providing a callback for more granular control.
- *
- * @example
- * ```ts
- * setupListeners(store.dispatch)
- * ```
- *
- * @param dispatch - The dispatch method from your store
- * @param customHandler - An optional callback for more granular control over listener behavior
- * @returns Return value of the handler.
- * The default handler returns an `unsubscribe` method that can be called to remove the listeners.
- */
-export function setupListeners(
-  dispatch: ThunkDispatch<any, any, any>,
-  customHandler?: (
-    dispatch: ThunkDispatch<any, any, any>,
-    actions: {
-      onFocus: typeof onFocus
-      onFocusLost: typeof onFocusLost
-      onOnline: typeof onOnline
-      onOffline: typeof onOffline
-    },
-  ) => () => void,
-) {
-  function defaultHandler() {
-    const [handleFocus, handleFocusLost, handleOnline, handleOffline] = [
-      onFocus,
-      onFocusLost,
-      onOnline,
-      onOffline,
-    ].map((action) => () => dispatch(action()))
-
-    const handleVisibilityChange = () => {
-      if (window.document.visibilityState === 'visible') {
-        handleFocus()
-      } else {
-        handleFocusLost()
-      }
-    }
-
-    let unsubscribe = () => {
-      initialized = false
-    }
-
-    if (!initialized) {
-      if (typeof window !== 'undefined' && window.addEventListener) {
-        const handlers = {
-          [FOCUS]: handleFocus,
-          [VISIBILITYCHANGE]: handleVisibilityChange,
-          [ONLINE]: handleOnline,
-          [OFFLINE]: handleOffline,
-        }
-
-        function updateListeners(add: boolean) {
-          Object.entries(handlers).forEach(([event, handler]) => {
-            if (add) {
-              window.addEventListener(event, handler, false)
-            } else {
-              window.removeEventListener(event, handler)
-            }
-          })
-        }
-        // Handle focus events
-        updateListeners(true)
-        initialized = true
-
-        unsubscribe = () => {
-          updateListeners(false)
-          initialized = false
-        }
-      }
-    }
-
-    return unsubscribe
-  }
-
-  return customHandler ? customHandler(dispatch, actions) : defaultHandler()
-}
Index: de_modules/@reduxjs/toolkit/src/query/createApi.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/createApi.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,514 +1,0 @@
-import {
-  getEndpointDefinition,
-  type Api,
-  type ApiContext,
-  type Module,
-  type ModuleName,
-} from './apiTypes'
-import type { CombinedState } from './core/apiState'
-import type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes'
-import type { SerializeQueryArgs } from './defaultSerializeQueryArgs'
-import { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs'
-import type {
-  EndpointBuilder,
-  EndpointDefinitions,
-  SchemaFailureConverter,
-  SchemaFailureHandler,
-  SchemaType,
-} from './endpointDefinitions'
-import {
-  DefinitionType,
-  ENDPOINT_INFINITEQUERY,
-  ENDPOINT_MUTATION,
-  ENDPOINT_QUERY,
-  isInfiniteQueryDefinition,
-  isQueryDefinition,
-} from './endpointDefinitions'
-import { nanoid } from './core/rtkImports'
-import type { UnknownAction } from '@reduxjs/toolkit'
-import type { NoInfer } from './tsHelpers'
-import { weakMapMemoize } from 'reselect'
-
-export interface CreateApiOptions<
-  BaseQuery extends BaseQueryFn,
-  Definitions extends EndpointDefinitions,
-  ReducerPath extends string = 'api',
-  TagTypes extends string = never,
-> {
-  /**
-   * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.
-   *
-   * @example
-   *
-   * ```ts
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-   *
-   * const api = createApi({
-   *   // highlight-start
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   // highlight-end
-   *   endpoints: (build) => ({
-   *     // ...endpoints
-   *   }),
-   * })
-   * ```
-   */
-  baseQuery: BaseQuery
-  /**
-   * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).
-   *
-   * @example
-   *
-   * ```ts
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   // highlight-start
-   *   tagTypes: ['Post', 'User'],
-   *   // highlight-end
-   *   endpoints: (build) => ({
-   *     // ...endpoints
-   *   }),
-   * })
-   * ```
-   */
-  tagTypes?: readonly TagTypes[]
-  /**
-   * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="apis.js"
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
-   *
-   * const apiOne = createApi({
-   *   // highlight-start
-   *   reducerPath: 'apiOne',
-   *   // highlight-end
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (builder) => ({
-   *     // ...endpoints
-   *   }),
-   * });
-   *
-   * const apiTwo = createApi({
-   *   // highlight-start
-   *   reducerPath: 'apiTwo',
-   *   // highlight-end
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (builder) => ({
-   *     // ...endpoints
-   *   }),
-   * });
-   * ```
-   */
-  reducerPath?: ReducerPath
-  /**
-   * Accepts a custom function if you have a need to change the creation of cache keys for any reason.
-   */
-  serializeQueryArgs?: SerializeQueryArgs<unknown>
-  /**
-   * Endpoints are a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are three endpoint types: [`query`](../../rtk-query/usage/queries), [`infiniteQuery`](../../rtk-query/usage/infinite-queries) and [`mutation`](../../rtk-query/usage/mutations).
-   */
-  endpoints(
-    build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>,
-  ): Definitions
-  /**
-   * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="keepUnusedDataFor example"
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   * type PostsResponse = Post[]
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPosts: build.query<PostsResponse, void>({
-   *       query: () => 'posts'
-   *     })
-   *   }),
-   *   // highlight-start
-   *   keepUnusedDataFor: 5
-   *   // highlight-end
-   * })
-   * ```
-   */
-  keepUnusedDataFor?: number
-  /**
-   * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   */
-  refetchOnMountOrArgChange?: boolean | number
-  /**
-   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   *
-   * Note: requires [`setupListeners`](./setupListeners) to have been called.
-   */
-  refetchOnFocus?: boolean
-  /**
-   * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   *
-   * Note: requires [`setupListeners`](./setupListeners) to have been called.
-   */
-  refetchOnReconnect?: boolean
-  /**
-   * Defaults to `'delayed'`. This setting allows you to control when tags are invalidated after a mutation.
-   *
-   * - `'immediately'`: Queries are invalidated instantly after the mutation finished, even if they are running.
-   *   If the query provides tags that were invalidated while it ran, it won't be re-fetched.
-   * - `'delayed'`: Invalidation only happens after all queries and mutations are settled.
-   *   This ensures that queries are always invalidated correctly and automatically "batches" invalidations of concurrent mutations.
-   *   Note that if you constantly have some queries (or mutations) running, this can delay tag invalidations indefinitely.
-   */
-  invalidationBehavior?: 'delayed' | 'immediately'
-  /**
-   * A function that is passed every dispatched action. If this returns something other than `undefined`,
-   * that return value will be used to rehydrate fulfilled & errored queries.
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="next-redux-wrapper rehydration example"
-   * import type { Action, PayloadAction } from '@reduxjs/toolkit'
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * import { HYDRATE } from 'next-redux-wrapper'
-   *
-   * type RootState = any; // normally inferred from state
-   *
-   * function isHydrateAction(action: Action): action is PayloadAction<RootState> {
-   *   return action.type === HYDRATE
-   * }
-   *
-   * export const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   // highlight-start
-   *   extractRehydrationInfo(action, { reducerPath }): any {
-   *     if (isHydrateAction(action)) {
-   *       return action.payload[reducerPath]
-   *     }
-   *   },
-   *   // highlight-end
-   *   endpoints: (build) => ({
-   *     // omitted
-   *   }),
-   * })
-   * ```
-   */
-  extractRehydrationInfo?: (
-    action: UnknownAction,
-    {
-      reducerPath,
-    }: {
-      reducerPath: ReducerPath
-    },
-  ) =>
-    | undefined
-    | CombinedState<
-        NoInfer<Definitions>,
-        NoInfer<TagTypes>,
-        NoInfer<ReducerPath>
-      >
-
-  /**
-   * A function that is called when a schema validation fails.
-   *
-   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-   *
-   * `NamedSchemaError` has the following properties:
-   * - `issues`: an array of issues that caused the validation to fail
-   * - `value`: the value that was passed to the schema
-   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *     }),
-   *   }),
-   *   onSchemaFailure: (error, info) => {
-   *     console.error(error, info)
-   *   },
-   * })
-   * ```
-   */
-  onSchemaFailure?: SchemaFailureHandler
-
-  /**
-   * Convert a schema validation failure into an error shape matching base query errors.
-   *
-   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-   *     }),
-   *   }),
-   *   catchSchemaFailure: (error, info) => ({
-   *     status: "CUSTOM_ERROR",
-   *     error: error.schemaName + " failed validation",
-   *     data: error.issues,
-   *   }),
-   * })
-   * ```
-   */
-  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>
-
-  /**
-   * Defaults to `false`.
-   *
-   * If set to `true`, will skip schema validation for all endpoints, unless overridden by the endpoint.
-   *
-   * Can be overridden for specific schemas by passing an array of schema types to skip.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  skipSchemaValidation?: boolean | SchemaType[]
-}
-
-export type CreateApi<Modules extends ModuleName> = {
-  /**
-   * Creates a service to use in your application. Contains only the basic redux logic (the core module).
-   *
-   * @link https://redux-toolkit.js.org/rtk-query/api/createApi
-   */
-  <
-    BaseQuery extends BaseQueryFn,
-    Definitions extends EndpointDefinitions,
-    ReducerPath extends string = 'api',
-    TagTypes extends string = never,
-  >(
-    options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>,
-  ): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>
-}
-
-/**
- * Builds a `createApi` method based on the provided `modules`.
- *
- * @link https://redux-toolkit.js.org/rtk-query/usage/customizing-create-api
- *
- * @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints
- * @returns A `createApi` method using the provided `modules`.
- */
-export function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(
-  ...modules: Modules
-): CreateApi<Modules[number]['name']> {
-  return function baseCreateApi(options) {
-    const extractRehydrationInfo = weakMapMemoize((action: UnknownAction) =>
-      options.extractRehydrationInfo?.(action, {
-        reducerPath: (options.reducerPath ?? 'api') as any,
-      }),
-    )
-
-    const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {
-      reducerPath: 'api',
-      keepUnusedDataFor: 60,
-      refetchOnMountOrArgChange: false,
-      refetchOnFocus: false,
-      refetchOnReconnect: false,
-      invalidationBehavior: 'delayed',
-      ...options,
-      extractRehydrationInfo,
-      serializeQueryArgs(queryArgsApi) {
-        let finalSerializeQueryArgs = defaultSerializeQueryArgs
-        if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {
-          const endpointSQA =
-            queryArgsApi.endpointDefinition.serializeQueryArgs!
-          finalSerializeQueryArgs = (queryArgsApi) => {
-            const initialResult = endpointSQA(queryArgsApi)
-            if (typeof initialResult === 'string') {
-              // If the user function returned a string, use it as-is
-              return initialResult
-            } else {
-              // Assume they returned an object (such as a subset of the original
-              // query args) or a primitive, and serialize it ourselves
-              return defaultSerializeQueryArgs({
-                ...queryArgsApi,
-                queryArgs: initialResult,
-              })
-            }
-          }
-        } else if (options.serializeQueryArgs) {
-          finalSerializeQueryArgs = options.serializeQueryArgs
-        }
-
-        return finalSerializeQueryArgs(queryArgsApi)
-      },
-      tagTypes: [...(options.tagTypes || [])],
-    }
-
-    const context: ApiContext<EndpointDefinitions> = {
-      endpointDefinitions: {},
-      batch(fn) {
-        // placeholder "batch" method to be overridden by plugins, for example with React.unstable_batchedUpdate
-        fn()
-      },
-      apiUid: nanoid(),
-      extractRehydrationInfo,
-      hasRehydrationInfo: weakMapMemoize(
-        (action) => extractRehydrationInfo(action) != null,
-      ),
-    }
-
-    const api = {
-      injectEndpoints,
-      enhanceEndpoints({ addTagTypes, endpoints }) {
-        if (addTagTypes) {
-          for (const eT of addTagTypes) {
-            if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {
-              ;(optionsWithDefaults.tagTypes as any[]).push(eT)
-            }
-          }
-        }
-        if (endpoints) {
-          for (const [endpointName, partialDefinition] of Object.entries(
-            endpoints,
-          )) {
-            if (typeof partialDefinition === 'function') {
-              partialDefinition(getEndpointDefinition(context, endpointName))
-            } else {
-              Object.assign(
-                getEndpointDefinition(context, endpointName) || {},
-                partialDefinition,
-              )
-            }
-          }
-        }
-        return api
-      },
-    } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>
-
-    const initializedModules = modules.map((m) =>
-      m.init(api as any, optionsWithDefaults as any, context),
-    )
-
-    function injectEndpoints(
-      inject: Parameters<typeof api.injectEndpoints>[0],
-    ) {
-      const evaluatedEndpoints = inject.endpoints({
-        query: (x) => ({ ...x, type: ENDPOINT_QUERY }) as any,
-        mutation: (x) => ({ ...x, type: ENDPOINT_MUTATION }) as any,
-        infiniteQuery: (x) => ({ ...x, type: ENDPOINT_INFINITEQUERY }) as any,
-      })
-
-      for (const [endpointName, definition] of Object.entries(
-        evaluatedEndpoints,
-      )) {
-        if (
-          inject.overrideExisting !== true &&
-          endpointName in context.endpointDefinitions
-        ) {
-          if (inject.overrideExisting === 'throw') {
-            throw new Error(
-              `called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``,
-            )
-          } else if (
-            typeof process !== 'undefined' &&
-            process.env.NODE_ENV === 'development'
-          ) {
-            console.error(
-              `called \`injectEndpoints\` to override already-existing endpointName ${endpointName} without specifying \`overrideExisting: true\``,
-            )
-          }
-
-          continue
-        }
-
-        if (
-          typeof process !== 'undefined' &&
-          process.env.NODE_ENV === 'development'
-        ) {
-          if (isInfiniteQueryDefinition(definition)) {
-            const { infiniteQueryOptions } = definition
-            const { maxPages, getPreviousPageParam } = infiniteQueryOptions
-
-            if (typeof maxPages === 'number') {
-              if (maxPages < 1) {
-                throw new Error(
-                  `maxPages for endpoint '${endpointName}' must be a number greater than 0`,
-                )
-              }
-
-              if (typeof getPreviousPageParam !== 'function') {
-                throw new Error(
-                  `getPreviousPageParam for endpoint '${endpointName}' must be a function if maxPages is used`,
-                )
-              }
-            }
-          }
-        }
-
-        context.endpointDefinitions[endpointName] = definition
-        for (const m of initializedModules) {
-          m.injectEndpoint(endpointName, definition)
-        }
-      }
-
-      return api as any
-    }
-
-    return api.injectEndpoints({ endpoints: options.endpoints as any })
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/defaultSerializeQueryArgs.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/defaultSerializeQueryArgs.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import type { QueryCacheKey } from './core/apiState'
-import type { EndpointDefinition } from './endpointDefinitions'
-import { isPlainObject } from './core/rtkImports'
-
-const cache: WeakMap<any, string> | undefined = WeakMap
-  ? new WeakMap()
-  : undefined
-
-export const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({
-  endpointName,
-  queryArgs,
-}) => {
-  let serialized = ''
-
-  const cached = cache?.get(queryArgs)
-
-  if (typeof cached === 'string') {
-    serialized = cached
-  } else {
-    const stringified = JSON.stringify(queryArgs, (key, value) => {
-      // Handle bigints
-      value = typeof value === 'bigint' ? { $bigint: value.toString() } : value
-      // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })
-      value = isPlainObject(value)
-        ? Object.keys(value)
-            .sort()
-            .reduce<any>((acc, key) => {
-              acc[key] = (value as any)[key]
-              return acc
-            }, {})
-        : value
-      return value
-    })
-    if (isPlainObject(queryArgs)) {
-      cache?.set(queryArgs, stringified)
-    }
-    serialized = stringified
-  }
-  return `${endpointName}(${serialized})`
-}
-
-export type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {
-  queryArgs: QueryArgs
-  endpointDefinition: EndpointDefinition<any, any, any, any>
-  endpointName: string
-}) => ReturnType
-
-export type InternalSerializeQueryArgs = (_: {
-  queryArgs: any
-  endpointDefinition: EndpointDefinition<any, any, any, any>
-  endpointName: string
-}) => QueryCacheKey
Index: de_modules/@reduxjs/toolkit/src/query/endpointDefinitions.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/endpointDefinitions.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1605 +1,0 @@
-import type { Api } from '@reduxjs/toolkit/query'
-import type { StandardSchemaV1 } from '@standard-schema/spec'
-import type {
-  BaseQueryApi,
-  BaseQueryArg,
-  BaseQueryError,
-  BaseQueryExtraOptions,
-  BaseQueryFn,
-  BaseQueryMeta,
-  BaseQueryResult,
-  QueryReturnValue,
-} from './baseQueryTypes'
-import type { CacheCollectionQueryExtraOptions } from './core/buildMiddleware/cacheCollection'
-import type {
-  CacheLifecycleInfiniteQueryExtraOptions,
-  CacheLifecycleMutationExtraOptions,
-  CacheLifecycleQueryExtraOptions,
-} from './core/buildMiddleware/cacheLifecycle'
-import type {
-  QueryLifecycleInfiniteQueryExtraOptions,
-  QueryLifecycleMutationExtraOptions,
-  QueryLifecycleQueryExtraOptions,
-} from './core/buildMiddleware/queryLifecycle'
-import type {
-  InfiniteData,
-  InfiniteQueryConfigOptions,
-  QuerySubState,
-  RootState,
-} from './core/index'
-import type { SerializeQueryArgs } from './defaultSerializeQueryArgs'
-import type { NEVER } from './fakeBaseQuery'
-import type {
-  CastAny,
-  HasRequiredProps,
-  MaybePromise,
-  NonUndefined,
-  OmitFromUnion,
-  UnwrapPromise,
-} from './tsHelpers'
-import { isNotNullish } from './utils'
-import type { NamedSchemaError } from './standardSchema'
-import { filterMap } from './utils/filterMap'
-
-const rawResultType = /* @__PURE__ */ Symbol()
-const resultType = /* @__PURE__ */ Symbol()
-const baseQuery = /* @__PURE__ */ Symbol()
-
-export interface SchemaFailureInfo {
-  endpoint: string
-  arg: any
-  type: 'query' | 'mutation'
-  queryCacheKey?: string
-}
-
-export type SchemaFailureHandler = (
-  error: NamedSchemaError,
-  info: SchemaFailureInfo,
-) => void
-
-export type SchemaFailureConverter<BaseQuery extends BaseQueryFn> = (
-  error: NamedSchemaError,
-  info: SchemaFailureInfo,
-) => BaseQueryError<BaseQuery>
-
-export type EndpointDefinitionWithQuery<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  RawResultType extends BaseQueryResult<BaseQuery>,
-> = {
-  /**
-   * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="query example"
-   *
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   * type PostsResponse = Post[]
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   tagTypes: ['Post'],
-   *   endpoints: (build) => ({
-   *     getPosts: build.query<PostsResponse, void>({
-   *       // highlight-start
-   *       query: () => 'posts',
-   *       // highlight-end
-   *     }),
-   *     addPost: build.mutation<Post, Partial<Post>>({
-   *      // highlight-start
-   *      query: (body) => ({
-   *        url: `posts`,
-   *        method: 'POST',
-   *        body,
-   *      }),
-   *      // highlight-end
-   *      invalidatesTags: [{ type: 'Post', id: 'LIST' }],
-   *    }),
-   *   })
-   * })
-   * ```
-   */
-  query(arg: QueryArg): BaseQueryArg<BaseQuery>
-  queryFn?: never
-  /**
-   * A function to manipulate the data returned by a query or mutation.
-   */
-  transformResponse?(
-    baseQueryReturnValue: RawResultType,
-    meta: BaseQueryMeta<BaseQuery>,
-    arg: QueryArg,
-  ): ResultType | Promise<ResultType>
-  /**
-   * A function to manipulate the data returned by a failed query or mutation.
-   */
-  transformErrorResponse?(
-    baseQueryReturnValue: BaseQueryError<BaseQuery>,
-    meta: BaseQueryMeta<BaseQuery>,
-    arg: QueryArg,
-  ): unknown
-
-  /**
-   * A schema for the result *before* it's passed to `transformResponse`.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const postSchema = v.object({ id: v.number(), name: v.string() })
-   * type Post = v.InferOutput<typeof postSchema>
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPostName: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       rawResponseSchema: postSchema,
-   *       transformResponse: (post) => post.name,
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  rawResponseSchema?: StandardSchemaV1<RawResultType>
-
-  /**
-   * A schema for the error object returned by the `query` or `queryFn`, *before* it's passed to `transformErrorResponse`.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   * import {customBaseQuery, baseQueryErrorSchema} from "./customBaseQuery"
-   *
-   * const api = createApi({
-   *   baseQuery: customBaseQuery,
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       rawErrorResponseSchema: baseQueryErrorSchema,
-   *       transformErrorResponse: (error) => error.data,
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  rawErrorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>
-}
-
-export type EndpointDefinitionWithQueryFn<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-> = {
-  /**
-   * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Basic queryFn example"
-   *
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   * type PostsResponse = Post[]
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPosts: build.query<PostsResponse, void>({
-   *       query: () => 'posts',
-   *     }),
-   *     flipCoin: build.query<'heads' | 'tails', void>({
-   *       // highlight-start
-   *       queryFn(arg, queryApi, extraOptions, baseQuery) {
-   *         const randomVal = Math.random()
-   *         if (randomVal < 0.45) {
-   *           return { data: 'heads' }
-   *         }
-   *         if (randomVal < 0.9) {
-   *           return { data: 'tails' }
-   *         }
-   *         return { error: { status: 500, statusText: 'Internal Server Error', data: "Coin landed on its edge!" } }
-   *       }
-   *       // highlight-end
-   *     })
-   *   })
-   * })
-   * ```
-   */
-  queryFn(
-    arg: QueryArg,
-    api: BaseQueryApi,
-    extraOptions: BaseQueryExtraOptions<BaseQuery>,
-    baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>,
-  ): MaybePromise<
-    QueryReturnValue<
-      ResultType,
-      BaseQueryError<BaseQuery>,
-      BaseQueryMeta<BaseQuery>
-    >
-  >
-  query?: never
-  transformResponse?: never
-  transformErrorResponse?: never
-  rawResponseSchema?: never
-  rawErrorResponseSchema?: never
-}
-
-type BaseEndpointTypes<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  RawResultType,
-> = {
-  QueryArg: QueryArg
-  BaseQuery: BaseQuery
-  ResultType: ResultType
-  RawResultType: RawResultType
-}
-
-export type SchemaType =
-  | 'arg'
-  | 'rawResponse'
-  | 'response'
-  | 'rawErrorResponse'
-  | 'errorResponse'
-  | 'meta'
-
-interface CommonEndpointDefinition<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-> {
-  /**
-   * A schema for the arguments to be passed to the `query` or `queryFn`.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       argSchema: v.object({ id: v.number() }),
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  argSchema?: StandardSchemaV1<QueryArg>
-
-  /**
-   * A schema for the result (including `transformResponse` if provided).
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const postSchema = v.object({ id: v.number(), name: v.string() })
-   * type Post = v.InferOutput<typeof postSchema>
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       responseSchema: postSchema,
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  responseSchema?: StandardSchemaV1<ResultType>
-
-  /**
-   * A schema for the error object returned by the `query` or `queryFn` (including `transformErrorResponse` if provided).
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   * import { customBaseQuery, baseQueryErrorSchema } from "./customBaseQuery"
-   *
-   * const api = createApi({
-   *   baseQuery: customBaseQuery,
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       errorResponseSchema: baseQueryErrorSchema,
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  errorResponseSchema?: StandardSchemaV1<BaseQueryError<BaseQuery>>
-
-  /**
-   * A schema for the `meta` property returned by the `query` or `queryFn`.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   * import { customBaseQuery, baseQueryMetaSchema } from "./customBaseQuery"
-   *
-   * const api = createApi({
-   *   baseQuery: customBaseQuery,
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       metaSchema: baseQueryMetaSchema,
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  metaSchema?: StandardSchemaV1<BaseQueryMeta<BaseQuery>>
-
-  /**
-   * Defaults to `true`.
-   *
-   * Most apps should leave this setting on. The only time it can be a performance issue
-   * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and
-   * you're unable to paginate it.
-   *
-   * For details of how this works, please see the below. When it is set to `false`,
-   * every request will cause subscribed components to rerender, even when the data has not changed.
-   *
-   * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing
-   */
-  structuralSharing?: boolean
-
-  /**
-   * A function that is called when a schema validation fails.
-   *
-   * Gets called with a `NamedSchemaError` and an object containing the endpoint name, the type of the endpoint, the argument passed to the endpoint, and the query cache key (if applicable).
-   *
-   * `NamedSchemaError` has the following properties:
-   * - `issues`: an array of issues that caused the validation to fail
-   * - `value`: the value that was passed to the schema
-   * - `schemaName`: the name of the schema that was used to validate the value (e.g. `argSchema`)
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       onSchemaFailure: (error, info) => {
-   *         console.error(error, info)
-   *       },
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  onSchemaFailure?: SchemaFailureHandler
-
-  /**
-   * Convert a schema validation failure into an error shape matching base query errors.
-   *
-   * When not provided, schema failures are treated as fatal, and normal error handling such as tag invalidation will not be executed.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-   *       catchSchemaFailure: (error, info) => ({
-   *         status: "CUSTOM_ERROR",
-   *         error: error.schemaName + " failed validation",
-   *         data: error.issues,
-   *       }),
-   *     }),
-   *   }),
-   * })
-   * ```
-   */
-  catchSchemaFailure?: SchemaFailureConverter<BaseQuery>
-
-  /**
-   * Defaults to `false`.
-   *
-   * If set to `true`, will skip schema validation for this endpoint.
-   * Overrides the global setting.
-   *
-   * Can be overridden for specific schemas by passing an array of schema types to skip.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta no-transpile
-   * import { createApi } from '@reduxjs/toolkit/query/react'
-   * import * as v from "valibot"
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   endpoints: (build) => ({
-   *     getPost: build.query<Post, { id: number }>({
-   *       query: ({ id }) => `/post/${id}`,
-   *       responseSchema: v.object({ id: v.number(), name: v.string() }),
-   *       skipSchemaValidation: process.env.NODE_ENV === "test" ? ["response"] : false, // skip schema validation for response in tests, since we'll be mocking the response
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  skipSchemaValidation?: boolean | SchemaType[]
-}
-
-export type BaseEndpointDefinition<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ResultType,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = (
-  | ([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER]
-      ? never
-      : EndpointDefinitionWithQuery<
-          QueryArg,
-          BaseQuery,
-          ResultType,
-          RawResultType
-        >)
-  | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>
-) &
-  CommonEndpointDefinition<QueryArg, BaseQuery, ResultType> & {
-    /* phantom type */
-    [rawResultType]?: RawResultType
-    /* phantom type */
-    [resultType]?: ResultType
-    /* phantom type */
-    [baseQuery]?: BaseQuery
-  } & HasRequiredProps<
-    BaseQueryExtraOptions<BaseQuery>,
-    { extraOptions: BaseQueryExtraOptions<BaseQuery> },
-    { extraOptions?: BaseQueryExtraOptions<BaseQuery> }
-  >
-
-// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons
-// at runtime, use the string constants defined below.
-export enum DefinitionType {
-  query = 'query',
-  mutation = 'mutation',
-  infinitequery = 'infinitequery',
-}
-
-export const ENDPOINT_QUERY = DefinitionType.query
-export const ENDPOINT_MUTATION = DefinitionType.mutation
-export const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery
-
-type TagDescriptionArray<TagTypes extends string> = ReadonlyArray<
-  TagDescription<TagTypes> | undefined | null
->
-
-export type GetResultDescriptionFn<
-  TagTypes extends string,
-  ResultType,
-  QueryArg,
-  ErrorType,
-  MetaType,
-> = (
-  result: ResultType | undefined,
-  error: ErrorType | undefined,
-  arg: QueryArg,
-  meta: MetaType,
-) => TagDescriptionArray<TagTypes>
-
-export type FullTagDescription<TagType> = {
-  type: TagType
-  id?: number | string
-}
-export type TagDescription<TagType> = TagType | FullTagDescription<TagType>
-
-/**
- * @public
- */
-export type ResultDescription<
-  TagTypes extends string,
-  ResultType,
-  QueryArg,
-  ErrorType,
-  MetaType,
-> =
-  | TagDescriptionArray<TagTypes>
-  | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>
-
-type QueryTypes<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-  /**
-   * The endpoint definition type. To be used with some internal generic types.
-   * @example
-   * ```ts
-   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-   * ```
-   */
-  QueryDefinition: QueryDefinition<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath
-  >
-  TagTypes: TagTypes
-  ReducerPath: ReducerPath
-}
-
-/**
- * @public
- */
-export interface QueryExtraOptions<
-  TagTypes extends string,
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> extends CacheLifecycleQueryExtraOptions<
-      ResultType,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    >,
-    QueryLifecycleQueryExtraOptions<
-      ResultType,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    >,
-    CacheCollectionQueryExtraOptions {
-  type: DefinitionType.query
-
-  /**
-   * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.
-   * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.
-   * 1.  `['Post']` - equivalent to `2`
-   * 2.  `[{ type: 'Post' }]` - equivalent to `1`
-   * 3.  `[{ type: 'Post', id: 1 }]`
-   * 4.  `(result, error, arg) => ['Post']` - equivalent to `5`
-   * 5.  `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`
-   * 6.  `(result, error, arg) => [{ type: 'Post', id: 1 }]`
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="providesTags example"
-   *
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   * type PostsResponse = Post[]
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   tagTypes: ['Posts'],
-   *   endpoints: (build) => ({
-   *     getPosts: build.query<PostsResponse, void>({
-   *       query: () => 'posts',
-   *       // highlight-start
-   *       providesTags: (result) =>
-   *         result
-   *           ? [
-   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-   *               { type: 'Posts', id: 'LIST' },
-   *             ]
-   *           : [{ type: 'Posts', id: 'LIST' }],
-   *       // highlight-end
-   *     })
-   *   })
-   * })
-   * ```
-   */
-  providesTags?: ResultDescription<
-    TagTypes,
-    ResultType,
-    QueryArg,
-    BaseQueryError<BaseQuery>,
-    BaseQueryMeta<BaseQuery>
-  >
-  /**
-   * Not to be used. A query should not invalidate tags in the cache.
-   */
-  invalidatesTags?: never
-
-  /**
-   * Can be provided to return a custom cache key value based on the query arguments.
-   *
-   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-   *
-   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-   *
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="serializeQueryArgs : exclude value"
-   *
-   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * interface MyApiClient {
-   *   fetchPost: (id: string) => Promise<Post>
-   * }
-   *
-   * createApi({
-   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *  endpoints: (build) => ({
-   *    // Example: an endpoint with an API client passed in as an argument,
-   *    // but only the item ID should be used as the cache key
-   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-   *      queryFn: async ({ id, client }) => {
-   *        const post = await client.fetchPost(id)
-   *        return { data: post }
-   *      },
-   *      // highlight-start
-   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-   *        const { id } = queryArgs
-   *        // This can return a string, an object, a number, or a boolean.
-   *        // If it returns an object, number or boolean, that value
-   *        // will be serialized automatically via `defaultSerializeQueryArgs`
-   *        return { id } // omit `client` from the cache key
-   *
-   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-   *        // return defaultSerializeQueryArgs({
-   *        //   endpointName,
-   *        //   queryArgs: { id },
-   *        //   endpointDefinition
-   *        // })
-   *        // Or  create and return a string yourself:
-   *        // return `getPost(${id})`
-   *      },
-   *      // highlight-end
-   *    }),
-   *  }),
-   *})
-   * ```
-   */
-  serializeQueryArgs?: SerializeQueryArgs<
-    QueryArg,
-    string | number | boolean | Record<any, any>
-  >
-
-  /**
-   * Can be provided to merge an incoming response value into the current cache data.
-   * If supplied, no automatic structural sharing will be applied - it's up to
-   * you to update the cache appropriately.
-   *
-   * Since RTKQ normally replaces cache entries with the new response, you will usually
-   * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep
-   * an existing cache entry so that it can be updated.
-   *
-   * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,
-   * or return a new value, but _not_ both at once.
-   *
-   * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,
-   * the cache entry will just save the response data directly.
-   *
-   * Useful if you don't want a new request to completely override the current cache value,
-   * maybe because you have manually updated it from another source and don't want those
-   * updates to get lost.
-   *
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="merge: pagination"
-   *
-   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * createApi({
-   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *  endpoints: (build) => ({
-   *    listItems: build.query<string[], number>({
-   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-   *     // Only have one cache entry because the arg always maps to one string
-   *     serializeQueryArgs: ({ endpointName }) => {
-   *       return endpointName
-   *      },
-   *      // Always merge incoming data to the cache entry
-   *      merge: (currentCache, newItems) => {
-   *        currentCache.push(...newItems)
-   *      },
-   *      // Refetch when the page arg changes
-   *      forceRefetch({ currentArg, previousArg }) {
-   *        return currentArg !== previousArg
-   *      },
-   *    }),
-   *  }),
-   *})
-   * ```
-   */
-  merge?(
-    currentCacheData: ResultType,
-    responseData: ResultType,
-    otherArgs: {
-      arg: QueryArg
-      baseQueryMeta: BaseQueryMeta<BaseQuery>
-      requestId: string
-      fulfilledTimeStamp: number
-    },
-  ): ResultType | void
-
-  /**
-   * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.
-   * This is primarily useful for "infinite scroll" / pagination use cases where
-   * RTKQ is keeping a single cache entry that is added to over time, in combination
-   * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback
-   * set to add incoming data to the cache entry each time.
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="forceRefresh: pagination"
-   *
-   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * createApi({
-   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *  endpoints: (build) => ({
-   *    listItems: build.query<string[], number>({
-   *      query: (pageNumber) => `/listItems?page=${pageNumber}`,
-   *     // Only have one cache entry because the arg always maps to one string
-   *     serializeQueryArgs: ({ endpointName }) => {
-   *       return endpointName
-   *      },
-   *      // Always merge incoming data to the cache entry
-   *      merge: (currentCache, newItems) => {
-   *        currentCache.push(...newItems)
-   *      },
-   *      // Refetch when the page arg changes
-   *      forceRefetch({ currentArg, previousArg }) {
-   *        return currentArg !== previousArg
-   *      },
-   *    }),
-   *  }),
-   *})
-   * ```
-   */
-  forceRefetch?(params: {
-    currentArg: QueryArg | undefined
-    previousArg: QueryArg | undefined
-    state: RootState<any, any, string>
-    endpointState?: QuerySubState<any>
-  }): boolean
-
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types?: QueryTypes<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-}
-
-export type QueryDefinition<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> &
-  QueryExtraOptions<
-    TagTypes,
-    ResultType,
-    QueryArg,
-    BaseQuery,
-    ReducerPath,
-    RawResultType
-  >
-
-export type InfiniteQueryTypes<
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-  /**
-   * The endpoint definition type. To be used with some internal generic types.
-   * @example
-   * ```ts
-   * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...
-   * ```
-   */
-  InfiniteQueryDefinition: InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath
-  >
-  TagTypes: TagTypes
-  ReducerPath: ReducerPath
-}
-
-export interface InfiniteQueryExtraOptions<
-  TagTypes extends string,
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> extends CacheLifecycleInfiniteQueryExtraOptions<
-      InfiniteData<ResultType, PageParam>,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    >,
-    QueryLifecycleInfiniteQueryExtraOptions<
-      InfiniteData<ResultType, PageParam>,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    >,
-    CacheCollectionQueryExtraOptions {
-  type: DefinitionType.infinitequery
-
-  providesTags?: ResultDescription<
-    TagTypes,
-    InfiniteData<ResultType, PageParam>,
-    QueryArg,
-    BaseQueryError<BaseQuery>,
-    BaseQueryMeta<BaseQuery>
-  >
-  /**
-   * Not to be used. A query should not invalidate tags in the cache.
-   */
-  invalidatesTags?: never
-
-  /**
-   * Required options to configure the infinite query behavior.
-   * `initialPageParam` and `getNextPageParam` are required, to
-   * ensure the infinite query can properly fetch the next page of data.
-   * `initialPageParam` may be specified when using the
-   * endpoint, to override the default value.
-   * `maxPages` and `getPreviousPageParam` are both optional.
-   * 
-   * @example
-   * 
-   * ```ts
-   * // codeblock-meta title="infiniteQueryOptions example"
-   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-   * 
-   * type Pokemon = {
-   *   id: string
-   *   name: string
-   * }
-   * 
-   * const pokemonApi = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-   *   endpoints: (build) => ({
-   *     getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>({
-   *       infiniteQueryOptions: {
-   *         initialPageParam: 0,
-   *         maxPages: 3,
-   *         getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>
-   *           lastPageParam + 1,
-   *         getPreviousPageParam: (
-   *           firstPage,
-   *           allPages,
-   *           firstPageParam,
-   *           allPageParams,
-   *         ) => {
-   *           return firstPageParam > 0 ? firstPageParam - 1 : undefined
-   *         },
-   *       },
-   *       query({pageParam}) {
-   *         return `https://example.com/listItems?page=${pageParam}`
-   *       },
-   *     }),
-   *   }),
-   * })
-   
-   * ```
-   */
-  infiniteQueryOptions: InfiniteQueryConfigOptions<
-    ResultType,
-    PageParam,
-    QueryArg
-  >
-
-  /**
-   * Can be provided to return a custom cache key value based on the query arguments.
-   *
-   * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key.  It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.
-   *
-   * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean.  If it returns a string, that value will be used as the cache key directly.  If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`.  This simplifies the use case of stripping out args you don't want included in the cache key.
-   *
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="serializeQueryArgs : exclude value"
-   *
-   * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   *
-   * interface MyApiClient {
-   *   fetchPost: (id: string) => Promise<Post>
-   * }
-   *
-   * createApi({
-   *  baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *  endpoints: (build) => ({
-   *    // Example: an endpoint with an API client passed in as an argument,
-   *    // but only the item ID should be used as the cache key
-   *    getPost: build.query<Post, { id: string; client: MyApiClient }>({
-   *      queryFn: async ({ id, client }) => {
-   *        const post = await client.fetchPost(id)
-   *        return { data: post }
-   *      },
-   *      // highlight-start
-   *      serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {
-   *        const { id } = queryArgs
-   *        // This can return a string, an object, a number, or a boolean.
-   *        // If it returns an object, number or boolean, that value
-   *        // will be serialized automatically via `defaultSerializeQueryArgs`
-   *        return { id } // omit `client` from the cache key
-   *
-   *        // Alternately, you can use `defaultSerializeQueryArgs` yourself:
-   *        // return defaultSerializeQueryArgs({
-   *        //   endpointName,
-   *        //   queryArgs: { id },
-   *        //   endpointDefinition
-   *        // })
-   *        // Or  create and return a string yourself:
-   *        // return `getPost(${id})`
-   *      },
-   *      // highlight-end
-   *    }),
-   *  }),
-   *})
-   * ```
-   */
-  serializeQueryArgs?: SerializeQueryArgs<
-    QueryArg,
-    string | number | boolean | Record<any, any>
-  >
-
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types?: InfiniteQueryTypes<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-}
-
-export type InfiniteQueryDefinition<
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> =
-  // Infinite query endpoints receive `{queryArg, pageParam}`
-  BaseEndpointDefinition<
-    InfiniteQueryCombinedArg<QueryArg, PageParam>,
-    BaseQuery,
-    ResultType,
-    RawResultType
-  > &
-    InfiniteQueryExtraOptions<
-      TagTypes,
-      ResultType,
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      ReducerPath,
-      RawResultType
-    >
-
-type MutationTypes<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = BaseEndpointTypes<QueryArg, BaseQuery, ResultType, RawResultType> & {
-  /**
-   * The endpoint definition type. To be used with some internal generic types.
-   * @example
-   * ```ts
-   * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...
-   * ```
-   */
-  MutationDefinition: MutationDefinition<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath
-  >
-  TagTypes: TagTypes
-  ReducerPath: ReducerPath
-}
-
-/**
- * @public
- */
-export interface MutationExtraOptions<
-  TagTypes extends string,
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> extends CacheLifecycleMutationExtraOptions<
-      ResultType,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    >,
-    QueryLifecycleMutationExtraOptions<
-      ResultType,
-      QueryArg,
-      BaseQuery,
-      ReducerPath
-    > {
-  type: DefinitionType.mutation
-
-  /**
-   * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.
-   * Expects the same shapes as `providesTags`.
-   *
-   * @example
-   *
-   * ```ts
-   * // codeblock-meta title="invalidatesTags example"
-   * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-   * interface Post {
-   *   id: number
-   *   name: string
-   * }
-   * type PostsResponse = Post[]
-   *
-   * const api = createApi({
-   *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
-   *   tagTypes: ['Posts'],
-   *   endpoints: (build) => ({
-   *     getPosts: build.query<PostsResponse, void>({
-   *       query: () => 'posts',
-   *       providesTags: (result) =>
-   *         result
-   *           ? [
-   *               ...result.map(({ id }) => ({ type: 'Posts' as const, id })),
-   *               { type: 'Posts', id: 'LIST' },
-   *             ]
-   *           : [{ type: 'Posts', id: 'LIST' }],
-   *     }),
-   *     addPost: build.mutation<Post, Partial<Post>>({
-   *       query(body) {
-   *         return {
-   *           url: `posts`,
-   *           method: 'POST',
-   *           body,
-   *         }
-   *       },
-   *       // highlight-start
-   *       invalidatesTags: [{ type: 'Posts', id: 'LIST' }],
-   *       // highlight-end
-   *     }),
-   *   })
-   * })
-   * ```
-   */
-  invalidatesTags?: ResultDescription<
-    TagTypes,
-    ResultType,
-    QueryArg,
-    BaseQueryError<BaseQuery>,
-    BaseQueryMeta<BaseQuery>
-  >
-  /**
-   * Not to be used. A mutation should not provide tags to the cache.
-   */
-  providesTags?: never
-
-  /**
-   * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!
-   */
-  Types?: MutationTypes<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-}
-
-export type MutationDefinition<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType, RawResultType> &
-  MutationExtraOptions<
-    TagTypes,
-    ResultType,
-    QueryArg,
-    BaseQuery,
-    ReducerPath,
-    RawResultType
-  >
-
-export type EndpointDefinition<
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ResultType,
-  ReducerPath extends string = string,
-  PageParam = any,
-  RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-> =
-  | QueryDefinition<
-      QueryArg,
-      BaseQuery,
-      TagTypes,
-      ResultType,
-      ReducerPath,
-      RawResultType
-    >
-  | MutationDefinition<
-      QueryArg,
-      BaseQuery,
-      TagTypes,
-      ResultType,
-      ReducerPath,
-      RawResultType
-    >
-  | InfiniteQueryDefinition<
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      TagTypes,
-      ResultType,
-      ReducerPath,
-      RawResultType
-    >
-
-export type EndpointDefinitions = Record<
-  string,
-  EndpointDefinition<any, any, any, any, any, any, any>
->
-
-export function isQueryDefinition(
-  e: EndpointDefinition<any, any, any, any, any, any, any>,
-): e is QueryDefinition<any, any, any, any, any, any> {
-  return e.type === ENDPOINT_QUERY
-}
-
-export function isMutationDefinition(
-  e: EndpointDefinition<any, any, any, any, any, any, any>,
-): e is MutationDefinition<any, any, any, any, any, any> {
-  return e.type === ENDPOINT_MUTATION
-}
-
-export function isInfiniteQueryDefinition(
-  e: EndpointDefinition<any, any, any, any, any, any, any>,
-): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {
-  return e.type === ENDPOINT_INFINITEQUERY
-}
-
-export function isAnyQueryDefinition(
-  e: EndpointDefinition<any, any, any, any>,
-): e is
-  | QueryDefinition<any, any, any, any>
-  | InfiniteQueryDefinition<any, any, any, any, any> {
-  return isQueryDefinition(e) || isInfiniteQueryDefinition(e)
-}
-
-export type EndpointBuilder<
-  BaseQuery extends BaseQueryFn,
-  TagTypes extends string,
-  ReducerPath extends string,
-> = {
-  /**
-   * An endpoint definition that retrieves data, and may provide tags to the cache.
-   *
-   * @example
-   * ```js
-   * // codeblock-meta title="Example of all query endpoint options"
-   * const api = createApi({
-   *  baseQuery,
-   *  endpoints: (build) => ({
-   *    getPost: build.query({
-   *      query: (id) => ({ url: `post/${id}` }),
-   *      // Pick out data and prevent nested properties in a hook or selector
-   *      transformResponse: (response) => response.data,
-   *      // Pick out error and prevent nested properties in a hook or selector
-   *      transformErrorResponse: (response) => response.error,
-   *      // `result` is the server response
-   *      providesTags: (result, error, id) => [{ type: 'Post', id }],
-   *      // trigger side effects or optimistic updates
-   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},
-   *      // handle subscriptions etc
-   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},
-   *    }),
-   *  }),
-   *});
-   *```
-   */
-  query<
-    ResultType,
-    QueryArg,
-    RawResultType extends
-      BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-  >(
-    definition: OmitFromUnion<
-      QueryDefinition<
-        QueryArg,
-        BaseQuery,
-        TagTypes,
-        ResultType,
-        ReducerPath,
-        RawResultType
-      >,
-      'type'
-    >,
-  ): QueryDefinition<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-
-  /**
-   * An endpoint definition that alters data on the server or will possibly invalidate the cache.
-   *
-   * @example
-   * ```js
-   * // codeblock-meta title="Example of all mutation endpoint options"
-   * const api = createApi({
-   *   baseQuery,
-   *   endpoints: (build) => ({
-   *     updatePost: build.mutation({
-   *       query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),
-   *       // Pick out data and prevent nested properties in a hook or selector
-   *       transformResponse: (response) => response.data,
-   *       // Pick out error and prevent nested properties in a hook or selector
-   *       transformErrorResponse: (response) => response.error,
-   *       // `result` is the server response
-   *       invalidatesTags: (result, error, id) => [{ type: 'Post', id }],
-   *      // trigger side effects or optimistic updates
-   *      onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},
-   *      // handle subscriptions etc
-   *      onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},
-   *     }),
-   *   }),
-   * });
-   * ```
-   */
-  mutation<
-    ResultType,
-    QueryArg,
-    RawResultType extends
-      BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-  >(
-    definition: OmitFromUnion<
-      MutationDefinition<
-        QueryArg,
-        BaseQuery,
-        TagTypes,
-        ResultType,
-        ReducerPath,
-        RawResultType
-      >,
-      'type'
-    >,
-  ): MutationDefinition<
-    QueryArg,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-
-  infiniteQuery<
-    ResultType,
-    QueryArg,
-    PageParam,
-    RawResultType extends
-      BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
-  >(
-    definition: OmitFromUnion<
-      InfiniteQueryDefinition<
-        QueryArg,
-        PageParam,
-        BaseQuery,
-        TagTypes,
-        ResultType,
-        ReducerPath,
-        RawResultType
-      >,
-      'type'
-    >,
-  ): InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    TagTypes,
-    ResultType,
-    ReducerPath,
-    RawResultType
-  >
-}
-
-export type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T
-
-export function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(
-  description:
-    | ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType>
-    | undefined,
-  result: ResultType | undefined,
-  error: ErrorType | undefined,
-  queryArg: QueryArg,
-  meta: MetaType | undefined,
-  assertTagTypes: AssertTagTypes,
-): readonly FullTagDescription<string>[] {
-  const finalDescription = isFunction(description)
-    ? description(
-        result as ResultType,
-        error as undefined,
-        queryArg,
-        meta as MetaType,
-      )
-    : description
-
-  if (finalDescription) {
-    return filterMap(finalDescription, isNotNullish, (tag) =>
-      assertTagTypes(expandTagDescription(tag)),
-    )
-  }
-
-  return []
-}
-
-function isFunction<T>(t: T): t is Extract<T, Function> {
-  return typeof t === 'function'
-}
-
-export function expandTagDescription(
-  description: TagDescription<string>,
-): FullTagDescription<string> {
-  return typeof description === 'string' ? { type: description } : description
-}
-
-export type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> =
-  D extends BaseEndpointDefinition<infer QA, any, any, any> ? QA : never
-
-// Just extracting `QueryArg` from `BaseEndpointDefinition`
-// doesn't sufficiently match here.
-// We need to explicitly match against `InfiniteQueryDefinition`
-export type InfiniteQueryArgFrom<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> =
-  D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any>
-    ? QA
-    : never
-
-export type QueryArgFromAnyQuery<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> =
-  D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>
-    ? InfiniteQueryArgFrom<D>
-    : D extends QueryDefinition<any, any, any, any, any, any>
-      ? QueryArgFrom<D>
-      : never
-
-export type ResultTypeFrom<
-  D extends BaseEndpointDefinition<any, any, any, any>,
-> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown
-
-export type ReducerPathFrom<
-  D extends EndpointDefinition<any, any, any, any, any, any, any>,
-> =
-  D extends EndpointDefinition<any, any, any, any, infer RP, any, any>
-    ? RP
-    : unknown
-
-export type TagTypesFrom<
-  D extends EndpointDefinition<any, any, any, any, any, any, any>,
-> =
-  D extends EndpointDefinition<any, any, infer TT, any, any, any, any>
-    ? TT
-    : unknown
-
-export type PageParamFrom<
-  D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>,
-> =
-  D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any>
-    ? PP
-    : unknown
-
-export type InfiniteQueryCombinedArg<QueryArg, PageParam> = {
-  queryArg: QueryArg
-  pageParam: PageParam
-}
-
-export type TagTypesFromApi<T> =
-  T extends Api<any, any, any, infer TagTypes> ? TagTypes : never
-
-export type DefinitionsFromApi<T> =
-  T extends Api<any, infer Definitions, any, any> ? Definitions : never
-
-export type TransformedResponse<
-  NewDefinitions extends EndpointDefinitions,
-  K,
-  ResultType,
-> = K extends keyof NewDefinitions
-  ? NewDefinitions[K]['transformResponse'] extends undefined
-    ? ResultType
-    : UnwrapPromise<
-        ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>
-      >
-  : ResultType
-
-export type OverrideResultType<Definition, NewResultType> =
-  Definition extends QueryDefinition<
-    infer QueryArg,
-    infer BaseQuery,
-    infer TagTypes,
-    any,
-    infer ReducerPath
-  >
-    ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath>
-    : Definition extends MutationDefinition<
-          infer QueryArg,
-          infer BaseQuery,
-          infer TagTypes,
-          any,
-          infer ReducerPath
-        >
-      ? MutationDefinition<
-          QueryArg,
-          BaseQuery,
-          TagTypes,
-          NewResultType,
-          ReducerPath
-        >
-      : Definition extends InfiniteQueryDefinition<
-            infer QueryArg,
-            infer PageParam,
-            infer BaseQuery,
-            infer TagTypes,
-            any,
-            infer ReducerPath
-          >
-        ? InfiniteQueryDefinition<
-            QueryArg,
-            PageParam,
-            BaseQuery,
-            TagTypes,
-            NewResultType,
-            ReducerPath
-          >
-        : never
-
-export type UpdateDefinitions<
-  Definitions extends EndpointDefinitions,
-  NewTagTypes extends string,
-  NewDefinitions extends EndpointDefinitions,
-> = {
-  [K in keyof Definitions]: Definitions[K] extends QueryDefinition<
-    infer QueryArg,
-    infer BaseQuery,
-    any,
-    infer ResultType,
-    infer ReducerPath
-  >
-    ? QueryDefinition<
-        QueryArg,
-        BaseQuery,
-        NewTagTypes,
-        TransformedResponse<NewDefinitions, K, ResultType>,
-        ReducerPath
-      >
-    : Definitions[K] extends MutationDefinition<
-          infer QueryArg,
-          infer BaseQuery,
-          any,
-          infer ResultType,
-          infer ReducerPath
-        >
-      ? MutationDefinition<
-          QueryArg,
-          BaseQuery,
-          NewTagTypes,
-          TransformedResponse<NewDefinitions, K, ResultType>,
-          ReducerPath
-        >
-      : Definitions[K] extends InfiniteQueryDefinition<
-            infer QueryArg,
-            infer PageParam,
-            infer BaseQuery,
-            any,
-            infer ResultType,
-            infer ReducerPath
-          >
-        ? InfiniteQueryDefinition<
-            QueryArg,
-            PageParam,
-            BaseQuery,
-            NewTagTypes,
-            TransformedResponse<NewDefinitions, K, ResultType>,
-            ReducerPath
-          >
-        : never
-}
Index: de_modules/@reduxjs/toolkit/src/query/fakeBaseQuery.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/fakeBaseQuery.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import type { BaseQueryFn } from './baseQueryTypes'
-
-export const _NEVER = /* @__PURE__ */ Symbol()
-export type NEVER = typeof _NEVER
-
-/**
- * Creates a "fake" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.
- * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.
- */
-export function fakeBaseQuery<ErrorType>(): BaseQueryFn<
-  void,
-  NEVER,
-  ErrorType,
-  {}
-> {
-  return function () {
-    throw new Error(
-      'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.',
-    )
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/fetchBaseQuery.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/fetchBaseQuery.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,385 +1,0 @@
-import { joinUrls } from './utils'
-import { isPlainObject } from './core/rtkImports'
-import type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes'
-import type { MaybePromise, Override } from './tsHelpers'
-import { anySignal, timeoutSignal } from './utils/signals'
-
-export type ResponseHandler =
-  | 'content-type'
-  | 'json'
-  | 'text'
-  | ((response: Response) => Promise<any>)
-
-type CustomRequestInit = Override<
-  RequestInit,
-  {
-    headers?:
-      | Headers
-      | string[][]
-      | Record<string, string | undefined>
-      | undefined
-  }
->
-
-export interface FetchArgs extends CustomRequestInit {
-  url: string
-  params?: Record<string, any>
-  body?: any
-  responseHandler?: ResponseHandler
-  validateStatus?: (response: Response, body: any) => boolean
-  /**
-   * A number in milliseconds that represents that maximum time a request can take before timing out.
-   */
-  timeout?: number
-}
-
-/**
- * A mini-wrapper that passes arguments straight through to
- * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.
- * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.
- */
-const defaultFetchFn: typeof fetch = (...args) => fetch(...args)
-
-const defaultValidateStatus = (response: Response) =>
-  response.status >= 200 && response.status <= 299
-
-const defaultIsJsonContentType = (headers: Headers) =>
-  /*applicat*/ /ion\/(vnd\.api\+)?json/.test(headers.get('content-type') || '')
-
-export type FetchBaseQueryError =
-  | {
-      /**
-       * * `number`:
-       *   HTTP status code
-       */
-      status: number
-      data: unknown
-    }
-  | {
-      /**
-       * * `"FETCH_ERROR"`:
-       *   An error that occurred during execution of `fetch` or the `fetchFn` callback option
-       **/
-      status: 'FETCH_ERROR'
-      data?: undefined
-      error: string
-    }
-  | {
-      /**
-       * * `"PARSING_ERROR"`:
-       *   An error happened during parsing.
-       *   Most likely a non-JSON-response was returned with the default `responseHandler` "JSON",
-       *   or an error occurred while executing a custom `responseHandler`.
-       **/
-      status: 'PARSING_ERROR'
-      originalStatus: number
-      data: string
-      error: string
-    }
-  | {
-      /**
-       * * `"TIMEOUT_ERROR"`:
-       *   Request timed out
-       **/
-      status: 'TIMEOUT_ERROR'
-      data?: undefined
-      error: string
-    }
-  | {
-      /**
-       * * `"CUSTOM_ERROR"`:
-       *   A custom error type that you can return from your `queryFn` where another error might not make sense.
-       **/
-      status: 'CUSTOM_ERROR'
-      data?: unknown
-      error: string
-    }
-
-function stripUndefined(obj: any) {
-  if (!isPlainObject(obj)) {
-    return obj
-  }
-  const copy: Record<string, any> = { ...obj }
-  for (const [k, v] of Object.entries(copy)) {
-    if (v === undefined) delete copy[k]
-  }
-  return copy
-}
-
-// Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.
-const isJsonifiable = (body: any) =>
-  typeof body === 'object' &&
-  (isPlainObject(body) ||
-    Array.isArray(body) ||
-    typeof body.toJSON === 'function')
-
-export type FetchBaseQueryArgs = {
-  baseUrl?: string
-  prepareHeaders?: (
-    headers: Headers,
-    api: Pick<
-      BaseQueryApi,
-      'getState' | 'extra' | 'endpoint' | 'type' | 'forced'
-    > & { arg: string | FetchArgs; extraOptions: unknown },
-  ) => MaybePromise<Headers | void>
-  fetchFn?: (
-    input: RequestInfo,
-    init?: RequestInit | undefined,
-  ) => Promise<Response>
-  paramsSerializer?: (params: Record<string, any>) => string
-  /**
-   * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass
-   * in a predicate function for your given api to get the same automatic stringifying behavior
-   * @example
-   * ```ts
-   * const isJsonContentType = (headers: Headers) => ["application/vnd.api+json", "application/json", "application/vnd.hal+json"].includes(headers.get("content-type")?.trim());
-   * ```
-   */
-  isJsonContentType?: (headers: Headers) => boolean
-  /**
-   * Defaults to `application/json`;
-   */
-  jsonContentType?: string
-
-  /**
-   * Custom replacer function used when calling `JSON.stringify()`;
-   */
-  jsonReplacer?: (this: any, key: string, value: any) => any
-} & RequestInit &
-  Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>
-
-export type FetchBaseQueryMeta = { request: Request; response?: Response }
-
-/**
- * This is a very small wrapper around fetch that aims to simplify requests.
- *
- * @example
- * ```ts
- * const baseQuery = fetchBaseQuery({
- *   baseUrl: 'https://api.your-really-great-app.com/v1/',
- *   prepareHeaders: (headers, { getState }) => {
- *     const token = (getState() as RootState).auth.token;
- *     // If we have a token set in state, let's assume that we should be passing it.
- *     if (token) {
- *       headers.set('authorization', `Bearer ${token}`);
- *     }
- *     return headers;
- *   },
- * })
- * ```
- *
- * @param {string} baseUrl
- * The base URL for an API service.
- * Typically in the format of https://example.com/
- *
- * @param {(headers: Headers, api: { getState: () => unknown; arg: string | FetchArgs; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders
- * An optional function that can be used to inject headers on requests.
- * Provides a Headers object, most of the `BaseQueryApi` (`dispatch` is not available), and the arg passed into the query function.
- * Useful for setting authentication or headers that need to be set conditionally.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers
- *
- * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn
- * Accepts a custom `fetch` function if you do not want to use the default on the window.
- * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`
- *
- * @param {(params: Record<string, unknown>) => string} paramsSerializer
- * An optional function that can be used to stringify querystring parameters.
- *
- * @param {(headers: Headers) => boolean} isJsonContentType
- * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`
- *
- * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.
- *
- * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.
- *
- * @param {number} timeout
- * A number in milliseconds that represents the maximum time a request can take before timing out.
- */
-
-export function fetchBaseQuery({
-  baseUrl,
-  prepareHeaders = (x) => x,
-  fetchFn = defaultFetchFn,
-  paramsSerializer,
-  isJsonContentType = defaultIsJsonContentType,
-  jsonContentType = 'application/json',
-  jsonReplacer,
-  timeout: defaultTimeout,
-  responseHandler: globalResponseHandler,
-  validateStatus: globalValidateStatus,
-  ...baseFetchOptions
-}: FetchBaseQueryArgs = {}): BaseQueryFn<
-  string | FetchArgs,
-  unknown,
-  FetchBaseQueryError,
-  {},
-  FetchBaseQueryMeta
-> {
-  if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {
-    console.warn(
-      'Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.',
-    )
-  }
-  return async (arg, api, extraOptions) => {
-    const { getState, extra, endpoint, forced, type } = api
-    let meta: FetchBaseQueryMeta | undefined
-    let {
-      url,
-      headers = new Headers(baseFetchOptions.headers),
-      params = undefined,
-      responseHandler = globalResponseHandler ?? ('json' as const),
-      validateStatus = globalValidateStatus ?? defaultValidateStatus,
-      timeout = defaultTimeout,
-      ...rest
-    } = typeof arg == 'string' ? { url: arg } : arg
-
-    let config: RequestInit = {
-      ...baseFetchOptions,
-      signal: timeout
-        ? anySignal(api.signal, timeoutSignal(timeout))
-        : api.signal,
-      ...rest,
-    }
-
-    headers = new Headers(stripUndefined(headers))
-    config.headers =
-      (await prepareHeaders(headers, {
-        getState,
-        arg,
-        extra,
-        endpoint,
-        forced,
-        type,
-        extraOptions,
-      })) || headers
-
-    const bodyIsJsonifiable = isJsonifiable(config.body)
-
-    // Remove content-type for non-jsonifiable bodies to let the browser set it automatically
-    // Exception: keep content-type for string bodies as they might be intentional (text/plain, text/html, etc.)
-    if (
-      config.body != null &&
-      !bodyIsJsonifiable &&
-      typeof config.body !== 'string'
-    ) {
-      config.headers.delete('content-type')
-    }
-
-    if (!config.headers.has('content-type') && bodyIsJsonifiable) {
-      config.headers.set('content-type', jsonContentType)
-    }
-
-    if (bodyIsJsonifiable && isJsonContentType(config.headers)) {
-      config.body = JSON.stringify(config.body, jsonReplacer)
-    }
-
-    // Set Accept header based on responseHandler if not already set
-    if (!config.headers.has('accept')) {
-      if (responseHandler === 'json') {
-        config.headers.set('accept', 'application/json')
-      } else if (responseHandler === 'text') {
-        config.headers.set('accept', 'text/plain, text/html, */*')
-      }
-      // For 'content-type' responseHandler, don't set Accept (let server decide)
-    }
-
-    if (params) {
-      const divider = ~url.indexOf('?') ? '&' : '?'
-      const query = paramsSerializer
-        ? paramsSerializer(params)
-        : new URLSearchParams(stripUndefined(params))
-      url += divider + query
-    }
-
-    url = joinUrls(baseUrl, url)
-
-    const request = new Request(url, config)
-    const requestClone = new Request(url, config)
-    meta = { request: requestClone }
-
-    let response
-    try {
-      response = await fetchFn(request)
-    } catch (e) {
-      return {
-        error: {
-          status:
-            (e instanceof Error ||
-              (typeof DOMException !== 'undefined' &&
-                e instanceof DOMException)) &&
-            e.name === 'TimeoutError'
-              ? 'TIMEOUT_ERROR'
-              : 'FETCH_ERROR',
-          error: String(e),
-        },
-        meta,
-      }
-    }
-    const responseClone = response.clone()
-
-    meta.response = responseClone
-
-    let resultData: any
-    let responseText: string = ''
-    try {
-      let handleResponseError
-      await Promise.all([
-        handleResponse(response, responseHandler).then(
-          (r) => (resultData = r),
-          (e) => (handleResponseError = e),
-        ),
-        // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182
-        // we *have* to "use up" both streams at the same time or they will stop running in node-fetch scenarios
-        responseClone.text().then(
-          (r) => (responseText = r),
-          () => {},
-        ),
-      ])
-      if (handleResponseError) throw handleResponseError
-    } catch (e) {
-      return {
-        error: {
-          status: 'PARSING_ERROR',
-          originalStatus: response.status,
-          data: responseText,
-          error: String(e),
-        },
-        meta,
-      }
-    }
-
-    return validateStatus(response, resultData)
-      ? {
-          data: resultData,
-          meta,
-        }
-      : {
-          error: {
-            status: response.status,
-            data: resultData,
-          },
-          meta,
-        }
-  }
-
-  async function handleResponse(
-    response: Response,
-    responseHandler: ResponseHandler,
-  ) {
-    if (typeof responseHandler === 'function') {
-      return responseHandler(response)
-    }
-
-    if (responseHandler === 'content-type') {
-      responseHandler = isJsonContentType(response.headers) ? 'json' : 'text'
-    }
-
-    if (responseHandler === 'json') {
-      const text = await response.text()
-      return text.length ? JSON.parse(text) : null
-    }
-
-    return response.text()
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,106 +1,0 @@
-// This must remain here so that the `mangleErrors.cjs` build script
-// does not have to import this into each source file it rewrites.
-import { formatProdErrorMessage } from '@reduxjs/toolkit'
-
-export type {
-  CombinedState,
-  QueryCacheKey,
-  QueryKeys,
-  QuerySubState,
-  RootState,
-  SubscriptionOptions,
-} from './core/apiState'
-export { QueryStatus } from './core/apiState'
-export type { Api, ApiContext, Module } from './apiTypes'
-
-export type {
-  BaseQueryApi,
-  BaseQueryArg,
-  BaseQueryEnhancer,
-  BaseQueryError,
-  BaseQueryExtraOptions,
-  BaseQueryFn,
-  BaseQueryMeta,
-  BaseQueryResult,
-  QueryReturnValue,
-} from './baseQueryTypes'
-export type {
-  BaseEndpointDefinition,
-  EndpointDefinitions,
-  EndpointDefinition,
-  EndpointBuilder,
-  QueryDefinition,
-  MutationDefinition,
-  MutationExtraOptions,
-  InfiniteQueryArgFrom,
-  InfiniteQueryDefinition,
-  InfiniteQueryExtraOptions,
-  PageParamFrom,
-  TagDescription,
-  QueryArgFrom,
-  QueryExtraOptions,
-  ResultTypeFrom,
-  DefinitionType,
-  DefinitionsFromApi,
-  OverrideResultType,
-  ResultDescription,
-  TagTypesFromApi,
-  UpdateDefinitions,
-  SchemaFailureHandler,
-  SchemaFailureConverter,
-  SchemaFailureInfo,
-  SchemaType,
-} from './endpointDefinitions'
-export { fetchBaseQuery } from './fetchBaseQuery'
-export type {
-  FetchBaseQueryArgs,
-  FetchBaseQueryError,
-  FetchBaseQueryMeta,
-  FetchArgs,
-} from './fetchBaseQuery'
-export { retry } from './retry'
-export type { RetryOptions } from './retry'
-export { setupListeners } from './core/setupListeners'
-export { skipToken } from './core/buildSelectors'
-export type {
-  QueryResultSelectorResult,
-  MutationResultSelectorResult,
-  SkipToken,
-} from './core/buildSelectors'
-export type {
-  QueryActionCreatorResult,
-  MutationActionCreatorResult,
-  StartQueryActionCreatorOptions,
-} from './core/buildInitiate'
-export type { CreateApi, CreateApiOptions } from './createApi'
-export { buildCreateApi } from './createApi'
-export { _NEVER, fakeBaseQuery } from './fakeBaseQuery'
-export { copyWithStructuralSharing } from './utils/copyWithStructuralSharing'
-export { createApi, coreModule, coreModuleName } from './core/index'
-export type {
-  InfiniteData,
-  InfiniteQueryActionCreatorResult,
-  InfiniteQueryConfigOptions,
-  InfiniteQueryResultSelectorResult,
-  InfiniteQuerySubState,
-  TypedMutationOnQueryStarted,
-  TypedQueryOnQueryStarted,
-} from './core/index'
-export type {
-  ApiEndpointMutation,
-  ApiEndpointQuery,
-  ApiEndpointInfiniteQuery,
-  ApiModules,
-  CoreModule,
-  PrefetchOptions,
-} from './core/module'
-export { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs'
-export type { SerializeQueryArgs } from './defaultSerializeQueryArgs'
-
-export type {
-  Id as TSHelpersId,
-  NoInfer as TSHelpersNoInfer,
-  Override as TSHelpersOverride,
-} from './tsHelpers'
-
-export { NamedSchemaError } from './standardSchema'
Index: de_modules/@reduxjs/toolkit/src/query/react/ApiProvider.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/ApiProvider.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-import { configureStore } from '@reduxjs/toolkit'
-import type { Context } from 'react'
-import { useContext, useEffect } from './reactImports'
-import * as React from 'react'
-import type { ReactReduxContextValue } from 'react-redux'
-import { Provider, ReactReduxContext } from './reactReduxImports'
-import { setupListeners } from './rtkqImports'
-import type { Api } from '@reduxjs/toolkit/query'
-
-/**
- * Can be used as a `Provider` if you **do not already have a Redux store**.
- *
- * @example
- * ```tsx
- * // codeblock-meta no-transpile title="Basic usage - wrap your App with ApiProvider"
- * import * as React from 'react';
- * import { ApiProvider } from '@reduxjs/toolkit/query/react';
- * import { Pokemon } from './features/Pokemon';
- *
- * function App() {
- *   return (
- *     <ApiProvider api={api}>
- *       <Pokemon />
- *     </ApiProvider>
- *   );
- * }
- * ```
- *
- * @remarks
- * Using this together with an existing redux store, both will
- * conflict with each other - please use the traditional redux setup
- * in that case.
- */
-export function ApiProvider(props: {
-  children: any
-  api: Api<any, {}, any, any>
-  setupListeners?: Parameters<typeof setupListeners>[1] | false
-  context?: Context<ReactReduxContextValue | null>
-}) {
-  const context = props.context || ReactReduxContext
-  const existingContext = useContext(context)
-  if (existingContext) {
-    throw new Error(
-      'Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.',
-    )
-  }
-  const [store] = React.useState(() =>
-    configureStore({
-      reducer: {
-        [props.api.reducerPath]: props.api.reducer,
-      },
-      middleware: (gDM) => gDM().concat(props.api.middleware),
-    }),
-  )
-  // Adds the event listeners for online/offline/focus/etc
-  useEffect(
-    (): undefined | (() => void) =>
-      props.setupListeners === false
-        ? undefined
-        : setupListeners(store.dispatch, props.setupListeners),
-    [props.setupListeners, store.dispatch],
-  )
-
-  return (
-    <Provider store={store} context={context}>
-      {props.children}
-    </Provider>
-  )
-}
Index: de_modules/@reduxjs/toolkit/src/query/react/buildHooks.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/buildHooks.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2258 +1,0 @@
-import type {
-  Selector,
-  ThunkAction,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import type {
-  Api,
-  ApiContext,
-  ApiEndpointInfiniteQuery,
-  ApiEndpointMutation,
-  ApiEndpointQuery,
-  BaseQueryFn,
-  CoreModule,
-  EndpointDefinitions,
-  InfiniteQueryActionCreatorResult,
-  InfiniteQueryArgFrom,
-  InfiniteQueryDefinition,
-  InfiniteQueryResultSelectorResult,
-  InfiniteQuerySubState,
-  MutationActionCreatorResult,
-  MutationDefinition,
-  MutationResultSelectorResult,
-  PageParamFrom,
-  PrefetchOptions,
-  QueryActionCreatorResult,
-  QueryArgFrom,
-  QueryCacheKey,
-  QueryDefinition,
-  QueryKeys,
-  QueryResultSelectorResult,
-  QuerySubState,
-  ResultTypeFrom,
-  RootState,
-  SerializeQueryArgs,
-  SkipToken,
-  SubscriptionOptions,
-  TSHelpersId,
-  TSHelpersNoInfer,
-  TSHelpersOverride,
-} from '@reduxjs/toolkit/query'
-import { QueryStatus, skipToken } from './rtkqImports'
-import type { DependencyList } from 'react'
-import {
-  useCallback,
-  useDebugValue,
-  useEffect,
-  useLayoutEffect,
-  useMemo,
-  useRef,
-  useState,
-} from './reactImports'
-import { shallowEqual } from './reactReduxImports'
-
-import type { SubscriptionSelectors } from '../core/buildMiddleware/index'
-import type { InfiniteData, InfiniteQueryConfigOptions } from '../core/index'
-import type { UninitializedValue } from './constants'
-import { UNINITIALIZED_VALUE } from './constants'
-import type { ReactHooksModuleOptions } from './module'
-import { useStableQueryArgs } from './useSerializedStableValue'
-import { useShallowStableValue } from './useShallowStableValue'
-import type { InfiniteQueryDirection } from '../core/apiState'
-import { isInfiniteQueryDefinition } from '../endpointDefinitions'
-import type { StartInfiniteQueryActionCreator } from '../core/buildInitiate'
-
-// Copy-pasted from React-Redux
-const canUseDOM = () =>
-  !!(
-    typeof window !== 'undefined' &&
-    typeof window.document !== 'undefined' &&
-    typeof window.document.createElement !== 'undefined'
-  )
-
-const isDOM = /* @__PURE__ */ canUseDOM()
-
-// Under React Native, we know that we always want to use useLayoutEffect
-
-const isRunningInReactNative = () =>
-  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'
-
-const isReactNative = /* @__PURE__ */ isRunningInReactNative()
-
-const getUseIsomorphicLayoutEffect = () =>
-  isDOM || isReactNative ? useLayoutEffect : useEffect
-
-export const useIsomorphicLayoutEffect =
-  /* @__PURE__ */ getUseIsomorphicLayoutEffect()
-
-export type QueryHooks<
-  Definition extends QueryDefinition<any, any, any, any, any>,
-> = {
-  useQuery: UseQuery<Definition>
-  useLazyQuery: UseLazyQuery<Definition>
-  useQuerySubscription: UseQuerySubscription<Definition>
-  useLazyQuerySubscription: UseLazyQuerySubscription<Definition>
-  useQueryState: UseQueryState<Definition>
-}
-
-export type InfiniteQueryHooks<
-  Definition extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = {
-  useInfiniteQuery: UseInfiniteQuery<Definition>
-  useInfiniteQuerySubscription: UseInfiniteQuerySubscription<Definition>
-  useInfiniteQueryState: UseInfiniteQueryState<Definition>
-}
-
-export type MutationHooks<
-  Definition extends MutationDefinition<any, any, any, any, any>,
-> = {
-  useMutation: UseMutation<Definition>
-}
-
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-export type UseQuery<D extends QueryDefinition<any, any, any, any>> = <
-  R extends Record<string, any> = UseQueryStateDefaultResult<D>,
->(
-  arg: QueryArgFrom<D> | SkipToken,
-  options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>,
-) => UseQueryHookResult<D, R>
-
-export type TypedUseQuery<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseQuery<QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>>
-
-export type UseQueryHookResult<
-  D extends QueryDefinition<any, any, any, any>,
-  R = UseQueryStateDefaultResult<D>,
-> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>
-
-/**
- * Helper type to manually type the result
- * of the `useQuery` hook in userland code.
- */
-export type TypedUseQueryHookResult<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  R = UseQueryStateDefaultResult<
-    QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
-  >,
-> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> &
-  TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>
-
-export type UseQuerySubscriptionOptions = SubscriptionOptions & {
-  /**
-   * Prevents a query from automatically running.
-   *
-   * @remarks
-   * When `skip` is true (or `skipToken` is passed in as `arg`):
-   *
-   * - **If the query has cached data:**
-   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-   *   * The query will have a status of `uninitialized`
-   *   * If `skip: false` is set after the initial load, the cached result will be used
-   * - **If the query does not have cached data:**
-   *   * The query will have a status of `uninitialized`
-   *   * The query will not exist in the state when viewed with the dev tools
-   *   * The query will not automatically fetch on mount
-   *   * The query will not automatically run when additional components with the same query are added that do run
-   *
-   * @example
-   * ```tsx
-   * // codeblock-meta no-transpile title="Skip example"
-   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-   *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-   *     skip,
-   *   });
-   *
-   *   return (
-   *     <div>
-   *       {name} - {status}
-   *     </div>
-   *   );
-   * };
-   * ```
-   */
-  skip?: boolean
-  /**
-   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   */
-  refetchOnMountOrArgChange?: boolean | number
-}
-
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-export type UseQuerySubscription<
-  D extends QueryDefinition<any, any, any, any>,
-> = (
-  arg: QueryArgFrom<D> | SkipToken,
-  options?: UseQuerySubscriptionOptions,
-) => UseQuerySubscriptionResult<D>
-
-export type TypedUseQuerySubscription<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseQuerySubscription<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-export type UseQuerySubscriptionResult<
-  D extends QueryDefinition<any, any, any, any>,
-> = Pick<QueryActionCreatorResult<D>, 'refetch'>
-
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-export type TypedUseQuerySubscriptionResult<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseQuerySubscriptionResult<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-export type UseLazyQueryLastPromiseInfo<
-  D extends QueryDefinition<any, any, any, any>,
-> = {
-  lastArg: QueryArgFrom<D>
-}
-
-/**
- * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.
- *
- * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- *
- * #### Note
- *
- * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.
- */
-export type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <
-  R extends Record<string, any> = UseQueryStateDefaultResult<D>,
->(
-  options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>,
-) => [
-  LazyQueryTrigger<D>,
-  UseLazyQueryStateResult<D, R>,
-  UseLazyQueryLastPromiseInfo<D>,
-]
-
-export type TypedUseLazyQuery<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseLazyQuery<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-export type UseLazyQueryStateResult<
-  D extends QueryDefinition<any, any, any, any>,
-  R = UseQueryStateDefaultResult<D>,
-> = UseQueryStateResult<D, R> & {
-  /**
-   * Resets the hook state to its initial `uninitialized` state.
-   * This will also remove the last result from the cache.
-   */
-  reset: () => void
-}
-
-/**
- * Helper type to manually type the result
- * of the `useLazyQuery` hook in userland code.
- */
-export type TypedUseLazyQueryStateResult<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  R = UseQueryStateDefaultResult<
-    QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
-  >,
-> = UseLazyQueryStateResult<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>,
-  R
->
-
-export type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {
-  /**
-   * Triggers a lazy query.
-   *
-   * By default, this will start a new request even if there is already a value in the cache.
-   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-   *
-   * @remarks
-   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using .unwrap with async await"
-   * try {
-   *   const payload = await getUserById(1).unwrap();
-   *   console.log('fulfilled', payload)
-   * } catch (error) {
-   *   console.error('rejected', error);
-   * }
-   * ```
-   */
-  (
-    arg: QueryArgFrom<D>,
-    preferCacheValue?: boolean,
-  ): QueryActionCreatorResult<D>
-}
-
-export type TypedLazyQueryTrigger<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = LazyQueryTrigger<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-/**
- * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).
- *
- * #### Features
- *
- * - Manual control over firing a request to retrieve data
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once
- */
-export type UseLazyQuerySubscription<
-  D extends QueryDefinition<any, any, any, any>,
-> = (
-  options?: SubscriptionOptions,
-) => readonly [
-  LazyQueryTrigger<D>,
-  QueryArgFrom<D> | UninitializedValue,
-  { reset: () => void },
-]
-
-export type TypedUseLazyQuerySubscription<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseLazyQuerySubscription<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-/**
- * @internal
- */
-export type QueryStateSelector<
-  R extends Record<string, any>,
-  D extends QueryDefinition<any, any, any, any>,
-> = (state: UseQueryStateDefaultResult<D>) => R
-
-/**
- * Provides a way to define a strongly-typed version of
- * {@linkcode QueryStateSelector} for use with a specific query.
- * This is useful for scenarios where you want to create a "pre-typed"
- * {@linkcode UseQueryStateOptions.selectFromResult | selectFromResult}
- * function.
- *
- * @example
- * <caption>#### __Create a strongly-typed `selectFromResult` selector function__</caption>
- *
- * ```tsx
- * import type { TypedQueryStateSelector } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   title: string
- * }
- *
- * type PostsApiResponse = {
- *   posts: Post[]
- *   total: number
- *   skip: number
- *   limit: number
- * }
- *
- * type QueryArgument = number | undefined
- *
- * type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
- *
- * type SelectedResult = Pick<PostsApiResponse, 'posts'>
- *
- * const postsApiSlice = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),
- *   reducerPath: 'postsApi',
- *   tagTypes: ['Posts'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsApiResponse, QueryArgument>({
- *       query: (limit = 5) => `?limit=${limit}&select=title`,
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = postsApiSlice
- *
- * function PostById({ id }: { id: number }) {
- *   const { post } = useGetPostsQuery(undefined, {
- *     selectFromResult: (state) => ({
- *       post: state.data?.posts.find((post) => post.id === id),
- *     }),
- *   })
- *
- *   return <li>{post?.title}</li>
- * }
- *
- * const EMPTY_ARRAY: Post[] = []
- *
- * const typedSelectFromResult: TypedQueryStateSelector<
- *   PostsApiResponse,
- *   QueryArgument,
- *   BaseQueryFunction,
- *   SelectedResult
- * > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })
- *
- * function PostsList() {
- *   const { posts } = useGetPostsQuery(undefined, {
- *     selectFromResult: typedSelectFromResult,
- *   })
- *
- *   return (
- *     <div>
- *       <ul>
- *         {posts.map((post) => (
- *           <PostById key={post.id} id={post.id} />
- *         ))}
- *       </ul>
- *     </div>
- *   )
- * }
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArgumentType - The type of the argument passed into the query.
- * @template BaseQueryFunctionType - The type of the base query function being used.
- * @template SelectedResultType - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.3.0
- * @public
- */
-export type TypedQueryStateSelector<
-  ResultType,
-  QueryArgumentType,
-  BaseQueryFunctionType extends BaseQueryFn,
-  SelectedResultType extends Record<string, any> = UseQueryStateDefaultResult<
-    QueryDefinition<
-      QueryArgumentType,
-      BaseQueryFunctionType,
-      string,
-      ResultType,
-      string
-    >
-  >,
-> = QueryStateSelector<
-  SelectedResultType,
-  QueryDefinition<
-    QueryArgumentType,
-    BaseQueryFunctionType,
-    string,
-    ResultType,
-    string
-  >
->
-
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-export type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <
-  R extends Record<string, any> = UseQueryStateDefaultResult<D>,
->(
-  arg: QueryArgFrom<D> | SkipToken,
-  options?: UseQueryStateOptions<D, R>,
-) => UseQueryStateResult<D, R>
-
-export type TypedUseQueryState<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseQueryState<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-/**
- * @internal
- */
-export type UseQueryStateOptions<
-  D extends QueryDefinition<any, any, any, any>,
-  R extends Record<string, any>,
-> = {
-  /**
-   * Prevents a query from automatically running.
-   *
-   * @remarks
-   * When skip is true:
-   *
-   * - **If the query has cached data:**
-   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-   *   * The query will have a status of `uninitialized`
-   *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-   * - **If the query does not have cached data:**
-   *   * The query will have a status of `uninitialized`
-   *   * The query will not exist in the state when viewed with the dev tools
-   *   * The query will not automatically fetch on mount
-   *   * The query will not automatically run when additional components with the same query are added that do run
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Skip example"
-   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-   *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-   *     skip,
-   *   });
-   *
-   *   return (
-   *     <div>
-   *       {name} - {status}
-   *     </div>
-   *   );
-   * };
-   * ```
-   */
-  skip?: boolean
-  /**
-   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using selectFromResult to extract a single result"
-   * function PostsList() {
-   *   const { data: posts } = api.useGetPostsQuery();
-   *
-   *   return (
-   *     <ul>
-   *       {posts?.data?.map((post) => (
-   *         <PostById key={post.id} id={post.id} />
-   *       ))}
-   *     </ul>
-   *   );
-   * }
-   *
-   * function PostById({ id }: { id: number }) {
-   *   // Will select the post with the given id, and will only rerender if the given posts data changes
-   *   const { post } = api.useGetPostsQuery(undefined, {
-   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-   *   });
-   *
-   *   return <li>{post?.name}</li>;
-   * }
-   * ```
-   */
-  selectFromResult?: QueryStateSelector<R, D>
-}
-
-/**
- * Provides a way to define a "pre-typed" version of
- * {@linkcode UseQueryStateOptions} with specific options for a given query.
- * This is particularly useful for setting default query behaviors such as
- * refetching strategies, which can be overridden as needed.
- *
- * @example
- * <caption>#### __Create a `useQuery` hook with default options__</caption>
- *
- * ```ts
- * import type {
- *   SubscriptionOptions,
- *   TypedUseQueryStateOptions,
- * } from '@reduxjs/toolkit/query/react'
- * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
- *
- * type Post = {
- *   id: number
- *   name: string
- * }
- *
- * const api = createApi({
- *   baseQuery: fetchBaseQuery({ baseUrl: '/' }),
- *   tagTypes: ['Post'],
- *   endpoints: (build) => ({
- *     getPosts: build.query<Post[], void>({
- *       query: () => 'posts',
- *     }),
- *   }),
- * })
- *
- * const { useGetPostsQuery } = api
- *
- * export const useGetPostsQueryWithDefaults = <
- *   SelectedResult extends Record<string, any>,
- * >(
- *   overrideOptions: TypedUseQueryStateOptions<
- *     Post[],
- *     void,
- *     ReturnType<typeof fetchBaseQuery>,
- *     SelectedResult
- *   > &
- *     SubscriptionOptions,
- * ) =>
- *   useGetPostsQuery(undefined, {
- *     // Insert default options here
- *
- *     refetchOnMountOrArgChange: true,
- *     refetchOnFocus: true,
- *     ...overrideOptions,
- *   })
- * ```
- *
- * @template ResultType - The type of the result `data` returned by the query.
- * @template QueryArg - The type of the argument passed into the query.
- * @template BaseQuery - The type of the base query function being used.
- * @template SelectedResult - The type of the selected result returned by the __`selectFromResult`__ function.
- *
- * @since 2.2.8
- * @public
- */
-export type TypedUseQueryStateOptions<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  SelectedResult extends Record<string, any> = UseQueryStateDefaultResult<
-    QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
-  >,
-> = UseQueryStateOptions<
-  QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>,
-  SelectedResult
->
-
-export type UseQueryStateResult<
-  _ extends QueryDefinition<any, any, any, any>,
-  R,
-> = TSHelpersNoInfer<R>
-
-/**
- * Helper type to manually type the result
- * of the `useQueryState` hook in userland code.
- */
-export type TypedUseQueryStateResult<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  R = UseQueryStateDefaultResult<
-    QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>
-  >,
-> = TSHelpersNoInfer<R>
-
-type UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> =
-  QuerySubState<D> & {
-    /**
-     * Where `data` tries to hold data as much as possible, also re-using
-     * data from the last arguments passed into the hook, this property
-     * will always contain the received data from the query, for the current query arguments.
-     */
-    currentData?: ResultTypeFrom<D>
-    /**
-     * Query has not started yet.
-     */
-    isUninitialized: false
-    /**
-     * Query is currently loading for the first time. No data yet.
-     */
-    isLoading: false
-    /**
-     * Query is currently fetching, but might have data from an earlier request.
-     */
-    isFetching: false
-    /**
-     * Query has data from a successful load.
-     */
-    isSuccess: false
-    /**
-     * Query is currently in "error" state.
-     */
-    isError: false
-  }
-
-type UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> =
-  TSHelpersOverride<
-    Extract<UseQueryStateBaseResult<D>, { status: QueryStatus.uninitialized }>,
-    { isUninitialized: true }
-  >
-
-type UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> =
-  TSHelpersOverride<
-    UseQueryStateBaseResult<D>,
-    { isLoading: true; isFetching: boolean; data: undefined }
-  >
-
-type UseQueryStateSuccessFetching<
-  D extends QueryDefinition<any, any, any, any>,
-> = TSHelpersOverride<
-  UseQueryStateBaseResult<D>,
-  {
-    isSuccess: true
-    isFetching: true
-    error: undefined
-  } & {
-    data: ResultTypeFrom<D>
-  } & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>
->
-
-type UseQueryStateSuccessNotFetching<
-  D extends QueryDefinition<any, any, any, any>,
-> = TSHelpersOverride<
-  UseQueryStateBaseResult<D>,
-  {
-    isSuccess: true
-    isFetching: false
-    error: undefined
-  } & {
-    data: ResultTypeFrom<D>
-    currentData: ResultTypeFrom<D>
-  } & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>
->
-
-type UseQueryStateError<D extends QueryDefinition<any, any, any, any>> =
-  TSHelpersOverride<
-    UseQueryStateBaseResult<D>,
-    { isError: true } & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>
-  >
-
-type UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> =
-  TSHelpersId<
-    | UseQueryStateUninitialized<D>
-    | UseQueryStateLoading<D>
-    | UseQueryStateSuccessFetching<D>
-    | UseQueryStateSuccessNotFetching<D>
-    | UseQueryStateError<D>
-  > & {
-    /**
-     * @deprecated Included for completeness, but discouraged.
-     * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-     * and `isUninitialized` flags instead
-     */
-    status: QueryStatus
-  }
-
-export type LazyInfiniteQueryTrigger<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = {
-  /**
-   * Triggers a lazy query.
-   *
-   * By default, this will start a new request even if there is already a value in the cache.
-   * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.
-   *
-   * @remarks
-   * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using .unwrap with async await"
-   * try {
-   *   const payload = await getUserById(1).unwrap();
-   *   console.log('fulfilled', payload)
-   * } catch (error) {
-   *   console.error('rejected', error);
-   * }
-   * ```
-   */
-  (
-    arg: QueryArgFrom<D>,
-    direction: InfiniteQueryDirection,
-  ): InfiniteQueryActionCreatorResult<D>
-}
-
-export type TypedLazyInfiniteQueryTrigger<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-> = LazyInfiniteQueryTrigger<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-export type UseInfiniteQuerySubscriptionOptions<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = SubscriptionOptions & {
-  /**
-   * Prevents a query from automatically running.
-   *
-   * @remarks
-   * When `skip` is true (or `skipToken` is passed in as `arg`):
-   *
-   * - **If the query has cached data:**
-   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-   *   * The query will have a status of `uninitialized`
-   *   * If `skip: false` is set after the initial load, the cached result will be used
-   * - **If the query does not have cached data:**
-   *   * The query will have a status of `uninitialized`
-   *   * The query will not exist in the state when viewed with the dev tools
-   *   * The query will not automatically fetch on mount
-   *   * The query will not automatically run when additional components with the same query are added that do run
-   *
-   * @example
-   * ```tsx
-   * // codeblock-meta no-transpile title="Skip example"
-   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-   *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-   *     skip,
-   *   });
-   *
-   *   return (
-   *     <div>
-   *       {name} - {status}
-   *     </div>
-   *   );
-   * };
-   * ```
-   */
-  skip?: boolean
-  /**
-   * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.
-   * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.
-   * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.
-   * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.
-   *
-   * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.
-   */
-  refetchOnMountOrArgChange?: boolean | number
-  initialPageParam?: PageParamFrom<D>
-  /**
-   * Defaults to `true`. When this is `true` and an infinite query endpoint is refetched
-   * (due to tag invalidation, polling, arg change configuration, or manual refetching),
-   * RTK Query will try to sequentially refetch all pages currently in the cache.
-   * When `false` only the first page will be refetched.
-   *
-   * This option applies to all automatic refetches for this subscription (polling, tag invalidation, etc.).
-   * It can be overridden on a per-call basis using the `refetch()` method.
-   */
-  refetchCachedPages?: boolean
-}
-
-export type TypedUseInfiniteQuerySubscription<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-> = UseInfiniteQuerySubscription<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-export type UseInfiniteQuerySubscriptionResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = {
-  refetch: (
-    options?: Pick<
-      UseInfiniteQuerySubscriptionOptions<D>,
-      'refetchCachedPages'
-    >,
-  ) => InfiniteQueryActionCreatorResult<D>
-  trigger: LazyInfiniteQueryTrigger<D>
-  fetchNextPage: () => InfiniteQueryActionCreatorResult<D>
-  fetchPreviousPage: () => InfiniteQueryActionCreatorResult<D>
-}
-
-/**
- * Helper type to manually type the result
- * of the `useQuerySubscription` hook in userland code.
- */
-export type TypedUseInfiniteQuerySubscriptionResult<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-> = UseInfiniteQuerySubscriptionResult<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-export type InfiniteQueryStateSelector<
-  R extends Record<string, any>,
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = (state: UseInfiniteQueryStateDefaultResult<D>) => R
-
-export type TypedInfiniteQueryStateSelector<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  SelectedResult extends Record<
-    string,
-    any
-  > = UseInfiniteQueryStateDefaultResult<
-    InfiniteQueryDefinition<
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      string,
-      ResultType,
-      string
-    >
-  >,
-> = InfiniteQueryStateSelector<
-  SelectedResult,
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.  Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.
- *
- *  The `data` field will be a `{pages: Data[], pageParams: PageParam[]}` structure containing all fetched page responses and the corresponding page param values for each page. You may use this to render individual pages, combine all pages into a single infinite list, or other display logic as needed.
- *
- * This hook combines the functionality of both [`useInfiniteQueryState`](#useinfinitequerystate) and [`useInfiniteQuerySubscription`](#useinfinitequerysubscription) together, and is intended to be used in the majority of situations.
- *
- * As with normal query hooks, `skipToken` is a valid argument that will skip the query from executing.
- *
- * By default, the initial request will use the `initialPageParam` value that was defined on the infinite query endpoint. If you want to start from a different value, you can pass `initialPageParam` as part of the hook options to override that initial request value.
- *
- * Use the returned `fetchNextPage` and `fetchPreviousPage` methods on the hook result object to trigger fetches forwards and backwards. These will always calculate the next or previous page param based on the current cached pages and the provided `getNext/PreviousPageParam` callbacks defined in the endpoint.
- *
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-export type UseInfiniteQuery<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(
-  arg: InfiniteQueryArgFrom<D> | SkipToken,
-  options?: UseInfiniteQuerySubscriptionOptions<D> &
-    UseInfiniteQueryStateOptions<D, R>,
-) => UseInfiniteQueryHookResult<D, R> &
-  Pick<
-    UseInfiniteQuerySubscriptionResult<D>,
-    'fetchNextPage' | 'fetchPreviousPage'
-  >
-
-export type TypedUseInfiniteQuery<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-> = UseInfiniteQuery<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-/**
- * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.
- *
- * Note that this hook does not trigger fetching new data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQuerySubscription`](#useinfinitequerysubscription).
- *
- * #### Features
- *
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-export type UseInfiniteQueryState<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = <R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<D>>(
-  arg: InfiniteQueryArgFrom<D> | SkipToken,
-  options?: UseInfiniteQueryStateOptions<D, R>,
-) => UseInfiniteQueryStateResult<D, R>
-
-export type TypedUseInfiniteQueryState<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-> = UseInfiniteQueryState<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >
->
-
-/**
- * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data. Additionally, it will cache multiple "pages" worth of responses within a single cache entry, and allows fetching more pages forwards and backwards from the current cached pages.
- *
- * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.
- *
- * Note that this hook does not return a request status or cached data. For that use-case, see [`useInfiniteQuery`](#useinfinitequery) or [`useInfiniteQueryState`](#useinfinitequerystate).
- *
- * #### Features
- *
- * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Caches multiple pages worth of responses, and provides methods to trigger more page fetches forwards and backwards
- * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met
- */
-export type UseInfiniteQuerySubscription<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = (
-  arg: InfiniteQueryArgFrom<D> | SkipToken,
-  options?: UseInfiniteQuerySubscriptionOptions<D>,
-) => UseInfiniteQuerySubscriptionResult<D>
-
-export type UseInfiniteQueryHookResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-  R = UseInfiniteQueryStateDefaultResult<D>,
-> = UseInfiniteQueryStateResult<D, R> &
-  Pick<
-    UseInfiniteQuerySubscriptionResult<D>,
-    'refetch' | 'fetchNextPage' | 'fetchPreviousPage'
-  >
-
-export type TypedUseInfiniteQueryHookResult<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  R extends Record<string, any> = UseInfiniteQueryStateDefaultResult<
-    InfiniteQueryDefinition<
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      string,
-      ResultType,
-      string
-    >
-  >,
-> = UseInfiniteQueryHookResult<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >,
-  R
->
-
-export type UseInfiniteQueryStateOptions<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-  R extends Record<string, any>,
-> = {
-  /**
-   * Prevents a query from automatically running.
-   *
-   * @remarks
-   * When skip is true:
-   *
-   * - **If the query has cached data:**
-   *   * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed
-   *   * The query will have a status of `uninitialized`
-   *   * If `skip: false` is set after skipping the initial load, the cached result will be used
-   * - **If the query does not have cached data:**
-   *   * The query will have a status of `uninitialized`
-   *   * The query will not exist in the state when viewed with the dev tools
-   *   * The query will not automatically fetch on mount
-   *   * The query will not automatically run when additional components with the same query are added that do run
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Skip example"
-   * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {
-   *   const { data, error, status } = useGetPokemonByNameQuery(name, {
-   *     skip,
-   *   });
-   *
-   *   return (
-   *     <div>
-   *       {name} - {status}
-   *     </div>
-   *   );
-   * };
-   * ```
-   */
-  skip?: boolean
-  /**
-   * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.
-   * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.
-   * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.
-   * Note that this should always return an object (not a primitive), as RTKQ adds fields to the return value.
-   *
-   * @example
-   * ```ts
-   * // codeblock-meta title="Using selectFromResult to extract a single result"
-   * function PostsList() {
-   *   const { data: posts } = api.useGetPostsQuery();
-   *
-   *   return (
-   *     <ul>
-   *       {posts?.data?.map((post) => (
-   *         <PostById key={post.id} id={post.id} />
-   *       ))}
-   *     </ul>
-   *   );
-   * }
-   *
-   * function PostById({ id }: { id: number }) {
-   *   // Will select the post with the given id, and will only rerender if the given posts data changes
-   *   const { post } = api.useGetPostsQuery(undefined, {
-   *     selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),
-   *   });
-   *
-   *   return <li>{post?.name}</li>;
-   * }
-   * ```
-   */
-  selectFromResult?: InfiniteQueryStateSelector<R, D>
-}
-
-export type TypedUseInfiniteQueryStateOptions<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  SelectedResult extends Record<
-    string,
-    any
-  > = UseInfiniteQueryStateDefaultResult<
-    InfiniteQueryDefinition<
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      string,
-      ResultType,
-      string
-    >
-  >,
-> = UseInfiniteQueryStateOptions<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >,
-  SelectedResult
->
-
-export type UseInfiniteQueryStateResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-  R = UseInfiniteQueryStateDefaultResult<D>,
-> = TSHelpersNoInfer<R>
-
-export type TypedUseInfiniteQueryStateResult<
-  ResultType,
-  QueryArg,
-  PageParam,
-  BaseQuery extends BaseQueryFn,
-  R = UseInfiniteQueryStateDefaultResult<
-    InfiniteQueryDefinition<
-      QueryArg,
-      PageParam,
-      BaseQuery,
-      string,
-      ResultType,
-      string
-    >
-  >,
-> = UseInfiniteQueryStateResult<
-  InfiniteQueryDefinition<
-    QueryArg,
-    PageParam,
-    BaseQuery,
-    string,
-    ResultType,
-    string
-  >,
-  R
->
-
-type UseInfiniteQueryStateBaseResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = InfiniteQuerySubState<D> & {
-  /**
-   * Where `data` tries to hold data as much as possible, also re-using
-   * data from the last arguments passed into the hook, this property
-   * will always contain the received data from the query, for the current query arguments.
-   */
-  currentData?: InfiniteData<ResultTypeFrom<D>, PageParamFrom<D>>
-  /**
-   * Query has not started yet.
-   */
-  isUninitialized: false
-  /**
-   * Query is currently loading for the first time. No data yet.
-   */
-  isLoading: false
-  /**
-   * Query is currently fetching, but might have data from an earlier request.
-   */
-  isFetching: false
-  /**
-   * Query has data from a successful load.
-   */
-  isSuccess: false
-  /**
-   * Query is currently in "error" state.
-   */
-  isError: false
-  hasNextPage: boolean
-  hasPreviousPage: boolean
-  isFetchingNextPage: boolean
-  isFetchingPreviousPage: boolean
-}
-
-type UseInfiniteQueryStateDefaultResult<
-  D extends InfiniteQueryDefinition<any, any, any, any, any>,
-> = TSHelpersId<
-  | TSHelpersOverride<
-      Extract<
-        UseInfiniteQueryStateBaseResult<D>,
-        { status: QueryStatus.uninitialized }
-      >,
-      { isUninitialized: true }
-    >
-  | TSHelpersOverride<
-      UseInfiniteQueryStateBaseResult<D>,
-      | { isLoading: true; isFetching: boolean; data: undefined }
-      | ({
-          isSuccess: true
-          isFetching: true
-          error: undefined
-        } & Required<
-          Pick<
-            UseInfiniteQueryStateBaseResult<D>,
-            'data' | 'fulfilledTimeStamp'
-          >
-        >)
-      | ({
-          isSuccess: true
-          isFetching: false
-          error: undefined
-        } & Required<
-          Pick<
-            UseInfiniteQueryStateBaseResult<D>,
-            'data' | 'fulfilledTimeStamp' | 'currentData'
-          >
-        >)
-      | ({ isError: true } & Required<
-          Pick<UseInfiniteQueryStateBaseResult<D>, 'error'>
-        >)
-    >
-> & {
-  /**
-   * @deprecated Included for completeness, but discouraged.
-   * Please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
-   * and `isUninitialized` flags instead
-   */
-  status: QueryStatus
-}
-
-export type MutationStateSelector<
-  R extends Record<string, any>,
-  D extends MutationDefinition<any, any, any, any>,
-> = (state: MutationResultSelectorResult<D>) => R
-
-export type UseMutationStateOptions<
-  D extends MutationDefinition<any, any, any, any>,
-  R extends Record<string, any>,
-> = {
-  selectFromResult?: MutationStateSelector<R, D>
-  fixedCacheKey?: string
-}
-
-export type UseMutationStateResult<
-  D extends MutationDefinition<any, any, any, any>,
-  R,
-> = TSHelpersNoInfer<R> & {
-  originalArgs?: QueryArgFrom<D>
-  /**
-   * Resets the hook state to its initial `uninitialized` state.
-   * This will also remove the last result from the cache.
-   */
-  reset: () => void
-}
-
-/**
- * Helper type to manually type the result
- * of the `useMutation` hook in userland code.
- */
-export type TypedUseMutationResult<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-  R = MutationResultSelectorResult<
-    MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>
-  >,
-> = UseMutationStateResult<
-  MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>,
-  R
->
-
-/**
- * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.
- *
- * #### Features
- *
- * - Manual control over firing a request to alter data on the server or possibly invalidate the cache
- * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts
- * - Returns the latest request status and cached data from the Redux store
- * - Re-renders as the request status changes and data becomes available
- */
-export type UseMutation<D extends MutationDefinition<any, any, any, any>> = <
-  R extends Record<string, any> = MutationResultSelectorResult<D>,
->(
-  options?: UseMutationStateOptions<D, R>,
-) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>]
-
-export type TypedUseMutation<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = UseMutation<
-  MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-export type MutationTrigger<D extends MutationDefinition<any, any, any, any>> =
-  {
-    /**
-     * Triggers the mutation and returns a Promise.
-     * @remarks
-     * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().
-     *
-     * @example
-     * ```ts
-     * // codeblock-meta title="Using .unwrap with async await"
-     * try {
-     *   const payload = await addPost({ id: 1, name: 'Example' }).unwrap();
-     *   console.log('fulfilled', payload)
-     * } catch (error) {
-     *   console.error('rejected', error);
-     * }
-     * ```
-     */
-    (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>
-  }
-
-export type TypedMutationTrigger<
-  ResultType,
-  QueryArg,
-  BaseQuery extends BaseQueryFn,
-> = MutationTrigger<
-  MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>
->
-
-/**
- * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.
- * We want the initial render to already come back with
- * `{ isUninitialized: false, isFetching: true, isLoading: true }`
- * to prevent that the library user has to do an additional check for `isUninitialized`/
- */
-const noPendingQueryStateSelector: QueryStateSelector<any, any> = (
-  selected,
-) => {
-  if (selected.isUninitialized) {
-    return {
-      ...selected,
-      isUninitialized: false,
-      isFetching: true,
-      isLoading: selected.data !== undefined ? false : true,
-      // This is the one place where we still have to use `QueryStatus` as an enum,
-      // since it's the only reference in the React package and not in the core.
-      status: QueryStatus.pending,
-    } as any
-  }
-  return selected
-}
-
-function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {
-  const ret: any = {}
-  keys.forEach((key) => {
-    ret[key] = obj[key]
-  })
-  return ret
-}
-
-const COMMON_HOOK_DEBUG_FIELDS = [
-  'data',
-  'status',
-  'isLoading',
-  'isSuccess',
-  'isError',
-  'error',
-] as const
-
-type GenericPrefetchThunk = (
-  endpointName: any,
-  arg: any,
-  options: PrefetchOptions,
-) => ThunkAction<void, any, any, UnknownAction>
-
-/**
- *
- * @param opts.api - An API with defined endpoints to create hooks for
- * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used
- * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used
- * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used
- * @returns An object containing functions to generate hooks based on an endpoint
- */
-export function buildHooks<Definitions extends EndpointDefinitions>({
-  api,
-  moduleOptions: {
-    batch,
-    hooks: { useDispatch, useSelector, useStore },
-    unstable__sideEffectsInRender,
-    createSelector,
-  },
-  serializeQueryArgs,
-  context,
-}: {
-  api: Api<any, Definitions, any, any, CoreModule>
-  moduleOptions: Required<ReactHooksModuleOptions>
-  serializeQueryArgs: SerializeQueryArgs<any>
-  context: ApiContext<Definitions>
-}) {
-  const usePossiblyImmediateEffect: (
-    effect: () => void | undefined,
-    deps?: DependencyList,
-  ) => void = unstable__sideEffectsInRender ? (cb) => cb() : useEffect
-
-  type UnsubscribePromiseRef = React.RefObject<
-    { unsubscribe?: () => void } | undefined
-  >
-
-  const unsubscribePromiseRef = (ref: UnsubscribePromiseRef) =>
-    ref.current?.unsubscribe?.()
-
-  const endpointDefinitions = context.endpointDefinitions
-
-  return {
-    buildQueryHooks,
-    buildInfiniteQueryHooks,
-    buildMutationHook,
-    usePrefetch,
-  }
-
-  function queryStatePreSelector(
-    currentState: QueryResultSelectorResult<any>,
-    lastResult: UseQueryStateDefaultResult<any> | undefined,
-    queryArgs: any,
-  ): UseQueryStateDefaultResult<any> {
-    // if we had a last result and the current result is uninitialized,
-    // we might have called `api.util.resetApiState`
-    // in this case, reset the hook
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const { endpointName } = lastResult
-      const endpointDefinition = endpointDefinitions[endpointName]
-      if (
-        queryArgs !== skipToken &&
-        serializeQueryArgs({
-          queryArgs: lastResult.originalArgs,
-          endpointDefinition,
-          endpointName,
-        }) ===
-          serializeQueryArgs({
-            queryArgs,
-            endpointDefinition,
-            endpointName,
-          })
-      )
-        lastResult = undefined
-    }
-
-    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data
-    if (data === undefined) data = currentState.data
-
-    const hasData = data !== undefined
-
-    // isFetching = true any time a request is in flight
-    const isFetching = currentState.isLoading
-
-    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)
-    const isLoading =
-      (!lastResult || lastResult.isLoading || lastResult.isUninitialized) &&
-      !hasData &&
-      isFetching
-
-    // isSuccess = true when data is present and we're not refetching after an error.
-    // That includes cases where the _current_ item is either actively
-    // fetching or about to fetch due to an uninitialized entry.
-    const isSuccess =
-      currentState.isSuccess ||
-      (hasData &&
-        ((isFetching && !lastResult?.isError) || currentState.isUninitialized))
-
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess,
-    } as UseQueryStateDefaultResult<any>
-  }
-
-  function infiniteQueryStatePreSelector(
-    currentState: InfiniteQueryResultSelectorResult<any>,
-    lastResult: UseInfiniteQueryStateDefaultResult<any> | undefined,
-    queryArgs: any,
-  ): UseInfiniteQueryStateDefaultResult<any> {
-    // if we had a last result and the current result is uninitialized,
-    // we might have called `api.util.resetApiState`
-    // in this case, reset the hook
-    if (lastResult?.endpointName && currentState.isUninitialized) {
-      const { endpointName } = lastResult
-      const endpointDefinition = endpointDefinitions[endpointName]
-      if (
-        queryArgs !== skipToken &&
-        serializeQueryArgs({
-          queryArgs: lastResult.originalArgs,
-          endpointDefinition,
-          endpointName,
-        }) ===
-          serializeQueryArgs({
-            queryArgs,
-            endpointDefinition,
-            endpointName,
-          })
-      )
-        lastResult = undefined
-    }
-
-    // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args
-    let data = currentState.isSuccess ? currentState.data : lastResult?.data
-    if (data === undefined) data = currentState.data
-
-    const hasData = data !== undefined
-
-    // isFetching = true any time a request is in flight
-    const isFetching = currentState.isLoading
-    // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)
-    const isLoading =
-      (!lastResult || lastResult.isLoading || lastResult.isUninitialized) &&
-      !hasData &&
-      isFetching
-    // isSuccess = true when data is present
-    const isSuccess = currentState.isSuccess || (isFetching && hasData)
-
-    return {
-      ...currentState,
-      data,
-      currentData: currentState.data,
-      isFetching,
-      isLoading,
-      isSuccess,
-    } as UseInfiniteQueryStateDefaultResult<any>
-  }
-
-  function usePrefetch<EndpointName extends QueryKeys<Definitions>>(
-    endpointName: EndpointName,
-    defaultOptions?: PrefetchOptions,
-  ) {
-    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>()
-    const stableDefaultOptions = useShallowStableValue(defaultOptions)
-
-    return useCallback(
-      (arg: any, options?: PrefetchOptions) =>
-        dispatch(
-          (api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {
-            ...stableDefaultOptions,
-            ...options,
-          }),
-        ),
-      [endpointName, dispatch, stableDefaultOptions],
-    )
-  }
-
-  function useQuerySubscriptionCommonImpl<
-    T extends
-      | QueryActionCreatorResult<any>
-      | InfiniteQueryActionCreatorResult<any>,
-  >(
-    endpointName: string,
-    arg: unknown | SkipToken,
-    {
-      refetchOnReconnect,
-      refetchOnFocus,
-      refetchOnMountOrArgChange,
-      skip = false,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false,
-      ...rest
-    }: UseQuerySubscriptionOptions = {},
-  ) {
-    const { initiate } = api.endpoints[endpointName] as ApiEndpointQuery<
-      QueryDefinition<any, any, any, any, any>,
-      Definitions
-    >
-    const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>()
-
-    // TODO: Change this to `useRef<SubscriptionSelectors>(undefined)` after upgrading to React 19.
-    const subscriptionSelectorsRef = useRef<SubscriptionSelectors | undefined>(
-      undefined,
-    )
-
-    if (!subscriptionSelectorsRef.current) {
-      const returnedValue = dispatch(
-        api.internalActions.internal_getRTKQSubscriptions(),
-      )
-
-      if (process.env.NODE_ENV !== 'production') {
-        if (
-          typeof returnedValue !== 'object' ||
-          typeof returnedValue?.type === 'string'
-        ) {
-          throw new Error(
-            `Warning: Middleware for RTK-Query API at reducerPath "${api.reducerPath}" has not been added to the store.
-    You must add the middleware for RTK-Query to function correctly!`,
-          )
-        }
-      }
-
-      subscriptionSelectorsRef.current =
-        returnedValue as unknown as SubscriptionSelectors
-    }
-    const stableArg = useStableQueryArgs(skip ? skipToken : arg)
-    const stableSubscriptionOptions = useShallowStableValue({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval,
-      skipPollingIfUnfocused,
-    })
-
-    const initialPageParam = (rest as UseInfiniteQuerySubscriptionOptions<any>)
-      .initialPageParam
-    const stableInitialPageParam = useShallowStableValue(initialPageParam)
-
-    const refetchCachedPages = (
-      rest as UseInfiniteQuerySubscriptionOptions<any>
-    ).refetchCachedPages
-    const stableRefetchCachedPages = useShallowStableValue(refetchCachedPages)
-
-    /**
-     * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.
-     */
-    const promiseRef = useRef<T | undefined>(undefined)
-
-    let { queryCacheKey, requestId } = promiseRef.current || {}
-
-    // HACK We've saved the middleware subscription lookup callbacks into a ref,
-    // so we can directly check here if the subscription exists for this query.
-    let currentRenderHasSubscription = false
-    if (queryCacheKey && requestId) {
-      currentRenderHasSubscription =
-        subscriptionSelectorsRef.current.isRequestSubscribed(
-          queryCacheKey,
-          requestId,
-        )
-    }
-
-    const subscriptionRemoved =
-      !currentRenderHasSubscription && promiseRef.current !== undefined
-
-    usePossiblyImmediateEffect((): void | undefined => {
-      if (subscriptionRemoved) {
-        promiseRef.current = undefined
-      }
-    }, [subscriptionRemoved])
-
-    usePossiblyImmediateEffect((): void | undefined => {
-      const lastPromise = promiseRef.current
-      if (
-        typeof process !== 'undefined' &&
-        process.env.NODE_ENV === 'removeMeOnCompilation'
-      ) {
-        // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array
-        console.log(subscriptionRemoved)
-      }
-
-      if (stableArg === skipToken) {
-        lastPromise?.unsubscribe()
-        promiseRef.current = undefined
-        return
-      }
-
-      const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions
-
-      if (!lastPromise || lastPromise.arg !== stableArg) {
-        lastPromise?.unsubscribe()
-        const promise = dispatch(
-          initiate(stableArg, {
-            subscriptionOptions: stableSubscriptionOptions,
-            forceRefetch: refetchOnMountOrArgChange,
-            ...(isInfiniteQueryDefinition(endpointDefinitions[endpointName])
-              ? {
-                  initialPageParam: stableInitialPageParam,
-                  refetchCachedPages: stableRefetchCachedPages,
-                }
-              : {}),
-          }),
-        )
-
-        promiseRef.current = promise as T
-      } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-        lastPromise.updateSubscriptionOptions(stableSubscriptionOptions)
-      }
-    }, [
-      dispatch,
-      initiate,
-      refetchOnMountOrArgChange,
-      stableArg,
-      stableSubscriptionOptions,
-      subscriptionRemoved,
-      stableInitialPageParam,
-      stableRefetchCachedPages,
-      endpointName,
-    ])
-
-    return [promiseRef, dispatch, initiate, stableSubscriptionOptions] as const
-  }
-
-  function buildUseQueryState(
-    endpointName: string,
-    preSelector:
-      | typeof queryStatePreSelector
-      | typeof infiniteQueryStatePreSelector,
-  ) {
-    const useQueryState = (
-      arg: any,
-      {
-        skip = false,
-        selectFromResult,
-      }:
-        | UseQueryStateOptions<any, any>
-        | UseInfiniteQueryStateOptions<any, any> = {},
-    ) => {
-      const { select } = api.endpoints[endpointName] as ApiEndpointQuery<
-        QueryDefinition<any, any, any, any, any>,
-        Definitions
-      >
-      const stableArg = useStableQueryArgs(skip ? skipToken : arg)
-
-      type ApiRootState = Parameters<ReturnType<typeof select>>[0]
-
-      const lastValue = useRef<any>(undefined)
-
-      const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(
-        () =>
-          // Normally ts-ignores are bad and should be avoided, but we're
-          // already casting this selector to be `Selector<any>` anyway,
-          // so the inconsistencies don't matter here
-          // @ts-ignore
-          createSelector(
-            [
-              // @ts-ignore
-              select(stableArg),
-              (_: ApiRootState, lastResult: any) => lastResult,
-              (_: ApiRootState) => stableArg,
-            ],
-            preSelector,
-            {
-              memoizeOptions: {
-                resultEqualityCheck: shallowEqual,
-              },
-            },
-          ),
-        [select, stableArg],
-      )
-
-      const querySelector: Selector<ApiRootState, any, [any]> = useMemo(
-        () =>
-          selectFromResult
-            ? createSelector([selectDefaultResult], selectFromResult, {
-                devModeChecks: { identityFunctionCheck: 'never' },
-              })
-            : selectDefaultResult,
-        [selectDefaultResult, selectFromResult],
-      )
-
-      const currentState = useSelector(
-        (state: RootState<Definitions, any, any>) =>
-          querySelector(state, lastValue.current),
-        shallowEqual,
-      )
-
-      const store = useStore<RootState<Definitions, any, any>>()
-      const newLastValue = selectDefaultResult(
-        store.getState(),
-        lastValue.current,
-      )
-      useIsomorphicLayoutEffect(() => {
-        lastValue.current = newLastValue
-      }, [newLastValue])
-
-      return currentState
-    }
-
-    return useQueryState
-  }
-
-  function usePromiseRefUnsubscribeOnUnmount(
-    promiseRef: UnsubscribePromiseRef,
-  ) {
-    useEffect(() => {
-      return () => {
-        unsubscribePromiseRef(promiseRef)
-        // eslint-disable-next-line react-hooks/exhaustive-deps
-        ;(promiseRef.current as any) = undefined
-      }
-    }, [promiseRef])
-  }
-
-  function refetchOrErrorIfUnmounted<
-    T extends
-      | QueryActionCreatorResult<any>
-      | InfiniteQueryActionCreatorResult<any>,
-  >(promiseRef: React.RefObject<T | undefined>): T {
-    if (!promiseRef.current)
-      throw new Error('Cannot refetch a query that has not been started yet.')
-    return promiseRef.current.refetch() as T
-  }
-
-  function buildQueryHooks(endpointName: string): QueryHooks<any> {
-    const useQuerySubscription: UseQuerySubscription<any> = (
-      arg: any,
-      options = {},
-    ) => {
-      const [promiseRef] = useQuerySubscriptionCommonImpl<
-        QueryActionCreatorResult<any>
-      >(endpointName, arg, options)
-
-      usePromiseRefUnsubscribeOnUnmount(promiseRef)
-
-      return useMemo(
-        () => ({
-          /**
-           * A method to manually refetch data for the query
-           */
-          refetch: () => refetchOrErrorIfUnmounted(promiseRef),
-        }),
-        [promiseRef],
-      )
-    }
-
-    const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({
-      refetchOnReconnect,
-      refetchOnFocus,
-      pollingInterval = 0,
-      skipPollingIfUnfocused = false,
-    } = {}) => {
-      const { initiate } = api.endpoints[endpointName] as ApiEndpointQuery<
-        QueryDefinition<any, any, any, any, any>,
-        Definitions
-      >
-      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>()
-
-      const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE)
-
-      // TODO: Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.
-      /**
-       * @todo Change this to `useRef<QueryActionCreatorResult<any>>(undefined)` after upgrading to React 19.
-       */
-      const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>(
-        undefined,
-      )
-
-      const stableSubscriptionOptions = useShallowStableValue({
-        refetchOnReconnect,
-        refetchOnFocus,
-        pollingInterval,
-        skipPollingIfUnfocused,
-      })
-
-      usePossiblyImmediateEffect(() => {
-        const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions
-
-        if (stableSubscriptionOptions !== lastSubscriptionOptions) {
-          promiseRef.current?.updateSubscriptionOptions(
-            stableSubscriptionOptions,
-          )
-        }
-      }, [stableSubscriptionOptions])
-
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions)
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions
-      }, [stableSubscriptionOptions])
-
-      const trigger = useCallback(
-        function (arg: any, preferCacheValue = false) {
-          let promise: QueryActionCreatorResult<any>
-
-          batch(() => {
-            unsubscribePromiseRef(promiseRef)
-
-            promiseRef.current = promise = dispatch(
-              initiate(arg, {
-                subscriptionOptions: subscriptionOptionsRef.current,
-                forceRefetch: !preferCacheValue,
-              }),
-            )
-
-            setArg(arg)
-          })
-
-          return promise!
-        },
-        [dispatch, initiate],
-      )
-
-      const reset = useCallback(() => {
-        if (promiseRef.current?.queryCacheKey) {
-          dispatch(
-            api.internalActions.removeQueryResult({
-              queryCacheKey: promiseRef.current?.queryCacheKey as QueryCacheKey,
-            }),
-          )
-        }
-      }, [dispatch])
-
-      /* cleanup on unmount */
-      useEffect(() => {
-        return () => {
-          unsubscribePromiseRef(promiseRef)
-        }
-      }, [])
-
-      /* if "cleanup on unmount" was triggered from a fast refresh, we want to reinstate the query */
-      useEffect(() => {
-        if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {
-          trigger(arg, true)
-        }
-      }, [arg, trigger])
-
-      return useMemo(
-        () => [trigger, arg, { reset }] as const,
-        [trigger, arg, reset],
-      )
-    }
-
-    const useQueryState: UseQueryState<any> = buildUseQueryState(
-      endpointName,
-      queryStatePreSelector,
-    )
-
-    return {
-      useQueryState,
-      useQuerySubscription,
-      useLazyQuerySubscription,
-      useLazyQuery(options) {
-        const [trigger, arg, { reset }] = useLazyQuerySubscription(options)
-        const queryStateResults = useQueryState(arg, {
-          ...options,
-          skip: arg === UNINITIALIZED_VALUE,
-        })
-
-        const info = useMemo(() => ({ lastArg: arg }), [arg])
-        return useMemo(
-          () => [trigger, { ...queryStateResults, reset }, info],
-          [trigger, queryStateResults, reset, info],
-        )
-      },
-      useQuery(arg, options) {
-        const querySubscriptionResults = useQuerySubscription(arg, options)
-        const queryStateResults = useQueryState(arg, {
-          selectFromResult:
-            arg === skipToken || options?.skip
-              ? undefined
-              : noPendingQueryStateSelector,
-          ...options,
-        })
-
-        const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS)
-        useDebugValue(debugValue)
-
-        return useMemo(
-          () => ({ ...queryStateResults, ...querySubscriptionResults }),
-          [queryStateResults, querySubscriptionResults],
-        )
-      },
-    }
-  }
-
-  function buildInfiniteQueryHooks(
-    endpointName: string,
-  ): InfiniteQueryHooks<any> {
-    const useInfiniteQuerySubscription: UseInfiniteQuerySubscription<any> = (
-      arg: any,
-      options = {},
-    ) => {
-      const [promiseRef, dispatch, initiate, stableSubscriptionOptions] =
-        useQuerySubscriptionCommonImpl<InfiniteQueryActionCreatorResult<any>>(
-          endpointName,
-          arg,
-          options,
-        )
-
-      const subscriptionOptionsRef = useRef(stableSubscriptionOptions)
-      usePossiblyImmediateEffect(() => {
-        subscriptionOptionsRef.current = stableSubscriptionOptions
-      }, [stableSubscriptionOptions])
-
-      // Extract and stabilize the hook-level refetchCachedPages option
-      const hookRefetchCachedPages = (
-        options as UseInfiniteQuerySubscriptionOptions<any>
-      ).refetchCachedPages
-      const stableHookRefetchCachedPages = useShallowStableValue(
-        hookRefetchCachedPages,
-      )
-
-      const trigger: LazyInfiniteQueryTrigger<any> = useCallback(
-        function (arg: unknown, direction: 'forward' | 'backward') {
-          let promise: InfiniteQueryActionCreatorResult<any>
-
-          batch(() => {
-            unsubscribePromiseRef(promiseRef)
-
-            promiseRef.current = promise = dispatch(
-              (initiate as StartInfiniteQueryActionCreator<any>)(arg, {
-                subscriptionOptions: subscriptionOptionsRef.current,
-                direction,
-              }),
-            )
-          })
-
-          return promise!
-        },
-        [promiseRef, dispatch, initiate],
-      )
-
-      usePromiseRefUnsubscribeOnUnmount(promiseRef)
-
-      const stableArg = useStableQueryArgs(options.skip ? skipToken : arg)
-
-      const refetch = useCallback(
-        (
-          options?: Pick<
-            UseInfiniteQuerySubscriptionOptions<any>,
-            'refetchCachedPages'
-          >,
-        ) => {
-          if (!promiseRef.current)
-            throw new Error(
-              'Cannot refetch a query that has not been started yet.',
-            )
-          // Merge per-call options with hook-level default
-          const mergedOptions = {
-            refetchCachedPages:
-              options?.refetchCachedPages ?? stableHookRefetchCachedPages,
-          }
-          return promiseRef.current.refetch(mergedOptions)
-        },
-        [promiseRef, stableHookRefetchCachedPages],
-      )
-
-      return useMemo(() => {
-        const fetchNextPage = () => {
-          return trigger(stableArg, 'forward')
-        }
-
-        const fetchPreviousPage = () => {
-          return trigger(stableArg, 'backward')
-        }
-
-        return {
-          trigger,
-          /**
-           * A method to manually refetch data for the query
-           */
-          refetch,
-          fetchNextPage,
-          fetchPreviousPage,
-        }
-      }, [refetch, trigger, stableArg])
-    }
-
-    const useInfiniteQueryState: UseInfiniteQueryState<any> =
-      buildUseQueryState(endpointName, infiniteQueryStatePreSelector)
-
-    return {
-      useInfiniteQueryState,
-      useInfiniteQuerySubscription,
-      useInfiniteQuery(arg, options) {
-        const { refetch, fetchNextPage, fetchPreviousPage } =
-          useInfiniteQuerySubscription(arg, options)
-        const queryStateResults = useInfiniteQueryState(arg, {
-          selectFromResult:
-            arg === skipToken || options?.skip
-              ? undefined
-              : noPendingQueryStateSelector,
-          ...options,
-        })
-
-        const debugValue = pick(
-          queryStateResults,
-          ...COMMON_HOOK_DEBUG_FIELDS,
-          'hasNextPage',
-          'hasPreviousPage',
-        )
-        useDebugValue(debugValue)
-
-        return useMemo(
-          () => ({
-            ...queryStateResults,
-            fetchNextPage,
-            fetchPreviousPage,
-            refetch,
-          }),
-          [queryStateResults, fetchNextPage, fetchPreviousPage, refetch],
-        )
-      },
-    }
-  }
-
-  function buildMutationHook(name: string): UseMutation<any> {
-    return ({ selectFromResult, fixedCacheKey } = {}) => {
-      const { select, initiate } = api.endpoints[name] as ApiEndpointMutation<
-        MutationDefinition<any, any, any, any, any>,
-        Definitions
-      >
-      const dispatch = useDispatch<ThunkDispatch<any, any, UnknownAction>>()
-      const [promise, setPromise] = useState<MutationActionCreatorResult<any>>()
-
-      useEffect(
-        () => () => {
-          if (!promise?.arg.fixedCacheKey) {
-            promise?.reset()
-          }
-        },
-        [promise],
-      )
-
-      const triggerMutation = useCallback(
-        function (arg: Parameters<typeof initiate>['0']) {
-          const promise = dispatch(initiate(arg, { fixedCacheKey }))
-          setPromise(promise)
-          return promise
-        },
-        [dispatch, initiate, fixedCacheKey],
-      )
-
-      const { requestId } = promise || {}
-      const selectDefaultResult = useMemo(
-        () => select({ fixedCacheKey, requestId: promise?.requestId }),
-        [fixedCacheKey, promise, select],
-      )
-      const mutationSelector = useMemo(
-        (): Selector<RootState<Definitions, any, any>, any> =>
-          selectFromResult
-            ? createSelector([selectDefaultResult], selectFromResult)
-            : selectDefaultResult,
-        [selectFromResult, selectDefaultResult],
-      )
-
-      const currentState = useSelector(mutationSelector, shallowEqual)
-      const originalArgs =
-        fixedCacheKey == null ? promise?.arg.originalArgs : undefined
-      const reset = useCallback(() => {
-        batch(() => {
-          if (promise) {
-            setPromise(undefined)
-          }
-          if (fixedCacheKey) {
-            dispatch(
-              api.internalActions.removeMutationResult({
-                requestId,
-                fixedCacheKey,
-              }),
-            )
-          }
-        })
-      }, [dispatch, fixedCacheKey, promise, requestId])
-
-      const debugValue = pick(
-        currentState,
-        ...COMMON_HOOK_DEBUG_FIELDS,
-        'endpointName',
-      )
-      useDebugValue(debugValue)
-
-      const finalState = useMemo(
-        () => ({ ...currentState, originalArgs, reset }),
-        [currentState, originalArgs, reset],
-      )
-
-      return useMemo(
-        () => [triggerMutation, finalState] as const,
-        [triggerMutation, finalState],
-      )
-    }
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/react/constants.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/constants.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export const UNINITIALIZED_VALUE = Symbol()
-export type UninitializedValue = typeof UNINITIALIZED_VALUE
Index: de_modules/@reduxjs/toolkit/src/query/react/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-// This must remain here so that the `mangleErrors.cjs` build script
-// does not have to import this into each source file it rewrites.
-import { formatProdErrorMessage } from '@reduxjs/toolkit'
-
-import { buildCreateApi, coreModule } from './rtkqImports'
-import { reactHooksModule, reactHooksModuleName } from './module'
-
-export * from '@reduxjs/toolkit/query'
-export { ApiProvider } from './ApiProvider'
-
-const createApi = /* @__PURE__ */ buildCreateApi(
-  coreModule(),
-  reactHooksModule(),
-)
-
-export type {
-  TypedUseMutationResult,
-  TypedUseQueryHookResult,
-  TypedUseQueryStateResult,
-  TypedUseQuerySubscriptionResult,
-  TypedLazyQueryTrigger,
-  TypedUseLazyQuery,
-  TypedUseMutation,
-  TypedMutationTrigger,
-  TypedQueryStateSelector,
-  TypedUseQueryState,
-  TypedUseQuery,
-  TypedUseQuerySubscription,
-  TypedUseLazyQuerySubscription,
-  TypedUseQueryStateOptions,
-  TypedUseLazyQueryStateResult,
-  TypedUseInfiniteQuery,
-  TypedUseInfiniteQueryHookResult,
-  TypedUseInfiniteQueryStateResult,
-  TypedUseInfiniteQuerySubscriptionResult,
-  TypedUseInfiniteQueryStateOptions,
-  TypedInfiniteQueryStateSelector,
-  TypedUseInfiniteQuerySubscription,
-  TypedUseInfiniteQueryState,
-  TypedLazyInfiniteQueryTrigger,
-} from './buildHooks'
-export { UNINITIALIZED_VALUE } from './constants'
-export { createApi, reactHooksModule, reactHooksModuleName }
Index: de_modules/@reduxjs/toolkit/src/query/react/module.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/module.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,275 +1,0 @@
-import type {
-  Api,
-  BaseQueryFn,
-  EndpointDefinitions,
-  InfiniteQueryDefinition,
-  Module,
-  MutationDefinition,
-  PrefetchOptions,
-  QueryArgFrom,
-  QueryDefinition,
-  QueryKeys,
-} from '@reduxjs/toolkit/query'
-import {
-  batch as rrBatch,
-  useDispatch as rrUseDispatch,
-  useSelector as rrUseSelector,
-  useStore as rrUseStore,
-} from 'react-redux'
-import type { CreateSelectorFunction } from 'reselect'
-import { createSelector as _createSelector } from 'reselect'
-import {
-  isInfiniteQueryDefinition,
-  isMutationDefinition,
-  isQueryDefinition,
-} from '../endpointDefinitions'
-import { safeAssign } from '../tsHelpers'
-import { capitalize, countObjectKeys } from '../utils'
-import type {
-  InfiniteQueryHooks,
-  MutationHooks,
-  QueryHooks,
-} from './buildHooks'
-import { buildHooks } from './buildHooks'
-import type { HooksWithUniqueNames } from './namedHooks'
-
-export const reactHooksModuleName = /* @__PURE__ */ Symbol()
-export type ReactHooksModule = typeof reactHooksModuleName
-
-declare module '@reduxjs/toolkit/query' {
-  export interface ApiModules<
-    // eslint-disable-next-line @typescript-eslint/no-unused-vars
-    BaseQuery extends BaseQueryFn,
-    Definitions extends EndpointDefinitions,
-    // eslint-disable-next-line @typescript-eslint/no-unused-vars
-    ReducerPath extends string,
-    // eslint-disable-next-line @typescript-eslint/no-unused-vars
-    TagTypes extends string,
-  > {
-    [reactHooksModuleName]: {
-      /**
-       *  Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.
-       */
-      endpoints: {
-        [K in keyof Definitions]: Definitions[K] extends QueryDefinition<
-          any,
-          any,
-          any,
-          any,
-          any
-        >
-          ? QueryHooks<Definitions[K]>
-          : Definitions[K] extends MutationDefinition<any, any, any, any, any>
-            ? MutationHooks<Definitions[K]>
-            : Definitions[K] extends InfiniteQueryDefinition<
-                  any,
-                  any,
-                  any,
-                  any,
-                  any
-                >
-              ? InfiniteQueryHooks<Definitions[K]>
-              : never
-      }
-      /**
-       * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.
-       */
-      usePrefetch<EndpointName extends QueryKeys<Definitions>>(
-        endpointName: EndpointName,
-        options?: PrefetchOptions,
-      ): (
-        arg: QueryArgFrom<Definitions[EndpointName]>,
-        options?: PrefetchOptions,
-      ) => void
-    } & HooksWithUniqueNames<Definitions>
-  }
-}
-
-type RR = typeof import('react-redux')
-
-export interface ReactHooksModuleOptions {
-  /**
-   * The hooks from React Redux to be used
-   */
-  hooks?: {
-    /**
-     * The version of the `useDispatch` hook to be used
-     */
-    useDispatch: RR['useDispatch']
-    /**
-     * The version of the `useSelector` hook to be used
-     */
-    useSelector: RR['useSelector']
-    /**
-     * The version of the `useStore` hook to be used
-     */
-    useStore: RR['useStore']
-  }
-  /**
-   * The version of the `batchedUpdates` function to be used
-   */
-  batch?: RR['batch']
-  /**
-   * Enables performing asynchronous tasks immediately within a render.
-   *
-   * @example
-   *
-   * ```ts
-   * import {
-   *   buildCreateApi,
-   *   coreModule,
-   *   reactHooksModule
-   * } from '@reduxjs/toolkit/query/react'
-   *
-   * const createApi = buildCreateApi(
-   *   coreModule(),
-   *   reactHooksModule({ unstable__sideEffectsInRender: true })
-   * )
-   * ```
-   */
-  unstable__sideEffectsInRender?: boolean
-  /**
-   * A selector creator (usually from `reselect`, or matching the same signature)
-   */
-  createSelector?: CreateSelectorFunction<any, any, any>
-}
-
-/**
- * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.
- *
- *  @example
- * ```ts
- * const MyContext = React.createContext<ReactReduxContextValue | null>(null);
- * const customCreateApi = buildCreateApi(
- *   coreModule(),
- *   reactHooksModule({
- *     hooks: {
- *       useDispatch: createDispatchHook(MyContext),
- *       useSelector: createSelectorHook(MyContext),
- *       useStore: createStoreHook(MyContext)
- *     }
- *   })
- * );
- * ```
- *
- * @returns A module for use with `buildCreateApi`
- */
-export const reactHooksModule = ({
-  batch = rrBatch,
-  hooks = {
-    useDispatch: rrUseDispatch,
-    useSelector: rrUseSelector,
-    useStore: rrUseStore,
-  },
-  createSelector = _createSelector,
-  unstable__sideEffectsInRender = false,
-  ...rest
-}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => {
-  if (process.env.NODE_ENV !== 'production') {
-    const hookNames = ['useDispatch', 'useSelector', 'useStore'] as const
-    let warned = false
-    for (const hookName of hookNames) {
-      // warn for old hook options
-      if (countObjectKeys(rest) > 0) {
-        if ((rest as Partial<typeof hooks>)[hookName]) {
-          if (!warned) {
-            console.warn(
-              'As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:' +
-                '\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`',
-            )
-            warned = true
-          }
-        }
-        // migrate
-        // @ts-ignore
-        hooks[hookName] = rest[hookName]
-      }
-      // then make sure we have them all
-      if (typeof hooks[hookName] !== 'function') {
-        throw new Error(
-          `When using custom hooks for context, all ${
-            hookNames.length
-          } hooks need to be provided: ${hookNames.join(
-            ', ',
-          )}.\nHook ${hookName} was either not provided or not a function.`,
-        )
-      }
-    }
-  }
-
-  return {
-    name: reactHooksModuleName,
-    init(api, { serializeQueryArgs }, context) {
-      const anyApi = api as any as Api<
-        any,
-        Record<string, any>,
-        any,
-        any,
-        ReactHooksModule
-      >
-      const {
-        buildQueryHooks,
-        buildInfiniteQueryHooks,
-        buildMutationHook,
-        usePrefetch,
-      } = buildHooks({
-        api,
-        moduleOptions: {
-          batch,
-          hooks,
-          unstable__sideEffectsInRender,
-          createSelector,
-        },
-        serializeQueryArgs,
-        context,
-      })
-      safeAssign(anyApi, { usePrefetch })
-      safeAssign(context, { batch })
-
-      return {
-        injectEndpoint(endpointName, definition) {
-          if (isQueryDefinition(definition)) {
-            const {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription,
-            } = buildQueryHooks(endpointName)
-            safeAssign(anyApi.endpoints[endpointName], {
-              useQuery,
-              useLazyQuery,
-              useLazyQuerySubscription,
-              useQueryState,
-              useQuerySubscription,
-            })
-            ;(api as any)[`use${capitalize(endpointName)}Query`] = useQuery
-            ;(api as any)[`useLazy${capitalize(endpointName)}Query`] =
-              useLazyQuery
-          }
-          if (isMutationDefinition(definition)) {
-            const useMutation = buildMutationHook(endpointName)
-            safeAssign(anyApi.endpoints[endpointName], {
-              useMutation,
-            })
-            ;(api as any)[`use${capitalize(endpointName)}Mutation`] =
-              useMutation
-          } else if (isInfiniteQueryDefinition(definition)) {
-            const {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState,
-            } = buildInfiniteQueryHooks(endpointName)
-            safeAssign(anyApi.endpoints[endpointName], {
-              useInfiniteQuery,
-              useInfiniteQuerySubscription,
-              useInfiniteQueryState,
-            })
-            ;(api as any)[`use${capitalize(endpointName)}InfiniteQuery`] =
-              useInfiniteQuery
-          }
-        },
-      }
-    },
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/query/react/namedHooks.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/namedHooks.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import type {
-  DefinitionType,
-  EndpointDefinitions,
-  MutationDefinition,
-  QueryDefinition,
-  InfiniteQueryDefinition,
-} from '@reduxjs/toolkit/query'
-import type {
-  UseInfiniteQuery,
-  UseLazyQuery,
-  UseMutation,
-  UseQuery,
-} from './buildHooks'
-
-type QueryHookNames<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions as Definitions[K] extends {
-    type: DefinitionType.query
-  }
-    ? `use${Capitalize<K & string>}Query`
-    : never]: UseQuery<
-    Extract<Definitions[K], QueryDefinition<any, any, any, any>>
-  >
-}
-
-type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions as Definitions[K] extends {
-    type: DefinitionType.query
-  }
-    ? `useLazy${Capitalize<K & string>}Query`
-    : never]: UseLazyQuery<
-    Extract<Definitions[K], QueryDefinition<any, any, any, any>>
-  >
-}
-
-type InfiniteQueryHookNames<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions as Definitions[K] extends {
-    type: DefinitionType.infinitequery
-  }
-    ? `use${Capitalize<K & string>}InfiniteQuery`
-    : never]: UseInfiniteQuery<
-    Extract<Definitions[K], InfiniteQueryDefinition<any, any, any, any, any>>
-  >
-}
-
-type MutationHookNames<Definitions extends EndpointDefinitions> = {
-  [K in keyof Definitions as Definitions[K] extends {
-    type: DefinitionType.mutation
-  }
-    ? `use${Capitalize<K & string>}Mutation`
-    : never]: UseMutation<
-    Extract<Definitions[K], MutationDefinition<any, any, any, any>>
-  >
-}
-
-export type HooksWithUniqueNames<Definitions extends EndpointDefinitions> =
-  QueryHookNames<Definitions> &
-    LazyQueryHookNames<Definitions> &
-    InfiniteQueryHookNames<Definitions> &
-    MutationHookNames<Definitions>
Index: de_modules/@reduxjs/toolkit/src/query/react/reactImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/reactImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export {
-  useEffect,
-  useRef,
-  useMemo,
-  useContext,
-  useCallback,
-  useDebugValue,
-  useLayoutEffect,
-  useState,
-} from 'react'
Index: de_modules/@reduxjs/toolkit/src/query/react/reactReduxImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/reactReduxImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { shallowEqual, Provider, ReactReduxContext } from 'react-redux'
Index: de_modules/@reduxjs/toolkit/src/query/react/rtkqImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/rtkqImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export {
-  buildCreateApi,
-  coreModule,
-  copyWithStructuralSharing,
-  setupListeners,
-  QueryStatus,
-  skipToken,
-} from '@reduxjs/toolkit/query'
Index: de_modules/@reduxjs/toolkit/src/query/react/useSerializedStableValue.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/useSerializedStableValue.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { useEffect, useRef, useMemo } from './reactImports'
-import { copyWithStructuralSharing } from './rtkqImports'
-
-export function useStableQueryArgs<T>(queryArgs: T) {
-  const cache = useRef(queryArgs)
-  const copy = useMemo(
-    () => copyWithStructuralSharing(cache.current, queryArgs),
-    [queryArgs],
-  )
-  useEffect(() => {
-    if (cache.current !== copy) {
-      cache.current = copy
-    }
-  }, [copy])
-
-  return copy
-}
Index: de_modules/@reduxjs/toolkit/src/query/react/useShallowStableValue.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/react/useShallowStableValue.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { useEffect, useRef } from './reactImports'
-import { shallowEqual } from './reactReduxImports'
-
-export function useShallowStableValue<T>(value: T) {
-  const cache = useRef(value)
-  useEffect(() => {
-    if (!shallowEqual(cache.current, value)) {
-      cache.current = value
-    }
-  }, [value])
-
-  return shallowEqual(cache.current, value) ? cache.current : value
-}
Index: de_modules/@reduxjs/toolkit/src/query/retry.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/retry.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,233 +1,0 @@
-import type {
-  BaseQueryApi,
-  BaseQueryArg,
-  BaseQueryEnhancer,
-  BaseQueryError,
-  BaseQueryExtraOptions,
-  BaseQueryFn,
-  BaseQueryMeta,
-} from './baseQueryTypes'
-import type { FetchBaseQueryError } from './fetchBaseQuery'
-import { HandledError } from './HandledError'
-
-/**
- * Exponential backoff based on the attempt number.
- *
- * @remarks
- * 1. 600ms * random(0.4, 1.4)
- * 2. 1200ms * random(0.4, 1.4)
- * 3. 2400ms * random(0.4, 1.4)
- * 4. 4800ms * random(0.4, 1.4)
- * 5. 9600ms * random(0.4, 1.4)
- *
- * @param attempt - Current attempt
- * @param maxRetries - Maximum number of retries
- */
-async function defaultBackoff(
-  attempt: number = 0,
-  maxRetries: number = 5,
-  signal?: AbortSignal,
-) {
-  const attempts = Math.min(attempt, maxRetries)
-
-  const timeout = ~~((Math.random() + 0.4) * (300 << attempts)) // Force a positive int in the case we make this an option
-
-  await new Promise<void>((resolve, reject) => {
-    const timeoutId = setTimeout(() => resolve(), timeout)
-
-    // If signal is provided and gets aborted, clear timeout and reject
-    if (signal) {
-      const abortHandler = () => {
-        clearTimeout(timeoutId)
-        reject(new Error('Aborted'))
-      }
-
-      // Check if already aborted
-      if (signal.aborted) {
-        clearTimeout(timeoutId)
-        reject(new Error('Aborted'))
-      } else {
-        signal.addEventListener('abort', abortHandler, { once: true })
-      }
-    }
-  })
-}
-
-type RetryConditionFunction = (
-  error: BaseQueryError<BaseQueryFn>,
-  args: BaseQueryArg<BaseQueryFn>,
-  extraArgs: {
-    attempt: number
-    baseQueryApi: BaseQueryApi
-    extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions
-  },
-) => boolean
-
-export type RetryOptions = {
-  /**
-   * Function used to determine delay between retries
-   */
-  backoff?: (
-    attempt: number,
-    maxRetries: number,
-    signal?: AbortSignal,
-  ) => Promise<void>
-} & (
-  | {
-      /**
-       * How many times the query will be retried (default: 5)
-       */
-      maxRetries?: number
-      retryCondition?: undefined
-    }
-  | {
-      /**
-       * Callback to determine if a retry should be attempted.
-       * Return `true` for another retry and `false` to quit trying prematurely.
-       */
-      retryCondition?: RetryConditionFunction
-      maxRetries?: undefined
-    }
-)
-
-function fail<BaseQuery extends BaseQueryFn = BaseQueryFn>(
-  error: BaseQueryError<BaseQuery>,
-  meta?: BaseQueryMeta<BaseQuery>,
-): never {
-  throw Object.assign(new HandledError({ error, meta }), {
-    throwImmediately: true,
-  })
-}
-
-/**
- * Checks if the abort signal is aborted and fails immediately if so.
- * Used to exit retry loops cleanly when a request is aborted.
- */
-function failIfAborted(signal: AbortSignal): void {
-  if (signal.aborted) {
-    fail({ status: 'CUSTOM_ERROR', error: 'Aborted' })
-  }
-}
-
-const EMPTY_OPTIONS = {}
-
-const retryWithBackoff: BaseQueryEnhancer<
-  unknown,
-  RetryOptions,
-  RetryOptions | void
-> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {
-  // We need to figure out `maxRetries` before we define `defaultRetryCondition.
-  // This is probably goofy, but ought to work.
-  // Put our defaults in one array, filter out undefineds, grab the last value.
-  const possibleMaxRetries: number[] = [
-    5,
-    ((defaultOptions as any) || EMPTY_OPTIONS).maxRetries,
-    ((extraOptions as any) || EMPTY_OPTIONS).maxRetries,
-  ].filter((x) => x !== undefined)
-  const [maxRetries] = possibleMaxRetries.slice(-1)
-
-  const defaultRetryCondition: RetryConditionFunction = (_, __, { attempt }) =>
-    attempt <= maxRetries
-
-  const options: {
-    maxRetries: number
-    backoff: typeof defaultBackoff
-    retryCondition: typeof defaultRetryCondition
-  } = {
-    maxRetries,
-    backoff: defaultBackoff,
-    retryCondition: defaultRetryCondition,
-    ...defaultOptions,
-    ...extraOptions,
-  }
-  let retry = 0
-
-  while (true) {
-    // Check if aborted before each attempt
-    failIfAborted(api.signal)
-
-    try {
-      const result = await baseQuery(args, api, extraOptions)
-      // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying
-      if (result.error) {
-        throw new HandledError(result)
-      }
-      return result
-    } catch (e: any) {
-      retry++
-
-      if (e.throwImmediately) {
-        if (e instanceof HandledError) {
-          return e.value
-        }
-
-        // We don't know what this is, so we have to rethrow it
-        throw e
-      }
-
-      if (e instanceof HandledError) {
-        if (
-          !options.retryCondition(e.value.error as FetchBaseQueryError, args, {
-            attempt: retry,
-            baseQueryApi: api,
-            extraOptions,
-          })
-        ) {
-          return e.value // Max retries for expected error
-        }
-      } else {
-        // For unexpected errors, respect maxRetries
-        if (retry > options.maxRetries) {
-          // Return the error as a proper error response instead of throwing
-          return { error: e }
-        }
-      }
-
-      // Check if aborted before backoff
-      failIfAborted(api.signal)
-
-      try {
-        await options.backoff(retry, options.maxRetries, api.signal)
-      } catch (backoffError) {
-        // If backoff was aborted, exit the retry loop
-        failIfAborted(api.signal)
-        // Otherwise, rethrow the backoff error
-        throw backoffError
-      }
-    }
-  }
-}
-
-/**
- * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.
- *
- * @example
- *
- * ```ts
- * // codeblock-meta title="Retry every request 5 times by default"
- * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'
- * interface Post {
- *   id: number
- *   name: string
- * }
- * type PostsResponse = Post[]
- *
- * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.
- * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });
- * export const api = createApi({
- *   baseQuery: staggeredBaseQuery,
- *   endpoints: (build) => ({
- *     getPosts: build.query<PostsResponse, void>({
- *       query: () => ({ url: 'posts' }),
- *     }),
- *     getPost: build.query<PostsResponse, string>({
- *       query: (id) => ({ url: `post/${id}` }),
- *       extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint
- *     }),
- *   }),
- * });
- *
- * export const { useGetPostsQuery, useGetPostQuery } = api;
- * ```
- */
-export const retry = /* @__PURE__ */ Object.assign(retryWithBackoff, { fail })
Index: de_modules/@reduxjs/toolkit/src/query/standardSchema.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/standardSchema.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import type { StandardSchemaV1 } from '@standard-schema/spec'
-import { SchemaError } from '@standard-schema/utils'
-import type { SchemaType } from './endpointDefinitions'
-
-export class NamedSchemaError extends SchemaError {
-  constructor(
-    issues: readonly StandardSchemaV1.Issue[],
-    public readonly value: any,
-    public readonly schemaName: `${SchemaType}Schema`,
-    public readonly _bqMeta: any,
-  ) {
-    super(issues)
-  }
-}
-
-export const shouldSkip = (
-  skipSchemaValidation: boolean | SchemaType[] | undefined,
-  schemaName: SchemaType,
-) =>
-  Array.isArray(skipSchemaValidation)
-    ? skipSchemaValidation.includes(schemaName)
-    : !!skipSchemaValidation
-
-export async function parseWithSchema<Schema extends StandardSchemaV1>(
-  schema: Schema,
-  data: unknown,
-  schemaName: `${SchemaType}Schema`,
-  bqMeta: any,
-): Promise<StandardSchemaV1.InferOutput<Schema>> {
-  const result = await schema['~standard'].validate(data)
-  if (result.issues) {
-    throw new NamedSchemaError(result.issues, data, schemaName, bqMeta)
-  }
-  return result.value
-}
Index: de_modules/@reduxjs/toolkit/src/query/tests/apiProvider.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/apiProvider.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,170 +1,0 @@
-import { configureStore } from '@reduxjs/toolkit'
-import {
-  ApiProvider,
-  buildCreateApi,
-  coreModule,
-  createApi,
-  reactHooksModule,
-} from '@reduxjs/toolkit/query/react'
-import { fireEvent, render, waitFor } from '@testing-library/react'
-import { delay } from 'msw'
-import * as React from 'react'
-import type { ReactReduxContextValue } from 'react-redux'
-import {
-  Provider,
-  createDispatchHook,
-  createSelectorHook,
-  createStoreHook,
-} from 'react-redux'
-
-const api = createApi({
-  baseQuery: async (arg: any) => {
-    await delay(150)
-    return { data: arg?.body ? arg.body : null }
-  },
-  endpoints: (build) => ({
-    getUser: build.query<any, number>({
-      query: (arg) => arg,
-    }),
-    updateUser: build.mutation<any, { name: string }>({
-      query: (update) => ({ body: update }),
-    }),
-  }),
-})
-
-afterEach(() => {
-  vi.resetAllMocks()
-})
-
-describe('ApiProvider', () => {
-  test('ApiProvider allows a user to make queries without a traditional Redux setup', async () => {
-    function User() {
-      const [value, setValue] = React.useState(0)
-
-      const { isFetching } = api.endpoints.getUser.useQuery(1, {
-        skip: value < 1,
-      })
-
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <button onClick={() => setValue((val) => val + 1)}>
-            Increment value
-          </button>
-        </div>
-      )
-    }
-
-    const { getByText, getByTestId } = render(
-      <ApiProvider api={api}>
-        <User />
-      </ApiProvider>,
-    )
-
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('false'),
-    )
-    fireEvent.click(getByText('Increment value'))
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('false'),
-    )
-    fireEvent.click(getByText('Increment value'))
-    // Being that nothing has changed in the args, this should never fire.
-    expect(getByTestId('isFetching').textContent).toBe('false')
-  })
-  test('ApiProvider throws if nested inside a Redux context', () => {
-    // Intentionally swallow the "unhandled error" message
-    vi.spyOn(console, 'error').mockImplementation(() => {})
-    expect(() =>
-      render(
-        <Provider store={configureStore({ reducer: () => null })}>
-          <ApiProvider api={api}>child</ApiProvider>
-        </Provider>,
-      ),
-    ).toThrowErrorMatchingInlineSnapshot(
-      `[Error: Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.]`,
-    )
-  })
-  test('ApiProvider allows a custom context', async () => {
-    const customContext = React.createContext<ReactReduxContextValue | null>(
-      null,
-    )
-
-    const createApiWithCustomContext = buildCreateApi(
-      coreModule(),
-      reactHooksModule({
-        hooks: {
-          useStore: createStoreHook(customContext),
-          useSelector: createSelectorHook(customContext),
-          useDispatch: createDispatchHook(customContext),
-        },
-      }),
-    )
-
-    const customApi = createApiWithCustomContext({
-      baseQuery: async (arg: any) => {
-        await delay(150)
-        return { data: arg?.body ? arg.body : null }
-      },
-      endpoints: (build) => ({
-        getUser: build.query<any, number>({
-          query: (arg) => arg,
-        }),
-        updateUser: build.mutation<any, { name: string }>({
-          query: (update) => ({ body: update }),
-        }),
-      }),
-    })
-
-    function User() {
-      const [value, setValue] = React.useState(0)
-
-      const { isFetching } = customApi.endpoints.getUser.useQuery(1, {
-        skip: value < 1,
-      })
-
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <button onClick={() => setValue((val) => val + 1)}>
-            Increment value
-          </button>
-        </div>
-      )
-    }
-
-    const { getByText, getByTestId } = render(
-      <ApiProvider api={customApi} context={customContext}>
-        <User />
-      </ApiProvider>,
-    )
-
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('false'),
-    )
-    fireEvent.click(getByText('Increment value'))
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(getByTestId('isFetching').textContent).toBe('false'),
-    )
-    fireEvent.click(getByText('Increment value'))
-    // Being that nothing has changed in the args, this should never fire.
-    expect(getByTestId('isFetching').textContent).toBe('false')
-
-    // won't throw if nested, because context is different
-    expect(() =>
-      render(
-        <Provider store={configureStore({ reducer: () => null })}>
-          <ApiProvider api={customApi} context={customContext}>
-            child
-          </ApiProvider>
-        </Provider>,
-      ),
-    ).not.toThrow()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/baseQueryTypes.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/baseQueryTypes.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query'
-
-describe('type tests', () => {
-  test('BaseQuery meta types propagate to endpoint callbacks', () => {
-    createApi({
-      baseQuery: fetchBaseQuery(),
-      endpoints: (build) => ({
-        getDummy: build.query<null, undefined>({
-          query: () => 'dummy',
-          onCacheEntryAdded: async (arg, { cacheDataLoaded }) => {
-            const { meta } = await cacheDataLoaded
-            const { request, response } = meta! // Expect request and response to be there
-          },
-        }),
-      }),
-    })
-
-    const baseQuery = retry(fetchBaseQuery()) // Even when wrapped with retry
-    createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getDummy: build.query<null, undefined>({
-          query: () => 'dummy',
-          onCacheEntryAdded: async (arg, { cacheDataLoaded }) => {
-            const { meta } = await cacheDataLoaded
-            const { request, response } = meta! // Expect request and response to be there
-          },
-        }),
-      }),
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildCreateApi.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildCreateApi.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,168 +1,0 @@
-import { createSelectorCreator, lruMemoize } from '@reduxjs/toolkit'
-import {
-  buildCreateApi,
-  coreModule,
-  reactHooksModule,
-} from '@reduxjs/toolkit/query/react'
-import { render, screen, waitFor } from '@testing-library/react'
-import { delay } from 'msw'
-import * as React from 'react'
-import type { ReactReduxContextValue } from 'react-redux'
-import {
-  Provider,
-  createDispatchHook,
-  createSelectorHook,
-  createStoreHook,
-} from 'react-redux'
-import { setupApiStore, useRenderCounter } from '../../tests/utils/helpers'
-
-const MyContext = React.createContext<ReactReduxContextValue | null>(null)
-
-describe('buildCreateApi', () => {
-  test('Works with all hooks provided', async () => {
-    const customCreateApi = buildCreateApi(
-      coreModule(),
-      reactHooksModule({
-        hooks: {
-          useDispatch: createDispatchHook(MyContext),
-          useSelector: createSelectorHook(MyContext),
-          useStore: createStoreHook(MyContext),
-        },
-      }),
-    )
-
-    const api = customCreateApi({
-      baseQuery: async (arg: any) => {
-        await delay(150)
-
-        return {
-          data: arg?.body ? { ...arg.body } : {},
-        }
-      },
-      endpoints: (build) => ({
-        getUser: build.query<{ name: string }, number>({
-          query: () => ({
-            body: { name: 'Timmy' },
-          }),
-        }),
-      }),
-    })
-
-    let getRenderCount: () => number = () => 0
-
-    const storeRef = setupApiStore(api, {}, { withoutTestLifecycles: true })
-
-    // Copy of 'useQuery hook basic render count assumptions' from `buildHooks.test.tsx`
-    function User() {
-      const { isFetching } = api.endpoints.getUser.useQuery(1)
-      getRenderCount = useRenderCounter()
-
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-        </div>
-      )
-    }
-
-    function Wrapper({ children }: any) {
-      return (
-        <Provider store={storeRef.store} context={MyContext}>
-          {children}
-        </Provider>
-      )
-    }
-
-    render(<User />, { wrapper: Wrapper })
-    // By the time this runs, the initial render will happen, and the query
-    //  will start immediately running by the time we can expect this
-    expect(getRenderCount()).toBe(2)
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    expect(getRenderCount()).toBe(3)
-  })
-
-  test("Throws an error if you don't provide all hooks", async () => {
-    const callBuildCreateApi = () => {
-      const customCreateApi = buildCreateApi(
-        coreModule(),
-        reactHooksModule({
-          // @ts-ignore
-          hooks: {
-            useDispatch: createDispatchHook(MyContext),
-            useSelector: createSelectorHook(MyContext),
-          },
-        }),
-      )
-    }
-
-    expect(callBuildCreateApi).toThrowErrorMatchingInlineSnapshot(
-      `
-      [Error: When using custom hooks for context, all 3 hooks need to be provided: useDispatch, useSelector, useStore.
-      Hook useStore was either not provided or not a function.]
-    `,
-    )
-  })
-  test('allows passing createSelector instance', async () => {
-    const memoize = vi.fn(lruMemoize)
-    const createSelector = createSelectorCreator(memoize)
-    const createApi = buildCreateApi(
-      coreModule({ createSelector }),
-      reactHooksModule({ createSelector }),
-    )
-    const api = createApi({
-      baseQuery: async (arg: any) => {
-        await delay(150)
-
-        return {
-          data: arg?.body ? { ...arg.body } : {},
-        }
-      },
-      endpoints: (build) => ({
-        getUser: build.query<{ name: string }, number>({
-          query: () => ({
-            body: { name: 'Timmy' },
-          }),
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, {}, { withoutTestLifecycles: true })
-
-    await storeRef.store.dispatch(api.endpoints.getUser.initiate(1))
-
-    const selectUser = api.endpoints.getUser.select(1)
-
-    expect(selectUser(storeRef.store.getState()).data).toEqual({
-      name: 'Timmy',
-    })
-
-    expect(memoize).toHaveBeenCalledTimes(4)
-
-    memoize.mockClear()
-
-    function User() {
-      const { isFetching } = api.endpoints.getUser.useQuery(1)
-
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-        </div>
-      )
-    }
-
-    function Wrapper({ children }: any) {
-      return <Provider store={storeRef.store}>{children}</Provider>
-    }
-
-    render(<User />, { wrapper: Wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-
-    // select() + selectFromResult
-    expect(memoize).toHaveBeenCalledTimes(8)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildHooks.test-d.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildHooks.test-d.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,343 +1,0 @@
-import type {
-  QueryStateSelector,
-  UseMutation,
-  UseQuery,
-} from '@internal/query/react/buildHooks'
-import { ANY } from '@internal/tests/utils/helpers'
-import type { SerializedError } from '@reduxjs/toolkit'
-import type {
-  QueryDefinition,
-  SubscriptionOptions,
-  TypedQueryStateSelector,
-} from '@reduxjs/toolkit/query/react'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-import { useState } from 'react'
-
-let amount = 0
-let nextItemId = 0
-
-interface Item {
-  id: number
-}
-
-const api = createApi({
-  baseQuery: (arg: any) => {
-    if (arg?.body && 'amount' in arg.body) {
-      amount += 1
-    }
-
-    if (arg?.body && 'forceError' in arg.body) {
-      return {
-        error: {
-          status: 500,
-          data: null,
-        },
-      }
-    }
-
-    if (arg?.body && 'listItems' in arg.body) {
-      const items: Item[] = []
-      for (let i = 0; i < 3; i++) {
-        const item = { id: nextItemId++ }
-        items.push(item)
-      }
-      return { data: items }
-    }
-
-    return {
-      data: arg?.body ? { ...arg.body, ...(amount ? { amount } : {}) } : {},
-    }
-  },
-  endpoints: (build) => ({
-    getUser: build.query<{ name: string }, number>({
-      query: () => ({
-        body: { name: 'Timmy' },
-      }),
-    }),
-    getUserAndForceError: build.query<{ name: string }, number>({
-      query: () => ({
-        body: {
-          forceError: true,
-        },
-      }),
-    }),
-    getIncrementedAmount: build.query<{ amount: number }, void>({
-      query: () => ({
-        url: '',
-        body: {
-          amount,
-        },
-      }),
-    }),
-    updateUser: build.mutation<{ name: string }, { name: string }>({
-      query: (update) => ({ body: update }),
-    }),
-    getError: build.query({
-      query: () => '/error',
-    }),
-    listItems: build.query<Item[], { pageNumber: number }>({
-      serializeQueryArgs: ({ endpointName }) => {
-        return endpointName
-      },
-      query: ({ pageNumber }) => ({
-        url: `items?limit=1&offset=${pageNumber}`,
-        body: {
-          listItems: true,
-        },
-      }),
-      merge: (currentCache, newItems) => {
-        currentCache.push(...newItems)
-      },
-      forceRefetch: () => {
-        return true
-      },
-    }),
-  }),
-})
-
-describe('type tests', () => {
-  test('useLazyQuery hook callback returns various properties to handle the result', () => {
-    function User() {
-      const [getUser] = api.endpoints.getUser.useLazyQuery()
-      const [{ successMsg, errMsg, isAborted }, setValues] = useState({
-        successMsg: '',
-        errMsg: '',
-        isAborted: false,
-      })
-
-      const handleClick = (abort: boolean) => async () => {
-        const res = getUser(1)
-
-        // no-op simply for clearer type assertions
-        res.then((result) => {
-          if (result.isSuccess) {
-            expectTypeOf(result).toMatchTypeOf<{
-              data: {
-                name: string
-              }
-            }>()
-          }
-
-          if (result.isError) {
-            expectTypeOf(result).toMatchTypeOf<{
-              error: { status: number; data: unknown } | SerializedError
-            }>()
-          }
-        })
-
-        expectTypeOf(res.arg).toBeNumber()
-
-        expectTypeOf(res.requestId).toBeString()
-
-        expectTypeOf(res.abort).toEqualTypeOf<() => void>()
-
-        expectTypeOf(res.unsubscribe).toEqualTypeOf<() => void>()
-
-        expectTypeOf(res.updateSubscriptionOptions).toEqualTypeOf<
-          (options: SubscriptionOptions) => void
-        >()
-
-        expectTypeOf(res.refetch).toMatchTypeOf<() => void>()
-
-        expectTypeOf(res.unwrap()).resolves.toEqualTypeOf<{ name: string }>()
-      }
-
-      return (
-        <div>
-          <button onClick={handleClick(false)}>Fetch User successfully</button>
-          <button onClick={handleClick(true)}>Fetch User and abort</button>
-          <div>{successMsg}</div>
-          <div>{errMsg}</div>
-          <div>{isAborted ? 'Request was aborted' : ''}</div>
-        </div>
-      )
-    }
-  })
-
-  test('useMutation hook callback returns various properties to handle the result', async () => {
-    function User() {
-      const [updateUser] = api.endpoints.updateUser.useMutation()
-      const [successMsg, setSuccessMsg] = useState('')
-      const [errMsg, setErrMsg] = useState('')
-      const [isAborted, setIsAborted] = useState(false)
-
-      const handleClick = async () => {
-        const res = updateUser({ name: 'Banana' })
-
-        expectTypeOf(res).resolves.toMatchTypeOf<
-          | {
-              error: { status: number; data: unknown } | SerializedError
-            }
-          | {
-              data: {
-                name: string
-              }
-            }
-        >()
-
-        expectTypeOf(res.arg).toMatchTypeOf<{
-          endpointName: string
-          originalArgs: { name: string }
-          track?: boolean
-        }>()
-
-        expectTypeOf(res.requestId).toBeString()
-
-        expectTypeOf(res.abort).toEqualTypeOf<() => void>()
-
-        expectTypeOf(res.unwrap()).resolves.toEqualTypeOf<{ name: string }>()
-
-        expectTypeOf(res.reset).toEqualTypeOf<() => void>()
-      }
-
-      return (
-        <div>
-          <button onClick={handleClick}>Update User and abort</button>
-          <div>{successMsg}</div>
-          <div>{errMsg}</div>
-          <div>{isAborted ? 'Request was aborted' : ''}</div>
-        </div>
-      )
-    }
-  })
-
-  test('top level named hooks', () => {
-    interface Post {
-      id: number
-      name: string
-      fetched_at: string
-    }
-
-    type PostsResponse = Post[]
-
-    const api = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com/' }),
-      tagTypes: ['Posts'],
-      endpoints: (build) => ({
-        getPosts: build.query<PostsResponse, void>({
-          query: () => ({ url: 'posts' }),
-          providesTags: (result) =>
-            result ? result.map(({ id }) => ({ type: 'Posts', id })) : [],
-        }),
-        updatePost: build.mutation<Post, Partial<Post>>({
-          query: ({ id, ...body }) => ({
-            url: `post/${id}`,
-            method: 'PUT',
-            body,
-          }),
-          invalidatesTags: (result, error, { id }) => [{ type: 'Posts', id }],
-        }),
-        addPost: build.mutation<Post, Partial<Post>>({
-          query: (body) => ({
-            url: `post`,
-            method: 'POST',
-            body,
-          }),
-          invalidatesTags: ['Posts'],
-        }),
-      }),
-    })
-
-    expectTypeOf(api.useGetPostsQuery).toEqualTypeOf(
-      api.endpoints.getPosts.useQuery,
-    )
-
-    expectTypeOf(api.useUpdatePostMutation).toEqualTypeOf(
-      api.endpoints.updatePost.useMutation,
-    )
-
-    expectTypeOf(api.useAddPostMutation).toEqualTypeOf(
-      api.endpoints.addPost.useMutation,
-    )
-  })
-
-  test('UseQuery type can be used to recreate the hook type', () => {
-    const fakeQuery = ANY as UseQuery<
-      typeof api.endpoints.getUser.Types.QueryDefinition
-    >
-
-    expectTypeOf(fakeQuery).toEqualTypeOf(api.endpoints.getUser.useQuery)
-  })
-
-  test('UseMutation type can be used to recreate the hook type', () => {
-    const fakeMutation = ANY as UseMutation<
-      typeof api.endpoints.updateUser.Types.MutationDefinition
-    >
-
-    expectTypeOf(fakeMutation).toEqualTypeOf(
-      api.endpoints.updateUser.useMutation,
-    )
-  })
-
-  test('TypedQueryStateSelector creates a pre-typed version of QueryStateSelector', () => {
-    type Post = {
-      id: number
-      title: string
-    }
-
-    type PostsApiResponse = {
-      posts: Post[]
-      total: number
-      skip: number
-      limit: number
-    }
-
-    type QueryArgument = number | undefined
-
-    type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
-
-    type SelectedResult = Pick<PostsApiResponse, 'posts'>
-
-    const postsApiSlice = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com/posts' }),
-      reducerPath: 'postsApi',
-      tagTypes: ['Posts'],
-      endpoints: (build) => ({
-        getPosts: build.query<PostsApiResponse, QueryArgument>({
-          query: (limit = 5) => `?limit=${limit}&select=title`,
-        }),
-      }),
-    })
-
-    const { useGetPostsQuery } = postsApiSlice
-
-    function PostById({ id }: { id: number }) {
-      const { post } = useGetPostsQuery(undefined, {
-        selectFromResult: (state) => ({
-          post: state.data?.posts.find((post) => post.id === id),
-        }),
-      })
-
-      expectTypeOf(post).toEqualTypeOf<Post | undefined>()
-
-      return <li>{post?.title}</li>
-    }
-
-    const EMPTY_ARRAY: Post[] = []
-
-    const typedSelectFromResult: TypedQueryStateSelector<
-      PostsApiResponse,
-      QueryArgument,
-      BaseQueryFunction,
-      SelectedResult
-    > = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })
-
-    function PostsList() {
-      const { posts } = useGetPostsQuery(undefined, {
-        selectFromResult: typedSelectFromResult,
-      })
-
-      expectTypeOf(posts).toEqualTypeOf<Post[]>()
-
-      return (
-        <div>
-          <ul>
-            {posts.map((post) => (
-              <PostById key={post.id} id={post.id} />
-            ))}
-          </ul>
-        </div>
-      )
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildHooks.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildHooks.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4142 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import type { SubscriptionOptions } from '@internal/query/core/apiState'
-import type { SubscriptionSelectors } from '@internal/query/core/buildMiddleware/types'
-import { server } from '@internal/query/tests/mocks/server'
-import { countObjectKeys } from '@internal/query/utils/countObjectKeys'
-import {
-  actionsReducer,
-  setupApiStore,
-  useRenderCounter,
-  waitForFakeTimer,
-  waitMs,
-  withProvider,
-} from '@internal/tests/utils/helpers'
-import type { UnknownAction } from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createListenerMiddleware,
-  createSlice,
-} from '@reduxjs/toolkit'
-import {
-  QueryStatus,
-  createApi,
-  fetchBaseQuery,
-  skipToken,
-} from '@reduxjs/toolkit/query/react'
-import {
-  act,
-  fireEvent,
-  render,
-  renderHook,
-  screen,
-  waitFor,
-} from '@testing-library/react'
-import { userEvent } from '@testing-library/user-event'
-import type { SyncScreen } from '@testing-library/react-render-stream/pure'
-import { createRenderStream } from '@testing-library/react-render-stream/pure'
-import { HttpResponse, http, delay } from 'msw'
-import { useEffect, useMemo, useRef, useState } from 'react'
-import type { InfiniteQueryResultFlags } from '../core/buildSelectors'
-
-// Just setup a temporary in-memory counter for tests that `getIncrementedAmount`.
-// This can be used to test how many renders happen due to data changes or
-// the refetching behavior of components.
-let amount = 0
-let nextItemId = 0
-let refetchCount = 0
-
-interface Item {
-  id: number
-}
-
-const api = createApi({
-  baseQuery: async (arg: any) => {
-    await waitForFakeTimer(150)
-    if (arg?.body && 'amount' in arg.body) {
-      amount += 1
-    }
-
-    if (arg?.body && 'forceError' in arg.body) {
-      return {
-        error: {
-          status: 500,
-          data: null,
-        },
-      }
-    }
-
-    if (arg?.body && 'listItems' in arg.body) {
-      const items: Item[] = []
-      for (let i = 0; i < 3; i++) {
-        const item = { id: nextItemId++ }
-        items.push(item)
-      }
-      return { data: items }
-    }
-
-    return {
-      data: arg?.body ? { ...arg.body, ...(amount ? { amount } : {}) } : {},
-    }
-  },
-  tagTypes: ['IncrementedAmount'],
-  endpoints: (build) => ({
-    getUser: build.query<{ name: string }, number>({
-      query: () => ({
-        body: { name: 'Timmy' },
-      }),
-    }),
-    getUserAndForceError: build.query<{ name: string }, number>({
-      query: () => ({
-        body: {
-          forceError: true,
-        },
-      }),
-    }),
-    getUserWithRefetchError: build.query<{ name: string }, number>({
-      queryFn: async (id) => {
-        refetchCount += 1
-
-        if (refetchCount > 1) {
-          return { error: true } as any
-        }
-
-        return { data: { name: 'Timmy' } }
-      },
-    }),
-    getIncrementedAmount: build.query<{ amount: number }, void>({
-      query: () => ({
-        url: '',
-        body: {
-          amount,
-        },
-      }),
-      providesTags: ['IncrementedAmount'],
-    }),
-    triggerUpdatedAmount: build.mutation<void, void>({
-      queryFn: async () => {
-        return { data: undefined }
-      },
-      invalidatesTags: ['IncrementedAmount'],
-    }),
-    updateUser: build.mutation<{ name: string }, { name: string }>({
-      query: (update) => ({ body: update }),
-    }),
-    getError: build.query({
-      query: () => '/error',
-    }),
-    listItems: build.query<Item[], { pageNumber: number | bigint }>({
-      serializeQueryArgs: ({ endpointName }) => {
-        return endpointName
-      },
-      query: ({ pageNumber }) => ({
-        url: `items?limit=1&offset=${pageNumber}`,
-        body: {
-          listItems: true,
-        },
-      }),
-      merge: (currentCache, newItems) => {
-        currentCache.push(...newItems)
-      },
-      forceRefetch: () => {
-        return true
-      },
-    }),
-    queryWithDeepArg: build.query<string, { param: { nested: string } }>({
-      query: ({ param: { nested } }) => nested,
-      serializeQueryArgs: ({ queryArgs }) => {
-        return queryArgs.param.nested
-      },
-    }),
-  }),
-})
-
-const listenerMiddleware = createListenerMiddleware()
-
-let actions: UnknownAction[] = []
-
-const storeRef = setupApiStore(
-  api,
-  {},
-  {
-    middleware: {
-      prepend: [listenerMiddleware.middleware],
-    },
-  },
-)
-
-let getSubscriptions: SubscriptionSelectors['getSubscriptions']
-let getSubscriptionCount: SubscriptionSelectors['getSubscriptionCount']
-
-beforeEach(() => {
-  actions = []
-  listenerMiddleware.startListening({
-    predicate: () => true,
-    effect: (action) => {
-      actions.push(action)
-    },
-  })
-  ;({ getSubscriptions, getSubscriptionCount } = storeRef.store.dispatch(
-    api.internalActions.internal_getRTKQSubscriptions(),
-  ) as unknown as SubscriptionSelectors)
-})
-
-afterEach(() => {
-  nextItemId = 0
-  amount = 0
-  listenerMiddleware.clearListeners()
-
-  server.resetHandlers()
-})
-
-let getRenderCount: () => number = () => 0
-
-describe('hooks tests', () => {
-  describe('useQuery', () => {
-    test('useQuery hook basic render count assumptions', async () => {
-      function User() {
-        const { isFetching } = api.endpoints.getUser.useQuery(1)
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      // By the time this runs, the initial render will happen, and the query
-      //  will start immediately running by the time we can expect this
-      expect(getRenderCount()).toBe(2)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(3)
-    })
-
-    test('useQuery hook sets isFetching=true whenever a request is in flight', async () => {
-      function User() {
-        const [value, setValue] = useState(0)
-
-        const { isFetching } = api.endpoints.getUser.useQuery(1, {
-          skip: value < 1,
-        })
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button onClick={() => setValue((val) => val + 1)}>
-              Increment value
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(getRenderCount()).toBe(1)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      fireEvent.click(screen.getByText('Increment value')) // setState = 1, perform request = 2
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(4)
-
-      fireEvent.click(screen.getByText('Increment value'))
-      // Being that nothing has changed in the args, this should never fire.
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      expect(getRenderCount()).toBe(5) // even though there was no request, the button click updates the state so this is an expected render
-    })
-
-    test('useQuery hook sets isLoading=true only on initial request', async () => {
-      let refetch: any, isLoading: boolean, isFetching: boolean
-      function User() {
-        const [value, setValue] = useState(0)
-
-        ;({ isLoading, isFetching, refetch } = api.endpoints.getUser.useQuery(
-          2,
-          {
-            skip: value < 1,
-          },
-        ))
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button onClick={() => setValue((val) => val + 1)}>
-              Increment value
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      // Being that we skipped the initial request on mount, this should be false
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-      fireEvent.click(screen.getByText('Increment value'))
-      // Condition is met, should load
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      ) // Make sure the original loading has completed.
-      fireEvent.click(screen.getByText('Increment value'))
-      // Being that we already have data, isLoading should be false
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-      // We call a refetch, should still be `false`
-      act(() => void refetch())
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      expect(screen.getByTestId('isLoading').textContent).toBe('false')
-    })
-
-    test('useQuery hook sets isLoading and isFetching to the correct states', async () => {
-      let refetchMe: () => void = () => {}
-      function User() {
-        const [value, setValue] = useState(0)
-        getRenderCount = useRenderCounter()
-
-        const { isLoading, isFetching, refetch } =
-          api.endpoints.getUser.useQuery(22, { skip: value < 1 })
-        refetchMe = refetch
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <button onClick={() => setValue((val) => val + 1)}>
-              Increment value
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(getRenderCount()).toBe(1)
-
-      expect(screen.getByTestId('isLoading').textContent).toBe('false')
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-
-      fireEvent.click(screen.getByText('Increment value')) // renders: set state = 1, perform request = 2
-      // Condition is met, should load
-      await waitFor(() => {
-        expect(screen.getByTestId('isLoading').textContent).toBe('true')
-        expect(screen.getByTestId('isFetching').textContent).toBe('true')
-      })
-
-      // Make sure the request is done for sure.
-      await waitFor(() => {
-        expect(screen.getByTestId('isLoading').textContent).toBe('false')
-        expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      })
-      expect(getRenderCount()).toBe(4)
-
-      fireEvent.click(screen.getByText('Increment value'))
-      // Being that we already have data and changing the value doesn't trigger a new request, only the button click should impact the render
-      await waitFor(() => {
-        expect(screen.getByTestId('isLoading').textContent).toBe('false')
-        expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      })
-      expect(getRenderCount()).toBe(5)
-
-      // We call a refetch, should set `isFetching` to true, then false when complete/errored
-      act(() => void refetchMe())
-      await waitFor(() => {
-        expect(screen.getByTestId('isLoading').textContent).toBe('false')
-        expect(screen.getByTestId('isFetching').textContent).toBe('true')
-      })
-      await waitFor(() => {
-        expect(screen.getByTestId('isLoading').textContent).toBe('false')
-        expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      })
-      expect(getRenderCount()).toBe(7)
-    })
-
-    test('`isLoading` does not jump back to true, while `isFetching` does', async () => {
-      const loadingHist: boolean[] = [],
-        fetchingHist: boolean[] = []
-
-      function User({ id }: { id: number }) {
-        const { isLoading, isFetching, status } =
-          api.endpoints.getUser.useQuery(id)
-
-        useEffect(() => {
-          loadingHist.push(isLoading)
-        }, [isLoading])
-        useEffect(() => {
-          fetchingHist.push(isFetching)
-        }, [isFetching])
-        return (
-          <div data-testid="status">
-            {status === QueryStatus.fulfilled && id}
-          </div>
-        )
-      }
-
-      let { rerender } = render(<User id={1} />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('1'),
-      )
-      rerender(<User id={2} />)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('2'),
-      )
-
-      expect(loadingHist).toEqual([true, false])
-      expect(fetchingHist).toEqual([true, false, true, false])
-    })
-
-    test('`isSuccess` does not jump back false on subsequent queries', async () => {
-      type LoadingState = {
-        id: number
-        isFetching: boolean
-        isSuccess: boolean
-      }
-      const loadingHistory: LoadingState[] = []
-
-      function User({ id }: { id: number }) {
-        const queryRes = api.endpoints.getUser.useQuery(id)
-
-        useEffect(() => {
-          const { isFetching, isSuccess } = queryRes
-          loadingHistory.push({ id, isFetching, isSuccess })
-        }, [id, queryRes])
-        return (
-          <div data-testid="status">
-            {queryRes.status === QueryStatus.fulfilled && id}
-          </div>
-        )
-      }
-
-      let { rerender } = render(<User id={1} />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('1'),
-      )
-      rerender(<User id={2} />)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('2'),
-      )
-
-      expect(loadingHistory).toEqual([
-        // Initial render(s)
-        { id: 1, isFetching: true, isSuccess: false },
-        { id: 1, isFetching: true, isSuccess: false },
-        // Data returned
-        { id: 1, isFetching: false, isSuccess: true },
-        // ID changed, there's an uninitialized cache entry.
-        // IMPORTANT: `isSuccess` should not be false here.
-        // We have valid data already for the old item.
-        { id: 2, isFetching: true, isSuccess: true },
-        { id: 2, isFetching: true, isSuccess: true },
-        { id: 2, isFetching: false, isSuccess: true },
-      ])
-    })
-
-    test('isSuccess stays consistent if there is an error while refetching', async () => {
-      type LoadingState = {
-        id: number
-        isFetching: boolean
-        isSuccess: boolean
-        isError: boolean
-      }
-      const loadingHistory: LoadingState[] = []
-
-      function Component({ id = 1 }) {
-        const queryRes = api.endpoints.getUserWithRefetchError.useQuery(id)
-        const { refetch, data, status } = queryRes
-
-        useEffect(() => {
-          const { isFetching, isSuccess, isError } = queryRes
-          loadingHistory.push({ id, isFetching, isSuccess, isError })
-        }, [id, queryRes])
-
-        return (
-          <div>
-            <button
-              onClick={() => {
-                refetch()
-              }}
-            >
-              refetch
-            </button>
-            <div data-testid="name">{data?.name}</div>
-            <div data-testid="status">{status}</div>
-          </div>
-        )
-      }
-
-      render(<Component />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('name').textContent).toBe('Timmy'),
-      )
-
-      fireEvent.click(screen.getByText('refetch'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('pending'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('rejected'),
-      )
-
-      fireEvent.click(screen.getByText('refetch'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('pending'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('rejected'),
-      )
-
-      expect(loadingHistory).toEqual([
-        // Initial renders
-        { id: 1, isFetching: true, isSuccess: false, isError: false },
-        { id: 1, isFetching: true, isSuccess: false, isError: false },
-        // Data is returned
-        { id: 1, isFetching: false, isSuccess: true, isError: false },
-        // Started first refetch
-        { id: 1, isFetching: true, isSuccess: true, isError: false },
-        // First refetch errored
-        { id: 1, isFetching: false, isSuccess: false, isError: true },
-        // Started second refetch
-        // IMPORTANT We expect `isSuccess` to still be false,
-        // despite having started the refetch again.
-        { id: 1, isFetching: true, isSuccess: false, isError: false },
-        // Second refetch errored
-        { id: 1, isFetching: false, isSuccess: false, isError: true },
-      ])
-    })
-
-    test('useQuery hook respects refetchOnMountOrArgChange: true', async () => {
-      let data, isLoading, isFetching
-      function User() {
-        ;({ data, isLoading, isFetching } =
-          api.endpoints.getIncrementedAmount.useQuery(undefined, {
-            refetchOnMountOrArgChange: true,
-          }))
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="amount">{String(data?.amount)}</div>
-          </div>
-        )
-      }
-
-      const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('1'),
-      )
-
-      unmount()
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      // Let's make sure we actually fetch, and we increment
-      expect(screen.getByTestId('isLoading').textContent).toBe('false')
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('2'),
-      )
-    })
-
-    test('useQuery does not refetch when refetchOnMountOrArgChange: NUMBER condition is not met', async () => {
-      let data, isLoading, isFetching
-      function User() {
-        ;({ data, isLoading, isFetching } =
-          api.endpoints.getIncrementedAmount.useQuery(undefined, {
-            refetchOnMountOrArgChange: 10,
-          }))
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="amount">{String(data?.amount)}</div>
-          </div>
-        )
-      }
-
-      const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('1'),
-      )
-
-      unmount()
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      // Let's make sure we actually fetch, and we increment. Should be false because we do this immediately
-      // and the condition is set to 10 seconds
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('1'),
-      )
-    })
-
-    test('useQuery refetches when refetchOnMountOrArgChange: NUMBER condition is met', async () => {
-      let data, isLoading, isFetching
-      function User() {
-        ;({ data, isLoading, isFetching } =
-          api.endpoints.getIncrementedAmount.useQuery(undefined, {
-            refetchOnMountOrArgChange: 0.5,
-          }))
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="amount">{String(data?.amount)}</div>
-          </div>
-        )
-      }
-
-      const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('1'),
-      )
-
-      unmount()
-
-      // Wait to make sure we've passed the `refetchOnMountOrArgChange` value
-      await waitMs(510)
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      // Let's make sure we actually fetch, and we increment
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('2'),
-      )
-    })
-
-    test('refetchOnMountOrArgChange works as expected when changing skip from false->true', async () => {
-      let data, isLoading, isFetching
-      function User() {
-        const [skip, setSkip] = useState(true)
-        ;({ data, isLoading, isFetching } =
-          api.endpoints.getIncrementedAmount.useQuery(undefined, {
-            refetchOnMountOrArgChange: 0.5,
-            skip,
-          }))
-
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="amount">{String(data?.amount)}</div>
-            <button onClick={() => setSkip((prev) => !prev)}>
-              change skip
-            </button>
-            ;
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      expect(screen.getByTestId('isLoading').textContent).toBe('false')
-      expect(screen.getByTestId('amount').textContent).toBe('undefined')
-
-      fireEvent.click(screen.getByText('change skip'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('1'),
-      )
-    })
-
-    test('refetchOnMountOrArgChange works as expected when changing skip from false->true with a cached query', async () => {
-      // 1. we need to mount a skipped query, then toggle skip to generate a cached result
-      // 2. we need to mount a skipped component after that, then toggle skip as well. should pull from the cache.
-      // 3. we need to mount another skipped component, then toggle skip after the specified duration and expect the time condition to be satisfied
-
-      let data, isLoading, isFetching
-      function User() {
-        const [skip, setSkip] = useState(true)
-        ;({ data, isLoading, isFetching } =
-          api.endpoints.getIncrementedAmount.useQuery(undefined, {
-            skip,
-            refetchOnMountOrArgChange: 0.5,
-          }))
-
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="amount">{String(data?.amount)}</div>
-            <button onClick={() => setSkip((prev) => !prev)}>
-              change skip
-            </button>
-            ;
-          </div>
-        )
-      }
-
-      let { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-
-      // skipped queries do nothing by default, so we need to toggle that to get a cached result
-      fireEvent.click(screen.getByText('change skip'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-
-      await waitFor(() => {
-        expect(screen.getByTestId('amount').textContent).toBe('1')
-        expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      })
-
-      unmount()
-
-      await waitMs(100)
-
-      // This will pull from the cache as the time criteria is not met.
-      ;({ unmount } = render(<User />, {
-        wrapper: storeRef.wrapper,
-      }))
-
-      // skipped queries return nothing
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      expect(screen.getByTestId('amount').textContent).toBe('undefined')
-
-      // toggle skip -> true... won't refetch as the time critera is not met, and just loads the cached values
-      fireEvent.click(screen.getByText('change skip'))
-      expect(screen.getByTestId('isFetching').textContent).toBe('false')
-      expect(screen.getByTestId('amount').textContent).toBe('1')
-
-      unmount()
-
-      await waitMs(500)
-      ;({ unmount } = render(<User />, {
-        wrapper: storeRef.wrapper,
-      }))
-
-      // toggle skip -> true... will cause a refetch as the time criteria is now satisfied
-      fireEvent.click(screen.getByText('change skip'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      await waitFor(() =>
-        expect(screen.getByTestId('amount').textContent).toBe('2'),
-      )
-    })
-
-    test(`useQuery refetches when query args object changes even if serialized args don't change`, async () => {
-      const user = userEvent.setup()
-
-      function ItemList() {
-        const [pageNumber, setPageNumber] = useState(0)
-        const { data = [] } = api.useListItemsQuery({
-          pageNumber,
-        })
-
-        const renderedItems = data.map((item) => (
-          <li key={item.id}>ID: {item.id}</li>
-        ))
-        return (
-          <div>
-            <button onClick={() => setPageNumber(pageNumber + 1)}>
-              Next Page
-            </button>
-            <ul>{renderedItems}</ul>
-          </div>
-        )
-      }
-
-      render(<ItemList />, { wrapper: storeRef.wrapper })
-
-      await screen.findByText('ID: 0')
-
-      await user.click(screen.getByText('Next Page'))
-
-      await screen.findByText('ID: 3')
-    })
-
-    test(`useQuery shouldn't call args serialization if request skipped`, async () => {
-      expect(() =>
-        renderHook(() => api.endpoints.queryWithDeepArg.useQuery(skipToken), {
-          wrapper: storeRef.wrapper,
-        }),
-      ).not.toThrow()
-    })
-
-    test(`useQuery gracefully handles bigint types`, async () => {
-      const user = userEvent.setup()
-
-      function ItemList() {
-        const [pageNumber, setPageNumber] = useState(0)
-        const { data = [] } = api.useListItemsQuery({
-          pageNumber: BigInt(pageNumber),
-        })
-
-        const renderedItems = data.map((item) => (
-          <li key={item.id}>ID: {item.id}</li>
-        ))
-        return (
-          <div>
-            <button onClick={() => setPageNumber(pageNumber + 1)}>
-              Next Page
-            </button>
-            <ul>{renderedItems}</ul>
-          </div>
-        )
-      }
-
-      render(<ItemList />, { wrapper: storeRef.wrapper })
-
-      await screen.findByText('ID: 0')
-
-      await user.click(screen.getByText('Next Page'))
-
-      await screen.findByText('ID: 3')
-    })
-
-    describe('api.util.resetApiState resets hook', () => {
-      test('without `selectFromResult`', async () => {
-        const { result } = renderHook(() => api.endpoints.getUser.useQuery(5), {
-          wrapper: storeRef.wrapper,
-        })
-
-        await waitFor(() => expect(result.current.isSuccess).toBe(true))
-
-        act(() => void storeRef.store.dispatch(api.util.resetApiState()))
-
-        expect(result.current).toEqual(
-          expect.objectContaining({
-            isError: false,
-            isFetching: true,
-            isLoading: true,
-            isSuccess: false,
-            isUninitialized: false,
-            refetch: expect.any(Function),
-            status: 'pending',
-          }),
-        )
-      })
-      test('with `selectFromResult`', async () => {
-        const selectFromResult = vi.fn((x) => x)
-        const { result } = renderHook(
-          () => api.endpoints.getUser.useQuery(5, { selectFromResult }),
-          {
-            wrapper: storeRef.wrapper,
-          },
-        )
-
-        await waitFor(() => expect(result.current.isSuccess).toBe(true))
-        selectFromResult.mockClear()
-        act(() => {
-          storeRef.store.dispatch(api.util.resetApiState())
-        })
-
-        expect(selectFromResult).toHaveBeenNthCalledWith(1, {
-          isError: false,
-          isFetching: false,
-          isLoading: false,
-          isSuccess: false,
-          isUninitialized: true,
-          status: 'uninitialized',
-        })
-      })
-
-      test('hook should not be stuck loading post resetApiState after re-render', async () => {
-        const user = userEvent.setup()
-
-        function QueryComponent() {
-          const { isLoading, data } = api.endpoints.getUser.useQuery(1)
-
-          if (isLoading) {
-            return <p>Loading...</p>
-          }
-
-          return <p>{data?.name}</p>
-        }
-
-        function Wrapper() {
-          const [open, setOpen] = useState(true)
-
-          const handleRerender = () => {
-            setOpen(false)
-            setTimeout(() => {
-              setOpen(true)
-            }, 250)
-          }
-
-          const handleReset = () => {
-            storeRef.store.dispatch(api.util.resetApiState())
-          }
-
-          return (
-            <>
-              <button onClick={handleRerender} aria-label="Rerender component">
-                Rerender
-              </button>
-              {open ? (
-                <div>
-                  <button onClick={handleReset} aria-label="Reset API state">
-                    Reset
-                  </button>
-
-                  <QueryComponent />
-                </div>
-              ) : null}
-            </>
-          )
-        }
-
-        render(<Wrapper />, { wrapper: storeRef.wrapper })
-
-        await user.click(
-          screen.getByRole('button', { name: /Rerender component/i }),
-        )
-        await waitFor(() => {
-          expect(screen.getByText('Timmy')).toBeTruthy()
-        })
-
-        await user.click(
-          screen.getByRole('button', { name: /reset api state/i }),
-        )
-        await waitFor(() => {
-          expect(screen.queryByText('Loading...')).toBeNull()
-        })
-        await waitFor(() => {
-          expect(screen.getByText('Timmy')).toBeTruthy()
-        })
-      })
-    })
-
-    test('useQuery refetch method returns a promise that resolves with the result', async () => {
-      const { result } = renderHook(
-        () => api.endpoints.getIncrementedAmount.useQuery(),
-        {
-          wrapper: storeRef.wrapper,
-        },
-      )
-
-      await waitFor(() => expect(result.current.isSuccess).toBe(true))
-      const originalAmount = result.current.data!.amount
-
-      const { refetch } = result.current
-
-      let resPromise: ReturnType<typeof refetch> = null as any
-      await act(async () => {
-        resPromise = refetch()
-      })
-      expect(resPromise).toBeInstanceOf(Promise)
-      const res = await act(() => resPromise)
-      expect(res.data!.amount).toBeGreaterThan(originalAmount)
-    })
-
-    // See https://github.com/reduxjs/redux-toolkit/issues/4267 - Memory leak in useQuery rapid query arg changes
-    test('Hook subscriptions are properly cleaned up when query is fulfilled/rejected', async () => {
-      // This is imported already, but it seems to be causing issues with the test on certain matrixes
-
-      const pokemonApi = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-        endpoints: (builder) => ({
-          getTest: builder.query<string, number>({
-            async queryFn() {
-              await new Promise((resolve) => setTimeout(resolve, 1000))
-              return { data: 'data!' }
-            },
-            keepUnusedDataFor: 0,
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const checkNumQueries = (count: number) => {
-        const cacheEntries = Object.keys(storeRef.store.getState().api.queries)
-        const queries = cacheEntries.length
-
-        expect(queries).toBe(count)
-      }
-
-      let i = 0
-
-      function User() {
-        const [fetchTest, { isFetching, isUninitialized }] =
-          pokemonApi.endpoints.getTest.useLazyQuery()
-
-        return (
-          <div>
-            <div data-testid="isUninitialized">{String(isUninitialized)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button data-testid="fetchButton" onClick={() => fetchTest(i++)}>
-              fetchUser
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      checkNumQueries(3)
-
-      await act(async () => {
-        await delay(1500)
-      })
-
-      // There should only be one stored query once they have had time to resolve
-      checkNumQueries(1)
-    })
-
-    // See https://github.com/reduxjs/redux-toolkit/issues/3182
-    test('Hook subscriptions are properly cleaned up when changing skip back and forth', async () => {
-      const pokemonApi = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-        endpoints: (builder) => ({
-          getPokemonByName: builder.query({
-            queryFn: (name: string) => ({ data: null }),
-            keepUnusedDataFor: 1,
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const checkNumSubscriptions = (arg: string, count: number) => {
-        const subscriptions = getSubscriptions()
-        const cacheKeyEntry = subscriptions.get(arg)
-
-        if (cacheKeyEntry) {
-          const subscriptionCount = Object.keys(cacheKeyEntry) //getSubscriptionCount(arg)
-          expect(subscriptionCount).toBe(count)
-        }
-      }
-
-      // 1) Initial state: an active subscription
-      const { rerender, unmount } = renderHook(
-        ([arg, options]: Parameters<
-          typeof pokemonApi.useGetPokemonByNameQuery
-        >) => pokemonApi.useGetPokemonByNameQuery(arg, options),
-        {
-          wrapper: storeRef.wrapper,
-          initialProps: ['a'],
-        },
-      )
-
-      await act(async () => {
-        await waitMs(1)
-      })
-
-      // 2) Set the current subscription to `{skip: true}
-      rerender(['a', { skip: true }])
-
-      // 3) Change _both_ the cache key _and_ `{skip: false}` at the same time.
-      // This causes the `subscriptionRemoved` check to be `true`.
-      rerender(['b'])
-
-      // There should only be one active subscription after changing the arg
-      checkNumSubscriptions('b', 1)
-
-      // 4) Re-render with the same arg.
-      // This causes the `subscriptionRemoved` check to be `false`.
-      // Correct behavior is this does _not_ clear the promise ref,
-      // so
-      rerender(['b'])
-
-      // There should only be one active subscription after changing the arg
-      checkNumSubscriptions('b', 1)
-
-      await act(async () => {
-        await waitMs(1)
-      })
-
-      unmount()
-
-      await act(async () => {
-        await waitMs(1)
-      })
-
-      // There should be no subscription entries left over after changing
-      // cache key args and swapping `skip` on and off
-      checkNumSubscriptions('b', 0)
-
-      const finalSubscriptions = getSubscriptions()
-
-      for (const cacheKeyEntry of Object.values(finalSubscriptions)) {
-        expect(Object.values(cacheKeyEntry!).length).toBe(0)
-      }
-    })
-
-    test('Hook subscription failures do not reset isLoading state', async () => {
-      const states: boolean[] = []
-
-      function Parent() {
-        const { isLoading } = api.endpoints.getUserAndForceError.useQuery(1)
-
-        // Collect loading states to verify that it does not revert back to true.
-        states.push(isLoading)
-
-        // Parent conditionally renders child when loading.
-        if (isLoading) return null
-
-        return <Child />
-      }
-
-      function Child() {
-        // Using the same args as the parent
-        api.endpoints.getUserAndForceError.useQuery(1)
-
-        return null
-      }
-
-      render(<Parent />, { wrapper: storeRef.wrapper })
-
-      expect(states).toHaveLength(2)
-
-      // Allow at least three state effects to hit.
-      // Trying to see if any [true, false, true] occurs.
-      await act(async () => {
-        await waitForFakeTimer(150)
-      })
-
-      expect(states).toHaveLength(4)
-
-      await act(async () => {
-        await waitForFakeTimer(150)
-      })
-
-      expect(states).toHaveLength(5)
-
-      await act(async () => {
-        await waitForFakeTimer(150)
-      })
-
-      expect(states).toHaveLength(5)
-
-      // Find if at any time the isLoading state has reverted
-      // E.G.: `[..., true, false, ..., true]`
-      //              ^^^^  ^^^^^       ^^^^
-      const firstTrue = states.indexOf(true)
-      const firstFalse = states.slice(firstTrue).indexOf(false)
-      const revertedState = states.slice(firstFalse).indexOf(true)
-
-      expect(
-        revertedState,
-        `Expected isLoading state to never revert back to true but did after ${revertedState} renders...`,
-      ).toBe(-1)
-    })
-
-    test('query thunk should be aborted when component unmounts and cache entry is removed', async () => {
-      let abortSignalFromQueryFn: AbortSignal | undefined
-
-      const pokemonApi = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-        endpoints: (builder) => ({
-          getTest: builder.query<string, number>({
-            async queryFn(arg, { signal }) {
-              abortSignalFromQueryFn = signal
-
-              // Simulate a long-running request that should be aborted
-              await new Promise((resolve, reject) => {
-                const timeout = setTimeout(resolve, 5000)
-
-                signal.addEventListener('abort', () => {
-                  clearTimeout(timeout)
-                  reject(new Error('Aborted'))
-                })
-              })
-
-              return { data: 'data!' }
-            },
-            keepUnusedDataFor: 0.01, // Very short timeout (10ms)
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      function TestComponent() {
-        const { data, isFetching } = pokemonApi.endpoints.getTest.useQuery(1)
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <div data-testid="data">{data || 'no data'}</div>
-          </div>
-        )
-      }
-
-      function App() {
-        const [showComponent, setShowComponent] = useState(true)
-
-        return (
-          <div>
-            {showComponent && <TestComponent />}
-            <button
-              data-testid="unmount"
-              onClick={() => setShowComponent(false)}
-            >
-              Unmount Component
-            </button>
-          </div>
-        )
-      }
-
-      render(<App />, { wrapper: storeRef.wrapper })
-
-      // Wait for the query to start
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-
-      // Verify we have an abort signal
-      expect(abortSignalFromQueryFn).toBeDefined()
-      expect(abortSignalFromQueryFn!.aborted).toBe(false)
-
-      // Unmount the component
-      fireEvent.click(screen.getByTestId('unmount'))
-
-      // Wait for the cache entry to be removed (keepUnusedDataFor: 0.01s = 10ms)
-      await act(async () => {
-        await delay(100)
-      })
-
-      // The abort signal should now be aborted
-      expect(abortSignalFromQueryFn!.aborted).toBe(true)
-    })
-
-    describe('Hook middleware requirements', () => {
-      const consoleErrorSpy = vi
-        .spyOn(console, 'error')
-        .mockImplementation(noop)
-
-      afterEach(() => {
-        consoleErrorSpy.mockClear()
-      })
-
-      afterAll(() => {
-        consoleErrorSpy.mockRestore()
-      })
-
-      test('Throws error if middleware is not added to the store', async () => {
-        const store = configureStore({
-          reducer: {
-            [api.reducerPath]: api.reducer,
-          },
-        })
-
-        const doRender = () => {
-          renderHook(() => api.endpoints.getIncrementedAmount.useQuery(), {
-            wrapper: withProvider(store),
-          })
-        }
-
-        expect(doRender).toThrowError(
-          /Warning: Middleware for RTK-Query API at reducerPath "api" has not been added to the store/,
-        )
-      })
-    })
-  })
-
-  describe('useLazyQuery', () => {
-    let data: any
-
-    afterEach(() => {
-      data = undefined
-    })
-
-    let getRenderCount: () => number = () => 0
-    test('useLazyQuery does not automatically fetch when mounted and has undefined data', async () => {
-      function User() {
-        const [fetchUser, { data: hookData, isFetching, isUninitialized }] =
-          api.endpoints.getUser.useLazyQuery()
-        getRenderCount = useRenderCounter()
-
-        data = hookData
-
-        return (
-          <div>
-            <div data-testid="isUninitialized">{String(isUninitialized)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button data-testid="fetchButton" onClick={() => fetchUser(1)}>
-              fetchUser
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(getRenderCount()).toBe(1)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isUninitialized').textContent).toBe('true'),
-      )
-      await waitFor(() => expect(data).toBeUndefined())
-
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      expect(getRenderCount()).toBe(2)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isUninitialized').textContent).toBe('false'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(3)
-
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(5)
-    })
-
-    test('useLazyQuery accepts updated subscription options and only dispatches updateSubscriptionOptions when values are updated', async () => {
-      let interval = 1000
-      function User() {
-        const [options, setOptions] = useState<SubscriptionOptions>()
-        const [fetchUser, { data: hookData, isFetching, isUninitialized }] =
-          api.endpoints.getUser.useLazyQuery(options)
-        getRenderCount = useRenderCounter()
-
-        data = hookData
-
-        return (
-          <div>
-            <div data-testid="isUninitialized">{String(isUninitialized)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-
-            <button data-testid="fetchButton" onClick={() => fetchUser(1)}>
-              fetchUser
-            </button>
-            <button
-              data-testid="updateOptions"
-              onClick={() =>
-                setOptions({
-                  pollingInterval: interval,
-                })
-              }
-            >
-              updateOptions
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(getRenderCount()).toBe(1) // hook mount
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isUninitialized').textContent).toBe('true'),
-      )
-      await waitFor(() => expect(data).toBeUndefined())
-
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      expect(getRenderCount()).toBe(2)
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(3)
-
-      fireEvent.click(screen.getByTestId('updateOptions')) // setState = 1
-      expect(getRenderCount()).toBe(4)
-
-      fireEvent.click(screen.getByTestId('fetchButton')) // perform new request = 2
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(6)
-
-      interval = 1000
-
-      fireEvent.click(screen.getByTestId('updateOptions')) // setState = 1
-      expect(getRenderCount()).toBe(7)
-
-      fireEvent.click(screen.getByTestId('fetchButton'))
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      expect(getRenderCount()).toBe(9)
-
-      expect(
-        actions.filter(api.internalActions.updateSubscriptionOptions.match),
-      ).toHaveLength(1)
-    })
-
-    test('useLazyQuery accepts updated args and unsubscribes the original query', async () => {
-      function User() {
-        const [fetchUser, { data: hookData, isFetching, isUninitialized }] =
-          api.endpoints.getUser.useLazyQuery()
-
-        data = hookData
-
-        return (
-          <div>
-            <div data-testid="isUninitialized">{String(isUninitialized)}</div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-
-            <button data-testid="fetchUser1" onClick={() => fetchUser(1)}>
-              fetchUser1
-            </button>
-            <button data-testid="fetchUser2" onClick={() => fetchUser(2)}>
-              fetchUser2
-            </button>
-          </div>
-        )
-      }
-
-      const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isUninitialized').textContent).toBe('true'),
-      )
-      await waitFor(() => expect(data).toBeUndefined())
-
-      fireEvent.click(screen.getByTestId('fetchUser1'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      // Being that there is only the initial query, no unsubscribe should be dispatched
-      expect(
-        actions.filter(api.internalActions.unsubscribeQueryResult.match),
-      ).toHaveLength(0)
-
-      fireEvent.click(screen.getByTestId('fetchUser2'))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      expect(
-        actions.filter(api.internalActions.unsubscribeQueryResult.match),
-      ).toHaveLength(1)
-
-      fireEvent.click(screen.getByTestId('fetchUser1'))
-
-      expect(
-        actions.filter(api.internalActions.unsubscribeQueryResult.match),
-      ).toHaveLength(2)
-
-      // we always unsubscribe the original promise and create a new one
-      fireEvent.click(screen.getByTestId('fetchUser1'))
-      expect(
-        actions.filter(api.internalActions.unsubscribeQueryResult.match),
-      ).toHaveLength(3)
-
-      unmount()
-
-      // We unsubscribe after the component unmounts
-      expect(
-        actions.filter(api.internalActions.unsubscribeQueryResult.match),
-      ).toHaveLength(4)
-    })
-
-    test('useLazyQuery hook callback returns various properties to handle the result', async () => {
-      const user = userEvent.setup()
-
-      function User() {
-        const [getUser] = api.endpoints.getUser.useLazyQuery()
-        const [{ successMsg, errMsg, isAborted }, setValues] = useState({
-          successMsg: '',
-          errMsg: '',
-          isAborted: false,
-        })
-
-        const handleClick = (abort: boolean) => async () => {
-          const res = getUser(1)
-
-          // abort the query immediately to force an error
-          if (abort) res.abort()
-          res
-            .unwrap()
-            .then((result) => {
-              setValues({
-                successMsg: `Successfully fetched user ${result.name}`,
-                errMsg: '',
-                isAborted: false,
-              })
-            })
-            .catch((err) => {
-              setValues({
-                successMsg: '',
-                errMsg: `An error has occurred fetching userId: ${res.arg}`,
-                isAborted: err.name === 'AbortError',
-              })
-            })
-        }
-
-        return (
-          <div>
-            <button onClick={handleClick(false)}>
-              Fetch User successfully
-            </button>
-            <button onClick={handleClick(true)}>Fetch User and abort</button>
-            <div>{successMsg}</div>
-            <div>{errMsg}</div>
-            <div>{isAborted ? 'Request was aborted' : ''}</div>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(screen.queryByText(/An error has occurred/i)).toBeNull()
-      expect(screen.queryByText(/Successfully fetched user/i)).toBeNull()
-      expect(screen.queryByText('Request was aborted')).toBeNull()
-
-      fireEvent.click(
-        screen.getByRole('button', { name: 'Fetch User and abort' }),
-      )
-      await screen.findByText('An error has occurred fetching userId: 1')
-      expect(screen.queryByText(/Successfully fetched user/i)).toBeNull()
-      screen.getByText('Request was aborted')
-
-      await user.click(
-        screen.getByRole('button', { name: 'Fetch User successfully' }),
-      )
-
-      await screen.findByText('Successfully fetched user Timmy')
-      expect(screen.queryByText(/An error has occurred/i)).toBeNull()
-      expect(screen.queryByText('Request was aborted')).toBeNull()
-    })
-
-    // Based on issue #5079, which I couldn't reproduce but we might as well capture
-    test('useLazyQuery calling abort() multiple times does not throw an error', async () => {
-      const user = userEvent.setup()
-
-      // Create a fresh API instance with fetchBaseQuery and timeout, matching the user's example
-      const timeoutApi = createApi({
-        baseQuery: fetchBaseQuery({
-          baseUrl: 'https://example.com',
-          timeout: 5000,
-        }),
-        endpoints: (builder) => ({
-          getData: builder.query<string, void>({
-            query: () => ({ url: '/data/' }),
-          }),
-        }),
-      })
-
-      const timeoutStoreRef = setupApiStore(timeoutApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      // Set up a mock handler for the endpoint
-      server.use(
-        http.get('https://example.com/data/', async () => {
-          await delay(100)
-          return HttpResponse.json('test data')
-        }),
-      )
-
-      function Component() {
-        const [trigger] = timeoutApi.endpoints.getData.useLazyQuery()
-        const abortRef = useRef<(() => void) | undefined>(undefined)
-        const [errorMsg, setErrorMsg] = useState('')
-
-        const handleChange = () => {
-          // Abort any previous request
-          abortRef.current?.()
-
-          // Trigger new request
-          const result = trigger()
-
-          // Store abort function for next call
-          abortRef.current = () => {
-            try {
-              result.abort()
-            } catch (err: any) {
-              setErrorMsg(err.message)
-            }
-          }
-        }
-
-        return (
-          <div>
-            <input data-testid="input" onChange={handleChange} />
-            <div data-testid="error">{errorMsg}</div>
-          </div>
-        )
-      }
-
-      render(<Component />, { wrapper: timeoutStoreRef.wrapper })
-
-      const input = screen.getByTestId('input')
-
-      // Trigger multiple rapid changes that will call abort() multiple times
-      await user.type(input, 'abc')
-
-      // Wait a bit to ensure any errors would have been caught
-      await waitMs(200)
-
-      // Should not have any error messages
-      expect(screen.getByTestId('error').textContent).toBe('')
-    })
-
-    test('unwrapping the useLazyQuery trigger result does not throw on ConditionError and instead returns the aggregate error', async () => {
-      function User() {
-        const [getUser, { data, error }] =
-          api.endpoints.getUserAndForceError.useLazyQuery()
-
-        const [unwrappedError, setUnwrappedError] = useState<any>()
-
-        const handleClick = async () => {
-          const res = getUser(1)
-
-          try {
-            await res.unwrap()
-          } catch (error) {
-            setUnwrappedError(error)
-          }
-        }
-
-        return (
-          <div>
-            <button onClick={handleClick}>Fetch User</button>
-            <div data-testid="result">{JSON.stringify(data)}</div>
-            <div data-testid="error">{JSON.stringify(error)}</div>
-            <div data-testid="unwrappedError">
-              {JSON.stringify(unwrappedError)}
-            </div>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      const fetchButton = screen.getByRole('button', { name: 'Fetch User' })
-      fireEvent.click(fetchButton)
-      fireEvent.click(fetchButton) // This technically dispatches a ConditionError, but we don't want to see that here. We want the real error to resolve.
-
-      await waitFor(() => {
-        const errorResult = screen.getByTestId('error')?.textContent
-        const unwrappedErrorResult =
-          screen.getByTestId('unwrappedError')?.textContent
-
-        if (errorResult && unwrappedErrorResult) {
-          expect(JSON.parse(errorResult)).toMatchObject({
-            status: 500,
-            data: null,
-          })
-          expect(JSON.parse(unwrappedErrorResult)).toMatchObject(
-            JSON.parse(errorResult),
-          )
-        }
-      })
-
-      expect(screen.getByTestId('result').textContent).toBe('')
-    })
-
-    test('useLazyQuery does not throw on ConditionError and instead returns the aggregate result', async () => {
-      function User() {
-        const [getUser, { data, error }] = api.endpoints.getUser.useLazyQuery()
-
-        const [unwrappedResult, setUnwrappedResult] = useState<
-          undefined | { name: string }
-        >()
-
-        const handleClick = async () => {
-          const res = getUser(1)
-
-          const result = await res.unwrap()
-          setUnwrappedResult(result)
-        }
-
-        return (
-          <div>
-            <button onClick={handleClick}>Fetch User</button>
-            <div data-testid="result">{JSON.stringify(data)}</div>
-            <div data-testid="error">{JSON.stringify(error)}</div>
-            <div data-testid="unwrappedResult">
-              {JSON.stringify(unwrappedResult)}
-            </div>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      const fetchButton = screen.getByRole('button', { name: 'Fetch User' })
-      fireEvent.click(fetchButton)
-      fireEvent.click(fetchButton) // This technically dispatches a ConditionError, but we don't want to see that here. We want the real result to resolve and ignore the error.
-
-      await waitFor(() => {
-        const dataResult = screen.getByTestId('error')?.textContent
-        const unwrappedDataResult =
-          screen.getByTestId('unwrappedResult')?.textContent
-
-        if (dataResult && unwrappedDataResult) {
-          expect(JSON.parse(dataResult)).toMatchObject({
-            name: 'Timmy',
-          })
-          expect(JSON.parse(unwrappedDataResult)).toMatchObject(
-            JSON.parse(dataResult),
-          )
-        }
-      })
-
-      expect(screen.getByTestId('error').textContent).toBe('')
-    })
-
-    test('useLazyQuery trigger promise returns the correctly updated data', async () => {
-      const user = userEvent.setup()
-
-      const LazyUnwrapUseEffect = () => {
-        const [triggerGetIncrementedAmount, { isFetching, isSuccess, data }] =
-          api.endpoints.getIncrementedAmount.useLazyQuery()
-
-        type AmountData = { amount: number } | undefined
-
-        const [triggerUpdate] = api.endpoints.triggerUpdatedAmount.useMutation()
-
-        const [dataFromQuery, setDataFromQuery] =
-          useState<AmountData>(undefined)
-        const [dataFromTrigger, setDataFromTrigger] =
-          useState<AmountData>(undefined)
-
-        const handleLoad = async () => {
-          try {
-            const res = await triggerGetIncrementedAmount().unwrap()
-
-            setDataFromTrigger(res) // adding client side state here will cause stale data
-          } catch (error) {
-            console.error('Error handling increment trigger', error)
-          }
-        }
-
-        const handleMutate = async () => {
-          try {
-            await triggerUpdate()
-            // Force the lazy trigger to refetch
-            await handleLoad()
-          } catch (error) {
-            console.error('Error handling mutate trigger', error)
-          }
-        }
-
-        useEffect(() => {
-          // Intentionally copy to local state for comparison purposes
-          setDataFromQuery(data)
-        }, [data])
-
-        let content: React.ReactNode | null = null
-
-        if (isFetching) {
-          content = <div className="loading">Loading</div>
-        } else if (isSuccess) {
-          content = (
-            <div className="wrapper">
-              <div>
-                useEffect data: {dataFromQuery?.amount ?? 'No query amount'}
-              </div>
-              <div>
-                Unwrap data: {dataFromTrigger?.amount ?? 'No trigger amount'}
-              </div>
-            </div>
-          )
-        }
-
-        return (
-          <div className="outer">
-            <button onClick={() => handleLoad()}>Load Data</button>
-            <button onClick={() => handleMutate()}>Update Data</button>
-            {content}
-          </div>
-        )
-      }
-
-      render(<LazyUnwrapUseEffect />, { wrapper: storeRef.wrapper })
-
-      // Kick off the initial fetch via lazy query trigger
-      await user.click(screen.getByText('Load Data'))
-
-      // We get back initial data, which should get copied into local state,
-      // and also should come back as valid via the lazy trigger promise
-      await waitFor(() => {
-        expect(screen.getByText('useEffect data: 1')).toBeTruthy()
-        expect(screen.getByText('Unwrap data: 1')).toBeTruthy()
-      })
-
-      // If we mutate and then re-run the lazy trigger afterwards...
-      await user.click(screen.getByText('Update Data'))
-
-      // We should see both sets of data agree (ie, the lazy trigger promise
-      // should not return stale data or be out of sync with the hook).
-      // Prior to PR #4651, this would fail because the trigger never updated properly.
-      await waitFor(() => {
-        expect(screen.getByText('useEffect data: 2')).toBeTruthy()
-        expect(screen.getByText('Unwrap data: 2')).toBeTruthy()
-      })
-    })
-
-    test('`reset` sets state back to original state', async () => {
-      const user = userEvent.setup()
-
-      function User() {
-        const [getUser, { isSuccess, isUninitialized, reset }, _lastInfo] =
-          api.endpoints.getUser.useLazyQuery()
-
-        const handleFetchClick = async () => {
-          await getUser(1).unwrap()
-        }
-
-        return (
-          <div>
-            <span>
-              {isUninitialized
-                ? 'isUninitialized'
-                : isSuccess
-                  ? 'isSuccess'
-                  : 'other'}
-            </span>
-            <button onClick={handleFetchClick}>Fetch User</button>
-            <button onClick={reset}>Reset</button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await screen.findByText(/isUninitialized/i)
-      expect(countObjectKeys(storeRef.store.getState().api.queries)).toBe(0)
-
-      await user.click(screen.getByRole('button', { name: 'Fetch User' }))
-
-      await screen.findByText(/isSuccess/i)
-      expect(countObjectKeys(storeRef.store.getState().api.queries)).toBe(1)
-
-      await user.click(
-        screen.getByRole('button', {
-          name: 'Reset',
-        }),
-      )
-
-      await screen.findByText(/isUninitialized/i)
-      expect(countObjectKeys(storeRef.store.getState().api.queries)).toBe(0)
-    })
-  })
-
-  describe('useInfiniteQuery', () => {
-    type Pokemon = {
-      id: string
-      name: string
-    }
-
-    const pokemonApi = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (builder) => ({
-        getInfinitePokemon: builder.infiniteQuery<Pokemon, string, number>({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-            getPreviousPageParam: (
-              firstPage,
-              allPages,
-              firstPageParam,
-              allPageParams,
-            ) => {
-              return firstPageParam > 0 ? firstPageParam - 1 : undefined
-            },
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-        }),
-      }),
-    })
-
-    const pokemonApiWithRefetch = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (builder) => ({
-        getInfinitePokemon: builder.infiniteQuery<Pokemon, string, number>({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-            getPreviousPageParam: (
-              firstPage,
-              allPages,
-              firstPageParam,
-              allPageParams,
-            ) => {
-              return firstPageParam > 0 ? firstPageParam - 1 : undefined
-            },
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-        }),
-      }),
-      refetchOnMountOrArgChange: true,
-    })
-
-    function PokemonList({
-      api,
-      arg = 'fire',
-      initialPageParam = 0,
-    }: {
-      api: typeof pokemonApi
-      arg?: string
-      initialPageParam?: number
-    }) {
-      const {
-        data,
-        isFetching,
-        isUninitialized,
-        fetchNextPage,
-        fetchPreviousPage,
-        refetch,
-      } = api.useGetInfinitePokemonInfiniteQuery(arg, {
-        initialPageParam,
-      })
-
-      const handlePreviousPage = async () => {
-        const res = await fetchPreviousPage()
-      }
-
-      const handleNextPage = async () => {
-        const res = await fetchNextPage()
-      }
-
-      const handleRefetch = async () => {
-        const res = await refetch()
-      }
-
-      return (
-        <div>
-          <div data-testid="isUninitialized">{String(isUninitialized)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div>Type: {arg}</div>
-          <div data-testid="data">
-            {data?.pages.map((page, i: number | null | undefined) => (
-              <div key={i}>{page.name}</div>
-            ))}
-          </div>
-          <button data-testid="prevPage" onClick={() => handlePreviousPage()}>
-            previousPage
-          </button>
-          <button data-testid="nextPage" onClick={() => handleNextPage()}>
-            nextPage
-          </button>
-          <button data-testid="refetch" onClick={() => handleRefetch()}>
-            refetch
-          </button>
-        </div>
-      )
-    }
-
-    beforeEach(() => {
-      server.use(
-        http.get('https://example.com/listItems', ({ request }) => {
-          const url = new URL(request.url)
-          const pageString = url.searchParams.get('page')
-          const pageNum = parseInt(pageString || '0')
-
-          const results: Pokemon = {
-            id: `${pageNum}`,
-            name: `Pokemon ${pageNum}`,
-          }
-
-          return HttpResponse.json(results)
-        }),
-      )
-    })
-
-    test.each([
-      ['no refetch', pokemonApi],
-      ['with refetch', pokemonApiWithRefetch],
-    ])(`useInfiniteQuery %s`, async (_, pokemonApi) => {
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const { takeRender, render, getCurrentRender } = createRenderStream({
-        snapshotDOM: true,
-      })
-
-      const checkNumQueries = (count: number) => {
-        const cacheEntries = Object.keys(storeRef.store.getState().api.queries)
-        const queries = cacheEntries.length
-
-        expect(queries).toBe(count)
-      }
-
-      const checkEntryFlags = (
-        arg: string,
-        expectedFlags: Partial<InfiniteQueryResultFlags>,
-      ) => {
-        const selector = pokemonApi.endpoints.getInfinitePokemon.select(arg)
-        const entry = selector(storeRef.store.getState())
-
-        const actualFlags: InfiniteQueryResultFlags = {
-          hasNextPage: false,
-          hasPreviousPage: false,
-          isFetchingNextPage: false,
-          isFetchingPreviousPage: false,
-          isFetchNextPageError: false,
-          isFetchPreviousPageError: false,
-          ...expectedFlags,
-        }
-
-        expect(entry).toMatchObject(actualFlags)
-      }
-
-      const checkPageRows = (
-        withinDOM: () => SyncScreen,
-        type: string,
-        ids: number[],
-      ) => {
-        expect(withinDOM().getByText(`Type: ${type}`)).toBeTruthy()
-        for (const id of ids) {
-          expect(withinDOM().getByText(`Pokemon ${id}`)).toBeTruthy()
-        }
-      }
-
-      async function waitForFetch(handleExtraMiddleRender = false) {
-        {
-          const { withinDOM } = await takeRender()
-          expect(withinDOM().getByTestId('isFetching').textContent).toBe('true')
-        }
-
-        // We seem to do an extra render when fetching an uninitialized entry
-        if (handleExtraMiddleRender) {
-          {
-            const { withinDOM } = await takeRender()
-            expect(withinDOM().getByTestId('isFetching').textContent).toBe(
-              'true',
-            )
-          }
-        }
-
-        {
-          // Second fetch complete
-          const { withinDOM } = await takeRender()
-          expect(withinDOM().getByTestId('isFetching').textContent).toBe(
-            'false',
-          )
-        }
-      }
-
-      const utils = render(<PokemonList api={pokemonApi} />, {
-        wrapper: storeRef.wrapper,
-      })
-      checkNumQueries(1)
-      checkEntryFlags('fire', {})
-      await waitForFetch(true)
-      checkNumQueries(1)
-      checkPageRows(getCurrentRender().withinDOM, 'fire', [0])
-      checkEntryFlags('fire', {
-        hasNextPage: true,
-      })
-
-      fireEvent.click(screen.getByTestId('nextPage'), {})
-      checkEntryFlags('fire', {
-        hasNextPage: true,
-        isFetchingNextPage: true,
-      })
-      await waitForFetch()
-      checkPageRows(getCurrentRender().withinDOM, 'fire', [0, 1])
-      checkEntryFlags('fire', {
-        hasNextPage: true,
-      })
-
-      fireEvent.click(screen.getByTestId('nextPage'))
-      await waitForFetch()
-      checkPageRows(getCurrentRender().withinDOM, 'fire', [0, 1, 2])
-
-      utils.rerender(
-        <PokemonList api={pokemonApi} arg="water" initialPageParam={3} />,
-      )
-      checkEntryFlags('water', {})
-      await waitForFetch(true)
-      checkNumQueries(2)
-      checkPageRows(getCurrentRender().withinDOM, 'water', [3])
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-      })
-
-      fireEvent.click(screen.getByTestId('nextPage'))
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-        isFetchingNextPage: true,
-      })
-      await waitForFetch()
-      checkPageRows(getCurrentRender().withinDOM, 'water', [3, 4])
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-      })
-
-      fireEvent.click(screen.getByTestId('prevPage'))
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-        isFetchingPreviousPage: true,
-      })
-      await waitForFetch()
-      checkPageRows(getCurrentRender().withinDOM, 'water', [2, 3, 4])
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-      })
-
-      fireEvent.click(screen.getByTestId('refetch'))
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-      })
-      await waitForFetch()
-      checkPageRows(getCurrentRender().withinDOM, 'water', [2, 3, 4])
-      checkEntryFlags('water', {
-        hasNextPage: true,
-        hasPreviousPage: true,
-      })
-    })
-
-    test('Object page params does not keep forcing refetching', async () => {
-      type Project = {
-        id: number
-        createdAt: string
-      }
-
-      type ProjectsResponse = {
-        projects: Project[]
-        numFound: number
-        serverTime: string
-      }
-
-      interface ProjectsInitialPageParam {
-        offset: number
-        limit: number
-      }
-
-      const apiWithInfiniteScroll = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com/' }),
-        endpoints: (builder) => ({
-          projectsLimitOffset: builder.infiniteQuery<
-            ProjectsResponse,
-            void,
-            ProjectsInitialPageParam
-          >({
-            infiniteQueryOptions: {
-              initialPageParam: {
-                offset: 0,
-                limit: 20,
-              },
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => {
-                const nextOffset = lastPageParam.offset + lastPageParam.limit
-                const remainingItems = lastPage?.numFound - nextOffset
-
-                if (remainingItems <= 0) {
-                  return undefined
-                }
-
-                return {
-                  ...lastPageParam,
-                  offset: nextOffset,
-                }
-              },
-              getPreviousPageParam: (
-                firstPage,
-                allPages,
-                firstPageParam,
-                allPageParams,
-              ) => {
-                const prevOffset = firstPageParam.offset - firstPageParam.limit
-                if (prevOffset < 0) return undefined
-
-                return {
-                  ...firstPageParam,
-                  offset: firstPageParam.offset - firstPageParam.limit,
-                }
-              },
-            },
-            query: ({ pageParam }) => {
-              const { offset, limit } = pageParam
-              return {
-                url: `https://example.com/api/projectsLimitOffset?offset=${offset}&limit=${limit}`,
-                method: 'GET',
-              }
-            },
-          }),
-        }),
-      })
-
-      const projects = Array.from({ length: 50 }, (_, i) => {
-        return {
-          id: i,
-          createdAt: Date.now() + i * 1000,
-        }
-      })
-
-      let numRequests = 0
-
-      server.use(
-        http.get(
-          'https://example.com/api/projectsLimitOffset',
-          async ({ request }) => {
-            const url = new URL(request.url)
-            const limit = parseInt(url.searchParams.get('limit') ?? '5', 10)
-            let offset = parseInt(url.searchParams.get('offset') ?? '0', 10)
-
-            numRequests++
-
-            if (isNaN(offset) || offset < 0) {
-              offset = 0
-            }
-            if (isNaN(limit) || limit <= 0) {
-              return HttpResponse.json(
-                {
-                  message:
-                    "Invalid 'limit' parameter. It must be a positive integer.",
-                } as any,
-                { status: 400 },
-              )
-            }
-
-            const result = projects.slice(offset, offset + limit)
-
-            await delay(10)
-            return HttpResponse.json({
-              projects: result,
-              serverTime: Date.now(),
-              numFound: projects.length,
-            })
-          },
-        ),
-      )
-
-      function LimitOffsetExample() {
-        const {
-          data,
-          hasPreviousPage,
-          hasNextPage,
-          error,
-          isFetching,
-          isLoading,
-          isError,
-          fetchNextPage,
-          fetchPreviousPage,
-          isFetchingNextPage,
-          isFetchingPreviousPage,
-          status,
-        } = apiWithInfiniteScroll.useProjectsLimitOffsetInfiniteQuery(
-          undefined,
-          {
-            initialPageParam: {
-              offset: 10,
-              limit: 10,
-            },
-          },
-        )
-
-        const [counter, setCounter] = useState(0)
-
-        const combinedData = useMemo(() => {
-          return data?.pages?.map((item) => item?.projects)?.flat()
-        }, [data])
-
-        return (
-          <div>
-            <h2>Limit and Offset Infinite Scroll</h2>
-            <button onClick={() => setCounter((c) => c + 1)}>Increment</button>
-            <div>Counter: {counter}</div>
-            {isLoading ? (
-              <p>Loading...</p>
-            ) : isError ? (
-              <span>Error: {error.message}</span>
-            ) : null}
-
-            <>
-              <div>
-                <button
-                  onClick={() => fetchPreviousPage()}
-                  disabled={!hasPreviousPage || isFetchingPreviousPage}
-                >
-                  {isFetchingPreviousPage
-                    ? 'Loading more...'
-                    : hasPreviousPage
-                      ? 'Load Older'
-                      : 'Nothing more to load'}
-                </button>
-              </div>
-              <div data-testid="projects">
-                {combinedData?.map((project, index, arr) => {
-                  return (
-                    <div key={project.id}>
-                      <div data-testid="project">
-                        <div>{`Project ${project.id} (created at: ${project.createdAt})`}</div>
-                      </div>
-                    </div>
-                  )
-                })}
-              </div>
-              <div>
-                <button
-                  onClick={() => fetchNextPage()}
-                  disabled={!hasNextPage || isFetchingNextPage}
-                >
-                  {isFetchingNextPage
-                    ? 'Loading more...'
-                    : hasNextPage
-                      ? 'Load Newer'
-                      : 'Nothing more to load'}
-                </button>
-              </div>
-              <div>
-                {isFetching && !isFetchingPreviousPage && !isFetchingNextPage
-                  ? 'Background Updating...'
-                  : null}
-              </div>
-            </>
-          </div>
-        )
-      }
-
-      const storeRef = setupApiStore(
-        apiWithInfiniteScroll,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      const { takeRender, render, totalRenderCount } = createRenderStream({
-        snapshotDOM: true,
-      })
-
-      render(<LimitOffsetExample />, {
-        wrapper: storeRef.wrapper,
-      })
-
-      {
-        const { withinDOM } = await takeRender()
-        withinDOM().getByText('Counter: 0')
-        withinDOM().getByText('Loading...')
-      }
-
-      {
-        const { withinDOM } = await takeRender()
-        withinDOM().getByText('Counter: 0')
-        withinDOM().getByText('Loading...')
-      }
-
-      {
-        const { withinDOM } = await takeRender()
-        withinDOM().getByText('Counter: 0')
-
-        expect(withinDOM().getAllByTestId('project').length).toBe(10)
-        expect(withinDOM().queryByTestId('Loading...')).toBeNull()
-      }
-
-      expect(totalRenderCount()).toBe(3)
-      expect(numRequests).toBe(1)
-    })
-
-    test.each([
-      ['skip token', true],
-      ['skip option', false],
-    ])(
-      'useInfiniteQuery hook does not fetch when skipped via %s',
-      async (_, useSkipToken) => {
-        function Pokemon() {
-          const [value, setValue] = useState(0)
-
-          const shouldFetch = value > 0
-
-          const arg = shouldFetch || !useSkipToken ? 'fire' : skipToken
-          const skip = useSkipToken ? undefined : shouldFetch ? undefined : true
-
-          const { isFetching } = pokemonApi.useGetInfinitePokemonInfiniteQuery(
-            arg,
-            {
-              skip,
-            },
-          )
-          getRenderCount = useRenderCounter()
-
-          return (
-            <div>
-              <div data-testid="isFetching">{String(isFetching)}</div>
-              <button onClick={() => setValue((val) => val + 1)}>
-                Increment value
-              </button>
-            </div>
-          )
-        }
-
-        render(<Pokemon />, { wrapper: storeRef.wrapper })
-        expect(getRenderCount()).toBe(1)
-
-        await waitFor(() =>
-          expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-        )
-        fireEvent.click(screen.getByText('Increment value'))
-        await waitFor(() =>
-          expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-        )
-        expect(getRenderCount()).toBe(2)
-      },
-    )
-
-    test('useInfiniteQuery hook option refetchCachedPages: false only refetches first page', async () => {
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      function PokemonList() {
-        const { data, fetchNextPage, refetch } =
-          pokemonApi.useGetInfinitePokemonInfiniteQuery('fire', {
-            refetchCachedPages: false,
-          })
-
-        return (
-          <div>
-            <div data-testid="data">
-              {data?.pages.map((page, i) => (
-                <div key={i} data-testid={`page-${i}`}>
-                  {page.name}
-                </div>
-              ))}
-            </div>
-            <button data-testid="nextPage" onClick={() => fetchNextPage()}>
-              Next Page
-            </button>
-            <button data-testid="refetch" onClick={() => refetch()}>
-              Refetch
-            </button>
-          </div>
-        )
-      }
-
-      render(<PokemonList />, { wrapper: storeRef.wrapper })
-
-      // Wait for initial page to load
-      await waitFor(() => {
-        expect(screen.getByTestId('page-0').textContent).toBe('Pokemon 0')
-      })
-
-      // Fetch second page
-      fireEvent.click(screen.getByTestId('nextPage'))
-      await waitFor(() => {
-        expect(screen.getByTestId('page-1').textContent).toBe('Pokemon 1')
-      })
-
-      // Fetch third page
-      fireEvent.click(screen.getByTestId('nextPage'))
-      await waitFor(() => {
-        expect(screen.getByTestId('page-2').textContent).toBe('Pokemon 2')
-      })
-
-      // Now we have 3 pages. Refetch with refetchCachedPages: false should only refetch page 0
-      fireEvent.click(screen.getByTestId('refetch'))
-
-      await waitFor(
-        () => {
-          // Should only have 1 page
-          expect(screen.queryByTestId('page-0')).toBeTruthy()
-          expect(screen.queryByTestId('page-1')).toBeNull()
-          expect(screen.queryByTestId('page-2')).toBeNull()
-        },
-        { timeout: 1000 },
-      )
-
-      // Verify we only have 1 page (not refetched all)
-      const pages = screen.getAllByTestId(/^page-/)
-      expect(pages).toHaveLength(1)
-    })
-
-    test('useInfiniteQuery refetch() method option refetchCachedPages: false only refetches first page', async () => {
-      const storeRef = setupApiStore(pokemonApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      function PokemonList() {
-        const { data, fetchNextPage, refetch } =
-          pokemonApi.useGetInfinitePokemonInfiniteQuery('fire')
-
-        return (
-          <div>
-            <div data-testid="data">
-              {data?.pages.map((page, i) => (
-                <div key={i} data-testid={`page-${i}`}>
-                  {page.name}
-                </div>
-              ))}
-            </div>
-            <button data-testid="nextPage" onClick={() => fetchNextPage()}>
-              Next Page
-            </button>
-            <button
-              data-testid="refetch"
-              onClick={() => refetch({ refetchCachedPages: false })}
-            >
-              Refetch
-            </button>
-          </div>
-        )
-      }
-
-      render(<PokemonList />, { wrapper: storeRef.wrapper })
-
-      // Wait for initial page to load
-      await waitFor(() => {
-        expect(screen.getByTestId('page-0').textContent).toBe('Pokemon 0')
-      })
-
-      // Fetch second page
-      fireEvent.click(screen.getByTestId('nextPage'))
-      await waitFor(() => {
-        expect(screen.getByTestId('page-1').textContent).toBe('Pokemon 1')
-      })
-
-      // Fetch third page
-      fireEvent.click(screen.getByTestId('nextPage'))
-      await waitFor(() => {
-        expect(screen.getByTestId('page-2').textContent).toBe('Pokemon 2')
-      })
-
-      // Now we have 3 pages. Refetch with refetchCachedPages: false should only refetch page 0
-      fireEvent.click(screen.getByTestId('refetch'))
-
-      await waitFor(() => {
-        // Should only have 1 page
-        expect(screen.queryByTestId('page-0')).toBeTruthy()
-        expect(screen.queryByTestId('page-1')).toBeNull()
-        expect(screen.queryByTestId('page-2')).toBeNull()
-      })
-
-      // Verify we only have 1 page (not refetched all)
-      const pages = screen.getAllByTestId(/^page-/)
-      expect(pages).toHaveLength(1)
-    })
-  })
-
-  describe('useMutation', () => {
-    test('useMutation hook sets and unsets the isLoading flag when running', async () => {
-      function User() {
-        const [updateUser, { isLoading }] =
-          api.endpoints.updateUser.useMutation()
-
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <button onClick={() => updateUser({ name: 'Banana' })}>
-              Update User
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-      fireEvent.click(screen.getByText('Update User'))
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-    })
-
-    test('useMutation hook sets data to the resolved response on success', async () => {
-      const result = { name: 'Banana' }
-
-      function User() {
-        const [updateUser, { data }] = api.endpoints.updateUser.useMutation()
-
-        return (
-          <div>
-            <div data-testid="result">{JSON.stringify(data)}</div>
-            <button onClick={() => updateUser({ name: 'Banana' })}>
-              Update User
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      fireEvent.click(screen.getByText('Update User'))
-      await waitFor(() =>
-        expect(screen.getByTestId('result').textContent).toBe(
-          JSON.stringify(result),
-        ),
-      )
-    })
-
-    test('useMutation hook callback returns various properties to handle the result', async () => {
-      const user = userEvent.setup()
-
-      function User() {
-        const [updateUser] = api.endpoints.updateUser.useMutation()
-        const [successMsg, setSuccessMsg] = useState('')
-        const [errMsg, setErrMsg] = useState('')
-        const [isAborted, setIsAborted] = useState(false)
-
-        const handleClick = async () => {
-          const res = updateUser({ name: 'Banana' })
-
-          // abort the mutation immediately to force an error
-          res.abort()
-          res
-            .unwrap()
-            .then((result) => {
-              setSuccessMsg(`Successfully updated user ${result.name}`)
-            })
-            .catch((err) => {
-              setErrMsg(
-                `An error has occurred updating user ${res.arg.originalArgs.name}`,
-              )
-              if (err.name === 'AbortError') {
-                setIsAborted(true)
-              }
-            })
-        }
-
-        return (
-          <div>
-            <button onClick={handleClick}>Update User and abort</button>
-            <div>{successMsg}</div>
-            <div>{errMsg}</div>
-            <div>{isAborted ? 'Request was aborted' : ''}</div>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      expect(screen.queryByText(/An error has occurred/i)).toBeNull()
-      expect(screen.queryByText(/Successfully updated user/i)).toBeNull()
-      expect(screen.queryByText('Request was aborted')).toBeNull()
-
-      await user.click(
-        screen.getByRole('button', { name: 'Update User and abort' }),
-      )
-      await screen.findByText('An error has occurred updating user Banana')
-      expect(screen.queryByText(/Successfully updated user/i)).toBeNull()
-      screen.getByText('Request was aborted')
-    })
-
-    test('useMutation return value contains originalArgs', async () => {
-      const { result } = renderHook(
-        () => api.endpoints.updateUser.useMutation(),
-        {
-          wrapper: storeRef.wrapper,
-        },
-      )
-      const arg = { name: 'Foo' }
-
-      const firstRenderResult = result.current
-      expect(firstRenderResult[1].originalArgs).toBe(undefined)
-      await act(async () => {
-        await firstRenderResult[0](arg)
-      })
-      const secondRenderResult = result.current
-      expect(firstRenderResult[1].originalArgs).toBe(undefined)
-      expect(secondRenderResult[1].originalArgs).toBe(arg)
-    })
-
-    test('`reset` sets state back to original state', async () => {
-      const user = userEvent.setup()
-
-      function User() {
-        const [updateUser, result] = api.endpoints.updateUser.useMutation()
-        return (
-          <>
-            <span>
-              {result.isUninitialized
-                ? 'isUninitialized'
-                : result.isSuccess
-                  ? 'isSuccess'
-                  : 'other'}
-            </span>
-            <span>{result.originalArgs?.name}</span>
-            <button onClick={() => updateUser({ name: 'Yay' })}>trigger</button>
-            <button onClick={result.reset}>reset</button>
-          </>
-        )
-      }
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await screen.findByText(/isUninitialized/i)
-      expect(screen.queryByText('Yay')).toBeNull()
-      expect(countObjectKeys(storeRef.store.getState().api.mutations)).toBe(0)
-
-      await user.click(screen.getByRole('button', { name: 'trigger' }))
-
-      await screen.findByText(/isSuccess/i)
-      expect(screen.queryByText('Yay')).not.toBeNull()
-      expect(countObjectKeys(storeRef.store.getState().api.mutations)).toBe(1)
-
-      await user.click(screen.getByRole('button', { name: 'reset' }))
-
-      await screen.findByText(/isUninitialized/i)
-      expect(screen.queryByText('Yay')).toBeNull()
-      expect(countObjectKeys(storeRef.store.getState().api.mutations)).toBe(0)
-    })
-  })
-
-  describe('usePrefetch', () => {
-    test('usePrefetch respects force arg', async () => {
-      const user = userEvent.setup()
-
-      const { usePrefetch } = api
-      const USER_ID = 4
-      function User() {
-        const { isFetching } = api.endpoints.getUser.useQuery(USER_ID)
-        const prefetchUser = usePrefetch('getUser', { force: true })
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button
-              onMouseEnter={() => prefetchUser(USER_ID, { force: true })}
-              data-testid="highPriority"
-            >
-              High priority action intent
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      // Resolve initial query
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      await user.hover(screen.getByTestId('highPriority'))
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        error: undefined,
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: true,
-        isSuccess: false,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.pending,
-      })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: false,
-        isSuccess: true,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.fulfilled,
-      })
-    })
-
-    test('usePrefetch does not make an additional request if already in the cache and force=false', async () => {
-      const user = userEvent.setup()
-
-      const { usePrefetch } = api
-      const USER_ID = 2
-
-      function User() {
-        // Load the initial query
-        const { isFetching } = api.endpoints.getUser.useQuery(USER_ID)
-        const prefetchUser = usePrefetch('getUser', { force: false })
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button
-              onMouseEnter={() => prefetchUser(USER_ID)}
-              data-testid="lowPriority"
-            >
-              Low priority user action intent
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      // Let the initial query resolve
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      // Try to prefetch what we just loaded
-      await user.hover(screen.getByTestId('lowPriority'))
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: false,
-        isSuccess: true,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.fulfilled,
-      })
-
-      await waitMs()
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: false,
-        isSuccess: true,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.fulfilled,
-      })
-    })
-
-    test('usePrefetch respects ifOlderThan when it evaluates to true', async () => {
-      const user = userEvent.setup()
-
-      const { usePrefetch } = api
-      const USER_ID = 47
-
-      function User() {
-        // Load the initial query
-        const { isFetching } = api.endpoints.getUser.useQuery(USER_ID)
-        const prefetchUser = usePrefetch('getUser', { ifOlderThan: 0.2 })
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button
-              onMouseEnter={() => prefetchUser(USER_ID)}
-              data-testid="lowPriority"
-            >
-              Low priority user action intent
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      // Wait 400ms, making it respect ifOlderThan
-      await waitMs(400)
-
-      // This should run the query being that we're past the threshold
-      await user.hover(screen.getByTestId('lowPriority'))
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: true,
-        isSuccess: false,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.pending,
-      })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual({
-        data: { name: 'Timmy' },
-        endpointName: 'getUser',
-        fulfilledTimeStamp: expect.any(Number),
-        isError: false,
-        isLoading: false,
-        isSuccess: true,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: QueryStatus.fulfilled,
-      })
-    })
-
-    test('usePrefetch returns the last success result when ifOlderThan evaluates to false', async () => {
-      const user = userEvent.setup()
-
-      const { usePrefetch } = api
-      const USER_ID = 2
-
-      function User() {
-        // Load the initial query
-        const { isFetching } = api.endpoints.getUser.useQuery(USER_ID)
-        const prefetchUser = usePrefetch('getUser', { ifOlderThan: 10 })
-
-        return (
-          <div>
-            <div data-testid="isFetching">{String(isFetching)}</div>
-            <button
-              onMouseEnter={() => prefetchUser(USER_ID)}
-              data-testid="lowPriority"
-            >
-              Low priority user action intent
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await waitFor(() =>
-        expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-      )
-      await waitMs()
-
-      // Get a snapshot of the last result
-      const latestQueryData = api.endpoints.getUser.select(USER_ID)(
-        storeRef.store.getState() as any,
-      )
-
-      await user.hover(screen.getByTestId('lowPriority'))
-
-      //  Serve up the result from the cache being that the condition wasn't met
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState() as any),
-      ).toEqual(latestQueryData)
-    })
-
-    test('usePrefetch executes a query even if conditions fail when the cache is empty', async () => {
-      const user = userEvent.setup()
-
-      const { usePrefetch } = api
-      const USER_ID = 2
-
-      function User() {
-        const prefetchUser = usePrefetch('getUser', { ifOlderThan: 10 })
-
-        return (
-          <div>
-            <button
-              onMouseEnter={() => prefetchUser(USER_ID)}
-              data-testid="lowPriority"
-            >
-              Low priority user action intent
-            </button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-
-      await user.hover(screen.getByTestId('lowPriority'))
-
-      expect(
-        api.endpoints.getUser.select(USER_ID)(storeRef.store.getState()),
-      ).toEqual({
-        endpointName: 'getUser',
-        isError: false,
-        isLoading: true,
-        isSuccess: false,
-        isUninitialized: false,
-        originalArgs: USER_ID,
-        requestId: expect.any(String),
-        startedTimeStamp: expect.any(Number),
-        status: 'pending',
-      })
-    })
-
-    it('should create subscription when hook mounts after prefetch', async () => {
-      const api = createApi({
-        baseQuery: async () => ({ data: 'test data' }),
-        endpoints: (build) => ({
-          getTest: build.query<string, void>({
-            query: () => '',
-          }),
-        }),
-      })
-      const storeRef = setupApiStore(api, undefined, { withoutListeners: true })
-
-      // 1. Prefetch data (no subscription)
-      await storeRef.store.dispatch(api.util.prefetch('getTest', undefined))
-
-      // Verify data is cached
-      await waitFor(() => {
-        let state = storeRef.store.getState()
-        expect(state.api.queries['getTest(undefined)']?.data).toBe('test data')
-      })
-
-      // Verify no subscription exists
-      const subscriptions = storeRef.store.dispatch(
-        api.internalActions.internal_getRTKQSubscriptions(),
-      ) as any
-      expect(subscriptions.getSubscriptionCount('getTest(undefined)')).toBe(0)
-
-      // 2. Mount component with useQuery hook
-      function TestComponent() {
-        const result = api.endpoints.getTest.useQuery()
-        return <div>{result.data}</div>
-      }
-
-      const { unmount } = render(<TestComponent />, {
-        wrapper: storeRef.wrapper,
-      })
-
-      // Wait for hook to initialize
-      await waitFor(() => {
-        // EXPECTED: Subscription should be created
-        expect(subscriptions.getSubscriptionCount('getTest(undefined)')).toBe(1)
-      })
-
-      // 3. Verify data is still available
-      let state = storeRef.store.getState()
-      expect(state.api.queries['getTest(undefined)']?.data).toBe('test data')
-
-      // 4. Unmount and verify subscription is removed
-      unmount()
-
-      await waitFor(() => {
-        expect(subscriptions.getSubscriptionCount('getTest(undefined)')).toBe(0)
-      })
-    })
-  })
-
-  describe('useQuery and useMutation invalidation behavior', () => {
-    const api = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-      tagTypes: ['User'],
-      endpoints: (build) => ({
-        checkSession: build.query<any, void>({
-          query: () => '/me',
-          providesTags: ['User'],
-        }),
-        login: build.mutation<any, any>({
-          query: () => ({ url: '/login', method: 'POST' }),
-          invalidatesTags: ['User'],
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, { ...actionsReducer })
-    test('initially failed useQueries that provide an tag will refetch after a mutation invalidates it', async () => {
-      const checkSessionData = { name: 'matt' }
-      server.use(
-        http.get(
-          'https://example.com/me',
-          () => {
-            return HttpResponse.json(null, { status: 500 })
-          },
-          { once: true },
-        ),
-        http.get('https://example.com/me', () => {
-          return HttpResponse.json(checkSessionData)
-        }),
-        http.post('https://example.com/login', () => {
-          return HttpResponse.json(null, { status: 200 })
-        }),
-      )
-      let data, isLoading, isError
-      function User() {
-        ;({ data, isError, isLoading } = api.endpoints.checkSession.useQuery())
-        const [login, { isLoading: loginLoading }] =
-          api.endpoints.login.useMutation()
-
-        return (
-          <div>
-            <div data-testid="isLoading">{String(isLoading)}</div>
-            <div data-testid="isError">{String(isError)}</div>
-            <div data-testid="user">{JSON.stringify(data)}</div>
-            <div data-testid="loginLoading">{String(loginLoading)}</div>
-            <button onClick={() => login(null)}>Login</button>
-          </div>
-        )
-      }
-
-      render(<User />, { wrapper: storeRef.wrapper })
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('isError').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('user').textContent).toBe(''),
-      )
-
-      fireEvent.click(screen.getByRole('button', { name: /Login/i }))
-
-      await waitFor(() =>
-        expect(screen.getByTestId('loginLoading').textContent).toBe('true'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('loginLoading').textContent).toBe('false'),
-      )
-      // login mutation will cause the original errored out query to refire, clearing the error and setting the user
-      await waitFor(() =>
-        expect(screen.getByTestId('isError').textContent).toBe('false'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('user').textContent).toBe(
-          JSON.stringify(checkSessionData),
-        ),
-      )
-
-      const { checkSession, login } = api.endpoints
-      expect(storeRef.store.getState().actions).toMatchSequence(
-        api.internalActions.middlewareRegistered.match,
-        checkSession.matchPending,
-        checkSession.matchRejected,
-        login.matchPending,
-        login.matchFulfilled,
-        checkSession.matchPending,
-        checkSession.matchFulfilled,
-      )
-    })
-  })
-})
-
-describe('hooks with createApi defaults set', () => {
-  const defaultApi = createApi({
-    baseQuery: async (arg: any) => {
-      await waitMs()
-      if ('amount' in arg?.body) {
-        amount += 1
-      }
-      return {
-        data: arg?.body
-          ? { ...arg.body, ...(amount ? { amount } : {}) }
-          : undefined,
-      }
-    },
-    endpoints: (build) => ({
-      getIncrementedAmount: build.query<any, void>({
-        query: () => ({
-          url: '',
-          body: {
-            amount,
-          },
-        }),
-      }),
-    }),
-    refetchOnMountOrArgChange: true,
-  })
-
-  const storeRef = setupApiStore(defaultApi)
-  test('useQuery hook respects refetchOnMountOrArgChange: true when set in createApi options', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery())
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    unmount()
-
-    function OtherUser() {
-      ;({ data, isFetching } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnMountOrArgChange: true,
-        }))
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<OtherUser />, { wrapper: storeRef.wrapper })
-    // Let's make sure we actually fetch, and we increment
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-  })
-
-  test('useQuery hook overrides default refetchOnMountOrArgChange: false that was set by createApi', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery())
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    let { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    unmount()
-
-    function OtherUser() {
-      ;({ data, isFetching } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnMountOrArgChange: false,
-        }))
-      return (
-        <div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<OtherUser />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-  })
-
-  describe('selectFromResult (query) behaviors', () => {
-    let startingId = 3
-    const initialPosts = [
-      { id: 1, name: 'A sample post', fetched_at: new Date().toUTCString() },
-      {
-        id: 2,
-        name: 'A post about rtk-query',
-        fetched_at: new Date().toUTCString(),
-      },
-    ]
-    let posts = [] as typeof initialPosts
-
-    beforeEach(() => {
-      startingId = 3
-      posts = [...initialPosts]
-
-      const handlers = [
-        http.get('https://example.com/posts', () => {
-          return HttpResponse.json(posts)
-        }),
-        http.put<{ id: string }, Partial<Post>>(
-          'https://example.com/post/:id',
-          async ({ request, params }) => {
-            const body = await request.json()
-            const id = Number(params.id)
-            const idx = posts.findIndex((post) => post.id === id)
-
-            const newPosts = posts.map((post, index) =>
-              index !== idx
-                ? post
-                : {
-                    ...body,
-                    id,
-                    name: body?.name || post.name,
-                    fetched_at: new Date().toUTCString(),
-                  },
-            )
-            posts = [...newPosts]
-
-            return HttpResponse.json(posts)
-          },
-        ),
-        http.post<any, Omit<Post, 'id'>>(
-          'https://example.com/post',
-          async ({ request }) => {
-            const body = await request.json()
-            const post = body
-            startingId += 1
-            posts.concat({
-              ...post,
-              fetched_at: new Date().toISOString(),
-              id: startingId,
-            })
-            return HttpResponse.json(posts)
-          },
-        ),
-      ]
-
-      server.use(...handlers)
-    })
-
-    interface Post {
-      id: number
-      name: string
-      fetched_at: string
-    }
-
-    type PostsResponse = Post[]
-
-    const api = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com/' }),
-      tagTypes: ['Posts'],
-      endpoints: (build) => ({
-        getPosts: build.query<PostsResponse, void>({
-          query: () => ({ url: 'posts' }),
-          providesTags: (result) =>
-            result ? result.map(({ id }) => ({ type: 'Posts', id })) : [],
-        }),
-        updatePost: build.mutation<Post, Partial<Post>>({
-          query: ({ id, ...body }) => ({
-            url: `post/${id}`,
-            method: 'PUT',
-            body,
-          }),
-          invalidatesTags: (result, error, { id }) => [{ type: 'Posts', id }],
-        }),
-        addPost: build.mutation<Post, Partial<Post>>({
-          query: (body) => ({
-            url: `post`,
-            method: 'POST',
-            body,
-          }),
-          invalidatesTags: ['Posts'],
-        }),
-      }),
-    })
-
-    const counterSlice = createSlice({
-      name: 'counter',
-      initialState: { count: 0 },
-      reducers: {
-        increment(state) {
-          state.count++
-        },
-      },
-    })
-
-    const storeRef = setupApiStore(api, {
-      counter: counterSlice.reducer,
-    })
-
-    test('useQueryState serves a deeply memoized value and does not rerender unnecessarily', async () => {
-      function Posts() {
-        const { data: posts } = api.endpoints.getPosts.useQuery()
-        const [addPost] = api.endpoints.addPost.useMutation()
-        return (
-          <div>
-            <button
-              data-testid="addPost"
-              onClick={() => addPost({ name: `some text ${posts?.length}` })}
-            >
-              Add random post
-            </button>
-          </div>
-        )
-      }
-
-      function SelectedPost() {
-        const { post } = api.endpoints.getPosts.useQueryState(undefined, {
-          selectFromResult: ({ data }) => ({
-            post: data?.find((post) => post.id === 1),
-          }),
-        })
-        getRenderCount = useRenderCounter()
-
-        /**
-         * Notes on the renderCount behavior
-         *
-         * We initialize at 0, and the first render will bump that 1 while post is `undefined`.
-         * Once the request resolves, it will be at 2. What we're looking for is to make sure that
-         * any requests that don't directly change the value of the selected item will have no impact
-         * on rendering.
-         */
-
-        return <div />
-      }
-
-      render(
-        <div>
-          <Posts />
-          <SelectedPost />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-
-      expect(getRenderCount()).toBe(1)
-
-      const addBtn = screen.getByTestId('addPost')
-
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-      // We fire off a few requests that would typically cause a rerender as JSON.parse() on a request would always be a new object.
-      fireEvent.click(addBtn)
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-      // Being that it didn't rerender, we can be assured that the behavior is correct
-    })
-
-    /**
-     * This test shows that even though a user can select a specific post, the fetching/loading flags
-     * will still cause rerenders for the query. This should show that if you're using selectFromResult,
-     * the 'performance' value comes with selecting _only_ the data.
-     */
-    test('useQuery with selectFromResult with all flags destructured rerenders like the default useQuery behavior', async () => {
-      function Posts() {
-        const { data: posts } = api.endpoints.getPosts.useQuery()
-        const [addPost] = api.endpoints.addPost.useMutation()
-        getRenderCount = useRenderCounter()
-        return (
-          <div>
-            <button
-              data-testid="addPost"
-              onClick={() =>
-                addPost({
-                  name: `some text ${posts?.length}`,
-                  fetched_at: new Date().toISOString(),
-                })
-              }
-            >
-              Add random post
-            </button>
-          </div>
-        )
-      }
-
-      function SelectedPost() {
-        getRenderCount = useRenderCounter()
-
-        const { post } = api.endpoints.getPosts.useQuery(undefined, {
-          selectFromResult: ({
-            data,
-            isUninitialized,
-            isLoading,
-            isFetching,
-            isSuccess,
-            isError,
-          }) => ({
-            post: data?.find((post) => post.id === 1),
-            isUninitialized,
-            isLoading,
-            isFetching,
-            isSuccess,
-            isError,
-          }),
-        })
-
-        return <div />
-      }
-
-      render(
-        <div>
-          <Posts />
-          <SelectedPost />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-      expect(getRenderCount()).toBe(2)
-
-      const addBtn = screen.getByTestId('addPost')
-
-      await waitFor(() => expect(getRenderCount()).toBe(3))
-
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(5))
-      fireEvent.click(addBtn)
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(7))
-    })
-
-    test('useQuery with selectFromResult option serves a deeply memoized value and does not rerender unnecessarily', async () => {
-      function Posts() {
-        const { data: posts } = api.endpoints.getPosts.useQuery()
-        const [addPost] = api.endpoints.addPost.useMutation()
-        return (
-          <div>
-            <button
-              data-testid="addPost"
-              onClick={() =>
-                addPost({
-                  name: `some text ${posts?.length}`,
-                  fetched_at: new Date().toISOString(),
-                })
-              }
-            >
-              Add random post
-            </button>
-          </div>
-        )
-      }
-
-      function SelectedPost() {
-        getRenderCount = useRenderCounter()
-        const { post } = api.endpoints.getPosts.useQuery(undefined, {
-          selectFromResult: ({ data }) => ({
-            post: data?.find((post) => post.id === 1),
-          }),
-        })
-
-        return <div />
-      }
-
-      render(
-        <div>
-          <Posts />
-          <SelectedPost />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-      expect(getRenderCount()).toBe(1)
-
-      const addBtn = screen.getByTestId('addPost')
-
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-      fireEvent.click(addBtn)
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-    })
-
-    test('useQuery with selectFromResult option serves a deeply memoized value, then ONLY updates when the underlying data changes', async () => {
-      let expectablePost: Post | undefined
-      function Posts() {
-        const { data: posts } = api.endpoints.getPosts.useQuery()
-        const [addPost] = api.endpoints.addPost.useMutation()
-        const [updatePost] = api.endpoints.updatePost.useMutation()
-
-        return (
-          <div>
-            <button
-              data-testid="addPost"
-              onClick={() =>
-                addPost({
-                  name: `some text ${posts?.length}`,
-                  fetched_at: new Date().toISOString(),
-                })
-              }
-            >
-              Add random post
-            </button>
-            <button
-              data-testid="updatePost"
-              onClick={() => updatePost({ id: 1, name: 'supercoooll!' })}
-            >
-              Update post
-            </button>
-          </div>
-        )
-      }
-
-      function SelectedPost() {
-        const { post } = api.endpoints.getPosts.useQuery(undefined, {
-          selectFromResult: ({ data }) => ({
-            post: data?.find((post) => post.id === 1),
-          }),
-        })
-        getRenderCount = useRenderCounter()
-
-        useEffect(() => {
-          expectablePost = post
-        }, [post])
-
-        return (
-          <div>
-            <div data-testid="postName">{post?.name}</div>
-          </div>
-        )
-      }
-
-      render(
-        <div>
-          <Posts />
-          <SelectedPost />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-      expect(getRenderCount()).toBe(1)
-
-      const addBtn = screen.getByTestId('addPost')
-      const updateBtn = screen.getByTestId('updatePost')
-
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-      fireEvent.click(addBtn)
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-
-      fireEvent.click(updateBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(3))
-      expect(expectablePost?.name).toBe('supercoooll!')
-
-      fireEvent.click(addBtn)
-      await waitFor(() => expect(getRenderCount()).toBe(3))
-    })
-
-    test('useQuery with selectFromResult option does not update when unrelated data in the store changes', async () => {
-      function Posts() {
-        const { posts } = api.endpoints.getPosts.useQuery(undefined, {
-          selectFromResult: ({ data }) => ({
-            // Intentionally use an unstable reference to force a rerender
-            posts: data?.filter((post) => post.name.includes('post')),
-          }),
-        })
-
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            {posts?.map((post) => <div key={post.id}>{post.name}</div>)}
-          </div>
-        )
-      }
-
-      function CounterButton() {
-        return (
-          <div
-            data-testid="incrementButton"
-            onClick={() =>
-              storeRef.store.dispatch(counterSlice.actions.increment())
-            }
-          >
-            Increment Count
-          </div>
-        )
-      }
-
-      render(
-        <div>
-          <Posts />
-          <CounterButton />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-
-      await waitFor(() => expect(getRenderCount()).toBe(2))
-
-      const incrementBtn = screen.getByTestId('incrementButton')
-      fireEvent.click(incrementBtn)
-      expect(getRenderCount()).toBe(2)
-    })
-
-    test('useQuery with selectFromResult option has a type error if the result is not an object', async () => {
-      function SelectedPost() {
-        const res2 = api.endpoints.getPosts.useQuery(undefined, {
-          // selectFromResult must always return an object
-          selectFromResult: ({ data }) => ({ size: data?.length ?? 0 }),
-        })
-
-        return (
-          <div>
-            <div data-testid="size2">{res2.size}</div>
-          </div>
-        )
-      }
-
-      render(
-        <div>
-          <SelectedPost />
-        </div>,
-        { wrapper: storeRef.wrapper },
-      )
-
-      expect(screen.getByTestId('size2').textContent).toBe('0')
-    })
-  })
-
-  describe('selectFromResult (mutation) behavior', () => {
-    const api = createApi({
-      baseQuery: async (arg: any) => {
-        await waitMs()
-        if ('amount' in arg?.body) {
-          amount += 1
-        }
-        return {
-          data: arg?.body
-            ? { ...arg.body, ...(amount ? { amount } : {}) }
-            : undefined,
-        }
-      },
-      endpoints: (build) => ({
-        increment: build.mutation<{ amount: number }, number>({
-          query: (amount) => ({
-            url: '',
-            method: 'POST',
-            body: {
-              amount,
-            },
-          }),
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, {
-      ...actionsReducer,
-    })
-
-    it('causes no more than one rerender when using selectFromResult with an empty object', async () => {
-      function Counter() {
-        const [increment] = api.endpoints.increment.useMutation({
-          selectFromResult: () => ({}),
-        })
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            <button
-              data-testid="incrementButton"
-              onClick={() => increment(1)}
-            ></button>
-          </div>
-        )
-      }
-
-      render(<Counter />, { wrapper: storeRef.wrapper })
-
-      expect(getRenderCount()).toBe(1)
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-      await waitMs(200) // give our baseQuery a chance to return
-      expect(getRenderCount()).toBe(2)
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-      await waitMs(200)
-      expect(getRenderCount()).toBe(3)
-
-      const { increment } = api.endpoints
-
-      expect(storeRef.store.getState().actions).toMatchSequence(
-        api.internalActions.middlewareRegistered.match,
-        increment.matchPending,
-        increment.matchFulfilled,
-        increment.matchPending,
-        api.internalActions.removeMutationResult.match,
-        increment.matchFulfilled,
-      )
-    })
-
-    it('causes rerenders when only selected data changes', async () => {
-      function Counter() {
-        const [increment, { data }] = api.endpoints.increment.useMutation({
-          selectFromResult: ({ data }) => ({ data }),
-        })
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            <button
-              data-testid="incrementButton"
-              onClick={() => increment(1)}
-            ></button>
-            <div data-testid="data">{JSON.stringify(data)}</div>
-          </div>
-        )
-      }
-
-      render(<Counter />, { wrapper: storeRef.wrapper })
-
-      expect(getRenderCount()).toBe(1)
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-      await waitFor(() =>
-        expect(screen.getByTestId('data').textContent).toBe(
-          JSON.stringify({ amount: 1 }),
-        ),
-      )
-      expect(getRenderCount()).toBe(3)
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-      await waitFor(() =>
-        expect(screen.getByTestId('data').textContent).toBe(
-          JSON.stringify({ amount: 2 }),
-        ),
-      )
-      expect(getRenderCount()).toBe(5)
-    })
-
-    it('causes the expected # of rerenders when NOT using selectFromResult', async () => {
-      function Counter() {
-        const [increment, data] = api.endpoints.increment.useMutation()
-        getRenderCount = useRenderCounter()
-
-        return (
-          <div>
-            <button
-              data-testid="incrementButton"
-              onClick={() => increment(1)}
-            ></button>
-            <div data-testid="status">{String(data.status)}</div>
-          </div>
-        )
-      }
-
-      render(<Counter />, { wrapper: storeRef.wrapper })
-
-      expect(getRenderCount()).toBe(1) // mount, uninitialized status in substate
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-
-      expect(getRenderCount()).toBe(2) // will be pending, isLoading: true,
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('pending'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('fulfilled'),
-      )
-      expect(getRenderCount()).toBe(3)
-
-      fireEvent.click(screen.getByTestId('incrementButton'))
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('pending'),
-      )
-      await waitFor(() =>
-        expect(screen.getByTestId('status').textContent).toBe('fulfilled'),
-      )
-      expect(getRenderCount()).toBe(5)
-    })
-
-    it('useMutation with selectFromResult option has a type error if the result is not an object', async () => {
-      function Counter() {
-        const [increment] = api.endpoints.increment.useMutation({
-          // selectFromResult must always return an object
-          // @ts-expect-error
-          selectFromResult: () => 42,
-        })
-
-        return (
-          <div>
-            <button
-              data-testid="incrementButton"
-              onClick={() => increment(1)}
-            ></button>
-          </div>
-        )
-      }
-
-      render(<Counter />, { wrapper: storeRef.wrapper })
-    })
-  })
-})
-
-describe('skip behavior', () => {
-  const uninitialized = {
-    status: QueryStatus.uninitialized,
-    refetch: expect.any(Function),
-    data: undefined,
-    isError: false,
-    isFetching: false,
-    isLoading: false,
-    isSuccess: false,
-    isUninitialized: true,
-  }
-
-  test('normal skip', async () => {
-    const { result, rerender } = renderHook(
-      ([arg, options]: Parameters<typeof api.endpoints.getUser.useQuery>) =>
-        api.endpoints.getUser.useQuery(arg, options),
-      {
-        wrapper: storeRef.wrapper,
-        initialProps: [1, { skip: true }],
-      },
-    )
-
-    expect(result.current).toEqual(uninitialized)
-    await waitMs(1)
-    expect(getSubscriptionCount('getUser(1)')).toBe(0)
-
-    rerender([1])
-
-    await act(async () => {
-      await waitForFakeTimer(150)
-    })
-
-    expect(result.current).toMatchObject({ status: QueryStatus.fulfilled })
-    await waitMs(1)
-    expect(getSubscriptionCount('getUser(1)')).toBe(1)
-
-    rerender([1, { skip: true }])
-
-    expect(result.current).toEqual({
-      ...uninitialized,
-      isSuccess: true,
-      currentData: undefined,
-      data: { name: 'Timmy' },
-    })
-    await waitMs(1)
-    expect(getSubscriptionCount('getUser(1)')).toBe(0)
-  })
-
-  test('skipToken', async () => {
-    const { result, rerender } = renderHook(
-      ([arg, options]: Parameters<typeof api.endpoints.getUser.useQuery>) =>
-        api.endpoints.getUser.useQuery(arg, options),
-      {
-        wrapper: storeRef.wrapper,
-        initialProps: [skipToken],
-      },
-    )
-
-    expect(result.current).toEqual(uninitialized)
-    await waitMs(1)
-
-    expect(getSubscriptionCount('getUser(1)')).toBe(0)
-    // also no subscription on `getUser(skipToken)` or similar:
-    expect(getSubscriptions().size).toBe(0)
-
-    rerender([1])
-
-    await act(async () => {
-      await waitForFakeTimer(150)
-    })
-
-    expect(result.current).toMatchObject({ status: QueryStatus.fulfilled })
-    await waitMs(1)
-    expect(getSubscriptionCount('getUser(1)')).toBe(1)
-    expect(getSubscriptions().size).toBe(1)
-
-    rerender([skipToken])
-
-    expect(result.current).toEqual({
-      ...uninitialized,
-      isSuccess: true,
-      currentData: undefined,
-      data: { name: 'Timmy' },
-    })
-    await waitMs(1)
-    expect(getSubscriptionCount('getUser(1)')).toBe(0)
-  })
-
-  test('skipToken does not break serializeQueryArgs', async () => {
-    const { result, rerender } = renderHook(
-      ([arg, options]: Parameters<
-        typeof api.endpoints.queryWithDeepArg.useQuery
-      >) => api.endpoints.queryWithDeepArg.useQuery(arg, options),
-      {
-        wrapper: storeRef.wrapper,
-        initialProps: [skipToken],
-      },
-    )
-
-    expect(result.current).toEqual(uninitialized)
-    await waitMs(1)
-
-    expect(getSubscriptionCount('nestedValue')).toBe(0)
-    // also no subscription on `getUser(skipToken)` or similar:
-    expect(getSubscriptions().size).toBe(0)
-
-    rerender([{ param: { nested: 'nestedValue' } }])
-
-    await act(async () => {
-      await waitForFakeTimer(150)
-    })
-
-    expect(result.current).toMatchObject({ status: QueryStatus.fulfilled })
-    await waitMs(1)
-
-    expect(getSubscriptionCount('nestedValue')).toBe(1)
-    expect(getSubscriptions().size).toBe(1)
-
-    rerender([skipToken])
-
-    expect(result.current).toEqual({
-      ...uninitialized,
-      isSuccess: true,
-      currentData: undefined,
-      data: {},
-    })
-    await waitMs(1)
-    expect(getSubscriptionCount('nestedValue')).toBe(0)
-  })
-
-  test('skipping a previously fetched query retains the existing value as `data`, but clears `currentData`', async () => {
-    const { result, rerender } = renderHook(
-      ([arg, options]: Parameters<typeof api.endpoints.getUser.useQuery>) =>
-        api.endpoints.getUser.useQuery(arg, options),
-      {
-        wrapper: storeRef.wrapper,
-        initialProps: [1],
-      },
-    )
-
-    await act(async () => {
-      await waitForFakeTimer(150)
-    })
-
-    // Normal fulfilled result, with both `data` and `currentData`
-    expect(result.current).toMatchObject({
-      status: QueryStatus.fulfilled,
-      isSuccess: true,
-      data: { name: 'Timmy' },
-      currentData: { name: 'Timmy' },
-    })
-
-    rerender([1, { skip: true }])
-
-    // After skipping, the query is "uninitialized", but still retains the last fetched `data`
-    // even though it's skipped. `currentData` is undefined, since that matches the current arg.
-    expect(result.current).toMatchObject({
-      status: QueryStatus.uninitialized,
-      isSuccess: true,
-      data: { name: 'Timmy' },
-      currentData: undefined,
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildInitiate.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildInitiate.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,306 +1,0 @@
-import { setupApiStore } from '@internal/tests/utils/helpers'
-import { createApi } from '../core'
-import type { SubscriptionSelectors } from '../core/buildMiddleware/types'
-import { fakeBaseQuery } from '../fakeBaseQuery'
-import { delay } from '@internal/utils'
-
-let calls = 0
-const api = createApi({
-  baseQuery: fakeBaseQuery(),
-  endpoints: (build) => ({
-    increment: build.query<number, void>({
-      async queryFn() {
-        const data = calls++
-        await Promise.resolve()
-        return { data }
-      },
-    }),
-    incrementKeep0: build.query<number, void>({
-      async queryFn() {
-        const data = calls++
-        await delay(10)
-        return { data }
-      },
-      keepUnusedDataFor: 0,
-    }),
-    failing: build.query<void, void>({
-      async queryFn() {
-        await Promise.resolve()
-        return { error: { status: 500, data: 'error' } }
-      },
-    }),
-  }),
-})
-
-const storeRef = setupApiStore(api)
-
-let getSubscriptions: SubscriptionSelectors['getSubscriptions']
-let isRequestSubscribed: SubscriptionSelectors['isRequestSubscribed']
-
-beforeEach(() => {
-  ;({ getSubscriptions, isRequestSubscribed } = storeRef.store.dispatch(
-    api.internalActions.internal_getRTKQSubscriptions(),
-  ) as unknown as SubscriptionSelectors)
-})
-
-test('multiple synchonrous initiate calls with pre-existing cache entry', async () => {
-  const { store, api } = storeRef
-  // seed the store
-  const firstValue = await store.dispatch(api.endpoints.increment.initiate())
-
-  expect(firstValue).toMatchObject({ data: 0, status: 'fulfilled' })
-
-  // dispatch another increment
-  const secondValuePromise = store.dispatch(api.endpoints.increment.initiate())
-  // and one with a forced refresh
-  const thirdValuePromise = store.dispatch(
-    api.endpoints.increment.initiate(undefined, { forceRefetch: true }),
-  )
-  // and another increment
-  const fourthValuePromise = store.dispatch(api.endpoints.increment.initiate())
-
-  const secondValue = await secondValuePromise
-  const thirdValue = await thirdValuePromise
-  const fourthValue = await fourthValuePromise
-
-  expect(secondValue).toMatchObject({
-    data: firstValue.data,
-    status: 'fulfilled',
-    requestId: firstValue.requestId,
-  })
-
-  expect(thirdValue).toMatchObject({ data: 1, status: 'fulfilled' })
-  expect(thirdValue.requestId).not.toBe(firstValue.requestId)
-  expect(fourthValue).toMatchObject({
-    data: thirdValue.data,
-    status: 'fulfilled',
-    requestId: thirdValue.requestId,
-  })
-})
-
-describe('calling initiate without a cache entry, with subscribe: false still returns correct values', () => {
-  test('successful query', async () => {
-    const { store, api } = storeRef
-    calls = 0
-    const promise = store.dispatch(
-      api.endpoints.increment.initiate(undefined, { subscribe: false }),
-    )
-    expect(isRequestSubscribed('increment(undefined)', promise.requestId)).toBe(
-      false,
-    )
-
-    await expect(promise).resolves.toMatchObject({
-      data: 0,
-      status: 'fulfilled',
-    })
-  })
-
-  test('successful query with keepUnusedDataFor: 0', async () => {
-    const { store, api } = storeRef
-    calls = 0
-    const promise = store.dispatch(
-      api.endpoints.incrementKeep0.initiate(undefined, { subscribe: false }),
-    )
-    expect(isRequestSubscribed('increment(undefined)', promise.requestId)).toBe(
-      false,
-    )
-
-    await expect(promise.unwrap()).resolves.toBe(0)
-  })
-
-  test('rejected query', async () => {
-    const { store, api } = storeRef
-    calls = 0
-    const promise = store.dispatch(
-      api.endpoints.failing.initiate(undefined, { subscribe: false }),
-    )
-    expect(isRequestSubscribed('failing(undefined)', promise.requestId)).toBe(
-      false,
-    )
-
-    await expect(promise).resolves.toMatchObject({
-      status: 'rejected',
-    })
-  })
-})
-
-describe('calling initiate should have resulting queryCacheKey match baseQuery queryCacheKey', () => {
-  const baseQuery = vi.fn(() => ({ data: 'success' }))
-  function getNewApi() {
-    return createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        query: build.query<void, { arg1: string; arg2: string }>({
-          query: (args) => `queryUrl/${args.arg1}/${args.arg2}`,
-        }),
-        mutation: build.mutation<void, { arg1: string; arg2: string }>({
-          query: () => 'mutationUrl',
-        }),
-      }),
-    })
-  }
-  let api = getNewApi()
-  beforeEach(() => {
-    baseQuery.mockClear()
-    api = getNewApi()
-  })
-
-  test('should be a string and matching on queries', () => {
-    const { store: storeApi } = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    const promise = storeApi.dispatch(
-      api.endpoints.query.initiate({ arg2: 'secondArg', arg1: 'firstArg' }),
-    )
-    expect(baseQuery).toHaveBeenCalledWith(
-      expect.any(String),
-      expect.objectContaining({
-        queryCacheKey: promise.queryCacheKey,
-      }),
-      undefined,
-    )
-  })
-
-  test('should be undefined and matching on mutations', () => {
-    const { store: storeApi } = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeApi.dispatch(
-      api.endpoints.mutation.initiate({ arg2: 'secondArg', arg1: 'firstArg' }),
-    )
-    expect(baseQuery).toHaveBeenCalledWith(
-      expect.any(String),
-      expect.objectContaining({
-        queryCacheKey: undefined,
-      }),
-      undefined,
-    )
-  })
-})
-
-describe('getRunningQueryThunk with multiple stores', () => {
-  test('should isolate running queries between different store instances using the same API', async () => {
-    // Create a shared API instance
-    const sharedApi = createApi({
-      baseQuery: fakeBaseQuery(),
-      endpoints: (build) => ({
-        testQuery: build.query<string, string>({
-          async queryFn(arg) {
-            // Add delay to ensure queries are running when we check
-            await new Promise((resolve) => setTimeout(resolve, 50))
-            return { data: `result-${arg}` }
-          },
-        }),
-      }),
-    })
-
-    // Create two separate stores using the same API instance
-    const store1 = setupApiStore(sharedApi, undefined, {
-      withoutTestLifecycles: true,
-    }).store
-    const store2 = setupApiStore(sharedApi, undefined, {
-      withoutTestLifecycles: true,
-    }).store
-
-    // Start queries on both stores
-    const query1Promise = store1.dispatch(
-      sharedApi.endpoints.testQuery.initiate('arg1'),
-    )
-    const query2Promise = store2.dispatch(
-      sharedApi.endpoints.testQuery.initiate('arg2'),
-    )
-
-    // Verify that getRunningQueryThunk returns the correct query for each store
-    const runningQuery1 = store1.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg1'),
-    )
-    const runningQuery2 = store2.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg2'),
-    )
-
-    // Each store should only see its own running query
-    expect(runningQuery1).toBeDefined()
-    expect(runningQuery2).toBeDefined()
-    expect(runningQuery1?.requestId).toBe(query1Promise.requestId)
-    expect(runningQuery2?.requestId).toBe(query2Promise.requestId)
-
-    // Cross-store queries should not be visible
-    const crossQuery1 = store1.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg2'),
-    )
-    const crossQuery2 = store2.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg1'),
-    )
-
-    expect(crossQuery1).toBeUndefined()
-    expect(crossQuery2).toBeUndefined()
-
-    // Wait for queries to complete
-    await Promise.all([query1Promise, query2Promise])
-
-    // After completion, getRunningQueryThunk should return undefined for both stores
-    const completedQuery1 = store1.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg1'),
-    )
-    const completedQuery2 = store2.dispatch(
-      sharedApi.util.getRunningQueryThunk('testQuery', 'arg2'),
-    )
-
-    expect(completedQuery1).toBeUndefined()
-    expect(completedQuery2).toBeUndefined()
-  })
-
-  test('should handle same query args on different stores independently', async () => {
-    // Create a shared API instance
-    const sharedApi = createApi({
-      baseQuery: fakeBaseQuery(),
-      endpoints: (build) => ({
-        sameArgQuery: build.query<string, string>({
-          async queryFn(arg) {
-            await new Promise((resolve) => setTimeout(resolve, 50))
-            return { data: `result-${arg}-${Math.random()}` }
-          },
-        }),
-      }),
-    })
-
-    // Create two separate stores
-    const store1 = setupApiStore(sharedApi, undefined, {
-      withoutTestLifecycles: true,
-    }).store
-    const store2 = setupApiStore(sharedApi, undefined, {
-      withoutTestLifecycles: true,
-    }).store
-
-    // Start the same query on both stores
-    const sameArg = 'shared-arg'
-    const query1Promise = store1.dispatch(
-      sharedApi.endpoints.sameArgQuery.initiate(sameArg),
-    )
-    const query2Promise = store2.dispatch(
-      sharedApi.endpoints.sameArgQuery.initiate(sameArg),
-    )
-
-    // Both stores should see their own running query with the same cache key
-    const runningQuery1 = store1.dispatch(
-      sharedApi.util.getRunningQueryThunk('sameArgQuery', sameArg),
-    )
-    const runningQuery2 = store2.dispatch(
-      sharedApi.util.getRunningQueryThunk('sameArgQuery', sameArg),
-    )
-
-    expect(runningQuery1).toBeDefined()
-    expect(runningQuery2).toBeDefined()
-    expect(runningQuery1?.requestId).toBe(query1Promise.requestId)
-    expect(runningQuery2?.requestId).toBe(query2Promise.requestId)
-
-    // The request IDs should be different even though the cache key is the same
-    expect(runningQuery1?.requestId).not.toBe(runningQuery2?.requestId)
-
-    // But the cache keys should be the same
-    expect(runningQuery1?.queryCacheKey).toBe(runningQuery2?.queryCacheKey)
-
-    // Wait for completion
-    await Promise.all([query1Promise, query2Promise])
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildMiddleware.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildMiddleware.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query'
-
-const baseQuery = (args?: any) => ({ data: args })
-
-const api = createApi({
-  baseQuery,
-  tagTypes: ['Banana', 'Bread'],
-  endpoints: (build) => ({
-    getBanana: build.query<unknown, number>({
-      query(id) {
-        return { url: `banana/${id}` }
-      },
-      providesTags: ['Banana'],
-    }),
-    getBananas: build.query<unknown, void>({
-      query() {
-        return { url: 'bananas' }
-      },
-      providesTags: ['Banana'],
-    }),
-    getBread: build.query<unknown, number>({
-      query(id) {
-        return { url: `bread/${id}` }
-      },
-      providesTags: ['Bread'],
-    }),
-  }),
-})
-
-describe('type tests', () => {
-  it('should allow for an array of string TagTypes', () => {
-    api.util.invalidateTags(['Banana', 'Bread'])
-  })
-
-  it('should allow for an array of full TagTypes descriptions', () => {
-    api.util.invalidateTags([{ type: 'Banana' }, { type: 'Bread', id: 1 }])
-  })
-
-  it('should allow for a mix of full descriptions as well as plain strings', () => {
-    api.util.invalidateTags(['Banana', { type: 'Bread', id: 1 }])
-  })
-
-  it('should error when using non-existing TagTypes', () => {
-    // @ts-expect-error
-    api.util.invalidateTags(['Missing Tag'])
-  })
-
-  it('should error when using non-existing TagTypes in the full format', () => {
-    // @ts-expect-error
-    api.util.invalidateTags([{ type: 'Missing' }])
-  })
-
-  it('should allow pre-fetching for an endpoint that takes an arg', () => {
-    api.util.prefetch('getBanana', 5, { force: true })
-    api.util.prefetch('getBanana', 5, { force: false })
-    api.util.prefetch('getBanana', 5, { ifOlderThan: false })
-    api.util.prefetch('getBanana', 5, { ifOlderThan: 30 })
-    api.util.prefetch('getBanana', 5, {})
-  })
-
-  it('should error when pre-fetching with the incorrect arg type', () => {
-    // @ts-expect-error arg should be number, not string
-    api.util.prefetch('getBanana', '5', { force: true })
-  })
-
-  it('should allow pre-fetching for an endpoint with a void arg', () => {
-    api.util.prefetch('getBananas', undefined, { force: true })
-    api.util.prefetch('getBananas', undefined, { force: false })
-    api.util.prefetch('getBananas', undefined, { ifOlderThan: false })
-    api.util.prefetch('getBananas', undefined, { ifOlderThan: 30 })
-    api.util.prefetch('getBananas', undefined, {})
-  })
-
-  it('should error when pre-fetching with a defined arg when expecting void', () => {
-    // @ts-expect-error arg should be void, not number
-    api.util.prefetch('getBananas', 5, { force: true })
-  })
-
-  it('should error when pre-fetching for an incorrect endpoint name', () => {
-    // @ts-expect-error endpoint name does not exist
-    api.util.prefetch('getPomegranates', undefined, { force: true })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildMiddleware.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildMiddleware.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,266 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query'
-import { delay } from 'msw'
-import { actionsReducer, setupApiStore } from '../../tests/utils/helpers'
-import { vi } from 'vitest'
-
-const baseQuery = (args?: any) => ({ data: args })
-const api = createApi({
-  baseQuery,
-  tagTypes: ['Banana', 'Bread'],
-  endpoints: (build) => ({
-    getBanana: build.query<unknown, number>({
-      query(id) {
-        return { url: `banana/${id}` }
-      },
-      providesTags: ['Banana'],
-    }),
-    getBananas: build.query<unknown, void>({
-      query() {
-        return { url: 'bananas' }
-      },
-      providesTags: ['Banana'],
-    }),
-    getBread: build.query<unknown, number>({
-      query(id) {
-        return { url: `bread/${id}` }
-      },
-      providesTags: ['Bread'],
-    }),
-    invalidateFruit: build.mutation({
-      query: (fruit?: 'Banana' | 'Bread' | null) => ({
-        url: `invalidate/fruit/${fruit || ''}`,
-      }),
-      invalidatesTags(result, error, arg) {
-        return [arg]
-      },
-    }),
-  }),
-})
-const { getBanana, getBread, invalidateFruit } = api.endpoints
-
-const storeRef = setupApiStore(api, {
-  ...actionsReducer,
-})
-
-it('invalidates the specified tags', async () => {
-  await storeRef.store.dispatch(getBanana.initiate(1))
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    getBanana.matchPending,
-    getBanana.matchFulfilled,
-  )
-
-  await storeRef.store.dispatch(api.util.invalidateTags(['Banana', 'Bread']))
-
-  // Slight pause to let the middleware run and such
-  await delay(20)
-
-  const firstSequence = [
-    api.internalActions.middlewareRegistered.match,
-    getBanana.matchPending,
-    getBanana.matchFulfilled,
-    api.util.invalidateTags.match,
-    getBanana.matchPending,
-    getBanana.matchFulfilled,
-  ]
-  expect(storeRef.store.getState().actions).toMatchSequence(...firstSequence)
-
-  await storeRef.store.dispatch(getBread.initiate(1))
-  await storeRef.store.dispatch(api.util.invalidateTags([{ type: 'Bread' }]))
-
-  await delay(20)
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    ...firstSequence,
-    getBread.matchPending,
-    getBread.matchFulfilled,
-    api.util.invalidateTags.match,
-    getBread.matchPending,
-    getBread.matchFulfilled,
-  )
-})
-
-it('invalidates tags correctly when null or undefined are provided as tags', async () => {
-  await storeRef.store.dispatch(getBanana.initiate(1))
-  await storeRef.store.dispatch(
-    api.util.invalidateTags([undefined, null, 'Banana']),
-  )
-
-  // Slight pause to let the middleware run and such
-  await delay(20)
-
-  const apiActions = [
-    api.internalActions.middlewareRegistered.match,
-    getBanana.matchPending,
-    getBanana.matchFulfilled,
-    api.util.invalidateTags.match,
-    getBanana.matchPending,
-    getBanana.matchFulfilled,
-  ]
-
-  expect(storeRef.store.getState().actions).toMatchSequence(...apiActions)
-})
-
-it.each([
-  {
-    tags: [undefined, null, 'Bread'] as Parameters<
-      typeof api.util.invalidateTags
-    >['0'],
-  },
-  { tags: [undefined, null] },
-  { tags: [] },
-])(
-  'does not invalidate with tags=$tags if no query matches',
-  async ({ tags }) => {
-    await storeRef.store.dispatch(getBanana.initiate(1))
-    await storeRef.store.dispatch(api.util.invalidateTags(tags))
-
-    // Slight pause to let the middleware run and such
-    await delay(20)
-
-    const apiActions = [
-      api.internalActions.middlewareRegistered.match,
-      getBanana.matchPending,
-      getBanana.matchFulfilled,
-      api.util.invalidateTags.match,
-    ]
-
-    expect(storeRef.store.getState().actions).toMatchSequence(...apiActions)
-  },
-)
-
-it.each([
-  { mutationArg: 'Bread' as 'Bread' | null | undefined },
-  { mutationArg: undefined },
-  { mutationArg: null },
-])(
-  'does not invalidate queries when a mutation with tags=[$mutationArg] runs and does not match anything',
-  async ({ mutationArg }) => {
-    await storeRef.store.dispatch(getBanana.initiate(1))
-    await storeRef.store.dispatch(invalidateFruit.initiate(mutationArg))
-
-    // Slight pause to let the middleware run and such
-    await delay(20)
-
-    const apiActions = [
-      api.internalActions.middlewareRegistered.match,
-      getBanana.matchPending,
-      getBanana.matchFulfilled,
-      invalidateFruit.matchPending,
-      invalidateFruit.matchFulfilled,
-    ]
-
-    expect(storeRef.store.getState().actions).toMatchSequence(...apiActions)
-  },
-)
-
-it('correctly stringifies subscription state and dispatches subscriptionsUpdated', async () => {
-  // Create a fresh store for this test to avoid interference
-  const testStoreRef = setupApiStore(
-    api,
-    {
-      ...actionsReducer,
-    },
-    { withoutListeners: true },
-  )
-
-  // Start multiple subscriptions
-  const subscription1 = testStoreRef.store.dispatch(
-    getBanana.initiate(1, {
-      subscriptionOptions: { pollingInterval: 1000 },
-    }),
-  )
-  const subscription2 = testStoreRef.store.dispatch(
-    getBanana.initiate(2, {
-      subscriptionOptions: { refetchOnFocus: true },
-    }),
-  )
-  const subscription3 = testStoreRef.store.dispatch(
-    api.endpoints.getBananas.initiate(),
-  )
-
-  // Wait for the subscriptions to be established
-  await Promise.all([subscription1, subscription2, subscription3])
-
-  // Wait for the subscription sync timer (500ms + buffer)
-  await delay(600)
-
-  // Check the final subscription state in the store
-  const finalState = testStoreRef.store.getState()
-  const subscriptionState = finalState[api.reducerPath].subscriptions
-
-  // Should have subscriptions for getBanana(1), getBanana(2), and getBananas()
-  expect(subscriptionState).toMatchObject({
-    'getBanana(1)': {
-      [subscription1.requestId]: { pollingInterval: 1000 },
-    },
-    'getBanana(2)': {
-      [subscription2.requestId]: { refetchOnFocus: true },
-    },
-    'getBananas(undefined)': {
-      [subscription3.requestId]: {},
-    },
-  })
-
-  // Verify the subscription entries have the expected structure
-  expect(Object.keys(subscriptionState)).toHaveLength(3)
-  expect(subscriptionState['getBanana(1)']?.[subscription1.requestId]).toEqual({
-    pollingInterval: 1000,
-  })
-  expect(subscriptionState['getBanana(2)']?.[subscription2.requestId]).toEqual({
-    refetchOnFocus: true,
-  })
-  expect(
-    subscriptionState['getBananas(undefined)']?.[subscription3.requestId],
-  ).toEqual({})
-})
-
-it('does not leak subscription state between multiple stores using the same API instance (SSR scenario)', async () => {
-  vi.useFakeTimers()
-  // Simulate SSR: create API once at module level
-  const sharedApi = createApi({
-    baseQuery: (args?: any) => ({ data: args }),
-    tagTypes: ['Test'],
-    endpoints: (build) => ({
-      getTest: build.query<unknown, number>({
-        query(id) {
-          return { url: `test/${id}` }
-        },
-      }),
-    }),
-  })
-
-  // Create first store (simulating first SSR request)
-  const store1Ref = setupApiStore(sharedApi, {}, { withoutListeners: true })
-
-  // Add subscription in store1
-  const sub1 = store1Ref.store.dispatch(
-    sharedApi.endpoints.getTest.initiate(1, {
-      subscriptionOptions: { pollingInterval: 1000 },
-    }),
-  )
-  vi.advanceTimersByTime(10)
-  await sub1
-
-  // Wait for subscription sync (500ms + buffer)
-  vi.advanceTimersByTime(600)
-
-  // Verify store1 has the subscription
-  const store1SubscriptionSelectors = store1Ref.store.dispatch(
-    sharedApi.internalActions.internal_getRTKQSubscriptions(),
-  ) as any
-  const store1InternalSubs = store1SubscriptionSelectors.getSubscriptions()
-  expect(store1InternalSubs.size).toBe(1)
-
-  // Create second store (simulating second SSR request)
-  const store2Ref = setupApiStore(sharedApi, {}, { withoutListeners: true })
-
-  // Check subscriptions via internal action
-  const store2SubscriptionSelectors = store2Ref.store.dispatch(
-    sharedApi.internalActions.internal_getRTKQSubscriptions(),
-  ) as any
-
-  const store2InternalSubs = store2SubscriptionSelectors.getSubscriptions()
-
-  expect(store2InternalSubs.size).toBe(0)
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildSelector.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildSelector.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-
-import { configureStore, createSelector } from '@reduxjs/toolkit'
-
-describe('type tests', () => {
-  test('buildSelector type test', () => {
-    interface Todo {
-      userId: number
-      id: number
-      title: string
-      completed: boolean
-    }
-
-    type Todos = Array<Todo>
-
-    const exampleApi = createApi({
-      reducerPath: 'api',
-      baseQuery: fetchBaseQuery({
-        baseUrl: 'https://jsonplaceholder.typicode.com',
-      }),
-      endpoints: (build) => ({
-        getTodos: build.query<Todos, string>({
-          query: () => '/todos',
-        }),
-      }),
-    })
-
-    const exampleQuerySelector = exampleApi.endpoints.getTodos.select('/')
-
-    const todosSelector = createSelector(
-      [exampleQuerySelector],
-      (queryState) => {
-        return queryState?.data?.[0] ?? ({} as Todo)
-      },
-    )
-
-    const firstTodoTitleSelector = createSelector(
-      [todosSelector],
-      (todo) => todo?.title,
-    )
-
-    const store = configureStore({
-      reducer: {
-        [exampleApi.reducerPath]: exampleApi.reducer,
-        other: () => 1,
-      },
-    })
-
-    const todoTitle = firstTodoTitleSelector(store.getState())
-
-    // This only compiles if we carried the types through
-    const upperTitle = todoTitle.toUpperCase()
-
-    expectTypeOf(upperTitle).toBeString()
-  })
-
-  test('selectCachedArgsForQuery type test', () => {
-    interface Todo {
-      userId: number
-      id: number
-      title: string
-      completed: boolean
-    }
-
-    type Todos = Array<Todo>
-
-    const exampleApi = createApi({
-      reducerPath: 'api',
-      baseQuery: fetchBaseQuery({
-        baseUrl: 'https://jsonplaceholder.typicode.com',
-      }),
-      endpoints: (build) => ({
-        getTodos: build.query<Todos, string>({
-          query: () => '/todos',
-        }),
-        getInfiniteTodos: build.infiniteQuery<Todos, string, number>({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            maxPages: 3,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-          },
-          query({ pageParam }) {
-            return `/todos?page=${pageParam}`
-          },
-        }),
-      }),
-    })
-
-    const store = configureStore({
-      reducer: {
-        [exampleApi.reducerPath]: exampleApi.reducer,
-        other: () => 1,
-      },
-    })
-
-    expectTypeOf(
-      exampleApi.util.selectCachedArgsForQuery(store.getState(), 'getTodos'),
-    ).toEqualTypeOf<string[]>()
-    expectTypeOf(
-      exampleApi.util.selectCachedArgsForQuery(
-        store.getState(),
-        'getInfiniteTodos',
-      ),
-    ).toEqualTypeOf<string[]>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildSlice.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildSlice.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,239 +1,0 @@
-import { createSlice, createAction } from '@reduxjs/toolkit'
-import type { CombinedState } from '@reduxjs/toolkit/query'
-import { createApi } from '@reduxjs/toolkit/query'
-import { delay } from 'msw'
-import { setupApiStore } from '../../tests/utils/helpers'
-
-let shouldApiResponseSuccess = true
-
-const rehydrateAction = createAction<{ api: CombinedState<any, any, any> }>(
-  'persist/REHYDRATE',
-)
-
-const baseQuery = (args?: any) => ({ data: args })
-const api = createApi({
-  baseQuery,
-  tagTypes: ['SUCCEED', 'FAILED'],
-  endpoints: (build) => ({
-    getUser: build.query<{ url: string; success: boolean }, number>({
-      query(id) {
-        return { url: `user/${id}`, success: shouldApiResponseSuccess }
-      },
-      providesTags: (result) => (result?.success ? ['SUCCEED'] : ['FAILED']),
-    }),
-  }),
-  extractRehydrationInfo(action, { reducerPath }) {
-    if (rehydrateAction.match(action)) {
-      return action.payload?.[reducerPath]
-    }
-    return undefined
-  },
-})
-const { getUser } = api.endpoints
-
-const authSlice = createSlice({
-  name: 'auth',
-  initialState: {
-    token: '1234',
-  },
-  reducers: {
-    setToken(state, action) {
-      state.token = action.payload
-    },
-  },
-})
-
-const storeRef = setupApiStore(api, { auth: authSlice.reducer })
-
-describe('buildSlice', () => {
-  beforeEach(() => {
-    shouldApiResponseSuccess = true
-  })
-
-  it('only resets the api state when resetApiState is dispatched', async () => {
-    storeRef.store.dispatch({ type: 'unrelated' }) // trigger "registered middleware" into place
-    const initialState = storeRef.store.getState()
-
-    await storeRef.store.dispatch(
-      getUser.initiate(1, { subscriptionOptions: { pollingInterval: 10 } }),
-    )
-
-    const initialQueryState = {
-      api: {
-        config: {
-          focused: true,
-          invalidationBehavior: 'delayed',
-          keepUnusedDataFor: 60,
-          middlewareRegistered: true,
-          online: true,
-          reducerPath: 'api',
-          refetchOnFocus: false,
-          refetchOnMountOrArgChange: false,
-          refetchOnReconnect: false,
-        },
-        mutations: {},
-        provided: expect.any(Object),
-        queries: {
-          'getUser(1)': {
-            data: {
-              success: true,
-              url: 'user/1',
-            },
-            endpointName: 'getUser',
-            fulfilledTimeStamp: expect.any(Number),
-            originalArgs: 1,
-            requestId: expect.any(String),
-            startedTimeStamp: expect.any(Number),
-            status: 'fulfilled',
-          },
-        },
-        // Filled some time later
-        subscriptions: {},
-      },
-      auth: {
-        token: '1234',
-      },
-    }
-
-    expect(storeRef.store.getState()).toEqual(initialQueryState)
-
-    storeRef.store.dispatch(api.util.resetApiState())
-
-    expect(storeRef.store.getState()).toEqual(initialState)
-  })
-
-  it('replaces previous tags with new provided tags', async () => {
-    await storeRef.store.dispatch(getUser.initiate(1))
-
-    expect(
-      api.util.selectInvalidatedBy(storeRef.store.getState(), ['SUCCEED']),
-    ).toHaveLength(1)
-    expect(
-      api.util.selectInvalidatedBy(storeRef.store.getState(), ['FAILED']),
-    ).toHaveLength(0)
-
-    shouldApiResponseSuccess = false
-
-    storeRef.store.dispatch(getUser.initiate(1)).refetch()
-
-    await delay(10)
-
-    expect(
-      api.util.selectInvalidatedBy(storeRef.store.getState(), ['SUCCEED']),
-    ).toHaveLength(0)
-    expect(
-      api.util.selectInvalidatedBy(storeRef.store.getState(), ['FAILED']),
-    ).toHaveLength(1)
-  })
-
-  it('handles extractRehydrationInfo correctly', async () => {
-    await storeRef.store.dispatch(getUser.initiate(1))
-    await storeRef.store.dispatch(getUser.initiate(2))
-
-    const stateWithUser = storeRef.store.getState()
-
-    storeRef.store.dispatch(api.util.resetApiState())
-
-    storeRef.store.dispatch(rehydrateAction({ api: stateWithUser.api }))
-
-    const rehydratedState = storeRef.store.getState()
-    expect(rehydratedState).toEqual(stateWithUser)
-  })
-})
-
-describe('`merge` callback', () => {
-  const baseQuery = (args?: any) => ({ data: args })
-
-  interface Todo {
-    id: string
-    text: string
-  }
-
-  it('Calls `merge` once there is existing data, and allows mutations of cache state', async () => {
-    let mergeCalled = false
-    let queryFnCalls = 0
-    const todoTexts = ['A', 'B', 'C', 'D']
-
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getTodos: build.query<Todo[], void>({
-          async queryFn() {
-            const text = todoTexts[queryFnCalls]
-            return { data: [{ id: `${queryFnCalls++}`, text }] }
-          },
-          merge(currentCacheValue, responseData) {
-            mergeCalled = true
-            currentCacheValue.push(...responseData)
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    const selectTodoEntry = api.endpoints.getTodos.select()
-
-    const res = storeRef.store.dispatch(api.endpoints.getTodos.initiate())
-    await res
-    expect(mergeCalled).toBe(false)
-    const todoEntry1 = selectTodoEntry(storeRef.store.getState())
-    expect(todoEntry1.data).toEqual([{ id: '0', text: 'A' }])
-
-    res.refetch()
-
-    await delay(10)
-
-    expect(mergeCalled).toBe(true)
-    const todoEntry2 = selectTodoEntry(storeRef.store.getState())
-
-    expect(todoEntry2.data).toEqual([
-      { id: '0', text: 'A' },
-      { id: '1', text: 'B' },
-    ])
-  })
-
-  it('Allows returning a different value from `merge`', async () => {
-    let firstQueryFnCall = true
-
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getTodos: build.query<Todo[], void>({
-          async queryFn() {
-            const item = firstQueryFnCall
-              ? { id: '0', text: 'A' }
-              : { id: '1', text: 'B' }
-            firstQueryFnCall = false
-            return { data: [item] }
-          },
-          merge(currentCacheValue, responseData) {
-            return responseData
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    const selectTodoEntry = api.endpoints.getTodos.select()
-
-    const res = storeRef.store.dispatch(api.endpoints.getTodos.initiate())
-    await res
-
-    const todoEntry1 = selectTodoEntry(storeRef.store.getState())
-    expect(todoEntry1.data).toEqual([{ id: '0', text: 'A' }])
-
-    res.refetch()
-
-    await delay(10)
-
-    const todoEntry2 = selectTodoEntry(storeRef.store.getState())
-
-    expect(todoEntry2.data).toEqual([{ id: '1', text: 'B' }])
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/buildThunks.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/buildThunks.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,420 +1,0 @@
-import { configureStore } from '@reduxjs/toolkit'
-import { createApi } from '@reduxjs/toolkit/query/react'
-import { renderHook, waitFor } from '@testing-library/react'
-import {
-  actionsReducer,
-  setupApiStore,
-  withProvider,
-} from '../../tests/utils/helpers'
-import type { BaseQueryApi } from '../baseQueryTypes'
-
-describe('baseline thunk behavior', () => {
-  test('handles a non-async baseQuery without error', async () => {
-    const baseQuery = (args?: any) => ({ data: args })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getUser: build.query<unknown, number>({
-          query(id) {
-            return { url: `user/${id}` }
-          },
-        }),
-      }),
-    })
-    const { getUser } = api.endpoints
-    const store = configureStore({
-      reducer: {
-        [api.reducerPath]: api.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api.middleware),
-    })
-
-    const promise = store.dispatch(getUser.initiate(1))
-    const { data } = await promise
-
-    expect(data).toEqual({
-      url: 'user/1',
-    })
-
-    const storeResult = getUser.select(1)(store.getState())
-    expect(storeResult).toEqual({
-      data: {
-        url: 'user/1',
-      },
-      endpointName: 'getUser',
-      isError: false,
-      isLoading: false,
-      isSuccess: true,
-      isUninitialized: false,
-      originalArgs: 1,
-      requestId: expect.any(String),
-      status: 'fulfilled',
-      startedTimeStamp: expect.any(Number),
-      fulfilledTimeStamp: expect.any(Number),
-    })
-  })
-
-  test('passes the extraArgument property to the baseQueryApi', async () => {
-    const baseQuery = (_args: any, api: BaseQueryApi) => ({ data: api.extra })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getUser: build.query<unknown, void>({
-          query: () => '',
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: {
-        [api.reducerPath]: api.reducer,
-      },
-      middleware: (gDM) =>
-        gDM({ thunk: { extraArgument: 'cakes' } }).concat(api.middleware),
-    })
-    const { getUser } = api.endpoints
-    const { data } = await store.dispatch(getUser.initiate())
-    expect(data).toBe('cakes')
-  })
-
-  test('only triggers transformResponse when a query method is actually used', async () => {
-    const baseQuery = (args?: any) => ({ data: args })
-    const transformResponse = vi.fn((response: any) => response)
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        hasQuery: build.query<string, string>({
-          query: (arg) => 'test',
-          transformResponse,
-        }),
-        hasQueryFn: build.query<string, void>(
-          // @ts-expect-error
-          {
-            queryFn: () => ({ data: 'test' }),
-            transformResponse,
-          },
-        ),
-      }),
-    })
-
-    const store = configureStore({
-      reducer: {
-        [api.reducerPath]: api.reducer,
-      },
-      middleware: (gDM) =>
-        gDM({ thunk: { extraArgument: 'cakes' } }).concat(api.middleware),
-    })
-
-    await store.dispatch(api.util.upsertQueryData('hasQuery', 'a', 'test'))
-    expect(transformResponse).not.toHaveBeenCalled()
-
-    transformResponse.mockReset()
-
-    await store.dispatch(api.endpoints.hasQuery.initiate('b'))
-    expect(transformResponse).toHaveBeenCalledTimes(1)
-
-    transformResponse.mockReset()
-
-    await store.dispatch(api.endpoints.hasQueryFn.initiate())
-    expect(transformResponse).not.toHaveBeenCalled()
-  })
-})
-
-describe('re-triggering behavior on arg change', () => {
-  const api = createApi({
-    baseQuery: () => ({ data: null }),
-    endpoints: (build) => ({
-      getUser: build.query<any, any>({
-        query: (obj) => obj,
-      }),
-    }),
-  })
-  const { getUser } = api.endpoints
-  const store = configureStore({
-    reducer: { [api.reducerPath]: api.reducer },
-    middleware: (gDM) => gDM().concat(api.middleware),
-  })
-
-  const spy = vi.spyOn(getUser, 'initiate')
-  beforeEach(() => void spy.mockClear())
-
-  test('re-trigger on literal value change', async () => {
-    const { result, rerender } = renderHook(
-      (props) => getUser.useQuery(props),
-      {
-        wrapper: withProvider(store),
-        initialProps: 5,
-      },
-    )
-
-    await waitFor(() => {
-      expect(result.current.status).not.toBe('pending')
-    })
-
-    expect(spy).toHaveBeenCalledOnce()
-
-    for (let x = 1; x < 3; x++) {
-      rerender(6)
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledTimes(2)
-    }
-
-    for (let x = 1; x < 3; x++) {
-      rerender(7)
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledTimes(3)
-    }
-  })
-
-  test('only re-trigger on shallow-equal arg change', async () => {
-    const { result, rerender } = renderHook(
-      (props) => getUser.useQuery(props),
-      {
-        wrapper: withProvider(store),
-        initialProps: { name: 'Bob', likes: 'iceCream' },
-      },
-    )
-
-    await waitFor(() => {
-      expect(result.current.status).not.toBe('pending')
-    })
-    expect(spy).toHaveBeenCalledOnce()
-
-    for (let x = 1; x < 3; x++) {
-      rerender({ name: 'Bob', likes: 'waffles' })
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledTimes(2)
-    }
-
-    for (let x = 1; x < 3; x++) {
-      rerender({ name: 'Alice', likes: 'waffles' })
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledTimes(3)
-    }
-  })
-
-  test('re-triggers every time on deeper value changes', async () => {
-    const name = 'Tim'
-
-    const { result, rerender } = renderHook(
-      (props) => getUser.useQuery(props),
-      {
-        wrapper: withProvider(store),
-        initialProps: { person: { name } },
-      },
-    )
-
-    await waitFor(() => {
-      expect(result.current.status).not.toBe('pending')
-    })
-    expect(spy).toHaveBeenCalledOnce()
-
-    for (let x = 1; x < 3; x++) {
-      rerender({ person: { name: name + x } })
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledTimes(x + 1)
-    }
-  })
-
-  test('do not re-trigger if the order of keys change while maintaining the same values', async () => {
-    const { result, rerender } = renderHook(
-      (props) => getUser.useQuery(props),
-      {
-        wrapper: withProvider(store),
-        initialProps: { name: 'Tim', likes: 'Bananas' },
-      },
-    )
-
-    await waitFor(() => {
-      expect(result.current.status).not.toBe('pending')
-    })
-    expect(spy).toHaveBeenCalledOnce()
-
-    for (let x = 1; x < 3; x++) {
-      rerender({ likes: 'Bananas', name: 'Tim' })
-      await waitFor(() => {
-        expect(result.current.status).not.toBe('pending')
-      })
-      expect(spy).toHaveBeenCalledOnce()
-    }
-  })
-})
-
-describe('prefetch', () => {
-  const baseQuery = () => ({ data: { name: 'Test User' } })
-
-  const api = createApi({
-    baseQuery,
-    tagTypes: ['User'],
-    endpoints: (build) => ({
-      getUser: build.query<any, number>({
-        query: (id) => ({ url: `user/${id}` }),
-        providesTags: (result, error, id) => [{ type: 'User', id }],
-      }),
-      updateUser: build.mutation<any, { id: number; name: string }>({
-        query: ({ id, name }) => ({
-          url: `user/${id}`,
-          method: 'PUT',
-          body: { name },
-        }),
-        invalidatesTags: (result, error, { id }) => [{ type: 'User', id }],
-      }),
-    }),
-    keepUnusedDataFor: 0.1, // 100ms for faster test cleanup
-  })
-
-  let storeRef = setupApiStore(
-    api,
-    { ...actionsReducer },
-    {
-      withoutListeners: true,
-    },
-  )
-
-  let getSubscriptions: () => Map<string, any>
-  let getSubscriptionCount: (queryCacheKey: string) => number
-
-  beforeEach(() => {
-    storeRef = setupApiStore(
-      api,
-      { ...actionsReducer },
-      {
-        withoutListeners: true,
-      },
-    )
-    // Get subscription helpers
-    const subscriptionSelectors = storeRef.store.dispatch(
-      api.internalActions.internal_getRTKQSubscriptions(),
-    ) as any
-    getSubscriptions = subscriptionSelectors.getSubscriptions
-    getSubscriptionCount = subscriptionSelectors.getSubscriptionCount
-  })
-
-  describe('subscription behavior', () => {
-    it('prefetch should NOT create a subscription', async () => {
-      const queryCacheKey = 'getUser(1)'
-
-      // Initially no subscriptions
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-
-      // Dispatch prefetch
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, {}))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-    })
-
-    it('prefetch allows cache cleanup after keepUnusedDataFor', async () => {
-      const queryCacheKey = 'getUser(1)'
-
-      // Prefetch the data
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, {}))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      // Verify data is in cache
-      let state = api.endpoints.getUser.select(1)(storeRef.store.getState())
-      expect(state.data).toEqual({ name: 'Test User' })
-
-      // Wait longer than keepUnusedDataFor
-      await new Promise((resolve) => setTimeout(resolve, 150))
-
-      state = api.endpoints.getUser.select(1)(storeRef.store.getState())
-      expect(state.status).toBe('uninitialized')
-      expect(state.data).toBeUndefined()
-    })
-
-    it('prefetch does NOT trigger refetch on tag invalidation', async () => {
-      // Prefetch user 1
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, {}))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      // Verify data is in cache
-      let state = api.endpoints.getUser.select(1)(storeRef.store.getState())
-      expect(state.data).toEqual({ name: 'Test User' })
-
-      // Invalidate the tag by updating the user
-      await storeRef.store.dispatch(
-        api.endpoints.updateUser.initiate({ id: 1, name: 'Updated' }),
-      )
-
-      // Since there's no subscription, the cache entry gets removed on invalidation
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      // Cache entry should be cleared (no subscription to keep it alive)
-      state = api.endpoints.getUser.select(1)(storeRef.store.getState())
-      expect(state.status).toBe('uninitialized')
-      expect(state.data).toBeUndefined()
-    })
-
-    it('multiple prefetches do not accumulate subscriptions', async () => {
-      const queryCacheKey = 'getUser(1)'
-
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-
-      // First prefetch
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, {}))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-
-      // Second prefetch (force refetch)
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, { force: true }))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      // Still no subscriptions
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-
-      // Third prefetch
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, { force: true }))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-    })
-
-    it('prefetch followed by regular query should work correctly', async () => {
-      const queryCacheKey = 'getUser(1)'
-
-      // Prefetch first
-      storeRef.store.dispatch(api.util.prefetch('getUser', 1, {}))
-      await Promise.all(
-        storeRef.store.dispatch(api.util.getRunningQueriesThunk()),
-      )
-
-      // No subscription from prefetch
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-
-      // Now create a real subscription via initiate
-      const promise = storeRef.store.dispatch(api.endpoints.getUser.initiate(1))
-
-      // Should have 1 subscription from the initiate call
-      expect(getSubscriptionCount(queryCacheKey)).toBe(1)
-
-      // Unsubscribe
-      promise.unsubscribe()
-
-      // Subscription should be cleaned up
-      expect(getSubscriptionCount(queryCacheKey)).toBe(0)
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/cacheCollection.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/cacheCollection.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,231 +1,0 @@
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-import { configureStore } from '@reduxjs/toolkit'
-import { vi } from 'vitest'
-import type { Middleware, Reducer } from 'redux'
-import {
-  THIRTY_TWO_BIT_MAX_INT,
-  THIRTY_TWO_BIT_MAX_TIMER_SECONDS,
-} from '../core/buildMiddleware/cacheCollection'
-import { countObjectKeys } from '../utils/countObjectKeys'
-
-beforeAll(() => {
-  vi.useFakeTimers()
-})
-
-const onCleanup = vi.fn()
-
-beforeEach(() => {
-  onCleanup.mockClear()
-})
-
-test(`query: await cleanup, defaults`, async () => {
-  const { store, api } = storeForApi(
-    createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-      endpoints: (build) => ({
-        query: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    }),
-  )
-
-  const promise = store.dispatch(api.endpoints.query.initiate('arg'))
-  await promise
-  promise.unsubscribe()
-  vi.advanceTimersByTime(59000)
-  expect(onCleanup).not.toHaveBeenCalled()
-  vi.advanceTimersByTime(2000)
-  expect(onCleanup).toHaveBeenCalled()
-})
-
-test(`query: await cleanup, keepUnusedDataFor set`, async () => {
-  const { store, api } = storeForApi(
-    createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-      endpoints: (build) => ({
-        query: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-      keepUnusedDataFor: 29,
-    }),
-  )
-
-  const promise = store.dispatch(api.endpoints.query.initiate('arg'))
-  await promise
-  promise.unsubscribe()
-  vi.advanceTimersByTime(28000)
-  expect(onCleanup).not.toHaveBeenCalled()
-  vi.advanceTimersByTime(2000)
-  expect(onCleanup).toHaveBeenCalled()
-})
-
-test(`query: handles large keepUnuseDataFor values over 32-bit ms`, async () => {
-  const { store, api } = storeForApi(
-    createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-      endpoints: (build) => ({
-        query: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-      keepUnusedDataFor: THIRTY_TWO_BIT_MAX_TIMER_SECONDS - 10,
-    }),
-  )
-
-  const promise = store.dispatch(api.endpoints.query.initiate('arg'))
-  await promise
-  promise.unsubscribe()
-
-  // Shouldn't have been called right away
-  vi.advanceTimersByTime(1000)
-  expect(onCleanup).not.toHaveBeenCalled()
-
-  // Shouldn't have been called any time in the next few minutes
-  vi.advanceTimersByTime(1_000_000)
-  expect(onCleanup).not.toHaveBeenCalled()
-
-  // _Should_ be called _wayyyy_ in the future (like 24.8 days from now)
-  vi.advanceTimersByTime(THIRTY_TWO_BIT_MAX_TIMER_SECONDS * 1000),
-    expect(onCleanup).toHaveBeenCalled()
-})
-
-describe(`query: await cleanup, keepUnusedDataFor set`, () => {
-  const { store, api } = storeForApi(
-    createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-      endpoints: (build) => ({
-        query: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-        query2: build.query<unknown, string>({
-          query: () => '/success',
-          keepUnusedDataFor: 35,
-        }),
-        query3: build.query<unknown, string>({
-          query: () => '/success',
-          keepUnusedDataFor: 0,
-        }),
-        query4: build.query<unknown, string>({
-          query: () => '/success',
-          keepUnusedDataFor: Infinity,
-        }),
-      }),
-      keepUnusedDataFor: 29,
-    }),
-  )
-
-  test('global keepUnusedDataFor', async () => {
-    const promise = store.dispatch(api.endpoints.query.initiate('arg'))
-    await promise
-    promise.unsubscribe()
-    vi.advanceTimersByTime(28000)
-    expect(onCleanup).not.toHaveBeenCalled()
-    vi.advanceTimersByTime(2000)
-    expect(onCleanup).toHaveBeenCalled()
-  })
-
-  test('endpoint keepUnusedDataFor', async () => {
-    const promise = store.dispatch(api.endpoints.query2.initiate('arg'))
-    await promise
-    promise.unsubscribe()
-
-    vi.advanceTimersByTime(34000)
-    expect(onCleanup).not.toHaveBeenCalled()
-    vi.advanceTimersByTime(2000)
-    expect(onCleanup).toHaveBeenCalled()
-  })
-
-  test('endpoint keepUnusedDataFor: 0 ', async () => {
-    expect(onCleanup).not.toHaveBeenCalled()
-    const promise = store.dispatch(api.endpoints.query3.initiate('arg'))
-    await promise
-    promise.unsubscribe()
-    expect(onCleanup).not.toHaveBeenCalled()
-    vi.advanceTimersByTime(1)
-    expect(onCleanup).toHaveBeenCalled()
-  })
-
-  test('endpoint keepUnusedDataFor: Infinity', async () => {
-    expect(onCleanup).not.toHaveBeenCalled()
-    store.dispatch(api.endpoints.query4.initiate('arg')).unsubscribe()
-    expect(onCleanup).not.toHaveBeenCalled()
-    vi.advanceTimersByTime(THIRTY_TWO_BIT_MAX_INT)
-    expect(onCleanup).not.toHaveBeenCalled()
-  })
-})
-
-describe('resetApiState cleanup', () => {
-  test('resetApiState aborts multiple running queries and mutations', async () => {
-    const { store, api } = storeForApi(
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        endpoints: (build) => ({
-          query1: build.query<unknown, string>({
-            query: () => '/success',
-          }),
-          query2: build.query<unknown, string>({
-            query: () => '/success',
-          }),
-          mutation: build.mutation<unknown, string>({
-            query: () => ({
-              url: '/success',
-              method: 'POST',
-            }),
-          }),
-        }),
-      }),
-    )
-
-    // Start multiple queries and a mutation
-    const queryPromise1 = store.dispatch(api.endpoints.query1.initiate('arg1'))
-    const queryPromise2 = store.dispatch(api.endpoints.query2.initiate('arg2'))
-    const mutationPromise = store.dispatch(
-      api.endpoints.mutation.initiate('arg'),
-    )
-
-    // Spy on abort methods
-    queryPromise1.abort = vi.fn(queryPromise1.abort)
-    queryPromise2.abort = vi.fn(queryPromise2.abort)
-    mutationPromise.abort = vi.fn(mutationPromise.abort)
-
-    // Dispatch resetApiState
-    store.dispatch(api.util.resetApiState())
-
-    // Verify all aborts were called
-    expect(queryPromise1.abort).toHaveBeenCalled()
-    expect(queryPromise2.abort).toHaveBeenCalled()
-    expect(mutationPromise.abort).toHaveBeenCalled()
-  })
-})
-
-function storeForApi<
-  A extends {
-    reducerPath: 'api'
-    reducer: Reducer<any, any>
-    middleware: Middleware
-    util: { resetApiState(): any }
-  },
->(api: A) {
-  const store = configureStore({
-    reducer: { api: api.reducer },
-    middleware: (gdm) =>
-      gdm({ serializableCheck: false, immutableCheck: false }).concat(
-        api.middleware,
-      ),
-    enhancers: (gde) =>
-      gde({
-        autoBatch: false,
-      }),
-  })
-  let hadQueries = false
-  store.subscribe(() => {
-    const queryState = store.getState().api.queries
-    if (hadQueries && countObjectKeys(queryState) === 0) {
-      onCleanup()
-    }
-    hadQueries = hadQueries || countObjectKeys(queryState) > 0
-  })
-  return { api, store }
-}
Index: de_modules/@reduxjs/toolkit/src/query/tests/cacheLifecycle.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/cacheLifecycle.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import type { FetchBaseQueryMeta } from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: () => ({}),
-})
-
-describe('type tests', () => {
-  test(`mutation: await cacheDataLoaded, await cacheEntryRemoved (success)`, () => {
-    const extended = api.injectEndpoints({
-      overrideExisting: true,
-      endpoints: (build) => ({
-        injected: build.mutation<number, string>({
-          query: () => '/success',
-          async onCacheEntryAdded(
-            arg,
-            { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-          ) {
-            const firstValue = await cacheDataLoaded
-
-            expectTypeOf(firstValue).toMatchTypeOf<{
-              data: number
-              meta?: FetchBaseQueryMeta
-            }>()
-          },
-        }),
-      }),
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/cacheLifecycle.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/cacheLifecycle.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,708 +1,0 @@
-import {
-  DEFAULT_DELAY_MS,
-  fakeTimerWaitFor,
-  setupApiStore,
-} from '@internal/tests/utils/helpers'
-import type { QueryActionCreatorResult } from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-beforeAll(() => {
-  vi.useFakeTimers()
-})
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: () => ({}),
-})
-const storeRef = setupApiStore(api)
-
-const onNewCacheEntry = vi.fn()
-const gotFirstValue = vi.fn()
-const onCleanup = vi.fn()
-const onCatch = vi.fn()
-
-beforeEach(() => {
-  onNewCacheEntry.mockClear()
-  gotFirstValue.mockClear()
-  onCleanup.mockClear()
-  onCatch.mockClear()
-})
-
-describe.each([['query'], ['mutation']] as const)(
-  'generic cases: %s',
-  (type) => {
-    test(`${type}: new cache entry only`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/success',
-            onCacheEntryAdded(arg, { dispatch, getState }) {
-              onNewCacheEntry(arg)
-            },
-          }),
-        }),
-      })
-      storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-    })
-
-    test(`${type}: await cacheEntryRemoved`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          // Lying to TS here
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/success',
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved },
-            ) {
-              onNewCacheEntry(arg)
-              await cacheEntryRemoved
-              onCleanup()
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-      expect(onCleanup).not.toHaveBeenCalled()
-
-      await promise
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(59000)
-        expect(onCleanup).not.toHaveBeenCalled()
-        await vi.advanceTimersByTimeAsync(2000)
-      }
-
-      expect(onCleanup).toHaveBeenCalled()
-    })
-
-    test(`${type}: await cacheDataLoaded, await cacheEntryRemoved (success)`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<number, string>({
-            query: () => '/success',
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-            ) {
-              onNewCacheEntry(arg)
-              const firstValue = await cacheDataLoaded
-              gotFirstValue(firstValue)
-              await cacheEntryRemoved
-              onCleanup()
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-
-      expect(gotFirstValue).not.toHaveBeenCalled()
-      expect(onCleanup).not.toHaveBeenCalled()
-
-      await fakeTimerWaitFor(() => {
-        expect(gotFirstValue).toHaveBeenCalled()
-      })
-      expect(gotFirstValue).toHaveBeenCalledWith({
-        data: { value: 'success' },
-        meta: {
-          request: expect.any(Request),
-          response: expect.any(Object), // Response is not available in jest env
-        },
-      })
-      expect(onCleanup).not.toHaveBeenCalled()
-
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(59000)
-        expect(onCleanup).not.toHaveBeenCalled()
-        await vi.advanceTimersByTimeAsync(2000)
-      }
-
-      expect(onCleanup).toHaveBeenCalled()
-    })
-
-    test(`${type}: await cacheDataLoaded, await cacheEntryRemoved (cacheDataLoaded never resolves)`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/error', // we will initiate only once and that one time will be an error -> cacheDataLoaded will never resolve
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-            ) {
-              onNewCacheEntry(arg)
-              // this will wait until cacheEntryRemoved, then reject => nothing past that line will execute
-              // but since this special "cacheEntryRemoved" rejection is handled outside, there will be no
-              // uncaught rejection error
-              const firstValue = await cacheDataLoaded
-              gotFirstValue(firstValue)
-              await cacheEntryRemoved
-              onCleanup()
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(120000)
-      }
-      expect(gotFirstValue).not.toHaveBeenCalled()
-      expect(onCleanup).not.toHaveBeenCalled()
-    })
-
-    test(`${type}: try { await cacheDataLoaded }, await cacheEntryRemoved (cacheDataLoaded never resolves)`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/error', // we will initiate only once and that one time will be an error -> cacheDataLoaded will never resolve
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-            ) {
-              onNewCacheEntry(arg)
-
-              try {
-                // this will wait until cacheEntryRemoved, then reject => nothing else in this try..catch block will execute
-                const firstValue = await cacheDataLoaded
-                gotFirstValue(firstValue)
-              } catch (e) {
-                onCatch(e)
-              }
-              await cacheEntryRemoved
-              onCleanup()
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-      await promise
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(59000)
-        expect(onCleanup).not.toHaveBeenCalled()
-        await vi.advanceTimersByTimeAsync(2000)
-      }
-
-      expect(onCleanup).toHaveBeenCalled()
-      expect(gotFirstValue).not.toHaveBeenCalled()
-      expect(onCatch.mock.calls[0][0]).toMatchObject({
-        message: 'Promise never resolved before cacheEntryRemoved.',
-      })
-    })
-
-    test(`${type}: try { await cacheDataLoaded, await cacheEntryRemoved } (cacheDataLoaded never resolves)`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/error', // we will initiate only once and that one time will be an error -> cacheDataLoaded will never resolve
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-            ) {
-              onNewCacheEntry(arg)
-
-              try {
-                // this will wait until cacheEntryRemoved, then reject => nothing else in this try..catch block will execute
-                const firstValue = await cacheDataLoaded
-                gotFirstValue(firstValue)
-                // cleanup in this scenario only needs to be done for stuff within this try..catch block - totally valid scenario
-                await cacheEntryRemoved
-                onCleanup()
-              } catch (e) {
-                onCatch(e)
-              }
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-      await promise
-
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(59000)
-        expect(onCleanup).not.toHaveBeenCalled()
-        await vi.advanceTimersByTimeAsync(2000)
-      }
-      expect(onCleanup).not.toHaveBeenCalled()
-      expect(gotFirstValue).not.toHaveBeenCalled()
-      expect(onCatch.mock.calls[0][0]).toMatchObject({
-        message: 'Promise never resolved before cacheEntryRemoved.',
-      })
-    })
-
-    test(`${type}: try { await cacheDataLoaded } finally { await cacheEntryRemoved } (cacheDataLoaded never resolves)`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/error', // we will initiate only once and that one time will be an error -> cacheDataLoaded will never resolve
-            async onCacheEntryAdded(
-              arg,
-              { dispatch, getState, cacheEntryRemoved, cacheDataLoaded },
-            ) {
-              onNewCacheEntry(arg)
-
-              try {
-                // this will wait until cacheEntryRemoved, then reject => nothing else in this try..catch block will execute
-                const firstValue = await cacheDataLoaded
-                gotFirstValue(firstValue)
-              } catch (e) {
-                onCatch(e)
-              } finally {
-                await cacheEntryRemoved
-                onCleanup()
-              }
-            },
-          }),
-        }),
-      })
-      const promise = storeRef.store.dispatch(
-        extended.endpoints.injected.initiate('arg'),
-      )
-
-      expect(onNewCacheEntry).toHaveBeenCalledWith('arg')
-
-      await promise
-      if (type === 'mutation') {
-        promise.reset()
-      } else {
-        ;(promise as unknown as QueryActionCreatorResult<any>).unsubscribe()
-      }
-      await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-      if (type === 'query') {
-        await vi.advanceTimersByTimeAsync(59000)
-        expect(onCleanup).not.toHaveBeenCalled()
-        await vi.advanceTimersByTimeAsync(2000)
-      }
-      expect(onCleanup).toHaveBeenCalled()
-      expect(gotFirstValue).not.toHaveBeenCalled()
-      expect(onCatch.mock.calls[0][0]).toMatchObject({
-        message: 'Promise never resolved before cacheEntryRemoved.',
-      })
-    })
-  },
-)
-
-test(`query: getCacheEntry`, async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, string>({
-        query: () => '/success',
-        async onCacheEntryAdded(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            cacheEntryRemoved,
-            cacheDataLoaded,
-          },
-        ) {
-          snapshot(getCacheEntry())
-          gotFirstValue(await cacheDataLoaded)
-          snapshot(getCacheEntry())
-          await cacheEntryRemoved
-          snapshot(getCacheEntry())
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-  await promise
-  promise.unsubscribe()
-
-  await fakeTimerWaitFor(() => {
-    expect(gotFirstValue).toHaveBeenCalled()
-  })
-
-  await vi.advanceTimersByTimeAsync(120000)
-
-  expect(snapshot).toHaveBeenCalledTimes(3)
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    data: {
-      value: 'success',
-    },
-    endpointName: 'injected',
-    fulfilledTimeStamp: expect.any(Number),
-    isError: false,
-    isLoading: false,
-    isSuccess: true,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'fulfilled',
-  })
-  expect(snapshot.mock.calls[2][0]).toMatchObject({
-    isError: false,
-    isLoading: false,
-    isSuccess: false,
-    isUninitialized: true,
-    status: 'uninitialized',
-  })
-})
-
-test(`mutation: getCacheEntry`, async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.mutation<unknown, string>({
-        query: () => '/success',
-        async onCacheEntryAdded(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            cacheEntryRemoved,
-            cacheDataLoaded,
-          },
-        ) {
-          snapshot(getCacheEntry())
-          gotFirstValue(await cacheDataLoaded)
-          snapshot(getCacheEntry())
-          await cacheEntryRemoved
-          snapshot(getCacheEntry())
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-  await fakeTimerWaitFor(() => {
-    expect(gotFirstValue).toHaveBeenCalled()
-  })
-
-  promise.reset()
-  await vi.advanceTimersByTimeAsync(DEFAULT_DELAY_MS)
-
-  expect(snapshot).toHaveBeenCalledTimes(3)
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    data: {
-      value: 'success',
-    },
-    endpointName: 'injected',
-    fulfilledTimeStamp: expect.any(Number),
-    isError: false,
-    isLoading: false,
-    isSuccess: true,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'fulfilled',
-  })
-  expect(snapshot.mock.calls[2][0]).toMatchObject({
-    isError: false,
-    isLoading: false,
-    isSuccess: false,
-    isUninitialized: true,
-    status: 'uninitialized',
-  })
-})
-
-test('query: updateCachedData', async () => {
-  const trackCalls = vi.fn()
-
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<{ value: string }, string>({
-        query: () => '/success',
-        async onCacheEntryAdded(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            updateCachedData,
-            cacheEntryRemoved,
-            cacheDataLoaded,
-          },
-        ) {
-          expect(getCacheEntry().data).toEqual(undefined)
-          // calling `updateCachedData` when there is no data yet should not do anything
-          updateCachedData((draft) => {
-            draft.value = 'TEST'
-            trackCalls()
-          })
-          expect(trackCalls).not.toHaveBeenCalled()
-          expect(getCacheEntry().data).toEqual(undefined)
-
-          gotFirstValue(await cacheDataLoaded)
-
-          expect(getCacheEntry().data).toEqual({ value: 'success' })
-          updateCachedData((draft) => {
-            draft.value = 'TEST'
-            trackCalls()
-          })
-          expect(trackCalls).toHaveBeenCalledOnce()
-          expect(getCacheEntry().data).toEqual({ value: 'TEST' })
-
-          await cacheEntryRemoved
-
-          expect(getCacheEntry().data).toEqual(undefined)
-          // calling `updateCachedData` when there is no data any more should not do anything
-          updateCachedData((draft) => {
-            draft.value = 'TEST2'
-            trackCalls()
-          })
-          expect(trackCalls).toHaveBeenCalledOnce()
-          expect(getCacheEntry().data).toEqual(undefined)
-
-          onCleanup()
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-  await promise
-  promise.unsubscribe()
-
-  await fakeTimerWaitFor(() => {
-    expect(gotFirstValue).toHaveBeenCalled()
-  })
-
-  await vi.advanceTimersByTimeAsync(61000)
-
-  await fakeTimerWaitFor(() => {
-    expect(onCleanup).toHaveBeenCalled()
-  })
-})
-
-test('updateCachedData - infinite query', async () => {
-  const trackCalls = vi.fn()
-
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      infiniteInjected: build.infiniteQuery<{ value: string }, string, number>({
-        query: () => '/success',
-        infiniteQueryOptions: {
-          initialPageParam: 1,
-          getNextPageParam: (
-            lastPage,
-            allPages,
-            lastPageParam,
-            allPageParams,
-          ) => lastPageParam + 1,
-        },
-        async onCacheEntryAdded(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            updateCachedData,
-            cacheEntryRemoved,
-            cacheDataLoaded,
-          },
-        ) {
-          expect(getCacheEntry().data).toEqual(undefined)
-          // calling `updateCachedData` when there is no data yet should not do anything
-          updateCachedData((draft) => {
-            draft.pages = [{ value: 'TEST' }]
-            draft.pageParams = [1]
-            trackCalls()
-          })
-          expect(trackCalls).not.toHaveBeenCalled()
-          expect(getCacheEntry().data).toEqual(undefined)
-
-          gotFirstValue(await cacheDataLoaded)
-
-          expect(getCacheEntry().data).toEqual({
-            pages: [{ value: 'success' }],
-            pageParams: [1],
-          })
-          updateCachedData((draft) => {
-            draft.pages = [{ value: 'TEST' }]
-            draft.pageParams = [1]
-            trackCalls()
-          })
-          expect(trackCalls).toHaveBeenCalledOnce()
-          expect(getCacheEntry().data).toEqual({
-            pages: [{ value: 'TEST' }],
-            pageParams: [1],
-          })
-
-          await cacheEntryRemoved
-
-          expect(getCacheEntry().data).toEqual(undefined)
-          // calling `updateCachedData` when there is no data any more should not do anything
-          updateCachedData((draft) => {
-            draft.pages = [{ value: 'TEST' }, { value: 'TEST2' }]
-            draft.pageParams = [1, 2]
-            trackCalls()
-          })
-          expect(trackCalls).toHaveBeenCalledOnce()
-          expect(getCacheEntry().data).toEqual(undefined)
-
-          onCleanup()
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.infiniteInjected.initiate('arg'),
-  )
-  await promise
-  promise.unsubscribe()
-
-  await fakeTimerWaitFor(() => {
-    expect(gotFirstValue).toHaveBeenCalled()
-  })
-
-  await vi.advanceTimersByTimeAsync(61000)
-
-  await fakeTimerWaitFor(() => {
-    expect(onCleanup).toHaveBeenCalled()
-  })
-})
-
-test('dispatching further actions does not trigger another lifecycle', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, void>({
-        query: () => '/success',
-        async onCacheEntryAdded() {
-          onNewCacheEntry()
-        },
-      }),
-    }),
-  })
-  await storeRef.store.dispatch(extended.endpoints.injected.initiate())
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-
-  await storeRef.store.dispatch(extended.endpoints.injected.initiate())
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-
-  await storeRef.store.dispatch(
-    extended.endpoints.injected.initiate(undefined, { forceRefetch: true }),
-  )
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-})
-
-test('dispatching a query initializer with `subscribe: false` does also start a lifecycle', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, void>({
-        query: () => '/success',
-        async onCacheEntryAdded() {
-          onNewCacheEntry()
-        },
-      }),
-    }),
-  })
-  await storeRef.store.dispatch(
-    extended.endpoints.injected.initiate(undefined, { subscribe: false }),
-  )
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-
-  // will not be called a second time though
-  await storeRef.store.dispatch(extended.endpoints.injected.initiate(undefined))
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-})
-
-test('dispatching a mutation initializer with `track: false` does not start a lifecycle', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.mutation<unknown, void>({
-        query: () => '/success',
-        async onCacheEntryAdded() {
-          onNewCacheEntry()
-        },
-      }),
-    }),
-  })
-  await storeRef.store.dispatch(
-    extended.endpoints.injected.initiate(undefined, { track: false }),
-  )
-  expect(onNewCacheEntry).not.toHaveBeenCalled()
-
-  await storeRef.store.dispatch(extended.endpoints.injected.initiate(undefined))
-  expect(onNewCacheEntry).toHaveBeenCalledOnce()
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/cleanup.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/cleanup.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,200 +1,0 @@
-// tests for "cleanup-after-unsubscribe" behavior
-import React from 'react'
-
-import { createListenerMiddleware } from '@reduxjs/toolkit'
-import { createApi, QueryStatus } from '@reduxjs/toolkit/query/react'
-import { act, render, screen, waitFor } from '@testing-library/react'
-import { setupApiStore } from '../../tests/utils/helpers'
-import type { SubscriptionSelectors } from '../core/buildMiddleware/types'
-
-const api = createApi({
-  baseQuery: () => ({ data: 42 }),
-  endpoints: (build) => ({
-    a: build.query<unknown, void>({ query: () => '' }),
-    b: build.query<unknown, void>({ query: () => '' }),
-  }),
-})
-const storeRef = setupApiStore(api)
-
-const getSubStateA = () => storeRef.store.getState().api.queries['a(undefined)']
-const getSubStateB = () => storeRef.store.getState().api.queries['b(undefined)']
-
-function UsingA() {
-  const { data } = api.endpoints.a.useQuery()
-
-  return <>Result: {data as React.ReactNode} </>
-}
-
-function UsingB() {
-  api.endpoints.b.useQuery()
-
-  return <></>
-}
-
-function UsingAB() {
-  api.endpoints.a.useQuery()
-  api.endpoints.b.useQuery()
-
-  return <></>
-}
-
-beforeAll(() => {
-  vi.useFakeTimers({ shouldAdvanceTime: true })
-})
-
-test('data stays in store when component stays rendered', async () => {
-  expect(getSubStateA()).toBeUndefined()
-
-  render(<UsingA />, { wrapper: storeRef.wrapper })
-  await waitFor(() =>
-    expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled),
-  )
-
-  vi.advanceTimersByTime(120_000)
-
-  expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled)
-})
-
-test('data is removed from store after 60 seconds', async () => {
-  expect(getSubStateA()).toBeUndefined()
-
-  const { unmount } = render(<UsingA />, { wrapper: storeRef.wrapper })
-  await waitFor(() =>
-    expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled),
-  )
-
-  unmount()
-
-  vi.advanceTimersByTime(59_000)
-
-  expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled)
-
-  vi.advanceTimersByTime(2000)
-
-  expect(getSubStateA()).toBeUndefined()
-})
-
-test('data stays in store when component stays rendered while data for another component is removed after it unmounted', async () => {
-  expect(getSubStateA()).toBeUndefined()
-  expect(getSubStateB()).toBeUndefined()
-
-  const { rerender } = render(
-    <>
-      <UsingA />
-      <UsingB />
-    </>,
-    { wrapper: storeRef.wrapper },
-  )
-  await waitFor(() => {
-    expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled)
-    expect(getSubStateB()?.status).toBe(QueryStatus.fulfilled)
-  })
-
-  const statusA = getSubStateA()
-
-  await act(async () => {
-    rerender(<UsingA />)
-
-    vi.advanceTimersByTime(10)
-  })
-
-  vi.advanceTimersByTime(120_000)
-
-  expect(getSubStateA()).toEqual(statusA)
-  expect(getSubStateB()).toBeUndefined()
-})
-
-test('data stays in store when one component requiring the data stays in the store', async () => {
-  expect(getSubStateA()).toBeUndefined()
-  expect(getSubStateB()).toBeUndefined()
-
-  const { rerender } = render(
-    <>
-      <UsingA key="a" />
-      <UsingAB key="ab" />
-    </>,
-    { wrapper: storeRef.wrapper },
-  )
-  await waitFor(() => {
-    expect(getSubStateA()?.status).toBe(QueryStatus.fulfilled)
-    expect(getSubStateB()?.status).toBe(QueryStatus.fulfilled)
-  })
-
-  const statusA = getSubStateA()
-  const statusB = getSubStateB()
-
-  await act(async () => {
-    rerender(<UsingAB key="ab" />)
-    vi.advanceTimersByTime(10)
-    vi.runAllTimers()
-  })
-
-  await act(async () => {
-    vi.advanceTimersByTime(120000)
-    vi.runAllTimers()
-  })
-
-  expect(getSubStateA()).toEqual(statusA)
-  expect(getSubStateB()).toEqual(statusB)
-})
-
-test('Minimizes the number of subscription dispatches when multiple components ask for the same data', async () => {
-  const listenerMiddleware = createListenerMiddleware()
-  const storeRef = setupApiStore(api, undefined, {
-    middleware: {
-      concat: [listenerMiddleware.middleware],
-    },
-    withoutTestLifecycles: true,
-  })
-
-  const actionTypes: unknown[] = []
-
-  listenerMiddleware.startListening({
-    predicate: () => true,
-    effect: (action) => {
-      if (
-        action.type.includes('subscriptionsUpdated') ||
-        action.type.includes('internal_')
-      ) {
-        return
-      }
-
-      actionTypes.push(action.type)
-    },
-  })
-
-  const { getSubscriptionCount } = storeRef.store.dispatch(
-    api.internalActions.internal_getRTKQSubscriptions(),
-  ) as unknown as SubscriptionSelectors
-
-  const NUM_LIST_ITEMS = 1000
-
-  function ParentComponent() {
-    const listItems = Array.from({ length: NUM_LIST_ITEMS }).map((_, i) => (
-      <UsingA key={i} />
-    ))
-
-    return <>{listItems}</>
-  }
-
-  render(<ParentComponent />, {
-    wrapper: storeRef.wrapper,
-  })
-
-  await act(async () => {
-    vi.advanceTimersByTime(10)
-    vi.runAllTimers()
-  })
-
-  await waitFor(() => {
-    return screen.getAllByText(/42/).length > 0
-  })
-
-  expect(getSubscriptionCount('a(undefined)')).toBe(NUM_LIST_ITEMS)
-
-  expect(actionTypes).toEqual([
-    'api/config/middlewareRegistered',
-    'api/executeQuery/pending',
-    'api/executeQuery/fulfilled',
-  ])
-}, 25_000)
Index: de_modules/@reduxjs/toolkit/src/query/tests/copyWithStructuralSharing.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/copyWithStructuralSharing.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-import { copyWithStructuralSharing } from '@reduxjs/toolkit/query'
-
-test('equal object from JSON Object', () => {
-  const json = JSON.stringify({
-    a: { b: { c: { d: 1, e: '2', f: true }, g: false }, h: null },
-    i: null,
-  })
-  const objA = JSON.parse(json)
-  const objB = JSON.parse(json)
-  expect(objA).toStrictEqual(objB)
-  expect(objA).not.toBe(objB)
-  const newCopy = copyWithStructuralSharing(objA, objB)
-  expect(newCopy).toBe(objA)
-  expect(newCopy).not.toBe(objB)
-  expect(newCopy).toStrictEqual(objB)
-})
-
-test('equal object from JSON Object', () => {
-  const json = JSON.stringify({
-    a: { b: { c: { d: 1, e: '2', f: true }, g: false }, h: null },
-    i: null,
-  })
-  const objA = JSON.parse(json)
-  const objB = JSON.parse(json)
-  objB.a.h = 4
-  expect(objA).not.toStrictEqual(objB)
-  expect(objA).not.toBe(objB)
-  expect(objA.a.b).toStrictEqual(objB.a.b)
-  expect(objA.a.b).not.toBe(objB.a.b)
-
-  const newCopy = copyWithStructuralSharing(objA, objB)
-  expect(newCopy).not.toBe(objA)
-  expect(newCopy).not.toStrictEqual(objA)
-  expect(newCopy).toStrictEqual(objB)
-
-  expect(newCopy.a.b).toBe(objA.a.b)
-  expect(newCopy.a.b).not.toBe(objB.a.b)
-  expect(newCopy.a.b).toStrictEqual(objB.a.b)
-})
-
-test('equal object from JSON Array', () => {
-  const json = JSON.stringify([
-    1,
-    'a',
-    { 2: 'b' },
-    { 3: { 4: 'c' }, d: null },
-    null,
-    5,
-  ])
-  const objA = JSON.parse(json)
-  const objB = JSON.parse(json)
-
-  expect(objA).toStrictEqual(objB)
-  expect(objA).not.toBe(objB)
-  const newCopy = copyWithStructuralSharing(objA, objB)
-  expect(newCopy).toBe(objA)
-  expect(newCopy).not.toBe(objB)
-  expect(newCopy).toStrictEqual(objB)
-})
-
-test('equal object from JSON Array', () => {
-  const json = JSON.stringify([
-    1,
-    'a',
-    { 2: 'b' },
-    { 3: { 4: 'c' }, d: null },
-    null,
-    5,
-  ])
-  const objA = JSON.parse(json)
-  const objB = JSON.parse(json)
-  objB[2][2] = 'x'
-
-  expect(objA).not.toStrictEqual(objB)
-  expect(objA).not.toBe(objB)
-  const newCopy = copyWithStructuralSharing(objA, objB)
-  expect(newCopy).not.toBe(objA)
-  expect(newCopy).not.toBe(objB)
-  expect(newCopy).toStrictEqual(objB)
-
-  expect(newCopy[3]).toBe(objA[3])
-  expect(newCopy[3]).not.toBe(objB[3])
-  expect(newCopy[3]).toStrictEqual(objB[3])
-
-  expect(newCopy[2]).not.toBe(objA[2])
-  expect(newCopy[2]).not.toBe(objB[2])
-  expect(newCopy[2]).toStrictEqual(objB[2])
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/createApi.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/createApi.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,521 +1,0 @@
-import { setupApiStore } from '@internal/tests/utils/helpers'
-import type { EntityState, SerializedError } from '@reduxjs/toolkit'
-import { configureStore, createEntityAdapter } from '@reduxjs/toolkit'
-import type {
-  DefinitionsFromApi,
-  FetchBaseQueryError,
-  FetchBaseQueryMeta,
-  MutationDefinition,
-  OverrideResultType,
-  QueryDefinition,
-  TagDescription,
-  TagTypesFromApi,
-} from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-import * as v from 'valibot'
-import type { Post } from './mocks/handlers'
-
-describe('type tests', () => {
-  test('sensible defaults', () => {
-    const api = createApi({
-      baseQuery: fetchBaseQuery(),
-      endpoints: (build) => ({
-        getUser: build.query<unknown, void>({
-          query(id) {
-            return { url: `user/${id}` }
-          },
-        }),
-        updateUser: build.mutation<unknown, void>({
-          query: () => '',
-        }),
-      }),
-    })
-
-    configureStore({
-      reducer: {
-        [api.reducerPath]: api.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api.middleware),
-    })
-
-    expectTypeOf(api.reducerPath).toEqualTypeOf<'api'>()
-
-    expectTypeOf(api.util.invalidateTags)
-      .parameter(0)
-      .toEqualTypeOf<(null | undefined | TagDescription<never>)[]>()
-  })
-
-  describe('endpoint definition typings', () => {
-    const api = createApi({
-      baseQuery: (from: 'From'): { data: 'To' } | Promise<{ data: 'To' }> => ({
-        data: 'To',
-      }),
-      endpoints: () => ({}),
-      tagTypes: ['typeA', 'typeB'],
-    })
-
-    test('query: query & transformResponse types', () => {
-      api.injectEndpoints({
-        endpoints: (build) => ({
-          query: build.query<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query1: build.query<'RetVal', 'Arg'>({
-            // @ts-expect-error
-            query: (x: 'Error') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query2: build.query<'RetVal', 'Arg'>({
-            // @ts-expect-error
-            query: (x: 'Arg') => 'Error' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query3: build.query<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            // @ts-expect-error
-            transformResponse(r: 'Error') {
-              return 'RetVal' as const
-            },
-          }),
-          query4: build.query<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            // @ts-expect-error
-            transformResponse(r: 'To') {
-              return 'Error' as const
-            },
-          }),
-          queryInference1: build.query<'RetVal', 'Arg'>({
-            query: (x) => {
-              expectTypeOf(x).toEqualTypeOf<'Arg'>()
-
-              return 'From'
-            },
-            transformResponse(r) {
-              expectTypeOf(r).toEqualTypeOf<'To'>()
-
-              return 'RetVal'
-            },
-          }),
-          queryInference2: (() => {
-            const query = build.query({
-              query: (x: 'Arg') => 'From' as const,
-              transformResponse(r: 'To') {
-                return 'RetVal' as const
-              },
-            })
-
-            expectTypeOf(query).toMatchTypeOf<
-              QueryDefinition<'Arg', any, any, 'RetVal'>
-            >()
-
-            return query
-          })(),
-        }),
-      })
-    })
-
-    test('mutation: query & transformResponse types', () => {
-      api.injectEndpoints({
-        endpoints: (build) => ({
-          query: build.mutation<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query1: build.mutation<'RetVal', 'Arg'>({
-            // @ts-expect-error
-            query: (x: 'Error') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query2: build.mutation<'RetVal', 'Arg'>({
-            // @ts-expect-error
-            query: (x: 'Arg') => 'Error' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          }),
-          query3: build.mutation<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            // @ts-expect-error
-            transformResponse(r: 'Error') {
-              return 'RetVal' as const
-            },
-          }),
-          query4: build.mutation<'RetVal', 'Arg'>({
-            query: (x: 'Arg') => 'From' as const,
-            // @ts-expect-error
-            transformResponse(r: 'To') {
-              return 'Error' as const
-            },
-          }),
-          mutationInference1: build.mutation<'RetVal', 'Arg'>({
-            query: (x) => {
-              expectTypeOf(x).toEqualTypeOf<'Arg'>()
-
-              return 'From'
-            },
-            transformResponse(r) {
-              expectTypeOf(r).toEqualTypeOf<'To'>()
-
-              return 'RetVal'
-            },
-          }),
-          mutationInference2: (() => {
-            const query = build.mutation({
-              query: (x: 'Arg') => 'From' as const,
-              transformResponse(r: 'To') {
-                return 'RetVal' as const
-              },
-            })
-
-            expectTypeOf(query).toMatchTypeOf<
-              MutationDefinition<'Arg', any, any, 'RetVal'>
-            >()
-
-            return query
-          })(),
-        }),
-      })
-    })
-
-    describe('enhancing endpoint definitions', () => {
-      const baseQuery = (x: string) => ({ data: 'success' })
-
-      function getNewApi() {
-        return createApi({
-          baseQuery,
-          tagTypes: ['old'],
-          endpoints: (build) => ({
-            query1: build.query<'out1', 'in1'>({ query: (id) => `${id}` }),
-            query2: build.query<'out2', 'in2'>({ query: (id) => `${id}` }),
-            mutation1: build.mutation<'out1', 'in1'>({
-              query: (id) => `${id}`,
-            }),
-            mutation2: build.mutation<'out2', 'in2'>({
-              query: (id) => `${id}`,
-            }),
-          }),
-        })
-      }
-
-      const api1 = getNewApi()
-
-      test('warn on wrong tagType', () => {
-        const storeRef = setupApiStore(api1, undefined, {
-          withoutTestLifecycles: true,
-        })
-
-        api1.enhanceEndpoints({
-          endpoints: {
-            query1: {
-              // @ts-expect-error
-              providesTags: ['new'],
-            },
-            query2: {
-              // @ts-expect-error
-              providesTags: ['missing'],
-            },
-          },
-        })
-
-        const enhanced = api1.enhanceEndpoints({
-          addTagTypes: ['new'],
-          endpoints: {
-            query1: {
-              providesTags: ['new'],
-            },
-            query2: {
-              // @ts-expect-error
-              providesTags: ['missing'],
-            },
-          },
-        })
-
-        storeRef.store.dispatch(api1.endpoints.query1.initiate('in1'))
-
-        storeRef.store.dispatch(api1.endpoints.query2.initiate('in2'))
-
-        enhanced.enhanceEndpoints({
-          endpoints: {
-            query1: {
-              // returned `enhanced` api contains "new" entityType
-              providesTags: ['new'],
-            },
-            query2: {
-              // @ts-expect-error
-              providesTags: ['missing'],
-            },
-          },
-        })
-      })
-
-      test('modify', () => {
-        const storeRef = setupApiStore(api1, undefined, {
-          withoutTestLifecycles: true,
-        })
-
-        api1.enhanceEndpoints({
-          endpoints: {
-            query1: {
-              query: (x) => {
-                expectTypeOf(x).toEqualTypeOf<'in1'>()
-
-                return 'modified1'
-              },
-            },
-            query2(definition) {
-              definition.query = (x) => {
-                expectTypeOf(x).toEqualTypeOf<'in2'>()
-
-                return 'modified2'
-              }
-            },
-            mutation1: {
-              query: (x) => {
-                expectTypeOf(x).toEqualTypeOf<'in1'>()
-
-                return 'modified1'
-              },
-            },
-            mutation2(definition) {
-              definition.query = (x) => {
-                expectTypeOf(x).toEqualTypeOf<'in2'>()
-
-                return 'modified2'
-              }
-            },
-            // @ts-expect-error
-            nonExisting: {},
-          },
-        })
-
-        storeRef.store.dispatch(api1.endpoints.query1.initiate('in1'))
-        storeRef.store.dispatch(api1.endpoints.query2.initiate('in2'))
-        storeRef.store.dispatch(api1.endpoints.mutation1.initiate('in1'))
-        storeRef.store.dispatch(api1.endpoints.mutation2.initiate('in2'))
-      })
-
-      test('updated transform response types', async () => {
-        const baseApi = createApi({
-          baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-          tagTypes: ['old'],
-          endpoints: (build) => ({
-            query1: build.query<'out1', void>({ query: () => 'success' }),
-            mutation1: build.mutation<'out1', void>({ query: () => 'success' }),
-          }),
-        })
-
-        type Transformed = { value: string }
-
-        type Definitions = DefinitionsFromApi<typeof api1>
-
-        type TagTypes = TagTypesFromApi<typeof api1>
-
-        type Q1Definition = OverrideResultType<
-          Definitions['query1'],
-          Transformed
-        >
-
-        type M1Definition = OverrideResultType<
-          Definitions['mutation1'],
-          Transformed
-        >
-
-        type UpdatedDefinitions = Omit<Definitions, 'query1' | 'mutation1'> & {
-          query1: Q1Definition
-          mutation1: M1Definition
-        }
-
-        const enhancedApi = baseApi.enhanceEndpoints<
-          TagTypes,
-          UpdatedDefinitions
-        >({
-          endpoints: {
-            query1: {
-              transformResponse: (a, b, c) => ({
-                value: 'transformed',
-              }),
-            },
-            mutation1: {
-              transformResponse: (a, b, c) => ({
-                value: 'transformed',
-              }),
-            },
-          },
-        })
-
-        const storeRef = setupApiStore(enhancedApi, undefined, {
-          withoutTestLifecycles: true,
-        })
-
-        const queryResponse = await storeRef.store.dispatch(
-          enhancedApi.endpoints.query1.initiate(),
-        )
-
-        expectTypeOf(queryResponse.data).toMatchTypeOf<
-          Transformed | undefined
-        >()
-
-        const mutationResponse = await storeRef.store.dispatch(
-          enhancedApi.endpoints.mutation1.initiate(),
-        )
-
-        expectTypeOf(mutationResponse).toMatchTypeOf<
-          | { data: Transformed }
-          | { error: FetchBaseQueryError | SerializedError }
-        >()
-      })
-    })
-    describe('endpoint schemas', () => {
-      const argSchema = v.object({ id: v.number() })
-      const postSchema = v.object({
-        id: v.number(),
-        title: v.string(),
-        body: v.string(),
-      }) satisfies v.GenericSchema<Post>
-      const errorResponseSchema = v.object({
-        status: v.number(),
-        data: v.unknown(),
-      }) satisfies v.GenericSchema<FetchBaseQueryError>
-      const metaSchema = v.object({
-        request: v.instance(Request),
-        response: v.optional(v.instance(Response)),
-      }) satisfies v.GenericSchema<FetchBaseQueryMeta>
-      test('schemas must match', () => {
-        createApi({
-          baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-          endpoints: (build) => ({
-            query: build.query<Post, { id: number }>({
-              query: ({ id }) => `/post/${id}`,
-              argSchema,
-              responseSchema: postSchema,
-              errorResponseSchema,
-              metaSchema,
-            }),
-            bothMismatch: build.query<Post, { id: number }>({
-              query: ({ id }) => `/post/${id}`,
-              // @ts-expect-error wrong schema
-              argSchema: v.object({ id: v.string() }),
-              // @ts-expect-error wrong schema
-              responseSchema: v.object({ id: v.string() }),
-              // @ts-expect-error wrong schema
-              errorResponseSchema: v.object({ status: v.string() }),
-              // @ts-expect-error wrong schema
-              metaSchema: v.object({ request: v.string() }),
-            }),
-            inputMismatch: build.query<Post, { id: number }>({
-              query: ({ id }) => `/post/${id}`,
-              // @ts-expect-error can't expect different input
-              argSchema: v.object({
-                id: v.pipe(v.string(), v.transform(Number), v.number()),
-              }),
-              // @ts-expect-error can't expect different input
-              responseSchema: v.object({
-                ...postSchema.entries,
-                id: v.pipe(v.string(), v.transform(Number)),
-              }) satisfies v.GenericSchema<any, Post>,
-              // @ts-expect-error can't expect different input
-              errorResponseSchema: v.object({
-                ...errorResponseSchema.entries,
-                status: v.pipe(v.string(), v.transform(Number)),
-              }) satisfies v.GenericSchema<any, FetchBaseQueryError>,
-              // @ts-expect-error can't expect different input
-              metaSchema: v.object({
-                ...metaSchema.entries,
-                request: v.pipe(
-                  v.string(),
-                  v.transform((url) => new Request(url)),
-                ),
-              }) satisfies v.GenericSchema<any, FetchBaseQueryMeta>,
-            }),
-            outputMismatch: build.query<Post, { id: number }>({
-              query: ({ id }) => `/post/${id}`,
-              // @ts-expect-error can't provide different output
-              argSchema: v.object({
-                id: v.pipe(v.number(), v.transform(String)),
-              }),
-              // @ts-expect-error can't provide different output
-              responseSchema: v.object({
-                ...postSchema.entries,
-                id: v.pipe(v.number(), v.transform(String)),
-              }) satisfies v.GenericSchema<Post, any>,
-              // @ts-expect-error can't provide different output
-              errorResponseSchema: v.object({
-                ...errorResponseSchema.entries,
-                status: v.pipe(v.number(), v.transform(String)),
-              }) satisfies v.GenericSchema<FetchBaseQueryError, any>,
-              // @ts-expect-error can't provide different output
-              metaSchema: v.object({
-                ...metaSchema.entries,
-                request: v.pipe(
-                  v.instance(Request),
-                  v.transform((r) => r.url),
-                ),
-              }) satisfies v.GenericSchema<FetchBaseQueryMeta, any>,
-            }),
-          }),
-        })
-      })
-      test('schemas as a source of inference', () => {
-        const postAdapter = createEntityAdapter<Post>()
-        const api = createApi({
-          baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-          endpoints: (build) => ({
-            query: build.query({
-              query: ({ id }: { id: number }) => `/post/${id}`,
-              responseSchema: postSchema,
-            }),
-            query2: build.query({
-              query: (arg) => {
-                expectTypeOf(arg).toEqualTypeOf<{ id: number }>()
-                return `/post/${arg.id}`
-              },
-              argSchema,
-              responseSchema: postSchema,
-            }),
-            query3: build.query({
-              query: (_arg: void) => `/posts`,
-              rawResponseSchema: v.array(postSchema),
-              transformResponse: (posts) => {
-                expectTypeOf(posts).toEqualTypeOf<Post[]>()
-                return postAdapter.getInitialState(undefined, posts)
-              },
-            }),
-          }),
-        })
-
-        expectTypeOf(api.endpoints.query.Types.QueryArg).toEqualTypeOf<{
-          id: number
-        }>()
-        expectTypeOf(api.endpoints.query.Types.ResultType).toEqualTypeOf<Post>()
-        expectTypeOf(api.endpoints.query.Types.RawResultType).toBeAny()
-
-        expectTypeOf(api.endpoints.query2.Types.QueryArg).toEqualTypeOf<{
-          id: number
-        }>()
-        expectTypeOf(
-          api.endpoints.query2.Types.ResultType,
-        ).toEqualTypeOf<Post>()
-        expectTypeOf(api.endpoints.query2.Types.RawResultType).toBeAny()
-
-        expectTypeOf(api.endpoints.query3.Types.QueryArg).toEqualTypeOf<void>()
-        expectTypeOf(api.endpoints.query3.Types.ResultType).toEqualTypeOf<
-          EntityState<Post, Post['id']>
-        >()
-        expectTypeOf(api.endpoints.query3.Types.RawResultType).toEqualTypeOf<
-          Post[]
-        >()
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/createApi.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/createApi.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1833 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { server } from '@internal/query/tests/mocks/server'
-import {
-  getSerializedHeaders,
-  setupApiStore,
-} from '@internal/tests/utils/helpers'
-import type { SerializedError } from '@reduxjs/toolkit'
-import { configureStore, createAction, createReducer } from '@reduxjs/toolkit'
-import type {
-  DefinitionsFromApi,
-  FetchBaseQueryError,
-  FetchBaseQueryMeta,
-  OverrideResultType,
-  SchemaFailureConverter,
-  SchemaType,
-  SerializeQueryArgs,
-  TagTypesFromApi,
-} from '@reduxjs/toolkit/query'
-import {
-  createApi,
-  fetchBaseQuery,
-  NamedSchemaError,
-} from '@reduxjs/toolkit/query'
-import { HttpResponse, delay, http } from 'msw'
-import nodeFetch from 'node-fetch'
-import * as v from 'valibot'
-import type { SchemaFailureHandler } from '../endpointDefinitions'
-
-beforeAll(() => {
-  vi.stubEnv('NODE_ENV', 'development')
-
-  return vi.unstubAllEnvs
-})
-
-const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-afterEach(() => {
-  vi.clearAllMocks()
-  server.resetHandlers()
-})
-
-afterAll(() => {
-  vi.restoreAllMocks()
-})
-
-function paginate<T>(array: T[], page_size: number, page_number: number) {
-  // human-readable page numbers usually start with 1, so we reduce 1 in the first argument
-  return array.slice((page_number - 1) * page_size, page_number * page_size)
-}
-
-test('sensible defaults', () => {
-  const api = createApi({
-    baseQuery: fetchBaseQuery(),
-    endpoints: (build) => ({
-      getUser: build.query<unknown, void>({
-        query(id) {
-          return { url: `user/${id}` }
-        },
-      }),
-      updateUser: build.mutation<unknown, void>({
-        query: () => '',
-      }),
-    }),
-  })
-  configureStore({
-    reducer: {
-      [api.reducerPath]: api.reducer,
-    },
-    middleware: (gDM) => gDM().concat(api.middleware),
-  })
-  expect(api.reducerPath).toBe('api')
-
-  expect(api.endpoints.getUser.name).toBe('getUser')
-  expect(api.endpoints.updateUser.name).toBe('updateUser')
-})
-
-describe('wrong tagTypes log errors', () => {
-  const baseQuery = vi.fn()
-  const api = createApi({
-    baseQuery,
-    tagTypes: ['User'],
-    endpoints: (build) => ({
-      provideNothing: build.query<unknown, void>({
-        query: () => '',
-      }),
-      provideTypeString: build.query<unknown, void>({
-        query: () => '',
-        providesTags: ['User'],
-      }),
-      provideTypeWithId: build.query<unknown, void>({
-        query: () => '',
-        providesTags: [{ type: 'User', id: 5 }],
-      }),
-      provideTypeWithIdAndCallback: build.query<unknown, void>({
-        query: () => '',
-        providesTags: () => [{ type: 'User', id: 5 }],
-      }),
-      provideWrongTypeString: build.query<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        providesTags: ['Users'],
-      }),
-      provideWrongTypeWithId: build.query<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        providesTags: [{ type: 'Users', id: 5 }],
-      }),
-      provideWrongTypeWithIdAndCallback: build.query<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        providesTags: () => [{ type: 'Users', id: 5 }],
-      }),
-      invalidateNothing: build.query<unknown, void>({
-        query: () => '',
-      }),
-      invalidateTypeString: build.mutation<unknown, void>({
-        query: () => '',
-        invalidatesTags: ['User'],
-      }),
-      invalidateTypeWithId: build.mutation<unknown, void>({
-        query: () => '',
-        invalidatesTags: [{ type: 'User', id: 5 }],
-      }),
-      invalidateTypeWithIdAndCallback: build.mutation<unknown, void>({
-        query: () => '',
-        invalidatesTags: () => [{ type: 'User', id: 5 }],
-      }),
-
-      invalidateWrongTypeString: build.mutation<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        invalidatesTags: ['Users'],
-      }),
-      invalidateWrongTypeWithId: build.mutation<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        invalidatesTags: [{ type: 'Users', id: 5 }],
-      }),
-      invalidateWrongTypeWithIdAndCallback: build.mutation<unknown, void>({
-        query: () => '',
-        // @ts-expect-error
-        invalidatesTags: () => [{ type: 'Users', id: 5 }],
-      }),
-    }),
-  })
-  const store = configureStore({
-    reducer: {
-      [api.reducerPath]: api.reducer,
-    },
-    middleware: (gDM) => gDM().concat(api.middleware),
-  })
-
-  beforeEach(() => {
-    baseQuery.mockResolvedValue({ data: 'foo' })
-  })
-
-  test.each<[keyof typeof api.endpoints, boolean?]>([
-    ['provideNothing', false],
-    ['provideTypeString', false],
-    ['provideTypeWithId', false],
-    ['provideTypeWithIdAndCallback', false],
-    ['provideWrongTypeString', true],
-    ['provideWrongTypeWithId', true],
-    ['provideWrongTypeWithIdAndCallback', true],
-    ['invalidateNothing', false],
-    ['invalidateTypeString', false],
-    ['invalidateTypeWithId', false],
-    ['invalidateTypeWithIdAndCallback', false],
-    ['invalidateWrongTypeString', true],
-    ['invalidateWrongTypeWithId', true],
-    ['invalidateWrongTypeWithIdAndCallback', true],
-  ])(`endpoint %s should log an error? %s`, async (endpoint, shouldError) => {
-    vi.stubEnv('NODE_ENV', 'development')
-
-    // @ts-ignore
-    store.dispatch(api.endpoints[endpoint].initiate())
-    let result: { status: string }
-    do {
-      await delay(5)
-      // @ts-ignore
-      result = api.endpoints[endpoint].select()(store.getState())
-    } while (result.status === 'pending')
-
-    if (shouldError) {
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        "Tag type 'Users' was used, but not specified in `tagTypes`!",
-      )
-    } else {
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    }
-  })
-})
-
-describe('endpoint definition typings', () => {
-  const api = createApi({
-    baseQuery: (from: 'From'): { data: 'To' } | Promise<{ data: 'To' }> => ({
-      data: 'To',
-    }),
-    endpoints: () => ({}),
-    tagTypes: ['typeA', 'typeB'],
-  })
-  test('query: query & transformResponse types', () => {
-    api.injectEndpoints({
-      endpoints: (build) => ({
-        query: build.query<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query1: build.query<'RetVal', 'Arg'>({
-          // @ts-expect-error
-          query: (x: 'Error') => 'From' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query2: build.query<'RetVal', 'Arg'>({
-          // @ts-expect-error
-          query: (x: 'Arg') => 'Error' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query3: build.query<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          // @ts-expect-error
-          transformResponse(r: 'Error') {
-            return 'RetVal' as const
-          },
-        }),
-        query4: build.query<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          // @ts-expect-error
-          transformResponse(r: 'To') {
-            return 'Error' as const
-          },
-        }),
-        queryInference1: build.query<'RetVal', 'Arg'>({
-          query: (x) => {
-            return 'From'
-          },
-          transformResponse(r) {
-            return 'RetVal'
-          },
-        }),
-        queryInference2: (() => {
-          const query = build.query({
-            query: (x: 'Arg') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          })
-          return query
-        })(),
-      }),
-    })
-  })
-  test('mutation: query & transformResponse types', () => {
-    api.injectEndpoints({
-      endpoints: (build) => ({
-        query: build.mutation<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query1: build.mutation<'RetVal', 'Arg'>({
-          // @ts-expect-error
-          query: (x: 'Error') => 'From' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query2: build.mutation<'RetVal', 'Arg'>({
-          // @ts-expect-error
-          query: (x: 'Arg') => 'Error' as const,
-          transformResponse(r: 'To') {
-            return 'RetVal' as const
-          },
-        }),
-        query3: build.mutation<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          // @ts-expect-error
-          transformResponse(r: 'Error') {
-            return 'RetVal' as const
-          },
-        }),
-        query4: build.mutation<'RetVal', 'Arg'>({
-          query: (x: 'Arg') => 'From' as const,
-          // @ts-expect-error
-          transformResponse(r: 'To') {
-            return 'Error' as const
-          },
-        }),
-        mutationInference1: build.mutation<'RetVal', 'Arg'>({
-          query: (x) => {
-            return 'From'
-          },
-          transformResponse(r) {
-            return 'RetVal'
-          },
-        }),
-        mutationInference2: (() => {
-          const query = build.mutation({
-            query: (x: 'Arg') => 'From' as const,
-            transformResponse(r: 'To') {
-              return 'RetVal' as const
-            },
-          })
-          return query
-        })(),
-      }),
-    })
-  })
-
-  describe('enhancing endpoint definitions', () => {
-    const baseQuery = vi.fn((x: string) => ({ data: 'success' }))
-    const commonBaseQueryApi = {
-      dispatch: expect.any(Function),
-      endpoint: expect.any(String),
-      abort: expect.any(Function),
-      extra: undefined,
-      forced: expect.any(Boolean),
-      getState: expect.any(Function),
-      signal: expect.any(Object),
-      type: expect.any(String),
-      queryCacheKey: expect.any(String),
-    }
-    beforeEach(() => {
-      baseQuery.mockClear()
-    })
-    function getNewApi() {
-      return createApi({
-        baseQuery,
-        tagTypes: ['old'],
-        endpoints: (build) => ({
-          query1: build.query<'out1', 'in1'>({ query: (id) => `${id}` }),
-          query2: build.query<'out2', 'in2'>({ query: (id) => `${id}` }),
-          mutation1: build.mutation<'out1', 'in1'>({ query: (id) => `${id}` }),
-          mutation2: build.mutation<'out2', 'in2'>({ query: (id) => `${id}` }),
-        }),
-      })
-    }
-    let api = getNewApi()
-    beforeEach(() => {
-      api = getNewApi()
-    })
-
-    test('pre-modification behavior', async () => {
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      storeRef.store.dispatch(api.endpoints.query1.initiate('in1'))
-      storeRef.store.dispatch(api.endpoints.query2.initiate('in2'))
-      storeRef.store.dispatch(api.endpoints.mutation1.initiate('in1'))
-      storeRef.store.dispatch(api.endpoints.mutation2.initiate('in2'))
-
-      expect(baseQuery.mock.calls).toEqual([
-        [
-          'in1',
-          {
-            dispatch: expect.any(Function),
-            endpoint: expect.any(String),
-            getState: expect.any(Function),
-            signal: expect.any(Object),
-            abort: expect.any(Function),
-            forced: expect.any(Boolean),
-            type: expect.any(String),
-            queryCacheKey: expect.any(String),
-          },
-          undefined,
-        ],
-        [
-          'in2',
-          {
-            dispatch: expect.any(Function),
-            endpoint: expect.any(String),
-            getState: expect.any(Function),
-            signal: expect.any(Object),
-            abort: expect.any(Function),
-            forced: expect.any(Boolean),
-            type: expect.any(String),
-            queryCacheKey: expect.any(String),
-          },
-          undefined,
-        ],
-        [
-          'in1',
-          {
-            dispatch: expect.any(Function),
-            endpoint: expect.any(String),
-            getState: expect.any(Function),
-            signal: expect.any(Object),
-            abort: expect.any(Function),
-            // forced: undefined,
-            type: expect.any(String),
-          },
-          undefined,
-        ],
-        [
-          'in2',
-          {
-            dispatch: expect.any(Function),
-            endpoint: expect.any(String),
-            getState: expect.any(Function),
-            signal: expect.any(Object),
-            abort: expect.any(Function),
-            // forced: undefined,
-            type: expect.any(String),
-          },
-          undefined,
-        ],
-      ])
-    })
-
-    test('warn on wrong tagType', async () => {
-      vi.stubEnv('NODE_ENV', 'development')
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      // only type-test this part
-      if (2 > 1) {
-        api.enhanceEndpoints({
-          endpoints: {
-            query1: {
-              // @ts-expect-error
-              providesTags: ['new'],
-            },
-            query2: {
-              // @ts-expect-error
-              providesTags: ['missing'],
-            },
-          },
-        })
-      }
-
-      const enhanced = api.enhanceEndpoints({
-        addTagTypes: ['new'],
-        endpoints: {
-          query1: {
-            providesTags: ['new'],
-          },
-          query2: {
-            // @ts-expect-error
-            providesTags: ['missing'],
-          },
-        },
-      })
-
-      storeRef.store.dispatch(api.endpoints.query1.initiate('in1'))
-      await delay(1)
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-      storeRef.store.dispatch(api.endpoints.query2.initiate('in2'))
-      await delay(1)
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        "Tag type 'missing' was used, but not specified in `tagTypes`!",
-      )
-
-      // only type-test this part
-      if (2 > 1) {
-        enhanced.enhanceEndpoints({
-          endpoints: {
-            query1: {
-              // returned `enhanced` api contains "new" enitityType
-              providesTags: ['new'],
-            },
-            query2: {
-              // @ts-expect-error
-              providesTags: ['missing'],
-            },
-          },
-        })
-      }
-    })
-
-    test('modify', () => {
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      api.enhanceEndpoints({
-        endpoints: {
-          query1: {
-            query: (x) => {
-              return 'modified1'
-            },
-          },
-          query2(definition) {
-            definition.query = (x) => {
-              return 'modified2'
-            }
-          },
-          mutation1: {
-            query: (x) => {
-              return 'modified1'
-            },
-          },
-          mutation2(definition) {
-            definition.query = (x) => {
-              return 'modified2'
-            }
-          },
-          // @ts-expect-error
-          nonExisting: {},
-        },
-      })
-
-      storeRef.store.dispatch(api.endpoints.query1.initiate('in1'))
-      storeRef.store.dispatch(api.endpoints.query2.initiate('in2'))
-      storeRef.store.dispatch(api.endpoints.mutation1.initiate('in1'))
-      storeRef.store.dispatch(api.endpoints.mutation2.initiate('in2'))
-
-      expect(baseQuery.mock.calls).toEqual([
-        ['modified1', commonBaseQueryApi, undefined],
-        ['modified2', commonBaseQueryApi, undefined],
-        [
-          'modified1',
-          {
-            ...commonBaseQueryApi,
-            forced: undefined,
-            queryCacheKey: undefined,
-          },
-          undefined,
-        ],
-        [
-          'modified2',
-          {
-            ...commonBaseQueryApi,
-            forced: undefined,
-            queryCacheKey: undefined,
-          },
-          undefined,
-        ],
-      ])
-    })
-
-    test('updated transform response types', async () => {
-      const baseApi = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        tagTypes: ['old'],
-        endpoints: (build) => ({
-          query1: build.query<'out1', void>({ query: () => 'success' }),
-          mutation1: build.mutation<'out1', void>({ query: () => 'success' }),
-        }),
-      })
-
-      type Transformed = { value: string }
-
-      type Definitions = DefinitionsFromApi<typeof api>
-      type TagTypes = TagTypesFromApi<typeof api>
-
-      type Q1Definition = OverrideResultType<Definitions['query1'], Transformed>
-      type M1Definition = OverrideResultType<
-        Definitions['mutation1'],
-        Transformed
-      >
-
-      type UpdatedDefitions = Omit<Definitions, 'query1' | 'mutation1'> & {
-        query1: Q1Definition
-        mutation1: M1Definition
-      }
-
-      const enhancedApi = baseApi.enhanceEndpoints<TagTypes, UpdatedDefitions>({
-        endpoints: {
-          query1: {
-            transformResponse: (a, b, c) => ({
-              value: 'transformed',
-            }),
-          },
-          mutation1: {
-            transformResponse: (a, b, c) => ({
-              value: 'transformed',
-            }),
-          },
-        },
-      })
-
-      const storeRef = setupApiStore(enhancedApi, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const queryResponse = await storeRef.store.dispatch(
-        enhancedApi.endpoints.query1.initiate(),
-      )
-      expect(queryResponse.data).toEqual({ value: 'transformed' })
-
-      const mutationResponse = await storeRef.store.dispatch(
-        enhancedApi.endpoints.mutation1.initiate(),
-      )
-      expect('data' in mutationResponse && mutationResponse.data).toEqual({
-        value: 'transformed',
-      })
-    })
-  })
-})
-
-describe('additional transformResponse behaviors', () => {
-  type SuccessResponse = { value: 'success' }
-  type EchoResponseData = { banana: 'bread' }
-  type ErrorResponse = { value: 'error' }
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    endpoints: (build) => ({
-      echo: build.mutation({
-        query: () => ({ method: 'PUT', url: '/echo' }),
-      }),
-      mutation: build.mutation({
-        query: () => ({
-          url: '/echo',
-          method: 'POST',
-          body: { nested: { banana: 'bread' } },
-        }),
-        transformResponse: (response: { body: { nested: EchoResponseData } }) =>
-          response.body.nested,
-      }),
-      mutationWithError: build.mutation({
-        query: () => ({
-          url: '/error',
-          method: 'POST',
-        }),
-        transformErrorResponse: (response) => {
-          const data = response.data as ErrorResponse
-          return data.value
-        },
-      }),
-      mutationWithMeta: build.mutation({
-        query: () => ({
-          url: '/echo',
-          method: 'POST',
-          body: { nested: { banana: 'bread' } },
-        }),
-        transformResponse: (
-          response: { body: { nested: EchoResponseData } },
-          meta,
-        ) => {
-          return {
-            ...response.body.nested,
-            meta: {
-              request: { headers: getSerializedHeaders(meta?.request.headers) },
-              response: {
-                headers: getSerializedHeaders(meta?.response?.headers),
-              },
-            },
-          }
-        },
-      }),
-      query: build.query<SuccessResponse & EchoResponseData, void>({
-        query: () => '/success',
-        transformResponse: async (response: SuccessResponse) => {
-          const res: any = await nodeFetch('https://example.com/echo', {
-            method: 'POST',
-            body: JSON.stringify({ banana: 'bread' }),
-          }).then((res) => res.json())
-
-          const additionalData = res.body as EchoResponseData
-          return { ...response, ...additionalData }
-        },
-      }),
-      queryWithMeta: build.query<SuccessResponse, void>({
-        query: () => '/success',
-        transformResponse: async (response: SuccessResponse, meta) => {
-          return {
-            ...response,
-            meta: {
-              request: { headers: getSerializedHeaders(meta?.request.headers) },
-              response: {
-                headers: getSerializedHeaders(meta?.response?.headers),
-              },
-            },
-          }
-        },
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api)
-
-  test('transformResponse handles an async transformation and returns the merged data (query)', async () => {
-    const result = await storeRef.store.dispatch(api.endpoints.query.initiate())
-
-    expect(result.data).toEqual({ value: 'success', banana: 'bread' })
-  })
-
-  test('transformResponse transforms a response from a mutation', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.mutation.initiate({}),
-    )
-
-    expect('data' in result && result.data).toEqual({ banana: 'bread' })
-  })
-
-  test('transformResponse transforms a response from a mutation with an error', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.mutationWithError.initiate({}),
-    )
-
-    expect('error' in result && result.error).toEqual('error')
-  })
-
-  test('transformResponse can inject baseQuery meta into the end result from a mutation', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.mutationWithMeta.initiate({}),
-    )
-
-    expect('data' in result && result.data).toEqual({
-      banana: 'bread',
-      meta: {
-        request: {
-          headers: {
-            accept: 'application/json',
-            'content-type': 'application/json',
-          },
-        },
-        response: {
-          headers: {
-            'content-type': 'application/json',
-          },
-        },
-      },
-    })
-  })
-
-  test('transformResponse can inject baseQuery meta into the end result from a query', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.queryWithMeta.initiate(),
-    )
-
-    expect(result.data).toEqual({
-      value: 'success',
-      meta: {
-        request: {
-          headers: {
-            accept: 'application/json',
-          },
-        },
-        response: {
-          headers: {
-            'content-type': 'application/json',
-          },
-        },
-      },
-    })
-  })
-})
-
-describe('query endpoint lifecycles - onStart, onSuccess, onError', () => {
-  const initialState = {
-    count: null as null | number,
-  }
-  const setCount = createAction<number>('setCount')
-  const testReducer = createReducer(initialState, (builder) => {
-    builder.addCase(setCount, (state, action) => {
-      state.count = action.payload
-    })
-  })
-
-  type SuccessResponse = { value: 'success' }
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    endpoints: (build) => ({
-      echo: build.mutation({
-        query: () => ({ method: 'PUT', url: '/echo' }),
-      }),
-      query: build.query<SuccessResponse, void>({
-        query: () => '/success',
-        async onQueryStarted(_, api) {
-          api.dispatch(setCount(0))
-          try {
-            await api.queryFulfilled
-            api.dispatch(setCount(1))
-          } catch {
-            api.dispatch(setCount(-1))
-          }
-        },
-      }),
-      mutation: build.mutation<SuccessResponse, void>({
-        query: () => ({ url: '/success', method: 'POST' }),
-        async onQueryStarted(_, api) {
-          api.dispatch(setCount(0))
-          try {
-            await api.queryFulfilled
-            api.dispatch(setCount(1))
-          } catch {
-            api.dispatch(setCount(-1))
-          }
-        },
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api, { testReducer })
-
-  test('query lifecycle events fire properly', async () => {
-    // We intentionally fail the first request so we can test all lifecycles
-    server.use(
-      http.get(
-        'https://example.com/success',
-        () => HttpResponse.json({ value: 'failed' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    expect(storeRef.store.getState().testReducer.count).toBe(null)
-    const failAttempt = storeRef.store.dispatch(api.endpoints.query.initiate())
-    expect(storeRef.store.getState().testReducer.count).toBe(0)
-    await failAttempt
-    await delay(10)
-    expect(storeRef.store.getState().testReducer.count).toBe(-1)
-
-    const successAttempt = storeRef.store.dispatch(
-      api.endpoints.query.initiate(),
-    )
-    expect(storeRef.store.getState().testReducer.count).toBe(0)
-    await successAttempt
-    await delay(10)
-    expect(storeRef.store.getState().testReducer.count).toBe(1)
-  })
-
-  test('mutation lifecycle events fire properly', async () => {
-    // We intentionally fail the first request so we can test all lifecycles
-    server.use(
-      http.post(
-        'https://example.com/success',
-        () => HttpResponse.json({ value: 'failed' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    expect(storeRef.store.getState().testReducer.count).toBe(null)
-    const failAttempt = storeRef.store.dispatch(
-      api.endpoints.mutation.initiate(),
-    )
-    expect(storeRef.store.getState().testReducer.count).toBe(0)
-    await failAttempt
-    expect(storeRef.store.getState().testReducer.count).toBe(-1)
-
-    const successAttempt = storeRef.store.dispatch(
-      api.endpoints.mutation.initiate(),
-    )
-    expect(storeRef.store.getState().testReducer.count).toBe(0)
-    await successAttempt
-    expect(storeRef.store.getState().testReducer.count).toBe(1)
-  })
-})
-
-test('providesTags and invalidatesTags can use baseQueryMeta', async () => {
-  let _meta: FetchBaseQueryMeta | undefined
-
-  type SuccessResponse = { value: 'success' }
-
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    tagTypes: ['success'],
-    endpoints: (build) => ({
-      query: build.query<SuccessResponse, void>({
-        query: () => '/success',
-        providesTags: (_result, _error, _arg, meta) => {
-          _meta = meta
-          return ['success']
-        },
-      }),
-      mutation: build.mutation<SuccessResponse, void>({
-        query: () => ({ url: '/success', method: 'POST' }),
-        invalidatesTags: (_result, _error, _arg, meta) => {
-          _meta = meta
-          return ['success']
-        },
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api, undefined, {
-    withoutTestLifecycles: true,
-  })
-
-  await storeRef.store.dispatch(api.endpoints.query.initiate())
-  expect('request' in _meta! && 'response' in _meta!).toBe(true)
-
-  _meta = undefined
-
-  await storeRef.store.dispatch(api.endpoints.mutation.initiate())
-
-  expect('request' in _meta! && 'response' in _meta!).toBe(true)
-})
-
-describe('structuralSharing flag behaviors', () => {
-  type SuccessResponse = { value: 'success' }
-
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    tagTypes: ['success'],
-    endpoints: (build) => ({
-      enabled: build.query<SuccessResponse, void>({
-        query: () => '/success',
-      }),
-      disabled: build.query<SuccessResponse, void>({
-        query: () => ({ url: '/success' }),
-        structuralSharing: false,
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api)
-
-  it('enables structural sharing for query endpoints by default', async () => {
-    await storeRef.store.dispatch(api.endpoints.enabled.initiate())
-    const firstRef = api.endpoints.enabled.select()(storeRef.store.getState())
-
-    await storeRef.store.dispatch(
-      api.endpoints.enabled.initiate(undefined, { forceRefetch: true }),
-    )
-
-    const secondRef = api.endpoints.enabled.select()(storeRef.store.getState())
-
-    expect(firstRef.requestId).not.toEqual(secondRef.requestId)
-    expect(firstRef.data === secondRef.data).toBeTruthy()
-  })
-
-  it('allows a query endpoint to opt-out of structural sharing', async () => {
-    await storeRef.store.dispatch(api.endpoints.disabled.initiate())
-    const firstRef = api.endpoints.disabled.select()(storeRef.store.getState())
-
-    await storeRef.store.dispatch(
-      api.endpoints.disabled.initiate(undefined, { forceRefetch: true }),
-    )
-
-    const secondRef = api.endpoints.disabled.select()(storeRef.store.getState())
-
-    expect(firstRef.requestId).not.toEqual(secondRef.requestId)
-    expect(firstRef.data === secondRef.data).toBeFalsy()
-  })
-})
-
-describe('custom serializeQueryArgs per endpoint', () => {
-  const customArgsSerializer: SerializeQueryArgs<number> = ({
-    endpointName,
-    queryArgs,
-  }) => `${endpointName}-${queryArgs}`
-
-  type SuccessResponse = { value: 'success' }
-
-  const serializer1 = vi.fn(customArgsSerializer)
-
-  interface MyApiClient {
-    fetchPost: (id: string) => Promise<SuccessResponse>
-  }
-
-  const dummyClient: MyApiClient = {
-    async fetchPost() {
-      return { value: 'success' }
-    },
-  }
-
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    serializeQueryArgs: ({ endpointName, queryArgs }) =>
-      `base-${endpointName}-${queryArgs}`,
-    endpoints: (build) => ({
-      queryWithNoSerializer: build.query<SuccessResponse, number>({
-        query: (arg) => `${arg}`,
-      }),
-      queryWithCustomSerializer: build.query<SuccessResponse, number>({
-        query: (arg) => `${arg}`,
-        serializeQueryArgs: serializer1,
-      }),
-      queryWithCustomObjectSerializer: build.query<
-        SuccessResponse,
-        { id: number; client: MyApiClient }
-      >({
-        query: (arg) => `${arg.id}`,
-        serializeQueryArgs: ({
-          endpointDefinition,
-          endpointName,
-          queryArgs,
-        }) => {
-          const { id } = queryArgs
-          return { id }
-        },
-      }),
-      queryWithCustomNumberSerializer: build.query<
-        SuccessResponse,
-        { id: number; client: MyApiClient }
-      >({
-        query: (arg) => `${arg.id}`,
-        serializeQueryArgs: ({
-          endpointDefinition,
-          endpointName,
-          queryArgs,
-        }) => {
-          const { id } = queryArgs
-          return id
-        },
-      }),
-      listItems: build.query<string[], number>({
-        query: (pageNumber) => `/listItems?page=${pageNumber}`,
-        serializeQueryArgs: ({ endpointName }) => {
-          return endpointName
-        },
-        merge: (currentCache, newItems) => {
-          currentCache.push(...newItems)
-        },
-        forceRefetch({ currentArg, previousArg }) {
-          return currentArg !== previousArg
-        },
-      }),
-      listItems2: build.query<{ items: string[]; meta?: any }, number>({
-        query: (pageNumber) => `/listItems2?page=${pageNumber}`,
-        serializeQueryArgs: ({ endpointName }) => {
-          return endpointName
-        },
-        transformResponse(items: string[]) {
-          return { items }
-        },
-        merge: (currentCache, newData, meta) => {
-          currentCache.items.push(...newData.items)
-          currentCache.meta = meta
-        },
-        forceRefetch({ currentArg, previousArg }) {
-          return currentArg !== previousArg
-        },
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api)
-
-  it('Works via createApi', async () => {
-    await storeRef.store.dispatch(
-      api.endpoints.queryWithNoSerializer.initiate(99),
-    )
-
-    expect(serializer1).not.toHaveBeenCalled()
-
-    await storeRef.store.dispatch(
-      api.endpoints.queryWithCustomSerializer.initiate(42),
-    )
-
-    expect(serializer1).toHaveBeenCalled()
-
-    expect(
-      storeRef.store.getState().api.queries['base-queryWithNoSerializer-99'],
-    ).toBeTruthy()
-
-    expect(
-      storeRef.store.getState().api.queries['queryWithCustomSerializer-42'],
-    ).toBeTruthy()
-  })
-
-  const serializer2 = vi.fn(customArgsSerializer)
-
-  const injectedApi = api.injectEndpoints({
-    endpoints: (build) => ({
-      injectedQueryWithCustomSerializer: build.query<SuccessResponse, number>({
-        query: (arg) => `${arg}`,
-        serializeQueryArgs: serializer2,
-      }),
-    }),
-  })
-
-  it('Works via injectEndpoints', async () => {
-    expect(serializer2).not.toHaveBeenCalled()
-
-    await storeRef.store.dispatch(
-      injectedApi.endpoints.injectedQueryWithCustomSerializer.initiate(5),
-    )
-
-    expect(serializer2).toHaveBeenCalled()
-    expect(
-      storeRef.store.getState().api.queries[
-        'injectedQueryWithCustomSerializer-5'
-      ],
-    ).toBeTruthy()
-  })
-
-  test('Serializes a returned object for query args', async () => {
-    await storeRef.store.dispatch(
-      api.endpoints.queryWithCustomObjectSerializer.initiate({
-        id: 42,
-        client: dummyClient,
-      }),
-    )
-
-    expect(
-      storeRef.store.getState().api.queries[
-        'queryWithCustomObjectSerializer({"id":42})'
-      ],
-    ).toBeTruthy()
-  })
-
-  test('Serializes a returned primitive for query args', async () => {
-    await storeRef.store.dispatch(
-      api.endpoints.queryWithCustomNumberSerializer.initiate({
-        id: 42,
-        client: dummyClient,
-      }),
-    )
-
-    expect(
-      storeRef.store.getState().api.queries[
-        'queryWithCustomNumberSerializer(42)'
-      ],
-    ).toBeTruthy()
-  })
-
-  test('serializeQueryArgs + merge allows refetching as args change with same cache key', async () => {
-    const allItems = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i']
-    const PAGE_SIZE = 3
-
-    server.use(
-      http.get('https://example.com/listItems', ({ request }) => {
-        const url = new URL(request.url)
-        const pageString = url.searchParams.get('page')
-        const pageNum = parseInt(pageString || '0')
-
-        const results = paginate(allItems, PAGE_SIZE, pageNum)
-        return HttpResponse.json(results)
-      }),
-    )
-
-    // Page number shouldn't matter here, because the cache key ignores that.
-    // We just need to select the only cache entry.
-    const selectListItems = api.endpoints.listItems.select(0)
-
-    await storeRef.store.dispatch(api.endpoints.listItems.initiate(1))
-
-    const initialEntry = selectListItems(storeRef.store.getState())
-    expect(initialEntry.data).toEqual(['a', 'b', 'c'])
-
-    await storeRef.store.dispatch(api.endpoints.listItems.initiate(2))
-    const updatedEntry = selectListItems(storeRef.store.getState())
-    expect(updatedEntry.data).toEqual(['a', 'b', 'c', 'd', 'e', 'f'])
-  })
-
-  test('merge receives a meta object as an argument', async () => {
-    const allItems = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i']
-    const PAGE_SIZE = 3
-
-    server.use(
-      http.get('https://example.com/listItems2', ({ request }) => {
-        const url = new URL(request.url)
-        const pageString = url.searchParams.get('page')
-        const pageNum = parseInt(pageString || '0')
-
-        const results = paginate(allItems, PAGE_SIZE, pageNum)
-        return HttpResponse.json(results)
-      }),
-    )
-
-    const selectListItems = api.endpoints.listItems2.select(0)
-
-    await storeRef.store.dispatch(api.endpoints.listItems2.initiate(1))
-    await storeRef.store.dispatch(api.endpoints.listItems2.initiate(2))
-    const cacheEntry = selectListItems(storeRef.store.getState())
-
-    // Should have passed along the third arg from `merge` containing these fields
-    expect(cacheEntry.data?.meta).toEqual({
-      requestId: expect.any(String),
-      fulfilledTimeStamp: expect.any(Number),
-      arg: 2,
-      baseQueryMeta: expect.any(Object),
-    })
-  })
-})
-
-describe('timeout behavior', () => {
-  test('triggers TIMEOUT_ERROR', async () => {
-    const api = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com', timeout: 5 }),
-      endpoints: (build) => ({
-        query: build.query<unknown, void>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    server.use(
-      http.get(
-        'https://example.com/success',
-        async () => {
-          await delay(50)
-          return HttpResponse.json({ value: 'failed' }, { status: 500 })
-        },
-        { once: true },
-      ),
-    )
-
-    const result = await storeRef.store.dispatch(api.endpoints.query.initiate())
-
-    expect(result?.error).toEqual({
-      status: 'TIMEOUT_ERROR',
-      error: expect.stringMatching(/^TimeoutError/),
-    })
-  })
-})
-
-describe('endpoint schemas', () => {
-  const schemaConverter: SchemaFailureConverter<
-    ReturnType<typeof fetchBaseQuery>
-  > = (error) => {
-    return {
-      status: 'CUSTOM_ERROR',
-      error: error.schemaName + ' failed validation',
-      data: error.issues,
-    }
-  }
-
-  const serializedSchemaError = {
-    name: 'SchemaError',
-    message: expect.any(String),
-    stack: expect.any(String),
-  } satisfies SerializedError
-
-  const onSchemaFailureGlobal = vi.fn<SchemaFailureHandler>()
-  const onSchemaFailureEndpoint = vi.fn<SchemaFailureHandler>()
-  afterEach(() => {
-    onSchemaFailureGlobal.mockClear()
-    onSchemaFailureEndpoint.mockClear()
-  })
-
-  function expectFailureHandlersToHaveBeenCalled({
-    schemaName,
-    value,
-    arg,
-  }: {
-    schemaName: `${SchemaType}Schema`
-    value: unknown
-    arg: unknown
-  }) {
-    for (const handler of [onSchemaFailureGlobal, onSchemaFailureEndpoint]) {
-      expect(handler).toHaveBeenCalledOnce()
-      const [namedError, info] = handler.mock.calls[0]
-      expect(namedError).toBeInstanceOf(NamedSchemaError)
-      expect(namedError.issues.length).toBeGreaterThan(0)
-      expect(namedError.value).toEqual(value)
-      expect(namedError.schemaName).toBe(schemaName)
-      expect(info.endpoint).toBe('query')
-      expect(info.type).toBe('query')
-      expect(info.arg).toEqual(arg)
-    }
-  }
-
-  interface SkipApiOptions {
-    globalSkip?: boolean
-    endpointSkip?: boolean
-    useArray?: boolean
-    globalCatch?: boolean
-    endpointCatch?: boolean
-  }
-
-  const apiOptions = (
-    type: SchemaType,
-    { useArray, globalSkip, globalCatch }: SkipApiOptions = {},
-  ) => ({
-    onSchemaFailure: onSchemaFailureGlobal,
-    skipSchemaValidation: useArray ? globalSkip && [type] : globalSkip,
-    catchSchemaFailure: globalCatch ? schemaConverter : undefined,
-  })
-
-  const endpointOptions = (
-    type: SchemaType,
-    { useArray, endpointSkip, endpointCatch }: SkipApiOptions = {},
-  ) => ({
-    onSchemaFailure: onSchemaFailureEndpoint,
-    skipSchemaValidation: useArray ? endpointSkip && [type] : endpointSkip,
-    catchSchemaFailure: endpointCatch ? schemaConverter : undefined,
-  })
-
-  const skipCases: [string, SkipApiOptions][] = [
-    ['globally', { globalSkip: true }],
-    ['on the endpoint', { endpointSkip: true }],
-    ['globally (array)', { globalSkip: true, useArray: true }],
-    ['on the endpoint (array)', { endpointSkip: true, useArray: true }],
-  ]
-
-  describe('argSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('arg', opts),
-        endpoints: (build) => ({
-          query: build.query<unknown, { id: number }>({
-            query: ({ id }) => `/post/${id}`,
-            argSchema: v.object({ id: v.number() }),
-            ...endpointOptions('arg', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's arguments", async () => {
-      const api = makeApi()
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate({ id: 1 }),
-      )
-
-      expect(result?.error).toBeUndefined()
-
-      const invalidResult = await storeRef.store.dispatch(
-        // @ts-expect-error
-        api.endpoints.query.initiate({ id: '1' }),
-      )
-
-      expect(invalidResult?.error).toEqual(serializedSchemaError)
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'argSchema',
-        value: { id: '1' },
-        arg: { id: '1' },
-      })
-    })
-
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const result = await storeRef.store.dispatch(
-        // @ts-expect-error
-        api.endpoints.query.initiate({ id: '1' }),
-      )
-
-      expect(result?.error).toBeUndefined()
-    })
-    // we only need to test this once
-    test('endpoint overrides global skip', async () => {
-      const api = makeApi({ globalSkip: true, endpointSkip: false })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const result = await storeRef.store.dispatch(
-        // @ts-expect-error
-        api.endpoints.query.initiate({ id: '1' }),
-      )
-
-      expect(result?.error).toEqual(serializedSchemaError)
-    })
-
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const result = await storeRef.store.dispatch(
-        // @ts-expect-error
-        api.endpoints.query.initiate({ id: '1' }),
-      )
-
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'argSchema failed validation',
-        data: expect.any(Array),
-      })
-
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'argSchema',
-        value: { id: '1' },
-        arg: { id: '1' },
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-
-      const result = await storeRef.store.dispatch(
-        // @ts-expect-error
-        api.endpoints.query.initiate({ id: '1' }),
-      )
-
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'argSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'argSchema',
-        value: { id: '1' },
-        arg: { id: '1' },
-      })
-    })
-  })
-  describe('rawResponseSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('rawResponse', opts),
-        endpoints: (build) => ({
-          query: build.query<{ success: boolean }, void>({
-            query: () => '/success',
-            rawResponseSchema: v.object({ value: v.literal('success!') }),
-            ...endpointOptions('rawResponse', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's raw result", async () => {
-      const api = makeApi()
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual(serializedSchemaError)
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawResponseSchema',
-        value: { value: 'success' },
-        arg: undefined,
-      })
-    })
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toBeUndefined()
-    })
-    test('can be skipped on the endpoint', async () => {
-      const api = makeApi({ endpointSkip: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toBeUndefined()
-    })
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'rawResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawResponseSchema',
-        value: { value: 'success' },
-        arg: undefined,
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'rawResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawResponseSchema',
-        value: { value: 'success' },
-        arg: undefined,
-      })
-    })
-  })
-  describe('responseSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('response', opts),
-        endpoints: (build) => ({
-          query: build.query<{ success: boolean }, void>({
-            query: () => '/success',
-            transformResponse: () => ({ success: false }),
-            responseSchema: v.object({ success: v.literal(true) }),
-            ...endpointOptions('response', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's final result", async () => {
-      const api = makeApi()
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual(serializedSchemaError)
-
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'responseSchema',
-        value: { success: false },
-        arg: undefined,
-      })
-    })
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toBeUndefined()
-    })
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'responseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'responseSchema',
-        value: { success: false },
-        arg: undefined,
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'responseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'responseSchema',
-        value: { success: false },
-        arg: undefined,
-      })
-    })
-  })
-  describe('rawErrorResponseSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('rawErrorResponse', opts),
-        endpoints: (build) => ({
-          query: build.query<{ success: boolean }, void>({
-            query: () => '/error',
-            rawErrorResponseSchema: v.object({
-              status: v.pipe(v.number(), v.minValue(400), v.maxValue(499)),
-              data: v.unknown(),
-            }),
-            ...endpointOptions('rawErrorResponse', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's raw error result", async () => {
-      const api = makeApi()
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual(serializedSchemaError)
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawErrorResponseSchema',
-        value: { status: 500, data: { value: 'error' } },
-        arg: undefined,
-      })
-    })
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).not.toEqual(serializedSchemaError)
-    })
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'rawErrorResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawErrorResponseSchema',
-        value: { status: 500, data: { value: 'error' } },
-        arg: undefined,
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'rawErrorResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'rawErrorResponseSchema',
-        value: { status: 500, data: { value: 'error' } },
-        arg: undefined,
-      })
-    })
-  })
-  describe('errorResponseSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('errorResponse', opts),
-        endpoints: (build) => ({
-          query: build.query<{ success: boolean }, void>({
-            query: () => '/error',
-            transformErrorResponse: (error): FetchBaseQueryError => ({
-              status: 'CUSTOM_ERROR',
-              data: error,
-              error: 'whoops',
-            }),
-            errorResponseSchema: v.object({
-              status: v.literal('CUSTOM_ERROR'),
-              error: v.literal('oh no'),
-              data: v.unknown(),
-            }),
-            ...endpointOptions('errorResponse', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's final error result", async () => {
-      const api = makeApi()
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual(serializedSchemaError)
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'errorResponseSchema',
-        value: {
-          status: 'CUSTOM_ERROR',
-          error: 'whoops',
-          data: { status: 500, data: { value: 'error' } },
-        },
-        arg: undefined,
-      })
-    })
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).not.toEqual(serializedSchemaError)
-    })
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'errorResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'errorResponseSchema',
-        value: {
-          status: 'CUSTOM_ERROR',
-          error: 'whoops',
-          data: { status: 500, data: { value: 'error' } },
-        },
-        arg: undefined,
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'errorResponseSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'errorResponseSchema',
-        value: {
-          status: 'CUSTOM_ERROR',
-          error: 'whoops',
-          data: { status: 500, data: { value: 'error' } },
-        },
-        arg: undefined,
-      })
-    })
-  })
-  describe('metaSchema', () => {
-    const makeApi = (opts?: SkipApiOptions) =>
-      createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-        ...apiOptions('meta', opts),
-        endpoints: (build) => ({
-          query: build.query<{ success: boolean }, void>({
-            query: () => '/success',
-            metaSchema: v.object({
-              request: v.instance(Request),
-              response: v.instance(Response),
-              timestamp: v.number(),
-            }),
-            ...endpointOptions('meta', opts),
-          }),
-        }),
-      })
-    test("can be used to validate the endpoint's meta result", async () => {
-      const api = makeApi()
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual(serializedSchemaError)
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'metaSchema',
-        value: {
-          request: expect.any(Request),
-          response: expect.any(Response),
-        },
-        arg: undefined,
-      })
-    })
-    test.each(skipCases)('can be skipped %s', async (_, arg) => {
-      const api = makeApi(arg)
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toBeUndefined()
-    })
-    test('can be converted to a standard error object at global level', async () => {
-      const api = makeApi({ globalCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'metaSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'metaSchema',
-        value: {
-          request: expect.any(Request),
-          response: expect.any(Response),
-        },
-        arg: undefined,
-      })
-    })
-    test('can be converted to a standard error object at endpoint level', async () => {
-      const api = makeApi({ endpointCatch: true })
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const result = await storeRef.store.dispatch(
-        api.endpoints.query.initiate(),
-      )
-      expect(result?.error).toEqual({
-        status: 'CUSTOM_ERROR',
-        error: 'metaSchema failed validation',
-        data: expect.any(Array),
-      })
-      expectFailureHandlersToHaveBeenCalled({
-        schemaName: 'metaSchema',
-        value: {
-          request: expect.any(Request),
-          response: expect.any(Response),
-        },
-        arg: undefined,
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/defaultSerializeQueryArgs.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/defaultSerializeQueryArgs.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-import { defaultSerializeQueryArgs } from '@internal/query/defaultSerializeQueryArgs'
-
-const endpointDefinition: any = {}
-const endpointName = 'test'
-
-test('string arg', () => {
-  expect(
-    defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: 'arg',
-    }),
-  ).toMatchInlineSnapshot(`"test("arg")"`)
-})
-
-test('number arg', () => {
-  expect(
-    defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: 5,
-    }),
-  ).toMatchInlineSnapshot(`"test(5)"`)
-})
-
-test('bigint arg has non-default serialization (intead of throwing)', () => {
-  expect(
-    defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: BigInt(10),
-    }),
-  ).toMatchInlineSnapshot(`"test({"$bigint":"10"})"`)
-})
-
-test('simple object arg is sorted', () => {
-  expect(
-    defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: { name: 'arg', age: 5 },
-    }),
-  ).toMatchInlineSnapshot(`"test({"age":5,"name":"arg"})"`)
-})
-
-test('nested object arg is sorted recursively', () => {
-  expect(
-    defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: { name: { last: 'Split', first: 'Banana' }, age: 5 },
-    }),
-  ).toMatchInlineSnapshot(
-    `"test({"age":5,"name":{"first":"Banana","last":"Split"}})"`,
-  )
-})
-
-test('Fully serializes a deeply nested object', () => {
-  const nestedObj = {
-    a: {
-      a1: {
-        a11: {
-          a111: 1,
-        },
-      },
-    },
-    b: {
-      b2: {
-        b21: 3,
-      },
-      b1: {
-        b11: 2,
-      },
-    },
-  }
-
-  const res = defaultSerializeQueryArgs({
-    endpointDefinition,
-    endpointName,
-    queryArgs: nestedObj,
-  })
-  expect(res).toMatchInlineSnapshot(
-    `"test({"a":{"a1":{"a11":{"a111":1}}},"b":{"b1":{"b11":2},"b2":{"b21":3}}})"`,
-  )
-})
-
-test('Caches results for plain objects', () => {
-  const testData = Array.from({ length: 10000 }).map((_, i) => {
-    return {
-      albumId: i,
-      id: i,
-      title: 'accusamus beatae ad facilis cum similique qui sunt',
-      url: 'https://via.placeholder.com/600/92c952',
-      thumbnailUrl: 'https://via.placeholder.com/150/92c952',
-    }
-  })
-
-  const data = {
-    testData,
-  }
-
-  const runWithTimer = (data: any) => {
-    const start = Date.now()
-    const res = defaultSerializeQueryArgs({
-      endpointDefinition,
-      endpointName,
-      queryArgs: data,
-    })
-    const end = Date.now()
-    const duration = end - start
-    return [res, duration] as const
-  }
-
-  const [res1, time1] = runWithTimer(data)
-  const [res2, time2] = runWithTimer(data)
-
-  expect(res1).toBe(res2)
-  expect(time2).toBeLessThanOrEqual(time1)
-  // Locally, stringifying 10K items takes 25-30ms.
-  // Assuming the WeakMap cache hit, this _should_ be 0
-  expect(time2).toBeLessThan(2)
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/devWarnings.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/devWarnings.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,552 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { configureStore } from '@reduxjs/toolkit'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(noop)
-
-const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-beforeEach(() => {
-  vi.stubEnv('NODE_ENV', 'development')
-})
-
-afterEach(() => {
-  vi.unstubAllEnvs()
-  vi.clearAllMocks()
-})
-
-afterAll(() => {
-  vi.restoreAllMocks()
-  vi.unstubAllEnvs()
-})
-
-const baseUrl = 'https://example.com'
-
-function createApis() {
-  const api1 = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl }),
-    endpoints: (builder) => ({
-      q1: builder.query({ query: () => '/success' }),
-    }),
-  })
-
-  const api1_2 = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl }),
-    endpoints: (builder) => ({
-      q1: builder.query({ query: () => '/success' }),
-    }),
-  })
-
-  const api2 = createApi({
-    reducerPath: 'api2',
-    baseQuery: fetchBaseQuery({ baseUrl }),
-    endpoints: (builder) => ({
-      q1: builder.query({ query: () => '/success' }),
-    }),
-  })
-  return [api1, api1_2, api2] as const
-}
-
-let [api1, api1_2, api2] = createApis()
-beforeEach(() => {
-  ;[api1, api1_2, api2] = createApis()
-})
-
-const reMatchMissingMiddlewareError =
-  /Warning: Middleware for RTK-Query API at reducerPath "api" has not been added to the store/
-
-describe('missing middleware', () => {
-  test.each([
-    ['development', true],
-    ['production', false],
-  ])('%s warns if middleware is missing: %s', (env, shouldWarn) => {
-    vi.stubEnv('NODE_ENV', env)
-
-    const store = configureStore({
-      reducer: { [api1.reducerPath]: api1.reducer },
-    })
-    const doDispatch = () => {
-      store.dispatch(api1.endpoints.q1.initiate(undefined))
-    }
-    if (shouldWarn) {
-      expect(doDispatch).toThrowError(reMatchMissingMiddlewareError)
-    } else {
-      expect(doDispatch).not.toThrowError()
-    }
-  })
-
-  test('does not warn if middleware is not missing', () => {
-    const store = configureStore({
-      reducer: { [api1.reducerPath]: api1.reducer },
-      middleware: (gdm) => gdm().concat(api1.middleware),
-    })
-    store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-  })
-
-  test('warns only once per api', () => {
-    const store = configureStore({
-      reducer: { [api1.reducerPath]: api1.reducer },
-    })
-    const doDispatch = () => {
-      store.dispatch(api1.endpoints.q1.initiate(undefined))
-    }
-
-    expect(doDispatch).toThrowError(reMatchMissingMiddlewareError)
-    expect(doDispatch).not.toThrowError()
-  })
-
-  test('warns multiple times for multiple apis', () => {
-    const store = configureStore({
-      reducer: {
-        [api1.reducerPath]: api1.reducer,
-        [api2.reducerPath]: api2.reducer,
-      },
-    })
-    const doDispatch1 = () => {
-      store.dispatch(api1.endpoints.q1.initiate(undefined))
-    }
-    const doDispatch2 = () => {
-      store.dispatch(api2.endpoints.q1.initiate(undefined))
-    }
-    expect(doDispatch1).toThrowError(reMatchMissingMiddlewareError)
-    expect(doDispatch2).toThrowError(
-      /Warning: Middleware for RTK-Query API at reducerPath "api2" has not been added to the store/,
-    )
-  })
-})
-
-describe('missing reducer', () => {
-  describe.each([
-    ['development', true],
-    ['production', false],
-  ])('%s warns if reducer is missing: %s', (env, shouldWarn) => {
-    beforeEach(() => {
-      vi.stubEnv('NODE_ENV', env)
-    })
-
-    afterAll(() => {
-      vi.unstubAllEnvs()
-    })
-
-    test('middleware not crashing if reducer is missing', async () => {
-      const store = configureStore({
-        reducer: { x: () => 0 },
-        // @ts-expect-error
-        middleware: (gdm) => gdm().concat(api1.middleware),
-      })
-      await store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-      expect(process.env.NODE_ENV).toBe(env)
-    })
-
-    test(`warning behavior`, () => {
-      const store = configureStore({
-        reducer: { x: () => 0 },
-        // @ts-expect-error
-        middleware: (gdm) => gdm().concat(api1.middleware),
-      })
-      // @ts-expect-error
-      api1.endpoints.q1.select(undefined)(store.getState())
-
-      expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-      expect(process.env.NODE_ENV).toBe(env)
-
-      if (shouldWarn) {
-        expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-        expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-          'Error: No data found at `state.api`. Did you forget to add the reducer to the store?',
-        )
-      } else {
-        expect(consoleErrorSpy).not.toHaveBeenCalled()
-      }
-    })
-  })
-
-  test('does not warn if reducer is not missing', () => {
-    const store = configureStore({
-      reducer: { [api1.reducerPath]: api1.reducer },
-      middleware: (gdm) => gdm().concat(api1.middleware),
-    })
-    api1.endpoints.q1.select(undefined)(store.getState())
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-  })
-
-  test('warns only once per api', () => {
-    const store = configureStore({
-      reducer: { x: () => 0 },
-      // @ts-expect-error
-      middleware: (gdm) => gdm().concat(api1.middleware),
-    })
-    // @ts-expect-error
-    api1.endpoints.q1.select(undefined)(store.getState())
-    // @ts-expect-error
-    api1.endpoints.q1.select(undefined)(store.getState())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      'Error: No data found at `state.api`. Did you forget to add the reducer to the store?',
-    )
-  })
-
-  test('warns multiple times for multiple apis', () => {
-    const store = configureStore({
-      reducer: { x: () => 0 },
-      // @ts-expect-error
-      middleware: (gdm) => gdm().concat(api1.middleware),
-    })
-    // @ts-expect-error
-    api1.endpoints.q1.select(undefined)(store.getState())
-    // @ts-expect-error
-    api2.endpoints.q1.select(undefined)(store.getState())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledTimes(2)
-
-    expect(consoleErrorSpy).toHaveBeenNthCalledWith(
-      1,
-      'Error: No data found at `state.api`. Did you forget to add the reducer to the store?',
-    )
-
-    expect(consoleErrorSpy).toHaveBeenNthCalledWith(
-      2,
-      'Error: No data found at `state.api2`. Did you forget to add the reducer to the store?',
-    )
-  })
-})
-
-test('warns for reducer and also throws error if everything is missing', async () => {
-  const store = configureStore({
-    reducer: { x: () => 0 },
-  })
-  // @ts-expect-error
-  api1.endpoints.q1.select(undefined)(store.getState())
-  const doDispatch = () => {
-    store.dispatch(api1.endpoints.q1.initiate(undefined))
-  }
-  expect(doDispatch).toThrowError(reMatchMissingMiddlewareError)
-
-  expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-  expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-  expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-    'Error: No data found at `state.api`. Did you forget to add the reducer to the store?',
-  )
-})
-
-describe('warns on multiple apis using the same `reducerPath`', () => {
-  test('common: two apis, same order', async () => {
-    const store = configureStore({
-      reducer: {
-        // TS 5.3 now errors on identical object keys. We want to force that behavior.
-        // @ts-ignore
-        [api1.reducerPath]: api1.reducer,
-        // @ts-ignore
-        [api1_2.reducerPath]: api1_2.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api1.middleware, api1_2.middleware),
-    })
-    await store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).toHaveBeenCalledOnce()
-
-    // only second api prints
-    expect(consoleWarnSpy).toHaveBeenLastCalledWith(
-      `There is a mismatch between slice and middleware for the reducerPath "api".
-You can only have one api per reducer path, this will lead to crashes in various situations!
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`,
-    )
-  })
-
-  test('common: two apis, opposing order', async () => {
-    const store = configureStore({
-      reducer: {
-        // @ts-ignore
-        [api1.reducerPath]: api1.reducer,
-        // @ts-ignore
-        [api1_2.reducerPath]: api1_2.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api1_2.middleware, api1.middleware),
-    })
-    await store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).toHaveBeenCalledTimes(2)
-
-    // both apis print
-    expect(consoleWarnSpy).toHaveBeenNthCalledWith(
-      1,
-      `There is a mismatch between slice and middleware for the reducerPath "api".
-You can only have one api per reducer path, this will lead to crashes in various situations!
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`,
-    )
-
-    expect(consoleWarnSpy).toHaveBeenNthCalledWith(
-      2,
-      `There is a mismatch between slice and middleware for the reducerPath "api".
-You can only have one api per reducer path, this will lead to crashes in various situations!
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`,
-    )
-  })
-
-  test('common: two apis, only first middleware', async () => {
-    const store = configureStore({
-      reducer: {
-        // @ts-ignore
-        [api1.reducerPath]: api1.reducer,
-        // @ts-ignore
-        [api1_2.reducerPath]: api1_2.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api1.middleware),
-    })
-    await store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).toHaveBeenCalledOnce()
-
-    expect(consoleWarnSpy).toHaveBeenLastCalledWith(
-      `There is a mismatch between slice and middleware for the reducerPath "api".
-You can only have one api per reducer path, this will lead to crashes in various situations!
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`,
-    )
-  })
-
-  /**
-   * This is the one edge case that we currently cannot detect:
-   * Multiple apis with the same reducer key and only the middleware of the last api is being used.
-   *
-   * It would be great to support this case as well, but for now:
-   * "It is what it is."
-   */
-  test.todo('common: two apis, only second middleware', async () => {
-    const store = configureStore({
-      reducer: {
-        // @ts-ignore
-        [api1.reducerPath]: api1.reducer,
-        // @ts-ignore
-        [api1_2.reducerPath]: api1_2.reducer,
-      },
-      middleware: (gDM) => gDM().concat(api1_2.middleware),
-    })
-    await store.dispatch(api1.endpoints.q1.initiate(undefined))
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    expect(consoleWarnSpy).toHaveBeenCalledOnce()
-
-    expect(consoleWarnSpy).toHaveBeenLastCalledWith(
-      `There is a mismatch between slice and middleware for the reducerPath "api".
-You can only have one api per reducer path, this will lead to crashes in various situations!
-If you have multiple apis, you *have* to specify the reducerPath option when using createApi!`,
-    )
-  })
-})
-
-describe('`console.error` on unhandled errors during `initiate`', () => {
-  test('error thrown in `baseQuery`', async () => {
-    const api = createApi({
-      baseQuery(): { data: any } {
-        throw new Error('this was kinda expected')
-      },
-      endpoints: (build) => ({
-        baseQuery: build.query<any, void>({ query() {} }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.baseQuery.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "baseQuery".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-
-  test('error thrown in `queryFn`', async () => {
-    const api = createApi({
-      baseQuery() {
-        return { data: {} }
-      },
-      endpoints: (build) => ({
-        queryFn: build.query<any, void>({
-          queryFn() {
-            throw new Error('this was kinda expected')
-          },
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.queryFn.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "queryFn".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-
-  test('error thrown in `transformResponse`', async () => {
-    const api = createApi({
-      baseQuery() {
-        return { data: {} }
-      },
-      endpoints: (build) => ({
-        transformRspn: build.query<any, void>({
-          query() {},
-          transformResponse() {
-            throw new Error('this was kinda expected')
-          },
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.transformRspn.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "transformRspn".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-
-  test('error thrown in `transformErrorResponse`', async () => {
-    const api = createApi({
-      baseQuery() {
-        return { error: {} }
-      },
-      endpoints: (build) => ({
-        // @ts-ignore TS doesn't like `() => never` for `tER`
-        transformErRspn: build.query<number, void>({
-          // @ts-ignore TS doesn't like `() => never` for `tER`
-          query: () => '/dummy',
-          // @ts-ignore TS doesn't like `() => never` for `tER`
-          transformErrorResponse() {
-            throw new Error('this was kinda expected')
-          },
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.transformErRspn.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "transformErRspn".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-
-  test('`fetchBaseQuery`: error thrown in `prepareHeaders`', async () => {
-    const api = createApi({
-      baseQuery: fetchBaseQuery({
-        baseUrl,
-        prepareHeaders() {
-          throw new Error('this was kinda expected')
-        },
-      }),
-      endpoints: (build) => ({
-        prep: build.query<any, void>({
-          query() {
-            return '/success'
-          },
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.prep.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "prep".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-
-  test('`fetchBaseQuery`: error thrown in `validateStatus`', async () => {
-    const api = createApi({
-      baseQuery: fetchBaseQuery({
-        baseUrl,
-      }),
-      endpoints: (build) => ({
-        val: build.query<any, void>({
-          query() {
-            return {
-              url: '/success',
-
-              validateStatus() {
-                throw new Error('this was kinda expected')
-              },
-            }
-          },
-        }),
-      }),
-    })
-    const store = configureStore({
-      reducer: { [api.reducerPath]: api.reducer },
-      middleware: (gdm) => gdm().concat(api.middleware),
-    })
-    await store.dispatch(api.endpoints.val.initiate())
-
-    expect(consoleWarnSpy).not.toHaveBeenCalled()
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "val".
-In the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('this was kinda expected'),
-    )
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/errorHandling.test-d.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/errorHandling.test-d.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-import { useState } from 'react'
-
-const mockSuccessResponse = { value: 'success' }
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: (build) => ({
-    update: build.mutation<typeof mockSuccessResponse, any>({
-      query: () => ({ url: 'success' }),
-    }),
-    failedUpdate: build.mutation<typeof mockSuccessResponse, any>({
-      query: () => ({ url: 'error' }),
-    }),
-  }),
-})
-
-describe('type tests', () => {
-  test('a mutation is unwrappable and has the correct types', () => {
-    function User() {
-      const [manualError, setManualError] = useState<any>()
-
-      const [update, { isLoading, data, error }] =
-        api.endpoints.update.useMutation()
-
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="data">{JSON.stringify(data)}</div>
-          <div data-testid="error">{JSON.stringify(error)}</div>
-          <div data-testid="manuallySetError">
-            {JSON.stringify(manualError)}
-          </div>
-          <button
-            onClick={() => {
-              update({ name: 'hello' })
-                .unwrap()
-                .then((result) => {
-                  expectTypeOf(result).toEqualTypeOf(mockSuccessResponse)
-
-                  setManualError(undefined)
-                })
-                .catch(setManualError)
-            }}
-          >
-            Update User
-          </button>
-        </div>
-      )
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/errorHandling.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/errorHandling.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,657 +1,0 @@
-import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'
-import type { BaseQueryFn, BaseQueryApi } from '@reduxjs/toolkit/query/react'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-import {
-  act,
-  fireEvent,
-  render,
-  renderHook,
-  screen,
-  waitFor,
-} from '@testing-library/react'
-import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'
-import axios from 'axios'
-import { HttpResponse, http } from 'msw'
-import * as React from 'react'
-import { useDispatch } from 'react-redux'
-import { hookWaitFor, setupApiStore } from '@internal/tests/utils/helpers'
-import { server } from '@internal/query/tests/mocks/server'
-
-const baseQuery = fetchBaseQuery({ baseUrl: 'https://example.com' })
-
-const api = createApi({
-  baseQuery,
-  endpoints(build) {
-    return {
-      query: build.query({ query: () => '/query' }),
-      mutation: build.mutation({
-        query: () => ({ url: '/mutation', method: 'POST' }),
-      }),
-    }
-  },
-})
-
-const storeRef = setupApiStore(api)
-
-const failQueryOnce = http.get(
-  '/query',
-  () => HttpResponse.json({ value: 'failed' }, { status: 500 }),
-  { once: true },
-)
-
-describe('fetchBaseQuery', () => {
-  let commonBaseQueryApiArgs: BaseQueryApi = {} as any
-  beforeEach(() => {
-    const abortController = new AbortController()
-    commonBaseQueryApiArgs = {
-      signal: abortController.signal,
-      abort: (reason) =>
-        //@ts-ignore
-        abortController.abort(reason),
-      dispatch: storeRef.store.dispatch,
-      getState: storeRef.store.getState,
-      extra: undefined,
-      type: 'query',
-      endpoint: 'doesntmatterhere',
-    }
-  })
-  test('success', async () => {
-    await expect(
-      baseQuery('/success', commonBaseQueryApiArgs, {}),
-    ).resolves.toEqual({
-      data: { value: 'success' },
-      meta: {
-        request: expect.any(Object),
-        response: expect.any(Object),
-      },
-    })
-  })
-  test('error', async () => {
-    server.use(failQueryOnce)
-    await expect(
-      baseQuery('/error', commonBaseQueryApiArgs, {}),
-    ).resolves.toEqual({
-      error: {
-        data: { value: 'error' },
-        status: 500,
-      },
-      meta: {
-        request: expect.any(Object),
-        response: expect.any(Object),
-      },
-    })
-  })
-})
-
-describe('query error handling', () => {
-  test('success', async () => {
-    server.use(
-      http.get('https://example.com/query', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.query.useQuery({}), {
-      wrapper: storeRef.wrapper,
-    })
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: false,
-        isSuccess: true,
-        data: { value: 'success' },
-      }),
-    )
-  })
-
-  test('error', async () => {
-    server.use(
-      http.get('https://example.com/query', () =>
-        HttpResponse.json({ value: 'error' }, { status: 500 }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.query.useQuery({}), {
-      wrapper: storeRef.wrapper,
-    })
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: true,
-        isSuccess: false,
-        error: {
-          status: 500,
-          data: { value: 'error' },
-        },
-      }),
-    )
-  })
-
-  test('success -> error', async () => {
-    server.use(
-      http.get('https://example.com/query', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.query.useQuery({}), {
-      wrapper: storeRef.wrapper,
-    })
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: false,
-        isSuccess: true,
-        data: { value: 'success' },
-      }),
-    )
-
-    server.use(
-      http.get(
-        'https://example.com/query',
-        () => HttpResponse.json({ value: 'error' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    act(() => void result.current.refetch())
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: true,
-        isSuccess: false,
-        error: {
-          status: 500,
-          data: { value: 'error' },
-        },
-        // last data will stay available
-        data: { value: 'success' },
-      }),
-    )
-  })
-
-  test('error -> success', async () => {
-    server.use(
-      http.get('https://example.com/query', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    server.use(
-      http.get(
-        'https://example.com/query',
-        () => HttpResponse.json({ value: 'error' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.query.useQuery({}), {
-      wrapper: storeRef.wrapper,
-    })
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: true,
-        isSuccess: false,
-        error: {
-          status: 500,
-          data: { value: 'error' },
-        },
-      }),
-    )
-
-    act(() => void result.current.refetch())
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: false,
-        isSuccess: true,
-        data: { value: 'success' },
-      }),
-    )
-  })
-})
-
-describe('mutation error handling', () => {
-  test('success', async () => {
-    server.use(
-      http.post('https://example.com/mutation', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.mutation.useMutation(), {
-      wrapper: storeRef.wrapper,
-    })
-
-    const [trigger] = result.current
-
-    act(() => void trigger({}))
-
-    await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-    expect(result.current[1]).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: false,
-        isSuccess: true,
-        data: { value: 'success' },
-      }),
-    )
-  })
-
-  test('error', async () => {
-    server.use(
-      http.post('https://example.com/mutation', () =>
-        HttpResponse.json({ value: 'error' }, { status: 500 }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.mutation.useMutation(), {
-      wrapper: storeRef.wrapper,
-    })
-
-    const [trigger] = result.current
-
-    act(() => void trigger({}))
-
-    await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-    expect(result.current[1]).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: true,
-        isSuccess: false,
-        error: {
-          status: 500,
-          data: { value: 'error' },
-        },
-      }),
-    )
-  })
-
-  test('success -> error', async () => {
-    server.use(
-      http.post('https://example.com/mutation', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.mutation.useMutation(), {
-      wrapper: storeRef.wrapper,
-    })
-
-    {
-      const [trigger] = result.current
-
-      act(() => void trigger({}))
-
-      await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-      expect(result.current[1]).toEqual(
-        expect.objectContaining({
-          isLoading: false,
-          isError: false,
-          isSuccess: true,
-          data: { value: 'success' },
-        }),
-      )
-    }
-
-    server.use(
-      http.post(
-        'https://example.com/mutation',
-        () => HttpResponse.json({ value: 'error' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    {
-      const [trigger] = result.current
-
-      act(() => void trigger({}))
-
-      await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-      expect(result.current[1]).toEqual(
-        expect.objectContaining({
-          isLoading: false,
-          isError: true,
-          isSuccess: false,
-          error: {
-            status: 500,
-            data: { value: 'error' },
-          },
-        }),
-      )
-      expect(result.current[1].data).toBeUndefined()
-    }
-  })
-
-  test('error -> success', async () => {
-    server.use(
-      http.post('https://example.com/mutation', () =>
-        HttpResponse.json({ value: 'success' }),
-      ),
-    )
-    server.use(
-      http.post(
-        'https://example.com/mutation',
-        () => HttpResponse.json({ value: 'error' }, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    const { result } = renderHook(() => api.endpoints.mutation.useMutation(), {
-      wrapper: storeRef.wrapper,
-    })
-
-    {
-      const [trigger] = result.current
-
-      act(() => void trigger({}))
-
-      await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-      expect(result.current[1]).toEqual(
-        expect.objectContaining({
-          isLoading: false,
-          isError: true,
-          isSuccess: false,
-          error: {
-            status: 500,
-            data: { value: 'error' },
-          },
-        }),
-      )
-    }
-
-    {
-      const [trigger] = result.current
-
-      act(() => void trigger({}))
-
-      await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-      expect(result.current[1]).toEqual(
-        expect.objectContaining({
-          isLoading: false,
-          isError: false,
-          isSuccess: true,
-        }),
-      )
-      expect(result.current[1].error).toBeUndefined()
-    }
-  })
-})
-
-describe('custom axios baseQuery', () => {
-  const axiosBaseQuery =
-    (
-      { baseUrl }: { baseUrl: string } = { baseUrl: '' },
-    ): BaseQueryFn<
-      {
-        url: string
-        method?: AxiosRequestConfig['method']
-        data?: AxiosRequestConfig['data']
-      },
-      unknown,
-      unknown,
-      unknown,
-      { response: AxiosResponse; request: AxiosRequestConfig }
-    > =>
-    async ({ url, method, data }) => {
-      const config = { url: baseUrl + url, method, data }
-      try {
-        const result = await axios(config)
-        return {
-          data: result.data,
-          meta: { request: config, response: result },
-        }
-      } catch (axiosError) {
-        const err = axiosError as AxiosError
-        return {
-          error: {
-            status: err.response?.status,
-            data: err.response?.data,
-          },
-          meta: { request: config, response: err.response as AxiosResponse },
-        }
-      }
-    }
-
-  type SuccessResponse = { value: 'success' }
-  const api = createApi({
-    baseQuery: axiosBaseQuery({
-      baseUrl: 'https://example.com',
-    }),
-    endpoints(build) {
-      return {
-        query: build.query<SuccessResponse, void>({
-          query: () => ({ url: '/success', method: 'get' }),
-          transformResponse: (result: SuccessResponse, meta) => {
-            return { ...result, metaResponseData: meta?.response.data }
-          },
-        }),
-        mutation: build.mutation<SuccessResponse, any>({
-          query: () => ({ url: '/success', method: 'post' }),
-        }),
-      }
-    },
-  })
-
-  const storeRef = setupApiStore(api)
-
-  test('axiosBaseQuery transformResponse uses its custom meta format', async () => {
-    const result = await storeRef.store.dispatch(api.endpoints.query.initiate())
-
-    expect(result.data).toEqual({
-      value: 'success',
-      metaResponseData: { value: 'success' },
-    })
-  })
-
-  test('axios errors behave as expected', async () => {
-    server.use(
-      http.get('https://example.com/success', () =>
-        HttpResponse.json({ value: 'error' }, { status: 500 }),
-      ),
-    )
-    const { result } = renderHook(() => api.endpoints.query.useQuery(), {
-      wrapper: storeRef.wrapper,
-    })
-
-    await hookWaitFor(() => expect(result.current.isFetching).toBeFalsy())
-    expect(result.current).toEqual(
-      expect.objectContaining({
-        isLoading: false,
-        isError: true,
-        isSuccess: false,
-        error: { status: 500, data: { value: 'error' } },
-      }),
-    )
-  })
-})
-
-describe('error handling in a component', () => {
-  const mockErrorResponse = { value: 'error', very: 'mean' }
-  const mockSuccessResponse = { value: 'success' }
-
-  const api = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-    endpoints: (build) => ({
-      update: build.mutation<typeof mockSuccessResponse, any>({
-        query: () => ({ url: 'success' }),
-      }),
-      failedUpdate: build.mutation<typeof mockSuccessResponse, any>({
-        query: () => ({ url: 'error' }),
-      }),
-    }),
-  })
-  const storeRef = setupApiStore(api)
-
-  test('a mutation is unwrappable and has the correct types', async () => {
-    server.use(
-      http.get(
-        'https://example.com/success',
-        () => HttpResponse.json(mockErrorResponse, { status: 500 }),
-        { once: true },
-      ),
-    )
-
-    function User() {
-      const [manualError, setManualError] = React.useState<any>()
-      const [update, { isLoading, data, error }] =
-        api.endpoints.update.useMutation()
-
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="data">{JSON.stringify(data)}</div>
-          <div data-testid="error">{JSON.stringify(error)}</div>
-          <div data-testid="manuallySetError">
-            {JSON.stringify(manualError)}
-          </div>
-          <button
-            onClick={() => {
-              update({ name: 'hello' })
-                .unwrap()
-                .then((result) => {
-                  setManualError(undefined)
-                })
-                .catch((error) => act(() => setManualError(error)))
-            }}
-          >
-            Update User
-          </button>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    fireEvent.click(screen.getByText('Update User'))
-    expect(screen.getByTestId('isLoading').textContent).toBe('true')
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-
-    // Make sure the hook and the unwrapped action return the same things in an error state
-    await waitFor(() =>
-      expect(screen.getByTestId('error').textContent).toEqual(
-        screen.getByTestId('manuallySetError').textContent,
-      ),
-    )
-
-    fireEvent.click(screen.getByText('Update User'))
-    expect(screen.getByTestId('isLoading').textContent).toBe('true')
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('error').textContent).toBeFalsy(),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('manuallySetError').textContent).toBeFalsy(),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('data').textContent).toEqual(
-        JSON.stringify(mockSuccessResponse),
-      ),
-    )
-  })
-
-  for (const track of [true, false]) {
-    test(`an un-subscribed mutation will still return something useful (success case, track: ${track})`, async () => {
-      const hook = renderHook(useDispatch, { wrapper: storeRef.wrapper })
-
-      const dispatch = hook.result.current as ThunkDispatch<
-        any,
-        any,
-        UnknownAction
-      >
-      let mutationqueryFulfilled: ReturnType<
-        ReturnType<typeof api.endpoints.update.initiate>
-      >
-      act(() => {
-        mutationqueryFulfilled = dispatch(
-          api.endpoints.update.initiate({}, { track }),
-        )
-      })
-      const result = await mutationqueryFulfilled!
-      expect(result).toMatchObject({
-        data: { value: 'success' },
-      })
-    })
-
-    test(`an un-subscribed mutation will still return something useful (error case, track: ${track})`, async () => {
-      const hook = renderHook(useDispatch, { wrapper: storeRef.wrapper })
-
-      const dispatch = hook.result.current as ThunkDispatch<
-        any,
-        any,
-        UnknownAction
-      >
-      let mutationqueryFulfilled: ReturnType<
-        ReturnType<typeof api.endpoints.failedUpdate.initiate>
-      >
-      act(() => {
-        mutationqueryFulfilled = dispatch(
-          api.endpoints.failedUpdate.initiate({}, { track }),
-        )
-      })
-      const result = await mutationqueryFulfilled!
-      expect(result).toMatchObject({
-        error: {
-          status: 500,
-          data: { value: 'error' },
-        },
-      })
-    })
-    test(`an un-subscribed mutation will still be unwrappable (success case), track: ${track}`, async () => {
-      const hook = renderHook(useDispatch, { wrapper: storeRef.wrapper })
-
-      const dispatch = hook.result.current as ThunkDispatch<
-        any,
-        any,
-        UnknownAction
-      >
-      let mutationqueryFulfilled: ReturnType<
-        ReturnType<typeof api.endpoints.update.initiate>
-      >
-      act(() => {
-        mutationqueryFulfilled = dispatch(
-          api.endpoints.update.initiate({}, { track }),
-        )
-      })
-      const result = await mutationqueryFulfilled!.unwrap()
-      expect(result).toMatchObject({
-        value: 'success',
-      })
-    })
-
-    test(`an un-subscribed mutation will still be unwrappable (error case, track: ${track})`, async () => {
-      const hook = renderHook(useDispatch, { wrapper: storeRef.wrapper })
-
-      const dispatch = hook.result.current as ThunkDispatch<
-        any,
-        any,
-        UnknownAction
-      >
-      let mutationqueryFulfilled: ReturnType<
-        ReturnType<typeof api.endpoints.failedUpdate.initiate>
-      >
-      act(() => {
-        mutationqueryFulfilled = dispatch(
-          api.endpoints.failedUpdate.initiate({}, { track }),
-        )
-      })
-      const unwrappedPromise = mutationqueryFulfilled!.unwrap()
-      await expect(unwrappedPromise).rejects.toMatchObject({
-        status: 500,
-        data: { value: 'error' },
-      })
-    })
-  }
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/fakeBaseQuery.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/fakeBaseQuery.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,148 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { configureStore } from '@reduxjs/toolkit'
-import { createApi, fakeBaseQuery } from '@reduxjs/toolkit/query'
-
-type CustomErrorType = { type: 'Custom' }
-
-const api = createApi({
-  baseQuery: fakeBaseQuery<CustomErrorType>(),
-  endpoints: (build) => ({
-    withQuery: build.query<string, string>({
-      // @ts-expect-error
-      query(arg: string) {
-        return `resultFrom(${arg})`
-      },
-      // @ts-expect-error
-      transformResponse(response) {
-        return response.wrappedByBaseQuery
-      },
-    }),
-    withQueryFn: build.query<string, string>({
-      queryFn(arg: string) {
-        return { data: `resultFrom(${arg})` }
-      },
-    }),
-    withInvalidDataQueryFn: build.query<string, string>({
-      // @ts-expect-error
-      queryFn(arg: string) {
-        return { data: 5 }
-      },
-    }),
-    withErrorQueryFn: build.query<string, string>({
-      queryFn(arg: string) {
-        return { error: { type: 'Custom' } }
-      },
-    }),
-    withInvalidErrorQueryFn: build.query<string, string>({
-      // @ts-expect-error
-      queryFn(arg: string) {
-        return { error: 5 }
-      },
-    }),
-    withAsyncQueryFn: build.query<string, string>({
-      async queryFn(arg: string) {
-        return { data: `resultFrom(${arg})` }
-      },
-    }),
-    withInvalidDataAsyncQueryFn: build.query<string, string>({
-      // @ts-expect-error
-      async queryFn(arg: string) {
-        return { data: 5 }
-      },
-    }),
-    withAsyncErrorQueryFn: build.query<string, string>({
-      async queryFn(arg: string) {
-        return { error: { type: 'Custom' } }
-      },
-    }),
-    withInvalidAsyncErrorQueryFn: build.query<string, string>({
-      // @ts-expect-error
-      async queryFn(arg: string) {
-        return { error: 5 }
-      },
-    }),
-
-    mutationWithQueryFn: build.mutation<string, string>({
-      queryFn(arg: string) {
-        return { data: `resultFrom(${arg})` }
-      },
-    }),
-    mutationWithInvalidDataQueryFn: build.mutation<string, string>({
-      // @ts-expect-error
-      queryFn(arg: string) {
-        return { data: 5 }
-      },
-    }),
-    mutationWithErrorQueryFn: build.mutation<string, string>({
-      queryFn(arg: string) {
-        return { error: { type: 'Custom' } }
-      },
-    }),
-    mutationWithInvalidErrorQueryFn: build.mutation<string, string>({
-      // @ts-expect-error
-      queryFn(arg: string) {
-        return { error: 5 }
-      },
-    }),
-
-    mutationWithAsyncQueryFn: build.mutation<string, string>({
-      async queryFn(arg: string) {
-        return { data: `resultFrom(${arg})` }
-      },
-    }),
-    mutationWithInvalidAsyncQueryFn: build.mutation<string, string>({
-      // @ts-expect-error
-      async queryFn(arg: string) {
-        return { data: 5 }
-      },
-    }),
-    mutationWithAsyncErrorQueryFn: build.mutation<string, string>({
-      async queryFn(arg: string) {
-        return { error: { type: 'Custom' } }
-      },
-    }),
-    mutationWithInvalidAsyncErrorQueryFn: build.mutation<string, string>({
-      // @ts-expect-error
-      async queryFn(arg: string) {
-        return { error: 5 }
-      },
-    }),
-    // @ts-expect-error
-    withNeither: build.query<string, string>({}),
-    // @ts-expect-error
-    mutationWithNeither: build.mutation<string, string>({}),
-  }),
-})
-
-const store = configureStore({
-  reducer: {
-    [api.reducerPath]: api.reducer,
-  },
-  middleware: (gDM) => gDM({}).concat(api.middleware),
-})
-
-test('fakeBaseQuery throws when invoking query', async () => {
-  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-  const thunk = api.endpoints.withQuery.initiate('')
-
-  const result = await store.dispatch(thunk)
-
-  expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-  expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-    `An unhandled error occurred processing a request for the endpoint "withQuery".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-    Error(
-      'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.',
-    ),
-  )
-
-  expect(result!.error).toEqual({
-    message:
-      'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.',
-    name: 'Error',
-    stack: expect.any(String),
-  })
-
-  consoleErrorSpy.mockRestore()
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/fetchBaseQuery.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/fetchBaseQuery.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1545 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit'
-import type { FetchArgs } from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-import { headersToObject } from 'headers-polyfill'
-import { HttpResponse, delay, http } from 'msw'
-import nodeFetch from 'node-fetch'
-import queryString from 'query-string'
-import { vi } from 'vitest'
-import { setupApiStore } from '../../tests/utils/helpers'
-import type { BaseQueryApi } from '../baseQueryTypes'
-import { server } from './mocks/server'
-
-const defaultHeaders: Record<string, string> = {
-  fake: 'header',
-  delete: 'true',
-  delete2: '1',
-}
-
-const baseUrl = 'https://example.com'
-
-const baseQuery = fetchBaseQuery({
-  baseUrl,
-  prepareHeaders: (headers, { getState }) => {
-    const { token } = (getState() as RootState).auth
-
-    // If we have a token set in state, let's assume that we should be passing it.
-    if (token) {
-      headers.set('authorization', `Bearer ${token}`)
-    }
-    // A user could customize their behavior here, so we'll just test that custom scenarios would work.
-    const potentiallyConflictingKeys = Object.keys(defaultHeaders)
-    potentiallyConflictingKeys.forEach((key) => {
-      // Check for presence of a default key, if the incoming endpoint headers don't specify it as '', then set it
-      const existingValue = headers.get(key)
-      if (!existingValue && existingValue !== '') {
-        headers.set(key, String(defaultHeaders[key]))
-        // If an endpoint sets a header with a value of '', just delete the header.
-      } else if (headers.get(key) === '') {
-        headers.delete(key)
-      }
-    })
-
-    return headers
-  },
-})
-
-const api = createApi({
-  baseQuery,
-  endpoints(build) {
-    return {
-      query: build.query({ query: () => ({ url: '/echo', headers: {} }) }),
-      mutation: build.mutation({
-        query: () => ({ url: '/echo', method: 'POST', credentials: 'omit' }),
-      }),
-    }
-  },
-})
-
-const authSlice = createSlice({
-  name: 'auth',
-  initialState: {
-    token: '',
-  },
-  reducers: {
-    setToken(state, action) {
-      state.token = action.payload
-    },
-  },
-})
-
-const storeRef = setupApiStore(api, { auth: authSlice.reducer })
-type RootState = ReturnType<typeof storeRef.store.getState>
-
-let commonBaseQueryApi: BaseQueryApi = {} as any
-beforeEach(() => {
-  let abortController = new AbortController()
-  commonBaseQueryApi = {
-    signal: abortController.signal,
-    abort: (reason) =>
-      // @ts-ignore
-      abortController.abort(reason),
-    dispatch: storeRef.store.dispatch,
-    getState: storeRef.store.getState,
-    extra: undefined,
-    type: 'query',
-    endpoint: 'doesntmatterhere',
-  }
-})
-
-describe('fetchBaseQuery', () => {
-  describe('basic functionality', () => {
-    it('should return an object for a simple GET request when it is json data', async () => {
-      const req = baseQuery('/success', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.data).toEqual({ value: 'success' })
-    })
-
-    it('should return undefined for a simple GET request when the response is empty', async () => {
-      const req = baseQuery('/empty', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-
-      expect(res.data).toBeNull()
-    })
-
-    it('should return an error and status for error responses', async () => {
-      const req = baseQuery('/error', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.error).toEqual({
-        status: 500,
-        data: { value: 'error' },
-      })
-    })
-
-    it('should handle a connection loss semi-gracefully', async () => {
-      const fetchFn = vi
-        .fn()
-        .mockRejectedValueOnce(new TypeError('Failed to fetch'))
-
-      const req = fetchBaseQuery({
-        baseUrl,
-        fetchFn,
-      })('/success', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBe(undefined)
-      expect(res.error).toEqual({
-        status: 'FETCH_ERROR',
-        error: 'TypeError: Failed to fetch',
-      })
-    })
-  })
-
-  describe('non-JSON-body', () => {
-    it('success: should return data ("text" responseHandler)', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is not json!`),
-          { once: true },
-        ),
-      )
-
-      const req = baseQuery(
-        { url: '/success', responseHandler: 'text' },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.data).toEqual(`this is not json!`)
-    })
-
-    it('success: should fail gracefully (default="json" responseHandler)', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is not json!`),
-          { once: true },
-        ),
-      )
-
-      const req = baseQuery('/success', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.error).toEqual({
-        status: 'PARSING_ERROR',
-        error: expect.stringMatching(/SyntaxError: Unexpected token/),
-        originalStatus: 200,
-        data: `this is not json!`,
-      })
-    })
-
-    it('success: parse text without error ("content-type" responseHandler)', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is not json!`),
-          { once: true },
-        ),
-      )
-
-      const req = baseQuery(
-        {
-          url: '/success',
-          responseHandler: 'content-type',
-        },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'text/plain',
-      )
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.data).toEqual(`this is not json!`)
-    })
-
-    it('success: parse json without error ("content-type" responseHandler)', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.json(`this will become json!`),
-          { once: true },
-        ),
-      )
-
-      const req = baseQuery(
-        {
-          url: '/success',
-          responseHandler: 'content-type',
-        },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'application/json',
-      )
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.data).toEqual(`this will become json!`)
-    })
-
-    it('server error: should fail normally with a 500 status ("text" responseHandler)', async () => {
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.text(`this is not json!`, { status: 500 }),
-        ),
-      )
-
-      const req = baseQuery(
-        { url: '/error', responseHandler: 'text' },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.error).toEqual({
-        status: 500,
-        data: `this is not json!`,
-      })
-    })
-
-    it('server error: should fail normally with a 500 status as text ("content-type" responseHandler)', async () => {
-      const serverResponse = 'Internal Server Error'
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.text(serverResponse, { status: 500 }),
-        ),
-      )
-
-      const req = baseQuery(
-        { url: '/error', responseHandler: 'content-type' },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'text/plain',
-      )
-      expect(res.error).toEqual({
-        status: 500,
-        data: serverResponse,
-      })
-    })
-
-    it('server error: should fail normally with a 500 status as json ("content-type" responseHandler)', async () => {
-      const serverResponse = {
-        errors: { field1: "Password cannot be 'password'" },
-      }
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.json(serverResponse, { status: 500 }),
-        ),
-      )
-
-      const req = baseQuery(
-        { url: '/error', responseHandler: 'content-type' },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'application/json',
-      )
-      expect(res.error).toEqual({
-        status: 500,
-        data: serverResponse,
-      })
-    })
-
-    it('server error: should fail gracefully (default="json" responseHandler)', async () => {
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.text(`this is not json!`, { status: 500 }),
-        ),
-      )
-
-      const req = baseQuery('/error', commonBaseQueryApi, {})
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.error).toEqual({
-        status: 'PARSING_ERROR',
-        error: expect.stringMatching(/SyntaxError: Unexpected token/),
-        originalStatus: 500,
-        data: `this is not json!`,
-      })
-    })
-  })
-
-  describe('arg.body', () => {
-    test('an object provided to body will be serialized when content-type is json', async () => {
-      const data = {
-        test: 'value',
-      }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', body: data, method: 'POST' },
-        { ...commonBaseQueryApi, type: 'mutation' },
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('application/json')
-      expect(request.body).toEqual(data)
-    })
-
-    test('an array provided to body will be serialized when content-type is json', async () => {
-      const data = ['test', 'value']
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', body: data, method: 'POST' },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('application/json')
-      expect(request.body).toEqual(data)
-    })
-
-    test('an object provided to body will not be serialized when content-type is not json', async () => {
-      const data = {
-        test: 'value',
-      }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          body: data,
-          method: 'POST',
-          headers: { 'content-type': 'text/html' },
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('text/html')
-      expect(request.body).toEqual('[object Object]')
-    })
-
-    test('an array provided to body will not be serialized when content-type is not json', async () => {
-      const data = ['test', 'value']
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          body: data,
-          method: 'POST',
-          headers: { 'content-type': 'text/html' },
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('text/html')
-      expect(request.body).toEqual(data.join(','))
-    })
-
-    it('supports a custom jsonContentType', async () => {
-      const baseQuery = fetchBaseQuery({
-        baseUrl,
-        jsonContentType: 'application/vnd.api+json',
-      })
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          body: {},
-          method: 'POST',
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('application/vnd.api+json')
-    })
-
-    it('supports a custom jsonReplacer', async () => {
-      const body = {
-        items: new Set(['A', 'B', 'C']),
-      }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          body,
-          method: 'POST',
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('application/json')
-      expect(request.body).toEqual({ items: {} }) // Set is not properly marshalled by default
-
-      // Use jsonReplacer
-      const baseQueryWithReplacer = fetchBaseQuery({
-        baseUrl,
-        jsonReplacer: (key, value) =>
-          value instanceof Set ? [...value] : value,
-      })
-
-      ;({ data: request } = await baseQueryWithReplacer(
-        {
-          url: '/echo',
-          body,
-          method: 'POST',
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['content-type']).toBe('application/json')
-      expect(request.body).toEqual({ items: ['A', 'B', 'C'] }) // Set is marshalled correctly by jsonReplacer
-    })
-  })
-
-  describe('arg.params', () => {
-    it('should not serialize missing params', async () => {
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo' },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(`${baseUrl}/echo`)
-    })
-
-    it('should serialize numeric and boolean params', async () => {
-      const params = { a: 1, b: true }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', params },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(`${baseUrl}/echo?a=1&b=true`)
-    })
-
-    it('should merge params into existing url querystring', async () => {
-      const params = { a: 1, b: true }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo?banana=pudding', params },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(`${baseUrl}/echo?banana=pudding&a=1&b=true`)
-    })
-
-    it('should accept a URLSearchParams instance', async () => {
-      const params = new URLSearchParams({ apple: 'fruit' })
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', params },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit`)
-    })
-
-    it('should strip undefined values from the end params', async () => {
-      const params = { apple: 'fruit', banana: undefined, randy: null }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', params },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit&randy=null`)
-    })
-
-    it('should support a paramsSerializer', async () => {
-      const baseQuery = fetchBaseQuery({
-        baseUrl,
-        paramsSerializer: (params: Record<string, unknown>) =>
-          queryString.stringify(params, { arrayFormat: 'bracket' }),
-      })
-
-      const api = createApi({
-        baseQuery,
-        endpoints(build) {
-          return {
-            query: build.query({
-              query: () => ({ url: '/echo', headers: {} }),
-            }),
-            mutation: build.mutation({
-              query: () => ({
-                url: '/echo',
-                method: 'POST',
-                credentials: 'omit',
-              }),
-            }),
-          }
-        },
-      })
-
-      const params = {
-        someArray: ['a', 'b', 'c'],
-      }
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', params },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.url).toEqual(
-        `${baseUrl}/echo?someArray[]=a&someArray[]=b&someArray[]=c`,
-      )
-    })
-
-    it('should supports a custom isJsonContentType function', async () => {
-      const testBody = {
-        i_should_be_stringified: true,
-      }
-      const baseQuery = fetchBaseQuery({
-        baseUrl,
-        isJsonContentType: (headers) =>
-          [
-            'application/vnd.api+json',
-            'application/json',
-            'application/vnd.hal+json',
-          ].includes(headers.get('content-type') ?? ''),
-      })
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          method: 'POST',
-          body: testBody,
-          headers: { 'content-type': 'application/vnd.hal+json' },
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.body).toMatchObject(testBody)
-    })
-  })
-
-  describe('validateStatus', () => {
-    test('validateStatus can return an error even on normal 200 responses', async () => {
-      // This is a scenario where an API may always return a 200, but indicates there is an error when success = false
-      const res = await baseQuery(
-        {
-          url: '/nonstandard-error',
-          validateStatus: (response, body) =>
-            response.status === 200 && body.success === false ? false : true,
-        },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toEqual({
-        status: 200,
-        data: {
-          success: false,
-          message: 'This returns a 200 but is really an error',
-        },
-      })
-    })
-  })
-
-  describe('arg.headers and prepareHeaders', () => {
-    test('uses the default headers set in prepareHeaders', async () => {
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo' },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-      expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-      expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-    })
-
-    test('adds endpoint-level headers to the defaults', async () => {
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', headers: { authorization: 'Bearer banana' } },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['authorization']).toBe('Bearer banana')
-      expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-      expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-      expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-    })
-
-    test('it does not set application/json when content-type is set', async () => {
-      let request: any
-      ;({ data: request } = await baseQuery(
-        {
-          url: '/echo',
-          headers: {
-            authorization: 'Bearer banana',
-            'content-type': 'custom-content-type',
-          },
-        },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['authorization']).toBe('Bearer banana')
-      expect(request.headers['content-type']).toBe('custom-content-type')
-      expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-      expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-      expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-    })
-
-    test('respects the headers from an endpoint over the base headers', async () => {
-      const fake = 'fake endpoint value'
-
-      let request: any
-      ;({ data: request } = await baseQuery(
-        { url: '/echo', headers: { fake, delete: '', delete2: '' } },
-        commonBaseQueryApi,
-        {},
-      ))
-
-      expect(request.headers['fake']).toBe(fake)
-      expect(request.headers['delete']).toBeUndefined()
-      expect(request.headers['delete2']).toBeUndefined()
-    })
-
-    test('prepareHeaders can return undefined', async () => {
-      let request: any
-
-      const token = 'accessToken'
-
-      const _baseQuery = fetchBaseQuery({
-        baseUrl,
-        prepareHeaders: (headers) => {
-          headers.set('authorization', `Bearer ${token}`)
-        },
-      })
-
-      const doRequest = async () =>
-        _baseQuery({ url: '/echo' }, commonBaseQueryApi, {})
-
-      ;({ data: request } = await doRequest())
-
-      expect(request.headers['authorization']).toBe(`Bearer ${token}`)
-    })
-
-    test('prepareHeaders is able to be an async function', async () => {
-      let request: any
-
-      const token = 'accessToken'
-      const getAccessTokenAsync = async () => token
-
-      const _baseQuery = fetchBaseQuery({
-        baseUrl,
-        prepareHeaders: async (headers) => {
-          headers.set('authorization', `Bearer ${await getAccessTokenAsync()}`)
-          return headers
-        },
-      })
-
-      const doRequest = async () =>
-        _baseQuery({ url: '/echo' }, commonBaseQueryApi, {})
-
-      ;({ data: request } = await doRequest())
-
-      expect(request.headers['authorization']).toBe(`Bearer ${token}`)
-    })
-
-    test('prepareHeaders is able to be an async function returning undefined', async () => {
-      let request: any
-
-      const token = 'accessToken'
-      const getAccessTokenAsync = async () => token
-
-      const _baseQuery = fetchBaseQuery({
-        baseUrl,
-        prepareHeaders: async (headers) => {
-          headers.set('authorization', `Bearer ${await getAccessTokenAsync()}`)
-        },
-      })
-
-      const doRequest = async () =>
-        _baseQuery({ url: '/echo' }, commonBaseQueryApi, {})
-
-      ;({ data: request } = await doRequest())
-
-      expect(request.headers['authorization']).toBe(`Bearer ${token}`)
-    })
-
-    test('prepareHeaders is able to select from a state', async () => {
-      let request: any
-
-      const doRequest = async () => {
-        const abortController = new AbortController()
-        return baseQuery(
-          { url: '/echo' },
-          {
-            signal: abortController.signal,
-            abort: (reason) =>
-              // @ts-ignore
-              abortController.abort(reason),
-            dispatch: storeRef.store.dispatch,
-            getState: storeRef.store.getState,
-            extra: undefined,
-            type: 'query',
-            endpoint: '',
-          },
-          {},
-        )
-      }
-
-      ;({ data: request } = await doRequest())
-
-      expect(request.headers['authorization']).toBeUndefined()
-
-      // Set a token and the follow up request should have the header injected by prepareHeaders
-      const token = 'fakeToken!'
-      storeRef.store.dispatch(authSlice.actions.setToken(token))
-      ;({ data: request } = await doRequest())
-
-      expect(request.headers['authorization']).toBe(`Bearer ${token}`)
-    })
-
-    test('prepareHeaders provides extra api information for getState, extra, endpoint, type and forced', async () => {
-      let _getState, _arg: any, _extra, _endpoint, _type, _forced
-
-      const baseQuery = fetchBaseQuery({
-        baseUrl,
-        prepareHeaders: (
-          headers,
-          { getState, arg, extra, endpoint, type, forced },
-        ) => {
-          _getState = getState
-          _arg = arg
-          _endpoint = endpoint
-          _type = type
-          _forced = forced
-          _extra = extra
-
-          return headers
-        },
-      })
-
-      const fakeAuth0Client = {
-        getTokenSilently: async () => 'fakeToken',
-      }
-
-      const doRequest = async () => {
-        const abortController = new AbortController()
-        return baseQuery(
-          { url: '/echo' },
-          {
-            signal: abortController.signal,
-            abort: (reason) =>
-              // @ts-ignore
-              abortController.abort(reason),
-            dispatch: storeRef.store.dispatch,
-            getState: storeRef.store.getState,
-            extra: fakeAuth0Client,
-            type: 'query',
-            forced: true,
-            endpoint: 'someEndpointName',
-          },
-          {},
-        )
-      }
-
-      await doRequest()
-
-      expect(_getState).toBeDefined()
-      expect(_arg!.url).toBe('/echo')
-      expect(_endpoint).toBe('someEndpointName')
-      expect(_type).toBe('query')
-      expect(_forced).toBe(true)
-      expect(_extra).toBe(fakeAuth0Client)
-    })
-
-    test('can be instantiated with a `ExtraOptions` generic and `extraOptions` will be available in `prepareHeaders', async () => {
-      const prepare = vitest.fn()
-      const baseQuery = fetchBaseQuery({
-        prepareHeaders(headers, api) {
-          expectTypeOf(api.extraOptions).toEqualTypeOf<unknown>()
-          prepare.apply(undefined, arguments as unknown as any[])
-        },
-      })
-      baseQuery('https://example.com', commonBaseQueryApi, {
-        foo: 'baz',
-        bar: 5,
-      })
-      expect(prepare).toHaveBeenCalledWith(
-        expect.anything(),
-        expect.objectContaining({ extraOptions: { foo: 'baz', bar: 5 } }),
-      )
-
-      // ensure types
-      createApi({
-        baseQuery,
-        endpoints(build) {
-          return {
-            testQuery: build.query({
-              query: () => ({ url: '/echo', headers: {} }),
-              extraOptions: {
-                foo: 'asd',
-                bar: 1,
-              },
-            }),
-            testMutation: build.mutation({
-              query: () => ({
-                url: '/echo',
-                method: 'POST',
-                credentials: 'omit',
-              }),
-              extraOptions: {
-                foo: 'qwe',
-                bar: 15,
-              },
-            }),
-          }
-        },
-      })
-    })
-  })
-
-  test('can pass `headers` into `fetchBaseQuery`', async () => {
-    let request: any
-
-    const token = 'accessToken'
-
-    const _baseQuery = fetchBaseQuery({
-      baseUrl,
-      headers: { authorization: `Bearer ${token}` },
-    })
-
-    const doRequest = async () =>
-      _baseQuery({ url: '/echo' }, commonBaseQueryApi, {})
-
-    ;({ data: request } = await doRequest())
-
-    expect(request.headers['authorization']).toBe(`Bearer ${token}`)
-  })
-
-  test('lets a header be undefined', async () => {
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', headers: undefined },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-    expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-    expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-  })
-
-  test('allows for possibly undefined header key/values', async () => {
-    const banana = '1' as '1' | undefined
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', headers: { banana } },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['banana']).toBe('1')
-    expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-    expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-    expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-  })
-
-  test('strips undefined values from the headers', async () => {
-    const banana = undefined as '1' | undefined
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', headers: { banana } },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['banana']).toBeUndefined()
-    expect(request.headers['fake']).toBe(defaultHeaders['fake'])
-    expect(request.headers['delete']).toBe(defaultHeaders['delete'])
-    expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
-  })
-
-  describe('Accepts global arguments', () => {
-    test('Global responseHandler', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is not json!`),
-          { once: true },
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'text',
-      })
-
-      const req = globalizedBaseQuery(
-        { url: '/success' },
-        commonBaseQueryApi,
-        {},
-      )
-      expect(req).toBeInstanceOf(Promise)
-      const res = await req
-      expect(res).toBeInstanceOf(Object)
-      expect(res.meta?.request).toBeInstanceOf(Request)
-      expect(res.meta?.response).toBeInstanceOf(Object)
-      expect(res.error).toBeUndefined()
-      expect(res.data).toEqual(`this is not json!`)
-    })
-
-    test('Global responseHandler: content-type with text response', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is plain text!`),
-          { once: true },
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'content-type',
-      })
-
-      const res = await globalizedBaseQuery(
-        { url: '/success' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toBeUndefined()
-      expect(res.data).toEqual(`this is plain text!`)
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'text/plain',
-      )
-    })
-
-    test('Global responseHandler: content-type with JSON response', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.json({ message: 'this is json!' }),
-          { once: true },
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'content-type',
-      })
-
-      const res = await globalizedBaseQuery(
-        { url: '/success' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toBeUndefined()
-      expect(res.data).toEqual({ message: 'this is json!' })
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'application/json',
-      )
-    })
-
-    test('Global responseHandler: content-type can be overridden at endpoint level', async () => {
-      server.use(
-        http.get(
-          'https://example.com/success',
-          () => HttpResponse.text(`this is text but will be parsed as json`),
-          { once: true },
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'content-type',
-      })
-
-      // Override global content-type handler with explicit text handler
-      const res = await globalizedBaseQuery(
-        { url: '/success', responseHandler: 'text' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toBeUndefined()
-      expect(res.data).toEqual(`this is text but will be parsed as json`)
-    })
-
-    test('Global responseHandler: content-type with error response (text)', async () => {
-      const errorMessage = 'Internal Server Error'
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.text(errorMessage, { status: 500 }),
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'content-type',
-      })
-
-      const res = await globalizedBaseQuery(
-        { url: '/error' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toEqual({
-        status: 500,
-        data: errorMessage,
-      })
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'text/plain',
-      )
-    })
-
-    test('Global responseHandler: content-type with error response (JSON)', async () => {
-      const errorData = { error: 'Something went wrong', code: 'ERR_500' }
-      server.use(
-        http.get('https://example.com/error', () =>
-          HttpResponse.json(errorData, { status: 500 }),
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        responseHandler: 'content-type',
-      })
-
-      const res = await globalizedBaseQuery(
-        { url: '/error' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toEqual({
-        status: 500,
-        data: errorData,
-      })
-      expect(res.meta?.response?.headers.get('content-type')).toEqual(
-        'application/json',
-      )
-    })
-
-    test('Global validateStatus', async () => {
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        validateStatus: (response, body) =>
-          response.status === 200 && body.success === false ? false : true,
-      })
-
-      // This is a scenario where an API may always return a 200, but indicates there is an error when success = false
-      const res = await globalizedBaseQuery(
-        {
-          url: '/nonstandard-error',
-        },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(res.error).toEqual({
-        status: 200,
-        data: {
-          success: false,
-          message: 'This returns a 200 but is really an error',
-        },
-      })
-    })
-
-    test('Global timeout', async () => {
-      server.use(
-        http.get(
-          'https://example.com/empty1',
-          async ({ request, cookies, params, requestId }) => {
-            await delay(300)
-
-            return HttpResponse.json({
-              ...request,
-              cookies,
-              params,
-              requestId,
-              url: new URL(request.url),
-              headers: headersToObject(request.headers),
-            })
-          },
-          { once: true },
-        ),
-      )
-
-      const globalizedBaseQuery = fetchBaseQuery({
-        baseUrl,
-        timeout: 200,
-      })
-
-      const result = await globalizedBaseQuery(
-        { url: '/empty1' },
-        commonBaseQueryApi,
-        {},
-      )
-
-      expect(result?.error).toEqual({
-        status: 'TIMEOUT_ERROR',
-        error: expect.stringMatching(/^TimeoutError/),
-      })
-    })
-  })
-})
-
-describe('fetchFn', () => {
-  test('accepts a custom fetchFn', async () => {
-    const baseUrl = 'https://example.com'
-    const params = new URLSearchParams({ apple: 'fruit' })
-
-    const baseQuery = fetchBaseQuery({
-      baseUrl,
-      fetchFn: nodeFetch as any,
-    })
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', params },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit`)
-  })
-
-  test('respects mocking window.fetch after a fetch base query is created', async () => {
-    const baseUrl = 'https://example.com'
-    const baseQuery = fetchBaseQuery({ baseUrl })
-
-    const fakeResponse = {
-      ok: true,
-      status: 200,
-      text: async () => `{ "url": "mock-return-url" }`,
-      clone: () => fakeResponse,
-    }
-
-    const spiedFetch = vi.spyOn(window, 'fetch')
-    spiedFetch.mockResolvedValueOnce(fakeResponse as any)
-
-    const { data } = await baseQuery({ url: '/echo' }, commonBaseQueryApi, {})
-    expect(data).toEqual({ url: 'mock-return-url' })
-
-    spiedFetch.mockClear()
-  })
-})
-
-describe('FormData', () => {
-  test('sets the right headers when sending FormData', async () => {
-    const body = new FormData()
-
-    body.append('username', 'test')
-
-    body.append(
-      'file',
-      new Blob([JSON.stringify({ hello: 'there' }, null, 2)], {
-        type: 'application/json',
-      }),
-    )
-
-    const res = await baseQuery(
-      { url: '/echo', method: 'POST', body },
-      commonBaseQueryApi,
-      {},
-    )
-
-    const request: any = res.data
-
-    expect(request.headers['content-type']).not.toContain('application/json')
-  })
-
-  test('FormData works correctly when prepareHeaders sets Content-Type to application/json', async () => {
-    // This test covers the exact scenario from issue #4669
-    const baseQueryWithJsonDefault = fetchBaseQuery({
-      baseUrl,
-      prepareHeaders: (headers) => {
-        // Set default Content-Type for all requests
-        headers.set('Content-Type', 'application/json')
-        return headers
-      },
-    })
-
-    const body = new FormData()
-    body.append('username', 'test')
-    body.append(
-      'file',
-      new Blob([JSON.stringify({ hello: 'there' }, null, 2)], {
-        type: 'application/json',
-      }),
-    )
-
-    const res = await baseQueryWithJsonDefault(
-      { url: '/echo', method: 'POST', body },
-      commonBaseQueryApi,
-      {},
-    )
-
-    const request: any = res.data
-
-    // The Content-Type should NOT be application/json when FormData is used
-    expect(request.headers['content-type']).not.toContain('application/json')
-    // It should contain multipart/form-data (set automatically by the browser)
-    expect(request.headers['content-type']).toContain('multipart/form-data')
-  })
-
-  test('FormData works when prepareHeaders conditionally removes Content-Type', async () => {
-    // This tests the workaround solution from the issue comments
-    const baseQueryWithConditionalHeader = fetchBaseQuery({
-      baseUrl,
-      prepareHeaders: (headers, { arg }) => {
-        // Check if body is FormData and skip setting Content-Type
-        if ((arg as FetchArgs).body instanceof FormData) {
-          // Delete Content-Type to let browser set it automatically
-          headers.delete('Content-Type')
-        } else {
-          // Set default Content-Type for non-FormData requests
-          headers.set('Content-Type', 'application/json')
-        }
-        return headers
-      },
-    })
-
-    const body = new FormData()
-    body.append('username', 'test')
-    body.append('file', new Blob(['test content'], { type: 'text/plain' }))
-
-    const res = await baseQueryWithConditionalHeader(
-      { url: '/echo', method: 'POST', body },
-      commonBaseQueryApi,
-      {},
-    )
-
-    const request: any = res.data
-
-    // Should have multipart/form-data set by browser
-    expect(request.headers['content-type']).toContain('multipart/form-data')
-    expect(request.headers['content-type']).not.toContain('application/json')
-  })
-
-  test('endpoint-level headers cannot override to multipart/form-data manually', async () => {
-    // This tests the fetch API quirk mentioned in the issue
-    const baseQueryWithJsonDefault = fetchBaseQuery({
-      baseUrl,
-      prepareHeaders: (headers) => {
-        headers.set('Content-Type', 'application/json')
-        return headers
-      },
-    })
-
-    const body = new FormData()
-    body.append('test', 'value')
-
-    const res = await baseQueryWithJsonDefault(
-      {
-        url: '/echo',
-        method: 'POST',
-        body,
-        // Attempting to manually set multipart/form-data (this won't work as expected)
-        headers: { 'Content-Type': 'multipart/form-data' },
-      },
-      commonBaseQueryApi,
-      {},
-    )
-
-    const request: any = res.data
-
-    // Due to prepareHeaders running after endpoint headers,
-    // and the fetch API not allowing manual multipart/form-data setting,
-    // this demonstrates the problem from the issue
-    // The actual behavior depends on fetchBaseQuery implementation
-    expect(request.headers['content-type']).toBeDefined()
-  })
-
-  test('non-FormData requests still get application/json from prepareHeaders', async () => {
-    // Verify that the workaround doesn't break normal JSON requests
-    const baseQueryWithConditionalHeader = fetchBaseQuery({
-      baseUrl,
-      prepareHeaders: (headers, { arg }) => {
-        if (!((arg as FetchArgs).body instanceof FormData)) {
-          headers.set('Content-Type', 'application/json')
-        }
-        return headers
-      },
-    })
-
-    const jsonBody = { test: 'value' }
-
-    const res = await baseQueryWithConditionalHeader(
-      { url: '/echo', method: 'POST', body: jsonBody },
-      commonBaseQueryApi,
-      {},
-    )
-
-    const request: any = res.data
-
-    // Regular JSON requests should still get application/json
-    expect(request.headers['content-type']).toBe('application/json')
-    expect(request.body).toEqual(jsonBody)
-  })
-})
-
-describe('Accept header handling', () => {
-  test('sets Accept header to application/json for json responseHandler', async () => {
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', responseHandler: 'json' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['accept']).toBe('application/json')
-  })
-
-  test('sets Accept header to application/json by default (json is default responseHandler)', async () => {
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['accept']).toBe('application/json')
-  })
-
-  test('sets Accept header for text responseHandler', async () => {
-    // Create a baseQuery with text as the global responseHandler
-    const textBaseQuery = fetchBaseQuery({
-      baseUrl,
-      responseHandler: 'text',
-    })
-
-    let request: any
-      // Override to json just for this test so we can inspect the echoed request object
-    ;({ data: request } = await textBaseQuery(
-      { url: '/echo', responseHandler: 'json' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    // The endpoint-level 'json' responseHandler overrides the global 'text',
-    // so the Accept header should be application/json
-    expect(request.headers['accept']).toBe('application/json')
-  })
-
-  test('does not override explicit Accept header from endpoint', async () => {
-    let request: any
-    ;({ data: request } = await baseQuery(
-      {
-        url: '/echo',
-        responseHandler: 'json',
-        headers: { Accept: 'application/xml' },
-      },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['accept']).toBe('application/xml')
-  })
-
-  test('does not override Accept header set in prepareHeaders', async () => {
-    const customBaseQuery = fetchBaseQuery({
-      baseUrl,
-      prepareHeaders: (headers) => {
-        headers.set('Accept', 'application/vnd.api+json')
-        return headers
-      },
-    })
-
-    let request: any
-    ;({ data: request } = await customBaseQuery(
-      { url: '/echo', responseHandler: 'json' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    expect(request.headers['accept']).toBe('application/vnd.api+json')
-  })
-
-  test('does not set Accept header for content-type responseHandler', async () => {
-    let request: any
-    ;({ data: request } = await baseQuery(
-      { url: '/echo', responseHandler: 'content-type' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    // Should either not have accept header or have a permissive one
-    // content-type handler adapts to whatever server sends
-    const acceptHeader = request.headers['accept']
-    if (acceptHeader) {
-      expect(acceptHeader).toMatch(/\*\/\*/)
-    }
-  })
-
-  test('respects global responseHandler for Accept header', async () => {
-    const textBaseQuery = fetchBaseQuery({
-      baseUrl,
-      responseHandler: 'text',
-    })
-
-    let request: any
-      // Override to json just for this test so we can inspect the echoed request object
-    ;({ data: request } = await textBaseQuery(
-      { url: '/echo', responseHandler: 'json' },
-      commonBaseQueryApi,
-      {},
-    ))
-
-    // The endpoint-level 'json' responseHandler overrides the global 'text',
-    // so the Accept header should be application/json (proving endpoint-level takes precedence)
-    expect(request.headers['accept']).toBe('application/json')
-  })
-})
-
-describe('still throws on completely unexpected errors', () => {
-  test('', async () => {
-    const error = new Error('some unexpected error')
-    const req = baseQuery(
-      {
-        url: '/success',
-        validateStatus() {
-          throw error
-        },
-      },
-      commonBaseQueryApi,
-      {},
-    )
-    expect(req).toBeInstanceOf(Promise)
-    await expect(req).rejects.toBe(error)
-  })
-})
-
-describe('timeout', () => {
-  test('throws a timeout error when a request takes longer than specified timeout duration', async () => {
-    server.use(
-      http.get(
-        'https://example.com/empty2',
-        async ({ request, cookies, params, requestId }) => {
-          await delay(300)
-
-          return HttpResponse.json({
-            ...request,
-            url: new URL(request.url),
-            cookies,
-            params,
-            requestId,
-            headers: headersToObject(request.headers),
-          })
-        },
-        { once: true },
-      ),
-    )
-
-    const result = await baseQuery(
-      { url: '/empty2', timeout: 200 },
-      commonBaseQueryApi,
-      {},
-    )
-
-    expect(result?.error).toEqual({
-      status: 'TIMEOUT_ERROR',
-      error: expect.stringMatching(/^TimeoutError/),
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/infiniteQueries.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/infiniteQueries.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,171 +1,0 @@
-import type { skipToken, InfiniteData } from '@reduxjs/toolkit/query/react'
-import {
-  createApi,
-  fetchBaseQuery,
-  QueryStatus,
-} from '@reduxjs/toolkit/query/react'
-import { setupApiStore } from '../../tests/utils/helpers'
-import { createSlice } from '@internal/createSlice'
-
-describe('Infinite queries', () => {
-  test('Basic infinite query behavior', async () => {
-    type Pokemon = {
-      id: string
-      name: string
-    }
-
-    const pokemonApi = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (build) => ({
-        getInfinitePokemon: build.infiniteQuery<Pokemon[], string, number>({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-              queryArg,
-            ) => {
-              expectTypeOf(lastPage).toEqualTypeOf<Pokemon[]>()
-
-              expectTypeOf(allPages).toEqualTypeOf<Pokemon[][]>()
-
-              expectTypeOf(lastPageParam).toBeNumber()
-
-              expectTypeOf(allPageParams).toEqualTypeOf<number[]>()
-
-              expectTypeOf(queryArg).toBeString()
-
-              return lastPageParam + 1
-            },
-          },
-          query({ pageParam, queryArg }) {
-            expectTypeOf(pageParam).toBeNumber()
-            expectTypeOf(queryArg).toBeString()
-
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-          async onCacheEntryAdded(arg, api) {
-            const data = await api.cacheDataLoaded
-            expectTypeOf(data.data).toEqualTypeOf<
-              InfiniteData<Pokemon[], number>
-            >()
-          },
-          async onQueryStarted(arg, api) {
-            const data = await api.queryFulfilled
-            expectTypeOf(data.data).toEqualTypeOf<
-              InfiniteData<Pokemon[], number>
-            >()
-          },
-          providesTags: (result) => {
-            expectTypeOf(result).toEqualTypeOf<
-              InfiniteData<Pokemon[], number> | undefined
-            >()
-            return []
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(pokemonApi, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    expectTypeOf(pokemonApi.endpoints.getInfinitePokemon.initiate)
-      .parameter(0)
-      .toBeString()
-
-    expectTypeOf(pokemonApi.useGetInfinitePokemonInfiniteQuery).toBeFunction()
-
-    expectTypeOf<
-      Parameters<
-        typeof pokemonApi.endpoints.getInfinitePokemon.useInfiniteQuery
-      >[0]
-    >().toEqualTypeOf<string | typeof skipToken>()
-
-    expectTypeOf(pokemonApi.endpoints.getInfinitePokemon.useInfiniteQueryState)
-      .parameter(0)
-      .toEqualTypeOf<string | typeof skipToken>()
-
-    expectTypeOf(
-      pokemonApi.endpoints.getInfinitePokemon.useInfiniteQuerySubscription,
-    )
-      .parameter(0)
-      .toEqualTypeOf<string | typeof skipToken>()
-
-    const slice = createSlice({
-      name: 'pokemon',
-      initialState: {} as { data: Pokemon[] },
-      reducers: {},
-      extraReducers: (builder) => {
-        builder.addMatcher(
-          pokemonApi.endpoints.getInfinitePokemon.matchFulfilled,
-          (state, action) => {
-            expectTypeOf(action.payload).toEqualTypeOf<
-              InfiniteData<Pokemon[], number>
-            >()
-          },
-        )
-      },
-    })
-
-    const res = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    const firstResult = await res
-
-    if (firstResult.status === QueryStatus.fulfilled) {
-      expectTypeOf(firstResult.data.pages).toEqualTypeOf<Pokemon[][]>()
-      expectTypeOf(firstResult.data.pageParams).toEqualTypeOf<number[]>()
-    }
-
-    storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    const useGetInfinitePokemonQuery =
-      pokemonApi.endpoints.getInfinitePokemon.useInfiniteQuery
-
-    expectTypeOf<
-      Parameters<typeof useGetInfinitePokemonQuery>[0]
-    >().toEqualTypeOf<string | typeof skipToken>()
-
-    function PokemonList() {
-      const {
-        data,
-        currentData,
-        isFetching,
-        isUninitialized,
-        isSuccess,
-        fetchNextPage,
-      } = useGetInfinitePokemonQuery('a')
-
-      expectTypeOf(data).toEqualTypeOf<
-        InfiniteData<Pokemon[], number> | undefined
-      >()
-
-      if (isSuccess) {
-        expectTypeOf(data.pages).toEqualTypeOf<Pokemon[][]>()
-        expectTypeOf(data.pageParams).toEqualTypeOf<number[]>()
-      }
-
-      if (currentData) {
-        expectTypeOf(currentData.pages).toEqualTypeOf<Pokemon[][]>()
-        expectTypeOf(currentData.pageParams).toEqualTypeOf<number[]>()
-      }
-
-      const handleClick = async () => {
-        const res = await fetchNextPage()
-
-        if (res.status === QueryStatus.fulfilled) {
-          expectTypeOf(res.data.pages).toEqualTypeOf<Pokemon[][]>()
-          expectTypeOf(res.data.pageParams).toEqualTypeOf<number[]>()
-        }
-      }
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/infiniteQueries.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/infiniteQueries.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1814 +1,0 @@
-import { server } from '@internal/query/tests/mocks/server'
-import type { InfiniteQueryActionCreatorResult } from '@reduxjs/toolkit/query/react'
-import {
-  QueryStatus,
-  createApi,
-  fakeBaseQuery,
-  fetchBaseQuery,
-} from '@reduxjs/toolkit/query/react'
-import { HttpResponse, delay, http } from 'msw'
-import { actionsReducer, setupApiStore } from '../../tests/utils/helpers'
-import type { InfiniteQueryResultFlags } from '../core/buildSelectors'
-
-describe('Infinite queries', () => {
-  type Pokemon = {
-    id: string
-    name: string
-  }
-
-  type HitCounter = { page: number; hitCounter: number }
-  let counters: Record<string, number> = {}
-  let queryCounter = 0
-
-  const pokemonApi = createApi({
-    baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-    endpoints: (build) => ({
-      getInfinitePokemon: build.infiniteQuery<Pokemon[], string, number>({
-        infiniteQueryOptions: {
-          initialPageParam: 0,
-          getNextPageParam: (
-            lastPage,
-            allPages,
-            lastPageParam,
-            allPageParams,
-            queryArg,
-          ) => {
-            expect(typeof queryArg).toBe('string')
-            return lastPageParam + 1
-          },
-          getPreviousPageParam: (
-            firstPage,
-            allPages,
-            firstPageParam,
-            allPageParams,
-            queryArg,
-          ) => {
-            expect(typeof queryArg).toBe('string')
-            return firstPageParam > 0 ? firstPageParam - 1 : undefined
-          },
-        },
-        query({ pageParam }) {
-          return `https://example.com/listItems?page=${pageParam}`
-        },
-      }),
-      getInfinitePokemonWithMax: build.infiniteQuery<Pokemon[], string, number>(
-        {
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            maxPages: 3,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-            getPreviousPageParam: (
-              firstPage,
-              allPages,
-              firstPageParam,
-              allPageParams,
-            ) => {
-              return firstPageParam > 0 ? firstPageParam - 1 : undefined
-            },
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-        },
-      ),
-      counters: build.query<{ id: string; counter: number }, string>({
-        queryFn: async (arg) => {
-          if (!(arg in counters)) {
-            counters[arg] = 0
-          }
-          counters[arg]++
-
-          return { data: { id: arg, counter: counters[arg] } }
-        },
-      }),
-    }),
-  })
-
-  function createCountersApi() {
-    let hitCounter = 0
-
-    const countersApi = createApi({
-      baseQuery: fakeBaseQuery(),
-      tagTypes: ['Counter'],
-      endpoints: (build) => ({
-        counters: build.infiniteQuery<HitCounter, string, number>({
-          queryFn({ pageParam }) {
-            hitCounter++
-
-            return { data: { page: pageParam, hitCounter } }
-          },
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-          },
-          providesTags: ['Counter'],
-        }),
-        mutation: build.mutation<null, void>({
-          queryFn: async () => {
-            return { data: null }
-          },
-          invalidatesTags: ['Counter'],
-        }),
-      }),
-    })
-
-    return countersApi
-  }
-
-  let storeRef = setupApiStore(
-    pokemonApi,
-    { ...actionsReducer },
-    {
-      withoutTestLifecycles: true,
-    },
-  )
-
-  beforeEach(() => {
-    server.use(
-      http.get('https://example.com/listItems', ({ request }) => {
-        const url = new URL(request.url)
-        const pageString = url.searchParams.get('page')
-        const pageNum = parseInt(pageString || '0')
-        queryCounter++
-
-        const results: Pokemon[] = [
-          { id: `${pageNum}`, name: `Pokemon ${pageNum}` },
-        ]
-        return HttpResponse.json(results)
-      }),
-    )
-
-    storeRef = setupApiStore(
-      pokemonApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    counters = {}
-
-    queryCounter = 0
-  })
-
-  type InfiniteQueryResult = Awaited<InfiniteQueryActionCreatorResult<any>>
-
-  const checkResultData = (
-    result: InfiniteQueryResult,
-    expectedValues: Pokemon[][],
-  ) => {
-    expect(result.status).toBe(QueryStatus.fulfilled)
-    if (result.status === QueryStatus.fulfilled) {
-      expect(result.data.pages).toEqual(expectedValues)
-    }
-  }
-
-  const checkResultLength = (
-    result: InfiniteQueryResult,
-    expectedLength: number,
-  ) => {
-    expect(result.status).toBe(QueryStatus.fulfilled)
-    if (result.status === QueryStatus.fulfilled) {
-      expect(result.data.pages).toHaveLength(expectedLength)
-    }
-  }
-
-  test('Basic infinite query behavior', async () => {
-    const checkFlags = (
-      value: unknown,
-      expectedFlags: Partial<InfiniteQueryResultFlags>,
-    ) => {
-      const actualFlags: InfiniteQueryResultFlags = {
-        hasNextPage: false,
-        hasPreviousPage: false,
-        isFetchingNextPage: false,
-        isFetchingPreviousPage: false,
-        isFetchNextPageError: false,
-        isFetchPreviousPageError: false,
-        ...expectedFlags,
-      }
-
-      expect(value).toMatchObject(actualFlags)
-    }
-
-    const checkEntryFlags = (
-      arg: string,
-      expectedFlags: Partial<InfiniteQueryResultFlags>,
-    ) => {
-      const selector = pokemonApi.endpoints.getInfinitePokemon.select(arg)
-      const entry = selector(storeRef.store.getState())
-
-      checkFlags(entry, expectedFlags)
-    }
-
-    const res1 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    checkEntryFlags('fire', {})
-
-    const entry1InitialLoad = await res1
-
-    checkResultData(entry1InitialLoad, [[{ id: '0', name: 'Pokemon 0' }]])
-    checkFlags(entry1InitialLoad, {
-      hasNextPage: true,
-    })
-
-    const res2 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    checkEntryFlags('fire', {
-      hasNextPage: true,
-      isFetchingNextPage: true,
-    })
-
-    const entry1SecondPage = await res2
-
-    checkResultData(entry1SecondPage, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-    checkFlags(entry1SecondPage, {
-      hasNextPage: true,
-    })
-
-    const res3 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'backward',
-      }),
-    )
-
-    checkEntryFlags('fire', {
-      hasNextPage: true,
-      isFetchingPreviousPage: true,
-    })
-
-    const entry1PrevPageMissing = await res3
-
-    checkResultData(entry1PrevPageMissing, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-    checkFlags(entry1PrevPageMissing, {
-      hasNextPage: true,
-    })
-
-    const res4 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('water', {
-        initialPageParam: 3,
-      }),
-    )
-
-    checkEntryFlags('water', {})
-
-    const entry2InitialLoad = await res4
-
-    checkResultData(entry2InitialLoad, [[{ id: '3', name: 'Pokemon 3' }]])
-    checkFlags(entry2InitialLoad, {
-      hasNextPage: true,
-      hasPreviousPage: true,
-    })
-
-    const res5 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('water', {
-        direction: 'forward',
-      }),
-    )
-
-    checkEntryFlags('water', {
-      hasNextPage: true,
-      hasPreviousPage: true,
-      isFetchingNextPage: true,
-    })
-
-    const entry2NextPage = await res5
-
-    checkResultData(entry2NextPage, [
-      [{ id: '3', name: 'Pokemon 3' }],
-      [{ id: '4', name: 'Pokemon 4' }],
-    ])
-    checkFlags(entry2NextPage, {
-      hasNextPage: true,
-      hasPreviousPage: true,
-    })
-
-    const res6 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('water', {
-        direction: 'backward',
-      }),
-    )
-
-    checkEntryFlags('water', {
-      hasNextPage: true,
-      hasPreviousPage: true,
-      isFetchingPreviousPage: true,
-    })
-
-    const entry2PrevPage = await res6
-
-    checkResultData(entry2PrevPage, [
-      [{ id: '2', name: 'Pokemon 2' }],
-      [{ id: '3', name: 'Pokemon 3' }],
-      [{ id: '4', name: 'Pokemon 4' }],
-    ])
-    checkFlags(entry2PrevPage, {
-      hasNextPage: true,
-      hasPreviousPage: true,
-    })
-  })
-
-  test('does not have a page limit without maxPages', async () => {
-    for (let i = 1; i <= 10; i++) {
-      const res = await storeRef.store.dispatch(
-        pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-          direction: 'forward',
-        }),
-      )
-
-      checkResultLength(res, i)
-    }
-  })
-
-  test('applies a page limit with maxPages', async () => {
-    for (let i = 1; i <= 10; i++) {
-      const res = await storeRef.store.dispatch(
-        pokemonApi.endpoints.getInfinitePokemonWithMax.initiate('fire', {
-          direction: 'forward',
-        }),
-      )
-
-      checkResultLength(res, Math.min(i, 3))
-    }
-
-    // Should now have entries 7, 8, 9 after the loop
-
-    const res = await storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemonWithMax.initiate('fire', {
-        direction: 'backward',
-      }),
-    )
-
-    checkResultData(res, [
-      [{ id: '6', name: 'Pokemon 6' }],
-      [{ id: '7', name: 'Pokemon 7' }],
-      [{ id: '8', name: 'Pokemon 8' }],
-    ])
-  })
-
-  test('validates maxPages during createApi call', async () => {
-    vi.stubEnv('NODE_ENV', 'development')
-
-    const createApiWithMaxPages = (
-      maxPages: number,
-      getPreviousPageParam: (() => number) | undefined,
-    ) => {
-      createApi({
-        baseQuery: fakeBaseQuery(),
-        endpoints: (build) => ({
-          getInfinitePokemon: build.infiniteQuery<Pokemon[], string, number>({
-            query(pageParam) {
-              return `https://example.com/listItems?page=${pageParam}`
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              maxPages,
-              getNextPageParam: () => 1,
-              getPreviousPageParam,
-            },
-          }),
-        }),
-      })
-    }
-
-    expect(() => createApiWithMaxPages(0, () => 0)).toThrowError(
-      `maxPages for endpoint 'getInfinitePokemon' must be a number greater than 0`,
-    )
-
-    expect(() => createApiWithMaxPages(1, undefined)).toThrowError(
-      `getPreviousPageParam for endpoint 'getInfinitePokemon' must be a function if maxPages is used`,
-    )
-  })
-
-  test('refetches all existing pages', async () => {
-    const checkResultData = (
-      result: InfiniteQueryResult,
-      expectedValues: HitCounter[],
-    ) => {
-      expect(result.status).toBe(QueryStatus.fulfilled)
-      if (result.status === QueryStatus.fulfilled) {
-        expect(result.data.pages).toEqual(expectedValues)
-      }
-    }
-
-    const countersApi = createCountersApi()
-
-    const storeRef = setupApiStore(
-      countersApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        initialPageParam: 3,
-      }),
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdPromise = storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdRes = await thirdPromise
-
-    checkResultData(thirdRes, [
-      { page: 3, hitCounter: 1 },
-      { page: 4, hitCounter: 2 },
-      { page: 5, hitCounter: 3 },
-    ])
-
-    const fourthRes = await thirdPromise.refetch()
-
-    checkResultData(fourthRes, [
-      { page: 3, hitCounter: 4 },
-      { page: 4, hitCounter: 5 },
-      { page: 5, hitCounter: 6 },
-    ])
-  })
-
-  test('Refetches on invalidation', async () => {
-    const checkResultData = (
-      result: InfiniteQueryResult,
-      expectedValues: HitCounter[],
-    ) => {
-      expect(result.status).toBe(QueryStatus.fulfilled)
-      if (result.status === QueryStatus.fulfilled) {
-        expect(result.data.pages).toEqual(expectedValues)
-      }
-    }
-
-    const countersApi = createCountersApi()
-
-    const storeRef = setupApiStore(
-      countersApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        initialPageParam: 3,
-      }),
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdPromise = storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdRes = await thirdPromise
-
-    checkResultData(thirdRes, [
-      { page: 3, hitCounter: 1 },
-      { page: 4, hitCounter: 2 },
-      { page: 5, hitCounter: 3 },
-    ])
-
-    await storeRef.store.dispatch(countersApi.endpoints.mutation.initiate())
-
-    let entry = countersApi.endpoints.counters.select('item')(
-      storeRef.store.getState(),
-    )
-    const promise = storeRef.store.dispatch(
-      countersApi.util.getRunningQueryThunk('counters', 'item'),
-    )
-    const promises = storeRef.store.dispatch(
-      countersApi.util.getRunningQueriesThunk(),
-    )
-    expect(entry).toMatchObject({
-      status: 'pending',
-    })
-
-    expect(promise).toBeInstanceOf(Promise)
-
-    expect(promises).toEqual([promise])
-
-    const finalRes = await promise
-
-    checkResultData(finalRes as any, [
-      { page: 3, hitCounter: 4 },
-      { page: 4, hitCounter: 5 },
-      { page: 5, hitCounter: 6 },
-    ])
-  })
-
-  test('Refetches on polling', async () => {
-    const countersApi = createCountersApi()
-    const checkResultData = (
-      result: InfiniteQueryResult,
-      expectedValues: HitCounter[],
-    ) => {
-      expect(result.status).toBe(QueryStatus.fulfilled)
-      if (result.status === QueryStatus.fulfilled) {
-        expect(result.data.pages).toEqual(expectedValues)
-      }
-    }
-
-    const storeRef = setupApiStore(
-      countersApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        initialPageParam: 3,
-      }),
-    )
-
-    await storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdPromise = storeRef.store.dispatch(
-      countersApi.endpoints.counters.initiate('item', {
-        direction: 'forward',
-      }),
-    )
-
-    const thirdRes = await thirdPromise
-
-    checkResultData(thirdRes, [
-      { page: 3, hitCounter: 1 },
-      { page: 4, hitCounter: 2 },
-      { page: 5, hitCounter: 3 },
-    ])
-
-    thirdPromise.updateSubscriptionOptions({
-      pollingInterval: 50,
-    })
-
-    await delay(25)
-
-    let entry = countersApi.endpoints.counters.select('item')(
-      storeRef.store.getState(),
-    )
-
-    checkResultData(thirdRes, [
-      { page: 3, hitCounter: 1 },
-      { page: 4, hitCounter: 2 },
-      { page: 5, hitCounter: 3 },
-    ])
-
-    await delay(50)
-
-    entry = countersApi.endpoints.counters.select('item')(
-      storeRef.store.getState(),
-    )
-
-    checkResultData(entry as any, [
-      { page: 3, hitCounter: 4 },
-      { page: 4, hitCounter: 5 },
-      { page: 5, hitCounter: 6 },
-    ])
-  })
-
-  test('Handles multiple next page fetches at once', async () => {
-    const initialEntry = await storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    checkResultData(initialEntry, [[{ id: '0', name: 'Pokemon 0' }]])
-
-    expect(queryCounter).toBe(1)
-
-    const promise1 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    expect(queryCounter).toBe(1)
-
-    const promise2 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    const entry1 = await promise1
-    const entry2 = await promise2
-
-    // The second thunk should have bailed out because the entry was now
-    // pending, so we should only have sent one request.
-    expect(queryCounter).toBe(2)
-
-    expect(entry1).toEqual(entry2)
-
-    checkResultData(entry1, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-
-    expect(queryCounter).toBe(2)
-
-    const promise3 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    expect(queryCounter).toBe(2)
-
-    // We can abort an existing promise, but due to timing issues,
-    // we have to await the promise first before triggering the next request.
-    promise3.abort()
-    const entry3 = await promise3
-
-    const promise4 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    const entry4 = await promise4
-
-    expect(queryCounter).toBe(4)
-
-    checkResultData(entry4, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-      [{ id: '2', name: 'Pokemon 2' }],
-    ])
-  })
-
-  test('can fetch pages with refetchOnMountOrArgChange active', async () => {
-    const pokemonApiWithRefetch = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (build) => ({
-        getInfinitePokemon: build.infiniteQuery<Pokemon[], string, number>({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              // Page param type should be `number`
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-            getPreviousPageParam: (
-              firstPage,
-              allPages,
-              firstPageParam,
-              allPageParams,
-            ) => {
-              return firstPageParam > 0 ? firstPageParam - 1 : undefined
-            },
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-        }),
-      }),
-      refetchOnMountOrArgChange: true,
-    })
-
-    const storeRef = setupApiStore(
-      pokemonApiWithRefetch,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    const res1 = storeRef.store.dispatch(
-      pokemonApiWithRefetch.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    const entry1InitialLoad = await res1
-    checkResultData(entry1InitialLoad, [[{ id: '0', name: 'Pokemon 0' }]])
-
-    const res2 = storeRef.store.dispatch(
-      pokemonApiWithRefetch.endpoints.getInfinitePokemon.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    const entry1SecondPage = await res2
-    checkResultData(entry1SecondPage, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-
-    expect(queryCounter).toBe(2)
-
-    const entry2InitialLoad = await storeRef.store.dispatch(
-      pokemonApiWithRefetch.endpoints.getInfinitePokemon.initiate('water', {}),
-    )
-
-    checkResultData(entry2InitialLoad, [[{ id: '0', name: 'Pokemon 0' }]])
-
-    expect(queryCounter).toBe(3)
-
-    const entry2SecondPage = await storeRef.store.dispatch(
-      pokemonApiWithRefetch.endpoints.getInfinitePokemon.initiate('water', {
-        direction: 'forward',
-      }),
-    )
-    checkResultData(entry2SecondPage, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-
-    expect(queryCounter).toBe(4)
-
-    // Should now be able to switch back to the first query.
-    // The hooks dispatch on arg change without a direction.
-    // That should trigger a refetch of the first query, meaning two requests.
-    // It should also _replace_ the existing results, rather than appending
-    // duplicate entries ([0, 1, 0, 1])
-    const entry1Refetched = await storeRef.store.dispatch(
-      pokemonApiWithRefetch.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    checkResultData(entry1Refetched, [
-      [{ id: '0', name: 'Pokemon 0' }],
-      [{ id: '1', name: 'Pokemon 1' }],
-    ])
-
-    expect(queryCounter).toBe(6)
-  })
-
-  test('Works with cache manipulation utils', async () => {
-    const res1 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {}),
-    )
-
-    const entry1InitialLoad = await res1
-    checkResultData(entry1InitialLoad, [[{ id: '0', name: 'Pokemon 0' }]])
-
-    storeRef.store.dispatch(
-      pokemonApi.util.updateQueryData('getInfinitePokemon', 'fire', (draft) => {
-        draft.pages.push([{ id: '1', name: 'Pokemon 1' }])
-        draft.pageParams.push(1)
-      }),
-    )
-
-    const selectFire = pokemonApi.endpoints.getInfinitePokemon.select('fire')
-    const entry1Updated = selectFire(storeRef.store.getState())
-
-    expect(entry1Updated.data).toEqual({
-      pages: [
-        [{ id: '0', name: 'Pokemon 0' }],
-        [{ id: '1', name: 'Pokemon 1' }],
-      ],
-      pageParams: [0, 1],
-    })
-
-    const res2 = storeRef.store.dispatch(
-      pokemonApi.util.upsertQueryData('getInfinitePokemon', 'water', {
-        pages: [[{ id: '2', name: 'Pokemon 2' }]],
-        pageParams: [2],
-      }),
-    )
-
-    const entry2InitialLoad = await res2
-    const selectWater = pokemonApi.endpoints.getInfinitePokemon.select('water')
-    const entry2Updated = selectWater(storeRef.store.getState())
-
-    expect(entry2Updated.data).toEqual({
-      pages: [[{ id: '2', name: 'Pokemon 2' }]],
-      pageParams: [2],
-    })
-
-    storeRef.store.dispatch(
-      pokemonApi.util.upsertQueryEntries([
-        {
-          endpointName: 'getInfinitePokemon',
-          arg: 'air',
-          value: {
-            pages: [[{ id: '3', name: 'Pokemon 3' }]],
-            pageParams: [3],
-          },
-        },
-      ]),
-    )
-
-    const selectAir = pokemonApi.endpoints.getInfinitePokemon.select('air')
-    const entry3Initial = selectAir(storeRef.store.getState())
-
-    expect(entry3Initial.data).toEqual({
-      pages: [[{ id: '3', name: 'Pokemon 3' }]],
-      pageParams: [3],
-    })
-
-    await storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemon.initiate('air', {
-        direction: 'forward',
-      }),
-    )
-
-    const entry3Updated = selectAir(storeRef.store.getState())
-
-    expect(entry3Updated.data).toEqual({
-      pages: [
-        [{ id: '3', name: 'Pokemon 3' }],
-        [{ id: '4', name: 'Pokemon 4' }],
-      ],
-      pageParams: [3, 4],
-    })
-  })
-
-  test('Cache lifecycle methods are called', async () => {
-    const cacheEntryAddedCallback = vi.fn()
-    const queryStartedCallback = vi.fn()
-
-    const pokemonApi = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (build) => ({
-        getInfinitePokemonWithLifecycles: build.infiniteQuery<
-          Pokemon[],
-          string,
-          number
-        >({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              // Page param type should be `number`
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-            getPreviousPageParam: (
-              firstPage,
-              allPages,
-              firstPageParam,
-              allPageParams,
-            ) => {
-              return firstPageParam > 0 ? firstPageParam - 1 : undefined
-            },
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-          async onCacheEntryAdded(arg, api) {
-            const data = await api.cacheDataLoaded
-            cacheEntryAddedCallback(arg, data)
-          },
-          async onQueryStarted(arg, api) {
-            const data = await api.queryFulfilled
-            queryStartedCallback(arg, data)
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(
-      pokemonApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    const res1 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemonWithLifecycles.initiate(
-        'fire',
-        {},
-      ),
-    )
-
-    const entry1InitialLoad = await res1
-    checkResultData(entry1InitialLoad, [[{ id: '0', name: 'Pokemon 0' }]])
-
-    expect(cacheEntryAddedCallback).toHaveBeenCalledWith('fire', {
-      data: {
-        pages: [[{ id: '0', name: 'Pokemon 0' }]],
-        pageParams: [0],
-      },
-      meta: expect.objectContaining({
-        request: expect.anything(),
-        response: expect.anything(),
-      }),
-    })
-
-    expect(queryStartedCallback).toHaveBeenCalledWith('fire', {
-      data: {
-        pages: [[{ id: '0', name: 'Pokemon 0' }]],
-        pageParams: [0],
-      },
-      meta: expect.objectContaining({
-        request: expect.anything(),
-        response: expect.anything(),
-      }),
-    })
-  })
-
-  test('Can use transformResponse', async () => {
-    type PokemonPage = { items: Pokemon[]; page: number }
-    const pokemonApi = createApi({
-      baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
-      endpoints: (build) => ({
-        getInfinitePokemonWithTransform: build.infiniteQuery<
-          PokemonPage,
-          string,
-          number
-        >({
-          infiniteQueryOptions: {
-            initialPageParam: 0,
-            getNextPageParam: (
-              lastPage,
-              allPages,
-              // Page param type should be `number`
-              lastPageParam,
-              allPageParams,
-            ) => lastPageParam + 1,
-          },
-          query({ pageParam }) {
-            return `https://example.com/listItems?page=${pageParam}`
-          },
-          transformResponse(baseQueryReturnValue: Pokemon[], meta, arg) {
-            expect(Array.isArray(baseQueryReturnValue)).toBe(true)
-            return {
-              items: baseQueryReturnValue,
-              page: arg.pageParam,
-            }
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(
-      pokemonApi,
-      { ...actionsReducer },
-      {
-        withoutTestLifecycles: true,
-      },
-    )
-
-    const checkResultData = (
-      result: InfiniteQueryResult,
-      expectedValues: PokemonPage[],
-    ) => {
-      expect(result.status).toBe(QueryStatus.fulfilled)
-      if (result.status === QueryStatus.fulfilled) {
-        expect(result.data.pages).toEqual(expectedValues)
-      }
-    }
-
-    const res1 = storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemonWithTransform.initiate('fire', {}),
-    )
-
-    const entry1InitialLoad = await res1
-    checkResultData(entry1InitialLoad, [
-      { items: [{ id: '0', name: 'Pokemon 0' }], page: 0 },
-    ])
-
-    const entry1Updated = await storeRef.store.dispatch(
-      pokemonApi.endpoints.getInfinitePokemonWithTransform.initiate('fire', {
-        direction: 'forward',
-      }),
-    )
-
-    checkResultData(entry1Updated, [
-      { items: [{ id: '0', name: 'Pokemon 0' }], page: 0 },
-      { items: [{ id: '1', name: 'Pokemon 1' }], page: 1 },
-    ])
-  })
-
-  describe('refetchCachedPages option', () => {
-    test('refetches all pages by default (refetchCachedPages: true)', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        tagTypes: ['Counter'],
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-            },
-            providesTags: ['Counter'],
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdRes = await thirdPromise
-
-      // Should have 3 pages with hitCounters 1, 2, 3
-      expect(thirdRes.data!.pages).toEqual([
-        { page: 0, hitCounter: 1 },
-        { page: 1, hitCounter: 2 },
-        { page: 2, hitCounter: 3 },
-      ])
-
-      // Refetch without specifying refetchCachedPages
-      const refetchRes = await thirdPromise.refetch()
-
-      // All 3 pages should be refetched (hitCounters 4, 5, 6)
-      expect(refetchRes.data!.pages).toEqual([
-        { page: 0, hitCounter: 4 },
-        { page: 1, hitCounter: 5 },
-        { page: 2, hitCounter: 6 },
-      ])
-      expect(refetchRes.data!.pages).toHaveLength(3)
-    })
-
-    test('refetches all pages when refetchCachedPages is explicitly true', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        tagTypes: ['Counter'],
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              refetchCachedPages: true, // Explicit true
-            },
-            providesTags: ['Counter'],
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdRes = await thirdPromise
-
-      expect(thirdRes.data!.pages).toHaveLength(3)
-
-      // Refetch
-      const refetchRes = await thirdPromise.refetch()
-
-      // All 3 pages should be refetched
-      expect(refetchRes.data!.pages).toHaveLength(3)
-      expect(refetchRes.data!.pages[0].hitCounter).toBeGreaterThan(
-        thirdRes.data!.pages[0].hitCounter,
-      )
-    })
-
-    test('refetches only first page when refetchCachedPages is false', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        tagTypes: ['Counter'],
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              refetchCachedPages: false, // Only refetch first page
-            },
-            providesTags: ['Counter'],
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdRes = await thirdPromise
-
-      // Should have 3 pages with hitCounters 1, 2, 3
-      expect(thirdRes.data!.pages).toEqual([
-        { page: 0, hitCounter: 1 },
-        { page: 1, hitCounter: 2 },
-        { page: 2, hitCounter: 3 },
-      ])
-
-      // Refetch with refetchCachedPages: false
-      const refetchRes = await thirdPromise.refetch()
-
-      // Only first page should be refetched, cache reset to 1 page
-      expect(refetchRes.data!.pages).toEqual([{ page: 0, hitCounter: 4 }])
-      expect(refetchRes.data!.pageParams).toEqual([0])
-    })
-
-    test('refetches only first page on tag invalidation when refetchCachedPages is false', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        tagTypes: ['Counter'],
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              refetchCachedPages: false,
-            },
-            providesTags: ['Counter'],
-          }),
-          mutation: build.mutation<null, void>({
-            queryFn: async () => ({ data: null }),
-            invalidatesTags: ['Counter'],
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      // Verify we have 3 pages
-      let entry = countersApi.endpoints.counters.select('item')(
-        storeRef.store.getState(),
-      )
-      expect(entry.data?.pages).toHaveLength(3)
-
-      // Trigger mutation to invalidate tags
-      await storeRef.store.dispatch(countersApi.endpoints.mutation.initiate())
-
-      // Wait for refetch to complete
-      const promise = storeRef.store.dispatch(
-        countersApi.util.getRunningQueryThunk('counters', 'item'),
-      )
-      const finalRes = await promise
-
-      // Only first page should be refetched
-      expect((finalRes as any).data.pages).toEqual([{ page: 0, hitCounter: 4 }])
-    })
-
-    test('refetches only first page during polling when refetchCachedPages is false', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              refetchCachedPages: false,
-            },
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      await thirdPromise
-
-      // Enable polling
-      thirdPromise.updateSubscriptionOptions({
-        pollingInterval: 50,
-      })
-
-      // Wait for first poll
-      await delay(75)
-
-      const entry = countersApi.endpoints.counters.select('item')(
-        storeRef.store.getState(),
-      )
-
-      // Should only have 1 page after poll
-      expect(entry.data?.pages).toEqual([{ page: 0, hitCounter: 4 }])
-    })
-
-    test('refetchCachedPages: false works with maxPages', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              maxPages: 3,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              getPreviousPageParam: (
-                firstPage,
-                allPages,
-                firstPageParam,
-                allPageParams,
-              ) => (firstPageParam > 0 ? firstPageParam - 1 : undefined),
-              refetchCachedPages: false,
-            },
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 5 pages (but maxPages will limit to 3)
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      for (let i = 0; i < 4; i++) {
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-      }
-
-      let entry = countersApi.endpoints.counters.select('item')(
-        storeRef.store.getState(),
-      )
-
-      // Should have 3 pages due to maxPages
-      expect(entry.data?.pages).toHaveLength(3)
-
-      // Refetch
-      const refetchPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          forceRefetch: true,
-        }),
-      )
-
-      const refetchRes = await refetchPromise
-
-      // Should only have 1 page after refetch (refetchCachedPages: false)
-      // Note: With maxPages: 3, the cache kept pages 2, 3, 4
-      // So refetch starts from the first cached page param, which is 2
-      expect(refetchRes.data!.pages).toHaveLength(1)
-      expect(refetchRes.data!.pages[0].page).toBe(2)
-    })
-
-    test('can fetch next page after refetch with refetchCachedPages: false', async () => {
-      let hitCounter = 0
-
-      const countersApi = createApi({
-        baseQuery: fakeBaseQuery(),
-        endpoints: (build) => ({
-          counters: build.infiniteQuery<HitCounter, string, number>({
-            queryFn({ pageParam }) {
-              hitCounter++
-              return { data: { page: pageParam, hitCounter } }
-            },
-            infiniteQueryOptions: {
-              initialPageParam: 0,
-              getNextPageParam: (
-                lastPage,
-                allPages,
-                lastPageParam,
-                allPageParams,
-              ) => lastPageParam + 1,
-              refetchCachedPages: false,
-            },
-          }),
-        }),
-      })
-
-      const storeRef = setupApiStore(
-        countersApi,
-        { ...actionsReducer },
-        {
-          withoutTestLifecycles: true,
-        },
-      )
-
-      // Load 3 pages
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          initialPageParam: 0,
-        }),
-      )
-
-      await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      const thirdPromise = storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      await thirdPromise
-
-      // Refetch (resets to 1 page)
-      await thirdPromise.refetch()
-
-      let entry = countersApi.endpoints.counters.select('item')(
-        storeRef.store.getState(),
-      )
-      expect(entry.data?.pages).toHaveLength(1)
-
-      // Fetch next page
-      const nextPageRes = await storeRef.store.dispatch(
-        countersApi.endpoints.counters.initiate('item', {
-          direction: 'forward',
-        }),
-      )
-
-      // Should now have 2 pages
-      expect(nextPageRes.data!.pages).toEqual([
-        { page: 0, hitCounter: 4 },
-        { page: 1, hitCounter: 5 },
-      ])
-    })
-
-    describe('per-call refetchCachedPages override', () => {
-      test('per-call false overrides endpoint true', async () => {
-        let hitCounter = 0
-
-        const countersApi = createApi({
-          baseQuery: fakeBaseQuery(),
-          endpoints: (build) => ({
-            counters: build.infiniteQuery<HitCounter, string, number>({
-              queryFn({ pageParam }) {
-                hitCounter++
-                return { data: { page: pageParam, hitCounter } }
-              },
-              infiniteQueryOptions: {
-                initialPageParam: 0,
-                getNextPageParam: (
-                  lastPage,
-                  allPages,
-                  lastPageParam,
-                  allPageParams,
-                ) => lastPageParam + 1,
-                refetchCachedPages: true, // Endpoint default: refetch all
-              },
-            }),
-          }),
-        })
-
-        const storeRef = setupApiStore(
-          countersApi,
-          { ...actionsReducer },
-          {
-            withoutTestLifecycles: true,
-          },
-        )
-
-        // Load 3 pages
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            initialPageParam: 0,
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        // Should have 3 pages with hitCounters 1, 2, 3
-        let entry = countersApi.endpoints.counters.select('item')(
-          storeRef.store.getState(),
-        )
-        expect(entry.data?.pages).toEqual([
-          { page: 0, hitCounter: 1 },
-          { page: 1, hitCounter: 2 },
-          { page: 2, hitCounter: 3 },
-        ])
-
-        // Refetch with per-call override: false
-        const refetchRes = await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            forceRefetch: true,
-            refetchCachedPages: false, // Override to false
-          }),
-        )
-
-        // Only first page should be refetched (hitCounter 4)
-        expect(refetchRes.data!.pages).toEqual([{ page: 0, hitCounter: 4 }])
-        expect(refetchRes.data!.pageParams).toEqual([0])
-      })
-
-      test('per-call true overrides endpoint false', async () => {
-        let hitCounter = 0
-
-        const countersApi = createApi({
-          baseQuery: fakeBaseQuery(),
-          endpoints: (build) => ({
-            counters: build.infiniteQuery<HitCounter, string, number>({
-              queryFn({ pageParam }) {
-                hitCounter++
-                return { data: { page: pageParam, hitCounter } }
-              },
-              infiniteQueryOptions: {
-                initialPageParam: 0,
-                getNextPageParam: (
-                  lastPage,
-                  allPages,
-                  lastPageParam,
-                  allPageParams,
-                ) => lastPageParam + 1,
-                refetchCachedPages: false, // Endpoint default: only first page
-              },
-            }),
-          }),
-        })
-
-        const storeRef = setupApiStore(
-          countersApi,
-          { ...actionsReducer },
-          {
-            withoutTestLifecycles: true,
-          },
-        )
-
-        // Load 3 pages
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            initialPageParam: 0,
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        // Should have 3 pages
-        let entry = countersApi.endpoints.counters.select('item')(
-          storeRef.store.getState(),
-        )
-        expect(entry.data?.pages).toHaveLength(3)
-
-        // Refetch with per-call override: true
-        const refetchRes = await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            forceRefetch: true,
-            refetchCachedPages: true, // Override to true
-          }),
-        )
-
-        // All 3 pages should be refetched
-        expect(refetchRes.data!.pages).toEqual([
-          { page: 0, hitCounter: 4 },
-          { page: 1, hitCounter: 5 },
-          { page: 2, hitCounter: 6 },
-        ])
-        expect(refetchRes.data!.pages).toHaveLength(3)
-      })
-
-      test('uses endpoint config when no per-call override', async () => {
-        let hitCounter = 0
-
-        const countersApi = createApi({
-          baseQuery: fakeBaseQuery(),
-          endpoints: (build) => ({
-            counters: build.infiniteQuery<HitCounter, string, number>({
-              queryFn({ pageParam }) {
-                hitCounter++
-                return { data: { page: pageParam, hitCounter } }
-              },
-              infiniteQueryOptions: {
-                initialPageParam: 0,
-                getNextPageParam: (
-                  lastPage,
-                  allPages,
-                  lastPageParam,
-                  allPageParams,
-                ) => lastPageParam + 1,
-                refetchCachedPages: false, // Endpoint config
-              },
-            }),
-          }),
-        })
-
-        const storeRef = setupApiStore(
-          countersApi,
-          { ...actionsReducer },
-          {
-            withoutTestLifecycles: true,
-          },
-        )
-
-        // Load 3 pages
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            initialPageParam: 0,
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        // Refetch without per-call override
-        const refetchRes = await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            forceRefetch: true,
-            // No refetchCachedPages specified
-          }),
-        )
-
-        // Should use endpoint config (false) - only first page
-        expect(refetchRes.data!.pages).toEqual([{ page: 0, hitCounter: 4 }])
-      })
-
-      test('defaults to true when no config at any level', async () => {
-        let hitCounter = 0
-
-        const countersApi = createApi({
-          baseQuery: fakeBaseQuery(),
-          endpoints: (build) => ({
-            counters: build.infiniteQuery<HitCounter, string, number>({
-              queryFn({ pageParam }) {
-                hitCounter++
-                return { data: { page: pageParam, hitCounter } }
-              },
-              infiniteQueryOptions: {
-                initialPageParam: 0,
-                getNextPageParam: (
-                  lastPage,
-                  allPages,
-                  lastPageParam,
-                  allPageParams,
-                ) => lastPageParam + 1,
-                // No refetchCachedPages specified
-              },
-            }),
-          }),
-        })
-
-        const storeRef = setupApiStore(
-          countersApi,
-          { ...actionsReducer },
-          {
-            withoutTestLifecycles: true,
-          },
-        )
-
-        // Load 3 pages
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            initialPageParam: 0,
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            direction: 'forward',
-          }),
-        )
-
-        // Refetch without any config
-        const refetchRes = await storeRef.store.dispatch(
-          countersApi.endpoints.counters.initiate('item', {
-            forceRefetch: true,
-          }),
-        )
-
-        // Should default to true - refetch all pages
-        expect(refetchRes.data!.pages).toEqual([
-          { page: 0, hitCounter: 4 },
-          { page: 1, hitCounter: 5 },
-          { page: 2, hitCounter: 6 },
-        ])
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/injectEndpoints.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/injectEndpoints.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,121 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { configureStore } from '@internal/configureStore'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: () => ({}),
-})
-
-describe('injectEndpoints', () => {
-  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-  afterEach(() => {
-    vi.clearAllMocks()
-    vi.unstubAllEnvs()
-  })
-
-  afterAll(() => {
-    vi.restoreAllMocks()
-    vi.unstubAllEnvs()
-  })
-
-  test("query: overriding with `overrideEndpoints`='throw' throws an error", async () => {
-    const extended = api.injectEndpoints({
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    expect(() => {
-      extended.injectEndpoints({
-        overrideExisting: 'throw',
-        endpoints: (build) => ({
-          injected: build.query<unknown, string>({
-            query: () => '/success',
-          }),
-        }),
-      })
-    }).toThrowError(
-      new Error(
-        `called \`injectEndpoints\` to override already-existing endpointName injected without specifying \`overrideExisting: true\``,
-      ),
-    )
-  })
-
-  test('query: overriding an endpoint with `overrideEndpoints`=false does nothing in production', async () => {
-    vi.stubEnv('NODE_ENV', 'development')
-
-    const extended = api.injectEndpoints({
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    extended.injectEndpoints({
-      overrideExisting: false,
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    expect(consoleErrorSpy).toHaveBeenCalledWith(
-      `called \`injectEndpoints\` to override already-existing endpointName injected without specifying \`overrideExisting: true\``,
-    )
-  })
-
-  test('query: overriding with `overrideEndpoints`=false logs an error in development', async () => {
-    vi.stubEnv('NODE_ENV', 'production')
-
-    const extended = api.injectEndpoints({
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    extended.injectEndpoints({
-      overrideExisting: false,
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-  })
-
-  test('adding the same middleware to the store twice throws an error', () => {
-    // Strictly speaking this is a duplicate of the tests in configureStore.test.ts,
-    // but this helps confirm that we throw the error for adding
-    // the same API middleware twice.
-    const extendedApi = api.injectEndpoints({
-      endpoints: (build) => ({
-        injected: build.query<unknown, string>({
-          query: () => '/success',
-        }),
-      }),
-    })
-
-    const makeStore = () =>
-      configureStore({
-        reducer: {
-          api: api.reducer,
-        },
-        middleware: (getDefaultMiddleware) =>
-          getDefaultMiddleware().concat(api.middleware, extendedApi.middleware),
-      })
-
-    expect(makeStore).toThrowError(
-      'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.',
-    )
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/invalidation.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/invalidation.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,146 +1,0 @@
-import type { TagDescription } from '@reduxjs/toolkit/query'
-import { createApi, fakeBaseQuery } from '@reduxjs/toolkit/query'
-import { waitFor } from '@testing-library/react'
-import { delay } from 'msw'
-import { setupApiStore } from '../../tests/utils/helpers'
-
-const tagTypes = [
-  'apple',
-  'pear',
-  'banana',
-  'tomato',
-  'cat',
-  'dog',
-  'giraffe',
-] as const
-type TagTypes = (typeof tagTypes)[number]
-type ProvidedTags = TagDescription<TagTypes>[] 
-type InvalidatesTags = (ProvidedTags[number] | null | undefined)[]
-/** providesTags, invalidatesTags, shouldInvalidate */
-const caseMatrix: [ProvidedTags, InvalidatesTags, boolean][] = [
-  // *****************************
-  // basic invalidation behavior
-  // *****************************
-
-  // string
-  [['apple'], ['apple'], true],
-  [['apple'], ['pear'], false],
-  // string and type only behave identical
-  [[{ type: 'apple' }], ['apple'], true],
-  [[{ type: 'apple' }], ['pear'], false],
-  [['apple'], [{ type: 'apple' }], true],
-  [['apple'], [{ type: 'pear' }], false],
-  // type only invalidates type + id
-  [[{ type: 'apple', id: 1 }], [{ type: 'apple' }], true],
-  [[{ type: 'pear', id: 1 }], ['apple'], false],
-  // type + id never invalidates type only
-  [['apple'], [{ type: 'apple', id: 1 }], false],
-  [['pear'], [{ type: 'apple', id: 1 }], false],
-  // type + id invalidates type + id
-  [[{ type: 'apple', id: 1 }], [{ type: 'apple', id: 1 }], true],
-  [[{ type: 'apple', id: 1 }], [{ type: 'apple', id: 2 }], false],
-  // null and undefined
-  [['apple'], [null], false],
-  [['apple'], [undefined], false],
-  [['apple'], [null, 'apple'], true],
-  [['apple'], [undefined, 'apple'], true],
-  // *****************************
-  // test multiple values in array
-  // *****************************
-
-  [['apple', 'banana', 'tomato'], ['apple'], true],
-  [['apple'], ['pear', 'banana', 'tomato'], false],
-  [
-    [
-      { type: 'apple', id: 1 },
-      { type: 'apple', id: 3 },
-      { type: 'apple', id: 4 },
-    ],
-    [{ type: 'apple', id: 1 }],
-    true,
-  ],
-  [
-    [{ type: 'apple', id: 1 }],
-    [
-      { type: 'apple', id: 2 },
-      { type: 'apple', id: 3 },
-      { type: 'apple', id: 4 },
-    ],
-    false,
-  ],
-]
-
-test.each(caseMatrix)(
-  '\tprovidesTags: %O,\n\tinvalidatesTags: %O,\n\tshould invalidate: %s',
-  async (providesTags, invalidatesTags, shouldInvalidate) => {
-    let queryCount = 0
-    const {
-      store,
-      api,
-      api: {
-        endpoints: { invalidating, providing, unrelated },
-      },
-    } = setupApiStore(
-      createApi({
-        baseQuery: fakeBaseQuery(),
-        tagTypes,
-        endpoints: (build) => ({
-          providing: build.query<unknown, void>({
-            queryFn() {
-              queryCount++
-              return { data: {} }
-            },
-            providesTags,
-          }),
-          unrelated: build.query<unknown, void>({
-            queryFn() {
-              return { data: {} }
-            },
-            providesTags: ['cat', 'dog', { type: 'giraffe', id: 8 }],
-          }),
-          invalidating: build.mutation<unknown, void>({
-            queryFn() {
-              return { data: {} }
-            },
-            invalidatesTags,
-          }),
-        }),
-      }),
-      undefined,
-      { withoutTestLifecycles: true },
-    )
-
-    store.dispatch(providing.initiate())
-    store.dispatch(unrelated.initiate())
-    expect(queryCount).toBe(1)
-    await waitFor(() => {
-      expect(api.endpoints.providing.select()(store.getState()).status).toBe(
-        'fulfilled',
-      )
-      expect(api.endpoints.unrelated.select()(store.getState()).status).toBe(
-        'fulfilled',
-      )
-    })
-    const toInvalidate = api.util.selectInvalidatedBy(
-      store.getState(),
-      invalidatesTags,
-    )
-
-    if (shouldInvalidate) {
-      expect(toInvalidate).toEqual([
-        {
-          queryCacheKey: 'providing(undefined)',
-          endpointName: 'providing',
-          originalArgs: undefined,
-        },
-      ])
-    } else {
-      expect(toInvalidate).toEqual([])
-    }
-
-    store.dispatch(invalidating.initiate())
-    expect(queryCount).toBe(1)
-    await delay(2)
-    expect(queryCount).toBe(shouldInvalidate ? 2 : 1)
-  },
-)
Index: de_modules/@reduxjs/toolkit/src/query/tests/matchers.test-d.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/matchers.test-d.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import type { SerializedError } from '@reduxjs/toolkit'
-import { createSlice } from '@reduxjs/toolkit'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-
-interface ResultType {
-  result: 'complex'
-}
-
-interface ArgType {
-  foo: 'bar'
-  count: 3
-}
-
-const baseQuery = fetchBaseQuery({ baseUrl: 'https://example.com' })
-const api = createApi({
-  baseQuery,
-  endpoints(build) {
-    return {
-      querySuccess: build.query<ResultType, ArgType>({
-        query: () => '/success',
-      }),
-      querySuccess2: build.query({ query: () => '/success' }),
-      queryFail: build.query({ query: () => '/error' }),
-      mutationSuccess: build.mutation({
-        query: () => ({ url: '/success', method: 'POST' }),
-      }),
-      mutationSuccess2: build.mutation({
-        query: () => ({ url: '/success', method: 'POST' }),
-      }),
-      mutationFail: build.mutation({
-        query: () => ({ url: '/error', method: 'POST' }),
-      }),
-    }
-  },
-})
-
-describe('type tests', () => {
-  test('inferred types', () => {
-    createSlice({
-      name: 'auth',
-      initialState: {},
-      reducers: {},
-      extraReducers: (builder) => {
-        builder
-          .addMatcher(
-            api.endpoints.querySuccess.matchPending,
-            (state, action) => {
-              expectTypeOf(action.payload).toBeUndefined()
-
-              expectTypeOf(
-                action.meta.arg.originalArgs,
-              ).toEqualTypeOf<ArgType>()
-            },
-          )
-          .addMatcher(
-            api.endpoints.querySuccess.matchFulfilled,
-            (state, action) => {
-              expectTypeOf(action.payload).toEqualTypeOf<ResultType>()
-
-              expectTypeOf(action.meta.fulfilledTimeStamp).toBeNumber()
-
-              expectTypeOf(
-                action.meta.arg.originalArgs,
-              ).toEqualTypeOf<ArgType>()
-            },
-          )
-          .addMatcher(
-            api.endpoints.querySuccess.matchRejected,
-            (state, action) => {
-              expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-
-              expectTypeOf(
-                action.meta.arg.originalArgs,
-              ).toEqualTypeOf<ArgType>()
-            },
-          )
-      },
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/matchers.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/matchers.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,241 +1,0 @@
-import {
-  actionsReducer,
-  hookWaitFor,
-  setupApiStore,
-} from '@internal/tests/utils/helpers'
-import { createSlice } from '@reduxjs/toolkit'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-import { act, renderHook } from '@testing-library/react'
-
-interface ResultType {
-  result: 'complex'
-}
-
-interface ArgType {
-  foo: 'bar'
-  count: 3
-}
-
-const baseQuery = fetchBaseQuery({ baseUrl: 'https://example.com' })
-const api = createApi({
-  baseQuery,
-  endpoints(build) {
-    return {
-      querySuccess: build.query<ResultType, ArgType>({
-        query: () => '/success',
-      }),
-      querySuccess2: build.query({ query: () => '/success' }),
-      queryFail: build.query({ query: () => '/error' }),
-      mutationSuccess: build.mutation({
-        query: () => ({ url: '/success', method: 'POST' }),
-      }),
-      mutationSuccess2: build.mutation({
-        query: () => ({ url: '/success', method: 'POST' }),
-      }),
-      mutationFail: build.mutation({
-        query: () => ({ url: '/error', method: 'POST' }),
-      }),
-    }
-  },
-})
-
-const storeRef = setupApiStore(api, {
-  ...actionsReducer,
-})
-
-const {
-  mutationFail,
-  mutationSuccess,
-  mutationSuccess2,
-  queryFail,
-  querySuccess,
-  querySuccess2,
-} = api.endpoints
-
-test('matches query pending & fulfilled actions for the given endpoint', async () => {
-  const endpoint = querySuccess2
-  const otherEndpoint = queryFail
-  const { result } = renderHook(() => endpoint.useQuery({} as any), {
-    wrapper: storeRef.wrapper,
-  })
-  await hookWaitFor(() => expect(result.current.isLoading).toBeFalsy())
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    otherEndpoint.matchPending,
-    otherEndpoint.matchFulfilled,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    api.endpoints.mutationSuccess.matchFulfilled,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-})
-test('matches query pending & rejected actions for the given endpoint', async () => {
-  const endpoint = queryFail
-  const { result } = renderHook(() => endpoint.useQuery({}), {
-    wrapper: storeRef.wrapper,
-  })
-  await hookWaitFor(() => expect(result.current.isLoading).toBeFalsy())
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-})
-
-test('matches lazy query pending & fulfilled actions for given endpoint', async () => {
-  const endpoint = querySuccess
-  const { result } = renderHook(() => endpoint.useLazyQuery(), {
-    wrapper: storeRef.wrapper,
-  })
-  act(() => void result.current[0]({} as any))
-  await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    endpoint.matchRejected,
-  )
-
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-})
-
-test('matches lazy query pending & rejected actions for given endpoint', async () => {
-  const endpoint = queryFail
-  const { result } = renderHook(() => endpoint.useLazyQuery(), {
-    wrapper: storeRef.wrapper,
-  })
-  act(() => void result.current[0]({}))
-  await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-})
-
-test('matches mutation pending & fulfilled actions for the given endpoint', async () => {
-  const endpoint = mutationSuccess
-  const otherEndpoint = mutationSuccess2
-  const { result } = renderHook(() => endpoint.useMutation(), {
-    wrapper: storeRef.wrapper,
-  })
-  act(() => void result.current[0]({}))
-  await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    otherEndpoint.matchPending,
-    otherEndpoint.matchFulfilled,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-})
-test('matches mutation pending & rejected actions for the given endpoint', async () => {
-  const endpoint = mutationFail
-  const { result } = renderHook(() => endpoint.useMutation(), {
-    wrapper: storeRef.wrapper,
-  })
-  act(() => void result.current[0]({}))
-  await hookWaitFor(() => expect(result.current[1].isLoading).toBeFalsy())
-
-  expect(storeRef.store.getState().actions).toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchFulfilled,
-    endpoint.matchRejected,
-  )
-  expect(storeRef.store.getState().actions).not.toMatchSequence(
-    api.internalActions.middlewareRegistered.match,
-    endpoint.matchPending,
-    endpoint.matchFulfilled,
-  )
-})
-
-test('inferred types', () => {
-  createSlice({
-    name: 'auth',
-    initialState: {},
-    reducers: {},
-    extraReducers: (builder) => {
-      builder
-        .addMatcher(
-          api.endpoints.querySuccess.matchPending,
-          (state, action) => {
-            // @ts-expect-error
-            console.log(action.error)
-          },
-        )
-        .addMatcher(
-          api.endpoints.querySuccess.matchFulfilled,
-          (state, action) => {
-            // @ts-expect-error
-            console.log(action.error)
-          },
-        )
-        .addMatcher(
-          api.endpoints.querySuccess.matchRejected,
-          (state, action) => {},
-        )
-    },
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/mocks/handlers.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/mocks/handlers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,107 +1,0 @@
-import { headersToObject } from 'headers-polyfill'
-import { HttpResponse, http } from 'msw'
-
-export type Post = {
-  id: number
-  title: string
-  body: string
-}
-
-export const posts: Record<string, Post> = {
-  1: { id: 1, title: 'hello', body: 'extra body!' },
-}
-
-export const handlers = [
-  http.get(
-    'https://example.com',
-    async ({ request, params, cookies, requestId }) => {
-      HttpResponse.json({ value: 'success' })
-    },
-  ),
-  http.get(
-    'https://example.com/echo',
-    async ({ request, params, cookies, requestId }) => {
-      return HttpResponse.json({
-        ...request,
-        params,
-        cookies,
-        requestId,
-        url: new URL(request.url),
-        headers: headersToObject(request.headers),
-      })
-    },
-  ),
-
-  http.post(
-    'https://example.com/echo',
-    async ({ request, cookies, params, requestId }) => {
-      let body
-
-      try {
-        body =
-          headersToObject(request.headers)['content-type'] === 'text/html'
-            ? await request.text()
-            : await request.json()
-      } catch (err) {
-        body = request.body
-      }
-
-      return HttpResponse.json({
-        ...request,
-        cookies,
-        params,
-        requestId,
-        body,
-        url: new URL(request.url),
-        headers: headersToObject(request.headers),
-      })
-    },
-  ),
-
-  http.get('https://example.com/success', () =>
-    HttpResponse.json({ value: 'success' }),
-  ),
-
-  http.post('https://example.com/success', () =>
-    HttpResponse.json({ value: 'success' }),
-  ),
-
-  http.get('https://example.com/empty', () => new HttpResponse('')),
-
-  http.get('https://example.com/error', () =>
-    HttpResponse.json({ value: 'error' }, { status: 500 }),
-  ),
-
-  http.post('https://example.com/error', () =>
-    HttpResponse.json({ value: 'error' }, { status: 500 }),
-  ),
-
-  http.get('https://example.com/nonstandard-error', () =>
-    HttpResponse.json(
-      {
-        success: false,
-        message: 'This returns a 200 but is really an error',
-      },
-      { status: 200 },
-    ),
-  ),
-
-  http.get('https://example.com/mirror', ({ params }) =>
-    HttpResponse.json(params),
-  ),
-
-  http.post('https://example.com/mirror', ({ params }) =>
-    HttpResponse.json(params),
-  ),
-
-  http.get('https://example.com/posts/random', () => {
-    // just simulate an api that returned a random ID
-    const { id } = posts[1]
-    return HttpResponse.json({ id })
-  }),
-
-  http.get<{ id: string }, any, Pick<Post, 'id'>>(
-    'https://example.com/post/:id',
-    ({ params }) => HttpResponse.json(posts[params.id]),
-  ),
-]
Index: de_modules/@reduxjs/toolkit/src/query/tests/mocks/server.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/mocks/server.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { setupServer } from 'msw/node'
-import { handlers } from './handlers'
-
-// This configures a request mocking server with the given request handlers.
-export const server = setupServer(...handlers)
Index: de_modules/@reduxjs/toolkit/src/query/tests/optimisticUpdates.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/optimisticUpdates.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,476 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query/react'
-import { act, renderHook } from '@testing-library/react'
-import { delay } from 'msw'
-import {
-  actionsReducer,
-  hookWaitFor,
-  setupApiStore,
-} from '../../tests/utils/helpers'
-import type { InvalidationState } from '../core/apiState'
-
-interface Post {
-  id: string
-  title: string
-  contents: string
-}
-
-const baseQuery = vi.fn()
-beforeEach(() => {
-  baseQuery.mockReset()
-})
-
-const api = createApi({
-  baseQuery: (...args: any[]) => {
-    const result = baseQuery(...args)
-    if (typeof result === 'object' && 'then' in result)
-      return result
-        .then((data: any) => ({ data, meta: 'meta' }))
-        .catch((e: any) => ({ error: e }))
-    return { data: result, meta: 'meta' }
-  },
-  tagTypes: ['Post'],
-  endpoints: (build) => ({
-    post: build.query<Post, string>({
-      query: (id) => `post/${id}`,
-      providesTags: ['Post'],
-    }),
-    listPosts: build.query<Post[], void>({
-      query: () => `posts`,
-      providesTags: (result) => [
-        ...(result?.map(({ id }) => ({ type: 'Post' as const, id })) ?? []),
-        'Post',
-      ],
-    }),
-    updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
-      query: ({ id, ...patch }) => ({
-        url: `post/${id}`,
-        method: 'PATCH',
-        body: patch,
-      }),
-      async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
-        const { undo } = dispatch(
-          api.util.updateQueryData('post', id, (draft) => {
-            Object.assign(draft, patch)
-          }),
-        )
-        queryFulfilled.catch(undo)
-      },
-      invalidatesTags: (result) => (result ? ['Post'] : []),
-    }),
-  }),
-})
-
-const storeRef = setupApiStore(api, { ...actionsReducer })
-
-describe('basic lifecycle', () => {
-  let onStart = vi.fn(),
-    onError = vi.fn(),
-    onSuccess = vi.fn()
-
-  const extendedApi = api.injectEndpoints({
-    endpoints: (build) => ({
-      test: build.mutation({
-        query: (x) => x,
-        async onQueryStarted(arg, api) {
-          onStart(arg)
-          try {
-            const result = await api.queryFulfilled
-            onSuccess(result)
-          } catch (e) {
-            onError(e)
-          }
-        },
-      }),
-    }),
-    overrideExisting: true,
-  })
-
-  beforeEach(() => {
-    onStart.mockReset()
-    onError.mockReset()
-    onSuccess.mockReset()
-  })
-
-  test('success', async () => {
-    const { result } = renderHook(
-      () => extendedApi.endpoints.test.useMutation(),
-      { wrapper: storeRef.wrapper },
-    )
-
-    baseQuery.mockResolvedValue('success')
-
-    expect(onStart).not.toHaveBeenCalled()
-    expect(baseQuery).not.toHaveBeenCalled()
-    act(() => void result.current[0]('arg'))
-    expect(onStart).toHaveBeenCalledWith('arg')
-    expect(baseQuery).toHaveBeenCalledWith('arg', expect.any(Object), undefined)
-
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).not.toHaveBeenCalled()
-    await act(() => delay(5))
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).toHaveBeenCalledWith({ data: 'success', meta: 'meta' })
-  })
-
-  test('error', async () => {
-    const { result } = renderHook(
-      () => extendedApi.endpoints.test.useMutation(),
-      { wrapper: storeRef.wrapper },
-    )
-
-    baseQuery.mockRejectedValueOnce('error')
-    expect(onStart).not.toHaveBeenCalled()
-    expect(baseQuery).not.toHaveBeenCalled()
-
-    act(() => void result.current[0]('arg'))
-    expect(onStart).toHaveBeenCalledWith('arg')
-    expect(baseQuery).toHaveBeenCalledWith('arg', expect.any(Object), undefined)
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).not.toHaveBeenCalled()
-    await act(() => delay(5))
-    expect(onError).toHaveBeenCalledWith({
-      error: 'error',
-      isUnhandledError: false,
-      meta: undefined,
-    })
-    expect(onSuccess).not.toHaveBeenCalled()
-  })
-})
-
-describe('updateQueryData', () => {
-  test('updates cache values, can apply inverse patch', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      // TODO I have no idea why the query is getting called multiple times,
-      // but passing an additional mocked value (_any_ value)
-      // seems to silence some annoying "got an undefined result" logging
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(() => api.endpoints.post.useQuery('3'), {
-      wrapper: storeRef.wrapper,
-    })
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    const dataBefore = result.current.data
-    expect(dataBefore).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    let returnValue!: ReturnType<ReturnType<typeof api.util.updateQueryData>>
-    act(() => {
-      returnValue = storeRef.store.dispatch(
-        api.util.updateQueryData('post', '3', (draft) => {
-          draft.contents = 'I love cheese!'
-        }),
-      )
-    })
-
-    expect(result.current.data).not.toBe(dataBefore)
-    expect(result.current.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'I love cheese!',
-    })
-
-    expect(returnValue).toEqual({
-      inversePatches: [{ op: 'replace', path: ['contents'], value: 'TODO' }],
-      patches: [{ op: 'replace', path: ['contents'], value: 'I love cheese!' }],
-      undo: expect.any(Function),
-    })
-
-    act(() => {
-      storeRef.store.dispatch(
-        api.util.patchQueryData('post', '3', returnValue.inversePatches),
-      )
-    })
-
-    expect(result.current.data).toEqual(dataBefore)
-  })
-
-  test('updates (list) cache values including provided tags, undos that', async () => {
-    baseQuery
-      .mockResolvedValueOnce([
-        { id: '3', title: 'All about cheese.', contents: 'TODO' },
-      ])
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(() => api.endpoints.listPosts.useQuery(), {
-      wrapper: storeRef.wrapper,
-    })
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    let provided!: InvalidationState<'Post'>
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    const provided3 = provided.tags.Post['3']
-
-    let returnValue!: ReturnType<ReturnType<typeof api.util.updateQueryData>>
-    act(() => {
-      returnValue = storeRef.store.dispatch(
-        api.util.updateQueryData(
-          'listPosts',
-          undefined,
-          (draft) => {
-            draft.push({
-              id: '4',
-              title: 'Mostly about cheese.',
-              contents: 'TODO',
-            })
-          },
-          true,
-        ),
-      )
-    })
-
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    const provided4 = provided.tags.Post['4']
-
-    expect(provided4).toEqual(provided3)
-
-    act(() => {
-      returnValue.undo()
-    })
-
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    const provided4Next = provided.tags.Post['4']
-
-    expect(provided4Next).toEqual([])
-  })
-
-  test('updates (list) cache values excluding provided tags, undoes that', async () => {
-    baseQuery
-      .mockResolvedValueOnce([
-        { id: '3', title: 'All about cheese.', contents: 'TODO' },
-      ])
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(() => api.endpoints.listPosts.useQuery(), {
-      wrapper: storeRef.wrapper,
-    })
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    let provided!: InvalidationState<'Post'>
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    let returnValue!: ReturnType<ReturnType<typeof api.util.updateQueryData>>
-    act(() => {
-      returnValue = storeRef.store.dispatch(
-        api.util.updateQueryData(
-          'listPosts',
-          undefined,
-          (draft) => {
-            draft.push({
-              id: '4',
-              title: 'Mostly about cheese.',
-              contents: 'TODO',
-            })
-          },
-          false,
-        ),
-      )
-    })
-
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    const provided4 = provided.tags.Post['4']
-
-    expect(provided4).toEqual(undefined)
-
-    act(() => {
-      returnValue.undo()
-    })
-
-    act(() => {
-      provided = storeRef.store.getState().api.provided
-    })
-
-    const provided4Next = provided.tags.Post['4']
-
-    expect(provided4Next).toEqual(undefined)
-  })
-
-  test('does not update non-existing values', async () => {
-    baseQuery
-      .mockImplementationOnce(async () => ({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      }))
-      .mockResolvedValueOnce(42)
-
-    const { result } = renderHook(() => api.endpoints.post.useQuery('3'), {
-      wrapper: storeRef.wrapper,
-    })
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    const dataBefore = result.current.data
-    expect(dataBefore).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    let returnValue!: ReturnType<ReturnType<typeof api.util.updateQueryData>>
-    act(() => {
-      returnValue = storeRef.store.dispatch(
-        api.util.updateQueryData('post', '4', (draft) => {
-          draft.contents = 'I love cheese!'
-        }),
-      )
-    })
-
-    expect(result.current.data).toBe(dataBefore)
-
-    expect(returnValue).toEqual({
-      inversePatches: [],
-      patches: [],
-      undo: expect.any(Function),
-    })
-  })
-})
-
-describe('full integration', () => {
-  test('success case', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      })
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      })
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(
-      () => ({
-        query: api.endpoints.post.useQuery('3'),
-        mutation: api.endpoints.updatePost.useMutation(),
-      }),
-      { wrapper: storeRef.wrapper },
-    )
-    await hookWaitFor(() => expect(result.current.query.isSuccess).toBeTruthy())
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    act(() => {
-      result.current.mutation[0]({ id: '3', contents: 'Delicious cheese!' })
-    })
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'Delicious cheese!',
-    })
-
-    await hookWaitFor(() =>
-      expect(result.current.query.data).toEqual({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      }),
-    )
-  })
-
-  test('error case', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      .mockRejectedValueOnce('some error!')
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'TODO',
-      })
-      .mockResolvedValueOnce(42)
-
-    const { result } = renderHook(
-      () => ({
-        query: api.endpoints.post.useQuery('3'),
-        mutation: api.endpoints.updatePost.useMutation(),
-      }),
-      { wrapper: storeRef.wrapper },
-    )
-    await hookWaitFor(() => expect(result.current.query.isSuccess).toBeTruthy())
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    act(() => {
-      result.current.mutation[0]({ id: '3', contents: 'Delicious cheese!' })
-    })
-
-    // optimistic update
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'Delicious cheese!',
-    })
-
-    // rollback
-    await hookWaitFor(() =>
-      expect(result.current.query.data).toEqual({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      }),
-    )
-
-    // mutation failed - will not invalidate query and not refetch data from the server
-    await expect(() =>
-      hookWaitFor(
-        () =>
-          expect(result.current.query.data).toEqual({
-            id: '3',
-            title: 'Meanwhile, this changed server-side.',
-            contents: 'TODO',
-          }),
-        50,
-      ),
-    ).rejects.toBeTruthy()
-
-    act(() => void result.current.query.refetch())
-
-    // manually refetching gives up-to-date data
-    await hookWaitFor(
-      () =>
-        expect(result.current.query.data).toEqual({
-          id: '3',
-          title: 'Meanwhile, this changed server-side.',
-          contents: 'TODO',
-        }),
-      50,
-    )
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/optimisticUpserts.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/optimisticUpserts.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,662 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query/react'
-import { createAction } from '@reduxjs/toolkit'
-import {
-  actionsReducer,
-  hookWaitFor,
-  setupApiStore,
-} from '../../tests/utils/helpers'
-import {
-  render,
-  renderHook,
-  act,
-  waitFor,
-  screen,
-} from '@testing-library/react'
-import { delay } from 'msw'
-
-interface Post {
-  id: string
-  title: string
-  contents: string
-}
-
-interface FolderT {
-  id: number
-  children: FolderT[]
-}
-
-const baseQuery = vi.fn()
-beforeEach(() => baseQuery.mockReset())
-
-const postAddedAction = createAction<string>('postAdded')
-
-const api = createApi({
-  baseQuery: (...args: any[]) => {
-    const result = baseQuery(...args)
-    if (typeof result === 'object' && 'then' in result)
-      return result
-        .then((data: any) => ({ data, meta: 'meta' }))
-        .catch((e: any) => ({ error: e }))
-    return { data: result, meta: 'meta' }
-  },
-  tagTypes: ['Post', 'Folder'],
-  endpoints: (build) => ({
-    getPosts: build.query<Post[], void>({ query: () => '/posts' }),
-    post: build.query<Post, string>({
-      query: (id) => `post/${id}`,
-      providesTags: ['Post'],
-    }),
-    updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
-      query: ({ id, ...patch }) => ({
-        url: `post/${id}`,
-        method: 'PATCH',
-        body: patch,
-      }),
-      async onQueryStarted(arg, { dispatch, queryFulfilled, getState }) {
-        const currentItem = api.endpoints.post.select(arg.id)(getState())
-        if (currentItem?.data) {
-          dispatch(
-            api.util.upsertQueryData('post', arg.id, {
-              ...currentItem.data,
-              ...arg,
-            }),
-          )
-        }
-      },
-      invalidatesTags: (result) => (result ? ['Post'] : []),
-    }),
-    post2: build.query<Post, string>({
-      queryFn: async (id) => {
-        await delay(20)
-        return { data: { id, title: 'All about cheese.', contents: 'TODO' } }
-      },
-    }),
-    postWithSideEffect: build.query<Post, string>({
-      query: (id) => `post/${id}`,
-      providesTags: (result) => {
-        if (result) {
-          return [{ type: 'Post', id: result.id } as const]
-        }
-        return []
-      },
-      async onCacheEntryAdded(arg, api) {
-        // Verify that lifecycle promise resolution works
-        const res = await api.cacheDataLoaded
-
-        // and leave a side effect we can check in the test
-        api.dispatch(postAddedAction(res.data.id))
-      },
-      keepUnusedDataFor: 0.1,
-    }),
-    getFolder: build.query<FolderT, number>({
-      queryFn: async (args) => {
-        return {
-          data: {
-            id: args,
-            // Folder contains children that are as well folders
-            children: [{ id: 2, children: [] }],
-          },
-        }
-      },
-      providesTags: (result, err, args) => [{ type: 'Folder', id: args }],
-      onQueryStarted: async (args, queryApi) => {
-        const { data } = await queryApi.queryFulfilled
-
-        // Upsert getFolder endpoint with children from response data
-        const upsertData = data.children.map((child) => ({
-          arg: child.id,
-          endpointName: 'getFolder' as const,
-          value: child,
-        }))
-
-        queryApi.dispatch(api.util.upsertQueryEntries(upsertData))
-      },
-    }),
-  }),
-})
-
-const storeRef = setupApiStore(api, { ...actionsReducer })
-
-describe('basic lifecycle', () => {
-  let onStart = vi.fn(),
-    onError = vi.fn(),
-    onSuccess = vi.fn()
-
-  const extendedApi = api.injectEndpoints({
-    endpoints: (build) => ({
-      test: build.mutation({
-        query: (x) => x,
-        async onQueryStarted(arg, api) {
-          onStart(arg)
-          try {
-            const result = await api.queryFulfilled
-            onSuccess(result)
-          } catch (e) {
-            onError(e)
-          }
-        },
-      }),
-    }),
-    overrideExisting: true,
-  })
-
-  beforeEach(() => {
-    onStart.mockReset()
-    onError.mockReset()
-    onSuccess.mockReset()
-  })
-
-  test('Does basic inserts and upserts', async () => {
-    const newPost: Post = {
-      id: '3',
-      contents: 'Inserted content',
-      title: 'Inserted title',
-    }
-    const insertPromise = storeRef.store.dispatch(
-      api.util.upsertQueryData('post', newPost.id, newPost),
-    )
-
-    await insertPromise
-
-    const selectPost3 = api.endpoints.post.select(newPost.id)
-    const insertedPostEntry = selectPost3(storeRef.store.getState())
-    expect(insertedPostEntry.isSuccess).toBe(true)
-    expect(insertedPostEntry.data).toEqual(newPost)
-
-    const updatedPost: Post = {
-      id: '3',
-      contents: 'Updated content',
-      title: 'Updated title',
-    }
-
-    const updatePromise = storeRef.store.dispatch(
-      api.util.upsertQueryData('post', updatedPost.id, updatedPost),
-    )
-
-    await updatePromise
-
-    const updatedPostEntry = selectPost3(storeRef.store.getState())
-
-    expect(updatedPostEntry.isSuccess).toBe(true)
-    expect(updatedPostEntry.data).toEqual(updatedPost)
-  })
-
-  test('success', async () => {
-    const { result } = renderHook(
-      () => extendedApi.endpoints.test.useMutation(),
-      { wrapper: storeRef.wrapper },
-    )
-
-    baseQuery.mockResolvedValue('success')
-
-    expect(onStart).not.toHaveBeenCalled()
-    expect(baseQuery).not.toHaveBeenCalled()
-    act(() => void result.current[0]('arg'))
-    expect(onStart).toHaveBeenCalledWith('arg')
-    expect(baseQuery).toHaveBeenCalledWith('arg', expect.any(Object), undefined)
-
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).not.toHaveBeenCalled()
-    await act(() => delay(5))
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).toHaveBeenCalledWith({ data: 'success', meta: 'meta' })
-  })
-
-  test('error', async () => {
-    const { result } = renderHook(
-      () => extendedApi.endpoints.test.useMutation(),
-      { wrapper: storeRef.wrapper },
-    )
-
-    baseQuery.mockRejectedValueOnce('error')
-
-    expect(onStart).not.toHaveBeenCalled()
-    expect(baseQuery).not.toHaveBeenCalled()
-    act(() => void result.current[0]('arg'))
-    expect(onStart).toHaveBeenCalledWith('arg')
-    expect(baseQuery).toHaveBeenCalledWith('arg', expect.any(Object), undefined)
-
-    expect(onError).not.toHaveBeenCalled()
-    expect(onSuccess).not.toHaveBeenCalled()
-    await act(() => delay(5))
-    expect(onError).toHaveBeenCalledWith({
-      error: 'error',
-      isUnhandledError: false,
-      meta: undefined,
-    })
-    expect(onSuccess).not.toHaveBeenCalled()
-  })
-})
-
-describe('upsertQueryData', () => {
-  test('inserts cache entry', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      // TODO I have no idea why the query is getting called multiple times,
-      // but passing an additional mocked value (_any_ value)
-      // seems to silence some annoying "got an undefined result" logging
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(() => api.endpoints.post.useQuery('3'), {
-      wrapper: storeRef.wrapper,
-    })
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    const dataBefore = result.current.data
-    expect(dataBefore).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    await act(async () => {
-      storeRef.store.dispatch(
-        api.util.upsertQueryData('post', '3', {
-          id: '3',
-          title: 'All about cheese.',
-          contents: 'I love cheese!',
-        }),
-      )
-    })
-
-    expect(result.current.data).not.toBe(dataBefore)
-    expect(result.current.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'I love cheese!',
-    })
-  })
-
-  test('does update non-existing values', async () => {
-    baseQuery
-      // throw an error to make sure there is no cached data
-      .mockImplementationOnce(async () => {
-        throw new Error('failed to load')
-      })
-      .mockResolvedValueOnce(42)
-
-    // a subscriber is needed to have the data stay in the cache
-    // Not sure if this is the wanted behavior, I would have liked
-    // it to stay in the cache for the x amount of time the cache
-    // is preserved normally after the last subscriber was unmounted
-    const { result, rerender } = renderHook(
-      () => api.endpoints.post.useQuery('4'),
-      { wrapper: storeRef.wrapper },
-    )
-    await hookWaitFor(() => expect(result.current.isError).toBeTruthy())
-
-    // upsert the data
-    act(() => {
-      storeRef.store.dispatch(
-        api.util.upsertQueryData('post', '4', {
-          id: '4',
-          title: 'All about cheese',
-          contents: 'I love cheese!',
-        }),
-      )
-    })
-
-    // rerender the hook
-    rerender()
-    // wait until everything has settled
-    await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy())
-
-    // the cached data is returned as the result
-    expect(result.current.data).toStrictEqual({
-      id: '4',
-      title: 'All about cheese',
-      contents: 'I love cheese!',
-    })
-  })
-
-  test('upsert while a normal query is running (success)', async () => {
-    const fetchedData = {
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'Yummy',
-    }
-    baseQuery.mockImplementation(() => delay(20).then(() => fetchedData))
-    const upsertedData = {
-      id: '3',
-      title: 'Data from a SSR Render',
-      contents: 'This is just some random data',
-    }
-
-    const selector = api.endpoints.post.select('3')
-    const fetchRes = storeRef.store.dispatch(api.endpoints.post.initiate('3'))
-    const upsertRes = storeRef.store.dispatch(
-      api.util.upsertQueryData('post', '3', upsertedData),
-    )
-
-    await upsertRes
-    let state = selector(storeRef.store.getState())
-    expect(state.data).toEqual(upsertedData)
-
-    await fetchRes
-    state = selector(storeRef.store.getState())
-    expect(state.data).toEqual(fetchedData)
-  })
-  test('upsert while a normal query is running (rejected)', async () => {
-    baseQuery.mockImplementationOnce(async () => {
-      await delay(20)
-      // eslint-disable-next-line no-throw-literal
-      throw 'Error!'
-    })
-    const upsertedData = {
-      id: '3',
-      title: 'Data from a SSR Render',
-      contents: 'This is just some random data',
-    }
-
-    const selector = api.endpoints.post.select('3')
-    const fetchRes = storeRef.store.dispatch(api.endpoints.post.initiate('3'))
-    const upsertRes = storeRef.store.dispatch(
-      api.util.upsertQueryData('post', '3', upsertedData),
-    )
-
-    await upsertRes
-    let state = selector(storeRef.store.getState())
-    expect(state.data).toEqual(upsertedData)
-    expect(state.isSuccess).toBeTruthy()
-
-    await fetchRes
-    state = selector(storeRef.store.getState())
-    expect(state.data).toEqual(upsertedData)
-    expect(state.isError).toBeTruthy()
-  })
-})
-
-describe('upsertQueryEntries', () => {
-  const posts: Post[] = [
-    { id: '1', contents: 'A', title: 'A' },
-    { id: '2', contents: 'B', title: 'B' },
-    { id: '3', contents: 'C', title: 'C' },
-  ]
-
-  const entriesAction = api.util.upsertQueryEntries([
-    { endpointName: 'getPosts', arg: undefined, value: posts },
-    ...posts.map((post) => ({
-      endpointName: 'postWithSideEffect' as const,
-      arg: post.id,
-      value: post,
-    })),
-  ])
-
-  test('Upserts many entries at once', async () => {
-    storeRef.store.dispatch(entriesAction)
-
-    const state = storeRef.store.getState()
-
-    expect(api.endpoints.getPosts.select()(state).data).toBe(posts)
-
-    for (const post of posts) {
-      expect(api.endpoints.postWithSideEffect.select(post.id)(state).data).toBe(
-        post,
-      )
-
-      // Should have added tags
-      expect(state.api.provided.tags.Post[post.id]).toEqual([
-        `postWithSideEffect("${post.id}")`,
-      ])
-    }
-  })
-
-  test('Triggers cache lifecycles and side effects', async () => {
-    storeRef.store.dispatch(entriesAction)
-
-    // Tricky timing. The cache data promises will be resolved
-    // in microtasks. We need to wait for them. Best to do this
-    // in a loop just to avoid a hardcoded delay, but also this
-    // needs to complete before `keepUnusedDataFor` expires them.
-    await waitFor(
-      () => {
-        const state = storeRef.store.getState()
-
-        // onCacheEntryAdded should have run for each post,
-        // including cache data being resolved
-        for (const post of posts) {
-          const matchingSideEffectAction = state.actions.find(
-            (action) =>
-              postAddedAction.match(action) && action.payload === post.id,
-          )
-          expect(matchingSideEffectAction).toBeTruthy()
-        }
-
-        const selectedData =
-          api.endpoints.postWithSideEffect.select('1')(state).data
-
-        expect(selectedData).toBe(posts[0])
-      },
-      { timeout: 150, interval: 5 },
-    )
-
-    // The cache data should be removed after the keepUnusedDataFor time,
-    // so wait longer than that
-    await delay(300)
-
-    const stateAfter = storeRef.store.getState()
-
-    expect(api.endpoints.postWithSideEffect.select('1')(stateAfter).data).toBe(
-      undefined,
-    )
-  })
-
-  test('Handles repeated upserts and async lifecycles', async () => {
-    const StateForUpsertFolder = ({ folderId }: { folderId: number }) => {
-      const { status } = api.useGetFolderQuery(folderId)
-
-      return (
-        <>
-          <div>
-            Status getFolder with ID (
-            {folderId === 1 ? 'original request' : 'upserted'}) {folderId}:{' '}
-            <span data-testid={`status-${folderId}`}>{status}</span>
-          </div>
-        </>
-      )
-    }
-
-    const Folder = () => {
-      const { data, isLoading, isError } = api.useGetFolderQuery(1)
-
-      return (
-        <div>
-          <h1>Folders</h1>
-
-          {isLoading && <div>Loading...</div>}
-
-          {isError && <div>Error...</div>}
-
-          <StateForUpsertFolder key={`state-${1}`} folderId={1} />
-          <StateForUpsertFolder key={`state-${2}`} folderId={2} />
-        </div>
-      )
-    }
-
-    render(<Folder />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() => {
-      const { actions } = storeRef.store.getState()
-      // Inspection:
-      // - 2 inits
-      // - 2 pendings, 2 fulfilleds for the hook queries
-      // - 2 upserts
-      expect(actions.length).toBe(8)
-      expect(
-        actions.filter((a) => api.util.upsertQueryEntries.match(a)).length,
-      ).toBe(2)
-    })
-    expect(screen.getByTestId('status-2').textContent).toBe('fulfilled')
-  })
-})
-
-describe('full integration', () => {
-  test('success case', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      })
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      })
-      .mockResolvedValueOnce(42)
-    const { result } = renderHook(
-      () => ({
-        query: api.endpoints.post.useQuery('3'),
-        mutation: api.endpoints.updatePost.useMutation(),
-      }),
-      { wrapper: storeRef.wrapper },
-    )
-    await hookWaitFor(() => expect(result.current.query.isSuccess).toBeTruthy())
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    await act(async () => {
-      await result.current.mutation[0]({
-        id: '3',
-        contents: 'Delicious cheese!',
-      })
-    })
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'Meanwhile, this changed server-side.',
-      contents: 'Delicious cheese!',
-    })
-
-    await hookWaitFor(() =>
-      expect(result.current.query.data).toEqual({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'Delicious cheese!',
-      }),
-    )
-  })
-
-  test('error case', async () => {
-    baseQuery
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'All about cheese.',
-        contents: 'TODO',
-      })
-      .mockRejectedValueOnce('some error!')
-      .mockResolvedValueOnce({
-        id: '3',
-        title: 'Meanwhile, this changed server-side.',
-        contents: 'TODO',
-      })
-      .mockResolvedValueOnce(42)
-
-    const { result } = renderHook(
-      () => ({
-        query: api.endpoints.post.useQuery('3'),
-        mutation: api.endpoints.updatePost.useMutation(),
-      }),
-      { wrapper: storeRef.wrapper },
-    )
-    await hookWaitFor(() => expect(result.current.query.isSuccess).toBeTruthy())
-
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'TODO',
-    })
-
-    await act(async () => {
-      await result.current.mutation[0]({
-        id: '3',
-        contents: 'Delicious cheese!',
-      })
-    })
-
-    // optimistic update
-    expect(result.current.query.data).toEqual({
-      id: '3',
-      title: 'All about cheese.',
-      contents: 'Delicious cheese!',
-    })
-
-    // mutation failed - will not invalidate query and not refetch data from the server
-    await expect(() =>
-      hookWaitFor(
-        () =>
-          expect(result.current.query.data).toEqual({
-            id: '3',
-            title: 'Meanwhile, this changed server-side.',
-            contents: 'TODO',
-          }),
-        50,
-      ),
-    ).rejects.toBeTruthy()
-
-    act(() => void result.current.query.refetch())
-
-    // manually refetching gives up-to-date data
-    await hookWaitFor(
-      () =>
-        expect(result.current.query.data).toEqual({
-          id: '3',
-          title: 'Meanwhile, this changed server-side.',
-          contents: 'TODO',
-        }),
-      50,
-    )
-  })
-
-  test('Interop with in-flight requests', async () => {
-    await act(async () => {
-      const fetchRes = storeRef.store.dispatch(
-        api.endpoints.post2.initiate('3'),
-      )
-
-      const upsertRes = storeRef.store.dispatch(
-        api.util.upsertQueryData('post2', '3', {
-          id: '3',
-          title: 'Upserted title',
-          contents: 'Upserted contents',
-        }),
-      )
-
-      const selectEntry = api.endpoints.post2.select('3')
-      await waitFor(
-        () => {
-          const entry1 = selectEntry(storeRef.store.getState())
-          expect(entry1.data).toEqual({
-            id: '3',
-            title: 'Upserted title',
-            contents: 'Upserted contents',
-          })
-        },
-        { interval: 1, timeout: 15 },
-      )
-      await waitFor(
-        () => {
-          const entry2 = selectEntry(storeRef.store.getState())
-          expect(entry2.data).toEqual({
-            id: '3',
-            title: 'All about cheese.',
-            contents: 'TODO',
-          })
-        },
-        { interval: 1 },
-      )
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/polling.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/polling.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,286 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query'
-import type { QueryActionCreatorResult } from '@reduxjs/toolkit/query'
-import { delay } from 'msw'
-import { setupApiStore } from '../../tests/utils/helpers'
-import type { SubscriptionSelectors } from '../core/buildMiddleware/types'
-
-const mockBaseQuery = vi
-  .fn()
-  .mockImplementation((args: any) => ({ data: args }))
-
-const api = createApi({
-  baseQuery: mockBaseQuery,
-  tagTypes: ['Posts'],
-  endpoints: (build) => ({
-    getPosts: build.query<unknown, number>({
-      query(pageNumber) {
-        return { url: 'posts', params: pageNumber }
-      },
-      providesTags: ['Posts'],
-    }),
-  }),
-})
-const { getPosts } = api.endpoints
-
-const storeRef = setupApiStore(api)
-
-let getSubscriptions: SubscriptionSelectors['getSubscriptions']
-
-beforeEach(() => {
-  ;({ getSubscriptions } = storeRef.store.dispatch(
-    api.internalActions.internal_getRTKQSubscriptions(),
-  ) as unknown as SubscriptionSelectors)
-
-  const currentPolls = storeRef.store.dispatch({
-    type: `${api.reducerPath}/getPolling`,
-  }) as any
-  ;(currentPolls as any).pollUpdateCounters = {}
-})
-
-const getSubscribersForQueryCacheKey = (queryCacheKey: string) =>
-  getSubscriptions().get(queryCacheKey) ?? new Map()
-const createSubscriptionGetter = (queryCacheKey: string) => () =>
-  getSubscribersForQueryCacheKey(queryCacheKey)
-
-describe('polling tests', () => {
-  it('clears intervals when seeing a resetApiState action', async () => {
-    await storeRef.store.dispatch(
-      getPosts.initiate(1, {
-        subscriptionOptions: { pollingInterval: 10 },
-        subscribe: true,
-      }),
-    )
-
-    expect(mockBaseQuery).toHaveBeenCalledOnce()
-
-    storeRef.store.dispatch(api.util.resetApiState())
-
-    await delay(30)
-
-    expect(mockBaseQuery).toHaveBeenCalledOnce()
-  })
-
-  it('replaces polling interval when the subscription options are updated', async () => {
-    const { requestId, queryCacheKey, ...subscription } =
-      storeRef.store.dispatch(
-        getPosts.initiate(1, {
-          subscriptionOptions: { pollingInterval: 10 },
-          subscribe: true,
-        }),
-      )
-
-    const getSubs = createSubscriptionGetter(queryCacheKey)
-
-    await delay(1)
-    expect(getSubs().size).toBe(1)
-    expect(getSubs()?.get(requestId)?.pollingInterval).toBe(10)
-
-    subscription.updateSubscriptionOptions({ pollingInterval: 20 })
-
-    await delay(1)
-    expect(getSubs().size).toBe(1)
-    expect(getSubs()?.get(requestId)?.pollingInterval).toBe(20)
-  })
-
-  it(`doesn't replace the interval when removing a shared query instance with a poll `, async () => {
-    const subscriptionOne = storeRef.store.dispatch(
-      getPosts.initiate(1, {
-        subscriptionOptions: { pollingInterval: 10 },
-        subscribe: true,
-      }),
-    )
-
-    storeRef.store.dispatch(
-      getPosts.initiate(1, {
-        subscriptionOptions: { pollingInterval: 10 },
-        subscribe: true,
-      }),
-    )
-
-    await delay(10)
-
-    const getSubs = createSubscriptionGetter(subscriptionOne.queryCacheKey)
-
-    expect(getSubs().size).toBe(2)
-
-    subscriptionOne.unsubscribe()
-
-    await delay(1)
-    expect(getSubs().size).toBe(1)
-  })
-
-  it('uses lowest specified interval when two components are mounted', async () => {
-    storeRef.store.dispatch(
-      getPosts.initiate(1, {
-        subscriptionOptions: { pollingInterval: 30000 },
-        subscribe: true,
-      }),
-    )
-
-    storeRef.store.dispatch(
-      getPosts.initiate(1, {
-        subscriptionOptions: { pollingInterval: 10 },
-        subscribe: true,
-      }),
-    )
-
-    await delay(20)
-
-    expect(mockBaseQuery.mock.calls.length).toBeGreaterThanOrEqual(2)
-  })
-
-  it('respects skipPollingIfUnfocused', async () => {
-    mockBaseQuery.mockClear()
-    storeRef.store.dispatch(
-      getPosts.initiate(2, {
-        subscriptionOptions: {
-          pollingInterval: 10,
-          skipPollingIfUnfocused: true,
-        },
-        subscribe: true,
-      }),
-    )
-    storeRef.store.dispatch(api.internalActions?.onFocusLost())
-
-    await delay(50)
-    const callsWithSkip = mockBaseQuery.mock.calls.length
-
-    storeRef.store.dispatch(
-      getPosts.initiate(2, {
-        subscriptionOptions: {
-          pollingInterval: 10,
-          skipPollingIfUnfocused: false,
-        },
-        subscribe: true,
-      }),
-    )
-
-    storeRef.store.dispatch(api.internalActions?.onFocus())
-
-    await delay(50)
-    const callsWithoutSkip = mockBaseQuery.mock.calls.length
-
-    expect(callsWithSkip).toBe(1)
-    expect(callsWithoutSkip).toBeGreaterThanOrEqual(2)
-
-    storeRef.store.dispatch(api.util.resetApiState())
-  })
-
-  it('respects skipPollingIfUnfocused if at least one subscription has it', async () => {
-    storeRef.store.dispatch(
-      getPosts.initiate(3, {
-        subscriptionOptions: {
-          pollingInterval: 10,
-          skipPollingIfUnfocused: false,
-        },
-        subscribe: true,
-      }),
-    )
-
-    await delay(50)
-    const callsWithoutSkip = mockBaseQuery.mock.calls.length
-
-    storeRef.store.dispatch(
-      getPosts.initiate(3, {
-        subscriptionOptions: {
-          pollingInterval: 15,
-          skipPollingIfUnfocused: true,
-        },
-        subscribe: true,
-      }),
-    )
-
-    storeRef.store.dispatch(
-      getPosts.initiate(3, {
-        subscriptionOptions: {
-          pollingInterval: 20,
-          skipPollingIfUnfocused: false,
-        },
-        subscribe: true,
-      }),
-    )
-
-    storeRef.store.dispatch(api.internalActions?.onFocusLost())
-
-    await delay(50)
-    const callsWithSkip = mockBaseQuery.mock.calls.length
-
-    expect(callsWithoutSkip).toBeGreaterThan(2)
-    expect(callsWithSkip).toBe(callsWithoutSkip + 1)
-  })
-
-  it('replaces skipPollingIfUnfocused when the subscription options are updated', async () => {
-    const { requestId, queryCacheKey, ...subscription } =
-      storeRef.store.dispatch(
-        getPosts.initiate(1, {
-          subscriptionOptions: {
-            pollingInterval: 10,
-            skipPollingIfUnfocused: false,
-          },
-          subscribe: true,
-        }),
-      )
-
-    const getSubs = createSubscriptionGetter(queryCacheKey)
-
-    await delay(1)
-    expect(getSubs().size).toBe(1)
-    expect(getSubs().get(requestId)?.skipPollingIfUnfocused).toBe(false)
-
-    subscription.updateSubscriptionOptions({
-      pollingInterval: 20,
-      skipPollingIfUnfocused: true,
-    })
-
-    await delay(1)
-    expect(getSubs().size).toBe(1)
-    expect(getSubs().get(requestId)?.skipPollingIfUnfocused).toBe(true)
-  })
-
-  it('should minimize polling recalculations when adding multiple subscribers', async () => {
-    // Reset any existing state
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    const SUBSCRIBER_COUNT = 10
-    const subscriptions: QueryActionCreatorResult<any>[] = []
-
-    // Add 10 subscribers to the same endpoint with polling enabled
-    for (let i = 0; i < SUBSCRIBER_COUNT; i++) {
-      const subscription = storeRef.store.dispatch(
-        getPosts.initiate(1, {
-          subscriptionOptions: { pollingInterval: 1000 },
-          subscribe: true,
-        }),
-      )
-      subscriptions.push(subscription)
-    }
-
-    // Wait a bit for all subscriptions to be processed
-    await Promise.all(subscriptions)
-
-    // Wait for the poll update timer
-    await delay(25)
-
-    // Get the polling state using the secret "getPolling" action
-    const currentPolls = storeRef.store.dispatch({
-      type: `${api.reducerPath}/getPolling`,
-    }) as any
-
-    // Get the query cache key for our endpoint
-    const queryCacheKey = subscriptions[0].queryCacheKey
-
-    // Check the poll update counters
-    const pollUpdateCounters = currentPolls.pollUpdateCounters || {}
-    const updateCount = pollUpdateCounters[queryCacheKey] || 0
-
-    // With batching optimization, this should be much lower than SUBSCRIBER_COUNT
-    // Ideally 1, but could be slightly higher due to timing
-    expect(updateCount).toBeGreaterThanOrEqual(1)
-    expect(updateCount).toBeLessThanOrEqual(2)
-
-    // Clean up subscriptions
-    subscriptions.forEach((sub) => sub.unsubscribe())
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/queryFn.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/queryFn.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,445 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import type { QuerySubState } from '@internal/query/core/apiState'
-import type { Post } from '@internal/query/tests/mocks/handlers'
-import { posts } from '@internal/query/tests/mocks/handlers'
-import { actionsReducer, setupApiStore } from '@internal/tests/utils/helpers'
-import type { SerializedError } from '@reduxjs/toolkit'
-import { configureStore } from '@reduxjs/toolkit'
-import type { BaseQueryFn, FetchBaseQueryError } from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-describe('queryFn base implementation tests', () => {
-  const baseQuery: BaseQueryFn<string, { wrappedByBaseQuery: string }, string> =
-    vi.fn((arg: string) =>
-      arg.includes('withErrorQuery')
-        ? { error: `cut${arg}` }
-        : { data: { wrappedByBaseQuery: arg } },
-    )
-
-  const api = createApi({
-    baseQuery,
-    endpoints: (build) => ({
-      withQuery: build.query<string, string>({
-        query(arg: string) {
-          return `resultFrom(${arg})`
-        },
-        transformResponse(response) {
-          return response.wrappedByBaseQuery
-        },
-      }),
-      withErrorQuery: build.query<string, string>({
-        query(arg: string) {
-          return `resultFrom(${arg})`
-        },
-        transformErrorResponse(response) {
-          return response.slice(3)
-        },
-      }),
-      withQueryFn: build.query<string, string>({
-        queryFn(arg: string) {
-          return { data: `resultFrom(${arg})` }
-        },
-      }),
-      withInvalidDataQueryFn: build.query<string, string>({
-        // @ts-expect-error
-        queryFn(arg: string) {
-          return { data: 5 }
-        },
-      }),
-      withErrorQueryFn: build.query<string, string>({
-        queryFn(arg: string) {
-          return { error: `resultFrom(${arg})` }
-        },
-      }),
-      withInvalidErrorQueryFn: build.query<string, string>({
-        // @ts-expect-error
-        queryFn(arg: string) {
-          return { error: 5 }
-        },
-      }),
-      withThrowingQueryFn: build.query<string, string>({
-        queryFn(arg: string) {
-          throw new Error(`resultFrom(${arg})`)
-        },
-      }),
-      withAsyncQueryFn: build.query<string, string>({
-        async queryFn(arg: string) {
-          return { data: `resultFrom(${arg})` }
-        },
-      }),
-      withInvalidDataAsyncQueryFn: build.query<string, string>({
-        // @ts-expect-error
-        async queryFn(arg: string) {
-          return { data: 5 }
-        },
-      }),
-      withAsyncErrorQueryFn: build.query<string, string>({
-        async queryFn(arg: string) {
-          return { error: `resultFrom(${arg})` }
-        },
-      }),
-      withInvalidAsyncErrorQueryFn: build.query<string, string>({
-        // @ts-expect-error
-        async queryFn(arg: string) {
-          return { error: 5 }
-        },
-      }),
-      withAsyncThrowingQueryFn: build.query<string, string>({
-        async queryFn(arg: string) {
-          throw new Error(`resultFrom(${arg})`)
-        },
-      }),
-      mutationWithQueryFn: build.mutation<string, string>({
-        queryFn(arg: string) {
-          return { data: `resultFrom(${arg})` }
-        },
-      }),
-      mutationWithInvalidDataQueryFn: build.mutation<string, string>({
-        // @ts-expect-error
-        queryFn(arg: string) {
-          return { data: 5 }
-        },
-      }),
-      mutationWithErrorQueryFn: build.mutation<string, string>({
-        queryFn(arg: string) {
-          return { error: `resultFrom(${arg})` }
-        },
-      }),
-      mutationWithInvalidErrorQueryFn: build.mutation<string, string>({
-        // @ts-expect-error
-        queryFn(arg: string) {
-          return { error: 5 }
-        },
-      }),
-      mutationWithThrowingQueryFn: build.mutation<string, string>({
-        queryFn(arg: string) {
-          throw new Error(`resultFrom(${arg})`)
-        },
-      }),
-      mutationWithAsyncQueryFn: build.mutation<string, string>({
-        async queryFn(arg: string) {
-          return { data: `resultFrom(${arg})` }
-        },
-      }),
-      mutationWithInvalidAsyncQueryFn: build.mutation<string, string>({
-        // @ts-expect-error
-        async queryFn(arg: string) {
-          return { data: 5 }
-        },
-      }),
-      mutationWithAsyncErrorQueryFn: build.mutation<string, string>({
-        async queryFn(arg: string) {
-          return { error: `resultFrom(${arg})` }
-        },
-      }),
-      mutationWithInvalidAsyncErrorQueryFn: build.mutation<string, string>({
-        // @ts-expect-error
-        async queryFn(arg: string) {
-          return { error: 5 }
-        },
-      }),
-      mutationWithAsyncThrowingQueryFn: build.mutation<string, string>({
-        async queryFn(arg: string) {
-          throw new Error(`resultFrom(${arg})`)
-        },
-      }),
-      // @ts-expect-error
-      withNeither: build.query<string, string>({}),
-      // @ts-expect-error
-      mutationWithNeither: build.mutation<string, string>({}),
-    }),
-  })
-
-  const {
-    withQuery,
-    withErrorQuery,
-    withQueryFn,
-    withErrorQueryFn,
-    withThrowingQueryFn,
-    withAsyncQueryFn,
-    withAsyncErrorQueryFn,
-    withAsyncThrowingQueryFn,
-    mutationWithQueryFn,
-    mutationWithErrorQueryFn,
-    mutationWithThrowingQueryFn,
-    mutationWithAsyncQueryFn,
-    mutationWithAsyncErrorQueryFn,
-    mutationWithAsyncThrowingQueryFn,
-    withNeither,
-    mutationWithNeither,
-  } = api.endpoints
-
-  const store = configureStore({
-    reducer: {
-      [api.reducerPath]: api.reducer,
-    },
-    middleware: (gDM) => gDM({}).concat(api.middleware),
-  })
-
-  test.each([
-    ['withQuery', withQuery, 'data'],
-    ['withErrorQuery', withErrorQuery, 'error'],
-    ['withQueryFn', withQueryFn, 'data'],
-    ['withErrorQueryFn', withErrorQueryFn, 'error'],
-    ['withThrowingQueryFn', withThrowingQueryFn, 'throw'],
-    ['withAsyncQueryFn', withAsyncQueryFn, 'data'],
-    ['withAsyncErrorQueryFn', withAsyncErrorQueryFn, 'error'],
-    ['withAsyncThrowingQueryFn', withAsyncThrowingQueryFn, 'throw'],
-  ])('%s', async (endpointName, endpoint, expectedResult) => {
-    const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-    const thunk = endpoint.initiate(endpointName)
-
-    const result: undefined | QuerySubState<any> = await store.dispatch(thunk)
-
-    if (endpointName.includes('Throw')) {
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `An unhandled error occurred processing a request for the endpoint "${endpointName}".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-        Error(`resultFrom(${endpointName})`),
-      )
-    } else {
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    }
-
-    if (expectedResult === 'data') {
-      expect(result).toEqual(
-        expect.objectContaining({
-          data: `resultFrom(${endpointName})`,
-        }),
-      )
-    } else if (expectedResult === 'error') {
-      expect(result).toEqual(
-        expect.objectContaining({
-          error: `resultFrom(${endpointName})`,
-        }),
-      )
-    } else {
-      expect(result).toEqual(
-        expect.objectContaining({
-          error: expect.objectContaining({
-            message: `resultFrom(${endpointName})`,
-          }),
-        }),
-      )
-    }
-
-    consoleErrorSpy.mockRestore()
-  })
-
-  test.each([
-    ['mutationWithQueryFn', mutationWithQueryFn, 'data'],
-    ['mutationWithErrorQueryFn', mutationWithErrorQueryFn, 'error'],
-    ['mutationWithThrowingQueryFn', mutationWithThrowingQueryFn, 'throw'],
-    ['mutationWithAsyncQueryFn', mutationWithAsyncQueryFn, 'data'],
-    ['mutationWithAsyncErrorQueryFn', mutationWithAsyncErrorQueryFn, 'error'],
-    [
-      'mutationWithAsyncThrowingQueryFn',
-      mutationWithAsyncThrowingQueryFn,
-      'throw',
-    ],
-  ])('%s', async (endpointName, endpoint, expectedResult) => {
-    const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-    const thunk = endpoint.initiate(endpointName)
-
-    const result:
-      | undefined
-      | { data: string }
-      | { error: string | SerializedError } = await store.dispatch(thunk)
-
-    if (endpointName.includes('Throw')) {
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `An unhandled error occurred processing a request for the endpoint "${endpointName}".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-        Error(`resultFrom(${endpointName})`),
-      )
-    } else {
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    }
-
-    if (expectedResult === 'data') {
-      expect(result).toEqual(
-        expect.objectContaining({
-          data: `resultFrom(${endpointName})`,
-        }),
-      )
-    } else if (expectedResult === 'error') {
-      expect(result).toEqual(
-        expect.objectContaining({
-          error: `resultFrom(${endpointName})`,
-        }),
-      )
-    } else {
-      expect(result).toEqual(
-        expect.objectContaining({
-          error: expect.objectContaining({
-            message: `resultFrom(${endpointName})`,
-          }),
-        }),
-      )
-    }
-
-    consoleErrorSpy.mockRestore()
-  })
-
-  test('neither provided', async () => {
-    const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-    {
-      const thunk = withNeither.initiate('withNeither')
-
-      const result: QuerySubState<any> = await store.dispatch(thunk)
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `An unhandled error occurred processing a request for the endpoint "withNeither".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-        TypeError('endpointDefinition.queryFn is not a function'),
-      )
-
-      expect(result.error).toEqual(
-        expect.objectContaining({
-          message: 'endpointDefinition.queryFn is not a function',
-        }),
-      )
-
-      consoleErrorSpy.mockClear()
-    }
-    {
-      const thunk = mutationWithNeither.initiate('mutationWithNeither')
-
-      const result:
-        | undefined
-        | { data: string }
-        | { error: string | SerializedError } = await store.dispatch(thunk)
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `An unhandled error occurred processing a request for the endpoint "mutationWithNeither".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-        TypeError('endpointDefinition.queryFn is not a function'),
-      )
-
-      if (!('error' in result)) {
-        expect.fail()
-      }
-
-      expect(result.error).toEqual(
-        expect.objectContaining({
-          message: 'endpointDefinition.queryFn is not a function',
-        }),
-      )
-    }
-
-    consoleErrorSpy.mockRestore()
-  })
-})
-
-describe('usage scenario tests', () => {
-  const mockData = { id: 1, name: 'Banana' }
-  const mockDocResult = {
-    exists: () => true,
-    data: () => mockData,
-  }
-  const get = vi.fn(() => Promise.resolve(mockDocResult))
-  const doc = vi.fn((name) => ({
-    get,
-  }))
-  const collection = vi.fn((name) => ({ get, doc }))
-  const firestore = () => {
-    return { collection, doc }
-  }
-
-  const baseQuery = fetchBaseQuery({ baseUrl: 'https://example.com/' })
-  const api = createApi({
-    baseQuery,
-    endpoints: (build) => ({
-      getRandomUser: build.query<Post, void>({
-        async queryFn(_arg: void, _queryApi, _extraOptions, fetchWithBQ) {
-          // get a random post
-          const randomResult = await fetchWithBQ('posts/random')
-          if (randomResult.error) {
-            throw randomResult.error
-          }
-          const post = randomResult.data as Post
-          const result = await fetchWithBQ(`/post/${post.id}`)
-          return result.data
-            ? { data: result.data as Post }
-            : { error: result.error as FetchBaseQueryError }
-        },
-      }),
-      getFirebaseUser: build.query<typeof mockData, number>({
-        async queryFn(arg: number) {
-          const getResult = await firestore().collection('users').doc(arg).get()
-          if (!getResult.exists()) {
-            throw new Error('Missing user')
-          }
-          return { data: getResult.data() }
-        },
-      }),
-      getMissingFirebaseUser: build.query<typeof mockData, number>({
-        async queryFn(arg: number) {
-          const getResult = await firestore().collection('users').doc(arg).get()
-          // intentionally throw if it exists to keep the mocking overhead low
-          if (getResult.exists()) {
-            throw new Error('Missing user')
-          }
-          return { data: getResult.data() }
-        },
-      }),
-    }),
-  })
-
-  const storeRef = setupApiStore(api, {
-    ...actionsReducer,
-  })
-
-  /**
-   * Allow for a scenario where you can chain X requests
-   * https://discord.com/channels/102860784329052160/103538784460615680/825430959247720449
-   * const resp1 = await api.get(url);
-   * const resp2 = await api.get(`${url2}/id=${resp1.data.id}`);
-   */
-
-  it('can chain multiple queries together', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.getRandomUser.initiate(),
-    )
-    expect(result.data).toEqual(posts[1])
-  })
-
-  it('can wrap a service like Firebase', async () => {
-    const result = await storeRef.store.dispatch(
-      api.endpoints.getFirebaseUser.initiate(1),
-    )
-    expect(result.data).toEqual(mockData)
-  })
-
-  it('can wrap a service like Firebase and handle errors', async () => {
-    const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-    const result: QuerySubState<any> = await storeRef.store.dispatch(
-      api.endpoints.getMissingFirebaseUser.initiate(1),
-    )
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `An unhandled error occurred processing a request for the endpoint "getMissingFirebaseUser".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,
-      Error('Missing user'),
-    )
-
-    expect(result.data).toBeUndefined()
-    expect(result.error).toEqual(
-      expect.objectContaining({
-        message: 'Missing user',
-        name: 'Error',
-      }),
-    )
-
-    consoleErrorSpy.mockRestore()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/queryLifecycle.test-d.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/queryLifecycle.test-d.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,371 +1,0 @@
-import type { PatchCollection, Recipe } from '@internal/query/core/buildThunks'
-import type { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'
-import type {
-  FetchBaseQueryError,
-  FetchBaseQueryMeta,
-  RootState,
-  TypedMutationOnQueryStarted,
-  TypedQueryOnQueryStarted,
-} from '@reduxjs/toolkit/query'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: () => ({}),
-})
-
-describe('type tests', () => {
-  test(`mutation: onStart and onSuccess`, async () => {
-    const extended = api.injectEndpoints({
-      overrideExisting: true,
-      endpoints: (build) => ({
-        injected: build.mutation<number, string>({
-          query: () => '/success',
-          async onQueryStarted(arg, { queryFulfilled }) {
-            // awaiting without catching like this would result in an `unhandledRejection` exception if there was an error
-            // unfortunately we cannot test for that in jest.
-            const result = await queryFulfilled
-
-            expectTypeOf(result).toMatchTypeOf<{
-              data: number
-              meta?: FetchBaseQueryMeta
-            }>()
-          },
-        }),
-      }),
-    })
-  })
-
-  test('query types', () => {
-    const extended = api.injectEndpoints({
-      overrideExisting: true,
-      endpoints: (build) => ({
-        injected: build.query<number, string>({
-          query: () => '/success',
-          async onQueryStarted(arg, { queryFulfilled }) {
-            queryFulfilled.then(
-              (result) => {
-                expectTypeOf(result).toMatchTypeOf<{
-                  data: number
-                  meta?: FetchBaseQueryMeta
-                }>()
-              },
-              (reason) => {
-                if (reason.isUnhandledError) {
-                  expectTypeOf(reason).toEqualTypeOf<{
-                    error: unknown
-                    meta?: undefined
-                    isUnhandledError: true
-                  }>()
-                } else {
-                  expectTypeOf(reason).toEqualTypeOf<{
-                    error: FetchBaseQueryError
-                    isUnhandledError: false
-                    meta: FetchBaseQueryMeta | undefined
-                  }>()
-                }
-              },
-            )
-
-            queryFulfilled.catch((reason) => {
-              if (reason.isUnhandledError) {
-                expectTypeOf(reason).toEqualTypeOf<{
-                  error: unknown
-                  meta?: undefined
-                  isUnhandledError: true
-                }>()
-              } else {
-                expectTypeOf(reason).toEqualTypeOf<{
-                  error: FetchBaseQueryError
-                  isUnhandledError: false
-                  meta: FetchBaseQueryMeta | undefined
-                }>()
-              }
-            })
-
-            const result = await queryFulfilled
-
-            expectTypeOf(result).toMatchTypeOf<{
-              data: number
-              meta?: FetchBaseQueryMeta
-            }>()
-          },
-        }),
-      }),
-    })
-  })
-
-  test('mutation types', () => {
-    const extended = api.injectEndpoints({
-      overrideExisting: true,
-      endpoints: (build) => ({
-        injected: build.query<number, string>({
-          query: () => '/success',
-          async onQueryStarted(arg, { queryFulfilled }) {
-            queryFulfilled.then(
-              (result) => {
-                expectTypeOf(result).toMatchTypeOf<{
-                  data: number
-                  meta?: FetchBaseQueryMeta
-                }>()
-              },
-              (reason) => {
-                if (reason.isUnhandledError) {
-                  expectTypeOf(reason).toEqualTypeOf<{
-                    error: unknown
-                    meta?: undefined
-                    isUnhandledError: true
-                  }>()
-                } else {
-                  expectTypeOf(reason).toEqualTypeOf<{
-                    error: FetchBaseQueryError
-                    isUnhandledError: false
-                    meta: FetchBaseQueryMeta | undefined
-                  }>()
-                }
-              },
-            )
-
-            queryFulfilled.catch((reason) => {
-              if (reason.isUnhandledError) {
-                expectTypeOf(reason).toEqualTypeOf<{
-                  error: unknown
-                  meta?: undefined
-                  isUnhandledError: true
-                }>()
-              } else {
-                expectTypeOf(reason).toEqualTypeOf<{
-                  error: FetchBaseQueryError
-                  isUnhandledError: false
-                  meta: FetchBaseQueryMeta | undefined
-                }>()
-              }
-            })
-
-            const result = await queryFulfilled
-
-            expectTypeOf(result).toMatchTypeOf<{
-              data: number
-              meta?: FetchBaseQueryMeta
-            }>()
-          },
-        }),
-      }),
-    })
-  })
-
-  describe('typed `onQueryStarted` function', () => {
-    test('TypedQueryOnQueryStarted creates a pre-typed version of onQueryStarted', () => {
-      type Post = {
-        id: number
-        title: string
-        userId: number
-      }
-
-      type PostsApiResponse = {
-        posts: Post[]
-        total: number
-        skip: number
-        limit: number
-      }
-
-      type QueryArgument = number | undefined
-
-      type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
-
-      const baseApiSlice = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
-        reducerPath: 'postsApi',
-        tagTypes: ['Posts'],
-        endpoints: (builder) => ({
-          getPosts: builder.query<PostsApiResponse, void>({
-            query: () => `/posts`,
-          }),
-
-          getPostById: builder.query<Post, QueryArgument>({
-            query: (postId) => `/posts/${postId}`,
-          }),
-        }),
-      })
-
-      const updatePostOnFulfilled: TypedQueryOnQueryStarted<
-        PostsApiResponse,
-        QueryArgument,
-        BaseQueryFunction,
-        'postsApi'
-      > = async (queryArgument, queryLifeCycleApi) => {
-        const {
-          dispatch,
-          extra,
-          getCacheEntry,
-          getState,
-          queryFulfilled,
-          requestId,
-          updateCachedData,
-        } = queryLifeCycleApi
-
-        expectTypeOf(queryArgument).toEqualTypeOf<QueryArgument>()
-
-        expectTypeOf(dispatch).toEqualTypeOf<
-          ThunkDispatch<any, any, UnknownAction>
-        >()
-
-        expectTypeOf(extra).toBeUnknown()
-
-        expectTypeOf(getState).toEqualTypeOf<
-          () => RootState<any, any, 'postsApi'>
-        >()
-
-        expectTypeOf(requestId).toBeString()
-
-        expectTypeOf(getCacheEntry).toBeFunction()
-
-        expectTypeOf(updateCachedData).toEqualTypeOf<
-          (updateRecipe: Recipe<PostsApiResponse>) => PatchCollection
-        >()
-
-        expectTypeOf(queryFulfilled).resolves.toEqualTypeOf<{
-          data: PostsApiResponse
-          meta: FetchBaseQueryMeta | undefined
-        }>()
-
-        const result = await queryFulfilled
-
-        const { posts } = result.data
-
-        dispatch(
-          baseApiSlice.util.upsertQueryEntries(
-            posts.map((post) => ({
-              // Without `as const` this will result in a TS error in TS 4.7.
-              endpointName: 'getPostById' as const,
-              arg: post.id,
-              value: post,
-            })),
-          ),
-        )
-      }
-
-      const extendedApiSlice = baseApiSlice.injectEndpoints({
-        endpoints: (builder) => ({
-          getPostsByUserId: builder.query<PostsApiResponse, QueryArgument>({
-            query: (userId) => `/posts/user/${userId}`,
-
-            onQueryStarted: updatePostOnFulfilled,
-          }),
-        }),
-      })
-    })
-
-    test('TypedMutationOnQueryStarted creates a pre-typed version of onQueryStarted', () => {
-      type Post = {
-        id: number
-        title: string
-        userId: number
-      }
-
-      type PostsApiResponse = {
-        posts: Post[]
-        total: number
-        skip: number
-        limit: number
-      }
-
-      type QueryArgument = Pick<Post, 'id'> & Partial<Post>
-
-      type BaseQueryFunction = ReturnType<typeof fetchBaseQuery>
-
-      const baseApiSlice = createApi({
-        baseQuery: fetchBaseQuery({ baseUrl: 'https://dummyjson.com' }),
-        reducerPath: 'postsApi',
-        tagTypes: ['Posts'],
-        endpoints: (builder) => ({
-          getPosts: builder.query<PostsApiResponse, void>({
-            query: () => `/posts`,
-          }),
-
-          getPostById: builder.query<Post, number>({
-            query: (postId) => `/posts/${postId}`,
-          }),
-        }),
-      })
-
-      const updatePostOnFulfilled: TypedMutationOnQueryStarted<
-        Post,
-        QueryArgument,
-        BaseQueryFunction,
-        'postsApi'
-      > = async (queryArgument, mutationLifeCycleApi) => {
-        const { id, ...patch } = queryArgument
-        const {
-          dispatch,
-          extra,
-          getCacheEntry,
-          getState,
-          queryFulfilled,
-          requestId,
-        } = mutationLifeCycleApi
-
-        const patchCollection = dispatch(
-          baseApiSlice.util.updateQueryData('getPostById', id, (draftPost) => {
-            Object.assign(draftPost, patch)
-          }),
-        )
-
-        expectTypeOf(queryFulfilled).resolves.toEqualTypeOf<{
-          data: Post
-          meta: FetchBaseQueryMeta | undefined
-        }>()
-
-        expectTypeOf(queryArgument).toEqualTypeOf<QueryArgument>()
-
-        expectTypeOf(dispatch).toEqualTypeOf<
-          ThunkDispatch<any, any, UnknownAction>
-        >()
-
-        expectTypeOf(extra).toBeUnknown()
-
-        expectTypeOf(getState).toEqualTypeOf<
-          () => RootState<any, any, 'postsApi'>
-        >()
-
-        expectTypeOf(requestId).toBeString()
-
-        expectTypeOf(getCacheEntry).toBeFunction()
-
-        expectTypeOf(mutationLifeCycleApi).not.toHaveProperty(
-          'updateCachedData',
-        )
-
-        try {
-          await queryFulfilled
-        } catch {
-          patchCollection.undo()
-        }
-      }
-
-      const extendedApiSlice = baseApiSlice.injectEndpoints({
-        endpoints: (builder) => ({
-          addPost: builder.mutation<Post, Omit<QueryArgument, 'id'>>({
-            query: (body) => ({
-              url: `posts/add`,
-              method: 'POST',
-              body,
-            }),
-
-            onQueryStarted: updatePostOnFulfilled,
-          }),
-
-          updatePost: builder.mutation<Post, QueryArgument>({
-            query: ({ id, ...patch }) => ({
-              url: `post/${id}`,
-              method: 'PATCH',
-              body: patch,
-            }),
-
-            onQueryStarted: updatePostOnFulfilled,
-          }),
-        }),
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/queryLifecycle.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/queryLifecycle.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,547 +1,0 @@
-import { server } from '@internal/query/tests/mocks/server'
-import { setupApiStore } from '@internal/tests/utils/helpers'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-import { waitFor } from '@testing-library/react'
-import { HttpResponse, http } from 'msw'
-import { vi } from 'vitest'
-
-const api = createApi({
-  baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
-  endpoints: () => ({}),
-})
-const storeRef = setupApiStore(api)
-
-const onStart = vi.fn()
-const onSuccess = vi.fn()
-const onError = vi.fn()
-
-beforeEach(() => {
-  onStart.mockClear()
-  onSuccess.mockClear()
-  onError.mockClear()
-})
-
-describe.each([['query'], ['mutation']] as const)(
-  'generic cases: %s',
-  (type) => {
-    test(`${type}: onStart only`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/success',
-            onQueryStarted(arg) {
-              onStart(arg)
-            },
-          }),
-        }),
-      })
-      storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-      expect(onStart).toHaveBeenCalledWith('arg')
-    })
-
-    test(`${type}: onStart and onSuccess`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<number, string>({
-            query: () => '/success',
-            async onQueryStarted(arg, { queryFulfilled }) {
-              onStart(arg)
-              // awaiting without catching like this would result in an `unhandledRejection` exception if there was an error
-              // unfortunately we cannot test for that in jest.
-              const result = await queryFulfilled
-              onSuccess(result)
-            },
-          }),
-        }),
-      })
-      storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-      expect(onStart).toHaveBeenCalledWith('arg')
-      await waitFor(() => {
-        expect(onSuccess).toHaveBeenCalledWith({
-          data: { value: 'success' },
-          meta: {
-            request: expect.any(Request),
-            response: expect.any(Object), // Response is not available in jest env
-          },
-        })
-      })
-    })
-
-    test(`${type}: onStart and onError`, async () => {
-      const extended = api.injectEndpoints({
-        overrideExisting: true,
-        endpoints: (build) => ({
-          injected: build[type as 'mutation']<unknown, string>({
-            query: () => '/error',
-            async onQueryStarted(arg, { queryFulfilled }) {
-              onStart(arg)
-              try {
-                const result = await queryFulfilled
-                onSuccess(result)
-              } catch (e) {
-                onError(e)
-              }
-            },
-          }),
-        }),
-      })
-      storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-      expect(onStart).toHaveBeenCalledWith('arg')
-      await waitFor(() => {
-        expect(onError).toHaveBeenCalledWith({
-          error: {
-            status: 500,
-            data: { value: 'error' },
-          },
-          isUnhandledError: false,
-          meta: {
-            request: expect.any(Request),
-            response: expect.any(Object), // Response is not available in jest env
-          },
-        })
-      })
-      expect(onSuccess).not.toHaveBeenCalled()
-    })
-  },
-)
-
-test('query: getCacheEntry (success)', async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, string>({
-        query: () => '/success',
-        async onQueryStarted(
-          arg,
-          { dispatch, getState, getCacheEntry, queryFulfilled },
-        ) {
-          try {
-            snapshot(getCacheEntry())
-            const result = await queryFulfilled
-            onSuccess(result)
-            snapshot(getCacheEntry())
-          } catch (e) {
-            onError(e)
-            snapshot(getCacheEntry())
-          }
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-
-  expect(snapshot).toHaveBeenCalledTimes(2)
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    data: {
-      value: 'success',
-    },
-    endpointName: 'injected',
-    fulfilledTimeStamp: expect.any(Number),
-    isError: false,
-    isLoading: false,
-    isSuccess: true,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'fulfilled',
-  })
-})
-
-test('query: getCacheEntry (error)', async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, string>({
-        query: () => '/error',
-        async onQueryStarted(
-          arg,
-          { dispatch, getState, getCacheEntry, queryFulfilled },
-        ) {
-          try {
-            snapshot(getCacheEntry())
-            const result = await queryFulfilled
-            onSuccess(result)
-            snapshot(getCacheEntry())
-          } catch (e) {
-            onError(e)
-            snapshot(getCacheEntry())
-          }
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-
-  await waitFor(() => {
-    expect(onError).toHaveBeenCalled()
-  })
-
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    error: {
-      data: { value: 'error' },
-      status: 500,
-    },
-    endpointName: 'injected',
-    isError: true,
-    isLoading: false,
-    isSuccess: false,
-    isUninitialized: false,
-    originalArgs: 'arg',
-    requestId: promise.requestId,
-    startedTimeStamp: expect.any(Number),
-    status: 'rejected',
-  })
-})
-
-test('mutation: getCacheEntry (success)', async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.mutation<unknown, string>({
-        query: () => '/success',
-        async onQueryStarted(
-          arg,
-          { dispatch, getState, getCacheEntry, queryFulfilled },
-        ) {
-          try {
-            snapshot(getCacheEntry())
-            const result = await queryFulfilled
-            onSuccess(result)
-            snapshot(getCacheEntry())
-          } catch (e) {
-            onError(e)
-            snapshot(getCacheEntry())
-          }
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-
-  expect(snapshot).toHaveBeenCalledTimes(2)
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    data: {
-      value: 'success',
-    },
-    endpointName: 'injected',
-    fulfilledTimeStamp: expect.any(Number),
-    isError: false,
-    isLoading: false,
-    isSuccess: true,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'fulfilled',
-  })
-})
-
-test('mutation: getCacheEntry (error)', async () => {
-  const snapshot = vi.fn()
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.mutation<unknown, string>({
-        query: () => '/error',
-        async onQueryStarted(
-          arg,
-          { dispatch, getState, getCacheEntry, queryFulfilled },
-        ) {
-          try {
-            snapshot(getCacheEntry())
-            const result = await queryFulfilled
-            onSuccess(result)
-            snapshot(getCacheEntry())
-          } catch (e) {
-            onError(e)
-            snapshot(getCacheEntry())
-          }
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-
-  await waitFor(() => {
-    expect(onError).toHaveBeenCalled()
-  })
-
-  expect(snapshot.mock.calls[0][0]).toMatchObject({
-    endpointName: 'injected',
-    isError: false,
-    isLoading: true,
-    isSuccess: false,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'pending',
-  })
-  expect(snapshot.mock.calls[1][0]).toMatchObject({
-    error: {
-      data: { value: 'error' },
-      status: 500,
-    },
-    endpointName: 'injected',
-    isError: true,
-    isLoading: false,
-    isSuccess: false,
-    isUninitialized: false,
-    startedTimeStamp: expect.any(Number),
-    status: 'rejected',
-  })
-})
-
-test('query: updateCachedData', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<{ value: string }, string>({
-        query: () => '/success',
-        async onQueryStarted(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            updateCachedData,
-            queryFulfilled,
-          },
-        ) {
-          // calling `updateCachedData` when there is no data yet should not do anything
-          // but if there is a cache value it will be updated & overwritten by the next successful result
-          updateCachedData((draft) => {
-            draft.value += '.'
-          })
-
-          try {
-            await queryFulfilled
-            onSuccess(getCacheEntry().data)
-          } catch (error) {
-            updateCachedData((draft) => {
-              draft.value += 'x'
-            })
-            onError(getCacheEntry().data)
-          }
-        },
-      }),
-    }),
-  })
-
-  // request 1: success
-  expect(onSuccess).not.toHaveBeenCalled()
-  storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-  expect(onSuccess).toHaveBeenCalledWith({ value: 'success' })
-  onSuccess.mockClear()
-
-  // request 2: error
-  expect(onError).not.toHaveBeenCalled()
-  server.use(
-    http.get(
-      'https://example.com/success',
-      () => {
-        return HttpResponse.json({ value: 'failed' }, { status: 500 })
-      },
-      { once: true },
-    ),
-  )
-  storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg', { forceRefetch: true }),
-  )
-
-  await waitFor(() => {
-    expect(onError).toHaveBeenCalled()
-  })
-  expect(onError).toHaveBeenCalledWith({ value: 'success.x' })
-
-  // request 3: success
-  expect(onSuccess).not.toHaveBeenCalled()
-
-  storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg', { forceRefetch: true }),
-  )
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-  expect(onSuccess).toHaveBeenCalledWith({ value: 'success' })
-  onSuccess.mockClear()
-})
-
-test('infinite query: updateCachedData', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      infiniteInjected: build.infiniteQuery<{ value: string }, string, number>({
-        query: () => '/success',
-        infiniteQueryOptions: {
-          initialPageParam: 1,
-          getNextPageParam: (
-            lastPage,
-            allPages,
-            lastPageParam,
-            allPageParams,
-          ) => lastPageParam + 1,
-        },
-        async onQueryStarted(
-          arg,
-          {
-            dispatch,
-            getState,
-            getCacheEntry,
-            updateCachedData,
-            queryFulfilled,
-          },
-        ) {
-          // calling `updateCachedData` when there is no data yet should not do anything
-          // but if there is a cache value it will be updated & overwritten by the next successful result
-          updateCachedData((draft) => {
-            draft.pages = [{ value: '.' }]
-            draft.pageParams = [1]
-          })
-
-          try {
-            await queryFulfilled
-            onSuccess(getCacheEntry().data)
-          } catch (error) {
-            updateCachedData((draft) => {
-              draft.pages = [{ value: 'success.x' }]
-              draft.pageParams = [1]
-            })
-            onError(getCacheEntry().data)
-          }
-        },
-      }),
-    }),
-  })
-
-  // request 1: success
-  expect(onSuccess).not.toHaveBeenCalled()
-  storeRef.store.dispatch(extended.endpoints.infiniteInjected.initiate('arg'))
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-  expect(onSuccess).toHaveBeenCalledWith({
-    pages: [{ value: 'success' }],
-    pageParams: [1],
-  })
-  onSuccess.mockClear()
-
-  // request 2: error
-  expect(onError).not.toHaveBeenCalled()
-  server.use(
-    http.get(
-      'https://example.com/success',
-      () => {
-        return HttpResponse.json({ value: 'failed' }, { status: 500 })
-      },
-      { once: true },
-    ),
-  )
-  storeRef.store.dispatch(
-    extended.endpoints.infiniteInjected.initiate('arg', { forceRefetch: true }),
-  )
-
-  await waitFor(() => {
-    expect(onError).toHaveBeenCalled()
-  })
-  expect(onError).toHaveBeenCalledWith({
-    pages: [{ value: 'success.x' }],
-    pageParams: [1],
-  })
-
-  // request 3: success
-  expect(onSuccess).not.toHaveBeenCalled()
-
-  storeRef.store.dispatch(
-    extended.endpoints.infiniteInjected.initiate('arg', { forceRefetch: true }),
-  )
-
-  await waitFor(() => {
-    expect(onSuccess).toHaveBeenCalled()
-  })
-  expect(onSuccess).toHaveBeenCalledWith({
-    pages: [{ value: 'success' }],
-    pageParams: [1],
-  })
-  onSuccess.mockClear()
-})
-
-test('query: will only start lifecycle if query is not skipped due to `condition`', async () => {
-  const extended = api.injectEndpoints({
-    overrideExisting: true,
-    endpoints: (build) => ({
-      injected: build.query<unknown, string>({
-        query: () => '/success',
-        onQueryStarted(arg) {
-          onStart(arg)
-        },
-      }),
-    }),
-  })
-  const promise = storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg'),
-  )
-  expect(onStart).toHaveBeenCalledOnce()
-  storeRef.store.dispatch(extended.endpoints.injected.initiate('arg'))
-  expect(onStart).toHaveBeenCalledOnce()
-  await promise
-  storeRef.store.dispatch(
-    extended.endpoints.injected.initiate('arg', { forceRefetch: true }),
-  )
-  expect(onStart).toHaveBeenCalledTimes(2)
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/raceConditions.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/raceConditions.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,109 +1,0 @@
-import { createApi, QueryStatus } from '@reduxjs/toolkit/query'
-import { delay } from 'msw'
-import { actionsReducer, setupApiStore } from '../../tests/utils/helpers'
-
-// We need to be able to control when which query resolves to simulate race
-// conditions properly, that's the purpose of this factory.
-const createPromiseFactory = () => {
-  const resolveQueue: (() => void)[] = []
-  const createPromise = () =>
-    new Promise<void>((resolve) => {
-      resolveQueue.push(resolve)
-    })
-  const resolveOldest = () => {
-    resolveQueue.shift()?.()
-  }
-  return { createPromise, resolveOldest }
-}
-
-const getEatenBananaPromises = createPromiseFactory()
-const eatBananaPromises = createPromiseFactory()
-
-let eatenBananas = 0
-const api = createApi({
-  invalidationBehavior: 'delayed',
-  baseQuery: () => undefined as any,
-  tagTypes: ['Banana'],
-  endpoints: (build) => ({
-    // Eat a banana.
-    eatBanana: build.mutation<unknown, void>({
-      queryFn: async () => {
-        await eatBananaPromises.createPromise()
-        eatenBananas += 1
-        return { data: null, meta: {} }
-      },
-      invalidatesTags: ['Banana'],
-    }),
-
-    // Get the number of eaten bananas.
-    getEatenBananas: build.query<number, void>({
-      queryFn: async (arg, arg1, arg2, arg3) => {
-        const result = eatenBananas
-        await getEatenBananaPromises.createPromise()
-        return { data: result }
-      },
-      providesTags: ['Banana'],
-    }),
-  }),
-})
-const { getEatenBananas, eatBanana } = api.endpoints
-
-const storeRef = setupApiStore(api, {
-  ...actionsReducer,
-})
-
-it('invalidates a query after a corresponding mutation', async () => {
-  eatenBananas = 0
-
-  const query = storeRef.store.dispatch(getEatenBananas.initiate())
-  const getQueryState = () =>
-    storeRef.store.getState().api.queries[query.queryCacheKey]
-  getEatenBananaPromises.resolveOldest()
-  await delay(2)
-
-  expect(getQueryState()?.data).toBe(0)
-  expect(getQueryState()?.status).toBe(QueryStatus.fulfilled)
-
-  const mutation = storeRef.store.dispatch(eatBanana.initiate())
-  const getMutationState = () =>
-    storeRef.store.getState().api.mutations[mutation.requestId]
-  eatBananaPromises.resolveOldest()
-  await delay(2)
-
-  expect(getMutationState()?.status).toBe(QueryStatus.fulfilled)
-  expect(getQueryState()?.data).toBe(0)
-  expect(getQueryState()?.status).toBe(QueryStatus.pending)
-
-  getEatenBananaPromises.resolveOldest()
-  await delay(2)
-
-  expect(getQueryState()?.data).toBe(1)
-  expect(getQueryState()?.status).toBe(QueryStatus.fulfilled)
-})
-
-it('invalidates a query whose corresponding mutation finished while the query was in flight', async () => {
-  eatenBananas = 0
-
-  const query = storeRef.store.dispatch(getEatenBananas.initiate())
-  const getQueryState = () =>
-    storeRef.store.getState().api.queries[query.queryCacheKey]
-
-  const mutation = storeRef.store.dispatch(eatBanana.initiate())
-  const getMutationState = () =>
-    storeRef.store.getState().api.mutations[mutation.requestId]
-  eatBananaPromises.resolveOldest()
-  await delay(2)
-  expect(getMutationState()?.status).toBe(QueryStatus.fulfilled)
-
-  getEatenBananaPromises.resolveOldest()
-  await delay(2)
-  expect(getQueryState()?.data).toBe(0)
-  expect(getQueryState()?.status).toBe(QueryStatus.pending)
-
-  // should already be refetching
-  getEatenBananaPromises.resolveOldest()
-  await delay(2)
-
-  expect(getQueryState()?.status).toBe(QueryStatus.fulfilled)
-  expect(getQueryState()?.data).toBe(1)
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/refetchingBehaviors.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/refetchingBehaviors.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,447 +1,0 @@
-import { createApi, setupListeners } from '@reduxjs/toolkit/query/react'
-import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { delay } from 'msw'
-import { setupApiStore } from '../../tests/utils/helpers'
-
-// Just setup a temporary in-memory counter for tests that `getIncrementedAmount`.
-// This can be used to test how many renders happen due to data changes or
-// the refetching behavior of components.
-let amount = 0
-
-const defaultApi = createApi({
-  baseQuery: async (arg: any) => {
-    await delay(150)
-    if ('amount' in arg?.body) {
-      amount += 1
-    }
-    return {
-      data: arg?.body
-        ? { ...arg.body, ...(amount ? { amount } : {}) }
-        : undefined,
-    }
-  },
-  endpoints: (build) => ({
-    getIncrementedAmount: build.query<any, void>({
-      query: () => ({
-        url: '',
-        body: {
-          amount,
-        },
-      }),
-    }),
-  }),
-  refetchOnFocus: true,
-  refetchOnReconnect: true,
-})
-
-const storeRef = setupApiStore(defaultApi)
-
-const getIncrementedAmountState = () =>
-  storeRef.store.getState().api.queries['getIncrementedAmount(undefined)']
-
-afterEach(() => {
-  amount = 0
-})
-
-describe('refetchOnFocus tests', () => {
-  test('useQuery hook respects refetchOnFocus: true when set in createApi options', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery())
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    fireEvent.focus(window)
-
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-  })
-
-  test('useQuery hook respects refetchOnFocus: false from a hook and overrides createApi defaults', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnFocus: false,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    fireEvent.focus(window)
-
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-  })
-
-  test('useQuery hook prefers refetchOnFocus: true when multiple components have different configurations', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnFocus: false,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    function UserWithRefetchTrue() {
-      ;({ data, isFetching, isLoading } =
-      defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-        refetchOnFocus: true,
-        }))
-      return <div />
-    }
-
-    render(
-      <div>
-        <User />
-        <UserWithRefetchTrue />
-      </div>,
-      { wrapper: storeRef.wrapper },
-    )
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    fireEvent.focus(window)
-    expect(screen.getByTestId('isLoading').textContent).toBe('false')
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-  })
-
-  test('useQuery hook cleans data if refetch without active subscribers', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnFocus: true,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    const { unmount } = render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    unmount()
-
-    expect(getIncrementedAmountState()).not.toBeUndefined()
-
-    fireEvent.focus(window)
-
-    await delay(1)
-    expect(getIncrementedAmountState()).toBeUndefined()
-  })
-})
-
-describe('refetchOnReconnect tests', () => {
-  test('useQuery hook respects refetchOnReconnect: true when set in createApi options', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery())
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    act(() => {
-      window.dispatchEvent(new Event('offline'))
-      window.dispatchEvent(new Event('online'))
-    })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-  })
-
-  test('useQuery hook should not refetch when refetchOnReconnect: false from a hook and overrides createApi defaults', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnReconnect: false,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    act(() => {
-      window.dispatchEvent(new Event('offline'))
-      window.dispatchEvent(new Event('online'))
-    })
-    expect(screen.getByTestId('isFetching').textContent).toBe('false')
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-  })
-
-  test('useQuery hook prefers refetchOnReconnect: true when multiple components have different configurations', async () => {
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnReconnect: false,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    function UserWithRefetchTrue() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnReconnect: true,
-        }))
-      return <div />
-    }
-
-    render(
-      <div>
-        <User />
-        <UserWithRefetchTrue />
-      </div>,
-      { wrapper: storeRef.wrapper },
-    )
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    act(() => {
-      window.dispatchEvent(new Event('offline'))
-      window.dispatchEvent(new Event('online'))
-    })
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-  })
-})
-
-describe('customListenersHandler', () => {
-  const storeRef = setupApiStore(defaultApi, undefined, {
-    withoutListeners: true,
-  })
-
-  test('setupListeners accepts a custom callback and executes it', async () => {
-    const consoleSpy = vi.spyOn(console, 'log')
-    consoleSpy.mockImplementation((...args: any[]) => {
-      // console.info(...args)
-    })
-    const dispatchSpy = vi.spyOn(storeRef.store, 'dispatch')
-
-    let unsubscribe = () => {}
-    unsubscribe = setupListeners(
-      storeRef.store.dispatch,
-      (dispatch, actions) => {
-        const handleOnline = () =>
-          dispatch(defaultApi.internalActions.onOnline())
-        window.addEventListener('online', handleOnline, false)
-        console.log('setup!')
-        return () => {
-          window.removeEventListener('online', handleOnline)
-          console.log('cleanup!')
-        }
-      },
-    )
-
-    await delay(150)
-
-    let data, isLoading, isFetching
-
-    function User() {
-      ;({ data, isFetching, isLoading } =
-        defaultApi.endpoints.getIncrementedAmount.useQuery(undefined, {
-          refetchOnReconnect: true,
-        }))
-      return (
-        <div>
-          <div data-testid="isLoading">{String(isLoading)}</div>
-          <div data-testid="isFetching">{String(isFetching)}</div>
-          <div data-testid="amount">{String(data?.amount)}</div>
-        </div>
-      )
-    }
-
-    render(<User />, { wrapper: storeRef.wrapper })
-
-    expect(consoleSpy).toHaveBeenCalledWith('setup!')
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isLoading').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('1'),
-    )
-
-    act(() => {
-      window.dispatchEvent(new Event('offline'))
-      window.dispatchEvent(new Event('online'))
-    })
-    expect(dispatchSpy).toHaveBeenCalled()
-
-    // Ignore RTKQ middleware internal data calls
-    const mockCallsWithoutInternals = dispatchSpy.mock.calls.filter((call) => {
-      const type = (call[0] as any)?.type ?? ''
-      const reIsInternal = /internal/i
-      return !reIsInternal.test(type)
-    })
-
-    expect(
-      defaultApi.internalActions.onOnline.match(
-        mockCallsWithoutInternals[1][0] as any,
-      ),
-    ).toBe(true)
-
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('true'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('isFetching').textContent).toBe('false'),
-    )
-    await waitFor(() =>
-      expect(screen.getByTestId('amount').textContent).toBe('2'),
-    )
-
-    unsubscribe()
-    expect(consoleSpy).toHaveBeenCalledWith('cleanup!')
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/retry.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/retry.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import { retry, type RetryOptions } from '@internal/query/retry'
-import {
-  fetchBaseQuery,
-  type FetchBaseQueryError,
-  type FetchBaseQueryMeta,
-} from '@internal/query/fetchBaseQuery'
-
-describe('type tests', () => {
-  test('RetryOptions only accepts one of maxRetries or retryCondition', () => {
-    // Should not complain if only `maxRetries` exists
-    expectTypeOf({ maxRetries: 5 }).toMatchTypeOf<RetryOptions>()
-
-    // Should not complain if only `retryCondition` exists
-    expectTypeOf({ retryCondition: () => false }).toMatchTypeOf<RetryOptions>()
-
-    // Should complain if both `maxRetries` and `retryCondition` exist at once
-    expectTypeOf({
-      maxRetries: 5,
-      retryCondition: () => false,
-    }).not.toMatchTypeOf<RetryOptions>()
-  })
-  test('fail can be pretyped to only accept correct error and meta', () => {
-    expectTypeOf(retry.fail).parameter(0).toEqualTypeOf<unknown>()
-    expectTypeOf(retry.fail).parameter(1).toEqualTypeOf<{} | undefined>()
-    expectTypeOf(retry.fail).toBeCallableWith('Literally anything', {})
-
-    const myBaseQuery = fetchBaseQuery()
-    const typedFail = retry.fail<typeof myBaseQuery>
-
-    expectTypeOf(typedFail).parameter(0).toMatchTypeOf<FetchBaseQueryError>()
-    expectTypeOf(typedFail)
-      .parameter(1)
-      .toMatchTypeOf<FetchBaseQueryMeta | undefined>()
-
-    expectTypeOf(typedFail).toBeCallableWith(
-      {
-        status: 401,
-        data: 'Unauthorized',
-      },
-      { request: new Request('http://localhost') },
-    )
-
-    expectTypeOf(typedFail).parameter(0).not.toMatchTypeOf<string>()
-    expectTypeOf(typedFail).parameter(1).not.toMatchTypeOf<{}>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/retry.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/retry.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,921 +1,0 @@
-import type { BaseQueryFn, FetchBaseQueryError } from '@reduxjs/toolkit/query'
-import { createApi, retry } from '@reduxjs/toolkit/query'
-import { setupApiStore } from '../../tests/utils/helpers'
-
-beforeEach(() => {
-  vi.useFakeTimers()
-})
-
-const loopTimers = async (max: number = 12) => {
-  let count = 0
-  while (count < max) {
-    await vi.advanceTimersByTimeAsync(1)
-    vi.advanceTimersByTime(120_000)
-    count++
-  }
-}
-
-describe('configuration', () => {
-  test('retrying without any config options', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery)
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(7)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(6)
-  })
-
-  test('retrying with baseQuery config that overrides default behavior (maxRetries: 5)', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(5)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-  })
-
-  test('retrying with endpoint config that overrides baseQuery config', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-        q2: build.query({
-          query: () => {},
-          extraOptions: { maxRetries: 8 },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-    await loopTimers(5)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-
-    baseBaseQuery.mockClear()
-
-    storeRef.store.dispatch(api.endpoints.q2.initiate({}))
-
-    await loopTimers(10)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(9)
-  })
-
-  test('stops retrying a query after a success', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery
-      .mockResolvedValueOnce({ error: 'rejected' })
-      .mockResolvedValueOnce({ error: 'rejected' })
-      .mockResolvedValue({ data: { success: true } })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.mutation({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(6)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(3)
-  })
-
-  test('retrying also works with mutations', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        m1: build.mutation({
-          query: () => ({ method: 'PUT' }),
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.m1.initiate({}))
-
-    await loopTimers(5)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-  })
-
-  test('retrying stops after a success from a mutation', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery
-      .mockRejectedValueOnce(new Error('rejected'))
-      .mockRejectedValueOnce(new Error('rejected'))
-      .mockResolvedValue({ data: { success: true } })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        m1: build.mutation({
-          query: () => ({ method: 'PUT' }),
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.m1.initiate({}))
-
-    await loopTimers(5)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(3)
-  })
-  test('non-error-cases should **not** retry', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ data: { success: true } })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(2)
-
-    expect(baseBaseQuery).toHaveBeenCalledOnce()
-  })
-  test('calling retry.fail(error) will skip retrying and expose the error directly', async () => {
-    const error = { message: 'banana' }
-
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockImplementation((input) => {
-      retry.fail(error)
-      return { data: `this won't happen` }
-    })
-
-    const baseQuery = retry(baseBaseQuery)
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    const result = await storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(2)
-
-    expect(baseBaseQuery).toHaveBeenCalledOnce()
-    expect(result.error).toEqual(error)
-    expect(result).toEqual({
-      endpointName: 'q1',
-      error,
-      isError: true,
-      isLoading: false,
-      isSuccess: false,
-      isUninitialized: false,
-      originalArgs: expect.any(Object),
-      requestId: expect.any(String),
-      startedTimeStamp: expect.any(Number),
-      status: 'rejected',
-    })
-  })
-
-  test('wrapping retry(retry(..., { maxRetries: 3 }), { maxRetries: 3 }) should retry 16 times', async () => {
-    /**
-     * Note:
-     * This will retry 16 total times because we try the initial + 3 retries (sum: 4), then retry that process 3 times (starting at 0 for a total of 4)... 4x4=16 (allegedly)
-     */
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(retry(baseBaseQuery, { maxRetries: 3 }), {
-      maxRetries: 3,
-    })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(18)
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(16)
-  })
-
-  test('accepts a custom backoff fn', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, {
-      maxRetries: 8,
-      backoff: async (attempt, maxRetries) => {
-        const attempts = Math.min(attempt, maxRetries)
-        const timeout = attempts * 300 // Scale up by 300ms per request, ex: 300ms, 600ms, 900ms, 1200ms...
-        await new Promise((resolve) =>
-          setTimeout((res: any) => resolve(res), timeout),
-        )
-      },
-    })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers()
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(9)
-  })
-
-  test('accepts a custom retryCondition fn', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const overrideMaxRetries = 3
-
-    const baseQuery = retry(baseBaseQuery, {
-      retryCondition: (_, __, { attempt }) => attempt <= overrideMaxRetries,
-    })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers()
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(overrideMaxRetries + 1)
-  })
-
-  test('retryCondition with endpoint config that overrides baseQuery config', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, {
-      maxRetries: 10,
-    })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-          extraOptions: {
-            retryCondition: (_, __, { attempt }) => attempt <= 5,
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers()
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(6)
-  })
-
-  test('retryCondition also works with mutations', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-
-    baseBaseQuery
-      .mockRejectedValueOnce(new Error('rejected'))
-      .mockRejectedValueOnce(new Error('hello retryCondition'))
-      .mockRejectedValueOnce(new Error('rejected'))
-      .mockResolvedValue({ error: 'hello retryCondition' })
-
-    const baseQuery = retry(baseBaseQuery, {})
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        m1: build.mutation({
-          query: () => ({ method: 'PUT' }),
-          extraOptions: {
-            retryCondition: (e) =>
-              (e as FetchBaseQueryError).data === 'hello retryCondition',
-          },
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-    storeRef.store.dispatch(api.endpoints.m1.initiate({}))
-
-    await loopTimers()
-
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-  })
-
-  test('Specifying maxRetries as 0 in RetryOptions prevents retries', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery.mockResolvedValue({ error: 'rejected' })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 0 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-    await loopTimers(2)
-
-    expect(baseBaseQuery).toHaveBeenCalledOnce()
-  })
-
-  test('retryCondition receives abort signal and stops retrying when cache entry is removed', async () => {
-    let capturedSignal: AbortSignal | undefined
-    let retryAttempts = 0
-
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-
-    // Always return an error to trigger retries
-    baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-    let retryConditionCalled = false
-
-    const baseQuery = retry(baseBaseQuery, {
-      retryCondition: (error, args, { attempt, baseQueryApi }) => {
-        retryConditionCalled = true
-        retryAttempts = attempt
-        capturedSignal = baseQueryApi.signal
-
-        // Stop retrying if the signal is aborted
-        if (baseQueryApi.signal.aborted) {
-          return false
-        }
-
-        // Otherwise, retry up to 10 times
-        return attempt <= 10
-      },
-      backoff: async () => {
-        // Short backoff for faster test
-        await new Promise((resolve) => setTimeout(resolve, 10))
-      },
-    })
-
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        getTest: build.query<string, number>({
-          query: (id) => ({ url: `test/${id}` }),
-          keepUnusedDataFor: 0.01, // Very short timeout (10ms)
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    // Start the query
-    const queryPromise = storeRef.store.dispatch(
-      api.endpoints.getTest.initiate(1),
-    )
-
-    // Wait for the first retry to happen so we capture the signal
-    await loopTimers(2)
-
-    // Verify the retry condition was called and we have a signal
-    expect(retryConditionCalled).toBe(true)
-    expect(capturedSignal).toBeDefined()
-    expect(capturedSignal!.aborted).toBe(false)
-
-    // Unsubscribe to trigger cache removal
-    queryPromise.unsubscribe()
-
-    // Wait for the cache entry to be removed (keepUnusedDataFor: 0.01s = 10ms)
-    await vi.advanceTimersByTimeAsync(50)
-
-    // Allow some time for more retries to potentially happen
-    await loopTimers(3)
-
-    // The signal should now be aborted
-    expect(capturedSignal!.aborted).toBe(true)
-
-    // We should have stopped retrying early due to the abort signal
-    // If abort signal wasn't working, we'd see many more retry attempts
-    expect(retryAttempts).toBeLessThan(10)
-
-    // The base query should have been called at least once (initial attempt)
-    // but not the full 10+ times it would without abort signal
-    expect(baseBaseQuery).toHaveBeenCalled()
-    expect(baseBaseQuery.mock.calls.length).toBeLessThan(10)
-  })
-
-  // Tests for issue #4079: Thrown errors should respect maxRetries
-  test('thrown errors (not HandledError) should respect maxRetries', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    // Simulate network error that keeps throwing
-    baseBaseQuery.mockRejectedValue(new Error('Network timeout'))
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(5)
-
-    // Should try initial + 3 retries = 4 total, then stop
-    // Currently this will fail because it retries infinitely
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-  })
-
-  test('graphql-style thrown errors should respect maxRetries', async () => {
-    class ClientError extends Error {
-      constructor(message: string) {
-        super(message)
-        this.name = 'ClientError'
-      }
-    }
-
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    // Simulate graphql-request throwing ClientError
-    baseBaseQuery.mockImplementation(() => {
-      throw new ClientError('GraphQL network error')
-    })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 2 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(4)
-
-    // Should try initial + 2 retries = 3 total, then stop
-    // Currently this will fail because it retries infinitely
-    expect(baseBaseQuery).toHaveBeenCalledTimes(3)
-  })
-
-  test('handles mix of returned errors and thrown errors', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    baseBaseQuery
-      .mockResolvedValueOnce({ error: 'returned error' }) // HandledError
-      .mockRejectedValueOnce(new Error('thrown error')) // Not HandledError
-      .mockResolvedValueOnce({ error: 'returned error' }) // HandledError
-      .mockResolvedValue({ data: { success: true } })
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        q1: build.query({
-          query: () => {},
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-    await loopTimers(6)
-
-    // Should eventually succeed after 4 attempts
-    expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-  })
-
-  test('thrown errors with mutations should respect maxRetries', async () => {
-    const baseBaseQuery = vi.fn<BaseQueryFn>()
-    // Simulate persistent network error
-    baseBaseQuery.mockRejectedValue(new Error('Connection refused'))
-
-    const baseQuery = retry(baseBaseQuery, { maxRetries: 2 })
-    const api = createApi({
-      baseQuery,
-      endpoints: (build) => ({
-        m1: build.mutation({
-          query: () => ({ method: 'POST' }),
-        }),
-      }),
-    })
-
-    const storeRef = setupApiStore(api, undefined, {
-      withoutTestLifecycles: true,
-    })
-
-    storeRef.store.dispatch(api.endpoints.m1.initiate({}))
-
-    await loopTimers(4)
-
-    // Should try initial + 2 retries = 3 total, then stop
-    // Currently this will fail because it retries infinitely
-    expect(baseBaseQuery).toHaveBeenCalledTimes(3)
-  })
-
-  // These tests validate the abort signal handling implementation
-  describe('abort signal handling', () => {
-    test('retry loop exits immediately when signal is aborted before retry', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Let first attempt fail
-      await loopTimers(1)
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-
-      // Abort the query
-      promise.abort()
-
-      // Advance timers to allow retry attempts
-      await loopTimers(5)
-
-      // Should not have retried after abort
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-    })
-
-    test('abort during active request prevents retry', async () => {
-      let requestInProgress = false
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-
-      baseBaseQuery.mockImplementation(async () => {
-        requestInProgress = true
-        await new Promise((resolve) => setTimeout(resolve, 100))
-        requestInProgress = false
-        return { error: 'network error' }
-      })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Wait for request to start
-      await vi.advanceTimersByTimeAsync(50)
-      expect(requestInProgress).toBe(true)
-
-      // Abort while request is in progress
-      promise.abort()
-
-      // Let request complete
-      await loopTimers(2)
-
-      // Should not retry after abort
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-    })
-
-    test('custom backoff without signal parameter still works', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      // Custom backoff that doesn't accept signal (backward compatibility)
-      const customBackoff = async (attempt: number, maxRetries: number) => {
-        await new Promise((resolve) => setTimeout(resolve, 100))
-      }
-
-      const baseQuery = retry(baseBaseQuery, {
-        maxRetries: 3,
-        backoff: customBackoff,
-      })
-
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      await loopTimers(5)
-
-      // Should complete all retries (not cancellable without signal)
-      expect(baseBaseQuery).toHaveBeenCalledTimes(4)
-    })
-
-    test('abort signal is checked before each retry attempt', async () => {
-      const attemptNumbers: number[] = []
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockImplementation(async () => {
-        attemptNumbers.push(attemptNumbers.length + 1)
-        return { error: 'network error' }
-      })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Let 3 attempts happen
-      await loopTimers(3)
-      expect(attemptNumbers).toEqual([1, 2, 3])
-
-      // Abort
-      promise.abort()
-
-      // Try to let more attempts happen
-      await loopTimers(5)
-
-      // Should not have any more attempts
-      expect(attemptNumbers).toEqual([1, 2, 3])
-    })
-
-    test('mutations respect abort signal during retry', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          m1: build.mutation({ query: () => ({ method: 'POST' }) }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.m1.initiate({}))
-
-      // Let first attempt fail
-      await loopTimers(1)
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-
-      // Abort
-      promise.abort()
-
-      // Try to let retries happen
-      await loopTimers(5)
-
-      // Should not have retried
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-    })
-
-    test('abort after successful retry does not affect result', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery
-        .mockResolvedValueOnce({ error: 'network error' })
-        .mockResolvedValue({ data: { success: true } })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Let it succeed on retry
-      await loopTimers(3)
-      expect(baseBaseQuery).toHaveBeenCalledTimes(2)
-
-      const result = await promise
-
-      // Abort after success
-      promise.abort()
-
-      // Result should still be successful
-      expect(result.isSuccess).toBe(true)
-      expect(result.data).toEqual({ success: true })
-    })
-
-    test('multiple aborts are handled gracefully', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      await loopTimers(1)
-
-      // Call abort multiple times
-      promise.abort()
-      promise.abort()
-      promise.abort()
-
-      await loopTimers(3)
-
-      // Should handle gracefully
-      expect(baseBaseQuery).toHaveBeenCalledTimes(1)
-    })
-
-    test('abort signal already aborted before retry starts', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      const promise = storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Abort immediately
-      promise.abort()
-
-      await loopTimers(5)
-
-      // May have started the first attempt before abort was processed
-      // but should not retry
-      expect(baseBaseQuery.mock.calls.length).toBeLessThanOrEqual(1)
-    })
-
-    test('resetApiState aborts retrying queries', async () => {
-      const baseBaseQuery = vi.fn<BaseQueryFn>()
-      baseBaseQuery.mockResolvedValue({ error: 'network error' })
-
-      const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
-      const api = createApi({
-        baseQuery,
-        endpoints: (build) => ({
-          q1: build.query({ query: () => {} }),
-        }),
-      })
-
-      const storeRef = setupApiStore(api, undefined, {
-        withoutTestLifecycles: true,
-      })
-      storeRef.store.dispatch(api.endpoints.q1.initiate({}))
-
-      // Let first attempt fail and start retrying
-      await loopTimers(2)
-      expect(baseBaseQuery).toHaveBeenCalledTimes(2)
-
-      // Reset API state (should abort the retry loop)
-      storeRef.store.dispatch(api.util.resetApiState())
-
-      // Try to let more retries happen
-      await loopTimers(5)
-
-      // Should not have retried after resetApiState
-      expect(baseBaseQuery).toHaveBeenCalledTimes(2)
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/unionTypes.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/unionTypes.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,914 +1,0 @@
-import type { UseQueryStateOptions } from '@internal/query/react/buildHooks'
-import type { SerializedError } from '@reduxjs/toolkit'
-import type {
-  FetchBaseQueryError,
-  QueryDefinition,
-  TypedUseMutationResult,
-  TypedUseQueryHookResult,
-  TypedUseQueryState,
-  TypedUseQueryStateResult,
-  TypedUseQuerySubscriptionResult,
-  TypedLazyQueryTrigger,
-  TypedUseLazyQueryStateResult,
-  TypedUseLazyQuery,
-  TypedUseLazyQuerySubscription,
-  TypedUseMutation,
-  TypedMutationTrigger,
-  TypedUseQuerySubscription,
-  TypedUseQuery,
-  TypedUseQueryStateOptions,
-} from '@reduxjs/toolkit/query/react'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
-
-const baseQuery = fetchBaseQuery()
-
-const api = createApi({
-  baseQuery,
-  endpoints: (build) => ({
-    getTest: build.query<string, void>({ query: () => '' }),
-    mutation: build.mutation<string, void>({ query: () => '' }),
-  }),
-})
-
-describe('union types', () => {
-  test('query selector union', () => {
-    const result = api.endpoints.getTest.select()({} as any)
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-
-  test('useQuery union', () => {
-    const result = api.endpoints.getTest.useQuery()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isFetching) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toBeBoolean()
-
-      expectTypeOf(result.isSuccess).toBeBoolean()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result.currentData).toEqualTypeOf<string | undefined>()
-
-    if (result.isSuccess) {
-      if (!result.isFetching) {
-        expectTypeOf(result.currentData).toBeString()
-      } else {
-        expectTypeOf(result.currentData).toEqualTypeOf<string | undefined>()
-      }
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-  test('useQuery TS4.1 union', () => {
-    const result = api.useGetTestQuery()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isFetching) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toBeBoolean()
-
-      expectTypeOf(result.isSuccess).toBeBoolean()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-
-  test('useLazyQuery union', () => {
-    const [_trigger, result] = api.endpoints.getTest.useLazyQuery()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isFetching) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toBeBoolean()
-
-      expectTypeOf(result.isSuccess).toBeBoolean()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-
-  test('useLazyQuery TS4.1 union', () => {
-    const [_trigger, result] = api.useLazyGetTestQuery()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isFetching).toBeBoolean()
-    }
-
-    if (result.isFetching) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toBeBoolean()
-
-      expectTypeOf(result.isSuccess).toBeBoolean()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-
-  test('queryHookResult (without selector) union', async () => {
-    const useQueryStateResult = api.endpoints.getTest.useQueryState()
-
-    const useQueryResult = api.endpoints.getTest.useQuery()
-
-    const useQueryStateWithSelectFromResult =
-      api.endpoints.getTest.useQueryState(undefined, {
-        selectFromResult: () => ({ x: true }),
-      })
-
-    const { refetch, ...useQueryResultWithoutMethods } = useQueryResult
-
-    assertType<typeof useQueryResultWithoutMethods>(useQueryStateResult)
-
-    expectTypeOf(useQueryStateResult).toMatchTypeOf(
-      useQueryResultWithoutMethods,
-    )
-
-    expectTypeOf(useQueryStateWithSelectFromResult)
-      .parameter(0)
-      .not.toMatchTypeOf(useQueryResultWithoutMethods)
-
-    expectTypeOf(api.endpoints.getTest.select).returns.returns.toEqualTypeOf<
-      Awaited<ReturnType<typeof refetch>>
-    >()
-  })
-
-  test('useQueryState (with selectFromResult)', () => {
-    const result = api.endpoints.getTest.useQueryState(undefined, {
-      selectFromResult({
-        data,
-        isLoading,
-        isFetching,
-        isError,
-        isSuccess,
-        isUninitialized,
-      }) {
-        return {
-          data: data ?? 1,
-          isLoading,
-          isFetching,
-          isError,
-          isSuccess,
-          isUninitialized,
-        }
-      },
-    })
-
-    expectTypeOf({
-      data: '' as string | number,
-      isUninitialized: false,
-      isLoading: true,
-      isFetching: true,
-      isSuccess: false,
-      isError: false,
-    }).toEqualTypeOf(result)
-  })
-
-  test('useQuery (with selectFromResult)', async () => {
-    const { refetch, ...result } = api.endpoints.getTest.useQuery(undefined, {
-      selectFromResult({
-        data,
-        isLoading,
-        isFetching,
-        isError,
-        isSuccess,
-        isUninitialized,
-      }) {
-        return {
-          data: data ?? 1,
-          isLoading,
-          isFetching,
-          isError,
-          isSuccess,
-          isUninitialized,
-        }
-      },
-    })
-
-    expectTypeOf({
-      data: '' as string | number,
-      isUninitialized: false,
-      isLoading: true,
-      isFetching: true,
-      isSuccess: false,
-      isError: false,
-    }).toEqualTypeOf(result)
-
-    expectTypeOf(api.endpoints.getTest.select).returns.returns.toEqualTypeOf<
-      Awaited<ReturnType<typeof refetch>>
-    >()
-  })
-
-  test('useMutation union', () => {
-    const [_trigger, result] = api.endpoints.mutation.useMutation()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-
-  test('useMutation (with selectFromResult)', () => {
-    const [_trigger, result] = api.endpoints.mutation.useMutation({
-      selectFromResult({
-        data,
-        isLoading,
-        isError,
-        isSuccess,
-        isUninitialized,
-      }) {
-        return {
-          data: data ?? 'hi',
-          isLoading,
-          isError,
-          isSuccess,
-          isUninitialized,
-        }
-      },
-    })
-
-    expectTypeOf({
-      data: '' as string,
-      isUninitialized: false,
-      isLoading: true,
-      isSuccess: false,
-      isError: false,
-      reset: () => {},
-    }).toMatchTypeOf(result)
-  })
-
-  test('useMutation TS4.1 union', () => {
-    const [_trigger, result] = api.useMutationMutation()
-
-    if (result.isUninitialized) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isLoading) {
-      expectTypeOf(result.data).toBeUndefined()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError | undefined
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isError) {
-      expectTypeOf(result.data).toEqualTypeOf<string | undefined>()
-
-      expectTypeOf(result.error).toEqualTypeOf<
-        SerializedError | FetchBaseQueryError
-      >()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isSuccess).toEqualTypeOf<false>()
-    }
-
-    if (result.isSuccess) {
-      expectTypeOf(result.data).toBeString()
-
-      expectTypeOf(result.error).toBeUndefined()
-
-      expectTypeOf(result.isUninitialized).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isLoading).toEqualTypeOf<false>()
-
-      expectTypeOf(result.isError).toEqualTypeOf<false>()
-    }
-
-    expectTypeOf(result).not.toBeNever()
-
-    // is always one of those four
-    if (
-      !result.isUninitialized &&
-      !result.isLoading &&
-      !result.isError &&
-      !result.isSuccess
-    ) {
-      expectTypeOf(result).toBeNever()
-    }
-  })
-})
-
-describe('"Typed" helper types', () => {
-  test('useQuery', () => {
-    expectTypeOf<TypedUseQuery<string, void, typeof baseQuery>>().toMatchTypeOf(
-      api.endpoints.getTest.useQuery,
-    )
-
-    const result = api.endpoints.getTest.useQuery()
-
-    expectTypeOf<
-      TypedUseQueryHookResult<string, void, typeof baseQuery>
-    >().toEqualTypeOf(result)
-  })
-
-  test('useQuery with selectFromResult', () => {
-    const result = api.endpoints.getTest.useQuery(undefined, {
-      selectFromResult: () => ({ x: true }),
-    })
-
-    expectTypeOf<
-      TypedUseQueryHookResult<string, void, typeof baseQuery, { x: boolean }>
-    >().toEqualTypeOf(result)
-  })
-
-  test('useQueryState', () => {
-    expectTypeOf<
-      TypedUseQueryState<string, void, typeof baseQuery>
-    >().toMatchTypeOf(api.endpoints.getTest.useQueryState)
-
-    const result = api.endpoints.getTest.useQueryState()
-
-    expectTypeOf<
-      TypedUseQueryStateResult<string, void, typeof baseQuery>
-    >().toEqualTypeOf(result)
-  })
-
-  test('useQueryState with selectFromResult', () => {
-    const result = api.endpoints.getTest.useQueryState(undefined, {
-      selectFromResult: () => ({ x: true }),
-    })
-
-    expectTypeOf<
-      TypedUseQueryStateResult<string, void, typeof baseQuery, { x: boolean }>
-    >().toEqualTypeOf(result)
-  })
-
-  test('useQueryState options', () => {
-    expectTypeOf<
-      TypedUseQueryStateOptions<string, void, typeof baseQuery>
-    >().toMatchTypeOf<
-      Parameters<typeof api.endpoints.getTest.useQueryState>[1]
-    >()
-
-    expectTypeOf<
-      UseQueryStateOptions<
-        QueryDefinition<void, typeof baseQuery, string, string>,
-        { x: boolean }
-      >
-    >().toEqualTypeOf<
-      TypedUseQueryStateOptions<string, void, typeof baseQuery, { x: boolean }>
-    >()
-  })
-
-  test('useQuerySubscription', () => {
-    expectTypeOf<
-      TypedUseQuerySubscription<string, void, typeof baseQuery>
-    >().toMatchTypeOf(api.endpoints.getTest.useQuerySubscription)
-
-    const result = api.endpoints.getTest.useQuerySubscription()
-
-    expectTypeOf<
-      TypedUseQuerySubscriptionResult<string, void, typeof baseQuery>
-    >().toEqualTypeOf(result)
-  })
-
-  test('useLazyQuery', () => {
-    expectTypeOf<
-      TypedUseLazyQuery<string, void, typeof baseQuery>
-    >().toMatchTypeOf(api.endpoints.getTest.useLazyQuery)
-
-    const [trigger, result] = api.endpoints.getTest.useLazyQuery()
-
-    expectTypeOf<
-      TypedLazyQueryTrigger<string, void, typeof baseQuery>
-    >().toMatchTypeOf(trigger)
-
-    expectTypeOf<
-      TypedUseLazyQueryStateResult<string, void, typeof baseQuery>
-    >().toMatchTypeOf(result)
-  })
-
-  test('useLazyQuery with selectFromResult', () => {
-    const [trigger, result] = api.endpoints.getTest.useLazyQuery({
-      selectFromResult: () => ({ x: true }),
-    })
-
-    expectTypeOf<
-      TypedLazyQueryTrigger<string, void, typeof baseQuery>
-    >().toMatchTypeOf(trigger)
-
-    expectTypeOf<
-      TypedUseLazyQueryStateResult<
-        string,
-        void,
-        typeof baseQuery,
-        { x: boolean }
-      >
-    >().toMatchTypeOf(result)
-  })
-
-  test('useLazyQuerySubscription', () => {
-    expectTypeOf<
-      TypedUseLazyQuerySubscription<string, void, typeof baseQuery>
-    >().toMatchTypeOf(api.endpoints.getTest.useLazyQuerySubscription)
-
-    const [trigger] = api.endpoints.getTest.useLazyQuerySubscription()
-
-    expectTypeOf<
-      TypedLazyQueryTrigger<string, void, typeof baseQuery>
-    >().toMatchTypeOf(trigger)
-  })
-
-  test('useMutation', () => {
-    expectTypeOf<
-      TypedUseMutation<string, void, typeof baseQuery>
-    >().toMatchTypeOf(api.endpoints.mutation.useMutation)
-
-    const [trigger, result] = api.endpoints.mutation.useMutation()
-
-    expectTypeOf<
-      TypedMutationTrigger<string, void, typeof baseQuery>
-    >().toMatchTypeOf(trigger)
-
-    expectTypeOf<
-      TypedUseMutationResult<string, void, typeof baseQuery>
-    >().toMatchTypeOf(result)
-  })
-
-  test('useQuery - defining selectFromResult separately', () => {
-    const selectFromResult = (
-      result: TypedUseQueryStateResult<string, void, typeof baseQuery>,
-    ) => ({ x: true })
-
-    const result = api.endpoints.getTest.useQuery(undefined, {
-      selectFromResult,
-    })
-
-    expectTypeOf(result).toEqualTypeOf<
-      TypedUseQueryHookResult<
-        string,
-        void,
-        typeof baseQuery,
-        ReturnType<typeof selectFromResult>
-      >
-    >()
-  })
-
-  test('useMutation - defining selectFromResult separately', () => {
-    const selectFromResult = (
-      result: Omit<
-        TypedUseMutationResult<string, void, typeof baseQuery>,
-        'reset' | 'originalArgs'
-      >,
-    ) => ({ x: true })
-
-    const [trigger, result] = api.endpoints.mutation.useMutation({
-      selectFromResult,
-    })
-    expectTypeOf(result).toEqualTypeOf<
-      TypedUseMutationResult<
-        string,
-        void,
-        typeof baseQuery,
-        ReturnType<typeof selectFromResult>
-      >
-    >()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/useMutation-fixedCacheKey.test.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/useMutation-fixedCacheKey.test.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,394 +1,0 @@
-import { createApi } from '@reduxjs/toolkit/query/react'
-import {
-  act,
-  getByTestId,
-  render,
-  screen,
-  waitFor,
-} from '@testing-library/react'
-import { delay } from 'msw'
-import { vi } from 'vitest'
-import { setupApiStore } from '../../tests/utils/helpers'
-
-describe('fixedCacheKey', () => {
-  const onNewCacheEntry = vi.fn()
-
-  const api = createApi({
-    async baseQuery(arg: string | Promise<string>) {
-      return { data: await arg }
-    },
-    endpoints: (build) => ({
-      send: build.mutation<string, string | Promise<string>>({
-        query: (arg) => arg,
-      }),
-    }),
-  })
-  const storeRef = setupApiStore(api)
-
-  function Component({
-    name,
-    fixedCacheKey,
-    value = name,
-  }: {
-    name: string
-    fixedCacheKey?: string
-    value?: string | Promise<string>
-  }) {
-    const [trigger, result] = api.endpoints.send.useMutation({ fixedCacheKey })
-
-    return (
-      <div data-testid={name}>
-        <div data-testid="status">{result.status}</div>
-        <div data-testid="data">{result.data}</div>
-        <div data-testid="originalArgs">{String(result.originalArgs)}</div>
-        <button data-testid="trigger" onClick={() => trigger(value)}>
-          trigger
-        </button>
-        <button data-testid="reset" onClick={result.reset}>
-          reset
-        </button>
-      </div>
-    )
-  }
-
-  test('two mutations without `fixedCacheKey` do not influence each other', async () => {
-    render(
-      <>
-        <Component name="C1" />
-        <Component name="C2" />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled'),
-    )
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-  })
-
-  test('two mutations with the same `fixedCacheKey` do influence each other', async () => {
-    render(
-      <>
-        <Component name="C1" fixedCacheKey="test" />
-        <Component name="C2" fixedCacheKey="test" />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() => {
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled')
-      expect(getByTestId(c1, 'data').textContent).toBe('C1')
-      expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-      expect(getByTestId(c2, 'data').textContent).toBe('C1')
-    })
-
-    // test reset from the other component
-    act(() => {
-      getByTestId(c2, 'reset').click()
-    })
-    await waitFor(() => {
-      expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-      expect(getByTestId(c1, 'data').textContent).toBe('')
-      expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-      expect(getByTestId(c2, 'data').textContent).toBe('')
-    })
-  })
-
-  test('resetting from the component that triggered the mutation resets for each shared result', async () => {
-    render(
-      <>
-        <Component name="C1" fixedCacheKey="test-A" />
-        <Component name="C2" fixedCacheKey="test-A" />
-        <Component name="C3" fixedCacheKey="test-B" />
-        <Component name="C4" fixedCacheKey="test-B" />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    const c3 = screen.getByTestId('C3')
-    const c4 = screen.getByTestId('C4')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c3, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c4, 'status').textContent).toBe('uninitialized')
-
-    // trigger with a component using the first cache key
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled'),
-    )
-
-    // the components with the first cache key should be affected
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-    expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-    expect(getByTestId(c2, 'data').textContent).toBe('C1')
-    expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-
-    // the components with the second cache key should be unaffected
-    expect(getByTestId(c3, 'data').textContent).toBe('')
-    expect(getByTestId(c3, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c4, 'data').textContent).toBe('')
-    expect(getByTestId(c4, 'status').textContent).toBe('uninitialized')
-
-    // trigger with a component using the second cache key
-
-    act(() => {
-      getByTestId(c3, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c3, 'status').textContent).toBe('fulfilled'),
-    )
-
-    // the components with the first cache key should be unaffected
-    await waitFor(() => {
-      expect(getByTestId(c1, 'data').textContent).toBe('C1')
-      expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-      expect(getByTestId(c2, 'data').textContent).toBe('C1')
-      expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-
-      // the component with the second cache key should be affected
-      expect(getByTestId(c3, 'data').textContent).toBe('C3')
-      expect(getByTestId(c3, 'status').textContent).toBe('fulfilled')
-      expect(getByTestId(c4, 'data').textContent).toBe('C3')
-      expect(getByTestId(c4, 'status').textContent).toBe('fulfilled')
-    })
-
-    // test reset from the component that triggered the mutation for the first cache key
-
-    act(() => {
-      getByTestId(c1, 'reset').click()
-    })
-
-    await waitFor(() => {
-      // the components with the first cache key should be affected
-      expect(getByTestId(c1, 'data').textContent).toBe('')
-      expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-      expect(getByTestId(c2, 'data').textContent).toBe('')
-      expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-      // the components with the second cache key should be unaffected
-      expect(getByTestId(c3, 'data').textContent).toBe('C3')
-      expect(getByTestId(c3, 'status').textContent).toBe('fulfilled')
-      expect(getByTestId(c4, 'data').textContent).toBe('C3')
-      expect(getByTestId(c4, 'status').textContent).toBe('fulfilled')
-    })
-  })
-
-  test('two mutations with different `fixedCacheKey` do not influence each other', async () => {
-    render(
-      <>
-        <Component name="C1" fixedCacheKey="test" />
-        <Component name="C2" fixedCacheKey="toast" />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled'),
-    )
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-  })
-
-  test('unmounting and remounting keeps data intact', async () => {
-    const { rerender } = render(<Component name="C1" fixedCacheKey="test" />, {
-      wrapper: storeRef.wrapper,
-    })
-    let c1 = screen.getByTestId('C1')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled'),
-    )
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-
-    rerender(<div />)
-    expect(screen.queryByTestId('C1')).toBe(null)
-
-    rerender(<Component name="C1" fixedCacheKey="test" />)
-    c1 = screen.getByTestId('C1')
-    expect(getByTestId(c1, 'status').textContent).toBe('fulfilled')
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-  })
-
-  test('(limitation) mutations using `fixedCacheKey` do not return `originalArgs`', async () => {
-    render(
-      <>
-        <Component name="C1" fixedCacheKey="test" />
-        <Component name="C2" fixedCacheKey="test" />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-    act(() => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    await waitFor(() =>
-      expect(getByTestId(c1, 'status').textContent).toBe('fulfilled'),
-    )
-    expect(getByTestId(c1, 'data').textContent).toBe('C1')
-    expect(getByTestId(c2, 'status').textContent).toBe('fulfilled')
-    expect(getByTestId(c2, 'data').textContent).toBe('C1')
-  })
-
-  test('a component without `fixedCacheKey` has `originalArgs`', async () => {
-    render(<Component name="C1" />, {
-      wrapper: storeRef.wrapper,
-    })
-    let c1 = screen.getByTestId('C1')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c1, 'originalArgs').textContent).toBe('undefined')
-
-    await act(async () => {
-      getByTestId(c1, 'trigger').click()
-      await Promise.resolve()
-    })
-
-    expect(getByTestId(c1, 'originalArgs').textContent).toBe('C1')
-  })
-
-  test('a component with `fixedCacheKey` does never have `originalArgs`', async () => {
-    render(<Component name="C1" fixedCacheKey="test" />, {
-      wrapper: storeRef.wrapper,
-    })
-    let c1 = screen.getByTestId('C1')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c1, 'originalArgs').textContent).toBe('undefined')
-
-    await act(async () => {
-      getByTestId(c1, 'trigger').click()
-    })
-
-    expect(getByTestId(c1, 'originalArgs').textContent).toBe('undefined')
-  })
-
-  test('using `fixedCacheKey` will always use the latest dispatched thunk, prevent races', async () => {
-    let resolve1: (str: string) => void, resolve2: (str: string) => void
-    const p1 = new Promise<string>((resolve) => {
-      resolve1 = resolve
-    })
-    const p2 = new Promise<string>((resolve) => {
-      resolve2 = resolve
-    })
-    render(
-      <>
-        <Component name="C1" fixedCacheKey="test" value={p1} />
-        <Component name="C2" fixedCacheKey="test" value={p2} />
-      </>,
-      { wrapper: storeRef.wrapper },
-    )
-    const c1 = screen.getByTestId('C1')
-    const c2 = screen.getByTestId('C2')
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c2, 'status').textContent).toBe('uninitialized')
-
-    await act(async () => {
-      getByTestId(c1, 'trigger').click()
-      await Promise.resolve()
-    })
-
-    expect(getByTestId(c1, 'status').textContent).toBe('pending')
-    expect(getByTestId(c1, 'data').textContent).toBe('')
-
-    act(() => {
-      getByTestId(c2, 'trigger').click()
-    })
-
-    expect(getByTestId(c1, 'status').textContent).toBe('pending')
-    expect(getByTestId(c1, 'data').textContent).toBe('')
-
-    await act(async () => {
-      resolve1!('this should not show up any more')
-      await Promise.resolve()
-    })
-
-    await delay(150)
-
-    expect(getByTestId(c1, 'status').textContent).toBe('pending')
-    expect(getByTestId(c1, 'data').textContent).toBe('')
-
-    await act(async () => {
-      resolve2!('this should be visible')
-      await Promise.resolve()
-    })
-
-    await delay(150)
-
-    expect(getByTestId(c1, 'status').textContent).toBe('fulfilled')
-    expect(getByTestId(c1, 'data').textContent).toBe('this should be visible')
-  })
-
-  test('using fixedCacheKey should create a new cache entry', async () => {
-    api.enhanceEndpoints({
-      endpoints: {
-        send: {
-          onCacheEntryAdded: (arg) => onNewCacheEntry(arg),
-        },
-      },
-    })
-
-    render(<Component name="C1" fixedCacheKey={'testKey'} />, {
-      wrapper: storeRef.wrapper,
-    })
-
-    let c1 = screen.getByTestId('C1')
-
-    expect(getByTestId(c1, 'status').textContent).toBe('uninitialized')
-    expect(getByTestId(c1, 'originalArgs').textContent).toBe('undefined')
-
-    await act(async () => {
-      getByTestId(c1, 'trigger').click()
-      await Promise.resolve()
-    })
-
-    expect(onNewCacheEntry).toHaveBeenCalledWith('C1')
-
-    api.enhanceEndpoints({
-      endpoints: {
-        send: {
-          onCacheEntryAdded: undefined,
-        },
-      },
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tests/utils.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tests/utils.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { vi } from 'vitest'
-import { isOnline, isDocumentVisible, joinUrls } from '@internal/query/utils'
-
-afterAll(() => {
-  vi.restoreAllMocks()
-})
-
-describe('isOnline', () => {
-  test('Assumes online=true in a node env', () => {
-    vi.spyOn(window, 'navigator', 'get').mockImplementation(
-      () => undefined as any,
-    )
-
-    expect(navigator).toBeUndefined()
-    expect(isOnline()).toBe(true)
-  })
-
-  test('Returns false if navigator isOnline=false', () => {
-    vi.spyOn(window, 'navigator', 'get').mockImplementation(
-      () => ({ onLine: false }) as any,
-    )
-    expect(isOnline()).toBe(false)
-  })
-
-  test('Returns true if navigator isOnline=true', () => {
-    vi.spyOn(window, 'navigator', 'get').mockImplementation(
-      () => ({ onLine: true }) as any,
-    )
-    expect(isOnline()).toBe(true)
-  })
-})
-
-describe('isDocumentVisible', () => {
-  test('Assumes true when in a non-browser env', () => {
-    vi.spyOn(window, 'document', 'get').mockImplementation(
-      () => undefined as any,
-    )
-    expect(window.document).toBeUndefined()
-    expect(isDocumentVisible()).toBe(true)
-  })
-
-  test('Returns false when hidden=true', () => {
-    vi.spyOn(window, 'document', 'get').mockImplementation(
-      () => ({ visibilityState: 'hidden' }) as any,
-    )
-    expect(isDocumentVisible()).toBe(false)
-  })
-
-  test('Returns true when visibilityState=prerender', () => {
-    vi.spyOn(window, 'document', 'get').mockImplementation(
-      () => ({ visibilityState: 'prerender' }) as any,
-    )
-    expect(document.visibilityState).toBe('prerender')
-    expect(isDocumentVisible()).toBe(true)
-  })
-  test('Returns true when visibilityState=visible', () => {
-    vi.spyOn(window, 'document', 'get').mockImplementation(
-      () => ({ visibilityState: 'visible' }) as any,
-    )
-    expect(document.visibilityState).toBe('visible')
-    expect(isDocumentVisible()).toBe(true)
-  })
-  test('Returns true when visibilityState=undefined', () => {
-    vi.spyOn(window, 'document', 'get').mockImplementation(
-      () => ({ visibilityState: undefined }) as any,
-    )
-    expect(document.visibilityState).toBeUndefined()
-    expect(isDocumentVisible()).toBe(true)
-  })
-})
-
-describe('joinUrls', () => {
-  test.each([
-    ['/api/', '/banana', '/api/banana'],
-    ['/api/', 'banana', '/api/banana'],
-    ['/api', '/banana', '/api/banana'],
-    ['/api', 'banana', '/api/banana'],
-    ['', '/banana', '/banana'],
-    ['', 'banana', 'banana'],
-    ['api', '?a=1', 'api?a=1'],
-    ['api/', '?a=1', 'api/?a=1'],
-    ['api', 'banana?a=1', 'api/banana?a=1'],
-    ['api/', 'banana?a=1', 'api/banana?a=1'],
-    ['https://example.com/api', 'banana', 'https://example.com/api/banana'],
-    ['https://example.com/api', '/banana', 'https://example.com/api/banana'],
-    ['https://example.com/api/', 'banana', 'https://example.com/api/banana'],
-    ['https://example.com/api/', '/banana', 'https://example.com/api/banana'],
-    ['https://example.com/api/', 'https://example.org', 'https://example.org'],
-    ['https://example.com/api/', '//example.org', '//example.org'],
-  ])('%s and %s join to %s', (base, url, expected) => {
-    expect(joinUrls(base, url)).toBe(expected)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/query/tsHelpers.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/tsHelpers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-export type Id<T> = { [K in keyof T]: T[K] } & {}
-export type WithRequiredProp<T, K extends keyof T> = Omit<T, K> &
-  Required<Pick<T, K>>
-export type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never
-export function assertCast<T>(v: any): asserts v is T {}
-
-export function safeAssign<T extends object>(
-  target: T,
-  ...args: Array<Partial<NoInfer<T>>>
-): T {
-  return Object.assign(target, ...args)
-}
-
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-export type UnionToIntersection<U> = (
-  U extends any ? (k: U) => void : never
-) extends (k: infer I) => void
-  ? I
-  : never
-
-export type NonOptionalKeys<T> = {
-  [K in keyof T]-?: undefined extends T[K] ? never : K
-}[keyof T]
-
-export type HasRequiredProps<T, True, False> =
-  NonOptionalKeys<T> extends never ? False : True
-
-export type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>
-
-export type NoInfer<T> = [T][T extends any ? 0 : never]
-
-export type NonUndefined<T> = T extends undefined ? never : T
-
-export type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T
-
-export type MaybePromise<T> = T | PromiseLike<T>
-
-export type OmitFromUnion<T, K extends keyof T> = T extends any
-  ? Omit<T, K>
-  : never
-
-export type IsAny<T, True, False = never> = true | false extends (
-  T extends never ? true : false
-)
-  ? True
-  : False
-
-export type CastAny<T, CastTo> = IsAny<T, CastTo, T>
Index: de_modules/@reduxjs/toolkit/src/query/utils/capitalize.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/capitalize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export function capitalize(str: string) {
-  return str.replace(str[0], str[0].toUpperCase())
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/copyWithStructuralSharing.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/copyWithStructuralSharing.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { isPlainObject as _iPO } from '../core/rtkImports'
-
-// remove type guard
-const isPlainObject: (_: any) => boolean = _iPO
-
-export function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T
-export function copyWithStructuralSharing(oldObj: any, newObj: any): any {
-  if (
-    oldObj === newObj ||
-    !(
-      (isPlainObject(oldObj) && isPlainObject(newObj)) ||
-      (Array.isArray(oldObj) && Array.isArray(newObj))
-    )
-  ) {
-    return newObj
-  }
-  const newKeys = Object.keys(newObj)
-  const oldKeys = Object.keys(oldObj)
-
-  let isSameObject = newKeys.length === oldKeys.length
-  const mergeObj: any = Array.isArray(newObj) ? [] : {}
-  for (const key of newKeys) {
-    mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key])
-    if (isSameObject) isSameObject = oldObj[key] === mergeObj[key]
-  }
-  return isSameObject ? oldObj : mergeObj
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/countObjectKeys.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/countObjectKeys.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-// Fast method for counting an object's keys
-// without resorting to `Object.keys(obj).length
-// Will this make a big difference in perf? Probably not
-// But we can save a few allocations.
-
-export function countObjectKeys(obj: Record<any, any>) {
-  let count = 0
-
-  for (const _key in obj) {
-    count++
-  }
-
-  return count
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/filterMap.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/filterMap.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-// Preserve type guard predicate behavior when passing to mapper
-export function filterMap<T, U, S extends T = T>(
-  array: readonly T[],
-  predicate: (item: T, index: number) => item is S,
-  mapper: (item: S, index: number) => U | U[],
-): U[]
-
-export function filterMap<T, U>(
-  array: readonly T[],
-  predicate: (item: T, index: number) => boolean,
-  mapper: (item: T, index: number) => U | U[],
-): U[]
-
-export function filterMap<T, U>(
-  array: readonly T[],
-  predicate: (item: T, index: number) => boolean,
-  mapper: (item: T, index: number) => U | U[],
-): U[] {
-  return array
-    .reduce<(U | U[])[]>((acc, item, i) => {
-      if (predicate(item as any, i)) {
-        acc.push(mapper(item as any, i))
-      }
-      return acc
-    }, [])
-    .flat() as U[]
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/getCurrent.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/getCurrent.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import type { Draft } from 'immer'
-import { current, isDraft } from '../utils/immerImports'
-
-export function getCurrent<T>(value: T | Draft<T>): T {
-  return (isDraft(value) ? current(value) : value) as T
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/getOrInsert.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/getOrInsert.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-// Duplicate some of the utils in `/src/utils` to ensure
-// we don't end up dragging in larger chunks of the RTK core
-// into the RTKQ bundle
-
-export function getOrInsert<K extends object, V>(
-  map: WeakMap<K, V>,
-  key: K,
-  value: V,
-): V
-export function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V
-export function getOrInsert<K extends object, V>(
-  map: Map<K, V> | WeakMap<K, V>,
-  key: K,
-  value: V,
-): V {
-  if (map.has(key)) return map.get(key) as V
-
-  return map.set(key, value).get(key) as V
-}
-
-export function getOrInsertComputed<K extends object, V>(
-  map: WeakMap<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V
-export function getOrInsertComputed<K, V>(
-  map: Map<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V
-export function getOrInsertComputed<K extends object, V>(
-  map: Map<K, V> | WeakMap<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V {
-  if (map.has(key)) return map.get(key) as V
-
-  return map.set(key, compute(key)).get(key) as V
-}
-
-export const createNewMap = () => new Map()
Index: de_modules/@reduxjs/toolkit/src/query/utils/immerImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/immerImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export {
-  current,
-  isDraft,
-  applyPatches,
-  original,
-  isDraftable,
-  produceWithPatches,
-  enablePatches,
-} from 'immer'
Index: de_modules/@reduxjs/toolkit/src/query/utils/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export * from './capitalize'
-export * from './copyWithStructuralSharing'
-export * from './countObjectKeys'
-export * from './filterMap'
-export * from './isAbsoluteUrl'
-export * from './isDocumentVisible'
-export * from './isNotNullish'
-export * from './isOnline'
-export * from './isValidUrl'
-export * from './joinUrls'
-export * from './getOrInsert'
Index: de_modules/@reduxjs/toolkit/src/query/utils/isAbsoluteUrl.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/isAbsoluteUrl.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
- * If either :// or // is present consider it to be an absolute url
- *
- * @param url string
- */
-
-export function isAbsoluteUrl(url: string) {
-  return new RegExp(`(^|:)//`).test(url)
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/isDocumentVisible.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/isDocumentVisible.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * Assumes true for a non-browser env, otherwise makes a best effort
- * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState
- */
-export function isDocumentVisible(): boolean {
-  // `document` may not exist in non-browser envs (like RN)
-  if (typeof document === 'undefined') {
-    return true
-  }
-  // Match true for visible, prerender, undefined
-  return document.visibilityState !== 'hidden'
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/isNotNullish.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/isNotNullish.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function isNotNullish<T>(v: T | null | undefined): v is T {
-  return v != null
-}
-
-export function filterNullishValues<T>(map?: Map<any, T>) {
-  return [...(map?.values() ?? [])].filter(isNotNullish) as NonNullable<T>[]
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/isOnline.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/isOnline.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * Assumes a browser is online if `undefined`, otherwise makes a best effort
- * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine
- */
-export function isOnline() {
-  // We set the default config value in the store, so we'd need to check for this in a SSR env
-  return typeof navigator === 'undefined'
-    ? true
-    : navigator.onLine === undefined
-      ? true
-      : navigator.onLine
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/isValidUrl.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/isValidUrl.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export function isValidUrl(string: string) {
-  try {
-    new URL(string)
-  } catch (_) {
-    return false
-  }
-
-  return true
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/joinUrls.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/joinUrls.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { isAbsoluteUrl } from './isAbsoluteUrl'
-
-const withoutTrailingSlash = (url: string) => url.replace(/\/$/, '')
-const withoutLeadingSlash = (url: string) => url.replace(/^\//, '')
-
-export function joinUrls(
-  base: string | undefined,
-  url: string | undefined,
-): string {
-  if (!base) {
-    return url!
-  }
-  if (!url) {
-    return base
-  }
-
-  if (isAbsoluteUrl(url)) {
-    return url
-  }
-
-  const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : ''
-  base = withoutTrailingSlash(base)
-  url = withoutLeadingSlash(url)
-
-  return `${base}${delimiter}${url}`
-}
Index: de_modules/@reduxjs/toolkit/src/query/utils/signals.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/query/utils/signals.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-// AbortSignal.timeout() is currently baseline 2024
-export const timeoutSignal = (milliseconds: number) => {
-  const abortController = new AbortController()
-  setTimeout(() => {
-    const message = 'signal timed out'
-    const name = 'TimeoutError'
-    abortController.abort(
-      // some environments (React Native, Node) don't have DOMException
-      typeof DOMException !== 'undefined'
-        ? new DOMException(message, name)
-        : Object.assign(new Error(message), { name }),
-    )
-  }, milliseconds)
-  return abortController.signal
-}
-
-// AbortSignal.any() is currently baseline 2024
-export const anySignal = (...signals: AbortSignal[]) => {
-  // if any are already aborted, return an already aborted signal
-  for (const signal of signals)
-    if (signal.aborted) return AbortSignal.abort(signal.reason)
-
-  // otherwise, create a new signal that aborts when any of the given signals abort
-  const abortController = new AbortController()
-  for (const signal of signals) {
-    signal.addEventListener(
-      'abort',
-      () => abortController.abort(signal.reason),
-      { signal: abortController.signal, once: true },
-    )
-  }
-  return abortController.signal
-}
Index: de_modules/@reduxjs/toolkit/src/react/index.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/react/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-// This must remain here so that the `mangleErrors.cjs` build script
-// does not have to import this into each source file it rewrites.
-import { formatProdErrorMessage } from '@reduxjs/toolkit'
-export * from '@reduxjs/toolkit'
-
-export { createDynamicMiddleware } from '../dynamicMiddleware/react'
-export type { CreateDispatchWithMiddlewareHook } from '../dynamicMiddleware/react/index'
Index: de_modules/@reduxjs/toolkit/src/reduxImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/reduxImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export {
-  createStore,
-  combineReducers,
-  applyMiddleware,
-  compose,
-  isPlainObject,
-  isAction,
-} from 'redux'
Index: de_modules/@reduxjs/toolkit/src/reselectImports.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/reselectImports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { createSelectorCreator, weakMapMemoize } from 'reselect'
Index: de_modules/@reduxjs/toolkit/src/serializableStateInvariantMiddleware.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/serializableStateInvariantMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,285 +1,0 @@
-import type { Middleware } from 'redux'
-import { isAction, isPlainObject } from './reduxImports'
-import { getTimeMeasureUtils } from './utils'
-
-/**
- * Returns true if the passed value is "plain", i.e. a value that is either
- * directly JSON-serializable (boolean, number, string, array, plain object)
- * or `undefined`.
- *
- * @param val The value to check.
- *
- * @public
- */
-export function isPlain(val: any) {
-  const type = typeof val
-  return (
-    val == null ||
-    type === 'string' ||
-    type === 'boolean' ||
-    type === 'number' ||
-    Array.isArray(val) ||
-    isPlainObject(val)
-  )
-}
-
-interface NonSerializableValue {
-  keyPath: string
-  value: unknown
-}
-
-export type IgnorePaths = readonly (string | RegExp)[]
-
-/**
- * @public
- */
-export function findNonSerializableValue(
-  value: unknown,
-  path: string = '',
-  isSerializable: (value: unknown) => boolean = isPlain,
-  getEntries?: (value: unknown) => [string, any][],
-  ignoredPaths: IgnorePaths = [],
-  cache?: WeakSet<object>,
-): NonSerializableValue | false {
-  let foundNestedSerializable: NonSerializableValue | false
-
-  if (!isSerializable(value)) {
-    return {
-      keyPath: path || '<root>',
-      value: value,
-    }
-  }
-
-  if (typeof value !== 'object' || value === null) {
-    return false
-  }
-
-  if (cache?.has(value)) return false
-
-  const entries = getEntries != null ? getEntries(value) : Object.entries(value)
-
-  const hasIgnoredPaths = ignoredPaths.length > 0
-
-  for (const [key, nestedValue] of entries) {
-    const nestedPath = path ? path + '.' + key : key
-
-    if (hasIgnoredPaths) {
-      const hasMatches = ignoredPaths.some((ignored) => {
-        if (ignored instanceof RegExp) {
-          return ignored.test(nestedPath)
-        }
-        return nestedPath === ignored
-      })
-      if (hasMatches) {
-        continue
-      }
-    }
-
-    if (!isSerializable(nestedValue)) {
-      return {
-        keyPath: nestedPath,
-        value: nestedValue,
-      }
-    }
-
-    if (typeof nestedValue === 'object') {
-      foundNestedSerializable = findNonSerializableValue(
-        nestedValue,
-        nestedPath,
-        isSerializable,
-        getEntries,
-        ignoredPaths,
-        cache,
-      )
-
-      if (foundNestedSerializable) {
-        return foundNestedSerializable
-      }
-    }
-  }
-
-  if (cache && isNestedFrozen(value)) cache.add(value)
-
-  return false
-}
-
-export function isNestedFrozen(value: object) {
-  if (!Object.isFrozen(value)) return false
-
-  for (const nestedValue of Object.values(value)) {
-    if (typeof nestedValue !== 'object' || nestedValue === null) continue
-
-    if (!isNestedFrozen(nestedValue)) return false
-  }
-
-  return true
-}
-
-/**
- * Options for `createSerializableStateInvariantMiddleware()`.
- *
- * @public
- */
-export interface SerializableStateInvariantMiddlewareOptions {
-  /**
-   * The function to check if a value is considered serializable. This
-   * function is applied recursively to every value contained in the
-   * state. Defaults to `isPlain()`.
-   */
-  isSerializable?: (value: any) => boolean
-  /**
-   * The function that will be used to retrieve entries from each
-   * value.  If unspecified, `Object.entries` will be used. Defaults
-   * to `undefined`.
-   */
-  getEntries?: (value: any) => [string, any][]
-
-  /**
-   * An array of action types to ignore when checking for serializability.
-   * Defaults to []
-   */
-  ignoredActions?: string[]
-
-  /**
-   * An array of dot-separated path strings or regular expressions to ignore
-   * when checking for serializability, Defaults to
-   * ['meta.arg', 'meta.baseQueryMeta']
-   */
-  ignoredActionPaths?: (string | RegExp)[]
-
-  /**
-   * An array of dot-separated path strings or regular expressions to ignore
-   * when checking for serializability, Defaults to []
-   */
-  ignoredPaths?: (string | RegExp)[]
-  /**
-   * Execution time warning threshold. If the middleware takes longer
-   * than `warnAfter` ms, a warning will be displayed in the console.
-   * Defaults to 32ms.
-   */
-  warnAfter?: number
-
-  /**
-   * Opt out of checking state. When set to `true`, other state-related params will be ignored.
-   */
-  ignoreState?: boolean
-
-  /**
-   * Opt out of checking actions. When set to `true`, other action-related params will be ignored.
-   */
-  ignoreActions?: boolean
-
-  /**
-   * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.
-   * The cache is automatically disabled if no browser support for WeakSet is present.
-   */
-  disableCache?: boolean
-}
-
-/**
- * Creates a middleware that, after every state change, checks if the new
- * state is serializable. If a non-serializable value is found within the
- * state, an error is printed to the console.
- *
- * @param options Middleware options.
- *
- * @public
- */
-export function createSerializableStateInvariantMiddleware(
-  options: SerializableStateInvariantMiddlewareOptions = {},
-): Middleware {
-  if (process.env.NODE_ENV === 'production') {
-    return () => (next) => (action) => next(action)
-  } else {
-    const {
-      isSerializable = isPlain,
-      getEntries,
-      ignoredActions = [],
-      ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],
-      ignoredPaths = [],
-      warnAfter = 32,
-      ignoreState = false,
-      ignoreActions = false,
-      disableCache = false,
-    } = options
-
-    const cache: WeakSet<object> | undefined =
-      !disableCache && WeakSet ? new WeakSet() : undefined
-
-    return (storeAPI) => (next) => (action) => {
-      if (!isAction(action)) {
-        return next(action)
-      }
-
-      const result = next(action)
-
-      const measureUtils = getTimeMeasureUtils(
-        warnAfter,
-        'SerializableStateInvariantMiddleware',
-      )
-
-      if (
-        !ignoreActions &&
-        !(
-          ignoredActions.length &&
-          ignoredActions.indexOf(action.type as any) !== -1
-        )
-      ) {
-        measureUtils.measureTime(() => {
-          const foundActionNonSerializableValue = findNonSerializableValue(
-            action,
-            '',
-            isSerializable,
-            getEntries,
-            ignoredActionPaths,
-            cache,
-          )
-
-          if (foundActionNonSerializableValue) {
-            const { keyPath, value } = foundActionNonSerializableValue
-
-            console.error(
-              `A non-serializable value was detected in an action, in the path: \`${keyPath}\`. Value:`,
-              value,
-              '\nTake a look at the logic that dispatched this action: ',
-              action,
-              '\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)',
-              '\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)',
-            )
-          }
-        })
-      }
-
-      if (!ignoreState) {
-        measureUtils.measureTime(() => {
-          const state = storeAPI.getState()
-
-          const foundStateNonSerializableValue = findNonSerializableValue(
-            state,
-            '',
-            isSerializable,
-            getEntries,
-            ignoredPaths,
-            cache,
-          )
-
-          if (foundStateNonSerializableValue) {
-            const { keyPath, value } = foundStateNonSerializableValue
-
-            console.error(
-              `A non-serializable value was detected in the state, in the path: \`${keyPath}\`. Value:`,
-              value,
-              `
-Take a look at the reducer(s) handling this action type: ${action.type}.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`,
-            )
-          }
-        })
-
-        measureUtils.warnIfExceeded()
-      }
-
-      return result
-    }
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/tests/Tuple.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/Tuple.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-import { Tuple } from '@reduxjs/toolkit'
-
-describe('type tests', () => {
-  test('compatibility is checked between described types', () => {
-    const stringTuple = new Tuple('')
-
-    expectTypeOf(stringTuple).toEqualTypeOf<Tuple<[string]>>()
-
-    expectTypeOf(stringTuple).toMatchTypeOf<Tuple<string[]>>()
-
-    expectTypeOf(stringTuple).not.toMatchTypeOf<Tuple<[string, string]>>()
-
-    const numberTuple = new Tuple(0, 1)
-
-    expectTypeOf(numberTuple).not.toMatchTypeOf<Tuple<string[]>>()
-  })
-
-  test('concat is inferred properly', () => {
-    const singleString = new Tuple('')
-
-    expectTypeOf(singleString).toEqualTypeOf<Tuple<[string]>>()
-
-    expectTypeOf(singleString.concat('')).toEqualTypeOf<
-      Tuple<[string, string]>
-    >()
-
-    expectTypeOf(singleString.concat([''] as const)).toMatchTypeOf<
-      Tuple<[string, string]>
-    >()
-  })
-
-  test('prepend is inferred properly', () => {
-    const singleString = new Tuple('')
-
-    expectTypeOf(singleString).toEqualTypeOf<Tuple<[string]>>()
-
-    expectTypeOf(singleString.prepend('')).toEqualTypeOf<
-      Tuple<[string, string]>
-    >()
-
-    expectTypeOf(singleString.prepend([''] as const)).toMatchTypeOf<
-      Tuple<[string, string]>
-    >()
-  })
-
-  test('push must match existing items', () => {
-    const stringTuple = new Tuple('')
-
-    expectTypeOf(stringTuple.push).toBeCallableWith('')
-
-    expectTypeOf(stringTuple.push).parameter(0).not.toBeNumber()
-  })
-
-  test('Tuples can be combined', () => {
-    const stringTuple = new Tuple('')
-
-    const numberTuple = new Tuple(0, 1)
-
-    expectTypeOf(stringTuple.concat(numberTuple)).toEqualTypeOf<
-      Tuple<[string, number, number]>
-    >()
-
-    expectTypeOf(stringTuple.prepend(numberTuple)).toEqualTypeOf<
-      Tuple<[number, number, string]>
-    >()
-
-    expectTypeOf(numberTuple.concat(stringTuple)).toEqualTypeOf<
-      Tuple<[number, number, string]>
-    >()
-
-    expectTypeOf(numberTuple.prepend(stringTuple)).toEqualTypeOf<
-      Tuple<[string, number, number]>
-    >()
-
-    expectTypeOf(stringTuple.prepend(numberTuple)).not.toMatchTypeOf<
-      Tuple<[string, number, number]>
-    >()
-
-    expectTypeOf(stringTuple.concat(numberTuple)).not.toMatchTypeOf<
-      Tuple<[number, number, string]>
-    >()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/actionCreatorInvariantMiddleware.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/actionCreatorInvariantMiddleware.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import type { ActionCreatorInvariantMiddlewareOptions } from '@internal/actionCreatorInvariantMiddleware'
-import { getMessage } from '@internal/actionCreatorInvariantMiddleware'
-import { createActionCreatorInvariantMiddleware } from '@internal/actionCreatorInvariantMiddleware'
-import type { MiddlewareAPI } from '@reduxjs/toolkit'
-import { createAction } from '@reduxjs/toolkit'
-
-describe('createActionCreatorInvariantMiddleware', () => {
-  const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
-
-  afterEach(() => {
-    consoleSpy.mockClear()
-  })
-  afterAll(() => {
-    consoleSpy.mockRestore()
-  })
-
-  const dummyAction = createAction('aSlice/anAction')
-
-  it('sends the action through the middleware chain', () => {
-    const next = vi.fn()
-    const dispatch = createActionCreatorInvariantMiddleware()(
-      {} as MiddlewareAPI,
-    )(next)
-    dispatch({ type: 'SOME_ACTION' })
-
-    expect(next).toHaveBeenCalledWith({
-      type: 'SOME_ACTION',
-    })
-  })
-
-  const makeActionTester = (
-    options?: ActionCreatorInvariantMiddlewareOptions,
-  ) =>
-    createActionCreatorInvariantMiddleware(options)({} as MiddlewareAPI)(
-      (action) => action,
-    )
-
-  it('logs a warning to console if an action creator is mistakenly dispatched', () => {
-    const testAction = makeActionTester()
-
-    testAction(dummyAction())
-
-    expect(consoleSpy).not.toHaveBeenCalled()
-
-    testAction(dummyAction)
-
-    expect(consoleSpy).toHaveBeenLastCalledWith(getMessage(dummyAction.type))
-  })
-
-  it('allows passing a custom predicate', () => {
-    let predicateCalled = false
-    const testAction = makeActionTester({
-      isActionCreator(action): action is Function {
-        predicateCalled = true
-        return false
-      },
-    })
-    testAction(dummyAction())
-    expect(predicateCalled).toBe(true)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/autoBatchEnhancer.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/autoBatchEnhancer.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,208 +1,0 @@
-import { configureStore } from '../configureStore'
-import { createSlice } from '../createSlice'
-import type { AutoBatchOptions } from '../autoBatchEnhancer'
-import { autoBatchEnhancer, prepareAutoBatched } from '../autoBatchEnhancer'
-import { delay } from '../utils'
-import { debounce } from 'lodash'
-
-interface CounterState {
-  value: number
-}
-
-const counterSlice = createSlice({
-  name: 'counter',
-  initialState: { value: 0 } as CounterState,
-  reducers: {
-    incrementBatched: {
-      // Batched, low-priority
-      reducer(state) {
-        state.value += 1
-      },
-      prepare: prepareAutoBatched<void>(),
-    },
-    // Not batched, normal priority
-    decrementUnbatched(state) {
-      state.value -= 1
-    },
-  },
-})
-const { incrementBatched, decrementUnbatched } = counterSlice.actions
-
-const makeStore = (autoBatchOptions?: AutoBatchOptions) => {
-  return configureStore({
-    reducer: counterSlice.reducer,
-    enhancers: (getDefaultEnhancers) =>
-      getDefaultEnhancers({
-        autoBatch: autoBatchOptions,
-      }),
-  })
-}
-
-let store: ReturnType<typeof makeStore>
-
-let subscriptionNotifications = 0
-
-const cases: AutoBatchOptions[] = [
-  { type: 'tick' },
-  { type: 'raf' },
-  { type: 'timer', timeout: 0 },
-  { type: 'timer', timeout: 10 },
-  { type: 'timer', timeout: 20 },
-  {
-    type: 'callback',
-    queueNotification: debounce((notify: () => void) => {
-      notify()
-    }, 5),
-  },
-]
-
-describe.each(cases)('autoBatchEnhancer: %j', (autoBatchOptions) => {
-  beforeEach(() => {
-    subscriptionNotifications = 0
-    store = makeStore(autoBatchOptions)
-
-    store.subscribe(() => {
-      subscriptionNotifications++
-    })
-  })
-  test('Does not alter normal subscription notification behavior', async () => {
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(1)
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(2)
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(3)
-    store.dispatch(decrementUnbatched())
-
-    await delay(25)
-
-    expect(subscriptionNotifications).toBe(4)
-  })
-
-  test('Only notifies once if several batched actions are dispatched in a row', async () => {
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(incrementBatched())
-
-    await delay(25)
-
-    expect(subscriptionNotifications).toBe(1)
-  })
-
-  test('Notifies immediately if a non-batched action is dispatched', async () => {
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(1)
-    store.dispatch(incrementBatched())
-
-    await delay(25)
-
-    expect(subscriptionNotifications).toBe(2)
-  })
-
-  test('Does not notify at end of tick if last action was normal priority', async () => {
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(incrementBatched())
-    expect(subscriptionNotifications).toBe(0)
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(1)
-    store.dispatch(incrementBatched())
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(2)
-    store.dispatch(decrementUnbatched())
-    expect(subscriptionNotifications).toBe(3)
-
-    await delay(25)
-
-    expect(subscriptionNotifications).toBe(3)
-  })
-})
-
-describe.each(cases)(
-  'autoBatchEnhancer with fake timers: %j',
-  (autoBatchOptions) => {
-    beforeAll(() => {
-      vitest.useFakeTimers({
-        toFake: ['setTimeout', 'queueMicrotask', 'requestAnimationFrame'],
-      })
-    })
-    afterAll(() => {
-      vitest.useRealTimers()
-    })
-    beforeEach(() => {
-      subscriptionNotifications = 0
-      store = makeStore(autoBatchOptions)
-
-      store.subscribe(() => {
-        subscriptionNotifications++
-      })
-    })
-    test('Does not alter normal subscription notification behavior', () => {
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(1)
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(2)
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(3)
-      store.dispatch(decrementUnbatched())
-
-      vitest.runAllTimers()
-
-      expect(subscriptionNotifications).toBe(4)
-    })
-
-    test('Only notifies once if several batched actions are dispatched in a row', () => {
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(incrementBatched())
-
-      vitest.runAllTimers()
-
-      expect(subscriptionNotifications).toBe(1)
-    })
-
-    test('Notifies immediately if a non-batched action is dispatched', () => {
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(1)
-      store.dispatch(incrementBatched())
-
-      vitest.runAllTimers()
-
-      expect(subscriptionNotifications).toBe(2)
-    })
-
-    test('Does not notify at end of tick if last action was normal priority', () => {
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(incrementBatched())
-      expect(subscriptionNotifications).toBe(0)
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(1)
-      store.dispatch(incrementBatched())
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(2)
-      store.dispatch(decrementUnbatched())
-      expect(subscriptionNotifications).toBe(3)
-
-      vitest.runAllTimers()
-
-      expect(subscriptionNotifications).toBe(3)
-    })
-  },
-)
Index: de_modules/@reduxjs/toolkit/src/tests/combineSlices.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/combineSlices.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,284 +1,0 @@
-import type {
-  Action,
-  Reducer,
-  Slice,
-  WithSlice,
-  WithSlicePreloadedState,
-} from '@reduxjs/toolkit'
-import { combineSlices } from '@reduxjs/toolkit'
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
-
-declare const stringSlice: Slice<string, {}, 'string'>
-
-declare const numberSlice: Slice<number, {}, 'number'>
-
-declare const booleanReducer: Reducer<boolean>
-
-declare const mixedReducer: Reducer<string, Action, number>
-
-declare const mixedSliceLike: {
-  reducerPath: 'mixedSlice'
-  reducer: typeof mixedReducer
-}
-
-const exampleApi = createApi({
-  baseQuery: fetchBaseQuery(),
-  endpoints: (build) => ({
-    getThing: build.query({
-      query: () => '',
-    }),
-  }),
-})
-
-type ExampleApiState = ReturnType<typeof exampleApi.reducer>
-
-describe('type tests', () => {
-  test('combineSlices correctly combines static state', () => {
-    const rootReducer = combineSlices(
-      stringSlice,
-      numberSlice,
-      exampleApi,
-      {
-        boolean: booleanReducer,
-        mixed: mixedReducer,
-      },
-      mixedSliceLike,
-    )
-
-    expectTypeOf(rootReducer(undefined, { type: '' })).toEqualTypeOf<{
-      string: string
-      number: number
-      boolean: boolean
-      api: ExampleApiState
-      mixed: string
-      mixedSlice: string
-    }>()
-
-    // test for correct preloaded state handling
-    expectTypeOf(rootReducer).toBeCallableWith(
-      { mixed: 9, mixedSlice: 9 },
-      { type: '' },
-    )
-  })
-
-  test('combineSlices allows passing no initial reducers', () => {
-    const rootReducer = combineSlices()
-
-    expectTypeOf(rootReducer(undefined, { type: '' })).toEqualTypeOf<{}>()
-
-    const declaredLazy =
-      combineSlices().withLazyLoadedSlices<WithSlice<typeof numberSlice>>()
-
-    expectTypeOf(declaredLazy(undefined, { type: '' })).toEqualTypeOf<{
-      number?: number
-    }>()
-  })
-
-  test('withLazyLoadedSlices adds partial to state', () => {
-    const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<
-      WithSlice<typeof numberSlice> & WithSlice<typeof exampleApi>
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).number).toEqualTypeOf<
-      number | undefined
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).api).toEqualTypeOf<
-      ExampleApiState | undefined
-    >()
-  })
-
-  test('inject marks injected keys as required', () => {
-    const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<
-      WithSlice<typeof numberSlice> &
-        WithSlice<typeof exampleApi> & { boolean: boolean } & WithSlice<
-          typeof mixedSliceLike
-        > &
-        WithSlice<{
-          reducerPath: 'mixedReducer'
-          reducer: typeof mixedReducer
-        }>,
-      WithSlicePreloadedState<typeof numberSlice> &
-        WithSlicePreloadedState<typeof exampleApi> & {
-          boolean: boolean
-        } & WithSlicePreloadedState<typeof mixedSliceLike> &
-        WithSlicePreloadedState<{
-          reducerPath: 'mixedReducer'
-          reducer: typeof mixedReducer
-        }>
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).number).toEqualTypeOf<
-      number | undefined
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).boolean).toEqualTypeOf<
-      boolean | undefined
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).api).toEqualTypeOf<
-      ExampleApiState | undefined
-    >()
-
-    expectTypeOf(rootReducer(undefined, { type: '' }).mixedSlice).toEqualTypeOf<
-      string | undefined
-    >()
-
-    expectTypeOf(
-      rootReducer(undefined, { type: '' }).mixedReducer,
-    ).toEqualTypeOf<string | undefined>()
-
-    const withNumber = rootReducer.inject(numberSlice)
-
-    expectTypeOf(withNumber(undefined, { type: '' }).number).toBeNumber()
-
-    const withBool = rootReducer.inject({
-      reducerPath: 'boolean' as const,
-      reducer: booleanReducer,
-    })
-
-    expectTypeOf(withBool(undefined, { type: '' }).boolean).toBeBoolean()
-
-    const withApi = rootReducer.inject(exampleApi)
-
-    expectTypeOf(
-      withApi(undefined, { type: '' }).api,
-    ).toEqualTypeOf<ExampleApiState>()
-
-    const withMixedSlice = rootReducer.inject(mixedSliceLike)
-
-    expectTypeOf(
-      withMixedSlice(undefined, { type: '' }).mixedSlice,
-    ).toBeString()
-
-    const withMixedReducer = rootReducer.inject({
-      reducerPath: 'mixedReducer',
-      reducer: mixedReducer,
-    })
-
-    expectTypeOf(
-      withMixedReducer(undefined, { type: '' }).mixedReducer,
-    ).toBeString()
-  })
-
-  test('selector() allows defining selectors with injected reducers defined', () => {
-    const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<
-      WithSlice<typeof numberSlice> & { boolean: boolean }
-    >()
-
-    type RootState = ReturnType<typeof rootReducer>
-
-    const withoutInjection = rootReducer.selector(
-      (state: RootState) => state.number,
-    )
-
-    expectTypeOf(
-      withoutInjection(rootReducer(undefined, { type: '' })),
-    ).toEqualTypeOf<number | undefined>()
-
-    const withInjection = rootReducer
-      .inject(numberSlice)
-      .selector((state) => state.number)
-
-    expectTypeOf(
-      withInjection(rootReducer(undefined, { type: '' })),
-    ).toBeNumber()
-  })
-
-  test('selector() passes arguments through', () => {
-    const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<
-      WithSlice<typeof numberSlice> & { boolean: boolean }
-    >()
-
-    const selector = rootReducer
-      .inject(numberSlice)
-      .selector((state, num: number) => state.number)
-
-    const state = rootReducer(undefined, { type: '' })
-
-    expectTypeOf(selector).toBeCallableWith(state, 0)
-
-    // required argument
-    expectTypeOf(selector).parameters.not.toMatchTypeOf([state])
-
-    // number not string
-    expectTypeOf(selector).parameters.not.toMatchTypeOf([state, ''])
-  })
-
-  test('nested calls inferred correctly', () => {
-    const innerReducer =
-      combineSlices(stringSlice).withLazyLoadedSlices<
-        WithSlice<typeof numberSlice>
-      >()
-
-    const innerSelector = innerReducer.inject(numberSlice).selector(
-      (state) => state.number,
-      (rootState: RootState) => rootState.inner,
-    )
-
-    const outerReducer = combineSlices({ inner: innerReducer })
-
-    type RootState = ReturnType<typeof outerReducer>
-
-    expectTypeOf(outerReducer(undefined, { type: '' })).toMatchTypeOf<{
-      inner: { string: string }
-    }>()
-
-    expectTypeOf(
-      innerSelector(outerReducer(undefined, { type: '' })),
-    ).toBeNumber()
-  })
-
-  test('selector errors if selectorFn and selectState are mismatched', () => {
-    const combinedReducer =
-      combineSlices(stringSlice).withLazyLoadedSlices<
-        WithSlice<typeof numberSlice>
-      >()
-
-    const outerReducer = combineSlices({ inner: combinedReducer })
-
-    type RootState = ReturnType<typeof outerReducer>
-
-    combinedReducer.selector(
-      (state) => state.number,
-      // @ts-expect-error wrong state returned
-      (rootState: RootState) => rootState.inner.number,
-    )
-
-    combinedReducer.selector(
-      (state, num: number) => state.number,
-      // @ts-expect-error wrong arguments
-      (rootState: RootState, str: string) => rootState.inner,
-    )
-
-    combinedReducer.selector(
-      (state, num: number) => state.number,
-      (rootState: RootState) => rootState.inner,
-    )
-
-    // TODO: see if there's a way of making this work
-    // probably a rare case so not the end of the world if not
-    combinedReducer.selector(
-      (state) => state.number,
-      // @ts-ignore
-      (rootState: RootState, num: number) => rootState.inner,
-    )
-  })
-
-  test('correct type of state is inferred when not declared via `withLazyLoadedSlices`', () => {
-    // Related to https://github.com/reduxjs/redux-toolkit/issues/4171
-
-    const combinedReducer = combineSlices(stringSlice)
-
-    const withNumber = combinedReducer.inject(numberSlice)
-
-    expectTypeOf(withNumber).returns.toEqualTypeOf<{
-      string: string
-      number: number
-    }>()
-
-    expectTypeOf(
-      withNumber(undefined, { type: '' }).number,
-    ).toMatchTypeOf<number>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/combineSlices.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/combineSlices.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,215 +1,0 @@
-import type { WithSlice } from '@reduxjs/toolkit'
-import {
-  combineSlices,
-  createAction,
-  createReducer,
-  createSlice,
-} from '@reduxjs/toolkit'
-
-const dummyAction = createAction<void>('dummy')
-
-const stringSlice = createSlice({
-  name: 'string',
-  initialState: '',
-  reducers: {},
-})
-
-const numberSlice = createSlice({
-  name: 'number',
-  initialState: 0,
-  reducers: {},
-})
-
-const booleanReducer = createReducer(false, () => {})
-
-const counterReducer = createSlice({
-  name: 'counter',
-  initialState: () => ({ value: 0 }),
-  reducers: {},
-})
-
-// mimic - we can't use RTKQ here directly
-const api = {
-  reducerPath: 'api' as const,
-  reducer: createReducer(
-    {
-      queries: {},
-      mutations: {},
-      provided: {},
-      subscriptions: {},
-      config: {
-        reducerPath: 'api',
-        invalidationBehavior: 'delayed',
-        online: false,
-        focused: false,
-        keepUnusedDataFor: 60,
-        middlewareRegistered: false,
-        refetchOnMountOrArgChange: false,
-        refetchOnReconnect: false,
-        refetchOnFocus: false,
-      },
-    },
-    () => {},
-  ),
-}
-
-describe('combineSlices', () => {
-  it('calls combineReducers to combine static slices/reducers', () => {
-    const combinedReducer = combineSlices(
-      stringSlice,
-      {
-        num: numberSlice.reducer,
-        boolean: booleanReducer,
-      },
-      api,
-    )
-    expect(combinedReducer(undefined, dummyAction())).toEqual({
-      string: stringSlice.getInitialState(),
-      num: numberSlice.getInitialState(),
-      boolean: booleanReducer.getInitialState(),
-      api: api.reducer.getInitialState(),
-    })
-  })
-  it('allows passing no initial reducers', () => {
-    const combinedReducer = combineSlices()
-
-    const result = combinedReducer(undefined, dummyAction())
-
-    expect(result).toEqual({})
-
-    // no-op if we have no reducers yet
-    expect(combinedReducer(result, dummyAction())).toBe(result)
-  })
-  describe('injects', () => {
-    beforeEach(() => {
-      vi.stubEnv('NODE_ENV', 'development')
-
-      return vi.unstubAllEnvs
-    })
-
-    it('injects slice', () => {
-      const combinedReducer =
-        combineSlices(stringSlice).withLazyLoadedSlices<
-          WithSlice<typeof numberSlice>
-        >()
-
-      expect(combinedReducer(undefined, dummyAction()).number).toBe(undefined)
-
-      const injectedReducer = combinedReducer.inject(numberSlice)
-
-      expect(injectedReducer(undefined, dummyAction()).number).toBe(
-        numberSlice.getInitialState(),
-      )
-    })
-    it('logs error when same name is used for different reducers', () => {
-      const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
-      const combinedReducer = combineSlices(stringSlice).withLazyLoadedSlices<{
-        boolean: boolean
-      }>()
-
-      combinedReducer.inject({
-        reducerPath: 'boolean' as const,
-        reducer: booleanReducer,
-      })
-
-      combinedReducer.inject({
-        reducerPath: 'boolean' as const,
-        reducer: booleanReducer,
-      })
-
-      expect(consoleSpy).not.toHaveBeenCalled()
-
-      combinedReducer.inject({
-        reducerPath: 'boolean' as const,
-        // @ts-expect-error wrong reducer
-        reducer: stringSlice.reducer,
-      })
-
-      expect(consoleSpy).toHaveBeenCalledWith(
-        `called \`inject\` to override already-existing reducer boolean without specifying \`overrideExisting: true\``,
-      )
-      consoleSpy.mockRestore()
-    })
-    it('allows replacement of reducers if overrideExisting is true', () => {
-      const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
-      const combinedReducer = combineSlices(stringSlice).withLazyLoadedSlices<
-        WithSlice<typeof numberSlice> &
-          WithSlice<typeof api> & { boolean: boolean }
-      >()
-
-      combinedReducer.inject(numberSlice)
-
-      combinedReducer.inject(
-        { reducerPath: 'number' as const, reducer: () => 0 },
-        { overrideExisting: true },
-      )
-
-      expect(consoleSpy).not.toHaveBeenCalled()
-    })
-  })
-  describe('selector', () => {
-    const combinedReducer = combineSlices(stringSlice).withLazyLoadedSlices<{
-      boolean: boolean
-      counter: { value: number }
-    }>()
-
-    const uninjectedState = combinedReducer(undefined, dummyAction())
-
-    const injectedReducer = combinedReducer.inject({
-      reducerPath: 'boolean' as const,
-      reducer: booleanReducer,
-    })
-
-    it('ensures state is defined in selector even if action has not been dispatched', () => {
-      expect(uninjectedState.boolean).toBe(undefined)
-
-      const selectBoolean = injectedReducer.selector((state) => state.boolean)
-
-      expect(selectBoolean(uninjectedState)).toBe(
-        booleanReducer.getInitialState(),
-      )
-    })
-    it('exposes original to allow for logging', () => {
-      const selectBoolean = injectedReducer.selector(
-        (state) => injectedReducer.selector.original(state).boolean,
-      )
-      expect(selectBoolean(uninjectedState)).toBe(undefined)
-    })
-    it('throws if original is called on something other than state proxy', () => {
-      expect(() => injectedReducer.selector.original({} as any)).toThrow(
-        'original must be used on state Proxy',
-      )
-    })
-    it('allows passing a selectState selector, to handle nested state', () => {
-      const wrappedReducer = combineSlices({
-        inner: combinedReducer,
-      })
-
-      type RootState = ReturnType<typeof wrappedReducer>
-
-      const selector = injectedReducer.selector(
-        (state) => state.boolean,
-        (rootState: RootState) => rootState.inner,
-      )
-
-      expect(selector(wrappedReducer(undefined, dummyAction()))).toBe(
-        booleanReducer.getInitialState(),
-      )
-    })
-    it('caches initial state', () => {
-      const beforeInject = combinedReducer(undefined, dummyAction())
-      const injectedReducer = combinedReducer.inject(counterReducer)
-      const selectCounter = injectedReducer.selector((state) => state.counter)
-      const counter = selectCounter(beforeInject)
-      expect(counter).toBe(selectCounter(beforeInject))
-
-      injectedReducer.inject(
-        { reducerPath: 'counter', reducer: () => ({ value: 0 }) },
-        { overrideExisting: true },
-      )
-      const counter2 = selectCounter(beforeInject)
-      expect(counter2).not.toBe(counter)
-      expect(counter2).toBe(selectCounter(beforeInject))
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/combinedTest.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/combinedTest.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,133 +1,0 @@
-import type { PayloadAction } from '@reduxjs/toolkit'
-import {
-  createAsyncThunk,
-  createAction,
-  createSlice,
-  configureStore,
-  createEntityAdapter,
-} from '@reduxjs/toolkit'
-import type { EntityAdapter } from '@internal/entities/models'
-import type { BookModel } from '@internal/entities/tests/fixtures/book'
-
-describe('Combined entity slice', () => {
-  let adapter: EntityAdapter<BookModel, string>
-
-  beforeEach(() => {
-    adapter = createEntityAdapter({
-      selectId: (book: BookModel) => book.id,
-      sortComparer: (a, b) => a.title.localeCompare(b.title),
-    })
-  })
-
-  it('Entity and async features all works together', async () => {
-    const upsertBook = createAction<BookModel>('otherBooks/upsert')
-
-    type BooksState = ReturnType<typeof adapter.getInitialState> & {
-      loading: 'initial' | 'pending' | 'finished' | 'failed'
-      lastRequestId: string | null
-    }
-
-    const initialState: BooksState = adapter.getInitialState({
-      loading: 'initial',
-      lastRequestId: null,
-    })
-
-    const fakeBooks: BookModel[] = [
-      { id: 'b', title: 'Second' },
-      { id: 'a', title: 'First' },
-    ]
-
-    const fetchBooksTAC = createAsyncThunk<
-      BookModel[],
-      void,
-      {
-        state: { books: BooksState }
-      }
-    >(
-      'books/fetch',
-      async (arg, { getState, dispatch, extra, requestId, signal }) => {
-        const state = getState()
-        return fakeBooks
-      },
-    )
-
-    const booksSlice = createSlice({
-      name: 'books',
-      initialState,
-      reducers: {
-        addOne: adapter.addOne,
-        removeOne(state, action: PayloadAction<string>) {
-          const sizeBefore = state.ids.length
-          // Originally, having nested `produce` calls don't mutate `state` here as I would have expected.
-          // (note that `state` here is actually an Immer Draft<S>, from `createReducer`)
-          // One woarkound was to return the new plain result value instead
-          // See https://github.com/immerjs/immer/issues/533
-          // However, after tweaking `createStateOperator` to check if the argument is a draft,
-          // we can just treat the operator as strictly mutating, without returning a result,
-          // and the result should be correct.
-          const result = adapter.removeOne(state, action)
-
-          const sizeAfter = state.ids.length
-          if (sizeBefore > 0) {
-            expect(sizeAfter).toBe(sizeBefore - 1)
-          }
-
-          //Deliberately _don't_ return result
-        },
-      },
-      extraReducers: (builder) => {
-        builder.addCase(upsertBook, (state, action) => {
-          return adapter.upsertOne(state, action)
-        })
-        builder.addCase(fetchBooksTAC.pending, (state, action) => {
-          state.loading = 'pending'
-          state.lastRequestId = action.meta.requestId
-        })
-        builder.addCase(fetchBooksTAC.fulfilled, (state, action) => {
-          if (
-            state.loading === 'pending' &&
-            action.meta.requestId === state.lastRequestId
-          ) {
-            adapter.setAll(state, action.payload)
-            state.loading = 'finished'
-            state.lastRequestId = null
-          }
-        })
-      },
-    })
-
-    const { addOne, removeOne } = booksSlice.actions
-    const { reducer } = booksSlice
-
-    const store = configureStore({
-      reducer: {
-        books: reducer,
-      },
-    })
-
-    await store.dispatch(fetchBooksTAC())
-
-    const { books: booksAfterLoaded } = store.getState()
-    // Sorted, so "First" goes first
-    expect(booksAfterLoaded.ids).toEqual(['a', 'b'])
-    expect(booksAfterLoaded.lastRequestId).toBe(null)
-    expect(booksAfterLoaded.loading).toBe('finished')
-
-    store.dispatch(addOne({ id: 'd', title: 'Remove Me' }))
-    store.dispatch(removeOne('d'))
-
-    store.dispatch(addOne({ id: 'c', title: 'Middle' }))
-
-    const { books: booksAfterAddOne } = store.getState()
-
-    // Sorted, so "Middle" goes in the middle
-    expect(booksAfterAddOne.ids).toEqual(['a', 'c', 'b'])
-
-    store.dispatch(upsertBook({ id: 'c', title: 'Zeroth' }))
-
-    const { books: booksAfterUpsert } = store.getState()
-
-    // Sorted, so "Zeroth" goes last
-    expect(booksAfterUpsert.ids).toEqual(['a', 'b', 'c'])
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/configureStore.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/configureStore.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,805 +1,0 @@
-import type {
-  Action,
-  ConfigureStoreOptions,
-  Dispatch,
-  Middleware,
-  PayloadAction,
-  Reducer,
-  Store,
-  StoreEnhancer,
-  ThunkAction,
-  ThunkDispatch,
-  ThunkMiddleware,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import {
-  Tuple,
-  applyMiddleware,
-  combineReducers,
-  configureStore,
-  createSlice,
-} from '@reduxjs/toolkit'
-import { thunk } from 'redux-thunk'
-
-const _anyMiddleware: any = () => () => () => {}
-
-describe('type tests', () => {
-  test('configureStore() requires a valid reducer or reducer map.', () => {
-    configureStore({
-      reducer: (state, action) => 0,
-    })
-
-    configureStore({
-      reducer: {
-        counter1: () => 0,
-        counter2: () => 1,
-      },
-    })
-
-    // @ts-expect-error
-    configureStore({ reducer: 'not a reducer' })
-
-    // @ts-expect-error
-    configureStore({ reducer: { a: 'not a reducer' } })
-
-    // @ts-expect-error
-    configureStore({})
-  })
-
-  test('configureStore() infers the store state type.', () => {
-    const reducer: Reducer<number> = () => 0
-
-    const store = configureStore({ reducer })
-
-    expectTypeOf(store).toMatchTypeOf<Store<number, UnknownAction>>()
-
-    expectTypeOf(store).not.toMatchTypeOf<Store<string, UnknownAction>>()
-  })
-
-  test('configureStore() infers the store action type.', () => {
-    const reducer: Reducer<number, PayloadAction<number>> = () => 0
-
-    const store = configureStore({ reducer })
-
-    expectTypeOf(store).toMatchTypeOf<Store<number, PayloadAction<number>>>()
-
-    expectTypeOf(store).not.toMatchTypeOf<
-      Store<number, PayloadAction<string>>
-    >()
-  })
-
-  test('configureStore() accepts Tuple for middleware, but not plain array.', () => {
-    const middleware: Middleware = (store) => (next) => next
-
-    configureStore({
-      reducer: () => 0,
-      middleware: () => new Tuple(middleware),
-    })
-
-    configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      middleware: () => [middleware],
-    })
-
-    configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      middleware: () => new Tuple('not middleware'),
-    })
-  })
-
-  test('configureStore() accepts devTools flag.', () => {
-    configureStore({
-      reducer: () => 0,
-      devTools: true,
-    })
-
-    configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      devTools: 'true',
-    })
-  })
-
-  test('configureStore() accepts devTools EnhancerOptions.', () => {
-    configureStore({
-      reducer: () => 0,
-      devTools: { name: 'myApp' },
-    })
-
-    configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      devTools: { appName: 'myApp' },
-    })
-  })
-
-  test('configureStore() accepts preloadedState.', () => {
-    configureStore({
-      reducer: () => 0,
-      preloadedState: 0,
-    })
-
-    configureStore({
-      // @ts-expect-error
-      reducer: (_: number) => 0,
-      preloadedState: 'non-matching state type',
-    })
-  })
-
-  test('nullable state is preserved', () => {
-    const store = configureStore({
-      reducer: (): string | null => null,
-    })
-
-    expectTypeOf(store.getState()).toEqualTypeOf<string | null>()
-  })
-
-  test('configureStore() accepts store Tuple for enhancers, but not plain array', () => {
-    const enhancer = applyMiddleware(() => (next) => next)
-
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: () => new Tuple(enhancer),
-    })
-
-    const store2 = configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      enhancers: () => [enhancer],
-    })
-
-    expectTypeOf(store.dispatch).toMatchTypeOf<
-      Dispatch & ThunkDispatch<number, undefined, UnknownAction>
-    >()
-
-    configureStore({
-      reducer: () => 0,
-      // @ts-expect-error
-      enhancers: () => new Tuple('not a store enhancer'),
-    })
-
-    const somePropertyStoreEnhancer: StoreEnhancer<{
-      someProperty: string
-    }> = (next) => {
-      return (reducer, preloadedState) => {
-        return {
-          ...next(reducer, preloadedState),
-          someProperty: 'some value',
-        }
-      }
-    }
-
-    const anotherPropertyStoreEnhancer: StoreEnhancer<{
-      anotherProperty: number
-    }> = (next) => {
-      return (reducer, preloadedState) => {
-        return {
-          ...next(reducer, preloadedState),
-          anotherProperty: 123,
-        }
-      }
-    }
-
-    const store3 = configureStore({
-      reducer: () => 0,
-      enhancers: () =>
-        new Tuple(somePropertyStoreEnhancer, anotherPropertyStoreEnhancer),
-    })
-
-    expectTypeOf(store3.dispatch).toEqualTypeOf<Dispatch>()
-
-    expectTypeOf(store3.someProperty).toBeString()
-
-    expectTypeOf(store3.anotherProperty).toBeNumber()
-
-    const storeWithCallback = configureStore({
-      reducer: () => 0,
-      enhancers: (getDefaultEnhancers) =>
-        getDefaultEnhancers()
-          .prepend(anotherPropertyStoreEnhancer)
-          .concat(somePropertyStoreEnhancer),
-    })
-
-    expectTypeOf(store3.dispatch).toMatchTypeOf<
-      Dispatch & ThunkDispatch<number, undefined, UnknownAction>
-    >()
-
-    expectTypeOf(store3.someProperty).toBeString()
-
-    expectTypeOf(store3.anotherProperty).toBeNumber()
-
-    const someStateExtendingEnhancer: StoreEnhancer<
-      {},
-      { someProperty: string }
-    > =
-      (next) =>
-      (...args) => {
-        const store = next(...args)
-        const getState = () => ({
-          ...store.getState(),
-          someProperty: 'some value',
-        })
-        return {
-          ...store,
-          getState,
-        } as any
-      }
-
-    const anotherStateExtendingEnhancer: StoreEnhancer<
-      {},
-      { anotherProperty: number }
-    > =
-      (next) =>
-      (...args) => {
-        const store = next(...args)
-        const getState = () => ({
-          ...store.getState(),
-          anotherProperty: 123,
-        })
-        return {
-          ...store,
-          getState,
-        } as any
-      }
-
-    const store4 = configureStore({
-      reducer: () => ({ aProperty: 0 }),
-      enhancers: () =>
-        new Tuple(someStateExtendingEnhancer, anotherStateExtendingEnhancer),
-    })
-
-    const state = store4.getState()
-
-    expectTypeOf(state.aProperty).toBeNumber()
-
-    expectTypeOf(state.someProperty).toBeString()
-
-    expectTypeOf(state.anotherProperty).toBeNumber()
-
-    const storeWithCallback2 = configureStore({
-      reducer: () => ({ aProperty: 0 }),
-      enhancers: (gDE) =>
-        gDE().concat(someStateExtendingEnhancer, anotherStateExtendingEnhancer),
-    })
-
-    const stateWithCallback = storeWithCallback2.getState()
-
-    expectTypeOf(stateWithCallback.aProperty).toBeNumber()
-
-    expectTypeOf(stateWithCallback.someProperty).toBeString()
-
-    expectTypeOf(stateWithCallback.anotherProperty).toBeNumber()
-  })
-
-  test('Preloaded state typings', () => {
-    const counterReducer1: Reducer<number> = () => 0
-    const counterReducer2: Reducer<number> = () => 0
-
-    test('partial preloaded state', () => {
-      const store = configureStore({
-        reducer: {
-          counter1: counterReducer1,
-          counter2: counterReducer2,
-        },
-        preloadedState: {
-          counter1: 0,
-        },
-      })
-
-      expectTypeOf(store.getState().counter1).toBeNumber()
-
-      expectTypeOf(store.getState().counter2).toBeNumber()
-    })
-
-    test('empty preloaded state', () => {
-      const store = configureStore({
-        reducer: {
-          counter1: counterReducer1,
-          counter2: counterReducer2,
-        },
-        preloadedState: {},
-      })
-
-      expectTypeOf(store.getState().counter1).toBeNumber()
-
-      expectTypeOf(store.getState().counter2).toBeNumber()
-    })
-
-    test('excess properties in preloaded state', () => {
-      const store = configureStore({
-        reducer: {
-          // @ts-expect-error
-          counter1: counterReducer1,
-          counter2: counterReducer2,
-        },
-        preloadedState: {
-          counter1: 0,
-          counter3: 5,
-        },
-      })
-
-      expectTypeOf(store.getState().counter1).toBeNumber()
-
-      expectTypeOf(store.getState().counter2).toBeNumber()
-    })
-
-    test('mismatching properties in preloaded state', () => {
-      const store = configureStore({
-        reducer: {
-          // @ts-expect-error
-          counter1: counterReducer1,
-          counter2: counterReducer2,
-        },
-        preloadedState: {
-          counter3: 5,
-        },
-      })
-
-      expectTypeOf(store.getState().counter1).toBeNumber()
-
-      expectTypeOf(store.getState().counter2).toBeNumber()
-    })
-
-    test('string preloaded state when expecting object', () => {
-      const store = configureStore({
-        reducer: {
-          // @ts-expect-error
-          counter1: counterReducer1,
-          counter2: counterReducer2,
-        },
-        preloadedState: 'test',
-      })
-
-      expectTypeOf(store.getState().counter1).toBeNumber()
-
-      expectTypeOf(store.getState().counter2).toBeNumber()
-    })
-
-    test('nested combineReducers allows partial', () => {
-      const store = configureStore({
-        reducer: {
-          group1: combineReducers({
-            counter1: counterReducer1,
-            counter2: counterReducer2,
-          }),
-          group2: combineReducers({
-            counter1: counterReducer1,
-            counter2: counterReducer2,
-          }),
-        },
-        preloadedState: {
-          group1: {
-            counter1: 5,
-          },
-        },
-      })
-
-      expectTypeOf(store.getState().group1.counter1).toBeNumber()
-
-      expectTypeOf(store.getState().group1.counter2).toBeNumber()
-
-      expectTypeOf(store.getState().group2.counter1).toBeNumber()
-
-      expectTypeOf(store.getState().group2.counter2).toBeNumber()
-    })
-
-    test('non-nested combineReducers does not allow partial', () => {
-      interface GroupState {
-        counter1: number
-        counter2: number
-      }
-
-      const initialState = { counter1: 0, counter2: 0 }
-
-      const group1Reducer: Reducer<GroupState> = (state = initialState) => state
-      const group2Reducer: Reducer<GroupState> = (state = initialState) => state
-
-      const store = configureStore({
-        reducer: {
-          // @ts-expect-error
-          group1: group1Reducer,
-          group2: group2Reducer,
-        },
-        preloadedState: {
-          group1: {
-            counter1: 5,
-          },
-        },
-      })
-
-      expectTypeOf(store.getState().group1.counter1).toBeNumber()
-
-      expectTypeOf(store.getState().group1.counter2).toBeNumber()
-
-      expectTypeOf(store.getState().group2.counter1).toBeNumber()
-
-      expectTypeOf(store.getState().group2.counter2).toBeNumber()
-    })
-  })
-
-  test('Dispatch typings', () => {
-    type StateA = number
-    const reducerA = () => 0
-    const thunkA = () => {
-      return (() => {}) as any as ThunkAction<Promise<'A'>, StateA, any, any>
-    }
-
-    type StateB = string
-    const thunkB = () => {
-      return (dispatch: Dispatch, getState: () => StateB) => {}
-    }
-
-    test('by default, dispatching Thunks is possible', () => {
-      const store = configureStore({
-        reducer: reducerA,
-      })
-
-      store.dispatch(thunkA())
-      // @ts-expect-error
-      store.dispatch(thunkB())
-
-      const res = store.dispatch((dispatch, getState) => {
-        return 42
-      })
-
-      const action = store.dispatch({ type: 'foo' })
-    })
-
-    test('return type of thunks and actions is inferred correctly', () => {
-      const slice = createSlice({
-        name: 'counter',
-        initialState: {
-          value: 0,
-        },
-        reducers: {
-          incrementByAmount: (state, action: PayloadAction<number>) => {
-            state.value += action.payload
-          },
-        },
-      })
-
-      const store = configureStore({
-        reducer: {
-          counter: slice.reducer,
-        },
-      })
-
-      const action = slice.actions.incrementByAmount(2)
-
-      const dispatchResult = store.dispatch(action)
-
-      expectTypeOf(dispatchResult).toMatchTypeOf<{
-        type: string
-        payload: number
-      }>()
-
-      const promiseResult = store.dispatch(async (dispatch) => {
-        return 42
-      })
-
-      expectTypeOf(promiseResult).toEqualTypeOf<Promise<number>>()
-
-      const store2 = configureStore({
-        reducer: {
-          counter: slice.reducer,
-        },
-        middleware: (gDM) =>
-          gDM({
-            thunk: {
-              extraArgument: 42,
-            },
-          }),
-      })
-
-      const dispatchResult2 = store2.dispatch(action)
-
-      expectTypeOf(dispatchResult2).toMatchTypeOf<{
-        type: string
-        payload: number
-      }>()
-    })
-
-    test('removing the Thunk Middleware', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: () => new Tuple(),
-      })
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkA())
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('adding the thunk middleware by hand', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: () => new Tuple(thunk as ThunkMiddleware<StateA>),
-      })
-
-      store.dispatch(thunkA())
-      // @ts-expect-error
-      store.dispatch(thunkB())
-    })
-
-    test('custom middleware', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: () =>
-          new Tuple(0 as unknown as Middleware<(a: StateA) => boolean, StateA>),
-      })
-
-      expectTypeOf(store.dispatch(5)).toBeBoolean()
-
-      expectTypeOf(store.dispatch(5)).not.toBeString()
-    })
-
-    test('multiple custom middleware', () => {
-      const middleware = [] as any as Tuple<
-        [
-          Middleware<(a: 'a') => 'A', StateA>,
-          Middleware<(b: 'b') => 'B', StateA>,
-          ThunkMiddleware<StateA>,
-        ]
-      >
-
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: () => middleware,
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch('b')).toEqualTypeOf<'B'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-    })
-
-    test('Accepts thunk with `unknown`, `undefined` or `null` ThunkAction extraArgument per default', () => {
-      const store = configureStore({ reducer: {} })
-      // undefined is the default value for the ThunkMiddleware extraArgument
-      store.dispatch(function () {} as ThunkAction<
-        void,
-        {},
-        undefined,
-        UnknownAction
-      >)
-      // `null` for the `extra` generic was previously documented in the RTK "Advanced Tutorial", but
-      // is a bad pattern and users should use `unknown` instead
-      // @ts-expect-error
-      store.dispatch(function () {} as ThunkAction<
-        void,
-        {},
-        null,
-        UnknownAction
-      >)
-      // unknown is the best way to type a ThunkAction if you do not care
-      // about the value of the extraArgument, as it will always work with every
-      // ThunkMiddleware, no matter the actual extraArgument type
-      store.dispatch(function () {} as ThunkAction<
-        void,
-        {},
-        unknown,
-        UnknownAction
-      >)
-      // @ts-expect-error
-      store.dispatch(function () {} as ThunkAction<
-        void,
-        {},
-        boolean,
-        UnknownAction
-      >)
-    })
-
-    test('custom middleware and getDefaultMiddleware', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (gDM) =>
-          gDM().prepend((() => {}) as any as Middleware<
-            (a: 'a') => 'A',
-            StateA
-          >),
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('custom middleware and getDefaultMiddleware, using prepend', () => {
-      const otherMiddleware: Middleware<(a: 'a') => 'A', StateA> =
-        _anyMiddleware
-
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (gDM) => {
-          const concatenated = gDM().prepend(otherMiddleware)
-
-          expectTypeOf(concatenated).toMatchTypeOf<
-            ReadonlyArray<
-              typeof otherMiddleware | ThunkMiddleware | Middleware<{}>
-            >
-          >()
-
-          return concatenated
-        },
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('custom middleware and getDefaultMiddleware, using concat', () => {
-      const otherMiddleware: Middleware<(a: 'a') => 'A', StateA> =
-        _anyMiddleware
-
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (gDM) => {
-          const concatenated = gDM().concat(otherMiddleware)
-
-          expectTypeOf(concatenated).toMatchTypeOf<
-            ReadonlyArray<
-              typeof otherMiddleware | ThunkMiddleware | Middleware<{}>
-            >
-          >()
-
-          return concatenated
-        },
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('middlewareBuilder notation, getDefaultMiddleware (unconfigured)', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (getDefaultMiddleware) =>
-          getDefaultMiddleware().prepend((() => {}) as any as Middleware<
-            (a: 'a') => 'A',
-            StateA
-          >),
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('middlewareBuilder notation, getDefaultMiddleware, concat & prepend', () => {
-      const otherMiddleware: Middleware<(a: 'a') => 'A', StateA> =
-        _anyMiddleware
-
-      const otherMiddleware2: Middleware<(a: 'b') => 'B', StateA> =
-        _anyMiddleware
-
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (getDefaultMiddleware) =>
-          getDefaultMiddleware()
-            .concat(otherMiddleware)
-            .prepend(otherMiddleware2),
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch(thunkA())).toEqualTypeOf<Promise<'A'>>()
-
-      expectTypeOf(store.dispatch('b')).toEqualTypeOf<'B'>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkB())
-    })
-
-    test('middlewareBuilder notation, getDefaultMiddleware (thunk: false)', () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (getDefaultMiddleware) =>
-          getDefaultMiddleware({ thunk: false }).prepend(
-            (() => {}) as any as Middleware<(a: 'a') => 'A', StateA>,
-          ),
-      })
-
-      expectTypeOf(store.dispatch('a')).toEqualTypeOf<'A'>()
-
-      expectTypeOf(store.dispatch).parameter(0).not.toMatchTypeOf(thunkA())
-    })
-
-    test("badly typed middleware won't make `dispatch` `any`", () => {
-      const store = configureStore({
-        reducer: reducerA,
-        middleware: (getDefaultMiddleware) =>
-          getDefaultMiddleware().concat(_anyMiddleware as Middleware<any>),
-      })
-
-      expectTypeOf(store.dispatch).not.toBeAny()
-    })
-
-    test("decorated `configureStore` won't make `dispatch` `never`", () => {
-      const someSlice = createSlice({
-        name: 'something',
-        initialState: null as any,
-        reducers: {
-          set(state) {
-            return state
-          },
-        },
-      })
-
-      function configureMyStore<S>(
-        options: Omit<ConfigureStoreOptions<S>, 'reducer'>,
-      ) {
-        return configureStore({
-          ...options,
-          reducer: someSlice.reducer,
-        })
-      }
-
-      const store = configureMyStore({})
-
-      expectTypeOf(store.dispatch).toBeFunction()
-    })
-
-    interface CounterState {
-      value: number
-    }
-
-    const counterSlice = createSlice({
-      name: 'counter',
-      initialState: { value: 0 } as CounterState,
-      reducers: {
-        increment(state) {
-          state.value += 1
-        },
-        decrement(state) {
-          state.value -= 1
-        },
-        // Use the PayloadAction type to declare the contents of `action.payload`
-        incrementByAmount: (state, action: PayloadAction<number>) => {
-          state.value += action.payload
-        },
-      },
-    })
-
-    type Unsubscribe = () => void
-
-    // A fake middleware that tells TS that an unsubscribe callback is being returned for a given action
-    // This is the same signature that the "listener" middleware uses
-    const dummyMiddleware: Middleware<
-      {
-        (action: Action<'actionListenerMiddleware/add'>): Unsubscribe
-      },
-      CounterState
-    > = (storeApi) => (next) => (action) => {}
-
-    const store = configureStore({
-      reducer: counterSlice.reducer,
-      middleware: (gDM) => gDM().prepend(dummyMiddleware),
-    })
-
-    // Order matters here! We need the listener type to come first, otherwise
-    // the thunk middleware type kicks in and TS thinks a plain action is being returned
-    expectTypeOf(store.dispatch).toEqualTypeOf<
-      ((action: Action<'actionListenerMiddleware/add'>) => Unsubscribe) &
-        ThunkDispatch<CounterState, undefined, UnknownAction> &
-        Dispatch<UnknownAction>
-    >()
-
-    const unsubscribe = store.dispatch({
-      type: 'actionListenerMiddleware/add',
-    } as const)
-
-    expectTypeOf(unsubscribe).toEqualTypeOf<Unsubscribe>()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/configureStore.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/configureStore.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,371 +1,0 @@
-import * as DevTools from '@internal/devtoolsExtension'
-import type { Middleware, StoreEnhancer } from '@reduxjs/toolkit'
-import { Tuple } from '@reduxjs/toolkit'
-import type * as Redux from 'redux'
-import { vi } from 'vitest'
-
-vi.doMock('redux', async (importOriginal) => {
-  const redux = await importOriginal<typeof import('redux')>()
-
-  vi.spyOn(redux, 'applyMiddleware')
-  vi.spyOn(redux, 'combineReducers')
-  vi.spyOn(redux, 'compose')
-  vi.spyOn(redux, 'createStore')
-
-  return redux
-})
-
-describe('configureStore', async () => {
-  const composeWithDevToolsSpy = vi.spyOn(DevTools, 'composeWithDevTools')
-
-  const redux = await import('redux')
-
-  const { configureStore } = await import('@reduxjs/toolkit')
-
-  const reducer: Redux.Reducer = (state = {}, _action) => state
-
-  beforeEach(() => {
-    vi.clearAllMocks()
-  })
-
-  describe('given a function reducer', () => {
-    it('calls createStore with the reducer', () => {
-      configureStore({ reducer })
-      expect(configureStore({ reducer })).toBeInstanceOf(Object)
-
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledTimes(2)
-      }
-    })
-  })
-
-  describe('given an object of reducers', () => {
-    it('calls createStore with the combined reducers', () => {
-      const reducer = {
-        reducer() {
-          return true
-        },
-      }
-      expect(configureStore({ reducer })).toBeInstanceOf(Object)
-      expect(redux.combineReducers).toHaveBeenCalledWith(reducer)
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        expect.any(Function),
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('given no reducer', () => {
-    it('throws', () => {
-      expect(configureStore).toThrow(
-        '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers',
-      )
-    })
-  })
-
-  describe('given no middleware', () => {
-    it('calls createStore without any middleware', () => {
-      expect(
-        configureStore({ middleware: () => new Tuple(), reducer }),
-      ).toBeInstanceOf(Object)
-      expect(redux.applyMiddleware).toHaveBeenCalledWith()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('given an array of middleware', () => {
-    it('throws an error requiring a callback', () => {
-      // @ts-expect-error
-      expect(() => configureStore({ middleware: [], reducer })).toThrow(
-        '`middleware` field must be a callback',
-      )
-    })
-  })
-
-  describe('given undefined middleware', () => {
-    it('calls createStore with default middleware', () => {
-      expect(configureStore({ middleware: undefined, reducer })).toBeInstanceOf(
-        Object,
-      )
-      expect(redux.applyMiddleware).toHaveBeenCalledWith(
-        expect.any(Function), // immutableCheck
-        expect.any(Function), // thunk
-        expect.any(Function), // serializableCheck
-        expect.any(Function), // actionCreatorCheck
-      )
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('given any middleware', () => {
-    const exampleMiddleware: Middleware<any, any> = () => (next) => (action) =>
-      next(action)
-    it('throws an error by default if there are duplicate middleware', () => {
-      const makeStore = () => {
-        return configureStore({
-          reducer,
-          middleware: (gDM) =>
-            gDM().concat(exampleMiddleware, exampleMiddleware),
-        })
-      }
-
-      expect(makeStore).toThrowError(
-        'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.',
-      )
-    })
-
-    it('does not throw a duplicate middleware error if duplicateMiddlewareCheck is disabled', () => {
-      const makeStore = () => {
-        return configureStore({
-          reducer,
-          middleware: (gDM) =>
-            gDM().concat(exampleMiddleware, exampleMiddleware),
-          duplicateMiddlewareCheck: false,
-        })
-      }
-
-      expect(makeStore).not.toThrowError()
-    })
-  })
-
-  describe('given a middleware creation function that returns undefined', () => {
-    it('throws an error', () => {
-      const invalidBuilder = vi.fn((getDefaultMiddleware) => undefined as any)
-      expect(() =>
-        configureStore({ middleware: invalidBuilder, reducer }),
-      ).toThrow(
-        'when using a middleware builder function, an array of middleware must be returned',
-      )
-    })
-  })
-
-  describe('given a middleware creation function that returns an array with non-functions', () => {
-    it('throws an error', () => {
-      const invalidBuilder = vi.fn((getDefaultMiddleware) => [true] as any)
-      expect(() =>
-        configureStore({ middleware: invalidBuilder, reducer }),
-      ).toThrow('each middleware provided to configureStore must be a function')
-    })
-  })
-
-  describe('given custom middleware', () => {
-    it('calls createStore with custom middleware and without default middleware', () => {
-      const thank: Redux.Middleware = (_store) => (next) => (action) =>
-        next(action)
-      expect(
-        configureStore({ middleware: () => new Tuple(thank), reducer }),
-      ).toBeInstanceOf(Object)
-      expect(redux.applyMiddleware).toHaveBeenCalledWith(thank)
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('middleware builder notation', () => {
-    it('calls builder, passes getDefaultMiddleware and uses returned middlewares', () => {
-      const thank = vi.fn(
-        ((_store) => (next) => (action) => 'foobar') as Redux.Middleware,
-      )
-
-      const builder = vi.fn((getDefaultMiddleware) => {
-        expect(getDefaultMiddleware).toEqual(expect.any(Function))
-        expect(getDefaultMiddleware()).toEqual(expect.any(Array))
-
-        return new Tuple(thank)
-      })
-
-      const store = configureStore({ middleware: builder, reducer })
-
-      expect(builder).toHaveBeenCalled()
-
-      expect(store.dispatch({ type: 'test' })).toBe('foobar')
-    })
-  })
-
-  describe('with devTools disabled', () => {
-    it('calls createStore without devTools enhancer', () => {
-      expect(configureStore({ devTools: false, reducer })).toBeInstanceOf(
-        Object,
-      )
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      expect(redux.compose).toHaveBeenCalled()
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('with devTools options', () => {
-    it('calls createStore with devTools enhancer and option', () => {
-      const options = {
-        name: 'myApp',
-        trace: true,
-      }
-      expect(configureStore({ devTools: options, reducer })).toBeInstanceOf(
-        Object,
-      )
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-
-        expect(composeWithDevToolsSpy).toHaveBeenLastCalledWith(options)
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('given preloadedState', () => {
-    it('calls createStore with preloadedState', () => {
-      expect(configureStore({ reducer })).toBeInstanceOf(Object)
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-    })
-  })
-
-  describe('given enhancers', () => {
-    let dummyEnhancerCalled = false
-
-    const dummyEnhancer: StoreEnhancer =
-      (createStore) => (reducer, preloadedState) => {
-        dummyEnhancerCalled = true
-
-        return createStore(reducer, preloadedState)
-      }
-
-    beforeEach(() => {
-      dummyEnhancerCalled = false
-    })
-
-    it('calls createStore with enhancers', () => {
-      expect(
-        configureStore({
-          enhancers: (gDE) => gDE().concat(dummyEnhancer),
-          reducer,
-        }),
-      ).toBeInstanceOf(Object)
-      expect(redux.applyMiddleware).toHaveBeenCalled()
-      if (process.env.TEST_DIST) {
-        expect(composeWithDevToolsSpy).not.toHaveBeenCalled()
-      } else {
-        expect(composeWithDevToolsSpy).toHaveBeenCalledOnce()
-      }
-      expect(redux.createStore).toHaveBeenCalledWith(
-        reducer,
-        undefined,
-        expect.any(Function),
-      )
-
-      expect(dummyEnhancerCalled).toBe(true)
-    })
-
-    describe('invalid arguments', () => {
-      test('enhancers is not a callback', () => {
-        expect(() => configureStore({ reducer, enhancers: [] as any })).toThrow(
-          '`enhancers` field must be a callback',
-        )
-      })
-
-      test('callback fails to return array', () => {
-        expect(() =>
-          configureStore({ reducer, enhancers: (() => {}) as any }),
-        ).toThrow('`enhancers` callback must return an array')
-      })
-
-      test('array contains non-function', () => {
-        expect(() =>
-          configureStore({ reducer, enhancers: (() => ['']) as any }),
-        ).toThrow('each enhancer provided to configureStore must be a function')
-      })
-    })
-
-    const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
-    beforeEach(() => {
-      consoleSpy.mockClear()
-    })
-    afterAll(() => {
-      consoleSpy.mockRestore()
-    })
-
-    it('warns if middleware enhancer is excluded from final array when middlewares are provided', () => {
-      const store = configureStore({
-        reducer,
-        enhancers: () => new Tuple(dummyEnhancer),
-      })
-
-      expect(dummyEnhancerCalled).toBe(true)
-
-      expect(consoleSpy).toHaveBeenCalledWith(
-        'middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`',
-      )
-    })
-    it("doesn't warn when middleware enhancer is excluded if no middlewares provided", () => {
-      const store = configureStore({
-        reducer,
-        middleware: () => new Tuple(),
-        enhancers: () => new Tuple(dummyEnhancer),
-      })
-
-      expect(dummyEnhancerCalled).toBe(true)
-
-      expect(consoleSpy).not.toHaveBeenCalled()
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createAction.test-d.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createAction.test-d.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,326 +1,0 @@
-import type {
-  Action,
-  ActionCreator,
-  ActionCreatorWithNonInferrablePayload,
-  ActionCreatorWithOptionalPayload,
-  ActionCreatorWithPayload,
-  ActionCreatorWithPreparedPayload,
-  ActionCreatorWithoutPayload,
-  PayloadAction,
-  PayloadActionCreator,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import { createAction } from '@reduxjs/toolkit'
-
-describe('type tests', () => {
-  describe('PayloadAction', () => {
-    test('PayloadAction has type parameter for the payload.', () => {
-      const action: PayloadAction<number> = { type: '', payload: 5 }
-
-      expectTypeOf(action.payload).toBeNumber()
-
-      expectTypeOf(action.payload).not.toBeString()
-    })
-
-    test('PayloadAction type parameter is required.', () => {
-      expectTypeOf({ type: '', payload: 5 }).not.toMatchTypeOf<PayloadAction>()
-    })
-
-    test('PayloadAction has a string type tag.', () => {
-      expectTypeOf({ type: '', payload: 5 }).toEqualTypeOf<
-        PayloadAction<number>
-      >()
-
-      expectTypeOf({ type: 1, payload: 5 }).not.toMatchTypeOf<PayloadAction>()
-    })
-
-    test('PayloadAction is compatible with Action<string>', () => {
-      const action: PayloadAction<number> = { type: '', payload: 5 }
-
-      expectTypeOf(action).toMatchTypeOf<Action<string>>()
-    })
-  })
-
-  describe('PayloadActionCreator', () => {
-    test('PayloadActionCreator returns correctly typed PayloadAction depending on whether a payload is passed.', () => {
-      const actionCreator = Object.assign(
-        (payload?: number) => ({
-          type: 'action',
-          payload,
-        }),
-        { type: 'action' },
-      ) as PayloadActionCreator<number | undefined>
-
-      expectTypeOf(actionCreator(1)).toEqualTypeOf<
-        PayloadAction<number | undefined>
-      >()
-
-      expectTypeOf(actionCreator()).toEqualTypeOf<
-        PayloadAction<number | undefined>
-      >()
-
-      expectTypeOf(actionCreator(undefined)).toEqualTypeOf<
-        PayloadAction<number | undefined>
-      >()
-
-      expectTypeOf(actionCreator()).not.toMatchTypeOf<PayloadAction<number>>()
-
-      expectTypeOf(actionCreator(1)).not.toMatchTypeOf<
-        PayloadAction<undefined>
-      >()
-    })
-
-    test('PayloadActionCreator is compatible with ActionCreator.', () => {
-      const payloadActionCreator = Object.assign(
-        (payload?: number) => ({
-          type: 'action',
-          payload,
-        }),
-        { type: 'action' },
-      ) as PayloadActionCreator
-
-      expectTypeOf(payloadActionCreator).toMatchTypeOf<
-        ActionCreator<UnknownAction>
-      >()
-
-      const payloadActionCreator2 = Object.assign(
-        (payload?: number) => ({
-          type: 'action',
-          payload: payload || 1,
-        }),
-        { type: 'action' },
-      ) as PayloadActionCreator<number>
-
-      expectTypeOf(payloadActionCreator2).toMatchTypeOf<
-        ActionCreator<PayloadAction<number>>
-      >()
-    })
-  })
-
-  test('createAction() has type parameter for the action payload.', () => {
-    const increment = createAction<number, 'increment'>('increment')
-
-    expectTypeOf(increment).parameter(0).toBeNumber()
-
-    expectTypeOf(increment).parameter(0).not.toBeString()
-  })
-
-  test('createAction() type parameter is required, not inferred (defaults to `void`).', () => {
-    const increment = createAction('increment')
-
-    expectTypeOf(increment).parameter(0).not.toBeNumber()
-
-    expectTypeOf(increment().payload).not.toBeNumber()
-  })
-
-  test('createAction().type is a string literal.', () => {
-    const increment = createAction<number, 'increment'>('increment')
-
-    expectTypeOf(increment(1).type).toBeString()
-
-    expectTypeOf(increment(1).type).toEqualTypeOf<'increment'>()
-
-    expectTypeOf(increment(1).type).not.toMatchTypeOf<'other'>()
-
-    expectTypeOf(increment(1).type).not.toBeNumber()
-  })
-
-  test('type still present when using prepareAction', () => {
-    const strLenAction = createAction('strLen', (payload: string) => ({
-      payload: payload.length,
-    }))
-
-    expectTypeOf(strLenAction('test').type).toBeString()
-  })
-
-  test('changing payload type with prepareAction', () => {
-    const strLenAction = createAction('strLen', (payload: string) => ({
-      payload: payload.length,
-    }))
-
-    expectTypeOf(strLenAction('test').payload).toBeNumber()
-
-    expectTypeOf(strLenAction('test').payload).not.toBeString()
-
-    expectTypeOf(strLenAction('test')).not.toHaveProperty('error')
-  })
-
-  test('adding metadata with prepareAction', () => {
-    const strLenMetaAction = createAction('strLenMeta', (payload: string) => ({
-      payload,
-      meta: payload.length,
-    }))
-
-    expectTypeOf(strLenMetaAction('test').meta).toBeNumber()
-
-    expectTypeOf(strLenMetaAction('test').meta).not.toBeString()
-
-    expectTypeOf(strLenMetaAction('test')).not.toHaveProperty('error')
-  })
-
-  test('adding boolean error with prepareAction', () => {
-    const boolErrorAction = createAction('boolError', (payload: string) => ({
-      payload,
-      error: true,
-    }))
-
-    expectTypeOf(boolErrorAction('test').error).toBeBoolean()
-
-    expectTypeOf(boolErrorAction('test').error).not.toBeString()
-  })
-
-  test('adding string error with prepareAction', () => {
-    const strErrorAction = createAction('strError', (payload: string) => ({
-      payload,
-      error: 'this is an error',
-    }))
-
-    expectTypeOf(strErrorAction('test').error).toBeString()
-
-    expectTypeOf(strErrorAction('test').error).not.toBeBoolean()
-  })
-
-  test('regression test for https://github.com/reduxjs/redux-toolkit/issues/214', () => {
-    const action = createAction<{ input?: string }>('ACTION')
-
-    expectTypeOf(action({ input: '' }).payload.input).toEqualTypeOf<
-      string | undefined
-    >()
-
-    expectTypeOf(action({ input: '' }).payload.input).not.toBeNumber()
-
-    expectTypeOf(action).parameter(0).not.toMatchTypeOf({ input: 3 })
-  })
-
-  test('regression test for https://github.com/reduxjs/redux-toolkit/issues/224', () => {
-    const oops = createAction('oops', (x: any) => ({
-      payload: x,
-      error: x,
-      meta: x,
-    }))
-
-    expectTypeOf(oops('').payload).toBeAny()
-
-    expectTypeOf(oops('').error).toBeAny()
-
-    expectTypeOf(oops('').meta).toBeAny()
-  })
-
-  describe('createAction.match()', () => {
-    test('simple use case', () => {
-      const actionCreator = createAction<string, 'test'>('test')
-
-      const x: Action<string> = {} as any
-
-      if (actionCreator.match(x)) {
-        expectTypeOf(x.type).toEqualTypeOf<'test'>()
-
-        expectTypeOf(x.payload).toBeString()
-      } else {
-        expectTypeOf(x.type).not.toMatchTypeOf<'test'>()
-
-        expectTypeOf(x).not.toHaveProperty('payload')
-      }
-    })
-
-    test('special case: optional argument', () => {
-      const actionCreator = createAction<string | undefined, 'test'>('test')
-
-      const x: Action<string> = {} as any
-
-      if (actionCreator.match(x)) {
-        expectTypeOf(x.type).toEqualTypeOf<'test'>()
-
-        expectTypeOf(x.payload).toEqualTypeOf<string | undefined>()
-      }
-    })
-
-    test('special case: without argument', () => {
-      const actionCreator = createAction('test')
-
-      const x: Action<string> = {} as any
-
-      if (actionCreator.match(x)) {
-        expectTypeOf(x.type).toEqualTypeOf<'test'>()
-
-        expectTypeOf(x.payload).not.toMatchTypeOf<{}>()
-      }
-    })
-
-    test('special case: with prepareAction', () => {
-      const actionCreator = createAction('test', () => ({
-        payload: '',
-        meta: '',
-        error: false,
-      }))
-
-      const x: Action<string> = {} as any
-
-      if (actionCreator.match(x)) {
-        expectTypeOf(x.type).toEqualTypeOf<'test'>()
-
-        expectTypeOf(x.payload).toBeString()
-
-        expectTypeOf(x.meta).toBeString()
-
-        expectTypeOf(x.error).toBeBoolean()
-
-        expectTypeOf(x.payload).not.toBeNumber()
-
-        expectTypeOf(x.meta).not.toBeNumber()
-
-        expectTypeOf(x.error).not.toBeNumber()
-      }
-    })
-    test('potential use: as array filter', () => {
-      const actionCreator = createAction<string, 'test'>('test')
-
-      const x: Action<string>[] = []
-
-      expectTypeOf(x.filter(actionCreator.match)).toEqualTypeOf<
-        PayloadAction<string, 'test'>[]
-      >()
-    })
-  })
-
-  test('ActionCreatorWithOptionalPayload', () => {
-    expectTypeOf(createAction<string | undefined>('')).toEqualTypeOf<
-      ActionCreatorWithOptionalPayload<string | undefined>
-    >()
-
-    expectTypeOf(
-      createAction<void>(''),
-    ).toEqualTypeOf<ActionCreatorWithoutPayload>()
-
-    assertType<ActionCreatorWithNonInferrablePayload>(createAction(''))
-
-    expectTypeOf(createAction<string>('')).toEqualTypeOf<
-      ActionCreatorWithPayload<string>
-    >()
-
-    expectTypeOf(
-      createAction('', (_: 0) => ({
-        payload: 1 as 1,
-        error: 2 as 2,
-        meta: 3 as 3,
-      })),
-    ).toEqualTypeOf<ActionCreatorWithPreparedPayload<[0], 1, '', 2, 3>>()
-
-    const anyCreator = createAction<any>('')
-
-    expectTypeOf(anyCreator).toEqualTypeOf<ActionCreatorWithPayload<any>>()
-
-    expectTypeOf(anyCreator({}).payload).toBeAny()
-  })
-
-  test("Verify action creators should not be passed directly as arguments to React event handlers if there shouldn't be a payload", () => {
-    const emptyAction = createAction<void>('empty/action')
-
-    function TestComponent() {
-      // This typically leads to an error like:
-      //  // A non-serializable value was detected in an action, in the path: `payload`.
-      // @ts-expect-error Should error because `void` and `MouseEvent` aren't compatible
-      return <button onClick={emptyAction}>+</button>
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createAction.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createAction.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,148 +1,0 @@
-import { createAction, isActionCreator } from '@reduxjs/toolkit'
-
-describe('createAction', () => {
-  it('should create an action', () => {
-    const actionCreator = createAction<string>('A_TYPE')
-    expect(actionCreator('something')).toEqual({
-      type: 'A_TYPE',
-      payload: 'something',
-    })
-  })
-
-  describe('when stringifying action', () => {
-    it('should return the action type', () => {
-      const actionCreator = createAction('A_TYPE')
-      expect(`${actionCreator}`).toEqual('A_TYPE')
-    })
-  })
-
-  describe('when passing a prepareAction method only returning a payload', () => {
-    it('should use the payload returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-      }))
-      expect(actionCreator(5).payload).toBe(10)
-    })
-    it('should not have a meta attribute on the resulting Action', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-      }))
-      expect('meta' in actionCreator(5)).toBeFalsy()
-    })
-  })
-
-  describe('when passing a prepareAction method returning a payload and meta', () => {
-    it('should use the payload returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        meta: a / 2,
-      }))
-      expect(actionCreator(5).payload).toBe(10)
-    })
-    it('should use the meta returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        meta: a / 2,
-      }))
-      expect(actionCreator(10).meta).toBe(5)
-    })
-  })
-
-  describe('when passing a prepareAction method returning a payload and error', () => {
-    it('should use the payload returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        error: true,
-      }))
-      expect(actionCreator(5).payload).toBe(10)
-    })
-    it('should use the error returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        error: true,
-      }))
-      expect(actionCreator(10).error).toBe(true)
-    })
-  })
-
-  describe('when passing a prepareAction method returning a payload, meta and error', () => {
-    it('should use the payload returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        meta: a / 2,
-        error: true,
-      }))
-      expect(actionCreator(5).payload).toBe(10)
-    })
-    it('should use the error returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        meta: a / 2,
-        error: true,
-      }))
-      expect(actionCreator(10).error).toBe(true)
-    })
-    it('should use the meta returned from the prepareAction method', () => {
-      const actionCreator = createAction('A_TYPE', (a: number) => ({
-        payload: a * 2,
-        meta: a / 2,
-        error: true,
-      }))
-      expect(actionCreator(10).meta).toBe(5)
-    })
-  })
-
-  describe('when passing a prepareAction that accepts multiple arguments', () => {
-    it('should pass all arguments of the resulting actionCreator to prepareAction', () => {
-      const actionCreator = createAction(
-        'A_TYPE',
-        (a: string, b: string, c: string) => ({
-          payload: a + b + c,
-        }),
-      )
-      expect(actionCreator('1', '2', '3').payload).toBe('123')
-    })
-  })
-
-  describe('actionCreator.match', () => {
-    test('should return true for actions generated by own actionCreator', () => {
-      const actionCreator = createAction('test')
-      expect(actionCreator.match(actionCreator())).toBe(true)
-    })
-
-    test('should return true for matching actions', () => {
-      const actionCreator = createAction('test')
-      expect(actionCreator.match({ type: 'test' })).toBe(true)
-    })
-
-    test('should return false for other actions', () => {
-      const actionCreator = createAction('test')
-      expect(actionCreator.match({ type: 'test-abc' })).toBe(false)
-    })
-  })
-})
-
-const actionCreator = createAction('anAction')
-
-class Action {
-  type = 'totally an action'
-}
-
-describe('isActionCreator', () => {
-  it('should only return true for action creators', () => {
-    expect(isActionCreator(actionCreator)).toBe(true)
-    const notActionCreators = [
-      { type: 'an action' },
-      { type: 'more props', extra: true },
-      actionCreator(),
-      Promise.resolve({ type: 'an action' }),
-      new Action(),
-      false,
-      'a string',
-      false,
-    ]
-    for (const notActionCreator of notActionCreators) {
-      expect(isActionCreator(notActionCreator)).toBe(false)
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createAsyncThunk.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createAsyncThunk.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,899 +1,0 @@
-import type {
-  AsyncThunk,
-  SerializedError,
-  ThunkDispatch,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createAsyncThunk,
-  createReducer,
-  createSlice,
-  unwrapResult,
-} from '@reduxjs/toolkit'
-
-import type { TSVersion } from '@phryneas/ts-version'
-import type { AxiosError } from 'axios'
-import apiRequest from 'axios'
-import type { AsyncThunkDispatchConfig } from '@internal/createAsyncThunk'
-
-const defaultDispatch = (() => {}) as ThunkDispatch<{}, any, UnknownAction>
-const unknownAction = { type: 'foo' } as UnknownAction
-
-describe('type tests', () => {
-  test('basic usage', async () => {
-    const asyncThunk = createAsyncThunk('test', (id: number) =>
-      Promise.resolve(id * 2),
-    )
-
-    const reducer = createReducer({}, (builder) =>
-      builder
-        .addCase(asyncThunk.pending, (_, action) => {
-          expectTypeOf(action).toEqualTypeOf<
-            ReturnType<(typeof asyncThunk)['pending']>
-          >()
-        })
-
-        .addCase(asyncThunk.fulfilled, (_, action) => {
-          expectTypeOf(action).toEqualTypeOf<
-            ReturnType<(typeof asyncThunk)['fulfilled']>
-          >()
-
-          expectTypeOf(action.payload).toBeNumber()
-        })
-
-        .addCase(asyncThunk.rejected, (_, action) => {
-          expectTypeOf(action).toEqualTypeOf<
-            ReturnType<(typeof asyncThunk)['rejected']>
-          >()
-
-          expectTypeOf(action.error).toMatchTypeOf<Partial<Error> | undefined>()
-        }),
-    )
-
-    const promise = defaultDispatch(asyncThunk(3))
-
-    expectTypeOf(promise.requestId).toBeString()
-
-    expectTypeOf(promise.arg).toBeNumber()
-
-    expectTypeOf(promise.abort).toEqualTypeOf<(reason?: string) => void>()
-
-    const result = await promise
-
-    if (asyncThunk.fulfilled.match(result)) {
-      expectTypeOf(result).toEqualTypeOf<
-        ReturnType<(typeof asyncThunk)['fulfilled']>
-      >()
-    } else {
-      expectTypeOf(result).toEqualTypeOf<
-        ReturnType<(typeof asyncThunk)['rejected']>
-      >()
-    }
-
-    promise
-      .then(unwrapResult)
-      .then((result) => {
-        expectTypeOf(result).toBeNumber()
-
-        expectTypeOf(result).not.toMatchTypeOf<Error>()
-      })
-      .catch((error) => {
-        // catch is always any-typed, nothing we can do here
-        expectTypeOf(error).toBeAny()
-      })
-  })
-
-  test('More complex usage of thunk args', () => {
-    interface BookModel {
-      id: string
-      title: string
-    }
-
-    type BooksState = BookModel[]
-
-    const fakeBooks: BookModel[] = [
-      { id: 'b', title: 'Second' },
-      { id: 'a', title: 'First' },
-    ]
-
-    const correctDispatch = (() => {}) as ThunkDispatch<
-      BookModel[],
-      { userAPI: Function },
-      UnknownAction
-    >
-
-    // Verify that the the first type args to createAsyncThunk line up right
-    const fetchBooksTAC = createAsyncThunk<
-      BookModel[],
-      number,
-      {
-        state: BooksState
-        extra: { userAPI: Function }
-      }
-    >(
-      'books/fetch',
-      async (arg, { getState, dispatch, extra, requestId, signal }) => {
-        const state = getState()
-
-        expectTypeOf(arg).toBeNumber()
-
-        expectTypeOf(state).toEqualTypeOf<BookModel[]>()
-
-        expectTypeOf(extra).toEqualTypeOf<{ userAPI: Function }>()
-
-        return fakeBooks
-      },
-    )
-
-    correctDispatch(fetchBooksTAC(1))
-    // @ts-expect-error
-    defaultDispatch(fetchBooksTAC(1))
-  })
-
-  test('returning a rejected action from the promise creator is possible', async () => {
-    type ReturnValue = { data: 'success' }
-    type RejectValue = { data: 'error' }
-
-    const fetchBooksTAC = createAsyncThunk<
-      ReturnValue,
-      number,
-      {
-        rejectValue: RejectValue
-      }
-    >('books/fetch', async (arg, { rejectWithValue }) => {
-      return rejectWithValue({ data: 'error' })
-    })
-
-    const returned = await defaultDispatch(fetchBooksTAC(1))
-    if (fetchBooksTAC.rejected.match(returned)) {
-      expectTypeOf(returned.payload).toEqualTypeOf<undefined | RejectValue>()
-
-      expectTypeOf(returned.payload).toBeNullable()
-    } else {
-      expectTypeOf(returned.payload).toEqualTypeOf<ReturnValue>()
-    }
-
-    expectTypeOf(unwrapResult(returned)).toEqualTypeOf<ReturnValue>()
-
-    expectTypeOf(unwrapResult(returned)).not.toMatchTypeOf<RejectValue>()
-  })
-
-  test('regression #1156: union return values fall back to allowing only single member', () => {
-    const fn = createAsyncThunk('session/isAdmin', async () => {
-      const response: boolean = false
-      return response
-    })
-  })
-
-  test('Should handle reject with value within a try catch block. Note: this is a sample code taken from #1605', () => {
-    type ResultType = {
-      text: string
-    }
-    const demoPromise = async (): Promise<ResultType> =>
-      new Promise((resolve, _) => resolve({ text: '' }))
-    const thunk = createAsyncThunk('thunk', async (args, thunkAPI) => {
-      try {
-        const result = await demoPromise()
-        return result
-      } catch (error) {
-        return thunkAPI.rejectWithValue(error)
-      }
-    })
-    createReducer({}, (builder) =>
-      builder.addCase(thunk.fulfilled, (s, action) => {
-        expectTypeOf(action.payload).toEqualTypeOf<ResultType>()
-      }),
-    )
-  })
-
-  test('reject with value', () => {
-    interface Item {
-      name: string
-    }
-
-    interface ErrorFromServer {
-      error: string
-    }
-
-    interface CallsResponse {
-      data: Item[]
-    }
-
-    const fetchLiveCallsError = createAsyncThunk<
-      Item[],
-      string,
-      {
-        rejectValue: ErrorFromServer
-      }
-    >('calls/fetchLiveCalls', async (organizationId, { rejectWithValue }) => {
-      try {
-        const result = await apiRequest.get<CallsResponse>(
-          `organizations/${organizationId}/calls/live/iwill404`,
-        )
-        return result.data.data
-      } catch (err) {
-        const error: AxiosError<ErrorFromServer> = err as any // cast for access to AxiosError properties
-        if (!error.response) {
-          // let it be handled as any other unknown error
-          throw err
-        }
-        return rejectWithValue(error.response && error.response.data)
-      }
-    })
-
-    defaultDispatch(fetchLiveCallsError('asd')).then((result) => {
-      if (fetchLiveCallsError.fulfilled.match(result)) {
-        //success
-        expectTypeOf(result).toEqualTypeOf<
-          ReturnType<(typeof fetchLiveCallsError)['fulfilled']>
-        >()
-
-        expectTypeOf(result.payload).toEqualTypeOf<Item[]>()
-      } else {
-        expectTypeOf(result).toEqualTypeOf<
-          ReturnType<(typeof fetchLiveCallsError)['rejected']>
-        >()
-
-        if (result.payload) {
-          // rejected with value
-          expectTypeOf(result.payload).toEqualTypeOf<ErrorFromServer>()
-        } else {
-          // rejected by throw
-          expectTypeOf(result.payload).toBeUndefined()
-
-          expectTypeOf(result.error).toEqualTypeOf<SerializedError>()
-
-          expectTypeOf(result.error).not.toBeAny()
-        }
-      }
-      defaultDispatch(fetchLiveCallsError('asd'))
-        .then((result) => {
-          expectTypeOf(result.payload).toEqualTypeOf<
-            Item[] | ErrorFromServer | undefined
-          >()
-
-          return result
-        })
-        .then(unwrapResult)
-        .then((unwrapped) => {
-          expectTypeOf(unwrapped).toEqualTypeOf<Item[]>()
-
-          expectTypeOf(unwrapResult).parameter(0).not.toMatchTypeOf(unwrapped)
-        })
-    })
-  })
-
-  describe('payloadCreator first argument type has impact on asyncThunk argument', () => {
-    test('asyncThunk has no argument', () => {
-      const asyncThunk = createAsyncThunk('test', () => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<() => any>()
-
-      expectTypeOf(asyncThunk).parameters.toEqualTypeOf<
-        [undefined?, AsyncThunkDispatchConfig?]
-      >()
-
-      expectTypeOf(asyncThunk).returns.toBeFunction()
-    })
-
-    test('one argument, specified as undefined: asyncThunk has no argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: undefined) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<() => any>()
-
-      expectTypeOf(asyncThunk).parameters.toEqualTypeOf<
-        [undefined?, AsyncThunkDispatchConfig?]
-      >()
-    })
-
-    test('one argument, specified as void: asyncThunk has no argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: void) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<() => any>()
-    })
-
-    test('one argument, specified as optional number: asyncThunk has optional number argument', () => {
-      // this test will fail with strictNullChecks: false, that is to be expected
-      // in that case, we have to forbid this behavior or it will make arguments optional everywhere
-      const asyncThunk = createAsyncThunk('test', (arg?: number) => 0)
-
-      // Per https://github.com/reduxjs/redux-toolkit/issues/3758#issuecomment-1742152774 , this is a bug in
-      // TS 5.1 and 5.2, that is fixed in 5.3. Conditionally run the TS assertion here.
-      type IsTS51Or52 = TSVersion.Major extends 5
-        ? TSVersion.Minor extends 1 | 2
-          ? true
-          : false
-        : false
-
-      type expectedType = IsTS51Or52 extends true
-        ? (arg: number) => any
-        : (arg?: number) => any
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<expectedType>()
-
-      // We _should_ be able to call this with no arguments, but we run into that error in 5.1 and 5.2.
-      // Disabling this for now.
-      // asyncThunk()
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[string]>()
-    })
-
-    test('one argument, specified as number|undefined: asyncThunk has optional number argument', () => {
-      // this test will fail with strictNullChecks: false, that is to be expected
-      // in that case, we have to forbid this behavior or it will make arguments optional everywhere
-      const asyncThunk = createAsyncThunk(
-        'test',
-        (arg: number | undefined) => 0,
-      )
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg?: number) => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(undefined)
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[string]>()
-    })
-
-    test('one argument, specified as number|void: asyncThunk has optional number argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: number | void) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg?: number) => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(undefined)
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[string]>()
-    })
-
-    test('one argument, specified as any: asyncThunk has required any argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: any) => 0)
-
-      expectTypeOf(asyncThunk).parameter(0).toBeAny()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-
-    test('one argument, specified as unknown: asyncThunk has required unknown argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: unknown) => 0)
-
-      expectTypeOf(asyncThunk).parameter(0).toBeUnknown()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-
-    test('one argument, specified as number: asyncThunk has required number argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: number) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg: number) => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-
-    test('two arguments, first specified as undefined: asyncThunk has no argument', () => {
-      const asyncThunk = createAsyncThunk(
-        'test',
-        (arg: undefined, thunkApi) => 0,
-      )
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<() => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(undefined)
-
-      // cannot be called with an argument
-      expectTypeOf(asyncThunk).parameter(0).not.toBeAny()
-
-      expectTypeOf(asyncThunk).parameters.toEqualTypeOf<
-        [undefined?, AsyncThunkDispatchConfig?]
-      >()
-    })
-
-    test('two arguments, first specified as void: asyncThunk has no argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: void, thunkApi) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<() => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).parameter(0).toBeVoid()
-
-      // cannot be called with an argument
-      expectTypeOf(asyncThunk).parameter(0).not.toBeAny()
-
-      expectTypeOf(asyncThunk).parameters.toEqualTypeOf<
-        [undefined?, AsyncThunkDispatchConfig?]
-      >()
-    })
-
-    test('two arguments, first specified as number|undefined: asyncThunk has optional number argument', () => {
-      // this test will fail with strictNullChecks: false, that is to be expected
-      // in that case, we have to forbid this behavior or it will make arguments optional everywhere
-      const asyncThunk = createAsyncThunk(
-        'test',
-        (arg: number | undefined, thunkApi) => 0,
-      )
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg?: number) => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(undefined)
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameter(0).not.toBeString()
-    })
-
-    test('two arguments, first specified as number|void: asyncThunk has optional number argument', () => {
-      const asyncThunk = createAsyncThunk(
-        'test',
-        (arg: number | void, thunkApi) => 0,
-      )
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg?: number) => any>()
-
-      expectTypeOf(asyncThunk).toBeCallableWith()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(undefined)
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameter(0).not.toBeString()
-    })
-
-    test('two arguments, first specified as any: asyncThunk has required any argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: any, thunkApi) => 0)
-
-      expectTypeOf(asyncThunk).parameter(0).toBeAny()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-
-    test('two arguments, first specified as unknown: asyncThunk has required unknown argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: unknown, thunkApi) => 0)
-
-      expectTypeOf(asyncThunk).parameter(0).toBeUnknown()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-
-    test('two arguments, first specified as number: asyncThunk has required number argument', () => {
-      const asyncThunk = createAsyncThunk('test', (arg: number, thunkApi) => 0)
-
-      expectTypeOf(asyncThunk).toMatchTypeOf<(arg: number) => any>()
-
-      expectTypeOf(asyncThunk).parameter(0).toBeNumber()
-
-      expectTypeOf(asyncThunk).toBeCallableWith(5)
-
-      expectTypeOf(asyncThunk).parameters.not.toMatchTypeOf<[]>()
-    })
-  })
-
-  test('createAsyncThunk without generics', () => {
-    const thunk = createAsyncThunk('test', () => {
-      return 'ret' as const
-    })
-
-    expectTypeOf(thunk).toEqualTypeOf<AsyncThunk<'ret', void, {}>>()
-  })
-
-  test('createAsyncThunk without generics, accessing `api` does not break return type', () => {
-    const thunk = createAsyncThunk('test', (_: void, api) => {
-      return 'ret' as const
-    })
-
-    expectTypeOf(thunk).toEqualTypeOf<AsyncThunk<'ret', void, {}>>()
-  })
-
-  test('createAsyncThunk rejectWithValue without generics: Expect correct return type', () => {
-    const asyncThunk = createAsyncThunk(
-      'test',
-      (_: void, { rejectWithValue }) => {
-        try {
-          return Promise.resolve(true)
-        } catch (e) {
-          return rejectWithValue(e)
-        }
-      },
-    )
-
-    defaultDispatch(asyncThunk())
-      .then((result) => {
-        if (asyncThunk.fulfilled.match(result)) {
-          expectTypeOf(result).toEqualTypeOf<
-            ReturnType<(typeof asyncThunk)['fulfilled']>
-          >()
-
-          expectTypeOf(result.payload).toBeBoolean()
-
-          expectTypeOf(result).not.toHaveProperty('error')
-        } else {
-          expectTypeOf(result).toEqualTypeOf<
-            ReturnType<(typeof asyncThunk)['rejected']>
-          >()
-
-          expectTypeOf(result.error).toEqualTypeOf<SerializedError>()
-
-          expectTypeOf(result.payload).toBeUnknown()
-        }
-
-        return result
-      })
-      .then(unwrapResult)
-      .then((unwrapped) => {
-        expectTypeOf(unwrapped).toBeBoolean()
-      })
-  })
-
-  test('createAsyncThunk with generics', () => {
-    type Funky = { somethingElse: 'Funky!' }
-    function funkySerializeError(err: any): Funky {
-      return { somethingElse: 'Funky!' }
-    }
-
-    // has to stay on one line or type tests fail in older TS versions
-    // prettier-ignore
-    // @ts-expect-error
-    const shouldFail = createAsyncThunk('without generics', () => {}, { serializeError: funkySerializeError })
-
-    const shouldWork = createAsyncThunk<
-      any,
-      void,
-      { serializedErrorType: Funky }
-    >('with generics', () => {}, {
-      serializeError: funkySerializeError,
-    })
-
-    if (shouldWork.rejected.match(unknownAction)) {
-      expectTypeOf(unknownAction.error).toEqualTypeOf<Funky>()
-    }
-  })
-
-  test('`idGenerator` option takes no arguments, and returns a string', () => {
-    const returnsNumWithArgs = (foo: any) => 100
-    // has to stay on one line or type tests fail in older TS versions
-    // prettier-ignore
-    // @ts-expect-error
-    const shouldFailNumWithArgs = createAsyncThunk('foo', () => {}, { idGenerator: returnsNumWithArgs })
-
-    const returnsNumWithoutArgs = () => 100
-    // prettier-ignore
-    // @ts-expect-error
-    const shouldFailNumWithoutArgs = createAsyncThunk('foo', () => {}, { idGenerator: returnsNumWithoutArgs })
-
-    const returnsStrWithNumberArg = (foo: number) => 'foo'
-    // prettier-ignore
-    // @ts-expect-error
-    const shouldFailWrongArgs = createAsyncThunk('foo', (arg: string) => {}, { idGenerator: returnsStrWithNumberArg })
-
-    const returnsStrWithStringArg = (foo: string) => 'foo'
-    const shoulducceedCorrectArgs = createAsyncThunk(
-      'foo',
-      (arg: string) => {},
-      {
-        idGenerator: returnsStrWithStringArg,
-      },
-    )
-
-    const returnsStrWithoutArgs = () => 'foo'
-    const shouldSucceed = createAsyncThunk('foo', () => {}, {
-      idGenerator: returnsStrWithoutArgs,
-    })
-  })
-
-  test('fulfillWithValue should infer return value', () => {
-    // https://github.com/reduxjs/redux-toolkit/issues/2886
-
-    const initialState = {
-      loading: false,
-      obj: { magic: '' },
-    }
-
-    const getObj = createAsyncThunk(
-      'slice/getObj',
-      async (_: any, { fulfillWithValue, rejectWithValue }) => {
-        try {
-          return fulfillWithValue({ magic: 'object' })
-        } catch (rejected: any) {
-          return rejectWithValue(rejected?.response?.error || rejected)
-        }
-      },
-    )
-
-    createSlice({
-      name: 'slice',
-      initialState,
-      reducers: {},
-      extraReducers: (builder) => {
-        builder.addCase(getObj.fulfilled, (state, action) => {
-          expectTypeOf(action.payload).toEqualTypeOf<{ magic: string }>()
-        })
-      },
-    })
-  })
-
-  test('meta return values', () => {
-    // return values
-    createAsyncThunk<'ret', void, {}>('test', (_, api) => 'ret' as const)
-    createAsyncThunk<'ret', void, {}>('test', async (_, api) => 'ret' as const)
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>('test', (_, api) =>
-      api.fulfillWithValue('ret' as const, ''),
-    )
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>(
-      'test',
-      async (_, api) => api.fulfillWithValue('ret' as const, ''),
-    )
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>(
-      'test',
-      // @ts-expect-error has to be a fulfilledWithValue call
-      (_, api) => 'ret' as const,
-    )
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>(
-      'test',
-      // @ts-expect-error has to be a fulfilledWithValue call
-      async (_, api) => 'ret' as const,
-    )
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>(
-      'test', // @ts-expect-error should only allow returning with 'test'
-      (_, api) => api.fulfillWithValue(5, ''),
-    )
-    createAsyncThunk<'ret', void, { fulfilledMeta: string }>(
-      'test', // @ts-expect-error should only allow returning with 'test'
-      async (_, api) => api.fulfillWithValue(5, ''),
-    )
-
-    // reject values
-    createAsyncThunk<'ret', void, { rejectValue: string }>('test', (_, api) =>
-      api.rejectWithValue('ret'),
-    )
-    createAsyncThunk<'ret', void, { rejectValue: string }>(
-      'test',
-      async (_, api) => api.rejectWithValue('ret'),
-    )
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >('test', (_, api) => api.rejectWithValue('ret', 5))
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >('test', async (_, api) => api.rejectWithValue('ret', 5))
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >('test', (_, api) => api.rejectWithValue('ret', 5))
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >(
-      'test',
-      // @ts-expect-error wrong rejectedMeta type
-      (_, api) => api.rejectWithValue('ret', ''),
-    )
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >(
-      'test',
-      // @ts-expect-error wrong rejectedMeta type
-      async (_, api) => api.rejectWithValue('ret', ''),
-    )
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >(
-      'test',
-      // @ts-expect-error wrong rejectValue type
-      (_, api) => api.rejectWithValue(5, ''),
-    )
-    createAsyncThunk<
-      'ret',
-      void,
-      { rejectValue: string; rejectedMeta: number }
-    >(
-      'test',
-      // @ts-expect-error wrong rejectValue type
-      async (_, api) => api.rejectWithValue(5, ''),
-    )
-  })
-
-  test('usage with config override generic', () => {
-    const typedCAT = createAsyncThunk.withTypes<{
-      state: RootState
-      dispatch: AppDispatch
-      rejectValue: string
-      extra: { s: string; n: number }
-    }>()
-
-    // inferred usage
-    const thunk = typedCAT('foo', (arg: number, api) => {
-      // correct getState Type
-      const test1: number = api.getState().foo.value
-      // correct dispatch type
-      const test2: number = api.dispatch((dispatch, getState) => {
-        expectTypeOf(dispatch).toEqualTypeOf<
-          ThunkDispatch<{ foo: { value: number } }, undefined, UnknownAction>
-        >()
-
-        expectTypeOf(getState).toEqualTypeOf<() => { foo: { value: number } }>()
-
-        return getState().foo.value
-      })
-
-      // correct extra type
-      const { s, n } = api.extra
-
-      expectTypeOf(s).toBeString()
-
-      expectTypeOf(n).toBeNumber()
-
-      if (1 < 2)
-        // @ts-expect-error
-        return api.rejectWithValue(5)
-      if (1 < 2) return api.rejectWithValue('test')
-      return test1 + test2
-    })
-
-    // usage with two generics
-    const thunk2 = typedCAT<number, string>('foo', (arg, api) => {
-      expectTypeOf(arg).toBeString()
-
-      // correct getState Type
-      const test1: number = api.getState().foo.value
-      // correct dispatch type
-      const test2: number = api.dispatch((dispatch, getState) => {
-        expectTypeOf(dispatch).toEqualTypeOf<
-          ThunkDispatch<{ foo: { value: number } }, undefined, UnknownAction>
-        >()
-
-        expectTypeOf(getState).toEqualTypeOf<() => { foo: { value: number } }>()
-
-        return getState().foo.value
-      })
-      // correct extra type
-      const { s, n } = api.extra
-
-      expectTypeOf(s).toBeString()
-
-      expectTypeOf(n).toBeNumber()
-
-      if (1 < 2) expectTypeOf(api.rejectWithValue).toBeCallableWith('test')
-
-      expectTypeOf(api.rejectWithValue).parameter(0).not.toBeNumber()
-
-      expectTypeOf(api.rejectWithValue).parameters.toEqualTypeOf<[string]>()
-
-      return api.rejectWithValue('test')
-    })
-
-    // usage with config override generic
-    const thunk3 = typedCAT<number, string, { rejectValue: number }>(
-      'foo',
-      (arg, api) => {
-        expectTypeOf(arg).toBeString()
-
-        // correct getState Type
-        const test1: number = api.getState().foo.value
-        // correct dispatch type
-        const test2: number = api.dispatch((dispatch, getState) => {
-          expectTypeOf(dispatch).toEqualTypeOf<
-            ThunkDispatch<{ foo: { value: number } }, undefined, UnknownAction>
-          >()
-
-          expectTypeOf(getState).toEqualTypeOf<
-            () => { foo: { value: number } }
-          >()
-
-          return getState().foo.value
-        })
-        // correct extra type
-        const { s, n } = api.extra
-
-        expectTypeOf(s).toBeString()
-
-        expectTypeOf(n).toBeNumber()
-
-        if (1 < 2) return api.rejectWithValue(5)
-        if (1 < 2) expectTypeOf(api.rejectWithValue).toBeCallableWith(5)
-
-        expectTypeOf(api.rejectWithValue).parameter(0).not.toBeString()
-
-        expectTypeOf(api.rejectWithValue).parameters.toEqualTypeOf<[number]>()
-
-        return api.rejectWithValue(5)
-      },
-    )
-
-    const slice = createSlice({
-      name: 'foo',
-      initialState: { value: 0 },
-      reducers: {},
-      extraReducers(builder) {
-        builder
-          .addCase(thunk.fulfilled, (state, action) => {
-            state.value += action.payload
-          })
-          .addCase(thunk.rejected, (state, action) => {
-            expectTypeOf(action.payload).toEqualTypeOf<string | undefined>()
-          })
-          .addCase(thunk2.fulfilled, (state, action) => {
-            state.value += action.payload
-          })
-          .addCase(thunk2.rejected, (state, action) => {
-            expectTypeOf(action.payload).toEqualTypeOf<string | undefined>()
-          })
-          .addCase(thunk3.fulfilled, (state, action) => {
-            state.value += action.payload
-          })
-          .addCase(thunk3.rejected, (state, action) => {
-            expectTypeOf(action.payload).toEqualTypeOf<number | undefined>()
-          })
-      },
-    })
-
-    const store = configureStore({
-      reducer: {
-        foo: slice.reducer,
-      },
-    })
-
-    type RootState = ReturnType<typeof store.getState>
-    type AppDispatch = typeof store.dispatch
-  })
-
-  test('rejectedMeta', async () => {
-    const getNewStore = () =>
-      configureStore({
-        reducer(actions = [], action) {
-          return [...actions, action]
-        },
-      })
-
-    const store = getNewStore()
-
-    const fulfilledThunk = createAsyncThunk<
-      string,
-      string,
-      { rejectedMeta: { extraProp: string } }
-    >('test', (arg: string, { rejectWithValue }) => {
-      return rejectWithValue('damn!', { extraProp: 'baz' })
-    })
-
-    const promise = store.dispatch(fulfilledThunk('testArg'))
-
-    const ret = await promise
-
-    if (ret.meta.requestStatus === 'rejected' && ret.meta.rejectedWithValue) {
-      expectTypeOf(ret.meta.extraProp).toBeString()
-    } else {
-      // could be caused by a `throw`, `abort()` or `condition` - no `rejectedMeta` in that case
-      expectTypeOf(ret.meta).not.toHaveProperty('extraProp')
-    }
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createAsyncThunk.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createAsyncThunk.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1045 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { delay, promiseWithResolvers } from '@internal/utils'
-import type { CreateAsyncThunkFunction, UnknownAction } from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createAsyncThunk,
-  createReducer,
-  miniSerializeError,
-  unwrapResult,
-} from '@reduxjs/toolkit'
-
-declare global {
-  interface Window {
-    AbortController: AbortController
-  }
-}
-
-describe('createAsyncThunk', () => {
-  it('creates the action types', () => {
-    const thunkActionCreator = createAsyncThunk('testType', async () => 42)
-
-    expect(thunkActionCreator.fulfilled.type).toBe('testType/fulfilled')
-    expect(thunkActionCreator.pending.type).toBe('testType/pending')
-    expect(thunkActionCreator.rejected.type).toBe('testType/rejected')
-  })
-
-  it('exposes the typePrefix it was created with', () => {
-    const thunkActionCreator = createAsyncThunk('testType', async () => 42)
-
-    expect(thunkActionCreator.typePrefix).toBe('testType')
-  })
-
-  it('includes a settled matcher', () => {
-    const thunkActionCreator = createAsyncThunk('testType', async () => 42)
-    expect(thunkActionCreator.settled).toEqual(expect.any(Function))
-    expect(thunkActionCreator.settled(thunkActionCreator.pending(''))).toBe(
-      false,
-    )
-    expect(
-      thunkActionCreator.settled(thunkActionCreator.rejected(null, '')),
-    ).toBe(true)
-    expect(
-      thunkActionCreator.settled(thunkActionCreator.fulfilled(42, '')),
-    ).toBe(true)
-  })
-
-  it('works without passing arguments to the payload creator', async () => {
-    const thunkActionCreator = createAsyncThunk('testType', async () => 42)
-
-    let timesReducerCalled = 0
-
-    const reducer = () => {
-      timesReducerCalled++
-    }
-
-    const store = configureStore({
-      reducer,
-    })
-
-    // reset from however many times the store called it
-    timesReducerCalled = 0
-
-    await store.dispatch(thunkActionCreator())
-
-    expect(timesReducerCalled).toBe(2)
-  })
-
-  it('accepts arguments and dispatches the actions on resolve', async () => {
-    const dispatch = vi.fn()
-
-    let passedArg: any
-
-    const result = 42
-    const args = 123
-    let generatedRequestId = ''
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (arg: number, { requestId }) => {
-        passedArg = arg
-        generatedRequestId = requestId
-        return result
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    const thunkPromise = thunkFunction(dispatch, () => {}, undefined)
-
-    expect(thunkPromise.requestId).toBe(generatedRequestId)
-    expect(thunkPromise.arg).toBe(args)
-
-    await thunkPromise
-
-    expect(passedArg).toBe(args)
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      2,
-      thunkActionCreator.fulfilled(result, generatedRequestId, args),
-    )
-  })
-
-  it('accepts arguments and dispatches the actions on reject', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const error = new Error('Panic!')
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId }) => {
-        generatedRequestId = requestId
-        throw error
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    // Have to check the bits of the action separately since the error was processed
-    const errorAction = dispatch.mock.calls[1][0]
-    expect(errorAction.error).toEqual(miniSerializeError(error))
-    expect(errorAction.meta.requestId).toBe(generatedRequestId)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-
-  it('dispatches an empty error when throwing a random object without serializedError properties', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const errorObject = { wny: 'dothis' }
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId }) => {
-        generatedRequestId = requestId
-        throw errorObject
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    const errorAction = dispatch.mock.calls[1][0]
-    expect(errorAction.error).toEqual({})
-    expect(errorAction.meta.requestId).toBe(generatedRequestId)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-
-  it('dispatches an action with a formatted error when throwing an object with known error keys', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const errorObject = {
-      name: 'Custom thrown error',
-      message: 'This is not necessary',
-      code: '400',
-    }
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId }) => {
-        generatedRequestId = requestId
-        throw errorObject
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    // Have to check the bits of the action separately since the error was processed
-    const errorAction = dispatch.mock.calls[1][0]
-    expect(errorAction.error).toEqual(miniSerializeError(errorObject))
-    expect(Object.keys(errorAction.error)).not.toContain('stack')
-    expect(errorAction.meta.requestId).toBe(generatedRequestId)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-
-  it('dispatches a rejected action with a customized payload when a user returns rejectWithValue()', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const errorPayload = {
-      errorMessage:
-        'I am a fake server-provided 400 payload with validation details',
-      errors: [
-        { field_one: 'Must be a string' },
-        { field_two: 'Must be a number' },
-      ],
-    }
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId, rejectWithValue }) => {
-        generatedRequestId = requestId
-
-        return rejectWithValue(errorPayload)
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    // Have to check the bits of the action separately since the error was processed
-    const errorAction = dispatch.mock.calls[1][0]
-
-    expect(errorAction.error.message).toEqual('Rejected')
-    expect(errorAction.payload).toBe(errorPayload)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-
-  it('dispatches a rejected action with a customized payload when a user throws rejectWithValue()', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const errorPayload = {
-      errorMessage:
-        'I am a fake server-provided 400 payload with validation details',
-      errors: [
-        { field_one: 'Must be a string' },
-        { field_two: 'Must be a number' },
-      ],
-    }
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId, rejectWithValue }) => {
-        generatedRequestId = requestId
-
-        throw rejectWithValue(errorPayload)
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    // Have to check the bits of the action separately since the error was processed
-    const errorAction = dispatch.mock.calls[1][0]
-
-    expect(errorAction.error.message).toEqual('Rejected')
-    expect(errorAction.payload).toBe(errorPayload)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-
-  it('dispatches a rejected action with a miniSerializeError when rejectWithValue conditions are not satisfied', async () => {
-    const dispatch = vi.fn()
-
-    const args = 123
-    let generatedRequestId = ''
-
-    const error = new Error('Panic!')
-
-    const errorPayload = {
-      errorMessage:
-        'I am a fake server-provided 400 payload with validation details',
-      errors: [
-        { field_one: 'Must be a string' },
-        { field_two: 'Must be a number' },
-      ],
-    }
-
-    const thunkActionCreator = createAsyncThunk(
-      'testType',
-      async (args: number, { requestId, rejectWithValue }) => {
-        generatedRequestId = requestId
-
-        try {
-          throw error
-        } catch (err) {
-          if (!(err as any).response) {
-            throw err
-          }
-          return rejectWithValue(errorPayload)
-        }
-      },
-    )
-
-    const thunkFunction = thunkActionCreator(args)
-
-    try {
-      await thunkFunction(dispatch, () => {}, undefined)
-    } catch (e) {}
-
-    expect(dispatch).toHaveBeenNthCalledWith(
-      1,
-      thunkActionCreator.pending(generatedRequestId, args),
-    )
-
-    expect(dispatch).toHaveBeenCalledTimes(2)
-
-    // Have to check the bits of the action separately since the error was processed
-    const errorAction = dispatch.mock.calls[1][0]
-    expect(errorAction.error).toEqual(miniSerializeError(error))
-    expect(errorAction.payload).toEqual(undefined)
-    expect(errorAction.meta.requestId).toBe(generatedRequestId)
-    expect(errorAction.meta.arg).toBe(args)
-  })
-})
-
-describe('createAsyncThunk with abortController', () => {
-  const asyncThunk = createAsyncThunk(
-    'test',
-    function abortablePayloadCreator(_: any, { signal }) {
-      return new Promise((resolve, reject) => {
-        if (signal.aborted) {
-          reject(
-            new DOMException(
-              'This should never be reached as it should already be handled.',
-              'AbortError',
-            ),
-          )
-        }
-        signal.addEventListener('abort', () => {
-          reject(new DOMException('Was aborted while running', 'AbortError'))
-        })
-        setTimeout(resolve, 100)
-      })
-    },
-  )
-
-  let store = configureStore({
-    reducer(store: UnknownAction[] = []) {
-      return store
-    },
-  })
-
-  beforeEach(() => {
-    store = configureStore({
-      reducer(store: UnknownAction[] = [], action) {
-        return [...store, action]
-      },
-    })
-  })
-
-  test('normal usage', async () => {
-    await store.dispatch(asyncThunk({}))
-    expect(store.getState()).toEqual([
-      expect.any(Object),
-      expect.objectContaining({ type: 'test/pending' }),
-      expect.objectContaining({ type: 'test/fulfilled' }),
-    ])
-  })
-
-  test('abort after dispatch', async () => {
-    const promise = store.dispatch(asyncThunk({}))
-    promise.abort('AbortReason')
-    const result = await promise
-    const expectedAbortedAction = {
-      type: 'test/rejected',
-      error: {
-        message: 'AbortReason',
-        name: 'AbortError',
-      },
-      meta: { aborted: true, requestId: promise.requestId },
-    }
-
-    // abortedAction with reason is dispatched after test/pending is dispatched
-    expect(store.getState()).toMatchObject([
-      {},
-      { type: 'test/pending' },
-      expectedAbortedAction,
-    ])
-
-    // same abortedAction is returned, but with the AbortError from the abortablePayloadCreator
-    expect(result).toMatchObject(expectedAbortedAction)
-
-    // calling unwrapResult on the returned object re-throws the error from the abortablePayloadCreator
-    expect(() => unwrapResult(result)).toThrowError(
-      expect.objectContaining(expectedAbortedAction.error),
-    )
-  })
-
-  test('even when the payloadCreator does not directly support the signal, no further actions are dispatched', async () => {
-    const unawareAsyncThunk = createAsyncThunk('unaware', async () => {
-      await new Promise((resolve) => setTimeout(resolve, 100))
-      return 'finished'
-    })
-
-    const promise = store.dispatch(unawareAsyncThunk())
-    promise.abort('AbortReason')
-    const result = await promise
-
-    const expectedAbortedAction = {
-      type: 'unaware/rejected',
-      error: {
-        message: 'AbortReason',
-        name: 'AbortError',
-      },
-    }
-
-    // abortedAction with reason is dispatched after test/pending is dispatched
-    expect(store.getState()).toEqual([
-      expect.any(Object),
-      expect.objectContaining({ type: 'unaware/pending' }),
-      expect.objectContaining(expectedAbortedAction),
-    ])
-
-    // same abortedAction is returned, but with the AbortError from the abortablePayloadCreator
-    expect(result).toMatchObject(expectedAbortedAction)
-
-    // calling unwrapResult on the returned object re-throws the error from the abortablePayloadCreator
-    expect(() => unwrapResult(result)).toThrowError(
-      expect.objectContaining(expectedAbortedAction.error),
-    )
-  })
-
-  test('dispatch(asyncThunk) returns on abort and does not wait for the promiseProvider to finish', async () => {
-    let running = false
-    const longRunningAsyncThunk = createAsyncThunk('longRunning', async () => {
-      running = true
-      await new Promise((resolve) => setTimeout(resolve, 30000))
-      running = false
-    })
-
-    const promise = store.dispatch(longRunningAsyncThunk())
-    expect(running).toBeTruthy()
-    promise.abort()
-    const result = await promise
-    expect(running).toBeTruthy()
-    expect(result).toMatchObject({
-      type: 'longRunning/rejected',
-      error: { message: 'Aborted', name: 'AbortError' },
-      meta: { aborted: true },
-    })
-  })
-
-  describe('behavior with missing AbortController', () => {
-    let keepAbortController: (typeof window)['AbortController']
-    let freshlyLoadedModule: typeof import('../createAsyncThunk')
-
-    beforeEach(async () => {
-      keepAbortController = window.AbortController
-      delete (window as any).AbortController
-      vi.resetModules()
-      freshlyLoadedModule = await import('../createAsyncThunk')
-      vi.stubEnv('NODE_ENV', 'development')
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-      vi.clearAllMocks()
-      vi.stubGlobal('AbortController', keepAbortController)
-      vi.resetModules()
-    })
-
-    test('calling a thunk made with createAsyncThunk should fail if no global abortController is not available', async () => {
-      const longRunningAsyncThunk = freshlyLoadedModule.createAsyncThunk(
-        'longRunning',
-        async () => {
-          await new Promise((resolve) => setTimeout(resolve, 30000))
-        },
-      )
-
-      expect(longRunningAsyncThunk()).toThrow('AbortController is not defined')
-    })
-  })
-})
-
-test('non-serializable arguments are ignored by serializableStateInvariantMiddleware', async () => {
-  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-  const nonSerializableValue = new Map()
-  const asyncThunk = createAsyncThunk('test', (arg: Map<any, any>) => {})
-
-  configureStore({
-    reducer: () => 0,
-  }).dispatch(asyncThunk(nonSerializableValue))
-
-  expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-  consoleErrorSpy.mockRestore()
-})
-
-describe('conditional skipping of asyncThunks', () => {
-  const arg = {}
-  const getState = vi.fn(() => ({}))
-  const dispatch = vi.fn((x: any) => x)
-  const payloadCreator = vi.fn((x: typeof arg) => 10)
-  const condition = vi.fn(() => false)
-  const extra = {}
-
-  beforeEach(() => {
-    getState.mockClear()
-    dispatch.mockClear()
-    payloadCreator.mockClear()
-    condition.mockClear()
-  })
-
-  test('returning false from condition skips payloadCreator and returns a rejected action', async () => {
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    const result = await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(condition).toHaveBeenCalled()
-    expect(payloadCreator).not.toHaveBeenCalled()
-    expect(asyncThunk.rejected.match(result)).toBe(true)
-    expect((result as any).meta.condition).toBe(true)
-  })
-
-  test('return falsy from condition does not skip payload creator', async () => {
-    // Override TS's expectation that this is a boolean
-    condition.mockReturnValueOnce(undefined as unknown as boolean)
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    const result = await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(condition).toHaveBeenCalled()
-    expect(payloadCreator).toHaveBeenCalled()
-    expect(asyncThunk.fulfilled.match(result)).toBe(true)
-    expect(result.payload).toBe(10)
-  })
-
-  test('returning true from condition executes payloadCreator', async () => {
-    condition.mockReturnValueOnce(true)
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    const result = await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(condition).toHaveBeenCalled()
-    expect(payloadCreator).toHaveBeenCalled()
-    expect(asyncThunk.fulfilled.match(result)).toBe(true)
-    expect(result.payload).toBe(10)
-  })
-
-  test('condition is called with arg, getState and extra', async () => {
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(condition).toHaveBeenCalledOnce()
-    expect(condition).toHaveBeenLastCalledWith(
-      arg,
-      expect.objectContaining({ getState, extra }),
-    )
-  })
-
-  test('pending is dispatched synchronously if condition is synchronous', async () => {
-    const condition = () => true
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    const thunkCallPromise = asyncThunk(arg)(dispatch, getState, extra)
-    expect(dispatch).toHaveBeenCalledOnce()
-    await thunkCallPromise
-    expect(dispatch).toHaveBeenCalledTimes(2)
-  })
-
-  test('async condition', async () => {
-    const condition = () => Promise.resolve(false)
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    await asyncThunk(arg)(dispatch, getState, extra)
-    expect(dispatch).not.toHaveBeenCalled()
-  })
-
-  test('async condition with rejected promise', async () => {
-    const condition = () => Promise.reject()
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    await asyncThunk(arg)(dispatch, getState, extra)
-    expect(dispatch).toHaveBeenCalledOnce()
-    expect(dispatch).toHaveBeenLastCalledWith(
-      expect.objectContaining({ type: 'test/rejected' }),
-    )
-  })
-
-  test('async condition with AbortController signal first', async () => {
-    const condition = async () => {
-      await delay(25)
-      return true
-    }
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-
-    try {
-      const thunkPromise = asyncThunk(arg)(dispatch, getState, extra)
-      thunkPromise.abort()
-      await thunkPromise
-    } catch (err) {}
-    expect(dispatch).not.toHaveBeenCalled()
-  })
-
-  test('rejected action is not dispatched by default', async () => {
-    const asyncThunk = createAsyncThunk('test', payloadCreator, { condition })
-    await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(dispatch).not.toHaveBeenCalled()
-  })
-
-  test('does not fail when attempting to abort a canceled promise', async () => {
-    const asyncPayloadCreator = vi.fn(async (x: typeof arg) => {
-      await delay(200)
-      return 10
-    })
-
-    const asyncThunk = createAsyncThunk('test', asyncPayloadCreator, {
-      condition,
-    })
-    const promise = asyncThunk(arg)(dispatch, getState, extra)
-    promise.abort(
-      `If the promise was 1. somehow canceled, 2. in a 'started' state and 3. we attempted to abort, this would crash the tests`,
-    )
-  })
-
-  test('rejected action can be dispatched via option', async () => {
-    const asyncThunk = createAsyncThunk('test', payloadCreator, {
-      condition,
-      dispatchConditionRejection: true,
-    })
-    await asyncThunk(arg)(dispatch, getState, extra)
-
-    expect(dispatch).toHaveBeenCalledOnce()
-    expect(dispatch).toHaveBeenLastCalledWith(
-      expect.objectContaining({
-        error: {
-          message: 'Aborted due to condition callback returning false.',
-          name: 'ConditionError',
-        },
-        meta: {
-          aborted: false,
-          arg,
-          rejectedWithValue: false,
-          condition: true,
-          requestId: expect.stringContaining(''),
-          requestStatus: 'rejected',
-        },
-        payload: undefined,
-        type: 'test/rejected',
-      }),
-    )
-  })
-})
-
-test('serializeError implementation', async () => {
-  function serializeError() {
-    return 'serialized!'
-  }
-  const errorObject = 'something else!'
-
-  const store = configureStore({
-    reducer: (state = [], action) => [...state, action],
-  })
-
-  const asyncThunk = createAsyncThunk<
-    unknown,
-    void,
-    { serializedErrorType: string }
-  >('test', () => Promise.reject(errorObject), { serializeError })
-  const rejected = await store.dispatch(asyncThunk())
-  if (!asyncThunk.rejected.match(rejected)) {
-    throw new Error()
-  }
-
-  const expectation = {
-    type: 'test/rejected',
-    payload: undefined,
-    error: 'serialized!',
-    meta: expect.any(Object),
-  }
-  expect(rejected).toEqual(expectation)
-  expect(store.getState()[2]).toEqual(expectation)
-  expect(rejected.error).not.toEqual(miniSerializeError(errorObject))
-})
-
-describe('unwrapResult', () => {
-  const getState = vi.fn(() => ({}))
-  const dispatch = vi.fn((x: any) => x)
-  const extra = {}
-  test('fulfilled case', async () => {
-    const asyncThunk = createAsyncThunk('test', () => {
-      return 'fulfilled!' as const
-    })
-
-    const unwrapPromise = asyncThunk()(dispatch, getState, extra).then(
-      unwrapResult,
-    )
-
-    await expect(unwrapPromise).resolves.toBe('fulfilled!')
-
-    const unwrapPromise2 = asyncThunk()(dispatch, getState, extra)
-    const res = await unwrapPromise2.unwrap()
-    expect(res).toBe('fulfilled!')
-  })
-  test('error case', async () => {
-    const error = new Error('Panic!')
-    const asyncThunk = createAsyncThunk('test', () => {
-      throw error
-    })
-
-    const unwrapPromise = asyncThunk()(dispatch, getState, extra).then(
-      unwrapResult,
-    )
-
-    await expect(unwrapPromise).rejects.toEqual(miniSerializeError(error))
-
-    const unwrapPromise2 = asyncThunk()(dispatch, getState, extra)
-    await expect(unwrapPromise2.unwrap()).rejects.toEqual(
-      miniSerializeError(error),
-    )
-  })
-  test('rejectWithValue case', async () => {
-    const asyncThunk = createAsyncThunk('test', (_, { rejectWithValue }) => {
-      return rejectWithValue('rejectWithValue!')
-    })
-
-    const unwrapPromise = asyncThunk()(dispatch, getState, extra).then(
-      unwrapResult,
-    )
-
-    await expect(unwrapPromise).rejects.toBe('rejectWithValue!')
-
-    const unwrapPromise2 = asyncThunk()(dispatch, getState, extra)
-    await expect(unwrapPromise2.unwrap()).rejects.toBe('rejectWithValue!')
-  })
-})
-
-describe('idGenerator option', () => {
-  const getState = () => ({})
-  const dispatch = (x: any) => x
-  const extra = {}
-
-  test('idGenerator implementation - can customizes how request IDs are generated', async () => {
-    function makeFakeIdGenerator() {
-      let id = 0
-      return vi.fn(() => {
-        id++
-        return `fake-random-id-${id}`
-      })
-    }
-
-    let generatedRequestId = ''
-
-    const idGenerator = makeFakeIdGenerator()
-    const asyncThunk = createAsyncThunk(
-      'test',
-      async (args: void, { requestId }) => {
-        generatedRequestId = requestId
-      },
-      { idGenerator },
-    )
-
-    // dispatching the thunks should be using the custom id generator
-    const promise0 = asyncThunk()(dispatch, getState, extra)
-    expect(generatedRequestId).toEqual('fake-random-id-1')
-    expect(promise0.requestId).toEqual('fake-random-id-1')
-    expect((await promise0).meta.requestId).toEqual('fake-random-id-1')
-
-    const promise1 = asyncThunk()(dispatch, getState, extra)
-    expect(generatedRequestId).toEqual('fake-random-id-2')
-    expect(promise1.requestId).toEqual('fake-random-id-2')
-    expect((await promise1).meta.requestId).toEqual('fake-random-id-2')
-
-    const promise2 = asyncThunk()(dispatch, getState, extra)
-    expect(generatedRequestId).toEqual('fake-random-id-3')
-    expect(promise2.requestId).toEqual('fake-random-id-3')
-    expect((await promise2).meta.requestId).toEqual('fake-random-id-3')
-
-    generatedRequestId = ''
-    const defaultAsyncThunk = createAsyncThunk(
-      'test',
-      async (args: void, { requestId }) => {
-        generatedRequestId = requestId
-      },
-    )
-    // dispatching the default options thunk should still generate an id,
-    // but not using the custom id generator
-    const promise3 = defaultAsyncThunk()(dispatch, getState, extra)
-    expect(generatedRequestId).toEqual(promise3.requestId)
-    expect(promise3.requestId).not.toEqual('')
-    expect(promise3.requestId).not.toEqual(
-      expect.stringContaining('fake-random-id'),
-    )
-    expect((await promise3).meta.requestId).not.toEqual(
-      expect.stringContaining('fake-fandom-id'),
-    )
-  })
-
-  test('idGenerator should be called with thunkArg', async () => {
-    const customIdGenerator = vi.fn((seed) => `fake-unique-random-id-${seed}`)
-    let generatedRequestId = ''
-    const asyncThunk = createAsyncThunk(
-      'test',
-      async (args: any, { requestId }) => {
-        generatedRequestId = requestId
-      },
-      { idGenerator: customIdGenerator },
-    )
-
-    const thunkArg = 1
-    const expected = 'fake-unique-random-id-1'
-    const asyncThunkPromise = asyncThunk(thunkArg)(dispatch, getState, extra)
-
-    expect(customIdGenerator).toHaveBeenCalledWith(thunkArg)
-    expect(asyncThunkPromise.requestId).toEqual(expected)
-    expect((await asyncThunkPromise).meta.requestId).toEqual(expected)
-  })
-})
-
-test('`condition` will see state changes from a synchronously invoked asyncThunk', () => {
-  type State = ReturnType<typeof store.getState>
-  const onStart = vi.fn()
-  const asyncThunk = createAsyncThunk<
-    void,
-    { force?: boolean },
-    { state: State }
-  >('test', onStart, {
-    condition({ force }, { getState }) {
-      return force || !getState().started
-    },
-  })
-  const store = configureStore({
-    reducer: createReducer({ started: false }, (builder) => {
-      builder.addCase(asyncThunk.pending, (state) => {
-        state.started = true
-      })
-    }),
-  })
-
-  store.dispatch(asyncThunk({ force: false }))
-  expect(onStart).toHaveBeenCalledOnce()
-  store.dispatch(asyncThunk({ force: false }))
-  expect(onStart).toHaveBeenCalledOnce()
-  store.dispatch(asyncThunk({ force: true }))
-  expect(onStart).toHaveBeenCalledTimes(2)
-})
-
-const getNewStore = () =>
-  configureStore({
-    reducer(actions: UnknownAction[] = [], action) {
-      return [...actions, action]
-    },
-  })
-
-describe('meta', () => {
-  let store = getNewStore()
-
-  beforeEach(() => {
-    store = getNewStore()
-  })
-
-  test('pendingMeta', () => {
-    const pendingThunk = createAsyncThunk('test', (arg: string) => {}, {
-      getPendingMeta({ arg, requestId }) {
-        expect(arg).toBe('testArg')
-        expect(requestId).toEqual(expect.any(String))
-        return { extraProp: 'foo' }
-      },
-    })
-    const ret = store.dispatch(pendingThunk('testArg'))
-    expect(store.getState()[1]).toEqual({
-      meta: {
-        arg: 'testArg',
-        extraProp: 'foo',
-        requestId: ret.requestId,
-        requestStatus: 'pending',
-      },
-      payload: undefined,
-      type: 'test/pending',
-    })
-  })
-
-  test('fulfilledMeta', async () => {
-    const fulfilledThunk = createAsyncThunk<
-      string,
-      string,
-      { fulfilledMeta: { extraProp: string } }
-    >('test', (arg: string, { fulfillWithValue }) => {
-      return fulfillWithValue('hooray!', { extraProp: 'bar' })
-    })
-    const ret = store.dispatch(fulfilledThunk('testArg'))
-    expect(await ret).toEqual({
-      meta: {
-        arg: 'testArg',
-        extraProp: 'bar',
-        requestId: ret.requestId,
-        requestStatus: 'fulfilled',
-      },
-      payload: 'hooray!',
-      type: 'test/fulfilled',
-    })
-  })
-
-  test('rejectedMeta', async () => {
-    const fulfilledThunk = createAsyncThunk<
-      string,
-      string,
-      { rejectedMeta: { extraProp: string } }
-    >('test', (arg: string, { rejectWithValue }) => {
-      return rejectWithValue('damn!', { extraProp: 'baz' })
-    })
-    const promise = store.dispatch(fulfilledThunk('testArg'))
-    const ret = await promise
-    expect(ret).toEqual({
-      meta: {
-        arg: 'testArg',
-        extraProp: 'baz',
-        requestId: promise.requestId,
-        requestStatus: 'rejected',
-        rejectedWithValue: true,
-        aborted: false,
-        condition: false,
-      },
-      error: { message: 'Rejected' },
-      payload: 'damn!',
-      type: 'test/rejected',
-    })
-
-    if (ret.meta.requestStatus === 'rejected' && ret.meta.rejectedWithValue) {
-    } else {
-      // could be caused by a `throw`, `abort()` or `condition` - no `rejectedMeta` in that case
-      // @ts-expect-error
-      ret.meta.extraProp
-    }
-  })
-
-  test('typed createAsyncThunk.withTypes', () => {
-    const typedCAT = createAsyncThunk.withTypes<{
-      state: { s: string }
-      rejectValue: string
-      extra: { s: string; n: number }
-    }>()
-    const thunk = typedCAT('a', () => 'b')
-    const expectFunction = expect.any(Function)
-    expect(thunk.fulfilled).toEqual(expectFunction)
-    expect(thunk.pending).toEqual(expectFunction)
-    expect(thunk.rejected).toEqual(expectFunction)
-    expect(thunk.settled).toEqual(expectFunction)
-    expect(thunk.fulfilled.type).toBe('a/fulfilled')
-  })
-  test('createAsyncThunkWrapper using CreateAsyncThunkFunction', async () => {
-    const customSerializeError = () => 'serialized!'
-    const createAppAsyncThunk: CreateAsyncThunkFunction<{
-      serializedErrorType: ReturnType<typeof customSerializeError>
-    }> = (prefix: string, payloadCreator: any, options: any) =>
-      createAsyncThunk(prefix, payloadCreator, {
-        ...options,
-        serializeError: customSerializeError,
-      }) as any
-
-    const asyncThunk = createAppAsyncThunk('test', async () => {
-      throw new Error('Panic!')
-    })
-
-    const promise = store.dispatch(asyncThunk())
-    const result = await promise
-    if (!asyncThunk.rejected.match(result)) {
-      throw new Error('should have thrown')
-    }
-    expect(result.error).toEqual('serialized!')
-  })
-})
-
-describe('dispatch config', () => {
-  let store = getNewStore()
-
-  beforeEach(() => {
-    store = getNewStore()
-  })
-  test('accepts external signal', async () => {
-    const asyncThunk = createAsyncThunk('test', async (_: void, { signal }) => {
-      signal.throwIfAborted()
-      const { promise, reject } = promiseWithResolvers<never>()
-      signal.addEventListener('abort', () => reject(signal.reason))
-      return promise
-    })
-
-    const abortController = new AbortController()
-    const promise = store.dispatch(
-      asyncThunk(undefined, { signal: abortController.signal }),
-    )
-    abortController.abort()
-    await expect(promise.unwrap()).rejects.toThrow(
-      'External signal was aborted',
-    )
-  })
-  test('handles already aborted external signal', async () => {
-    const asyncThunk = createAsyncThunk('test', async (_: void, { signal }) => {
-      signal.throwIfAborted()
-      const { promise, reject } = promiseWithResolvers<never>()
-      signal.addEventListener('abort', () => reject(signal.reason))
-      return promise
-    })
-
-    const signal = AbortSignal.abort()
-    const promise = store.dispatch(asyncThunk(undefined, { signal }))
-    await expect(promise.unwrap()).rejects.toThrow(
-      'Aborted due to condition callback returning false.',
-    )
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createDraftSafeSelector.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createDraftSafeSelector.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { createDraftSafeSelector, createSelector } from '@reduxjs/toolkit'
-import { produce } from 'immer'
-
-type State = { value: number }
-const selectSelf = (state: State) => state
-
-test('handles normal values correctly', () => {
-  const unsafeSelector = createSelector(selectSelf, (x) => x.value)
-  const draftSafeSelector = createDraftSafeSelector(selectSelf, (x) => x.value)
-
-  let state = { value: 1 }
-  expect(unsafeSelector(state)).toBe(1)
-  expect(draftSafeSelector(state)).toBe(1)
-  expect(draftSafeSelector).toHaveProperty('resultFunc')
-  expect(draftSafeSelector).toHaveProperty('memoizedResultFunc')
-  expect(draftSafeSelector).toHaveProperty('lastResult')
-  expect(draftSafeSelector).toHaveProperty('dependencies')
-  expect(draftSafeSelector).toHaveProperty('recomputations')
-  expect(draftSafeSelector).toHaveProperty('resetRecomputations')
-  expect(draftSafeSelector).toHaveProperty('clearCache')
-
-  state = { value: 2 }
-  expect(unsafeSelector(state)).toBe(2)
-  expect(draftSafeSelector(state)).toBe(2)
-})
-
-test('handles drafts correctly', () => {
-  const unsafeSelector = createSelector(selectSelf, (state) => state.value)
-  const draftSafeSelector = createDraftSafeSelector(
-    selectSelf,
-    (state) => state.value,
-  )
-
-  produce({ value: 1 }, (state) => {
-    expect(unsafeSelector(state)).toBe(1)
-    expect(draftSafeSelector(state)).toBe(1)
-
-    state.value = 2
-
-    expect(unsafeSelector(state)).toBe(1)
-    expect(draftSafeSelector(state)).toBe(2)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createDraftSafeSelector.withTypes.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createDraftSafeSelector.withTypes.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import { createDraftSafeSelector } from '@reduxjs/toolkit'
-
-interface Todo {
-  id: number
-  completed: boolean
-}
-
-interface Alert {
-  id: number
-  read: boolean
-}
-
-interface RootState {
-  todos: Todo[]
-  alerts: Alert[]
-}
-
-const rootState: RootState = {
-  todos: [
-    { id: 0, completed: false },
-    { id: 1, completed: false },
-  ],
-  alerts: [
-    { id: 0, read: false },
-    { id: 1, read: false },
-  ],
-}
-
-describe(createDraftSafeSelector.withTypes, () => {
-  const createTypedDraftSafeSelector =
-    createDraftSafeSelector.withTypes<RootState>()
-
-  test('should return createDraftSafeSelector', () => {
-    expect(createTypedDraftSafeSelector.withTypes).toEqual(expect.any(Function))
-
-    expect(createTypedDraftSafeSelector.withTypes().withTypes).toEqual(
-      expect.any(Function),
-    )
-
-    expect(createTypedDraftSafeSelector).toBe(createDraftSafeSelector)
-
-    const selectTodoIds = createTypedDraftSafeSelector(
-      [(state) => state.todos],
-      (todos) => todos.map(({ id }) => id),
-    )
-
-    expect(selectTodoIds(rootState)).to.be.an('array').that.is.not.empty
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createEntityAdapter.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createEntityAdapter.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,161 +1,0 @@
-import type {
-  ActionCreatorWithPayload,
-  ActionCreatorWithoutPayload,
-  EntityAdapter,
-  EntityId,
-  EntityStateAdapter,
-  Update,
-} from '@reduxjs/toolkit'
-import { createEntityAdapter, createSlice } from '@reduxjs/toolkit'
-
-function extractReducers<T, Id extends EntityId>(
-  adapter: EntityAdapter<T, Id>,
-): EntityStateAdapter<T, Id> {
-  const { selectId, sortComparer, getInitialState, getSelectors, ...rest } =
-    adapter
-  return rest
-}
-
-describe('type tests', () => {
-  test('should be usable in a slice, with all the "reducer-like" functions', () => {
-    type Id = string & { readonly __tag: unique symbol }
-    type Entity = {
-      id: Id
-    }
-    const adapter = createEntityAdapter<Entity>()
-    const slice = createSlice({
-      name: 'test',
-      initialState: adapter.getInitialState(),
-      reducers: {
-        ...extractReducers(adapter),
-      },
-    })
-
-    expectTypeOf(slice.actions.addOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Entity>
-    >()
-
-    expectTypeOf(slice.actions.addMany).toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Entity> | Record<string, Entity>>
-    >()
-
-    expectTypeOf(slice.actions.setAll).toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Entity> | Record<string, Entity>>
-    >()
-
-    expectTypeOf(slice.actions.removeOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Id>
-    >()
-
-    expectTypeOf(slice.actions.addMany).not.toMatchTypeOf<
-      ActionCreatorWithPayload<Entity[] | Record<string, Entity>>
-    >()
-
-    expectTypeOf(slice.actions.setAll).not.toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Id>>
-    >()
-
-    expectTypeOf(slice.actions.removeOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Id>
-    >()
-
-    expectTypeOf(slice.actions.removeMany).toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Id>>
-    >()
-
-    expectTypeOf(slice.actions.removeMany).not.toMatchTypeOf<
-      ActionCreatorWithPayload<EntityId[]>
-    >()
-
-    expectTypeOf(
-      slice.actions.removeAll,
-    ).toMatchTypeOf<ActionCreatorWithoutPayload>()
-
-    expectTypeOf(slice.actions.updateOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Update<Entity, Id>>
-    >()
-
-    expectTypeOf(slice.actions.updateMany).not.toMatchTypeOf<
-      ActionCreatorWithPayload<Update<Entity, Id>[]>
-    >()
-
-    expectTypeOf(slice.actions.upsertOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Entity>
-    >()
-
-    expectTypeOf(slice.actions.updateMany).toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Update<Entity, Id>>>
-    >()
-
-    expectTypeOf(slice.actions.upsertOne).toMatchTypeOf<
-      ActionCreatorWithPayload<Entity>
-    >()
-
-    expectTypeOf(slice.actions.upsertMany).toMatchTypeOf<
-      ActionCreatorWithPayload<ReadonlyArray<Entity> | Record<string, Entity>>
-    >()
-
-    expectTypeOf(slice.actions.upsertMany).not.toMatchTypeOf<
-      ActionCreatorWithPayload<Entity[] | Record<string, Entity>>
-    >()
-  })
-
-  test('should not be able to mix with a different EntityAdapter', () => {
-    type Entity = {
-      id: EntityId
-      value: string
-    }
-    type Entity2 = {
-      id: EntityId
-      value2: string
-    }
-    const adapter = createEntityAdapter<Entity>()
-    const adapter2 = createEntityAdapter<Entity2>()
-    createSlice({
-      name: 'test',
-      initialState: adapter.getInitialState(),
-      reducers: {
-        addOne: adapter.addOne,
-        // @ts-expect-error
-        addOne2: adapter2.addOne,
-      },
-    })
-  })
-
-  test('should be usable in a slice with extra properties', () => {
-    type Entity = { id: EntityId; value: string }
-    const adapter = createEntityAdapter<Entity>()
-    createSlice({
-      name: 'test',
-      initialState: adapter.getInitialState({ extraData: 'test' }),
-      reducers: {
-        addOne: adapter.addOne,
-      },
-    })
-  })
-
-  test('should not be usable in a slice with an unfitting state', () => {
-    type Entity = { id: EntityId; value: string }
-    const adapter = createEntityAdapter<Entity>()
-    createSlice({
-      name: 'test',
-      initialState: { somethingElse: '' },
-      reducers: {
-        // @ts-expect-error
-        addOne: adapter.addOne,
-      },
-    })
-  })
-
-  test('should not be able to create an adapter unless the type has an Id or an idSelector is provided', () => {
-    type Entity = {
-      value: string
-    }
-    // @ts-expect-error
-    const adapter = createEntityAdapter<Entity>()
-    const adapter2: EntityAdapter<Entity, Entity['value']> =
-      createEntityAdapter({
-        selectId: (e: Entity) => e.value,
-      })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createReducer.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createReducer.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,77 +1,0 @@
-import type { ActionReducerMapBuilder, Reducer } from '@reduxjs/toolkit'
-import { createAction, createReducer } from '@reduxjs/toolkit'
-
-describe('type tests', () => {
-  test('createReducer() infers type of returned reducer.', () => {
-    const incrementHandler = (
-      state: number,
-      action: { type: 'increment'; payload: number },
-    ) => state + 1
-
-    const decrementHandler = (
-      state: number,
-      action: { type: 'decrement'; payload: number },
-    ) => state - 1
-
-    const reducer = createReducer(0 as number, (builder) => {
-      builder
-        .addCase('increment', incrementHandler)
-        .addCase('decrement', decrementHandler)
-    })
-
-    expectTypeOf(reducer).toMatchTypeOf<Reducer<number>>()
-
-    expectTypeOf(reducer).not.toMatchTypeOf<Reducer<string>>()
-  })
-
-  test('createReducer() state type can be specified explicitly.', () => {
-    const incrementHandler = (
-      state: number,
-      action: { type: 'increment'; payload: number },
-    ) => state + action.payload
-
-    const decrementHandler = (
-      state: number,
-      action: { type: 'decrement'; payload: number },
-    ) => state - action.payload
-
-    createReducer(0 as number, (builder) => {
-      builder
-        .addCase('increment', incrementHandler)
-        .addCase('decrement', decrementHandler)
-    })
-
-    // @ts-expect-error
-    createReducer<string>(0 as number, (builder) => {
-      expectTypeOf(builder.addCase)
-        .parameter(1)
-        .not.toMatchTypeOf(incrementHandler)
-
-      expectTypeOf(builder.addCase)
-        .parameter(1)
-        .not.toMatchTypeOf(decrementHandler)
-    })
-  })
-
-  test('createReducer() ensures state type is mutable within a case reducer.', () => {
-    const initialState: { readonly counter: number } = { counter: 0 }
-
-    createReducer(initialState, (builder) => {
-      builder.addCase('increment', (state) => {
-        state.counter += 1
-      })
-    })
-  })
-
-  test('builder callback for actionMap', () => {
-    const increment = createAction<number, 'increment'>('increment')
-
-    const reducer = createReducer(0, (builder) =>
-      expectTypeOf(builder).toEqualTypeOf<ActionReducerMapBuilder<number>>(),
-    )
-
-    expectTypeOf(reducer(0, increment(5))).toBeNumber()
-
-    expectTypeOf(reducer(0, increment(5))).not.toBeString()
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createReducer.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createReducer.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,693 +1,0 @@
-import type {
-  CaseReducer,
-  Draft,
-  PayloadAction,
-  Reducer,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import {
-  createAction,
-  createAsyncThunk,
-  createNextState,
-  createReducer,
-  isPlainObject,
-} from '@reduxjs/toolkit'
-import { waitMs } from './utils/helpers'
-
-interface Todo {
-  text: string
-  completed?: boolean
-}
-
-interface AddTodoPayload {
-  newTodo: Todo
-}
-
-interface ToggleTodoPayload {
-  index: number
-}
-
-type TodoState = Todo[]
-type TodosReducer = Reducer<TodoState, PayloadAction<any>>
-type AddTodoReducer = CaseReducer<
-  TodoState,
-  PayloadAction<AddTodoPayload, 'ADD_TODO'>
->
-
-type ToggleTodoReducer = CaseReducer<
-  TodoState,
-  PayloadAction<ToggleTodoPayload, 'TOGGLE_TODO'>
->
-
-type CreateReducer = typeof createReducer
-
-const addTodoThunk = createAsyncThunk('todos/add', (todo: Todo) => todo)
-
-describe('createReducer', () => {
-  describe('given impure reducers with immer', () => {
-    const addTodo: AddTodoReducer = (state, action) => {
-      const { newTodo } = action.payload
-
-      // Can safely call state.push() here
-      state.push({ ...newTodo, completed: false })
-    }
-
-    const toggleTodo: ToggleTodoReducer = (state, action) => {
-      const { index } = action.payload
-
-      const todo = state[index]
-      // Can directly modify the todo object
-      todo.completed = !todo.completed
-    }
-
-    const todosReducer = createReducer([] as TodoState, (builder) => {
-      builder.addCase('ADD_TODO', addTodo).addCase('TOGGLE_TODO', toggleTodo)
-    })
-
-    behavesLikeReducer(todosReducer)
-  })
-
-  describe('Deprecation warnings', () => {
-    beforeEach(() => {
-      vi.resetModules()
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-    })
-
-    it('Throws an error if the legacy object notation is used', async () => {
-      const { createReducer } = await import('../createReducer')
-      const wrapper = () => {
-        const dummyReducer = (createReducer as CreateReducer)(
-          [] as TodoState,
-          // @ts-ignore
-          {},
-        )
-      }
-
-      expect(wrapper).toThrowError(
-        /The object notation for `createReducer` has been removed/,
-      )
-
-      expect(wrapper).toThrowError(
-        /The object notation for `createReducer` has been removed/,
-      )
-    })
-
-    it('Crashes in production', async () => {
-      vi.stubEnv('NODE_ENV', 'production')
-      const { createReducer } = await import('../createReducer')
-      const wrapper = () => {
-        const dummyReducer = (createReducer as CreateReducer)(
-          [] as TodoState,
-          // @ts-ignore
-          {},
-        )
-      }
-
-      expect(wrapper).toThrowError()
-    })
-  })
-
-  describe('Immer in a production environment', () => {
-    beforeEach(() => {
-      vi.resetModules()
-      vi.stubEnv('NODE_ENV', 'production')
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-    })
-
-    test('Freezes data in production', async () => {
-      const { createReducer } = await import('../createReducer')
-      const addTodo: AddTodoReducer = (state, action) => {
-        const { newTodo } = action.payload
-        state.push({ ...newTodo, completed: false })
-      }
-
-      const toggleTodo: ToggleTodoReducer = (state, action) => {
-        const { index } = action.payload
-        const todo = state[index]
-        todo.completed = !todo.completed
-      }
-
-      const todosReducer = createReducer([] as TodoState, (builder) => {
-        builder.addCase('ADD_TODO', addTodo).addCase('TOGGLE_TODO', toggleTodo)
-      })
-
-      const result = todosReducer([], {
-        type: 'ADD_TODO',
-        payload: { text: 'Buy milk' },
-      })
-
-      const mutateStateOutsideReducer = () => (result[0].text = 'edited')
-      expect(mutateStateOutsideReducer).toThrowError(
-        'Cannot add property text, object is not extensible',
-      )
-    })
-
-    test('Freezes initial state', () => {
-      const initialState = [{ text: 'Buy milk' }]
-      const todosReducer = createReducer(initialState, () => {})
-      const frozenInitialState = todosReducer(undefined, { type: 'dummy' })
-
-      const mutateStateOutsideReducer = () =>
-        (frozenInitialState[0].text = 'edited')
-      expect(mutateStateOutsideReducer).toThrowError(
-        /Cannot assign to read only property/,
-      )
-    })
-    test('does not throw error if initial state is not draftable', () => {
-      expect(() =>
-        createReducer(new URLSearchParams(), () => {}),
-      ).not.toThrowError()
-    })
-  })
-
-  describe('given pure reducers with immutable updates', () => {
-    const addTodo: AddTodoReducer = (state, action) => {
-      const { newTodo } = action.payload
-
-      // Updates the state immutably without relying on immer
-      return state.concat({ ...newTodo, completed: false })
-    }
-
-    const toggleTodo: ToggleTodoReducer = (state, action) => {
-      const { index } = action.payload
-
-      // Updates the todo object immutably withot relying on immer
-      return state.map((todo, i) => {
-        if (i !== index) return todo
-        return { ...todo, completed: !todo.completed }
-      })
-    }
-
-    const todosReducer = createReducer([] as TodoState, (builder) => {
-      builder.addCase('ADD_TODO', addTodo).addCase('TOGGLE_TODO', toggleTodo)
-    })
-
-    behavesLikeReducer(todosReducer)
-  })
-
-  describe('Accepts a lazy state init function to generate initial state', () => {
-    const addTodo: AddTodoReducer = (state, action) => {
-      const { newTodo } = action.payload
-      state.push({ ...newTodo, completed: false })
-    }
-
-    const toggleTodo: ToggleTodoReducer = (state, action) => {
-      const { index } = action.payload
-      const todo = state[index]
-      todo.completed = !todo.completed
-    }
-
-    const lazyStateInit = () => [] as TodoState
-
-    const todosReducer = createReducer([] as TodoState, (builder) => {
-      builder.addCase('ADD_TODO', addTodo).addCase('TOGGLE_TODO', toggleTodo)
-    })
-
-    behavesLikeReducer(todosReducer)
-
-    it('Should only call the init function when `undefined` state is passed in', () => {
-      const spy = vi.fn().mockReturnValue(42)
-
-      const dummyReducer = createReducer(spy, () => {})
-      expect(spy).not.toHaveBeenCalled()
-
-      dummyReducer(123, { type: 'dummy' })
-      expect(spy).not.toHaveBeenCalled()
-
-      const initialState = dummyReducer(undefined, { type: 'dummy' })
-      expect(spy).toHaveBeenCalledOnce()
-    })
-  })
-
-  describe('given draft state from immer', () => {
-    const addTodo: AddTodoReducer = (state, action) => {
-      const { newTodo } = action.payload
-
-      // Can safely call state.push() here
-      state.push({ ...newTodo, completed: false })
-    }
-
-    const toggleTodo: ToggleTodoReducer = (state, action) => {
-      const { index } = action.payload
-
-      const todo = state[index]
-      // Can directly modify the todo object
-      todo.completed = !todo.completed
-    }
-
-    const todosReducer = createReducer([] as TodoState, (builder) => {
-      builder.addCase('ADD_TODO', addTodo).addCase('TOGGLE_TODO', toggleTodo)
-    })
-
-    const wrappedReducer: TodosReducer = (state = [], action) => {
-      return createNextState(state, (draft: Draft<TodoState>) => {
-        todosReducer(draft, action)
-      })
-    }
-
-    behavesLikeReducer(wrappedReducer)
-  })
-
-  describe('builder callback for actionMap', () => {
-    const increment = createAction<number, 'increment'>('increment')
-    const decrement = createAction<number, 'decrement'>('decrement')
-
-    test('can be used with ActionCreators', () => {
-      const reducer = createReducer(0, (builder) =>
-        builder
-          .addCase(increment, (state, action) => state + action.payload)
-          .addCase(decrement, (state, action) => state - action.payload),
-      )
-      expect(reducer(0, increment(5))).toBe(5)
-      expect(reducer(5, decrement(5))).toBe(0)
-    })
-    test('can be used with string types', () => {
-      const reducer = createReducer(0, (builder) =>
-        builder
-          .addCase(
-            'increment',
-            (state, action: { type: 'increment'; payload: number }) =>
-              state + action.payload,
-          )
-          .addCase(
-            'decrement',
-            (state, action: { type: 'decrement'; payload: number }) =>
-              state - action.payload,
-          ),
-      )
-      expect(reducer(0, increment(5))).toBe(5)
-      expect(reducer(5, decrement(5))).toBe(0)
-    })
-    test('can be used with ActionCreators and string types combined', () => {
-      const reducer = createReducer(0, (builder) =>
-        builder
-          .addCase(increment, (state, action) => state + action.payload)
-          .addCase(
-            'decrement',
-            (state, action: { type: 'decrement'; payload: number }) =>
-              state - action.payload,
-          ),
-      )
-      expect(reducer(0, increment(5))).toBe(5)
-      expect(reducer(5, decrement(5))).toBe(0)
-    })
-    test('will throw an error when returning undefined from a non-draftable state', () => {
-      const reducer = createReducer(0, (builder) =>
-        builder.addCase(
-          'decrement',
-          (state, action: { type: 'decrement'; payload: number }) => {},
-        ),
-      )
-      expect(() => reducer(5, decrement(5))).toThrowErrorMatchingInlineSnapshot(
-        `[Error: A case reducer on a non-draftable value must not return undefined]`,
-      )
-    })
-    test('allows you to return undefined if the state was null, thus skipping an update', () => {
-      const reducer = createReducer(null as number | null, (builder) =>
-        builder.addCase(
-          'decrement',
-          (state, action: { type: 'decrement'; payload: number }) => {
-            if (typeof state === 'number') {
-              return state - action.payload
-            }
-            return undefined
-          },
-        ),
-      )
-      expect(reducer(0, decrement(5))).toBe(-5)
-      expect(reducer(null, decrement(5))).toBe(null)
-    })
-    test('allows you to return null', () => {
-      const reducer = createReducer(0 as number | null, (builder) =>
-        builder.addCase(
-          'decrement',
-          (state, action: { type: 'decrement'; payload: number }) => {
-            return null
-          },
-        ),
-      )
-      expect(reducer(5, decrement(5))).toBe(null)
-    })
-    test('allows you to return 0', () => {
-      const reducer = createReducer(0, (builder) =>
-        builder.addCase(
-          'decrement',
-          (state, action: { type: 'decrement'; payload: number }) =>
-            state - action.payload,
-        ),
-      )
-      expect(reducer(5, decrement(5))).toBe(0)
-    })
-    test('will throw if the same type is used twice', () => {
-      expect(() => {
-        createReducer(0, (builder) => {
-          builder
-            .addCase(increment, (state, action) => state + action.payload)
-            .addCase(increment, (state, action) => state + action.payload)
-            .addCase(decrement, (state, action) => state - action.payload)
-        })
-      }).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addCase\` cannot be called with two reducers for the same action type 'increment']`,
-      )
-      expect(() => {
-        createReducer(0, (builder) => {
-          builder
-            .addCase(increment, (state, action) => state + action.payload)
-            .addCase('increment', (state) => state + 1)
-            .addCase(decrement, (state, action) => state - action.payload)
-        })
-      }).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addCase\` cannot be called with two reducers for the same action type 'increment']`,
-      )
-    })
-
-    test('will throw if an empty type is used', () => {
-      const customActionCreator = (payload: number) => ({
-        type: 'custom_action',
-        payload,
-      })
-      customActionCreator.type = ''
-      expect(() => {
-        createReducer(0, (builder) => {
-          builder.addCase(
-            customActionCreator,
-            (state, action) => state + action.payload,
-          )
-        })
-      }).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addCase\` cannot be called with an empty action type]`,
-      )
-    })
-  })
-
-  describe('builder "addMatcher" method', () => {
-    const prepareNumberAction = (payload: number) => ({
-      payload,
-      meta: { type: 'number_action' },
-    })
-    const prepareStringAction = (payload: string) => ({
-      payload,
-      meta: { type: 'string_action' },
-    })
-
-    const numberActionMatcher = (
-      a: UnknownAction,
-    ): a is PayloadAction<number> =>
-      isPlainObject(a.meta) &&
-      'type' in a.meta &&
-      (a.meta as Record<'type', unknown>).type === 'number_action'
-
-    const stringActionMatcher = (
-      a: UnknownAction,
-    ): a is PayloadAction<string> =>
-      isPlainObject(a.meta) &&
-      'type' in a.meta &&
-      (a.meta as Record<'type', unknown>).type === 'string_action'
-
-    const incrementBy = createAction('increment', prepareNumberAction)
-    const decrementBy = createAction('decrement', prepareNumberAction)
-    const concatWith = createAction('concat', prepareStringAction)
-
-    const initialState = { numberActions: 0, stringActions: 0 }
-
-    test('uses the reducer of matching actionMatchers', () => {
-      const reducer = createReducer(initialState, (builder) =>
-        builder
-          .addMatcher(numberActionMatcher, (state) => {
-            state.numberActions += 1
-          })
-          .addMatcher(stringActionMatcher, (state) => {
-            state.stringActions += 1
-          }),
-      )
-      expect(reducer(undefined, incrementBy(1))).toEqual({
-        numberActions: 1,
-        stringActions: 0,
-      })
-      expect(reducer(undefined, decrementBy(1))).toEqual({
-        numberActions: 1,
-        stringActions: 0,
-      })
-      expect(reducer(undefined, concatWith('foo'))).toEqual({
-        numberActions: 0,
-        stringActions: 1,
-      })
-    })
-    test('falls back to defaultCase', () => {
-      const reducer = createReducer(initialState, (builder) =>
-        builder
-          .addCase(concatWith, (state) => {
-            state.stringActions += 1
-          })
-          .addMatcher(numberActionMatcher, (state) => {
-            state.numberActions += 1
-          })
-          .addDefaultCase((state) => {
-            state.numberActions = -1
-            state.stringActions = -1
-          }),
-      )
-      expect(reducer(undefined, { type: 'somethingElse' })).toEqual({
-        numberActions: -1,
-        stringActions: -1,
-      })
-    })
-    test('runs reducer cases followed by all matching actionMatchers', () => {
-      const reducer = createReducer(initialState, (builder) =>
-        builder
-          .addCase(incrementBy, (state) => {
-            state.numberActions = state.numberActions * 10 + 1
-          })
-          .addMatcher(numberActionMatcher, (state) => {
-            state.numberActions = state.numberActions * 10 + 2
-          })
-          .addMatcher(stringActionMatcher, (state) => {
-            state.stringActions = state.stringActions * 10 + 1
-          })
-          .addMatcher(numberActionMatcher, (state) => {
-            state.numberActions = state.numberActions * 10 + 3
-          }),
-      )
-      expect(reducer(undefined, incrementBy(1))).toEqual({
-        numberActions: 123,
-        stringActions: 0,
-      })
-      expect(reducer(undefined, decrementBy(1))).toEqual({
-        numberActions: 23,
-        stringActions: 0,
-      })
-      expect(reducer(undefined, concatWith('foo'))).toEqual({
-        numberActions: 0,
-        stringActions: 1,
-      })
-    })
-    test('works with `actionCreator.match`', () => {
-      const reducer = createReducer(initialState, (builder) =>
-        builder.addMatcher(incrementBy.match, (state) => {
-          state.numberActions += 100
-        }),
-      )
-      expect(reducer(undefined, incrementBy(1))).toEqual({
-        numberActions: 100,
-        stringActions: 0,
-      })
-    })
-    test('calling addCase, addMatcher and addDefaultCase in a nonsensical order should result in an error in development mode', () => {
-      expect(() =>
-        createReducer(initialState, (builder: any) =>
-          builder
-            .addMatcher(numberActionMatcher, () => {})
-            .addCase(incrementBy, () => {}),
-        ),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addCase\` should only be called before calling \`builder.addMatcher\`]`,
-      )
-      expect(() =>
-        createReducer(initialState, (builder: any) =>
-          builder.addDefaultCase(() => {}).addCase(incrementBy, () => {}),
-        ),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addCase\` should only be called before calling \`builder.addDefaultCase\`]`,
-      )
-      expect(() =>
-        createReducer(initialState, (builder: any) =>
-          builder
-            .addDefaultCase(() => {})
-            .addMatcher(numberActionMatcher, () => {}),
-        ),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addMatcher\` should only be called before calling \`builder.addDefaultCase\`]`,
-      )
-      expect(() =>
-        createReducer(initialState, (builder: any) =>
-          builder.addDefaultCase(() => {}).addDefaultCase(() => {}),
-        ),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addDefaultCase\` can only be called once]`,
-      )
-    })
-  })
-  describe('builder "addAsyncThunk" method', () => {
-    const initialState = { todos: [] as Todo[], loading: false, errored: false }
-    test('uses the matching reducer for each action type', () => {
-      const reducer = createReducer(initialState, (builder) =>
-        builder.addAsyncThunk(addTodoThunk, {
-          pending(state) {
-            state.loading = true
-          },
-          fulfilled(state, action) {
-            state.todos.push(action.payload)
-          },
-          rejected(state) {
-            state.errored = true
-          },
-          settled(state) {
-            state.loading = false
-          },
-        }),
-      )
-      const todo: Todo = { text: 'test' }
-      expect(reducer(undefined, addTodoThunk.pending('test', todo))).toEqual({
-        todos: [],
-        loading: true,
-        errored: false,
-      })
-      expect(
-        reducer(undefined, addTodoThunk.fulfilled(todo, 'test', todo)),
-      ).toEqual({
-        todos: [todo],
-        loading: false,
-        errored: false,
-      })
-      expect(
-        reducer(undefined, addTodoThunk.rejected(new Error(), 'test', todo)),
-      ).toEqual({
-        todos: [],
-        loading: false,
-        errored: true,
-      })
-    })
-    test('calling addAsyncThunk after addDefaultCase should result in an error in development mode', () => {
-      expect(() =>
-        createReducer(initialState, (builder: any) =>
-          builder.addDefaultCase(() => {}).addAsyncThunk(addTodoThunk, {}),
-        ),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: \`builder.addAsyncThunk\` should only be called before calling \`builder.addDefaultCase\`]`,
-      )
-    })
-  })
-})
-
-function behavesLikeReducer(todosReducer: TodosReducer) {
-  it('should handle initial state', () => {
-    const initialAction = { type: '', payload: undefined }
-    expect(todosReducer(undefined, initialAction)).toEqual([])
-  })
-
-  it('should handle ADD_TODO', () => {
-    expect(
-      todosReducer([], {
-        type: 'ADD_TODO',
-        payload: { newTodo: { text: 'Run the tests' } },
-      }),
-    ).toEqual([
-      {
-        text: 'Run the tests',
-        completed: false,
-      },
-    ])
-
-    expect(
-      todosReducer(
-        [
-          {
-            text: 'Run the tests',
-            completed: false,
-          },
-        ],
-        {
-          type: 'ADD_TODO',
-          payload: { newTodo: { text: 'Use Redux' } },
-        },
-      ),
-    ).toEqual([
-      {
-        text: 'Run the tests',
-        completed: false,
-      },
-      {
-        text: 'Use Redux',
-        completed: false,
-      },
-    ])
-
-    expect(
-      todosReducer(
-        [
-          {
-            text: 'Run the tests',
-            completed: false,
-          },
-          {
-            text: 'Use Redux',
-            completed: false,
-          },
-        ],
-        {
-          type: 'ADD_TODO',
-          payload: { newTodo: { text: 'Fix the tests' } },
-        },
-      ),
-    ).toEqual([
-      {
-        text: 'Run the tests',
-        completed: false,
-      },
-      {
-        text: 'Use Redux',
-        completed: false,
-      },
-      {
-        text: 'Fix the tests',
-        completed: false,
-      },
-    ])
-  })
-
-  it('should handle TOGGLE_TODO', () => {
-    expect(
-      todosReducer(
-        [
-          {
-            text: 'Run the tests',
-            completed: false,
-          },
-          {
-            text: 'Use Redux',
-            completed: false,
-          },
-        ],
-        {
-          type: 'TOGGLE_TODO',
-          payload: { index: 0 },
-        },
-      ),
-    ).toEqual([
-      {
-        text: 'Run the tests',
-        completed: true,
-      },
-      {
-        text: 'Use Redux',
-        completed: false,
-      },
-    ])
-  })
-}
Index: de_modules/@reduxjs/toolkit/src/tests/createSlice.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createSlice.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,995 +1,0 @@
-import type {
-  Action,
-  ActionCreatorWithNonInferrablePayload,
-  ActionCreatorWithOptionalPayload,
-  ActionCreatorWithPayload,
-  ActionCreatorWithPreparedPayload,
-  ActionCreatorWithoutPayload,
-  ActionReducerMapBuilder,
-  AsyncThunk,
-  CaseReducer,
-  PayloadAction,
-  PayloadActionCreator,
-  Reducer,
-  ReducerCreators,
-  SerializedError,
-  SliceCaseReducers,
-  ThunkDispatch,
-  UnknownAction,
-  ValidateSliceCaseReducers,
-} from '@reduxjs/toolkit'
-import {
-  asyncThunkCreator,
-  buildCreateSlice,
-  configureStore,
-  createAction,
-  createAsyncThunk,
-  createSlice,
-  isRejected,
-} from '@reduxjs/toolkit'
-import { castDraft } from 'immer'
-
-describe('type tests', () => {
-  const counterSlice = createSlice({
-    name: 'counter',
-    initialState: 0,
-    reducers: {
-      increment: (state: number, action) => state + action.payload,
-      decrement: (state: number, action) => state - action.payload,
-    },
-  })
-
-  test('Slice name is strongly typed.', () => {
-    const uiSlice = createSlice({
-      name: 'ui',
-      initialState: 0,
-      reducers: {
-        goToNext: (state: number, action) => state + action.payload,
-        goToPrevious: (state: number, action) => state - action.payload,
-      },
-    })
-
-    const actionCreators = {
-      [counterSlice.name]: { ...counterSlice.actions },
-      [uiSlice.name]: { ...uiSlice.actions },
-    }
-
-    expectTypeOf(counterSlice.actions).toEqualTypeOf(actionCreators.counter)
-
-    expectTypeOf(uiSlice.actions).toEqualTypeOf(actionCreators.ui)
-
-    expectTypeOf(actionCreators).not.toHaveProperty('anyKey')
-  })
-
-  test("createSlice() infers the returned slice's type.", () => {
-    const firstAction = createAction<{ count: number }>('FIRST_ACTION')
-
-    const slice = createSlice({
-      name: 'counter',
-      initialState: 0,
-      reducers: {
-        increment: (state: number, action) => state + action.payload,
-        decrement: (state: number, action) => state - action.payload,
-      },
-      extraReducers: (builder) => {
-        builder.addCase(
-          firstAction,
-          (state, action) => state + action.payload.count,
-        )
-      },
-    })
-
-    test('Reducer', () => {
-      expectTypeOf(slice.reducer).toMatchTypeOf<
-        Reducer<number, PayloadAction>
-      >()
-
-      expectTypeOf(slice.reducer).not.toMatchTypeOf<
-        Reducer<string, PayloadAction>
-      >()
-    })
-
-    test('Actions', () => {
-      slice.actions.increment(1)
-      slice.actions.decrement(1)
-
-      expectTypeOf(slice.actions).not.toHaveProperty('other')
-    })
-  })
-
-  test('Slice action creator types are inferred.', () => {
-    const counter = createSlice({
-      name: 'counter',
-      initialState: 0,
-      reducers: {
-        increment: (state) => state + 1,
-        decrement: (
-          state,
-          { payload = 1 }: PayloadAction<number | undefined>,
-        ) => state - payload,
-        multiply: (state, { payload }: PayloadAction<number | number[]>) =>
-          Array.isArray(payload)
-            ? payload.reduce((acc, val) => acc * val, state)
-            : state * payload,
-        addTwo: {
-          reducer: (s, { payload }: PayloadAction<number>) => s + payload,
-          prepare: (a: number, b: number) => ({
-            payload: a + b,
-          }),
-        },
-      },
-    })
-
-    expectTypeOf(
-      counter.actions.increment,
-    ).toMatchTypeOf<ActionCreatorWithoutPayload>()
-
-    counter.actions.increment()
-
-    expectTypeOf(counter.actions.decrement).toMatchTypeOf<
-      ActionCreatorWithOptionalPayload<number | undefined>
-    >()
-
-    counter.actions.decrement()
-    counter.actions.decrement(2)
-
-    expectTypeOf(counter.actions.multiply).toMatchTypeOf<
-      ActionCreatorWithPayload<number | number[]>
-    >()
-
-    counter.actions.multiply(2)
-    counter.actions.multiply([2, 3, 4])
-
-    expectTypeOf(counter.actions.addTwo).toMatchTypeOf<
-      ActionCreatorWithPreparedPayload<[number, number], number>
-    >()
-
-    counter.actions.addTwo(1, 2)
-
-    expectTypeOf(counter.actions.multiply).parameters.not.toMatchTypeOf<[]>()
-
-    expectTypeOf(counter.actions.multiply).parameter(0).not.toBeString()
-
-    expectTypeOf(counter.actions.addTwo).parameters.not.toMatchTypeOf<
-      [number]
-    >()
-
-    expectTypeOf(counter.actions.addTwo).parameters.toEqualTypeOf<
-      [number, number]
-    >()
-  })
-
-  test('Slice action creator types properties are strongly typed', () => {
-    const counter = createSlice({
-      name: 'counter',
-      initialState: 0,
-      reducers: {
-        increment: (state) => state + 1,
-        decrement: (state) => state - 1,
-        multiply: (state, { payload }: PayloadAction<number | number[]>) =>
-          Array.isArray(payload)
-            ? payload.reduce((acc, val) => acc * val, state)
-            : state * payload,
-      },
-    })
-
-    expectTypeOf(
-      counter.actions.increment.type,
-    ).toEqualTypeOf<'counter/increment'>()
-
-    expectTypeOf(
-      counter.actions.increment().type,
-    ).toEqualTypeOf<'counter/increment'>()
-
-    expectTypeOf(
-      counter.actions.decrement.type,
-    ).toEqualTypeOf<'counter/decrement'>()
-
-    expectTypeOf(
-      counter.actions.decrement().type,
-    ).toEqualTypeOf<'counter/decrement'>()
-
-    expectTypeOf(
-      counter.actions.multiply.type,
-    ).toEqualTypeOf<'counter/multiply'>()
-
-    expectTypeOf(
-      counter.actions.multiply(1).type,
-    ).toEqualTypeOf<'counter/multiply'>()
-
-    expectTypeOf(
-      counter.actions.increment.type,
-    ).not.toMatchTypeOf<'increment'>()
-  })
-
-  test('Slice action creator types are inferred for enhanced reducers.', () => {
-    const counter = createSlice({
-      name: 'test',
-      initialState: { counter: 0, concat: '' },
-      reducers: {
-        incrementByStrLen: {
-          reducer: (state, action: PayloadAction<number>) => {
-            state.counter += action.payload
-          },
-          prepare: (payload: string) => ({
-            payload: payload.length,
-          }),
-        },
-        concatMetaStrLen: {
-          reducer: (state, action: PayloadAction<string>) => {
-            state.concat += action.payload
-          },
-          prepare: (payload: string) => ({
-            payload,
-            meta: payload.length,
-          }),
-        },
-      },
-    })
-
-    expectTypeOf(
-      counter.actions.incrementByStrLen('test').type,
-    ).toEqualTypeOf<'test/incrementByStrLen'>()
-
-    expectTypeOf(counter.actions.incrementByStrLen('test').payload).toBeNumber()
-
-    expectTypeOf(counter.actions.concatMetaStrLen('test').payload).toBeString()
-
-    expectTypeOf(counter.actions.concatMetaStrLen('test').meta).toBeNumber()
-
-    expectTypeOf(
-      counter.actions.incrementByStrLen('test').payload,
-    ).not.toBeString()
-
-    expectTypeOf(counter.actions.concatMetaStrLen('test').meta).not.toBeString()
-  })
-
-  test('access meta and error from reducer', () => {
-    const counter = createSlice({
-      name: 'test',
-      initialState: { counter: 0, concat: '' },
-      reducers: {
-        // case: meta and error not used in reducer
-        testDefaultMetaAndError: {
-          reducer(_, action: PayloadAction<number, string>) {},
-          prepare: (payload: number) => ({
-            payload,
-            meta: 'meta' as 'meta',
-            error: 'error' as 'error',
-          }),
-        },
-        // case: meta and error marked as "unknown" in reducer
-        testUnknownMetaAndError: {
-          reducer(
-            _,
-            action: PayloadAction<number, string, unknown, unknown>,
-          ) {},
-          prepare: (payload: number) => ({
-            payload,
-            meta: 'meta' as 'meta',
-            error: 'error' as 'error',
-          }),
-        },
-        // case: meta and error are typed in the reducer as returned by prepare
-        testMetaAndError: {
-          reducer(_, action: PayloadAction<number, string, 'meta', 'error'>) {},
-          prepare: (payload: number) => ({
-            payload,
-            meta: 'meta' as 'meta',
-            error: 'error' as 'error',
-          }),
-        },
-        // case: meta is typed differently in the reducer than returned from prepare
-        testErroneousMeta: {
-          reducer(_, action: PayloadAction<number, string, 'meta', 'error'>) {},
-          // @ts-expect-error
-          prepare: (payload: number) => ({
-            payload,
-            meta: 1,
-            error: 'error' as 'error',
-          }),
-        },
-        // case: error is typed differently in the reducer than returned from prepare
-        testErroneousError: {
-          reducer(_, action: PayloadAction<number, string, 'meta', 'error'>) {},
-          // @ts-expect-error
-          prepare: (payload: number) => ({
-            payload,
-            meta: 'meta' as 'meta',
-            error: 1,
-          }),
-        },
-      },
-    })
-  })
-
-  test('returned case reducer has the correct type', () => {
-    const counter = createSlice({
-      name: 'counter',
-      initialState: 0,
-      reducers: {
-        increment(state, action: PayloadAction<number>) {
-          return state + action.payload
-        },
-        decrement: {
-          reducer(state, action: PayloadAction<number>) {
-            return state - action.payload
-          },
-          prepare(amount: number) {
-            return { payload: amount }
-          },
-        },
-      },
-    })
-
-    test('Should match positively', () => {
-      expectTypeOf(counter.caseReducers.increment).toMatchTypeOf<
-        (state: number, action: PayloadAction<number>) => number | void
-      >()
-    })
-
-    test('Should match positively for reducers with prepare callback', () => {
-      expectTypeOf(counter.caseReducers.decrement).toMatchTypeOf<
-        (state: number, action: PayloadAction<number>) => number | void
-      >()
-    })
-
-    test("Should not mismatch the payload if it's a simple reducer", () => {
-      expectTypeOf(counter.caseReducers.increment).not.toMatchTypeOf<
-        (state: number, action: PayloadAction<string>) => number | void
-      >()
-    })
-
-    test("Should not mismatch the payload if it's a reducer with a prepare callback", () => {
-      expectTypeOf(counter.caseReducers.decrement).not.toMatchTypeOf<
-        (state: number, action: PayloadAction<string>) => number | void
-      >()
-    })
-
-    test("Should not include entries that don't exist", () => {
-      expectTypeOf(counter.caseReducers).not.toHaveProperty(
-        'someThingNonExistent',
-      )
-    })
-  })
-
-  test('prepared payload does not match action payload - should cause an error.', () => {
-    const counter = createSlice({
-      name: 'counter',
-      initialState: { counter: 0 },
-      reducers: {
-        increment: {
-          reducer(state, action: PayloadAction<string>) {
-            state.counter += action.payload.length
-          },
-          // @ts-expect-error
-          prepare(x: string) {
-            return {
-              payload: 6,
-            }
-          },
-        },
-      },
-    })
-  })
-
-  test('if no Payload Type is specified, accept any payload', () => {
-    // see https://github.com/reduxjs/redux-toolkit/issues/165
-
-    const initialState = {
-      name: null,
-    }
-
-    const mySlice = createSlice({
-      name: 'name',
-      initialState,
-      reducers: {
-        setName: (state, action) => {
-          state.name = action.payload
-        },
-      },
-    })
-
-    expectTypeOf(
-      mySlice.actions.setName,
-    ).toMatchTypeOf<ActionCreatorWithNonInferrablePayload>()
-
-    const x = mySlice.actions.setName
-
-    mySlice.actions.setName(null)
-    mySlice.actions.setName('asd')
-    mySlice.actions.setName(5)
-  })
-
-  test('actions.x.match()', () => {
-    const mySlice = createSlice({
-      name: 'name',
-      initialState: { name: 'test' },
-      reducers: {
-        setName: (state, action: PayloadAction<string>) => {
-          state.name = action.payload
-        },
-      },
-    })
-
-    const x: Action<string> = {} as any
-    if (mySlice.actions.setName.match(x)) {
-      expectTypeOf(x.type).toEqualTypeOf<'name/setName'>()
-
-      expectTypeOf(x.payload).toBeString()
-    } else {
-      expectTypeOf(x.type).not.toMatchTypeOf<'name/setName'>()
-
-      expectTypeOf(x).not.toHaveProperty('payload')
-    }
-  })
-
-  test('builder callback for extraReducers', () => {
-    createSlice({
-      name: 'test',
-      initialState: 0,
-      reducers: {},
-      extraReducers: (builder) => {
-        expectTypeOf(builder).toEqualTypeOf<ActionReducerMapBuilder<number>>()
-      },
-    })
-  })
-
-  test('wrapping createSlice should be possible', () => {
-    interface GenericState<T> {
-      data?: T
-      status: 'loading' | 'finished' | 'error'
-    }
-
-    const createGenericSlice = <
-      T,
-      Reducers extends SliceCaseReducers<GenericState<T>>,
-    >({
-      name = '',
-      initialState,
-      reducers,
-    }: {
-      name: string
-      initialState: GenericState<T>
-      reducers: ValidateSliceCaseReducers<GenericState<T>, Reducers>
-    }) => {
-      return createSlice({
-        name,
-        initialState,
-        reducers: {
-          start(state) {
-            state.status = 'loading'
-          },
-          success(state: GenericState<T>, action: PayloadAction<T>) {
-            state.data = action.payload
-            state.status = 'finished'
-          },
-          ...reducers,
-        },
-      })
-    }
-
-    const wrappedSlice = createGenericSlice({
-      name: 'test',
-      initialState: { status: 'loading' } as GenericState<string>,
-      reducers: {
-        magic(state) {
-          expectTypeOf(state).toEqualTypeOf<GenericState<string>>()
-
-          expectTypeOf(state).not.toMatchTypeOf<GenericState<number>>()
-
-          state.status = 'finished'
-          state.data = 'hocus pocus'
-        },
-      },
-    })
-
-    expectTypeOf(wrappedSlice.actions.success).toMatchTypeOf<
-      ActionCreatorWithPayload<string>
-    >()
-
-    expectTypeOf(wrappedSlice.actions.magic).toMatchTypeOf<
-      ActionCreatorWithoutPayload<string>
-    >()
-  })
-
-  test('extraReducers', () => {
-    interface GenericState<T> {
-      data: T | null
-    }
-
-    function createDataSlice<
-      T,
-      Reducers extends SliceCaseReducers<GenericState<T>>,
-    >(
-      name: string,
-      reducers: ValidateSliceCaseReducers<GenericState<T>, Reducers>,
-      initialState: GenericState<T>,
-    ) {
-      const doNothing = createAction<undefined>('doNothing')
-      const setData = createAction<T>('setData')
-
-      const slice = createSlice({
-        name,
-        initialState,
-        reducers,
-        extraReducers: (builder) => {
-          builder.addCase(doNothing, (state) => {
-            return { ...state }
-          })
-          builder.addCase(setData, (state, { payload }) => {
-            return {
-              ...state,
-              data: payload,
-            }
-          })
-        },
-      })
-      return { doNothing, setData, slice }
-    }
-  })
-
-  test('slice selectors', () => {
-    const sliceWithoutSelectors = createSlice({
-      name: '',
-      initialState: '',
-      reducers: {},
-    })
-
-    expectTypeOf(sliceWithoutSelectors.selectors).not.toHaveProperty('foo')
-
-    const sliceWithSelectors = createSlice({
-      name: 'counter',
-      initialState: { value: 0 },
-      reducers: {
-        increment: (state) => {
-          state.value += 1
-        },
-      },
-      selectors: {
-        selectValue: (state) => state.value,
-        selectMultiply: (state, multiplier: number) => state.value * multiplier,
-        selectToFixed: Object.assign(
-          (state: { value: number }) => state.value.toFixed(2),
-          { static: true },
-        ),
-      },
-    })
-
-    const rootState = {
-      [sliceWithSelectors.reducerPath]: sliceWithSelectors.getInitialState(),
-    }
-
-    const { selectValue, selectMultiply, selectToFixed } =
-      sliceWithSelectors.selectors
-
-    expectTypeOf(selectValue(rootState)).toBeNumber()
-
-    expectTypeOf(selectMultiply(rootState, 2)).toBeNumber()
-
-    expectTypeOf(selectToFixed(rootState)).toBeString()
-
-    expectTypeOf(selectToFixed.unwrapped.static).toBeBoolean()
-
-    const nestedState = {
-      nested: rootState,
-    }
-
-    const nestedSelectors = sliceWithSelectors.getSelectors(
-      (rootState: typeof nestedState) => rootState.nested.counter,
-    )
-
-    expectTypeOf(nestedSelectors.selectValue(nestedState)).toBeNumber()
-
-    expectTypeOf(nestedSelectors.selectMultiply(nestedState, 2)).toBeNumber()
-
-    expectTypeOf(nestedSelectors.selectToFixed(nestedState)).toBeString()
-  })
-
-  test('reducer callback', () => {
-    interface TestState {
-      foo: string
-    }
-
-    interface TestArg {
-      test: string
-    }
-
-    interface TestReturned {
-      payload: string
-    }
-
-    interface TestReject {
-      cause: string
-    }
-
-    const slice = createSlice({
-      name: 'test',
-      initialState: {} as TestState,
-      reducers: (create) => {
-        const preTypedAsyncThunk = create.asyncThunk.withTypes<{
-          rejectValue: TestReject
-        }>()
-
-        // @ts-expect-error
-        create.asyncThunk<any, any, { state: StoreState }>(() => {})
-
-        // @ts-expect-error
-        create.asyncThunk.withTypes<{
-          rejectValue: string
-          dispatch: StoreDispatch
-        }>()
-
-        return {
-          normalReducer: create.reducer<string>((state, action) => {
-            expectTypeOf(state).toEqualTypeOf<TestState>()
-
-            expectTypeOf(action.payload).toBeString()
-          }),
-          optionalReducer: create.reducer<string | undefined>(
-            (state, action) => {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.payload).toEqualTypeOf<string | undefined>()
-            },
-          ),
-          noActionReducer: create.reducer((state) => {
-            expectTypeOf(state).toEqualTypeOf<TestState>()
-          }),
-          preparedReducer: create.preparedReducer(
-            (payload: string) => ({
-              payload,
-              meta: 'meta' as const,
-              error: 'error' as const,
-            }),
-            (state, action) => {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.payload).toBeString()
-
-              expectTypeOf(action.meta).toEqualTypeOf<'meta'>()
-
-              expectTypeOf(action.error).toEqualTypeOf<'error'>()
-            },
-          ),
-          testInferVoid: create.asyncThunk(() => {}, {
-            pending(state, action) {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.meta.arg).toBeVoid()
-            },
-            fulfilled(state, action) {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.meta.arg).toBeVoid()
-
-              expectTypeOf(action.payload).toBeVoid()
-            },
-            rejected(state, action) {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.meta.arg).toBeVoid()
-
-              expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-            },
-            settled(state, action) {
-              expectTypeOf(state).toEqualTypeOf<TestState>()
-
-              expectTypeOf(action.meta.arg).toBeVoid()
-
-              if (isRejected(action)) {
-                expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-              } else {
-                expectTypeOf(action.payload).toBeVoid()
-              }
-            },
-          }),
-          testInfer: create.asyncThunk(
-            function payloadCreator(arg: TestArg, api) {
-              return Promise.resolve<TestReturned>({ payload: 'foo' })
-            },
-            {
-              pending(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-              },
-              fulfilled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-              },
-              rejected(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-              },
-              settled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                if (isRejected(action)) {
-                  expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-                } else {
-                  expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-                }
-              },
-            },
-          ),
-          testExplicitType: create.asyncThunk<
-            TestReturned,
-            TestArg,
-            {
-              rejectValue: TestReject
-            }
-          >(
-            function payloadCreator(arg, api) {
-              // here would be a circular reference
-              expectTypeOf(api.getState()).toBeUnknown()
-              // here would be a circular reference
-              expectTypeOf(api.dispatch).toMatchTypeOf<
-                ThunkDispatch<any, any, any>
-              >()
-
-              // so you need to cast inside instead
-              const getState = api.getState as () => StoreState
-              const dispatch = api.dispatch as StoreDispatch
-
-              expectTypeOf(arg).toEqualTypeOf<TestArg>()
-
-              expectTypeOf(api.rejectWithValue).toMatchTypeOf<
-                (value: TestReject) => any
-              >()
-
-              return Promise.resolve({ payload: 'foo' })
-            },
-            {
-              pending(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-              },
-              fulfilled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-              },
-              rejected(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-
-                expectTypeOf(action.payload).toEqualTypeOf<
-                  TestReject | undefined
-                >()
-              },
-              settled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                if (isRejected(action)) {
-                  expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-
-                  expectTypeOf(action.payload).toEqualTypeOf<
-                    TestReject | undefined
-                  >()
-                } else {
-                  expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-                }
-              },
-            },
-          ),
-          testPreTyped: preTypedAsyncThunk(
-            function payloadCreator(arg: TestArg, api) {
-              expectTypeOf(api.rejectWithValue).toMatchTypeOf<
-                (value: TestReject) => any
-              >()
-
-              return Promise.resolve<TestReturned>({ payload: 'foo' })
-            },
-            {
-              pending(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-              },
-              fulfilled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-              },
-              rejected(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-
-                expectTypeOf(action.payload).toEqualTypeOf<
-                  TestReject | undefined
-                >()
-              },
-              settled(state, action) {
-                expectTypeOf(state).toEqualTypeOf<TestState>()
-
-                expectTypeOf(action.meta.arg).toEqualTypeOf<TestArg>()
-
-                if (isRejected(action)) {
-                  expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-
-                  expectTypeOf(action.payload).toEqualTypeOf<
-                    TestReject | undefined
-                  >()
-                } else {
-                  expectTypeOf(action.payload).toEqualTypeOf<TestReturned>()
-                }
-              },
-            },
-          ),
-        }
-      },
-    })
-
-    const store = configureStore({ reducer: { test: slice.reducer } })
-
-    type StoreState = ReturnType<typeof store.getState>
-
-    type StoreDispatch = typeof store.dispatch
-
-    expectTypeOf(slice.actions.normalReducer).toMatchTypeOf<
-      PayloadActionCreator<string>
-    >()
-
-    expectTypeOf(slice.actions.normalReducer).toBeCallableWith('')
-
-    expectTypeOf(slice.actions.normalReducer).parameters.not.toMatchTypeOf<[]>()
-
-    expectTypeOf(slice.actions.normalReducer).parameters.not.toMatchTypeOf<
-      [number]
-    >()
-
-    expectTypeOf(slice.actions.optionalReducer).toMatchTypeOf<
-      ActionCreatorWithOptionalPayload<string | undefined>
-    >()
-
-    expectTypeOf(slice.actions.optionalReducer).toBeCallableWith()
-
-    expectTypeOf(slice.actions.optionalReducer).toBeCallableWith('')
-
-    expectTypeOf(slice.actions.optionalReducer).parameter(0).not.toBeNumber()
-
-    expectTypeOf(
-      slice.actions.noActionReducer,
-    ).toMatchTypeOf<ActionCreatorWithoutPayload>()
-
-    expectTypeOf(slice.actions.noActionReducer).toBeCallableWith()
-
-    expectTypeOf(slice.actions.noActionReducer).parameter(0).not.toBeString()
-
-    expectTypeOf(slice.actions.preparedReducer).toEqualTypeOf<
-      ActionCreatorWithPreparedPayload<
-        [string],
-        string,
-        'test/preparedReducer',
-        'error',
-        'meta'
-      >
-    >()
-
-    expectTypeOf(slice.actions.testInferVoid).toEqualTypeOf<
-      AsyncThunk<void, void, {}>
-    >()
-
-    expectTypeOf(slice.actions.testInferVoid).toBeCallableWith()
-
-    expectTypeOf(slice.actions.testInfer).toEqualTypeOf<
-      AsyncThunk<TestReturned, TestArg, {}>
-    >()
-
-    expectTypeOf(slice.actions.testExplicitType).toEqualTypeOf<
-      AsyncThunk<TestReturned, TestArg, { rejectValue: TestReject }>
-    >()
-
-    type TestInferThunk = AsyncThunk<TestReturned, TestArg, {}>
-
-    expectTypeOf(slice.caseReducers.testInfer.pending).toEqualTypeOf<
-      CaseReducer<TestState, ReturnType<TestInferThunk['pending']>>
-    >()
-
-    expectTypeOf(slice.caseReducers.testInfer.fulfilled).toEqualTypeOf<
-      CaseReducer<TestState, ReturnType<TestInferThunk['fulfilled']>>
-    >()
-
-    expectTypeOf(slice.caseReducers.testInfer.rejected).toEqualTypeOf<
-      CaseReducer<TestState, ReturnType<TestInferThunk['rejected']>>
-    >()
-  })
-
-  test('wrapping createSlice should be possible, with callback', () => {
-    interface GenericState<T> {
-      data?: T
-      status: 'loading' | 'finished' | 'error'
-    }
-
-    const createGenericSlice = <
-      T,
-      Reducers extends SliceCaseReducers<GenericState<T>>,
-    >({
-      name = '',
-      initialState,
-      reducers,
-    }: {
-      name: string
-      initialState: GenericState<T>
-      reducers: (create: ReducerCreators<GenericState<T>>) => Reducers
-    }) => {
-      return createSlice({
-        name,
-        initialState,
-        reducers: (create) => ({
-          start: create.reducer((state) => {
-            state.status = 'loading'
-          }),
-          success: create.reducer<T>((state, action) => {
-            state.data = castDraft(action.payload)
-            state.status = 'finished'
-          }),
-          ...reducers(create),
-        }),
-      })
-    }
-
-    const wrappedSlice = createGenericSlice({
-      name: 'test',
-      initialState: { status: 'loading' } as GenericState<string>,
-      reducers: (create) => ({
-        magic: create.reducer((state) => {
-          expectTypeOf(state).toEqualTypeOf<GenericState<string>>()
-
-          expectTypeOf(state).not.toMatchTypeOf<GenericState<number>>()
-
-          state.status = 'finished'
-          state.data = 'hocus pocus'
-        }),
-      }),
-    })
-
-    expectTypeOf(wrappedSlice.actions.success).toMatchTypeOf<
-      ActionCreatorWithPayload<string>
-    >()
-
-    expectTypeOf(wrappedSlice.actions.magic).toMatchTypeOf<
-      ActionCreatorWithoutPayload<string>
-    >()
-  })
-
-  test('selectSlice', () => {
-    expectTypeOf(counterSlice.selectSlice({ counter: 0 })).toBeNumber()
-
-    // We use `not.toEqualTypeOf` instead of `not.toMatchTypeOf`
-    // because `toMatchTypeOf` allows missing properties
-    expectTypeOf(counterSlice.selectSlice).parameter(0).not.toEqualTypeOf<{}>()
-  })
-
-  test('buildCreateSlice', () => {
-    expectTypeOf(buildCreateSlice()).toEqualTypeOf(createSlice)
-
-    buildCreateSlice({
-      // @ts-expect-error not possible to recreate shape because symbol is not exported
-      creators: { asyncThunk: { [Symbol()]: createAsyncThunk } },
-    })
-    buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/createSlice.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/createSlice.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,987 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import type { PayloadAction, WithSlice } from '@reduxjs/toolkit'
-import {
-  asyncThunkCreator,
-  buildCreateSlice,
-  combineSlices,
-  configureStore,
-  createAction,
-  createAsyncThunk,
-  createSlice,
-} from '@reduxjs/toolkit'
-
-type CreateSlice = typeof createSlice
-
-describe('createSlice', () => {
-  const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-  beforeEach(() => {
-    vi.clearAllMocks()
-  })
-
-  afterAll(() => {
-    vi.restoreAllMocks()
-  })
-
-  describe('when slice is undefined', () => {
-    it('should throw an error', () => {
-      expect(() =>
-        // @ts-ignore
-        createSlice({
-          reducers: {
-            increment: (state) => state + 1,
-            multiply: (state, action: PayloadAction<number>) =>
-              state * action.payload,
-          },
-          initialState: 0,
-        }),
-      ).toThrowError()
-    })
-  })
-
-  describe('when slice is an empty string', () => {
-    it('should throw an error', () => {
-      expect(() =>
-        createSlice({
-          name: '',
-          reducers: {
-            increment: (state) => state + 1,
-            multiply: (state, action: PayloadAction<number>) =>
-              state * action.payload,
-          },
-          initialState: 0,
-        }),
-      ).toThrowError()
-    })
-  })
-
-  describe('when initial state is undefined', () => {
-    beforeEach(() => {
-      vi.stubEnv('NODE_ENV', 'development')
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-    })
-
-    it('should throw an error', () => {
-      createSlice({
-        name: 'test',
-        reducers: {},
-        initialState: undefined,
-      })
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`',
-      )
-    })
-  })
-
-  describe('when passing slice', () => {
-    const { actions, reducer, caseReducers } = createSlice({
-      reducers: {
-        increment: (state) => state + 1,
-      },
-      initialState: 0,
-      name: 'cool',
-    })
-
-    it('should create increment action', () => {
-      expect(actions.hasOwnProperty('increment')).toBe(true)
-    })
-
-    it('should have the correct action for increment', () => {
-      expect(actions.increment()).toEqual({
-        type: 'cool/increment',
-        payload: undefined,
-      })
-    })
-
-    it('should return the correct value from reducer', () => {
-      expect(reducer(undefined, actions.increment())).toEqual(1)
-    })
-
-    it('should include the generated case reducers', () => {
-      expect(caseReducers).toBeTruthy()
-      expect(caseReducers.increment).toBeTruthy()
-      expect(typeof caseReducers.increment).toBe('function')
-    })
-
-    it('getInitialState should return the state', () => {
-      const initialState = 42
-      const slice = createSlice({
-        name: 'counter',
-        initialState,
-        reducers: {},
-      })
-
-      expect(slice.getInitialState()).toBe(initialState)
-    })
-
-    it('should allow non-draftable initial state', () => {
-      expect(() =>
-        createSlice({
-          name: 'params',
-          initialState: new URLSearchParams(),
-          reducers: {},
-        }),
-      ).not.toThrowError()
-    })
-  })
-
-  describe('when initialState is a function', () => {
-    const initialState = () => ({ user: '' })
-
-    const { actions, reducer } = createSlice({
-      reducers: {
-        setUserName: (state, action) => {
-          state.user = action.payload
-        },
-      },
-      initialState,
-      name: 'user',
-    })
-
-    it('should set the username', () => {
-      expect(reducer(undefined, actions.setUserName('eric'))).toEqual({
-        user: 'eric',
-      })
-    })
-
-    it('getInitialState should return the state', () => {
-      const initialState = () => 42
-      const slice = createSlice({
-        name: 'counter',
-        initialState,
-        reducers: {},
-      })
-
-      expect(slice.getInitialState()).toBe(42)
-    })
-
-    it('should allow non-draftable initial state', () => {
-      expect(() =>
-        createSlice({
-          name: 'params',
-          initialState: () => new URLSearchParams(),
-          reducers: {},
-        }),
-      ).not.toThrowError()
-    })
-  })
-
-  describe('when mutating state object', () => {
-    const initialState = { user: '' }
-
-    const { actions, reducer } = createSlice({
-      reducers: {
-        setUserName: (state, action) => {
-          state.user = action.payload
-        },
-      },
-      initialState,
-      name: 'user',
-    })
-
-    it('should set the username', () => {
-      expect(reducer(initialState, actions.setUserName('eric'))).toEqual({
-        user: 'eric',
-      })
-    })
-  })
-
-  describe('when passing extra reducers', () => {
-    const addMore = createAction<{ amount: number }>('ADD_MORE')
-
-    const { reducer } = createSlice({
-      name: 'test',
-      reducers: {
-        increment: (state) => state + 1,
-        multiply: (state, action) => state * action.payload,
-      },
-      extraReducers: (builder) => {
-        builder.addCase(
-          addMore,
-          (state, action) => state + action.payload.amount,
-        )
-      },
-
-      initialState: 0,
-    })
-
-    it('should call extra reducers when their actions are dispatched', () => {
-      const result = reducer(10, addMore({ amount: 5 }))
-
-      expect(result).toBe(15)
-    })
-
-    describe('builder callback for extraReducers', () => {
-      const increment = createAction<number, 'increment'>('increment')
-
-      test('can be used with actionCreators', () => {
-        const slice = createSlice({
-          name: 'counter',
-          initialState: 0,
-          reducers: {},
-          extraReducers: (builder) =>
-            builder.addCase(
-              increment,
-              (state, action) => state + action.payload,
-            ),
-        })
-        expect(slice.reducer(0, increment(5))).toBe(5)
-      })
-
-      test('can be used with string action types', () => {
-        const slice = createSlice({
-          name: 'counter',
-          initialState: 0,
-          reducers: {},
-          extraReducers: (builder) =>
-            builder.addCase(
-              'increment',
-              (state, action: { type: 'increment'; payload: number }) =>
-                state + action.payload,
-            ),
-        })
-        expect(slice.reducer(0, increment(5))).toBe(5)
-      })
-
-      test('prevents the same action type from being specified twice', () => {
-        expect(() => {
-          const slice = createSlice({
-            name: 'counter',
-            initialState: 0,
-            reducers: {},
-            extraReducers: (builder) =>
-              builder
-                .addCase('increment', (state) => state + 1)
-                .addCase('increment', (state) => state + 1),
-          })
-          slice.reducer(undefined, { type: 'unrelated' })
-        }).toThrowErrorMatchingInlineSnapshot(
-          `[Error: \`builder.addCase\` cannot be called with two reducers for the same action type 'increment']`,
-        )
-      })
-
-      test('can be used with addAsyncThunk and async thunks', () => {
-        const asyncThunk = createAsyncThunk('test', (n: number) => n)
-        const slice = createSlice({
-          name: 'counter',
-          initialState: {
-            loading: false,
-            errored: false,
-            value: 0,
-          },
-          reducers: {},
-          extraReducers: (builder) =>
-            builder.addAsyncThunk(asyncThunk, {
-              pending(state) {
-                state.loading = true
-              },
-              fulfilled(state, action) {
-                state.value = action.payload
-              },
-              rejected(state) {
-                state.errored = true
-              },
-              settled(state) {
-                state.loading = false
-              },
-            }),
-        })
-        expect(
-          slice.reducer(undefined, asyncThunk.pending('requestId', 5)),
-        ).toEqual({
-          loading: true,
-          errored: false,
-          value: 0,
-        })
-        expect(
-          slice.reducer(undefined, asyncThunk.fulfilled(5, 'requestId', 5)),
-        ).toEqual({
-          loading: false,
-          errored: false,
-          value: 5,
-        })
-        expect(
-          slice.reducer(
-            undefined,
-            asyncThunk.rejected(new Error(), 'requestId', 5),
-          ),
-        ).toEqual({
-          loading: false,
-          errored: true,
-          value: 0,
-        })
-      })
-
-      test('can be used with addMatcher and type guard functions', () => {
-        const slice = createSlice({
-          name: 'counter',
-          initialState: 0,
-          reducers: {},
-          extraReducers: (builder) =>
-            builder.addMatcher(
-              increment.match,
-              (state, action: { type: 'increment'; payload: number }) =>
-                state + action.payload,
-            ),
-        })
-        expect(slice.reducer(0, increment(5))).toBe(5)
-      })
-
-      test('can be used with addDefaultCase', () => {
-        const slice = createSlice({
-          name: 'counter',
-          initialState: 0,
-          reducers: {},
-          extraReducers: (builder) =>
-            builder.addDefaultCase(
-              (state, action) =>
-                state + (action as PayloadAction<number>).payload,
-            ),
-        })
-        expect(slice.reducer(0, increment(5))).toBe(5)
-      })
-
-      // for further tests, see the test of createReducer that goes way more into depth on this
-    })
-  })
-
-  describe('behavior with enhanced case reducers', () => {
-    it('should pass all arguments to the prepare function', () => {
-      const prepare = vi.fn((payload, somethingElse) => ({ payload }))
-
-      const testSlice = createSlice({
-        name: 'test',
-        initialState: 0,
-        reducers: {
-          testReducer: {
-            reducer: (s) => s,
-            prepare,
-          },
-        },
-      })
-
-      expect(testSlice.actions.testReducer('a', 1)).toEqual({
-        type: 'test/testReducer',
-        payload: 'a',
-      })
-      expect(prepare).toHaveBeenCalledWith('a', 1)
-    })
-
-    it('should call the reducer function', () => {
-      const reducer = vi.fn(() => 5)
-
-      const testSlice = createSlice({
-        name: 'test',
-        initialState: 0,
-        reducers: {
-          testReducer: {
-            reducer,
-            prepare: (payload: any) => ({ payload }),
-          },
-        },
-      })
-
-      testSlice.reducer(0, testSlice.actions.testReducer('testPayload'))
-      expect(reducer).toHaveBeenCalledWith(
-        0,
-        expect.objectContaining({ payload: 'testPayload' }),
-      )
-    })
-  })
-
-  describe('circularity', () => {
-    test('extraReducers can reference each other circularly', () => {
-      const first = createSlice({
-        name: 'first',
-        initialState: 'firstInitial',
-        reducers: {
-          something() {
-            return 'firstSomething'
-          },
-        },
-        extraReducers(builder) {
-          // eslint-disable-next-line @typescript-eslint/no-use-before-define
-          builder.addCase(second.actions.other, () => {
-            return 'firstOther'
-          })
-        },
-      })
-      const second = createSlice({
-        name: 'second',
-        initialState: 'secondInitial',
-        reducers: {
-          other() {
-            return 'secondOther'
-          },
-        },
-        extraReducers(builder) {
-          builder.addCase(first.actions.something, () => {
-            return 'secondSomething'
-          })
-        },
-      })
-
-      expect(first.reducer(undefined, { type: 'unrelated' })).toBe(
-        'firstInitial',
-      )
-      expect(first.reducer(undefined, first.actions.something())).toBe(
-        'firstSomething',
-      )
-      expect(first.reducer(undefined, second.actions.other())).toBe(
-        'firstOther',
-      )
-
-      expect(second.reducer(undefined, { type: 'unrelated' })).toBe(
-        'secondInitial',
-      )
-      expect(second.reducer(undefined, first.actions.something())).toBe(
-        'secondSomething',
-      )
-      expect(second.reducer(undefined, second.actions.other())).toBe(
-        'secondOther',
-      )
-    })
-  })
-
-  describe('Deprecation warnings', () => {
-    beforeEach(() => {
-      vi.resetModules()
-    })
-
-    afterEach(() => {
-      vi.unstubAllEnvs()
-    })
-
-    // NOTE: This needs to be in front of the later `createReducer` call to check the one-time warning
-    it('Throws an error if the legacy object notation is used', async () => {
-      const { createSlice } = await import('../createSlice')
-
-      let dummySlice = (createSlice as CreateSlice)({
-        name: 'dummy',
-        initialState: [],
-        reducers: {},
-        extraReducers: {
-          // @ts-ignore
-          a: () => [],
-        },
-      })
-      let reducer: any
-      // Have to trigger the lazy creation
-      const wrapper = () => {
-        reducer = dummySlice.reducer
-        reducer(undefined, { type: 'dummy' })
-      }
-
-      expect(wrapper).toThrowError(
-        /The object notation for `createSlice.extraReducers` has been removed/,
-      )
-
-      dummySlice = (createSlice as CreateSlice)({
-        name: 'dummy',
-        initialState: [],
-        reducers: {},
-        extraReducers: {
-          // @ts-ignore
-          a: () => [],
-        },
-      })
-      expect(wrapper).toThrowError(
-        /The object notation for `createSlice.extraReducers` has been removed/,
-      )
-    })
-
-    // TODO Determine final production behavior here
-    it.todo('Crashes in production', () => {
-      vi.stubEnv('NODE_ENV', 'production')
-
-      const { createSlice } = require('../createSlice')
-
-      const dummySlice = (createSlice as CreateSlice)({
-        name: 'dummy',
-        initialState: [],
-        reducers: {},
-        // @ts-ignore
-        extraReducers: {},
-      })
-      const wrapper = () => {
-        const { reducer } = dummySlice
-        reducer(undefined, { type: 'dummy' })
-      }
-
-      expect(wrapper).toThrowError(
-        /The object notation for `createSlice.extraReducers` has been removed/,
-      )
-
-      vi.unstubAllEnvs()
-    })
-  })
-  describe('slice selectors', () => {
-    const slice = createSlice({
-      name: 'counter',
-      initialState: 42,
-      reducers: {},
-      selectors: {
-        selectSlice: (state) => state,
-        selectMultiple: Object.assign(
-          (state: number, multiplier: number) => state * multiplier,
-          { test: 0 },
-        ),
-      },
-    })
-    it('expects reducer under slice.reducerPath if no selectState callback passed', () => {
-      const testState = {
-        [slice.reducerPath]: slice.getInitialState(),
-      }
-      const { selectSlice, selectMultiple } = slice.selectors
-      expect(selectSlice(testState)).toBe(slice.getInitialState())
-      expect(selectMultiple(testState, 2)).toBe(slice.getInitialState() * 2)
-    })
-    it('allows passing a selector for a custom location', () => {
-      const customState = {
-        number: slice.getInitialState(),
-      }
-      const { selectSlice, selectMultiple } = slice.getSelectors(
-        (state: typeof customState) => state.number,
-      )
-      expect(selectSlice(customState)).toBe(slice.getInitialState())
-      expect(selectMultiple(customState, 2)).toBe(slice.getInitialState() * 2)
-    })
-    it('allows accessing properties on the selector', () => {
-      expect(slice.selectors.selectMultiple.unwrapped.test).toBe(0)
-    })
-    it('has selectSlice attached to slice, which can go without this', () => {
-      const slice = createSlice({
-        name: 'counter',
-        initialState: 42,
-        reducers: {},
-      })
-      const { selectSlice } = slice
-      expect(() => selectSlice({ counter: 42 })).not.toThrow()
-      expect(selectSlice({ counter: 42 })).toBe(42)
-    })
-  })
-  describe('slice injections', () => {
-    it('uses injectInto to inject slice into combined reducer', () => {
-      const slice = createSlice({
-        name: 'counter',
-        initialState: 42,
-        reducers: {
-          increment: (state) => ++state,
-        },
-        selectors: {
-          selectMultiple: (state, multiplier: number) => state * multiplier,
-        },
-      })
-
-      const { increment } = slice.actions
-
-      const combinedReducer = combineSlices({
-        static: slice.reducer,
-      }).withLazyLoadedSlices<WithSlice<typeof slice>>()
-
-      const uninjectedState = combinedReducer(undefined, increment())
-
-      expect(uninjectedState.counter).toBe(undefined)
-
-      const injectedSlice = slice.injectInto(combinedReducer)
-
-      // selector returns initial state if undefined in real state
-      expect(injectedSlice.selectSlice(uninjectedState)).toBe(
-        slice.getInitialState(),
-      )
-      expect(injectedSlice.selectors.selectMultiple({}, 1)).toBe(
-        slice.getInitialState(),
-      )
-      expect(injectedSlice.getSelectors().selectMultiple(undefined, 1)).toBe(
-        slice.getInitialState(),
-      )
-
-      const injectedState = combinedReducer(undefined, increment())
-
-      expect(injectedSlice.selectSlice(injectedState)).toBe(
-        slice.getInitialState() + 1,
-      )
-      expect(injectedSlice.selectors.selectMultiple(injectedState, 1)).toBe(
-        slice.getInitialState() + 1,
-      )
-    })
-    it('allows providing a custom name to inject under', () => {
-      const slice = createSlice({
-        name: 'counter',
-        reducerPath: 'injected',
-        initialState: 42,
-        reducers: {
-          increment: (state) => ++state,
-        },
-        selectors: {
-          selectMultiple: (state, multiplier: number) => state * multiplier,
-        },
-      })
-
-      const { increment } = slice.actions
-
-      const combinedReducer = combineSlices({
-        static: slice.reducer,
-      }).withLazyLoadedSlices<WithSlice<typeof slice> & { injected2: number }>()
-
-      const uninjectedState = combinedReducer(undefined, increment())
-
-      expect(uninjectedState.injected).toBe(undefined)
-
-      const injected = slice.injectInto(combinedReducer)
-
-      const injectedState = combinedReducer(undefined, increment())
-
-      expect(injected.selectSlice(injectedState)).toBe(
-        slice.getInitialState() + 1,
-      )
-      expect(injected.selectors.selectMultiple(injectedState, 2)).toBe(
-        (slice.getInitialState() + 1) * 2,
-      )
-
-      const injected2 = slice.injectInto(combinedReducer, {
-        reducerPath: 'injected2',
-      })
-
-      const injected2State = combinedReducer(undefined, increment())
-
-      expect(injected2.selectSlice(injected2State)).toBe(
-        slice.getInitialState() + 1,
-      )
-      expect(injected2.selectors.selectMultiple(injected2State, 2)).toBe(
-        (slice.getInitialState() + 1) * 2,
-      )
-    })
-    it('avoids incorrectly caching selectors', () => {
-      const slice = createSlice({
-        name: 'counter',
-        reducerPath: 'injected',
-        initialState: 42,
-        reducers: {
-          increment: (state) => ++state,
-        },
-        selectors: {
-          selectMultiple: (state, multiplier: number) => state * multiplier,
-        },
-      })
-      expect(slice.getSelectors()).toBe(slice.getSelectors())
-      const combinedReducer = combineSlices({
-        static: slice.reducer,
-      }).withLazyLoadedSlices<WithSlice<typeof slice>>()
-
-      const injected = slice.injectInto(combinedReducer)
-
-      expect(injected.getSelectors()).not.toBe(slice.getSelectors())
-
-      expect(injected.getSelectors().selectMultiple(undefined, 1)).toBe(42)
-
-      expect(() =>
-        // @ts-expect-error
-        slice.getSelectors().selectMultiple(undefined, 1),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: selectState returned undefined for an uninjected slice reducer]`,
-      )
-
-      const injected2 = slice.injectInto(combinedReducer, {
-        reducerPath: 'other',
-      })
-
-      // can use same cache for localised selectors
-      expect(injected.getSelectors()).toBe(injected2.getSelectors())
-      // these should be different
-      expect(injected.selectors).not.toBe(injected2.selectors)
-    })
-    it('caches initial states for selectors', () => {
-      const slice = createSlice({
-        name: 'counter',
-        initialState: () => ({ value: 0 }),
-        reducers: {},
-        selectors: {
-          selectObj: (state) => state,
-        },
-      })
-      // not cached
-      expect(slice.getInitialState()).not.toBe(slice.getInitialState())
-      expect(slice.reducer(undefined, { type: 'dummy' })).not.toBe(
-        slice.reducer(undefined, { type: 'dummy' }),
-      )
-
-      const combinedReducer = combineSlices({
-        static: slice.reducer,
-      }).withLazyLoadedSlices<WithSlice<typeof slice>>()
-
-      const injected = slice.injectInto(combinedReducer)
-
-      // still not cached
-      expect(injected.getInitialState()).not.toBe(injected.getInitialState())
-      expect(injected.reducer(undefined, { type: 'dummy' })).not.toBe(
-        injected.reducer(undefined, { type: 'dummy' }),
-      )
-      // cached
-      expect(injected.selectSlice({})).toBe(injected.selectSlice({}))
-      expect(injected.selectors.selectObj({})).toBe(
-        injected.selectors.selectObj({}),
-      )
-    })
-  })
-  describe('reducers definition with asyncThunks', () => {
-    it('is disabled by default', () => {
-      expect(() =>
-        createSlice({
-          name: 'test',
-          initialState: [] as any[],
-          reducers: (create) => ({ thunk: create.asyncThunk(() => {}) }),
-        }),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: Cannot use \`create.asyncThunk\` in the built-in \`createSlice\`. Use \`buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })\` to create a customised version of \`createSlice\`.]`,
-      )
-    })
-    const createAppSlice = buildCreateSlice({
-      creators: { asyncThunk: asyncThunkCreator },
-    })
-    function pending(state: any[], action: any) {
-      state.push(['pendingReducer', action])
-    }
-    function fulfilled(state: any[], action: any) {
-      state.push(['fulfilledReducer', action])
-    }
-    function rejected(state: any[], action: any) {
-      state.push(['rejectedReducer', action])
-    }
-    function settled(state: any[], action: any) {
-      state.push(['settledReducer', action])
-    }
-
-    test('successful thunk', async () => {
-      const slice = createAppSlice({
-        name: 'test',
-        initialState: [] as any[],
-        reducers: (create) => ({
-          thunkReducers: create.asyncThunk(
-            function payloadCreator(arg: string, api) {
-              return Promise.resolve('resolved payload')
-            },
-            { pending, fulfilled, rejected, settled },
-          ),
-        }),
-      })
-
-      const store = configureStore({
-        reducer: slice.reducer,
-      })
-      await store.dispatch(slice.actions.thunkReducers('test'))
-      expect(store.getState()).toMatchObject([
-        [
-          'pendingReducer',
-          {
-            type: 'test/thunkReducers/pending',
-            payload: undefined,
-          },
-        ],
-        [
-          'fulfilledReducer',
-          {
-            type: 'test/thunkReducers/fulfilled',
-            payload: 'resolved payload',
-          },
-        ],
-        [
-          'settledReducer',
-          {
-            type: 'test/thunkReducers/fulfilled',
-            payload: 'resolved payload',
-          },
-        ],
-      ])
-    })
-
-    test('rejected thunk', async () => {
-      const slice = createAppSlice({
-        name: 'test',
-        initialState: [] as any[],
-        reducers: (create) => ({
-          thunkReducers: create.asyncThunk(
-            // payloadCreator isn't allowed to return never
-            function payloadCreator(arg: string, api): any {
-              throw new Error('')
-            },
-            { pending, fulfilled, rejected, settled },
-          ),
-        }),
-      })
-
-      const store = configureStore({
-        reducer: slice.reducer,
-      })
-      await store.dispatch(slice.actions.thunkReducers('test'))
-      expect(store.getState()).toMatchObject([
-        [
-          'pendingReducer',
-          {
-            type: 'test/thunkReducers/pending',
-            payload: undefined,
-          },
-        ],
-        [
-          'rejectedReducer',
-          {
-            type: 'test/thunkReducers/rejected',
-            payload: undefined,
-          },
-        ],
-        [
-          'settledReducer',
-          {
-            type: 'test/thunkReducers/rejected',
-            payload: undefined,
-          },
-        ],
-      ])
-    })
-
-    test('with options', async () => {
-      const slice = createAppSlice({
-        name: 'test',
-        initialState: [] as any[],
-        reducers: (create) => ({
-          thunkReducers: create.asyncThunk(
-            function payloadCreator(arg: string, api) {
-              return 'should not call this'
-            },
-            {
-              options: {
-                condition() {
-                  return false
-                },
-                dispatchConditionRejection: true,
-              },
-              pending,
-              fulfilled,
-              rejected,
-              settled,
-            },
-          ),
-        }),
-      })
-
-      const store = configureStore({
-        reducer: slice.reducer,
-      })
-      await store.dispatch(slice.actions.thunkReducers('test'))
-      expect(store.getState()).toMatchObject([
-        [
-          'rejectedReducer',
-          {
-            type: 'test/thunkReducers/rejected',
-            payload: undefined,
-            meta: { condition: true },
-          },
-        ],
-        [
-          'settledReducer',
-          {
-            type: 'test/thunkReducers/rejected',
-            payload: undefined,
-            meta: { condition: true },
-          },
-        ],
-      ])
-    })
-
-    test('has caseReducers for the asyncThunk', async () => {
-      const slice = createAppSlice({
-        name: 'test',
-        initialState: [],
-        reducers: (create) => ({
-          thunkReducers: create.asyncThunk(
-            function payloadCreator(arg, api) {
-              return Promise.resolve('resolved payload')
-            },
-            { pending, fulfilled, settled },
-          ),
-        }),
-      })
-
-      expect(slice.caseReducers.thunkReducers.pending).toBe(pending)
-      expect(slice.caseReducers.thunkReducers.fulfilled).toBe(fulfilled)
-      expect(slice.caseReducers.thunkReducers.settled).toBe(settled)
-      // even though it is not defined above, this should at least be a no-op function to match the TypeScript typings
-      // and should be callable as a reducer even if it does nothing
-      expect(() =>
-        slice.caseReducers.thunkReducers.rejected(
-          [],
-          slice.actions.thunkReducers.rejected(
-            new Error('test'),
-            'fakeRequestId',
-          ),
-        ),
-      ).not.toThrow()
-    })
-
-    test('can define reducer with prepare statement using create.preparedReducer', async () => {
-      const slice = createSlice({
-        name: 'test',
-        initialState: [] as any[],
-        reducers: (create) => ({
-          prepared: create.preparedReducer(
-            (p: string, m: number, e: { message: string }) => ({
-              payload: p,
-              meta: m,
-              error: e,
-            }),
-            (state, action) => {
-              state.push(action)
-            },
-          ),
-        }),
-      })
-
-      expect(
-        slice.reducer(
-          [],
-          slice.actions.prepared('test', 1, { message: 'err' }),
-        ),
-      ).toMatchInlineSnapshot(`
-        [
-          {
-            "error": {
-              "message": "err",
-            },
-            "meta": 1,
-            "payload": "test",
-            "type": "test/prepared",
-          },
-        ]
-      `)
-    })
-
-    test('throws an error when invoked with a normal `prepare` object that has not gone through a `create.preparedReducer` call', async () => {
-      expect(() =>
-        createSlice({
-          name: 'test',
-          initialState: [] as any[],
-          reducers: (create) => ({
-            prepared: {
-              prepare: (p: string, m: number, e: { message: string }) => ({
-                payload: p,
-                meta: m,
-                error: e,
-              }),
-              reducer: (state, action) => {
-                state.push(action)
-              },
-            },
-          }),
-        }),
-      ).toThrowErrorMatchingInlineSnapshot(
-        `[Error: Please use the \`create.preparedReducer\` notation for prepared action creators with the \`create\` notation.]`,
-      )
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/getDefaultEnhancers.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/getDefaultEnhancers.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,143 +1,0 @@
-import type { StoreEnhancer } from '@reduxjs/toolkit'
-import { configureStore } from '@reduxjs/toolkit'
-
-declare const enhancer1: StoreEnhancer<
-  {
-    has1: true
-  },
-  { stateHas1: true }
->
-
-declare const enhancer2: StoreEnhancer<
-  {
-    has2: true
-  },
-  { stateHas2: true }
->
-
-describe('type tests', () => {
-  test('prepend single element', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().prepend(enhancer1),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has2')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas2')
-  })
-
-  test('prepend multiple (rest)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().prepend(enhancer1, enhancer2),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.has2).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas2).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has3')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas3')
-  })
-
-  test('prepend multiple (array notation)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().prepend([enhancer1, enhancer2] as const),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.has2).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas2).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has3')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas3')
-  })
-
-  test('concat single element', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().concat(enhancer1),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has2')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas2')
-  })
-
-  test('prepend multiple (rest)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().concat(enhancer1, enhancer2),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.has2).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas2).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has3')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas3')
-  })
-
-  test('concat multiple (array notation)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().concat([enhancer1, enhancer2] as const),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.has2).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas2).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has3')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas3')
-  })
-
-  test('concat and prepend', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      enhancers: (gDE) => gDE().concat(enhancer1).prepend(enhancer2),
-    })
-
-    expectTypeOf(store.has1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas1).toEqualTypeOf<true>()
-
-    expectTypeOf(store.has2).toEqualTypeOf<true>()
-
-    expectTypeOf(store.getState().stateHas2).toEqualTypeOf<true>()
-
-    expectTypeOf(store).not.toHaveProperty('has3')
-
-    expectTypeOf(store.getState()).not.toHaveProperty('stateHas3')
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/getDefaultMiddleware.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/getDefaultMiddleware.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,199 +1,0 @@
-import { buildGetDefaultMiddleware } from '@internal/getDefaultMiddleware'
-import type {
-  Action,
-  Dispatch,
-  Middleware,
-  ThunkAction,
-  ThunkDispatch,
-  ThunkMiddleware,
-  Tuple,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import { configureStore } from '@reduxjs/toolkit'
-
-declare const middleware1: Middleware<{
-  (_: string): number
-}>
-
-declare const middleware2: Middleware<{
-  (_: number): string
-}>
-
-type ThunkReturn = Promise<'thunk'>
-declare const thunkCreator: () => () => ThunkReturn
-
-const getDefaultMiddleware = buildGetDefaultMiddleware()
-
-describe('type tests', () => {
-  test('prepend single element', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().prepend(middleware1),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('prepend multiple (rest)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().prepend(middleware1, middleware2),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(5)).toBeString()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('prepend multiple (array notation)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().prepend([middleware1, middleware2] as const),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(5)).toBeString()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('concat single element', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().concat(middleware1),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('prepend multiple (rest)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().concat(middleware1, middleware2),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(5)).toBeString()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('concat multiple (array notation)', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().concat([middleware1, middleware2] as const),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(5)).toBeString()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('concat and prepend', () => {
-    const store = configureStore({
-      reducer: () => 0,
-      middleware: (gDM) => gDM().concat(middleware1).prepend(middleware2),
-    })
-
-    expectTypeOf(store.dispatch('foo')).toBeNumber()
-
-    expectTypeOf(store.dispatch(5)).toBeString()
-
-    expectTypeOf(store.dispatch(thunkCreator())).toEqualTypeOf<ThunkReturn>()
-
-    expectTypeOf(store.dispatch('foo')).not.toBeString()
-  })
-
-  test('allows passing options to thunk', () => {
-    const extraArgument = 42 as const
-
-    const m2 = getDefaultMiddleware({
-      thunk: false,
-    })
-
-    expectTypeOf(m2).toMatchTypeOf<Tuple<[]>>()
-
-    const dummyMiddleware: Middleware<
-      {
-        (action: Action<'actionListenerMiddleware/add'>): () => void
-      },
-      { counter: number }
-    > = (storeApi) => (next) => (action) => {
-      return next(action)
-    }
-
-    const dummyMiddleware2: Middleware<{}, { counter: number }> =
-      (storeApi) => (next) => (action) => {}
-
-    const testThunk: ThunkAction<
-      void,
-      { counter: number },
-      number,
-      UnknownAction
-    > = (dispatch, getState, extraArg) => {
-      expect(extraArg).toBe(extraArgument)
-    }
-
-    const reducer = () => ({ counter: 123 })
-
-    const store = configureStore({
-      reducer,
-      middleware: (gDM) => {
-        const middleware = gDM({
-          thunk: { extraArgument },
-          immutableCheck: false,
-          serializableCheck: false,
-          actionCreatorCheck: false,
-        })
-
-        const m3 = middleware.concat(dummyMiddleware, dummyMiddleware2)
-
-        expectTypeOf(m3).toMatchTypeOf<
-          Tuple<
-            [
-              ThunkMiddleware<any, UnknownAction, 42>,
-              Middleware<
-                (action: Action<'actionListenerMiddleware/add'>) => () => void,
-                {
-                  counter: number
-                },
-                Dispatch<UnknownAction>
-              >,
-              Middleware<{}, any, Dispatch<UnknownAction>>,
-            ]
-          >
-        >()
-
-        return m3
-      },
-    })
-
-    expectTypeOf(store.dispatch).toMatchTypeOf<
-      ThunkDispatch<any, 42, UnknownAction> & Dispatch<UnknownAction>
-    >()
-
-    store.dispatch(testThunk)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/getDefaultMiddleware.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/getDefaultMiddleware.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,317 +1,0 @@
-import { Tuple } from '@internal/utils'
-import type {
-  Action,
-  Middleware,
-  ThunkAction,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import { configureStore } from '@reduxjs/toolkit'
-import { thunk } from 'redux-thunk'
-import { vi } from 'vitest'
-
-import { buildGetDefaultMiddleware } from '@internal/getDefaultMiddleware'
-
-const getDefaultMiddleware = buildGetDefaultMiddleware()
-
-describe('getDefaultMiddleware', () => {
-  afterEach(() => {
-    vi.unstubAllEnvs()
-  })
-
-  describe('Production behavior', () => {
-    beforeEach(() => {
-      vi.resetModules()
-    })
-
-    it('returns an array with only redux-thunk in production', async () => {
-      vi.stubEnv('NODE_ENV', 'production')
-
-      const { thunk } = await import('redux-thunk')
-      const { buildGetDefaultMiddleware } = await import(
-        '@internal/getDefaultMiddleware'
-      )
-
-      const middleware = buildGetDefaultMiddleware()()
-      expect(middleware).toContain(thunk)
-      expect(middleware.length).toBe(1)
-    })
-  })
-
-  it('returns an array with additional middleware in development', () => {
-    const middleware = getDefaultMiddleware()
-    expect(middleware).toContain(thunk)
-    expect(middleware.length).toBeGreaterThan(1)
-  })
-
-  const defaultMiddleware = getDefaultMiddleware()
-
-  it('removes the thunk middleware if disabled', () => {
-    const middleware = getDefaultMiddleware({ thunk: false })
-    // @ts-ignore
-    expect(middleware.includes(thunk)).toBe(false)
-    expect(middleware.length).toBe(defaultMiddleware.length - 1)
-  })
-
-  it('removes the immutable middleware if disabled', () => {
-    const middleware = getDefaultMiddleware({ immutableCheck: false })
-    expect(middleware.length).toBe(defaultMiddleware.length - 1)
-  })
-
-  it('removes the serializable middleware if disabled', () => {
-    const middleware = getDefaultMiddleware({ serializableCheck: false })
-    expect(middleware.length).toBe(defaultMiddleware.length - 1)
-  })
-
-  it('removes the action creator middleware if disabled', () => {
-    const middleware = getDefaultMiddleware({ actionCreatorCheck: false })
-    expect(middleware.length).toBe(defaultMiddleware.length - 1)
-  })
-
-  it('allows passing options to thunk', () => {
-    const extraArgument = 42 as const
-
-    const m2 = getDefaultMiddleware({
-      thunk: false,
-    })
-
-    const dummyMiddleware: Middleware<
-      {
-        (action: Action<'actionListenerMiddleware/add'>): () => void
-      },
-      { counter: number }
-    > = (storeApi) => (next) => (action) => {
-      return next(action)
-    }
-
-    const dummyMiddleware2: Middleware<{}, { counter: number }> =
-      (storeApi) => (next) => (action) => {}
-
-    const testThunk: ThunkAction<
-      void,
-      { counter: number },
-      number,
-      UnknownAction
-    > = (dispatch, getState, extraArg) => {
-      expect(extraArg).toBe(extraArgument)
-    }
-
-    const reducer = () => ({ counter: 123 })
-
-    const store = configureStore({
-      reducer,
-      middleware: (gDM) => {
-        const middleware = gDM({
-          thunk: { extraArgument },
-          immutableCheck: false,
-          serializableCheck: false,
-          actionCreatorCheck: false,
-        })
-
-        const m3 = middleware.concat(dummyMiddleware, dummyMiddleware2)
-
-        return m3
-      },
-    })
-
-    store.dispatch(testThunk)
-  })
-
-  it('allows passing options to immutableCheck', () => {
-    let immutableCheckWasCalled = false
-
-    const middleware = () =>
-      getDefaultMiddleware({
-        thunk: false,
-        immutableCheck: {
-          isImmutable: () => {
-            immutableCheckWasCalled = true
-            return true
-          },
-        },
-        serializableCheck: false,
-        actionCreatorCheck: false,
-      })
-
-    const reducer = () => ({})
-
-    const store = configureStore({
-      reducer,
-      middleware,
-    })
-
-    expect(immutableCheckWasCalled).toBe(true)
-  })
-
-  it('allows passing options to serializableCheck', () => {
-    let serializableCheckWasCalled = false
-
-    const middleware = () =>
-      getDefaultMiddleware({
-        thunk: false,
-        immutableCheck: false,
-        serializableCheck: {
-          isSerializable: () => {
-            serializableCheckWasCalled = true
-            return true
-          },
-        },
-        actionCreatorCheck: false,
-      })
-
-    const reducer = () => ({})
-
-    const store = configureStore({
-      reducer,
-      middleware,
-    })
-
-    store.dispatch({ type: 'TEST_ACTION' })
-
-    expect(serializableCheckWasCalled).toBe(true)
-  })
-})
-
-it('allows passing options to actionCreatorCheck', () => {
-  let actionCreatorCheckWasCalled = false
-
-  const middleware = () =>
-    getDefaultMiddleware({
-      thunk: false,
-      immutableCheck: false,
-      serializableCheck: false,
-      actionCreatorCheck: {
-        isActionCreator: (action: unknown): action is Function => {
-          actionCreatorCheckWasCalled = true
-          return false
-        },
-      },
-    })
-
-  const reducer = () => ({})
-
-  const store = configureStore({
-    reducer,
-    middleware,
-  })
-
-  store.dispatch({ type: 'TEST_ACTION' })
-
-  expect(actionCreatorCheckWasCalled).toBe(true)
-})
-
-describe('Tuple functionality', () => {
-  const middleware1: Middleware = () => (next) => (action) => next(action)
-  const middleware2: Middleware = () => (next) => (action) => next(action)
-  const defaultMiddleware = getDefaultMiddleware()
-  const originalDefaultMiddleware = [...defaultMiddleware]
-
-  test('allows to prepend a single value', () => {
-    const prepended = defaultMiddleware.prepend(middleware1)
-
-    // value is prepended
-    expect(prepended).toEqual([middleware1, ...defaultMiddleware])
-    // returned value is of correct type
-    expect(prepended).toBeInstanceOf(Tuple)
-    // prepended is a new array
-    expect(prepended).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to prepend multiple values (array as first argument)', () => {
-    const prepended = defaultMiddleware.prepend([middleware1, middleware2])
-
-    // value is prepended
-    expect(prepended).toEqual([middleware1, middleware2, ...defaultMiddleware])
-    // returned value is of correct type
-    expect(prepended).toBeInstanceOf(Tuple)
-    // prepended is a new array
-    expect(prepended).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to prepend multiple values (rest)', () => {
-    const prepended = defaultMiddleware.prepend(middleware1, middleware2)
-
-    // value is prepended
-    expect(prepended).toEqual([middleware1, middleware2, ...defaultMiddleware])
-    // returned value is of correct type
-    expect(prepended).toBeInstanceOf(Tuple)
-    // prepended is a new array
-    expect(prepended).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to concat a single value', () => {
-    const concatenated = defaultMiddleware.concat(middleware1)
-
-    // value is concatenated
-    expect(concatenated).toEqual([...defaultMiddleware, middleware1])
-    // returned value is of correct type
-    expect(concatenated).toBeInstanceOf(Tuple)
-    // concatenated is a new array
-    expect(concatenated).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to concat multiple values (array as first argument)', () => {
-    const concatenated = defaultMiddleware.concat([middleware1, middleware2])
-
-    // value is concatenated
-    expect(concatenated).toEqual([
-      ...defaultMiddleware,
-      middleware1,
-      middleware2,
-    ])
-    // returned value is of correct type
-    expect(concatenated).toBeInstanceOf(Tuple)
-    // concatenated is a new array
-    expect(concatenated).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to concat multiple values (rest)', () => {
-    const concatenated = defaultMiddleware.concat(middleware1, middleware2)
-
-    // value is concatenated
-    expect(concatenated).toEqual([
-      ...defaultMiddleware,
-      middleware1,
-      middleware2,
-    ])
-    // returned value is of correct type
-    expect(concatenated).toBeInstanceOf(Tuple)
-    // concatenated is a new array
-    expect(concatenated).not.toEqual(defaultMiddleware)
-    // defaultMiddleware is not modified
-    expect(defaultMiddleware).toEqual(originalDefaultMiddleware)
-  })
-
-  test('allows to concat and then prepend', () => {
-    const concatenated = defaultMiddleware
-      .concat(middleware1)
-      .prepend(middleware2)
-
-    expect(concatenated).toEqual([
-      middleware2,
-      ...defaultMiddleware,
-      middleware1,
-    ])
-  })
-
-  test('allows to prepend and then concat', () => {
-    const concatenated = defaultMiddleware
-      .prepend(middleware2)
-      .concat(middleware1)
-
-    expect(concatenated).toEqual([
-      middleware2,
-      ...defaultMiddleware,
-      middleware1,
-    ])
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/immutableStateInvariantMiddleware.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/immutableStateInvariantMiddleware.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,506 +1,0 @@
-import { trackForMutations } from '@internal/immutableStateInvariantMiddleware'
-import { noop } from '@internal/listenerMiddleware/utils'
-import type {
-  ImmutableStateInvariantMiddlewareOptions,
-  Middleware,
-  MiddlewareAPI,
-  Store,
-} from '@reduxjs/toolkit'
-import {
-  createImmutableStateInvariantMiddleware,
-  isImmutableDefault,
-} from '@reduxjs/toolkit'
-
-type MWNext = Parameters<ReturnType<Middleware>>[0]
-
-describe('createImmutableStateInvariantMiddleware', () => {
-  let state: { foo: { bar: number[]; baz: string } }
-  const getState: Store['getState'] = () => state
-
-  function middleware(options: ImmutableStateInvariantMiddlewareOptions = {}) {
-    return createImmutableStateInvariantMiddleware(options)({
-      getState,
-    } as MiddlewareAPI)
-  }
-
-  beforeEach(() => {
-    state = { foo: { bar: [2, 3, 4], baz: 'baz' } }
-  })
-
-  it('sends the action through the middleware chain', () => {
-    const next: MWNext = vi.fn()
-    const dispatch = middleware()(next)
-    dispatch({ type: 'SOME_ACTION' })
-
-    expect(next).toHaveBeenCalledWith({
-      type: 'SOME_ACTION',
-    })
-  })
-
-  it('throws if mutating inside the dispatch', () => {
-    const next: MWNext = (action) => {
-      state.foo.bar.push(5)
-      return action
-    }
-
-    const dispatch = middleware()(next)
-
-    expect(() => {
-      dispatch({ type: 'SOME_ACTION' })
-    }).toThrow(new RegExp('foo\\.bar\\.3'))
-  })
-
-  it('throws if mutating between dispatches', () => {
-    const next: MWNext = (action) => action
-
-    const dispatch = middleware()(next)
-
-    dispatch({ type: 'SOME_ACTION' })
-    state.foo.bar.push(5)
-    expect(() => {
-      dispatch({ type: 'SOME_OTHER_ACTION' })
-    }).toThrow(new RegExp('foo\\.bar\\.3'))
-  })
-
-  it('does not throw if not mutating inside the dispatch', () => {
-    const next: MWNext = (action) => {
-      state = { ...state, foo: { ...state.foo, baz: 'changed!' } }
-      return action
-    }
-
-    const dispatch = middleware()(next)
-
-    expect(() => {
-      dispatch({ type: 'SOME_ACTION' })
-    }).not.toThrow()
-  })
-
-  it('does not throw if not mutating between dispatches', () => {
-    const next: MWNext = (action) => action
-
-    const dispatch = middleware()(next)
-
-    dispatch({ type: 'SOME_ACTION' })
-    state = { ...state, foo: { ...state.foo, baz: 'changed!' } }
-    expect(() => {
-      dispatch({ type: 'SOME_OTHER_ACTION' })
-    }).not.toThrow()
-  })
-
-  it('works correctly with circular references', () => {
-    const next: MWNext = (action) => action
-
-    const dispatch = middleware()(next)
-
-    let x: any = {}
-    let y: any = {}
-    x.y = y
-    y.x = x
-
-    expect(() => {
-      dispatch({ type: 'SOME_ACTION', x })
-    }).not.toThrow()
-  })
-
-  it('respects "isImmutable" option', function () {
-    const isImmutable = (value: any) => true
-    const next: MWNext = (action) => {
-      state.foo.bar.push(5)
-      return action
-    }
-
-    const dispatch = middleware({ isImmutable })(next)
-
-    expect(() => {
-      dispatch({ type: 'SOME_ACTION' })
-    }).not.toThrow()
-  })
-
-  it('respects "ignoredPaths" option', () => {
-    const next: MWNext = (action) => {
-      state.foo.bar.push(5)
-      return action
-    }
-
-    const dispatch1 = middleware({ ignoredPaths: ['foo.bar'] })(next)
-
-    expect(() => {
-      dispatch1({ type: 'SOME_ACTION' })
-    }).not.toThrow()
-
-    const dispatch2 = middleware({ ignoredPaths: [/^foo/] })(next)
-
-    expect(() => {
-      dispatch2({ type: 'SOME_ACTION' })
-    }).not.toThrow()
-  })
-
-  it('Should print a warning if execution takes too long', () => {
-    state.foo.bar = new Array(10000).fill({ value: 'more' })
-
-    const next: MWNext = (action) => action
-
-    const dispatch = middleware({ warnAfter: 4 })(next)
-
-    const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(noop)
-
-    try {
-      dispatch({ type: 'SOME_ACTION' })
-
-      expect(consoleWarnSpy).toHaveBeenCalledOnce()
-
-      expect(consoleWarnSpy).toHaveBeenLastCalledWith(
-        expect.stringMatching(
-          /^ImmutableStateInvariantMiddleware took \d*ms, which is more than the warning threshold of 4ms./,
-        ),
-      )
-    } finally {
-      consoleWarnSpy.mockRestore()
-    }
-  })
-
-  it('Should not print a warning if "next" takes too long', () => {
-    const next: MWNext = (action) => {
-      const started = Date.now()
-      while (Date.now() - started < 8) {}
-      return action
-    }
-
-    const dispatch = middleware({ warnAfter: 4 })(next)
-
-    const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(noop)
-
-    try {
-      dispatch({ type: 'SOME_ACTION' })
-
-      expect(consoleWarnSpy).not.toHaveBeenCalled()
-    } finally {
-      consoleWarnSpy.mockRestore()
-    }
-  })
-})
-
-describe('trackForMutations', () => {
-  function testCasesForMutation(spec: any) {
-    it('returns true and the mutated path', () => {
-      const state = spec.getState()
-      const options = spec.middlewareOptions || {}
-      const { isImmutable = isImmutableDefault, ignoredPaths } = options
-      const tracker = trackForMutations(isImmutable, ignoredPaths, state)
-      const newState = spec.fn(state)
-
-      expect(tracker.detectMutations()).toEqual({
-        wasMutated: true,
-        path: spec.path.join('.'),
-      })
-    })
-  }
-
-  function testCasesForNonMutation(spec: any) {
-    it('returns false', () => {
-      const state = spec.getState()
-      const options = spec.middlewareOptions || {}
-      const { isImmutable = isImmutableDefault, ignoredPaths } = options
-      const tracker = trackForMutations(isImmutable, ignoredPaths, state)
-      const newState = spec.fn(state)
-
-      expect(tracker.detectMutations()).toEqual({ wasMutated: false })
-    })
-  }
-
-  interface TestConfig {
-    getState: Store['getState']
-    fn: (s: any) => typeof s | object
-    middlewareOptions?: ImmutableStateInvariantMiddlewareOptions
-    path?: string[]
-  }
-
-  const mutations: Record<string, TestConfig> = {
-    'adding to nested array': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        s.foo.bar.push(5)
-        return s
-      },
-      path: ['foo', 'bar', '3'],
-    },
-    'adding to nested array and setting new root object': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        s.foo.bar.push(5)
-        return { ...s }
-      },
-      path: ['foo', 'bar', '3'],
-    },
-    'changing nested string': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        s.foo.baz = 'changed!'
-        return s
-      },
-      path: ['foo', 'baz'],
-    },
-    'removing nested state': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        delete s.foo
-        return s
-      },
-      path: ['foo'],
-    },
-    'adding to array': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        s.stuff.push(1)
-        return s
-      },
-      path: ['stuff', '0'],
-    },
-    'adding object to array': {
-      getState: () => ({
-        stuff: [],
-      }),
-      fn: (s) => {
-        s.stuff.push({ foo: 1, bar: 2 })
-        return s
-      },
-      path: ['stuff', '0'],
-    },
-    'mutating previous state and returning new state': {
-      getState: () => ({ counter: 0 }),
-      fn: (s) => {
-        s.mutation = true
-        return { ...s, counter: s.counter + 1 }
-      },
-      path: ['mutation'],
-    },
-    'mutating previous state with non immutable type and returning new state': {
-      getState: () => ({ counter: 0 }),
-      fn: (s) => {
-        s.mutation = [1, 2, 3]
-        return { ...s, counter: s.counter + 1 }
-      },
-      path: ['mutation'],
-    },
-    'mutating previous state with non immutable type and returning new state without that property':
-      {
-        getState: () => ({ counter: 0 }),
-        fn: (s) => {
-          s.mutation = [1, 2, 3]
-          return { counter: s.counter + 1 }
-        },
-        path: ['mutation'],
-      },
-    'mutating previous state with non immutable type and returning new simple state':
-      {
-        getState: () => ({ counter: 0 }),
-        fn: (s) => {
-          s.mutation = [1, 2, 3]
-          return 1
-        },
-        path: ['mutation'],
-      },
-    'mutating previous state by deleting property and returning new state without that property':
-      {
-        getState: () => ({ counter: 0, toBeDeleted: true }),
-        fn: (s) => {
-          delete s.toBeDeleted
-          return { counter: s.counter + 1 }
-        },
-        path: ['toBeDeleted'],
-      },
-    'mutating previous state by deleting nested property': {
-      getState: () => ({ nested: { counter: 0, toBeDeleted: true }, foo: 1 }),
-      fn: (s) => {
-        delete s.nested.toBeDeleted
-        return { nested: { counter: s.counter + 1 } }
-      },
-      path: ['nested', 'toBeDeleted'],
-    },
-    'update reference': {
-      getState: () => ({ foo: {} }),
-      fn: (s) => {
-        s.foo = {}
-        return s
-      },
-      path: ['foo'],
-    },
-    'cannot ignore root state': {
-      getState: () => ({ foo: {} }),
-      fn: (s) => {
-        s.foo = {}
-        return s
-      },
-      middlewareOptions: {
-        ignoredPaths: [''],
-      },
-      path: ['foo'],
-    },
-    'catching state mutation in non-ignored branch': {
-      getState: () => ({
-        foo: {
-          bar: [1, 2],
-        },
-        boo: {
-          yah: [1, 2],
-        },
-      }),
-      fn: (s) => {
-        s.foo.bar.push(3)
-        s.boo.yah.push(3)
-        return s
-      },
-      middlewareOptions: {
-        ignoredPaths: ['foo'],
-      },
-      path: ['boo', 'yah', '2'],
-    },
-  }
-
-  Object.keys(mutations).forEach((mutationDesc) => {
-    describe(mutationDesc, () => {
-      testCasesForMutation(mutations[mutationDesc])
-    })
-  })
-
-  const nonMutations: Record<string, TestConfig> = {
-    'not doing anything': {
-      getState: () => ({ a: 1, b: 2 }),
-      fn: (s) => s,
-    },
-    'from undefined to something': {
-      getState: () => undefined,
-      fn: (s) => ({ foo: 'bar' }),
-    },
-    'returning same state': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => s,
-    },
-    'returning a new state object with nested new string': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        return { ...s, foo: { ...s.foo, baz: 'changed!' } }
-      },
-    },
-    'returning a new state object with nested new array': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        return { ...s, foo: { ...s.foo, bar: [...s.foo.bar, 5] } }
-      },
-    },
-    'removing nested state': {
-      getState: () => ({
-        foo: {
-          bar: [2, 3, 4],
-          baz: 'baz',
-        },
-        stuff: [],
-      }),
-      fn: (s) => {
-        return { ...s, foo: {} }
-      },
-    },
-    'having a NaN in the state': {
-      getState: () => ({ a: NaN, b: Number.NaN }),
-      fn: (s) => s,
-    },
-    'ignoring branches from mutation detection': {
-      getState: () => ({
-        foo: {
-          bar: 'bar',
-        },
-      }),
-      fn: (s) => {
-        s.foo.bar = 'baz'
-        return s
-      },
-      middlewareOptions: {
-        ignoredPaths: ['foo'],
-      },
-    },
-    'ignoring nested branches from mutation detection': {
-      getState: () => ({
-        foo: {
-          bar: [1, 2],
-          boo: {
-            yah: [1, 2],
-          },
-        },
-      }),
-      fn: (s) => {
-        s.foo.bar.push(3)
-        s.foo.boo.yah.push(3)
-        return s
-      },
-      middlewareOptions: {
-        ignoredPaths: ['foo.bar', 'foo.boo.yah'],
-      },
-    },
-    'ignoring nested array indices from mutation detection': {
-      getState: () => ({
-        stuff: [{ a: 1 }, { a: 2 }],
-      }),
-      fn: (s) => {
-        s.stuff[1].a = 3
-        return s
-      },
-      middlewareOptions: {
-        ignoredPaths: ['stuff.1'],
-      },
-    },
-  }
-
-  Object.keys(nonMutations).forEach((nonMutationDesc) => {
-    describe(nonMutationDesc, () => {
-      testCasesForNonMutation(nonMutations[nonMutationDesc])
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/mapBuilders.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/mapBuilders.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,416 +1,0 @@
-import type { SerializedError } from '@internal/createAsyncThunk'
-import { createAsyncThunk } from '@internal/createAsyncThunk'
-import { executeReducerBuilderCallback } from '@internal/mapBuilders'
-import type { UnknownAction } from '@reduxjs/toolkit'
-import { createAction } from '@reduxjs/toolkit'
-
-describe('type tests', () => {
-  test('builder callback for actionMap', () => {
-    const increment = createAction<number, 'increment'>('increment')
-
-    const decrement = createAction<number, 'decrement'>('decrement')
-
-    executeReducerBuilderCallback<number>((builder) => {
-      builder.addCase(increment, (state, action) => {
-        expectTypeOf(state).toBeNumber()
-
-        expectTypeOf(action).toEqualTypeOf<{
-          type: 'increment'
-          payload: number
-        }>()
-
-        expectTypeOf(state).not.toBeString()
-
-        expectTypeOf(action).not.toMatchTypeOf<{
-          type: 'increment'
-          payload: string
-        }>()
-
-        expectTypeOf(action).not.toMatchTypeOf<{
-          type: 'decrement'
-          payload: number
-        }>()
-      })
-
-      builder.addCase('increment', (state, action) => {
-        expectTypeOf(state).toBeNumber()
-
-        expectTypeOf(action).toEqualTypeOf<{ type: 'increment' }>()
-
-        expectTypeOf(state).not.toBeString()
-
-        expectTypeOf(action).not.toMatchTypeOf<{ type: 'decrement' }>()
-
-        // this cannot be inferred and has to be manually specified
-        expectTypeOf(action).not.toMatchTypeOf<{
-          type: 'increment'
-          payload: number
-        }>()
-      })
-
-      builder.addCase(
-        increment,
-        (state, action: ReturnType<typeof increment>) => state,
-      )
-
-      // @ts-expect-error
-      builder.addCase(
-        increment,
-        (state, action: ReturnType<typeof decrement>) => state,
-      )
-
-      builder.addCase(
-        'increment',
-        (state, action: ReturnType<typeof increment>) => state,
-      )
-
-      // @ts-expect-error
-      builder.addCase(
-        'decrement',
-        (state, action: ReturnType<typeof increment>) => state,
-      )
-
-      // action type is inferred
-      builder.addMatcher(increment.match, (state, action) => {
-        expectTypeOf(action).toEqualTypeOf<ReturnType<typeof increment>>()
-      })
-
-      test('action type is inferred when type predicate lacks `type` property', () => {
-        type PredicateWithoutTypeProperty = {
-          payload: number
-        }
-
-        builder.addMatcher(
-          (action): action is PredicateWithoutTypeProperty => true,
-          (state, action) => {
-            expectTypeOf(action).toMatchTypeOf<PredicateWithoutTypeProperty>()
-
-            expectTypeOf(action).toMatchTypeOf<UnknownAction>()
-          },
-        )
-      })
-
-      // action type defaults to UnknownAction if no type predicate matcher is passed
-      builder.addMatcher(
-        () => true,
-        (state, action) => {
-          expectTypeOf(action).toMatchTypeOf<UnknownAction>()
-        },
-      )
-
-      // with a boolean checker, action can also be typed by type argument
-      builder.addMatcher<{ foo: boolean }>(
-        () => true,
-        (state, action) => {
-          expectTypeOf(action).toMatchTypeOf<{ foo: boolean }>()
-
-          expectTypeOf(action).toMatchTypeOf<UnknownAction>()
-        },
-      )
-
-      // addCase().addMatcher() is possible, action type inferred correctly
-      builder
-        .addCase(
-          'increment',
-          (state, action: ReturnType<typeof increment>) => state,
-        )
-        .addMatcher(decrement.match, (state, action) => {
-          expectTypeOf(action).toEqualTypeOf<ReturnType<typeof decrement>>()
-        })
-
-      // addCase().addDefaultCase() is possible, action type is UnknownAction
-      builder
-        .addCase(
-          'increment',
-          (state, action: ReturnType<typeof increment>) => state,
-        )
-        .addDefaultCase((state, action) => {
-          expectTypeOf(action).toMatchTypeOf<UnknownAction>()
-        })
-
-      test('addAsyncThunk() should prevent further calls to addCase() ', () => {
-        const asyncThunk = createAsyncThunk('test', () => {})
-        const b = builder.addAsyncThunk(asyncThunk, {
-          pending: () => {},
-          rejected: () => {},
-          fulfilled: () => {},
-          settled: () => {},
-        })
-
-        expectTypeOf(b).not.toHaveProperty('addCase')
-
-        expectTypeOf(b.addAsyncThunk).toBeFunction()
-
-        expectTypeOf(b.addMatcher).toBeCallableWith(increment.match, () => {})
-
-        expectTypeOf(b.addDefaultCase).toBeCallableWith(() => {})
-      })
-
-      test('addMatcher() should prevent further calls to addCase() and addAsyncThunk()', () => {
-        const b = builder.addMatcher(increment.match, () => {})
-
-        expectTypeOf(b).not.toHaveProperty('addCase')
-        expectTypeOf(b).not.toHaveProperty('addAsyncThunk')
-
-        expectTypeOf(b.addMatcher).toBeCallableWith(increment.match, () => {})
-
-        expectTypeOf(b.addDefaultCase).toBeCallableWith(() => {})
-      })
-
-      test('addDefaultCase() should prevent further calls to addCase(), addAsyncThunk(), addMatcher() and addDefaultCase', () => {
-        const b = builder.addDefaultCase(() => {})
-
-        expectTypeOf(b).not.toHaveProperty('addCase')
-
-        expectTypeOf(b).not.toHaveProperty('addAsyncThunk')
-
-        expectTypeOf(b).not.toHaveProperty('addMatcher')
-
-        expectTypeOf(b).not.toHaveProperty('addDefaultCase')
-      })
-
-      describe('`createAsyncThunk` actions work with `mapBuilder`', () => {
-        test('case 1: normal `createAsyncThunk`', () => {
-          const thunk = createAsyncThunk('test', () => {
-            return 'ret' as const
-          })
-          builder.addCase(thunk.pending, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: undefined
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'pending'
-              }
-            }>()
-          })
-
-          builder.addCase(thunk.rejected, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: unknown
-              error: SerializedError
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'rejected'
-                aborted: boolean
-                condition: boolean
-                rejectedWithValue: boolean
-              }
-            }>()
-          })
-          builder.addCase(thunk.fulfilled, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: 'ret'
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'fulfilled'
-              }
-            }>()
-          })
-
-          builder.addAsyncThunk(thunk, {
-            pending(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: undefined
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'pending'
-                }
-              }>()
-            },
-            rejected(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: unknown
-                error: SerializedError
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'rejected'
-                  aborted: boolean
-                  condition: boolean
-                  rejectedWithValue: boolean
-                }
-              }>()
-            },
-            fulfilled(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: 'ret'
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'fulfilled'
-                }
-              }>()
-            },
-            settled(_, action) {
-              expectTypeOf(action).toMatchTypeOf<
-                | {
-                    payload: 'ret'
-                    meta: {
-                      arg: void
-                      requestId: string
-                      requestStatus: 'fulfilled'
-                    }
-                  }
-                | {
-                    payload: unknown
-                    error: SerializedError
-                    meta: {
-                      arg: void
-                      requestId: string
-                      requestStatus: 'rejected'
-                      aborted: boolean
-                      condition: boolean
-                      rejectedWithValue: boolean
-                    }
-                  }
-              >()
-            },
-          })
-        })
-
-        test('case 2: `createAsyncThunk` with `meta`', () => {
-          const thunk = createAsyncThunk<
-            'ret',
-            void,
-            {
-              pendingMeta: { startedTimeStamp: number }
-              fulfilledMeta: {
-                fulfilledTimeStamp: number
-                baseQueryMeta: 'meta!'
-              }
-              rejectedMeta: {
-                baseQueryMeta: 'meta!'
-              }
-            }
-          >(
-            'test',
-            (_, api) => {
-              return api.fulfillWithValue('ret' as const, {
-                fulfilledTimeStamp: 5,
-                baseQueryMeta: 'meta!',
-              })
-            },
-            {
-              getPendingMeta() {
-                return { startedTimeStamp: 0 }
-              },
-            },
-          )
-
-          builder.addCase(thunk.pending, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: undefined
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'pending'
-                startedTimeStamp: number
-              }
-            }>()
-          })
-
-          builder.addCase(thunk.rejected, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: unknown
-              error: SerializedError
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'rejected'
-                aborted: boolean
-                condition: boolean
-                rejectedWithValue: boolean
-                baseQueryMeta?: 'meta!'
-              }
-            }>()
-
-            if (action.meta.rejectedWithValue) {
-              expectTypeOf(action.meta.baseQueryMeta).toEqualTypeOf<'meta!'>()
-            }
-          })
-          builder.addCase(thunk.fulfilled, (_, action) => {
-            expectTypeOf(action).toMatchTypeOf<{
-              payload: 'ret'
-              meta: {
-                arg: void
-                requestId: string
-                requestStatus: 'fulfilled'
-                baseQueryMeta: 'meta!'
-              }
-            }>()
-          })
-
-          builder.addAsyncThunk(thunk, {
-            pending(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: undefined
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'pending'
-                  startedTimeStamp: number
-                }
-              }>()
-            },
-            rejected(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: unknown
-                error: SerializedError
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'rejected'
-                  aborted: boolean
-                  condition: boolean
-                  rejectedWithValue: boolean
-                  baseQueryMeta?: 'meta!'
-                }
-              }>()
-            },
-            fulfilled(_, action) {
-              expectTypeOf(action).toMatchTypeOf<{
-                payload: 'ret'
-                meta: {
-                  arg: void
-                  requestId: string
-                  requestStatus: 'fulfilled'
-                  baseQueryMeta: 'meta!'
-                }
-              }>()
-            },
-            settled(_, action) {
-              expectTypeOf(action).toMatchTypeOf<
-                | {
-                    payload: 'ret'
-                    meta: {
-                      arg: void
-                      requestId: string
-                      requestStatus: 'fulfilled'
-                      baseQueryMeta: 'meta!'
-                    }
-                  }
-                | {
-                    payload: unknown
-                    error: SerializedError
-                    meta: {
-                      arg: void
-                      requestId: string
-                      requestStatus: 'rejected'
-                      aborted: boolean
-                      condition: boolean
-                      rejectedWithValue: boolean
-                      baseQueryMeta?: 'meta!'
-                    }
-                  }
-              >()
-            },
-          })
-        })
-      })
-    })
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/matchers.test-d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/matchers.test-d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,296 +1,0 @@
-import type { UnknownAction } from 'redux'
-import type { SerializedError } from '../../src'
-import {
-  createAction,
-  createAsyncThunk,
-  isAllOf,
-  isAnyOf,
-  isAsyncThunkAction,
-  isFulfilled,
-  isPending,
-  isRejected,
-  isRejectedWithValue,
-} from '../../src'
-
-const action: UnknownAction = { type: 'foo' }
-
-describe('type tests', () => {
-  describe('isAnyOf', () => {
-    test('isAnyOf correctly narrows types when used with action creators', () => {
-      const actionA = createAction('a', () => {
-        return {
-          payload: {
-            prop1: 1,
-            prop3: 2,
-          },
-        }
-      })
-
-      const actionB = createAction('b', () => {
-        return {
-          payload: {
-            prop1: 1,
-            prop2: 2,
-          },
-        }
-      })
-
-      if (isAnyOf(actionA, actionB)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop3')
-      }
-    })
-
-    test('isAnyOf correctly narrows types when used with async thunks', () => {
-      const asyncThunk1 = createAsyncThunk<{ prop1: number; prop3: number }>(
-        'asyncThunk1',
-
-        async () => {
-          return {
-            prop1: 1,
-            prop3: 3,
-          }
-        },
-      )
-
-      const asyncThunk2 = createAsyncThunk<{ prop1: number; prop2: number }>(
-        'asyncThunk2',
-
-        async () => {
-          return {
-            prop1: 1,
-            prop2: 2,
-          }
-        },
-      )
-
-      if (isAnyOf(asyncThunk1.fulfilled, asyncThunk2.fulfilled)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop3')
-      }
-    })
-
-    test('isAnyOf correctly narrows types when used with type guards', () => {
-      interface ActionA {
-        type: 'a'
-        payload: {
-          prop1: 1
-          prop3: 2
-        }
-      }
-
-      interface ActionB {
-        type: 'b'
-        payload: {
-          prop1: 1
-          prop2: 2
-        }
-      }
-
-      const guardA = (v: any): v is ActionA => {
-        return v.type === 'a'
-      }
-
-      const guardB = (v: any): v is ActionB => {
-        return v.type === 'b'
-      }
-
-      if (isAnyOf(guardA, guardB)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop3')
-      }
-    })
-  })
-
-  describe('isAllOf', () => {
-    interface SpecialAction {
-      payload: {
-        special: boolean
-      }
-    }
-
-    const isSpecialAction = (v: any): v is SpecialAction => {
-      return v.meta.isSpecial
-    }
-
-    test('isAllOf correctly narrows types when used with action creators and type guards', () => {
-      const actionA = createAction('a', () => {
-        return {
-          payload: {
-            prop1: 1,
-            prop3: 2,
-          },
-        }
-      })
-
-      if (isAllOf(actionA, isSpecialAction)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).toHaveProperty('prop3')
-
-        expectTypeOf(action.payload).toHaveProperty('special')
-      }
-    })
-
-    test('isAllOf correctly narrows types when used with async thunks and type guards', () => {
-      const asyncThunk1 = createAsyncThunk<{ prop1: number; prop3: number }>(
-        'asyncThunk1',
-
-        async () => {
-          return {
-            prop1: 1,
-            prop3: 3,
-          }
-        },
-      )
-
-      if (isAllOf(asyncThunk1.fulfilled, isSpecialAction)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).toHaveProperty('prop3')
-
-        expectTypeOf(action.payload).toHaveProperty('special')
-      }
-    })
-
-    test('isAnyOf correctly narrows types when used with type guards', () => {
-      interface ActionA {
-        type: 'a'
-        payload: {
-          prop1: 1
-          prop3: 2
-        }
-      }
-
-      const guardA = (v: any): v is ActionA => {
-        return v.type === 'a'
-      }
-
-      if (isAllOf(guardA, isSpecialAction)(action)) {
-        expectTypeOf(action.payload).toHaveProperty('prop1')
-
-        expectTypeOf(action.payload).not.toHaveProperty('prop2')
-
-        expectTypeOf(action.payload).toHaveProperty('prop3')
-
-        expectTypeOf(action.payload).toHaveProperty('special')
-      }
-    })
-
-    test('isPending correctly narrows types', () => {
-      if (isPending(action)) {
-        expectTypeOf(action.payload).toBeUndefined()
-
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-
-      const thunk = createAsyncThunk<string>('a', () => 'result')
-
-      if (isPending(thunk)(action)) {
-        expectTypeOf(action.payload).toBeUndefined()
-
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-    })
-
-    test('isRejected correctly narrows types', () => {
-      if (isRejected(action)) {
-        // might be there if rejected with payload
-        expectTypeOf(action.payload).toBeUnknown()
-
-        expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-      }
-
-      const thunk = createAsyncThunk<string>('a', () => 'result')
-
-      if (isRejected(thunk)(action)) {
-        // might be there if rejected with payload
-        expectTypeOf(action.payload).toBeUnknown()
-
-        expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-      }
-    })
-
-    test('isFulfilled correctly narrows types', () => {
-      if (isFulfilled(action)) {
-        expectTypeOf(action.payload).toBeUnknown()
-
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-
-      const thunk = createAsyncThunk<string>('a', () => 'result')
-      if (isFulfilled(thunk)(action)) {
-        expectTypeOf(action.payload).toBeString()
-
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-    })
-
-    test('isAsyncThunkAction correctly narrows types', () => {
-      if (isAsyncThunkAction(action)) {
-        expectTypeOf(action.payload).toBeUnknown()
-
-        // do not expect an error property because pending/fulfilled lack it
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-
-      const thunk = createAsyncThunk<string>('a', () => 'result')
-      if (isAsyncThunkAction(thunk)(action)) {
-        // we should expect the payload to be available, but of unknown type because the action may be pending/rejected
-        expectTypeOf(action.payload).toBeUnknown()
-
-        // do not expect an error property because pending/fulfilled lack it
-        expectTypeOf(action).not.toHaveProperty('error')
-      }
-    })
-
-    test('isRejectedWithValue correctly narrows types', () => {
-      if (isRejectedWithValue(action)) {
-        expectTypeOf(action.payload).toBeUnknown()
-
-        expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-      }
-
-      const thunk = createAsyncThunk<
-        string,
-        void,
-        { rejectValue: { message: string } }
-      >('a', () => 'result')
-      if (isRejectedWithValue(thunk)(action)) {
-        expectTypeOf(action.payload).toEqualTypeOf({ message: '' as string })
-
-        expectTypeOf(action.error).toEqualTypeOf<SerializedError>()
-      }
-    })
-  })
-
-  test('matchersAcceptSpreadArguments', () => {
-    const thunk1 = createAsyncThunk('a', () => 'a')
-    const thunk2 = createAsyncThunk('b', () => 'b')
-    const interestingThunks = [thunk1, thunk2]
-    const interestingPendingThunks = interestingThunks.map(
-      (thunk) => thunk.pending,
-    )
-    const interestingFulfilledThunks = interestingThunks.map(
-      (thunk) => thunk.fulfilled,
-    )
-
-    const isLoading = isAnyOf(...interestingPendingThunks)
-    const isNotLoading = isAnyOf(...interestingFulfilledThunks)
-
-    const isAllLoading = isAllOf(...interestingPendingThunks)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/matchers.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/matchers.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,461 +1,0 @@
-import { vi } from 'vitest'
-import type { ThunkAction, UnknownAction } from '@reduxjs/toolkit'
-import {
-  isAllOf,
-  isAnyOf,
-  isAsyncThunkAction,
-  isFulfilled,
-  isPending,
-  isRejected,
-  isRejectedWithValue,
-  createAction,
-  createAsyncThunk,
-  createReducer,
-} from '@reduxjs/toolkit'
-
-const thunk: ThunkAction<any, any, any, UnknownAction> = () => {}
-
-describe('isAnyOf', () => {
-  it('returns true only if any matchers match (match function)', () => {
-    const actionA = createAction<string>('a')
-    const actionB = createAction<number>('b')
-
-    const trueAction = {
-      type: 'a',
-      payload: 'payload',
-    }
-
-    expect(isAnyOf(actionA, actionB)(trueAction)).toEqual(true)
-
-    const falseAction = {
-      type: 'c',
-      payload: 'payload',
-    }
-
-    expect(isAnyOf(actionA, actionB)(falseAction)).toEqual(false)
-  })
-
-  it('returns true only if any type guards match', () => {
-    const actionA = createAction<string>('a')
-    const actionB = createAction<number>('b')
-
-    const isActionA = actionA.match
-    const isActionB = actionB.match
-
-    const trueAction = {
-      type: 'a',
-      payload: 'payload',
-    }
-
-    expect(isAnyOf(isActionA, isActionB)(trueAction)).toEqual(true)
-
-    const falseAction = {
-      type: 'c',
-      payload: 'payload',
-    }
-
-    expect(isAnyOf(isActionA, isActionB)(falseAction)).toEqual(false)
-  })
-
-  it('returns true only if any matchers match (thunk action creators)', () => {
-    const thunkA = createAsyncThunk<string>('a', () => {
-      return 'noop'
-    })
-    const thunkB = createAsyncThunk<number>('b', () => {
-      return 0
-    })
-
-    const action = thunkA.fulfilled('fakeRequestId', 'test')
-
-    expect(isAnyOf(thunkA.fulfilled, thunkB.fulfilled)(action)).toEqual(true)
-
-    expect(
-      isAnyOf(thunkA.pending, thunkA.rejected, thunkB.fulfilled)(action),
-    ).toEqual(false)
-  })
-
-  it('works with reducers', () => {
-    const actionA = createAction<string>('a')
-    const actionB = createAction<number>('b')
-
-    const trueAction = {
-      type: 'a',
-      payload: 'payload',
-    }
-
-    const initialState = { value: false }
-
-    const reducer = createReducer(initialState, (builder) => {
-      builder.addMatcher(isAnyOf(actionA, actionB), (state) => {
-        return { ...state, value: true }
-      })
-    })
-
-    expect(reducer(initialState, trueAction)).toEqual({ value: true })
-
-    const falseAction = {
-      type: 'c',
-      payload: 'payload',
-    }
-
-    expect(reducer(initialState, falseAction)).toEqual(initialState)
-  })
-})
-
-describe('isAllOf', () => {
-  it('returns true only if all matchers match', () => {
-    const actionA = createAction<string>('a')
-
-    interface SpecialAction {
-      payload: 'SPECIAL'
-    }
-
-    const isActionSpecial = (action: any): action is SpecialAction => {
-      return action.payload === 'SPECIAL'
-    }
-
-    const trueAction = {
-      type: 'a',
-      payload: 'SPECIAL',
-    }
-
-    expect(isAllOf(actionA, isActionSpecial)(trueAction)).toEqual(true)
-
-    const falseAction = {
-      type: 'a',
-      payload: 'ORDINARY',
-    }
-
-    expect(isAllOf(actionA, isActionSpecial)(falseAction)).toEqual(false)
-
-    const thunkA = createAsyncThunk<string>('a', () => 'result')
-
-    const specialThunkAction = thunkA.fulfilled('SPECIAL', 'fakeRequestId')
-
-    expect(isAllOf(thunkA.fulfilled, isActionSpecial)(specialThunkAction)).toBe(
-      true,
-    )
-
-    const ordinaryThunkAction = thunkA.fulfilled('ORDINARY', 'fakeRequestId')
-
-    expect(
-      isAllOf(thunkA.fulfilled, isActionSpecial)(ordinaryThunkAction),
-    ).toBe(false)
-  })
-})
-
-describe('isPending', () => {
-  test('should return false for a regular action', () => {
-    const action = createAction<string>('action/type')('testPayload')
-
-    expect(isPending()(action)).toBe(false)
-    expect(isPending(action)).toBe(false)
-    expect(isPending(thunk)).toBe(false)
-  })
-
-  test('should return true only for pending async thunk actions', () => {
-    const thunk = createAsyncThunk<string>('a', () => 'result')
-
-    const pendingAction = thunk.pending('fakeRequestId')
-    expect(isPending()(pendingAction)).toBe(true)
-    expect(isPending(pendingAction)).toBe(true)
-
-    const rejectedAction = thunk.rejected(
-      new Error('rejected'),
-      'fakeRequestId',
-    )
-    expect(isPending()(rejectedAction)).toBe(false)
-
-    const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-    expect(isPending()(fulfilledAction)).toBe(false)
-  })
-
-  test('should return true only for thunks provided as arguments', () => {
-    const thunkA = createAsyncThunk<string>('a', () => 'result')
-    const thunkB = createAsyncThunk<string>('b', () => 'result')
-    const thunkC = createAsyncThunk<string>('c', () => 'result')
-
-    const matchAC = isPending(thunkA, thunkC)
-    const matchB = isPending(thunkB)
-
-    function testPendingAction(
-      thunk: typeof thunkA | typeof thunkB | typeof thunkC,
-      expected: boolean,
-    ) {
-      const pendingAction = thunk.pending('fakeRequestId')
-      expect(matchAC(pendingAction)).toBe(expected)
-      expect(matchB(pendingAction)).toBe(!expected)
-
-      const rejectedAction = thunk.rejected(
-        new Error('rejected'),
-        'fakeRequestId',
-      )
-      expect(matchAC(rejectedAction)).toBe(false)
-
-      const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-      expect(matchAC(fulfilledAction)).toBe(false)
-    }
-
-    testPendingAction(thunkA, true)
-    testPendingAction(thunkC, true)
-    testPendingAction(thunkB, false)
-  })
-})
-
-describe('isRejected', () => {
-  test('should return false for a regular action', () => {
-    const action = createAction<string>('action/type')('testPayload')
-
-    expect(isRejected()(action)).toBe(false)
-    expect(isRejected(action)).toBe(false)
-    expect(isRejected(thunk)).toBe(false)
-  })
-
-  test('should return true only for rejected async thunk actions', () => {
-    const thunk = createAsyncThunk<string>('a', () => 'result')
-
-    const pendingAction = thunk.pending('fakeRequestId')
-    expect(isRejected()(pendingAction)).toBe(false)
-
-    const rejectedAction = thunk.rejected(
-      new Error('rejected'),
-      'fakeRequestId',
-    )
-    expect(isRejected()(rejectedAction)).toBe(true)
-    expect(isRejected(rejectedAction)).toBe(true)
-
-    const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-    expect(isRejected()(fulfilledAction)).toBe(false)
-  })
-
-  test('should return true only for thunks provided as arguments', () => {
-    const thunkA = createAsyncThunk<string>('a', () => 'result')
-    const thunkB = createAsyncThunk<string>('b', () => 'result')
-    const thunkC = createAsyncThunk<string>('c', () => 'result')
-
-    const matchAC = isRejected(thunkA, thunkC)
-    const matchB = isRejected(thunkB)
-
-    function testRejectedAction(
-      thunk: typeof thunkA | typeof thunkB | typeof thunkC,
-      expected: boolean,
-    ) {
-      const pendingAction = thunk.pending('fakeRequestId')
-      expect(matchAC(pendingAction)).toBe(false)
-
-      const rejectedAction = thunk.rejected(
-        new Error('rejected'),
-        'fakeRequestId',
-      )
-      expect(matchAC(rejectedAction)).toBe(expected)
-      expect(matchB(rejectedAction)).toBe(!expected)
-
-      const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-      expect(matchAC(fulfilledAction)).toBe(false)
-    }
-
-    testRejectedAction(thunkA, true)
-    testRejectedAction(thunkC, true)
-    testRejectedAction(thunkB, false)
-  })
-})
-
-describe('isRejectedWithValue', () => {
-  test('should return false for a regular action', () => {
-    const action = createAction<string>('action/type')('testPayload')
-
-    expect(isRejectedWithValue()(action)).toBe(false)
-    expect(isRejectedWithValue(action)).toBe(false)
-    expect(isRejectedWithValue(thunk)).toBe(false)
-  })
-
-  test('should return true only for rejected-with-value async thunk actions', async () => {
-    const thunk = createAsyncThunk<string>('a', (_, { rejectWithValue }) => {
-      return rejectWithValue('rejectWithValue!')
-    })
-
-    const pendingAction = thunk.pending('fakeRequestId')
-    expect(isRejectedWithValue()(pendingAction)).toBe(false)
-
-    const rejectedAction = thunk.rejected(
-      new Error('rejected'),
-      'fakeRequestId',
-    )
-    expect(isRejectedWithValue()(rejectedAction)).toBe(false)
-
-    const getState = vi.fn(() => ({}))
-    const dispatch = vi.fn((x: any) => x)
-    const extra = {}
-
-    // note: doesn't throw because we don't unwrap it
-    const rejectedWithValueAction = await thunk()(dispatch, getState, extra)
-
-    expect(isRejectedWithValue()(rejectedWithValueAction)).toBe(true)
-
-    const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-    expect(isRejectedWithValue()(fulfilledAction)).toBe(false)
-  })
-
-  test('should return true only for thunks provided as arguments', async () => {
-    const payloadCreator = (_: any, { rejectWithValue }: any) => {
-      return rejectWithValue('rejectWithValue!')
-    }
-
-    const thunkA = createAsyncThunk<string>('a', payloadCreator)
-    const thunkB = createAsyncThunk<string>('b', payloadCreator)
-    const thunkC = createAsyncThunk<string>('c', payloadCreator)
-
-    const matchAC = isRejectedWithValue(thunkA, thunkC)
-    const matchB = isRejectedWithValue(thunkB)
-
-    async function testRejectedAction(
-      thunk: typeof thunkA | typeof thunkB | typeof thunkC,
-      expected: boolean,
-    ) {
-      const pendingAction = thunk.pending('fakeRequestId')
-      expect(matchAC(pendingAction)).toBe(false)
-
-      const rejectedAction = thunk.rejected(
-        new Error('rejected'),
-        'fakeRequestId',
-      )
-      // rejected-with-value is a narrower requirement than rejected
-      expect(matchAC(rejectedAction)).toBe(false)
-
-      const getState = vi.fn(() => ({}))
-      const dispatch = vi.fn((x: any) => x)
-      const extra = {}
-
-      // note: doesn't throw because we don't unwrap it
-      const rejectedWithValueAction = await thunk()(dispatch, getState, extra)
-
-      expect(matchAC(rejectedWithValueAction)).toBe(expected)
-      expect(matchB(rejectedWithValueAction)).toBe(!expected)
-
-      const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-      expect(matchAC(fulfilledAction)).toBe(false)
-    }
-
-    await testRejectedAction(thunkA, true)
-    await testRejectedAction(thunkC, true)
-    await testRejectedAction(thunkB, false)
-  })
-})
-
-describe('isFulfilled', () => {
-  test('should return false for a regular action', () => {
-    const action = createAction<string>('action/type')('testPayload')
-
-    expect(isFulfilled()(action)).toBe(false)
-    expect(isFulfilled(action)).toBe(false)
-    expect(isFulfilled(thunk)).toBe(false)
-  })
-
-  test('should return true only for fulfilled async thunk actions', () => {
-    const thunk = createAsyncThunk<string>('a', () => 'result')
-
-    const pendingAction = thunk.pending('fakeRequestId')
-    expect(isFulfilled()(pendingAction)).toBe(false)
-
-    const rejectedAction = thunk.rejected(
-      new Error('rejected'),
-      'fakeRequestId',
-    )
-    expect(isFulfilled()(rejectedAction)).toBe(false)
-
-    const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-    expect(isFulfilled()(fulfilledAction)).toBe(true)
-    expect(isFulfilled(fulfilledAction)).toBe(true)
-  })
-
-  test('should return true only for thunks provided as arguments', () => {
-    const thunkA = createAsyncThunk<string>('a', () => 'result')
-    const thunkB = createAsyncThunk<string>('b', () => 'result')
-    const thunkC = createAsyncThunk<string>('c', () => 'result')
-
-    const matchAC = isFulfilled(thunkA, thunkC)
-    const matchB = isFulfilled(thunkB)
-
-    function testFulfilledAction(
-      thunk: typeof thunkA | typeof thunkB | typeof thunkC,
-      expected: boolean,
-    ) {
-      const pendingAction = thunk.pending('fakeRequestId')
-      expect(matchAC(pendingAction)).toBe(false)
-
-      const rejectedAction = thunk.rejected(
-        new Error('rejected'),
-        'fakeRequestId',
-      )
-      expect(matchAC(rejectedAction)).toBe(false)
-
-      const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-      expect(matchAC(fulfilledAction)).toBe(expected)
-      expect(matchB(fulfilledAction)).toBe(!expected)
-    }
-
-    testFulfilledAction(thunkA, true)
-    testFulfilledAction(thunkC, true)
-    testFulfilledAction(thunkB, false)
-  })
-})
-
-describe('isAsyncThunkAction', () => {
-  test('should return false for a regular action', () => {
-    const action = createAction<string>('action/type')('testPayload')
-
-    expect(isAsyncThunkAction()(action)).toBe(false)
-    expect(isAsyncThunkAction(action)).toBe(false)
-    expect(isAsyncThunkAction(thunk)).toBe(false)
-  })
-
-  test('should return true for any async thunk action if no arguments were provided', () => {
-    const thunk = createAsyncThunk<string>('a', () => 'result')
-    const matcher = isAsyncThunkAction()
-
-    const pendingAction = thunk.pending('fakeRequestId')
-    expect(matcher(pendingAction)).toBe(true)
-
-    const rejectedAction = thunk.rejected(
-      new Error('rejected'),
-      'fakeRequestId',
-    )
-    expect(matcher(rejectedAction)).toBe(true)
-
-    const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-    expect(matcher(fulfilledAction)).toBe(true)
-  })
-
-  test('should return true only for thunks provided as arguments', () => {
-    const thunkA = createAsyncThunk<string>('a', () => 'result')
-    const thunkB = createAsyncThunk<string>('b', () => 'result')
-    const thunkC = createAsyncThunk<string>('c', () => 'result')
-
-    const matchAC = isAsyncThunkAction(thunkA, thunkC)
-    const matchB = isAsyncThunkAction(thunkB)
-
-    function testAllActions(
-      thunk: typeof thunkA | typeof thunkB | typeof thunkC,
-      expected: boolean,
-    ) {
-      const pendingAction = thunk.pending('fakeRequestId')
-      expect(matchAC(pendingAction)).toBe(expected)
-      expect(matchB(pendingAction)).toBe(!expected)
-
-      const rejectedAction = thunk.rejected(
-        new Error('rejected'),
-        'fakeRequestId',
-      )
-      expect(matchAC(rejectedAction)).toBe(expected)
-      expect(matchB(rejectedAction)).toBe(!expected)
-
-      const fulfilledAction = thunk.fulfilled('result', 'fakeRequestId')
-      expect(matchAC(fulfilledAction)).toBe(expected)
-      expect(matchB(fulfilledAction)).toBe(!expected)
-    }
-
-    testAllActions(thunkA, true)
-    testAllActions(thunkC, true)
-    testAllActions(thunkB, false)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/serializableStateInvariantMiddleware.test.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/serializableStateInvariantMiddleware.test.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,663 +1,0 @@
-import { noop } from '@internal/listenerMiddleware/utils'
-import { isNestedFrozen } from '@internal/serializableStateInvariantMiddleware'
-import type { Reducer } from '@reduxjs/toolkit'
-import {
-  configureStore,
-  createNextState,
-  createSerializableStateInvariantMiddleware,
-  findNonSerializableValue,
-  isPlain,
-  Tuple,
-} from '@reduxjs/toolkit'
-
-// Mocking console
-const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(noop)
-
-const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(noop)
-
-afterEach(() => {
-  vi.clearAllMocks()
-})
-
-afterAll(() => {
-  vi.restoreAllMocks()
-})
-
-describe('findNonSerializableValue', () => {
-  it('Should return false if no matching values are found', () => {
-    const obj = {
-      a: 42,
-      b: {
-        b1: 'test',
-      },
-      c: [99, { d: 123 }],
-    }
-
-    const result = findNonSerializableValue(obj)
-
-    expect(result).toBe(false)
-  })
-
-  it('Should return a keypath and the value if it finds a non-serializable value', () => {
-    function testFunction() {}
-
-    const obj = {
-      a: 42,
-      b: {
-        b1: testFunction,
-      },
-      c: [99, { d: 123 }],
-    }
-
-    const result = findNonSerializableValue(obj)
-
-    expect(result).toEqual({ keyPath: 'b.b1', value: testFunction })
-  })
-
-  it('Should return the first non-serializable value it finds', () => {
-    const map = new Map()
-    const symbol = Symbol.for('testSymbol')
-
-    const obj = {
-      a: 42,
-      b: {
-        b1: 1,
-      },
-      c: [99, { d: 123 }, map, symbol, 'test'],
-      d: symbol,
-    }
-
-    const result = findNonSerializableValue(obj)
-
-    expect(result).toEqual({ keyPath: 'c.2', value: map })
-  })
-
-  it('Should return a specific value if the root object is non-serializable', () => {
-    const value = new Map()
-    const result = findNonSerializableValue(value)
-
-    expect(result).toEqual({ keyPath: '<root>', value })
-  })
-
-  it('Should accept null as a valid value', () => {
-    const obj = {
-      a: 42,
-      b: {
-        b1: 1,
-      },
-      c: null,
-    }
-
-    const result = findNonSerializableValue(obj)
-
-    expect(result).toEqual(false)
-  })
-})
-
-describe('serializableStateInvariantMiddleware', () => {
-  it('Should log an error when a non-serializable action is dispatched', () => {
-    const reducer: Reducer = (state = 0, _action) => state + 1
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware()
-
-    const store = configureStore({
-      reducer,
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    const symbol = Symbol.for('SOME_CONSTANT')
-    const dispatchedAction = { type: 'an-action', payload: symbol }
-
-    store.dispatch(dispatchedAction)
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `A non-serializable value was detected in an action, in the path: \`payload\`. Value:`,
-      symbol,
-      `\nTake a look at the logic that dispatched this action: `,
-      dispatchedAction,
-      `\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)`,
-      `\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)`,
-    )
-  })
-
-  it('Should log an error when a non-serializable value is in state', () => {
-    const ACTION_TYPE = 'TEST_ACTION'
-
-    const initialState = {
-      a: 0,
-    }
-
-    const badValue = new Map()
-
-    const reducer: Reducer = (state = initialState, action) => {
-      switch (action.type) {
-        case ACTION_TYPE: {
-          return {
-            a: badValue,
-          }
-        }
-        default:
-          return state
-      }
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware()
-
-    const store = configureStore({
-      reducer: {
-        testSlice: reducer,
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    store.dispatch({ type: ACTION_TYPE })
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `A non-serializable value was detected in the state, in the path: \`testSlice.a\`. Value:`,
-      badValue,
-      `\nTake a look at the reducer(s) handling this action type: TEST_ACTION.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`,
-    )
-  })
-
-  describe('consumer tolerated structures', () => {
-    const nonSerializableValue = new Map()
-
-    const nestedSerializableObjectWithBadValue = {
-      isSerializable: true,
-      entries: (): [string, any][] => [
-        ['good-string', 'Good!'],
-        ['good-number', 1337],
-        ['bad-map-instance', nonSerializableValue],
-      ],
-    }
-
-    const serializableObject = {
-      isSerializable: true,
-      entries: (): [string, any][] => [
-        ['first', 1],
-        ['second', 'B!'],
-        ['third', nestedSerializableObjectWithBadValue],
-      ],
-    }
-
-    it('Should log an error when a non-serializable value is nested in state', () => {
-      const ACTION_TYPE = 'TEST_ACTION'
-
-      const initialState = {
-        a: 0,
-      }
-
-      const reducer: Reducer = (state = initialState, action) => {
-        switch (action.type) {
-          case ACTION_TYPE: {
-            return {
-              a: serializableObject,
-            }
-          }
-          default:
-            return state
-        }
-      }
-
-      // use default options
-      const serializableStateInvariantMiddleware =
-        createSerializableStateInvariantMiddleware()
-
-      const store = configureStore({
-        reducer: {
-          testSlice: reducer,
-        },
-        middleware: () => new Tuple(serializableStateInvariantMiddleware),
-      })
-
-      store.dispatch({ type: ACTION_TYPE })
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      // since default options are used, the `entries` function in `serializableObject` will cause the error
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `A non-serializable value was detected in the state, in the path: \`testSlice.a.entries\`. Value:`,
-        serializableObject.entries,
-        `\nTake a look at the reducer(s) handling this action type: TEST_ACTION.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`,
-      )
-    })
-
-    it('Should use consumer supplied isSerializable and getEntries options to tolerate certain structures', () => {
-      const ACTION_TYPE = 'TEST_ACTION'
-
-      const initialState = {
-        a: 0,
-      }
-
-      const isSerializable = (val: any): boolean =>
-        val.isSerializable || isPlain(val)
-      const getEntries = (val: any): [string, any][] =>
-        val.isSerializable ? val.entries() : Object.entries(val)
-
-      const reducer: Reducer = (state = initialState, action) => {
-        switch (action.type) {
-          case ACTION_TYPE: {
-            return {
-              a: serializableObject,
-            }
-          }
-          default:
-            return state
-        }
-      }
-
-      const serializableStateInvariantMiddleware =
-        createSerializableStateInvariantMiddleware({
-          isSerializable,
-          getEntries,
-        })
-
-      const store = configureStore({
-        reducer: {
-          testSlice: reducer,
-        },
-        middleware: () => new Tuple(serializableStateInvariantMiddleware),
-      })
-
-      store.dispatch({ type: ACTION_TYPE })
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      // error reported is from a nested class instance, rather than the `entries` function `serializableObject`
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `A non-serializable value was detected in the state, in the path: \`testSlice.a.third.bad-map-instance\`. Value:`,
-        nonSerializableValue,
-        `\nTake a look at the reducer(s) handling this action type: TEST_ACTION.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`,
-      )
-    })
-  })
-
-  it('Should use the supplied isSerializable function to determine serializability', () => {
-    const ACTION_TYPE = 'TEST_ACTION'
-
-    const initialState = {
-      a: 0,
-    }
-
-    const badValue = new Map()
-
-    const reducer: Reducer = (state = initialState, action) => {
-      switch (action.type) {
-        case ACTION_TYPE: {
-          return {
-            a: badValue,
-          }
-        }
-        default:
-          return state
-      }
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware({
-        isSerializable: () => true,
-      })
-
-    const store = configureStore({
-      reducer: {
-        testSlice: reducer,
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    store.dispatch({ type: ACTION_TYPE })
-
-    // Supplied 'isSerializable' considers all values serializable, hence
-    // no error logging is expected:
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-  })
-
-  it('should not check serializability for ignored action types', () => {
-    let numTimesCalled = 0
-
-    const serializableStateMiddleware =
-      createSerializableStateInvariantMiddleware({
-        isSerializable: () => {
-          numTimesCalled++
-          return true
-        },
-        ignoredActions: ['IGNORE_ME'],
-      })
-
-    const store = configureStore({
-      reducer: () => ({}),
-      middleware: () => new Tuple(serializableStateMiddleware),
-    })
-
-    expect(numTimesCalled).toBe(0)
-
-    store.dispatch({ type: 'IGNORE_ME' })
-
-    // The state check only calls `isSerializable` once
-    expect(numTimesCalled).toBe(1)
-
-    store.dispatch({ type: 'ANY_OTHER_ACTION' })
-
-    // Action checks call `isSerializable` 2+ times when enabled
-    expect(numTimesCalled).toBeGreaterThanOrEqual(3)
-  })
-
-  describe('ignored action paths', () => {
-    function reducer() {
-      return 0
-    }
-    const nonSerializableValue = new Map()
-
-    it('default value: meta.arg', () => {
-      configureStore({
-        reducer,
-        middleware: () =>
-          new Tuple(createSerializableStateInvariantMiddleware()),
-      }).dispatch({ type: 'test', meta: { arg: nonSerializableValue } })
-
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    })
-
-    it('default value can be overridden', () => {
-      configureStore({
-        reducer,
-        middleware: () =>
-          new Tuple(
-            createSerializableStateInvariantMiddleware({
-              ignoredActionPaths: [],
-            }),
-          ),
-      }).dispatch({ type: 'test', meta: { arg: nonSerializableValue } })
-
-      expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-      expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-        `A non-serializable value was detected in an action, in the path: \`meta.arg\`. Value:`,
-        nonSerializableValue,
-        `\nTake a look at the logic that dispatched this action: `,
-        { type: 'test', meta: { arg: nonSerializableValue } },
-        `\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)`,
-        `\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)`,
-      )
-    })
-
-    it('can specify (multiple) different values', () => {
-      configureStore({
-        reducer,
-        middleware: () =>
-          new Tuple(
-            createSerializableStateInvariantMiddleware({
-              ignoredActionPaths: ['payload', 'meta.arg'],
-            }),
-          ),
-      }).dispatch({
-        type: 'test',
-        payload: { arg: nonSerializableValue },
-        meta: { arg: nonSerializableValue },
-      })
-
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    })
-
-    it('can specify regexp', () => {
-      configureStore({
-        reducer,
-        middleware: () =>
-          new Tuple(
-            createSerializableStateInvariantMiddleware({
-              ignoredActionPaths: [/^payload\..*$/],
-            }),
-          ),
-      }).dispatch({
-        type: 'test',
-        payload: { arg: nonSerializableValue },
-      })
-
-      expect(consoleErrorSpy).not.toHaveBeenCalled()
-    })
-  })
-
-  it('allows ignoring actions entirely', () => {
-    let numTimesCalled = 0
-
-    const serializableStateMiddleware =
-      createSerializableStateInvariantMiddleware({
-        isSerializable: () => {
-          numTimesCalled++
-          return true
-        },
-        ignoreActions: true,
-      })
-
-    const store = configureStore({
-      reducer: () => ({}),
-      middleware: () => new Tuple(serializableStateMiddleware),
-    })
-
-    expect(numTimesCalled).toBe(0)
-
-    store.dispatch({ type: 'THIS_DOESNT_MATTER' })
-
-    // `isSerializable` is called once for a state check
-    expect(numTimesCalled).toBe(1)
-
-    store.dispatch({ type: 'THIS_DOESNT_MATTER_AGAIN' })
-
-    expect(numTimesCalled).toBe(2)
-  })
-
-  it('should not check serializability for ignored slice names', () => {
-    const ACTION_TYPE = 'TEST_ACTION'
-
-    const initialState = {
-      a: 0,
-    }
-
-    const badValue = new Map()
-
-    const reducer: Reducer = (state = initialState, action) => {
-      switch (action.type) {
-        case ACTION_TYPE: {
-          return {
-            a: badValue,
-            b: {
-              c: badValue,
-              d: badValue,
-            },
-            e: { f: badValue },
-            g: {
-              h: badValue,
-              i: badValue,
-            },
-          }
-        }
-        default:
-          return state
-      }
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware({
-        ignoredPaths: [
-          // Test for ignoring a single value
-          'testSlice.a',
-          // Test for ignoring a single nested value
-          'testSlice.b.c',
-          // Test for ignoring an object and its children
-          'testSlice.e',
-          // Test for ignoring based on RegExp
-          /^testSlice\.g\..*$/,
-        ],
-      })
-
-    const store = configureStore({
-      reducer: {
-        testSlice: reducer,
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    store.dispatch({ type: ACTION_TYPE })
-
-    expect(consoleErrorSpy).toHaveBeenCalledOnce()
-
-    // testSlice.b.d was not covered in ignoredPaths, so will still log the error
-    expect(consoleErrorSpy).toHaveBeenLastCalledWith(
-      `A non-serializable value was detected in the state, in the path: \`testSlice.b.d\`. Value:`,
-      badValue,
-      `\nTake a look at the reducer(s) handling this action type: TEST_ACTION.
-(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`,
-    )
-  })
-
-  it('allows ignoring state entirely', () => {
-    const badValue = new Map()
-    let numTimesCalled = 0
-    const reducer = () => badValue
-    const store = configureStore({
-      reducer,
-      middleware: () =>
-        new Tuple(
-          createSerializableStateInvariantMiddleware({
-            isSerializable: () => {
-              numTimesCalled++
-              return true
-            },
-            ignoreState: true,
-          }),
-        ),
-    })
-
-    expect(numTimesCalled).toBe(0)
-
-    store.dispatch({ type: 'test' })
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-
-    // Should be called twice for the action - there is an initial check for early returns, then a second and potentially 3rd for nested properties
-    expect(numTimesCalled).toBe(2)
-  })
-
-  it('never calls isSerializable if both ignoreState and ignoreActions are true', () => {
-    const badValue = new Map()
-    let numTimesCalled = 0
-    const reducer = () => badValue
-    const store = configureStore({
-      reducer,
-      middleware: () =>
-        new Tuple(
-          createSerializableStateInvariantMiddleware({
-            isSerializable: () => {
-              numTimesCalled++
-              return true
-            },
-            ignoreState: true,
-            ignoreActions: true,
-          }),
-        ),
-    })
-
-    expect(numTimesCalled).toBe(0)
-
-    store.dispatch({ type: 'TEST', payload: new Date() })
-    store.dispatch({ type: 'OTHER_THING' })
-
-    expect(numTimesCalled).toBe(0)
-  })
-
-  it('Should print a warning if execution takes too long', () => {
-    const reducer: Reducer = (state = 42, action) => {
-      return state
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware({ warnAfter: 4 })
-
-    const store = configureStore({
-      reducer: {
-        testSlice: reducer,
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    store.dispatch({
-      type: 'SOME_ACTION',
-      payload: new Array(10_000).fill({ value: 'more' }),
-    })
-
-    expect(consoleWarnSpy).toHaveBeenCalledOnce()
-
-    expect(consoleWarnSpy).toHaveBeenLastCalledWith(
-      expect.stringMatching(
-        /^SerializableStateInvariantMiddleware took \d*ms, which is more than the warning threshold of 4ms./,
-      ),
-    )
-  })
-
-  it('Should not print a warning if "reducer" takes too long', () => {
-    const reducer: Reducer = (state = 42, action) => {
-      const started = Date.now()
-      while (Date.now() - started < 8) {}
-      return state
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware({ warnAfter: 4 })
-
-    const store = configureStore({
-      reducer: {
-        testSlice: reducer,
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    store.dispatch({ type: 'SOME_ACTION' })
-
-    expect(consoleErrorSpy).not.toHaveBeenCalled()
-  })
-
-  it('Should cache its results', () => {
-    let numPlainChecks = 0
-    const countPlainChecks = (x: any) => {
-      numPlainChecks++
-      return isPlain(x)
-    }
-
-    const serializableStateInvariantMiddleware =
-      createSerializableStateInvariantMiddleware({
-        isSerializable: countPlainChecks,
-      })
-
-    const store = configureStore({
-      reducer: (state = [], action) => {
-        if (action.type === 'SET_STATE') return action.payload
-        return state
-      },
-      middleware: () => new Tuple(serializableStateInvariantMiddleware),
-    })
-
-    const state = createNextState([], () =>
-      new Array(50).fill(0).map((x, i) => ({ i })),
-    )
-    expect(isNestedFrozen(state)).toBe(true)
-
-    store.dispatch({
-      type: 'SET_STATE',
-      payload: state,
-    })
-    expect(numPlainChecks).toBeGreaterThan(state.length)
-
-    numPlainChecks = 0
-    store.dispatch({ type: 'NOOP' })
-    expect(numPlainChecks).toBeLessThan(10)
-  })
-})
Index: de_modules/@reduxjs/toolkit/src/tests/utils/CustomMatchers.d.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/utils/CustomMatchers.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import type { Assertion, AsymmetricMatchersContaining } from 'vitest'
-
-interface CustomMatchers<R = unknown> {
-  toMatchSequence(...matchers: Array<(arg: any) => boolean>): R
-}
-
-declare module 'vitest' {
-  interface Assertion<T = any> extends CustomMatchers<T> {}
-  interface AsymmetricMatchersContaining extends CustomMatchers {}
-}
-
-declare global {
-  namespace jest {
-    interface Matchers<R> extends CustomMatchers<R> {}
-  }
-}
Index: de_modules/@reduxjs/toolkit/src/tests/utils/helpers.tsx
===================================================================
--- node_modules/@reduxjs/toolkit/src/tests/utils/helpers.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,217 +1,0 @@
-import type {
-  EnhancedStore,
-  Middleware,
-  Reducer,
-  Store,
-  UnknownAction,
-} from '@reduxjs/toolkit'
-import { configureStore } from '@reduxjs/toolkit'
-import { setupListeners } from '@reduxjs/toolkit/query'
-import { useCallback, useEffect, useRef } from 'react'
-
-import { Provider } from 'react-redux'
-
-import { act, cleanup } from '@testing-library/react'
-
-export const ANY = 0 as any
-
-export const DEFAULT_DELAY_MS = 150
-
-export const getSerializedHeaders = (headers: Headers = new Headers()) => {
-  const result: Record<string, string> = {}
-  headers.forEach((val, key) => {
-    result[key] = val
-  })
-  return result
-}
-
-export async function waitMs(time = DEFAULT_DELAY_MS) {
-  const now = Date.now()
-  while (Date.now() < now + time) {
-    await new Promise((res) => process.nextTick(res))
-  }
-}
-
-export function waitForFakeTimer(time = DEFAULT_DELAY_MS) {
-  return new Promise((resolve) => setTimeout(resolve, time))
-}
-
-export function withProvider(store: Store<any>) {
-  return function Wrapper({ children }: any) {
-    return <Provider store={store}>{children}</Provider>
-  }
-}
-
-export const hookWaitFor = async (cb: () => void, time = 2000) => {
-  const startedAt = Date.now()
-
-  while (true) {
-    try {
-      cb()
-      return true
-    } catch (e) {
-      if (Date.now() > startedAt + time) {
-        throw e
-      }
-      await act(async () => {
-        await waitMs(2)
-      })
-    }
-  }
-}
-export const fakeTimerWaitFor = async (cb: () => void, time = 2000) => {
-  const startedAt = Date.now()
-
-  while (true) {
-    try {
-      cb()
-      return true
-    } catch (e) {
-      if (Date.now() > startedAt + time) {
-        throw e
-      }
-      await act(async () => {
-        await vi.advanceTimersByTimeAsync(2)
-      })
-    }
-  }
-}
-
-export const useRenderCounter = () => {
-  const countRef = useRef(0)
-
-  useEffect(() => {
-    countRef.current += 1
-  })
-
-  useEffect(() => {
-    return () => {
-      countRef.current = 0
-    }
-  }, [])
-
-  return useCallback(() => countRef.current, [])
-}
-
-expect.extend({
-  toMatchSequence(
-    _actions: UnknownAction[],
-    ...matchers: Array<(arg: any) => boolean>
-  ) {
-    const actions = _actions.concat()
-    actions.shift() // remove INIT
-
-    for (let i = 0; i < matchers.length; i++) {
-      if (!matchers[i](actions[i])) {
-        return {
-          message: () =>
-            `Action ${actions[i].type} does not match sequence at position ${i}.
-All actions:
-${actions.map((a) => a.type).join('\n')}`,
-          pass: false,
-        }
-      }
-    }
-    return {
-      message: () => `All actions match the sequence.`,
-      pass: true,
-    }
-  },
-})
-
-export const actionsReducer = {
-  actions: (state: UnknownAction[] = [], action: UnknownAction) => {
-    // As of 2.0-beta.4, we are going to ignore all `subscriptionsUpdated` actions in tests
-    if (action.type.includes('subscriptionsUpdated')) {
-      return state
-    }
-
-    return [...state, action]
-  },
-}
-
-export function setupApiStore<
-  A extends {
-    reducerPath: 'api'
-    reducer: Reducer<any, any>
-    middleware: Middleware
-    util: { resetApiState(): any }
-  },
-  R extends Record<string, Reducer<any, any>> = Record<never, never>,
->(
-  api: A,
-  extraReducers?: R,
-  options: {
-    withoutListeners?: boolean
-    withoutTestLifecycles?: boolean
-    middleware?: {
-      prepend?: Middleware[]
-      concat?: Middleware[]
-    }
-  } = {},
-) {
-  const { middleware } = options
-  const getStore = () =>
-    configureStore({
-      reducer: { api: api.reducer, ...extraReducers },
-      middleware: (gdm) => {
-        const tempMiddleware = gdm({
-          serializableCheck: false,
-          immutableCheck: false,
-        }).concat(api.middleware)
-
-        return tempMiddleware
-          .concat(middleware?.concat ?? [])
-          .prepend(middleware?.prepend ?? []) as typeof tempMiddleware
-      },
-      enhancers: (gde) =>
-        gde({
-          autoBatch: false,
-        }),
-    })
-
-  type State = {
-    api: ReturnType<A['reducer']>
-  } & {
-    [K in keyof R]: ReturnType<R[K]>
-  }
-  type StoreType = EnhancedStore<
-    {
-      api: ReturnType<A['reducer']>
-    } & {
-      [K in keyof R]: ReturnType<R[K]>
-    },
-    UnknownAction,
-    ReturnType<typeof getStore> extends EnhancedStore<any, any, infer M>
-      ? M
-      : never
-  >
-
-  const initialStore = getStore() as StoreType
-  const refObj = {
-    api,
-    store: initialStore,
-    wrapper: withProvider(initialStore),
-  }
-  let cleanupListeners: () => void
-
-  if (!options.withoutTestLifecycles) {
-    beforeEach(() => {
-      const store = getStore() as StoreType
-      refObj.store = store
-      refObj.wrapper = withProvider(store)
-      if (!options.withoutListeners) {
-        cleanupListeners = setupListeners(store.dispatch)
-      }
-    })
-    afterEach(() => {
-      cleanup()
-      if (!options.withoutListeners) {
-        cleanupListeners()
-      }
-      refObj.store.dispatch(api.util.resetApiState())
-    })
-  }
-
-  return refObj
-}
Index: de_modules/@reduxjs/toolkit/src/tsHelpers.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/tsHelpers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,223 +1,0 @@
-import type { Middleware, StoreEnhancer } from 'redux'
-import type { Tuple } from './utils'
-
-export function safeAssign<T extends object>(
-  target: T,
-  ...args: Array<Partial<NoInfer<T>>>
-) {
-  Object.assign(target, ...args)
-}
-
-/**
- * return True if T is `any`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-export type IsAny<T, True, False = never> =
-  // test if we are going the left AND right path in the condition
-  true | false extends (T extends never ? true : false) ? True : False
-
-export type CastAny<T, CastTo> = IsAny<T, CastTo, T>
-
-/**
- * return True if T is `unknown`, otherwise return False
- * taken from https://github.com/joonhocho/tsdef
- *
- * @internal
- */
-export type IsUnknown<T, True, False = never> = unknown extends T
-  ? IsAny<T, False, True>
-  : False
-
-export type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>
-
-/**
- * @internal
- */
-export type IfMaybeUndefined<P, True, False> = [undefined] extends [P]
-  ? True
-  : False
-
-/**
- * @internal
- */
-export type IfVoid<P, True, False> = [void] extends [P] ? True : False
-
-/**
- * @internal
- */
-export type IsEmptyObj<T, True, False = never> = T extends any
-  ? keyof T extends never
-    ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>>
-    : False
-  : never
-
-/**
- * returns True if TS version is above 3.5, False if below.
- * uses feature detection to detect TS version >= 3.5
- * * versions below 3.5 will return `{}` for unresolvable interference
- * * versions above will return `unknown`
- *
- * @internal
- */
-export type AtLeastTS35<True, False> = [True, False][IsUnknown<
-  ReturnType<<T>() => T>,
-  0,
-  1
->]
-
-/**
- * @internal
- */
-export type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<
-  IsUnknown<T, True, False>,
-  IsEmptyObj<T, True, IsUnknown<T, True, False>>
->
-
-/**
- * Convert a Union type `(A|B)` to an intersection type `(A&B)`
- */
-export type UnionToIntersection<U> = (
-  U extends any ? (k: U) => void : never
-) extends (k: infer I) => void
-  ? I
-  : never
-
-// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified
-export type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [
-  infer Head,
-  ...infer Tail,
-]
-  ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]>
-  : Acc
-
-type ExtractDispatchFromMiddlewareTuple<
-  MiddlewareTuple extends readonly any[],
-  Acc extends {},
-> = MiddlewareTuple extends [infer Head, ...infer Tail]
-  ? ExtractDispatchFromMiddlewareTuple<
-      Tail,
-      Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})
-    >
-  : Acc
-
-export type ExtractDispatchExtensions<M> =
-  M extends Tuple<infer MiddlewareTuple>
-    ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}>
-    : M extends ReadonlyArray<Middleware>
-      ? ExtractDispatchFromMiddlewareTuple<[...M], {}>
-      : never
-
-type ExtractStoreExtensionsFromEnhancerTuple<
-  EnhancerTuple extends readonly any[],
-  Acc extends {},
-> = EnhancerTuple extends [infer Head, ...infer Tail]
-  ? ExtractStoreExtensionsFromEnhancerTuple<
-      Tail,
-      Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})
-    >
-  : Acc
-
-export type ExtractStoreExtensions<E> =
-  E extends Tuple<infer EnhancerTuple>
-    ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}>
-    : E extends ReadonlyArray<StoreEnhancer>
-      ? UnionToIntersection<
-          E[number] extends StoreEnhancer<infer Ext>
-            ? Ext extends {}
-              ? IsAny<Ext, {}, Ext>
-              : {}
-            : {}
-        >
-      : never
-
-type ExtractStateExtensionsFromEnhancerTuple<
-  EnhancerTuple extends readonly any[],
-  Acc extends {},
-> = EnhancerTuple extends [infer Head, ...infer Tail]
-  ? ExtractStateExtensionsFromEnhancerTuple<
-      Tail,
-      Acc &
-        (Head extends StoreEnhancer<any, infer StateExt>
-          ? IsAny<StateExt, {}, StateExt>
-          : {})
-    >
-  : Acc
-
-export type ExtractStateExtensions<E> =
-  E extends Tuple<infer EnhancerTuple>
-    ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}>
-    : E extends ReadonlyArray<StoreEnhancer>
-      ? UnionToIntersection<
-          E[number] extends StoreEnhancer<any, infer StateExt>
-            ? StateExt extends {}
-              ? IsAny<StateExt, {}, StateExt>
-              : {}
-            : {}
-        >
-      : never
-
-/**
- * Helper type. Passes T out again, but boxes it in a way that it cannot
- * "widen" the type by accident if it is a generic that should be inferred
- * from elsewhere.
- *
- * @internal
- */
-export type NoInfer<T> = [T][T extends any ? 0 : never]
-
-export type NonUndefined<T> = T extends undefined ? never : T
-
-export type WithRequiredProp<T, K extends keyof T> = Omit<T, K> &
-  Required<Pick<T, K>>
-
-export type WithOptionalProp<T, K extends keyof T> = Omit<T, K> &
-  Partial<Pick<T, K>>
-
-export interface TypeGuard<T> {
-  (value: any): value is T
-}
-
-export interface HasMatchFunction<T> {
-  match: TypeGuard<T>
-}
-
-export const hasMatchFunction = <T>(
-  v: Matcher<T>,
-): v is HasMatchFunction<T> => {
-  return v && typeof (v as HasMatchFunction<T>).match === 'function'
-}
-
-/** @public */
-export type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>
-
-/** @public */
-export type ActionFromMatcher<M extends Matcher<any>> =
-  M extends Matcher<infer T> ? T : never
-
-export type Id<T> = { [K in keyof T]: T[K] } & {}
-
-export type Tail<T extends any[]> = T extends [any, ...infer Tail]
-  ? Tail
-  : never
-
-export type UnknownIfNonSpecific<T> = {} extends T ? unknown : T
-
-/**
- * A Promise that will never reject.
- * @see https://github.com/reduxjs/redux-toolkit/issues/4101
- */
-export type SafePromise<T> = Promise<T> & {
-  __linterBrands: 'SafePromise'
-}
-
-/**
- * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).
- */
-export function asSafePromise<Resolved, Rejected>(
-  promise: Promise<Resolved>,
-  fallback: (error: unknown) => Rejected,
-) {
-  return promise.catch(fallback) as SafePromise<Resolved | Rejected>
-}
Index: de_modules/@reduxjs/toolkit/src/uncheckedindexed.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/uncheckedindexed.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// inlined from https://github.com/EskiMojo14/uncheckedindexed
-// relies on remaining as a TS file, not .d.ts
-type IfMaybeUndefined<T, True, False> = [undefined] extends [T] ? True : False
-
-const testAccess = ({} as Record<string, 0>)['a']
-
-export type IfUncheckedIndexedAccess<True, False> = IfMaybeUndefined<
-  typeof testAccess,
-  True,
-  False
->
-
-export type UncheckedIndexedAccess<T> = IfUncheckedIndexedAccess<
-  T | undefined,
-  T
->
Index: de_modules/@reduxjs/toolkit/src/utils.ts
===================================================================
--- node_modules/@reduxjs/toolkit/src/utils.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-import { createNextState, isDraftable } from './immerImports'
-
-export function getTimeMeasureUtils(maxDelay: number, fnName: string) {
-  let elapsed = 0
-  return {
-    measureTime<T>(fn: () => T): T {
-      const started = Date.now()
-      try {
-        return fn()
-      } finally {
-        const finished = Date.now()
-        elapsed += finished - started
-      }
-    },
-    warnIfExceeded() {
-      if (elapsed > maxDelay) {
-        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. 
-If your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.
-It is disabled in production builds, so you don't need to worry about that.`)
-      }
-    },
-  }
-}
-
-export function delay(ms: number) {
-  return new Promise((resolve) => setTimeout(resolve, ms))
-}
-
-export class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<
-  Items[number]
-> {
-  constructor(length: number)
-  constructor(...items: Items)
-  constructor(...items: any[]) {
-    super(...items)
-    Object.setPrototypeOf(this, Tuple.prototype)
-  }
-
-  static override get [Symbol.species]() {
-    return Tuple as any
-  }
-
-  override concat<AdditionalItems extends ReadonlyArray<unknown>>(
-    items: Tuple<AdditionalItems>,
-  ): Tuple<[...Items, ...AdditionalItems]>
-  override concat<AdditionalItems extends ReadonlyArray<unknown>>(
-    items: AdditionalItems,
-  ): Tuple<[...Items, ...AdditionalItems]>
-  override concat<AdditionalItems extends ReadonlyArray<unknown>>(
-    ...items: AdditionalItems
-  ): Tuple<[...Items, ...AdditionalItems]>
-  override concat(...arr: any[]) {
-    return super.concat.apply(this, arr)
-  }
-
-  prepend<AdditionalItems extends ReadonlyArray<unknown>>(
-    items: Tuple<AdditionalItems>,
-  ): Tuple<[...AdditionalItems, ...Items]>
-  prepend<AdditionalItems extends ReadonlyArray<unknown>>(
-    items: AdditionalItems,
-  ): Tuple<[...AdditionalItems, ...Items]>
-  prepend<AdditionalItems extends ReadonlyArray<unknown>>(
-    ...items: AdditionalItems
-  ): Tuple<[...AdditionalItems, ...Items]>
-  prepend(...arr: any[]) {
-    if (arr.length === 1 && Array.isArray(arr[0])) {
-      return new Tuple(...arr[0].concat(this))
-    }
-    return new Tuple(...arr.concat(this))
-  }
-}
-
-export function freezeDraftable<T>(val: T) {
-  return isDraftable(val) ? createNextState(val, () => {}) : val
-}
-
-export function getOrInsert<K extends object, V>(
-  map: WeakMap<K, V>,
-  key: K,
-  value: V,
-): V
-export function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V
-export function getOrInsert<K extends object, V>(
-  map: Map<K, V> | WeakMap<K, V>,
-  key: K,
-  value: V,
-): V {
-  if (map.has(key)) return map.get(key) as V
-
-  return map.set(key, value).get(key) as V
-}
-
-export function getOrInsertComputed<K extends object, V>(
-  map: WeakMap<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V
-export function getOrInsertComputed<K, V>(
-  map: Map<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V
-export function getOrInsertComputed<K extends object, V>(
-  map: Map<K, V> | WeakMap<K, V>,
-  key: K,
-  compute: (key: K) => V,
-): V {
-  if (map.has(key)) return map.get(key) as V
-
-  return map.set(key, compute(key)).get(key) as V
-}
-
-export function promiseWithResolvers<T>(): {
-  promise: Promise<T>
-  resolve: (value: T | PromiseLike<T>) => void
-  reject: (reason?: any) => void
-} {
-  let resolve: any
-  let reject: any
-  const promise = new Promise<T>((res, rej) => {
-    resolve = res
-    reject = rej
-  })
-  return { promise, resolve, reject }
-}
Index: de_modules/@standard-schema/spec/LICENSE
===================================================================
--- node_modules/@standard-schema/spec/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2024 Colin McDonnell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/@standard-schema/spec/README.md
===================================================================
--- node_modules/@standard-schema/spec/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,198 +1,0 @@
-<h1 align="center">
-  <img alt="Standard Schema fire logo" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" style="color:transparent" src="https://standardschema.dev/favicon.svg">
-  </br>
-  Standard Schema</h1>
-<p align="center">
-  A family of specs for interoperable TypeScript
-  <br/>
-  <a href="https://standardschema.dev">standardschema.dev</a>
-</p>
-<br/>
-
-<!-- start -->
-
-The Standard Schema project is a set of interfaces that standardize the provision and consumption of shared functionality in the TypeScript ecosystem.
-
-Its goal is to allow tools to accept a single input that includes all the types and capabilities they need— no library-specific adapters, no extra dependencies. The result is an ecosystem that's fair for implementers, friendly for consumers, and open for end users.
-
-## The specifications
-
-The specifications can be found below in their entirety. Libraries wishing to implement a spec can copy/paste the code block below into their codebase. They're also available at `@standard-schema/spec` on [npm](https://www.npmjs.com/package/@standard-schema/spec) and [JSR](https://jsr.io/@standard-schema/spec).
-
-```ts
-// #########################
-// ###   Standard Typed  ###
-// #########################
-
-/** The Standard Typed interface. This is a base type extended by other specs. */
-export interface StandardTypedV1<Input = unknown, Output = Input> {
-  /** The Standard properties. */
-  readonly "~standard": StandardTypedV1.Props<Input, Output>;
-}
-
-export declare namespace StandardTypedV1 {
-  /** The Standard Typed properties interface. */
-  export interface Props<Input = unknown, Output = Input> {
-    /** The version number of the standard. */
-    readonly version: 1;
-    /** The vendor name of the schema library. */
-    readonly vendor: string;
-    /** Inferred types associated with the schema. */
-    readonly types?: Types<Input, Output> | undefined;
-  }
-
-  /** The Standard Typed types interface. */
-  export interface Types<Input = unknown, Output = Input> {
-    /** The input type of the schema. */
-    readonly input: Input;
-    /** The output type of the schema. */
-    readonly output: Output;
-  }
-
-  /** Infers the input type of a Standard Typed. */
-  export type InferInput<Schema extends StandardTypedV1> = NonNullable<
-    Schema["~standard"]["types"]
-  >["input"];
-
-  /** Infers the output type of a Standard Typed. */
-  export type InferOutput<Schema extends StandardTypedV1> = NonNullable<
-    Schema["~standard"]["types"]
-  >["output"];
-}
-
-// ##########################
-// ###   Standard Schema  ###
-// ##########################
-
-/** The Standard Schema interface. */
-export interface StandardSchemaV1<Input = unknown, Output = Input> {
-  /** The Standard Schema properties. */
-  readonly "~standard": StandardSchemaV1.Props<Input, Output>;
-}
-
-export declare namespace StandardSchemaV1 {
-  /** The Standard Schema properties interface. */
-  export interface Props<Input = unknown, Output = Input>
-    extends StandardTypedV1.Props<Input, Output> {
-    /** Validates unknown input values. */
-    readonly validate: (
-      value: unknown,
-      options?: StandardSchemaV1.Options | undefined
-    ) => Result<Output> | Promise<Result<Output>>;
-  }
-
-  /** The result interface of the validate function. */
-  export type Result<Output> = SuccessResult<Output> | FailureResult;
-
-  /** The result interface if validation succeeds. */
-  export interface SuccessResult<Output> {
-    /** The typed output value. */
-    readonly value: Output;
-    /** A falsy value for `issues` indicates success. */
-    readonly issues?: undefined;
-  }
-
-  export interface Options {
-    /** Explicit support for additional vendor-specific parameters, if needed. */
-    readonly libraryOptions?: Record<string, unknown> | undefined;
-  }
-
-  /** The result interface if validation fails. */
-  export interface FailureResult {
-    /** The issues of failed validation. */
-    readonly issues: ReadonlyArray<Issue>;
-  }
-
-  /** The issue interface of the failure output. */
-  export interface Issue {
-    /** The error message of the issue. */
-    readonly message: string;
-    /** The path of the issue, if any. */
-    readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
-  }
-
-  /** The path segment interface of the issue. */
-  export interface PathSegment {
-    /** The key representing a path segment. */
-    readonly key: PropertyKey;
-  }
-
-  /** The Standard types interface. */
-  export interface Types<Input = unknown, Output = Input>
-    extends StandardTypedV1.Types<Input, Output> {}
-
-  /** Infers the input type of a Standard. */
-  export type InferInput<Schema extends StandardTypedV1> =
-    StandardTypedV1.InferInput<Schema>;
-
-  /** Infers the output type of a Standard. */
-  export type InferOutput<Schema extends StandardTypedV1> =
-    StandardTypedV1.InferOutput<Schema>;
-}
-
-// ###############################
-// ###   Standard JSON Schema  ###
-// ###############################
-
-/** The Standard JSON Schema interface. */
-export interface StandardJSONSchemaV1<Input = unknown, Output = Input> {
-  /** The Standard JSON Schema properties. */
-  readonly "~standard": StandardJSONSchemaV1.Props<Input, Output>;
-}
-
-export declare namespace StandardJSONSchemaV1 {
-  /** The Standard JSON Schema properties interface. */
-  export interface Props<Input = unknown, Output = Input>
-    extends StandardTypedV1.Props<Input, Output> {
-    /** Methods for generating the input/output JSON Schema. */
-    readonly jsonSchema: StandardJSONSchemaV1.Converter;
-  }
-
-  /** The Standard JSON Schema converter interface. */
-  export interface Converter {
-    /** Converts the input type to JSON Schema. May throw if conversion is not supported. */
-    readonly input: (
-      options: StandardJSONSchemaV1.Options
-    ) => Record<string, unknown>;
-    /** Converts the output type to JSON Schema. May throw if conversion is not supported. */
-    readonly output: (
-      options: StandardJSONSchemaV1.Options
-    ) => Record<string, unknown>;
-  }
-
-  /**
-   * The target version of the generated JSON Schema.
-   *
-   * It is *strongly recommended* that implementers support `"draft-2020-12"` and `"draft-07"`, as they are both in wide use. All other targets can be implemented on a best-effort basis. Libraries should throw if they don't support a specified target.
-   *
-   * The `"openapi-3.0"` target is intended as a standardized specifier for OpenAPI 3.0 which is a superset of JSON Schema `"draft-04"`.
-   */
-  export type Target =
-    | "draft-2020-12"
-    | "draft-07"
-    | "openapi-3.0"
-    // Accepts any string for future targets while preserving autocomplete
-    | ({} & string);
-
-  /** The options for the input/output methods. */
-  export interface Options {
-    /** Specifies the target version of the generated JSON Schema. Support for all versions is on a best-effort basis. If a given version is not supported, the library should throw. */
-    readonly target: Target;
-
-    /** Explicit support for additional vendor-specific parameters, if needed. */
-    readonly libraryOptions?: Record<string, unknown> | undefined;
-  }
-
-  /** The Standard types interface. */
-  export interface Types<Input = unknown, Output = Input>
-    extends StandardTypedV1.Types<Input, Output> {}
-
-  /** Infers the input type of a Standard. */
-  export type InferInput<Schema extends StandardTypedV1> =
-    StandardTypedV1.InferInput<Schema>;
-
-  /** Infers the output type of a Standard. */
-  export type InferOutput<Schema extends StandardTypedV1> =
-    StandardTypedV1.InferOutput<Schema>;
-}
-```
Index: de_modules/@standard-schema/spec/dist/index.cjs
===================================================================
--- node_modules/@standard-schema/spec/dist/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-module.exports = __toCommonJS(src_exports);
Index: de_modules/@standard-schema/spec/dist/index.d.cts
===================================================================
--- node_modules/@standard-schema/spec/dist/index.d.cts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-/** The Standard Typed interface. This is a base type extended by other specs. */
-interface StandardTypedV1<Input = unknown, Output = Input> {
-    /** The Standard properties. */
-    readonly "~standard": StandardTypedV1.Props<Input, Output>;
-}
-declare namespace StandardTypedV1 {
-    /** The Standard Typed properties interface. */
-    interface Props<Input = unknown, Output = Input> {
-        /** The version number of the standard. */
-        readonly version: 1;
-        /** The vendor name of the schema library. */
-        readonly vendor: string;
-        /** Inferred types associated with the schema. */
-        readonly types?: Types<Input, Output> | undefined;
-    }
-    /** The Standard Typed types interface. */
-    interface Types<Input = unknown, Output = Input> {
-        /** The input type of the schema. */
-        readonly input: Input;
-        /** The output type of the schema. */
-        readonly output: Output;
-    }
-    /** Infers the input type of a Standard Typed. */
-    type InferInput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["input"];
-    /** Infers the output type of a Standard Typed. */
-    type InferOutput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["output"];
-}
-/** The Standard Schema interface. */
-interface StandardSchemaV1<Input = unknown, Output = Input> {
-    /** The Standard Schema properties. */
-    readonly "~standard": StandardSchemaV1.Props<Input, Output>;
-}
-declare namespace StandardSchemaV1 {
-    /** The Standard Schema properties interface. */
-    interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
-        /** Validates unknown input values. */
-        readonly validate: (value: unknown, options?: StandardSchemaV1.Options | undefined) => Result<Output> | Promise<Result<Output>>;
-    }
-    /** The result interface of the validate function. */
-    type Result<Output> = SuccessResult<Output> | FailureResult;
-    /** The result interface if validation succeeds. */
-    interface SuccessResult<Output> {
-        /** The typed output value. */
-        readonly value: Output;
-        /** A falsy value for `issues` indicates success. */
-        readonly issues?: undefined;
-    }
-    interface Options {
-        /** Explicit support for additional vendor-specific parameters, if needed. */
-        readonly libraryOptions?: Record<string, unknown> | undefined;
-    }
-    /** The result interface if validation fails. */
-    interface FailureResult {
-        /** The issues of failed validation. */
-        readonly issues: ReadonlyArray<Issue>;
-    }
-    /** The issue interface of the failure output. */
-    interface Issue {
-        /** The error message of the issue. */
-        readonly message: string;
-        /** The path of the issue, if any. */
-        readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
-    }
-    /** The path segment interface of the issue. */
-    interface PathSegment {
-        /** The key representing a path segment. */
-        readonly key: PropertyKey;
-    }
-    /** The Standard types interface. */
-    interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {
-    }
-    /** Infers the input type of a Standard. */
-    type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
-    /** Infers the output type of a Standard. */
-    type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
-}
-/** The Standard JSON Schema interface. */
-interface StandardJSONSchemaV1<Input = unknown, Output = Input> {
-    /** The Standard JSON Schema properties. */
-    readonly "~standard": StandardJSONSchemaV1.Props<Input, Output>;
-}
-declare namespace StandardJSONSchemaV1 {
-    /** The Standard JSON Schema properties interface. */
-    interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
-        /** Methods for generating the input/output JSON Schema. */
-        readonly jsonSchema: StandardJSONSchemaV1.Converter;
-    }
-    /** The Standard JSON Schema converter interface. */
-    interface Converter {
-        /** Converts the input type to JSON Schema. May throw if conversion is not supported. */
-        readonly input: (options: StandardJSONSchemaV1.Options) => Record<string, unknown>;
-        /** Converts the output type to JSON Schema. May throw if conversion is not supported. */
-        readonly output: (options: StandardJSONSchemaV1.Options) => Record<string, unknown>;
-    }
-    /**
-     * The target version of the generated JSON Schema.
-     *
-     * It is *strongly recommended* that implementers support `"draft-2020-12"` and `"draft-07"`, as they are both in wide use. All other targets can be implemented on a best-effort basis. Libraries should throw if they don't support a specified target.
-     *
-     * The `"openapi-3.0"` target is intended as a standardized specifier for OpenAPI 3.0 which is a superset of JSON Schema `"draft-04"`.
-     */
-    type Target = "draft-2020-12" | "draft-07" | "openapi-3.0" | ({} & string);
-    /** The options for the input/output methods. */
-    interface Options {
-        /** Specifies the target version of the generated JSON Schema. Support for all versions is on a best-effort basis. If a given version is not supported, the library should throw. */
-        readonly target: Target;
-        /** Explicit support for additional vendor-specific parameters, if needed. */
-        readonly libraryOptions?: Record<string, unknown> | undefined;
-    }
-    /** The Standard types interface. */
-    interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {
-    }
-    /** Infers the input type of a Standard. */
-    type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
-    /** Infers the output type of a Standard. */
-    type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
-}
-
-export { StandardJSONSchemaV1, StandardSchemaV1, StandardTypedV1 };
Index: de_modules/@standard-schema/spec/dist/index.d.ts
===================================================================
--- node_modules/@standard-schema/spec/dist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-/** The Standard Typed interface. This is a base type extended by other specs. */
-interface StandardTypedV1<Input = unknown, Output = Input> {
-    /** The Standard properties. */
-    readonly "~standard": StandardTypedV1.Props<Input, Output>;
-}
-declare namespace StandardTypedV1 {
-    /** The Standard Typed properties interface. */
-    interface Props<Input = unknown, Output = Input> {
-        /** The version number of the standard. */
-        readonly version: 1;
-        /** The vendor name of the schema library. */
-        readonly vendor: string;
-        /** Inferred types associated with the schema. */
-        readonly types?: Types<Input, Output> | undefined;
-    }
-    /** The Standard Typed types interface. */
-    interface Types<Input = unknown, Output = Input> {
-        /** The input type of the schema. */
-        readonly input: Input;
-        /** The output type of the schema. */
-        readonly output: Output;
-    }
-    /** Infers the input type of a Standard Typed. */
-    type InferInput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["input"];
-    /** Infers the output type of a Standard Typed. */
-    type InferOutput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["output"];
-}
-/** The Standard Schema interface. */
-interface StandardSchemaV1<Input = unknown, Output = Input> {
-    /** The Standard Schema properties. */
-    readonly "~standard": StandardSchemaV1.Props<Input, Output>;
-}
-declare namespace StandardSchemaV1 {
-    /** The Standard Schema properties interface. */
-    interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
-        /** Validates unknown input values. */
-        readonly validate: (value: unknown, options?: StandardSchemaV1.Options | undefined) => Result<Output> | Promise<Result<Output>>;
-    }
-    /** The result interface of the validate function. */
-    type Result<Output> = SuccessResult<Output> | FailureResult;
-    /** The result interface if validation succeeds. */
-    interface SuccessResult<Output> {
-        /** The typed output value. */
-        readonly value: Output;
-        /** A falsy value for `issues` indicates success. */
-        readonly issues?: undefined;
-    }
-    interface Options {
-        /** Explicit support for additional vendor-specific parameters, if needed. */
-        readonly libraryOptions?: Record<string, unknown> | undefined;
-    }
-    /** The result interface if validation fails. */
-    interface FailureResult {
-        /** The issues of failed validation. */
-        readonly issues: ReadonlyArray<Issue>;
-    }
-    /** The issue interface of the failure output. */
-    interface Issue {
-        /** The error message of the issue. */
-        readonly message: string;
-        /** The path of the issue, if any. */
-        readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
-    }
-    /** The path segment interface of the issue. */
-    interface PathSegment {
-        /** The key representing a path segment. */
-        readonly key: PropertyKey;
-    }
-    /** The Standard types interface. */
-    interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {
-    }
-    /** Infers the input type of a Standard. */
-    type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
-    /** Infers the output type of a Standard. */
-    type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
-}
-/** The Standard JSON Schema interface. */
-interface StandardJSONSchemaV1<Input = unknown, Output = Input> {
-    /** The Standard JSON Schema properties. */
-    readonly "~standard": StandardJSONSchemaV1.Props<Input, Output>;
-}
-declare namespace StandardJSONSchemaV1 {
-    /** The Standard JSON Schema properties interface. */
-    interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
-        /** Methods for generating the input/output JSON Schema. */
-        readonly jsonSchema: StandardJSONSchemaV1.Converter;
-    }
-    /** The Standard JSON Schema converter interface. */
-    interface Converter {
-        /** Converts the input type to JSON Schema. May throw if conversion is not supported. */
-        readonly input: (options: StandardJSONSchemaV1.Options) => Record<string, unknown>;
-        /** Converts the output type to JSON Schema. May throw if conversion is not supported. */
-        readonly output: (options: StandardJSONSchemaV1.Options) => Record<string, unknown>;
-    }
-    /**
-     * The target version of the generated JSON Schema.
-     *
-     * It is *strongly recommended* that implementers support `"draft-2020-12"` and `"draft-07"`, as they are both in wide use. All other targets can be implemented on a best-effort basis. Libraries should throw if they don't support a specified target.
-     *
-     * The `"openapi-3.0"` target is intended as a standardized specifier for OpenAPI 3.0 which is a superset of JSON Schema `"draft-04"`.
-     */
-    type Target = "draft-2020-12" | "draft-07" | "openapi-3.0" | ({} & string);
-    /** The options for the input/output methods. */
-    interface Options {
-        /** Specifies the target version of the generated JSON Schema. Support for all versions is on a best-effort basis. If a given version is not supported, the library should throw. */
-        readonly target: Target;
-        /** Explicit support for additional vendor-specific parameters, if needed. */
-        readonly libraryOptions?: Record<string, unknown> | undefined;
-    }
-    /** The Standard types interface. */
-    interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {
-    }
-    /** Infers the input type of a Standard. */
-    type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
-    /** Infers the output type of a Standard. */
-    type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
-}
-
-export { StandardJSONSchemaV1, StandardSchemaV1, StandardTypedV1 };
Index: de_modules/@standard-schema/spec/package.json
===================================================================
--- node_modules/@standard-schema/spec/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-{
-  "name": "@standard-schema/spec",
-  "description": "A family of specs for interoperable TypeScript",
-  "version": "1.1.0",
-  "license": "MIT",
-  "author": "Colin McDonnell",
-  "homepage": "https://standardschema.dev",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/standard-schema/standard-schema"
-  },
-  "keywords": [
-    "typescript",
-    "schema",
-    "validation",
-    "standard",
-    "interface"
-  ],
-  "type": "module",
-  "main": "./dist/index.js",
-  "types": "./dist/index.d.ts",
-  "exports": {
-    ".": {
-      "standard-schema-spec": "./src/index.ts",
-      "import": {
-        "types": "./dist/index.d.ts",
-        "default": "./dist/index.js"
-      },
-      "require": {
-        "types": "./dist/index.d.cts",
-        "default": "./dist/index.cjs"
-      }
-    }
-  },
-  "sideEffects": false,
-  "files": [
-    "dist"
-  ],
-  "publishConfig": {
-    "access": "public"
-  },
-  "devDependencies": {
-    "tsup": "^8.3.0",
-    "typescript": "^5.6.2"
-  },
-  "scripts": {
-    "lint": "pnpm biome lint ./src",
-    "format": "pnpm biome format --write ./src",
-    "check": "pnpm biome check ./src",
-    "build": "tsup"
-  }
-}
Index: de_modules/@standard-schema/utils/LICENSE
===================================================================
--- node_modules/@standard-schema/utils/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2024 Fabian Hiller
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/@standard-schema/utils/README.md
===================================================================
--- node_modules/@standard-schema/utils/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-# Standard Schema Utils
-
-There are two common tasks that third-party libraries perform after validation fails. The first is to flatten the issues by creating a dot path to more easily associate the issues with the input data. This is commonly used in form libraries. The second is to throw an error that contains all the issue information. To simplify both tasks, Standard Schema also ships a utils package that provides a `getDotPath` function and a `SchemaError` class.
-
-```sh
-npm install @standard-schema/utils   # npm
-yarn add @standard-schema/utils      # yarn
-pnpm add @standard-schema/utils      # pnpm
-bun add @standard-schema/utils       # bun
-deno add jsr:@standard-schema/utils  # deno
-```
-
-## Get Dot Path
-
-To generate a dot path, simply pass an issue to the `getDotPath` function. If the issue does not contain a path or the path contains a key that is not of type `string` or `number`, the function returns `null`.
-
-```ts
-import type { StandardSchemaV1 } from "@standard-schema/spec";
-import { getDotPath } from "@standard-schema/utils";
-
-async function getFormErrors(schema: StandardSchemaV1, data: unknown) {
-  const result = await schema["~standard"].validate(data);
-  const formErrors: string[] = [];
-  const fieldErrors: Record<string, string[]> = {};
-  if (result.issues) {
-    for (const issue of result.issues) {
-      const dotPath = getDotPath(issue);
-      if (dotPath) {
-        if (fieldErrors[dotPath]) {
-          fieldErrors[dotPath].push(issue.message);
-        } else {
-          fieldErrors[dotPath] = [issue.message];
-        }
-      } else {
-        formErrors.push(issue.message);
-      }
-    }
-  }
-  return { formErrors, fieldErrors };
-}
-```
-
-## Schema Error
-
-To throw an error that contains all issue information, simply pass the issues of the failed schema validation to the `SchemaError` class. The `SchemaError` class extends the `Error` class with an `issues` property that contains all the issues.
-
-```ts
-import type { StandardSchemaV1 } from "@standard-schema/spec";
-import { SchemaError } from "@standard-schema/utils";
-
-async function validateInput<TSchema extends StandardSchemaV1>(
-  schema: TSchema,
-  data: unknown,
-): Promise<StandardSchemaV1.InferOutput<TSchema>> {
-  const result = await schema["~standard"].validate(data);
-  if (result.issues) {
-    throw new SchemaError(result.issues);
-  }
-  return result.value;
-}
-```
Index: de_modules/@standard-schema/utils/dist/index.cjs
===================================================================
--- node_modules/@standard-schema/utils/dist/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  SchemaError: () => SchemaError,
-  getDotPath: () => getDotPath
-});
-module.exports = __toCommonJS(src_exports);
-
-// src/getDotPath/getDotPath.ts
-function getDotPath(issue) {
-  if (issue.path?.length) {
-    let dotPath = "";
-    for (const item of issue.path) {
-      const key = typeof item === "object" ? item.key : item;
-      if (typeof key === "string" || typeof key === "number") {
-        if (dotPath) {
-          dotPath += `.${key}`;
-        } else {
-          dotPath += key;
-        }
-      } else {
-        return null;
-      }
-    }
-    return dotPath;
-  }
-  return null;
-}
-
-// src/SchemaError/SchemaError.ts
-var SchemaError = class extends Error {
-  /**
-   * The schema issues.
-   */
-  issues;
-  /**
-   * Creates a schema error with useful information.
-   *
-   * @param issues The schema issues.
-   */
-  constructor(issues) {
-    super(issues[0].message);
-    this.name = "SchemaError";
-    this.issues = issues;
-  }
-};
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  SchemaError,
-  getDotPath
-});
Index: de_modules/@standard-schema/utils/dist/index.d.cts
===================================================================
--- node_modules/@standard-schema/utils/dist/index.d.cts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { StandardSchemaV1 } from '@standard-schema/spec';
-
-/**
- * Creates and returns the dot path of an issue if possible.
- *
- * @param issue The issue to get the dot path from.
- *
- * @returns The dot path or null.
- */
-declare function getDotPath(issue: StandardSchemaV1.Issue): string | null;
-
-/**
- * A schema error with useful information.
- */
-declare class SchemaError extends Error {
-    /**
-     * The schema issues.
-     */
-    readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
-    /**
-     * Creates a schema error with useful information.
-     *
-     * @param issues The schema issues.
-     */
-    constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>);
-}
-
-export { SchemaError, getDotPath };
Index: de_modules/@standard-schema/utils/dist/index.d.ts
===================================================================
--- node_modules/@standard-schema/utils/dist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { StandardSchemaV1 } from '@standard-schema/spec';
-
-/**
- * Creates and returns the dot path of an issue if possible.
- *
- * @param issue The issue to get the dot path from.
- *
- * @returns The dot path or null.
- */
-declare function getDotPath(issue: StandardSchemaV1.Issue): string | null;
-
-/**
- * A schema error with useful information.
- */
-declare class SchemaError extends Error {
-    /**
-     * The schema issues.
-     */
-    readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
-    /**
-     * Creates a schema error with useful information.
-     *
-     * @param issues The schema issues.
-     */
-    constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>);
-}
-
-export { SchemaError, getDotPath };
Index: de_modules/@standard-schema/utils/dist/index.js
===================================================================
--- node_modules/@standard-schema/utils/dist/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-// src/getDotPath/getDotPath.ts
-function getDotPath(issue) {
-  if (issue.path?.length) {
-    let dotPath = "";
-    for (const item of issue.path) {
-      const key = typeof item === "object" ? item.key : item;
-      if (typeof key === "string" || typeof key === "number") {
-        if (dotPath) {
-          dotPath += `.${key}`;
-        } else {
-          dotPath += key;
-        }
-      } else {
-        return null;
-      }
-    }
-    return dotPath;
-  }
-  return null;
-}
-
-// src/SchemaError/SchemaError.ts
-var SchemaError = class extends Error {
-  /**
-   * The schema issues.
-   */
-  issues;
-  /**
-   * Creates a schema error with useful information.
-   *
-   * @param issues The schema issues.
-   */
-  constructor(issues) {
-    super(issues[0].message);
-    this.name = "SchemaError";
-    this.issues = issues;
-  }
-};
-export {
-  SchemaError,
-  getDotPath
-};
Index: de_modules/@standard-schema/utils/package.json
===================================================================
--- node_modules/@standard-schema/utils/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "@standard-schema/utils",
-  "description": "The official runtime utils for Standard Schema",
-  "version": "0.3.0",
-  "license": "MIT",
-  "author": "Fabian Hiller",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/standard-schema/standard-schema"
-  },
-  "keywords": [
-    "standard",
-    "schema",
-    "utils"
-  ],
-  "type": "module",
-  "main": "./dist/index.js",
-  "types": "./dist/index.d.ts",
-  "exports": {
-    ".": {
-      "import": {
-        "types": "./dist/index.d.ts",
-        "default": "./dist/index.js"
-      },
-      "require": {
-        "types": "./dist/index.d.cts",
-        "default": "./dist/index.cjs"
-      }
-    }
-  },
-  "sideEffects": false,
-  "files": [
-    "dist"
-  ],
-  "publishConfig": {
-    "access": "public"
-  },
-  "devDependencies": {
-    "@standard-schema/spec": "npm:@jsr/standard-schema__spec@1.0.0-beta.4",
-    "@vitest/coverage-v8": "2.1.2",
-    "tsup": "^8.3.0",
-    "typescript": "^5.6.2",
-    "vite": "^5.4.8",
-    "vitest": "^2.1.2"
-  },
-  "scripts": {
-    "test": "vitest",
-    "coverage": "vitest run --coverage --isolate",
-    "lint": "pnpm biome lint ./src",
-    "format": "pnpm biome format --write ./src",
-    "check": "pnpm biome check ./src",
-    "build": "tsup"
-  }
-}
Index: de_modules/@types/d3-array/LICENSE
===================================================================
--- node_modules/@types/d3-array/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-array/README.md
===================================================================
--- node_modules/@types/d3-array/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-array`
-
-# Summary
-This package contains type definitions for d3-array (https://github.com/d3/d3-array).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-array.
-
-### Additional Details
- * Last updated: Fri, 12 Sep 2025 20:02:35 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [Tom Wanzek](https://github.com/tomwanzek), [denisname](https://github.com/denisname), [Hugues Stefanski](https://github.com/ledragon), [Nathan Bierema](https://github.com/Methuselah96), and [Fil](https://github.com/Fil).
Index: de_modules/@types/d3-array/index.d.ts
===================================================================
--- node_modules/@types/d3-array/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1118 +1,0 @@
-// Last module patch version validated against: 3.2.4
-
-// --------------------------------------------------------------------------
-// Shared Types and Interfaces
-// --------------------------------------------------------------------------
-
-/**
- * Administrivia: JavaScript primitive types and Date
- */
-export type Primitive = number | string | boolean | Date;
-
-/**
- * Administrivia: anything with a valueOf(): number method is comparable, so we allow it in numeric operations
- */
-export interface Numeric {
-    valueOf(): number;
-}
-
-/**
- * Administrivia: a matrix of numeric values.
- * If height is not specified, it is inferred from the given width and data.length.
- */
-export interface Matrix {
-    data: ArrayLike<number>;
-    width: number;
-    height?: number;
-}
-
-/**
- * Represents a nested/recursive InternMap type
- *
- * The first generic "TObject" refers to the type of the data object that is available in the accessor functions.
- * The second generic "TReduce" refers to the type of the data available at the deepest level (the result data).
- * The third generic "TKeys" refers to the type of the keys at each level of the nestes InternMap.
- */
-export type NestedInternMap<TObject, TReduce, TKeys extends unknown[]> = TKeys extends [infer TFirst, ...infer TRest]
-    ? InternMap<TFirst, NestedInternMap<TObject, TReduce, TRest>>
-    : TReduce;
-
-/**
- * Represents a nested/recursive Array type
- *
- * The first generic "TObject" refers to the type of the data object that is available in the accessor functions.
- * The second generic "TReduce" refers to the type of the data available at the deepest level (the result data).
- * The third generic "TKeys" refers to the type of the keys at each level of the nestes Array.
- */
-export type NestedArray<TObject, TReduce, TKeys extends unknown[]> = TKeys extends [infer TFirst, ...infer TRest]
-    ? Array<[TFirst, NestedArray<TObject, TReduce, TRest>]>
-    : TReduce;
-
-// --------------------------------------------------------------------------------------
-// Statistics
-// --------------------------------------------------------------------------------------
-
-/**
- * Return the minimum value in the array using natural order.
- */
-export function min(iterable: Iterable<string>): string | undefined;
-
-/**
- * Return the minimum value in the array using natural order.
- */
-export function min<T extends Numeric>(iterable: Iterable<T>): T | undefined;
-/**
- * Return the minimum value in the array using natural order.
- */
-export function min<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => string | undefined | null,
-): string | undefined;
-/**
- * Return the minimum value in the array using natural order.
- */
-export function min<T, U extends Numeric>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => U | undefined | null,
-): U | undefined;
-
-/**
- * Return the index of the minimum value in the array using natural order.
- */
-export function minIndex(iterable: Iterable<unknown>): number;
-/**
- * Return the index of the minimum value in the array using natural order and a projection function to map values.
- */
-export function minIndex<TDatum>(
-    iterable: Iterable<TDatum>,
-    accessor: (datum: TDatum, index: number, array: Iterable<TDatum>) => unknown,
-): number;
-/**
- * Return the index of the minimum value in the array using natural order.
- */
-export function minIndex(iterable: Iterable<unknown>): number;
-
-/**
- * Return the maximum value in the array of strings using natural order.
- */
-export function max(iterable: Iterable<string>): string | undefined;
-/**
- * Return the maximum value in the array of numbers using natural order.
- */
-export function max<T extends Numeric>(iterable: Iterable<T>): T | undefined;
-/**
- * Return the maximum value in the array using natural order and a projection function to map values to strings.
- */
-export function max<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => string | undefined | null,
-): string | undefined;
-/**
- * Return the maximum value in the array using natural order and a projection function to map values to easily-sorted values.
- */
-export function max<T, U extends Numeric>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => U | undefined | null,
-): U | undefined;
-
-/**
- * Return the index of the maximum value in the array using natural order.
- */
-export function maxIndex(iterable: Iterable<unknown>): number;
-/**
- * Return the index of the maximum value in the array using natural order and a projection function to map values.
- */
-export function maxIndex<TDatum>(
-    iterable: Iterable<TDatum>,
-    accessor: (datum: TDatum, index: number, array: Iterable<TDatum>) => unknown,
-): number;
-
-/**
- * Return the min and max simultaneously.
- */
-export function extent(iterable: Iterable<string>): [string, string] | [undefined, undefined];
-/**
- * Return the min and max simultaneously.
- */
-export function extent<T extends Numeric>(iterable: Iterable<T>): [T, T] | [undefined, undefined];
-/**
- * Return the min and max simultaneously.
- */
-export function extent<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => string | undefined | null,
-): [string, string] | [undefined, undefined];
-/**
- * Return the min and max simultaneously.
- */
-export function extent<T, U extends Numeric>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => U | undefined | null,
-): [U, U] | [undefined, undefined];
-
-/**
- * Returns the mode of the given iterable, i.e. the value which appears the most often.
- * In case of equality, returns the first of the relevant values.
- * If the iterable contains no comparable values, returns undefined.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the mode.
- * This method ignores undefined, null and NaN values; this is useful for ignoring missing data.
- */
-export function mode(iterable: Iterable<Numeric | undefined | null>): number;
-/**
- * Returns the mode of the given iterable, i.e. the value which appears the most often.
- * In case of equality, returns the first of the relevant values.
- * If the iterable contains no comparable values, returns undefined.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the mode.
- * This method ignores undefined, null and NaN values; this is useful for ignoring missing data.
- */
-export function mode<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number;
-
-/**
- * Compute the sum of an array of numbers.
- */
-export function sum(iterable: Iterable<Numeric | undefined | null>): number;
-/**
- * Compute the sum of an array, using the given accessor to convert values to numbers.
- */
-export function sum<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number;
-
-/**
- * Return the mean of an array of numbers
- */
-export function mean(iterable: Iterable<Numeric | undefined | null>): number | undefined;
-/**
- * Return the mean of an array of numbers
- */
-export function mean<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number | undefined;
-
-/**
- * Return the median of an array of numbers
- */
-export function median(iterable: Iterable<Numeric | undefined | null>): number | undefined;
-/**
- * Return the median of an array of numbers
- */
-export function median<T>(
-    iterable: Iterable<T>,
-    accessor: (element: T, i: number, array: Iterable<T>) => number | undefined | null,
-): number | undefined;
-
-/**
- * Like median, but returns the index of the element to the left of the median.
- */
-export function medianIndex(iterable: Iterable<Numeric | undefined | null>): number;
-/**
- * Like median, but returns the index of the element to the left of the median.
- */
-export function medianIndex<T>(
-    iterable: Iterable<T>,
-    accessor: (element: T, i: number, array: Iterable<T>) => number | undefined | null,
-): number;
-
-/**
- * Returns the cumulative sum of the given iterable of numbers, as a Float64Array of the same length.
- * If the iterable contains no numbers, returns zeros.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the cumulative sum.
- * This method ignores undefined and NaN values; this is useful for ignoring missing data.
- */
-export function cumsum(iterable: Iterable<Numeric | undefined | null>): Float64Array;
-/**
- * Returns the cumulative sum of the given iterable of numbers, as a Float64Array of the same length.
- * If the iterable contains no numbers, returns zeros.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the cumulative sum.
- * This method ignores undefined and NaN values; this is useful for ignoring missing data.
- */
-export function cumsum<T>(
-    iterable: Iterable<T>,
-    accessor: (element: T, i: number, array: Iterable<T>) => number | undefined | null,
-): Float64Array;
-
-/**
- * Returns the p-quantile of the given iterable of numbers, where p is a number in the range [0, 1].
- *
- * An optional accessor function may be specified, which is equivalent to calling array.map(accessor) before computing the quantile.
- */
-export function quantile(iterable: Iterable<Numeric | undefined | null>, p: number): number | undefined;
-/**
- * Returns the p-quantile of the given iterable of numbers, where p is a number in the range [0, 1].
- *
- * An optional accessor function may be specified, which is equivalent to calling array.map(accessor) before computing the quantile.
- */
-export function quantile<T>(
-    iterable: Iterable<T>,
-    p: number,
-    accessor: (element: T, i: number, array: Iterable<T>) => number | undefined | null,
-): number | undefined;
-
-/**
- * Similar to quantile, but returns the index to the left of p.
- */
-export function quantileIndex(iterable: Iterable<Numeric | undefined | null>, p: number): number;
-/**
- * Similar to quantile, but returns the index to the left of p.
- */
-export function quantileIndex<T>(
-    iterable: Iterable<T>,
-    p: number,
-    accessor: (element: T, i: number, array: Iterable<T>) => number | undefined | null,
-): number;
-
-/**
- * Similar to quantile, but expects the input to be a sorted array of values.
- * In contrast with quantile, the accessor is only called on the elements needed to compute the quantile.
- */
-export function quantileSorted(
-    array: Array<Numeric | undefined | null>,
-    p: number,
-): number | undefined;
-/**
- * Similar to quantile, but expects the input to be a sorted array of values.
- * In contrast with quantile, the accessor is only called on the elements needed to compute the quantile.
- */
-export function quantileSorted<T>(
-    array: T[],
-    p: number,
-    accessor: (element: T, i: number, array: T[]) => number | undefined | null,
-): number | undefined;
-
-/**
- * Returns an array with the rank of each value in the iterable, i.e. the zero-based index of the value when the iterable is sorted.
- * Nullish values are sorted to the end and ranked NaN.
- * An optional comparator or accessor function may be specified; the latter is equivalent to calling array.map(accessor) before computing the ranks.
- * If comparator is not specified, it defaults to ascending.
- * Ties (equivalent values) all get the same rank, defined as the first time the value is found.
- */
-export function rank(iterable: Iterable<Numeric | undefined | null>): Float64Array;
-/**
- * Returns an array with the rank of each value in the iterable, i.e. the zero-based index of the value when the iterable is sorted.
- * Nullish values are sorted to the end and ranked NaN.
- * An optional comparator or accessor function may be specified; the latter is equivalent to calling array.map(accessor) before computing the ranks.
- * If comparator is not specified, it defaults to ascending.
- * Ties (equivalent values) all get the same rank, defined as the first time the value is found.
- */
-export function rank<T>(
-    iterable: Iterable<T>,
-    accessorOrComparator:
-        | ((datum: T, index: number, array: Iterable<T>) => number | undefined | null)
-        | ((a: T, b: T) => number | undefined | null),
-): Float64Array;
-
-/**
- * Returns an unbiased estimator of the population variance of the given iterable of numbers using Welford’s algorithm.
- * If the iterable has fewer than two numbers, returns undefined.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the variance.
- * This method ignores undefined and NaN values; this is useful for ignoring missing data.
- */
-export function variance(iterable: Iterable<Numeric | undefined | null>): number | undefined;
-/**
- * Returns an unbiased estimator of the population variance of the given iterable of numbers using Welford’s algorithm.
- * If the iterable has fewer than two numbers, returns undefined.
- * An optional accessor function may be specified, which is equivalent to calling Array.from before computing the variance.
- * This method ignores undefined and NaN values; this is useful for ignoring missing data.
- */
-export function variance<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number | undefined;
-
-/**
- * Compute the standard deviation, defined as the square root of the bias-corrected variance, of the given array of numbers.
- */
-export function deviation(iterable: Iterable<Numeric | undefined | null>): number | undefined;
-/**
- * Compute the standard deviation, defined as the square root of the bias-corrected variance, of the given array,
- * using the given accessor to convert values to numbers.
- */
-export function deviation<T>(
-    iterable: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number | undefined;
-
-/**
- * Returns a full precision summation of the given values.
- * Although slower, d3.fsum can replace d3.sum wherever greater precision is needed. Uses d3.Adder.
- */
-export function fsum(values: Iterable<Numeric | undefined | null>): number;
-/**
- * Returns a full precision summation of the given values.
- * Although slower, d3.fsum can replace d3.sum wherever greater precision is needed. Uses d3.Adder.
- */
-export function fsum<T>(
-    values: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): number;
-
-/**
- * Returns a full precision cumulative sum of the given values.
- * Although slower, d3.fcumsum can replace d3.cumsum when greater precision is needed. Uses d3.Adder.
- */
-export function fcumsum(values: Iterable<Numeric | undefined | null>): Float64Array;
-/**
- * Returns a full precision cumulative sum of the given values.
- * Although slower, d3.fcumsum can replace d3.cumsum when greater precision is needed. Uses d3.Adder.
- */
-export function fcumsum<T>(
-    values: Iterable<T>,
-    accessor: (datum: T, index: number, array: Iterable<T>) => number | undefined | null,
-): Float64Array;
-
-export class Adder {
-    /**
-     * Creates a full precision adder for IEEE 754 floating point numbers, setting its initial value to 0.
-     */
-    constructor();
-
-    /**
-     * Adds the specified number to the adder’s current value and returns the adder.
-     */
-    add(number: number): Adder;
-
-    /**
-     * Returns the IEEE 754 double precision representation of the adder’s current value.
-     * Most useful as the short-hand notation +adder.
-     */
-    valueOf(): number;
-}
-
-// --------------------------------------------------------------------------------------
-// Search
-// --------------------------------------------------------------------------------------
-
-/**
- * Returns the least element of the specified iterable according to the specified comparator.
- * If comparator is not specified, it defaults to ascending.
- */
-export function least<T>(iterable: Iterable<T>, comparator?: (a: T, b: T) => number): T | undefined;
-/**
- * Returns the least element of the specified iterable according to the specified accessor.
- */
-export function least<T>(iterable: Iterable<T>, accessor: (a: T) => unknown): T | undefined;
-
-/**
- * Returns the index of the least element of the specified iterable according to the specified comparator.
- */
-export function leastIndex(iterable: Iterable<unknown>): number | undefined;
-/**
- * Returns the index of the least element of the specified iterable according to the specified comparator.
- */
-export function leastIndex<T>(iterable: Iterable<T>, comparator: (a: T, b: T) => number): number | undefined;
-/**
- * Returns the index of the least element of the specified iterable according to the specified accessor.
- */
-// tslint:disable-next-line:unified-signatures
-export function leastIndex<T>(iterable: Iterable<T>, accessor: (a: T) => unknown): number | undefined;
-
-/**
- * Returns the greatest element of the specified iterable according to the specified comparator or accessor.
- * If the given iterable contains no comparable elements (i.e., the comparator returns NaN when comparing each element to itself), returns undefined.
- * If comparator is not specified, it defaults to ascending.
- */
-export function greatest<T>(iterable: Iterable<T>, comparator?: (a: T, b: T) => number): T | undefined;
-/**
- * Returns the greatest element of the specified iterable according to the specified comparator or accessor.
- * If the given iterable contains no comparable elements (i.e., the comparator returns NaN when comparing each element to itself), returns undefined.
- * If comparator is not specified, it defaults to ascending.
- */
-export function greatest<T>(iterable: Iterable<T>, accessor: (a: T) => unknown): T | undefined;
-
-/**
- * Returns the index of the greatest element of the specified iterable according to the specified comparator or accessor.
- * If the given iterable contains no comparable elements (i.e., the comparator returns NaN when comparing each element to itself), returns -1.
- * If comparator is not specified, it defaults to ascending.
- */
-export function greatestIndex(iterable: Iterable<unknown>): number | undefined;
-/**
- * Returns the index of the greatest element of the specified iterable according to the specified comparator or accessor.
- * If the given iterable contains no comparable elements (i.e., the comparator returns NaN when comparing each element to itself), returns -1.
- * If comparator is not specified, it defaults to ascending.
- */
-export function greatestIndex<T>(iterable: Iterable<T>, comparator: (a: T, b: T) => number): number | undefined;
-/**
- * Returns the index of the greatest element of the specified iterable according to the specified comparator or accessor.
- * If the given iterable contains no comparable elements (i.e., the comparator returns NaN when comparing each element to itself), returns -1.
- * If comparator is not specified, it defaults to ascending.
- */
-// tslint:disable-next-line:unified-signatures
-export function greatestIndex<T>(iterable: Iterable<T>, accessor: (a: T) => unknown): number | undefined;
-
-export function bisectLeft(array: ArrayLike<number>, x: number, lo?: number, hi?: number): number;
-export function bisectLeft(array: ArrayLike<string>, x: string, lo?: number, hi?: number): number;
-export function bisectLeft(array: ArrayLike<Date>, x: Date, lo?: number, hi?: number): number;
-
-export function bisectRight(array: ArrayLike<number>, x: number, lo?: number, hi?: number): number;
-export function bisectRight(array: ArrayLike<string>, x: string, lo?: number, hi?: number): number;
-export function bisectRight(array: ArrayLike<Date>, x: Date, lo?: number, hi?: number): number;
-
-export function bisectCenter(array: ArrayLike<number>, x: number, lo?: number, hi?: number): number;
-export function bisectCenter(array: ArrayLike<string>, x: string, lo?: number, hi?: number): number;
-export function bisectCenter(array: ArrayLike<Date>, x: Date, lo?: number, hi?: number): number;
-
-export const bisect: typeof bisectRight;
-
-export interface Bisector<T, U> {
-    left(array: ArrayLike<T>, x: U, lo?: number, hi?: number): number;
-    right(array: ArrayLike<T>, x: U, lo?: number, hi?: number): number;
-    center(array: ArrayLike<T>, x: U, lo?: number, hi?: number): number;
-}
-
-export function bisector<T, U>(comparator: (a: T, b: U) => number): Bisector<T, U>;
-// tslint:disable-next-line:unified-signatures
-export function bisector<T, U>(accessor: (x: T) => U): Bisector<T, U>;
-
-/**
- * Rearranges items so that all items in the [left, k] are the smallest. The k-th element will have the (k - left + 1)-th smallest value in [left, right].
- *
- * @param array The array to partially sort (in place).
- * @param k The middle index for partial sorting.
- * @param left The left index of the range to sort.
- * @param right The right index.
- * @param compare The compare function.
- */
-export function quickselect<T>(
-    array: ArrayLike<T>,
-    k: number,
-    left?: number,
-    right?: number,
-    compare?: (a: Primitive | undefined, b: Primitive | undefined) => number,
-): T[];
-
-// NB. this is limited to primitive values due to D3's use of the <, >, and >= operators. Results get weird for object instances.
-/**
- * Compares two primitive values for sorting (in ascending order).
- */
-export function ascending(a: Primitive | undefined, b: Primitive | undefined): number;
-
-// NB. this is limited to primitive values due to D3's use of the <, >, and >= operators. Results get weird for object instances.
-/**
- * Compares two primitive values for sorting (in descending order).
- */
-export function descending(a: Primitive | undefined, b: Primitive | undefined): number;
-
-// --------------------------------------------------------------------------------------
-// Transformations
-// --------------------------------------------------------------------------------------
-
-/**
- * Groups the specified iterable of values into an InternMap from key to array of value.
- *
- * @param iterable The iterable to group.
- * @param keys The key functions.
- */
-export function group<TObject, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedInternMap<TObject, TObject[], TKeys>;
-
-/**
- * Equivalent to group, but returns nested arrays instead of nested maps.
- *
- * @param iterable The iterable to group.
- * @param keys The key functions.
- */
-export function groups<TObject, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedArray<TObject, TObject[], TKeys>;
-
-/**
- * Equivalent to group, but returns a flat array of [key0, key1, …, values] instead of nested maps.
- *
- * @param iterable The iterable to group.
- * @param keys The key functions.
- */
-export function flatGroup<TObject, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): Array<[...TKeys, TObject[]]>;
-
-/**
- * Equivalent to group but returns a unique value per compound key instead of an array, throwing if the key is not unique.
- *
- * @param iterable The iterable to group.
- * @param key The key functions.
- */
-export function index<TObject, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedInternMap<TObject, TObject, TKeys>;
-
-/**
- * Equivalent to index, but returns nested arrays instead of nested maps.
- *
- * @param iterable The iterable to group.
- * @param keys The key functions.
- */
-export function indexes<TObject, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedArray<TObject, TObject, TKeys>;
-
-/**
- * Groups and reduces the specified array of values into an InternMap from key to value.
- *
- * @param iterable The iterable to group.
- * @param reduce The reduce function.
- * @param keys The key functions.
- */
-export function rollup<TObject, TReduce, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    reduce: (values: TObject[]) => TReduce,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedInternMap<TObject, TReduce, TKeys>;
-
-/**
- * Equivalent to rollup, but returns nested arrays instead of nested maps.
- *
- * @param iterable The iterable to group.
- * @param reduce The reduce function.
- * @param keys The key functions.
- */
-export function rollups<TObject, TReduce, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    reduce: (values: TObject[]) => TReduce,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): NestedArray<TObject, TReduce, TKeys>;
-
-/**
- * Equivalent to rollup, but returns a flat array of [key0, key1, …, value] instead of nested maps.
- *
- * @param iterable The iterable to group.
- * @param reduce The reduce function.
- * @param keys The key functions.
- */
-export function flatRollup<TObject, TReduce, TKeys extends unknown[]>(
-    iterable: Iterable<TObject>,
-    reduce: (values: TObject[]) => TReduce,
-    ...keys: {
-        [Index in keyof TKeys]: (value: TObject, index: number, values: TObject[]) => TKeys[Index];
-    }
-): Array<[...TKeys, TReduce]>;
-
-/**
- * Groups the specified iterable of elements according to the specified key function, sorts the groups according to the specified comparator, and then returns an array of keys in sorted order.
- * The comparator will be asked to compare two groups a and b and should return a negative value if a should be before b, a positive value if a should be after b, or zero for a partial ordering.
- */
-export function groupSort<TObject, TKey>(
-    iterable: Iterable<TObject>,
-    comparator: (a: TObject[], b: TObject[]) => number,
-    key: (value: TObject) => TKey,
-): TKey[];
-/**
- * Groups the specified iterable of elements according to the specified key function, sorts the groups according to the specified accessor, and then returns an array of keys in sorted order.
- */
-export function groupSort<TObject, TKey>(
-    iterable: Iterable<TObject>,
-    // tslint:disable-next-line:unified-signatures
-    accessor: (value: TObject[]) => unknown,
-    key: (value: TObject) => TKey,
-): TKey[];
-
-/**
- * Returns the number of valid number values (i.e., not null, NaN, or undefined) in the specified iterable; accepts an accessor.
- *
- * @param iterable Input array.
- */
-export function count(iterable: Iterable<unknown>): number;
-/**
- * Returns the number of valid number values (i.e., not null, NaN, or undefined) in the specified iterable; accepts an accessor.
- *
- * @param iterable Input array.
- * @param accessor Accessor method.
- */
-export function count<TObject>(
-    iterable: Iterable<TObject>,
-    accessor: (a: TObject, b: TObject) => number | null | undefined,
-): number;
-
-/**
- * Computes the Cartesian product of any number of iterables.
- *
- * When called **without** a reducer, the result is an array of tuples,
- * where each tuple contains one element from each input iterable.
- *
- * @typeParam T - A tuple type describing the element type of each iterable argument.
- *                For example, passing `[number[], string[]]` infers `T` as `[number, string]`.
- *
- * @param iterables - Two or more iterables to combine into a Cartesian product.
- * @returns An array of tuples containing one value from each iterable.
- *
- * @example
- * ```ts
- * const nums = [1, 2];
- * const chars = ['a', 'b'];
- * const out = cross(nums, chars);
- * //    ^? type: [number, string][]
- * // Example value: [[1,'a'], [1,'b'], [2,'a'], [2,'b']]
- * ```
- */
-export function cross<T extends unknown[]>(
-    ...iterables: { [K in keyof T]: Iterable<T[K]> }
-): T[];
-
-/**
- * Computes the Cartesian product of any number of iterables and then applies
- * a reducer to each tuple, returning the reduced values.
- *
- * The final argument **must** be the reducer function; all prior arguments are iterables.
- *
- * @typeParam T - A tuple type describing the element type of each iterable argument.
- * @typeParam U - The result type produced by the reducer.
- *
- * @param args - The iterables to combine, followed by a reducer function.
- * @param args.reducer - A function invoked with one element from each iterable
- *                       (spread as individual parameters) that returns a reduced value.
- * @returns An array of reduced values returned by the reducer.
- *
- * @example
- * ```ts
- * const nums = [1, 2];
- * const chars = ['a', 'b'];
- * const out = cross(nums, chars, (n, c) => `${n}${c}`);
- * //    ^? type: string[]
- * // Example value: ['1a', '1b', '2a', '2b']
- * ```
- */
-export function cross<T extends unknown[], U>(
-    ...args: [...iterables: { [K in keyof T]: Iterable<T[K]> }, reducer: (...values: T) => U]
-): U[];
-
-/**
- * Merges the specified arrays into a single array.
- */
-export function merge<T>(iterables: Iterable<Iterable<T>>): T[];
-
-/**
- * For each adjacent pair of elements in the specified array, returns a new array of tuples of elements i and i - 1.
- * Returns the empty array if the input array has fewer than two elements.
- *
- * @param iterable Array of input elements
- */
-export function pairs<T>(iterable: Iterable<T>): Array<[T, T]>;
-/**
- * For each adjacent pair of elements in the specified array, in order, invokes the specified reducer function passing the element i and element i - 1.
- * Returns the resulting array of pair-wise reduced elements.
- * Returns the empty array if the input array has fewer than two elements.
- *
- * @param iterable Array of input elements
- * @param reducer A reducer function taking as input to adjacent elements of the input array and returning a reduced value.
- */
-export function pairs<T, U>(iterable: Iterable<T>, reducer: (a: T, b: T) => U): U[];
-
-/**
- * Returns a permutation of the specified source object (or array) using the specified iterable of keys.
- * The returned array contains the corresponding property of the source object for each key in keys, in order.
- * For example, `permute(["a", "b", "c"], [1, 2, 0]) // ["b", "c", "a"]`
- *
- * It is acceptable to have more keys than source elements, and for keys to be duplicated or omitted.
- */
-export function permute<T>(source: { [key: number]: T }, keys: Iterable<number>): T[];
-/**
- * Extract the values from an object into an array with a stable order. For example:
- * `var object = {yield: 27, year: 1931, site: "University Farm"};`
- * `d3.permute(object, ["site", "yield"]); // ["University Farm", 27]`
- */
-export function permute<T, K extends keyof T>(source: T, keys: Iterable<K>): Array<T[K]>;
-
-/**
- * Randomizes the order of the specified array using the Fisher–Yates shuffle.
- */
-export function shuffle<T>(array: T[], lo?: number, hi?: number): T[];
-export function shuffle(array: Int8Array, lo?: number, hi?: number): Int8Array;
-export function shuffle(array: Uint8Array, lo?: number, hi?: number): Uint8Array;
-export function shuffle(array: Uint8ClampedArray, lo?: number, hi?: number): Uint8ClampedArray;
-export function shuffle(array: Int16Array, lo?: number, hi?: number): Int16Array;
-export function shuffle(array: Uint16Array, lo?: number, hi?: number): Uint16Array;
-export function shuffle(array: Int32Array, lo?: number, hi?: number): Int32Array;
-export function shuffle(array: Uint32Array, lo?: number, hi?: number): Uint32Array;
-export function shuffle(array: Float32Array, lo?: number, hi?: number): Float32Array;
-export function shuffle(array: Float64Array, lo?: number, hi?: number): Float64Array;
-
-/**
- * Returns a shuffle function given the specified random source.
- */
-export function shuffler(random: () => number): typeof shuffle;
-
-/**
- * Generate an array of approximately count + 1 uniformly-spaced, nicely-rounded values between start and stop (inclusive).
- * Each value is a power of ten multiplied by 1, 2 or 5. See also d3.tickIncrement, d3.tickStep and linear.ticks.
- *
- * Ticks are inclusive in the sense that they may include the specified start and stop values if (and only if) they are exact,
- * nicely-rounded values consistent with the inferred step. More formally, each returned tick t satisfies start ≤ t and t ≤ stop.
- *
- * @param start Start value for ticks
- * @param stop Stop value for ticks
- * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks.
- */
-export function ticks(start: number, stop: number, count: number): number[];
-
-/**
- * Returns the difference between adjacent tick values if the same arguments were passed to d3.ticks:
- * a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5.
- *
- * Like d3.tickStep, except requires that start is always less than or equal to stop, and if the tick step for the given start,
- * stop and count would be less than one, returns the negative inverse tick step instead.
- *
- * This method is always guaranteed to return an integer, and is used by d3.ticks to avoid guarantee that the returned tick values
- * are represented as precisely as possible in IEEE 754 floating point.
- *
- * @param start Start value for ticks
- * @param stop Stop value for ticks
- * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks.
- */
-export function tickIncrement(start: number, stop: number, count: number): number;
-
-/**
- * Returns the difference between adjacent tick values if the same arguments were passed to d3.ticks:
- * a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5.
- *
- * Note that due to the limited precision of IEEE 754 floating point, the returned value may not be exact decimals;
- * use d3-format to format numbers for human consumption.
- *
- * @param start Start value for ticks
- * @param stop Stop value for ticks
- * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks.
- */
-export function tickStep(start: number, stop: number, count: number): number;
-
-/**
- * Returns a new interval [niceStart, niceStop] covering the given interval [start, stop] and where niceStart and niceStop are guaranteed to align with the corresponding tick step.
- * Like d3.tickIncrement, this requires that start is less than or equal to stop.
- *
- * @param start Start value for ticks
- * @param stop Stop value for ticks
- * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks.
- */
-export function nice(start: number, stop: number, count: number): [number, number];
-
-/**
- * Generates a 0-based numeric sequence. The output range does not include 'stop'.
- */
-export function range(stop: number): number[];
-/**
- * Generates a numeric sequence starting from the given start and stop values. 'step' defaults to 1. The output range does not include 'stop'.
- */
-// tslint:disable-next-line:unified-signatures
-export function range(start: number, stop: number, step?: number): number[];
-
-/**
- * Transpose a matrix provided in Array of Arrays format.
- */
-export function transpose<T>(matrix: ArrayLike<ArrayLike<T>>): T[][];
-
-/**
- * Returns an array of arrays, where the ith array contains the ith element from each of the argument arrays.
- * The returned array is truncated in length to the shortest array in arrays. If arrays contains only a single array, the returned array
- * contains one-element arrays. With no arguments, the returned array is empty.
- */
-export function zip<T>(...arrays: Array<ArrayLike<T>>): T[][];
-
-// --------------------------------------------------------------------------------------
-// Blur
-// --------------------------------------------------------------------------------------
-
-/**
- * Blurs an array of data in-place by applying three iterations of a moving average transform (box filter)
- * for a fast approximation of a Gaussian kernel of the given radius, a non-negative number.
- * Returns the given data.
- */
-export function blur(data: ArrayLike<number>, radius: number): ArrayLike<number>;
-
-/**
- * Blurs a matrix of the given width and height in-place by applying a horizontal blur of radius rx
- * and a vertical blur of radius ry (which defaults to rx).
- * The matrix values data are stored in a flat (one-dimensional) array.
- * If height is not specified, it is inferred from the given width and data.length.
- * Returns the blurred matrix {data, width, height}.
- */
-export function blur2(data: Matrix, rx: number, ry?: number): Matrix;
-
-/**
- * Blurs the given ImageData in-place, blurring each of the RGBA layers independently by applying an horizontal blur of radius rx
- * and a vertical blur of radius ry (which defaults to rx).
- * Returns the blurred ImageData.
- */
-export function blurImage(imageData: ImageData, rx: number, ry?: number): ImageData;
-
-// --------------------------------------------------------------------------------------
-// Iterables
-// --------------------------------------------------------------------------------------
-
-/**
- * Returns true if the given test function returns true for every value in the given iterable.
- * This method returns as soon as test returns a non-truthy value or all values are iterated over.
- * Equivalent to array.every.
- */
-export function every<T>(
-    iterable: Iterable<T>,
-    test: (value: T, index: number, iterable: Iterable<T>) => unknown,
-): boolean;
-
-/**
- * Returns true if the given test function returns true for any value in the given iterable.
- * This method returns as soon as test returns a truthy value or all values are iterated over.
- * Equivalent to array.some.
- */
-export function some<T>(
-    iterable: Iterable<T>,
-    test: (value: T, index: number, iterable: Iterable<T>) => unknown,
-): boolean;
-
-/**
- * Returns a new array containing the values from iterable, in order, for which the given test function returns true.
- * Equivalent to array.filter.
- */
-export function filter<T>(
-    iterable: Iterable<T>,
-    test: (value: T, index: number, iterable: Iterable<T>) => unknown,
-): T[];
-
-/**
- * Returns a new array containing the mapped values from iterable, in order, as defined by given mapper function.
- * Equivalent to array.map and Array.from.
- */
-export function map<T, U>(iterable: Iterable<T>, mapper: (value: T, index: number, iterable: Iterable<T>) => U): U[];
-
-/**
- * Returns the reduced value defined by given reducer function, which is repeatedly invoked for each value in iterable, being passed the current reduced value and the next value.
- * Equivalent to array.reduce.
- */
-export function reduce<T>(
-    iterable: Iterable<T>,
-    reducer: (previousValue: T, currentValue: T, currentIndex: number, iterable: Iterable<T>) => T,
-    initialValue?: T,
-): T;
-/**
- * Returns the reduced value defined by given reducer function, which is repeatedly invoked for each value in iterable, being passed the current reduced value and the next value.
- * Equivalent to array.reduce.
- */
-export function reduce<T, U>(
-    iterable: Iterable<T>,
-    reducer: (previousValue: U, currentValue: T, currentIndex: number, iterable: Iterable<T>) => U,
-    initialValue: U,
-): U;
-
-/**
- * Returns an array containing the values in the given iterable in reverse order.
- * Equivalent to array.reverse, except that it does not mutate the given iterable.
- */
-export function reverse<T>(iterable: Iterable<T>): T[];
-
-/**
- * Returns an array containing the values in the given iterable in the sorted order defined by the given comparator function.
- * If comparator is not specified, it defaults to d3.ascending.
- * Equivalent to array.sort, except that it does not mutate the given iterable, and the comparator defaults to natural order instead of lexicographic order.
- */
-export function sort<T>(iterable: Iterable<T>, comparator?: (a: T, b: T) => number): T[];
-/**
- * Returns an array containing the values in the given iterable in the sorted order defined by the given accessor function.
- * This is equivalent to a comparator using natural order.
- * The accessor is only invoked once per element, and thus may be nondeterministic.
- * Multiple accessors may be specified to break ties.
- */
-export function sort<T>(iterable: Iterable<T>, ...accessors: Array<(a: T) => unknown>): T[];
-
-// --------------------------------------------------------------------------------------
-// Sets
-// --------------------------------------------------------------------------------------
-
-/**
- * Returns a new InternSet containing every value in iterable that is not in any of the others iterables.
- */
-export function difference<T>(iterable: Iterable<T>, ...others: Array<Iterable<T>>): InternSet<T>;
-
-/**
- * Returns a new InternSet containing every (distinct) value that appears in any of the given iterables.
- * The order of values in the returned set is based on their first occurrence in the given iterables.
- */
-export function union<T>(...iterables: Array<Iterable<T>>): InternSet<T>;
-
-/**
- * Returns a new InternSet containing every (distinct) value that appears in all of the given iterables.
- * The order of values in the returned set is based on their first occurrence in the given iterables.
- */
-export function intersection<T>(...iterables: Array<Iterable<T>>): InternSet<T>;
-
-/**
- * Returns true if a is a superset of b: if every value in the given iterable b is also in the given iterable a.
- */
-export function superset<T>(a: Iterable<T>, b: Iterable<T>): boolean;
-
-/**
- * Returns true if a is a subset of b: if every value in the given iterable a is also in the given iterable b.
- */
-export function subset<T>(a: Iterable<T>, b: Iterable<T>): boolean;
-
-/**
- * Returns true if a and b are disjoint: if a and b contain no shared value.
- */
-export function disjoint<T>(a: Iterable<T>, b: Iterable<T>): boolean;
-
-// --------------------------------------------------------------------------------------
-// Bins
-// --------------------------------------------------------------------------------------
-
-export interface Bin<Datum, Value extends number | Date | undefined> extends Array<Datum> {
-    x0: Value | undefined;
-    x1: Value | undefined;
-}
-
-/**
- * Type definition for threshold generator which returns the count of recommended thresholds
- */
-export type ThresholdCountGenerator<Value extends number | undefined = number | undefined> = (
-    values: ArrayLike<Value>,
-    min: number,
-    max: number,
-) => number;
-
-/**
- * Type definition for threshold generator which returns an array of recommended numbers thresholds
- */
-export type ThresholdNumberArrayGenerator<Value extends number | undefined> = (
-    values: ArrayLike<Value>,
-    min: number,
-    max: number,
-) => Value[];
-
-/**
- * Type definition for threshold generator which returns an array of recommended dates thresholds
- */
-export type ThresholdDateArrayGenerator<Value extends Date | undefined> = (
-    values: ArrayLike<Value>,
-    min: Date,
-    max: Date,
-) => Value[];
-
-export interface HistogramCommon<Datum, Value extends number | Date | undefined> {
-    (data: ArrayLike<Datum>): Array<Bin<Datum, Value>>;
-
-    value(): (d: Datum, i: number, data: ArrayLike<Datum>) => Value;
-    value(valueAccessor: (d: Datum, i: number, data: ArrayLike<Datum>) => Value): this;
-}
-
-export interface HistogramGeneratorDate<Datum, Value extends Date | undefined> extends HistogramCommon<Datum, Date> {
-    domain(): (values: ArrayLike<Value>) => [Date, Date];
-    domain(domain: [Date, Date] | ((values: ArrayLike<Value>) => [Date, Date])): this;
-
-    thresholds(): ThresholdDateArrayGenerator<Value>;
-    /**
-     * Set the array of values to be used as thresholds in determining the bins.
-     *
-     * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value,
-     * and the last bin.x1 is always equal to the maximum domain value.
-     *
-     * @param thresholds Either an array of threshold values used for binning. The elements must
-     * be of the same type as the materialized values of the histogram.
-     * Or a function which accepts as arguments the array of materialized values, and
-     * optionally the domain minimum and maximum. The function calculates and returns the array of values to be used as
-     * thresholds in determining the bins.
-     */
-    thresholds(thresholds: ArrayLike<Value> | ThresholdDateArrayGenerator<Value>): this;
-}
-
-export interface HistogramGeneratorNumber<Datum, Value extends number | undefined>
-    extends HistogramCommon<Datum, Value>
-{
-    domain(): (values: Iterable<Value>) => [number, number] | [undefined, undefined];
-    domain(domain: [number, number] | ((values: Iterable<Value>) => [number, number] | [undefined, undefined])): this;
-
-    thresholds(): ThresholdCountGenerator<Value> | ThresholdNumberArrayGenerator<Value>;
-    /**
-     * Divide the domain uniformly into approximately count bins. IMPORTANT: This threshold
-     * setting approach only works, when the materialized values are numbers!
-     *
-     * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value,
-     * and the last bin.x1 is always equal to the maximum domain value.
-     *
-     * @param count Either the desired number of uniform bins or a function which accepts as arguments the array of
-     * materialized values, and optionally the domain minimum and maximum. The function calculates and returns the
-     * suggested number of bins.
-     */
-    thresholds(count: number | ThresholdCountGenerator<Value>): this;
-    /**
-     * Set the array of values to be used as thresholds in determining the bins.
-     *
-     * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value,
-     * and the last bin.x1 is always equal to the maximum domain value.
-     *
-     * @param thresholds Either an array of threshold values used for binning. The elements must
-     * be of the same type as the materialized values of the histogram.
-     * Or a function which accepts as arguments the array of materialized values, and
-     * optionally the domain minimum and maximum. The function calculates and returns the array of values to be used as
-     * thresholds in determining the bins.
-     */
-    // tslint:disable-next-line:unified-signatures
-    thresholds(thresholds: ArrayLike<Value> | ThresholdNumberArrayGenerator<Value>): this;
-}
-
-/**
- * @deprecated Use bin instead.
- */
-export function histogram(): HistogramGeneratorNumber<number, number>;
-
-/**
- * @deprecated Use bin instead.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function histogram<Datum, Value extends number | undefined>(): HistogramGeneratorNumber<Datum, Value>;
-
-/**
- * @deprecated Use bin instead.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function histogram<Datum, Value extends Date | undefined>(): HistogramGeneratorDate<Datum, Value>;
-
-export function bin(): HistogramGeneratorNumber<number, number>;
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function bin<Datum, Value extends number | undefined>(): HistogramGeneratorNumber<Datum, Value>;
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function bin<Datum, Value extends Date | undefined>(): HistogramGeneratorDate<Datum, Value>;
-
-// --------------------------------------------------------------------------------------
-// Histogram Thresholds
-// --------------------------------------------------------------------------------------
-
-export function thresholdFreedmanDiaconis(values: ArrayLike<number | undefined>, min: number, max: number): number; // of type ThresholdCountGenerator
-
-export function thresholdScott(values: ArrayLike<number | undefined>, min: number, max: number): number; // of type ThresholdCountGenerator
-
-export function thresholdSturges(values: ArrayLike<number | undefined>): number; // of type ThresholdCountGenerator
-
-// --------------------------------------------------------------------------------------
-// Interning
-// --------------------------------------------------------------------------------------
-
-/**
- * The InternMap class extends the native JavaScript Map class, allowing Dates and other non-primitive keys by bypassing the SameValueZero algorithm when determining key equality.
- */
-export class InternMap<K = any, V = any> extends Map<K, V> {
-}
-
-/**
- * The InternSet class extends the native JavaScript Set class, allowing Dates and other non-primitive keys by bypassing the SameValueZero algorithm when determining key equality.
- */
-export class InternSet<T = any> extends Set<T> {
-}
Index: de_modules/@types/d3-array/package.json
===================================================================
--- node_modules/@types/d3-array/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-{
-    "name": "@types/d3-array",
-    "version": "3.2.2",
-    "description": "TypeScript definitions for d3-array",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-array",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Hugues Stefanski",
-            "githubUsername": "ledragon",
-            "url": "https://github.com/ledragon"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        },
-        {
-            "name": "Fil",
-            "githubUsername": "Fil",
-            "url": "https://github.com/Fil"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-array"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "peerDependencies": {},
-    "typesPublisherContentHash": "d8ff015b14e99aec79f6ac45682bd8237145131c804b94de0ed1e6bc003d5190",
-    "typeScriptVersion": "5.2"
-}
Index: de_modules/@types/d3-color/LICENSE
===================================================================
--- node_modules/@types/d3-color/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-color/README.md
===================================================================
--- node_modules/@types/d3-color/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-color`
-
-# Summary
-This package contains type definitions for d3-color (https://github.com/d3/d3-color/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-color.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 15:11:36 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), [Hugues Stefanski](https://github.com/ledragon), [Nathan Bierema](https://github.com/Methuselah96), and [Fil](https://github.com/Fil).
Index: de_modules/@types/d3-color/index.d.ts
===================================================================
--- node_modules/@types/d3-color/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,669 +1,0 @@
-// Last module patch version validated against: 3.1.0
-
-// ---------------------------------------------------------------------------
-// Shared Type Definitions and Interfaces
-// ---------------------------------------------------------------------------
-
-/**
- * Type allowing for color objects from a specified color space
- */
-export type ColorSpaceObject = RGBColor | HSLColor | LabColor | HCLColor | CubehelixColor;
-
-/**
- * A helper interface of methods common to color objects (including colors defined outside the d3-color standard module,
- * e.g. in d3-hsv). This interface
- */
-export interface ColorCommonInstance {
-    /**
-     * Returns true if and only if the color is displayable on standard hardware.
-     * For example, this returns false for an RGB color if any channel value is less than zero or greater than 255, or if the opacity is not in the range [0, 1].
-     */
-    displayable(): boolean;
-    /**
-     * Returns a string representing this color according to the CSS Object Model specification,
-     * such as rgb(247, 234, 186) or rgba(247, 234, 186, 0.2).
-     * If this color is not displayable, a suitable displayable color is returned instead.
-     * For example, RGB channel values greater than 255 are clamped to 255.
-     */
-    toString(): string;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1. The behavior of this method is dependent on the implementing color space.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1. The behavior of this method is dependent on the implementing color space.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB equivalent of this color. For RGB colors, that’s "this".
-     */
-    rgb(): RGBColor;
-    /**
-     * Returns a hexadecimal string representing this color.
-     * If this color is not displayable, a suitable displayable color is returned instead.
-     * For example, RGB channel values greater than 255 are clamped to 255.
-     */
-    hex(): string;
-}
-
-/**
- * A Color object which serves as a base class for
- * colorspace-specific sub-class implementations.
- */
-export interface Color {
-    /**
-     * Returns true if and only if the color is displayable on standard hardware.
-     * For example, this returns false for an RGB color if any channel value is less than zero or greater than 255, or if the opacity is not in the range [0, 1].
-     */
-    displayable(): boolean; // Note: While this method is used in prototyping for colors of specific colorspaces, it should not be called directly, as 'this.rgb' would not be implemented on Color
-    /**
-     * Returns a string representing this color according to the CSS Object Model specification,
-     * such as rgb(247, 234, 186) or rgba(247, 234, 186, 0.2).
-     * If this color is not displayable, a suitable displayable color is returned instead.
-     * For example, RGB channel values greater than 255 are clamped to 255.
-     */
-    toString(): string; // Note: While this method is used in prototyping for colors of specific colorspaces, it should not be called directly, as 'this.rgb' would not be implemented on Color
-    /**
-     * Returns a hexadecimal string representing this color in RGB space, such as #f7eaba.
-     * If this color is not displayable, a suitable displayable color is returned instead.
-     * For example, RGB channel values greater than 255 are clamped to 255.
-     */
-    formatHex(): string;
-    /**
-     * Returns a hexadecimal string representing this color in RGBA space, such as #f7eaba90.
-     * If this color is not displayable, a suitable displayable color is returned instead.
-     * For example, RGB channel values greater than 255 are clamped to 255.
-     */
-    formatHex8(): string;
-    /**
-     * Returns a string representing this color according to the CSS Color Module Level 3 specification, such as hsl(257, 50%, 80%) or hsla(257, 50%, 80%, 0.2).
-     * If this color is not displayable, a suitable displayable color is returned instead by clamping S and L channel values to the interval [0, 100].
-     */
-    formatHsl(): string;
-    /**
-     * Returns a string representing this color according to the CSS Object Model specification, such as rgb(247, 234, 186) or rgba(247, 234, 186, 0.2).
-     * If this color is not displayable, a suitable displayable color is returned instead by clamping RGB channel values to the interval [0, 255].
-     */
-    formatRgb(): string;
-    /**
-     * @deprecated Use color.formatHex.
-     */
-    hex(): string;
-}
-
-/**
- * A Color factory object, which may also be used with instanceof to test if an object is a color instance.
- */
-export interface ColorFactory extends Function {
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an RGB or HSL color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): RGBColor | HSLColor | null;
-    /**
-     * Converts the provided color instance and returns an RGB or HSL color.
-     *
-     * @param color A permissible color space instance.
-     */
-    (color: ColorSpaceObject | ColorCommonInstance): RGBColor | HSLColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: Color;
-}
-
-/**
- * An RGB color object.
- */
-export interface RGBColor extends Color {
-    /**
-     * Value of red channel
-     */
-    r: number;
-    /**
-     * Value of green channel
-     */
-    g: number;
-    /**
-     * Value of blue channel
-     */
-    b: number;
-    /**
-     * Opacity value
-     */
-    opacity: number;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB equivalent of this color.
-     */
-    rgb(): this;
-    /**
-     * Returns a copy of this color.
-     *
-     * @param values If values is specified, any enumerable own properties of values are assigned to the new returned color.
-     */
-    copy(
-        values?: {
-            r?: number | undefined;
-            g?: number | undefined;
-            b?: number | undefined;
-            opacity?: number | undefined;
-        },
-    ): this;
-    /**
-     * Returns a new RGB color where the r, g, and b channels are clamped to the range [0, 255] and rounded to the nearest integer value,
-     * and the opacity is clamped to the range [0, 1].
-     */
-    clamp(): this;
-}
-
-/**
- * An RGB color factory object, which may also be used with instanceof to test if an object
- * is an RGB color instance.
- */
-export interface RGBColorFactory extends Function {
-    /**
-     * Constructs a new RGB color based on the specified channel values and opacity.
-     *
-     * @param r Red channel value.
-     * @param g Green channel value.
-     * @param b Blue channel value.
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (r: number, g: number, b: number, opacity?: number): RGBColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an RGB color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): RGBColor;
-    /**
-     * Converts the provided color instance and returns an RGB color. The color instance is converted to the RGB color space using color.rgb.
-     * Note that unlike color.rgb this method always returns a new instance, even if color is already an RGB color.
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): RGBColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: RGBColor;
-}
-
-/**
- * An HSL color object.
- */
-export interface HSLColor extends Color {
-    /**
-     * Hue channel value.
-     */
-    h: number;
-    /**
-     * Saturation channel value.
-     */
-    s: number;
-    /**
-     * Lightness channel value.
-     */
-    l: number;
-    /**
-     * Opacity value.
-     */
-    opacity: number;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB color equivalent of this color.
-     */
-    rgb(): RGBColor;
-    /**
-     * Returns a copy of this color.
-     *
-     * @param values If values is specified, any enumerable own properties of values are assigned to the new returned color.
-     */
-    copy(
-        values?: {
-            h?: number | undefined;
-            s?: number | undefined;
-            l?: number | undefined;
-            opacity?: number | undefined;
-        },
-    ): this;
-    /**
-     * Returns a new HSL color where the h channel is clamped to the range [0, 360), and the s, l, and opacity channels are clamped to the range [0, 1].
-     */
-    clamp(): this;
-}
-
-/**
- * An HSL color factory object, which may also be used with instanceof to test if an object
- * is an HSL color instance.
- */
-export interface HSLColorFactory extends Function {
-    /**
-     * Constructs a new HSL color based on the specified channel values and opacity.
-     *
-     * @param h Hue channel value.
-     * @param s Saturation channel value.
-     * @param l Lightness channel value.
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (h: number, s: number, l: number, opacity?: number): HSLColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an HSL color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): HSLColor;
-    /**
-     * Converts the provided color instance and returns an HSL color.
-     * The color instance is converted to the RGB color space using color.rgb and then converted to HSL.
-     * (Colors already in the HSL color space skip the conversion to RGB.)
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): HSLColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: HSLColor;
-}
-
-/**
- * A Lab (CIELAB) color object.
- */
-export interface LabColor extends Color {
-    /**
-     * Lightness typically in the range [0, 100].
-     */
-    l: number;
-    /**
-     * Position between red/magenta and green typically in [-160, +160].
-     */
-    a: number;
-    /**
-     * Position between yellow and blue typically in [-160, +160].
-     */
-    b: number;
-    /**
-     * Opacity value
-     */
-    opacity: number;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB color equivalent of this color.
-     */
-    rgb(): RGBColor;
-    /**
-     * Returns a copy of this color.
-     *
-     * @param values If values is specified, any enumerable own properties of values are assigned to the new returned color.
-     */
-    copy(
-        values?: {
-            l?: number | undefined;
-            a?: number | undefined;
-            b?: number | undefined;
-            opacity?: number | undefined;
-        },
-    ): this;
-}
-
-/**
- * A Lab (CIELAB) color factory object, which may also be used with instanceof to test if an object
- * is a Lab color instance.
- */
-export interface LabColorFactory extends Function {
-    /**
-     * Constructs a new CIELAB color based on the specified channel values and opacity.
-     *
-     * @param l Lightness typically in the range [0, 100].
-     * @param a Position between red/magenta and green typically in [-160, +160].
-     * @param b Position between yellow and blue typically in [-160, +160].
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (l: number, a: number, b: number, opacity?: number): LabColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning a Lab color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): LabColor;
-    /**
-     * Converts the provided color instance and returns a Lab color.
-     * The color instance is converted to the RGB color space using color.rgb and then converted to CIELAB.
-     * (Colors already in the Lab color space skip the conversion to RGB,
-     * and colors in the HCL color space are converted directly to CIELAB.)
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): LabColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: LabColor;
-}
-
-/**
- * A gray color factory for Lab (CIELAB) colors.
- */
-export type GrayColorFactory =
-    /**
-     * Constructs a new CIELAB color with the specified l value and a = b = 0.
-     *
-     * @param l Lightness typically in the range [0, 100].
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (l: number, opacity?: number) => LabColor;
-
-/**
- * An HCL (CIELCH) color object.
- */
-export interface HCLColor extends Color {
-    /**
-     * Hue channel value typically in [0, 360).
-     */
-    h: number;
-    /**
-     * Chroma channel value typically in [0, 230].
-     */
-    c: number;
-    /**
-     * Luminance channel value typically in the range [0, 100].
-     */
-    l: number;
-    /**
-     * Opacity value
-     */
-    opacity: number;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB color equivalent of this color.
-     */
-    rgb(): RGBColor;
-    /**
-     * Returns a copy of this color.
-     *
-     * @param values If values is specified, any enumerable own properties of values are assigned to the new returned color.
-     */
-    copy(
-        values?: {
-            h?: number | undefined;
-            c?: number | undefined;
-            l?: number | undefined;
-            opacity?: number | undefined;
-        },
-    ): this;
-}
-
-/**
- * An HCL (CIELCH) color factory object, which may also be used with instanceof to test if an object
- * is an HCL color instance.
- */
-export interface HCLColorFactory extends Function {
-    /**
-     * Constructs a new HCL color based on the specified channel values and opacity.
-     *
-     * @param h Hue channel value typically in [0, 360).
-     * @param c Chroma channel value typically in [0, 230].
-     * @param l Luminance channel value typically in the range [0, 100].
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (h: number, c: number, l: number, opacity?: number): HCLColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an HCL color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): HCLColor;
-    /**
-     * Converts the provided color instance and returns an HCL color.
-     * The color instance is converted to the RGB color space using color.rgb and then converted to HCL.
-     * (Colors already in the HCL color space skip the conversion to RGB,
-     * and colors in the Lab color space are converted directly to HCL.)
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): HCLColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: HCLColor;
-}
-
-/**
- * An LCH (CIELCH) color factory function to create an HCL color object.
- */
-export interface LCHColorFactory {
-    /**
-     * Constructs a new HCL color based on the specified channel values and opacity.
-     *
-     * @param l Luminance channel value typically in the range [0, 100].
-     * @param c Chroma channel value typically in [0, 230].
-     * @param h Hue channel value typically in [0, 360).
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (l: number, c: number, h: number, opacity?: number): HCLColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an HCL color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): HCLColor;
-    /**
-     * Converts the provided color instance and returns an HCL color.
-     * The color instance is converted to the RGB color space using color.rgb and then converted to HCL.
-     * (Colors already in the HCL color space skip the conversion to RGB,
-     * and colors in the Lab color space are converted directly to HCL.)
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): HCLColor;
-}
-
-/**
- * Dave Green’s Cubehelix color object.
- */
-export interface CubehelixColor extends Color {
-    /**
-     * Hue channel value.
-     */
-    h: number;
-    /**
-     * Saturation channel value.
-     */
-    s: number;
-    /**
-     * Lightness channel value.
-     */
-    l: number;
-    /**
-     * Opacity value.
-     */
-    opacity: number;
-    /**
-     * Returns a brighter copy of this color. If k is specified, it controls how much brighter the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much brighter the returned color should be.
-     */
-    brighter(k?: number): this;
-    /**
-     * Returns a darker copy of this color. If k is specified, it controls how much darker the returned color should be.
-     * If k is not specified, it defaults to 1.
-     *
-     * @param k A color space dependent number to determine, how much darker the returned color should be.
-     */
-    darker(k?: number): this;
-    /**
-     * Returns the RGB color equivalent of this color.
-     */
-    rgb(): RGBColor;
-    /**
-     * Returns a copy of this color.
-     *
-     * @param values If values is specified, any enumerable own properties of values are assigned to the new returned color.
-     */
-    copy(
-        values?: {
-            h?: number | undefined;
-            s?: number | undefined;
-            l?: number | undefined;
-            opacity?: number | undefined;
-        },
-    ): this;
-}
-
-/**
- * A color factory object for Dave Green's Cubehelix colors, which may also be used with instanceof to test if an object
- * is a Cubehelix color instance.
- */
-export interface CubehelixColorFactory extends Function {
-    /**
-     * Constructs a new Cubehelix color based on the specified channel values and opacity.
-     *
-     * @param h Hue channel value.
-     * @param s Saturation channel value.
-     * @param l Lightness channel value.
-     * @param opacity Optional opacity value, defaults to 1.
-     */
-    (h: number, s: number, l: number, opacity?: number): CubehelixColor;
-    /**
-     * Parses the specified CSS Color Module Level 3 specifier string, returning an Cubehelix color.
-     * If the specifier was not valid, null is returned.
-     *
-     * @param cssColorSpecifier A CSS Color Module Level 3 specifier string.
-     */
-    (cssColorSpecifier: string): CubehelixColor;
-    /**
-     * Converts the provided color instance and returns a Cubehelix color.
-     * The color instance is specified, it is converted to the RGB color space using color.rgb and then converted to Cubehelix.
-     * (Colors already in the Cubehelix color space skip the conversion to RGB.)
-     *
-     * @param color A permissible color space instance.
-     */
-    // tslint:disable-next-line:unified-signatures
-    (color: ColorSpaceObject | ColorCommonInstance): CubehelixColor;
-    /**
-     * Prototype of the factory, which can be used for instanceof testing
-     */
-    readonly prototype: CubehelixColor;
-}
-
-// --------------------------------------------------------------------------
-// Color object factories
-// --------------------------------------------------------------------------
-
-/**
- * A Color factory object, which may also be used with instanceof to test if an object is a color instance.
- */
-export const color: ColorFactory;
-
-/**
- * An RGB color factory object, which may also be used with instanceof to test if an object
- * is an RGB color instance.
- */
-export const rgb: RGBColorFactory;
-
-/**
- * An HSL color factory object, which may also be used with instanceof to test if an object
- * is an HSL color instance.
- */
-export const hsl: HSLColorFactory;
-
-/**
- * A Lab (CIELAB) color factory object, which may also be used with instanceof to test if an object
- * is a Lab color instance.
- */
-export const lab: LabColorFactory;
-
-/**
- * A gray color factory for Lab (CIELAB) colors.
- */
-export const gray: GrayColorFactory;
-
-/**
- * An HCL (CIELCH) color factory object, which may also be used with instanceof to test if an object
- * is an HCL color instance.
- */
-export const hcl: HCLColorFactory;
-
-/**
- * An LCH (CIELCH) color factory function to create an HCL color object.
- */
-export const lch: LCHColorFactory;
-
-/**
- * A color factory object for Dave Green's Cubehelix colors, which may also be used with instanceof to test if an object
- * is a Cubehelix color instance.
- */
-export const cubehelix: CubehelixColorFactory;
Index: de_modules/@types/d3-color/package.json
===================================================================
--- node_modules/@types/d3-color/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-{
-    "name": "@types/d3-color",
-    "version": "3.1.3",
-    "description": "TypeScript definitions for d3-color",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-color",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Hugues Stefanski",
-            "githubUsername": "ledragon",
-            "url": "https://github.com/ledragon"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        },
-        {
-            "name": "Fil",
-            "githubUsername": "Fil",
-            "url": "https://github.com/Fil"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-color"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "89cf9357324cddaa31cfb539b1c33d118648ed55319f2a0d26f24b004975a947",
-    "typeScriptVersion": "4.5"
-}
Index: de_modules/@types/d3-ease/LICENSE
===================================================================
--- node_modules/@types/d3-ease/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-ease/README.md
===================================================================
--- node_modules/@types/d3-ease/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-ease`
-
-# Summary
-This package contains type definitions for d3-ease (https://github.com/d3/d3-ease/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-ease.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 15:11:36 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-ease/index.d.ts
===================================================================
--- node_modules/@types/d3-ease/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,316 +1,0 @@
-// Last module patch version validated against: 3.0.1
-
-// --------------------------------------------------------------------------
-// Easing Functions
-// --------------------------------------------------------------------------
-
-/**
- * Linear easing; the identity function; linear(t) returns t.
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeLinear(normalizedTime: number): number;
-
-/**
- * Symmetric quadratic easing; scales quadIn for t in [0, 0.5] and quadOut for t in [0.5, 1]. Also equivalent to poly.exponent(2).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeQuad(normalizedTime: number): number;
-
-/**
- * Quadratic easing; equivalent to polyIn.exponent(2).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeQuadIn(normalizedTime: number): number;
-
-/**
- * Reverse quadratic easing; equivalent to 1 - quadIn(1 - t). Also equivalent to polyOut.exponent(2).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeQuadOut(normalizedTime: number): number;
-
-/**
- * Symmetric quadratic easing; scales quadIn for t in [0, 0.5] and quadOut for t in [0.5, 1]. Also equivalent to poly.exponent(2).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeQuadInOut(normalizedTime: number): number;
-
-/**
- * Symmetric cubic easing; scales cubicIn for t in [0, 0.5] and cubicOut for t in [0.5, 1]. Also equivalent to poly.exponent(3).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCubic(normalizedTime: number): number;
-
-/**
- * Cubic easing; equivalent to polyIn.exponent(3).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCubicIn(normalizedTime: number): number;
-
-/**
- * Reverse cubic easing; equivalent to 1 - cubicIn(1 - t). Also equivalent to polyOut.exponent(3).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCubicOut(normalizedTime: number): number;
-
-/**
- * Symmetric cubic easing; scales cubicIn for t in [0, 0.5] and cubicOut for t in [0.5, 1]. Also equivalent to poly.exponent(3).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCubicInOut(normalizedTime: number): number;
-
-/**
- * Polynomial easing function factory
- */
-export interface PolynomialEasingFactory {
-    /**
-     * Calculate eased time.
-     * @param normalizedTime Normalized time typically in the range [0, 1]
-     */
-    (normalizedTime: number): number;
-    /**
-     * Returns a new polynomial easing with the specified exponent e.
-     * If the exponent is not specified, it defaults to 3, equivalent to cubic.
-     *
-     * @param e Exponent for polynomial easing.
-     */
-    exponent(e: number): PolynomialEasingFactory;
-}
-
-/**
- * Symmetric polynomial easing/easing factory; scales polyIn for t in [0, 0.5] and polyOut for t in [0.5, 1].
- * If the exponent is not specified, it defaults to 3, equivalent to cubic.
- */
-export const easePoly: PolynomialEasingFactory;
-/**
- * Polynomial easing/easing factory; raises t to the specified exponent.
- * If the exponent is not specified, it defaults to 3, equivalent to cubicIn.
- */
-export const easePolyIn: PolynomialEasingFactory;
-
-/**
- * Reverse polynomial easing/easing factory; equivalent to 1 - polyIn(1 - t).
- * If the exponent is not specified, it defaults to 3, equivalent to cubicOut.
- */
-export const easePolyOut: PolynomialEasingFactory;
-
-/**
- * Symmetric polynomial easing/easing factory; scales polyIn for t in [0, 0.5] and polyOut for t in [0.5, 1].
- * If the exponent is not specified, it defaults to 3, equivalent to cubic.
- */
-export const easePolyInOut: PolynomialEasingFactory;
-
-/**
- * Symmetric sinusoidal easing; scales sinIn for t in [0, 0.5] and sinOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeSin(normalizedTime: number): number;
-
-/**
- * Sinusoidal easing; returns sin(t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeSinIn(normalizedTime: number): number;
-
-/**
- * Reverse sinusoidal easing; equivalent to 1 - sinIn(1 - t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeSinOut(normalizedTime: number): number;
-
-/**
- * Symmetric sinusoidal easing; scales sinIn for t in [0, 0.5] and sinOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeSinInOut(normalizedTime: number): number;
-
-/**
- * Symmetric exponential easing; scales expIn for t in [0, 0.5] and expOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeExp(normalizedTime: number): number;
-
-/**
- * Exponential easing; raises 2 to the exponent 10 * (t - 1).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeExpIn(normalizedTime: number): number;
-
-/**
- * Reverse exponential easing; equivalent to 1 - expIn(1 - t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeExpOut(normalizedTime: number): number;
-
-/**
- * Symmetric exponential easing; scales expIn for t in [0, 0.5] and expOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeExpInOut(normalizedTime: number): number;
-
-/**
- * Symmetric circular easing; scales circleIn for t in [0, 0.5] and circleOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCircle(normalizedTime: number): number;
-
-/**
- * Circular easing.
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCircleIn(normalizedTime: number): number;
-
-/**
- * Reverse circular easing; equivalent to 1 - circleIn(1 - t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCircleOut(normalizedTime: number): number;
-
-/**
- * Symmetric circular easing; scales circleIn for t in [0, 0.5] and circleOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeCircleInOut(normalizedTime: number): number;
-
-/**
- * Reverse bounce easing; equivalent to 1 - bounceIn(1 - t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeBounce(normalizedTime: number): number;
-
-/**
- * Bounce easing, like a rubber ball.
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeBounceIn(normalizedTime: number): number;
-
-/**
- * Reverse bounce easing; equivalent to 1 - bounceIn(1 - t).
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeBounceOut(normalizedTime: number): number;
-
-/**
- * Symmetric bounce easing; scales bounceIn for t in [0, 0.5] and bounceOut for t in [0.5, 1].
- *
- * @param normalizedTime Normalized time typically in the range [0, 1]
- */
-export function easeBounceInOut(normalizedTime: number): number;
-
-/**
- * Anticipatory easing function factory
- */
-export interface BackEasingFactory {
-    /**
-     * Calculate eased time.
-     * @param normalizedTime Normalized time typically in the range [0, 1]
-     */
-    (normalizedTime: number): number;
-    /**
-     * Returns a new back easing with the specified overshoot s.
-     * The degree of overshoot is configurable; if not specified, it defaults to 1.70158.
-     *
-     * @param s Overshoot parameter
-     */
-    overshoot(s: number): BackEasingFactory;
-}
-
-/**
- * Symmetric anticipatory easing; scales backIn for t in [0, 0.5] and backOut for t in [0.5, 1].
- * The degree of overshoot is configurable; it not specified, it defaults to 1.70158.
- */
-export const easeBack: BackEasingFactory;
-
-/**
- * Anticipatory easing, like a dancer bending their knees before jumping off the floor.
- * The degree of overshoot is configurable; it not specified, it defaults to 1.70158.
- */
-export const easeBackIn: BackEasingFactory;
-
-/**
- * Reverse anticipatory easing; equivalent to 1 - backIn(1 - t).
- * The degree of overshoot is configurable; it not specified, it defaults to 1.70158.
- */
-export const easeBackOut: BackEasingFactory;
-
-/**
- * Symmetric anticipatory easing; scales backIn for t in [0, 0.5] and backOut for t in [0.5, 1].
- * The degree of overshoot is configurable; it not specified, it defaults to 1.70158.
- */
-export const easeBackInOut: BackEasingFactory;
-
-/**
- * Elastic easing function factory
- */
-export interface ElasticEasingFactory {
-    /**
-     * Calculate eased time.
-     * @param normalizedTime Normalized time typically in the range [0, 1]
-     */
-    (normalizedTime: number): number;
-    /**
-     * Returns a new elastic easing with the specified amplitude a.
-     * Defaults to 1,if not specified.
-     *
-     * @param a Amplitude for elastic easing.
-     */
-    amplitude(a: number): ElasticEasingFactory;
-    /**
-     * Returns a new elastic easing with the specified amplitude a.
-     * Defaults to 0.3,if not specified.
-     *
-     * @param p Period for elastic easing.
-     */
-    period(p: number): ElasticEasingFactory;
-}
-
-/**
- * Reverse elastic easing; equivalent to 1 - elasticIn(1 - t).
- * The amplitude and period of the oscillation are configurable;
- * if not specified, they default to 1 and 0.3, respectively.
- */
-export const easeElastic: ElasticEasingFactory;
-
-/**
- * Elastic easing, like a rubber band.
- * The amplitude and period of the oscillation are configurable;
- * if not specified, they default to 1 and 0.3, respectively.
- */
-export const easeElasticIn: ElasticEasingFactory;
-
-/**
- * Reverse elastic easing; equivalent to 1 - elasticIn(1 - t).
- * The amplitude and period of the oscillation are configurable;
- * if not specified, they default to 1 and 0.3, respectively.
- */
-export const easeElasticOut: ElasticEasingFactory;
-
-/**
- * Symmetric elastic easing; scales elasticIn for t in [0, 0.5] and elasticOut for t in [0.5, 1].
- * The amplitude and period of the oscillation are configurable;
- * if not specified, they default to 1 and 0.3, respectively.
- */
-export const easeElasticInOut: ElasticEasingFactory;
Index: de_modules/@types/d3-ease/package.json
===================================================================
--- node_modules/@types/d3-ease/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-{
-    "name": "@types/d3-ease",
-    "version": "3.0.2",
-    "description": "TypeScript definitions for d3-ease",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-ease",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-ease"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "2995c518f8de4fa6f2abb2f13065cb4fe65acaea9422f9883b24414ef50cd1ab",
-    "typeScriptVersion": "4.5"
-}
Index: de_modules/@types/d3-interpolate/LICENSE
===================================================================
--- node_modules/@types/d3-interpolate/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-interpolate/README.md
===================================================================
--- node_modules/@types/d3-interpolate/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-interpolate`
-
-# Summary
-This package contains type definitions for d3-interpolate (https://github.com/d3/d3-interpolate/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-interpolate.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 15:11:37 GMT
- * Dependencies: [@types/d3-color](https://npmjs.com/package/@types/d3-color)
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-interpolate/index.d.ts
===================================================================
--- node_modules/@types/d3-interpolate/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,387 +1,0 @@
-// Last module patch version validated against: 3.0.1
-
-import { ColorCommonInstance } from "d3-color";
-
-// ---------------------------------------------------------------------------
-// Shared Type Definitions and Interfaces
-// ---------------------------------------------------------------------------
-
-export interface ZoomInterpolator extends Function {
-    (t: number): ZoomView;
-    /**
-     * Recommended duration of zoom transition in milliseconds.
-     */
-    duration: number;
-
-    /**
-     * Given a zoom interpolator, returns a new zoom interpolator using the specified curvature rho.
-     * When rho is close to 0, the interpolator is almost linear.
-     * The default curvature is sqrt(2).
-     * @param rho
-     */
-    rho(rho: number): this;
-}
-
-export interface ColorGammaInterpolationFactory extends Function {
-    (a: string | ColorCommonInstance, b: string | ColorCommonInstance): (t: number) => string;
-    /**
-     * Returns a new interpolator factory of the same type using the specified *gamma*.
-     * For example, to interpolate from purple to orange with a gamma of 2.2 in RGB space: `d3.interpolateRgb.gamma(2.2)("purple", "orange")`.
-     * See Eric Brasseur’s article, [Gamma error in picture scaling](https://web.archive.org/web/20160112115812/http://www.4p8.com/eric.brasseur/gamma.html), for more on gamma correction.
-     */
-    gamma(g: number): ColorGammaInterpolationFactory;
-}
-
-/**
- * Type zoomView is used to represent a numeric array with three elements.
- * In order of appearance the elements correspond to:
- * - cx: *x*-coordinate of the center of the viewport
- * - cy: *y*-coordinate of the center of the viewport
- * - width: size of the viewport
- */
-export type ZoomView = [number, number, number];
-
-export type TypedArray =
-    | Int8Array
-    | Uint8Array
-    | Int16Array
-    | Uint16Array
-    | Int32Array
-    | Uint32Array
-    | Uint8ClampedArray
-    | Float32Array
-    | Float64Array;
-
-export type NumberArray = TypedArray | DataView;
-
-// ---------------------------------------------------------------------------
-// Interpolation Function Factories
-// ---------------------------------------------------------------------------
-
-/**
- * Returns an `null` constant interpolator.
- */
-export function interpolate(a: any, b: null): (t: number) => null;
-/**
- * Returns an boolean constant interpolator of value `b`.
- */
-export function interpolate(a: any, b: boolean): (t: number) => boolean;
-/**
- * Returns a `interpolateRgb` interpolator.
- */
-export function interpolate(a: string | ColorCommonInstance, b: ColorCommonInstance): (t: number) => string;
-/**
- * Returns a `interpolateDate` interpolator.
- */
-export function interpolate(a: Date, b: Date): (t: number) => Date;
-/**
- * Returns a `interpolateNumber` interpolator.
- */
-export function interpolate(
-    a: number | { valueOf(): number },
-    b: number | { valueOf(): number },
-): (t: number) => number;
-/**
- * Returns a `interpolateNumberArray` interpolator.
- */
-export function interpolate<T extends NumberArray>(a: NumberArray | number[], b: T): (t: number) => T;
-/**
- * Returns a `interpolateString` interpolator. If `b` is a string coercible to a color use use `interpolateRgb`.
- */
-export function interpolate(a: string | { toString(): string }, b: string): (t: number) => string;
-/**
- * Returns a `interpolateArray` interpolator.
- */
-export function interpolate<U extends any[]>(a: any[], b: U): (t: number) => U;
-/**
- * Returns a `interpolateObject` interpolator.
- */
-export function interpolate<U extends object>(a: any, b: U): (t: number) => U;
-
-/**
- * Returns an interpolator between the two numbers `a` and `b`.
- * The returned interpolator is equivalent to: `(t) => a * (1 - t) + b * t`.
- */
-export function interpolateNumber(
-    a: number | { valueOf(): number },
-    b: number | { valueOf(): number },
-): (t: number) => number;
-
-/**
- * Returns an interpolator between the two numbers `a` and `b`; the interpolator is similar to `interpolateNumber`,
- * except it will round the resulting value to the nearest integer.
- */
-export function interpolateRound(
-    a: number | { valueOf(): number },
-    b: number | { valueOf(): number },
-): (t: number) => number;
-
-/**
- * Returns an interpolator between the two strings `a` and `b`.
- * The string interpolator finds numbers embedded in `a` and `b`, where each number is of the form understood by JavaScript.
- * A few examples of numbers that will be detected within a string: `-1`, `42`, `3.14159`, and `6.0221413e+23`.
- *
- * For each number embedded in `b`, the interpolator will attempt to find a corresponding number in `a`.
- * If a corresponding number is found, a numeric interpolator is created using `interpolateNumber`.
- * The remaining parts of the string `b` are used as a template.
- *
- * For example, if `a` is `"300 12px sans-serif"`, and `b` is `"500 36px Comic-Sans"`, two embedded numbers are found.
- * The remaining static parts (of string `b`) are a space between the two numbers (`" "`), and the suffix (`"px Comic-Sans"`).
- * The result of the interpolator at `t` = 0.5 is `"400 24px Comic-Sans"`.
- */
-export function interpolateString(
-    a: string | { toString(): string },
-    b: string | { toString(): string },
-): (t: number) => string;
-
-/**
- * Returns an interpolator between the two dates `a` and `b`.
- *
- * Note: *no defensive copy* of the returned date is created; the same Date instance is returned for every evaluation of the interpolator.
- * No copy is made for performance reasons; interpolators are often part of the inner loop of animated transitions.
- */
-export function interpolateDate(a: Date, b: Date): (t: number) => Date;
-
-export type ArrayInterpolator<A extends any[]> = (t: number) => A;
-
-/**
- * Returns an interpolator between the two arrays `a` and `b`. Internally, an array template is created that is the same length in `b`.
- * For each element in `b`, if there exists a corresponding element in `a`, a generic interpolator is created for the two elements using `interpolate`.
- * If there is no such element, the static value from `b` is used in the template.
- * Then, for the given parameter `t`, the template’s embedded interpolators are evaluated. The updated array template is then returned.
- *
- * For example, if `a` is the array `[0, 1]` and `b` is the array `[1, 10, 100]`, then the result of the interpolator for `t = 0.5` is the array `[0.5, 5.5, 100]`.
- *
- * Note: *no defensive copy* of the template array is created; modifications of the returned array may adversely affect subsequent evaluation of the interpolator.
- * No copy is made for performance reasons; interpolators are often part of the inner loop of animated transitions.
- */
-export function interpolateArray<A extends any[]>(a: any[], b: A): ArrayInterpolator<A>;
-/**
- * interpolateNumberArray is called
- */
-export function interpolateArray<T extends NumberArray>(a: NumberArray | number[], b: T): (t: number) => T;
-
-/**
- * Returns an interpolator between the two arrays of numbers a and b.
- * Internally, an array template is created that is the same type and length as b.
- * For each element in b, if there exists a corresponding element in a, the values are directly interpolated in the array template.
- * If there is no such element, the static value from b is copied.
- * The updated array template is then returned.
- *
- * Note: For performance reasons, no defensive copy is made of the template array and the arguments a and b; modifications of these arrays may affect subsequent evaluation of the interpolator.
- */
-export function interpolateNumberArray<T extends NumberArray | number[]>(
-    a: NumberArray | number[],
-    b: T,
-): (t: number) => T;
-
-/**
- * Returns an interpolator between the two objects `a` and `b`. Internally, an object template is created that has the same properties as `b`.
- * For each property in `b`, if there exists a corresponding property in `a`, a generic interpolator is created for the two elements using `interpolate`.
- * If there is no such property, the static value from `b` is used in the template.
- * Then, for the given parameter `t`, the template's embedded interpolators are evaluated and the updated object template is then returned.
- *
- * For example, if `a` is the object `{x: 0, y: 1}` and `b` is the object `{x: 1, y: 10, z: 100}`, the result of the interpolator for `t = 0.5` is the object `{x: 0.5, y: 5.5, z: 100}`.
- *
- * Note: *no defensive copy* of the template object is created; modifications of the returned object may adversely affect subsequent evaluation of the interpolator.
- * No copy is made for performance reasons; interpolators are often part of the inner loop of animated transitions.
- */
-export function interpolateObject<U extends object>(a: any, b: U): (t: number) => U;
-
-/**
- * Returns an interpolator between the two 2D CSS transforms represented by `a` and `b`.
- * Each transform is decomposed to a standard representation of translate, rotate, *x*-skew and scale; these component transformations are then interpolated.
- * This behavior is standardized by CSS: see [matrix decomposition for animation](http://www.w3.org/TR/css3-2d-transforms/#matrix-decomposition).
- */
-export function interpolateTransformCss(a: string, b: string): (t: number) => string;
-
-/**
- * Returns an interpolator between the two 2D SVG transforms represented by `a` and `b`.
- * Each transform is decomposed to a standard representation of translate, rotate, *x*-skew and scale; these component transformations are then interpolated.
- * This behavior is standardized by CSS: see [matrix decomposition for animation](http://www.w3.org/TR/css3-2d-transforms/#matrix-decomposition).
- */
-export function interpolateTransformSvg(a: string, b: string): (t: number) => string;
-
-/**
- * Returns an interpolator between the two views `a` and `b` of a two-dimensional plane,
- * based on [“Smooth and efficient zooming and panning”](http://www.win.tue.nl/~vanwijk/zoompan.pdf).
- * Each view is defined as an array of three numbers: *cx*, *cy* and *width*.
- * The first two coordinates *cx*, *cy* represent the center of the viewport; the last coordinate *width* represents the size of the viewport.
- *
- * The returned interpolator exposes a *duration* property which encodes the recommended transition duration in milliseconds.
- * This duration is based on the path length of the curved trajectory through *x,y* space.
- * If you want to a slower or faster transition, multiply this by an arbitrary scale factor (*V* as described in the original paper).
- */
-export function interpolateZoom(a: ZoomView, b: ZoomView): ZoomInterpolator;
-
-/**
- * Returns a discrete interpolator for the given array of values. The returned interpolator maps `t` in `[0, 1 / n)` to values[0],
- * `t` in `[1 / n, 2 / n)` to `values[1]`, and so on, where `n = values.length`. In effect, this is a lightweight quantize scale with a fixed domain of [0, 1].
- */
-export function interpolateDiscrete<T>(values: T[]): (t: number) => T;
-
-// Sampling ------------------------------------------------------------------
-
-/**
- * Returns `n` uniformly-spaced samples from the specified `interpolator`, where `n` is an integer greater than one.
- * The first sample is always at `t = 0`, and the last sample is always at `t = 1`.
- * This can be useful in generating a fixed number of samples from a given interpolator,
- * such as to derive the range of a [quantize scale](https://github.com/d3/d3-scale#quantize-scales) from a [continuous interpolator](https://github.com/d3/d3-scale#interpolateWarm).
- *
- * Caution: this method will not work with interpolators that do not return defensive copies of their output,
- * such as `d3.interpolateArray`, `d3.interpolateDate` and `d3.interpolateObject`. For those interpolators, you must wrap the interpolator and create a copy for each returned value.
- */
-export function quantize<T>(interpolator: (t: number) => T, n: number): T[];
-
-// Color Spaces
-
-/**
- * Returns an RGB color space interpolator between the two colors `a` and `b` with a configurable gamma. If the gamma is not specified, it defaults to 1.0.
- * The colors `a` and `b` need not be in RGB; they will be converted to RGB using [`d3.rgb`](https://github.com/d3/d3-color#rgb). The return value of the interpolator is an RGB string.
- */
-export const interpolateRgb: ColorGammaInterpolationFactory;
-
-/**
- * Returns a uniform nonrational B-spline interpolator through the specified array of *colors*, which are converted to RGB color space.
- * Implicit control points are generated such that the interpolator returns `colors[0]` at `t = 0` and `colors[colors.length - 1]` at `t = 1`.
- * Opacity interpolation is not currently supported. See also `d3.interpolateBasis`, and see [d3-scale-chromatic](https://github.com/d3/d3-scale-chromatic) for examples.
- */
-export function interpolateRgbBasis(colors: Array<string | ColorCommonInstance>): (t: number) => string;
-
-/**
- * Returns a uniform nonrational B-spline interpolator through the specified array of colors, which are converted to RGB color space.
- * The control points are implicitly repeated such that the resulting spline has cyclical C² continuity when repeated around `t` in [0,1];
- * this is useful, for example, to create cyclical color scales. Opacity interpolation is not currently supported.
- * See also `d3.interpolateBasisClosed, and see [d3-scale-chromatic](https://github.com/d3/d3-scale-chromatic) for examples.
- */
-export function interpolateRgbBasisClosed(colors: Array<string | ColorCommonInstance>): (t: number) => string;
-
-/**
- * Returns an HSL color space interpolator between the two colors *a* and *b*. The colors *a* and *b* need not be in HSL;
- * they will be converted to HSL using `d3.hsl`. If either color’s hue or saturation is NaN, the opposing color’s channel value is used.
- * The shortest path between hues is used. The return value of the interpolator is an RGB string.
- */
-export function interpolateHsl(a: string | ColorCommonInstance, b: string | ColorCommonInstance): (t: number) => string;
-
-/**
- * Like `interpolateHsl`, but does not use the shortest path between hues.
- */
-export function interpolateHslLong(
-    a: string | ColorCommonInstance,
-    b: string | ColorCommonInstance,
-): (t: number) => string;
-
-/**
- * Returns a Lab color space interpolator between the two colors *a* and *b*. The colors *a* and *b* need not be in Lab;
- * they will be converted to Lab using `d3.lab`. The return value of the interpolator is an RGB string.
- */
-export function interpolateLab(a: string | ColorCommonInstance, b: string | ColorCommonInstance): (t: number) => string;
-
-/**
- * Returns an HCL color space interpolator between the two colors `a` and `b`. The colors `a` and `b` need not be in HCL;
- * they will be converted to HCL using `d3.hcl`. If either color’s hue or chroma is NaN, the opposing color’s channel value is used.
- * The shortest path between hues is used. The return value of the interpolator is an RGB string.
- */
-export function interpolateHcl(a: string | ColorCommonInstance, b: string | ColorCommonInstance): (t: number) => string;
-
-/**
- * Like `interpolateHcl`, but does not use the shortest path between hues.
- */
-export function interpolateHclLong(
-    a: string | ColorCommonInstance,
-    b: string | ColorCommonInstance,
-): (t: number) => string;
-
-/**
- * Returns a Cubehelix color space interpolator between the two colors `a` and `b` using a configurable `gamma`.
- * If the gamma is not specified, it defaults to 1.0. The colors `a` and `b` need not be in Cubehelix;
- * they will be converted to Cubehelix using [`d3.cubehelix`](https://github.com/d3/d3-color#cubehelix).
- * If either color’s hue or saturation is NaN, the opposing color’s channel value is used. The shortest path between hues is used. The return value of the interpolator is an RGB string.
- */
-export const interpolateCubehelix: ColorGammaInterpolationFactory;
-
-/**
- * Like `interpolateCubehelix`, but does not use the shortest path between hues.
- */
-export const interpolateCubehelixLong: ColorGammaInterpolationFactory;
-
-/**
- * Returns an interpolator between the two hue angles `a` and `b`. If either hue is NaN, the opposing value is used.
- * The shortest path between hues is used. The return value of the interpolator is a number in `[0, 360)`.
- */
-export function interpolateHue(a: number, b: number): (t: number) => number;
-
-// Splines -------------------------------------------------------------------
-
-/**
- * Returns a uniform nonrational B-spline interpolator through the specified array of `values`, which must be numbers.
- * Implicit control points are generated such that the interpolator returns `values[0]` at `t` = 0 and `values[values.length - 1]` at `t` = 1.
- * See also [`d3.curveBasis`](https://github.com/d3/d3-shape#curveBasis).
- */
-export function interpolateBasis(splineNodes: number[]): (t: number) => number;
-
-/**
- * Returns a uniform nonrational B-spline interpolator through the specified array of `values`, which must be numbers.
- * The control points are implicitly repeated such that the resulting one-dimensional spline has cyclical C² continuity when repeated around `t` in [0,1].
- * See also [`d3.curveBasisClosed`](https://github.com/d3/d3-shape#curveBasisClosed).
- */
-export function interpolateBasisClosed(splineNodes: number[]): (t: number) => number;
-
-// Piecewise -----------------------------------------------------------------
-
-/**
- * Returns a piecewise zoom interpolator, composing zoom interpolators for each adjacent pair of zoom view.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through three different zoom views: `d3.piecewise(d3.interpolateZoom, [[0, 0, 1], [0, 0, 10], [0, 0, 15]])`.
- *
- * interpolate defaults to d3.interpolate.
- */
-export function piecewise(values: ZoomView[]): ZoomInterpolator;
-/**
- * Returns a piecewise zoom interpolator, composing zoom interpolators for each adjacent pair of zoom view.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through three different zoom views: `d3.piecewise(d3.interpolateZoom, [[0, 0, 1], [0, 0, 10], [0, 0, 15]])`.
- */
-export function piecewise(
-    interpolate: (a: ZoomView, b: ZoomView) => ZoomInterpolator,
-    values: ZoomView[],
-): ZoomInterpolator;
-
-/**
- * Returns a piecewise array interpolator, composing array interpolators for each adjacent pair of arrays.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through three different arrays: `d3.piecewise(d3.interpolateArray, [[0, 0, 1], [0, 0, 10], [0, 0, 15]])`.
- *
- * interpolate defaults to d3.interpolate.
- */
-export function piecewise<A extends any[]>(values: A[]): ArrayInterpolator<A>;
-/**
- * Returns a piecewise array interpolator, composing array interpolators for each adjacent pair of arrays.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through three different arrays: `d3.piecewise(d3.interpolateArray, [[0, 0, 1], [0, 0, 10], [0, 0, 15]])`.
- */
-export function piecewise<A extends any[]>(
-    interpolate: (a: any[], b: A) => ArrayInterpolator<A>,
-    values: A[],
-): ArrayInterpolator<A>;
-
-/**
- * Returns a piecewise interpolator, composing interpolators for each adjacent pair of values.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through red, green and blue: `d3.piecewise(d3.interpolateRgb.gamma(2.2), ["red", "green", "blue"])`.
- *
- * interpolate defaults to d3.interpolate.
- */
-export function piecewise(values: unknown[]): (t: number) => any;
-/**
- * Returns a piecewise interpolator, composing interpolators for each adjacent pair of values.
- * The returned interpolator maps `t` in `[0, 1 / (n - 1)]` to `interpolate(values[0], values[1])`, `t` in `[1 / (n - 1), 2 / (n - 1)]` to `interpolate(values[1], values[2])`,
- * and so on, where `n = values.length`. In effect, this is a lightweight linear scale.
- * For example, to blend through red, green and blue: `d3.piecewise(d3.interpolateRgb.gamma(2.2), ["red", "green", "blue"])`.
- */
-export function piecewise<TData>(interpolate: (a: TData, b: TData) => unknown, values: TData[]): (t: number) => any;
Index: de_modules/@types/d3-interpolate/package.json
===================================================================
--- node_modules/@types/d3-interpolate/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-{
-    "name": "@types/d3-interpolate",
-    "version": "3.0.4",
-    "description": "TypeScript definitions for d3-interpolate",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-interpolate",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-interpolate"
-    },
-    "scripts": {},
-    "dependencies": {
-        "@types/d3-color": "*"
-    },
-    "typesPublisherContentHash": "d315fc677144695b44f1447ef7429c9ff248886716c2e9f742d031abcb319115",
-    "typeScriptVersion": "4.5"
-}
Index: de_modules/@types/d3-path/LICENSE
===================================================================
--- node_modules/@types/d3-path/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-path/README.md
===================================================================
--- node_modules/@types/d3-path/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-path`
-
-# Summary
-This package contains type definitions for d3-path (https://github.com/d3/d3-path/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-path.
-
-### Additional Details
- * Last updated: Tue, 04 Feb 2025 22:02:37 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-path/index.d.ts
===================================================================
--- node_modules/@types/d3-path/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,108 +1,0 @@
-// Last module patch version validated against: 3.1.0
-
-/**
- * A D3 path serializer implementing CanvasPathMethods
- */
-export interface Path {
-    /**
-     * Move to the specified point ⟨x, y⟩. Equivalent to context.moveTo and SVG’s “moveto” command.
-     *
-     * @param x x-Coordinate of point to move to
-     * @param y y-Coordinate of point to move to
-     */
-    moveTo(x: number, y: number): void;
-
-    /**
-     * Ends the current subpath and causes an automatic straight line to be drawn from the current point to the initial point of the current subpath.
-     * Equivalent to context.closePath and SVG’s “closepath” command.
-     */
-    closePath(): void;
-
-    /**
-     * Draws a straight line from the current point to the specified point ⟨x, y⟩.
-     * Equivalent to context.lineTo and SVG’s “lineto” command.
-     *
-     * @param x x-Coordinate of point to draw the line to
-     * @param y y-Coordinate of point to draw the line to
-     */
-    lineTo(x: number, y: number): void;
-
-    /**
-     * Draws a quadratic Bézier segment from the current point to the specified point ⟨x, y⟩, with the specified control point ⟨cpx, cpy⟩.
-     * Equivalent to context.quadraticCurveTo and SVG’s quadratic Bézier curve commands.
-     *
-     * @param cpx x-Coordinate of the control point for the quadratic Bézier curve
-     * @param cpy y-Coordinate of the control point for the quadratic Bézier curve
-     * @param x x-Coordinate of point to draw the curve to
-     * @param y y-Coordinate of point to draw the curve to
-     */
-    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
-
-    /**
-     * Draws a cubic Bézier segment from the current point to the specified point ⟨x, y⟩, with the specified control points ⟨cpx1, cpy1⟩ and ⟨cpx2, cpy2⟩.
-     * Equivalent to context.bezierCurveTo and SVG’s cubic Bézier curve commands.
-     *
-     * @param cpx1 x-Coordinate of the first control point for the Bézier curve
-     * @param cpy1 y-Coordinate of the first control point for the Bézier curve
-     * @param cpx2 x-Coordinate of the second control point for the Bézier curve
-     * @param cpy2 y-Coordinate of the second control point for the Bézier curve
-     * @param x x-Coordinate of point to draw the curve to
-     * @param y y-Coordinate of point to draw the curve to
-     */
-    bezierCurveTo(cpx1: number, cpy1: number, cpx2: number, cpy2: number, x: number, y: number): void;
-
-    /**
-     * Draws a circular arc segment with the specified radius that starts tangent to the line between the current point and the specified point ⟨x1, y1⟩
-     * and ends tangent to the line between the specified points ⟨x1, y1⟩ and ⟨x2, y2⟩. If the first tangent point is not equal to the current point,
-     * a straight line is drawn between the current point and the first tangent point. Equivalent to context.arcTo and uses SVG’s elliptical arc curve commands.
-     *
-     * @param x1 x-Coordinate of the first tangent point
-     * @param y1 y-Coordinate of the first tangent point
-     * @param x2 x-Coordinate of the second tangent point
-     * @param y2 y-Coordinate of the second tangent point
-     * @param radius  Radius of the arc segment
-     */
-    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
-
-    /**
-     * Draws a circular arc segment with the specified center ⟨x, y⟩, radius, startAngle and endAngle. If anticlockwise is true,
-     * the arc is drawn in the anticlockwise direction; otherwise, it is drawn in the clockwise direction.
-     * If the current point is not equal to the starting point of the arc, a straight line is drawn from the current point to the start of the arc.
-     * Equivalent to context.arc and uses SVG’s elliptical arc curve commands.
-     *
-     * @param x x-Coordinate of the center point of the arc segment
-     * @param y y-Coordinate of the center point of the arc segment
-     * @param radius Radius of the arc segment
-     * @param startAngle Start angle of arc segment
-     * @param endAngle End angle of arc segment
-     * @param anticlockwise Flag indicating directionality (true = anti-clockwise, false = clockwise)
-     */
-    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
-
-    /**
-     * Creates a new subpath containing just the four points ⟨x, y⟩, ⟨x + w, y⟩, ⟨x + w, y + h⟩, ⟨x, y + h⟩,
-     * with those four points connected by straight lines, and then marks the subpath as closed. Equivalent to context.rect and uses SVG’s “lineto” commands.
-     *
-     * @param x x-Coordinate of starting point for drawing the rectangle
-     * @param y y-Coordinate of starting point for drawing the rectangle
-     * @param w Width of rectangle
-     * @param h Height of rectangle
-     */
-    rect(x: number, y: number, w: number, h: number): void;
-
-    /**
-     * Returns the string representation of this path according to SVG’s path data specification.
-     */
-    toString(): string;
-}
-
-/**
- * Construct a D3 Path serializer
- */
-export function path(): Path;
-
-/**
- * Like {@link path}, except limits the digits after the decimal to the specified number of digits.
- * Useful for reducing the size of generated SVG path data.
- */
-export function pathRound(digits?: number): Path;
Index: de_modules/@types/d3-path/package.json
===================================================================
--- node_modules/@types/d3-path/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-{
-    "name": "@types/d3-path",
-    "version": "3.1.1",
-    "description": "TypeScript definitions for d3-path",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-path",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-path"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "peerDependencies": {},
-    "typesPublisherContentHash": "a49fc946781c1138c0dd932ed2a34ea60587bcc0b39790e4eb9a51cb32aaa90b",
-    "typeScriptVersion": "5.0"
-}
Index: de_modules/@types/d3-scale/LICENSE
===================================================================
--- node_modules/@types/d3-scale/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-scale/README.md
===================================================================
--- node_modules/@types/d3-scale/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-scale`
-
-# Summary
-This package contains type definitions for d3-scale (https://github.com/d3/d3-scale/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-scale.
-
-### Additional Details
- * Last updated: Wed, 05 Feb 2025 00:46:59 GMT
- * Dependencies: [@types/d3-time](https://npmjs.com/package/@types/d3-time)
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), [rulonder](https://github.com/rulonder), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-scale/index.d.ts
===================================================================
--- node_modules/@types/d3-scale/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2669 +1,0 @@
-// Last module patch version validated against: 4.0.2
-
-import { CountableTimeInterval, TimeInterval } from "d3-time";
-
-// -------------------------------------------------------------------------------
-// Shared Types and Interfaces
-// -------------------------------------------------------------------------------
-
-/**
- * An Interpolator factory returns an interpolator function.
- *
- * The first generic corresponds to the data type of the interpolation boundaries.
- * The second generic corresponds to the data type of the return type of the interpolator.
- */
-export interface InterpolatorFactory<T, U> {
-    /**
-     * Construct a new interpolator function, based on the provided interpolation boundaries.
-     *
-     * @param a Start boundary of the interpolation interval.
-     * @param b End boundary of the interpolation interval.
-     */
-    (a: T, b: T): (t: number) => U;
-}
-
-export type NumberValue = number | { valueOf(): number };
-
-export type UnknownReturnType<Unknown, DefaultUnknown> = [Unknown] extends [never] ? DefaultUnknown : Unknown;
-
-/**
- * A helper interface for a continuous scale defined over a numeric domain.
- */
-export interface ScaleContinuousNumeric<Range, Output, Unknown = never> {
-    /**
-     * Given a value from the domain, returns the corresponding value from the range, subject to interpolation, if any.
-     *
-     * If the given value is outside the domain, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the range.
-     *
-     * Note: The interpolation function applied by the scale may change the output type from the range type as part of the interpolation.
-     *
-     * @param value A numeric value from the domain.
-     */
-    (value: NumberValue): Output | Unknown;
-
-    /**
-     * Given a value from the range, returns the corresponding value from the domain. Inversion is useful for interaction,
-     * say to determine the data value corresponding to the position of the mouse.
-     *
-     * If the given value is outside the range, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the domain.
-     *
-     * IMPORTANT: This method is only supported if the range is numeric. If the range is not numeric, returns NaN.
-     *
-     * For a valid value y in the range, continuous(continuous.invert(y)) approximately equals y;
-     * similarly, for a valid value x in the domain, continuous.invert(continuous(x)) approximately equals x.
-     * The scale and its inverse may not be exact due to the limitations of floating point precision.
-     *
-     * @param value A numeric value from the range.
-     */
-    invert(value: NumberValue): number;
-
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): number[];
-    /**
-     * Sets the scale’s domain to the specified array of numbers. The array must contain two or more elements.
-     * If the elements in the given array are not numbers, they will be coerced to numbers
-     *
-     * Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale.
-     *
-     * Internally, a piecewise scale performs a binary search for the range interpolator corresponding to the given domain value.
-     * Thus, the domain must be in ascending or descending order. If the domain and range have different lengths N and M, only the first min(N,M) elements in each are observed.
-     *
-     * @param domain Array of numeric domain values.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns a copy of the scale’s current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the scale’s range to the specified array of values.
-     *
-     * The array must contain two or more elements. Unlike the domain, elements in the given array need not be numbers;
-     * any value that is supported by the underlying interpolator will work, though note that numeric ranges are required for invert.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Sets the scale’s range to the specified array of values while also setting the scale’s interpolator to interpolateRound.
-     *
-     * The rounding interpolator is sometimes useful for avoiding antialiasing artifacts,
-     * though also consider the shape-rendering “crispEdges” styles. Note that this interpolator can only be used with numeric ranges.
-     *
-     * The array must contain two or more elements. Unlike the domain, elements in the given array need not be numbers;
-     * any value that is supported by the underlying interpolator will work, though note that numeric ranges are required for invert.
-     *
-     * @param range Array of range values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns whether or not the scale currently clamps values to within the range.
-     */
-    clamp(): boolean;
-    /**
-     * Enables or disables clamping, respectively. If clamping is disabled and the scale is passed a value outside the domain,
-     * the scale may return a value outside the range through extrapolation.
-     *
-     * If clamping is enabled, the return value of the scale is always within the scale’s range. Clamping similarly applies to the "invert" method.
-     *
-     * @param clamp A flag to enable (true) or disable (false) clamping.
-     */
-    clamp(clamp: boolean): this;
-
-    /**
-     * Returns approximately count representative values from the scale’s domain.
-     *
-     * If count is not specified, it defaults to 10.
-     *
-     * The returned tick values are uniformly spaced, have human-readable values (such as multiples of powers of 10),
-     * and are guaranteed to be within the extent of the domain. Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-     * The specified count is only a hint; the scale may return more or fewer values depending on the domain. See also d3-array’s ticks.
-     *
-     * @param count Optional approximate number of ticks to be returned. If count is not specified, it defaults to 10.
-     */
-    ticks(count?: number): number[];
-
-    /**
-     * Returns a number format function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values.
-     * The specified count should have the same value as the count that is used to generate the tick values.
-     *
-     * @param count Approximate number of ticks to be used when calculating precision for the number format function.
-     * @param specifier An optional valid format specifier string which allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
-     * If specifier uses the format type "s", the scale will return a SI-prefix format based on the largest value in the domain.
-     * If the specifier already specifies a precision, this method is equivalent to locale.format.
-     */
-    tickFormat(count?: number, specifier?: string): (d: NumberValue) => string;
-
-    /**
-     * Extends the domain so that it starts and ends on nice round values.
-     * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.
-     * An optional tick count argument allows greater control over the step size used to extend the bounds,
-     * guaranteeing that the returned ticks will exactly cover the domain.
-     * Nicing is useful if the domain is computed from data, say using extent, and may be irregular.
-     * For example, for a domain of [0.201479…, 0.996679…], a nice domain might be [0.2, 1.0].
-     * If the domain has more than two values, nicing the domain only affects the first and last value.
-     *
-     * Nicing a scale only modifies the current domain; it does not automatically nice domains that are subsequently set using continuous.domain.
-     * You must re-nice the scale after setting the new domain, if desired.
-     *
-     * @param count An optional number of ticks expected to be used.
-     */
-    nice(count?: number): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-/**
- * Returns a number format function suitable for displaying a tick value,
- * automatically computing the appropriate precision based on the fixed interval between tick values, as determined by d3.tickStep.
- *
- * @param start Start
- * @param stop Stop
- * @param count Approximate number of ticks to be used when calculating precision for the number format function.
- * @param specifier An optional specifier allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
- * If specifier uses the format type s, the scale will return a SI-prefix format based on the larger absolute value of start and stop.
- * If the specifier already specifies a precision, this method is equivalent to locale.format.
- */
-export function tickFormat(start: number, stop: number, count: number, specifier?: string): (d: NumberValue) => string;
-
-// -------------------------------------------------------------------------------
-// Linear Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * A linear continuous scale defined over a numeric domain.
- *
- * Continuous scales map a continuous, quantitative input domain to a continuous output range.
- * Each range value y can be expressed as a function of the domain value x: y = mx + b.
- *
- * If the range is also numeric, the mapping may be inverted.
- *
- * Note that the data types of the range and output of the scale must be compatible with the interpolator applied by the scale.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the output elements generated by the scale.
- *
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- */
-export interface ScaleLinear<Range, Output, Unknown = never> extends ScaleContinuousNumeric<Range, Output, Unknown> {
-    /**
-     * Returns the scale’s current interpolator factory, which defaults to interpolate.
-     */
-    interpolate(): InterpolatorFactory<any, any>;
-
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate(interpolate: InterpolatorFactory<Range, Output>): this;
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * The generic "NewOutput" can be used to change the scale to have a different output element type corresponding to the new interpolation factory.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate<NewOutput>(interpolate: InterpolatorFactory<Range, NewOutput>): ScaleLinear<Range, NewOutput, Unknown>;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleLinear<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new continuous scale with the specified range, the default interpolator and clamping disabled.
- * The domain defaults to [0, 1].
- * If range is not specified, it defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleLinear<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleLinear<Range, Output, Unknown>;
-/**
- * Constructs a new continuous scale with the specified domain and range, the default interpolator and clamping disabled.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of numeric domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleLinear<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleLinear<Range, Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Power Scale Factories
-// -------------------------------------------------------------------------------
-
-/**
- * A continuous power scale defined over a numeric domain.
- *
- * Continuous scales map a continuous, quantitative input domain to a continuous output range.
- *
- * Each range value y can be expressed as a function of the domain value x: y = mx^k + b, where k is the exponent value.
- * Power scales also support negative domain values, in which case the input value and the resulting output value are multiplied by -1.
- *
- * If the range is also numeric, the mapping may be inverted.
- *
- * Note that the data types of the range and output of the scale must be compatible with the interpolator applied by the scale.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the output elements generated by the scale.
- *
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- */
-export interface ScalePower<Range, Output, Unknown = never> extends ScaleContinuousNumeric<Range, Output, Unknown> {
-    /**
-     * Returns the scale’s current interpolator factory, which defaults to interpolate.
-     */
-    interpolate(): InterpolatorFactory<any, any>;
-
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate(interpolate: InterpolatorFactory<Range, Output>): this;
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * The generic "NewOutput" can be used to change the scale to have a different output element type corresponding to the new interpolation factory.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate<NewOutput>(interpolate: InterpolatorFactory<Range, NewOutput>): ScalePower<Range, NewOutput, Unknown>;
-
-    /**
-     * If exponent is not specified, returns the current exponent, which defaults to 1.
-     * (Note that this is effectively a linear scale until you set a different exponent.)
-     */
-    exponent(): number;
-    /**
-     * Sets the current exponent to the given numeric value.
-     * (Note that this is effectively a linear scale until you set a different exponent.)
-     */
-    exponent(exponent: number): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScalePower<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new continuous scale with the specified range, the exponent 1, the default interpolator and clamping disabled.
- * The domain defaults to [0, 1].
- * If range is not specified, it defaults to [0, 1].
- * (Note that this is effectively a linear scale until you set a different exponent.)
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scalePow<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScalePower<Range, Output, Unknown>;
-/**
- * Constructs a new continuous scale with the specified domain and range, the exponent 1, the default interpolator and clamping disabled.
- * (Note that this is effectively a linear scale until you set a different exponent.)
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of numeric domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scalePow<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScalePower<Range, Output, Unknown>;
-
-/**
- * Constructs a new continuous power scale with the specified range, the exponent 0.5, the default interpolator and clamping disabled.
- * The domain defaults to [0, 1].
- * If range is not specified, it defaults to [0, 1].
- * This is a convenience method equivalent to d3.scalePow().exponent(0.5).
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSqrt<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScalePower<Range, Output, Unknown>;
-/**
- * Constructs a new continuous power scale with the specified domain and range, the exponent 0.5, the default interpolator and clamping disabled.
- * This is a convenience method equivalent to d3.scalePow().exponent(0.5).
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of numeric domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSqrt<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScalePower<Range, Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Logarithmic Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * A continuous logarithmic scale defined over a numeric domain.
- *
- * Continuous scales map a continuous, quantitative input domain to a continuous output range.
- *
- * The mapping to the range value y can be expressed as a function of the domain value x: y = m log(x) + b.
- *
- * As log(0) = -∞, a log scale domain must be strictly-positive or strictly-negative; the domain must not include or cross zero.
- * A log scale with a positive domain has a well-defined behavior for positive values, and a log scale with a negative domain has a well-defined behavior for negative values.
- * (For a negative domain, input and output values are implicitly multiplied by -1.)
- * The behavior of the scale is undefined if you pass a negative value to a log scale with a positive domain or vice versa.
- *
- * If the range is also numeric, the mapping may be inverted.
- *
- * Note that the data types of the range and output of the scale must be compatible with the interpolator applied by the scale.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the output elements generated by the scale.
- *
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- */
-export interface ScaleLogarithmic<Range, Output, Unknown = never>
-    extends ScaleContinuousNumeric<Range, Output, Unknown>
-{
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): number[];
-    /**
-     * Sets the scale’s domain to the specified array of numbers. The array must contain two or more elements.
-     * If the elements in the given array are not numbers, they will be coerced to numbers
-     *
-     * As log(0) = -∞, a log scale domain must be strictly-positive or strictly-negative; the domain must not include or cross zero.
-     * A log scale with a positive domain has a well-defined behavior for positive values, and a log scale with a negative domain has a well-defined behavior for negative values.
-     * (For a negative domain, input and output values are implicitly multiplied by -1.)
-     * The behavior of the scale is undefined if you pass a negative value to a log scale with a positive domain or vice versa.
-     *
-     * Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale.
-     *
-     * Internally, a piecewise scale performs a binary search for the range interpolator corresponding to the given domain value.
-     * Thus, the domain must be in ascending or descending order. If the domain and range have different lengths N and M, only the first min(N,M) elements in each are observed.
-     *
-     * @param domain Array of numeric domain values.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns the scale’s current interpolator factory, which defaults to interpolate.
-     */
-    interpolate(): InterpolatorFactory<any, any>;
-
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate(interpolate: InterpolatorFactory<Range, Output>): this;
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * The generic "NewOutput" can be used to change the scale to have a different output element type corresponding to the new interpolation factory.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate<NewOutput>(
-        interpolate: InterpolatorFactory<Range, NewOutput>,
-    ): ScaleLogarithmic<Range, NewOutput, Unknown>;
-
-    /**
-     * Returns approximately count representative values from the scale’s domain.
-     *
-     * If count is not specified, it defaults to 10.
-     *
-     * If the base is an integer, the returned ticks are uniformly spaced within each integer power of base; otherwise, one tick per power of base is returned.
-     * The returned ticks are guaranteed to be within the extent of the domain. If the orders of magnitude in the domain is greater than count, then at most one tick per power is returned.
-     * Otherwise, the tick values are unfiltered, but note that you can use log.tickFormat to filter the display of tick labels.
-     *
-     * @param count Optional approximate number of ticks to be returned. If count is not specified, it defaults to 10.
-     */
-    ticks(count?: number): number[];
-
-    /**
-     * Returns a number format function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values.
-     *
-     * The specified count typically has the same value as the count that is used to generate the tick values.
-     * If there are too many ticks, the formatter may return the empty string for some of the tick labels;
-     * however, note that the ticks are still shown.
-     * To disable filtering, specify a count of Infinity. When specifying a count, you may also provide a format specifier or format function.
-     * For example, to get a tick formatter that will display 20 ticks of a currency, say log.tickFormat(20, "$,f").
-     * If the specifier does not have a defined precision, the precision will be set automatically by the scale, returning the appropriate format.
-     * This provides a convenient way of specifying a format whose precision will be automatically set by the scale.
-     *
-     * @param count Approximate number of ticks to be used when calculating precision for the number format function.
-     * @param specifier An optional valid format specifier string which allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
-     * For example, to get a tick formatter that will display 20 ticks of a currency, say log.tickFormat(20, "$,f").
-     * If the specifier does not have a defined precision, the precision will be set automatically by the scale, returning the appropriate format.
-     * This provides a convenient way of specifying a format whose precision will be automatically set by the scale.
-     */
-    tickFormat(count?: number, specifier?: string): (d: NumberValue) => string;
-
-    /**
-     * Extends the domain to integer powers of base. For example, for a domain of [0.201479…, 0.996679…], and base 10, the nice domain is [0.1, 1].
-     * If the domain has more than two values, nicing the domain only affects the first and last value.
-     *
-     * Nicing a scale only modifies the current domain; it does not automatically nice domains that are subsequently set using continuous.domain.
-     * You must re-nice the scale after setting the new domain, if desired.
-     */
-    nice(): this;
-
-    /**
-     * Returns the current base, which defaults to 10.
-     */
-    base(): number;
-    /**
-     * Sets the base for this logarithmic scale to the specified value.
-     */
-    base(base: number): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleLogarithmic<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new continuous scale with the specified range, the base 10, the default interpolator and clamping disabled.
- * The domain defaults to [1, 10].
- * If range is not specified, it defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleLog<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleLogarithmic<Range, Output, Unknown>;
-/**
- * Constructs a new continuous scale with the specified domain and range, the base 10, the default interpolator and clamping disabled.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of numeric domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleLog<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleLogarithmic<Range, Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Symlog Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * A bi-symmetric log transformation for wide-range data by Webber scale defined over a numeric domain.
- *
- * Continuous scales map a continuous, quantitative input domain to a continuous output range.
- *
- * See “A bi-symmetric log transformation for wide-range data” by Webber for more
- *
- * If the range is also numeric, the mapping may be inverted.
- *
- * Note that the data types of the range and output of the scale must be compatible with the interpolator applied by the scale.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the output elements generated by the scale.
- *
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- */
-export interface ScaleSymLog<Range, Output, Unknown = never> extends ScaleContinuousNumeric<Range, Output, Unknown> {
-    /**
-     * Returns a number format function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values.
-     *
-     * The specified count typically has the same value as the count that is used to generate the tick values.
-     * If there are too many ticks, the formatter may return the empty string for some of the tick labels;
-     * however, note that the ticks are still shown.
-     * To disable filtering, specify a count of Infinity. When specifying a count, you may also provide a format specifier or format function.
-     * For example, to get a tick formatter that will display 20 ticks of a currency, say log.tickFormat(20, "$,f").
-     * If the specifier does not have a defined precision, the precision will be set automatically by the scale, returning the appropriate format.
-     * This provides a convenient way of specifying a format whose precision will be automatically set by the scale.
-     *
-     * @param count Approximate number of ticks to be used when calculating precision for the number format function.
-     * @param specifier An optional valid format specifier string which allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
-     * For example, to get a tick formatter that will display 20 ticks of a currency, say log.tickFormat(20, "$,f").
-     * If the specifier does not have a defined precision, the precision will be set automatically by the scale, returning the appropriate format.
-     * This provides a convenient way of specifying a format whose precision will be automatically set by the scale.
-     */
-    tickFormat(count?: number, specifier?: string): (d: NumberValue) => string;
-    /**
-     * Returns the current constant, which defaults to 1.
-     */
-    constant(): number;
-    /**
-     * Sets the symlog constant to the specified number and returns this scale;
-     * otherwise returns the current value of the symlog constant, which defaults to 1. See “A bi-symmetric log transformation for wide-range data” by Webber for more.
-     */
-    constant(constant: number): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleSymLog<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new continuous scale with the specified range, the constant 1, the default interpolator and clamping disabled.
- * The domain defaults to [0, 1].
- * If range is not specified, it defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSymlog<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleSymLog<Range, Output, Unknown>;
-/**
- * Constructs a new continuous scale with the specified domain and range, the constant 1, the default interpolator and clamping disabled.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of numeric domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSymlog<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleSymLog<Range, Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Identity Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Identity scales are a special case of linear scales where the domain and range are identical; the scale and its invert method are thus the identity function.
- * These scales are occasionally useful when working with pixel coordinates, say in conjunction with an axis.
- *
- * The generic corresponds to the data type of the unknown value.
- */
-export interface ScaleIdentity<Unknown = never> {
-    /**
-     * Given a value from the domain, returns the corresponding value from the range, subject to interpolation, if any.
-     *
-     * If the given value is outside the domain, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the range.
-     *
-     * Note: The interpolation function applied by the scale may change the output type from the range type as part of the interpolation.
-     *
-     * @param value A numeric value from the domain.
-     */
-    (value: NumberValue): number | Unknown;
-
-    /**
-     * Given a value from the range, returns the corresponding value from the domain. Inversion is useful for interaction,
-     * say to determine the data value corresponding to the position of the mouse.
-     *
-     * If the given value is outside the range, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the domain.
-     *
-     * IMPORTANT: This method is only supported if the range is numeric. If the range is not numeric, returns NaN.
-     *
-     * For a valid value y in the range, continuous(continuous.invert(y)) approximately equals y;
-     * similarly, for a valid value x in the domain, continuous.invert(continuous(x)) approximately equals x.
-     * The scale and its inverse may not be exact due to the limitations of floating point precision.
-     *
-     * @param value A numeric value from the range.
-     */
-    invert(value: NumberValue): number;
-
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): number[];
-    /**
-     * Sets the scale’s domain to the specified array of numbers. The array must contain two or more elements.
-     * If the elements in the given array are not numbers, they will be coerced to numbers
-     *
-     * Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale.
-     *
-     * Internally, a piecewise scale performs a binary search for the range interpolator corresponding to the given domain value.
-     * Thus, the domain must be in ascending or descending order. If the domain and range have different lengths N and M, only the first min(N,M) elements in each are observed.
-     *
-     * @param domain Array of numeric domain values.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns a copy of the scale’s current range.
-     */
-    range(): number[];
-    /**
-     * Sets the scale’s range to the specified array of values.
-     *
-     * The array must contain two or more elements. Unlike the domain, elements in the given array need not be numbers;
-     * any value that is supported by the underlying interpolator will work, though note that numeric ranges are required for invert.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns approximately count representative values from the scale’s domain.
-     *
-     * If count is not specified, it defaults to 10.
-     *
-     * The returned tick values are uniformly spaced, have human-readable values (such as multiples of powers of 10),
-     * and are guaranteed to be within the extent of the domain. Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-     * The specified count is only a hint; the scale may return more or fewer values depending on the domain. See also d3-array’s ticks.
-     *
-     * @param count Optional approximate number of ticks to be returned. If count is not specified, it defaults to 10.
-     */
-    ticks(count?: number): number[];
-
-    /**
-     * Returns a number format function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values.
-     * The specified count should have the same value as the count that is used to generate the tick values.
-     *
-     * @param count Approximate number of ticks to be used when calculating precision for the number format function.
-     * @param specifier An optional valid format specifier string which allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
-     * If specifier uses the format type "s", the scale will return a SI-prefix format based on the largest value in the domain.
-     * If the specifier already specifies a precision, this method is equivalent to locale.format.
-     */
-    tickFormat(count?: number, specifier?: string): (d: NumberValue) => string;
-
-    /**
-     * Extends the domain so that it starts and ends on nice round values.
-     * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.
-     * An optional tick count argument allows greater control over the step size used to extend the bounds,
-     * guaranteeing that the returned ticks will exactly cover the domain.
-     * Nicing is useful if the domain is computed from data, say using extent, and may be irregular.
-     * For example, for a domain of [0.201479…, 0.996679…], a nice domain might be [0.2, 1.0].
-     * If the domain has more than two values, nicing the domain only affects the first and last value.
-     *
-     * Nicing a scale only modifies the current domain; it does not automatically nice domains that are subsequently set using continuous.domain.
-     * You must re-nice the scale after setting the new domain, if desired.
-     *
-     * @param count An optional number of ticks expected to be used.
-     */
-    nice(count?: number): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleIdentity<NewUnknown>;
-}
-
-/**
- * Constructs a new identity scale with the specified domain and range.
- * If range is not specified, it defaults to [0, 1].
- *
- * The generic corresponds to the data type of the unknown value.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleIdentity<Unknown = never>(range?: Iterable<NumberValue>): ScaleIdentity<Unknown>;
-
-// -------------------------------------------------------------------------------
-// Radial Scale Factory
-// -------------------------------------------------------------------------------
-
-export interface ScaleRadial<Range, Output, Unknown = never> extends ScaleContinuousNumeric<Range, Output, Unknown> {
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleRadial<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new radial scale with the specified range.
- * The domain defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * The range must be set in accordance with the range element type.
- *
- * @param range Iterable of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleRadial<Range = number, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleRadial<Range, Range, Unknown>;
-/**
- * Constructs a new radial scale with the specified domain and range.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * The range must be set in accordance with the range element type.
- *
- * @param domain Iterable of numeric domain values.
- * @param range Iterable of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleRadial<Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleRadial<Range, Range, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Time Scale Factories
-// -------------------------------------------------------------------------------
-
-/**
- * A linear scale defined over a temporal domain.
- *
- * Time scales implement ticks based on calendar intervals, taking the pain out of generating axes for temporal domains.
- *
- * If the range is numeric, the mapping may be inverted to return a date.
- *
- * Note that the data types of the range and output of the scale must be compatible with the interpolator applied by the scale.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the output elements generated by the scale.
- *
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- */
-export interface ScaleTime<Range, Output, Unknown = never> {
-    /**
-     * Given a value from the domain, returns the corresponding value from the range, subject to interpolation, if any.
-     *
-     * If the given value is outside the domain, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the range.
-     *
-     * Note: The interpolation function applied by the scale may change the output type from the range type as part of the interpolation.
-     *
-     * @param value A temporal value from the domain. If the value is not a Date, it will be coerced to Date.
-     */
-    (value: Date | NumberValue): Output | Unknown;
-
-    /**
-     * Given a value from the range, returns the corresponding value from the domain. Inversion is useful for interaction,
-     * say to determine the data value corresponding to the position of the mouse.
-     *
-     * If the given value is outside the range, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the domain.
-     *
-     * IMPORTANT: This method is only supported if the range is numeric. If the range is not numeric, returns Invalid Date.
-     *
-     * For a valid value y in the range, time(time.invert(y)) equals y; similarly, for a valid value x in the domain, time.invert(time(x)) equals x.
-     * The invert method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-     *
-     * @param value A numeric value from the range.
-     */
-    invert(value: NumberValue): Date;
-
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): Date[];
-
-    /**
-     * Sets the scale’s domain to the specified array of temporal domain values. The array must contain two or more elements.
-     * If the elements in the given array are not dates, they will be coerced to dates.
-     *
-     * Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale.
-     *
-     * Internally, a piecewise scale performs a binary search for the range interpolator corresponding to the given domain value.
-     * Thus, the domain must be in ascending or descending order. If the domain and range have different lengths N and M, only the first min(N,M) elements in each are observed.
-     *
-     * @param domain Array of temporal domain values. Numeric values will be coerced to dates.
-     */
-    domain(domain: Iterable<Date | NumberValue>): this;
-
-    /**
-     * Returns a copy of the scale’s current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the scale’s range to the specified array of values.
-     *
-     * The array must contain two or more elements. Unlike the domain, elements in the given array need not be temporal domain values;
-     * any value that is supported by the underlying interpolator will work, though note that numeric ranges are required for invert.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Sets the scale’s range to the specified array of values while also setting the scale’s interpolator to interpolateRound.
-     *
-     * The rounding interpolator is sometimes useful for avoiding antialiasing artifacts,
-     * though also consider the shape-rendering “crispEdges” styles. Note that this interpolator can only be used with numeric ranges.
-     *
-     * The array must contain two or more elements. Unlike the domain, elements in the given array need not be temporal domain values;
-     * any value that is supported by the underlying interpolator will work, though note that numeric ranges are required for invert.
-     *
-     * @param range Array of range values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns whether or not the scale currently clamps values to within the range.
-     */
-    clamp(): boolean;
-    /**
-     * Enables or disables clamping, respectively. If clamping is disabled and the scale is passed a value outside the domain,
-     * the scale may return a value outside the range through extrapolation.
-     *
-     * If clamping is enabled, the return value of the scale is always within the scale’s range. Clamping similarly applies to the "invert" method.
-     *
-     * @param clamp A flag to enable (true) or disable (false) clamping.
-     */
-    clamp(clamp: boolean): this;
-
-    /**
-     * Returns the scale’s current interpolator factory, which defaults to interpolate.
-     */
-    interpolate(): InterpolatorFactory<any, any>;
-
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate(interpolate: InterpolatorFactory<Range, Output>): this;
-    /**
-     * Sets the scale’s range interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range;
-     * these interpolators then map a normalized domain parameter t in [0, 1] to the corresponding value in the range.
-     *
-     * Note: the default interpolator may reuse return values. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place.
-     * If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance);
-     * however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-     *
-     * As part of the interpolation process the interpolated value from the range may be converted to a corresponding output value.
-     *
-     * The generic "NewOutput" can be used to change the scale to have a different output element type corresponding to the new interpolation factory.
-     *
-     * @param interpolate An interpolation factory. The generics for Range and Output of the scale must correspond to the interpolation factory applied to the scale.
-     */
-    interpolate<NewOutput>(interpolate: InterpolatorFactory<Range, NewOutput>): ScaleTime<Range, NewOutput, Unknown>;
-
-    /**
-     * Returns representative dates from the scale’s domain. The returned tick values are uniformly-spaced (mostly),
-     * have sensible values (such as every day at midnight), and are guaranteed to be within the extent of the domain.
-     * Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-     *
-     * An optional count may be specified to affect how many ticks are generated. If count is not specified, it defaults to 10.
-     * The specified count is only a hint; the scale may return more or fewer values depending on the domain.
-     *
-     * @param count Expected number of ticks.
-     */
-    ticks(count?: number): Date[];
-    /**
-     * Returns representative dates from the scale’s domain. The returned tick values are uniformly-spaced (mostly),
-     * have sensible values (such as every day at midnight), and are guaranteed to be within the extent of the domain.
-     * Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-     *
-     * The specified time interval controls the ticks generated and returned. To prune the generated ticks for a given time interval,
-     * use interval.every(...) or interval.filter(...).
-     *
-     * @param interval A time interval to specify the expected ticks.
-     */
-    ticks(interval: TimeInterval): Date[];
-
-    /**
-     * Returns a time format function suitable for displaying tick values.
-     *
-     * The default multi-scale time format chooses a human-readable representation based on the specified date as follows:
-     *
-     *  - %Y - for year boundaries, such as 2011.
-     *  - %B - for month boundaries, such as February.
-     *  - %b %d - for week boundaries, such as Feb 06.
-     *  - %a %d - for day boundaries, such as Mon 07.
-     *  - %I %p - for hour boundaries, such as 01 AM.
-     *  - %I:%M - for minute boundaries, such as 01:23.
-     *  - :%S - for second boundaries, such as :45.
-     *  - .%L - milliseconds for all other times, such as .012.
-     *
-     * Although somewhat unusual, this default behavior has the benefit of providing both local and global context:
-     * for example, formatting a sequence of ticks as [11 PM, Mon 07, 01 AM] reveals information about hours, dates, and day simultaneously,
-     * rather than just the hours [11 PM, 12 AM, 01 AM].
-     *
-     * The specified count is currently ignored, but is accepted for consistency with other scales such as continuous.tickFormat.
-     *
-     * @param count Expected number of ticks. (Currently ignored)
-     * @param specifier An optional valid date format specifier string (see d3-time-format).
-     */
-    tickFormat(count?: number, specifier?: string): (d: Date) => string;
-    /**
-     * Returns a time format function suitable for displaying tick values.
-     *
-     * The specified time interval is currently ignored, but is accepted for consistency with other scales such as continuous.tickFormat.
-     *
-     * @param interval A time interval to specify the expected ticks. (Currently ignored)
-     * @param specifier An optional valid date format specifier string (see d3-time-format).
-     */
-    tickFormat(interval: TimeInterval, specifier?: string): (d: Date) => string;
-
-    /**
-     * Extends the domain so that it starts and ends on nice round values.
-     * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.
-     *
-     * An optional count argument allows greater control over the step size used to extend the bounds, guaranteeing that the returned ticks will exactly cover the domain.
-     *
-     * Nicing is useful if the domain is computed from data, say using extent, and may be irregular.
-     * For example, for a domain of [2009-07-13T00:02, 2009-07-13T23:48], the nice domain is [2009-07-13, 2009-07-14].
-     * If the domain has more than two values, nicing the domain only affects the first and last value.
-     *
-     * @param count Expected number of ticks.
-     */
-    nice(count?: number): this;
-    /**
-     * Extends the domain so that it starts and ends on nice round values.
-     * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.
-     *
-     * A time interval may be specified to explicitly set the ticks.
-     * If an interval is specified, an optional step may also be specified to skip some ticks.
-     * For example, time.nice(d3.timeSecond.every(10)) will extend the domain to an even ten seconds (0, 10, 20, etc.).
-     * See time.ticks and interval.every for further detail.
-     *
-     * Nicing is useful if the domain is computed from data, say using extent, and may be irregular.
-     * For example, for a domain of [2009-07-13T00:02, 2009-07-13T23:48], the nice domain is [2009-07-13, 2009-07-14].
-     * If the domain has more than two values, nicing the domain only affects the first and last value.
-     *
-     * @param interval A time interval to specify the expected ticks.
-     */
-    nice(interval: CountableTimeInterval): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleTime<Range, Output, NewUnknown>;
-}
-
-/**
- * Constructs a new time scale with the specified range, the default interpolator and clamping disabled.
- * The domain defaults to [2000-01-01, 2000-01-02].
- * If range is not specified, it defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleTime<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleTime<Range, Output, Unknown>;
-/**
- * Constructs a new time scale with the specified domain and range, the default interpolator and clamping disabled.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of temporal domain values. Numeric values will be coerced to dates.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleTime<Range, Output = Range, Unknown = never>(
-    domain: Iterable<Date | NumberValue>,
-    range: Iterable<Range>,
-): ScaleTime<Range, Output, Unknown>;
-
-/**
- * Constructs a new time scale using Coordinated Universal Time (UTC) with the specified range, the default interpolator and clamping disabled.
- * The domain defaults to [2000-01-01, 2000-01-02].
- * If range is not specified, it defaults to [0, 1].
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleUtc<Range = number, Output = Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleTime<Range, Output, Unknown>;
-/**
- * Constructs a new time scale using Coordinated Universal Time (UTC) with the specified domain and range, the default interpolator and clamping disabled.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the output elements generated by the scale.
- * The third generic corresponds to the data type of the unknown value.
- *
- * If range element and output element type differ, the interpolator factory used with the scale must match this behavior and
- * convert the interpolated range element to a corresponding output element.
- *
- * The range must be set in accordance with the range element type.
- *
- * The interpolator factory may be set using the interpolate(...) method of the scale.
- *
- * @param domain Array of temporal domain values. Numeric values will be coerced to dates.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleUtc<Range, Output = Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleTime<Range, Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Sequential Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Sequential scales are similar to continuous scales in that they map a continuous, numeric input domain to a continuous output range.
- * However, unlike continuous scales, the input domain and output range of a sequential scale always has exactly two elements,
- * and the output range is typically specified as an interpolator rather than an array of values.
- * These scales do not expose invert and interpolate methods.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- *
- * The second generic corresponds to the data type of the unknown value.
- */
-export interface ScaleSequentialBase<Output, Unknown = never> {
-    /**
-     * Given a value from the domain, returns the corresponding value from the output range, subject to interpolation.
-     *
-     * If the given value is outside the domain, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the range.
-     *
-     * @param value A numeric value from the domain.
-     */
-    (value: NumberValue): Output | Unknown;
-
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): [number, number];
-    /**
-     * Sets the scale’s domain to the specified array of numbers. The array must contain exactly two elements.
-     * If the elements in the given array are not numbers, they will be coerced to numbers
-     *
-     * @param domain A two-element array of numeric domain values.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns whether or not the scale currently clamps values to within the range.
-     */
-    clamp(): boolean;
-    /**
-     * Enables or disables clamping, respectively. If clamping is disabled and the scale is passed a value outside the domain,
-     * the scale may return a value outside the range through extrapolation.
-     *
-     * If clamping is enabled, the return value of the scale is always within the scale’s range. Clamping similarly applies to the "invert" method.
-     *
-     * @param clamp A flag to enable (true) or disable (false) clamping.
-     */
-    clamp(clamp: boolean): this;
-
-    /**
-     * See continuous.range.
-     */
-    range(): [Output, Output];
-    /**
-     * See continuous.range.
-     * The given two-element array is converted to an interpolator function using d3.interpolate.
-     *
-     * @param range Range values.
-     */
-    range(range: Iterable<Output>): this;
-
-    /**
-     * See continuous.rangeRound.
-     * If range is specified, implicitly uses d3.interpolateRound as the interpolator.
-     *
-     * @param range Range values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-export interface ScaleSequential<Output, Unknown = never> extends ScaleSequentialBase<Output, Unknown> {
-    /**
-     * Returns the current interpolator underlying the scale.
-     */
-    interpolator(): (t: number) => Output;
-    /**
-     * Sets the scale’s interpolator to the specified function.
-     *
-     * @param interpolator An interpolator function mapping a value from the [0, 1] interval to an output value.
-     */
-    interpolator(interpolator: (t: number) => Output): this;
-    /**
-     * Sets the scale’s interpolator to the specified function.
-     *
-     * The generic corresponds to a the new output type of the scale. The output type of the scale is determined by the output type of the interpolator function.
-     *
-     * @param interpolator An interpolator function mapping a value from the [0, 1] interval to an output value.
-     */
-    interpolator<NewOutput>(interpolator: (t: number) => NewOutput): ScaleSequential<NewOutput, Unknown>;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleSequential<Output, NewUnknown>;
-}
-
-/**
- * Constructs a new sequential scale with the specified interpolator function or array.
- * The domain defaults to [0, 1].
- * If interpolator is not specified, it defaults to the identity function.
- * When the scale is applied, the interpolator will be invoked with a value typically in the range [0, 1], where 0 represents the minimum value and 1 represents the maximum value.
- *
- * If interpolator is an array, it represents the scale’s two-element output range and is converted to an interpolator function using d3.interpolate.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function or array to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequential<Output = number, Unknown = never>(
-    interpolator?: ((t: number) => Output) | Iterable<Output>,
-): ScaleSequential<Output, Unknown>;
-/**
- * Constructs a new sequential scale with the specified domain and interpolator function or array.
- * When the scale is applied, the interpolator will be invoked with a value typically in the range [0, 1], where 0 represents the minimum value and 1 represents the maximum value.
- *
- * If interpolator is an array, it represents the scale’s two-element output range and is converted to an interpolator function using d3.interpolate.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function or array to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequential<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: ((t: number) => Output) | Iterable<Output>,
-): ScaleSequential<Output, Unknown>;
-
-/**
- * A sequential scale with a logarithmic transform, analogous to a log scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialLog<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-/**
- * A sequential scale with a logarithmic transform, analogous to a log scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialLog<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-
-/**
- * A sequential scale with a exponential transform, analogous to a power scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialPow<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-/**
- * A sequential scale with a exponential transform, analogous to a power scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialPow<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-
-/**
- * A sequential scale with a square-root transform, analogous to a d3.scaleSqrt.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second third generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialSqrt<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-/**
- * A sequential scale with a square-root transform, analogous to a d3.scaleSqrt.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialSqrt<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-
-/**
- * A sequential scale with a symmetric logarithmic transform, analogous to a symlog scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialSymlog<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-/**
- * A sequential scale with a symmetric logarithmic transform, analogous to a symlog scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialSymlog<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleSequential<Output, Unknown>;
-
-export interface ScaleSequentialQuantile<Output, Unknown = never> extends ScaleSequentialBase<Output, Unknown> {
-    /**
-     * Returns an array of n + 1 quantiles.
-     * For example, if n = 4, returns an array of five numbers: the minimum value, the first quartile, the median, the third quartile, and the maximum.
-     */
-    quantiles(): number[];
-
-    /**
-     * Returns the current interpolator underlying the scale.
-     */
-    interpolator(): (t: number) => Output;
-    /**
-     * Sets the scale’s interpolator to the specified function.
-     *
-     * @param interpolator An interpolator function mapping a value from the [0, 1] interval to an output value.
-     */
-    interpolator(interpolator: (t: number) => Output): this;
-    /**
-     * Sets the scale’s interpolator to the specified function.
-     *
-     * The generic corresponds to a the new output type of the scale. The output type of the scale is determined by the output type of the interpolator function.
-     *
-     * @param interpolator An interpolator function mapping a value from the [0, 1] interval to an output value.
-     */
-    interpolator<NewOutput>(interpolator: (t: number) => NewOutput): ScaleSequentialQuantile<NewOutput, Unknown>;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleSequentialQuantile<Output, NewUnknown>;
-}
-
-/**
- * A sequential scale using a p-quantile transform, analogous to a quantile scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialQuantile<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleSequentialQuantile<Output, Unknown>;
-/**
- * A sequential scale using a p-quantile transform, analogous to a quantile scale.
- *
- * The first generic corresponds to the data type of the output of the interpolator underlying the scale.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric domain values.
- * @param interpolator The interpolator function to be used with the scale.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleSequentialQuantile<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleSequentialQuantile<Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Diverging Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Diverging scales, like sequential scales, are similar to continuous scales in that they map a continuous, numeric input domain to a continuous output range.
- * However, unlike continuous scales, the input domain and output range of a diverging scale always has exactly three elements,
- * and the output range is typically specified as an interpolator rather than an array of values.
- * These scales do not expose invert and interpolate methods.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- *
- * The second generic corresponds to the data type of the unknown value.
- */
-export interface ScaleDiverging<Output, Unknown = never> {
-    /**
-     * Given a value from the domain, returns the corresponding value subject to interpolation.
-     *
-     * If the given value is outside the domain, and clamping is not enabled, the mapping may be extrapolated such that the returned value is outside the range.
-     *
-     * @param value A numeric value from the domain.
-     */
-    (value: NumberValue): Output | Unknown;
-
-    /**
-     * Returns a copy of the scale’s current domain.
-     */
-    domain(): [number, number, number];
-    /**
-     * Sets the scale’s domain to the specified array of numbers.
-     * The domain must be numeric and must contain exactly three values. The default domain is [0, 0.5, 1].
-     * If the elements in the given array are not numbers, they will be coerced to numbers
-     *
-     * @param domain Array of three numeric domain values.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns whether or not the scale currently clamps values to within the range.
-     */
-    clamp(): boolean;
-    /**
-     * Enables or disables clamping, respectively. If clamping is disabled and the scale is passed a value outside the domain,
-     * the scale may return a value outside the range through extrapolation.
-     *
-     * If clamping is enabled, the return value of the scale is always within the interpolator scale’s range.
-     *
-     * @param clamp A flag to enable (true) or disable (false) clamping.
-     */
-    clamp(clamp: boolean): this;
-
-    /**
-     * Returns the scale’s current interpolator.
-     */
-    interpolator(): (t: number) => Output;
-    /**
-     * Sets the scale’s interpolator to the specified function.
-     *
-     * @param interpolator The scale’s interpolator.
-     */
-    interpolator(interpolator?: (t: number) => Output): this;
-
-    /**
-     * See continuous.range.
-     */
-    range(): [Output, Output, Output];
-    /**
-     * See continuous.range.
-     * The given two-element array is converted to an interpolator function using d3.interpolate and d3.piecewise.
-     *
-     * @param range Range values.
-     */
-    range(range: Iterable<Output>): this;
-
-    /**
-     * See continuous.rangeRound.
-     * If range is specified, implicitly uses d3.interpolateRound as the interpolator.
-     *
-     * @param range Range values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleDiverging<Output, NewUnknown>;
-}
-
-/**
- * Constructs a new diverging scale with the specified interpolator function or array.
- * The domain defaults to [0, 0.5, 1].
- * If interpolator is not specified, it defaults to the identity function.
- * When the scale is applied, the interpolator will be invoked with a value typically in the range [0, 1],
- * where 0 represents the extreme negative value, 0.5 represents the neutral value, and 1 represents the extreme positive value.
- *
- * If interpolator is an array, it represents the scale’s three-element output range and is converted to an interpolator function using d3.interpolate and d3.piecewise.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The scale’s interpolator function or array.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDiverging<Output = number, Unknown = never>(
-    interpolator?: ((t: number) => Output) | Iterable<Output>,
-): ScaleDiverging<Output, Unknown>;
-/**
- * Constructs a new diverging scale with the specified domain and interpolator function or array.
- * When the scale is applied, the interpolator will be invoked with a value typically in the range [0, 1],
- * where 0 represents the extreme negative value, 0.5 represents the neutral value, and 1 represents the extreme positive value.
- *
- * If interpolator is an array, it represents the scale’s three-element output range and is converted to an interpolator function using d3.interpolate and d3.piecewise.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of three numeric domain values.
- * @param interpolator The scale’s interpolator function or array.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDiverging<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: ((t: number) => Output) | Iterable<Output>,
-): ScaleDiverging<Output, Unknown>;
-
-/**
- * A diverging scale with a logarithmic transform, analogous to a log scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingLog<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-/**
- * A diverging scale with a logarithmic transform, analogous to a log scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of three numeric domain values.
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingLog<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-
-/**
- * A diverging scale with a exponential transform, analogous to a power scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingPow<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-/**
- * A diverging scale with a exponential transform, analogous to a power scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of three numeric domain values.
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingPow<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-
-/**
- * A diverging scale with a square-root transform, analogous to a d3.scaleSqrt.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingSqrt<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-/**
- * A diverging scale with a square-root transform, analogous to a d3.scaleSqrt.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of three numeric domain values.
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingSqrt<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-
-/**
- * A diverging scale with a symmetric logarithmic transform, analogous to a symlog scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingSymlog<Output = number, Unknown = never>(
-    interpolator?: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-/**
- * A diverging scale with a symmetric logarithmic transform, analogous to a symlog scale.
- *
- * The first generic corresponds to the data type of the interpolator return type.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of three numeric domain values.
- * @param interpolator The scale’s interpolator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleDivergingSymlog<Output, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    interpolator: (t: number) => Output,
-): ScaleDiverging<Output, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Quantize Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Quantize scales are similar to linear scales, except they use a discrete rather than continuous range.
- * The continuous input domain is divided into uniform segments based on the number of values in (i.e., the cardinality of) the output range.
- *
- * Each range value y can be expressed as a quantized linear function of the domain value x: y = m round(x) + b.
- *
- * The first generic corresponds to the data type of the range elements.
- *
- * The second generic corresponds to the data type of the unknown value.
- */
-export interface ScaleQuantize<Range, Unknown = never> {
-    /**
-     * Given a value in the input domain, returns the corresponding value in the output range.
-     */
-    (value: NumberValue): Range | Unknown;
-    /**
-     * Returns the extent of values in the domain [x0, x1] for the corresponding value in the range: the inverse of quantize.
-     * This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-     *
-     * If an invalid range value is entered, returns [NaN, NaN].
-     *
-     * @param value A value from the range.
-     */
-    invertExtent(value: Range): [number, number];
-
-    /**
-     * Returns the scale’s current domain.
-     */
-    domain(): [number, number];
-
-    /**
-     * Sets the scale’s domain to the specified two-element array of numbers.
-     * If the elements in the given array are not numbers, they will be coerced to numbers.
-     *
-     * @param domain A two-element array of numeric values defining the domain.
-     */
-    domain(domain: Iterable<NumberValue>): this;
-
-    /**
-     * Returns the scale’s current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the scale’s range to the specified array of values. The array may contain any number of discrete values.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Returns approximately count representative values from the scale’s domain.
-     *
-     * If count is not specified, it defaults to 10.
-     *
-     * The returned tick values are uniformly spaced, have human-readable values (such as multiples of powers of 10),
-     * and are guaranteed to be within the extent of the domain. Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-     * The specified count is only a hint; the scale may return more or fewer values depending on the domain. See also d3-array’s ticks.
-     *
-     * @param count Optional approximate number of ticks to be returned. If count is not specified, it defaults to 10.
-     */
-    ticks(count?: number): number[];
-
-    /**
-     * Returns a number format function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values.
-     * The specified count should have the same value as the count that is used to generate the tick values.
-     *
-     * @param count Approximate number of ticks to be used when calculating precision for the number format function.
-     * @param specifier An optional valid format specifier string which allows a custom format where the precision of the format is automatically set by the scale as appropriate for the tick interval.
-     * If specifier uses the format type "s", the scale will return a SI-prefix format based on the largest value in the domain.
-     * If the specifier already specifies a precision, this method is equivalent to locale.format.
-     */
-    tickFormat(count?: number, specifier?: string): (d: NumberValue) => string;
-
-    /**
-     * Extends the domain so that it starts and ends on nice round values.
-     * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.
-     *
-     * Nicing is useful if the domain is computed from data, say using extent, and may be irregular.
-     * For example, for a domain of [0.201479…, 0.996679…], a nice domain might be [0.2, 1.0].
-     *
-     * Nicing a scale only modifies the current domain; it does not automatically nice domains that are subsequently set using continuous.domain.
-     * You must re-nice the scale after setting the new domain, if desired.
-     *
-     * @param count An optional number of ticks expected to be used.
-     */
-    nice(count?: number): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleQuantize<Range, NewUnknown>;
-
-    /**
-     * Returns the array of computed thresholds within the domain.
-     */
-    thresholds(): number[];
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-/**
- * Constructs a new quantize scale with the specified range.
- * The domain defaults to [0, 1].
- * If range is not specified, it defaults to [0, 1].
- * Thus, the default quantize scale is equivalent to the Math.round function.
- *
- * The range must be set corresponding to the type of the range elements.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleQuantize<Range = number, Unknown = never>(range?: Iterable<Range>): ScaleQuantize<Range, Unknown>;
-/**
- * Constructs a new quantize scale with the specified domain and range.
- * Thus, the default quantize scale is equivalent to the Math.round function.
- *
- * The range must be set corresponding to the type of the range elements.
- *
- * The first generic corresponds to the data type of the range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain A two-element array of numeric values defining the domain.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleQuantize<Range, Unknown = never>(
-    domain: Iterable<NumberValue>,
-    range: Iterable<Range>,
-): ScaleQuantize<Range, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Quantile Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Quantile scales map a sampled input domain to a discrete range.
- * The domain is considered continuous and thus the scale will accept any reasonable input value;
- * however, the domain is specified as a discrete set of sample values.
- * The number of values in (the cardinality of) the output range determines the number of quantiles that will be computed from the domain.
- * To compute the quantiles, the domain is sorted, and treated as a population of discrete values; see d3-array’s quantile.
- *
- * The first generic corresponds to the data type of range elements.
- *
- * The second generic corresponds to the data type of the unknown value.
- */
-export interface ScaleQuantile<Range, Unknown = never> {
-    /**
-     * Given a value in the input domain, returns the corresponding value in the output range.
-     *
-     * @param value A numeric value in the input domain.
-     */
-    (value: NumberValue): Range | Unknown;
-
-    /**
-     * Returns the extent of values in the domain [x0, x1] for the corresponding value in the range: the inverse of quantile.
-     * This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-     *
-     * @param value A value from the range.
-     */
-    invertExtent(value: Range): [number, number];
-
-    /**
-     * Returns the scale’s current domain.
-     */
-    domain(): number[];
-    /**
-     * Sets the domain of the quantile scale to the specified set of discrete numeric values.
-     * The array must not be empty, and must contain at least one numeric value; NaN, null and undefined values are ignored and not considered part of the sample population.
-     *
-     * If the elements in the given array are not numbers, they will be coerced to numbers. A copy of the input array is sorted and stored internally.
-     *
-     * @param domain Array of domain values.
-     */
-    domain(domain: Iterable<NumberValue | null | undefined>): this;
-
-    /**
-     * Returns the current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the discrete values in the range. The array must not be empty.
-     * The number of values in (the cardinality, or length, of) the range array determines the number of quantiles that are computed.
-     *
-     * For example, to compute quartiles, range must be an array of four elements such as [0, 1, 2, 3].
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Returns the quantile thresholds. If the range contains n discrete values, the returned array will contain n - 1 thresholds.
-     * Values less than the first threshold are considered in the first quantile;
-     * values greater than or equal to the first threshold but less than the second threshold are in the second quantile, and so on.
-     * Internally, the thresholds array is used with bisect to find the output quantile associated with the given input value.
-     */
-    quantiles(): number[];
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleQuantile<Range, NewUnknown>;
-}
-
-/**
- * Constructs a new quantile scale with the specified range.
- * The domain defaults to the empty array.
- * If range is not specified, it defaults to the empty array.
- * The quantile scale is invalid until both a domain and range are specified.
- *
- * The first generic corresponds to the data type of range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleQuantile<Range = number, Unknown = never>(range?: Iterable<Range>): ScaleQuantile<Range, Unknown>;
-/**
- * Constructs a new quantile scale with the specified domain and range.
- * The quantile scale is invalid until both a domain and range are specified.
- *
- * The first generic corresponds to the data type of range elements.
- * The second generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleQuantile<Range, Unknown = never>(
-    domain: Iterable<NumberValue | null | undefined>,
-    range: Iterable<Range>,
-): ScaleQuantile<Range, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Threshold Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Threshold scales are similar to quantize scales, except they allow you to map arbitrary subsets of the domain to discrete values in the range.
- * The input domain is still continuous, and divided into slices based on a set of threshold values.
- *
- * If the number of values in the scale’s range is N+1, the number of values in the scale’s domain must be N.
- * If there are fewer than N elements in the domain, the additional values in the range are ignored.
- * If there are more than N elements in the domain, the scale may return undefined for some inputs.
- *
- * The first generic corresponds to the data type of domain values.
- * The second generic corresponds to the data type of range values.
- * The third generic corresponds to the data type of the unknown value.
- */
-export interface ScaleThreshold<Domain extends number | string | Date, Range, Unknown = never> {
-    /**
-     * Given a value in the input domain, returns the corresponding value in the output range.
-     *
-     * @param value A domain value.
-     */
-    (value: Domain): Range | Unknown;
-
-    /**
-     * Returns the extent of values in the domain [x0, x1] for the corresponding value in the range, representing the inverse mapping from range to domain.
-     * This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-     *
-     * @param value A range value.
-     */
-    invertExtent(value: Range): [Domain | undefined, Domain | undefined];
-
-    /**
-     * Returns the scale’s current domain.
-     */
-    domain(): Domain[];
-    /**
-     * Sets the scale’s domain to the specified array of values. The values must be in sorted ascending order, or the behavior of the scale is undefined.
-     * The values are typically numbers, but any naturally ordered values (such as strings) will work; a threshold scale can be used to encode any type that is ordered.
-     * If the number of values in the scale’s range is N+1, the number of values in the scale’s domain must be N.
-     * If there are fewer than N elements in the domain, the additional values in the range are ignored.
-     * If there are more than N elements in the domain, the scale may return undefined for some inputs.
-     *
-     * @param domain Array of domain values.
-     */
-    domain(domain: Iterable<Domain>): this;
-
-    /**
-     * Returns the scale’s current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the scale’s range to the specified array of values. If the number of values in the scale’s domain is N, the number of values in the scale’s range must be N+1.
-     * If there are fewer than N+1 elements in the range, the scale may return undefined for some inputs.
-     * If there are more than N+1 elements in the range, the additional values are ignored.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-
-    /**
-     * Returns the current unknown value, which defaults to undefined.
-     */
-    unknown(): UnknownReturnType<Unknown, undefined>;
-    /**
-     * Sets the output value of the scale for undefined (or NaN) input values and returns this scale.
-     *
-     * @param value The output value of the scale for undefined (or NaN) input values.
-     */
-    unknown<NewUnknown>(value: NewUnknown): ScaleThreshold<Domain, Range, NewUnknown>;
-}
-
-/**
- * Constructs a new threshold scale with the specified range.
- * The domain defaults to [0.5].
- * If range is not specified, it defaults to [0, 1].
- * Thus, the default threshold scale is equivalent to the Math.round function for numbers; for example threshold(0.49) returns 0, and threshold(0.51) returns 1.
- *
- * The first generic corresponds to the data type of domain values.
- * The second generic corresponds to the data type of range values.
- * The third generic corresponds to the data type of the unknown value.
- *
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleThreshold<Domain extends number | string | Date = number, Range = number, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleThreshold<Domain, Range, Unknown>;
-/**
- * Constructs a new threshold scale with the specified domain and range.
- * Thus, the default threshold scale is equivalent to the Math.round function for numbers; for example threshold(0.49) returns 0, and threshold(0.51) returns 1.
- *
- * The first generic corresponds to the data type of domain values.
- * The second generic corresponds to the data type of range values.
- * The third generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of domain values.
- * @param range Array of range values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleThreshold<Domain extends number | string | Date, Range, Unknown = never>(
-    domain: Iterable<Domain>,
-    range: Iterable<Range>,
-): ScaleThreshold<Domain, Range, Unknown>;
-
-// -------------------------------------------------------------------------------
-// Ordinal Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Unlike continuous scales, ordinal scales have a discrete domain and range. For example, an ordinal scale might map a set of named categories to a set of colors,
- * or determine the horizontal positions of columns in a column chart.
- *
- * The first element in the domain will be mapped to the first element in range, the second domain value to the second range value, and so on.
- * If there are fewer elements in the range than in the domain, the scale will reuse values from the start of the range.
- *
- * The first generic corresponds to the data type of domain values.
- * The second generic corresponds to the data type of range values.
- * The third generic corresponds to the data type of the unknown value.
- */
-export interface ScaleOrdinal<Domain extends { toString(): string }, Range, Unknown = never> {
-    /**
-     * Given a value in the input domain, returns the corresponding value in the output range.
-     * If the given value is not in the scale’s domain, returns the unknown; or, if the unknown value is implicit (the default),
-     * then the value is implicitly added to the domain and the next-available value in the range is assigned to value,
-     * such that this and subsequent invocations of the scale given the same input value return the same output value.
-     *
-     * @param x A value from the domain.
-     */
-    (x: Domain): Range | Unknown;
-
-    /**
-     * Returns the scale's current domain.
-     */
-    domain(): Domain[];
-    /**
-     * Sets the domain to the specified array of values.
-     *
-     * The first element in domain will be mapped to the first element in the range,
-     * the second domain value to the second range value, and so on.
-     *
-     * Domain values are stored internally in an InternMap from primitive value to index; the resulting index is then used to retrieve a value from the range.
-     * Thus, an ordinal scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding range value.
-     *
-     * Setting the domain on an ordinal scale is optional if the unknown value is implicit (the default).
-     * In this case, the domain will be inferred implicitly from usage by assigning each unique value passed to the scale a new value from the range.
-     * Note that an explicit domain is recommended to ensure deterministic behavior, as inferring the domain from usage will be dependent on ordering.
-     *
-     * @param domain Array of domain values.
-     */
-    domain(domain: Iterable<Domain>): this;
-
-    /**
-     * Returns the scale's current range.
-     */
-    range(): Range[];
-    /**
-     * Sets the range of the ordinal scale to the specified array of values.
-     *
-     * The first element in the domain will be mapped to the first element in range, the second domain value to the second range value, and so on.
-     *
-     * If there are fewer elements in the range than in the domain, the scale will reuse values from the start of the range.
-     *
-     * @param range Array of range values.
-     */
-    range(range: Iterable<Range>): this;
-
-    /**
-     * Returns the current unknown value, which defaults to "implicit".
-     */
-    unknown(): UnknownReturnType<Unknown, { name: "implicit" }>;
-    /**
-     * Sets the output value of the scale for unknown input values and returns this scale.
-     * The implicit value enables implicit domain construction. scaleImplicit can be used as a convenience to set the implicit value.
-     *
-     * @param value Unknown value to be used or scaleImplicit to set implicit scale generation.
-     */
-    unknown<NewUnknown>(
-        value: NewUnknown,
-    ): NewUnknown extends { name: "implicit" } ? ScaleOrdinal<Domain, Range>
-        : ScaleOrdinal<Domain, Range, NewUnknown>;
-
-    /**
-     * Returns an exact copy of this ordinal scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-/**
- * Constructs a new ordinal scale with the specified range.
- * The domain defaults to the empty array.
- * If range is not specified, it defaults to the empty array; an ordinal scale always returns undefined until a non-empty range is defined.
- *
- * The generic corresponds to the data type of range elements.
- *
- * @param range An optional array of range values to initialize the scale with.
- */
-export function scaleOrdinal<Range>(range?: Iterable<Range>): ScaleOrdinal<string, Range>;
-/**
- * Constructs a new ordinal scale with the specified range.
- * The domain defaults to the empty array.
- * If range is not specified, it defaults to the empty array; an ordinal scale always returns undefined until a non-empty range is defined.
- *
- * The first generic corresponds to the data type of domain elements.
- * The second generic corresponds to the data type of range elements.
- * The third generic corresponds to the data type of the unknown value.
- *
- * @param range An optional array of range values to initialize the scale with.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleOrdinal<Domain extends { toString(): string }, Range, Unknown = never>(
-    range?: Iterable<Range>,
-): ScaleOrdinal<Domain, Range, Unknown>;
-/**
- * Constructs a new ordinal scale with the specified domain and range.
- *
- * The first generic corresponds to the data type of domain elements.
- * The second generic corresponds to the data type of range elements.
- * The third generic corresponds to the data type of the unknown value.
- *
- * @param domain Array of domain values.
- * @param range An optional array of range values to initialize the scale with.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleOrdinal<Domain extends { toString(): string }, Range, Unknown = never>(
-    domain: Iterable<Domain>,
-    range: Iterable<Range>,
-): ScaleOrdinal<Domain, Range, Unknown>;
-
-/**
- * A special value for ordinal.unknown that enables implicit domain construction: unknown values are implicitly added to the domain.
- */
-export const scaleImplicit: { name: "implicit" };
-
-// -------------------------------------------------------------------------------
-// Band Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Band scales are like ordinal scales except the output range is continuous and numeric.
- * Discrete output values are automatically computed by the scale by dividing the continuous range into uniform bands.
- * Band scales are typically used for bar charts with an ordinal or categorical dimension.
- * The unknown value of a band scale is effectively undefined: they do not allow implicit domain construction.
- *
- * The generic corresponds to the data type of domain elements.
- */
-export interface ScaleBand<Domain extends { toString(): string }> {
-    /**
-     * Given a value in the input domain, returns the start of the corresponding band derived from the output range.
-     * If the given value is not in the scale’s domain, returns undefined.
-     *
-     * @param x  A value from the domain.
-     */
-    (x: Domain): number | undefined;
-
-    /**
-     * Returns to scale's current domain
-     */
-    domain(): Domain[];
-    /**
-     * Sets the domain to the specified array of values. The first element in domain will be mapped to the first band, the second domain value to the second band, and so on.
-     * Domain values are stored internally in an InternMap from primitive value to index; the resulting index is then used to determine the band.
-     * Thus, a band scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding band.
-     *
-     * @param domain Array of domain values.
-     */
-    domain(domain: Iterable<Domain>): this;
-
-    /**
-     * Returns the scale’s current range, which defaults to [0, 1].
-     */
-    range(): [number, number];
-    /**
-     * Sets the scale’s range to the specified two-element array of numbers. If the elements in the given array are not numbers, they will be coerced to numbers.
-     * The default range is [0, 1].
-     *
-     * @param range A two-element array of numeric values.
-     */
-    range(range: Iterable<NumberValue>): this;
-
-    /**
-     * Sets the scale’s range to the specified two-element array of numbers while also enabling rounding.
-     * If the elements in the given array are not numbers, they will be coerced to numbers.
-     *
-     * Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the shape-rendering “crispEdges” styles.
-     *
-     * @param range A two-element array of numeric values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns the current rounding status for the scale: enabled (= true) or disabled (= false).
-     */
-    round(): boolean;
-    /**
-     * Enables or disables rounding accordingly. If rounding is enabled, the start and stop of each band will be integers.
-     * Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the shape-rendering “crispEdges” styles.
-     * Note that if the width of the domain is not a multiple of the cardinality of the range, there may be leftover unused space, even without padding!
-     * Use band.align to specify how the leftover space is distributed.
-     *
-     * @param round Enable rounding (= true), disable rounding (= false).
-     */
-    round(round: boolean): this;
-
-    /**
-     * Returns the current inner padding which defaults to 0.
-     */
-    paddingInner(): number;
-    /**
-     * Sets the inner padding to the specified value which must be in the range [0, 1].
-     * The inner padding determines the ratio of the range that is reserved for blank space between bands.
-     *
-     * The default setting is 0.
-     *
-     * @param padding Value for inner padding in [0, 1] interval.
-     */
-    paddingInner(padding: number): this;
-
-    /**
-     * Returns the current outer padding which defaults to 0.
-     */
-    paddingOuter(): number;
-    /**
-     * Sets the outer padding to the specified value which must be in the range [0, 1].
-     * The outer padding determines the ratio of the range that is reserved for blank space before the first band and after the last band.
-     *
-     * The default setting is 0.
-     *
-     * @param padding Value for outer padding in [0, 1] interval.
-     */
-    paddingOuter(padding: number): this;
-
-    /**
-     * Returns the inner padding.
-     */
-    padding(): number;
-    /**
-     * A convenience method for setting the inner and outer padding to the same padding value.
-     *
-     * @param padding Value for inner and outer padding in [0, 1] interval.
-     */
-    padding(padding: number): this;
-
-    /**
-     * Returns the current alignment which defaults to 0.5.
-     */
-    align(): number;
-    /**
-     * Sets the alignment to the specified value which must be in the range [0, 1].
-     *
-     * The default is 0.5.
-     *
-     * The alignment determines how any leftover unused space in the range is distributed.
-     * A value of 0.5 indicates that the outer patter should be equally distributed before the first band and after the last band;
-     * i.e., the bands should be centered within the range. A value of 0 or 1 may be used to shift the bands to one side, say to position them adjacent to an axis.
-     *
-     * @param align Value for alignment setting in [0, 1] interval.
-     */
-    align(align: number): this;
-
-    /**
-     * Returns the width of each band.
-     */
-    bandwidth(): number;
-
-    /**
-     * Returns the distance between the starts of adjacent bands.
-     */
-    step(): number;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-/**
- * Constructs a new band scale with the specified range, no padding, no rounding and center alignment.
- * The domain defaults to the empty domain.
- * If range is not specified, it defaults to the unit range [0, 1].
- *
- * The generic corresponds to the data type of domain elements.
- *
- * @param range A two-element array of numeric values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scaleBand<Domain extends { toString(): string } = string>(
-    range?: Iterable<NumberValue>,
-): ScaleBand<Domain>;
-/**
- * Constructs a new band scale with the specified domain and range, no padding, no rounding and center alignment.
- *
- * The generic corresponds to the data type of domain elements.
- *
- * @param domain Array of domain values.
- * @param range A two-element array of numeric values.
- */
-export function scaleBand<Domain extends { toString(): string }>(
-    domain: Iterable<Domain>,
-    range: Iterable<NumberValue>,
-): ScaleBand<Domain>;
-
-// -------------------------------------------------------------------------------
-// Point Scale Factory
-// -------------------------------------------------------------------------------
-
-/**
- * Point scales are a variant of band scales with the bandwidth fixed to zero.
- * Point scales are typically used for scatterplots with an ordinal or categorical dimension.
- * The unknown value of a point scale is always undefined: they do not allow implicit domain construction.
- *
- * The generic corresponds to the data type of domain elements.
- */
-export interface ScalePoint<Domain extends { toString(): string }> {
-    /**
-     * Given a value in the input domain, returns the corresponding point derived from the output range.
-     * If the given value is not in the scale’s domain, returns undefined.
-     *
-     * @param x  A value from the domain.
-     */
-    (x: Domain): number | undefined;
-
-    /**
-     * Returns the scale's current domain.
-     */
-    domain(): Domain[];
-    /**
-     * Sets the domain to the specified array of values. The first element in domain will be mapped to the first point, the second domain value to the second point, and so on.
-     * Domain values are stored internally in an InternMap from primitive value to index; the resulting index is then used to determine the point.
-     * Thus, a point scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding point.
-     *
-     * @param domain Array of domain values.
-     */
-    domain(domain: Iterable<Domain>): this;
-
-    /**
-     * Returns the scale’s current range, which defaults to [0, 1].
-     */
-    range(): [number, number];
-    /**
-     * Sets the scale’s range to the specified two-element array of numbers.
-     * If the elements in the given array are not numbers, they will be coerced to numbers.
-     * The default range is [0, 1].
-     *
-     * @param range A two-element array of numeric values.
-     */
-    range(range: Iterable<NumberValue>): this;
-
-    /**
-     * Sets the scale’s range to the specified two-element array of numbers while also enabling rounding.
-     * If the elements in the given array are not numbers, they will be coerced to numbers.
-     *
-     * Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the shape-rendering “crispEdges” styles.
-     *
-     * @param range A two-element array of numeric values.
-     */
-    rangeRound(range: Iterable<NumberValue>): this;
-
-    /**
-     * Returns the current rounding status for the scale: enabled (= true) or disabled (= false).
-     */
-    round(): boolean;
-    /**
-     * Enables or disables rounding accordingly. If rounding is enabled, the position of each point will be integers.
-     * Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the shape-rendering “crispEdges” styles.
-     * Note that if the width of the domain is not a multiple of the cardinality of the range, there may be leftover unused space, even without padding!
-     * Use point.align to specify how the leftover space is distributed.
-     *
-     * @param round Enable rounding (= true), disable rounding (= false).
-     */
-    round(round: boolean): this;
-
-    /**
-     * Returns the current outer padding which defaults to 0.
-     * The outer padding determines the ratio of the range that is reserved for blank space
-     * before the first point and after the last point.
-     */
-    padding(): number;
-    /**
-     * Sets the outer padding to the specified value which must be in the range [0, 1].
-     * The outer padding determines the ratio of the range that is reserved for blank space
-     * before the first point and after the last point.
-     *
-     * The default is 0.
-     *
-     * @param padding Value for outer padding in [0, 1] interval.
-     */
-    padding(padding: number): this;
-
-    /**
-     * Returns the current alignment which defaults to 0.5.
-     */
-    align(): number;
-    /**
-     * Sets the alignment to the specified value which must be in the range [0, 1].
-     *
-     * The alignment determines how any leftover unused space in the range is distributed.
-     * A value of 0.5 indicates that the leftover space should be equally distributed before the first point and after the last point;
-     * i.e., the points should be centered within the range. A value of 0 or 1 may be used to shift the points to one side, say to position them adjacent to an axis.
-     *
-     * The default value is 0.5.
-     *
-     * @param align Value for alignment setting in [0, 1] interval.
-     */
-    align(align: number): this;
-
-    /**
-     * Return 0.
-     */
-    bandwidth(): number;
-
-    /**
-     * Returns the distance between the starts of adjacent points.
-     */
-    step(): number;
-
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     */
-    copy(): this;
-}
-
-/**
- * Constructs a new point scale with the specified range, no padding, no rounding and center alignment.
- * The domain defaults to the empty domain.
- * If range is not specified, it defaults to the unit range [0, 1].
- *
- * The generic corresponds to the data type of domain elements.
- *
- * @param range A two-element array of numeric values.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function scalePoint<Domain extends { toString(): string } = string>(
-    range?: Iterable<NumberValue>,
-): ScalePoint<Domain>;
-/**
- * Constructs a new point scale with the specified domain and range, no padding, no rounding and center alignment.
- * The domain defaults to the empty domain.
- *
- * The generic corresponds to the data type of domain elements.
- *
- * @param domain Array of domain values.
- * @param range A two-element array of numeric values.
- */
-export function scalePoint<Domain extends { toString(): string }>(
-    domain: Iterable<Domain>,
-    range: Iterable<NumberValue>,
-): ScalePoint<Domain>;
Index: de_modules/@types/d3-scale/package.json
===================================================================
--- node_modules/@types/d3-scale/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-    "name": "@types/d3-scale",
-    "version": "4.0.9",
-    "description": "TypeScript definitions for d3-scale",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-scale",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "rulonder",
-            "githubUsername": "rulonder",
-            "url": "https://github.com/rulonder"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-scale"
-    },
-    "scripts": {},
-    "dependencies": {
-        "@types/d3-time": "*"
-    },
-    "peerDependencies": {},
-    "typesPublisherContentHash": "c7eb4d63d0dfb659f0f8e359a4de33ed1f690bdea8051641bffa941f06a92f4d",
-    "typeScriptVersion": "5.0"
-}
Index: de_modules/@types/d3-shape/LICENSE
===================================================================
--- node_modules/@types/d3-shape/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-shape/README.md
===================================================================
--- node_modules/@types/d3-shape/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-shape`
-
-# Summary
-This package contains type definitions for d3-shape (https://github.com/d3/d3-shape/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-shape.
-
-### Additional Details
- * Last updated: Mon, 12 Jan 2026 09:42:37 GMT
- * Dependencies: [@types/d3-path](https://npmjs.com/package/@types/d3-path)
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), [Nathan Bierema](https://github.com/Methuselah96), and [Fil](https://github.com/Fil).
Index: de_modules/@types/d3-shape/index.d.ts
===================================================================
--- node_modules/@types/d3-shape/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2680 +1,0 @@
-// Last module patch version validated against: 3.1.0
-
-import { Path } from "d3-path";
-
-declare global {
-    interface CanvasRenderingContext2D {} // eslint-disable-line @typescript-eslint/no-empty-interface
-}
-
-// -----------------------------------------------------------------------------------
-// Shared Types and Interfaces
-// -----------------------------------------------------------------------------------
-
-/**
- * @deprecated
- * This interface is used to bridge the gap between two incompatible versions of TypeScript (see [#25944](https://github.com/Microsoft/TypeScript/pull/25944)).
- * Use `CanvasPathMethods` instead with TS <= 3.0 and `CanvasPath` with TS >= 3.1.
- */
-export interface CanvasPath_D3Shape {
-    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
-    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
-    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
-    closePath(): void;
-    ellipse(
-        x: number,
-        y: number,
-        radiusX: number,
-        radiusY: number,
-        rotation: number,
-        startAngle: number,
-        endAngle: number,
-        anticlockwise?: boolean,
-    ): void;
-    lineTo(x: number, y: number): void;
-    moveTo(x: number, y: number): void;
-    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
-    rect(x: number, y: number, w: number, h: number): void;
-}
-
-// -----------------------------------------------------------------------------------
-// Arc Generator
-// -----------------------------------------------------------------------------------
-
-/**
- * Interface corresponding to the minimum data type assumed by the accessor functions of the Arc generator.
- */
-export interface DefaultArcObject {
-    /**
-     * Inner radius of arc.
-     */
-    innerRadius: number;
-    /**
-     * Outer radius of arc.
-     */
-    outerRadius: number;
-    /**
-     * Start angle of arc. The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     */
-    startAngle: number;
-    /**
-     * End angle of arc. The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     */
-    endAngle: number;
-    /**
-     * Optional. Pad angle of arc in radians.
-     */
-    padAngle?: number | undefined;
-}
-
-/**
- * The arc generator produces a circular or annular sector, as in a pie or donut chart.
- *
- * If the difference between the start and end angles (the angular span) is greater than τ, the arc generator will produce a complete circle or annulus.
- * If it is less than τ, arcs may have rounded corners and angular padding. Arcs are always centered at ⟨0,0⟩; use a transform (see: SVG, Canvas) to move the arc to a different position.
- *
- * See also the pie generator, which computes the necessary angles to represent an array of data as a pie or donut chart; these angles can then be passed to an arc generator.
- *
- * The first generic corresponds to the type of the "this" context within which the arc generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type for which the arc is to be generated.
- */
-export interface Arc<This, Datum> {
-    /**
-     * Generates an arc for the given arguments.
-     *
-     * IMPORTANT: If the rendering context of the arc generator is null,
-     * then the arc is returned as a path data string.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the arc is to be generated.
-     */
-    (this: This, d: Datum, ...args: any[]): string | null;
-    /**
-     * Generates an arc for the given arguments.
-     *
-     * IMPORTANT: If the arc generator has been configured with a rendering context,
-     * then the arc is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the arc is to be generated.
-     */
-    (this: This, d: Datum, ...args: any[]): void;
-
-    /**
-     * Computes the midpoint [x, y] of the center line of the arc that would be generated by the given arguments.
-     *
-     * To be consistent with the generated arc, the accessors must be deterministic, i.e., return the same value given the same arguments.
-     * The midpoint is defined as (startAngle + endAngle) / 2 and (innerRadius + outerRadius) / 2.
-     *
-     * Note that this is not the geometric center of the arc, which may be outside the arc;
-     * this method is merely a convenience for positioning labels.
-     *
-     * The method is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that are passed into the arc generator.
-     *
-     * @param d The datum for which the arc is to be generated.
-     */
-    centroid(d: Datum, ...args: any[]): [number, number];
-
-    /**
-     * Returns the current inner radius accessor, which defaults to a function returning the innerRadius property
-     * of the first argument passed into it.
-     */
-    innerRadius(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the inner radius to the specified number and returns this arc generator.
-     *
-     * Specifying the inner radius as a function is useful for constructing a stacked polar bar chart, often in conjunction with a sqrt scale.
-     * More commonly, a constant inner radius is used for a donut or pie chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped.
-     * A negative value is treated as zero.
-     *
-     * @param radius Constant radius.
-     */
-    innerRadius(radius: number): this;
-    /**
-     * Sets the inner radius to the specified function and returns this arc generator.
-     *
-     * Specifying the inner radius as a function is useful for constructing a stacked polar bar chart, often in conjunction with a sqrt scale.
-     * More commonly, a constant inner radius is used for a donut or pie chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped.
-     * A negative value is treated as zero.
-     *
-     * @param radius An accessor function returning a number to be used as a radius. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    innerRadius(radius: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current outer radius accessor, which defaults to a function returning the outerRadius property
-     * of the first argument passed into it.
-     */
-    outerRadius(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the outer radius to the specified number and returns this arc generator.
-     *
-     * Specifying the outer radius as a function is useful for constructing a coxcomb or polar bar chart,
-     * often in conjunction with a sqrt scale. More commonly, a constant outer radius is used for a pie or donut chart.
-     * If the outer radius is smaller than the inner radius, the inner and outer radii are swapped.
-     * A negative value is treated as zero.
-     *
-     * @param radius Constant radius.
-     */
-    outerRadius(radius: number): this;
-    /**
-     * Sets the outer radius to the specified function and returns this arc generator.
-     *
-     * Specifying the outer radius as a function is useful for constructing a coxcomb or polar bar chart,
-     * often in conjunction with a sqrt scale. More commonly, a constant outer radius is used for a pie or donut chart.
-     * If the outer radius is smaller than the inner radius, the inner and outer radii are swapped.
-     * A negative value is treated as zero.
-     *
-     * @param radius An accessor function returning a number to be used as a radius. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    outerRadius(radius: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current corner radius accessor, which defaults to a function returning a constant value of zero.
-     */
-    cornerRadius(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the corner radius to the specified number and returns this arc generator.
-     *
-     * If the corner radius is greater than zero, the corners of the arc are rounded using circles of the given radius.
-     * For a circular sector, the two outer corners are rounded; for an annular sector, all four corners are rounded.
-     *
-     * The corner radius may not be larger than (outerRadius - innerRadius) / 2.
-     * In addition, for arcs whose angular span is less than π, the corner radius may be reduced as two adjacent rounded corners intersect.
-     * This is occurs more often with the inner corners.
-     *
-     * @param radius Constant radius.
-     */
-    cornerRadius(radius: number): this;
-    /**
-     * Sets the corner radius to the specified function and returns this arc generator.
-     *
-     * The corner radius may not be larger than (outerRadius - innerRadius) / 2.
-     * In addition, for arcs whose angular span is less than π, the corner radius may be reduced as two adjacent rounded corners intersect.
-     * This is occurs more often with the inner corners.
-     *
-     * @param radius An accessor function returning a number to be used as a radius. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    cornerRadius(radius: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current start angle accessor, which defaults to a function returning the startAngle property
-     * of the first argument passed into it.
-     */
-    startAngle(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the start angle to the specified number and returns this arc generator.
-     *
-     * The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     * If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-     *
-     * @param angle Constant angle in radians.
-     */
-    startAngle(angle: number): this;
-    /**
-     * Sets the start angle to the specified function and returns this arc generator.
-     *
-     * The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     * If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-     *
-     * @param angle An accessor function returning a number in radians to be used as an angle. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    startAngle(angle: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current end angle accessor, which defaults to a function returning the endAngle property
-     * of the first argument passed into it.
-     */
-    endAngle(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the end angle to the specified number and returns this arc generator.
-     *
-     * The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     * If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-     *
-     * @param angle Constant angle in radians.
-     */
-    endAngle(angle: number): this;
-    /**
-     * Sets the end angle to the specified function and returns this arc generator.
-     *
-     * The angle is specified in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     * If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-     *
-     * @param angle An accessor function returning a number in radians to be used as an angle. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    endAngle(angle: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current pad angle accessor, which defaults to a function returning the padAngle property
-     * of the first argument passed into it, or false if no data are passed in or the property is not defined.
-     */
-    padAngle(): (this: This, d: Datum, ...args: any[]) => number | undefined;
-    /**
-     * Sets the pad angle to the specified number and returns this arc generator.
-     *
-     * The pad angle is converted to a fixed linear distance separating adjacent arcs, defined as padRadius * padAngle. This distance is subtracted equally from the start and end of the arc.
-     * If the arc forms a complete circle or annulus, as when |endAngle - startAngle| ≥ τ, the pad angle is ignored. If the inner radius or angular span is small relative to the pad angle,
-     * it may not be possible to maintain parallel edges between adjacent arcs. In this case, the inner edge of the arc may collapse to a point, similar to a circular sector.
-     * For this reason, padding is typically only applied to annular sectors (i.e., when innerRadius is positive).
-     *
-     * The recommended minimum inner radius when using padding is outerRadius * padAngle / sin(θ), where θ is the angular span of the smallest arc before padding.
-     * For example, if the outer radius is 200 pixels and the pad angle is 0.02 radians, a reasonable θ is 0.04 radians, and a reasonable inner radius is 100 pixels.
-     *
-     * Often, the pad angle is not set directly on the arc generator, but is instead computed by the pie generator so as to ensure that the area of padded arcs is proportional to their value;
-     * see pie.padAngle. See the pie padding animation for illustration.
-     * If you apply a constant pad angle to the arc generator directly, it tends to subtract disproportionately from smaller arcs, introducing distortion.
-     *
-     * @param angle Constant angle in radians.
-     */
-    padAngle(angle: number | undefined): this;
-    /**
-     * Sets the pad angle to the specified function and returns this arc generator.
-     *
-     * The pad angle is converted to a fixed linear distance separating adjacent arcs, defined as padRadius * padAngle. This distance is subtracted equally from the start and end of the arc.
-     * If the arc forms a complete circle or annulus, as when |endAngle - startAngle| ≥ τ, the pad angle is ignored. If the inner radius or angular span is small relative to the pad angle,
-     * it may not be possible to maintain parallel edges between adjacent arcs. In this case, the inner edge of the arc may collapse to a point, similar to a circular sector.
-     * For this reason, padding is typically only applied to annular sectors (i.e., when innerRadius is positive).
-     *
-     * The recommended minimum inner radius when using padding is outerRadius * padAngle / sin(θ), where θ is the angular span of the smallest arc before padding.
-     * For example, if the outer radius is 200 pixels and the pad angle is 0.02 radians, a reasonable θ is 0.04 radians, and a reasonable inner radius is 100 pixels.
-     *
-     * Often, the pad angle is not set directly on the arc generator, but is instead computed by the pie generator so as to ensure that the area of padded arcs is proportional to their value;
-     * see pie.padAngle. See the pie padding animation for illustration.
-     * If you apply a constant pad angle to the arc generator directly, it tends to subtract disproportionately from smaller arcs, introducing distortion.
-     *
-     * @param angle An accessor function returning a number in radians to be used as an angle. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the arc generator.
-     */
-    padAngle(angle: (this: This, d: Datum, ...args: any[]) => number | undefined): this;
-
-    /**
-     * Returns the current pad radius accessor, which defaults to null, indicating that the pad radius should be automatically computed as sqrt(innerRadius * innerRadius + outerRadius * outerRadius).
-     */
-    padRadius(): ((this: This, d: Datum, ...args: any[]) => number) | null;
-    /**
-     * Sets the pad radius to the specified function or number and returns this arc generator.
-     * The pad radius determines the fixed linear distance separating adjacent arcs, defined as padRadius * padAngle.
-     */
-    padRadius(radius: null | number | ((this: This, d: Datum, ...args: any[]) => number)): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this arc generator.
-     * If context is not specified, returns the current context, which defaults to null.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * Constructs a new arc generator with the default settings.
- *
- * Ensure that the accessors used with the arc generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- */
-export function arc(): Arc<any, DefaultArcObject>;
-/**
- * Constructs a new arc generator with the default settings.
- *
- * Ensure that the accessors used with the arc generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The generic corresponds to the datum type representing a arc.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function arc<Datum>(): Arc<any, Datum>;
-/**
- * Constructs a new arc generator with the default settings.
- *
- * Ensure that the accessors used with the arc generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The first generic corresponds to the type of the "this" context within which the arc generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type representing a arc.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function arc<This, Datum>(): Arc<This, Datum>;
-
-// -----------------------------------------------------------------------------------
-// Pie Generator
-// -----------------------------------------------------------------------------------
-
-/**
- * Element of the Arc Datums Array created by invoking the Pie generator.
- *
- * The generic refers to the data type of an element in the input array passed into the Pie generator.
- */
-export interface PieArcDatum<T> {
-    /**
-     * The input datum; the corresponding element in the input data array of the Pie generator.
-     */
-    data: T;
-    /**
-     * The numeric value of the arc.
-     */
-    value: number;
-    /**
-     * The zero-based sorted index of the arc.
-     */
-    index: number;
-    /**
-     * The start angle of the arc.
-     * If the pie generator was configured to be used for the arc generator,
-     * then the units are in radians with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     */
-    startAngle: number;
-    /**
-     * The end angle of the arc.
-     * If the pie generator was configured to be used for the arc generator,
-     * then the units are in radians with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     */
-    endAngle: number;
-    /**
-     * The pad angle of the arc. If the pie generator was configured to be used for the arc generator, than the units are in radians.
-     */
-    padAngle: number;
-}
-
-/**
- * The pie generator does not produce a shape directly, but instead computes the necessary angles to represent a tabular dataset as a pie or donut chart;
- * these angles can then be passed to an arc generator.
- *
- * The first generic corresponds to the type of the "this" context within which the pie generator and its accessor functions will be invoked.
- *
- * The second generic refers to the data type of an element in the input array passed into the Pie generator.
- */
-export interface Pie<This, Datum> {
-    /**
-     * Generates a pie for the given array of data, returning an array of objects representing each datum’s arc angles.
-     * Any additional arguments are arbitrary; they are simply propagated to the pie generator’s accessor functions along with the this object.
-     * The length of the returned array is the same as data, and each element i in the returned array corresponds to the element i in the input data.
-     *
-     * This representation is designed to work with the arc generator’s default startAngle, endAngle and padAngle accessors.
-     * The angular units are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator,
-     * you should specify angles in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     *
-     * @param data Array of data elements.
-     */
-    (this: This, data: Datum[], ...args: any[]): Array<PieArcDatum<Datum>>;
-
-    /**
-     * Returns the current value accessor, which defaults to a function returning the first argument passed into it.
-     * The default value accessor assumes that the input data are numbers, or that they are coercible to numbers using valueOf.
-     */
-    value(): (d: Datum, i: number, data: Datum[]) => number;
-    /**
-     * Sets the value accessor to use the specified constant number and returns this pie generator.
-     *
-     * @param value Constant value to be used.
-     */
-    value(value: number): this;
-    /**
-     * Sets the value accessor to use the specified function and returns this pie generator.
-     *
-     * When a pie is generated, the value accessor will be invoked for each element in the input data array.
-     * The default value accessor assumes that the input data are numbers, or that they are coercible to numbers using valueOf.
-     * If your data are not simply numbers, then you should specify an accessor that returns the corresponding numeric value for a given datum.
-     *
-     * @param value A value accessor function, which is invoked for each element in the input data array, being passed the element d, the index i, and the array data as three arguments.
-     * It returns a numeric value.
-     */
-    value(value: (d: Datum, i: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current data comparator, which defaults to null.
-     */
-    sort(): ((a: Datum, b: Datum) => number) | null;
-    /**
-     * Sets the data comparator to the specified function and returns this pie generator.
-     *
-     * If both the data comparator and the value comparator are null, then arcs are positioned in the original input order.
-     * Otherwise, the data is sorted according to the data comparator, and the resulting order is used. Setting the data comparator implicitly sets the value comparator to null.
-     *
-     * Sorting does not affect the order of the generated arc array which is always in the same order as the input data array; it merely affects the computed angles of each arc.
-     * The first arc starts at the start angle and the last arc ends at the end angle.
-     *
-     * @param comparator A compare function takes two arguments a and b, each elements from the input data array.
-     * If the arc for a should be before the arc for b, then the comparator must return a number less than zero;
-     * if the arc for a should be after the arc for b, then the comparator must return a number greater than zero;
-     * returning zero means that the relative order of a and b is unspecified.
-     */
-    sort(comparator: (a: Datum, b: Datum) => number): this;
-    /**
-     * Sets the data comparator to null and returns this pie generator.
-     *
-     * If both the data comparator and the value comparator are null, then arcs are positioned in the original input order.
-     *
-     * @param comparator null, to set the pie generator to use the original input order or use the sortValues comparator, if any.
-     */
-    sort(comparator: null): this;
-
-    /**
-     * Returns the current value comparator, which defaults to descending value.
-     */
-    sortValues(): ((a: number, b: number) => number) | null;
-    /**
-     * Sets the value comparator to the specified function and returns this pie generator.
-     *
-     * If both the data comparator and the value comparator are null, then arcs are positioned in the original input order.
-     * Otherwise, the data is sorted according to the data comparator, and the resulting order is used.
-     * Setting the value comparator implicitly sets the data comparator to null.
-     *
-     * The value comparator is similar to the data comparator, except the two arguments a and b are values derived from the input data array using the value accessor, not the data elements.
-     * If the arc for a should be before the arc for b, then the comparator must return a number less than zero;
-     * if the arc for a should be after the arc for b, then the comparator must return a number greater than zero;
-     * returning zero means that the relative order of a and b is unspecified.
-     */
-    sortValues(comparator: ((a: number, b: number) => number) | null): this;
-
-    /**
-     * Returns the current start angle accessor, which defaults to a function returning a constant zero.
-     */
-    startAngle(): (this: This, data: Datum[], ...args: any[]) => number;
-    /**
-     * Sets the overall start angle of the pie to the specified number and returns this pie generator.
-     *
-     * The default start angle is zero.
-     *
-     * The start angle here means the overall start angle of the pie, i.e., the start angle of the first arc.
-     * The start angle accessor is invoked once, being passed the same arguments and this context as the pie generator.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator,
-     * you should specify an angle in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     *
-     * @param angle A constant angle.
-     */
-    startAngle(angle: number): this;
-    /**
-     * Sets the overall start angle of the pie to the specified function and returns this pie generator.
-     *
-     * The default start angle is zero.
-     *
-     * The start angle here means the overall start angle of the pie, i.e., the start angle of the first arc.
-     * The start angle accessor is invoked once, being passed the same arguments and this context as the pie generator.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator,
-     * you should specify an angle in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     *
-     * @param angle An angle accessor function, which is invoked once, being passed the same arguments and this context as the pie generator.
-     */
-    startAngle(angle: (this: This, data: Datum[], ...args: any[]) => number): this;
-
-    /**
-     * Returns the current end angle accessor, which defaults to a function returning a constant 2*pi.
-     */
-    endAngle(): (this: This, data: Datum[], ...args: any[]) => number;
-    /**
-     * Sets the overall end angle of the pie to the specified number and returns this pie generator.
-     *
-     * The default end angle is 2*pi.
-     *
-     * The end angle here means the overall end angle of the pie, i.e., the end angle of the last arc.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator,
-     * you should specify an angle in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     *
-     * The value of the end angle is constrained to startAngle ± τ, such that |endAngle - startAngle| ≤ τ.
-     *
-     * @param angle A constant angle.
-     */
-    endAngle(angle: number): this;
-    /**
-     * Sets the overall end angle of the pie to the specified function and returns this pie generator.
-     *
-     * The default end angle is 2*pi.
-     *
-     * The end angle here means the overall end angle of the pie, i.e., the end angle of the last arc.
-     * The end angle accessor is invoked once, being passed the same arguments and this context as the pie generator.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator,
-     * you should specify an angle in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
-     *
-     * The value of the end angle is constrained to startAngle ± τ, such that |endAngle - startAngle| ≤ τ.
-     *
-     * @param angle An angle accessor function, which is invoked once, being passed the same arguments and this context as the pie generator.
-     */
-    endAngle(angle: (this: This, data: Datum[], ...args: any[]) => number): this;
-
-    /**
-     * Returns the current pad angle accessor, which defaults to a function returning a constant zero.
-     */
-    padAngle(): (this: This, data: Datum[], ...args: any[]) => number;
-    /**
-     * Sets the pad angle to the specified number and returns this pie generator.
-     *
-     * The pad angle here means the angular separation between each adjacent arc.
-     * The total amount of padding reserved is the specified angle times the number of elements in the input data array, and at most |endAngle - startAngle|;
-     * the remaining space is then divided proportionally by value such that the relative area of each arc is preserved.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator, you should specify an angle in radians.
-     *
-     * @param angle A constant angle.
-     */
-    padAngle(angle: number): this;
-    /**
-     * Sets the pad angle to the specified function and returns this pie generator.
-     *
-     * The pad angle here means the angular separation between each adjacent arc.
-     * The total amount of padding reserved is the specified angle times the number of elements in the input data array, and at most |endAngle - startAngle|;
-     * the remaining space is then divided proportionally by value such that the relative area of each arc is preserved.
-     * The pad angle accessor is invoked once, being passed the same arguments and this context as the pie generator.
-     * The units of angle are arbitrary, but if you plan to use the pie generator in conjunction with an arc generator, you should specify an angle in radians.
-     *
-     * @param angle An angle accessor function, which is invoked once, being passed the same arguments and this context as the pie generator.
-     */
-    padAngle(angle: (this: This, data: Datum[], ...args: any[]) => number): this;
-}
-
-/**
- * Constructs a new pie generator with the default settings.
- *
- * Ensure that the accessors used with the pie generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- */
-export function pie(): Pie<any, number | { valueOf(): number }>;
-/**
- * Constructs a new pie generator with the default settings.
- *
- * Ensure that the accessors used with the pie generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The generic refers to the data type of an element in the input array passed into the Pie generator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function pie<Datum>(): Pie<any, Datum>;
-/**
- * Constructs a new pie generator with the default settings.
- *
- * Ensure that the accessors used with the pie generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The first generic corresponds to the type of the "this" context within which the pie generator and its accessor functions will be invoked.
- *
- * The second generic refers to the data type of an element in the input array passed into the Pie generator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function pie<This, Datum>(): Pie<This, Datum>;
-
-// -----------------------------------------------------------------------------------
-// Line Generators
-// -----------------------------------------------------------------------------------
-
-/**
- * The line generator produces a spline or polyline, as in a line chart.
- * Lines also appear in many other visualization types, such as the links in hierarchical edge bundling.
- *
- * The generic refers to the data type of an element in the input array passed into the line generator.
- */
-export interface Line<Datum> {
-    /**
-     * Generates a line for the given array of data. Depending on this line generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the line generator.
-     *
-     * IMPORTANT: If the rendering context of the line generator is null,
-     * then the line is returned as a path data string.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): string | null;
-    /**
-     * Generates a line for the given array of data. Depending on this line generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the line generator.
-     *
-     * IMPORTANT: If the line generator has been configured with a rendering context,
-     * then the line is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): void;
-
-    /**
-     * Returns the current x-coordinate accessor function, which defaults to a function returning first element of a two-element array of numbers.
-     */
-    x(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets the x accessor to the specified number and returns this line generator.
-     *
-     * @param x A constant x-coordinate value.
-     */
-    x(x: number): this;
-    /**
-     * Sets the x accessor to the specified function and returns this line generator.
-     *
-     * When a line is generated, the x accessor will be invoked for each defined element in the input data array.
-     *
-     * The default x accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering,
-     * then you should specify a custom accessor.
-     *
-     * @param x A coordinate accessor function which returns the x-coordinate value. The x accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    x(x: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current y-coordinate accessor function, which defaults to a function returning second element of a two-element array of numbers.
-     */
-    y(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets the y accessor to the specified number and returns this line generator.
-     *
-     * @param y A constant y-coordinate value.
-     */
-    y(y: number): this;
-    /**
-     * Sets the y accessor to the specified function and returns this line generator.
-     *
-     * When a line is generated, the y accessor will be invoked for each defined element in the input data array.
-     *
-     * The default y accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering,
-     * then you should specify a custom accessor.
-     *
-     * @param y A coordinate accessor function which returns the y-coordinate value. The y accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    y(y: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current defined accessor, which defaults to a function returning a constant boolean value of true.
-     */
-    defined(): (d: Datum, index: number, data: Datum[]) => boolean;
-    /**
-     * Sets the defined accessor to the specified boolean and returns this line generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a line is generated, the defined accessor will be invoked for each element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the x and y accessors will subsequently be evaluated and the point will be added to the current line segment.
-     * Otherwise, the element will be skipped, the current line segment will be ended, and a new line segment will be generated for the next defined point.
-     * As a result, the generated line may have several discrete segments.
-     *
-     * Note that if a line segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined A boolean constant.
-     */
-    defined(defined: boolean): this;
-    /**
-     * Sets the defined accessor to the specified function and returns this line generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a line is generated, the defined accessor will be invoked for each element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the x and y accessors will subsequently be evaluated and the point will be added to the current line segment.
-     * Otherwise, the element will be skipped, the current line segment will be ended, and a new line segment will be generated for the next defined point.
-     * As a result, the generated line may have several discrete segments.
-     *
-     * Note that if a line segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined An accessor function which returns a boolean value. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    defined(defined: (d: Datum, index: number, data: Datum[]) => boolean): this;
-
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     */
-    curve(): CurveFactory | CurveFactoryLineOnly;
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     *
-     * The generic allows to cast the curve factory to a specific type, if known.
-     */
-    // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-    curve<C extends CurveFactory | CurveFactoryLineOnly>(): C;
-    /**
-     * Sets the curve factory and returns this line generator.
-     *
-     * @param curve A valid curve factory.
-     */
-    curve(curve: CurveFactory | CurveFactoryLineOnly): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this line generator.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * Constructs a new line generator with the default settings.
- *
- * If x or y are specified, sets the corresponding accessors to the specified function or number and returns this line generator.
- *
- * The generic refers to the data type of an element in the input array passed into the line generator.
- *
- * @param x Sets the x accessor
- * @param y Sets the y accessor
- */
-export function line<Datum = [number, number]>(
-    x?: number | ((d: Datum, index: number, data: Datum[]) => number),
-    y?: number | ((d: Datum, index: number, data: Datum[]) => number),
-): Line<Datum>;
-
-/**
- * The radial line generator produces a spline or polyline, as in a line chart.
- *
- * A radial line generator is equivalent to the standard Cartesian line generator,
- * except the x and y accessors are replaced with angle and radius accessors.
- * Radial lines are always positioned relative to ⟨0,0⟩; use a transform (see: SVG, Canvas) to change the origin.
- *
- * The generic refers to the data type of an element in the input array passed into the line generator.
- */
-export interface LineRadial<Datum> {
-    /**
-     * Generates a radial line for the given array of data. Depending on this radial line generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the line generator.
-     *
-     * IMPORTANT: If the rendering context of the radial line generator is null,
-     * then the radial line is returned as a path data string.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): string | null;
-    /**
-     * Generates a radial line for the given array of data. Depending on this radial line generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the radial line generator.
-     *
-     * IMPORTANT: If the radial line generator has been configured with a rendering context,
-     * then the radial line is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): void;
-
-    /**
-     * Returns the current angle accessor function, which defaults to a function returning first element of a two-element array of numbers.
-     */
-    angle(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets the angle accessor to the specified number and returns this radial line generator.
-     *
-     * @param angle A constant angle value in radians, with 0 at -y (12 o’clock).
-     */
-    angle(angle: number): this;
-    /**
-     * Sets the angle accessor to the specified function and returns this radial line generator.
-     *
-     * When a radial line is generated, the angle accessor will be invoked for each defined element in the input data array.
-     *
-     * The default angle accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering,
-     * then you should specify a custom accessor.
-     *
-     * @param angle An angle accessor function which returns the angle value in radians, with 0 at -y (12 o’clock). The angle accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    angle(angle: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current radius accessor function, which defaults to a function returning second element of a two-element array of numbers.
-     */
-    radius(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets the radius accessor to the specified number and returns this radial line generator.
-     *
-     * @param radius A constant radius value.
-     */
-    radius(radius: number): this;
-    /**
-     * Sets the radius accessor to the specified function and returns this radial line generator.
-     *
-     * When a radial line is generated, the radius accessor will be invoked for each defined element in the input data array.
-     *
-     * The default radius accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering,
-     * then you should specify a custom accessor.
-     *
-     * @param radius A radius accessor function which returns the radius value. The radius accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    radius(radius: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current defined accessor, which defaults to a function returning a constant boolean value of true.
-     */
-    defined(): (d: Datum, index: number, data: Datum[]) => boolean;
-    /**
-     * Sets the defined accessor to the specified boolean and returns this radial line generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a radial line is generated, the defined accessor will be invoked for each element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the angle and radius accessors will subsequently be evaluated and the point will be added to the current radial line segment.
-     * Otherwise, the element will be skipped, the current radial line segment will be ended, and a new radial line segment will be generated for the next defined point.
-     * As a result, the generated radial line may have several discrete segments.
-     *
-     * Note that if a radial line segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined A boolean constant.
-     */
-    defined(defined: boolean): this;
-    /**
-     * Sets the defined accessor to the specified function and returns this radial line generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a radial line is generated, the defined accessor will be invoked for each element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the angle and radius accessors will subsequently be evaluated and the point will be added to the current radial line segment.
-     * Otherwise, the element will be skipped, the current radial line segment will be ended, and a new radial line segment will be generated for the next defined point.
-     * As a result, the generated radial line may have several discrete segments.
-     *
-     * Note that if a radial line segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined An accessor function which returns a boolean value. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    defined(defined: (d: Datum, index: number, data: Datum[]) => boolean): this;
-
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     */
-    curve(): CurveFactory | CurveFactoryLineOnly;
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     *
-     * The generic allows to cast the curve factory to a specific type, if known.
-     */
-    // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-    curve<C extends CurveFactory | CurveFactoryLineOnly>(): C;
-    /**
-     * Sets the curve factory and returns this radial line generator.
-     *
-     * Note that curveMonotoneX or curveMonotoneY are not recommended for radial lines because they assume that the data is monotonic in x or y,
-     * which is typically untrue of radial lines.
-     *
-     * @param curve A valid curve factory.
-     */
-    curve(curve: CurveFactory | CurveFactoryLineOnly): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Equivalent to line.context.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * Constructs a new radial line generator with the default settings.
- *
- * Ensure that the accessors used with the radial line generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- */
-export function lineRadial(): LineRadial<[number, number]>;
-/**
- * Constructs a new radial line generator with the default settings.
- *
- * Ensure that the accessors used with the radial line generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The generic refers to the data type of an element in the input array passed into the radial line generator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function lineRadial<Datum>(): LineRadial<Datum>;
-
-/**
- * @deprecated Use LineRadial<Datum>
- */
-export type RadialLine<Datum> = LineRadial<Datum>;
-
-/**
- * @deprecated Use lineRadial()
- */
-export function radialLine(): RadialLine<[number, number]>;
-/**
- * @deprecated Use lineRadial<Datum>()
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function radialLine<Datum>(): RadialLine<Datum>;
-
-// -----------------------------------------------------------------------------------
-// Area Generators
-// -----------------------------------------------------------------------------------
-
-/**
- * The area generator produces an area, as in an area chart. An area is defined by two bounding lines, either splines or polylines.
- * Typically, the two lines share the same x-values (x0 = x1), differing only in y-value (y0 and y1); most commonly, y0 is defined as a constant representing zero.
- * The first line (the topline) is defined by x1 and y1 and is rendered first; the second line (the baseline) is defined by x0 and y0 and is rendered second, with the points in reverse order.
- * With a curveLinear curve, this produces a clockwise polygon.
- *
- * The generic refers to the data type of an element in the input array passed into the area generator.
- */
-export interface Area<Datum> {
-    /**
-     * Generates an area for the given array of data. Depending on this area generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the area generator.
-     *
-     * IMPORTANT: If the rendering context of the area generator is null,
-     * then the area is returned as a path data string.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): string | null;
-    /**
-     * Generates an area for the given array of data. Depending on this area generator’s associated curve,
-     * the given input data may need to be sorted by x-value before being passed to the area generator.
-     *
-     * IMPORTANT: If the area generator has been configured with a rendering context,
-     * then the area is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): void;
-
-    /**
-     * Returns the current x0 accessor. The default x0 accessor is a function returning the first element of a
-     * two-element array of numbers.
-     */
-    x(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets x0 to a constant number x and x1 to null and returns this area generator.
-     *
-     * Setting x1 to null indicates that the previously-computed x0 value should be reused for the x1 value.
-     *
-     * @param x A constant value to be used for x0.
-     */
-    x(x: number): this;
-    /**
-     * Sets x0 to the specified function x and x1 to null and returns this area generator.
-     *
-     * The default x0 accessor assumes that the input data are two-element arrays of numbers and returns the first element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param x An accessor function returning a value to be used for x0. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    x(x: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current x0 accessor. The default x0 accessor is a function returning the first element of a
-     * two-element array of numbers.
-     */
-    x0(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets x0 to a constant number and returns this area generator.
-     *
-     * @param x A constant value.
-     */
-    x0(x: number): this;
-    /**
-     * Sets x0 to the specified function and returns this area generator.
-     *
-     * The default x0 accessor assumes that the input data are two-element arrays of numbers and returns the first element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param x An accessor function returning a value to be used for x0. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    x0(x: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current x1 accessor, which defaults to null, indicating that the previously-computed x0 value should be reused for the x1 value.
-     */
-    x1(): ((d: Datum, index: number, data: Datum[]) => number) | null;
-    /**
-     * Sets the x1 accessor to the specified number and returns this area generator.
-     */
-    x1(x: null | number): this;
-    /**
-     * Sets x1 to the specified function and returns this area generator.
-     *
-     * The default x1 accessor is null, indicating that the previously-computed x0 value should be reused for the x1 value.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param x An accessor function returning a value to be used for x1. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    x1(x: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current y0 accessor. The default y0 accessor is a function returning a constant value of zero.
-     */
-    y(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets y0 to a constant number y and y1 to null and returns this area generator.
-     *
-     * Setting y1 to null indicates that the previously-computed y0 value should be reused for the y1 value.
-     *
-     * @param y A constant value to be used for y0.
-     */
-    y(y: number): this;
-    /**
-     * Sets y0 to the accessor function y and y1 to null and returns this area generator.
-     *
-     * The default y0 accessor returns a constant value of zero.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param y An accessor function returning a value to be used for y0. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    y(y: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current y0 accessor. The default y0 accessor is a function a constant value of zero.
-     */
-    y0(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets y0 to a constant number and returns this area generator.
-     *
-     * @param y A constant value.
-     */
-    y0(y: number): this;
-    /**
-     * Sets y0 to the specified function and returns this area generator.
-     *
-     * The default y0 accessor is a function which returns a constant value of zero.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param y An accessor function returning a value to be used for y0. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    y0(y: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current y1 accessor or null. The default y1 accessor is a function returning the second element of a
-     * two-element array of numbers.
-     *
-     * If the y1 accessor is null, the previously-computed y0 value is reused for the y1 value.
-     */
-    y1(): ((d: Datum, index: number, data: Datum[]) => number) | null;
-    /**
-     * sets the y1 accessor to the specified number and returns this area generator.
-     */
-    y1(y: null | number): this;
-    /**
-     * Sets y1 to the specified function and returns this area generator.
-     *
-     * The default y1 accessor assumes that the input data are two-element arrays of numbers and returns the second element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param y An accessor function returning a value to be used for y1. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    y1(y: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current defined accessor, which defaults to a function returning a constant boolean value of true.
-     */
-    defined(): (d: Datum, index: number, data: Datum[]) => boolean;
-    /**
-     * Sets the defined accessor to the specified boolean and returns this area generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     * When an area is generated, the defined accessor will be invoked for each element in the input data array, being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the x0, x1, y0 and y1 accessors will subsequently be evaluated and the point will be added to the current area segment.
-     * Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point.
-     * As a result, the generated area may have several discrete segments.
-     *
-     * Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined A boolean constant.
-     */
-    defined(defined: boolean): this;
-    /**
-     * Sets the defined accessor to the specified function and returns this area generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     * When an area is generated, the defined accessor will be invoked for each element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the x0, x1, y0 and y1 accessors will subsequently be evaluated and the point will be added to the current area segment.
-     * Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point.
-     * As a result, the generated area may have several discrete segments.
-     *
-     * Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined An accessor function which returns a boolean value. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    defined(defined: (d: Datum, index: number, data: Datum[]) => boolean): this;
-
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     */
-    curve(): CurveFactory;
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     *
-     * The generic allows to cast the curve factory to a specific type, if known.
-     */
-    // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-    curve<C extends CurveFactory>(): C;
-    /**
-     * Sets the curve factory and returns this area generator.
-     *
-     * @param curve A valid curve factory.
-     */
-    curve(curve: CurveFactory): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this area generator.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-
-    /**
-     * Returns a new line generator that has this area generator’s current defined accessor, curve and context.
-     * The line’s x-accessor is this area’s x0-accessor, and the line’s y-accessor is this area’s y0-accessor.
-     */
-    lineX0(): Line<Datum>;
-    /**
-     * Returns a new line generator that has this area generator’s current defined accessor, curve and context.
-     * The line’s x-accessor is this area’s x0-accessor, and the line’s y-accessor is this area’s y0-accessor.
-     */
-    lineY0(): Line<Datum>;
-
-    /**
-     * Returns a new line generator that has this area generator’s current defined accessor, curve and context.
-     * The line’s x-accessor is this area’s x1-accessor, and the line’s y-accessor is this area’s y0-accessor.
-     */
-    lineX1(): Line<Datum>;
-    /**
-     * Returns a new line generator that has this area generator’s current defined accessor, curve and context.
-     * The line’s x-accessor is this area’s x0-accessor, and the line’s y-accessor is this area’s y1-accessor.
-     */
-    lineY1(): Line<Datum>;
-}
-
-/**
- * Constructs a new area generator with the default settings.
- *
- * If x, y0 or y1 are specified, sets the corresponding accessors to the specified function or number and returns this area generator.
- *
- * The generic refers to the data type of an element in the input array passed into the area generator.
- *
- * @param x Sets the x accessor.
- * @param y0 Sets the y0 accessor.
- * @param y1 Sets the y1 accessor.
- */
-export function area<Datum = [number, number]>(
-    x?: number | ((d: Datum, index: number, data: Datum[]) => number),
-    y0?: number | ((d: Datum, index: number, data: Datum[]) => number),
-    y1?: number | ((d: Datum, index: number, data: Datum[]) => number),
-): Area<Datum>;
-
-/**
- * A radial area generator.
- *
- * A radial area generator is equivalent to the standard Cartesian area generator,
- * except the x and y accessors are replaced with angle and radius accessors.
- * Radial areas are always positioned relative to ⟨0,0⟩; use a transform (see: SVG, Canvas) to change the origin.
- *
- * The generic refers to the data type of an element in the input array passed into the area generator.
- */
-export interface AreaRadial<Datum> {
-    /**
-     * Generates a radial area for the given array of data.
-     *
-     * IMPORTANT: If the rendering context of the radial area generator is null,
-     * then the radial area is returned as a path data string.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): string | null;
-    /**
-     * Generates a radial area for the given array of data.
-     *
-     * IMPORTANT: If the radial area generator has been configured with a rendering context,
-     * then the radial area is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum> | Datum[]): void;
-
-    /**
-     * Returns the current startAngle accessor. The default startAngle accessor is a function returning the first element of a
-     * two-element array of numbers.
-     */
-    angle(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets startAngle to a constant number angle and endAngle to null and returns this radial area generator.
-     *
-     * Setting endAngle to null indicates that the previously-computed startAngle value should be reused for the endAngle value.
-     *
-     * @param angle A constant value in radians with 0 at -y (12 o’clock).
-     */
-    angle(angle: number): this;
-    /**
-     * Sets startAngle to the specified function angle and endAngle to null and returns this radial area generator.
-     *
-     * The default startAngle accessor assumes that the input data are two-element arrays of numbers and returns the first element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param angle An accessor function returning a value to be used for startAngle in radians with 0 at -y (12 o’clock).
-     * The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    angle(angle: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current startAngle accessor. The default startAngle accessor is a function returning the first element of a
-     * two-element array of numbers.
-     */
-    startAngle(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets startAngle to a constant number and returns this radial area generator.
-     *
-     * @param angle A constant value in radians with 0 at -y (12 o’clock).
-     */
-    startAngle(angle: number): this;
-    /**
-     * Sets startAngle to the specified function and returns this radial area generator.
-     *
-     * The default startAngle accessor assumes that the input data are two-element arrays of numbers and returns the first element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param angle An accessor function returning a value to be used for startAngle in radians with 0 at -y (12 o’clock).
-     * The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    startAngle(angle: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current endAngle accessor, which defaults to null, indicating that the previously-computed startAngle value should be reused for the endAngle value.
-     */
-    endAngle(): ((d: Datum, index: number, data: Datum[]) => number) | null;
-    /**
-     * Equivalent to area.x1, except the accessor returns the angle in radians, with 0 at -y (12 o’clock).
-     * Note: typically angle is used instead of setting separate start and end angles.
-     */
-    endAngle(angle: null | number): this;
-    /**
-     * Sets endAngle to the specified function and returns this radial area generator.
-     *
-     * The default endAngle accessor is null, indicating that the previously-computed startAngle value should be reused for the endAngle value.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param angle An accessor function returning a value to be used for endAngle in radians with 0 at -y (12 o’clock).
-     * The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    endAngle(angle: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current innerRadius accessor. The default innerRadius accessor is a function returning a constant value of zero.
-     */
-    radius(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets innerRadius to a constant number radius and outerRadius to null and returns this radial area generator.
-     *
-     * Setting outerRadius to null indicates that the previously-computed innerRadius value should be reused for the outerRadius value.
-     *
-     * @param radius A constant value to be used for innerRadius.
-     */
-    radius(radius: number): this;
-    /**
-     * Sets innerRadius to the accessor function radius and outerRadius to null and returns this radial area generator.
-     *
-     * The default innerRadius accessor returns a constant value of zero.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param radius An accessor function returning a value to be used for innerRadius. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    radius(radius: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current innerRadius accessor. The default innerRadius accessor is a function a constant value of zero.
-     */
-    innerRadius(): (d: Datum, index: number, data: Datum[]) => number;
-    /**
-     * Sets innerRadius to a constant number and returns this radial area generator.
-     *
-     * @param radius A constant value.
-     */
-    innerRadius(radius: number): this;
-    /**
-     * Sets innerRadius to the specified function and returns this radial area generator.
-     *
-     * The default innerRadius accessor is a function which returns a constant value of zero.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param radius An accessor function returning a value to be used for innerRadius. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    innerRadius(radius: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current outerRadius accessor or null. The default outerRadius accessor is a function returning the second element of a
-     * two-element array of numbers.
-     *
-     * If the outerRadius accessor is null, the previously-computed innerRadius value is reused for the outerRadius value.
-     */
-    outerRadius(): ((d: Datum, index: number, data: Datum[]) => number) | null;
-    /**
-     * Equivalent to area.y1, except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-     */
-    outerRadius(radius: null | number): this;
-    /**
-     * Sets outerRadius to the specified function and returns this radial area generator.
-     *
-     * The default outerRadius accessor assumes that the input data are two-element arrays of numbers and returns the second element.
-     * If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor.
-     *
-     * @param radius An accessor function returning a value to be used for outerRadius. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    outerRadius(radius: (d: Datum, index: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current defined accessor, which defaults to a function returning a constant boolean value of true.
-     */
-    defined(): (d: Datum, index: number, data: Datum[]) => boolean;
-    /**
-     * Sets the defined accessor to the specified boolean and returns this radial area generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a radial area is generated, the defined accessor will be invoked for each element in the input data array, being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the startAngle, endAngle, innerRadius and outerRadius accessors will subsequently be evaluated and the point will be added to the current area segment.
-     *
-     * Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point.
-     * As a result, the generated area may have several discrete segments.
-     *
-     * Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined A boolean constant.
-     */
-    defined(defined: boolean): this;
-    /**
-     * Sets the defined accessor to the specified function and returns this radial area generator.
-     *
-     * The default accessor for defined returns a constant boolean value of true, thus assumes that the input data is always defined.
-     *
-     * When a radial area is generated, the defined accessor will be invoked for each element in the input data array, being passed the element d, the index i, and the array data as three arguments.
-     * If the given element is defined (i.e., if the defined accessor returns a truthy value for this element),
-     * the startAngle, endAngle, innerRadius and outerRadius accessors will subsequently be evaluated and the point will be added to the current area segment.
-     *
-     * Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point.
-     * As a result, the generated area may have several discrete segments.
-     *
-     * Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square line caps.
-     * In addition, some curves such as curveCardinalOpen only render a visible segment if it contains multiple points.
-     *
-     * @param defined An accessor function which returns a boolean value. The accessor will be invoked for each defined element in the input data array,
-     * being passed the element d, the index i, and the array data as three arguments.
-     */
-    defined(defined: (d: Datum, index: number, data: Datum[]) => boolean): this;
-
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     */
-    curve(): CurveFactory;
-    /**
-     * Returns the current curve factory, which defaults to curveLinear.
-     *
-     * The generic allows to cast the curve factory to a specific type, if known.
-     */
-    // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-    curve<C extends CurveFactory>(): C;
-    /**
-     * Sets the curve factory and returns this radial area generator.
-     *
-     * Note that curveMonotoneX or curveMonotoneY are not recommended for radial areas because they assume that the data is monotonic in x or y, which is typically untrue of radial areas.
-     *
-     * @param curve A valid curve factory.
-     */
-    curve(curve: CurveFactory): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Equivalent to line.context.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-
-    /**
-     * Returns a new radial line generator that has this radial area generator’s current defined accessor, curve and context.
-     * The line’s angle accessor is this area’s start angle accessor, and the line’s radius accessor is this area’s inner radius accessor.
-     */
-    lineStartAngle(): LineRadial<Datum>;
-
-    /**
-     * Returns a new radial line generator that has this radial area generator’s current defined accessor, curve and context.
-     * The line’s angle accessor is this area’s start angle accessor, and the line’s radius accessor is this area’s inner radius accessor.
-     */
-    lineInnerRadius(): LineRadial<Datum>;
-
-    /**
-     * Returns a new radial line generator that has this radial area generator’s current defined accessor, curve and context.
-     * The line’s angle accessor is this area’s end angle accessor, and the line’s radius accessor is this area’s inner radius accessor.
-     */
-    lineEndAngle(): LineRadial<Datum>;
-
-    /**
-     * Returns a new radial line generator that has this radial area generator’s current defined accessor, curve and context.
-     * The line’s angle accessor is this area’s start angle accessor, and the line’s radius accessor is this area’s outer radius accessor.
-     */
-    lineOuterRadius(): LineRadial<Datum>;
-}
-
-/**
- * Constructs a new radial area generator with the default settings.
- *
- * Ensure that the accessors used with the area generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- */
-export function areaRadial(): AreaRadial<[number, number]>;
-/**
- * Constructs a new radial area generator with the default settings.
- *
- * Ensure that the accessors used with the area generator correspond to the arguments passed into them,
- * or set them to constants as appropriate.
- *
- * The generic refers to the data type of an element in the input array passed into the radial area generator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function areaRadial<Datum>(): AreaRadial<Datum>;
-
-/**
- * @deprecated Use AreaRadial interface
- */
-export type RadialArea<Datum> = AreaRadial<Datum>;
-
-/**
- * @deprecated Use areaRadial()
- */
-export function radialArea(): RadialArea<[number, number]>;
-/**
- * @deprecated Use areaRadial<Datum>()
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function radialArea<Datum>(): RadialArea<Datum>;
-
-// -----------------------------------------------------------------------------------
-// Curve Factories
-// -----------------------------------------------------------------------------------
-
-/**
- * A minimal interface for a curve generator which supports only the rendering of lines.
- * Methods for related to the rendering of areas are not implemented in this minimal interface.
- *
- * While lines are defined as a sequence of two-dimensional [x, y] points,
- * there remains the task of transforming this discrete representation into a continuous shape: i.e., how to interpolate between the points.
- * A curve generator serves this purpose.
- *
- * Curves are typically not constructed or used directly, instead being passed to line.curve.
- */
-export interface CurveGeneratorLineOnly {
-    /**
-     * Indicates the start of a new line segment. Zero or more points will follow.
-     */
-    lineStart(): void;
-    /**
-     * Indicates the end of the current line segment.
-     */
-    lineEnd(): void;
-    /**
-     * Indicates a new point in the current line segment with the given x- and y-values.
-     */
-    point(x: number, y: number): void;
-}
-
-/**
- * A factory for curve generators addressing only lines, but not areas.
- */
-export type CurveFactoryLineOnly =
-    /**
-     * Returns a "lines only" curve generator which renders to the specified context.
-     *
-     * @param context A rendering context.
-     */
-    (context: CanvasRenderingContext2D | Path) => CurveGeneratorLineOnly;
-
-/**
- * A minimal interface for a curve generator which supports the rendering of lines and areas.
- *
- * While lines are defined as a sequence of two-dimensional [x, y] points,
- * and areas are similarly defined by a topline and a baseline,
- * there remains the task of transforming this discrete representation into a continuous shape: i.e., how to interpolate between the points.
- * A curve generator serves this purpose.
- *
- * Curves are typically not constructed or used directly, instead being passed to line.curve and area.curve.
- */
-export interface CurveGenerator extends CurveGeneratorLineOnly {
-    /**
-     * Indicates the start of a new area segment.
-     * Each area segment consists of exactly two line segments: the topline, followed by the baseline, with the baseline points in reverse order.
-     */
-    areaStart(): void;
-    /**
-     * Indicates the end of the current area segment.
-     */
-    areaEnd(): void;
-}
-
-/**
- * A factory for curve generators addressing both lines and areas.
- */
-export type CurveFactory =
-    /**
-     * Returns a curve generator which renders to the specified context.
-     *
-     * @param context A rendering context.
-     */
-    (context: CanvasRenderingContext2D | Path) => CurveGenerator;
-
-/**
- * A curve factory for cubic basis spline generators.
- *
- * The curve generators produce a cubic basis spline using the specified control points.
- * The first and last points are triplicated such that the spline starts at the first point and ends at the last point,
- * and is tangent to the line between the first and second points, and to the line between the penultimate and last points.
- */
-export const curveBasis: CurveFactory;
-
-/**
- * A curve factory for closed cubic basis spline generators.
- *
- * The curve generators produce a closed cubic basis spline using the specified control points.
- * When a line segment ends, the first three control points are repeated, producing a closed loop with C2 continuity.
- */
-export const curveBasisClosed: CurveFactory;
-
-/**
- * A curve factory for open cubic basis spline generators.
- *
- * The curve generators produce a cubic basis spline using the specified control points.
- * Unlike basis, the first and last points are not repeated, and thus the curve typically does not intersect these points.
- */
-export const curveBasisOpen: CurveFactory;
-
-/**
- * Produces a Bézier curve between each pair of points, with horizontal tangents at each point.
- */
-export const curveBumpX: CurveFactory;
-
-/**
- * Produces a Bézier curve between each pair of points, with vertical tangents at each point.
- */
-export const curveBumpY: CurveFactory;
-
-/**
- * A curve factory for straightened cubic basis spline generators.
- *
- * The curve generators produce a straightened cubic basis spline using the specified control points,
- * with the spline straightened according to the curve’s beta, which defaults to 0.85.
- * This curve is typically used in hierarchical edge bundling to disambiguate connections,
- * as proposed by Danny Holten in Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data.
- *
- * This curve does not implement curve.areaStart and curve.areaEnd; it is intended to work with d3.line, not d3.area.
- */
-export interface CurveBundleFactory extends CurveFactoryLineOnly {
-    /**
-     * Returns a bundle curve factory with the specified beta in the range [0, 1], representing the bundle strength.
-     * If beta equals zero, a straight line between the first and last point is produced; if beta equals one,
-     * a standard basis spline is produced.
-     *
-     * @param beta A constant value in the [0, 1] interval.
-     */
-    beta(beta: number): this;
-}
-
-/**
- * A curve factory for straightened cubic basis spline generators.
- *
- * The curve generators produce a straightened cubic basis spline using the specified control points,
- * with the spline straightened according to the curve’s beta, which defaults to 0.85.
- * This curve is typically used in hierarchical edge bundling to disambiguate connections,
- * as proposed by Danny Holten in Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data.
- *
- * This curve does not implement curve.areaStart and curve.areaEnd; it is intended to work with d3.line, not d3.area.
- */
-export const curveBundle: CurveBundleFactory;
-
-/**
- * A curve factory for cubic cardinal spline generators.
- */
-export interface CurveCardinalFactory extends CurveFactory {
-    /**
-     * Returns a cardinal curve factory with the specified tension in the range [0, 1].
-     * The tension determines the length of the tangents: a tension of one yields all zero tangents, equivalent to curveLinear; a tension of zero produces a uniform Catmull–Rom spline.
-     *
-     * @param tension A constant in the [0, 1] interval.
-     */
-    tension(tension: number): this;
-}
-
-/**
- * A curve factory for cubic cardinal spline generators.
- *
- * The curve generators produce a cubic cardinal spline using the specified control points, with one-sided differences used for the first and last piece.
- * The default tension is 0.
- */
-export const curveCardinal: CurveCardinalFactory;
-
-/**
- * A curve factory for closed cubic cardinal spline generators.
- *
- * The curve generators produce closed cubic cardinal spline using the specified control points.
- * When a line segment ends, the first three control points are repeated, producing a closed loop.
- * The default tension is 0.
- */
-export const curveCardinalClosed: CurveCardinalFactory;
-
-/**
- * A curve factory for open cubic cardinal spline generators.
- *
- * The curve generators produce a cubic cardinal spline using the specified control points.
- * Unlike curveCardinal, one-sided differences are not used for the first and last piece,
- * and thus the curve starts at the second point and ends at the penultimate point.
- * The default tension is 0.
- */
-export const curveCardinalOpen: CurveCardinalFactory;
-
-/**
- * A curve factory for cubic Catmull–Rom spline generators.
- */
-export interface CurveCatmullRomFactory extends CurveFactory {
-    /**
-     * Returns a cubic Catmull–Rom curve factory with the specified alpha in the range [0, 1].
-     * If alpha is zero, produces a uniform spline, equivalent to curveCardinal with a tension of zero;
-     * if alpha is one, produces a chordal spline; if alpha is 0.5, produces a centripetal spline.
-     * Centripetal splines are recommended to avoid self-intersections and overshoot.
-     *
-     * @param alpha A constant in the [0, 1] interval.
-     */
-    alpha(alpha: number): this;
-}
-
-/**
- * A curve factory for cubic Catmull–Rom spline generators.
- *
- * The curve generators produce a cubic Catmull–Rom spline using the specified control points and the parameter alpha,
- * which defaults to 0.5, as proposed by Yuksel et al. in On the Parameterization of Catmull–Rom Curves,
- * with one-sided differences used for the first and last piece.
- */
-export const curveCatmullRom: CurveCatmullRomFactory;
-
-/**
- * A curve factory for cubic Catmull–Rom spline generators.
- *
- * The curve generators produce a closed cubic Catmull–Rom spline using the specified control points and the parameter alpha,
- * which defaults to 0.5, as proposed by Yuksel et al. When a line segment ends,
- * the first three control points are repeated, producing a closed loop.
- */
-export const curveCatmullRomClosed: CurveCatmullRomFactory;
-
-/**
- * A curve factory for cubic Catmull–Rom spline generators.
- *
- * The curve generators produce a cubic Catmull–Rom spline using the specified control points and the parameter alpha,
- * which defaults to 0.5, as proposed by Yuksel et al. Unlike curveCatmullRom, one-sided differences are not used for the first and last piece,
- * and thus the curve starts at the second point and ends at the penultimate point.
- */
-export const curveCatmullRomOpen: CurveCatmullRomFactory;
-
-/**
- * A curve factory for polyline generators.
- *
- * The curve generators produce a polyline through the specified points.
- */
-export const curveLinear: CurveFactory;
-
-/**
- * A curve factory for closed polyline generators.
- *
- * The curve generators produce a closed polyline through the specified points by repeating the first point when the line segment ends.
- */
-export const curveLinearClosed: CurveFactory;
-
-/**
- * A curve factory for cubic spline generators preserving monotonicity in y.
- *
- * The curve generators produce a cubic spline that preserves monotonicity in y, assuming monotonicity in x, as proposed by Steffen in A simple method for monotonic interpolation in one dimension:
- * “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations.
- * Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
- */
-export const curveMonotoneX: CurveFactory;
-
-/**
- * A curve factory for cubic spline generators preserving monotonicity in x.
- *
- * The curve generators produce a cubic spline that preserves monotonicity in x, assuming monotonicity in y, as proposed by Steffen in A simple method for monotonic interpolation in one dimension:
- * “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations.
- * Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
- */
-export const curveMonotoneY: CurveFactory;
-
-/**
- * A curve factory for natural cubic spline generators.
- *
- * The curve generators produce a natural cubic spline with the second derivative of the spline set to zero at the endpoints.
- */
-export const curveNatural: CurveFactory;
-
-/**
- * A curve factory for step function (midpoint) generators.
- *
- * The curve generators produce a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines.
- * The y-value changes at the midpoint of each pair of adjacent x-values.
- */
-export const curveStep: CurveFactory;
-
-/**
- * A curve factory for step function (after) generators.
- *
- * The curve generators produce a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines.
- * The y-value changes after the x-value.
- */
-export const curveStepAfter: CurveFactory;
-
-/**
- * A curve factory for step function (before) generators.
- *
- * The curve generators produce a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines.
- * The y-value changes before the x-value.
- */
-export const curveStepBefore: CurveFactory;
-
-// -----------------------------------------------------------------------------------
-// LINKS
-// -----------------------------------------------------------------------------------
-
-/**
- * An interface describing the default Link Data structure expected
- * by the Link and LinkRadial generators.
- */
-export interface DefaultLinkObject {
-    /**
-     * Source node of the link.
-     *
-     * For a link in a Cartesian coordinate system, the two element array contains
-     * the coordinates [x, y].
-     *
-     * For a radial link, the two element array contains
-     * the coordinates [angle, radius]. The angle is stated in radians, with 0 at -y (12 o’clock).
-     * The radius measures the distance from the origin ⟨0,0⟩.
-     */
-    source: [number, number];
-    /**
-     * Target node of the link.
-     *
-     * For a link in a Cartesian coordinate system, the two element array contains
-     * the coordinates [x, y].
-     *
-     * For a radial link, the two element array contains
-     * the coordinates [angle, radius]. The angle is stated in radians, with 0 at -y (12 o’clock).
-     * The radius measures the distance from the origin ⟨0,0⟩.
-     */
-    target: [number, number];
-}
-
-/**
- * A link generator for a Cartesian coordinate system. The link shape generates a smooth cubic Bézier curve from a
- * source point to a target point. The tangents of the curve at the start and end are either vertical, horizontal.
- *
- * The first generic corresponds to the type of the "this" context within which the link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-export interface Link<This, LinkDatum, NodeDatum> {
-    /**
-     * Generates a link for the given arguments.
-     *
-     * IMPORTANT: If the rendering context of the link generator is null,
-     * then the link is returned as a path data string.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the link is to be generated.
-     */
-    (this: This, d: LinkDatum, ...args: any[]): string | null;
-    /**
-     * Generates an link for the given arguments.
-     *
-     * IMPORTANT: If the link generator has been configured with a rendering context,
-     * then the link is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the link is to be generated.
-     */
-    (this: This, d: LinkDatum, ...args: any[]): void;
-
-    /**
-     * Returns the current source node accessor function.
-     * The default source accessor function returns a two element array [x, y].
-     */
-    source(): (this: This, d: LinkDatum, ...args: any[]) => NodeDatum;
-    /**
-     * Sets the source accessor to the specified function and returns this link generator.
-     *
-     * @param source Source node accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the link generator. The default target accessor function returns a two element array [x, y].
-     */
-    source(source: (this: This, d: LinkDatum, ...args: any[]) => NodeDatum): this;
-
-    /**
-     * Returns the current target node accessor function.
-     * The default target accessor function returns a two element array [x, y].
-     */
-    target(): (this: This, d: LinkDatum, ...args: any[]) => NodeDatum;
-    /**
-     * Sets the target accessor to the specified function and returns this link generator.
-     *
-     * @param target Target node accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the link generator. The default target accessor function returns a two element array [x, y].
-     */
-    target(target: (this: This, d: LinkDatum, ...args: any[]) => NodeDatum): this;
-
-    /**
-     * Returns the current x-accessor, which defaults to a function accepting an number array
-     * as its argument an returning the first element of the array.
-     */
-    x(): (this: This, node: NodeDatum, ...args: any[]) => number;
-    /**
-     * Sets the x-accessor to the specified function and returns this link generator.
-     *
-     * @param x x-coordinate accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives as its first argument a node object followed by all additional arguments that were passed into the link generator.
-     */
-    x(x: (this: This, node: NodeDatum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current y-accessor, which defaults to a function accepting an number array
-     * as its argument an returning the second element of the array.
-     */
-    y(): (this: This, node: NodeDatum, ...args: any[]) => number;
-    /**
-     * Sets the y-accessor to the specified function and returns this link generator.
-     *
-     * @param y y-coordinate accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives as its first argument a node object followed by all additional arguments that were passed into the link generator.
-     */
-    y(y: (this: This, node: NodeDatum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this link generator.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * Returns a new link generator using the specified curve. For example, to visualize links in a tree diagram rooted on the top edge of the display
- *
- * With the default settings the link generator accepts a link object conforming to the DefaultLinkObject interface.
- */
-export function link(curve: CurveFactory): Link<any, DefaultLinkObject, [number, number]>;
-/**
- * Returns a new link generator using the specified curve. For example, to visualize links in a tree diagram rooted on the top edge of the display
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The second generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function link<LinkDatum, NodeDatum>(curve: CurveFactory): Link<any, LinkDatum, NodeDatum>;
-/**
- * Returns a new link generator using the specified curve. For example, to visualize links in a tree diagram rooted on the top edge of the display
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the type of the "this" context within which the link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function link<This, LinkDatum, NodeDatum>(curve: CurveFactory): Link<This, LinkDatum, NodeDatum>;
-
-/**
- * Shorthand for d3.link with d3.curveBumpX; suitable for visualizing links in a tree diagram rooted on the left edge of the display.
- *
- * With the default settings the link generator accepts a link object conforming to the DefaultLinkObject interface.
- */
-export function linkHorizontal(): Link<any, DefaultLinkObject, [number, number]>;
-/**
- * Shorthand for d3.link with d3.curveBumpX; suitable for visualizing links in a tree diagram rooted on the left edge of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The second generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkHorizontal<LinkDatum, NodeDatum>(): Link<any, LinkDatum, NodeDatum>;
-/**
- * Shorthand for d3.link with d3.curveBumpX; suitable for visualizing links in a tree diagram rooted on the left edge of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the type of the "this" context within which the link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkHorizontal<This, LinkDatum, NodeDatum>(): Link<This, LinkDatum, NodeDatum>;
-
-/**
- * Shorthand for d3.link with d3.curveBumpX; suitable for visualizing links in a tree diagram rooted on the left edge of the display.
- *
- * With the default settings the link generator accepts a link object conforming to the DefaultLinkObject interface.
- */
-export function linkVertical(): Link<any, DefaultLinkObject, [number, number]>;
-/**
- * Shorthand for d3.link with d3.curveBumpY; suitable for visualizing links in a tree diagram rooted on the top edge of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The second generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkVertical<LinkDatum, NodeDatum>(): Link<any, LinkDatum, NodeDatum>;
-/**
- * Shorthand for d3.link with d3.curveBumpY; suitable for visualizing links in a tree diagram rooted on the top edge of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the type of the "this" context within which the link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkVertical<This, LinkDatum, NodeDatum>(): Link<This, LinkDatum, NodeDatum>;
-
-/**
- * Shorthand for d3.link with d3.curveBumpY; suitable for visualizing links in a tree diagram rooted on the top edge of the display.
- *
- * The first generic corresponds to the type of the "this" context within which the radial link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-export interface LinkRadial<This, LinkDatum, NodeDatum> {
-    /**
-     * Generates a radial link for the given arguments.
-     *
-     * IMPORTANT: If the rendering context of the radial link generator is null,
-     * then the link is returned as a path data string.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the link is to be generated.
-     */
-    (this: This, d: LinkDatum, ...args: any[]): string | null;
-    /**
-     * Generates an link for the given arguments.
-     *
-     * IMPORTANT: If the radial link generator has been configured with a rendering context,
-     * then the link is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * @param d The datum for which the link is to be generated.
-     */
-    (this: This, d: LinkDatum, ...args: any[]): void;
-
-    /**
-     * Returns the current source node accessor function.
-     * The default source accessor function returns a two element array [x, y].
-     */
-    source(): (this: This, d: LinkDatum, ...args: any[]) => NodeDatum;
-    /**
-     * Sets the source accessor to the specified function and returns this radial link generator.
-     *
-     * @param source Source node accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the radial link generator. The default target accessor function returns a two element array [x, y].
-     */
-    source(source: (this: This, d: LinkDatum, ...args: any[]) => NodeDatum): this;
-
-    /**
-     * Returns the current target node accessor function.
-     * The default target accessor function returns a two element array [x, y].
-     */
-    target(): (this: This, d: LinkDatum, ...args: any[]) => NodeDatum;
-    /**
-     * Sets the target accessor to the specified function and returns this radial link generator.
-     *
-     * @param target Target node accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the radial link generator. The default target accessor function returns a two element array [x, y].
-     */
-    target(target: (this: This, d: LinkDatum, ...args: any[]) => NodeDatum): this;
-
-    /**
-     * Returns the current angle accessor, which defaults to a function accepting an number array
-     * as its argument an returning the first element of the array.
-     */
-    angle(): (this: This, node: NodeDatum, ...args: any[]) => number;
-    /**
-     * Sets the angle accessor to the specified function and returns this radial link generator.
-     * The angle is stated in radians, with 0 at -y (12 o’clock).
-     *
-     * @param angle Angle accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives as its first argument a node object followed by all additional arguments that were passed into the radial link generator.
-     */
-    angle(angle: (this: This, node: NodeDatum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current radius accessor, which defaults to a function accepting an number array
-     * as its argument an returning the second element of the array.
-     */
-    radius(): (this: This, node: NodeDatum, ...args: any[]) => number;
-    /**
-     * Sets the radius accessor to the specified function and returns this radial link generator.
-     * The radius is measured as the distance from the origin ⟨0,0⟩.
-     *
-     * @param radius Radius accessor function. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives as its first argument a node object followed by all additional arguments that were passed into the radial link generator.
-     */
-    radius(radius: (this: This, node: NodeDatum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this link generator.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * @deprecated Use LinkRadial interface
- */
-export type RadialLink<This, LinkDatum, NodeDatum> = LinkRadial<This, LinkDatum, NodeDatum>;
-
-/**
- * Constructs a new default link generator with radial tangents, for example, to visualize links in a tree diagram
- * rooted in the center of the display.
- *
- * With the default settings the link generator accepts a link object conforming to the DefaultLinkObject interface.
- */
-export function linkRadial(): LinkRadial<any, DefaultLinkObject, [number, number]>;
-/**
- * Constructs a new link generator with radial tangents, for example, to visualize links in a tree diagram
- * rooted in the center of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The second generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkRadial<LinkDatum, NodeDatum>(): LinkRadial<any, LinkDatum, NodeDatum>;
-/**
- * Constructs a new link generator with radial tangents, for example, to visualize links in a tree diagram
- * rooted in the center of the display.
- *
- * Important: Ensure that the accessor functions are configured to work with the link and node datum types
- * specified in the generics.
- *
- * The first generic corresponds to the type of the "this" context within which the link generator and its accessor functions will be invoked.
- *
- * The second generic corresponds to the datum type of the link object for which the link is to be generated.
- *
- * The third generic corresponds to the datum type of the source/target node contained in the link object.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function linkRadial<This, LinkDatum, NodeDatum>(): LinkRadial<This, LinkDatum, NodeDatum>;
-
-// -----------------------------------------------------------------------------------
-// SYMBOLS
-// -----------------------------------------------------------------------------------
-
-/**
- * A Symbol Type.
- *
- * Symbol types are typically not used directly, instead being passed to symbol.type.
- * However, you can define your own symbol type implementation should none of the built-in types satisfy your needs using the following interface.
- * You can also use this low-level interface with a built-in symbol type as an alternative to the symbol generator.
- */
-export interface SymbolType {
-    /**
-     * Renders this symbol type to the specified context with the specified size in square pixels. The context implements the CanvasPath interface.
-     * (Note that this is a subset of the CanvasRenderingContext2D interface!)
-     *
-     * @param context A rendering context implementing CanvasPath.
-     * @param size Size of the symbol to draw.
-     */
-    draw(context: CanvasPath_D3Shape, size: number): void;
-}
-
-/**
- * A symbol generator.
- *
- * Symbols provide a categorical shape encoding as is commonly used in scatterplots. Symbols are always centered at ⟨0,0⟩;
- * use a transform (see: SVG, Canvas) to move the arc to a different position.
- *
- * The first generic corresponds to the "this" context within which the symbol generator is invoked.
- * The second generic corresponds to the data type of the datum underlying the symbol.
- */
-export interface Symbol<This, Datum> {
-    /**
-     * Generates a symbol for the given arguments.
-     *
-     * IMPORTANT: If the rendering context of the symbol generator is null,
-     * then the symbol is returned as a path data string.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * For example, with the default settings, no arguments are needed to produce a circle with area 64 square pixels.
-     *
-     * @param d The datum for which the symbol is to be generated.
-     */
-    (this: This, d?: Datum, ...args: any[]): string | null;
-    /**
-     * Generates an symbol for the given arguments.
-     *
-     * IMPORTANT: If the symbol generator has been configured with a rendering context,
-     * then the symbol is rendered to this context as a sequence of path method calls and this function returns void.
-     *
-     * The "this" context within which this function is invoked, will be the context within which the accessor methods of the generator are invoked.
-     * All arguments passed into this function, will be passed to the accessor functions of the generator.
-     *
-     * For example, with the default settings, no arguments are needed to produce a circle with area 64 square pixels.
-     *
-     * @param d The datum for which the symbol is to be generated.
-     */
-    (this: This, d?: Datum, ...args: any[]): void;
-    /**
-     * Returns the current size accessor, which defaults to a function returning a constant value of 64.
-     */
-    size(): (this: This, d: Datum, ...args: any[]) => number;
-    /**
-     * Sets the size to the specified number and returns this symbol generator.
-     *
-     * @param size A fixed size (area in square pixels).
-     */
-    size(size: number): this;
-    /**
-     * Sets the size to the specified function and returns this symbol generator.
-     *
-     * Specifying the size as a function is useful for constructing a scatterplot with a size encoding.
-     * If you wish to scale the symbol to fit a given bounding box, rather than by area, try SVG’s getBBox.
-     *
-     * @param size An accessor function returning a number to be used as a symbol size. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the symbol generator.
-     */
-    size(size: (this: This, d: Datum, ...args: any[]) => number): this;
-
-    /**
-     * Returns the current symbol type accessor, which defaults to a function returning the circle symbol type.
-     */
-    type(): (this: This, d: Datum, ...args: any[]) => SymbolType;
-    /**
-     * Sets the symbol type to the specified symbol type and returns this symbol generator.
-     *
-     * @param type A constant symbol type.
-     */
-    type(type: SymbolType): this;
-    /**
-     * Sets the symbol type to the specified function and returns this symbol generator.
-     *
-     * @param type An accessor function returning a symbol type. The accessor function is invoked in the same "this" context as the generator was invoked in and
-     * receives the same arguments that were passed into the symbol generator. See symbols for the set of built-in symbol types.
-     * To implement a custom symbol type, return an object that implements symbolType.draw.
-     */
-    type(type: (this: This, d: Datum, ...args: any[]) => SymbolType): this;
-
-    /**
-     * Returns the current rendering context, which defaults to null.
-     */
-    context(): CanvasRenderingContext2D | null;
-    /**
-     * Sets the context and returns this symbol generator.
-     */
-    context(context: CanvasRenderingContext2D | null): this;
-}
-
-/**
- * Constructs a new symbol generator of the specified type and size.
- * If not specified, type defaults to a circle, and size defaults to 64.
- *
- * The first generic corresponds to the "this" context within which the symbol generator is invoked.
- * The second generic corresponds to the data type of the datum underlying the symbol.
- *
- * @param type The specified type.
- * @param size The specified size.
- */
-export function symbol<Datum = any>(
-    type?: SymbolType | ((this: any, d: Datum, ...args: any[]) => SymbolType),
-    size?: number | ((this: any, d: Datum, ...args: any[]) => number),
-): Symbol<any, Datum>;
-
-/**
- * Constructs a new symbol generator of the specified type and size.
- * If not specified, type defaults to a circle, and size defaults to 64.
- *
- * The first generic corresponds to the "this" context within which the symbol generator is invoked.
- * The second generic corresponds to the data type of the datum underlying the symbol.
- *
- * @param type The specified type.
- * @param size The specified size.
- */
-export function symbol<This, Datum>(
-    type?: SymbolType | ((this: This, d: Datum, ...args: any[]) => SymbolType),
-    size?: number | ((this: This, d: Datum, ...args: any[]) => number),
-): Symbol<This, Datum>;
-
-/**
- * An array containing a set of symbol types designed for filling: circle, cross, diamond, square, star, triangle, and wye.
- * Useful for constructing the range of an ordinal scale should you wish to use a shape encoding for categorical data.
- */
-export const symbolsFill: SymbolType[];
-
-/**
- * An array containing a set of symbol types designed for stroking: circle, plus, x, triangle2, asterisk, square2, and diamond2.
- * Useful for constructing the range of an ordinal scale should you wish to use a shape encoding for categorical data.
- */
-export const symbolsStroke: SymbolType[];
-
-/**
- * @deprecated Use symbolsFill
- */
-export const symbols: SymbolType[];
-
-/**
- * The asterisk symbol type; intended for stroking.
- */
-export const symbolAsterisk: SymbolType;
-
-/**
- * The circle symbol type; intended for either filling or stroking.
- */
-export const symbolCircle: SymbolType;
-
-/**
- * The Greek cross symbol type, with arms of equal length; intended for filling.
- */
-export const symbolCross: SymbolType;
-
-/**
- * The rhombus symbol type; intended for filling.
- */
-export const symbolDiamond: SymbolType;
-
-/**
- * The rotated square symbol type; intended for stroking.
- */
-export const symbolDiamond2: SymbolType;
-
-/**
- * The plus symbol type; intended for stroking.
- */
-export const symbolPlus: SymbolType;
-
-/**
- * The square symbol type; intended for filling.
- */
-export const symbolSquare: SymbolType;
-
-/**
- * The square2 symbol type; intended for stroking.
- */
-export const symbolSquare2: SymbolType;
-
-/**
- * The pentagonal star (pentagram) symbol type; intended for filling.
- */
-export const symbolStar: SymbolType;
-
-/**
- * The up-pointing triangle symbol type; intended for filling.
- */
-export const symbolTriangle: SymbolType;
-
-/**
- * The up-pointing triangle symbol type; intended for stroking.
- */
-export const symbolTriangle2: SymbolType;
-
-/**
- * The Y-shape symbol type; intended for filling.
- */
-export const symbolWye: SymbolType;
-
-/**
- * The X-shape symbol type; intended for stroking.
- */
-export const symbolX: SymbolType;
-
-/**
- * The X-shape symbol type; intended for stroking.
- */
-export const symbolTimes: SymbolType;
-
-// -----------------------------------------------------------------------------------
-// pointRadial
-// -----------------------------------------------------------------------------------
-
-/**
- * Returns the point [x, y] for the given angle and the given radius.
- * @param angle Angle in radians, with 0 at -y (12 o’clock) and positive angles proceeding clockwise.
- * @param radius Radius.
- */
-export function pointRadial(angle: number, radius: number): [number, number];
-
-// -----------------------------------------------------------------------------------
-// STACKS
-// -----------------------------------------------------------------------------------
-
-/**
- * Each series point j in a stack chart corresponds to the jth element in the input data.
- * Each point is represented as an array [y0, y1] where y0 is the lower value (baseline) and y1 is the upper value (topline);
- * the difference between y0 and y1 corresponds to the computed value for this point.
- *
- * SeriesPoint is a [number, number] two-element Array with added data and index properties
- * related to the data element which formed the basis for theSeriesPoint.
- */
-export interface SeriesPoint<Datum> extends Array<number> {
-    /**
-     * Corresponds to y0, the lower value (baseline).
-     */
-    0: number;
-    /**
-     * Corresponds to y1, the upper value (topline).
-     */
-    1: number;
-    /**
-     * The data element underlying the series point.
-     */
-    data: Datum;
-}
-
-/**
- * The series are determined by the keys accessor; each series i in the returned array corresponds to the ith key.
- * Each series is an array of points, where each point j corresponds to the jth element in the input data.
- *
- * The key for each series is available as series.key, and the index as series.index.
- */
-export interface Series<Datum, Key> extends Array<SeriesPoint<Datum>> {
-    /**
-     * Key of the series.
-     */
-    key: Key;
-    /**
-     * Index of the series in the series array returned by stack generator.
-     */
-    index: number;
-}
-
-/**
- * A stack generator.
- *
- * Some shape types can be stacked, placing one shape adjacent to another.
- * For example, a bar chart of monthly sales might be broken down into a multi-series bar chart by product category, stacking bars vertically.
- * This is equivalent to subdividing a bar chart by an ordinal dimension (such as product category) and applying a color encoding.
- *
- * Stacked charts can show overall value and per-category value simultaneously; however, it is typically harder to compare across categories, as only the bottom layer of the stack is aligned.
- * So, chose the stack order carefully, and consider a streamgraph. (See also grouped charts.)
- *
- * Like the pie generator, the stack generator does not produce a shape directly. Instead it computes positions which you can then pass to an area generator or use directly, say to position bars.
- *
- * The first generic corresponds to the "this" context in which the stack generator and its accessor functions are invoked.
- *
- * The second generic corresponds to the data type of an element in the data array passed into the stack generator.
- *
- * The third generic corresponds to the data type of key used to identify a series.
- */
-export interface Stack<This, Datum, Key> {
-    /**
-     * Generates a stack for the given array of data, returning an array representing each series.
-     * The resulting array has one element per series. Each series in then typically passed to an area generator to render an area chart,
-     * or used to construct rectangles for a bar chart.
-     *
-     * Any additional arguments are arbitrary; they are simply propagated to the generator’s accessor functions along with the this object.
-     *
-     * @param data Array of data elements.
-     */
-    (data: Iterable<Datum>, ...args: any[]): Array<Series<Datum, Key>>;
-
-    /**
-     * Returns the current keys accessor, which defaults to the empty array.
-     */
-    keys(): (this: This, data: Datum[], ...args: any[]) => Key[];
-    /**
-     * Sets the keys accessor to the specified function or array and returns this stack generator.
-     * A series (layer) is generated for each key.
-     * Keys are typically strings, but they may be arbitrary values.
-     * The series’ key is passed to the value accessor, along with each data point, to compute the point’s value.
-     */
-    keys(keys: Iterable<Key> | ((this: This, data: Datum[], ...args: any[]) => Key[])): this;
-
-    /**
-     * Returns the current value accessor, which defaults to a function return the property corresponding to the relevant key from the data element.
-     *
-     * Thus, by default the stack generator assumes that the input data is an array of objects, with each object exposing named properties with numeric values; see stack for an example.
-     */
-    value(): (d: Datum, key: Key, i: number, data: Datum[]) => number;
-    /**
-     * Sets the value accessor to the specified number and returns this stack generator.
-     *
-     * @param value A constant value.
-     */
-    value(value: number): this;
-    /**
-     * Sets the value accessor to the specified function and returns this stack generator.
-     *
-     * @param value A value accessor function which returns the numeric value for a given data element and key combination. The accessor function is invoked for each data element and key being passed
-     * the datum, the key, index of the data element in the input data array, and the complete data array.
-     */
-    value(value: (d: Datum, key: Key, i: number, data: Datum[]) => number): this;
-
-    /**
-     * Returns the current order accessor, which defaults to stackOrderNone; this uses the order given by the key accessor.
-     */
-    order(): (series: Series<Datum, Key>) => Iterable<number>;
-    /**
-     * Sets the order accessor to the specified array and returns this stack generator.
-     */
-    order(order: null | Iterable<number>): this;
-    /**
-     * Sets the order accessor to the specified function and returns this stack generator.
-     *
-     * The stack order is computed prior to the offset; thus, the lower value for all points is zero at the time the order is computed.
-     * The index attribute for each series is also not set until after the order is computed.
-     *
-     * See stack orders for the built-in orders.
-     *
-     * @param order A function returning a sort order array. It is passed the generated series array and must return an array of numeric indexes representing the stack order.
-     */
-    order(order: (series: Series<Datum, Key>) => Iterable<number>): this;
-
-    /**
-     * Returns the current offset accessor, which defaults to stackOffsetNone; this uses a zero baseline.
-     */
-    offset(): (series: Series<Datum, Key>[], order: number[]) => void;
-    /**
-     * Reset the offset to use stackOffsetNone; this uses a zero baseline.
-     *
-     * @param offset null to set to the default stackOffsetNone.
-     */
-    offset(offset: null): this;
-    /**
-     * Sets the offset accessor to the specified function and returns this stack generator.
-     *
-     * @param offset A function which is passed the generated series array and the order index array;
-     *               it is then responsible for updating the lower and upper values in the series array.
-     */
-    offset(offset: (series: Series<Datum, Key>[], order: number[]) => void): this;
-}
-
-/**
- * Constructs a new stack generator with the default settings.
- *
- * Ensure that the accessors used with the stack generator correspond to the arguments passed into them.
- */
-export function stack(): Stack<any, { [key: string]: number }, string>;
-/**
- * Constructs a new stack generator with the default settings.
- *
- * Ensure that the accessors used with the stack generator correspond to the arguments passed into them.
- *
- * The generic corresponds to the data type of an element in the data array passed into the stack generator.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function stack<Datum>(): Stack<any, Datum, string>;
-/**
- * Constructs a new stack generator with the default settings.
- *
- * Ensure that the accessors used with the stack generator correspond to the arguments passed into them.
- *
- * The first generic corresponds to the data type of an element in the data array passed into the stack generator.
- *
- * The second generic corresponds to the data type of key used to identify a series.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function stack<Datum, Key>(): Stack<any, Datum, Key>;
-/**
- * Constructs a new stack generator with the default settings.
- *
- * Ensure that the accessors used with the stack generator correspond to the arguments passed into them.
- *
- * The first generic corresponds to the "this" context in which the stack generator and its accessor functions are invoked.
- *
- * The second generic corresponds to the data type of an element in the data array passed into the stack generator.
- *
- * The third generic corresponds to the data type of key used to identify a series.
- */
-// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
-export function stack<This, Datum, Key>(): Stack<This, Datum, Key>;
-
-/**
- * Returns a series order such that the earliest series (according to the maximum value) is at the bottom.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderAppearance(series: Series<any, any>): number[];
-
-/**
- * Returns a series order such that the smallest series (according to the sum of values) is at the bottom.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderAscending(series: Series<any, any>): number[];
-
-/**
- * Returns a series order such that the largest series (according to the sum of values) is at the bottom.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderDescending(series: Series<any, any>): number[];
-
-/**
- * Returns a series order such that the larger series (according to the sum of values) are on the inside and the smaller series are on the outside.
- * This order is recommended for streamgraphs in conjunction with the wiggle offset. See Stacked Graphs—Geometry & Aesthetics by Byron & Wattenberg for more information.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderInsideOut(series: Series<any, any>): number[];
-
-/**
- * Returns the given series order [0, 1, … n - 1] where n is the number of elements in series. Thus, the stack order is given by the key accessor.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderNone(series: Series<any, any>): number[];
-
-/**
- * Returns the reverse of the given series order [n - 1, n - 2, … 0] where n is the number of elements in series. Thus, the stack order is given by the reverse of the key accessor.
- *
- * @param series A series generated by a stack generator.
- */
-export function stackOrderReverse(series: Series<any, any>): number[];
-
-/**
- * Applies a zero baseline and normalizes the values for each point such that the topline is always one.
- *
- * @param series A series array generated by a stack generator.
- * @param order An array of numeric indexes representing the stack order.
- */
-export function stackOffsetExpand(series: Series<any, any>[], order: Iterable<number>): void;
-
-/**
- * Positive values are stacked above zero, while negative values are stacked below zero.
- *
- * @param series A series array generated by a stack generator.
- * @param order An array of numeric indexes representing the stack order.
- */
-export function stackOffsetDiverging(series: Series<any, any>[], order: Iterable<number>): void;
-
-/**
- * Applies a zero baseline.
- *
- * @param series A series array generated by a stack generator.
- * @param order An array of numeric indexes representing the stack order.
- */
-export function stackOffsetNone(series: Series<any, any>[], order: Iterable<number>): void;
-
-/**
- * Shifts the baseline down such that the center of the streamgraph is always at zero.
- *
- * @param series A series array generated by a stack generator.
- * @param order An array of numeric indexes representing the stack order.
- */
-export function stackOffsetSilhouette(series: Series<any, any>[], order: Iterable<number>): void;
-
-/**
- * Shifts the baseline so as to minimize the weighted wiggle of layers. This offset is recommended for streamgraphs in conjunction with the inside-out order.
- * See Stacked Graphs—Geometry & Aesthetics by Bryon & Wattenberg for more information.
- *
- * @param series A series array generated by a stack generator.
- * @param order An array of numeric indexes representing the stack order.
- */
-export function stackOffsetWiggle(series: Series<any, any>[], order: Iterable<number>): void;
Index: de_modules/@types/d3-shape/package.json
===================================================================
--- node_modules/@types/d3-shape/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-    "name": "@types/d3-shape",
-    "version": "3.1.8",
-    "description": "TypeScript definitions for d3-shape",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-shape",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        },
-        {
-            "name": "Fil",
-            "githubUsername": "Fil",
-            "url": "https://github.com/Fil"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-shape"
-    },
-    "scripts": {},
-    "dependencies": {
-        "@types/d3-path": "*"
-    },
-    "peerDependencies": {},
-    "typesPublisherContentHash": "c63f7faa7fd70d5689095623946e70f1369c54cb6490949c7f581beabbfd61e6",
-    "typeScriptVersion": "5.2"
-}
Index: de_modules/@types/d3-time/LICENSE
===================================================================
--- node_modules/@types/d3-time/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-time/README.md
===================================================================
--- node_modules/@types/d3-time/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-time`
-
-# Summary
-This package contains type definitions for d3-time (https://github.com/d3/d3-time/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-time.
-
-### Additional Details
- * Last updated: Mon, 25 Nov 2024 10:02:27 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-time/index.d.ts
===================================================================
--- node_modules/@types/d3-time/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,697 +1,0 @@
-// Last module patch version validated against: 3.0.0
-
-// ---------------------------------------------------------------
-// Interfaces
-// ---------------------------------------------------------------
-
-/**
- * A D3 Time Interval
- */
-export interface TimeInterval {
-    /**
-     * Returns a new date representing the latest interval boundary date before or equal to date.
-     * Equivalent to interval.floor, except it date is not specified, it defaults to the current time.
-     * For example, d3.timeYear(date) and d3.timeYear.floor(date) are equivalent.
-     *
-     * For example, timeDay(date) typically returns 12:00 AM local time on the given date.
-     *
-     * This function is idempotent: if the specified date is already floored to the current interval,
-     * a new date with an identical time is returned.
-     * Furthermore, the returned date is the minimum expressible value of the associated interval,
-     * such that interval.floor(interval.floor(date) - 1) returns the preceding interval boundary date.
-     *
-     * Note that the == and === operators do not compare by value with Date objects,
-     * and thus you cannot use them to tell whether the specified date has already been floored.
-     * Instead, coerce to a number and then compare.
-     *
-     * This is more reliable than testing whether the time is 12:00 AM, as in some time zones midnight may not exist due to daylight saving.
-     *
-     * @param date A date object.
-     */
-    (date?: Date): Date;
-
-    /**
-     * Returns a new date representing the latest interval boundary date before or equal to date.
-     *
-     * For example, timeDay.floor(date) typically returns 12:00 AM local time on the given date.
-     *
-     * This method is idempotent: if the specified date is already floored to the current interval,
-     * a new date with an identical time is returned.
-     * Furthermore, the returned date is the minimum expressible value of the associated interval,
-     * such that interval.floor(interval.floor(date) - 1) returns the preceding interval boundary date.
-     *
-     * Note that the == and === operators do not compare by value with Date objects,
-     * and thus you cannot use them to tell whether the specified date has already been floored.
-     * Instead, coerce to a number and then compare.
-     *
-     * This is more reliable than testing whether the time is 12:00 AM, as in some time zones midnight may not exist due to daylight saving.
-     *
-     * @param date A date object.
-     */
-    floor(date: Date): Date;
-
-    /**
-     * Returns a new date representing the closest interval boundary date to date.
-     *
-     * For example, timeDay.round(date) typically returns 12:00 AM local time on the given date if it is on or before noon,
-     * and 12:00 AM of the following day if it is after noon.
-     *
-     * This method is idempotent: if the specified date is already rounded to the current interval, a new date with an identical time is returned.
-     *
-     * @param date A date object.
-     */
-    round(date: Date): Date;
-
-    /**
-     * Returns a new date representing the earliest interval boundary date after or equal to date.
-     *
-     * For example, timeDay.ceil(date) typically returns 12:00 AM local time on the date following the given date.
-     *
-     * This method is idempotent: if the specified date is already ceilinged to the current interval,
-     * a new date with an identical time is returned. Furthermore,
-     * the returned date is the maximum expressible value of the associated interval,
-     * such that interval.ceil(interval.ceil(date) + 1) returns the following interval boundary date.
-     *
-     * @param date A date object.
-     */
-    ceil(date: Date): Date;
-
-    /**
-     * Returns a new date equal to date plus step intervals.
-     *
-     * If step is not specified it defaults to 1.
-     *
-     * This method does not round the specified date to the interval. For example, if date is today at 5:34 PM,
-     * then timeDay.offset(date, 1) returns 5:34 PM tomorrow (even if daylight saving changes!).
-     *
-     * @param date A date object.
-     * @param step An optional number of steps to apply when calculating the offset date.
-     * If step is negative, then the returned date will be before the specified date;
-     * if step is zero, then a copy of the specified date is returned; if step is not an integer, it is floored.
-     */
-    offset(date: Date, step?: number): Date;
-
-    /**
-     * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).
-     *
-     * If step is specified, then every step-th boundary will be returned; for example,
-     * for the timeDay interval a step of 2 will return every other day.
-     * If step is not an integer, it is floored.
-     *
-     * The first date in the returned array is the earliest boundary after or equal to start;
-     * subsequent dates are offset by step intervals and floored.
-     * Thus, two overlapping ranges may be inconsistent.
-     *
-     * To make ranges consistent when a step is specified, use CountableInterval.every instead.
-     *
-     * @param start A start date object for the range.
-     * @param stop A stop date object for the range.
-     * @param step An optional number of steps to apply when calculating the dates in the range.
-     */
-    range(start: Date, stop: Date, step?: number): Date[];
-
-    /**
-     * Returns a new interval that is a filtered subset of this interval using the specified test function.
-     *
-     * @param test A test function which is passed a date and should return true if and only if
-     * the specified date should be considered part of the interval.
-     */
-    filter(test: (date: Date) => boolean): TimeInterval;
-}
-
-/**
- * A D3 Countable Time Interval
- */
-export interface CountableTimeInterval extends TimeInterval {
-    /**
-     * Returns the number of interval boundaries after start (exclusive) and before or equal to end (inclusive).
-     *
-     * Note that this behavior is slightly different than interval.range,
-     * because its purpose is to return the zero-based number of the specified end date relative to the specified start date.
-     *
-     * @param start A start date object.
-     * @param end An end date object.
-     */
-    count(start: Date, end: Date): number;
-    /**
-     * Returns a filtered view of this interval representing every stepth date.
-     *
-     * The meaning of step is dependent on this interval’s parent interval as defined by the field function.
-     *
-     * For example, timeMinute.every(15) returns an interval representing every fifteen minutes,
-     * starting on the hour: :00, :15, :30, :45, etc. Note that for some intervals,
-     * the resulting dates may not be uniformly-spaced;
-     * timeDay’s parent interval is timeMonth, and thus the interval number resets at the start of each month.
-     *
-     * If step is not valid, returns null. If step is one, returns this interval.
-     *
-     * This method can be used in conjunction with interval.range to ensure that two overlapping ranges are consistent.
-     *
-     * The returned filtered interval does not support interval.count. See also interval.filter.
-     *
-     * @param step Number of steps.
-     */
-    every(step: number): TimeInterval | null;
-}
-
-// ---------------------------------------------------------------
-// Custom (Countable)Interval Factories
-// ---------------------------------------------------------------
-
-/**
- * Constructs a new custom interval given the specified floor and offset functions.
- *
- * The returned custom interval is not countable, i.e. does not expose the methods "count(..)" and "every(...)".
- *
- * @param floor A floor function which takes a single date as an argument and rounds it down to the nearest interval boundary.
- * @param offset An offset function which takes a date and an integer step as arguments and advances
- * the specified date by the specified number of boundaries; the step may be positive, negative or zero.
- */
-export function timeInterval(
-    floor: (date: Date) => void,
-    offset: (date: Date, step: number) => void,
-): TimeInterval;
-/**
- * Constructs a new custom interval given the specified floor, offset and count functions.
- *
- * The returned custom interval is countable and exposes the methods "count(..)" and "every(...)".
- *
- * Note: due to an internal optimization, the specified count function must not invoke interval.count on other time intervals.
- *
- * @param floor A floor function which takes a single date as an argument and rounds it down to the nearest interval boundary.
- * @param offset An offset function which takes a date and an integer step as arguments and advances
- * the specified date by the specified number of boundaries; the step may be positive, negative or zero.
- * @param count A count function which takes a start date and an end date, already floored to the current interval,
- * and returns the number of boundaries between the start (exclusive) and end (inclusive).
- * Note: due to an internal optimization, the specified count function must not invoke interval.count on other time intervals.
- * @param field An optional field function which takes a date, already floored to the current interval,
- * and returns the field value of the specified date,
- * corresponding to the number of boundaries between this date (exclusive) and the latest previous parent boundary.
- * For example, for the timeDay interval, this returns the number of days since the start of the month.
- * If a field function is not specified, it defaults to counting the number of interval boundaries since
- * the UNIX epoch of January 1, 1970 UTC. The field function defines the behavior of interval.every.
- */
-export function timeInterval(
-    floor: (date: Date) => void,
-    offset: (date: Date, step: number) => void,
-    count: (start: Date, end: Date) => number,
-    field?: (date: Date) => number,
-): CountableTimeInterval;
-
-// ---------------------------------------------------------------
-// Built-In Factories and Date Array Creators
-// ---------------------------------------------------------------
-
-// local time ----------------------------------------------------------
-
-/**
- * Milliseconds Interval in Local Time; the shortest available time unit.
- */
-export const timeMillisecond: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeMillisecond.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeMilliseconds(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Seconds Interval in Local Time; seconds (e.g., 01:23:45.0000 AM); 1,000 milliseconds.
- */
-export const timeSecond: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeSecond.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeSeconds(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Minutes Interval in Local Time; minutes (e.g., 01:02:00 AM); 60 seconds. Note that ECMAScript ignores leap seconds.
- */
-export const timeMinute: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeMinute.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeMinutes(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Hours Interval in Local Time; Hours (e.g., 01:00 AM); 60 minutes.
- *
- * Note that advancing time by one hour in local time can return the same hour or skip an hour due to daylight saving.
- */
-export const timeHour: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeHour.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeHours(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Days Interval in Local Time; days (e.g., February 7, 2012 at 12:00 AM); typically 24 hours.
- * Days in local time may range from 23 to 25 hours due to daylight saving.
- */
-export const timeDay: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeDay.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeDays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval in Local Time. Alias for sunday; 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeWeek: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeWeek.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeWeeks(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Sunday-based weeks in Local Time (e.g., February 5, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeSunday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeSunday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeSundays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Monday-based weeks in Local Time (e.g., February 6, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeMonday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeMonday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeMondays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Tuesday-based weeks in Local Time (e.g., February 7, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeTuesday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeTuesday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeTuesdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Wednesday-based weeks in Local Time (e.g., February 8, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeWednesday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeWednesday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeWednesdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Thursday-based weeks in Local Time (e.g., February 9, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeThursday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeThursday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeThursdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Friday-based weeks in Local Time (e.g., February 10, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeFriday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeFriday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeFridays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Saturday-based weeks in Local Time (e.g., February 11, 2012 at 12:00 AM).
- * 7 days and typically 168 hours.
- *
- * Weeks in local time may range from 167 to 169 hours due on daylight saving.
- */
-export const timeSaturday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeSaturday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeSaturdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Month Interval in Local Time; months (e.g., February 1, 2012 at 12:00 AM); ranges from 28 to 31 days.
- */
-export const timeMonth: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeMonth.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeMonths(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Year Interval in Local Time; years (e.g., January 1, 2012 at 12:00 AM); ranges from 365 to 366 days.
- */
-export const timeYear: CountableTimeInterval;
-
-/**
- * This is a convenience alias for timeYear.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function timeYears(start: Date, stop: Date, step?: number): Date[];
-
-// utc Coordinated Universal Time ----------------------------------------------------------
-
-/**
- * Milliseconds Interval in Coordinated Universal Time (UTC); the shortest available time unit.
- */
-export const utcMillisecond: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcMillisecond.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcMilliseconds(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Seconds Interval in Coordinated Universal Time (UTC); seconds (e.g., 01:23:45.0000 AM); 1,000 milliseconds.
- */
-export const utcSecond: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcSecond.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcSeconds(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Minutes Interval in Coordinated Universal Time (UTC); minutes (e.g., 01:02:00 AM); 60 seconds.
- * Note that ECMAScript ignores leap seconds.
- */
-export const utcMinute: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcMinute.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcMinutes(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Hours Interval in Coordinated Universal Time (UTC); Hours (e.g., 01:00 AM); 60 minutes.
- */
-export const utcHour: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcHour.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcHours(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Days Interval in Coordinated Universal Time (UTC); days (e.g., February 7, 2012 at 12:00 AM); 24 hours.
- */
-export const utcDay: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcDay.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcDays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval in Local Time. Alias for sunday; 7 days and 168 hours.
- */
-export const utcWeek: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcWeek.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcWeeks(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Sunday-based weeks in Coordinated Universal Time (UTC) (e.g., February 5, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcSunday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcSunday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcSundays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Monday-based weeks in Coordinated Universal Time (UTC) (e.g., February 6, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcMonday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcMonday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcMondays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Tuesday-based weeks in Coordinated Universal Time (UTC) (e.g., February 7, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcTuesday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcTuesday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcTuesdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Wednesday-based weeks in Coordinated Universal Time (UTC) (e.g., February 8, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcWednesday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcWednesday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcWednesdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Thursday-based weeks in Coordinated Universal Time (UTC) (e.g., February 9, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcThursday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcThursday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcThursdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Friday-based weeks in Coordinated Universal Time (UTC) (e.g., February 10, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcFriday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcFriday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcFridays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Week Interval for Saturday-based weeks in Coordinated Universal Time (UTC) (e.g., February 11, 2012 at 12:00 AM).
- * 7 days and 168 hours.
- */
-export const utcSaturday: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcSaturday.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcSaturdays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Month Interval in Coordinated Universal Time (UTC); months (e.g., February 1, 2012 at 12:00 AM); ranges from 28 to 31 days.
- */
-export const utcMonth: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcMonth.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcMonths(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Year Interval in Coordinated Universal Time (UTC); years (e.g., January 1, 2012 at 12:00 AM); ranges from 365 to 366 days.
- */
-export const utcYear: CountableTimeInterval;
-
-/**
- * This is a convenience alias for utcYear.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function utcYears(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Like d3.utcDay, except it counts days since the UNIX epoch (January 1, 1970) such that interval.every returns uniformly-spaced dates rather than varying based on day-of-month.
- */
-export const unixDay: CountableTimeInterval;
-
-/**
- * This is a convenience alias for unixDay.range(...).
- *
- * @param start A start date object for the range.
- * @param stop A stop date object for the range.
- * @param step An optional number of steps to apply when calculating the dates in the range.
- */
-export function unixDays(start: Date, stop: Date, step?: number): Date[];
-
-/**
- * Equivalent to d3.utcTicks, but in local time.
- */
-export function timeTicks(start: Date, stop: Date, count: number): Date[];
-
-/**
- * Returns the time interval that would be used by d3.timeTicks given the same arguments.
- */
-export function timeTickInterval(start: Date, stop: Date, count: number): TimeInterval | null;
-
-/**
- * Returns an array of approximately count dates at regular intervals between start and stop (inclusive).
- * If stop is before start, dates are returned in reverse chronological order; otherwise dates are returned in chronological order.
- */
-export function utcTicks(start: Date, stop: Date, count: number): Date[];
-
-/**
- * Returns the time interval that would be used by d3.utcTicks given the same arguments.
- * If there is no associated interval, such as when start or stop is invalid, returns null.
- */
-export function utcTickInterval(start: Date, stop: Date, count: number): TimeInterval | null;
Index: de_modules/@types/d3-time/package.json
===================================================================
--- node_modules/@types/d3-time/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-{
-    "name": "@types/d3-time",
-    "version": "3.0.4",
-    "description": "TypeScript definitions for d3-time",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-time",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-time"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "peerDependencies": {},
-    "typesPublisherContentHash": "995c6a7a1f21328f5dceb32804c5f3d92ab20a98694246d9c8f213f4eef298ed",
-    "typeScriptVersion": "4.9"
-}
Index: de_modules/@types/d3-timer/LICENSE
===================================================================
--- node_modules/@types/d3-timer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/d3-timer/README.md
===================================================================
--- node_modules/@types/d3-timer/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/d3-timer`
-
-# Summary
-This package contains type definitions for d3-timer (https://github.com/d3/d3-timer/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-timer.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 15:11:37 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Tom Wanzek](https://github.com/tomwanzek), [Alex Ford](https://github.com/gustavderdrache), [Boris Yankov](https://github.com/borisyankov), [denisname](https://github.com/denisname), and [Nathan Bierema](https://github.com/Methuselah96).
Index: de_modules/@types/d3-timer/index.d.ts
===================================================================
--- node_modules/@types/d3-timer/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-// Last module patch version validated against: 3.0.1
-
-/**
- * Returns the current time as defined by performance.now if available, and Date.now if not.
- * The current time is updated at the start of a frame; it is thus consistent during the frame, and any timers scheduled during the same frame will be synchronized.
- * If this method is called outside of a frame, such as in response to a user event, the current time is calculated and then fixed until the next frame,
- * again ensuring consistent timing during event handling.
- */
-export function now(): number;
-
-export interface Timer {
-    /**
-     * Restart a timer with the specified callback and optional delay and time.
-     * This is equivalent to stopping this timer and creating a new timer with the specified arguments,
-     * although this timer retains the original invocation priority.
-     *
-     * @param callback A callback function to be invoked and passed in the apparent
-     * elapsed time since the timer became active in milliseconds.
-     * @param delay An optional numeric delay in milliseconds (default = 0) relative to time.
-     * @param time An optional time in milliseconds relative to which the delay is calculated (default = now).
-     */
-    restart(callbackFn: (elapsed: number) => void, delay?: number, time?: number): void;
-
-    /**
-     * Stop the timer.
-     */
-    stop(): void;
-}
-
-/**
- * Schedules and returns a new timer, invoking the specified callback repeatedly until the timer is stopped.
- * The callback is passed the (apparent) elapsed time since the timer became active.
- *
- * @param callback A callback function to be invoked and passed in the apparent
- * elapsed time since the timer became active in milliseconds.
- * @param delay An optional numeric delay in milliseconds (default = 0) relative to time.
- * @param time An optional time in milliseconds relative to which the delay is calculated (default = now).
- */
-export function timer(callback: (elapsed: number) => void, delay?: number, time?: number): Timer;
-
-/**
- * Immediately invoke any eligible timer callbacks.
- */
-export function timerFlush(): void;
-
-/**
- * Schedules and returns a new timer, invoking the specified callback. The timer is stopped automatically
- * on its first callback. The callback is passed the (apparent) elapsed time since the timer became active.
- *
- * @param callback A callback function to be invoked and passed in the apparent
- * elapsed time since the timer became active in milliseconds.
- * @param delay An optional numeric delay in milliseconds (default = 0) relative to time.
- * @param time An optional time in milliseconds relative to which the delay is calculated (default = now).
- */
-export function timeout(callback: (elapsed: number) => void, delay?: number, time?: number): Timer;
-
-/**
- * Schedules and returns a new timer, invoking the specified callback repeatedly every 'delay' milliseconds
- * until the timer is stopped.
- * The callback is passed the (apparent) elapsed time since the timer became active.
- *
- * @param callback A callback function to be invoked and passed in the apparent
- * elapsed time since the timer became active in milliseconds.
- * @param delay An optional numeric delay in milliseconds between repeat invocations of the callback.
- * If not specified, the interval timer behaves like the regular timer.
- * @param time An optional time in milliseconds relative to which the initial delay is calculated (default = now).
- */
-export function interval(callback: (elapsed: number) => void, delay?: number, time?: number): Timer;
Index: de_modules/@types/d3-timer/package.json
===================================================================
--- node_modules/@types/d3-timer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-{
-    "name": "@types/d3-timer",
-    "version": "3.0.2",
-    "description": "TypeScript definitions for d3-timer",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/d3-timer",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Tom Wanzek",
-            "githubUsername": "tomwanzek",
-            "url": "https://github.com/tomwanzek"
-        },
-        {
-            "name": "Alex Ford",
-            "githubUsername": "gustavderdrache",
-            "url": "https://github.com/gustavderdrache"
-        },
-        {
-            "name": "Boris Yankov",
-            "githubUsername": "borisyankov",
-            "url": "https://github.com/borisyankov"
-        },
-        {
-            "name": "denisname",
-            "githubUsername": "denisname",
-            "url": "https://github.com/denisname"
-        },
-        {
-            "name": "Nathan Bierema",
-            "githubUsername": "Methuselah96",
-            "url": "https://github.com/Methuselah96"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/d3-timer"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "a51fc6981e6d12715fd052f7e598dd291c354465025cbb33ece1895bdab4109c",
-    "typeScriptVersion": "4.5"
-}
Index: de_modules/@types/use-sync-external-store/LICENSE
===================================================================
--- node_modules/@types/use-sync-external-store/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
Index: de_modules/@types/use-sync-external-store/README.md
===================================================================
--- node_modules/@types/use-sync-external-store/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# Installation
-> `npm install --save @types/use-sync-external-store`
-
-# Summary
-This package contains type definitions for use-sync-external-store (https://github.com/facebook/react#readme).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/use-sync-external-store.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 15:11:36 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [eps1lon](https://github.com/eps1lon), and [Mark Erikson](https://github.com/markerikson).
Index: de_modules/@types/use-sync-external-store/index.d.ts
===================================================================
--- node_modules/@types/use-sync-external-store/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export function useSyncExternalStore<Snapshot>(
-    subscribe: (onStoreChange: () => void) => () => void,
-    getSnapshot: () => Snapshot,
-    getServerSnapshot?: () => Snapshot,
-): Snapshot;
Index: de_modules/@types/use-sync-external-store/package.json
===================================================================
--- node_modules/@types/use-sync-external-store/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-{
-    "name": "@types/use-sync-external-store",
-    "version": "0.0.6",
-    "description": "TypeScript definitions for use-sync-external-store",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/use-sync-external-store",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "eps1lon",
-            "githubUsername": "eps1lon",
-            "url": "https://github.com/eps1lon"
-        },
-        {
-            "name": "Mark Erikson",
-            "githubUsername": "markerikson",
-            "url": "https://github.com/markerikson"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/use-sync-external-store"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "c048e9b12d49a82481404fb3bc099a0aa28adff9fc0d9755b69bbc54901ea2fb",
-    "typeScriptVersion": "4.5"
-}
Index: de_modules/@types/use-sync-external-store/shim/index.d.ts
===================================================================
--- node_modules/@types/use-sync-external-store/shim/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from "../";
Index: de_modules/@types/use-sync-external-store/shim/with-selector.d.ts
===================================================================
--- node_modules/@types/use-sync-external-store/shim/with-selector.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from "../with-selector";
Index: de_modules/@types/use-sync-external-store/with-selector.d.ts
===================================================================
--- node_modules/@types/use-sync-external-store/with-selector.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function useSyncExternalStoreWithSelector<Snapshot, Selection>(
-    subscribe: (onStoreChange: () => void) => () => void,
-    getSnapshot: () => Snapshot,
-    getServerSnapshot: undefined | null | (() => Snapshot),
-    selector: (snapshot: Snapshot) => Selection,
-    isEqual?: (a: Selection, b: Selection) => boolean,
-): Selection;
Index: de_modules/autoprefixer/LICENSE
===================================================================
--- node_modules/autoprefixer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-The MIT License (MIT)
-
-Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/autoprefixer/README.md
===================================================================
--- node_modules/autoprefixer/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-# Autoprefixer [![Cult Of Martians][cult-img]][cult]
-
-<img align="right" width="94" height="71"
-     src="https://postcss.github.io/autoprefixer/logo.svg"
-     title="Autoprefixer logo by Anton Lovchikov">
-
-[PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values
-from [Can I Use]. It is recommended by Google and used in Twitter and Alibaba.
-
-Write your CSS rules without vendor prefixes (in fact, forget about them
-entirely):
-
-```css
-::placeholder {
-  color: gray;
-}
-
-.image {
-  width: stretch;
-}
-```
-
-Autoprefixer will use the data based on current browser popularity and property
-support to apply prefixes for you. You can try the [interactive demo]
-of Autoprefixer.
-
-```css
-::-moz-placeholder {
-  color: gray;
-}
-::placeholder {
-  color: gray;
-}
-
-.image {
-  width: -webkit-fill-available;
-  width: -moz-available;
-  width: stretch;
-}
-```
-
-Twitter account for news and releases: [@autoprefixer].
-
-<a href="https://evilmartians.com/?utm_source=autoprefixer">
-<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54">
-</a>
-
-[interactive demo]: https://autoprefixer.github.io/
-[@autoprefixer]:    https://twitter.com/autoprefixer
-[Can I Use]:        https://caniuse.com/
-[cult-img]:         https://cultofmartians.com/assets/badges/badge.svg
-[PostCSS]:          https://github.com/postcss/postcss
-[cult]:             https://cultofmartians.com/tasks/autoprefixer-grid.html
-
-
-## Docs
-Read full docs **[here](https://github.com/postcss/autoprefixer#readme)**.
Index: de_modules/autoprefixer/bin/autoprefixer
===================================================================
--- node_modules/autoprefixer/bin/autoprefixer	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-#!/usr/bin/env node
-
-let mode = process.argv[2]
-if (mode === '--info') {
-  process.stdout.write(require('../')().info() + '\n')
-} else if (mode === '--version') {
-  process.stdout.write(
-    'autoprefixer ' + require('../package.json').version + '\n'
-  )
-} else {
-  process.stdout.write(
-    'autoprefix\n' +
-      '\n' +
-      'Options:\n' +
-      '  --info    Show target browsers and used prefixes\n' +
-      '  --version Show version number\n' +
-      '  --help    Show help\n' +
-      '\n' +
-      'Usage:\n' +
-      '  autoprefixer --info\n'
-  )
-}
Index: de_modules/autoprefixer/data/prefixes.js
===================================================================
--- node_modules/autoprefixer/data/prefixes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1139 +1,0 @@
-let unpack = require('caniuse-lite/dist/unpacker/feature')
-
-function browsersSort(a, b) {
-  a = a.split(' ')
-  b = b.split(' ')
-  if (a[0] > b[0]) {
-    return 1
-  } else if (a[0] < b[0]) {
-    return -1
-  } else {
-    return Math.sign(parseFloat(a[1]) - parseFloat(b[1]))
-  }
-}
-
-// Convert Can I Use data
-function f(data, opts, callback) {
-  data = unpack(data)
-
-  if (!callback) {
-    ;[callback, opts] = [opts, {}]
-  }
-
-  let match = opts.match || /\sx($|\s)/
-  let need = []
-
-  for (let browser in data.stats) {
-    let versions = data.stats[browser]
-    for (let version in versions) {
-      let support = versions[version]
-      if (support.match(match)) {
-        need.push(browser + ' ' + version)
-      }
-    }
-  }
-
-  callback(need.sort(browsersSort))
-}
-
-// Add data for all properties
-let result = {}
-
-function prefix(names, data) {
-  for (let name of names) {
-    result[name] = Object.assign({}, data)
-  }
-}
-
-function add(names, data) {
-  for (let name of names) {
-    result[name].browsers = result[name].browsers
-      .concat(data.browsers)
-      .sort(browsersSort)
-  }
-}
-
-module.exports = result
-
-// Border Radius
-let prefixBorderRadius = require('caniuse-lite/data/features/border-radius')
-
-f(prefixBorderRadius, browsers =>
-  prefix(
-    [
-      'border-radius',
-      'border-top-left-radius',
-      'border-top-right-radius',
-      'border-bottom-right-radius',
-      'border-bottom-left-radius'
-    ],
-    {
-      browsers,
-      feature: 'border-radius',
-      mistakes: ['-khtml-', '-ms-', '-o-']
-    }
-  )
-)
-
-// Box Shadow
-let prefixBoxshadow = require('caniuse-lite/data/features/css-boxshadow')
-
-f(prefixBoxshadow, browsers =>
-  prefix(['box-shadow'], {
-    browsers,
-    feature: 'css-boxshadow',
-    mistakes: ['-khtml-']
-  })
-)
-
-// Animation
-let prefixAnimation = require('caniuse-lite/data/features/css-animation')
-
-f(prefixAnimation, browsers =>
-  prefix(
-    [
-      'animation',
-      'animation-name',
-      'animation-duration',
-      'animation-delay',
-      'animation-direction',
-      'animation-fill-mode',
-      'animation-iteration-count',
-      'animation-play-state',
-      'animation-timing-function',
-      '@keyframes'
-    ],
-    {
-      browsers,
-      feature: 'css-animation',
-      mistakes: ['-khtml-', '-ms-']
-    }
-  )
-)
-
-// Transition
-let prefixTransition = require('caniuse-lite/data/features/css-transitions')
-
-f(prefixTransition, browsers =>
-  prefix(
-    [
-      'transition',
-      'transition-property',
-      'transition-duration',
-      'transition-delay',
-      'transition-timing-function'
-    ],
-    {
-      browsers,
-      feature: 'css-transitions',
-      mistakes: ['-khtml-', '-ms-']
-    }
-  )
-)
-
-// Transform 2D
-let prefixTransform2d = require('caniuse-lite/data/features/transforms2d')
-
-f(prefixTransform2d, browsers =>
-  prefix(['transform', 'transform-origin'], {
-    browsers,
-    feature: 'transforms2d'
-  })
-)
-
-// Transform 3D
-let prefixTransforms3d = require('caniuse-lite/data/features/transforms3d')
-
-f(prefixTransforms3d, browsers => {
-  prefix(['perspective', 'perspective-origin'], {
-    browsers,
-    feature: 'transforms3d'
-  })
-  return prefix(['transform-style'], {
-    browsers,
-    feature: 'transforms3d',
-    mistakes: ['-ms-', '-o-']
-  })
-})
-
-f(prefixTransforms3d, { match: /y\sx|y\s#2/ }, browsers =>
-  prefix(['backface-visibility'], {
-    browsers,
-    feature: 'transforms3d',
-    mistakes: ['-ms-', '-o-']
-  })
-)
-
-// Gradients
-let prefixGradients = require('caniuse-lite/data/features/css-gradients')
-
-f(prefixGradients, { match: /y\sx/ }, browsers =>
-  prefix(
-    [
-      'linear-gradient',
-      'repeating-linear-gradient',
-      'radial-gradient',
-      'repeating-radial-gradient'
-    ],
-    {
-      browsers,
-      feature: 'css-gradients',
-      mistakes: ['-ms-'],
-      props: [
-        'background',
-        'background-image',
-        'border-image',
-        'mask',
-        'list-style',
-        'list-style-image',
-        'content',
-        'mask-image'
-      ]
-    }
-  )
-)
-
-f(prefixGradients, { match: /a\sx/ }, browsers => {
-  browsers = browsers.map(i => {
-    if (/firefox|op/.test(i)) {
-      return i
-    } else {
-      return `${i} old`
-    }
-  })
-  return add(
-    [
-      'linear-gradient',
-      'repeating-linear-gradient',
-      'radial-gradient',
-      'repeating-radial-gradient'
-    ],
-    {
-      browsers,
-      feature: 'css-gradients'
-    }
-  )
-})
-
-// Box sizing
-let prefixBoxsizing = require('caniuse-lite/data/features/css3-boxsizing')
-
-f(prefixBoxsizing, browsers =>
-  prefix(['box-sizing'], {
-    browsers,
-    feature: 'css3-boxsizing'
-  })
-)
-
-// Filter Effects
-let prefixFilters = require('caniuse-lite/data/features/css-filters')
-
-f(prefixFilters, browsers =>
-  prefix(['filter'], {
-    browsers,
-    feature: 'css-filters'
-  })
-)
-
-// filter() function
-let prefixFilterFunction = require('caniuse-lite/data/features/css-filter-function')
-
-f(prefixFilterFunction, browsers =>
-  prefix(['filter-function'], {
-    browsers,
-    feature: 'css-filter-function',
-    props: [
-      'background',
-      'background-image',
-      'border-image',
-      'mask',
-      'list-style',
-      'list-style-image',
-      'content',
-      'mask-image'
-    ]
-  })
-)
-
-// Backdrop-filter
-let prefixBackdropFilter = require('caniuse-lite/data/features/css-backdrop-filter')
-
-f(prefixBackdropFilter, { match: /y\sx|y\s#2/ }, browsers =>
-  prefix(['backdrop-filter'], {
-    browsers,
-    feature: 'css-backdrop-filter'
-  })
-)
-
-// element() function
-let prefixElementFunction = require('caniuse-lite/data/features/css-element-function')
-
-f(prefixElementFunction, browsers =>
-  prefix(['element'], {
-    browsers,
-    feature: 'css-element-function',
-    props: [
-      'background',
-      'background-image',
-      'border-image',
-      'mask',
-      'list-style',
-      'list-style-image',
-      'content',
-      'mask-image'
-    ]
-  })
-)
-
-// Multicolumns
-let prefixMulticolumns = require('caniuse-lite/data/features/multicolumn')
-
-f(prefixMulticolumns, browsers => {
-  prefix(
-    [
-      'columns',
-      'column-width',
-      'column-gap',
-      'column-rule',
-      'column-rule-color',
-      'column-rule-width',
-      'column-count',
-      'column-rule-style',
-      'column-span',
-      'column-fill'
-    ],
-    {
-      browsers,
-      feature: 'multicolumn'
-    }
-  )
-
-  let noff = browsers.filter(i => !/firefox/.test(i))
-  prefix(['break-before', 'break-after', 'break-inside'], {
-    browsers: noff,
-    feature: 'multicolumn'
-  })
-})
-
-// User select
-let prefixUserSelect = require('caniuse-lite/data/features/user-select-none')
-
-f(prefixUserSelect, browsers =>
-  prefix(['user-select'], {
-    browsers,
-    feature: 'user-select-none',
-    mistakes: ['-khtml-']
-  })
-)
-
-// Flexible Box Layout
-let prefixFlexbox = require('caniuse-lite/data/features/flexbox')
-
-f(prefixFlexbox, { match: /a\sx/ }, browsers => {
-  browsers = browsers.map(i => {
-    if (/ie|firefox/.test(i)) {
-      return i
-    } else {
-      return `${i} 2009`
-    }
-  })
-  prefix(['display-flex', 'inline-flex'], {
-    browsers,
-    feature: 'flexbox',
-    props: ['display']
-  })
-  prefix(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], {
-    browsers,
-    feature: 'flexbox'
-  })
-  prefix(
-    [
-      'flex-direction',
-      'flex-wrap',
-      'flex-flow',
-      'justify-content',
-      'order',
-      'align-items',
-      'align-self',
-      'align-content'
-    ],
-    {
-      browsers,
-      feature: 'flexbox'
-    }
-  )
-})
-
-f(prefixFlexbox, { match: /y\sx/ }, browsers => {
-  add(['display-flex', 'inline-flex'], {
-    browsers,
-    feature: 'flexbox'
-  })
-  add(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], {
-    browsers,
-    feature: 'flexbox'
-  })
-  add(
-    [
-      'flex-direction',
-      'flex-wrap',
-      'flex-flow',
-      'justify-content',
-      'order',
-      'align-items',
-      'align-self',
-      'align-content'
-    ],
-    {
-      browsers,
-      feature: 'flexbox'
-    }
-  )
-})
-
-// calc() unit
-let prefixCalc = require('caniuse-lite/data/features/calc')
-
-f(prefixCalc, browsers =>
-  prefix(['calc'], {
-    browsers,
-    feature: 'calc',
-    props: ['*']
-  })
-)
-
-// Background options
-let prefixBackgroundOptions = require('caniuse-lite/data/features/background-img-opts')
-
-f(prefixBackgroundOptions, browsers =>
-  prefix(['background-origin', 'background-size'], {
-    browsers,
-    feature: 'background-img-opts'
-  })
-)
-
-// background-clip: text
-let prefixBackgroundClipText = require('caniuse-lite/data/features/background-clip-text')
-
-f(prefixBackgroundClipText, browsers =>
-  prefix(['background-clip'], {
-    browsers,
-    feature: 'background-clip-text'
-  })
-)
-
-// Font feature settings
-let prefixFontFeature = require('caniuse-lite/data/features/font-feature')
-
-f(prefixFontFeature, browsers =>
-  prefix(
-    [
-      'font-feature-settings',
-      'font-variant-ligatures',
-      'font-language-override'
-    ],
-    {
-      browsers,
-      feature: 'font-feature'
-    }
-  )
-)
-
-// CSS font-kerning property
-let prefixFontKerning = require('caniuse-lite/data/features/font-kerning')
-
-f(prefixFontKerning, browsers =>
-  prefix(['font-kerning'], {
-    browsers,
-    feature: 'font-kerning'
-  })
-)
-
-// Border image
-let prefixBorderImage = require('caniuse-lite/data/features/border-image')
-
-f(prefixBorderImage, browsers =>
-  prefix(['border-image'], {
-    browsers,
-    feature: 'border-image'
-  })
-)
-
-// Selection selector
-let prefixSelection = require('caniuse-lite/data/features/css-selection')
-
-f(prefixSelection, browsers =>
-  prefix(['::selection'], {
-    browsers,
-    feature: 'css-selection',
-    selector: true
-  })
-)
-
-// Placeholder selector
-let prefixPlaceholder = require('caniuse-lite/data/features/css-placeholder')
-
-f(prefixPlaceholder, browsers => {
-  prefix(['::placeholder'], {
-    browsers: browsers.concat(['ie 10 old', 'ie 11 old', 'firefox 18 old']),
-    feature: 'css-placeholder',
-    selector: true
-  })
-})
-
-// Placeholder-shown selector
-let prefixPlaceholderShown = require('caniuse-lite/data/features/css-placeholder-shown')
-
-f(prefixPlaceholderShown, browsers => {
-  prefix([':placeholder-shown'], {
-    browsers,
-    feature: 'css-placeholder-shown',
-    selector: true
-  })
-})
-
-// Hyphenation
-let prefixHyphens = require('caniuse-lite/data/features/css-hyphens')
-
-f(prefixHyphens, browsers =>
-  prefix(['hyphens'], {
-    browsers,
-    feature: 'css-hyphens'
-  })
-)
-
-// Fullscreen selector
-let prefixFullscreen = require('caniuse-lite/data/features/fullscreen')
-
-f(prefixFullscreen, browsers =>
-  prefix([':fullscreen'], {
-    browsers,
-    feature: 'fullscreen',
-    selector: true
-  })
-)
-
-// ::backdrop pseudo-element
-// https://caniuse.com/mdn-css_selectors_backdrop
-let prefixBackdrop = require('caniuse-lite/data/features/mdn-css-backdrop-pseudo-element')
-
-f(prefixBackdrop, browsers =>
-  prefix(['::backdrop'], {
-    browsers,
-    feature: 'backdrop',
-    selector: true
-  })
-)
-
-// File selector button
-let prefixFileSelectorButton = require('caniuse-lite/data/features/css-file-selector-button')
-
-f(prefixFileSelectorButton, browsers =>
-  prefix(['::file-selector-button'], {
-    browsers,
-    feature: 'file-selector-button',
-    selector: true
-  })
-)
-
-// :autofill
-let prefixAutofill = require('caniuse-lite/data/features/css-autofill')
-
-f(prefixAutofill, browsers =>
-  prefix([':autofill'], {
-    browsers,
-    feature: 'css-autofill',
-    selector: true
-  })
-)
-
-// Tab size
-let prefixTabsize = require('caniuse-lite/data/features/css3-tabsize')
-
-f(prefixTabsize, browsers =>
-  prefix(['tab-size'], {
-    browsers,
-    feature: 'css3-tabsize'
-  })
-)
-
-// Intrinsic & extrinsic sizing
-let prefixIntrinsic = require('caniuse-lite/data/features/intrinsic-width')
-
-let sizeProps = [
-  'width',
-  'min-width',
-  'max-width',
-  'height',
-  'min-height',
-  'max-height',
-  'inline-size',
-  'min-inline-size',
-  'max-inline-size',
-  'block-size',
-  'min-block-size',
-  'max-block-size',
-  'grid',
-  'grid-template',
-  'grid-template-rows',
-  'grid-template-columns',
-  'grid-auto-columns',
-  'grid-auto-rows'
-]
-
-f(prefixIntrinsic, browsers =>
-  prefix(['max-content', 'min-content'], {
-    browsers,
-    feature: 'intrinsic-width',
-    props: sizeProps
-  })
-)
-
-f(prefixIntrinsic, { match: /x|\s#4/ }, browsers =>
-  prefix(['fill', 'fill-available'], {
-    browsers,
-    feature: 'intrinsic-width',
-    props: sizeProps
-  })
-)
-
-f(prefixIntrinsic, { match: /x|\s#5/ }, browsers => {
-  let ffFix = browsers.filter(i => {
-    let [name, version] = i.split(' ')
-    if (name === 'firefox' || name === 'and_ff') {
-      return parseInt(version) < 94
-    } else {
-      return true
-    }
-  })
-  return prefix(['fit-content'], {
-    browsers: ffFix,
-    feature: 'intrinsic-width',
-    props: sizeProps
-  })
-})
-
-// Stretch value
-
-let prefixStretch = require('caniuse-lite/data/features/css-width-stretch')
-
-f(prefixStretch, browsers => {
-  f(prefixIntrinsic, { match: /x|\s#2/ }, firefox => {
-    browsers = browsers.concat(firefox)
-  })
-  return prefix(['stretch'], {
-    browsers,
-    feature: 'css-width-stretch',
-    props: sizeProps
-  })
-})
-
-// Zoom cursors
-let prefixCursorsNew = require('caniuse-lite/data/features/css3-cursors-newer')
-
-f(prefixCursorsNew, browsers =>
-  prefix(['zoom-in', 'zoom-out'], {
-    browsers,
-    feature: 'css3-cursors-newer',
-    props: ['cursor']
-  })
-)
-
-// Grab cursors
-let prefixCursorsGrab = require('caniuse-lite/data/features/css3-cursors-grab')
-
-f(prefixCursorsGrab, browsers =>
-  prefix(['grab', 'grabbing'], {
-    browsers,
-    feature: 'css3-cursors-grab',
-    props: ['cursor']
-  })
-)
-
-// Sticky position
-let prefixSticky = require('caniuse-lite/data/features/css-sticky')
-
-f(prefixSticky, browsers =>
-  prefix(['sticky'], {
-    browsers,
-    feature: 'css-sticky',
-    props: ['position']
-  })
-)
-
-// Pointer Events
-let prefixPointer = require('caniuse-lite/data/features/pointer')
-
-f(prefixPointer, browsers =>
-  prefix(['touch-action'], {
-    browsers,
-    feature: 'pointer'
-  })
-)
-
-// Text decoration
-let prefixDecoration = require('caniuse-lite/data/features/text-decoration')
-
-f(prefixDecoration, { match: /x.*#[235]/ }, browsers =>
-  prefix(['text-decoration-skip', 'text-decoration-skip-ink'], {
-    browsers,
-    feature: 'text-decoration'
-  })
-)
-
-let prefixDecorationShorthand = require('caniuse-lite/data/features/mdn-text-decoration-shorthand')
-
-f(prefixDecorationShorthand, browsers =>
-  prefix(['text-decoration'], {
-    browsers,
-    feature: 'text-decoration'
-  })
-)
-
-let prefixDecorationColor = require('caniuse-lite/data/features/mdn-text-decoration-color')
-
-f(prefixDecorationColor, browsers =>
-  prefix(['text-decoration-color'], {
-    browsers,
-    feature: 'text-decoration'
-  })
-)
-
-let prefixDecorationLine = require('caniuse-lite/data/features/mdn-text-decoration-line')
-
-f(prefixDecorationLine, browsers =>
-  prefix(['text-decoration-line'], {
-    browsers,
-    feature: 'text-decoration'
-  })
-)
-
-let prefixDecorationStyle = require('caniuse-lite/data/features/mdn-text-decoration-style')
-
-f(prefixDecorationStyle, browsers =>
-  prefix(['text-decoration-style'], {
-    browsers,
-    feature: 'text-decoration'
-  })
-)
-
-// Text Size Adjust
-let prefixTextSizeAdjust = require('caniuse-lite/data/features/text-size-adjust')
-
-f(prefixTextSizeAdjust, browsers =>
-  prefix(['text-size-adjust'], {
-    browsers,
-    feature: 'text-size-adjust'
-  })
-)
-
-// CSS Masks
-let prefixCssMasks = require('caniuse-lite/data/features/css-masks')
-
-f(prefixCssMasks, browsers => {
-  prefix(
-    [
-      'mask-clip',
-      'mask-composite',
-      'mask-image',
-      'mask-origin',
-      'mask-repeat',
-      'mask-border-repeat',
-      'mask-border-source'
-    ],
-    {
-      browsers,
-      feature: 'css-masks'
-    }
-  )
-  prefix(
-    [
-      'mask',
-      'mask-position',
-      'mask-size',
-      'mask-border',
-      'mask-border-outset',
-      'mask-border-width',
-      'mask-border-slice'
-    ],
-    {
-      browsers,
-      feature: 'css-masks'
-    }
-  )
-})
-
-// CSS clip-path property
-let prefixClipPath = require('caniuse-lite/data/features/css-clip-path')
-
-f(prefixClipPath, browsers =>
-  prefix(['clip-path'], {
-    browsers,
-    feature: 'css-clip-path'
-  })
-)
-
-// Fragmented Borders and Backgrounds
-let prefixBoxdecoration = require('caniuse-lite/data/features/css-boxdecorationbreak')
-
-f(prefixBoxdecoration, browsers =>
-  prefix(['box-decoration-break'], {
-    browsers,
-    feature: 'css-boxdecorationbreak'
-  })
-)
-
-// CSS3 object-fit/object-position
-let prefixObjectFit = require('caniuse-lite/data/features/object-fit')
-
-f(prefixObjectFit, browsers =>
-  prefix(['object-fit', 'object-position'], {
-    browsers,
-    feature: 'object-fit'
-  })
-)
-
-// CSS Shapes
-let prefixShapes = require('caniuse-lite/data/features/css-shapes')
-
-f(prefixShapes, browsers =>
-  prefix(['shape-margin', 'shape-outside', 'shape-image-threshold'], {
-    browsers,
-    feature: 'css-shapes'
-  })
-)
-
-// CSS3 text-overflow
-let prefixTextOverflow = require('caniuse-lite/data/features/text-overflow')
-
-f(prefixTextOverflow, browsers =>
-  prefix(['text-overflow'], {
-    browsers,
-    feature: 'text-overflow'
-  })
-)
-
-// Viewport at-rule
-let prefixDeviceadaptation = require('caniuse-lite/data/features/css-deviceadaptation')
-
-f(prefixDeviceadaptation, browsers =>
-  prefix(['@viewport'], {
-    browsers,
-    feature: 'css-deviceadaptation'
-  })
-)
-
-// Resolution Media Queries
-let prefixResolut = require('caniuse-lite/data/features/css-media-resolution')
-
-f(prefixResolut, { match: /( x($| )|a #2)/ }, browsers =>
-  prefix(['@resolution'], {
-    browsers,
-    feature: 'css-media-resolution'
-  })
-)
-
-// CSS text-align-last
-let prefixTextAlignLast = require('caniuse-lite/data/features/css-text-align-last')
-
-f(prefixTextAlignLast, browsers =>
-  prefix(['text-align-last'], {
-    browsers,
-    feature: 'css-text-align-last'
-  })
-)
-
-// Crisp Edges Image Rendering Algorithm
-let prefixCrispedges = require('caniuse-lite/data/features/css-crisp-edges')
-
-f(prefixCrispedges, { match: /y x|a x #1/ }, browsers =>
-  prefix(['pixelated'], {
-    browsers,
-    feature: 'css-crisp-edges',
-    props: ['image-rendering']
-  })
-)
-
-f(prefixCrispedges, { match: /a x #2/ }, browsers =>
-  prefix(['image-rendering'], {
-    browsers,
-    feature: 'css-crisp-edges'
-  })
-)
-
-// Logical Properties
-let prefixLogicalProps = require('caniuse-lite/data/features/css-logical-props')
-
-f(prefixLogicalProps, browsers =>
-  prefix(
-    [
-      'border-inline-start',
-      'border-inline-end',
-      'margin-inline-start',
-      'margin-inline-end',
-      'padding-inline-start',
-      'padding-inline-end'
-    ],
-    {
-      browsers,
-      feature: 'css-logical-props'
-    }
-  )
-)
-
-f(prefixLogicalProps, { match: /x\s#2/ }, browsers =>
-  prefix(
-    [
-      'border-block-start',
-      'border-block-end',
-      'margin-block-start',
-      'margin-block-end',
-      'padding-block-start',
-      'padding-block-end'
-    ],
-    {
-      browsers,
-      feature: 'css-logical-props'
-    }
-  )
-)
-
-// CSS appearance
-let prefixAppearance = require('caniuse-lite/data/features/css-appearance')
-
-f(prefixAppearance, { match: /#2|x/ }, browsers =>
-  prefix(['appearance'], {
-    browsers,
-    feature: 'css-appearance'
-  })
-)
-
-// CSS Scroll snap points
-let prefixSnappoints = require('caniuse-lite/data/features/css-snappoints')
-
-f(prefixSnappoints, browsers =>
-  prefix(
-    [
-      'scroll-snap-type',
-      'scroll-snap-coordinate',
-      'scroll-snap-destination',
-      'scroll-snap-points-x',
-      'scroll-snap-points-y'
-    ],
-    {
-      browsers,
-      feature: 'css-snappoints'
-    }
-  )
-)
-
-// CSS Regions
-let prefixRegions = require('caniuse-lite/data/features/css-regions')
-
-f(prefixRegions, browsers =>
-  prefix(['flow-into', 'flow-from', 'region-fragment'], {
-    browsers,
-    feature: 'css-regions'
-  })
-)
-
-// CSS image-set
-let prefixImageSet = require('caniuse-lite/data/features/css-image-set')
-
-f(prefixImageSet, browsers =>
-  prefix(['image-set'], {
-    browsers,
-    feature: 'css-image-set',
-    props: [
-      'background',
-      'background-image',
-      'border-image',
-      'cursor',
-      'mask',
-      'mask-image',
-      'list-style',
-      'list-style-image',
-      'content'
-    ]
-  })
-)
-
-// Writing Mode
-let prefixWritingMode = require('caniuse-lite/data/features/css-writing-mode')
-
-f(prefixWritingMode, { match: /a|x/ }, browsers =>
-  prefix(['writing-mode'], {
-    browsers,
-    feature: 'css-writing-mode'
-  })
-)
-
-// Cross-Fade Function
-let prefixCrossFade = require('caniuse-lite/data/features/css-cross-fade')
-
-f(prefixCrossFade, browsers =>
-  prefix(['cross-fade'], {
-    browsers,
-    feature: 'css-cross-fade',
-    props: [
-      'background',
-      'background-image',
-      'border-image',
-      'mask',
-      'list-style',
-      'list-style-image',
-      'content',
-      'mask-image'
-    ]
-  })
-)
-
-// Read Only selector
-let prefixReadOnly = require('caniuse-lite/data/features/css-read-only-write')
-
-f(prefixReadOnly, browsers =>
-  prefix([':read-only', ':read-write'], {
-    browsers,
-    feature: 'css-read-only-write',
-    selector: true
-  })
-)
-
-// Text Emphasize
-let prefixTextEmphasis = require('caniuse-lite/data/features/text-emphasis')
-
-f(prefixTextEmphasis, browsers =>
-  prefix(
-    [
-      'text-emphasis',
-      'text-emphasis-position',
-      'text-emphasis-style',
-      'text-emphasis-color'
-    ],
-    {
-      browsers,
-      feature: 'text-emphasis'
-    }
-  )
-)
-
-// CSS Grid Layout
-let prefixGrid = require('caniuse-lite/data/features/css-grid')
-
-f(prefixGrid, browsers => {
-  prefix(['display-grid', 'inline-grid'], {
-    browsers,
-    feature: 'css-grid',
-    props: ['display']
-  })
-  prefix(
-    [
-      'grid-template-columns',
-      'grid-template-rows',
-      'grid-row-start',
-      'grid-column-start',
-      'grid-row-end',
-      'grid-column-end',
-      'grid-row',
-      'grid-column',
-      'grid-area',
-      'grid-template',
-      'grid-template-areas',
-      'place-self'
-    ],
-    {
-      browsers,
-      feature: 'css-grid'
-    }
-  )
-})
-
-f(prefixGrid, { match: /a x/ }, browsers =>
-  prefix(['grid-column-align', 'grid-row-align'], {
-    browsers,
-    feature: 'css-grid'
-  })
-)
-
-// CSS text-spacing
-let prefixTextSpacing = require('caniuse-lite/data/features/css-text-spacing')
-
-f(prefixTextSpacing, browsers =>
-  prefix(['text-spacing'], {
-    browsers,
-    feature: 'css-text-spacing'
-  })
-)
-
-// :any-link selector
-let prefixAnyLink = require('caniuse-lite/data/features/css-any-link')
-
-f(prefixAnyLink, browsers =>
-  prefix([':any-link'], {
-    browsers,
-    feature: 'css-any-link',
-    selector: true
-  })
-)
-
-// unicode-bidi
-
-let bidiIsolate = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate')
-
-f(bidiIsolate, browsers =>
-  prefix(['isolate'], {
-    browsers,
-    feature: 'css-unicode-bidi',
-    props: ['unicode-bidi']
-  })
-)
-
-let bidiPlaintext = require('caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext')
-
-f(bidiPlaintext, browsers =>
-  prefix(['plaintext'], {
-    browsers,
-    feature: 'css-unicode-bidi',
-    props: ['unicode-bidi']
-  })
-)
-
-let bidiOverride = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override')
-
-f(bidiOverride, { match: /y x/ }, browsers =>
-  prefix(['isolate-override'], {
-    browsers,
-    feature: 'css-unicode-bidi',
-    props: ['unicode-bidi']
-  })
-)
-
-// overscroll-behavior selector
-let prefixOverscroll = require('caniuse-lite/data/features/css-overscroll-behavior')
-
-f(prefixOverscroll, { match: /a #1/ }, browsers =>
-  prefix(['overscroll-behavior'], {
-    browsers,
-    feature: 'css-overscroll-behavior'
-  })
-)
-
-// text-orientation
-let prefixTextOrientation = require('caniuse-lite/data/features/css-text-orientation')
-
-f(prefixTextOrientation, browsers =>
-  prefix(['text-orientation'], {
-    browsers,
-    feature: 'css-text-orientation'
-  })
-)
-
-// print-color-adjust
-let prefixPrintAdjust = require('caniuse-lite/data/features/css-print-color-adjust')
-
-f(prefixPrintAdjust, browsers =>
-  prefix(['print-color-adjust', 'color-adjust'], {
-    browsers,
-    feature: 'css-print-color-adjust'
-  })
-)
Index: de_modules/autoprefixer/lib/at-rule.js
===================================================================
--- node_modules/autoprefixer/lib/at-rule.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-let Prefixer = require('./prefixer')
-
-class AtRule extends Prefixer {
-  /**
-   * Clone and add prefixes for at-rule
-   */
-  add(rule, prefix) {
-    let prefixed = prefix + rule.name
-
-    let already = rule.parent.some(
-      i => i.name === prefixed && i.params === rule.params
-    )
-    if (already) {
-      return undefined
-    }
-
-    let cloned = this.clone(rule, { name: prefixed })
-    return rule.parent.insertBefore(rule, cloned)
-  }
-
-  /**
-   * Clone node with prefixes
-   */
-  process(node) {
-    let parent = this.parentPrefix(node)
-
-    for (let prefix of this.prefixes) {
-      if (!parent || parent === prefix) {
-        this.add(node, prefix)
-      }
-    }
-  }
-}
-
-module.exports = AtRule
Index: de_modules/autoprefixer/lib/autoprefixer.d.ts
===================================================================
--- node_modules/autoprefixer/lib/autoprefixer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-import { Plugin } from 'postcss'
-import { Stats } from 'browserslist'
-
-declare function autoprefixer<T extends string[]>(
-  ...args: [...T, autoprefixer.Options]
-): Plugin & autoprefixer.ExportedAPI
-
-declare function autoprefixer(
-  browsers: string[],
-  options?: autoprefixer.Options
-): Plugin & autoprefixer.ExportedAPI
-
-declare function autoprefixer(
-  options?: autoprefixer.Options
-): Plugin & autoprefixer.ExportedAPI
-
-declare namespace autoprefixer {
-  type GridValue = 'autoplace' | 'no-autoplace'
-
-  interface Options {
-    /** environment for `Browserslist` */
-    env?: string
-
-    /** should Autoprefixer use Visual Cascade, if CSS is uncompressed */
-    cascade?: boolean
-
-    /** should Autoprefixer add prefixes. */
-    add?: boolean
-
-    /** should Autoprefixer [remove outdated] prefixes */
-    remove?: boolean
-
-    /** should Autoprefixer add prefixes for @supports parameters. */
-    supports?: boolean
-
-    /** should Autoprefixer add prefixes for flexbox properties */
-    flexbox?: boolean | 'no-2009'
-
-    /** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */
-    grid?: boolean | GridValue
-
-    /** custom usage statistics for > 10% in my stats browsers query */
-    stats?: Stats
-
-    /**
-     * list of queries for target browsers.
-     * Try to not use it.
-     * The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json`
-     * to share target browsers with Babel, ESLint and Stylelint
-     */
-    overrideBrowserslist?: string | string[]
-
-    /** do not raise error on unknown browser version in `Browserslist` config. */
-    ignoreUnknownVersions?: boolean
-  }
-
-  interface ExportedAPI {
-    /** Autoprefixer data */
-    data: {
-      browsers: { [browser: string]: object | undefined }
-      prefixes: { [prefixName: string]: object | undefined }
-    }
-
-    /** Autoprefixer default browsers */
-    defaults: string[]
-
-    /** Inspect with default Autoprefixer */
-    info(options?: { from?: string }): string
-
-    options: Options
-
-    browsers: string | string[]
-  }
-
-  /** Autoprefixer data */
-  let data: ExportedAPI['data']
-
-  /** Autoprefixer default browsers */
-  let defaults: ExportedAPI['defaults']
-
-  /** Inspect with default Autoprefixer */
-  let info: ExportedAPI['info']
-
-  let postcss: true
-}
-
-declare global {
-  namespace NodeJS {
-    interface ProcessEnv {
-      AUTOPREFIXER_GRID?: autoprefixer.GridValue
-    }
-  }
-}
-
-export = autoprefixer
Index: de_modules/autoprefixer/lib/autoprefixer.js
===================================================================
--- node_modules/autoprefixer/lib/autoprefixer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,164 +1,0 @@
-let browserslist = require('browserslist')
-let { agents } = require('caniuse-lite/dist/unpacker/agents')
-let pico = require('picocolors')
-
-let dataPrefixes = require('../data/prefixes')
-let Browsers = require('./browsers')
-let getInfo = require('./info')
-let Prefixes = require('./prefixes')
-
-let autoprefixerData = { browsers: agents, prefixes: dataPrefixes }
-
-const WARNING =
-  '\n' +
-  '  Replace Autoprefixer `browsers` option to Browserslist config.\n' +
-  '  Use `browserslist` key in `package.json` or `.browserslistrc` file.\n' +
-  '\n' +
-  '  Using `browsers` option can cause errors. Browserslist config can\n' +
-  '  be used for Babel, Autoprefixer, postcss-normalize and other tools.\n' +
-  '\n' +
-  '  If you really need to use option, rename it to `overrideBrowserslist`.\n' +
-  '\n' +
-  '  Learn more at:\n' +
-  '  https://github.com/browserslist/browserslist#readme\n' +
-  '  https://twitter.com/browserslist\n' +
-  '\n'
-
-function isPlainObject(obj) {
-  return Object.prototype.toString.apply(obj) === '[object Object]'
-}
-
-let cache = new Map()
-
-function timeCapsule(result, prefixes) {
-  if (prefixes.browsers.selected.length === 0) {
-    return
-  }
-  if (prefixes.add.selectors.length > 0) {
-    return
-  }
-  if (Object.keys(prefixes.add).length > 2) {
-    return
-  }
-  /* c8 ignore next 11 */
-  result.warn(
-    'Autoprefixer target browsers do not need any prefixes.' +
-      'You do not need Autoprefixer anymore.\n' +
-      'Check your Browserslist config to be sure that your targets ' +
-      'are set up correctly.\n' +
-      '\n' +
-      '  Learn more at:\n' +
-      '  https://github.com/postcss/autoprefixer#readme\n' +
-      '  https://github.com/browserslist/browserslist#readme\n' +
-      '\n'
-  )
-}
-
-module.exports = plugin
-
-function plugin(...reqs) {
-  let options
-  if (reqs.length === 1 && isPlainObject(reqs[0])) {
-    options = reqs[0]
-    reqs = undefined
-  } else if (reqs.length === 0 || (reqs.length === 1 && !reqs[0])) {
-    reqs = undefined
-  } else if (reqs.length <= 2 && (Array.isArray(reqs[0]) || !reqs[0])) {
-    options = reqs[1]
-    reqs = reqs[0]
-  } else if (typeof reqs[reqs.length - 1] === 'object') {
-    options = reqs.pop()
-  }
-
-  if (!options) {
-    options = {}
-  }
-
-  if (options.browser) {
-    throw new Error(
-      'Change `browser` option to `overrideBrowserslist` in Autoprefixer'
-    )
-  } else if (options.browserslist) {
-    throw new Error(
-      'Change `browserslist` option to `overrideBrowserslist` in Autoprefixer'
-    )
-  }
-
-  if (options.overrideBrowserslist) {
-    reqs = options.overrideBrowserslist
-  } else if (options.browsers) {
-    if (typeof console !== 'undefined' && console.warn) {
-      console.warn(
-        pico.red(WARNING.replace(/`[^`]+`/g, i => pico.yellow(i.slice(1, -1))))
-      )
-    }
-    reqs = options.browsers
-  }
-
-  let brwlstOpts = {
-    env: options.env,
-    ignoreUnknownVersions: options.ignoreUnknownVersions,
-    stats: options.stats
-  }
-
-  function loadPrefixes(opts) {
-    let d = autoprefixerData
-    let browsers = new Browsers(d.browsers, reqs, opts, brwlstOpts)
-    let key = browsers.selected.join(', ') + JSON.stringify(options)
-
-    if (!cache.has(key)) {
-      cache.set(key, new Prefixes(d.prefixes, browsers, options))
-    }
-
-    return cache.get(key)
-  }
-
-  return {
-    browsers: reqs,
-
-    info(opts) {
-      opts = opts || {}
-      opts.from = opts.from || process.cwd()
-      return getInfo(loadPrefixes(opts))
-    },
-
-    options,
-
-    postcssPlugin: 'autoprefixer',
-    prepare(result) {
-      let prefixes = loadPrefixes({
-        env: options.env,
-        from: result.opts.from
-      })
-
-      return {
-        OnceExit(root) {
-          timeCapsule(result, prefixes)
-          if (options.remove !== false) {
-            prefixes.processor.remove(root, result)
-          }
-          if (options.add !== false) {
-            prefixes.processor.add(root, result)
-          }
-        }
-      }
-    }
-  }
-}
-
-plugin.postcss = true
-
-/**
- * Autoprefixer data
- */
-plugin.data = autoprefixerData
-
-/**
- * Autoprefixer default browsers
- */
-plugin.defaults = browserslist.defaults
-
-/**
- * Inspect with default Autoprefixer
- */
-plugin.info = () => plugin().info()
Index: de_modules/autoprefixer/lib/brackets.js
===================================================================
--- node_modules/autoprefixer/lib/brackets.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-function last(array) {
-  return array[array.length - 1]
-}
-
-let brackets = {
-  /**
-   * Parse string to nodes tree
-   */
-  parse(str) {
-    let current = ['']
-    let stack = [current]
-
-    for (let sym of str) {
-      if (sym === '(') {
-        current = ['']
-        last(stack).push(current)
-        stack.push(current)
-        continue
-      }
-
-      if (sym === ')') {
-        stack.pop()
-        current = last(stack)
-        current.push('')
-        continue
-      }
-
-      current[current.length - 1] += sym
-    }
-
-    return stack[0]
-  },
-
-  /**
-   * Generate output string by nodes tree
-   */
-  stringify(ast) {
-    let result = ''
-    for (let i of ast) {
-      if (typeof i === 'object') {
-        result += `(${brackets.stringify(i)})`
-        continue
-      }
-
-      result += i
-    }
-    return result
-  }
-}
-
-module.exports = brackets
Index: de_modules/autoprefixer/lib/browsers.js
===================================================================
--- node_modules/autoprefixer/lib/browsers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-let browserslist = require('browserslist')
-let { agents } = require('caniuse-lite/dist/unpacker/agents')
-
-let utils = require('./utils')
-
-class Browsers {
-  constructor(data, requirements, options, browserslistOpts) {
-    this.data = data
-    this.options = options || {}
-    this.browserslistOpts = browserslistOpts || {}
-    this.selected = this.parse(requirements)
-  }
-
-  /**
-   * Return all prefixes for default browser data
-   */
-  static prefixes() {
-    if (this.prefixesCache) {
-      return this.prefixesCache
-    }
-
-    this.prefixesCache = []
-    for (let name in agents) {
-      this.prefixesCache.push(`-${agents[name].prefix}-`)
-    }
-
-    this.prefixesCache = utils
-      .uniq(this.prefixesCache)
-      .sort((a, b) => b.length - a.length)
-
-    return this.prefixesCache
-  }
-
-  /**
-   * Check is value contain any possible prefix
-   */
-  static withPrefix(value) {
-    if (!this.prefixesRegexp) {
-      this.prefixesRegexp = new RegExp(this.prefixes().join('|'))
-    }
-
-    return this.prefixesRegexp.test(value)
-  }
-
-  /**
-   * Is browser is selected by requirements
-   */
-  isSelected(browser) {
-    return this.selected.includes(browser)
-  }
-
-  /**
-   * Return browsers selected by requirements
-   */
-  parse(requirements) {
-    let opts = {}
-    for (let i in this.browserslistOpts) {
-      opts[i] = this.browserslistOpts[i]
-    }
-    opts.path = this.options.from
-    return browserslist(requirements, opts)
-  }
-
-  /**
-   * Return prefix for selected browser
-   */
-  prefix(browser) {
-    let [name, version] = browser.split(' ')
-    let data = this.data[name]
-
-    let prefix = data.prefix_exceptions && data.prefix_exceptions[version]
-    if (!prefix) {
-      prefix = data.prefix
-    }
-    return `-${prefix}-`
-  }
-}
-
-module.exports = Browsers
Index: de_modules/autoprefixer/lib/declaration.js
===================================================================
--- node_modules/autoprefixer/lib/declaration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,187 +1,0 @@
-let Browsers = require('./browsers')
-let Prefixer = require('./prefixer')
-let utils = require('./utils')
-
-class Declaration extends Prefixer {
-  /**
-   * Clone and add prefixes for declaration
-   */
-  add(decl, prefix, prefixes, result) {
-    let prefixed = this.prefixed(decl.prop, prefix)
-    if (
-      this.isAlready(decl, prefixed) ||
-      this.otherPrefixes(decl.value, prefix)
-    ) {
-      return undefined
-    }
-    return this.insert(decl, prefix, prefixes, result)
-  }
-
-  /**
-   * Calculate indentation to create visual cascade
-   */
-  calcBefore(prefixes, decl, prefix = '') {
-    let max = this.maxPrefixed(prefixes, decl)
-    let diff = max - utils.removeNote(prefix).length
-
-    let before = decl.raw('before')
-    if (diff > 0) {
-      before += Array(diff).fill(' ').join('')
-    }
-
-    return before
-  }
-
-  /**
-   * Always true, because we already get prefixer by property name
-   */
-  check(/* decl */) {
-    return true
-  }
-
-  /**
-   * Clone and insert new declaration
-   */
-  insert(decl, prefix, prefixes) {
-    let cloned = this.set(this.clone(decl), prefix)
-    if (!cloned) return undefined
-
-    let already = decl.parent.some(
-      i => i.prop === cloned.prop && i.value === cloned.value
-    )
-    if (already) {
-      return undefined
-    }
-
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    return decl.parent.insertBefore(decl, cloned)
-  }
-
-  /**
-   * Did this declaration has this prefix above
-   */
-  isAlready(decl, prefixed) {
-    let already = this.all.group(decl).up(i => i.prop === prefixed)
-    if (!already) {
-      already = this.all.group(decl).down(i => i.prop === prefixed)
-    }
-    return already
-  }
-
-  /**
-   * Return maximum length of possible prefixed property
-   */
-  maxPrefixed(prefixes, decl) {
-    if (decl._autoprefixerMax) {
-      return decl._autoprefixerMax
-    }
-
-    let max = 0
-    for (let prefix of prefixes) {
-      prefix = utils.removeNote(prefix)
-      if (prefix.length > max) {
-        max = prefix.length
-      }
-    }
-    decl._autoprefixerMax = max
-
-    return decl._autoprefixerMax
-  }
-
-  /**
-   * Should we use visual cascade for prefixes
-   */
-  needCascade(decl) {
-    if (!decl._autoprefixerCascade) {
-      decl._autoprefixerCascade =
-        this.all.options.cascade !== false && decl.raw('before').includes('\n')
-    }
-    return decl._autoprefixerCascade
-  }
-
-  /**
-   * Return unprefixed version of property
-   */
-  normalize(prop) {
-    return prop
-  }
-
-  /**
-   * Return list of prefixed properties to clean old prefixes
-   */
-  old(prop, prefix) {
-    return [this.prefixed(prop, prefix)]
-  }
-
-  /**
-   * Check `value`, that it contain other prefixes, rather than `prefix`
-   */
-  otherPrefixes(value, prefix) {
-    for (let other of Browsers.prefixes()) {
-      if (other === prefix) {
-        continue
-      }
-      if (value.includes(other)) {
-        return value.replace(/var\([^)]+\)/, '').includes(other)
-      }
-    }
-    return false
-  }
-
-  /**
-   * Return prefixed version of property
-   */
-  prefixed(prop, prefix) {
-    return prefix + prop
-  }
-
-  /**
-   * Add spaces for visual cascade
-   */
-  process(decl, result) {
-    if (!this.needCascade(decl)) {
-      super.process(decl, result)
-      return
-    }
-
-    let prefixes = super.process(decl, result)
-
-    if (!prefixes || !prefixes.length) {
-      return
-    }
-
-    this.restoreBefore(decl)
-    decl.raws.before = this.calcBefore(prefixes, decl)
-  }
-
-  /**
-   * Remove visual cascade
-   */
-  restoreBefore(decl) {
-    let lines = decl.raw('before').split('\n')
-    let min = lines[lines.length - 1]
-
-    this.all.group(decl).up(prefixed => {
-      let array = prefixed.raw('before').split('\n')
-      let last = array[array.length - 1]
-      if (last.length < min.length) {
-        min = last
-      }
-    })
-
-    lines[lines.length - 1] = min
-    decl.raws.before = lines.join('\n')
-  }
-
-  /**
-   * Set prefix to declaration
-   */
-  set(decl, prefix) {
-    decl.prop = this.prefixed(decl.prop, prefix)
-    return decl
-  }
-}
-
-module.exports = Declaration
Index: de_modules/autoprefixer/lib/hacks/align-content.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/align-content.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class AlignContent extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'align-content'
-  }
-
-  /**
-   * Change property name for 2012 spec
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012) {
-      return prefix + 'flex-line-pack'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Change value for 2012 spec and ignore prefix for 2009
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2012) {
-      decl.value = AlignContent.oldValues[decl.value] || decl.value
-      return super.set(decl, prefix)
-    }
-    if (spec === 'final') {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-AlignContent.names = ['align-content', 'flex-line-pack']
-
-AlignContent.oldValues = {
-  'flex-end': 'end',
-  'flex-start': 'start',
-  'space-around': 'distribute',
-  'space-between': 'justify'
-}
-
-module.exports = AlignContent
Index: de_modules/autoprefixer/lib/hacks/align-items.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/align-items.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class AlignItems extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'align-items'
-  }
-
-  /**
-   * Change property name for 2009 and 2012 specs
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return prefix + 'box-align'
-    }
-    if (spec === 2012) {
-      return prefix + 'flex-align'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Change value for 2009 and 2012 specs
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2009 || spec === 2012) {
-      decl.value = AlignItems.oldValues[decl.value] || decl.value
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-AlignItems.names = ['align-items', 'flex-align', 'box-align']
-
-AlignItems.oldValues = {
-  'flex-end': 'end',
-  'flex-start': 'start'
-}
-
-module.exports = AlignItems
Index: de_modules/autoprefixer/lib/hacks/align-self.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/align-self.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class AlignSelf extends Declaration {
-  check(decl) {
-    return (
-      decl.parent &&
-      !decl.parent.some(i => {
-        return i.prop && i.prop.startsWith('grid-')
-      })
-    )
-  }
-
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'align-self'
-  }
-
-  /**
-   * Change property name for 2012 specs
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012) {
-      return prefix + 'flex-item-align'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Change value for 2012 spec and ignore prefix for 2009
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2012) {
-      decl.value = AlignSelf.oldValues[decl.value] || decl.value
-      return super.set(decl, prefix)
-    }
-    if (spec === 'final') {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-AlignSelf.names = ['align-self', 'flex-item-align']
-
-AlignSelf.oldValues = {
-  'flex-end': 'end',
-  'flex-start': 'start'
-}
-
-module.exports = AlignSelf
Index: de_modules/autoprefixer/lib/hacks/animation.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/animation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-let Declaration = require('../declaration')
-
-class Animation extends Declaration {
-  /**
-   * Don’t add prefixes for modern values.
-   */
-  check(decl) {
-    return !decl.value.split(/\s+/).some(i => {
-      let lower = i.toLowerCase()
-      return lower === 'reverse' || lower === 'alternate-reverse'
-    })
-  }
-}
-
-Animation.names = ['animation', 'animation-direction']
-
-module.exports = Animation
Index: de_modules/autoprefixer/lib/hacks/appearance.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/appearance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('../utils')
-
-class Appearance extends Declaration {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-
-    if (this.prefixes) {
-      this.prefixes = utils.uniq(
-        this.prefixes.map(i => {
-          if (i === '-ms-') {
-            return '-webkit-'
-          }
-          return i
-        })
-      )
-    }
-  }
-}
-
-Appearance.names = ['appearance']
-
-module.exports = Appearance
Index: de_modules/autoprefixer/lib/hacks/autofill.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/autofill.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-let Selector = require('../selector')
-let utils = require('../utils')
-
-class Autofill extends Selector {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-
-    if (this.prefixes) {
-      this.prefixes = utils.uniq(this.prefixes.map(() => '-webkit-'))
-    }
-  }
-
-  /**
-   * Return different selectors depend on prefix
-   */
-  prefixed(prefix) {
-    if (prefix === '-webkit-') {
-      return ':-webkit-autofill'
-    }
-    return `:${prefix}autofill`
-  }
-}
-
-Autofill.names = [':autofill']
-
-module.exports = Autofill
Index: de_modules/autoprefixer/lib/hacks/backdrop-filter.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/backdrop-filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('../utils')
-
-class BackdropFilter extends Declaration {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-
-    if (this.prefixes) {
-      this.prefixes = utils.uniq(
-        this.prefixes.map(i => {
-          return i === '-ms-' ? '-webkit-' : i
-        })
-      )
-    }
-  }
-}
-
-BackdropFilter.names = ['backdrop-filter']
-
-module.exports = BackdropFilter
Index: de_modules/autoprefixer/lib/hacks/background-clip.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/background-clip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('../utils')
-
-class BackgroundClip extends Declaration {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-
-    if (this.prefixes) {
-      this.prefixes = utils.uniq(
-        this.prefixes.map(i => {
-          return i === '-ms-' ? '-webkit-' : i
-        })
-      )
-    }
-  }
-
-  check(decl) {
-    return decl.value.toLowerCase() === 'text'
-  }
-}
-
-BackgroundClip.names = ['background-clip']
-
-module.exports = BackgroundClip
Index: de_modules/autoprefixer/lib/hacks/background-size.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/background-size.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-let Declaration = require('../declaration')
-
-class BackgroundSize extends Declaration {
-  /**
-   * Duplication parameter for -webkit- browsers
-   */
-  set(decl, prefix) {
-    let value = decl.value.toLowerCase()
-    if (
-      prefix === '-webkit-' &&
-      !value.includes(' ') &&
-      value !== 'contain' &&
-      value !== 'cover'
-    ) {
-      decl.value = decl.value + ' ' + decl.value
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-BackgroundSize.names = ['background-size']
-
-module.exports = BackgroundSize
Index: de_modules/autoprefixer/lib/hacks/block-logical.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/block-logical.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-let Declaration = require('../declaration')
-
-class BlockLogical extends Declaration {
-  /**
-   * Return property name by spec
-   */
-  normalize(prop) {
-    if (prop.includes('-before')) {
-      return prop.replace('-before', '-block-start')
-    }
-    return prop.replace('-after', '-block-end')
-  }
-
-  /**
-   * Use old syntax for -moz- and -webkit-
-   */
-  prefixed(prop, prefix) {
-    if (prop.includes('-start')) {
-      return prefix + prop.replace('-block-start', '-before')
-    }
-    return prefix + prop.replace('-block-end', '-after')
-  }
-}
-
-BlockLogical.names = [
-  'border-block-start',
-  'border-block-end',
-  'margin-block-start',
-  'margin-block-end',
-  'padding-block-start',
-  'padding-block-end',
-  'border-before',
-  'border-after',
-  'margin-before',
-  'margin-after',
-  'padding-before',
-  'padding-after'
-]
-
-module.exports = BlockLogical
Index: de_modules/autoprefixer/lib/hacks/border-image.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/border-image.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-let Declaration = require('../declaration')
-
-class BorderImage extends Declaration {
-  /**
-   * Remove fill parameter for prefixed declarations
-   */
-  set(decl, prefix) {
-    decl.value = decl.value.replace(/\s+fill(\s)/, '$1')
-    return super.set(decl, prefix)
-  }
-}
-
-BorderImage.names = ['border-image']
-
-module.exports = BorderImage
Index: de_modules/autoprefixer/lib/hacks/border-radius.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/border-radius.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-let Declaration = require('../declaration')
-
-class BorderRadius extends Declaration {
-  /**
-   * Return unprefixed version of property
-   */
-  normalize(prop) {
-    return BorderRadius.toNormal[prop] || prop
-  }
-
-  /**
-   * Change syntax, when add Mozilla prefix
-   */
-  prefixed(prop, prefix) {
-    if (prefix === '-moz-') {
-      return prefix + (BorderRadius.toMozilla[prop] || prop)
-    }
-    return super.prefixed(prop, prefix)
-  }
-}
-
-BorderRadius.names = ['border-radius']
-
-BorderRadius.toMozilla = {}
-BorderRadius.toNormal = {}
-
-for (let ver of ['top', 'bottom']) {
-  for (let hor of ['left', 'right']) {
-    let normal = `border-${ver}-${hor}-radius`
-    let mozilla = `border-radius-${ver}${hor}`
-
-    BorderRadius.names.push(normal)
-    BorderRadius.names.push(mozilla)
-
-    BorderRadius.toMozilla[normal] = mozilla
-    BorderRadius.toNormal[mozilla] = normal
-  }
-}
-
-module.exports = BorderRadius
Index: de_modules/autoprefixer/lib/hacks/break-props.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/break-props.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-let Declaration = require('../declaration')
-
-class BreakProps extends Declaration {
-  /**
-   * Don’t prefix some values
-   */
-  insert(decl, prefix, prefixes) {
-    if (decl.prop !== 'break-inside') {
-      return super.insert(decl, prefix, prefixes)
-    }
-    if (/region/i.test(decl.value) || /page/i.test(decl.value)) {
-      return undefined
-    }
-    return super.insert(decl, prefix, prefixes)
-  }
-
-  /**
-   * Return property name by final spec
-   */
-  normalize(prop) {
-    if (prop.includes('inside')) {
-      return 'break-inside'
-    }
-    if (prop.includes('before')) {
-      return 'break-before'
-    }
-    return 'break-after'
-  }
-
-  /**
-   * Change name for -webkit- and -moz- prefix
-   */
-  prefixed(prop, prefix) {
-    return `${prefix}column-${prop}`
-  }
-
-  /**
-   * Change prefixed value for avoid-column and avoid-page
-   */
-  set(decl, prefix) {
-    if (
-      (decl.prop === 'break-inside' && decl.value === 'avoid-column') ||
-      decl.value === 'avoid-page'
-    ) {
-      decl.value = 'avoid'
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-BreakProps.names = [
-  'break-inside',
-  'page-break-inside',
-  'column-break-inside',
-  'break-before',
-  'page-break-before',
-  'column-break-before',
-  'break-after',
-  'page-break-after',
-  'column-break-after'
-]
-
-module.exports = BreakProps
Index: de_modules/autoprefixer/lib/hacks/cross-fade.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/cross-fade.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-let list = require('postcss').list
-
-let Value = require('../value')
-
-class CrossFade extends Value {
-  replace(string, prefix) {
-    return list
-      .space(string)
-      .map(value => {
-        if (value.slice(0, +this.name.length + 1) !== this.name + '(') {
-          return value
-        }
-
-        let close = value.lastIndexOf(')')
-        let after = value.slice(close + 1)
-        let args = value.slice(this.name.length + 1, close)
-
-        if (prefix === '-webkit-') {
-          let match = args.match(/\d*.?\d+%?/)
-          if (match) {
-            args = args.slice(match[0].length).trim()
-            args += `, ${match[0]}`
-          } else {
-            args += ', 0.5'
-          }
-        }
-        return prefix + this.name + '(' + args + ')' + after
-      })
-      .join(' ')
-  }
-}
-
-CrossFade.names = ['cross-fade']
-
-module.exports = CrossFade
Index: de_modules/autoprefixer/lib/hacks/display-flex.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/display-flex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-let OldValue = require('../old-value')
-let Value = require('../value')
-let flexSpec = require('./flex-spec')
-
-class DisplayFlex extends Value {
-  constructor(name, prefixes) {
-    super(name, prefixes)
-    if (name === 'display-flex') {
-      this.name = 'flex'
-    }
-  }
-
-  /**
-   * Faster check for flex value
-   */
-  check(decl) {
-    return decl.prop === 'display' && decl.value === this.name
-  }
-
-  /**
-   * Change value for old specs
-   */
-  old(prefix) {
-    let prefixed = this.prefixed(prefix)
-    if (!prefixed) return undefined
-    return new OldValue(this.name, prefixed)
-  }
-
-  /**
-   * Return value by spec
-   */
-  prefixed(prefix) {
-    let spec, value
-    ;[spec, prefix] = flexSpec(prefix)
-
-    if (spec === 2009) {
-      if (this.name === 'flex') {
-        value = 'box'
-      } else {
-        value = 'inline-box'
-      }
-    } else if (spec === 2012) {
-      if (this.name === 'flex') {
-        value = 'flexbox'
-      } else {
-        value = 'inline-flexbox'
-      }
-    } else if (spec === 'final') {
-      value = this.name
-    }
-
-    return prefix + value
-  }
-
-  /**
-   * Add prefix to value depend on flebox spec version
-   */
-  replace(string, prefix) {
-    return this.prefixed(prefix)
-  }
-}
-
-DisplayFlex.names = ['display-flex', 'inline-flex']
-
-module.exports = DisplayFlex
Index: de_modules/autoprefixer/lib/hacks/display-grid.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/display-grid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-let Value = require('../value')
-
-class DisplayGrid extends Value {
-  constructor(name, prefixes) {
-    super(name, prefixes)
-    if (name === 'display-grid') {
-      this.name = 'grid'
-    }
-  }
-
-  /**
-   * Faster check for flex value
-   */
-  check(decl) {
-    return decl.prop === 'display' && decl.value === this.name
-  }
-}
-
-DisplayGrid.names = ['display-grid', 'inline-grid']
-
-module.exports = DisplayGrid
Index: de_modules/autoprefixer/lib/hacks/file-selector-button.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/file-selector-button.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-let Selector = require('../selector')
-let utils = require('../utils')
-
-class FileSelectorButton extends Selector {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-
-    if (this.prefixes) {
-      this.prefixes = utils.uniq(this.prefixes.map(() => '-webkit-'))
-    }
-  }
-
-  /**
-   * Return different selectors depend on prefix
-   */
-  prefixed(prefix) {
-    if (prefix === '-webkit-') {
-      return '::-webkit-file-upload-button'
-    }
-    return `::${prefix}file-selector-button`
-  }
-}
-
-FileSelectorButton.names = ['::file-selector-button']
-
-module.exports = FileSelectorButton
Index: de_modules/autoprefixer/lib/hacks/filter-value.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/filter-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-let Value = require('../value')
-
-class FilterValue extends Value {
-  constructor(name, prefixes) {
-    super(name, prefixes)
-    if (name === 'filter-function') {
-      this.name = 'filter'
-    }
-  }
-}
-
-FilterValue.names = ['filter', 'filter-function']
-
-module.exports = FilterValue
Index: de_modules/autoprefixer/lib/hacks/filter.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-let Declaration = require('../declaration')
-
-class Filter extends Declaration {
-  /**
-   * Check is it Internet Explorer filter
-   */
-  check(decl) {
-    let v = decl.value
-    return (
-      !v.toLowerCase().includes('alpha(') &&
-      !v.includes('DXImageTransform.Microsoft') &&
-      !v.includes('data:image/svg+xml')
-    )
-  }
-}
-
-Filter.names = ['filter']
-
-module.exports = Filter
Index: de_modules/autoprefixer/lib/hacks/flex-basis.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class FlexBasis extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'flex-basis'
-  }
-
-  /**
-   * Return flex property for 2012 spec
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012) {
-      return prefix + 'flex-preferred-size'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Ignore 2009 spec and use flex property for 2012
-   */
-  set(decl, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012 || spec === 'final') {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-FlexBasis.names = ['flex-basis', 'flex-preferred-size']
-
-module.exports = FlexBasis
Index: de_modules/autoprefixer/lib/hacks/flex-direction.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-direction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class FlexDirection extends Declaration {
-  /**
-   * Use two properties for 2009 spec
-   */
-  insert(decl, prefix, prefixes) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec !== 2009) {
-      return super.insert(decl, prefix, prefixes)
-    }
-    let already = decl.parent.some(
-      i =>
-        i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction'
-    )
-    if (already) {
-      return undefined
-    }
-
-    let v = decl.value
-    let dir, orient
-    if (v === 'inherit' || v === 'initial' || v === 'unset') {
-      orient = v
-      dir = v
-    } else {
-      orient = v.includes('row') ? 'horizontal' : 'vertical'
-      dir = v.includes('reverse') ? 'reverse' : 'normal'
-    }
-
-    let cloned = this.clone(decl)
-    cloned.prop = prefix + 'box-orient'
-    cloned.value = orient
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    decl.parent.insertBefore(decl, cloned)
-
-    cloned = this.clone(decl)
-    cloned.prop = prefix + 'box-direction'
-    cloned.value = dir
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    return decl.parent.insertBefore(decl, cloned)
-  }
-
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'flex-direction'
-  }
-
-  /**
-   * Clean two properties for 2009 spec
-   */
-  old(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return [prefix + 'box-orient', prefix + 'box-direction']
-    } else {
-      return super.old(prop, prefix)
-    }
-  }
-}
-
-FlexDirection.names = ['flex-direction', 'box-direction', 'box-orient']
-
-module.exports = FlexDirection
Index: de_modules/autoprefixer/lib/hacks/flex-flow.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-flow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class FlexFlow extends Declaration {
-  /**
-   * Use two properties for 2009 spec
-   */
-  insert(decl, prefix, prefixes) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec !== 2009) {
-      return super.insert(decl, prefix, prefixes)
-    }
-    let values = decl.value
-      .split(/\s+/)
-      .filter(i => i !== 'wrap' && i !== 'nowrap' && 'wrap-reverse')
-    if (values.length === 0) {
-      return undefined
-    }
-
-    let already = decl.parent.some(
-      i =>
-        i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction'
-    )
-    if (already) {
-      return undefined
-    }
-
-    let value = values[0]
-    let orient = value.includes('row') ? 'horizontal' : 'vertical'
-    let dir = value.includes('reverse') ? 'reverse' : 'normal'
-
-    let cloned = this.clone(decl)
-    cloned.prop = prefix + 'box-orient'
-    cloned.value = orient
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    decl.parent.insertBefore(decl, cloned)
-
-    cloned = this.clone(decl)
-    cloned.prop = prefix + 'box-direction'
-    cloned.value = dir
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    return decl.parent.insertBefore(decl, cloned)
-  }
-}
-
-FlexFlow.names = ['flex-flow', 'box-direction', 'box-orient']
-
-module.exports = FlexFlow
Index: de_modules/autoprefixer/lib/hacks/flex-grow.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-grow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class Flex extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'flex'
-  }
-
-  /**
-   * Return flex property for 2009 and 2012 specs
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return prefix + 'box-flex'
-    }
-    if (spec === 2012) {
-      return prefix + 'flex-positive'
-    }
-    return super.prefixed(prop, prefix)
-  }
-}
-
-Flex.names = ['flex-grow', 'flex-positive']
-
-module.exports = Flex
Index: de_modules/autoprefixer/lib/hacks/flex-shrink.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-shrink.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class FlexShrink extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'flex-shrink'
-  }
-
-  /**
-   * Return flex property for 2012 spec
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012) {
-      return prefix + 'flex-negative'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Ignore 2009 spec and use flex property for 2012
-   */
-  set(decl, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2012 || spec === 'final') {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-FlexShrink.names = ['flex-shrink', 'flex-negative']
-
-module.exports = FlexShrink
Index: de_modules/autoprefixer/lib/hacks/flex-spec.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-spec.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Return flexbox spec versions by prefix
- */
-module.exports = function (prefix) {
-  let spec
-  if (prefix === '-webkit- 2009' || prefix === '-moz-') {
-    spec = 2009
-  } else if (prefix === '-ms-') {
-    spec = 2012
-  } else if (prefix === '-webkit-') {
-    spec = 'final'
-  }
-
-  if (prefix === '-webkit- 2009') {
-    prefix = '-webkit-'
-  }
-
-  return [spec, prefix]
-}
Index: de_modules/autoprefixer/lib/hacks/flex-wrap.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex-wrap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class FlexWrap extends Declaration {
-  /**
-   * Don't add prefix for 2009 spec
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec !== 2009) {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-FlexWrap.names = ['flex-wrap']
-
-module.exports = FlexWrap
Index: de_modules/autoprefixer/lib/hacks/flex.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/flex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-let list = require('postcss').list
-
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class Flex extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'flex'
-  }
-
-  /**
-   * Change property name for 2009 spec
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return prefix + 'box-flex'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Spec 2009 supports only first argument
-   * Spec 2012 disallows unitless basis
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2009) {
-      decl.value = list.space(decl.value)[0]
-      decl.value = Flex.oldValues[decl.value] || decl.value
-      return super.set(decl, prefix)
-    }
-    if (spec === 2012) {
-      let components = list.space(decl.value)
-      if (components.length === 3 && components[2] === '0') {
-        decl.value = components.slice(0, 2).concat('0px').join(' ')
-      }
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-Flex.names = ['flex', 'box-flex']
-
-Flex.oldValues = {
-  auto: '1',
-  none: '0'
-}
-
-module.exports = Flex
Index: de_modules/autoprefixer/lib/hacks/fullscreen.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/fullscreen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-let Selector = require('../selector')
-
-class Fullscreen extends Selector {
-  /**
-   * Return different selectors depend on prefix
-   */
-  prefixed(prefix) {
-    if (prefix === '-webkit-') {
-      return ':-webkit-full-screen'
-    }
-    if (prefix === '-moz-') {
-      return ':-moz-full-screen'
-    }
-    return `:${prefix}fullscreen`
-  }
-}
-
-Fullscreen.names = [':fullscreen']
-
-module.exports = Fullscreen
Index: de_modules/autoprefixer/lib/hacks/gradient.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/gradient.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,447 +1,0 @@
-let parser = require('postcss-value-parser')
-
-let OldValue = require('../old-value')
-let utils = require('../utils')
-let Value = require('../value')
-
-let IS_DIRECTION = /top|left|right|bottom/gi
-
-class Gradient extends Value {
-  /**
-   * Do not add non-webkit prefixes for list-style and object
-   */
-  add(decl, prefix) {
-    let p = decl.prop
-    if (p.includes('mask')) {
-      if (prefix === '-webkit-' || prefix === '-webkit- old') {
-        return super.add(decl, prefix)
-      }
-    } else if (
-      p === 'list-style' ||
-      p === 'list-style-image' ||
-      p === 'content'
-    ) {
-      if (prefix === '-webkit-' || prefix === '-webkit- old') {
-        return super.add(decl, prefix)
-      }
-    } else {
-      return super.add(decl, prefix)
-    }
-    return undefined
-  }
-
-  /**
-   * Get div token from exists parameters
-   */
-  cloneDiv(params) {
-    for (let i of params) {
-      if (i.type === 'div' && i.value === ',') {
-        return i
-      }
-    }
-    return { after: ' ', type: 'div', value: ',' }
-  }
-
-  /**
-   * Change colors syntax to old webkit
-   */
-  colorStops(params) {
-    let result = []
-    for (let i = 0; i < params.length; i++) {
-      let pos
-      let param = params[i]
-      let item
-      if (i === 0) {
-        continue
-      }
-
-      let color = parser.stringify(param[0])
-      if (param[1] && param[1].type === 'word') {
-        pos = param[1].value
-      } else if (param[2] && param[2].type === 'word') {
-        pos = param[2].value
-      }
-
-      let stop
-      if (i === 1 && (!pos || pos === '0%')) {
-        stop = `from(${color})`
-      } else if (i === params.length - 1 && (!pos || pos === '100%')) {
-        stop = `to(${color})`
-      } else if (pos) {
-        stop = `color-stop(${pos}, ${color})`
-      } else {
-        stop = `color-stop(${color})`
-      }
-
-      let div = param[param.length - 1]
-      params[i] = [{ type: 'word', value: stop }]
-      if (div.type === 'div' && div.value === ',') {
-        item = params[i].push(div)
-      }
-      result.push(item)
-    }
-    return result
-  }
-
-  /**
-   * Change new direction to old
-   */
-  convertDirection(params) {
-    if (params.length > 0) {
-      if (params[0].value === 'to') {
-        this.fixDirection(params)
-      } else if (params[0].value.includes('deg')) {
-        this.fixAngle(params)
-      } else if (this.isRadial(params)) {
-        this.fixRadial(params)
-      }
-    }
-    return params
-  }
-
-  /**
-   * Add 90 degrees
-   */
-  fixAngle(params) {
-    let first = params[0].value
-    first = parseFloat(first)
-    first = Math.abs(450 - first) % 360
-    first = this.roundFloat(first, 3)
-    params[0].value = `${first}deg`
-  }
-
-  /**
-   * Replace `to top left` to `bottom right`
-   */
-  fixDirection(params) {
-    params.splice(0, 2)
-
-    for (let param of params) {
-      if (param.type === 'div') {
-        break
-      }
-      if (param.type === 'word') {
-        param.value = this.revertDirection(param.value)
-      }
-    }
-  }
-
-  /**
-   * Fix radial direction syntax
-   */
-  fixRadial(params) {
-    let first = []
-    let second = []
-    let a, b, c, i, next
-
-    for (i = 0; i < params.length - 2; i++) {
-      a = params[i]
-      b = params[i + 1]
-      c = params[i + 2]
-      if (a.type === 'space' && b.value === 'at' && c.type === 'space') {
-        next = i + 3
-        break
-      } else {
-        first.push(a)
-      }
-    }
-
-    let div
-    for (i = next; i < params.length; i++) {
-      if (params[i].type === 'div') {
-        div = params[i]
-        break
-      } else {
-        second.push(params[i])
-      }
-    }
-
-    params.splice(0, i, ...second, div, ...first)
-  }
-
-  /**
-   * Look for at word
-   */
-  isRadial(params) {
-    let state = 'before'
-    for (let param of params) {
-      if (state === 'before' && param.type === 'space') {
-        state = 'at'
-      } else if (state === 'at' && param.value === 'at') {
-        state = 'after'
-      } else if (state === 'after' && param.type === 'space') {
-        return true
-      } else if (param.type === 'div') {
-        break
-      } else {
-        state = 'before'
-      }
-    }
-    return false
-  }
-
-  /**
-   * Replace old direction to new
-   */
-  newDirection(params) {
-    if (params[0].value === 'to') {
-      return params
-    }
-    IS_DIRECTION.lastIndex = 0 // reset search index of global regexp
-    if (!IS_DIRECTION.test(params[0].value)) {
-      return params
-    }
-
-    params.unshift(
-      {
-        type: 'word',
-        value: 'to'
-      },
-      {
-        type: 'space',
-        value: ' '
-      }
-    )
-
-    for (let i = 2; i < params.length; i++) {
-      if (params[i].type === 'div') {
-        break
-      }
-      if (params[i].type === 'word') {
-        params[i].value = this.revertDirection(params[i].value)
-      }
-    }
-
-    return params
-  }
-
-  /**
-   * Normalize angle
-   */
-  normalize(nodes, gradientName) {
-    if (!nodes[0]) return nodes
-
-    if (/-?\d+(.\d+)?grad/.test(nodes[0].value)) {
-      nodes[0].value = this.normalizeUnit(nodes[0].value, 400)
-    } else if (/-?\d+(.\d+)?rad/.test(nodes[0].value)) {
-      nodes[0].value = this.normalizeUnit(nodes[0].value, 2 * Math.PI)
-    } else if (/-?\d+(.\d+)?turn/.test(nodes[0].value)) {
-      nodes[0].value = this.normalizeUnit(nodes[0].value, 1)
-    } else if (nodes[0].value.includes('deg')) {
-      let num = parseFloat(nodes[0].value)
-      num = (num % 360 + 360) % 360
-      nodes[0].value = `${num}deg`
-    }
-
-    if (
-      gradientName === 'linear-gradient' ||
-      gradientName === 'repeating-linear-gradient'
-    ) {
-      let direction = nodes[0].value
-
-      // Unitless zero for `<angle>` values are allowed in CSS gradients and transforms.
-      // Spec: https://github.com/w3c/csswg-drafts/commit/602789171429b2231223ab1e5acf8f7f11652eb3
-      if (direction === '0deg' || direction === '0') {
-        nodes = this.replaceFirst(nodes, 'to', ' ', 'top')
-      } else if (direction === '90deg') {
-        nodes = this.replaceFirst(nodes, 'to', ' ', 'right')
-      } else if (direction === '180deg') {
-        nodes = this.replaceFirst(nodes, 'to', ' ', 'bottom') // default value
-      } else if (direction === '270deg') {
-        nodes = this.replaceFirst(nodes, 'to', ' ', 'left')
-      }
-    }
-
-    return nodes
-  }
-
-  /**
-   * Convert angle unit to deg
-   */
-  normalizeUnit(str, full) {
-    let num = parseFloat(str)
-    let deg = (num / full) * 360
-    return `${deg}deg`
-  }
-
-  /**
-   * Remove old WebKit gradient too
-   */
-  old(prefix) {
-    if (prefix === '-webkit-') {
-      let type
-      if (this.name === 'linear-gradient') {
-        type = 'linear'
-      } else if (this.name === 'repeating-linear-gradient') {
-        type = 'repeating-linear'
-      } else if (this.name === 'repeating-radial-gradient') {
-        type = 'repeating-radial'
-      } else {
-        type = 'radial'
-      }
-      let string = '-gradient'
-      let regexp = utils.regexp(
-        `-webkit-(${type}-gradient|gradient\\(\\s*${type})`,
-        false
-      )
-
-      return new OldValue(this.name, prefix + this.name, string, regexp)
-    } else {
-      return super.old(prefix)
-    }
-  }
-
-  /**
-   * Change direction syntax to old webkit
-   */
-  oldDirection(params) {
-    let div = this.cloneDiv(params[0])
-
-    if (params[0][0].value !== 'to') {
-      return params.unshift([
-        { type: 'word', value: Gradient.oldDirections.bottom },
-        div
-      ])
-    } else {
-      let words = []
-      for (let node of params[0].slice(2)) {
-        if (node.type === 'word') {
-          words.push(node.value.toLowerCase())
-        }
-      }
-
-      words = words.join(' ')
-      let old = Gradient.oldDirections[words] || words
-
-      params[0] = [{ type: 'word', value: old }, div]
-      return params[0]
-    }
-  }
-
-  /**
-   * Convert to old webkit syntax
-   */
-  oldWebkit(node) {
-    let { nodes } = node
-    let string = parser.stringify(node.nodes)
-
-    if (this.name !== 'linear-gradient') {
-      return false
-    }
-    if (nodes[0] && nodes[0].value.includes('deg')) {
-      return false
-    }
-    if (
-      string.includes('px') ||
-      string.includes('-corner') ||
-      string.includes('-side')
-    ) {
-      return false
-    }
-
-    let params = [[]]
-    for (let i of nodes) {
-      params[params.length - 1].push(i)
-      if (i.type === 'div' && i.value === ',') {
-        params.push([])
-      }
-    }
-
-    this.oldDirection(params)
-    this.colorStops(params)
-
-    node.nodes = []
-    for (let param of params) {
-      node.nodes = node.nodes.concat(param)
-    }
-
-    node.nodes.unshift(
-      { type: 'word', value: 'linear' },
-      this.cloneDiv(node.nodes)
-    )
-    node.value = '-webkit-gradient'
-
-    return true
-  }
-
-  /**
-   * Change degrees for webkit prefix
-   */
-  replace(string, prefix) {
-    let ast = parser(string)
-    for (let node of ast.nodes) {
-      let gradientName = this.name // gradient name
-      if (node.type === 'function' && node.value === gradientName) {
-        node.nodes = this.newDirection(node.nodes)
-        node.nodes = this.normalize(node.nodes, gradientName)
-        if (prefix === '-webkit- old') {
-          let changes = this.oldWebkit(node)
-          if (!changes) {
-            return false
-          }
-        } else {
-          node.nodes = this.convertDirection(node.nodes)
-          node.value = prefix + node.value
-        }
-      }
-    }
-    return ast.toString()
-  }
-
-  /**
-   * Replace first token
-   */
-  replaceFirst(params, ...words) {
-    let prefix = words.map(i => {
-      if (i === ' ') {
-        return { type: 'space', value: i }
-      }
-      return { type: 'word', value: i }
-    })
-    return prefix.concat(params.slice(1))
-  }
-
-  revertDirection(word) {
-    return Gradient.directions[word.toLowerCase()] || word
-  }
-
-  /**
-   * Round float and save digits under dot
-   */
-  roundFloat(float, digits) {
-    return parseFloat(float.toFixed(digits))
-  }
-}
-
-Gradient.names = [
-  'linear-gradient',
-  'repeating-linear-gradient',
-  'radial-gradient',
-  'repeating-radial-gradient'
-]
-
-Gradient.directions = {
-  bottom: 'top',
-  left: 'right',
-  right: 'left',
-  top: 'bottom' // default value
-}
-
-// Direction to replace
-Gradient.oldDirections = {
-  'bottom': 'left top, left bottom',
-  'bottom left': 'right top, left bottom',
-  'bottom right': 'left top, right bottom',
-  'left': 'right top, left top',
-
-  'left bottom': 'right top, left bottom',
-  'left top': 'right bottom, left top',
-  'right': 'left top, right top',
-  'right bottom': 'left top, right bottom',
-  'right top': 'left bottom, right top',
-  'top': 'left bottom, left top',
-  'top left': 'right bottom, left top',
-  'top right': 'left bottom, right top'
-}
-
-module.exports = Gradient
Index: de_modules/autoprefixer/lib/hacks/grid-area.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('./grid-utils')
-
-class GridArea extends Declaration {
-  /**
-   * Translate grid-area to separate -ms- prefixed properties
-   */
-  insert(decl, prefix, prefixes, result) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    let values = utils.parse(decl)
-
-    let [rowStart, rowSpan] = utils.translate(values, 0, 2)
-    let [columnStart, columnSpan] = utils.translate(values, 1, 3)
-
-    ;[
-      ['grid-row', rowStart],
-      ['grid-row-span', rowSpan],
-      ['grid-column', columnStart],
-      ['grid-column-span', columnSpan]
-    ].forEach(([prop, value]) => {
-      utils.insertDecl(decl, prop, value)
-    })
-
-    utils.warnTemplateSelectorNotFound(decl, result)
-    utils.warnIfGridRowColumnExists(decl, result)
-
-    return undefined
-  }
-}
-
-GridArea.names = ['grid-area']
-
-module.exports = GridArea
Index: de_modules/autoprefixer/lib/hacks/grid-column-align.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-column-align.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-let Declaration = require('../declaration')
-
-class GridColumnAlign extends Declaration {
-  /**
-   * Do not prefix flexbox values
-   */
-  check(decl) {
-    return !decl.value.includes('flex-') && decl.value !== 'baseline'
-  }
-
-  /**
-   * Change IE property back
-   */
-  normalize() {
-    return 'justify-self'
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    return prefix + 'grid-column-align'
-  }
-}
-
-GridColumnAlign.names = ['grid-column-align']
-
-module.exports = GridColumnAlign
Index: de_modules/autoprefixer/lib/hacks/grid-end.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-end.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-let Declaration = require('../declaration')
-let { isPureNumber } = require('../utils')
-
-class GridEnd extends Declaration {
-  /**
-   * Change repeating syntax for IE
-   */
-  insert(decl, prefix, prefixes, result) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    let clonedDecl = this.clone(decl)
-
-    let startProp = decl.prop.replace(/end$/, 'start')
-    let spanProp = prefix + decl.prop.replace(/end$/, 'span')
-
-    if (decl.parent.some(i => i.prop === spanProp)) {
-      return undefined
-    }
-
-    clonedDecl.prop = spanProp
-
-    if (decl.value.includes('span')) {
-      clonedDecl.value = decl.value.replace(/span\s/i, '')
-    } else {
-      let startDecl
-      decl.parent.walkDecls(startProp, d => {
-        startDecl = d
-      })
-      if (startDecl) {
-        if (isPureNumber(startDecl.value)) {
-          let value = Number(decl.value) - Number(startDecl.value) + ''
-          clonedDecl.value = value
-        } else {
-          return undefined
-        }
-      } else {
-        decl.warn(
-          result,
-          `Can not prefix ${decl.prop} (${startProp} is not found)`
-        )
-      }
-    }
-
-    decl.cloneBefore(clonedDecl)
-
-    return undefined
-  }
-}
-
-GridEnd.names = ['grid-row-end', 'grid-column-end']
-
-module.exports = GridEnd
Index: de_modules/autoprefixer/lib/hacks/grid-row-align.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-row-align.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-let Declaration = require('../declaration')
-
-class GridRowAlign extends Declaration {
-  /**
-   * Do not prefix flexbox values
-   */
-  check(decl) {
-    return !decl.value.includes('flex-') && decl.value !== 'baseline'
-  }
-
-  /**
-   * Change IE property back
-   */
-  normalize() {
-    return 'align-self'
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    return prefix + 'grid-row-align'
-  }
-}
-
-GridRowAlign.names = ['grid-row-align']
-
-module.exports = GridRowAlign
Index: de_modules/autoprefixer/lib/hacks/grid-row-column.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-row-column.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('./grid-utils')
-
-class GridRowColumn extends Declaration {
-  /**
-   * Translate grid-row / grid-column to separate -ms- prefixed properties
-   */
-  insert(decl, prefix, prefixes) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    let values = utils.parse(decl)
-    let [start, span] = utils.translate(values, 0, 1)
-
-    let hasStartValueSpan = values[0] && values[0].includes('span')
-
-    if (hasStartValueSpan) {
-      span = values[0].join('').replace(/\D/g, '')
-    }
-
-    ;[
-      [decl.prop, start],
-      [`${decl.prop}-span`, span]
-    ].forEach(([prop, value]) => {
-      utils.insertDecl(decl, prop, value)
-    })
-
-    return undefined
-  }
-}
-
-GridRowColumn.names = ['grid-row', 'grid-column']
-
-module.exports = GridRowColumn
Index: de_modules/autoprefixer/lib/hacks/grid-rows-columns.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-rows-columns.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-let Declaration = require('../declaration')
-let Processor = require('../processor')
-let {
-  autoplaceGridItems,
-  getGridGap,
-  inheritGridGap,
-  prefixTrackProp,
-  prefixTrackValue
-} = require('./grid-utils')
-
-class GridRowsColumns extends Declaration {
-  insert(decl, prefix, prefixes, result) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    let { parent, prop, value } = decl
-    let isRowProp = prop.includes('rows')
-    let isColumnProp = prop.includes('columns')
-
-    let hasGridTemplate = parent.some(
-      i => i.prop === 'grid-template' || i.prop === 'grid-template-areas'
-    )
-
-    /**
-     * Not to prefix rows declaration if grid-template(-areas) is present
-     */
-    if (hasGridTemplate && isRowProp) {
-      return false
-    }
-
-    let processor = new Processor({ options: {} })
-    let status = processor.gridStatus(parent, result)
-    let gap = getGridGap(decl)
-    gap = inheritGridGap(decl, gap) || gap
-
-    let gapValue = isRowProp ? gap.row : gap.column
-
-    if ((status === 'no-autoplace' || status === true) && !hasGridTemplate) {
-      gapValue = null
-    }
-
-    let prefixValue = prefixTrackValue({
-      gap: gapValue,
-      value
-    })
-
-    /**
-     * Insert prefixes
-     */
-    decl.cloneBefore({
-      prop: prefixTrackProp({ prefix, prop }),
-      value: prefixValue
-    })
-
-    let autoflow = parent.nodes.find(i => i.prop === 'grid-auto-flow')
-    let autoflowValue = 'row'
-
-    if (autoflow && !processor.disabled(autoflow, result)) {
-      autoflowValue = autoflow.value.trim()
-    }
-    if (status === 'autoplace') {
-      /**
-       * Show warning if grid-template-rows decl is not found
-       */
-      let rowDecl = parent.nodes.find(i => i.prop === 'grid-template-rows')
-
-      if (!rowDecl && hasGridTemplate) {
-        return undefined
-      } else if (!rowDecl && !hasGridTemplate) {
-        decl.warn(
-          result,
-          'Autoplacement does not work without grid-template-rows property'
-        )
-        return undefined
-      }
-
-      /**
-       * Show warning if grid-template-columns decl is not found
-       */
-      let columnDecl = parent.nodes.find(i => {
-        return i.prop === 'grid-template-columns'
-      })
-      if (!columnDecl && !hasGridTemplate) {
-        decl.warn(
-          result,
-          'Autoplacement does not work without grid-template-columns property'
-        )
-      }
-
-      /**
-       * Autoplace grid items
-       */
-      if (isColumnProp && !hasGridTemplate) {
-        autoplaceGridItems(decl, result, gap, autoflowValue)
-      }
-    }
-
-    return undefined
-  }
-
-  /**
-   * Change IE property back
-   */
-  normalize(prop) {
-    return prop.replace(/^grid-(rows|columns)/, 'grid-template-$1')
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    if (prefix === '-ms-') {
-      return prefixTrackProp({ prefix, prop })
-    }
-    return super.prefixed(prop, prefix)
-  }
-}
-
-GridRowsColumns.names = [
-  'grid-template-rows',
-  'grid-template-columns',
-  'grid-rows',
-  'grid-columns'
-]
-
-module.exports = GridRowsColumns
Index: de_modules/autoprefixer/lib/hacks/grid-start.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-start.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-let Declaration = require('../declaration')
-
-class GridStart extends Declaration {
-  /**
-   * Do not add prefix for unsupported value in IE
-   */
-  check(decl) {
-    let value = decl.value
-    return !value.includes('/') && !value.includes('span')
-  }
-
-  /**
-   * Return a final spec property
-   */
-  normalize(prop) {
-    return prop.replace('-start', '')
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    let result = super.prefixed(prop, prefix)
-    if (prefix === '-ms-') {
-      result = result.replace('-start', '')
-    }
-    return result
-  }
-}
-
-GridStart.names = ['grid-row-start', 'grid-column-start']
-
-module.exports = GridStart
Index: de_modules/autoprefixer/lib/hacks/grid-template-areas.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-template-areas.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-let Declaration = require('../declaration')
-let {
-  getGridGap,
-  inheritGridGap,
-  parseGridAreas,
-  prefixTrackProp,
-  prefixTrackValue,
-  warnGridGap,
-  warnMissedAreas
-} = require('./grid-utils')
-
-function getGridRows(tpl) {
-  return tpl
-    .trim()
-    .slice(1, -1)
-    .split(/["']\s*["']?/g)
-}
-
-class GridTemplateAreas extends Declaration {
-  /**
-   * Translate grid-template-areas to separate -ms- prefixed properties
-   */
-  insert(decl, prefix, prefixes, result) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    let hasColumns = false
-    let hasRows = false
-    let parent = decl.parent
-    let gap = getGridGap(decl)
-    gap = inheritGridGap(decl, gap) || gap
-
-    // remove already prefixed rows
-    // to prevent doubling prefixes
-    parent.walkDecls(/-ms-grid-rows/, i => i.remove())
-
-    // add empty tracks to rows
-    parent.walkDecls(/grid-template-(rows|columns)/, trackDecl => {
-      if (trackDecl.prop === 'grid-template-rows') {
-        hasRows = true
-        let { prop, value } = trackDecl
-        trackDecl.cloneBefore({
-          prop: prefixTrackProp({ prefix, prop }),
-          value: prefixTrackValue({ gap: gap.row, value })
-        })
-      } else {
-        hasColumns = true
-      }
-    })
-
-    let gridRows = getGridRows(decl.value)
-
-    if (hasColumns && !hasRows && gap.row && gridRows.length > 1) {
-      decl.cloneBefore({
-        prop: '-ms-grid-rows',
-        raws: {},
-        value: prefixTrackValue({
-          gap: gap.row,
-          value: `repeat(${gridRows.length}, auto)`
-        })
-      })
-    }
-
-    // warnings
-    warnGridGap({
-      decl,
-      gap,
-      hasColumns,
-      result
-    })
-
-    let areas = parseGridAreas({
-      gap,
-      rows: gridRows
-    })
-
-    warnMissedAreas(areas, decl, result)
-
-    return decl
-  }
-}
-
-GridTemplateAreas.names = ['grid-template-areas']
-
-module.exports = GridTemplateAreas
Index: de_modules/autoprefixer/lib/hacks/grid-template.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-template.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-let Declaration = require('../declaration')
-let {
-  getGridGap,
-  inheritGridGap,
-  parseTemplate,
-  warnGridGap,
-  warnMissedAreas
-} = require('./grid-utils')
-
-class GridTemplate extends Declaration {
-  /**
-   * Translate grid-template to separate -ms- prefixed properties
-   */
-  insert(decl, prefix, prefixes, result) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    if (decl.parent.some(i => i.prop === '-ms-grid-rows')) {
-      return undefined
-    }
-
-    let gap = getGridGap(decl)
-
-    /**
-     * we must insert inherited gap values in some cases:
-     * if we are inside media query && if we have no grid-gap value
-     */
-    let inheritedGap = inheritGridGap(decl, gap)
-
-    let { areas, columns, rows } = parseTemplate({
-      decl,
-      gap: inheritedGap || gap
-    })
-
-    let hasAreas = Object.keys(areas).length > 0
-    let hasRows = Boolean(rows)
-    let hasColumns = Boolean(columns)
-
-    warnGridGap({
-      decl,
-      gap,
-      hasColumns,
-      result
-    })
-
-    warnMissedAreas(areas, decl, result)
-
-    if ((hasRows && hasColumns) || hasAreas) {
-      decl.cloneBefore({
-        prop: '-ms-grid-rows',
-        raws: {},
-        value: rows
-      })
-    }
-
-    if (hasColumns) {
-      decl.cloneBefore({
-        prop: '-ms-grid-columns',
-        raws: {},
-        value: columns
-      })
-    }
-
-    return decl
-  }
-}
-
-GridTemplate.names = ['grid-template']
-
-module.exports = GridTemplate
Index: de_modules/autoprefixer/lib/hacks/grid-utils.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/grid-utils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1113 +1,0 @@
-let parser = require('postcss-value-parser')
-let list = require('postcss').list
-
-let uniq = require('../utils').uniq
-let escapeRegexp = require('../utils').escapeRegexp
-let splitSelector = require('../utils').splitSelector
-
-function convert(value) {
-  if (
-    value &&
-    value.length === 2 &&
-    value[0] === 'span' &&
-    parseInt(value[1], 10) > 0
-  ) {
-    return [false, parseInt(value[1], 10)]
-  }
-
-  if (value && value.length === 1 && parseInt(value[0], 10) > 0) {
-    return [parseInt(value[0], 10), false]
-  }
-
-  return [false, false]
-}
-
-exports.translate = translate
-
-function translate(values, startIndex, endIndex) {
-  let startValue = values[startIndex]
-  let endValue = values[endIndex]
-
-  if (!startValue) {
-    return [false, false]
-  }
-
-  let [start, spanStart] = convert(startValue)
-  let [end, spanEnd] = convert(endValue)
-
-  if (start && !endValue) {
-    return [start, false]
-  }
-
-  if (spanStart && end) {
-    return [end - spanStart, spanStart]
-  }
-
-  if (start && spanEnd) {
-    return [start, spanEnd]
-  }
-
-  if (start && end) {
-    return [start, end - start]
-  }
-
-  return [false, false]
-}
-
-exports.parse = parse
-
-function parse(decl) {
-  let node = parser(decl.value)
-
-  let values = []
-  let current = 0
-  values[current] = []
-
-  for (let i of node.nodes) {
-    if (i.type === 'div') {
-      current += 1
-      values[current] = []
-    } else if (i.type === 'word') {
-      values[current].push(i.value)
-    }
-  }
-
-  return values
-}
-
-exports.insertDecl = insertDecl
-
-function insertDecl(decl, prop, value) {
-  if (value && !decl.parent.some(i => i.prop === `-ms-${prop}`)) {
-    decl.cloneBefore({
-      prop: `-ms-${prop}`,
-      value: value.toString()
-    })
-  }
-}
-
-// Track transforms
-
-exports.prefixTrackProp = prefixTrackProp
-
-function prefixTrackProp({ prefix, prop }) {
-  return prefix + prop.replace('template-', '')
-}
-
-function transformRepeat({ nodes }, { gap }) {
-  let { count, size } = nodes.reduce(
-    (result, node) => {
-      if (node.type === 'div' && node.value === ',') {
-        result.key = 'size'
-      } else {
-        result[result.key].push(parser.stringify(node))
-      }
-      return result
-    },
-    {
-      count: [],
-      key: 'count',
-      size: []
-    }
-  )
-
-  // insert gap values
-  if (gap) {
-    size = size.filter(i => i.trim())
-    let val = []
-    for (let i = 1; i <= count; i++) {
-      size.forEach((item, index) => {
-        if (index > 0 || i > 1) {
-          val.push(gap)
-        }
-        val.push(item)
-      })
-    }
-
-    return val.join(' ')
-  }
-
-  return `(${size.join('')})[${count.join('')}]`
-}
-
-exports.prefixTrackValue = prefixTrackValue
-
-function prefixTrackValue({ gap, value }) {
-  let result = parser(value).nodes.reduce((nodes, node) => {
-    if (node.type === 'function' && node.value === 'repeat') {
-      return nodes.concat({
-        type: 'word',
-        value: transformRepeat(node, { gap })
-      })
-    }
-    if (gap && node.type === 'space') {
-      return nodes.concat(
-        {
-          type: 'space',
-          value: ' '
-        },
-        {
-          type: 'word',
-          value: gap
-        },
-        node
-      )
-    }
-    return nodes.concat(node)
-  }, [])
-
-  return parser.stringify(result)
-}
-
-// Parse grid-template-areas
-
-let DOTS = /^\.+$/
-
-function track(start, end) {
-  return { end, span: end - start, start }
-}
-
-function getColumns(line) {
-  return line.trim().split(/\s+/g)
-}
-
-exports.parseGridAreas = parseGridAreas
-
-function parseGridAreas({ gap, rows }) {
-  return rows.reduce((areas, line, rowIndex) => {
-    if (gap.row) rowIndex *= 2
-
-    if (line.trim() === '') return areas
-
-    getColumns(line).forEach((area, columnIndex) => {
-      if (DOTS.test(area)) return
-
-      if (gap.column) columnIndex *= 2
-
-      if (typeof areas[area] === 'undefined') {
-        areas[area] = {
-          column: track(columnIndex + 1, columnIndex + 2),
-          row: track(rowIndex + 1, rowIndex + 2)
-        }
-      } else {
-        let { column, row } = areas[area]
-
-        column.start = Math.min(column.start, columnIndex + 1)
-        column.end = Math.max(column.end, columnIndex + 2)
-        column.span = column.end - column.start
-
-        row.start = Math.min(row.start, rowIndex + 1)
-        row.end = Math.max(row.end, rowIndex + 2)
-        row.span = row.end - row.start
-      }
-    })
-
-    return areas
-  }, {})
-}
-
-// Parse grid-template
-
-function testTrack(node) {
-  return node.type === 'word' && /^\[.+]$/.test(node.value)
-}
-
-function verifyRowSize(result) {
-  if (result.areas.length > result.rows.length) {
-    result.rows.push('auto')
-  }
-  return result
-}
-
-exports.parseTemplate = parseTemplate
-
-function parseTemplate({ decl, gap }) {
-  let gridTemplate = parser(decl.value).nodes.reduce(
-    (result, node) => {
-      let { type, value } = node
-
-      if (testTrack(node) || type === 'space') return result
-
-      // area
-      if (type === 'string') {
-        result = verifyRowSize(result)
-        result.areas.push(value)
-      }
-
-      // values and function
-      if (type === 'word' || type === 'function') {
-        result[result.key].push(parser.stringify(node))
-      }
-
-      // divider(/)
-      if (type === 'div' && value === '/') {
-        result.key = 'columns'
-        result = verifyRowSize(result)
-      }
-
-      return result
-    },
-    {
-      areas: [],
-      columns: [],
-      key: 'rows',
-      rows: []
-    }
-  )
-
-  return {
-    areas: parseGridAreas({
-      gap,
-      rows: gridTemplate.areas
-    }),
-    columns: prefixTrackValue({
-      gap: gap.column,
-      value: gridTemplate.columns.join(' ')
-    }),
-    rows: prefixTrackValue({
-      gap: gap.row,
-      value: gridTemplate.rows.join(' ')
-    })
-  }
-}
-
-// Insert parsed grid areas
-
-/**
- * Get an array of -ms- prefixed props and values
- * @param  {Object} [area] area object with column and row data
- * @param  {Boolean} [addRowSpan] should we add grid-column-row value?
- * @param  {Boolean} [addColumnSpan] should we add grid-column-span value?
- * @return {Array<Object>}
- */
-function getMSDecls(area, addRowSpan = false, addColumnSpan = false) {
-  let result = [
-    {
-      prop: '-ms-grid-row',
-      value: String(area.row.start)
-    }
-  ]
-  if (area.row.span > 1 || addRowSpan) {
-    result.push({
-      prop: '-ms-grid-row-span',
-      value: String(area.row.span)
-    })
-  }
-  result.push({
-    prop: '-ms-grid-column',
-    value: String(area.column.start)
-  })
-  if (area.column.span > 1 || addColumnSpan) {
-    result.push({
-      prop: '-ms-grid-column-span',
-      value: String(area.column.span)
-    })
-  }
-  return result
-}
-
-function getParentMedia(parent) {
-  if (parent.type === 'atrule' && parent.name === 'media') {
-    return parent
-  }
-  if (!parent.parent) {
-    return false
-  }
-  return getParentMedia(parent.parent)
-}
-
-/**
- * change selectors for rules with duplicate grid-areas.
- * @param  {Array<Rule>} rules
- * @param  {Array<String>} templateSelectors
- * @return {Array<Rule>} rules with changed selectors
- */
-function changeDuplicateAreaSelectors(ruleSelectors, templateSelectors) {
-  ruleSelectors = ruleSelectors.map(selector => {
-    let selectorBySpace = list.space(selector)
-    let selectorByComma = list.comma(selector)
-
-    if (selectorBySpace.length > selectorByComma.length) {
-      selector = selectorBySpace.slice(-1).join('')
-    }
-    return selector
-  })
-
-  return ruleSelectors.map(ruleSelector => {
-    let newSelector = templateSelectors.map((tplSelector, index) => {
-      let space = index === 0 ? '' : ' '
-      return `${space}${tplSelector} > ${ruleSelector}`
-    })
-
-    return newSelector
-  })
-}
-
-/**
- * check if selector of rules are equal
- * @param  {Rule} ruleA
- * @param  {Rule} ruleB
- * @return {Boolean}
- */
-function selectorsEqual(ruleA, ruleB) {
-  return ruleA.selectors.some(sel => {
-    return ruleB.selectors.includes(sel)
-  })
-}
-
-/**
- * Parse data from all grid-template(-areas) declarations
- * @param  {Root} css css root
- * @return {Object} parsed data
- */
-function parseGridTemplatesData(css) {
-  let parsed = []
-
-  // we walk through every grid-template(-areas) declaration and store
-  // data with the same area names inside the item
-  css.walkDecls(/grid-template(-areas)?$/, d => {
-    let rule = d.parent
-    let media = getParentMedia(rule)
-    let gap = getGridGap(d)
-    let inheritedGap = inheritGridGap(d, gap)
-    let { areas } = parseTemplate({ decl: d, gap: inheritedGap || gap })
-    let areaNames = Object.keys(areas)
-
-    // skip node if it doesn't have areas
-    if (areaNames.length === 0) {
-      return true
-    }
-
-    // check parsed array for item that include the same area names
-    // return index of that item
-    let index = parsed.reduce((acc, { allAreas }, idx) => {
-      let hasAreas = allAreas && areaNames.some(area => allAreas.includes(area))
-      return hasAreas ? idx : acc
-    }, null)
-
-    if (index !== null) {
-      // index is found, add the grid-template data to that item
-      let { allAreas, rules } = parsed[index]
-
-      // check if rule has no duplicate area names
-      let hasNoDuplicates = rules.some(r => {
-        return r.hasDuplicates === false && selectorsEqual(r, rule)
-      })
-
-      let duplicatesFound = false
-
-      // check need to gather all duplicate area names
-      let duplicateAreaNames = rules.reduce((acc, r) => {
-        if (!r.params && selectorsEqual(r, rule)) {
-          duplicatesFound = true
-          return r.duplicateAreaNames
-        }
-        if (!duplicatesFound) {
-          areaNames.forEach(name => {
-            if (r.areas[name]) {
-              acc.push(name)
-            }
-          })
-        }
-        return uniq(acc)
-      }, [])
-
-      // update grid-row/column-span values for areas with duplicate
-      // area names. @see #1084 and #1146
-      rules.forEach(r => {
-        areaNames.forEach(name => {
-          let area = r.areas[name]
-          if (area && area.row.span !== areas[name].row.span) {
-            areas[name].row.updateSpan = true
-          }
-
-          if (area && area.column.span !== areas[name].column.span) {
-            areas[name].column.updateSpan = true
-          }
-        })
-      })
-
-      parsed[index].allAreas = uniq([...allAreas, ...areaNames])
-      parsed[index].rules.push({
-        areas,
-        duplicateAreaNames,
-        hasDuplicates: !hasNoDuplicates,
-        node: rule,
-        params: media.params,
-        selectors: rule.selectors
-      })
-    } else {
-      // index is NOT found, push the new item to the parsed array
-      parsed.push({
-        allAreas: areaNames,
-        areasCount: 0,
-        rules: [
-          {
-            areas,
-            duplicateAreaNames: [],
-            duplicateRules: [],
-            hasDuplicates: false,
-            node: rule,
-            params: media.params,
-            selectors: rule.selectors
-          }
-        ]
-      })
-    }
-
-    return undefined
-  })
-
-  return parsed
-}
-
-/**
- * insert prefixed grid-area declarations
- * @param  {Root}  css css root
- * @param  {Function} isDisabled check if the rule is disabled
- * @return {void}
- */
-exports.insertAreas = insertAreas
-
-function insertAreas(css, isDisabled) {
-  // parse grid-template declarations
-  let gridTemplatesData = parseGridTemplatesData(css)
-
-  // return undefined if no declarations found
-  if (gridTemplatesData.length === 0) {
-    return undefined
-  }
-
-  // we need to store the rules that we will insert later
-  let rulesToInsert = {}
-
-  css.walkDecls('grid-area', gridArea => {
-    let gridAreaRule = gridArea.parent
-    let hasPrefixedRow = gridAreaRule.first.prop === '-ms-grid-row'
-    let gridAreaMedia = getParentMedia(gridAreaRule)
-
-    if (isDisabled(gridArea)) {
-      return undefined
-    }
-
-    let gridAreaRuleIndex = css.index(gridAreaMedia || gridAreaRule)
-
-    let value = gridArea.value
-    // found the data that matches grid-area identifier
-    let data = gridTemplatesData.filter(d => d.allAreas.includes(value))[0]
-
-    if (!data) {
-      return true
-    }
-
-    let lastArea = data.allAreas[data.allAreas.length - 1]
-    let selectorBySpace = list.space(gridAreaRule.selector)
-    let selectorByComma = list.comma(gridAreaRule.selector)
-    let selectorIsComplex =
-      selectorBySpace.length > 1 &&
-      selectorBySpace.length > selectorByComma.length
-
-    // prevent doubling of prefixes
-    if (hasPrefixedRow) {
-      return false
-    }
-
-    // create the empty object with the key as the last area name
-    // e.g if we have templates with "a b c" values, "c" will be the last area
-    if (!rulesToInsert[lastArea]) {
-      rulesToInsert[lastArea] = {}
-    }
-
-    let lastRuleIsSet = false
-
-    // walk through every grid-template rule data
-    for (let rule of data.rules) {
-      let area = rule.areas[value]
-      let hasDuplicateName = rule.duplicateAreaNames.includes(value)
-
-      // if we can't find the area name, update lastRule and continue
-      if (!area) {
-        let lastRule = rulesToInsert[lastArea].lastRule
-        let lastRuleIndex
-        if (lastRule) {
-          lastRuleIndex = css.index(lastRule)
-        } else {
-          /* c8 ignore next 2 */
-          lastRuleIndex = -1
-        }
-
-        if (gridAreaRuleIndex > lastRuleIndex) {
-          rulesToInsert[lastArea].lastRule = gridAreaMedia || gridAreaRule
-        }
-        continue
-      }
-
-      // for grid-templates inside media rule we need to create empty
-      // array to push prefixed grid-area rules later
-      if (rule.params && !rulesToInsert[lastArea][rule.params]) {
-        rulesToInsert[lastArea][rule.params] = []
-      }
-
-      if ((!rule.hasDuplicates || !hasDuplicateName) && !rule.params) {
-        // grid-template has no duplicates and not inside media rule
-
-        getMSDecls(area, false, false)
-          .reverse()
-          .forEach(i =>
-            gridAreaRule.prepend(
-              Object.assign(i, {
-                raws: {
-                  between: gridArea.raws.between
-                }
-              })
-            )
-          )
-
-        rulesToInsert[lastArea].lastRule = gridAreaRule
-        lastRuleIsSet = true
-      } else if (rule.hasDuplicates && !rule.params && !selectorIsComplex) {
-        // grid-template has duplicates and not inside media rule
-        let cloned = gridAreaRule.clone()
-        cloned.removeAll()
-
-        getMSDecls(area, area.row.updateSpan, area.column.updateSpan)
-          .reverse()
-          .forEach(i =>
-            cloned.prepend(
-              Object.assign(i, {
-                raws: {
-                  between: gridArea.raws.between
-                }
-              })
-            )
-          )
-
-        cloned.selectors = changeDuplicateAreaSelectors(
-          cloned.selectors,
-          rule.selectors
-        )
-
-        if (rulesToInsert[lastArea].lastRule) {
-          rulesToInsert[lastArea].lastRule.after(cloned)
-        }
-        rulesToInsert[lastArea].lastRule = cloned
-        lastRuleIsSet = true
-      } else if (
-        rule.hasDuplicates &&
-        !rule.params &&
-        selectorIsComplex &&
-        gridAreaRule.selector.includes(rule.selectors[0])
-      ) {
-        // grid-template has duplicates and not inside media rule
-        // and the selector is complex
-        gridAreaRule.walkDecls(/-ms-grid-(row|column)/, d => d.remove())
-        getMSDecls(area, area.row.updateSpan, area.column.updateSpan)
-          .reverse()
-          .forEach(i =>
-            gridAreaRule.prepend(
-              Object.assign(i, {
-                raws: {
-                  between: gridArea.raws.between
-                }
-              })
-            )
-          )
-      } else if (rule.params) {
-        // grid-template is inside media rule
-        // if we're inside media rule, we need to store prefixed rules
-        // inside rulesToInsert object to be able to preserve the order of media
-        // rules and merge them easily
-        let cloned = gridAreaRule.clone()
-        cloned.removeAll()
-
-        getMSDecls(area, area.row.updateSpan, area.column.updateSpan)
-          .reverse()
-          .forEach(i =>
-            cloned.prepend(
-              Object.assign(i, {
-                raws: {
-                  between: gridArea.raws.between
-                }
-              })
-            )
-          )
-
-        if (rule.hasDuplicates && hasDuplicateName) {
-          cloned.selectors = changeDuplicateAreaSelectors(
-            cloned.selectors,
-            rule.selectors
-          )
-        }
-
-        cloned.raws = rule.node.raws
-
-        if (css.index(rule.node.parent) > gridAreaRuleIndex) {
-          // append the prefixed rules right inside media rule
-          // with grid-template
-          rule.node.parent.append(cloned)
-        } else {
-          // store the rule to insert later
-          rulesToInsert[lastArea][rule.params].push(cloned)
-        }
-
-        // set new rule as last rule ONLY if we didn't set lastRule for
-        // this grid-area before
-        if (!lastRuleIsSet) {
-          rulesToInsert[lastArea].lastRule = gridAreaMedia || gridAreaRule
-        }
-      }
-    }
-
-    return undefined
-  })
-
-  // append stored rules inside the media rules
-  Object.keys(rulesToInsert).forEach(area => {
-    let data = rulesToInsert[area]
-    let lastRule = data.lastRule
-    Object.keys(data)
-      .reverse()
-      .filter(p => p !== 'lastRule')
-      .forEach(params => {
-        if (data[params].length > 0 && lastRule) {
-          lastRule.after({ name: 'media', params })
-          lastRule.next().append(data[params])
-        }
-      })
-  })
-
-  return undefined
-}
-
-/**
- * Warn user if grid area identifiers are not found
- * @param  {Object} areas
- * @param  {Declaration} decl
- * @param  {Result} result
- * @return {void}
- */
-exports.warnMissedAreas = warnMissedAreas
-
-function warnMissedAreas(areas, decl, result) {
-  let missed = Object.keys(areas)
-
-  decl.root().walkDecls('grid-area', gridArea => {
-    missed = missed.filter(e => e !== gridArea.value)
-  })
-
-  if (missed.length > 0) {
-    decl.warn(result, 'Can not find grid areas: ' + missed.join(', '))
-  }
-
-  return undefined
-}
-
-/**
- * compare selectors with grid-area rule and grid-template rule
- * show warning if grid-template selector is not found
- * (this function used for grid-area rule)
- * @param  {Declaration} decl
- * @param  {Result} result
- * @return {void}
- */
-exports.warnTemplateSelectorNotFound = warnTemplateSelectorNotFound
-
-function warnTemplateSelectorNotFound(decl, result) {
-  let rule = decl.parent
-  let root = decl.root()
-  let duplicatesFound = false
-
-  // slice selector array. Remove the last part (for comparison)
-  let slicedSelectorArr = list
-    .space(rule.selector)
-    .filter(str => str !== '>')
-    .slice(0, -1)
-
-  // we need to compare only if selector is complex.
-  // e.g '.grid-cell' is simple, but '.parent > .grid-cell' is complex
-  if (slicedSelectorArr.length > 0) {
-    let gridTemplateFound = false
-    let foundAreaSelector = null
-
-    root.walkDecls(/grid-template(-areas)?$/, d => {
-      let parent = d.parent
-      let templateSelectors = parent.selectors
-
-      let { areas } = parseTemplate({ decl: d, gap: getGridGap(d) })
-      let hasArea = areas[decl.value]
-
-      // find the the matching selectors
-      for (let tplSelector of templateSelectors) {
-        if (gridTemplateFound) {
-          break
-        }
-        let tplSelectorArr = list.space(tplSelector).filter(str => str !== '>')
-
-        gridTemplateFound = tplSelectorArr.every(
-          (item, idx) => item === slicedSelectorArr[idx]
-        )
-      }
-
-      if (gridTemplateFound || !hasArea) {
-        return true
-      }
-
-      if (!foundAreaSelector) {
-        foundAreaSelector = parent.selector
-      }
-
-      // if we found the duplicate area with different selector
-      if (foundAreaSelector && foundAreaSelector !== parent.selector) {
-        duplicatesFound = true
-      }
-
-      return undefined
-    })
-
-    // warn user if we didn't find template
-    if (!gridTemplateFound && duplicatesFound) {
-      decl.warn(
-        result,
-        'Autoprefixer cannot find a grid-template ' +
-          `containing the duplicate grid-area "${decl.value}" ` +
-          `with full selector matching: ${slicedSelectorArr.join(' ')}`
-      )
-    }
-  }
-}
-
-/**
- * warn user if both grid-area and grid-(row|column)
- * declarations are present in the same rule
- * @param  {Declaration} decl
- * @param  {Result} result
- * @return {void}
- */
-exports.warnIfGridRowColumnExists = warnIfGridRowColumnExists
-
-function warnIfGridRowColumnExists(decl, result) {
-  let rule = decl.parent
-  let decls = []
-  rule.walkDecls(/^grid-(row|column)/, d => {
-    if (
-      !d.prop.endsWith('-end') &&
-      !d.value.startsWith('span') &&
-      !d.prop.endsWith('-gap')
-    ) {
-      decls.push(d)
-    }
-  })
-  if (decls.length > 0) {
-    decls.forEach(d => {
-      d.warn(
-        result,
-        'You already have a grid-area declaration present in the rule. ' +
-          `You should use either grid-area or ${d.prop}, not both`
-      )
-    })
-  }
-
-  return undefined
-}
-
-// Gap utils
-
-exports.getGridGap = getGridGap
-
-function getGridGap(decl) {
-  let gap = {}
-
-  // try to find gap
-  let testGap = /^(grid-)?((row|column)-)?gap$/
-  decl.parent.walkDecls(testGap, ({ prop, value }) => {
-    if (/^(grid-)?gap$/.test(prop)) {
-      let [row, , column] = parser(value).nodes
-
-      gap.row = row && parser.stringify(row)
-      gap.column = column ? parser.stringify(column) : gap.row
-    }
-    if (/^(grid-)?row-gap$/.test(prop)) gap.row = value
-    if (/^(grid-)?column-gap$/.test(prop)) gap.column = value
-  })
-
-  return gap
-}
-
-/**
- * parse media parameters (for example 'min-width: 500px')
- * @param  {String} params parameter to parse
- * @return {}
- */
-function parseMediaParams(params) {
-  if (!params) {
-    return []
-  }
-  let parsed = parser(params)
-  let prop
-  let value
-
-  parsed.walk(node => {
-    if (node.type === 'word' && /min|max/g.test(node.value)) {
-      prop = node.value
-    } else if (node.value.includes('px')) {
-      value = parseInt(node.value.replace(/\D/g, ''))
-    }
-  })
-
-  return [prop, value]
-}
-
-/**
- * Compare the selectors and decide if we
- * need to inherit gap from compared selector or not.
- * @type {String} selA
- * @type {String} selB
- * @return {Boolean}
- */
-function shouldInheritGap(selA, selB) {
-  let result
-
-  // get arrays of selector split in 3-deep array
-  let splitSelectorArrA = splitSelector(selA)
-  let splitSelectorArrB = splitSelector(selB)
-
-  if (splitSelectorArrA[0].length < splitSelectorArrB[0].length) {
-    // abort if selectorA has lower descendant specificity then selectorB
-    // (e.g '.grid' and '.hello .world .grid')
-    return false
-  } else if (splitSelectorArrA[0].length > splitSelectorArrB[0].length) {
-    // if selectorA has higher descendant specificity then selectorB
-    // (e.g '.foo .bar .grid' and '.grid')
-
-    let idx = splitSelectorArrA[0].reduce((res, [item], index) => {
-      let firstSelectorPart = splitSelectorArrB[0][0][0]
-      if (item === firstSelectorPart) {
-        return index
-      }
-      return false
-    }, false)
-
-    if (idx) {
-      result = splitSelectorArrB[0].every((arr, index) => {
-        return arr.every(
-          (part, innerIndex) =>
-            // because selectorA has more space elements, we need to slice
-            // selectorA array by 'idx' number to compare them
-            splitSelectorArrA[0].slice(idx)[index][innerIndex] === part
-        )
-      })
-    }
-  } else {
-    // if selectorA has the same descendant specificity as selectorB
-    // this condition covers cases such as: '.grid.foo.bar' and '.grid'
-    result = splitSelectorArrB.some(byCommaArr => {
-      return byCommaArr.every((bySpaceArr, index) => {
-        return bySpaceArr.every(
-          (part, innerIndex) => splitSelectorArrA[0][index][innerIndex] === part
-        )
-      })
-    })
-  }
-
-  return result
-}
-/**
- * inherit grid gap values from the closest rule above
- * with the same selector
- * @param  {Declaration} decl
- * @param  {Object} gap gap values
- * @return {Object | Boolean} return gap values or false (if not found)
- */
-exports.inheritGridGap = inheritGridGap
-
-function inheritGridGap(decl, gap) {
-  let rule = decl.parent
-  let mediaRule = getParentMedia(rule)
-  let root = rule.root()
-
-  // get an array of selector split in 3-deep array
-  let splitSelectorArr = splitSelector(rule.selector)
-
-  // abort if the rule already has gaps
-  if (Object.keys(gap).length > 0) {
-    return false
-  }
-
-  // e.g ['min-width']
-  let [prop] = parseMediaParams(mediaRule.params)
-
-  let lastBySpace = splitSelectorArr[0]
-
-  // get escaped value from the selector
-  // if we have '.grid-2.foo.bar' selector, will be '\.grid\-2'
-  let escaped = escapeRegexp(lastBySpace[lastBySpace.length - 1][0])
-
-  let regexp = new RegExp(`(${escaped}$)|(${escaped}[,.])`)
-
-  // find the closest rule with the same selector
-  let closestRuleGap
-  root.walkRules(regexp, r => {
-    let gridGap
-
-    // abort if are checking the same rule
-    if (rule.toString() === r.toString()) {
-      return false
-    }
-
-    // find grid-gap values
-    r.walkDecls('grid-gap', d => (gridGap = getGridGap(d)))
-
-    // skip rule without gaps
-    if (!gridGap || Object.keys(gridGap).length === 0) {
-      return true
-    }
-
-    // skip rules that should not be inherited from
-    if (!shouldInheritGap(rule.selector, r.selector)) {
-      return true
-    }
-
-    let media = getParentMedia(r)
-    if (media) {
-      // if we are inside media, we need to check that media props match
-      // e.g ('min-width' === 'min-width')
-      let propToCompare = parseMediaParams(media.params)[0]
-      if (propToCompare === prop) {
-        closestRuleGap = gridGap
-        return true
-      }
-    } else {
-      closestRuleGap = gridGap
-      return true
-    }
-
-    return undefined
-  })
-
-  // if we find the closest gap object
-  if (closestRuleGap && Object.keys(closestRuleGap).length > 0) {
-    return closestRuleGap
-  }
-  return false
-}
-
-exports.warnGridGap = warnGridGap
-
-function warnGridGap({ decl, gap, hasColumns, result }) {
-  let hasBothGaps = gap.row && gap.column
-  if (!hasColumns && (hasBothGaps || (gap.column && !gap.row))) {
-    delete gap.column
-    decl.warn(
-      result,
-      'Can not implement grid-gap without grid-template-columns'
-    )
-  }
-}
-
-/**
- * normalize the grid-template-rows/columns values
- * @param  {String} str grid-template-rows/columns value
- * @return {Array} normalized array with values
- * @example
- * let normalized = normalizeRowColumn('1fr repeat(2, 20px 50px) 1fr')
- * normalized // <= ['1fr', '20px', '50px', '20px', '50px', '1fr']
- */
-function normalizeRowColumn(str) {
-  let normalized = parser(str).nodes.reduce((result, node) => {
-    if (node.type === 'function' && node.value === 'repeat') {
-      let key = 'count'
-
-      let [count, value] = node.nodes.reduce(
-        (acc, n) => {
-          if (n.type === 'word' && key === 'count') {
-            acc[0] = Math.abs(parseInt(n.value))
-            return acc
-          }
-          if (n.type === 'div' && n.value === ',') {
-            key = 'value'
-            return acc
-          }
-          if (key === 'value') {
-            acc[1] += parser.stringify(n)
-          }
-          return acc
-        },
-        [0, '']
-      )
-
-      if (count) {
-        for (let i = 0; i < count; i++) {
-          result.push(value)
-        }
-      }
-
-      return result
-    }
-    if (node.type === 'space') {
-      return result
-    }
-    return result.concat(parser.stringify(node))
-  }, [])
-
-  return normalized
-}
-
-exports.autoplaceGridItems = autoplaceGridItems
-
-/**
- * Autoplace grid items
- * @param {Declaration} decl
- * @param {Result} result
- * @param {Object} gap gap values
- * @param {String} autoflowValue grid-auto-flow value
- * @return {void}
- * @see https://github.com/postcss/autoprefixer/issues/1148
- */
-function autoplaceGridItems(decl, result, gap, autoflowValue = 'row') {
-  let { parent } = decl
-
-  let rowDecl = parent.nodes.find(i => i.prop === 'grid-template-rows')
-  let rows = normalizeRowColumn(rowDecl.value)
-  let columns = normalizeRowColumn(decl.value)
-
-  // Build array of area names with dummy values. If we have 3 columns and
-  // 2 rows, filledRows will be equal to ['1 2 3', '4 5 6']
-  let filledRows = rows.map((_, rowIndex) => {
-    return Array.from(
-      { length: columns.length },
-      (v, k) => k + rowIndex * columns.length + 1
-    ).join(' ')
-  })
-
-  let areas = parseGridAreas({ gap, rows: filledRows })
-  let keys = Object.keys(areas)
-  let items = keys.map(i => areas[i])
-
-  // Change the order of cells if grid-auto-flow value is 'column'
-  if (autoflowValue.includes('column')) {
-    items = items.sort((a, b) => a.column.start - b.column.start)
-  }
-
-  // Insert new rules
-  items.reverse().forEach((item, index) => {
-    let { column, row } = item
-    let nodeSelector = parent.selectors
-      .map(sel => sel + ` > *:nth-child(${keys.length - index})`)
-      .join(', ')
-
-    // create new rule
-    let node = parent.clone().removeAll()
-
-    // change rule selector
-    node.selector = nodeSelector
-
-    // insert prefixed row/column values
-    node.append({ prop: '-ms-grid-row', value: row.start })
-    node.append({ prop: '-ms-grid-column', value: column.start })
-
-    // insert rule
-    parent.after(node)
-  })
-
-  return undefined
-}
Index: de_modules/autoprefixer/lib/hacks/image-rendering.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/image-rendering.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-let Declaration = require('../declaration')
-
-class ImageRendering extends Declaration {
-  /**
-   * Add hack only for crisp-edges
-   */
-  check(decl) {
-    return decl.value === 'pixelated'
-  }
-
-  /**
-   * Return property name by spec
-   */
-  normalize() {
-    return 'image-rendering'
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    if (prefix === '-ms-') {
-      return '-ms-interpolation-mode'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Warn on old value
-   */
-  process(node, result) {
-    return super.process(node, result)
-  }
-
-  /**
-   * Change property and value for IE
-   */
-  set(decl, prefix) {
-    if (prefix !== '-ms-') return super.set(decl, prefix)
-    decl.prop = '-ms-interpolation-mode'
-    decl.value = 'nearest-neighbor'
-    return decl
-  }
-}
-
-ImageRendering.names = ['image-rendering', 'interpolation-mode']
-
-module.exports = ImageRendering
Index: de_modules/autoprefixer/lib/hacks/image-set.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/image-set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-let Value = require('../value')
-
-class ImageSet extends Value {
-  /**
-   * Use non-standard name for WebKit and Firefox
-   */
-  replace(string, prefix) {
-    let fixed = super.replace(string, prefix)
-    if (prefix === '-webkit-') {
-      fixed = fixed.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi, 'url($1)$2')
-    }
-    return fixed
-  }
-}
-
-ImageSet.names = ['image-set']
-
-module.exports = ImageSet
Index: de_modules/autoprefixer/lib/hacks/inline-logical.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/inline-logical.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-let Declaration = require('../declaration')
-
-class InlineLogical extends Declaration {
-  /**
-   * Return property name by spec
-   */
-  normalize(prop) {
-    return prop.replace(/(margin|padding|border)-(start|end)/, '$1-inline-$2')
-  }
-
-  /**
-   * Use old syntax for -moz- and -webkit-
-   */
-  prefixed(prop, prefix) {
-    return prefix + prop.replace('-inline', '')
-  }
-}
-
-InlineLogical.names = [
-  'border-inline-start',
-  'border-inline-end',
-  'margin-inline-start',
-  'margin-inline-end',
-  'padding-inline-start',
-  'padding-inline-end',
-  'border-start',
-  'border-end',
-  'margin-start',
-  'margin-end',
-  'padding-start',
-  'padding-end'
-]
-
-module.exports = InlineLogical
Index: de_modules/autoprefixer/lib/hacks/intrinsic.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/intrinsic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-let OldValue = require('../old-value')
-let Value = require('../value')
-
-function regexp(name) {
-  return new RegExp(`(^|[\\s,(])(${name}($|[\\s),]))`, 'gi')
-}
-
-class Intrinsic extends Value {
-  add(decl, prefix) {
-    if (decl.prop.includes('grid') && prefix !== '-webkit-') {
-      return undefined
-    }
-    return super.add(decl, prefix)
-  }
-
-  isStretch() {
-    return (
-      this.name === 'stretch' ||
-      this.name === 'fill' ||
-      this.name === 'fill-available'
-    )
-  }
-
-  old(prefix) {
-    let prefixed = prefix + this.name
-    if (this.isStretch()) {
-      if (prefix === '-moz-') {
-        prefixed = '-moz-available'
-      } else if (prefix === '-webkit-') {
-        prefixed = '-webkit-fill-available'
-      }
-    }
-    return new OldValue(this.name, prefixed, prefixed, regexp(prefixed))
-  }
-
-  regexp() {
-    if (!this.regexpCache) this.regexpCache = regexp(this.name)
-    return this.regexpCache
-  }
-
-  replace(string, prefix) {
-    if (prefix === '-moz-' && this.isStretch()) {
-      return string.replace(this.regexp(), '$1-moz-available$3')
-    }
-    if (prefix === '-webkit-' && this.isStretch()) {
-      return string.replace(this.regexp(), '$1-webkit-fill-available$3')
-    }
-    return super.replace(string, prefix)
-  }
-}
-
-Intrinsic.names = [
-  'max-content',
-  'min-content',
-  'fit-content',
-  'fill',
-  'fill-available',
-  'stretch'
-]
-
-module.exports = Intrinsic
Index: de_modules/autoprefixer/lib/hacks/justify-content.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/justify-content.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class JustifyContent extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'justify-content'
-  }
-
-  /**
-   * Change property name for 2009 and 2012 specs
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return prefix + 'box-pack'
-    }
-    if (spec === 2012) {
-      return prefix + 'flex-pack'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Change value for 2009 and 2012 specs
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2009 || spec === 2012) {
-      let value = JustifyContent.oldValues[decl.value] || decl.value
-      decl.value = value
-      if (spec !== 2009 || value !== 'distribute') {
-        return super.set(decl, prefix)
-      }
-    } else if (spec === 'final') {
-      return super.set(decl, prefix)
-    }
-    return undefined
-  }
-}
-
-JustifyContent.names = ['justify-content', 'flex-pack', 'box-pack']
-
-JustifyContent.oldValues = {
-  'flex-end': 'end',
-  'flex-start': 'start',
-  'space-around': 'distribute',
-  'space-between': 'justify'
-}
-
-module.exports = JustifyContent
Index: de_modules/autoprefixer/lib/hacks/mask-border.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/mask-border.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-let Declaration = require('../declaration')
-
-class MaskBorder extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return this.name.replace('box-image', 'border')
-  }
-
-  /**
-   * Return flex property for 2012 spec
-   */
-  prefixed(prop, prefix) {
-    let result = super.prefixed(prop, prefix)
-    if (prefix === '-webkit-') {
-      result = result.replace('border', 'box-image')
-    }
-    return result
-  }
-}
-
-MaskBorder.names = [
-  'mask-border',
-  'mask-border-source',
-  'mask-border-slice',
-  'mask-border-width',
-  'mask-border-outset',
-  'mask-border-repeat',
-  'mask-box-image',
-  'mask-box-image-source',
-  'mask-box-image-slice',
-  'mask-box-image-width',
-  'mask-box-image-outset',
-  'mask-box-image-repeat'
-]
-
-module.exports = MaskBorder
Index: de_modules/autoprefixer/lib/hacks/mask-composite.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/mask-composite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-let Declaration = require('../declaration')
-
-class MaskComposite extends Declaration {
-  /**
-   * Prefix mask-composite for webkit
-   */
-  insert(decl, prefix, prefixes) {
-    let isCompositeProp = decl.prop === 'mask-composite'
-
-    let compositeValues
-
-    if (isCompositeProp) {
-      compositeValues = decl.value.split(',')
-    } else {
-      compositeValues = decl.value.match(MaskComposite.regexp) || []
-    }
-
-    compositeValues = compositeValues.map(el => el.trim()).filter(el => el)
-    let hasCompositeValues = compositeValues.length
-
-    let compositeDecl
-
-    if (hasCompositeValues) {
-      compositeDecl = this.clone(decl)
-      compositeDecl.value = compositeValues
-        .map(value => MaskComposite.oldValues[value] || value)
-        .join(', ')
-
-      if (compositeValues.includes('intersect')) {
-        compositeDecl.value += ', xor'
-      }
-
-      compositeDecl.prop = prefix + 'mask-composite'
-    }
-
-    if (isCompositeProp) {
-      if (!hasCompositeValues) {
-        return undefined
-      }
-
-      if (this.needCascade(decl)) {
-        compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix)
-      }
-
-      return decl.parent.insertBefore(decl, compositeDecl)
-    }
-
-    let cloned = this.clone(decl)
-    cloned.prop = prefix + cloned.prop
-
-    if (hasCompositeValues) {
-      cloned.value = cloned.value.replace(MaskComposite.regexp, '')
-    }
-
-    if (this.needCascade(decl)) {
-      cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-
-    decl.parent.insertBefore(decl, cloned)
-
-    if (!hasCompositeValues) {
-      return decl
-    }
-
-    if (this.needCascade(decl)) {
-      compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix)
-    }
-    return decl.parent.insertBefore(decl, compositeDecl)
-  }
-}
-
-MaskComposite.names = ['mask', 'mask-composite']
-
-MaskComposite.oldValues = {
-  add: 'source-over',
-  exclude: 'xor',
-  intersect: 'source-in',
-  subtract: 'source-out'
-}
-
-MaskComposite.regexp = new RegExp(
-  `\\s+(${Object.keys(MaskComposite.oldValues).join(
-    '|'
-  )})\\b(?!\\))\\s*(?=[,])`,
-  'ig'
-)
-
-module.exports = MaskComposite
Index: de_modules/autoprefixer/lib/hacks/order.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/order.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-let Declaration = require('../declaration')
-let flexSpec = require('./flex-spec')
-
-class Order extends Declaration {
-  /**
-   * Return property name by final spec
-   */
-  normalize() {
-    return 'order'
-  }
-
-  /**
-   * Change property name for 2009 and 2012 specs
-   */
-  prefixed(prop, prefix) {
-    let spec
-    ;[spec, prefix] = flexSpec(prefix)
-    if (spec === 2009) {
-      return prefix + 'box-ordinal-group'
-    }
-    if (spec === 2012) {
-      return prefix + 'flex-order'
-    }
-    return super.prefixed(prop, prefix)
-  }
-
-  /**
-   * Fix value for 2009 spec
-   */
-  set(decl, prefix) {
-    let spec = flexSpec(prefix)[0]
-    if (spec === 2009 && /\d/.test(decl.value)) {
-      decl.value = (parseInt(decl.value) + 1).toString()
-      return super.set(decl, prefix)
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-Order.names = ['order', 'flex-order', 'box-ordinal-group']
-
-module.exports = Order
Index: de_modules/autoprefixer/lib/hacks/overscroll-behavior.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/overscroll-behavior.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-let Declaration = require('../declaration')
-
-class OverscrollBehavior extends Declaration {
-  /**
-   * Return property name by spec
-   */
-  normalize() {
-    return 'overscroll-behavior'
-  }
-
-  /**
-   * Change property name for IE
-   */
-  prefixed(prop, prefix) {
-    return prefix + 'scroll-chaining'
-  }
-
-  /**
-   * Change value for IE
-   */
-  set(decl, prefix) {
-    if (decl.value === 'auto') {
-      decl.value = 'chained'
-    } else if (decl.value === 'none' || decl.value === 'contain') {
-      decl.value = 'none'
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-OverscrollBehavior.names = ['overscroll-behavior', 'scroll-chaining']
-
-module.exports = OverscrollBehavior
Index: de_modules/autoprefixer/lib/hacks/pixelated.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/pixelated.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-let OldValue = require('../old-value')
-let Value = require('../value')
-
-class Pixelated extends Value {
-  /**
-   * Different name for WebKit and Firefox
-   */
-  old(prefix) {
-    if (prefix === '-webkit-') {
-      return new OldValue(this.name, '-webkit-optimize-contrast')
-    }
-    if (prefix === '-moz-') {
-      return new OldValue(this.name, '-moz-crisp-edges')
-    }
-    return super.old(prefix)
-  }
-
-  /**
-   * Use non-standard name for WebKit and Firefox
-   */
-  replace(string, prefix) {
-    if (prefix === '-webkit-') {
-      return string.replace(this.regexp(), '$1-webkit-optimize-contrast')
-    }
-    if (prefix === '-moz-') {
-      return string.replace(this.regexp(), '$1-moz-crisp-edges')
-    }
-    return super.replace(string, prefix)
-  }
-}
-
-Pixelated.names = ['pixelated']
-
-module.exports = Pixelated
Index: de_modules/autoprefixer/lib/hacks/place-self.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/place-self.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-let Declaration = require('../declaration')
-let utils = require('./grid-utils')
-
-class PlaceSelf extends Declaration {
-  /**
-   * Translate place-self to separate -ms- prefixed properties
-   */
-  insert(decl, prefix, prefixes) {
-    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
-
-    // prevent doubling of prefixes
-    if (decl.parent.some(i => i.prop === '-ms-grid-row-align')) {
-      return undefined
-    }
-
-    let [[first, second]] = utils.parse(decl)
-
-    if (second) {
-      utils.insertDecl(decl, 'grid-row-align', first)
-      utils.insertDecl(decl, 'grid-column-align', second)
-    } else {
-      utils.insertDecl(decl, 'grid-row-align', first)
-      utils.insertDecl(decl, 'grid-column-align', first)
-    }
-
-    return undefined
-  }
-}
-
-PlaceSelf.names = ['place-self']
-
-module.exports = PlaceSelf
Index: de_modules/autoprefixer/lib/hacks/placeholder-shown.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/placeholder-shown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-let Selector = require('../selector')
-
-class PlaceholderShown extends Selector {
-  /**
-   * Return different selectors depend on prefix
-   */
-  prefixed(prefix) {
-    if (prefix === '-moz-') {
-      return ':-moz-placeholder'
-    } else if (prefix === '-ms-') {
-      return ':-ms-input-placeholder'
-    }
-    return `:${prefix}placeholder-shown`
-  }
-}
-
-PlaceholderShown.names = [':placeholder-shown']
-
-module.exports = PlaceholderShown
Index: de_modules/autoprefixer/lib/hacks/placeholder.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/placeholder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-let Selector = require('../selector')
-
-class Placeholder extends Selector {
-  /**
-   * Add old mozilla to possible prefixes
-   */
-  possible() {
-    return super.possible().concat(['-moz- old', '-ms- old'])
-  }
-
-  /**
-   * Return different selectors depend on prefix
-   */
-  prefixed(prefix) {
-    if (prefix === '-webkit-') {
-      return '::-webkit-input-placeholder'
-    }
-    if (prefix === '-ms-') {
-      return '::-ms-input-placeholder'
-    }
-    if (prefix === '-ms- old') {
-      return ':-ms-input-placeholder'
-    }
-    if (prefix === '-moz- old') {
-      return ':-moz-placeholder'
-    }
-    return `::${prefix}placeholder`
-  }
-}
-
-Placeholder.names = ['::placeholder']
-
-module.exports = Placeholder
Index: de_modules/autoprefixer/lib/hacks/print-color-adjust.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/print-color-adjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-let Declaration = require('../declaration')
-
-class PrintColorAdjust extends Declaration {
-  /**
-   * Return property name by spec
-   */
-  normalize() {
-    return 'print-color-adjust'
-  }
-
-  /**
-   * Change property name for WebKit-based browsers
-   */
-  prefixed(prop, prefix) {
-    if (prefix === '-moz-') {
-      return 'color-adjust'
-    } else {
-      return prefix + 'print-color-adjust'
-    }
-  }
-}
-
-PrintColorAdjust.names = ['print-color-adjust', 'color-adjust']
-
-module.exports = PrintColorAdjust
Index: de_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-let Declaration = require('../declaration')
-
-class TextDecorationSkipInk extends Declaration {
-  /**
-   * Change prefix for ink value
-   */
-  set(decl, prefix) {
-    if (decl.prop === 'text-decoration-skip-ink' && decl.value === 'auto') {
-      decl.prop = prefix + 'text-decoration-skip'
-      decl.value = 'ink'
-      return decl
-    } else {
-      return super.set(decl, prefix)
-    }
-  }
-}
-
-TextDecorationSkipInk.names = [
-  'text-decoration-skip-ink',
-  'text-decoration-skip'
-]
-
-module.exports = TextDecorationSkipInk
Index: de_modules/autoprefixer/lib/hacks/text-decoration.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/text-decoration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-let Declaration = require('../declaration')
-
-const BASIC = [
-  'none',
-  'underline',
-  'overline',
-  'line-through',
-  'blink',
-  'inherit',
-  'initial',
-  'unset'
-]
-
-class TextDecoration extends Declaration {
-  /**
-   * Do not add prefixes for basic values.
-   */
-  check(decl) {
-    return decl.value.split(/\s+/).some(i => !BASIC.includes(i))
-  }
-}
-
-TextDecoration.names = ['text-decoration']
-
-module.exports = TextDecoration
Index: de_modules/autoprefixer/lib/hacks/text-emphasis-position.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/text-emphasis-position.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-let Declaration = require('../declaration')
-
-class TextEmphasisPosition extends Declaration {
-  set(decl, prefix) {
-    if (prefix === '-webkit-') {
-      decl.value = decl.value.replace(/\s*(right|left)\s*/i, '')
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-TextEmphasisPosition.names = ['text-emphasis-position']
-
-module.exports = TextEmphasisPosition
Index: de_modules/autoprefixer/lib/hacks/transform-decl.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/transform-decl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-let Declaration = require('../declaration')
-
-class TransformDecl extends Declaration {
-  /**
-   * Is transform contain 3D commands
-   */
-  contain3d(decl) {
-    if (decl.prop === 'transform-origin') {
-      return false
-    }
-
-    for (let func of TransformDecl.functions3d) {
-      if (decl.value.includes(`${func}(`)) {
-        return true
-      }
-    }
-
-    return false
-  }
-
-  /**
-   * Don't add prefix for IE in keyframes
-   */
-  insert(decl, prefix, prefixes) {
-    if (prefix === '-ms-') {
-      if (!this.contain3d(decl) && !this.keyframeParents(decl)) {
-        return super.insert(decl, prefix, prefixes)
-      }
-    } else if (prefix === '-o-') {
-      if (!this.contain3d(decl)) {
-        return super.insert(decl, prefix, prefixes)
-      }
-    } else {
-      return super.insert(decl, prefix, prefixes)
-    }
-    return undefined
-  }
-
-  /**
-   * Recursively check all parents for @keyframes
-   */
-  keyframeParents(decl) {
-    let { parent } = decl
-    while (parent) {
-      if (parent.type === 'atrule' && parent.name === 'keyframes') {
-        return true
-      }
-      ;({ parent } = parent)
-    }
-    return false
-  }
-
-  /**
-   * Replace rotateZ to rotate for IE 9
-   */
-  set(decl, prefix) {
-    decl = super.set(decl, prefix)
-    if (prefix === '-ms-') {
-      decl.value = decl.value.replace(/rotatez/gi, 'rotate')
-    }
-    return decl
-  }
-}
-
-TransformDecl.names = ['transform', 'transform-origin']
-
-TransformDecl.functions3d = [
-  'matrix3d',
-  'translate3d',
-  'translateZ',
-  'scale3d',
-  'scaleZ',
-  'rotate3d',
-  'rotateX',
-  'rotateY',
-  'perspective'
-]
-
-module.exports = TransformDecl
Index: de_modules/autoprefixer/lib/hacks/user-select.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/user-select.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-let Declaration = require('../declaration')
-
-class UserSelect extends Declaration {
-  /**
-   * Avoid prefixing all in IE
-   */
-  insert(decl, prefix, prefixes) {
-    if (decl.value === 'all' && prefix === '-ms-') {
-      return undefined
-    } else if (
-      decl.value === 'contain' &&
-      (prefix === '-moz-' || prefix === '-webkit-')
-    ) {
-      return undefined
-    } else {
-      return super.insert(decl, prefix, prefixes)
-    }
-  }
-
-  /**
-   * Change prefixed value for IE
-   */
-  set(decl, prefix) {
-    if (prefix === '-ms-' && decl.value === 'contain') {
-      decl.value = 'element'
-    }
-    return super.set(decl, prefix)
-  }
-}
-
-UserSelect.names = ['user-select']
-
-module.exports = UserSelect
Index: de_modules/autoprefixer/lib/hacks/writing-mode.js
===================================================================
--- node_modules/autoprefixer/lib/hacks/writing-mode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-let Declaration = require('../declaration')
-
-class WritingMode extends Declaration {
-  insert(decl, prefix, prefixes) {
-    if (prefix === '-ms-') {
-      let cloned = this.set(this.clone(decl), prefix)
-
-      if (this.needCascade(decl)) {
-        cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
-      }
-      let direction = 'ltr'
-
-      decl.parent.nodes.forEach(i => {
-        if (i.prop === 'direction') {
-          if (i.value === 'rtl' || i.value === 'ltr') direction = i.value
-        }
-      })
-
-      cloned.value = WritingMode.msValues[direction][decl.value] || decl.value
-      return decl.parent.insertBefore(decl, cloned)
-    }
-
-    return super.insert(decl, prefix, prefixes)
-  }
-}
-
-WritingMode.names = ['writing-mode']
-
-WritingMode.msValues = {
-  ltr: {
-    'horizontal-tb': 'lr-tb',
-    'vertical-lr': 'tb-lr',
-    'vertical-rl': 'tb-rl'
-  },
-  rtl: {
-    'horizontal-tb': 'rl-tb',
-    'vertical-lr': 'bt-lr',
-    'vertical-rl': 'bt-rl'
-  }
-}
-
-module.exports = WritingMode
Index: de_modules/autoprefixer/lib/info.js
===================================================================
--- node_modules/autoprefixer/lib/info.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-let browserslist = require('browserslist')
-
-function capitalize(str) {
-  return str.slice(0, 1).toUpperCase() + str.slice(1)
-}
-
-const NAMES = {
-  and_chr: 'Chrome for Android',
-  and_ff: 'Firefox for Android',
-  and_qq: 'QQ Browser',
-  and_uc: 'UC for Android',
-  baidu: 'Baidu Browser',
-  ie: 'IE',
-  ie_mob: 'IE Mobile',
-  ios_saf: 'iOS Safari',
-  kaios: 'KaiOS Browser',
-  op_mini: 'Opera Mini',
-  op_mob: 'Opera Mobile',
-  samsung: 'Samsung Internet'
-}
-
-function prefix(name, prefixes, note) {
-  let out = `  ${name}`
-  if (note) out += ' *'
-  out += ': '
-  out += prefixes.map(i => i.replace(/^-(.*)-$/g, '$1')).join(', ')
-  out += '\n'
-  return out
-}
-
-module.exports = function (prefixes) {
-  if (prefixes.browsers.selected.length === 0) {
-    return 'No browsers selected'
-  }
-
-  let versions = {}
-  for (let browser of prefixes.browsers.selected) {
-    let parts = browser.split(' ')
-    let name = parts[0]
-    let version = parts[1]
-
-    name = NAMES[name] || capitalize(name)
-    if (versions[name]) {
-      versions[name].push(version)
-    } else {
-      versions[name] = [version]
-    }
-  }
-
-  let out = 'Browsers:\n'
-  for (let browser in versions) {
-    let list = versions[browser]
-    list = list.sort((a, b) => parseFloat(b) - parseFloat(a))
-    out += `  ${browser}: ${list.join(', ')}\n`
-  }
-
-  let coverage = browserslist.coverage(prefixes.browsers.selected)
-  let round = Math.round(coverage * 100) / 100.0
-  out += `\nThese browsers account for ${round}% of all users globally\n`
-
-  let atrules = []
-  for (let name in prefixes.add) {
-    let data = prefixes.add[name]
-    if (name[0] === '@' && data.prefixes) {
-      atrules.push(prefix(name, data.prefixes))
-    }
-  }
-  if (atrules.length > 0) {
-    out += `\nAt-Rules:\n${atrules.sort().join('')}`
-  }
-
-  let selectors = []
-  for (let selector of prefixes.add.selectors) {
-    if (selector.prefixes) {
-      selectors.push(prefix(selector.name, selector.prefixes))
-    }
-  }
-  if (selectors.length > 0) {
-    out += `\nSelectors:\n${selectors.sort().join('')}`
-  }
-
-  let values = []
-  let props = []
-  let hadGrid = false
-  for (let name in prefixes.add) {
-    let data = prefixes.add[name]
-    if (name[0] !== '@' && data.prefixes) {
-      let grid = name.indexOf('grid-') === 0
-      if (grid) hadGrid = true
-      props.push(prefix(name, data.prefixes, grid))
-    }
-
-    if (!Array.isArray(data.values)) {
-      continue
-    }
-    for (let value of data.values) {
-      let grid = value.name.includes('grid')
-      if (grid) hadGrid = true
-      let string = prefix(value.name, value.prefixes, grid)
-      if (!values.includes(string)) {
-        values.push(string)
-      }
-    }
-  }
-
-  if (props.length > 0) {
-    out += `\nProperties:\n${props.sort().join('')}`
-  }
-  if (values.length > 0) {
-    out += `\nValues:\n${values.sort().join('')}`
-  }
-  if (hadGrid) {
-    out += '\n* - Prefixes will be added only on grid: true option.\n'
-  }
-
-  if (!atrules.length && !selectors.length && !props.length && !values.length) {
-    out +=
-      "\nAwesome! Your browsers don't require any vendor prefixes." +
-      '\nNow you can remove Autoprefixer from build steps.'
-  }
-
-  return out
-}
Index: de_modules/autoprefixer/lib/old-selector.js
===================================================================
--- node_modules/autoprefixer/lib/old-selector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-class OldSelector {
-  constructor(selector, prefix) {
-    this.prefix = prefix
-    this.prefixed = selector.prefixed(this.prefix)
-    this.regexp = selector.regexp(this.prefix)
-
-    this.prefixeds = selector
-      .possible()
-      .map(x => [selector.prefixed(x), selector.regexp(x)])
-
-    this.unprefixed = selector.name
-    this.nameRegexp = selector.regexp()
-  }
-
-  /**
-   * Does rule contain an unnecessary prefixed selector
-   */
-  check(rule) {
-    if (!rule.selector.includes(this.prefixed)) {
-      return false
-    }
-    if (!rule.selector.match(this.regexp)) {
-      return false
-    }
-    if (this.isHack(rule)) {
-      return false
-    }
-    return true
-  }
-
-  /**
-   * Is rule a hack without unprefixed version bottom
-   */
-  isHack(rule) {
-    let index = rule.parent.index(rule) + 1
-    let rules = rule.parent.nodes
-
-    while (index < rules.length) {
-      let before = rules[index].selector
-      if (!before) {
-        return true
-      }
-
-      if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) {
-        return false
-      }
-
-      let some = false
-      for (let [string, regexp] of this.prefixeds) {
-        if (before.includes(string) && before.match(regexp)) {
-          some = true
-          break
-        }
-      }
-
-      if (!some) {
-        return true
-      }
-
-      index += 1
-    }
-
-    return true
-  }
-}
-
-module.exports = OldSelector
Index: de_modules/autoprefixer/lib/old-value.js
===================================================================
--- node_modules/autoprefixer/lib/old-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-let utils = require('./utils')
-
-class OldValue {
-  constructor(unprefixed, prefixed, string, regexp) {
-    this.unprefixed = unprefixed
-    this.prefixed = prefixed
-    this.string = string || prefixed
-    this.regexp = regexp || utils.regexp(prefixed)
-  }
-
-  /**
-   * Check, that value contain old value
-   */
-  check(value) {
-    if (value.includes(this.string)) {
-      return !!value.match(this.regexp)
-    }
-    return false
-  }
-}
-
-module.exports = OldValue
Index: de_modules/autoprefixer/lib/prefixer.js
===================================================================
--- node_modules/autoprefixer/lib/prefixer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-let Browsers = require('./browsers')
-let utils = require('./utils')
-let vendor = require('./vendor')
-
-/**
- * Recursively clone objects
- */
-function clone(obj, parent) {
-  let cloned = new obj.constructor()
-
-  for (let i of Object.keys(obj || {})) {
-    let value = obj[i]
-    if (i === 'parent' && typeof value === 'object') {
-      if (parent) {
-        cloned[i] = parent
-      }
-    } else if (i === 'source' || i === null) {
-      cloned[i] = value
-    } else if (Array.isArray(value)) {
-      cloned[i] = value.map(x => clone(x, cloned))
-    } else if (
-      i !== '_autoprefixerPrefix' &&
-      i !== '_autoprefixerValues' &&
-      i !== 'proxyCache'
-    ) {
-      if (typeof value === 'object' && value !== null) {
-        value = clone(value, cloned)
-      }
-      cloned[i] = value
-    }
-  }
-
-  return cloned
-}
-
-class Prefixer {
-  constructor(name, prefixes, all) {
-    this.prefixes = prefixes
-    this.name = name
-    this.all = all
-  }
-
-  /**
-   * Clone node and clean autprefixer custom caches
-   */
-  static clone(node, overrides) {
-    let cloned = clone(node)
-    for (let name in overrides) {
-      cloned[name] = overrides[name]
-    }
-    return cloned
-  }
-
-  /**
-   * Add hack to selected names
-   */
-  static hack(klass) {
-    if (!this.hacks) {
-      this.hacks = {}
-    }
-    return klass.names.map(name => {
-      this.hacks[name] = klass
-      return this.hacks[name]
-    })
-  }
-
-  /**
-   * Load hacks for some names
-   */
-  static load(name, prefixes, all) {
-    let Klass = this.hacks && this.hacks[name]
-    if (Klass) {
-      return new Klass(name, prefixes, all)
-    } else {
-      return new this(name, prefixes, all)
-    }
-  }
-
-  /**
-   * Shortcut for Prefixer.clone
-   */
-  clone(node, overrides) {
-    return Prefixer.clone(node, overrides)
-  }
-
-  /**
-   * Find prefix in node parents
-   */
-  parentPrefix(node) {
-    let prefix
-
-    if (typeof node._autoprefixerPrefix !== 'undefined') {
-      prefix = node._autoprefixerPrefix
-    } else if (node.type === 'decl' && node.prop[0] === '-') {
-      prefix = vendor.prefix(node.prop)
-    } else if (node.type === 'root') {
-      prefix = false
-    } else if (
-      node.type === 'rule' &&
-      node.selector.includes(':-') &&
-      /:(-\w+-)/.test(node.selector)
-    ) {
-      prefix = node.selector.match(/:(-\w+-)/)[1]
-    } else if (node.type === 'atrule' && node.name[0] === '-') {
-      prefix = vendor.prefix(node.name)
-    } else {
-      prefix = this.parentPrefix(node.parent)
-    }
-
-    if (!Browsers.prefixes().includes(prefix)) {
-      prefix = false
-    }
-
-    node._autoprefixerPrefix = prefix
-
-    return node._autoprefixerPrefix
-  }
-
-  /**
-   * Clone node with prefixes
-   */
-  process(node, result) {
-    if (!this.check(node)) {
-      return undefined
-    }
-
-    let parent = this.parentPrefix(node)
-
-    let prefixes = this.prefixes.filter(
-      prefix => !parent || parent === utils.removeNote(prefix)
-    )
-
-    let added = []
-    for (let prefix of prefixes) {
-      if (this.add(node, prefix, added.concat([prefix]), result)) {
-        added.push(prefix)
-      }
-    }
-
-    return added
-  }
-}
-
-module.exports = Prefixer
Index: de_modules/autoprefixer/lib/prefixes.js
===================================================================
--- node_modules/autoprefixer/lib/prefixes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,428 +1,0 @@
-let AtRule = require('./at-rule')
-let Browsers = require('./browsers')
-let Declaration = require('./declaration')
-let hackAlignContent = require('./hacks/align-content')
-let hackAlignItems = require('./hacks/align-items')
-let hackAlignSelf = require('./hacks/align-self')
-let hackAnimation = require('./hacks/animation')
-let hackAppearance = require('./hacks/appearance')
-let hackAutofill = require('./hacks/autofill')
-let hackBackdropFilter = require('./hacks/backdrop-filter')
-let hackBackgroundClip = require('./hacks/background-clip')
-let hackBackgroundSize = require('./hacks/background-size')
-let hackBlockLogical = require('./hacks/block-logical')
-let hackBorderImage = require('./hacks/border-image')
-let hackBorderRadius = require('./hacks/border-radius')
-let hackBreakProps = require('./hacks/break-props')
-let hackCrossFade = require('./hacks/cross-fade')
-let hackDisplayFlex = require('./hacks/display-flex')
-let hackDisplayGrid = require('./hacks/display-grid')
-let hackFileSelectorButton = require('./hacks/file-selector-button')
-let hackFilter = require('./hacks/filter')
-let hackFilterValue = require('./hacks/filter-value')
-let hackFlex = require('./hacks/flex')
-let hackFlexBasis = require('./hacks/flex-basis')
-let hackFlexDirection = require('./hacks/flex-direction')
-let hackFlexFlow = require('./hacks/flex-flow')
-let hackFlexGrow = require('./hacks/flex-grow')
-let hackFlexShrink = require('./hacks/flex-shrink')
-let hackFlexWrap = require('./hacks/flex-wrap')
-let hackFullscreen = require('./hacks/fullscreen')
-let hackGradient = require('./hacks/gradient')
-let hackGridArea = require('./hacks/grid-area')
-let hackGridColumnAlign = require('./hacks/grid-column-align')
-let hackGridEnd = require('./hacks/grid-end')
-let hackGridRowAlign = require('./hacks/grid-row-align')
-let hackGridRowColumn = require('./hacks/grid-row-column')
-let hackGridRowsColumns = require('./hacks/grid-rows-columns')
-let hackGridStart = require('./hacks/grid-start')
-let hackGridTemplate = require('./hacks/grid-template')
-let hackGridTemplateAreas = require('./hacks/grid-template-areas')
-let hackImageRendering = require('./hacks/image-rendering')
-let hackImageSet = require('./hacks/image-set')
-let hackInlineLogical = require('./hacks/inline-logical')
-let hackIntrinsic = require('./hacks/intrinsic')
-let hackJustifyContent = require('./hacks/justify-content')
-let hackMaskBorder = require('./hacks/mask-border')
-let hackMaskComposite = require('./hacks/mask-composite')
-let hackOrder = require('./hacks/order')
-let hackOverscrollBehavior = require('./hacks/overscroll-behavior')
-let hackPixelated = require('./hacks/pixelated')
-let hackPlaceSelf = require('./hacks/place-self')
-let hackPlaceholder = require('./hacks/placeholder')
-let hackPlaceholderShown = require('./hacks/placeholder-shown')
-let hackPrintColorAdjust = require('./hacks/print-color-adjust')
-let hackTextDecoration = require('./hacks/text-decoration')
-let hackTextDecorationSkipInk = require('./hacks/text-decoration-skip-ink')
-let hackTextEmphasisPosition = require('./hacks/text-emphasis-position')
-let hackTransformDecl = require('./hacks/transform-decl')
-let hackUserSelect = require('./hacks/user-select')
-let hackWritingMode = require('./hacks/writing-mode')
-let Processor = require('./processor')
-let Resolution = require('./resolution')
-let Selector = require('./selector')
-let Supports = require('./supports')
-let Transition = require('./transition')
-let utils = require('./utils')
-let Value = require('./value')
-let vendor = require('./vendor')
-
-Selector.hack(hackAutofill)
-Selector.hack(hackFullscreen)
-Selector.hack(hackPlaceholder)
-Selector.hack(hackPlaceholderShown)
-Selector.hack(hackFileSelectorButton)
-Declaration.hack(hackFlex)
-Declaration.hack(hackOrder)
-Declaration.hack(hackFilter)
-Declaration.hack(hackGridEnd)
-Declaration.hack(hackAnimation)
-Declaration.hack(hackFlexFlow)
-Declaration.hack(hackFlexGrow)
-Declaration.hack(hackFlexWrap)
-Declaration.hack(hackGridArea)
-Declaration.hack(hackPlaceSelf)
-Declaration.hack(hackGridStart)
-Declaration.hack(hackAlignSelf)
-Declaration.hack(hackAppearance)
-Declaration.hack(hackFlexBasis)
-Declaration.hack(hackMaskBorder)
-Declaration.hack(hackMaskComposite)
-Declaration.hack(hackAlignItems)
-Declaration.hack(hackUserSelect)
-Declaration.hack(hackFlexShrink)
-Declaration.hack(hackBreakProps)
-Declaration.hack(hackWritingMode)
-Declaration.hack(hackBorderImage)
-Declaration.hack(hackAlignContent)
-Declaration.hack(hackBorderRadius)
-Declaration.hack(hackBlockLogical)
-Declaration.hack(hackGridTemplate)
-Declaration.hack(hackInlineLogical)
-Declaration.hack(hackGridRowAlign)
-Declaration.hack(hackTransformDecl)
-Declaration.hack(hackFlexDirection)
-Declaration.hack(hackImageRendering)
-Declaration.hack(hackBackdropFilter)
-Declaration.hack(hackBackgroundClip)
-Declaration.hack(hackTextDecoration)
-Declaration.hack(hackJustifyContent)
-Declaration.hack(hackBackgroundSize)
-Declaration.hack(hackGridRowColumn)
-Declaration.hack(hackGridRowsColumns)
-Declaration.hack(hackGridColumnAlign)
-Declaration.hack(hackOverscrollBehavior)
-Declaration.hack(hackGridTemplateAreas)
-Declaration.hack(hackPrintColorAdjust)
-Declaration.hack(hackTextEmphasisPosition)
-Declaration.hack(hackTextDecorationSkipInk)
-Value.hack(hackGradient)
-Value.hack(hackIntrinsic)
-Value.hack(hackPixelated)
-Value.hack(hackImageSet)
-Value.hack(hackCrossFade)
-Value.hack(hackDisplayFlex)
-Value.hack(hackDisplayGrid)
-Value.hack(hackFilterValue)
-
-let declsCache = new Map()
-
-class Prefixes {
-  constructor(data, browsers, options = {}) {
-    this.data = data
-    this.browsers = browsers
-    this.options = options
-    ;[this.add, this.remove] = this.preprocess(this.select(this.data))
-    this.transition = new Transition(this)
-    this.processor = new Processor(this)
-  }
-
-  /**
-   * Return clone instance to remove all prefixes
-   */
-  cleaner() {
-    if (this.cleanerCache) {
-      return this.cleanerCache
-    }
-
-    if (this.browsers.selected.length) {
-      let empty = new Browsers(this.browsers.data, [])
-      this.cleanerCache = new Prefixes(this.data, empty, this.options)
-    } else {
-      return this
-    }
-
-    return this.cleanerCache
-  }
-
-  /**
-   * Declaration loader with caching
-   */
-  decl(prop) {
-    if (!declsCache.has(prop)) {
-      declsCache.set(prop, Declaration.load(prop))
-    }
-
-    return declsCache.get(prop)
-  }
-
-  /**
-   * Group declaration by unprefixed property to check them
-   */
-  group(decl) {
-    let rule = decl.parent
-    let index = rule.index(decl)
-    let { length } = rule.nodes
-    let unprefixed = this.unprefixed(decl.prop)
-
-    let checker = (step, callback) => {
-      index += step
-      while (index >= 0 && index < length) {
-        let other = rule.nodes[index]
-        if (other.type === 'decl') {
-          if (step === -1 && other.prop === unprefixed) {
-            if (!Browsers.withPrefix(other.value)) {
-              break
-            }
-          }
-
-          if (this.unprefixed(other.prop) !== unprefixed) {
-            break
-          } else if (callback(other) === true) {
-            return true
-          }
-
-          if (step === +1 && other.prop === unprefixed) {
-            if (!Browsers.withPrefix(other.value)) {
-              break
-            }
-          }
-        }
-
-        index += step
-      }
-      return false
-    }
-
-    return {
-      down(callback) {
-        return checker(+1, callback)
-      },
-      up(callback) {
-        return checker(-1, callback)
-      }
-    }
-  }
-
-  /**
-   * Normalize prefix for remover
-   */
-  normalize(prop) {
-    return this.decl(prop).normalize(prop)
-  }
-
-  /**
-   * Return prefixed version of property
-   */
-  prefixed(prop, prefix) {
-    prop = vendor.unprefixed(prop)
-    return this.decl(prop).prefixed(prop, prefix)
-  }
-
-  /**
-   * Cache prefixes data to fast CSS processing
-   */
-  preprocess(selected) {
-    let add = {
-      '@supports': new Supports(Prefixes, this),
-      'selectors': []
-    }
-    for (let name in selected.add) {
-      let prefixes = selected.add[name]
-      if (name === '@keyframes' || name === '@viewport') {
-        add[name] = new AtRule(name, prefixes, this)
-      } else if (name === '@resolution') {
-        add[name] = new Resolution(name, prefixes, this)
-      } else if (this.data[name].selector) {
-        add.selectors.push(Selector.load(name, prefixes, this))
-      } else {
-        let props = this.data[name].props
-
-        if (props) {
-          let value = Value.load(name, prefixes, this)
-          for (let prop of props) {
-            if (!add[prop]) {
-              add[prop] = { values: [] }
-            }
-            add[prop].values.push(value)
-          }
-        } else {
-          let values = (add[name] && add[name].values) || []
-          add[name] = Declaration.load(name, prefixes, this)
-          add[name].values = values
-        }
-      }
-    }
-
-    let remove = { selectors: [] }
-    for (let name in selected.remove) {
-      let prefixes = selected.remove[name]
-      if (this.data[name].selector) {
-        let selector = Selector.load(name, prefixes)
-        for (let prefix of prefixes) {
-          remove.selectors.push(selector.old(prefix))
-        }
-      } else if (name === '@keyframes' || name === '@viewport') {
-        for (let prefix of prefixes) {
-          let prefixed = `@${prefix}${name.slice(1)}`
-          remove[prefixed] = { remove: true }
-        }
-      } else if (name === '@resolution') {
-        remove[name] = new Resolution(name, prefixes, this)
-      } else {
-        let props = this.data[name].props
-        if (props) {
-          let value = Value.load(name, [], this)
-          for (let prefix of prefixes) {
-            let old = value.old(prefix)
-            if (old) {
-              for (let prop of props) {
-                if (!remove[prop]) {
-                  remove[prop] = {}
-                }
-                if (!remove[prop].values) {
-                  remove[prop].values = []
-                }
-                remove[prop].values.push(old)
-              }
-            }
-          }
-        } else {
-          for (let p of prefixes) {
-            let olds = this.decl(name).old(name, p)
-            if (name === 'align-self') {
-              let a = add[name] && add[name].prefixes
-              if (a) {
-                if (p === '-webkit- 2009' && a.includes('-webkit-')) {
-                  continue
-                } else if (p === '-webkit-' && a.includes('-webkit- 2009')) {
-                  continue
-                }
-              }
-            }
-            for (let prefixed of olds) {
-              if (!remove[prefixed]) {
-                remove[prefixed] = {}
-              }
-              remove[prefixed].remove = true
-            }
-          }
-        }
-      }
-    }
-
-    return [add, remove]
-  }
-
-  /**
-   * Select prefixes from data, which is necessary for selected browsers
-   */
-  select(list) {
-    let selected = { add: {}, remove: {} }
-
-    for (let name in list) {
-      let data = list[name]
-      let add = data.browsers.map(i => {
-        let params = i.split(' ')
-        return {
-          browser: `${params[0]} ${params[1]}`,
-          note: params[2]
-        }
-      })
-
-      let notes = add
-        .filter(i => i.note)
-        .map(i => `${this.browsers.prefix(i.browser)} ${i.note}`)
-      notes = utils.uniq(notes)
-
-      add = add
-        .filter(i => this.browsers.isSelected(i.browser))
-        .map(i => {
-          let prefix = this.browsers.prefix(i.browser)
-          if (i.note) {
-            return `${prefix} ${i.note}`
-          } else {
-            return prefix
-          }
-        })
-      add = this.sort(utils.uniq(add))
-
-      if (this.options.flexbox === 'no-2009') {
-        add = add.filter(i => !i.includes('2009'))
-      }
-
-      let all = data.browsers.map(i => this.browsers.prefix(i))
-      if (data.mistakes) {
-        all = all.concat(data.mistakes)
-      }
-      all = all.concat(notes)
-      all = utils.uniq(all)
-
-      if (add.length) {
-        selected.add[name] = add
-        if (add.length < all.length) {
-          selected.remove[name] = all.filter(i => !add.includes(i))
-        }
-      } else {
-        selected.remove[name] = all
-      }
-    }
-
-    return selected
-  }
-
-  /**
-   * Sort vendor prefixes
-   */
-  sort(prefixes) {
-    return prefixes.sort((a, b) => {
-      let aLength = utils.removeNote(a).length
-      let bLength = utils.removeNote(b).length
-
-      if (aLength === bLength) {
-        return b.length - a.length
-      } else {
-        return bLength - aLength
-      }
-    })
-  }
-
-  /**
-   * Return unprefixed version of property
-   */
-  unprefixed(prop) {
-    let value = this.normalize(vendor.unprefixed(prop))
-    if (value === 'flex-direction') {
-      value = 'flex-flow'
-    }
-    return value
-  }
-
-  /**
-   * Return values, which must be prefixed in selected property
-   */
-  values(type, prop) {
-    let data = this[type]
-
-    let global = data['*'] && data['*'].values
-    let values = data[prop] && data[prop].values
-
-    if (global && values) {
-      return utils.uniq(global.concat(values))
-    } else {
-      return global || values || []
-    }
-  }
-}
-
-module.exports = Prefixes
Index: de_modules/autoprefixer/lib/processor.js
===================================================================
--- node_modules/autoprefixer/lib/processor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,709 +1,0 @@
-let parser = require('postcss-value-parser')
-
-let Value = require('./value')
-let insertAreas = require('./hacks/grid-utils').insertAreas
-
-const OLD_LINEAR = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i
-const OLD_RADIAL = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i
-const IGNORE_NEXT = /(!\s*)?autoprefixer:\s*ignore\s+next/i
-const GRID_REGEX = /(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i
-
-const SIZES = [
-  'width',
-  'height',
-  'min-width',
-  'max-width',
-  'min-height',
-  'max-height',
-  'inline-size',
-  'min-inline-size',
-  'max-inline-size',
-  'block-size',
-  'min-block-size',
-  'max-block-size'
-]
-
-function hasGridTemplate(decl) {
-  return decl.parent.some(
-    i => i.prop === 'grid-template' || i.prop === 'grid-template-areas'
-  )
-}
-
-function hasRowsAndColumns(decl) {
-  let hasRows = decl.parent.some(i => i.prop === 'grid-template-rows')
-  let hasColumns = decl.parent.some(i => i.prop === 'grid-template-columns')
-  return hasRows && hasColumns
-}
-
-class Processor {
-  constructor(prefixes) {
-    this.prefixes = prefixes
-  }
-
-  /**
-   * Add necessary prefixes
-   */
-  add(css, result) {
-    // At-rules
-    let resolution = this.prefixes.add['@resolution']
-    let keyframes = this.prefixes.add['@keyframes']
-    let viewport = this.prefixes.add['@viewport']
-    let supports = this.prefixes.add['@supports']
-
-    css.walkAtRules(rule => {
-      if (rule.name === 'keyframes') {
-        if (!this.disabled(rule, result)) {
-          return keyframes && keyframes.process(rule)
-        }
-      } else if (rule.name === 'viewport') {
-        if (!this.disabled(rule, result)) {
-          return viewport && viewport.process(rule)
-        }
-      } else if (rule.name === 'supports') {
-        if (
-          this.prefixes.options.supports !== false &&
-          !this.disabled(rule, result)
-        ) {
-          return supports.process(rule)
-        }
-      } else if (rule.name === 'media' && rule.params.includes('-resolution')) {
-        if (!this.disabled(rule, result)) {
-          return resolution && resolution.process(rule)
-        }
-      }
-
-      return undefined
-    })
-
-    // Selectors
-    css.walkRules(rule => {
-      if (this.disabled(rule, result)) return undefined
-
-      return this.prefixes.add.selectors.map(selector => {
-        return selector.process(rule, result)
-      })
-    })
-
-    function insideGrid(decl) {
-      return decl.parent.nodes.some(node => {
-        if (node.type !== 'decl') return false
-        let displayGrid =
-          node.prop === 'display' && /(inline-)?grid/.test(node.value)
-        let gridTemplate = node.prop.startsWith('grid-template')
-        let gridGap = /^grid-([A-z]+-)?gap/.test(node.prop)
-        return displayGrid || gridTemplate || gridGap
-      })
-    }
-
-    let gridPrefixes =
-      this.gridStatus(css, result) &&
-      this.prefixes.add['grid-area'] &&
-      this.prefixes.add['grid-area'].prefixes
-
-    css.walkDecls(decl => {
-      if (this.disabledDecl(decl, result)) return undefined
-
-      let parent = decl.parent
-      let prop = decl.prop
-      let value = decl.value
-
-      if (prop === 'color-adjust') {
-        if (parent.every(i => i.prop !== 'print-color-adjust')) {
-          result.warn(
-            'Replace color-adjust to print-color-adjust. ' +
-              'The color-adjust shorthand is currently deprecated.',
-            { node: decl }
-          )
-        }
-      } else if (prop === 'grid-row-span') {
-        result.warn(
-          'grid-row-span is not part of final Grid Layout. Use grid-row.',
-          { node: decl }
-        )
-        return undefined
-      } else if (prop === 'grid-column-span') {
-        result.warn(
-          'grid-column-span is not part of final Grid Layout. Use grid-column.',
-          { node: decl }
-        )
-        return undefined
-      } else if (prop === 'display' && value === 'box') {
-        result.warn(
-          'You should write display: flex by final spec ' +
-            'instead of display: box',
-          { node: decl }
-        )
-        return undefined
-      } else if (prop === 'text-emphasis-position') {
-        if (value === 'under' || value === 'over') {
-          result.warn(
-            'You should use 2 values for text-emphasis-position ' +
-              'For example, `under left` instead of just `under`.',
-            { node: decl }
-          )
-        }
-      } else if (prop === 'text-decoration-skip' && value === 'ink') {
-        result.warn(
-          'Replace text-decoration-skip: ink to ' +
-            'text-decoration-skip-ink: auto, because spec had been changed',
-          { node: decl }
-        )
-      } else {
-        if (gridPrefixes && this.gridStatus(decl, result)) {
-          if (decl.value === 'subgrid') {
-            result.warn('IE does not support subgrid', { node: decl })
-          }
-          if (/^(align|justify|place)-items$/.test(prop) && insideGrid(decl)) {
-            let fixed = prop.replace('-items', '-self')
-            result.warn(
-              `IE does not support ${prop} on grid containers. ` +
-                `Try using ${fixed} on child elements instead: ` +
-                `${decl.parent.selector} > * { ${fixed}: ${decl.value} }`,
-              { node: decl }
-            )
-          } else if (
-            /^(align|justify|place)-content$/.test(prop) &&
-            insideGrid(decl)
-          ) {
-            result.warn(`IE does not support ${decl.prop} on grid containers`, {
-              node: decl
-            })
-          } else if (prop === 'display' && decl.value === 'contents') {
-            result.warn(
-              'Please do not use display: contents; ' +
-                'if you have grid setting enabled',
-              { node: decl }
-            )
-            return undefined
-          } else if (decl.prop === 'grid-gap') {
-            let status = this.gridStatus(decl, result)
-            if (
-              status === 'autoplace' &&
-              !hasRowsAndColumns(decl) &&
-              !hasGridTemplate(decl)
-            ) {
-              result.warn(
-                'grid-gap only works if grid-template(-areas) is being ' +
-                  'used or both rows and columns have been declared ' +
-                  'and cells have not been manually ' +
-                  'placed inside the explicit grid',
-                { node: decl }
-              )
-            } else if (
-              (status === true || status === 'no-autoplace') &&
-              !hasGridTemplate(decl)
-            ) {
-              result.warn(
-                'grid-gap only works if grid-template(-areas) is being used',
-                { node: decl }
-              )
-            }
-          } else if (prop === 'grid-auto-columns') {
-            result.warn('grid-auto-columns is not supported by IE', {
-              node: decl
-            })
-            return undefined
-          } else if (prop === 'grid-auto-rows') {
-            result.warn('grid-auto-rows is not supported by IE', { node: decl })
-            return undefined
-          } else if (prop === 'grid-auto-flow') {
-            let hasRows = parent.some(i => i.prop === 'grid-template-rows')
-            let hasCols = parent.some(i => i.prop === 'grid-template-columns')
-
-            if (hasGridTemplate(decl)) {
-              result.warn('grid-auto-flow is not supported by IE', {
-                node: decl
-              })
-            } else if (value.includes('dense')) {
-              result.warn('grid-auto-flow: dense is not supported by IE', {
-                node: decl
-              })
-            } else if (!hasRows && !hasCols) {
-              result.warn(
-                'grid-auto-flow works only if grid-template-rows and ' +
-                  'grid-template-columns are present in the same rule',
-                { node: decl }
-              )
-            }
-            return undefined
-          } else if (value.includes('auto-fit')) {
-            result.warn('auto-fit value is not supported by IE', {
-              node: decl,
-              word: 'auto-fit'
-            })
-            return undefined
-          } else if (value.includes('auto-fill')) {
-            result.warn('auto-fill value is not supported by IE', {
-              node: decl,
-              word: 'auto-fill'
-            })
-            return undefined
-          } else if (prop.startsWith('grid-template') && value.includes('[')) {
-            result.warn(
-              'Autoprefixer currently does not support line names. ' +
-                'Try using grid-template-areas instead.',
-              { node: decl, word: '[' }
-            )
-          }
-        }
-        if (value.includes('radial-gradient')) {
-          if (OLD_RADIAL.test(decl.value)) {
-            result.warn(
-              'Gradient has outdated direction syntax. ' +
-                'New syntax is like `closest-side at 0 0` ' +
-                'instead of `0 0, closest-side`.',
-              { node: decl }
-            )
-          } else {
-            let ast = parser(value)
-
-            for (let i of ast.nodes) {
-              if (i.type === 'function' && i.value === 'radial-gradient') {
-                for (let word of i.nodes) {
-                  if (word.type === 'word') {
-                    if (word.value === 'cover') {
-                      result.warn(
-                        'Gradient has outdated direction syntax. ' +
-                          'Replace `cover` to `farthest-corner`.',
-                        { node: decl }
-                      )
-                    } else if (word.value === 'contain') {
-                      result.warn(
-                        'Gradient has outdated direction syntax. ' +
-                          'Replace `contain` to `closest-side`.',
-                        { node: decl }
-                      )
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-        if (value.includes('linear-gradient')) {
-          if (OLD_LINEAR.test(value)) {
-            result.warn(
-              'Gradient has outdated direction syntax. ' +
-                'New syntax is like `to left` instead of `right`.',
-              { node: decl }
-            )
-          }
-        }
-      }
-
-      if (SIZES.includes(decl.prop)) {
-        if (!decl.value.includes('-fill-available')) {
-          if (decl.value.includes('fill-available')) {
-            result.warn(
-              'Replace fill-available to stretch, ' +
-                'because spec had been changed',
-              { node: decl }
-            )
-          } else if (decl.value.includes('fill')) {
-            let ast = parser(value)
-            if (ast.nodes.some(i => i.type === 'word' && i.value === 'fill')) {
-              result.warn(
-                'Replace fill to stretch, because spec had been changed',
-                { node: decl }
-              )
-            }
-          }
-        }
-      }
-
-      let prefixer
-
-      if (decl.prop === 'transition' || decl.prop === 'transition-property') {
-        // Transition
-        return this.prefixes.transition.add(decl, result)
-      } else if (decl.prop === 'align-self') {
-        // align-self flexbox or grid
-        let display = this.displayType(decl)
-        if (display !== 'grid' && this.prefixes.options.flexbox !== false) {
-          prefixer = this.prefixes.add['align-self']
-          if (prefixer && prefixer.prefixes) {
-            prefixer.process(decl)
-          }
-        }
-        if (this.gridStatus(decl, result) !== false) {
-          prefixer = this.prefixes.add['grid-row-align']
-          if (prefixer && prefixer.prefixes) {
-            return prefixer.process(decl, result)
-          }
-        }
-      } else if (decl.prop === 'justify-self') {
-        // justify-self flexbox or grid
-        if (this.gridStatus(decl, result) !== false) {
-          prefixer = this.prefixes.add['grid-column-align']
-          if (prefixer && prefixer.prefixes) {
-            return prefixer.process(decl, result)
-          }
-        }
-      } else if (decl.prop === 'place-self') {
-        prefixer = this.prefixes.add['place-self']
-        if (
-          prefixer &&
-          prefixer.prefixes &&
-          this.gridStatus(decl, result) !== false
-        ) {
-          return prefixer.process(decl, result)
-        }
-      } else {
-        // Properties
-        prefixer = this.prefixes.add[decl.prop]
-        if (prefixer && prefixer.prefixes) {
-          return prefixer.process(decl, result)
-        }
-      }
-
-      return undefined
-    })
-
-    // Insert grid-area prefixes. We need to be able to store the different
-    // rules as a data and hack API is not enough for this
-    if (this.gridStatus(css, result)) {
-      insertAreas(css, this.disabled)
-    }
-
-    // Values
-    return css.walkDecls(decl => {
-      if (this.disabledValue(decl, result)) return
-
-      let unprefixed = this.prefixes.unprefixed(decl.prop)
-      let list = this.prefixes.values('add', unprefixed)
-      if (Array.isArray(list)) {
-        for (let value of list) {
-          if (value.process) value.process(decl, result)
-        }
-      }
-      Value.save(this.prefixes, decl)
-    })
-  }
-
-  /**
-   * Check for control comment and global options
-   */
-  disabled(node, result) {
-    if (!node) return false
-
-    if (node._autoprefixerDisabled !== undefined) {
-      return node._autoprefixerDisabled
-    }
-
-    if (node.parent) {
-      let p = node.prev()
-      if (p && p.type === 'comment' && IGNORE_NEXT.test(p.text)) {
-        node._autoprefixerDisabled = true
-        node._autoprefixerSelfDisabled = true
-        return true
-      }
-    }
-
-    let value = null
-    if (node.nodes) {
-      let status
-      node.each(i => {
-        if (i.type !== 'comment') return
-        if (/(!\s*)?autoprefixer:\s*(off|on)/i.test(i.text)) {
-          if (typeof status !== 'undefined') {
-            result.warn(
-              'Second Autoprefixer control comment ' +
-                'was ignored. Autoprefixer applies control ' +
-                'comment to whole block, not to next rules.',
-              { node: i }
-            )
-          } else {
-            status = /on/i.test(i.text)
-          }
-        }
-      })
-
-      if (status !== undefined) {
-        value = !status
-      }
-    }
-    if (!node.nodes || value === null) {
-      if (node.parent) {
-        let isParentDisabled = this.disabled(node.parent, result)
-        if (node.parent._autoprefixerSelfDisabled === true) {
-          value = false
-        } else {
-          value = isParentDisabled
-        }
-      } else {
-        value = false
-      }
-    }
-    node._autoprefixerDisabled = value
-    return value
-  }
-
-  /**
-   * Check for grid/flexbox options.
-   */
-  disabledDecl(node, result) {
-    if (node.type === 'decl' && this.gridStatus(node, result) === false) {
-      if (node.prop.includes('grid') || node.prop === 'justify-items') {
-        return true
-      }
-    }
-    if (node.type === 'decl' && this.prefixes.options.flexbox === false) {
-      let other = ['order', 'justify-content', 'align-items', 'align-content']
-      if (node.prop.includes('flex') || other.includes(node.prop)) {
-        return true
-      }
-    }
-
-    return this.disabled(node, result)
-  }
-
-  /**
-   * Check for grid/flexbox options.
-   */
-  disabledValue(node, result) {
-    if (this.gridStatus(node, result) === false && node.type === 'decl') {
-      if (node.prop === 'display' && node.value.includes('grid')) {
-        return true
-      }
-    }
-    if (this.prefixes.options.flexbox === false && node.type === 'decl') {
-      if (node.prop === 'display' && node.value.includes('flex')) {
-        return true
-      }
-    }
-    if (node.type === 'decl' && node.prop === 'content') {
-      return true
-    }
-
-    return this.disabled(node, result)
-  }
-
-  /**
-   * Is it flebox or grid rule
-   */
-  displayType(decl) {
-    for (let i of decl.parent.nodes) {
-      if (i.prop !== 'display') {
-        continue
-      }
-
-      if (i.value.includes('flex')) {
-        return 'flex'
-      }
-
-      if (i.value.includes('grid')) {
-        return 'grid'
-      }
-    }
-
-    return false
-  }
-
-  /**
-   * Set grid option via control comment
-   */
-  gridStatus(node, result) {
-    if (!node) return false
-
-    if (node._autoprefixerGridStatus !== undefined) {
-      return node._autoprefixerGridStatus
-    }
-
-    let value = null
-    if (node.nodes) {
-      let status
-      node.each(i => {
-        if (i.type !== 'comment') return
-        if (GRID_REGEX.test(i.text)) {
-          let hasAutoplace = /:\s*autoplace/i.test(i.text)
-          let noAutoplace = /no-autoplace/i.test(i.text)
-          if (typeof status !== 'undefined') {
-            result.warn(
-              'Second Autoprefixer grid control comment was ' +
-                'ignored. Autoprefixer applies control comments to the whole ' +
-                'block, not to the next rules.',
-              { node: i }
-            )
-          } else if (hasAutoplace) {
-            status = 'autoplace'
-          } else if (noAutoplace) {
-            status = true
-          } else {
-            status = /on/i.test(i.text)
-          }
-        }
-      })
-
-      if (status !== undefined) {
-        value = status
-      }
-    }
-
-    if (node.type === 'atrule' && node.name === 'supports') {
-      let params = node.params
-      if (params.includes('grid') && params.includes('auto')) {
-        value = false
-      }
-    }
-
-    if (!node.nodes || value === null) {
-      if (node.parent) {
-        let isParentGrid = this.gridStatus(node.parent, result)
-        if (node.parent._autoprefixerSelfDisabled === true) {
-          value = false
-        } else {
-          value = isParentGrid
-        }
-      } else if (typeof this.prefixes.options.grid !== 'undefined') {
-        value = this.prefixes.options.grid
-      } else if (typeof process.env.AUTOPREFIXER_GRID !== 'undefined') {
-        if (process.env.AUTOPREFIXER_GRID === 'autoplace') {
-          value = 'autoplace'
-        } else {
-          value = true
-        }
-      } else {
-        value = false
-      }
-    }
-
-    node._autoprefixerGridStatus = value
-    return value
-  }
-
-  /**
-   * Normalize spaces in cascade declaration group
-   */
-  reduceSpaces(decl) {
-    let stop = false
-    this.prefixes.group(decl).up(() => {
-      stop = true
-      return true
-    })
-    if (stop) {
-      return
-    }
-
-    let parts = decl.raw('before').split('\n')
-    let prevMin = parts[parts.length - 1].length
-    let diff = false
-
-    this.prefixes.group(decl).down(other => {
-      parts = other.raw('before').split('\n')
-      let last = parts.length - 1
-
-      if (parts[last].length > prevMin) {
-        if (diff === false) {
-          diff = parts[last].length - prevMin
-        }
-
-        parts[last] = parts[last].slice(0, -diff)
-        other.raws.before = parts.join('\n')
-      }
-    })
-  }
-
-  /**
-   * Remove unnecessary pefixes
-   */
-  remove(css, result) {
-    // At-rules
-    let resolution = this.prefixes.remove['@resolution']
-
-    css.walkAtRules((rule, i) => {
-      if (this.prefixes.remove[`@${rule.name}`]) {
-        if (!this.disabled(rule, result)) {
-          rule.parent.removeChild(i)
-        }
-      } else if (
-        rule.name === 'media' &&
-        rule.params.includes('-resolution') &&
-        resolution
-      ) {
-        resolution.clean(rule)
-      }
-    })
-
-    // Selectors
-    css.walkRules((rule, i) => {
-      if (this.disabled(rule, result)) return
-
-      for (let checker of this.prefixes.remove.selectors) {
-        if (checker.check(rule)) {
-          rule.parent.removeChild(i)
-          return
-        }
-      }
-    })
-
-    return css.walkDecls((decl, i) => {
-      if (this.disabled(decl, result)) return
-
-      let rule = decl.parent
-      let unprefixed = this.prefixes.unprefixed(decl.prop)
-
-      // Transition
-      if (decl.prop === 'transition' || decl.prop === 'transition-property') {
-        this.prefixes.transition.remove(decl)
-      }
-
-      // Properties
-      if (
-        this.prefixes.remove[decl.prop] &&
-        this.prefixes.remove[decl.prop].remove
-      ) {
-        let notHack = this.prefixes.group(decl).down(other => {
-          return this.prefixes.normalize(other.prop) === unprefixed
-        })
-
-        if (unprefixed === 'flex-flow') {
-          notHack = true
-        }
-
-        if (decl.prop === '-webkit-box-orient') {
-          let hacks = { 'flex-direction': true, 'flex-flow': true }
-          if (!decl.parent.some(j => hacks[j.prop])) return
-        }
-
-        if (notHack && !this.withHackValue(decl)) {
-          if (decl.raw('before').includes('\n')) {
-            this.reduceSpaces(decl)
-          }
-          rule.removeChild(i)
-          return
-        }
-      }
-
-      // Values
-      for (let checker of this.prefixes.values('remove', unprefixed)) {
-        if (!checker.check) continue
-        if (!checker.check(decl.value)) continue
-
-        unprefixed = checker.unprefixed
-        let notHack = this.prefixes.group(decl).down(other => {
-          return other.value.includes(unprefixed)
-        })
-
-        if (notHack) {
-          rule.removeChild(i)
-          return
-        }
-      }
-    })
-  }
-
-  /**
-   * Some rare old values, which is not in standard
-   */
-  withHackValue(decl) {
-    return (
-      (decl.prop === '-webkit-background-clip' && decl.value === 'text') ||
-      // Do not remove -webkit-box-orient when -webkit-line-clamp is present.
-      // https://github.com/postcss/autoprefixer/issues/1510
-      (decl.prop === '-webkit-box-orient' &&
-        decl.parent.some(d => d.prop === '-webkit-line-clamp'))
-    )
-  }
-}
-
-module.exports = Processor
Index: de_modules/autoprefixer/lib/resolution.js
===================================================================
--- node_modules/autoprefixer/lib/resolution.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-let FractionJs = require('fraction.js')
-
-let Prefixer = require('./prefixer')
-let utils = require('./utils')
-
-const REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi
-const SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i
-
-class Resolution extends Prefixer {
-  /**
-   * Remove prefixed queries
-   */
-  clean(rule) {
-    if (!this.bad) {
-      this.bad = []
-      for (let prefix of this.prefixes) {
-        this.bad.push(this.prefixName(prefix, 'min'))
-        this.bad.push(this.prefixName(prefix, 'max'))
-      }
-    }
-
-    rule.params = utils.editList(rule.params, queries => {
-      return queries.filter(query => this.bad.every(i => !query.includes(i)))
-    })
-  }
-
-  /**
-   * Return prefixed query name
-   */
-  prefixName(prefix, name) {
-    if (prefix === '-moz-') {
-      return name + '--moz-device-pixel-ratio'
-    } else {
-      return prefix + name + '-device-pixel-ratio'
-    }
-  }
-
-  /**
-   * Return prefixed query
-   */
-  prefixQuery(prefix, name, colon, value, units) {
-    value = new FractionJs(value)
-
-    // 1dpcm = 2.54dpi
-    // 1dppx = 96dpi
-    if (units === 'dpi') {
-      value = value.div(96)
-    } else if (units === 'dpcm') {
-      value = value.mul(2.54).div(96)
-    }
-    value = value.simplify()
-
-    if (prefix === '-o-') {
-      value = value.n + '/' + value.d
-    }
-    return this.prefixName(prefix, name) + colon + value
-  }
-
-  /**
-   * Add prefixed queries
-   */
-  process(rule) {
-    let parent = this.parentPrefix(rule)
-    let prefixes = parent ? [parent] : this.prefixes
-
-    rule.params = utils.editList(rule.params, (origin, prefixed) => {
-      for (let query of origin) {
-        if (
-          !query.includes('min-resolution') &&
-          !query.includes('max-resolution')
-        ) {
-          prefixed.push(query)
-          continue
-        }
-
-        for (let prefix of prefixes) {
-          let processed = query.replace(REGEXP, str => {
-            let parts = str.match(SPLIT)
-            return this.prefixQuery(
-              prefix,
-              parts[1],
-              parts[2],
-              parts[3],
-              parts[4]
-            )
-          })
-          prefixed.push(processed)
-        }
-        prefixed.push(query)
-      }
-
-      return utils.uniq(prefixed)
-    })
-  }
-}
-
-module.exports = Resolution
Index: de_modules/autoprefixer/lib/selector.js
===================================================================
--- node_modules/autoprefixer/lib/selector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,150 +1,0 @@
-let { list } = require('postcss')
-
-let Browsers = require('./browsers')
-let OldSelector = require('./old-selector')
-let Prefixer = require('./prefixer')
-let utils = require('./utils')
-
-class Selector extends Prefixer {
-  constructor(name, prefixes, all) {
-    super(name, prefixes, all)
-    this.regexpCache = new Map()
-  }
-
-  /**
-   * Clone and add prefixes for at-rule
-   */
-  add(rule, prefix) {
-    let prefixeds = this.prefixeds(rule)
-
-    if (this.already(rule, prefixeds, prefix)) {
-      return
-    }
-
-    let cloned = this.clone(rule, { selector: prefixeds[this.name][prefix] })
-    rule.parent.insertBefore(rule, cloned)
-  }
-
-  /**
-   * Is rule already prefixed before
-   */
-  already(rule, prefixeds, prefix) {
-    let index = rule.parent.index(rule) - 1
-
-    while (index >= 0) {
-      let before = rule.parent.nodes[index]
-
-      if (before.type !== 'rule') {
-        return false
-      }
-
-      let some = false
-      for (let key in prefixeds[this.name]) {
-        let prefixed = prefixeds[this.name][key]
-        if (before.selector === prefixed) {
-          if (prefix === key) {
-            return true
-          } else {
-            some = true
-            break
-          }
-        }
-      }
-      if (!some) {
-        return false
-      }
-
-      index -= 1
-    }
-
-    return false
-  }
-
-  /**
-   * Is rule selectors need to be prefixed
-   */
-  check(rule) {
-    if (rule.selector.includes(this.name)) {
-      return !!rule.selector.match(this.regexp())
-    }
-
-    return false
-  }
-
-  /**
-   * Return function to fast find prefixed selector
-   */
-  old(prefix) {
-    return new OldSelector(this, prefix)
-  }
-
-  /**
-   * All possible prefixes
-   */
-  possible() {
-    return Browsers.prefixes()
-  }
-
-  /**
-   * Return prefixed version of selector
-   */
-  prefixed(prefix) {
-    return this.name.replace(/^(\W*)/, `$1${prefix}`)
-  }
-
-  /**
-   * Return all possible selector prefixes
-   */
-  prefixeds(rule) {
-    if (rule._autoprefixerPrefixeds) {
-      if (rule._autoprefixerPrefixeds[this.name]) {
-        return rule._autoprefixerPrefixeds
-      }
-    } else {
-      rule._autoprefixerPrefixeds = {}
-    }
-
-    let prefixeds = {}
-    if (rule.selector.includes(',')) {
-      let ruleParts = list.comma(rule.selector)
-      let toProcess = ruleParts.filter(el => el.includes(this.name))
-
-      for (let prefix of this.possible()) {
-        prefixeds[prefix] = toProcess
-          .map(el => this.replace(el, prefix))
-          .join(', ')
-      }
-    } else {
-      for (let prefix of this.possible()) {
-        prefixeds[prefix] = this.replace(rule.selector, prefix)
-      }
-    }
-
-    rule._autoprefixerPrefixeds[this.name] = prefixeds
-    return rule._autoprefixerPrefixeds
-  }
-
-  /**
-   * Lazy loadRegExp for name
-   */
-  regexp(prefix) {
-    if (!this.regexpCache.has(prefix)) {
-      let name = prefix ? this.prefixed(prefix) : this.name
-      this.regexpCache.set(
-        prefix,
-        new RegExp(`(^|[^:"'=])${utils.escapeRegexp(name)}`, 'gi')
-      )
-    }
-
-    return this.regexpCache.get(prefix)
-  }
-
-  /**
-   * Replace selectors by prefixed one
-   */
-  replace(selector, prefix) {
-    return selector.replace(this.regexp(), `$1${this.prefixed(prefix)}`)
-  }
-}
-
-module.exports = Selector
Index: de_modules/autoprefixer/lib/supports.js
===================================================================
--- node_modules/autoprefixer/lib/supports.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,302 +1,0 @@
-let featureQueries = require('caniuse-lite/data/features/css-featurequeries.js')
-let feature = require('caniuse-lite/dist/unpacker/feature')
-let { parse } = require('postcss')
-
-let brackets = require('./brackets')
-let Browsers = require('./browsers')
-let utils = require('./utils')
-let Value = require('./value')
-
-let data = feature(featureQueries)
-
-let supported = []
-for (let browser in data.stats) {
-  let versions = data.stats[browser]
-  for (let version in versions) {
-    let support = versions[version]
-    if (/y/.test(support)) {
-      supported.push(browser + ' ' + version)
-    }
-  }
-}
-
-class Supports {
-  constructor(Prefixes, all) {
-    this.Prefixes = Prefixes
-    this.all = all
-  }
-
-  /**
-   * Add prefixes
-   */
-  add(nodes, all) {
-    return nodes.map(i => {
-      if (this.isProp(i)) {
-        let prefixed = this.prefixed(i[0])
-        if (prefixed.length > 1) {
-          return this.convert(prefixed)
-        }
-
-        return i
-      }
-
-      if (typeof i === 'object') {
-        return this.add(i, all)
-      }
-
-      return i
-    })
-  }
-
-  /**
-   * Clean brackets with one child
-   */
-  cleanBrackets(nodes) {
-    return nodes.map(i => {
-      if (typeof i !== 'object') {
-        return i
-      }
-
-      if (i.length === 1 && typeof i[0] === 'object') {
-        return this.cleanBrackets(i[0])
-      }
-
-      return this.cleanBrackets(i)
-    })
-  }
-
-  /**
-   * Add " or " between properties and convert it to brackets format
-   */
-  convert(progress) {
-    let result = ['']
-    for (let i of progress) {
-      result.push([`${i.prop}: ${i.value}`])
-      result.push(' or ')
-    }
-    result[result.length - 1] = ''
-    return result
-  }
-
-  /**
-   * Check global options
-   */
-  disabled(node) {
-    if (!this.all.options.grid) {
-      if (node.prop === 'display' && node.value.includes('grid')) {
-        return true
-      }
-      if (node.prop.includes('grid') || node.prop === 'justify-items') {
-        return true
-      }
-    }
-
-    if (this.all.options.flexbox === false) {
-      if (node.prop === 'display' && node.value.includes('flex')) {
-        return true
-      }
-      let other = ['order', 'justify-content', 'align-items', 'align-content']
-      if (node.prop.includes('flex') || other.includes(node.prop)) {
-        return true
-      }
-    }
-
-    return false
-  }
-
-  /**
-   * Return true if prefixed property has no unprefixed
-   */
-  isHack(all, unprefixed) {
-    let check = new RegExp(`(\\(|\\s)${utils.escapeRegexp(unprefixed)}:`)
-    return !check.test(all)
-  }
-
-  /**
-   * Return true if brackets node is "not" word
-   */
-  isNot(node) {
-    return typeof node === 'string' && /not\s*/i.test(node)
-  }
-
-  /**
-   * Return true if brackets node is "or" word
-   */
-  isOr(node) {
-    return typeof node === 'string' && /\s*or\s*/i.test(node)
-  }
-
-  /**
-   * Return true if brackets node is (prop: value)
-   */
-  isProp(node) {
-    return (
-      typeof node === 'object' &&
-      node.length === 1 &&
-      typeof node[0] === 'string'
-    )
-  }
-
-  /**
-   * Compress value functions into a string nodes
-   */
-  normalize(nodes) {
-    if (typeof nodes !== 'object') {
-      return nodes
-    }
-
-    nodes = nodes.filter(i => i !== '')
-
-    if (typeof nodes[0] === 'string') {
-      let firstNode = nodes[0].trim()
-
-      if (
-        firstNode.includes(':') ||
-        firstNode === 'selector' ||
-        firstNode === 'not selector'
-      ) {
-        return [brackets.stringify(nodes)]
-      }
-    }
-    return nodes.map(i => this.normalize(i))
-  }
-
-  /**
-   * Parse string into declaration property and value
-   */
-  parse(str) {
-    let parts = str.split(':')
-    let prop = parts[0]
-    let value = parts[1]
-    if (!value) value = ''
-    return [prop.trim(), value.trim()]
-  }
-
-  /**
-   * Return array of Declaration with all necessary prefixes
-   */
-  prefixed(str) {
-    let rule = this.virtual(str)
-    if (this.disabled(rule.first)) {
-      return rule.nodes
-    }
-
-    let result = { warn: () => null }
-
-    let prefixer = this.prefixer().add[rule.first.prop]
-    prefixer && prefixer.process && prefixer.process(rule.first, result)
-
-    for (let decl of rule.nodes) {
-      for (let value of this.prefixer().values('add', rule.first.prop)) {
-        value.process(decl)
-      }
-      Value.save(this.all, decl)
-    }
-
-    return rule.nodes
-  }
-
-  /**
-   * Return prefixer only with @supports supported browsers
-   */
-  prefixer() {
-    if (this.prefixerCache) {
-      return this.prefixerCache
-    }
-
-    let filtered = this.all.browsers.selected.filter(i => {
-      return supported.includes(i)
-    })
-
-    let browsers = new Browsers(
-      this.all.browsers.data,
-      filtered,
-      this.all.options
-    )
-    this.prefixerCache = new this.Prefixes(
-      this.all.data,
-      browsers,
-      this.all.options
-    )
-    return this.prefixerCache
-  }
-
-  /**
-   * Add prefixed declaration
-   */
-  process(rule) {
-    let ast = brackets.parse(rule.params)
-    ast = this.normalize(ast)
-    ast = this.remove(ast, rule.params)
-    ast = this.add(ast, rule.params)
-    ast = this.cleanBrackets(ast)
-    rule.params = brackets.stringify(ast)
-  }
-
-  /**
-   * Remove all unnecessary prefixes
-   */
-  remove(nodes, all) {
-    let i = 0
-    while (i < nodes.length) {
-      if (
-        !this.isNot(nodes[i - 1]) &&
-        this.isProp(nodes[i]) &&
-        this.isOr(nodes[i + 1])
-      ) {
-        if (this.toRemove(nodes[i][0], all)) {
-          nodes.splice(i, 2)
-          continue
-        }
-
-        i += 2
-        continue
-      }
-
-      if (typeof nodes[i] === 'object') {
-        nodes[i] = this.remove(nodes[i], all)
-      }
-
-      i += 1
-    }
-    return nodes
-  }
-
-  /**
-   * Return true if we need to remove node
-   */
-  toRemove(str, all) {
-    let [prop, value] = this.parse(str)
-    let unprefixed = this.all.unprefixed(prop)
-
-    let cleaner = this.all.cleaner()
-
-    if (
-      cleaner.remove[prop] &&
-      cleaner.remove[prop].remove &&
-      !this.isHack(all, unprefixed)
-    ) {
-      return true
-    }
-
-    for (let checker of cleaner.values('remove', unprefixed)) {
-      if (checker.check(value)) {
-        return true
-      }
-    }
-
-    return false
-  }
-
-  /**
-   * Create virtual rule to process it by prefixer
-   */
-  virtual(str) {
-    let [prop, value] = this.parse(str)
-    let rule = parse('a{}').first
-    rule.append({ prop, raws: { before: '' }, value })
-    return rule
-  }
-}
-
-module.exports = Supports
Index: de_modules/autoprefixer/lib/transition.js
===================================================================
--- node_modules/autoprefixer/lib/transition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,329 +1,0 @@
-let { list } = require('postcss')
-let parser = require('postcss-value-parser')
-
-let Browsers = require('./browsers')
-let vendor = require('./vendor')
-
-class Transition {
-  constructor(prefixes) {
-    this.props = ['transition', 'transition-property']
-    this.prefixes = prefixes
-  }
-
-  /**
-   * Process transition and add prefixes for all necessary properties
-   */
-  add(decl, result) {
-    let prefix, prop
-    let add = this.prefixes.add[decl.prop]
-    let vendorPrefixes = this.ruleVendorPrefixes(decl)
-    let declPrefixes = vendorPrefixes || (add && add.prefixes) || []
-
-    let params = this.parse(decl.value)
-    let names = params.map(i => this.findProp(i))
-    let added = []
-
-    if (names.some(i => i[0] === '-')) {
-      return
-    }
-
-    for (let param of params) {
-      prop = this.findProp(param)
-      if (prop[0] === '-') continue
-
-      let prefixer = this.prefixes.add[prop]
-      if (!prefixer || !prefixer.prefixes) continue
-
-      for (prefix of prefixer.prefixes) {
-        if (vendorPrefixes && !vendorPrefixes.some(p => prefix.includes(p))) {
-          continue
-        }
-
-        let prefixed = this.prefixes.prefixed(prop, prefix)
-        if (prefixed !== '-ms-transform' && !names.includes(prefixed)) {
-          if (!this.disabled(prop, prefix)) {
-            added.push(this.clone(prop, prefixed, param))
-          }
-        }
-      }
-    }
-
-    params = params.concat(added)
-    let value = this.stringify(params)
-
-    let webkitClean = this.stringify(
-      this.cleanFromUnprefixed(params, '-webkit-')
-    )
-    if (declPrefixes.includes('-webkit-')) {
-      this.cloneBefore(decl, `-webkit-${decl.prop}`, webkitClean)
-    }
-    this.cloneBefore(decl, decl.prop, webkitClean)
-    if (declPrefixes.includes('-o-')) {
-      let operaClean = this.stringify(this.cleanFromUnprefixed(params, '-o-'))
-      this.cloneBefore(decl, `-o-${decl.prop}`, operaClean)
-    }
-
-    for (prefix of declPrefixes) {
-      if (prefix !== '-webkit-' && prefix !== '-o-') {
-        let prefixValue = this.stringify(
-          this.cleanOtherPrefixes(params, prefix)
-        )
-        this.cloneBefore(decl, prefix + decl.prop, prefixValue)
-      }
-    }
-
-    if (value !== decl.value && !this.already(decl, decl.prop, value)) {
-      this.checkForWarning(result, decl)
-      decl.cloneBefore()
-      decl.value = value
-    }
-  }
-
-  /**
-   * Does we already have this declaration
-   */
-  already(decl, prop, value) {
-    return decl.parent.some(i => i.prop === prop && i.value === value)
-  }
-
-  /**
-   * Show transition-property warning
-   */
-  checkForWarning(result, decl) {
-    if (decl.prop !== 'transition-property') {
-      return
-    }
-
-    let isPrefixed = false
-    let hasAssociatedProp = false
-
-    decl.parent.each(i => {
-      if (i.type !== 'decl') {
-        return undefined
-      }
-      if (i.prop.indexOf('transition-') !== 0) {
-        return undefined
-      }
-      let values = list.comma(i.value)
-      // check if current Rule's transition-property comma separated value list needs prefixes
-      if (i.prop === 'transition-property') {
-        values.forEach(value => {
-          let lookup = this.prefixes.add[value]
-          if (lookup && lookup.prefixes && lookup.prefixes.length > 0) {
-            isPrefixed = true
-          }
-        })
-        return undefined
-      }
-      // check if another transition-* prop in current Rule has comma separated value list
-      hasAssociatedProp = hasAssociatedProp || values.length > 1
-      return false
-    })
-
-    if (isPrefixed && hasAssociatedProp) {
-      decl.warn(
-        result,
-        'Replace transition-property to transition, ' +
-          'because Autoprefixer could not support ' +
-          'any cases of transition-property ' +
-          'and other transition-*'
-      )
-    }
-  }
-
-  /**
-   * Remove all non-webkit prefixes and unprefixed params if we have prefixed
-   */
-  cleanFromUnprefixed(params, prefix) {
-    let remove = params
-      .map(i => this.findProp(i))
-      .filter(i => i.slice(0, prefix.length) === prefix)
-      .map(i => this.prefixes.unprefixed(i))
-
-    let result = []
-    for (let param of params) {
-      let prop = this.findProp(param)
-      let p = vendor.prefix(prop)
-      if (!remove.includes(prop) && (p === prefix || p === '')) {
-        result.push(param)
-      }
-    }
-    return result
-  }
-
-  cleanOtherPrefixes(params, prefix) {
-    return params.filter(param => {
-      let current = vendor.prefix(this.findProp(param))
-      return current === '' || current === prefix
-    })
-  }
-
-  /**
-   * Return new param array with different name
-   */
-  clone(origin, name, param) {
-    let result = []
-    let changed = false
-    for (let i of param) {
-      if (!changed && i.type === 'word' && i.value === origin) {
-        result.push({ type: 'word', value: name })
-        changed = true
-      } else {
-        result.push(i)
-      }
-    }
-    return result
-  }
-
-  /**
-   * Add declaration if it is not exist
-   */
-  cloneBefore(decl, prop, value) {
-    if (!this.already(decl, prop, value)) {
-      decl.cloneBefore({ prop, value })
-    }
-  }
-
-  /**
-   * Check property for disabled by option
-   */
-  disabled(prop, prefix) {
-    let other = ['order', 'justify-content', 'align-self', 'align-content']
-    if (prop.includes('flex') || other.includes(prop)) {
-      if (this.prefixes.options.flexbox === false) {
-        return true
-      }
-
-      if (this.prefixes.options.flexbox === 'no-2009') {
-        return prefix.includes('2009')
-      }
-    }
-    return undefined
-  }
-
-  /**
-   * Find or create separator
-   */
-  div(params) {
-    for (let param of params) {
-      for (let node of param) {
-        if (node.type === 'div' && node.value === ',') {
-          return node
-        }
-      }
-    }
-    return { after: ' ', type: 'div', value: ',' }
-  }
-
-  /**
-   * Find property name
-   */
-  findProp(param) {
-    let prop = param[0].value
-    if (/^\d/.test(prop)) {
-      for (let [i, token] of param.entries()) {
-        if (i !== 0 && token.type === 'word') {
-          return token.value
-        }
-      }
-    }
-    return prop
-  }
-
-  /**
-   * Parse properties list to array
-   */
-  parse(value) {
-    let ast = parser(value)
-    let result = []
-    let param = []
-    for (let node of ast.nodes) {
-      param.push(node)
-      if (node.type === 'div' && node.value === ',') {
-        result.push(param)
-        param = []
-      }
-    }
-    result.push(param)
-    return result.filter(i => i.length > 0)
-  }
-
-  /**
-   * Process transition and remove all unnecessary properties
-   */
-  remove(decl) {
-    let params = this.parse(decl.value)
-    params = params.filter(i => {
-      let prop = this.prefixes.remove[this.findProp(i)]
-      return !prop || !prop.remove
-    })
-    let value = this.stringify(params)
-
-    if (decl.value === value) {
-      return
-    }
-
-    if (params.length === 0) {
-      decl.remove()
-      return
-    }
-
-    let double = decl.parent.some(i => {
-      return i.prop === decl.prop && i.value === value
-    })
-    let smaller = decl.parent.some(i => {
-      return i !== decl && i.prop === decl.prop && i.value.length > value.length
-    })
-
-    if (double || smaller) {
-      decl.remove()
-      return
-    }
-
-    decl.value = value
-  }
-
-  /**
-   * Check if transition prop is inside vendor specific rule
-   */
-  ruleVendorPrefixes(decl) {
-    let { parent } = decl
-
-    if (parent.type !== 'rule') {
-      return false
-    } else if (!parent.selector.includes(':-')) {
-      return false
-    }
-
-    let selectors = Browsers.prefixes().filter(s =>
-      parent.selector.includes(':' + s)
-    )
-
-    return selectors.length > 0 ? selectors : false
-  }
-
-  /**
-   * Return properties string from array
-   */
-  stringify(params) {
-    if (params.length === 0) {
-      return ''
-    }
-    let nodes = []
-    for (let param of params) {
-      if (param[param.length - 1].type !== 'div') {
-        param.push(this.div(params))
-      }
-      nodes = nodes.concat(param)
-    }
-    if (nodes[0].type === 'div') {
-      nodes = nodes.slice(1)
-    }
-    if (nodes[nodes.length - 1].type === 'div') {
-      nodes = nodes.slice(0, +-2 + 1 || undefined)
-    }
-    return parser.stringify({ nodes })
-  }
-}
-
-module.exports = Transition
Index: de_modules/autoprefixer/lib/utils.js
===================================================================
--- node_modules/autoprefixer/lib/utils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-let { list } = require('postcss')
-
-/**
- * Throw special error, to tell beniary,
- * that this error is from Autoprefixer.
- */
-module.exports.error = function (text) {
-  let err = new Error(text)
-  err.autoprefixer = true
-  throw err
-}
-
-/**
- * Return array, that doesn’t contain duplicates.
- */
-module.exports.uniq = function (array) {
-  return [...new Set(array)]
-}
-
-/**
- * Return "-webkit-" on "-webkit- old"
- */
-module.exports.removeNote = function (string) {
-  if (!string.includes(' ')) {
-    return string
-  }
-
-  return string.split(' ')[0]
-}
-
-/**
- * Escape RegExp symbols
- */
-module.exports.escapeRegexp = function (string) {
-  return string.replace(/[$()*+-.?[\\\]^{|}]/g, '\\$&')
-}
-
-/**
- * Return regexp to check, that CSS string contain word
- */
-module.exports.regexp = function (word, escape = true) {
-  if (escape) {
-    word = this.escapeRegexp(word)
-  }
-  return new RegExp(`(^|[\\s,(])(${word}($|[\\s(,]))`, 'gi')
-}
-
-/**
- * Change comma list
- */
-module.exports.editList = function (value, callback) {
-  let origin = list.comma(value)
-  let changed = callback(origin, [])
-
-  if (origin === changed) {
-    return value
-  }
-
-  let join = value.match(/,\s*/)
-  join = join ? join[0] : ', '
-  return changed.join(join)
-}
-
-/**
- * Split the selector into parts.
- * It returns 3 level deep array because selectors can be comma
- * separated (1), space separated (2), and combined (3)
- * @param {String} selector selector string
- * @return {Array<Array<Array>>} 3 level deep array of split selector
- * @see utils.test.js for examples
- */
-module.exports.splitSelector = function (selector) {
-  return list.comma(selector).map(i => {
-    return list.space(i).map(k => {
-      return k.split(/(?=\.|#)/g)
-    })
-  })
-}
-
-/**
- * Return true if a given value only contains numbers.
- * @param {*} value
- * @returns {boolean}
- */
-module.exports.isPureNumber = function (value) {
-  if (typeof value === 'number') {
-    return true
-  }
-  if (typeof value === 'string') {
-    return /^[0-9]+$/.test(value)
-  }
-  return false
-}
Index: de_modules/autoprefixer/lib/value.js
===================================================================
--- node_modules/autoprefixer/lib/value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-let OldValue = require('./old-value')
-let Prefixer = require('./prefixer')
-let utils = require('./utils')
-let vendor = require('./vendor')
-
-class Value extends Prefixer {
-  /**
-   * Clone decl for each prefixed values
-   */
-  static save(prefixes, decl) {
-    let prop = decl.prop
-    let result = []
-
-    for (let prefix in decl._autoprefixerValues) {
-      let value = decl._autoprefixerValues[prefix]
-
-      if (value === decl.value) {
-        continue
-      }
-
-      let item
-      let propPrefix = vendor.prefix(prop)
-
-      if (propPrefix === '-pie-') {
-        continue
-      }
-
-      if (propPrefix === prefix) {
-        item = decl.value = value
-        result.push(item)
-        continue
-      }
-
-      let prefixed = prefixes.prefixed(prop, prefix)
-      let rule = decl.parent
-
-      if (!rule.every(i => i.prop !== prefixed)) {
-        result.push(item)
-        continue
-      }
-
-      let trimmed = value.replace(/\s+/, ' ')
-      let already = rule.some(
-        i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed
-      )
-
-      if (already) {
-        result.push(item)
-        continue
-      }
-
-      let cloned = this.clone(decl, { value })
-      item = decl.parent.insertBefore(decl, cloned)
-
-      result.push(item)
-    }
-
-    return result
-  }
-
-  /**
-   * Save values with next prefixed token
-   */
-  add(decl, prefix) {
-    if (!decl._autoprefixerValues) {
-      decl._autoprefixerValues = {}
-    }
-    let value = decl._autoprefixerValues[prefix] || this.value(decl)
-
-    let before
-    do {
-      before = value
-      value = this.replace(value, prefix)
-      if (value === false) return
-    } while (value !== before)
-
-    decl._autoprefixerValues[prefix] = value
-  }
-
-  /**
-   * Is declaration need to be prefixed
-   */
-  check(decl) {
-    let value = decl.value
-    if (!value.includes(this.name)) {
-      return false
-    }
-
-    return !!value.match(this.regexp())
-  }
-
-  /**
-   * Return function to fast find prefixed value
-   */
-  old(prefix) {
-    return new OldValue(this.name, prefix + this.name)
-  }
-
-  /**
-   * Lazy regexp loading
-   */
-  regexp() {
-    return this.regexpCache || (this.regexpCache = utils.regexp(this.name))
-  }
-
-  /**
-   * Add prefix to values in string
-   */
-  replace(string, prefix) {
-    return string.replace(this.regexp(), `$1${prefix}$2`)
-  }
-
-  /**
-   * Get value with comments if it was not changed
-   */
-  value(decl) {
-    if (decl.raws.value && decl.raws.value.value === decl.value) {
-      return decl.raws.value.raw
-    } else {
-      return decl.value
-    }
-  }
-}
-
-module.exports = Value
Index: de_modules/autoprefixer/lib/vendor.js
===================================================================
--- node_modules/autoprefixer/lib/vendor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-module.exports = {
-  prefix(prop) {
-    let match = prop.match(/^(-\w+-)/)
-    if (match) {
-      return match[0]
-    }
-
-    return ''
-  },
-
-  unprefixed(prop) {
-    return prop.replace(/^-\w+-/, '')
-  }
-}
Index: de_modules/autoprefixer/package.json
===================================================================
--- node_modules/autoprefixer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-{
-  "name": "autoprefixer",
-  "version": "10.4.23",
-  "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website",
-  "engines": {
-    "node": "^10 || ^12 || >=14"
-  },
-  "keywords": [
-    "autoprefixer",
-    "css",
-    "prefix",
-    "postcss",
-    "postcss-plugin"
-  ],
-  "main": "lib/autoprefixer.js",
-  "bin": "bin/autoprefixer",
-  "types": "lib/autoprefixer.d.ts",
-  "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"
-    }
-  ],
-  "author": "Andrey Sitnik <andrey@sitnik.ru>",
-  "license": "MIT",
-  "repository": "postcss/autoprefixer",
-  "bugs": {
-    "url": "https://github.com/postcss/autoprefixer/issues"
-  },
-  "peerDependencies": {
-    "postcss": "^8.1.0"
-  },
-  "dependencies": {
-    "browserslist": "^4.28.1",
-    "caniuse-lite": "^1.0.30001760",
-    "fraction.js": "^5.3.4",
-    "picocolors": "^1.1.1",
-    "postcss-value-parser": "^4.2.0"
-  }
-}
Index: de_modules/baseline-browser-mapping/LICENSE.txt
===================================================================
--- node_modules/baseline-browser-mapping/LICENSE.txt	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,201 +1,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
Index: de_modules/baseline-browser-mapping/README.md
===================================================================
--- node_modules/baseline-browser-mapping/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,463 +1,0 @@
-# [`baseline-browser-mapping`](https://github.com/web-platform-dx/web-features/packages/baseline-browser-mapping)
-
-By the [W3C WebDX Community Group](https://www.w3.org/community/webdx/) and contributors.
-
-`baseline-browser-mapping` provides:
-
-- An `Array` of browsers compatible with Baseline Widely available and Baseline year feature sets via the [`getCompatibleVersions()` function](#get-baseline-widely-available-browser-versions-or-baseline-year-browser-versions).
-- An `Array`, `Object` or `CSV` as a string describing the Baseline feature set support of all browser versions included in the module's data set via the [`getAllVersions()` function](#get-data-for-all-browser-versions).
-
-You can use `baseline-browser-mapping` to help you determine minimum browser version support for your chosen Baseline feature set; or to analyse the level of support for different Baseline feature sets in your site's traffic by joining the data with your analytics data.
-
-## Install for local development
-
-To install the package, run:
-
-`npm install --save-dev baseline-browser-mapping`
-
-`baseline-browser-mapping` depends on `web-features` and `@mdn/browser-compat-data` for core browser version selection, but the data is pre-packaged and minified. This package checks for updates to those modules and the supported [downstream browsers](#downstream-browsers) on a daily basis and is updated frequently. Consider adding a script to your `package.json` to update `baseline-browser-mapping` and using it as part of your build process to ensure your data is as up to date as possible:
-
-```javascript
-"scripts": [
-  "refresh-baseline-browser-mapping": "npm i --save-dev baseline-browser-mapping@latest"
-]
-```
-
-The minimum supported NodeJS version for `baseline-browser-mapping` is v8 in alignment with `browserslist`. For NodeJS versions earlier than v13.2, the [`require('baseline-browser-mapping')`](https://nodejs.org/api/modules.html#requireid) syntax should be used to import the module.
-
-## Keeping `baseline-browser-mapping` up to date
-
-If you are only using this module to generate minimum browser versions for Baseline Widely available or Baseline year feature sets, you don't need to update this module frequently, as the backward looking data is reasonably stable.
-
-However, if you are targeting Newly available, using the [`getAllVersions()`](#get-data-for-all-browser-versions) function or heavily relying on the data for downstream browsers, you should update this module more frequently. If you target a feature cut off date within the last two months and your installed version of `baseline-browser-mapping` has data that is more than 2 months old, you will receive a console warning advising you to update to the latest version when you call `getCompatibleVersions()` or `getAllVersions()`.
-
-If you want to suppress these warnings you can use the `suppressWarnings: true` option in the configuration object passed to `getCompatibleVersions()` or `getAllVersions()`. Alternatively, you can use the `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true` environment variable when running your build process. This module also respects the `BROWSERSLIST_IGNORE_OLD_DATA=true` environment variable. Environment variables can also be provided in a `.env` file from Node 20 onwards; however, this module does not load .env files automatically to avoid conflicts with other libraries with different requirements. You will need to use `process.loadEnvFile()` or a library like `dotenv` to load .env files before `baseline-browser-mapping` is called.
-
-If you want to ensure [reproducible builds](https://www.wikiwand.com/en/articles/Reproducible_builds), we strongly recommend using the `widelyAvailableOnDate` option to fix the Widely available date on a per build basis to ensure dependent tools provide the same output and you do not produce data staleness warnings. If you are using [`browserslist`](https://github.com/browserslist/browserslist) to target Baseline Widely available, consider automatically updating your `browserslist` configuration in `package.json` or `.browserslistrc` to `baseline widely available on {YYYY-MM-DD}` as part of your build process to ensure the same or sufficiently similar list of minimum browsers is reproduced for historical builds.
-
-## Importing `baseline-browser-mapping`
-
-This module exposes two functions: `getCompatibleVersions()` and `getAllVersions()`, both which can be imported directly from `baseline-browser-mapping`:
-
-```javascript
-import {
-  getCompatibleVersions,
-  getAllVersions,
-} from "baseline-browser-mapping";
-```
-
-If you want to load the script and data directly in a web page without hosting it yourself, consider using a CDN:
-
-```html
-<script type="module">
-  import {
-    getCompatibleVersions,
-    getAllVersions,
-  } from "https://cdn.jsdelivr.net/npm/baseline-browser-mapping";
-</script>
-```
-
-## Get Baseline Widely available browser versions or Baseline year browser versions
-
-To get the current list of minimum browser versions compatible with Baseline Widely available features from the core browser set, call the `getCompatibleVersions()` function:
-
-```javascript
-getCompatibleVersions();
-```
-
-Executed on 7th March 2025, the above code returns the following browser versions:
-
-```javascript
-[
-  { browser: "chrome", version: "105", release_date: "2022-09-02" },
-  {
-    browser: "chrome_android",
-    version: "105",
-    release_date: "2022-09-02",
-  },
-  { browser: "edge", version: "105", release_date: "2022-09-02" },
-  { browser: "firefox", version: "104", release_date: "2022-08-23" },
-  {
-    browser: "firefox_android",
-    version: "104",
-    release_date: "2022-08-23",
-  },
-  { browser: "safari", version: "15.6", release_date: "2022-09-02" },
-  {
-    browser: "safari_ios",
-    version: "15.6",
-    release_date: "2022-09-02",
-  },
-];
-```
-
-> [!NOTE]
-> The minimum versions of each browser are not necessarily the final release before the Widely available cutoff date of `TODAY - 30 MONTHS`. Some earlier versions will have supported the full Widely available feature set.
-
-### `getCompatibleVersions()` configuration options
-
-`getCompatibleVersions()` accepts an `Object` as an argument with configuration options. The defaults are as follows:
-
-```javascript
-{
-  targetYear: undefined,
-  widelyAvailableOnDate: undefined,
-  includeDownstreamBrowsers: false,
-  listAllCompatibleVersions: false,
-  suppressWarnings: false
-}
-```
-
-#### `targetYear`
-
-The `targetYear` option returns the minimum browser versions compatible with all **Baseline Newly available** features at the end of the specified calendar year. For example, calling:
-
-```javascript
-getCompatibleVersions({
-  targetYear: 2020,
-});
-```
-
-Returns the following versions:
-
-```javascript
-[
-  { browser: "chrome", version: "87", release_date: "2020-11-19" },
-  {
-    browser: "chrome_android",
-    version: "87",
-    release_date: "2020-11-19",
-  },
-  { browser: "edge", version: "87", release_date: "2020-11-19" },
-  { browser: "firefox", version: "83", release_date: "2020-11-17" },
-  {
-    browser: "firefox_android",
-    version: "83",
-    release_date: "2020-11-17",
-  },
-  { browser: "safari", version: "14", release_date: "2020-09-16" },
-  { browser: "safari_ios", version: "14", release_date: "2020-09-16" },
-];
-```
-
-> [!NOTE]
-> The minimum version of each browser is not necessarily the final version released in that calendar year. In the above example, Firefox 84 was the final version released in 2020; however Firefox 83 supported all of the features that were interoperable at the end of 2020.
-> [!WARNING]
-> You cannot use `targetYear` and `widelyAavailableDate` together. Please only use one of these options at a time.
-
-#### `widelyAvailableOnDate`
-
-The `widelyAvailableOnDate` option returns the minimum versions compatible with Baseline Widely available on a specified date in the format `YYYY-MM-DD`:
-
-```javascript
-getCompatibleVersions({
-  widelyAvailableOnDate: `2023-04-05`,
-});
-```
-
-> [!TIP]
-> This option is useful if you provide a versioned library that targets Baseline Widely available on each version's release date and you need to provide a statement on minimum supported browser versions in your documentation.
-
-#### `includeDownstreamBrowsers`
-
-Setting `includeDownstreamBrowsers` to `true` will include browsers outside of the Baseline core browser set where it is possible to map those browsers to an upstream Chromium or Gecko version:
-
-```javascript
-getCompatibleVersions({
-  includeDownstreamBrowsers: true,
-});
-```
-
-For more information on downstream browsers, see [the section on downstream browsers](#downstream-browsers) below.
-
-#### `includeKaiOS`
-
-KaiOS is an operating system and app framework based on the Gecko engine from Firefox. KaiOS is based on the Gecko engine and feature support can be derived from the upstream Gecko version that each KaiOS version implements. However KaiOS requires other considerations beyond feature compatibility to ensure a good user experience as it runs on device types that do not have either mouse and keyboard or touch screen input in the way that all the other browsers supported by this module do.
-
-```javascript
-getCompatibleVersions({
-  includeDownstreamBrowsers: true,
-  includeKaiOS: true,
-});
-```
-
-> [!NOTE]
-> Including KaiOS requires you to include all downstream browsers using the `includeDownstreamBrowsers` option.
-
-#### `listAllCompatibleVersions`
-
-Setting `listAllCompatibleVersions` to true will include the minimum versions of each compatible browser, and all the subsequent versions:
-
-```javascript
-getCompatibleVersions({
-  listAllCompatibleVersions: true,
-});
-```
-
-#### `suppressWarnings`
-
-Setting `suppressWarnings` to `true` will suppress the console warning about old data:
-
-```javascript
-getCompatibleVersions({
-  suppressWarnings: true,
-});
-```
-
-## Get data for all browser versions
-
-You may want to obtain data on all the browser versions available in this module for use in an analytics solution or dashboard. To get details of each browser version's level of Baseline support, call the `getAllVersions()` function:
-
-```javascript
-import { getAllVersions } from "baseline-browser-mapping";
-
-getAllVersions();
-```
-
-By default, this function returns an `Array` of `Objects` and excludes downstream browsers:
-
-```javascript
-[
-  ...
-  {
-    browser: "firefox_android", // Browser name
-    version: "125", // Browser version
-    release_date: "2024-04-16", // Release date
-    year: 2023, // Baseline year feature set the version supports
-    wa_compatible: true // Whether the browser version supports Widely available
-  },
-  ...
-]
-```
-
-For browser versions in `@mdn/browser-compat-data` that were released before Baseline can be defined, i.e. Baseline 2015, the `year` property is always the string: `"pre_baseline"`.
-
-### Understanding which browsers support Newly available features
-
-You may want to understand which recent browser versions support all Newly available features. You can replace the `wa_compatible` property with a `supports` property using the `useSupport` option:
-
-```javascript
-getAllVersions({
-  useSupports: true,
-});
-```
-
-The `supports` property is optional and has two possible values:
-
-- `widely` for browser versions that support all Widely available features.
-- `newly` for browser versions that support all Newly available features.
-
-Browser versions that do not support Widely or Newly available will not include the `support` property in the `array` or `object` outputs, and in the CSV output, the `support` column will contain an empty string. Browser versions that support all Newly available features also support all Widely available features.
-
-### `getAllVersions()` Configuration options
-
-`getAllVersions()` accepts an `Object` as an argument with configuration options. The defaults are as follows:
-
-```javascript
-{
-  includeDownstreamBrowsers: false,
-  outputFormat: "array",
-  suppressWarnings: false
-}
-```
-
-#### `includeDownstreamBrowsers` (in `getAllVersions()` output)
-
-As with `getCompatibleVersions()`, you can set `includeDownstreamBrowsers` to `true` to include the Chromium and Gecko downstream browsers [listed below](#list-of-downstream-browsers).
-
-```javascript
-getAllVersions({
-  includeDownstreamBrowsers: true,
-});
-```
-
-Downstream browsers include the same properties as core browsers, as well as the `engine`they use and `engine_version`, for example:
-
-```javascript
-[
-  ...
-  {
-    browser: "samsunginternet_android",
-    version: "27.0",
-    release_date: "2024-11-06",
-    engine: "Blink",
-    engine_version: "125",
-    year: 2023,
-    supports: "widely"
-  },
-  ...
-]
-```
-
-#### `includeKaiOS` (in `getAllVersions()` output)
-
-As with `getCompatibleVersions()` you can include KaiOS in your output. The same requirement to have `includeDownstreamBrowsers: true` applies.
-
-```javascript
-getAllVersions({
-  includeDownstreamBrowsers: true,
-  includeKaiOS: true,
-});
-```
-
-#### `suppressWarnings` (in `getAllVersions()` output)
-
-As with `getCompatibleVersions()`, you can set `suppressWarnings` to `true` to suppress the console warning about old data:
-
-```javascript
-getAllVersions({
-  suppressWarnings: true,
-});
-```
-
-#### `outputFormat`
-
-By default, this function returns an `Array` of `Objects` which can be manipulated in Javascript or output to JSON.
-
-To return an `Object` that nests keys , set `outputFormat` to `object`:
-
-```javascript
-getAllVersions({
-  outputFormat: "object",
-});
-```
-
-In thise case, `getAllVersions()` returns a nested object with the browser [IDs listed below](#list-of-downstream-browsers) as keys, and versions as keys within them:
-
-```javascript
-{
-  "chrome": {
-    "53": {
-      "year": 2016,
-      "release_date": "2016-09-07"
-    },
-    ...
-}
-```
-
-Downstream browsers will include extra fields for `engine` and `engine_versions`
-
-```javascript
-{
-  ...
-  "webview_android": {
-    "53": {
-      "year": 2016,
-      "release_date": "2016-09-07",
-      "engine": "Blink",
-      "engine_version": "53"
-    },
-  ...
-}
-```
-
-To return a `String` in CSV format, set `outputFormat` to `csv`:
-
-```javascript
-getAllVersions({
-  outputFormat: "csv",
-});
-```
-
-`getAllVersions` returns a `String` with a header row and comma-separated values for each browser version that you can write to a file or pass to another service. Core browsers will have "NULL" as the value for their `engine` and `engine_version`:
-
-```csv
-"browser","version","year","supports","release_date","engine","engine_version"
-...
-"chrome","24","pre_baseline","","2013-01-10","NULL","NULL"
-...
-"chrome","53","2016","","2016-09-07","NULL","NULL"
-...
-"firefox","135","2024","widely","2025-02-04","NULL","NULL"
-"firefox","136","2024","newly","2025-03-04","NULL","NULL"
-...
-"ya_android","20.12","2020","year_only","2020-12-20","Blink","87"
-...
-```
-
-> [!NOTE]
-> The above example uses `"includeDownstreamBrowsers": true`
-
-### Static resources
-
-The outputs of `getAllVersions()` are available as JSON or CSV files generated on a daily basis and hosted on GitHub pages:
-
-- Core browsers only
-  - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_array.json)
-  - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_object.json)
-  - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions.csv)
-- Core browsers only, with `supports` property
-  - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_array_with_supports.json)
-  - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_object_with_supports.json)
-  - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_with_supports.csv)
-- Including downstream browsers
-  - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_array.json)
-  - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_object.json)
-  - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions.csv)
-- Including downstream browsers with `supports` property
-  - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_array_with_supports.json)
-  - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_object_with_supports.json)
-  - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_with_supports.csv)
-
-These files are updated on a daily basis.
-
-## CLI
-
-`baseline-browser-mapping` includes a command line interface that exposes the same data and options as the `getCompatibleVersions()` function. To learn more about using the CLI, run:
-
-```sh
-npx baseline-browser-mapping --help
-```
-
-## Downstream browsers
-
-### Limitations
-
-The browser versions in this module come from two different sources:
-
-- MDN's `browser-compat-data` module.
-- Parsed user agent strings provided by [useragents.io](https://useragents.io/)
-
-MDN `browser-compat-data` is an authoritative source of information for the browsers it contains. The release dates for the Baseline core browser set and the mapping of downstream browsers to Chromium versions should be considered accurate.
-
-Browser mappings from useragents.io are provided on a best effort basis. They assume that browser vendors are accurately stating the Chromium version they have implemented. The initial set of version mappings was derived from a bulk export in November 2024. This version was iterated over with a Regex match looking for a major Chrome version and a corresponding version of the browser in question, e.g.:
-
-`Mozilla/5.0 (Linux; U; Android 10; en-US; STK-L21 Build/HUAWEISTK-L21) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/13.8.2.1324 Mobile Safari/537.36`
-
-Shows UC Browser Mobile 13.8 implementing Chromium 100, and:
-
-`Mozilla/5.0 (Linux; arm_64; Android 11; Redmi Note 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.123 YaBrowser/24.10.2.123.00 SA/3 Mobile Safari/537.36`
-
-Shows Yandex Browser Mobile 24.10 implementing Chromium 128. The Chromium version from this string is mapped to the corresponding Chrome version from MDN `browser-compat-data`.
-
-> [!NOTE]
-> Where possible, approximate release dates have been included based on useragents.io "first seen" data. useragents.io does not have "first seen" dates prior to June 2020. However, these browsers' Baseline compatibility is determined by their Chromium or Gecko version, so their release dates are more informative than critical.
-
-This data is updated on a daily basis using a [script](https://github.com/web-platform-dx/web-features/tree/main/scripts/refresh-downstream.ts) triggered by a GitHub [action](https://github.com/web-platform-dx/web-features/tree/main/.github/workflows/refresh_downstream.yml). Useragents.io provides a private API for this module which exposes the last 7 days of newly seen user agents for the currently tracked browsers. If a new major version of one of the tracked browsers is encountered with a Chromium version that meets or exceeds the previous latest version of that browser, it is added to the [src/data/downstream-browsers.json](src/data/downstream-browsers.json) file with the date it was first seen by useragents.io as its release date.
-
-KaiOS is an exception - its upstream version mappings are handled separately from the other browsers because they happen very infrequently.
-
-### List of downstream browsers
-
-| Browser               | ID                        | Core    | Source                    |
-| --------------------- | ------------------------- | ------- | ------------------------- |
-| Chrome                | `chrome`                  | `true`  | MDN `browser-compat-data` |
-| Chrome for Android    | `chrome_android`          | `true`  | MDN `browser-compat-data` |
-| Edge                  | `edge`                    | `true`  | MDN `browser-compat-data` |
-| Firefox               | `firefox`                 | `true`  | MDN `browser-compat-data` |
-| Firefox for Android   | `firefox_android`         | `true`  | MDN `browser-compat-data` |
-| Safari                | `safari`                  | `true`  | MDN `browser-compat-data` |
-| Safari on iOS         | `safari_ios`              | `true`  | MDN `browser-compat-data` |
-| Opera                 | `opera`                   | `false` | MDN `browser-compat-data` |
-| Opera Android         | `opera_android`           | `false` | MDN `browser-compat-data` |
-| Samsung Internet      | `samsunginternet_android` | `false` | MDN `browser-compat-data` |
-| WebView Android       | `webview_android`         | `false` | MDN `browser-compat-data` |
-| QQ Browser Mobile     | `qq_android`              | `false` | useragents.io             |
-| UC Browser Mobile     | `uc_android`              | `false` | useragents.io             |
-| Yandex Browser Mobile | `ya_android`              | `false` | useragents.io             |
-| KaiOS                 | `kai_os`                  | `false` | Manual                    |
-| Facebook for Android  | `facebook_android`        | `false` | useragents.io             |
-| Instagram for Android | `instagram_android`       | `false` | useragents.io             |
-
-> [!NOTE]
-> All the non-core browsers currently included implement Chromium or Gecko. Their inclusion in any of the above methods is based on the Baseline feature set supported by the Chromium or Gecko version they implement, not their release date.
Index: de_modules/baseline-browser-mapping/dist/cli.js
===================================================================
--- node_modules/baseline-browser-mapping/dist/cli.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-#!/usr/bin/env node
-import{parseArgs as e}from"node:util";import{exit as s}from"node:process";import{getCompatibleVersions as a}from"./index.js";const r=process.argv.slice(2),{values:n}=e({args:r,options:{"target-year":{type:"string"},"widely-available-on-date":{type:"string"},"include-downstream-browsers":{type:"boolean"},"list-all-compatible-versions":{type:"boolean"},"include-kaios":{type:"boolean"},"suppress-warnings":{type:"boolean"},"override-last-updated":{type:"string"},help:{type:"boolean",short:"h"}},strict:!0});n.help&&(console.log("\nGet Baseline Widely available browser versions or Baseline year browser versions.\n\nUsage: baseline-browser-mapping [options]\n\nOptions:\n      --target-year                   Pass a year between 2015 and the current year to get browser versions compatible \n                                      with all Newly Available features as of the end of the year specified.\n      --widely-available-on-date      Pass a date in the format 'YYYY-MM-DD' to get versions compatible with Widely \n                                      available on the specified date.\n      --include-downstream-browsers   Whether to include browsers that use the same engines as a core Baseline browser.\n      --include-kaios                 Whether to include KaiOS in downstream browsers.  Requires --include-downstream-browsers.\n      --list-all-compatible-versions  Whether to include only the minimum compatible browser versions or all compatible versions.\n      --suppress-warnings             Supress potential warnings about data staleness when using a very recent feature cut off date.\n      --override-last-updated         Override the last updated date for the baseline data for debugging purposes.\n  -h, --help                          Show help\n\nExamples:\n  npx baseline-browser-mapping --target-year 2020\n  npx baseline-browser-mapping --widely-available-on-date 2023-04-05\n  npx baseline-browser-mapping --include-downstream-browsers\n  npx baseline-browser-mapping --list-all-compatible-versions\n".trim()),s(0)),console.log(a({targetYear:n["target-year"]?Number.parseInt(n["target-year"]):void 0,widelyAvailableOnDate:n["widely-available-on-date"],includeDownstreamBrowsers:n["include-downstream-browsers"],listAllCompatibleVersions:n["list-all-compatible-versions"],includeKaiOS:n["include-kaios"],suppressWarnings:n["suppress-warnings"],overrideLastUpdated:n["override-last-updated"]?Number.parseInt(n["override-last-updated"]):void 0}));
Index: de_modules/baseline-browser-mapping/dist/index.cjs
===================================================================
--- node_modules/baseline-browser-mapping/dist/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";const s={chrome:{releases:[["1","2008-12-11","r","w","528"],["2","2009-05-21","r","w","530"],["3","2009-09-15","r","w","532"],["4","2010-01-25","r","w","532.5"],["5","2010-05-25","r","w","533"],["6","2010-09-02","r","w","534.3"],["7","2010-10-19","r","w","534.7"],["8","2010-12-02","r","w","534.10"],["9","2011-02-03","r","w","534.13"],["10","2011-03-08","r","w","534.16"],["11","2011-04-27","r","w","534.24"],["12","2011-06-07","r","w","534.30"],["13","2011-08-02","r","w","535.1"],["14","2011-09-16","r","w","535.1"],["15","2011-10-25","r","w","535.2"],["16","2011-12-13","r","w","535.7"],["17","2012-02-08","r","w","535.11"],["18","2012-03-28","r","w","535.19"],["19","2012-05-15","r","w","536.5"],["20","2012-06-26","r","w","536.10"],["21","2012-07-31","r","w","537.1"],["22","2012-09-25","r","w","537.4"],["23","2012-11-06","r","w","537.11"],["24","2013-01-10","r","w","537.17"],["25","2013-02-21","r","w","537.22"],["26","2013-03-26","r","w","537.31"],["27","2013-05-21","r","w","537.36"],["28","2013-07-09","r","b","28"],["29","2013-08-20","r","b","29"],["30","2013-10-01","r","b","30"],["31","2013-11-12","r","b","31"],["32","2014-01-14","r","b","32"],["33","2014-02-20","r","b","33"],["34","2014-04-08","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-08-26","r","b","37"],["38","2014-10-07","r","b","38"],["39","2014-11-18","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-03","r","b","41"],["42","2015-04-14","r","b","42"],["43","2015-05-19","r","b","43"],["44","2015-07-21","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-13","r","b","46"],["47","2015-12-01","r","b","47"],["48","2016-01-20","r","b","48"],["49","2016-03-02","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-05-25","r","b","51"],["52","2016-07-20","r","b","52"],["53","2016-08-31","r","b","53"],["54","2016-10-12","r","b","54"],["55","2016-12-01","r","b","55"],["56","2017-01-25","r","b","56"],["57","2017-03-09","r","b","57"],["58","2017-04-19","r","b","58"],["59","2017-06-05","r","b","59"],["60","2017-07-25","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-17","r","b","62"],["63","2017-12-06","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-29","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-16","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-23","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-10","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-18","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"]]},chrome_android:{releases:[["18","2012-06-27","r","w","535.19"],["25","2013-02-27","r","w","537.22"],["26","2013-04-03","r","w","537.31"],["27","2013-05-22","r","w","537.36"],["28","2013-07-10","r","b","28"],["29","2013-08-21","r","b","29"],["30","2013-10-02","r","b","30"],["31","2013-11-14","r","b","31"],["32","2014-01-15","r","b","32"],["33","2014-02-26","r","b","33"],["34","2014-04-02","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"]]},edge:{releases:[["12","2015-07-29","r",null,"12"],["13","2015-11-12","r",null,"13"],["14","2016-08-02","r",null,"14"],["15","2017-04-05","r",null,"15"],["16","2017-10-17","r",null,"16"],["17","2018-04-30","r",null,"17"],["18","2018-10-02","r",null,"18"],["79","2020-01-15","r","b","79"],["80","2020-02-07","r","b","80"],["81","2020-04-13","r","b","81"],["83","2020-05-21","r","b","83"],["84","2020-07-16","r","b","84"],["85","2020-08-27","r","b","85"],["86","2020-10-09","r","b","86"],["87","2020-11-19","r","b","87"],["88","2021-01-21","r","b","88"],["89","2021-03-04","r","b","89"],["90","2021-04-15","r","b","90"],["91","2021-05-27","r","b","91"],["92","2021-07-22","r","b","92"],["93","2021-09-02","r","b","93"],["94","2021-09-24","r","b","94"],["95","2021-10-21","r","b","95"],["96","2021-11-19","r","b","96"],["97","2022-01-06","r","b","97"],["98","2022-02-03","r","b","98"],["99","2022-03-03","r","b","99"],["100","2022-04-01","r","b","100"],["101","2022-04-28","r","b","101"],["102","2022-05-31","r","b","102"],["103","2022-06-23","r","b","103"],["104","2022-08-05","r","b","104"],["105","2022-09-01","r","b","105"],["106","2022-10-03","r","b","106"],["107","2022-10-27","r","b","107"],["108","2022-12-05","r","b","108"],["109","2023-01-12","r","b","109"],["110","2023-02-09","r","b","110"],["111","2023-03-13","r","b","111"],["112","2023-04-06","r","b","112"],["113","2023-05-05","r","b","113"],["114","2023-06-02","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-21","r","b","116"],["117","2023-09-15","r","b","117"],["118","2023-10-13","r","b","118"],["119","2023-11-02","r","b","119"],["120","2023-12-07","r","b","120"],["121","2024-01-25","r","b","121"],["122","2024-02-23","r","b","122"],["123","2024-03-22","r","b","123"],["124","2024-04-18","r","b","124"],["125","2024-05-17","r","b","125"],["126","2024-06-13","r","b","126"],["127","2024-07-25","r","b","127"],["128","2024-08-22","r","b","128"],["129","2024-09-19","r","b","129"],["130","2024-10-17","r","b","130"],["131","2024-11-14","r","b","131"],["132","2025-01-17","r","b","132"],["133","2025-02-06","r","b","133"],["134","2025-03-06","r","b","134"],["135","2025-04-04","r","b","135"],["136","2025-05-01","r","b","136"],["137","2025-05-29","r","b","137"],["138","2025-06-26","r","b","138"],["139","2025-08-07","r","b","139"],["140","2025-09-05","r","b","140"],["141","2025-10-03","r","b","141"],["142","2025-10-31","r","b","142"],["143","2025-12-05","c","b","143"],["144","2026-01-15","b","b","144"],["145","2026-02-12","n","b","145"],["146","2026-03-12","p","b","146"]]},firefox:{releases:[["1","2004-11-09","r","g","1.7"],["2","2006-10-24","r","g","1.8.1"],["3","2008-06-17","r","g","1.9"],["4","2011-03-22","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-20","r","g","9"],["10","2012-01-31","r","g","10"],["11","2012-03-13","r","g","11"],["12","2012-04-24","r","g","12"],["13","2012-06-05","r","g","13"],["14","2012-07-17","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-24","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-14","r","g","57"],["58","2018-01-23","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["69","2019-09-03","r","g","69"],["70","2019-10-22","r","g","70"],["71","2019-12-10","r","g","71"],["72","2020-01-07","r","g","72"],["73","2020-02-11","r","g","73"],["74","2020-03-10","r","g","74"],["75","2020-04-07","r","g","75"],["76","2020-05-05","r","g","76"],["77","2020-06-02","r","g","77"],["78","2020-06-30","r","g","78"],["79","2020-07-28","r","g","79"],["80","2020-08-25","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","c","g","146"],["147","2026-01-13","b","g","147"],["148","2026-02-24","n","g","148"],["149","2026-03-24","p","g","149"],["1.5","2005-11-29","r","g","1.8"],["3.5","2009-06-30","r","g","1.9.1"],["3.6","2010-01-21","r","g","1.9.2"]]},firefox_android:{releases:[["4","2011-03-29","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-21","r","g","9"],["10","2012-01-31","r","g","10"],["14","2012-06-26","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-27","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-28","r","g","57"],["58","2018-01-22","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["79","2020-07-28","r","g","79"],["80","2020-08-31","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","c","g","146"],["147","2026-01-13","b","g","147"],["148","2026-02-24","n","g","148"],["149","2026-03-24","p","g","149"]]},opera:{releases:[["2","1996-07-14","r",null,null],["3","1997-12-01","r",null,null],["4","2000-06-28","r",null,null],["5","2000-12-06","r",null,null],["6","2001-12-18","r",null,null],["7","2003-01-28","r","p","1"],["8","2005-04-19","r","p","1"],["9","2006-06-20","r","p","2"],["10","2009-09-01","r","p","2.2"],["11","2010-12-16","r","p","2.7"],["12","2012-06-14","r","p","2.10"],["15","2013-07-02","r","b","28"],["16","2013-08-27","r","b","29"],["17","2013-10-08","r","b","30"],["18","2013-11-19","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-04","r","b","33"],["21","2014-05-06","r","b","34"],["22","2014-06-03","r","b","35"],["23","2014-07-22","r","b","36"],["24","2014-09-02","r","b","37"],["25","2014-10-15","r","b","38"],["26","2014-12-03","r","b","39"],["27","2015-01-27","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-09","r","b","43"],["31","2015-08-04","r","b","44"],["32","2015-09-15","r","b","45"],["33","2015-10-27","r","b","46"],["34","2015-12-08","r","b","47"],["35","2016-02-02","r","b","48"],["36","2016-03-15","r","b","49"],["37","2016-05-04","r","b","50"],["38","2016-06-08","r","b","51"],["39","2016-08-02","r","b","52"],["40","2016-09-20","r","b","53"],["41","2016-10-25","r","b","54"],["42","2016-12-13","r","b","55"],["43","2017-02-07","r","b","56"],["44","2017-03-21","r","b","57"],["45","2017-05-10","r","b","58"],["46","2017-06-22","r","b","59"],["47","2017-08-09","r","b","60"],["48","2017-09-27","r","b","61"],["49","2017-11-08","r","b","62"],["50","2018-01-04","r","b","63"],["51","2018-02-07","r","b","64"],["52","2018-03-22","r","b","65"],["53","2018-05-10","r","b","66"],["54","2018-06-28","r","b","67"],["55","2018-08-16","r","b","68"],["56","2018-09-25","r","b","69"],["57","2018-11-28","r","b","70"],["58","2019-01-23","r","b","71"],["60","2019-04-09","r","b","73"],["62","2019-06-27","r","b","75"],["63","2019-08-20","r","b","76"],["64","2019-10-07","r","b","77"],["65","2019-11-13","r","b","78"],["66","2020-01-07","r","b","79"],["67","2020-03-03","r","b","80"],["68","2020-04-22","r","b","81"],["69","2020-06-24","r","b","83"],["70","2020-07-27","r","b","84"],["71","2020-09-15","r","b","85"],["72","2020-10-21","r","b","86"],["73","2020-12-09","r","b","87"],["74","2021-02-02","r","b","88"],["75","2021-03-24","r","b","89"],["76","2021-04-28","r","b","90"],["77","2021-06-09","r","b","91"],["78","2021-08-03","r","b","92"],["79","2021-09-14","r","b","93"],["80","2021-10-05","r","b","94"],["81","2021-11-04","r","b","95"],["82","2021-12-02","r","b","96"],["83","2022-01-19","r","b","97"],["84","2022-02-16","r","b","98"],["85","2022-03-23","r","b","99"],["86","2022-04-20","r","b","100"],["87","2022-05-17","r","b","101"],["88","2022-06-08","r","b","102"],["89","2022-07-07","r","b","103"],["90","2022-08-18","r","b","104"],["91","2022-09-14","r","b","105"],["92","2022-10-19","r","b","106"],["93","2022-11-17","r","b","107"],["94","2022-12-15","r","b","108"],["95","2023-02-01","r","b","109"],["96","2023-02-22","r","b","110"],["97","2023-03-22","r","b","111"],["98","2023-04-20","r","b","112"],["99","2023-05-16","r","b","113"],["100","2023-06-29","r","b","114"],["101","2023-07-26","r","b","115"],["102","2023-08-23","r","b","116"],["103","2023-10-03","r","b","117"],["104","2023-10-23","r","b","118"],["105","2023-11-14","r","b","119"],["106","2023-12-19","r","b","120"],["107","2024-02-07","r","b","121"],["108","2024-03-05","r","b","122"],["109","2024-03-27","r","b","123"],["110","2024-05-14","r","b","124"],["111","2024-06-12","r","b","125"],["112","2024-07-11","r","b","126"],["113","2024-08-22","r","b","127"],["114","2024-09-25","r","b","128"],["115","2024-11-27","r","b","130"],["116","2025-01-08","r","b","131"],["117","2025-02-13","r","b","132"],["118","2025-04-15","r","b","133"],["119","2025-05-13","r","b","134"],["120","2025-07-02","r","b","135"],["121","2025-08-27","r","b","137"],["122","2025-09-11","r","b","138"],["123","2025-10-28","c","b","139"],["124",null,"b","b","140"],["125",null,"n","b","141"],["10.1","2009-11-23","r","p","2.2"],["10.5","2010-03-02","r","p","2.5"],["10.6","2010-07-01","r","p","2.6"],["11.1","2011-04-12","r","p","2.8"],["11.5","2011-06-28","r","p","2.9"],["11.6","2011-12-06","r","p","2.10"],["12.1","2012-11-20","r","p","2.12"],["3.5","1998-11-18","r",null,null],["3.6","1999-05-06","r",null,null],["5.1","2001-04-10","r",null,null],["7.1","2003-04-11","r","p","1"],["7.2","2003-09-23","r","p","1"],["7.5","2004-05-12","r","p","1"],["8.5","2005-09-20","r","p","1"],["9.1","2006-12-18","r","p","2"],["9.2","2007-04-11","r","p","2"],["9.5","2008-06-12","r","p","2.1"],["9.6","2008-10-08","r","p","2.1"]]},opera_android:{releases:[["11","2011-03-22","r","p","2.7"],["12","2012-02-25","r","p","2.10"],["14","2013-05-21","r","w","537.31"],["15","2013-07-08","r","b","28"],["16","2013-09-18","r","b","29"],["18","2013-11-20","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-06","r","b","33"],["21","2014-04-22","r","b","34"],["22","2014-06-17","r","b","35"],["24","2014-09-10","r","b","37"],["25","2014-10-16","r","b","38"],["26","2014-12-02","r","b","39"],["27","2015-01-29","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-10","r","b","43"],["32","2015-09-23","r","b","45"],["33","2015-11-03","r","b","46"],["34","2015-12-16","r","b","47"],["35","2016-02-04","r","b","48"],["36","2016-03-31","r","b","49"],["37","2016-06-16","r","b","50"],["41","2016-10-25","r","b","54"],["42","2017-01-21","r","b","55"],["43","2017-09-27","r","b","59"],["44","2017-12-11","r","b","60"],["45","2018-02-15","r","b","61"],["46","2018-05-14","r","b","63"],["47","2018-07-23","r","b","66"],["48","2018-11-08","r","b","69"],["49","2018-12-07","r","b","70"],["50","2019-02-18","r","b","71"],["51","2019-03-21","r","b","72"],["52","2019-05-17","r","b","73"],["53","2019-07-11","r","b","74"],["54","2019-10-18","r","b","76"],["55","2019-12-03","r","b","77"],["56","2020-02-06","r","b","78"],["57","2020-03-30","r","b","80"],["58","2020-05-13","r","b","81"],["59","2020-06-30","r","b","83"],["60","2020-09-23","r","b","85"],["61","2020-12-07","r","b","86"],["62","2021-02-16","r","b","87"],["63","2021-04-16","r","b","89"],["64","2021-05-25","r","b","91"],["65","2021-10-20","r","b","92"],["66","2021-12-15","r","b","94"],["67","2022-01-31","r","b","96"],["68","2022-03-30","r","b","99"],["69","2022-05-09","r","b","100"],["70","2022-06-29","r","b","102"],["71","2022-09-16","r","b","104"],["72","2022-10-21","r","b","106"],["73","2023-01-17","r","b","108"],["74","2023-03-13","r","b","110"],["75","2023-05-17","r","b","112"],["76","2023-06-26","r","b","114"],["77","2023-08-31","r","b","115"],["78","2023-10-23","r","b","117"],["79","2023-12-06","r","b","119"],["80","2024-01-25","r","b","120"],["81","2024-03-14","r","b","122"],["82","2024-05-02","r","b","124"],["83","2024-06-25","r","b","126"],["84","2024-08-26","r","b","127"],["85","2024-10-29","r","b","128"],["86","2024-12-02","r","b","130"],["87","2025-01-22","r","b","132"],["88","2025-03-19","r","b","134"],["89","2025-04-29","r","b","135"],["90","2025-06-18","r","b","137"],["91","2025-08-19","r","b","139"],["92","2025-10-08","r","b","140"],["93","2025-11-25","c","b","142"],["10.1","2010-11-09","r","p","2.5"],["11.1","2011-06-30","r","p","2.8"],["11.5","2011-10-12","r","p","2.9"],["12.1","2012-10-09","r","p","2.11"]]},safari:{releases:[["1","2003-06-23","r","w","85"],["2","2005-04-29","r","w","412"],["3","2007-10-26","r","w","523.10"],["4","2009-06-08","r","w","530.17"],["5","2010-06-07","r","w","533.16"],["6","2012-07-25","r","w","536.25"],["7","2013-10-22","r","w","537.71"],["8","2014-10-16","r","w","538.35"],["9","2015-09-30","r","w","601.1.56"],["10","2016-09-20","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["1.1","2003-10-24","r","w","100"],["1.2","2004-02-02","r","w","125"],["1.3","2005-04-15","r","w","312"],["10.1","2017-03-27","r","w","603.2.1"],["11.1","2018-04-12","r","w","605.1.33"],["12.1","2019-03-25","r","w","607.1.40"],["13.1","2020-03-24","r","w","609.1.20"],["14.1","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2025-12-15","c","w","623.2.2"],["3.1","2008-03-18","r","w","525.13"],["5.1","2011-07-20","r","w","534.48"],["9.1","2016-03-21","r","w","601.5.17"]]},safari_ios:{releases:[["1","2007-06-29","r","w","522.11"],["2","2008-07-11","r","w","525.18"],["3","2009-06-17","r","w","528.18"],["4","2010-06-21","r","w","532.9"],["5","2011-10-12","r","w","534.46"],["6","2012-09-10","r","w","536.26"],["7","2013-09-18","r","w","537.51"],["8","2014-09-17","r","w","600.1.4"],["9","2015-09-16","r","w","601.1.56"],["10","2016-09-13","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["10.3","2017-03-27","r","w","603.2.1"],["11.3","2018-03-29","r","w","605.1.33"],["12.2","2019-03-25","r","w","607.1.40"],["13.4","2020-03-24","r","w","609.1.20"],["14.5","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2025-12-15","c","w","623.2.2"],["3.2","2010-04-03","r","w","531.21"],["4.2","2010-11-22","r","w","533.17"],["9.3","2016-03-21","r","w","601.5.17"]]},samsunginternet_android:{releases:[["1.0","2013-04-27","r","w","535.19"],["1.5","2013-09-25","r","b","28"],["1.6","2014-04-11","r","b","28"],["10.0","2019-08-22","r","b","71"],["10.2","2019-10-09","r","b","71"],["11.0","2019-12-05","r","b","75"],["11.2","2020-03-22","r","b","75"],["12.0","2020-06-19","r","b","79"],["12.1","2020-07-07","r","b","79"],["13.0","2020-12-02","r","b","83"],["13.2","2021-01-20","r","b","83"],["14.0","2021-04-17","r","b","87"],["14.2","2021-06-25","r","b","87"],["15.0","2021-08-13","r","b","90"],["16.0","2021-11-25","r","b","92"],["16.2","2022-03-06","r","b","92"],["17.0","2022-05-04","r","b","96"],["18.0","2022-08-08","r","b","99"],["18.1","2022-09-09","r","b","99"],["19.0","2022-11-01","r","b","102"],["19.1","2022-11-08","r","b","102"],["2.0","2014-10-17","r","b","34"],["2.1","2015-01-07","r","b","34"],["20.0","2023-02-10","r","b","106"],["21.0","2023-05-19","r","b","110"],["22.0","2023-07-14","r","b","111"],["23.0","2023-10-18","r","b","115"],["24.0","2024-01-25","r","b","117"],["25.0","2024-04-24","r","b","121"],["26.0","2024-06-07","r","b","122"],["27.0","2024-11-06","r","b","125"],["28.0","2025-04-02","r","b","130"],["29.0","2025-10-25","c","b","136"],["3.0","2015-04-10","r","b","38"],["3.2","2015-08-24","r","b","38"],["4.0","2016-03-11","r","b","44"],["4.2","2016-08-02","r","b","44"],["5.0","2016-12-15","r","b","51"],["5.2","2017-04-21","r","b","51"],["5.4","2017-05-17","r","b","51"],["6.0","2017-08-23","r","b","56"],["6.2","2017-10-26","r","b","56"],["6.4","2018-02-19","r","b","56"],["7.0","2018-03-16","r","b","59"],["7.2","2018-06-20","r","b","59"],["7.4","2018-09-12","r","b","59"],["8.0","2018-07-18","r","b","63"],["8.2","2018-12-21","r","b","63"],["9.0","2018-09-15","r","b","67"],["9.2","2019-04-02","r","b","67"],["9.4","2019-07-25","r","b","67"]]},webview_android:{releases:[["1","2008-09-23","r","w","523.12"],["2","2009-10-26","r","w","530.17"],["3","2011-02-22","r","w","534.13"],["4","2011-10-18","r","w","534.30"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-01","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"],["1.5","2009-04-27","r","w","525.20"],["2.2","2010-05-20","r","w","533.1"],["4.4","2013-12-09","r","b","30"],["4.4.3","2014-06-02","r","b","33"]]}},a={ya_android:{releases:[["1.0","u","u","b","25"],["1.5","u","u","b","22"],["1.6","u","u","b","25"],["1.7","u","u","b","25"],["1.20","u","u","b","25"],["2.5","u","u","b","25"],["3.2","u","u","b","25"],["4.6","u","u","b","25"],["5.3","u","u","b","25"],["5.4","u","u","b","25"],["7.4","u","u","b","25"],["9.6","u","u","b","25"],["10.5","u","u","b","25"],["11.4","u","u","b","25"],["11.5","u","u","b","25"],["12.7","u","u","b","25"],["13.9","u","u","b","28"],["13.10","u","u","b","28"],["13.11","u","u","b","28"],["13.12","u","u","b","30"],["14.2","u","u","b","32"],["14.4","u","u","b","33"],["14.5","u","u","b","34"],["14.7","u","u","b","35"],["14.8","u","u","b","36"],["14.10","u","u","b","37"],["14.12","u","u","b","38"],["15.2","u","u","b","40"],["15.4","u","u","b","41"],["15.6","u","u","b","42"],["15.7","u","u","b","43"],["15.9","u","u","b","44"],["15.10","u","u","b","45"],["15.12","u","u","b","46"],["16.2","u","u","b","47"],["16.3","u","u","b","47"],["16.4","u","u","b","49"],["16.6","u","u","b","50"],["16.7","u","u","b","51"],["16.9","u","u","b","52"],["16.10","u","u","b","53"],["16.11","u","u","b","54"],["17.1","u","u","b","55"],["17.3","u","u","b","56"],["17.4","u","u","b","57"],["17.6","u","u","b","58"],["17.7","u","u","b","59"],["17.9","u","u","b","60"],["17.10","u","u","b","61"],["17.11","u","u","b","62"],["18.1","u","u","b","63"],["18.2","u","u","b","63"],["18.3","u","u","b","64"],["18.4","u","u","b","65"],["18.6","u","u","b","66"],["18.7","u","u","b","67"],["18.9","u","u","b","68"],["18.10","u","u","b","69"],["18.11","u","u","b","70"],["19.1","u","u","b","71"],["19.3","u","u","b","72"],["19.4","u","u","b","73"],["19.5","u","u","b","75"],["19.6","u","u","b","75"],["19.7","u","u","b","75"],["19.9","u","u","b","76"],["19.10","u","u","b","77"],["19.11","u","u","b","78"],["19.12","u","u","b","78"],["20.2","u","u","b","79"],["20.3","u","u","b","80"],["20.4","u","u","b","81"],["20.6","u","u","b","81"],["20.7","u","u","b","83"],["20.8","2020-09-02","u","b","84"],["20.9","2020-09-27","u","b","85"],["20.11","2020-11-11","u","b","86"],["20.12","2020-12-20","u","b","87"],["21.1","2021-12-31","u","b","88"],["21.2","u","u","b","88"],["21.3","2021-04-04","u","b","89"],["21.5","u","u","b","90"],["21.6","2021-09-28","u","b","91"],["21.8","2021-09-28","u","b","92"],["21.9","2021-09-29","u","b","93"],["21.11","2021-10-29","u","b","94"],["22.1","2021-12-31","u","b","96"],["22.3","2022-03-25","u","b","98"],["22.4","u","u","b","92"],["22.5","2022-05-20","u","b","100"],["22.7","2022-07-07","u","b","102"],["22.8","u","u","b","104"],["22.9","2022-08-27","u","b","104"],["22.11","2022-11-11","u","b","106"],["23.1","2023-01-10","u","b","108"],["23.3","2023-03-26","u","b","110"],["23.5","2023-05-19","u","b","112"],["23.7","2023-07-06","u","b","114"],["23.9","2023-09-13","u","b","116"],["23.11","2023-11-15","u","b","118"],["24.1","2024-01-18","u","b","120"],["24.2","2024-03-25","u","b","120"],["24.4","2024-03-27","u","b","122"],["24.6","2024-06-04","u","b","124"],["24.7","2024-07-18","u","b","126"],["24.9","2024-10-01","u","b","126"],["24.10","2024-10-11","u","b","128"],["24.12","2024-11-30","u","b","130"],["25.2","2025-04-24","u","b","132"],["25.3","2025-04-23","u","b","132"],["25.4","2025-04-23","u","b","134"],["25.6","2025-09-04","u","b","136"],["25.8","2025-08-30","u","b","138"],["25.10","2025-10-09","u","b","140"],["25.12","2025-12-07","u","b","142"]]},uc_android:{releases:[["10.5","u","u","b","31"],["10.7","u","u","b","31"],["10.8","u","u","b","31"],["10.10","u","u","b","31"],["11.0","u","u","b","31"],["11.1","u","u","b","40"],["11.2","u","u","b","40"],["11.3","u","u","b","40"],["11.4","u","u","b","40"],["11.5","u","u","b","40"],["11.6","u","u","b","57"],["11.8","u","u","b","57"],["11.9","u","u","b","57"],["12.0","u","u","b","57"],["12.1","u","u","b","57"],["12.2","u","u","b","57"],["12.3","u","u","b","57"],["12.4","u","u","b","57"],["12.5","u","u","b","57"],["12.6","u","u","b","57"],["12.7","u","u","b","57"],["12.8","u","u","b","57"],["12.9","u","u","b","57"],["12.10","u","u","b","57"],["12.11","u","u","b","57"],["12.12","u","u","b","57"],["12.13","u","u","b","57"],["12.14","u","u","b","57"],["13.0","u","u","b","57"],["13.1","u","u","b","57"],["13.2","u","u","b","57"],["13.3","2020-09-09","u","b","78"],["13.4","2021-09-28","u","b","78"],["13.5","2023-08-25","u","b","78"],["13.6","2023-12-17","u","b","78"],["13.7","2023-06-24","u","b","78"],["13.8","2022-04-30","u","b","78"],["13.9","2022-05-18","u","b","78"],["15.0","2022-08-24","u","b","78"],["15.1","2022-11-11","u","b","78"],["15.2","2023-04-23","u","b","78"],["15.3","2023-03-17","u","b","100"],["15.4","2023-10-25","u","b","100"],["15.5","2023-08-22","u","b","100"],["16.0","2023-08-24","u","b","100"],["16.1","2023-10-15","u","b","100"],["16.2","2023-12-09","u","b","100"],["16.3","2024-03-08","u","b","100"],["16.4","2024-10-03","u","b","100"],["16.5","2024-05-30","u","b","100"],["16.6","2024-07-23","u","b","100"],["17.0","2024-08-24","u","b","100"],["17.1","2024-09-26","u","b","100"],["17.2","2024-11-29","u","b","100"],["17.3","2025-01-07","u","b","100"],["17.4","2025-02-26","u","b","100"],["17.5","2025-04-08","u","b","100"],["17.6","2025-05-15","u","b","123"],["17.7","2025-06-11","u","b","123"],["17.8","2025-07-30","u","b","123"],["18.0","2025-08-17","u","b","123"],["18.1","2025-10-04","u","b","123"],["18.2","2025-11-04","u","b","123"],["18.3","2025-12-12","u","b","123"]]},qq_android:{releases:[["6.0","u","u","b","37"],["6.1","u","u","b","37"],["6.2","u","u","b","37"],["6.3","u","u","b","37"],["6.4","u","u","b","37"],["6.6","u","u","b","37"],["6.7","u","u","b","37"],["6.8","u","u","b","37"],["6.9","u","u","b","37"],["7.0","u","u","b","37"],["7.1","u","u","b","37"],["7.2","u","u","b","37"],["7.3","u","u","b","37"],["7.4","u","u","b","37"],["7.5","u","u","b","37"],["7.6","u","u","b","37"],["7.7","u","u","b","37"],["7.8","u","u","b","37"],["7.9","u","u","b","37"],["8.0","u","u","b","37"],["8.1","u","u","b","57"],["8.2","u","u","b","57"],["8.3","u","u","b","57"],["8.4","u","u","b","57"],["8.5","u","u","b","57"],["8.6","u","u","b","57"],["8.7","u","u","b","57"],["8.8","u","u","b","57"],["8.9","u","u","b","57"],["9.1","u","u","b","57"],["9.6","u","u","b","66"],["9.7","u","u","b","66"],["9.8","u","u","b","66"],["10.0","u","u","b","66"],["10.1","u","u","b","66"],["10.2","u","u","b","66"],["10.3","u","u","b","66"],["10.4","u","u","b","66"],["10.5","u","u","b","66"],["10.7","2020-09-09","u","b","66"],["10.9","2020-11-22","u","b","77"],["11.0","u","u","b","77"],["11.2","2021-01-30","u","b","77"],["11.3","2021-03-31","u","b","77"],["11.7","2021-11-02","u","b","89"],["11.9","u","u","b","89"],["12.0","2021-11-04","u","b","89"],["12.1","2021-11-05","u","b","89"],["12.2","2021-12-07","u","b","89"],["12.5","2022-04-07","u","b","89"],["12.7","2022-05-21","u","b","89"],["12.8","2022-06-30","u","b","89"],["12.9","2022-07-26","u","b","89"],["13.0","2022-08-15","u","b","89"],["13.1","2022-09-10","u","b","89"],["13.2","2022-10-26","u","b","89"],["13.3","2022-11-09","u","b","89"],["13.4","2023-04-26","u","b","98"],["13.5","2023-02-06","u","b","98"],["13.6","2023-02-09","u","b","98"],["13.7","2023-04-21","u","b","98"],["13.8","2023-04-21","u","b","98"],["14.0","2023-12-12","u","b","98"],["14.1","2023-07-16","u","b","98"],["14.2","2023-10-14","u","b","109"],["14.3","2023-09-13","u","b","109"],["14.4","2023-10-31","u","b","109"],["14.5","2023-11-12","u","b","109"],["14.6","2023-12-24","u","b","109"],["14.7","2024-01-18","u","b","109"],["14.8","2024-03-04","u","b","109"],["14.9","2024-04-09","u","b","109"],["15.0","2024-04-17","u","b","109"],["15.1","2024-05-18","u","b","109"],["15.2","2024-10-24","u","b","109"],["15.3","2024-07-28","u","b","109"],["15.4","2024-09-07","u","b","109"],["15.5","2024-09-24","u","b","109"],["15.6","2024-10-24","u","b","109"],["15.7","2024-12-03","u","b","109"],["15.8","2024-12-11","u","b","109"],["15.9","2025-02-01","u","b","109"],["19.1","2025-07-08","u","b","121"],["19.2","2025-07-15","u","b","121"],["19.3","2025-08-31","u","b","121"],["19.4","2025-09-20","u","b","121"],["19.5","2025-10-23","u","b","121"],["19.6","2025-11-17","u","b","121"],["19.7","2025-12-18","u","b","121"]]},kai_os:{releases:[["1.0","2017-03-01","u","g","37"],["2.0","2017-07-01","u","g","48"],["2.5","2017-07-01","u","g","48"],["3.0","2021-09-01","u","g","84"],["3.1","2022-03-01","u","g","84"],["4.0","2025-05-01","u","g","123"]]},facebook_android:{releases:[["66","u","u","b","48"],["68","u","u","b","48"],["74","u","u","b","50"],["75","u","u","b","50"],["76","u","u","b","50"],["77","u","u","b","50"],["78","u","u","b","50"],["79","u","u","b","50"],["80","u","u","b","51"],["81","u","u","b","51"],["82","u","u","b","51"],["83","u","u","b","51"],["84","u","u","b","51"],["86","u","u","b","51"],["87","u","u","b","52"],["88","u","u","b","52"],["89","u","u","b","52"],["90","u","u","b","52"],["91","u","u","b","52"],["92","u","u","b","52"],["93","u","u","b","52"],["94","u","u","b","52"],["95","u","u","b","53"],["96","u","u","b","53"],["97","u","u","b","53"],["98","u","u","b","53"],["99","u","u","b","53"],["100","u","u","b","54"],["101","u","u","b","54"],["103","u","u","b","54"],["104","u","u","b","54"],["105","u","u","b","54"],["106","u","u","b","55"],["107","u","u","b","55"],["108","u","u","b","55"],["109","u","u","b","55"],["110","u","u","b","55"],["111","u","u","b","55"],["112","u","u","b","56"],["113","u","u","b","56"],["114","u","u","b","56"],["115","u","u","b","56"],["116","u","u","b","56"],["117","u","u","b","57"],["118","u","u","b","57"],["119","u","u","b","57"],["120","u","u","b","57"],["121","u","u","b","57"],["122","u","u","b","58"],["123","u","u","b","58"],["124","u","u","b","58"],["125","u","u","b","58"],["126","u","u","b","58"],["127","u","u","b","58"],["128","u","u","b","58"],["129","u","u","b","58"],["130","u","u","b","59"],["131","u","u","b","59"],["132","u","u","b","59"],["133","u","u","b","59"],["134","u","u","b","59"],["135","u","u","b","59"],["136","u","u","b","59"],["137","u","u","b","59"],["138","u","u","b","60"],["140","u","u","b","60"],["142","u","u","b","61"],["143","u","u","b","61"],["144","u","u","b","61"],["145","u","u","b","61"],["146","u","u","b","61"],["147","u","u","b","61"],["148","u","u","b","61"],["149","u","u","b","62"],["150","u","u","b","62"],["151","u","u","b","62"],["152","u","u","b","62"],["153","u","u","b","63"],["154","u","u","b","63"],["155","u","u","b","63"],["156","u","u","b","63"],["157","u","u","b","64"],["158","u","u","b","64"],["159","u","u","b","64"],["160","u","u","b","64"],["161","u","u","b","64"],["162","u","u","b","64"],["163","u","u","b","65"],["164","u","u","b","65"],["165","u","u","b","65"],["166","u","u","b","65"],["167","u","u","b","65"],["168","u","u","b","65"],["169","u","u","b","66"],["170","u","u","b","66"],["171","u","u","b","66"],["172","u","u","b","66"],["173","u","u","b","66"],["174","u","u","b","66"],["175","u","u","b","67"],["176","u","u","b","67"],["177","u","u","b","67"],["178","u","u","b","67"],["180","u","u","b","67"],["181","u","u","b","67"],["182","u","u","b","67"],["183","u","u","b","68"],["184","u","u","b","68"],["185","u","u","b","68"],["186","u","u","b","68"],["187","u","u","b","68"],["188","u","u","b","68"],["202","u","u","b","71"],["227","u","u","b","75"],["228","u","u","b","75"],["229","u","u","b","75"],["230","u","u","b","75"],["231","u","u","b","75"],["233","u","u","b","76"],["235","u","u","b","76"],["236","u","u","b","76"],["237","u","u","b","76"],["238","u","u","b","76"],["240","u","u","b","77"],["241","u","u","b","77"],["242","u","u","b","77"],["243","u","u","b","77"],["244","u","u","b","78"],["245","u","u","b","78"],["246","u","u","b","78"],["247","u","u","b","78"],["248","u","u","b","78"],["249","u","u","b","78"],["250","u","u","b","78"],["251","u","u","b","79"],["252","u","u","b","79"],["253","u","u","b","79"],["254","u","u","b","79"],["255","u","u","b","79"],["256","u","u","b","80"],["257","u","u","b","80"],["258","u","u","b","80"],["259","u","u","b","80"],["260","u","u","b","80"],["261","u","u","b","80"],["262","u","u","b","80"],["263","u","u","b","80"],["264","u","u","b","80"],["265","u","u","b","80"],["266","u","u","b","81"],["267","u","u","b","81"],["268","u","u","b","81"],["269","u","u","b","81"],["270","u","u","b","81"],["271","u","u","b","81"],["272","u","u","b","83"],["273","u","u","b","83"],["274","u","u","b","83"],["275","u","u","b","83"],["297","2020-12-02","u","b","86"],["348","2021-12-19","u","b","96"],["399","2023-02-04","u","b","109"],["400","2023-02-10","u","b","109"],["420","2023-06-28","u","b","114"],["430","2023-09-03","u","b","116"],["434","2023-10-05","u","b","117"],["436","2023-10-13","u","b","117"],["437","u","u","b","118"],["438","2023-10-28","u","b","118"],["439","2023-11-11","u","b","119"],["440","2023-11-12","u","b","119"],["441","2023-11-20","u","b","119"],["442","2023-11-29","u","b","119"],["443","2023-12-07","u","b","120"],["444","2023-12-13","u","b","120"],["445","2023-12-21","u","b","120"],["446","2024-01-06","u","b","120"],["447","2024-01-12","u","b","120"],["448","2024-01-29","u","b","121"],["449","2024-02-02","u","b","121"],["450","2024-02-05","u","b","121"],["451","2024-02-17","u","b","121"],["452","2024-02-25","u","b","122"],["453","2024-02-28","u","b","122"],["454","2024-03-04","u","b","122"],["465","2024-07-07","u","b","126"],["466","u","u","b","126"],["469","u","u","b","126"],["471","2024-07-10","u","b","126"],["472","2024-07-11","u","b","126"],["474","2024-07-30","u","b","127"],["475","2024-08-01","u","b","127"],["476","2024-08-09","u","b","127"],["477","2024-08-16","u","b","127"],["478","2024-08-21","u","b","128"],["479","2024-08-31","u","b","128"],["480","2024-09-07","u","b","128"],["481","2024-09-14","u","b","128"],["482","2024-09-20","u","b","129"],["483","2024-09-27","u","b","129"],["484","2024-10-04","u","b","129"],["485","2024-10-11","u","b","129"],["486","2024-10-18","u","b","130"],["487","2024-10-26","u","b","130"],["488","2024-11-02","u","b","130"],["489","2024-11-09","u","b","130"],["494","2024-12-26","u","b","131"],["497","2025-01-26","u","b","132"],["503","2025-03-12","u","b","134"],["514","2025-05-28","u","b","136"],["515","2025-05-31","u","b","137"]]},instagram_android:{releases:[["23","u","u","b","62"],["24","u","u","b","62"],["25","u","u","b","62"],["26","u","u","b","63"],["27","u","u","b","63"],["28","u","u","b","63"],["29","u","u","b","63"],["30","u","u","b","63"],["31","u","u","b","64"],["32","u","u","b","64"],["33","u","u","b","64"],["34","u","u","b","64"],["35","u","u","b","65"],["36","u","u","b","65"],["37","u","u","b","65"],["38","u","u","b","65"],["39","u","u","b","65"],["40","u","u","b","65"],["41","u","u","b","65"],["42","u","u","b","66"],["43","u","u","b","66"],["44","u","u","b","66"],["45","u","u","b","66"],["46","u","u","b","66"],["47","u","u","b","66"],["48","u","u","b","67"],["49","u","u","b","67"],["50","u","u","b","67"],["51","u","u","b","67"],["52","u","u","b","67"],["53","u","u","b","67"],["54","u","u","b","67"],["55","u","u","b","67"],["56","u","u","b","68"],["57","u","u","b","68"],["58","u","u","b","68"],["59","u","u","b","68"],["60","u","u","b","68"],["61","u","u","b","68"],["65","u","u","b","69"],["66","u","u","b","69"],["68","u","u","b","69"],["72","u","u","b","70"],["74","u","u","b","71"],["75","u","u","b","71"],["79","u","u","b","71"],["81","u","u","b","72"],["82","u","u","b","72"],["83","u","u","b","72"],["84","u","u","b","73"],["86","u","u","b","73"],["95","u","u","b","74"],["96","u","u","b","80"],["97","u","u","b","80"],["98","u","u","b","80"],["103","u","u","b","80"],["104","u","u","b","80"],["117","u","u","b","80"],["118","u","u","b","80"],["119","u","u","b","80"],["120","u","u","b","80"],["121","u","u","b","80"],["127","u","u","b","80"],["128","u","u","b","80"],["129","u","u","b","80"],["130","u","u","b","80"],["131","u","u","b","80"],["132","u","u","b","80"],["133","u","u","b","80"],["134","u","u","b","80"],["135","u","u","b","80"],["136","u","u","b","80"],["137","u","u","b","81"],["138","u","u","b","81"],["139","u","u","b","81"],["140","u","u","b","81"],["141","u","u","b","81"],["142","u","u","b","81"],["143","u","u","b","83"],["144","u","u","b","83"],["145","u","u","b","83"],["146","u","u","b","83"],["153","u","u","b","84"],["163","u","u","b","92"],["164","u","u","b","92"],["230","u","u","b","92"],["258","2022-11-04","u","b","106"],["259","2022-11-04","u","b","106"],["279","2023-12-31","u","b","109"],["281","u","u","b","109"],["288","u","u","b","114"],["289","2023-12-21","u","b","114"],["290","2023-12-30","u","b","114"],["292","u","u","b","115"],["295","u","u","b","115"],["296","u","u","b","115"],["297","u","u","b","115"],["298","2024-01-11","u","b","115"],["299","u","u","b","115"],["300","u","u","b","116"],["301","2024-01-12","u","b","116"],["302","u","u","b","117"],["303","u","u","b","117"],["304","u","u","b","117"],["305","u","u","b","117"],["306","2024-01-17","u","b","118"],["307","u","u","b","118"],["308","2024-01-19","u","b","118"],["309","u","u","b","119"],["310","u","u","b","119"],["311","u","u","b","120"],["312","u","u","b","120"],["313","u","u","b","120"],["314","u","u","b","120"],["315","2024-01-19","u","b","120"],["316","2024-01-25","u","b","120"],["317","2024-02-03","u","b","121"],["318","2024-02-16","u","b","121"],["320","2024-03-04","u","b","121"],["321","2024-03-07","u","b","122"],["338","2024-07-06","u","b","126"],["346","2024-09-01","u","b","127"],["347","2024-09-11","u","b","127"],["349","2024-09-20","u","b","128"],["355","2024-11-06","u","b","130"],["366","u","u","b","132"],["367","2025-02-15","u","b","132"],["378","2025-05-03","u","b","135"],["381","2025-06-19","u","b","137"],["382","2025-06-19","u","b","137"],["383","2025-06-18","u","b","137"],["384","2025-06-16","u","b","137"],["385","2025-06-27","u","b","137"],["387","2025-07-09","u","b","137"],["390","2025-07-26","u","b","138"],["392","2025-08-12","u","b","138"],["394","2025-08-26","u","b","139"],["395","2025-09-13","u","b","139"],["396","2025-09-20","u","b","139"],["397","2025-09-19","u","b","139"],["399","2025-09-28","u","b","140"],["400","2025-10-06","u","b","141"],["401","2025-10-08","u","b","141"],["404","2025-10-31","u","b","141"],["406","2025-11-16","u","b","141"],["407","2025-11-23","u","b","142"],["408","2025-11-28","u","b","142"],["409","2025-12-16","u","b","143"],["410","2025-12-17","u","b","143"]]}},r=[["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2024-03-19",{c:"116",ca:"116",e:"116",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2025-06-26",{c:"138",ca:"138",e:"138",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"17",ca:"18",e:"12",f:"5",fa:"5",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-16",{c:"123",ca:"123",e:"123",f:"125",fa:"125",s:"17.4",si:"17.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2024-07-09",{c:"77",ca:"77",e:"79",f:"128",fa:"128",s:"17.4",si:"17.4"}],["2016-06-07",{c:"32",ca:"30",e:"12",f:"47",fa:"47",s:"8",si:"8"}],["2023-07-04",{c:"112",ca:"112",e:"112",f:"115",fa:"115",s:"16",si:"16"}],["2015-09-30",{c:"43",ca:"43",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"84",ca:"84",e:"84",f:"80",fa:"80",s:"15.4",si:"15.4"}],["2023-10-24",{c:"103",ca:"103",e:"103",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2023-07-04",{c:"110",ca:"110",e:"110",f:"115",fa:"115",s:"16",si:"16"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"34",fa:"34",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2022-08-23",{c:"97",ca:"97",e:"97",f:"104",fa:"104",s:"15.4",si:"15.4"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"12",si:"12"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2024-01-25",{c:"121",ca:"121",e:"121",f:"115",fa:"115",s:"16.4",si:"16.4"}],["2024-03-05",{c:"117",ca:"117",e:"117",f:"119",fa:"119",s:"17.4",si:"17.4"}],["2016-09-20",{c:"47",ca:"47",e:"14",f:"43",fa:"43",s:"10",si:"10"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2018-05-09",{c:"66",ca:"66",e:"14",f:"60",fa:"60",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2021-09-20",{c:"88",ca:"88",e:"88",f:"89",fa:"89",s:"15",si:"15"}],["2017-04-05",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2024-06-11",{c:"76",ca:"76",e:"79",f:"127",fa:"127",s:"13.1",si:"13.4"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2025-04-01",{c:"133",ca:"133",e:"133",f:"137",fa:"137",s:"18.4",si:"18.4"}],["2025-11-11",{c:"90",ca:"90",e:"90",f:"145",fa:"145",s:"16.4",si:"16.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2021-04-26",{c:"66",ca:"66",e:"79",f:"76",fa:"79",s:"14.1",si:"14.5"}],["2023-02-09",{c:"110",ca:"110",e:"110",f:"86",fa:"86",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10.1",si:"10.3"}],["2024-01-26",{c:"85",ca:"85",e:"121",f:"93",fa:"93",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"47",fa:"47",s:"15.4",si:"15.4"}],["2024-09-16",{c:"76",ca:"76",e:"79",f:"103",fa:"103",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2022-03-14",{c:"1",ca:"18",e:"12",f:"25",fa:"25",s:"15.4",si:"15.4"}],["2020-01-15",{c:"35",ca:"59",e:"79",f:"30",fa:"54",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"4"}],["2015-07-29",{c:"25",ca:"25",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"49",fa:"49",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"9",fa:"18",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"4",fa:"4",s:"10",si:"10"}],["2020-01-15",{c:"16",ca:"18",e:"79",f:"10",fa:"10",s:"6",si:"6"}],["2015-07-29",{c:"≤15",ca:"18",e:"12",f:"10",fa:"10",s:"≤4",si:"≤3.2"}],["2018-04-12",{c:"39",ca:"42",e:"14",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2020-09-16",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"14",si:"14"}],["2021-09-20",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2017-02-01",{c:"56",ca:"56",e:"12",f:"50",fa:"50",s:"9.1",si:"9.3"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"14",s:"1",si:"3"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2022-03-14",{c:"54",ca:"54",e:"79",f:"38",fa:"38",s:"15.4",si:"15.4"}],["2017-09-19",{c:"50",ca:"51",e:"15",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"26",ca:"28",e:"12",f:"16",fa:"16",s:"7",si:"7"}],["2023-06-06",{c:"110",ca:"110",e:"110",f:"114",fa:"114",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2024-09-16",{c:"99",ca:"99",e:"99",f:"28",fa:"28",s:"18",si:"18"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"99",ca:"99",e:"99",f:"113",fa:"113",s:"17.2",si:"17.2"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"118",ca:"118",e:"118",f:"97",fa:"97",s:"17.2",si:"17.2"}],["2020-01-15",{c:"51",ca:"51",e:"79",f:"43",fa:"43",s:"11",si:"11"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"53",fa:"53",s:"11.1",si:"11.3"}],["2022-03-14",{c:"99",ca:"99",e:"99",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2020-01-15",{c:"49",ca:"49",e:"79",f:"47",fa:"47",s:"9",si:"9"}],["2015-07-29",{c:"27",ca:"27",e:"12",f:"1",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2015-09-22",{c:"4",ca:"18",e:"12",f:"41",fa:"41",s:"5",si:"4.2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"4"}],["2024-03-05",{c:"105",ca:"105",e:"105",f:"106",fa:"106",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2016-03-08",{c:"42",ca:"42",e:"13",f:"45",fa:"45",s:"9",si:"9"}],["2023-09-18",{c:"117",ca:"117",e:"117",f:"63",fa:"63",s:"17",si:"17"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"71",fa:"79",s:"13.1",si:"13"}],["2020-01-15",{c:"55",ca:"55",e:"79",f:"49",fa:"49",s:"12.1",si:"12.2"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"54",fa:"54",s:"13.1",si:"13.4"}],["2017-03-27",{c:"41",ca:"41",e:"12",f:"22",fa:"22",s:"10.1",si:"10.3"}],["2025-03-31",{c:"121",ca:"121",e:"121",f:"127",fa:"127",s:"18.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2023-02-14",{c:"58",ca:"58",e:"79",f:"110",fa:"110",s:"10",si:"10"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"16.2",si:"16.2"}],["2022-02-03",{c:"98",ca:"98",e:"98",f:"96",fa:"96",s:"13",si:"13"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2020-07-28",{c:"50",ca:"50",e:"12",f:"71",fa:"79",s:"9",si:"9"}],["2025-08-19",{c:"137",ca:"137",e:"137",f:"142",fa:"142",s:"17",si:"17"}],["2017-04-19",{c:"26",ca:"26",e:"12",f:"53",fa:"53",s:"7",si:"7"}],["2023-05-09",{c:"80",ca:"80",e:"80",f:"113",fa:"113",s:"16.4",si:"16.4"}],["2020-11-17",{c:"69",ca:"69",e:"79",f:"83",fa:"83",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"3",si:"1"}],["2018-12-11",{c:"40",ca:"40",e:"18",f:"51",fa:"64",s:"10.1",si:"10.3"}],["2023-03-27",{c:"73",ca:"73",e:"79",f:"101",fa:"101",s:"16.4",si:"16.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-09-12",{c:"105",ca:"105",e:"105",f:"101",fa:"101",s:"16",si:"16"}],["2023-09-18",{c:"83",ca:"83",e:"83",f:"107",fa:"107",s:"17",si:"17"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-07-26",{c:"52",ca:"52",e:"79",f:"103",fa:"103",s:"15.4",si:"15.4"}],["2023-02-14",{c:"105",ca:"105",e:"105",f:"110",fa:"110",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-15",{c:"108",ca:"108",e:"108",f:"130",fa:"130",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"≤4",si:"≤3.2"}],["2025-03-04",{c:"51",ca:"51",e:"12",f:"136",fa:"136",s:"5.1",si:"5"}],["2024-09-16",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2023-12-11",{c:"85",ca:"85",e:"85",f:"68",fa:"68",s:"17.2",si:"17.2"}],["2023-09-18",{c:"91",ca:"91",e:"91",f:"33",fa:"33",s:"17",si:"17"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"25",s:"3",si:"1"}],["2023-12-11",{c:"59",ca:"59",e:"79",f:"98",fa:"98",s:"17.2",si:"17.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"60",fa:"60",s:"13",si:"13"}],["2016-08-02",{c:"25",ca:"25",e:"14",f:"23",fa:"23",s:"7",si:"7"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"31",fa:"31",s:"10.1",si:"10.3"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"55",fa:"55",s:"11",si:"11"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2017-04-05",{c:"49",ca:"49",e:"15",f:"31",fa:"31",s:"9.1",si:"9.3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"≤4",ca:"18",e:"12",f:"≤2",fa:"4",s:"≤3.1",si:"≤2"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-02-20",{c:"111",ca:"111",e:"111",f:"123",fa:"123",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"10",ca:"18",e:"79",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2020-01-15",{c:"12",ca:"18",e:"79",f:"49",fa:"49",s:"6",si:"6"}],["2025-09-16",{c:"131",ca:"131",e:"131",f:"143",fa:"143",s:"18.4",si:"18.4"}],["2024-09-03",{c:"120",ca:"120",e:"120",f:"130",fa:"130",s:"17.2",si:"17.2"}],["2023-09-18",{c:"31",ca:"31",e:"12",f:"6",fa:"6",s:"17",si:"4.2"}],["2015-07-29",{c:"15",ca:"18",e:"12",f:"1",fa:"4",s:"6",si:"6"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"98",fa:"98",s:"15.4",si:"15.4"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"49",fa:"49",s:"16.4",si:"16.4"}],["2023-08-01",{c:"17",ca:"18",e:"79",f:"116",fa:"116",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"53",fa:"53",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["≤2017-04-05",{c:"1",ca:"18",e:"≤15",f:"3",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"128",ca:"128",e:"128",f:"20",fa:"20",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"33",fa:"33",s:"11",si:"11"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"4",si:"3.2"}],["2016-03-21",{c:"31",ca:"31",e:"12",f:"12",fa:"14",s:"9.1",si:"9.3"}],["2019-09-19",{c:"14",ca:"18",e:"18",f:"20",fa:"20",s:"10.1",si:"13"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2022-05-03",{c:"98",ca:"98",e:"98",f:"100",fa:"100",s:"13.1",si:"13.4"}],["2020-01-15",{c:"43",ca:"43",e:"79",f:"46",fa:"46",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1.5",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2019-03-25",{c:"42",ca:"42",e:"13",f:"38",fa:"38",s:"12.1",si:"12.2"}],["2021-11-02",{c:"77",ca:"77",e:"79",f:"94",fa:"94",s:"13.1",si:"13.4"}],["2021-09-20",{c:"93",ca:"93",e:"93",f:"91",fa:"91",s:"15",si:"15"}],["2025-12-12",{c:"76",ca:"76",e:"79",f:"89",fa:"89",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2017-03-27",{c:"52",ca:"52",e:"14",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2018-04-30",{c:"38",ca:"38",e:"17",f:"47",fa:"35",s:"9",si:"9"}],["2021-09-20",{c:"56",ca:"56",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2020-09-16",{c:"63",ca:"63",e:"17",f:"47",fa:"36",s:"14",si:"14"}],["2020-02-07",{c:"40",ca:"40",e:"80",f:"58",fa:"28",s:"9",si:"9"}],["2016-06-07",{c:"34",ca:"34",e:"12",f:"47",fa:"47",s:"9.1",si:"9.3"}],["2017-03-27",{c:"42",ca:"42",e:"14",f:"39",fa:"39",s:"10.1",si:"10.3"}],["2024-10-29",{c:"103",ca:"103",e:"103",f:"132",fa:"132",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"8",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"28",fa:"28",s:"10.1",si:"10.3"}],["2021-04-26",{c:"89",ca:"89",e:"89",f:"82",fa:"82",s:"14.1",si:"14.5"}],["2016-09-07",{c:"53",ca:"53",e:"12",f:"35",fa:"35",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-11-02",{c:"46",ca:"46",e:"79",f:"94",fa:"94",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"29",ca:"29",e:"12",f:"20",fa:"20",s:"9",si:"9"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"63",fa:"63",s:"14.1",si:"14.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-04-04",{c:"135",ca:"135",e:"135",f:"129",fa:"129",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"24",fa:"24",s:"3.1",si:"2"}],["2022-03-14",{c:"86",ca:"86",e:"86",f:"85",fa:"85",s:"15.4",si:"15.4"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2016-09-20",{c:"36",ca:"36",e:"14",f:"39",fa:"39",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-09-07",{c:"56",ca:"56",e:"79",f:"92",fa:"92",s:"11",si:"11"}],["2017-04-05",{c:"48",ca:"48",e:"15",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"33",ca:"33",e:"79",f:"32",fa:"32",s:"9",si:"9"}],["2020-01-15",{c:"35",ca:"35",e:"79",f:"41",fa:"41",s:"10",si:"10"}],["2020-03-24",{c:"79",ca:"79",e:"17",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2022-11-15",{c:"101",ca:"101",e:"101",f:"107",fa:"107",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-07-25",{c:"127",ca:"127",e:"127",f:"118",fa:"118",s:"17",si:"17"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-01-06",{c:"97",ca:"97",e:"97",f:"34",fa:"34",s:"9",si:"9"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"34",ca:"34",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2018-09-05",{c:"62",ca:"62",e:"17",f:"62",fa:"62",s:"11",si:"11"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"89",ca:"89",e:"79",f:"89",fa:"89",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-03-27",{c:"77",ca:"77",e:"79",f:"98",fa:"98",s:"16.4",si:"16.4"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"35",ca:"35",e:"12",f:"29",fa:"32",s:"10.1",si:"10.3"}],["2016-09-20",{c:"39",ca:"39",e:"13",f:"26",fa:"26",s:"10",si:"10"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3.5",fa:"4",s:"5",si:"≤3"}],["2015-07-29",{c:"11",ca:"18",e:"12",f:"3.5",fa:"4",s:"5.1",si:"5"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2020-01-15",{c:"71",ca:"71",e:"79",f:"65",fa:"65",s:"12.1",si:"12.2"}],["2024-06-11",{c:"111",ca:"111",e:"111",f:"127",fa:"127",s:"16.2",si:"16.2"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"3.6",fa:"4",s:"7",si:"7"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2022-10-27",{c:"107",ca:"107",e:"107",f:"66",fa:"66",s:"16",si:"16"}],["2022-03-14",{c:"37",ca:"37",e:"15",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2023-12-19",{c:"105",ca:"105",e:"105",f:"121",fa:"121",s:"15.4",si:"15.4"}],["2020-03-24",{c:"74",ca:"74",e:"79",f:"67",fa:"67",s:"13.1",si:"13.4"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"11",fa:"14",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2024-09-16",{c:"87",ca:"87",e:"87",f:"88",fa:"88",s:"18",si:"18"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"96",fa:"96",s:"15",si:"15"}],["2023-09-18",{c:"106",ca:"106",e:"106",f:"98",fa:"98",s:"17",si:"17"}],["2023-09-18",{c:"88",ca:"55",e:"88",f:"43",fa:"43",s:"17",si:"17"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-10-03",{c:"106",ca:"106",e:"106",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"17",fa:"17",s:"5",si:"4"}],["2020-01-15",{c:"20",ca:"25",e:"79",f:"25",fa:"25",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-04-13",{c:"81",ca:"81",e:"81",f:"26",fa:"26",s:"13.1",si:"13.4"}],["2021-10-05",{c:"41",ca:"41",e:"79",f:"93",fa:"93",s:"10",si:"10"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"89",fa:"89",s:"17",si:"17"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"50",fa:"50",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"89",ca:"89",e:"89",f:"108",fa:"108",s:"16.4",si:"16.4"}],["2020-01-15",{c:"39",ca:"39",e:"79",f:"51",fa:"51",s:"10",si:"10"}],["2021-09-20",{c:"58",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2022-08-05",{c:"104",ca:"104",e:"104",f:"72",fa:"79",s:"14.1",si:"14.5"}],["2023-04-11",{c:"102",ca:"102",e:"102",f:"112",fa:"112",s:"15.5",si:"15.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-11-12",{c:"1",ca:"18",e:"13",f:"19",fa:"19",s:"1.2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"3",si:"1"}],["2021-04-26",{c:"20",ca:"25",e:"12",f:"57",fa:"57",s:"14.1",si:"5"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"3"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"6",fa:"6",s:"3.1",si:"2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2025-08-19",{c:"13",ca:"132",e:"13",f:"50",fa:"142",s:"11.1",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-16",{c:"4",ca:"57",e:"12",f:"23",fa:"52",s:"3.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-12-07",{c:"66",ca:"66",e:"79",f:"95",fa:"79",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2018-12-11",{c:"41",ca:"41",e:"12",f:"64",fa:"64",s:"9",si:"9"}],["2019-03-25",{c:"58",ca:"58",e:"16",f:"55",fa:"55",s:"12.1",si:"12.2"}],["2017-09-28",{c:"24",ca:"25",e:"12",f:"29",fa:"56",s:"10",si:"10"}],["2021-04-26",{c:"81",ca:"81",e:"81",f:"86",fa:"86",s:"14.1",si:"14.5"}],["2025-03-04",{c:"129",ca:"129",e:"129",f:"136",fa:"136",s:"16.4",si:"16.4"}],["2021-04-26",{c:"72",ca:"72",e:"79",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2020-09-16",{c:"74",ca:"74",e:"79",f:"75",fa:"79",s:"14",si:"14"}],["2019-09-19",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"13",si:"13"}],["2020-09-16",{c:"71",ca:"71",e:"79",f:"76",fa:"79",s:"14",si:"14"}],["2024-04-16",{c:"87",ca:"87",e:"87",f:"125",fa:"125",s:"14.1",si:"14.5"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2018-04-12",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"11.1",si:"11.3"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"36",fa:"36",s:"8",si:"8"}],["2025-03-31",{c:"122",ca:"122",e:"122",f:"131",fa:"131",s:"18.4",si:"18.4"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"1",fa:"4",s:"5",si:"4.2"}],["2018-05-09",{c:"61",ca:"61",e:"16",f:"60",fa:"60",s:"11",si:"11"}],["2023-06-06",{c:"80",ca:"80",e:"80",f:"114",fa:"114",s:"15",si:"15"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"4"}],["2025-04-29",{c:"123",ca:"123",e:"123",f:"138",fa:"138",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"6",fa:"6",s:"1.2",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"77",ca:"77",e:"79",f:"122",fa:"122",s:"26.2",si:"26.2"}],["2020-01-15",{c:"48",ca:"48",e:"79",f:"50",fa:"50",s:"11",si:"11"}],["2016-09-20",{c:"49",ca:"49",e:"14",f:"44",fa:"44",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-11-21",{c:"109",ca:"109",e:"109",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2024-05-13",{c:"123",ca:"123",e:"123",f:"120",fa:"120",s:"17.5",si:"17.5"}],["2020-07-28",{c:"83",ca:"83",e:"83",f:"69",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"113",ca:"113",e:"113",f:"112",fa:"112",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-09-15",{c:"46",ca:"46",e:"79",f:"127",fa:"127",s:"5",si:"26"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"39",fa:"39",s:"11.1",si:"11.3"}],["2021-01-26",{c:"50",ca:"50",e:"79",f:"85",fa:"85",s:"11.1",si:"11.3"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"50",fa:"50",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-19",{c:"77",ca:"77",e:"79",f:"121",fa:"121",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"6",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2021-09-20",{c:"89",ca:"89",e:"89",f:"66",fa:"66",s:"15",si:"15"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"21",fa:"21",s:"7",si:"7"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"24",ca:"25",e:"79",f:"35",fa:"35",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"53",fa:"53",s:"15.4",si:"15.4"}],["2015-07-29",{c:"9",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2023-01-12",{c:"109",ca:"109",e:"109",f:"4",fa:"4",s:"5.1",si:"5"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"63",fa:"63",s:"15.4",si:"15.4"}],["2017-09-19",{c:"53",ca:"53",e:"12",f:"36",fa:"36",s:"11",si:"11"}],["2020-02-04",{c:"80",ca:"80",e:"12",f:"42",fa:"42",s:"8",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"104",ca:"104",e:"104",f:"102",fa:"102",s:"16.4",si:"16.4"}],["2021-04-26",{c:"49",ca:"49",e:"79",f:"25",fa:"25",s:"14.1",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"60",ca:"60",e:"18",f:"57",fa:"57",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-10-02",{c:"6",ca:"18",e:"18",f:"56",fa:"56",s:"6",si:"10.3"}],["2020-07-28",{c:"79",ca:"79",e:"79",f:"75",fa:"79",s:"13.1",si:"13.4"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"66",fa:"66",s:"11",si:"11"}],["2015-07-29",{c:"18",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"32",fa:"32",s:"8",si:"8"}],["2020-01-15",{c:"≤79",ca:"≤79",e:"79",f:"≤23",fa:"≤23",s:"≤9.1",si:"≤9.3"}],["2022-09-02",{c:"105",ca:"105",e:"105",f:"103",fa:"103",s:"15.6",si:"15.6"}],["2023-09-18",{c:"66",ca:"66",e:"79",f:"115",fa:"115",s:"17",si:"17"}],["2022-09-12",{c:"55",ca:"55",e:"79",f:"72",fa:"79",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"14",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2021-10-25",{c:"57",ca:"57",e:"12",f:"58",fa:"58",s:"15",si:"15.1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"120",ca:"120",e:"120",f:"117",fa:"117",s:"17.2",si:"17.2"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"84",fa:"84",s:"9",si:"9"}],["2023-03-27",{c:"20",ca:"42",e:"14",f:"22",fa:"22",s:"7",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"9",si:"9"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-07-28",{c:"75",ca:"75",e:"79",f:"70",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2022-03-14",{c:"93",ca:"93",e:"93",f:"92",fa:"92",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2021-04-26",{c:"80",ca:"80",e:"80",f:"71",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"10",fa:"10",s:"8",si:"8"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-07-29",{c:"29",ca:"29",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2016-08-02",{c:"27",ca:"27",e:"14",f:"29",fa:"29",s:"8",si:"8"}],["2018-04-30",{c:"24",ca:"25",e:"17",f:"25",fa:"25",s:"8",si:"9"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"105",fa:"105",s:"16.4",si:"16.4"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["≤2020-03-24",{c:"≤80",ca:"≤80",e:"≤80",f:"1.5",fa:"4",s:"≤13.1",si:"≤13.4"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2023-03-27",{c:"108",ca:"109",e:"108",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"88",fa:"88",s:"16.4",si:"16.4"}],["2017-04-05",{c:"1",ca:"18",e:"15",f:"1.5",fa:"4",s:"1.2",si:"1"}],["≤2018-10-02",{c:"10",ca:"18",e:"≤18",f:"4",fa:"4",s:"7",si:"7"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"66",fa:"66",s:"17",si:"17"}],["2022-09-12",{c:"90",ca:"90",e:"90",f:"81",fa:"81",s:"16",si:"16"}],["2020-03-24",{c:"68",ca:"68",e:"79",f:"61",fa:"61",s:"13.1",si:"13.4"}],["2018-10-02",{c:"23",ca:"25",e:"18",f:"49",fa:"49",s:"7",si:"7"}],["2022-09-12",{c:"63",ca:"63",e:"18",f:"59",fa:"59",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2019-01-29",{c:"50",ca:"50",e:"12",f:"65",fa:"65",s:"10",si:"10"}],["2024-12-11",{c:"15",ca:"18",e:"79",f:"95",fa:"95",s:"18.2",si:"18.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"1.5",fa:"4",s:"5",si:"4"}],["2015-07-29",{c:"33",ca:"33",e:"12",f:"18",fa:"18",s:"7",si:"7"}],["2021-04-26",{c:"60",ca:"60",e:"79",f:"84",fa:"84",s:"14.1",si:"14.5"}],["2025-09-15",{c:"124",ca:"124",e:"124",f:"128",fa:"128",s:"26",si:"26"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2015-09-16",{c:"6",ca:"18",e:"12",f:"7",fa:"7",s:"8",si:"9"}],["2022-09-12",{c:"44",ca:"44",e:"79",f:"46",fa:"46",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2016-03-21",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"9.1",si:"9.3"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"51",fa:"51",s:"10.1",si:"10.3"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"51",fa:"51",s:"9",si:"9"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2020-07-28",{c:"55",ca:"55",e:"12",f:"59",fa:"79",s:"13",si:"13"}],["2025-01-27",{c:"116",ca:"116",e:"116",f:"125",fa:"125",s:"17",si:"18.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"76",ca:"76",e:"79",f:"67",fa:"67",s:"12.1",si:"13"}],["2022-05-31",{c:"96",ca:"96",e:"96",f:"101",fa:"101",s:"14.1",si:"14.5"}],["2020-01-15",{c:"74",ca:"74",e:"79",f:"63",fa:"64",s:"10.1",si:"10.3"}],["2023-12-11",{c:"73",ca:"73",e:"79",f:"78",fa:"79",s:"17.2",si:"17.2"}],["2023-12-11",{c:"86",ca:"86",e:"86",f:"101",fa:"101",s:"17.2",si:"17.2"}],["2023-06-06",{c:"1",ca:"18",e:"12",f:"1",fa:"114",s:"1.1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2019-09-19",{c:"63",ca:"63",e:"12",f:"6",fa:"6",s:"13",si:"13"}],["2015-07-29",{c:"6",ca:"18",e:"12",f:"6",fa:"6",s:"6",si:"7"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"29",fa:"29",s:"8",si:"8"}],["2020-07-28",{c:"76",ca:"76",e:"79",f:"71",fa:"79",s:"13",si:"13"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2018-10-02",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2025-01-07",{c:"128",ca:"128",e:"128",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-03-05",{c:"119",ca:"119",e:"119",f:"121",fa:"121",s:"17.4",si:"17.4"}],["2016-09-20",{c:"49",ca:"49",e:"12",f:"18",fa:"18",s:"10",si:"10"}],["2023-03-27",{c:"50",ca:"50",e:"17",f:"44",fa:"48",s:"16",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-03-24",{c:"63",ca:"63",e:"79",f:"49",fa:"49",s:"13.1",si:"13.4"}],["2020-07-28",{c:"71",ca:"71",e:"79",f:"69",fa:"79",s:"12.1",si:"12.2"}],["2021-04-26",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"14.1",si:"14.5"}],["2020-07-28",{c:"1",ca:"18",e:"13",f:"78",fa:"79",s:"4",si:"3.2"}],["2024-01-23",{c:"119",ca:"119",e:"119",f:"122",fa:"122",s:"17.2",si:"17.2"}],["2021-09-20",{c:"85",ca:"85",e:"85",f:"87",fa:"87",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-07-09",{c:"85",ca:"85",e:"85",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.6",fa:"4",s:"5",si:"4"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"23",fa:"23",s:"7",si:"7"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2024-10-29",{c:"83",ca:"83",e:"83",f:"132",fa:"132",s:"15.4",si:"15.4"}],["2025-05-27",{c:"134",ca:"134",e:"134",f:"139",fa:"139",s:"18.4",si:"18.4"}],["2024-07-09",{c:"111",ca:"111",e:"111",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2020-07-28",{c:"64",ca:"64",e:"79",f:"69",fa:"79",s:"13.1",si:"13.4"}],["2022-09-12",{c:"68",ca:"68",e:"79",f:"62",fa:"62",s:"16",si:"16"}],["2018-10-23",{c:"1",ca:"18",e:"12",f:"63",fa:"63",s:"3",si:"1"}],["2023-03-27",{c:"54",ca:"54",e:"17",f:"45",fa:"45",s:"16.4",si:"16.4"}],["2017-09-19",{c:"29",ca:"29",e:"12",f:"35",fa:"35",s:"11",si:"11"}],["2020-07-27",{c:"84",ca:"84",e:"84",f:"67",fa:"67",s:"9.1",si:"9.3"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2023-11-21",{c:"111",ca:"111",e:"111",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"118",fa:"118",s:"17.2",si:"17.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"38",fa:"38",s:"5",si:"4.2"}],["2024-12-11",{c:"128",ca:"128",e:"128",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2024-12-11",{c:"84",ca:"84",e:"84",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-12-09",{c:"118",ca:"118",e:"118",f:"146",fa:"146",s:"17.4",si:"17.4"}],["2020-01-15",{c:"27",ca:"27",e:"79",f:"32",fa:"32",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"38",ca:"39",e:"79",f:"43",fa:"43",s:"16.4",si:"16.4"}],["2025-03-31",{c:"84",ca:"84",e:"84",f:"126",fa:"126",s:"16.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"113",fa:"113",s:"17",si:"17"}],["2022-03-14",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"15.4",si:"15.4"}],["2020-09-16",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"14",si:"14"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"68",fa:"68",s:"11",si:"11"}],["2024-10-01",{c:"80",ca:"80",e:"80",f:"131",fa:"131",s:"16.1",si:"16.1"}],["2025-12-12",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"26.2",si:"26.2"}],["2024-12-11",{c:"94",ca:"94",e:"94",f:"97",fa:"97",s:"18.2",si:"18.2"}],["2024-12-11",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"18.2",si:"18.2"}],["2025-12-12",{c:"114",ca:"114",e:"114",f:"109",fa:"109",s:"26.2",si:"26.2"}],["2023-10-13",{c:"118",ca:"118",e:"118",f:"118",fa:"118",s:"17",si:"17"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"11",ca:"18",e:"12",f:"52",fa:"52",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"6",ca:"18",e:"79",f:"6",fa:"45",s:"5",si:"5"}],["2023-03-27",{c:"65",ca:"65",e:"79",f:"61",fa:"61",s:"16.4",si:"16.4"}],["2018-04-30",{c:"45",ca:"45",e:"17",f:"44",fa:"44",s:"11.1",si:"11.3"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2024-06-11",{c:"122",ca:"122",e:"122",f:"127",fa:"127",s:"17",si:"17"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2020-07-28",{c:"73",ca:"73",e:"79",f:"72",fa:"79",s:"13.1",si:"13.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"62",fa:"62",s:"10.1",si:"10.3"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"54",fa:"54",s:"10.1",si:"10.3"}],["2021-12-13",{c:"68",ca:"89",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2023-03-27",{c:"92",ca:"92",e:"92",f:"92",fa:"92",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"19",ca:"25",e:"79",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-01-15",{c:"18",ca:"18",e:"79",f:"55",fa:"55",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-09-05",{c:"33",ca:"33",e:"14",f:"49",fa:"62",s:"7",si:"7"}],["2017-11-28",{c:"9",ca:"47",e:"12",f:"2",fa:"57",s:"5.1",si:"5"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2017-03-27",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"10.1",si:"10.3"}],["2020-01-15",{c:"70",ca:"70",e:"79",f:"3",fa:"4",s:"10.1",si:"10.3"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.5",si:"17.5"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"126",fa:"126",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"77",ca:"77",e:"79",f:"65",fa:"65",s:"14",si:"14"}],["2019-09-19",{c:"56",ca:"56",e:"16",f:"59",fa:"59",s:"13",si:"13"}],["2023-12-05",{c:"119",ca:"120",e:"85",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2023-09-18",{c:"61",ca:"61",e:"79",f:"57",fa:"57",s:"17",si:"17"}],["2022-06-28",{c:"67",ca:"67",e:"79",f:"102",fa:"102",s:"14.1",si:"14.5"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"29",fa:"29",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2020-01-15",{c:"73",ca:"73",e:"79",f:"67",fa:"67",s:"13",si:"13"}],["2016-09-20",{c:"34",ca:"34",e:"12",f:"31",fa:"31",s:"10",si:"10"}],["2017-04-05",{c:"57",ca:"57",e:"15",f:"48",fa:"48",s:"10",si:"10"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"24",fa:"24",s:"9",si:"9"}],["2020-08-27",{c:"85",ca:"85",e:"85",f:"77",fa:"79",s:"13.1",si:"13.4"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"17",fa:"17",s:"9",si:"9"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"61",fa:"61",s:"12",si:"12"}],["2023-10-24",{c:"111",ca:"111",e:"111",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2022-03-14",{c:"98",ca:"98",e:"98",f:"94",fa:"94",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2023-09-15",{c:"117",ca:"117",e:"117",f:"71",fa:"79",s:"16",si:"16"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2016-09-20",{c:"2",ca:"18",e:"12",f:"49",fa:"49",s:"4",si:"3.2"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"3",fa:"4",s:"3",si:"2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3",fa:"4",s:"6",si:"6"}],["2015-09-30",{c:"38",ca:"38",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-08-10",{c:"42",ca:"42",e:"79",f:"91",fa:"91",s:"13.1",si:"13.4"}],["2018-10-02",{c:"1",ca:"18",e:"18",f:"1.5",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"2"}],["2024-12-11",{c:"89",ca:"89",e:"89",f:"131",fa:"131",s:"18.2",si:"18.2"}],["2015-11-12",{c:"26",ca:"26",e:"13",f:"22",fa:"22",s:"8",si:"8"}],["2020-01-15",{c:"62",ca:"62",e:"79",f:"53",fa:"53",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"47",ca:"47",e:"12",f:"49",fa:"49",s:"16",si:"16"}],["2022-03-14",{c:"48",ca:"48",e:"79",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-03",{c:"99",ca:"99",e:"99",f:"46",fa:"46",s:"7",si:"7"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"19",fa:"19",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"48",ca:"48",e:"79",f:"41",fa:"41",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"7",fa:"7",s:"1.3",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.5",fa:"4",s:"1.1",si:"1"}],["2017-04-05",{c:"4",ca:"18",e:"15",f:"49",fa:"49",s:"3",si:"2"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-11-19",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"12.1",si:"12.2"}],["2020-07-28",{c:"33",ca:"33",e:"12",f:"74",fa:"79",s:"12.1",si:"12.2"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-05-13",{c:"114",ca:"114",e:"114",f:"121",fa:"121",s:"17.5",si:"17.5"}],["2024-10-17",{c:"130",ca:"130",e:"130",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-10-17",{c:"130",ca:"130",e:"130",f:"121",fa:"121",s:"17.5",si:"17.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2019-09-19",{c:"36",ca:"36",e:"12",f:"52",fa:"52",s:"13",si:"9.3"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"122",fa:"122",s:"17.4",si:"17.4"}],["2024-04-16",{c:"118",ca:"118",e:"118",f:"125",fa:"125",s:"13.1",si:"13.4"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"15.4",si:"15.4"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.4",si:"17.4"}],["2015-09-30",{c:"26",ca:"26",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2023-03-14",{c:"19",ca:"25",e:"79",f:"111",fa:"111",s:"6",si:"6"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"108",fa:"108",s:"15.4",si:"15.4"}],["2023-07-21",{c:"115",ca:"115",e:"115",f:"70",fa:"79",s:"15",si:"15"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-05",{c:"140",ca:"140",e:"140",f:"133",fa:"133",s:"18.2",si:"18.2"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2016-03-21",{c:"41",ca:"41",e:"13",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"102",fa:"102",s:"17",si:"17"}],["2018-04-30",{c:"44",ca:"44",e:"17",f:"48",fa:"48",s:"10.1",si:"10.3"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"19",fa:"19",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"115",fa:"115",s:"17",si:"17"}],["2025-09-15",{c:"95",ca:"95",e:"95",f:"142",fa:"142",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["2023-11-21",{c:"72",ca:"72",e:"79",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"88",fa:"88",s:"16.5",si:"16.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-18",{c:"124",ca:"124",e:"124",f:"120",fa:"120",s:"17.4",si:"17.4"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2025-10-14",{c:"125",ca:"125",e:"125",f:"144",fa:"144",s:"18.2",si:"18.2"}],["2025-10-14",{c:"111",ca:"111",e:"111",f:"144",fa:"144",s:"18",si:"18"}],["2022-12-05",{c:"108",ca:"108",e:"108",f:"101",fa:"101",s:"15.4",si:"15.4"}],["2017-10-17",{c:"26",ca:"26",e:"16",f:"19",fa:"19",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2021-08-10",{c:"61",ca:"61",e:"79",f:"91",fa:"68",s:"13",si:"13"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"11",si:"11"}],["2021-04-26",{c:"85",ca:"85",e:"85",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2021-10-25",{c:"75",ca:"75",e:"79",f:"78",fa:"79",s:"15.1",si:"15.1"}],["2022-05-03",{c:"95",ca:"95",e:"95",f:"100",fa:"100",s:"15.2",si:"15.2"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"112",fa:"112",s:"17.4",si:"17.4"}],["2024-12-11",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18.2",si:"18.2"}],["2020-10-20",{c:"86",ca:"86",e:"86",f:"78",fa:"79",s:"13.1",si:"13.4"}],["2020-03-24",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2021-10-25",{c:"75",ca:"75",e:"18",f:"64",fa:"64",s:"15.1",si:"15.1"}],["2021-11-19",{c:"96",ca:"96",e:"96",f:"79",fa:"79",s:"15.1",si:"15.1"}],["2021-04-26",{c:"69",ca:"69",e:"18",f:"62",fa:"62",s:"14.1",si:"14.5"}],["2023-03-27",{c:"91",ca:"91",e:"91",f:"89",fa:"89",s:"16.4",si:"16.4"}],["2024-12-11",{c:"112",ca:"112",e:"112",f:"121",fa:"121",s:"18.2",si:"18.2"}],["2021-12-13",{c:"74",ca:"88",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2024-09-16",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"79",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"36",ca:"36",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2020-09-16",{c:"84",ca:"84",e:"84",f:"75",fa:"79",s:"14",si:"14"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2015-07-29",{c:"37",ca:"37",e:"12",f:"34",fa:"34",s:"11",si:"11"}],["2022-03-14",{c:"69",ca:"69",e:"79",f:"96",fa:"96",s:"15.4",si:"15.4"}],["2021-09-07",{c:"67",ca:"70",e:"18",f:"60",fa:"92",s:"13",si:"13"}],["2023-10-24",{c:"85",ca:"85",e:"85",f:"119",fa:"119",s:"16",si:"16"}],["2015-07-29",{c:"9",ca:"25",e:"12",f:"4",fa:"4",s:"5.1",si:"8"}],["2021-09-20",{c:"63",ca:"63",e:"17",f:"30",fa:"30",s:"14",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"53",fa:"53",s:"12",si:"12"}],["2017-04-19",{c:"33",ca:"33",e:"12",f:"53",fa:"53",s:"9.1",si:"9.3"}],["2020-09-16",{c:"47",ca:"47",e:"79",f:"56",fa:"56",s:"14",si:"14"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"22",fa:"22",s:"8",si:"8"}],["2018-04-30",{c:"26",ca:"26",e:"17",f:"22",fa:"22",s:"8",si:"8"}],["2022-12-13",{c:"100",ca:"100",e:"100",f:"108",fa:"108",s:"16",si:"16"}],["2021-09-20",{c:"56",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-09-16",{c:"9",ca:"18",e:"18",f:"65",fa:"65",s:"14",si:"14"}],["2020-01-15",{c:"56",ca:"56",e:"79",f:"22",fa:"24",s:"11",si:"11"}],["2025-10-03",{c:"141",ca:"141",e:"141",f:"117",fa:"117",s:"15.4",si:"15.4"}],["2023-05-09",{c:"76",ca:"76",e:"79",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"11",fa:"14",s:"5",si:"4.2"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"8"}],["2020-01-15",{c:"23",ca:"25",e:"79",f:"31",fa:"31",s:"6",si:"8"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"36",ca:"36",e:"79",f:"36",fa:"36",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"15",fa:"15",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"48",ca:"48",e:"12",f:"41",fa:"41",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3",fa:"4",s:"1",si:"1"}],["2024-05-14",{c:"1",ca:"18",e:"12",f:"126",fa:"126",s:"3.1",si:"3"}]],c={w:"WebKit",g:"Gecko",p:"Presto",b:"Blink"},e={r:"retired",c:"current",b:"beta",n:"nightly",p:"planned",u:"unknown",e:"esr"},f=s=>{const a={};return Object.entries(s).forEach(([s,r])=>{if(r.releases){a[s]||(a[s]={releases:{}});const f=a[s].releases;r.releases.forEach(s=>{f[s[0]]={version:s[0],release_date:"u"==s[1]?"unknown":s[1],status:e[s[2]],engine:s[3]?c[s[3]]:void 0,engine_version:s[4]}})}}),a},b=(()=>{const s=[];return r.forEach(a=>{var r;s.push({status:{baseline_low_date:a[0],support:(r=a[1],{chrome:r.c,chrome_android:r.ca,edge:r.e,firefox:r.f,firefox_android:r.fa,safari:r.s,safari_ios:r.si})}})}),s})(),u=f(s),i=f(a);let n=!1;const o=["chrome","chrome_android","edge","firefox","firefox_android","safari","safari_ios"],g=Object.entries(u).filter(([s])=>o.includes(s)),t=["webview_android","samsunginternet_android","opera_android","opera"],l=[...Object.entries(u).filter(([s])=>t.includes(s)),...Object.entries(i)],w=["current","esr","retired","unknown","beta","nightly"];let p=!1;const d=s=>{if(!1===s.includeDownstreamBrowsers&&!0===s.includeKaiOS){if(console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")),"undefined"==typeof process||!process.exit)throw new Error("KaiOS configuration error: process.exit is not available");process.exit(1)}},v=s=>s&&s.startsWith("≤")?s.slice(1):s,_=(s,a)=>{if(s===a)return 0;const[r=0,c=0]=s.split(".",2).map(Number),[e=0,f=0]=a.split(".",2).map(Number);if(isNaN(r)||isNaN(c))throw new Error(`Invalid version: ${s}`);if(isNaN(e)||isNaN(f))throw new Error(`Invalid version: ${a}`);return r!==e?r>e?1:-1:c!==f?c>f?1:-1:0},h=s=>{let a=[];return s.forEach(s=>{let r=g.find(a=>a[0]===s.browser);if(r){Object.entries(r[1].releases).filter(([,s])=>w.includes(s.status)).sort((s,a)=>_(s[0],a[0])).forEach(([r,c])=>!!w.includes(c.status)&&(1===_(r,s.version)&&(a.push({browser:s.browser,version:r,release_date:c.release_date?c.release_date:"unknown"}),!0)))}}),a},m=(s,a=!1)=>{if(s.getFullYear()<2015&&!p&&console.warn(new Error("There are no browser versions compatible with Baseline before 2015.  You may receive unexpected results.")),s.getFullYear()<2002)throw new Error("None of the browsers in the core set were released before 2002.  Please use a date after 2002.");if(s.getFullYear()>(new Date).getFullYear())throw new Error("There are no browser versions compatible with Baseline in the future");const r=(s=>b.filter(a=>a.status.baseline_low_date&&new Date(a.status.baseline_low_date)<=s).map(s=>({baseline_low_date:s.status.baseline_low_date,support:s.status.support})))(s),c=(s=>{let a={};return Object.entries(g).forEach(([,s])=>{a[s[0]]={browser:s[0],version:"0",release_date:""}}),s.forEach(s=>{Object.entries(s.support).forEach(r=>{const c=r[0],e=v(r[1]);a[c]&&1===_(e,v(a[c].version))&&(a[c]={browser:c,version:e,release_date:s.baseline_low_date})})}),Object.values(a)})(r);return a?[...c,...h(c)].sort((s,a)=>s.browser<a.browser?-1:s.browser>a.browser?1:_(s.version,a.version)):c},O=(s=[],a=!0,r=!1)=>{const c=a=>{var r;return s&&s.length>0?null===(r=s.filter(s=>s.browser===a).sort((s,a)=>_(s.version,a.version))[0])||void 0===r?void 0:r.version:void 0},e=c("chrome"),f=c("firefox");if(!e&&!f)throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");let b=[];return l.filter(([s])=>!("kai_os"===s&&!r)).forEach(([s,r])=>{var c;if(!r.releases)return;let u=Object.entries(r.releases).filter(([,s])=>{const{engine:a,engine_version:r}=s;return!(!a||!r)&&("Blink"===a&&e?_(r,e)>=0:!("Gecko"!==a||!f)&&_(r,f)>=0)}).sort((s,a)=>_(s[0],a[0]));for(let r=0;r<u.length;r++){const e=u[r];if(e){const[r,f]=e;let u={browser:s,version:r,release_date:null!==(c=f.release_date)&&void 0!==c?c:"unknown"};if(f.engine&&f.engine_version&&(u.engine=f.engine,u.engine_version=f.engine_version),b.push(u),!a)break}}}),b};function y(s){var a,r,c,e,f,b,u;let i=null!=s?s:{},o={listAllCompatibleVersions:null!==(a=i.listAllCompatibleVersions)&&void 0!==a&&a,includeDownstreamBrowsers:null!==(r=i.includeDownstreamBrowsers)&&void 0!==r&&r,widelyAvailableOnDate:null!==(c=i.widelyAvailableOnDate)&&void 0!==c?c:void 0,targetYear:null!==(e=i.targetYear)&&void 0!==e?e:void 0,includeKaiOS:null!==(f=i.includeKaiOS)&&void 0!==f&&f,overrideLastUpdated:null!==(b=i.overrideLastUpdated)&&void 0!==b?b:void 0,suppressWarnings:null!==(u=i.suppressWarnings)&&void 0!==u&&u},g=new Date;if(d(o),o.widelyAvailableOnDate||o.targetYear)if(o.targetYear&&o.widelyAvailableOnDate){if(console.log(new Error("You cannot use targetYear and widelyAvailableOnDate at the same time.  Please remove one of these options and try again.")),"undefined"==typeof process||!process.exit)throw new Error("Configuration error: targetYear and widelyAvailableOnDate cannot be used together");process.exit(1)}else o.widelyAvailableOnDate?g=new Date(o.widelyAvailableOnDate):o.targetYear&&(g=new Date(`${o.targetYear}-12-31`));else g=new Date;(o.widelyAvailableOnDate||void 0===o.targetYear)&&g.setMonth(g.getMonth()-30);let t=m(g,o.listAllCompatibleVersions);return o.suppressWarnings||((s,a)=>{if(n||"undefined"!=typeof process&&process.env&&(process.env.BROWSERSLIST_IGNORE_OLD_DATA||process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA))return;const r=new Date;r.setMonth(r.getMonth()-2),s>r&&(null!=a?a:1766153488462)<r.getTime()&&(console.warn("[baseline-browser-mapping] The data in this module is over two months old and you are targetting a recent feature cut off date of "+s.toISOString().slice(0,10)+". To ensure accurate Baseline data, please update to the latest version of this module using your package manager of choice.\nYou can suppress these warnings using the environment variables `BROWSERSLIST_IGNORE_OLD_DATA=true` or `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true`.\nSome modules including `next.js` pre-compile data from this module via `browserslist` or other packages.\nPlease contact the maintainers of those modules if you are receiving these warnings and can't suppress them.\n"),n=!0)})(g,o.overrideLastUpdated),!1===o.includeDownstreamBrowsers?t:[...t,...O(t,o.listAllCompatibleVersions,o.includeKaiOS)]}exports._resetHasWarned=function(){n=!1},exports.getAllVersions=function(s){var a,r,c,e,f;p=!0;let b=null!=s?s:{},u={outputFormat:null!==(a=b.outputFormat)&&void 0!==a?a:"array",includeDownstreamBrowsers:null!==(r=b.includeDownstreamBrowsers)&&void 0!==r&&r,useSupports:null!==(c=b.useSupports)&&void 0!==c&&c,includeKaiOS:null!==(e=b.includeKaiOS)&&void 0!==e&&e,suppressWarnings:null!==(f=b.suppressWarnings)&&void 0!==f&&f};d(u);let i=(new Date).getFullYear()+1;const n=[...Array(i).keys()].slice(2002),g={};n.forEach(s=>{g[s]={},y({targetYear:s,suppressWarnings:u.suppressWarnings}).forEach(a=>{g[s]&&(g[s][a.browser]=a)})});const t=y({suppressWarnings:u.suppressWarnings}),l={};t.forEach(s=>{l[s.browser]=s});const w=new Date;w.setMonth(w.getMonth()+30);const v=y({widelyAvailableOnDate:w.toISOString().slice(0,10),suppressWarnings:u.suppressWarnings}),h={};v.forEach(s=>{h[s.browser]=s});const m=y({targetYear:2002,listAllCompatibleVersions:!0,suppressWarnings:u.suppressWarnings}),E=[];if(o.forEach(s=>{var a,r,c,e;let f=m.filter(a=>a.browser==s).sort((s,a)=>_(s.version,a.version)),b=null!==(r=null===(a=l[s])||void 0===a?void 0:a.version)&&void 0!==r?r:"0",o=null!==(e=null===(c=h[s])||void 0===c?void 0:c.version)&&void 0!==e?e:"0";n.forEach(a=>{var r;if(g[a]){let c=(null!==(r=g[a][s])&&void 0!==r?r:{version:"0"}).version,e=f.findIndex(s=>0===_(s.version,c));(a===i-1?f:f.slice(0,e)).forEach(s=>{let r=_(s.version,b)>=0,c=_(s.version,o)>=0,e=Object.assign(Object.assign({},s),{year:a<=2015?"pre_baseline":a-1});u.useSupports?(r&&(e.supports="widely"),c&&(e.supports="newly")):e=Object.assign(Object.assign({},e),{wa_compatible:r}),E.push(e)}),f=f.slice(e,f.length)}})}),u.includeDownstreamBrowsers){O(E,!0,u.includeKaiOS).forEach(s=>{let a=E.find(a=>"chrome"===a.browser&&a.version===s.engine_version);a&&(u.useSupports?E.push(Object.assign(Object.assign({},s),{year:a.year,supports:a.supports})):E.push(Object.assign(Object.assign({},s),{year:a.year,wa_compatible:a.wa_compatible})))})}if(E.sort((s,a)=>{if("pre_baseline"===s.year&&"pre_baseline"!==a.year)return-1;if("pre_baseline"===a.year&&"pre_baseline"!==s.year)return 1;if("pre_baseline"!==s.year&&"pre_baseline"!==a.year){if(s.year<a.year)return-1;if(s.year>a.year)return 1}return s.browser<a.browser?-1:s.browser>a.browser?1:_(s.version,a.version)}),"object"===u.outputFormat){const s={};return E.forEach(a=>{s[a.browser]||(s[a.browser]={});let r={year:a.year,release_date:a.release_date,engine:a.engine,engine_version:a.engine_version};s[a.browser][a.version]=u.useSupports?a.supports?Object.assign(Object.assign({},r),{supports:a.supports}):r:Object.assign(Object.assign({},r),{wa_compatible:a.wa_compatible})}),null!=s?s:{}}if("csv"===u.outputFormat){let s=`"browser","version","year","${u.useSupports?"supports":"wa_compatible"}","release_date","engine","engine_version"`;return E.forEach(a=>{var r,c,e,f;let b={browser:a.browser,version:a.version,year:a.year,release_date:null!==(r=a.release_date)&&void 0!==r?r:"NULL",engine:null!==(c=a.engine)&&void 0!==c?c:"NULL",engine_version:null!==(e=a.engine_version)&&void 0!==e?e:"NULL"};b=u.useSupports?Object.assign(Object.assign({},b),{supports:null!==(f=a.supports)&&void 0!==f?f:""}):Object.assign(Object.assign({},b),{wa_compatible:a.wa_compatible}),s+=`\n"${b.browser}","${b.version}","${b.year}","${u.useSupports?b.supports:b.wa_compatible}","${b.release_date}","${b.engine}","${b.engine_version}"`}),s}return E},exports.getCompatibleVersions=y;
Index: de_modules/baseline-browser-mapping/dist/index.d.ts
===================================================================
--- node_modules/baseline-browser-mapping/dist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,102 +1,0 @@
-export declare function _resetHasWarned(): void;
-type BrowserVersion = {
-    browser: string;
-    version: string;
-    release_date?: string;
-    engine?: string;
-    engine_version?: string;
-};
-interface AllBrowsersBrowserVersion extends BrowserVersion {
-    year: number | string;
-    supports?: string;
-    wa_compatible?: boolean;
-}
-type NestedBrowserVersions = {
-    [browser: string]: {
-        [version: string]: AllBrowsersBrowserVersion;
-    };
-};
-type Options = {
-    /**
-     * Whether to include only the minimum compatible browser versions or all compatible versions.
-     * Defaults to `false`.
-     */
-    listAllCompatibleVersions?: boolean;
-    /**
-     * Whether to include browsers that use the same engines as a core Baseline browser.
-     * Defaults to `false`.
-     */
-    includeDownstreamBrowsers?: boolean;
-    /**
-     * Pass a date in the format 'YYYY-MM-DD' to get versions compatible with Widely available on the specified date.
-     * If left undefined and a `targetYear` is not passed, defaults to Widely available as of the current date.
-     * > NOTE: cannot be used with `targetYear`.
-     */
-    widelyAvailableOnDate?: string | number;
-    /**
-     * Pass a year between 2015 and the current year to get browser versions compatible with all
-     * Newly Available features as of the end of the year specified.
-     * > NOTE: cannot be used with `widelyAvailableOnDate`.
-     */
-    targetYear?: number;
-    /**
-     * Pass a boolean that determines whether KaiOS is included in browser mappings.  KaiOS implements
-     * the Gecko engine used in Firefox.  However, KaiOS also has a different interaction paradigm to
-     * other browsers and requires extra consideration beyond simple feature compatibility to provide
-     * an optimal user experience.  Defaults to `false`.
-     */
-    includeKaiOS?: boolean;
-    overrideLastUpdated?: number;
-    /**
-     * Pass a boolean to suppress the warning about stale data.
-     * Defaults to `false`.
-     */
-    suppressWarnings?: boolean;
-};
-/**
- * Returns browser versions compatible with specified Baseline targets.
- * Defaults to returning the minimum versions of the core browser set that support Baseline Widely available.
- * Takes an optional configuration `Object` with four optional properties:
- * - `listAllCompatibleVersions`: `false` (default) or `false`
- * - `includeDownstreamBrowsers`: `false` (default) or `false`
- * - `widelyAvailableOnDate`: date in format `YYYY-MM-DD`
- * - `targetYear`: year in format `YYYY`
- */
-export declare function getCompatibleVersions(userOptions?: Options): BrowserVersion[];
-type AllVersionsOptions = {
-    /**
-     * Whether to return the output as a JavaScript `Array` (`"array"`), `Object` (`"object"`) or a CSV string (`"csv"`).
-     * Defaults to `"array"`.
-     */
-    outputFormat?: string;
-    /**
-     * Whether to include browsers that use the same engines as a core Baseline browser.
-     * Defaults to `false`.
-     */
-    includeDownstreamBrowsers?: boolean;
-    /**
-     * Whether to use the new "supports" property in place of "wa_compatible"
-     * Defaults to `false`
-     */
-    useSupports?: boolean;
-    /**
-     * Whether to include KaiOS in the output. KaiOS implements the Gecko engine used in Firefox.
-     * However, KaiOS also has a different interaction paradigm to other browsers and requires extra
-     * consideration beyond simple feature compatibility to provide an optimal user experience.
-     */
-    includeKaiOS?: boolean;
-    /**
-     * Pass a boolean to suppress the warning about old data.
-     * Defaults to `false`.
-     */
-    suppressWarnings?: boolean;
-};
-/**
- * Returns all browser versions known to this module with their level of Baseline support as a JavaScript `Array` (`"array"`), `Object` (`"object"`) or a CSV string (`"csv"`).
- * Takes an optional configuration `Object` with three optional properties:
- * - `includeDownstreamBrowsers`: `true` (default) or `false`
- * - `outputFormat`: `"array"` (default), `"object"` or `"csv"`
- * - `useSupports`: `false` (default) or `true`, replaces `wa_compatible` property with optional `supports` property which returns `widely` or `newly` available when present.
- */
-export declare function getAllVersions(userOptions?: AllVersionsOptions): AllBrowsersBrowserVersion[] | NestedBrowserVersions | string;
-export {};
Index: de_modules/baseline-browser-mapping/dist/index.js
===================================================================
--- node_modules/baseline-browser-mapping/dist/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-const s={chrome:{releases:[["1","2008-12-11","r","w","528"],["2","2009-05-21","r","w","530"],["3","2009-09-15","r","w","532"],["4","2010-01-25","r","w","532.5"],["5","2010-05-25","r","w","533"],["6","2010-09-02","r","w","534.3"],["7","2010-10-19","r","w","534.7"],["8","2010-12-02","r","w","534.10"],["9","2011-02-03","r","w","534.13"],["10","2011-03-08","r","w","534.16"],["11","2011-04-27","r","w","534.24"],["12","2011-06-07","r","w","534.30"],["13","2011-08-02","r","w","535.1"],["14","2011-09-16","r","w","535.1"],["15","2011-10-25","r","w","535.2"],["16","2011-12-13","r","w","535.7"],["17","2012-02-08","r","w","535.11"],["18","2012-03-28","r","w","535.19"],["19","2012-05-15","r","w","536.5"],["20","2012-06-26","r","w","536.10"],["21","2012-07-31","r","w","537.1"],["22","2012-09-25","r","w","537.4"],["23","2012-11-06","r","w","537.11"],["24","2013-01-10","r","w","537.17"],["25","2013-02-21","r","w","537.22"],["26","2013-03-26","r","w","537.31"],["27","2013-05-21","r","w","537.36"],["28","2013-07-09","r","b","28"],["29","2013-08-20","r","b","29"],["30","2013-10-01","r","b","30"],["31","2013-11-12","r","b","31"],["32","2014-01-14","r","b","32"],["33","2014-02-20","r","b","33"],["34","2014-04-08","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-08-26","r","b","37"],["38","2014-10-07","r","b","38"],["39","2014-11-18","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-03","r","b","41"],["42","2015-04-14","r","b","42"],["43","2015-05-19","r","b","43"],["44","2015-07-21","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-13","r","b","46"],["47","2015-12-01","r","b","47"],["48","2016-01-20","r","b","48"],["49","2016-03-02","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-05-25","r","b","51"],["52","2016-07-20","r","b","52"],["53","2016-08-31","r","b","53"],["54","2016-10-12","r","b","54"],["55","2016-12-01","r","b","55"],["56","2017-01-25","r","b","56"],["57","2017-03-09","r","b","57"],["58","2017-04-19","r","b","58"],["59","2017-06-05","r","b","59"],["60","2017-07-25","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-17","r","b","62"],["63","2017-12-06","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-29","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-16","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-23","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-10","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-18","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"]]},chrome_android:{releases:[["18","2012-06-27","r","w","535.19"],["25","2013-02-27","r","w","537.22"],["26","2013-04-03","r","w","537.31"],["27","2013-05-22","r","w","537.36"],["28","2013-07-10","r","b","28"],["29","2013-08-21","r","b","29"],["30","2013-10-02","r","b","30"],["31","2013-11-14","r","b","31"],["32","2014-01-15","r","b","32"],["33","2014-02-26","r","b","33"],["34","2014-04-02","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"]]},edge:{releases:[["12","2015-07-29","r",null,"12"],["13","2015-11-12","r",null,"13"],["14","2016-08-02","r",null,"14"],["15","2017-04-05","r",null,"15"],["16","2017-10-17","r",null,"16"],["17","2018-04-30","r",null,"17"],["18","2018-10-02","r",null,"18"],["79","2020-01-15","r","b","79"],["80","2020-02-07","r","b","80"],["81","2020-04-13","r","b","81"],["83","2020-05-21","r","b","83"],["84","2020-07-16","r","b","84"],["85","2020-08-27","r","b","85"],["86","2020-10-09","r","b","86"],["87","2020-11-19","r","b","87"],["88","2021-01-21","r","b","88"],["89","2021-03-04","r","b","89"],["90","2021-04-15","r","b","90"],["91","2021-05-27","r","b","91"],["92","2021-07-22","r","b","92"],["93","2021-09-02","r","b","93"],["94","2021-09-24","r","b","94"],["95","2021-10-21","r","b","95"],["96","2021-11-19","r","b","96"],["97","2022-01-06","r","b","97"],["98","2022-02-03","r","b","98"],["99","2022-03-03","r","b","99"],["100","2022-04-01","r","b","100"],["101","2022-04-28","r","b","101"],["102","2022-05-31","r","b","102"],["103","2022-06-23","r","b","103"],["104","2022-08-05","r","b","104"],["105","2022-09-01","r","b","105"],["106","2022-10-03","r","b","106"],["107","2022-10-27","r","b","107"],["108","2022-12-05","r","b","108"],["109","2023-01-12","r","b","109"],["110","2023-02-09","r","b","110"],["111","2023-03-13","r","b","111"],["112","2023-04-06","r","b","112"],["113","2023-05-05","r","b","113"],["114","2023-06-02","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-21","r","b","116"],["117","2023-09-15","r","b","117"],["118","2023-10-13","r","b","118"],["119","2023-11-02","r","b","119"],["120","2023-12-07","r","b","120"],["121","2024-01-25","r","b","121"],["122","2024-02-23","r","b","122"],["123","2024-03-22","r","b","123"],["124","2024-04-18","r","b","124"],["125","2024-05-17","r","b","125"],["126","2024-06-13","r","b","126"],["127","2024-07-25","r","b","127"],["128","2024-08-22","r","b","128"],["129","2024-09-19","r","b","129"],["130","2024-10-17","r","b","130"],["131","2024-11-14","r","b","131"],["132","2025-01-17","r","b","132"],["133","2025-02-06","r","b","133"],["134","2025-03-06","r","b","134"],["135","2025-04-04","r","b","135"],["136","2025-05-01","r","b","136"],["137","2025-05-29","r","b","137"],["138","2025-06-26","r","b","138"],["139","2025-08-07","r","b","139"],["140","2025-09-05","r","b","140"],["141","2025-10-03","r","b","141"],["142","2025-10-31","r","b","142"],["143","2025-12-05","c","b","143"],["144","2026-01-15","b","b","144"],["145","2026-02-12","n","b","145"],["146","2026-03-12","p","b","146"]]},firefox:{releases:[["1","2004-11-09","r","g","1.7"],["2","2006-10-24","r","g","1.8.1"],["3","2008-06-17","r","g","1.9"],["4","2011-03-22","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-20","r","g","9"],["10","2012-01-31","r","g","10"],["11","2012-03-13","r","g","11"],["12","2012-04-24","r","g","12"],["13","2012-06-05","r","g","13"],["14","2012-07-17","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-24","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-14","r","g","57"],["58","2018-01-23","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["69","2019-09-03","r","g","69"],["70","2019-10-22","r","g","70"],["71","2019-12-10","r","g","71"],["72","2020-01-07","r","g","72"],["73","2020-02-11","r","g","73"],["74","2020-03-10","r","g","74"],["75","2020-04-07","r","g","75"],["76","2020-05-05","r","g","76"],["77","2020-06-02","r","g","77"],["78","2020-06-30","r","g","78"],["79","2020-07-28","r","g","79"],["80","2020-08-25","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","c","g","146"],["147","2026-01-13","b","g","147"],["148","2026-02-24","n","g","148"],["149","2026-03-24","p","g","149"],["1.5","2005-11-29","r","g","1.8"],["3.5","2009-06-30","r","g","1.9.1"],["3.6","2010-01-21","r","g","1.9.2"]]},firefox_android:{releases:[["4","2011-03-29","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-21","r","g","9"],["10","2012-01-31","r","g","10"],["14","2012-06-26","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-27","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-28","r","g","57"],["58","2018-01-22","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["79","2020-07-28","r","g","79"],["80","2020-08-31","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","c","g","146"],["147","2026-01-13","b","g","147"],["148","2026-02-24","n","g","148"],["149","2026-03-24","p","g","149"]]},opera:{releases:[["2","1996-07-14","r",null,null],["3","1997-12-01","r",null,null],["4","2000-06-28","r",null,null],["5","2000-12-06","r",null,null],["6","2001-12-18","r",null,null],["7","2003-01-28","r","p","1"],["8","2005-04-19","r","p","1"],["9","2006-06-20","r","p","2"],["10","2009-09-01","r","p","2.2"],["11","2010-12-16","r","p","2.7"],["12","2012-06-14","r","p","2.10"],["15","2013-07-02","r","b","28"],["16","2013-08-27","r","b","29"],["17","2013-10-08","r","b","30"],["18","2013-11-19","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-04","r","b","33"],["21","2014-05-06","r","b","34"],["22","2014-06-03","r","b","35"],["23","2014-07-22","r","b","36"],["24","2014-09-02","r","b","37"],["25","2014-10-15","r","b","38"],["26","2014-12-03","r","b","39"],["27","2015-01-27","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-09","r","b","43"],["31","2015-08-04","r","b","44"],["32","2015-09-15","r","b","45"],["33","2015-10-27","r","b","46"],["34","2015-12-08","r","b","47"],["35","2016-02-02","r","b","48"],["36","2016-03-15","r","b","49"],["37","2016-05-04","r","b","50"],["38","2016-06-08","r","b","51"],["39","2016-08-02","r","b","52"],["40","2016-09-20","r","b","53"],["41","2016-10-25","r","b","54"],["42","2016-12-13","r","b","55"],["43","2017-02-07","r","b","56"],["44","2017-03-21","r","b","57"],["45","2017-05-10","r","b","58"],["46","2017-06-22","r","b","59"],["47","2017-08-09","r","b","60"],["48","2017-09-27","r","b","61"],["49","2017-11-08","r","b","62"],["50","2018-01-04","r","b","63"],["51","2018-02-07","r","b","64"],["52","2018-03-22","r","b","65"],["53","2018-05-10","r","b","66"],["54","2018-06-28","r","b","67"],["55","2018-08-16","r","b","68"],["56","2018-09-25","r","b","69"],["57","2018-11-28","r","b","70"],["58","2019-01-23","r","b","71"],["60","2019-04-09","r","b","73"],["62","2019-06-27","r","b","75"],["63","2019-08-20","r","b","76"],["64","2019-10-07","r","b","77"],["65","2019-11-13","r","b","78"],["66","2020-01-07","r","b","79"],["67","2020-03-03","r","b","80"],["68","2020-04-22","r","b","81"],["69","2020-06-24","r","b","83"],["70","2020-07-27","r","b","84"],["71","2020-09-15","r","b","85"],["72","2020-10-21","r","b","86"],["73","2020-12-09","r","b","87"],["74","2021-02-02","r","b","88"],["75","2021-03-24","r","b","89"],["76","2021-04-28","r","b","90"],["77","2021-06-09","r","b","91"],["78","2021-08-03","r","b","92"],["79","2021-09-14","r","b","93"],["80","2021-10-05","r","b","94"],["81","2021-11-04","r","b","95"],["82","2021-12-02","r","b","96"],["83","2022-01-19","r","b","97"],["84","2022-02-16","r","b","98"],["85","2022-03-23","r","b","99"],["86","2022-04-20","r","b","100"],["87","2022-05-17","r","b","101"],["88","2022-06-08","r","b","102"],["89","2022-07-07","r","b","103"],["90","2022-08-18","r","b","104"],["91","2022-09-14","r","b","105"],["92","2022-10-19","r","b","106"],["93","2022-11-17","r","b","107"],["94","2022-12-15","r","b","108"],["95","2023-02-01","r","b","109"],["96","2023-02-22","r","b","110"],["97","2023-03-22","r","b","111"],["98","2023-04-20","r","b","112"],["99","2023-05-16","r","b","113"],["100","2023-06-29","r","b","114"],["101","2023-07-26","r","b","115"],["102","2023-08-23","r","b","116"],["103","2023-10-03","r","b","117"],["104","2023-10-23","r","b","118"],["105","2023-11-14","r","b","119"],["106","2023-12-19","r","b","120"],["107","2024-02-07","r","b","121"],["108","2024-03-05","r","b","122"],["109","2024-03-27","r","b","123"],["110","2024-05-14","r","b","124"],["111","2024-06-12","r","b","125"],["112","2024-07-11","r","b","126"],["113","2024-08-22","r","b","127"],["114","2024-09-25","r","b","128"],["115","2024-11-27","r","b","130"],["116","2025-01-08","r","b","131"],["117","2025-02-13","r","b","132"],["118","2025-04-15","r","b","133"],["119","2025-05-13","r","b","134"],["120","2025-07-02","r","b","135"],["121","2025-08-27","r","b","137"],["122","2025-09-11","r","b","138"],["123","2025-10-28","c","b","139"],["124",null,"b","b","140"],["125",null,"n","b","141"],["10.1","2009-11-23","r","p","2.2"],["10.5","2010-03-02","r","p","2.5"],["10.6","2010-07-01","r","p","2.6"],["11.1","2011-04-12","r","p","2.8"],["11.5","2011-06-28","r","p","2.9"],["11.6","2011-12-06","r","p","2.10"],["12.1","2012-11-20","r","p","2.12"],["3.5","1998-11-18","r",null,null],["3.6","1999-05-06","r",null,null],["5.1","2001-04-10","r",null,null],["7.1","2003-04-11","r","p","1"],["7.2","2003-09-23","r","p","1"],["7.5","2004-05-12","r","p","1"],["8.5","2005-09-20","r","p","1"],["9.1","2006-12-18","r","p","2"],["9.2","2007-04-11","r","p","2"],["9.5","2008-06-12","r","p","2.1"],["9.6","2008-10-08","r","p","2.1"]]},opera_android:{releases:[["11","2011-03-22","r","p","2.7"],["12","2012-02-25","r","p","2.10"],["14","2013-05-21","r","w","537.31"],["15","2013-07-08","r","b","28"],["16","2013-09-18","r","b","29"],["18","2013-11-20","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-06","r","b","33"],["21","2014-04-22","r","b","34"],["22","2014-06-17","r","b","35"],["24","2014-09-10","r","b","37"],["25","2014-10-16","r","b","38"],["26","2014-12-02","r","b","39"],["27","2015-01-29","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-10","r","b","43"],["32","2015-09-23","r","b","45"],["33","2015-11-03","r","b","46"],["34","2015-12-16","r","b","47"],["35","2016-02-04","r","b","48"],["36","2016-03-31","r","b","49"],["37","2016-06-16","r","b","50"],["41","2016-10-25","r","b","54"],["42","2017-01-21","r","b","55"],["43","2017-09-27","r","b","59"],["44","2017-12-11","r","b","60"],["45","2018-02-15","r","b","61"],["46","2018-05-14","r","b","63"],["47","2018-07-23","r","b","66"],["48","2018-11-08","r","b","69"],["49","2018-12-07","r","b","70"],["50","2019-02-18","r","b","71"],["51","2019-03-21","r","b","72"],["52","2019-05-17","r","b","73"],["53","2019-07-11","r","b","74"],["54","2019-10-18","r","b","76"],["55","2019-12-03","r","b","77"],["56","2020-02-06","r","b","78"],["57","2020-03-30","r","b","80"],["58","2020-05-13","r","b","81"],["59","2020-06-30","r","b","83"],["60","2020-09-23","r","b","85"],["61","2020-12-07","r","b","86"],["62","2021-02-16","r","b","87"],["63","2021-04-16","r","b","89"],["64","2021-05-25","r","b","91"],["65","2021-10-20","r","b","92"],["66","2021-12-15","r","b","94"],["67","2022-01-31","r","b","96"],["68","2022-03-30","r","b","99"],["69","2022-05-09","r","b","100"],["70","2022-06-29","r","b","102"],["71","2022-09-16","r","b","104"],["72","2022-10-21","r","b","106"],["73","2023-01-17","r","b","108"],["74","2023-03-13","r","b","110"],["75","2023-05-17","r","b","112"],["76","2023-06-26","r","b","114"],["77","2023-08-31","r","b","115"],["78","2023-10-23","r","b","117"],["79","2023-12-06","r","b","119"],["80","2024-01-25","r","b","120"],["81","2024-03-14","r","b","122"],["82","2024-05-02","r","b","124"],["83","2024-06-25","r","b","126"],["84","2024-08-26","r","b","127"],["85","2024-10-29","r","b","128"],["86","2024-12-02","r","b","130"],["87","2025-01-22","r","b","132"],["88","2025-03-19","r","b","134"],["89","2025-04-29","r","b","135"],["90","2025-06-18","r","b","137"],["91","2025-08-19","r","b","139"],["92","2025-10-08","r","b","140"],["93","2025-11-25","c","b","142"],["10.1","2010-11-09","r","p","2.5"],["11.1","2011-06-30","r","p","2.8"],["11.5","2011-10-12","r","p","2.9"],["12.1","2012-10-09","r","p","2.11"]]},safari:{releases:[["1","2003-06-23","r","w","85"],["2","2005-04-29","r","w","412"],["3","2007-10-26","r","w","523.10"],["4","2009-06-08","r","w","530.17"],["5","2010-06-07","r","w","533.16"],["6","2012-07-25","r","w","536.25"],["7","2013-10-22","r","w","537.71"],["8","2014-10-16","r","w","538.35"],["9","2015-09-30","r","w","601.1.56"],["10","2016-09-20","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["1.1","2003-10-24","r","w","100"],["1.2","2004-02-02","r","w","125"],["1.3","2005-04-15","r","w","312"],["10.1","2017-03-27","r","w","603.2.1"],["11.1","2018-04-12","r","w","605.1.33"],["12.1","2019-03-25","r","w","607.1.40"],["13.1","2020-03-24","r","w","609.1.20"],["14.1","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2025-12-15","c","w","623.2.2"],["3.1","2008-03-18","r","w","525.13"],["5.1","2011-07-20","r","w","534.48"],["9.1","2016-03-21","r","w","601.5.17"]]},safari_ios:{releases:[["1","2007-06-29","r","w","522.11"],["2","2008-07-11","r","w","525.18"],["3","2009-06-17","r","w","528.18"],["4","2010-06-21","r","w","532.9"],["5","2011-10-12","r","w","534.46"],["6","2012-09-10","r","w","536.26"],["7","2013-09-18","r","w","537.51"],["8","2014-09-17","r","w","600.1.4"],["9","2015-09-16","r","w","601.1.56"],["10","2016-09-13","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["10.3","2017-03-27","r","w","603.2.1"],["11.3","2018-03-29","r","w","605.1.33"],["12.2","2019-03-25","r","w","607.1.40"],["13.4","2020-03-24","r","w","609.1.20"],["14.5","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2025-12-15","c","w","623.2.2"],["3.2","2010-04-03","r","w","531.21"],["4.2","2010-11-22","r","w","533.17"],["9.3","2016-03-21","r","w","601.5.17"]]},samsunginternet_android:{releases:[["1.0","2013-04-27","r","w","535.19"],["1.5","2013-09-25","r","b","28"],["1.6","2014-04-11","r","b","28"],["10.0","2019-08-22","r","b","71"],["10.2","2019-10-09","r","b","71"],["11.0","2019-12-05","r","b","75"],["11.2","2020-03-22","r","b","75"],["12.0","2020-06-19","r","b","79"],["12.1","2020-07-07","r","b","79"],["13.0","2020-12-02","r","b","83"],["13.2","2021-01-20","r","b","83"],["14.0","2021-04-17","r","b","87"],["14.2","2021-06-25","r","b","87"],["15.0","2021-08-13","r","b","90"],["16.0","2021-11-25","r","b","92"],["16.2","2022-03-06","r","b","92"],["17.0","2022-05-04","r","b","96"],["18.0","2022-08-08","r","b","99"],["18.1","2022-09-09","r","b","99"],["19.0","2022-11-01","r","b","102"],["19.1","2022-11-08","r","b","102"],["2.0","2014-10-17","r","b","34"],["2.1","2015-01-07","r","b","34"],["20.0","2023-02-10","r","b","106"],["21.0","2023-05-19","r","b","110"],["22.0","2023-07-14","r","b","111"],["23.0","2023-10-18","r","b","115"],["24.0","2024-01-25","r","b","117"],["25.0","2024-04-24","r","b","121"],["26.0","2024-06-07","r","b","122"],["27.0","2024-11-06","r","b","125"],["28.0","2025-04-02","r","b","130"],["29.0","2025-10-25","c","b","136"],["3.0","2015-04-10","r","b","38"],["3.2","2015-08-24","r","b","38"],["4.0","2016-03-11","r","b","44"],["4.2","2016-08-02","r","b","44"],["5.0","2016-12-15","r","b","51"],["5.2","2017-04-21","r","b","51"],["5.4","2017-05-17","r","b","51"],["6.0","2017-08-23","r","b","56"],["6.2","2017-10-26","r","b","56"],["6.4","2018-02-19","r","b","56"],["7.0","2018-03-16","r","b","59"],["7.2","2018-06-20","r","b","59"],["7.4","2018-09-12","r","b","59"],["8.0","2018-07-18","r","b","63"],["8.2","2018-12-21","r","b","63"],["9.0","2018-09-15","r","b","67"],["9.2","2019-04-02","r","b","67"],["9.4","2019-07-25","r","b","67"]]},webview_android:{releases:[["1","2008-09-23","r","w","523.12"],["2","2009-10-26","r","w","530.17"],["3","2011-02-22","r","w","534.13"],["4","2011-10-18","r","w","534.30"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-01","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","c","b","143"],["144","2026-01-13","b","b","144"],["145","2026-02-10","n","b","145"],["146",null,"p","b","146"],["1.5","2009-04-27","r","w","525.20"],["2.2","2010-05-20","r","w","533.1"],["4.4","2013-12-09","r","b","30"],["4.4.3","2014-06-02","r","b","33"]]}},a={ya_android:{releases:[["1.0","u","u","b","25"],["1.5","u","u","b","22"],["1.6","u","u","b","25"],["1.7","u","u","b","25"],["1.20","u","u","b","25"],["2.5","u","u","b","25"],["3.2","u","u","b","25"],["4.6","u","u","b","25"],["5.3","u","u","b","25"],["5.4","u","u","b","25"],["7.4","u","u","b","25"],["9.6","u","u","b","25"],["10.5","u","u","b","25"],["11.4","u","u","b","25"],["11.5","u","u","b","25"],["12.7","u","u","b","25"],["13.9","u","u","b","28"],["13.10","u","u","b","28"],["13.11","u","u","b","28"],["13.12","u","u","b","30"],["14.2","u","u","b","32"],["14.4","u","u","b","33"],["14.5","u","u","b","34"],["14.7","u","u","b","35"],["14.8","u","u","b","36"],["14.10","u","u","b","37"],["14.12","u","u","b","38"],["15.2","u","u","b","40"],["15.4","u","u","b","41"],["15.6","u","u","b","42"],["15.7","u","u","b","43"],["15.9","u","u","b","44"],["15.10","u","u","b","45"],["15.12","u","u","b","46"],["16.2","u","u","b","47"],["16.3","u","u","b","47"],["16.4","u","u","b","49"],["16.6","u","u","b","50"],["16.7","u","u","b","51"],["16.9","u","u","b","52"],["16.10","u","u","b","53"],["16.11","u","u","b","54"],["17.1","u","u","b","55"],["17.3","u","u","b","56"],["17.4","u","u","b","57"],["17.6","u","u","b","58"],["17.7","u","u","b","59"],["17.9","u","u","b","60"],["17.10","u","u","b","61"],["17.11","u","u","b","62"],["18.1","u","u","b","63"],["18.2","u","u","b","63"],["18.3","u","u","b","64"],["18.4","u","u","b","65"],["18.6","u","u","b","66"],["18.7","u","u","b","67"],["18.9","u","u","b","68"],["18.10","u","u","b","69"],["18.11","u","u","b","70"],["19.1","u","u","b","71"],["19.3","u","u","b","72"],["19.4","u","u","b","73"],["19.5","u","u","b","75"],["19.6","u","u","b","75"],["19.7","u","u","b","75"],["19.9","u","u","b","76"],["19.10","u","u","b","77"],["19.11","u","u","b","78"],["19.12","u","u","b","78"],["20.2","u","u","b","79"],["20.3","u","u","b","80"],["20.4","u","u","b","81"],["20.6","u","u","b","81"],["20.7","u","u","b","83"],["20.8","2020-09-02","u","b","84"],["20.9","2020-09-27","u","b","85"],["20.11","2020-11-11","u","b","86"],["20.12","2020-12-20","u","b","87"],["21.1","2021-12-31","u","b","88"],["21.2","u","u","b","88"],["21.3","2021-04-04","u","b","89"],["21.5","u","u","b","90"],["21.6","2021-09-28","u","b","91"],["21.8","2021-09-28","u","b","92"],["21.9","2021-09-29","u","b","93"],["21.11","2021-10-29","u","b","94"],["22.1","2021-12-31","u","b","96"],["22.3","2022-03-25","u","b","98"],["22.4","u","u","b","92"],["22.5","2022-05-20","u","b","100"],["22.7","2022-07-07","u","b","102"],["22.8","u","u","b","104"],["22.9","2022-08-27","u","b","104"],["22.11","2022-11-11","u","b","106"],["23.1","2023-01-10","u","b","108"],["23.3","2023-03-26","u","b","110"],["23.5","2023-05-19","u","b","112"],["23.7","2023-07-06","u","b","114"],["23.9","2023-09-13","u","b","116"],["23.11","2023-11-15","u","b","118"],["24.1","2024-01-18","u","b","120"],["24.2","2024-03-25","u","b","120"],["24.4","2024-03-27","u","b","122"],["24.6","2024-06-04","u","b","124"],["24.7","2024-07-18","u","b","126"],["24.9","2024-10-01","u","b","126"],["24.10","2024-10-11","u","b","128"],["24.12","2024-11-30","u","b","130"],["25.2","2025-04-24","u","b","132"],["25.3","2025-04-23","u","b","132"],["25.4","2025-04-23","u","b","134"],["25.6","2025-09-04","u","b","136"],["25.8","2025-08-30","u","b","138"],["25.10","2025-10-09","u","b","140"],["25.12","2025-12-07","u","b","142"]]},uc_android:{releases:[["10.5","u","u","b","31"],["10.7","u","u","b","31"],["10.8","u","u","b","31"],["10.10","u","u","b","31"],["11.0","u","u","b","31"],["11.1","u","u","b","40"],["11.2","u","u","b","40"],["11.3","u","u","b","40"],["11.4","u","u","b","40"],["11.5","u","u","b","40"],["11.6","u","u","b","57"],["11.8","u","u","b","57"],["11.9","u","u","b","57"],["12.0","u","u","b","57"],["12.1","u","u","b","57"],["12.2","u","u","b","57"],["12.3","u","u","b","57"],["12.4","u","u","b","57"],["12.5","u","u","b","57"],["12.6","u","u","b","57"],["12.7","u","u","b","57"],["12.8","u","u","b","57"],["12.9","u","u","b","57"],["12.10","u","u","b","57"],["12.11","u","u","b","57"],["12.12","u","u","b","57"],["12.13","u","u","b","57"],["12.14","u","u","b","57"],["13.0","u","u","b","57"],["13.1","u","u","b","57"],["13.2","u","u","b","57"],["13.3","2020-09-09","u","b","78"],["13.4","2021-09-28","u","b","78"],["13.5","2023-08-25","u","b","78"],["13.6","2023-12-17","u","b","78"],["13.7","2023-06-24","u","b","78"],["13.8","2022-04-30","u","b","78"],["13.9","2022-05-18","u","b","78"],["15.0","2022-08-24","u","b","78"],["15.1","2022-11-11","u","b","78"],["15.2","2023-04-23","u","b","78"],["15.3","2023-03-17","u","b","100"],["15.4","2023-10-25","u","b","100"],["15.5","2023-08-22","u","b","100"],["16.0","2023-08-24","u","b","100"],["16.1","2023-10-15","u","b","100"],["16.2","2023-12-09","u","b","100"],["16.3","2024-03-08","u","b","100"],["16.4","2024-10-03","u","b","100"],["16.5","2024-05-30","u","b","100"],["16.6","2024-07-23","u","b","100"],["17.0","2024-08-24","u","b","100"],["17.1","2024-09-26","u","b","100"],["17.2","2024-11-29","u","b","100"],["17.3","2025-01-07","u","b","100"],["17.4","2025-02-26","u","b","100"],["17.5","2025-04-08","u","b","100"],["17.6","2025-05-15","u","b","123"],["17.7","2025-06-11","u","b","123"],["17.8","2025-07-30","u","b","123"],["18.0","2025-08-17","u","b","123"],["18.1","2025-10-04","u","b","123"],["18.2","2025-11-04","u","b","123"],["18.3","2025-12-12","u","b","123"]]},qq_android:{releases:[["6.0","u","u","b","37"],["6.1","u","u","b","37"],["6.2","u","u","b","37"],["6.3","u","u","b","37"],["6.4","u","u","b","37"],["6.6","u","u","b","37"],["6.7","u","u","b","37"],["6.8","u","u","b","37"],["6.9","u","u","b","37"],["7.0","u","u","b","37"],["7.1","u","u","b","37"],["7.2","u","u","b","37"],["7.3","u","u","b","37"],["7.4","u","u","b","37"],["7.5","u","u","b","37"],["7.6","u","u","b","37"],["7.7","u","u","b","37"],["7.8","u","u","b","37"],["7.9","u","u","b","37"],["8.0","u","u","b","37"],["8.1","u","u","b","57"],["8.2","u","u","b","57"],["8.3","u","u","b","57"],["8.4","u","u","b","57"],["8.5","u","u","b","57"],["8.6","u","u","b","57"],["8.7","u","u","b","57"],["8.8","u","u","b","57"],["8.9","u","u","b","57"],["9.1","u","u","b","57"],["9.6","u","u","b","66"],["9.7","u","u","b","66"],["9.8","u","u","b","66"],["10.0","u","u","b","66"],["10.1","u","u","b","66"],["10.2","u","u","b","66"],["10.3","u","u","b","66"],["10.4","u","u","b","66"],["10.5","u","u","b","66"],["10.7","2020-09-09","u","b","66"],["10.9","2020-11-22","u","b","77"],["11.0","u","u","b","77"],["11.2","2021-01-30","u","b","77"],["11.3","2021-03-31","u","b","77"],["11.7","2021-11-02","u","b","89"],["11.9","u","u","b","89"],["12.0","2021-11-04","u","b","89"],["12.1","2021-11-05","u","b","89"],["12.2","2021-12-07","u","b","89"],["12.5","2022-04-07","u","b","89"],["12.7","2022-05-21","u","b","89"],["12.8","2022-06-30","u","b","89"],["12.9","2022-07-26","u","b","89"],["13.0","2022-08-15","u","b","89"],["13.1","2022-09-10","u","b","89"],["13.2","2022-10-26","u","b","89"],["13.3","2022-11-09","u","b","89"],["13.4","2023-04-26","u","b","98"],["13.5","2023-02-06","u","b","98"],["13.6","2023-02-09","u","b","98"],["13.7","2023-04-21","u","b","98"],["13.8","2023-04-21","u","b","98"],["14.0","2023-12-12","u","b","98"],["14.1","2023-07-16","u","b","98"],["14.2","2023-10-14","u","b","109"],["14.3","2023-09-13","u","b","109"],["14.4","2023-10-31","u","b","109"],["14.5","2023-11-12","u","b","109"],["14.6","2023-12-24","u","b","109"],["14.7","2024-01-18","u","b","109"],["14.8","2024-03-04","u","b","109"],["14.9","2024-04-09","u","b","109"],["15.0","2024-04-17","u","b","109"],["15.1","2024-05-18","u","b","109"],["15.2","2024-10-24","u","b","109"],["15.3","2024-07-28","u","b","109"],["15.4","2024-09-07","u","b","109"],["15.5","2024-09-24","u","b","109"],["15.6","2024-10-24","u","b","109"],["15.7","2024-12-03","u","b","109"],["15.8","2024-12-11","u","b","109"],["15.9","2025-02-01","u","b","109"],["19.1","2025-07-08","u","b","121"],["19.2","2025-07-15","u","b","121"],["19.3","2025-08-31","u","b","121"],["19.4","2025-09-20","u","b","121"],["19.5","2025-10-23","u","b","121"],["19.6","2025-11-17","u","b","121"],["19.7","2025-12-18","u","b","121"]]},kai_os:{releases:[["1.0","2017-03-01","u","g","37"],["2.0","2017-07-01","u","g","48"],["2.5","2017-07-01","u","g","48"],["3.0","2021-09-01","u","g","84"],["3.1","2022-03-01","u","g","84"],["4.0","2025-05-01","u","g","123"]]},facebook_android:{releases:[["66","u","u","b","48"],["68","u","u","b","48"],["74","u","u","b","50"],["75","u","u","b","50"],["76","u","u","b","50"],["77","u","u","b","50"],["78","u","u","b","50"],["79","u","u","b","50"],["80","u","u","b","51"],["81","u","u","b","51"],["82","u","u","b","51"],["83","u","u","b","51"],["84","u","u","b","51"],["86","u","u","b","51"],["87","u","u","b","52"],["88","u","u","b","52"],["89","u","u","b","52"],["90","u","u","b","52"],["91","u","u","b","52"],["92","u","u","b","52"],["93","u","u","b","52"],["94","u","u","b","52"],["95","u","u","b","53"],["96","u","u","b","53"],["97","u","u","b","53"],["98","u","u","b","53"],["99","u","u","b","53"],["100","u","u","b","54"],["101","u","u","b","54"],["103","u","u","b","54"],["104","u","u","b","54"],["105","u","u","b","54"],["106","u","u","b","55"],["107","u","u","b","55"],["108","u","u","b","55"],["109","u","u","b","55"],["110","u","u","b","55"],["111","u","u","b","55"],["112","u","u","b","56"],["113","u","u","b","56"],["114","u","u","b","56"],["115","u","u","b","56"],["116","u","u","b","56"],["117","u","u","b","57"],["118","u","u","b","57"],["119","u","u","b","57"],["120","u","u","b","57"],["121","u","u","b","57"],["122","u","u","b","58"],["123","u","u","b","58"],["124","u","u","b","58"],["125","u","u","b","58"],["126","u","u","b","58"],["127","u","u","b","58"],["128","u","u","b","58"],["129","u","u","b","58"],["130","u","u","b","59"],["131","u","u","b","59"],["132","u","u","b","59"],["133","u","u","b","59"],["134","u","u","b","59"],["135","u","u","b","59"],["136","u","u","b","59"],["137","u","u","b","59"],["138","u","u","b","60"],["140","u","u","b","60"],["142","u","u","b","61"],["143","u","u","b","61"],["144","u","u","b","61"],["145","u","u","b","61"],["146","u","u","b","61"],["147","u","u","b","61"],["148","u","u","b","61"],["149","u","u","b","62"],["150","u","u","b","62"],["151","u","u","b","62"],["152","u","u","b","62"],["153","u","u","b","63"],["154","u","u","b","63"],["155","u","u","b","63"],["156","u","u","b","63"],["157","u","u","b","64"],["158","u","u","b","64"],["159","u","u","b","64"],["160","u","u","b","64"],["161","u","u","b","64"],["162","u","u","b","64"],["163","u","u","b","65"],["164","u","u","b","65"],["165","u","u","b","65"],["166","u","u","b","65"],["167","u","u","b","65"],["168","u","u","b","65"],["169","u","u","b","66"],["170","u","u","b","66"],["171","u","u","b","66"],["172","u","u","b","66"],["173","u","u","b","66"],["174","u","u","b","66"],["175","u","u","b","67"],["176","u","u","b","67"],["177","u","u","b","67"],["178","u","u","b","67"],["180","u","u","b","67"],["181","u","u","b","67"],["182","u","u","b","67"],["183","u","u","b","68"],["184","u","u","b","68"],["185","u","u","b","68"],["186","u","u","b","68"],["187","u","u","b","68"],["188","u","u","b","68"],["202","u","u","b","71"],["227","u","u","b","75"],["228","u","u","b","75"],["229","u","u","b","75"],["230","u","u","b","75"],["231","u","u","b","75"],["233","u","u","b","76"],["235","u","u","b","76"],["236","u","u","b","76"],["237","u","u","b","76"],["238","u","u","b","76"],["240","u","u","b","77"],["241","u","u","b","77"],["242","u","u","b","77"],["243","u","u","b","77"],["244","u","u","b","78"],["245","u","u","b","78"],["246","u","u","b","78"],["247","u","u","b","78"],["248","u","u","b","78"],["249","u","u","b","78"],["250","u","u","b","78"],["251","u","u","b","79"],["252","u","u","b","79"],["253","u","u","b","79"],["254","u","u","b","79"],["255","u","u","b","79"],["256","u","u","b","80"],["257","u","u","b","80"],["258","u","u","b","80"],["259","u","u","b","80"],["260","u","u","b","80"],["261","u","u","b","80"],["262","u","u","b","80"],["263","u","u","b","80"],["264","u","u","b","80"],["265","u","u","b","80"],["266","u","u","b","81"],["267","u","u","b","81"],["268","u","u","b","81"],["269","u","u","b","81"],["270","u","u","b","81"],["271","u","u","b","81"],["272","u","u","b","83"],["273","u","u","b","83"],["274","u","u","b","83"],["275","u","u","b","83"],["297","2020-12-02","u","b","86"],["348","2021-12-19","u","b","96"],["399","2023-02-04","u","b","109"],["400","2023-02-10","u","b","109"],["420","2023-06-28","u","b","114"],["430","2023-09-03","u","b","116"],["434","2023-10-05","u","b","117"],["436","2023-10-13","u","b","117"],["437","u","u","b","118"],["438","2023-10-28","u","b","118"],["439","2023-11-11","u","b","119"],["440","2023-11-12","u","b","119"],["441","2023-11-20","u","b","119"],["442","2023-11-29","u","b","119"],["443","2023-12-07","u","b","120"],["444","2023-12-13","u","b","120"],["445","2023-12-21","u","b","120"],["446","2024-01-06","u","b","120"],["447","2024-01-12","u","b","120"],["448","2024-01-29","u","b","121"],["449","2024-02-02","u","b","121"],["450","2024-02-05","u","b","121"],["451","2024-02-17","u","b","121"],["452","2024-02-25","u","b","122"],["453","2024-02-28","u","b","122"],["454","2024-03-04","u","b","122"],["465","2024-07-07","u","b","126"],["466","u","u","b","126"],["469","u","u","b","126"],["471","2024-07-10","u","b","126"],["472","2024-07-11","u","b","126"],["474","2024-07-30","u","b","127"],["475","2024-08-01","u","b","127"],["476","2024-08-09","u","b","127"],["477","2024-08-16","u","b","127"],["478","2024-08-21","u","b","128"],["479","2024-08-31","u","b","128"],["480","2024-09-07","u","b","128"],["481","2024-09-14","u","b","128"],["482","2024-09-20","u","b","129"],["483","2024-09-27","u","b","129"],["484","2024-10-04","u","b","129"],["485","2024-10-11","u","b","129"],["486","2024-10-18","u","b","130"],["487","2024-10-26","u","b","130"],["488","2024-11-02","u","b","130"],["489","2024-11-09","u","b","130"],["494","2024-12-26","u","b","131"],["497","2025-01-26","u","b","132"],["503","2025-03-12","u","b","134"],["514","2025-05-28","u","b","136"],["515","2025-05-31","u","b","137"]]},instagram_android:{releases:[["23","u","u","b","62"],["24","u","u","b","62"],["25","u","u","b","62"],["26","u","u","b","63"],["27","u","u","b","63"],["28","u","u","b","63"],["29","u","u","b","63"],["30","u","u","b","63"],["31","u","u","b","64"],["32","u","u","b","64"],["33","u","u","b","64"],["34","u","u","b","64"],["35","u","u","b","65"],["36","u","u","b","65"],["37","u","u","b","65"],["38","u","u","b","65"],["39","u","u","b","65"],["40","u","u","b","65"],["41","u","u","b","65"],["42","u","u","b","66"],["43","u","u","b","66"],["44","u","u","b","66"],["45","u","u","b","66"],["46","u","u","b","66"],["47","u","u","b","66"],["48","u","u","b","67"],["49","u","u","b","67"],["50","u","u","b","67"],["51","u","u","b","67"],["52","u","u","b","67"],["53","u","u","b","67"],["54","u","u","b","67"],["55","u","u","b","67"],["56","u","u","b","68"],["57","u","u","b","68"],["58","u","u","b","68"],["59","u","u","b","68"],["60","u","u","b","68"],["61","u","u","b","68"],["65","u","u","b","69"],["66","u","u","b","69"],["68","u","u","b","69"],["72","u","u","b","70"],["74","u","u","b","71"],["75","u","u","b","71"],["79","u","u","b","71"],["81","u","u","b","72"],["82","u","u","b","72"],["83","u","u","b","72"],["84","u","u","b","73"],["86","u","u","b","73"],["95","u","u","b","74"],["96","u","u","b","80"],["97","u","u","b","80"],["98","u","u","b","80"],["103","u","u","b","80"],["104","u","u","b","80"],["117","u","u","b","80"],["118","u","u","b","80"],["119","u","u","b","80"],["120","u","u","b","80"],["121","u","u","b","80"],["127","u","u","b","80"],["128","u","u","b","80"],["129","u","u","b","80"],["130","u","u","b","80"],["131","u","u","b","80"],["132","u","u","b","80"],["133","u","u","b","80"],["134","u","u","b","80"],["135","u","u","b","80"],["136","u","u","b","80"],["137","u","u","b","81"],["138","u","u","b","81"],["139","u","u","b","81"],["140","u","u","b","81"],["141","u","u","b","81"],["142","u","u","b","81"],["143","u","u","b","83"],["144","u","u","b","83"],["145","u","u","b","83"],["146","u","u","b","83"],["153","u","u","b","84"],["163","u","u","b","92"],["164","u","u","b","92"],["230","u","u","b","92"],["258","2022-11-04","u","b","106"],["259","2022-11-04","u","b","106"],["279","2023-12-31","u","b","109"],["281","u","u","b","109"],["288","u","u","b","114"],["289","2023-12-21","u","b","114"],["290","2023-12-30","u","b","114"],["292","u","u","b","115"],["295","u","u","b","115"],["296","u","u","b","115"],["297","u","u","b","115"],["298","2024-01-11","u","b","115"],["299","u","u","b","115"],["300","u","u","b","116"],["301","2024-01-12","u","b","116"],["302","u","u","b","117"],["303","u","u","b","117"],["304","u","u","b","117"],["305","u","u","b","117"],["306","2024-01-17","u","b","118"],["307","u","u","b","118"],["308","2024-01-19","u","b","118"],["309","u","u","b","119"],["310","u","u","b","119"],["311","u","u","b","120"],["312","u","u","b","120"],["313","u","u","b","120"],["314","u","u","b","120"],["315","2024-01-19","u","b","120"],["316","2024-01-25","u","b","120"],["317","2024-02-03","u","b","121"],["318","2024-02-16","u","b","121"],["320","2024-03-04","u","b","121"],["321","2024-03-07","u","b","122"],["338","2024-07-06","u","b","126"],["346","2024-09-01","u","b","127"],["347","2024-09-11","u","b","127"],["349","2024-09-20","u","b","128"],["355","2024-11-06","u","b","130"],["366","u","u","b","132"],["367","2025-02-15","u","b","132"],["378","2025-05-03","u","b","135"],["381","2025-06-19","u","b","137"],["382","2025-06-19","u","b","137"],["383","2025-06-18","u","b","137"],["384","2025-06-16","u","b","137"],["385","2025-06-27","u","b","137"],["387","2025-07-09","u","b","137"],["390","2025-07-26","u","b","138"],["392","2025-08-12","u","b","138"],["394","2025-08-26","u","b","139"],["395","2025-09-13","u","b","139"],["396","2025-09-20","u","b","139"],["397","2025-09-19","u","b","139"],["399","2025-09-28","u","b","140"],["400","2025-10-06","u","b","141"],["401","2025-10-08","u","b","141"],["404","2025-10-31","u","b","141"],["406","2025-11-16","u","b","141"],["407","2025-11-23","u","b","142"],["408","2025-11-28","u","b","142"],["409","2025-12-16","u","b","143"],["410","2025-12-17","u","b","143"]]}},r=[["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2024-03-19",{c:"116",ca:"116",e:"116",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2025-06-26",{c:"138",ca:"138",e:"138",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"17",ca:"18",e:"12",f:"5",fa:"5",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-16",{c:"123",ca:"123",e:"123",f:"125",fa:"125",s:"17.4",si:"17.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2024-07-09",{c:"77",ca:"77",e:"79",f:"128",fa:"128",s:"17.4",si:"17.4"}],["2016-06-07",{c:"32",ca:"30",e:"12",f:"47",fa:"47",s:"8",si:"8"}],["2023-07-04",{c:"112",ca:"112",e:"112",f:"115",fa:"115",s:"16",si:"16"}],["2015-09-30",{c:"43",ca:"43",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"84",ca:"84",e:"84",f:"80",fa:"80",s:"15.4",si:"15.4"}],["2023-10-24",{c:"103",ca:"103",e:"103",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2023-07-04",{c:"110",ca:"110",e:"110",f:"115",fa:"115",s:"16",si:"16"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"34",fa:"34",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2022-08-23",{c:"97",ca:"97",e:"97",f:"104",fa:"104",s:"15.4",si:"15.4"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"12",si:"12"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2024-01-25",{c:"121",ca:"121",e:"121",f:"115",fa:"115",s:"16.4",si:"16.4"}],["2024-03-05",{c:"117",ca:"117",e:"117",f:"119",fa:"119",s:"17.4",si:"17.4"}],["2016-09-20",{c:"47",ca:"47",e:"14",f:"43",fa:"43",s:"10",si:"10"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2018-05-09",{c:"66",ca:"66",e:"14",f:"60",fa:"60",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2021-09-20",{c:"88",ca:"88",e:"88",f:"89",fa:"89",s:"15",si:"15"}],["2017-04-05",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2024-06-11",{c:"76",ca:"76",e:"79",f:"127",fa:"127",s:"13.1",si:"13.4"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2025-04-01",{c:"133",ca:"133",e:"133",f:"137",fa:"137",s:"18.4",si:"18.4"}],["2025-11-11",{c:"90",ca:"90",e:"90",f:"145",fa:"145",s:"16.4",si:"16.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2021-04-26",{c:"66",ca:"66",e:"79",f:"76",fa:"79",s:"14.1",si:"14.5"}],["2023-02-09",{c:"110",ca:"110",e:"110",f:"86",fa:"86",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10.1",si:"10.3"}],["2024-01-26",{c:"85",ca:"85",e:"121",f:"93",fa:"93",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"47",fa:"47",s:"15.4",si:"15.4"}],["2024-09-16",{c:"76",ca:"76",e:"79",f:"103",fa:"103",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2022-03-14",{c:"1",ca:"18",e:"12",f:"25",fa:"25",s:"15.4",si:"15.4"}],["2020-01-15",{c:"35",ca:"59",e:"79",f:"30",fa:"54",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"4"}],["2015-07-29",{c:"25",ca:"25",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"49",fa:"49",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"9",fa:"18",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"4",fa:"4",s:"10",si:"10"}],["2020-01-15",{c:"16",ca:"18",e:"79",f:"10",fa:"10",s:"6",si:"6"}],["2015-07-29",{c:"≤15",ca:"18",e:"12",f:"10",fa:"10",s:"≤4",si:"≤3.2"}],["2018-04-12",{c:"39",ca:"42",e:"14",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2020-09-16",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"14",si:"14"}],["2021-09-20",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2017-02-01",{c:"56",ca:"56",e:"12",f:"50",fa:"50",s:"9.1",si:"9.3"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"14",s:"1",si:"3"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2022-03-14",{c:"54",ca:"54",e:"79",f:"38",fa:"38",s:"15.4",si:"15.4"}],["2017-09-19",{c:"50",ca:"51",e:"15",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"26",ca:"28",e:"12",f:"16",fa:"16",s:"7",si:"7"}],["2023-06-06",{c:"110",ca:"110",e:"110",f:"114",fa:"114",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2024-09-16",{c:"99",ca:"99",e:"99",f:"28",fa:"28",s:"18",si:"18"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"99",ca:"99",e:"99",f:"113",fa:"113",s:"17.2",si:"17.2"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"118",ca:"118",e:"118",f:"97",fa:"97",s:"17.2",si:"17.2"}],["2020-01-15",{c:"51",ca:"51",e:"79",f:"43",fa:"43",s:"11",si:"11"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"53",fa:"53",s:"11.1",si:"11.3"}],["2022-03-14",{c:"99",ca:"99",e:"99",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2020-01-15",{c:"49",ca:"49",e:"79",f:"47",fa:"47",s:"9",si:"9"}],["2015-07-29",{c:"27",ca:"27",e:"12",f:"1",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2015-09-22",{c:"4",ca:"18",e:"12",f:"41",fa:"41",s:"5",si:"4.2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"4"}],["2024-03-05",{c:"105",ca:"105",e:"105",f:"106",fa:"106",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2016-03-08",{c:"42",ca:"42",e:"13",f:"45",fa:"45",s:"9",si:"9"}],["2023-09-18",{c:"117",ca:"117",e:"117",f:"63",fa:"63",s:"17",si:"17"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"71",fa:"79",s:"13.1",si:"13"}],["2020-01-15",{c:"55",ca:"55",e:"79",f:"49",fa:"49",s:"12.1",si:"12.2"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"54",fa:"54",s:"13.1",si:"13.4"}],["2017-03-27",{c:"41",ca:"41",e:"12",f:"22",fa:"22",s:"10.1",si:"10.3"}],["2025-03-31",{c:"121",ca:"121",e:"121",f:"127",fa:"127",s:"18.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2023-02-14",{c:"58",ca:"58",e:"79",f:"110",fa:"110",s:"10",si:"10"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"16.2",si:"16.2"}],["2022-02-03",{c:"98",ca:"98",e:"98",f:"96",fa:"96",s:"13",si:"13"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2020-07-28",{c:"50",ca:"50",e:"12",f:"71",fa:"79",s:"9",si:"9"}],["2025-08-19",{c:"137",ca:"137",e:"137",f:"142",fa:"142",s:"17",si:"17"}],["2017-04-19",{c:"26",ca:"26",e:"12",f:"53",fa:"53",s:"7",si:"7"}],["2023-05-09",{c:"80",ca:"80",e:"80",f:"113",fa:"113",s:"16.4",si:"16.4"}],["2020-11-17",{c:"69",ca:"69",e:"79",f:"83",fa:"83",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"3",si:"1"}],["2018-12-11",{c:"40",ca:"40",e:"18",f:"51",fa:"64",s:"10.1",si:"10.3"}],["2023-03-27",{c:"73",ca:"73",e:"79",f:"101",fa:"101",s:"16.4",si:"16.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-09-12",{c:"105",ca:"105",e:"105",f:"101",fa:"101",s:"16",si:"16"}],["2023-09-18",{c:"83",ca:"83",e:"83",f:"107",fa:"107",s:"17",si:"17"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-07-26",{c:"52",ca:"52",e:"79",f:"103",fa:"103",s:"15.4",si:"15.4"}],["2023-02-14",{c:"105",ca:"105",e:"105",f:"110",fa:"110",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-15",{c:"108",ca:"108",e:"108",f:"130",fa:"130",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"≤4",si:"≤3.2"}],["2025-03-04",{c:"51",ca:"51",e:"12",f:"136",fa:"136",s:"5.1",si:"5"}],["2024-09-16",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2023-12-11",{c:"85",ca:"85",e:"85",f:"68",fa:"68",s:"17.2",si:"17.2"}],["2023-09-18",{c:"91",ca:"91",e:"91",f:"33",fa:"33",s:"17",si:"17"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"25",s:"3",si:"1"}],["2023-12-11",{c:"59",ca:"59",e:"79",f:"98",fa:"98",s:"17.2",si:"17.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"60",fa:"60",s:"13",si:"13"}],["2016-08-02",{c:"25",ca:"25",e:"14",f:"23",fa:"23",s:"7",si:"7"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"31",fa:"31",s:"10.1",si:"10.3"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"55",fa:"55",s:"11",si:"11"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2017-04-05",{c:"49",ca:"49",e:"15",f:"31",fa:"31",s:"9.1",si:"9.3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"≤4",ca:"18",e:"12",f:"≤2",fa:"4",s:"≤3.1",si:"≤2"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-02-20",{c:"111",ca:"111",e:"111",f:"123",fa:"123",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"10",ca:"18",e:"79",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2020-01-15",{c:"12",ca:"18",e:"79",f:"49",fa:"49",s:"6",si:"6"}],["2025-09-16",{c:"131",ca:"131",e:"131",f:"143",fa:"143",s:"18.4",si:"18.4"}],["2024-09-03",{c:"120",ca:"120",e:"120",f:"130",fa:"130",s:"17.2",si:"17.2"}],["2023-09-18",{c:"31",ca:"31",e:"12",f:"6",fa:"6",s:"17",si:"4.2"}],["2015-07-29",{c:"15",ca:"18",e:"12",f:"1",fa:"4",s:"6",si:"6"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"98",fa:"98",s:"15.4",si:"15.4"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"49",fa:"49",s:"16.4",si:"16.4"}],["2023-08-01",{c:"17",ca:"18",e:"79",f:"116",fa:"116",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"53",fa:"53",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["≤2017-04-05",{c:"1",ca:"18",e:"≤15",f:"3",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"128",ca:"128",e:"128",f:"20",fa:"20",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"33",fa:"33",s:"11",si:"11"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"4",si:"3.2"}],["2016-03-21",{c:"31",ca:"31",e:"12",f:"12",fa:"14",s:"9.1",si:"9.3"}],["2019-09-19",{c:"14",ca:"18",e:"18",f:"20",fa:"20",s:"10.1",si:"13"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2022-05-03",{c:"98",ca:"98",e:"98",f:"100",fa:"100",s:"13.1",si:"13.4"}],["2020-01-15",{c:"43",ca:"43",e:"79",f:"46",fa:"46",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1.5",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2019-03-25",{c:"42",ca:"42",e:"13",f:"38",fa:"38",s:"12.1",si:"12.2"}],["2021-11-02",{c:"77",ca:"77",e:"79",f:"94",fa:"94",s:"13.1",si:"13.4"}],["2021-09-20",{c:"93",ca:"93",e:"93",f:"91",fa:"91",s:"15",si:"15"}],["2025-12-12",{c:"76",ca:"76",e:"79",f:"89",fa:"89",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2017-03-27",{c:"52",ca:"52",e:"14",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2018-04-30",{c:"38",ca:"38",e:"17",f:"47",fa:"35",s:"9",si:"9"}],["2021-09-20",{c:"56",ca:"56",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2020-09-16",{c:"63",ca:"63",e:"17",f:"47",fa:"36",s:"14",si:"14"}],["2020-02-07",{c:"40",ca:"40",e:"80",f:"58",fa:"28",s:"9",si:"9"}],["2016-06-07",{c:"34",ca:"34",e:"12",f:"47",fa:"47",s:"9.1",si:"9.3"}],["2017-03-27",{c:"42",ca:"42",e:"14",f:"39",fa:"39",s:"10.1",si:"10.3"}],["2024-10-29",{c:"103",ca:"103",e:"103",f:"132",fa:"132",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"8",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"28",fa:"28",s:"10.1",si:"10.3"}],["2021-04-26",{c:"89",ca:"89",e:"89",f:"82",fa:"82",s:"14.1",si:"14.5"}],["2016-09-07",{c:"53",ca:"53",e:"12",f:"35",fa:"35",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-11-02",{c:"46",ca:"46",e:"79",f:"94",fa:"94",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"29",ca:"29",e:"12",f:"20",fa:"20",s:"9",si:"9"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"63",fa:"63",s:"14.1",si:"14.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-04-04",{c:"135",ca:"135",e:"135",f:"129",fa:"129",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"24",fa:"24",s:"3.1",si:"2"}],["2022-03-14",{c:"86",ca:"86",e:"86",f:"85",fa:"85",s:"15.4",si:"15.4"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2016-09-20",{c:"36",ca:"36",e:"14",f:"39",fa:"39",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-09-07",{c:"56",ca:"56",e:"79",f:"92",fa:"92",s:"11",si:"11"}],["2017-04-05",{c:"48",ca:"48",e:"15",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"33",ca:"33",e:"79",f:"32",fa:"32",s:"9",si:"9"}],["2020-01-15",{c:"35",ca:"35",e:"79",f:"41",fa:"41",s:"10",si:"10"}],["2020-03-24",{c:"79",ca:"79",e:"17",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2022-11-15",{c:"101",ca:"101",e:"101",f:"107",fa:"107",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-07-25",{c:"127",ca:"127",e:"127",f:"118",fa:"118",s:"17",si:"17"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-01-06",{c:"97",ca:"97",e:"97",f:"34",fa:"34",s:"9",si:"9"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"34",ca:"34",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2018-09-05",{c:"62",ca:"62",e:"17",f:"62",fa:"62",s:"11",si:"11"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"89",ca:"89",e:"79",f:"89",fa:"89",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-03-27",{c:"77",ca:"77",e:"79",f:"98",fa:"98",s:"16.4",si:"16.4"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"35",ca:"35",e:"12",f:"29",fa:"32",s:"10.1",si:"10.3"}],["2016-09-20",{c:"39",ca:"39",e:"13",f:"26",fa:"26",s:"10",si:"10"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3.5",fa:"4",s:"5",si:"≤3"}],["2015-07-29",{c:"11",ca:"18",e:"12",f:"3.5",fa:"4",s:"5.1",si:"5"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2020-01-15",{c:"71",ca:"71",e:"79",f:"65",fa:"65",s:"12.1",si:"12.2"}],["2024-06-11",{c:"111",ca:"111",e:"111",f:"127",fa:"127",s:"16.2",si:"16.2"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"3.6",fa:"4",s:"7",si:"7"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2022-10-27",{c:"107",ca:"107",e:"107",f:"66",fa:"66",s:"16",si:"16"}],["2022-03-14",{c:"37",ca:"37",e:"15",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2023-12-19",{c:"105",ca:"105",e:"105",f:"121",fa:"121",s:"15.4",si:"15.4"}],["2020-03-24",{c:"74",ca:"74",e:"79",f:"67",fa:"67",s:"13.1",si:"13.4"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"11",fa:"14",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2024-09-16",{c:"87",ca:"87",e:"87",f:"88",fa:"88",s:"18",si:"18"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"96",fa:"96",s:"15",si:"15"}],["2023-09-18",{c:"106",ca:"106",e:"106",f:"98",fa:"98",s:"17",si:"17"}],["2023-09-18",{c:"88",ca:"55",e:"88",f:"43",fa:"43",s:"17",si:"17"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-10-03",{c:"106",ca:"106",e:"106",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"17",fa:"17",s:"5",si:"4"}],["2020-01-15",{c:"20",ca:"25",e:"79",f:"25",fa:"25",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-04-13",{c:"81",ca:"81",e:"81",f:"26",fa:"26",s:"13.1",si:"13.4"}],["2021-10-05",{c:"41",ca:"41",e:"79",f:"93",fa:"93",s:"10",si:"10"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"89",fa:"89",s:"17",si:"17"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"50",fa:"50",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"89",ca:"89",e:"89",f:"108",fa:"108",s:"16.4",si:"16.4"}],["2020-01-15",{c:"39",ca:"39",e:"79",f:"51",fa:"51",s:"10",si:"10"}],["2021-09-20",{c:"58",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2022-08-05",{c:"104",ca:"104",e:"104",f:"72",fa:"79",s:"14.1",si:"14.5"}],["2023-04-11",{c:"102",ca:"102",e:"102",f:"112",fa:"112",s:"15.5",si:"15.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-11-12",{c:"1",ca:"18",e:"13",f:"19",fa:"19",s:"1.2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"3",si:"1"}],["2021-04-26",{c:"20",ca:"25",e:"12",f:"57",fa:"57",s:"14.1",si:"5"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"3"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"6",fa:"6",s:"3.1",si:"2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2025-08-19",{c:"13",ca:"132",e:"13",f:"50",fa:"142",s:"11.1",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-16",{c:"4",ca:"57",e:"12",f:"23",fa:"52",s:"3.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-12-07",{c:"66",ca:"66",e:"79",f:"95",fa:"79",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2018-12-11",{c:"41",ca:"41",e:"12",f:"64",fa:"64",s:"9",si:"9"}],["2019-03-25",{c:"58",ca:"58",e:"16",f:"55",fa:"55",s:"12.1",si:"12.2"}],["2017-09-28",{c:"24",ca:"25",e:"12",f:"29",fa:"56",s:"10",si:"10"}],["2021-04-26",{c:"81",ca:"81",e:"81",f:"86",fa:"86",s:"14.1",si:"14.5"}],["2025-03-04",{c:"129",ca:"129",e:"129",f:"136",fa:"136",s:"16.4",si:"16.4"}],["2021-04-26",{c:"72",ca:"72",e:"79",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2020-09-16",{c:"74",ca:"74",e:"79",f:"75",fa:"79",s:"14",si:"14"}],["2019-09-19",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"13",si:"13"}],["2020-09-16",{c:"71",ca:"71",e:"79",f:"76",fa:"79",s:"14",si:"14"}],["2024-04-16",{c:"87",ca:"87",e:"87",f:"125",fa:"125",s:"14.1",si:"14.5"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2018-04-12",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"11.1",si:"11.3"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"36",fa:"36",s:"8",si:"8"}],["2025-03-31",{c:"122",ca:"122",e:"122",f:"131",fa:"131",s:"18.4",si:"18.4"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"1",fa:"4",s:"5",si:"4.2"}],["2018-05-09",{c:"61",ca:"61",e:"16",f:"60",fa:"60",s:"11",si:"11"}],["2023-06-06",{c:"80",ca:"80",e:"80",f:"114",fa:"114",s:"15",si:"15"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"4"}],["2025-04-29",{c:"123",ca:"123",e:"123",f:"138",fa:"138",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"6",fa:"6",s:"1.2",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"77",ca:"77",e:"79",f:"122",fa:"122",s:"26.2",si:"26.2"}],["2020-01-15",{c:"48",ca:"48",e:"79",f:"50",fa:"50",s:"11",si:"11"}],["2016-09-20",{c:"49",ca:"49",e:"14",f:"44",fa:"44",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-11-21",{c:"109",ca:"109",e:"109",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2024-05-13",{c:"123",ca:"123",e:"123",f:"120",fa:"120",s:"17.5",si:"17.5"}],["2020-07-28",{c:"83",ca:"83",e:"83",f:"69",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"113",ca:"113",e:"113",f:"112",fa:"112",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-09-15",{c:"46",ca:"46",e:"79",f:"127",fa:"127",s:"5",si:"26"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"39",fa:"39",s:"11.1",si:"11.3"}],["2021-01-26",{c:"50",ca:"50",e:"79",f:"85",fa:"85",s:"11.1",si:"11.3"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"50",fa:"50",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-19",{c:"77",ca:"77",e:"79",f:"121",fa:"121",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"6",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2021-09-20",{c:"89",ca:"89",e:"89",f:"66",fa:"66",s:"15",si:"15"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"21",fa:"21",s:"7",si:"7"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"24",ca:"25",e:"79",f:"35",fa:"35",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"53",fa:"53",s:"15.4",si:"15.4"}],["2015-07-29",{c:"9",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2023-01-12",{c:"109",ca:"109",e:"109",f:"4",fa:"4",s:"5.1",si:"5"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"63",fa:"63",s:"15.4",si:"15.4"}],["2017-09-19",{c:"53",ca:"53",e:"12",f:"36",fa:"36",s:"11",si:"11"}],["2020-02-04",{c:"80",ca:"80",e:"12",f:"42",fa:"42",s:"8",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"104",ca:"104",e:"104",f:"102",fa:"102",s:"16.4",si:"16.4"}],["2021-04-26",{c:"49",ca:"49",e:"79",f:"25",fa:"25",s:"14.1",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"60",ca:"60",e:"18",f:"57",fa:"57",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-10-02",{c:"6",ca:"18",e:"18",f:"56",fa:"56",s:"6",si:"10.3"}],["2020-07-28",{c:"79",ca:"79",e:"79",f:"75",fa:"79",s:"13.1",si:"13.4"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"66",fa:"66",s:"11",si:"11"}],["2015-07-29",{c:"18",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"32",fa:"32",s:"8",si:"8"}],["2020-01-15",{c:"≤79",ca:"≤79",e:"79",f:"≤23",fa:"≤23",s:"≤9.1",si:"≤9.3"}],["2022-09-02",{c:"105",ca:"105",e:"105",f:"103",fa:"103",s:"15.6",si:"15.6"}],["2023-09-18",{c:"66",ca:"66",e:"79",f:"115",fa:"115",s:"17",si:"17"}],["2022-09-12",{c:"55",ca:"55",e:"79",f:"72",fa:"79",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"14",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2021-10-25",{c:"57",ca:"57",e:"12",f:"58",fa:"58",s:"15",si:"15.1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"120",ca:"120",e:"120",f:"117",fa:"117",s:"17.2",si:"17.2"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"84",fa:"84",s:"9",si:"9"}],["2023-03-27",{c:"20",ca:"42",e:"14",f:"22",fa:"22",s:"7",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"9",si:"9"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-07-28",{c:"75",ca:"75",e:"79",f:"70",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2022-03-14",{c:"93",ca:"93",e:"93",f:"92",fa:"92",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2021-04-26",{c:"80",ca:"80",e:"80",f:"71",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"10",fa:"10",s:"8",si:"8"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-07-29",{c:"29",ca:"29",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2016-08-02",{c:"27",ca:"27",e:"14",f:"29",fa:"29",s:"8",si:"8"}],["2018-04-30",{c:"24",ca:"25",e:"17",f:"25",fa:"25",s:"8",si:"9"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"105",fa:"105",s:"16.4",si:"16.4"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["≤2020-03-24",{c:"≤80",ca:"≤80",e:"≤80",f:"1.5",fa:"4",s:"≤13.1",si:"≤13.4"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2023-03-27",{c:"108",ca:"109",e:"108",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"88",fa:"88",s:"16.4",si:"16.4"}],["2017-04-05",{c:"1",ca:"18",e:"15",f:"1.5",fa:"4",s:"1.2",si:"1"}],["≤2018-10-02",{c:"10",ca:"18",e:"≤18",f:"4",fa:"4",s:"7",si:"7"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"66",fa:"66",s:"17",si:"17"}],["2022-09-12",{c:"90",ca:"90",e:"90",f:"81",fa:"81",s:"16",si:"16"}],["2020-03-24",{c:"68",ca:"68",e:"79",f:"61",fa:"61",s:"13.1",si:"13.4"}],["2018-10-02",{c:"23",ca:"25",e:"18",f:"49",fa:"49",s:"7",si:"7"}],["2022-09-12",{c:"63",ca:"63",e:"18",f:"59",fa:"59",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2019-01-29",{c:"50",ca:"50",e:"12",f:"65",fa:"65",s:"10",si:"10"}],["2024-12-11",{c:"15",ca:"18",e:"79",f:"95",fa:"95",s:"18.2",si:"18.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"1.5",fa:"4",s:"5",si:"4"}],["2015-07-29",{c:"33",ca:"33",e:"12",f:"18",fa:"18",s:"7",si:"7"}],["2021-04-26",{c:"60",ca:"60",e:"79",f:"84",fa:"84",s:"14.1",si:"14.5"}],["2025-09-15",{c:"124",ca:"124",e:"124",f:"128",fa:"128",s:"26",si:"26"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2015-09-16",{c:"6",ca:"18",e:"12",f:"7",fa:"7",s:"8",si:"9"}],["2022-09-12",{c:"44",ca:"44",e:"79",f:"46",fa:"46",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2016-03-21",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"9.1",si:"9.3"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"51",fa:"51",s:"10.1",si:"10.3"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"51",fa:"51",s:"9",si:"9"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2020-07-28",{c:"55",ca:"55",e:"12",f:"59",fa:"79",s:"13",si:"13"}],["2025-01-27",{c:"116",ca:"116",e:"116",f:"125",fa:"125",s:"17",si:"18.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"76",ca:"76",e:"79",f:"67",fa:"67",s:"12.1",si:"13"}],["2022-05-31",{c:"96",ca:"96",e:"96",f:"101",fa:"101",s:"14.1",si:"14.5"}],["2020-01-15",{c:"74",ca:"74",e:"79",f:"63",fa:"64",s:"10.1",si:"10.3"}],["2023-12-11",{c:"73",ca:"73",e:"79",f:"78",fa:"79",s:"17.2",si:"17.2"}],["2023-12-11",{c:"86",ca:"86",e:"86",f:"101",fa:"101",s:"17.2",si:"17.2"}],["2023-06-06",{c:"1",ca:"18",e:"12",f:"1",fa:"114",s:"1.1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2019-09-19",{c:"63",ca:"63",e:"12",f:"6",fa:"6",s:"13",si:"13"}],["2015-07-29",{c:"6",ca:"18",e:"12",f:"6",fa:"6",s:"6",si:"7"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"29",fa:"29",s:"8",si:"8"}],["2020-07-28",{c:"76",ca:"76",e:"79",f:"71",fa:"79",s:"13",si:"13"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2018-10-02",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2025-01-07",{c:"128",ca:"128",e:"128",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-03-05",{c:"119",ca:"119",e:"119",f:"121",fa:"121",s:"17.4",si:"17.4"}],["2016-09-20",{c:"49",ca:"49",e:"12",f:"18",fa:"18",s:"10",si:"10"}],["2023-03-27",{c:"50",ca:"50",e:"17",f:"44",fa:"48",s:"16",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-03-24",{c:"63",ca:"63",e:"79",f:"49",fa:"49",s:"13.1",si:"13.4"}],["2020-07-28",{c:"71",ca:"71",e:"79",f:"69",fa:"79",s:"12.1",si:"12.2"}],["2021-04-26",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"14.1",si:"14.5"}],["2020-07-28",{c:"1",ca:"18",e:"13",f:"78",fa:"79",s:"4",si:"3.2"}],["2024-01-23",{c:"119",ca:"119",e:"119",f:"122",fa:"122",s:"17.2",si:"17.2"}],["2021-09-20",{c:"85",ca:"85",e:"85",f:"87",fa:"87",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-07-09",{c:"85",ca:"85",e:"85",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.6",fa:"4",s:"5",si:"4"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"23",fa:"23",s:"7",si:"7"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2024-10-29",{c:"83",ca:"83",e:"83",f:"132",fa:"132",s:"15.4",si:"15.4"}],["2025-05-27",{c:"134",ca:"134",e:"134",f:"139",fa:"139",s:"18.4",si:"18.4"}],["2024-07-09",{c:"111",ca:"111",e:"111",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2020-07-28",{c:"64",ca:"64",e:"79",f:"69",fa:"79",s:"13.1",si:"13.4"}],["2022-09-12",{c:"68",ca:"68",e:"79",f:"62",fa:"62",s:"16",si:"16"}],["2018-10-23",{c:"1",ca:"18",e:"12",f:"63",fa:"63",s:"3",si:"1"}],["2023-03-27",{c:"54",ca:"54",e:"17",f:"45",fa:"45",s:"16.4",si:"16.4"}],["2017-09-19",{c:"29",ca:"29",e:"12",f:"35",fa:"35",s:"11",si:"11"}],["2020-07-27",{c:"84",ca:"84",e:"84",f:"67",fa:"67",s:"9.1",si:"9.3"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2023-11-21",{c:"111",ca:"111",e:"111",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"118",fa:"118",s:"17.2",si:"17.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"38",fa:"38",s:"5",si:"4.2"}],["2024-12-11",{c:"128",ca:"128",e:"128",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2024-12-11",{c:"84",ca:"84",e:"84",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-12-09",{c:"118",ca:"118",e:"118",f:"146",fa:"146",s:"17.4",si:"17.4"}],["2020-01-15",{c:"27",ca:"27",e:"79",f:"32",fa:"32",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"38",ca:"39",e:"79",f:"43",fa:"43",s:"16.4",si:"16.4"}],["2025-03-31",{c:"84",ca:"84",e:"84",f:"126",fa:"126",s:"16.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"113",fa:"113",s:"17",si:"17"}],["2022-03-14",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"15.4",si:"15.4"}],["2020-09-16",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"14",si:"14"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"68",fa:"68",s:"11",si:"11"}],["2024-10-01",{c:"80",ca:"80",e:"80",f:"131",fa:"131",s:"16.1",si:"16.1"}],["2025-12-12",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"26.2",si:"26.2"}],["2024-12-11",{c:"94",ca:"94",e:"94",f:"97",fa:"97",s:"18.2",si:"18.2"}],["2024-12-11",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"18.2",si:"18.2"}],["2025-12-12",{c:"114",ca:"114",e:"114",f:"109",fa:"109",s:"26.2",si:"26.2"}],["2023-10-13",{c:"118",ca:"118",e:"118",f:"118",fa:"118",s:"17",si:"17"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"11",ca:"18",e:"12",f:"52",fa:"52",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"6",ca:"18",e:"79",f:"6",fa:"45",s:"5",si:"5"}],["2023-03-27",{c:"65",ca:"65",e:"79",f:"61",fa:"61",s:"16.4",si:"16.4"}],["2018-04-30",{c:"45",ca:"45",e:"17",f:"44",fa:"44",s:"11.1",si:"11.3"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2024-06-11",{c:"122",ca:"122",e:"122",f:"127",fa:"127",s:"17",si:"17"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2020-07-28",{c:"73",ca:"73",e:"79",f:"72",fa:"79",s:"13.1",si:"13.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"62",fa:"62",s:"10.1",si:"10.3"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"54",fa:"54",s:"10.1",si:"10.3"}],["2021-12-13",{c:"68",ca:"89",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2023-03-27",{c:"92",ca:"92",e:"92",f:"92",fa:"92",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"19",ca:"25",e:"79",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-01-15",{c:"18",ca:"18",e:"79",f:"55",fa:"55",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-09-05",{c:"33",ca:"33",e:"14",f:"49",fa:"62",s:"7",si:"7"}],["2017-11-28",{c:"9",ca:"47",e:"12",f:"2",fa:"57",s:"5.1",si:"5"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2017-03-27",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"10.1",si:"10.3"}],["2020-01-15",{c:"70",ca:"70",e:"79",f:"3",fa:"4",s:"10.1",si:"10.3"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.5",si:"17.5"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"126",fa:"126",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"77",ca:"77",e:"79",f:"65",fa:"65",s:"14",si:"14"}],["2019-09-19",{c:"56",ca:"56",e:"16",f:"59",fa:"59",s:"13",si:"13"}],["2023-12-05",{c:"119",ca:"120",e:"85",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2023-09-18",{c:"61",ca:"61",e:"79",f:"57",fa:"57",s:"17",si:"17"}],["2022-06-28",{c:"67",ca:"67",e:"79",f:"102",fa:"102",s:"14.1",si:"14.5"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"29",fa:"29",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2020-01-15",{c:"73",ca:"73",e:"79",f:"67",fa:"67",s:"13",si:"13"}],["2016-09-20",{c:"34",ca:"34",e:"12",f:"31",fa:"31",s:"10",si:"10"}],["2017-04-05",{c:"57",ca:"57",e:"15",f:"48",fa:"48",s:"10",si:"10"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"24",fa:"24",s:"9",si:"9"}],["2020-08-27",{c:"85",ca:"85",e:"85",f:"77",fa:"79",s:"13.1",si:"13.4"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"17",fa:"17",s:"9",si:"9"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"61",fa:"61",s:"12",si:"12"}],["2023-10-24",{c:"111",ca:"111",e:"111",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2022-03-14",{c:"98",ca:"98",e:"98",f:"94",fa:"94",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2023-09-15",{c:"117",ca:"117",e:"117",f:"71",fa:"79",s:"16",si:"16"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2016-09-20",{c:"2",ca:"18",e:"12",f:"49",fa:"49",s:"4",si:"3.2"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"3",fa:"4",s:"3",si:"2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3",fa:"4",s:"6",si:"6"}],["2015-09-30",{c:"38",ca:"38",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-08-10",{c:"42",ca:"42",e:"79",f:"91",fa:"91",s:"13.1",si:"13.4"}],["2018-10-02",{c:"1",ca:"18",e:"18",f:"1.5",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"2"}],["2024-12-11",{c:"89",ca:"89",e:"89",f:"131",fa:"131",s:"18.2",si:"18.2"}],["2015-11-12",{c:"26",ca:"26",e:"13",f:"22",fa:"22",s:"8",si:"8"}],["2020-01-15",{c:"62",ca:"62",e:"79",f:"53",fa:"53",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"47",ca:"47",e:"12",f:"49",fa:"49",s:"16",si:"16"}],["2022-03-14",{c:"48",ca:"48",e:"79",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-03",{c:"99",ca:"99",e:"99",f:"46",fa:"46",s:"7",si:"7"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"19",fa:"19",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"48",ca:"48",e:"79",f:"41",fa:"41",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"7",fa:"7",s:"1.3",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.5",fa:"4",s:"1.1",si:"1"}],["2017-04-05",{c:"4",ca:"18",e:"15",f:"49",fa:"49",s:"3",si:"2"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-11-19",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"12.1",si:"12.2"}],["2020-07-28",{c:"33",ca:"33",e:"12",f:"74",fa:"79",s:"12.1",si:"12.2"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-05-13",{c:"114",ca:"114",e:"114",f:"121",fa:"121",s:"17.5",si:"17.5"}],["2024-10-17",{c:"130",ca:"130",e:"130",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-10-17",{c:"130",ca:"130",e:"130",f:"121",fa:"121",s:"17.5",si:"17.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2019-09-19",{c:"36",ca:"36",e:"12",f:"52",fa:"52",s:"13",si:"9.3"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"122",fa:"122",s:"17.4",si:"17.4"}],["2024-04-16",{c:"118",ca:"118",e:"118",f:"125",fa:"125",s:"13.1",si:"13.4"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"15.4",si:"15.4"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.4",si:"17.4"}],["2015-09-30",{c:"26",ca:"26",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2023-03-14",{c:"19",ca:"25",e:"79",f:"111",fa:"111",s:"6",si:"6"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"108",fa:"108",s:"15.4",si:"15.4"}],["2023-07-21",{c:"115",ca:"115",e:"115",f:"70",fa:"79",s:"15",si:"15"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-05",{c:"140",ca:"140",e:"140",f:"133",fa:"133",s:"18.2",si:"18.2"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2016-03-21",{c:"41",ca:"41",e:"13",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"102",fa:"102",s:"17",si:"17"}],["2018-04-30",{c:"44",ca:"44",e:"17",f:"48",fa:"48",s:"10.1",si:"10.3"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"19",fa:"19",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"115",fa:"115",s:"17",si:"17"}],["2025-09-15",{c:"95",ca:"95",e:"95",f:"142",fa:"142",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["2023-11-21",{c:"72",ca:"72",e:"79",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"88",fa:"88",s:"16.5",si:"16.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-18",{c:"124",ca:"124",e:"124",f:"120",fa:"120",s:"17.4",si:"17.4"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2025-10-14",{c:"125",ca:"125",e:"125",f:"144",fa:"144",s:"18.2",si:"18.2"}],["2025-10-14",{c:"111",ca:"111",e:"111",f:"144",fa:"144",s:"18",si:"18"}],["2022-12-05",{c:"108",ca:"108",e:"108",f:"101",fa:"101",s:"15.4",si:"15.4"}],["2017-10-17",{c:"26",ca:"26",e:"16",f:"19",fa:"19",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2021-08-10",{c:"61",ca:"61",e:"79",f:"91",fa:"68",s:"13",si:"13"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"11",si:"11"}],["2021-04-26",{c:"85",ca:"85",e:"85",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2021-10-25",{c:"75",ca:"75",e:"79",f:"78",fa:"79",s:"15.1",si:"15.1"}],["2022-05-03",{c:"95",ca:"95",e:"95",f:"100",fa:"100",s:"15.2",si:"15.2"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"112",fa:"112",s:"17.4",si:"17.4"}],["2024-12-11",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18.2",si:"18.2"}],["2020-10-20",{c:"86",ca:"86",e:"86",f:"78",fa:"79",s:"13.1",si:"13.4"}],["2020-03-24",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2021-10-25",{c:"75",ca:"75",e:"18",f:"64",fa:"64",s:"15.1",si:"15.1"}],["2021-11-19",{c:"96",ca:"96",e:"96",f:"79",fa:"79",s:"15.1",si:"15.1"}],["2021-04-26",{c:"69",ca:"69",e:"18",f:"62",fa:"62",s:"14.1",si:"14.5"}],["2023-03-27",{c:"91",ca:"91",e:"91",f:"89",fa:"89",s:"16.4",si:"16.4"}],["2024-12-11",{c:"112",ca:"112",e:"112",f:"121",fa:"121",s:"18.2",si:"18.2"}],["2021-12-13",{c:"74",ca:"88",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2024-09-16",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"79",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"36",ca:"36",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2020-09-16",{c:"84",ca:"84",e:"84",f:"75",fa:"79",s:"14",si:"14"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2015-07-29",{c:"37",ca:"37",e:"12",f:"34",fa:"34",s:"11",si:"11"}],["2022-03-14",{c:"69",ca:"69",e:"79",f:"96",fa:"96",s:"15.4",si:"15.4"}],["2021-09-07",{c:"67",ca:"70",e:"18",f:"60",fa:"92",s:"13",si:"13"}],["2023-10-24",{c:"85",ca:"85",e:"85",f:"119",fa:"119",s:"16",si:"16"}],["2015-07-29",{c:"9",ca:"25",e:"12",f:"4",fa:"4",s:"5.1",si:"8"}],["2021-09-20",{c:"63",ca:"63",e:"17",f:"30",fa:"30",s:"14",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"53",fa:"53",s:"12",si:"12"}],["2017-04-19",{c:"33",ca:"33",e:"12",f:"53",fa:"53",s:"9.1",si:"9.3"}],["2020-09-16",{c:"47",ca:"47",e:"79",f:"56",fa:"56",s:"14",si:"14"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"22",fa:"22",s:"8",si:"8"}],["2018-04-30",{c:"26",ca:"26",e:"17",f:"22",fa:"22",s:"8",si:"8"}],["2022-12-13",{c:"100",ca:"100",e:"100",f:"108",fa:"108",s:"16",si:"16"}],["2021-09-20",{c:"56",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-09-16",{c:"9",ca:"18",e:"18",f:"65",fa:"65",s:"14",si:"14"}],["2020-01-15",{c:"56",ca:"56",e:"79",f:"22",fa:"24",s:"11",si:"11"}],["2025-10-03",{c:"141",ca:"141",e:"141",f:"117",fa:"117",s:"15.4",si:"15.4"}],["2023-05-09",{c:"76",ca:"76",e:"79",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"11",fa:"14",s:"5",si:"4.2"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"8"}],["2020-01-15",{c:"23",ca:"25",e:"79",f:"31",fa:"31",s:"6",si:"8"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"36",ca:"36",e:"79",f:"36",fa:"36",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"15",fa:"15",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"48",ca:"48",e:"12",f:"41",fa:"41",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3",fa:"4",s:"1",si:"1"}],["2024-05-14",{c:"1",ca:"18",e:"12",f:"126",fa:"126",s:"3.1",si:"3"}]],c={w:"WebKit",g:"Gecko",p:"Presto",b:"Blink"},e={r:"retired",c:"current",b:"beta",n:"nightly",p:"planned",u:"unknown",e:"esr"},f=s=>{const a={};return Object.entries(s).forEach(([s,r])=>{if(r.releases){a[s]||(a[s]={releases:{}});const f=a[s].releases;r.releases.forEach(s=>{f[s[0]]={version:s[0],release_date:"u"==s[1]?"unknown":s[1],status:e[s[2]],engine:s[3]?c[s[3]]:void 0,engine_version:s[4]}})}}),a},b=(()=>{const s=[];return r.forEach(a=>{var r;s.push({status:{baseline_low_date:a[0],support:(r=a[1],{chrome:r.c,chrome_android:r.ca,edge:r.e,firefox:r.f,firefox_android:r.fa,safari:r.s,safari_ios:r.si})}})}),s})(),u=f(s),i=f(a);let n=!1;function o(){n=!1}const g=["chrome","chrome_android","edge","firefox","firefox_android","safari","safari_ios"],t=Object.entries(u).filter(([s])=>g.includes(s)),l=["webview_android","samsunginternet_android","opera_android","opera"],w=[...Object.entries(u).filter(([s])=>l.includes(s)),...Object.entries(i)],p=["current","esr","retired","unknown","beta","nightly"];let d=!1;const v=s=>{if(!1===s.includeDownstreamBrowsers&&!0===s.includeKaiOS){if(console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")),"undefined"==typeof process||!process.exit)throw new Error("KaiOS configuration error: process.exit is not available");process.exit(1)}},_=s=>s&&s.startsWith("≤")?s.slice(1):s,h=(s,a)=>{if(s===a)return 0;const[r=0,c=0]=s.split(".",2).map(Number),[e=0,f=0]=a.split(".",2).map(Number);if(isNaN(r)||isNaN(c))throw new Error(`Invalid version: ${s}`);if(isNaN(e)||isNaN(f))throw new Error(`Invalid version: ${a}`);return r!==e?r>e?1:-1:c!==f?c>f?1:-1:0},m=s=>{let a=[];return s.forEach(s=>{let r=t.find(a=>a[0]===s.browser);if(r){Object.entries(r[1].releases).filter(([,s])=>p.includes(s.status)).sort((s,a)=>h(s[0],a[0])).forEach(([r,c])=>!!p.includes(c.status)&&(1===h(r,s.version)&&(a.push({browser:s.browser,version:r,release_date:c.release_date?c.release_date:"unknown"}),!0)))}}),a},O=(s,a=!1)=>{if(s.getFullYear()<2015&&!d&&console.warn(new Error("There are no browser versions compatible with Baseline before 2015.  You may receive unexpected results.")),s.getFullYear()<2002)throw new Error("None of the browsers in the core set were released before 2002.  Please use a date after 2002.");if(s.getFullYear()>(new Date).getFullYear())throw new Error("There are no browser versions compatible with Baseline in the future");const r=(s=>b.filter(a=>a.status.baseline_low_date&&new Date(a.status.baseline_low_date)<=s).map(s=>({baseline_low_date:s.status.baseline_low_date,support:s.status.support})))(s),c=(s=>{let a={};return Object.entries(t).forEach(([,s])=>{a[s[0]]={browser:s[0],version:"0",release_date:""}}),s.forEach(s=>{Object.entries(s.support).forEach(r=>{const c=r[0],e=_(r[1]);a[c]&&1===h(e,_(a[c].version))&&(a[c]={browser:c,version:e,release_date:s.baseline_low_date})})}),Object.values(a)})(r);return a?[...c,...m(c)].sort((s,a)=>s.browser<a.browser?-1:s.browser>a.browser?1:h(s.version,a.version)):c},y=(s=[],a=!0,r=!1)=>{const c=a=>{var r;return s&&s.length>0?null===(r=s.filter(s=>s.browser===a).sort((s,a)=>h(s.version,a.version))[0])||void 0===r?void 0:r.version:void 0},e=c("chrome"),f=c("firefox");if(!e&&!f)throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");let b=[];return w.filter(([s])=>!("kai_os"===s&&!r)).forEach(([s,r])=>{var c;if(!r.releases)return;let u=Object.entries(r.releases).filter(([,s])=>{const{engine:a,engine_version:r}=s;return!(!a||!r)&&("Blink"===a&&e?h(r,e)>=0:!("Gecko"!==a||!f)&&h(r,f)>=0)}).sort((s,a)=>h(s[0],a[0]));for(let r=0;r<u.length;r++){const e=u[r];if(e){const[r,f]=e;let u={browser:s,version:r,release_date:null!==(c=f.release_date)&&void 0!==c?c:"unknown"};if(f.engine&&f.engine_version&&(u.engine=f.engine,u.engine_version=f.engine_version),b.push(u),!a)break}}}),b};function E(s){var a,r,c,e,f,b,u;let i=null!=s?s:{},o={listAllCompatibleVersions:null!==(a=i.listAllCompatibleVersions)&&void 0!==a&&a,includeDownstreamBrowsers:null!==(r=i.includeDownstreamBrowsers)&&void 0!==r&&r,widelyAvailableOnDate:null!==(c=i.widelyAvailableOnDate)&&void 0!==c?c:void 0,targetYear:null!==(e=i.targetYear)&&void 0!==e?e:void 0,includeKaiOS:null!==(f=i.includeKaiOS)&&void 0!==f&&f,overrideLastUpdated:null!==(b=i.overrideLastUpdated)&&void 0!==b?b:void 0,suppressWarnings:null!==(u=i.suppressWarnings)&&void 0!==u&&u},g=new Date;if(v(o),o.widelyAvailableOnDate||o.targetYear)if(o.targetYear&&o.widelyAvailableOnDate){if(console.log(new Error("You cannot use targetYear and widelyAvailableOnDate at the same time.  Please remove one of these options and try again.")),"undefined"==typeof process||!process.exit)throw new Error("Configuration error: targetYear and widelyAvailableOnDate cannot be used together");process.exit(1)}else o.widelyAvailableOnDate?g=new Date(o.widelyAvailableOnDate):o.targetYear&&(g=new Date(`${o.targetYear}-12-31`));else g=new Date;(o.widelyAvailableOnDate||void 0===o.targetYear)&&g.setMonth(g.getMonth()-30);let t=O(g,o.listAllCompatibleVersions);return o.suppressWarnings||((s,a)=>{if(n||"undefined"!=typeof process&&process.env&&(process.env.BROWSERSLIST_IGNORE_OLD_DATA||process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA))return;const r=new Date;r.setMonth(r.getMonth()-2),s>r&&(null!=a?a:1766153488462)<r.getTime()&&(console.warn("[baseline-browser-mapping] The data in this module is over two months old and you are targetting a recent feature cut off date of "+s.toISOString().slice(0,10)+". To ensure accurate Baseline data, please update to the latest version of this module using your package manager of choice.\nYou can suppress these warnings using the environment variables `BROWSERSLIST_IGNORE_OLD_DATA=true` or `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true`.\nSome modules including `next.js` pre-compile data from this module via `browserslist` or other packages.\nPlease contact the maintainers of those modules if you are receiving these warnings and can't suppress them.\n"),n=!0)})(g,o.overrideLastUpdated),!1===o.includeDownstreamBrowsers?t:[...t,...y(t,o.listAllCompatibleVersions,o.includeKaiOS)]}function D(s){var a,r,c,e,f;d=!0;let b=null!=s?s:{},u={outputFormat:null!==(a=b.outputFormat)&&void 0!==a?a:"array",includeDownstreamBrowsers:null!==(r=b.includeDownstreamBrowsers)&&void 0!==r&&r,useSupports:null!==(c=b.useSupports)&&void 0!==c&&c,includeKaiOS:null!==(e=b.includeKaiOS)&&void 0!==e&&e,suppressWarnings:null!==(f=b.suppressWarnings)&&void 0!==f&&f};v(u);let i=(new Date).getFullYear()+1;const n=[...Array(i).keys()].slice(2002),o={};n.forEach(s=>{o[s]={},E({targetYear:s,suppressWarnings:u.suppressWarnings}).forEach(a=>{o[s]&&(o[s][a.browser]=a)})});const t=E({suppressWarnings:u.suppressWarnings}),l={};t.forEach(s=>{l[s.browser]=s});const w=new Date;w.setMonth(w.getMonth()+30);const p=E({widelyAvailableOnDate:w.toISOString().slice(0,10),suppressWarnings:u.suppressWarnings}),_={};p.forEach(s=>{_[s.browser]=s});const m=E({targetYear:2002,listAllCompatibleVersions:!0,suppressWarnings:u.suppressWarnings}),O=[];if(g.forEach(s=>{var a,r,c,e;let f=m.filter(a=>a.browser==s).sort((s,a)=>h(s.version,a.version)),b=null!==(r=null===(a=l[s])||void 0===a?void 0:a.version)&&void 0!==r?r:"0",g=null!==(e=null===(c=_[s])||void 0===c?void 0:c.version)&&void 0!==e?e:"0";n.forEach(a=>{var r;if(o[a]){let c=(null!==(r=o[a][s])&&void 0!==r?r:{version:"0"}).version,e=f.findIndex(s=>0===h(s.version,c));(a===i-1?f:f.slice(0,e)).forEach(s=>{let r=h(s.version,b)>=0,c=h(s.version,g)>=0,e=Object.assign(Object.assign({},s),{year:a<=2015?"pre_baseline":a-1});u.useSupports?(r&&(e.supports="widely"),c&&(e.supports="newly")):e=Object.assign(Object.assign({},e),{wa_compatible:r}),O.push(e)}),f=f.slice(e,f.length)}})}),u.includeDownstreamBrowsers){y(O,!0,u.includeKaiOS).forEach(s=>{let a=O.find(a=>"chrome"===a.browser&&a.version===s.engine_version);a&&(u.useSupports?O.push(Object.assign(Object.assign({},s),{year:a.year,supports:a.supports})):O.push(Object.assign(Object.assign({},s),{year:a.year,wa_compatible:a.wa_compatible})))})}if(O.sort((s,a)=>{if("pre_baseline"===s.year&&"pre_baseline"!==a.year)return-1;if("pre_baseline"===a.year&&"pre_baseline"!==s.year)return 1;if("pre_baseline"!==s.year&&"pre_baseline"!==a.year){if(s.year<a.year)return-1;if(s.year>a.year)return 1}return s.browser<a.browser?-1:s.browser>a.browser?1:h(s.version,a.version)}),"object"===u.outputFormat){const s={};return O.forEach(a=>{s[a.browser]||(s[a.browser]={});let r={year:a.year,release_date:a.release_date,engine:a.engine,engine_version:a.engine_version};s[a.browser][a.version]=u.useSupports?a.supports?Object.assign(Object.assign({},r),{supports:a.supports}):r:Object.assign(Object.assign({},r),{wa_compatible:a.wa_compatible})}),null!=s?s:{}}if("csv"===u.outputFormat){let s=`"browser","version","year","${u.useSupports?"supports":"wa_compatible"}","release_date","engine","engine_version"`;return O.forEach(a=>{var r,c,e,f;let b={browser:a.browser,version:a.version,year:a.year,release_date:null!==(r=a.release_date)&&void 0!==r?r:"NULL",engine:null!==(c=a.engine)&&void 0!==c?c:"NULL",engine_version:null!==(e=a.engine_version)&&void 0!==e?e:"NULL"};b=u.useSupports?Object.assign(Object.assign({},b),{supports:null!==(f=a.supports)&&void 0!==f?f:""}):Object.assign(Object.assign({},b),{wa_compatible:a.wa_compatible}),s+=`\n"${b.browser}","${b.version}","${b.year}","${u.useSupports?b.supports:b.wa_compatible}","${b.release_date}","${b.engine}","${b.engine_version}"`}),s}return O}export{o as _resetHasWarned,D as getAllVersions,E as getCompatibleVersions};
Index: de_modules/baseline-browser-mapping/package.json
===================================================================
--- node_modules/baseline-browser-mapping/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-{
-  "name": "baseline-browser-mapping",
-  "main": "./dist/index.cjs",
-  "version": "2.9.11",
-  "description": "A library for obtaining browser versions with their maximum supported Baseline feature set and Widely Available status.",
-  "exports": {
-    ".": {
-      "require": "./dist/index.cjs",
-      "types": "./dist/index.d.ts",
-      "default": "./dist/index.js"
-    },
-    "./legacy": {
-      "require": "./dist/index.cjs",
-      "types": "./dist/index.d.ts"
-    }
-  },
-  "jsdelivr": "./dist/index.js",
-  "files": [
-    "dist/*",
-    "!dist/scripts/*",
-    "LICENSE.txt",
-    "README.md"
-  ],
-  "types": "./dist/index.d.ts",
-  "type": "module",
-  "bin": {
-    "baseline-browser-mapping": "dist/cli.js"
-  },
-  "scripts": {
-    "fix-cli-permissions": "output=$(npx baseline-browser-mapping 2>&1); path=$(printf '%s\n' \"$output\" | sed -n 's/^.*: \\(.*\\): Permission denied$/\\1/p; t; s/^\\(.*\\): Permission denied$/\\1/p'); if [ -n \"$path\" ]; then echo \"Permission denied for: $path\"; echo \"Removing $path ...\"; rm -rf \"$path\"; else echo \"$output\"; fi",
-    "test:format": "npx prettier --check .",
-    "test:lint": "npx eslint .",
-    "test:jasmine": "npx jasmine",
-    "test:jasmine-browser": "npx jasmine-browser-runner runSpecs --config ./spec/support/jasmine-browser.js",
-    "test": "npm run build && npm run fix-cli-permissions && npm run test:format && npm run test:lint && npm run test:jasmine && npm run test:jasmine-browser",
-    "build": "rm -rf dist; npx prettier . --write; rollup -c; rm -rf ./dist/scripts/expose-data.d.ts ./dist/cli.d.ts",
-    "refresh-downstream": "npx tsx scripts/refresh-downstream.ts",
-    "refresh-static": "npx tsx scripts/refresh-static.ts",
-    "update-data-file": "npx tsx scripts/update-data-file.ts; npx prettier ./src/data/data.js --write",
-    "update-data-dependencies": "npm i @mdn/browser-compat-data@latest web-features@latest -D",
-    "check-data-changes": "git diff --name-only | grep -q '^src/data/data.js$' && echo 'changes-available=TRUE' || echo 'changes-available=FALSE'"
-  },
-  "license": "Apache-2.0",
-  "devDependencies": {
-    "@mdn/browser-compat-data": "^7.2.2",
-    "@rollup/plugin-terser": "^0.4.4",
-    "@rollup/plugin-typescript": "^12.1.3",
-    "@types/node": "^22.15.17",
-    "eslint-plugin-new-with-error": "^5.0.0",
-    "jasmine": "^5.8.0",
-    "jasmine-browser-runner": "^3.0.0",
-    "jasmine-spec-reporter": "^7.0.0",
-    "prettier": "^3.5.3",
-    "rollup": "^4.44.0",
-    "tslib": "^2.8.1",
-    "typescript": "^5.7.2",
-    "typescript-eslint": "^8.35.0",
-    "web-features": "^3.12.0"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/web-platform-dx/baseline-browser-mapping.git"
-  }
-}
Index: de_modules/browserslist/LICENSE
===================================================================
--- node_modules/browserslist/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-The MIT License (MIT)
-
-Copyright 2014 Andrey Sitnik <andrey@sitnik.ru> and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/browserslist/README.md
===================================================================
--- node_modules/browserslist/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-# Browserslist
-
-<img width="120" height="120" alt="Browserslist logo by Anton Popov"
-     src="https://browsersl.ist/logo.svg" align="right">
-
-The config to share target browsers and Node.js versions between different
-front-end tools. It is used in:
-
-* [Autoprefixer]
-* [Babel]
-* [postcss-preset-env]
-* [eslint-plugin-compat]
-* [stylelint-no-unsupported-browser-features]
-* [postcss-normalize]
-* [obsolete-webpack-plugin]
-
-All tools will find target browsers automatically,
-when you add the following to `package.json`:
-
-```json
-  "browserslist": [
-    "defaults and fully supports es6-module",
-    "maintained node versions"
-  ]
-```
-
-Or in `.browserslistrc` config:
-
-```yaml
-# Browsers that we support
-
-defaults and fully supports es6-module
-maintained node versions
-```
-
-Developers set their version lists using queries like `last 2 versions`
-to be free from updating versions manually.
-Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries.
-
-You can check how config works at our playground: [`browsersl.ist`](https://browsersl.ist/)
-
-<a href="https://browsersl.ist/">
-  <img src="/img/screenshot.webp" alt="browsersl.ist website">
-</a>
-
-<br>
-<br>
-<div align="center">
-  <a href="https://evilmartians.com/?utm_source=browserslist"><img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>  <a href="https://cube.dev/?ref=eco-browserslist-github"><img src="https://user-images.githubusercontent.com/986756/154330861-d79ab8ec-aacb-4af8-9e17-1b28f1eccb01.svg" alt="Supported by Cube" width="227" height="46"></a>
-</div>
-
-[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features
-[obsolete-webpack-plugin]:                   https://github.com/ElemeFE/obsolete-webpack-plugin
-[eslint-plugin-compat]:                      https://github.com/amilajack/eslint-plugin-compat
-[Browserslist Example]:                      https://github.com/browserslist/browserslist-example
-[postcss-preset-env]:                        https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env
-[postcss-normalize]:                         https://github.com/csstools/postcss-normalize
-[`browsersl.ist`]:                           https://browsersl.ist/
-[`caniuse-lite`]:                            https://github.com/ben-eb/caniuse-lite
-[Autoprefixer]:                              https://github.com/postcss/autoprefixer
-[Can I Use]:                                 https://caniuse.com/
-[Babel]:                                     https://github.com/babel/babel/tree/master/packages/babel-preset-env
-
-## Docs
-Read full docs **[here](https://github.com/browserslist/browserslist#readme)**.
Index: de_modules/browserslist/browser.js
===================================================================
--- node_modules/browserslist/browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-var BrowserslistError = require('./error')
-
-function noop() {}
-
-module.exports = {
-  loadQueries: function loadQueries() {
-    throw new BrowserslistError(
-      'Sharable configs are not supported in client-side build of Browserslist'
-    )
-  },
-
-  getStat: function getStat(opts) {
-    return opts.stats
-  },
-
-  loadConfig: function loadConfig(opts) {
-    if (opts.config) {
-      throw new BrowserslistError(
-        'Browserslist config are not supported in client-side build'
-      )
-    }
-  },
-
-  loadCountry: function loadCountry() {
-    throw new BrowserslistError(
-      'Country statistics are not supported ' +
-        'in client-side build of Browserslist'
-    )
-  },
-
-  loadFeature: function loadFeature() {
-    throw new BrowserslistError(
-      'Supports queries are not available in client-side build of Browserslist'
-    )
-  },
-
-  currentNode: function currentNode(resolve, context) {
-    return resolve(['maintained node versions'], context)[0]
-  },
-
-  parseConfig: noop,
-
-  readConfig: noop,
-
-  findConfig: noop,
-
-  findConfigFile: noop,
-
-  clearCaches: noop,
-
-  oldDataWarning: noop,
-
-  env: {}
-}
Index: de_modules/browserslist/cli.js
===================================================================
--- node_modules/browserslist/cli.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,156 +1,0 @@
-#!/usr/bin/env node
-
-var fs = require('fs')
-var updateDb = require('update-browserslist-db')
-
-var browserslist = require('./')
-var pkg = require('./package.json')
-
-var args = process.argv.slice(2)
-
-var USAGE =
-  'Usage:\n' +
-  '  npx browserslist\n' +
-  '  npx browserslist "QUERIES"\n' +
-  '  npx browserslist --json "QUERIES"\n' +
-  '  npx browserslist --config="path/to/browserlist/file"\n' +
-  '  npx browserslist --coverage "QUERIES"\n' +
-  '  npx browserslist --coverage=US "QUERIES"\n' +
-  '  npx browserslist --coverage=US,RU,global "QUERIES"\n' +
-  '  npx browserslist --env="environment name defined in config"\n' +
-  '  npx browserslist --stats="path/to/browserlist/stats/file"\n' +
-  '  npx browserslist --mobile-to-desktop\n' +
-  '  npx browserslist --ignore-unknown-versions\n'
-
-function isArg(arg) {
-  return args.some(function (str) {
-    return str === arg || str.indexOf(arg + '=') === 0
-  })
-}
-
-function error(msg) {
-  process.stderr.write('browserslist: ' + msg + '\n')
-  process.exit(1)
-}
-
-if (isArg('--help') || isArg('-h')) {
-  process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n')
-} else if (isArg('--version') || isArg('-v')) {
-  process.stdout.write('browserslist ' + pkg.version + '\n')
-} else if (isArg('--update-db')) {
-  /* c8 ignore next 8 */
-  process.stdout.write(
-    'The --update-db command is deprecated.\n' +
-      'Please use npx update-browserslist-db@latest instead.\n'
-  )
-  process.stdout.write('Browserslist DB update will still be made.\n')
-  updateDb(function (str) {
-    process.stdout.write(str)
-  })
-} else {
-  var mode = 'browsers'
-  var opts = {}
-  var queries
-  var areas
-
-  for (var i = 0; i < args.length; i++) {
-    if (args[i][0] !== '-') {
-      queries = args[i].replace(/^["']|["']$/g, '')
-      continue
-    }
-
-    var arg = args[i].split('=')
-    var name = arg[0]
-    var value = arg[1]
-
-    if (value) value = value.replace(/^["']|["']$/g, '')
-
-    if (name === '--config' || name === '-b') {
-      opts.config = value
-    } else if (name === '--env' || name === '-e') {
-      opts.env = value
-    } else if (name === '--stats' || name === '-s') {
-      opts.stats = value
-    } else if (name === '--coverage' || name === '-c') {
-      if (mode !== 'json') mode = 'coverage'
-      if (value) {
-        areas = value.split(',')
-      } else {
-        areas = ['global']
-      }
-    } else if (name === '--json') {
-      mode = 'json'
-    } else if (name === '--mobile-to-desktop') {
-      /* c8 ignore next */
-      opts.mobileToDesktop = true
-    } else if (name === '--ignore-unknown-versions') {
-      /* c8 ignore next */
-      opts.ignoreUnknownVersions = true
-    } else {
-      error('Unknown arguments ' + args[i] + '.\n\n' + USAGE)
-    }
-  }
-
-  var browsers
-  try {
-    browsers = browserslist(queries, opts)
-  } catch (e) {
-    if (e.name === 'BrowserslistError') {
-      error(e.message)
-    } /* c8 ignore start */ else {
-      throw e
-    } /* c8 ignore end */
-  }
-
-  var coverage
-  if (mode === 'browsers') {
-    browsers.forEach(function (browser) {
-      process.stdout.write(browser + '\n')
-    })
-  } else if (areas) {
-    coverage = areas.map(function (area) {
-      var stats
-      if (area !== 'global') {
-        stats = area
-      } else if (opts.stats) {
-        stats = JSON.parse(fs.readFileSync(opts.stats))
-      }
-      var result = browserslist.coverage(browsers, stats)
-      var round = Math.round(result * 100) / 100.0
-
-      return [area, round]
-    })
-
-    if (mode === 'coverage') {
-      var prefix = 'These browsers account for '
-      process.stdout.write(prefix)
-      coverage.forEach(function (data, index) {
-        var area = data[0]
-        var round = data[1]
-        var end = 'globally'
-        if (area && area !== 'global') {
-          end = 'in the ' + area.toUpperCase()
-        } else if (opts.stats) {
-          end = 'in custom statistics'
-        }
-
-        if (index !== 0) {
-          process.stdout.write(prefix.replace(/./g, ' '))
-        }
-
-        process.stdout.write(round + '% of all users ' + end + '\n')
-      })
-    }
-  }
-
-  if (mode === 'json') {
-    var data = { browsers: browsers }
-    if (coverage) {
-      data.coverage = coverage.reduce(function (object, j) {
-        object[j[0]] = j[1]
-        return object
-      }, {})
-    }
-    process.stdout.write(JSON.stringify(data, null, '  ') + '\n')
-  }
-}
Index: de_modules/browserslist/error.d.ts
===================================================================
--- node_modules/browserslist/error.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-declare class BrowserslistError extends Error {
-  constructor(message: any)
-  name: 'BrowserslistError'
-  browserslist: true
-}
-
-export = BrowserslistError
Index: de_modules/browserslist/error.js
===================================================================
--- node_modules/browserslist/error.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function BrowserslistError(message) {
-  this.name = 'BrowserslistError'
-  this.message = message
-  this.browserslist = true
-  if (Error.captureStackTrace) {
-    Error.captureStackTrace(this, BrowserslistError)
-  }
-}
-
-BrowserslistError.prototype = Error.prototype
-
-module.exports = BrowserslistError
Index: de_modules/browserslist/index.d.ts
===================================================================
--- node_modules/browserslist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,224 +1,0 @@
-/**
- * Return array of browsers by selection queries.
- *
- * ```js
- * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8']
- * ```
- *
- * @param queries Browser queries.
- * @param opts Options.
- * @returns Array with browser names in Can I Use.
- */
-declare function browserslist(
-  queries?: string | readonly string[] | null,
-  opts?: browserslist.Options
-): string[]
-
-declare namespace browserslist {
-  interface Query {
-    compose: 'or' | 'and'
-    type: string
-    query: string
-    not?: true
-  }
-
-  interface Options {
-    /**
-     * Path to processed file. It will be used to find config files.
-     */
-    path?: string | false
-    /**
-     * Processing environment. It will be used to take right queries
-     * from config file.
-     */
-    env?: string
-    /**
-     * Custom browser usage statistics for "> 1% in my stats" query.
-     */
-    stats?: Stats | string
-    /**
-     * Path to config file with queries.
-     */
-    config?: string
-    /**
-     * Do not throw on unknown version in direct query.
-     */
-    ignoreUnknownVersions?: boolean
-    /**
-     * Throw an error if env is not found.
-     */
-    throwOnMissing?: boolean
-    /**
-     * Disable security checks for extend query.
-     */
-    dangerousExtend?: boolean
-    /**
-     * Alias mobile browsers to the desktop version when Can I Use
-     * doesn’t have data about the specified version.
-     */
-    mobileToDesktop?: boolean
-  }
-
-  type Config = {
-    defaults: string[]
-    [section: string]: string[] | undefined
-  }
-
-  interface Stats {
-    [browser: string]: {
-      [version: string]: number
-    }
-  }
-
-  /**
-   * Browser names aliases.
-   */
-  let aliases: {
-    [alias: string]: string | undefined
-  }
-
-  /**
-   * Aliases to work with joined versions like `ios_saf 7.0-7.1`.
-   */
-  let versionAliases: {
-    [browser: string]:
-      | {
-          [version: string]: string | undefined
-        }
-      | undefined
-  }
-
-  /**
-   * Can I Use only provides a few versions for some browsers (e.g. `and_chr`).
-   *
-   * Fallback to a similar browser for unknown versions.
-   */
-  let desktopNames: {
-    [browser: string]: string | undefined
-  }
-
-  let data: {
-    [browser: string]:
-      | {
-          name: string
-          versions: string[]
-          released: string[]
-          releaseDate: {
-            [version: string]: number | undefined | null
-          }
-        }
-      | undefined
-  }
-
-  let nodeVersions: string[]
-
-  interface Usage {
-    [version: string]: number
-  }
-
-  let usage: {
-    global?: Usage
-    custom?: Usage | null
-    [country: string]: Usage | undefined | null
-  }
-
-  let cache: {
-    [feature: string]: {
-      [name: string]: {
-        [version: string]: string
-      }
-    }
-  }
-
-  /**
-   * Default browsers query
-   */
-  let defaults: readonly string[]
-
-  /**
-   * Which statistics should be used. Country code or custom statistics.
-   * Pass `"my stats"` to load statistics from `Browserslist` files.
-   */
-  type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats }
-
-  /**
-   * Return browsers market coverage.
-   *
-   * ```js
-   * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1
-   * ```
-   *
-   * @param browsers Browsers names in Can I Use.
-   * @param stats Which statistics should be used.
-   * @returns Total market coverage for all selected browsers.
-   */
-  function coverage(browsers: readonly string[], stats?: StatsOptions): number
-
-  /**
-   * Get queries AST to analyze the config content.
-   *
-   * @param queries Browser queries.
-   * @param opts Options.
-   * @returns An array of the data of each query in the config.
-   */
-  function parse(
-    queries?: string | readonly string[] | null,
-    opts?: browserslist.Options
-  ): Query[]
-
-  /**
-   * Return queries for specific file inside the project.
-   *
-   * ```js
-   * browserslist.loadConfig({
-   *   file: process.cwd()
-   * }) ?? browserslist.defaults
-   * ```
-   */
-  function loadConfig(options: LoadConfigOptions): string[] | undefined
-
-  function clearCaches(): void
-
-  function parseConfig(string: string): Config
-
-  function readConfig(file: string): Config
-
-  function findConfig(...pathSegments: string[]): Config | undefined
-
-  function findConfigFile(...pathSegments: string[]): string | undefined
-
-  interface LoadConfigOptions {
-    /**
-     * Path to config file
-     * */
-    config?: string
-
-    /**
-     * Path to file inside the project to find Browserslist config
-     * in closest folder
-     */
-    path?: string
-
-    /**
-     * Environment to choose part of config.
-     */
-    env?: string
-  }
-}
-
-declare global {
-  namespace NodeJS {
-    interface ProcessEnv {
-      BROWSERSLIST?: string
-      BROWSERSLIST_CONFIG?: string
-      BROWSERSLIST_DANGEROUS_EXTEND?: string
-      BROWSERSLIST_DISABLE_CACHE?: string
-      BROWSERSLIST_ENV?: string
-      BROWSERSLIST_IGNORE_OLD_DATA?: string
-      BROWSERSLIST_STATS?: string
-      BROWSERSLIST_ROOT_PATH?: string
-    }
-  }
-}
-
-export = browserslist
Index: de_modules/browserslist/index.js
===================================================================
--- node_modules/browserslist/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1335 +1,0 @@
-var bbm = require('baseline-browser-mapping')
-var jsReleases = require('node-releases/data/processed/envs.json')
-var agents = require('caniuse-lite/dist/unpacker/agents').agents
-var e2c = require('electron-to-chromium/versions')
-var jsEOL = require('node-releases/data/release-schedule/release-schedule.json')
-var path = require('path')
-
-var BrowserslistError = require('./error')
-var env = require('./node')
-var parseWithoutCache = require('./parse') // Will load browser.js in webpack
-
-var YEAR = 365.259641 * 24 * 60 * 60 * 1000
-var ANDROID_EVERGREEN_FIRST = '37'
-var OP_MOB_BLINK_FIRST = 14
-var FIREFOX_ESR_VERSION = '140'
-
-// Helpers
-
-function isVersionsMatch(versionA, versionB) {
-  return (versionA + '.').indexOf(versionB + '.') === 0
-}
-
-function isEolReleased(name) {
-  var version = name.slice(1)
-  return browserslist.nodeVersions.some(function (i) {
-    return isVersionsMatch(i, version)
-  })
-}
-
-function normalize(versions) {
-  return versions.filter(function (version) {
-    return typeof version === 'string'
-  })
-}
-
-function normalizeElectron(version) {
-  var versionToUse = version
-  if (version.split('.').length === 3) {
-    versionToUse = version.split('.').slice(0, -1).join('.')
-  }
-  return versionToUse
-}
-
-function nameMapper(name) {
-  return function mapName(version) {
-    return name + ' ' + version
-  }
-}
-
-function getMajor(version) {
-  return parseInt(version.split('.')[0])
-}
-
-function getMajorVersions(released, number) {
-  if (released.length === 0) return []
-  var majorVersions = uniq(released.map(getMajor))
-  var minimum = majorVersions[majorVersions.length - number]
-  if (!minimum) {
-    return released
-  }
-  var selected = []
-  for (var i = released.length - 1; i >= 0; i--) {
-    if (minimum > getMajor(released[i])) break
-    selected.unshift(released[i])
-  }
-  return selected
-}
-
-function uniq(array) {
-  var filtered = []
-  for (var i = 0; i < array.length; i++) {
-    if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])
-  }
-  return filtered
-}
-
-function fillUsage(result, name, data) {
-  for (var i in data) {
-    result[name + ' ' + i] = data[i]
-  }
-}
-
-function generateFilter(sign, version) {
-  version = parseFloat(version)
-  if (sign === '>') {
-    return function (v) {
-      return parseLatestFloat(v) > version
-    }
-  } else if (sign === '>=') {
-    return function (v) {
-      return parseLatestFloat(v) >= version
-    }
-  } else if (sign === '<') {
-    return function (v) {
-      return parseFloat(v) < version
-    }
-  } else {
-    return function (v) {
-      return parseFloat(v) <= version
-    }
-  }
-
-  function parseLatestFloat(v) {
-    return parseFloat(v.split('-')[1] || v)
-  }
-}
-
-function generateSemverFilter(sign, version) {
-  version = version.split('.').map(parseSimpleInt)
-  version[1] = version[1] || 0
-  version[2] = version[2] || 0
-  if (sign === '>') {
-    return function (v) {
-      v = v.split('.').map(parseSimpleInt)
-      return compareSemver(v, version) > 0
-    }
-  } else if (sign === '>=') {
-    return function (v) {
-      v = v.split('.').map(parseSimpleInt)
-      return compareSemver(v, version) >= 0
-    }
-  } else if (sign === '<') {
-    return function (v) {
-      v = v.split('.').map(parseSimpleInt)
-      return compareSemver(version, v) > 0
-    }
-  } else {
-    return function (v) {
-      v = v.split('.').map(parseSimpleInt)
-      return compareSemver(version, v) >= 0
-    }
-  }
-}
-
-function parseSimpleInt(x) {
-  return parseInt(x)
-}
-
-function compare(a, b) {
-  if (a < b) return -1
-  if (a > b) return +1
-  return 0
-}
-
-function compareSemver(a, b) {
-  return (
-    compare(parseInt(a[0]), parseInt(b[0])) ||
-    compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||
-    compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))
-  )
-}
-
-// this follows the npm-like semver behavior
-function semverFilterLoose(operator, range) {
-  range = range.split('.').map(parseSimpleInt)
-  if (typeof range[1] === 'undefined') {
-    range[1] = 'x'
-  }
-  // ignore any patch version because we only return minor versions
-  // range[2] = 'x'
-  switch (operator) {
-    case '<=':
-      return function (version) {
-        version = version.split('.').map(parseSimpleInt)
-        return compareSemverLoose(version, range) <= 0
-      }
-    case '>=':
-    default:
-      return function (version) {
-        version = version.split('.').map(parseSimpleInt)
-        return compareSemverLoose(version, range) >= 0
-      }
-  }
-}
-
-// this follows the npm-like semver behavior
-function compareSemverLoose(version, range) {
-  if (version[0] !== range[0]) {
-    return version[0] < range[0] ? -1 : +1
-  }
-  if (range[1] === 'x') {
-    return 0
-  }
-  if (version[1] !== range[1]) {
-    return version[1] < range[1] ? -1 : +1
-  }
-  return 0
-}
-
-function resolveVersion(data, version) {
-  if (data.versions.indexOf(version) !== -1) {
-    return version
-  } else if (browserslist.versionAliases[data.name][version]) {
-    return browserslist.versionAliases[data.name][version]
-  } else {
-    return false
-  }
-}
-
-function normalizeVersion(data, version) {
-  var resolved = resolveVersion(data, version)
-  if (resolved) {
-    return resolved
-  } else if (data.versions.length === 1) {
-    return data.versions[0]
-  } else {
-    return false
-  }
-}
-
-function filterByYear(since, context) {
-  since = since / 1000
-  return Object.keys(agents).reduce(function (selected, name) {
-    var data = byName(name, context)
-    if (!data) return selected
-    var versions = Object.keys(data.releaseDate).filter(function (v) {
-      var date = data.releaseDate[v]
-      return date !== null && date >= since
-    })
-    return selected.concat(versions.map(nameMapper(data.name)))
-  }, [])
-}
-
-function cloneData(data) {
-  return {
-    name: data.name,
-    versions: data.versions,
-    released: data.released,
-    releaseDate: data.releaseDate
-  }
-}
-
-function byName(name, context) {
-  name = name.toLowerCase()
-  name = browserslist.aliases[name] || name
-  if (context.mobileToDesktop && browserslist.desktopNames[name]) {
-    var desktop = browserslist.data[browserslist.desktopNames[name]]
-    if (name === 'android') {
-      return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)
-    } else {
-      var cloned = cloneData(desktop)
-      cloned.name = name
-      return cloned
-    }
-  }
-  return browserslist.data[name]
-}
-
-function normalizeAndroidVersions(androidVersions, chromeVersions) {
-  var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)
-  return androidVersions
-    .filter(function (version) {
-      return /^(?:[2-4]\.|[34]$)/.test(version)
-    })
-    .concat(chromeVersions.slice(iFirstEvergreen))
-}
-
-function copyObject(obj) {
-  var copy = {}
-  for (var key in obj) {
-    copy[key] = obj[key]
-  }
-  return copy
-}
-
-function normalizeAndroidData(android, chrome) {
-  android.released = normalizeAndroidVersions(android.released, chrome.released)
-  android.versions = normalizeAndroidVersions(android.versions, chrome.versions)
-  android.releaseDate = copyObject(android.releaseDate)
-  android.released.forEach(function (v) {
-    if (android.releaseDate[v] === undefined) {
-      android.releaseDate[v] = chrome.releaseDate[v]
-    }
-  })
-  return android
-}
-
-function checkName(name, context) {
-  var data = byName(name, context)
-  if (!data) throw new BrowserslistError('Unknown browser ' + name)
-  return data
-}
-
-function unknownQuery(query) {
-  return new BrowserslistError(
-    'Unknown browser query `' +
-      query +
-      '`. ' +
-      'Maybe you are using old Browserslist or made typo in query.'
-  )
-}
-
-// Adjusts last X versions queries for some mobile browsers,
-// where caniuse data jumps from a legacy version to the latest
-function filterJumps(list, name, nVersions, context) {
-  var jump = 1
-  switch (name) {
-    case 'android':
-      if (context.mobileToDesktop) return list
-      var released = browserslist.data.chrome.released
-      jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)
-      break
-    case 'op_mob':
-      var latest = browserslist.data.op_mob.released.slice(-1)[0]
-      jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1
-      break
-    default:
-      return list
-  }
-  if (nVersions <= jump) {
-    return list.slice(-1)
-  }
-  return list.slice(jump - 1 - nVersions)
-}
-
-function isSupported(flags, withPartial) {
-  return (
-    typeof flags === 'string' &&
-    (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))
-  )
-}
-
-function resolve(queries, context) {
-  return parseQueries(queries).reduce(function (result, node, index) {
-    if (node.not && index === 0) {
-      throw new BrowserslistError(
-        'Write any browsers query (for instance, `defaults`) ' +
-          'before `' +
-          node.query +
-          '`'
-      )
-    }
-    var type = QUERIES[node.type]
-    var array = type.select.call(browserslist, context, node).map(function (j) {
-      var parts = j.split(' ')
-      if (parts[1] === '0') {
-        return parts[0] + ' ' + byName(parts[0], context).versions[0]
-      } else {
-        return j
-      }
-    })
-
-    if (node.compose === 'and') {
-      if (node.not) {
-        return result.filter(function (j) {
-          return array.indexOf(j) === -1
-        })
-      } else {
-        return result.filter(function (j) {
-          return array.indexOf(j) !== -1
-        })
-      }
-    } else {
-      if (node.not) {
-        var filter = {}
-        array.forEach(function (j) {
-          filter[j] = true
-        })
-        return result.filter(function (j) {
-          return !filter[j]
-        })
-      }
-      return result.concat(array)
-    }
-  }, [])
-}
-
-function prepareOpts(opts) {
-  if (typeof opts === 'undefined') opts = {}
-
-  if (typeof opts.path === 'undefined') {
-    opts.path = path.resolve ? path.resolve('.') : '.'
-  }
-
-  return opts
-}
-
-function prepareQueries(queries, opts) {
-  if (typeof queries === 'undefined' || queries === null) {
-    var config = browserslist.loadConfig(opts)
-    if (config) {
-      queries = config
-    } else {
-      queries = browserslist.defaults
-    }
-  }
-
-  return queries
-}
-
-function checkQueries(queries) {
-  if (!(typeof queries === 'string' || Array.isArray(queries))) {
-    throw new BrowserslistError(
-      'Browser queries must be an array or string. Got ' + typeof queries + '.'
-    )
-  }
-}
-
-var cache = {}
-var parseCache = {}
-
-function browserslist(queries, opts) {
-  opts = prepareOpts(opts)
-  queries = prepareQueries(queries, opts)
-  checkQueries(queries)
-
-  var needsPath = parseQueries(queries).some(function (node) {
-    return QUERIES[node.type].needsPath
-  })
-  var context = {
-    ignoreUnknownVersions: opts.ignoreUnknownVersions,
-    dangerousExtend: opts.dangerousExtend,
-    throwOnMissing: opts.throwOnMissing,
-    mobileToDesktop: opts.mobileToDesktop,
-    env: opts.env
-  }
-  // Removing to avoid using context.path without marking query as needsPath
-  if (needsPath) {
-    context.path = opts.path
-  }
-
-  env.oldDataWarning(browserslist.data)
-  var stats = env.getStat(opts, browserslist.data)
-  if (stats) {
-    context.customUsage = {}
-    for (var browser in stats) {
-      fillUsage(context.customUsage, browser, stats[browser])
-    }
-  }
-
-  var cacheKey = JSON.stringify([queries, context])
-  if (cache[cacheKey]) return cache[cacheKey]
-
-  var result = uniq(resolve(queries, context)).sort(function (name1, name2) {
-    name1 = name1.split(' ')
-    name2 = name2.split(' ')
-    if (name1[0] === name2[0]) {
-      // assumptions on caniuse data
-      // 1) version ranges never overlaps
-      // 2) if version is not a range, it never contains `-`
-      var version1 = name1[1].split('-')[0]
-      var version2 = name2[1].split('-')[0]
-      return compareSemver(version2.split('.'), version1.split('.'))
-    } else {
-      return compare(name1[0], name2[0])
-    }
-  })
-  if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
-    cache[cacheKey] = result
-  }
-  return result
-}
-
-function parseQueries(queries) {
-  var cacheKey = JSON.stringify(queries)
-  if (cacheKey in parseCache) return parseCache[cacheKey]
-  var result = parseWithoutCache(QUERIES, queries)
-  if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
-    parseCache[cacheKey] = result
-  }
-  return result
-}
-
-function loadCustomUsage(context, config) {
-  var stats = env.loadStat(context, config, browserslist.data)
-  if (stats) {
-    context.customUsage = {}
-    for (var browser in stats) {
-      fillUsage(context.customUsage, browser, stats[browser])
-    }
-  }
-  if (!context.customUsage) {
-    throw new BrowserslistError('Custom usage statistics was not provided')
-  }
-  return context.customUsage
-}
-
-browserslist.parse = function (queries, opts) {
-  opts = prepareOpts(opts)
-  queries = prepareQueries(queries, opts)
-  checkQueries(queries)
-  return parseQueries(queries)
-}
-
-// Will be filled by Can I Use data below
-browserslist.cache = {}
-browserslist.data = {}
-browserslist.usage = {
-  global: {},
-  custom: null
-}
-
-// Default browsers query
-browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']
-
-// Browser names aliases
-browserslist.aliases = {
-  fx: 'firefox',
-  ff: 'firefox',
-  ios: 'ios_saf',
-  explorer: 'ie',
-  blackberry: 'bb',
-  explorermobile: 'ie_mob',
-  operamini: 'op_mini',
-  operamobile: 'op_mob',
-  chromeandroid: 'and_chr',
-  firefoxandroid: 'and_ff',
-  ucandroid: 'and_uc',
-  qqandroid: 'and_qq'
-}
-
-// Can I Use only provides a few versions for some browsers (e.g. and_chr).
-// Fallback to a similar browser for unknown versions
-// Note op_mob is not included as its chromium versions are not in sync with Opera desktop
-browserslist.desktopNames = {
-  and_chr: 'chrome',
-  and_ff: 'firefox',
-  ie_mob: 'ie',
-  android: 'chrome' // has extra processing logic
-}
-
-// Aliases to work with joined versions like `ios_saf 7.0-7.1`
-browserslist.versionAliases = {}
-
-browserslist.clearCaches = env.clearCaches
-browserslist.parseConfig = env.parseConfig
-browserslist.readConfig = env.readConfig
-browserslist.findConfigFile = env.findConfigFile
-browserslist.findConfig = env.findConfig
-browserslist.loadConfig = env.loadConfig
-
-browserslist.coverage = function (browsers, stats) {
-  var data
-  if (typeof stats === 'undefined') {
-    data = browserslist.usage.global
-  } else if (stats === 'my stats') {
-    var opts = {}
-    opts.path = path.resolve ? path.resolve('.') : '.'
-    var customStats = env.getStat(opts)
-    if (!customStats) {
-      throw new BrowserslistError('Custom usage statistics was not provided')
-    }
-    data = {}
-    for (var browser in customStats) {
-      fillUsage(data, browser, customStats[browser])
-    }
-  } else if (typeof stats === 'string') {
-    if (stats.length > 2) {
-      stats = stats.toLowerCase()
-    } else {
-      stats = stats.toUpperCase()
-    }
-    env.loadCountry(browserslist.usage, stats, browserslist.data)
-    data = browserslist.usage[stats]
-  } else {
-    if ('dataByBrowser' in stats) {
-      stats = stats.dataByBrowser
-    }
-    data = {}
-    for (var name in stats) {
-      for (var version in stats[name]) {
-        data[name + ' ' + version] = stats[name][version]
-      }
-    }
-  }
-
-  return browsers.reduce(function (all, i) {
-    var usage = data[i]
-    if (usage === undefined) {
-      usage = data[i.replace(/ \S+$/, ' 0')]
-    }
-    return all + (usage || 0)
-  }, 0)
-}
-
-function nodeQuery(context, node) {
-  var matched = browserslist.nodeVersions.filter(function (i) {
-    return isVersionsMatch(i, node.version)
-  })
-  if (matched.length === 0) {
-    if (context.ignoreUnknownVersions) {
-      return []
-    } else {
-      throw new BrowserslistError(
-        'Unknown version ' + node.version + ' of Node.js'
-      )
-    }
-  }
-  return ['node ' + matched[matched.length - 1]]
-}
-
-function sinceQuery(context, node) {
-  var year = parseInt(node.year)
-  var month = parseInt(node.month || '01') - 1
-  var day = parseInt(node.day || '01')
-  return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)
-}
-
-function bbmTransform(bbmVersions) {
-  var browsers = {
-    chrome: 'chrome',
-    chrome_android: 'and_chr',
-    edge: 'edge',
-    firefox: 'firefox',
-    firefox_android: 'and_ff',
-    safari: 'safari',
-    safari_ios: 'ios_saf',
-    webview_android: 'android',
-    samsunginternet_android: 'samsung',
-    opera_android: 'op_mob',
-    opera: 'opera',
-    qq_android: 'and_qq',
-    uc_android: 'and_uc',
-    kai_os: 'kaios'
-  }
-
-  return bbmVersions
-    .filter(function (version) {
-      return Object.keys(browsers).indexOf(version.browser) !== -1
-    })
-    .map(function (version) {
-      return browsers[version.browser] + ' >= ' + version.version
-    })
-}
-
-function coverQuery(context, node) {
-  var coverage = parseFloat(node.coverage)
-  var usage = browserslist.usage.global
-  if (node.place) {
-    if (node.place.match(/^my\s+stats$/i)) {
-      if (!context.customUsage) {
-        throw new BrowserslistError('Custom usage statistics was not provided')
-      }
-      usage = context.customUsage
-    } else {
-      var place
-      if (node.place.length === 2) {
-        place = node.place.toUpperCase()
-      } else {
-        place = node.place.toLowerCase()
-      }
-      env.loadCountry(browserslist.usage, place, browserslist.data)
-      usage = browserslist.usage[place]
-    }
-  } else if (node.config) {
-    usage = loadCustomUsage(context, node.config)
-  }
-  var versions = Object.keys(usage).sort(function (a, b) {
-    return usage[b] - usage[a]
-  })
-  var covered = 0
-  var result = []
-  var version
-  for (var i = 0; i < versions.length; i++) {
-    version = versions[i]
-    if (usage[version] === 0) break
-    covered += usage[version]
-    result.push(version)
-    if (covered >= coverage) break
-  }
-  return result
-}
-
-var QUERIES = {
-  last_major_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
-    select: function (context, node) {
-      return Object.keys(agents).reduce(function (selected, name) {
-        var data = byName(name, context)
-        if (!data) return selected
-        var list = getMajorVersions(data.released, node.versions)
-        list = list.map(nameMapper(data.name))
-        list = filterJumps(list, data.name, node.versions, context)
-        return selected.concat(list)
-      }, [])
-    }
-  },
-  last_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+versions?$/i,
-    select: function (context, node) {
-      return Object.keys(agents).reduce(function (selected, name) {
-        var data = byName(name, context)
-        if (!data) return selected
-        var list = data.released.slice(-node.versions)
-        list = list.map(nameMapper(data.name))
-        list = filterJumps(list, data.name, node.versions, context)
-        return selected.concat(list)
-      }, [])
-    }
-  },
-  last_electron_major_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i,
-    select: function (context, node) {
-      var validVersions = getMajorVersions(Object.keys(e2c), node.versions)
-      return validVersions.map(function (i) {
-        return 'chrome ' + e2c[i]
-      })
-    }
-  },
-  last_node_major_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
-    select: function (context, node) {
-      return getMajorVersions(browserslist.nodeVersions, node.versions).map(
-        function (version) {
-          return 'node ' + version
-        }
-      )
-    }
-  },
-  last_browser_major_versions: {
-    matches: ['versions', 'browser'],
-    regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
-    select: function (context, node) {
-      var data = checkName(node.browser, context)
-      var validVersions = getMajorVersions(data.released, node.versions)
-      var list = validVersions.map(nameMapper(data.name))
-      list = filterJumps(list, data.name, node.versions, context)
-      return list
-    }
-  },
-  last_electron_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
-    select: function (context, node) {
-      return Object.keys(e2c)
-        .slice(-node.versions)
-        .map(function (i) {
-          return 'chrome ' + e2c[i]
-        })
-    }
-  },
-  last_node_versions: {
-    matches: ['versions'],
-    regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
-    select: function (context, node) {
-      return browserslist.nodeVersions
-        .slice(-node.versions)
-        .map(function (version) {
-          return 'node ' + version
-        })
-    }
-  },
-  last_browser_versions: {
-    matches: ['versions', 'browser'],
-    regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
-    select: function (context, node) {
-      var data = checkName(node.browser, context)
-      var list = data.released.slice(-node.versions).map(nameMapper(data.name))
-      list = filterJumps(list, data.name, node.versions, context)
-      return list
-    }
-  },
-  unreleased_versions: {
-    matches: [],
-    regexp: /^unreleased\s+versions$/i,
-    select: function (context) {
-      return Object.keys(agents).reduce(function (selected, name) {
-        var data = byName(name, context)
-        if (!data) return selected
-        var list = data.versions.filter(function (v) {
-          return data.released.indexOf(v) === -1
-        })
-        list = list.map(nameMapper(data.name))
-        return selected.concat(list)
-      }, [])
-    }
-  },
-  unreleased_electron_versions: {
-    matches: [],
-    regexp: /^unreleased\s+electron\s+versions?$/i,
-    select: function () {
-      return []
-    }
-  },
-  unreleased_browser_versions: {
-    matches: ['browser'],
-    regexp: /^unreleased\s+(\w+)\s+versions?$/i,
-    select: function (context, node) {
-      var data = checkName(node.browser, context)
-      return data.versions
-        .filter(function (v) {
-          return data.released.indexOf(v) === -1
-        })
-        .map(nameMapper(data.name))
-    }
-  },
-  last_years: {
-    matches: ['years'],
-    regexp: /^last\s+((\d+\.)?\d+)\s+years?$/i,
-    select: function (context, node) {
-      return filterByYear(Date.now() - YEAR * node.years, context)
-    }
-  },
-  since_y: {
-    matches: ['year'],
-    regexp: /^since (\d+)$/i,
-    select: sinceQuery
-  },
-  since_y_m: {
-    matches: ['year', 'month'],
-    regexp: /^since (\d+)-(\d+)$/i,
-    select: sinceQuery
-  },
-  since_y_m_d: {
-    matches: ['year', 'month', 'day'],
-    regexp: /^since (\d+)-(\d+)-(\d+)$/i,
-    select: sinceQuery
-  },
-  baseline: {
-    matches: ['year', 'availability', 'date', 'downstream', 'kaios'],
-    // Matches:
-    //   baseline 2024
-    //   baseline newly available
-    //   baseline widely available
-    //   baseline widely available on 2024-06-01
-    //   ...with downstream
-    //   ...including kaios
-    regexp:
-      /^baseline\s+(?:(\d+)|(newly|widely)\s+available(?:\s+on\s+(\d{4}-\d{2}-\d{2}))?)?(\s+with\s+downstream)?(\s+including\s+kaios)?$/i,
-    select: function (context, node) {
-      var baselineVersions
-      var includeDownstream = !!node.downstream
-      var includeKaiOS = !!node.kaios
-      if (node.availability === 'newly' && node.date) {
-        throw new BrowserslistError(
-          'Using newly available with a date is not supported, please use "widely available on YYYY-MM-DD" and add 30 months to the date you specified.'
-        )
-      }
-      if (node.year) {
-        baselineVersions = bbm.getCompatibleVersions({
-          targetYear: node.year,
-          includeDownstreamBrowsers: includeDownstream,
-          includeKaiOS: includeKaiOS,
-          suppressWarnings: true
-        })
-      } else if (node.date) {
-        baselineVersions = bbm.getCompatibleVersions({
-          widelyAvailableOnDate: node.date,
-          includeDownstreamBrowsers: includeDownstream,
-          includeKaiOS: includeKaiOS,
-          suppressWarnings: true
-        })
-      } else if (node.availability === 'newly') {
-        var future30months = new Date().setMonth(new Date().getMonth() + 30)
-        baselineVersions = bbm.getCompatibleVersions({
-          widelyAvailableOnDate: future30months,
-          includeDownstreamBrowsers: includeDownstream,
-          includeKaiOS: includeKaiOS,
-          suppressWarnings: true
-        })
-      } else {
-        baselineVersions = bbm.getCompatibleVersions({
-          includeDownstreamBrowsers: includeDownstream,
-          includeKaiOS: includeKaiOS,
-          suppressWarnings: true
-        })
-      }
-      return resolve(bbmTransform(baselineVersions), context)
-    }
-  },
-  popularity: {
-    matches: ['sign', 'popularity'],
-    regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,
-    select: function (context, node) {
-      var popularity = parseFloat(node.popularity)
-      var usage = browserslist.usage.global
-      return Object.keys(usage).reduce(function (result, version) {
-        if (node.sign === '>') {
-          if (usage[version] > popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<') {
-          if (usage[version] < popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<=') {
-          if (usage[version] <= popularity) {
-            result.push(version)
-          }
-        } else if (usage[version] >= popularity) {
-          result.push(version)
-        }
-        return result
-      }, [])
-    }
-  },
-  popularity_in_my_stats: {
-    matches: ['sign', 'popularity'],
-    regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,
-    select: function (context, node) {
-      var popularity = parseFloat(node.popularity)
-      if (!context.customUsage) {
-        throw new BrowserslistError('Custom usage statistics was not provided')
-      }
-      var usage = context.customUsage
-      return Object.keys(usage).reduce(function (result, version) {
-        var percentage = usage[version]
-        if (percentage == null) {
-          return result
-        }
-
-        if (node.sign === '>') {
-          if (percentage > popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<') {
-          if (percentage < popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<=') {
-          if (percentage <= popularity) {
-            result.push(version)
-          }
-        } else if (percentage >= popularity) {
-          result.push(version)
-        }
-        return result
-      }, [])
-    }
-  },
-  popularity_in_config_stats: {
-    matches: ['sign', 'popularity', 'config'],
-    regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,
-    select: function (context, node) {
-      var popularity = parseFloat(node.popularity)
-      var usage = loadCustomUsage(context, node.config)
-      return Object.keys(usage).reduce(function (result, version) {
-        var percentage = usage[version]
-        if (percentage == null) {
-          return result
-        }
-
-        if (node.sign === '>') {
-          if (percentage > popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<') {
-          if (percentage < popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<=') {
-          if (percentage <= popularity) {
-            result.push(version)
-          }
-        } else if (percentage >= popularity) {
-          result.push(version)
-        }
-        return result
-      }, [])
-    }
-  },
-  popularity_in_place: {
-    matches: ['sign', 'popularity', 'place'],
-    regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,
-    select: function (context, node) {
-      var popularity = parseFloat(node.popularity)
-      var place = node.place
-      if (place.length === 2) {
-        place = place.toUpperCase()
-      } else {
-        place = place.toLowerCase()
-      }
-      env.loadCountry(browserslist.usage, place, browserslist.data)
-      var usage = browserslist.usage[place]
-      return Object.keys(usage).reduce(function (result, version) {
-        var percentage = usage[version]
-        if (percentage == null) {
-          return result
-        }
-
-        if (node.sign === '>') {
-          if (percentage > popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<') {
-          if (percentage < popularity) {
-            result.push(version)
-          }
-        } else if (node.sign === '<=') {
-          if (percentage <= popularity) {
-            result.push(version)
-          }
-        } else if (percentage >= popularity) {
-          result.push(version)
-        }
-        return result
-      }, [])
-    }
-  },
-  cover: {
-    matches: ['coverage'],
-    regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,
-    select: coverQuery
-  },
-  cover_in: {
-    matches: ['coverage', 'place'],
-    regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,
-    select: coverQuery
-  },
-  cover_config: {
-    matches: ['coverage', 'config'],
-    regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/i,
-    select: coverQuery
-  },
-  supports: {
-    matches: ['supportType', 'feature'],
-    regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,
-    select: function (context, node) {
-      env.loadFeature(browserslist.cache, node.feature)
-      var withPartial = node.supportType !== 'fully'
-      var features = browserslist.cache[node.feature]
-      var result = []
-      for (var name in features) {
-        var data = byName(name, context)
-        // Only check desktop when latest released mobile has support
-        var iMax = data.released.length - 1
-        while (iMax >= 0) {
-          if (data.released[iMax] in features[name]) break
-          iMax--
-        }
-        var checkDesktop =
-          context.mobileToDesktop &&
-          name in browserslist.desktopNames &&
-          isSupported(features[name][data.released[iMax]], withPartial)
-        data.versions.forEach(function (version) {
-          var flags = features[name][version]
-          if (flags === undefined && checkDesktop) {
-            flags = features[browserslist.desktopNames[name]][version]
-          }
-          if (isSupported(flags, withPartial)) {
-            result.push(name + ' ' + version)
-          }
-        })
-      }
-      return result
-    }
-  },
-  electron_range: {
-    matches: ['from', 'to'],
-    regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
-    select: function (context, node) {
-      var fromToUse = normalizeElectron(node.from)
-      var toToUse = normalizeElectron(node.to)
-      var from = parseFloat(node.from)
-      var to = parseFloat(node.to)
-      if (!e2c[fromToUse]) {
-        throw new BrowserslistError('Unknown version ' + from + ' of electron')
-      }
-      if (!e2c[toToUse]) {
-        throw new BrowserslistError('Unknown version ' + to + ' of electron')
-      }
-      return Object.keys(e2c)
-        .filter(function (i) {
-          var parsed = parseFloat(i)
-          return parsed >= from && parsed <= to
-        })
-        .map(function (i) {
-          return 'chrome ' + e2c[i]
-        })
-    }
-  },
-  node_range: {
-    matches: ['from', 'to'],
-    regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
-    select: function (context, node) {
-      return browserslist.nodeVersions
-        .filter(semverFilterLoose('>=', node.from))
-        .filter(semverFilterLoose('<=', node.to))
-        .map(function (v) {
-          return 'node ' + v
-        })
-    }
-  },
-  browser_range: {
-    matches: ['browser', 'from', 'to'],
-    regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
-    select: function (context, node) {
-      var data = checkName(node.browser, context)
-      var from = parseFloat(normalizeVersion(data, node.from) || node.from)
-      var to = parseFloat(normalizeVersion(data, node.to) || node.to)
-      function filter(v) {
-        var parsed = parseFloat(v)
-        return parsed >= from && parsed <= to
-      }
-      return data.released.filter(filter).map(nameMapper(data.name))
-    }
-  },
-  electron_ray: {
-    matches: ['sign', 'version'],
-    regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
-    select: function (context, node) {
-      var versionToUse = normalizeElectron(node.version)
-      return Object.keys(e2c)
-        .filter(generateFilter(node.sign, versionToUse))
-        .map(function (i) {
-          return 'chrome ' + e2c[i]
-        })
-    }
-  },
-  node_ray: {
-    matches: ['sign', 'version'],
-    regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
-    select: function (context, node) {
-      return browserslist.nodeVersions
-        .filter(generateSemverFilter(node.sign, node.version))
-        .map(function (v) {
-          return 'node ' + v
-        })
-    }
-  },
-  browser_ray: {
-    matches: ['browser', 'sign', 'version'],
-    regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+|esr)$/i,
-    select: function (context, node) {
-      var version = node.version
-      var data = checkName(node.browser, context)
-      var alias = browserslist.versionAliases[data.name][version.toLowerCase()]
-      if (alias) version = alias
-      if (!/[\d.]+/.test(version)) {
-        throw new BrowserslistError(
-          'Unknown version ' + version + ' of ' + node.browser
-        )
-      }
-      return data.released
-        .filter(generateFilter(node.sign, version))
-        .map(function (v) {
-          return data.name + ' ' + v
-        })
-    }
-  },
-  firefox_esr: {
-    matches: [],
-    regexp: /^(firefox|ff|fx)\s+esr$/i,
-    select: function () {
-      return ['firefox ' + FIREFOX_ESR_VERSION]
-    }
-  },
-  opera_mini_all: {
-    matches: [],
-    regexp: /(operamini|op_mini)\s+all/i,
-    select: function () {
-      return ['op_mini all']
-    }
-  },
-  electron_version: {
-    matches: ['version'],
-    regexp: /^electron\s+([\d.]+)$/i,
-    select: function (context, node) {
-      var versionToUse = normalizeElectron(node.version)
-      var chrome = e2c[versionToUse]
-      if (!chrome) {
-        throw new BrowserslistError(
-          'Unknown version ' + node.version + ' of electron'
-        )
-      }
-      return ['chrome ' + chrome]
-    }
-  },
-  node_major_version: {
-    matches: ['version'],
-    regexp: /^node\s+(\d+)$/i,
-    select: nodeQuery
-  },
-  node_minor_version: {
-    matches: ['version'],
-    regexp: /^node\s+(\d+\.\d+)$/i,
-    select: nodeQuery
-  },
-  node_patch_version: {
-    matches: ['version'],
-    regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
-    select: nodeQuery
-  },
-  current_node: {
-    matches: [],
-    regexp: /^current\s+node$/i,
-    select: function (context) {
-      return [env.currentNode(resolve, context)]
-    }
-  },
-  maintained_node: {
-    matches: [],
-    regexp: /^maintained\s+node\s+versions$/i,
-    select: function (context) {
-      var now = Date.now()
-      var queries = Object.keys(jsEOL)
-        .filter(function (key) {
-          return (
-            now < Date.parse(jsEOL[key].end) &&
-            now > Date.parse(jsEOL[key].start) &&
-            isEolReleased(key)
-          )
-        })
-        .map(function (key) {
-          return 'node ' + key.slice(1)
-        })
-      return resolve(queries, context)
-    }
-  },
-  phantomjs_1_9: {
-    matches: [],
-    regexp: /^phantomjs\s+1.9$/i,
-    select: function () {
-      return ['safari 5']
-    }
-  },
-  phantomjs_2_1: {
-    matches: [],
-    regexp: /^phantomjs\s+2.1$/i,
-    select: function () {
-      return ['safari 6']
-    }
-  },
-  browser_version: {
-    matches: ['browser', 'version'],
-    regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
-    select: function (context, node) {
-      var version = node.version
-      if (/^tp$/i.test(version)) version = 'TP'
-      var data = checkName(node.browser, context)
-      var alias = normalizeVersion(data, version)
-      if (alias) {
-        version = alias
-      } else {
-        if (version.indexOf('.') === -1) {
-          alias = version + '.0'
-        } else {
-          alias = version.replace(/\.0$/, '')
-        }
-        alias = normalizeVersion(data, alias)
-        if (alias) {
-          version = alias
-        } else if (context.ignoreUnknownVersions) {
-          return []
-        } else {
-          throw new BrowserslistError(
-            'Unknown version ' + version + ' of ' + node.browser
-          )
-        }
-      }
-      return [data.name + ' ' + version]
-    }
-  },
-  browserslist_config: {
-    matches: [],
-    regexp: /^browserslist config$/i,
-    needsPath: true,
-    select: function (context) {
-      return browserslist(undefined, context)
-    }
-  },
-  extends: {
-    matches: ['config'],
-    regexp: /^extends (.+)$/i,
-    needsPath: true,
-    select: function (context, node) {
-      return resolve(env.loadQueries(context, node.config), context)
-    }
-  },
-  defaults: {
-    matches: [],
-    regexp: /^defaults$/i,
-    select: function (context) {
-      return resolve(browserslist.defaults, context)
-    }
-  },
-  dead: {
-    matches: [],
-    regexp: /^dead$/i,
-    select: function (context) {
-      var dead = [
-        'Baidu >= 0',
-        'ie <= 11',
-        'ie_mob <= 11',
-        'bb <= 10',
-        'op_mob <= 12.1',
-        'samsung 4'
-      ]
-      return resolve(dead, context)
-    }
-  },
-  unknown: {
-    matches: [],
-    regexp: /^(\w+)$/i,
-    select: function (context, node) {
-      if (byName(node.query, context)) {
-        throw new BrowserslistError(
-          'Specify versions in Browserslist query for browser ' + node.query
-        )
-      } else {
-        throw unknownQuery(node.query)
-      }
-    }
-  }
-}
-
-// Get and convert Can I Use data
-
-;(function () {
-  for (var name in agents) {
-    var browser = agents[name]
-    browserslist.data[name] = {
-      name: name,
-      versions: normalize(agents[name].versions),
-      released: normalize(agents[name].versions.slice(0, -3)),
-      releaseDate: agents[name].release_date
-    }
-    fillUsage(browserslist.usage.global, name, browser.usage_global)
-
-    browserslist.versionAliases[name] = {}
-    for (var i = 0; i < browser.versions.length; i++) {
-      var full = browser.versions[i]
-      if (!full) continue
-
-      if (full.indexOf('-') !== -1) {
-        var interval = full.split('-')
-        for (var j = 0; j < interval.length; j++) {
-          browserslist.versionAliases[name][interval[j]] = full
-        }
-      }
-    }
-  }
-
-  browserslist.nodeVersions = jsReleases.map(function (release) {
-    return release.version
-  })
-})()
-
-browserslist.versionAliases.firefox.esr = FIREFOX_ESR_VERSION
-
-module.exports = browserslist
Index: de_modules/browserslist/node.js
===================================================================
--- node_modules/browserslist/node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,502 +1,0 @@
-var feature = require('caniuse-lite/dist/unpacker/feature').default
-var region = require('caniuse-lite/dist/unpacker/region').default
-var fs = require('fs')
-var path = require('path')
-
-var BrowserslistError = require('./error')
-
-var IS_SECTION = /^\s*\[(.+)]\s*$/
-var CONFIG_PATTERN = /^browserslist-config-/
-var SCOPED_CONFIG__PATTERN = /@[^/]+(?:\/[^/]+)?\/browserslist-config(?:-|$|\/)/
-var FORMAT =
-  'Browserslist config should be a string or an array ' +
-  'of strings with browser queries'
-var PATHTYPE_UNKNOWN = 'unknown'
-var PATHTYPE_DIR = 'directory'
-var PATHTYPE_FILE = 'file'
-
-var dataTimeChecked = false
-var statCache = {}
-var configPathCache = {}
-var parseConfigCache = {}
-
-function checkExtend(name) {
-  var use = ' Use `dangerousExtend` option to disable.'
-  if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) {
-    throw new BrowserslistError(
-      'Browserslist config needs `browserslist-config-` prefix. ' + use
-    )
-  }
-  if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) {
-    throw new BrowserslistError(
-      '`.` not allowed in Browserslist config name. ' + use
-    )
-  }
-  if (name.indexOf('node_modules') !== -1) {
-    throw new BrowserslistError(
-      '`node_modules` not allowed in Browserslist config.' + use
-    )
-  }
-}
-
-function getPathType(filepath) {
-  var stats
-  try {
-    stats = fs.existsSync(filepath) && fs.statSync(filepath)
-  } catch (err) {
-    /* c8 ignore start */
-    if (
-      err.code !== 'ENOENT' &&
-      err.code !== 'EACCES' &&
-      err.code !== 'ERR_ACCESS_DENIED'
-    ) {
-      throw err
-    }
-    /* c8 ignore end */
-  }
-
-  if (stats && stats.isDirectory()) return PATHTYPE_DIR
-  if (stats && stats.isFile()) return PATHTYPE_FILE
-
-  return PATHTYPE_UNKNOWN
-}
-
-function isFile(file) {
-  return getPathType(file) === PATHTYPE_FILE
-}
-
-function isDirectory(dir) {
-  return getPathType(dir) === PATHTYPE_DIR
-}
-
-function eachParent(file, callback, cache) {
-  var loc = path.resolve(file)
-  var pathsForCacheResult = []
-  var result
-  do {
-    if (!pathInRoot(loc)) {
-      break
-    }
-    if (cache && loc in cache) {
-      result = cache[loc]
-      break
-    }
-    pathsForCacheResult.push(loc)
-
-    if (!isDirectory(loc)) {
-      continue
-    }
-
-    var locResult = callback(loc)
-    if (typeof locResult !== 'undefined') {
-      result = locResult
-      break
-    }
-  } while (loc !== (loc = path.dirname(loc)))
-
-  if (cache && !process.env.BROWSERSLIST_DISABLE_CACHE) {
-    pathsForCacheResult.forEach(function (cachePath) {
-      cache[cachePath] = result
-    })
-  }
-  return result
-}
-
-function pathInRoot(p) {
-  if (!process.env.BROWSERSLIST_ROOT_PATH) return true
-  var rootPath = path.resolve(process.env.BROWSERSLIST_ROOT_PATH)
-  if (path.relative(rootPath, p).substring(0, 2) === '..') {
-    return false
-  }
-  return true
-}
-
-function check(section) {
-  if (Array.isArray(section)) {
-    for (var i = 0; i < section.length; i++) {
-      if (typeof section[i] !== 'string') {
-        throw new BrowserslistError(FORMAT)
-      }
-    }
-  } else if (typeof section !== 'string') {
-    throw new BrowserslistError(FORMAT)
-  }
-}
-
-function pickEnv(config, opts) {
-  if (typeof config !== 'object') return config
-
-  var name
-  if (typeof opts.env === 'string') {
-    name = opts.env
-  } else if (process.env.BROWSERSLIST_ENV) {
-    name = process.env.BROWSERSLIST_ENV
-  } else if (process.env.NODE_ENV) {
-    name = process.env.NODE_ENV
-  } else {
-    name = 'production'
-  }
-
-  if (opts.throwOnMissing) {
-    if (name && name !== 'defaults' && !config[name]) {
-      throw new BrowserslistError(
-        'Missing config for Browserslist environment `' + name + '`'
-      )
-    }
-  }
-
-  return config[name] || config.defaults
-}
-
-function parsePackage(file) {
-  var text = fs
-    .readFileSync(file)
-    .toString()
-    .replace(/^\uFEFF/m, '')
-  var list
-  if (text.indexOf('"browserslist"') >= 0) {
-    list = JSON.parse(text).browserslist
-  } else if (text.indexOf('"browserlist"') >= 0) {
-    var config = JSON.parse(text)
-    if (config.browserlist && !config.browserslist) {
-      throw new BrowserslistError(
-        '`browserlist` key instead of `browserslist` in ' + file
-      )
-    }
-  }
-  if (Array.isArray(list) || typeof list === 'string') {
-    list = { defaults: list }
-  }
-  for (var i in list) {
-    check(list[i])
-  }
-
-  return list
-}
-
-function parsePackageOrReadConfig(file) {
-  if (file in parseConfigCache) {
-    return parseConfigCache[file]
-  }
-
-  var isPackage = path.basename(file) === 'package.json'
-  var result = isPackage ? parsePackage(file) : module.exports.readConfig(file)
-
-  if (!process.env.BROWSERSLIST_DISABLE_CACHE) {
-    parseConfigCache[file] = result
-  }
-  return result
-}
-
-function latestReleaseTime(agents) {
-  var latest = 0
-  for (var name in agents) {
-    var dates = agents[name].releaseDate || {}
-    for (var key in dates) {
-      if (latest < dates[key]) {
-        latest = dates[key]
-      }
-    }
-  }
-  return latest * 1000
-}
-
-function getMonthsPassed(date) {
-  var now = new Date()
-  var past = new Date(date)
-
-  var years = now.getFullYear() - past.getFullYear()
-  var months = now.getMonth() - past.getMonth()
-
-  return years * 12 + months
-}
-
-function normalizeStats(data, stats) {
-  if (!data) {
-    data = {}
-  }
-  if (stats && 'dataByBrowser' in stats) {
-    stats = stats.dataByBrowser
-  }
-
-  if (typeof stats !== 'object') return undefined
-
-  var normalized = {}
-  for (var i in stats) {
-    var versions = Object.keys(stats[i])
-    if (versions.length === 1 && data[i] && data[i].versions.length === 1) {
-      var normal = data[i].versions[0]
-      normalized[i] = {}
-      normalized[i][normal] = stats[i][versions[0]]
-    } else {
-      normalized[i] = stats[i]
-    }
-  }
-
-  return normalized
-}
-
-function normalizeUsageData(usageData, data) {
-  for (var browser in usageData) {
-    var browserUsage = usageData[browser]
-    // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615
-    // caniuse-db returns { 0: "percentage" } for `and_*` regional stats
-    if ('0' in browserUsage) {
-      var versions = data[browser].versions
-      browserUsage[versions[versions.length - 1]] = browserUsage[0]
-      delete browserUsage[0]
-    }
-  }
-}
-
-module.exports = {
-  loadQueries: function loadQueries(ctx, name) {
-    if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
-      checkExtend(name)
-    }
-    var queries = require(require.resolve(name, { paths: ['.', ctx.path] }))
-    if (typeof queries === 'object' && queries !== null && queries.__esModule) {
-      queries = queries.default
-    }
-    if (queries) {
-      if (Array.isArray(queries)) {
-        return queries
-      } else if (typeof queries === 'object') {
-        if (!queries.defaults) queries.defaults = []
-        return pickEnv(queries, ctx, name)
-      }
-    }
-    throw new BrowserslistError(
-      '`' +
-        name +
-        '` config exports not an array of queries' +
-        ' or an object of envs'
-    )
-  },
-
-  loadStat: function loadStat(ctx, name, data) {
-    if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
-      checkExtend(name)
-    }
-    var stats = require(
-      // Use forward slashes for module paths, also on Windows.
-      require.resolve(path.posix.join(name, 'browserslist-stats.json'), {
-        paths: ['.']
-      })
-    )
-    return normalizeStats(data, stats)
-  },
-
-  getStat: function getStat(opts, data) {
-    var stats
-    if (opts.stats) {
-      stats = opts.stats
-    } else if (process.env.BROWSERSLIST_STATS) {
-      stats = process.env.BROWSERSLIST_STATS
-    } else if (opts.path && path.resolve && fs.existsSync) {
-      stats = eachParent(
-        opts.path,
-        function (dir) {
-          var file = path.join(dir, 'browserslist-stats.json')
-          return isFile(file) ? file : undefined
-        },
-        statCache
-      )
-    }
-    if (typeof stats === 'string') {
-      try {
-        stats = JSON.parse(fs.readFileSync(stats))
-      } catch (e) {
-        throw new BrowserslistError("Can't read " + stats)
-      }
-    }
-    return normalizeStats(data, stats)
-  },
-
-  loadConfig: function loadConfig(opts) {
-    if (process.env.BROWSERSLIST) {
-      return process.env.BROWSERSLIST
-    } else if (opts.config || process.env.BROWSERSLIST_CONFIG) {
-      var file = opts.config || process.env.BROWSERSLIST_CONFIG
-      return pickEnv(parsePackageOrReadConfig(file), opts)
-    } else if (opts.path) {
-      return pickEnv(module.exports.findConfig(opts.path), opts)
-    } else {
-      return undefined
-    }
-  },
-
-  loadCountry: function loadCountry(usage, country, data) {
-    var code = country.replace(/[^\w-]/g, '')
-    if (!usage[code]) {
-      var compressed
-      try {
-        compressed = require('caniuse-lite/data/regions/' + code + '.js')
-      } catch (e) {
-        throw new BrowserslistError('Unknown region name `' + code + '`.')
-      }
-      var usageData = region(compressed)
-      normalizeUsageData(usageData, data)
-      usage[country] = {}
-      for (var i in usageData) {
-        for (var j in usageData[i]) {
-          usage[country][i + ' ' + j] = usageData[i][j]
-        }
-      }
-    }
-  },
-
-  loadFeature: function loadFeature(features, name) {
-    name = name.replace(/[^\w-]/g, '')
-    if (features[name]) return
-    var compressed
-    try {
-      compressed = require('caniuse-lite/data/features/' + name + '.js')
-    } catch (e) {
-      throw new BrowserslistError('Unknown feature name `' + name + '`.')
-    }
-    var stats = feature(compressed).stats
-    features[name] = {}
-    for (var i in stats) {
-      features[name][i] = {}
-      for (var j in stats[i]) {
-        features[name][i][j] = stats[i][j]
-      }
-    }
-  },
-
-  parseConfig: function parseConfig(string) {
-    var result = { defaults: [] }
-    var sections = ['defaults']
-
-    string
-      .toString()
-      .replace(/#[^\n]*/g, '')
-      .split(/\n|,/)
-      .map(function (line) {
-        return line.trim()
-      })
-      .filter(function (line) {
-        return line !== ''
-      })
-      .forEach(function (line) {
-        if (IS_SECTION.test(line)) {
-          sections = line.match(IS_SECTION)[1].trim().split(' ')
-          sections.forEach(function (section) {
-            if (result[section]) {
-              throw new BrowserslistError(
-                'Duplicate section ' + section + ' in Browserslist config'
-              )
-            }
-            result[section] = []
-          })
-        } else {
-          sections.forEach(function (section) {
-            result[section].push(line)
-          })
-        }
-      })
-
-    return result
-  },
-
-  readConfig: function readConfig(file) {
-    if (!isFile(file)) {
-      throw new BrowserslistError("Can't read " + file + ' config')
-    }
-
-    return module.exports.parseConfig(fs.readFileSync(file))
-  },
-
-  findConfigFile: function findConfigFile(from) {
-    return eachParent(
-      from,
-      function (dir) {
-        var config = path.join(dir, 'browserslist')
-        var pkg = path.join(dir, 'package.json')
-        var rc = path.join(dir, '.browserslistrc')
-
-        var pkgBrowserslist
-        if (isFile(pkg)) {
-          try {
-            pkgBrowserslist = parsePackage(pkg)
-          } catch (e) {
-            if (e.name === 'BrowserslistError') throw e
-            console.warn(
-              '[Browserslist] Could not parse ' + pkg + '. Ignoring it.'
-            )
-          }
-        }
-
-        if (isFile(config) && pkgBrowserslist) {
-          throw new BrowserslistError(
-            dir + ' contains both browserslist and package.json with browsers'
-          )
-        } else if (isFile(rc) && pkgBrowserslist) {
-          throw new BrowserslistError(
-            dir +
-              ' contains both .browserslistrc and package.json with browsers'
-          )
-        } else if (isFile(config) && isFile(rc)) {
-          throw new BrowserslistError(
-            dir + ' contains both .browserslistrc and browserslist'
-          )
-        } else if (isFile(config)) {
-          return config
-        } else if (isFile(rc)) {
-          return rc
-        } else if (pkgBrowserslist) {
-          return pkg
-        }
-      },
-      configPathCache
-    )
-  },
-
-  findConfig: function findConfig(from) {
-    var configFile = this.findConfigFile(from)
-
-    return configFile ? parsePackageOrReadConfig(configFile) : undefined
-  },
-
-  clearCaches: function clearCaches() {
-    dataTimeChecked = false
-    statCache = {}
-    configPathCache = {}
-    parseConfigCache = {}
-
-    this.cache = {}
-  },
-
-  oldDataWarning: function oldDataWarning(agentsObj) {
-    if (dataTimeChecked) return
-    dataTimeChecked = true
-    if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return
-
-    var latest = latestReleaseTime(agentsObj)
-    var monthsPassed = getMonthsPassed(latest)
-
-    if (latest !== 0 && monthsPassed >= 6) {
-      if (process.env.BROWSERSLIST_TRACE_WARNING) {
-        console.info('Last browser release in DB: ' + String(new Date(latest)))
-        console.trace()
-      }
-
-      var months = monthsPassed + ' ' + (monthsPassed > 1 ? 'months' : 'month')
-      console.warn(
-        'Browserslist: browsers data (caniuse-lite) is ' +
-          months +
-          ' old. Please run:\n' +
-          '  npx update-browserslist-db@latest\n' +
-          '  Why you should do it regularly: ' +
-          'https://github.com/browserslist/update-db#readme'
-      )
-    }
-  },
-
-  currentNode: function currentNode() {
-    return 'node ' + process.versions.node
-  },
-
-  env: process.env
-}
Index: de_modules/browserslist/package.json
===================================================================
--- node_modules/browserslist/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-{
-  "name": "browserslist",
-  "version": "4.28.1",
-  "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
-  "keywords": [
-    "caniuse",
-    "browsers",
-    "target"
-  ],
-  "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"
-    }
-  ],
-  "author": "Andrey Sitnik <andrey@sitnik.ru>",
-  "license": "MIT",
-  "repository": "browserslist/browserslist",
-  "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"
-  },
-  "engines": {
-    "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
-  },
-  "bin": {
-    "browserslist": "cli.js"
-  },
-  "types": "./index.d.ts",
-  "browser": {
-    "./node.js": "./browser.js",
-    "path": false
-  }
-}
Index: de_modules/browserslist/parse.js
===================================================================
--- node_modules/browserslist/parse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-var AND_REGEXP = /^\s+and\s+(.*)/i
-var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i
-
-function flatten(array) {
-  if (!Array.isArray(array)) return [array]
-  return array.reduce(function (a, b) {
-    return a.concat(flatten(b))
-  }, [])
-}
-
-function find(string, predicate) {
-  for (var max = string.length, n = 1; n <= max; n++) {
-    var parsed = string.substr(-n, n)
-    if (predicate(parsed, n, max)) {
-      return string.slice(0, -n)
-    }
-  }
-  return ''
-}
-
-function matchQuery(all, query) {
-  var node = { query: query }
-  if (query.indexOf('not ') === 0) {
-    node.not = true
-    query = query.slice(4)
-  }
-
-  for (var name in all) {
-    var type = all[name]
-    var match = query.match(type.regexp)
-    if (match) {
-      node.type = name
-      for (var i = 0; i < type.matches.length; i++) {
-        node[type.matches[i]] = match[i + 1]
-      }
-      return node
-    }
-  }
-
-  node.type = 'unknown'
-  return node
-}
-
-function matchBlock(all, string, qs) {
-  var node
-  return find(string, function (parsed, n, max) {
-    if (AND_REGEXP.test(parsed)) {
-      node = matchQuery(all, parsed.match(AND_REGEXP)[1])
-      node.compose = 'and'
-      qs.unshift(node)
-      return true
-    } else if (OR_REGEXP.test(parsed)) {
-      node = matchQuery(all, parsed.match(OR_REGEXP)[1])
-      node.compose = 'or'
-      qs.unshift(node)
-      return true
-    } else if (n === max) {
-      node = matchQuery(all, parsed.trim())
-      node.compose = 'or'
-      qs.unshift(node)
-      return true
-    }
-    return false
-  })
-}
-
-module.exports = function parse(all, queries) {
-  if (!Array.isArray(queries)) queries = [queries]
-  return flatten(
-    queries.map(function (block) {
-      var qs = []
-      do {
-        block = matchBlock(all, block, qs)
-      } while (block)
-      return qs
-    })
-  )
-}
Index: de_modules/caniuse-lite/LICENSE
===================================================================
--- node_modules/caniuse-lite/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,395 +1,0 @@
-Attribution 4.0 International
-
-=======================================================================
-
-Creative Commons Corporation ("Creative Commons") is not a law firm and
-does not provide legal services or legal advice. Distribution of
-Creative Commons public licenses does not create a lawyer-client or
-other relationship. Creative Commons makes its licenses and related
-information available on an "as-is" basis. Creative Commons gives no
-warranties regarding its licenses, any material licensed under their
-terms and conditions, or any related information. Creative Commons
-disclaims all liability for damages resulting from their use to the
-fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and
-conditions that creators and other rights holders may use to share
-original works of authorship and other material subject to copyright
-and certain other rights specified in the public license below. The
-following considerations are for informational purposes only, are not
-exhaustive, and do not form part of our licenses.
-
-     Considerations for licensors: Our public licenses are
-     intended for use by those authorized to give the public
-     permission to use material in ways otherwise restricted by
-     copyright and certain other rights. Our licenses are
-     irrevocable. Licensors should read and understand the terms
-     and conditions of the license they choose before applying it.
-     Licensors should also secure all rights necessary before
-     applying our licenses so that the public can reuse the
-     material as expected. Licensors should clearly mark any
-     material not subject to the license. This includes other CC-
-     licensed material, or material used under an exception or
-     limitation to copyright. More considerations for licensors:
-	wiki.creativecommons.org/Considerations_for_licensors
-
-     Considerations for the public: By using one of our public
-     licenses, a licensor grants the public permission to use the
-     licensed material under specified terms and conditions. If
-     the licensor's permission is not necessary for any reason--for
-     example, because of any applicable exception or limitation to
-     copyright--then that use is not regulated by the license. Our
-     licenses grant only permissions under copyright and certain
-     other rights that a licensor has authority to grant. Use of
-     the licensed material may still be restricted for other
-     reasons, including because others have copyright or other
-     rights in the material. A licensor may make special requests,
-     such as asking that all changes be marked or described.
-     Although not required by our licenses, you are encouraged to
-     respect those requests where reasonable. More_considerations
-     for the public: 
-	wiki.creativecommons.org/Considerations_for_licensees
-
-=======================================================================
-
-Creative Commons Attribution 4.0 International Public License
-
-By exercising the Licensed Rights (defined below), You accept and agree
-to be bound by the terms and conditions of this Creative Commons
-Attribution 4.0 International Public License ("Public License"). To the
-extent this Public License may be interpreted as a contract, You are
-granted the Licensed Rights in consideration of Your acceptance of
-these terms and conditions, and the Licensor grants You such rights in
-consideration of benefits the Licensor receives from making the
-Licensed Material available under these terms and conditions.
-
-
-Section 1 -- Definitions.
-
-  a. Adapted Material means material subject to Copyright and Similar
-     Rights that is derived from or based upon the Licensed Material
-     and in which the Licensed Material is translated, altered,
-     arranged, transformed, or otherwise modified in a manner requiring
-     permission under the Copyright and Similar Rights held by the
-     Licensor. For purposes of this Public License, where the Licensed
-     Material is a musical work, performance, or sound recording,
-     Adapted Material is always produced where the Licensed Material is
-     synched in timed relation with a moving image.
-
-  b. Adapter's License means the license You apply to Your Copyright
-     and Similar Rights in Your contributions to Adapted Material in
-     accordance with the terms and conditions of this Public License.
-
-  c. Copyright and Similar Rights means copyright and/or similar rights
-     closely related to copyright including, without limitation,
-     performance, broadcast, sound recording, and Sui Generis Database
-     Rights, without regard to how the rights are labeled or
-     categorized. For purposes of this Public License, the rights
-     specified in Section 2(b)(1)-(2) are not Copyright and Similar
-     Rights.
-
-  d. Effective Technological Measures means those measures that, in the
-     absence of proper authority, may not be circumvented under laws
-     fulfilling obligations under Article 11 of the WIPO Copyright
-     Treaty adopted on December 20, 1996, and/or similar international
-     agreements.
-
-  e. Exceptions and Limitations means fair use, fair dealing, and/or
-     any other exception or limitation to Copyright and Similar Rights
-     that applies to Your use of the Licensed Material.
-
-  f. Licensed Material means the artistic or literary work, database,
-     or other material to which the Licensor applied this Public
-     License.
-
-  g. Licensed Rights means the rights granted to You subject to the
-     terms and conditions of this Public License, which are limited to
-     all Copyright and Similar Rights that apply to Your use of the
-     Licensed Material and that the Licensor has authority to license.
-
-  h. Licensor means the individual(s) or entity(ies) granting rights
-     under this Public License.
-
-  i. Share means to provide material to the public by any means or
-     process that requires permission under the Licensed Rights, such
-     as reproduction, public display, public performance, distribution,
-     dissemination, communication, or importation, and to make material
-     available to the public including in ways that members of the
-     public may access the material from a place and at a time
-     individually chosen by them.
-
-  j. Sui Generis Database Rights means rights other than copyright
-     resulting from Directive 96/9/EC of the European Parliament and of
-     the Council of 11 March 1996 on the legal protection of databases,
-     as amended and/or succeeded, as well as other essentially
-     equivalent rights anywhere in the world.
-
-  k. You means the individual or entity exercising the Licensed Rights
-     under this Public License. Your has a corresponding meaning.
-
-
-Section 2 -- Scope.
-
-  a. License grant.
-
-       1. Subject to the terms and conditions of this Public License,
-          the Licensor hereby grants You a worldwide, royalty-free,
-          non-sublicensable, non-exclusive, irrevocable license to
-          exercise the Licensed Rights in the Licensed Material to:
-
-            a. reproduce and Share the Licensed Material, in whole or
-               in part; and
-
-            b. produce, reproduce, and Share Adapted Material.
-
-       2. Exceptions and Limitations. For the avoidance of doubt, where
-          Exceptions and Limitations apply to Your use, this Public
-          License does not apply, and You do not need to comply with
-          its terms and conditions.
-
-       3. Term. The term of this Public License is specified in Section
-          6(a).
-
-       4. Media and formats; technical modifications allowed. The
-          Licensor authorizes You to exercise the Licensed Rights in
-          all media and formats whether now known or hereafter created,
-          and to make technical modifications necessary to do so. The
-          Licensor waives and/or agrees not to assert any right or
-          authority to forbid You from making technical modifications
-          necessary to exercise the Licensed Rights, including
-          technical modifications necessary to circumvent Effective
-          Technological Measures. For purposes of this Public License,
-          simply making modifications authorized by this Section 2(a)
-          (4) never produces Adapted Material.
-
-       5. Downstream recipients.
-
-            a. Offer from the Licensor -- Licensed Material. Every
-               recipient of the Licensed Material automatically
-               receives an offer from the Licensor to exercise the
-               Licensed Rights under the terms and conditions of this
-               Public License.
-
-            b. No downstream restrictions. You may not offer or impose
-               any additional or different terms or conditions on, or
-               apply any Effective Technological Measures to, the
-               Licensed Material if doing so restricts exercise of the
-               Licensed Rights by any recipient of the Licensed
-               Material.
-
-       6. No endorsement. Nothing in this Public License constitutes or
-          may be construed as permission to assert or imply that You
-          are, or that Your use of the Licensed Material is, connected
-          with, or sponsored, endorsed, or granted official status by,
-          the Licensor or others designated to receive attribution as
-          provided in Section 3(a)(1)(A)(i).
-
-  b. Other rights.
-
-       1. Moral rights, such as the right of integrity, are not
-          licensed under this Public License, nor are publicity,
-          privacy, and/or other similar personality rights; however, to
-          the extent possible, the Licensor waives and/or agrees not to
-          assert any such rights held by the Licensor to the limited
-          extent necessary to allow You to exercise the Licensed
-          Rights, but not otherwise.
-
-       2. Patent and trademark rights are not licensed under this
-          Public License.
-
-       3. To the extent possible, the Licensor waives any right to
-          collect royalties from You for the exercise of the Licensed
-          Rights, whether directly or through a collecting society
-          under any voluntary or waivable statutory or compulsory
-          licensing scheme. In all other cases the Licensor expressly
-          reserves any right to collect such royalties.
-
-
-Section 3 -- License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the
-following conditions.
-
-  a. Attribution.
-
-       1. If You Share the Licensed Material (including in modified
-          form), You must:
-
-            a. retain the following if it is supplied by the Licensor
-               with the Licensed Material:
-
-                 i. identification of the creator(s) of the Licensed
-                    Material and any others designated to receive
-                    attribution, in any reasonable manner requested by
-                    the Licensor (including by pseudonym if
-                    designated);
-
-                ii. a copyright notice;
-
-               iii. a notice that refers to this Public License;
-
-                iv. a notice that refers to the disclaimer of
-                    warranties;
-
-                 v. a URI or hyperlink to the Licensed Material to the
-                    extent reasonably practicable;
-
-            b. indicate if You modified the Licensed Material and
-               retain an indication of any previous modifications; and
-
-            c. indicate the Licensed Material is licensed under this
-               Public License, and include the text of, or the URI or
-               hyperlink to, this Public License.
-
-       2. You may satisfy the conditions in Section 3(a)(1) in any
-          reasonable manner based on the medium, means, and context in
-          which You Share the Licensed Material. For example, it may be
-          reasonable to satisfy the conditions by providing a URI or
-          hyperlink to a resource that includes the required
-          information.
-
-       3. If requested by the Licensor, You must remove any of the
-          information required by Section 3(a)(1)(A) to the extent
-          reasonably practicable.
-
-       4. If You Share Adapted Material You produce, the Adapter's
-          License You apply must not prevent recipients of the Adapted
-          Material from complying with this Public License.
-
-
-Section 4 -- Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that
-apply to Your use of the Licensed Material:
-
-  a. for the avoidance of doubt, Section 2(a)(1) grants You the right
-     to extract, reuse, reproduce, and Share all or a substantial
-     portion of the contents of the database;
-
-  b. if You include all or a substantial portion of the database
-     contents in a database in which You have Sui Generis Database
-     Rights, then the database in which You have Sui Generis Database
-     Rights (but not its individual contents) is Adapted Material; and
-
-  c. You must comply with the conditions in Section 3(a) if You Share
-     all or a substantial portion of the contents of the database.
-
-For the avoidance of doubt, this Section 4 supplements and does not
-replace Your obligations under this Public License where the Licensed
-Rights include other Copyright and Similar Rights.
-
-
-Section 5 -- Disclaimer of Warranties and Limitation of Liability.
-
-  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
-     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
-     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
-     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
-     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
-     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
-     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
-     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
-     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
-     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
-
-  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
-     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
-     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
-     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
-     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
-     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
-     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
-     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
-     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
-
-  c. The disclaimer of warranties and limitation of liability provided
-     above shall be interpreted in a manner that, to the extent
-     possible, most closely approximates an absolute disclaimer and
-     waiver of all liability.
-
-
-Section 6 -- Term and Termination.
-
-  a. This Public License applies for the term of the Copyright and
-     Similar Rights licensed here. However, if You fail to comply with
-     this Public License, then Your rights under this Public License
-     terminate automatically.
-
-  b. Where Your right to use the Licensed Material has terminated under
-     Section 6(a), it reinstates:
-
-       1. automatically as of the date the violation is cured, provided
-          it is cured within 30 days of Your discovery of the
-          violation; or
-
-       2. upon express reinstatement by the Licensor.
-
-     For the avoidance of doubt, this Section 6(b) does not affect any
-     right the Licensor may have to seek remedies for Your violations
-     of this Public License.
-
-  c. For the avoidance of doubt, the Licensor may also offer the
-     Licensed Material under separate terms or conditions or stop
-     distributing the Licensed Material at any time; however, doing so
-     will not terminate this Public License.
-
-  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
-     License.
-
-
-Section 7 -- Other Terms and Conditions.
-
-  a. The Licensor shall not be bound by any additional or different
-     terms or conditions communicated by You unless expressly agreed.
-
-  b. Any arrangements, understandings, or agreements regarding the
-     Licensed Material not stated herein are separate from and
-     independent of the terms and conditions of this Public License.
-
-
-Section 8 -- Interpretation.
-
-  a. For the avoidance of doubt, this Public License does not, and
-     shall not be interpreted to, reduce, limit, restrict, or impose
-     conditions on any use of the Licensed Material that could lawfully
-     be made without permission under this Public License.
-
-  b. To the extent possible, if any provision of this Public License is
-     deemed unenforceable, it shall be automatically reformed to the
-     minimum extent necessary to make it enforceable. If the provision
-     cannot be reformed, it shall be severed from this Public License
-     without affecting the enforceability of the remaining terms and
-     conditions.
-
-  c. No term or condition of this Public License will be waived and no
-     failure to comply consented to unless expressly agreed to by the
-     Licensor.
-
-  d. Nothing in this Public License constitutes or may be interpreted
-     as a limitation upon, or waiver of, any privileges and immunities
-     that apply to the Licensor or You, including from the legal
-     processes of any jurisdiction or authority.
-
-
-=======================================================================
-
-Creative Commons is not a party to its public
-licenses. Notwithstanding, Creative Commons may elect to apply one of
-its public licenses to material it publishes and in those instances
-will be considered the “Licensor.” The text of the Creative Commons
-public licenses is dedicated to the public domain under the CC0 Public
-Domain Dedication. Except for the limited purpose of indicating that
-material is shared under a Creative Commons public license or as
-otherwise permitted by the Creative Commons policies published at
-creativecommons.org/policies, Creative Commons does not authorize the
-use of the trademark "Creative Commons" or any other trademark or logo
-of Creative Commons without its prior written consent including,
-without limitation, in connection with any unauthorized modifications
-to any of its public licenses or any other arrangements,
-understandings, or agreements concerning use of licensed material. For
-the avoidance of doubt, this paragraph does not form part of the
-public licenses.
-
-Creative Commons may be contacted at creativecommons.org.
Index: de_modules/caniuse-lite/README.md
===================================================================
--- node_modules/caniuse-lite/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-# caniuse-lite
-
-A smaller version of caniuse-db, with only the essentials!
-
-## Docs
-Read full docs **[here](https://github.com/browserslist/caniuse-lite#readme)**.
Index: de_modules/caniuse-lite/data/agents.js
===================================================================
--- node_modules/caniuse-lite/data/agents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{K:0,D:0,E:0.0347693,F:0.052154,A:0,B:0.330309,yC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","yC","K","D","E","F","A","B","","",""],E:"IE",F:{yC:962323200,K:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0,"1":0,"2":0,"3":0.028128,"4":0.032816,"5":0.009376,"6":0,"7":0,"8":0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,Q:0,H:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.009376,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0.032816,t:0,u:0,v:0,w:0,x:0.037504,y:0,z:0,JB:0.004688,KB:0.004688,LB:0.004688,MB:0.004688,NB:0.004688,OB:0.018752,PB:0.009376,QB:0.009376,RB:0.009376,SB:0.014064,TB:0.014064,UB:0.014064,VB:0.028128,WB:0.028128,XB:0.065632,YB:0.501616,ZB:3.72227,I:0.009376},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","G","N","O","P","Q","H","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","I","","",""],E:"Edge",F:{"0":1694649600,"1":1697155200,"2":1698969600,"3":1701993600,"4":1706227200,"5":1708732800,"6":1711152000,"7":1713398400,"8":1715990400,C:1438128000,L:1447286400,M:1470096000,G:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,H:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664000,y:1689897600,z:1692576000,JB:1718841600,KB:1721865600,LB:1724371200,MB:1726704000,NB:1729123200,OB:1731542400,PB:1737417600,QB:1740614400,RB:1741219200,SB:1743984000,TB:1746316800,UB:1748476800,VB:1750896000,WB:1754611200,XB:1756944000,YB:1759363200,ZB:1761868800,I:1764806400},D:{C:"ms",L:"ms",M:"ms",G:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{"0":0,"1":0.1172,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0.004688,"9":0,zC:0,UC:0,J:0,aB:0.004688,K:0,D:0,E:0,F:0,A:0,B:0.051568,C:0,L:0,M:0,G:0,N:0,O:0,P:0,bB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0.037504,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0.014064,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,VC:0,"5B":0,WC:0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0.004688,Q:0,H:0,R:0,XC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0,y:0.145328,z:0,JB:0,KB:0,LB:0.02344,MB:0,NB:0,OB:0,PB:0.009376,QB:0,RB:0,SB:0.009376,TB:0.009376,UB:0.004688,VB:0.004688,WB:0.004688,XB:0.079696,YB:0.009376,ZB:0.014064,I:0.032816,YC:0.614128,ZC:0.72664,NC:0,"0C":0,"1C":0,"2C":0,"3C":0,"4C":0},B:"moz",C:["zC","UC","3C","4C","J","aB","K","D","E","F","A","B","C","L","M","G","N","O","P","bB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","VC","5B","WC","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","Q","H","R","XC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","I","YC","ZC","NC","0C","1C","2C"],E:"Firefox",F:{"0":1693267200,"1":1695686400,"2":1698105600,"3":1700524800,"4":1702944000,"5":1705968000,"6":1708387200,"7":1710806400,"8":1713225600,"9":1361232000,zC:1161648000,UC:1213660800,"3C":1246320000,"4C":1264032000,J:1300752000,aB:1308614400,K:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,G:1342483200,N:1346112000,O:1349740800,P:1353628800,bB:1357603200,AB:1364860800,BB:1368489600,CB:1372118400,DB:1375747200,EB:1379376000,FB:1386633600,GB:1391472000,HB:1395100800,IB:1398729600,cB:1402358400,dB:1405987200,eB:1409616000,fB:1413244800,gB:1417392000,hB:1421107200,iB:1424736000,jB:1428278400,kB:1431475200,lB:1435881600,mB:1439251200,nB:1442880000,oB:1446508800,pB:1450137600,qB:1453852800,rB:1457395200,sB:1461628800,tB:1465257600,uB:1470096000,vB:1474329600,wB:1479168000,xB:1485216000,yB:1488844800,zB:1492560000,"0B":1497312000,"1B":1502150400,"2B":1506556800,"3B":1510617600,"4B":1516665600,VC:1520985600,"5B":1525824000,WC:1529971200,"6B":1536105600,"7B":1540252800,"8B":1544486400,"9B":1548720000,AC:1552953600,BC:1558396800,CC:1562630400,DC:1567468800,EC:1571788800,FC:1575331200,GC:1578355200,HC:1581379200,IC:1583798400,JC:1586304000,KC:1588636800,LC:1591056000,MC:1593475200,Q:1595894400,H:1598313600,R:1600732800,XC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,v:1681171200,w:1683590400,x:1686009600,y:1688428800,z:1690848000,JB:1715644800,KB:1718064000,LB:1720483200,MB:1722902400,NB:1725321600,OB:1727740800,PB:1730160000,QB:1732579200,RB:1736208000,SB:1738627200,TB:1741046400,UB:1743465600,VB:1745884800,WB:1748304000,XB:1750723200,YB:1753142400,ZB:1755561600,I:1757980800,YC:1760400000,ZC:1762819200,NC:1765238400,"0C":null,"1C":null,"2C":null}},D:{A:{"0":0.14064,"1":0.103136,"2":0.04688,"3":0.196896,"4":0.1172,"5":0.098448,"6":0.079696,"7":0.075008,"8":0.49224,"9":0,J:0,aB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,bB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0.004688,mB:0.004688,nB:0.004688,oB:0.004688,pB:0.004688,qB:0.004688,rB:0.009376,sB:0.004688,tB:0.009376,uB:0.014064,vB:0.014064,wB:0.004688,xB:0.004688,yB:0.014064,zB:0.009376,"0B":0.004688,"1B":0.004688,"2B":0.009376,"3B":0.004688,"4B":0.009376,VC:0.004688,"5B":0.004688,WC:0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0.018752,BC:0,CC:0,DC:0.014064,EC:0.004688,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0.014064,MC:0.004688,Q:0.075008,H:0.004688,R:0.014064,S:0.04688,T:0,U:0.009376,V:0.009376,W:0.037504,X:0.004688,Y:0,Z:0,a:0.018752,b:0.014064,c:0.014064,d:0,e:0,f:0,g:0.014064,h:0.042192,i:0.018752,j:0.004688,k:0.014064,l:0.009376,m:0.079696,n:0.014064,o:0.173456,p:0.112512,q:0.07032,r:0.042192,s:0.731328,t:0.168768,u:0.089072,v:2.29712,w:0.060944,x:0.182832,y:0.037504,z:0.075008,JB:0.525056,KB:0.159392,LB:0.150016,MB:0.135952,NB:0.89072,OB:0.290656,PB:0.103136,QB:0.07032,RB:1.08762,SB:0.065632,TB:0.065632,UB:0.482864,VB:0.318784,WB:3.44099,XB:0.684448,YB:3.75978,ZB:11.1809,I:0.042192,YC:0.009376,ZC:0,NC:0},B:"webkit",C:["","","","","","","","","J","aB","K","D","E","F","A","B","C","L","M","G","N","O","P","bB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","VC","5B","WC","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","Q","H","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","I","YC","ZC","NC"],E:"Chrome",F:{"0":1694476800,"1":1696896000,"2":1698710400,"3":1701993600,"4":1705968000,"5":1708387200,"6":1710806400,"7":1713225600,"8":1715644800,"9":1337040000,J:1264377600,aB:1274745600,K:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,G:1316131200,N:1319500800,O:1323734400,P:1328659200,bB:1332892800,AB:1340668800,BB:1343692800,CB:1348531200,DB:1352246400,EB:1357862400,FB:1361404800,GB:1364428800,HB:1369094400,IB:1374105600,cB:1376956800,dB:1384214400,eB:1389657600,fB:1392940800,gB:1397001600,hB:1400544000,iB:1405468800,jB:1409011200,kB:1412640000,lB:1416268800,mB:1421798400,nB:1425513600,oB:1429401600,pB:1432080000,qB:1437523200,rB:1441152000,sB:1444780800,tB:1449014400,uB:1453248000,vB:1456963200,wB:1460592000,xB:1464134400,yB:1469059200,zB:1472601600,"0B":1476230400,"1B":1480550400,"2B":1485302400,"3B":1489017600,"4B":1492560000,VC:1496707200,"5B":1500940800,WC:1504569600,"6B":1508198400,"7B":1512518400,"8B":1516752000,"9B":1520294400,AC:1523923200,BC:1527552000,CC:1532390400,DC:1536019200,EC:1539648000,FC:1543968000,GC:1548720000,HC:1552348800,IC:1555977600,JC:1559606400,KC:1564444800,LC:1568073600,MC:1571702400,Q:1575936000,H:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,v:1680566400,w:1682985600,x:1685404800,y:1689724800,z:1692057600,JB:1718064000,KB:1721174400,LB:1724112000,MB:1726531200,NB:1728950400,OB:1731369600,PB:1736812800,QB:1738627200,RB:1741046400,SB:1743465600,TB:1745884800,UB:1748304000,VB:1750723200,WB:1754352000,XB:1756771200,YB:1759190400,ZB:1761609600,I:1764633600,YC:null,ZC:null,NC:null}},E:{A:{J:0,aB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0.009376,G:0,"5C":0,aC:0,"6C":0,"7C":0,"8C":0,"9C":0,bC:0,OC:0.004688,PC:0,AD:0.018752,BD:0.02344,CD:0.004688,cC:0,dC:0.004688,QC:0.009376,DD:0.089072,RC:0.004688,eC:0.009376,fC:0.009376,gC:0.018752,hC:0.009376,iC:0.014064,ED:0.131264,SC:0.004688,jC:0.09376,kC:0.009376,lC:0.014064,mC:0.02344,nC:0.037504,FD:0.14064,TC:0.014064,oC:0.02344,pC:0.014064,qC:0.051568,rC:0.028128,GD:0.1172,sC:0.206272,tC:0.229712,uC:0.009376,vC:0,HD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5C","aC","J","aB","6C","K","7C","D","8C","E","F","9C","A","bC","B","OC","C","PC","L","AD","M","BD","G","CD","cC","dC","QC","DD","RC","eC","fC","gC","hC","iC","ED","SC","jC","kC","lC","mC","nC","FD","TC","oC","pC","qC","rC","GD","sC","tC","uC","vC","HD",""],E:"Safari",F:{"5C":1205798400,aC:1226534400,J:1244419200,aB:1275868800,"6C":1311120000,K:1343174400,"7C":1382400000,D:1382400000,"8C":1410998400,E:1413417600,F:1443657600,"9C":1458518400,A:1474329600,bC:1490572800,B:1505779200,OC:1522281600,C:1537142400,PC:1553472000,L:1568851200,AD:1585008000,M:1600214400,BD:1619395200,G:1632096000,CD:1635292800,cC:1639353600,dC:1647216000,QC:1652745600,DD:1658275200,RC:1662940800,eC:1666569600,fC:1670889600,gC:1674432000,hC:1679875200,iC:1684368000,ED:1690156800,SC:1695686400,jC:1698192000,kC:1702252800,lC:1705881600,mC:1709596800,nC:1715558400,FD:1722211200,TC:1726444800,oC:1730073600,pC:1733875200,qC:1737936000,rC:1743379200,GD:1747008000,sC:1757894400,tC:1762128000,uC:1762041600,vC:null,HD:null}},F:{A:{"0":0,"1":0,"2":0,"3":0.009376,"4":0,"5":0.290656,"6":0.417232,"7":0.16408,"8":0,"9":0,F:0,B:0,C:0,G:0,N:0,O:0,P:0,bB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,Q:0,H:0,R:0,XC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.075008,c:0.009376,d:0,e:0.028128,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0,y:0,z:0,ID:0,JD:0,KD:0,LD:0,OC:0,wC:0,MD:0,PC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","F","ID","JD","KD","LD","B","OC","wC","MD","C","PC","G","N","O","P","bB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","Q","H","R","XC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","","",""],E:"Opera",F:{"0":1739404800,"1":1744675200,"2":1747094400,"3":1751414400,"4":1756339200,"5":1757548800,"6":1761609600,"7":1762992000,"8":1764806400,"9":1393891200,F:1150761600,ID:1223424000,JD:1251763200,KD:1267488000,LD:1277942400,B:1292457600,OC:1302566400,wC:1309219200,MD:1323129600,C:1323129600,PC:1352073600,G:1372723200,N:1377561600,O:1381104000,P:1386288000,bB:1390867200,AB:1399334400,BB:1401753600,CB:1405987200,DB:1409616000,EB:1413331200,FB:1417132800,GB:1422316800,HB:1425945600,IB:1430179200,cB:1433808000,dB:1438646400,eB:1442448000,fB:1445904000,gB:1449100800,hB:1454371200,iB:1457308800,jB:1462320000,kB:1465344000,lB:1470096000,mB:1474329600,nB:1477267200,oB:1481587200,pB:1486425600,qB:1490054400,rB:1494374400,sB:1498003200,tB:1502236800,uB:1506470400,vB:1510099200,wB:1515024000,xB:1517961600,yB:1521676800,zB:1525910400,"0B":1530144000,"1B":1534982400,"2B":1537833600,"3B":1543363200,"4B":1548201600,"5B":1554768000,"6B":1561593600,"7B":1566259200,"8B":1570406400,"9B":1573689600,AC:1578441600,BC:1583971200,CC:1587513600,DC:1592956800,EC:1595894400,FC:1600128000,GC:1603238400,HC:1613520000,IC:1612224000,JC:1616544000,KC:1619568000,LC:1623715200,MC:1627948800,Q:1631577600,H:1633392000,R:1635984000,XC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600,v:1721088000,w:1724284800,x:1727222400,y:1732665600,z:1736294400},D:{F:"o",B:"o",C:"o",ID:"o",JD:"o",KD:"o",LD:"o",OC:"o",wC:"o",MD:"o",PC:"o"}},G:{A:{E:0,aC:0,ND:0,xC:0.0011798,OD:0,PD:0.00471918,QD:0.00353939,RD:0,SD:0,TD:0.0106182,UD:0.0011798,VD:0.0188767,WD:0.219442,XD:0.00707877,YD:0.00235959,ZD:0.0554504,aD:0,bD:0.00589898,cD:0.00235959,dD:0.0106182,eD:0.0176969,fD:0.0224161,gD:0.0188767,cC:0.0153373,dC:0.0165171,QC:0.0176969,hD:0.256016,RC:0.0318545,eC:0.0589898,fC:0.0306747,gC:0.0566302,hC:0.0141575,iC:0.0235959,iD:0.34568,SC:0.0294949,jC:0.0353939,kC:0.0259555,lC:0.0365737,mC:0.0601696,nC:0.11444,jD:0.280791,TC:0.0625291,oC:0.132137,pC:0.0707877,qC:0.23006,rC:0.11798,kD:8.23969,sC:0.563942,tC:0.515571,uC:0,vC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","aC","ND","xC","OD","PD","QD","E","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","eD","fD","gD","cC","dC","QC","hD","RC","eC","fC","gC","hC","iC","iD","SC","jC","kC","lC","mC","nC","jD","TC","oC","pC","qC","rC","kD","sC","tC","uC","vC","",""],E:"Safari on iOS",F:{aC:1270252800,ND:1283904000,xC:1299628800,OD:1331078400,PD:1359331200,QD:1394409600,E:1410912000,RD:1413763200,SD:1442361600,TD:1458518400,UD:1473724800,VD:1490572800,WD:1505779200,XD:1522281600,YD:1537142400,ZD:1553472000,aD:1568851200,bD:1572220800,cD:1580169600,dD:1585008000,eD:1600214400,fD:1619395200,gD:1632096000,cC:1639353600,dC:1647216000,QC:1652659200,hD:1658275200,RC:1662940800,eC:1666569600,fC:1670889600,gC:1674432000,hC:1679875200,iC:1684368000,iD:1690156800,SC:1694995200,jC:1698192000,kC:1702252800,lC:1705881600,mC:1709596800,nC:1715558400,jD:1722211200,TC:1726444800,oC:1730073600,pC:1733875200,qC:1737936000,rC:1743379200,kD:1747008000,sC:1757894400,tC:1762128000,uC:1765497600,vC:null}},H:{A:{lD:0.04},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","lD","","",""],E:"Opera Mini",F:{lD:1426464000}},I:{A:{UC:0,J:0,I:0.461543,mD:0,nD:0,oD:0,pD:0,xC:0.0000924288,qD:0,rD:0.000231072},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mD","nD","oD","UC","J","pD","xC","qD","rD","I","","",""],E:"Android Browser",F:{mD:1256515200,nD:1274313600,oD:1291593600,UC:1298332800,J:1318896000,pD:1341792000,xC:1374624000,qD:1386547200,rD:1401667200,I:1764633600}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,H:0.825856,OC:0,wC:0,PC:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","OC","wC","C","PC","H","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,OC:1314835200,wC:1318291200,C:1330300800,PC:1349740800,H:1709769600},D:{H:"webkit"}},L:{A:{I:41.8556},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","","",""],E:"Chrome for Android",F:{I:1764633600}},M:{A:{NC:0.302784},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NC","","",""],E:"Firefox for Android",F:{NC:1765238400}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{QC:0.573696},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","QC","","",""],E:"UC Browser for Android",F:{QC:1710115200},D:{QC:"webkit"}},P:{A:{"9":0,J:0,AB:0.0108341,BB:0.0108341,CB:0.0216682,DB:0.0216682,EB:0.0216682,FB:0.0433363,GB:0.0541704,HB:0.227516,IB:1.50594,sD:0,tD:0,uD:0,vD:0,wD:0,bC:0,xD:0,yD:0,zD:0,"0D":0,"1D":0,RC:0,SC:0,TC:0,"2D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","sD","tD","uD","vD","wD","bC","xD","yD","zD","0D","1D","RC","SC","TC","2D","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","","",""],E:"Samsung Internet",F:{"9":1677369600,J:1461024000,sD:1481846400,tD:1509408000,uD:1528329600,vD:1546128000,wD:1554163200,bC:1567900800,xD:1582588800,yD:1593475200,zD:1605657600,"0D":1618531200,"1D":1629072000,RC:1640736000,SC:1651708800,TC:1659657600,"2D":1667260800,AB:1684454400,BB:1689292800,CB:1697587200,DB:1711497600,EB:1715126400,FB:1717718400,GB:1725667200,HB:1746057600,IB:1761264000}},Q:{A:{"3D":0.148736},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3D","","",""],E:"QQ Browser",F:{"3D":1710288000}},R:{A:{"4D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4D","","",""],E:"Baidu Browser",F:{"4D":1710201600}},S:{A:{"5D":0.021248,"6D":0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5D","6D","","",""],E:"KaiOS Browser",F:{"5D":1527811200,"6D":1631664000}}};
Index: de_modules/caniuse-lite/data/browserVersions.js
===================================================================
--- node_modules/caniuse-lite/data/browserVersions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={"0":"117","1":"118","2":"119","3":"120","4":"121","5":"122","6":"123","7":"124","8":"125","9":"20",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"80",I:"143",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"112",w:"113",x:"114",y:"115",z:"116",AB:"21",BB:"22",CB:"23",DB:"24",EB:"25",FB:"26",GB:"27",HB:"28",IB:"29",JB:"126",KB:"127",LB:"128",MB:"129",NB:"130",OB:"131",PB:"132",QB:"133",RB:"134",SB:"135",TB:"136",UB:"137",VB:"138",WB:"139",XB:"140",YB:"141",ZB:"142",aB:"5",bB:"19",cB:"30",dB:"31",eB:"32",fB:"33",gB:"34",hB:"35",iB:"36",jB:"37",kB:"38",lB:"39",mB:"40",nB:"41",oB:"42",pB:"43",qB:"44",rB:"45",sB:"46",tB:"47",uB:"48",vB:"49",wB:"50",xB:"51",yB:"52",zB:"53","0B":"54","1B":"55","2B":"56","3B":"57","4B":"58","5B":"60","6B":"62","7B":"63","8B":"64","9B":"65",AC:"66",BC:"67",CC:"68",DC:"69",EC:"70",FC:"71",GC:"72",HC:"73",IC:"74",JC:"75",KC:"76",LC:"77",MC:"78",NC:"146",OC:"11.1",PC:"12.1",QC:"15.5",RC:"16.0",SC:"17.0",TC:"18.0",UC:"3",VC:"59",WC:"61",XC:"82",YC:"144",ZC:"145",aC:"3.2",bC:"10.1",cC:"15.2-15.3",dC:"15.4",eC:"16.1",fC:"16.2",gC:"16.3",hC:"16.4",iC:"16.5",jC:"17.1",kC:"17.2",lC:"17.3",mC:"17.4",nC:"17.5",oC:"18.1",pC:"18.2",qC:"18.3",rC:"18.4",sC:"26.0",tC:"26.1",uC:"26.2",vC:"26.3",wC:"11.5",xC:"4.2-4.3",yC:"5.5",zC:"2","0C":"147","1C":"148","2C":"149","3C":"3.5","4C":"3.6","5C":"3.1","6C":"5.1","7C":"6.1","8C":"7.1","9C":"9.1",AD:"13.1",BD:"14.1",CD:"15.1",DD:"15.6",ED:"16.6",FD:"17.6",GD:"18.5-18.6",HD:"TP",ID:"9.5-9.6",JD:"10.0-10.1",KD:"10.5",LD:"10.6",MD:"11.6",ND:"4.0-4.1",OD:"5.0-5.1",PD:"6.0-6.1",QD:"7.0-7.1",RD:"8.1-8.4",SD:"9.0-9.2",TD:"9.3",UD:"10.0-10.2",VD:"10.3",WD:"11.0-11.2",XD:"11.3-11.4",YD:"12.0-12.1",ZD:"12.2-12.5",aD:"13.0-13.1",bD:"13.2",cD:"13.3",dD:"13.4-13.7",eD:"14.0-14.4",fD:"14.5-14.8",gD:"15.0-15.1",hD:"15.6-15.8",iD:"16.6-16.7",jD:"17.6-17.7",kD:"18.5-18.7",lD:"all",mD:"2.1",nD:"2.2",oD:"2.3",pD:"4.1",qD:"4.4",rD:"4.4.3-4.4.4",sD:"5.0-5.4",tD:"6.2-6.4",uD:"7.2-7.4",vD:"8.2",wD:"9.2",xD:"11.1-11.2",yD:"12.0",zD:"13.0","0D":"14.0","1D":"15.0","2D":"19.0","3D":"14.9","4D":"13.52","5D":"2.5","6D":"3.0-3.1"};
Index: de_modules/caniuse-lite/data/browsers.js
===================================================================
--- node_modules/caniuse-lite/data/browsers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"};
Index: de_modules/caniuse-lite/data/features.js
===================================================================
--- node_modules/caniuse-lite/data/features.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr-v1":require("./features/colr-v1"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cross-document-view-transitions":require("./features/cross-document-view-transitions"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-anchor-positioning":require("./features/css-anchor-positioning"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-autofill":require("./features/css-autofill"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-cascade-scope":require("./features/css-cascade-scope"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries-style":require("./features/css-container-queries-style"),"css-container-queries":require("./features/css-container-queries"),"css-container-query-units":require("./features/css-container-query-units"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-file-selector-button":require("./features/css-file-selector-button"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-palette":require("./features/css-font-palette"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid-animation":require("./features/css-grid-animation"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphens":require("./features/css-hyphens"),"css-if":require("./features/css-if"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-lch-lab":require("./features/css-lch-lab"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-range-syntax":require("./features/css-media-range-syntax"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-module-scripts":require("./features/css-module-scripts"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-print-color-adjust":require("./features/css-print-color-adjust"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-relative-colors":require("./features/css-relative-colors"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-box-trim":require("./features/css-text-box-trim"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-text-wrap-balance":require("./features/css-text-wrap-balance"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-when-else":require("./features/css-when-else"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-width-stretch":require("./features/css-width-stretch"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"declarative-shadow-dom":require("./features/declarative-shadow-dom"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"mdn-css-backdrop-pseudo-element":require("./features/mdn-css-backdrop-pseudo-element"),"mdn-css-unicode-bidi-isolate-override":require("./features/mdn-css-unicode-bidi-isolate-override"),"mdn-css-unicode-bidi-isolate":require("./features/mdn-css-unicode-bidi-isolate"),"mdn-css-unicode-bidi-plaintext":require("./features/mdn-css-unicode-bidi-plaintext"),"mdn-text-decoration-color":require("./features/mdn-text-decoration-color"),"mdn-text-decoration-line":require("./features/mdn-text-decoration-line"),"mdn-text-decoration-shorthand":require("./features/mdn-text-decoration-shorthand"),"mdn-text-decoration-style":require("./features/mdn-text-decoration-style"),"media-fragments":require("./features/media-fragments"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passkeys":require("./features/passkeys"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"selectlist":require("./features/selectlist"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-bundling":require("./features/subresource-bundling"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"view-transitions":require("./features/view-transitions"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm-bigint":require("./features/wasm-bigint"),"wasm-bulk-memory":require("./features/wasm-bulk-memory"),"wasm-extended-const":require("./features/wasm-extended-const"),"wasm-gc":require("./features/wasm-gc"),"wasm-multi-memory":require("./features/wasm-multi-memory"),"wasm-multi-value":require("./features/wasm-multi-value"),"wasm-mutable-globals":require("./features/wasm-mutable-globals"),"wasm-nontrapping-fptoint":require("./features/wasm-nontrapping-fptoint"),"wasm-reference-types":require("./features/wasm-reference-types"),"wasm-relaxed-simd":require("./features/wasm-relaxed-simd"),"wasm-signext":require("./features/wasm-signext"),"wasm-simd":require("./features/wasm-simd"),"wasm-tail-calls":require("./features/wasm-tail-calls"),"wasm-threads":require("./features/wasm-threads"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webcodecs":require("./features/webcodecs"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webtransport":require("./features/webtransport"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer"),"zstd":require("./features/zstd")};
Index: de_modules/caniuse-lite/data/features/aac.js
===================================================================
--- node_modules/caniuse-lite/data/features/aac.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","132":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F","16":"A B"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"132":"NC"},N:{"1":"A","2":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"132":"5D 6D"}},B:6,C:"AAC audio file format",D:true};
Index: de_modules/caniuse-lite/data/features/abortcontroller.js
===================================================================
--- node_modules/caniuse-lite/data/features/abortcontroller.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","130":"C OC"},F:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"AbortController & AbortSignal",D:true};
Index: de_modules/caniuse-lite/data/features/ac3-ec3.js
===================================================================
--- node_modules/caniuse-lite/data/features/ac3-ec3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD","132":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D","132":"A"},K:{"2":"A B C H OC wC","132":"PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs",D:false};
Index: de_modules/caniuse-lite/data/features/accelerometer.js
===================================================================
--- node_modules/caniuse-lite/data/features/accelerometer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","194":"4B VC 5B WC 6B 7B 8B 9B AC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"Accelerometer",D:true};
Index: de_modules/caniuse-lite/data/features/addeventlistener.js
===================================================================
--- node_modules/caniuse-lite/data/features/addeventlistener.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","130":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","257":"zC UC J aB K 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"EventTarget.addEventListener()",D:true};
Index: de_modules/caniuse-lite/data/features/alternate-stylesheet.js
===================================================================
--- node_modules/caniuse-lite/data/features/alternate-stylesheet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"K D yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"F B C ID JD KD LD OC wC MD PC","16":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"16":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"2":"H","16":"A B C OC wC PC"},L:{"16":"I"},M:{"16":"NC"},N:{"16":"A B"},O:{"16":"QC"},P:{"16":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"16":"4D"},S:{"1":"5D 6D"}},B:1,C:"Alternate stylesheet",D:false};
Index: de_modules/caniuse-lite/data/features/ambient-light.js
===================================================================
--- node_modules/caniuse-lite/data/features/ambient-light.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L","132":"M G N O P","322":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","132":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","194":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","322":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC ID JD KD LD OC wC MD PC","322":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"322":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"132":"5D 6D"}},B:4,C:"Ambient Light Sensor",D:true};
Index: de_modules/caniuse-lite/data/features/apng.js
===================================================================
--- node_modules/caniuse-lite/data/features/apng.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 B C sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"9 F G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Animated PNG (APNG)",D:true};
Index: de_modules/caniuse-lite/data/features/array-find-index.js
===================================================================
--- node_modules/caniuse-lite/data/features/array-find-index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Array.prototype.findIndex",D:true};
Index: de_modules/caniuse-lite/data/features/array-find.js
===================================================================
--- node_modules/caniuse-lite/data/features/array-find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Array.prototype.find",D:true};
Index: de_modules/caniuse-lite/data/features/array-flat.js
===================================================================
--- node_modules/caniuse-lite/data/features/array-flat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ID JD KD LD OC wC MD PC"},G:{"1":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"flat & flatMap array methods",D:true};
Index: de_modules/caniuse-lite/data/features/array-includes.js
===================================================================
--- node_modules/caniuse-lite/data/features/array-includes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Array.prototype.includes",D:true};
Index: de_modules/caniuse-lite/data/features/arrow-functions.js
===================================================================
--- node_modules/caniuse-lite/data/features/arrow-functions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Arrow functions",D:true};
Index: de_modules/caniuse-lite/data/features/asmjs.js
===================================================================
--- node_modules/caniuse-lite/data/features/asmjs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"L M G N O P","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB","132":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","132":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","132":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"132":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"132":"QC"},P:{"2":"J","132":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"132":"4D"},S:{"1":"5D 6D"}},B:6,C:"asm.js",D:true};
Index: de_modules/caniuse-lite/data/features/async-clipboard.js
===================================================================
--- node_modules/caniuse-lite/data/features/async-clipboard.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C","132":"0 1 2 3 4 5 6 7 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ID JD KD LD OC wC MD PC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","260":"I"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"EB FB GB HB IB","2":"J sD tD uD vD","260":"9 AB BB CB DB wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D","132":"6D"}},B:5,C:"Asynchronous Clipboard API",D:true};
Index: de_modules/caniuse-lite/data/features/async-functions.js
===================================================================
--- node_modules/caniuse-lite/data/features/async-functions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L","194":"M"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C","258":"bC"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD","258":"VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"Async functions",D:true};
Index: de_modules/caniuse-lite/data/features/atob-btoa.js
===================================================================
--- node_modules/caniuse-lite/data/features/atob-btoa.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID JD","16":"KD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","16":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Base64 encoding and decoding",D:true};
Index: de_modules/caniuse-lite/data/features/audio-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/audio-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L","33":"9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K D E F A B C L M 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Web Audio API",D:true};
Index: de_modules/caniuse-lite/data/features/audio.js
===================================================================
--- node_modules/caniuse-lite/data/features/audio.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","132":"J aB K D E F A B C L M G N O P bB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F","4":"ID JD"},G:{"260":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","2":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Audio element",D:true};
Index: de_modules/caniuse-lite/data/features/audiotracks.js
===================================================================
--- node_modules/caniuse-lite/data/features/audiotracks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"C L M G N O P","322":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","194":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB","322":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC","322":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","322":"H"},L:{"322":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"322":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"322":"3D"},R:{"322":"4D"},S:{"194":"5D 6D"}},B:1,C:"Audio Tracks",D:true};
Index: de_modules/caniuse-lite/data/features/autofocus.js
===================================================================
--- node_modules/caniuse-lite/data/features/autofocus.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"Autofocus attribute",D:true};
Index: de_modules/caniuse-lite/data/features/auxclick.js
===================================================================
--- node_modules/caniuse-lite/data/features/auxclick.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C","129":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC"},G:{"1":"pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"Auxclick",D:true};
Index: de_modules/caniuse-lite/data/features/av1.js
===================================================================
--- node_modules/caniuse-lite/data/features/av1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 2 3 C L M G N O z","194":"P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y"},C:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 3C 4C","66":"1B 2B 3B 4B VC 5B WC 6B 7B 8B","260":"9B","516":"AC"},D:{"1":"0 1 2 3 4 5 6 7 8 EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC","66":"BC CC DC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED","1028":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD","1028":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"AV1 video format",D:true};
Index: de_modules/caniuse-lite/data/features/avif.js
===================================================================
--- node_modules/caniuse-lite/data/features/avif.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"1 2 3 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","4162":"0 x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC 3C 4C","194":"LC MC Q H R XC S T U V W X Y Z a b","257":"c d e f g h i j k l m n o p q r s t","2049":"u v"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC","1796":"eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD","1281":"RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"AVIF image format",D:true};
Index: de_modules/caniuse-lite/data/features/background-attachment.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-attachment.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","132":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C 6C 7C 8C 9C bC OC PC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J L 5C aC AD","2050":"M G BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","132":"F ID JD"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","772":"E OD PD QD RD SD TD UD VD WD XD YD ZD","2050":"aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD qD rD","132":"pD xC"},J:{"260":"D A"},K:{"1":"B C H OC wC PC","132":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"2":"J","1028":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS background-attachment",D:true};
Index: de_modules/caniuse-lite/data/features/background-clip-text.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-clip-text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"G N O P","33":"C L M","129":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","161":"0 1 2 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"129":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","161":"0 1 2 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"5C","129":"QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","388":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC","420":"J aC"},F:{"2":"F B C ID JD KD LD OC wC MD PC","129":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","161":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o"},G:{"129":"QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","388":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC"},H:{"2":"lD"},I:{"16":"UC mD nD oD","129":"I","161":"J pD xC qD rD"},J:{"161":"D A"},K:{"16":"A B C OC wC PC","129":"H"},L:{"129":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"161":"QC"},P:{"1":"EB FB GB HB IB","161":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"161":"3D"},R:{"161":"4D"},S:{"1":"5D 6D"}},B:7,C:"Background-clip: text",D:true};
Index: de_modules/caniuse-lite/data/features/background-img-opts.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-img-opts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","36":"4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","516":"J aB K D E F A B C L M"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","772":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID","36":"JD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","4":"aC ND xC PD","516":"OD"},H:{"132":"lD"},I:{"1":"I qD rD","36":"mD","516":"UC J pD xC","548":"nD oD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 Background-image options",D:true};
Index: de_modules/caniuse-lite/data/features/background-position-x-y.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-position-x-y.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:7,C:"background-position-x & background-position-y",D:true};
Index: de_modules/caniuse-lite/data/features/background-repeat-round-space.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-repeat-round-space.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E yC","132":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F G N O P ID JD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"CSS background-repeat round and space",D:true};
Index: de_modules/caniuse-lite/data/features/background-sync.js
===================================================================
--- node_modules/caniuse-lite/data/features/background-sync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 3C 4C","16":"0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Background Sync API",D:true};
Index: de_modules/caniuse-lite/data/features/battery-status.js
===================================================================
--- node_modules/caniuse-lite/data/features/battery-status.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"pB qB rB sB tB uB vB wB xB","2":"0 1 2 3 4 5 6 7 8 zC UC J aB K D E F yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","132":"9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","164":"A B C L M G"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB","66":"jB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D","2":"6D"}},B:4,C:"Battery Status API",D:true};
Index: de_modules/caniuse-lite/data/features/beacon.js
===================================================================
--- node_modules/caniuse-lite/data/features/beacon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Beacon API",D:true};
Index: de_modules/caniuse-lite/data/features/beforeafterprint.js
===================================================================
--- node_modules/caniuse-lite/data/features/beforeafterprint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"16":"A B"},O:{"1":"QC"},P:{"2":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Printing Events",D:true};
Index: de_modules/caniuse-lite/data/features/bigint.js
===================================================================
--- node_modules/caniuse-lite/data/features/bigint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 3C 4C","194":"9B AC BC"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"BigInt",D:true};
Index: de_modules/caniuse-lite/data/features/blobbuilder.js
===================================================================
--- node_modules/caniuse-lite/data/features/blobbuilder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","36":"K D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D","36":"E F A B C L M G N O P bB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"I","2":"mD nD oD","36":"UC J pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Blob constructing",D:true};
Index: de_modules/caniuse-lite/data/features/bloburls.js
===================================================================
--- node_modules/caniuse-lite/data/features/bloburls.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D","33":"9 E F A B C L M G N O P bB AB BB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC mD nD oD","33":"J pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Blob URLs",D:true};
Index: de_modules/caniuse-lite/data/features/border-image.js
===================================================================
--- node_modules/caniuse-lite/data/features/border-image.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","260":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","804":"J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","260":"xB yB zB 0B 1B","388":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","1412":"9 G N O P bB AB BB CB DB EB FB GB HB IB","1956":"J aB K D E F A B C L M"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","129":"A B C L M G 9C bC OC PC AD BD CD cC","1412":"K D E F 7C 8C","1956":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD","260":"kB lB mB nB oB","388":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","1796":"KD LD","1828":"B C OC wC MD PC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","129":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC","1412":"E PD QD RD SD","1956":"aC ND xC OD"},H:{"1828":"lD"},I:{"1":"I","388":"qD rD","1956":"UC J mD nD oD pD xC"},J:{"1412":"A","1924":"D"},K:{"1":"H","2":"A","1828":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","260":"sD tD","388":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","260":"5D"}},B:4,C:"CSS3 Border images",D:true};
Index: de_modules/caniuse-lite/data/features/border-radius.js
===================================================================
--- node_modules/caniuse-lite/data/features/border-radius.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","257":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","289":"UC 3C 4C","292":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"J"},E:{"1":"aB D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"J 5C aC","129":"K 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"aC"},H:{"2":"lD"},I:{"1":"UC J I nD oD pD xC qD rD","33":"mD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","257":"5D"}},B:4,C:"CSS3 Border-radius (rounded corners)",D:true};
Index: de_modules/caniuse-lite/data/features/broadcastchannel.js
===================================================================
--- node_modules/caniuse-lite/data/features/broadcastchannel.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"BroadcastChannel",D:true};
Index: de_modules/caniuse-lite/data/features/brotli.js
===================================================================
--- node_modules/caniuse-lite/data/features/brotli.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","194":"vB","257":"wB"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","513":"B C OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC","194":"iB jB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding",D:true};
Index: de_modules/caniuse-lite/data/features/calc.js
===================================================================
--- node_modules/caniuse-lite/data/features/calc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","260":"F","516":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"J aB K D E F A B C L M G"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P","33":"9 bB AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"PD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","132":"qD rD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"calc() as CSS unit value",D:true};
Index: de_modules/caniuse-lite/data/features/canvas-blending.js
===================================================================
--- node_modules/caniuse-lite/data/features/canvas-blending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P bB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Canvas blend modes",D:true};
Index: de_modules/caniuse-lite/data/features/canvas-text.js
===================================================================
--- node_modules/caniuse-lite/data/features/canvas-text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","8":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","8":"F ID JD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","8":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Text API for Canvas",D:true};
Index: de_modules/caniuse-lite/data/features/canvas.js
===================================================================
--- node_modules/caniuse-lite/data/features/canvas.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","132":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"260":"lD"},I:{"1":"UC J I pD xC qD rD","132":"mD nD oD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Canvas (basic support)",D:true};
Index: de_modules/caniuse-lite/data/features/ch-unit.js
===================================================================
--- node_modules/caniuse-lite/data/features/ch-unit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"ch (character) unit",D:true};
Index: de_modules/caniuse-lite/data/features/chacha20-poly1305.js
===================================================================
--- node_modules/caniuse-lite/data/features/chacha20-poly1305.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB","129":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD","16":"rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS",D:true};
Index: de_modules/caniuse-lite/data/features/channel-messaging.js
===================================================================
--- node_modules/caniuse-lite/data/features/channel-messaging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB 3C 4C","194":"FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID JD","16":"KD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Channel messaging",D:true};
Index: de_modules/caniuse-lite/data/features/childnode-remove.js
===================================================================
--- node_modules/caniuse-lite/data/features/childnode-remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","16":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"ChildNode.remove()",D:true};
Index: de_modules/caniuse-lite/data/features/classlist.js
===================================================================
--- node_modules/caniuse-lite/data/features/classlist.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"8":"K D E F yC","1924":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"zC UC 3C","516":"DB EB","772":"9 J aB K D E F A B C L M G N O P bB AB BB CB 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J aB K D","516":"DB EB FB GB","772":"CB","900":"9 E F A B C L M G N O P bB AB BB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB 5C aC","900":"K 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B ID JD KD LD OC","900":"C wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC","900":"OD PD"},H:{"900":"lD"},I:{"1":"I qD rD","8":"mD nD oD","900":"UC J pD xC"},J:{"1":"A","900":"D"},K:{"1":"H","8":"A B","900":"C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"900":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"classList (DOMTokenList)",D:true};
Index: de_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js
===================================================================
--- node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width",D:true};
Index: de_modules/caniuse-lite/data/features/clipboard.js
===================================================================
--- node_modules/caniuse-lite/data/features/clipboard.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2436":"K D E F A B yC"},B:{"260":"O P","2436":"C L M G N","8196":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","772":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","4100":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"J aB K D E F A B C","2564":"9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","8196":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","10244":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC","2308":"A B bC OC","2820":"J aB K D E F 6C 7C 8C 9C"},F:{"2":"F B ID JD KD LD OC wC MD","16":"C","516":"PC","2564":"9 G N O P bB AB BB CB DB EB FB GB HB IB","8196":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","10244":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},G:{"1":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","2820":"E OD PD QD RD SD TD UD VD WD XD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","260":"I","2308":"qD rD"},J:{"2":"D","2308":"A"},K:{"2":"A B C OC wC","16":"PC","8196":"H"},L:{"8196":"I"},M:{"1028":"NC"},N:{"2":"A B"},O:{"8196":"QC"},P:{"2052":"sD tD","2308":"J","8196":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"8196":"3D"},R:{"8196":"4D"},S:{"4100":"5D 6D"}},B:5,C:"Synchronous Clipboard API",D:true};
Index: de_modules/caniuse-lite/data/features/colr-v1.js
===================================================================
--- node_modules/caniuse-lite/data/features/colr-v1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g"},C:{"1":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g 3C 4C","258":"h i j k l m n","578":"o p"},D:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y","194":"Z a b c d e f g"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"16":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"COLR/CPAL(v1) Font Formats",D:true};
Index: de_modules/caniuse-lite/data/features/colr.js
===================================================================
--- node_modules/caniuse-lite/data/features/colr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","257":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","513":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC","513":"FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","129":"B C L OC PC AD","1026":"SC jC"},F:{"1":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ID JD KD LD OC wC MD PC","513":"4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","1026":"SC jC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"16":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"COLR/CPAL(v0) Font Formats",D:true};
Index: de_modules/caniuse-lite/data/features/comparedocumentposition.js
===================================================================
--- node_modules/caniuse-lite/data/features/comparedocumentposition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB K 5C aC","132":"D E F 7C 8C 9C","260":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","16":"F B ID JD KD LD OC wC","132":"G N"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC","132":"E ND xC OD PD QD RD SD TD"},H:{"1":"lD"},I:{"1":"I qD rD","16":"mD nD","132":"UC J oD pD xC"},J:{"132":"D A"},K:{"1":"C H PC","16":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Node.compareDocumentPosition()",D:true};
Index: de_modules/caniuse-lite/data/features/console-basic.js
===================================================================
--- node_modules/caniuse-lite/data/features/console-basic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D yC","132":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F ID JD KD LD"},G:{"1":"aC ND xC OD","513":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"4097":"lD"},I:{"1025":"UC J I mD nD oD pD xC qD rD"},J:{"258":"D A"},K:{"2":"A","258":"B C OC wC PC","1025":"H"},L:{"1025":"I"},M:{"2049":"NC"},N:{"258":"A B"},O:{"258":"QC"},P:{"1025":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1025":"4D"},S:{"1":"5D 6D"}},B:1,C:"Basic console logging functions",D:true};
Index: de_modules/caniuse-lite/data/features/console-time.js
===================================================================
--- node_modules/caniuse-lite/data/features/console-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F ID JD KD LD","16":"B"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"H","16":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"console.time and console.timeEnd",D:true};
Index: de_modules/caniuse-lite/data/features/const.js
===================================================================
--- node_modules/caniuse-lite/data/features/const.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","2052":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"zC UC J aB K D E F A B C 3C 4C","260":"9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","260":"9 J aB K D E F A B C L M G N O P bB","772":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","1028":"nB oB pB qB rB sB tB uB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","260":"J aB A 5C aC bC","772":"K D E F 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID","132":"B JD KD LD OC wC","644":"C MD PC","772":"9 G N O P bB AB BB CB DB EB FB GB","1028":"HB IB cB dB eB fB gB hB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"aC ND xC UD VD","772":"E OD PD QD RD SD TD"},H:{"644":"lD"},I:{"1":"I","16":"mD nD","260":"oD","772":"UC J pD xC qD rD"},J:{"772":"D A"},K:{"1":"H","132":"A B OC wC","644":"C PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","1028":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"const",D:true};
Index: de_modules/caniuse-lite/data/features/constraint-validation.js
===================================================================
--- node_modules/caniuse-lite/data/features/constraint-validation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","900":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","388":"M G N","900":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","260":"vB wB","388":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","900":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","388":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB","900":"9 G N O P bB AB BB CB DB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC","388":"E F 8C 9C","900":"K D 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ID JD KD LD OC wC","388":"9 G N O P bB AB BB CB DB EB FB","900":"C MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","388":"E QD RD SD TD","900":"OD PD"},H:{"2":"lD"},I:{"1":"I","16":"UC mD nD oD","388":"qD rD","900":"J pD xC"},J:{"16":"D","388":"A"},K:{"1":"H","16":"A B OC wC","900":"C PC"},L:{"1":"I"},M:{"1":"NC"},N:{"900":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","388":"5D"}},B:1,C:"Constraint Validation API",D:true};
Index: de_modules/caniuse-lite/data/features/contenteditable.js
===================================================================
--- node_modules/caniuse-lite/data/features/contenteditable.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC","4":"UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"contenteditable attribute (basic support)",D:true};
Index: de_modules/caniuse-lite/data/features/contentsecuritypolicy.js
===================================================================
--- node_modules/caniuse-lite/data/features/contentsecuritypolicy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","129":"9 J aB K D E F A B C L M G N O P bB AB BB"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L","257":"9 M G N O P bB AB BB CB DB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","257":"K 7C","260":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","257":"PD","260":"OD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D","257":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Content Security Policy 1.0",D:true};
Index: de_modules/caniuse-lite/data/features/contentsecuritypolicy2.js
===================================================================
--- node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","4100":"G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C","132":"dB eB fB gB","260":"hB","516":"iB jB kB lB mB nB oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","1028":"iB jB kB","2052":"lB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB ID JD KD LD OC wC MD PC","1028":"CB DB EB","2052":"FB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Content Security Policy Level 2",D:true};
Index: de_modules/caniuse-lite/data/features/cookie-store-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/cookie-store-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","194":"Q H R S T U V"},C:{"1":"XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB 3C 4C","322":"PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B","194":"8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V"},E:{"1":"rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC"},F:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB ID JD KD LD OC wC MD PC","194":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},G:{"1":"rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Cookie Store API",D:true};
Index: de_modules/caniuse-lite/data/features/cors.js
===================================================================
--- node_modules/caniuse-lite/data/features/cors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D yC","132":"A","260":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC","1025":"WC 6B 7B 8B 9B AC BC CC DC EC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"J aB K D E F A B C"},E:{"2":"5C aC","513":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","644":"J aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD"},G:{"513":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","644":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"I qD rD","132":"UC J mD nD oD pD xC"},J:{"1":"A","132":"D"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","132":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Cross-Origin Resource Sharing",D:true};
Index: de_modules/caniuse-lite/data/features/createimagebitmap.js
===================================================================
--- node_modules/caniuse-lite/data/features/createimagebitmap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB 3C 4C","1028":"c d e f g","3076":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b","8193":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","132":"wB xB","260":"yB zB","516":"0B 1B 2B 3B 4B"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD","4100":"G CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB ID JD KD LD OC wC MD PC","132":"jB kB","260":"lB mB","516":"nB oB pB qB rB"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD","4100":"gD cC dC QC hD RC eC fC gC hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"8193":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"3076":"5D 6D"}},B:1,C:"createImageBitmap",D:true};
Index: de_modules/caniuse-lite/data/features/credential-management.js
===================================================================
--- node_modules/caniuse-lite/data/features/credential-management.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","66":"uB vB wB","129":"xB yB zB 0B 1B 2B"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB ID JD KD LD OC wC MD PC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"Credential Management API",D:true};
Index: de_modules/caniuse-lite/data/features/cross-document-view-transitions.js
===================================================================
--- node_modules/caniuse-lite/data/features/cross-document-view-transitions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB 3C 4C","194":"I","260":"YC ZC NC 0C 1C 2C"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC"},F:{"1":"0 1 2 3 4 5 6 7 8 v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u ID JD KD LD OC wC MD PC"},G:{"1":"pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"260":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"View Transitions (cross-document)",D:true};
Index: de_modules/caniuse-lite/data/features/cryptography.js
===================================================================
--- node_modules/caniuse-lite/data/features/cryptography.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E F A","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","513":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB 3C 4C","66":"eB fB"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB K D 5C aC 6C 7C","289":"E F A 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC OD PD QD","289":"E RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","8":"UC J mD nD oD pD xC qD rD"},J:{"8":"D A"},K:{"1":"H","8":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A","164":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Web Cryptography",D:true};
Index: de_modules/caniuse-lite/data/features/css-all.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-all.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC qD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS all property",D:true};
Index: de_modules/caniuse-lite/data/features/css-anchor-positioning.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-anchor-positioning.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4 5 6 7"},C:{"1":"0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC 3C 4C","322":"ZC NC"},D:{"1":"8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4 5 6 7"},E:{"1":"sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l ID JD KD LD OC wC MD PC","194":"m n o p q r s t"},G:{"1":"sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"GB HB IB","2":"9 J AB BB CB DB EB FB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Anchor Positioning",D:true};
Index: de_modules/caniuse-lite/data/features/css-animation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-animation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J 3C 4C","33":"aB K D E F A B C L M G"},D:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","33":"K D E 6C 7C 8C","292":"J aB"},F:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD","33":"9 C G N O P bB AB BB CB DB EB FB GB HB IB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E PD QD RD","164":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"I","33":"J pD xC qD rD","164":"UC mD nD oD"},J:{"33":"D A"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS Animation",D:true};
Index: de_modules/caniuse-lite/data/features/css-any-link.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-any-link.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC","33":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB K 5C aC 6C","33":"D E 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD","33":"E PD QD RD"},H:{"2":"lD"},I:{"1":"I","16":"UC J mD nD oD pD xC","33":"qD rD"},J:{"16":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J","33":"sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:5,C:"CSS :any-link selector",D:true};
Index: de_modules/caniuse-lite/data/features/css-appearance.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-appearance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"S","164":"Q H R","388":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","164":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","676":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"S","164":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","164":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"EC FC GC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","164":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","164":"UC J mD nD oD pD xC qD rD"},J:{"164":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A","388":"B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","164":"J sD tD uD vD wD bC xD yD zD"},Q:{"164":"3D"},R:{"1":"4D"},S:{"1":"6D","164":"5D"}},B:5,C:"CSS Appearance",D:true};
Index: de_modules/caniuse-lite/data/features/css-at-counter-style.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-at-counter-style.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T U V W X Y Z","132":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","132":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z","132":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED","4":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ID JD KD LD OC wC MD PC","132":"0 1 2 3 4 5 6 7 8 LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD","4":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","132":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"132":"I"},M:{"132":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"J sD tD uD vD wD bC xD yD zD 0D 1D","132":"9 AB BB CB DB EB FB GB HB IB RC SC TC 2D"},Q:{"2":"3D"},R:{"132":"4D"},S:{"132":"5D 6D"}},B:4,C:"CSS Counter Styles",D:true};
Index: de_modules/caniuse-lite/data/features/css-autofill.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-autofill.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","33":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U 3C 4C"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"HD","33":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},P:{"1":"AB BB CB DB EB FB GB HB IB","33":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"}},B:6,C:":autofill CSS pseudo-class",D:undefined};
Index: de_modules/caniuse-lite/data/features/css-backdrop-filter.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-backdrop-filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N","257":"O P"},C:{"1":"0 1 2 3 4 5 6 7 8 m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC 3C 4C","578":"EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l"},D:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB","194":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},E:{"1":"TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C","33":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB ID JD KD LD OC wC MD PC","194":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},G:{"1":"TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","33":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J","194":"sD tD uD vD wD bC xD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS Backdrop Filter",D:true};
Index: de_modules/caniuse-lite/data/features/css-background-offsets.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-background-offsets.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS background-position edge offsets",D:true};
Index: de_modules/caniuse-lite/data/features/css-backgroundblendmode.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-backgroundblendmode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB","260":"sB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C","132":"E F A 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB ID JD KD LD OC wC MD PC","260":"fB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","132":"E RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS background-blend-mode",D:true};
Index: de_modules/caniuse-lite/data/features/css-boxdecorationbreak.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","164":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB"},C:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB 3C 4C"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB","164":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB"},E:{"2":"J aB K 5C aC 6C","164":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 z","2":"F ID JD KD LD","129":"B C OC wC MD PC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y"},G:{"2":"aC ND xC OD PD","164":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"132":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","164":"qD rD"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C OC wC PC","164":"H"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"164":"QC"},P:{"164":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"164":"3D"},R:{"164":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS box-decoration-break",D:true};
Index: de_modules/caniuse-lite/data/features/css-boxshadow.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-boxshadow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","33":"3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"J aB K D E F"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"aB","164":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"ND xC","164":"aC"},H:{"2":"lD"},I:{"1":"J I pD xC qD rD","164":"UC mD nD oD"},J:{"1":"A","33":"D"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 Box-shadow",D:true};
Index: de_modules/caniuse-lite/data/features/css-canvas.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-canvas.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"2":"5C aC","33":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 F B C hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},G:{"33":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"I","33":"UC J mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS Canvas Drawings",D:true};
Index: de_modules/caniuse-lite/data/features/css-caret-color.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-caret-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:2,C:"CSS caret-color",D:true};
Index: de_modules/caniuse-lite/data/features/css-cascade-layers.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-cascade-layers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e","322":"f g h"},C:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c 3C 4C","194":"d e f"},D:{"1":"0 1 2 3 4 5 6 7 8 i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e","322":"f g h"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U ID JD KD LD OC wC MD PC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS Cascade Layers",D:true};
Index: de_modules/caniuse-lite/data/features/css-cascade-scope.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-cascade-scope.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m","194":"0 n o p q r s t u v w x y z"},C:{"1":"NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC 3C 4C"},D:{"1":"1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m","194":"0 n o p q r s t u v w x y z"},E:{"1":"mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC"},F:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y ID JD KD LD OC wC MD PC","194":"Z a b c d e f g h i j k l m n o"},G:{"1":"mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"EB FB GB HB IB","2":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"Scoped Styles: the @scope rule",D:true};
Index: de_modules/caniuse-lite/data/features/css-case-insensitive.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-case-insensitive.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Case-insensitive CSS attribute selectors",D:true};
Index: de_modules/caniuse-lite/data/features/css-clip-path.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-clip-path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O","260":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","3138":"P"},C:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C","644":"tB uB vB wB xB yB zB"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB","260":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","292":"DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"2":"J aB K 5C aC 6C 7C","260":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","292":"D E F A B C L 8C 9C bC OC PC"},F:{"2":"F B C ID JD KD LD OC wC MD PC","260":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","292":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB"},G:{"2":"aC ND xC OD PD","260":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","292":"E QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","260":"I","292":"qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","260":"H"},L:{"260":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"260":"QC"},P:{"260":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","292":"J sD"},Q:{"260":"3D"},R:{"260":"4D"},S:{"1":"6D","644":"5D"}},B:4,C:"CSS clip-path property (for HTML)",D:true};
Index: de_modules/caniuse-lite/data/features/css-color-adjust.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-color-adjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C"},D:{"16":"J aB K D E F A B C L M G N O P","33":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"16":"UC J mD nD oD pD xC qD rD","33":"I"},J:{"16":"D A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"16":"I"},M:{"1":"NC"},N:{"16":"A B"},O:{"16":"QC"},P:{"16":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"33":"3D"},R:{"16":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS print-color-adjust",D:true};
Index: de_modules/caniuse-lite/data/features/css-color-function.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-color-function.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q","322":"r s t"},C:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t 3C 4C","578":"u v"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q","322":"r s t"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C","132":"B C L M bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d ID JD KD LD OC wC MD PC","322":"e f g"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD","132":"VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"BB CB DB EB FB GB HB IB","2":"9 J AB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS color() function",D:true};
Index: de_modules/caniuse-lite/data/features/css-conic-gradients.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-conic-gradients.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC 3C 4C","578":"JC KC LC MC Q H R XC"},D:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","257":"DC EC","450":"VC 5B WC 6B 7B 8B 9B AC BC CC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB ID JD KD LD OC wC MD PC","257":"2B 3B","450":"sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS Conical Gradients",D:true};
Index: de_modules/caniuse-lite/data/features/css-container-queries-style.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-container-queries-style.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p","194":"q r s t","260":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p","194":"q r s t","260":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD","260":"oC pC qC rC GD sC tC uC vC HD","772":"TC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b ID JD KD LD OC wC MD PC","194":"c d e f g","260":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD","260":"oC pC qC rC kD sC tC uC vC","772":"TC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","260":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","260":"H"},L:{"260":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","260":"BB CB DB EB FB GB HB IB"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Container Style Queries",D:true};
Index: de_modules/caniuse-lite/data/features/css-container-queries.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-container-queries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n","516":"o"},C:{"1":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a","194":"c d e f g h i j k l m n","450":"b","516":"o"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC ID JD KD LD OC wC MD PC","194":"Q H R XC S T U V W X Y Z","516":"a b c"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Container Queries (Size)",D:true};
Index: de_modules/caniuse-lite/data/features/css-container-query-units.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-container-query-units.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b","194":"k l m n","450":"c d e f g h i j"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC ID JD KD LD OC wC MD PC","194":"Q H R XC S T U V W X Y Z"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Container Query Units",D:true};
Index: de_modules/caniuse-lite/data/features/css-containment.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-containment.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB 3C 4C","194":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC"},D:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","66":"xB"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB ID JD KD LD OC wC MD PC","66":"kB lB"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","194":"5D"}},B:2,C:"CSS Containment",D:true};
Index: de_modules/caniuse-lite/data/features/css-content-visibility.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-content-visibility.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T"},C:{"1":"8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r 3C 4C","194":"0 1 2 3 4 5 6 7 s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T"},E:{"1":"TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD"},F:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC ID JD KD LD OC wC MD PC"},G:{"1":"TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS content-visibility",D:true};
Index: de_modules/caniuse-lite/data/features/css-counters.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-counters.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"K D yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS Counters",D:true};
Index: de_modules/caniuse-lite/data/features/css-crisp-edges.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-crisp-edges.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K yC","2340":"D E F A B"},B:{"2":"C L M G N O P","1025":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","513":"9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b","545":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","1025":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","164":"K","4644":"D E F 7C 8C 9C"},F:{"2":"9 F B G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC","545":"C MD PC","1025":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","4260":"OD PD","4644":"E QD RD SD TD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","1025":"I"},J:{"2":"D","4260":"A"},K:{"2":"A B OC wC","545":"C PC","1025":"H"},L:{"1025":"I"},M:{"1":"NC"},N:{"2340":"A B"},O:{"1025":"QC"},P:{"1025":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1025":"3D"},R:{"1025":"4D"},S:{"1":"6D","4097":"5D"}},B:4,C:"Crisp edges/pixelated images",D:true};
Index: de_modules/caniuse-lite/data/features/css-cross-fade.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-cross-fade.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"J aB K D E F A B C L M G N","33":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","33":"K D E F 6C 7C 8C 9C"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","33":"E OD PD QD RD SD TD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","33":"I qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"33":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"33":"QC"},P:{"33":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"33":"3D"},R:{"33":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS Cross-Fade Function",D:true};
Index: de_modules/caniuse-lite/data/features/css-default-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-default-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC","132":"K D E F A 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ID JD KD LD OC wC","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","260":"C MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD","132":"E QD RD SD TD UD"},H:{"260":"lD"},I:{"1":"I","16":"UC mD nD oD","132":"J pD xC qD rD"},J:{"16":"D","132":"A"},K:{"1":"H","16":"A B C OC wC","260":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:":default CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-descendant-gtgt.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-descendant-gtgt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"Q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"B","2":"J aB K D E F A C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Explicit descendant combinator >>",D:true};
Index: de_modules/caniuse-lite/data/features/css-deviceadaptation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-deviceadaptation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","164":"A B"},B:{"66":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","164":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB","66":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB ID JD KD LD OC wC MD PC","66":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"292":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A H","292":"B C OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"164":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"66":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Device Adaptation",D:true};
Index: de_modules/caniuse-lite/data/features/css-dir-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-dir-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n","194":"0 1 2 o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N 3C 4C","33":"9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},D:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z","194":"0 1 2 a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z ID JD KD LD OC wC MD PC","194":"a b c d e f g h i j k l m n o"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"EB FB GB HB IB","2":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"6D","33":"5D"}},B:5,C:":dir() CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-display-contents.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-display-contents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","132":"Q H R S T U V W X","260":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB 3C 4C","132":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC","260":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","132":"9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X","194":"4B VC 5B WC 6B 7B 8B","260":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","132":"C L M G OC PC AD BD CD cC dC QC DD","260":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","772":"RC eC fC gC hC iC ED"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ID JD KD LD OC wC MD PC","132":"yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","260":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD","132":"XD YD ZD aD bD cD","260":"dD eD fD gD cC dC QC hD","516":"eC fC gC hC iC iD","772":"RC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","260":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","260":"H"},L:{"260":"I"},M:{"260":"NC"},N:{"2":"A B"},O:{"132":"QC"},P:{"2":"J sD tD uD vD","132":"wD bC xD yD zD 0D","260":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"260":"4D"},S:{"132":"5D","260":"6D"}},B:4,C:"CSS display: contents",D:true};
Index: de_modules/caniuse-lite/data/features/css-element-function.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-element-function.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"33":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","164":"zC UC 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"33":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"33":"5D 6D"}},B:5,C:"CSS element() function",D:true};
Index: de_modules/caniuse-lite/data/features/css-env-function.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-env-function.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","132":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","132":"WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:7,C:"CSS Environment Variables env()",D:true};
Index: de_modules/caniuse-lite/data/features/css-exclusions.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-exclusions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","33":"A B"},B:{"2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"33":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Exclusions Level 1",D:true};
Index: de_modules/caniuse-lite/data/features/css-featurequeries.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-featurequeries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Feature Queries",D:true};
Index: de_modules/caniuse-lite/data/features/css-file-selector-button.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-file-selector-button.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P Q H R S T U V W X"},C:{"1":"0 1 2 3 4 5 6 7 8 XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R 3C 4C"},M:{"1":"NC"},A:{"2":"K D E F yC","33":"A B"},F:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"HD","33":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","33":"J sD tD uD vD wD bC xD yD zD 0D"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"}},B:6,C:"::file-selector-button CSS pseudo-element",D:undefined};
Index: de_modules/caniuse-lite/data/features/css-filter-function.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-filter-function.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","33":"SD TD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS filter() function",D:true};
Index: de_modules/caniuse-lite/data/features/css-filters.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-filters.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1028":"L M G N O P","1346":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","196":"gB","516":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O","33":"9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K D E F 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS Filter Effects",D:true};
Index: de_modules/caniuse-lite/data/features/css-first-letter.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-first-letter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","16":"yC","516":"E","1540":"K D"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","132":"UC","260":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"aB K D E","132":"J"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"aB 5C","132":"J aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","16":"F ID","260":"B JD KD LD OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"1":"lD"},I:{"1":"UC J I pD xC qD rD","16":"mD nD","132":"oD"},J:{"1":"D A"},K:{"1":"C H PC","260":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"::first-letter CSS pseudo-element selector",D:true};
Index: de_modules/caniuse-lite/data/features/css-first-line.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-first-line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","132":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS first-line pseudo-element",D:true};
Index: de_modules/caniuse-lite/data/features/css-fixed.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-fixed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"D E F A B","2":"yC","8":"K"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","1025":"9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","132":"OD PD QD"},H:{"2":"lD"},I:{"1":"UC I qD rD","260":"mD nD oD","513":"J pD xC"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS position:fixed",D:true};
Index: de_modules/caniuse-lite/data/features/css-focus-visible.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-focus-visible.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","328":"Q H R S T U"},C:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","161":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T"},D:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC","328":"BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD","578":"G CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ID JD KD LD OC wC MD PC","328":"AC BC CC DC EC FC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD","578":"gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"161":"5D 6D"}},B:5,C:":focus-visible CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-focus-within.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-focus-within.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","194":"VC"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB ID JD KD LD OC wC MD PC","194":"sB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:7,C:":focus-within CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-font-palette.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-font-palette.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V ID JD KD LD OC wC MD PC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS font-palette",D:true};
Index: de_modules/caniuse-lite/data/features/css-font-rendering-controls.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-font-rendering-controls.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB 3C 4C","194":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},D:{"1":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","66":"vB wB xB yB zB 0B 1B 2B 3B 4B VC"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC","66":"iB jB kB lB mB nB oB pB qB rB sB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","66":"sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","194":"5D"}},B:5,C:"CSS font-display",D:true};
Index: de_modules/caniuse-lite/data/features/css-font-stretch.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-font-stretch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS font-stretch",D:true};
Index: de_modules/caniuse-lite/data/features/css-gencontent.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-gencontent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D yC","132":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS Generated content for pseudo-elements",D:true};
Index: de_modules/caniuse-lite/data/features/css-gradients.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-gradients.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","260":"9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","292":"J aB K D E F A B C L M G 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 A B C L M G N O P bB AB BB CB DB EB","548":"J aB K D E F"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","260":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC","292":"K 6C","804":"J aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD","33":"C MD","164":"OC wC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC","292":"OD PD","804":"aC ND xC"},H:{"2":"lD"},I:{"1":"I qD rD","33":"J pD xC","548":"UC mD nD oD"},J:{"1":"A","548":"D"},K:{"1":"H PC","2":"A B","33":"C","164":"OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Gradients",D:true};
Index: de_modules/caniuse-lite/data/features/css-grid-animation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-grid-animation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p"},C:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b ID JD KD LD OC wC MD PC"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"AB BB CB DB EB FB GB HB IB","2":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"CSS Grid animation",D:false};
Index: de_modules/caniuse-lite/data/features/css-grid.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-grid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","8":"F","292":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","292":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P 3C 4C","8":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB","584":"mB nB oB pB qB rB sB tB uB vB wB xB","1025":"yB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB","8":"EB FB GB HB","200":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","1025":"3B"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","8":"K D E F A 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC","200":"HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","8":"E PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD","8":"xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"292":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"sD","8":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Grid Layout (level 1)",D:true};
Index: de_modules/caniuse-lite/data/features/css-hanging-punctuation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-hanging-punctuation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F 5C aC 6C 7C 8C 9C","132":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD","132":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS hanging-punctuation",D:true};
Index: de_modules/caniuse-lite/data/features/css-has.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-has.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l 3C 4C","322":"0 1 2 3 m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j","194":"k l m n"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z ID JD KD LD OC wC MD PC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:":has() CSS relational pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-hyphens.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-hyphens.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","33":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P","132":"Q H R S T U V W","260":"X Y Z a b c d e f g h i j k l m n"},C:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","33":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","132":"1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","33":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC","132":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","33":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","132":"sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Hyphenation",D:true};
Index: de_modules/caniuse-lite/data/features/css-if.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-if.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"UB VB WB XB YB ZB I","2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"UB VB WB XB YB ZB I YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"4","2":"0 1 2 3 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS if() function",D:true};
Index: de_modules/caniuse-lite/data/features/css-image-orientation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-image-orientation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H","257":"R S T U V W X"},C:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H","257":"R S T U V W X"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC ID JD KD LD OC wC MD PC","257":"CC DC EC FC GC HC IC JC KC"},G:{"1":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD","257":"zD 0D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 image-orientation",D:true};
Index: de_modules/caniuse-lite/data/features/css-image-set.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-image-set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","164":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","2049":"w"},C:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U 3C 4C","66":"V W","2305":"Y Z a b c d e f g h i j k l m n o p q r s t u v","2820":"X"},D:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB","164":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","2049":"w"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","132":"A B C L bC OC PC AD","164":"K D E F 7C 8C 9C","1540":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h","2049":"i"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","132":"UD VD WD XD YD ZD aD bD cD dD","164":"E PD QD RD SD TD","1540":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","164":"qD rD"},J:{"2":"D","164":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"164":"QC"},P:{"1":"CB DB EB FB GB HB IB","164":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"164":"3D"},R:{"164":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS image-set",D:true};
Index: de_modules/caniuse-lite/data/features/css-in-out-of-range.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-in-out-of-range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C","260":"L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","516":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J","16":"aB K D E F A B C L M","260":"yB","772":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB","772":"K D E F A 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ID","260":"B C lB JD KD LD OC wC MD PC","772":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","772":"E OD PD QD RD SD TD UD"},H:{"132":"lD"},I:{"1":"I","2":"UC mD nD oD","260":"J pD xC qD rD"},J:{"2":"D","260":"A"},K:{"1":"H","260":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","260":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","516":"5D"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes",D:true};
Index: de_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"A B","388":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC UC 3C 4C","132":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","388":"J aB"},D:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB K 5C aC","132":"D E F A 7C 8C 9C","388":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ID JD KD LD OC wC","132":"9 G N O P bB AB BB CB DB EB","516":"C MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD","132":"E QD RD SD TD UD"},H:{"516":"lD"},I:{"1":"I","16":"UC mD nD oD rD","132":"qD","388":"J pD xC"},J:{"16":"D","132":"A"},K:{"1":"H","16":"A B C OC wC","516":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","132":"5D"}},B:5,C:":indeterminate CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-initial-letter.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-initial-letter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","260":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","260":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E 5C aC 6C 7C 8C","260":"F","292":"rC GD sC tC uC vC HD","420":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g ID JD KD LD OC wC MD PC","260":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD","292":"rC kD sC tC uC vC","420":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","260":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","260":"H"},L:{"260":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","260":"AB BB CB DB EB FB GB HB IB"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Initial Letter",D:true};
Index: de_modules/caniuse-lite/data/features/css-initial-value.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-initial-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"J aB K D E F A B C L M G N O P 3C 4C","164":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS initial value",D:true};
Index: de_modules/caniuse-lite/data/features/css-lch-lab.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-lch-lab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","322":"t"},C:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t 3C 4C","194":"u v"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","322":"t"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"BB CB DB EB FB GB HB IB","2":"9 J AB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"LCH and Lab color values",D:true};
Index: de_modules/caniuse-lite/data/features/css-letter-spacing.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-letter-spacing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","16":"yC","132":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C","132":"J aB K aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ID","132":"B C G N JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"2":"lD"},I:{"1":"I qD rD","16":"mD nD","132":"UC J oD pD xC"},J:{"132":"D A"},K:{"1":"H","132":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"letter-spacing CSS property",D:true};
Index: de_modules/caniuse-lite/data/features/css-line-clamp.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-line-clamp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC 3C 4C","33":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"16":"J aB K D E F A B C L","33":"0 1 2 3 4 5 6 7 8 9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J 5C aC","33":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"aC ND xC","33":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"16":"mD nD","33":"UC J I oD pD xC qD rD"},J:{"33":"D A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"33":"I"},M:{"33":"NC"},N:{"2":"A B"},O:{"33":"QC"},P:{"33":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"33":"3D"},R:{"33":"4D"},S:{"2":"5D","33":"6D"}},B:5,C:"CSS line-clamp",D:true};
Index: de_modules/caniuse-lite/data/features/css-logical-props.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-logical-props.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","1028":"W X","1540":"Q H R S T U V"},C:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","164":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB 3C 4C","1540":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","292":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC","1028":"W X","1540":"DC EC FC GC HC IC JC KC LC MC Q H R S T U V"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","292":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","1540":"L M PC AD","3076":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","292":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","1028":"IC JC","1540":"2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","292":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD","1540":"ZD aD bD cD dD eD","3076":"fD"},H:{"2":"lD"},I:{"1":"I","292":"UC J mD nD oD pD xC qD rD"},J:{"292":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","292":"J sD tD uD vD wD","1540":"bC xD yD zD 0D"},Q:{"1540":"3D"},R:{"1":"4D"},S:{"1":"6D","1540":"5D"}},B:5,C:"CSS Logical Properties",D:true};
Index: de_modules/caniuse-lite/data/features/css-marker-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-marker-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U"},C:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U"},E:{"1":"HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","132":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC"},F:{"1":"0 1 2 3 4 5 6 7 8 GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD","132":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS ::marker pseudo-element",D:true};
Index: de_modules/caniuse-lite/data/features/css-masks.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-masks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N","164":"0 1 2 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","3138":"O","12292":"P"},C:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","260":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C"},D:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","164":"0 1 2 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","164":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","164":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","164":"qD rD","676":"UC J mD nD oD pD xC"},J:{"164":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"164":"QC"},P:{"1":"EB FB GB HB IB","164":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"164":"3D"},R:{"164":"4D"},S:{"1":"6D","260":"5D"}},B:4,C:"CSS Masks",D:true};
Index: de_modules/caniuse-lite/data/features/css-matches-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-matches-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","1220":"Q H R S T U V W"},C:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","548":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},D:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B","196":"9B AC BC","1220":"CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB","164":"K D E 6C 7C 8C","260":"F A B C L 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","196":"yB zB 0B","1220":"1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD","164":"E QD RD","260":"SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"1":"I","16":"UC mD nD oD","164":"J pD xC qD rD"},J:{"16":"D","164":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","164":"J sD tD uD vD wD bC xD yD zD 0D"},Q:{"1220":"3D"},R:{"1":"4D"},S:{"1":"6D","548":"5D"}},B:5,C:":is() CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-math-functions.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-math-functions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","132":"C L OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ID JD KD LD OC wC MD PC"},G:{"1":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD","132":"XD YD ZD aD bD cD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS math functions min(), max() and clamp()",D:true};
Index: de_modules/caniuse-lite/data/features/css-media-interaction.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-media-interaction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"Media Queries: interaction media features",D:true};
Index: de_modules/caniuse-lite/data/features/css-media-range-syntax.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-media-range-syntax.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"Media Queries: Range Syntax",D:true};
Index: de_modules/caniuse-lite/data/features/css-media-resolution.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-media-resolution.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1028":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","260":"J aB K D E F A B C L M G 3C 4C","1028":"9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC"},D:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","548":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB","1028":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","548":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F","548":"B C ID JD KD LD OC wC MD","1028":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC","548":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"132":"lD"},I:{"1":"I","16":"mD nD","548":"UC J oD pD xC","1028":"qD rD"},J:{"548":"D A"},K:{"1":"H PC","548":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","1028":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Media Queries: resolution feature",D:true};
Index: de_modules/caniuse-lite/data/features/css-media-scripting.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-media-scripting.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"Media Queries: scripting media feature",D:false};
Index: de_modules/caniuse-lite/data/features/css-mediaqueries.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-mediaqueries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"8":"K D E yC","129":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","129":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","129":"J aB K 6C","388":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","129":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"I qD rD","129":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"129":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS3 Media Queries",D:true};
Index: de_modules/caniuse-lite/data/features/css-mixblendmode.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-mixblendmode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB","194":"IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"2":"J aB K D 5C aC 6C 7C","260":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC OD PD QD","260":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Blending of HTML/SVG elements",D:true};
Index: de_modules/caniuse-lite/data/features/css-module-scripts.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-module-scripts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b","132":"0 1 2 3 4 5 c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b","132":"0 1 2 3 4 5 c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"194":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:1,C:"CSS Module Scripts",D:false};
Index: de_modules/caniuse-lite/data/features/css-motion-paths.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-motion-paths.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","194":"pB qB rB"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC","194":"cB dB eB"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS Motion Path",D:true};
Index: de_modules/caniuse-lite/data/features/css-namespaces.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-namespaces.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS namespaces",D:true};
Index: de_modules/caniuse-lite/data/features/css-nesting.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-nesting.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","194":"s t u","516":"0 1 2 v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x 3C 4C","322":"y z"},D:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","194":"s t u","516":"0 1 2 v w x y z"},E:{"1":"kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC","516":"iC ED SC jC"},F:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d ID JD KD LD OC wC MD PC","194":"e f g","516":"h i j k l m n o"},G:{"1":"kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC","516":"iC iD SC jC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"EB FB GB HB IB","2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","516":"CB DB"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Nesting",D:true};
Index: de_modules/caniuse-lite/data/features/css-not-sel-list.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-not-sel-list.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P H R S T U V W","16":"Q"},C:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"selector list argument of :not()",D:true};
Index: de_modules/caniuse-lite/data/features/css-nth-child-of.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-nth-child-of.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"BB CB DB EB FB GB HB IB","2":"9 J AB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes",D:true};
Index: de_modules/caniuse-lite/data/features/css-opacity.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-opacity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","4":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS3 Opacity",D:true};
Index: de_modules/caniuse-lite/data/features/css-optional-pseudo.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-optional-pseudo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ID","132":"B C JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"132":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","132":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:":optional CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-overflow-anchor.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-overflow-anchor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)",D:true};
Index: de_modules/caniuse-lite/data/features/css-overflow-overlay.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-overflow-overlay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","2":"C L M G N O P","130":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","16":"J aB K D E F A B C L M","130":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B 6C 7C 8C 9C bC OC","16":"5C aC","130":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i","2":"F B C ID JD KD LD OC wC MD PC","130":"0 1 2 3 4 5 6 7 8 j k l m n o p q r s t u v w x y z"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD","16":"aC","130":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J mD nD oD pD xC qD rD","130":"I"},J:{"16":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"130":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS overflow: overlay",D:true};
Index: de_modules/caniuse-lite/data/features/css-overflow.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-overflow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"388":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"Q H R S T U V W X Y","388":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","260":"WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H","388":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","260":"CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y","388":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","260":"M G AD BD CD cC dC QC DD","388":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","260":"1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","388":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B ID JD KD LD OC wC MD PC"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"dD eD fD gD cC dC QC hD","388":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD"},H:{"388":"lD"},I:{"1":"I","388":"UC J mD nD oD pD xC qD rD"},J:{"388":"D A"},K:{"1":"H","388":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"388":"A B"},O:{"388":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","388":"J sD tD uD vD wD bC xD yD zD 0D"},Q:{"388":"3D"},R:{"1":"4D"},S:{"1":"6D","388":"5D"}},B:5,C:"CSS overflow property",D:true};
Index: de_modules/caniuse-lite/data/features/css-overscroll-behavior.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-overscroll-behavior.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O","516":"P"},C:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B","260":"7B 8B"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD","1090":"G BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ID JD KD LD OC wC MD PC","260":"wB xB"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD","1090":"fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS overscroll-behavior",D:true};
Index: de_modules/caniuse-lite/data/features/css-page-break.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-page-break.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"388":"A B","900":"K D E F yC"},B:{"388":"C L M G N O P","641":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","900":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},C:{"772":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","900":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 3C 4C"},D:{"641":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","900":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},E:{"772":"A","900":"J aB K D E F B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"16":"F ID","129":"B C JD KD LD OC wC MD PC","641":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z","900":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c"},G:{"900":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"129":"lD"},I:{"641":"I","900":"UC J mD nD oD pD xC qD rD"},J:{"900":"D A"},K:{"129":"A B C OC wC PC","641":"H"},L:{"900":"I"},M:{"772":"NC"},N:{"388":"A B"},O:{"900":"QC"},P:{"641":"AB BB CB DB EB FB GB HB IB","900":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"900":"3D"},R:{"900":"4D"},S:{"772":"6D","900":"5D"}},B:2,C:"CSS page-break properties",D:true};
Index: de_modules/caniuse-lite/data/features/css-paged-media.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-paged-media.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","132":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P 3C 4C","132":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC"},H:{"16":"lD"},I:{"16":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","16":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"258":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"132":"5D 6D"}},B:5,C:"CSS Paged Media (@page)",D:true};
Index: de_modules/caniuse-lite/data/features/css-paint-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-paint-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B"},E:{"2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","194":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS Painting API",D:true};
Index: de_modules/caniuse-lite/data/features/css-placeholder-shown.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-placeholder-shown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","292":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","164":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},D:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","164":"5D"}},B:5,C:":placeholder-shown CSS pseudo-class",D:true};
Index: de_modules/caniuse-lite/data/features/css-placeholder.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-placeholder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","36":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","130":"zC UC J aB K D E F A B C L M G N O P 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","36":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","36":"aB K D E F A 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","36":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","36":"E xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","36":"UC J mD nD oD pD xC qD rD"},J:{"36":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"36":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","36":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:5,C:"::placeholder CSS pseudo-element",D:true};
Index: de_modules/caniuse-lite/data/features/css-print-color-adjust.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-print-color-adjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N","33":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB"},L:{"1":"I"},B:{"1":"TB UB VB WB XB YB ZB I","2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB"},C:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C","33":"uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"4 5 6 7 8","2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},K:{"2":"A B C OC wC PC","33":"H"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB 5C aC 6C HD","33":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},P:{"1":"IB","33":"9 J AB BB CB DB EB FB GB HB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"}},B:6,C:"print-color-adjust property",D:undefined};
Index: de_modules/caniuse-lite/data/features/css-read-only-write.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-read-only-write.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC","33":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC","132":"J aB K D E 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ID JD KD LD OC","132":"9 C G N O P bB AB BB wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND","132":"E xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","16":"mD nD","132":"UC J oD pD xC qD rD"},J:{"1":"A","132":"D"},K:{"1":"H","2":"A B OC","132":"C wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:1,C:"CSS :read-only and :read-write selectors",D:true};
Index: de_modules/caniuse-lite/data/features/css-rebeccapurple.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-rebeccapurple.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","16":"7C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Rebeccapurple color",D:true};
Index: de_modules/caniuse-lite/data/features/css-reflections.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-reflections.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"5C aC","33":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"33":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"33":"UC J I mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"33":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"33":"QC"},P:{"33":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"33":"3D"},R:{"33":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS Reflections",D:true};
Index: de_modules/caniuse-lite/data/features/css-regions.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-regions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","420":"A B"},B:{"2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","420":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 J aB K D E F A B C L M hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","36":"G N O P","66":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},E:{"2":"J aB K C L M G 5C aC 6C OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"D E F A B 7C 8C 9C bC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC OD PD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"420":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Regions",D:true};
Index: de_modules/caniuse-lite/data/features/css-relative-colors.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-relative-colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"1","260":"2 3 4 5 6 7 8 JB KB LB MB NB"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB 3C 4C","260":"LB MB NB OB PB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"1","260":"2 3 4 5 6 7 8 JB KB LB MB NB"},E:{"1":"TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC","260":"hC iC ED SC jC kC lC mC nC FD"},F:{"1":"0 1 2 3 4 5 6 7 8","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m ID JD KD LD OC wC MD PC","194":"n o","260":"p q r s t u v w x y z"},G:{"1":"TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","260":"hC iC iD SC jC kC lC mC nC jD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","260":"H"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","260":"EB FB GB HB IB"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Relative color syntax",D:true};
Index: de_modules/caniuse-lite/data/features/css-repeating-gradients.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-repeating-gradients.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","33":"J aB K D E F A B C L M G 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F","33":"9 A B C L M G N O P bB AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","33":"K 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD","33":"C MD","36":"OC wC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","33":"OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC mD nD oD","33":"J pD xC"},J:{"1":"A","2":"D"},K:{"1":"H PC","2":"A B","33":"C","36":"OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Repeating Gradients",D:true};
Index: de_modules/caniuse-lite/data/features/css-resize.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-resize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"J"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD","132":"PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:2,C:"CSS resize property",D:true};
Index: de_modules/caniuse-lite/data/features/css-revert-value.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-revert-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S"},C:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC ID JD KD LD OC wC MD PC"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"CSS revert value",D:true};
Index: de_modules/caniuse-lite/data/features/css-rrggbbaa.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-rrggbbaa.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","194":"yB zB 0B 1B 2B 3B 4B VC 5B WC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB ID JD KD LD OC wC MD PC","194":"lB mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","194":"sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"#rrggbbaa hex color notation",D:true};
Index: de_modules/caniuse-lite/data/features/css-scroll-behavior.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-scroll-behavior.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","129":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","129":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","450":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC AD","578":"M G BD CD cC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC","129":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","450":"HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD","578":"fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"129":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"129":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"CSS Scroll-behavior",D:true};
Index: de_modules/caniuse-lite/data/features/css-scrollbar.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-scrollbar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","292":"0 1 2 3 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C","3138":"7B"},D:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","292":"0 1 2 3 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"16":"J aB 5C aC","292":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","292":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p"},G:{"2":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD","292":"QD","804":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"16":"mD nD","292":"UC J I oD pD xC qD rD"},J:{"292":"D A"},K:{"2":"A B C OC wC PC","292":"H"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"292":"QC"},P:{"1":"EB FB GB HB IB","292":"9 J AB BB CB DB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"292":"3D"},R:{"292":"4D"},S:{"2":"5D 6D"}},B:4,C:"CSS scrollbar styling",D:true};
Index: de_modules/caniuse-lite/data/features/css-sel2.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-sel2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"D E F A B","2":"yC","8":"K"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS 2.1 selectors",D:true};
Index: de_modules/caniuse-lite/data/features/css-sel3.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-sel3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K","132":"D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS3 selectors",D:true};
Index: de_modules/caniuse-lite/data/features/css-selection.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-selection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"C H wC PC","16":"A B OC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:5,C:"::selection CSS pseudo-element",D:true};
Index: de_modules/caniuse-lite/data/features/css-shapes.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-shapes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 3C 4C","322":"xB yB zB 0B 1B 2B 3B 4B VC 5B WC"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB","194":"gB hB iB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C","33":"E F A 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","33":"E RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"CSS Shapes Level 1",D:true};
Index: de_modules/caniuse-lite/data/features/css-snappoints.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-snappoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","6308":"A","6436":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","6436":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB 3C 4C","2052":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC"},D:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B","8258":"AC BC CC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C","3108":"F A 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC","8258":"0B 1B 2B 3B 4B 5B 6B 7B"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","3108":"SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2052":"5D"}},B:4,C:"CSS Scroll Snap",D:true};
Index: de_modules/caniuse-lite/data/features/css-sticky.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-sticky.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G","1028":"Q H R S T U V W X Y Z","4100":"N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB 3C 4C","194":"FB GB HB IB cB dB","516":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},D:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","322":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB yB zB 0B 1B","1028":"2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","33":"E F A B C 8C 9C bC OC PC","2084":"D 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB ID JD KD LD OC wC MD PC","322":"lB mB nB","1028":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E RD SD TD UD VD WD XD YD ZD","2084":"PD QD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1028":"3D"},R:{"1":"4D"},S:{"1":"6D","516":"5D"}},B:5,C:"CSS position:sticky",D:true};
Index: de_modules/caniuse-lite/data/features/css-subgrid.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-subgrid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","194":"x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","194":"x y z"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i ID JD KD LD OC wC MD PC","194":"j k l"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"DB EB FB GB HB IB","2":"9 J AB BB CB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"CSS Subgrid",D:true};
Index: de_modules/caniuse-lite/data/features/css-supports-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-supports-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P bB 3C 4C","66":"9 AB","260":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB","260":"HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD","132":"PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"132":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC","132":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS.supports() API",D:true};
Index: de_modules/caniuse-lite/data/features/css-table.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-table.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"K D yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","132":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS Table display",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-align-last.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-align-last.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","4":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B 3C 4C","33":"9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB","322":"hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB ID JD KD LD OC wC MD PC","578":"BB CB DB EB FB GB HB IB cB dB eB fB"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:4,C:"CSS3 text-align-last",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-box-trim.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-box-trim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB","322":"LB MB NB OB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB","322":"LB MB NB OB PB"},E:{"1":"pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC","194":"hC iC ED SC jC kC lC mC nC FD TC oC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","322":"0 1 2 3 4 5 6 7 8"},G:{"1":"pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","194":"hC iC iD SC jC kC lC mC nC jD TC oC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Text Box",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-indent.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-indent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"132":"C L M G N O P","388":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"0 1 2 3 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","388":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"132":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC","388":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"132":"lD"},I:{"132":"UC J mD nD oD pD xC qD rD","388":"I"},J:{"132":"D A"},K:{"132":"A B C OC wC PC","388":"H"},L:{"388":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"388":"QC"},P:{"132":"J","388":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"388":"3D"},R:{"388":"4D"},S:{"132":"5D 6D"}},B:4,C:"CSS text-indent",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-justify.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-justify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"16":"K D yC","132":"E F A B"},B:{"132":"C L M G N O P","322":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 3C 4C","1025":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","1602":"0B"},D:{"1":"ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","322":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC","322":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","322":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","322":"H"},L:{"322":"I"},M:{"1025":"NC"},N:{"132":"A B"},O:{"322":"QC"},P:{"2":"J","322":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"322":"3D"},R:{"322":"4D"},S:{"2":"5D","1025":"6D"}},B:4,C:"CSS text-justify",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-orientation.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-orientation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C","194":"kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","16":"A","33":"B C L bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS text-orientation",D:true};
Index: de_modules/caniuse-lite/data/features/css-text-spacing.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-spacing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","161":"E F A B"},B:{"2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","161":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"16":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS Text 4 text-spacing",D:false};
Index: de_modules/caniuse-lite/data/features/css-text-wrap-balance.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-text-wrap-balance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","132":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB"},C:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w","132":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB"},E:{"1":"nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC"},F:{"1":"0 1 2 3 4 5 6 7 8 z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h ID JD KD LD OC wC MD PC","132":"i j k l m n o p q r s t u v w x y"},G:{"1":"nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"CB DB EB FB GB HB IB"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS text-wrap: balance",D:true};
Index: de_modules/caniuse-lite/data/features/css-textshadow.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-textshadow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","260":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"4":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"A","4":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"129":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 Text-shadow",D:true};
Index: de_modules/caniuse-lite/data/features/css-touch-action.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-touch-action.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F yC","289":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","194":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","1025":"yB zB 0B 1B 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"2050":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD","516":"TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","289":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","194":"5D"}},B:2,C:"CSS touch-action property",D:true};
Index: de_modules/caniuse-lite/data/features/css-transitions.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-transitions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"aB K D E F A B C L M G","164":"J"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"K 6C","164":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F ID JD","33":"C","164":"B KD LD OC wC MD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"PD","164":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"I qD rD","33":"UC J mD nD oD pD xC"},J:{"1":"A","33":"D"},K:{"1":"H PC","33":"C","164":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS3 Transitions",D:true};
Index: de_modules/caniuse-lite/data/features/css-unicode-bidi.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-unicode-bidi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","132":"zC UC J aB K D E F 3C 4C","292":"A B C L M G N"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"J aB K D E F A B C L M G N","548":"9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"132":"J aB K D E 5C aC 6C 7C 8C","548":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"132":"E aC ND xC OD PD QD RD","548":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"16":"lD"},I:{"1":"I","16":"UC J mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","16":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:4,C:"CSS unicode-bidi property",D:false};
Index: de_modules/caniuse-lite/data/features/css-unset-value.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-unset-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS unset value",D:true};
Index: de_modules/caniuse-lite/data/features/css-variables.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-variables.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","260":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","194":"uB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C","260":"9C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC","194":"hB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD","260":"TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Variables (Custom Properties)",D:true};
Index: de_modules/caniuse-lite/data/features/css-when-else.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-when-else.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS @when / @else conditional rules",D:true};
Index: de_modules/caniuse-lite/data/features/css-widows-orphans.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-widows-orphans.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D yC","129":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","129":"F B ID JD KD LD OC wC MD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:2,C:"CSS widows & orphans",D:true};
Index: de_modules/caniuse-lite/data/features/css-width-stretch.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-width-stretch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB","33":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB"},L:{"1":"I"},B:{"1":"VB WB XB YB ZB I","2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC 3C 4C","33":"NC 0C 1C 2C"},M:{"33":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"5 6 7 8","2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},K:{"2":"A B C OC wC PC","33":"H"},E:{"2":"J aB K 5C aC 6C 7C HD","33":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC"},G:{"2":"aC ND xC OD PD","33":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},P:{"2":"J","33":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"}},B:6,C:"width: stretch property",D:undefined};
Index: de_modules/caniuse-lite/data/features/css-writing-mode.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-writing-mode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C","322":"iB jB kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K","16":"D","33":"9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB","33":"K D E F A 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","33":"E OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"mD nD oD","33":"UC J pD xC qD rD"},J:{"33":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"36":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS writing-mode property",D:true};
Index: de_modules/caniuse-lite/data/features/css-zoom.js
===================================================================
--- node_modules/caniuse-lite/data/features/css-zoom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D yC","129":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"129":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"CSS zoom",D:true};
Index: de_modules/caniuse-lite/data/features/css3-attr.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS3 attr() function for all properties",D:true};
Index: de_modules/caniuse-lite/data/features/css3-boxsizing.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-boxsizing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","8":"K D yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"J aB K D E F"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"aC ND xC"},H:{"1":"lD"},I:{"1":"J I pD xC qD rD","33":"UC mD nD oD"},J:{"1":"A","33":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS3 Box-sizing",D:true};
Index: de_modules/caniuse-lite/data/features/css3-colors.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","4":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","2":"F","4":"ID"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS3 Colors",D:true};
Index: de_modules/caniuse-lite/data/features/css3-cursors-grab.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-cursors-grab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 C 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:2,C:"CSS grab & grabbing cursors",D:true};
Index: de_modules/caniuse-lite/data/features/css3-cursors-newer.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-cursors-newer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 C DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC","33":"9 G N O P bB AB BB CB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out",D:true};
Index: de_modules/caniuse-lite/data/features/css3-cursors.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-cursors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","132":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","4":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","260":"F B C ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:2,C:"CSS3 Cursors (original values)",D:true};
Index: de_modules/caniuse-lite/data/features/css3-tabsize.js
===================================================================
--- node_modules/caniuse-lite/data/features/css3-tabsize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z","164":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},D:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB","132":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","132":"D E F A B C L 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD KD","132":"9 G N O P bB AB BB CB DB EB FB GB HB","164":"B C LD OC wC MD PC"},G:{"1":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","132":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD"},H:{"164":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","132":"qD rD"},J:{"132":"D A"},K:{"1":"H","2":"A","164":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"164":"5D 6D"}},B:4,C:"CSS3 tab-size",D:true};
Index: de_modules/caniuse-lite/data/features/currentcolor.js
===================================================================
--- node_modules/caniuse-lite/data/features/currentcolor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS currentColor value",D:true};
Index: de_modules/caniuse-lite/data/features/custom-elements.js
===================================================================
--- node_modules/caniuse-lite/data/features/custom-elements.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","8":"A B"},B:{"1":"Q","2":"0 1 2 3 4 5 6 7 8 H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","66":"CB DB EB FB GB HB IB","72":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},D:{"1":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","66":"GB HB IB cB dB eB"},E:{"2":"J aB 5C aC 6C","8":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC","2":"0 1 2 3 4 5 6 7 8 F B C BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","66":"G N O P bB"},G:{"2":"aC ND xC OD PD","8":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"rD","2":"UC J I mD nD oD pD xC qD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"J sD tD uD vD wD bC xD yD","2":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"2":"6D","72":"5D"}},B:7,C:"Custom Elements (deprecated V0 spec)",D:true};
Index: de_modules/caniuse-lite/data/features/custom-elementsv1.js
===================================================================
--- node_modules/caniuse-lite/data/features/custom-elementsv1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","8":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB 3C 4C","8":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","456":"wB xB yB zB 0B 1B 2B 3B 4B","712":"VC 5B WC 6B"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","8":"yB zB","132":"0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC"},E:{"2":"J aB K D 5C aC 6C 7C 8C","8":"E F A 9C","132":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC","132":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD","132":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","132":"sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","8":"5D"}},B:1,C:"Custom Elements (V1)",D:true};
Index: de_modules/caniuse-lite/data/features/customevent.js
===================================================================
--- node_modules/caniuse-lite/data/features/customevent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","132":"K D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J","16":"aB K D E L M","388":"F A B C"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB K","388":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F ID JD KD LD","132":"B OC wC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"ND","16":"aC xC","388":"OD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"mD nD oD","388":"UC J pD xC"},J:{"1":"A","388":"D"},K:{"1":"C H PC","2":"A","132":"B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"CustomEvent",D:true};
Index: de_modules/caniuse-lite/data/features/datalist.js
===================================================================
--- node_modules/caniuse-lite/data/features/datalist.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G","1284":"N O P"},C:{"8":"zC UC 3C 4C","516":"l m n o p q r s","4612":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k","8196":"0 1 2 3 4 5 6 7 8 t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J aB K D E F A B C L M G N O P bB","132":"9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 F B C 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},G:{"8":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD","18436":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I rD","8":"UC J mD nD oD pD xC qD"},J:{"1":"A","8":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:1,C:"Datalist element",D:true};
Index: de_modules/caniuse-lite/data/features/dataset.js
===================================================================
--- node_modules/caniuse-lite/data/features/dataset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","4":"K D E F A yC"},B:{"1":"C L M G N","129":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","4":"zC UC J aB 3C 4C","129":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"rB sB tB uB vB wB xB yB zB 0B","4":"J aB K","129":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"4":"J aB 5C aC","129":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"C eB fB gB hB iB jB kB lB mB nB OC wC MD PC","4":"F B ID JD KD LD","129":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"4":"aC ND xC","129":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"4":"lD"},I:{"4":"mD nD oD","129":"UC J I pD xC qD rD"},J:{"129":"D A"},K:{"1":"C OC wC PC","4":"A B","129":"H"},L:{"129":"I"},M:{"129":"NC"},N:{"1":"B","4":"A"},O:{"129":"QC"},P:{"129":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"129":"3D"},R:{"129":"4D"},S:{"1":"5D","129":"6D"}},B:1,C:"dataset & data-* attributes",D:true};
Index: de_modules/caniuse-lite/data/features/datauri.js
===================================================================
--- node_modules/caniuse-lite/data/features/datauri.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","132":"E","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L G N O P","772":"M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"260":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Data URIs",D:true};
Index: de_modules/caniuse-lite/data/features/date-tolocaledatestring.js
===================================================================
--- node_modules/caniuse-lite/data/features/date-tolocaledatestring.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"16":"yC","132":"K D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","260":"yB zB 0B 1B","772":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB","260":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC","772":"DB EB FB GB HB IB cB dB eB fB gB hB iB jB"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC","132":"K D E F A 6C 7C 8C 9C","260":"B bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B C ID JD KD LD OC wC MD","132":"PC","260":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","772":"9 G N O P bB AB BB CB DB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD","132":"E PD QD RD SD TD UD"},H:{"132":"lD"},I:{"1":"I","16":"UC mD nD oD","132":"J pD xC","772":"qD rD"},J:{"132":"D A"},K:{"1":"H","16":"A B C OC wC","132":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","260":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","132":"5D"}},B:6,C:"Date.prototype.toLocaleDateString",D:true};
Index: de_modules/caniuse-lite/data/features/declarative-shadow-dom.js
===================================================================
--- node_modules/caniuse-lite/data/features/declarative-shadow-dom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z","132":"a b c d e f g h i j k l m n o p q r s t"},C:{"1":"6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T","66":"U V W X Y","132":"Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ID JD KD LD OC wC MD PC","132":"LC MC Q H R XC S T U V W X Y Z a b c d e f"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D","16":"1D","132":"9 AB RC SC TC 2D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:1,C:"Declarative Shadow DOM",D:true};
Index: de_modules/caniuse-lite/data/features/decorators.js
===================================================================
--- node_modules/caniuse-lite/data/features/decorators.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Decorators",D:true};
Index: de_modules/caniuse-lite/data/features/details.js
===================================================================
--- node_modules/caniuse-lite/data/features/details.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"F A B yC","8":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","8":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C","194":"tB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J aB K D E F A B","257":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","769":"C L M G N O P"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB 5C aC 6C","257":"K D E F A 7C 8C 9C","1025":"B bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"C OC wC MD PC","8":"F B ID JD KD LD"},G:{"1":"E PD QD RD SD TD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC OD","1025":"UD VD WD"},H:{"8":"lD"},I:{"1":"J I pD xC qD rD","8":"UC mD nD oD"},J:{"1":"A","8":"D"},K:{"1":"H","8":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Details & Summary elements",D:true};
Index: de_modules/caniuse-lite/data/features/deviceorientation.js
===================================================================
--- node_modules/caniuse-lite/data/features/deviceorientation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"C L M G N O P","4":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"zC UC 3C","4":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"J aB 4C"},D:{"2":"J aB K","4":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","4":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"aC ND","4":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"mD nD oD","4":"UC J I pD xC qD rD"},J:{"2":"D","4":"A"},K:{"1":"C PC","2":"A B OC wC","4":"H"},L:{"4":"I"},M:{"4":"NC"},N:{"1":"B","2":"A"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"4":"3D"},R:{"4":"4D"},S:{"4":"5D 6D"}},B:4,C:"DeviceOrientation & DeviceMotion events",D:true};
Index: de_modules/caniuse-lite/data/features/devicepixelratio.js
===================================================================
--- node_modules/caniuse-lite/data/features/devicepixelratio.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Window.devicePixelRatio",D:true};
Index: de_modules/caniuse-lite/data/features/dialog.js
===================================================================
--- node_modules/caniuse-lite/data/features/dialog.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C","194":"zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","1218":"H R XC S T U V W X Y Z a b c d e f g"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB","322":"eB fB gB hB iB"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N O P ID JD KD LD OC wC MD PC","578":"9 bB AB BB CB"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:1,C:"Dialog element",D:true};
Index: de_modules/caniuse-lite/data/features/dispatchevent.js
===================================================================
--- node_modules/caniuse-lite/data/features/dispatchevent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","16":"yC","129":"F A","130":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","129":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"EventTarget.dispatchEvent",D:true};
Index: de_modules/caniuse-lite/data/features/dnssec.js
===================================================================
--- node_modules/caniuse-lite/data/features/dnssec.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"132":"K D E F A B yC"},B:{"132":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"132":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"132":"0 1 2 3 4 5 6 7 8 J aB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","388":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB"},E:{"132":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"132":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"132":"lD"},I:{"132":"UC J I mD nD oD pD xC qD rD"},J:{"132":"D A"},K:{"132":"A B C H OC wC PC"},L:{"132":"I"},M:{"132":"NC"},N:{"132":"A B"},O:{"132":"QC"},P:{"132":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"132":"4D"},S:{"132":"5D 6D"}},B:6,C:"DNSSEC and DANE",D:true};
Index: de_modules/caniuse-lite/data/features/do-not-track.js
===================================================================
--- node_modules/caniuse-lite/data/features/do-not-track.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","164":"F A","260":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E 3C 4C","516":"9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB"},D:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB"},E:{"1":"K A B C 6C 9C bC OC","2":"J aB L M G 5C aC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","1028":"D E F 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD"},G:{"1":"SD TD UD VD WD XD YD","2":"aC ND xC OD PD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","1028":"E QD RD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"16":"D","1028":"A"},K:{"1":"H PC","16":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"164":"A","260":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"Do Not Track API",D:true};
Index: de_modules/caniuse-lite/data/features/document-currentscript.js
===================================================================
--- node_modules/caniuse-lite/data/features/document-currentscript.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"document.currentScript",D:true};
Index: de_modules/caniuse-lite/data/features/document-evaluate-xpath.js
===================================================================
--- node_modules/caniuse-lite/data/features/document-evaluate-xpath.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","16":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"document.evaluate & XPath",D:true};
Index: de_modules/caniuse-lite/data/features/document-execcommand.js
===================================================================
--- node_modules/caniuse-lite/data/features/document-execcommand.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","16":"F ID"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","16":"xC OD PD"},H:{"2":"lD"},I:{"1":"I pD xC qD rD","2":"UC J mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"Document.execCommand()",D:true};
Index: de_modules/caniuse-lite/data/features/document-policy.js
===================================================================
--- node_modules/caniuse-lite/data/features/document-policy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T","132":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T","132":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC ID JD KD LD OC wC MD PC","132":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","132":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"132":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"132":"4D"},S:{"2":"5D 6D"}},B:7,C:"Document Policy",D:true};
Index: de_modules/caniuse-lite/data/features/document-scrollingelement.js
===================================================================
--- node_modules/caniuse-lite/data/features/document-scrollingelement.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"document.scrollingElement",D:true};
Index: de_modules/caniuse-lite/data/features/documenthead.js
===================================================================
--- node_modules/caniuse-lite/data/features/documenthead.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F ID JD KD LD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"document.head",D:true};
Index: de_modules/caniuse-lite/data/features/dom-manip-convenience.js
===================================================================
--- node_modules/caniuse-lite/data/features/dom-manip-convenience.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","194":"yB zB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB ID JD KD LD OC wC MD PC","194":"mB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"DOM manipulation convenience methods",D:true};
Index: de_modules/caniuse-lite/data/features/dom-range.js
===================================================================
--- node_modules/caniuse-lite/data/features/dom-range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Document Object Model Range",D:true};
Index: de_modules/caniuse-lite/data/features/domcontentloaded.js
===================================================================
--- node_modules/caniuse-lite/data/features/domcontentloaded.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"DOMContentLoaded",D:true};
Index: de_modules/caniuse-lite/data/features/dommatrix.js
===================================================================
--- node_modules/caniuse-lite/data/features/dommatrix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"132":"C L M G N O P","1028":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","1028":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2564":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","3076":"vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC"},D:{"16":"J aB K D","132":"9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B","388":"E","1028":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"16":"J 5C aC","132":"aB K D E F A 6C 7C 8C 9C bC","1028":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","1028":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"16":"aC ND xC","132":"E OD PD QD RD SD TD UD VD","1028":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"132":"J pD xC qD rD","292":"UC mD nD oD","1028":"I"},J:{"16":"D","132":"A"},K:{"2":"A B C OC wC PC","1028":"H"},L:{"1028":"I"},M:{"1028":"NC"},N:{"132":"A B"},O:{"1028":"QC"},P:{"132":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1028":"3D"},R:{"1028":"4D"},S:{"1028":"6D","2564":"5D"}},B:4,C:"DOMMatrix",D:true};
Index: de_modules/caniuse-lite/data/features/download.js
===================================================================
--- node_modules/caniuse-lite/data/features/download.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P bB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Download attribute",D:true};
Index: de_modules/caniuse-lite/data/features/dragndrop.js
===================================================================
--- node_modules/caniuse-lite/data/features/dragndrop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"644":"K D E F yC","772":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","8":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","8":"F B ID JD KD LD OC wC MD"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","1025":"I"},J:{"2":"D A"},K:{"1":"PC","8":"A B C OC wC","1025":"H"},L:{"1025":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"1025":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:1,C:"Drag and Drop",D:true};
Index: de_modules/caniuse-lite/data/features/element-closest.js
===================================================================
--- node_modules/caniuse-lite/data/features/element-closest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Element.closest()",D:true};
Index: de_modules/caniuse-lite/data/features/element-from-point.js
===================================================================
--- node_modules/caniuse-lite/data/features/element-from-point.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","16":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","16":"F ID JD KD LD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"C H PC","16":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"document.elementFromPoint()",D:true};
Index: de_modules/caniuse-lite/data/features/element-scroll-methods.js
===================================================================
--- node_modules/caniuse-lite/data/features/element-scroll-methods.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","132":"A B C L bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD","132":"UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)",D:true};
Index: de_modules/caniuse-lite/data/features/eme.js
===================================================================
--- node_modules/caniuse-lite/data/features/eme.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB","132":"hB iB jB kB lB mB nB"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C","164":"D E F A B 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB ID JD KD LD OC wC MD PC","132":"BB CB DB EB FB GB HB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Encrypted Media Extensions",D:true};
Index: de_modules/caniuse-lite/data/features/eot.js
===================================================================
--- node_modules/caniuse-lite/data/features/eot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","2":"yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"EOT - Embedded OpenType fonts",D:true};
Index: de_modules/caniuse-lite/data/features/es5.js
===================================================================
--- node_modules/caniuse-lite/data/features/es5.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D yC","260":"F","1026":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","4":"zC UC 3C 4C","132":"9 J aB K D E F A B C L M G N O P bB"},D:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"J aB K D E F A B C L M G N O P","132":"9 bB AB BB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","4":"F B C ID JD KD LD OC wC MD","132":"PC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","4":"aC ND xC OD"},H:{"132":"lD"},I:{"1":"I qD rD","4":"UC mD nD oD","132":"pD xC","900":"J"},J:{"1":"A","4":"D"},K:{"1":"H","4":"A B C OC wC","132":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ECMAScript 5",D:true};
Index: de_modules/caniuse-lite/data/features/es6-class.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-class.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB","132":"oB pB qB rB sB tB uB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB ID JD KD LD OC wC MD PC","132":"IB cB dB eB fB gB hB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ES6 classes",D:true};
Index: de_modules/caniuse-lite/data/features/es6-generators.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-generators.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ES6 Generators",D:true};
Index: de_modules/caniuse-lite/data/features/es6-module-dynamic-import.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B 3C 4C","194":"AC"},D:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"JavaScript modules: dynamic import()",D:true};
Index: de_modules/caniuse-lite/data/features/es6-module.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-module.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","2049":"N O P","2242":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 3C 4C","322":"0B 1B 2B 3B 4B VC"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","194":"5B"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C","1540":"bC"},F:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB ID JD KD LD OC wC MD PC","194":"tB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD","1540":"VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"JavaScript modules via script tag",D:true};
Index: de_modules/caniuse-lite/data/features/es6-number.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G 3C 4C","132":"9 N O P bB AB BB CB DB","260":"EB FB GB HB IB cB","516":"dB"},D:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P","1028":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","1028":"9 G N O P bB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD","1028":"pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ES6 Number",D:true};
Index: de_modules/caniuse-lite/data/features/es6-string-includes.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6-string-includes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"String.prototype.includes",D:true};
Index: de_modules/caniuse-lite/data/features/es6.js
===================================================================
--- node_modules/caniuse-lite/data/features/es6.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","388":"B"},B:{"257":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M","769":"G N O P"},C:{"2":"zC UC J aB 3C 4C","4":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","257":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB","4":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","257":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C","4":"E F 8C 9C"},F:{"2":"F B C ID JD KD LD OC wC MD PC","4":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","257":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","4":"E QD RD SD TD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","4":"qD rD","257":"I"},J:{"2":"D","4":"A"},K:{"2":"A B C OC wC PC","257":"H"},L:{"257":"I"},M:{"257":"NC"},N:{"2":"A","388":"B"},O:{"257":"QC"},P:{"4":"J","257":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"257":"3D"},R:{"257":"4D"},S:{"4":"5D","257":"6D"}},B:6,C:"ECMAScript 2015 (ES6)",D:true};
Index: de_modules/caniuse-lite/data/features/eventsource.js
===================================================================
--- node_modules/caniuse-lite/data/features/eventsource.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","4":"F ID JD KD LD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"C H OC wC PC","4":"A B"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Server-sent events",D:true};
Index: de_modules/caniuse-lite/data/features/extended-system-fonts.js
===================================================================
--- node_modules/caniuse-lite/data/features/extended-system-fonts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family",D:true};
Index: de_modules/caniuse-lite/data/features/feature-policy.js
===================================================================
--- node_modules/caniuse-lite/data/features/feature-policy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"Q H R S T U V W","2":"C L M G N O P","1025":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC 3C 4C","260":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"IC JC KC LC MC Q H R S T U V W","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","132":"5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC","1025":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","772":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB ID JD KD LD OC wC MD PC","132":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","1025":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD","772":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","1025":"H"},L:{"1025":"I"},M:{"260":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD","132":"vD wD bC"},Q:{"132":"3D"},R:{"1025":"4D"},S:{"2":"5D","260":"6D"}},B:7,C:"Feature Policy",D:true};
Index: de_modules/caniuse-lite/data/features/fetch.js
===================================================================
--- node_modules/caniuse-lite/data/features/fetch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 3C 4C","1025":"lB","1218":"gB hB iB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB","260":"mB","772":"nB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB ID JD KD LD OC wC MD PC","260":"GB","772":"HB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Fetch",D:true};
Index: de_modules/caniuse-lite/data/features/fieldset-disabled.js
===================================================================
--- node_modules/caniuse-lite/data/features/fieldset-disabled.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"16":"yC","132":"E F","388":"K D A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","16":"N O P bB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","16":"F ID"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"388":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A","260":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"disabled attribute of the fieldset element",D:true};
Index: de_modules/caniuse-lite/data/features/fileapi.js
===================================================================
--- node_modules/caniuse-lite/data/features/fileapi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","260":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB","260":"9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","388":"K D E F A B C"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","260":"K D E F 7C 8C 9C","388":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ID JD KD LD","260":"9 C G N O P bB AB BB CB DB OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","260":"E PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I rD","2":"mD nD oD","260":"qD","388":"UC J pD xC"},J:{"260":"A","388":"D"},K:{"1":"H","2":"A B","260":"C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A","260":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"File API",D:true};
Index: de_modules/caniuse-lite/data/features/filereader.js
===================================================================
--- node_modules/caniuse-lite/data/features/filereader.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F B ID JD KD LD"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"C H OC wC PC","2":"A B"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"FileReader API",D:true};
Index: de_modules/caniuse-lite/data/features/filereadersync.js
===================================================================
--- node_modules/caniuse-lite/data/features/filereadersync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F ID JD","16":"B KD LD OC wC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"C H wC PC","2":"A","16":"B OC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"FileReaderSync",D:true};
Index: de_modules/caniuse-lite/data/features/filesystem.js
===================================================================
--- node_modules/caniuse-lite/data/features/filesystem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"J aB K D","33":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","36":"E F A B C"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D","33":"A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"33":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"33":"QC"},P:{"2":"J","33":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"33":"4D"},S:{"2":"5D 6D"}},B:7,C:"Filesystem & FileWriter API",D:true};
Index: de_modules/caniuse-lite/data/features/flac.js
===================================================================
--- node_modules/caniuse-lite/data/features/flac.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB","16":"qB rB sB","388":"tB uB vB wB xB yB zB 0B 1B"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","516":"B C OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"mD nD oD","16":"UC J pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"H PC","16":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","129":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"FLAC audio format",D:true};
Index: de_modules/caniuse-lite/data/features/flexbox-gap.js
===================================================================
--- node_modules/caniuse-lite/data/features/flexbox-gap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"gap property for Flexbox",D:true};
Index: de_modules/caniuse-lite/data/features/flexbox.js
===================================================================
--- node_modules/caniuse-lite/data/features/flexbox.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","1028":"B","1316":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","164":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","516":"BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"AB BB CB DB EB FB GB HB","164":"9 J aB K D E F A B C L M G N O P bB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"D E 7C 8C","164":"J aB K 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD","33":"G N"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E QD RD","164":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"I qD rD","164":"UC J mD nD oD pD xC"},J:{"1":"A","164":"D"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","292":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS Flexible Box Layout Module",D:true};
Index: de_modules/caniuse-lite/data/features/flow-root.js
===================================================================
--- node_modules/caniuse-lite/data/features/flow-root.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"display: flow-root",D:true};
Index: de_modules/caniuse-lite/data/features/focusin-focusout-events.js
===================================================================
--- node_modules/caniuse-lite/data/features/focusin-focusout-events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","2":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F ID JD KD LD","16":"B OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"J I pD xC qD rD","2":"mD nD oD","16":"UC"},J:{"1":"D A"},K:{"1":"C H PC","2":"A","16":"B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"focusin & focusout events",D:true};
Index: de_modules/caniuse-lite/data/features/font-family-system-ui.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-family-system-ui.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB 3C 4C","132":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","260":"zB 0B 1B"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C","16":"F","132":"A 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","132":"SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"132":"5D 6D"}},B:5,C:"system-ui value for font-family",D:true};
Index: de_modules/caniuse-lite/data/features/font-feature.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-feature.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB","164":"J aB K D E F A B C L M"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","33":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","292":"9 N O P bB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"D E F 5C aC 7C 8C","4":"J aB K 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E QD RD SD","4":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS font-feature-settings",D:true};
Index: de_modules/caniuse-lite/data/features/font-kerning.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-kerning.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB 3C 4C","194":"DB EB FB GB HB IB cB dB eB fB"},D:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB","33":"IB cB dB eB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C","33":"D E F 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G ID JD KD LD OC wC MD PC","33":"N O P bB"},G:{"1":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","33":"E RD SD TD UD VD WD XD"},H:{"2":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC","33":"qD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 font-kerning",D:true};
Index: de_modules/caniuse-lite/data/features/font-loading.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-loading.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB 3C 4C","194":"hB iB jB kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS Font Loading",D:true};
Index: de_modules/caniuse-lite/data/features/font-size-adjust.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-size-adjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","194":"0 1 2 3 4 5 6 7 8 JB","962":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"1 2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","516":"0 b c d e f g h i j k l m n o p q r s t u v w x y z","772":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a 3C 4C"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","194":"3 4 5 6 7 8 JB","962":"0 1 2 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC","772":"hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC","194":"l m n o p q r s t u v","962":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","772":"hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"194":"3D"},R:{"2":"4D"},S:{"2":"5D","516":"6D"}},B:2,C:"CSS font-size-adjust",D:true};
Index: de_modules/caniuse-lite/data/features/font-smooth.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-smooth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","676":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C","804":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB","1828":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"J","676":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"5C aC","676":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","676":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"804":"5D 6D"}},B:7,C:"CSS font-smooth",D:true};
Index: de_modules/caniuse-lite/data/features/font-unicode-range.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-unicode-range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","4":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","4":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C","194":"iB jB kB lB mB nB oB pB"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","4":"9 G N O P bB AB BB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","4":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","4":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","4":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"4":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","4":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Font unicode-range subsetting",D:true};
Index: de_modules/caniuse-lite/data/features/font-variant-alternates.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-variant-alternates.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","130":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","130":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","130":"9 J aB K D E F A B C L M G N O P bB AB BB CB","322":"DB EB FB GB HB IB cB dB eB fB"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","130":"9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"D E F 5C aC 7C 8C","130":"J aB K 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","130":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC QD RD SD","130":"ND xC OD PD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","130":"qD rD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"130":"QC"},P:{"1":"BB CB DB EB FB GB HB IB","130":"9 J AB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"130":"3D"},R:{"130":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS font-variant-alternates",D:true};
Index: de_modules/caniuse-lite/data/features/font-variant-numeric.js
===================================================================
--- node_modules/caniuse-lite/data/features/font-variant-numeric.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB ID JD KD LD OC wC MD PC"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS font-variant-numeric",D:true};
Index: de_modules/caniuse-lite/data/features/fontface.js
===================================================================
--- node_modules/caniuse-lite/data/features/fontface.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","132":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","2":"F ID"},G:{"1":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"aC ND"},H:{"2":"lD"},I:{"1":"J I pD xC qD rD","2":"mD","4":"UC nD oD"},J:{"1":"A","4":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"@font-face Web fonts",D:true};
Index: de_modules/caniuse-lite/data/features/form-attribute.js
===================================================================
--- node_modules/caniuse-lite/data/features/form-attribute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Form attribute",D:true};
Index: de_modules/caniuse-lite/data/features/form-submit-attributes.js
===================================================================
--- node_modules/caniuse-lite/data/features/form-submit-attributes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID","16":"JD KD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"J I pD xC qD rD","2":"mD nD oD","16":"UC"},J:{"1":"A","2":"D"},K:{"1":"B C H OC wC PC","16":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Attributes for form submission",D:true};
Index: de_modules/caniuse-lite/data/features/form-validation.js
===================================================================
--- node_modules/caniuse-lite/data/features/form-validation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","132":"aB K D E F A 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","2":"F ID"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC","132":"E ND xC OD PD QD RD SD TD UD"},H:{"516":"lD"},I:{"1":"I rD","2":"UC mD nD oD","132":"J pD xC qD"},J:{"1":"A","132":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"132":"NC"},N:{"260":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","132":"5D"}},B:1,C:"Form validation",D:true};
Index: de_modules/caniuse-lite/data/features/forms.js
===================================================================
--- node_modules/caniuse-lite/data/features/forms.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","4":"A B","8":"K D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","4":"C L M G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"4":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 F B C yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","4":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"2":"aC","4":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","4":"qD rD"},J:{"2":"D","4":"A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"4":"NC"},N:{"4":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","4":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"4":"5D 6D"}},B:1,C:"HTML5 form features",D:false};
Index: de_modules/caniuse-lite/data/features/fullscreen.js
===================================================================
--- node_modules/caniuse-lite/data/features/fullscreen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","548":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","516":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C","676":"9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB","1700":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B"},D:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M","676":"G N O P bB","804":"9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","548":"dC QC DD RC eC fC gC","676":"6C","804":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD","804":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD","2052":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D","292":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A","548":"B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","804":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Fullscreen API",D:true};
Index: de_modules/caniuse-lite/data/features/gamepad.js
===================================================================
--- node_modules/caniuse-lite/data/features/gamepad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB","33":"AB BB CB DB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"Gamepad API",D:true};
Index: de_modules/caniuse-lite/data/features/geolocation.js
===================================================================
--- node_modules/caniuse-lite/data/features/geolocation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D E"},B:{"1":"C L M G N O P","129":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 3C 4C","8":"zC UC","129":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","4":"J","129":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J 5C aC","129":"A"},F:{"1":"9 B C N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB LD OC wC MD PC","2":"F G ID","8":"JD KD","129":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E aC ND xC OD PD QD RD SD TD","129":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J mD nD oD pD xC qD rD","129":"I"},J:{"1":"D A"},K:{"1":"B C OC wC PC","8":"A","129":"H"},L:{"129":"I"},M:{"129":"NC"},N:{"1":"A B"},O:{"129":"QC"},P:{"1":"J","129":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"129":"3D"},R:{"129":"4D"},S:{"1":"5D","129":"6D"}},B:2,C:"Geolocation",D:true};
Index: de_modules/caniuse-lite/data/features/getboundingclientrect.js
===================================================================
--- node_modules/caniuse-lite/data/features/getboundingclientrect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"644":"K D yC","2049":"F A B","2692":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2049":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","260":"J aB K D E F A B","1156":"UC","1284":"3C","1796":"4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","16":"F ID","132":"JD KD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","132":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"2049":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Element.getBoundingClientRect()",D:true};
Index: de_modules/caniuse-lite/data/features/getcomputedstyle.js
===================================================================
--- node_modules/caniuse-lite/data/features/getcomputedstyle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","132":"UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","260":"J aB K D E F A"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","260":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","260":"F ID JD KD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"aC ND xC"},H:{"260":"lD"},I:{"1":"J I pD xC qD rD","260":"UC mD nD oD"},J:{"1":"A","260":"D"},K:{"1":"B C H OC wC PC","260":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"getComputedStyle",D:true};
Index: de_modules/caniuse-lite/data/features/getelementsbyclassname.js
===================================================================
--- node_modules/caniuse-lite/data/features/getelementsbyclassname.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","8":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"getElementsByClassName",D:true};
Index: de_modules/caniuse-lite/data/features/getrandomvalues.js
===================================================================
--- node_modules/caniuse-lite/data/features/getrandomvalues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","33":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A","33":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"crypto.getRandomValues()",D:true};
Index: de_modules/caniuse-lite/data/features/gyroscope.js
===================================================================
--- node_modules/caniuse-lite/data/features/gyroscope.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","194":"4B VC 5B WC 6B 7B 8B 9B AC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"Gyroscope",D:true};
Index: de_modules/caniuse-lite/data/features/hardwareconcurrency.js
===================================================================
--- node_modules/caniuse-lite/data/features/hardwareconcurrency.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},E:{"2":"J aB K D B C L M G 5C aC 6C 7C 8C OC PC AD BD CD cC","129":"bC","194":"E F A 9C","257":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC OD PD QD WD XD YD ZD aD bD cD dD eD fD gD cC","129":"VD","194":"E RD SD TD UD","257":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"navigator.hardwareConcurrency",D:true};
Index: de_modules/caniuse-lite/data/features/hashchange.js
===================================================================
--- node_modules/caniuse-lite/data/features/hashchange.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","8":"K D yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","8":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","8":"F ID JD KD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"UC J I nD oD pD xC qD rD","2":"mD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","8":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Hashchange event",D:true};
Index: de_modules/caniuse-lite/data/features/heif.js
===================================================================
--- node_modules/caniuse-lite/data/features/heif.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","130":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD iD","130":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"HEIF/HEIC image format",D:true};
Index: de_modules/caniuse-lite/data/features/hevc.js
===================================================================
--- node_modules/caniuse-lite/data/features/hevc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"132":"C L M G N O P","1028":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C","4098":"3","8258":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB","16388":"UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p","2052":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","516":"B C OC PC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c ID JD KD LD OC wC MD PC","2052":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","2052":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","258":"H"},L:{"2052":"I"},M:{"16388":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"AB BB CB DB EB FB GB HB IB","2":"J","258":"9 sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"HEVC/H.265 video format",D:true};
Index: de_modules/caniuse-lite/data/features/hidden.js
===================================================================
--- node_modules/caniuse-lite/data/features/hidden.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F B ID JD KD LD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"J I pD xC qD rD","2":"UC mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"C H OC wC PC","2":"A B"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"hidden attribute",D:true};
Index: de_modules/caniuse-lite/data/features/high-resolution-time.js
===================================================================
--- node_modules/caniuse-lite/data/features/high-resolution-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"zC UC J aB K D E F A B C L M 3C 4C","129":"1B 2B 3B","769":"4B VC","1281":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P bB","33":"9 AB BB CB"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"High Resolution Time API",D:true};
Index: de_modules/caniuse-lite/data/features/history.js
===================================================================
--- node_modules/caniuse-lite/data/features/history.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","4":"aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z wC MD PC","2":"F B ID JD KD LD OC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","4":"xC"},H:{"2":"lD"},I:{"1":"I nD oD xC qD rD","2":"UC J mD pD"},J:{"1":"D A"},K:{"1":"C H OC wC PC","2":"A B"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Session history management",D:true};
Index: de_modules/caniuse-lite/data/features/html-media-capture.js
===================================================================
--- node_modules/caniuse-lite/data/features/html-media-capture.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC OD","129":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD","257":"nD oD"},J:{"1":"A","16":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"516":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:2,C:"HTML Media Capture",D:true};
Index: de_modules/caniuse-lite/data/features/html5semantic.js
===================================================================
--- node_modules/caniuse-lite/data/features/html5semantic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","132":"UC 3C 4C","260":"9 J aB K D E F A B C L M G N O P bB"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"J aB","260":"9 K D E F A B C L M G N O P bB AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J 5C aC","260":"aB K 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B ID JD KD LD","260":"C OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"aC","260":"ND xC OD PD"},H:{"132":"lD"},I:{"1":"I qD rD","132":"mD","260":"UC J nD oD pD xC"},J:{"260":"D A"},K:{"1":"H","132":"A","260":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"260":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"HTML5 semantic elements",D:true};
Index: de_modules/caniuse-lite/data/features/http-live-streaming.js
===================================================================
--- node_modules/caniuse-lite/data/features/http-live-streaming.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"ZB I YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"HTTP Live Streaming (HLS)",D:true};
Index: de_modules/caniuse-lite/data/features/http2.js
===================================================================
--- node_modules/caniuse-lite/data/features/http2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"C L M G N O P","513":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C","513":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"nB oB pB qB rB sB tB uB vB wB","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","513":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C","260":"F A 9C bC"},F:{"1":"HB IB cB dB eB fB gB hB iB jB","2":"9 F B C G N O P bB AB BB CB DB EB FB GB ID JD KD LD OC wC MD PC","513":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","513":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","513":"H"},L:{"513":"I"},M:{"513":"NC"},N:{"2":"A B"},O:{"513":"QC"},P:{"1":"J","513":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"513":"3D"},R:{"513":"4D"},S:{"1":"5D","513":"6D"}},B:6,C:"HTTP/2 protocol",D:true};
Index: de_modules/caniuse-lite/data/features/http3.js
===================================================================
--- node_modules/caniuse-lite/data/features/http3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","322":"Q H R S T","578":"U V"},C:{"1":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC 3C 4C","194":"GC HC IC JC KC LC MC Q H R XC S T U V W"},D:{"1":"0 1 2 3 4 5 6 7 8 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","322":"Q H R S T","578":"U V"},E:{"1":"TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC AD","2049":"hC iC ED SC jC kC lC mC nC FD","2113":"RC eC fC gC","3140":"M G BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC ID JD KD LD OC wC MD PC","578":"HC"},G:{"1":"TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD","2049":"hC iC iD SC jC kC lC mC nC jD","2113":"RC eC fC gC","2116":"eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"uD","2":"9 J AB BB CB DB EB FB GB sD tD vD wD bC xD yD zD 0D 1D RC SC TC 2D","4098":"HB IB"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"HTTP/3 protocol",D:true};
Index: de_modules/caniuse-lite/data/features/iframe-sandbox.js
===================================================================
--- node_modules/caniuse-lite/data/features/iframe-sandbox.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N 3C 4C","4":"9 O P bB AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"UC J I nD oD pD xC qD rD","2":"mD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"sandbox attribute for iframes",D:true};
Index: de_modules/caniuse-lite/data/features/iframe-seamless.js
===================================================================
--- node_modules/caniuse-lite/data/features/iframe-seamless.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 J aB K D E F A B C L M G N O P bB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","66":"9 AB BB CB DB EB FB"},E:{"2":"J aB K E F A B C L M G 5C aC 6C 7C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","130":"D 8C"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","130":"QD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"seamless attribute for iframes",D:true};
Index: de_modules/caniuse-lite/data/features/iframe-srcdoc.js
===================================================================
--- node_modules/caniuse-lite/data/features/iframe-srcdoc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC","8":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L","8":"M G N O P bB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","8":"J aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ID JD KD LD","8":"C OC wC MD PC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC","8":"ND xC OD"},H:{"2":"lD"},I:{"1":"I qD rD","8":"UC J mD nD oD pD xC"},J:{"1":"A","8":"D"},K:{"1":"H","2":"A B","8":"C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"srcdoc attribute for iframes",D:true};
Index: de_modules/caniuse-lite/data/features/imagecapture.js
===================================================================
--- node_modules/caniuse-lite/data/features/imagecapture.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB 3C 4C","194":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","322":"zB 0B 1B 2B 3B 4B"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","516":"HD"},F:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB ID JD KD LD OC wC MD PC","322":"mB nB oB pB qB rB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"194":"5D 6D"}},B:5,C:"ImageCapture API",D:true};
Index: de_modules/caniuse-lite/data/features/ime.js
===================================================================
--- node_modules/caniuse-lite/data/features/ime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","161":"B"},B:{"2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","161":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A","161":"B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Input Method Editor API",D:true};
Index: de_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js
===================================================================
--- node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"naturalWidth & naturalHeight image properties",D:true};
Index: de_modules/caniuse-lite/data/features/import-maps.js
===================================================================
--- node_modules/caniuse-lite/data/features/import-maps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","194":"Q H R S T U V W X"},C:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k 3C 4C","322":"l m n o p q"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC","194":"IC JC KC LC MC Q H R S T U V W X"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC","194":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Import maps",D:true};
Index: de_modules/caniuse-lite/data/features/imports.js
===================================================================
--- node_modules/caniuse-lite/data/features/imports.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","8":"A B"},B:{"1":"Q","2":"0 1 2 3 4 5 6 7 8 H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB 3C 4C","8":"0 1 2 3 4 5 6 7 8 cB dB 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","72":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},D:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","66":"cB dB eB fB gB","72":"hB"},E:{"2":"J aB 5C aC 6C","8":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC","2":"0 1 2 3 4 5 6 7 8 F B C G N BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","66":"9 O P bB AB","72":"BB"},G:{"2":"aC ND xC OD PD","8":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"8":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"J sD tD uD vD wD bC xD yD","2":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"1":"5D","8":"6D"}},B:5,C:"HTML Imports",D:true};
Index: de_modules/caniuse-lite/data/features/indeterminate-checkbox.js
===================================================================
--- node_modules/caniuse-lite/data/features/indeterminate-checkbox.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC","16":"3C"},D:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"indeterminate checkbox",D:true};
Index: de_modules/caniuse-lite/data/features/indexeddb.js
===================================================================
--- node_modules/caniuse-lite/data/features/indexeddb.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"A B C L M G","36":"J aB K D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"A","8":"J aB K D E F","33":"CB","36":"9 B C L M G N O P bB AB BB"},E:{"1":"A B C L M G bC OC PC AD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB K D 5C aC 6C 7C","260":"E F 8C 9C","516":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD","8":"B C KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC OD PD QD","260":"E RD SD TD","516":"fD"},H:{"2":"lD"},I:{"1":"I qD rD","8":"UC J mD nD oD pD xC"},J:{"1":"A","8":"D"},K:{"1":"H","2":"A","8":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"IndexedDB",D:true};
Index: de_modules/caniuse-lite/data/features/indexeddb2.js
===================================================================
--- node_modules/caniuse-lite/data/features/indexeddb2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 3C 4C","132":"qB rB sB","260":"tB uB vB wB"},D:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","132":"uB vB wB xB","260":"yB zB 0B 1B 2B 3B"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC","132":"hB iB jB kB","260":"lB mB nB oB pB qB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD","16":"UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","260":"sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","260":"5D"}},B:2,C:"IndexedDB 2.0",D:true};
Index: de_modules/caniuse-lite/data/features/inline-block.js
===================================================================
--- node_modules/caniuse-lite/data/features/inline-block.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","4":"yC","132":"K D"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","36":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS inline-block",D:true};
Index: de_modules/caniuse-lite/data/features/innertext.js
===================================================================
--- node_modules/caniuse-lite/data/features/innertext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"HTMLElement.innerText",D:true};
Index: de_modules/caniuse-lite/data/features/input-autocomplete-onoff.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A yC","132":"B"},B:{"132":"C L M G N O P","260":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB 3C 4C","516":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"9 O P bB AB BB CB DB EB FB","2":"J aB K D E F A B C L M G N","132":"GB HB IB cB dB eB fB gB hB iB jB kB lB mB","260":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K 6C 7C","2":"J aB 5C aC","2052":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC","1025":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1025":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2052":"A B"},O:{"1025":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"260":"3D"},R:{"1":"4D"},S:{"516":"5D 6D"}},B:1,C:"autocomplete attribute: on & off values",D:true};
Index: de_modules/caniuse-lite/data/features/input-color.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P bB"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F G N ID JD KD LD"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD","129":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"Color input type",D:true};
Index: de_modules/caniuse-lite/data/features/input-datetime.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-datetime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C","1090":"zB 0B 1B 2B","2052":"3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b","4100":"0 1 2 3 4 5 6 7 8 c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P bB","2052":"9 AB BB CB DB"},E:{"2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD","4100":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC","260":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC","8193":"pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC mD nD oD","514":"J pD xC"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"4100":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2052":"5D 6D"}},B:1,C:"Date and time input types",D:true};
Index: de_modules/caniuse-lite/data/features/input-email-tel-url.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-email-tel-url.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","132":"mD nD oD"},J:{"1":"A","132":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Email, telephone & URL input types",D:true};
Index: de_modules/caniuse-lite/data/features/input-event.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-event.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","2561":"A B","2692":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2561":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC","1537":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 4C","1796":"UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","1025":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B","1537":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB K 5C aC","1025":"D E F A B C 7C 8C 9C bC OC","1537":"6C","4097":"L PC"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","16":"F B C ID JD KD LD OC wC","260":"MD","1025":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","1537":"9 G N O P bB AB"},G:{"1":"bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","1025":"E RD SD TD UD VD WD XD YD","1537":"OD PD QD","4097":"ZD aD"},H:{"2":"lD"},I:{"16":"mD nD","1025":"I rD","1537":"UC J oD pD xC qD"},J:{"1025":"A","1537":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2561":"A B"},O:{"1":"QC"},P:{"1025":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","1537":"5D"}},B:1,C:"input event",D:true};
Index: de_modules/caniuse-lite/data/features/input-file-accept.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-file-accept.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J","16":"aB K D E AB BB CB DB EB","132":"9 F A B C L M G N O P bB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","132":"K D E F A B 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"2":"PD QD","132":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","514":"aC ND xC OD"},H:{"2":"lD"},I:{"2":"mD nD oD","260":"UC J pD xC","514":"I qD rD"},J:{"132":"A","260":"D"},K:{"2":"A B C OC wC PC","514":"H"},L:{"260":"I"},M:{"2":"NC"},N:{"514":"A","1028":"B"},O:{"2":"QC"},P:{"260":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"260":"3D"},R:{"260":"4D"},S:{"1":"5D 6D"}},B:1,C:"accept attribute for file input",D:true};
Index: de_modules/caniuse-lite/data/features/input-file-directory.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-file-directory.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N ID JD KD LD OC wC MD PC"},G:{"1":"rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Directory selection from file input",D:true};
Index: de_modules/caniuse-lite/data/features/input-file-multiple.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-file-multiple.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID JD KD"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"130":"lD"},I:{"130":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","130":"A B C OC wC PC"},L:{"132":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"130":"QC"},P:{"130":"J","132":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"132":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"Multiple file selection",D:true};
Index: de_modules/caniuse-lite/data/features/input-inputmode.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-inputmode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N 3C 4C","4":"9 O P bB","194":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d"},D:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","66":"2B 3B 4B VC 5B WC 6B 7B 8B 9B"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB ID JD KD LD OC wC MD PC","66":"pB qB rB sB tB uB vB wB xB yB"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"194":"5D 6D"}},B:1,C:"inputmode attribute",D:true};
Index: de_modules/caniuse-lite/data/features/input-minlength.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-minlength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"Minimum length attribute for input fields",D:true};
Index: de_modules/caniuse-lite/data/features/input-number.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L","1025":"M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","513":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"388":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC mD nD oD","388":"J I pD xC qD rD"},J:{"2":"D","388":"A"},K:{"1":"A B C OC wC PC","388":"H"},L:{"388":"I"},M:{"641":"NC"},N:{"388":"A B"},O:{"388":"QC"},P:{"388":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"388":"3D"},R:{"388":"4D"},S:{"513":"5D 6D"}},B:1,C:"Number input type",D:true};
Index: de_modules/caniuse-lite/data/features/input-pattern.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-pattern.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB","388":"K D E F A 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","388":"E OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC qD"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Pattern attribute for input fields",D:true};
Index: de_modules/caniuse-lite/data/features/input-placeholder.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-placeholder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z wC MD PC","2":"F ID JD KD LD","132":"B OC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC I mD nD oD xC qD rD","4":"J pD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"input placeholder attribute",D:true};
Index: de_modules/caniuse-lite/data/features/input-range.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"I xC qD rD","4":"UC J mD nD oD pD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Range input type",D:true};
Index: de_modules/caniuse-lite/data/features/input-search.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-search.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M G N O P"},C:{"2":"zC UC 3C 4C","129":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M AB BB CB DB EB","129":"9 G N O P bB"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F ID JD KD LD","16":"B OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"129":"lD"},I:{"1":"I qD rD","16":"mD nD","129":"UC J oD pD xC"},J:{"1":"D","129":"A"},K:{"1":"C H","2":"A","16":"B OC wC","129":"PC"},L:{"1":"I"},M:{"129":"NC"},N:{"129":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"129":"5D 6D"}},B:1,C:"Search input type",D:true};
Index: de_modules/caniuse-lite/data/features/input-selection.js
===================================================================
--- node_modules/caniuse-lite/data/features/input-selection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","16":"F ID JD KD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Selection controls for input & textarea",D:true};
Index: de_modules/caniuse-lite/data/features/insert-adjacent.js
===================================================================
--- node_modules/caniuse-lite/data/features/insert-adjacent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()",D:true};
Index: de_modules/caniuse-lite/data/features/insertadjacenthtml.js
===================================================================
--- node_modules/caniuse-lite/data/features/insertadjacenthtml.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","16":"yC","132":"K D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","16":"F ID"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Element.insertAdjacentHTML()",D:true};
Index: de_modules/caniuse-lite/data/features/internationalization.js
===================================================================
--- node_modules/caniuse-lite/data/features/internationalization.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"Internationalization API",D:true};
Index: de_modules/caniuse-lite/data/features/intersectionobserver-v2.js
===================================================================
--- node_modules/caniuse-lite/data/features/intersectionobserver-v2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"IntersectionObserver V2",D:true};
Index: de_modules/caniuse-lite/data/features/intersectionobserver.js
===================================================================
--- node_modules/caniuse-lite/data/features/intersectionobserver.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"N O P","2":"C L M","260":"G","513":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C","194":"yB zB 0B"},D:{"1":"4B VC 5B WC 6B 7B 8B","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","260":"xB yB zB 0B 1B 2B 3B","513":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB ID JD KD LD OC wC MD PC","260":"kB lB mB nB oB pB qB","513":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","513":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","513":"H"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","260":"sD tD"},Q:{"513":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"IntersectionObserver",D:true};
Index: de_modules/caniuse-lite/data/features/intl-pluralrules.js
===================================================================
--- node_modules/caniuse-lite/data/features/intl-pluralrules.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O","130":"P"},C:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"Intl.PluralRules API",D:true};
Index: de_modules/caniuse-lite/data/features/intrinsic-width.js
===================================================================
--- node_modules/caniuse-lite/data/features/intrinsic-width.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","1025":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1537":"Q H R S T U V W X Y Z a b c"},C:{"2":"zC","932":"9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B 3C 4C","2308":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB","545":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB","1025":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","1537":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","516":"B C L M G OC PC AD BD CD cC dC QC DD","548":"F A 9C bC","676":"D E 7C 8C"},F:{"2":"F B C ID JD KD LD OC wC MD PC","513":"gB","545":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB","1025":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z","1537":"fB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","516":"eD fD gD cC dC QC hD","548":"SD TD UD VD WD XD YD ZD aD bD cD dD","676":"E QD RD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","545":"qD rD","1025":"I"},J:{"2":"D","545":"A"},K:{"2":"A B C OC wC PC","1025":"H"},L:{"1025":"I"},M:{"2308":"NC"},N:{"2":"A B"},O:{"1537":"QC"},P:{"545":"J","1025":"9 AB BB CB DB EB FB GB HB IB SC TC 2D","1537":"sD tD uD vD wD bC xD yD zD 0D 1D RC"},Q:{"1537":"3D"},R:{"1537":"4D"},S:{"932":"5D","2308":"6D"}},B:5,C:"Intrinsic & Extrinsic Sizing",D:true};
Index: de_modules/caniuse-lite/data/features/jpeg2000.js
===================================================================
--- node_modules/caniuse-lite/data/features/jpeg2000.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD","2":"J 5C aC TC oC pC qC rC GD sC tC uC vC HD","129":"aB 6C"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD","2":"aC ND xC TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"JPEG 2000 image format",D:true};
Index: de_modules/caniuse-lite/data/features/jpegxl.js
===================================================================
--- node_modules/caniuse-lite/data/features/jpegxl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","578":"a b c d e f g h i j k l m n o p q r s"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y 3C 4C","2370":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","194":"a b c d e f g h i j k l m n o p q r s"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED","3076":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","194":"LC MC Q H R XC S T U V W X Y Z a b c d e"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD","3076":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"JPEG XL image format",D:true};
Index: de_modules/caniuse-lite/data/features/jpegxr.js
===================================================================
--- node_modules/caniuse-lite/data/features/jpegxr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"JPEG XR image format",D:true};
Index: de_modules/caniuse-lite/data/features/js-regexp-lookbehind.js
===================================================================
--- node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"Lookbehind in JS regular expressions",D:true};
Index: de_modules/caniuse-lite/data/features/json.js
===================================================================
--- node_modules/caniuse-lite/data/features/json.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D yC","129":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"JSON parsing",D:true};
Index: de_modules/caniuse-lite/data/features/justify-content-space-evenly.js
===================================================================
--- node_modules/caniuse-lite/data/features/justify-content-space-evenly.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G","132":"N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","132":"3B 4B VC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C","132":"bC"},F:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC","132":"qB rB sB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD","132":"VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD","132":"uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","132":"5D"}},B:5,C:"CSS justify-content: space-evenly",D:true};
Index: de_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js
===================================================================
--- node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND"},H:{"2":"lD"},I:{"1":"I qD rD","2":"mD nD oD","132":"UC J pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"High-quality kerning pairs & ligatures",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-charcode.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-charcode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","16":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD","16":"C"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H PC","2":"A B OC wC","16":"C"},L:{"1":"I"},M:{"130":"NC"},N:{"130":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"KeyboardEvent.charCode",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-code.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-code.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB","194":"oB pB qB rB sB tB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB ID JD KD LD OC wC MD PC","194":"IB cB dB eB fB gB"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"194":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"J","194":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"194":"4D"},S:{"1":"5D 6D"}},B:5,C:"KeyboardEvent.code",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B G N ID JD KD LD OC wC MD","16":"C"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H PC","2":"A B OC wC","16":"C"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"KeyboardEvent.getModifierState()",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-key.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-key.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB 3C 4C","132":"CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"9 F B G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB ID JD KD LD OC wC MD","16":"C"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"1":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H PC","2":"A B OC wC","16":"C"},L:{"1":"I"},M:{"1":"NC"},N:{"260":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"KeyboardEvent.key",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-location.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-location.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"K 5C aC","132":"J aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD","16":"C","132":"G N"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","132":"OD PD QD"},H:{"2":"lD"},I:{"1":"I qD rD","16":"mD nD","132":"UC J oD pD xC"},J:{"132":"D A"},K:{"1":"H PC","2":"A B OC wC","16":"C"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"KeyboardEvent.location",D:true};
Index: de_modules/caniuse-lite/data/features/keyboardevent-which.js
===================================================================
--- node_modules/caniuse-lite/data/features/keyboardevent-which.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","16":"aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","16":"F ID"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC","16":"mD nD","132":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"132":"I"},M:{"132":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"2":"J","132":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"132":"4D"},S:{"1":"5D 6D"}},B:7,C:"KeyboardEvent.which",D:true};
Index: de_modules/caniuse-lite/data/features/lazyload.js
===================================================================
--- node_modules/caniuse-lite/data/features/lazyload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"B","2":"A"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Resource Hints: Lazyload",D:true};
Index: de_modules/caniuse-lite/data/features/let.js
===================================================================
--- node_modules/caniuse-lite/data/features/let.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","2052":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","194":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P","322":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","516":"nB oB pB qB rB sB tB uB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","1028":"A bC"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","322":"9 G N O P bB AB BB CB DB EB FB GB","516":"HB IB cB dB eB fB gB hB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD","1028":"UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","516":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"let",D:true};
Index: de_modules/caniuse-lite/data/features/link-icon-png.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-icon-png.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","130":"E aC ND xC OD PD QD RD SD TD UD VD WD XD"},H:{"130":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D","130":"A"},K:{"1":"H","130":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"130":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"PNG favicons",D:true};
Index: de_modules/caniuse-lite/data/features/link-icon-svg.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-icon-svg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q","1537":"0 1 2 3 4 5 6 7 8 H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"zC UC 3C 4C","260":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","513":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","1537":"0 1 2 3 4 5 6 7 8 H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD"},F:{"1":"qB rB sB tB uB vB wB xB yB zB","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC ID JD KD LD OC wC MD PC","1537":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"sC tC uC vC","2":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD","130":"E aC ND xC OD PD QD RD SD TD UD VD WD XD"},H:{"130":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D","130":"A"},K:{"130":"A B C OC wC PC","1537":"H"},L:{"1537":"I"},M:{"2":"NC"},N:{"130":"A B"},O:{"2":"QC"},P:{"2":"J sD tD uD vD wD bC xD yD","1537":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"1537":"4D"},S:{"513":"5D 6D"}},B:1,C:"SVG favicons",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E yC","132":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","260":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"sC tC uC vC","16":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"16":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","16":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Resource Hints: dns-prefetch",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-modulepreload.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-modulepreload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ID JD KD LD OC wC MD PC"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:1,C:"Resource Hints: modulepreload",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-preconnect.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-preconnect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","260":"G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB 3C 4C","129":"lB","514":"FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Resource Hints: preconnect",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-prefetch.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-prefetch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC","194":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD","194":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"J I qD rD","2":"UC mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Resource Hints: prefetch",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-preload.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-preload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N","1028":"O P"},C:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 3C 4C","132":"2B","578":"3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T"},D:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","322":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","322":"WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"Resource Hints: preload",D:true};
Index: de_modules/caniuse-lite/data/features/link-rel-prerender.js
===================================================================
--- node_modules/caniuse-lite/data/features/link-rel-prerender.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"Resource Hints: prerender",D:true};
Index: de_modules/caniuse-lite/data/features/loading-lazy-attr.js
===================================================================
--- node_modules/caniuse-lite/data/features/loading-lazy-attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC 3C 4C","132":"0 1 2 3 JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","66":"JC KC"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC","322":"M G AD BD CD cC","580":"dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC","66":"6B 7B"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD","322":"dD eD fD gD cC","580":"dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D","132":"6D"}},B:1,C:"Lazy loading via attribute for images & iframes",D:true};
Index: de_modules/caniuse-lite/data/features/localecompare.js
===================================================================
--- node_modules/caniuse-lite/data/features/localecompare.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","16":"yC","132":"K D E F A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B C ID JD KD LD OC wC MD","132":"PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"E aC ND xC OD PD QD RD SD TD"},H:{"132":"lD"},I:{"1":"I qD rD","132":"UC J mD nD oD pD xC"},J:{"132":"D A"},K:{"1":"H","16":"A B C OC wC","132":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","132":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","4":"5D"}},B:6,C:"localeCompare()",D:true};
Index: de_modules/caniuse-lite/data/features/magnetometer.js
===================================================================
--- node_modules/caniuse-lite/data/features/magnetometer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","194":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC","194":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"194":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"Magnetometer",D:true};
Index: de_modules/caniuse-lite/data/features/matchesselector.js
===================================================================
--- node_modules/caniuse-lite/data/features/matchesselector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","36":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","36":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C","36":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","36":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","36":"aB K D 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ID JD KD LD OC","36":"9 C G N O P bB wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC","36":"ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I","2":"mD","36":"UC J nD oD pD xC qD rD"},J:{"36":"D A"},K:{"1":"H","2":"A B","36":"C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"36":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","36":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"matches() DOM method",D:true};
Index: de_modules/caniuse-lite/data/features/matchmedia.js
===================================================================
--- node_modules/caniuse-lite/data/features/matchmedia.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"matchMedia",D:true};
Index: de_modules/caniuse-lite/data/features/mathml.js
===================================================================
--- node_modules/caniuse-lite/data/features/mathml.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"F A B yC","8":"K D E"},B:{"2":"C L M G N O P","8":"Q H R S T U V W X Y Z a b c d e f","584":"g h i j k l m n o p q r","1025":"0 1 2 3 4 5 6 7 8 s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","129":"zC UC 3C 4C"},D:{"1":"DB","8":"9 J aB K D E F A B C L M G N O P bB AB BB CB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f","584":"g h i j k l m n o p q r","1025":"0 1 2 3 4 5 6 7 8 s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","260":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"2":"F","8":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC","584":"S T U V W X Y Z a b c d","1025":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z","2052":"B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC"},H:{"8":"lD"},I:{"8":"UC J mD nD oD pD xC qD rD","1025":"I"},J:{"1":"A","8":"D"},K:{"8":"A B C OC wC PC","1025":"H"},L:{"1025":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"8":"QC"},P:{"1":"AB BB CB DB EB FB GB HB IB","8":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"8":"3D"},R:{"8":"4D"},S:{"1":"5D 6D"}},B:2,C:"MathML",D:true};
Index: de_modules/caniuse-lite/data/features/maxlength.js
===================================================================
--- node_modules/caniuse-lite/data/features/maxlength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","16":"yC","900":"K D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1025":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","900":"zC UC 3C 4C","1025":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"aB 5C","900":"J aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F","132":"B C ID JD KD LD OC wC MD PC"},G:{"1":"ND xC OD PD QD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC","2052":"E RD"},H:{"132":"lD"},I:{"1":"UC J oD pD xC qD rD","16":"mD nD","4097":"I"},J:{"1":"D A"},K:{"132":"A B C OC wC PC","4097":"H"},L:{"4097":"I"},M:{"4097":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"4097":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1025":"5D 6D"}},B:1,C:"maxlength attribute for input and textarea elements",D:true};
Index: de_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB","33":"eB fB gB hB iB"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C"},M:{"1":"NC"},A:{"2":"K D E F A yC","33":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N O P ID JD KD LD OC wC MD PC","33":"9 bB AB BB CB"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC HD"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"}},B:6,C:"CSS ::backdrop pseudo-element",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N 3C 4C","33":"9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB K 5C aC 6C 7C HD","33":"D E F A 8C 9C bC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","33":"E QD RD SD TD UD VD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"isolate-override from unicode-bidi",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","33":"9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C","33":"9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB 5C aC 6C HD","33":"K D E F A 7C 8C 9C bC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E PD QD RD SD TD UD VD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"isolate from unicode-bidi",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C","33":"9 A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB 5C aC 6C HD","33":"K D E F A 7C 8C 9C bC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"E PD QD RD SD TD UD VD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"plaintext from unicode-bidi",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-text-decoration-color.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","33":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB K D 5C aC 6C 7C 8C HD","33":"E F A B C 9C bC OC"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","33":"E RD SD TD UD VD WD XD YD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"text-decoration-color property",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-text-decoration-line.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","33":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB K D 5C aC 6C 7C 8C HD","33":"E F A B C 9C bC OC"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","33":"E RD SD TD UD VD WD XD YD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"text-decoration-line property",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"2":"J aB K D 5C aC 6C 7C 8C HD","33":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC"},G:{"2":"aC ND xC OD PD QD","33":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"text-decoration shorthand property",D:undefined};
Index: de_modules/caniuse-lite/data/features/mdn-text-decoration-style.js
===================================================================
--- node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},L:{"1":"I"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","33":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},M:{"1":"NC"},A:{"2":"K D E F A B yC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},K:{"1":"H","2":"A B C OC wC PC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC","2":"J aB K D 5C aC 6C 7C 8C HD","33":"E F A B C 9C bC OC"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","33":"E RD SD TD UD VD WD XD YD"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"}},B:6,C:"text-decoration-style property",D:undefined};
Index: de_modules/caniuse-lite/data/features/media-fragments.js
===================================================================
--- node_modules/caniuse-lite/data/features/media-fragments.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 3C 4C","132":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"J aB K D E F A B C L M G N O","132":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB 5C aC 6C","132":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","132":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"aC ND xC OD PD QD","132":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","132":"I qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"132":"I"},M:{"132":"NC"},N:{"132":"A B"},O:{"132":"QC"},P:{"2":"J sD","132":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"132":"4D"},S:{"132":"5D 6D"}},B:2,C:"Media Fragments",D:true};
Index: de_modules/caniuse-lite/data/features/mediacapture-fromelement.js
===================================================================
--- node_modules/caniuse-lite/data/features/mediacapture-fromelement.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB 3C 4C","260":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","324":"xB yB zB 0B 1B 2B 3B 4B VC 5B WC"},E:{"2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","132":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC","324":"iB jB kB lB mB nB oB pB qB rB sB tB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"260":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","132":"sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"260":"5D 6D"}},B:5,C:"Media Capture from DOM Elements API",D:true};
Index: de_modules/caniuse-lite/data/features/mediarecorder.js
===================================================================
--- node_modules/caniuse-lite/data/features/mediarecorder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB","194":"tB uB"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","322":"L M PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB ID JD KD LD OC wC MD PC","194":"gB hB"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD","578":"YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"MediaRecorder API",D:true};
Index: de_modules/caniuse-lite/data/features/mediasource.js
===================================================================
--- node_modules/caniuse-lite/data/features/mediasource.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C","66":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N","33":"CB DB EB FB GB HB IB cB","66":"9 O P bB AB BB"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD","260":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC qD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Media Source Extensions",D:true};
Index: de_modules/caniuse-lite/data/features/menu.js
===================================================================
--- node_modules/caniuse-lite/data/features/menu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"zC UC J aB K D 3C 4C","132":"9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T","450":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","66":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","66":"hB iB jB kB lB mB nB oB pB qB rB sB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"450":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Context menu item (menuitem element)",D:true};
Index: de_modules/caniuse-lite/data/features/meta-theme-color.js
===================================================================
--- node_modules/caniuse-lite/data/features/meta-theme-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB","132":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","258":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD","2052":"sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD","1026":"sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"516":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","16":"sD"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:1,C:"theme-color Meta Tag",D:true};
Index: de_modules/caniuse-lite/data/features/meter.js
===================================================================
--- node_modules/caniuse-lite/data/features/meter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F ID JD KD LD"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"meter element",D:true};
Index: de_modules/caniuse-lite/data/features/midi.js
===================================================================
--- node_modules/caniuse-lite/data/features/midi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"Web MIDI API",D:true};
Index: de_modules/caniuse-lite/data/features/minmaxwh.js
===================================================================
--- node_modules/caniuse-lite/data/features/minmaxwh.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","8":"K yC","129":"D","257":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS min/max-width/height",D:true};
Index: de_modules/caniuse-lite/data/features/mp3.js
===================================================================
--- node_modules/caniuse-lite/data/features/mp3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","132":"9 J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","2":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"MP3 audio format",D:true};
Index: de_modules/caniuse-lite/data/features/mpeg-dash.js
===================================================================
--- node_modules/caniuse-lite/data/features/mpeg-dash.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","386":"AB BB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)",D:true};
Index: de_modules/caniuse-lite/data/features/mpeg4.js
===================================================================
--- node_modules/caniuse-lite/data/features/mpeg4.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB 3C 4C","4":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","4":"UC J mD nD pD xC","132":"oD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"MPEG-4/H.264 video format",D:true};
Index: de_modules/caniuse-lite/data/features/multibackgrounds.js
===================================================================
--- node_modules/caniuse-lite/data/features/multibackgrounds.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 Multiple backgrounds",D:true};
Index: de_modules/caniuse-lite/data/features/multicolumn.js
===================================================================
--- node_modules/caniuse-lite/data/features/multicolumn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"C L M G N O P","516":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"132":"yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B","164":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C","516":"9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a","1028":"0 1 2 3 4 5 6 7 8 b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"420":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","516":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"F 9C","164":"D E 8C","420":"J aB K 5C aC 6C 7C"},F:{"1":"C OC wC MD PC","2":"F B ID JD KD LD","420":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB","516":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"SD TD","164":"E QD RD","420":"aC ND xC OD PD"},H:{"1":"lD"},I:{"420":"UC J mD nD oD pD xC qD rD","516":"I"},J:{"420":"D A"},K:{"1":"C OC wC PC","2":"A B","516":"H"},L:{"516":"I"},M:{"1028":"NC"},N:{"1":"A B"},O:{"516":"QC"},P:{"420":"J","516":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"516":"3D"},R:{"516":"4D"},S:{"164":"5D 6D"}},B:4,C:"CSS3 Multiple column layout",D:true};
Index: de_modules/caniuse-lite/data/features/mutation-events.js
===================================================================
--- node_modules/caniuse-lite/data/features/mutation-events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","260":"F A B"},B:{"2":"UB VB WB XB YB ZB I","66":"KB LB MB NB OB PB QB RB SB TB","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB","260":"C L M G N O P"},C:{"2":"zC UC J aB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","260":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"2":"SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M","66":"KB LB MB NB OB PB QB RB","132":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB"},E:{"2":"sC tC uC vC HD","16":"5C aC","132":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD"},F:{"1":"C MD PC","2":"F ID JD KD LD","16":"B OC wC","66":"0 1 2 3 4 5 6 7 8 w x y z","132":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},G:{"2":"sC tC uC vC","16":"aC ND","132":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"2":"I","16":"mD nD","132":"UC J oD pD xC qD rD"},J:{"132":"D A"},K:{"1":"C PC","2":"A","16":"B OC wC","132":"H"},L:{"2":"I"},M:{"2":"NC"},N:{"260":"A B"},O:{"132":"QC"},P:{"132":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"132":"3D"},R:{"132":"4D"},S:{"260":"5D 6D"}},B:7,C:"Mutation events",D:true};
Index: de_modules/caniuse-lite/data/features/mutationobserver.js
===================================================================
--- node_modules/caniuse-lite/data/features/mutationobserver.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E yC","8":"F A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O","33":"9 P bB AB BB CB DB EB FB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC mD nD oD","8":"J pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","8":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Mutation Observer",D:true};
Index: de_modules/caniuse-lite/data/features/namevalue-storage.js
===================================================================
--- node_modules/caniuse-lite/data/features/namevalue-storage.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"yC","8":"K D"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","4":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Web Storage - name/value pairs",D:true};
Index: de_modules/caniuse-lite/data/features/native-filesystem-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/native-filesystem-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","194":"Q H R S T U","260":"V W X Y Z a b c d e f g h i j k l m n"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC","194":"IC JC KC LC MC Q H R S T U","260":"V W X Y Z a b c d e f g h i j k l m n"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC","194":"6B 7B 8B 9B AC BC CC DC EC FC","260":"GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"File System Access API",D:true};
Index: de_modules/caniuse-lite/data/features/nav-timing.js
===================================================================
--- node_modules/caniuse-lite/data/features/nav-timing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB","33":"K D E F A B C"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"J I pD xC qD rD","2":"UC mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Navigation Timing API",D:true};
Index: de_modules/caniuse-lite/data/features/netinfo.js
===================================================================
--- node_modules/caniuse-lite/data/features/netinfo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","1028":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B","1028":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ID JD KD LD OC wC MD PC","1028":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"mD qD rD","132":"UC J nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J","516":"sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"6D","260":"5D"}},B:7,C:"Network Information API",D:true};
Index: de_modules/caniuse-lite/data/features/notifications.js
===================================================================
--- node_modules/caniuse-lite/data/features/notifications.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J","36":"9 aB K D E F A B C L M G N O P bB AB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","516":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","36":"I qD rD"},J:{"1":"A","2":"D"},K:{"2":"A B C OC wC PC","36":"H"},L:{"257":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"36":"J","130":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"130":"4D"},S:{"1":"5D 6D"}},B:1,C:"Web Notifications",D:true};
Index: de_modules/caniuse-lite/data/features/object-entries.js
===================================================================
--- node_modules/caniuse-lite/data/features/object-entries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Object.entries",D:true};
Index: de_modules/caniuse-lite/data/features/object-fit.js
===================================================================
--- node_modules/caniuse-lite/data/features/object-fit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G","260":"N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C","132":"E F 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F G N O P ID JD KD","33":"B C LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","132":"E RD SD TD"},H:{"33":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC qD"},J:{"2":"D A"},K:{"1":"H","2":"A","33":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 object-fit/object-position",D:true};
Index: de_modules/caniuse-lite/data/features/object-observe.js
===================================================================
--- node_modules/caniuse-lite/data/features/object-observe.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB","2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"J","2":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Object.observe data binding",D:true};
Index: de_modules/caniuse-lite/data/features/object-values.js
===================================================================
--- node_modules/caniuse-lite/data/features/object-values.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"8":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"E aC ND xC OD PD QD RD SD TD UD"},H:{"8":"lD"},I:{"1":"I","8":"UC J mD nD oD pD xC qD rD"},J:{"8":"D A"},K:{"1":"H","8":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","8":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Object.values method",D:true};
Index: de_modules/caniuse-lite/data/features/objectrtc.js
===================================================================
--- node_modules/caniuse-lite/data/features/objectrtc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"L M G N O P","2":"0 1 2 3 4 5 6 7 8 C Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"Object RTC (ORTC) API for WebRTC",D:true};
Index: de_modules/caniuse-lite/data/features/offline-apps.js
===================================================================
--- node_modules/caniuse-lite/data/features/offline-apps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"F yC","8":"K D E"},B:{"1":"C L M G N O P Q H R S T","2":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S 3C 4C","2":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","4":"UC","8":"zC"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T","2":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M 6C 7C 8C 9C bC OC PC AD BD","2":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"5C aC"},F:{"1":"9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC LD OC wC MD PC","2":"0 1 2 3 4 5 6 7 8 F HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID","8":"JD KD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD","2":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J mD nD oD pD xC qD rD","2":"I"},J:{"1":"D A"},K:{"1":"B C OC wC PC","2":"A H"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"1":"5D","2":"6D"}},B:7,C:"Offline web applications",D:true};
Index: de_modules/caniuse-lite/data/features/offscreencanvas.js
===================================================================
--- node_modules/caniuse-lite/data/features/offscreencanvas.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 3C 4C","194":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n"},D:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","322":"4B VC 5B WC 6B 7B 8B 9B AC BC CC"},E:{"1":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC","516":"fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB ID JD KD LD OC wC MD PC","322":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},G:{"1":"SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC","516":"fC gC hC iC iD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"194":"5D 6D"}},B:1,C:"OffscreenCanvas",D:true};
Index: de_modules/caniuse-lite/data/features/ogg-vorbis.js
===================================================================
--- node_modules/caniuse-lite/data/features/ogg-vorbis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD","260":"SC jC kC lC mC nC FD TC oC pC qC","388":"G BD CD cC dC QC DD RC eC fC gC hC iC ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC","260":"mC nC jD TC oC pC qC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"A","2":"D"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Ogg Vorbis audio format",D:true};
Index: de_modules/caniuse-lite/data/features/ogv.js
===================================================================
--- node_modules/caniuse-lite/data/features/ogv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","8":"F A B"},B:{"1":"0 1 2 3 4 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"C L M G N","194":"5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB 3C 4C","2":"zC UC NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o KD LD OC wC MD PC","2":"F ID JD","194":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"1":"5D 6D"}},B:6,C:"Ogg/Theora video format",D:true};
Index: de_modules/caniuse-lite/data/features/ol-reversed.js
===================================================================
--- node_modules/caniuse-lite/data/features/ol-reversed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","16":"N O P bB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","16":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD","16":"C"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Reversed attribute of ordered lists",D:true};
Index: de_modules/caniuse-lite/data/features/once-event-listener.js
===================================================================
--- node_modules/caniuse-lite/data/features/once-event-listener.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"\"once\" event listener option",D:true};
Index: de_modules/caniuse-lite/data/features/online-status.js
===================================================================
--- node_modules/caniuse-lite/data/features/online-status.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D yC","260":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC","516":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L"},E:{"1":"aB K E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","1025":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD","4":"PC"},G:{"1":"E xC OD PD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND","1025":"QD"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"A","132":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Online/offline status",D:true};
Index: de_modules/caniuse-lite/data/features/opus.js
===================================================================
--- node_modules/caniuse-lite/data/features/opus.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB"},E:{"2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","132":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC","260":"mC","516":"nC FD TC oC pC qC","1028":"rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N O P bB ID JD KD LD OC wC MD PC"},G:{"1":"rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","132":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC","260":"mC","516":"nC jD TC oC pC qC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Opus audio format",D:true};
Index: de_modules/caniuse-lite/data/features/orientation-sensor.js
===================================================================
--- node_modules/caniuse-lite/data/features/orientation-sensor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","194":"4B VC 5B WC 6B 7B 8B 9B AC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"Orientation Sensor",D:true};
Index: de_modules/caniuse-lite/data/features/outline.js
===================================================================
--- node_modules/caniuse-lite/data/features/outline.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","260":"E","388":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","388":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD","129":"PC","260":"F B ID JD KD LD OC wC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"C H PC","260":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"388":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS outline properties",D:true};
Index: de_modules/caniuse-lite/data/features/pad-start-end.js
===================================================================
--- node_modules/caniuse-lite/data/features/pad-start-end.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()",D:true};
Index: de_modules/caniuse-lite/data/features/page-transition-events.js
===================================================================
--- node_modules/caniuse-lite/data/features/page-transition-events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"PageTransitionEvent",D:true};
Index: de_modules/caniuse-lite/data/features/pagevisibility.js
===================================================================
--- node_modules/caniuse-lite/data/features/pagevisibility.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C","33":"A B C L M G N O"},D:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L","33":"9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B C ID JD KD LD OC wC MD","33":"G N O P bB"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","33":"qD rD"},J:{"1":"A","2":"D"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Page Visibility",D:true};
Index: de_modules/caniuse-lite/data/features/passive-event-listener.js
===================================================================
--- node_modules/caniuse-lite/data/features/passive-event-listener.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"Passive event listeners",D:true};
Index: de_modules/caniuse-lite/data/features/passkeys.js
===================================================================
--- node_modules/caniuse-lite/data/features/passkeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},C:{"1":"5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},E:{"1":"eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC"},F:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f ID JD KD LD OC wC MD PC"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"AB BB CB DB EB FB GB HB IB","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"9"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"Passkeys",D:true};
Index: de_modules/caniuse-lite/data/features/passwordrules.js
===================================================================
--- node_modules/caniuse-lite/data/features/passwordrules.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","16":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 3C 4C","16":"0C 1C 2C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"YC ZC NC"},E:{"1":"C L PC","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC OC","16":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ID JD KD LD OC wC MD PC","16":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"16":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","16":"I"},J:{"2":"D","16":"A"},K:{"2":"A B C OC wC PC","16":"H"},L:{"16":"I"},M:{"16":"NC"},N:{"2":"A","16":"B"},O:{"16":"QC"},P:{"2":"J sD tD","16":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D 6D"}},B:1,C:"Password Rules",D:false};
Index: de_modules/caniuse-lite/data/features/path2d.js
===================================================================
--- node_modules/caniuse-lite/data/features/path2d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L","132":"M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C","132":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},D:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","132":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C 7C","132":"E F 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB ID JD KD LD OC wC MD PC","132":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","16":"E","132":"RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","132":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Path2D",D:true};
Index: de_modules/caniuse-lite/data/features/payment-request.js
===================================================================
--- node_modules/caniuse-lite/data/features/payment-request.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L","322":"M","8196":"G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 3C 4C","4162":"1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B","16452":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","194":"zB 0B 1B 2B 3B 4B","1090":"VC 5B","8196":"WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","514":"A B bC","8196":"C OC"},F:{"1":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB ID JD KD LD OC wC MD PC","194":"mB nB oB pB qB rB sB tB","8196":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD","514":"UD VD WD","8196":"XD YD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"2049":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J","8196":"sD tD uD vD wD bC xD"},Q:{"8196":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:2,C:"Payment Request API",D:true};
Index: de_modules/caniuse-lite/data/features/pdf-viewer.js
===================================================================
--- node_modules/caniuse-lite/data/features/pdf-viewer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"16":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"Built-in PDF viewer",D:true};
Index: de_modules/caniuse-lite/data/features/permissions-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/permissions-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Permissions API",D:true};
Index: de_modules/caniuse-lite/data/features/permissions-policy.js
===================================================================
--- node_modules/caniuse-lite/data/features/permissions-policy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","258":"Q H R S T U","322":"V W","388":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC 3C 4C","258":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","258":"5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U","322":"V W","388":"0 1 2 3 4 5 6 7 8 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC","258":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB ID JD KD LD OC wC MD PC","258":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC","322":"GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d","388":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD","258":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","258":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","388":"H"},L:{"388":"I"},M:{"258":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"J sD tD uD","258":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"258":"3D"},R:{"388":"4D"},S:{"2":"5D","258":"6D"}},B:5,C:"Permissions Policy",D:true};
Index: de_modules/caniuse-lite/data/features/picture-in-picture.js
===================================================================
--- node_modules/caniuse-lite/data/features/picture-in-picture.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC 3C 4C","132":"0 1 2 3 4 5 6 7 8 GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","1090":"BC","1412":"FC","1668":"CC DC EC"},D:{"1":"0 1 2 3 4 5 6 7 8 EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC","2114":"DC"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","4100":"A B C L bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB ID JD KD LD OC wC MD PC","8196":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","4100":"SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"16388":"I"},M:{"16388":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"Picture-in-Picture",D:true};
Index: de_modules/caniuse-lite/data/features/picture.js
===================================================================
--- node_modules/caniuse-lite/data/features/picture.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 3C 4C","578":"gB hB iB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB","194":"jB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC","322":"DB"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Picture element",D:true};
Index: de_modules/caniuse-lite/data/features/ping.js
===================================================================
--- node_modules/caniuse-lite/data/features/ping.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"2":"zC","194":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"194":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"194":"5D 6D"}},B:1,C:"Ping attribute",D:true};
Index: de_modules/caniuse-lite/data/features/png-alpha.js
===================================================================
--- node_modules/caniuse-lite/data/features/png-alpha.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"D E F A B","2":"yC","8":"K"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"PNG alpha transparency",D:true};
Index: de_modules/caniuse-lite/data/features/pointer-events.js
===================================================================
--- node_modules/caniuse-lite/data/features/pointer-events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:7,C:"CSS pointer-events (for HTML)",D:true};
Index: de_modules/caniuse-lite/data/features/pointer.js
===================================================================
--- node_modules/caniuse-lite/data/features/pointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F yC","164":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C","8":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB","328":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},D:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB","8":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","584":"yB zB 0B"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","8":"D E F A B C 7C 8C 9C bC OC","1096":"PC"},F:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","8":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB","584":"lB mB nB"},G:{"1":"bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD","6148":"aD"},H:{"2":"lD"},I:{"1":"I","8":"UC J mD nD oD pD xC qD rD"},J:{"8":"D A"},K:{"1":"H","2":"A","8":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","36":"A"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"sD","8":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","328":"5D"}},B:2,C:"Pointer events",D:true};
Index: de_modules/caniuse-lite/data/features/pointerlock.js
===================================================================
--- node_modules/caniuse-lite/data/features/pointerlock.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L 3C 4C","33":"9 M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G","33":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB","66":"9 N O P bB AB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","16":"H"},L:{"2":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"16":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Pointer Lock API",D:true};
Index: de_modules/caniuse-lite/data/features/portals.js
===================================================================
--- node_modules/caniuse-lite/data/features/portals.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T","322":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","450":"U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","194":"JC KC LC MC Q H R S T","322":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","450":"U"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC","194":"6B 7B 8B 9B AC BC CC DC EC FC GC","322":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"450":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Portals",D:true};
Index: de_modules/caniuse-lite/data/features/prefers-color-scheme.js
===================================================================
--- node_modules/caniuse-lite/data/features/prefers-color-scheme.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},E:{"1":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"prefers-color-scheme media query",D:true};
Index: de_modules/caniuse-lite/data/features/prefers-reduced-motion.js
===================================================================
--- node_modules/caniuse-lite/data/features/prefers-reduced-motion.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"prefers-reduced-motion media query",D:true};
Index: de_modules/caniuse-lite/data/features/progress.js
===================================================================
--- node_modules/caniuse-lite/data/features/progress.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F ID JD KD LD"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","132":"QD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"progress element",D:true};
Index: de_modules/caniuse-lite/data/features/promise-finally.js
===================================================================
--- node_modules/caniuse-lite/data/features/promise-finally.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"Promise.prototype.finally",D:true};
Index: de_modules/caniuse-lite/data/features/promises.js
===================================================================
--- node_modules/caniuse-lite/data/features/promises.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"8":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","4":"GB HB","8":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"eB","8":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB K D 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","4":"bB","8":"F B C G N O P ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC OD PD QD"},H:{"8":"lD"},I:{"1":"I rD","8":"UC J mD nD oD pD xC qD"},J:{"8":"D A"},K:{"1":"H","8":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Promises",D:true};
Index: de_modules/caniuse-lite/data/features/proximity.js
===================================================================
--- node_modules/caniuse-lite/data/features/proximity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"5D 6D"}},B:4,C:"Proximity API",D:true};
Index: de_modules/caniuse-lite/data/features/proxy.js
===================================================================
--- node_modules/caniuse-lite/data/features/proxy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P kB lB mB nB oB pB qB rB sB tB uB","66":"9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC","66":"9 G N O P bB AB BB CB DB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Proxy object",D:true};
Index: de_modules/caniuse-lite/data/features/publickeypinning.js
===================================================================
--- node_modules/caniuse-lite/data/features/publickeypinning.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B","2":"0 1 2 3 4 5 6 7 8 F B C G N O P bB AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","4":"CB","16":"9 AB BB DB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"J sD tD uD vD wD bC","2":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"5D","2":"6D"}},B:6,C:"HTTP Public Key Pinning",D:true};
Index: de_modules/caniuse-lite/data/features/push-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/push-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"O P","2":"C L M G N","257":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB 3C 4C","257":"0 1 2 3 4 5 6 7 8 qB sB tB uB vB wB xB zB 0B 1B 2B 3B 4B VC WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","1281":"rB yB 5B"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB","257":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","388":"qB rB sB tB uB vB"},E:{"2":"J aB K 5C aC 6C 7C","514":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC","4609":"TC oC pC qC rC GD sC tC uC vC HD","6660":"eC fC gC hC iC ED SC jC kC lC mC nC FD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB ID JD KD LD OC wC MD PC","16":"jB kB lB mB nB","257":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","8196":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"2":"4D"},S:{"257":"5D 6D"}},B:5,C:"Push API",D:true};
Index: de_modules/caniuse-lite/data/features/queryselector.js
===================================================================
--- node_modules/caniuse-lite/data/features/queryselector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"yC","8":"K D","132":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","8":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","8":"F ID"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"querySelector/querySelectorAll",D:true};
Index: de_modules/caniuse-lite/data/features/readonly-attr.js
===================================================================
--- node_modules/caniuse-lite/data/features/readonly-attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","16":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ID","132":"B C JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","132":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"257":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"readonly attribute of input and textarea elements",D:true};
Index: de_modules/caniuse-lite/data/features/referrer-policy.js
===================================================================
--- node_modules/caniuse-lite/data/features/referrer-policy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P","513":"Q H R S T"},C:{"1":"W X Y Z a","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C","513":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V","2049":"0 1 2 3 4 5 6 7 8 b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB","260":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B","513":"WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T"},E:{"2":"J aB K D 5C aC 6C 7C","132":"E F A B 8C 9C bC","513":"C OC PC","1025":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","1537":"L M AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","513":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},G:{"2":"aC ND xC OD PD QD","132":"E RD SD TD UD VD WD XD","513":"YD ZD aD bD","1025":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","1537":"cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2049":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J","513":"sD tD uD vD wD bC xD yD zD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"513":"5D 6D"}},B:4,C:"Referrer Policy",D:true};
Index: de_modules/caniuse-lite/data/features/registerprotocolhandler.js
===================================================================
--- node_modules/caniuse-lite/data/features/registerprotocolhandler.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","129":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC"},D:{"2":"J aB K D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B ID JD KD LD OC wC","129":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D","129":"A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:1,C:"Custom protocol handling",D:true};
Index: de_modules/caniuse-lite/data/features/rel-noopener.js
===================================================================
--- node_modules/caniuse-lite/data/features/rel-noopener.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"rel=noopener",D:true};
Index: de_modules/caniuse-lite/data/features/rel-noreferrer.js
===================================================================
--- node_modules/caniuse-lite/data/features/rel-noreferrer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M G"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Link type \"noreferrer\"",D:true};
Index: de_modules/caniuse-lite/data/features/rellist.js
===================================================================
--- node_modules/caniuse-lite/data/features/rellist.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N","132":"O"},C:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","132":"wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB ID JD KD LD OC wC MD PC","132":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","132":"sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"relList (DOMTokenList)",D:true};
Index: de_modules/caniuse-lite/data/features/rem.js
===================================================================
--- node_modules/caniuse-lite/data/features/rem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E yC","132":"F A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"E ND xC PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC","260":"OD"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"rem (root em) units",D:true};
Index: de_modules/caniuse-lite/data/features/requestanimationframe.js
===================================================================
--- node_modules/caniuse-lite/data/features/requestanimationframe.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","33":"9 B C L M G N O P bB AB BB","164":"J aB K D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F","33":"BB CB","164":"9 P bB AB","420":"A B C L M G N O"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","33":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","33":"PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"requestAnimationFrame",D:true};
Index: de_modules/caniuse-lite/data/features/requestidlecallback.js
===================================================================
--- node_modules/caniuse-lite/data/features/requestidlecallback.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C","194":"zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC","322":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC"},F:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD","322":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"requestIdleCallback",D:true};
Index: de_modules/caniuse-lite/data/features/resizeobserver.js
===================================================================
--- node_modules/caniuse-lite/data/features/resizeobserver.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","194":"0B 1B 2B 3B 4B VC 5B WC 6B 7B"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC","66":"L"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC","194":"nB oB pB qB rB sB tB uB vB wB xB"},G:{"1":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"Resize Observer",D:true};
Index: de_modules/caniuse-lite/data/features/resource-timing.js
===================================================================
--- node_modules/caniuse-lite/data/features/resource-timing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C","194":"dB eB fB gB"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Resource Timing (basic support)",D:true};
Index: de_modules/caniuse-lite/data/features/rest-parameters.js
===================================================================
--- node_modules/caniuse-lite/data/features/rest-parameters.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB","194":"qB rB sB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB ID JD KD LD OC wC MD PC","194":"dB eB fB"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Rest parameters",D:true};
Index: de_modules/caniuse-lite/data/features/rtcpeerconnection.js
===================================================================
--- node_modules/caniuse-lite/data/features/rtcpeerconnection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","260":"G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","33":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB","33":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N O ID JD KD LD OC wC MD PC","33":"9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"WebRTC Peer-to-peer connections",D:true};
Index: de_modules/caniuse-lite/data/features/ruby.js
===================================================================
--- node_modules/caniuse-lite/data/features/ruby.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"4":"K D E yC","132":"F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C"},D:{"4":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J"},E:{"4":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J 5C aC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B C ID JD KD LD OC wC MD PC"},G:{"4":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC"},H:{"8":"lD"},I:{"4":"UC J I pD xC qD rD","8":"mD nD oD"},J:{"4":"A","8":"D"},K:{"4":"H","8":"A B C OC wC PC"},L:{"4":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"4":"3D"},R:{"4":"4D"},S:{"1":"5D 6D"}},B:1,C:"Ruby annotation",D:true};
Index: de_modules/caniuse-lite/data/features/run-in.js
===================================================================
--- node_modules/caniuse-lite/data/features/run-in.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"K D yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB","2":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K 6C","2":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"7C","129":"J 5C aC"},F:{"1":"F B C G N O P ID JD KD LD OC wC MD PC","2":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ND xC OD PD QD","2":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","129":"aC"},H:{"1":"lD"},I:{"1":"UC J mD nD oD pD xC qD","2":"I rD"},J:{"1":"D A"},K:{"1":"A B C OC wC PC","2":"H"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"display: run-in",D:true};
Index: de_modules/caniuse-lite/data/features/same-site-cookie-attribute.js
===================================================================
--- node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","388":"B"},B:{"1":"P Q H R S T U","2":"C L M G","129":"N O","513":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 3C 4C"},D:{"1":"xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","513":"0 1 2 3 4 5 6 7 8 H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC OC","2052":"M BD","3076":"C L PC AD"},F:{"1":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB ID JD KD LD OC wC MD PC","513":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD","2052":"YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","513":"H"},L:{"513":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"16":"3D"},R:{"513":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"'SameSite' cookie attribute",D:true};
Index: de_modules/caniuse-lite/data/features/screen-orientation.js
===================================================================
--- node_modules/caniuse-lite/data/features/screen-orientation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","36":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O 3C 4C","36":"9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A","36":"B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","16":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"Screen Orientation",D:true};
Index: de_modules/caniuse-lite/data/features/script-async.js
===================================================================
--- node_modules/caniuse-lite/data/features/script-async.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","132":"aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"async attribute for external scripts",D:true};
Index: de_modules/caniuse-lite/data/features/script-defer.js
===================================================================
--- node_modules/caniuse-lite/data/features/script-defer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","132":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","257":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"defer attribute for external scripts",D:true};
Index: de_modules/caniuse-lite/data/features/scrollintoview.js
===================================================================
--- node_modules/caniuse-lite/data/features/scrollintoview.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","132":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","132":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","132":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD KD LD","16":"B OC wC","132":"9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB MD PC"},G:{"1":"RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC","132":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"1":"I","16":"mD nD","132":"UC J oD pD xC qD rD"},J:{"132":"D A"},K:{"1":"H","132":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J sD tD uD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"scrollIntoView",D:true};
Index: de_modules/caniuse-lite/data/features/scrollintoviewifneeded.js
===================================================================
--- node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Element.scrollIntoViewIfNeeded()",D:true};
Index: de_modules/caniuse-lite/data/features/sdch.js
===================================================================
--- node_modules/caniuse-lite/data/features/sdch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","2":"0 1 2 3 4 5 6 7 8 VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","2":"0 1 2 3 4 5 6 7 8 F B C HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding",D:true};
Index: de_modules/caniuse-lite/data/features/selection-api.js
===================================================================
--- node_modules/caniuse-lite/data/features/selection-api.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","16":"yC","260":"K D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB 3C 4C","2180":"pB qB rB sB tB uB vB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B C ID JD KD LD OC wC MD PC"},G:{"16":"xC","132":"aC ND","516":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","16":"UC J mD nD oD pD","1025":"xC"},J:{"1":"A","16":"D"},K:{"1":"H","16":"A B C OC wC","132":"PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","16":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2180":"5D"}},B:5,C:"Selection API",D:true};
Index: de_modules/caniuse-lite/data/features/selectlist.js
===================================================================
--- node_modules/caniuse-lite/data/features/selectlist.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f","194":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f","194":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC ID JD KD LD OC wC MD PC","194":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","194":"H"},L:{"194":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Customizable Select element",D:true};
Index: de_modules/caniuse-lite/data/features/server-timing.js
===================================================================
--- node_modules/caniuse-lite/data/features/server-timing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","196":"5B WC 6B 7B","324":"8B"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","516":"L M G PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"Server Timing",D:true};
Index: de_modules/caniuse-lite/data/features/serviceworkers.js
===================================================================
--- node_modules/caniuse-lite/data/features/serviceworkers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","322":"G N"},C:{"1":"VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","194":"fB gB hB iB jB kB lB mB nB oB pB","1025":"0 1 2 3 4 5 6 7 8 qB sB tB uB vB wB xB zB 0B 1B 2B 3B 4B VC WC 6B 7B 8B 9B AC BC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB","1537":"rB yB 5B CC"},D:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB","4":"mB nB oB pB qB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB ID JD KD LD OC wC MD PC","4":"GB HB IB cB dB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","4":"I"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"Service Workers",D:true};
Index: de_modules/caniuse-lite/data/features/setimmediate.js
===================================================================
--- node_modules/caniuse-lite/data/features/setimmediate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"C L M G N O P","2":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Efficient Script Yielding: setImmediate()",D:true};
Index: de_modules/caniuse-lite/data/features/shadowdom.js
===================================================================
--- node_modules/caniuse-lite/data/features/shadowdom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"Q","2":"0 1 2 3 4 5 6 7 8 C L M G N O P H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","66":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B"},D:{"1":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"EB FB GB HB IB cB dB eB fB gB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC","2":"0 1 2 3 4 5 6 7 8 F B C BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC","33":"qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"sD tD uD vD wD bC xD yD","2":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D","33":"J"},Q:{"1":"3D"},R:{"2":"4D"},S:{"1":"5D","2":"6D"}},B:7,C:"Shadow DOM (deprecated V0 spec)",D:true};
Index: de_modules/caniuse-lite/data/features/shadowdomv1.js
===================================================================
--- node_modules/caniuse-lite/data/features/shadowdomv1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 3C 4C","322":"4B","578":"VC 5B WC 6B"},D:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"A B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD","132":"UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","4":"sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"Shadow DOM (V1)",D:true};
Index: de_modules/caniuse-lite/data/features/sharedarraybuffer.js
===================================================================
--- node_modules/caniuse-lite/data/features/sharedarraybuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"Q H R S T U V W X Y Z","2":"C L M G","194":"N O P","513":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3C 4C","194":"3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC","450":"IC JC KC LC MC","513":"0 1 2 3 4 5 6 7 8 Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC","194":"5B WC 6B 7B 8B 9B AC BC","513":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A 5C aC 6C 7C 8C 9C","194":"B C L M G bC OC PC AD BD CD","513":"cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC LC","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB ID JD KD LD OC wC MD PC","194":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","513":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD","194":"VD WD XD YD ZD aD bD cD dD eD fD gD","513":"cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","513":"H"},L:{"513":"I"},M:{"513":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"J sD tD uD vD wD bC xD yD zD 0D","513":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"513":"4D"},S:{"2":"5D","513":"6D"}},B:6,C:"Shared Array Buffer",D:true};
Index: de_modules/caniuse-lite/data/features/sharedworkers.js
===================================================================
--- node_modules/caniuse-lite/data/features/sharedworkers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"aB K 6C RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J D E F A B C L M G 5C aC 7C 8C 9C bC OC PC AD BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID JD KD"},G:{"1":"OD PD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"B C OC wC PC","2":"H","16":"A"},L:{"2":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"J","2":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"5D 6D"}},B:1,C:"Shared Web Workers",D:true};
Index: de_modules/caniuse-lite/data/features/sni.js
===================================================================
--- node_modules/caniuse-lite/data/features/sni.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K yC","132":"D E"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC"},H:{"1":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Server Name Indication",D:true};
Index: de_modules/caniuse-lite/data/features/spdy.js
===================================================================
--- node_modules/caniuse-lite/data/features/spdy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F A yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","2":"0 1 2 3 4 5 6 7 8 zC UC J aB K D E F A B C xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","2":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"E F A B C 9C bC OC","2":"J aB K D 5C aC 6C 7C 8C","129":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB oB qB PC","2":"0 1 2 3 4 5 6 7 8 F B C mB nB pB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD"},G:{"1":"E RD SD TD UD VD WD XD YD","2":"aC ND xC OD PD QD","257":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J pD xC qD rD","2":"I mD nD oD"},J:{"2":"D A"},K:{"1":"PC","2":"A B C H OC wC"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"B","2":"A"},O:{"2":"QC"},P:{"1":"J","2":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"5D","2":"6D"}},B:7,C:"SPDY protocol",D:true};
Index: de_modules/caniuse-lite/data/features/speech-recognition.js
===================================================================
--- node_modules/caniuse-lite/data/features/speech-recognition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","514":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C","322":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB","164":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD","1060":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB ID JD KD LD OC wC MD PC","514":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD","1060":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","164":"H"},L:{"164":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"164":"QC"},P:{"164":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"164":"3D"},R:{"164":"4D"},S:{"322":"5D 6D"}},B:7,C:"Speech Recognition API",D:true};
Index: de_modules/caniuse-lite/data/features/speech-synthesis.js
===================================================================
--- node_modules/caniuse-lite/data/features/speech-synthesis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"M G N O P","2":"C L","257":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB 3C 4C","194":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},D:{"1":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB","257":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","2":"9 F B C G N O P bB AB BB CB DB EB FB ID JD KD LD OC wC MD PC","257":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"2":"4D"},S:{"1":"5D 6D"}},B:7,C:"Speech Synthesis API",D:true};
Index: de_modules/caniuse-lite/data/features/spellcheck-attribute.js
===================================================================
--- node_modules/caniuse-lite/data/features/spellcheck-attribute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"4":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"4":"lD"},I:{"4":"UC J I mD nD oD pD xC qD rD"},J:{"1":"A","4":"D"},K:{"4":"A B C H OC wC PC"},L:{"4":"I"},M:{"4":"NC"},N:{"4":"A B"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"4":"4D"},S:{"2":"5D 6D"}},B:1,C:"Spellcheck attribute",D:true};
Index: de_modules/caniuse-lite/data/features/sql-storage.js
===================================================================
--- node_modules/caniuse-lite/data/features/sql-storage.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"Q H R S T U V W X Y Z a b c d e f g h i j","2":"7 8 C L M G N O P JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"k l m n o p q r s","385":"0 1 2 3 4 5 6 t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j","2":"7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","129":"k l m n o p q r s","385":"0 1 t u v w x y z","897":"2 3 4 5 6"},E:{"1":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC","2":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z KD LD OC wC MD PC","2":"0 1 2 3 4 5 6 7 8 F t u v w x y z ID JD","257":"a b c d e f g h i j k l m n o p q r s"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD","2":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J mD nD oD pD xC qD rD","2":"I"},J:{"1":"D A"},K:{"1":"B C OC wC PC","2":"A","257":"H"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Web SQL Database",D:true};
Index: de_modules/caniuse-lite/data/features/srcset.js
===================================================================
--- node_modules/caniuse-lite/data/features/srcset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C","514":"L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB 3C 4C","194":"eB fB gB hB iB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB","260":"gB hB iB jB"},E:{"2":"J aB K D 5C aC 6C 7C","260":"E 8C","1028":"F A 9C bC","3076":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB ID JD KD LD OC wC MD PC","260":"AB BB CB DB"},G:{"2":"aC ND xC OD PD QD","260":"E RD","1028":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Srcset and sizes attributes",D:true};
Index: de_modules/caniuse-lite/data/features/stream.js
===================================================================
--- node_modules/caniuse-lite/data/features/stream.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N 3C 4C","129":"iB jB kB lB mB nB","420":"9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB","420":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B G N O ID JD KD LD OC wC MD","420":"9 C P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD","513":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","1537":"WD XD YD ZD aD bD cD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","420":"A"},K:{"1":"H","2":"A B OC wC","420":"C PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","420":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:4,C:"getUserMedia/Stream API",D:true};
Index: de_modules/caniuse-lite/data/features/streams.js
===================================================================
--- node_modules/caniuse-lite/data/features/streams.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","130":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C L","260":"M G","1028":"Q H R S T U V W X","5124":"N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3C 4C","5124":"j k","7172":"9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i","7746":"3B 4B VC 5B WC 6B 7B 8B"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","260":"yB zB 0B 1B 2B 3B 4B","1028":"VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X"},E:{"2":"J aB K D E F 5C aC 6C 7C 8C 9C","1028":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","3076":"A B C L M bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB ID JD KD LD OC wC MD PC","260":"lB mB nB oB pB qB rB","1028":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},G:{"2":"E aC ND xC OD PD QD RD SD TD","16":"UD","1028":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 1D RC SC TC 2D","2":"J sD tD","1028":"uD vD wD bC xD yD zD 0D"},Q:{"1028":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:1,C:"Streams",D:true};
Index: de_modules/caniuse-lite/data/features/stricttransportsecurity.js
===================================================================
--- node_modules/caniuse-lite/data/features/stricttransportsecurity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A yC","129":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F B ID JD KD LD OC wC MD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Strict Transport Security",D:true};
Index: de_modules/caniuse-lite/data/features/style-scoped.js
===================================================================
--- node_modules/caniuse-lite/data/features/style-scoped.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","322":"1B 2B 3B 4B VC 5B"},D:{"2":"0 1 2 3 4 5 6 7 8 J aB K D E F A B C L M G N O P bB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","194":"9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"5D","2":"6D"}},B:7,C:"Scoped attribute",D:true};
Index: de_modules/caniuse-lite/data/features/subresource-bundling.js
===================================================================
--- node_modules/caniuse-lite/data/features/subresource-bundling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Subresource Loading with Web Bundles",D:false};
Index: de_modules/caniuse-lite/data/features/subresource-integrity.js
===================================================================
--- node_modules/caniuse-lite/data/features/subresource-integrity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","194":"WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Subresource Integrity",D:true};
Index: de_modules/caniuse-lite/data/features/svg-css.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-css.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","516":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","260":"9 J aB K D E F A B C L M G N O P bB AB BB CB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"J"},E:{"1":"aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C","132":"J aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"aC ND"},H:{"260":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"H","260":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"SVG in CSS backgrounds",D:true};
Index: de_modules/caniuse-lite/data/features/svg-filters.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-filters.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J","4":"aB K D"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"SVG filters",D:true};
Index: de_modules/caniuse-lite/data/features/svg-fonts.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-fonts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"F A B yC","8":"K D E"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB","2":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","130":"kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C"},F:{"1":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC","2":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","130":"EB FB GB HB IB cB dB eB fB gB hB iB"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"258":"lD"},I:{"1":"UC J pD xC qD rD","2":"I mD nD oD"},J:{"1":"D A"},K:{"1":"A B C OC wC PC","2":"H"},L:{"130":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"J","130":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"130":"4D"},S:{"2":"5D 6D"}},B:2,C:"SVG fonts",D:true};
Index: de_modules/caniuse-lite/data/features/svg-fragment.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-fragment.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","132":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D F A B 5C aC 6C 7C 9C bC","132":"E 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"9 G N O P bB AB BB","4":"B C JD KD LD OC wC MD","16":"F ID","132":"CB DB EB FB GB HB IB cB dB eB fB gB hB iB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD SD TD UD VD WD","132":"E RD"},H:{"1":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D","132":"A"},K:{"1":"H PC","4":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"SVG fragment identifiers",D:true};
Index: de_modules/caniuse-lite/data/features/svg-html.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-html.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","388":"F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC","4":"UC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"5C aC","4":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"4":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC","4":"I qD rD"},J:{"1":"A","2":"D"},K:{"4":"A B C H OC wC PC"},L:{"4":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"4":"3D"},R:{"4":"4D"},S:{"1":"5D 6D"}},B:2,C:"SVG effects for HTML",D:true};
Index: de_modules/caniuse-lite/data/features/svg-html5.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-html5.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E","129":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","8":"J aB K"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"J aB 5C aC","129":"K D E 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"B LD OC wC","8":"F ID JD KD"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","8":"aC ND xC","129":"E OD PD QD RD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"mD nD oD","129":"UC J pD xC"},J:{"1":"A","129":"D"},K:{"1":"C H PC","8":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"129":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Inline SVG in HTML5",D:true};
Index: de_modules/caniuse-lite/data/features/svg-img.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-img.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C","4":"aC","132":"J aB K D E 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"E aC ND xC OD PD QD RD"},H:{"1":"lD"},I:{"1":"I qD rD","2":"mD nD oD","132":"UC J pD xC"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"SVG in HTML img element",D:true};
Index: de_modules/caniuse-lite/data/features/svg-smil.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg-smil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"J"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"5C aC","132":"J aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"aC ND xC OD"},H:{"2":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"SVG SMIL animation",D:true};
Index: de_modules/caniuse-lite/data/features/svg.js
===================================================================
--- node_modules/caniuse-lite/data/features/svg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E","772":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","513":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","4":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"I qD rD","2":"mD nD oD","132":"UC J pD xC"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"257":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"SVG (basic support)",D:true};
Index: de_modules/caniuse-lite/data/features/sxg.js
===================================================================
--- node_modules/caniuse-lite/data/features/sxg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC","132":"FC GC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:6,C:"Signed HTTP Exchanges (SXG)",D:true};
Index: de_modules/caniuse-lite/data/features/tabindex-attr.js
===================================================================
--- node_modules/caniuse-lite/data/features/tabindex-attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"D E F A B","16":"K yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"16":"zC UC 3C 4C","129":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"16":"J aB 5C aC","257":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"769":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"16":"lD"},I:{"16":"UC J I mD nD oD pD xC qD rD"},J:{"16":"D A"},K:{"1":"H","16":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"16":"A B"},O:{"1":"QC"},P:{"16":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"129":"5D 6D"}},B:1,C:"tabindex global attribute",D:true};
Index: de_modules/caniuse-lite/data/features/template-literals.js
===================================================================
--- node_modules/caniuse-lite/data/features/template-literals.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"A B L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C","129":"C"},F:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB ID JD KD LD OC wC MD PC"},G:{"1":"SD TD UD VD WD XD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD","129":"YD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ES6 Template Literals (Template Strings)",D:true};
Index: de_modules/caniuse-lite/data/features/template.js
===================================================================
--- node_modules/caniuse-lite/data/features/template.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C","388":"L M"},C:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB","132":"FB GB HB IB cB dB eB fB gB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D 5C aC 6C","388":"E 8C","514":"7C"},F:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","132":"9 G N O P bB AB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD","388":"E RD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"HTML templates",D:true};
Index: de_modules/caniuse-lite/data/features/temporal.js
===================================================================
--- node_modules/caniuse-lite/data/features/temporal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB 3C 4C","194":"SB TB UB VB"},D:{"1":"YC ZC NC","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"Temporal",D:true};
Index: de_modules/caniuse-lite/data/features/testfeat.js
===================================================================
--- node_modules/caniuse-lite/data/features/testfeat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E A B yC","16":"F"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","16":"J aB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"B C"},E:{"2":"J K 5C aC 6C","16":"aB D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD wC MD PC","16":"OC"},G:{"2":"aC ND xC OD PD","16":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD pD xC qD rD","16":"oD"},J:{"2":"A","16":"D"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Test feature - updated",D:false};
Index: de_modules/caniuse-lite/data/features/text-decoration.js
===================================================================
--- node_modules/caniuse-lite/data/features/text-decoration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","2052":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"zC UC J aB 3C 4C","1028":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","1060":"9 K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB","226":"FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","2052":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D 5C aC 6C 7C","772":"L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","804":"E F A B C 9C bC OC","1316":"8C"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB ID JD KD LD OC wC MD PC","226":"hB iB jB kB lB mB nB oB pB","2052":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"aC ND xC OD PD QD","292":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","2052":"H"},L:{"2052":"I"},M:{"1028":"NC"},N:{"2":"A B"},O:{"2052":"QC"},P:{"2":"J sD tD","2052":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2052":"3D"},R:{"2052":"4D"},S:{"1028":"5D 6D"}},B:4,C:"text-decoration styling",D:true};
Index: de_modules/caniuse-lite/data/features/text-emphasis.js
===================================================================
--- node_modules/caniuse-lite/data/features/text-emphasis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","164":"Q H R S T U V W X Y Z a b c d e f g h"},C:{"1":"0 1 2 3 4 5 6 7 8 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB 3C 4C","322":"rB"},D:{"1":"0 1 2 3 4 5 6 7 8 i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB","164":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C","164":"D 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","164":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC","164":"qD rD"},J:{"2":"D","164":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB TC 2D","164":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC"},Q:{"164":"3D"},R:{"164":"4D"},S:{"1":"5D 6D"}},B:4,C:"text-emphasis styling",D:true};
Index: de_modules/caniuse-lite/data/features/text-overflow.js
===================================================================
--- node_modules/caniuse-lite/data/features/text-overflow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B","2":"yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","8":"zC UC J aB K 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","33":"F ID JD KD LD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"H PC","33":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"CSS3 Text-overflow",D:true};
Index: de_modules/caniuse-lite/data/features/text-size-adjust.js
===================================================================
--- node_modules/caniuse-lite/data/features/text-size-adjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","258":"FB"},E:{"2":"J aB K D E F A B C L M G 5C aC 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","258":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 pB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB qB ID JD KD LD OC wC MD PC"},G:{"2":"aC ND xC","33":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"33":"NC"},N:{"161":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS text-size-adjust",D:true};
Index: de_modules/caniuse-lite/data/features/text-stroke.js
===================================================================
--- node_modules/caniuse-lite/data/features/text-stroke.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M","33":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","161":"G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 3C 4C","161":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","450":"uB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"33":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","33":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"33":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","36":"aC"},H:{"2":"lD"},I:{"2":"UC","33":"J I mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"2":"A B C OC wC PC","33":"H"},L:{"33":"I"},M:{"161":"NC"},N:{"2":"A B"},O:{"33":"QC"},P:{"33":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"33":"3D"},R:{"33":"4D"},S:{"161":"5D 6D"}},B:7,C:"CSS text-stroke and text-fill",D:true};
Index: de_modules/caniuse-lite/data/features/textcontent.js
===================================================================
--- node_modules/caniuse-lite/data/features/textcontent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Node.textContent",D:true};
Index: de_modules/caniuse-lite/data/features/textencoder.js
===================================================================
--- node_modules/caniuse-lite/data/features/textencoder.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P 3C 4C","132":"bB"},D:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"TextEncoder & TextDecoder",D:true};
Index: de_modules/caniuse-lite/data/features/tls1-1.js
===================================================================
--- node_modules/caniuse-lite/data/features/tls1-1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D yC","66":"E F A"},B:{"1":"C L M G N O P Q H R S T","2":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1540":"U V W X Y Z a b c d e f g"},C:{"1":"DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","66":"CB","129":"CC DC EC FC GC HC IC JC KC LC","388":"MC Q H R XC S T U V W X Y Z a b c d e f"},D:{"1":"BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T","2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","1540":"U V W X Y Z a b c d e f g"},E:{"1":"D E F A B C L 8C 9C bC OC PC","2":"J aB K 5C aC 6C 7C","513":"M AD","1028":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC PC","2":"0 1 2 3 4 5 6 7 8 F B C T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD","1540":"HC IC JC KC LC MC Q H R XC S"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD","2":"aC ND xC","1028":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"16":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"PC","2":"A B C H OC wC"},L:{"2":"I"},M:{"2":"NC"},N:{"1":"B","66":"A"},O:{"2":"QC"},P:{"1":"J sD tD uD vD wD","2":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"1":"5D 6D"}},B:7,C:"TLS 1.1",D:true};
Index: de_modules/caniuse-lite/data/features/tls1-2.js
===================================================================
--- node_modules/caniuse-lite/data/features/tls1-2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D yC","66":"E F A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB 3C 4C","66":"DB EB FB"},D:{"1":"0 1 2 3 4 5 6 7 8 IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F G ID","66":"B C JD KD LD OC wC MD PC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"H PC","2":"A B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","66":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"TLS 1.2",D:true};
Index: de_modules/caniuse-lite/data/features/tls1-3.js
===================================================================
--- node_modules/caniuse-lite/data/features/tls1-3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 3C 4C","132":"5B WC 6B","450":"xB yB zB 0B 1B 2B 3B 4B VC"},D:{"1":"0 1 2 3 4 5 6 7 8 EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","706":"0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","1028":"L PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC","706":"0B 1B 2B"},G:{"1":"ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:6,C:"TLS 1.3",D:true};
Index: de_modules/caniuse-lite/data/features/touch.js
===================================================================
--- node_modules/caniuse-lite/data/features/touch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","8":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","578":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","4":"J aB K D E F A B C L M G N O","194":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A","260":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:2,C:"Touch events",D:true};
Index: de_modules/caniuse-lite/data/features/transforms2d.js
===================================================================
--- node_modules/caniuse-lite/data/features/transforms2d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E","129":"A B","161":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","33":"J aB K D E F A B C L M G 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","33":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F ID JD","33":"9 B C G N O P bB AB BB KD LD OC wC MD"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","33":"UC J mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 2D Transforms",D:true};
Index: de_modules/caniuse-lite/data/features/transforms3d.js
===================================================================
--- node_modules/caniuse-lite/data/features/transforms3d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F 3C 4C","33":"A B C L M G"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B","33":"9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC","33":"J aB K D E 6C 7C 8C","257":"F A B C L M G 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","33":"E aC ND xC OD PD QD RD","257":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"mD nD oD","33":"UC J pD xC qD rD"},J:{"33":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:5,C:"CSS3 3D Transforms",D:true};
Index: de_modules/caniuse-lite/data/features/trusted-types.js
===================================================================
--- node_modules/caniuse-lite/data/features/trusted-types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC 3C 4C","194":"ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R"},E:{"1":"sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC ID JD KD LD OC wC MD PC"},G:{"1":"sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Trusted Types for DOM manipulation",D:true};
Index: de_modules/caniuse-lite/data/features/ttf.js
===================================================================
--- node_modules/caniuse-lite/data/features/ttf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JD KD LD OC wC MD PC","2":"F ID"},G:{"1":"E xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND"},H:{"2":"lD"},I:{"1":"UC J I nD oD pD xC qD rD","2":"mD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"TTF/OTF - TrueType and OpenType font support",D:true};
Index: de_modules/caniuse-lite/data/features/typedarrays.js
===================================================================
--- node_modules/caniuse-lite/data/features/typedarrays.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"B","2":"K D E F yC","132":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","260":"6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","260":"xC"},H:{"1":"lD"},I:{"1":"J I pD xC qD rD","2":"UC mD nD oD"},J:{"1":"A","2":"D"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"132":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Typed Arrays",D:true};
Index: de_modules/caniuse-lite/data/features/u2f.js
===================================================================
--- node_modules/caniuse-lite/data/features/u2f.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","513":"Q H R S T U V W X Y Z a b c d e f g h i j k l m n o"},C:{"1":"BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","322":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC v w"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","130":"kB lB mB","513":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g","578":"h i j k l m n o"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB nB ID JD KD LD OC wC MD PC","513":"0 1 2 3 4 5 6 7 8 mB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"1":"6D","322":"5D"}},B:7,C:"FIDO U2F API",D:true};
Index: de_modules/caniuse-lite/data/features/unhandledrejection.js
===================================================================
--- node_modules/caniuse-lite/data/features/unhandledrejection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","16":"WD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:1,C:"unhandledrejection/rejectionhandled events",D:true};
Index: de_modules/caniuse-lite/data/features/upgradeinsecurerequests.js
===================================================================
--- node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Upgrade Insecure Requests",D:true};
Index: de_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js
===================================================================
--- node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","66":"Q H R"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC","66":"IC JC KC LC MC Q H"},E:{"1":"eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC"},F:{"1":"0 1 2 3 4 5 6 7 8 CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ID JD KD LD OC wC MD PC","66":"AC BC"},G:{"1":"eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"URL Scroll-To-Text Fragment",D:true};
Index: de_modules/caniuse-lite/data/features/url.js
===================================================================
--- node_modules/caniuse-lite/data/features/url.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB","130":"CB DB EB FB GB HB IB cB dB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C 7C","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","130":"G N O P"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD","130":"QD"},H:{"2":"lD"},I:{"1":"I rD","2":"UC J mD nD oD pD xC","130":"qD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"URL API",D:true};
Index: de_modules/caniuse-lite/data/features/urlsearchparams.js
===================================================================
--- node_modules/caniuse-lite/data/features/urlsearchparams.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","132":"IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},D:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"B C L M G bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C"},F:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC"},G:{"1":"VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"URLSearchParams",D:true};
Index: de_modules/caniuse-lite/data/features/use-strict.js
===================================================================
--- node_modules/caniuse-lite/data/features/use-strict.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","132":"aB 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"1":"lD"},I:{"1":"UC J I pD xC qD rD","2":"mD nD oD"},J:{"1":"D A"},K:{"1":"C H wC PC","2":"A B OC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"ECMAScript 5 Strict Mode",D:true};
Index: de_modules/caniuse-lite/data/features/user-select-none.js
===================================================================
--- node_modules/caniuse-lite/data/features/user-select-none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","33":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","33":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","33":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","33":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"33":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","33":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB"},G:{"33":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","33":"UC J mD nD oD pD xC qD rD"},J:{"33":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"33":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","33":"J sD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","33":"5D"}},B:5,C:"CSS user-select: none",D:true};
Index: de_modules/caniuse-lite/data/features/user-timing.js
===================================================================
--- node_modules/caniuse-lite/data/features/user-timing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"User Timing API",D:true};
Index: de_modules/caniuse-lite/data/features/variable-fonts.js
===================================================================
--- node_modules/caniuse-lite/data/features/variable-fonts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 3C 4C","4609":"6B 7B 8B 9B AC BC CC DC EC","4674":"WC","5698":"5B","7490":"zB 0B 1B 2B 3B","7746":"4B VC","8705":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","4097":"AC","4290":"VC 5B WC","6148":"6B 7B 8B 9B"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","4609":"B C OC PC","8193":"L M AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB ID JD KD LD OC wC MD PC","4097":"zB","6148":"vB wB xB yB"},G:{"1":"aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD","4097":"WD XD YD ZD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"4097":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"J sD tD uD","4097":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:5,C:"Variable fonts",D:true};
Index: de_modules/caniuse-lite/data/features/vector-effect.js
===================================================================
--- node_modules/caniuse-lite/data/features/vector-effect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K D E F A B C L M"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","2":"F B ID JD KD LD OC wC"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"1":"lD"},I:{"1":"I qD rD","16":"UC J mD nD oD pD xC"},J:{"16":"D A"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"SVG vector-effect: non-scaling-stroke",D:true};
Index: de_modules/caniuse-lite/data/features/vibration.js
===================================================================
--- node_modules/caniuse-lite/data/features/vibration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB","2":"zC UC J aB K D E F A MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","33":"B C L M G"},D:{"1":"0 1 2 3 4 5 6 7 8 cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G N ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"Vibration API",D:true};
Index: de_modules/caniuse-lite/data/features/video.js
===================================================================
--- node_modules/caniuse-lite/data/features/video.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","260":"J aB K D E F A B C L M G N O P bB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","513":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1025":"E aC ND xC OD PD QD RD SD TD UD VD","1537":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","132":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Video element",D:true};
Index: de_modules/caniuse-lite/data/features/videotracks.js
===================================================================
--- node_modules/caniuse-lite/data/features/videotracks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"C L M G N O P","322":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","194":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB","322":"0 1 2 3 4 5 6 7 8 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K 5C aC 6C"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB ID JD KD LD OC wC MD PC","322":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","322":"H"},L:{"322":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"322":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"322":"3D"},R:{"322":"4D"},S:{"194":"5D 6D"}},B:1,C:"Video Tracks",D:true};
Index: de_modules/caniuse-lite/data/features/view-transitions.js
===================================================================
--- node_modules/caniuse-lite/data/features/view-transitions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB 3C 4C","194":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD"},F:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f ID JD KD LD OC wC MD PC"},G:{"1":"TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"CB DB EB FB GB HB IB","2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"View Transitions API (single-document)",D:true};
Index: de_modules/caniuse-lite/data/features/viewport-unit-variants.js
===================================================================
--- node_modules/caniuse-lite/data/features/viewport-unit-variants.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n","194":"o p q"},C:{"1":"0 1 2 3 4 5 6 7 8 k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i","194":"j k l m n o p q"},E:{"1":"dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC"},F:{"1":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z ID JD KD LD OC wC MD PC","194":"a b c"},G:{"1":"dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"AB BB CB DB EB FB GB HB IB","2":"9 J sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:5,C:"Small, Large, and Dynamic viewport units",D:true};
Index: de_modules/caniuse-lite/data/features/viewport-units.js
===================================================================
--- node_modules/caniuse-lite/data/features/viewport-units.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","132":"F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","260":"C L M G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M G N O P 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O P bB","260":"9 AB BB CB DB EB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C","260":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD","516":"QD","772":"PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"260":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"Viewport units: vw, vh, vmin, vmax",D:true};
Index: de_modules/caniuse-lite/data/features/wai-aria.js
===================================================================
--- node_modules/caniuse-lite/data/features/wai-aria.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","4":"E F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"4":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"5C aC","4":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"4":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"4":"lD"},I:{"2":"UC J mD nD oD pD xC","4":"I qD rD"},J:{"2":"D A"},K:{"4":"A B C H OC wC PC"},L:{"4":"I"},M:{"4":"NC"},N:{"4":"A B"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"4":"3D"},R:{"4":"4D"},S:{"4":"5D 6D"}},B:2,C:"WAI-ARIA Accessibility features",D:true};
Index: de_modules/caniuse-lite/data/features/wake-lock.js
===================================================================
--- node_modules/caniuse-lite/data/features/wake-lock.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","194":"Q H R S T U V W X Y"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C","322":"7 8"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC","194":"FC GC HC IC JC KC LC MC Q H R S T"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ID JD KD LD OC wC MD PC","194":"4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:4,C:"Screen Wake Lock API",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-bigint.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-bigint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T"},C:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly BigInt to i64 conversion in JS API",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-bulk-memory.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-bulk-memory.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Bulk Memory Operations",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-extended-const.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-extended-const.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},C:{"1":"0 1 2 3 4 5 6 7 8 v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},E:{"1":"mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC"},F:{"1":"0 1 2 3 4 5 6 7 8 j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i ID JD KD LD OC wC MD PC"},G:{"1":"mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"CB DB EB FB GB HB IB","2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Extended Constant Expressions",D:false};
Index: de_modules/caniuse-lite/data/features/wasm-gc.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-gc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 1 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Garbage Collection",D:false};
Index: de_modules/caniuse-lite/data/features/wasm-multi-memory.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-multi-memory.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 1 2 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"2 3 4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 1 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Multi-Memory",D:false};
Index: de_modules/caniuse-lite/data/features/wasm-multi-value.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-multi-value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T"},C:{"1":"0 1 2 3 4 5 6 7 8 MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T"},E:{"1":"M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC ID JD KD LD OC wC MD PC"},G:{"1":"bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Multi-Value",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-mutable-globals.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-mutable-globals.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B 5C aC 6C 7C 8C 9C bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B ID JD KD LD OC wC MD PC"},G:{"1":"YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Import/Export of Mutable Globals",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Non-trapping float-to-int Conversion",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-reference-types.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-reference-types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e"},C:{"1":"0 1 2 3 4 5 6 7 8 Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Reference Types",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-relaxed-simd.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g 3C 4C","194":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"CB DB EB FB GB HB IB","2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Relaxed SIMD",D:false};
Index: de_modules/caniuse-lite/data/features/wasm-signext.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-signext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Sign Extension Operators",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-simd.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-simd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z"},C:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z"},E:{"1":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC"},F:{"1":"0 1 2 3 4 5 6 7 8 LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ID JD KD LD OC wC MD PC"},G:{"1":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB RC SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly SIMD",D:true};
Index: de_modules/caniuse-lite/data/features/wasm-tail-calls.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-tail-calls.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"4 5 6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"CB DB EB FB GB HB IB","2":"9 J AB BB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Tail Calls",D:false};
Index: de_modules/caniuse-lite/data/features/wasm-threads.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm-threads.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},E:{"1":"G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L M 5C aC 6C 7C 8C 9C bC OC PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD vD wD bC"},Q:{"16":"3D"},R:{"16":"4D"},S:{"2":"5D","16":"6D"}},B:5,C:"WebAssembly Threads and Atomics",D:true};
Index: de_modules/caniuse-lite/data/features/wasm.js
===================================================================
--- node_modules/caniuse-lite/data/features/wasm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M","578":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB 3C 4C","194":"tB uB vB wB xB","1025":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","322":"xB yB zB 0B 1B 2B"},E:{"1":"B C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC"},F:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB ID JD KD LD OC wC MD PC","322":"kB lB mB nB oB pB"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","194":"5D"}},B:6,C:"WebAssembly",D:true};
Index: de_modules/caniuse-lite/data/features/wav.js
===================================================================
--- node_modules/caniuse-lite/data/features/wav.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z KD LD OC wC MD PC","2":"F ID JD"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","16":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"Wav audio format",D:true};
Index: de_modules/caniuse-lite/data/features/wbr-element.js
===================================================================
--- node_modules/caniuse-lite/data/features/wbr-element.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D yC","2":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","16":"F"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC"},H:{"1":"lD"},I:{"1":"UC J I oD pD xC qD rD","16":"mD nD"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"wbr (word break opportunity) element",D:true};
Index: de_modules/caniuse-lite/data/features/web-animation.js
===================================================================
--- node_modules/caniuse-lite/data/features/web-animation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","260":"Q H R S"},C:{"1":"0 1 2 3 4 5 6 7 8 R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB 3C 4C","260":"VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","516":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","580":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB","2049":"JC KC LC MC Q H"},D:{"1":"0 1 2 3 4 5 6 7 8 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB","132":"iB jB kB","260":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C bC","1090":"B C L OC PC","2049":"M AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB ID JD KD LD OC wC MD PC","132":"CB DB EB","260":"FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD","1090":"WD XD YD ZD aD bD cD","2049":"dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB 0D 1D RC SC TC 2D","260":"J sD tD uD vD wD bC xD yD zD"},Q:{"260":"3D"},R:{"1":"4D"},S:{"1":"6D","516":"5D"}},B:5,C:"Web Animations API",D:true};
Index: de_modules/caniuse-lite/data/features/web-app-manifest.js
===================================================================
--- node_modules/caniuse-lite/data/features/web-app-manifest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N","130":"O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","578":"KC LC MC Q H R XC S T U"},D:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED","4":"SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD","4":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","260":"XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"Add to home screen (A2HS)",D:false};
Index: de_modules/caniuse-lite/data/features/web-bluetooth.js
===================================================================
--- node_modules/caniuse-lite/data/features/web-bluetooth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","1025":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB","194":"rB sB tB uB vB wB xB yB","706":"zB 0B 1B","1025":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB ID JD KD LD OC wC MD PC","450":"iB jB kB lB","706":"mB nB oB","1025":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD rD","1025":"I"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","1025":"H"},L:{"1025":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1025":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD"},Q:{"2":"3D"},R:{"1025":"4D"},S:{"2":"5D 6D"}},B:7,C:"Web Bluetooth",D:true};
Index: de_modules/caniuse-lite/data/features/web-serial.js
===================================================================
--- node_modules/caniuse-lite/data/features/web-serial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","66":"Q H R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC","66":"MC Q H R S T U V W X"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ID JD KD LD OC wC MD PC","66":"9B AC BC CC DC EC FC GC HC IC JC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"129":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"Web Serial API",D:true};
Index: de_modules/caniuse-lite/data/features/web-share.js
===================================================================
--- node_modules/caniuse-lite/data/features/web-share.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H","516":"R S T U V W X Y Z a b c d"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D E F A B C L M G N O EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X","130":"9 P bB AB BB CB DB","1028":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB"},E:{"1":"M G BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","2049":"L PC AD"},F:{"1":"0 1 2 3 4 5 6 7 8 x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w ID JD KD LD OC wC MD PC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD","2049":"ZD aD bD cD dD"},H:{"2":"lD"},I:{"2":"UC J mD nD oD pD xC qD","258":"I rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J","258":"sD tD uD"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:4,C:"Web Share API",D:true};
Index: de_modules/caniuse-lite/data/features/webauthn.js
===================================================================
--- node_modules/caniuse-lite/data/features/webauthn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C","226":"L M G N O"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 3C 4C","4100":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","5124":"5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},D:{"1":"0 1 2 3 4 5 6 7 8 BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC"},E:{"1":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC","322":"PC"},F:{"1":"0 1 2 3 4 5 6 7 8 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ID JD KD LD OC wC MD PC"},G:{"1":"fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD","578":"bD","2052":"eD","3076":"cD dD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"8196":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2":"5D"}},B:2,C:"Web Authentication API",D:true};
Index: de_modules/caniuse-lite/data/features/webcodecs.js
===================================================================
--- node_modules/caniuse-lite/data/features/webcodecs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c"},E:{"1":"sC tC uC vC HD","2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC","132":"hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q ID JD KD LD OC wC MD PC"},G:{"1":"sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC","132":"hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB SC TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"WebCodecs API",D:true};
Index: de_modules/caniuse-lite/data/features/webgl.js
===================================================================
--- node_modules/caniuse-lite/data/features/webgl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"yC","8":"K D E F A","129":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","129":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","129":"9 J aB K D E F A B C L M G N O P bB AB BB CB"},D:{"1":"0 1 2 3 4 5 6 7 8 fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB K D","129":"9 E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB"},E:{"1":"E F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC","129":"K D 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ID JD KD LD OC wC MD","129":"C G N O P PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD QD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"1":"A","2":"D"},K:{"1":"C H PC","2":"A B OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A","129":"B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","129":"5D"}},B:6,C:"WebGL - 3D Canvas graphics",D:true};
Index: de_modules/caniuse-lite/data/features/webgl2.js
===================================================================
--- node_modules/caniuse-lite/data/features/webgl2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB 3C 4C","194":"oB pB qB","450":"EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB","2242":"rB sB tB uB vB wB"},D:{"1":"0 1 2 3 4 5 6 7 8 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB","578":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"G CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A 5C aC 6C 7C 8C 9C","1090":"B C L M bC OC PC AD BD"},F:{"1":"0 1 2 3 4 5 6 7 8 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB ID JD KD LD OC wC MD PC"},G:{"1":"gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD","1090":"YD ZD aD bD cD dD eD fD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","2242":"5D"}},B:6,C:"WebGL 2.0",D:true};
Index: de_modules/caniuse-lite/data/features/webgpu.js
===================================================================
--- node_modules/caniuse-lite/data/features/webgpu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q","578":"H R S T U V W X Y Z a b c","1602":"d e f g h i j k l m n o p q r s t u v"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 3C 4C","194":"0 1 2 3 4 5 6 7 8 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","4292":"YB ZB I YC","16580":"ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q","578":"H R S T U V W X Y Z a b c","1602":"d e f g h i j k l m n o p q r s t u v","2049":"0 1 2 3 4 5 6 7 8 w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B G 5C aC 6C 7C 8C 9C bC CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC","322":"C L M OC PC AD BD mC nC FD TC oC pC qC rC GD","8452":"sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC ID JD KD LD OC wC MD PC","578":"HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h","2049":"0 1 2 3 4 5 6 7 8 i j k l m n o p q r s t u v w x y z"},G:{"1":"sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC","322":"mC nC jD TC oC pC qC rC kD"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","2049":"H"},L:{"1":"I"},M:{"194":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"1":"DB EB FB GB HB IB","2":"9 J AB BB CB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D","194":"6D"}},B:5,C:"WebGPU",D:true};
Index: de_modules/caniuse-lite/data/features/webhid.js
===================================================================
--- node_modules/caniuse-lite/data/features/webhid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P","66":"Q H R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC","66":"MC Q H R S T U V W X"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ID JD KD LD OC wC MD PC","66":"AC BC CC DC EC FC GC HC IC JC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"WebHID API",D:true};
Index: de_modules/caniuse-lite/data/features/webkit-user-drag.js
===================================================================
--- node_modules/caniuse-lite/data/features/webkit-user-drag.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"16":"J aB K D E F A B C L M G","132":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"F B C ID JD KD LD OC wC MD PC","132":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"CSS -webkit-user-drag property",D:true};
Index: de_modules/caniuse-lite/data/features/webm.js
===================================================================
--- node_modules/caniuse-lite/data/features/webm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E yC","520":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","8":"C L","388":"M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB","132":"9 K D E F A B C L M G N O P bB AB BB CB DB"},E:{"2":"5C","8":"J aB aC 6C","520":"K D E F A B C 7C 8C 9C bC OC","16385":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","17412":"L PC AD","23556":"M","24580":"G BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD KD","132":"B C G LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD","16385":"mC nC jD TC oC pC qC rC kD sC tC uC vC","17412":"ZD aD bD cD dD","19460":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC"},H:{"2":"lD"},I:{"1":"I","2":"mD nD","132":"UC J oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"8":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","132":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:6,C:"WebM video format",D:true};
Index: de_modules/caniuse-lite/data/features/webnfc.js
===================================================================
--- node_modules/caniuse-lite/data/features/webnfc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M G N O P Q Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","450":"H R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","450":"H R S T U V W X"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","450":"BC CC DC EC FC GC HC IC JC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"257":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"Web NFC",D:true};
Index: de_modules/caniuse-lite/data/features/webp.js
===================================================================
--- node_modules/caniuse-lite/data/features/webp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","8":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B"},D:{"1":"0 1 2 3 4 5 6 7 8 eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J aB","8":"K D E","132":"9 F A B C L M G N O P bB AB BB","260":"CB DB EB FB GB HB IB cB dB"},E:{"1":"RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F A B C L 5C aC 6C 7C 8C 9C bC OC PC AD","516":"M G BD CD cC dC QC DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ID JD KD","8":"B LD","132":"OC wC MD","260":"C G N O P PC"},G:{"1":"eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD"},H:{"1":"lD"},I:{"1":"I xC qD rD","2":"UC mD nD oD","132":"J pD"},J:{"2":"D A"},K:{"1":"C H OC wC PC","2":"A","132":"B"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","8":"5D"}},B:6,C:"WebP image format",D:true};
Index: de_modules/caniuse-lite/data/features/websockets.js
===================================================================
--- node_modules/caniuse-lite/data/features/websockets.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC 3C 4C","132":"J aB","292":"K D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"J aB K D E F A B C L M","260":"G"},E:{"1":"D E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","132":"aB 6C","260":"K 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F ID JD KD LD","132":"B C OC wC MD"},G:{"1":"E PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND","132":"xC OD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","129":"D"},K:{"1":"H PC","2":"A","132":"B C OC wC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Web Sockets",D:true};
Index: de_modules/caniuse-lite/data/features/webtransport.js
===================================================================
--- node_modules/caniuse-lite/data/features/webtransport.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P Q H R S T U V W X Y Z a b c d e f g"},C:{"1":"0 1 2 3 4 5 6 7 8 x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z e f","66":"a b c d"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB TC 2D","2":"J sD tD uD vD wD bC xD yD zD 0D 1D RC SC"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:5,C:"WebTransport",D:true};
Index: de_modules/caniuse-lite/data/features/webusb.js
===================================================================
--- node_modules/caniuse-lite/data/features/webusb.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","66":"0B 1B 2B 3B 4B VC 5B"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB ID JD KD LD OC wC MD PC","66":"nB oB pB qB rB sB tB"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB vD wD bC xD yD zD 0D 1D RC SC TC 2D","2":"J sD tD uD"},Q:{"2":"3D"},R:{"1":"4D"},S:{"2":"5D 6D"}},B:7,C:"WebUSB",D:true};
Index: de_modules/caniuse-lite/data/features/webvr.js
===================================================================
--- node_modules/caniuse-lite/data/features/webvr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"0 1 2 3 4 5 6 7 8 C L M H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","66":"Q","257":"G N O P"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 3C 4C","129":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","194":"0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","66":"3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","66":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"2":"I"},M:{"2":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"513":"J","516":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:7,C:"WebVR API",D:true};
Index: de_modules/caniuse-lite/data/features/webvtt.js
===================================================================
--- node_modules/caniuse-lite/data/features/webvtt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB 3C 4C","66":"DB EB FB GB HB IB cB","129":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","257":"0 1 2 3 4 5 6 7 8 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB"},E:{"1":"K D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC OD PD"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC J mD nD oD pD xC"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"B","2":"A"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"129":"5D 6D"}},B:4,C:"WebVTT - Web Video Text Tracks",D:true};
Index: de_modules/caniuse-lite/data/features/webworkers.js
===================================================================
--- node_modules/caniuse-lite/data/features/webworkers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","2":"yC","8":"K D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","8":"zC UC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","8":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LD OC wC MD PC","2":"F ID","8":"JD KD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"I mD qD rD","2":"UC J nD oD pD xC"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","8":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Web Workers",D:true};
Index: de_modules/caniuse-lite/data/features/webxr.js
===================================================================
--- node_modules/caniuse-lite/data/features/webxr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"2":"C L M G N O P","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC 3C 4C","322":"0 1 2 3 4 5 6 7 8 LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C"},D:{"2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B","66":"9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"2":"J aB K D E F A B C 5C aC 6C 7C 8C 9C bC OC PC","578":"L M G AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ID JD KD LD OC wC MD PC","66":"yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B","132":"0 1 2 3 4 5 6 7 8 AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"2":"lD"},I:{"2":"UC J I mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C OC wC PC","132":"H"},L:{"132":"I"},M:{"322":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"J sD tD uD vD wD bC xD","132":"9 AB BB CB DB EB FB GB HB IB yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D","322":"6D"}},B:4,C:"WebXR Device API",D:true};
Index: de_modules/caniuse-lite/data/features/will-change.js
===================================================================
--- node_modules/caniuse-lite/data/features/will-change.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB 3C 4C","194":"IB cB dB eB fB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB CB ID JD KD LD OC wC MD PC"},G:{"1":"TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS will-change property",D:true};
Index: de_modules/caniuse-lite/data/features/woff.js
===================================================================
--- node_modules/caniuse-lite/data/features/woff.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 4C","2":"zC UC 3C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"J"},E:{"1":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB 5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OC wC MD PC","2":"F B ID JD KD LD"},G:{"1":"E OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC"},H:{"2":"lD"},I:{"1":"I qD rD","2":"UC mD nD oD pD xC","130":"J"},J:{"1":"D A"},K:{"1":"B C H OC wC PC","2":"A"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"WOFF - Web Open Font Format",D:true};
Index: de_modules/caniuse-lite/data/features/woff2.js
===================================================================
--- node_modules/caniuse-lite/data/features/woff2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB"},E:{"1":"C L M G PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J aB K D E F 5C aC 6C 7C 8C 9C","132":"A B bC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"9 F B C G N O P bB AB BB ID JD KD LD OC wC MD PC"},G:{"1":"UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"E aC ND xC OD PD QD RD SD TD"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:2,C:"WOFF 2.0 - Web Open Font Format",D:true};
Index: de_modules/caniuse-lite/data/features/word-break.js
===================================================================
--- node_modules/caniuse-lite/data/features/word-break.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC J aB K D E F A B C L M 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},E:{"1":"F A B C L M G 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"J aB K D E 5C aC 6C 7C 8C"},F:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ID JD KD LD OC wC MD PC","4":"9 G N O P bB AB BB CB DB EB FB GB HB IB cB"},G:{"1":"SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","4":"E aC ND xC OD PD QD RD"},H:{"2":"lD"},I:{"1":"I","4":"UC J mD nD oD pD xC qD rD"},J:{"4":"D A"},K:{"1":"H","2":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"CSS3 word-break",D:true};
Index: de_modules/caniuse-lite/data/features/wordwrap.js
===================================================================
--- node_modules/caniuse-lite/data/features/wordwrap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"4":"K D E F A B yC"},B:{"1":"0 1 2 3 4 5 6 7 8 P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","4":"C L M G N O"},C:{"1":"0 1 2 3 4 5 6 7 8 vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","4":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","4":"9 J aB K D E F A B C L M G N O P bB AB BB"},E:{"1":"D E F A B C L M G 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","4":"J aB K 5C aC 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PC","2":"F ID JD","4":"B C KD LD OC wC MD"},G:{"1":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","4":"aC ND xC OD PD"},H:{"4":"lD"},I:{"1":"I qD rD","4":"UC J mD nD oD pD xC"},J:{"1":"A","4":"D"},K:{"1":"H","4":"A B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"4":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"6D","4":"5D"}},B:4,C:"CSS3 Overflow-wrap",D:true};
Index: de_modules/caniuse-lite/data/features/x-doc-messaging.js
===================================================================
--- node_modules/caniuse-lite/data/features/x-doc-messaging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D yC","132":"E F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C","2":"zC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"5C aC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC","2":"F"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"4":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"Cross-document messaging",D:true};
Index: de_modules/caniuse-lite/data/features/x-frame-options.js
===================================================================
--- node_modules/caniuse-lite/data/features/x-frame-options.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"E F A B","2":"K D yC"},B:{"1":"C L M G N O P","4":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC","4":"0 1 2 3 4 5 6 7 8 J aB K D E F A B C L M G N O EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","16":"zC UC 3C 4C"},D:{"4":"0 1 2 3 4 5 6 7 8 FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB"},E:{"4":"K D E F A B C L M G 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","16":"J aB 5C aC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z MD PC","16":"F B ID JD KD LD OC wC"},G:{"4":"E QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","16":"aC ND xC OD PD"},H:{"2":"lD"},I:{"4":"J I pD xC qD rD","16":"UC mD nD oD"},J:{"4":"D A"},K:{"4":"H PC","16":"A B C OC wC"},L:{"4":"I"},M:{"4":"NC"},N:{"1":"A B"},O:{"4":"QC"},P:{"4":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"4":"3D"},R:{"4":"4D"},S:{"1":"5D","4":"6D"}},B:6,C:"X-Frame-Options HTTP header",D:true};
Index: de_modules/caniuse-lite/data/features/xhr2.js
===================================================================
--- node_modules/caniuse-lite/data/features/xhr2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F yC","1156":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","1028":"C L M G N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"zC UC","1028":"9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB","1284":"A B","1412":"K D E F","1924":"J aB 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","16":"J aB K","1028":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","1156":"IB cB","1412":"9 D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB"},E:{"1":"C L M G OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","2":"J 5C aC","1028":"E F A B 8C 9C bC","1156":"D 7C","1412":"aB K 6C"},F:{"1":"0 1 2 3 4 5 6 7 8 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ID JD KD LD OC wC MD","132":"G N O","1028":"9 C P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB PC"},G:{"1":"WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","2":"aC ND xC","1028":"E RD SD TD UD VD","1156":"QD","1412":"OD PD"},H:{"2":"lD"},I:{"1":"I","2":"mD nD oD","1028":"rD","1412":"qD","1924":"UC J pD xC"},J:{"1156":"A","1412":"D"},K:{"1":"H","2":"A B OC wC","1028":"C PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1156":"A B"},O:{"1":"QC"},P:{"1":"9 AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D","1028":"J"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"XMLHttpRequest advanced features",D:true};
Index: de_modules/caniuse-lite/data/features/xhtml.js
===================================================================
--- node_modules/caniuse-lite/data/features/xhtml.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"F A B","2":"K D E yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"1":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"1":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"1":"lD"},I:{"1":"UC J I mD nD oD pD xC qD rD"},J:{"1":"D A"},K:{"1":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:1,C:"XHTML served as application/xhtml+xml",D:true};
Index: de_modules/caniuse-lite/data/features/xhtmlsmil.js
===================================================================
--- node_modules/caniuse-lite/data/features/xhtmlsmil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"F A B yC","4":"K D E"},B:{"2":"C L M G N O P","8":"0 1 2 3 4 5 6 7 8 Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"8":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C 3C 4C"},D:{"8":"0 1 2 3 4 5 6 7 8 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC"},E:{"8":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ID JD KD LD OC wC MD PC"},G:{"8":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC"},H:{"8":"lD"},I:{"8":"UC J I mD nD oD pD xC qD rD"},J:{"8":"D A"},K:{"8":"A B C H OC wC PC"},L:{"8":"I"},M:{"8":"NC"},N:{"2":"A B"},O:{"8":"QC"},P:{"8":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"8":"3D"},R:{"8":"4D"},S:{"8":"5D 6D"}},B:7,C:"XHTML+SMIL animation",D:true};
Index: de_modules/caniuse-lite/data/features/xml-serializer.js
===================================================================
--- node_modules/caniuse-lite/data/features/xml-serializer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"1":"A B","260":"K D E F yC"},B:{"1":"0 1 2 3 4 5 6 7 8 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","132":"B","260":"zC UC J aB K D 3C 4C","516":"E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","132":"9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB"},E:{"1":"E F A B C L M G 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD sC tC uC vC HD","132":"J aB K D 5C aC 6C 7C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ID","132":"B C G N O JD KD LD OC wC MD PC"},G:{"1":"E RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD sC tC uC vC","132":"aC ND xC OD PD QD"},H:{"132":"lD"},I:{"1":"I qD rD","132":"UC J mD nD oD pD xC"},J:{"132":"D A"},K:{"1":"H","16":"A","132":"B C OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"1":"A B"},O:{"1":"QC"},P:{"1":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"1":"3D"},R:{"1":"4D"},S:{"1":"5D 6D"}},B:4,C:"DOM Parsing and Serialization",D:true};
Index: de_modules/caniuse-lite/data/features/zstd.js
===================================================================
--- node_modules/caniuse-lite/data/features/zstd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={A:{A:{"2":"K D E F A B yC"},B:{"1":"6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I","2":"0 C L M G N O P Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"1 2 3 4 5"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC 0C 1C 2C","2":"0 1 2 3 4 5 6 7 8 9 zC UC J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C 4C"},D:{"1":"6 7 8 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB I YC ZC NC","2":"0 9 J aB K D E F A B C L M G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B VC 5B WC 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"1 2 3 4 5"},E:{"2":"J aB K D E F A B C L M G 5C aC 6C 7C 8C 9C bC OC PC AD BD CD cC dC QC DD RC eC fC gC hC iC ED SC jC kC lC mC nC FD TC oC pC qC rC GD","260":"sC tC uC vC HD"},F:{"1":"0 1 2 3 4 5 6 7 8 s t u v w x y z","2":"9 F B C G N O P bB AB BB CB DB EB FB GB HB IB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC Q H R XC S T U V W X Y Z a b c d e f g h i j k l m n o p q r ID JD KD LD OC wC MD PC"},G:{"2":"E aC ND xC OD PD QD RD SD TD UD VD WD XD YD ZD aD bD cD dD eD fD gD cC dC QC hD RC eC fC gC hC iC iD SC jC kC lC mC nC jD TC oC pC qC rC kD","260":"sC tC uC vC"},H:{"2":"lD"},I:{"1":"I","2":"UC J mD nD oD pD xC qD rD"},J:{"2":"D A"},K:{"2":"A B C H OC wC PC"},L:{"1":"I"},M:{"1":"NC"},N:{"2":"A B"},O:{"2":"QC"},P:{"2":"9 J AB BB CB DB EB FB GB HB IB sD tD uD vD wD bC xD yD zD 0D 1D RC SC TC 2D"},Q:{"2":"3D"},R:{"2":"4D"},S:{"2":"5D 6D"}},B:6,C:"zstd (Zstandard) content-encoding",D:true};
Index: de_modules/caniuse-lite/data/regions/AD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.0048,"108":0.00961,"113":0.0048,"115":0.20177,"128":0.03363,"130":0.01441,"132":0.0048,"134":0.0048,"135":0.04324,"136":0.00961,"137":0.01441,"138":0.0048,"139":0.01441,"140":0.06726,"143":0.02402,"144":1.11933,"145":1.5613,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 131 133 141 142 146 147 148 3.5 3.6"},D:{"79":0.03363,"83":0.0048,"85":0.0048,"90":0.01441,"97":0.0048,"98":0.00961,"99":0.0048,"103":0.09608,"105":0.0048,"108":0.0048,"109":0.1153,"111":0.01441,"112":0.0048,"114":0.00961,"116":0.15373,"120":0.03363,"121":0.0048,"122":0.06245,"124":0.0048,"125":0.07686,"126":0.02882,"128":0.03363,"129":0.02402,"130":0.00961,"131":0.44677,"132":0.06726,"133":0.03843,"134":0.13451,"135":0.05765,"136":0.05284,"137":0.14412,"138":0.30746,"139":0.07686,"140":0.19696,"141":4.89047,"142":12.15412,"143":0.0048,"144":0.0048,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 84 86 87 88 89 91 92 93 94 95 96 100 101 102 104 106 107 110 113 115 117 118 119 123 127 145 146"},F:{"92":0.01922,"93":0.0048,"102":0.01922,"114":0.02402,"117":0.01441,"120":0.0048,"122":0.61011,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01441,"92":0.01441,"108":0.01922,"114":0.0048,"128":0.01922,"129":0.0048,"131":0.03363,"132":0.02402,"133":0.00961,"134":0.04324,"135":0.01441,"136":0.04324,"137":0.03363,"138":0.0048,"139":0.00961,"140":0.01922,"141":0.3651,"142":2.77671,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 130 143"},E:{"14":0.02402,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.4 15.5","13.1":0.02882,"14.1":0.03363,"15.1":0.00961,"15.2-15.3":0.02402,"15.6":0.50442,"16.0":0.0048,"16.1":0.07206,"16.2":0.05284,"16.3":0.17294,"16.4":0.01922,"16.5":0.07686,"16.6":1.06649,"17.0":0.04804,"17.1":1.18178,"17.2":0.09128,"17.3":0.28344,"17.4":0.19216,"17.5":0.47079,"17.6":1.28747,"18.0":0.02882,"18.1":0.14892,"18.2":0.10569,"18.3":0.15853,"18.4":0.22098,"18.5-18.6":0.80227,"26.0":1.9264,"26.1":2.13298,"26.2":0.08647},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00355,"5.0-5.1":0,"6.0-6.1":0.01421,"7.0-7.1":0.01065,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03196,"10.0-10.2":0.00355,"10.3":0.05683,"11.0-11.2":0.6606,"11.3-11.4":0.02131,"12.0-12.1":0.0071,"12.2-12.5":0.16693,"13.0-13.1":0,"13.2":0.01776,"13.3":0.0071,"13.4-13.7":0.03196,"14.0-14.4":0.05327,"14.5-14.8":0.06748,"15.0-15.1":0.05683,"15.2-15.3":0.04617,"15.4":0.04972,"15.5":0.05327,"15.6-15.8":0.7707,"16.0":0.09589,"16.1":0.17758,"16.2":0.09234,"16.3":0.17048,"16.4":0.04262,"16.5":0.07103,"16.6-16.7":1.04063,"17.0":0.08879,"17.1":0.10655,"17.2":0.07814,"17.3":0.1101,"17.4":0.18113,"17.5":0.34451,"17.6-17.7":0.84529,"18.0":0.18824,"18.1":0.39778,"18.2":0.2131,"18.3":0.69257,"18.4":0.35516,"18.5-18.7":24.80103,"26.0":1.70123,"26.1":1.55206},P:{"4":0.01059,"26":0.01059,"28":0.02117,"29":1.10099,_:"20 21 22 23 24 25 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01038,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.07796,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03843,"9":0.0048,"10":0.0048,"11":0.00961,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":15.50699},R:{_:"0"},M:{"0":0.29623}};
Index: de_modules/caniuse-lite/data/regions/AE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00563,"104":0.00282,"115":0.01409,"127":0.00282,"128":0.00282,"133":0.00282,"136":0.00282,"139":0.00282,"140":0.00563,"141":0.00282,"142":0.00282,"143":0.01409,"144":0.21409,"145":0.22818,"146":0.00845,"147":0.01409,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 134 135 137 138 148 3.5 3.6"},D:{"41":0.00282,"49":0.00282,"68":0.00282,"69":0.00563,"73":0.00282,"76":0.00282,"79":0.01127,"83":0.00282,"87":0.01409,"88":0.00282,"90":0.00282,"91":0.00845,"93":0.0169,"98":0.00282,"99":0.00282,"100":0.00282,"103":0.08169,"104":0.01409,"106":0.00282,"108":0.00845,"109":0.13522,"110":0.00282,"111":0.01127,"112":2.42544,"113":0.00282,"114":0.00845,"115":0.00282,"116":0.05352,"117":0.00282,"118":0.00282,"119":0.00845,"120":0.01409,"121":0.00563,"122":0.02817,"123":0.00563,"124":0.01127,"125":1.68175,"126":0.32396,"127":0.18874,"128":0.03099,"129":0.00845,"130":0.13803,"131":0.04226,"132":0.03099,"133":0.0338,"134":0.02254,"135":0.19719,"136":0.02817,"137":0.04507,"138":0.1493,"139":0.20564,"140":0.25635,"141":2.66207,"142":6.78615,"143":0.01409,"144":0.00282,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 74 75 77 78 80 81 84 85 86 89 92 94 95 96 97 101 102 105 107 145 146"},F:{"46":0.00282,"91":0.00282,"92":0.12958,"93":0.01972,"95":0.00282,"100":0.00282,"114":0.00282,"120":0.00845,"122":0.1155,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00282,"92":0.00282,"109":0.00282,"114":0.06197,"122":0.00282,"126":0.00282,"130":0.00563,"131":0.00563,"132":0.00282,"133":0.00845,"134":0.00282,"135":0.00282,"136":0.00563,"137":0.00282,"138":0.00563,"139":0.01127,"140":0.02535,"141":0.20846,"142":1.59161,"143":0.00563,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 128 129"},E:{"14":0.00563,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.00563,"14.1":0.00563,"15.4":0.00563,"15.5":0.00282,"15.6":0.05071,"16.0":0.00845,"16.1":0.01127,"16.2":0.01409,"16.3":0.00845,"16.4":0.00282,"16.5":0.00563,"16.6":0.05634,"17.0":0.00845,"17.1":0.03944,"17.2":0.01127,"17.3":0.01409,"17.4":0.02535,"17.5":0.03099,"17.6":0.11831,"18.0":0.01127,"18.1":0.02254,"18.2":0.0169,"18.3":0.03944,"18.4":0.02254,"18.5-18.6":0.09578,"26.0":0.2479,"26.1":0.18874,"26.2":0.00563},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0.0032,"7.0-7.1":0.0024,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00719,"10.0-10.2":0.0008,"10.3":0.01279,"11.0-11.2":0.14868,"11.3-11.4":0.0048,"12.0-12.1":0.0016,"12.2-12.5":0.03757,"13.0-13.1":0,"13.2":0.004,"13.3":0.0016,"13.4-13.7":0.00719,"14.0-14.4":0.01199,"14.5-14.8":0.01519,"15.0-15.1":0.01279,"15.2-15.3":0.01039,"15.4":0.01119,"15.5":0.01199,"15.6-15.8":0.17346,"16.0":0.02158,"16.1":0.03997,"16.2":0.02078,"16.3":0.03837,"16.4":0.00959,"16.5":0.01599,"16.6-16.7":0.23421,"17.0":0.01998,"17.1":0.02398,"17.2":0.01759,"17.3":0.02478,"17.4":0.04077,"17.5":0.07754,"17.6-17.7":0.19025,"18.0":0.04237,"18.1":0.08953,"18.2":0.04796,"18.3":0.15587,"18.4":0.07994,"18.5-18.7":5.58191,"26.0":0.38289,"26.1":0.34932},P:{"22":0.01026,"23":0.01026,"24":0.01026,"25":0.01026,"26":0.02052,"27":0.04104,"28":0.14364,"29":1.09782,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02052},I:{"0":0.02152,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.28558,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01972,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":1.2784},H:{"0":0},L:{"0":66.87765},R:{_:"0"},M:{"0":0.10773}};
Index: de_modules/caniuse-lite/data/regions/AF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"43":0.00174,"44":0.00174,"50":0.00522,"57":0.00174,"70":0.00174,"73":0.00174,"84":0.00174,"90":0.00174,"94":0.00174,"99":0.0348,"102":0.00174,"115":0.15312,"123":0.00174,"127":0.00522,"128":0.00696,"131":0.00174,"135":0.00174,"137":0.00174,"140":0.01566,"141":0.00174,"142":0.00348,"143":0.00522,"144":0.15138,"145":0.20532,"146":0.00174,_:"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 33 34 35 36 37 38 39 40 41 42 45 46 47 48 49 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 91 92 93 95 96 97 98 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 129 130 132 133 134 136 138 139 147 148 3.5 3.6"},D:{"38":0.00174,"39":0.00522,"45":0.00348,"47":0.00174,"48":0.00174,"49":0.00174,"50":0.00348,"51":0.00174,"52":0.00174,"54":0.00174,"58":0.00174,"61":0.00174,"62":0.01218,"63":0.00348,"64":0.00174,"66":0.00348,"67":0.00174,"68":0.00174,"69":0.00696,"70":0.0087,"71":0.0174,"72":0.00522,"73":0.00696,"74":0.00522,"75":0.0087,"76":0.00174,"77":0.00522,"78":0.0261,"79":0.09396,"80":0.0087,"81":0.00174,"83":0.00696,"84":0.00348,"85":0.00174,"86":0.01218,"87":0.0174,"89":0.00348,"90":0.00174,"91":0.00174,"92":0.01044,"93":0.01044,"94":0.00348,"96":0.00696,"97":0.00348,"98":0.00348,"99":0.00522,"100":0.00174,"101":0.00522,"102":0.00174,"103":0.00522,"104":0.00522,"105":0.00696,"106":0.00348,"107":0.02436,"108":0.0087,"109":1.09446,"110":0.00174,"111":0.01218,"112":0.00174,"113":0.01218,"114":0.00348,"115":0.00174,"116":0.0087,"117":0.00522,"118":0.00522,"119":0.01218,"120":0.01218,"121":0.00522,"122":0.0174,"123":0.00174,"124":0.00522,"125":0.02436,"126":0.02088,"127":0.01044,"128":0.01392,"129":0.0087,"130":0.01392,"131":0.1044,"132":0.02262,"133":0.01044,"134":0.03132,"135":0.0261,"136":0.02958,"137":0.05568,"138":0.1044,"139":0.09396,"140":0.16008,"141":1.5138,"142":4.35522,"143":0.01566,"144":0.00174,_:"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 33 34 35 36 37 40 41 42 43 44 46 53 55 56 57 59 60 65 88 95 145 146"},F:{"15":0.01044,"79":0.00174,"90":0.00522,"92":0.00348,"95":0.0261,"102":0.00522,"120":0.00696,"121":0.00174,"122":0.06786,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00348,"14":0.00522,"16":0.01218,"17":0.0087,"18":0.0261,"81":0.00348,"84":0.00348,"88":0.00174,"89":0.00348,"90":0.01218,"92":0.1044,"100":0.02262,"109":0.01566,"114":0.00696,"122":0.0087,"124":0.00174,"130":0.00174,"131":0.00174,"132":0.00174,"133":0.00174,"135":0.00348,"136":0.0087,"137":0.00348,"138":0.00522,"139":0.00696,"140":0.04176,"141":0.14094,"142":1.04922,"143":0.00174,_:"13 15 79 80 83 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.2-15.3 16.0","5.1":0.00348,"13.1":0.03132,"15.1":0.00348,"15.4":0.00348,"15.5":0.01044,"15.6":0.0435,"16.1":0.01044,"16.2":0.00522,"16.3":0.01044,"16.4":0.06264,"16.5":0.01392,"16.6":0.10962,"17.0":0.01044,"17.1":0.06612,"17.2":0.0087,"17.3":0.01218,"17.4":0.01914,"17.5":0.05916,"17.6":0.18792,"18.0":0.01392,"18.1":0.02262,"18.2":0.00696,"18.3":0.05046,"18.4":0.02784,"18.5-18.6":0.09222,"26.0":0.29232,"26.1":0.35496,"26.2":0.01044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00097,"5.0-5.1":0,"6.0-6.1":0.00389,"7.0-7.1":0.00292,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00876,"10.0-10.2":0.00097,"10.3":0.01557,"11.0-11.2":0.18096,"11.3-11.4":0.00584,"12.0-12.1":0.00195,"12.2-12.5":0.04573,"13.0-13.1":0,"13.2":0.00486,"13.3":0.00195,"13.4-13.7":0.00876,"14.0-14.4":0.01459,"14.5-14.8":0.01849,"15.0-15.1":0.01557,"15.2-15.3":0.01265,"15.4":0.01362,"15.5":0.01459,"15.6-15.8":0.21112,"16.0":0.02627,"16.1":0.04865,"16.2":0.0253,"16.3":0.0467,"16.4":0.01167,"16.5":0.01946,"16.6-16.7":0.28506,"17.0":0.02432,"17.1":0.02919,"17.2":0.0214,"17.3":0.03016,"17.4":0.04962,"17.5":0.09437,"17.6-17.7":0.23155,"18.0":0.05156,"18.1":0.10897,"18.2":0.05837,"18.3":0.18972,"18.4":0.09729,"18.5-18.7":6.79383,"26.0":0.46602,"26.1":0.42516},P:{"4":0.04094,"20":0.04094,"21":0.03071,"22":0.02047,"23":0.02047,"24":0.05118,"25":0.04094,"26":0.11259,"27":0.14329,"28":0.35823,"29":0.48105,"5.0-5.4":0.03071,"6.2-6.4":0.02047,"7.2-7.4":0.08188,"8.2":0.01024,"9.2":0.04094,_:"10.1 12.0 14.0 15.0","11.1-11.2":0.05118,"13.0":0.04094,"16.0":0.02047,"17.0":0.01024,"18.0":0.01024,"19.0":0.01024},I:{"0":0.05773,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.40295,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0261,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.30558},H:{"0":0.01},L:{"0":74.4284},R:{_:"0"},M:{"0":0.10737}};
Index: de_modules/caniuse-lite/data/regions/AG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01858,"78":0.00743,"88":0.00743,"115":0.02229,"127":0.00372,"136":0.03344,"140":0.01486,"143":0.01115,"144":0.15603,"145":0.24519,"146":0.05201,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 137 138 139 141 142 147 148 3.5 3.6"},D:{"69":0.02229,"76":0.00372,"79":0.01486,"83":0.00372,"90":0.00372,"93":0.02601,"97":0.00372,"103":0.09659,"108":0.00372,"109":1.09593,"111":0.02601,"112":0.00372,"116":0.03344,"118":0.00372,"119":0.01858,"120":0.00372,"121":0.01486,"122":0.03715,"123":0.00743,"124":0.00372,"125":0.39751,"126":0.04087,"127":0.01486,"128":0.03344,"129":0.08173,"130":0.01115,"131":0.03344,"132":0.34178,"133":0.00372,"134":0.02601,"135":0.00743,"137":0.0483,"138":0.18947,"139":0.08916,"140":0.21919,"141":4.19052,"142":12.44525,"143":0.00743,"144":0.01115,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 77 78 80 81 84 85 86 87 88 89 91 92 94 95 96 98 99 100 101 102 104 105 106 107 110 113 114 115 117 136 145 146"},F:{"92":0.04458,"122":0.10774,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"100":0.00372,"104":0.00372,"109":0.01486,"114":0.03715,"131":0.00743,"134":0.00372,"135":0.00372,"137":0.01115,"138":0.00372,"139":0.02229,"140":0.02972,"141":0.78015,"142":5.30502,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 17.0 26.2","13.1":0.00372,"14.1":0.01486,"15.6":0.12631,"16.1":0.11517,"16.3":0.00372,"16.4":0.00372,"16.5":0.00372,"16.6":0.07802,"17.1":0.07059,"17.2":0.00372,"17.3":0.01858,"17.4":0.05201,"17.5":0.07802,"17.6":0.30835,"18.0":0.02601,"18.1":0.02229,"18.2":0.02601,"18.3":0.12631,"18.4":0.01858,"18.5-18.6":0.13003,"26.0":0.28606,"26.1":0.32692},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00218,"5.0-5.1":0,"6.0-6.1":0.00874,"7.0-7.1":0.00655,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01966,"10.0-10.2":0.00218,"10.3":0.03494,"11.0-11.2":0.40623,"11.3-11.4":0.0131,"12.0-12.1":0.00437,"12.2-12.5":0.10265,"13.0-13.1":0,"13.2":0.01092,"13.3":0.00437,"13.4-13.7":0.01966,"14.0-14.4":0.03276,"14.5-14.8":0.0415,"15.0-15.1":0.03494,"15.2-15.3":0.02839,"15.4":0.03058,"15.5":0.03276,"15.6-15.8":0.47394,"16.0":0.05897,"16.1":0.1092,"16.2":0.05678,"16.3":0.10483,"16.4":0.02621,"16.5":0.04368,"16.6-16.7":0.63992,"17.0":0.0546,"17.1":0.06552,"17.2":0.04805,"17.3":0.06771,"17.4":0.11139,"17.5":0.21185,"17.6-17.7":0.5198,"18.0":0.11575,"18.1":0.24461,"18.2":0.13104,"18.3":0.42589,"18.4":0.2184,"18.5-18.7":15.25113,"26.0":1.04615,"26.1":0.95442},P:{"4":0.01029,"21":0.12349,"24":0.04116,"25":0.03087,"26":0.06175,"27":0.13378,"28":0.45281,"29":4.5075,_:"20 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01029,"11.1-11.2":0.01029,"16.0":0.01029},I:{"0":0.00628,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.06914,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.0483,_:"6 7 8 9 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00629},H:{"0":0},L:{"0":41.6498},R:{_:"0"},M:{"0":0.03771}};
Index: de_modules/caniuse-lite/data/regions/AI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01719,"113":0.00573,"144":0.48705,"145":0.08022,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"69":0.02292,"83":0.09741,"87":0.00573,"98":0.18336,"103":0.00573,"108":0.00573,"109":0.13752,"111":0.03438,"116":0.01719,"125":0.81939,"126":0.02292,"127":0.82512,"129":0.04584,"131":0.06303,"132":0.00573,"134":0.04011,"136":0.00573,"138":0.02292,"139":0.2292,"140":0.79647,"141":14.68026,"142":13.81503,"143":0.09741,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 88 89 90 91 92 93 94 95 96 97 99 100 101 102 104 105 106 107 110 112 113 114 115 117 118 119 120 121 122 123 124 128 130 133 135 137 144 145 146"},F:{"105":0.00573,"122":0.02292,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01719,"114":0.04011,"132":0.01719,"133":0.01719,"134":0.00573,"137":0.02292,"139":0.00573,"140":0.00573,"141":0.65895,"142":6.26289,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 135 136 138 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 16.0 16.2","9.1":0.00573,"15.1":0.12033,"15.5":0.04011,"15.6":1.27779,"16.1":0.20055,"16.3":0.0573,"16.4":0.00573,"16.5":0.00573,"16.6":1.39812,"17.0":0.04584,"17.1":0.97983,"17.2":0.02292,"17.3":0.00573,"17.4":0.20055,"17.5":0.09741,"17.6":2.09145,"18.0":0.16617,"18.1":0.06303,"18.2":0.04011,"18.3":0.10314,"18.4":0.18336,"18.5-18.6":0.13752,"26.0":0.38964,"26.1":0.42402,"26.2":0.03438},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00247,"5.0-5.1":0,"6.0-6.1":0.00987,"7.0-7.1":0.00741,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02222,"10.0-10.2":0.00247,"10.3":0.0395,"11.0-11.2":0.45914,"11.3-11.4":0.01481,"12.0-12.1":0.00494,"12.2-12.5":0.11602,"13.0-13.1":0,"13.2":0.01234,"13.3":0.00494,"13.4-13.7":0.02222,"14.0-14.4":0.03703,"14.5-14.8":0.0469,"15.0-15.1":0.0395,"15.2-15.3":0.03209,"15.4":0.03456,"15.5":0.03703,"15.6-15.8":0.53566,"16.0":0.06665,"16.1":0.12342,"16.2":0.06418,"16.3":0.11849,"16.4":0.02962,"16.5":0.04937,"16.6-16.7":0.72327,"17.0":0.06171,"17.1":0.07405,"17.2":0.05431,"17.3":0.07652,"17.4":0.12589,"17.5":0.23944,"17.6-17.7":0.5875,"18.0":0.13083,"18.1":0.27647,"18.2":0.14811,"18.3":0.48135,"18.4":0.24685,"18.5-18.7":17.23744,"26.0":1.18241,"26.1":1.07873},P:{"4":0.0633,"22":0.96,"24":0.01055,"25":0.70681,"26":0.0211,"27":0.0211,"28":0.24264,"29":1.32923,_:"20 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.05275},I:{"0":0.00853,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.05978,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":19.20307},R:{_:"0"},M:{"0":0.03416}};
Index: de_modules/caniuse-lite/data/regions/AL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0152,"60":0.0076,"69":0.0038,"78":0.0114,"113":0.0038,"115":0.1862,"123":0.0038,"125":0.0114,"128":0.019,"140":0.1824,"142":0.0038,"143":0.019,"144":0.5358,"145":0.5662,"146":0.0076,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 147 148 3.5 3.6"},D:{"27":0.0038,"32":0.0038,"58":0.0038,"59":0.0038,"69":0.019,"75":0.0152,"79":0.0152,"83":0.0076,"86":0.0038,"87":0.0076,"91":0.0038,"98":0.0114,"99":0.0076,"101":0.0038,"103":0.0076,"104":0.0038,"105":0.0076,"107":0.0038,"108":0.0038,"109":0.6574,"111":0.0152,"112":15.9182,"114":0.0038,"116":0.0228,"118":0.0494,"119":0.0076,"120":0.0228,"121":0.0076,"122":0.0532,"123":0.0038,"124":0.0418,"125":1.6378,"126":2.5954,"127":0.0038,"128":0.0152,"129":0.0114,"130":0.0152,"131":0.1026,"132":0.0266,"133":0.095,"134":0.0152,"135":0.0152,"136":0.0228,"137":0.019,"138":0.114,"139":0.2546,"140":0.2432,"141":2.0026,"142":4.8754,"143":0.0304,"144":0.0038,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 80 81 84 85 88 89 90 92 93 94 95 96 97 100 102 106 110 113 115 117 145 146"},F:{"40":0.0076,"46":0.0038,"63":0.0038,"67":0.0038,"92":0.0114,"93":0.0038,"95":0.0076,"109":0.0038,"114":0.019,"118":0.0038,"120":0.0038,"122":0.114,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0076,"92":0.0038,"109":0.0038,"113":0.0076,"114":0.1824,"124":0.0038,"133":0.0038,"137":0.0038,"138":0.0076,"140":0.019,"141":0.1634,"142":0.8474,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 134 135 136 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.2","13.1":0.0038,"14.1":0.0076,"15.4":0.0038,"15.5":0.0038,"15.6":0.0874,"16.1":0.0114,"16.3":0.0114,"16.4":0.0038,"16.5":0.0152,"16.6":0.1824,"17.0":0.0038,"17.1":0.057,"17.2":0.0076,"17.3":0.0076,"17.4":0.0304,"17.5":0.0418,"17.6":0.1064,"18.0":0.0076,"18.1":0.019,"18.2":0.0152,"18.3":0.057,"18.4":0.0646,"18.5-18.6":0.1026,"26.0":0.2546,"26.1":0.2584,"26.2":0.0076},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00307,"5.0-5.1":0,"6.0-6.1":0.01226,"7.0-7.1":0.0092,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02759,"10.0-10.2":0.00307,"10.3":0.04905,"11.0-11.2":0.57026,"11.3-11.4":0.0184,"12.0-12.1":0.00613,"12.2-12.5":0.1441,"13.0-13.1":0,"13.2":0.01533,"13.3":0.00613,"13.4-13.7":0.02759,"14.0-14.4":0.04599,"14.5-14.8":0.05825,"15.0-15.1":0.04905,"15.2-15.3":0.03986,"15.4":0.04292,"15.5":0.04599,"15.6-15.8":0.6653,"16.0":0.08278,"16.1":0.1533,"16.2":0.07971,"16.3":0.14716,"16.4":0.03679,"16.5":0.06132,"16.6-16.7":0.89831,"17.0":0.07665,"17.1":0.09198,"17.2":0.06745,"17.3":0.09504,"17.4":0.15636,"17.5":0.29739,"17.6-17.7":0.72968,"18.0":0.16249,"18.1":0.34338,"18.2":0.18395,"18.3":0.59785,"18.4":0.30659,"18.5-18.7":21.40918,"26.0":1.46857,"26.1":1.3398},P:{"4":0.0607,"23":0.02023,"24":0.02023,"25":0.05058,"26":0.03035,"27":0.05058,"28":0.35409,"29":2.16503,_:"20 21 22 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04047,"8.2":0.01012},I:{"0":0.01238,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.1426,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0456,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.0248,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":30.8198},R:{_:"0"},M:{"0":0.2108}};
Index: de_modules/caniuse-lite/data/regions/AM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00716,"113":0.00716,"115":0.15748,"125":0.02863,"127":0.00716,"128":0.00716,"135":0.00716,"136":0.05011,"139":0.02147,"140":0.04295,"142":0.02147,"143":0.07158,"144":0.9377,"145":0.27916,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 126 129 130 131 132 133 134 137 138 141 146 147 148 3.5 3.6"},D:{"45":1.12381,"48":0.00716,"49":0.02863,"51":0.03579,"69":0.00716,"79":0.00716,"87":0.00716,"91":0.00716,"93":0.00716,"97":0.00716,"98":0.00716,"101":0.00716,"102":0.00716,"103":0.01432,"104":0.00716,"106":0.00716,"109":1.61055,"110":0.00716,"111":0.01432,"112":8.18875,"113":0.00716,"114":0.07874,"116":0.07874,"117":0.00716,"118":0.00716,"119":0.00716,"120":0.02147,"121":0.02147,"122":0.03579,"123":0.01432,"124":0.07158,"125":24.54478,"126":1.48171,"127":0.04295,"128":0.29348,"129":0.02863,"130":0.01432,"131":0.11453,"132":0.05011,"133":0.31495,"134":0.15032,"135":0.03579,"136":0.09305,"137":0.31495,"138":0.272,"139":0.20042,"140":0.62275,"141":6.02704,"142":13.35683,"143":0.02863,"144":0.01432,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 92 94 95 96 99 100 105 107 108 115 145 146"},F:{"46":0.00716,"79":0.05726,"90":0.01432,"92":0.00716,"95":0.02147,"116":0.00716,"119":0.01432,"120":0.01432,"122":0.30779,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00716,"109":0.00716,"114":0.11453,"127":0.00716,"131":0.00716,"132":0.00716,"133":0.04295,"134":0.06442,"135":0.00716,"137":0.02147,"138":0.07158,"139":0.00716,"140":0.05011,"141":0.60127,"142":2.19751,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.5 26.2","11.1":0.00716,"14.1":0.00716,"15.6":0.05011,"16.0":0.00716,"16.1":0.00716,"16.2":0.00716,"16.3":0.00716,"16.4":0.00716,"16.6":0.06442,"17.0":0.00716,"17.1":0.02863,"17.2":0.03579,"17.3":0.04295,"17.4":0.10021,"17.5":0.05726,"17.6":0.0859,"18.0":0.01432,"18.1":0.01432,"18.2":0.16463,"18.3":0.22906,"18.4":0.14316,"18.5-18.6":0.43664,"26.0":0.28632,"26.1":0.31495},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00083,"5.0-5.1":0,"6.0-6.1":0.00331,"7.0-7.1":0.00248,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00744,"10.0-10.2":0.00083,"10.3":0.01323,"11.0-11.2":0.15383,"11.3-11.4":0.00496,"12.0-12.1":0.00165,"12.2-12.5":0.03887,"13.0-13.1":0,"13.2":0.00414,"13.3":0.00165,"13.4-13.7":0.00744,"14.0-14.4":0.01241,"14.5-14.8":0.01571,"15.0-15.1":0.01323,"15.2-15.3":0.01075,"15.4":0.01158,"15.5":0.01241,"15.6-15.8":0.17946,"16.0":0.02233,"16.1":0.04135,"16.2":0.0215,"16.3":0.0397,"16.4":0.00992,"16.5":0.01654,"16.6-16.7":0.24232,"17.0":0.02068,"17.1":0.02481,"17.2":0.01819,"17.3":0.02564,"17.4":0.04218,"17.5":0.08022,"17.6-17.7":0.19683,"18.0":0.04383,"18.1":0.09263,"18.2":0.04962,"18.3":0.16127,"18.4":0.0827,"18.5-18.7":5.77509,"26.0":0.39614,"26.1":0.36141},P:{"4":0.0103,"22":0.0103,"23":0.0206,"24":0.0103,"25":0.04121,"26":0.0103,"27":0.07212,"28":0.14423,"29":0.82418,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0103},I:{"0":0.00568,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.5043,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03579,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00284,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03979},H:{"0":0.03},L:{"0":19.81412},R:{_:"0"},M:{"0":0.20747}};
Index: de_modules/caniuse-lite/data/regions/AO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03193,"34":0.00532,"78":0.00532,"108":0.00532,"112":0.00532,"113":0.00532,"114":0.00532,"115":0.09046,"127":0.00532,"128":0.00532,"136":0.00532,"137":0.00532,"138":0.00532,"139":0.00532,"140":0.01596,"141":0.00532,"142":0.00532,"143":0.01064,"144":0.3299,"145":0.36183,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 146 147 148 3.5 3.6"},D:{"38":0.00532,"39":0.00532,"40":0.00532,"41":0.00532,"42":0.00532,"43":0.01064,"44":0.00532,"45":0.00532,"46":0.01064,"47":0.02128,"48":0.00532,"49":0.01596,"50":0.00532,"51":0.00532,"52":0.00532,"53":0.00532,"54":0.00532,"55":0.00532,"56":0.00532,"57":0.00532,"58":0.00532,"59":0.00532,"60":0.00532,"62":0.00532,"65":0.00532,"66":0.02128,"68":0.00532,"69":0.03193,"70":0.00532,"72":0.03193,"73":0.03725,"77":0.01064,"78":0.00532,"79":0.02128,"80":0.00532,"81":0.01064,"83":0.01596,"84":0.00532,"85":0.00532,"86":0.03193,"87":0.09578,"89":0.00532,"90":0.01064,"92":0.00532,"93":0.00532,"95":0.02128,"97":0.00532,"98":0.02128,"99":0.00532,"101":0.00532,"102":0.01064,"103":0.02128,"105":0.00532,"106":0.01596,"108":0.01596,"109":0.70237,"111":0.03725,"112":15.64906,"113":0.01064,"114":0.02128,"115":0.01064,"116":0.07982,"117":0.00532,"119":0.05321,"120":0.02128,"121":0.00532,"122":0.09046,"123":0.02128,"124":0.01064,"125":0.40972,"126":2.69775,"127":0.02128,"128":0.09578,"129":0.00532,"130":0.01596,"131":0.06917,"132":0.05321,"133":0.03193,"134":0.03193,"135":0.03193,"136":0.02661,"137":0.05321,"138":0.20752,"139":0.27669,"140":0.55871,"141":2.50619,"142":7.22592,"143":0.22348,_:"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 33 34 35 36 37 61 63 64 67 71 74 75 76 88 91 94 96 100 104 107 110 118 144 145 146"},F:{"34":0.00532,"35":0.01064,"37":0.00532,"42":0.00532,"79":0.00532,"90":0.00532,"92":0.01064,"93":0.00532,"95":0.05321,"114":0.00532,"117":0.00532,"120":0.00532,"122":0.2288,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 36 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00532,"14":0.01064,"15":0.00532,"16":0.02128,"17":0.00532,"18":0.04257,"84":0.01064,"85":0.00532,"89":0.01596,"90":0.02661,"92":0.09578,"100":0.01064,"108":0.00532,"109":0.02128,"114":0.57467,"116":0.00532,"118":0.02128,"120":0.00532,"122":0.01064,"126":0.00532,"130":0.01064,"131":0.02661,"132":0.00532,"133":0.00532,"134":0.03725,"135":0.02128,"136":0.01064,"137":0.02128,"138":0.06385,"139":0.04257,"140":0.05853,"141":0.47889,"142":3.43205,"143":0.00532,_:"13 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 115 117 119 121 123 124 125 127 128 129"},E:{"12":0.00532,"13":0.00532,_:"0 4 5 6 7 8 9 10 11 14 15 3.1 3.2 6.1 7.1 9.1 10.1 15.1 15.2-15.3 16.0 16.1 16.2 16.4 16.5 17.0 17.3","5.1":0.00532,"11.1":0.00532,"12.1":0.00532,"13.1":0.02661,"14.1":0.02661,"15.4":0.00532,"15.5":0.00532,"15.6":0.08514,"16.3":0.00532,"16.6":0.09046,"17.1":0.04257,"17.2":0.00532,"17.4":0.00532,"17.5":0.02128,"17.6":0.13303,"18.0":0.00532,"18.1":0.03193,"18.2":0.00532,"18.3":0.01064,"18.4":0.01064,"18.5-18.6":0.03193,"26.0":0.11706,"26.1":0.10642,"26.2":0.02128},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00065,"5.0-5.1":0,"6.0-6.1":0.00261,"7.0-7.1":0.00195,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00586,"10.0-10.2":0.00065,"10.3":0.01042,"11.0-11.2":0.12114,"11.3-11.4":0.00391,"12.0-12.1":0.0013,"12.2-12.5":0.03061,"13.0-13.1":0,"13.2":0.00326,"13.3":0.0013,"13.4-13.7":0.00586,"14.0-14.4":0.00977,"14.5-14.8":0.01238,"15.0-15.1":0.01042,"15.2-15.3":0.00847,"15.4":0.00912,"15.5":0.00977,"15.6-15.8":0.14134,"16.0":0.01759,"16.1":0.03257,"16.2":0.01693,"16.3":0.03126,"16.4":0.00782,"16.5":0.01303,"16.6-16.7":0.19084,"17.0":0.01628,"17.1":0.01954,"17.2":0.01433,"17.3":0.02019,"17.4":0.03322,"17.5":0.06318,"17.6-17.7":0.15501,"18.0":0.03452,"18.1":0.07295,"18.2":0.03908,"18.3":0.12701,"18.4":0.06513,"18.5-18.7":4.54815,"26.0":0.31198,"26.1":0.28463},P:{"4":0.05194,"21":0.02077,"22":0.05194,"23":0.04155,"24":0.12465,"25":0.11426,"26":0.13504,"27":0.13504,"28":0.51937,"29":1.16339,_:"20 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 18.0","5.0-5.4":0.01039,"7.2-7.4":0.17659,"11.1-11.2":0.01039,"16.0":0.01039,"17.0":0.02077,"19.0":0.01039},I:{"0":0.14485,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.83342,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.08514,_:"6 7 8 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.01404,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02807},O:{"0":0.19184},H:{"0":0.21},L:{"0":47.98191},R:{_:"0"},M:{"0":0.06551}};
Index: de_modules/caniuse-lite/data/regions/AR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01277,"52":0.00639,"59":0.00639,"88":0.01277,"91":0.00639,"103":0.00639,"113":0.00639,"115":0.17245,"120":0.01277,"135":0.00639,"136":0.01916,"137":0.00639,"138":0.00639,"139":0.00639,"140":0.01916,"141":0.00639,"142":0.00639,"143":0.0511,"144":0.40238,"145":0.47264,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 114 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 133 134 146 147 148 3.5 3.6"},D:{"49":0.00639,"63":0.00639,"66":0.03194,"69":0.01277,"79":0.01277,"86":0.00639,"87":0.00639,"97":0.00639,"99":0.00639,"102":0.00639,"103":0.01916,"104":0.00639,"105":0.00639,"106":0.00639,"107":0.00639,"108":0.00639,"109":1.36043,"111":0.05748,"112":27.93035,"114":0.01277,"116":0.03194,"119":0.0511,"120":0.01916,"121":0.01277,"122":0.07026,"123":0.01277,"124":0.04471,"125":0.75367,"126":4.16432,"127":0.03832,"128":0.02555,"129":0.01277,"130":0.01916,"131":0.15968,"132":0.03832,"133":0.02555,"134":0.03194,"135":0.03832,"136":0.05748,"137":0.03194,"138":0.10858,"139":0.10858,"140":0.26825,"141":4.20903,"142":14.81145,"143":0.03832,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 85 88 89 90 91 92 93 94 95 96 98 100 101 110 113 115 117 118 144 145 146"},F:{"92":0.00639,"95":0.01916,"120":0.02555,"122":0.50457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00639,"92":0.00639,"109":0.01916,"114":0.04471,"117":0.00639,"128":0.00639,"131":0.00639,"134":0.00639,"136":0.00639,"137":0.00639,"138":0.00639,"139":0.02555,"140":0.01916,"141":0.25548,"142":2.05661,"143":0.00639,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 122 123 124 125 126 127 129 130 132 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.3 18.0 26.2","11.1":0.00639,"14.1":0.00639,"15.6":0.01916,"16.3":0.00639,"16.6":0.03194,"17.1":0.01916,"17.2":0.00639,"17.4":0.00639,"17.5":0.00639,"17.6":0.02555,"18.1":0.00639,"18.2":0.00639,"18.3":0.01277,"18.4":0.00639,"18.5-18.6":0.03194,"26.0":0.0511,"26.1":0.05748},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00033,"5.0-5.1":0,"6.0-6.1":0.00132,"7.0-7.1":0.00099,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00298,"10.0-10.2":0.00033,"10.3":0.00529,"11.0-11.2":0.06154,"11.3-11.4":0.00199,"12.0-12.1":0.00066,"12.2-12.5":0.01555,"13.0-13.1":0,"13.2":0.00165,"13.3":0.00066,"13.4-13.7":0.00298,"14.0-14.4":0.00496,"14.5-14.8":0.00629,"15.0-15.1":0.00529,"15.2-15.3":0.0043,"15.4":0.00463,"15.5":0.00496,"15.6-15.8":0.0718,"16.0":0.00893,"16.1":0.01654,"16.2":0.0086,"16.3":0.01588,"16.4":0.00397,"16.5":0.00662,"16.6-16.7":0.09694,"17.0":0.00827,"17.1":0.00993,"17.2":0.00728,"17.3":0.01026,"17.4":0.01687,"17.5":0.03209,"17.6-17.7":0.07874,"18.0":0.01754,"18.1":0.03706,"18.2":0.01985,"18.3":0.06452,"18.4":0.03309,"18.5-18.7":2.31039,"26.0":0.15848,"26.1":0.14459},P:{"21":0.01039,"22":0.01039,"23":0.01039,"24":0.02078,"25":0.02078,"26":0.05195,"27":0.02078,"28":0.1039,"29":1.26762,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 19.0","7.2-7.4":0.06234,"17.0":0.01039,"18.0":0.01039},I:{"0":0.01803,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.0614,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03832,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00722},H:{"0":0},L:{"0":33.55228},R:{_:"0"},M:{"0":0.0903}};
Index: de_modules/caniuse-lite/data/regions/AS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.00362,"144":0.00725,"145":0.00725,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"58":0.00362,"74":0.00362,"93":0.00725,"103":0.02898,"109":0.00362,"116":0.00725,"125":0.02174,"126":0.00362,"127":0.00362,"128":0.00362,"131":0.00362,"134":0.00725,"135":0.01812,"136":0.00725,"137":0.00725,"138":0.01087,"139":0.02898,"140":0.06884,"141":0.37679,"142":0.57243,"143":0.00725,"144":0.00362,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 129 130 132 133 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00362,"114":0.00362,"120":0.00362,"136":0.00725,"140":0.00362,"141":0.02898,"142":0.24999,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 16.0","13.1":0.00362,"14.1":0.00362,"15.1":0.00362,"15.2-15.3":0.00362,"15.4":0.00362,"15.5":0.06159,"15.6":0.74996,"16.1":0.22463,"16.2":0.0471,"16.3":0.4565,"16.4":0.35868,"16.5":0.43838,"16.6":1.83686,"17.0":0.01812,"17.1":2.35857,"17.2":0.09782,"17.3":0.05435,"17.4":0.29709,"17.5":0.48548,"17.6":1.37674,"18.0":0.18115,"18.1":0.221,"18.2":0.14492,"18.3":0.42027,"18.4":0.08695,"18.5-18.6":1.20284,"26.0":1.60861,"26.1":1.87671,"26.2":0.15941},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00622,"5.0-5.1":0,"6.0-6.1":0.02489,"7.0-7.1":0.01867,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05601,"10.0-10.2":0.00622,"10.3":0.09957,"11.0-11.2":1.15748,"11.3-11.4":0.03734,"12.0-12.1":0.01245,"12.2-12.5":0.29248,"13.0-13.1":0,"13.2":0.03112,"13.3":0.01245,"13.4-13.7":0.05601,"14.0-14.4":0.09335,"14.5-14.8":0.11824,"15.0-15.1":0.09957,"15.2-15.3":0.0809,"15.4":0.08712,"15.5":0.09335,"15.6-15.8":1.35039,"16.0":0.16802,"16.1":0.31115,"16.2":0.1618,"16.3":0.2987,"16.4":0.07468,"16.5":0.12446,"16.6-16.7":1.82334,"17.0":0.15558,"17.1":0.18669,"17.2":0.13691,"17.3":0.19291,"17.4":0.31737,"17.5":0.60363,"17.6-17.7":1.48108,"18.0":0.32982,"18.1":0.69698,"18.2":0.37338,"18.3":1.21349,"18.4":0.6223,"18.5-18.7":43.45531,"26.0":2.98082,"26.1":2.71946},P:{"28":0.00986,"29":0.07886,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01971},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.00638,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00638},H:{"0":0},L:{"0":1.62805},R:{_:"0"},M:{"0":0.08291}};
Index: de_modules/caniuse-lite/data/regions/AT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00556,"52":0.02222,"53":0.01111,"60":0.01667,"68":0.06112,"78":0.02778,"91":0.00556,"102":0.00556,"104":0.00556,"112":0.00556,"113":0.00556,"115":0.38892,"125":0.00556,"127":0.00556,"128":0.11112,"129":0.00556,"131":0.00556,"132":0.00556,"133":0.00556,"134":0.02222,"135":0.01667,"136":0.03334,"137":0.02222,"138":0.03889,"139":0.02778,"140":0.91674,"141":0.02222,"142":0.03334,"143":0.09445,"144":2.60021,"145":3.09469,"146":0.01111,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 105 106 107 108 109 110 111 114 116 117 118 119 120 121 122 123 124 126 130 147 148 3.5 3.6"},D:{"39":0.00556,"40":0.00556,"41":0.00556,"42":0.01111,"43":0.00556,"44":0.00556,"45":0.00556,"46":0.00556,"47":0.06112,"48":0.00556,"49":0.01111,"50":0.00556,"51":0.00556,"52":0.00556,"53":0.00556,"54":0.00556,"55":0.00556,"56":0.00556,"57":0.00556,"58":0.00556,"59":0.00556,"60":0.00556,"69":0.00556,"79":0.06112,"80":0.02778,"81":0.00556,"87":0.05,"88":0.01111,"90":0.00556,"96":0.00556,"102":0.00556,"103":0.01667,"104":0.02222,"106":0.00556,"108":0.01667,"109":0.53338,"110":0.00556,"111":0.01111,"112":0.86118,"114":0.03334,"115":0.01667,"116":0.0889,"117":0.00556,"118":0.14446,"119":0.01667,"120":0.01667,"121":0.01111,"122":0.05,"123":0.53338,"124":0.02778,"125":0.38336,"126":0.15001,"127":0.02222,"128":0.04445,"129":0.05556,"130":0.02222,"131":0.09445,"132":0.03889,"133":0.03889,"134":0.03334,"135":0.15557,"136":0.05,"137":0.08334,"138":0.17224,"139":0.26669,"140":0.47782,"141":5.50044,"142":14.1178,"143":0.02222,"144":0.00556,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 83 84 85 86 89 91 92 93 94 95 97 98 99 100 101 105 107 113 145 146"},F:{"46":0.01111,"79":0.00556,"85":0.01111,"92":0.06667,"93":0.00556,"95":0.05,"114":0.00556,"117":0.00556,"119":0.00556,"120":0.01111,"122":1.28899,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00556,"109":0.06667,"120":0.00556,"122":0.00556,"126":0.00556,"128":0.00556,"129":0.00556,"130":0.00556,"131":0.01111,"132":0.00556,"133":0.00556,"134":0.00556,"135":0.03334,"136":0.01667,"137":0.01111,"138":0.02778,"139":0.01667,"140":0.16668,"141":0.9223,"142":9.06739,"143":0.00556,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 127"},E:{"14":0.01111,"15":0.01111,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3","12.1":0.00556,"13.1":0.02778,"14.1":0.03334,"15.1":0.01111,"15.4":0.00556,"15.5":0.00556,"15.6":0.15557,"16.0":0.01667,"16.1":0.01111,"16.2":0.01111,"16.3":0.02222,"16.4":0.02222,"16.5":0.01111,"16.6":0.1889,"17.0":0.00556,"17.1":0.12223,"17.2":0.02222,"17.3":0.01667,"17.4":0.03334,"17.5":0.13334,"17.6":0.30002,"18.0":0.02778,"18.1":0.03889,"18.2":0.01667,"18.3":0.07223,"18.4":0.06112,"18.5-18.6":0.20557,"26.0":0.44448,"26.1":0.60005,"26.2":0.01111},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00162,"5.0-5.1":0,"6.0-6.1":0.00649,"7.0-7.1":0.00486,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01459,"10.0-10.2":0.00162,"10.3":0.02594,"11.0-11.2":0.30161,"11.3-11.4":0.00973,"12.0-12.1":0.00324,"12.2-12.5":0.07621,"13.0-13.1":0,"13.2":0.00811,"13.3":0.00324,"13.4-13.7":0.01459,"14.0-14.4":0.02432,"14.5-14.8":0.03081,"15.0-15.1":0.02594,"15.2-15.3":0.02108,"15.4":0.0227,"15.5":0.02432,"15.6-15.8":0.35187,"16.0":0.04378,"16.1":0.08108,"16.2":0.04216,"16.3":0.07783,"16.4":0.01946,"16.5":0.03243,"16.6-16.7":0.47511,"17.0":0.04054,"17.1":0.04865,"17.2":0.03567,"17.3":0.05027,"17.4":0.0827,"17.5":0.15729,"17.6-17.7":0.38593,"18.0":0.08594,"18.1":0.18161,"18.2":0.09729,"18.3":0.3162,"18.4":0.16215,"18.5-18.7":11.32319,"26.0":0.77672,"26.1":0.70861},P:{"4":0.07268,"20":0.01038,"21":0.01038,"22":0.01038,"23":0.02077,"24":0.03115,"25":0.02077,"26":0.05191,"27":0.08306,"28":0.32187,"29":3.41594,"5.0-5.4":0.01038,"6.2-6.4":0.01038,"7.2-7.4":0.0623,_:"8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","9.2":0.01038},I:{"0":0.02219,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.3445,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02222,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04001},H:{"0":0.06},L:{"0":24.48959},R:{_:"0"},M:{"0":0.96457}};
Index: de_modules/caniuse-lite/data/regions/AU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.01043,"78":0.01565,"115":0.11473,"125":0.01565,"128":0.01043,"132":0.00522,"133":0.01043,"134":0.01043,"135":0.00522,"136":0.01043,"137":0.00522,"138":0.00522,"139":0.00522,"140":0.05737,"141":0.00522,"142":0.02086,"143":0.05215,"144":0.9022,"145":1.01693,"146":0.00522,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 147 148 3.5 3.6"},D:{"25":0.01565,"34":0.01565,"38":0.04694,"39":0.01565,"40":0.01565,"41":0.01565,"42":0.01565,"43":0.01565,"44":0.01565,"45":0.01565,"46":0.01565,"47":0.01565,"48":0.01565,"49":0.02086,"50":0.01565,"51":0.01565,"52":0.02608,"53":0.01565,"54":0.01565,"55":0.01565,"56":0.01565,"57":0.01565,"58":0.01565,"59":0.01565,"60":0.01565,"66":0.00522,"79":0.03651,"80":0.00522,"81":0.00522,"85":0.02086,"86":0.00522,"87":0.03651,"88":0.01043,"93":0.00522,"94":0.00522,"97":0.00522,"98":0.00522,"99":0.01043,"101":0.00522,"102":0.00522,"103":0.0678,"104":0.01043,"105":0.02608,"107":0.00522,"108":0.02608,"109":0.34941,"110":0.00522,"111":0.03651,"112":0.01043,"113":0.01565,"114":0.04694,"115":0.00522,"116":0.15645,"117":0.00522,"118":0.00522,"119":0.01565,"120":0.03651,"121":0.02608,"122":0.07301,"123":0.03651,"124":0.06258,"125":0.86569,"126":0.04694,"127":0.02086,"128":0.14602,"129":0.05737,"130":0.82397,"131":0.09909,"132":0.07823,"133":0.06258,"134":0.06258,"135":0.08344,"136":0.09387,"137":0.13559,"138":0.485,"139":0.45371,"140":0.75096,"141":6.12763,"142":17.55369,"143":0.03129,"144":0.01565,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 35 36 37 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 83 84 89 90 91 92 95 96 100 106 145 146"},F:{"46":0.01043,"92":0.01565,"95":0.00522,"102":0.00522,"119":0.00522,"120":0.05215,"121":0.00522,"122":0.43285,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00522,"85":0.01043,"109":0.03129,"113":0.00522,"114":0.00522,"117":0.00522,"120":0.01043,"121":0.00522,"122":0.00522,"123":0.00522,"124":0.00522,"125":0.00522,"126":0.00522,"128":0.00522,"129":0.00522,"130":0.00522,"131":0.01043,"132":0.01043,"133":0.00522,"134":0.01565,"135":0.01565,"136":0.01043,"137":0.01043,"138":0.02608,"139":0.02608,"140":0.09909,"141":0.91784,"142":6.52918,"143":0.01043,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 118 119 127"},E:{"13":0.00522,"14":0.02608,"15":0.00522,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00522,"12.1":0.02086,"13.1":0.05215,"14.1":0.09387,"15.1":0.01043,"15.2-15.3":0.01043,"15.4":0.01565,"15.5":0.03651,"15.6":0.30769,"16.0":0.01565,"16.1":0.05215,"16.2":0.04172,"16.3":0.07823,"16.4":0.02608,"16.5":0.03129,"16.6":0.44849,"17.0":0.00522,"17.1":0.40677,"17.2":0.03129,"17.3":0.04694,"17.4":0.07301,"17.5":0.11995,"17.6":0.36505,"18.0":0.02608,"18.1":0.0678,"18.2":0.05215,"18.3":0.14081,"18.4":0.0678,"18.5-18.6":0.33376,"26.0":0.54758,"26.1":0.59973,"26.2":0.02086},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00224,"5.0-5.1":0,"6.0-6.1":0.00895,"7.0-7.1":0.00671,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02013,"10.0-10.2":0.00224,"10.3":0.03578,"11.0-11.2":0.41599,"11.3-11.4":0.01342,"12.0-12.1":0.00447,"12.2-12.5":0.10512,"13.0-13.1":0,"13.2":0.01118,"13.3":0.00447,"13.4-13.7":0.02013,"14.0-14.4":0.03355,"14.5-14.8":0.04249,"15.0-15.1":0.03578,"15.2-15.3":0.02907,"15.4":0.03131,"15.5":0.03355,"15.6-15.8":0.48532,"16.0":0.06039,"16.1":0.11183,"16.2":0.05815,"16.3":0.10735,"16.4":0.02684,"16.5":0.04473,"16.6-16.7":0.6553,"17.0":0.05591,"17.1":0.0671,"17.2":0.0492,"17.3":0.06933,"17.4":0.11406,"17.5":0.21694,"17.6-17.7":0.53229,"18.0":0.11853,"18.1":0.25049,"18.2":0.13419,"18.3":0.43612,"18.4":0.22365,"18.5-18.7":15.61754,"26.0":1.07129,"26.1":0.97735},P:{"4":0.0653,"21":0.03265,"22":0.01088,"23":0.01088,"24":0.03265,"25":0.02177,"26":0.04354,"27":0.0653,"28":0.29386,"29":2.61212,_:"20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01088,"7.2-7.4":0.01088},I:{"0":0.01911,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.11963,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.12035,"11":0.01003,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00479},O:{"0":0.0335},H:{"0":0},L:{"0":23.32038},R:{_:"0"},M:{"0":0.44501}};
Index: de_modules/caniuse-lite/data/regions/AW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00283,"78":0.01982,"113":0.00283,"115":0.01982,"122":0.00283,"137":0.00849,"140":0.00849,"142":0.00283,"143":0.00283,"144":0.18402,"145":0.19817,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 135 136 138 139 141 146 147 148 3.5 3.6"},D:{"69":0.00283,"94":0.00283,"98":0.00283,"99":0.00283,"103":0.08493,"104":0.00283,"106":0.00283,"108":0.00283,"109":0.49259,"111":0.00283,"113":0.00283,"116":0.03963,"119":0.00283,"120":0.00283,"121":0.00566,"122":0.03114,"123":0.00566,"124":0.00283,"125":0.08493,"126":0.05662,"127":0.00849,"128":0.05096,"129":0.05662,"130":0.01132,"131":0.00566,"132":0.07361,"133":0.00283,"134":0.02548,"135":0.03114,"136":0.01416,"137":0.04247,"138":0.10475,"139":0.09625,"140":0.19251,"141":2.42051,"142":8.11365,"143":0.01132,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 100 101 102 105 107 110 112 114 115 117 118 144 145 146"},F:{"92":0.01132,"95":0.00566,"120":0.00283,"122":0.13872,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"108":0.00283,"109":0.00566,"114":0.01132,"120":0.00283,"121":0.00283,"122":0.00283,"128":0.03397,"131":0.00283,"132":0.00283,"135":0.00566,"136":0.00283,"138":0.02265,"139":0.02831,"140":0.05379,"141":0.603,"142":5.66483,"143":0.00283,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 115 116 117 118 119 123 124 125 126 127 129 130 133 134 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.5","12.1":0.00283,"13.1":0.00283,"14.1":0.01416,"15.2-15.3":0.00283,"15.4":0.00283,"15.6":0.03114,"16.0":0.00283,"16.1":0.00566,"16.2":0.00283,"16.3":0.06228,"16.4":0.00283,"16.5":0.00566,"16.6":0.11324,"17.0":0.01132,"17.1":0.20949,"17.2":0.00849,"17.3":0.00849,"17.4":0.04813,"17.5":0.03114,"17.6":0.13872,"18.0":0.02265,"18.1":0.02265,"18.2":0.00849,"18.3":0.06794,"18.4":0.03114,"18.5-18.6":0.13589,"26.0":0.21799,"26.1":0.2463,"26.2":0.05096},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00313,"5.0-5.1":0,"6.0-6.1":0.01253,"7.0-7.1":0.00939,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02818,"10.0-10.2":0.00313,"10.3":0.0501,"11.0-11.2":0.58244,"11.3-11.4":0.01879,"12.0-12.1":0.00626,"12.2-12.5":0.14718,"13.0-13.1":0,"13.2":0.01566,"13.3":0.00626,"13.4-13.7":0.02818,"14.0-14.4":0.04697,"14.5-14.8":0.0595,"15.0-15.1":0.0501,"15.2-15.3":0.04071,"15.4":0.04384,"15.5":0.04697,"15.6-15.8":0.67952,"16.0":0.08455,"16.1":0.15657,"16.2":0.08142,"16.3":0.15031,"16.4":0.03758,"16.5":0.06263,"16.6-16.7":0.91751,"17.0":0.07829,"17.1":0.09394,"17.2":0.06889,"17.3":0.09707,"17.4":0.1597,"17.5":0.30375,"17.6-17.7":0.74528,"18.0":0.16597,"18.1":0.35072,"18.2":0.18789,"18.3":0.61063,"18.4":0.31314,"18.5-18.7":21.8667,"26.0":1.49995,"26.1":1.36843},P:{"4":0.03047,"21":0.03047,"22":0.01016,"23":0.02031,"24":0.01016,"25":0.02031,"26":0.03047,"27":0.08124,"28":0.42652,"29":6.49936,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0","7.2-7.4":0.04062,"15.0":0.01016,"19.0":0.03047},I:{"0":0.00716,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1147,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":37.73132},R:{_:"0"},M:{"0":0.18639}};
Index: de_modules/caniuse-lite/data/regions/AX.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AX.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.25344,"135":0.00576,"139":0.02304,"140":0.04032,"141":0.02304,"142":0.24768,"143":0.10368,"144":0.5472,"145":0.94464,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 146 147 148 3.5 3.6"},D:{"76":0.29952,"87":0.1152,"90":0.00576,"103":0.01152,"109":0.39744,"111":0.00576,"116":0.03456,"120":0.00576,"122":0.01728,"123":0.00576,"125":0.19008,"126":0.00576,"127":0.08064,"128":0.01152,"130":0.02304,"131":0.01728,"133":0.01728,"135":0.04608,"136":0.42624,"137":0.02304,"138":0.10368,"139":3.9168,"140":0.16128,"141":6.08256,"142":24.18624,"143":0.00576,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 86 88 89 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 114 115 117 118 119 121 124 129 132 134 144 145 146"},F:{"92":0.00576,"120":0.01152,"122":0.28224,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00576,"132":0.00576,"134":0.03456,"135":0.02304,"136":0.01152,"138":0.04032,"139":0.33408,"140":0.04608,"141":1.05408,"142":9.57888,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 133 137 143"},E:{"12":0.00576,"14":0.00576,_:"0 4 5 6 7 8 9 10 11 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.1 16.2 17.0 17.2 17.5 18.2 26.2","13.1":0.01152,"14.1":0.00576,"15.4":0.01152,"15.6":0.04032,"16.0":0.00576,"16.3":0.00576,"16.4":0.00576,"16.5":0.00576,"16.6":0.10944,"17.1":0.01728,"17.3":0.01152,"17.4":0.00576,"17.6":0.01728,"18.0":0.01728,"18.1":0.01728,"18.3":0.00576,"18.4":0.01152,"18.5-18.6":0.19584,"26.0":0.1152,"26.1":0.36864},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0007,"5.0-5.1":0,"6.0-6.1":0.00279,"7.0-7.1":0.00209,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00627,"10.0-10.2":0.0007,"10.3":0.01115,"11.0-11.2":0.12957,"11.3-11.4":0.00418,"12.0-12.1":0.00139,"12.2-12.5":0.03274,"13.0-13.1":0,"13.2":0.00348,"13.3":0.00139,"13.4-13.7":0.00627,"14.0-14.4":0.01045,"14.5-14.8":0.01324,"15.0-15.1":0.01115,"15.2-15.3":0.00906,"15.4":0.00975,"15.5":0.01045,"15.6-15.8":0.15117,"16.0":0.01881,"16.1":0.03483,"16.2":0.01811,"16.3":0.03344,"16.4":0.00836,"16.5":0.01393,"16.6-16.7":0.20411,"17.0":0.01742,"17.1":0.0209,"17.2":0.01533,"17.3":0.0216,"17.4":0.03553,"17.5":0.06757,"17.6-17.7":0.1658,"18.0":0.03692,"18.1":0.07802,"18.2":0.0418,"18.3":0.13584,"18.4":0.06966,"18.5-18.7":4.86458,"26.0":0.33369,"26.1":0.30443},P:{"22":0.01131,"28":0.23751,"29":4.41094,_:"4 20 21 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.08045,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.05512,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":31.87},R:{_:"0"},M:{"0":2.34472}};
Index: de_modules/caniuse-lite/data/regions/AZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/AZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01729,"68":0.00576,"69":0.00576,"115":0.03458,"123":0.00576,"125":0.01153,"132":0.38612,"140":0.01729,"142":0.00576,"143":0.02882,"144":0.35731,"145":0.1556,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 128 129 130 131 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"27":0.00576,"32":0.00576,"49":0.00576,"51":0.01153,"58":0.00576,"65":0.00576,"68":0.00576,"69":0.02305,"75":0.00576,"79":0.0461,"83":0.01153,"87":0.06339,"89":0.00576,"90":0.00576,"94":0.00576,"98":0.00576,"100":0.00576,"101":0.00576,"103":0.00576,"106":0.00576,"107":0.01153,"108":0.02305,"109":1.1065,"110":0.00576,"111":0.06339,"112":17.98632,"113":0.00576,"114":0.00576,"115":0.00576,"116":0.01153,"117":0.00576,"118":0.00576,"119":0.00576,"120":0.01153,"121":0.00576,"122":0.05763,"123":0.00576,"124":0.01153,"125":10.50019,"126":3.74595,"127":0.00576,"128":0.01153,"129":0.01153,"130":0.30544,"131":0.03458,"132":0.02882,"133":0.02882,"134":0.02305,"135":0.01729,"136":0.01729,"137":0.02305,"138":0.13831,"139":0.10373,"140":0.36307,"141":3.27915,"142":8.76552,"143":0.01729,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 59 60 61 62 63 64 66 67 70 71 72 73 74 76 77 78 80 81 84 85 86 88 91 92 93 95 96 97 99 102 104 105 144 145 146"},F:{"46":0.00576,"63":0.00576,"67":0.00576,"79":0.00576,"84":0.00576,"85":0.14984,"92":0.06339,"93":0.01153,"95":0.09221,"109":0.00576,"114":0.33425,"120":0.02882,"122":0.19594,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00576,"92":0.00576,"109":0.01153,"113":0.00576,"114":0.29391,"121":0.02305,"124":0.00576,"133":0.00576,"136":0.00576,"137":0.00576,"138":0.01153,"139":0.00576,"140":0.02882,"141":0.30544,"142":1.34278,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 122 123 125 126 127 128 129 130 131 132 134 135 143"},E:{"14":0.00576,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 17.0","5.1":0.00576,"14.1":0.01153,"15.6":0.05187,"16.1":0.00576,"16.3":0.00576,"16.6":0.01153,"17.1":0.01729,"17.2":0.02305,"17.3":0.01729,"17.4":0.02305,"17.5":0.02305,"17.6":0.04034,"18.0":0.08068,"18.1":0.00576,"18.2":0.06339,"18.3":0.06916,"18.4":0.06339,"18.5-18.6":0.09221,"26.0":0.12102,"26.1":0.1095,"26.2":0.00576},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00062,"5.0-5.1":0,"6.0-6.1":0.00249,"7.0-7.1":0.00186,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00559,"10.0-10.2":0.00062,"10.3":0.00994,"11.0-11.2":0.11558,"11.3-11.4":0.00373,"12.0-12.1":0.00124,"12.2-12.5":0.02921,"13.0-13.1":0,"13.2":0.00311,"13.3":0.00124,"13.4-13.7":0.00559,"14.0-14.4":0.00932,"14.5-14.8":0.01181,"15.0-15.1":0.00994,"15.2-15.3":0.00808,"15.4":0.0087,"15.5":0.00932,"15.6-15.8":0.13485,"16.0":0.01678,"16.1":0.03107,"16.2":0.01616,"16.3":0.02983,"16.4":0.00746,"16.5":0.01243,"16.6-16.7":0.18208,"17.0":0.01554,"17.1":0.01864,"17.2":0.01367,"17.3":0.01926,"17.4":0.03169,"17.5":0.06028,"17.6-17.7":0.1479,"18.0":0.03294,"18.1":0.0696,"18.2":0.03729,"18.3":0.12118,"18.4":0.06214,"18.5-18.7":4.33938,"26.0":0.29766,"26.1":0.27156},P:{"4":0.1504,"20":0.01003,"21":0.01003,"22":0.01003,"23":0.02005,"24":0.02005,"25":0.03008,"26":0.06016,"27":0.05013,"28":0.29078,"29":1.59429,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 14.0 15.0 16.0 18.0","6.2-6.4":0.04011,"7.2-7.4":0.05013,"12.0":0.01003,"13.0":0.01003,"17.0":0.01003,"19.0":0.01003},I:{"0":0.00423,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":1.00817,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.06586,"11":0.02635,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.09743},H:{"0":0},L:{"0":35.71027},R:{_:"0"},M:{"0":0.12708}};
Index: de_modules/caniuse-lite/data/regions/BA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00464,"52":0.06953,"88":0.00464,"115":0.29664,"125":0.02318,"127":0.00464,"128":0.00927,"133":0.00464,"137":0.00464,"138":0.05099,"139":0.00464,"140":0.02318,"141":0.01391,"142":0.00927,"143":0.03708,"144":0.69062,"145":0.88065,"146":0.00464,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 130 131 132 134 135 136 147 148 3.5 3.6"},D:{"49":0.01854,"53":0.01391,"55":0.00464,"64":0.01391,"69":0.00927,"70":0.00464,"71":0.00927,"72":0.00464,"75":0.00464,"76":0.01854,"78":0.01854,"79":0.57474,"80":0.00464,"83":0.01854,"85":0.00464,"86":0.00464,"87":0.29201,"88":0.00464,"89":0.00927,"91":0.02318,"93":0.00464,"94":0.06026,"96":0.00464,"98":0.00927,"99":0.00927,"100":0.00464,"101":0.00464,"103":0.02781,"106":0.02318,"108":0.02781,"109":2.27115,"111":0.04172,"112":5.92353,"113":0.00464,"114":0.02781,"116":0.03708,"118":0.00464,"119":0.03245,"120":0.02781,"121":0.02781,"122":0.06026,"123":0.01391,"124":0.01391,"125":0.45423,"126":0.75087,"127":0.01391,"128":0.01854,"129":0.01391,"130":0.02318,"131":0.05562,"132":0.06489,"133":0.03708,"134":0.13442,"135":0.05099,"136":0.04635,"137":0.06953,"138":0.18077,"139":0.16223,"140":0.37544,"141":4.8992,"142":15.57824,"143":0.01854,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 62 63 65 66 67 68 73 74 77 81 84 90 92 95 97 102 104 105 107 110 115 117 144 145 146"},F:{"28":0.00464,"36":0.00464,"40":0.00927,"46":0.08343,"69":0.00464,"79":0.00464,"85":0.00464,"92":0.02781,"93":0.00464,"95":0.06489,"119":0.00464,"122":0.66281,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00464,"92":0.00464,"109":0.01854,"114":0.06489,"118":0.00464,"122":0.00464,"129":0.00464,"131":0.00927,"133":0.00464,"134":0.00464,"136":0.00464,"137":0.00464,"138":0.00927,"139":0.01391,"140":0.04172,"141":0.19467,"142":2.32214,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 126 127 128 130 132 135 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.4 17.2 26.2","11.1":0.00464,"12.1":0.01854,"13.1":0.02781,"14.1":0.00464,"15.6":0.06026,"16.1":0.00464,"16.2":0.00927,"16.3":0.00927,"16.5":0.00927,"16.6":0.05562,"17.0":0.00464,"17.1":0.05562,"17.3":0.00464,"17.4":0.00927,"17.5":0.01854,"17.6":0.06953,"18.0":0.00464,"18.1":0.00464,"18.2":0.00927,"18.3":0.01391,"18.4":0.02318,"18.5-18.6":0.08343,"26.0":0.08807,"26.1":0.08343},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00078,"5.0-5.1":0,"6.0-6.1":0.00311,"7.0-7.1":0.00233,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00699,"10.0-10.2":0.00078,"10.3":0.01243,"11.0-11.2":0.14449,"11.3-11.4":0.00466,"12.0-12.1":0.00155,"12.2-12.5":0.03651,"13.0-13.1":0,"13.2":0.00388,"13.3":0.00155,"13.4-13.7":0.00699,"14.0-14.4":0.01165,"14.5-14.8":0.01476,"15.0-15.1":0.01243,"15.2-15.3":0.0101,"15.4":0.01088,"15.5":0.01165,"15.6-15.8":0.16858,"16.0":0.02098,"16.1":0.03884,"16.2":0.0202,"16.3":0.03729,"16.4":0.00932,"16.5":0.01554,"16.6-16.7":0.22762,"17.0":0.01942,"17.1":0.02331,"17.2":0.01709,"17.3":0.02408,"17.4":0.03962,"17.5":0.07535,"17.6-17.7":0.18489,"18.0":0.04117,"18.1":0.08701,"18.2":0.04661,"18.3":0.15149,"18.4":0.07769,"18.5-18.7":5.42476,"26.0":0.37211,"26.1":0.33948},P:{"4":0.47588,"20":0.01035,"21":0.01035,"22":0.01035,"23":0.03104,"24":0.02069,"25":0.02069,"26":0.08276,"27":0.12414,"28":0.39311,"29":3.05181,"5.0-5.4":0.06207,"6.2-6.4":0.10345,"7.2-7.4":0.34139,"8.2":0.02069,_:"9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.4286,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00021},K:{"0":0.13949,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01854,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00537},H:{"0":0},L:{"0":45.44947},R:{_:"0"},M:{"0":0.1073}};
Index: de_modules/caniuse-lite/data/regions/BB.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BB.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.10668,"115":0.00508,"116":0.00508,"136":0.00508,"140":0.127,"142":0.02032,"143":0.01016,"144":0.71628,"145":0.77724,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 146 147 148 3.5 3.6"},D:{"43":0.00508,"62":0.00508,"69":0.11684,"80":0.0254,"87":0.01524,"91":0.00508,"93":0.00508,"101":0.00508,"103":0.29464,"106":0.00508,"109":0.15748,"111":0.10668,"116":0.01524,"119":0.00508,"122":0.02032,"124":0.00508,"125":5.51688,"126":0.06096,"127":0.01016,"128":0.09652,"129":0.02032,"130":0.01016,"131":0.10668,"132":0.11684,"133":0.00508,"134":0.01524,"135":0.01524,"137":0.02032,"138":0.29464,"139":0.3302,"140":1.08712,"141":4.5974,"142":17.33296,"143":0.03048,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 81 83 84 85 86 88 89 90 92 94 95 96 97 98 99 100 102 104 105 107 108 110 112 113 114 115 117 118 120 121 123 136 144 145 146"},F:{"92":0.0254,"93":0.00508,"95":0.05588,"122":0.30988,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00508,"114":0.11684,"136":0.00508,"137":0.00508,"138":0.00508,"139":0.00508,"140":0.09144,"141":0.77216,"142":7.42696,"143":0.00508,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.5 16.0 17.0","13.1":0.01016,"14.1":0.01524,"15.2-15.3":0.00508,"15.4":0.00508,"15.6":0.0762,"16.1":0.38608,"16.2":0.00508,"16.3":0.00508,"16.4":0.03556,"16.5":0.00508,"16.6":0.06604,"17.1":0.21844,"17.2":0.01524,"17.3":0.01016,"17.4":0.01524,"17.5":0.0254,"17.6":0.16256,"18.0":0.0508,"18.1":0.23876,"18.2":0.01524,"18.3":0.04064,"18.4":0.03048,"18.5-18.6":0.16764,"26.0":0.36068,"26.1":0.27432,"26.2":0.01016},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00121,"5.0-5.1":0,"6.0-6.1":0.00483,"7.0-7.1":0.00362,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01087,"10.0-10.2":0.00121,"10.3":0.01933,"11.0-11.2":0.22466,"11.3-11.4":0.00725,"12.0-12.1":0.00242,"12.2-12.5":0.05677,"13.0-13.1":0,"13.2":0.00604,"13.3":0.00242,"13.4-13.7":0.01087,"14.0-14.4":0.01812,"14.5-14.8":0.02295,"15.0-15.1":0.01933,"15.2-15.3":0.0157,"15.4":0.01691,"15.5":0.01812,"15.6-15.8":0.26211,"16.0":0.03261,"16.1":0.06039,"16.2":0.0314,"16.3":0.05798,"16.4":0.01449,"16.5":0.02416,"16.6-16.7":0.3539,"17.0":0.0302,"17.1":0.03624,"17.2":0.02657,"17.3":0.03744,"17.4":0.0616,"17.5":0.11716,"17.6-17.7":0.28747,"18.0":0.06402,"18.1":0.13528,"18.2":0.07247,"18.3":0.23553,"18.4":0.12079,"18.5-18.7":8.43449,"26.0":0.57856,"26.1":0.52783},P:{"21":0.0213,"22":0.06389,"23":0.01065,"24":0.03194,"25":0.0213,"26":0.03194,"27":0.0213,"28":0.29815,"29":5.36674,_:"4 20 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.03194,"9.2":0.01065,"17.0":0.05324},I:{"0":0.03439,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.15744,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00492},O:{"0":0.00984},H:{"0":0},L:{"0":33.31036},R:{_:"0"},M:{"0":1.71216}};
Index: de_modules/caniuse-lite/data/regions/BD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02505,"115":0.83285,"127":0.00626,"128":0.00626,"131":0.00626,"133":0.00626,"134":0.00626,"135":0.00626,"136":0.00626,"137":0.00626,"138":0.00626,"139":0.02505,"140":0.10019,"141":0.00626,"142":0.01252,"143":0.04383,"144":0.71387,"145":2.7678,"146":0.08767,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 132 147 148 3.5 3.6"},D:{"66":0.00626,"69":0.03131,"73":0.00626,"75":0.00626,"79":0.00626,"86":0.00626,"87":0.00626,"93":0.00626,"103":0.02505,"104":0.06888,"107":0.00626,"108":0.00626,"109":1.34633,"111":0.02505,"112":24.12122,"114":0.00626,"116":0.00626,"119":0.01252,"120":0.00626,"121":0.00626,"122":0.09393,"123":0.00626,"124":0.01879,"125":0.73265,"126":2.1416,"127":0.01252,"128":0.02505,"129":0.01879,"130":0.04383,"131":0.10019,"132":0.07514,"133":0.04383,"134":0.48844,"135":0.06262,"136":0.05636,"137":0.04383,"138":0.16281,"139":3.09343,"140":0.16907,"141":2.23553,"142":15.14778,"143":0.08141,"144":0.01879,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 74 76 77 78 80 81 83 84 85 88 89 90 91 92 94 95 96 97 98 99 100 101 102 105 106 110 113 115 117 118 145 146"},F:{"91":0.00626,"92":0.03131,"93":0.01252,"95":0.01252,"114":0.00626,"122":0.08141,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00626,"92":0.01252,"109":0.00626,"114":0.20038,"131":0.01879,"132":0.01252,"133":0.00626,"134":0.00626,"135":0.00626,"136":0.01252,"137":0.00626,"138":0.00626,"139":0.00626,"140":0.00626,"141":0.07514,"142":1.04575,"143":0.00626,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.1 17.2 17.3 18.0 18.1 18.2 26.2","15.6":0.00626,"16.5":0.00626,"16.6":0.01252,"17.4":0.00626,"17.5":0.00626,"17.6":0.01252,"18.3":0.00626,"18.4":0.00626,"18.5-18.6":0.01252,"26.0":0.03757,"26.1":0.03757},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00016,"5.0-5.1":0,"6.0-6.1":0.00062,"7.0-7.1":0.00047,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0014,"10.0-10.2":0.00016,"10.3":0.00249,"11.0-11.2":0.02899,"11.3-11.4":0.00094,"12.0-12.1":0.00031,"12.2-12.5":0.00733,"13.0-13.1":0,"13.2":0.00078,"13.3":0.00031,"13.4-13.7":0.0014,"14.0-14.4":0.00234,"14.5-14.8":0.00296,"15.0-15.1":0.00249,"15.2-15.3":0.00203,"15.4":0.00218,"15.5":0.00234,"15.6-15.8":0.03382,"16.0":0.00421,"16.1":0.00779,"16.2":0.00405,"16.3":0.00748,"16.4":0.00187,"16.5":0.00312,"16.6-16.7":0.04567,"17.0":0.0039,"17.1":0.00468,"17.2":0.00343,"17.3":0.00483,"17.4":0.00795,"17.5":0.01512,"17.6-17.7":0.0371,"18.0":0.00826,"18.1":0.01746,"18.2":0.00935,"18.3":0.0304,"18.4":0.01559,"18.5-18.7":1.08847,"26.0":0.07466,"26.1":0.06812},P:{"4":0.02222,"25":0.01111,"26":0.01111,"27":0.01111,"28":0.04444,"29":0.26664,_:"20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.02222,"17.0":0.01111},I:{"0":0.03733,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.99543,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0616,"9":0.0088,"10":0.0088,"11":0.24642,_:"6 7 5.5"},N:{_:"10 11"},S:{"2.5":0.01495,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00374},O:{"0":0.50089},H:{"0":0.04},L:{"0":38.02869},R:{_:"0"},M:{"0":0.10093}};
Index: de_modules/caniuse-lite/data/regions/BE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00484,"52":0.00968,"60":0.00484,"78":0.01452,"88":0.00484,"102":0.00968,"110":0.00484,"113":0.00484,"115":0.15007,"123":0.00968,"125":0.00484,"128":0.01452,"130":0.00484,"132":0.00968,"135":0.00484,"136":0.00968,"137":0.00484,"138":0.00484,"139":0.00484,"140":0.12587,"141":0.00484,"142":0.03873,"143":0.03873,"144":1.20057,"145":1.40389,"146":0.01452,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 111 112 114 116 117 118 119 120 121 122 124 126 127 129 131 133 134 147 148 3.5 3.6"},D:{"39":0.01452,"40":0.01452,"41":0.01452,"42":0.01452,"43":0.01452,"44":0.01452,"45":0.01452,"46":0.01452,"47":0.01452,"48":0.01452,"49":0.02421,"50":0.01452,"51":0.01452,"52":0.01452,"53":0.01452,"54":0.01452,"55":0.01452,"56":0.01452,"57":0.01452,"58":0.01452,"59":0.01452,"60":0.01452,"70":0.29046,"74":0.00968,"79":0.00968,"80":0.00484,"87":0.01936,"90":0.00484,"96":0.00968,"100":0.00484,"101":0.00484,"102":0.00484,"103":0.02905,"104":0.00484,"108":0.00968,"109":0.37276,"111":0.00484,"112":0.00484,"114":0.01452,"115":0.00484,"116":0.1065,"117":0.00484,"118":0.00484,"119":0.00968,"120":0.01452,"121":0.01452,"122":0.07262,"123":0.01452,"124":0.01452,"125":0.19364,"126":0.02905,"127":0.00968,"128":0.09682,"129":0.01452,"130":0.13071,"131":0.06777,"132":0.04841,"133":0.06293,"134":0.04357,"135":0.04841,"136":0.05325,"137":0.09198,"138":0.30498,"139":0.21785,"140":0.43085,"141":5.14598,"142":15.52509,"143":0.02421,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 71 72 73 75 76 77 78 81 83 84 85 86 88 89 91 92 93 94 95 97 98 99 105 106 107 110 113 144 145 146"},F:{"46":0.00968,"92":0.01936,"93":0.00484,"95":0.00968,"113":0.00484,"114":0.00484,"120":0.00484,"121":0.01936,"122":0.43085,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.03873,"114":0.00484,"120":0.00968,"121":0.00484,"122":0.00484,"124":0.00484,"125":0.00484,"126":0.00484,"128":0.00968,"129":0.00484,"130":0.00484,"131":0.01452,"132":0.00484,"133":0.00484,"134":0.00968,"135":0.00968,"136":0.01452,"137":0.00968,"138":0.01936,"139":0.01936,"140":0.09198,"141":0.74551,"142":6.62733,"143":0.00968,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 123 127"},E:{"14":0.01452,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00968,"13.1":0.03389,"14.1":0.03873,"15.1":0.00484,"15.2-15.3":0.00484,"15.4":0.01452,"15.5":0.01452,"15.6":0.30982,"16.0":0.02905,"16.1":0.03873,"16.2":0.01936,"16.3":0.05809,"16.4":0.01936,"16.5":0.03389,"16.6":0.32919,"17.0":0.01936,"17.1":0.33887,"17.2":0.04841,"17.3":0.04357,"17.4":0.08714,"17.5":0.15975,"17.6":0.51315,"18.0":0.05809,"18.1":0.09198,"18.2":0.04841,"18.3":0.16944,"18.4":0.13071,"18.5-18.6":0.4599,"26.0":0.68258,"26.1":1.01177,"26.2":0.01936},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00211,"5.0-5.1":0,"6.0-6.1":0.00846,"7.0-7.1":0.00634,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01903,"10.0-10.2":0.00211,"10.3":0.03383,"11.0-11.2":0.39323,"11.3-11.4":0.01268,"12.0-12.1":0.00423,"12.2-12.5":0.09937,"13.0-13.1":0,"13.2":0.01057,"13.3":0.00423,"13.4-13.7":0.01903,"14.0-14.4":0.03171,"14.5-14.8":0.04017,"15.0-15.1":0.03383,"15.2-15.3":0.02748,"15.4":0.0296,"15.5":0.03171,"15.6-15.8":0.45877,"16.0":0.05708,"16.1":0.10571,"16.2":0.05497,"16.3":0.10148,"16.4":0.02537,"16.5":0.04228,"16.6-16.7":0.61945,"17.0":0.05285,"17.1":0.06342,"17.2":0.04651,"17.3":0.06554,"17.4":0.10782,"17.5":0.20507,"17.6-17.7":0.50317,"18.0":0.11205,"18.1":0.23679,"18.2":0.12685,"18.3":0.41226,"18.4":0.21142,"18.5-18.7":14.76317,"26.0":1.01268,"26.1":0.92389},P:{"4":0.01057,"21":0.01057,"22":0.01057,"23":0.01057,"24":0.01057,"25":0.01057,"26":0.05286,"27":0.05286,"28":0.22203,"29":3.01324,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01057,"9.2":0.01057},I:{"0":0.03606,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.13413,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03873,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01548},H:{"0":0},L:{"0":28.85204},R:{_:"0"},M:{"0":0.34565}};
Index: de_modules/caniuse-lite/data/regions/BF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02142,"43":0.00306,"45":0.00306,"47":0.00306,"48":0.00306,"56":0.00306,"60":0.00306,"62":0.00306,"70":0.0153,"72":0.00918,"78":0.00918,"79":0.00306,"104":0.00306,"112":0.00306,"115":0.10098,"127":0.0306,"128":0.00306,"130":0.00306,"131":0.00306,"134":0.00306,"136":0.00306,"137":0.00306,"138":0.14382,"139":0.00306,"140":0.02448,"141":0.00612,"142":0.01836,"143":0.0306,"144":0.92106,"145":1.2393,"146":0.00918,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 46 49 50 51 52 53 54 55 57 58 59 61 63 64 65 66 67 68 69 71 73 74 75 76 77 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 132 133 135 147 148 3.5 3.6"},D:{"43":0.00306,"49":0.00306,"51":0.00306,"58":0.00306,"60":0.00306,"64":0.00306,"67":0.00306,"68":0.00306,"69":0.02754,"72":0.00306,"73":0.0153,"74":0.01224,"75":0.02754,"79":0.0153,"80":0.00306,"81":0.00612,"83":0.00918,"84":0.00306,"86":0.02448,"87":0.0459,"89":0.00306,"90":0.00306,"92":0.00306,"93":0.00612,"94":0.01224,"95":0.00306,"97":0.00306,"98":0.02142,"103":0.01224,"106":0.01836,"108":0.00612,"109":0.89352,"110":0.00612,"111":0.02448,"113":0.00612,"114":0.00918,"115":0.00612,"116":0.01836,"119":0.01224,"120":0.00306,"121":0.00612,"122":0.0306,"123":0.00918,"124":0.00612,"125":0.44064,"126":0.1989,"127":0.02448,"128":0.03672,"129":0.01224,"130":0.0153,"131":0.02754,"132":0.04284,"133":0.04284,"134":0.03366,"135":0.03366,"136":0.03978,"137":0.05814,"138":0.1683,"139":0.10098,"140":0.2142,"141":1.78398,"142":5.83542,"143":0.00918,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 52 53 54 55 56 57 59 61 62 63 65 66 70 71 76 77 78 85 88 91 96 99 100 101 102 104 105 107 112 117 118 144 145 146"},F:{"46":0.00612,"63":0.00306,"64":0.00306,"79":0.00612,"92":0.05814,"93":0.00306,"95":0.04896,"102":0.00306,"113":0.00306,"114":0.00306,"120":0.0153,"122":0.2754,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00306,"13":0.00306,"14":0.00306,"17":0.00306,"18":0.02142,"84":0.00306,"85":0.00306,"89":0.00306,"90":0.01224,"92":0.05814,"100":0.00306,"101":0.00306,"109":0.00612,"111":0.00306,"113":0.10098,"114":0.41922,"122":0.00612,"128":0.00306,"131":0.00306,"133":0.00306,"134":0.00306,"135":0.00612,"136":0.00306,"137":0.02754,"138":0.01224,"139":0.0153,"140":0.02142,"141":0.30906,"142":3.1671,"143":0.0153,_:"15 16 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 102 103 104 105 106 107 108 110 112 115 116 117 118 119 120 121 123 124 125 126 127 129 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.2 17.4 18.0 18.2","5.1":0.00306,"12.1":0.00306,"13.1":0.01224,"14.1":0.00306,"15.1":0.00306,"15.6":0.02448,"16.6":0.03366,"17.0":0.00306,"17.1":0.00306,"17.3":0.00612,"17.5":0.00306,"17.6":0.05202,"18.1":0.01224,"18.3":0.00306,"18.4":0.01224,"18.5-18.6":0.02754,"26.0":0.04284,"26.1":0.10404,"26.2":0.00306},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00039,"5.0-5.1":0,"6.0-6.1":0.00156,"7.0-7.1":0.00117,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00351,"10.0-10.2":0.00039,"10.3":0.00624,"11.0-11.2":0.07255,"11.3-11.4":0.00234,"12.0-12.1":0.00078,"12.2-12.5":0.01833,"13.0-13.1":0,"13.2":0.00195,"13.3":0.00078,"13.4-13.7":0.00351,"14.0-14.4":0.00585,"14.5-14.8":0.00741,"15.0-15.1":0.00624,"15.2-15.3":0.00507,"15.4":0.00546,"15.5":0.00585,"15.6-15.8":0.08464,"16.0":0.01053,"16.1":0.0195,"16.2":0.01014,"16.3":0.01872,"16.4":0.00468,"16.5":0.0078,"16.6-16.7":0.11428,"17.0":0.00975,"17.1":0.0117,"17.2":0.00858,"17.3":0.01209,"17.4":0.01989,"17.5":0.03783,"17.6-17.7":0.09283,"18.0":0.02067,"18.1":0.04368,"18.2":0.0234,"18.3":0.07606,"18.4":0.039,"18.5-18.7":2.72357,"26.0":0.18682,"26.1":0.17044},P:{"4":0.01061,"24":0.01061,"25":0.02123,"26":0.01061,"27":0.03184,"28":0.15921,"29":0.27597,_:"20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02123},I:{"0":0.13168,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":2.3884,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.04164},O:{"0":0.04164},H:{"0":0.11},L:{"0":72.6891},R:{_:"0"},M:{"0":0.1041}};
Index: de_modules/caniuse-lite/data/regions/BG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.03907,"68":0.00391,"78":0.00391,"84":0.04298,"86":0.00391,"88":0.00391,"89":0.02344,"100":0.00391,"102":0.00391,"104":0.00391,"107":0.00391,"113":0.00391,"115":0.47275,"122":0.00391,"124":0.00391,"125":0.02344,"127":0.00781,"128":0.01563,"130":0.00391,"132":0.00391,"133":0.00391,"134":0.00391,"135":0.00781,"136":0.02344,"137":0.00781,"138":0.00781,"139":0.00781,"140":0.12502,"141":0.00781,"142":0.02735,"143":0.05079,"144":1.19164,"145":1.37917,"146":0.00391,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 87 90 91 92 93 94 95 96 97 98 99 101 103 105 106 108 109 110 111 112 114 116 117 118 119 120 121 123 126 129 131 147 148 3.5 3.6"},D:{"32":0.01172,"38":0.00391,"39":0.01172,"40":0.01172,"41":0.01563,"42":0.01172,"43":0.01172,"44":0.01172,"45":0.01172,"46":0.01172,"47":0.01172,"48":0.01172,"49":0.02344,"50":0.01172,"51":0.01172,"52":0.01172,"53":0.01563,"54":0.01172,"55":0.01172,"56":0.01172,"57":0.01172,"58":0.01172,"59":0.01172,"60":0.01172,"69":0.00391,"73":0.00391,"75":0.00391,"77":0.00391,"79":0.05861,"81":0.00391,"83":0.00781,"85":0.00391,"86":0.00391,"87":0.04688,"88":0.00391,"89":0.00391,"91":0.02344,"93":0.00391,"94":0.00391,"97":0.00391,"98":2.79351,"99":0.00391,"100":0.00781,"102":0.00781,"103":0.01172,"104":0.03907,"106":0.00391,"107":0.00391,"108":0.04298,"109":1.48075,"110":0.00391,"111":0.02735,"112":1.34792,"113":0.00391,"114":0.01954,"115":0.00781,"116":0.01563,"117":0.00391,"118":0.00391,"119":0.01172,"120":0.03516,"121":0.02344,"122":0.04298,"123":0.01172,"124":0.06251,"125":0.03907,"126":0.28521,"127":0.01563,"128":0.04688,"129":0.01172,"130":0.01172,"131":0.03907,"132":0.02735,"133":0.01954,"134":0.03516,"135":0.04688,"136":0.03907,"137":0.04688,"138":0.12893,"139":0.10549,"140":0.2227,"141":5.48152,"142":12.11561,"143":0.02344,"144":0.00391,_:"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 33 34 35 36 37 61 62 63 64 65 66 67 68 70 71 72 74 76 78 80 84 90 92 95 96 101 105 145 146"},F:{"46":0.01172,"85":0.00781,"86":0.00391,"90":0.00391,"92":0.03516,"93":0.00781,"95":0.05079,"120":0.00781,"122":0.28521,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01172,"109":0.04688,"114":0.03126,"124":0.00391,"129":0.00391,"131":0.00391,"133":0.00391,"134":0.00781,"135":0.00391,"136":0.00781,"137":0.00391,"138":0.00781,"139":0.01172,"140":0.01563,"141":0.26568,"142":2.5669,"143":0.00391,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.4 17.0","13.1":0.00391,"14.1":0.01172,"15.6":0.02344,"16.0":0.00391,"16.1":0.00391,"16.2":0.00391,"16.3":0.00391,"16.5":0.00391,"16.6":0.03516,"17.1":0.02735,"17.2":0.00391,"17.3":0.00391,"17.4":0.01172,"17.5":0.00781,"17.6":0.04688,"18.0":0.00391,"18.1":0.00781,"18.2":0.00391,"18.3":0.01172,"18.4":0.00781,"18.5-18.6":0.03516,"26.0":0.06642,"26.1":0.08595,"26.2":0.00391},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00099,"5.0-5.1":0,"6.0-6.1":0.00397,"7.0-7.1":0.00298,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00894,"10.0-10.2":0.00099,"10.3":0.01589,"11.0-11.2":0.1847,"11.3-11.4":0.00596,"12.0-12.1":0.00199,"12.2-12.5":0.04667,"13.0-13.1":0,"13.2":0.00496,"13.3":0.00199,"13.4-13.7":0.00894,"14.0-14.4":0.01489,"14.5-14.8":0.01887,"15.0-15.1":0.01589,"15.2-15.3":0.01291,"15.4":0.0139,"15.5":0.01489,"15.6-15.8":0.21548,"16.0":0.02681,"16.1":0.04965,"16.2":0.02582,"16.3":0.04766,"16.4":0.01192,"16.5":0.01986,"16.6-16.7":0.29095,"17.0":0.02482,"17.1":0.02979,"17.2":0.02185,"17.3":0.03078,"17.4":0.05064,"17.5":0.09632,"17.6-17.7":0.23633,"18.0":0.05263,"18.1":0.11122,"18.2":0.05958,"18.3":0.19363,"18.4":0.0993,"18.5-18.7":6.93409,"26.0":0.47565,"26.1":0.43394},P:{"4":0.08193,"20":0.01024,"21":0.01024,"22":0.02048,"23":0.04096,"24":0.04096,"25":0.04096,"26":0.04096,"27":0.10241,"28":0.46084,"29":2.65238,"5.0-5.4":0.01024,_:"6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.03072,"8.2":0.01024,"19.0":0.01024},I:{"0":0.073,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.28023,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01954,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02437},H:{"0":0},L:{"0":51.42372},R:{_:"0"},M:{"0":0.29242}};
Index: de_modules/caniuse-lite/data/regions/BH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00773,"115":0.01545,"138":0.00386,"140":0.00386,"142":0.00386,"144":0.19315,"145":0.22405,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 141 143 146 147 148 3.5 3.6"},D:{"41":0.00386,"52":0.00386,"64":0.00386,"65":0.00386,"68":0.00386,"69":0.00773,"79":0.06181,"80":0.00386,"83":0.00386,"87":0.05022,"91":0.00773,"94":0.01545,"95":0.01932,"98":0.00773,"99":0.00386,"101":0.00386,"103":0.06567,"104":0.0309,"108":0.00386,"109":0.27427,"110":0.00386,"111":0.02318,"112":12.21481,"114":0.00386,"116":0.01932,"118":0.00386,"119":0.04636,"120":0.01159,"121":0.00773,"122":0.05022,"123":0.00386,"124":0.00773,"125":0.18542,"126":1.95082,"127":0.03477,"128":0.0309,"129":0.00386,"130":0.01159,"131":0.03863,"132":0.03477,"133":0.01545,"134":0.01932,"135":0.01545,"136":0.01545,"137":0.0309,"138":0.46356,"139":0.0734,"140":0.27814,"141":3.41876,"142":7.35129,"143":0.01545,"144":0.00386,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 66 67 70 71 72 73 74 75 76 77 78 81 84 85 86 88 89 90 92 93 96 97 100 102 105 106 107 113 115 117 145 146"},F:{"46":0.00386,"92":0.08112,"93":0.00773,"122":0.24723,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00386,"114":0.13134,"122":0.00386,"126":0.00386,"130":0.00386,"131":0.00386,"132":0.00386,"134":0.00386,"138":0.00386,"139":0.00386,"140":0.02704,"141":0.29745,"142":2.56503,"143":0.00386,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 128 129 133 135 136 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 17.0","13.1":0.00386,"14.1":0.00773,"15.5":0.00386,"15.6":0.02318,"16.1":0.00773,"16.2":0.00386,"16.3":0.01932,"16.4":0.00386,"16.5":0.01159,"16.6":0.03863,"17.1":0.02318,"17.2":0.00386,"17.3":0.00773,"17.4":0.00386,"17.5":0.01545,"17.6":0.05795,"18.0":0.00386,"18.1":0.01159,"18.2":0.01159,"18.3":0.0309,"18.4":0.01159,"18.5-18.6":0.08112,"26.0":0.14679,"26.1":0.10816,"26.2":0.00386},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0,"6.0-6.1":0.01041,"7.0-7.1":0.00781,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02342,"10.0-10.2":0.0026,"10.3":0.04164,"11.0-11.2":0.4841,"11.3-11.4":0.01562,"12.0-12.1":0.00521,"12.2-12.5":0.12233,"13.0-13.1":0,"13.2":0.01301,"13.3":0.00521,"13.4-13.7":0.02342,"14.0-14.4":0.03904,"14.5-14.8":0.04945,"15.0-15.1":0.04164,"15.2-15.3":0.03384,"15.4":0.03644,"15.5":0.03904,"15.6-15.8":0.56479,"16.0":0.07027,"16.1":0.13014,"16.2":0.06767,"16.3":0.12493,"16.4":0.03123,"16.5":0.05205,"16.6-16.7":0.76259,"17.0":0.06507,"17.1":0.07808,"17.2":0.05726,"17.3":0.08068,"17.4":0.13274,"17.5":0.25246,"17.6-17.7":0.61944,"18.0":0.13794,"18.1":0.2915,"18.2":0.15616,"18.3":0.50753,"18.4":0.26027,"18.5-18.7":18.17467,"26.0":1.24669,"26.1":1.13738},P:{"4":0.03076,"25":0.09228,"26":0.09228,"27":0.13329,"28":0.50241,"29":2.49155,_:"20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02051},I:{"0":0.01839,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.55847,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0309,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.64439},H:{"0":0},L:{"0":36.15235},R:{_:"0"},M:{"0":0.47255}};
Index: de_modules/caniuse-lite/data/regions/BI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01281,"49":0.00427,"59":0.00854,"75":0.00854,"80":0.01708,"82":0.00427,"89":0.01281,"94":0.02135,"96":0.00854,"104":0.00427,"110":0.00427,"112":0.00427,"113":0.06404,"115":0.0683,"116":0.00854,"127":0.02988,"128":0.01281,"129":0.00854,"130":0.01281,"134":0.00854,"136":0.03842,"139":0.02561,"140":0.05123,"141":0.01281,"142":0.16649,"143":0.03415,"144":0.91357,"145":0.73427,"146":0.01708,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 81 83 84 85 86 87 88 90 91 92 93 95 97 98 99 100 101 102 103 105 106 107 108 109 111 114 117 118 119 120 121 122 123 124 125 126 131 132 133 135 137 138 147 148 3.5 3.6"},D:{"39":0.00854,"43":0.00427,"46":0.00427,"55":0.00427,"59":0.00427,"63":0.01708,"64":0.02561,"67":0.02561,"68":0.00427,"69":0.06404,"70":0.01281,"71":0.01281,"74":0.00427,"77":0.00427,"78":0.00427,"79":0.01281,"80":0.11526,"81":0.00427,"84":0.02988,"87":0.00427,"88":0.00854,"93":0.01281,"94":0.07684,"97":0.01708,"98":0.00854,"99":0.01281,"100":0.00854,"101":0.01281,"102":0.02561,"103":0.08538,"105":0.01708,"106":0.01708,"107":0.00427,"108":0.00854,"109":0.96053,"111":0.01708,"112":0.00854,"113":0.02135,"114":0.01281,"116":0.11953,"117":0.00427,"119":0.01281,"120":0.02561,"122":0.02988,"123":0.07257,"124":0.00427,"125":0.20918,"126":0.04696,"127":0.01281,"128":0.01708,"129":0.00854,"130":0.01281,"131":0.0683,"132":0.03842,"133":0.08538,"134":0.03842,"135":0.06404,"136":0.11953,"137":0.19637,"138":0.5507,"139":0.44398,"140":0.53363,"141":5.16976,"142":8.42701,"143":0.00854,_:"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 33 34 35 36 37 38 40 41 42 44 45 47 48 49 50 51 52 53 54 56 57 58 60 61 62 65 66 72 73 75 76 83 85 86 89 90 91 92 95 96 104 110 115 118 121 144 145 146"},F:{"46":0.00427,"79":0.02561,"92":0.04696,"95":0.02988,"114":0.00854,"118":0.00427,"119":0.00427,"120":0.01281,"122":0.56778,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01281,"16":0.01708,"17":0.01281,"18":0.08965,"84":0.01281,"85":0.01708,"89":0.01281,"90":0.01281,"92":0.08538,"100":0.05123,"103":0.00854,"106":0.01281,"109":0.11953,"114":0.06404,"122":0.03415,"131":0.00854,"132":0.00427,"133":0.00854,"136":0.01281,"137":0.00427,"138":0.0555,"139":0.02988,"140":0.07257,"141":0.5507,"142":2.6852,_:"12 13 15 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 134 135 143"},E:{"14":0.00854,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.2 17.3 17.4 18.0 26.2","11.1":0.17503,"12.1":0.00427,"13.1":0.00854,"14.1":0.02561,"15.6":0.01708,"16.1":0.01281,"16.6":0.17503,"17.0":0.01281,"17.1":0.01281,"17.5":0.02561,"17.6":0.00427,"18.1":0.26895,"18.2":0.00427,"18.3":0.00854,"18.4":0.01281,"18.5-18.6":0.00854,"26.0":0.10246,"26.1":0.20918},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00053,"5.0-5.1":0,"6.0-6.1":0.00211,"7.0-7.1":0.00158,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00475,"10.0-10.2":0.00053,"10.3":0.00845,"11.0-11.2":0.09819,"11.3-11.4":0.00317,"12.0-12.1":0.00106,"12.2-12.5":0.02481,"13.0-13.1":0,"13.2":0.00264,"13.3":0.00106,"13.4-13.7":0.00475,"14.0-14.4":0.00792,"14.5-14.8":0.01003,"15.0-15.1":0.00845,"15.2-15.3":0.00686,"15.4":0.00739,"15.5":0.00792,"15.6-15.8":0.11456,"16.0":0.01425,"16.1":0.0264,"16.2":0.01373,"16.3":0.02534,"16.4":0.00634,"16.5":0.01056,"16.6-16.7":0.15468,"17.0":0.0132,"17.1":0.01584,"17.2":0.01161,"17.3":0.01637,"17.4":0.02692,"17.5":0.05121,"17.6-17.7":0.12564,"18.0":0.02798,"18.1":0.05913,"18.2":0.03168,"18.3":0.10294,"18.4":0.05279,"18.5-18.7":3.68645,"26.0":0.25287,"26.1":0.2307},P:{"4":0.01021,"21":0.01021,"22":0.02042,"23":0.01021,"24":0.11228,"25":0.05104,"26":0.02042,"27":0.06125,"28":0.24498,"29":0.67371,_:"20 5.0-5.4 8.2 10.1 12.0 14.0 15.0 17.0","6.2-6.4":0.02042,"7.2-7.4":0.12249,"9.2":0.01021,"11.1-11.2":0.03062,"13.0":0.02042,"16.0":0.05104,"18.0":0.01021,"19.0":0.01021},I:{"0":0.04579,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":4.03468,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.03842,_:"6 7 8 9 11 5.5"},N:{_:"10 11"},S:{"2.5":0.0172,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.08025},O:{"0":0.05732},H:{"0":1.64},L:{"0":58.4204},R:{_:"0"},M:{"0":0.08598}};
Index: de_modules/caniuse-lite/data/regions/BJ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BJ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.011,"16":0.00367,"43":0.00367,"47":0.00367,"69":0.00367,"72":0.011,"75":0.00734,"80":0.00367,"82":0.00367,"84":0.01834,"92":0.00367,"105":0.00367,"111":0.00367,"112":0.00734,"115":0.1027,"125":0.011,"127":0.03668,"128":0.00734,"129":0.00734,"136":0.00734,"139":0.00367,"140":0.04768,"141":0.00734,"142":0.01834,"143":0.05502,"144":0.83264,"145":0.83997,"146":0.00734,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 76 77 78 79 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 113 114 116 117 118 119 120 121 122 123 124 126 130 131 132 133 134 135 137 138 147 148 3.5 3.6"},D:{"47":0.02568,"51":0.00367,"54":0.00367,"57":0.00734,"58":0.00367,"59":0.00367,"64":0.00367,"68":0.00367,"69":0.01467,"70":0.00367,"71":0.00734,"72":0.00367,"73":0.04768,"74":0.04768,"75":0.011,"76":0.00734,"77":0.01467,"78":0.01467,"79":0.011,"80":0.00367,"81":0.01467,"83":0.02201,"84":0.00367,"85":0.011,"86":0.00734,"87":0.01834,"89":0.00367,"91":0.00367,"93":0.00734,"94":0.01467,"95":0.00734,"98":0.00734,"103":0.01834,"104":0.00734,"105":0.00367,"106":0.00734,"108":0.00734,"109":0.75561,"111":0.02201,"113":0.00367,"114":0.011,"115":0.00367,"116":0.03668,"117":0.00367,"118":0.00367,"119":0.011,"120":0.00734,"121":0.00367,"122":0.04035,"123":0.03668,"124":0.00734,"125":0.14305,"126":0.07336,"127":0.011,"128":0.04768,"129":0.00734,"130":0.00734,"131":0.03301,"132":0.02934,"133":0.01834,"134":0.03301,"135":0.03301,"136":0.08803,"137":0.05135,"138":0.24576,"139":0.26776,"140":0.33012,"141":2.77668,"142":10.78392,"143":0.03301,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 52 53 55 56 60 61 62 63 65 66 67 88 90 92 96 97 99 100 101 102 107 110 112 144 145 146"},F:{"80":0.00367,"89":0.00367,"90":0.00367,"91":0.02934,"92":0.15406,"93":0.02201,"95":0.10637,"108":0.00367,"114":0.00367,"117":0.00367,"119":0.00367,"120":0.01467,"122":0.35213,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 94 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 115 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.011,"16":0.00367,"17":0.00367,"18":0.04035,"84":0.00734,"85":0.00734,"89":0.00734,"90":0.06236,"92":0.05869,"100":0.01467,"107":0.01467,"109":0.00734,"110":0.00734,"114":0.1944,"122":0.011,"131":0.011,"132":0.00367,"133":0.02934,"134":0.00367,"136":0.01834,"137":0.00367,"138":0.02201,"139":0.01834,"140":0.06969,"141":0.42549,"142":2.93073,"143":0.00734,_:"13 14 15 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 135"},E:{"14":0.00367,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.4 15.5 16.0 16.1 18.0","5.1":0.00734,"13.1":0.011,"14.1":0.05135,"15.2-15.3":0.02201,"15.6":0.13205,"16.2":0.00367,"16.3":0.00734,"16.4":0.011,"16.5":0.00367,"16.6":0.11738,"17.0":0.00367,"17.1":0.06969,"17.2":0.00367,"17.3":0.00734,"17.4":0.00367,"17.5":0.011,"17.6":0.24209,"18.1":0.00367,"18.2":0.00734,"18.3":0.011,"18.4":0.00367,"18.5-18.6":0.02568,"26.0":0.10637,"26.1":0.1027,"26.2":0.00367},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0,"6.0-6.1":0.00379,"7.0-7.1":0.00284,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00853,"10.0-10.2":0.00095,"10.3":0.01516,"11.0-11.2":0.17619,"11.3-11.4":0.00568,"12.0-12.1":0.00189,"12.2-12.5":0.04452,"13.0-13.1":0,"13.2":0.00474,"13.3":0.00189,"13.4-13.7":0.00853,"14.0-14.4":0.01421,"14.5-14.8":0.018,"15.0-15.1":0.01516,"15.2-15.3":0.01231,"15.4":0.01326,"15.5":0.01421,"15.6-15.8":0.20556,"16.0":0.02558,"16.1":0.04736,"16.2":0.02463,"16.3":0.04547,"16.4":0.01137,"16.5":0.01895,"16.6-16.7":0.27755,"17.0":0.02368,"17.1":0.02842,"17.2":0.02084,"17.3":0.02937,"17.4":0.04831,"17.5":0.09188,"17.6-17.7":0.22545,"18.0":0.05021,"18.1":0.10609,"18.2":0.05684,"18.3":0.18472,"18.4":0.09473,"18.5-18.7":6.61477,"26.0":0.45374,"26.1":0.41396},P:{"4":0.01037,"22":0.01037,"23":0.05186,"24":0.01037,"25":0.01037,"26":0.01037,"27":0.01037,"28":0.16594,"29":0.26966,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.03111,"11.1-11.2":0.01037,"17.0":0.01037},I:{"0":0.04426,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":4.1289,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.02533,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00633},O:{"0":0.27861},H:{"0":4.28},L:{"0":54.54896},R:{_:"0"},M:{"0":0.15197}};
Index: de_modules/caniuse-lite/data/regions/BM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"143":0.00281,"144":0.00561,"145":0.01964,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"109":0.01964,"116":0.00281,"125":0.00842,"137":0.00281,"138":0.00281,"139":0.00281,"140":0.01964,"141":0.10098,"142":0.23282,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 143 144 145 146"},F:{"122":0.00281,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01403,"141":0.01683,"142":0.12062,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.2-15.3","14.1":0.02244,"15.1":0.01122,"15.4":0.01964,"15.5":0.07293,"15.6":0.6704,"16.0":0.01683,"16.1":0.08696,"16.2":0.13184,"16.3":0.26367,"16.4":0.05049,"16.5":0.12342,"16.6":1.59605,"17.0":0.02805,"17.1":1.38567,"17.2":0.0533,"17.3":0.07854,"17.4":0.15147,"17.5":0.22721,"17.6":0.85833,"18.0":0.05891,"18.1":0.29172,"18.2":0.08976,"18.3":0.47124,"18.4":0.21599,"18.5-18.6":0.94809,"26.0":1.2903,"26.1":1.82606,"26.2":0.06452},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00716,"5.0-5.1":0,"6.0-6.1":0.02866,"7.0-7.1":0.02149,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06448,"10.0-10.2":0.00716,"10.3":0.11464,"11.0-11.2":1.33265,"11.3-11.4":0.04299,"12.0-12.1":0.01433,"12.2-12.5":0.33674,"13.0-13.1":0,"13.2":0.03582,"13.3":0.01433,"13.4-13.7":0.06448,"14.0-14.4":0.10747,"14.5-14.8":0.13613,"15.0-15.1":0.11464,"15.2-15.3":0.09314,"15.4":0.10031,"15.5":0.10747,"15.6-15.8":1.55476,"16.0":0.19345,"16.1":0.35824,"16.2":0.18628,"16.3":0.34391,"16.4":0.08598,"16.5":0.1433,"16.6-16.7":2.09928,"17.0":0.17912,"17.1":0.21494,"17.2":0.15763,"17.3":0.22211,"17.4":0.3654,"17.5":0.69498,"17.6-17.7":1.70522,"18.0":0.37973,"18.1":0.80246,"18.2":0.42989,"18.3":1.39713,"18.4":0.71648,"18.5-18.7":50.03167,"26.0":3.43193,"26.1":3.13101},P:{"29":0.04317,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":0.26988},R:{_:"0"},M:{"0":0.0072}};
Index: de_modules/caniuse-lite/data/regions/BN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00573,"115":0.12615,"140":0.00573,"141":0.00573,"143":0.02294,"144":0.44725,"145":0.55046,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 142 146 147 148 3.5 3.6"},D:{"47":0.00573,"50":0.00573,"55":0.00573,"65":0.0172,"68":0.00573,"69":0.00573,"70":0.0172,"79":0.01147,"81":0.11468,"83":0.00573,"86":0.00573,"87":0.01147,"91":0.01147,"92":0.00573,"94":0.01147,"101":0.00573,"103":0.02867,"108":0.00573,"109":0.80276,"111":0.01147,"112":18.78458,"114":0.01147,"115":0.00573,"116":0.02867,"119":0.0172,"120":0.00573,"121":0.00573,"122":0.05161,"123":0.00573,"124":0.0172,"125":0.73395,"126":1.33029,"127":0.01147,"128":0.02867,"129":0.00573,"130":0.00573,"131":0.11468,"132":0.02294,"133":0.05161,"134":0.02294,"135":0.0172,"136":0.04014,"137":0.07454,"138":0.25803,"139":0.13762,"140":0.24083,"141":4.08834,"142":15.59075,"143":0.04014,"144":0.00573,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 52 53 54 56 57 58 59 60 61 62 63 64 66 67 71 72 73 74 75 76 77 78 80 84 85 88 89 90 93 95 96 97 98 99 100 102 104 105 106 107 110 113 117 118 145 146"},F:{"91":0.00573,"92":0.12615,"93":0.01147,"95":0.12615,"120":0.00573,"122":0.40711,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00573,"18":0.00573,"84":0.00573,"109":0.02867,"112":0.00573,"114":0.05734,"120":0.00573,"131":0.00573,"132":0.00573,"134":0.00573,"135":0.00573,"138":0.01147,"139":0.01147,"140":0.02867,"141":0.43578,"142":3.97366,"143":0.00573,_:"12 13 14 16 17 79 80 81 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 133 136 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0","13.1":0.00573,"14.1":0.01147,"15.4":0.00573,"15.5":0.01147,"15.6":0.07454,"16.1":0.0172,"16.2":0.01147,"16.3":0.01147,"16.4":0.00573,"16.5":0.01147,"16.6":0.11468,"17.0":0.00573,"17.1":0.04587,"17.2":0.02294,"17.3":0.0344,"17.4":0.0172,"17.5":0.04587,"17.6":0.35551,"18.0":0.02867,"18.1":0.04587,"18.2":0.01147,"18.3":0.06307,"18.4":0.02294,"18.5-18.6":0.17202,"26.0":0.41858,"26.1":0.28097,"26.2":0.00573},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00121,"5.0-5.1":0,"6.0-6.1":0.00482,"7.0-7.1":0.00362,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01085,"10.0-10.2":0.00121,"10.3":0.01929,"11.0-11.2":0.22424,"11.3-11.4":0.00723,"12.0-12.1":0.00241,"12.2-12.5":0.05666,"13.0-13.1":0,"13.2":0.00603,"13.3":0.00241,"13.4-13.7":0.01085,"14.0-14.4":0.01808,"14.5-14.8":0.02291,"15.0-15.1":0.01929,"15.2-15.3":0.01567,"15.4":0.01688,"15.5":0.01808,"15.6-15.8":0.26161,"16.0":0.03255,"16.1":0.06028,"16.2":0.03134,"16.3":0.05787,"16.4":0.01447,"16.5":0.02411,"16.6-16.7":0.35323,"17.0":0.03014,"17.1":0.03617,"17.2":0.02652,"17.3":0.03737,"17.4":0.06148,"17.5":0.11694,"17.6-17.7":0.28693,"18.0":0.0639,"18.1":0.13502,"18.2":0.07233,"18.3":0.23509,"18.4":0.12056,"18.5-18.7":8.41851,"26.0":0.57747,"26.1":0.52683},P:{"4":0.01054,"26":0.02107,"27":0.01054,"28":0.1475,"29":2.00185,_:"20 21 22 23 24 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.07375},I:{"0":0.00426,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":1.56269,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0128},O:{"0":0.52472},H:{"0":0.02},L:{"0":29.40255},R:{_:"0"},M:{"0":0.18344}};
Index: de_modules/caniuse-lite/data/regions/BO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.033,"52":0.0198,"61":0.0264,"64":0.0066,"78":0.0066,"113":0.0066,"115":0.21117,"125":0.033,"128":0.0132,"136":0.0066,"139":0.0132,"140":0.0264,"141":0.0066,"142":0.0132,"143":0.0198,"144":0.6731,"145":0.90406,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 137 138 146 147 148 3.5 3.6"},D:{"49":0.0066,"62":0.0066,"69":0.03959,"73":0.0066,"75":0.0066,"79":0.03959,"83":0.0066,"85":0.0066,"87":0.05939,"89":0.0066,"90":0.0066,"93":0.0066,"94":0.0066,"97":0.033,"99":0.0066,"100":0.0066,"103":0.0198,"105":0.0264,"108":0.0198,"109":1.21422,"110":0.0066,"111":0.04619,"112":24.69346,"114":0.04619,"116":0.05279,"117":0.0066,"119":0.0264,"120":0.0132,"121":0.0132,"122":0.09899,"123":0.0132,"124":0.03959,"125":0.47513,"126":5.02184,"127":0.033,"128":0.04619,"129":0.0198,"130":0.0132,"131":0.09239,"132":0.05939,"133":0.0264,"134":0.03959,"135":0.03959,"136":0.033,"137":0.07259,"138":0.21777,"139":0.09239,"140":0.27056,"141":4.02539,"142":14.23404,"143":0.0198,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 70 71 72 74 76 77 78 80 81 84 86 88 91 92 95 96 98 101 102 104 106 107 113 115 118 144 145 146"},F:{"79":0.0066,"92":0.0198,"95":0.05939,"99":0.04619,"118":0.0066,"120":0.0066,"122":0.85787,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0066,"92":0.0132,"109":0.0264,"114":0.36295,"122":0.0066,"131":0.0066,"134":0.0066,"135":0.0132,"136":0.0132,"137":0.07919,"138":0.0132,"139":0.0132,"140":0.0264,"141":0.40914,"142":2.6462,"143":0.0066,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2","5.1":0.0066,"13.1":0.0066,"15.6":0.0198,"16.6":0.06599,"17.1":0.033,"17.4":0.0132,"17.5":0.0066,"17.6":0.06599,"18.3":0.0132,"18.4":0.0066,"18.5-18.6":0.0198,"26.0":0.06599,"26.1":0.08579,"26.2":0.0066},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00025,"5.0-5.1":0,"6.0-6.1":0.00101,"7.0-7.1":0.00076,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00227,"10.0-10.2":0.00025,"10.3":0.00404,"11.0-11.2":0.04694,"11.3-11.4":0.00151,"12.0-12.1":0.0005,"12.2-12.5":0.01186,"13.0-13.1":0,"13.2":0.00126,"13.3":0.0005,"13.4-13.7":0.00227,"14.0-14.4":0.00379,"14.5-14.8":0.00479,"15.0-15.1":0.00404,"15.2-15.3":0.00328,"15.4":0.00353,"15.5":0.00379,"15.6-15.8":0.05476,"16.0":0.00681,"16.1":0.01262,"16.2":0.00656,"16.3":0.01211,"16.4":0.00303,"16.5":0.00505,"16.6-16.7":0.07394,"17.0":0.00631,"17.1":0.00757,"17.2":0.00555,"17.3":0.00782,"17.4":0.01287,"17.5":0.02448,"17.6-17.7":0.06006,"18.0":0.01337,"18.1":0.02826,"18.2":0.01514,"18.3":0.04921,"18.4":0.02524,"18.5-18.7":1.76219,"26.0":0.12088,"26.1":0.11028},P:{"4":0.04181,"21":0.01045,"22":0.02091,"23":0.01045,"24":0.02091,"25":0.02091,"26":0.06272,"27":0.02091,"28":0.16725,"29":0.86761,_:"20 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","5.0-5.4":0.01045,"7.2-7.4":0.08362,"11.1-11.2":0.01045,"17.0":0.06272,"19.0":0.01045},I:{"0":0.04415,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.31629,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.07919,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03061},H:{"0":0},L:{"0":32.98744},R:{_:"0"},M:{"0":0.10883}};
Index: de_modules/caniuse-lite/data/regions/BR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02761,"59":0.0069,"112":0.03452,"113":0.03452,"114":0.03452,"115":0.09664,"116":0.03452,"128":0.01381,"136":0.0069,"138":0.0069,"139":0.0069,"140":0.05522,"141":0.01381,"142":0.0069,"143":0.02071,"144":0.43489,"145":0.52463,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 146 147 148 3.5 3.6"},D:{"39":0.0069,"40":0.0069,"41":0.0069,"42":0.0069,"43":0.0069,"44":0.0069,"45":0.0069,"46":0.0069,"47":0.0069,"48":0.0069,"49":0.0069,"50":0.0069,"51":0.0069,"52":0.0069,"53":0.0069,"54":0.0069,"55":0.01381,"56":0.0069,"57":0.0069,"58":0.0069,"59":0.0069,"60":0.0069,"66":0.02071,"69":0.02761,"75":0.01381,"78":0.0069,"79":0.01381,"86":0.0069,"87":0.01381,"91":0.0069,"99":0.01381,"102":0.0069,"103":0.01381,"104":0.02071,"108":0.0069,"109":0.55914,"111":0.03452,"112":29.27562,"113":0.04142,"114":0.08284,"115":0.04142,"116":0.02761,"118":0.0069,"119":0.04832,"120":0.13116,"121":0.0069,"122":0.06213,"123":0.0069,"124":0.02761,"125":1.3806,"126":4.65953,"127":0.02071,"128":0.10355,"129":0.02071,"130":0.02761,"131":0.07593,"132":0.06903,"133":0.04832,"134":0.04832,"135":0.05522,"136":0.06213,"137":0.06903,"138":0.16567,"139":0.15877,"140":0.28993,"141":3.73452,"142":16.62242,"143":0.04142,"144":0.0069,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 68 70 71 72 73 74 76 77 80 81 83 84 85 88 89 90 92 93 94 95 96 97 98 100 101 105 106 107 110 117 145 146"},F:{"92":0.01381,"95":0.0069,"114":0.0069,"122":0.88358,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0069,"109":0.02071,"114":0.09664,"131":0.0069,"132":0.0069,"133":0.0069,"134":0.0069,"135":0.0069,"136":0.0069,"137":0.0069,"138":0.01381,"139":0.01381,"140":0.02761,"141":0.35205,"142":3.39628,"143":0.0069,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 18.2","5.1":0.0069,"11.1":0.0069,"15.6":0.01381,"16.5":0.02071,"16.6":0.02071,"17.1":0.0069,"17.4":0.0069,"17.5":0.0069,"17.6":0.02761,"18.0":0.0069,"18.1":0.01381,"18.3":0.0069,"18.4":0.0069,"18.5-18.6":0.02761,"26.0":0.07593,"26.1":0.10355,"26.2":0.0069},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0,"6.0-6.1":0.00148,"7.0-7.1":0.00111,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00333,"10.0-10.2":0.00037,"10.3":0.00591,"11.0-11.2":0.06872,"11.3-11.4":0.00222,"12.0-12.1":0.00074,"12.2-12.5":0.01737,"13.0-13.1":0,"13.2":0.00185,"13.3":0.00074,"13.4-13.7":0.00333,"14.0-14.4":0.00554,"14.5-14.8":0.00702,"15.0-15.1":0.00591,"15.2-15.3":0.0048,"15.4":0.00517,"15.5":0.00554,"15.6-15.8":0.08018,"16.0":0.00998,"16.1":0.01847,"16.2":0.00961,"16.3":0.01773,"16.4":0.00443,"16.5":0.00739,"16.6-16.7":0.10826,"17.0":0.00924,"17.1":0.01108,"17.2":0.00813,"17.3":0.01145,"17.4":0.01884,"17.5":0.03584,"17.6-17.7":0.08793,"18.0":0.01958,"18.1":0.04138,"18.2":0.02217,"18.3":0.07205,"18.4":0.03695,"18.5-18.7":2.58002,"26.0":0.17698,"26.1":0.16146},P:{"4":0.01044,"25":0.01044,"26":0.02088,"27":0.01044,"28":0.05219,"29":0.70979,_:"20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03131},I:{"0":0.05567,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.12078,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02485,"9":0.0497,"10":0.01243,"11":0.0994,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00929},H:{"0":0},L:{"0":27.7648},R:{_:"0"},M:{"0":0.07123}};
Index: de_modules/caniuse-lite/data/regions/BS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0028,"52":0.0028,"115":0.10094,"140":0.0028,"142":0.0028,"143":0.00561,"144":0.08132,"145":0.11496,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"69":0.0028,"71":0.0028,"75":0.0028,"76":0.0028,"93":0.0028,"103":0.03084,"109":0.11496,"111":0.0028,"114":0.0028,"116":0.03084,"120":0.00561,"122":0.00561,"123":0.0028,"124":0.00561,"125":0.05047,"126":0.00841,"127":0.0028,"128":0.01402,"129":0.01682,"131":0.01402,"132":0.0028,"133":0.0028,"134":0.0028,"135":0.00561,"136":0.0028,"137":0.0028,"138":0.05888,"139":0.01963,"140":0.0729,"141":0.59725,"142":2.14226,"143":0.00561,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 72 73 74 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 115 117 118 119 121 130 144 145 146"},F:{"92":0.01682,"93":0.0028,"122":0.01963,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.0028,"114":0.0028,"126":0.00561,"133":0.00841,"135":0.00561,"138":0.0028,"139":0.00561,"140":0.01122,"141":0.17104,"142":1.43845,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 134 136 137 143"},E:{"14":0.02524,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0028,"13.1":0.0028,"14.1":0.01682,"15.1":0.01122,"15.2-15.3":0.00561,"15.4":0.06449,"15.5":0.05047,"15.6":0.42901,"16.0":0.00561,"16.1":0.10655,"16.2":0.05047,"16.3":0.1374,"16.4":0.12057,"16.5":0.08692,"16.6":1.10478,"17.0":0.01963,"17.1":1.23656,"17.2":0.04206,"17.3":0.05888,"17.4":0.10094,"17.5":0.24395,"17.6":0.59164,"18.0":0.03084,"18.1":0.16263,"18.2":0.08132,"18.3":0.38976,"18.4":0.27199,"18.5-18.6":0.66735,"26.0":1.10197,"26.1":1.44126,"26.2":0.04767},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00665,"5.0-5.1":0,"6.0-6.1":0.02661,"7.0-7.1":0.01996,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05987,"10.0-10.2":0.00665,"10.3":0.10644,"11.0-11.2":1.2374,"11.3-11.4":0.03992,"12.0-12.1":0.01331,"12.2-12.5":0.31268,"13.0-13.1":0,"13.2":0.03326,"13.3":0.01331,"13.4-13.7":0.05987,"14.0-14.4":0.09979,"14.5-14.8":0.1264,"15.0-15.1":0.10644,"15.2-15.3":0.08649,"15.4":0.09314,"15.5":0.09979,"15.6-15.8":1.44364,"16.0":0.17962,"16.1":0.33264,"16.2":0.17297,"16.3":0.31933,"16.4":0.07983,"16.5":0.13305,"16.6-16.7":1.94924,"17.0":0.16632,"17.1":0.19958,"17.2":0.14636,"17.3":0.20623,"17.4":0.33929,"17.5":0.64531,"17.6-17.7":1.58334,"18.0":0.35259,"18.1":0.7451,"18.2":0.39916,"18.3":1.29728,"18.4":0.66527,"18.5-18.7":46.45582,"26.0":3.18664,"26.1":2.90723},P:{"25":0.01053,"26":0.02107,"27":0.0316,"28":0.05267,"29":0.6004,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01053},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.0072,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":5.77349},R:{_:"0"},M:{"0":0.02159}};
Index: de_modules/caniuse-lite/data/regions/BT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00635,"72":0.00318,"115":0.00635,"125":0.00318,"128":0.0413,"140":0.03177,"142":0.00635,"144":0.11755,"145":0.46702,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 143 146 147 148 3.5 3.6"},D:{"55":0.00635,"60":0.00318,"63":0.00635,"67":0.00318,"68":0.00953,"69":0.01271,"71":0.00318,"72":0.00318,"74":0.00635,"77":0.01906,"79":0.00635,"80":0.00635,"86":0.00953,"94":0.00318,"95":0.00953,"96":0.00318,"97":0.00635,"98":0.36536,"99":0.13979,"100":0.00318,"103":0.02859,"109":0.27958,"111":0.00953,"113":0.00318,"116":0.05401,"119":0.00318,"121":0.00318,"122":0.00953,"123":0.00635,"124":0.01589,"125":0.24781,"126":0.01906,"127":0.04766,"128":0.09849,"129":0.00318,"130":0.01271,"131":0.05719,"132":0.02542,"133":0.02224,"134":0.0413,"135":0.06354,"136":0.00953,"137":0.03812,"138":0.13661,"139":0.10166,"140":0.12708,"141":3.27231,"142":10.63977,"143":0.00953,"144":0.00318,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 61 62 64 65 66 70 73 75 76 78 81 83 84 85 87 88 89 90 91 92 93 101 102 104 105 106 107 108 110 112 114 115 117 118 120 145 146"},F:{"83":0.01271,"84":0.00318,"92":0.09213,"93":0.08896,"95":0.04448,"120":0.00318,"122":0.12073,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00635,"17":0.00635,"92":0.01589,"98":0.05401,"99":0.02224,"109":0.00318,"110":0.00318,"111":0.00318,"114":0.49244,"115":0.00318,"116":0.00635,"117":0.00953,"119":0.00318,"122":0.00318,"123":0.00318,"124":0.00318,"127":0.00635,"128":0.02859,"129":0.01271,"130":0.00318,"131":0.00635,"133":0.00953,"134":0.00318,"135":0.01271,"136":0.01589,"138":0.04766,"139":0.02224,"140":0.05083,"141":0.68623,"142":2.55113,_:"13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 100 101 102 103 104 105 106 107 108 112 113 118 120 121 125 126 132 137 143"},E:{"14":0.00318,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 13.1 15.1 15.2-15.3 15.4 15.5 17.0 17.2 17.3 18.0","11.1":0.00318,"12.1":0.00318,"14.1":0.00953,"15.6":0.02224,"16.0":0.00318,"16.1":0.00318,"16.2":0.00318,"16.3":0.00953,"16.4":0.00318,"16.5":0.00318,"16.6":0.00318,"17.1":0.03177,"17.4":0.00318,"17.5":0.02859,"17.6":0.01271,"18.1":0.00635,"18.2":0.05719,"18.3":0.02224,"18.4":0.01271,"18.5-18.6":0.08896,"26.0":0.18744,"26.1":0.14932,"26.2":0.00953},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00076,"5.0-5.1":0,"6.0-6.1":0.00303,"7.0-7.1":0.00227,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00682,"10.0-10.2":0.00076,"10.3":0.01212,"11.0-11.2":0.14087,"11.3-11.4":0.00454,"12.0-12.1":0.00151,"12.2-12.5":0.0356,"13.0-13.1":0,"13.2":0.00379,"13.3":0.00151,"13.4-13.7":0.00682,"14.0-14.4":0.01136,"14.5-14.8":0.01439,"15.0-15.1":0.01212,"15.2-15.3":0.00985,"15.4":0.0106,"15.5":0.01136,"15.6-15.8":0.16435,"16.0":0.02045,"16.1":0.03787,"16.2":0.01969,"16.3":0.03635,"16.4":0.00909,"16.5":0.01515,"16.6-16.7":0.2219,"17.0":0.01893,"17.1":0.02272,"17.2":0.01666,"17.3":0.02348,"17.4":0.03863,"17.5":0.07346,"17.6-17.7":0.18025,"18.0":0.04014,"18.1":0.08482,"18.2":0.04544,"18.3":0.14768,"18.4":0.07574,"18.5-18.7":5.2886,"26.0":0.36277,"26.1":0.33096},P:{"4":0.01013,"21":0.01013,"23":0.01013,"24":0.01013,"25":0.02027,"26":0.0304,"27":0.05067,"28":0.15201,"29":0.36483,_:"20 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0304},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.48443,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.3275},H:{"0":0},L:{"0":67.25805},R:{_:"0"},M:{"0":0.06823}};
Index: de_modules/caniuse-lite/data/regions/BW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01645,"34":0.00548,"72":0.00548,"102":0.00548,"115":0.03838,"125":0.00548,"127":0.00548,"140":0.03838,"141":0.01097,"142":0.01097,"143":0.0329,"144":0.53733,"145":0.49895,"146":0.07128,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 131 132 133 134 135 136 137 138 139 147 148 3.5 3.6"},D:{"56":0.00548,"57":0.00548,"68":0.00548,"69":0.02193,"73":0.01645,"74":0.00548,"75":0.02193,"78":0.00548,"79":0.01645,"81":0.00548,"83":0.01097,"85":0.00548,"86":0.00548,"87":0.00548,"88":0.00548,"93":0.00548,"95":0.00548,"98":0.03838,"100":0.00548,"101":0.01097,"103":0.01097,"104":0.0329,"106":0.01097,"109":0.47702,"111":0.03838,"112":19.70042,"114":0.01097,"115":0.01645,"116":0.04935,"119":0.0658,"120":0.01645,"122":0.11514,"123":0.00548,"124":0.02742,"125":0.33995,"126":3.58588,"127":0.01645,"128":0.05483,"129":0.00548,"130":0.02193,"131":0.03838,"132":0.03838,"133":0.01645,"134":0.04935,"135":0.04935,"136":0.0658,"137":0.04386,"138":0.16997,"139":0.21932,"140":0.31801,"141":3.60781,"142":9.58977,"143":0.06031,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 58 59 60 61 62 63 64 65 66 67 70 71 72 76 77 80 84 89 90 91 92 94 96 97 99 102 105 107 108 110 113 117 118 121 144 145 146"},F:{"92":0.00548,"95":0.02193,"102":0.01097,"120":0.00548,"122":0.13708,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00548,"14":0.00548,"18":0.02742,"90":0.00548,"92":0.01645,"100":0.00548,"109":0.04386,"114":0.29608,"122":0.01097,"126":0.00548,"128":0.00548,"132":0.00548,"134":0.00548,"136":0.00548,"137":0.00548,"138":0.04386,"139":0.05483,"140":0.0658,"141":0.47154,"142":3.6133,"143":0.01097,_:"13 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 129 130 131 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 18.2","15.6":0.0329,"16.4":0.00548,"16.6":0.09321,"17.1":0.01645,"17.2":0.02742,"17.3":0.00548,"17.4":0.00548,"17.5":0.01097,"17.6":0.04386,"18.0":0.00548,"18.1":0.00548,"18.3":0.08225,"18.4":0.01645,"18.5-18.6":0.02193,"26.0":0.11514,"26.1":0.09869,"26.2":0.00548},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0,"6.0-6.1":0.00149,"7.0-7.1":0.00112,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00336,"10.0-10.2":0.00037,"10.3":0.00597,"11.0-11.2":0.06941,"11.3-11.4":0.00224,"12.0-12.1":0.00075,"12.2-12.5":0.01754,"13.0-13.1":0,"13.2":0.00187,"13.3":0.00075,"13.4-13.7":0.00336,"14.0-14.4":0.0056,"14.5-14.8":0.00709,"15.0-15.1":0.00597,"15.2-15.3":0.00485,"15.4":0.00522,"15.5":0.0056,"15.6-15.8":0.08098,"16.0":0.01008,"16.1":0.01866,"16.2":0.0097,"16.3":0.01791,"16.4":0.00448,"16.5":0.00746,"16.6-16.7":0.10934,"17.0":0.00933,"17.1":0.0112,"17.2":0.00821,"17.3":0.01157,"17.4":0.01903,"17.5":0.0362,"17.6-17.7":0.08882,"18.0":0.01978,"18.1":0.0418,"18.2":0.02239,"18.3":0.07277,"18.4":0.03732,"18.5-18.7":2.60596,"26.0":0.17876,"26.1":0.16308},P:{"4":0.03115,"22":0.02076,"24":0.05191,"25":0.03115,"26":0.03115,"27":0.10382,"28":0.42565,"29":1.07971,_:"20 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.15573,"13.0":0.02076},I:{"0":0.01805,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.64156,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.01355,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01807},O:{"0":0.14006},H:{"0":0},L:{"0":46.12552},R:{_:"0"},M:{"0":0.19879}};
Index: de_modules/caniuse-lite/data/regions/BY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01838,"50":0.00613,"51":0.00613,"52":0.08575,"53":0.00613,"55":0.00613,"56":0.01225,"102":0.00613,"105":0.05513,"108":0.00613,"115":0.42263,"124":0.00613,"125":0.03675,"128":0.01225,"130":0.00613,"135":0.00613,"136":0.01838,"138":0.00613,"140":0.049,"141":0.00613,"142":0.01225,"143":0.03675,"144":0.57575,"145":0.82688,"146":0.00613,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 54 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 123 126 127 129 131 132 133 134 137 139 147 148 3.5 3.6"},D:{"38":0.00613,"49":0.0245,"53":0.00613,"63":0.00613,"69":0.01838,"70":0.01225,"72":0.00613,"77":0.01225,"79":0.0245,"86":0.00613,"87":0.05513,"88":0.01225,"89":0.04288,"90":0.00613,"95":0.00613,"97":0.00613,"98":0.09188,"99":0.03063,"100":0.00613,"101":0.00613,"102":0.00613,"103":0.01838,"104":0.0735,"106":0.04288,"108":0.03063,"109":3.52188,"111":0.05513,"112":8.87513,"113":0.03675,"114":0.01838,"115":0.00613,"116":0.03063,"118":0.01225,"119":0.01838,"120":0.04288,"121":0.01225,"122":0.04288,"123":1.42713,"124":0.06125,"125":0.3675,"126":1.40263,"127":0.03675,"128":0.06738,"129":0.01225,"130":0.00613,"131":0.06738,"132":0.03675,"133":0.04288,"134":0.17763,"135":0.049,"136":0.03675,"137":0.03675,"138":0.12863,"139":0.13475,"140":0.32463,"141":2.83588,"142":16.513,"143":0.07963,"144":0.00613,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 67 68 71 73 74 75 76 78 80 81 83 84 85 91 92 93 94 96 105 107 110 117 145 146"},F:{"36":0.03675,"42":0.00613,"73":0.22663,"77":0.01225,"79":0.09188,"84":0.00613,"85":0.04288,"86":0.03063,"90":0.00613,"91":0.01838,"92":0.1225,"93":0.01838,"95":0.69825,"114":0.00613,"115":0.00613,"116":0.00613,"117":0.00613,"118":0.00613,"119":0.01225,"120":0.01225,"121":0.03675,"122":1.323,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 78 80 81 82 83 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00613},B:{"18":0.00613,"92":0.00613,"98":0.01225,"99":0.00613,"100":0.00613,"109":0.0245,"114":0.10413,"131":0.01838,"133":0.00613,"134":0.00613,"135":0.00613,"136":0.01225,"138":0.00613,"139":0.01225,"140":0.01225,"141":0.2695,"142":2.4745,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 137 143"},E:{"13":0.01838,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0","5.1":0.00613,"13.1":0.01838,"14.1":0.00613,"15.4":0.01225,"15.5":0.00613,"15.6":0.10413,"16.1":0.03063,"16.2":0.03675,"16.3":0.03063,"16.4":0.00613,"16.5":0.01838,"16.6":0.1715,"17.0":0.01225,"17.1":0.27563,"17.2":0.00613,"17.3":0.0245,"17.4":0.04288,"17.5":0.07963,"17.6":0.12863,"18.0":0.04288,"18.1":0.049,"18.2":0.0245,"18.3":0.06125,"18.4":0.03063,"18.5-18.6":0.17763,"26.0":0.41038,"26.1":0.56963,"26.2":0.01838},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00143,"5.0-5.1":0,"6.0-6.1":0.00571,"7.0-7.1":0.00428,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01284,"10.0-10.2":0.00143,"10.3":0.02283,"11.0-11.2":0.26545,"11.3-11.4":0.00856,"12.0-12.1":0.00285,"12.2-12.5":0.06708,"13.0-13.1":0,"13.2":0.00714,"13.3":0.00285,"13.4-13.7":0.01284,"14.0-14.4":0.02141,"14.5-14.8":0.02712,"15.0-15.1":0.02283,"15.2-15.3":0.01855,"15.4":0.01998,"15.5":0.02141,"15.6-15.8":0.30969,"16.0":0.03853,"16.1":0.07136,"16.2":0.03711,"16.3":0.0685,"16.4":0.01713,"16.5":0.02854,"16.6-16.7":0.41816,"17.0":0.03568,"17.1":0.04281,"17.2":0.0314,"17.3":0.04424,"17.4":0.07279,"17.5":0.13843,"17.6-17.7":0.33966,"18.0":0.07564,"18.1":0.15984,"18.2":0.08563,"18.3":0.2783,"18.4":0.14272,"18.5-18.7":9.96588,"26.0":0.68361,"26.1":0.62367},P:{"4":0.06256,"23":0.01043,"26":0.01043,"27":0.02085,"28":0.17726,"29":0.86546,_:"20 21 22 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0387,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.74013,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.098,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03875},H:{"0":0},L:{"0":22.33575},R:{_:"0"},M:{"0":0.0775}};
Index: de_modules/caniuse-lite/data/regions/BZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/BZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01793,"115":0.14699,"128":0.01076,"137":0.00359,"139":0.00359,"140":0.06095,"141":0.00359,"142":0.01434,"143":0.01793,"144":0.62379,"145":0.75285,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 138 146 147 148 3.5 3.6"},D:{"69":0.02151,"75":0.00717,"76":0.00359,"87":0.00359,"88":1.15079,"91":0.00717,"92":0.00359,"93":0.03585,"95":0.00359,"103":0.08246,"105":0.00359,"109":0.04661,"111":0.02868,"114":0.00359,"116":0.10397,"118":0.01076,"120":0.00359,"121":0.00359,"122":0.0251,"123":0.02151,"125":0.5019,"126":0.08604,"127":0.05378,"128":0.02151,"130":0.01434,"131":0.00717,"132":0.02868,"133":0.00717,"134":0.01434,"135":0.00717,"136":0.03585,"137":0.01076,"138":0.57002,"139":0.06453,"140":0.1685,"141":2.83215,"142":7.79021,"143":0.01434,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 77 78 79 80 81 83 84 85 86 89 90 94 96 97 98 99 100 101 102 104 106 107 108 110 112 113 115 117 119 124 129 144 145 146"},F:{"92":0.06453,"93":0.01434,"95":0.01076,"117":0.00359,"120":0.00359,"122":0.27605,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00359,"89":0.00359,"92":0.00717,"109":0.01793,"114":0.08246,"122":0.00359,"129":0.00359,"134":0.00359,"136":0.00359,"137":0.00359,"138":0.00717,"139":0.01434,"140":0.00717,"141":0.37284,"142":3.38066,"143":0.00359,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 130 131 132 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3","13.1":0.00359,"14.1":0.00359,"15.1":0.05736,"15.4":0.13265,"15.5":0.00359,"15.6":0.32982,"16.0":0.00359,"16.1":0.0251,"16.2":0.00717,"16.3":0.01434,"16.4":0.60228,"16.5":0.00359,"16.6":0.18642,"17.0":0.00717,"17.1":0.5019,"17.2":0.12189,"17.3":0.02868,"17.4":0.03585,"17.5":0.0717,"17.6":0.52341,"18.0":0.05736,"18.1":0.04661,"18.2":0.02868,"18.3":0.13265,"18.4":0.04302,"18.5-18.6":0.62021,"26.0":0.86757,"26.1":0.93927,"26.2":0.05736},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0043,"5.0-5.1":0,"6.0-6.1":0.01722,"7.0-7.1":0.01291,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03873,"10.0-10.2":0.0043,"10.3":0.06886,"11.0-11.2":0.80051,"11.3-11.4":0.02582,"12.0-12.1":0.00861,"12.2-12.5":0.20228,"13.0-13.1":0,"13.2":0.02152,"13.3":0.00861,"13.4-13.7":0.03873,"14.0-14.4":0.06456,"14.5-14.8":0.08177,"15.0-15.1":0.06886,"15.2-15.3":0.05595,"15.4":0.06025,"15.5":0.06456,"15.6-15.8":0.93392,"16.0":0.1162,"16.1":0.21519,"16.2":0.1119,"16.3":0.20658,"16.4":0.05165,"16.5":0.08608,"16.6-16.7":1.26101,"17.0":0.10759,"17.1":0.12911,"17.2":0.09468,"17.3":0.13342,"17.4":0.21949,"17.5":0.41747,"17.6-17.7":1.0243,"18.0":0.2281,"18.1":0.48202,"18.2":0.25823,"18.3":0.83924,"18.4":0.43038,"18.5-18.7":30.05339,"26.0":2.06152,"26.1":1.88076},P:{"4":0.01051,"25":0.01051,"27":0.01051,"28":0.08408,"29":2.37534,_:"20 21 22 23 24 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01051},I:{"0":0.1281,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.14752,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01283},H:{"0":0},L:{"0":21.35251},R:{_:"0"},M:{"0":0.16035}};
Index: de_modules/caniuse-lite/data/regions/CA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"44":0.01005,"45":0.00502,"48":0.00502,"52":0.01507,"78":0.0201,"103":0.00502,"107":0.00502,"113":0.00502,"115":0.19594,"123":0.00502,"125":0.01005,"127":0.00502,"128":0.01507,"132":0.00502,"133":0.00502,"134":0.00502,"135":0.01005,"136":0.01005,"137":0.04019,"138":0.00502,"139":0.01005,"140":0.08038,"141":0.0201,"142":0.03014,"143":0.04522,"144":1.00982,"145":1.26102,"146":0.00502,_:"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 33 34 35 36 37 38 39 40 41 42 43 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 108 109 110 111 112 114 116 117 118 119 120 121 122 124 126 129 130 131 147 148 3.5 3.6"},D:{"39":0.01507,"40":0.01507,"41":0.01507,"42":0.01507,"43":0.01507,"44":0.01507,"45":0.01507,"46":0.01507,"47":0.0201,"48":0.05024,"49":0.04019,"50":0.01507,"51":0.01507,"52":0.01507,"53":0.01507,"54":0.01507,"55":0.01507,"56":0.01507,"57":0.01507,"58":0.01507,"59":0.01507,"60":0.01507,"66":0.00502,"68":0.01507,"76":0.00502,"79":0.01507,"80":0.01005,"81":0.02512,"83":0.09043,"84":0.00502,"85":0.01005,"87":0.02512,"88":0.00502,"91":0.00502,"93":0.0201,"97":0.00502,"98":0.00502,"99":0.04019,"102":0.00502,"103":0.12058,"104":0.03517,"108":0.00502,"109":0.50742,"110":0.00502,"111":0.00502,"112":0.00502,"113":0.00502,"114":0.06531,"116":0.17082,"117":0.04522,"118":0.07034,"119":0.05526,"120":0.06531,"121":0.01507,"122":0.04019,"123":0.0201,"124":0.05024,"125":0.04522,"126":0.09546,"127":0.01507,"128":0.12058,"129":0.01507,"130":1.10528,"131":0.06531,"132":0.09043,"133":0.04019,"134":0.04019,"135":0.06029,"136":0.06531,"137":0.19091,"138":0.35168,"139":0.37178,"140":0.61795,"141":4.82304,"142":16.33302,"143":0.03517,"144":0.01005,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 69 70 71 72 73 74 75 77 78 86 89 90 92 94 95 96 100 101 105 106 107 115 145 146"},F:{"89":0.00502,"92":0.01507,"93":0.00502,"95":0.0201,"119":0.00502,"120":0.00502,"122":0.27632,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00502,"85":0.00502,"108":0.00502,"109":0.05526,"111":0.00502,"114":0.00502,"120":0.01005,"125":0.00502,"126":0.00502,"127":0.00502,"128":0.00502,"129":0.00502,"130":0.00502,"131":0.01005,"132":0.00502,"133":0.00502,"134":0.01507,"135":0.01005,"136":0.00502,"137":0.01005,"138":0.0201,"139":0.03014,"140":0.05526,"141":0.82394,"142":6.54627,"143":0.01005,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 112 113 115 116 117 118 119 121 122 123 124"},E:{"9":0.00502,"14":0.0201,"15":0.00502,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00502,"12.1":0.00502,"13.1":0.07034,"14.1":0.05526,"15.1":0.00502,"15.2-15.3":0.00502,"15.4":0.01507,"15.5":0.0201,"15.6":0.33661,"16.0":0.01005,"16.1":0.04019,"16.2":0.02512,"16.3":0.06531,"16.4":0.02512,"16.5":0.03517,"16.6":0.46221,"17.0":0.01005,"17.1":0.40694,"17.2":0.02512,"17.3":0.03014,"17.4":0.07536,"17.5":0.09546,"17.6":0.41197,"18.0":0.03014,"18.1":0.08541,"18.2":0.03014,"18.3":0.16077,"18.4":0.08541,"18.5-18.6":0.29139,"26.0":0.5225,"26.1":0.67322,"26.2":0.02512},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00251,"5.0-5.1":0,"6.0-6.1":0.01006,"7.0-7.1":0.00754,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02262,"10.0-10.2":0.00251,"10.3":0.04022,"11.0-11.2":0.46758,"11.3-11.4":0.01508,"12.0-12.1":0.00503,"12.2-12.5":0.11815,"13.0-13.1":0,"13.2":0.01257,"13.3":0.00503,"13.4-13.7":0.02262,"14.0-14.4":0.03771,"14.5-14.8":0.04776,"15.0-15.1":0.04022,"15.2-15.3":0.03268,"15.4":0.03519,"15.5":0.03771,"15.6-15.8":0.54551,"16.0":0.06787,"16.1":0.12569,"16.2":0.06536,"16.3":0.12067,"16.4":0.03017,"16.5":0.05028,"16.6-16.7":0.73657,"17.0":0.06285,"17.1":0.07542,"17.2":0.05531,"17.3":0.07793,"17.4":0.12821,"17.5":0.24385,"17.6-17.7":0.5983,"18.0":0.13324,"18.1":0.28155,"18.2":0.15083,"18.3":0.49021,"18.4":0.25139,"18.5-18.7":17.55444,"26.0":1.20415,"26.1":1.09857},P:{"4":0.0109,"21":0.05448,"22":0.0109,"23":0.0109,"24":0.0109,"25":0.0109,"26":0.04358,"27":0.04358,"28":0.16343,"29":2.03748,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.0109,"16.0":0.0109},I:{"0":0.01988,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.13438,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0067,"9":0.0067,"10":0.0067,"11":0.08038,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00498},O:{"0":0.02986},H:{"0":0},L:{"0":23.42991},R:{_:"0"},M:{"0":0.44295}};
Index: de_modules/caniuse-lite/data/regions/CD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.00563,"5":0.00281,"47":0.00281,"48":0.00281,"50":0.00281,"56":0.00281,"58":0.00281,"67":0.00281,"68":0.00281,"82":0.00281,"100":0.00281,"112":0.00281,"115":0.06754,"127":0.01407,"128":0.00844,"130":0.00281,"133":0.00281,"134":0.00281,"135":0.00281,"137":0.00281,"138":0.00281,"139":0.00281,"140":0.02533,"141":0.00844,"142":0.01126,"143":0.0197,"144":0.39959,"145":0.41647,"146":0.00281,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 51 52 53 54 55 57 59 60 61 62 63 64 65 66 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 131 132 136 147 148 3.5 3.6"},D:{"43":0.00281,"49":0.00281,"64":0.00563,"66":0.00281,"69":0.01126,"70":0.00563,"71":0.00281,"73":0.00563,"74":0.04784,"75":0.00281,"77":0.00563,"78":0.00281,"79":0.04502,"81":0.00563,"83":0.00563,"86":0.00844,"87":0.0197,"88":0.01126,"89":0.00281,"90":0.00281,"91":0.00281,"92":0.00281,"93":0.00281,"95":0.00281,"96":0.00563,"97":0.00281,"98":0.00844,"99":0.00281,"100":0.00844,"103":0.02251,"105":0.00281,"106":0.07316,"108":0.00844,"109":0.14914,"110":0.00281,"111":0.0197,"112":0.01407,"114":0.0197,"115":0.00563,"116":0.03377,"117":0.00281,"118":0.00563,"119":0.03377,"120":0.02251,"121":0.00281,"122":0.02533,"123":0.00281,"124":0.01126,"125":0.07316,"126":0.09005,"127":0.01126,"128":0.02251,"129":0.00844,"130":0.0197,"131":0.03377,"132":0.02251,"133":0.01688,"134":0.02814,"135":0.03377,"136":0.0197,"137":0.06191,"138":0.25326,"139":0.15477,"140":0.27577,"141":1.82347,"142":4.51928,"143":0.00281,"144":0.00281,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 67 68 72 76 80 84 85 94 101 102 104 107 113 145 146"},F:{"34":0.00281,"40":0.00281,"42":0.00281,"46":0.00281,"62":0.00281,"79":0.01688,"87":0.00281,"89":0.00844,"90":0.01688,"91":0.04784,"92":0.09286,"93":0.00563,"95":0.03377,"101":0.00563,"102":0.00844,"113":0.00281,"114":0.00281,"116":0.00281,"117":0.00563,"118":0.00281,"119":0.00563,"120":0.02251,"121":0.00281,"122":0.32361,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 88 94 96 97 98 99 100 103 104 105 106 107 108 109 110 111 112 115 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01688,"13":0.00563,"14":0.01407,"15":0.00281,"16":0.00844,"17":0.02251,"18":0.06472,"84":0.01126,"89":0.00844,"90":0.0197,"92":0.08442,"100":0.00844,"109":0.00563,"114":0.08723,"117":0.00281,"122":0.01407,"125":0.00281,"126":0.00563,"128":0.00281,"129":0.00844,"130":0.00281,"131":0.0197,"132":0.01126,"133":0.00563,"134":0.00281,"135":0.01126,"136":0.00844,"137":0.00563,"138":0.04221,"139":0.02533,"140":0.05628,"141":0.33768,"142":2.09924,"143":0.00281,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 123 124 127"},E:{"11":0.00281,"12":0.00563,"13":0.00281,"14":0.00281,_:"0 4 5 6 7 8 9 10 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.5 17.0 17.2 17.3","5.1":0.00563,"11.1":0.01407,"13.1":0.0394,"14.1":0.00563,"15.6":0.04784,"16.1":0.01688,"16.4":0.00281,"16.6":0.04502,"17.1":0.01126,"17.4":0.00281,"17.5":0.01407,"17.6":0.06191,"18.0":0.00844,"18.1":0.01126,"18.2":0.00281,"18.3":0.00281,"18.4":0.04221,"18.5-18.6":0.05065,"26.0":0.09568,"26.1":0.07316,"26.2":0.00281},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00085,"5.0-5.1":0,"6.0-6.1":0.00341,"7.0-7.1":0.00256,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00767,"10.0-10.2":0.00085,"10.3":0.01364,"11.0-11.2":0.15852,"11.3-11.4":0.00511,"12.0-12.1":0.0017,"12.2-12.5":0.04006,"13.0-13.1":0,"13.2":0.00426,"13.3":0.0017,"13.4-13.7":0.00767,"14.0-14.4":0.01278,"14.5-14.8":0.01619,"15.0-15.1":0.01364,"15.2-15.3":0.01108,"15.4":0.01193,"15.5":0.01278,"15.6-15.8":0.18494,"16.0":0.02301,"16.1":0.04261,"16.2":0.02216,"16.3":0.04091,"16.4":0.01023,"16.5":0.01705,"16.6-16.7":0.24971,"17.0":0.02131,"17.1":0.02557,"17.2":0.01875,"17.3":0.02642,"17.4":0.04347,"17.5":0.08267,"17.6-17.7":0.20284,"18.0":0.04517,"18.1":0.09545,"18.2":0.05114,"18.3":0.16619,"18.4":0.08523,"18.5-18.7":5.95133,"26.0":0.40823,"26.1":0.37244},P:{"4":0.01042,"21":0.01042,"22":0.01042,"24":0.03126,"25":0.03126,"26":0.02084,"27":0.08336,"28":0.34385,"29":0.64602,_:"20 23 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.02084,"9.2":0.01042,"16.0":0.02084,"19.0":0.01042},I:{"0":0.07176,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":7.57226,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03095,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.03593},O:{"0":0.38086},H:{"0":2.56},L:{"0":63.78389},R:{_:"0"},M:{"0":0.12216}};
Index: de_modules/caniuse-lite/data/regions/CF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"72":0.01129,"115":0.12193,"127":0.02258,"132":0.02935,"134":0.01806,"143":0.02258,"144":1.53092,"145":0.37934,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 133 135 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"46":0.06322,"52":0.02258,"69":0.00677,"71":0.00677,"76":0.12193,"78":0.00677,"86":0.02935,"91":0.12193,"99":0.01129,"106":0.08129,"109":0.12871,"111":0.06322,"117":0.01806,"120":0.02935,"122":0.00677,"124":0.16935,"125":0.27322,"126":0.01129,"127":0.00677,"131":0.01806,"132":0.01806,"133":0.04742,"134":0.02935,"135":0.08806,"137":0.04064,"138":0.15129,"139":0.07,"140":0.16258,"141":0.48999,"142":3.25604,"143":0.03387,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 72 73 74 75 77 79 80 81 83 84 85 87 88 89 90 92 93 94 95 96 97 98 100 101 102 103 104 105 107 108 110 112 113 114 115 116 118 119 121 123 128 129 130 136 144 145 146"},F:{"48":0.01806,"89":0.01129,"91":0.11064,"92":0.01129,"117":0.00677,"120":0.01806,"122":0.08806,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02935,"17":0.00677,"18":0.04742,"89":0.01806,"90":0.01806,"92":0.04742,"114":0.02258,"118":0.04742,"122":0.00677,"126":0.00677,"127":0.01129,"131":0.01806,"133":0.06322,"137":0.01806,"138":0.02258,"139":0.00677,"140":0.19193,"141":0.53063,"142":1.41577,_:"13 14 15 16 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 119 120 121 123 124 125 128 129 130 132 134 135 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2","15.6":0.01129},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0003,"5.0-5.1":0,"6.0-6.1":0.00121,"7.0-7.1":0.00091,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00273,"10.0-10.2":0.0003,"10.3":0.00486,"11.0-11.2":0.05645,"11.3-11.4":0.00182,"12.0-12.1":0.00061,"12.2-12.5":0.01426,"13.0-13.1":0,"13.2":0.00152,"13.3":0.00061,"13.4-13.7":0.00273,"14.0-14.4":0.00455,"14.5-14.8":0.00577,"15.0-15.1":0.00486,"15.2-15.3":0.00395,"15.4":0.00425,"15.5":0.00455,"15.6-15.8":0.06586,"16.0":0.00819,"16.1":0.01517,"16.2":0.00789,"16.3":0.01457,"16.4":0.00364,"16.5":0.00607,"16.6-16.7":0.08892,"17.0":0.00759,"17.1":0.0091,"17.2":0.00668,"17.3":0.00941,"17.4":0.01548,"17.5":0.02944,"17.6-17.7":0.07223,"18.0":0.01608,"18.1":0.03399,"18.2":0.01821,"18.3":0.05918,"18.4":0.03035,"18.5-18.7":2.11925,"26.0":0.14537,"26.1":0.13262},P:{"21":0.01002,"24":0.03005,"25":0.05008,"26":0.02003,"27":0.05008,"28":0.4307,"29":0.7412,_:"4 20 22 23 6.2-6.4 8.2 10.1 11.1-11.2 13.0 14.0 15.0 16.0 18.0","5.0-5.4":0.12019,"7.2-7.4":0.02003,"9.2":0.01002,"12.0":0.03005,"17.0":0.08013,"19.0":0.01002},I:{"0":0.03866,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.18658,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.10065,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.51871},O:{"0":0.17807},H:{"0":14.22},L:{"0":64.72981},R:{_:"0"},M:{"0":0.54194}};
Index: de_modules/caniuse-lite/data/regions/CG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.04096,"115":0.05266,"125":0.00585,"127":0.0117,"139":0.00585,"140":0.0234,"141":0.00585,"142":0.0117,"143":0.0234,"144":0.44468,"145":0.45053,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 131 132 133 134 135 136 137 138 146 147 148 3.5 3.6"},D:{"27":0.00585,"56":0.00585,"58":0.00585,"63":0.00585,"64":0.00585,"65":0.00585,"66":0.00585,"68":0.00585,"69":0.04096,"72":0.00585,"73":0.05266,"74":0.00585,"75":0.01755,"78":0.00585,"79":0.03511,"81":0.0117,"83":0.02926,"86":0.0117,"87":0.04096,"88":0.00585,"89":0.00585,"90":0.00585,"93":0.00585,"95":0.0234,"98":0.07021,"100":0.00585,"101":0.00585,"102":0.00585,"103":0.06436,"104":0.00585,"106":0.00585,"108":0.0234,"109":0.52074,"111":0.04096,"112":21.3386,"113":0.00585,"114":0.03511,"116":0.02926,"119":0.05266,"120":0.03511,"121":0.00585,"122":0.09947,"123":0.0117,"124":0.0117,"125":0.39787,"126":9.06905,"127":0.00585,"128":0.0117,"129":0.0117,"130":0.0117,"131":0.01755,"132":0.05851,"133":0.01755,"134":0.02926,"135":0.0234,"136":0.01755,"137":0.05266,"138":0.17553,"139":0.08191,"140":0.23404,"141":1.86647,"142":5.74568,"143":0.01755,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 59 60 61 62 67 70 71 76 77 80 84 85 91 92 94 96 97 99 105 107 110 115 117 118 144 145 146"},F:{"36":0.00585,"46":0.00585,"63":0.00585,"79":0.00585,"91":0.00585,"92":0.0117,"95":0.04096,"102":0.00585,"109":0.00585,"110":0.00585,"111":0.00585,"119":0.0117,"120":0.01755,"122":0.50319,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 93 94 96 97 98 99 100 101 103 104 105 106 107 108 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00585,"14":0.00585,"15":0.00585,"16":0.00585,"17":0.0234,"18":0.03511,"84":0.00585,"85":0.00585,"88":0.00585,"89":0.00585,"92":0.07021,"100":0.00585,"109":0.0117,"113":0.00585,"114":1.05318,"120":0.00585,"122":0.0117,"124":0.00585,"128":0.0117,"131":0.0117,"133":0.01755,"134":0.00585,"135":0.00585,"136":0.00585,"138":0.05851,"139":0.01755,"140":0.08191,"141":0.2984,"142":3.36433,"143":0.0234,_:"12 79 80 81 83 86 87 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 121 123 125 126 127 129 130 132 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2 26.2","9.1":0.00585,"13.1":0.00585,"14.1":0.00585,"15.6":0.08191,"16.3":0.00585,"16.6":0.0234,"17.1":0.00585,"17.4":0.00585,"17.5":0.0117,"17.6":0.15798,"18.3":0.00585,"18.4":0.00585,"18.5-18.6":0.07021,"26.0":0.12287,"26.1":0.09362},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0005,"5.0-5.1":0,"6.0-6.1":0.002,"7.0-7.1":0.0015,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0045,"10.0-10.2":0.0005,"10.3":0.00799,"11.0-11.2":0.09291,"11.3-11.4":0.003,"12.0-12.1":0.001,"12.2-12.5":0.02348,"13.0-13.1":0,"13.2":0.0025,"13.3":0.001,"13.4-13.7":0.0045,"14.0-14.4":0.00749,"14.5-14.8":0.00949,"15.0-15.1":0.00799,"15.2-15.3":0.00649,"15.4":0.00699,"15.5":0.00749,"15.6-15.8":0.1084,"16.0":0.01349,"16.1":0.02498,"16.2":0.01299,"16.3":0.02398,"16.4":0.00599,"16.5":0.00999,"16.6-16.7":0.14637,"17.0":0.01249,"17.1":0.01499,"17.2":0.01099,"17.3":0.01549,"17.4":0.02548,"17.5":0.04846,"17.6-17.7":0.11889,"18.0":0.02648,"18.1":0.05595,"18.2":0.02997,"18.3":0.09741,"18.4":0.04995,"18.5-18.7":3.48829,"26.0":0.23928,"26.1":0.2183},P:{"4":0.01058,"23":0.01058,"26":0.03175,"27":0.01058,"28":0.05292,"29":0.37045,_:"20 21 22 24 25 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02117,"8.2":0.01058},I:{"0":0.12015,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.6581,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.01245,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.15766},H:{"0":0.18},L:{"0":42.63289},R:{_:"0"},M:{"0":0.09958}};
Index: de_modules/caniuse-lite/data/regions/CH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.01572,"52":0.01572,"77":0.00524,"78":0.0262,"84":0.00524,"115":0.42444,"125":0.01048,"126":0.00524,"127":0.00524,"128":0.04716,"129":0.00524,"132":0.01572,"133":0.00524,"134":0.01048,"135":0.00524,"136":0.02096,"137":0.01048,"138":0.0262,"139":0.01572,"140":0.36156,"141":0.01572,"142":0.03668,"143":0.07336,"144":2.12744,"145":2.61476,"146":0.01048,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 130 131 147 148 3.5 3.6"},D:{"39":0.02096,"40":0.02096,"41":0.0262,"42":0.02096,"43":0.02096,"44":0.02096,"45":0.02096,"46":0.02096,"47":0.02096,"48":0.02096,"49":0.03668,"50":0.02096,"51":0.02096,"52":0.42444,"53":0.02096,"54":0.02096,"55":0.0262,"56":0.02096,"57":0.02096,"58":0.02096,"59":0.02096,"60":0.02096,"74":0.00524,"79":0.01572,"80":0.03144,"87":0.0262,"88":0.00524,"90":0.00524,"91":0.00524,"98":0.01048,"99":0.00524,"100":0.00524,"102":0.00524,"103":0.04716,"104":0.01572,"105":0.00524,"108":0.01048,"109":0.33536,"110":0.06812,"111":0.00524,"112":0.00524,"114":0.03144,"116":0.08908,"118":0.05764,"119":0.00524,"120":0.02096,"121":0.00524,"122":0.06288,"123":0.01048,"124":0.0262,"125":0.04192,"126":0.03144,"127":0.01572,"128":0.06812,"129":0.02096,"130":0.27772,"131":0.09432,"132":0.03668,"133":0.16768,"134":0.04716,"135":0.1572,"136":0.03668,"137":0.07336,"138":0.17292,"139":0.26724,"140":0.4978,"141":5.20856,"142":12.93232,"143":0.03144,"144":0.00524,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 81 83 84 85 86 89 92 93 94 95 96 97 101 106 107 113 115 117 145 146"},F:{"46":0.00524,"87":0.00524,"92":0.05764,"93":0.00524,"95":0.1572,"102":0.01048,"114":0.00524,"120":0.01048,"122":0.62356,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00524,"109":0.07336,"115":0.00524,"120":0.01048,"122":0.00524,"125":0.00524,"126":0.00524,"129":0.00524,"130":0.01048,"131":0.01572,"132":0.00524,"133":0.00524,"134":0.01572,"135":0.00524,"136":0.0262,"137":0.01048,"138":0.03144,"139":0.0262,"140":0.14672,"141":1.04276,"142":9.42152,"143":0.03144,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 121 123 124 127 128"},E:{"14":0.01048,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01048,"12.1":0.02096,"13.1":0.06288,"14.1":0.03668,"15.1":0.01572,"15.2-15.3":0.00524,"15.4":0.00524,"15.5":0.00524,"15.6":0.2358,"16.0":0.02096,"16.1":0.05764,"16.2":0.14148,"16.3":0.04716,"16.4":0.01048,"16.5":0.06288,"16.6":0.37728,"17.0":0.01572,"17.1":0.2096,"17.2":0.02096,"17.3":0.03668,"17.4":0.06288,"17.5":0.09432,"17.6":0.45588,"18.0":0.04192,"18.1":0.11528,"18.2":0.04192,"18.3":0.14672,"18.4":0.08384,"18.5-18.6":0.32488,"26.0":0.79124,"26.1":0.87508,"26.2":0.02096},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00204,"5.0-5.1":0,"6.0-6.1":0.00815,"7.0-7.1":0.00611,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01834,"10.0-10.2":0.00204,"10.3":0.0326,"11.0-11.2":0.37902,"11.3-11.4":0.01223,"12.0-12.1":0.00408,"12.2-12.5":0.09577,"13.0-13.1":0,"13.2":0.01019,"13.3":0.00408,"13.4-13.7":0.01834,"14.0-14.4":0.03057,"14.5-14.8":0.03872,"15.0-15.1":0.0326,"15.2-15.3":0.02649,"15.4":0.02853,"15.5":0.03057,"15.6-15.8":0.44219,"16.0":0.05502,"16.1":0.10189,"16.2":0.05298,"16.3":0.09781,"16.4":0.02445,"16.5":0.04076,"16.6-16.7":0.59706,"17.0":0.05094,"17.1":0.06113,"17.2":0.04483,"17.3":0.06317,"17.4":0.10393,"17.5":0.19766,"17.6-17.7":0.48499,"18.0":0.108,"18.1":0.22823,"18.2":0.12227,"18.3":0.39736,"18.4":0.20378,"18.5-18.7":14.22965,"26.0":0.97609,"26.1":0.8905},P:{"4":0.03122,"21":0.01041,"22":0.01041,"23":0.01041,"24":0.01041,"25":0.02081,"26":0.03122,"27":0.03122,"28":0.33298,"29":3.03843,_:"20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.02081,"7.2-7.4":0.02081,"14.0":0.01041},I:{"0":0.01426,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.33796,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.16244,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00476},O:{"0":0.07616},H:{"0":0},L:{"0":23.73092},R:{_:"0"},M:{"0":0.78064}};
Index: de_modules/caniuse-lite/data/regions/CI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01568,"68":0.00392,"98":0.00392,"106":0.00392,"113":0.00392,"114":0.00392,"115":0.06666,"120":0.00392,"122":0.00392,"123":0.00392,"125":0.00392,"126":0.00392,"127":0.02745,"128":0.00392,"129":0.00392,"137":0.00392,"139":0.00784,"140":0.03921,"141":0.00784,"142":0.01176,"143":0.04313,"144":0.71754,"145":0.81557,"146":0.00392,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 107 108 109 110 111 112 116 117 118 119 121 124 130 131 132 133 134 135 136 138 147 148 3.5 3.6"},D:{"47":0.00392,"55":0.00392,"56":0.00392,"59":0.00392,"64":0.00392,"65":0.00784,"66":0.00392,"67":0.01176,"68":0.00392,"69":0.01961,"70":0.00392,"72":0.00392,"73":0.00784,"74":0.00392,"75":0.01176,"79":0.01568,"80":0.00392,"81":0.00392,"83":0.01176,"85":0.00784,"86":0.00784,"87":0.03137,"88":0.00392,"89":0.00392,"90":0.00392,"91":0.00392,"93":0.00392,"94":0.02353,"95":0.01176,"97":0.00392,"98":0.02353,"99":0.00392,"103":0.02353,"104":0.01176,"105":0.00392,"106":0.00392,"107":0.00392,"108":0.00784,"109":0.71362,"110":0.00392,"111":0.02353,"112":6.06579,"113":0.01176,"114":0.01176,"116":0.05489,"119":0.05489,"120":0.00784,"121":0.00784,"122":0.05097,"123":0.00392,"124":0.01176,"125":0.2235,"126":2.27418,"127":0.02745,"128":0.03921,"129":0.02353,"130":0.01961,"131":0.04705,"132":0.03137,"133":0.01961,"134":0.0745,"135":0.02353,"136":0.03137,"137":0.06274,"138":0.24702,"139":0.12939,"140":0.25879,"141":2.83096,"142":7.37932,"143":0.08234,"144":0.01176,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 57 58 60 61 62 63 71 76 77 78 84 92 96 100 101 102 115 117 118 145 146"},F:{"37":0.00392,"89":0.00392,"92":0.01568,"95":0.01961,"102":0.00392,"119":0.00392,"120":0.00784,"122":0.18429,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00392,"13":0.00392,"14":0.00392,"17":0.00392,"18":0.01176,"85":0.00784,"89":0.00392,"90":0.00784,"92":0.05882,"100":0.00784,"103":0.00392,"109":0.01176,"113":0.00392,"114":0.2431,"122":0.01176,"124":0.00392,"125":0.00392,"126":0.01961,"129":0.00392,"131":0.00392,"132":0.00392,"133":0.00784,"134":0.00392,"136":0.00784,"137":0.00392,"138":0.09018,"139":0.01961,"140":0.03921,"141":0.34113,"142":3.80337,"143":0.01176,_:"15 16 79 80 81 83 84 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 127 128 130 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3","5.1":0.00392,"11.1":0.00392,"12.1":0.00392,"13.1":0.00784,"14.1":0.00392,"15.6":0.05489,"16.3":0.00392,"16.6":0.03529,"17.1":0.00392,"17.4":0.00392,"17.5":0.01176,"17.6":0.07842,"18.0":0.00392,"18.1":0.00392,"18.2":0.00784,"18.3":0.01176,"18.4":0.03137,"18.5-18.6":0.04313,"26.0":0.14508,"26.1":0.18037,"26.2":0.01568},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00128,"5.0-5.1":0,"6.0-6.1":0.00512,"7.0-7.1":0.00384,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01153,"10.0-10.2":0.00128,"10.3":0.02049,"11.0-11.2":0.23824,"11.3-11.4":0.00769,"12.0-12.1":0.00256,"12.2-12.5":0.0602,"13.0-13.1":0,"13.2":0.0064,"13.3":0.00256,"13.4-13.7":0.01153,"14.0-14.4":0.01921,"14.5-14.8":0.02434,"15.0-15.1":0.02049,"15.2-15.3":0.01665,"15.4":0.01793,"15.5":0.01921,"15.6-15.8":0.27794,"16.0":0.03458,"16.1":0.06404,"16.2":0.0333,"16.3":0.06148,"16.4":0.01537,"16.5":0.02562,"16.6-16.7":0.37529,"17.0":0.03202,"17.1":0.03843,"17.2":0.02818,"17.3":0.03971,"17.4":0.06532,"17.5":0.12424,"17.6-17.7":0.30484,"18.0":0.06788,"18.1":0.14345,"18.2":0.07685,"18.3":0.24976,"18.4":0.12808,"18.5-18.7":8.94414,"26.0":0.61352,"26.1":0.55973},P:{"22":0.02062,"23":0.01031,"24":0.03092,"25":0.04123,"26":0.01031,"27":0.10308,"28":0.23708,"29":0.88648,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.07216,"19.0":0.01031},I:{"0":0.09713,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.83793,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02432},O:{"0":0.15198},H:{"0":0.08},L:{"0":54.22111},R:{_:"0"},M:{"0":0.06687}};
Index: de_modules/caniuse-lite/data/regions/CK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.12156,"143":0.02431,"144":0.257,"145":0.3473,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"79":0.11114,"87":0.01042,"103":0.02084,"109":0.00695,"116":0.04168,"120":0.00347,"122":0.01042,"125":0.09724,"126":0.00347,"128":0.00347,"131":0.00347,"133":0.00695,"134":0.02431,"136":0.00695,"137":0.02084,"138":0.05904,"139":0.05904,"140":0.18754,"141":3.94533,"142":18.4451,"143":0.00695,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 121 123 124 127 129 130 132 135 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01389,"135":0.00347,"138":0.00347,"139":0.02084,"140":0.01389,"141":0.36814,"142":3.31672,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 17.0 17.3 18.0 18.1","15.5":0.01389,"15.6":0.04168,"16.2":0.02084,"16.3":0.09377,"16.5":0.01389,"16.6":0.06599,"17.1":0.03126,"17.2":0.02431,"17.4":0.08335,"17.5":0.00695,"17.6":0.17365,"18.2":0.15629,"18.3":0.02778,"18.4":0.01389,"18.5-18.6":0.03473,"26.0":0.11461,"26.1":0.12503,"26.2":0.00347},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00233,"5.0-5.1":0,"6.0-6.1":0.00932,"7.0-7.1":0.00699,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02098,"10.0-10.2":0.00233,"10.3":0.03729,"11.0-11.2":0.43353,"11.3-11.4":0.01398,"12.0-12.1":0.00466,"12.2-12.5":0.10955,"13.0-13.1":0,"13.2":0.01165,"13.3":0.00466,"13.4-13.7":0.02098,"14.0-14.4":0.03496,"14.5-14.8":0.04429,"15.0-15.1":0.03729,"15.2-15.3":0.0303,"15.4":0.03263,"15.5":0.03496,"15.6-15.8":0.50578,"16.0":0.06293,"16.1":0.11654,"16.2":0.0606,"16.3":0.11188,"16.4":0.02797,"16.5":0.04662,"16.6-16.7":0.68292,"17.0":0.05827,"17.1":0.06992,"17.2":0.05128,"17.3":0.07225,"17.4":0.11887,"17.5":0.22609,"17.6-17.7":0.55473,"18.0":0.12353,"18.1":0.26105,"18.2":0.13985,"18.3":0.4545,"18.4":0.23308,"18.5-18.7":16.27592,"26.0":1.11645,"26.1":1.01856},P:{"4":13.94473,"21":0.03034,"22":0.04045,"23":0.02022,"24":0.09101,"25":0.01011,"26":0.0809,"27":0.06067,"28":0.45505,"29":3.00332,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01011},I:{"0":0.00652,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.05874,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":28.77581},R:{_:"0"},M:{"0":0.13707}};
Index: de_modules/caniuse-lite/data/regions/CL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.00781,"4":0.00781,"5":0.0039,"52":0.0039,"115":0.02342,"118":0.00781,"119":0.0039,"120":0.00781,"125":0.0039,"128":0.0039,"136":0.0039,"140":0.00781,"141":0.0039,"142":0.00781,"143":0.01171,"144":0.28499,"145":0.25376,"146":0.0039,_:"2 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 121 122 123 124 126 127 129 130 131 132 133 134 135 137 138 139 147 148 3.5 3.6"},D:{"29":0.01562,"38":0.0039,"39":0.00781,"40":0.00781,"41":0.00781,"42":0.00781,"43":0.00781,"44":0.00781,"45":0.00781,"46":0.00781,"47":0.01171,"48":0.03123,"49":0.01171,"50":0.00781,"51":0.00781,"52":0.00781,"53":0.00781,"54":0.00781,"55":0.01171,"56":0.00781,"57":0.00781,"58":0.01171,"59":0.00781,"60":0.00781,"69":0.00781,"74":0.0039,"79":0.01952,"83":0.0039,"87":0.00781,"97":0.0039,"102":0.0039,"103":0.01171,"104":0.0039,"108":0.00781,"109":0.24595,"110":0.0039,"111":0.01952,"112":7.67526,"114":0.01171,"116":0.03904,"117":0.0039,"119":0.03123,"120":0.01171,"121":0.00781,"122":0.03123,"123":0.0039,"124":0.01171,"125":1.49133,"126":1.04627,"127":0.00781,"128":0.07027,"129":0.01171,"130":0.00781,"131":0.03904,"132":0.01952,"133":0.02342,"134":0.02342,"135":0.01952,"136":0.01562,"137":0.02733,"138":0.16006,"139":4.01722,"140":0.17178,"141":2.50637,"142":8.53024,"143":0.01171,"144":0.0039,_:"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 30 31 32 33 34 35 36 37 61 62 63 64 65 66 67 68 70 71 72 73 75 76 77 78 80 81 84 85 86 88 89 90 91 92 93 94 95 96 98 99 100 101 105 106 107 113 115 118 145 146"},F:{"92":0.00781,"95":0.0039,"119":0.0039,"120":0.0039,"122":0.63245,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0039,"109":0.00781,"114":0.01171,"131":0.0039,"133":0.0039,"134":0.0039,"135":0.0039,"136":0.0039,"137":0.0039,"138":0.01171,"139":0.00781,"140":0.01562,"141":0.25376,"142":1.80365,"143":0.0039,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132"},E:{"4":0.01171,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0","13.1":0.00781,"14.1":0.0039,"15.6":0.01562,"16.3":0.0039,"16.4":0.01952,"16.5":0.0039,"16.6":0.01562,"17.1":0.00781,"17.2":0.0039,"17.3":0.0039,"17.4":0.00781,"17.5":0.01171,"17.6":0.03123,"18.0":0.0039,"18.1":0.0039,"18.2":0.00781,"18.3":0.01562,"18.4":0.01952,"18.5-18.6":0.03904,"26.0":0.07027,"26.1":0.0937,"26.2":0.0039},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0003,"5.0-5.1":0,"6.0-6.1":0.00119,"7.0-7.1":0.00089,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00268,"10.0-10.2":0.0003,"10.3":0.00476,"11.0-11.2":0.05534,"11.3-11.4":0.00179,"12.0-12.1":0.0006,"12.2-12.5":0.01398,"13.0-13.1":0,"13.2":0.00149,"13.3":0.0006,"13.4-13.7":0.00268,"14.0-14.4":0.00446,"14.5-14.8":0.00565,"15.0-15.1":0.00476,"15.2-15.3":0.00387,"15.4":0.00417,"15.5":0.00446,"15.6-15.8":0.06456,"16.0":0.00803,"16.1":0.01488,"16.2":0.00774,"16.3":0.01428,"16.4":0.00357,"16.5":0.00595,"16.6-16.7":0.08718,"17.0":0.00744,"17.1":0.00893,"17.2":0.00655,"17.3":0.00922,"17.4":0.01517,"17.5":0.02886,"17.6-17.7":0.07081,"18.0":0.01577,"18.1":0.03332,"18.2":0.01785,"18.3":0.05802,"18.4":0.02975,"18.5-18.7":2.07768,"26.0":0.14252,"26.1":0.13002},P:{"4":0.02051,"21":0.02051,"22":0.02051,"23":0.01026,"24":0.02051,"25":0.03077,"26":0.0718,"27":0.05129,"28":0.27695,"29":1.21036,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01026},I:{"0":0.01218,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.06097,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.18583,"9":0.0354,"10":0.05752,"11":0.91588,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0061},H:{"0":0},L:{"0":57.5758},R:{_:"0"},M:{"0":0.06707}};
Index: de_modules/caniuse-lite/data/regions/CM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.02283,"5":0.00326,"43":0.00326,"47":0.00326,"49":0.00652,"51":0.01305,"52":0.00979,"56":0.00652,"58":0.00326,"60":0.00326,"62":0.00326,"67":0.00326,"69":0.00326,"71":0.00326,"72":0.01631,"73":0.00326,"78":0.00326,"82":0.00326,"90":0.00326,"91":0.00326,"92":0.00326,"93":0.00326,"95":0.00326,"99":0.00326,"112":0.00652,"114":0.00979,"115":0.18593,"116":0.00326,"120":0.00326,"122":0.00326,"123":0.00326,"124":0.00979,"125":0.00326,"127":0.04567,"128":0.01305,"129":0.00652,"130":0.00326,"131":0.00326,"132":0.00652,"133":0.00326,"134":0.00326,"135":0.00326,"136":0.01631,"137":0.00652,"138":0.02283,"139":0.00979,"140":0.05872,"141":0.0261,"142":0.0261,"143":0.11091,"144":0.83507,"145":0.94598,"146":0.00979,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 44 45 46 48 50 53 54 55 57 59 61 63 64 65 66 68 70 74 75 76 77 79 80 81 83 84 85 86 87 88 89 94 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 113 117 118 119 121 126 147 148 3.5 3.6"},D:{"38":0.00326,"48":0.00979,"49":0.00652,"56":0.0261,"57":0.00326,"58":0.00652,"61":0.00326,"62":0.00326,"64":0.00326,"65":0.00652,"67":0.01631,"68":0.00326,"69":0.01305,"70":0.02936,"71":0.00326,"72":0.01305,"73":0.00652,"74":0.03588,"75":0.00979,"77":0.01305,"78":0.00326,"79":0.01631,"80":0.01305,"81":0.00979,"83":0.00652,"84":0.00326,"85":0.00652,"86":0.01305,"87":0.03588,"88":0.00326,"89":0.00979,"90":0.00979,"91":0.00326,"92":0.00326,"93":0.01305,"94":0.00326,"95":0.00326,"96":0.00326,"97":0.00979,"98":0.00652,"100":0.00326,"101":0.00326,"102":0.00326,"103":0.03588,"104":0.04241,"105":0.00652,"106":0.00326,"107":0.00326,"108":0.00652,"109":0.57085,"110":0.00652,"111":0.04567,"112":0.00326,"113":0.00326,"114":0.01957,"115":0.00652,"116":0.04241,"117":0.00652,"118":0.01305,"119":0.02936,"120":0.01957,"121":0.00979,"122":0.04567,"123":0.00979,"124":0.01631,"125":0.09134,"126":0.08481,"127":0.00979,"128":0.04893,"129":0.0261,"130":0.02936,"131":0.05545,"132":0.03914,"133":0.02283,"134":0.07829,"135":0.04893,"136":0.05872,"137":0.14679,"138":0.31315,"139":0.19572,"140":0.47951,"141":2.67484,"142":6.9448,"143":0.01957,"144":0.01631,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 59 60 63 66 76 99 145 146"},F:{"42":0.00326,"44":0.00326,"48":0.00326,"79":0.01305,"86":0.00326,"87":0.00326,"90":0.01957,"91":0.00979,"92":0.02936,"95":0.03262,"99":0.00326,"107":0.00326,"111":0.00326,"113":0.00326,"116":0.02283,"117":0.00326,"118":0.00326,"119":0.00979,"120":0.0261,"121":0.02283,"122":0.39144,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 88 89 93 94 96 97 98 100 101 102 103 104 105 106 108 109 110 112 114 115 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00979,"13":0.00326,"14":0.01631,"15":0.00326,"16":0.00652,"17":0.01305,"18":0.04893,"84":0.00652,"85":0.00326,"89":0.01631,"90":0.01957,"92":0.09786,"100":0.03262,"109":0.00652,"112":0.00326,"114":0.12722,"122":0.03262,"125":0.00326,"126":0.00652,"129":0.00326,"130":0.00326,"131":0.00652,"132":0.00326,"133":0.00979,"134":0.00326,"135":0.03914,"136":0.00652,"137":0.01631,"138":0.04241,"139":0.07176,"140":0.07176,"141":0.41427,"142":2.18228,"143":0.01305,_:"79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 123 124 127 128"},E:{"10":0.00652,"13":0.00326,"14":0.00652,_:"0 4 5 6 7 8 9 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 17.0 17.2 17.3","5.1":0.00326,"11.1":0.00326,"12.1":0.00326,"13.1":0.00979,"14.1":0.00652,"15.1":0.00326,"15.4":0.00326,"15.6":0.05872,"16.3":0.00326,"16.5":0.12722,"16.6":0.06198,"17.1":0.00652,"17.4":0.01957,"17.5":0.00652,"17.6":0.04241,"18.0":0.00652,"18.1":0.00326,"18.2":0.01957,"18.3":0.01305,"18.4":0.00326,"18.5-18.6":0.01305,"26.0":0.07503,"26.1":0.06198,"26.2":0.02283},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00083,"5.0-5.1":0,"6.0-6.1":0.00331,"7.0-7.1":0.00248,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00745,"10.0-10.2":0.00083,"10.3":0.01324,"11.0-11.2":0.1539,"11.3-11.4":0.00496,"12.0-12.1":0.00165,"12.2-12.5":0.03889,"13.0-13.1":0,"13.2":0.00414,"13.3":0.00165,"13.4-13.7":0.00745,"14.0-14.4":0.01241,"14.5-14.8":0.01572,"15.0-15.1":0.01324,"15.2-15.3":0.01076,"15.4":0.01158,"15.5":0.01241,"15.6-15.8":0.17955,"16.0":0.02234,"16.1":0.04137,"16.2":0.02151,"16.3":0.03972,"16.4":0.00993,"16.5":0.01655,"16.6-16.7":0.24244,"17.0":0.02069,"17.1":0.02482,"17.2":0.0182,"17.3":0.02565,"17.4":0.0422,"17.5":0.08026,"17.6-17.7":0.19693,"18.0":0.04385,"18.1":0.09267,"18.2":0.04965,"18.3":0.16135,"18.4":0.08274,"18.5-18.7":5.77792,"26.0":0.39634,"26.1":0.36159},P:{"4":0.02045,"21":0.01022,"22":0.01022,"23":0.01022,"24":0.03067,"25":0.04089,"26":0.02045,"27":0.08179,"28":0.2658,"29":0.29647,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.03067,"9.2":0.03067,"11.1-11.2":0.01022,"16.0":0.02045,"19.0":0.01022},I:{"0":0.02019,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.86971,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00489,"11":0.05382,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00674,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00674},O:{"0":0.1415},H:{"0":1.77},L:{"0":63.40682},R:{_:"0"},M:{"0":0.21562}};
Index: de_modules/caniuse-lite/data/regions/CN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02075,"43":0.37352,"115":0.0415,"140":0.00692,"143":0.02767,"144":0.13834,"145":0.13142,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 146 147 148 3.5 3.6"},D:{"39":0.00692,"40":0.00692,"41":0.00692,"45":0.01383,"47":0.00692,"48":0.01383,"49":0.01383,"52":0.00692,"53":0.01383,"55":0.00692,"56":0.00692,"57":0.00692,"58":0.00692,"59":0.00692,"60":0.00692,"63":0.00692,"69":0.10376,"70":0.00692,"73":0.01383,"75":0.00692,"78":0.01383,"79":0.05534,"80":0.01383,"81":0.00692,"83":0.02767,"84":0.00692,"85":0.00692,"86":0.04842,"87":0.06225,"89":0.00692,"90":0.00692,"91":0.02767,"92":0.03459,"94":0.00692,"95":0.00692,"96":0.00692,"97":0.06225,"98":0.20059,"99":0.08992,"100":0.00692,"101":0.06917,"102":0.00692,"103":0.01383,"104":0.00692,"105":1.55633,"106":1.03755,"107":0.63636,"108":0.23518,"109":1.13439,"110":1.59091,"111":0.61561,"112":0.25593,"113":0.52569,"114":1.41799,"115":0.2836,"116":0.12451,"117":0.44269,"118":0.62945,"119":0.22134,"120":1.48716,"121":0.80929,"122":0.31127,"123":0.54644,"124":0.37352,"125":0.50494,"126":0.58795,"127":1.36957,"128":0.79546,"129":1.0168,"130":0.47727,"131":0.40119,"132":0.13142,"133":0.2836,"134":6.09388,"135":0.10376,"136":0.06225,"137":0.07609,"138":0.17293,"139":25.97334,"140":0.56719,"141":0.62945,"142":1.7085,"143":0.00692,"144":0.02075,_:"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 33 34 35 36 37 38 42 43 44 46 50 51 54 61 62 64 65 66 67 68 71 72 74 76 77 88 93 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00692,"92":0.0415,"100":0.00692,"106":0.01383,"107":0.00692,"108":0.00692,"109":0.05534,"110":0.00692,"111":0.00692,"112":0.01383,"113":0.02767,"114":0.0415,"115":0.02767,"116":0.01383,"117":0.01383,"118":0.01383,"119":0.01383,"120":0.2421,"121":0.01383,"122":0.03459,"123":0.01383,"124":0.01383,"125":0.02075,"126":0.0415,"127":0.0415,"128":0.02767,"129":0.02767,"130":0.02767,"131":0.07609,"132":0.02767,"133":0.04842,"134":0.0415,"135":0.0415,"136":0.05534,"137":0.06225,"138":0.10376,"139":0.11067,"140":0.18676,"141":0.70553,"142":3.83202,"143":0.01383,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105"},E:{"13":0.00692,"14":0.01383,"15":0.00692,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 17.0 26.2","13.1":0.02075,"14.1":0.02075,"15.1":0.00692,"15.4":0.00692,"15.5":0.00692,"15.6":0.05534,"16.0":0.00692,"16.1":0.01383,"16.2":0.00692,"16.3":0.02075,"16.4":0.00692,"16.5":0.00692,"16.6":0.06225,"17.1":0.02767,"17.2":0.00692,"17.3":0.00692,"17.4":0.00692,"17.5":0.01383,"17.6":0.0415,"18.0":0.00692,"18.1":0.01383,"18.2":0.00692,"18.3":0.02767,"18.4":0.01383,"18.5-18.6":0.04842,"26.0":0.05534,"26.1":0.04842},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00059,"5.0-5.1":0,"6.0-6.1":0.00236,"7.0-7.1":0.00177,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00532,"10.0-10.2":0.00059,"10.3":0.00945,"11.0-11.2":0.10991,"11.3-11.4":0.00355,"12.0-12.1":0.00118,"12.2-12.5":0.02777,"13.0-13.1":0,"13.2":0.00295,"13.3":0.00118,"13.4-13.7":0.00532,"14.0-14.4":0.00886,"14.5-14.8":0.01123,"15.0-15.1":0.00945,"15.2-15.3":0.00768,"15.4":0.00827,"15.5":0.00886,"15.6-15.8":0.12822,"16.0":0.01595,"16.1":0.02954,"16.2":0.01536,"16.3":0.02836,"16.4":0.00709,"16.5":0.01182,"16.6-16.7":0.17313,"17.0":0.01477,"17.1":0.01773,"17.2":0.013,"17.3":0.01832,"17.4":0.03014,"17.5":0.05732,"17.6-17.7":0.14063,"18.0":0.03132,"18.1":0.06618,"18.2":0.03545,"18.3":0.11522,"18.4":0.05909,"18.5-18.7":4.12622,"26.0":0.28304,"26.1":0.25822},P:{"27":0.01208,"28":0.02416,"29":0.10871,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":2.67316,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00054,"4.4":0,"4.4.3-4.4.4":0.00134},K:{"0":0.01542,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.16275,"11":2.60405,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":1.36621},O:{"0":2.96064},H:{"0":0},L:{"0":17.61273},R:{_:"0"},M:{"0":0.09869}};
Index: de_modules/caniuse-lite/data/regions/CO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.07517,"5":0.01002,"115":0.03007,"120":0.01002,"123":0.00501,"125":0.01002,"128":0.00501,"140":0.01503,"142":0.00501,"143":0.01002,"144":0.26057,"145":0.32572,"146":0.00501,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 147 148 3.5 3.6"},D:{"69":0.01002,"79":0.02506,"87":0.03508,"88":0.00501,"97":0.01503,"101":0.00501,"102":0.00501,"103":0.0451,"104":0.00501,"106":0.01002,"108":0.01503,"109":0.37081,"110":0.00501,"111":0.02506,"112":14.44671,"114":0.02004,"116":0.06013,"117":0.01503,"119":0.17037,"120":0.02506,"121":0.02004,"122":0.08519,"123":0.02506,"124":0.05011,"125":0.35578,"126":2.14471,"127":0.02506,"128":0.08018,"129":0.01002,"130":0.01503,"131":0.0451,"132":0.07015,"133":0.02506,"134":0.02506,"135":0.04009,"136":0.0451,"137":0.05011,"138":0.17037,"139":0.09521,"140":0.24554,"141":3.60291,"142":14.44671,"143":0.03007,"144":0.01002,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 89 90 91 92 93 94 95 96 98 99 100 105 107 113 115 118 145 146"},F:{"85":0.02506,"92":0.01002,"95":0.01002,"117":0.00501,"120":0.00501,"122":0.52616,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00501,"109":0.00501,"114":0.0451,"122":0.00501,"130":0.00501,"131":0.00501,"133":0.00501,"134":0.00501,"135":0.00501,"136":0.00501,"137":0.00501,"138":0.01002,"139":0.01002,"140":0.02004,"141":0.31569,"142":2.52053,"143":0.01002,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 132"},E:{"4":0.00501,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 17.0 17.2","5.1":0.00501,"13.1":0.00501,"14.1":0.00501,"15.6":0.02506,"16.1":0.00501,"16.3":0.02506,"16.4":0.00501,"16.5":0.00501,"16.6":0.03007,"17.1":0.01503,"17.3":0.00501,"17.4":0.00501,"17.5":0.01503,"17.6":0.05512,"18.0":0.00501,"18.1":0.01002,"18.2":0.00501,"18.3":0.01002,"18.4":0.01503,"18.5-18.6":0.05512,"26.0":0.1353,"26.1":0.14031,"26.2":0.00501},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0014,"5.0-5.1":0,"6.0-6.1":0.00558,"7.0-7.1":0.00419,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01256,"10.0-10.2":0.0014,"10.3":0.02233,"11.0-11.2":0.2596,"11.3-11.4":0.00837,"12.0-12.1":0.00279,"12.2-12.5":0.0656,"13.0-13.1":0,"13.2":0.00698,"13.3":0.00279,"13.4-13.7":0.01256,"14.0-14.4":0.02094,"14.5-14.8":0.02652,"15.0-15.1":0.02233,"15.2-15.3":0.01814,"15.4":0.01954,"15.5":0.02094,"15.6-15.8":0.30287,"16.0":0.03768,"16.1":0.06979,"16.2":0.03629,"16.3":0.06699,"16.4":0.01675,"16.5":0.02791,"16.6-16.7":0.40894,"17.0":0.03489,"17.1":0.04187,"17.2":0.03071,"17.3":0.04327,"17.4":0.07118,"17.5":0.13538,"17.6-17.7":0.33218,"18.0":0.07397,"18.1":0.15632,"18.2":0.08374,"18.3":0.27216,"18.4":0.13957,"18.5-18.7":9.74619,"26.0":0.66854,"26.1":0.60992},P:{"4":0.04098,"20":0.01024,"22":0.01024,"23":0.01024,"24":0.01024,"25":0.01024,"26":0.02049,"27":0.03073,"28":0.08196,"29":0.87082,_:"21 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01024,"7.2-7.4":0.05122},I:{"0":0.01993,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.07984,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.28062,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00499},H:{"0":0},L:{"0":39.88461},R:{_:"0"},M:{"0":0.16966}};
Index: de_modules/caniuse-lite/data/regions/CR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01904,"115":0.311,"120":0.01904,"125":0.01269,"128":0.00635,"135":0.00635,"140":0.02539,"141":0.02539,"142":0.00635,"143":0.03174,"144":0.97744,"145":1.0536,"146":0.01269,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 124 126 127 129 130 131 132 133 134 136 137 138 139 147 148 3.5 3.6"},D:{"69":0.02539,"73":0.00635,"79":0.01269,"80":0.00635,"86":0.00635,"87":0.01269,"91":0.00635,"97":0.01269,"98":0.01904,"103":0.01269,"106":0.00635,"107":0.01269,"108":0.00635,"109":0.2031,"110":0.01269,"111":0.03174,"112":18.43804,"114":0.00635,"115":0.00635,"116":0.03174,"119":0.01269,"120":0.01904,"122":0.10155,"123":0.00635,"124":0.35543,"125":0.79338,"126":3.95418,"127":0.01269,"128":0.06347,"129":0.01269,"130":0.00635,"131":0.03808,"132":0.06982,"133":0.02539,"134":0.07616,"135":0.04443,"136":0.02539,"137":0.02539,"138":0.15868,"139":0.44429,"140":0.35543,"141":4.78564,"142":15.46129,"143":0.03174,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 74 75 76 77 78 81 83 84 85 88 89 90 92 93 94 95 96 99 100 101 102 104 105 113 117 118 121 144 145 146"},F:{"92":0.03174,"93":0.00635,"95":0.00635,"120":0.01269,"122":0.80607,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00635,"109":0.01269,"114":0.58392,"131":0.03808,"134":0.03174,"136":0.00635,"137":0.00635,"138":0.00635,"139":0.01904,"140":0.02539,"141":0.46333,"142":4.1192,"143":0.00635,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4","13.1":0.00635,"14.1":0.01269,"15.6":0.05712,"16.3":0.00635,"16.5":0.00635,"16.6":0.08251,"17.0":0.00635,"17.1":0.26657,"17.2":0.00635,"17.3":0.01269,"17.4":0.01904,"17.5":0.03174,"17.6":0.08886,"18.0":0.02539,"18.1":0.00635,"18.2":0.00635,"18.3":0.02539,"18.4":0.01269,"18.5-18.6":0.10155,"26.0":0.34909,"26.1":0.38717,"26.2":0.01269},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00096,"5.0-5.1":0,"6.0-6.1":0.00385,"7.0-7.1":0.00289,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00866,"10.0-10.2":0.00096,"10.3":0.01539,"11.0-11.2":0.17895,"11.3-11.4":0.00577,"12.0-12.1":0.00192,"12.2-12.5":0.04522,"13.0-13.1":0,"13.2":0.00481,"13.3":0.00192,"13.4-13.7":0.00866,"14.0-14.4":0.01443,"14.5-14.8":0.01828,"15.0-15.1":0.01539,"15.2-15.3":0.01251,"15.4":0.01347,"15.5":0.01443,"15.6-15.8":0.20878,"16.0":0.02598,"16.1":0.0481,"16.2":0.02501,"16.3":0.04618,"16.4":0.01155,"16.5":0.01924,"16.6-16.7":0.28189,"17.0":0.02405,"17.1":0.02886,"17.2":0.02117,"17.3":0.02983,"17.4":0.04907,"17.5":0.09332,"17.6-17.7":0.22898,"18.0":0.05099,"18.1":0.10775,"18.2":0.05773,"18.3":0.18761,"18.4":0.09621,"18.5-18.7":6.71833,"26.0":0.46085,"26.1":0.42044},P:{"4":0.05175,"21":0.01035,"23":0.01035,"24":0.01035,"25":0.01035,"26":0.05175,"27":0.0207,"28":0.1242,"29":1.64562,_:"20 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.0207,"11.1-11.2":0.01035,"17.0":0.01035},I:{"0":0.02919,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.40194,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02192},H:{"0":0},L:{"0":27.49344},R:{_:"0"},M:{"0":0.34348}};
Index: de_modules/caniuse-lite/data/regions/CU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.93714,"44":0.00317,"45":0.01583,"46":0.00317,"47":0.00317,"49":0.0095,"50":0.00633,"52":0.01266,"54":0.04116,"56":0.0095,"57":0.03799,"60":0.00317,"63":0.00633,"64":0.00317,"65":0.00317,"66":0.00317,"68":0.02216,"72":0.06015,"75":0.00633,"80":0.00317,"83":0.00317,"84":0.00317,"87":0.00633,"88":0.00317,"89":0.00317,"91":0.00317,"93":0.00317,"94":0.01583,"95":0.00633,"96":0.00317,"97":0.00633,"98":0.00317,"99":0.00633,"100":0.00317,"101":0.00317,"102":0.0095,"103":0.0095,"104":0.00317,"108":0.00633,"109":0.00317,"110":0.0095,"111":0.01583,"112":0.00317,"113":0.01266,"114":0.00633,"115":0.95613,"116":0.0095,"117":0.03799,"118":0.00317,"119":0.00317,"120":0.00317,"121":0.00317,"122":0.01583,"123":0.00633,"124":0.01266,"125":0.00633,"126":0.07598,"127":0.15197,"128":0.02849,"129":0.0095,"130":0.01266,"131":0.019,"132":0.00633,"133":0.01583,"134":0.05382,"135":0.02216,"136":0.02849,"137":0.05066,"138":0.03166,"139":0.05066,"140":0.23745,"141":0.08865,"142":0.18363,"143":0.25645,"144":2.16554,"145":2.24153,"146":0.03799,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 48 51 53 55 58 59 61 62 67 69 70 71 73 74 76 77 78 79 81 82 85 86 90 92 105 106 107 147 148 3.5 3.6"},D:{"38":0.00317,"51":0.00317,"56":0.00317,"63":0.00317,"66":0.00317,"67":0.00633,"69":0.00633,"70":0.01266,"71":0.0095,"72":0.0095,"73":0.00317,"74":0.00633,"76":0.00317,"77":0.00317,"78":0.00317,"79":0.00317,"80":0.019,"81":0.01583,"84":0.00317,"85":0.00317,"86":0.01583,"87":0.0095,"88":0.09181,"89":0.00633,"90":0.06332,"91":0.00633,"94":0.00317,"95":0.00317,"96":0.0095,"97":0.01266,"98":0.00633,"99":0.0095,"100":0.00317,"101":0.00317,"102":0.00633,"103":0.00633,"104":0.01583,"105":0.02216,"106":0.01266,"107":0.00633,"108":0.03166,"109":0.55088,"110":0.00633,"111":0.03483,"112":0.01266,"113":0.00317,"114":0.01583,"115":0.00633,"116":0.03799,"117":0.00317,"118":0.03166,"119":0.03799,"120":0.019,"121":0.02533,"122":0.02533,"123":0.019,"124":0.02533,"125":0.02849,"126":0.12664,"127":0.01583,"128":0.019,"129":0.01583,"130":0.03483,"131":0.05382,"132":0.02849,"133":0.04116,"134":0.07915,"135":0.04116,"136":0.10131,"137":0.08232,"138":0.15197,"139":0.14247,"140":0.25645,"141":1.28856,"142":3.6219,"143":0.00317,"144":0.00317,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 57 58 59 60 61 62 64 65 68 75 83 92 93 145 146"},F:{"34":0.00317,"36":0.00633,"37":0.00633,"42":0.0095,"46":0.00633,"47":0.00317,"49":0.00317,"62":0.019,"64":0.00633,"79":0.03483,"85":0.00317,"87":0.01266,"89":0.00317,"90":0.00317,"91":0.02533,"92":0.05066,"93":0.00317,"95":0.09181,"99":0.00317,"105":0.00317,"108":0.0095,"112":0.00317,"114":0.00317,"117":0.00317,"118":0.00317,"119":0.01266,"120":0.04116,"121":0.03799,"122":0.33243,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 43 44 45 48 50 51 52 53 54 55 56 57 58 60 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 88 94 96 97 98 100 101 102 103 104 106 107 109 110 111 113 115 116 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00317,"13":0.02216,"14":0.02216,"15":0.00317,"16":0.00633,"17":0.019,"18":0.05066,"80":0.00317,"84":0.01266,"85":0.00317,"89":0.01266,"90":0.01266,"92":0.26594,"96":0.00317,"99":0.00317,"100":0.04116,"103":0.00317,"109":0.0095,"111":0.00633,"113":0.00317,"114":0.14564,"115":0.00633,"116":0.00317,"120":0.00633,"122":0.04432,"126":0.00317,"127":0.00317,"128":0.01266,"129":0.0095,"130":0.0095,"131":0.04749,"132":0.00633,"133":0.01583,"134":0.02533,"135":0.019,"136":0.02533,"137":0.09498,"138":0.04116,"139":0.04749,"140":0.14564,"141":0.46224,"142":2.20987,"143":0.00317,_:"79 81 83 86 87 88 91 93 94 95 97 98 101 102 104 105 106 107 108 110 112 117 118 119 121 123 124 125"},E:{"10":0.00317,"12":0.00633,"14":0.00317,_:"0 4 5 6 7 8 9 11 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 17.2 17.3 17.4 18.0 18.1 18.2 18.3 26.2","5.1":0.01583,"13.1":0.00317,"14.1":0.04749,"15.6":0.00633,"16.4":0.00633,"16.6":0.01583,"17.1":0.01266,"17.5":0.00633,"17.6":0.00633,"18.4":0.00317,"18.5-18.6":0.01266,"26.0":0.04432,"26.1":0.04432},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00031,"5.0-5.1":0,"6.0-6.1":0.00122,"7.0-7.1":0.00092,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00275,"10.0-10.2":0.00031,"10.3":0.00489,"11.0-11.2":0.05682,"11.3-11.4":0.00183,"12.0-12.1":0.00061,"12.2-12.5":0.01436,"13.0-13.1":0,"13.2":0.00153,"13.3":0.00061,"13.4-13.7":0.00275,"14.0-14.4":0.00458,"14.5-14.8":0.0058,"15.0-15.1":0.00489,"15.2-15.3":0.00397,"15.4":0.00428,"15.5":0.00458,"15.6-15.8":0.06629,"16.0":0.00825,"16.1":0.01527,"16.2":0.00794,"16.3":0.01466,"16.4":0.00367,"16.5":0.00611,"16.6-16.7":0.08951,"17.0":0.00764,"17.1":0.00916,"17.2":0.00672,"17.3":0.00947,"17.4":0.01558,"17.5":0.02963,"17.6-17.7":0.0727,"18.0":0.01619,"18.1":0.03421,"18.2":0.01833,"18.3":0.05957,"18.4":0.03055,"18.5-18.7":2.13317,"26.0":0.14632,"26.1":0.13349},P:{"4":0.03058,"20":0.01019,"21":0.06117,"22":0.11214,"23":0.04078,"24":0.25486,"25":0.14272,"26":0.12233,"27":0.17331,"28":0.63206,"29":0.58109,_:"5.0-5.4 8.2 10.1 12.0","6.2-6.4":0.02039,"7.2-7.4":0.10195,"9.2":0.02039,"11.1-11.2":0.02039,"13.0":0.01019,"14.0":0.04078,"15.0":0.01019,"16.0":0.03058,"17.0":0.01019,"18.0":0.01019,"19.0":0.03058},I:{"0":0.02047,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.58772,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01583,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0205},H:{"0":0},L:{"0":71.09241},R:{_:"0"},M:{"0":0.40321}};
Index: de_modules/caniuse-lite/data/regions/CV.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CV.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01822,"78":0.00456,"112":0.07288,"113":0.01367,"114":0.01367,"115":0.13665,"120":0.00456,"125":0.00456,"127":0.00911,"134":0.00456,"136":0.00456,"140":0.01822,"144":0.26875,"145":0.46917,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 116 117 118 119 121 122 123 124 126 128 129 130 131 132 133 135 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"27":0.00456,"55":0.01822,"64":0.00456,"65":0.02278,"69":0.00911,"72":0.00911,"73":0.03189,"74":0.01367,"75":0.00456,"76":0.01822,"79":0.01822,"83":0.01367,"87":0.02278,"90":0.00456,"93":0.00911,"95":0.01822,"99":0.00456,"100":0.00456,"103":0.01822,"106":0.01367,"108":0.00456,"109":0.45095,"111":0.01367,"112":0.02278,"113":0.041,"114":0.05922,"115":0.01822,"116":0.25053,"118":0.01367,"119":0.041,"120":0.02733,"121":0.00911,"122":0.03644,"123":0.00911,"124":0.00911,"125":0.47828,"126":0.1822,"127":0.03189,"128":0.05011,"129":0.00911,"130":0.02733,"131":0.03189,"132":0.06377,"133":0.01822,"134":0.23231,"135":0.03189,"136":0.04555,"137":0.07744,"138":0.30519,"139":0.0911,"140":0.59671,"141":4.07217,"142":16.37978,"143":0.05011,"144":0.00456,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 66 67 68 70 71 77 78 80 81 84 85 86 88 89 91 92 94 96 97 98 101 102 104 105 107 110 117 145 146"},F:{"15":0.00456,"36":0.00456,"46":0.01822,"92":0.02733,"93":0.00456,"95":0.00456,"122":0.52383,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00911,"18":0.00456,"92":0.01822,"100":0.00456,"109":0.01822,"113":0.00456,"114":0.38718,"123":0.00456,"126":0.00456,"127":0.00456,"128":0.00911,"131":0.02278,"133":0.01822,"134":0.00456,"135":0.00911,"136":0.00911,"137":0.01367,"138":0.01822,"139":0.03644,"140":0.14121,"141":0.4054,"142":7.15135,"143":0.00911,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 122 124 125 129 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 15.5 16.0 16.1 16.4 17.0 17.4 26.2","12.1":0.00911,"13.1":0.2232,"14.1":0.02278,"15.1":0.01367,"15.6":0.11843,"16.2":0.01367,"16.3":0.01367,"16.5":0.01822,"16.6":0.06833,"17.1":0.00456,"17.2":0.01822,"17.3":0.02733,"17.5":0.01367,"17.6":0.13665,"18.0":0.00911,"18.1":0.01822,"18.2":0.00456,"18.3":0.11843,"18.4":0.00456,"18.5-18.6":0.12754,"26.0":0.2232,"26.1":0.50561},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00145,"5.0-5.1":0,"6.0-6.1":0.00582,"7.0-7.1":0.00436,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01309,"10.0-10.2":0.00145,"10.3":0.02328,"11.0-11.2":0.27061,"11.3-11.4":0.00873,"12.0-12.1":0.00291,"12.2-12.5":0.06838,"13.0-13.1":0,"13.2":0.00727,"13.3":0.00291,"13.4-13.7":0.01309,"14.0-14.4":0.02182,"14.5-14.8":0.02764,"15.0-15.1":0.02328,"15.2-15.3":0.01891,"15.4":0.02037,"15.5":0.02182,"15.6-15.8":0.31571,"16.0":0.03928,"16.1":0.07275,"16.2":0.03783,"16.3":0.06984,"16.4":0.01746,"16.5":0.0291,"16.6-16.7":0.42629,"17.0":0.03637,"17.1":0.04365,"17.2":0.03201,"17.3":0.0451,"17.4":0.0742,"17.5":0.14113,"17.6-17.7":0.34627,"18.0":0.07711,"18.1":0.16295,"18.2":0.08729,"18.3":0.28371,"18.4":0.14549,"18.5-18.7":10.15959,"26.0":0.6969,"26.1":0.63579},P:{"4":0.07416,"22":0.2013,"24":0.02119,"25":0.02119,"26":0.04238,"27":0.14833,"28":0.392,"29":2.06596,_:"20 21 23 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 19.0","5.0-5.4":0.02119,"7.2-7.4":0.07416,"11.1-11.2":0.02119,"16.0":0.03178,"18.0":0.01059},I:{"0":0.02719,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.53361,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.01089,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01634},H:{"0":0},L:{"0":41.75228},R:{_:"0"},M:{"0":0.32126}};
Index: de_modules/caniuse-lite/data/regions/CX.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CX.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 3.5 3.6"},D:{_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6-15.8":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0,"16.6-16.7":0,"17.0":0,"17.1":0,"17.2":0,"17.3":0,"17.4":0,"17.5":0,"17.6-17.7":0,"18.0":0,"18.1":0,"18.2":0,"18.3":0,"18.4":0,"18.5-18.7":0,"26.0":0,"26.1":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{_:"0"},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/CY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"68":0.00457,"115":0.09597,"128":0.00457,"132":0.14624,"134":0.00457,"135":0.00914,"136":0.00457,"137":0.00457,"139":0.00457,"140":0.01828,"141":0.02285,"142":0.02285,"143":0.04113,"144":0.49356,"145":0.59867,"146":0.00457,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 133 138 147 148 3.5 3.6"},D:{"69":0.00457,"70":0.00457,"74":0.16909,"78":0.00457,"79":0.11425,"83":0.00457,"87":0.14624,"88":0.00457,"91":0.00457,"94":0.01371,"102":0.00457,"103":0.02285,"107":0.00457,"108":0.07312,"109":0.37474,"110":0.00457,"111":0.00914,"112":1.07852,"114":0.00914,"115":0.00457,"116":0.03199,"117":0.00457,"118":0.00457,"119":0.03199,"120":0.0457,"121":0.01371,"122":0.08226,"123":0.02285,"124":0.1371,"125":0.0457,"126":0.12796,"127":0.01828,"128":0.04113,"129":0.00914,"130":0.14624,"131":0.05027,"132":0.02742,"133":0.03199,"134":0.02742,"135":0.04113,"136":0.04113,"137":0.06398,"138":4.19069,"139":0.28791,"140":0.37474,"141":5.00415,"142":13.99791,"143":0.01828,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 75 76 77 80 81 84 85 86 89 90 92 93 95 96 97 98 99 100 101 104 105 106 113 144 145 146"},F:{"40":0.00914,"46":0.00457,"78":0.00457,"92":0.22393,"93":0.01371,"95":0.00457,"114":0.11425,"120":0.00457,"122":0.3199,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00457,"109":0.03199,"114":0.00914,"125":0.00457,"131":0.00457,"133":0.00457,"135":0.00457,"136":0.00457,"137":0.00457,"138":0.00457,"139":0.02285,"140":0.0457,"141":0.49813,"142":4.85334,"143":0.00457,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 126 127 128 129 130 132 134"},E:{"14":0.00457,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4","13.1":0.23764,"14.1":0.03199,"15.5":0.00457,"15.6":0.06398,"16.0":0.00457,"16.1":0.00457,"16.2":0.00914,"16.3":0.0457,"16.4":0.01828,"16.5":0.00914,"16.6":0.10054,"17.0":0.00457,"17.1":0.05941,"17.2":0.00914,"17.3":0.00457,"17.4":0.01371,"17.5":0.03656,"17.6":0.06398,"18.0":0.00457,"18.1":0.01371,"18.2":0.02285,"18.3":0.05484,"18.4":0.02285,"18.5-18.6":0.11882,"26.0":0.15995,"26.1":0.17823,"26.2":0.00914},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00111,"5.0-5.1":0,"6.0-6.1":0.00443,"7.0-7.1":0.00332,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00996,"10.0-10.2":0.00111,"10.3":0.01771,"11.0-11.2":0.20583,"11.3-11.4":0.00664,"12.0-12.1":0.00221,"12.2-12.5":0.05201,"13.0-13.1":0,"13.2":0.00553,"13.3":0.00221,"13.4-13.7":0.00996,"14.0-14.4":0.0166,"14.5-14.8":0.02103,"15.0-15.1":0.01771,"15.2-15.3":0.01439,"15.4":0.01549,"15.5":0.0166,"15.6-15.8":0.24014,"16.0":0.02988,"16.1":0.05533,"16.2":0.02877,"16.3":0.05312,"16.4":0.01328,"16.5":0.02213,"16.6-16.7":0.32424,"17.0":0.02767,"17.1":0.0332,"17.2":0.02435,"17.3":0.03431,"17.4":0.05644,"17.5":0.10734,"17.6-17.7":0.26338,"18.0":0.05865,"18.1":0.12394,"18.2":0.0664,"18.3":0.21579,"18.4":0.11066,"18.5-18.7":7.72763,"26.0":0.53008,"26.1":0.4836},P:{"4":0.10339,"20":0.01034,"21":0.01034,"22":0.04136,"23":0.03102,"24":0.04136,"25":0.04136,"26":0.06204,"27":0.11373,"28":0.58934,"29":3.2879,"5.0-5.4":0.02068,_:"6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0","7.2-7.4":0.11373,"8.2":0.02068,"17.0":0.02068,"18.0":0.01034,"19.0":0.01034},I:{"0":0.01084,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.66789,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01828,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.01086,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.13575},H:{"0":0},L:{"0":43.5573},R:{_:"0"},M:{"0":0.46698}};
Index: de_modules/caniuse-lite/data/regions/CZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/CZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.04278,"56":0.01069,"78":0.01069,"88":0.00535,"113":0.00535,"115":0.42241,"118":0.02674,"125":0.00535,"127":0.06951,"128":0.02139,"129":0.00535,"132":0.00535,"133":0.00535,"134":0.02139,"135":0.01069,"136":0.01604,"137":0.01604,"138":0.00535,"139":0.01604,"140":0.11763,"141":0.01069,"142":0.05347,"143":0.10694,"144":2.06929,"145":2.69489,"146":0.00535,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 119 120 121 122 123 124 126 130 131 147 148 3.5 3.6"},D:{"39":0.02139,"40":0.02139,"41":0.02139,"42":0.02139,"43":0.02139,"44":0.02139,"45":0.02139,"46":0.02139,"47":0.02139,"48":0.02139,"49":0.02674,"50":0.02139,"51":0.02139,"52":0.02139,"53":0.02139,"54":0.02139,"55":0.02139,"56":0.02139,"57":0.02139,"58":0.02139,"59":0.02139,"60":0.02139,"61":0.00535,"78":0.36894,"79":0.04278,"80":0.01604,"87":0.01604,"88":0.00535,"91":0.02674,"92":0.00535,"98":0.03208,"99":0.00535,"102":0.00535,"103":0.03743,"104":0.01069,"106":0.00535,"108":0.01069,"109":0.73254,"111":0.00535,"112":0.56144,"114":0.03208,"115":0.01069,"116":0.03208,"117":0.00535,"118":0.00535,"119":0.01604,"120":0.04278,"121":0.01069,"122":0.05347,"123":0.01604,"124":0.02674,"125":2.8446,"126":0.0909,"127":0.02139,"128":0.05347,"129":0.01069,"130":0.02139,"131":0.0909,"132":0.03208,"133":0.02674,"134":0.02674,"135":0.03743,"136":0.03208,"137":0.06416,"138":0.18715,"139":0.21923,"140":0.37429,"141":6.02607,"142":16.75215,"143":0.02674,"144":0.00535,_:"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 33 34 35 36 37 38 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 81 83 84 85 86 89 90 93 94 95 96 97 100 101 105 107 110 113 145 146"},F:{"46":0.01069,"84":0.00535,"85":0.01604,"92":0.10159,"93":0.01069,"95":0.06951,"120":0.01069,"122":0.79136,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00535,"109":0.05882,"114":0.00535,"120":0.00535,"122":0.00535,"123":0.00535,"129":0.00535,"130":0.00535,"131":0.02139,"132":0.00535,"133":0.00535,"134":0.01069,"135":0.01069,"136":0.01069,"137":0.00535,"138":0.12833,"139":0.02139,"140":0.05882,"141":0.7058,"142":6.31481,"143":0.01604,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 124 125 126 127 128"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.4","13.1":0.01069,"14.1":0.01069,"15.5":0.02674,"15.6":0.06951,"16.0":0.00535,"16.1":0.00535,"16.2":0.00535,"16.3":0.01069,"16.5":0.01069,"16.6":0.10694,"17.0":0.01604,"17.1":0.05882,"17.2":0.01604,"17.3":0.02139,"17.4":0.02139,"17.5":0.02674,"17.6":0.11229,"18.0":0.01069,"18.1":0.01604,"18.2":0.02674,"18.3":0.05347,"18.4":0.04278,"18.5-18.6":0.11763,"26.0":0.30478,"26.1":0.32082,"26.2":0.01069},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0.00337,"7.0-7.1":0.00253,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00758,"10.0-10.2":0.00084,"10.3":0.01348,"11.0-11.2":0.15665,"11.3-11.4":0.00505,"12.0-12.1":0.00168,"12.2-12.5":0.03958,"13.0-13.1":0,"13.2":0.00421,"13.3":0.00168,"13.4-13.7":0.00758,"14.0-14.4":0.01263,"14.5-14.8":0.016,"15.0-15.1":0.01348,"15.2-15.3":0.01095,"15.4":0.01179,"15.5":0.01263,"15.6-15.8":0.18276,"16.0":0.02274,"16.1":0.04211,"16.2":0.0219,"16.3":0.04043,"16.4":0.01011,"16.5":0.01684,"16.6-16.7":0.24676,"17.0":0.02105,"17.1":0.02527,"17.2":0.01853,"17.3":0.02611,"17.4":0.04295,"17.5":0.08169,"17.6-17.7":0.20044,"18.0":0.04464,"18.1":0.09433,"18.2":0.05053,"18.3":0.16423,"18.4":0.08422,"18.5-18.7":5.88103,"26.0":0.40341,"26.1":0.36804},P:{"4":0.02078,"20":0.01039,"21":0.01039,"22":0.01039,"23":0.02078,"24":0.01039,"25":0.01039,"26":0.03117,"27":0.04156,"28":0.21817,"29":2.01547,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01039},I:{"0":0.0604,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.60954,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02139,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00465},O:{"0":0.1582},H:{"0":0},L:{"0":36.9706},R:{_:"0"},M:{"0":0.42808}};
Index: de_modules/caniuse-lite/data/regions/DE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.01132,"52":0.04528,"59":0.00566,"60":0.00566,"68":0.00566,"77":0.01698,"78":0.0283,"88":0.00566,"91":0.00566,"98":0.00566,"102":0.00566,"104":0.00566,"109":0.00566,"111":0.01132,"113":0.00566,"115":0.41884,"118":0.00566,"119":0.00566,"120":0.00566,"121":0.00566,"122":0.00566,"123":0.01132,"125":0.01132,"126":0.00566,"127":0.01132,"128":0.07924,"130":0.00566,"131":0.00566,"132":0.02264,"133":0.01132,"134":0.01132,"135":0.03962,"136":0.03396,"137":0.01132,"138":0.01698,"139":0.02264,"140":0.58864,"141":0.0283,"142":0.0566,"143":0.0849,"144":3.05074,"145":3.6224,"146":0.01132,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 99 100 101 103 105 106 107 108 110 112 114 116 117 124 129 147 148 3.5 3.6"},D:{"39":0.01698,"40":0.01698,"41":0.01698,"42":0.01698,"43":0.01698,"44":0.01698,"45":0.01698,"46":0.01698,"47":0.01698,"48":0.01698,"49":0.0283,"50":0.01698,"51":0.01698,"52":0.03962,"53":0.01698,"54":0.01698,"55":0.01698,"56":0.01698,"57":0.01698,"58":0.02264,"59":0.02264,"60":0.01698,"63":0.00566,"66":0.03396,"74":0.00566,"77":0.00566,"79":0.02264,"80":0.02264,"81":0.00566,"83":0.00566,"84":0.00566,"85":0.00566,"86":0.00566,"87":0.0283,"88":0.00566,"89":0.00566,"90":0.00566,"91":0.06226,"92":0.00566,"93":0.00566,"94":0.00566,"95":0.00566,"97":0.07358,"98":0.00566,"102":0.00566,"103":0.32828,"104":0.02264,"106":0.00566,"107":0.01132,"108":0.12452,"109":0.50374,"110":0.01132,"111":0.00566,"112":0.01132,"113":0.00566,"114":0.0283,"115":0.04528,"116":0.10754,"117":0.02264,"118":0.12452,"119":0.05094,"120":0.13584,"121":0.01698,"122":0.09056,"123":0.04528,"124":0.2264,"125":0.3679,"126":0.07358,"127":0.03396,"128":0.07358,"129":0.04528,"130":0.27168,"131":3.26582,"132":0.11886,"133":0.07358,"134":0.10754,"135":0.09056,"136":0.13018,"137":0.13018,"138":0.3679,"139":0.28866,"140":1.05842,"141":5.2072,"142":12.68406,"143":0.28866,"144":0.00566,_:"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 33 34 35 36 37 38 61 62 64 65 67 68 69 70 71 72 73 75 76 78 96 99 100 101 105 145 146"},F:{"46":0.00566,"90":0.00566,"92":0.0849,"93":0.01132,"95":0.03962,"113":0.01698,"114":0.01132,"117":0.00566,"119":0.00566,"120":0.01132,"121":0.00566,"122":1.32444,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00566},B:{"92":0.00566,"109":0.09056,"114":0.00566,"119":0.00566,"120":0.00566,"121":0.0283,"122":0.01132,"126":0.00566,"128":0.00566,"129":0.00566,"130":0.00566,"131":0.02264,"132":0.01132,"133":0.01132,"134":0.02264,"135":0.01698,"136":0.01698,"137":0.01698,"138":0.03962,"139":0.04528,"140":0.18112,"141":0.9339,"142":7.01274,"143":0.01132,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 123 124 125 127"},E:{"7":0.01698,"14":0.00566,_:"0 4 5 6 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3","11.1":0.00566,"12.1":0.00566,"13.1":0.0283,"14.1":0.0283,"15.1":0.00566,"15.4":0.00566,"15.5":0.00566,"15.6":0.1415,"16.0":0.02264,"16.1":0.01698,"16.2":0.01132,"16.3":0.02264,"16.4":0.01132,"16.5":0.01132,"16.6":0.21508,"17.0":0.01132,"17.1":0.1415,"17.2":0.01698,"17.3":0.01698,"17.4":0.0283,"17.5":0.05094,"17.6":0.17546,"18.0":0.01698,"18.1":0.03396,"18.2":0.01698,"18.3":0.07358,"18.4":0.03396,"18.5-18.6":0.18112,"26.0":0.55468,"26.1":0.58298,"26.2":0.01698},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0013,"5.0-5.1":0,"6.0-6.1":0.00519,"7.0-7.1":0.00389,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01168,"10.0-10.2":0.0013,"10.3":0.02077,"11.0-11.2":0.24142,"11.3-11.4":0.00779,"12.0-12.1":0.0026,"12.2-12.5":0.061,"13.0-13.1":0,"13.2":0.00649,"13.3":0.0026,"13.4-13.7":0.01168,"14.0-14.4":0.01947,"14.5-14.8":0.02466,"15.0-15.1":0.02077,"15.2-15.3":0.01687,"15.4":0.01817,"15.5":0.01947,"15.6-15.8":0.28166,"16.0":0.03504,"16.1":0.0649,"16.2":0.03375,"16.3":0.0623,"16.4":0.01558,"16.5":0.02596,"16.6-16.7":0.3803,"17.0":0.03245,"17.1":0.03894,"17.2":0.02856,"17.3":0.04024,"17.4":0.0662,"17.5":0.1259,"17.6-17.7":0.30891,"18.0":0.06879,"18.1":0.14537,"18.2":0.07788,"18.3":0.2531,"18.4":0.1298,"18.5-18.7":9.06365,"26.0":0.62172,"26.1":0.56721},P:{"4":0.04207,"20":0.01052,"21":0.03156,"22":0.02104,"23":0.02104,"24":0.02104,"25":0.02104,"26":0.08415,"27":0.07363,"28":0.31556,"29":3.42906,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.01052,"17.0":0.01052,"19.0":0.01052},I:{"0":0.01734,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.46883,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00708,"11":0.04953,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00434},O:{"0":0.05209},H:{"0":0},L:{"0":26.5044},R:{_:"0"},M:{"0":1.04618}};
Index: de_modules/caniuse-lite/data/regions/DJ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DJ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00682,"55":0.00341,"66":0.00341,"115":0.09883,"127":0.01363,"136":0.00341,"137":0.00341,"140":0.01022,"142":0.00341,"143":0.00682,"144":0.852,"145":1.04285,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 138 139 141 146 147 148 3.5 3.6"},D:{"46":0.01704,"62":0.00682,"67":0.00682,"70":0.00341,"71":0.00341,"84":0.00341,"87":0.00682,"91":0.01022,"93":0.01022,"94":0.02386,"96":0.00682,"97":0.01022,"98":0.00682,"103":0.02726,"107":0.00341,"109":0.26582,"111":0.03408,"112":0.00682,"114":0.00341,"116":0.00682,"117":0.02726,"118":0.00341,"119":0.00341,"120":0.00341,"122":0.01022,"123":0.01022,"124":0.00341,"125":0.20789,"126":0.02045,"127":0.01022,"128":0.01704,"129":0.00682,"130":0.01363,"131":0.03408,"132":0.05453,"133":0.0443,"134":0.04771,"135":0.0409,"136":0.07838,"137":0.05453,"138":0.56914,"139":0.18062,"140":0.19766,"141":4.22251,"142":7.25904,"143":0.02386,"144":0.03408,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 68 69 72 73 74 75 76 77 78 79 80 81 83 85 86 88 89 90 92 95 99 100 101 102 104 105 106 108 110 113 115 121 145 146"},F:{"88":0.01363,"92":0.01363,"121":0.00341,"122":0.07498,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00341,"17":0.01022,"18":0.01363,"84":0.00341,"90":0.00341,"92":0.03408,"109":0.00341,"114":0.00682,"119":0.00341,"122":0.00682,"127":0.00341,"131":0.03067,"133":0.00682,"134":0.00682,"135":0.05453,"136":0.0443,"137":0.02726,"138":0.02045,"139":0.02045,"140":0.05794,"141":0.50098,"142":2.71277,_:"12 13 14 16 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 123 124 125 126 128 129 130 132 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.2 16.5 17.0 17.2 17.3 17.4 17.5 18.2 18.3 26.2","5.1":0.00341,"15.5":0.00341,"15.6":0.02386,"16.1":0.00682,"16.3":0.00341,"16.4":0.00341,"16.6":0.03408,"17.1":0.01022,"17.6":0.03408,"18.0":0.00341,"18.1":0.00341,"18.4":0.00341,"18.5-18.6":0.05453,"26.0":0.03408,"26.1":0.01022},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00046,"5.0-5.1":0,"6.0-6.1":0.00185,"7.0-7.1":0.00139,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00416,"10.0-10.2":0.00046,"10.3":0.00739,"11.0-11.2":0.08595,"11.3-11.4":0.00277,"12.0-12.1":0.00092,"12.2-12.5":0.02172,"13.0-13.1":0,"13.2":0.00231,"13.3":0.00092,"13.4-13.7":0.00416,"14.0-14.4":0.00693,"14.5-14.8":0.00878,"15.0-15.1":0.00739,"15.2-15.3":0.00601,"15.4":0.00647,"15.5":0.00693,"15.6-15.8":0.10028,"16.0":0.01248,"16.1":0.0231,"16.2":0.01201,"16.3":0.02218,"16.4":0.00555,"16.5":0.00924,"16.6-16.7":0.1354,"17.0":0.01155,"17.1":0.01386,"17.2":0.01017,"17.3":0.01433,"17.4":0.02357,"17.5":0.04482,"17.6-17.7":0.10998,"18.0":0.02449,"18.1":0.05176,"18.2":0.02773,"18.3":0.09011,"18.4":0.04621,"18.5-18.7":3.22684,"26.0":0.22135,"26.1":0.20194},P:{"4":0.03082,"23":0.45203,"24":0.08219,"25":0.06164,"26":0.06164,"27":0.3082,"28":0.64723,"29":1.69513,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0 16.0 18.0 19.0","7.2-7.4":0.13356,"11.1-11.2":0.01027,"14.0":0.02055,"17.0":0.01027},I:{"0":0.5727,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00011,"4.4":0,"4.4.3-4.4.4":0.00029},K:{"0":1.01835,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0409,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01318},O:{"0":0.25709},H:{"0":0.01},L:{"0":69.09189},R:{_:"0"},M:{"0":0.04614}};
Index: de_modules/caniuse-lite/data/regions/DK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.00674,"77":0.00674,"78":0.00674,"109":0.00674,"115":0.11455,"125":0.00674,"128":0.02021,"132":0.01348,"136":0.00674,"140":0.1415,"141":0.00674,"142":0.00674,"143":0.03369,"144":0.9568,"145":1.0646,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 133 134 135 137 138 139 146 147 148 3.5 3.6"},D:{"44":0.00674,"49":0.00674,"52":0.08759,"58":0.03369,"65":0.00674,"66":0.01348,"79":0.01348,"87":0.01348,"88":0.03369,"90":0.00674,"91":0.00674,"92":0.00674,"102":0.01348,"103":0.06064,"104":0.00674,"105":0.00674,"107":0.00674,"108":0.00674,"109":0.34364,"110":0.00674,"112":0.00674,"114":0.02695,"115":0.00674,"116":0.16845,"117":0.00674,"118":0.04717,"119":0.00674,"120":0.06064,"121":0.00674,"122":0.10781,"123":0.02021,"124":0.12802,"125":3.38248,"126":0.12802,"127":0.01348,"128":0.13476,"129":0.02695,"130":0.02021,"131":0.08086,"132":0.06064,"133":0.08086,"134":0.06064,"135":0.11455,"136":0.14824,"137":0.17519,"138":0.6738,"139":0.78835,"140":1.28696,"141":10.35631,"142":27.13393,"143":0.04043,_:"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 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 50 51 53 54 55 56 57 59 60 61 62 63 64 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 89 93 94 95 96 97 98 99 100 101 106 111 113 144 145 146"},F:{"92":0.02021,"93":0.00674,"95":0.01348,"102":0.01348,"120":0.00674,"122":0.62663,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"108":0.02021,"109":0.03369,"126":0.00674,"131":0.01348,"132":0.03369,"134":0.00674,"135":0.00674,"136":0.00674,"137":0.01348,"138":0.02021,"139":0.0539,"140":0.06064,"141":0.91637,"142":6.83233,"143":0.01348,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 133"},E:{"14":0.00674,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.04043,"14.1":0.0539,"15.4":0.01348,"15.5":0.04717,"15.6":0.20888,"16.0":0.02695,"16.1":0.02695,"16.2":0.01348,"16.3":0.04717,"16.4":0.03369,"16.5":0.04717,"16.6":0.37059,"17.0":0.02021,"17.1":0.1954,"17.2":0.0539,"17.3":0.0539,"17.4":0.15497,"17.5":0.20888,"17.6":0.44471,"18.0":0.04043,"18.1":0.0539,"18.2":0.04043,"18.3":0.15497,"18.4":0.08086,"18.5-18.6":0.26952,"26.0":0.53904,"26.1":0.60642,"26.2":0.02021},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00177,"5.0-5.1":0,"6.0-6.1":0.00709,"7.0-7.1":0.00532,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01596,"10.0-10.2":0.00177,"10.3":0.02838,"11.0-11.2":0.32988,"11.3-11.4":0.01064,"12.0-12.1":0.00355,"12.2-12.5":0.08336,"13.0-13.1":0,"13.2":0.00887,"13.3":0.00355,"13.4-13.7":0.01596,"14.0-14.4":0.0266,"14.5-14.8":0.0337,"15.0-15.1":0.02838,"15.2-15.3":0.02306,"15.4":0.02483,"15.5":0.0266,"15.6-15.8":0.38486,"16.0":0.04789,"16.1":0.08868,"16.2":0.04611,"16.3":0.08513,"16.4":0.02128,"16.5":0.03547,"16.6-16.7":0.51965,"17.0":0.04434,"17.1":0.05321,"17.2":0.03902,"17.3":0.05498,"17.4":0.09045,"17.5":0.17203,"17.6-17.7":0.4221,"18.0":0.094,"18.1":0.19864,"18.2":0.10641,"18.3":0.34584,"18.4":0.17735,"18.5-18.7":12.3847,"26.0":0.84953,"26.1":0.77504},P:{"20":0.02164,"25":0.01082,"26":0.02164,"27":0.01082,"28":0.10818,"29":1.74171,_:"4 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01954,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.10438,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00674,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00652},H:{"0":0},L:{"0":13.59631},R:{_:"0"},M:{"0":0.34577}};
Index: de_modules/caniuse-lite/data/regions/DM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02427,"125":0.00485,"133":0.04854,"134":0.00971,"135":0.01456,"137":0.00971,"139":0.14562,"143":0.00485,"144":0.16018,"145":0.21843,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 136 138 140 141 142 146 147 148 3.5 3.6"},D:{"38":0.00485,"69":0.02427,"74":0.09708,"75":0.00485,"76":0.75722,"77":0.02912,"79":2.35419,"87":0.04369,"91":0.00485,"92":0.01456,"93":0.05825,"96":0.02912,"101":0.37861,"103":0.02427,"108":0.02912,"109":0.18445,"111":0.15047,"114":0.00971,"116":0.00971,"117":0.00485,"118":0.01942,"119":0.00971,"120":0.01942,"121":0.00485,"122":0.00971,"124":0.09223,"125":0.55336,"126":0.03398,"128":0.33007,"129":0.02427,"130":0.01456,"131":0.32036,"132":0.08252,"133":0.07281,"134":0.28153,"135":0.09223,"136":0.14562,"137":0.10679,"138":0.23299,"139":0.08252,"140":0.50482,"141":6.10633,"142":13.97467,"143":0.07281,"144":0.00971,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 78 80 81 83 84 85 86 88 89 90 94 95 97 98 99 100 102 104 105 106 107 110 112 113 115 123 127 145 146"},F:{"92":0.05339,"93":0.01456,"114":0.02427,"115":0.01942,"122":0.43201,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01456,"18":0.02912,"109":0.00971,"114":0.07766,"122":0.00971,"125":0.00485,"127":0.00485,"130":0.00971,"132":0.02427,"133":0.09708,"134":0.00971,"136":0.01942,"137":0.01456,"138":0.00971,"139":0.03398,"140":0.05339,"141":0.96109,"142":5.52871,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 128 129 131 135 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.2 16.3 17.0 17.2 18.0 26.2","14.1":0.11164,"15.5":0.00485,"15.6":0.09223,"16.1":0.05825,"16.4":0.00971,"16.5":0.00971,"16.6":0.1165,"17.1":0.01456,"17.3":0.00971,"17.4":0.00971,"17.5":0.03398,"17.6":0.11164,"18.1":0.02427,"18.2":0.02427,"18.3":0.02427,"18.4":0.00971,"18.5-18.6":0.11164,"26.0":0.31066,"26.1":0.44171},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00082,"5.0-5.1":0,"6.0-6.1":0.00326,"7.0-7.1":0.00245,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00734,"10.0-10.2":0.00082,"10.3":0.01305,"11.0-11.2":0.15168,"11.3-11.4":0.00489,"12.0-12.1":0.00163,"12.2-12.5":0.03833,"13.0-13.1":0,"13.2":0.00408,"13.3":0.00163,"13.4-13.7":0.00734,"14.0-14.4":0.01223,"14.5-14.8":0.01549,"15.0-15.1":0.01305,"15.2-15.3":0.0106,"15.4":0.01142,"15.5":0.01223,"15.6-15.8":0.17696,"16.0":0.02202,"16.1":0.04077,"16.2":0.0212,"16.3":0.03914,"16.4":0.00979,"16.5":0.01631,"16.6-16.7":0.23894,"17.0":0.02039,"17.1":0.02446,"17.2":0.01794,"17.3":0.02528,"17.4":0.04159,"17.5":0.0791,"17.6-17.7":0.19408,"18.0":0.04322,"18.1":0.09133,"18.2":0.04893,"18.3":0.15902,"18.4":0.08155,"18.5-18.7":5.69451,"26.0":0.39062,"26.1":0.35637},P:{"4":0.01075,"23":0.01075,"25":0.04299,"26":0.01075,"27":0.02149,"28":0.35464,"29":2.58992,_:"20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.08597,"17.0":0.02149},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.02573,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02058},O:{"0":0.07718},H:{"0":0},L:{"0":47.65106},R:{_:"0"},M:{"0":0.21095}};
Index: de_modules/caniuse-lite/data/regions/DO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.0393,"5":0.01684,"52":0.00561,"78":0.01123,"83":0.00561,"115":0.02246,"125":0.00561,"128":0.00561,"133":0.00561,"134":0.00561,"135":0.01123,"138":0.00561,"139":0.00561,"140":0.01684,"141":0.00561,"142":0.00561,"143":0.00561,"144":0.34245,"145":0.40982,"146":0.00561,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 136 137 147 148 3.5 3.6"},D:{"65":0.00561,"69":0.01684,"72":0.00561,"77":0.00561,"79":0.01123,"81":0.00561,"84":0.00561,"85":0.01123,"86":0.00561,"87":0.02807,"91":0.00561,"93":0.0393,"94":0.00561,"96":0.00561,"97":0.01684,"99":0.00561,"100":0.00561,"102":0.00561,"103":0.02807,"104":0.02807,"105":0.00561,"108":0.00561,"109":0.39859,"110":0.00561,"111":0.02246,"112":19.39076,"113":0.00561,"114":0.00561,"116":0.05053,"119":0.06737,"120":0.01684,"121":0.00561,"122":0.05053,"123":0.00561,"124":0.0393,"125":0.98806,"126":2.61612,"127":0.03368,"128":0.10667,"129":0.04491,"130":0.00561,"131":0.06737,"132":0.06175,"133":0.03368,"134":0.02807,"135":0.05614,"136":0.0393,"137":0.05053,"138":0.32561,"139":0.15719,"140":0.32561,"141":3.21121,"142":12.90659,"143":0.03368,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 73 74 75 76 78 80 83 88 89 90 92 95 98 101 106 107 115 117 118 144 145 146"},F:{"92":0.02246,"93":0.00561,"95":0.01123,"114":0.00561,"120":0.00561,"122":0.48842,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01123,"92":0.01684,"100":0.00561,"109":0.01123,"114":0.24702,"122":0.00561,"130":0.00561,"131":0.01123,"132":0.00561,"133":0.00561,"134":0.00561,"135":0.01684,"136":0.02246,"137":0.00561,"138":0.01684,"139":0.02807,"140":0.06175,"141":0.49965,"142":3.54243,"143":0.01123,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129"},E:{"13":0.00561,"14":0.00561,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0","5.1":0.00561,"13.1":0.00561,"14.1":0.02246,"15.4":0.01123,"15.6":0.05614,"16.1":0.00561,"16.2":0.01684,"16.3":0.01123,"16.4":0.00561,"16.5":0.01123,"16.6":0.05614,"17.0":0.00561,"17.1":0.02246,"17.2":0.00561,"17.3":0.00561,"17.4":0.03368,"17.5":0.04491,"17.6":0.11789,"18.0":0.0393,"18.1":0.01684,"18.2":0.01123,"18.3":0.05053,"18.4":0.01123,"18.5-18.6":0.0786,"26.0":0.20772,"26.1":0.24702,"26.2":0.00561},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00181,"5.0-5.1":0,"6.0-6.1":0.00726,"7.0-7.1":0.00544,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01633,"10.0-10.2":0.00181,"10.3":0.02903,"11.0-11.2":0.3375,"11.3-11.4":0.01089,"12.0-12.1":0.00363,"12.2-12.5":0.08528,"13.0-13.1":0,"13.2":0.00907,"13.3":0.00363,"13.4-13.7":0.01633,"14.0-14.4":0.02722,"14.5-14.8":0.03448,"15.0-15.1":0.02903,"15.2-15.3":0.02359,"15.4":0.0254,"15.5":0.02722,"15.6-15.8":0.39375,"16.0":0.04899,"16.1":0.09073,"16.2":0.04718,"16.3":0.0871,"16.4":0.02177,"16.5":0.03629,"16.6-16.7":0.53165,"17.0":0.04536,"17.1":0.05444,"17.2":0.03992,"17.3":0.05625,"17.4":0.09254,"17.5":0.17601,"17.6-17.7":0.43185,"18.0":0.09617,"18.1":0.20323,"18.2":0.10887,"18.3":0.35383,"18.4":0.18145,"18.5-18.7":12.67074,"26.0":0.86915,"26.1":0.79294},P:{"21":0.01079,"22":0.01079,"24":0.01079,"25":0.02159,"26":0.04318,"27":0.02159,"28":0.07556,"29":0.89589,_:"4 20 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01079,"14.0":0.02159},I:{"0":0.02627,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.10963,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05053,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00877},H:{"0":0},L:{"0":28.30457},R:{_:"0"},M:{"0":0.10086}};
Index: de_modules/caniuse-lite/data/regions/DZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/DZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01688,"34":0.00422,"40":0.00422,"43":0.00422,"45":0.00422,"47":0.00422,"48":0.00422,"52":0.0211,"72":0.00422,"78":0.00422,"81":0.00422,"94":0.00422,"115":0.6752,"127":0.00844,"128":0.01266,"133":0.00422,"134":0.00422,"135":0.00422,"136":0.00422,"137":0.00422,"138":0.01688,"139":0.00422,"140":0.03798,"141":0.00844,"142":0.00844,"143":0.02532,"144":0.48952,"145":0.5908,"146":0.00422,_:"2 3 4 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 33 35 36 37 38 39 41 42 44 46 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 147 148 3.5 3.6"},D:{"5":0.00422,"38":0.00422,"43":0.0211,"47":0.00422,"48":0.00422,"49":0.01266,"50":0.00422,"51":0.00422,"55":0.00422,"56":0.0211,"58":0.00422,"59":0.00422,"60":0.00422,"62":0.00422,"63":0.00422,"64":0.00422,"65":0.00844,"66":0.00422,"68":0.00844,"69":0.02532,"70":0.00844,"71":0.01266,"72":0.01266,"73":0.01266,"74":0.00844,"75":0.01266,"76":0.00422,"77":0.00422,"78":0.00844,"79":0.07174,"80":0.00844,"81":0.0211,"83":0.0633,"84":0.00844,"85":0.00844,"86":0.0211,"87":0.05908,"88":0.01266,"89":0.00844,"90":0.00844,"91":0.01266,"92":0.00422,"93":0.00422,"94":0.01688,"95":0.0211,"96":0.01266,"97":0.00844,"98":0.02532,"99":0.00844,"100":0.00844,"101":0.01266,"102":0.01266,"103":0.04642,"104":0.07174,"105":0.00422,"106":0.02532,"107":0.00844,"108":0.02532,"109":4.03432,"110":0.02954,"111":0.02532,"112":8.14038,"113":0.01688,"114":0.00844,"115":0.00422,"116":0.02532,"117":0.00422,"118":0.00844,"119":0.08018,"120":0.01688,"121":0.01266,"122":0.05908,"123":0.01688,"124":0.03798,"125":0.29962,"126":1.8568,"127":0.02532,"128":0.03376,"129":0.01688,"130":0.02532,"131":0.0844,"132":0.06752,"133":0.07174,"134":0.08862,"135":0.05064,"136":0.06752,"137":0.08018,"138":0.24054,"139":0.1266,"140":0.3165,"141":2.6586,"142":9.40638,"143":0.0211,"144":0.00422,_:"4 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 33 34 35 36 37 39 40 41 42 44 45 46 52 53 54 57 61 67 145 146"},F:{"25":0.00422,"46":0.00422,"79":0.0211,"84":0.00422,"85":0.01266,"86":0.00422,"90":0.00422,"92":0.0211,"93":0.00844,"95":0.12238,"114":0.00422,"120":0.00422,"122":0.32072,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00422,"16":0.00422,"17":0.00422,"18":0.00844,"89":0.00422,"92":0.03798,"100":0.00422,"109":0.04642,"114":0.1266,"119":0.00422,"122":0.00844,"131":0.00844,"132":0.00422,"133":0.00422,"134":0.00422,"135":0.00422,"136":0.00422,"137":0.00844,"138":0.00844,"139":0.01266,"140":0.02532,"141":0.26586,"142":1.63314,"143":0.00844,_:"12 13 15 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 123 124 125 126 127 128 129 130"},E:{"14":0.00422,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 17.0","13.1":0.00844,"14.1":0.00844,"15.5":0.00422,"15.6":0.03376,"16.2":0.00422,"16.3":0.00844,"16.5":0.00844,"16.6":0.03798,"17.1":0.02954,"17.2":0.00422,"17.3":0.00422,"17.4":0.01266,"17.5":0.01266,"17.6":0.03798,"18.0":0.00844,"18.1":0.00844,"18.2":0.00844,"18.3":0.01688,"18.4":0.00422,"18.5-18.6":0.04642,"26.0":0.10128,"26.1":0.10128,"26.2":0.00422},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0,"6.0-6.1":0.00194,"7.0-7.1":0.00146,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00437,"10.0-10.2":0.00049,"10.3":0.00777,"11.0-11.2":0.09031,"11.3-11.4":0.00291,"12.0-12.1":0.00097,"12.2-12.5":0.02282,"13.0-13.1":0,"13.2":0.00243,"13.3":0.00097,"13.4-13.7":0.00437,"14.0-14.4":0.00728,"14.5-14.8":0.00922,"15.0-15.1":0.00777,"15.2-15.3":0.00631,"15.4":0.0068,"15.5":0.00728,"15.6-15.8":0.10536,"16.0":0.01311,"16.1":0.02428,"16.2":0.01262,"16.3":0.0233,"16.4":0.00583,"16.5":0.00971,"16.6-16.7":0.14226,"17.0":0.01214,"17.1":0.01457,"17.2":0.01068,"17.3":0.01505,"17.4":0.02476,"17.5":0.0471,"17.6-17.7":0.11555,"18.0":0.02573,"18.1":0.05438,"18.2":0.02913,"18.3":0.09468,"18.4":0.04855,"18.5-18.7":3.39039,"26.0":0.23256,"26.1":0.21217},P:{"4":0.06225,"21":0.02075,"22":0.02075,"23":0.03112,"24":0.0415,"25":0.02075,"26":0.05187,"27":0.06225,"28":0.23861,"29":0.58096,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.06225,"17.0":0.01037,"19.0":0.01037},I:{"0":0.06349,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.43928,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03472,"9":0.00579,"10":0.00579,"11":0.15626,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00578},O:{"0":0.17918},H:{"0":0},L:{"0":56.103},R:{_:"0"},M:{"0":0.1445}};
Index: de_modules/caniuse-lite/data/regions/EC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/EC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.10635,"5":0.02454,"89":0.00818,"115":0.06545,"135":0.00818,"136":0.00818,"139":0.00818,"140":0.01636,"141":0.00818,"142":0.00818,"143":0.01636,"144":0.40087,"145":0.50722,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 137 138 146 147 148 3.5 3.6"},D:{"69":0.02454,"79":0.01636,"85":0.00818,"87":0.01636,"91":0.00818,"97":0.01636,"99":0.00818,"103":0.03272,"104":0.00818,"106":0.00818,"108":0.00818,"109":0.26179,"111":0.02454,"112":52.43203,"116":0.04909,"119":0.01636,"120":0.00818,"121":0.00818,"122":0.10635,"123":0.01636,"124":0.01636,"125":1.00626,"126":6.70842,"127":0.03272,"128":0.04091,"129":0.01636,"130":0.00818,"131":0.08999,"132":0.04909,"133":0.02454,"134":0.04091,"135":0.03272,"136":0.02454,"137":0.02454,"138":0.08999,"139":0.06545,"140":0.17998,"141":2.20887,"142":9.60449,"143":0.01636,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 86 88 89 90 92 93 94 95 96 98 100 101 102 105 107 110 113 114 115 117 118 144 145 146"},F:{"92":0.00818,"93":0.00818,"95":0.01636,"122":0.26997,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00818,"109":0.01636,"114":0.08999,"124":0.01636,"131":0.00818,"134":0.00818,"135":0.00818,"136":0.00818,"138":0.01636,"139":0.00818,"140":0.01636,"141":0.21271,"142":1.87345,"143":0.00818,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 132 133 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.3 17.4 18.0 18.1 26.2","14.1":0.00818,"15.6":0.01636,"16.6":0.00818,"17.1":0.00818,"17.2":0.00818,"17.5":0.00818,"17.6":0.03272,"18.2":0.00818,"18.3":0.01636,"18.4":0.00818,"18.5-18.6":0.03272,"26.0":0.08999,"26.1":0.09817},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00034,"5.0-5.1":0,"6.0-6.1":0.00134,"7.0-7.1":0.00101,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00302,"10.0-10.2":0.00034,"10.3":0.00536,"11.0-11.2":0.06235,"11.3-11.4":0.00201,"12.0-12.1":0.00067,"12.2-12.5":0.01576,"13.0-13.1":0,"13.2":0.00168,"13.3":0.00067,"13.4-13.7":0.00302,"14.0-14.4":0.00503,"14.5-14.8":0.00637,"15.0-15.1":0.00536,"15.2-15.3":0.00436,"15.4":0.00469,"15.5":0.00503,"15.6-15.8":0.07275,"16.0":0.00905,"16.1":0.01676,"16.2":0.00872,"16.3":0.01609,"16.4":0.00402,"16.5":0.0067,"16.6-16.7":0.09823,"17.0":0.00838,"17.1":0.01006,"17.2":0.00738,"17.3":0.01039,"17.4":0.0171,"17.5":0.03252,"17.6-17.7":0.07979,"18.0":0.01777,"18.1":0.03755,"18.2":0.02011,"18.3":0.06537,"18.4":0.03352,"18.5-18.7":2.34098,"26.0":0.16058,"26.1":0.1465},P:{"22":0.01095,"25":0.01095,"26":0.03284,"27":0.01095,"28":0.04378,"29":0.39402,_:"4 20 21 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03284},I:{"0":0.00545,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.04545,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.06545,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00727},H:{"0":0},L:{"0":16.67561},R:{_:"0"},M:{"0":0.06727}};
Index: de_modules/caniuse-lite/data/regions/EE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/EE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.0228,"77":0.0684,"92":0.0076,"115":2.5232,"125":0.0152,"127":0.0076,"128":0.038,"129":0.0076,"134":0.0152,"136":0.0076,"137":0.0076,"138":0.0076,"139":0.0076,"140":0.0836,"141":0.0076,"142":0.038,"143":0.0836,"144":1.0412,"145":1.3604,"146":0.0152,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 130 131 132 133 135 147 148 3.5 3.6"},D:{"58":0.0076,"79":0.0076,"87":0.0228,"90":0.0076,"91":0.0076,"98":0.0076,"100":0.0076,"103":0.0076,"104":0.0228,"106":0.0304,"107":0.0076,"108":0.0076,"109":1.3224,"110":0.0076,"112":0.5548,"114":0.0152,"116":0.0684,"117":0.0152,"118":0.0076,"119":0.0076,"120":0.0228,"121":0.0228,"122":0.0532,"123":0.0076,"124":0.1292,"125":0.038,"126":0.0836,"127":0.152,"128":0.1216,"129":0.0152,"130":0.0684,"131":0.3344,"132":0.0608,"133":0.2508,"134":0.1596,"135":0.076,"136":0.0608,"137":0.1368,"138":0.6536,"139":0.418,"140":0.5928,"141":10.3968,"142":36.3584,"143":0.0836,"144":0.0228,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 92 93 94 95 96 97 99 101 102 105 111 113 115 145 146"},F:{"83":0.0076,"92":0.0304,"93":0.0076,"95":0.0304,"113":0.0076,"120":0.0152,"122":1.3984,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.038,"122":0.0076,"131":0.0152,"132":0.0076,"135":0.0076,"136":0.0076,"137":0.038,"138":0.0228,"139":0.0076,"140":0.0532,"141":0.57,"142":4.1496,"143":0.0076,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 133 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 16.0 16.1","12.1":0.0076,"13.1":0.0076,"14.1":0.0152,"15.4":0.0076,"15.5":0.0152,"15.6":0.0836,"16.2":0.0076,"16.3":0.0076,"16.4":0.0152,"16.5":0.0076,"16.6":0.1216,"17.0":0.0076,"17.1":0.0456,"17.2":0.0152,"17.3":0.0076,"17.4":0.0152,"17.5":0.0456,"17.6":0.1368,"18.0":0.0228,"18.1":0.0532,"18.2":0.0152,"18.3":0.0228,"18.4":0.0304,"18.5-18.6":0.0988,"26.0":0.2888,"26.1":0.3496,"26.2":0.0152},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0,"6.0-6.1":0.00299,"7.0-7.1":0.00224,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00673,"10.0-10.2":0.00075,"10.3":0.01197,"11.0-11.2":0.1391,"11.3-11.4":0.00449,"12.0-12.1":0.0015,"12.2-12.5":0.03515,"13.0-13.1":0,"13.2":0.00374,"13.3":0.0015,"13.4-13.7":0.00673,"14.0-14.4":0.01122,"14.5-14.8":0.01421,"15.0-15.1":0.01197,"15.2-15.3":0.00972,"15.4":0.01047,"15.5":0.01122,"15.6-15.8":0.16228,"16.0":0.02019,"16.1":0.03739,"16.2":0.01944,"16.3":0.0359,"16.4":0.00897,"16.5":0.01496,"16.6-16.7":0.21912,"17.0":0.0187,"17.1":0.02244,"17.2":0.01645,"17.3":0.02318,"17.4":0.03814,"17.5":0.07254,"17.6-17.7":0.17799,"18.0":0.03964,"18.1":0.08376,"18.2":0.04487,"18.3":0.14583,"18.4":0.07478,"18.5-18.7":5.22217,"26.0":0.35822,"26.1":0.32681},P:{"23":0.01043,"24":0.03129,"25":0.01043,"26":0.02086,"27":0.04172,"28":0.16687,"29":1.40793,_:"4 20 21 22 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","5.0-5.4":0.01043,"7.2-7.4":0.01043,"17.0":0.01043},I:{"0":0.00719,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.2016,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.152,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0048},O:{"0":0.0288},H:{"0":0},L:{"0":15.0812},R:{_:"0"},M:{"0":0.3144}};
Index: de_modules/caniuse-lite/data/regions/EG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/EG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00347,"36":0.00347,"47":0.00347,"52":0.01736,"78":0.00347,"115":0.35067,"121":0.00347,"125":0.00347,"127":0.00347,"128":0.00347,"136":0.00694,"138":0.01389,"139":0.00347,"140":0.03819,"141":0.00694,"142":0.00694,"143":0.01736,"144":0.40275,"145":0.55899,"146":0.00347,_:"2 3 4 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 33 34 35 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 126 129 130 131 132 133 134 135 137 147 148 3.5 3.6"},D:{"29":0.00347,"43":0.01389,"47":0.00694,"48":0.01042,"49":0.00694,"58":0.01042,"63":0.00347,"69":0.00694,"70":0.00694,"71":0.00694,"72":0.00347,"73":0.00347,"74":0.00347,"75":0.00347,"76":0.00694,"77":0.00347,"78":0.00347,"79":0.06597,"80":0.00694,"81":0.00694,"83":0.00347,"84":0.00347,"85":0.00694,"86":0.01736,"87":0.0625,"88":0.00347,"90":0.00347,"91":0.01389,"92":0.00347,"94":0.00347,"95":0.00694,"96":0.00347,"97":0.00347,"98":0.00347,"99":0.00347,"100":0.00347,"101":0.00347,"102":0.00347,"103":0.0243,"104":0.00694,"105":0.00347,"106":0.00347,"107":0.00347,"108":0.0243,"109":1.80891,"110":0.00347,"111":0.00694,"112":3.98238,"114":0.02083,"116":0.01389,"117":0.00694,"118":0.00694,"119":0.00694,"120":0.02083,"121":0.01389,"122":0.05902,"123":0.0243,"124":0.01389,"125":0.11458,"126":0.64926,"127":0.01042,"128":0.02778,"129":0.01389,"130":0.02778,"131":0.05555,"132":0.02083,"133":0.0243,"134":0.04861,"135":0.05208,"136":0.06944,"137":0.04861,"138":0.15624,"139":0.27776,"140":0.20832,"141":2.79843,"142":9.78062,"143":0.05902,"144":0.00694,_:"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 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 50 51 52 53 54 55 56 57 59 60 61 62 64 65 66 67 68 89 93 113 115 145 146"},F:{"46":0.00347,"79":0.00694,"83":0.00347,"92":0.03472,"93":0.00694,"95":0.00694,"122":0.05902,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00694,"90":0.00347,"92":0.02083,"100":0.00347,"109":0.02083,"114":0.05208,"119":0.01042,"122":0.04166,"129":0.00347,"130":0.00347,"131":0.00694,"132":0.00347,"133":0.00694,"134":0.00347,"135":0.00347,"136":0.00694,"137":0.00347,"138":0.02083,"139":0.01042,"140":0.02083,"141":0.26734,"142":2.26722,"143":0.00694,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 123 124 125 126 127 128"},E:{"4":0.00347,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.2 17.3","5.1":0.05902,"13.1":0.00347,"15.6":0.0243,"16.5":0.00347,"16.6":0.0243,"17.0":0.00347,"17.1":0.01042,"17.4":0.00694,"17.5":0.00694,"17.6":0.01736,"18.0":0.00347,"18.1":0.00347,"18.2":0.00347,"18.3":0.01042,"18.4":0.00347,"18.5-18.6":0.02083,"26.0":0.06597,"26.1":0.0625,"26.2":0.00347},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00062,"5.0-5.1":0,"6.0-6.1":0.00246,"7.0-7.1":0.00185,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00555,"10.0-10.2":0.00062,"10.3":0.00986,"11.0-11.2":0.11462,"11.3-11.4":0.0037,"12.0-12.1":0.00123,"12.2-12.5":0.02896,"13.0-13.1":0,"13.2":0.00308,"13.3":0.00123,"13.4-13.7":0.00555,"14.0-14.4":0.00924,"14.5-14.8":0.01171,"15.0-15.1":0.00986,"15.2-15.3":0.00801,"15.4":0.00863,"15.5":0.00924,"15.6-15.8":0.13372,"16.0":0.01664,"16.1":0.03081,"16.2":0.01602,"16.3":0.02958,"16.4":0.00739,"16.5":0.01232,"16.6-16.7":0.18056,"17.0":0.01541,"17.1":0.01849,"17.2":0.01356,"17.3":0.0191,"17.4":0.03143,"17.5":0.05978,"17.6-17.7":0.14667,"18.0":0.03266,"18.1":0.06902,"18.2":0.03697,"18.3":0.12017,"18.4":0.06162,"18.5-18.7":4.30323,"26.0":0.29518,"26.1":0.2693},P:{"4":0.09484,"20":0.01054,"21":0.01054,"22":0.03161,"23":0.02108,"24":0.02108,"25":0.04215,"26":0.11592,"27":0.06323,"28":0.27399,"29":1.38049,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 14.0 15.0 16.0 18.0","7.2-7.4":0.09484,"11.1-11.2":0.01054,"12.0":0.01054,"13.0":0.01054,"17.0":0.01054,"19.0":0.01054},I:{"0":0.07171,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.34598,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04422,"9":0.00804,"10":0.01608,"11":0.23719,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.26112},H:{"0":0},L:{"0":63.27986},R:{_:"0"},M:{"0":0.2089}};
Index: de_modules/caniuse-lite/data/regions/ER.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ER.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"43":0.13979,"60":0.02467,"90":0.02467,"94":0.36181,"96":0.08223,"99":0.11512,"115":1.61993,"136":0.02467,"140":0.13979,"141":0.02467,"142":0.22202,"143":0.33714,"144":2.77115,"145":3.94704,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 95 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 146 147 148 3.5 3.6"},D:{"83":0.08223,"106":0.19735,"109":7.02244,"115":0.05756,"118":0.19735,"120":0.11512,"121":0.05756,"122":0.08223,"124":0.02467,"126":0.11512,"129":0.02467,"131":2.77115,"133":0.05756,"134":0.25491,"135":0.47693,"136":0.27958,"137":0.08223,"138":0.22202,"139":0.64139,"140":0.30425,"141":4.44864,"142":12.81143,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 110 111 112 113 114 116 117 119 123 125 127 128 130 132 143 144 145 146"},F:{"34":0.05756,"82":0.05756,"122":0.08223,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.02467,"17":0.02467,"89":0.05756,"90":0.05756,"100":0.02467,"108":0.05756,"109":0.19735,"122":0.11512,"130":0.05756,"131":0.11512,"133":0.05756,"137":0.02467,"138":0.33714,"139":1.75972,"140":0.05756,"141":0.22202,"142":6.43861,_:"12 13 15 16 18 79 80 81 83 84 85 86 87 88 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 132 134 135 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.1 26.2","15.6":0.08223,"17.5":0.02467,"26.0":0.02467},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00006,"5.0-5.1":0,"6.0-6.1":0.00026,"7.0-7.1":0.00019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00058,"10.0-10.2":0.00006,"10.3":0.00103,"11.0-11.2":0.01193,"11.3-11.4":0.00038,"12.0-12.1":0.00013,"12.2-12.5":0.00302,"13.0-13.1":0,"13.2":0.00032,"13.3":0.00013,"13.4-13.7":0.00058,"14.0-14.4":0.00096,"14.5-14.8":0.00122,"15.0-15.1":0.00103,"15.2-15.3":0.00083,"15.4":0.0009,"15.5":0.00096,"15.6-15.8":0.01392,"16.0":0.00173,"16.1":0.00321,"16.2":0.00167,"16.3":0.00308,"16.4":0.00077,"16.5":0.00128,"16.6-16.7":0.0188,"17.0":0.0016,"17.1":0.00192,"17.2":0.00141,"17.3":0.00199,"17.4":0.00327,"17.5":0.00622,"17.6-17.7":0.01527,"18.0":0.0034,"18.1":0.00718,"18.2":0.00385,"18.3":0.01251,"18.4":0.00641,"18.5-18.7":0.44796,"26.0":0.03073,"26.1":0.02803},P:{"27":0.15424,"28":0.12119,_:"4 20 21 22 23 24 25 26 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.0924,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.21324},H:{"0":0},L:{"0":46.27364},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/ES.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ES.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.00437,"48":0.00437,"52":0.00874,"54":0.01312,"59":0.00874,"67":0.00437,"77":0.00437,"78":0.01312,"88":0.00437,"98":0.00437,"108":0.00437,"109":0.00437,"113":0.00437,"115":0.16176,"125":0.00437,"127":0.00437,"128":0.01312,"130":0.00437,"132":0.00437,"133":0.00437,"134":0.00437,"135":0.01312,"136":0.01749,"137":0.00437,"138":0.00874,"139":0.00874,"140":0.06558,"141":0.00874,"142":0.02186,"143":0.03935,"144":0.78259,"145":0.9837,"146":0.00437,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 55 56 57 58 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 107 110 111 112 114 116 117 118 119 120 121 122 123 124 126 129 131 147 148 3.5 3.6"},D:{"38":0.00437,"39":0.00437,"40":0.00437,"41":0.00437,"42":0.00437,"43":0.00437,"44":0.00437,"45":0.00437,"46":0.00437,"47":0.00437,"48":0.00437,"49":0.01749,"50":0.00437,"51":0.00437,"52":0.00437,"53":0.00437,"54":0.00437,"55":0.00437,"56":0.00437,"57":0.00437,"58":0.00874,"59":0.00437,"60":0.00437,"66":0.04372,"73":0.00437,"75":0.05246,"79":0.01749,"80":0.00437,"83":0.00437,"84":0.00437,"87":0.02186,"88":0.00437,"91":0.00437,"94":0.00437,"97":0.00437,"99":0.00437,"102":0.00437,"103":0.04372,"104":0.00874,"105":0.00437,"106":0.00437,"107":0.00437,"108":0.01312,"109":1.04928,"110":0.00437,"111":0.01312,"112":0.00437,"113":0.00437,"114":0.01312,"115":0.00437,"116":0.10493,"117":0.00437,"118":0.00437,"119":0.01749,"120":0.0306,"121":0.01312,"122":0.05684,"123":0.02186,"124":0.0306,"125":0.05684,"126":0.04372,"127":0.01312,"128":0.08307,"129":0.02186,"130":0.06121,"131":0.08307,"132":0.05684,"133":0.05246,"134":0.04809,"135":0.07432,"136":0.0787,"137":0.10493,"138":0.28418,"139":0.26232,"140":0.52901,"141":6.25196,"142":15.39818,"143":0.0306,"144":0.00437,_:"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 33 34 35 36 37 61 62 63 64 65 67 68 69 70 71 72 74 76 77 78 81 85 86 89 90 92 93 95 96 98 100 101 145 146"},F:{"46":0.00437,"92":0.06121,"93":0.00874,"95":0.01312,"114":0.00437,"119":0.00437,"120":0.05684,"122":0.58148,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00437,"92":0.00437,"109":0.02623,"114":0.00437,"120":0.00437,"121":0.00437,"126":0.00437,"130":0.00437,"131":0.00874,"132":0.00437,"133":0.00874,"134":0.00874,"135":0.00437,"136":0.00874,"137":0.00874,"138":0.01749,"139":0.01312,"140":0.04372,"141":0.35413,"142":3.29212,"143":0.00437,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 122 123 124 125 127 128 129"},E:{"13":0.00437,"14":0.00874,"15":0.00437,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1","11.1":0.00874,"12.1":0.00874,"13.1":0.03935,"14.1":0.02623,"15.2-15.3":0.00437,"15.4":0.00437,"15.5":0.00874,"15.6":0.13116,"16.0":0.00874,"16.1":0.00874,"16.2":0.00874,"16.3":0.01749,"16.4":0.00874,"16.5":0.01312,"16.6":0.16176,"17.0":0.00874,"17.1":0.1093,"17.2":0.01312,"17.3":0.01749,"17.4":0.02623,"17.5":0.03935,"17.6":0.16176,"18.0":0.01749,"18.1":0.02186,"18.2":0.00874,"18.3":0.05246,"18.4":0.03498,"18.5-18.6":0.16614,"26.0":0.27981,"26.1":0.2973,"26.2":0.01312},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0.00473,"7.0-7.1":0.00355,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01065,"10.0-10.2":0.00118,"10.3":0.01893,"11.0-11.2":0.22004,"11.3-11.4":0.0071,"12.0-12.1":0.00237,"12.2-12.5":0.0556,"13.0-13.1":0,"13.2":0.00592,"13.3":0.00237,"13.4-13.7":0.01065,"14.0-14.4":0.01775,"14.5-14.8":0.02248,"15.0-15.1":0.01893,"15.2-15.3":0.01538,"15.4":0.01656,"15.5":0.01775,"15.6-15.8":0.25671,"16.0":0.03194,"16.1":0.05915,"16.2":0.03076,"16.3":0.05678,"16.4":0.0142,"16.5":0.02366,"16.6-16.7":0.34662,"17.0":0.02958,"17.1":0.03549,"17.2":0.02603,"17.3":0.03667,"17.4":0.06033,"17.5":0.11475,"17.6-17.7":0.28156,"18.0":0.0627,"18.1":0.1325,"18.2":0.07098,"18.3":0.23069,"18.4":0.1183,"18.5-18.7":8.26093,"26.0":0.56666,"26.1":0.51697},P:{"4":0.03116,"20":0.01039,"21":0.02077,"22":0.01039,"23":0.02077,"24":0.02077,"25":0.02077,"26":0.05193,"27":0.06231,"28":0.25963,"29":2.08739,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01039,"19.0":0.01039},I:{"0":0.0281,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.34331,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00972,"9":0.00486,"10":0.00486,"11":0.11173,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02251},H:{"0":0},L:{"0":47.52163},R:{_:"0"},M:{"0":0.41647}};
Index: de_modules/caniuse-lite/data/regions/ET.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ET.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03959,"43":0.00396,"44":0.00396,"47":0.00792,"48":0.00396,"52":0.00792,"58":0.00396,"66":0.00792,"72":0.00792,"77":0.00396,"97":0.00396,"105":0.00396,"112":0.0198,"113":0.00396,"115":1.14019,"125":0.00396,"127":0.02375,"128":0.01188,"131":0.05939,"133":0.01188,"136":0.00792,"138":0.01584,"139":0.00396,"140":0.03563,"141":0.00792,"142":0.00792,"143":0.02771,"144":0.51863,"145":0.6374,"146":0.0198,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 45 46 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 101 102 103 104 106 107 108 109 110 111 114 116 117 118 119 120 121 122 123 124 126 129 130 132 134 135 137 147 148 3.5 3.6"},D:{"11":0.00396,"38":0.00396,"40":0.00396,"43":0.01188,"49":0.01188,"50":0.00396,"51":0.00396,"56":0.00396,"58":0.01584,"61":0.00396,"63":0.00396,"64":0.00396,"65":0.00792,"66":0.0198,"67":0.00792,"68":0.01584,"69":0.04751,"70":0.00396,"71":0.01584,"72":0.00792,"73":0.02375,"74":0.00792,"75":0.00792,"76":0.00396,"77":0.01188,"78":0.00396,"79":0.04355,"80":0.02771,"81":0.00396,"83":0.01584,"84":0.00396,"85":0.00792,"86":0.01584,"87":0.02771,"88":0.00792,"89":0.00396,"90":0.00396,"91":0.01188,"92":0.00396,"93":0.01188,"94":0.00396,"95":0.01584,"96":0.00396,"97":0.00792,"98":0.0198,"99":0.00792,"100":0.00792,"101":0.00792,"102":0.00792,"103":0.03563,"104":0.0198,"105":0.00792,"106":0.00792,"107":0.00396,"108":0.00792,"109":0.67699,"110":0.00396,"111":0.04751,"112":14.12571,"113":0.00396,"114":0.02375,"115":0.00396,"116":0.0198,"117":0.00396,"118":0.00396,"119":0.04355,"120":0.0198,"121":0.01584,"122":0.0871,"123":0.01188,"124":0.01584,"125":0.53842,"126":2.27247,"127":0.0198,"128":0.02771,"129":0.01188,"130":0.02375,"131":0.07126,"132":0.0673,"133":0.03563,"134":0.04751,"135":0.04751,"136":0.05939,"137":0.12273,"138":0.24942,"139":0.16628,"140":0.35235,"141":2.37936,"142":6.3542,"143":0.03959,"144":0.00792,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 44 45 46 47 48 52 53 54 55 57 59 60 62 145 146"},F:{"42":0.00396,"79":0.00792,"81":0.00396,"82":0.01188,"85":0.00396,"90":0.00396,"92":0.02375,"93":0.00396,"95":0.06334,"117":0.00396,"119":0.00396,"120":0.00396,"122":0.18211,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00792,"13":0.00396,"14":0.00792,"15":0.00396,"16":0.00396,"17":0.00396,"18":0.03563,"84":0.00396,"89":0.00396,"90":0.00396,"92":0.03959,"100":0.00792,"109":0.01584,"114":0.36819,"120":0.00396,"122":0.00792,"123":0.00396,"127":0.00396,"128":0.00396,"130":0.00396,"131":0.00396,"132":0.00396,"133":0.00396,"134":0.00396,"135":0.00792,"136":0.01188,"137":0.01188,"138":0.02771,"139":0.0198,"140":0.03563,"141":0.25338,"142":2.07056,"143":0.00792,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 124 125 126 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.2 26.2","11.1":0.00396,"13.1":0.00792,"14.1":0.00396,"15.6":0.01584,"16.6":0.00792,"17.1":0.00396,"17.4":0.00396,"17.6":0.01584,"18.1":0.00396,"18.3":0.00396,"18.4":0.00396,"18.5-18.6":0.00792,"26.0":0.02771,"26.1":0.02771},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00012,"5.0-5.1":0,"6.0-6.1":0.00048,"7.0-7.1":0.00036,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00109,"10.0-10.2":0.00012,"10.3":0.00193,"11.0-11.2":0.02247,"11.3-11.4":0.00072,"12.0-12.1":0.00024,"12.2-12.5":0.00568,"13.0-13.1":0,"13.2":0.0006,"13.3":0.00024,"13.4-13.7":0.00109,"14.0-14.4":0.00181,"14.5-14.8":0.0023,"15.0-15.1":0.00193,"15.2-15.3":0.00157,"15.4":0.00169,"15.5":0.00181,"15.6-15.8":0.02622,"16.0":0.00326,"16.1":0.00604,"16.2":0.00314,"16.3":0.0058,"16.4":0.00145,"16.5":0.00242,"16.6-16.7":0.0354,"17.0":0.00302,"17.1":0.00362,"17.2":0.00266,"17.3":0.00375,"17.4":0.00616,"17.5":0.01172,"17.6-17.7":0.02876,"18.0":0.0064,"18.1":0.01353,"18.2":0.00725,"18.3":0.02356,"18.4":0.01208,"18.5-18.7":0.84369,"26.0":0.05787,"26.1":0.0528},P:{"4":0.08528,"22":0.02132,"23":0.01066,"24":0.02132,"25":0.04264,"26":0.0533,"27":0.11727,"28":0.22387,"29":0.44774,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.06396},I:{"0":0.22924,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":1.24569,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.10689,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.05437,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01208},O:{"0":0.11478},H:{"0":1.95},L:{"0":57.09428},R:{_:"0"},M:{"0":0.14498}};
Index: de_modules/caniuse-lite/data/regions/FI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.03408,"68":0.02045,"72":0.02726,"77":0.00682,"78":0.00682,"113":0.00682,"115":0.18403,"124":0.00682,"128":0.01363,"133":0.00682,"135":0.23174,"136":0.00682,"138":0.01363,"139":0.02045,"140":0.09542,"141":0.02726,"142":0.01363,"143":0.0409,"144":1.00877,"145":1.2337,"146":0.00682,"147":0.00682,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 125 126 127 129 130 131 132 134 137 148 3.5 3.6"},D:{"39":0.01363,"40":0.01363,"41":0.02045,"42":0.02045,"43":0.01363,"44":0.01363,"45":0.01363,"46":0.01363,"47":0.01363,"48":0.01363,"49":0.01363,"50":0.01363,"51":0.01363,"52":0.36806,"53":0.01363,"54":0.01363,"55":0.01363,"56":0.01363,"57":0.01363,"58":0.02045,"59":0.01363,"60":0.01363,"66":0.02726,"71":0.0409,"73":0.00682,"78":0.00682,"79":0.01363,"80":0.00682,"81":0.00682,"83":0.00682,"87":0.05453,"88":0.00682,"91":0.45667,"93":0.00682,"94":0.00682,"101":0.00682,"102":0.01363,"103":0.02726,"104":0.14314,"108":0.00682,"109":0.25219,"111":0.00682,"112":0.00682,"114":0.06134,"116":0.03408,"117":0.00682,"118":0.00682,"119":0.00682,"120":0.08861,"121":0.03408,"122":0.0409,"123":0.03408,"124":0.05453,"125":0.04771,"126":0.03408,"127":0.01363,"128":0.06134,"129":0.12269,"130":0.04771,"131":0.08861,"132":4.69622,"133":0.41578,"134":0.0409,"135":0.10224,"136":0.10906,"137":0.08861,"138":0.66797,"139":1.05648,"140":6.52291,"141":19.5551,"142":19.18022,"143":0.02726,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 72 74 75 76 77 84 85 86 89 90 92 95 96 97 98 99 100 105 106 107 110 113 115 144 145 146"},F:{"68":0.00682,"78":0.00682,"92":0.03408,"93":0.00682,"95":0.04771,"113":0.00682,"122":0.39533,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.02045,"131":0.01363,"132":0.00682,"133":0.00682,"134":0.00682,"135":0.00682,"136":0.00682,"137":0.00682,"138":0.00682,"139":0.01363,"140":0.02726,"141":0.3408,"142":2.78093,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 143"},E:{"13":0.00682,"14":0.00682,"15":0.00682,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.0 16.4 17.0","11.1":0.03408,"13.1":0.00682,"14.1":0.00682,"15.5":0.00682,"15.6":0.0409,"16.1":0.00682,"16.2":0.00682,"16.3":0.02045,"16.5":0.00682,"16.6":0.10224,"17.1":0.07498,"17.2":0.00682,"17.3":0.00682,"17.4":0.02045,"17.5":0.03408,"17.6":0.12269,"18.0":0.00682,"18.1":0.01363,"18.2":0.00682,"18.3":0.02726,"18.4":0.02045,"18.5-18.6":0.06816,"26.0":0.20448,"26.1":0.25901,"26.2":0.00682},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00072,"5.0-5.1":0,"6.0-6.1":0.00286,"7.0-7.1":0.00215,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00644,"10.0-10.2":0.00072,"10.3":0.01146,"11.0-11.2":0.13319,"11.3-11.4":0.0043,"12.0-12.1":0.00143,"12.2-12.5":0.03366,"13.0-13.1":0,"13.2":0.00358,"13.3":0.00143,"13.4-13.7":0.00644,"14.0-14.4":0.01074,"14.5-14.8":0.01361,"15.0-15.1":0.01146,"15.2-15.3":0.00931,"15.4":0.01003,"15.5":0.01074,"15.6-15.8":0.15539,"16.0":0.01933,"16.1":0.0358,"16.2":0.01862,"16.3":0.03437,"16.4":0.00859,"16.5":0.01432,"16.6-16.7":0.20981,"17.0":0.0179,"17.1":0.02148,"17.2":0.01575,"17.3":0.0222,"17.4":0.03652,"17.5":0.06946,"17.6-17.7":0.17043,"18.0":0.03795,"18.1":0.0802,"18.2":0.04296,"18.3":0.13964,"18.4":0.07161,"18.5-18.7":5.0004,"26.0":0.343,"26.1":0.31293},P:{"4":0.01044,"20":0.01044,"21":0.01044,"22":0.02088,"23":0.03132,"24":0.03132,"25":0.04176,"26":0.03132,"27":0.07308,"28":0.40717,"29":1.30502,"5.0-5.4":0.01044,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01908,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.38526,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02726,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00318},O:{"0":0.03821},H:{"0":0},L:{"0":23.44981},R:{_:"0"},M:{"0":0.6559}};
Index: de_modules/caniuse-lite/data/regions/FJ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FJ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00749,"46":0.01124,"78":0.00375,"81":0.00375,"88":0.00375,"103":0.00375,"112":0.00749,"115":0.05244,"127":0.00375,"140":0.06743,"141":0.00375,"143":0.00749,"144":0.58438,"145":0.52444,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 142 146 147 148 3.5 3.6"},D:{"44":0.00375,"63":0.00375,"68":0.01124,"69":0.01124,"70":0.00749,"74":0.01873,"75":0.00375,"77":0.00375,"78":0.00375,"79":0.03746,"80":0.00375,"83":0.00375,"86":0.00375,"87":0.01498,"88":0.01498,"91":0.00749,"93":0.01873,"97":0.01498,"100":0.00749,"103":0.00375,"104":0.00375,"108":0.00749,"109":0.11613,"111":0.46076,"113":0.00375,"114":0.00375,"116":0.02248,"117":0.05994,"118":0.00375,"119":0.00749,"120":0.00749,"121":0.00749,"122":0.02997,"125":0.38958,"126":0.07492,"127":0.01124,"128":0.02248,"129":0.01498,"130":0.00749,"131":0.14984,"132":0.06368,"133":0.02248,"134":0.06743,"135":0.01873,"136":0.01124,"137":0.0487,"138":0.20978,"139":0.07492,"140":0.15733,"141":2.56601,"142":9.15148,"143":0.01498,"144":0.02622,_:"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 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 71 72 73 76 81 84 85 89 90 92 94 95 96 98 99 101 102 105 106 107 110 112 115 123 124 145 146"},F:{"88":0.00749,"90":0.00375,"92":0.03746,"93":0.01498,"102":0.00375,"110":0.00375,"113":0.02622,"120":0.00375,"122":0.11238,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 91 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 111 112 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00375,"17":0.00375,"92":0.00375,"100":0.02997,"109":0.01498,"112":0.01124,"113":0.08241,"114":0.73047,"119":0.00375,"120":0.00375,"122":0.00375,"123":0.00375,"126":0.00749,"128":0.00375,"129":0.00375,"130":0.00375,"131":0.00375,"132":0.00375,"133":0.00375,"134":0.00375,"135":0.00375,"136":0.00749,"137":0.02997,"138":0.17606,"139":0.03371,"140":0.07117,"141":0.6518,"142":4.63006,"143":0.01873,_:"13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 115 116 117 118 121 124 125 127"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.4 15.5 16.0 16.2 16.4 17.2","14.1":0.01498,"15.2-15.3":0.01124,"15.6":0.13111,"16.1":0.01873,"16.3":0.01124,"16.5":0.00749,"16.6":0.35212,"17.0":0.06743,"17.1":0.03746,"17.3":0.00375,"17.4":0.01873,"17.5":0.00375,"17.6":0.07117,"18.0":0.01498,"18.1":0.01498,"18.2":0.04495,"18.3":0.11987,"18.4":0.01498,"18.5-18.6":0.06368,"26.0":0.1386,"26.1":0.23974,"26.2":0.00749},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0.00335,"7.0-7.1":0.00251,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00754,"10.0-10.2":0.00084,"10.3":0.0134,"11.0-11.2":0.15576,"11.3-11.4":0.00502,"12.0-12.1":0.00167,"12.2-12.5":0.03936,"13.0-13.1":0,"13.2":0.00419,"13.3":0.00167,"13.4-13.7":0.00754,"14.0-14.4":0.01256,"14.5-14.8":0.01591,"15.0-15.1":0.0134,"15.2-15.3":0.01089,"15.4":0.01172,"15.5":0.01256,"15.6-15.8":0.18172,"16.0":0.02261,"16.1":0.04187,"16.2":0.02177,"16.3":0.0402,"16.4":0.01005,"16.5":0.01675,"16.6-16.7":0.24536,"17.0":0.02094,"17.1":0.02512,"17.2":0.01842,"17.3":0.02596,"17.4":0.04271,"17.5":0.08123,"17.6-17.7":0.1993,"18.0":0.04438,"18.1":0.09379,"18.2":0.05024,"18.3":0.1633,"18.4":0.08374,"18.5-18.7":5.84764,"26.0":0.40112,"26.1":0.36595},P:{"4":0.01035,"20":0.17603,"21":0.04142,"22":0.23816,"23":0.1139,"24":0.27958,"25":1.06656,"26":0.23816,"27":0.92159,"28":2.81656,"29":3.73815,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0","7.2-7.4":0.42455,"16.0":0.02071,"18.0":0.01035,"19.0":0.01035},I:{"0":0.01874,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.24641,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03746,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00625},O:{"0":0.10006},H:{"0":0.01},L:{"0":55.85125},R:{_:"0"},M:{"0":0.15635}};
Index: de_modules/caniuse-lite/data/regions/FK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"108":0.61251,"115":0.07807,"131":0.07807,"133":0.38432,"143":0.15613,"144":13.19299,"145":5.06222,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134 135 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"87":0.07807,"109":0.99683,"125":0.22819,"126":0.91877,"140":0.15613,"141":0.53445,"142":4.75596,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 127 128 129 130 131 132 133 134 135 136 137 138 139 143 144 145 146"},F:{"92":0.22819,"122":0.15613,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"118":0.07807,"126":0.07807,"138":0.30626,"139":0.07807,"140":2.29992,"141":2.7623,"142":13.11492,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119 120 121 122 123 124 125 127 128 129 130 131 132 133 134 135 136 137 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.1 26.2","16.6":0.07807,"17.1":0.07807,"17.6":0.22819,"26.0":0.46239},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00088,"5.0-5.1":0,"6.0-6.1":0.00354,"7.0-7.1":0.00265,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00796,"10.0-10.2":0.00088,"10.3":0.01416,"11.0-11.2":0.16459,"11.3-11.4":0.00531,"12.0-12.1":0.00177,"12.2-12.5":0.04159,"13.0-13.1":0,"13.2":0.00442,"13.3":0.00177,"13.4-13.7":0.00796,"14.0-14.4":0.01327,"14.5-14.8":0.01681,"15.0-15.1":0.01416,"15.2-15.3":0.0115,"15.4":0.01239,"15.5":0.01327,"15.6-15.8":0.19202,"16.0":0.02389,"16.1":0.04424,"16.2":0.02301,"16.3":0.04247,"16.4":0.01062,"16.5":0.0177,"16.6-16.7":0.25927,"17.0":0.02212,"17.1":0.02655,"17.2":0.01947,"17.3":0.02743,"17.4":0.04513,"17.5":0.08583,"17.6-17.7":0.2106,"18.0":0.0469,"18.1":0.09911,"18.2":0.05309,"18.3":0.17255,"18.4":0.08849,"18.5-18.7":6.1792,"26.0":0.42386,"26.1":0.3867},P:{"28":0.16551,"29":1.68817,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":31.26607},R:{_:"0"},M:{"0":1.17853}};
Index: de_modules/caniuse-lite/data/regions/FM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01469,"114":0.01469,"135":0.02938,"143":0.05876,"144":0.45542,"145":0.8227,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"79":0.04407,"87":0.02938,"89":0.01469,"93":0.01469,"105":0.01469,"109":0.22037,"113":0.02938,"116":0.04407,"122":0.24975,"125":0.73455,"130":0.01469,"131":0.02938,"137":0.04407,"138":0.01469,"139":0.11753,"140":0.58764,"141":2.82557,"142":8.73135,"143":0.01469,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 90 91 92 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 114 115 117 118 119 120 121 123 124 126 127 128 129 132 133 134 135 136 144 145 146"},F:{"92":1.01368,"122":0.17629,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"108":0.01469,"109":0.01469,"112":0.01469,"114":0.01469,"128":0.14691,"131":0.05876,"136":0.02938,"138":0.01469,"140":1.87065,"141":0.91084,"142":8.4963,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 132 133 134 135 137 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 16.6 17.0 17.2 17.3 17.6 18.0 18.1 18.4 26.2","13.1":0.22037,"15.6":0.04407,"16.1":0.08815,"16.3":0.02938,"17.1":0.04407,"17.4":0.01469,"17.5":0.01469,"18.2":5.28386,"18.3":0.11753,"18.5-18.6":0.17629,"26.0":0.24975,"26.1":0.07346},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0.00399,"7.0-7.1":0.00299,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00898,"10.0-10.2":0.001,"10.3":0.01596,"11.0-11.2":0.18556,"11.3-11.4":0.00599,"12.0-12.1":0.002,"12.2-12.5":0.04689,"13.0-13.1":0,"13.2":0.00499,"13.3":0.002,"13.4-13.7":0.00898,"14.0-14.4":0.01496,"14.5-14.8":0.01896,"15.0-15.1":0.01596,"15.2-15.3":0.01297,"15.4":0.01397,"15.5":0.01496,"15.6-15.8":0.21649,"16.0":0.02694,"16.1":0.04988,"16.2":0.02594,"16.3":0.04789,"16.4":0.01197,"16.5":0.01995,"16.6-16.7":0.29231,"17.0":0.02494,"17.1":0.02993,"17.2":0.02195,"17.3":0.03093,"17.4":0.05088,"17.5":0.09677,"17.6-17.7":0.23744,"18.0":0.05287,"18.1":0.11174,"18.2":0.05986,"18.3":0.19454,"18.4":0.09976,"18.5-18.7":6.9665,"26.0":0.47787,"26.1":0.43597},P:{"20":0.04222,"24":0.03166,"26":0.04222,"27":0.04222,"28":0.68603,"29":2.54358,_:"4 21 22 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.16887},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.07655,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.95936},O:{_:"0"},H:{"0":0},L:{"0":47.08585},R:{_:"0"},M:{"0":1.03591}};
Index: de_modules/caniuse-lite/data/regions/FO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"43":0.00438,"115":0.2673,"133":0.13146,"134":0.10955,"135":0.1709,"136":0.00876,"137":0.00438,"138":0.00876,"140":0.6573,"143":0.00438,"144":0.78876,"145":1.20943,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 139 141 142 146 147 148 3.5 3.6"},D:{"48":0.01315,"49":0.02191,"79":0.00438,"80":0.03506,"103":0.00438,"108":0.02191,"109":0.84573,"116":0.03067,"119":0.05258,"122":0.26292,"123":0.01315,"124":0.03506,"125":0.07888,"126":0.00438,"128":0.05258,"129":0.0482,"130":0.03506,"131":0.58281,"132":0.15775,"133":0.19719,"134":0.67921,"135":0.50831,"136":0.37247,"137":0.30236,"138":1.37157,"139":0.10517,"140":0.56528,"141":2.48459,"142":8.67636,"143":0.17528,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 110 111 112 113 114 115 117 118 120 121 127 144 145 146"},F:{"95":0.00876,"114":0.08326,"116":0.06135,"119":0.03067,"122":0.41629,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00438,"91":0.00438,"92":0.07011,"109":0.01753,"118":0.00438,"122":0.00438,"127":0.06573,"131":0.65292,"132":0.06135,"133":0.11393,"134":0.27607,"135":0.08764,"136":0.14022,"137":0.04382,"138":0.00438,"139":0.00438,"140":0.01315,"141":0.64854,"142":2.90527,"143":0.00876,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 120 121 123 124 125 126 128 129 130"},E:{"14":0.02629,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3","13.1":0.00876,"14.1":0.01753,"15.1":0.00438,"15.4":0.00438,"15.5":0.05258,"15.6":0.46449,"16.0":0.00438,"16.1":0.05258,"16.2":0.16213,"16.3":0.37685,"16.4":0.01315,"16.5":0.02191,"16.6":1.40662,"17.0":0.08764,"17.1":1.02101,"17.2":0.01753,"17.3":0.03944,"17.4":0.05258,"17.5":0.2673,"17.6":0.41629,"18.0":0.11831,"18.1":0.08764,"18.2":0.02191,"18.3":0.14022,"18.4":0.1227,"18.5-18.6":0.69674,"26.0":1.98943,"26.1":0.85887,"26.2":0.03067},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00444,"5.0-5.1":0,"6.0-6.1":0.01775,"7.0-7.1":0.01331,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03994,"10.0-10.2":0.00444,"10.3":0.071,"11.0-11.2":0.8254,"11.3-11.4":0.02663,"12.0-12.1":0.00888,"12.2-12.5":0.20857,"13.0-13.1":0,"13.2":0.02219,"13.3":0.00888,"13.4-13.7":0.03994,"14.0-14.4":0.06656,"14.5-14.8":0.08432,"15.0-15.1":0.071,"15.2-15.3":0.05769,"15.4":0.06213,"15.5":0.06656,"15.6-15.8":0.96297,"16.0":0.11982,"16.1":0.22188,"16.2":0.11538,"16.3":0.21301,"16.4":0.05325,"16.5":0.08875,"16.6-16.7":1.30023,"17.0":0.11094,"17.1":0.13313,"17.2":0.09763,"17.3":0.13757,"17.4":0.22632,"17.5":0.43045,"17.6-17.7":1.05616,"18.0":0.2352,"18.1":0.49702,"18.2":0.26626,"18.3":0.86534,"18.4":0.44377,"18.5-18.7":30.98817,"26.0":2.12564,"26.1":1.93926},P:{"4":0.33825,"21":0.01025,"24":0.0205,"27":0.0205,"28":0.05125,"29":1.48623,_:"20 22 23 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.13464,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.02247,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.05258,"9":0.01315,"11":0.00876,_:"6 7 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":10.50363},R:{_:"0"},M:{"0":0.25843}};
Index: de_modules/caniuse-lite/data/regions/FR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/FR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.00483,"48":0.00966,"50":0.00483,"51":0.00483,"52":0.0338,"53":0.00483,"54":0.00966,"56":0.01449,"59":0.05795,"77":0.00483,"78":0.02897,"102":0.00483,"113":0.00483,"115":0.4491,"120":0.00483,"121":0.00483,"125":0.00966,"127":0.00483,"128":0.07726,"130":0.00483,"131":0.00483,"132":0.01449,"133":0.00966,"134":0.02897,"135":0.00966,"136":0.04829,"137":0.1159,"138":0.00966,"139":0.01932,"140":0.28008,"141":0.07726,"142":0.03863,"143":0.07244,"144":1.98955,"145":2.44347,"146":0.00483,_:"2 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 55 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 122 123 124 126 129 147 148 3.5 3.6"},D:{"29":0.00966,"39":0.00966,"40":0.00966,"41":0.00966,"42":0.00966,"43":0.00966,"44":0.00966,"45":0.00966,"46":0.00966,"47":0.00966,"48":0.02415,"49":0.02897,"50":0.00966,"51":0.00966,"52":0.03863,"53":0.00966,"54":0.00966,"55":0.00966,"56":0.01449,"57":0.00966,"58":0.02897,"59":0.00966,"60":0.00966,"66":0.21731,"70":0.00966,"72":0.00483,"74":0.00483,"75":0.00483,"76":0.00483,"79":0.01932,"81":0.00483,"83":0.00966,"85":0.00483,"86":0.00483,"87":0.0338,"88":0.00483,"90":0.00483,"91":0.00966,"93":0.04346,"95":0.00483,"97":0.00483,"98":0.00483,"100":0.00483,"102":0.00483,"103":0.05312,"104":0.00966,"106":0.00483,"107":0.00483,"108":0.00966,"109":0.82576,"110":0.00966,"111":0.00966,"112":0.02415,"113":0.00966,"114":0.0338,"115":0.02415,"116":0.17867,"117":0.00483,"118":0.03863,"119":0.02897,"120":0.02897,"121":0.00966,"122":0.03863,"123":0.01932,"124":0.0338,"125":0.5988,"126":0.05795,"127":0.02415,"128":0.09175,"129":0.02897,"130":0.25594,"131":0.10141,"132":0.40564,"133":0.07244,"134":0.05795,"135":0.08209,"136":0.12555,"137":0.10141,"138":0.28491,"139":0.43944,"140":0.60363,"141":5.32156,"142":14.12965,"143":0.03863,"144":0.00483,_:"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 30 31 32 33 34 35 36 37 38 61 62 63 64 65 67 68 69 71 73 77 78 80 84 89 92 94 96 99 101 105 145 146"},F:{"46":0.00483,"92":0.04346,"93":0.00483,"95":0.04346,"102":0.00483,"114":0.00483,"117":0.00483,"119":0.00483,"120":0.00966,"122":0.50705,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.02897,"92":0.00483,"100":0.00483,"101":0.02415,"109":0.09175,"114":0.00483,"120":0.00483,"122":0.00483,"124":0.00483,"126":0.03863,"127":0.00483,"128":0.00483,"129":0.00483,"130":0.00966,"131":0.01932,"132":0.00483,"133":0.00966,"134":0.02415,"135":0.00966,"136":0.01449,"137":0.01932,"138":0.02415,"139":0.02897,"140":0.09658,"141":0.58914,"142":5.42297,"143":0.00483,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 125"},E:{"4":0.00966,"14":0.00966,"15":0.00483,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.05795,"12.1":0.00483,"13.1":0.06761,"14.1":0.13038,"15.1":0.00483,"15.2-15.3":0.00483,"15.4":0.00966,"15.5":0.00966,"15.6":0.23179,"16.0":0.01932,"16.1":0.01932,"16.2":0.01449,"16.3":0.02415,"16.4":0.01449,"16.5":0.01932,"16.6":0.25594,"17.0":0.01449,"17.1":0.14487,"17.2":0.01932,"17.3":0.01932,"17.4":0.04346,"17.5":0.06761,"17.6":0.30423,"18.0":0.02415,"18.1":0.03863,"18.2":0.02415,"18.3":0.08692,"18.4":0.05312,"18.5-18.6":0.1835,"26.0":0.35735,"26.1":0.37666,"26.2":0.00966},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00141,"5.0-5.1":0,"6.0-6.1":0.00564,"7.0-7.1":0.00423,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01268,"10.0-10.2":0.00141,"10.3":0.02254,"11.0-11.2":0.26205,"11.3-11.4":0.00845,"12.0-12.1":0.00282,"12.2-12.5":0.06622,"13.0-13.1":0,"13.2":0.00704,"13.3":0.00282,"13.4-13.7":0.01268,"14.0-14.4":0.02113,"14.5-14.8":0.02677,"15.0-15.1":0.02254,"15.2-15.3":0.01832,"15.4":0.01972,"15.5":0.02113,"15.6-15.8":0.30572,"16.0":0.03804,"16.1":0.07044,"16.2":0.03663,"16.3":0.06762,"16.4":0.01691,"16.5":0.02818,"16.6-16.7":0.41279,"17.0":0.03522,"17.1":0.04227,"17.2":0.03099,"17.3":0.04367,"17.4":0.07185,"17.5":0.13666,"17.6-17.7":0.33531,"18.0":0.07467,"18.1":0.15779,"18.2":0.08453,"18.3":0.27473,"18.4":0.14089,"18.5-18.7":9.83802,"26.0":0.67484,"26.1":0.61567},P:{"4":0.03185,"20":0.01062,"21":0.02123,"22":0.03185,"23":0.02123,"24":0.02123,"25":0.02123,"26":0.07431,"27":0.05308,"28":0.3291,"29":2.3568,_:"5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.02123,"9.2":0.01062,"13.0":0.01062,"19.0":0.01062},I:{"0":0.08264,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.34135,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.12476,"9":0.11909,"10":0.04537,"11":0.3289,_:"6 7 5.5"},N:{_:"10 11"},S:{"2.5":0.00517,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.11896},H:{"0":0},L:{"0":36.02642},R:{_:"0"},M:{"0":0.7396}};
Index: de_modules/caniuse-lite/data/regions/GA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.00513,"5":0.04619,"78":0.00513,"115":0.04619,"139":0.00513,"140":0.03079,"141":0.01026,"142":0.01026,"143":0.03079,"144":0.33871,"145":0.37977,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 146 147 148 3.5 3.6"},D:{"64":0.00513,"65":0.01026,"66":0.00513,"68":0.00513,"69":0.05645,"72":0.00513,"73":0.03079,"74":0.00513,"75":0.01026,"78":0.01026,"79":0.03592,"81":0.00513,"83":0.0154,"84":0.00513,"86":0.0154,"87":0.1129,"88":0.00513,"89":0.01026,"90":0.00513,"94":0.04619,"95":0.02566,"98":0.0154,"99":0.00513,"100":0.01026,"103":0.02053,"107":0.00513,"108":0.02053,"109":0.17449,"110":0.0154,"111":0.04619,"112":28.3697,"113":0.01026,"114":0.03079,"116":0.02566,"119":0.03079,"120":0.03592,"121":0.00513,"122":0.08724,"123":0.00513,"124":0.00513,"125":0.44648,"126":4.53669,"127":0.01026,"128":0.05645,"129":0.00513,"130":0.01026,"131":0.11804,"132":0.06672,"133":0.01026,"134":0.0154,"135":0.0154,"136":0.02053,"137":0.03079,"138":0.10264,"139":0.06158,"140":0.14883,"141":1.36511,"142":4.30062,"143":0.00513,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 67 70 71 76 77 80 85 91 92 93 96 97 101 102 104 105 106 115 117 118 144 145 146"},F:{"92":0.15909,"95":0.02053,"113":0.01026,"120":0.00513,"122":0.21041,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01026,"18":0.00513,"92":0.02566,"100":0.00513,"109":0.00513,"114":0.61584,"122":0.00513,"134":0.01026,"135":0.01026,"136":0.0154,"137":0.00513,"138":0.01026,"139":0.00513,"140":0.02053,"141":0.22068,"142":1.73462,"143":0.00513,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.1 26.2","5.1":0.00513,"13.1":0.03592,"14.1":0.02053,"15.6":0.03592,"16.6":0.05645,"17.1":0.01026,"17.4":0.00513,"17.6":0.1283,"18.0":0.00513,"18.2":0.00513,"18.3":0.01026,"18.4":0.01026,"18.5-18.6":0.02053,"26.0":0.02566,"26.1":0.10264},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0.00231,"7.0-7.1":0.00173,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0052,"10.0-10.2":0.00058,"10.3":0.00925,"11.0-11.2":0.10757,"11.3-11.4":0.00347,"12.0-12.1":0.00116,"12.2-12.5":0.02718,"13.0-13.1":0,"13.2":0.00289,"13.3":0.00116,"13.4-13.7":0.0052,"14.0-14.4":0.00867,"14.5-14.8":0.01099,"15.0-15.1":0.00925,"15.2-15.3":0.00752,"15.4":0.0081,"15.5":0.00867,"15.6-15.8":0.1255,"16.0":0.01561,"16.1":0.02892,"16.2":0.01504,"16.3":0.02776,"16.4":0.00694,"16.5":0.01157,"16.6-16.7":0.16945,"17.0":0.01446,"17.1":0.01735,"17.2":0.01272,"17.3":0.01793,"17.4":0.02949,"17.5":0.0561,"17.6-17.7":0.13764,"18.0":0.03065,"18.1":0.06477,"18.2":0.0347,"18.3":0.11277,"18.4":0.05783,"18.5-18.7":4.0384,"26.0":0.27701,"26.1":0.25273},P:{"4":0.0212,"22":0.05299,"24":0.0212,"25":0.0106,"26":0.04239,"27":0.0318,"28":0.15898,"29":0.41335,_:"20 21 23 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.0106,"7.2-7.4":0.06359,"19.0":0.0106},I:{"0":0.02431,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.7048,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.00974,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.06328},H:{"0":0.04},L:{"0":45.66739},R:{_:"0"},M:{"0":0.05355}};
Index: de_modules/caniuse-lite/data/regions/GB.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GB.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00465,"52":0.0093,"59":0.02789,"78":0.00465,"103":0.00465,"115":0.07903,"125":0.00465,"128":0.0093,"132":0.00465,"134":0.0093,"135":0.00465,"136":0.0093,"139":0.00465,"140":0.03254,"141":0.00465,"142":0.01395,"143":0.05579,"144":0.64156,"145":0.66016,"146":0.00465,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 133 137 138 147 148 3.5 3.6"},D:{"11":0.00465,"13":0.00465,"38":0.00465,"39":0.00465,"40":0.00465,"41":0.00465,"42":0.00465,"43":0.00465,"44":0.00465,"45":0.00465,"46":0.00465,"47":0.00465,"48":0.00465,"49":0.0093,"50":0.00465,"51":0.00465,"52":0.0093,"53":0.00465,"54":0.00465,"55":0.00465,"56":0.00465,"57":0.00465,"58":0.00465,"59":0.00465,"60":0.00465,"65":0.00465,"66":0.12087,"74":0.00465,"76":0.00465,"79":0.01395,"80":0.00465,"81":0.00465,"85":0.0093,"87":0.02325,"88":0.01395,"89":0.00465,"91":0.01395,"92":0.00465,"93":0.0093,"98":0.00465,"102":0.00465,"103":0.09298,"104":0.01395,"107":0.0093,"108":0.01395,"109":0.26499,"111":0.0093,"112":0.00465,"114":0.02789,"116":0.08368,"117":0.00465,"118":0.00465,"119":0.06974,"120":0.08368,"121":0.0093,"122":0.06044,"123":0.0093,"124":0.03254,"125":0.07438,"126":0.07903,"127":0.02789,"128":0.06974,"129":0.0186,"130":0.79963,"131":2.19433,"132":0.03719,"133":0.04184,"134":0.31148,"135":0.04184,"136":0.06044,"137":0.09298,"138":0.27894,"139":1.29707,"140":1.10646,"141":4.70014,"142":11.53882,"143":0.02325,"144":0.00465,_:"4 5 6 7 8 9 10 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 61 62 63 64 67 68 69 70 71 72 73 75 77 78 83 84 86 90 94 95 96 97 99 100 101 105 106 110 113 115 145 146"},F:{"46":0.0093,"90":0.00465,"92":0.0186,"93":0.00465,"95":0.0093,"116":0.00465,"119":0.00465,"120":0.00465,"122":0.33473,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01395,"85":0.00465,"92":0.00465,"109":0.03719,"120":0.00465,"121":0.00465,"122":0.00465,"126":0.00465,"128":0.00465,"131":0.01395,"132":0.00465,"133":0.0093,"134":0.00465,"135":0.0093,"136":0.00465,"137":0.0093,"138":0.02325,"139":0.02325,"140":0.11158,"141":1.1576,"142":8.34496,"143":0.00465,_:"12 13 14 15 16 18 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 123 124 125 127 129 130"},E:{"13":0.00465,"14":0.01395,"15":0.00465,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02789,"12.1":0.00465,"13.1":0.03254,"14.1":0.04184,"15.1":0.06044,"15.2-15.3":0.00465,"15.4":0.0093,"15.5":0.01395,"15.6":0.27894,"16.0":0.0093,"16.1":0.02325,"16.2":0.0186,"16.3":0.04649,"16.4":0.01395,"16.5":0.0186,"16.6":0.39517,"17.0":0.01395,"17.1":0.35797,"17.2":0.0186,"17.3":0.02325,"17.4":0.04184,"17.5":0.06974,"17.6":0.27894,"18.0":0.0186,"18.1":0.05579,"18.2":0.02325,"18.3":0.13947,"18.4":0.05114,"18.5-18.6":0.2464,"26.0":0.36262,"26.1":0.42771,"26.2":0.01395},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00233,"5.0-5.1":0,"6.0-6.1":0.0093,"7.0-7.1":0.00698,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02093,"10.0-10.2":0.00233,"10.3":0.03721,"11.0-11.2":0.43255,"11.3-11.4":0.01395,"12.0-12.1":0.00465,"12.2-12.5":0.1093,"13.0-13.1":0,"13.2":0.01163,"13.3":0.00465,"13.4-13.7":0.02093,"14.0-14.4":0.03488,"14.5-14.8":0.04419,"15.0-15.1":0.03721,"15.2-15.3":0.03023,"15.4":0.03256,"15.5":0.03488,"15.6-15.8":0.50464,"16.0":0.06279,"16.1":0.11628,"16.2":0.06046,"16.3":0.11163,"16.4":0.02791,"16.5":0.04651,"16.6-16.7":0.68138,"17.0":0.05814,"17.1":0.06977,"17.2":0.05116,"17.3":0.07209,"17.4":0.1186,"17.5":0.22558,"17.6-17.7":0.55348,"18.0":0.12325,"18.1":0.26046,"18.2":0.13953,"18.3":0.45348,"18.4":0.23255,"18.5-18.7":16.23928,"26.0":1.11394,"26.1":1.01626},P:{"20":0.01101,"21":0.02202,"22":0.02202,"23":0.02202,"24":0.02202,"25":0.02202,"26":0.07708,"27":0.05506,"28":0.30831,"29":3.78786,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.01101,"17.0":0.01101,"19.0":0.01101},I:{"0":0.02137,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.14448,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.03616,"11":0.01033,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0214},H:{"0":0},L:{"0":28.08074},R:{_:"0"},M:{"0":0.40133}};
Index: de_modules/caniuse-lite/data/regions/GD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0558,"103":0.00507,"115":0.10653,"134":0.00507,"136":0.08117,"140":0.02029,"141":0.01015,"142":0.01015,"143":0.05073,"144":0.28409,"145":0.3196,"146":0.01522,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 137 138 139 147 148 3.5 3.6"},D:{"49":0.02537,"69":0.0761,"73":0.00507,"76":0.03044,"79":0.01015,"93":0.02537,"103":0.13697,"104":0.59354,"108":0.00507,"109":0.23336,"111":0.06088,"115":0.03044,"116":0.06088,"119":0.01015,"121":0.02029,"122":0.01522,"123":0.00507,"125":2.19661,"126":0.17756,"128":0.0761,"130":0.03044,"131":0.01015,"132":0.09131,"133":0.71529,"135":0.01015,"136":0.00507,"137":0.05073,"138":0.07102,"139":0.6392,"140":1.17186,"141":4.43888,"142":16.8728,"143":0.06088,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 74 75 77 78 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 105 106 107 110 112 113 114 117 118 120 124 127 129 134 144 145 146"},F:{"85":0.01015,"95":0.01015,"122":0.08624,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00507,"97":0.00507,"109":0.00507,"114":0.25365,"122":0.02029,"136":0.02537,"138":0.04566,"140":0.02029,"141":1.51175,"142":7.43195,"143":0.01015,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 135 137 139"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.4 17.5 18.0","13.1":0.01015,"14.1":0.08117,"15.6":0.03044,"16.3":0.00507,"16.4":0.00507,"16.5":0.00507,"16.6":0.19785,"17.0":0.44135,"17.1":0.20799,"17.2":0.02537,"17.3":0.00507,"17.6":0.16741,"18.1":0.02029,"18.2":0.02537,"18.3":0.48701,"18.4":0.04566,"18.5-18.6":0.1319,"26.0":1.56248,"26.1":0.7711,"26.2":0.02537},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00174,"5.0-5.1":0,"6.0-6.1":0.00695,"7.0-7.1":0.00521,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01563,"10.0-10.2":0.00174,"10.3":0.02779,"11.0-11.2":0.32304,"11.3-11.4":0.01042,"12.0-12.1":0.00347,"12.2-12.5":0.08163,"13.0-13.1":0,"13.2":0.00868,"13.3":0.00347,"13.4-13.7":0.01563,"14.0-14.4":0.02605,"14.5-14.8":0.033,"15.0-15.1":0.02779,"15.2-15.3":0.02258,"15.4":0.02431,"15.5":0.02605,"15.6-15.8":0.37688,"16.0":0.04689,"16.1":0.08684,"16.2":0.04516,"16.3":0.08336,"16.4":0.02084,"16.5":0.03474,"16.6-16.7":0.50887,"17.0":0.04342,"17.1":0.0521,"17.2":0.03821,"17.3":0.05384,"17.4":0.08858,"17.5":0.16847,"17.6-17.7":0.41335,"18.0":0.09205,"18.1":0.19452,"18.2":0.10421,"18.3":0.33867,"18.4":0.17368,"18.5-18.7":12.12785,"26.0":0.83191,"26.1":0.75897},P:{"4":0.0429,"21":0.02145,"24":0.1287,"25":0.01073,"27":0.09653,"28":0.10725,"29":2.87439,_:"20 22 23 26 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","5.0-5.4":0.01073,"7.2-7.4":0.03218,"16.0":0.01073},I:{"0":0.00984,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.44343,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.13697,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00493},H:{"0":0},L:{"0":33.38738},R:{_:"0"},M:{"0":0.24635}};
Index: de_modules/caniuse-lite/data/regions/GE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01038,"52":0.00519,"68":0.01038,"78":0.03634,"113":0.03634,"115":0.08826,"118":0.00519,"125":0.02077,"128":0.00519,"135":0.00519,"136":0.01038,"139":0.00519,"140":0.01558,"141":0.00519,"142":0.01558,"143":0.01038,"144":0.33748,"145":0.44651,"146":0.00519,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 119 120 121 122 123 124 126 127 129 130 131 132 133 134 137 138 147 148 3.5 3.6"},D:{"38":0.02077,"47":0.05192,"49":0.01558,"62":0.00519,"66":0.01558,"68":0.00519,"69":0.01558,"70":0.01038,"72":0.00519,"73":0.0623,"75":0.00519,"76":0.00519,"78":0.01038,"79":0.20768,"81":0.00519,"83":0.15057,"84":0.00519,"86":0.00519,"87":0.59708,"88":0.03115,"90":0.00519,"91":0.05192,"92":0.00519,"93":0.00519,"94":0.10903,"95":0.01038,"98":0.03634,"100":0.02596,"101":0.03115,"102":0.03115,"103":0.02596,"104":0.03634,"105":0.00519,"106":0.01038,"107":0.00519,"108":0.14538,"109":2.22737,"110":0.05192,"111":0.76322,"112":5.79427,"113":0.03634,"114":0.03115,"116":0.04673,"118":0.00519,"119":0.02596,"120":1.84316,"121":0.01038,"122":0.05711,"123":0.01558,"124":0.05192,"125":0.40498,"126":1.298,"127":0.0675,"128":0.03634,"129":0.04154,"130":0.03115,"131":0.09346,"132":0.05711,"133":0.15057,"134":0.08826,"135":0.05711,"136":0.05711,"137":0.1921,"138":0.33229,"139":0.29075,"140":0.35825,"141":5.21277,"142":15.63311,"143":0.04673,"144":0.00519,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 67 71 74 77 80 85 89 96 97 99 115 117 145 146"},F:{"28":0.00519,"36":0.03115,"46":0.18172,"79":0.01038,"85":0.00519,"86":0.01558,"89":0.00519,"92":0.02596,"93":0.00519,"95":0.20768,"119":0.00519,"120":0.00519,"122":0.53478,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 87 88 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.04154,"16":0.00519,"18":0.02596,"92":0.01038,"109":0.03115,"114":0.14018,"124":0.00519,"128":0.00519,"130":0.00519,"131":0.01558,"132":0.00519,"133":0.01558,"134":0.02077,"135":0.01038,"136":0.01038,"137":0.01558,"138":0.04154,"139":0.02596,"140":0.07269,"141":0.56074,"142":3.08405,_:"12 13 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 129 143"},E:{"14":0.00519,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0","13.1":0.01038,"14.1":0.01038,"15.4":0.00519,"15.5":0.02077,"15.6":0.04154,"16.1":0.02077,"16.2":0.02596,"16.3":0.01038,"16.4":0.00519,"16.5":0.01558,"16.6":0.07788,"17.0":0.00519,"17.1":0.08826,"17.2":0.01038,"17.3":0.01038,"17.4":0.02596,"17.5":0.04154,"17.6":0.08307,"18.0":0.02077,"18.1":0.02077,"18.2":0.02077,"18.3":0.0675,"18.4":0.03115,"18.5-18.6":0.12461,"26.0":0.15576,"26.1":0.14538,"26.2":0.01038},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0.004,"7.0-7.1":0.003,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.009,"10.0-10.2":0.001,"10.3":0.016,"11.0-11.2":0.18605,"11.3-11.4":0.006,"12.0-12.1":0.002,"12.2-12.5":0.04701,"13.0-13.1":0,"13.2":0.005,"13.3":0.002,"13.4-13.7":0.009,"14.0-14.4":0.015,"14.5-14.8":0.01901,"15.0-15.1":0.016,"15.2-15.3":0.013,"15.4":0.014,"15.5":0.015,"15.6-15.8":0.21706,"16.0":0.02701,"16.1":0.05001,"16.2":0.02601,"16.3":0.04801,"16.4":0.012,"16.5":0.02001,"16.6-16.7":0.29308,"17.0":0.02501,"17.1":0.03001,"17.2":0.02201,"17.3":0.03101,"17.4":0.05101,"17.5":0.09703,"17.6-17.7":0.23806,"18.0":0.05301,"18.1":0.11203,"18.2":0.06002,"18.3":0.19505,"18.4":0.10003,"18.5-18.7":6.9849,"26.0":0.47913,"26.1":0.43712},P:{"4":0.72717,"20":0.01069,"22":0.01069,"23":0.01069,"24":0.02139,"25":0.04277,"26":0.04277,"27":0.09624,"28":0.1711,"29":0.82341,_:"21 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.03208,"6.2-6.4":0.07486,"7.2-7.4":0.3422,"8.2":0.03208},I:{"0":0.04802,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.2645,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.04673,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01924},H:{"0":0},L:{"0":38.98246},R:{_:"0"},M:{"0":0.11542}};
Index: de_modules/caniuse-lite/data/regions/GF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00907,"34":0.00454,"84":0.01361,"92":0.00454,"103":0.00907,"112":0.00907,"114":0.00454,"115":0.74828,"118":0.00454,"119":0.04989,"128":0.12698,"130":0.00907,"132":0.02268,"133":0.01361,"134":0.03628,"136":0.00454,"139":0.05442,"140":0.16326,"141":0.05442,"142":0.00907,"143":0.08163,"144":1.39225,"145":1.35143,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 116 117 120 121 122 123 124 125 126 127 129 131 135 137 138 146 147 148 3.5 3.6"},D:{"49":0.01361,"55":0.00907,"69":0.00907,"75":0.00454,"79":0.01814,"86":0.00907,"87":0.00907,"88":0.05896,"89":0.00907,"95":0.00907,"98":0.04535,"104":0.11791,"108":0.02721,"109":0.12698,"110":0.00907,"111":0.04082,"112":0.00454,"114":0.00454,"115":0.00907,"116":0.00907,"119":0.06803,"122":0.04989,"124":0.00907,"125":0.32199,"126":0.05442,"127":0.01814,"128":0.01361,"130":0.03175,"131":0.03175,"132":0.01814,"133":0.05896,"134":0.02268,"135":0.03628,"136":0.01814,"137":0.04535,"138":0.17233,"139":0.09977,"140":0.71653,"141":3.94999,"142":14.92469,"143":0.00454,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 80 81 83 84 85 90 91 92 93 94 96 97 99 100 101 102 103 105 106 107 113 117 118 120 121 123 129 144 145 146"},F:{"46":0.01361,"92":0.01361,"109":0.00454,"120":0.02268,"122":0.97503,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00907,"114":0.27664,"125":0.00907,"128":0.04989,"129":0.00454,"131":0.12245,"134":0.02721,"136":0.00454,"139":0.00907,"140":0.02721,"141":1.75958,"142":5.80934,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 126 127 130 132 133 135 137 138 143"},E:{"14":0.00454,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.1 16.4 16.5 17.0","14.1":1.24713,"15.5":0.00454,"15.6":0.13152,"16.0":0.00454,"16.2":0.01361,"16.3":0.02721,"16.6":0.06803,"17.1":0.06349,"17.2":0.01361,"17.3":0.00454,"17.4":0.02268,"17.5":0.03628,"17.6":0.14512,"18.0":0.00907,"18.1":0.01814,"18.2":0.00454,"18.3":0.09977,"18.4":0.01814,"18.5-18.6":0.17233,"26.0":0.34466,"26.1":0.29931,"26.2":0.01361},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00144,"5.0-5.1":0,"6.0-6.1":0.00576,"7.0-7.1":0.00432,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01296,"10.0-10.2":0.00144,"10.3":0.02304,"11.0-11.2":0.26789,"11.3-11.4":0.00864,"12.0-12.1":0.00288,"12.2-12.5":0.06769,"13.0-13.1":0,"13.2":0.0072,"13.3":0.00288,"13.4-13.7":0.01296,"14.0-14.4":0.0216,"14.5-14.8":0.02737,"15.0-15.1":0.02304,"15.2-15.3":0.01872,"15.4":0.02016,"15.5":0.0216,"15.6-15.8":0.31254,"16.0":0.03889,"16.1":0.07201,"16.2":0.03745,"16.3":0.06913,"16.4":0.01728,"16.5":0.02881,"16.6-16.7":0.42201,"17.0":0.03601,"17.1":0.04321,"17.2":0.03169,"17.3":0.04465,"17.4":0.07345,"17.5":0.13971,"17.6-17.7":0.34279,"18.0":0.07634,"18.1":0.16131,"18.2":0.08642,"18.3":0.28086,"18.4":0.14403,"18.5-18.7":10.05755,"26.0":0.6899,"26.1":0.62941},P:{"23":0.01053,"24":0.04214,"25":0.0316,"26":0.12642,"27":0.02107,"28":0.35818,"29":2.96027,_:"4 20 21 22 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04214,"8.2":0.01053,"13.0":0.02107},I:{"0":0.00546,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.31156,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.04373},O:{_:"0"},H:{"0":0},L:{"0":39.66417},R:{_:"0"},M:{"0":0.32796}};
Index: de_modules/caniuse-lite/data/regions/GG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.03986,"136":0.00362,"140":0.00725,"144":0.24643,"145":0.59434,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"49":0.00362,"69":0.00362,"79":0.02174,"83":0.0145,"103":0.02537,"109":0.88788,"111":0.00362,"113":0.00725,"114":0.00362,"116":0.04349,"117":0.00362,"119":0.00362,"122":0.00725,"123":0.00362,"125":0.07248,"126":0.01087,"128":0.04711,"130":0.01087,"131":0.01087,"132":0.0145,"133":0.00362,"134":0.00725,"135":0.00362,"136":0.00362,"137":0.10872,"138":0.13409,"139":0.47112,"140":0.47837,"141":3.83419,"142":8.73022,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 115 118 120 121 124 127 129 143 144 145 146"},F:{"122":0.453,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01087,"111":0.00362,"135":0.00362,"139":0.0145,"140":0.02174,"141":0.81902,"142":5.74404,"143":0.00725,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138"},E:{"14":0.00362,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 16.0 16.5 26.2","12.1":0.01087,"13.1":0.04711,"14.1":0.02899,"15.4":0.23918,"15.5":0.06523,"15.6":0.1667,"16.1":0.02174,"16.2":0.03986,"16.3":0.0145,"16.4":0.04349,"16.6":0.50011,"17.0":0.00725,"17.1":0.59796,"17.2":0.00362,"17.3":0.05074,"17.4":0.05074,"17.5":0.01812,"17.6":0.2718,"18.0":0.01087,"18.1":0.09785,"18.2":0.00725,"18.3":0.24643,"18.4":0.01087,"18.5-18.6":0.14858,"26.0":0.30442,"26.1":0.42401},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00267,"5.0-5.1":0,"6.0-6.1":0.01067,"7.0-7.1":0.008,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.024,"10.0-10.2":0.00267,"10.3":0.04267,"11.0-11.2":0.496,"11.3-11.4":0.016,"12.0-12.1":0.00533,"12.2-12.5":0.12533,"13.0-13.1":0,"13.2":0.01333,"13.3":0.00533,"13.4-13.7":0.024,"14.0-14.4":0.04,"14.5-14.8":0.05067,"15.0-15.1":0.04267,"15.2-15.3":0.03467,"15.4":0.03733,"15.5":0.04,"15.6-15.8":0.57867,"16.0":0.072,"16.1":0.13333,"16.2":0.06933,"16.3":0.128,"16.4":0.032,"16.5":0.05333,"16.6-16.7":0.78133,"17.0":0.06667,"17.1":0.08,"17.2":0.05867,"17.3":0.08267,"17.4":0.136,"17.5":0.25867,"17.6-17.7":0.63467,"18.0":0.14133,"18.1":0.29867,"18.2":0.16,"18.3":0.52,"18.4":0.26667,"18.5-18.7":18.6213,"26.0":1.27733,"26.1":1.16533},P:{"21":0.01109,"26":0.01109,"27":0.02218,"28":0.22179,"29":8.18405,_:"4 20 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","9.2":0.02218},I:{"0":0.04456,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.00638,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00725,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":28.64839},R:{_:"0"},M:{"0":0.3315}};
Index: de_modules/caniuse-lite/data/regions/GH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00342,"56":0.00342,"68":0.00342,"72":0.00684,"78":0.00342,"101":0.00342,"112":0.00684,"115":0.09576,"127":0.01026,"128":0.00684,"134":0.00342,"135":0.00342,"136":0.00342,"137":0.00342,"138":0.01026,"139":0.00342,"140":0.02736,"141":0.01026,"142":0.02052,"143":0.03762,"144":0.50958,"145":0.50616,"146":0.01026,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 147 148 3.5 3.6"},D:{"47":0.00342,"49":0.00342,"50":0.00342,"54":0.00342,"55":0.00342,"58":0.00342,"63":0.00342,"64":0.00684,"65":0.00684,"67":0.00342,"68":0.00684,"69":0.00684,"70":0.02394,"71":0.00684,"72":0.00342,"73":0.00342,"74":0.02052,"75":0.01026,"76":0.02394,"77":0.00684,"79":0.02736,"80":0.01368,"81":0.00342,"83":0.01026,"84":0.00342,"85":0.00342,"86":0.02394,"87":0.02394,"88":0.00342,"89":0.00684,"90":0.00342,"91":0.00342,"92":0.00342,"93":0.02736,"94":0.01026,"95":0.01026,"96":0.00342,"97":0.01026,"98":0.01026,"100":0.00342,"101":0.01026,"102":0.00342,"103":0.09576,"104":0.00342,"105":0.3591,"106":0.00684,"107":0.00342,"108":0.00342,"109":0.8208,"110":0.00684,"111":0.02052,"113":0.0171,"114":0.14364,"115":0.01368,"116":0.07866,"117":0.00342,"118":0.00684,"119":0.02052,"120":0.01026,"121":0.00342,"122":0.0342,"123":0.01026,"124":0.02394,"125":0.22914,"126":0.1881,"127":0.00684,"128":0.04788,"129":0.00684,"130":0.02394,"131":0.0684,"132":0.03762,"133":0.03078,"134":0.06498,"135":0.0513,"136":0.06156,"137":0.08208,"138":0.30438,"139":0.21204,"140":0.46512,"141":2.9583,"142":7.46244,"143":0.03078,"144":0.00342,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 53 56 57 59 60 61 62 66 78 99 112 145 146"},F:{"42":0.00342,"79":0.01026,"86":0.00342,"87":0.00342,"88":0.00342,"89":0.00342,"90":0.00684,"91":0.01368,"92":0.09576,"93":0.0171,"95":0.03762,"109":0.00342,"113":0.01026,"114":0.00342,"115":0.00684,"116":0.00342,"119":0.00684,"120":0.0171,"122":0.34542,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01368,"13":0.00342,"14":0.00684,"15":0.0171,"16":0.00684,"17":0.00684,"18":0.06156,"84":0.00684,"89":0.01026,"90":0.03762,"92":0.09918,"100":0.03078,"103":0.00342,"109":0.01368,"111":0.01368,"112":0.00342,"114":0.0342,"115":0.00342,"122":0.02394,"123":0.00342,"126":0.00342,"127":0.00342,"128":0.00342,"129":0.00342,"130":0.00342,"131":0.00684,"132":0.00342,"133":0.00684,"134":0.00684,"135":0.00684,"136":0.01026,"137":0.01368,"138":0.0342,"139":0.0513,"140":0.09918,"141":0.4959,"142":2.38716,"143":0.01026,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 113 116 117 118 119 120 121 124 125"},E:{"11":0.00684,"13":0.00342,"14":0.00342,_:"0 4 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5","5.1":0.00342,"11.1":0.01026,"12.1":0.00342,"13.1":0.0513,"14.1":0.01368,"15.1":0.00342,"15.6":0.08208,"16.1":0.00342,"16.3":0.00342,"16.6":0.08208,"17.0":0.01026,"17.1":0.01026,"17.2":0.00342,"17.3":0.00684,"17.4":0.00342,"17.5":0.00684,"17.6":0.06498,"18.0":0.00684,"18.1":0.00684,"18.2":0.00684,"18.3":0.0171,"18.4":0.01368,"18.5-18.6":0.04788,"26.0":0.14022,"26.1":0.17442,"26.2":0.00342},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00125,"5.0-5.1":0,"6.0-6.1":0.00502,"7.0-7.1":0.00376,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01129,"10.0-10.2":0.00125,"10.3":0.02008,"11.0-11.2":0.23339,"11.3-11.4":0.00753,"12.0-12.1":0.00251,"12.2-12.5":0.05898,"13.0-13.1":0,"13.2":0.00627,"13.3":0.00251,"13.4-13.7":0.01129,"14.0-14.4":0.01882,"14.5-14.8":0.02384,"15.0-15.1":0.02008,"15.2-15.3":0.01631,"15.4":0.01757,"15.5":0.01882,"15.6-15.8":0.27229,"16.0":0.03388,"16.1":0.06274,"16.2":0.03262,"16.3":0.06023,"16.4":0.01506,"16.5":0.0251,"16.6-16.7":0.36766,"17.0":0.03137,"17.1":0.03764,"17.2":0.02761,"17.3":0.0389,"17.4":0.064,"17.5":0.12172,"17.6-17.7":0.29864,"18.0":0.0665,"18.1":0.14054,"18.2":0.07529,"18.3":0.24469,"18.4":0.12548,"18.5-18.7":8.76231,"26.0":0.60105,"26.1":0.54835},P:{"4":0.1036,"20":0.01036,"21":0.01036,"22":0.03108,"23":0.01036,"24":0.16576,"25":0.23828,"26":0.04144,"27":0.3108,"28":0.70448,"29":0.61124,"5.0-5.4":0.03108,_:"6.2-6.4 8.2 10.1 12.0 14.0 15.0 18.0","7.2-7.4":0.08288,"9.2":0.01036,"11.1-11.2":0.03108,"13.0":0.01036,"16.0":0.01036,"17.0":0.01036,"19.0":0.01036},I:{"0":0.05914,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":9.25736,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02394,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00658,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00658},O:{"0":0.28952},H:{"0":0.56},L:{"0":51.88822},R:{_:"0"},M:{"0":0.27636}};
Index: de_modules/caniuse-lite/data/regions/GI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00547,"45":0.00547,"115":0.02189,"134":0.00547,"135":0.00547,"136":0.03284,"138":0.02737,"139":0.00547,"143":0.07662,"144":0.41048,"145":0.98514,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 137 140 141 142 146 147 148 3.5 3.6"},D:{"43":0.01642,"47":0.00547,"69":0.01642,"70":0.00547,"79":0.10399,"109":0.07115,"111":0.00547,"112":0.01642,"116":0.09851,"118":0.00547,"119":0.02737,"122":0.00547,"125":0.19156,"126":0.10399,"127":0.05473,"128":0.04378,"129":0.04926,"130":0.02189,"131":0.41048,"132":0.04926,"133":0.00547,"134":0.01642,"135":0.22987,"136":0.6294,"137":0.0602,"138":0.25723,"139":0.12041,"140":1.25332,"141":8.03436,"142":19.86152,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 113 114 115 117 120 121 123 124 143 144 145 146"},F:{"92":0.05473,"114":0.13683,"119":0.27365,"121":0.01095,"122":0.87021,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01642,"129":0.00547,"131":0.06568,"133":0.01642,"134":0.01642,"135":0.01642,"136":0.05473,"138":0.00547,"139":0.00547,"140":0.04926,"141":0.71149,"142":7.3995,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 132 137 143"},E:{"14":0.01642,"15":0.02737,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 16.5 17.0 18.0 18.1","14.1":0.00547,"15.4":0.00547,"15.5":0.00547,"15.6":0.56919,"16.1":0.00547,"16.2":0.00547,"16.3":0.03831,"16.4":0.00547,"16.6":0.24629,"17.1":0.30649,"17.2":0.02189,"17.3":0.00547,"17.4":0.01095,"17.5":0.03284,"17.6":0.13135,"18.2":0.07115,"18.3":0.13683,"18.4":0.38858,"18.5-18.6":0.15872,"26.0":0.24629,"26.1":0.51994,"26.2":0.00547},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00205,"5.0-5.1":0,"6.0-6.1":0.0082,"7.0-7.1":0.00615,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01845,"10.0-10.2":0.00205,"10.3":0.0328,"11.0-11.2":0.38135,"11.3-11.4":0.0123,"12.0-12.1":0.0041,"12.2-12.5":0.09636,"13.0-13.1":0,"13.2":0.01025,"13.3":0.0041,"13.4-13.7":0.01845,"14.0-14.4":0.03075,"14.5-14.8":0.03896,"15.0-15.1":0.0328,"15.2-15.3":0.02665,"15.4":0.0287,"15.5":0.03075,"15.6-15.8":0.44491,"16.0":0.05536,"16.1":0.10251,"16.2":0.05331,"16.3":0.09841,"16.4":0.0246,"16.5":0.04101,"16.6-16.7":0.60073,"17.0":0.05126,"17.1":0.06151,"17.2":0.04511,"17.3":0.06356,"17.4":0.10456,"17.5":0.19888,"17.6-17.7":0.48797,"18.0":0.10866,"18.1":0.22963,"18.2":0.12302,"18.3":0.3998,"18.4":0.20503,"18.5-18.7":14.31709,"26.0":0.98208,"26.1":0.89597},P:{"4":0.03149,"27":0.02099,"28":0.06297,"29":2.91784,_:"20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.02099,"16.0":0.0105},I:{"0":0.00904,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.09054,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02463,"10":0.00821,_:"6 7 9 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.1675},H:{"0":0},L:{"0":21.76678},R:{_:"0"},M:{"0":0.13128}};
Index: de_modules/caniuse-lite/data/regions/GL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"66":0.00446,"78":0.00446,"115":0.01783,"143":0.00892,"144":0.73111,"145":2.02393,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"38":0.00446,"79":0.02675,"103":0.01337,"108":0.00446,"109":0.29869,"114":0.01337,"116":0.12037,"122":0.02675,"125":0.14711,"127":0.00892,"128":0.07133,"129":0.00892,"132":0.01783,"133":0.00446,"135":0.00892,"136":0.01337,"137":0.01337,"138":0.21844,"139":1.05209,"140":0.2764,"141":3.89183,"142":11.6755,"143":0.02229,"144":0.00892,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 110 111 112 113 115 117 118 119 120 121 123 124 126 130 131 134 145 146"},F:{"46":0.04458,"77":0.01783,"79":0.00892,"92":0.01783,"93":0.01783,"120":0.00446,"122":0.55725,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00892,"92":0.01783,"109":0.01337,"116":0.01337,"134":0.00892,"135":0.01337,"136":0.00446,"138":0.04458,"139":0.00446,"140":0.02675,"141":0.50375,"142":6.93665,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 137 143"},E:{"9":0.00446,_:"0 4 5 6 7 8 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 15.2-15.3 15.4 15.5 16.0 16.1 16.4 16.5 17.0 18.1","12.1":0.00446,"14.1":0.14711,"15.1":0.32098,"15.6":0.13374,"16.2":0.00446,"16.3":0.03566,"16.6":0.20061,"17.1":0.16495,"17.2":0.02675,"17.3":0.05795,"17.4":0.02675,"17.5":0.01337,"17.6":0.20953,"18.0":0.00892,"18.2":0.06687,"18.3":0.20061,"18.4":0.12928,"18.5-18.6":0.28531,"26.0":0.68653,"26.1":0.74449,"26.2":0.00446},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00281,"5.0-5.1":0,"6.0-6.1":0.01123,"7.0-7.1":0.00843,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02528,"10.0-10.2":0.00281,"10.3":0.04494,"11.0-11.2":0.52242,"11.3-11.4":0.01685,"12.0-12.1":0.00562,"12.2-12.5":0.13201,"13.0-13.1":0,"13.2":0.01404,"13.3":0.00562,"13.4-13.7":0.02528,"14.0-14.4":0.04213,"14.5-14.8":0.05337,"15.0-15.1":0.04494,"15.2-15.3":0.03651,"15.4":0.03932,"15.5":0.04213,"15.6-15.8":0.60948,"16.0":0.07583,"16.1":0.14043,"16.2":0.07303,"16.3":0.13482,"16.4":0.0337,"16.5":0.05617,"16.6-16.7":0.82294,"17.0":0.07022,"17.1":0.08426,"17.2":0.06179,"17.3":0.08707,"17.4":0.14324,"17.5":0.27244,"17.6-17.7":0.66847,"18.0":0.14886,"18.1":0.31457,"18.2":0.16852,"18.3":0.54769,"18.4":0.28087,"18.5-18.7":19.61305,"26.0":1.34536,"26.1":1.2274},P:{"4":0.13447,"24":0.02069,"26":0.02069,"28":0.03103,"29":2.7825,_:"20 21 22 23 25 27 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.04138,"7.2-7.4":0.08275,"19.0":0.06206},I:{"0":0.0166,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.76236,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00892,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00554,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0665},H:{"0":0},L:{"0":25.02116},R:{_:"0"},M:{"0":0.08867}};
Index: de_modules/caniuse-lite/data/regions/GM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00636,"43":0.00636,"46":0.00318,"50":0.00318,"65":0.00636,"68":0.00636,"72":0.03179,"73":0.00318,"78":0.00636,"100":0.00318,"102":0.00318,"112":0.00954,"115":0.03497,"127":0.00318,"128":0.00318,"132":0.00318,"140":0.02861,"142":0.00318,"143":0.01272,"144":0.91873,"145":1.36061,"146":0.00954,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 45 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 69 70 71 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 133 134 135 136 137 138 139 141 147 148 3.5 3.6"},D:{"43":0.00318,"53":0.01907,"54":0.00636,"55":0.00318,"60":0.02861,"64":0.02861,"68":0.0159,"69":0.01907,"70":0.01272,"71":0.0159,"72":0.02861,"73":0.00954,"74":0.00954,"75":0.00636,"76":0.00954,"77":0.03497,"78":0.02225,"79":0.01272,"80":0.02543,"81":0.01272,"83":0.02861,"84":0.00636,"85":0.00954,"86":0.02225,"87":0.02225,"88":0.01272,"89":0.00318,"90":0.02225,"91":0.00954,"93":0.00954,"98":0.01907,"100":0.01272,"103":0.06994,"104":0.0159,"105":0.03815,"106":0.02543,"107":0.00954,"109":0.20981,"111":0.03497,"112":0.00636,"114":0.00318,"115":0.00318,"116":0.38784,"117":0.00318,"118":0.00318,"119":0.0159,"120":0.05086,"122":0.14623,"123":0.00318,"124":0.00636,"125":0.20028,"126":0.07948,"127":0.0159,"128":0.0159,"129":0.00318,"131":0.0159,"132":0.01272,"133":0.06358,"134":0.02225,"135":0.03179,"136":0.0604,"137":0.01907,"138":0.23207,"139":0.07312,"140":0.25114,"141":3.29662,"142":6.47244,"143":0.01272,"144":0.00636,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 56 57 58 59 61 62 63 65 66 67 92 94 95 96 97 99 101 102 108 110 113 121 130 145 146"},F:{"42":0.00636,"46":0.0159,"54":0.00318,"55":0.00636,"56":0.00318,"72":0.00636,"73":0.00954,"74":0.00636,"75":0.00954,"76":0.00636,"77":0.00636,"79":0.00318,"86":0.00954,"89":0.01272,"92":0.00636,"113":0.00636,"120":0.00636,"122":0.31154,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 47 48 49 50 51 52 53 57 58 60 62 63 64 65 66 67 68 69 70 71 78 80 81 82 83 84 85 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00318,"18":0.02543,"80":0.00318,"84":0.00954,"86":0.00954,"88":0.00318,"90":0.02543,"91":0.00954,"92":0.01907,"98":0.00318,"100":0.0604,"103":0.00318,"109":0.02225,"112":0.00318,"114":0.1971,"116":0.00318,"120":0.00636,"122":0.00636,"125":0.00636,"129":0.00636,"130":0.00636,"131":0.00636,"134":0.00636,"135":0.0159,"136":0.02861,"137":0.00318,"138":0.00954,"139":0.01272,"140":0.04451,"141":0.32108,"142":2.71805,_:"12 13 14 15 17 79 81 83 85 87 89 93 94 95 96 97 99 101 102 104 105 106 107 108 110 111 113 115 117 118 119 121 123 124 126 127 128 132 133 143"},E:{"11":0.00636,"14":0.01272,_:"0 4 5 6 7 8 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.5 17.2 17.4 17.5 18.0 18.1 18.2 18.4","9.1":0.0604,"13.1":0.04769,"14.1":0.02543,"15.5":0.00318,"15.6":0.08265,"16.3":0.00318,"16.4":0.00318,"16.6":0.09855,"17.0":0.07948,"17.1":0.0763,"17.3":0.13988,"17.6":0.04451,"18.3":0.02543,"18.5-18.6":0.06358,"26.0":0.3179,"26.1":0.18438,"26.2":0.00636},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00125,"5.0-5.1":0,"6.0-6.1":0.005,"7.0-7.1":0.00375,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01125,"10.0-10.2":0.00125,"10.3":0.02,"11.0-11.2":0.23255,"11.3-11.4":0.0075,"12.0-12.1":0.0025,"12.2-12.5":0.05876,"13.0-13.1":0,"13.2":0.00625,"13.3":0.0025,"13.4-13.7":0.01125,"14.0-14.4":0.01875,"14.5-14.8":0.02376,"15.0-15.1":0.02,"15.2-15.3":0.01625,"15.4":0.0175,"15.5":0.01875,"15.6-15.8":0.27131,"16.0":0.03376,"16.1":0.06251,"16.2":0.03251,"16.3":0.06001,"16.4":0.015,"16.5":0.02501,"16.6-16.7":0.36633,"17.0":0.03126,"17.1":0.03751,"17.2":0.02751,"17.3":0.03876,"17.4":0.06376,"17.5":0.12128,"17.6-17.7":0.29757,"18.0":0.06627,"18.1":0.14003,"18.2":0.07502,"18.3":0.24381,"18.4":0.12503,"18.5-18.7":8.73077,"26.0":0.59889,"26.1":0.54638},P:{"4":0.02083,"21":0.03124,"22":0.01041,"23":0.01041,"24":0.19787,"25":0.0729,"26":0.06249,"27":0.12497,"28":0.53112,"29":1.17681,_:"20 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.01041,"6.2-6.4":0.01041,"7.2-7.4":0.04166,"8.2":0.01041,"19.0":0.02083},I:{"0":0.00681,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":2.01226,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.01907,_:"6 7 8 9 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.08185},H:{"0":0.15},L:{"0":60.27477},R:{_:"0"},M:{"0":0.40244}};
Index: de_modules/caniuse-lite/data/regions/GN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0025,"45":0.0025,"46":0.0025,"50":0.005,"55":0.0025,"57":0.00999,"60":0.0025,"62":0.0025,"70":0.005,"72":0.01499,"74":0.0025,"79":0.0025,"80":0.0025,"82":0.0025,"87":0.0025,"91":0.0025,"94":0.005,"100":0.0025,"115":0.02248,"117":0.005,"123":0.0025,"127":0.00749,"128":0.005,"134":0.0025,"135":0.0025,"136":0.02498,"138":0.00749,"140":0.005,"142":0.00999,"143":0.05496,"144":0.23981,"145":0.51459,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 47 48 49 51 52 53 54 56 58 59 61 63 64 65 66 67 68 69 71 73 75 76 77 78 81 83 84 85 86 88 89 90 92 93 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 118 119 120 121 122 124 125 126 129 130 131 132 133 137 139 141 146 147 148 3.5 3.6"},D:{"19":0.0025,"40":0.0025,"43":0.0025,"46":0.0025,"48":0.01249,"49":0.00999,"57":0.0025,"63":0.0025,"64":0.00999,"66":0.005,"68":0.00749,"69":0.03747,"71":0.005,"74":0.005,"75":0.005,"77":0.01249,"78":0.01499,"79":0.00749,"80":0.005,"81":0.00749,"86":0.01499,"87":0.01499,"88":0.0025,"89":0.0025,"90":0.005,"91":0.00749,"93":0.00749,"94":0.00999,"95":0.0025,"98":0.0025,"103":0.01499,"104":0.0025,"106":0.0025,"107":0.0025,"108":0.0025,"109":0.05745,"111":0.01249,"113":0.02248,"114":0.005,"115":0.0025,"116":0.00999,"117":0.005,"118":0.0025,"119":0.01749,"120":0.01499,"121":0.00999,"122":0.01499,"124":0.01499,"125":0.11491,"126":0.06745,"127":0.01249,"128":0.09742,"129":0.005,"130":0.005,"131":0.06994,"132":0.01249,"133":0.07494,"134":0.04746,"135":0.02248,"136":0.04746,"137":0.04247,"138":0.16237,"139":0.1274,"140":0.26729,"141":1.77358,"142":4.06924,"143":0.005,"144":0.00999,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 47 50 51 52 53 54 55 56 58 59 60 61 62 65 67 70 72 73 76 83 84 85 92 96 97 99 100 101 102 105 110 112 123 145 146"},F:{"36":0.005,"37":0.0025,"42":0.0025,"48":0.005,"62":0.0025,"79":0.00999,"86":0.0025,"91":0.01249,"92":0.02998,"93":0.0025,"95":0.005,"112":0.0025,"113":0.005,"117":0.0025,"119":0.0025,"120":0.01998,"121":0.0025,"122":0.15488,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 115 116 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.005,"14":0.01499,"15":0.0025,"16":0.0025,"17":0.01249,"18":0.07994,"84":0.01998,"85":0.005,"89":0.00749,"90":0.04247,"92":0.10242,"95":0.005,"100":0.03247,"114":0.20484,"121":0.005,"122":0.04996,"124":0.0025,"125":0.0025,"128":0.0025,"129":0.0025,"130":0.0025,"131":0.00999,"132":0.005,"133":0.06495,"134":0.0025,"135":0.00749,"136":0.01249,"137":0.01499,"138":0.02748,"139":0.01249,"140":0.03997,"141":0.43465,"142":2.31065,_:"13 79 80 81 83 86 87 88 91 93 94 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 123 126 127 143"},E:{"11":0.00749,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.4 16.0 16.2 16.3 16.4 17.0 17.2 17.3 18.2","5.1":0.06745,"11.1":0.00749,"13.1":0.005,"14.1":0.0025,"15.2-15.3":0.00749,"15.5":0.005,"15.6":0.02998,"16.1":0.005,"16.5":0.0025,"16.6":0.01749,"17.1":0.00749,"17.4":0.005,"17.5":0.005,"17.6":0.06245,"18.0":0.03497,"18.1":0.31725,"18.3":0.01998,"18.4":0.00999,"18.5-18.6":0.03247,"26.0":0.05246,"26.1":0.09992,"26.2":0.00999},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00097,"5.0-5.1":0,"6.0-6.1":0.00388,"7.0-7.1":0.00291,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00872,"10.0-10.2":0.00097,"10.3":0.01551,"11.0-11.2":0.18028,"11.3-11.4":0.00582,"12.0-12.1":0.00194,"12.2-12.5":0.04556,"13.0-13.1":0,"13.2":0.00485,"13.3":0.00194,"13.4-13.7":0.00872,"14.0-14.4":0.01454,"14.5-14.8":0.01842,"15.0-15.1":0.01551,"15.2-15.3":0.0126,"15.4":0.01357,"15.5":0.01454,"15.6-15.8":0.21033,"16.0":0.02617,"16.1":0.04846,"16.2":0.0252,"16.3":0.04652,"16.4":0.01163,"16.5":0.01939,"16.6-16.7":0.28399,"17.0":0.02423,"17.1":0.02908,"17.2":0.02132,"17.3":0.03005,"17.4":0.04943,"17.5":0.09402,"17.6-17.7":0.23068,"18.0":0.05137,"18.1":0.10856,"18.2":0.05816,"18.3":0.18901,"18.4":0.09693,"18.5-18.7":6.76833,"26.0":0.46427,"26.1":0.42357},P:{"20":0.01019,"21":0.03056,"22":0.05093,"23":0.01019,"24":0.14261,"25":0.20373,"26":0.10186,"27":0.35652,"28":1.08995,"29":1.05939,_:"4 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 17.0 18.0","7.2-7.4":0.05093,"9.2":0.01019,"11.1-11.2":0.01019,"15.0":0.01019,"16.0":0.01019,"19.0":0.04075},I:{"0":0.04495,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.02531,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01998,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.0075,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.17255},O:{"0":1.04278},H:{"0":0.13},L:{"0":69.56217},R:{_:"0"},M:{"0":0.04501}};
Index: de_modules/caniuse-lite/data/regions/GP.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GP.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"112":0.00415,"115":0.24467,"126":0.02074,"127":0.00415,"128":0.01244,"136":0.01244,"137":0.01244,"140":0.24053,"141":0.00829,"142":0.01244,"143":0.07465,"144":1.43072,"145":2.45917,"146":0.00415,"147":0.00415,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 129 130 131 132 133 134 135 138 139 148 3.5 3.6"},D:{"47":0.00415,"65":0.00415,"79":0.00415,"88":0.00829,"97":0.00415,"102":0.01244,"103":0.02074,"108":0.00415,"109":0.34005,"111":0.00829,"116":0.14515,"119":0.02074,"120":0.01659,"122":0.05391,"123":0.00415,"124":0.00829,"125":0.17832,"126":0.05806,"127":0.03732,"128":0.2115,"129":0.00829,"130":0.18247,"131":0.10782,"132":0.01659,"133":0.02903,"134":0.01659,"135":0.02074,"136":0.0705,"137":0.02488,"138":0.24882,"139":0.29858,"140":0.30273,"141":3.76548,"142":12.76447,"143":0.02488,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 89 90 91 92 93 94 95 96 98 99 100 101 104 105 106 107 110 112 113 114 115 117 118 121 144 145 146"},F:{"46":0.00829,"92":0.02074,"93":0.01244,"95":0.02488,"120":0.00415,"122":0.44788,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.02074,"89":0.00415,"109":0.00829,"110":0.00415,"114":0.02074,"120":0.00415,"123":0.00415,"125":0.00415,"129":0.00415,"130":0.01244,"131":0.00829,"132":0.14515,"134":0.01244,"136":0.00415,"137":0.01244,"138":0.00829,"139":0.00829,"140":0.01659,"141":0.55155,"142":3.67424,"143":0.00829,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 111 112 113 115 116 117 118 119 121 122 124 126 127 128 133 135"},E:{"14":0.00415,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 17.0","12.1":0.00415,"13.1":0.01659,"14.1":0.02488,"15.4":0.00415,"15.5":0.00415,"15.6":0.19906,"16.0":0.00829,"16.1":0.2115,"16.2":0.00415,"16.3":0.00415,"16.4":0.00829,"16.5":0.00415,"16.6":0.2115,"17.1":0.5474,"17.2":0.00829,"17.3":0.08709,"17.4":0.03732,"17.5":0.03318,"17.6":0.29029,"18.0":0.01244,"18.1":0.05806,"18.2":0.00829,"18.3":0.04562,"18.4":0.02074,"18.5-18.6":0.3525,"26.0":0.52252,"26.1":0.37323,"26.2":0.00829},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00143,"5.0-5.1":0,"6.0-6.1":0.00573,"7.0-7.1":0.0043,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0129,"10.0-10.2":0.00143,"10.3":0.02293,"11.0-11.2":0.2665,"11.3-11.4":0.0086,"12.0-12.1":0.00287,"12.2-12.5":0.06734,"13.0-13.1":0,"13.2":0.00716,"13.3":0.00287,"13.4-13.7":0.0129,"14.0-14.4":0.02149,"14.5-14.8":0.02722,"15.0-15.1":0.02293,"15.2-15.3":0.01863,"15.4":0.02006,"15.5":0.02149,"15.6-15.8":0.31092,"16.0":0.03869,"16.1":0.07164,"16.2":0.03725,"16.3":0.06878,"16.4":0.01719,"16.5":0.02866,"16.6-16.7":0.41981,"17.0":0.03582,"17.1":0.04298,"17.2":0.03152,"17.3":0.04442,"17.4":0.07307,"17.5":0.13898,"17.6-17.7":0.34101,"18.0":0.07594,"18.1":0.16048,"18.2":0.08597,"18.3":0.2794,"18.4":0.14328,"18.5-18.7":10.00534,"26.0":0.68632,"26.1":0.62614},P:{"20":0.19971,"21":0.01051,"22":0.03153,"23":0.01051,"24":0.03153,"25":0.02102,"26":0.03153,"27":0.05255,"28":0.30482,"29":3.24786,_:"4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.01051,"7.2-7.4":0.02102,"19.0":0.04204},I:{"0":0.01169,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.15218,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":44.0356},R:{_:"0"},M:{"0":1.01257}};
Index: de_modules/caniuse-lite/data/regions/GQ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GQ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.00337,"5":0.00337,"55":0.00787,"57":0.00225,"64":0.01124,"72":0.00899,"110":0.00225,"115":0.01686,"127":0.00337,"134":0.00225,"135":0.0045,"138":0.00562,"139":0.00225,"140":0.0045,"143":0.02023,"144":0.136,"145":0.31697,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 58 59 60 61 62 63 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 136 137 141 142 146 147 148 3.5 3.6"},D:{"47":0.00337,"61":0.00112,"64":0.00562,"69":0.01349,"75":0.00899,"79":0.00787,"80":0.00225,"81":0.00225,"85":0.00112,"87":0.00112,"89":0.00112,"90":0.00225,"94":0.00787,"97":0.00562,"98":0.00787,"103":0.0517,"109":0.24616,"111":0.00337,"114":0.02023,"115":0.0045,"116":0.01236,"117":0.00337,"118":0.00337,"119":0.01349,"120":0.00899,"121":0.00562,"122":0.03934,"123":0.04608,"125":0.08093,"126":0.03035,"127":0.0045,"128":0.00337,"130":0.00225,"131":0.00562,"132":0.00674,"133":0.02698,"134":0.01124,"135":0.01911,"136":0.00899,"137":0.01461,"138":0.07868,"139":0.04271,"140":0.08093,"141":0.76432,"142":1.45333,"143":0.00787,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 62 63 65 66 67 68 70 71 72 73 74 76 77 78 83 84 86 88 91 92 93 95 96 99 100 101 102 104 105 106 107 108 110 112 113 124 129 144 145 146"},F:{"34":0.00225,"44":0.00112,"89":0.00112,"92":0.00337,"93":0.04946,"95":0.00112,"119":0.01236,"122":0.01911,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00337,"16":0.00225,"17":0.00112,"18":0.00337,"87":0.00337,"89":0.01012,"90":0.03035,"92":0.00674,"100":0.00787,"103":0.00112,"109":0.01686,"114":0.10341,"120":0.11015,"121":0.00225,"122":0.01012,"130":0.00787,"131":0.02698,"133":0.01349,"134":0.00674,"136":0.00787,"137":0.00787,"138":0.01012,"139":0.00337,"140":0.03372,"141":0.29224,"142":1.69836,"143":0.05395,_:"13 14 15 79 80 81 83 84 85 86 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 113 115 116 117 118 119 123 124 125 126 127 128 129 132 135"},E:{"14":0.00337,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 14.1 15.1 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 18.0 18.2 18.3 18.4 26.2","11.1":0.0045,"13.1":0.00112,"15.2-15.3":0.00562,"15.4":0.08205,"15.6":0.03822,"16.6":0.02585,"17.5":0.00337,"17.6":0.03035,"18.1":0.01349,"18.5-18.6":0.0236,"26.0":0.08655,"26.1":0.03147},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00029,"5.0-5.1":0,"6.0-6.1":0.00115,"7.0-7.1":0.00086,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00259,"10.0-10.2":0.00029,"10.3":0.0046,"11.0-11.2":0.05349,"11.3-11.4":0.00173,"12.0-12.1":0.00058,"12.2-12.5":0.01352,"13.0-13.1":0,"13.2":0.00144,"13.3":0.00058,"13.4-13.7":0.00259,"14.0-14.4":0.00431,"14.5-14.8":0.00546,"15.0-15.1":0.0046,"15.2-15.3":0.00374,"15.4":0.00403,"15.5":0.00431,"15.6-15.8":0.06241,"16.0":0.00776,"16.1":0.01438,"16.2":0.00748,"16.3":0.0138,"16.4":0.00345,"16.5":0.00575,"16.6-16.7":0.08426,"17.0":0.00719,"17.1":0.00863,"17.2":0.00633,"17.3":0.00892,"17.4":0.01467,"17.5":0.0279,"17.6-17.7":0.06844,"18.0":0.01524,"18.1":0.03221,"18.2":0.01725,"18.3":0.05608,"18.4":0.02876,"18.5-18.7":2.00819,"26.0":0.13775,"26.1":0.12567},P:{"4":0.02048,"25":0.05121,"27":0.15362,"28":0.03072,"29":0.92174,_:"20 21 22 23 24 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02048},I:{"0":0.00886,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.6912,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.46196,_:"6 7 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.01775,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0355},H:{"0":0.01},L:{"0":87.64871},R:{_:"0"},M:{"0":0.00888}};
Index: de_modules/caniuse-lite/data/regions/GR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00631,"52":0.40403,"68":0.22096,"78":0.00631,"102":0.00631,"105":0.44822,"115":1.05427,"116":0.01263,"125":0.00631,"127":0.00631,"128":0.00631,"132":0.00631,"135":0.00631,"136":0.01894,"137":0.00631,"138":0.01263,"139":0.01894,"140":0.0505,"141":0.01894,"142":0.06313,"143":0.04419,"144":2.05173,"145":2.32318,"146":0.00631,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 123 124 126 129 130 131 133 134 147 148 3.5 3.6"},D:{"49":0.04419,"56":0.01263,"57":0.0505,"68":0.29671,"73":0.00631,"74":0.10101,"75":0.00631,"79":0.0505,"83":0.00631,"87":0.0505,"88":0.18308,"89":0.01263,"91":0.00631,"94":0.00631,"95":0.00631,"100":0.26515,"101":0.01894,"102":0.20202,"103":0.04419,"104":0.00631,"105":0.03157,"107":0.01263,"108":0.03157,"109":4.91783,"110":0.01894,"114":0.02525,"115":0.00631,"116":0.07576,"117":0.00631,"118":0.00631,"119":0.01263,"120":0.02525,"121":0.03157,"122":0.06313,"123":0.01894,"124":0.0505,"125":2.21586,"126":0.03157,"127":0.00631,"128":0.08838,"129":0.00631,"130":0.01894,"131":0.0505,"132":0.02525,"133":0.04419,"134":0.04419,"135":0.11995,"136":0.03788,"137":0.04419,"138":0.30934,"139":0.18939,"140":0.32196,"141":8.4973,"142":24.50707,"143":0.03157,"144":0.00631,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 58 59 60 61 62 63 64 65 66 67 69 70 71 72 76 77 78 80 81 84 85 86 90 92 93 96 97 98 99 106 111 112 113 145 146"},F:{"31":0.41666,"36":0.00631,"40":0.56817,"46":0.25883,"92":0.0505,"93":0.00631,"95":0.03788,"114":0.02525,"118":0.00631,"122":0.41666,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.0947,"114":0.00631,"120":0.00631,"134":0.00631,"138":0.00631,"139":0.00631,"140":0.01894,"141":0.41666,"142":3.62998,"143":0.00631,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137"},E:{"12":0.01263,_:"0 4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 16.0 16.4 17.0","12.1":0.00631,"13.1":0.01263,"14.1":0.01894,"15.2-15.3":0.00631,"15.4":0.1957,"15.5":0.00631,"15.6":0.07576,"16.1":0.00631,"16.2":0.00631,"16.3":0.01263,"16.5":0.01263,"16.6":0.07576,"17.1":0.07576,"17.2":0.01894,"17.3":0.00631,"17.4":0.02525,"17.5":0.01894,"17.6":0.11363,"18.0":0.01894,"18.1":0.01263,"18.2":0.01894,"18.3":0.0505,"18.4":0.03788,"18.5-18.6":0.06944,"26.0":0.17045,"26.1":0.22096,"26.2":0.00631},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00072,"5.0-5.1":0,"6.0-6.1":0.00286,"7.0-7.1":0.00215,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00645,"10.0-10.2":0.00072,"10.3":0.01146,"11.0-11.2":0.13321,"11.3-11.4":0.0043,"12.0-12.1":0.00143,"12.2-12.5":0.03366,"13.0-13.1":0,"13.2":0.00358,"13.3":0.00143,"13.4-13.7":0.00645,"14.0-14.4":0.01074,"14.5-14.8":0.01361,"15.0-15.1":0.01146,"15.2-15.3":0.00931,"15.4":0.01003,"15.5":0.01074,"15.6-15.8":0.15541,"16.0":0.01934,"16.1":0.03581,"16.2":0.01862,"16.3":0.03438,"16.4":0.00859,"16.5":0.01432,"16.6-16.7":0.20984,"17.0":0.0179,"17.1":0.02149,"17.2":0.01576,"17.3":0.0222,"17.4":0.03653,"17.5":0.06947,"17.6-17.7":0.17045,"18.0":0.03796,"18.1":0.08021,"18.2":0.04297,"18.3":0.13966,"18.4":0.07162,"18.5-18.7":5.00115,"26.0":0.34305,"26.1":0.31297},P:{"4":0.19012,"20":0.01056,"21":0.01056,"22":0.01056,"23":0.01056,"24":0.01056,"25":0.01056,"26":0.02112,"27":0.03169,"28":0.169,"29":1.30972,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02112},I:{"0":0.04417,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.22116,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.25252,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04792},H:{"0":0},L:{"0":30.15629},R:{_:"0"},M:{"0":0.37966}};
Index: de_modules/caniuse-lite/data/regions/GT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00408,"115":0.03263,"120":0.01224,"127":0.00408,"128":0.00408,"137":0.00408,"139":0.00408,"140":0.00816,"141":0.00408,"143":0.0204,"144":0.4283,"145":0.49356,"146":0.00816,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 124 125 126 129 130 131 132 133 134 135 136 138 142 147 148 3.5 3.6"},D:{"69":0.00408,"76":0.00408,"78":0.0204,"79":0.01224,"87":0.00816,"93":0.00408,"97":0.00816,"101":0.00408,"102":0.00408,"103":0.01632,"106":0.00408,"107":0.00408,"108":0.00816,"109":0.39974,"110":0.00408,"111":0.00816,"112":3.0103,"114":0.01224,"115":0.00408,"116":0.07342,"119":0.00816,"120":0.00816,"121":0.00408,"122":0.04895,"123":0.0204,"124":0.00816,"125":0.10198,"126":0.4079,"127":0.0204,"128":0.05303,"129":0.00408,"130":0.00816,"131":0.04079,"132":0.03263,"133":0.0204,"134":0.01632,"135":0.0204,"136":0.02447,"137":0.02447,"138":0.13053,"139":0.07342,"140":0.16316,"141":3.5732,"142":14.82717,"143":0.02447,"144":0.0204,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 77 80 81 83 84 85 86 88 89 90 91 92 94 95 96 98 99 100 104 105 113 117 118 145 146"},F:{"91":0.00408,"92":0.05303,"93":0.00816,"95":0.00408,"117":0.00408,"121":0.00408,"122":0.42014,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00408,"109":0.00408,"114":0.09382,"130":0.00408,"131":0.00408,"134":0.00408,"135":0.01224,"136":0.00816,"137":0.00408,"138":0.01632,"139":0.00816,"140":0.01632,"141":0.26921,"142":2.7778,"143":0.00408,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 132 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.2 16.4 17.0","5.1":0.00408,"13.1":0.00408,"14.1":0.00408,"15.4":0.00408,"15.5":0.00408,"15.6":0.03263,"16.1":0.00816,"16.3":0.00408,"16.5":0.00408,"16.6":0.05303,"17.1":0.02855,"17.2":0.00408,"17.3":0.00816,"17.4":0.01224,"17.5":0.01632,"17.6":0.0775,"18.0":0.01224,"18.1":0.0204,"18.2":0.00816,"18.3":0.02855,"18.4":0.01632,"18.5-18.6":0.08974,"26.0":0.27737,"26.1":0.37527,"26.2":0.02447},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00131,"5.0-5.1":0,"6.0-6.1":0.00525,"7.0-7.1":0.00393,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0118,"10.0-10.2":0.00131,"10.3":0.02098,"11.0-11.2":0.24394,"11.3-11.4":0.00787,"12.0-12.1":0.00262,"12.2-12.5":0.06164,"13.0-13.1":0,"13.2":0.00656,"13.3":0.00262,"13.4-13.7":0.0118,"14.0-14.4":0.01967,"14.5-14.8":0.02492,"15.0-15.1":0.02098,"15.2-15.3":0.01705,"15.4":0.01836,"15.5":0.01967,"15.6-15.8":0.2846,"16.0":0.03541,"16.1":0.06558,"16.2":0.0341,"16.3":0.06295,"16.4":0.01574,"16.5":0.02623,"16.6-16.7":0.38427,"17.0":0.03279,"17.1":0.03935,"17.2":0.02885,"17.3":0.04066,"17.4":0.06689,"17.5":0.12722,"17.6-17.7":0.31214,"18.0":0.06951,"18.1":0.14689,"18.2":0.07869,"18.3":0.25574,"18.4":0.13115,"18.5-18.7":9.15821,"26.0":0.62821,"26.1":0.57313},P:{"22":0.0102,"23":0.0204,"24":0.0306,"25":0.0306,"26":0.0306,"27":0.11222,"28":0.24484,"29":2.69319,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0204,"13.0":0.0102},I:{"0":0.05321,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.19131,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.00592,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01776},H:{"0":0.01},L:{"0":50.83699},R:{_:"0"},M:{"0":0.24276}};
Index: de_modules/caniuse-lite/data/regions/GU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"78":0.00914,"115":0.05029,"138":0.00457,"140":0.01372,"141":0.07772,"143":0.00457,"144":1.53619,"145":0.96926,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 142 146 147 148 3.5 3.6"},D:{"74":0.00457,"79":0.05486,"80":0.00457,"87":0.02286,"89":0.00914,"91":0.00914,"94":0.00457,"95":0.00457,"96":0.00457,"97":0.00457,"98":0.23317,"99":0.0823,"100":0.00457,"103":0.10516,"109":0.25603,"116":0.08687,"120":0.00914,"122":0.04572,"123":0.00457,"124":0.00457,"125":0.07772,"126":0.08687,"128":0.02743,"129":0.00914,"130":0.00457,"131":0.05029,"132":0.00914,"133":0.05029,"134":0.12344,"135":0.01829,"136":0.02743,"137":0.09144,"138":0.11887,"139":0.13716,"140":0.86411,"141":5.18008,"142":11.08253,"143":0.00457,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 81 83 84 85 86 88 90 92 93 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 121 127 144 145 146"},F:{"83":0.00457,"90":0.00457,"120":0.01372,"122":0.24689,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"94":0.00457,"98":0.032,"99":0.01829,"104":0.00457,"109":0.00914,"120":0.00457,"132":0.00457,"136":0.00457,"137":0.00914,"138":0.01372,"139":0.01372,"140":0.13259,"141":0.8824,"142":5.28523,"143":0.00457,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 100 101 102 103 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 133 134 135"},E:{"14":0.01372,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.5 16.0","13.1":0.032,"14.1":0.00914,"15.1":0.00457,"15.2-15.3":0.01372,"15.4":0.00457,"15.6":0.4572,"16.1":0.00457,"16.2":0.00914,"16.3":0.05486,"16.4":0.02286,"16.5":0.05486,"16.6":0.34747,"17.0":0.00457,"17.1":0.27889,"17.2":0.03658,"17.3":0.032,"17.4":0.07315,"17.5":0.1143,"17.6":1.35788,"18.0":0.01829,"18.1":0.08687,"18.2":0.01829,"18.3":0.26518,"18.4":0.04572,"18.5-18.6":0.24232,"26.0":0.27889,"26.1":0.23774,"26.2":0.00457},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.002,"5.0-5.1":0,"6.0-6.1":0.00802,"7.0-7.1":0.00601,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01804,"10.0-10.2":0.002,"10.3":0.03208,"11.0-11.2":0.37288,"11.3-11.4":0.01203,"12.0-12.1":0.00401,"12.2-12.5":0.09422,"13.0-13.1":0,"13.2":0.01002,"13.3":0.00401,"13.4-13.7":0.01804,"14.0-14.4":0.03007,"14.5-14.8":0.03809,"15.0-15.1":0.03208,"15.2-15.3":0.02606,"15.4":0.02807,"15.5":0.03007,"15.6-15.8":0.43503,"16.0":0.05413,"16.1":0.10024,"16.2":0.05212,"16.3":0.09623,"16.4":0.02406,"16.5":0.04009,"16.6-16.7":0.58739,"17.0":0.05012,"17.1":0.06014,"17.2":0.0441,"17.3":0.06215,"17.4":0.10224,"17.5":0.19446,"17.6-17.7":0.47713,"18.0":0.10625,"18.1":0.22453,"18.2":0.12028,"18.3":0.39092,"18.4":0.20047,"18.5-18.7":13.99906,"26.0":0.96027,"26.1":0.87607},P:{"4":0.15638,"20":0.02085,"23":0.02085,"25":0.01043,"26":0.01043,"28":0.44828,"29":3.15882,_:"21 22 24 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0271,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.05427,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00543},H:{"0":0},L:{"0":31.23446},R:{_:"0"},M:{"0":0.30934}};
Index: de_modules/caniuse-lite/data/regions/GW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00827,"43":0.00551,"102":0.00827,"114":0.03033,"115":0.02757,"116":0.00551,"133":0.01103,"144":0.0965,"145":0.69752,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"46":0.00551,"59":0.00551,"64":0.00551,"65":0.00276,"68":0.03033,"69":0.01654,"70":0.0386,"79":0.05238,"89":0.00276,"98":0.00551,"103":0.06065,"107":0.00551,"108":0.00276,"109":0.17921,"111":0.01654,"113":0.02206,"114":0.08822,"115":0.01379,"116":0.01103,"119":0.03308,"122":0.05238,"124":0.00276,"125":0.1985,"126":0.06893,"127":0.00827,"129":0.02481,"131":0.01654,"132":0.01654,"133":0.02206,"134":0.00276,"136":0.00551,"137":0.06893,"138":0.81056,"139":0.19023,"140":0.18196,"141":1.34266,"142":4.03625,"143":0.00827,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 66 67 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 99 100 101 102 104 105 106 110 112 117 118 120 121 123 128 130 135 144 145 146"},F:{"92":0.00551,"95":0.00551,"113":0.00276,"117":0.00551,"122":0.03033,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00551,"89":0.01379,"90":0.01654,"92":0.04963,"95":0.02481,"100":0.00276,"114":0.16818,"115":0.00276,"122":0.00551,"127":0.00276,"129":0.00276,"132":0.00551,"136":0.03033,"138":0.03033,"139":0.00276,"140":0.05238,"141":1.89406,"142":1.60733,"143":0.04136,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 91 93 94 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 121 123 124 125 126 128 130 131 133 134 135 137"},E:{"13":0.00551,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.3 17.4 17.5 18.1 18.3","5.1":0.46869,"13.1":0.00276,"15.6":0.00827,"16.6":0.08822,"17.2":0.00276,"17.6":0.26192,"18.0":0.01654,"18.2":0.00276,"18.4":0.00551,"18.5-18.6":0.00551,"26.0":0.08822,"26.1":0.09925,"26.2":0.00551},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0,"6.0-6.1":0.00207,"7.0-7.1":0.00155,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00465,"10.0-10.2":0.00052,"10.3":0.00828,"11.0-11.2":0.0962,"11.3-11.4":0.0031,"12.0-12.1":0.00103,"12.2-12.5":0.02431,"13.0-13.1":0,"13.2":0.00259,"13.3":0.00103,"13.4-13.7":0.00465,"14.0-14.4":0.00776,"14.5-14.8":0.00983,"15.0-15.1":0.00828,"15.2-15.3":0.00672,"15.4":0.00724,"15.5":0.00776,"15.6-15.8":0.11224,"16.0":0.01396,"16.1":0.02586,"16.2":0.01345,"16.3":0.02483,"16.4":0.00621,"16.5":0.01034,"16.6-16.7":0.15155,"17.0":0.01293,"17.1":0.01552,"17.2":0.01138,"17.3":0.01603,"17.4":0.02638,"17.5":0.05017,"17.6-17.7":0.1231,"18.0":0.02741,"18.1":0.05793,"18.2":0.03103,"18.3":0.10086,"18.4":0.05172,"18.5-18.7":3.61176,"26.0":0.24775,"26.1":0.22603},P:{"4":0.03085,"22":0.04114,"24":0.18511,"25":0.05142,"26":0.04114,"27":0.09256,"28":0.20568,"29":0.34965,_:"20 21 23 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01028,"7.2-7.4":0.14397},I:{"0":0.01447,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.45267,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04346},H:{"0":0.25},L:{"0":78.48349},R:{_:"0"},M:{"0":0.12315}};
Index: de_modules/caniuse-lite/data/regions/GY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/GY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.05594,"115":0.00622,"137":0.01865,"139":0.00622,"140":0.00622,"142":0.0373,"143":0.00622,"144":0.2735,"145":0.23621,"146":0.0373,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 138 141 147 148 3.5 3.6"},D:{"69":0.06216,"73":0.01865,"79":0.01865,"81":0.00622,"83":0.06216,"86":0.01243,"87":0.02486,"88":0.00622,"93":0.01243,"94":0.00622,"98":0.00622,"99":0.00622,"101":0.00622,"103":0.06838,"109":0.10567,"111":0.06216,"112":24.68374,"114":0.01865,"116":0.00622,"117":0.01243,"118":0.00622,"119":0.00622,"120":0.01243,"121":0.01243,"122":0.08702,"124":0.06838,"125":3.70474,"126":3.87878,"127":0.00622,"128":0.24242,"129":0.00622,"130":0.01865,"131":0.01865,"132":0.21134,"133":0.00622,"134":0.01243,"135":0.00622,"136":0.01243,"137":0.01243,"138":0.17405,"139":0.3481,"140":0.50971,"141":2.69153,"142":9.14995,"143":0.04351,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 74 75 76 77 78 80 84 85 89 90 91 92 95 96 97 100 102 104 105 106 107 108 110 113 115 123 144 145 146"},F:{"92":0.02486,"114":0.02486,"122":0.20513,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00622,"107":0.00622,"114":1.0505,"122":0.00622,"126":0.00622,"127":0.00622,"128":0.00622,"131":0.00622,"132":0.03108,"134":0.00622,"135":0.01243,"137":0.03108,"138":0.01865,"139":0.01865,"140":0.03108,"141":0.49728,"142":3.8477,"143":0.02486,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 129 130 133 136"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 18.1","14.1":0.00622,"15.6":0.1181,"16.3":0.00622,"16.6":0.02486,"17.1":0.01243,"17.2":0.00622,"17.3":0.00622,"17.4":0.00622,"17.5":0.01243,"17.6":0.05594,"18.0":0.00622,"18.2":0.02486,"18.3":0.16162,"18.4":0.01865,"18.5-18.6":0.07459,"26.0":0.14297,"26.1":0.16783,"26.2":0.00622},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00065,"5.0-5.1":0,"6.0-6.1":0.00261,"7.0-7.1":0.00196,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00588,"10.0-10.2":0.00065,"10.3":0.01045,"11.0-11.2":0.12151,"11.3-11.4":0.00392,"12.0-12.1":0.00131,"12.2-12.5":0.0307,"13.0-13.1":0,"13.2":0.00327,"13.3":0.00131,"13.4-13.7":0.00588,"14.0-14.4":0.0098,"14.5-14.8":0.01241,"15.0-15.1":0.01045,"15.2-15.3":0.00849,"15.4":0.00915,"15.5":0.0098,"15.6-15.8":0.14176,"16.0":0.01764,"16.1":0.03266,"16.2":0.01699,"16.3":0.03136,"16.4":0.00784,"16.5":0.01307,"16.6-16.7":0.19141,"17.0":0.01633,"17.1":0.0196,"17.2":0.01437,"17.3":0.02025,"17.4":0.03332,"17.5":0.06337,"17.6-17.7":0.15548,"18.0":0.03462,"18.1":0.07317,"18.2":0.0392,"18.3":0.12739,"18.4":0.06533,"18.5-18.7":4.56193,"26.0":0.31293,"26.1":0.28549},P:{"4":0.06276,"21":0.0523,"22":0.02092,"23":0.01046,"24":0.04184,"25":0.07322,"26":0.03138,"27":0.1046,"28":0.40794,"29":2.2175,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.04184,"16.0":0.03138},I:{"0":0.00756,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.33308,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00757},O:{"0":0.1514},H:{"0":0},L:{"0":34.11385},R:{_:"0"},M:{"0":0.07949}};
Index: de_modules/caniuse-lite/data/regions/HK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/HK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00856,"52":0.01712,"115":0.05565,"121":0.00856,"128":0.00856,"131":0.00856,"133":0.00428,"134":0.00428,"135":0.00428,"136":0.00856,"137":0.00428,"138":0.00428,"139":0.00428,"140":0.03425,"141":0.00428,"142":0.00856,"143":0.03853,"144":0.47947,"145":0.54797,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 127 129 130 132 146 147 148 3.5 3.6"},D:{"39":0.02141,"40":0.02141,"41":0.02141,"42":0.02141,"43":0.02141,"44":0.02141,"45":0.02141,"46":0.02141,"47":0.02141,"48":0.02997,"49":0.02569,"50":0.02141,"51":0.02141,"52":0.02569,"53":0.02141,"54":0.02141,"55":0.02141,"56":0.02141,"57":0.02141,"58":0.02141,"59":0.02141,"60":0.02141,"69":0.00856,"70":0.00428,"75":0.00428,"78":0.00856,"79":0.03853,"80":0.00428,"81":0.00428,"83":0.02141,"85":0.00856,"86":0.02997,"87":0.02997,"89":0.00428,"90":0.00428,"91":0.10703,"92":0.00428,"94":0.00428,"95":0.00428,"96":0.00428,"97":0.01284,"98":0.01284,"99":0.00856,"100":0.00428,"101":0.04709,"102":0.00428,"103":0.01712,"104":0.00856,"105":0.03425,"106":0.00856,"107":0.03425,"108":0.02997,"109":0.72349,"110":0.00856,"111":0.01712,"112":0.01284,"113":0.01712,"114":0.07278,"115":0.04281,"116":0.04281,"117":0.00856,"118":0.02141,"119":0.05137,"120":0.11131,"121":0.08562,"122":0.06422,"123":0.08134,"124":0.12843,"125":0.36389,"126":0.05993,"127":0.06422,"128":0.6079,"129":0.44094,"130":0.59078,"131":0.65499,"132":0.48803,"133":0.11131,"134":0.08562,"135":0.11131,"136":0.10703,"137":0.17552,"138":0.30395,"139":0.22689,"140":0.46663,"141":4.13973,"142":13.18976,"143":0.05137,"144":0.11559,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 71 72 73 74 76 77 84 88 93 145 146"},F:{"46":0.00428,"92":0.02569,"93":0.00428,"95":0.01284,"122":0.04281,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00428,"92":0.01284,"100":0.00428,"106":0.01284,"109":0.06422,"111":0.00428,"112":0.02569,"113":0.02141,"114":0.00856,"115":0.00428,"116":0.00428,"117":0.02997,"118":0.00428,"119":0.00428,"120":0.03425,"121":0.00856,"122":0.01284,"123":0.00856,"124":0.00856,"125":0.00428,"126":0.01284,"127":0.01712,"128":0.01284,"129":0.00856,"130":0.02569,"131":0.05565,"132":0.01284,"133":0.02997,"134":0.02997,"135":0.03853,"136":0.02569,"137":0.04281,"138":0.05993,"139":0.08134,"140":0.11131,"141":0.81767,"142":4.30669,"143":0.01712,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 107 108 110"},E:{"8":0.00428,"14":0.01284,_:"0 4 5 6 7 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.2-15.3","9.1":0.00428,"13.1":0.01712,"14.1":0.02569,"15.1":0.00428,"15.4":0.01712,"15.5":0.00856,"15.6":0.08134,"16.0":0.02141,"16.1":0.01712,"16.2":0.00856,"16.3":0.03853,"16.4":0.01284,"16.5":0.01284,"16.6":0.11987,"17.0":0.00428,"17.1":0.09418,"17.2":0.01284,"17.3":0.01712,"17.4":0.02141,"17.5":0.04709,"17.6":0.11131,"18.0":0.02141,"18.1":0.03425,"18.2":0.01284,"18.3":0.05137,"18.4":0.02569,"18.5-18.6":0.15412,"26.0":0.23117,"26.1":0.2483,"26.2":0.00856},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00156,"5.0-5.1":0,"6.0-6.1":0.00624,"7.0-7.1":0.00468,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01403,"10.0-10.2":0.00156,"10.3":0.02495,"11.0-11.2":0.29003,"11.3-11.4":0.00936,"12.0-12.1":0.00312,"12.2-12.5":0.07329,"13.0-13.1":0,"13.2":0.0078,"13.3":0.00312,"13.4-13.7":0.01403,"14.0-14.4":0.02339,"14.5-14.8":0.02963,"15.0-15.1":0.02495,"15.2-15.3":0.02027,"15.4":0.02183,"15.5":0.02339,"15.6-15.8":0.33837,"16.0":0.0421,"16.1":0.07796,"16.2":0.04054,"16.3":0.07485,"16.4":0.01871,"16.5":0.03119,"16.6-16.7":0.45687,"17.0":0.03898,"17.1":0.04678,"17.2":0.0343,"17.3":0.04834,"17.4":0.07952,"17.5":0.15125,"17.6-17.7":0.37111,"18.0":0.08264,"18.1":0.17464,"18.2":0.09356,"18.3":0.30406,"18.4":0.15593,"18.5-18.7":10.88858,"26.0":0.7469,"26.1":0.68141},P:{"4":0.03141,"20":0.01047,"21":0.01047,"22":0.02094,"23":0.02094,"24":0.01047,"25":0.02094,"26":0.05235,"27":0.05235,"28":0.35599,"29":3.30866,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 18.0 19.0","7.2-7.4":0.01047,"11.1-11.2":0.02094,"13.0":0.01047,"15.0":0.01047,"16.0":0.01047,"17.0":0.01047},I:{"0":0.0571,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.12008,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01922,"9":0.40356,"10":0.01922,"11":0.42277,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.26303},O:{"0":0.25159},H:{"0":0},L:{"0":40.46884},R:{_:"0"},M:{"0":0.88629}};
Index: de_modules/caniuse-lite/data/regions/HN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/HN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.03145,"5":0.02516,"115":0.03774,"138":0.00629,"140":0.00629,"142":0.03145,"143":0.00629,"144":0.3145,"145":0.5032,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 141 146 147 148 3.5 3.6"},D:{"69":0.02516,"77":0.00629,"79":0.06919,"83":0.00629,"85":0.00629,"87":0.08806,"93":0.02516,"94":0.01258,"97":0.02516,"103":0.04403,"105":0.00629,"108":0.01887,"109":0.3774,"111":0.05032,"112":23.88942,"114":0.01258,"116":0.01258,"118":0.00629,"119":0.03145,"120":0.00629,"122":0.07548,"123":0.00629,"124":0.01258,"125":1.13849,"126":5.12635,"127":0.01887,"128":0.04403,"129":0.00629,"130":0.01258,"131":0.03145,"132":0.06919,"133":0.03145,"134":0.01887,"135":0.01887,"136":0.01887,"137":0.04403,"138":0.07548,"139":0.16354,"140":0.41514,"141":3.64191,"142":13.20271,"143":0.01887,"144":0.00629,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 78 80 81 84 86 88 89 90 91 92 95 96 98 99 100 101 102 104 106 107 110 113 115 117 121 145 146"},F:{"92":0.01258,"95":0.01887,"117":0.03145,"122":0.62271,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01258,"109":0.03145,"114":0.71706,"122":0.00629,"129":0.00629,"130":0.00629,"131":0.00629,"132":0.00629,"134":0.00629,"136":0.00629,"137":0.00629,"138":0.01258,"139":0.02516,"140":0.01887,"141":0.61013,"142":4.20801,"143":0.00629,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2","5.1":0.00629,"13.1":0.01258,"15.6":0.03145,"16.3":0.00629,"16.6":0.03774,"17.1":0.01887,"17.3":0.00629,"17.4":0.00629,"17.5":0.00629,"17.6":0.16354,"18.0":0.03145,"18.1":0.00629,"18.2":0.00629,"18.3":0.00629,"18.4":0.15725,"18.5-18.6":0.03145,"26.0":0.18241,"26.1":0.15725,"26.2":0.00629},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00102,"5.0-5.1":0,"6.0-6.1":0.00406,"7.0-7.1":0.00305,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00914,"10.0-10.2":0.00102,"10.3":0.01624,"11.0-11.2":0.18882,"11.3-11.4":0.00609,"12.0-12.1":0.00203,"12.2-12.5":0.04771,"13.0-13.1":0,"13.2":0.00508,"13.3":0.00203,"13.4-13.7":0.00914,"14.0-14.4":0.01523,"14.5-14.8":0.01929,"15.0-15.1":0.01624,"15.2-15.3":0.0132,"15.4":0.01421,"15.5":0.01523,"15.6-15.8":0.22029,"16.0":0.02741,"16.1":0.05076,"16.2":0.02639,"16.3":0.04873,"16.4":0.01218,"16.5":0.0203,"16.6-16.7":0.29744,"17.0":0.02538,"17.1":0.03045,"17.2":0.02233,"17.3":0.03147,"17.4":0.05177,"17.5":0.09847,"17.6-17.7":0.24161,"18.0":0.0538,"18.1":0.1137,"18.2":0.06091,"18.3":0.19795,"18.4":0.10152,"18.5-18.7":7.08882,"26.0":0.48626,"26.1":0.44362},P:{"4":0.06263,"21":0.01044,"22":0.01044,"24":0.02088,"25":0.05219,"26":0.02088,"27":0.04175,"28":0.2505,"29":1.05419,_:"20 23 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","5.0-5.4":0.01044,"7.2-7.4":0.05219,"8.2":0.01044,"16.0":0.03131},I:{"0":0.01852,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.21883,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.08531},H:{"0":0},L:{"0":27.95875},R:{_:"0"},M:{"0":0.09273}};
Index: de_modules/caniuse-lite/data/regions/HR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/HR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.02104,"68":0.00526,"77":0.01052,"78":0.01052,"88":0.00526,"105":0.00526,"115":0.29988,"125":0.00526,"128":0.02104,"133":0.05787,"134":0.00526,"135":0.00526,"136":0.01052,"138":0.01578,"139":0.00526,"140":0.10522,"141":0.01052,"142":0.02104,"143":0.05261,"144":1.35734,"145":1.60987,"146":0.00526,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 137 147 148 3.5 3.6"},D:{"41":0.01052,"49":0.01052,"66":0.00526,"69":0.00526,"75":0.02104,"76":0.00526,"77":0.01052,"79":0.19466,"80":0.00526,"81":0.01578,"84":0.00526,"86":0.00526,"87":0.16309,"88":0.01052,"91":0.00526,"92":0.00526,"93":0.00526,"94":0.01578,"95":0.00526,"96":0.00526,"99":0.00526,"101":0.00526,"103":0.02631,"104":0.03157,"106":0.00526,"107":0.00526,"108":0.05261,"109":1.14164,"110":0.00526,"111":0.03683,"112":1.50991,"114":0.01052,"116":0.05787,"117":0.00526,"118":0.02104,"119":0.01052,"120":0.05261,"121":0.01578,"122":0.04735,"123":0.01052,"124":0.04209,"125":0.06839,"126":0.17887,"127":0.01052,"128":0.04209,"129":0.01578,"130":0.02631,"131":0.10522,"132":0.05787,"133":0.05261,"134":0.03683,"135":0.07892,"136":0.05787,"137":0.05787,"138":0.25253,"139":0.63132,"140":0.47875,"141":6.67621,"142":21.85419,"143":0.03683,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 73 74 78 83 85 89 90 97 98 100 102 105 113 115 144 145 146"},F:{"36":0.00526,"40":0.00526,"46":0.04209,"85":0.00526,"92":0.07365,"93":0.02631,"95":0.03157,"120":0.00526,"122":0.54188,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00526,"109":0.02104,"114":0.02631,"118":0.00526,"124":0.01052,"131":0.01052,"132":0.00526,"133":0.00526,"134":0.00526,"135":0.00526,"137":0.01052,"138":0.01578,"139":0.02631,"140":0.05261,"141":0.34723,"142":3.30391,"143":0.03683,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 122 123 125 126 127 128 129 130 136"},E:{"14":0.00526,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.1 16.2 17.0","13.1":0.01052,"14.1":0.02104,"15.6":0.05787,"16.0":0.01578,"16.3":0.00526,"16.4":0.00526,"16.5":0.01052,"16.6":0.07892,"17.1":0.06313,"17.2":0.01052,"17.3":0.00526,"17.4":0.01578,"17.5":0.06839,"17.6":0.09996,"18.0":0.01052,"18.1":0.06839,"18.2":0.01052,"18.3":0.02631,"18.4":0.01578,"18.5-18.6":0.08418,"26.0":0.14205,"26.1":0.20518,"26.2":0.00526},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0,"6.0-6.1":0.00364,"7.0-7.1":0.00273,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00818,"10.0-10.2":0.00091,"10.3":0.01455,"11.0-11.2":0.16915,"11.3-11.4":0.00546,"12.0-12.1":0.00182,"12.2-12.5":0.04274,"13.0-13.1":0,"13.2":0.00455,"13.3":0.00182,"13.4-13.7":0.00818,"14.0-14.4":0.01364,"14.5-14.8":0.01728,"15.0-15.1":0.01455,"15.2-15.3":0.01182,"15.4":0.01273,"15.5":0.01364,"15.6-15.8":0.19734,"16.0":0.02455,"16.1":0.04547,"16.2":0.02364,"16.3":0.04365,"16.4":0.01091,"16.5":0.01819,"16.6-16.7":0.26646,"17.0":0.02274,"17.1":0.02728,"17.2":0.02001,"17.3":0.02819,"17.4":0.04638,"17.5":0.08821,"17.6-17.7":0.21644,"18.0":0.0482,"18.1":0.10185,"18.2":0.05456,"18.3":0.17734,"18.4":0.09094,"18.5-18.7":6.35044,"26.0":0.43561,"26.1":0.39741},P:{"4":0.20846,"22":0.01042,"23":0.03127,"24":0.02085,"25":0.02085,"26":0.04169,"27":0.08339,"28":0.3127,"29":2.85596,_:"20 21 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.04169,"6.2-6.4":0.01042,"7.2-7.4":0.14592,"8.2":0.02085,"19.0":0.01042},I:{"0":0.07099,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.36964,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04739},H:{"0":0},L:{"0":38.34584},R:{_:"0"},M:{"0":0.43125}};
Index: de_modules/caniuse-lite/data/regions/HT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/HT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00217,"46":0.00217,"52":0.01732,"57":0.00217,"58":0.0065,"60":0.00433,"65":0.00217,"68":0.00217,"78":0.00217,"112":0.00433,"115":0.01949,"121":0.00217,"127":0.01083,"128":0.00217,"134":0.00217,"136":0.00217,"138":0.00217,"139":0.00217,"140":0.00217,"142":0.00217,"143":0.00866,"144":0.14289,"145":0.14289,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 55 56 59 61 62 63 64 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 122 123 124 125 126 129 130 131 132 133 135 137 141 146 147 148 3.5 3.6"},D:{"49":0.00217,"50":0.00217,"55":0.00217,"56":0.00433,"60":0.00433,"68":0.00433,"69":0.01083,"71":0.00217,"73":0.08444,"74":0.00217,"75":0.0065,"76":0.0065,"79":0.01299,"81":0.0065,"83":0.00433,"86":0.00217,"87":0.01732,"88":0.01083,"89":0.00217,"90":0.0065,"91":0.00433,"92":0.00217,"93":0.02382,"94":0.01949,"98":0.00217,"99":0.00433,"101":0.00866,"102":0.0065,"103":0.05196,"105":0.01516,"106":0.00217,"108":0.05413,"109":0.1299,"110":0.00433,"111":0.05846,"112":0.00217,"113":0.00217,"114":0.05846,"116":0.03464,"117":0.01083,"118":0.00217,"119":0.04763,"120":0.12774,"121":0.00217,"122":0.02165,"123":0.0065,"124":0.00217,"125":0.23166,"126":0.04547,"127":0.03248,"128":0.0433,"129":0.00433,"130":0.01299,"131":0.06495,"132":0.00433,"133":0.02165,"134":0.01949,"135":0.01732,"136":0.03464,"137":0.06062,"138":0.25547,"139":0.2165,"140":0.29661,"141":1.64757,"142":5.36487,"143":0.03248,"144":0.00866,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 57 58 59 61 62 63 64 65 66 67 70 72 77 78 80 84 85 95 96 97 100 104 107 115 145 146"},F:{"37":0.00866,"60":0.00217,"91":0.00217,"92":0.02165,"93":0.0065,"95":0.02165,"113":0.00217,"116":0.00217,"117":0.00217,"119":0.00217,"120":0.01299,"122":0.14073,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00433,"14":0.02165,"15":0.00433,"16":0.00217,"17":0.01083,"18":0.03031,"84":0.01516,"88":0.00217,"89":0.00433,"90":0.01299,"92":0.06062,"100":0.00433,"101":0.00433,"109":0.10825,"112":0.00217,"114":0.01949,"120":0.00217,"122":0.00866,"124":0.00217,"126":0.00217,"127":0.00217,"129":0.00217,"131":0.00433,"132":0.00217,"133":0.01299,"134":0.00217,"135":0.00433,"136":0.0065,"137":0.01732,"138":0.02815,"139":0.02382,"140":0.04114,"141":0.27929,"142":2.21263,"143":0.00217,_:"13 79 80 81 83 85 86 87 91 93 94 95 96 97 98 99 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 121 123 125 128 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 15.2-15.3 16.0 16.1 16.4 17.0 17.2 18.0","5.1":0.00866,"11.1":0.00866,"12.1":0.0065,"13.1":0.09959,"14.1":0.01083,"15.1":0.00217,"15.4":0.00217,"15.5":0.00217,"15.6":0.0866,"16.2":0.00217,"16.3":0.00217,"16.5":0.0065,"16.6":0.07794,"17.1":0.01299,"17.3":0.00217,"17.4":0.00866,"17.5":0.01299,"17.6":0.09959,"18.1":0.0065,"18.2":0.00433,"18.3":0.01083,"18.4":0.01299,"18.5-18.6":0.0931,"26.0":0.09743,"26.1":0.18403,"26.2":0.01299},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00099,"5.0-5.1":0,"6.0-6.1":0.00394,"7.0-7.1":0.00296,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00887,"10.0-10.2":0.00099,"10.3":0.01577,"11.0-11.2":0.18333,"11.3-11.4":0.00591,"12.0-12.1":0.00197,"12.2-12.5":0.04633,"13.0-13.1":0,"13.2":0.00493,"13.3":0.00197,"13.4-13.7":0.00887,"14.0-14.4":0.01478,"14.5-14.8":0.01873,"15.0-15.1":0.01577,"15.2-15.3":0.01281,"15.4":0.0138,"15.5":0.01478,"15.6-15.8":0.21388,"16.0":0.02661,"16.1":0.04928,"16.2":0.02563,"16.3":0.04731,"16.4":0.01183,"16.5":0.01971,"16.6-16.7":0.28879,"17.0":0.02464,"17.1":0.02957,"17.2":0.02168,"17.3":0.03055,"17.4":0.05027,"17.5":0.09561,"17.6-17.7":0.23458,"18.0":0.05224,"18.1":0.11039,"18.2":0.05914,"18.3":0.1922,"18.4":0.09856,"18.5-18.7":6.88275,"26.0":0.47212,"26.1":0.43073},P:{"4":0.02067,"21":0.03101,"22":0.01034,"23":0.02067,"24":0.18607,"25":0.09304,"26":0.04135,"27":0.15506,"28":0.45484,"29":0.62024,_:"20 8.2 10.1 12.0 15.0 17.0 19.0","5.0-5.4":0.02067,"6.2-6.4":0.01034,"7.2-7.4":0.05169,"9.2":0.02067,"11.1-11.2":0.0827,"13.0":0.02067,"14.0":0.02067,"16.0":0.10337,"18.0":0.01034},I:{"0":0.17995,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.59546,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.07052},H:{"0":0},L:{"0":72.21263},R:{_:"0"},M:{"0":0.2899}};
Index: de_modules/caniuse-lite/data/regions/HU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/HU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"12":0.00362,"48":0.00723,"52":0.00723,"61":0.00362,"78":0.01085,"107":0.00723,"108":0.00723,"115":0.46272,"125":0.01085,"127":0.00362,"128":0.01085,"129":0.00362,"131":0.00362,"133":0.00362,"134":0.00362,"135":0.00362,"136":0.01446,"137":0.00362,"138":0.00723,"139":0.00723,"140":0.06869,"141":0.00723,"142":0.01446,"143":0.04338,"144":1.29056,"145":1.6376,"146":0.00362,_:"2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 130 132 147 148 3.5 3.6"},D:{"39":0.00723,"40":0.00723,"41":0.00723,"42":0.00723,"43":0.00723,"44":0.00723,"45":0.00723,"46":0.00723,"47":0.00723,"48":0.00723,"49":0.00723,"50":0.00723,"51":0.00723,"52":0.00723,"53":0.00723,"54":0.00723,"55":0.00723,"56":0.00723,"57":0.00723,"58":0.00723,"59":0.00723,"60":0.00723,"79":0.01085,"87":0.01085,"88":0.01446,"91":0.01808,"100":0.00362,"102":0.00362,"103":0.01085,"104":0.00723,"106":0.00362,"107":0.00362,"108":0.00362,"109":0.83145,"111":0.00362,"112":0.58202,"114":0.01808,"115":0.00362,"116":0.02531,"118":0.00723,"119":0.01085,"120":0.01085,"121":0.05784,"122":0.02892,"123":0.00723,"124":0.03254,"125":0.02531,"126":0.09038,"127":0.05061,"128":0.047,"129":0.00723,"130":0.02169,"131":0.03615,"132":0.02892,"133":0.02892,"134":0.03615,"135":0.02892,"136":0.02892,"137":0.04338,"138":0.11207,"139":0.11568,"140":0.33258,"141":3.64031,"142":13.05738,"143":0.02892,"144":0.00362,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 89 90 92 93 94 95 96 97 98 99 101 105 110 113 117 145 146"},F:{"79":0.00362,"92":0.03254,"93":0.00723,"95":0.05423,"112":0.00362,"114":0.00362,"119":0.00362,"120":0.00362,"121":0.00362,"122":0.41934,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00362,"109":0.01808,"114":0.01085,"131":0.00362,"133":0.00362,"135":0.00362,"136":0.00362,"138":0.01808,"139":0.01085,"140":0.02892,"141":0.26751,"142":2.83416,"143":0.00362,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0","13.1":0.00723,"14.1":0.00362,"15.5":0.00362,"15.6":0.03254,"16.1":0.00362,"16.2":0.00362,"16.3":0.00723,"16.4":0.00362,"16.5":0.00362,"16.6":0.04338,"17.0":0.00362,"17.1":0.05784,"17.2":0.00362,"17.3":0.01085,"17.4":0.01085,"17.5":0.01446,"17.6":0.06869,"18.0":0.00723,"18.1":0.01085,"18.2":0.00362,"18.3":0.02531,"18.4":0.01446,"18.5-18.6":0.047,"26.0":0.15183,"26.1":0.17352,"26.2":0.00723},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0009,"5.0-5.1":0,"6.0-6.1":0.00358,"7.0-7.1":0.00269,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00806,"10.0-10.2":0.0009,"10.3":0.01432,"11.0-11.2":0.1665,"11.3-11.4":0.00537,"12.0-12.1":0.00179,"12.2-12.5":0.04207,"13.0-13.1":0,"13.2":0.00448,"13.3":0.00179,"13.4-13.7":0.00806,"14.0-14.4":0.01343,"14.5-14.8":0.01701,"15.0-15.1":0.01432,"15.2-15.3":0.01164,"15.4":0.01253,"15.5":0.01343,"15.6-15.8":0.19425,"16.0":0.02417,"16.1":0.04476,"16.2":0.02327,"16.3":0.04297,"16.4":0.01074,"16.5":0.0179,"16.6-16.7":0.26229,"17.0":0.02238,"17.1":0.02686,"17.2":0.01969,"17.3":0.02775,"17.4":0.04565,"17.5":0.08683,"17.6-17.7":0.21305,"18.0":0.04744,"18.1":0.10026,"18.2":0.05371,"18.3":0.17456,"18.4":0.08952,"18.5-18.7":6.25102,"26.0":0.42879,"26.1":0.39119},P:{"20":0.0104,"21":0.0104,"22":0.0208,"23":0.0208,"24":0.0208,"25":0.0208,"26":0.05199,"27":0.07279,"28":0.30155,"29":2.35004,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.0104,"13.0":0.0104,"19.0":0.0104},I:{"0":0.10202,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.2554,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00362,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00639},H:{"0":0},L:{"0":57.02409},R:{_:"0"},M:{"0":0.2554}};
Index: de_modules/caniuse-lite/data/regions/ID.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ID.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"113":0.02468,"114":0.00494,"115":0.10857,"125":0.00494,"126":0.00494,"127":0.00987,"128":0.00494,"130":0.00494,"132":0.00494,"133":0.00494,"134":0.00494,"135":0.00494,"136":0.00987,"137":0.00494,"138":0.01974,"139":0.00987,"140":0.02961,"141":0.01481,"142":0.02961,"143":0.04442,"144":1.03635,"145":1.16466,"146":0.00987,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 116 117 118 119 120 121 122 123 124 129 131 147 148 3.5 3.6"},D:{"39":0.00494,"40":0.00494,"41":0.00494,"42":0.00494,"43":0.00494,"44":0.00494,"45":0.00494,"46":0.00494,"47":0.00494,"48":0.00494,"49":0.00494,"50":0.00494,"51":0.00494,"52":0.00494,"53":0.00494,"54":0.00494,"55":0.00494,"56":0.00494,"57":0.00494,"58":0.00494,"59":0.00494,"60":0.00494,"79":0.00494,"80":0.00494,"85":0.02468,"87":0.00494,"89":0.00494,"95":0.00494,"98":0.00494,"103":0.01481,"104":0.00987,"105":0.00494,"106":0.00494,"107":0.00494,"108":0.00494,"109":0.65636,"110":0.00494,"111":0.02468,"113":0.00494,"114":0.01974,"115":0.00494,"116":0.05922,"117":0.02468,"118":0.01481,"119":0.00987,"120":0.03455,"121":0.10364,"122":0.06416,"123":0.02468,"124":0.02961,"125":0.0987,"126":0.10364,"127":0.02961,"128":0.0987,"129":0.02468,"130":0.03455,"131":0.11351,"132":0.07403,"133":0.06416,"134":0.10857,"135":0.07896,"136":0.06909,"137":0.0839,"138":0.28623,"139":0.23688,"140":0.46883,"141":7.51601,"142":25.13396,"143":0.04935,"144":0.00494,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 86 88 90 91 92 93 94 96 97 99 100 101 102 112 145 146"},F:{"92":0.01974,"95":0.00987,"122":0.09377,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00494,"92":0.00494,"109":0.00494,"114":0.02468,"122":0.00494,"127":0.00494,"131":0.00494,"133":0.00494,"134":0.00494,"136":0.00494,"137":0.00494,"138":0.00987,"139":0.00987,"140":0.01974,"141":0.43428,"142":4.81163,"143":0.01481,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 128 129 130 132 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 16.0 26.2","5.1":0.00494,"13.1":0.00494,"14.1":0.00494,"15.1":0.00494,"15.4":0.00494,"15.5":0.00494,"15.6":0.04442,"16.1":0.01481,"16.2":0.00987,"16.3":0.00987,"16.4":0.00494,"16.5":0.01974,"16.6":0.06416,"17.0":0.00987,"17.1":0.01481,"17.2":0.01974,"17.3":0.00987,"17.4":0.02468,"17.5":0.03948,"17.6":0.11351,"18.0":0.02468,"18.1":0.03455,"18.2":0.01974,"18.3":0.06416,"18.4":0.02961,"18.5-18.6":0.14805,"26.0":0.1826,"26.1":0.12338},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0006,"5.0-5.1":0,"6.0-6.1":0.0024,"7.0-7.1":0.0018,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00541,"10.0-10.2":0.0006,"10.3":0.00961,"11.0-11.2":0.11173,"11.3-11.4":0.0036,"12.0-12.1":0.0012,"12.2-12.5":0.02823,"13.0-13.1":0,"13.2":0.003,"13.3":0.0012,"13.4-13.7":0.00541,"14.0-14.4":0.00901,"14.5-14.8":0.01141,"15.0-15.1":0.00961,"15.2-15.3":0.00781,"15.4":0.00841,"15.5":0.00901,"15.6-15.8":0.13035,"16.0":0.01622,"16.1":0.03004,"16.2":0.01562,"16.3":0.02883,"16.4":0.00721,"16.5":0.01201,"16.6-16.7":0.17601,"17.0":0.01502,"17.1":0.01802,"17.2":0.01322,"17.3":0.01862,"17.4":0.03064,"17.5":0.05827,"17.6-17.7":0.14297,"18.0":0.03184,"18.1":0.06728,"18.2":0.03604,"18.3":0.11714,"18.4":0.06007,"18.5-18.7":4.19475,"26.0":0.28774,"26.1":0.26251},P:{"21":0.01035,"22":0.01035,"23":0.01035,"24":0.01035,"25":0.02071,"26":0.02071,"27":0.04142,"28":0.19673,"29":0.82833,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02071},I:{"0":0.06069,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.39507,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.10857,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00507},O:{"0":0.16715},H:{"0":0},L:{"0":45.83336},R:{_:"0"},M:{"0":0.07598}};
Index: de_modules/caniuse-lite/data/regions/IE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"77":0.00745,"78":0.00373,"88":0.00373,"109":0.00745,"115":0.0447,"128":0.00373,"132":0.01863,"136":0.00373,"139":0.00373,"140":0.09685,"141":0.00745,"142":0.00745,"143":0.01863,"144":0.4768,"145":0.46935,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 133 134 135 137 138 146 147 148 3.5 3.6"},D:{"49":0.01118,"79":0.0149,"86":0.00373,"87":0.01118,"88":0.00745,"93":0.00745,"102":0.00373,"103":0.04843,"104":0.00745,"106":0.00373,"108":0.01118,"109":0.16763,"111":0.00373,"112":0.57738,"113":0.00745,"114":0.02235,"115":0.00745,"116":0.1043,"117":0.00373,"118":0.00373,"119":0.0149,"120":0.0596,"121":0.00373,"122":0.0596,"123":0.00373,"124":0.02608,"125":2.19775,"126":0.12293,"127":0.00745,"128":0.04843,"129":0.01118,"130":6.35485,"131":0.06333,"132":0.03353,"133":0.04843,"134":0.0745,"135":0.08195,"136":0.03353,"137":0.07823,"138":0.22723,"139":0.29428,"140":0.298,"141":3.52758,"142":8.0162,"143":0.0149,"144":0.00373,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 89 90 91 92 94 95 96 97 98 99 100 101 105 107 110 145 146"},F:{"46":0.00373,"92":0.02608,"93":0.00373,"95":0.00373,"96":0.00373,"120":0.00373,"122":0.1639,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00373,"91":0.00373,"109":0.00373,"114":0.00373,"121":0.00745,"125":0.00373,"131":0.00373,"134":0.02235,"135":0.00373,"136":0.00373,"137":0.00745,"138":0.01863,"139":0.01118,"140":0.04098,"141":0.54013,"142":4.4402,"143":0.00373,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 122 123 124 126 127 128 129 130 132 133"},E:{"8":0.00373,"14":0.01118,_:"0 4 5 6 7 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.01118,"14.1":0.0298,"15.1":0.00373,"15.2-15.3":0.00373,"15.4":0.00373,"15.5":0.01118,"15.6":0.12665,"16.0":0.00745,"16.1":0.01118,"16.2":0.01863,"16.3":0.0298,"16.4":0.00745,"16.5":0.0149,"16.6":0.16763,"17.0":0.00745,"17.1":0.13038,"17.2":0.0149,"17.3":0.01863,"17.4":0.0298,"17.5":0.04098,"17.6":0.14528,"18.0":0.01118,"18.1":0.03725,"18.2":0.02235,"18.3":0.06333,"18.4":0.05588,"18.5-18.6":0.18625,"26.0":0.19743,"26.1":0.20488,"26.2":0.00373},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00252,"5.0-5.1":0,"6.0-6.1":0.0101,"7.0-7.1":0.00757,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02271,"10.0-10.2":0.00252,"10.3":0.04038,"11.0-11.2":0.46943,"11.3-11.4":0.01514,"12.0-12.1":0.00505,"12.2-12.5":0.11862,"13.0-13.1":0,"13.2":0.01262,"13.3":0.00505,"13.4-13.7":0.02271,"14.0-14.4":0.03786,"14.5-14.8":0.04795,"15.0-15.1":0.04038,"15.2-15.3":0.03281,"15.4":0.03533,"15.5":0.03786,"15.6-15.8":0.54767,"16.0":0.06814,"16.1":0.12619,"16.2":0.06562,"16.3":0.12114,"16.4":0.03029,"16.5":0.05048,"16.6-16.7":0.73947,"17.0":0.0631,"17.1":0.07571,"17.2":0.05552,"17.3":0.07824,"17.4":0.12871,"17.5":0.24481,"17.6-17.7":0.60067,"18.0":0.13376,"18.1":0.28267,"18.2":0.15143,"18.3":0.49214,"18.4":0.25238,"18.5-18.7":17.62373,"26.0":1.2089,"26.1":1.1029},P:{"20":0.01047,"21":0.02095,"22":0.02095,"23":0.02095,"24":0.02095,"25":0.02095,"26":0.0419,"27":0.06284,"28":0.36659,"29":3.58213,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01047},I:{"0":0.03133,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.08785,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.28636,"11":0.01909,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00628,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00628},H:{"0":0},L:{"0":36.24533},R:{_:"0"},M:{"0":0.31375}};
Index: de_modules/caniuse-lite/data/regions/IL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00403,"24":0.00403,"25":0.00805,"26":0.02013,"27":0.00403,"36":0.00403,"51":0.00403,"52":0.00805,"115":0.08052,"125":0.00403,"127":0.00403,"128":0.00403,"133":0.00403,"134":0.00403,"136":0.00403,"139":0.0161,"140":0.02013,"141":0.44689,"142":0.00805,"143":0.02416,"144":0.37442,"145":0.46299,"146":0.00805,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 130 131 132 135 137 138 147 148 3.5 3.6"},D:{"31":0.03221,"32":0.00805,"38":0.01208,"41":0.00403,"56":0.00805,"65":0.00403,"68":0.00403,"69":0.00403,"79":0.02818,"81":0.00403,"83":0.00403,"86":0.00403,"87":0.02818,"88":0.00403,"90":0.00403,"91":0.03221,"96":0.00403,"99":0.00403,"100":0.00403,"102":0.00403,"103":0.00805,"104":0.00403,"106":0.00403,"108":0.03221,"109":0.47909,"110":0.00403,"111":0.00403,"112":1.97274,"113":0.00403,"114":0.02818,"115":0.00805,"116":0.16104,"117":0.00403,"119":0.03221,"120":0.08052,"121":0.00805,"122":0.08857,"123":0.01208,"124":0.00805,"125":0.04026,"126":0.27779,"127":0.01208,"128":0.07247,"129":0.02416,"130":0.03623,"131":0.11273,"132":0.04026,"133":0.06442,"134":1.24806,"135":0.18117,"136":0.06442,"137":0.06844,"138":0.16909,"139":0.17312,"140":0.35026,"141":5.21367,"142":15.48802,"143":0.04429,"144":0.00403,_:"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 33 34 35 36 37 39 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 67 70 71 72 73 74 75 76 77 78 80 84 85 89 92 93 94 95 97 98 101 105 107 118 145 146"},F:{"91":0.00403,"92":0.02818,"93":0.00805,"95":0.0161,"120":0.00805,"122":0.24559,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00403,"104":0.00403,"109":0.02818,"114":0.03221,"122":0.00403,"128":0.00403,"129":0.00403,"130":0.00403,"131":0.00805,"132":0.00403,"133":0.00805,"134":0.00403,"135":0.00403,"136":0.00805,"137":0.0161,"138":0.0161,"139":0.0161,"140":0.02416,"141":0.27377,"142":2.323,"143":0.00403,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127"},E:{"7":0.00805,"8":0.1852,"14":0.00403,_:"0 4 5 6 9 10 11 12 13 15 3.1 3.2 7.1 9.1 10.1 11.1 12.1 16.0 16.4 17.0","5.1":0.00403,"6.1":0.00805,"13.1":0.00403,"14.1":0.0161,"15.1":0.00403,"15.2-15.3":0.00403,"15.4":0.00403,"15.5":0.00403,"15.6":0.04026,"16.1":0.00403,"16.2":0.00403,"16.3":0.01208,"16.5":0.00403,"16.6":0.08455,"17.1":0.07247,"17.2":0.00403,"17.3":0.00403,"17.4":0.01208,"17.5":0.01208,"17.6":0.05636,"18.0":0.00403,"18.1":0.03623,"18.2":0.00403,"18.3":0.0161,"18.4":0.00805,"18.5-18.6":0.06844,"26.0":0.09662,"26.1":0.11273,"26.2":0.00403},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0014,"5.0-5.1":0,"6.0-6.1":0.00559,"7.0-7.1":0.00419,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01258,"10.0-10.2":0.0014,"10.3":0.02236,"11.0-11.2":0.2599,"11.3-11.4":0.00838,"12.0-12.1":0.00279,"12.2-12.5":0.06567,"13.0-13.1":0,"13.2":0.00699,"13.3":0.00279,"13.4-13.7":0.01258,"14.0-14.4":0.02096,"14.5-14.8":0.02655,"15.0-15.1":0.02236,"15.2-15.3":0.01817,"15.4":0.01956,"15.5":0.02096,"15.6-15.8":0.30322,"16.0":0.03773,"16.1":0.06987,"16.2":0.03633,"16.3":0.06707,"16.4":0.01677,"16.5":0.02795,"16.6-16.7":0.40941,"17.0":0.03493,"17.1":0.04192,"17.2":0.03074,"17.3":0.04332,"17.4":0.07126,"17.5":0.13554,"17.6-17.7":0.33256,"18.0":0.07406,"18.1":0.1565,"18.2":0.08384,"18.3":0.27248,"18.4":0.13973,"18.5-18.7":9.75748,"26.0":0.66932,"26.1":0.61063},P:{"4":0.03091,"20":0.0103,"21":0.03091,"22":0.03091,"23":0.04121,"24":0.04121,"25":0.08242,"26":0.07212,"27":0.13393,"28":0.81387,"29":5.41895,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 15.0 16.0 18.0","7.2-7.4":0.0103,"11.1-11.2":0.0103,"13.0":0.0103,"14.0":0.0103,"17.0":0.0103,"19.0":0.0103},I:{"0":0.00597,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.22104,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00537,"10":0.00537,"11":0.02147,_:"6 7 8 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0239},H:{"0":0},L:{"0":44.18883},R:{_:"0"},M:{"0":0.23299}};
Index: de_modules/caniuse-lite/data/regions/IM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00439,"113":0.00878,"115":0.45196,"128":0.00439,"131":0.00439,"136":0.00878,"140":0.02194,"142":0.00878,"143":0.12286,"144":0.41247,"145":0.69769,"146":0.00439,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 132 133 134 135 137 138 139 141 147 148 3.5 3.6"},D:{"47":0.00439,"68":0.00439,"69":0.00439,"101":0.00439,"103":0.01755,"108":0.00439,"109":0.57483,"112":0.01755,"114":0.04827,"116":0.12286,"119":0.05266,"120":0.00878,"121":0.02194,"122":0.00878,"124":0.17552,"125":0.21062,"126":0.04388,"128":0.00878,"130":0.17991,"131":0.35982,"132":0.02633,"133":0.00439,"134":0.07898,"135":0.01755,"136":0.00439,"137":0.01755,"138":0.1843,"139":0.13603,"140":0.28083,"141":4.12033,"142":12.58478,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 104 105 106 107 110 111 113 115 117 118 123 127 129 143 144 145 146"},F:{"92":0.03072,"93":0.00878,"95":0.01755,"116":0.04827,"122":0.15797,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00439,"85":0.00439,"107":0.1448,"109":0.01755,"131":0.00439,"133":0.0351,"135":0.00439,"136":0.03072,"137":0.00878,"138":0.00439,"139":0.00439,"140":0.00878,"141":0.6582,"142":6.91549,"143":0.00439,_:"12 13 14 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4","13.1":0.03072,"14.1":0.08337,"15.5":0.00878,"15.6":0.37298,"16.0":0.00439,"16.1":0.01755,"16.2":0.03949,"16.3":0.0746,"16.4":0.00439,"16.5":0.06582,"16.6":0.24573,"17.0":0.00439,"17.1":0.66259,"17.2":0.00439,"17.3":0.00439,"17.4":0.00439,"17.5":0.35104,"17.6":0.44758,"18.0":0.09215,"18.1":0.1448,"18.2":0.01755,"18.3":0.06143,"18.4":0.07898,"18.5-18.6":0.28961,"26.0":0.29838,"26.1":0.72841,"26.2":0.39492},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00307,"5.0-5.1":0,"6.0-6.1":0.01228,"7.0-7.1":0.00921,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02762,"10.0-10.2":0.00307,"10.3":0.04911,"11.0-11.2":0.57087,"11.3-11.4":0.01842,"12.0-12.1":0.00614,"12.2-12.5":0.14425,"13.0-13.1":0,"13.2":0.01535,"13.3":0.00614,"13.4-13.7":0.02762,"14.0-14.4":0.04604,"14.5-14.8":0.05831,"15.0-15.1":0.04911,"15.2-15.3":0.0399,"15.4":0.04297,"15.5":0.04604,"15.6-15.8":0.66602,"16.0":0.08287,"16.1":0.15346,"16.2":0.0798,"16.3":0.14732,"16.4":0.03683,"16.5":0.06138,"16.6-16.7":0.89928,"17.0":0.07673,"17.1":0.09208,"17.2":0.06752,"17.3":0.09515,"17.4":0.15653,"17.5":0.29771,"17.6-17.7":0.73047,"18.0":0.16267,"18.1":0.34375,"18.2":0.18415,"18.3":0.59849,"18.4":0.30692,"18.5-18.7":21.43224,"26.0":1.47015,"26.1":1.34124},P:{"24":0.01134,"26":0.02267,"27":0.06802,"28":0.55546,"29":2.73194,_:"4 20 21 22 23 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.02267},I:{"0":0.0056,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1403,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02806},H:{"0":0},L:{"0":21.74995},R:{_:"0"},M:{"0":1.31882}};
Index: de_modules/caniuse-lite/data/regions/IN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"42":0.00259,"52":0.00259,"113":0.00259,"115":0.08301,"125":0.00259,"127":0.00259,"128":0.00259,"136":0.00778,"139":0.00259,"140":0.01297,"141":0.00259,"142":0.00259,"143":0.00778,"144":0.15564,"145":0.18677,"146":0.00519,_:"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 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 126 129 130 131 132 133 134 135 137 138 147 148 3.5 3.6"},D:{"49":0.00259,"52":0.00259,"68":0.00259,"69":0.00259,"70":0.00259,"71":0.00259,"73":0.00259,"74":0.00259,"76":0.00259,"79":0.00259,"80":0.00259,"81":0.00259,"83":0.00259,"85":0.00259,"86":0.00259,"87":0.00778,"89":0.00259,"91":0.00519,"93":0.00259,"94":0.00259,"99":0.00259,"102":0.00259,"103":0.01038,"104":0.00259,"105":0.00259,"106":0.00259,"108":0.00519,"109":0.75745,"111":0.00259,"112":0.03891,"114":0.00778,"115":0.00259,"116":0.00778,"117":0.00259,"118":0.00259,"119":0.02335,"120":0.01038,"121":0.00519,"122":0.01038,"123":0.00519,"124":0.00778,"125":0.07263,"126":0.06485,"127":0.01556,"128":0.01297,"129":0.00778,"130":0.03891,"131":0.05447,"132":0.01816,"133":0.01816,"134":0.03113,"135":0.02853,"136":0.03113,"137":0.03632,"138":0.10895,"139":0.0856,"140":0.1712,"141":1.91956,"142":6.26451,"143":0.02075,"144":0.00519,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 72 75 77 78 84 88 90 92 95 96 97 98 100 101 107 110 113 145 146"},F:{"85":0.00259,"90":0.00259,"91":0.00778,"92":0.19196,"93":0.02594,"95":0.00778,"122":0.03372,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00259,"92":0.00519,"109":0.00519,"112":0.00259,"114":0.02075,"122":0.00259,"131":0.00259,"133":0.00259,"134":0.00259,"135":0.00259,"136":0.00259,"137":0.00259,"138":0.00519,"139":0.00519,"140":0.01297,"141":0.09079,"142":0.78858,"143":0.00519,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3","15.6":0.00519,"16.6":0.00778,"17.1":0.00259,"17.4":0.00259,"17.5":0.00259,"17.6":0.01038,"18.0":0.00259,"18.1":0.00259,"18.2":0.00259,"18.3":0.00778,"18.4":0.00259,"18.5-18.6":0.01556,"26.0":0.03891,"26.1":0.03891,"26.2":0.00259},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00019,"5.0-5.1":0,"6.0-6.1":0.00076,"7.0-7.1":0.00057,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00171,"10.0-10.2":0.00019,"10.3":0.00305,"11.0-11.2":0.0354,"11.3-11.4":0.00114,"12.0-12.1":0.00038,"12.2-12.5":0.00895,"13.0-13.1":0,"13.2":0.00095,"13.3":0.00038,"13.4-13.7":0.00171,"14.0-14.4":0.00286,"14.5-14.8":0.00362,"15.0-15.1":0.00305,"15.2-15.3":0.00247,"15.4":0.00266,"15.5":0.00286,"15.6-15.8":0.0413,"16.0":0.00514,"16.1":0.00952,"16.2":0.00495,"16.3":0.00914,"16.4":0.00228,"16.5":0.00381,"16.6-16.7":0.05577,"17.0":0.00476,"17.1":0.00571,"17.2":0.00419,"17.3":0.0059,"17.4":0.00971,"17.5":0.01846,"17.6-17.7":0.0453,"18.0":0.01009,"18.1":0.02132,"18.2":0.01142,"18.3":0.03712,"18.4":0.01903,"18.5-18.7":1.3291,"26.0":0.09117,"26.1":0.08318},P:{"23":0.01039,"24":0.01039,"25":0.01039,"26":0.02079,"27":0.04158,"28":0.13513,"29":0.34301,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02079},I:{"0":0.01479,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.18142,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01297,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.10368,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":1.04425},H:{"0":0.07},L:{"0":81.43641},R:{_:"0"},M:{"0":0.1259}};
Index: de_modules/caniuse-lite/data/regions/IQ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IQ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00689,"52":0.00345,"72":0.00345,"101":0.00689,"115":0.03102,"122":0.01034,"123":0.02758,"144":0.03102,"145":0.03792,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"11":0.00345,"38":0.00345,"43":0.00345,"56":0.00689,"65":0.00689,"66":0.00345,"68":0.00345,"69":0.01724,"70":0.00345,"72":0.00345,"73":0.01034,"74":0.01034,"75":0.00689,"77":0.00345,"79":0.03792,"81":0.00345,"83":0.05171,"85":0.00345,"86":0.00345,"87":0.04481,"88":0.00345,"89":0.00345,"90":0.00345,"91":0.02758,"93":0.01034,"94":0.00689,"95":0.01034,"96":0.00345,"97":0.00345,"98":0.05171,"99":0.00345,"100":0.00345,"101":0.00689,"102":0.01724,"103":0.03102,"104":0.00345,"105":0.00345,"106":0.00345,"107":0.00345,"108":0.01379,"109":0.3447,"110":0.02068,"111":0.01379,"112":9.28967,"113":0.00345,"114":0.02068,"116":0.01034,"119":0.01724,"120":0.02068,"121":0.01379,"122":0.04481,"123":0.00689,"124":0.00345,"125":0.14822,"126":2.17506,"127":0.01034,"128":0.01034,"129":0.00345,"130":0.00345,"131":0.02068,"132":0.01379,"133":0.00689,"134":0.74111,"135":0.01034,"136":0.00689,"137":0.03792,"138":0.05515,"139":0.23784,"140":0.06549,"141":0.58944,"142":2.39567,"143":0.01379,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 67 71 76 78 80 84 92 115 117 118 144 145 146"},F:{"28":0.00345,"92":0.05171,"93":0.01034,"95":0.00689,"122":0.02413,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00345,"102":0.01034,"109":0.01034,"114":0.25163,"121":0.00345,"122":0.00689,"140":0.00345,"141":0.03102,"142":0.21716,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 143"},E:{"14":0.00345,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.4","5.1":0.00345,"13.1":0.00689,"14.1":0.01034,"15.4":0.00345,"15.5":0.00345,"15.6":0.02068,"16.1":0.00689,"16.2":0.00689,"16.3":0.01034,"16.5":0.00345,"16.6":0.02758,"17.0":0.00345,"17.1":0.02068,"17.2":0.00689,"17.3":0.01034,"17.4":0.01034,"17.5":0.01379,"17.6":0.02068,"18.0":0.00345,"18.1":0.01379,"18.2":0.00345,"18.3":0.02068,"18.4":0.00345,"18.5-18.6":0.04826,"26.0":0.06205,"26.1":0.04826,"26.2":0.00345},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00105,"5.0-5.1":0,"6.0-6.1":0.0042,"7.0-7.1":0.00315,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00945,"10.0-10.2":0.00105,"10.3":0.0168,"11.0-11.2":0.19526,"11.3-11.4":0.0063,"12.0-12.1":0.0021,"12.2-12.5":0.04934,"13.0-13.1":0,"13.2":0.00525,"13.3":0.0021,"13.4-13.7":0.00945,"14.0-14.4":0.01575,"14.5-14.8":0.01995,"15.0-15.1":0.0168,"15.2-15.3":0.01365,"15.4":0.0147,"15.5":0.01575,"15.6-15.8":0.2278,"16.0":0.02834,"16.1":0.05249,"16.2":0.02729,"16.3":0.05039,"16.4":0.0126,"16.5":0.021,"16.6-16.7":0.30759,"17.0":0.02624,"17.1":0.03149,"17.2":0.0231,"17.3":0.03254,"17.4":0.05354,"17.5":0.10183,"17.6-17.7":0.24985,"18.0":0.05564,"18.1":0.11758,"18.2":0.06299,"18.3":0.20471,"18.4":0.10498,"18.5-18.7":7.33069,"26.0":0.50285,"26.1":0.45876},P:{"4":0.031,"20":0.01033,"21":0.031,"22":0.02067,"23":0.05167,"24":0.04134,"25":0.08268,"26":0.19635,"27":0.09301,"28":0.38237,"29":1.97387,_:"5.0-5.4 9.2 10.1 12.0 16.0 18.0","6.2-6.4":0.01033,"7.2-7.4":0.10334,"8.2":0.01033,"11.1-11.2":0.02067,"13.0":0.01033,"14.0":0.02067,"15.0":0.01033,"17.0":0.031,"19.0":0.02067},I:{"0":0.04581,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.55045,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02413,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.13106},H:{"0":0},L:{"0":66.9785},R:{_:"0"},M:{"0":0.08519}};
Index: de_modules/caniuse-lite/data/regions/IR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"43":0.00324,"47":0.00324,"52":0.00971,"56":0.00324,"60":0.00324,"72":0.00324,"94":0.00324,"98":0.00324,"106":0.00324,"114":0.00324,"115":1.00285,"121":0.00324,"127":0.03235,"128":0.01618,"130":0.00324,"131":0.00324,"132":0.00324,"133":0.00647,"134":0.00324,"135":0.00647,"136":0.00971,"137":0.00647,"138":0.00971,"139":0.00647,"140":0.08088,"141":0.01618,"142":0.02588,"143":0.05823,"144":0.98991,"145":1.19048,"146":0.00324,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 99 100 101 102 103 104 105 107 108 109 110 111 112 113 116 117 118 119 120 122 123 124 125 126 129 147 148 3.5 3.6"},D:{"47":0.00324,"49":0.00324,"51":0.00324,"62":0.00324,"63":0.00324,"64":0.00324,"67":0.00324,"68":0.00324,"69":0.00324,"70":0.00324,"71":0.01294,"72":0.00324,"73":0.00324,"74":0.00324,"75":0.00324,"76":0.00324,"77":0.00324,"78":0.01294,"79":0.01294,"80":0.00971,"81":0.00971,"83":0.01294,"84":0.00971,"85":0.00647,"86":0.02265,"87":0.02588,"88":0.00647,"89":0.00971,"90":0.00647,"91":0.00647,"92":0.01618,"93":0.00324,"94":0.00647,"95":0.00647,"96":0.00971,"97":0.00647,"98":0.00971,"99":0.00647,"100":0.00647,"101":0.00647,"102":0.00971,"103":0.01618,"104":0.01294,"105":0.00971,"106":0.01294,"107":0.02588,"108":0.02265,"109":2.72711,"110":0.00647,"111":0.00971,"112":0.32997,"113":0.00647,"114":0.01618,"115":0.00971,"116":0.01618,"117":0.01294,"118":0.01618,"119":0.02265,"120":0.02912,"121":0.02265,"122":0.03559,"123":0.03559,"124":0.02265,"125":0.02265,"126":0.22969,"127":0.03235,"128":0.02912,"129":0.02912,"130":0.04853,"131":0.13587,"132":0.055,"133":0.06794,"134":0.08735,"135":0.10352,"136":0.1294,"137":0.3138,"138":0.32997,"139":0.29439,"140":0.53378,"141":3.38381,"142":8.82832,"143":0.02265,"144":0.00324,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 52 53 54 55 56 57 58 59 60 61 65 66 145 146"},F:{"79":0.00971,"92":0.01294,"93":0.00324,"95":0.04529,"114":0.00324,"119":0.00324,"120":0.00647,"122":0.07117,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00324,"13":0.00324,"14":0.00324,"15":0.00324,"16":0.00324,"17":0.00324,"18":0.01294,"88":0.00324,"89":0.00324,"90":0.00324,"92":0.055,"100":0.00647,"109":0.10676,"114":0.01294,"122":0.00971,"127":0.00324,"128":0.00324,"129":0.00324,"131":0.00647,"132":0.00324,"133":0.00971,"134":0.00324,"135":0.00647,"136":0.00647,"137":0.00647,"138":0.00971,"139":0.00971,"140":0.02265,"141":0.1197,"142":0.76023,_:"79 80 81 83 84 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 130 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.2 26.2","13.1":0.00324,"15.6":0.00647,"16.6":0.00647,"17.1":0.00324,"17.5":0.00324,"17.6":0.00324,"18.1":0.00324,"18.3":0.00647,"18.4":0.00324,"18.5-18.6":0.00971,"26.0":0.01941,"26.1":0.01941},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00061,"5.0-5.1":0,"6.0-6.1":0.00242,"7.0-7.1":0.00182,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00546,"10.0-10.2":0.00061,"10.3":0.0097,"11.0-11.2":0.11274,"11.3-11.4":0.00364,"12.0-12.1":0.00121,"12.2-12.5":0.02849,"13.0-13.1":0,"13.2":0.00303,"13.3":0.00121,"13.4-13.7":0.00546,"14.0-14.4":0.00909,"14.5-14.8":0.01152,"15.0-15.1":0.0097,"15.2-15.3":0.00788,"15.4":0.00849,"15.5":0.00909,"15.6-15.8":0.13153,"16.0":0.01637,"16.1":0.03031,"16.2":0.01576,"16.3":0.02909,"16.4":0.00727,"16.5":0.01212,"16.6-16.7":0.1776,"17.0":0.01515,"17.1":0.01818,"17.2":0.01334,"17.3":0.01879,"17.4":0.03091,"17.5":0.0588,"17.6-17.7":0.14426,"18.0":0.03213,"18.1":0.06789,"18.2":0.03637,"18.3":0.1182,"18.4":0.06061,"18.5-18.7":4.2327,"26.0":0.29034,"26.1":0.26488},P:{"4":0.03994,"20":0.02996,"21":0.04993,"22":0.09985,"23":0.10984,"24":0.16975,"25":0.22966,"26":0.24963,"27":0.41937,"28":1.30805,"29":1.65752,"5.0-5.4":0.00999,"6.2-6.4":0.01997,"7.2-7.4":0.11982,"8.2":0.00999,"9.2":0.01997,_:"10.1 12.0","11.1-11.2":0.02996,"13.0":0.02996,"14.0":0.02996,"15.0":0.00999,"16.0":0.02996,"17.0":0.04993,"18.0":0.02996,"19.0":0.02996},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.26413,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00324,"11":2.71417,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02706},H:{"0":0.02},L:{"0":61.30364},R:{_:"0"},M:{"0":0.98093}};
Index: de_modules/caniuse-lite/data/regions/IS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.19236,"60":0.00663,"78":0.00663,"103":0.0199,"113":0.00663,"115":0.05306,"125":0.01327,"128":0.03317,"134":0.00663,"135":0.00663,"139":0.00663,"140":0.27195,"141":0.00663,"142":0.0199,"143":0.0398,"144":1.06791,"145":1.2868,"146":0.00663,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 136 137 138 147 148 3.5 3.6"},D:{"38":0.0199,"79":0.0199,"87":0.00663,"92":0.00663,"98":0.02653,"99":0.01327,"101":0.00663,"103":0.0199,"104":0.0199,"108":0.03317,"109":0.21889,"110":0.01327,"112":0.00663,"113":0.01327,"114":0.30512,"115":0.01327,"116":0.14593,"117":0.00663,"118":0.0796,"120":0.01327,"121":0.00663,"122":0.09286,"123":0.01327,"124":0.05306,"125":0.09286,"126":0.03317,"127":0.57044,"128":0.10613,"129":0.11276,"130":0.0597,"131":0.12603,"132":0.35818,"133":0.0995,"134":0.04643,"135":0.15256,"136":0.39135,"137":0.37808,"138":0.84902,"139":0.7031,"140":1.16741,"141":10.07553,"142":23.48082,"143":0.0199,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 93 94 95 96 97 100 102 105 106 107 111 119 144 145 146"},F:{"92":0.0199,"95":0.06633,"114":0.00663,"119":0.02653,"122":1.04138,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"98":0.00663,"109":0.00663,"123":0.00663,"129":0.00663,"130":0.00663,"133":0.00663,"135":0.00663,"136":0.00663,"137":0.00663,"138":0.03317,"139":0.01327,"140":0.03317,"141":0.80259,"142":6.48707,"143":0.00663,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 126 127 128 131 132 134"},E:{"14":0.00663,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.00663,"14.1":0.01327,"15.4":0.0199,"15.5":0.0398,"15.6":0.39135,"16.0":0.01327,"16.1":0.01327,"16.2":0.00663,"16.3":0.40461,"16.4":0.07296,"16.5":0.07296,"16.6":0.32502,"17.0":0.0199,"17.1":0.21889,"17.2":0.04643,"17.3":0.13929,"17.4":0.0398,"17.5":0.29849,"17.6":0.45104,"18.0":0.09286,"18.1":0.06633,"18.2":0.0597,"18.3":0.29849,"18.4":0.21889,"18.5-18.6":0.24542,"26.0":0.78269,"26.1":0.83576,"26.2":0.0199},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00158,"5.0-5.1":0,"6.0-6.1":0.00631,"7.0-7.1":0.00473,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0142,"10.0-10.2":0.00158,"10.3":0.02524,"11.0-11.2":0.29338,"11.3-11.4":0.00946,"12.0-12.1":0.00315,"12.2-12.5":0.07413,"13.0-13.1":0,"13.2":0.00789,"13.3":0.00315,"13.4-13.7":0.0142,"14.0-14.4":0.02366,"14.5-14.8":0.02997,"15.0-15.1":0.02524,"15.2-15.3":0.0205,"15.4":0.02208,"15.5":0.02366,"15.6-15.8":0.34228,"16.0":0.04259,"16.1":0.07887,"16.2":0.04101,"16.3":0.07571,"16.4":0.01893,"16.5":0.03155,"16.6-16.7":0.46215,"17.0":0.03943,"17.1":0.04732,"17.2":0.0347,"17.3":0.0489,"17.4":0.08044,"17.5":0.153,"17.6-17.7":0.3754,"18.0":0.0836,"18.1":0.17666,"18.2":0.09464,"18.3":0.30757,"18.4":0.15773,"18.5-18.7":11.01434,"26.0":0.75553,"26.1":0.68928},P:{"26":0.03117,"27":0.01039,"28":0.21819,"29":2.23387,_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01039,"8.2":0.01039},I:{"0":0.01681,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.09425,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.05722},H:{"0":0},L:{"0":15.91237},R:{_:"0"},M:{"0":0.52173}};
Index: de_modules/caniuse-lite/data/regions/IT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/IT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"2":0.00497,"52":0.02486,"59":0.04474,"76":0.00497,"78":0.0348,"82":0.00497,"102":0.00994,"113":0.00497,"115":0.28832,"119":0.00497,"125":0.00497,"127":0.00497,"128":0.01491,"132":0.00497,"133":0.00497,"134":0.00497,"135":0.00497,"136":0.01491,"137":0.00497,"138":0.00497,"139":0.00497,"140":0.10439,"141":0.01491,"142":0.02983,"143":0.04971,"144":1.34217,"145":1.72494,"146":0.01988,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 120 121 122 123 124 126 129 130 131 147 148 3.5 3.6"},D:{"38":0.00497,"39":0.01491,"40":0.01491,"41":0.01491,"42":0.01491,"43":0.01491,"44":0.01491,"45":0.01491,"46":0.01491,"47":0.01491,"48":0.01988,"49":0.03977,"50":0.01491,"51":0.01491,"52":0.01491,"53":0.01491,"54":0.01491,"55":0.01491,"56":0.01491,"57":0.01491,"58":0.01491,"59":0.01491,"60":0.01491,"63":0.01491,"65":0.00497,"66":0.19884,"74":0.01988,"77":0.01491,"79":0.02983,"81":0.00497,"85":0.02486,"86":0.01988,"87":0.02983,"88":0.00497,"90":0.00497,"91":0.23364,"94":0.00497,"101":0.00497,"102":0.00497,"103":0.06462,"104":0.00497,"105":0.00497,"106":0.03977,"107":0.00497,"108":0.01491,"109":1.40182,"110":0.00497,"111":0.00994,"112":0.00994,"113":0.00497,"114":0.01988,"115":0.00994,"116":0.16901,"117":0.00497,"118":0.00994,"119":0.02983,"120":0.0348,"121":0.01491,"122":0.06462,"123":0.01988,"124":0.06462,"125":0.12428,"126":0.04971,"127":0.01988,"128":0.13919,"129":0.01988,"130":0.10439,"131":0.18393,"132":0.04474,"133":0.06462,"134":0.08451,"135":0.17896,"136":0.07457,"137":0.10439,"138":0.35294,"139":0.25352,"140":0.40265,"141":5.74648,"142":20.29659,"143":0.04474,"144":0.00994,_:"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 33 34 35 36 37 61 62 64 67 68 69 70 71 72 73 75 76 78 80 83 84 89 92 93 95 96 97 98 99 100 145 146"},F:{"46":0.00497,"89":0.00497,"92":0.05468,"93":0.00497,"95":0.0348,"114":0.00497,"120":0.08948,"122":0.37283,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01988,"85":0.01491,"92":0.00994,"109":0.02983,"114":0.00994,"121":0.00497,"122":0.01491,"124":0.00497,"126":0.00497,"129":0.00497,"131":0.00994,"132":0.00994,"133":0.00497,"134":0.00994,"135":0.00497,"136":0.00497,"137":0.00994,"138":0.02486,"139":0.01491,"140":0.04474,"141":0.37283,"142":3.75311,"143":0.00994,_:"12 13 14 15 16 18 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 125 127 128 130"},E:{"13":0.00497,"14":0.00994,"15":0.00497,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.04474,"12.1":0.00497,"13.1":0.03977,"14.1":0.04474,"15.1":0.00497,"15.2-15.3":0.00497,"15.4":0.00994,"15.5":0.01491,"15.6":0.19387,"16.0":0.01491,"16.1":0.01491,"16.2":0.01491,"16.3":0.03977,"16.4":0.01491,"16.5":0.01988,"16.6":0.13919,"17.0":0.00994,"17.1":0.09942,"17.2":0.0348,"17.3":0.01988,"17.4":0.02983,"17.5":0.05468,"17.6":0.25352,"18.0":0.01988,"18.1":0.04971,"18.2":0.01988,"18.3":0.06462,"18.4":0.04474,"18.5-18.6":0.20878,"26.0":0.4971,"26.1":0.55675,"26.2":0.01988},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00127,"5.0-5.1":0,"6.0-6.1":0.00506,"7.0-7.1":0.0038,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01139,"10.0-10.2":0.00127,"10.3":0.02026,"11.0-11.2":0.23549,"11.3-11.4":0.0076,"12.0-12.1":0.00253,"12.2-12.5":0.0595,"13.0-13.1":0,"13.2":0.00633,"13.3":0.00253,"13.4-13.7":0.01139,"14.0-14.4":0.01899,"14.5-14.8":0.02405,"15.0-15.1":0.02026,"15.2-15.3":0.01646,"15.4":0.01772,"15.5":0.01899,"15.6-15.8":0.27473,"16.0":0.03418,"16.1":0.0633,"16.2":0.03292,"16.3":0.06077,"16.4":0.01519,"16.5":0.02532,"16.6-16.7":0.37095,"17.0":0.03165,"17.1":0.03798,"17.2":0.02785,"17.3":0.03925,"17.4":0.06457,"17.5":0.12281,"17.6-17.7":0.30132,"18.0":0.0671,"18.1":0.1418,"18.2":0.07596,"18.3":0.24688,"18.4":0.12661,"18.5-18.7":8.84083,"26.0":0.60644,"26.1":0.55326},P:{"4":0.04149,"20":0.01037,"21":0.01037,"22":0.01037,"23":0.02075,"24":0.08299,"25":0.02075,"26":0.04149,"27":0.07261,"28":0.34232,"29":2.15763,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01037,"19.0":0.01037},I:{"0":0.03014,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33198,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02307,"9":0.00577,"10":0.00577,"11":0.10956,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.06539},H:{"0":0},L:{"0":37.38482},R:{_:"0"},M:{"0":0.4024}};
Index: de_modules/caniuse-lite/data/regions/JE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/JE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00425,"78":0.00425,"115":0.03399,"136":0.07223,"140":0.03824,"143":0.01275,"144":0.61611,"145":0.58636,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 146 147 148 3.5 3.6"},D:{"76":0.0085,"80":0.017,"81":0.00425,"87":0.06798,"93":0.0085,"98":0.00425,"102":0.00425,"103":0.08498,"105":0.00425,"109":0.07648,"111":0.00425,"116":0.02549,"119":0.00425,"120":0.00425,"122":0.34417,"123":0.01275,"124":0.0085,"125":0.08073,"126":0.10198,"128":0.09773,"129":0.00425,"132":0.00425,"133":0.0085,"134":0.02549,"135":0.06374,"136":0.03824,"137":0.0085,"138":0.70958,"139":0.11897,"140":0.88379,"141":4.54643,"142":9.97665,"143":0.04249,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 83 84 85 86 88 89 90 91 92 94 95 96 97 99 100 101 104 106 107 108 110 112 113 114 115 117 118 121 127 130 131 144 145 146"},F:{"111":0.00425,"122":0.07648,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01275,"125":0.00425,"129":0.39941,"131":0.00425,"132":0.17421,"134":0.00425,"136":0.00425,"137":0.00425,"138":0.00425,"139":0.0085,"140":0.28893,"141":0.76907,"142":8.20057,"143":0.01275,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 126 127 128 130 133 135"},E:{"14":0.02549,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.4 17.0","12.1":0.00425,"13.1":0.03399,"14.1":0.03824,"15.1":0.00425,"15.2-15.3":0.01275,"15.5":0.01275,"15.6":0.37816,"16.0":0.06374,"16.1":0.04674,"16.2":0.0085,"16.3":0.05949,"16.4":0.02974,"16.5":0.02974,"16.6":0.39941,"17.1":0.87954,"17.2":0.00425,"17.3":0.04249,"17.4":0.05524,"17.5":0.07223,"17.6":0.47164,"18.0":0.00425,"18.1":0.06798,"18.2":0.00425,"18.3":0.04249,"18.4":0.02549,"18.5-18.6":0.31443,"26.0":0.40366,"26.1":0.94328,"26.2":0.00425},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00309,"5.0-5.1":0,"6.0-6.1":0.01236,"7.0-7.1":0.00927,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0278,"10.0-10.2":0.00309,"10.3":0.04943,"11.0-11.2":0.57464,"11.3-11.4":0.01854,"12.0-12.1":0.00618,"12.2-12.5":0.1452,"13.0-13.1":0,"13.2":0.01545,"13.3":0.00618,"13.4-13.7":0.0278,"14.0-14.4":0.04634,"14.5-14.8":0.0587,"15.0-15.1":0.04943,"15.2-15.3":0.04016,"15.4":0.04325,"15.5":0.04634,"15.6-15.8":0.67041,"16.0":0.08341,"16.1":0.15447,"16.2":0.08033,"16.3":0.14829,"16.4":0.03707,"16.5":0.06179,"16.6-16.7":0.90521,"17.0":0.07724,"17.1":0.09268,"17.2":0.06797,"17.3":0.09577,"17.4":0.15756,"17.5":0.29968,"17.6-17.7":0.73529,"18.0":0.16374,"18.1":0.34602,"18.2":0.18537,"18.3":0.60244,"18.4":0.30894,"18.5-18.7":21.57354,"26.0":1.47984,"26.1":1.35008},P:{"4":0.02199,"21":0.011,"26":0.011,"27":0.011,"28":0.20892,"29":3.12276,_:"20 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","16.0":0.10996},I:{"0":0.00574,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.02876,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":24.52202},R:{_:"0"},M:{"0":0.10927}};
Index: de_modules/caniuse-lite/data/regions/JM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/JM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.05425,"115":0.00603,"125":0.01206,"139":0.01206,"140":0.01808,"142":0.01206,"143":0.01206,"144":0.24112,"145":0.6028,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 141 146 147 148 3.5 3.6"},D:{"65":0.00603,"69":0.06028,"70":0.01206,"73":0.01808,"75":0.00603,"76":0.00603,"79":0.01206,"83":0.01808,"87":0.01206,"88":0.00603,"91":0.00603,"93":0.01808,"96":0.00603,"98":0.01206,"99":0.00603,"100":0.00603,"101":0.00603,"102":0.00603,"103":0.06028,"105":0.00603,"108":0.00603,"109":0.1507,"111":0.07234,"112":24.14817,"113":0.01206,"114":0.01206,"116":0.06028,"118":0.00603,"119":0.01206,"120":0.00603,"121":0.00603,"122":0.10248,"123":0.00603,"124":0.01808,"125":1.0549,"126":5.15394,"127":0.00603,"128":0.09042,"129":0.00603,"130":0.01808,"131":0.04822,"132":0.12659,"133":0.01206,"134":0.01808,"135":0.01808,"136":0.04822,"137":0.06631,"138":0.16276,"139":0.14467,"140":0.26523,"141":3.25512,"142":11.4532,"143":0.03617,"144":0.00603,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 71 72 74 77 78 80 81 84 85 86 89 90 92 94 95 97 104 106 107 110 115 117 145 146"},F:{"92":0.03617,"102":0.00603,"122":0.53649,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01206,"92":0.00603,"114":0.57266,"135":0.00603,"137":0.00603,"138":0.00603,"139":0.01206,"140":0.02411,"141":0.4943,"142":3.39979,"143":0.01206,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0","13.1":0.00603,"14.1":0.01206,"15.6":0.06028,"16.3":0.00603,"16.4":0.01808,"16.6":0.09042,"17.1":0.03014,"17.2":0.00603,"17.3":0.01206,"17.4":0.00603,"17.5":0.03014,"17.6":0.09042,"18.0":0.00603,"18.1":0.01206,"18.2":0.01206,"18.3":0.11453,"18.4":0.01206,"18.5-18.6":0.12056,"26.0":0.27126,"26.1":0.41593,"26.2":0.00603},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0.00473,"7.0-7.1":0.00355,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01064,"10.0-10.2":0.00118,"10.3":0.01892,"11.0-11.2":0.21994,"11.3-11.4":0.00709,"12.0-12.1":0.00236,"12.2-12.5":0.05558,"13.0-13.1":0,"13.2":0.00591,"13.3":0.00236,"13.4-13.7":0.01064,"14.0-14.4":0.01774,"14.5-14.8":0.02247,"15.0-15.1":0.01892,"15.2-15.3":0.01537,"15.4":0.01655,"15.5":0.01774,"15.6-15.8":0.25659,"16.0":0.03193,"16.1":0.05912,"16.2":0.03074,"16.3":0.05676,"16.4":0.01419,"16.5":0.02365,"16.6-16.7":0.34646,"17.0":0.02956,"17.1":0.03547,"17.2":0.02601,"17.3":0.03666,"17.4":0.06031,"17.5":0.1147,"17.6-17.7":0.28143,"18.0":0.06267,"18.1":0.13244,"18.2":0.07095,"18.3":0.23058,"18.4":0.11825,"18.5-18.7":8.25715,"26.0":0.5664,"26.1":0.51674},P:{"4":0.01067,"20":0.02134,"23":0.03202,"24":0.02134,"25":0.02134,"26":0.05336,"27":0.07471,"28":0.49092,"29":2.35857,_:"21 22 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","6.2-6.4":0.03202,"7.2-7.4":0.04269,"16.0":0.01067},I:{"0":0.0357,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.21846,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00397},O:{"0":0.06752},H:{"0":0},L:{"0":27.95375},R:{_:"0"},M:{"0":0.11519}};
Index: de_modules/caniuse-lite/data/regions/JO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/JO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01172,"115":0.0469,"125":0.00293,"128":0.00293,"136":0.00293,"140":0.00586,"143":0.00293,"144":0.24914,"145":0.30482,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 137 138 139 141 142 146 147 148 3.5 3.6"},D:{"11":0.00293,"66":0.00293,"69":0.01172,"73":0.00293,"79":0.00879,"83":0.00586,"84":0.00293,"86":0.00586,"87":0.01759,"88":0.00293,"91":0.00293,"96":0.01466,"98":0.04103,"100":0.00879,"101":0.00293,"103":0.00586,"104":0.00293,"106":0.00879,"107":0.00293,"108":0.01759,"109":0.74447,"111":0.01172,"112":7.39784,"113":0.00293,"114":0.00879,"116":0.00586,"117":0.09086,"119":0.01759,"120":0.0381,"121":0.00586,"122":0.11138,"123":0.00586,"124":0.01172,"125":0.15534,"126":2.26273,"127":0.00586,"128":0.02638,"129":0.00586,"130":0.00586,"131":0.02052,"132":0.02931,"133":0.00879,"134":0.01172,"135":0.02052,"136":0.02931,"137":0.04103,"138":0.11724,"139":0.05569,"140":0.1231,"141":2.25394,"142":6.76182,"143":0.01759,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 74 75 76 77 78 80 81 85 89 90 92 93 94 95 97 99 102 105 110 115 118 144 145 146"},F:{"92":0.01466,"93":0.00293,"95":0.00293,"114":0.00293,"115":0.00293,"116":0.00293,"119":0.02931,"120":0.02345,"121":0.00586,"122":0.06155,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.00293,"92":0.00586,"109":0.01172,"114":0.34586,"122":0.00293,"125":0.00293,"131":0.00293,"133":0.00293,"135":0.00586,"136":0.00293,"137":0.00293,"138":0.00293,"139":0.00879,"140":0.02931,"141":0.14948,"142":1.2193,"143":0.00586,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 129 130 132 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.1 16.4 16.5 17.0 17.2","5.1":0.00293,"14.1":0.00293,"15.5":0.00293,"15.6":0.01759,"16.0":0.00586,"16.2":0.00293,"16.3":0.00293,"16.6":0.05569,"17.1":0.01759,"17.3":0.00879,"17.4":0.00586,"17.5":0.00293,"17.6":0.02931,"18.0":0.00293,"18.1":0.00586,"18.2":0.00293,"18.3":0.01172,"18.4":0.00293,"18.5-18.6":0.02638,"26.0":0.05276,"26.1":0.0469,"26.2":0.00293},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00152,"5.0-5.1":0,"6.0-6.1":0.00606,"7.0-7.1":0.00455,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01364,"10.0-10.2":0.00152,"10.3":0.02425,"11.0-11.2":0.28194,"11.3-11.4":0.00909,"12.0-12.1":0.00303,"12.2-12.5":0.07124,"13.0-13.1":0,"13.2":0.00758,"13.3":0.00303,"13.4-13.7":0.01364,"14.0-14.4":0.02274,"14.5-14.8":0.0288,"15.0-15.1":0.02425,"15.2-15.3":0.01971,"15.4":0.02122,"15.5":0.02274,"15.6-15.8":0.32893,"16.0":0.04093,"16.1":0.07579,"16.2":0.03941,"16.3":0.07276,"16.4":0.01819,"16.5":0.03032,"16.6-16.7":0.44413,"17.0":0.0379,"17.1":0.04547,"17.2":0.03335,"17.3":0.04699,"17.4":0.07731,"17.5":0.14703,"17.6-17.7":0.36076,"18.0":0.08034,"18.1":0.16977,"18.2":0.09095,"18.3":0.29558,"18.4":0.15158,"18.5-18.7":10.58489,"26.0":0.72607,"26.1":0.66241},P:{"21":0.01037,"22":0.02074,"23":0.02074,"24":0.01037,"25":0.08295,"26":0.04148,"27":0.06222,"28":0.22813,"29":1.34801,_:"4 20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01037,"7.2-7.4":0.03111},I:{"0":0.0353,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.05656,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03517,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02121},H:{"0":0},L:{"0":58.5981},R:{_:"0"},M:{"0":0.06363}};
Index: de_modules/caniuse-lite/data/regions/JP.js
===================================================================
--- node_modules/caniuse-lite/data/regions/JP.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00514,"48":0.00514,"52":0.02572,"56":0.00514,"66":0.00514,"78":0.01543,"113":0.01543,"115":0.1749,"125":0.00514,"128":0.01029,"132":0.00514,"133":0.00514,"134":0.01029,"135":0.01029,"136":0.01543,"137":0.00514,"138":0.00514,"139":0.00514,"140":0.05144,"141":0.01029,"142":0.01543,"143":0.03086,"144":1.12654,"145":1.31686,"146":0.00514,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 147 148 3.5 3.6"},D:{"39":0.02058,"40":0.02058,"41":0.02058,"42":0.02058,"43":0.02058,"44":0.02058,"45":0.02058,"46":0.02058,"47":0.02058,"48":0.02058,"49":0.04115,"50":0.02572,"51":0.02058,"52":0.03086,"53":0.02058,"54":0.02058,"55":0.02572,"56":0.02572,"57":0.02058,"58":0.02572,"59":0.02058,"60":0.02058,"69":0.00514,"70":0.00514,"74":0.01029,"75":0.00514,"78":0.00514,"79":0.01029,"80":0.01029,"81":0.01029,"83":0.01029,"85":0.01029,"86":0.01029,"87":0.01029,"88":0.00514,"89":0.00514,"90":0.00514,"91":0.00514,"93":0.01029,"95":0.01029,"96":0.00514,"97":0.01029,"98":0.01543,"99":0.00514,"100":0.00514,"101":0.02058,"102":0.00514,"103":0.0463,"104":0.12346,"105":0.00514,"106":0.01029,"107":0.01029,"108":0.00514,"109":0.59156,"110":0.0463,"111":0.01029,"112":0.01029,"113":0.02058,"114":0.05144,"115":0.01029,"116":0.07716,"117":0.00514,"118":0.01543,"119":0.05658,"120":0.0823,"121":0.03086,"122":0.03086,"123":0.02058,"124":0.08745,"125":0.84876,"126":0.02572,"127":0.02058,"128":0.0823,"129":0.02058,"130":0.31378,"131":0.07716,"132":0.05144,"133":0.06687,"134":0.06687,"135":0.05658,"136":0.09259,"137":0.10288,"138":0.33436,"139":0.14918,"140":0.36008,"141":4.17178,"142":14.55238,"143":0.03086,"144":0.04115,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 71 72 73 76 77 84 92 94 145 146"},F:{"63":0.00514,"79":0.01029,"90":0.00514,"92":0.06687,"93":0.01029,"95":0.02058,"122":0.08745,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00514,"92":0.00514,"109":0.15946,"111":0.00514,"113":0.00514,"114":0.00514,"115":0.00514,"116":0.00514,"118":0.00514,"119":0.00514,"120":0.01029,"121":0.00514,"122":0.01029,"123":0.01029,"124":0.00514,"126":0.01029,"127":0.00514,"128":0.01029,"129":0.00514,"130":0.01029,"131":0.02058,"132":0.01543,"133":0.01543,"134":0.01543,"135":0.02058,"136":0.02058,"137":0.02572,"138":0.0463,"139":0.05658,"140":0.10288,"141":1.13682,"142":9.44438,"143":0.02572,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 112 117 125"},E:{"13":0.00514,"14":0.02058,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3","12.1":0.00514,"13.1":0.04115,"14.1":0.06687,"15.4":0.01543,"15.5":0.01029,"15.6":0.15432,"16.0":0.00514,"16.1":0.02058,"16.2":0.01543,"16.3":0.02572,"16.4":0.01543,"16.5":0.01029,"16.6":0.18004,"17.0":0.00514,"17.1":0.1286,"17.2":0.01029,"17.3":0.01543,"17.4":0.03086,"17.5":0.04115,"17.6":0.18518,"18.0":0.01543,"18.1":0.02058,"18.2":0.01543,"18.3":0.06173,"18.4":0.03086,"18.5-18.6":0.13374,"26.0":0.27263,"26.1":0.26749,"26.2":0.00514},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00225,"5.0-5.1":0,"6.0-6.1":0.00898,"7.0-7.1":0.00674,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02021,"10.0-10.2":0.00225,"10.3":0.03593,"11.0-11.2":0.41765,"11.3-11.4":0.01347,"12.0-12.1":0.00449,"12.2-12.5":0.10553,"13.0-13.1":0,"13.2":0.01123,"13.3":0.00449,"13.4-13.7":0.02021,"14.0-14.4":0.03368,"14.5-14.8":0.04266,"15.0-15.1":0.03593,"15.2-15.3":0.02919,"15.4":0.03144,"15.5":0.03368,"15.6-15.8":0.48725,"16.0":0.06063,"16.1":0.11227,"16.2":0.05838,"16.3":0.10778,"16.4":0.02694,"16.5":0.04491,"16.6-16.7":0.65791,"17.0":0.05614,"17.1":0.06736,"17.2":0.0494,"17.3":0.06961,"17.4":0.11452,"17.5":0.21781,"17.6-17.7":0.53441,"18.0":0.11901,"18.1":0.25149,"18.2":0.13472,"18.3":0.43786,"18.4":0.22454,"18.5-18.7":15.67973,"26.0":1.07555,"26.1":0.98125},P:{"26":0.01096,"27":0.01096,"28":0.08766,"29":0.74508,_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02425,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.11654,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.13655,"11":0.23896,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.09226},O:{"0":0.12626},H:{"0":0},L:{"0":31.93986},R:{_:"0"},M:{"0":0.48074}};
Index: de_modules/caniuse-lite/data/regions/KE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03059,"47":0.0051,"76":0.0051,"115":0.10706,"127":0.0051,"128":0.01529,"132":0.0051,"134":0.0051,"136":0.0051,"140":0.03059,"141":0.0051,"142":0.0102,"143":0.02549,"144":0.39255,"145":0.43843,"146":0.0051,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 133 135 137 138 139 147 148 3.5 3.6"},D:{"49":0.0051,"51":0.02549,"65":0.0051,"66":0.0102,"69":0.04588,"71":0.0051,"72":0.0102,"73":0.03059,"74":0.0051,"75":0.0051,"76":0.0051,"77":0.0051,"79":0.0102,"80":0.0051,"81":0.0051,"83":0.09176,"86":0.0051,"87":0.02549,"88":0.0051,"91":0.0102,"93":0.0102,"94":0.0051,"95":0.0051,"98":0.0102,"99":0.0051,"100":0.0102,"102":0.0051,"103":0.07137,"104":0.0102,"106":0.0051,"108":0.0051,"109":0.49451,"111":0.05098,"112":14.12146,"113":0.02549,"114":0.03059,"116":0.03059,"117":0.0051,"118":0.0051,"119":0.02549,"120":0.0102,"121":0.0102,"122":0.06118,"123":0.0051,"124":0.0102,"125":0.49451,"126":4.35369,"127":0.0102,"128":0.02549,"129":0.01529,"130":0.01529,"131":0.07137,"132":0.06118,"133":0.02549,"134":2.02391,"135":0.03569,"136":0.04588,"137":0.09176,"138":0.22941,"139":0.69333,"140":0.34666,"141":3.11998,"142":8.28935,"143":0.03569,"144":0.0051,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 67 68 70 78 84 85 89 90 92 96 97 101 105 107 110 115 145 146"},F:{"86":0.0051,"89":0.0051,"90":0.02549,"91":0.0102,"92":0.15294,"93":0.02039,"95":0.01529,"120":0.0102,"122":0.11216,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.0051,"18":0.01529,"90":0.0051,"92":0.01529,"100":0.0051,"109":0.0102,"114":0.44353,"117":0.02549,"122":0.0051,"125":0.0102,"127":0.0051,"133":0.0051,"135":0.0051,"136":0.0051,"137":0.0051,"138":0.0102,"139":0.01529,"140":0.03059,"141":0.2447,"142":1.7843,"143":0.0051,_:"12 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 123 124 126 128 129 130 131 132 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.1 16.2 16.3 16.5 17.2 18.0","5.1":0.0051,"13.1":0.0102,"14.1":0.0051,"15.6":0.03059,"16.0":0.0102,"16.4":0.03059,"16.6":0.03059,"17.0":0.0051,"17.1":0.0051,"17.3":0.0051,"17.4":0.0051,"17.5":0.0051,"17.6":0.05098,"18.1":0.0051,"18.2":0.0051,"18.3":0.0102,"18.4":0.0051,"18.5-18.6":0.01529,"26.0":0.04588,"26.1":0.06118,"26.2":0.0051},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00016,"5.0-5.1":0,"6.0-6.1":0.00063,"7.0-7.1":0.00047,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00142,"10.0-10.2":0.00016,"10.3":0.00252,"11.0-11.2":0.02927,"11.3-11.4":0.00094,"12.0-12.1":0.00031,"12.2-12.5":0.0074,"13.0-13.1":0,"13.2":0.00079,"13.3":0.00031,"13.4-13.7":0.00142,"14.0-14.4":0.00236,"14.5-14.8":0.00299,"15.0-15.1":0.00252,"15.2-15.3":0.00205,"15.4":0.0022,"15.5":0.00236,"15.6-15.8":0.03415,"16.0":0.00425,"16.1":0.00787,"16.2":0.00409,"16.3":0.00755,"16.4":0.00189,"16.5":0.00315,"16.6-16.7":0.0461,"17.0":0.00393,"17.1":0.00472,"17.2":0.00346,"17.3":0.00488,"17.4":0.00803,"17.5":0.01526,"17.6-17.7":0.03745,"18.0":0.00834,"18.1":0.01762,"18.2":0.00944,"18.3":0.03068,"18.4":0.01574,"18.5-18.7":1.0988,"26.0":0.07537,"26.1":0.06876},P:{"4":0.0105,"22":0.02101,"23":0.0105,"24":0.07353,"25":0.07353,"26":0.04202,"27":0.09454,"28":0.33614,"29":0.55673,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.10504},I:{"0":0.03916,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":12.98227,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.08667,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0049},O:{"0":0.10294},H:{"0":1.66},L:{"0":40.69233},R:{_:"0"},M:{"0":0.13726}};
Index: de_modules/caniuse-lite/data/regions/KG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03266,"115":0.03266,"127":0.02449,"140":0.01633,"142":0.02449,"143":0.0898,"144":1.00417,"145":0.2041,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"49":0.00816,"69":0.03266,"75":0.00816,"79":0.00816,"99":0.00816,"101":0.00816,"103":0.00816,"105":0.02449,"106":0.00816,"109":0.53066,"111":0.03266,"112":18.2547,"116":0.00816,"117":0.00816,"119":0.02449,"120":0.00816,"122":0.08164,"123":0.00816,"125":32.1335,"126":4.48204,"128":0.00816,"130":0.02449,"131":0.02449,"132":0.03266,"133":0.01633,"134":0.00816,"135":0.00816,"136":0.04082,"137":0.02449,"138":0.04082,"139":0.17144,"140":0.45718,"141":4.77594,"142":9.45391,"143":0.00816,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 102 104 107 108 110 113 114 115 118 121 124 127 129 144 145 146"},F:{"80":0.00816,"85":0.00816,"92":0.04082,"93":0.02449,"95":0.06531,"122":0.15512,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.47351,"120":0.00816,"132":0.00816,"140":0.07348,"141":0.75109,"142":1.85323,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 133 134 135 136 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 16.6 18.1 26.2","15.6":0.00816,"16.1":0.00816,"17.0":0.00816,"17.1":0.00816,"17.2":0.05715,"17.3":0.05715,"17.4":0.05715,"17.5":0.05715,"17.6":0.08164,"18.0":0.01633,"18.2":0.18777,"18.3":0.19594,"18.4":0.18777,"18.5-18.6":0.22043,"26.0":0.26125,"26.1":0.18777},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0,"6.0-6.1":0.00148,"7.0-7.1":0.00111,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00332,"10.0-10.2":0.00037,"10.3":0.0059,"11.0-11.2":0.06861,"11.3-11.4":0.00221,"12.0-12.1":0.00074,"12.2-12.5":0.01734,"13.0-13.1":0,"13.2":0.00184,"13.3":0.00074,"13.4-13.7":0.00332,"14.0-14.4":0.00553,"14.5-14.8":0.00701,"15.0-15.1":0.0059,"15.2-15.3":0.0048,"15.4":0.00516,"15.5":0.00553,"15.6-15.8":0.08004,"16.0":0.00996,"16.1":0.01844,"16.2":0.00959,"16.3":0.0177,"16.4":0.00443,"16.5":0.00738,"16.6-16.7":0.10807,"17.0":0.00922,"17.1":0.01107,"17.2":0.00811,"17.3":0.01143,"17.4":0.01881,"17.5":0.03578,"17.6-17.7":0.08779,"18.0":0.01955,"18.1":0.04131,"18.2":0.02213,"18.3":0.07193,"18.4":0.03689,"18.5-18.7":2.5757,"26.0":0.17668,"26.1":0.16119},P:{"23":0.01069,"25":0.02139,"26":0.01069,"27":0.04278,"28":0.08556,"29":0.23528,_:"4 20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02139},I:{"0":0.00733,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.28825,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01652},O:{"0":0.09547},H:{"0":0},L:{"0":15.3586},R:{_:"0"},M:{"0":0.02938}};
Index: de_modules/caniuse-lite/data/regions/KH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"78":0.03744,"91":0.00624,"105":0.01872,"114":0.01248,"115":0.06864,"127":0.00624,"128":0.00624,"132":0.00624,"133":0.00624,"134":0.00624,"136":0.00624,"137":0.00624,"139":0.00624,"140":0.01248,"141":0.00624,"142":0.00624,"143":0.01248,"144":0.38064,"145":0.44928,"146":0.00624,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 116 117 118 119 120 121 122 123 124 125 126 129 130 131 135 138 147 148 3.5 3.6"},D:{"56":0.00624,"69":0.00624,"79":0.00624,"86":0.00624,"91":0.00624,"100":0.01872,"101":0.00624,"103":0.01248,"104":0.05616,"108":0.00624,"109":0.21216,"110":0.00624,"111":0.00624,"112":2.73312,"114":0.04368,"115":0.01248,"116":0.01872,"117":0.00624,"119":0.00624,"120":0.2496,"121":0.01248,"122":0.0312,"123":0.09984,"124":0.02496,"125":0.19968,"126":6.66432,"127":0.08736,"128":0.08112,"129":0.11856,"130":0.01872,"131":0.24336,"132":0.13728,"133":0.06864,"134":7.50672,"135":0.06864,"136":0.21216,"137":0.28704,"138":0.23712,"139":2.93904,"140":0.33696,"141":5.75952,"142":21.88992,"143":0.06864,"144":0.01872,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 85 87 88 89 90 92 93 94 95 96 97 98 99 102 105 106 107 113 118 145 146"},F:{"89":0.00624,"92":0.00624,"95":0.00624,"114":0.01248,"120":0.00624,"122":0.16224,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01248,"89":0.01872,"92":0.04368,"100":0.00624,"109":0.00624,"112":0.01248,"114":0.03744,"117":0.00624,"118":0.0624,"120":0.03744,"122":0.00624,"128":0.00624,"131":0.02496,"132":0.01248,"133":0.00624,"134":0.01248,"135":0.00624,"136":0.01872,"137":0.00624,"138":0.01248,"139":0.01248,"140":0.02496,"141":0.18096,"142":2.28384,"143":0.01248,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 119 121 123 124 125 126 127 129 130"},E:{"11":0.00624,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.2 16.4 16.5 17.0 17.3","13.1":0.00624,"14.1":0.03744,"15.4":0.08736,"15.6":0.06864,"16.0":0.00624,"16.1":0.00624,"16.3":0.0312,"16.6":0.05616,"17.1":0.04368,"17.2":0.00624,"17.4":0.00624,"17.5":0.00624,"17.6":0.04368,"18.0":0.00624,"18.1":0.00624,"18.2":0.01248,"18.3":0.01872,"18.4":0.02496,"18.5-18.6":0.04992,"26.0":0.08736,"26.1":0.13728,"26.2":0.00624},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0.00472,"7.0-7.1":0.00354,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01063,"10.0-10.2":0.00118,"10.3":0.01889,"11.0-11.2":0.21961,"11.3-11.4":0.00708,"12.0-12.1":0.00236,"12.2-12.5":0.05549,"13.0-13.1":0,"13.2":0.0059,"13.3":0.00236,"13.4-13.7":0.01063,"14.0-14.4":0.01771,"14.5-14.8":0.02243,"15.0-15.1":0.01889,"15.2-15.3":0.01535,"15.4":0.01653,"15.5":0.01771,"15.6-15.8":0.25621,"16.0":0.03188,"16.1":0.05904,"16.2":0.0307,"16.3":0.05667,"16.4":0.01417,"16.5":0.02361,"16.6-16.7":0.34595,"17.0":0.02952,"17.1":0.03542,"17.2":0.02598,"17.3":0.0366,"17.4":0.06022,"17.5":0.11453,"17.6-17.7":0.28101,"18.0":0.06258,"18.1":0.13224,"18.2":0.07084,"18.3":0.23024,"18.4":0.11807,"18.5-18.7":8.24484,"26.0":0.56556,"26.1":0.51597},P:{"22":0.01099,"24":0.01099,"25":0.01099,"26":0.01099,"27":0.01099,"28":0.06593,"29":0.4505,_:"4 20 21 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02628,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.20299,_:"10 11 12 11.1 11.5 12.1"},A:{"11":1.3728,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.11277},O:{"0":0.30072},H:{"0":0},L:{"0":28.15119},R:{_:"0"},M:{"0":0.14284}};
Index: de_modules/caniuse-lite/data/regions/KI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.01872,"140":0.01872,"141":0.379,"144":0.12165,"145":0.2012,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 142 143 146 147 148 3.5 3.6"},D:{"99":0.01872,"109":0.07954,"112":0.07954,"125":0.77671,"126":0.06083,"127":0.01872,"131":0.06083,"132":0.01872,"133":0.06083,"138":0.61763,"139":0.15909,"140":0.01872,"141":2.84951,"142":4.59946,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 120 121 122 123 124 128 129 130 134 135 136 137 143 144 145 146"},F:{"122":0.31817,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.07954,"128":0.01872,"132":0.01872,"135":0.28074,"136":0.04211,"137":0.04211,"139":0.01872,"140":0.06083,"141":2.0494,"142":7.58934,"143":0.01872,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 133 134 138"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.5 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.1 26.2","15.6":0.01872,"16.6":0.01872,"17.4":0.04211,"17.6":0.04211,"26.0":0.01872},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00017,"5.0-5.1":0,"6.0-6.1":0.00068,"7.0-7.1":0.00051,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00153,"10.0-10.2":0.00017,"10.3":0.00272,"11.0-11.2":0.03167,"11.3-11.4":0.00102,"12.0-12.1":0.00034,"12.2-12.5":0.008,"13.0-13.1":0,"13.2":0.00085,"13.3":0.00034,"13.4-13.7":0.00153,"14.0-14.4":0.00255,"14.5-14.8":0.00324,"15.0-15.1":0.00272,"15.2-15.3":0.00221,"15.4":0.00238,"15.5":0.00255,"15.6-15.8":0.03695,"16.0":0.0046,"16.1":0.00851,"16.2":0.00443,"16.3":0.00817,"16.4":0.00204,"16.5":0.00341,"16.6-16.7":0.04989,"17.0":0.00426,"17.1":0.00511,"17.2":0.00375,"17.3":0.00528,"17.4":0.00868,"17.5":0.01652,"17.6-17.7":0.04052,"18.0":0.00902,"18.1":0.01907,"18.2":0.01022,"18.3":0.0332,"18.4":0.01703,"18.5-18.7":1.18901,"26.0":0.08156,"26.1":0.07441},P:{"22":0.10697,"24":0.21394,"25":1.35853,"26":0.02139,"27":0.29952,"28":1.52968,"29":1.63665,_:"4 20 21 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.14899},O:{_:"0"},H:{"0":0},L:{"0":70.92342},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/KM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"50":0.06633,"91":0.03015,"94":0.00603,"115":0.08744,"127":0.02111,"133":0.00905,"140":0.03618,"141":0.02111,"143":0.12362,"144":2.73461,"145":0.84722,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 134 135 136 137 138 139 142 146 147 148 3.5 3.6"},D:{"50":0.04824,"64":0.04221,"68":0.11457,"70":0.02714,"71":0.0995,"77":0.00905,"81":0.09347,"83":0.00603,"86":0.03015,"90":0.03618,"94":0.05729,"95":0.01508,"97":0.00603,"99":0.02111,"100":0.00603,"102":0.00905,"103":0.00603,"104":0.02111,"109":0.63014,"111":0.01508,"115":0.00603,"116":0.00905,"117":0.03015,"118":0.00603,"119":0.0995,"120":0.00905,"122":0.01508,"123":0.00603,"124":0.02111,"125":0.28643,"126":0.04824,"127":0.02111,"128":0.11457,"131":0.43115,"132":0.00905,"133":0.02714,"134":0.00905,"135":0.14171,"136":0.08744,"137":0.02714,"138":0.18693,"139":0.26532,"140":0.38894,"141":2.64114,"142":7.31741,"143":0.02111,"144":0.01508,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 69 72 73 74 75 76 78 79 80 84 85 87 88 89 91 92 93 96 98 101 105 106 107 108 110 112 113 114 121 129 130 145 146"},F:{"64":0.02714,"79":0.00905,"92":0.00905,"119":0.00603,"120":0.01508,"122":0.19296,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00905,"13":0.01508,"17":0.02111,"18":0.03015,"90":0.11457,"92":0.05729,"109":0.00905,"114":0.05729,"122":0.02111,"128":0.00905,"134":0.02111,"135":0.00603,"136":0.03015,"138":0.00603,"139":0.05729,"140":0.03618,"141":0.62411,"142":1.64318,_:"14 15 16 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 129 130 131 132 133 137 143"},E:{"12":0.00603,_:"0 4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.1 17.3 18.0 18.2 18.3 26.2","13.1":0.01508,"15.4":0.00603,"15.6":0.46431,"16.5":0.00603,"16.6":0.19899,"17.2":0.01508,"17.4":0.00603,"17.5":0.00905,"17.6":0.10854,"18.1":0.00905,"18.4":0.05729,"18.5-18.6":0.34371,"26.0":0.68139,"26.1":0.03618},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00065,"5.0-5.1":0,"6.0-6.1":0.0026,"7.0-7.1":0.00195,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00585,"10.0-10.2":0.00065,"10.3":0.01039,"11.0-11.2":0.12083,"11.3-11.4":0.0039,"12.0-12.1":0.0013,"12.2-12.5":0.03053,"13.0-13.1":0,"13.2":0.00325,"13.3":0.0013,"13.4-13.7":0.00585,"14.0-14.4":0.00974,"14.5-14.8":0.01234,"15.0-15.1":0.01039,"15.2-15.3":0.00844,"15.4":0.00909,"15.5":0.00974,"15.6-15.8":0.14096,"16.0":0.01754,"16.1":0.03248,"16.2":0.01689,"16.3":0.03118,"16.4":0.0078,"16.5":0.01299,"16.6-16.7":0.19033,"17.0":0.01624,"17.1":0.01949,"17.2":0.01429,"17.3":0.02014,"17.4":0.03313,"17.5":0.06301,"17.6-17.7":0.15461,"18.0":0.03443,"18.1":0.07276,"18.2":0.03898,"18.3":0.12667,"18.4":0.06496,"18.5-18.7":4.53619,"26.0":0.31116,"26.1":0.28388},P:{"4":0.03053,"21":0.01018,"22":0.0814,"24":0.1628,"25":0.09158,"26":0.0814,"27":0.11193,"28":0.2442,"29":0.2442,_:"20 23 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 19.0","7.2-7.4":0.19333,"9.2":0.01018,"16.0":0.02035,"18.0":0.01018},I:{"0":0.12555,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.34624,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00603,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.04191},O:{"0":0.1397},H:{"0":0.01},L:{"0":66.12978},R:{_:"0"},M:{"0":0.10478}};
Index: de_modules/caniuse-lite/data/regions/KN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0268,"115":0.09381,"140":0.0134,"144":0.43777,"145":0.31716,"146":0.00447,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 147 148 3.5 3.6"},D:{"62":0.00893,"69":0.03127,"70":0.00447,"79":0.04914,"83":0.00447,"87":0.12954,"97":0.25909,"103":0.4601,"109":0.10721,"111":0.0268,"112":0.00447,"114":0.00447,"116":0.00447,"119":0.00447,"122":0.00447,"125":1.08101,"126":0.06701,"127":0.00447,"130":0.0134,"132":0.05807,"135":0.00447,"137":0.00893,"138":0.28142,"139":0.14294,"140":0.34843,"141":3.03756,"142":15.91145,"143":0.04467,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 81 84 85 86 88 89 90 91 92 93 94 95 96 98 99 100 101 102 104 105 106 107 108 110 113 115 117 118 120 121 123 124 128 129 131 133 134 136 144 145 146"},F:{"92":0.04914,"102":0.00447,"117":0.00447,"122":0.46457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00447,"18":0.00447,"109":0.0134,"114":0.0536,"128":0.00447,"130":0.00447,"134":0.00447,"135":0.00447,"137":0.00447,"138":0.00447,"139":0.06701,"140":0.06254,"141":1.19716,"142":4.60994,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 131 132 133 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 17.0 18.0 18.1 26.2","9.1":0.00447,"14.1":0.00447,"15.6":0.04914,"16.2":0.00893,"16.4":0.00893,"16.5":0.00447,"16.6":0.11168,"17.1":0.0536,"17.2":0.08934,"17.3":0.00447,"17.4":0.03574,"17.5":0.00447,"17.6":0.02234,"18.2":0.00447,"18.3":0.0402,"18.4":0.0536,"18.5-18.6":0.31269,"26.0":0.42437,"26.1":0.46904},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00128,"5.0-5.1":0,"6.0-6.1":0.00512,"7.0-7.1":0.00384,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01152,"10.0-10.2":0.00128,"10.3":0.02048,"11.0-11.2":0.23804,"11.3-11.4":0.00768,"12.0-12.1":0.00256,"12.2-12.5":0.06015,"13.0-13.1":0,"13.2":0.0064,"13.3":0.00256,"13.4-13.7":0.01152,"14.0-14.4":0.0192,"14.5-14.8":0.02432,"15.0-15.1":0.02048,"15.2-15.3":0.01664,"15.4":0.01792,"15.5":0.0192,"15.6-15.8":0.27771,"16.0":0.03455,"16.1":0.06399,"16.2":0.03327,"16.3":0.06143,"16.4":0.01536,"16.5":0.0256,"16.6-16.7":0.37498,"17.0":0.03199,"17.1":0.03839,"17.2":0.02816,"17.3":0.03967,"17.4":0.06527,"17.5":0.12414,"17.6-17.7":0.30459,"18.0":0.06783,"18.1":0.14334,"18.2":0.07679,"18.3":0.24956,"18.4":0.12798,"18.5-18.7":8.93672,"26.0":0.61302,"26.1":0.55927},P:{"4":0.03226,"20":0.01075,"21":0.02151,"22":0.02151,"23":0.01075,"24":0.10753,"25":0.03226,"26":0.03226,"27":0.04301,"28":0.30108,"29":2.6667,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.11828,"16.0":0.01075,"19.0":0.01075},I:{"0":0.01658,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.85762,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0166},H:{"0":0},L:{"0":41.06358},R:{_:"0"},M:{"0":0.25452}};
Index: de_modules/caniuse-lite/data/regions/KP.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KP.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":5.95478,"131":4.76011,"142":2.38315,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137 138 139 140 141 143 144 145 146 147 148 3.5 3.6"},D:{"109":8.33174,"136":2.38315,"141":4.76011,"142":22.61826,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 140 143 144 145 146"},F:{"56":1.18848,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"142":4.76011,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00221,"5.0-5.1":0,"6.0-6.1":0.00885,"7.0-7.1":0.00663,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0199,"10.0-10.2":0.00221,"10.3":0.03538,"11.0-11.2":0.41134,"11.3-11.4":0.01327,"12.0-12.1":0.00442,"12.2-12.5":0.10394,"13.0-13.1":0,"13.2":0.01106,"13.3":0.00442,"13.4-13.7":0.0199,"14.0-14.4":0.03317,"14.5-14.8":0.04202,"15.0-15.1":0.03538,"15.2-15.3":0.02875,"15.4":0.03096,"15.5":0.03317,"15.6-15.8":0.4799,"16.0":0.05971,"16.1":0.11058,"16.2":0.0575,"16.3":0.10615,"16.4":0.02654,"16.5":0.04423,"16.6-16.7":0.64797,"17.0":0.05529,"17.1":0.06635,"17.2":0.04865,"17.3":0.06856,"17.4":0.11279,"17.5":0.21452,"17.6-17.7":0.52634,"18.0":0.11721,"18.1":0.24769,"18.2":0.13269,"18.3":0.43124,"18.4":0.22115,"18.5-18.7":15.44294,"26.0":1.05931,"26.1":0.96643},P:{"28":2.45681,_:"4 20 21 22 23 24 25 26 27 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":18.27444},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/KR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.005,"92":0.005,"115":0.12498,"132":0.46491,"133":0.005,"135":0.005,"136":0.005,"140":0.015,"141":0.02,"142":0.005,"144":0.23995,"145":0.29994,"146":0.01,"147":0.005,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 134 137 138 139 143 148 3.5 3.6"},D:{"39":0.015,"40":0.015,"41":0.015,"42":0.02999,"43":0.015,"44":0.02,"45":0.02,"46":0.015,"47":0.02,"48":0.02,"49":0.02,"50":0.015,"51":0.015,"52":0.015,"53":0.015,"54":0.015,"55":0.02,"56":0.015,"57":0.02,"58":0.015,"59":0.02,"60":0.02,"61":0.01,"65":0.005,"71":0.005,"80":0.005,"87":0.01,"91":0.025,"95":0.005,"96":0.01,"99":0.01,"103":0.005,"105":0.02,"106":0.005,"108":0.02,"109":0.34993,"111":1.22476,"112":0.01,"114":0.01,"116":0.025,"118":0.005,"119":0.005,"120":0.02999,"121":0.04999,"122":0.02999,"123":0.06999,"124":0.015,"125":0.015,"126":0.02999,"127":0.015,"128":0.04499,"129":0.02,"130":0.04499,"131":0.07998,"132":0.03999,"133":0.06499,"134":0.05999,"135":0.05499,"136":0.05999,"137":0.05999,"138":0.18496,"139":0.13497,"140":0.25495,"141":5.78384,"142":22.77045,"143":0.05999,"144":0.01,_:"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 33 34 35 36 37 38 62 63 64 66 67 68 69 70 72 73 74 75 76 77 78 79 81 83 84 85 86 88 89 90 92 93 94 97 98 100 101 102 104 107 110 113 115 117 145 146"},F:{"92":0.03499,"93":0.005,"95":0.005,"114":0.005,"122":0.06499,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.005,"109":0.03999,"111":0.005,"112":0.005,"113":0.005,"114":0.005,"116":0.005,"117":0.005,"118":0.01,"119":0.01,"120":0.01,"121":0.005,"122":0.005,"124":0.005,"125":0.005,"126":0.005,"127":0.005,"128":0.01,"129":0.005,"130":0.01,"131":0.02999,"132":0.015,"133":0.015,"134":0.02,"135":0.02,"136":0.025,"137":0.02,"138":0.03499,"139":0.03499,"140":0.07998,"141":0.67487,"142":6.82364,"143":0.01,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 115 123"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.5","15.5":0.005,"15.6":0.025,"16.4":0.005,"16.6":0.015,"17.0":0.01,"17.1":0.015,"17.2":0.005,"17.3":0.005,"17.4":0.01,"17.5":0.01,"17.6":0.02999,"18.0":0.005,"18.1":0.005,"18.2":0.005,"18.3":0.02,"18.4":0.01,"18.5-18.6":0.03499,"26.0":0.15497,"26.1":0.19496,"26.2":0.01},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00086,"5.0-5.1":0,"6.0-6.1":0.00345,"7.0-7.1":0.00259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00777,"10.0-10.2":0.00086,"10.3":0.01382,"11.0-11.2":0.16064,"11.3-11.4":0.00518,"12.0-12.1":0.00173,"12.2-12.5":0.04059,"13.0-13.1":0,"13.2":0.00432,"13.3":0.00173,"13.4-13.7":0.00777,"14.0-14.4":0.01296,"14.5-14.8":0.01641,"15.0-15.1":0.01382,"15.2-15.3":0.01123,"15.4":0.01209,"15.5":0.01296,"15.6-15.8":0.18742,"16.0":0.02332,"16.1":0.04318,"16.2":0.02246,"16.3":0.04146,"16.4":0.01036,"16.5":0.01727,"16.6-16.7":0.25306,"17.0":0.02159,"17.1":0.02591,"17.2":0.019,"17.3":0.02677,"17.4":0.04405,"17.5":0.08378,"17.6-17.7":0.20555,"18.0":0.04577,"18.1":0.09673,"18.2":0.05182,"18.3":0.16842,"18.4":0.08637,"18.5-18.7":6.03103,"26.0":0.4137,"26.1":0.37742},P:{"21":0.01017,"22":0.02033,"23":0.02033,"24":0.02033,"25":0.0305,"26":0.05084,"27":0.19318,"28":1.49459,"29":12.61761,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.11486,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.10002,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.34493,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01},O:{"0":0.04001},H:{"0":0},L:{"0":24.90336},R:{_:"0"},M:{"0":0.11502}};
Index: de_modules/caniuse-lite/data/regions/KW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00682,"48":0.00341,"115":0.0307,"121":0.00341,"125":0.01364,"128":0.00341,"132":0.00682,"134":0.02388,"137":0.00341,"139":0.00341,"140":0.01023,"142":0.00341,"143":0.00682,"144":0.22854,"145":0.2183,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 126 127 129 130 131 133 135 136 138 141 146 147 148 3.5 3.6"},D:{"41":0.00341,"65":0.00341,"69":0.00682,"79":0.01023,"80":0.00341,"83":0.00682,"85":0.00341,"87":0.01023,"91":0.02388,"98":0.00682,"103":0.07163,"105":0.00341,"109":0.24559,"110":0.00341,"111":0.01023,"112":5.93514,"114":0.01706,"115":0.00341,"116":0.01023,"117":0.00682,"118":0.00341,"119":0.03411,"120":0.0307,"121":0.01364,"122":0.0307,"123":0.00682,"124":0.00341,"125":0.32063,"126":0.77771,"127":0.01023,"128":0.0307,"129":0.01023,"130":0.01706,"131":0.02388,"132":0.01364,"133":0.05117,"134":0.02388,"135":0.11256,"136":0.05117,"137":0.03411,"138":0.12621,"139":0.19784,"140":0.34792,"141":3.23704,"142":8.85155,"143":0.02729,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 75 76 77 78 81 84 86 88 89 90 92 93 94 95 96 97 99 100 101 102 104 106 107 108 113 144 145 146"},F:{"46":0.02047,"85":0.01023,"92":0.14326,"93":0.01706,"95":0.00682,"122":0.29335,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00341,"92":0.01364,"109":0.01706,"114":0.04093,"128":0.00341,"130":0.00341,"131":0.01023,"132":0.00341,"133":0.00341,"134":0.00341,"135":0.00341,"137":0.00341,"138":0.01023,"139":0.01364,"140":0.03752,"141":0.249,"142":1.82489,"143":0.01023,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 136"},E:{"7":0.00341,"14":0.00341,_:"0 4 5 6 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.4 17.0","13.1":0.01706,"14.1":0.01023,"15.4":0.00341,"15.5":0.00341,"15.6":0.02729,"16.1":0.01364,"16.2":0.00341,"16.3":0.00682,"16.5":0.01023,"16.6":0.0614,"17.1":0.02047,"17.2":0.00341,"17.3":0.00341,"17.4":0.01706,"17.5":0.02047,"17.6":0.06481,"18.0":0.01364,"18.1":0.01023,"18.2":0.01706,"18.3":0.0307,"18.4":0.01023,"18.5-18.6":0.11256,"26.0":0.15691,"26.1":0.23195,"26.2":0.00341},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00193,"5.0-5.1":0,"6.0-6.1":0.00771,"7.0-7.1":0.00579,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01736,"10.0-10.2":0.00193,"10.3":0.03086,"11.0-11.2":0.35872,"11.3-11.4":0.01157,"12.0-12.1":0.00386,"12.2-12.5":0.09064,"13.0-13.1":0,"13.2":0.00964,"13.3":0.00386,"13.4-13.7":0.01736,"14.0-14.4":0.02893,"14.5-14.8":0.03664,"15.0-15.1":0.03086,"15.2-15.3":0.02507,"15.4":0.027,"15.5":0.02893,"15.6-15.8":0.41851,"16.0":0.05207,"16.1":0.09643,"16.2":0.05014,"16.3":0.09257,"16.4":0.02314,"16.5":0.03857,"16.6-16.7":0.56508,"17.0":0.04822,"17.1":0.05786,"17.2":0.04243,"17.3":0.05979,"17.4":0.09836,"17.5":0.18707,"17.6-17.7":0.45901,"18.0":0.10222,"18.1":0.216,"18.2":0.11572,"18.3":0.37608,"18.4":0.19286,"18.5-18.7":13.46742,"26.0":0.9238,"26.1":0.8428},P:{"21":0.03056,"22":0.04075,"23":0.05093,"24":0.04075,"25":0.09168,"26":0.04075,"27":0.26485,"28":0.74362,"29":2.05768,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 16.0 17.0","7.2-7.4":0.01019,"11.1-11.2":0.01019,"13.0":0.01019,"15.0":0.02037,"18.0":0.01019,"19.0":0.01019},I:{"0":0.02632,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.36392,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02047,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.90269},H:{"0":0},L:{"0":48.04416},R:{_:"0"},M:{"0":0.11201}};
Index: de_modules/caniuse-lite/data/regions/KY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00999,"49":0.005,"111":0.005,"134":0.04496,"140":0.09992,"143":0.14988,"144":0.33473,"145":0.56954,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 141 142 146 147 148 3.5 3.6"},D:{"56":0.005,"69":0.01499,"78":0.005,"79":0.02498,"81":0.00999,"87":0.00999,"92":0.005,"93":0.00999,"96":0.005,"102":0.02998,"103":0.03497,"109":0.21483,"111":0.02998,"112":0.005,"114":0.005,"116":0.28977,"120":0.00999,"122":0.03997,"125":0.55456,"126":0.00999,"127":0.00999,"129":0.00999,"130":0.01499,"131":0.03497,"132":0.04496,"133":0.005,"134":0.06994,"135":0.00999,"137":0.02998,"138":1.08413,"139":0.15987,"140":0.4946,"141":4.32654,"142":19.83912,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 83 84 85 86 88 89 90 91 94 95 97 98 99 100 101 104 105 106 107 108 110 113 115 117 118 119 121 123 124 128 136 143 144 145 146"},F:{"92":0.005,"120":0.005,"122":0.2548,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.005,"110":0.00999,"114":0.00999,"122":0.02998,"128":0.005,"129":0.005,"132":0.005,"133":0.05496,"134":0.005,"138":0.15488,"139":0.005,"140":0.07494,"141":1.58373,"142":8.02358,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 130 131 135 136 137 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.2 17.0 26.2","13.1":0.01998,"14.1":0.26479,"15.6":0.13489,"16.0":0.005,"16.1":0.00999,"16.3":0.01499,"16.4":0.00999,"16.5":0.005,"16.6":0.29976,"17.1":0.18985,"17.2":0.00999,"17.3":0.02498,"17.4":0.02498,"17.5":0.02498,"17.6":0.07994,"18.0":0.005,"18.1":0.00999,"18.2":0.02498,"18.3":0.07994,"18.4":0.02998,"18.5-18.6":0.17486,"26.0":0.80436,"26.1":1.09412},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00248,"5.0-5.1":0,"6.0-6.1":0.00994,"7.0-7.1":0.00745,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02236,"10.0-10.2":0.00248,"10.3":0.03976,"11.0-11.2":0.46221,"11.3-11.4":0.01491,"12.0-12.1":0.00497,"12.2-12.5":0.11679,"13.0-13.1":0,"13.2":0.01242,"13.3":0.00497,"13.4-13.7":0.02236,"14.0-14.4":0.03727,"14.5-14.8":0.04721,"15.0-15.1":0.03976,"15.2-15.3":0.0323,"15.4":0.03479,"15.5":0.03727,"15.6-15.8":0.53924,"16.0":0.06709,"16.1":0.12425,"16.2":0.06461,"16.3":0.11928,"16.4":0.02982,"16.5":0.0497,"16.6-16.7":0.7281,"17.0":0.06212,"17.1":0.07455,"17.2":0.05467,"17.3":0.07703,"17.4":0.12673,"17.5":0.24104,"17.6-17.7":0.59143,"18.0":0.1317,"18.1":0.27832,"18.2":0.1491,"18.3":0.48457,"18.4":0.2485,"18.5-18.7":17.35263,"26.0":1.19031,"26.1":1.08594},P:{"4":0.03211,"23":0.0107,"25":0.0107,"26":0.0107,"28":0.19268,"29":3.04,_:"20 21 22 24 27 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.0107,"7.2-7.4":0.0107},I:{"0":0.005,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1001,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.06006},H:{"0":0},L:{"0":21.78922},R:{_:"0"},M:{"0":1.001}};
Index: de_modules/caniuse-lite/data/regions/KZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/KZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03294,"52":0.14494,"71":0.03294,"115":0.19105,"122":0.01318,"125":0.02635,"127":0.00659,"128":0.01318,"133":0.02635,"135":0.00659,"136":0.07247,"137":0.00659,"139":0.00659,"140":0.09882,"141":0.00659,"142":0.01318,"143":0.01976,"144":0.63245,"145":0.7115,"146":0.00659,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 126 129 130 131 132 134 138 147 148 3.5 3.6"},D:{"49":0.00659,"69":0.03294,"78":0.00659,"79":0.01318,"86":0.00659,"87":0.01318,"90":0.00659,"99":0.00659,"100":0.00659,"101":0.00659,"103":0.00659,"104":0.01318,"106":0.13835,"107":0.00659,"108":0.02635,"109":1.45595,"111":0.03953,"112":20.44915,"114":0.02635,"116":0.01976,"119":0.02635,"120":0.02635,"121":0.01318,"122":0.10541,"123":0.02635,"124":0.03953,"125":0.43481,"126":4.59184,"127":0.01318,"128":0.0527,"129":0.01976,"130":0.01318,"131":0.04612,"132":0.09223,"133":0.10541,"134":0.10541,"135":0.03953,"136":0.04612,"137":0.17129,"138":0.13176,"139":0.21082,"140":0.34916,"141":3.30059,"142":13.53175,"143":0.01976,"144":0.00659,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 83 84 85 88 89 91 92 93 94 95 96 97 98 102 105 110 113 115 117 118 145 146"},F:{"54":0.00659,"79":0.01318,"85":0.01318,"87":0.01976,"92":0.03294,"93":0.00659,"95":0.30964,"109":0.00659,"119":0.00659,"120":0.00659,"122":0.43481,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00659,"92":0.01318,"109":0.02635,"114":0.42163,"122":0.00659,"124":0.00659,"126":0.00659,"131":0.00659,"132":0.00659,"133":0.01318,"134":0.01976,"135":0.00659,"136":0.00659,"137":0.01318,"138":0.01976,"139":0.00659,"140":0.02635,"141":0.28987,"142":2.88554,"143":0.00659,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 127 128 129 130"},E:{"14":0.00659,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0","5.1":0.00659,"14.1":0.00659,"15.5":0.00659,"15.6":0.06588,"16.1":0.02635,"16.2":0.01318,"16.3":0.01318,"16.4":0.00659,"16.5":0.01318,"16.6":0.06588,"17.0":0.00659,"17.1":0.0527,"17.2":0.00659,"17.3":0.01976,"17.4":0.02635,"17.5":0.04612,"17.6":0.13835,"18.0":0.01976,"18.1":0.02635,"18.2":0.02635,"18.3":0.07247,"18.4":0.0527,"18.5-18.6":0.18446,"26.0":0.25693,"26.1":0.24376,"26.2":0.00659},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00126,"5.0-5.1":0,"6.0-6.1":0.00505,"7.0-7.1":0.00379,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01137,"10.0-10.2":0.00126,"10.3":0.0202,"11.0-11.2":0.23488,"11.3-11.4":0.00758,"12.0-12.1":0.00253,"12.2-12.5":0.05935,"13.0-13.1":0,"13.2":0.00631,"13.3":0.00253,"13.4-13.7":0.01137,"14.0-14.4":0.01894,"14.5-14.8":0.02399,"15.0-15.1":0.0202,"15.2-15.3":0.01642,"15.4":0.01768,"15.5":0.01894,"15.6-15.8":0.27402,"16.0":0.0341,"16.1":0.06314,"16.2":0.03283,"16.3":0.06061,"16.4":0.01515,"16.5":0.02526,"16.6-16.7":0.36999,"17.0":0.03157,"17.1":0.03788,"17.2":0.02778,"17.3":0.03915,"17.4":0.0644,"17.5":0.12249,"17.6-17.7":0.30054,"18.0":0.06693,"18.1":0.14143,"18.2":0.07577,"18.3":0.24624,"18.4":0.12628,"18.5-18.7":8.818,"26.0":0.60487,"26.1":0.55184},P:{"4":0.20873,"21":0.02087,"22":0.01044,"23":0.01044,"24":0.02087,"25":0.01044,"26":0.03131,"27":0.04175,"28":0.17742,"29":0.86625,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02087},I:{"0":0.01704,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.41285,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.02353,"8":0.02353,"11":0.11764,_:"7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01024},O:{"0":0.46403},H:{"0":0},L:{"0":19.51179},R:{_:"0"},M:{"0":0.0853}};
Index: de_modules/caniuse-lite/data/regions/LA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"38":0.01663,"101":0.00333,"104":0.00333,"115":0.03326,"125":0.00998,"130":0.00333,"133":0.00333,"135":0.00333,"138":0.00665,"140":0.00665,"142":0.00333,"143":0.00665,"144":0.153,"145":0.14967,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 131 132 134 136 137 139 141 146 147 148 3.5 3.6"},D:{"48":0.03326,"56":0.00333,"69":0.00333,"70":0.00998,"71":0.00333,"77":0.00333,"79":0.00333,"83":0.01996,"87":0.00998,"88":0.00333,"90":0.00333,"91":0.00333,"97":0.00333,"98":0.00665,"99":0.00333,"104":0.04324,"108":0.00333,"109":0.27938,"111":0.00333,"114":0.0133,"115":0.00333,"116":0.02661,"117":0.00333,"118":0.00333,"119":0.00665,"120":0.00333,"121":0.00333,"122":0.0133,"123":0.00665,"124":0.01663,"125":0.11974,"126":0.0133,"127":0.00998,"128":0.02993,"129":0.00333,"130":0.0133,"131":0.09978,"132":0.10976,"133":0.06985,"134":8.59438,"135":0.03659,"136":0.02328,"137":0.04989,"138":0.20621,"139":2.77721,"140":0.10643,"141":1.43018,"142":5.33823,"143":0.0133,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 72 73 74 75 76 78 80 81 84 85 86 89 92 93 94 95 96 100 101 102 103 105 106 107 110 112 113 144 145 146"},F:{"84":0.00333,"89":0.00333,"92":0.02328,"93":0.00333,"95":0.00333,"119":0.00333,"120":0.00333,"122":0.03659,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00333,"17":0.00333,"18":0.01663,"92":0.01663,"109":0.00998,"114":0.05987,"119":0.00333,"120":0.00333,"122":0.00333,"128":0.00333,"131":0.00998,"132":0.03326,"134":0.00333,"135":0.00333,"136":0.00333,"137":0.00333,"138":0.00333,"139":0.00665,"140":0.01663,"141":0.13969,"142":1.34703,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 121 123 124 125 126 127 129 130 133 143"},E:{"4":0.00333,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 17.2 26.2","13.1":0.00665,"14.1":0.00333,"15.4":0.00665,"15.6":0.03659,"16.3":0.00665,"16.4":0.00333,"16.5":0.00333,"16.6":0.04656,"17.0":0.00333,"17.1":0.0133,"17.3":0.00333,"17.4":0.00665,"17.5":0.00665,"17.6":0.01996,"18.0":0.00333,"18.1":0.00333,"18.2":0.00333,"18.3":0.00998,"18.4":0.00665,"18.5-18.6":0.03326,"26.0":0.05987,"26.1":0.0898},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00177,"5.0-5.1":0,"6.0-6.1":0.00707,"7.0-7.1":0.0053,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01591,"10.0-10.2":0.00177,"10.3":0.02828,"11.0-11.2":0.32871,"11.3-11.4":0.0106,"12.0-12.1":0.00353,"12.2-12.5":0.08306,"13.0-13.1":0,"13.2":0.00884,"13.3":0.00353,"13.4-13.7":0.01591,"14.0-14.4":0.02651,"14.5-14.8":0.03358,"15.0-15.1":0.02828,"15.2-15.3":0.02297,"15.4":0.02474,"15.5":0.02651,"15.6-15.8":0.3835,"16.0":0.04772,"16.1":0.08836,"16.2":0.04595,"16.3":0.08483,"16.4":0.02121,"16.5":0.03535,"16.6-16.7":0.51781,"17.0":0.04418,"17.1":0.05302,"17.2":0.03888,"17.3":0.05479,"17.4":0.09013,"17.5":0.17143,"17.6-17.7":0.42061,"18.0":0.09367,"18.1":0.19793,"18.2":0.10604,"18.3":0.34462,"18.4":0.17673,"18.5-18.7":12.34088,"26.0":0.84652,"26.1":0.7723},P:{"4":0.0308,"20":0.01027,"21":0.01027,"22":0.0308,"23":0.04107,"24":0.02054,"25":0.07187,"26":0.08214,"27":0.14375,"28":0.61606,"29":1.43748,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.15402,"11.1-11.2":0.01027,"17.0":0.01027},I:{"0":0.02666,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.30033,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0898,"9":0.01796,"10":0.03592,"11":0.03592,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.04004},O:{"0":0.40044},H:{"0":0},L:{"0":55.09091},R:{_:"0"},M:{"0":0.1535}};
Index: de_modules/caniuse-lite/data/regions/LB.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LB.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0285,"52":0.0057,"115":0.1026,"128":0.0057,"140":0.0114,"142":0.0171,"143":0.0342,"144":0.3477,"145":0.4674,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"38":0.0114,"49":0.0114,"56":0.0057,"60":0.0057,"65":0.0057,"69":0.0399,"73":0.0057,"79":0.0114,"80":0.0057,"83":0.0114,"84":0.0171,"85":0.0057,"86":0.0057,"87":0.0228,"89":0.0057,"91":0.0057,"94":0.0057,"96":0.0057,"98":0.0285,"99":0.0057,"100":0.0057,"103":0.0114,"107":0.0057,"108":0.0228,"109":0.7923,"110":0.0057,"111":0.0342,"112":23.2446,"114":0.0057,"116":0.0627,"118":0.0057,"119":0.0114,"120":0.0456,"121":0.0057,"122":0.0969,"123":0.0228,"124":0.0171,"125":0.4446,"126":3.2205,"127":0.0114,"128":0.0228,"129":0.0114,"130":0.0057,"131":0.0741,"132":0.057,"133":0.0228,"134":0.0342,"135":0.0456,"136":0.0342,"137":0.0399,"138":0.3363,"139":0.1482,"140":0.342,"141":3.3174,"142":9.975,"143":0.0171,"144":0.0057,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 62 63 64 66 67 68 70 71 72 74 75 76 77 78 81 88 90 92 93 95 97 101 102 104 105 106 113 115 117 145 146"},F:{"92":0.0513,"93":0.0342,"95":0.0228,"117":0.0057,"122":0.1995,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0114,"92":0.0171,"109":0.0114,"114":0.7752,"122":0.0057,"133":0.0057,"134":0.0057,"135":0.0114,"136":0.0057,"137":0.0057,"138":0.0114,"139":0.0057,"140":0.0171,"141":0.2451,"142":2.1603,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.4","5.1":0.0228,"13.1":0.0057,"14.1":0.0114,"15.6":0.2109,"16.1":0.0057,"16.2":0.0057,"16.3":0.0057,"16.5":0.0057,"16.6":0.0912,"17.0":0.0114,"17.1":0.0513,"17.2":0.0057,"17.3":0.0057,"17.4":0.0171,"17.5":0.0171,"17.6":0.0513,"18.0":0.0057,"18.1":0.0114,"18.2":0.0171,"18.3":0.0285,"18.4":0.0057,"18.5-18.6":0.1197,"26.0":0.1539,"26.1":0.2166,"26.2":0.0057},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0.00401,"7.0-7.1":0.00301,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00902,"10.0-10.2":0.001,"10.3":0.01603,"11.0-11.2":0.18639,"11.3-11.4":0.00601,"12.0-12.1":0.002,"12.2-12.5":0.0471,"13.0-13.1":0,"13.2":0.00501,"13.3":0.002,"13.4-13.7":0.00902,"14.0-14.4":0.01503,"14.5-14.8":0.01904,"15.0-15.1":0.01603,"15.2-15.3":0.01303,"15.4":0.01403,"15.5":0.01503,"15.6-15.8":0.21746,"16.0":0.02706,"16.1":0.0501,"16.2":0.02605,"16.3":0.0481,"16.4":0.01203,"16.5":0.02004,"16.6-16.7":0.29361,"17.0":0.02505,"17.1":0.03006,"17.2":0.02205,"17.3":0.03107,"17.4":0.05111,"17.5":0.0972,"17.6-17.7":0.2385,"18.0":0.05311,"18.1":0.11223,"18.2":0.06013,"18.3":0.19541,"18.4":0.10021,"18.5-18.7":6.99764,"26.0":0.48,"26.1":0.43792},P:{"4":0.02068,"20":0.01034,"21":0.02068,"22":0.02068,"23":0.0517,"24":0.08272,"25":0.19645,"26":0.09306,"27":0.18611,"28":0.50664,"29":2.66763,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 18.0","6.2-6.4":0.01034,"7.2-7.4":0.1034,"15.0":0.02068,"17.0":0.03102,"19.0":0.01034},I:{"0":0.02146,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.26224,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0798,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.12467},H:{"0":0},L:{"0":35.28577},R:{_:"0"},M:{"0":0.12467}};
Index: de_modules/caniuse-lite/data/regions/LC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03643,"67":0.00405,"115":0.00405,"119":0.00405,"126":0.0081,"128":0.00405,"140":0.01214,"141":0.0081,"143":0.04048,"144":1.62325,"145":1.3156,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 120 121 122 123 124 125 127 129 130 131 132 133 134 135 136 137 138 139 142 146 147 148 3.5 3.6"},D:{"69":0.03238,"74":0.00405,"79":0.00405,"86":0.01619,"87":0.00405,"88":0.00405,"91":0.00405,"93":0.01619,"97":0.00405,"103":0.02024,"109":0.16597,"111":0.04858,"112":0.02024,"116":0.00405,"119":0.0081,"120":0.00405,"122":0.02024,"124":0.0081,"125":0.75698,"126":0.07691,"127":0.02429,"128":0.02024,"130":0.0081,"131":0.02429,"132":0.06477,"133":0.0081,"134":0.00405,"135":0.01214,"136":0.01619,"137":0.06477,"138":0.07691,"139":0.07286,"140":0.32789,"141":5.1612,"142":14.69424,"143":0.05262,"144":0.02429,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 75 76 77 78 80 81 83 84 85 89 90 92 94 95 96 98 99 100 101 102 104 105 106 107 108 110 113 114 115 117 118 121 123 129 145 146"},F:{"90":0.00405,"91":0.00405,"93":0.01214,"122":0.45338,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00405,"114":0.18216,"122":0.00405,"126":0.00405,"127":0.00405,"128":0.00405,"130":0.05262,"131":0.0081,"132":0.00405,"134":0.2024,"135":0.00405,"136":0.0081,"137":0.00405,"138":0.1012,"139":0.00405,"140":0.06882,"141":0.72864,"142":5.04786,"143":0.00405,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 129 133"},E:{"14":0.02024,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 17.0 17.3","13.1":0.01214,"14.1":0.00405,"15.6":0.06072,"16.1":0.00405,"16.4":0.00405,"16.5":0.00405,"16.6":0.13358,"17.1":0.02834,"17.2":0.00405,"17.4":0.01214,"17.5":0.04453,"17.6":0.06072,"18.0":0.00405,"18.1":0.0081,"18.2":0.04453,"18.3":0.01619,"18.4":0.03238,"18.5-18.6":0.15787,"26.0":0.13358,"26.1":0.29955,"26.2":0.00405},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0016,"5.0-5.1":0,"6.0-6.1":0.00639,"7.0-7.1":0.00479,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01437,"10.0-10.2":0.0016,"10.3":0.02555,"11.0-11.2":0.29698,"11.3-11.4":0.00958,"12.0-12.1":0.00319,"12.2-12.5":0.07504,"13.0-13.1":0,"13.2":0.00798,"13.3":0.00319,"13.4-13.7":0.01437,"14.0-14.4":0.02395,"14.5-14.8":0.03034,"15.0-15.1":0.02555,"15.2-15.3":0.02076,"15.4":0.02235,"15.5":0.02395,"15.6-15.8":0.34647,"16.0":0.04311,"16.1":0.07983,"16.2":0.04151,"16.3":0.07664,"16.4":0.01916,"16.5":0.03193,"16.6-16.7":0.46782,"17.0":0.03992,"17.1":0.0479,"17.2":0.03513,"17.3":0.0495,"17.4":0.08143,"17.5":0.15488,"17.6-17.7":0.38,"18.0":0.08462,"18.1":0.17883,"18.2":0.0958,"18.3":0.31135,"18.4":0.15967,"18.5-18.7":11.14943,"26.0":0.7648,"26.1":0.69774},P:{"4":0.01035,"22":0.01035,"23":0.01035,"24":0.04142,"25":0.04142,"26":0.04142,"27":0.04142,"28":0.3831,"29":4.17265,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.09319,"11.1-11.2":0.01035},I:{"0":0.01189,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.18448,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0119},H:{"0":0},L:{"0":43.35346},R:{_:"0"},M:{"0":0.39872}};
Index: de_modules/caniuse-lite/data/regions/LI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.14316,"115":0.93393,"127":0.01363,"128":0.01363,"133":0.07499,"134":0.02727,"135":0.02727,"136":0.03409,"137":0.00682,"138":0.00682,"139":0.00682,"140":0.25905,"142":0.14316,"143":0.00682,"144":3.10855,"145":4.26744,"146":0.02045,_:"2 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 141 147 148 3.5 3.6"},D:{"48":1.47929,"68":0.00682,"96":0.02727,"98":0.01363,"99":0.00682,"102":0.00682,"104":0.12271,"109":0.31358,"112":0.00682,"114":0.01363,"115":0.00682,"116":0.04772,"117":0.00682,"118":0.03409,"119":0.02727,"120":0.02045,"122":0.02727,"124":0.83167,"125":0.07499,"126":0.05454,"127":0.03409,"128":0.00682,"129":0.00682,"130":0.00682,"131":1.19298,"132":0.17043,"133":0.33403,"134":0.83167,"135":0.52491,"136":0.49082,"137":0.14316,"138":1.13162,"139":0.08862,"140":0.57263,"141":4.47195,"142":13.75671,"144":0.01363,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 97 100 101 103 105 106 107 108 110 111 113 121 123 143 145 146"},F:{"114":0.34767,"116":0.19769,"118":0.01363,"119":0.00682,"122":0.44992,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 117 120 121 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1","9.5-9.6":0.00682},B:{"109":0.01363,"123":0.00682,"131":0.14997,"132":0.08862,"133":0.05454,"134":0.06135,"135":0.04772,"136":0.0409,"137":0.08862,"138":0.3204,"140":0.3204,"141":0.75669,"142":9.8233,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 126 127 128 129 130 139 143"},E:{"4":0.22496,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 16.1 16.2 16.4 17.3 18.0","15.1":0.00682,"15.5":0.01363,"15.6":0.19088,"16.0":0.02727,"16.3":0.43629,"16.5":0.01363,"16.6":0.12952,"17.0":0.00682,"17.1":0.25905,"17.2":0.02045,"17.4":0.03409,"17.5":0.01363,"17.6":0.25905,"18.1":0.02045,"18.2":0.11589,"18.3":0.43629,"18.4":0.02727,"18.5-18.6":0.31358,"26.0":0.79077,"26.1":0.33403,"26.2":0.02045},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00187,"5.0-5.1":0,"6.0-6.1":0.00749,"7.0-7.1":0.00562,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01686,"10.0-10.2":0.00187,"10.3":0.02997,"11.0-11.2":0.34841,"11.3-11.4":0.01124,"12.0-12.1":0.00375,"12.2-12.5":0.08804,"13.0-13.1":0,"13.2":0.00937,"13.3":0.00375,"13.4-13.7":0.01686,"14.0-14.4":0.0281,"14.5-14.8":0.03559,"15.0-15.1":0.02997,"15.2-15.3":0.02435,"15.4":0.02622,"15.5":0.0281,"15.6-15.8":0.40648,"16.0":0.05058,"16.1":0.09366,"16.2":0.0487,"16.3":0.08991,"16.4":0.02248,"16.5":0.03746,"16.6-16.7":0.54885,"17.0":0.04683,"17.1":0.0562,"17.2":0.04121,"17.3":0.05807,"17.4":0.09553,"17.5":0.1817,"17.6-17.7":0.44582,"18.0":0.09928,"18.1":0.2098,"18.2":0.11239,"18.3":0.36527,"18.4":0.18732,"18.5-18.7":13.08052,"26.0":0.89726,"26.1":0.81859},P:{"28":0.0416,"29":1.63266,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00954,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1687,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.72266,"7":0.83829,"8":2.79429,"9":0.7612,"10":1.51277,"11":0.10599,_:"5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00955},H:{"0":0},L:{"0":9.87829},R:{_:"0"},M:{"0":0.74801}};
Index: de_modules/caniuse-lite/data/regions/LK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.11746,"127":0.00734,"128":0.00734,"140":0.02936,"141":0.00734,"142":0.03671,"143":0.00734,"144":0.43312,"145":0.49919,"146":0.00734,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 147 148 3.5 3.6"},D:{"63":0.00734,"64":0.00734,"70":0.00734,"71":0.00734,"74":0.00734,"76":0.00734,"79":0.00734,"80":0.00734,"86":0.00734,"87":0.00734,"93":0.00734,"94":0.00734,"100":0.00734,"103":0.03671,"106":0.00734,"108":0.00734,"109":0.70474,"111":0.01468,"112":0.70474,"113":0.00734,"114":0.00734,"116":0.01468,"119":0.00734,"120":0.00734,"121":0.00734,"122":0.02202,"123":0.02202,"124":0.01468,"125":0.04405,"126":0.10277,"127":0.02936,"128":0.02202,"129":0.02202,"130":0.01468,"131":0.05873,"132":0.02202,"133":0.01468,"134":0.02202,"135":0.05139,"136":0.05139,"137":0.05139,"138":0.14682,"139":0.10277,"140":0.41844,"141":2.95108,"142":11.76762,"143":0.05139,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 65 66 67 68 69 72 73 75 77 78 81 83 84 85 88 89 90 91 92 95 96 97 98 99 101 102 104 105 107 110 115 117 118 144 145 146"},F:{"90":0.01468,"91":0.00734,"92":0.08809,"95":0.06607,"120":0.00734,"122":0.13948,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01468,"92":0.02936,"109":0.00734,"114":0.01468,"122":0.01468,"131":0.00734,"134":0.00734,"135":0.00734,"136":0.00734,"137":0.00734,"138":0.01468,"139":0.07341,"140":0.1248,"141":3.73657,"142":43.52479,"143":0.00734,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 17.3 26.2","15.6":0.01468,"16.3":0.00734,"16.5":0.00734,"16.6":0.01468,"17.1":0.00734,"17.4":0.00734,"17.5":0.01468,"17.6":0.02202,"18.0":0.00734,"18.1":0.00734,"18.2":0.00734,"18.3":0.01468,"18.4":0.00734,"18.5-18.6":0.02936,"26.0":0.05139,"26.1":0.04405},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00033,"5.0-5.1":0,"6.0-6.1":0.00133,"7.0-7.1":0.001,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.003,"10.0-10.2":0.00033,"10.3":0.00534,"11.0-11.2":0.06207,"11.3-11.4":0.002,"12.0-12.1":0.00067,"12.2-12.5":0.01568,"13.0-13.1":0,"13.2":0.00167,"13.3":0.00067,"13.4-13.7":0.003,"14.0-14.4":0.00501,"14.5-14.8":0.00634,"15.0-15.1":0.00534,"15.2-15.3":0.00434,"15.4":0.00467,"15.5":0.00501,"15.6-15.8":0.07241,"16.0":0.00901,"16.1":0.01669,"16.2":0.00868,"16.3":0.01602,"16.4":0.004,"16.5":0.00667,"16.6-16.7":0.09778,"17.0":0.00834,"17.1":0.01001,"17.2":0.00734,"17.3":0.01034,"17.4":0.01702,"17.5":0.03237,"17.6-17.7":0.07942,"18.0":0.01769,"18.1":0.03737,"18.2":0.02002,"18.3":0.06507,"18.4":0.03337,"18.5-18.7":2.33026,"26.0":0.15984,"26.1":0.14583},P:{"4":0.02061,"20":0.0103,"21":0.02061,"22":0.03091,"23":0.03091,"24":0.04121,"25":0.11334,"26":0.07213,"27":0.09273,"28":0.31941,"29":0.39154,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0","7.2-7.4":0.19577,"11.1-11.2":0.0103,"13.0":0.0103,"17.0":0.0103,"18.0":0.0103,"19.0":0.02061},I:{"0":0.01062,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.71527,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00734,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.35631},H:{"0":0},L:{"0":25.6763},R:{_:"0"},M:{"0":0.07179}};
Index: de_modules/caniuse-lite/data/regions/LR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"53":0.00579,"57":0.00869,"58":0.0029,"65":0.0029,"72":0.00579,"85":0.0029,"93":0.0029,"106":0.0029,"108":0.00579,"112":0.00579,"115":0.01448,"127":0.01448,"138":0.01158,"140":0.03475,"141":0.0029,"142":0.02606,"143":0.00869,"144":0.23458,"145":0.22589,"146":0.0029,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 107 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 139 147 148 3.5 3.6"},D:{"47":0.00579,"57":0.0029,"64":0.0029,"67":0.01448,"68":0.00869,"69":0.00579,"70":0.03186,"71":0.01738,"72":0.00869,"75":0.01158,"77":0.00869,"79":0.02027,"81":0.00579,"83":0.01158,"88":0.0029,"91":0.00869,"92":0.02606,"93":0.01738,"94":0.00869,"96":0.02317,"99":0.0029,"100":0.00579,"103":0.02027,"104":0.02896,"105":0.00869,"106":0.0029,"108":0.0029,"109":0.13611,"110":0.04923,"111":0.02606,"113":0.0029,"114":0.04344,"116":0.05502,"117":0.0029,"119":0.01738,"120":0.02896,"122":0.03186,"123":0.00869,"124":0.00869,"125":0.12453,"126":0.06082,"127":0.00579,"128":0.03186,"129":0.02606,"131":0.08109,"132":0.01448,"133":0.00579,"134":0.02606,"135":0.03186,"136":0.02027,"137":0.03475,"138":0.08398,"139":0.10136,"140":0.41702,"141":1.83317,"142":3.78797,"143":0.0029,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 65 66 73 74 76 78 80 84 85 86 87 89 90 95 97 98 101 102 107 112 115 118 121 130 144 145 146"},F:{"21":0.0029,"36":0.02317,"37":0.0029,"68":0.0029,"79":0.03186,"90":0.04634,"91":0.02606,"92":0.18534,"93":0.02606,"95":0.03475,"108":0.00579,"113":0.0029,"114":0.00579,"119":0.00579,"120":0.01448,"122":0.16797,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02606,"13":0.0029,"14":0.0029,"15":0.0029,"16":0.00869,"17":0.02896,"18":0.2172,"84":0.01158,"90":0.02027,"92":0.08688,"97":0.01158,"100":0.00869,"103":0.0029,"109":0.0029,"113":0.0029,"114":0.07819,"118":0.0029,"120":0.0029,"122":0.01448,"124":0.0029,"126":0.0029,"127":0.0029,"128":0.00579,"129":0.00579,"130":0.0029,"131":0.01448,"132":0.0029,"133":0.00579,"134":0.01158,"135":0.01738,"136":0.01448,"137":0.01448,"138":0.01738,"139":0.03765,"140":0.08688,"141":0.52128,"142":2.88152,"143":0.05792,_:"79 80 81 83 85 86 87 88 89 91 93 94 95 96 98 99 101 102 104 105 106 107 108 110 111 112 115 116 117 119 121 123 125"},E:{"12":0.0029,"13":0.0029,"14":0.01158,"15":0.01158,_:"0 4 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.2 16.3 16.4 17.0 17.2 17.3 17.4 18.0 18.1 18.2 18.4 26.2","13.1":0.01158,"14.1":0.0029,"15.4":0.01738,"15.6":0.05502,"16.1":0.00869,"16.5":0.0029,"16.6":0.00579,"17.1":0.00579,"17.5":0.00869,"17.6":0.30408,"18.3":0.0029,"18.5-18.6":0.01738,"26.0":0.02606,"26.1":0.03475},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0.00234,"7.0-7.1":0.00175,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00526,"10.0-10.2":0.00058,"10.3":0.00934,"11.0-11.2":0.10863,"11.3-11.4":0.0035,"12.0-12.1":0.00117,"12.2-12.5":0.02745,"13.0-13.1":0,"13.2":0.00292,"13.3":0.00117,"13.4-13.7":0.00526,"14.0-14.4":0.00876,"14.5-14.8":0.0111,"15.0-15.1":0.00934,"15.2-15.3":0.00759,"15.4":0.00818,"15.5":0.00876,"15.6-15.8":0.12673,"16.0":0.01577,"16.1":0.0292,"16.2":0.01518,"16.3":0.02803,"16.4":0.00701,"16.5":0.01168,"16.6-16.7":0.17112,"17.0":0.0146,"17.1":0.01752,"17.2":0.01285,"17.3":0.0181,"17.4":0.02979,"17.5":0.05665,"17.6-17.7":0.139,"18.0":0.03095,"18.1":0.06541,"18.2":0.03504,"18.3":0.11389,"18.4":0.0584,"18.5-18.7":4.07829,"26.0":0.27975,"26.1":0.25522},P:{"22":0.02068,"24":0.02068,"25":0.03103,"26":0.01034,"27":0.20683,"28":0.22752,"29":0.34128,_:"4 20 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01034,"11.1-11.2":0.01034,"13.0":0.01034,"14.0":0.01034,"16.0":0.03103},I:{"0":0.01419,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.86682,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00579,"11":0.00579,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{"2.5":0.00711,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.39078},H:{"0":4.97},L:{"0":69.97167},R:{_:"0"},M:{"0":0.38367}};
Index: de_modules/caniuse-lite/data/regions/LS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"43":0.00409,"88":0.00409,"115":0.02046,"128":0.01227,"140":0.03273,"141":0.01636,"142":0.00409,"144":0.15137,"145":0.24955,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 143 146 147 148 3.5 3.6"},D:{"63":0.00409,"69":0.00409,"71":0.00409,"75":0.00409,"76":0.00409,"79":0.00818,"80":0.00409,"83":0.01636,"86":0.02864,"90":0.00409,"96":0.00409,"99":0.00409,"103":0.02046,"104":0.00409,"106":0.00409,"108":0.00409,"109":0.50728,"111":0.02455,"112":0.03273,"113":0.00409,"114":0.00409,"115":0.00409,"116":0.01227,"117":0.00818,"119":0.00409,"120":0.01227,"121":0.01227,"122":0.01227,"123":0.00409,"124":0.05318,"125":0.09818,"126":0.00818,"127":0.03273,"128":0.00409,"129":0.00409,"131":0.06137,"132":0.045,"133":0.02046,"134":0.02864,"135":0.02046,"136":0.01636,"137":0.03682,"138":0.09,"139":0.05727,"140":0.23319,"141":2.45869,"142":8.21064,"143":0.4541,"144":0.37228,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 70 72 73 74 77 78 81 84 85 87 88 89 91 92 93 94 95 97 98 100 101 102 105 107 110 118 130 145 146"},F:{"38":0.00409,"45":0.00409,"79":0.00409,"82":0.00818,"91":0.00409,"92":0.37228,"93":0.04909,"95":0.18,"120":0.00818,"122":0.135,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00409,"17":0.00409,"18":0.01636,"88":0.00409,"92":0.02046,"100":0.01636,"109":0.02046,"114":0.03682,"120":0.00409,"128":0.00409,"131":0.00818,"132":0.00409,"133":0.00409,"135":0.00409,"136":0.00818,"137":0.03273,"138":0.01636,"139":0.02046,"140":0.05318,"141":0.51547,"142":3.05189,_:"13 14 15 16 79 80 81 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 122 123 124 125 126 127 129 130 134 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 17.5 18.0 18.4 26.2","13.1":0.00409,"15.6":0.01227,"16.6":0.00818,"17.1":0.00818,"17.6":0.01227,"18.1":0.00409,"18.2":0.00818,"18.3":0.00409,"18.5-18.6":0.03682,"26.0":0.02455,"26.1":0.00818},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0.00139,"7.0-7.1":0.00104,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00312,"10.0-10.2":0.00035,"10.3":0.00555,"11.0-11.2":0.06452,"11.3-11.4":0.00208,"12.0-12.1":0.00069,"12.2-12.5":0.0163,"13.0-13.1":0,"13.2":0.00173,"13.3":0.00069,"13.4-13.7":0.00312,"14.0-14.4":0.0052,"14.5-14.8":0.00659,"15.0-15.1":0.00555,"15.2-15.3":0.00451,"15.4":0.00486,"15.5":0.0052,"15.6-15.8":0.07527,"16.0":0.00937,"16.1":0.01734,"16.2":0.00902,"16.3":0.01665,"16.4":0.00416,"16.5":0.00694,"16.6-16.7":0.10163,"17.0":0.00867,"17.1":0.01041,"17.2":0.00763,"17.3":0.01075,"17.4":0.01769,"17.5":0.03365,"17.6-17.7":0.08255,"18.0":0.01838,"18.1":0.03885,"18.2":0.02081,"18.3":0.06764,"18.4":0.03469,"18.5-18.7":2.42211,"26.0":0.16615,"26.1":0.15158},P:{"4":0.39461,"22":0.07083,"23":0.02024,"24":0.15177,"25":0.14166,"26":0.08095,"27":0.2226,"28":0.45532,"29":2.49923,_:"20 21 6.2-6.4 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0","5.0-5.4":0.01012,"7.2-7.4":0.2226,"8.2":0.01012,"13.0":0.01012,"17.0":0.02024,"18.0":0.01012,"19.0":0.18213},I:{"0":0.0118,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.90904,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.23728,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01182},O:{"0":0.25409},H:{"0":0.27},L:{"0":68.86884},R:{_:"0"},M:{"0":0.07091}};
Index: de_modules/caniuse-lite/data/regions/LT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.00565,"77":0.00565,"106":0.00565,"115":0.32177,"125":0.00565,"128":0.01694,"129":0.00565,"130":0.01129,"132":0.01129,"133":0.00565,"134":0.01129,"135":0.00565,"136":0.01129,"137":0.00565,"138":0.00565,"139":0.02823,"140":0.13548,"141":0.02823,"142":0.02258,"143":0.07903,"144":1.3548,"145":1.84592,"146":0.01129,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 131 147 148 3.5 3.6"},D:{"39":0.06774,"40":0.07339,"41":0.0621,"42":0.06774,"43":0.06774,"44":0.06774,"45":0.0621,"46":0.06774,"47":0.06774,"48":0.06774,"49":0.06774,"50":0.07339,"51":0.06774,"52":0.06774,"53":0.06774,"54":0.06774,"55":0.06774,"56":0.06774,"57":0.06774,"58":0.06774,"59":0.06774,"60":0.06774,"79":0.10726,"81":0.00565,"85":0.05081,"87":0.02258,"88":0.18629,"90":0.01129,"91":0.00565,"92":0.00565,"98":0.01694,"102":0.00565,"103":0.01129,"104":0.03387,"105":0.00565,"106":0.02823,"107":0.00565,"108":0.03387,"109":0.77901,"110":0.00565,"111":0.00565,"112":0.01694,"113":0.04516,"114":0.15806,"115":0.16935,"116":0.2258,"117":0.01129,"118":0.01129,"119":0.02823,"120":0.73385,"121":8.78362,"122":0.28225,"123":0.01129,"124":0.05081,"125":0.07903,"126":0.03387,"127":0.01694,"128":0.02823,"129":0.16371,"130":0.02823,"131":0.32177,"132":0.03387,"133":0.05081,"134":0.07903,"135":0.03952,"136":0.07903,"137":0.13548,"138":0.25967,"139":1.63705,"140":0.41773,"141":4.09263,"142":17.22854,"143":0.03952,"144":0.00565,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 86 89 93 94 95 96 97 99 100 101 145 146"},F:{"92":0.02823,"93":0.00565,"95":0.03387,"102":0.00565,"114":0.00565,"119":0.00565,"120":0.01129,"121":0.00565,"122":1.11207,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.03387,"92":0.00565,"109":0.03952,"114":0.00565,"120":0.00565,"122":0.00565,"123":0.01129,"130":0.00565,"131":0.01694,"132":0.02823,"133":0.00565,"134":0.00565,"135":0.00565,"136":0.00565,"137":0.01129,"138":0.01694,"139":0.02258,"140":0.06774,"141":0.41209,"142":3.7257,"143":0.00565,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 124 125 126 127 128 129"},E:{"10":0.00565,"11":0.01129,"14":0.00565,"15":0.00565,_:"0 4 5 6 7 8 9 12 13 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0","10.1":0.01694,"13.1":0.00565,"14.1":0.01129,"15.5":0.00565,"15.6":0.0621,"16.1":0.00565,"16.2":0.00565,"16.3":0.01129,"16.4":0.01129,"16.5":0.00565,"16.6":0.06774,"17.0":0.00565,"17.1":0.02823,"17.2":0.00565,"17.3":0.01694,"17.4":0.03952,"17.5":0.03387,"17.6":0.15806,"18.0":0.01129,"18.1":0.05645,"18.2":0.00565,"18.3":0.05081,"18.4":0.01694,"18.5-18.6":0.08468,"26.0":0.20322,"26.1":0.28225,"26.2":0.01694},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0.00401,"7.0-7.1":0.00301,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00903,"10.0-10.2":0.001,"10.3":0.01605,"11.0-11.2":0.18655,"11.3-11.4":0.00602,"12.0-12.1":0.00201,"12.2-12.5":0.04714,"13.0-13.1":0,"13.2":0.00501,"13.3":0.00201,"13.4-13.7":0.00903,"14.0-14.4":0.01504,"14.5-14.8":0.01906,"15.0-15.1":0.01605,"15.2-15.3":0.01304,"15.4":0.01404,"15.5":0.01504,"15.6-15.8":0.21764,"16.0":0.02708,"16.1":0.05015,"16.2":0.02608,"16.3":0.04814,"16.4":0.01204,"16.5":0.02006,"16.6-16.7":0.29387,"17.0":0.02507,"17.1":0.03009,"17.2":0.02207,"17.3":0.03109,"17.4":0.05115,"17.5":0.09729,"17.6-17.7":0.2387,"18.0":0.05316,"18.1":0.11233,"18.2":0.06018,"18.3":0.19558,"18.4":0.1003,"18.5-18.7":7.00365,"26.0":0.48042,"26.1":0.43829},P:{"4":0.04097,"22":0.01024,"23":0.01024,"24":0.02049,"25":0.02049,"26":0.05122,"27":0.04097,"28":0.24584,"29":1.70041,_:"20 21 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01024,"7.2-7.4":0.03073},I:{"0":0.0174,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.44421,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00706,"11":0.02117,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01307},H:{"0":0},L:{"0":31.56745},R:{_:"0"},M:{"0":0.38324}};
Index: de_modules/caniuse-lite/data/regions/LU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"50":0.0072,"52":0.0072,"60":0.05039,"68":0.0072,"78":0.10079,"91":0.0216,"102":0.07919,"104":0.0144,"108":0.06479,"115":0.25916,"125":0.0144,"128":0.33115,"133":0.0144,"134":0.0072,"135":0.0072,"136":0.06479,"137":0.0072,"139":0.05759,"140":2.9084,"141":0.0072,"142":0.30236,"143":0.08639,"144":1.87894,"145":2.30368,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 138 146 147 148 3.5 3.6"},D:{"66":0.0216,"77":0.05759,"79":0.07199,"87":0.0144,"88":0.0072,"92":0.0072,"102":0.0072,"103":0.0288,"104":0.0072,"108":0.05039,"109":0.47513,"111":0.0072,"112":0.0144,"114":0.23037,"116":0.14398,"117":0.0072,"118":0.7199,"119":0.0216,"120":0.0216,"121":0.0144,"122":0.06479,"123":0.0072,"124":0.0072,"125":25.10291,"126":0.0144,"127":0.0072,"128":0.07199,"130":0.036,"131":0.07199,"132":0.0288,"133":0.05759,"134":0.12238,"135":0.0288,"136":0.10079,"137":0.07199,"138":0.20877,"139":0.07919,"140":0.66231,"141":5.14729,"142":10.91368,"143":0.05039,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 78 80 81 83 84 85 86 89 90 91 93 94 95 96 97 98 99 100 101 105 106 107 110 113 115 129 144 145 146"},F:{"79":0.0072,"81":0.0072,"82":0.0072,"84":0.0072,"85":0.0072,"86":0.0072,"89":0.0072,"90":0.0072,"92":0.04319,"93":0.0072,"95":0.0216,"96":0.036,"114":0.0072,"116":0.0144,"117":0.036,"122":0.53273,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 87 88 91 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"102":0.0144,"103":0.0144,"104":0.0072,"105":0.0144,"108":0.0216,"109":0.0144,"120":0.0144,"122":0.0144,"131":0.0288,"132":0.0072,"133":0.0216,"134":0.036,"135":0.0144,"136":0.0072,"137":0.0072,"138":0.036,"139":0.0072,"140":0.26636,"141":1.11585,"142":5.32006,"143":0.0072,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 106 107 110 111 112 113 114 115 116 117 118 119 121 123 124 125 126 127 128 129 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3 26.2","11.1":0.0072,"12.1":0.0072,"13.1":0.0072,"14.1":0.04319,"15.1":0.0072,"15.4":0.0072,"15.5":0.0072,"15.6":0.10079,"16.0":0.0072,"16.1":0.04319,"16.2":0.0072,"16.3":0.05039,"16.4":0.0072,"16.5":0.036,"16.6":0.12238,"17.0":0.0072,"17.1":0.23037,"17.2":0.11518,"17.3":0.07199,"17.4":0.09359,"17.5":0.10079,"17.6":0.38875,"18.0":0.0216,"18.1":0.05759,"18.2":0.16558,"18.3":0.24477,"18.4":0.17998,"18.5-18.6":0.53993,"26.0":0.58312,"26.1":0.58312},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0,"6.0-6.1":0.00439,"7.0-7.1":0.00329,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00987,"10.0-10.2":0.0011,"10.3":0.01755,"11.0-11.2":0.20402,"11.3-11.4":0.00658,"12.0-12.1":0.00219,"12.2-12.5":0.05155,"13.0-13.1":0,"13.2":0.00548,"13.3":0.00219,"13.4-13.7":0.00987,"14.0-14.4":0.01645,"14.5-14.8":0.02084,"15.0-15.1":0.01755,"15.2-15.3":0.01426,"15.4":0.01536,"15.5":0.01645,"15.6-15.8":0.23802,"16.0":0.02962,"16.1":0.05484,"16.2":0.02852,"16.3":0.05265,"16.4":0.01316,"16.5":0.02194,"16.6-16.7":0.32138,"17.0":0.02742,"17.1":0.03291,"17.2":0.02413,"17.3":0.034,"17.4":0.05594,"17.5":0.1064,"17.6-17.7":0.26106,"18.0":0.05813,"18.1":0.12285,"18.2":0.06581,"18.3":0.21389,"18.4":0.10969,"18.5-18.7":7.65945,"26.0":0.5254,"26.1":0.47933},P:{"4":0.07319,"24":0.02091,"25":0.02091,"26":0.01046,"27":0.01046,"28":0.07319,"29":2.55135,_:"20 21 22 23 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01046,"7.2-7.4":0.01046},I:{"0":0.0028,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.45936,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0144,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0028},O:{"0":0.03641},H:{"0":0},L:{"0":13.86714},R:{_:"0"},M:{"0":1.29686}};
Index: de_modules/caniuse-lite/data/regions/LV.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LV.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.01266,"16":0.03165,"48":0.01266,"52":0.01266,"60":0.01899,"68":0.00633,"72":0.01266,"77":0.03165,"112":0.00633,"113":0.01899,"114":0.02532,"115":0.4367,"118":0.00633,"123":0.00633,"125":0.01266,"127":0.01266,"128":0.01266,"132":0.00633,"133":0.00633,"134":0.01266,"135":0.00633,"136":0.07595,"137":0.00633,"138":0.00633,"139":0.01899,"140":0.16455,"141":0.01899,"142":0.03165,"143":0.06962,"144":1.7468,"145":2.29743,"146":0.01266,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 116 117 119 120 121 122 124 126 129 130 131 147 148 3.5 3.6"},D:{"48":0.12025,"49":0.00633,"79":0.03797,"87":0.10126,"92":0.00633,"97":0.00633,"99":0.00633,"102":0.02532,"103":0.02532,"104":0.03165,"105":0.00633,"106":0.02532,"108":0.01899,"109":2.01262,"111":0.00633,"112":1.76579,"113":0.01266,"114":0.01266,"115":0.01266,"116":0.09494,"117":0.00633,"118":0.00633,"119":0.01899,"120":0.09494,"121":0.01266,"122":0.06962,"123":0.01266,"124":0.02532,"125":0.06962,"126":0.20253,"127":0.01899,"128":0.08861,"129":0.01266,"130":0.05063,"131":0.14557,"132":0.03165,"133":0.12025,"134":0.08228,"135":0.36708,"136":0.05696,"137":0.05696,"138":0.3481,"139":0.91138,"140":0.55062,"141":4.99991,"142":24.6831,"143":0.03165,"144":0.14557,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 93 94 95 96 98 100 101 107 110 145 146"},F:{"79":0.00633,"82":0.00633,"86":0.00633,"92":0.06962,"93":0.01266,"95":0.40506,"102":0.00633,"114":0.00633,"117":0.00633,"119":0.01899,"120":0.02532,"121":0.00633,"122":0.82277,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00633,"109":0.01266,"121":0.02532,"130":0.05063,"131":0.01899,"132":0.01266,"133":0.05696,"134":0.00633,"136":0.00633,"137":0.00633,"138":0.00633,"139":0.00633,"140":0.05696,"141":0.45569,"142":4.00626,"143":0.00633,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 122 123 124 125 126 127 128 129 135"},E:{"4":0.01899,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 15.5 16.0 16.2 17.0","12.1":0.06329,"13.1":0.03797,"14.1":0.01266,"15.1":0.01266,"15.6":0.07595,"16.1":0.00633,"16.3":0.00633,"16.4":0.0443,"16.5":0.01266,"16.6":0.08861,"17.1":0.05696,"17.2":0.00633,"17.3":0.01899,"17.4":0.02532,"17.5":0.03797,"17.6":0.13291,"18.0":0.00633,"18.1":0.01899,"18.2":0.01266,"18.3":0.03797,"18.4":0.01266,"18.5-18.6":0.1519,"26.0":0.33544,"26.1":0.49366,"26.2":0.03165},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00097,"5.0-5.1":0,"6.0-6.1":0.00388,"7.0-7.1":0.00291,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00873,"10.0-10.2":0.00097,"10.3":0.01552,"11.0-11.2":0.18047,"11.3-11.4":0.00582,"12.0-12.1":0.00194,"12.2-12.5":0.0456,"13.0-13.1":0,"13.2":0.00485,"13.3":0.00194,"13.4-13.7":0.00873,"14.0-14.4":0.01455,"14.5-14.8":0.01843,"15.0-15.1":0.01552,"15.2-15.3":0.01261,"15.4":0.01358,"15.5":0.01455,"15.6-15.8":0.21054,"16.0":0.0262,"16.1":0.04851,"16.2":0.02523,"16.3":0.04657,"16.4":0.01164,"16.5":0.0194,"16.6-16.7":0.28428,"17.0":0.02426,"17.1":0.02911,"17.2":0.02135,"17.3":0.03008,"17.4":0.04948,"17.5":0.09411,"17.6-17.7":0.23092,"18.0":0.05142,"18.1":0.10867,"18.2":0.05821,"18.3":0.1892,"18.4":0.09702,"18.5-18.7":6.77522,"26.0":0.46475,"26.1":0.424},P:{"4":0.03117,"20":0.01039,"22":0.01039,"23":0.01039,"24":0.02078,"25":0.01039,"26":0.07273,"27":0.05195,"28":0.3117,"29":2.27538,_:"21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01039},I:{"0":0.022,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.38913,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.32133,"9":0.0489,"10":0.10478,"11":1.41104,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04772},H:{"0":0},L:{"0":25.89124},R:{_:"0"},M:{"0":0.32672}};
Index: de_modules/caniuse-lite/data/regions/LY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/LY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0068,"44":0.00227,"47":0.00453,"72":0.00227,"78":0.00227,"115":0.10428,"121":0.00453,"125":0.00227,"128":0.00227,"137":0.00227,"140":0.00907,"142":0.00227,"143":0.00453,"144":0.11562,"145":0.14282,"146":0.00227,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 126 127 129 130 131 132 133 134 135 136 138 139 141 147 148 3.5 3.6"},D:{"43":0.00227,"51":0.02947,"56":0.00907,"58":0.00227,"63":0.00227,"64":0.00227,"65":0.0068,"66":0.00227,"68":0.00227,"69":0.00907,"70":0.00907,"71":0.00453,"73":0.01814,"74":0.00227,"75":0.00453,"78":0.00227,"79":0.01587,"81":0.00227,"83":0.02267,"85":0.00227,"86":0.00907,"87":0.02494,"88":0.00907,"89":0.00907,"90":0.0068,"91":0.0204,"92":0.00227,"93":0.00227,"94":0.00453,"95":0.00227,"96":0.0204,"98":0.01587,"99":0.00453,"100":0.00453,"101":0.0136,"102":0.00227,"103":0.0272,"104":0.00453,"105":0.00227,"106":0.00227,"108":0.00907,"109":0.79345,"110":0.00453,"111":0.01134,"112":0.00907,"114":0.0068,"115":0.0136,"116":0.0204,"118":0.00453,"119":0.00453,"120":0.01134,"121":0.00453,"122":0.01587,"123":0.0204,"124":0.03174,"125":0.16322,"126":0.1927,"127":0.00453,"128":0.0136,"129":0.00907,"130":0.01134,"131":0.07935,"132":0.0204,"133":0.0136,"134":0.01587,"135":0.02947,"136":0.02267,"137":0.07481,"138":0.07254,"139":0.05441,"140":0.15869,"141":1.63677,"142":4.70176,"143":0.00907,"144":0.00453,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 52 53 54 55 57 59 60 61 62 67 72 76 77 80 84 97 107 113 117 145 146"},F:{"46":0.00453,"79":0.01587,"84":0.00227,"85":0.00227,"90":0.00227,"91":0.02267,"92":0.16549,"93":0.01814,"95":0.02947,"114":0.0068,"117":0.00453,"120":0.00453,"122":0.32872,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 86 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00227,"18":0.0068,"84":0.00227,"89":0.00227,"90":0.00227,"92":0.0272,"100":0.00227,"109":0.00907,"114":0.47154,"122":0.0068,"123":0.00453,"125":0.0068,"129":0.00227,"131":0.05441,"132":0.00227,"135":0.00227,"136":0.00907,"137":0.00907,"138":0.01134,"139":0.00907,"140":0.02494,"141":0.28111,"142":1.42368,"143":0.00453,_:"12 13 15 16 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 126 127 128 130 133 134"},E:{"13":0.00227,"15":0.00227,_:"0 4 5 6 7 8 9 10 11 12 14 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 17.2 17.3 26.2","5.1":0.02267,"13.1":0.00227,"14.1":0.16096,"15.6":0.00907,"16.1":0.01814,"16.3":0.00227,"16.6":0.0068,"17.0":0.00227,"17.1":0.00453,"17.4":0.0136,"17.5":0.00453,"17.6":0.0136,"18.0":0.00227,"18.1":0.0068,"18.2":0.00453,"18.3":0.03174,"18.4":0.01134,"18.5-18.6":0.01814,"26.0":0.04307,"26.1":0.04761},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00097,"5.0-5.1":0,"6.0-6.1":0.00388,"7.0-7.1":0.00291,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00874,"10.0-10.2":0.00097,"10.3":0.01554,"11.0-11.2":0.18063,"11.3-11.4":0.00583,"12.0-12.1":0.00194,"12.2-12.5":0.04564,"13.0-13.1":0,"13.2":0.00486,"13.3":0.00194,"13.4-13.7":0.00874,"14.0-14.4":0.01457,"14.5-14.8":0.01845,"15.0-15.1":0.01554,"15.2-15.3":0.01262,"15.4":0.0136,"15.5":0.01457,"15.6-15.8":0.21074,"16.0":0.02622,"16.1":0.04856,"16.2":0.02525,"16.3":0.04661,"16.4":0.01165,"16.5":0.01942,"16.6-16.7":0.28454,"17.0":0.02428,"17.1":0.02913,"17.2":0.02137,"17.3":0.03011,"17.4":0.04953,"17.5":0.0942,"17.6-17.7":0.23113,"18.0":0.05147,"18.1":0.10877,"18.2":0.05827,"18.3":0.18937,"18.4":0.09711,"18.5-18.7":6.78147,"26.0":0.46518,"26.1":0.42439},P:{"4":0.05086,"20":0.02034,"21":0.05086,"22":0.08138,"23":0.06103,"24":0.38653,"25":0.38653,"26":0.20344,"27":0.41705,"28":1.05788,"29":1.64786,_:"5.0-5.4 8.2 10.1 12.0 13.0","6.2-6.4":0.05086,"7.2-7.4":0.19327,"9.2":0.02034,"11.1-11.2":0.02034,"14.0":0.01017,"15.0":0.01017,"16.0":0.02034,"17.0":0.03052,"18.0":0.02034,"19.0":0.03052},I:{"0":0.09265,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":5.66529,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02947,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.24742},H:{"0":0.01},L:{"0":65.77328},R:{_:"0"},M:{"0":0.13144}};
Index: de_modules/caniuse-lite/data/regions/MA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.0057,"5":0.0228,"52":0.6783,"65":0.0114,"75":0.0057,"78":0.0057,"115":0.1767,"125":0.0171,"127":0.0057,"128":0.0114,"130":0.0057,"133":0.0057,"134":0.0057,"135":0.0057,"136":0.0057,"137":0.0057,"138":0.0057,"139":0.0057,"140":0.0342,"141":0.0057,"142":0.0114,"143":0.0627,"144":0.6384,"145":0.5985,"146":0.0057,_:"2 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 131 132 147 148 3.5 3.6"},D:{"29":0.0114,"48":0.0057,"49":0.0114,"55":0.0057,"56":0.0228,"63":0.0057,"65":0.0057,"66":0.0057,"67":0.0057,"68":0.0114,"69":0.0285,"70":0.0057,"71":0.0057,"72":0.0171,"73":0.0171,"74":0.0057,"75":0.0114,"76":0.0057,"79":0.0456,"80":0.0057,"81":0.0114,"83":0.0399,"84":0.0057,"85":0.0171,"86":0.0114,"87":0.0456,"88":0.0057,"91":0.0057,"93":0.0057,"95":0.0057,"96":0.0057,"98":0.0114,"99":0.0057,"100":0.0057,"101":0.0114,"102":0.0057,"103":0.0285,"104":0.0684,"106":0.0114,"107":0.0114,"108":0.0114,"109":1.1229,"110":0.0171,"111":0.0228,"112":17.9094,"113":0.0114,"114":0.0171,"116":0.0627,"117":0.0057,"118":0.0057,"119":0.057,"120":0.0228,"121":0.0114,"122":0.1539,"123":0.0114,"124":0.057,"125":0.3705,"126":3.4827,"127":0.0171,"128":0.057,"129":0.0285,"130":0.0342,"131":0.0855,"132":0.0627,"133":0.0342,"134":0.0684,"135":0.0627,"136":0.0684,"137":0.1026,"138":0.3306,"139":0.1824,"140":0.3876,"141":4.7367,"142":12.825,"143":0.0399,"144":0.0057,_:"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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 57 58 59 60 61 62 64 77 78 89 90 92 94 97 105 115 145 146"},F:{"79":0.0057,"92":0.0171,"95":0.0684,"102":0.0057,"114":0.0057,"117":0.0057,"118":0.0057,"120":0.0057,"122":0.3591,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0057,"92":0.0228,"109":0.0228,"114":0.1938,"122":0.0057,"129":0.0057,"131":0.0171,"132":0.0057,"133":0.0057,"134":0.0114,"135":0.0114,"136":0.0171,"137":0.0057,"138":0.0114,"139":0.0114,"140":0.0342,"141":0.3933,"142":2.7189,"143":0.0057,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 130"},E:{"4":0.0057,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 26.2","5.1":0.0171,"12.1":0.0057,"13.1":0.0057,"14.1":0.0114,"15.6":0.0399,"16.5":0.0057,"16.6":0.0456,"17.1":0.0114,"17.3":0.0057,"17.4":0.0171,"17.5":0.0171,"17.6":0.0513,"18.0":0.0114,"18.1":0.0114,"18.2":0.0057,"18.3":0.0171,"18.4":0.0171,"18.5-18.6":0.0513,"26.0":0.0969,"26.1":0.0969},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0,"6.0-6.1":0.00284,"7.0-7.1":0.00213,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00639,"10.0-10.2":0.00071,"10.3":0.01135,"11.0-11.2":0.13197,"11.3-11.4":0.00426,"12.0-12.1":0.00142,"12.2-12.5":0.03335,"13.0-13.1":0,"13.2":0.00355,"13.3":0.00142,"13.4-13.7":0.00639,"14.0-14.4":0.01064,"14.5-14.8":0.01348,"15.0-15.1":0.01135,"15.2-15.3":0.00922,"15.4":0.00993,"15.5":0.01064,"15.6-15.8":0.15396,"16.0":0.01916,"16.1":0.03548,"16.2":0.01845,"16.3":0.03406,"16.4":0.00851,"16.5":0.01419,"16.6-16.7":0.20788,"17.0":0.01774,"17.1":0.02129,"17.2":0.01561,"17.3":0.02199,"17.4":0.03618,"17.5":0.06882,"17.6-17.7":0.16886,"18.0":0.0376,"18.1":0.07946,"18.2":0.04257,"18.3":0.13835,"18.4":0.07095,"18.5-18.7":4.95444,"26.0":0.33985,"26.1":0.31005},P:{"4":0.1146,"21":0.02084,"22":0.01042,"23":0.02084,"24":0.03126,"25":0.05209,"26":0.06251,"27":0.07293,"28":0.30213,"29":1.21895,_:"20 8.2 9.2 10.1 11.1-11.2 12.0 15.0 16.0 18.0","5.0-5.4":0.01042,"6.2-6.4":0.01042,"7.2-7.4":0.12502,"13.0":0.01042,"14.0":0.01042,"17.0":0.01042,"19.0":0.01042},I:{"0":0.06012,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.2451,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.12825,"9":0.02138,"10":0.03563,"11":0.49875,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0516},H:{"0":0},L:{"0":36.8343},R:{_:"0"},M:{"0":0.1505}};
Index: de_modules/caniuse-lite/data/regions/MC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"102":0.00681,"113":0.03407,"115":2.87551,"116":0.00681,"128":0.38158,"133":0.03407,"134":0.12947,"135":0.00681,"136":0.04088,"137":0.03407,"138":0.00681,"139":0.00681,"140":0.53831,"143":0.00681,"144":3.18895,"145":2.75286,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 141 142 146 147 148 3.5 3.6"},D:{"70":0.00681,"75":0.00681,"79":0.01363,"80":0.00681,"83":0.00681,"85":0.00681,"86":0.00681,"89":0.00681,"90":0.06133,"94":0.00681,"95":0.00681,"97":0.02044,"98":0.70184,"99":0.21805,"100":0.00681,"103":2.40534,"109":0.18398,"110":0.00681,"112":0.27937,"115":0.00681,"116":0.27256,"119":0.00681,"120":0.03407,"122":0.00681,"123":0.00681,"124":0.00681,"125":0.0954,"127":0.00681,"128":0.0477,"129":0.00681,"131":0.17035,"132":0.10221,"133":0.14309,"134":0.32026,"135":0.46335,"136":0.12265,"137":0.10221,"138":0.39521,"139":0.293,"140":0.18398,"141":5.58748,"142":14.72505,"143":0.00681,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 76 77 78 81 84 87 88 91 92 93 96 101 102 104 105 106 107 108 111 113 114 117 118 121 126 130 144 145 146"},F:{"83":0.01363,"84":0.00681,"89":0.00681,"92":0.02726,"102":0.00681,"114":0.38158,"120":0.10902,"122":0.71547,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"98":0.07495,"99":0.02726,"109":0.00681,"117":0.00681,"127":0.0477,"131":0.17035,"132":0.01363,"133":0.16354,"134":0.0954,"135":0.06133,"137":0.39521,"140":0.02044,"141":0.27937,"142":4.48361,"143":0.00681,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 118 119 120 121 122 123 124 125 126 128 129 130 136 138 139"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 17.0","13.1":0.05451,"14.1":0.0477,"15.5":0.00681,"15.6":0.19079,"16.1":0.00681,"16.2":0.00681,"16.3":0.00681,"16.4":0.10902,"16.5":0.08858,"16.6":0.27937,"17.1":0.38158,"17.2":0.45654,"17.3":0.07495,"17.4":0.05451,"17.5":0.0954,"17.6":0.47017,"18.0":0.06133,"18.1":0.12947,"18.2":0.00681,"18.3":0.12265,"18.4":0.15672,"18.5-18.6":0.55875,"26.0":0.82449,"26.1":2.26906,"26.2":0.02044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00184,"5.0-5.1":0,"6.0-6.1":0.00736,"7.0-7.1":0.00552,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01656,"10.0-10.2":0.00184,"10.3":0.02943,"11.0-11.2":0.34216,"11.3-11.4":0.01104,"12.0-12.1":0.00368,"12.2-12.5":0.08646,"13.0-13.1":0,"13.2":0.0092,"13.3":0.00368,"13.4-13.7":0.01656,"14.0-14.4":0.02759,"14.5-14.8":0.03495,"15.0-15.1":0.02943,"15.2-15.3":0.02391,"15.4":0.02575,"15.5":0.02759,"15.6-15.8":0.39919,"16.0":0.04967,"16.1":0.09198,"16.2":0.04783,"16.3":0.0883,"16.4":0.02208,"16.5":0.03679,"16.6-16.7":0.539,"17.0":0.04599,"17.1":0.05519,"17.2":0.04047,"17.3":0.05703,"17.4":0.09382,"17.5":0.17844,"17.6-17.7":0.43782,"18.0":0.0975,"18.1":0.20603,"18.2":0.11038,"18.3":0.35872,"18.4":0.18396,"18.5-18.7":12.8459,"26.0":0.88117,"26.1":0.8039},P:{"25":0.01102,"28":0.01102,"29":0.89235,_:"4 20 21 22 23 24 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02863,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.0223,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02628,"9":0.00876,"10":0.00876,"11":0.01752,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":11.33767},R:{_:"0"},M:{"0":0.20709}};
Index: de_modules/caniuse-lite/data/regions/MD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01658,"52":0.06631,"57":0.0221,"63":0.00553,"88":0.04421,"92":0.00553,"109":0.00553,"113":0.00553,"115":0.19341,"121":0.00553,"125":0.00553,"128":0.01658,"132":0.00553,"135":0.00553,"136":0.00553,"138":0.00553,"139":0.00553,"140":0.14368,"141":0.00553,"142":0.00553,"143":0.01658,"144":0.52497,"145":0.8068,"146":0.00553,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 116 117 118 119 120 122 123 124 126 127 129 130 131 133 134 137 147 148 3.5 3.6"},D:{"38":0.01105,"49":0.01105,"69":0.01105,"70":0.00553,"79":0.00553,"81":0.00553,"85":0.01658,"86":0.01105,"87":0.00553,"89":0.00553,"90":0.01105,"91":0.00553,"97":0.00553,"98":0.01105,"101":0.00553,"102":0.09947,"103":0.01105,"106":0.06079,"107":0.00553,"108":0.01105,"109":2.68011,"110":0.00553,"111":0.0221,"112":8.81397,"113":0.00553,"114":0.00553,"116":0.09947,"117":0.01105,"118":0.04973,"119":0.00553,"120":0.02763,"121":0.00553,"122":0.04973,"123":0.01105,"124":0.02763,"125":0.23762,"126":2.11646,"127":0.03316,"128":0.03316,"129":0.20446,"130":0.01658,"131":0.08842,"132":0.08289,"133":0.03316,"134":0.09394,"135":0.03868,"136":0.04973,"137":0.04973,"138":0.50839,"139":0.16578,"140":0.71838,"141":5.6752,"142":14.37313,"143":0.0221,"144":0.01105,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 83 84 88 92 93 94 95 96 99 100 104 105 115 145 146"},F:{"79":0.09947,"82":0.00553,"85":0.04421,"86":0.00553,"91":0.00553,"92":0.09947,"93":0.01105,"95":0.19341,"114":0.00553,"120":0.03316,"121":0.00553,"122":0.45313,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00553,"92":0.00553,"109":0.00553,"110":0.00553,"114":0.22657,"118":0.01105,"131":0.00553,"133":0.00553,"135":0.00553,"136":0.00553,"138":0.0221,"139":0.00553,"140":0.04421,"141":0.22104,"142":1.96726,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 111 112 113 115 116 117 119 120 121 122 123 124 125 126 127 128 129 130 132 134 137 143"},E:{"14":0.00553,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.4 16.5 17.0 17.2 26.2","5.1":0.00553,"13.1":0.00553,"15.5":0.00553,"15.6":0.03316,"16.3":0.00553,"16.6":0.03868,"17.1":0.0221,"17.3":0.00553,"17.4":0.01105,"17.5":0.03868,"17.6":0.04421,"18.0":0.00553,"18.1":0.01658,"18.2":0.02763,"18.3":0.06631,"18.4":0.01105,"18.5-18.6":0.10499,"26.0":0.24867,"26.1":2.81826},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0,"6.0-6.1":0.00362,"7.0-7.1":0.00272,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00815,"10.0-10.2":0.00091,"10.3":0.01448,"11.0-11.2":0.16838,"11.3-11.4":0.00543,"12.0-12.1":0.00181,"12.2-12.5":0.04255,"13.0-13.1":0,"13.2":0.00453,"13.3":0.00181,"13.4-13.7":0.00815,"14.0-14.4":0.01358,"14.5-14.8":0.0172,"15.0-15.1":0.01448,"15.2-15.3":0.01177,"15.4":0.01267,"15.5":0.01358,"15.6-15.8":0.19645,"16.0":0.02444,"16.1":0.04526,"16.2":0.02354,"16.3":0.04345,"16.4":0.01086,"16.5":0.01811,"16.6-16.7":0.26525,"17.0":0.02263,"17.1":0.02716,"17.2":0.01992,"17.3":0.02806,"17.4":0.04617,"17.5":0.08781,"17.6-17.7":0.21546,"18.0":0.04798,"18.1":0.10139,"18.2":0.05432,"18.3":0.17653,"18.4":0.09053,"18.5-18.7":6.32166,"26.0":0.43364,"26.1":0.39561},P:{"4":0.02074,"20":0.01037,"21":0.01037,"22":0.02074,"23":0.02074,"24":0.03111,"25":0.12445,"26":0.05185,"27":0.06222,"28":0.36297,"29":1.84597,"5.0-5.4":0.01037,_:"6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 19.0","7.2-7.4":0.02074,"17.0":0.01037,"18.0":0.01037},I:{"0":0.00447,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.6981,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.14368,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00448},O:{"0":0.06713},H:{"0":0},L:{"0":34.50002},R:{_:"0"},M:{"0":0.40275}};
Index: de_modules/caniuse-lite/data/regions/ME.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ME.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.00328,"68":0.00984,"78":0.00984,"86":0.00328,"115":0.06232,"133":0.00656,"134":0.00328,"135":0.02296,"136":0.00328,"139":0.00328,"140":0.00984,"142":0.00328,"143":0.03608,"144":0.58056,"145":0.51496,"146":0.00328,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 137 138 141 147 148 3.5 3.6"},D:{"49":0.00656,"53":0.00328,"64":0.02952,"68":0.00984,"69":0.00328,"79":0.5576,"83":0.11152,"84":0.00328,"86":0.00656,"87":0.40344,"88":0.0164,"89":0.00328,"90":0.00656,"93":0.01312,"94":0.06232,"96":0.00328,"97":0.00984,"99":0.00328,"100":0.00656,"101":0.00328,"102":0.00656,"103":0.01968,"105":0.00656,"106":0.00328,"108":0.0492,"109":1.1316,"110":0.01312,"111":0.01968,"112":0.00328,"113":0.02296,"114":0.00656,"116":0.04592,"118":0.00328,"119":0.02296,"120":0.07872,"121":0.00328,"122":0.09184,"123":0.01312,"124":0.0164,"125":0.07216,"126":0.10824,"127":0.02952,"128":0.06232,"129":0.00328,"130":0.00984,"131":0.164,"132":0.1312,"133":0.06888,"134":0.04264,"135":0.04264,"136":0.04264,"137":0.07544,"138":0.19024,"139":0.10824,"140":0.31488,"141":3.71296,"142":12.91336,"143":0.02952,"144":0.00328,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 65 66 67 70 71 72 73 74 75 76 77 78 80 81 85 91 92 95 98 104 107 115 117 145 146"},F:{"40":0.00328,"46":0.07544,"92":0.0164,"93":0.00328,"95":0.0164,"120":0.00328,"122":0.26896,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.02624,"109":0.00328,"114":0.02624,"124":0.00328,"131":0.00328,"134":0.00656,"135":0.00656,"136":0.00328,"137":0.00984,"138":0.00656,"139":0.00656,"140":0.00984,"141":0.18696,"142":1.28576,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 132 133 143"},E:{"14":0.00328,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 18.2 26.2","13.1":0.00328,"14.1":0.02624,"15.4":0.00984,"15.5":0.00656,"15.6":0.02296,"16.1":0.00328,"16.2":0.00656,"16.3":0.00328,"16.4":0.00328,"16.5":0.00328,"16.6":0.0328,"17.0":0.00328,"17.1":0.02296,"17.2":0.00656,"17.3":0.00328,"17.4":0.01312,"17.5":0.0492,"17.6":0.08528,"18.0":0.00328,"18.1":0.00656,"18.3":0.00984,"18.4":0.03936,"18.5-18.6":0.0984,"26.0":0.07872,"26.1":0.0984},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00159,"5.0-5.1":0,"6.0-6.1":0.00636,"7.0-7.1":0.00477,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0143,"10.0-10.2":0.00159,"10.3":0.02543,"11.0-11.2":0.29561,"11.3-11.4":0.00954,"12.0-12.1":0.00318,"12.2-12.5":0.0747,"13.0-13.1":0,"13.2":0.00795,"13.3":0.00318,"13.4-13.7":0.0143,"14.0-14.4":0.02384,"14.5-14.8":0.0302,"15.0-15.1":0.02543,"15.2-15.3":0.02066,"15.4":0.02225,"15.5":0.02384,"15.6-15.8":0.34487,"16.0":0.04291,"16.1":0.07946,"16.2":0.04132,"16.3":0.07629,"16.4":0.01907,"16.5":0.03179,"16.6-16.7":0.46566,"17.0":0.03973,"17.1":0.04768,"17.2":0.03496,"17.3":0.04927,"17.4":0.08105,"17.5":0.15416,"17.6-17.7":0.37825,"18.0":0.08423,"18.1":0.178,"18.2":0.09536,"18.3":0.30991,"18.4":0.15893,"18.5-18.7":11.09794,"26.0":0.76127,"26.1":0.69452},P:{"4":0.22741,"20":0.05168,"21":0.01034,"22":0.03101,"23":0.10337,"24":0.03101,"25":0.13438,"26":0.14471,"27":0.16539,"28":0.6202,"29":3.87623,"5.0-5.4":0.03101,"6.2-6.4":0.02067,"7.2-7.4":0.29976,"8.2":0.07236,_:"9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02013,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.26208,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":51.19024},R:{_:"0"},M:{"0":0.21504}};
Index: de_modules/caniuse-lite/data/regions/MG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00425,"45":0.00425,"47":0.00425,"48":0.00425,"52":0.01274,"56":0.00425,"57":0.00425,"60":0.00425,"62":0.00425,"67":0.00425,"68":0.00849,"72":0.01274,"75":0.00849,"76":0.00425,"78":0.02124,"81":0.00425,"82":0.00425,"84":0.00425,"86":0.00425,"92":0.00425,"95":0.00425,"109":0.00425,"111":0.00425,"112":0.00425,"113":0.00425,"115":0.59033,"121":0.00425,"125":0.02973,"127":0.02548,"128":0.03822,"129":0.00425,"133":0.00425,"134":0.01274,"135":0.00849,"136":0.08494,"137":0.00425,"138":0.00849,"139":0.01274,"140":0.12316,"141":0.02124,"142":0.02548,"143":0.08069,"144":1.41425,"145":1.71154,"146":0.02973,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 49 50 51 53 54 55 58 59 61 63 64 65 66 69 70 71 73 74 77 79 80 83 85 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 114 116 117 118 119 120 122 123 124 126 130 131 132 147 148 3.5 3.6"},D:{"11":0.00425,"43":0.00849,"52":0.00425,"58":0.00849,"59":0.00425,"60":0.00849,"61":0.00425,"63":0.00425,"64":0.00425,"65":0.00849,"67":0.00425,"68":0.01699,"69":0.00849,"70":0.00849,"71":0.00425,"73":0.01699,"74":0.00425,"75":0.01699,"76":0.00425,"79":0.03822,"80":0.02548,"81":0.02548,"83":0.00849,"84":0.00425,"85":0.02124,"86":0.02548,"87":0.03822,"89":0.00425,"90":0.01274,"91":0.00425,"93":0.00425,"94":0.01274,"95":0.01699,"99":0.00425,"100":0.00425,"101":0.02548,"102":0.00425,"103":0.03398,"105":0.01699,"106":0.02548,"107":0.00425,"108":0.00849,"109":1.49919,"110":0.00425,"111":0.01274,"112":0.00849,"113":0.00849,"114":0.00425,"115":0.00849,"116":0.09343,"117":0.01274,"118":0.00849,"119":0.02973,"120":0.01699,"121":0.01274,"122":0.09343,"123":0.04247,"124":0.02548,"125":0.10193,"126":0.07645,"127":0.02973,"128":0.07645,"129":0.09343,"130":0.02973,"131":0.09343,"132":0.02973,"133":0.05946,"134":0.05521,"135":0.20386,"136":0.15714,"137":0.19112,"138":0.46717,"139":0.22934,"140":0.55211,"141":4.75239,"142":15.1533,"143":0.02973,"144":0.00425,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 62 66 72 77 78 88 92 96 97 98 104 145 146"},F:{"34":0.00425,"36":0.00425,"42":0.00849,"53":0.00425,"64":0.00425,"79":0.01699,"82":0.00425,"85":0.00425,"92":0.05946,"95":0.04247,"102":0.00425,"106":0.00425,"115":0.00425,"118":0.00425,"120":0.00849,"121":0.00425,"122":0.2888,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 107 108 109 110 111 112 113 114 116 117 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00425},B:{"13":0.00425,"14":0.00425,"17":0.01274,"18":0.03398,"84":0.00849,"86":0.00425,"89":0.00425,"90":0.01274,"92":0.1444,"100":0.02124,"109":0.08494,"114":0.14865,"116":0.00425,"120":0.00425,"122":0.03398,"128":0.00425,"129":0.00425,"130":0.00425,"131":0.00425,"132":0.00425,"133":0.00849,"134":0.00425,"135":0.00425,"136":0.01274,"137":0.00425,"138":0.02973,"139":0.05096,"140":0.05946,"141":0.35675,"142":3.35938,"143":0.00849,_:"12 15 16 79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 117 118 119 121 123 124 125 126 127"},E:{"11":0.00425,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.1 26.2","13.1":0.01699,"14.1":0.01699,"15.6":0.05096,"16.3":0.00425,"16.5":0.00425,"16.6":0.07645,"17.2":0.00425,"17.3":0.00425,"17.4":0.00849,"17.5":0.02973,"17.6":0.02548,"18.0":0.01699,"18.1":0.00425,"18.2":0.00425,"18.3":0.02124,"18.4":0.00425,"18.5-18.6":0.02124,"26.0":0.08069,"26.1":0.06795},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00031,"5.0-5.1":0,"6.0-6.1":0.00124,"7.0-7.1":0.00093,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00279,"10.0-10.2":0.00031,"10.3":0.00495,"11.0-11.2":0.05756,"11.3-11.4":0.00186,"12.0-12.1":0.00062,"12.2-12.5":0.01454,"13.0-13.1":0,"13.2":0.00155,"13.3":0.00062,"13.4-13.7":0.00279,"14.0-14.4":0.00464,"14.5-14.8":0.00588,"15.0-15.1":0.00495,"15.2-15.3":0.00402,"15.4":0.00433,"15.5":0.00464,"15.6-15.8":0.06715,"16.0":0.00836,"16.1":0.01547,"16.2":0.00805,"16.3":0.01485,"16.4":0.00371,"16.5":0.00619,"16.6-16.7":0.09067,"17.0":0.00774,"17.1":0.00928,"17.2":0.00681,"17.3":0.00959,"17.4":0.01578,"17.5":0.03002,"17.6-17.7":0.07365,"18.0":0.0164,"18.1":0.03466,"18.2":0.01857,"18.3":0.06034,"18.4":0.03095,"18.5-18.7":2.16094,"26.0":0.14823,"26.1":0.13523},P:{"23":0.0107,"24":0.0107,"25":0.0107,"26":0.0107,"27":0.0107,"28":0.11772,"29":0.26753,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0107,"15.0":0.0107},I:{"0":0.17232,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":1.2571,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01699,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.09203,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00575},O:{"0":0.53494},H:{"0":0.48},L:{"0":57.09007},R:{_:"0"},M:{"0":0.17256}};
Index: de_modules/caniuse-lite/data/regions/MH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"134":0.04167,"142":0.01191,"143":0.18454,"144":0.22621,"145":0.15478,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 140 141 146 147 148 3.5 3.6"},D:{"70":0.07144,"73":0.05358,"91":0.01191,"97":0.04167,"103":0.18454,"104":0.02977,"109":0.11311,"112":0.01191,"114":0.01191,"116":0.02977,"120":0.05358,"125":0.57149,"126":0.16668,"127":0.01191,"132":0.43457,"134":0.02977,"138":0.09525,"139":1.73232,"140":0.71436,"141":5.57201,"142":34.59884,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 96 98 99 100 101 102 105 106 107 108 110 111 113 115 117 118 119 121 122 123 124 128 129 130 131 133 135 136 137 143 144 145 146"},F:{"122":0.02977,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.01191,"121":0.02977,"126":0.01191,"133":0.02977,"138":0.08334,"139":0.02977,"140":0.23812,"141":1.56564,"142":3.9647,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 122 123 124 125 127 128 129 130 131 132 134 135 136 137 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.6 17.0 17.2 18.0","15.4":0.01191,"16.5":0.02977,"17.1":0.15478,"17.3":0.07144,"17.4":0.01191,"17.5":1.63708,"17.6":0.01191,"18.1":0.05358,"18.2":0.04167,"18.3":0.07144,"18.4":0.11311,"18.5-18.6":0.04167,"26.0":1.94068,"26.1":0.16668,"26.2":0.02977},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00063,"5.0-5.1":0,"6.0-6.1":0.00254,"7.0-7.1":0.0019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0057,"10.0-10.2":0.00063,"10.3":0.01014,"11.0-11.2":0.11788,"11.3-11.4":0.0038,"12.0-12.1":0.00127,"12.2-12.5":0.02979,"13.0-13.1":0,"13.2":0.00317,"13.3":0.00127,"13.4-13.7":0.0057,"14.0-14.4":0.00951,"14.5-14.8":0.01204,"15.0-15.1":0.01014,"15.2-15.3":0.00824,"15.4":0.00887,"15.5":0.00951,"15.6-15.8":0.13753,"16.0":0.01711,"16.1":0.03169,"16.2":0.01648,"16.3":0.03042,"16.4":0.00761,"16.5":0.01268,"16.6-16.7":0.18569,"17.0":0.01584,"17.1":0.01901,"17.2":0.01394,"17.3":0.01965,"17.4":0.03232,"17.5":0.06147,"17.6-17.7":0.15083,"18.0":0.03359,"18.1":0.07098,"18.2":0.03803,"18.3":0.12358,"18.4":0.06338,"18.5-18.7":4.42555,"26.0":0.30357,"26.1":0.27695},P:{"28":0.03035,"29":0.21247,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01617,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.01619,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":35.63305},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/MK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00362,"48":0.00724,"49":0.00362,"52":0.04707,"78":0.00362,"111":0.00362,"115":0.23174,"118":0.00362,"125":0.00362,"127":0.00362,"132":0.01448,"133":0.00362,"134":0.00724,"135":0.00362,"136":0.00362,"138":0.00362,"139":0.00362,"140":0.03259,"141":0.00724,"142":0.01086,"143":0.03259,"144":0.69161,"145":0.83645,"146":0.00362,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 119 120 121 122 123 124 126 128 129 130 131 137 147 148 3.5 3.6"},D:{"49":0.01086,"53":0.00362,"56":0.00362,"58":0.01086,"64":0.00362,"65":0.00362,"66":0.00362,"68":0.00362,"69":0.01811,"70":0.00724,"73":0.00724,"79":0.28606,"83":0.01448,"86":0.00362,"87":0.12674,"89":0.00362,"92":0.00362,"93":0.01086,"94":0.00724,"95":0.01086,"96":0.00362,"98":0.00362,"99":0.00724,"100":0.00362,"101":0.00362,"102":0.02173,"103":0.00724,"104":0.01086,"108":0.02173,"109":1.81412,"110":0.00724,"111":0.01811,"112":2.91853,"113":0.00362,"114":0.01086,"116":0.03983,"117":0.00362,"118":0.00362,"119":0.00724,"120":0.03621,"121":0.01811,"122":0.08328,"123":0.02535,"124":0.02173,"125":0.11225,"126":0.48521,"127":0.00724,"128":0.03621,"129":0.01086,"130":0.01086,"131":0.0688,"132":0.03259,"133":0.11225,"134":0.05069,"135":0.05069,"136":0.05069,"137":0.04345,"138":0.14484,"139":0.1376,"140":0.33313,"141":4.85214,"142":14.14363,"143":0.02897,"144":0.00362,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 59 60 61 62 63 67 71 72 74 75 76 77 78 80 81 84 85 88 90 91 97 105 106 107 115 145 146"},F:{"36":0.01086,"46":0.04345,"92":0.03621,"93":0.00724,"95":0.04345,"114":0.00724,"115":0.00362,"117":0.00362,"119":0.00724,"120":0.00362,"122":0.2245,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00362,"92":0.00362,"109":0.01086,"114":0.05069,"115":0.01448,"122":0.00362,"131":0.01811,"132":0.00362,"133":0.00724,"134":0.01086,"135":0.00724,"136":0.01448,"137":0.00724,"138":0.01086,"139":0.00362,"140":0.01448,"141":0.16657,"142":1.64393,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 116 117 118 119 120 121 123 124 125 126 127 128 129 130 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.2 18.0 18.1 18.2","13.1":0.00362,"15.6":0.01448,"16.3":0.01811,"16.5":0.00724,"16.6":0.03621,"17.0":0.01086,"17.1":0.06518,"17.3":0.00362,"17.4":0.00724,"17.5":0.02535,"17.6":0.02535,"18.3":0.04345,"18.4":0.00724,"18.5-18.6":0.03983,"26.0":0.07242,"26.1":0.10863,"26.2":0.01086},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0019,"5.0-5.1":0,"6.0-6.1":0.00761,"7.0-7.1":0.00571,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01712,"10.0-10.2":0.0019,"10.3":0.03044,"11.0-11.2":0.35387,"11.3-11.4":0.01142,"12.0-12.1":0.00381,"12.2-12.5":0.08942,"13.0-13.1":0,"13.2":0.00951,"13.3":0.00381,"13.4-13.7":0.01712,"14.0-14.4":0.02854,"14.5-14.8":0.03615,"15.0-15.1":0.03044,"15.2-15.3":0.02473,"15.4":0.02664,"15.5":0.02854,"15.6-15.8":0.41285,"16.0":0.05137,"16.1":0.09513,"16.2":0.04947,"16.3":0.09132,"16.4":0.02283,"16.5":0.03805,"16.6-16.7":0.55744,"17.0":0.04756,"17.1":0.05708,"17.2":0.04186,"17.3":0.05898,"17.4":0.09703,"17.5":0.18454,"17.6-17.7":0.4528,"18.0":0.10083,"18.1":0.21308,"18.2":0.11415,"18.3":0.37099,"18.4":0.19025,"18.5-18.7":13.28527,"26.0":0.91131,"26.1":0.8314},P:{"4":0.19363,"21":0.01019,"22":0.01019,"23":0.01019,"24":0.02038,"25":0.04076,"26":0.03057,"27":0.06115,"28":0.3363,"29":2.12989,_:"20 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.02038,"6.2-6.4":0.01019,"7.2-7.4":0.15286,"13.0":0.01019},I:{"0":0.01274,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.17864,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01086,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00638},H:{"0":0},L:{"0":44.58578},R:{_:"0"},M:{"0":0.0957}};
Index: de_modules/caniuse-lite/data/regions/ML.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ML.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01741,"52":0.0029,"56":0.0029,"60":0.0029,"72":0.0029,"84":0.0029,"85":0.0029,"115":0.07835,"125":0.0029,"127":0.01161,"132":0.0029,"133":0.01161,"136":0.0029,"137":0.0029,"139":0.0029,"140":0.01451,"141":0.0058,"142":0.00871,"143":0.02031,"144":0.36275,"145":0.49334,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 131 134 135 138 146 147 148 3.5 3.6"},D:{"39":0.0029,"49":0.02322,"58":0.0058,"62":0.0058,"65":0.0029,"66":0.0029,"68":0.0029,"69":0.02612,"72":0.00871,"73":0.0058,"74":0.0058,"75":0.0058,"78":0.0058,"79":0.02902,"81":0.0029,"83":0.0029,"84":0.0029,"86":0.0029,"87":0.02031,"88":0.00871,"89":0.0029,"91":0.0029,"92":0.00871,"93":0.0029,"95":0.00871,"97":0.0058,"98":0.01741,"99":0.0029,"103":0.01741,"107":0.0029,"109":0.09286,"111":0.02322,"112":8.60443,"114":0.01741,"115":0.0029,"116":0.01451,"119":0.00871,"120":0.0029,"122":0.03482,"124":0.0058,"125":0.15671,"126":1.45971,"127":0.0058,"128":0.02902,"129":0.00871,"130":0.0058,"131":0.10447,"132":0.02031,"133":0.0058,"134":0.00871,"135":0.03192,"136":0.01451,"137":0.02322,"138":0.22345,"139":0.07255,"140":0.13349,"141":1.31751,"142":3.59558,"143":0.0029,"144":0.0029,_:"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 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 63 64 67 70 71 76 77 80 85 90 94 96 100 101 102 104 105 106 108 110 113 117 118 121 123 145 146"},F:{"79":0.0029,"90":0.01161,"92":0.01741,"95":0.00871,"109":0.0029,"113":0.0029,"114":0.01161,"119":0.0058,"120":0.0058,"121":0.0029,"122":0.09577,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.0029,"14":0.0029,"16":0.0029,"18":0.02031,"89":0.00871,"90":0.0058,"92":0.03773,"100":0.02031,"109":0.00871,"113":0.0029,"114":0.22055,"122":0.0058,"128":0.0029,"129":0.0029,"132":0.0029,"133":0.0029,"134":0.01161,"135":0.0029,"136":0.0058,"137":0.0058,"138":0.01741,"139":0.02031,"140":0.05514,"141":0.15381,"142":1.87469,"143":0.02902,_:"13 15 17 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 124 125 126 127 130 131"},E:{"7":0.0029,"13":0.0029,_:"0 4 5 6 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 18.0 18.1 18.2 26.2","13.1":0.00871,"14.1":0.03773,"15.6":0.02031,"16.1":0.0029,"16.6":0.05804,"17.1":0.0029,"17.3":0.03773,"17.4":0.0029,"17.5":0.01741,"17.6":0.05804,"18.3":0.02031,"18.4":0.0058,"18.5-18.6":0.00871,"26.0":0.07835,"26.1":0.09286},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00062,"5.0-5.1":0,"6.0-6.1":0.0025,"7.0-7.1":0.00187,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00562,"10.0-10.2":0.00062,"10.3":0.00998,"11.0-11.2":0.11605,"11.3-11.4":0.00374,"12.0-12.1":0.00125,"12.2-12.5":0.02932,"13.0-13.1":0,"13.2":0.00312,"13.3":0.00125,"13.4-13.7":0.00562,"14.0-14.4":0.00936,"14.5-14.8":0.01185,"15.0-15.1":0.00998,"15.2-15.3":0.00811,"15.4":0.00873,"15.5":0.00936,"15.6-15.8":0.13539,"16.0":0.01685,"16.1":0.0312,"16.2":0.01622,"16.3":0.02995,"16.4":0.00749,"16.5":0.01248,"16.6-16.7":0.18281,"17.0":0.0156,"17.1":0.01872,"17.2":0.01373,"17.3":0.01934,"17.4":0.03182,"17.5":0.06052,"17.6-17.7":0.14849,"18.0":0.03307,"18.1":0.06988,"18.2":0.03743,"18.3":0.12166,"18.4":0.06239,"18.5-18.7":4.35679,"26.0":0.29885,"26.1":0.27265},P:{"4":0.01029,"20":0.01029,"21":0.01029,"22":0.02059,"23":0.02059,"24":0.13382,"25":0.13382,"26":0.05147,"27":0.20588,"28":0.48383,"29":0.60736,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.06177,"19.0":0.01029},I:{"0":0.01418,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.75368,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.04353,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.0071,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0071},O:{"0":0.08518},H:{"0":0.02},L:{"0":69.4409},R:{_:"0"},M:{"0":0.09227}};
Index: de_modules/caniuse-lite/data/regions/MM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"49":0.00321,"57":0.00321,"72":0.00321,"108":0.00321,"113":0.00321,"115":0.09642,"123":0.00321,"127":0.01928,"128":0.00321,"133":0.00964,"134":0.00321,"135":0.00321,"136":0.00321,"137":0.00321,"138":0.00643,"139":0.00643,"140":0.01286,"141":0.01286,"142":0.01607,"143":0.06107,"144":0.45639,"145":0.51103,"146":0.00643,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 114 116 117 118 119 120 121 122 124 125 126 129 130 131 132 147 148 3.5 3.6"},D:{"37":0.00321,"50":0.00643,"55":0.00321,"56":0.00321,"61":0.00321,"62":0.00321,"65":0.00321,"66":0.00321,"67":0.00321,"68":0.00321,"70":0.00643,"71":0.00964,"72":0.00321,"74":0.00321,"76":0.00321,"79":0.00643,"80":0.00964,"81":0.00321,"83":0.00321,"86":0.00321,"87":0.00643,"88":0.00321,"89":0.00643,"91":0.00321,"92":0.00321,"93":0.00321,"95":0.00964,"97":0.00643,"99":0.00643,"100":0.00321,"103":0.00964,"105":0.00643,"106":0.00643,"107":0.00321,"108":0.00964,"109":0.27319,"110":0.00321,"111":0.00321,"112":0.00321,"113":0.00321,"114":0.03857,"115":0.00643,"116":0.01928,"117":0.00321,"118":0.00321,"119":0.00964,"120":0.00964,"121":0.00964,"122":0.045,"123":0.01286,"124":0.01928,"125":0.04821,"126":2.12445,"127":0.00964,"128":0.03214,"129":0.01928,"130":0.02571,"131":0.05464,"132":0.01286,"133":0.01928,"134":2.69655,"135":0.04821,"136":0.02571,"137":0.04821,"138":0.13499,"139":1.00598,"140":0.55924,"141":1.84484,"142":7.64932,"143":0.03535,"144":0.00643,_:"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 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 57 58 59 60 63 64 69 73 75 77 78 84 85 90 94 96 98 101 102 104 145 146"},F:{"92":0.01607,"95":0.00643,"101":0.00321,"109":0.00321,"114":0.00321,"116":0.00321,"117":0.00321,"119":0.00321,"120":0.01286,"121":0.00643,"122":0.10606,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 102 103 104 105 106 107 108 110 111 112 113 115 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01928,"90":0.00964,"92":0.02893,"100":0.00321,"109":0.00964,"114":0.07071,"120":0.01286,"122":0.00643,"124":0.00321,"128":0.00321,"130":0.00643,"133":0.00964,"134":0.00321,"136":0.00643,"137":0.00321,"138":0.00643,"139":0.00643,"140":0.01928,"141":0.1607,"142":1.28881,"143":0.00643,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 125 126 127 129 131 132 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 17.2 17.3","13.1":0.00964,"14.1":0.00964,"15.1":0.00964,"15.6":0.01928,"16.1":0.00964,"16.3":0.00643,"16.6":0.06107,"17.0":0.00321,"17.1":0.01286,"17.4":0.00964,"17.5":0.00643,"17.6":0.03535,"18.0":0.00643,"18.1":0.00643,"18.2":0.00321,"18.3":0.01928,"18.4":0.00643,"18.5-18.6":0.04821,"26.0":0.13499,"26.1":0.13177,"26.2":0.00321},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00059,"5.0-5.1":0,"6.0-6.1":0.00238,"7.0-7.1":0.00178,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00535,"10.0-10.2":0.00059,"10.3":0.00951,"11.0-11.2":0.11058,"11.3-11.4":0.00357,"12.0-12.1":0.00119,"12.2-12.5":0.02794,"13.0-13.1":0,"13.2":0.00297,"13.3":0.00119,"13.4-13.7":0.00535,"14.0-14.4":0.00892,"14.5-14.8":0.0113,"15.0-15.1":0.00951,"15.2-15.3":0.00773,"15.4":0.00832,"15.5":0.00892,"15.6-15.8":0.12902,"16.0":0.01605,"16.1":0.02973,"16.2":0.01546,"16.3":0.02854,"16.4":0.00713,"16.5":0.01189,"16.6-16.7":0.1742,"17.0":0.01486,"17.1":0.01784,"17.2":0.01308,"17.3":0.01843,"17.4":0.03032,"17.5":0.05767,"17.6-17.7":0.1415,"18.0":0.03151,"18.1":0.06659,"18.2":0.03567,"18.3":0.11594,"18.4":0.05945,"18.5-18.7":4.15168,"26.0":0.28479,"26.1":0.25981},P:{"4":0.01062,"21":0.01062,"22":0.01062,"23":0.01062,"25":0.01062,"26":0.01062,"27":0.01062,"28":0.06374,"29":0.33994,_:"20 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01062},I:{"0":0.14233,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.16289,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.10181},O:{"0":0.40043},H:{"0":0},L:{"0":71.30118},R:{_:"0"},M:{"0":0.10181}};
Index: de_modules/caniuse-lite/data/regions/MN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01969,"115":0.10502,"124":0.00656,"127":0.00656,"128":0.00656,"138":0.00656,"140":0.01313,"142":0.01313,"143":0.01969,"144":0.39384,"145":0.53168,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 125 126 129 130 131 132 133 134 135 136 137 139 141 146 147 148 3.5 3.6"},D:{"49":0.00656,"50":0.00656,"66":0.00656,"69":0.03282,"70":0.00656,"71":0.00656,"72":0.00656,"74":0.01969,"77":0.00656,"78":0.00656,"79":0.00656,"80":0.00656,"81":0.00656,"85":0.00656,"86":0.00656,"87":0.01969,"92":0.00656,"94":0.00656,"96":0.00656,"99":0.00656,"100":0.00656,"102":0.01969,"103":0.01969,"104":0.00656,"106":0.00656,"107":0.00656,"108":0.01313,"109":1.06337,"110":0.00656,"111":0.03282,"112":20.32214,"114":0.01313,"116":0.03938,"117":0.00656,"119":0.01313,"120":0.01969,"121":0.00656,"122":0.13128,"123":0.01313,"124":0.01313,"125":0.50543,"126":1.87074,"127":0.01313,"128":0.05251,"129":0.01969,"130":0.01969,"131":0.11815,"132":0.11159,"133":0.04595,"134":0.07877,"135":0.05251,"136":0.05251,"137":0.11815,"138":0.59732,"139":0.20348,"140":0.54481,"141":4.60793,"142":17.20424,"143":0.03938,"144":0.01313,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 73 75 76 83 84 88 89 90 91 93 95 97 98 101 105 113 115 118 145 146"},F:{"79":0.00656,"86":0.00656,"92":0.00656,"95":0.01969,"119":0.00656,"120":0.01313,"121":0.00656,"122":0.61702,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00656,"18":0.03282,"90":0.00656,"92":0.03938,"100":0.00656,"109":0.12472,"111":0.00656,"114":0.46604,"121":0.00656,"122":0.02626,"123":0.01313,"126":0.00656,"127":0.00656,"128":0.00656,"129":0.00656,"130":0.00656,"131":0.01313,"132":0.00656,"133":0.01969,"134":0.00656,"135":0.01313,"136":0.02626,"137":0.01313,"138":0.02626,"139":0.02626,"140":0.10502,"141":0.70891,"142":5.86822,"143":0.02626,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 115 116 117 118 119 120 124 125"},E:{"14":0.00656,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.5 16.0 16.5 17.0","12.1":0.00656,"13.1":0.00656,"14.1":0.03282,"15.1":0.00656,"15.2-15.3":0.00656,"15.4":0.00656,"15.6":0.05251,"16.1":0.00656,"16.2":0.00656,"16.3":0.01313,"16.4":0.01313,"16.6":0.19692,"17.1":0.05251,"17.2":0.01969,"17.3":0.01313,"17.4":0.05908,"17.5":0.03282,"17.6":0.0722,"18.0":0.00656,"18.1":0.01969,"18.2":0.01313,"18.3":0.0919,"18.4":0.03938,"18.5-18.6":0.19036,"26.0":0.21005,"26.1":0.20348,"26.2":0.00656},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0,"6.0-6.1":0.00414,"7.0-7.1":0.00311,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00932,"10.0-10.2":0.00104,"10.3":0.01657,"11.0-11.2":0.19268,"11.3-11.4":0.00622,"12.0-12.1":0.00207,"12.2-12.5":0.04869,"13.0-13.1":0,"13.2":0.00518,"13.3":0.00207,"13.4-13.7":0.00932,"14.0-14.4":0.01554,"14.5-14.8":0.01968,"15.0-15.1":0.01657,"15.2-15.3":0.01347,"15.4":0.0145,"15.5":0.01554,"15.6-15.8":0.22479,"16.0":0.02797,"16.1":0.0518,"16.2":0.02693,"16.3":0.04972,"16.4":0.01243,"16.5":0.02072,"16.6-16.7":0.30352,"17.0":0.0259,"17.1":0.03108,"17.2":0.02279,"17.3":0.03211,"17.4":0.05283,"17.5":0.10048,"17.6-17.7":0.24655,"18.0":0.0549,"18.1":0.11602,"18.2":0.06215,"18.3":0.202,"18.4":0.10359,"18.5-18.7":7.23377,"26.0":0.4962,"26.1":0.45269},P:{"4":0.06227,"21":0.01038,"23":0.02076,"24":0.01038,"25":0.02076,"26":0.04151,"27":0.12454,"28":0.44627,"29":1.8266,_:"20 22 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01038,"7.2-7.4":0.06227,"9.2":0.01038},I:{"0":0.01716,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.11342,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0919,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02062},O:{"0":0.06874},H:{"0":0},L:{"0":24.01748},R:{_:"0"},M:{"0":0.1203}};
Index: de_modules/caniuse-lite/data/regions/MO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"72":0.01616,"115":0.04444,"123":0.00404,"128":0.17776,"131":0.00404,"140":0.34744,"142":0.00404,"143":0.03232,"144":0.48884,"145":0.56964,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 129 130 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"11":0.00404,"37":0.00404,"49":0.00404,"58":0.00808,"68":0.00404,"71":0.01212,"72":0.01212,"78":0.00808,"79":0.06464,"81":0.00404,"83":0.00808,"85":0.00404,"86":0.00404,"87":0.00808,"88":0.00404,"92":0.02828,"97":0.02828,"99":0.00404,"101":0.00808,"102":0.00808,"103":0.00808,"105":0.03636,"107":0.00808,"108":0.04848,"109":0.31108,"111":0.00404,"114":0.16968,"115":0.02424,"116":0.02828,"117":0.00808,"118":0.01212,"119":0.0202,"120":0.02828,"121":0.01212,"122":0.05656,"123":0.00808,"124":0.03636,"125":2.89668,"126":0.02424,"127":0.03636,"128":0.12524,"129":0.00808,"130":0.13332,"131":0.04444,"132":0.07272,"133":0.0202,"134":0.14948,"135":0.0404,"136":0.05252,"137":0.06464,"138":0.16968,"139":0.16564,"140":0.25856,"141":4.77124,"142":12.11596,"143":0.13332,"144":0.0808,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 69 70 73 74 75 76 77 80 84 89 90 91 93 94 95 96 98 100 104 106 110 112 113 145 146"},F:{"92":0.02828,"93":0.00404,"95":0.0202,"122":0.09696,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01616,"90":0.00404,"92":0.00808,"100":0.00404,"108":0.00404,"109":0.0202,"113":0.00404,"114":0.00404,"118":0.00808,"120":0.01616,"122":0.01616,"124":0.01616,"125":0.00808,"126":0.00808,"127":0.0202,"128":0.00404,"130":0.00404,"131":0.00808,"133":0.00808,"134":0.00404,"135":0.09696,"136":0.00404,"137":0.02424,"138":0.0404,"139":0.03232,"140":0.06868,"141":0.65852,"142":4.62176,"143":0.01212,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 115 116 117 119 121 123 129 132"},E:{"14":0.00808,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 17.0","13.1":0.0202,"14.1":0.18988,"15.1":0.00808,"15.2-15.3":0.00404,"15.4":0.00808,"15.5":0.00808,"15.6":0.09292,"16.0":0.00404,"16.1":0.00404,"16.2":0.00404,"16.3":0.01212,"16.4":0.03232,"16.5":0.04444,"16.6":0.29088,"17.1":0.202,"17.2":0.0202,"17.3":0.01616,"17.4":0.18584,"17.5":0.04444,"17.6":0.09696,"18.0":0.03232,"18.1":0.01616,"18.2":0.02828,"18.3":0.0808,"18.4":0.03232,"18.5-18.6":0.16968,"26.0":0.21816,"26.1":0.26664,"26.2":0.00404},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00248,"5.0-5.1":0,"6.0-6.1":0.00992,"7.0-7.1":0.00744,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02232,"10.0-10.2":0.00248,"10.3":0.03968,"11.0-11.2":0.46127,"11.3-11.4":0.01488,"12.0-12.1":0.00496,"12.2-12.5":0.11656,"13.0-13.1":0,"13.2":0.0124,"13.3":0.00496,"13.4-13.7":0.02232,"14.0-14.4":0.0372,"14.5-14.8":0.04712,"15.0-15.1":0.03968,"15.2-15.3":0.03224,"15.4":0.03472,"15.5":0.0372,"15.6-15.8":0.53815,"16.0":0.06696,"16.1":0.124,"16.2":0.06448,"16.3":0.11904,"16.4":0.02976,"16.5":0.0496,"16.6-16.7":0.72663,"17.0":0.062,"17.1":0.0744,"17.2":0.05456,"17.3":0.07688,"17.4":0.12648,"17.5":0.24056,"17.6-17.7":0.59023,"18.0":0.13144,"18.1":0.27776,"18.2":0.1488,"18.3":0.48359,"18.4":0.248,"18.5-18.7":17.31753,"26.0":1.1879,"26.1":1.08374},P:{"4":0.0314,"21":0.01047,"23":0.01047,"24":0.01047,"26":0.04187,"27":0.02093,"28":0.55476,"29":2.9936,_:"20 22 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 19.0","7.2-7.4":0.01047,"13.0":0.02093,"17.0":0.01047,"18.0":0.0628},I:{"0":0.03571,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.07152,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.34744,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.21456},O:{"0":0.73904},H:{"0":0},L:{"0":34.02088},R:{_:"0"},M:{"0":0.87016}};
Index: de_modules/caniuse-lite/data/regions/MP.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MP.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.02273,"136":0.02652,"143":0.00379,"144":0.43952,"145":0.76159,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"76":0.01137,"79":0.13262,"100":0.00379,"103":0.0341,"109":0.28418,"115":0.04547,"116":0.01516,"121":0.00379,"122":0.17051,"125":0.4471,"126":0.02652,"127":0.00379,"128":0.10988,"130":0.01137,"132":0.01516,"133":0.00379,"134":0.01137,"135":0.01137,"136":0.0341,"137":0.08715,"138":0.73507,"139":0.09851,"140":0.25765,"141":4.9257,"142":10.01433,"143":0.07578,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 113 114 117 118 119 120 123 124 129 131 144 145 146"},F:{"122":0.94725,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"132":0.01137,"134":0.00379,"136":0.00379,"137":0.00379,"141":2.1029,"142":6.88461,"143":0.0341,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 133 135 138 139 140"},E:{"14":0.00379,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 17.2 17.4 18.0 18.1","13.1":0.01516,"15.4":0.00379,"15.6":0.02273,"16.4":0.02273,"16.5":0.09473,"16.6":0.14398,"17.0":0.02273,"17.1":0.08336,"17.3":0.04547,"17.5":0.06062,"17.6":0.02652,"18.2":0.00379,"18.3":0.02273,"18.4":0.11367,"18.5-18.6":0.29554,"26.0":0.05305,"26.1":0.18187,"26.2":0.01516},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0,"6.0-6.1":0.00414,"7.0-7.1":0.0031,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00931,"10.0-10.2":0.00103,"10.3":0.01656,"11.0-11.2":0.19249,"11.3-11.4":0.00621,"12.0-12.1":0.00207,"12.2-12.5":0.04864,"13.0-13.1":0,"13.2":0.00517,"13.3":0.00207,"13.4-13.7":0.00931,"14.0-14.4":0.01552,"14.5-14.8":0.01966,"15.0-15.1":0.01656,"15.2-15.3":0.01345,"15.4":0.01449,"15.5":0.01552,"15.6-15.8":0.22458,"16.0":0.02794,"16.1":0.05175,"16.2":0.02691,"16.3":0.04968,"16.4":0.01242,"16.5":0.0207,"16.6-16.7":0.30323,"17.0":0.02587,"17.1":0.03105,"17.2":0.02277,"17.3":0.03208,"17.4":0.05278,"17.5":0.10039,"17.6-17.7":0.24631,"18.0":0.05485,"18.1":0.11591,"18.2":0.0621,"18.3":0.20181,"18.4":0.10349,"18.5-18.7":7.22684,"26.0":0.49573,"26.1":0.45226},P:{"21":0.02031,"25":0.04062,"27":0.01015,"28":0.13201,"29":2.95488,_:"4 20 22 23 24 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 19.0","18.0":0.01015},I:{"0":0.0062,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.06833,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01242},O:{"0":0.37272},H:{"0":0},L:{"0":39.27484},R:{_:"0"},M:{"0":2.1245}};
Index: de_modules/caniuse-lite/data/regions/MQ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MQ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00422,"45":0.00422,"78":0.02952,"109":0.00422,"115":0.06747,"128":0.01265,"135":0.00422,"136":0.0253,"140":0.02952,"142":0.00422,"143":0.00843,"144":1.96934,"145":3.26818,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 137 138 139 141 146 147 148 3.5 3.6"},D:{"56":0.01265,"63":0.00422,"70":0.00422,"75":0.00843,"79":0.00422,"87":0.00422,"97":0.00422,"99":0.00422,"102":0.00422,"103":0.00422,"108":0.00422,"109":0.32049,"111":0.01687,"114":0.02109,"116":0.09699,"119":0.01687,"122":0.02952,"123":0.00422,"125":0.13073,"126":0.03374,"128":0.03374,"130":0.00843,"131":0.09277,"132":0.02952,"133":0.01265,"134":0.01687,"135":0.00843,"136":0.02109,"137":0.0253,"138":0.10121,"139":0.16446,"140":3.46637,"141":4.22965,"142":10.97263,"143":0.03374,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 64 65 66 67 68 69 71 72 73 74 76 77 78 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 98 100 101 104 105 106 107 110 112 113 115 117 118 120 121 124 127 129 144 145 146"},F:{"28":0.08012,"40":0.00843,"46":0.00843,"92":0.01265,"95":0.00843,"102":0.00422,"118":0.00843,"120":0.00422,"121":0.00422,"122":0.33314,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"88":0.00422,"92":0.01687,"109":0.02109,"114":0.03795,"119":0.01687,"122":0.01265,"130":0.00422,"133":0.00422,"135":0.00422,"136":0.00843,"137":0.01265,"138":0.0506,"139":0.02952,"140":0.15181,"141":0.62833,"142":4.88329,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 123 124 125 126 127 128 129 131 132 134 143"},E:{"14":0.00843,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.2-15.3 16.0","14.1":0.01687,"15.1":0.1982,"15.4":0.00422,"15.5":0.18555,"15.6":0.15181,"16.1":0.01687,"16.2":0.00422,"16.3":0.00843,"16.4":0.00843,"16.5":0.00422,"16.6":0.1476,"17.0":0.00422,"17.1":0.07169,"17.2":0.01265,"17.3":0.00843,"17.4":0.02952,"17.5":0.02109,"17.6":0.24037,"18.0":0.00843,"18.1":0.01687,"18.2":0.00422,"18.3":0.06747,"18.4":0.01687,"18.5-18.6":0.66629,"26.0":0.46809,"26.1":0.53556,"26.2":0.06326},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00151,"5.0-5.1":0,"6.0-6.1":0.00603,"7.0-7.1":0.00452,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01356,"10.0-10.2":0.00151,"10.3":0.02411,"11.0-11.2":0.28026,"11.3-11.4":0.00904,"12.0-12.1":0.00301,"12.2-12.5":0.07082,"13.0-13.1":0,"13.2":0.00753,"13.3":0.00301,"13.4-13.7":0.01356,"14.0-14.4":0.0226,"14.5-14.8":0.02863,"15.0-15.1":0.02411,"15.2-15.3":0.01959,"15.4":0.0211,"15.5":0.0226,"15.6-15.8":0.32697,"16.0":0.04068,"16.1":0.07534,"16.2":0.03918,"16.3":0.07233,"16.4":0.01808,"16.5":0.03014,"16.6-16.7":0.44149,"17.0":0.03767,"17.1":0.0452,"17.2":0.03315,"17.3":0.04671,"17.4":0.07685,"17.5":0.14616,"17.6-17.7":0.35862,"18.0":0.07986,"18.1":0.16876,"18.2":0.09041,"18.3":0.29382,"18.4":0.15068,"18.5-18.7":10.52191,"26.0":0.72175,"26.1":0.65847},P:{"22":0.01045,"23":0.01045,"24":0.02091,"25":0.06273,"26":0.37638,"27":0.10455,"28":0.72139,"29":3.50241,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04182},I:{"0":0.01155,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.0536,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00422,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0.01},L:{"0":41.22124},R:{_:"0"},M:{"0":0.42209}};
Index: de_modules/caniuse-lite/data/regions/MR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00164,"34":0.00164,"47":0.00164,"72":0.00329,"115":0.07394,"128":0.00164,"136":0.00164,"137":0.00164,"140":0.00493,"142":0.00493,"143":0.00493,"144":0.13801,"145":0.17252,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 138 139 141 146 147 148 3.5 3.6"},D:{"37":0.00164,"38":0.00164,"58":0.00657,"64":0.00164,"65":0.00657,"69":0.00329,"70":0.01314,"72":0.00329,"74":0.00986,"75":0.00164,"77":0.00986,"79":0.00329,"83":0.00657,"86":0.00329,"87":0.00329,"88":0.00164,"90":0.00329,"93":0.00493,"98":0.01807,"99":0.00329,"100":0.00657,"103":0.00329,"104":0.00329,"107":0.00164,"108":0.00329,"109":0.19223,"111":0.00329,"113":0.00493,"114":0.00164,"116":0.00822,"119":0.00164,"120":0.04272,"122":0.00329,"123":0.02957,"124":0.00164,"125":0.03943,"126":0.03779,"128":0.00164,"129":0.00657,"130":0.00164,"131":0.03122,"132":0.00164,"133":0.00329,"134":0.00493,"135":0.01643,"136":0.03122,"137":0.01972,"138":0.05258,"139":0.04929,"140":0.11337,"141":0.69499,"142":1.75637,"143":0.00164,_:"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 33 34 35 36 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 66 67 68 71 73 76 78 80 81 84 85 89 91 92 94 95 96 97 101 102 105 106 110 112 115 117 118 121 127 144 145 146"},F:{"46":0.00164,"79":0.00164,"85":0.01479,"91":0.00164,"92":0.00822,"95":0.05422,"122":0.02629,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00164,"18":0.00986,"84":0.00164,"89":0.00164,"90":0.00164,"92":0.00822,"100":0.00164,"109":0.00164,"114":0.08379,"125":0.00164,"127":0.00164,"133":0.00164,"134":0.00164,"135":0.00164,"136":0.00164,"137":0.00164,"138":0.00657,"139":0.01314,"140":0.00986,"141":0.12651,"142":0.84943,"143":0.00164,_:"13 14 15 16 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 126 128 129 130 131 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 16.5 17.0 17.2 17.3 17.4 26.2","5.1":0.00493,"11.1":0.00164,"15.5":0.00164,"15.6":0.01314,"16.1":0.00329,"16.3":0.00329,"16.6":0.03943,"17.1":0.00329,"17.5":0.00329,"17.6":0.01807,"18.0":0.00493,"18.1":0.00164,"18.2":0.01479,"18.3":0.00493,"18.4":0.00164,"18.5-18.6":0.04765,"26.0":0.05258,"26.1":0.02957},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00192,"5.0-5.1":0,"6.0-6.1":0.00768,"7.0-7.1":0.00576,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01729,"10.0-10.2":0.00192,"10.3":0.03074,"11.0-11.2":0.35731,"11.3-11.4":0.01153,"12.0-12.1":0.00384,"12.2-12.5":0.09029,"13.0-13.1":0,"13.2":0.00961,"13.3":0.00384,"13.4-13.7":0.01729,"14.0-14.4":0.02882,"14.5-14.8":0.0365,"15.0-15.1":0.03074,"15.2-15.3":0.02497,"15.4":0.02689,"15.5":0.02882,"15.6-15.8":0.41687,"16.0":0.05187,"16.1":0.09605,"16.2":0.04995,"16.3":0.09221,"16.4":0.02305,"16.5":0.03842,"16.6-16.7":0.56287,"17.0":0.04803,"17.1":0.05763,"17.2":0.04226,"17.3":0.05955,"17.4":0.09797,"17.5":0.18634,"17.6-17.7":0.45721,"18.0":0.10182,"18.1":0.21516,"18.2":0.11526,"18.3":0.3746,"18.4":0.1921,"18.5-18.7":13.41465,"26.0":0.92018,"26.1":0.8395},P:{"20":0.02022,"21":0.09101,"22":0.21235,"23":0.12134,"24":1.22356,"25":0.54605,"26":0.52583,"27":0.80896,"28":1.8505,"29":1.56737,_:"4 5.0-5.4 6.2-6.4 8.2 10.1 12.0 15.0 17.0","7.2-7.4":1.173,"9.2":0.01011,"11.1-11.2":0.03034,"13.0":0.01011,"14.0":0.05056,"16.0":0.06067,"18.0":0.04045,"19.0":0.22246},I:{"0":0.08344,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.58492,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02507},H:{"0":0},L:{"0":65.78703},R:{_:"0"},M:{"0":0.04178}};
Index: de_modules/caniuse-lite/data/regions/MS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.05676,"144":0.05676,"145":0.11352,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"58":0.05676,"93":0.05676,"106":0.17028,"109":0.11352,"111":0.11352,"116":0.22704,"125":0.39164,"130":1.18061,"132":0.11352,"137":0.11352,"138":0.05676,"139":0.22704,"140":1.79362,"141":4.3762,"142":24.17408,"143":0.05676,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 107 108 110 112 113 114 115 117 118 119 120 121 122 123 124 126 127 128 129 131 133 134 135 136 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.05676,"140":0.05676,"141":0.78329,"142":9.87056,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.5 18.0 18.1 18.2 18.3 18.5-18.6 26.1 26.2","16.1":4.5408,"16.6":0.95357,"17.4":0.05676,"17.6":0.05676,"18.4":0.05676,"26.0":0.11352},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00155,"5.0-5.1":0,"6.0-6.1":0.00619,"7.0-7.1":0.00464,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01393,"10.0-10.2":0.00155,"10.3":0.02477,"11.0-11.2":0.28791,"11.3-11.4":0.00929,"12.0-12.1":0.0031,"12.2-12.5":0.07275,"13.0-13.1":0,"13.2":0.00774,"13.3":0.0031,"13.4-13.7":0.01393,"14.0-14.4":0.02322,"14.5-14.8":0.02941,"15.0-15.1":0.02477,"15.2-15.3":0.02012,"15.4":0.02167,"15.5":0.02322,"15.6-15.8":0.3359,"16.0":0.04179,"16.1":0.0774,"16.2":0.04025,"16.3":0.0743,"16.4":0.01858,"16.5":0.03096,"16.6-16.7":0.45354,"17.0":0.0387,"17.1":0.04644,"17.2":0.03405,"17.3":0.04799,"17.4":0.07894,"17.5":0.15015,"17.6-17.7":0.3684,"18.0":0.08204,"18.1":0.17337,"18.2":0.09288,"18.3":0.30184,"18.4":0.15479,"18.5-18.7":10.80911,"26.0":0.74145,"26.1":0.67644},P:{"4":0.32511,"29":2.27578,_:"20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.06967,"17.0":0.12772},I:{"0":0.25914,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":26.07684},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/MT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.01094,"113":0.00547,"115":0.04377,"121":0.00547,"133":0.00547,"134":0.00547,"136":0.00547,"140":0.00547,"141":0.02736,"142":0.01094,"143":0.03283,"144":0.50333,"145":0.72764,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 123 124 125 126 127 128 129 130 131 132 135 137 138 139 146 147 148 3.5 3.6"},D:{"77":0.00547,"79":0.00547,"86":0.01094,"87":0.00547,"89":0.00547,"90":0.00547,"100":0.00547,"103":0.08754,"107":0.00547,"108":0.01094,"109":0.53069,"111":0.01641,"112":2.77927,"114":0.00547,"115":0.01094,"116":0.10942,"117":0.00547,"118":0.01641,"119":0.01094,"120":0.04377,"122":0.18054,"123":1.02308,"124":0.43221,"125":0.07659,"126":0.30638,"127":0.26261,"128":0.10395,"129":0.01094,"130":0.01094,"131":0.09848,"132":0.02736,"133":0.02736,"134":0.04377,"135":0.02188,"136":0.01641,"137":0.09848,"138":0.20243,"139":0.55257,"140":0.4158,"141":7.38585,"142":22.45298,"143":0.02188,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 83 84 85 88 91 92 93 94 95 96 97 98 99 101 102 104 105 106 110 113 121 144 145 146"},F:{"28":0.00547,"92":0.02188,"93":0.00547,"111":0.01094,"122":0.61275,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00547,"109":0.01641,"112":0.01094,"114":0.01094,"117":0.02736,"120":0.01094,"122":0.00547,"129":0.00547,"131":0.01641,"133":0.00547,"137":0.00547,"138":0.00547,"139":0.01094,"140":0.0383,"141":0.66746,"142":6.15488,"143":0.00547,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 118 119 121 123 124 125 126 127 128 130 132 134 135 136"},E:{"14":0.00547,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.4 16.0 16.1","12.1":0.01094,"13.1":0.00547,"14.1":0.01641,"15.1":0.01641,"15.2-15.3":0.00547,"15.5":0.01094,"15.6":0.09301,"16.2":0.00547,"16.3":0.01641,"16.4":0.11489,"16.5":0.02188,"16.6":0.11489,"17.0":0.02188,"17.1":0.06018,"17.2":0.02188,"17.3":0.03283,"17.4":0.06018,"17.5":0.0383,"17.6":0.15866,"18.0":0.01641,"18.1":0.03283,"18.2":0.01641,"18.3":0.06018,"18.4":0.02736,"18.5-18.6":0.15319,"26.0":0.62917,"26.1":0.33373,"26.2":0.05471},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00159,"5.0-5.1":0,"6.0-6.1":0.00637,"7.0-7.1":0.00477,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01432,"10.0-10.2":0.00159,"10.3":0.02546,"11.0-11.2":0.29602,"11.3-11.4":0.00955,"12.0-12.1":0.00318,"12.2-12.5":0.0748,"13.0-13.1":0,"13.2":0.00796,"13.3":0.00318,"13.4-13.7":0.01432,"14.0-14.4":0.02387,"14.5-14.8":0.03024,"15.0-15.1":0.02546,"15.2-15.3":0.02069,"15.4":0.02228,"15.5":0.02387,"15.6-15.8":0.34535,"16.0":0.04297,"16.1":0.07957,"16.2":0.04138,"16.3":0.07639,"16.4":0.0191,"16.5":0.03183,"16.6-16.7":0.46631,"17.0":0.03979,"17.1":0.04774,"17.2":0.03501,"17.3":0.04934,"17.4":0.08117,"17.5":0.15437,"17.6-17.7":0.37877,"18.0":0.08435,"18.1":0.17825,"18.2":0.09549,"18.3":0.31034,"18.4":0.15915,"18.5-18.7":11.11338,"26.0":0.76232,"26.1":0.69548},P:{"4":0.01041,"21":0.02083,"26":0.01041,"27":0.02083,"28":0.14578,"29":2.40543,_:"20 22 23 24 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03124},I:{"0":0.06332,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.18569,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04982},H:{"0":0},L:{"0":28.96917},R:{_:"0"},M:{"0":0.22192}};
Index: de_modules/caniuse-lite/data/regions/MU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00344,"52":0.00344,"78":0.00344,"80":0.00344,"115":0.09979,"119":0.00344,"120":0.00688,"124":0.00344,"125":0.00344,"128":0.00344,"133":0.00344,"136":0.00344,"139":0.00344,"140":0.04129,"141":0.35786,"142":0.00688,"143":0.02409,"144":0.46798,"145":0.77078,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 121 122 123 126 127 129 130 131 132 134 135 137 138 146 147 148 3.5 3.6"},D:{"68":0.00344,"69":0.00688,"75":0.00344,"79":0.01721,"87":0.00688,"88":0.00344,"91":0.00688,"96":0.00344,"97":0.01032,"99":0.00344,"103":0.01032,"107":0.00344,"108":0.00344,"109":0.36819,"110":0.00344,"111":0.00688,"112":3.14852,"114":0.02753,"115":0.00344,"116":0.04129,"117":0.03785,"118":0.01376,"119":0.01376,"120":0.01721,"121":0.01721,"122":0.05162,"123":0.01032,"124":0.02065,"125":0.68476,"126":0.2856,"127":0.01721,"128":0.02753,"129":0.21678,"130":0.16173,"131":0.03097,"132":0.01376,"133":0.09979,"134":0.02409,"135":0.02753,"136":0.02753,"137":0.07226,"138":0.22711,"139":0.16861,"140":0.39572,"141":3.96747,"142":11.72005,"143":0.02065,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 76 77 78 80 81 83 84 85 86 89 90 92 93 94 95 98 100 101 102 104 105 106 113 144 145 146"},F:{"92":0.01032,"106":0.00344,"117":0.00344,"122":0.24087,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00344,"92":0.00344,"100":0.00344,"109":0.01032,"113":0.00344,"114":0.02065,"118":0.00344,"120":0.00688,"122":0.00344,"125":0.00344,"129":0.01032,"130":0.00344,"133":0.00344,"134":0.00344,"135":0.00344,"136":0.00688,"137":0.00688,"138":0.01376,"139":0.00688,"140":0.02409,"141":0.32345,"142":2.77689,"143":0.00688,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 119 121 123 124 126 127 128 131 132"},E:{"14":0.01721,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.2 16.4","13.1":0.00344,"14.1":0.00344,"15.4":0.00344,"15.5":0.00344,"15.6":0.03785,"16.1":0.00344,"16.3":0.00688,"16.5":0.00688,"16.6":0.04473,"17.0":0.00344,"17.1":0.02065,"17.2":0.01032,"17.3":0.00688,"17.4":0.03441,"17.5":0.02065,"17.6":0.1514,"18.0":0.01376,"18.1":0.01376,"18.2":0.01721,"18.3":0.02065,"18.4":0.01376,"18.5-18.6":0.06882,"26.0":0.20646,"26.1":0.23743,"26.2":0.01032},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0,"6.0-6.1":0.00301,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00677,"10.0-10.2":0.00075,"10.3":0.01204,"11.0-11.2":0.13995,"11.3-11.4":0.00451,"12.0-12.1":0.0015,"12.2-12.5":0.03536,"13.0-13.1":0,"13.2":0.00376,"13.3":0.0015,"13.4-13.7":0.00677,"14.0-14.4":0.01129,"14.5-14.8":0.0143,"15.0-15.1":0.01204,"15.2-15.3":0.00978,"15.4":0.01053,"15.5":0.01129,"15.6-15.8":0.16328,"16.0":0.02032,"16.1":0.03762,"16.2":0.01956,"16.3":0.03612,"16.4":0.00903,"16.5":0.01505,"16.6-16.7":0.22046,"17.0":0.01881,"17.1":0.02257,"17.2":0.01655,"17.3":0.02333,"17.4":0.03837,"17.5":0.07299,"17.6-17.7":0.17908,"18.0":0.03988,"18.1":0.08427,"18.2":0.04515,"18.3":0.14672,"18.4":0.07524,"18.5-18.7":5.25423,"26.0":0.36041,"26.1":0.32881},P:{"4":0.03079,"21":0.01026,"22":0.04106,"23":0.02053,"24":0.05132,"25":0.02053,"26":0.04106,"27":0.08211,"28":0.62612,"29":3.00743,_:"20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 17.0 18.0","6.2-6.4":0.02053,"7.2-7.4":0.11291,"14.0":0.01026,"16.0":0.04106,"19.0":0.01026},I:{"0":0.13102,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.60352,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.328},H:{"0":0},L:{"0":57.07651},R:{_:"0"},M:{"0":0.2952}};
Index: de_modules/caniuse-lite/data/regions/MV.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MV.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00285,"115":0.01995,"116":0.0057,"135":0.00855,"136":0.00285,"139":0.0057,"141":0.00285,"142":0.00285,"143":0.00285,"144":0.2508,"145":0.2565,"146":0.00285,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 137 138 140 147 148 3.5 3.6"},D:{"58":0.0057,"67":0.0057,"69":0.00285,"74":0.00285,"78":0.00855,"83":0.0057,"86":0.00285,"87":0.00285,"88":0.00285,"89":0.00285,"90":0.00285,"103":0.0114,"108":0.0057,"109":0.1083,"111":0.00285,"112":0.00285,"113":0.0057,"114":0.00285,"116":0.0057,"117":0.0057,"118":0.00285,"119":0.0057,"120":0.00285,"121":0.0114,"122":0.0171,"123":0.0057,"124":0.00285,"125":0.09975,"126":0.00285,"127":0.0057,"128":0.0684,"129":0.05415,"130":0.00855,"131":0.02565,"132":0.0171,"133":0.20235,"134":0.0228,"135":0.02565,"136":0.0228,"137":0.0285,"138":0.1083,"139":0.114,"140":0.171,"141":3.534,"142":11.62515,"143":0.0285,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 68 70 71 72 73 75 76 77 79 80 81 84 85 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 110 115 144 145 146"},F:{"92":0.0399,"93":0.00285,"119":0.00285,"120":0.00285,"121":0.00855,"122":0.21375,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00285,"18":0.00285,"109":0.00285,"114":0.05415,"118":0.00855,"120":0.00285,"121":0.00285,"122":0.00285,"128":0.00285,"130":0.00855,"131":0.01995,"132":0.00285,"134":0.00285,"136":0.01425,"137":0.00285,"138":0.0228,"139":0.00855,"140":0.01995,"141":0.3363,"142":1.9152,"143":0.00285,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 123 124 125 126 127 129 133 135"},E:{"14":0.0057,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 17.0","9.1":0.00285,"13.1":0.0057,"14.1":0.00285,"15.5":0.00285,"15.6":0.01425,"16.1":0.01425,"16.3":0.00285,"16.4":0.00285,"16.5":0.00285,"16.6":0.01995,"17.1":0.00855,"17.2":0.00285,"17.3":0.00855,"17.4":0.00855,"17.5":0.0513,"17.6":0.11115,"18.0":0.00285,"18.1":0.0285,"18.2":0.01425,"18.3":0.01995,"18.4":0.0171,"18.5-18.6":0.057,"26.0":0.2451,"26.1":0.19665,"26.2":0.0114},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00182,"5.0-5.1":0,"6.0-6.1":0.00729,"7.0-7.1":0.00547,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0164,"10.0-10.2":0.00182,"10.3":0.02916,"11.0-11.2":0.33899,"11.3-11.4":0.01094,"12.0-12.1":0.00365,"12.2-12.5":0.08566,"13.0-13.1":0,"13.2":0.00911,"13.3":0.00365,"13.4-13.7":0.0164,"14.0-14.4":0.02734,"14.5-14.8":0.03463,"15.0-15.1":0.02916,"15.2-15.3":0.02369,"15.4":0.02552,"15.5":0.02734,"15.6-15.8":0.39549,"16.0":0.04921,"16.1":0.09113,"16.2":0.04739,"16.3":0.08748,"16.4":0.02187,"16.5":0.03645,"16.6-16.7":0.534,"17.0":0.04556,"17.1":0.05468,"17.2":0.0401,"17.3":0.0565,"17.4":0.09295,"17.5":0.17679,"17.6-17.7":0.43376,"18.0":0.09659,"18.1":0.20412,"18.2":0.10935,"18.3":0.35539,"18.4":0.18225,"18.5-18.7":12.72676,"26.0":0.87299,"26.1":0.79645},P:{"4":0.01014,"24":0.01014,"25":0.04057,"26":0.02028,"27":0.06085,"28":0.17241,"29":1.10546,_:"20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01014},I:{"0":0.01428,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.80795,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.3003},H:{"0":0},L:{"0":57.25545},R:{_:"0"},M:{"0":0.23595}};
Index: de_modules/caniuse-lite/data/regions/MW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00628,"46":0.00314,"54":0.00314,"56":0.00314,"72":0.00941,"98":0.00314,"101":0.00314,"112":0.00628,"115":0.11611,"118":0.00314,"127":0.00941,"128":0.00314,"133":0.00314,"134":0.00314,"135":0.00314,"136":0.01255,"137":0.00314,"138":0.00314,"139":0.00941,"140":0.01255,"141":0.00941,"142":0.00941,"143":0.0251,"144":0.60563,"145":0.55856,"146":0.00314,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 102 103 104 105 106 107 108 109 110 111 113 114 116 117 119 120 121 122 123 124 125 126 129 130 131 132 147 148 3.5 3.6"},D:{"40":0.00314,"43":0.00314,"45":0.00314,"48":0.00314,"50":0.00941,"56":0.00314,"58":0.00314,"59":0.00314,"60":0.03452,"63":0.00314,"64":0.00314,"65":0.01255,"66":0.00314,"67":0.00628,"68":0.00314,"69":0.01255,"70":0.01569,"71":0.02824,"73":0.00628,"74":0.00628,"76":0.00314,"77":0.00314,"79":0.01255,"80":0.00628,"81":0.00628,"83":0.0251,"84":0.00314,"86":0.03138,"87":0.00628,"88":0.00941,"89":0.00628,"90":0.00628,"91":0.03138,"92":0.00314,"93":0.00314,"94":0.00314,"95":0.01883,"96":0.00314,"98":0.00941,"99":0.00314,"100":0.00314,"101":0.01255,"102":0.00941,"103":0.03766,"104":0.00314,"105":0.07217,"106":0.02824,"108":0.00314,"109":0.38911,"110":0.00314,"111":0.01883,"114":0.02824,"116":0.02197,"117":0.00314,"118":0.00314,"119":0.01255,"120":0.01569,"121":0.03452,"122":0.07845,"123":0.00941,"124":0.00314,"125":0.10042,"126":0.03138,"127":0.00628,"128":0.05648,"129":0.01569,"130":0.01255,"131":0.05335,"132":0.01883,"133":0.05021,"134":0.01883,"135":0.03138,"136":0.03452,"137":0.05648,"138":0.23849,"139":0.14749,"140":0.39539,"141":2.50726,"142":7.17033,"143":0.02197,"144":0.00314,_:"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 33 34 35 36 37 38 39 41 42 44 46 47 49 51 52 53 54 55 57 61 62 72 75 78 85 97 107 112 113 115 145 146"},F:{"34":0.00628,"36":0.00628,"37":0.00314,"40":0.00314,"42":0.01255,"49":0.00314,"79":0.00628,"89":0.00314,"90":0.00314,"91":0.00941,"92":0.04707,"93":0.01255,"95":0.07217,"113":0.00314,"117":0.00628,"120":0.01569,"121":0.00314,"122":0.26045,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 41 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.09728,"13":0.01569,"14":0.00628,"15":0.01569,"16":0.00628,"17":0.02197,"18":0.09414,"84":0.00941,"89":0.00941,"90":0.0251,"92":0.08473,"100":0.02197,"109":0.00941,"112":0.00628,"114":0.03766,"115":0.00314,"117":0.00628,"121":0.00314,"122":0.0251,"126":0.00314,"130":0.00314,"131":0.00628,"132":0.00314,"133":0.00628,"134":0.00941,"135":0.01569,"136":0.00628,"137":0.00941,"138":0.02824,"139":0.05335,"140":0.09728,"141":0.42991,"142":2.7991,"143":0.00314,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 116 118 119 120 123 124 125 127 128 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.4 18.0 18.1 18.2 18.4","10.1":0.00314,"11.1":0.00628,"13.1":0.00941,"14.1":0.01255,"15.5":0.00941,"15.6":0.07217,"16.6":0.01883,"17.3":0.00314,"17.5":0.00314,"17.6":0.03452,"18.3":0.01569,"18.5-18.6":0.01255,"26.0":0.03452,"26.1":0.04079,"26.2":0.00314},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00021,"5.0-5.1":0,"6.0-6.1":0.00083,"7.0-7.1":0.00063,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00188,"10.0-10.2":0.00021,"10.3":0.00334,"11.0-11.2":0.0388,"11.3-11.4":0.00125,"12.0-12.1":0.00042,"12.2-12.5":0.0098,"13.0-13.1":0,"13.2":0.00104,"13.3":0.00042,"13.4-13.7":0.00188,"14.0-14.4":0.00313,"14.5-14.8":0.00396,"15.0-15.1":0.00334,"15.2-15.3":0.00271,"15.4":0.00292,"15.5":0.00313,"15.6-15.8":0.04527,"16.0":0.00563,"16.1":0.01043,"16.2":0.00542,"16.3":0.01001,"16.4":0.0025,"16.5":0.00417,"16.6-16.7":0.06112,"17.0":0.00522,"17.1":0.00626,"17.2":0.00459,"17.3":0.00647,"17.4":0.01064,"17.5":0.02023,"17.6-17.7":0.04965,"18.0":0.01106,"18.1":0.02336,"18.2":0.01252,"18.3":0.04068,"18.4":0.02086,"18.5-18.7":1.45669,"26.0":0.09992,"26.1":0.09116},P:{"4":0.14483,"21":0.01034,"22":0.01034,"23":0.04138,"24":0.06207,"25":0.04138,"26":0.0931,"27":0.08276,"28":0.2069,"29":0.46552,_:"20 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0","6.2-6.4":0.01034,"7.2-7.4":0.12414,"9.2":0.01034,"14.0":0.01034,"17.0":0.04138,"19.0":0.01034},I:{"0":0.04797,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":3.63102,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00628,"11":0.01883,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{"2.5":0.07548,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00686},O:{"0":0.67248},H:{"0":1.44},L:{"0":69.93501},R:{_:"0"},M:{"0":0.1441}};
Index: de_modules/caniuse-lite/data/regions/MX.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MX.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"3":0.00477,"4":0.0143,"5":0.00477,"34":0.00477,"52":0.00477,"67":0.00477,"78":0.00477,"99":0.00477,"112":0.00477,"115":0.10966,"120":0.00954,"128":0.00477,"131":0.00477,"134":0.00477,"136":0.00954,"138":0.00954,"139":0.00477,"140":0.03338,"141":0.00477,"142":0.00954,"143":0.01907,"144":0.50541,"145":0.62938,"146":0.00477,_:"2 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 121 122 123 124 125 126 127 129 130 132 133 135 137 147 148 3.5 3.6"},D:{"49":0.00477,"52":0.00954,"69":0.00477,"74":0.00477,"75":0.00477,"76":0.03338,"78":0.00477,"79":0.01907,"80":0.00477,"87":0.03338,"88":0.00477,"91":0.00477,"93":0.00477,"94":0.00477,"97":0.00954,"99":0.00477,"102":0.00477,"103":0.05245,"104":0.00954,"105":0.00477,"106":0.00477,"107":0.00477,"108":0.00954,"109":0.74381,"110":0.00477,"111":0.05722,"112":8.04838,"113":0.00477,"114":0.07629,"116":0.09536,"118":0.00477,"119":0.00954,"120":0.0143,"121":0.0143,"122":0.09536,"123":0.0143,"124":0.02384,"125":0.26701,"126":1.28259,"127":0.02861,"128":0.30038,"129":0.19549,"130":0.19549,"131":0.23363,"132":0.2241,"133":0.02861,"134":0.03338,"135":0.07152,"136":0.03338,"137":0.06198,"138":0.20502,"139":0.14304,"140":0.3576,"141":3.44726,"142":15.07165,"143":0.04291,"144":0.00477,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 77 81 83 84 85 86 89 90 92 95 96 98 100 101 115 117 145 146"},F:{"92":0.02384,"93":0.00477,"95":0.03338,"114":0.00477,"120":0.02384,"122":0.4625,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00477,"92":0.00954,"99":0.00477,"109":0.03338,"114":0.10013,"122":0.00477,"124":0.00477,"126":0.00477,"128":0.00477,"129":0.00477,"130":0.00477,"131":0.00954,"132":0.00477,"133":0.00954,"134":0.00954,"135":0.0143,"136":0.00954,"137":0.00954,"138":0.01907,"139":0.01907,"140":0.04291,"141":0.78195,"142":4.61542,"143":0.00954,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 127"},E:{"4":0.00477,"14":0.00477,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 16.0","5.1":0.00477,"12.1":0.00477,"13.1":0.00954,"14.1":0.0143,"15.2-15.3":0.00477,"15.4":0.00954,"15.5":0.00477,"15.6":0.07152,"16.1":0.00954,"16.2":0.00477,"16.3":0.0143,"16.4":0.00477,"16.5":0.00954,"16.6":0.07152,"17.0":0.00477,"17.1":0.05245,"17.2":0.01907,"17.3":0.00954,"17.4":0.01907,"17.5":0.02384,"17.6":0.10966,"18.0":0.00954,"18.1":0.01907,"18.2":0.00954,"18.3":0.02861,"18.4":0.01907,"18.5-18.6":0.07629,"26.0":0.20502,"26.1":0.21933,"26.2":0.00954},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00114,"5.0-5.1":0,"6.0-6.1":0.00456,"7.0-7.1":0.00342,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01025,"10.0-10.2":0.00114,"10.3":0.01822,"11.0-11.2":0.21186,"11.3-11.4":0.00683,"12.0-12.1":0.00228,"12.2-12.5":0.05353,"13.0-13.1":0,"13.2":0.0057,"13.3":0.00228,"13.4-13.7":0.01025,"14.0-14.4":0.01709,"14.5-14.8":0.02164,"15.0-15.1":0.01822,"15.2-15.3":0.01481,"15.4":0.01595,"15.5":0.01709,"15.6-15.8":0.24716,"16.0":0.03075,"16.1":0.05695,"16.2":0.02961,"16.3":0.05467,"16.4":0.01367,"16.5":0.02278,"16.6-16.7":0.33373,"17.0":0.02848,"17.1":0.03417,"17.2":0.02506,"17.3":0.03531,"17.4":0.05809,"17.5":0.11048,"17.6-17.7":0.27108,"18.0":0.06037,"18.1":0.12757,"18.2":0.06834,"18.3":0.22211,"18.4":0.1139,"18.5-18.7":7.95368,"26.0":0.54558,"26.1":0.49775},P:{"4":0.0218,"24":0.0109,"26":0.0109,"27":0.0109,"28":0.0545,"29":0.5232,_:"20 21 22 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0218},I:{"0":0.07315,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.15173,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01172,"10":0.00586,"11":0.39247,_:"6 7 9 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04186},H:{"0":0},L:{"0":43.73146},R:{_:"0"},M:{"0":0.19882}};
Index: de_modules/caniuse-lite/data/regions/MY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.25797,"123":0.00586,"125":0.00586,"127":0.00586,"132":0.00586,"135":0.00586,"136":0.00586,"137":0.01173,"138":0.02345,"139":0.00586,"140":0.01173,"141":0.00586,"142":0.01173,"143":0.02345,"144":0.78564,"145":1.13742,"146":0.00586,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 128 129 130 131 133 134 147 148 3.5 3.6"},D:{"39":0.02345,"40":0.02345,"41":0.02345,"42":0.02345,"43":0.02345,"44":0.02345,"45":0.02345,"46":0.02345,"47":0.02345,"48":0.02345,"49":0.02345,"50":0.02345,"51":0.02345,"52":0.02345,"53":0.02345,"54":0.02345,"55":0.02345,"56":0.02345,"57":0.02345,"58":0.02345,"59":0.02345,"60":0.02345,"68":0.00586,"69":0.00586,"70":0.00586,"75":0.01173,"76":0.05863,"78":0.00586,"79":0.02345,"81":0.00586,"83":0.00586,"84":0.00586,"86":0.03518,"87":0.01759,"88":0.00586,"89":0.02345,"90":0.00586,"91":0.1114,"92":0.00586,"93":0.13485,"94":0.01173,"96":0.00586,"98":0.02345,"99":0.00586,"100":0.00586,"101":0.00586,"102":0.04104,"103":2.36865,"104":0.00586,"105":0.17589,"106":0.00586,"107":0.00586,"108":0.00586,"109":1.61819,"111":0.02932,"112":0.25211,"113":0.01173,"114":0.04104,"115":0.00586,"116":0.07622,"117":0.00586,"118":0.01173,"119":0.02345,"120":0.02932,"121":0.0469,"122":0.09967,"123":0.02932,"124":0.06449,"125":0.18762,"126":0.46904,"127":0.0469,"128":0.06449,"129":0.01759,"130":0.02345,"131":0.09381,"132":0.07622,"133":0.06449,"134":0.06449,"135":0.07036,"136":0.07036,"137":0.25797,"138":0.35764,"139":0.17589,"140":0.856,"141":7.98541,"142":27.38021,"143":0.05277,"144":0.01759,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 71 72 73 74 77 80 85 95 97 110 145 146"},F:{"36":0.00586,"85":0.00586,"92":0.05277,"93":0.00586,"95":0.01759,"122":0.24625,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00586,"109":0.01173,"114":0.02345,"118":0.00586,"122":0.00586,"128":0.01759,"131":0.00586,"132":0.00586,"133":0.00586,"134":0.00586,"135":0.00586,"138":0.01173,"139":0.01173,"140":0.01759,"141":0.41627,"142":3.27742,"143":0.00586,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 126 127 129 130 136 137"},E:{"13":0.01173,"14":0.00586,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.00586,"14.1":0.02932,"15.4":0.00586,"15.5":0.00586,"15.6":0.0469,"16.0":0.00586,"16.1":0.02345,"16.2":0.00586,"16.3":0.01173,"16.4":0.00586,"16.5":0.01759,"16.6":0.08208,"17.0":0.00586,"17.1":0.03518,"17.2":0.01173,"17.3":0.01173,"17.4":0.01759,"17.5":0.03518,"17.6":0.12312,"18.0":0.01173,"18.1":0.01759,"18.2":0.01173,"18.3":0.04104,"18.4":0.02345,"18.5-18.6":0.12899,"26.0":0.28729,"26.1":0.19348,"26.2":0.00586},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0.00398,"7.0-7.1":0.00299,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00896,"10.0-10.2":0.001,"10.3":0.01593,"11.0-11.2":0.18521,"11.3-11.4":0.00597,"12.0-12.1":0.00199,"12.2-12.5":0.0468,"13.0-13.1":0,"13.2":0.00498,"13.3":0.00199,"13.4-13.7":0.00896,"14.0-14.4":0.01494,"14.5-14.8":0.01892,"15.0-15.1":0.01593,"15.2-15.3":0.01295,"15.4":0.01394,"15.5":0.01494,"15.6-15.8":0.21608,"16.0":0.02689,"16.1":0.04979,"16.2":0.02589,"16.3":0.0478,"16.4":0.01195,"16.5":0.01992,"16.6-16.7":0.29176,"17.0":0.02489,"17.1":0.02987,"17.2":0.02191,"17.3":0.03087,"17.4":0.05078,"17.5":0.09659,"17.6-17.7":0.23699,"18.0":0.05278,"18.1":0.11153,"18.2":0.05975,"18.3":0.19418,"18.4":0.09958,"18.5-18.7":6.9535,"26.0":0.47698,"26.1":0.43515},P:{"4":0.04174,"22":0.01043,"23":0.01043,"25":0.01043,"26":0.01043,"27":0.02087,"28":0.12521,"29":0.89733,_:"20 21 24 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04174,"8.2":0.01043},I:{"0":0.01239,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.48403,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05277,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01241},O:{"0":0.28132},H:{"0":0},L:{"0":33.67735},R:{_:"0"},M:{"0":0.2234}};
Index: de_modules/caniuse-lite/data/regions/MZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/MZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00646,"45":0.00323,"48":0.00323,"90":0.01292,"96":0.00646,"112":0.00969,"113":0.01615,"114":0.01292,"115":0.12274,"116":0.00646,"124":0.01615,"125":0.00323,"127":0.00323,"128":0.00646,"133":0.0323,"134":0.00323,"135":0.00323,"136":0.00323,"137":0.00646,"140":0.02261,"141":0.00646,"142":0.00969,"143":0.01292,"144":0.3876,"145":0.50711,"146":0.00323,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 117 118 119 120 121 122 123 126 129 130 131 132 138 139 147 148 3.5 3.6"},D:{"11":0.00323,"38":0.00323,"43":0.01292,"46":0.00323,"48":0.00323,"49":0.00323,"55":0.00323,"58":0.00323,"59":0.00323,"61":0.00323,"64":0.00323,"65":0.00646,"67":0.00323,"68":0.00323,"69":0.00646,"70":0.00969,"71":0.00323,"73":0.01292,"74":0.00646,"75":0.00646,"76":0.00323,"78":0.00323,"79":0.00969,"80":0.00969,"81":0.00969,"83":0.00969,"85":0.00323,"86":0.02907,"87":0.04199,"88":0.00323,"89":0.00646,"91":0.01292,"92":0.00969,"94":0.00646,"95":0.01292,"97":0.00323,"98":0.01615,"99":0.00646,"100":0.00323,"102":0.00323,"103":0.00646,"104":0.00323,"105":0.00323,"106":0.02584,"107":0.00323,"109":0.91732,"110":0.00323,"111":0.0323,"112":0.05814,"113":0.02261,"114":0.58463,"115":0.01615,"116":0.08721,"117":0.00323,"119":0.01292,"120":0.01615,"121":0.00646,"122":0.0323,"123":0.01292,"124":0.01938,"125":0.13889,"126":0.0646,"127":0.00969,"128":0.05168,"129":0.00969,"130":0.02261,"131":0.06783,"132":0.04845,"133":0.0646,"134":0.05491,"135":0.06137,"136":0.05491,"137":0.08075,"138":0.19703,"139":0.1938,"140":0.34884,"141":3.0039,"142":7.19967,"143":0.02907,"144":0.0323,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 47 50 51 52 53 54 56 57 60 62 63 66 72 77 84 90 93 96 101 108 118 145 146"},F:{"36":0.00323,"42":0.00323,"46":0.00323,"57":0.00323,"79":0.00969,"81":0.00646,"86":0.00323,"88":0.00323,"90":0.00323,"91":0.00646,"92":0.04522,"93":0.00646,"95":0.04522,"102":0.00323,"113":0.00969,"117":0.00323,"120":0.00969,"122":0.2907,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 82 83 84 85 87 89 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00969,"13":0.00323,"14":0.00969,"15":0.00646,"16":0.00646,"17":0.00646,"18":0.03876,"84":0.01615,"89":0.00969,"90":0.01292,"91":0.01615,"92":0.10336,"100":0.01938,"109":0.02261,"111":0.00323,"114":0.15827,"120":0.03876,"122":0.01615,"127":0.00969,"128":0.00646,"130":0.00323,"131":0.00646,"132":0.00323,"133":0.00969,"134":0.00646,"135":0.01938,"136":0.02584,"137":0.01938,"138":0.01615,"139":0.04199,"140":0.05168,"141":0.51357,"142":4.05365,"143":0.03553,_:"79 80 81 83 85 86 87 88 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 115 116 117 118 119 121 123 124 125 126 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 18.2","5.1":0.01292,"11.1":0.00323,"13.1":0.02584,"14.1":0.00323,"15.6":0.02907,"16.1":0.00323,"16.6":0.05168,"17.1":0.00646,"17.2":0.00323,"17.3":0.00323,"17.4":0.00323,"17.5":0.00323,"17.6":0.0646,"18.0":0.00323,"18.1":0.00646,"18.3":0.00969,"18.4":0.02584,"18.5-18.6":0.04845,"26.0":0.10659,"26.1":0.10013,"26.2":0.00323},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0,"6.0-6.1":0.00209,"7.0-7.1":0.00157,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0047,"10.0-10.2":0.00052,"10.3":0.00835,"11.0-11.2":0.09709,"11.3-11.4":0.00313,"12.0-12.1":0.00104,"12.2-12.5":0.02453,"13.0-13.1":0,"13.2":0.00261,"13.3":0.00104,"13.4-13.7":0.0047,"14.0-14.4":0.00783,"14.5-14.8":0.00992,"15.0-15.1":0.00835,"15.2-15.3":0.00679,"15.4":0.00731,"15.5":0.00783,"15.6-15.8":0.11327,"16.0":0.01409,"16.1":0.0261,"16.2":0.01357,"16.3":0.02505,"16.4":0.00626,"16.5":0.01044,"16.6-16.7":0.15294,"17.0":0.01305,"17.1":0.01566,"17.2":0.01148,"17.3":0.01618,"17.4":0.02662,"17.5":0.05063,"17.6-17.7":0.12423,"18.0":0.02766,"18.1":0.05846,"18.2":0.03132,"18.3":0.10178,"18.4":0.0522,"18.5-18.7":3.6449,"26.0":0.25002,"26.1":0.2281},P:{"4":0.04114,"20":0.01029,"21":0.01029,"22":0.04114,"23":0.05143,"24":0.09258,"25":0.072,"26":0.05143,"27":0.12343,"28":0.63774,"29":1.23434,_:"5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0","6.2-6.4":0.01029,"7.2-7.4":0.09258,"9.2":0.15429,"18.0":0.02057,"19.0":0.01029},I:{"0":0.04056,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":4.09639,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02907,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.15571,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01354},O:{"0":0.23695},H:{"0":0.69},L:{"0":63.92796},R:{_:"0"},M:{"0":0.18279}};
Index: de_modules/caniuse-lite/data/regions/NA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00361,"28":0.00361,"34":0.00361,"115":0.206,"127":0.00723,"128":0.00361,"134":0.00361,"136":0.00361,"139":0.00361,"140":0.04337,"141":0.01084,"142":0.01084,"143":0.06144,"144":0.83122,"145":0.79508,"146":0.00361,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 135 137 138 147 148 3.5 3.6"},D:{"49":0.00723,"55":0.00361,"69":0.00723,"71":0.00361,"72":0.00723,"73":0.00723,"74":0.0253,"78":0.01446,"79":0.01084,"80":0.00361,"83":0.01084,"87":0.01446,"90":0.00361,"91":0.00361,"92":0.00361,"93":0.00361,"98":0.00361,"100":0.02168,"103":0.00361,"104":0.00361,"109":0.45536,"111":0.04337,"112":0.08674,"114":0.01084,"115":0.00361,"116":0.07589,"119":0.01446,"120":0.00723,"121":0.00361,"122":0.14095,"123":0.00361,"124":0.01446,"125":0.10842,"126":0.03975,"127":0.01446,"128":0.0253,"129":0.00723,"130":0.01084,"131":0.06505,"132":0.02891,"133":0.01807,"134":0.02891,"135":0.04698,"136":0.06144,"137":0.01807,"138":0.12288,"139":0.11203,"140":0.40115,"141":3.62484,"142":9.90236,"143":0.01084,"144":0.00723,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 70 75 76 77 81 84 85 86 88 89 94 95 96 97 99 101 102 105 106 107 108 110 113 117 118 145 146"},F:{"80":0.0253,"92":0.01084,"93":0.00361,"95":0.01084,"113":0.00361,"114":0.03253,"120":0.00723,"122":0.16986,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00361,"13":0.00361,"14":0.00361,"16":0.00723,"17":0.00723,"18":0.04698,"89":0.00361,"90":0.00361,"92":0.02891,"100":0.00723,"109":0.02168,"114":0.04698,"115":0.00361,"116":0.03253,"117":0.00361,"119":0.00361,"122":0.01084,"124":0.00361,"127":0.00361,"129":0.04698,"130":0.00361,"131":0.01446,"133":0.00361,"134":0.01084,"135":0.00361,"136":0.01084,"137":0.00723,"138":0.03253,"139":0.02168,"140":0.04698,"141":0.62522,"142":4.65122,"143":0.00361,_:"15 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 118 120 121 123 125 126 128 132"},E:{"8":0.00361,"14":0.00361,"15":0.00361,_:"0 4 5 6 7 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.4 15.5 16.0 16.1 16.3 17.0 17.2","13.1":0.01084,"14.1":0.01807,"15.1":0.01084,"15.2-15.3":0.01807,"15.6":0.06144,"16.2":0.00361,"16.4":0.00723,"16.5":0.00361,"16.6":0.21323,"17.1":0.01807,"17.3":0.00361,"17.4":0.01084,"17.5":0.01084,"17.6":0.06867,"18.0":0.00361,"18.1":0.01084,"18.2":0.00361,"18.3":0.02168,"18.4":0.00723,"18.5-18.6":0.05782,"26.0":0.27105,"26.1":0.34333,"26.2":0.00723},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00085,"5.0-5.1":0,"6.0-6.1":0.00341,"7.0-7.1":0.00255,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00766,"10.0-10.2":0.00085,"10.3":0.01362,"11.0-11.2":0.15833,"11.3-11.4":0.00511,"12.0-12.1":0.0017,"12.2-12.5":0.04001,"13.0-13.1":0,"13.2":0.00426,"13.3":0.0017,"13.4-13.7":0.00766,"14.0-14.4":0.01277,"14.5-14.8":0.01617,"15.0-15.1":0.01362,"15.2-15.3":0.01107,"15.4":0.01192,"15.5":0.01277,"15.6-15.8":0.18472,"16.0":0.02298,"16.1":0.04256,"16.2":0.02213,"16.3":0.04086,"16.4":0.01022,"16.5":0.01703,"16.6-16.7":0.24942,"17.0":0.02128,"17.1":0.02554,"17.2":0.01873,"17.3":0.02639,"17.4":0.04341,"17.5":0.08257,"17.6-17.7":0.2026,"18.0":0.04512,"18.1":0.09534,"18.2":0.05108,"18.3":0.16599,"18.4":0.08513,"18.5-18.7":5.94431,"26.0":0.40775,"26.1":0.372},P:{"4":0.12314,"20":0.01026,"22":0.01026,"23":0.03079,"24":0.10262,"25":0.05131,"26":0.05131,"27":0.23603,"28":0.65677,"29":4.5461,_:"21 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 19.0","5.0-5.4":0.01026,"7.2-7.4":0.28734,"8.2":0.02052,"14.0":0.02052,"17.0":0.02052,"18.0":0.01026},I:{"0":0.02551,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.05394,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03253,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.17242},H:{"0":0.07},L:{"0":55.26821},R:{_:"0"},M:{"0":0.37677}};
Index: de_modules/caniuse-lite/data/regions/NC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"48":0.00672,"53":0.4634,"80":0.00336,"102":0.01007,"109":0.00336,"115":0.04365,"123":0.00336,"127":0.00336,"128":0.06044,"129":0.02015,"131":0.00336,"133":0.00336,"135":0.0403,"136":0.00672,"137":0.07388,"139":0.06716,"140":0.07052,"141":0.00672,"142":0.02015,"143":0.02686,"144":1.25925,"145":2.05174,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 130 132 134 138 146 147 148 3.5 3.6"},D:{"69":0.00336,"79":0.02686,"80":0.00336,"86":0.00672,"93":0.00336,"94":0.00336,"103":0.00672,"109":0.66153,"111":0.00336,"116":0.05037,"120":0.00336,"121":0.00672,"122":0.01679,"123":0.00336,"125":0.1041,"126":0.00672,"127":0.1041,"128":0.06044,"129":0.00336,"131":0.05037,"132":0.00336,"133":0.00336,"134":0.01679,"135":0.00672,"136":0.01679,"137":0.00672,"138":0.05037,"139":1.27604,"140":0.42311,"141":2.02152,"142":9.41583,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 81 83 84 85 87 88 89 90 91 92 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 114 115 117 118 119 124 130 143 144 145 146"},F:{"85":0.00336,"93":0.00336,"95":0.00336,"102":0.00672,"119":0.00336,"122":0.18469,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00336,"92":0.00336,"109":0.00336,"112":0.00336,"114":0.08395,"117":0.00336,"121":0.00336,"126":0.00336,"127":0.00672,"128":0.00672,"131":0.01343,"133":0.01007,"134":0.02351,"135":0.00672,"136":0.01007,"137":0.01007,"138":0.02015,"139":0.02351,"140":0.05709,"141":0.71525,"142":6.28953,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 118 119 120 122 123 124 125 129 130 132 143"},E:{"13":0.00336,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.2 16.4 17.0 17.2 17.3 26.2","13.1":0.01007,"14.1":0.01343,"15.1":0.00336,"15.6":0.15783,"16.0":0.01679,"16.1":0.02686,"16.3":0.02351,"16.5":0.01343,"16.6":0.11417,"17.1":0.0638,"17.4":0.00672,"17.5":0.03694,"17.6":0.1041,"18.0":0.03022,"18.1":0.01343,"18.2":0.00336,"18.3":0.00672,"18.4":0.01679,"18.5-18.6":0.05373,"26.0":0.12089,"26.1":0.16454},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00099,"5.0-5.1":0,"6.0-6.1":0.00394,"7.0-7.1":0.00296,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00887,"10.0-10.2":0.00099,"10.3":0.01577,"11.0-11.2":0.18334,"11.3-11.4":0.00591,"12.0-12.1":0.00197,"12.2-12.5":0.04633,"13.0-13.1":0,"13.2":0.00493,"13.3":0.00197,"13.4-13.7":0.00887,"14.0-14.4":0.01479,"14.5-14.8":0.01873,"15.0-15.1":0.01577,"15.2-15.3":0.01281,"15.4":0.0138,"15.5":0.01479,"15.6-15.8":0.21389,"16.0":0.02661,"16.1":0.04928,"16.2":0.02563,"16.3":0.04731,"16.4":0.01183,"16.5":0.01971,"16.6-16.7":0.2888,"17.0":0.02464,"17.1":0.02957,"17.2":0.02168,"17.3":0.03056,"17.4":0.05027,"17.5":0.09561,"17.6-17.7":0.23459,"18.0":0.05224,"18.1":0.1104,"18.2":0.05914,"18.3":0.19221,"18.4":0.09857,"18.5-18.7":6.88295,"26.0":0.47214,"26.1":0.43074},P:{"4":0.01073,"20":0.01073,"22":0.01073,"23":0.01073,"24":0.02146,"25":0.04292,"26":0.04292,"27":0.08584,"28":0.25751,"29":1.92056,_:"21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01073,"13.0":0.06438,"16.0":0.02146},I:{"0":0.02653,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.16605,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":55.09206},R:{_:"0"},M:{"0":0.54464}};
Index: de_modules/caniuse-lite/data/regions/NE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00206,"42":0.00206,"44":0.00206,"47":0.00825,"48":0.00206,"50":0.00206,"52":0.00412,"54":0.00206,"65":0.00412,"67":0.00619,"72":0.00206,"73":0.00206,"77":0.00619,"81":0.00206,"86":0.00412,"90":0.00206,"91":0.00206,"95":0.00619,"98":0.00206,"103":0.00206,"111":0.00206,"112":0.00206,"115":0.07217,"119":0.00206,"127":0.01443,"128":0.01031,"133":0.00206,"136":0.0165,"137":0.00206,"138":0.01031,"139":0.00206,"140":0.07217,"141":0.00412,"142":0.01856,"143":0.03093,"144":0.71345,"145":0.75675,"146":0.00206,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 43 45 46 49 51 53 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 74 75 76 78 79 80 82 83 84 85 87 88 89 92 93 94 96 97 99 100 101 102 104 105 106 107 108 109 110 113 114 116 117 118 120 121 122 123 124 125 126 129 130 131 132 134 135 147 148 3.5 3.6"},D:{"31":0.00206,"40":0.00206,"43":0.00206,"47":0.00412,"49":0.00206,"54":0.00206,"60":0.00206,"61":0.00412,"64":0.00825,"65":0.00206,"67":0.00206,"69":0.02887,"70":0.00619,"71":0.00206,"72":0.00412,"73":0.00206,"74":0.00412,"76":0.00825,"77":0.00206,"79":0.00206,"81":0.00206,"83":0.01443,"84":0.00412,"86":0.01031,"87":0.00412,"88":0.00206,"93":0.00206,"95":0.00825,"97":0.00206,"98":0.00206,"103":0.00206,"108":0.00206,"109":0.25363,"111":0.00619,"114":0.01443,"115":0.00206,"116":0.01031,"119":0.00206,"120":0.00412,"121":0.00206,"122":0.02062,"123":0.00412,"124":0.00412,"125":0.07423,"126":0.03505,"127":0.00619,"128":0.0165,"129":0.00206,"130":0.01443,"131":0.03505,"132":0.01443,"133":0.01237,"134":0.01443,"135":0.00825,"136":0.03505,"137":0.04536,"138":0.31755,"139":0.0866,"140":0.13815,"141":1.85374,"142":3.43735,"143":0.03712,_:"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 32 33 34 35 36 37 38 39 41 42 44 45 46 48 50 51 52 53 55 56 57 58 59 62 63 66 68 75 78 80 85 89 90 91 92 94 96 99 100 101 102 104 105 106 107 110 112 113 117 118 144 145 146"},F:{"36":0.00412,"40":0.01237,"42":0.00206,"49":0.00206,"64":0.00206,"66":0.00206,"79":0.03093,"82":0.00412,"83":0.00206,"86":0.00412,"90":0.00206,"91":0.00412,"92":0.02268,"93":0.00412,"95":0.02474,"113":0.00619,"117":0.00412,"118":0.00206,"119":0.00206,"120":0.03918,"122":0.16496,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 65 67 68 69 70 71 72 73 74 75 76 77 78 80 81 84 85 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00412,"13":0.00825,"14":0.00206,"15":0.00206,"16":0.00206,"17":0.00825,"18":0.02474,"83":0.00206,"84":0.00825,"85":0.00206,"89":0.0165,"90":0.00825,"92":0.05774,"95":0.00206,"98":0.00206,"100":0.00825,"109":0.01237,"110":0.00206,"111":0.00206,"114":0.07629,"116":0.00206,"122":0.01237,"124":0.19589,"129":0.00206,"131":0.0165,"134":0.00825,"136":0.00825,"137":0.00412,"138":0.01856,"139":0.03712,"140":0.03505,"141":0.54024,"142":2.18366,"143":0.00412,_:"79 80 81 86 87 88 91 93 94 96 97 99 101 102 103 104 105 106 107 108 112 113 115 117 118 119 120 121 123 125 126 127 128 130 132 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.4 15.5 16.0 16.1 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0 18.5-18.6 26.2","5.1":0.00412,"11.1":0.00206,"13.1":0.00619,"14.1":0.00619,"15.2-15.3":0.00206,"15.6":0.00412,"16.2":0.01856,"16.6":0.0165,"17.6":0.03093,"18.1":0.01031,"18.2":0.00825,"18.3":0.00412,"18.4":0.00619,"26.0":0.08454,"26.1":0.06186},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00023,"5.0-5.1":0,"6.0-6.1":0.00091,"7.0-7.1":0.00068,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00205,"10.0-10.2":0.00023,"10.3":0.00365,"11.0-11.2":0.04237,"11.3-11.4":0.00137,"12.0-12.1":0.00046,"12.2-12.5":0.01071,"13.0-13.1":0,"13.2":0.00114,"13.3":0.00046,"13.4-13.7":0.00205,"14.0-14.4":0.00342,"14.5-14.8":0.00433,"15.0-15.1":0.00365,"15.2-15.3":0.00296,"15.4":0.00319,"15.5":0.00342,"15.6-15.8":0.04944,"16.0":0.00615,"16.1":0.01139,"16.2":0.00592,"16.3":0.01094,"16.4":0.00273,"16.5":0.00456,"16.6-16.7":0.06675,"17.0":0.0057,"17.1":0.00683,"17.2":0.00501,"17.3":0.00706,"17.4":0.01162,"17.5":0.0221,"17.6-17.7":0.05422,"18.0":0.01207,"18.1":0.02552,"18.2":0.01367,"18.3":0.04443,"18.4":0.02278,"18.5-18.7":1.59087,"26.0":0.10913,"26.1":0.09956},P:{"4":0.01029,"22":0.072,"24":0.01029,"25":0.02057,"26":0.01029,"27":0.06172,"28":0.16457,"29":0.34972,_:"20 21 23 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01029,"9.2":0.01029,"11.1-11.2":0.01029},I:{"0":0.07134,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":3.18849,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.16702,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.02381,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00794},O:{"0":0.43659},H:{"0":0.59},L:{"0":78.41436},R:{_:"0"},M:{"0":0.05557}};
Index: de_modules/caniuse-lite/data/regions/NF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 3.5 3.6"},D:{"138":0.65392,"141":1.30784,"142":1.96176,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 140 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"111":0.65392,"141":6.53652,"142":11.7652,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.2","26.0":1.96176,"26.1":0.65392},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00253,"5.0-5.1":0,"6.0-6.1":0.01012,"7.0-7.1":0.00759,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02276,"10.0-10.2":0.00253,"10.3":0.04047,"11.0-11.2":0.47047,"11.3-11.4":0.01518,"12.0-12.1":0.00506,"12.2-12.5":0.11888,"13.0-13.1":0,"13.2":0.01265,"13.3":0.00506,"13.4-13.7":0.02276,"14.0-14.4":0.03794,"14.5-14.8":0.04806,"15.0-15.1":0.04047,"15.2-15.3":0.03288,"15.4":0.03541,"15.5":0.03794,"15.6-15.8":0.54888,"16.0":0.06829,"16.1":0.12647,"16.2":0.06576,"16.3":0.12141,"16.4":0.03035,"16.5":0.05059,"16.6-16.7":0.74112,"17.0":0.06324,"17.1":0.07588,"17.2":0.05565,"17.3":0.07841,"17.4":0.129,"17.5":0.24535,"17.6-17.7":0.602,"18.0":0.13406,"18.1":0.28329,"18.2":0.15176,"18.3":0.49323,"18.4":0.25294,"18.5-18.7":17.66284,"26.0":1.21159,"26.1":1.10535},P:{"28":1.33299,"29":5.3218,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":41.90279},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/NG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00274,"31":0.00274,"43":0.00547,"47":0.00274,"52":0.00547,"65":0.00547,"72":0.00274,"78":0.00274,"99":0.00274,"109":0.00274,"112":0.00274,"114":0.00274,"115":0.42134,"127":0.00547,"128":0.00274,"134":0.00274,"136":0.00274,"138":0.00274,"139":0.00274,"140":0.04378,"141":0.00274,"142":0.00821,"143":0.01368,"144":0.25445,"145":0.26539,"146":0.00274,_:"2 3 4 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 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 110 111 113 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 135 137 147 148 3.5 3.6"},D:{"47":0.02462,"55":0.00274,"58":0.00274,"62":0.02736,"63":0.00547,"64":0.00274,"65":0.00274,"68":0.00547,"69":0.00547,"70":0.03557,"71":0.00274,"73":0.00274,"74":0.00547,"75":0.00547,"76":0.00547,"77":0.00274,"78":0.00274,"79":0.01915,"80":0.01368,"81":0.00547,"83":0.00547,"85":0.00274,"86":0.00821,"87":0.01094,"88":0.00274,"89":0.00274,"90":0.00274,"91":0.00274,"92":0.00274,"93":0.01094,"94":0.00274,"95":0.00821,"97":0.00274,"98":0.00274,"100":0.00274,"102":0.03557,"103":0.02736,"104":0.00821,"105":0.02189,"106":0.01094,"107":0.00274,"108":0.00821,"109":0.43776,"111":0.02462,"112":0.50616,"113":0.00274,"114":0.01642,"115":0.00547,"116":0.02462,"117":0.00274,"118":0.00274,"119":0.02736,"120":0.01094,"121":0.00547,"122":0.02189,"123":0.00821,"124":0.01642,"125":0.02736,"126":0.12312,"127":0.01642,"128":0.02462,"129":0.01094,"130":0.01642,"131":0.07114,"132":0.02189,"133":0.02736,"134":0.0301,"135":0.03557,"136":0.0383,"137":0.06566,"138":0.21888,"139":0.15322,"140":0.24624,"141":1.71274,"142":4.41864,"143":0.02189,"144":0.00274,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 56 57 59 60 61 66 67 72 84 96 99 101 110 145 146"},F:{"79":0.00274,"84":0.00274,"85":0.00547,"86":0.00547,"87":0.01368,"88":0.00821,"89":0.01915,"90":0.05472,"91":0.08208,"92":0.46512,"93":0.06293,"94":0.00274,"95":0.02189,"114":0.00274,"120":0.00274,"121":0.00274,"122":0.08755,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00274,"13":0.00274,"15":0.00274,"18":0.01915,"84":0.00274,"89":0.00274,"90":0.00547,"92":0.02189,"100":0.00821,"109":0.00821,"111":0.00274,"114":0.16416,"122":0.00821,"126":0.00274,"128":0.00547,"131":0.00547,"132":0.00274,"133":0.00274,"134":0.00274,"135":0.00547,"136":0.00821,"137":0.00547,"138":0.01094,"139":0.04378,"140":0.04378,"141":0.18058,"142":0.96854,_:"14 16 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 115 116 117 118 119 120 121 123 124 125 127 129 130 143"},E:{"11":0.00547,"13":0.00821,"14":0.00274,_:"0 4 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1 15.4 16.4","5.1":0.00274,"11.1":0.00274,"12.1":0.00274,"13.1":0.01368,"14.1":0.00547,"15.1":0.00274,"15.2-15.3":0.00274,"15.5":0.00274,"15.6":0.03557,"16.0":0.00274,"16.1":0.00274,"16.2":0.00274,"16.3":0.00274,"16.5":0.00274,"16.6":0.02736,"17.0":0.00274,"17.1":0.00547,"17.2":0.00274,"17.3":0.00274,"17.4":0.00274,"17.5":0.00821,"17.6":0.02736,"18.0":0.00274,"18.1":0.00547,"18.2":0.00821,"18.3":0.01094,"18.4":0.00821,"18.5-18.6":0.02462,"26.0":0.03557,"26.1":0.02736,"26.2":0.00274},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00067,"5.0-5.1":0,"6.0-6.1":0.0027,"7.0-7.1":0.00202,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00607,"10.0-10.2":0.00067,"10.3":0.01079,"11.0-11.2":0.12538,"11.3-11.4":0.00404,"12.0-12.1":0.00135,"12.2-12.5":0.03168,"13.0-13.1":0,"13.2":0.00337,"13.3":0.00135,"13.4-13.7":0.00607,"14.0-14.4":0.01011,"14.5-14.8":0.01281,"15.0-15.1":0.01079,"15.2-15.3":0.00876,"15.4":0.00944,"15.5":0.01011,"15.6-15.8":0.14628,"16.0":0.0182,"16.1":0.0337,"16.2":0.01753,"16.3":0.03236,"16.4":0.00809,"16.5":0.01348,"16.6-16.7":0.19751,"17.0":0.01685,"17.1":0.02022,"17.2":0.01483,"17.3":0.0209,"17.4":0.03438,"17.5":0.06539,"17.6-17.7":0.16044,"18.0":0.03573,"18.1":0.0755,"18.2":0.04045,"18.3":0.13145,"18.4":0.06741,"18.5-18.7":4.70723,"26.0":0.32289,"26.1":0.29458},P:{"4":0.01031,"21":0.01031,"22":0.01031,"23":0.01031,"24":0.05157,"25":0.05157,"26":0.03094,"27":0.08252,"28":0.34039,"29":0.36102,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 12.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.02063,"9.2":0.02063,"11.1-11.2":0.01031,"13.0":0.01031,"16.0":0.01031},I:{"0":0.02902,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":17.82458,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00752,"11":0.02257,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00726,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.2615},H:{"0":2.58},L:{"0":57.69762},R:{_:"0"},M:{"0":0.2833}};
Index: de_modules/caniuse-lite/data/regions/NI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03134,"115":0.02507,"127":0.00627,"128":0.02507,"138":0.01254,"139":0.01254,"140":0.03761,"141":0.00627,"142":0.04388,"143":0.00627,"144":0.43249,"145":0.61426,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 146 147 148 3.5 3.6"},D:{"69":0.03761,"73":0.00627,"75":0.00627,"79":0.00627,"87":0.00627,"88":0.00627,"91":0.00627,"97":0.01254,"98":0.0188,"99":0.00627,"101":0.01254,"103":0.0188,"108":0.00627,"109":0.26952,"110":0.02507,"111":0.06895,"112":28.0305,"114":0.01254,"116":0.03134,"119":0.00627,"120":0.01254,"122":0.08775,"123":0.00627,"124":0.01254,"125":0.68948,"126":4.10554,"127":0.04388,"128":0.02507,"129":0.00627,"130":0.01254,"131":0.0188,"132":0.04388,"133":0.06895,"134":0.03134,"135":0.0188,"136":0.02507,"137":0.03134,"138":0.07522,"139":0.05014,"140":0.30713,"141":2.58868,"142":10.59919,"143":0.01254,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 74 76 77 78 80 81 83 84 85 86 89 90 92 93 94 95 96 100 102 104 105 106 107 113 115 117 118 121 144 145 146"},F:{"92":0.03134,"95":0.00627,"120":0.00627,"122":0.51398,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00627,"92":0.01254,"100":0.00627,"109":0.0188,"114":1.22853,"122":0.01254,"131":0.00627,"132":0.00627,"134":0.00627,"135":0.00627,"136":0.00627,"137":0.01254,"138":0.01254,"139":0.0188,"140":0.02507,"141":0.54532,"142":3.45994,"143":0.01254,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 14.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.3 18.4 26.2","5.1":0.01254,"11.1":0.00627,"13.1":0.01254,"15.1":0.00627,"15.6":0.01254,"16.1":0.00627,"16.6":0.02507,"17.1":0.02507,"17.2":0.00627,"17.4":0.00627,"17.5":0.0188,"17.6":0.04388,"18.0":0.00627,"18.1":0.02507,"18.2":0.05641,"18.3":0.01254,"18.5-18.6":0.02507,"26.0":0.09402,"26.1":0.11909},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0.0022,"7.0-7.1":0.00165,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00496,"10.0-10.2":0.00055,"10.3":0.00881,"11.0-11.2":0.10246,"11.3-11.4":0.00331,"12.0-12.1":0.0011,"12.2-12.5":0.02589,"13.0-13.1":0,"13.2":0.00275,"13.3":0.0011,"13.4-13.7":0.00496,"14.0-14.4":0.00826,"14.5-14.8":0.01047,"15.0-15.1":0.00881,"15.2-15.3":0.00716,"15.4":0.00771,"15.5":0.00826,"15.6-15.8":0.11953,"16.0":0.01487,"16.1":0.02754,"16.2":0.01432,"16.3":0.02644,"16.4":0.00661,"16.5":0.01102,"16.6-16.7":0.1614,"17.0":0.01377,"17.1":0.01653,"17.2":0.01212,"17.3":0.01708,"17.4":0.02809,"17.5":0.05343,"17.6-17.7":0.1311,"18.0":0.02919,"18.1":0.06169,"18.2":0.03305,"18.3":0.10741,"18.4":0.05508,"18.5-18.7":3.84654,"26.0":0.26385,"26.1":0.24072},P:{"4":0.01027,"21":0.01027,"22":0.03082,"23":0.02055,"24":0.05137,"25":0.04109,"26":0.18492,"27":0.09246,"28":0.28766,"29":1.0068,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.07191,"11.1-11.2":0.01027,"19.0":0.01027},I:{"0":0.01118,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.30229,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.00373,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01493},O:{"0":0.02986},H:{"0":0},L:{"0":34.76913},R:{_:"0"},M:{"0":0.1045}};
Index: de_modules/caniuse-lite/data/regions/NL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"38":0.0106,"43":0.0053,"44":0.0212,"45":0.0053,"50":0.0053,"51":0.0053,"52":0.0106,"53":0.0053,"54":0.0212,"55":0.0053,"56":0.0053,"60":0.0053,"78":0.0053,"81":0.0106,"115":0.12718,"121":0.0053,"123":0.0053,"125":0.0053,"127":0.0053,"128":0.04239,"132":0.0053,"133":0.0053,"134":0.0053,"135":0.06359,"136":0.0053,"137":0.0106,"138":0.0053,"139":0.0106,"140":0.35503,"141":0.0106,"142":0.0159,"143":0.04769,"144":0.85314,"145":1.11809,"146":0.0106,_:"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 33 34 35 36 37 39 40 41 42 46 47 48 49 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 124 126 129 130 131 147 148 3.5 3.6"},D:{"38":0.0053,"39":0.0106,"40":0.0106,"41":0.0106,"42":0.0106,"43":0.0106,"44":0.0106,"45":0.03179,"46":0.0106,"47":0.0159,"48":0.07949,"49":0.0265,"50":0.0106,"51":0.0106,"52":0.0265,"53":0.0106,"54":0.0106,"55":0.0106,"56":0.0106,"57":0.0106,"58":0.0106,"59":0.0106,"60":0.0106,"66":0.0106,"72":0.03709,"73":0.0053,"74":0.0053,"79":0.0159,"80":0.0053,"84":0.0053,"87":0.0106,"88":0.0265,"92":0.13777,"93":0.0159,"96":0.03709,"98":0.0053,"99":0.0053,"102":0.0053,"103":0.03709,"104":0.07949,"105":0.0053,"107":0.0053,"108":0.03709,"109":0.41862,"111":0.0053,"112":0.0159,"113":0.0106,"114":0.0265,"115":0.0106,"116":0.09538,"117":0.24375,"118":0.09008,"119":0.0159,"120":0.10068,"121":0.03709,"122":0.10068,"123":0.0159,"124":0.03709,"125":0.63058,"126":0.28615,"127":0.0106,"128":0.09538,"129":0.10598,"130":1.80696,"131":0.07949,"132":0.07419,"133":0.07419,"134":6.30051,"135":0.06889,"136":0.09008,"137":0.14837,"138":0.33384,"139":0.40802,"140":0.60939,"141":4.03254,"142":15.09685,"143":0.03709,"144":0.0053,_:"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 33 34 35 36 37 61 62 63 64 65 67 68 69 70 71 75 76 77 78 81 83 85 86 89 90 91 94 95 97 100 101 106 110 145 146"},F:{"46":0.0053,"79":0.0053,"92":0.06359,"93":0.0106,"95":0.0159,"113":0.06889,"119":0.0053,"120":0.0053,"122":0.30204,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.0106},B:{"109":0.05829,"120":0.0053,"128":0.0053,"129":0.0053,"131":0.0106,"132":0.0053,"133":0.0053,"134":0.0106,"135":0.0053,"136":0.0106,"137":0.0212,"138":0.03179,"139":0.03709,"140":0.09538,"141":0.75776,"142":6.58136,"143":0.0159,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 130"},E:{"9":0.0106,"14":0.0053,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3","12.1":0.0053,"13.1":0.0159,"14.1":0.0159,"15.4":0.0053,"15.5":0.0053,"15.6":0.13777,"16.0":0.0106,"16.1":0.0212,"16.2":0.0106,"16.3":0.0212,"16.4":0.0106,"16.5":0.0159,"16.6":0.21726,"17.0":0.0106,"17.1":0.16427,"17.2":0.0159,"17.3":0.0212,"17.4":0.03179,"17.5":0.05829,"17.6":0.18547,"18.0":0.0212,"18.1":0.0265,"18.2":0.0212,"18.3":0.06889,"18.4":0.03709,"18.5-18.6":0.15897,"26.0":0.35503,"26.1":0.44512,"26.2":0.0106},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00137,"5.0-5.1":0,"6.0-6.1":0.00549,"7.0-7.1":0.00412,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01235,"10.0-10.2":0.00137,"10.3":0.02196,"11.0-11.2":0.25532,"11.3-11.4":0.00824,"12.0-12.1":0.00275,"12.2-12.5":0.06452,"13.0-13.1":0,"13.2":0.00686,"13.3":0.00275,"13.4-13.7":0.01235,"14.0-14.4":0.02059,"14.5-14.8":0.02608,"15.0-15.1":0.02196,"15.2-15.3":0.01784,"15.4":0.01922,"15.5":0.02059,"15.6-15.8":0.29787,"16.0":0.03706,"16.1":0.06863,"16.2":0.03569,"16.3":0.06589,"16.4":0.01647,"16.5":0.02745,"16.6-16.7":0.4022,"17.0":0.03432,"17.1":0.04118,"17.2":0.0302,"17.3":0.04255,"17.4":0.07001,"17.5":0.13315,"17.6-17.7":0.3267,"18.0":0.07275,"18.1":0.15374,"18.2":0.08236,"18.3":0.26767,"18.4":0.13727,"18.5-18.7":9.58551,"26.0":0.65752,"26.1":0.59987},P:{"4":0.01046,"21":0.01046,"22":0.01046,"23":0.02092,"24":0.02092,"25":0.02092,"26":0.0523,"27":0.0523,"28":0.26151,"29":3.52513,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 19.0","18.0":0.01046},I:{"0":0.03286,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.4648,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00584,"7":0.00584,"8":0.01168,"9":0.06424,"10":0.01168,"11":0.18687,_:"5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0141},O:{"0":0.18804},H:{"0":0.01},L:{"0":29.97925},R:{_:"0"},M:{"0":0.59233}};
Index: de_modules/caniuse-lite/data/regions/NO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"59":0.02685,"78":0.00537,"113":0.00537,"115":0.07518,"128":0.06444,"134":0.00537,"139":0.00537,"140":0.17721,"141":0.00537,"142":0.00537,"143":0.03222,"144":0.51552,"145":0.64977,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 135 136 137 138 146 147 148 3.5 3.6"},D:{"41":0.00537,"49":0.00537,"65":0.00537,"66":0.11814,"79":0.00537,"87":0.02148,"88":0.00537,"92":0.01611,"97":0.54237,"102":0.00537,"103":0.01611,"104":0.00537,"108":0.00537,"109":0.12351,"110":0.00537,"112":0.00537,"114":0.05907,"115":0.00537,"116":0.08055,"118":6.78231,"119":0.19869,"120":0.00537,"121":0.01611,"122":0.04296,"123":0.01074,"124":0.03222,"125":0.03759,"126":0.03222,"127":0.00537,"128":0.04296,"129":0.01074,"130":0.12351,"131":0.06981,"132":0.02148,"133":0.04833,"134":0.03222,"135":0.04833,"136":0.08055,"137":0.06444,"138":0.31683,"139":0.26313,"140":0.41349,"141":4.23693,"142":12.85578,"143":0.03759,"144":0.00537,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 89 90 91 93 94 95 96 98 99 100 101 105 106 107 111 113 117 145 146"},F:{"36":0.00537,"74":0.00537,"79":0.02685,"83":0.00537,"84":0.00537,"85":0.02685,"86":0.02148,"87":0.00537,"89":0.01074,"90":0.01611,"91":0.03222,"92":0.95586,"93":0.13962,"95":0.90753,"99":0.00537,"102":0.01074,"103":0.00537,"104":0.00537,"109":0.00537,"112":0.00537,"113":0.01074,"114":0.02685,"115":0.00537,"117":0.01611,"119":0.01611,"120":0.22554,"121":0.00537,"122":2.40039,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 80 81 82 88 94 96 97 98 100 101 105 106 107 108 110 111 116 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01611,"109":0.02685,"115":0.00537,"131":0.01611,"132":0.00537,"133":0.00537,"134":0.00537,"136":0.01074,"137":0.00537,"138":0.02685,"139":0.02148,"140":0.04296,"141":0.76791,"142":5.4237,"143":0.00537,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 135"},E:{"14":0.00537,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3","11.1":0.02148,"12.1":0.02148,"13.1":0.01074,"14.1":0.02148,"15.4":0.00537,"15.5":0.01074,"15.6":0.15573,"16.0":0.00537,"16.1":0.02685,"16.2":0.01611,"16.3":0.02685,"16.4":0.02148,"16.5":0.01074,"16.6":0.28998,"17.0":0.00537,"17.1":0.25776,"17.2":0.03222,"17.3":0.01611,"17.4":0.0537,"17.5":0.1611,"17.6":0.22017,"18.0":0.02685,"18.1":0.06444,"18.2":0.02148,"18.3":0.10203,"18.4":0.04296,"18.5-18.6":0.19869,"26.0":0.35979,"26.1":0.44034,"26.2":0.01074},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00233,"5.0-5.1":0,"6.0-6.1":0.00932,"7.0-7.1":0.00699,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02098,"10.0-10.2":0.00233,"10.3":0.0373,"11.0-11.2":0.43361,"11.3-11.4":0.01399,"12.0-12.1":0.00466,"12.2-12.5":0.10957,"13.0-13.1":0,"13.2":0.01166,"13.3":0.00466,"13.4-13.7":0.02098,"14.0-14.4":0.03497,"14.5-14.8":0.04429,"15.0-15.1":0.0373,"15.2-15.3":0.03031,"15.4":0.03264,"15.5":0.03497,"15.6-15.8":0.50588,"16.0":0.06294,"16.1":0.11656,"16.2":0.06061,"16.3":0.1119,"16.4":0.02797,"16.5":0.04662,"16.6-16.7":0.68305,"17.0":0.05828,"17.1":0.06994,"17.2":0.05129,"17.3":0.07227,"17.4":0.11889,"17.5":0.22613,"17.6-17.7":0.55484,"18.0":0.12356,"18.1":0.2611,"18.2":0.13987,"18.3":0.45459,"18.4":0.23312,"18.5-18.7":16.27909,"26.0":1.11667,"26.1":1.01875},P:{"4":0.02093,"21":0.01047,"26":0.02093,"27":0.01047,"28":0.15699,"29":2.65829,_:"20 22 23 24 25 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01047,"9.2":0.01047},I:{"0":0.00925,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":5.8258,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00926},H:{"0":0},L:{"0":15.19412},R:{_:"0"},M:{"0":0.31491}};
Index: de_modules/caniuse-lite/data/regions/NP.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NP.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00323,"52":0.00323,"99":0.00323,"115":0.09364,"127":0.00646,"128":0.00323,"135":0.00323,"136":0.00323,"139":0.00323,"140":0.01615,"141":0.00646,"142":0.01292,"143":0.0226,"144":0.43914,"145":0.55216,"146":0.01292,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 137 138 147 148 3.5 3.6"},D:{"69":0.00323,"79":0.00323,"80":0.00323,"83":0.00323,"87":0.00646,"91":0.00646,"93":0.00323,"102":0.00323,"103":0.03229,"104":0.00646,"106":0.00323,"109":1.03651,"111":0.00323,"112":2.52831,"114":0.00646,"115":0.00323,"116":0.03229,"119":0.00323,"120":0.00646,"121":0.00646,"122":0.03229,"123":0.00969,"124":0.01615,"125":0.1776,"126":0.31321,"127":0.01292,"128":0.02906,"129":0.01292,"130":0.00969,"131":0.04521,"132":0.03229,"133":0.01937,"134":0.01937,"135":0.04198,"136":0.03875,"137":0.04844,"138":0.1776,"139":0.12593,"140":0.20989,"141":3.77793,"142":14.36582,"143":0.13239,"144":0.00323,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 81 84 85 86 88 89 90 92 94 95 96 97 98 99 100 101 105 107 108 110 113 117 118 145 146"},F:{"79":0.00323,"92":0.0226,"93":0.00646,"95":0.00969,"122":0.06458,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00323,"92":0.00646,"109":0.00646,"114":0.02906,"122":0.00323,"125":0.00323,"131":0.00646,"132":0.00323,"134":0.00969,"135":0.00323,"136":0.00323,"137":0.00323,"138":0.00646,"139":0.00969,"140":0.01292,"141":0.13885,"142":1.70168,"143":0.00646,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 129 130 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 16.0 16.3 16.4","12.1":0.00323,"13.1":0.00323,"14.1":0.00646,"15.5":0.00323,"15.6":0.01937,"16.1":0.00969,"16.2":0.00323,"16.5":0.00323,"16.6":0.0226,"17.0":0.00323,"17.1":0.00969,"17.2":0.00323,"17.3":0.00646,"17.4":0.00646,"17.5":0.01292,"17.6":0.03552,"18.0":0.00323,"18.1":0.00969,"18.2":0.00323,"18.3":0.00969,"18.4":0.00323,"18.5-18.6":0.02906,"26.0":0.07104,"26.1":0.0775,"26.2":0.00323},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00115,"5.0-5.1":0,"6.0-6.1":0.00459,"7.0-7.1":0.00345,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01034,"10.0-10.2":0.00115,"10.3":0.01837,"11.0-11.2":0.2136,"11.3-11.4":0.00689,"12.0-12.1":0.0023,"12.2-12.5":0.05397,"13.0-13.1":0,"13.2":0.00574,"13.3":0.0023,"13.4-13.7":0.01034,"14.0-14.4":0.01723,"14.5-14.8":0.02182,"15.0-15.1":0.01837,"15.2-15.3":0.01493,"15.4":0.01608,"15.5":0.01723,"15.6-15.8":0.24919,"16.0":0.03101,"16.1":0.05742,"16.2":0.02986,"16.3":0.05512,"16.4":0.01378,"16.5":0.02297,"16.6-16.7":0.33647,"17.0":0.02871,"17.1":0.03445,"17.2":0.02526,"17.3":0.0356,"17.4":0.05857,"17.5":0.11139,"17.6-17.7":0.27331,"18.0":0.06086,"18.1":0.12862,"18.2":0.0689,"18.3":0.22393,"18.4":0.11484,"18.5-18.7":8.01901,"26.0":0.55007,"26.1":0.50183},P:{"23":0.0105,"25":0.0105,"26":0.0105,"27":0.0105,"28":0.06297,"29":0.51426,_:"4 20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0105},I:{"0":0.02705,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.54168,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.36563},H:{"0":0},L:{"0":58.71539},R:{_:"0"},M:{"0":0.05417}};
Index: de_modules/caniuse-lite/data/regions/NR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"142":0.03855,"144":0.26728,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143 145 146 147 148 3.5 3.6"},D:{"102":0.15163,"109":0.0771,"122":0.03855,"123":0.03855,"125":1.2593,"139":0.11565,"140":0.65021,"141":1.03057,"142":3.78047,"143":0.03855,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 124 126 127 128 129 130 131 132 133 134 135 136 137 138 144 145 146"},F:{"93":0.49601,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.0771,"136":0.0771,"140":0.03855,"141":0.22873,"142":2.97863,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.1 26.2","26.0":0.03855},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00089,"5.0-5.1":0,"6.0-6.1":0.00355,"7.0-7.1":0.00266,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00798,"10.0-10.2":0.00089,"10.3":0.01419,"11.0-11.2":0.16501,"11.3-11.4":0.00532,"12.0-12.1":0.00177,"12.2-12.5":0.0417,"13.0-13.1":0,"13.2":0.00444,"13.3":0.00177,"13.4-13.7":0.00798,"14.0-14.4":0.01331,"14.5-14.8":0.01686,"15.0-15.1":0.01419,"15.2-15.3":0.01153,"15.4":0.01242,"15.5":0.01331,"15.6-15.8":0.19251,"16.0":0.02395,"16.1":0.04436,"16.2":0.02307,"16.3":0.04258,"16.4":0.01065,"16.5":0.01774,"16.6-16.7":0.25993,"17.0":0.02218,"17.1":0.02661,"17.2":0.01952,"17.3":0.0275,"17.4":0.04524,"17.5":0.08605,"17.6-17.7":0.21114,"18.0":0.04702,"18.1":0.09936,"18.2":0.05323,"18.3":0.17299,"18.4":0.08871,"18.5-18.7":6.19491,"26.0":0.42494,"26.1":0.38768},P:{"28":0.27468,"29":3.03167,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.15603,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":1.5603},H:{"0":0},L:{"0":72.89053},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/NU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 3.5 3.6"},D:{"140":16.665,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"140":16.665,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00667,"5.0-5.1":0,"6.0-6.1":0.02667,"7.0-7.1":0.02,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06,"10.0-10.2":0.00667,"10.3":0.10667,"11.0-11.2":1.24006,"11.3-11.4":0.04,"12.0-12.1":0.01333,"12.2-12.5":0.31335,"13.0-13.1":0,"13.2":0.03334,"13.3":0.01333,"13.4-13.7":0.06,"14.0-14.4":0.10001,"14.5-14.8":0.12667,"15.0-15.1":0.10667,"15.2-15.3":0.08667,"15.4":0.09334,"15.5":0.10001,"15.6-15.8":1.44674,"16.0":0.18001,"16.1":0.33335,"16.2":0.17334,"16.3":0.32002,"16.4":0.08,"16.5":0.13334,"16.6-16.7":1.95343,"17.0":0.16668,"17.1":0.20001,"17.2":0.14667,"17.3":0.20668,"17.4":0.34002,"17.5":0.6467,"17.6-17.7":1.58675,"18.0":0.35335,"18.1":0.7467,"18.2":0.40002,"18.3":1.30007,"18.4":0.6667,"18.5-18.7":46.55566,"26.0":3.19349,"26.1":2.91348},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{_:"0"},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/NZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/NZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"37":0.01163,"48":0.02326,"52":0.01744,"78":0.01744,"88":0.00581,"102":0.00581,"115":0.14535,"125":0.00581,"128":0.01163,"135":0.00581,"136":0.01163,"138":0.01744,"139":0.01163,"140":0.06395,"141":0.00581,"142":0.01744,"143":0.03488,"144":0.9535,"145":1.14536,_:"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 33 34 35 36 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 137 146 147 148 3.5 3.6"},D:{"29":0.00581,"34":0.00581,"38":0.05814,"49":0.01744,"53":0.00581,"61":0.01163,"79":0.03488,"83":0.00581,"87":0.0407,"88":0.00581,"90":0.00581,"92":0.00581,"93":0.02326,"94":0.00581,"95":0.00581,"96":0.00581,"97":0.00581,"99":0.00581,"101":0.00581,"103":0.13954,"104":0.01163,"107":0.00581,"108":0.0407,"109":0.3721,"110":0.00581,"111":0.01163,"112":0.00581,"113":0.01163,"114":0.06977,"115":0.00581,"116":0.13954,"119":0.02907,"120":0.04651,"121":0.02326,"122":0.04651,"123":0.01163,"124":0.04651,"125":0.11047,"126":0.05814,"127":0.03488,"128":0.12209,"129":0.01744,"130":0.02326,"131":0.07558,"132":0.03488,"133":0.05814,"134":3.33724,"135":0.0407,"136":0.0814,"137":0.13372,"138":0.40698,"139":1.08722,"140":0.52326,"141":6.37214,"142":19.86062,"143":0.05814,"144":0.01744,_:"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 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 84 85 86 89 91 98 100 102 105 106 117 118 145 146"},F:{"46":0.00581,"92":0.01744,"95":0.02326,"102":0.00581,"119":0.00581,"120":0.01163,"121":0.00581,"122":0.41861,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00581,"92":0.00581,"105":0.00581,"109":0.01744,"111":0.00581,"113":0.00581,"114":0.00581,"120":0.00581,"123":0.00581,"124":0.00581,"126":0.00581,"127":0.01744,"131":0.01163,"132":0.01163,"133":0.00581,"134":0.01744,"135":0.02326,"136":0.00581,"137":0.01163,"138":0.01744,"139":0.02326,"140":0.05233,"141":0.89536,"142":6.83726,"143":0.01163,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 112 115 116 117 118 119 121 122 125 128 129 130"},E:{"4":0.00581,"13":0.01744,"14":0.01163,"15":0.00581,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00581,"13.1":0.0407,"14.1":0.06395,"15.1":0.01163,"15.2-15.3":0.01163,"15.4":0.01163,"15.5":0.01163,"15.6":0.34884,"16.0":0.03488,"16.1":0.04651,"16.2":0.03488,"16.3":0.04651,"16.4":0.01163,"16.5":0.01744,"16.6":0.42442,"17.0":0.00581,"17.1":0.43024,"17.2":0.01744,"17.3":0.04651,"17.4":0.05233,"17.5":0.09884,"17.6":0.3721,"18.0":0.05233,"18.1":0.06395,"18.2":0.02907,"18.3":0.16279,"18.4":0.09302,"18.5-18.6":0.3314,"26.0":0.44186,"26.1":0.51163,"26.2":0.01744},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00164,"5.0-5.1":0,"6.0-6.1":0.00656,"7.0-7.1":0.00492,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01476,"10.0-10.2":0.00164,"10.3":0.02624,"11.0-11.2":0.30506,"11.3-11.4":0.00984,"12.0-12.1":0.00328,"12.2-12.5":0.07708,"13.0-13.1":0,"13.2":0.0082,"13.3":0.00328,"13.4-13.7":0.01476,"14.0-14.4":0.0246,"14.5-14.8":0.03116,"15.0-15.1":0.02624,"15.2-15.3":0.02132,"15.4":0.02296,"15.5":0.0246,"15.6-15.8":0.3559,"16.0":0.04428,"16.1":0.08201,"16.2":0.04264,"16.3":0.07872,"16.4":0.01968,"16.5":0.0328,"16.6-16.7":0.48055,"17.0":0.041,"17.1":0.0492,"17.2":0.03608,"17.3":0.05084,"17.4":0.08365,"17.5":0.15909,"17.6-17.7":0.39034,"18.0":0.08693,"18.1":0.18369,"18.2":0.09841,"18.3":0.31982,"18.4":0.16401,"18.5-18.7":11.45283,"26.0":0.78561,"26.1":0.71672},P:{"4":0.07674,"21":0.02193,"22":0.17541,"23":0.01096,"24":0.01096,"25":0.03289,"26":0.03289,"27":0.03289,"28":0.25216,"29":2.65313,_:"20 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03289,"8.2":0.01096},I:{"0":0.03761,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.18833,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.12888,"9":0.01841,"10":0.03682,"11":0.03682,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00837},O:{"0":0.0293},H:{"0":0},L:{"0":23.86118},R:{_:"0"},M:{"0":0.50639}};
Index: de_modules/caniuse-lite/data/regions/OM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/OM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0166,"115":0.02076,"128":0.00415,"140":0.00415,"142":0.00415,"143":0.00415,"144":0.19925,"145":0.22415,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"48":0.00415,"59":0.00415,"66":0.00415,"68":0.00415,"69":0.0166,"73":0.0166,"75":0.0083,"78":0.00415,"79":0.01245,"83":0.02491,"87":0.04981,"88":0.0083,"91":0.00415,"93":0.0083,"94":0.00415,"95":0.00415,"98":0.03321,"99":0.00415,"101":0.00415,"103":0.23661,"104":0.0083,"108":0.00415,"109":0.52718,"110":0.0083,"111":0.02491,"112":11.86771,"114":0.05811,"115":0.00415,"116":0.03321,"119":0.01245,"120":0.01245,"121":0.00415,"122":0.07057,"123":0.01245,"124":0.0166,"125":0.22831,"126":1.29926,"127":0.00415,"128":0.02491,"129":0.0166,"130":0.01245,"131":0.07057,"132":0.03321,"133":0.02076,"134":0.02906,"135":0.04566,"136":0.09547,"137":0.05811,"138":0.24906,"139":0.07472,"140":0.24906,"141":3.39137,"142":10.14504,"143":0.02906,"144":0.00415,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 67 70 71 72 74 76 77 80 81 84 85 86 89 90 92 96 97 100 102 105 106 107 113 117 118 145 146"},F:{"79":0.0083,"92":0.04566,"93":0.00415,"95":0.00415,"121":0.00415,"122":0.10793,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00415,"92":0.00415,"108":0.00415,"109":0.01245,"114":0.27812,"130":0.00415,"131":0.00415,"135":0.00415,"136":0.0083,"137":0.00415,"138":0.0083,"139":0.01245,"140":0.02076,"141":0.21585,"142":1.92191,"143":0.00415,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 132 133 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.4 15.5 16.0 16.1 16.4 17.0 17.2 18.0 26.2","5.1":0.00415,"13.1":0.0166,"14.1":0.0083,"15.2-15.3":0.00415,"15.6":0.05811,"16.2":0.00415,"16.3":0.01245,"16.5":0.00415,"16.6":0.03736,"17.1":0.02076,"17.3":0.00415,"17.4":0.00415,"17.5":0.0083,"17.6":0.04151,"18.1":0.00415,"18.2":0.00415,"18.3":0.0166,"18.4":0.0083,"18.5-18.6":0.06642,"26.0":0.09962,"26.1":0.07472},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00096,"5.0-5.1":0,"6.0-6.1":0.00384,"7.0-7.1":0.00288,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00865,"10.0-10.2":0.00096,"10.3":0.01538,"11.0-11.2":0.17874,"11.3-11.4":0.00577,"12.0-12.1":0.00192,"12.2-12.5":0.04517,"13.0-13.1":0,"13.2":0.0048,"13.3":0.00192,"13.4-13.7":0.00865,"14.0-14.4":0.01441,"14.5-14.8":0.01826,"15.0-15.1":0.01538,"15.2-15.3":0.01249,"15.4":0.01345,"15.5":0.01441,"15.6-15.8":0.20853,"16.0":0.02595,"16.1":0.04805,"16.2":0.02499,"16.3":0.04613,"16.4":0.01153,"16.5":0.01922,"16.6-16.7":0.28157,"17.0":0.02402,"17.1":0.02883,"17.2":0.02114,"17.3":0.02979,"17.4":0.04901,"17.5":0.09322,"17.6-17.7":0.22872,"18.0":0.05093,"18.1":0.10763,"18.2":0.05766,"18.3":0.18739,"18.4":0.0961,"18.5-18.7":6.7106,"26.0":0.46031,"26.1":0.41995},P:{"4":0.04134,"20":0.01034,"21":0.01034,"22":0.01034,"23":0.03101,"24":0.02067,"25":0.03101,"26":0.03101,"27":0.09302,"28":0.33075,"29":1.59173,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0 18.0 19.0","7.2-7.4":0.02067,"11.1-11.2":0.01034,"13.0":0.01034,"16.0":0.01034,"17.0":0.01034},I:{"0":0.07009,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.91244,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02657,"9":0.01328,"10":0.01328,"11":0.01328,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00585},O:{"0":0.52056},H:{"0":0},L:{"0":52.47967},R:{_:"0"},M:{"0":0.16377}};
Index: de_modules/caniuse-lite/data/regions/PA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.02224,"5":0.02224,"115":0.01483,"120":0.02224,"128":0.00741,"139":0.02966,"140":0.01483,"142":0.02224,"143":0.04448,"144":0.67467,"145":0.33363,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 141 146 147 148 3.5 3.6"},D:{"69":0.02966,"79":0.02224,"83":0.00741,"87":0.03707,"97":0.00741,"99":0.00741,"101":0.00741,"103":0.01483,"104":0.01483,"108":0.00741,"109":0.20018,"110":0.00741,"111":0.06673,"112":17.77877,"114":0.01483,"116":0.02966,"119":0.02966,"120":0.01483,"121":0.00741,"122":0.08897,"123":0.00741,"124":0.04448,"125":19.36537,"126":3.93683,"127":0.00741,"128":0.02224,"129":0.00741,"130":0.01483,"131":0.04448,"132":0.0519,"133":0.01483,"134":0.07414,"135":0.03707,"136":0.02224,"137":0.02224,"138":0.14828,"139":0.14087,"140":0.41518,"141":4.84876,"142":11.79567,"143":0.02966,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 84 85 86 88 89 90 91 92 93 94 95 96 98 100 102 105 106 107 113 115 117 118 144 145 146"},F:{"92":0.01483,"95":0.01483,"119":0.02224,"122":0.4745,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00741,"109":0.00741,"114":0.58571,"125":0.00741,"127":0.03707,"131":0.00741,"132":0.00741,"134":0.00741,"136":0.00741,"137":0.00741,"138":0.01483,"139":0.01483,"140":0.05931,"141":0.72657,"142":3.45492,"143":0.00741,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 126 128 129 130 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.3 16.4 16.5 17.0","15.5":0.00741,"15.6":0.05931,"16.2":0.00741,"16.6":0.09638,"17.1":0.02966,"17.2":0.02966,"17.3":0.04448,"17.4":0.03707,"17.5":0.07414,"17.6":0.08155,"18.0":0.00741,"18.1":0.01483,"18.2":0.11121,"18.3":0.13345,"18.4":0.11121,"18.5-18.6":0.17794,"26.0":0.3188,"26.1":0.2669,"26.2":0.01483},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00061,"5.0-5.1":0,"6.0-6.1":0.00245,"7.0-7.1":0.00183,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0055,"10.0-10.2":0.00061,"10.3":0.00978,"11.0-11.2":0.11371,"11.3-11.4":0.00367,"12.0-12.1":0.00122,"12.2-12.5":0.02873,"13.0-13.1":0,"13.2":0.00306,"13.3":0.00122,"13.4-13.7":0.0055,"14.0-14.4":0.00917,"14.5-14.8":0.01162,"15.0-15.1":0.00978,"15.2-15.3":0.00795,"15.4":0.00856,"15.5":0.00917,"15.6-15.8":0.13266,"16.0":0.01651,"16.1":0.03057,"16.2":0.0159,"16.3":0.02934,"16.4":0.00734,"16.5":0.01223,"16.6-16.7":0.17913,"17.0":0.01528,"17.1":0.01834,"17.2":0.01345,"17.3":0.01895,"17.4":0.03118,"17.5":0.0593,"17.6-17.7":0.1455,"18.0":0.0324,"18.1":0.06847,"18.2":0.03668,"18.3":0.11921,"18.4":0.06114,"18.5-18.7":4.26907,"26.0":0.29284,"26.1":0.26716},P:{"20":0.01063,"22":0.08506,"24":0.02127,"25":0.01063,"26":0.01063,"27":0.0319,"28":0.15949,"29":1.33971,_:"4 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02127},I:{"0":0.01033,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.13959,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00259},O:{"0":0.0698},H:{"0":0},L:{"0":20.79039},R:{_:"0"},M:{"0":0.14993}};
Index: de_modules/caniuse-lite/data/regions/PE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.02743,"5":0.00686,"88":0.00686,"115":0.15773,"120":0.00686,"122":0.00686,"123":0.00686,"125":0.00686,"128":0.00686,"136":0.00686,"140":0.01372,"141":0.00686,"142":0.00686,"143":0.01372,"144":0.4732,"145":0.56921,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 124 126 127 129 130 131 132 133 134 135 137 138 139 146 147 148 3.5 3.6"},D:{"38":0.00686,"47":0.00686,"49":0.00686,"69":0.00686,"78":0.00686,"79":0.09601,"81":0.00686,"85":0.00686,"87":0.06858,"88":0.00686,"89":0.00686,"91":0.00686,"93":0.00686,"94":0.00686,"95":0.02057,"96":0.00686,"97":0.03429,"99":0.00686,"100":0.00686,"101":0.00686,"102":0.01372,"103":0.01372,"104":0.02057,"106":0.00686,"107":0.00686,"108":0.03429,"109":1.08356,"110":0.02057,"111":0.04801,"112":11.69289,"114":0.04801,"116":0.09601,"117":0.00686,"119":0.01372,"120":0.03429,"121":0.06172,"122":0.11659,"123":0.02057,"124":0.04115,"125":2.86664,"126":1.61849,"127":0.03429,"128":0.04115,"129":0.01372,"130":0.02057,"131":0.11659,"132":0.04801,"133":0.04801,"134":0.05486,"135":0.10287,"136":0.06172,"137":0.08915,"138":0.2606,"139":0.28804,"140":0.58293,"141":6.65912,"142":26.27986,"143":0.04801,"144":0.00686,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 83 84 86 90 92 98 105 113 115 118 145 146"},F:{"92":0.05486,"95":0.02057,"114":0.00686,"120":0.00686,"122":1.07671,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00686,"85":0.00686,"92":0.01372,"109":0.01372,"114":0.06858,"121":0.00686,"122":0.01372,"130":0.00686,"131":0.00686,"133":0.00686,"134":0.00686,"135":0.00686,"136":0.00686,"137":0.00686,"138":0.02057,"139":0.02057,"140":0.04801,"141":0.48692,"142":3.74447,"143":0.01372,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 124 125 126 127 128 129 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0 26.2","5.1":0.00686,"13.1":0.00686,"14.1":0.00686,"15.6":0.04115,"16.3":0.00686,"16.4":0.00686,"16.5":0.02057,"16.6":0.03429,"17.1":0.01372,"17.2":0.00686,"17.3":0.01372,"17.4":0.01372,"17.5":0.01372,"17.6":0.04115,"18.0":0.00686,"18.1":0.00686,"18.2":0.02057,"18.3":0.02743,"18.4":0.03429,"18.5-18.6":0.05486,"26.0":0.12344,"26.1":0.1303},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00036,"5.0-5.1":0,"6.0-6.1":0.00144,"7.0-7.1":0.00108,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00324,"10.0-10.2":0.00036,"10.3":0.00576,"11.0-11.2":0.06694,"11.3-11.4":0.00216,"12.0-12.1":0.00072,"12.2-12.5":0.01691,"13.0-13.1":0,"13.2":0.0018,"13.3":0.00072,"13.4-13.7":0.00324,"14.0-14.4":0.0054,"14.5-14.8":0.00684,"15.0-15.1":0.00576,"15.2-15.3":0.00468,"15.4":0.00504,"15.5":0.0054,"15.6-15.8":0.07809,"16.0":0.00972,"16.1":0.01799,"16.2":0.00936,"16.3":0.01727,"16.4":0.00432,"16.5":0.0072,"16.6-16.7":0.10544,"17.0":0.009,"17.1":0.0108,"17.2":0.00792,"17.3":0.01116,"17.4":0.01835,"17.5":0.03491,"17.6-17.7":0.08565,"18.0":0.01907,"18.1":0.04031,"18.2":0.02159,"18.3":0.07018,"18.4":0.03599,"18.5-18.7":2.513,"26.0":0.17238,"26.1":0.15726},P:{"4":0.08352,"21":0.01044,"22":0.02088,"23":0.03132,"24":0.01044,"25":0.02088,"26":0.02088,"27":0.10441,"28":0.09396,"29":0.46982,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04176},I:{"0":0.02825,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.23258,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05486,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00629},H:{"0":0},L:{"0":29.91197},R:{_:"0"},M:{"0":0.11943}};
Index: de_modules/caniuse-lite/data/regions/PF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"68":0.00207,"78":0.00207,"102":0.00207,"115":0.16377,"128":0.00415,"130":0.00207,"131":0.00207,"134":0.00207,"135":0.01037,"136":0.00829,"138":0.00207,"139":0.00622,"140":0.09536,"141":0.00829,"142":0.0311,"143":0.01037,"144":0.63641,"145":1.24795,"146":0.00207,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 132 133 137 147 148 3.5 3.6"},D:{"70":0.00415,"79":0.00415,"84":0.00207,"87":0.00207,"100":0.00622,"103":0.0539,"107":0.00207,"109":0.1078,"116":0.05804,"119":0.00829,"120":0.00207,"121":0.00415,"122":0.03939,"123":0.00415,"125":0.03731,"126":0.00207,"128":0.0311,"130":0.03317,"131":0.01244,"132":0.00207,"133":0.00829,"134":0.02073,"135":0.00622,"136":0.00207,"137":0.01451,"138":0.07877,"139":0.06634,"140":0.09121,"141":1.16295,"142":5.27786,"143":0.00622,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 80 81 83 85 86 88 89 90 91 92 93 94 95 96 97 98 99 101 102 104 105 106 108 110 111 112 113 114 115 117 118 124 127 129 144 145 146"},F:{"92":0.00622,"95":0.00207,"102":0.00207,"119":0.00207,"122":0.07256,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.00207,"109":0.02902,"114":0.00415,"120":0.00415,"122":0.00207,"125":0.00207,"131":0.00415,"133":0.00415,"134":0.00207,"137":0.00207,"138":0.00207,"139":0.01244,"140":0.01244,"141":0.17828,"142":2.36115,"143":0.00622,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 124 126 127 128 129 130 132 135 136"},E:{"8":0.00207,"13":0.01037,"14":0.00415,"15":0.00207,_:"0 4 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.01658,"14.1":0.02073,"15.1":0.00415,"15.2-15.3":0.01037,"15.4":0.00207,"15.5":0.00622,"15.6":0.07463,"16.0":0.00829,"16.1":0.24461,"16.2":0.00829,"16.3":0.03731,"16.4":0.02073,"16.5":0.10365,"16.6":0.60324,"17.0":0.00622,"17.1":0.54105,"17.2":0.09536,"17.3":0.02488,"17.4":0.29644,"17.5":0.10987,"17.6":1.14015,"18.0":0.00207,"18.1":0.01037,"18.2":0.00622,"18.3":0.10365,"18.4":0.02902,"18.5-18.6":0.25083,"26.0":0.25913,"26.1":0.25913,"26.2":0.01244},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0,"6.0-6.1":0.00403,"7.0-7.1":0.00302,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00907,"10.0-10.2":0.00101,"10.3":0.01613,"11.0-11.2":0.18755,"11.3-11.4":0.00605,"12.0-12.1":0.00202,"12.2-12.5":0.04739,"13.0-13.1":0,"13.2":0.00504,"13.3":0.00202,"13.4-13.7":0.00907,"14.0-14.4":0.01512,"14.5-14.8":0.01916,"15.0-15.1":0.01613,"15.2-15.3":0.01311,"15.4":0.01412,"15.5":0.01512,"15.6-15.8":0.2188,"16.0":0.02722,"16.1":0.05042,"16.2":0.02622,"16.3":0.0484,"16.4":0.0121,"16.5":0.02017,"16.6-16.7":0.29544,"17.0":0.02521,"17.1":0.03025,"17.2":0.02218,"17.3":0.03126,"17.4":0.05142,"17.5":0.09781,"17.6-17.7":0.23998,"18.0":0.05344,"18.1":0.11293,"18.2":0.0605,"18.3":0.19662,"18.4":0.10083,"18.5-18.7":7.04106,"26.0":0.48298,"26.1":0.44063},P:{"24":0.01025,"25":0.03076,"26":0.02051,"27":0.01025,"28":0.47169,"29":1.68169,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01025},I:{"0":0.16623,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.03549,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00207,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.84026},H:{"0":0.02},L:{"0":67.88596},R:{_:"0"},M:{"0":0.13476}};
Index: de_modules/caniuse-lite/data/regions/PG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"49":0.00391,"68":0.00391,"78":0.00391,"115":0.0313,"126":0.00782,"127":0.00391,"139":0.00391,"140":0.01174,"141":0.00782,"142":0.01174,"143":0.02347,"144":0.29731,"145":0.18778,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 128 129 130 131 132 133 134 135 136 137 138 146 147 148 3.5 3.6"},D:{"26":0.00391,"38":0.00391,"60":0.00391,"67":0.00782,"69":0.00391,"72":0.00391,"78":0.00391,"84":0.00391,"87":0.01174,"88":0.04303,"89":0.00391,"91":0.00391,"94":0.02347,"95":0.00391,"97":0.00782,"99":0.01174,"100":0.00391,"102":0.00391,"103":0.00782,"105":0.01956,"106":0.00391,"109":0.1956,"110":0.00782,"111":0.01565,"114":0.01956,"115":0.00391,"116":0.0313,"117":0.00782,"118":0.00391,"119":0.01565,"120":0.0978,"121":0.01565,"122":0.0313,"123":0.01174,"124":0.01956,"125":0.08606,"126":0.03912,"127":0.02347,"128":0.17604,"129":0.00782,"130":0.01174,"131":0.07824,"132":0.03521,"133":0.0313,"134":0.02347,"135":0.05086,"136":0.03521,"137":0.2934,"138":0.12127,"139":0.15257,"140":0.21516,"141":1.9873,"142":6.50957,"143":0.01956,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 68 70 71 73 74 75 76 77 79 80 81 83 85 86 90 92 93 96 98 101 104 107 108 112 113 144 145 146"},F:{"87":0.00391,"89":0.00391,"90":0.00391,"91":0.01174,"92":0.11345,"93":0.01174,"95":0.00391,"113":0.00391,"114":0.00391,"116":0.00391,"120":0.01565,"122":0.10171,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00782,"13":0.00391,"14":0.00391,"15":0.00391,"16":0.00391,"17":0.00391,"18":0.05477,"84":0.00782,"89":0.01174,"90":0.00782,"92":0.05477,"100":0.03912,"110":0.00391,"112":0.00391,"114":0.02347,"116":0.00391,"117":0.00391,"120":0.00782,"122":0.01174,"124":0.00782,"125":0.01174,"126":0.01956,"127":0.00391,"128":0.00782,"129":0.00782,"130":0.00782,"131":0.00782,"132":0.03521,"133":0.01565,"134":0.01565,"135":0.01174,"136":0.01565,"137":0.01565,"138":0.13692,"139":0.05868,"140":0.10954,"141":0.6846,"142":4.13498,"143":0.00391,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 111 113 115 118 119 121 123"},E:{"15":0.01174,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.5 17.0 17.3 18.1 18.3 18.4 26.2","13.1":0.00782,"14.1":0.00391,"15.1":0.01174,"15.6":0.00782,"16.0":0.00391,"16.1":0.00391,"16.2":0.17995,"16.3":0.03521,"16.4":0.00391,"16.6":0.00391,"17.1":0.11345,"17.2":0.03521,"17.4":0.00782,"17.5":0.00782,"17.6":0.00782,"18.0":0.00391,"18.2":0.00391,"18.5-18.6":0.00782,"26.0":0.01956,"26.1":0.01956},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00024,"5.0-5.1":0,"6.0-6.1":0.00097,"7.0-7.1":0.00073,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00218,"10.0-10.2":0.00024,"10.3":0.00388,"11.0-11.2":0.04507,"11.3-11.4":0.00145,"12.0-12.1":0.00048,"12.2-12.5":0.01139,"13.0-13.1":0,"13.2":0.00121,"13.3":0.00048,"13.4-13.7":0.00218,"14.0-14.4":0.00363,"14.5-14.8":0.0046,"15.0-15.1":0.00388,"15.2-15.3":0.00315,"15.4":0.00339,"15.5":0.00363,"15.6-15.8":0.05258,"16.0":0.00654,"16.1":0.01212,"16.2":0.0063,"16.3":0.01163,"16.4":0.00291,"16.5":0.00485,"16.6-16.7":0.07099,"17.0":0.00606,"17.1":0.00727,"17.2":0.00533,"17.3":0.00751,"17.4":0.01236,"17.5":0.0235,"17.6-17.7":0.05767,"18.0":0.01284,"18.1":0.02714,"18.2":0.01454,"18.3":0.04725,"18.4":0.02423,"18.5-18.7":1.692,"26.0":0.11606,"26.1":0.10589},P:{"4":0.01027,"20":0.02054,"21":0.02054,"22":0.08217,"23":0.02054,"24":0.12325,"25":0.60598,"26":0.11298,"27":0.32867,"28":0.68815,"29":0.94492,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0","7.2-7.4":0.03081,"14.0":0.01027,"18.0":0.01027,"19.0":0.01027},I:{"0":0.43164,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00022},K:{"0":1.0254,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.01434,"11":0.02869,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{"2.5":0.00609,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.06697},O:{"0":0.48095},H:{"0":0.04},L:{"0":72.91287},R:{_:"0"},M:{"0":0.38354}};
Index: de_modules/caniuse-lite/data/regions/PH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00356,"59":0.00356,"98":0.00356,"101":0.00356,"115":0.02848,"122":0.00356,"123":0.01068,"127":0.01068,"128":0.68708,"132":0.00356,"136":0.00712,"140":0.01068,"142":0.00356,"143":0.00712,"144":0.2314,"145":0.36668,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 124 125 126 129 130 131 133 134 135 137 138 139 141 146 147 148 3.5 3.6"},D:{"51":0.03204,"66":0.01424,"69":0.00356,"75":0.00356,"76":0.0178,"79":0.00712,"83":0.00356,"87":0.01424,"91":0.04628,"92":0.00356,"93":0.12104,"94":0.00712,"102":0.00356,"103":0.43432,"104":0.00356,"105":0.11392,"106":0.00356,"108":0.01424,"109":0.41652,"110":0.00356,"111":0.01424,"113":0.00712,"114":0.0712,"115":0.00356,"116":0.04984,"117":0.00356,"119":0.01068,"120":0.04272,"121":0.02492,"122":0.04984,"123":0.02136,"124":0.03204,"125":0.1068,"126":0.28124,"127":0.02492,"128":0.06408,"129":0.0178,"130":0.03204,"131":0.09968,"132":0.08544,"133":0.04628,"134":0.04984,"135":0.0712,"136":0.089,"137":0.13528,"138":0.33464,"139":0.14952,"140":0.31328,"141":4.67784,"142":17.40484,"143":0.02848,"144":0.00356,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 73 74 77 78 80 81 84 85 86 88 89 90 95 96 97 98 99 100 101 107 112 118 145 146"},F:{"92":0.01068,"95":0.00356,"121":0.01424,"122":0.29192,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00356,"92":0.00356,"102":0.00356,"109":0.01068,"114":0.07476,"121":0.00356,"122":0.00712,"128":0.00356,"131":0.00356,"133":0.00356,"134":0.00712,"135":0.00356,"136":0.00712,"137":0.00356,"138":0.00712,"139":0.0712,"140":0.02848,"141":0.35244,"142":2.82308,"143":0.00712,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 124 125 126 127 129 130 132"},E:{"14":0.01424,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.5 16.0","11.1":0.00356,"13.1":0.01424,"14.1":0.01424,"15.1":0.0178,"15.4":0.00356,"15.6":0.02492,"16.1":0.00356,"16.2":0.00356,"16.3":0.00712,"16.4":0.01068,"16.5":0.01068,"16.6":0.02848,"17.0":0.00356,"17.1":0.0178,"17.2":0.00712,"17.3":0.04984,"17.4":0.01068,"17.5":0.01424,"17.6":0.1246,"18.0":0.00712,"18.1":0.02848,"18.2":0.00712,"18.3":0.03204,"18.4":0.01068,"18.5-18.6":0.0712,"26.0":0.14596,"26.1":0.1068,"26.2":0.00356},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0.00141,"7.0-7.1":0.00106,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00317,"10.0-10.2":0.00035,"10.3":0.00564,"11.0-11.2":0.06552,"11.3-11.4":0.00211,"12.0-12.1":0.0007,"12.2-12.5":0.01656,"13.0-13.1":0,"13.2":0.00176,"13.3":0.0007,"13.4-13.7":0.00317,"14.0-14.4":0.00528,"14.5-14.8":0.00669,"15.0-15.1":0.00564,"15.2-15.3":0.00458,"15.4":0.00493,"15.5":0.00528,"15.6-15.8":0.07644,"16.0":0.00951,"16.1":0.01761,"16.2":0.00916,"16.3":0.01691,"16.4":0.00423,"16.5":0.00705,"16.6-16.7":0.10321,"17.0":0.00881,"17.1":0.01057,"17.2":0.00775,"17.3":0.01092,"17.4":0.01797,"17.5":0.03417,"17.6-17.7":0.08384,"18.0":0.01867,"18.1":0.03945,"18.2":0.02114,"18.3":0.06869,"18.4":0.03523,"18.5-18.7":2.45989,"26.0":0.16874,"26.1":0.15394},P:{"24":0.01096,"25":0.01096,"26":0.01096,"27":0.02192,"28":0.06577,"29":0.38366,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01096},I:{"0":0.32798,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":0.10304,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.11036,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0322},H:{"0":0},L:{"0":62.16288},R:{_:"0"},M:{"0":0.04508}};
Index: de_modules/caniuse-lite/data/regions/PK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0081,"52":0.00405,"112":0.00405,"115":0.14978,"127":0.00405,"128":0.00405,"133":0.00405,"134":0.0081,"135":0.00405,"136":0.00405,"137":0.00405,"138":0.00405,"139":0.00405,"140":0.01214,"141":0.00405,"142":0.00405,"143":0.01619,"144":0.25502,"145":0.27931,"146":0.00405,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 147 148 3.5 3.6"},D:{"29":0.00405,"43":0.00405,"49":0.00405,"50":0.00405,"56":0.0081,"62":0.00405,"63":0.00405,"64":0.00405,"65":0.00405,"66":0.00405,"68":0.01214,"69":0.01619,"70":0.00405,"71":0.0081,"72":0.0081,"73":0.0081,"74":0.01619,"75":0.0081,"76":0.00405,"77":0.01214,"78":0.00405,"79":0.00405,"80":0.01214,"81":0.00405,"83":0.0081,"84":0.00405,"85":0.00405,"86":0.01619,"87":0.01214,"89":0.00405,"91":0.01214,"92":0.00405,"93":0.02834,"94":0.00405,"95":0.00405,"96":0.00405,"99":0.00405,"100":0.00405,"102":0.02429,"103":0.1012,"104":0.02834,"105":0.00405,"106":0.00405,"107":0.00405,"108":0.0081,"109":1.6192,"110":0.00405,"111":0.01214,"112":4.50947,"113":0.00405,"114":0.01214,"115":0.00405,"116":0.05667,"117":0.00405,"118":0.00405,"119":0.01619,"120":0.02024,"121":0.01214,"122":0.04453,"123":0.01214,"124":0.01214,"125":1.15773,"126":0.66387,"127":0.01214,"128":0.03238,"129":0.01619,"130":0.02834,"131":0.08906,"132":0.17811,"133":0.04048,"134":0.05667,"135":0.05262,"136":0.06072,"137":0.08096,"138":0.25907,"139":0.2105,"140":0.55458,"141":4.92237,"142":13.48389,"143":0.05667,"144":0.0081,_:"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 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 51 52 53 54 55 57 58 59 60 61 67 88 90 97 98 101 145 146"},F:{"92":0.06072,"93":0.01214,"95":0.03238,"114":0.0081,"117":0.00405,"120":0.00405,"122":0.11739,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.0081,"15":0.00405,"16":0.00405,"18":0.01214,"92":0.02834,"100":0.00405,"109":0.01214,"110":0.00405,"113":0.00405,"114":0.08096,"122":0.00405,"131":0.01619,"132":0.01619,"133":0.0081,"134":0.0081,"135":0.0081,"136":0.01214,"137":0.00405,"138":0.0081,"139":0.01619,"140":0.01619,"141":0.16192,"142":1.23464,_:"13 14 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 18.1 26.2","5.1":0.00405,"13.1":0.00405,"14.1":0.00405,"15.2-15.3":0.00405,"15.6":0.01214,"16.6":0.01214,"17.1":0.01214,"17.2":0.00405,"17.3":0.00405,"17.4":0.00405,"17.5":0.00405,"17.6":0.02429,"18.0":0.00405,"18.2":0.0081,"18.3":0.0081,"18.4":0.0081,"18.5-18.6":0.01619,"26.0":0.03643,"26.1":0.02834},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00027,"5.0-5.1":0,"6.0-6.1":0.00109,"7.0-7.1":0.00081,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00244,"10.0-10.2":0.00027,"10.3":0.00434,"11.0-11.2":0.05047,"11.3-11.4":0.00163,"12.0-12.1":0.00054,"12.2-12.5":0.01275,"13.0-13.1":0,"13.2":0.00136,"13.3":0.00054,"13.4-13.7":0.00244,"14.0-14.4":0.00407,"14.5-14.8":0.00516,"15.0-15.1":0.00434,"15.2-15.3":0.00353,"15.4":0.0038,"15.5":0.00407,"15.6-15.8":0.05889,"16.0":0.00733,"16.1":0.01357,"16.2":0.00706,"16.3":0.01303,"16.4":0.00326,"16.5":0.00543,"16.6-16.7":0.07951,"17.0":0.00678,"17.1":0.00814,"17.2":0.00597,"17.3":0.00841,"17.4":0.01384,"17.5":0.02632,"17.6-17.7":0.06459,"18.0":0.01438,"18.1":0.03039,"18.2":0.01628,"18.3":0.05292,"18.4":0.02714,"18.5-18.7":1.89495,"26.0":0.12998,"26.1":0.11859},P:{"4":0.0221,"24":0.01105,"25":0.03316,"26":0.04421,"27":0.0221,"28":0.08841,"29":0.44207,_:"20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.01105,"17.0":0.0221},I:{"0":0.0416,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.6672,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01652,"9":0.00551,"10":0.00551,"11":0.11011,_:"6 7 5.5"},N:{_:"10 11"},S:{"2.5":0.05951,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":1.95788},H:{"0":0.13},L:{"0":60.0482},R:{_:"0"},M:{"0":0.05356}};
Index: de_modules/caniuse-lite/data/regions/PL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"47":0.00638,"52":0.03827,"77":0.01276,"78":0.00638,"110":0.00638,"113":0.00638,"115":0.39544,"120":0.00638,"127":0.00638,"128":0.04465,"131":0.00638,"133":0.01276,"134":0.00638,"135":0.00638,"136":0.01913,"137":0.00638,"138":0.00638,"139":0.01913,"140":0.2615,"141":0.01913,"142":0.03827,"143":0.0574,"144":2.00907,"145":2.44915,"146":0.00638,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 114 116 117 118 119 121 122 123 124 125 126 129 130 132 147 148 3.5 3.6"},D:{"39":0.00638,"40":0.00638,"41":0.01276,"42":0.00638,"43":0.00638,"44":0.00638,"45":0.01276,"46":0.01276,"47":0.00638,"48":0.00638,"49":0.01276,"50":0.00638,"51":0.00638,"52":0.00638,"53":0.00638,"54":0.00638,"55":0.00638,"56":0.01276,"57":0.01276,"58":0.01276,"59":0.00638,"60":0.01276,"79":0.39544,"85":0.00638,"87":0.01913,"89":0.01276,"90":0.00638,"99":0.07016,"102":0.00638,"103":0.01913,"104":0.01276,"107":0.00638,"108":0.00638,"109":0.68882,"111":0.57402,"112":0.00638,"113":0.00638,"114":0.02551,"115":0.00638,"116":0.05102,"117":0.00638,"118":0.04465,"119":0.00638,"120":0.03189,"121":0.01276,"122":0.08291,"123":0.28701,"124":0.01913,"125":0.06378,"126":0.04465,"127":0.02551,"128":0.03189,"129":0.01913,"130":0.08929,"131":0.29977,"132":0.21685,"133":0.05102,"134":0.05102,"135":0.0574,"136":0.07654,"137":0.22961,"138":0.16583,"139":0.28701,"140":0.28701,"141":4.91744,"142":22.76946,"143":0.03827,"144":0.01913,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 86 88 91 92 93 94 95 96 97 98 100 101 105 106 110 145 146"},F:{"85":0.00638,"92":0.10843,"93":0.01913,"95":0.14032,"114":0.00638,"118":0.01276,"119":0.01276,"120":0.01913,"121":0.01276,"122":5.27461,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00638,"109":0.08929,"114":0.00638,"120":0.00638,"130":0.00638,"131":0.00638,"132":0.00638,"133":0.00638,"134":0.00638,"135":0.01276,"136":0.01276,"137":0.01276,"138":0.01913,"139":0.02551,"140":0.03189,"141":0.44646,"142":4.51562,"143":0.00638,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 122 123 124 125 126 127 128 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2","13.1":0.00638,"14.1":0.00638,"15.6":0.03189,"16.1":0.00638,"16.3":0.00638,"16.4":0.00638,"16.5":0.00638,"16.6":0.05102,"17.0":0.00638,"17.1":0.02551,"17.2":0.00638,"17.3":0.00638,"17.4":0.01913,"17.5":0.01913,"17.6":0.08291,"18.0":0.01276,"18.1":0.01913,"18.2":0.00638,"18.3":0.03827,"18.4":0.01276,"18.5-18.6":0.07016,"26.0":0.2041,"26.1":0.24236,"26.2":0.01276},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00082,"5.0-5.1":0,"6.0-6.1":0.00327,"7.0-7.1":0.00246,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00737,"10.0-10.2":0.00082,"10.3":0.0131,"11.0-11.2":0.15225,"11.3-11.4":0.00491,"12.0-12.1":0.00164,"12.2-12.5":0.03847,"13.0-13.1":0,"13.2":0.00409,"13.3":0.00164,"13.4-13.7":0.00737,"14.0-14.4":0.01228,"14.5-14.8":0.01555,"15.0-15.1":0.0131,"15.2-15.3":0.01064,"15.4":0.01146,"15.5":0.01228,"15.6-15.8":0.17763,"16.0":0.0221,"16.1":0.04093,"16.2":0.02128,"16.3":0.03929,"16.4":0.00982,"16.5":0.01637,"16.6-16.7":0.23984,"17.0":0.02046,"17.1":0.02456,"17.2":0.01801,"17.3":0.02538,"17.4":0.04175,"17.5":0.0794,"17.6-17.7":0.19482,"18.0":0.04338,"18.1":0.09168,"18.2":0.04911,"18.3":0.15962,"18.4":0.08186,"18.5-18.7":5.71609,"26.0":0.3921,"26.1":0.35772},P:{"4":0.32932,"22":0.01029,"23":0.01029,"24":0.01029,"25":0.01029,"26":0.03087,"27":0.03087,"28":0.15437,"29":1.5437,_:"20 21 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01029},I:{"0":0.0217,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.69905,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00638,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03622},H:{"0":0},L:{"0":27.47113},R:{_:"0"},M:{"0":0.34771}};
Index: de_modules/caniuse-lite/data/regions/PM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.02031,"128":0.0457,"142":0.20312,"143":0.01016,"144":0.66522,"145":0.60936,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 141 146 147 148 3.5 3.6"},D:{"109":0.26913,"116":0.01016,"123":0.01016,"125":0.02031,"126":0.05586,"131":0.02031,"133":0.02031,"134":0.01016,"136":0.01016,"138":0.03555,"139":0.16757,"140":0.54335,"141":3.13313,"142":11.3798,"143":0.05586,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 124 127 128 129 130 132 135 137 144 145 146"},F:{"40":0.02539,"122":0.11172,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"128":0.03555,"141":0.26913,"142":1.35075,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.4 16.0 18.2","14.1":0.01016,"15.1":0.01016,"15.2-15.3":0.01016,"15.5":0.01016,"15.6":0.37069,"16.1":0.26913,"16.2":0.12187,"16.3":0.43163,"16.4":0.05586,"16.5":0.42655,"16.6":4.31122,"17.0":0.02031,"17.1":2.21909,"17.2":0.17773,"17.3":0.14726,"17.4":1.35583,"17.5":0.78709,"17.6":11.49151,"18.0":0.02539,"18.1":0.06601,"18.3":0.20312,"18.4":0.11172,"18.5-18.6":0.57381,"26.0":0.43163,"26.1":0.9699,"26.2":0.01016},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00363,"5.0-5.1":0,"6.0-6.1":0.01451,"7.0-7.1":0.01089,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03266,"10.0-10.2":0.00363,"10.3":0.05806,"11.0-11.2":0.6749,"11.3-11.4":0.02177,"12.0-12.1":0.00726,"12.2-12.5":0.17054,"13.0-13.1":0,"13.2":0.01814,"13.3":0.00726,"13.4-13.7":0.03266,"14.0-14.4":0.05443,"14.5-14.8":0.06894,"15.0-15.1":0.05806,"15.2-15.3":0.04717,"15.4":0.0508,"15.5":0.05443,"15.6-15.8":0.78738,"16.0":0.09797,"16.1":0.18142,"16.2":0.09434,"16.3":0.17417,"16.4":0.04354,"16.5":0.07257,"16.6-16.7":1.06315,"17.0":0.09071,"17.1":0.10885,"17.2":0.07983,"17.3":0.11248,"17.4":0.18505,"17.5":0.35196,"17.6-17.7":0.86358,"18.0":0.19231,"18.1":0.40639,"18.2":0.21771,"18.3":0.70756,"18.4":0.36285,"18.5-18.7":25.3378,"26.0":1.73805,"26.1":1.58565},P:{"29":0.5365,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.01969,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":12.54147},R:{_:"0"},M:{"0":0.12305}};
Index: de_modules/caniuse-lite/data/regions/PN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"145":5.13056,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 146 147 148 3.5 3.6"},D:{"142":15.384,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"142":51.28256,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00185,"5.0-5.1":0,"6.0-6.1":0.00739,"7.0-7.1":0.00554,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01662,"10.0-10.2":0.00185,"10.3":0.02954,"11.0-11.2":0.34343,"11.3-11.4":0.01108,"12.0-12.1":0.00369,"12.2-12.5":0.08678,"13.0-13.1":0,"13.2":0.00923,"13.3":0.00369,"13.4-13.7":0.01662,"14.0-14.4":0.0277,"14.5-14.8":0.03508,"15.0-15.1":0.02954,"15.2-15.3":0.024,"15.4":0.02585,"15.5":0.0277,"15.6-15.8":0.40067,"16.0":0.04985,"16.1":0.09232,"16.2":0.04801,"16.3":0.08863,"16.4":0.02216,"16.5":0.03693,"16.6-16.7":0.541,"17.0":0.04616,"17.1":0.05539,"17.2":0.04062,"17.3":0.05724,"17.4":0.09417,"17.5":0.1791,"17.6-17.7":0.43944,"18.0":0.09786,"18.1":0.2068,"18.2":0.11078,"18.3":0.36005,"18.4":0.18464,"18.5-18.7":12.89341,"26.0":0.88443,"26.1":0.80688},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":9.74656},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/PR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.00414,"5":0.00414,"52":0.01243,"78":0.00414,"113":0.00414,"115":0.07041,"120":0.09527,"134":0.00414,"137":0.01657,"140":0.03314,"141":0.01243,"142":0.00414,"143":0.06627,"144":0.61716,"145":0.81183,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 138 139 146 147 148 3.5 3.6"},D:{"65":0.02071,"69":0.00414,"70":0.00828,"76":0.00414,"79":0.01243,"87":0.01243,"91":0.00414,"93":0.00414,"95":0.00414,"97":0.00414,"101":0.02071,"103":0.06213,"104":0.02899,"108":0.01243,"109":0.21538,"110":0.00828,"111":0.00828,"112":2.38165,"113":0.06627,"116":0.05385,"119":0.00828,"120":0.00414,"121":0.00414,"122":0.04142,"123":0.01243,"124":0.06213,"125":0.1574,"126":0.31479,"127":0.00414,"128":0.06213,"129":0.00414,"130":0.10769,"131":0.04556,"132":0.03728,"133":0.01657,"134":0.02899,"135":0.0787,"136":0.02485,"137":0.02899,"138":0.21124,"139":0.21124,"140":0.35207,"141":2.87455,"142":10.43784,"143":0.01657,"144":0.00828,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 71 72 73 74 75 77 78 80 81 83 84 85 86 88 89 90 92 94 96 98 99 100 102 105 106 107 114 115 117 118 145 146"},F:{"73":0.00414,"77":0.00414,"92":0.00828,"93":0.00414,"119":0.00414,"120":0.00414,"122":0.48047,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00414,"109":0.01243,"114":0.00414,"122":0.01657,"124":0.00414,"130":0.02485,"131":0.00828,"132":0.01243,"133":0.00828,"134":0.00828,"135":0.00828,"136":0.00828,"137":0.00828,"138":0.02071,"139":0.02071,"140":0.03728,"141":1.01893,"142":6.48223,"143":0.03314,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129"},E:{"14":0.02071,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3","11.1":0.01657,"13.1":0.00828,"14.1":0.02071,"15.4":0.00414,"15.5":0.01243,"15.6":0.0787,"16.0":0.01243,"16.1":0.01243,"16.2":0.00414,"16.3":0.01657,"16.4":0.02899,"16.5":0.01657,"16.6":0.17396,"17.0":0.00414,"17.1":0.06627,"17.2":0.01657,"17.3":0.02071,"17.4":0.07456,"17.5":0.08284,"17.6":0.22781,"18.0":0.02071,"18.1":0.04142,"18.2":0.06213,"18.3":0.10769,"18.4":0.0497,"18.5-18.6":0.29822,"26.0":0.45148,"26.1":0.4929,"26.2":0.02071},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00268,"5.0-5.1":0,"6.0-6.1":0.01073,"7.0-7.1":0.00805,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02414,"10.0-10.2":0.00268,"10.3":0.04292,"11.0-11.2":0.49892,"11.3-11.4":0.01609,"12.0-12.1":0.00536,"12.2-12.5":0.12607,"13.0-13.1":0,"13.2":0.01341,"13.3":0.00536,"13.4-13.7":0.02414,"14.0-14.4":0.04024,"14.5-14.8":0.05097,"15.0-15.1":0.04292,"15.2-15.3":0.03487,"15.4":0.03755,"15.5":0.04024,"15.6-15.8":0.58208,"16.0":0.07242,"16.1":0.13412,"16.2":0.06974,"16.3":0.12875,"16.4":0.03219,"16.5":0.05365,"16.6-16.7":0.78594,"17.0":0.06706,"17.1":0.08047,"17.2":0.05901,"17.3":0.08315,"17.4":0.1368,"17.5":0.26019,"17.6-17.7":0.63841,"18.0":0.14217,"18.1":0.30043,"18.2":0.16094,"18.3":0.52306,"18.4":0.26824,"18.5-18.7":18.73105,"26.0":1.28486,"26.1":1.1722},P:{"4":0.13694,"23":0.01053,"24":0.02107,"25":0.0316,"26":0.01053,"27":0.04214,"28":0.34762,"29":2.89684,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01053,"16.0":0.04214},I:{"0":0.01755,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.20503,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01172},H:{"0":0},L:{"0":33.5285},R:{_:"0"},M:{"0":0.67953}};
Index: de_modules/caniuse-lite/data/regions/PS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00513,"115":0.0154,"127":0.00171,"128":0.00171,"140":0.00342,"141":0.00342,"142":0.00342,"143":0.00856,"144":0.11977,"145":0.14886,"146":0.00171,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 147 148 3.5 3.6"},D:{"53":0.00171,"66":0.00342,"69":0.00684,"71":0.00171,"73":0.00171,"75":0.00171,"77":0.01711,"78":0.00171,"79":0.01198,"80":0.00342,"81":0.00171,"83":0.00684,"85":0.00171,"87":0.00856,"89":0.00513,"90":0.00171,"91":0.0308,"92":0.00171,"95":0.00342,"97":0.00342,"98":0.00171,"100":0.00342,"101":0.00171,"103":0.00342,"105":0.00171,"106":0.00171,"107":0.00342,"108":0.00342,"109":0.1711,"110":0.00342,"111":0.00513,"112":3.64956,"113":0.00171,"114":0.00513,"115":0.00342,"116":0.00684,"117":0.02395,"118":0.00342,"119":0.00856,"120":0.02738,"121":0.00171,"122":0.02395,"123":0.03422,"124":0.00513,"125":0.06844,"126":0.42946,"127":0.01882,"128":0.00513,"129":0.00342,"130":0.0154,"131":0.03422,"132":0.02053,"133":0.0154,"134":0.05646,"135":0.02567,"136":0.03251,"137":0.03764,"138":0.10608,"139":0.09582,"140":0.16083,"141":1.35169,"142":4.67616,"143":0.00856,"144":0.00171,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 72 74 76 84 86 88 93 94 96 99 102 104 145 146"},F:{"46":0.00171,"92":0.00513,"95":0.00171,"120":0.00171,"122":0.04278,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00342,"92":0.00856,"100":0.00171,"109":0.00171,"114":0.06844,"117":0.00342,"122":0.00171,"131":0.00171,"135":0.00342,"136":0.00342,"137":0.00342,"138":0.01198,"139":0.0154,"140":0.01369,"141":0.10437,"142":0.76311,"143":0.00342,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 123 124 125 126 127 128 129 130 132 133 134"},E:{"11":0.00171,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 16.4 17.2 26.2","5.1":0.00856,"14.1":0.00171,"15.4":0.00171,"15.5":0.00171,"15.6":0.00684,"16.1":0.00171,"16.2":0.00171,"16.3":0.00342,"16.5":0.00171,"16.6":0.01882,"17.0":0.00342,"17.1":0.00342,"17.3":0.00171,"17.4":0.00342,"17.5":0.00342,"17.6":0.00513,"18.0":0.00171,"18.1":0.00342,"18.2":0.00171,"18.3":0.00513,"18.4":0.00513,"18.5-18.6":0.02053,"26.0":0.0616,"26.1":0.02567},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00054,"5.0-5.1":0,"6.0-6.1":0.00216,"7.0-7.1":0.00162,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00485,"10.0-10.2":0.00054,"10.3":0.00862,"11.0-11.2":0.10021,"11.3-11.4":0.00323,"12.0-12.1":0.00108,"12.2-12.5":0.02532,"13.0-13.1":0,"13.2":0.00269,"13.3":0.00108,"13.4-13.7":0.00485,"14.0-14.4":0.00808,"14.5-14.8":0.01024,"15.0-15.1":0.00862,"15.2-15.3":0.007,"15.4":0.00754,"15.5":0.00808,"15.6-15.8":0.11692,"16.0":0.01455,"16.1":0.02694,"16.2":0.01401,"16.3":0.02586,"16.4":0.00647,"16.5":0.01078,"16.6-16.7":0.15786,"17.0":0.01347,"17.1":0.01616,"17.2":0.01185,"17.3":0.0167,"17.4":0.02748,"17.5":0.05226,"17.6-17.7":0.12823,"18.0":0.02856,"18.1":0.06034,"18.2":0.03233,"18.3":0.10506,"18.4":0.05388,"18.5-18.7":3.76234,"26.0":0.25808,"26.1":0.23545},P:{"4":0.01017,"20":0.01017,"21":0.05083,"22":0.11182,"23":0.05083,"24":0.04066,"25":0.10165,"26":0.2033,"27":0.16264,"28":0.58958,"29":0.95552,_:"5.0-5.4 6.2-6.4 9.2 10.1 12.0","7.2-7.4":0.0305,"8.2":0.01017,"11.1-11.2":0.02033,"13.0":0.01017,"14.0":0.02033,"15.0":0.01017,"16.0":0.0305,"17.0":0.02033,"18.0":0.01017,"19.0":0.02033},I:{"0":0.01655,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.26525,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00829},H:{"0":0},L:{"0":78.56908},R:{_:"0"},M:{"0":0.05802}};
Index: de_modules/caniuse-lite/data/regions/PT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.02417,"75":0.00604,"78":0.01208,"114":0.00604,"115":0.15105,"116":0.00604,"125":0.00604,"128":0.01208,"131":0.00604,"132":0.00604,"133":0.01813,"134":0.00604,"135":0.00604,"136":0.03625,"138":0.00604,"139":0.00604,"140":0.06646,"141":0.00604,"142":0.01208,"143":0.04229,"144":1.06339,"145":1.19027,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 117 118 119 120 121 122 123 124 126 127 129 130 137 146 147 148 3.5 3.6"},D:{"38":0.00604,"39":0.01813,"40":0.01813,"41":0.01813,"42":0.01813,"43":0.01813,"44":0.01813,"45":0.01813,"46":0.01813,"47":0.01813,"48":0.01813,"49":0.02417,"50":0.01813,"51":0.01813,"52":0.01813,"53":0.01813,"54":0.01813,"55":0.01813,"56":0.01813,"57":0.01813,"58":0.01813,"59":0.01813,"60":0.01813,"79":0.03021,"81":0.01208,"85":0.00604,"87":0.02417,"101":0.01813,"103":0.04229,"104":0.01208,"106":0.00604,"108":0.01813,"109":0.65858,"111":0.00604,"112":0.00604,"113":0.00604,"114":0.03625,"115":0.00604,"116":0.0725,"117":0.92443,"119":0.01208,"120":0.06042,"121":0.01813,"122":0.10271,"123":0.03021,"124":0.03625,"125":0.09063,"126":0.06042,"127":0.01813,"128":0.0725,"129":0.01208,"130":0.21147,"131":0.07855,"132":0.08459,"133":0.07855,"134":0.04834,"135":0.0725,"136":0.06042,"137":0.10271,"138":0.24168,"139":0.19334,"140":0.54378,"141":9.31676,"142":24.05924,"143":0.05438,"144":0.00604,_:"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 33 34 35 36 37 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 86 88 89 90 91 92 93 94 95 96 97 98 99 100 102 105 107 110 118 145 146"},F:{"92":0.02417,"93":0.00604,"95":0.00604,"102":0.00604,"114":0.00604,"120":0.00604,"121":0.00604,"122":1.80656,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00604,"109":0.04229,"114":0.01208,"120":0.00604,"121":0.00604,"126":0.00604,"130":0.00604,"131":0.00604,"132":0.00604,"133":0.00604,"134":0.00604,"135":0.01813,"136":0.00604,"137":0.00604,"138":0.01813,"139":0.01208,"140":0.04229,"141":0.68275,"142":6.5314,"143":0.01208,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 122 123 124 125 127 128 129"},E:{"14":0.00604,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.4","13.1":0.01208,"14.1":0.00604,"15.5":0.00604,"15.6":0.06042,"16.0":0.00604,"16.1":0.01208,"16.2":0.00604,"16.3":0.01208,"16.5":0.01208,"16.6":0.10876,"17.0":0.00604,"17.1":0.0725,"17.2":0.01208,"17.3":0.01208,"17.4":0.02417,"17.5":0.05438,"17.6":0.17522,"18.0":0.01813,"18.1":0.03021,"18.2":0.01208,"18.3":0.05438,"18.4":0.05438,"18.5-18.6":0.17522,"26.0":0.36856,"26.1":0.43502,"26.2":0.01813},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0,"6.0-6.1":0.00406,"7.0-7.1":0.00304,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00913,"10.0-10.2":0.00101,"10.3":0.01622,"11.0-11.2":0.18861,"11.3-11.4":0.00608,"12.0-12.1":0.00203,"12.2-12.5":0.04766,"13.0-13.1":0,"13.2":0.00507,"13.3":0.00203,"13.4-13.7":0.00913,"14.0-14.4":0.01521,"14.5-14.8":0.01927,"15.0-15.1":0.01622,"15.2-15.3":0.01318,"15.4":0.0142,"15.5":0.01521,"15.6-15.8":0.22005,"16.0":0.02738,"16.1":0.0507,"16.2":0.02637,"16.3":0.04867,"16.4":0.01217,"16.5":0.02028,"16.6-16.7":0.29711,"17.0":0.02535,"17.1":0.03042,"17.2":0.02231,"17.3":0.03144,"17.4":0.05172,"17.5":0.09836,"17.6-17.7":0.24134,"18.0":0.05374,"18.1":0.11357,"18.2":0.06084,"18.3":0.19774,"18.4":0.1014,"18.5-18.7":7.08104,"26.0":0.48572,"26.1":0.44314},P:{"22":0.01058,"23":0.01058,"24":0.01058,"25":0.01058,"26":0.02116,"27":0.04231,"28":0.12694,"29":1.51275,_:"4 20 21 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03952,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.22561,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.10876,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00396},O:{"0":0.04354},H:{"0":0},L:{"0":30.18173},R:{_:"0"},M:{"0":0.30081}};
Index: de_modules/caniuse-lite/data/regions/PW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"135":0.01084,"144":1.08721,"145":0.6032,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"61":0.03612,"93":0.01084,"109":0.52013,"114":0.02528,"116":0.03612,"120":0.05779,"125":0.49846,"128":0.02528,"131":0.01084,"132":0.01084,"133":0.01084,"134":0.01084,"136":0.02528,"138":0.02528,"139":0.03612,"140":12.82982,"141":1.57483,"142":9.691,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 117 118 119 121 122 123 124 126 127 129 130 135 137 143 144 145 146"},F:{"92":0.01084,"122":0.17699,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01084,"135":0.02528,"140":0.01084,"141":0.50929,"142":2.32974,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 139 143"},E:{"14":0.02528,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.5 17.0 17.2 17.3 17.5 18.1 18.3 18.4 26.2","16.3":0.04696,"16.4":0.04696,"16.6":0.1192,"17.1":0.01084,"17.4":0.01084,"17.6":0.01084,"18.0":0.01084,"18.2":0.04696,"18.5-18.6":0.04696,"26.0":0.31786,"26.1":0.30702},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00128,"5.0-5.1":0,"6.0-6.1":0.00512,"7.0-7.1":0.00384,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01151,"10.0-10.2":0.00128,"10.3":0.02046,"11.0-11.2":0.23787,"11.3-11.4":0.00767,"12.0-12.1":0.00256,"12.2-12.5":0.06011,"13.0-13.1":0,"13.2":0.00639,"13.3":0.00256,"13.4-13.7":0.01151,"14.0-14.4":0.01918,"14.5-14.8":0.0243,"15.0-15.1":0.02046,"15.2-15.3":0.01663,"15.4":0.0179,"15.5":0.01918,"15.6-15.8":0.27752,"16.0":0.03453,"16.1":0.06394,"16.2":0.03325,"16.3":0.06139,"16.4":0.01535,"16.5":0.02558,"16.6-16.7":0.37471,"17.0":0.03197,"17.1":0.03837,"17.2":0.02814,"17.3":0.03965,"17.4":0.06522,"17.5":0.12405,"17.6-17.7":0.30437,"18.0":0.06778,"18.1":0.14323,"18.2":0.07673,"18.3":0.24938,"18.4":0.12789,"18.5-18.7":8.9304,"26.0":0.61258,"26.1":0.55887},P:{"25":0.14309,"27":0.06132,"28":0.58259,"29":0.63369,_:"4 20 21 22 23 24 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01022,"14.0":0.15331},I:{"0":0.01276,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.03833,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":52.95545},R:{_:"0"},M:{"0":0.05749}};
Index: de_modules/caniuse-lite/data/regions/PY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/PY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.22842,"5":0.02538,"115":0.02538,"140":0.00846,"141":0.00846,"143":0.03384,"144":0.27918,"145":0.2961,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 142 146 147 148 3.5 3.6"},D:{"65":0.00846,"69":0.02538,"75":0.00846,"79":0.00846,"84":0.00846,"87":0.56682,"97":0.00846,"104":0.00846,"109":0.22842,"111":0.03384,"112":59.90526,"114":0.00846,"116":0.00846,"119":0.00846,"121":0.00846,"122":0.05922,"123":0.00846,"124":0.00846,"125":1.10826,"126":9.50904,"128":0.00846,"130":0.00846,"131":0.01692,"132":0.03384,"133":0.00846,"134":0.00846,"135":0.00846,"136":0.00846,"137":0.00846,"138":0.0423,"139":0.02538,"140":0.11844,"141":1.37052,"142":5.65128,"143":0.00846,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 76 77 78 80 81 83 85 86 88 89 90 91 92 93 94 95 96 98 99 100 101 102 103 105 106 107 108 110 113 115 117 118 120 127 129 144 145 146"},F:{"92":0.00846,"117":0.00846,"122":0.18612,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00846,"109":0.00846,"114":0.34686,"134":0.00846,"135":0.00846,"138":0.00846,"140":0.00846,"141":0.15228,"142":1.24362,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 136 137 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 17.5 18.0 18.1 18.2 26.2","15.6":0.00846,"16.6":0.00846,"17.1":0.00846,"17.6":0.0423,"18.3":0.00846,"18.4":0.00846,"18.5-18.6":0.02538,"26.0":0.03384,"26.1":0.0423},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00024,"5.0-5.1":0,"6.0-6.1":0.00097,"7.0-7.1":0.00073,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00218,"10.0-10.2":0.00024,"10.3":0.00387,"11.0-11.2":0.04497,"11.3-11.4":0.00145,"12.0-12.1":0.00048,"12.2-12.5":0.01136,"13.0-13.1":0,"13.2":0.00121,"13.3":0.00048,"13.4-13.7":0.00218,"14.0-14.4":0.00363,"14.5-14.8":0.00459,"15.0-15.1":0.00387,"15.2-15.3":0.00314,"15.4":0.00338,"15.5":0.00363,"15.6-15.8":0.05247,"16.0":0.00653,"16.1":0.01209,"16.2":0.00629,"16.3":0.01161,"16.4":0.0029,"16.5":0.00484,"16.6-16.7":0.07084,"17.0":0.00604,"17.1":0.00725,"17.2":0.00532,"17.3":0.0075,"17.4":0.01233,"17.5":0.02345,"17.6-17.7":0.05754,"18.0":0.01281,"18.1":0.02708,"18.2":0.01451,"18.3":0.04715,"18.4":0.02418,"18.5-18.7":1.68835,"26.0":0.11581,"26.1":0.10566},P:{"4":0.01049,"21":0.02097,"22":0.01049,"23":0.01049,"24":0.02097,"25":0.02097,"26":0.0734,"27":0.05243,"28":0.1468,"29":0.97516,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.0734,"17.0":0.01049},I:{"0":0.00615,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.14322,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00308},H:{"0":0},L:{"0":12.67612},R:{_:"0"},M:{"0":0.0924}};
Index: de_modules/caniuse-lite/data/regions/QA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/QA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.30091,"115":0.03381,"117":0.00338,"134":0.00338,"135":0.00338,"138":0.00338,"140":0.00338,"142":0.00338,"143":0.04057,"144":0.17581,"145":0.213,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 136 137 139 141 146 147 148 3.5 3.6"},D:{"49":0.00338,"60":0.00338,"69":0.00676,"70":0.00338,"75":0.00338,"79":0.05072,"83":0.00676,"84":0.00338,"85":0.01014,"87":0.01014,"88":0.00338,"91":0.02367,"95":0.00338,"98":0.00338,"102":0.00338,"103":0.06762,"108":0.00338,"109":0.37191,"111":0.02029,"112":4.55759,"114":0.00676,"116":0.03381,"117":0.00676,"118":0.03381,"119":0.02029,"120":0.01014,"121":0.00338,"122":0.04057,"123":0.00676,"124":0.00676,"125":0.28739,"126":0.46996,"127":0.04395,"128":0.02705,"129":0.00338,"130":0.0541,"131":0.0541,"132":0.02029,"133":0.02705,"134":0.03719,"135":0.02705,"136":0.05072,"137":0.03043,"138":0.24005,"139":0.17581,"140":0.29077,"141":2.72171,"142":8.10426,"143":0.02029,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 71 72 73 74 76 77 78 80 81 86 89 90 92 93 94 96 97 99 100 101 104 105 106 107 110 113 115 144 145 146"},F:{"46":0.01014,"92":0.18934,"93":0.02367,"114":0.00338,"120":0.01014,"121":0.00338,"122":0.1251,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00338,"18":0.00338,"92":0.00338,"109":0.00338,"114":0.09129,"122":0.00338,"124":0.00338,"131":0.00338,"132":0.00338,"133":0.01691,"134":0.00338,"135":0.00676,"136":0.01014,"137":0.00676,"138":0.01014,"139":0.00676,"140":0.05072,"141":0.31781,"142":2.27879,"143":0.00676,_:"12 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129 130"},E:{"15":0.01352,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 17.2","5.1":0.00338,"14.1":0.00338,"15.5":0.00338,"15.6":0.04057,"16.1":0.00676,"16.3":0.01691,"16.5":0.00676,"16.6":0.10143,"17.0":0.00338,"17.1":0.03043,"17.3":0.00676,"17.4":0.01691,"17.5":0.071,"17.6":0.0541,"18.0":0.01014,"18.1":0.01691,"18.2":0.00676,"18.3":0.02705,"18.4":0.01352,"18.5-18.6":0.09467,"26.0":0.16567,"26.1":0.16905,"26.2":0.02367},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00094,"5.0-5.1":0,"6.0-6.1":0.00375,"7.0-7.1":0.00282,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00845,"10.0-10.2":0.00094,"10.3":0.01502,"11.0-11.2":0.17457,"11.3-11.4":0.00563,"12.0-12.1":0.00188,"12.2-12.5":0.04411,"13.0-13.1":0,"13.2":0.00469,"13.3":0.00188,"13.4-13.7":0.00845,"14.0-14.4":0.01408,"14.5-14.8":0.01783,"15.0-15.1":0.01502,"15.2-15.3":0.0122,"15.4":0.01314,"15.5":0.01408,"15.6-15.8":0.20367,"16.0":0.02534,"16.1":0.04693,"16.2":0.0244,"16.3":0.04505,"16.4":0.01126,"16.5":0.01877,"16.6-16.7":0.275,"17.0":0.02346,"17.1":0.02816,"17.2":0.02065,"17.3":0.0291,"17.4":0.04787,"17.5":0.09104,"17.6-17.7":0.22338,"18.0":0.04974,"18.1":0.10512,"18.2":0.05631,"18.3":0.18302,"18.4":0.09386,"18.5-18.7":6.55406,"26.0":0.44958,"26.1":0.41016},P:{"4":0.0103,"22":0.03091,"23":0.0103,"24":0.02061,"25":0.06183,"26":0.04122,"27":0.05152,"28":0.12365,"29":1.43234,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03091},I:{"0":0.03305,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.75404,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01691,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":1.58194},H:{"0":0},L:{"0":60.89172},R:{_:"0"},M:{"0":0.1059}};
Index: de_modules/caniuse-lite/data/regions/RE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/RE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"34":0.00462,"78":0.26317,"91":0.00462,"102":0.00462,"110":0.00462,"115":0.20777,"124":0.00462,"127":0.00462,"128":0.07849,"136":0.19391,"138":0.00923,"139":0.00462,"140":0.15236,"141":0.01847,"142":0.00923,"143":0.0277,"144":2.51627,"145":1.92991,_:"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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 111 112 113 114 116 117 118 119 120 121 122 123 125 126 129 130 131 132 133 134 135 137 146 147 148 3.5 3.6"},D:{"49":0.00923,"68":0.00462,"69":0.00462,"78":0.12466,"79":0.00462,"85":0.00923,"87":0.03232,"88":0.04155,"99":0.00462,"103":0.04155,"104":0.06464,"108":0.03232,"109":0.60944,"111":0.00462,"113":0.01847,"114":0.00462,"116":0.05079,"118":0.00462,"119":0.05079,"120":0.02309,"121":0.00462,"122":0.05079,"123":0.00462,"124":0.00462,"125":1.03883,"126":0.06002,"127":0.03232,"128":0.03232,"129":0.00462,"130":0.22162,"131":0.03232,"132":0.0277,"133":0.04155,"134":0.06926,"135":0.03694,"136":0.00923,"137":0.05079,"138":0.36936,"139":0.23547,"140":0.47093,"141":4.52928,"142":12.59518,"143":0.01847,"144":0.00462,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 80 81 83 84 86 89 90 91 92 93 94 95 96 97 98 100 101 102 105 106 107 110 112 115 117 145 146"},F:{"92":0.04155,"93":0.00923,"117":0.00462,"119":0.00923,"120":0.00462,"121":0.00462,"122":0.68332,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00462,"92":0.00462,"109":0.01385,"114":0.12928,"119":0.00462,"120":0.00462,"122":0.00462,"130":0.00462,"131":0.0277,"132":0.00462,"133":0.30934,"134":0.00462,"137":0.00462,"138":0.01385,"139":0.00923,"140":0.03232,"141":1.10808,"142":6.26527,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 121 123 124 125 126 127 128 129 135 136 143"},E:{"14":0.00462,"15":0.00462,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 17.0","12.1":0.00923,"13.1":0.03694,"14.1":0.01385,"15.4":0.00462,"15.5":0.00462,"15.6":0.13851,"16.0":0.00462,"16.1":0.00923,"16.2":0.07849,"16.3":0.01847,"16.4":0.00462,"16.5":0.02309,"16.6":0.36013,"17.1":0.09234,"17.2":0.00923,"17.3":0.01385,"17.4":0.02309,"17.5":0.0277,"17.6":0.1893,"18.0":0.14774,"18.1":0.12928,"18.2":0.00923,"18.3":0.24008,"18.4":0.05079,"18.5-18.6":0.32781,"26.0":0.54942,"26.1":0.34628,"26.2":0.00462},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0014,"5.0-5.1":0,"6.0-6.1":0.00562,"7.0-7.1":0.00421,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01264,"10.0-10.2":0.0014,"10.3":0.02247,"11.0-11.2":0.26122,"11.3-11.4":0.00843,"12.0-12.1":0.00281,"12.2-12.5":0.06601,"13.0-13.1":0,"13.2":0.00702,"13.3":0.00281,"13.4-13.7":0.01264,"14.0-14.4":0.02107,"14.5-14.8":0.02668,"15.0-15.1":0.02247,"15.2-15.3":0.01826,"15.4":0.01966,"15.5":0.02107,"15.6-15.8":0.30476,"16.0":0.03792,"16.1":0.07022,"16.2":0.03652,"16.3":0.06741,"16.4":0.01685,"16.5":0.02809,"16.6-16.7":0.4115,"17.0":0.03511,"17.1":0.04213,"17.2":0.0309,"17.3":0.04354,"17.4":0.07163,"17.5":0.13623,"17.6-17.7":0.33425,"18.0":0.07443,"18.1":0.1573,"18.2":0.08427,"18.3":0.27386,"18.4":0.14044,"18.5-18.7":9.8071,"26.0":0.67272,"26.1":0.61373},P:{"21":0.05177,"22":0.02071,"23":0.01035,"24":0.01035,"25":0.10355,"26":0.03106,"27":0.05177,"28":0.30029,"29":2.0917,_:"4 20 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.14497,"8.2":0.01035,"17.0":0.01035,"19.0":0.01035},I:{"0":0.05913,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.243,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.06998},H:{"0":0.01},L:{"0":39.97954},R:{_:"0"},M:{"0":0.53292}};
Index: de_modules/caniuse-lite/data/regions/RO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/RO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.0241,"78":0.01928,"96":0.04337,"112":0.08192,"115":0.24577,"123":0.00964,"125":0.00482,"127":0.00482,"128":0.00964,"134":0.01928,"135":0.00482,"136":0.00964,"137":0.00482,"138":0.00482,"139":0.00482,"140":0.06265,"141":0.00482,"142":0.00964,"143":0.04819,"144":0.71803,"145":0.87706,"146":0.00482,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 124 126 129 130 131 132 133 147 148 3.5 3.6"},D:{"39":0.00482,"40":0.00482,"41":0.00482,"42":0.00482,"43":0.00482,"44":0.00482,"45":0.00482,"46":0.00482,"47":0.00482,"48":0.00482,"49":0.01446,"50":0.00482,"51":0.00482,"52":0.00482,"53":0.00482,"54":0.00482,"55":0.00482,"56":0.00482,"57":0.00482,"58":0.00482,"59":0.00482,"60":0.00482,"70":0.00964,"74":0.03855,"76":0.01446,"79":0.00964,"81":0.00482,"85":0.00482,"87":0.00964,"88":0.00482,"90":0.00482,"100":0.0771,"102":0.04337,"103":0.00964,"104":0.01446,"105":0.05301,"106":0.00482,"108":0.00482,"109":0.70839,"110":0.00482,"111":0.00482,"112":0.28914,"113":0.04819,"114":0.0241,"115":0.00482,"116":0.01928,"117":0.00482,"118":0.00964,"119":0.01446,"120":0.10602,"121":0.00964,"122":0.05301,"123":0.00964,"124":0.03373,"125":1.01681,"126":0.30842,"127":0.00964,"128":0.04337,"129":0.04337,"130":0.0771,"131":0.09638,"132":0.03855,"133":0.04337,"134":0.03855,"135":0.04337,"136":0.05301,"137":0.05783,"138":0.13011,"139":0.15421,"140":0.34215,"141":8.16821,"142":23.34324,"143":0.03855,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 71 72 73 75 77 78 80 83 84 86 89 91 92 93 94 95 96 97 98 99 101 107 144 145 146"},F:{"85":0.00482,"90":0.00482,"92":0.04819,"93":0.00964,"95":0.02891,"120":0.00482,"122":0.506,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00482,"92":0.00482,"109":0.00964,"112":0.03855,"114":0.00482,"121":0.03855,"122":0.00482,"126":0.00482,"129":0.00482,"131":0.00482,"132":0.00482,"133":0.00482,"134":0.00482,"135":0.00482,"136":0.00964,"137":0.00482,"138":0.00964,"139":0.00964,"140":0.02891,"141":0.2024,"142":2.05771,"143":0.00482,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 123 124 125 127 128 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0","13.1":0.00482,"14.1":0.00964,"15.6":0.02891,"16.1":0.00482,"16.2":0.00964,"16.3":0.00482,"16.4":0.01446,"16.5":0.00482,"16.6":0.03373,"17.0":0.00482,"17.1":0.01928,"17.2":0.00482,"17.3":0.00482,"17.4":0.00964,"17.5":0.01446,"17.6":0.05301,"18.0":0.00964,"18.1":0.00964,"18.2":0.00964,"18.3":0.0241,"18.4":0.01446,"18.5-18.6":0.05301,"26.0":0.11566,"26.1":0.15421,"26.2":0.00482},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0,"6.0-6.1":0.00441,"7.0-7.1":0.00331,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00992,"10.0-10.2":0.0011,"10.3":0.01763,"11.0-11.2":0.20497,"11.3-11.4":0.00661,"12.0-12.1":0.0022,"12.2-12.5":0.05179,"13.0-13.1":0,"13.2":0.00551,"13.3":0.0022,"13.4-13.7":0.00992,"14.0-14.4":0.01653,"14.5-14.8":0.02094,"15.0-15.1":0.01763,"15.2-15.3":0.01433,"15.4":0.01543,"15.5":0.01653,"15.6-15.8":0.23913,"16.0":0.02975,"16.1":0.0551,"16.2":0.02865,"16.3":0.0529,"16.4":0.01322,"16.5":0.02204,"16.6-16.7":0.32289,"17.0":0.02755,"17.1":0.03306,"17.2":0.02424,"17.3":0.03416,"17.4":0.0562,"17.5":0.10689,"17.6-17.7":0.26228,"18.0":0.05841,"18.1":0.12342,"18.2":0.06612,"18.3":0.21489,"18.4":0.1102,"18.5-18.7":7.69526,"26.0":0.52786,"26.1":0.48157},P:{"4":0.01031,"20":0.01031,"21":0.01031,"22":0.02063,"23":0.03094,"24":0.03094,"25":0.03094,"26":0.05156,"27":0.09281,"28":0.38157,"29":2.5266,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0","6.2-6.4":0.01031,"7.2-7.4":0.01031,"18.0":0.02063,"19.0":0.01031},I:{"0":0.02587,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.34713,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01928,"10":0.00964,"11":0.09638,_:"6 7 9 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02591},H:{"0":0},L:{"0":40.34686},R:{_:"0"},M:{"0":0.34195}};
Index: de_modules/caniuse-lite/data/regions/RS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/RS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00459,"47":0.00459,"52":0.01377,"68":0.00459,"77":0.00459,"78":0.00459,"91":0.00459,"100":0.00459,"101":0.00918,"113":0.00459,"115":0.47277,"121":0.00459,"122":0.01377,"123":0.03672,"125":0.00918,"127":0.00918,"128":0.00459,"132":0.00459,"133":0.00459,"134":0.01377,"135":0.00459,"136":0.02754,"137":0.00459,"138":0.00918,"139":0.00918,"140":0.02754,"141":0.00918,"142":0.01836,"143":0.03213,"144":0.92259,"145":1.22094,"146":0.00459,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 124 126 129 130 131 147 148 3.5 3.6"},D:{"29":0.00459,"47":0.00459,"49":0.00459,"53":0.00459,"58":0.00459,"65":0.00918,"68":0.00918,"69":0.00918,"71":0.00459,"73":0.00459,"75":0.00918,"78":0.01836,"79":0.33966,"80":0.00459,"81":0.00459,"83":0.00459,"84":0.00459,"85":0.00459,"86":0.00459,"87":0.39933,"88":0.00459,"89":0.00459,"90":0.00459,"91":0.00918,"93":0.00459,"94":0.05967,"95":0.01377,"96":0.00459,"97":0.00459,"98":0.00459,"99":0.00459,"100":0.00459,"101":0.00459,"102":0.01377,"103":0.05508,"104":0.03213,"105":0.00459,"106":0.00918,"107":0.00459,"108":0.0459,"109":2.21238,"110":0.00918,"111":0.02295,"112":2.44188,"113":0.00459,"114":0.00918,"115":0.00459,"116":0.0459,"117":0.00459,"118":0.02754,"119":0.05508,"120":0.11475,"121":0.05967,"122":0.70227,"123":0.01836,"124":0.06426,"125":0.18819,"126":0.84456,"127":0.00918,"128":0.03213,"129":0.01377,"130":0.01836,"131":0.12852,"132":0.26622,"133":0.0459,"134":0.03672,"135":0.05967,"136":0.08721,"137":0.05967,"138":0.19737,"139":0.2754,"140":0.3672,"141":4.63131,"142":15.35355,"143":0.02754,"144":0.00459,_:"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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 59 60 61 62 63 64 66 67 70 72 74 76 77 92 145 146"},F:{"40":0.00459,"46":0.01836,"85":0.00459,"92":0.05508,"93":0.00918,"95":0.08262,"111":0.00459,"114":0.00459,"120":0.00459,"121":0.00459,"122":0.46359,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00459,"92":0.00459,"102":0.01377,"109":0.03213,"114":0.05049,"121":1.26684,"122":0.00918,"131":0.02754,"132":0.00459,"133":0.00459,"134":0.00459,"135":0.00459,"136":0.00459,"137":0.00459,"138":0.00918,"139":0.00918,"140":0.02754,"141":0.19278,"142":1.71207,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 124 125 126 127 128 129 130 143"},E:{"4":0.00459,"11":0.00459,"14":0.00459,_:"0 5 6 7 8 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3","12.1":0.00459,"13.1":0.02754,"14.1":0.04131,"15.4":0.00918,"15.5":0.00459,"15.6":0.05508,"16.0":0.00459,"16.1":0.00459,"16.2":0.00459,"16.3":0.00918,"16.4":0.00459,"16.5":0.00459,"16.6":0.05049,"17.0":0.00459,"17.1":0.03213,"17.2":0.00918,"17.3":0.01836,"17.4":0.02754,"17.5":0.01377,"17.6":0.05049,"18.0":0.00459,"18.1":0.01377,"18.2":0.00459,"18.3":0.01836,"18.4":0.00918,"18.5-18.6":0.03672,"26.0":0.08262,"26.1":0.10098,"26.2":0.00459},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0.00335,"7.0-7.1":0.00251,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00753,"10.0-10.2":0.00084,"10.3":0.01339,"11.0-11.2":0.15567,"11.3-11.4":0.00502,"12.0-12.1":0.00167,"12.2-12.5":0.03934,"13.0-13.1":0,"13.2":0.00418,"13.3":0.00167,"13.4-13.7":0.00753,"14.0-14.4":0.01255,"14.5-14.8":0.0159,"15.0-15.1":0.01339,"15.2-15.3":0.01088,"15.4":0.01172,"15.5":0.01255,"15.6-15.8":0.18161,"16.0":0.0226,"16.1":0.04185,"16.2":0.02176,"16.3":0.04017,"16.4":0.01004,"16.5":0.01674,"16.6-16.7":0.24522,"17.0":0.02092,"17.1":0.02511,"17.2":0.01841,"17.3":0.02594,"17.4":0.04268,"17.5":0.08118,"17.6-17.7":0.19919,"18.0":0.04436,"18.1":0.09374,"18.2":0.05022,"18.3":0.1632,"18.4":0.08369,"18.5-18.7":5.84426,"26.0":0.40089,"26.1":0.36574},P:{"4":0.1252,"21":0.04173,"22":0.02087,"23":0.02087,"24":0.01043,"25":0.02087,"26":0.0313,"27":0.0626,"28":0.21911,"29":2.09715,_:"20 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01043,"7.2-7.4":0.10434,"8.2":0.01043},I:{"0":0.01621,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.25427,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03672,"9":0.00525,"10":0.01049,"11":0.27802,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00541},O:{"0":0.01623},H:{"0":0},L:{"0":47.35629},R:{_:"0"},M:{"0":0.17853}};
Index: de_modules/caniuse-lite/data/regions/RU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/RU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0068,"31":0.0068,"52":0.08162,"68":0.0068,"78":0.0068,"102":0.0136,"104":0.0068,"111":0.0068,"113":0.0068,"114":0.0068,"115":0.42853,"123":0.0068,"125":0.0068,"127":0.0068,"128":0.02721,"131":0.0068,"133":0.0136,"134":0.0068,"135":0.0136,"136":0.02041,"137":0.0136,"138":0.0068,"139":0.0136,"140":0.08843,"141":0.0068,"142":0.02721,"143":0.02721,"144":0.54416,"145":0.73462,"146":0.0068,_:"2 3 4 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 105 106 107 108 109 110 112 116 117 118 119 120 121 122 124 126 129 130 132 147 148 3.5 3.6"},D:{"26":0.0068,"38":0.0068,"39":0.02041,"40":0.02041,"41":0.08162,"42":0.02041,"43":0.02041,"44":0.02041,"45":0.15645,"46":0.02041,"47":0.02041,"48":0.02041,"49":0.04761,"50":0.02041,"51":0.02721,"52":0.02041,"53":0.02041,"54":0.02041,"55":0.02041,"56":0.02041,"57":0.02041,"58":0.03401,"59":0.02041,"60":0.02041,"68":0.0068,"69":0.0068,"71":0.0068,"75":0.0068,"76":0.02041,"78":0.02721,"79":0.05442,"80":0.0068,"81":0.0068,"83":0.0068,"84":0.0068,"85":0.09523,"86":0.02041,"87":0.02721,"88":0.0136,"89":0.0068,"90":0.0136,"91":0.0136,"92":1.15634,"94":0.0068,"96":0.0068,"97":0.0068,"99":0.02721,"100":0.0068,"101":0.0068,"102":0.03401,"103":0.0136,"104":0.04081,"105":0.0068,"106":0.08843,"107":0.0068,"108":0.02041,"109":2.0474,"110":0.0068,"111":0.02041,"112":8.01956,"114":0.06122,"115":0.0068,"116":0.16325,"117":0.0136,"118":0.0068,"119":0.0136,"120":0.05442,"121":0.02721,"122":0.07482,"123":0.82304,"124":0.02721,"125":0.48974,"126":1.51685,"127":0.0136,"128":0.05442,"129":0.02041,"130":0.03401,"131":0.19046,"132":0.04081,"133":0.09523,"134":1.79573,"135":0.05442,"136":0.10203,"137":0.05442,"138":0.19726,"139":0.13604,"140":0.29249,"141":2.54395,"142":11.72665,"143":0.02041,"144":0.0068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 61 62 63 64 65 66 67 70 72 73 74 77 93 95 98 113 145 146"},F:{"12":0.0068,"36":0.0136,"46":0.0068,"77":0.0068,"79":0.03401,"82":0.0068,"84":0.0068,"85":0.04081,"86":0.02721,"89":0.0068,"90":0.0136,"92":0.16325,"93":0.02041,"95":0.58497,"102":0.0068,"113":0.0068,"114":0.0068,"116":0.0068,"117":0.0068,"119":0.0136,"120":0.02041,"121":0.02041,"122":0.98629,_:"9 11 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 83 87 88 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 115 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.0136},B:{"18":0.0136,"92":0.02041,"109":0.05442,"114":0.05442,"119":0.0068,"120":0.0068,"122":0.0068,"129":0.0068,"131":0.02041,"132":0.0068,"133":0.0068,"134":0.0068,"135":0.0068,"136":0.0068,"137":0.0136,"138":0.0136,"139":0.02041,"140":0.03401,"141":0.3265,"142":3.35339,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 121 123 124 125 126 127 128 130 143"},E:{"14":0.0068,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.2-15.3 15.4 16.0","9.1":0.0068,"13.1":0.0068,"14.1":0.02041,"15.1":0.0068,"15.5":0.0068,"15.6":0.06122,"16.1":0.0068,"16.2":0.0068,"16.3":0.02721,"16.4":0.0068,"16.5":0.0136,"16.6":0.08162,"17.0":0.0068,"17.1":0.06122,"17.2":0.0068,"17.3":0.0068,"17.4":0.0136,"17.5":0.02041,"17.6":0.06122,"18.0":0.0068,"18.1":0.0068,"18.2":0.0068,"18.3":0.02041,"18.4":0.0068,"18.5-18.6":0.06122,"26.0":0.11563,"26.1":0.12244,"26.2":0.0068},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00068,"5.0-5.1":0,"6.0-6.1":0.00274,"7.0-7.1":0.00205,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00616,"10.0-10.2":0.00068,"10.3":0.01094,"11.0-11.2":0.12723,"11.3-11.4":0.0041,"12.0-12.1":0.00137,"12.2-12.5":0.03215,"13.0-13.1":0,"13.2":0.00342,"13.3":0.00137,"13.4-13.7":0.00616,"14.0-14.4":0.01026,"14.5-14.8":0.013,"15.0-15.1":0.01094,"15.2-15.3":0.00889,"15.4":0.00958,"15.5":0.01026,"15.6-15.8":0.14844,"16.0":0.01847,"16.1":0.0342,"16.2":0.01779,"16.3":0.03283,"16.4":0.00821,"16.5":0.01368,"16.6-16.7":0.20043,"17.0":0.0171,"17.1":0.02052,"17.2":0.01505,"17.3":0.02121,"17.4":0.03489,"17.5":0.06635,"17.6-17.7":0.1628,"18.0":0.03625,"18.1":0.07661,"18.2":0.04104,"18.3":0.13339,"18.4":0.06841,"18.5-18.7":4.77674,"26.0":0.32766,"26.1":0.29893},P:{"4":0.08499,"21":0.01062,"23":0.01062,"24":0.01062,"26":0.01062,"27":0.02125,"28":0.07436,"29":0.69051,_:"20 22 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01062},I:{"0":0.03832,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.94981,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.09523,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02239},O:{"0":0.07036},H:{"0":0},L:{"0":20.21132},R:{_:"0"},M:{"0":0.36137}};
Index: de_modules/caniuse-lite/data/regions/RW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/RW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01112,"56":0.00556,"57":0.00556,"58":0.00556,"59":0.00556,"67":0.00556,"68":0.01112,"69":0.00556,"72":0.00556,"94":0.00556,"104":0.00556,"111":0.00556,"112":0.01668,"113":0.00556,"115":0.20572,"127":0.01668,"128":0.02224,"133":0.00556,"134":0.00556,"135":0.01112,"139":0.02224,"140":0.02224,"141":0.01112,"142":0.01112,"143":0.07228,"144":0.60048,"145":0.66164,"146":0.00556,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 60 61 62 63 64 65 66 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 136 137 138 147 148 3.5 3.6"},D:{"50":0.00556,"56":0.00556,"58":0.00556,"59":0.00556,"61":0.00556,"65":0.00556,"66":0.00556,"69":0.01668,"70":0.01668,"71":0.01112,"72":0.01112,"73":0.00556,"74":0.01112,"77":0.01668,"78":0.00556,"79":0.01668,"80":0.0556,"81":0.01112,"83":0.00556,"84":0.00556,"85":0.00556,"87":0.02224,"89":0.02224,"90":0.00556,"91":0.00556,"93":0.01112,"94":0.00556,"95":0.01668,"96":0.00556,"98":0.0834,"100":0.03892,"101":0.01112,"102":0.00556,"103":0.06116,"104":0.0278,"106":0.0278,"107":0.00556,"108":0.01112,"109":0.34472,"110":0.00556,"111":0.07784,"112":0.01668,"114":0.01112,"115":0.01112,"116":0.17792,"117":0.01112,"119":0.01112,"120":0.01668,"121":0.01112,"122":0.11676,"123":0.0556,"124":0.02224,"125":0.18904,"126":0.15012,"127":0.01112,"128":0.17792,"129":0.03336,"130":0.04448,"131":0.17792,"132":0.05004,"133":0.06116,"134":0.1946,"135":0.11676,"136":0.13344,"137":0.1668,"138":0.57824,"139":0.4448,"140":0.7228,"141":8.52904,"142":19.74356,"143":0.09452,"144":0.01112,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 57 60 62 63 64 67 68 75 76 86 88 92 97 99 105 113 118 145 146"},F:{"49":0.00556,"76":0.00556,"79":0.00556,"85":0.00556,"89":0.00556,"91":0.00556,"92":0.07228,"95":0.01112,"114":0.00556,"119":0.00556,"120":0.00556,"122":0.3058,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 82 83 84 86 87 88 90 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01668,"13":0.01668,"14":0.01112,"15":0.00556,"16":0.00556,"17":0.01668,"18":0.1112,"89":0.00556,"90":0.0278,"92":0.14456,"98":0.00556,"100":0.01112,"109":0.00556,"111":0.01112,"114":0.2502,"122":0.03892,"126":0.00556,"129":0.00556,"130":0.01112,"131":0.0278,"132":0.02224,"133":0.03336,"134":0.07228,"135":0.00556,"136":0.01668,"137":0.0278,"138":0.04448,"139":0.05004,"140":0.13344,"141":0.64496,"142":4.93728,"143":0.01112,_:"79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 99 101 102 103 104 105 106 107 108 110 112 113 115 116 117 118 119 120 121 123 124 125 127 128"},E:{"13":0.00556,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.2-15.3 16.0 16.1 16.2 16.4","5.1":0.00556,"11.1":0.00556,"13.1":0.03336,"14.1":0.03892,"15.1":0.01112,"15.4":0.02224,"15.5":0.00556,"15.6":0.06672,"16.3":0.00556,"16.5":0.00556,"16.6":0.12232,"17.0":0.01668,"17.1":0.02224,"17.2":0.01112,"17.3":0.01112,"17.4":0.00556,"17.5":0.01112,"17.6":0.0556,"18.0":0.00556,"18.1":0.01112,"18.2":0.00556,"18.3":0.0278,"18.4":0.01112,"18.5-18.6":0.0556,"26.0":0.20016,"26.1":0.15012,"26.2":0.00556},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0.00221,"7.0-7.1":0.00166,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00498,"10.0-10.2":0.00055,"10.3":0.00885,"11.0-11.2":0.1029,"11.3-11.4":0.00332,"12.0-12.1":0.00111,"12.2-12.5":0.026,"13.0-13.1":0,"13.2":0.00277,"13.3":0.00111,"13.4-13.7":0.00498,"14.0-14.4":0.0083,"14.5-14.8":0.01051,"15.0-15.1":0.00885,"15.2-15.3":0.00719,"15.4":0.00775,"15.5":0.0083,"15.6-15.8":0.12005,"16.0":0.01494,"16.1":0.02766,"16.2":0.01438,"16.3":0.02655,"16.4":0.00664,"16.5":0.01106,"16.6-16.7":0.16209,"17.0":0.01383,"17.1":0.0166,"17.2":0.01217,"17.3":0.01715,"17.4":0.02821,"17.5":0.05366,"17.6-17.7":0.13167,"18.0":0.02932,"18.1":0.06196,"18.2":0.03319,"18.3":0.10788,"18.4":0.05532,"18.5-18.7":3.86316,"26.0":0.26499,"26.1":0.24176},P:{"4":0.01086,"24":0.04345,"25":0.01086,"26":0.01086,"27":0.04345,"28":0.10862,"29":0.32586,_:"20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.05431},I:{"0":0.00887,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":3.02948,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03336,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.01776,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03108},H:{"0":1.93},L:{"0":43.59368},R:{_:"0"},M:{"0":0.14652}};
Index: de_modules/caniuse-lite/data/regions/SA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00492,"52":0.00246,"115":0.01477,"125":0.00246,"128":0.00738,"130":0.00492,"133":0.00246,"135":0.00246,"136":0.00246,"140":0.00738,"141":0.00246,"142":0.00492,"143":0.00984,"144":0.18458,"145":0.17227,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 131 132 134 137 138 139 146 147 148 3.5 3.6"},D:{"38":0.00246,"56":0.00246,"68":0.00246,"69":0.00738,"72":0.00246,"75":0.00246,"76":0.00246,"79":0.01723,"83":0.00492,"87":0.03938,"88":0.00246,"90":0.00246,"91":0.00246,"92":0.00246,"93":0.00738,"94":0.00246,"95":0.00246,"98":0.00492,"99":0.00246,"101":0.00246,"103":0.00984,"104":0.00246,"108":0.01231,"109":0.22887,"110":0.00738,"111":0.00738,"112":0.21411,"113":0.00246,"114":0.02707,"116":0.01477,"117":0.00246,"118":0.00246,"119":0.01231,"120":0.01477,"121":0.00492,"122":0.02707,"123":0.00492,"124":0.01231,"125":1.07792,"126":0.74814,"127":0.01477,"128":0.02215,"129":0.00738,"130":0.01231,"131":0.04676,"132":0.02707,"133":0.02215,"134":0.32977,"135":0.04922,"136":0.02707,"137":0.03938,"138":0.12305,"139":0.16489,"140":0.20672,"141":2.77847,"142":8.29603,"143":0.00984,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 77 78 80 81 84 85 86 89 96 97 100 102 105 106 107 115 144 145 146"},F:{"91":0.00492,"92":0.07137,"93":0.00984,"122":0.08367,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00492,"92":0.00984,"109":0.00492,"114":0.22887,"120":0.00738,"122":0.00492,"124":0.00246,"126":0.00492,"128":0.00246,"129":0.00492,"130":0.00246,"131":0.00492,"132":0.00492,"133":0.00492,"134":0.00246,"135":0.00246,"136":0.00738,"137":0.00492,"138":0.01231,"139":0.01969,"140":0.14028,"141":0.27071,"142":1.59719,"143":0.00246,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 125 127"},E:{"14":0.00246,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0","5.1":0.00246,"13.1":0.00246,"14.1":0.00492,"15.2-15.3":0.00246,"15.4":0.00246,"15.5":0.00492,"15.6":0.01723,"16.1":0.00738,"16.2":0.00492,"16.3":0.00738,"16.4":0.00738,"16.5":0.00492,"16.6":0.07629,"17.0":0.00492,"17.1":0.01477,"17.2":0.01477,"17.3":0.00738,"17.4":0.01723,"17.5":0.03199,"17.6":0.07383,"18.0":0.00738,"18.1":0.01969,"18.2":0.01723,"18.3":0.03692,"18.4":0.02707,"18.5-18.6":0.15012,"26.0":0.19934,"26.1":0.14274,"26.2":0.00492},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00161,"5.0-5.1":0,"6.0-6.1":0.00645,"7.0-7.1":0.00484,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01452,"10.0-10.2":0.00161,"10.3":0.02581,"11.0-11.2":0.30008,"11.3-11.4":0.00968,"12.0-12.1":0.00323,"12.2-12.5":0.07583,"13.0-13.1":0,"13.2":0.00807,"13.3":0.00323,"13.4-13.7":0.01452,"14.0-14.4":0.0242,"14.5-14.8":0.03065,"15.0-15.1":0.02581,"15.2-15.3":0.02097,"15.4":0.02259,"15.5":0.0242,"15.6-15.8":0.3501,"16.0":0.04356,"16.1":0.08067,"16.2":0.04195,"16.3":0.07744,"16.4":0.01936,"16.5":0.03227,"16.6-16.7":0.47271,"17.0":0.04033,"17.1":0.0484,"17.2":0.03549,"17.3":0.05001,"17.4":0.08228,"17.5":0.15649,"17.6-17.7":0.38398,"18.0":0.08551,"18.1":0.18069,"18.2":0.0968,"18.3":0.3146,"18.4":0.16133,"18.5-18.7":11.266,"26.0":0.77279,"26.1":0.70503},P:{"22":0.01016,"23":0.01016,"24":0.01016,"25":0.04065,"26":0.03048,"27":0.04065,"28":0.16258,"29":0.84338,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02032},I:{"0":0.03764,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.47496,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01723,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.66343},H:{"0":0},L:{"0":61.58973},R:{_:"0"},M:{"0":0.06031}};
Index: de_modules/caniuse-lite/data/regions/SB.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SB.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"85":0.0037,"115":0.11097,"119":0.0037,"128":0.02219,"139":0.0148,"140":0.0074,"141":0.0074,"143":0.0074,"144":1.18368,"145":1.03202,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 142 146 147 148 3.5 3.6"},D:{"56":0.0037,"69":0.0074,"78":0.0037,"79":0.0037,"81":0.0148,"100":0.0037,"107":0.0074,"108":0.12207,"109":0.09248,"111":0.0074,"114":0.0037,"115":0.0037,"116":0.0074,"118":0.0037,"119":0.0037,"120":0.0185,"121":0.05549,"122":0.02959,"125":0.19235,"126":0.0074,"127":0.0148,"128":0.0037,"129":0.0037,"130":0.04439,"131":0.0074,"132":0.0148,"133":0.0074,"134":0.02219,"135":0.02219,"136":0.0037,"137":0.0185,"138":0.05179,"139":0.17755,"140":0.21084,"141":2.35256,"142":10.56434,"143":0.0111,"144":0.0074,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 110 112 113 117 123 124 145 146"},F:{"92":0.10727,"93":0.03699,"114":0.0037,"122":0.63993,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.02959,"18":0.0037,"84":0.0037,"85":0.0074,"90":0.0185,"92":0.02589,"99":0.0037,"107":0.0074,"109":0.22564,"114":0.0148,"117":0.0037,"118":0.0148,"120":0.0037,"128":0.0037,"130":0.0148,"131":0.0037,"132":0.0185,"133":0.0148,"134":0.03329,"135":0.0185,"136":0.0111,"137":0.0185,"138":0.45868,"139":0.21084,"140":0.10357,"141":0.76569,"142":6.24761,"143":0.0037,_:"12 13 14 15 16 79 80 81 83 86 87 88 89 91 93 94 95 96 97 98 100 101 102 103 104 105 106 108 110 111 112 113 115 116 119 121 122 123 124 125 126 127 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.3","12.1":0.0037,"15.6":0.0111,"16.1":0.0037,"16.6":0.07028,"17.1":0.0111,"17.4":0.0037,"17.5":0.02589,"17.6":0.04809,"18.0":0.0111,"18.1":0.0037,"18.2":0.0037,"18.4":0.0111,"18.5-18.6":0.07398,"26.0":0.0074,"26.1":0.12207,"26.2":0.04439},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00029,"5.0-5.1":0,"6.0-6.1":0.00115,"7.0-7.1":0.00086,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00259,"10.0-10.2":0.00029,"10.3":0.00461,"11.0-11.2":0.05357,"11.3-11.4":0.00173,"12.0-12.1":0.00058,"12.2-12.5":0.01354,"13.0-13.1":0,"13.2":0.00144,"13.3":0.00058,"13.4-13.7":0.00259,"14.0-14.4":0.00432,"14.5-14.8":0.00547,"15.0-15.1":0.00461,"15.2-15.3":0.00374,"15.4":0.00403,"15.5":0.00432,"15.6-15.8":0.0625,"16.0":0.00778,"16.1":0.0144,"16.2":0.00749,"16.3":0.01382,"16.4":0.00346,"16.5":0.00576,"16.6-16.7":0.08438,"17.0":0.0072,"17.1":0.00864,"17.2":0.00634,"17.3":0.00893,"17.4":0.01469,"17.5":0.02794,"17.6-17.7":0.06854,"18.0":0.01526,"18.1":0.03226,"18.2":0.01728,"18.3":0.05616,"18.4":0.0288,"18.5-18.7":2.01111,"26.0":0.13795,"26.1":0.12586},P:{"23":0.234,"24":0.01017,"25":0.09156,"26":0.08139,"27":0.06104,"28":0.83425,"29":0.1933,_:"4 20 21 22 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01017,"7.2-7.4":0.03052,"13.0":0.01017},I:{"0":0.03776,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.03983,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.08138,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.10083},O:{"0":0.77515},H:{"0":0},L:{"0":65.7774},R:{_:"0"},M:{"0":0.20166}};
Index: de_modules/caniuse-lite/data/regions/SC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"37":0.00402,"59":0.01206,"60":0.02813,"78":0.00804,"114":0.00402,"115":0.04019,"117":0.01206,"118":0.00804,"120":0.01206,"121":0.06029,"123":0.00402,"124":0.00402,"125":0.01608,"126":0.00402,"127":0.00804,"128":0.10851,"129":0.01206,"130":0.04421,"131":0.00402,"132":0.18086,"133":0.02813,"134":0.03215,"135":0.00804,"136":0.00804,"137":0.00402,"138":0.00804,"139":0.01608,"140":0.34965,"142":0.01206,"143":0.01206,"144":0.19693,"145":0.27329,_:"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 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 119 122 141 146 147 148 3.5 3.6"},D:{"41":0.01206,"45":0.44611,"51":0.01206,"58":0.0201,"59":0.01206,"61":0.01206,"63":0.01206,"64":0.01608,"65":0.02813,"66":0.04823,"67":0.03215,"68":0.02813,"69":0.01608,"70":0.01608,"71":0.01206,"73":0.01608,"75":0.00804,"79":0.00804,"80":0.04421,"81":0.00804,"83":0.00402,"85":0.01608,"86":0.01608,"87":0.01608,"88":0.00804,"90":0.00804,"91":0.03215,"93":0.00402,"94":0.00402,"97":0.10048,"98":0.01206,"100":0.00402,"101":0.08842,"102":0.00402,"103":0.01206,"104":0.12459,"106":0.01206,"107":0.03617,"108":0.0201,"109":0.49836,"110":0.00402,"111":0.00804,"112":0.01206,"113":0.02813,"114":0.23712,"115":0.00804,"116":1.25795,"117":0.07234,"118":0.1688,"119":0.08038,"120":0.74753,"121":0.04421,"122":0.03215,"123":0.34162,"124":0.13263,"125":0.41798,"126":0.0844,"127":0.04421,"128":0.20095,"129":0.26525,"130":0.37377,"131":0.32956,"132":0.28133,"133":0.23712,"134":0.26927,"135":0.24918,"136":0.1688,"137":0.40994,"138":0.60285,"139":1.51114,"140":0.75959,"141":2.41542,"142":9.46073,"143":0.01206,"144":0.03215,_:"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 33 34 35 36 37 38 39 40 42 43 44 46 47 48 49 50 52 53 54 55 56 57 60 62 72 74 76 77 78 84 89 92 95 96 99 105 145 146"},F:{"91":0.00804,"92":0.04823,"100":0.00804,"101":0.00804,"102":0.00804,"103":0.00402,"104":0.00804,"105":0.01608,"106":0.00804,"107":0.00402,"108":0.00402,"109":0.00804,"110":0.00804,"111":0.00804,"112":0.00804,"113":0.00804,"114":0.14468,"115":0.00804,"116":0.00804,"117":0.01206,"118":0.00804,"119":0.01206,"120":0.00804,"121":0.00804,"122":0.06029,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 93 94 95 96 97 98 99 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.00402,"92":0.01206,"100":0.00402,"106":0.00402,"109":0.00402,"113":0.00402,"114":0.02813,"116":0.01608,"118":0.00402,"119":0.02411,"120":0.15674,"121":0.00402,"122":0.00804,"123":0.01206,"124":0.00804,"125":0.04019,"127":0.00402,"128":0.06029,"129":0.08038,"130":0.08038,"131":0.1487,"132":0.08842,"133":0.10048,"134":0.10449,"135":0.12057,"136":0.06832,"137":0.13263,"138":0.24918,"139":0.12057,"140":0.15674,"141":0.5506,"142":1.98137,"143":0.00402,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 107 108 110 111 112 115 117 126"},E:{"14":0.01608,"15":0.00402,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 11.1 12.1 15.1 15.2-15.3 26.2","9.1":0.07636,"10.1":0.00402,"13.1":0.00402,"14.1":0.00804,"15.4":0.0201,"15.5":0.00402,"15.6":0.02813,"16.0":0.00402,"16.1":0.00402,"16.2":0.00804,"16.3":0.06832,"16.4":0.00804,"16.5":0.01608,"16.6":0.04823,"17.0":0.00804,"17.1":0.11253,"17.2":0.04823,"17.3":0.00804,"17.4":0.03215,"17.5":0.05225,"17.6":0.03215,"18.0":0.07234,"18.1":0.01608,"18.2":0.01206,"18.3":0.04823,"18.4":0.0201,"18.5-18.6":0.0844,"26.0":0.07234,"26.1":0.17282},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00081,"5.0-5.1":0,"6.0-6.1":0.00323,"7.0-7.1":0.00242,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00727,"10.0-10.2":0.00081,"10.3":0.01293,"11.0-11.2":0.15029,"11.3-11.4":0.00485,"12.0-12.1":0.00162,"12.2-12.5":0.03798,"13.0-13.1":0,"13.2":0.00404,"13.3":0.00162,"13.4-13.7":0.00727,"14.0-14.4":0.01212,"14.5-14.8":0.01535,"15.0-15.1":0.01293,"15.2-15.3":0.0105,"15.4":0.01131,"15.5":0.01212,"15.6-15.8":0.17534,"16.0":0.02182,"16.1":0.0404,"16.2":0.02101,"16.3":0.03879,"16.4":0.0097,"16.5":0.01616,"16.6-16.7":0.23675,"17.0":0.0202,"17.1":0.02424,"17.2":0.01778,"17.3":0.02505,"17.4":0.04121,"17.5":0.07838,"17.6-17.7":0.19231,"18.0":0.04283,"18.1":0.0905,"18.2":0.04848,"18.3":0.15757,"18.4":0.0808,"18.5-18.7":5.6425,"26.0":0.38705,"26.1":0.35311},P:{"4":0.01027,"20":0.02053,"21":0.12319,"22":0.20532,"23":0.26692,"24":0.07186,"25":0.07186,"26":0.0616,"27":0.16426,"28":0.74943,"29":1.52966,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 18.0 19.0","7.2-7.4":0.02053,"13.0":0.01027,"14.0":0.02053,"16.0":0.01027,"17.0":0.0308},I:{"0":0.12543,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.93902,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04466,"11":0.35724,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.15551},O:{"0":0.51437},H:{"0":0},L:{"0":51.81854},R:{_:"0"},M:{"0":1.11247}};
Index: de_modules/caniuse-lite/data/regions/SD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"44":0.00279,"47":0.00279,"72":0.00279,"80":0.00279,"85":0.00279,"111":0.00558,"115":0.09204,"127":0.00558,"128":0.00558,"133":0.00279,"140":0.00837,"141":0.00279,"142":0.01395,"143":0.00558,"144":0.11156,"145":0.34026,"146":0.00279,"147":0.00279,_:"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 33 34 35 36 37 38 39 40 41 42 43 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 134 135 136 137 138 139 148 3.5 3.6"},D:{"37":0.08088,"40":0.00279,"43":0.00837,"50":0.00279,"55":0.00279,"58":0.00279,"60":0.00279,"63":0.00279,"64":0.00279,"67":0.04741,"68":0.00558,"69":0.00279,"70":0.0502,"71":0.00837,"76":0.00279,"78":0.0251,"79":0.01395,"80":0.00279,"81":0.00279,"84":0.00279,"85":0.00279,"86":0.00279,"87":0.00837,"88":0.00558,"89":0.00279,"90":0.00558,"91":0.03905,"92":0.00558,"100":0.00279,"102":0.00279,"103":0.00279,"104":0.01116,"106":0.00279,"107":0.00279,"108":0.00279,"109":0.09204,"111":0.01116,"114":0.01673,"116":0.00558,"119":0.00558,"120":0.00279,"121":0.00279,"122":0.01116,"123":0.00837,"125":0.00279,"126":0.01116,"127":0.01116,"128":0.00279,"130":0.00837,"131":0.03347,"132":0.00558,"133":0.00558,"134":0.00837,"135":0.00558,"136":0.03068,"137":0.02231,"138":0.06694,"139":0.05299,"140":0.09483,"141":0.37652,"142":1.14628,"143":0.00279,_:"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 33 34 35 36 38 39 41 42 44 45 46 47 48 49 51 52 53 54 56 57 59 61 62 65 66 72 73 74 75 77 83 93 94 95 96 97 98 99 101 105 110 112 113 115 117 118 124 129 144 145 146"},F:{"79":0.00837,"83":0.00558,"86":0.00558,"87":0.00279,"88":0.00558,"89":0.0251,"90":0.0251,"91":0.06136,"92":0.71956,"93":0.12829,"95":0.00837,"120":0.00279,"122":0.01673,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 85 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00279,"14":0.00279,"16":0.00279,"18":0.00837,"84":0.00558,"89":0.00279,"90":0.00279,"92":0.03068,"100":0.00279,"109":0.00558,"114":0.00279,"122":0.00558,"125":0.00279,"129":0.00279,"130":0.00279,"132":0.01116,"133":0.01116,"134":0.00279,"136":0.00279,"138":0.00279,"139":0.00279,"140":0.02789,"141":0.03347,"142":0.46576,_:"13 15 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 131 135 137 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.2 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 26.2","5.1":0.02789,"15.6":0.01395,"17.1":0.00279,"17.3":0.00558,"18.5-18.6":0.00558,"26.0":0.00279,"26.1":0.00558},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00012,"5.0-5.1":0,"6.0-6.1":0.00048,"7.0-7.1":0.00036,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00108,"10.0-10.2":0.00012,"10.3":0.00193,"11.0-11.2":0.0224,"11.3-11.4":0.00072,"12.0-12.1":0.00024,"12.2-12.5":0.00566,"13.0-13.1":0,"13.2":0.0006,"13.3":0.00024,"13.4-13.7":0.00108,"14.0-14.4":0.00181,"14.5-14.8":0.00229,"15.0-15.1":0.00193,"15.2-15.3":0.00157,"15.4":0.00169,"15.5":0.00181,"15.6-15.8":0.02613,"16.0":0.00325,"16.1":0.00602,"16.2":0.00313,"16.3":0.00578,"16.4":0.00144,"16.5":0.00241,"16.6-16.7":0.03528,"17.0":0.00301,"17.1":0.00361,"17.2":0.00265,"17.3":0.00373,"17.4":0.00614,"17.5":0.01168,"17.6-17.7":0.02866,"18.0":0.00638,"18.1":0.01349,"18.2":0.00722,"18.3":0.02348,"18.4":0.01204,"18.5-18.7":0.8408,"26.0":0.05767,"26.1":0.05262},P:{"4":0.12988,"20":0.00999,"21":0.04996,"22":0.03996,"23":0.03996,"24":0.1099,"25":0.18983,"26":0.26976,"27":0.3297,"28":0.6694,"29":0.63942,_:"5.0-5.4 8.2 9.2 10.1 12.0 15.0","6.2-6.4":0.00999,"7.2-7.4":0.14987,"11.1-11.2":0.01998,"13.0":0.00999,"14.0":0.02997,"16.0":0.04996,"17.0":0.00999,"18.0":0.00999,"19.0":0.02997},I:{"0":0.2664,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":5.50079,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01395,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.5047},H:{"0":0.26},L:{"0":83.94619},R:{_:"0"},M:{"0":0.18746}};
Index: de_modules/caniuse-lite/data/regions/SE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.01024,"59":0.00512,"60":0.01024,"77":0.00512,"78":0.02048,"91":0.00512,"102":0.00512,"104":0.00512,"115":0.13821,"128":0.0819,"129":0.00512,"134":0.00512,"136":0.00512,"137":0.00512,"139":0.00512,"140":0.7269,"141":0.00512,"142":0.01024,"143":0.03071,"144":0.79856,"145":0.95725,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 130 131 132 133 135 138 146 147 148 3.5 3.6"},D:{"39":0.01024,"40":0.01024,"41":0.01024,"42":0.01024,"43":0.01024,"44":0.01024,"45":0.01024,"46":0.01024,"47":0.01024,"48":0.01024,"49":0.01536,"50":0.01024,"51":0.01024,"52":0.01536,"53":0.01024,"54":0.01024,"55":0.01024,"56":0.01024,"57":0.01024,"58":0.01024,"59":0.08702,"60":0.01024,"66":0.02048,"79":0.02048,"80":0.01024,"87":0.02048,"88":0.01024,"92":0.00512,"93":0.00512,"102":0.00512,"103":0.14845,"104":0.00512,"108":0.02048,"109":0.36345,"111":0.00512,"112":0.38904,"113":0.02048,"114":0.01536,"115":0.01536,"116":0.14333,"117":0.26619,"118":0.24059,"119":0.01024,"120":0.0256,"121":0.01024,"122":0.06655,"123":0.07167,"124":0.05119,"125":0.04095,"126":0.19452,"127":0.02048,"128":0.0819,"129":0.02048,"130":0.3225,"131":0.08702,"132":0.03583,"133":0.11774,"134":0.06143,"135":0.06143,"136":0.14845,"137":0.16381,"138":0.5119,"139":0.44023,"140":0.87535,"141":6.72637,"142":19.87196,"143":0.03583,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 85 86 89 90 91 94 95 96 97 98 99 100 101 105 106 107 110 144 145 146"},F:{"92":0.0256,"93":0.00512,"95":0.00512,"119":0.00512,"120":0.00512,"122":0.46583,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00512,"92":0.00512,"109":0.05119,"112":0.01024,"119":0.00512,"122":0.01024,"130":0.00512,"131":0.01024,"132":0.00512,"134":0.00512,"135":0.00512,"136":0.01024,"137":0.0256,"138":0.02048,"139":0.0256,"140":0.13821,"141":0.84975,"142":6.25542,"143":0.01024,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 120 121 123 124 125 126 127 128 129 133"},E:{"14":0.01536,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3","11.1":0.00512,"12.1":0.00512,"13.1":0.02048,"14.1":0.03583,"15.1":0.00512,"15.4":0.01024,"15.5":0.01024,"15.6":0.16893,"16.0":0.00512,"16.1":0.02048,"16.2":0.01024,"16.3":0.04607,"16.4":0.01536,"16.5":0.02048,"16.6":0.27131,"17.0":0.01024,"17.1":0.1894,"17.2":0.0256,"17.3":0.02048,"17.4":0.06143,"17.5":0.0819,"17.6":0.27131,"18.0":0.01536,"18.1":0.04095,"18.2":0.0256,"18.3":0.07167,"18.4":0.04095,"18.5-18.6":0.15869,"26.0":0.35321,"26.1":0.43,"26.2":0.01024},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0023,"5.0-5.1":0,"6.0-6.1":0.00921,"7.0-7.1":0.00691,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02072,"10.0-10.2":0.0023,"10.3":0.03684,"11.0-11.2":0.42824,"11.3-11.4":0.01381,"12.0-12.1":0.0046,"12.2-12.5":0.10821,"13.0-13.1":0,"13.2":0.01151,"13.3":0.0046,"13.4-13.7":0.02072,"14.0-14.4":0.03454,"14.5-14.8":0.04374,"15.0-15.1":0.03684,"15.2-15.3":0.02993,"15.4":0.03223,"15.5":0.03454,"15.6-15.8":0.49961,"16.0":0.06216,"16.1":0.11512,"16.2":0.05986,"16.3":0.11051,"16.4":0.02763,"16.5":0.04605,"16.6-16.7":0.67459,"17.0":0.05756,"17.1":0.06907,"17.2":0.05065,"17.3":0.07137,"17.4":0.11742,"17.5":0.22333,"17.6-17.7":0.54796,"18.0":0.12203,"18.1":0.25787,"18.2":0.13814,"18.3":0.44896,"18.4":0.23024,"18.5-18.7":16.07743,"26.0":1.10283,"26.1":1.00613},P:{"4":0.05213,"20":0.01043,"21":0.01043,"22":0.02085,"23":0.01043,"24":0.01043,"25":0.01043,"26":0.0417,"27":0.0417,"28":0.28149,"29":3.78443,"5.0-5.4":0.01043,_:"6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01043},I:{"0":0.02437,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.14643,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01024,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.00488},H:{"0":0},L:{"0":22.39874},R:{_:"0"},M:{"0":0.66382}};
Index: de_modules/caniuse-lite/data/regions/SG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"78":0.01388,"115":0.02081,"125":0.00694,"128":0.00694,"131":0.00694,"135":0.00694,"140":0.00694,"142":0.00694,"143":0.00694,"144":0.20814,"145":0.23589,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 132 133 134 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"39":0.01388,"40":0.01388,"41":0.01388,"42":0.01388,"43":0.01388,"44":0.01388,"45":0.01388,"46":0.01388,"47":0.01388,"48":0.02081,"49":0.01388,"50":0.01388,"51":0.01388,"52":0.01388,"53":0.01388,"54":0.01388,"55":0.01388,"56":0.01388,"57":0.01388,"58":0.01388,"59":0.01388,"60":0.01388,"79":0.00694,"85":0.15264,"86":0.00694,"87":0.00694,"91":0.00694,"97":0.00694,"99":0.00694,"101":0.00694,"103":0.00694,"104":0.00694,"105":0.13182,"106":0.00694,"107":0.01388,"108":0.00694,"109":0.11101,"110":0.00694,"112":0.01388,"113":0.00694,"114":0.01388,"115":0.00694,"116":0.02081,"117":0.04163,"118":0.01388,"119":0.00694,"120":0.02081,"121":0.02081,"122":0.39547,"123":0.02081,"124":0.02081,"125":0.0555,"126":0.32609,"127":0.02081,"128":0.38159,"129":0.33302,"130":0.74237,"131":0.36771,"132":0.3469,"133":0.02775,"134":17.95554,"135":0.03469,"136":0.04163,"137":26.74599,"138":0.08326,"139":5.52265,"140":0.24283,"141":1.83163,"142":5.54346,"143":0.01388,"144":0.01388,_:"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 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 88 89 90 92 93 94 95 96 98 100 102 111 145 146"},F:{"92":0.09713,"93":0.01388,"95":0.02081,"120":0.00694,"122":0.1457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00694,"109":0.00694,"120":0.00694,"121":0.79093,"122":0.00694,"126":0.00694,"128":0.00694,"130":0.01388,"131":0.00694,"132":0.00694,"133":0.00694,"134":0.00694,"135":0.00694,"136":0.00694,"137":0.00694,"138":0.01388,"139":0.01388,"140":0.02775,"141":0.18039,"142":1.20027,"143":0.00694,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 123 124 125 127 129"},E:{"14":0.00694,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.3 26.2","14.1":0.00694,"15.6":0.02081,"16.3":0.00694,"16.6":0.04163,"17.1":0.02081,"17.2":0.00694,"17.4":0.00694,"17.5":0.01388,"17.6":0.03469,"18.0":0.01388,"18.1":0.02081,"18.2":0.00694,"18.3":0.01388,"18.4":0.01388,"18.5-18.6":0.04163,"26.0":0.09019,"26.1":0.09019},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0.00232,"7.0-7.1":0.00174,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00523,"10.0-10.2":0.00058,"10.3":0.0093,"11.0-11.2":0.1081,"11.3-11.4":0.00349,"12.0-12.1":0.00116,"12.2-12.5":0.02731,"13.0-13.1":0,"13.2":0.00291,"13.3":0.00116,"13.4-13.7":0.00523,"14.0-14.4":0.00872,"14.5-14.8":0.01104,"15.0-15.1":0.0093,"15.2-15.3":0.00756,"15.4":0.00814,"15.5":0.00872,"15.6-15.8":0.12611,"16.0":0.01569,"16.1":0.02906,"16.2":0.01511,"16.3":0.0279,"16.4":0.00697,"16.5":0.01162,"16.6-16.7":0.17028,"17.0":0.01453,"17.1":0.01744,"17.2":0.01279,"17.3":0.01802,"17.4":0.02964,"17.5":0.05637,"17.6-17.7":0.13832,"18.0":0.0308,"18.1":0.06509,"18.2":0.03487,"18.3":0.11333,"18.4":0.05812,"18.5-18.7":4.05829,"26.0":0.27838,"26.1":0.25397},P:{"26":0.01051,"27":0.01051,"28":0.08407,"29":1.20851,_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":5.57727,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00112,"4.4":0,"4.4.3-4.4.4":0.00279},K:{"0":0.5879,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01735,"9":0.10407,"11":0.05204,_:"6 7 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02143},O:{"0":0.11023},H:{"0":0},L:{"0":18.139},R:{_:"0"},M:{"0":0.30008}};
Index: de_modules/caniuse-lite/data/regions/SH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 3.5 3.6"},D:{"109":1.88827,"112":6.91492,"122":0.62942,"125":8.17377,"126":1.25885,"135":3.14712,"139":0.62942,"140":8.17377,"141":10.69147,"142":30.81555,"143":1.25885,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 120 121 123 124 127 128 129 130 131 132 133 134 136 137 138 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"140":1.25885,"142":4.40597,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.6 26.0 26.1 26.2"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00013,"5.0-5.1":0,"6.0-6.1":0.0005,"7.0-7.1":0.00038,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00113,"10.0-10.2":0.00013,"10.3":0.00201,"11.0-11.2":0.0234,"11.3-11.4":0.00075,"12.0-12.1":0.00025,"12.2-12.5":0.00591,"13.0-13.1":0,"13.2":0.00063,"13.3":0.00025,"13.4-13.7":0.00113,"14.0-14.4":0.00189,"14.5-14.8":0.00239,"15.0-15.1":0.00201,"15.2-15.3":0.00164,"15.4":0.00176,"15.5":0.00189,"15.6-15.8":0.0273,"16.0":0.0034,"16.1":0.00629,"16.2":0.00327,"16.3":0.00604,"16.4":0.00151,"16.5":0.00252,"16.6-16.7":0.03686,"17.0":0.00315,"17.1":0.00377,"17.2":0.00277,"17.3":0.0039,"17.4":0.00642,"17.5":0.0122,"17.6-17.7":0.02994,"18.0":0.00667,"18.1":0.01409,"18.2":0.00755,"18.3":0.02453,"18.4":0.01258,"18.5-18.7":0.87846,"26.0":0.06026,"26.1":0.05497},P:{"29":0.629,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.629,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.62942,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":17.60835},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/SI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.01167,"77":0.01167,"78":0.01167,"83":0.0175,"95":0.05251,"102":0.00583,"103":0.00583,"108":0.00583,"115":0.94511,"122":0.0175,"125":0.0175,"126":0.01167,"127":0.00583,"128":0.0175,"132":0.01167,"133":0.00583,"134":0.01167,"135":0.00583,"136":0.01167,"137":0.01167,"138":0.035,"139":0.04667,"140":0.07584,"141":0.02334,"142":0.02917,"143":0.11085,"144":2.46195,"145":2.74198,"146":0.00583,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 123 124 129 130 131 147 148 3.5 3.6"},D:{"49":0.00583,"51":0.00583,"79":0.02917,"81":0.02334,"87":0.0175,"88":0.00583,"91":0.05251,"96":0.02917,"98":0.04667,"99":0.00583,"100":0.00583,"103":0.0175,"104":0.16919,"108":0.00583,"109":0.92761,"111":0.01167,"112":1.17263,"114":0.0175,"115":0.00583,"116":0.07001,"117":0.00583,"119":0.0175,"120":0.0175,"121":0.00583,"122":0.05834,"123":0.0175,"124":0.05251,"125":0.35587,"126":0.16335,"127":0.00583,"128":0.02917,"129":0.01167,"130":0.10501,"131":0.21586,"132":0.035,"133":0.035,"134":0.07001,"135":0.04084,"136":0.04084,"137":0.04667,"138":0.18085,"139":0.66508,"140":0.52506,"141":8.53514,"142":21.22993,"143":0.02917,"144":0.01167,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 85 86 89 90 92 93 94 95 97 101 102 105 106 107 110 113 118 145 146"},F:{"46":0.05834,"92":0.02334,"93":0.00583,"95":0.02334,"120":0.00583,"122":0.68258,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00583,"109":0.035,"114":0.00583,"118":0.00583,"121":0.00583,"129":0.035,"130":0.00583,"131":0.04084,"133":0.00583,"134":0.00583,"135":0.02917,"136":0.01167,"137":0.01167,"138":0.0175,"139":0.01167,"140":0.05834,"141":0.54256,"142":5.2856,"143":0.01167,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 122 123 124 125 126 127 128 132"},E:{"14":0.00583,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0","13.1":0.00583,"14.1":0.02917,"15.4":0.00583,"15.6":0.05834,"16.1":0.00583,"16.2":0.01167,"16.3":0.00583,"16.4":0.00583,"16.5":0.00583,"16.6":0.06417,"17.0":0.00583,"17.1":0.035,"17.2":0.01167,"17.3":0.0175,"17.4":0.0175,"17.5":0.04667,"17.6":0.15752,"18.0":0.00583,"18.1":0.0175,"18.2":0.00583,"18.3":0.02917,"18.4":0.0175,"18.5-18.6":0.09334,"26.0":0.24503,"26.1":0.2917,"26.2":0.01167},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00098,"5.0-5.1":0,"6.0-6.1":0.00392,"7.0-7.1":0.00294,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00882,"10.0-10.2":0.00098,"10.3":0.01568,"11.0-11.2":0.18233,"11.3-11.4":0.00588,"12.0-12.1":0.00196,"12.2-12.5":0.04607,"13.0-13.1":0,"13.2":0.0049,"13.3":0.00196,"13.4-13.7":0.00882,"14.0-14.4":0.0147,"14.5-14.8":0.01862,"15.0-15.1":0.01568,"15.2-15.3":0.01274,"15.4":0.01372,"15.5":0.0147,"15.6-15.8":0.21272,"16.0":0.02647,"16.1":0.04901,"16.2":0.02549,"16.3":0.04705,"16.4":0.01176,"16.5":0.01961,"16.6-16.7":0.28722,"17.0":0.02451,"17.1":0.02941,"17.2":0.02157,"17.3":0.03039,"17.4":0.04999,"17.5":0.09509,"17.6-17.7":0.2333,"18.0":0.05195,"18.1":0.10979,"18.2":0.05882,"18.3":0.19115,"18.4":0.09803,"18.5-18.7":6.84515,"26.0":0.46954,"26.1":0.42837},P:{"4":0.05172,"20":0.01034,"22":0.02069,"23":0.01034,"24":0.08276,"25":0.01034,"26":0.02069,"27":0.08276,"28":0.47587,"29":2.51382,_:"21 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01034,"6.2-6.4":0.01034,"7.2-7.4":0.06207,"8.2":0.01034,"14.0":0.01034},I:{"0":0.02912,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.48326,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0125},H:{"0":0},L:{"0":30.90035},R:{_:"0"},M:{"0":0.43326}};
Index: de_modules/caniuse-lite/data/regions/SK.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SK.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.02035,"77":0.02035,"78":0.00509,"88":0.00509,"99":0.02544,"115":0.55957,"125":0.02035,"127":0.00509,"128":0.03561,"129":0.01526,"133":0.00509,"134":0.00509,"135":0.00509,"136":0.01526,"137":0.00509,"138":0.00509,"139":0.00509,"140":0.08139,"141":0.01017,"142":0.03052,"143":0.05087,"144":2.43159,"145":2.87924,"146":0.00509,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 130 131 132 147 148 3.5 3.6"},D:{"34":0.00509,"41":0.01017,"49":0.02035,"53":0.00509,"79":0.03561,"81":0.02544,"87":0.02544,"90":0.00509,"91":0.00509,"94":0.01526,"96":0.00509,"97":0.00509,"99":0.00509,"102":0.02544,"103":0.03052,"104":0.01526,"106":0.01017,"108":0.02035,"109":1.37349,"110":0.00509,"111":0.00509,"112":1.3684,"114":0.00509,"116":0.04578,"117":0.00509,"118":0.00509,"119":0.03052,"120":0.02544,"121":0.00509,"122":0.14244,"123":0.01017,"124":0.08139,"125":0.117,"126":0.22383,"127":0.03052,"128":0.06613,"129":0.07122,"130":0.02035,"131":0.07631,"132":0.03561,"133":0.05596,"134":0.0407,"135":0.0407,"136":0.03052,"137":0.13226,"138":0.16278,"139":0.2747,"140":0.44766,"141":5.93144,"142":17.09232,"143":0.03052,_:"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 33 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 85 86 88 89 92 93 95 98 100 101 105 107 113 115 144 145 146"},F:{"46":0.02035,"56":0.00509,"83":0.00509,"85":0.00509,"88":0.00509,"91":0.00509,"92":0.06104,"93":0.01017,"95":0.06613,"114":0.00509,"117":0.00509,"119":0.00509,"120":0.01526,"122":0.79866,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 86 87 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00509,"109":0.03052,"114":0.01017,"127":0.01017,"131":0.02544,"132":0.00509,"133":0.01017,"134":0.00509,"135":0.01017,"136":0.00509,"137":0.00509,"138":0.01017,"139":0.02544,"140":0.05596,"141":0.48835,"142":4.62408,"143":0.02035,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130"},E:{"13":0.00509,"14":0.00509,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 17.0","13.1":0.00509,"14.1":0.01017,"15.2-15.3":0.00509,"15.4":0.00509,"15.5":0.00509,"15.6":0.07122,"16.0":0.00509,"16.1":0.00509,"16.2":0.00509,"16.3":0.01017,"16.4":0.00509,"16.5":0.01017,"16.6":0.08648,"17.1":0.0407,"17.2":0.03561,"17.3":0.01526,"17.4":0.02035,"17.5":0.05087,"17.6":0.117,"18.0":0.01526,"18.1":0.02544,"18.2":0.01526,"18.3":0.05596,"18.4":0.02544,"18.5-18.6":0.13226,"26.0":0.2747,"26.1":0.38661,"26.2":0.01526},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0,"6.0-6.1":0.00417,"7.0-7.1":0.00312,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00937,"10.0-10.2":0.00104,"10.3":0.01666,"11.0-11.2":0.19373,"11.3-11.4":0.00625,"12.0-12.1":0.00208,"12.2-12.5":0.04895,"13.0-13.1":0,"13.2":0.00521,"13.3":0.00208,"13.4-13.7":0.00937,"14.0-14.4":0.01562,"14.5-14.8":0.01979,"15.0-15.1":0.01666,"15.2-15.3":0.01354,"15.4":0.01458,"15.5":0.01562,"15.6-15.8":0.22602,"16.0":0.02812,"16.1":0.05208,"16.2":0.02708,"16.3":0.04999,"16.4":0.0125,"16.5":0.02083,"16.6-16.7":0.30518,"17.0":0.02604,"17.1":0.03125,"17.2":0.02291,"17.3":0.03229,"17.4":0.05312,"17.5":0.10103,"17.6-17.7":0.24789,"18.0":0.0552,"18.1":0.11665,"18.2":0.06249,"18.3":0.2031,"18.4":0.10416,"18.5-18.7":7.27319,"26.0":0.49891,"26.1":0.45516},P:{"4":0.05168,"20":0.02067,"22":0.01034,"23":0.01034,"24":0.01034,"25":0.01034,"26":0.03101,"27":0.03101,"28":0.17571,"29":2.10847,_:"21 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01034,"6.2-6.4":0.01034,"7.2-7.4":0.01034},I:{"0":0.03434,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.47165,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01526,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01474},H:{"0":0},L:{"0":39.57648},R:{_:"0"},M:{"0":0.34391}};
Index: de_modules/caniuse-lite/data/regions/SL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01894,"45":0.00316,"51":0.00316,"56":0.00316,"61":0.00316,"62":0.00631,"69":0.00316,"81":0.00316,"104":0.00316,"112":0.00316,"115":0.04103,"123":0.00631,"125":0.00316,"126":0.00316,"127":0.02209,"139":0.01578,"140":0.01894,"141":0.00316,"142":0.02209,"143":0.02525,"144":0.3156,"145":0.27773,"146":0.01578,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 52 53 54 55 57 58 59 60 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 124 128 129 130 131 132 133 134 135 136 137 138 147 148 3.5 3.6"},D:{"38":0.00316,"48":0.01262,"55":0.01262,"58":0.01262,"60":0.00316,"62":0.00947,"67":0.01578,"68":0.02209,"69":0.0284,"70":0.0284,"71":0.01262,"73":0.00316,"74":0.04418,"75":0.05365,"76":0.01262,"77":0.01894,"79":0.14833,"80":0.03156,"81":0.02525,"83":0.03156,"87":0.04103,"88":0.01578,"90":0.00316,"91":0.03156,"93":0.42606,"94":0.00631,"95":0.00316,"96":0.01894,"98":0.00316,"99":0.00631,"100":0.00631,"101":0.00316,"103":0.31244,"105":0.01578,"108":0.00631,"109":0.06628,"111":0.06943,"113":0.00947,"114":0.01578,"116":0.02209,"118":0.01894,"119":0.08521,"120":0.01894,"121":0.00631,"122":0.02525,"123":0.00316,"124":0.00316,"125":0.27457,"126":0.08521,"127":0.00947,"128":0.03156,"129":0.02209,"130":0.03787,"131":0.05365,"132":0.03472,"133":0.01262,"134":0.02525,"135":0.0284,"136":0.02525,"137":0.09468,"138":0.344,"139":0.10099,"140":0.29035,"141":2.97926,"142":4.8413,"143":0.01578,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 56 57 59 61 63 64 65 66 72 78 84 85 86 89 92 97 102 104 106 107 110 112 115 117 144 145 146"},F:{"31":0.04734,"34":0.00631,"36":0.00316,"37":0.01894,"42":0.00631,"45":0.00631,"49":0.00316,"73":0.01262,"79":0.01894,"86":0.00631,"87":0.00631,"90":0.02525,"91":0.00316,"92":0.0505,"93":0.00947,"95":0.0284,"98":0.00947,"113":0.01262,"117":0.01578,"118":0.00316,"120":0.01262,"122":0.1862,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 35 38 39 40 41 43 44 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 85 88 89 94 96 97 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00631,"14":0.00316,"15":0.00316,"16":0.00316,"17":0.00316,"18":0.07259,"84":0.05681,"89":0.00316,"90":0.00947,"92":0.05681,"98":0.01262,"100":0.01894,"109":0.00316,"112":0.00316,"114":0.1073,"119":0.00316,"122":0.00631,"124":0.00316,"125":0.01894,"126":0.00316,"127":0.00947,"129":0.00947,"132":0.00316,"133":0.01894,"135":0.00316,"136":0.01262,"137":0.00631,"138":0.02525,"139":0.03472,"140":0.03472,"141":0.37872,"142":2.78359,"143":0.00947,_:"13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 120 121 123 128 130 131 134"},E:{"14":0.00316,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 16.0 16.3 16.4 16.5 17.0 18.0 26.2","11.1":0.00631,"13.1":0.13255,"14.1":0.00631,"15.2-15.3":0.00316,"15.4":0.00316,"15.5":0.00947,"15.6":0.04103,"16.1":0.00316,"16.2":0.00316,"16.6":0.02209,"17.1":0.16727,"17.2":0.00316,"17.3":0.00631,"17.4":0.01578,"17.5":0.00316,"17.6":0.06628,"18.1":0.00316,"18.2":0.00316,"18.3":0.00316,"18.4":0.00947,"18.5-18.6":0.03156,"26.0":0.07574,"26.1":0.08521},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00053,"5.0-5.1":0,"6.0-6.1":0.00211,"7.0-7.1":0.00158,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00474,"10.0-10.2":0.00053,"10.3":0.00842,"11.0-11.2":0.09789,"11.3-11.4":0.00316,"12.0-12.1":0.00105,"12.2-12.5":0.02474,"13.0-13.1":0,"13.2":0.00263,"13.3":0.00105,"13.4-13.7":0.00474,"14.0-14.4":0.00789,"14.5-14.8":0.01,"15.0-15.1":0.00842,"15.2-15.3":0.00684,"15.4":0.00737,"15.5":0.00789,"15.6-15.8":0.11421,"16.0":0.01421,"16.1":0.02632,"16.2":0.01368,"16.3":0.02526,"16.4":0.00632,"16.5":0.01053,"16.6-16.7":0.15421,"17.0":0.01316,"17.1":0.01579,"17.2":0.01158,"17.3":0.01632,"17.4":0.02684,"17.5":0.05105,"17.6-17.7":0.12526,"18.0":0.02789,"18.1":0.05895,"18.2":0.03158,"18.3":0.10263,"18.4":0.05263,"18.5-18.7":3.67518,"26.0":0.2521,"26.1":0.22999},P:{"4":0.06189,"21":0.01031,"22":0.02063,"23":0.01031,"24":0.09283,"25":0.12377,"26":0.05157,"27":0.18566,"28":0.35068,"29":0.44351,_:"20 8.2 10.1 12.0 13.0 14.0 15.0 18.0","5.0-5.4":0.01031,"6.2-6.4":0.02063,"7.2-7.4":0.02063,"9.2":0.02063,"11.1-11.2":0.01031,"16.0":0.01031,"17.0":0.01031,"19.0":0.01031},I:{"0":0.01367,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":9.54944,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.03472,"11":0.03472,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{"2.5":0.00684,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00684},O:{"0":0.31482},H:{"0":1.75},L:{"0":63.26235},R:{_:"0"},M:{"0":0.15057}};
Index: de_modules/caniuse-lite/data/regions/SM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.00672,"78":0.05709,"103":0.01679,"115":0.05373,"125":0.00672,"128":0.02015,"134":0.00336,"140":0.04365,"141":0.05373,"142":0.01343,"143":0.03358,"144":0.544,"145":0.8395,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 135 136 137 138 139 146 147 148 3.5 3.6"},D:{"49":0.00672,"61":0.00336,"79":0.01007,"87":0.01679,"103":0.04365,"106":0.00336,"109":1.7428,"111":0.00336,"112":0.01007,"115":0.00336,"116":0.22163,"117":0.00336,"119":0.00672,"120":0.00336,"121":0.02351,"122":0.08059,"124":0.33244,"125":0.15111,"126":0.01343,"128":0.01007,"129":0.01343,"130":0.1679,"131":0.00336,"132":0.00336,"134":0.00336,"135":0.03358,"137":0.00336,"138":0.09067,"139":0.03694,"140":0.13432,"141":4.27473,"142":15.21846,"144":0.00336,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 107 108 110 113 114 118 123 127 133 136 143 145 146"},F:{"75":0.00336,"89":0.07052,"122":0.00336,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00336,"125":0.09738,"128":0.00336,"129":0.00672,"135":0.00336,"140":0.00336,"141":0.2317,"142":3.44867,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 126 127 130 131 132 133 134 136 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 17.0 17.3 18.1 26.2","12.1":0.01343,"13.1":0.01007,"14.1":0.01007,"15.6":0.04365,"16.1":0.01007,"16.5":0.00336,"16.6":0.28543,"17.1":0.31565,"17.2":0.00336,"17.4":0.04701,"17.5":0.61787,"17.6":0.10746,"18.0":0.00672,"18.2":0.03358,"18.3":0.01007,"18.4":0.00336,"18.5-18.6":0.04365,"26.0":0.10074,"26.1":0.32908},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00054,"5.0-5.1":0,"6.0-6.1":0.00215,"7.0-7.1":0.00161,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00483,"10.0-10.2":0.00054,"10.3":0.00859,"11.0-11.2":0.09982,"11.3-11.4":0.00322,"12.0-12.1":0.00107,"12.2-12.5":0.02522,"13.0-13.1":0,"13.2":0.00268,"13.3":0.00107,"13.4-13.7":0.00483,"14.0-14.4":0.00805,"14.5-14.8":0.0102,"15.0-15.1":0.00859,"15.2-15.3":0.00698,"15.4":0.00751,"15.5":0.00805,"15.6-15.8":0.11646,"16.0":0.01449,"16.1":0.02683,"16.2":0.01395,"16.3":0.02576,"16.4":0.00644,"16.5":0.01073,"16.6-16.7":0.15725,"17.0":0.01342,"17.1":0.0161,"17.2":0.01181,"17.3":0.01664,"17.4":0.02737,"17.5":0.05206,"17.6-17.7":0.12773,"18.0":0.02844,"18.1":0.06011,"18.2":0.0322,"18.3":0.10465,"18.4":0.05367,"18.5-18.7":3.74759,"26.0":0.25707,"26.1":0.23453},P:{"4":0.01009,"28":0.95896,"29":50.59279,_:"20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00663,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.01993,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":11.79147},R:{_:"0"},M:{"0":0.18598}};
Index: de_modules/caniuse-lite/data/regions/SN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0124,"52":0.00413,"78":0.00413,"91":0.00413,"95":0.03307,"102":0.00413,"115":0.17776,"127":0.00413,"128":0.02067,"130":0.00413,"135":0.01654,"137":0.00413,"138":0.00827,"139":0.00413,"140":0.07028,"141":0.00413,"142":0.00827,"143":0.0248,"144":0.69451,"145":0.84334,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 131 132 133 134 136 146 147 148 3.5 3.6"},D:{"29":0.00413,"55":0.00413,"65":0.00413,"68":0.00413,"69":0.0248,"70":0.00413,"72":0.00413,"73":0.00413,"75":0.00413,"77":0.02067,"79":0.02067,"81":0.00827,"83":0.00827,"85":0.00413,"86":0.0124,"87":0.02067,"89":0.00413,"90":0.00413,"92":0.00827,"93":0.00827,"94":0.00413,"95":0.00413,"96":0.00413,"98":0.02067,"103":0.08268,"104":0.00413,"108":0.02067,"109":0.38033,"110":0.00827,"111":0.01654,"112":9.17335,"113":0.00413,"114":0.03721,"116":0.12815,"117":0.00827,"119":0.03307,"120":0.01654,"121":0.01654,"122":0.04961,"123":0.00413,"124":0.00827,"125":0.48368,"126":2.99302,"127":0.00827,"128":0.04961,"129":0.0124,"130":0.00413,"131":0.02894,"132":0.03721,"133":0.0124,"134":0.0248,"135":0.03721,"136":0.0248,"137":0.03721,"138":0.20257,"139":0.16949,"140":0.26458,"141":3.41882,"142":7.38746,"143":0.01654,_:"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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 67 71 74 76 78 80 84 88 91 97 99 100 101 102 105 106 107 115 118 144 145 146"},F:{"37":0.00413,"86":0.00413,"92":0.0124,"95":0.00827,"104":0.00413,"120":0.00413,"122":0.09922,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00413,"18":0.0124,"85":0.00413,"90":0.00413,"92":0.0248,"100":0.00413,"109":0.03721,"114":0.28111,"118":0.00413,"122":0.00413,"123":0.00413,"126":0.00413,"128":0.01654,"130":0.00827,"131":0.00413,"132":0.00827,"133":0.00827,"134":0.0124,"135":0.00413,"136":0.00413,"137":0.02067,"138":0.0248,"139":0.0248,"140":0.04134,"141":0.39273,"142":3.98518,"143":0.00413,_:"13 14 15 16 17 79 80 81 83 84 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 124 125 127 129"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4 15.5 16.0 16.2 16.5 17.0 17.2","11.1":0.00413,"13.1":0.02894,"14.1":0.0124,"15.1":0.00413,"15.6":0.05374,"16.1":0.00827,"16.3":0.00413,"16.4":0.00413,"16.6":0.06201,"17.1":0.02894,"17.3":0.00413,"17.4":0.00827,"17.5":0.01654,"17.6":0.10335,"18.0":0.00827,"18.1":0.00827,"18.2":0.00413,"18.3":0.01654,"18.4":0.02067,"18.5-18.6":0.07441,"26.0":0.13229,"26.1":0.14469,"26.2":0.0124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00119,"5.0-5.1":0,"6.0-6.1":0.00474,"7.0-7.1":0.00356,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01067,"10.0-10.2":0.00119,"10.3":0.01897,"11.0-11.2":0.22054,"11.3-11.4":0.00711,"12.0-12.1":0.00237,"12.2-12.5":0.05573,"13.0-13.1":0,"13.2":0.00593,"13.3":0.00237,"13.4-13.7":0.01067,"14.0-14.4":0.01779,"14.5-14.8":0.02253,"15.0-15.1":0.01897,"15.2-15.3":0.01541,"15.4":0.0166,"15.5":0.01779,"15.6-15.8":0.2573,"16.0":0.03201,"16.1":0.05929,"16.2":0.03083,"16.3":0.05691,"16.4":0.01423,"16.5":0.02371,"16.6-16.7":0.34742,"17.0":0.02964,"17.1":0.03557,"17.2":0.02609,"17.3":0.03676,"17.4":0.06047,"17.5":0.11501,"17.6-17.7":0.2822,"18.0":0.06284,"18.1":0.1328,"18.2":0.07114,"18.3":0.23122,"18.4":0.11857,"18.5-18.7":8.27989,"26.0":0.56796,"26.1":0.51816},P:{"4":0.0102,"21":0.0102,"22":0.04081,"23":0.04081,"24":0.08162,"25":0.08162,"26":0.07142,"27":0.10202,"28":0.33668,"29":1.62219,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.11223,"17.0":0.0204,"19.0":0.0102},I:{"0":0.06445,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.29335,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02934},H:{"0":0},L:{"0":50.38455},R:{_:"0"},M:{"0":0.14668}};
Index: de_modules/caniuse-lite/data/regions/SO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01514,"72":0.00303,"112":0.01211,"115":0.01817,"127":0.01514,"128":0.00908,"140":0.00606,"142":0.00908,"143":0.00606,"144":0.19682,"145":0.23316,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"41":0.00303,"49":0.00303,"53":0.00303,"58":0.00606,"63":0.01211,"64":0.00606,"65":0.00606,"68":0.00303,"69":0.01817,"70":0.00303,"72":0.03634,"74":0.00303,"75":0.00606,"76":0.00606,"77":0.00303,"78":0.00606,"79":0.01817,"80":0.00908,"81":0.00606,"83":0.00303,"84":0.00303,"85":0.00303,"86":0.00908,"87":0.01817,"88":0.00303,"89":0.00303,"90":0.00303,"91":0.00303,"93":0.00908,"94":0.01514,"95":0.01211,"98":0.01211,"102":0.00303,"103":0.03028,"104":0.09084,"105":0.02422,"106":0.00303,"108":0.01211,"109":0.15746,"111":0.02422,"114":0.00908,"115":0.00303,"116":0.01817,"118":0.00303,"119":0.03028,"120":0.00303,"121":0.00303,"122":0.0212,"123":0.00303,"124":0.00303,"125":0.25132,"126":0.24527,"127":0.00606,"128":0.01817,"129":0.00303,"130":0.00303,"131":0.10598,"132":0.03028,"133":0.03028,"134":0.01514,"135":0.03028,"136":0.0757,"137":0.03331,"138":0.18471,"139":0.17562,"140":0.41181,"141":3.30355,"142":8.29672,"143":0.01514,"144":0.00303,_:"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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 66 67 71 73 92 96 97 99 100 101 107 110 112 113 117 145 146"},F:{"76":0.00303,"77":0.00303,"92":0.04542,"93":0.01514,"95":0.00606,"113":0.00303,"117":0.00606,"120":0.00303,"122":0.1726,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00303,"15":0.00303,"16":0.00303,"17":0.00303,"18":0.03634,"84":0.00303,"89":0.00303,"90":0.05148,"92":0.03028,"100":0.00908,"104":0.00303,"107":0.00303,"109":0.00606,"111":0.0212,"112":0.00908,"114":0.39667,"120":0.00303,"122":0.00606,"126":0.00303,"127":0.00303,"130":0.00303,"131":0.00303,"132":0.00303,"133":0.00908,"135":0.00606,"136":0.01211,"137":0.00303,"138":0.01817,"139":0.00908,"140":0.11204,"141":0.25132,"142":2.30431,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 105 106 108 110 113 115 116 117 118 119 121 123 124 125 128 129 134 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 26.2","5.1":0.00303,"9.1":0.00908,"13.1":0.0212,"14.1":0.00303,"15.6":0.01514,"16.1":0.00606,"16.6":0.01514,"17.1":0.00908,"17.5":0.00606,"17.6":0.02725,"18.1":0.00303,"18.2":0.00303,"18.3":0.03028,"18.4":0.01817,"18.5-18.6":0.04239,"26.0":0.0545,"26.1":0.04239},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00069,"5.0-5.1":0,"6.0-6.1":0.00277,"7.0-7.1":0.00208,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00624,"10.0-10.2":0.00069,"10.3":0.0111,"11.0-11.2":0.12901,"11.3-11.4":0.00416,"12.0-12.1":0.00139,"12.2-12.5":0.0326,"13.0-13.1":0,"13.2":0.00347,"13.3":0.00139,"13.4-13.7":0.00624,"14.0-14.4":0.0104,"14.5-14.8":0.01318,"15.0-15.1":0.0111,"15.2-15.3":0.00902,"15.4":0.00971,"15.5":0.0104,"15.6-15.8":0.15051,"16.0":0.01873,"16.1":0.03468,"16.2":0.01803,"16.3":0.03329,"16.4":0.00832,"16.5":0.01387,"16.6-16.7":0.20323,"17.0":0.01734,"17.1":0.02081,"17.2":0.01526,"17.3":0.0215,"17.4":0.03537,"17.5":0.06728,"17.6-17.7":0.16508,"18.0":0.03676,"18.1":0.07768,"18.2":0.04162,"18.3":0.13525,"18.4":0.06936,"18.5-18.7":4.84351,"26.0":0.33224,"26.1":0.30311},P:{"4":0.01024,"22":0.04095,"23":0.03071,"24":0.12286,"25":0.215,"26":0.2969,"27":0.48119,"28":0.77809,"29":1.22856,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.18428,"11.1-11.2":0.02048,"17.0":0.01024,"19.0":0.01024},I:{"0":0.16011,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":2.30985,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.00697,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.35552},H:{"0":0.13},L:{"0":66.74661},R:{_:"0"},M:{"0":0.1673}};
Index: de_modules/caniuse-lite/data/regions/SR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03547,"86":0.00443,"94":0.00443,"102":0.00887,"103":0.0133,"115":1.40558,"136":0.00887,"139":0.00443,"140":0.00443,"142":0.00443,"143":0.01774,"144":1.19275,"145":1.52973,"146":0.01774,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 95 96 97 98 99 100 101 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 141 147 148 3.5 3.6"},D:{"49":0.00887,"69":0.04434,"75":0.00887,"81":0.00443,"83":0.00443,"84":0.00443,"86":0.00443,"93":0.0133,"96":0.00887,"102":0.00443,"103":0.03547,"104":0.58529,"108":0.01774,"109":0.39463,"111":0.05321,"114":0.00443,"116":0.03547,"119":0.00443,"120":0.04877,"122":0.04877,"123":0.00443,"124":0.02217,"125":0.70944,"126":0.82029,"128":0.00443,"129":0.00443,"130":0.02217,"131":0.01774,"132":0.04434,"133":0.00443,"134":0.00887,"135":0.01774,"136":0.01774,"137":0.00887,"138":0.07981,"139":0.14189,"140":0.20396,"141":3.73343,"142":13.60795,"143":0.03991,"144":0.00887,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 79 80 85 87 88 89 90 91 92 94 95 97 98 99 100 101 105 106 107 110 112 113 115 117 118 121 127 145 146"},F:{"92":0.08868,"93":0.00443,"120":0.00443,"121":0.00443,"122":0.30151,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00443,"92":0.00443,"109":0.0133,"114":1.07746,"128":0.04877,"131":0.00443,"133":0.0266,"136":0.00443,"137":0.0133,"138":0.0133,"139":0.00443,"140":0.04877,"141":0.72718,"142":7.50233,"143":0.00443,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 132 134 135"},E:{"15":0.00443,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.1 16.2 16.3 16.4 17.0 17.2 17.3 18.0 18.1 18.2 18.4","13.1":0.26604,"14.1":0.0133,"15.6":0.11528,"16.0":0.00443,"16.5":0.00443,"16.6":0.18179,"17.1":0.00443,"17.4":0.00443,"17.5":0.00443,"17.6":0.05764,"18.3":0.08868,"18.5-18.6":0.12859,"26.0":0.10642,"26.1":0.16406,"26.2":0.00887},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00114,"5.0-5.1":0,"6.0-6.1":0.00455,"7.0-7.1":0.00341,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01023,"10.0-10.2":0.00114,"10.3":0.01819,"11.0-11.2":0.21151,"11.3-11.4":0.00682,"12.0-12.1":0.00227,"12.2-12.5":0.05345,"13.0-13.1":0,"13.2":0.00569,"13.3":0.00227,"13.4-13.7":0.01023,"14.0-14.4":0.01706,"14.5-14.8":0.02161,"15.0-15.1":0.01819,"15.2-15.3":0.01478,"15.4":0.01592,"15.5":0.01706,"15.6-15.8":0.24676,"16.0":0.0307,"16.1":0.05686,"16.2":0.02957,"16.3":0.05458,"16.4":0.01365,"16.5":0.02274,"16.6-16.7":0.33318,"17.0":0.02843,"17.1":0.03411,"17.2":0.02502,"17.3":0.03525,"17.4":0.05799,"17.5":0.1103,"17.6-17.7":0.27064,"18.0":0.06027,"18.1":0.12736,"18.2":0.06823,"18.3":0.22174,"18.4":0.11371,"18.5-18.7":7.94061,"26.0":0.54469,"26.1":0.49693},P:{"4":0.01035,"21":0.0207,"22":0.0414,"23":0.0207,"24":0.22772,"25":0.12421,"26":0.05176,"27":0.5072,"28":0.36229,"29":3.13636,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.12421,"17.0":0.01035,"19.0":0.01035},I:{"0":0.00556,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.54547,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.09462},O:{"0":0.33953},H:{"0":0},L:{"0":44.20282},R:{_:"0"},M:{"0":0.13915}};
Index: de_modules/caniuse-lite/data/regions/ST.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ST.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.0496,"49":0.02893,"113":0.02067,"115":0.02893,"116":0.02067,"140":0.02067,"144":0.14466,"145":0.15292,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"43":0.00827,"69":0.02067,"72":0.00827,"73":0.0496,"79":0.04133,"81":0.02893,"83":0.12399,"94":0.10333,"95":0.00827,"98":0.0496,"109":0.41743,"111":0.00827,"112":0.0496,"113":0.08266,"114":0.65301,"115":0.27691,"116":0.04133,"117":0.02893,"120":0.04133,"121":0.08266,"122":0.04133,"125":0.66541,"126":0.15292,"127":0.04133,"131":0.10333,"132":0.02067,"137":0.09093,"138":0.20252,"139":0.15292,"140":0.25625,"141":2.65339,"142":5.76967,"143":0.02893,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 74 75 76 77 78 80 84 85 86 87 88 89 90 91 92 93 96 97 99 100 101 102 103 104 105 106 107 108 110 118 119 123 124 128 129 130 133 134 135 136 144 145 146"},F:{"92":0.04133,"95":0.02067,"121":0.04133,"122":0.8762,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0496,"18":0.062,"92":0.11159,"114":0.74394,"137":0.02067,"138":0.02067,"140":0.00827,"141":0.25625,"142":2.79804,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.5 18.0 18.1 18.2 18.3 18.4 26.2","11.1":0.02067,"17.4":0.02067,"17.6":0.10333,"18.5-18.6":0.00827,"26.0":0.29758,"26.1":0.00827},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00029,"5.0-5.1":0,"6.0-6.1":0.00116,"7.0-7.1":0.00087,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00261,"10.0-10.2":0.00029,"10.3":0.00465,"11.0-11.2":0.05402,"11.3-11.4":0.00174,"12.0-12.1":0.00058,"12.2-12.5":0.01365,"13.0-13.1":0,"13.2":0.00145,"13.3":0.00058,"13.4-13.7":0.00261,"14.0-14.4":0.00436,"14.5-14.8":0.00552,"15.0-15.1":0.00465,"15.2-15.3":0.00378,"15.4":0.00407,"15.5":0.00436,"15.6-15.8":0.06302,"16.0":0.00784,"16.1":0.01452,"16.2":0.00755,"16.3":0.01394,"16.4":0.00348,"16.5":0.00581,"16.6-16.7":0.08509,"17.0":0.00726,"17.1":0.00871,"17.2":0.00639,"17.3":0.009,"17.4":0.01481,"17.5":0.02817,"17.6-17.7":0.06912,"18.0":0.01539,"18.1":0.03253,"18.2":0.01742,"18.3":0.05663,"18.4":0.02904,"18.5-18.7":2.02798,"26.0":0.13911,"26.1":0.12691},P:{"4":0.01029,"24":0.03088,"25":0.04117,"27":0.31906,"28":0.21614,"29":1.03953,_:"20 21 22 23 26 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01029,"6.2-6.4":0.07205,"7.2-7.4":0.06175},I:{"0":0.10546,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":1.103,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.65124},H:{"0":0},L:{"0":68.39473},R:{_:"0"},M:{"0":0.18774}};
Index: de_modules/caniuse-lite/data/regions/SV.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SV.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00777,"52":0.00389,"115":0.10492,"120":0.04275,"122":0.00777,"123":0.00777,"128":0.01943,"132":0.00389,"136":0.00777,"139":0.00777,"140":0.04275,"141":0.01554,"142":0.00777,"143":0.00777,"144":0.55181,"145":0.66062,"146":0.00389,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 124 125 126 127 129 130 131 133 134 135 137 138 147 148 3.5 3.6"},D:{"64":0.01166,"65":0.00389,"69":0.00777,"79":0.00777,"83":0.00389,"85":0.00389,"87":0.03497,"93":0.00389,"97":0.01166,"101":0.00389,"102":0.00389,"103":0.00777,"106":0.00777,"107":0.00389,"108":0.01166,"109":0.85881,"110":0.00389,"111":0.01554,"112":5.10232,"114":0.00389,"115":0.00389,"116":0.01943,"119":0.06218,"120":0.01943,"121":0.00389,"122":0.03886,"123":0.00777,"124":0.01554,"125":0.19041,"126":0.69171,"127":0.01554,"128":0.0272,"129":0.02332,"130":0.00389,"131":0.07383,"132":0.03497,"133":0.02332,"134":0.03109,"135":0.06995,"136":0.02332,"137":0.0544,"138":0.29145,"139":0.79274,"140":0.18653,"141":3.11269,"142":13.72147,"143":0.01166,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 66 67 68 70 71 72 73 74 75 76 77 78 80 81 84 86 88 89 90 91 92 94 95 96 98 99 100 104 105 113 117 118 144 145 146"},F:{"67":0.00389,"92":0.0272,"93":0.00389,"95":0.00777,"120":0.00389,"122":0.31088,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.0272,"92":0.00777,"109":0.00777,"112":0.00389,"114":0.09715,"115":0.11269,"122":0.00389,"124":0.01166,"127":0.00389,"128":0.00389,"131":0.00389,"132":0.00777,"133":0.00777,"134":0.00777,"135":0.00777,"136":0.00777,"137":0.00389,"138":0.01943,"139":0.0272,"140":0.10104,"141":0.27591,"142":3.17875,"143":0.00777,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 116 117 118 119 120 121 123 125 126 129 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0 17.2 17.3 18.2","5.1":0.00389,"12.1":0.00389,"14.1":0.00389,"15.6":0.01943,"16.3":0.00389,"16.4":0.00389,"16.6":0.03109,"17.1":0.01166,"17.4":0.00777,"17.5":0.01554,"17.6":0.04275,"18.0":0.00777,"18.1":0.00389,"18.3":0.00389,"18.4":0.00777,"18.5-18.6":0.04663,"26.0":0.3614,"26.1":0.25259,"26.2":0.00777},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00159,"5.0-5.1":0,"6.0-6.1":0.00638,"7.0-7.1":0.00478,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01435,"10.0-10.2":0.00159,"10.3":0.0255,"11.0-11.2":0.29647,"11.3-11.4":0.00956,"12.0-12.1":0.00319,"12.2-12.5":0.07491,"13.0-13.1":0,"13.2":0.00797,"13.3":0.00319,"13.4-13.7":0.01435,"14.0-14.4":0.02391,"14.5-14.8":0.03028,"15.0-15.1":0.0255,"15.2-15.3":0.02072,"15.4":0.02231,"15.5":0.02391,"15.6-15.8":0.34588,"16.0":0.04304,"16.1":0.0797,"16.2":0.04144,"16.3":0.07651,"16.4":0.01913,"16.5":0.03188,"16.6-16.7":0.46702,"17.0":0.03985,"17.1":0.04782,"17.2":0.03507,"17.3":0.04941,"17.4":0.08129,"17.5":0.15461,"17.6-17.7":0.37935,"18.0":0.08448,"18.1":0.17852,"18.2":0.09564,"18.3":0.31081,"18.4":0.15939,"18.5-18.7":11.13034,"26.0":0.76349,"26.1":0.69654},P:{"4":0.01018,"20":0.01018,"21":0.01018,"22":0.01018,"24":0.01018,"25":0.01018,"26":0.01018,"27":0.03053,"28":0.17301,"29":2.82916,_:"23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03053,"13.0":0.01018,"15.0":0.01018},I:{"0":0.05495,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.17731,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01834},H:{"0":0},L:{"0":45.48804},R:{_:"0"},M:{"0":0.31793}};
Index: de_modules/caniuse-lite/data/regions/SY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01307,"12":0.00327,"43":0.00327,"47":0.00327,"48":0.00327,"52":0.00653,"58":0.00327,"63":0.00327,"72":0.00327,"78":0.00653,"115":0.18949,"120":0.00327,"127":0.00653,"134":0.00327,"136":0.00327,"138":0.0098,"139":0.00327,"140":0.0098,"142":0.0098,"143":0.04574,"144":0.21562,"145":0.18949,_:"2 3 4 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 56 57 59 60 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 124 125 126 128 129 130 131 132 133 135 137 141 146 147 148 3.5 3.6"},D:{"38":0.00327,"47":0.00327,"53":0.00327,"55":0.00327,"56":0.00327,"58":0.00653,"60":0.00327,"62":0.00327,"63":0.00327,"64":0.00327,"65":0.00327,"66":0.00653,"68":0.01634,"69":0.0196,"70":0.01634,"71":0.01307,"72":0.00327,"73":0.01307,"74":0.00653,"75":0.0098,"76":0.00653,"78":0.00653,"79":0.04247,"80":0.00653,"81":0.0098,"83":0.0294,"84":0.00327,"85":0.00327,"86":0.01307,"87":0.05554,"88":0.00653,"89":0.00653,"90":0.00327,"91":0.00653,"92":0.00327,"93":0.00327,"94":0.0098,"95":0.00327,"96":0.00327,"97":0.00653,"98":0.07187,"99":0.00327,"100":0.00327,"101":0.00653,"102":0.0196,"103":0.02287,"104":0.00653,"105":0.00653,"106":0.0098,"107":0.01307,"108":0.05227,"109":0.70894,"110":0.00653,"111":0.0196,"112":7.58271,"113":0.0098,"114":0.01634,"115":0.00327,"116":0.0196,"117":0.0098,"118":0.0098,"119":0.02287,"120":0.06534,"121":0.01634,"122":0.04901,"123":0.02614,"124":0.01634,"125":0.13395,"126":1.60083,"127":0.0196,"128":0.0098,"129":0.01307,"130":0.0294,"131":0.10128,"132":0.03594,"133":0.0294,"134":0.03594,"135":0.03267,"136":0.05881,"137":0.11435,"138":0.12088,"139":0.10781,"140":0.21236,"141":1.18919,"142":2.70181,"143":0.01307,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 48 49 50 51 52 54 57 59 61 67 77 144 145 146"},F:{"73":0.00653,"75":0.00327,"79":0.00653,"85":0.00327,"90":0.00653,"91":0.01307,"92":0.11435,"93":0.01307,"95":0.0294,"114":0.00327,"120":0.00327,"122":0.04901,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 76 77 78 80 81 82 83 84 86 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00327,"18":0.00327,"90":0.00327,"92":0.02614,"100":0.00327,"109":0.02287,"114":0.39204,"122":0.00653,"131":0.00327,"134":0.00327,"135":0.00327,"137":0.00327,"138":0.00653,"139":0.00653,"140":0.0196,"141":0.07187,"142":0.57173,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0 17.2 17.3 18.0 18.1 18.2 26.2","5.1":0.11108,"14.1":0.00327,"15.6":0.00653,"16.3":0.00327,"16.4":0.00327,"16.6":0.00653,"17.1":0.00327,"17.4":0.00327,"17.5":0.01307,"17.6":0.0098,"18.3":0.00653,"18.4":0.00327,"18.5-18.6":0.0098,"26.0":0.00653,"26.1":0.0098},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00022,"5.0-5.1":0,"6.0-6.1":0.00089,"7.0-7.1":0.00067,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00201,"10.0-10.2":0.00022,"10.3":0.00358,"11.0-11.2":0.04158,"11.3-11.4":0.00134,"12.0-12.1":0.00045,"12.2-12.5":0.01051,"13.0-13.1":0,"13.2":0.00112,"13.3":0.00045,"13.4-13.7":0.00201,"14.0-14.4":0.00335,"14.5-14.8":0.00425,"15.0-15.1":0.00358,"15.2-15.3":0.00291,"15.4":0.00313,"15.5":0.00335,"15.6-15.8":0.04851,"16.0":0.00604,"16.1":0.01118,"16.2":0.00581,"16.3":0.01073,"16.4":0.00268,"16.5":0.00447,"16.6-16.7":0.06551,"17.0":0.00559,"17.1":0.00671,"17.2":0.00492,"17.3":0.00693,"17.4":0.0114,"17.5":0.02169,"17.6-17.7":0.05321,"18.0":0.01185,"18.1":0.02504,"18.2":0.01341,"18.3":0.0436,"18.4":0.02236,"18.5-18.7":1.56118,"26.0":0.10709,"26.1":0.0977},P:{"4":0.53404,"20":0.04031,"21":0.05038,"22":0.09069,"23":0.07053,"24":0.07053,"25":0.29221,"26":0.1713,"27":0.33252,"28":0.7658,"29":0.68519,"5.0-5.4":0.02015,"6.2-6.4":0.20153,"7.2-7.4":0.30229,"8.2":0.02015,"9.2":0.06046,"10.1":0.02015,"11.1-11.2":0.04031,"12.0":0.01008,"13.0":0.09069,"14.0":0.06046,"15.0":0.03023,"16.0":0.04031,"17.0":0.08061,"18.0":0.02015,"19.0":0.02015},I:{"0":0.06725,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.99377,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03594,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.54545},H:{"0":0.05},L:{"0":73.24863},R:{_:"0"},M:{"0":0.06061}};
Index: de_modules/caniuse-lite/data/regions/SZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/SZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00252,"78":0.00755,"111":0.02266,"112":0.00252,"113":0.01259,"115":0.08309,"126":0.00252,"127":0.00252,"133":0.00252,"139":0.00252,"140":0.00755,"141":0.00252,"143":0.00504,"144":0.21907,"145":0.25432,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 114 116 117 118 119 120 121 122 123 124 125 128 129 130 131 132 134 135 136 137 138 142 146 147 148 3.5 3.6"},D:{"56":0.00755,"61":0.00252,"68":0.01511,"69":0.00755,"70":0.01763,"71":0.00755,"73":0.00252,"74":0.00252,"75":0.00252,"78":0.00504,"80":0.00504,"83":0.00755,"86":0.01763,"87":0.00504,"88":0.00252,"90":0.00252,"93":0.00252,"95":0.00252,"99":0.00252,"100":0.01511,"101":0.01007,"102":0.00504,"103":0.02014,"104":0.00755,"106":0.00252,"107":0.00252,"109":0.18381,"111":0.03273,"112":0.02518,"113":0.00504,"114":0.01259,"115":0.00755,"116":0.01007,"117":0.00252,"118":0.00252,"119":0.01763,"120":0.00755,"121":0.00252,"122":0.01511,"123":0.00755,"124":0.00504,"125":0.08058,"126":0.04281,"127":0.00504,"128":0.04281,"129":0.00504,"130":0.00252,"131":0.0277,"132":0.01007,"133":0.00252,"134":0.00755,"135":0.01259,"136":0.06547,"137":0.06799,"138":0.59677,"139":0.13849,"140":0.24676,"141":1.96656,"142":4.30578,"143":0.00252,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 62 63 64 65 66 67 72 76 77 79 81 84 85 89 91 92 94 96 97 98 105 108 110 144 145 146"},F:{"40":0.00504,"42":0.00252,"45":0.00755,"73":0.00755,"79":0.00252,"85":0.00252,"87":0.00252,"88":0.00504,"89":0.00755,"90":0.03273,"91":0.00504,"92":0.08309,"95":0.01763,"117":0.00755,"118":0.00504,"119":0.00252,"120":0.00504,"122":0.48094,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 86 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00755,"15":0.00252,"16":0.00755,"17":0.00504,"18":0.01763,"83":0.00252,"84":0.00252,"90":0.00252,"92":0.04029,"108":0.00252,"109":0.02518,"111":0.00252,"114":0.03273,"118":0.00252,"119":0.00504,"120":0.00252,"122":0.00755,"124":0.00755,"126":0.00252,"127":0.00252,"129":0.00252,"130":0.00252,"131":0.00252,"132":0.00252,"133":0.00504,"134":0.01259,"135":0.00252,"136":0.00504,"137":0.00504,"138":0.10072,"139":0.04029,"140":0.04784,"141":0.27446,"142":2.34678,"143":0.00504,_:"13 14 79 80 81 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 112 113 115 116 117 121 123 125 128"},E:{"14":0.00252,"15":0.00252,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 18.1 26.2","11.1":0.00755,"13.1":0.00504,"14.1":0.00252,"15.2-15.3":0.00252,"15.4":0.00252,"15.6":0.04029,"16.6":0.0554,"17.5":0.00504,"17.6":0.03022,"18.0":0.04281,"18.2":0.00504,"18.3":0.00252,"18.4":0.04784,"18.5-18.6":0.0277,"26.0":0.08813,"26.1":0.0705},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00045,"5.0-5.1":0,"6.0-6.1":0.00182,"7.0-7.1":0.00136,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00409,"10.0-10.2":0.00045,"10.3":0.00728,"11.0-11.2":0.08461,"11.3-11.4":0.00273,"12.0-12.1":0.00091,"12.2-12.5":0.02138,"13.0-13.1":0,"13.2":0.00227,"13.3":0.00091,"13.4-13.7":0.00409,"14.0-14.4":0.00682,"14.5-14.8":0.00864,"15.0-15.1":0.00728,"15.2-15.3":0.00591,"15.4":0.00637,"15.5":0.00682,"15.6-15.8":0.09871,"16.0":0.01228,"16.1":0.02275,"16.2":0.01183,"16.3":0.02184,"16.4":0.00546,"16.5":0.0091,"16.6-16.7":0.13329,"17.0":0.01137,"17.1":0.01365,"17.2":0.01001,"17.3":0.0141,"17.4":0.0232,"17.5":0.04413,"17.6-17.7":0.10827,"18.0":0.02411,"18.1":0.05095,"18.2":0.02729,"18.3":0.08871,"18.4":0.04549,"18.5-18.7":3.17661,"26.0":0.2179,"26.1":0.19879},P:{"4":0.10185,"20":0.01018,"21":0.02037,"22":0.02037,"23":0.02037,"24":0.25462,"25":0.09166,"26":0.11203,"27":0.20369,"28":1.63974,"29":0.89626,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0","7.2-7.4":1.17125,"14.0":0.01018,"17.0":0.04074,"19.0":0.03055},I:{"0":0.02241,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":9.04286,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.02993,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.09727},O:{"0":0.20201},H:{"0":0.16},L:{"0":66.47701},R:{_:"0"},M:{"0":0.42647}};
Index: de_modules/caniuse-lite/data/regions/TC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01828,"115":0.09597,"138":0.00457,"144":1.30245,"145":0.35646,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"69":0.02742,"79":0.21936,"93":0.00457,"95":0.01371,"103":0.2285,"109":0.62609,"111":0.03199,"119":0.01828,"122":0.03199,"125":0.51641,"126":0.13253,"128":0.01371,"129":0.00457,"131":0.00457,"132":0.01371,"133":0.00457,"134":0.53012,"135":0.00914,"137":0.07769,"138":0.38388,"139":0.15538,"140":0.25592,"141":5.59825,"142":13.10219,"143":0.21022,"144":0.0457,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 94 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 114 115 116 117 118 120 121 123 124 127 130 136 145 146"},F:{"15":0.00457,"92":0.00457,"122":0.05484,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"83":0.0457,"92":0.00457,"109":0.01371,"114":0.00914,"120":0.00457,"123":0.02742,"132":0.01828,"135":0.00914,"137":0.00457,"138":0.00914,"139":0.00914,"140":0.15081,"141":1.39842,"142":10.52928,_:"12 13 14 15 16 17 18 79 80 81 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 122 124 125 126 127 128 129 130 131 133 134 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.4 17.2 26.2","14.1":0.00457,"15.4":0.00457,"15.5":0.00914,"15.6":0.26049,"16.0":0.01828,"16.1":0.00457,"16.2":0.02285,"16.3":0.01828,"16.5":0.10511,"16.6":0.34732,"17.0":0.01828,"17.1":0.06855,"17.3":0.01371,"17.4":0.02285,"17.5":0.03656,"17.6":0.16909,"18.0":0.00457,"18.1":0.00457,"18.2":0.00457,"18.3":0.1828,"18.4":0.03656,"18.5-18.6":0.32447,"26.0":0.40673,"26.1":0.457},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00285,"5.0-5.1":0,"6.0-6.1":0.01139,"7.0-7.1":0.00854,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02563,"10.0-10.2":0.00285,"10.3":0.04557,"11.0-11.2":0.52973,"11.3-11.4":0.01709,"12.0-12.1":0.0057,"12.2-12.5":0.13386,"13.0-13.1":0,"13.2":0.01424,"13.3":0.0057,"13.4-13.7":0.02563,"14.0-14.4":0.04272,"14.5-14.8":0.05411,"15.0-15.1":0.04557,"15.2-15.3":0.03702,"15.4":0.03987,"15.5":0.04272,"15.6-15.8":0.61802,"16.0":0.0769,"16.1":0.1424,"16.2":0.07405,"16.3":0.13671,"16.4":0.03418,"16.5":0.05696,"16.6-16.7":0.83447,"17.0":0.0712,"17.1":0.08544,"17.2":0.06266,"17.3":0.08829,"17.4":0.14525,"17.5":0.27626,"17.6-17.7":0.67783,"18.0":0.15095,"18.1":0.31898,"18.2":0.17088,"18.3":0.55537,"18.4":0.2848,"18.5-18.7":19.88783,"26.0":1.36421,"26.1":1.24459},P:{"4":0.01093,"21":0.01093,"23":0.02186,"24":0.03279,"25":0.02186,"26":0.02186,"28":0.15304,"29":1.24619,_:"20 22 27 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.14211},I:{"0":0.09218,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.59187,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":26.43178},R:{_:"0"},M:{"0":0.20091}};
Index: de_modules/caniuse-lite/data/regions/TD.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TD.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"60":0.00425,"72":0.00213,"75":0.00213,"78":0.00638,"84":0.00213,"98":0.00213,"99":0.00213,"103":0.00213,"112":0.00213,"115":0.01275,"119":0.00213,"125":0.00213,"127":0.0085,"128":0.00425,"133":0.00213,"136":0.00213,"138":0.00425,"139":0.00213,"140":0.017,"141":0.00213,"142":0.0085,"143":0.01275,"144":0.18063,"145":0.204,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 104 105 106 107 108 109 110 111 113 114 116 117 118 120 121 122 123 124 126 129 130 131 132 134 135 137 146 147 148 3.5 3.6"},D:{"46":0.00213,"51":0.00213,"56":0.00213,"57":0.00213,"58":0.00425,"67":0.02125,"70":0.0085,"71":0.00425,"72":0.00638,"79":0.00425,"80":0.02975,"86":0.00638,"87":0.00213,"91":0.20825,"94":0.00425,"99":0.00213,"100":0.00213,"103":0.00425,"108":0.02125,"109":0.08925,"110":0.085,"114":0.00425,"115":0.00425,"116":0.04038,"118":0.00213,"119":0.00425,"120":0.00425,"122":0.01063,"125":0.02975,"126":0.0255,"127":0.00425,"128":0.00425,"129":0.00213,"130":0.017,"131":0.068,"132":0.00213,"134":0.02975,"135":0.02338,"136":0.01063,"137":0.01275,"138":0.05738,"139":0.08713,"140":0.07863,"141":0.93713,"142":1.83813,"143":0.00425,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 52 53 54 55 59 60 61 62 63 64 65 66 68 69 73 74 75 76 77 78 81 83 84 85 88 89 90 92 93 95 96 97 98 101 102 104 105 106 107 111 112 113 117 121 123 124 133 144 145 146"},F:{"42":0.00213,"47":0.00213,"48":0.00213,"52":0.01063,"79":0.00425,"88":0.00213,"91":0.00213,"92":0.21675,"93":0.00638,"95":0.00213,"117":0.00213,"120":0.00638,"122":0.06163,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00213,"13":0.00213,"17":0.01063,"18":0.02338,"84":0.00213,"85":0.00213,"89":0.01275,"90":0.00213,"92":0.068,"95":0.00213,"100":0.0085,"102":0.00213,"106":0.00213,"108":0.00213,"114":0.02338,"120":0.00425,"122":0.00638,"125":0.00213,"128":0.00213,"130":0.00425,"131":0.00425,"132":0.00213,"133":0.0085,"134":0.00638,"135":0.00213,"136":0.01063,"137":0.00425,"138":0.00425,"139":0.01063,"140":0.02125,"141":0.12538,"142":0.89888,_:"14 15 16 79 80 81 83 86 87 88 91 93 94 96 97 98 99 101 103 104 105 107 109 110 111 112 113 115 116 117 118 119 121 123 124 126 127 129 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0 18.1 18.4","5.1":0.01488,"13.1":0.00213,"14.1":0.00213,"15.6":0.00213,"16.6":0.01063,"17.6":0.01063,"18.2":0.00425,"18.3":0.00213,"18.5-18.6":0.0085,"26.0":0.102,"26.1":0.01913,"26.2":0.00638},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00022,"5.0-5.1":0,"6.0-6.1":0.00089,"7.0-7.1":0.00067,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00201,"10.0-10.2":0.00022,"10.3":0.00358,"11.0-11.2":0.0416,"11.3-11.4":0.00134,"12.0-12.1":0.00045,"12.2-12.5":0.01051,"13.0-13.1":0,"13.2":0.00112,"13.3":0.00045,"13.4-13.7":0.00201,"14.0-14.4":0.00335,"14.5-14.8":0.00425,"15.0-15.1":0.00358,"15.2-15.3":0.00291,"15.4":0.00313,"15.5":0.00335,"15.6-15.8":0.04853,"16.0":0.00604,"16.1":0.01118,"16.2":0.00581,"16.3":0.01074,"16.4":0.00268,"16.5":0.00447,"16.6-16.7":0.06553,"17.0":0.00559,"17.1":0.00671,"17.2":0.00492,"17.3":0.00693,"17.4":0.01141,"17.5":0.02169,"17.6-17.7":0.05323,"18.0":0.01185,"18.1":0.02505,"18.2":0.01342,"18.3":0.04361,"18.4":0.02237,"18.5-18.7":1.56175,"26.0":0.10713,"26.1":0.09774},P:{"20":0.01006,"22":0.03017,"23":0.06034,"24":0.41235,"25":0.30172,"26":0.08046,"27":0.5632,"28":1.20687,"29":1.4583,_:"4 21 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01006,"9.2":0.01006,"14.0":0.01006,"19.0":0.02011},I:{"0":0.37747,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.00019},K:{"0":2.082,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01275,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.02363},O:{"0":0.14175},H:{"0":0.06},L:{"0":82.87863},R:{_:"0"},M:{"0":0.23625}};
Index: de_modules/caniuse-lite/data/regions/TG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02552,"45":0.00425,"52":0.00425,"53":0.00425,"64":0.00425,"68":0.00425,"72":0.01276,"78":0.01276,"79":0.00425,"84":0.01276,"90":0.00425,"92":0.00425,"106":0.00425,"112":0.01701,"114":0.00425,"115":0.40829,"121":0.00851,"124":0.00425,"125":0.01276,"127":0.05104,"128":0.00425,"132":0.00425,"134":0.00425,"136":0.00851,"138":0.00425,"139":0.00425,"140":0.0723,"141":0.02127,"142":0.02127,"143":0.03828,"144":1.08877,"145":1.21211,"146":0.00851,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 54 55 56 57 58 59 60 61 62 63 65 66 67 69 70 71 73 74 75 76 77 80 81 82 83 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 113 116 117 118 119 120 122 123 126 129 130 131 133 135 137 147 148 3.5 3.6"},D:{"32":0.00425,"43":0.00425,"47":0.00425,"49":0.00425,"50":0.00425,"51":0.00851,"52":0.00425,"54":0.00425,"58":0.00425,"64":0.00425,"65":0.00425,"66":0.00425,"69":0.02977,"70":0.00851,"71":0.00425,"72":0.00425,"73":0.02977,"74":0.00425,"75":0.01276,"76":0.02977,"77":0.00851,"79":0.00851,"80":0.00425,"81":0.00425,"83":0.01276,"84":0.00425,"85":0.00425,"86":0.01276,"87":0.02552,"88":0.00425,"89":0.02552,"90":0.00425,"91":0.00425,"92":0.00425,"93":0.02127,"95":0.00425,"98":0.08506,"99":0.00425,"100":0.00425,"102":0.00851,"103":0.04253,"104":0.22966,"106":0.01701,"108":0.00851,"109":1.25464,"110":0.00425,"111":0.03402,"112":11.32574,"113":0.00425,"114":0.05104,"115":0.01276,"116":0.03828,"117":0.00425,"118":0.00425,"119":0.05529,"120":0.02127,"121":0.00425,"122":0.05529,"123":0.00851,"124":0.05104,"125":0.2807,"126":1.81603,"127":0.00851,"128":0.02127,"129":0.00425,"130":0.03402,"131":0.10207,"132":0.05529,"133":0.00851,"134":0.02552,"135":0.04678,"136":0.03828,"137":0.06805,"138":0.2892,"139":0.10633,"140":0.26369,"141":2.44973,"142":7.33643,"143":0.02977,"144":0.00425,_:"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 33 34 35 36 37 38 39 40 41 42 44 45 46 48 53 55 56 57 59 60 61 62 63 67 68 78 94 96 97 101 105 107 145 146"},F:{"37":0.00425,"40":0.00425,"79":0.00425,"92":0.02977,"95":0.02977,"119":0.00425,"120":0.01276,"122":0.35725,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00425,"13":0.00425,"14":0.00425,"17":0.00851,"18":0.02127,"84":0.00425,"85":0.00425,"89":0.00425,"90":0.01276,"92":0.10207,"100":0.00425,"109":0.01701,"113":0.00425,"114":0.29771,"122":0.00851,"126":0.00425,"130":0.00851,"131":0.00425,"133":0.00851,"134":0.00425,"136":0.01276,"137":0.00425,"138":0.03828,"139":0.02552,"140":0.03402,"141":0.29771,"142":2.68364,"143":0.01276,_:"15 16 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 124 125 127 128 129 132 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2 26.2","5.1":0.01276,"12.1":0.00851,"13.1":0.00851,"14.1":0.00425,"15.5":0.00425,"15.6":0.04253,"16.6":0.03828,"17.1":0.03402,"17.4":0.00851,"17.5":0.00425,"17.6":0.10633,"18.3":0.00425,"18.4":0.00851,"18.5-18.6":0.02127,"26.0":0.05104,"26.1":0.06805},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0.00232,"7.0-7.1":0.00174,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00522,"10.0-10.2":0.00058,"10.3":0.00929,"11.0-11.2":0.10796,"11.3-11.4":0.00348,"12.0-12.1":0.00116,"12.2-12.5":0.02728,"13.0-13.1":0,"13.2":0.0029,"13.3":0.00116,"13.4-13.7":0.00522,"14.0-14.4":0.00871,"14.5-14.8":0.01103,"15.0-15.1":0.00929,"15.2-15.3":0.00755,"15.4":0.00813,"15.5":0.00871,"15.6-15.8":0.12596,"16.0":0.01567,"16.1":0.02902,"16.2":0.01509,"16.3":0.02786,"16.4":0.00697,"16.5":0.01161,"16.6-16.7":0.17007,"17.0":0.01451,"17.1":0.01741,"17.2":0.01277,"17.3":0.01799,"17.4":0.0296,"17.5":0.0563,"17.6-17.7":0.13815,"18.0":0.03076,"18.1":0.06501,"18.2":0.03483,"18.3":0.11319,"18.4":0.05804,"18.5-18.7":4.05326,"26.0":0.27803,"26.1":0.25366},P:{"4":0.01117,"25":0.03351,"26":0.01117,"27":0.02234,"28":0.1787,"29":0.29039,_:"20 21 22 23 24 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01117,"7.2-7.4":0.02234,"9.2":0.01117},I:{"0":0.132,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":1.94511,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0723,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00575},O:{"0":0.12643},H:{"0":0.71},L:{"0":54.16111},R:{_:"0"},M:{"0":0.06896}};
Index: de_modules/caniuse-lite/data/regions/TH.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.0028,"78":0.0056,"115":0.05876,"135":0.0028,"140":0.00839,"143":0.0056,"144":0.20705,"145":0.30218,"146":0.0028,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 139 141 142 147 148 3.5 3.6"},D:{"49":0.0028,"53":0.0028,"58":0.0056,"65":0.0028,"67":0.0056,"70":0.0028,"73":0.0028,"74":0.0028,"79":0.03917,"81":0.0028,"83":0.0028,"85":0.0028,"87":0.03917,"88":0.0028,"89":0.0028,"90":0.0028,"91":0.0056,"93":0.06715,"94":0.0028,"95":0.0028,"98":0.0028,"99":0.0028,"101":0.00839,"102":0.01399,"103":0.00839,"104":0.03917,"105":0.05316,"106":0.0028,"107":0.0028,"108":0.02238,"109":0.53442,"110":0.0028,"111":0.0056,"112":0.0028,"113":0.00839,"114":0.01959,"115":0.0028,"116":0.01399,"117":0.0028,"118":0.0028,"119":0.01679,"120":0.01959,"121":0.00839,"122":0.01959,"123":0.01399,"124":0.01959,"125":0.01959,"126":0.01119,"127":0.01399,"128":0.02518,"129":0.01119,"130":0.01119,"131":0.04197,"132":0.01959,"133":0.01959,"134":0.01679,"135":0.02518,"136":0.02518,"137":0.02798,"138":0.12311,"139":0.04477,"140":0.12031,"141":1.86906,"142":7.90435,"143":0.02238,"144":0.00839,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 63 64 66 68 69 71 72 75 76 77 78 80 84 86 92 96 97 100 145 146"},F:{"46":0.0028,"90":0.0028,"92":0.05596,"93":0.00839,"95":0.0056,"122":0.04197,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0028,"89":0.0028,"92":0.0028,"108":0.0028,"109":0.0056,"114":0.00839,"122":0.0028,"126":0.0028,"129":0.0028,"130":0.0028,"131":0.0056,"132":0.0028,"133":0.0028,"134":0.0028,"135":0.0028,"136":0.0028,"137":0.0056,"138":0.0056,"139":0.0056,"140":0.01119,"141":0.12031,"142":1.34304,"143":0.0028,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 128"},E:{"13":0.01119,"14":0.0028,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1","13.1":0.0056,"14.1":0.00839,"15.2-15.3":0.0028,"15.4":0.0028,"15.5":0.0056,"15.6":0.04197,"16.0":0.0028,"16.1":0.01119,"16.2":0.0056,"16.3":0.01959,"16.4":0.0028,"16.5":0.0056,"16.6":0.06156,"17.0":0.0028,"17.1":0.05876,"17.2":0.0056,"17.3":0.0056,"17.4":0.01119,"17.5":0.01959,"17.6":0.03917,"18.0":0.00839,"18.1":0.01399,"18.2":0.0056,"18.3":0.03078,"18.4":0.01119,"18.5-18.6":0.08674,"26.0":0.1371,"26.1":0.1399,"26.2":0.0056},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00165,"5.0-5.1":0,"6.0-6.1":0.00658,"7.0-7.1":0.00494,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01481,"10.0-10.2":0.00165,"10.3":0.02632,"11.0-11.2":0.306,"11.3-11.4":0.00987,"12.0-12.1":0.00329,"12.2-12.5":0.07732,"13.0-13.1":0,"13.2":0.00823,"13.3":0.00329,"13.4-13.7":0.01481,"14.0-14.4":0.02468,"14.5-14.8":0.03126,"15.0-15.1":0.02632,"15.2-15.3":0.02139,"15.4":0.02303,"15.5":0.02468,"15.6-15.8":0.357,"16.0":0.04442,"16.1":0.08226,"16.2":0.04277,"16.3":0.07897,"16.4":0.01974,"16.5":0.0329,"16.6-16.7":0.48203,"17.0":0.04113,"17.1":0.04935,"17.2":0.03619,"17.3":0.051,"17.4":0.0839,"17.5":0.15958,"17.6-17.7":0.39155,"18.0":0.08719,"18.1":0.18426,"18.2":0.09871,"18.3":0.32081,"18.4":0.16452,"18.5-18.7":11.48819,"26.0":0.78803,"26.1":0.71894},P:{"4":0.12627,"21":0.02105,"22":0.02105,"23":0.03157,"24":0.04209,"25":0.06314,"26":0.06314,"27":0.13679,"28":0.49456,"29":2.52543,_:"20 6.2-6.4 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","5.0-5.4":0.01052,"7.2-7.4":0.05261,"8.2":0.01052,"9.2":0.01052,"17.0":0.01052,"19.0":0.01052},I:{"0":0.01439,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.33854,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02798,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.16567},H:{"0":0},L:{"0":62.79837},R:{_:"0"},M:{"0":0.2449}};
Index: de_modules/caniuse-lite/data/regions/TJ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TJ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01093,"52":0.00364,"69":0.00364,"111":0.00729,"115":0.07288,"123":0.00364,"125":0.00364,"126":0.00364,"127":0.00364,"128":0.01822,"134":0.00364,"136":0.00729,"140":0.01822,"142":0.01093,"143":0.09474,"144":0.35347,"145":0.30245,"146":0.00729,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 124 129 130 131 132 133 135 137 138 139 141 147 148 3.5 3.6"},D:{"32":0.00364,"46":0.00729,"49":0.0328,"58":0.00729,"64":0.00729,"68":0.01822,"69":0.02915,"70":0.01093,"71":0.00729,"72":0.02551,"73":0.00364,"74":0.00364,"76":0.00364,"78":0.00729,"79":0.04008,"80":0.00729,"81":0.00729,"83":0.01093,"84":0.00364,"86":0.02186,"87":0.11661,"88":0.00729,"89":0.00729,"91":0.00364,"94":0.01458,"95":0.00729,"96":0.01093,"97":0.01458,"98":0.00729,"99":0.00364,"102":0.01093,"103":0.00729,"106":0.0328,"107":0.00364,"108":0.01093,"109":3.80069,"111":0.02186,"112":0.0328,"114":0.01822,"115":0.04373,"116":0.02186,"119":0.02551,"120":0.01093,"121":0.00364,"122":0.04008,"123":0.01458,"124":0.02186,"125":0.58304,"126":0.33525,"127":0.00729,"128":0.01093,"129":0.00364,"130":0.01822,"131":0.10203,"132":0.02551,"133":0.01822,"134":0.02186,"135":0.02186,"136":0.05466,"137":0.01822,"138":0.08381,"139":0.34618,"140":0.3316,"141":1.9714,"142":7.56859,"143":0.01822,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 65 66 67 75 77 85 90 92 93 100 101 104 105 110 113 117 118 144 145 146"},F:{"34":0.00364,"45":0.00364,"67":0.00729,"73":0.01458,"79":0.02186,"81":0.00364,"85":0.00364,"86":0.00364,"92":0.02551,"93":0.00729,"95":0.10203,"109":0.00364,"110":0.02186,"112":0.00729,"118":0.00364,"119":0.01093,"122":0.20771,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 74 75 76 77 78 80 82 83 84 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 111 113 114 115 116 117 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00364,"14":0.00364,"16":0.00364,"18":0.02186,"89":0.00729,"90":0.00364,"92":0.05102,"100":0.00364,"109":0.01822,"113":0.00364,"114":0.68507,"120":0.04008,"122":0.01093,"123":0.00729,"124":0.00364,"126":0.00729,"128":0.00364,"130":0.00364,"131":0.00729,"133":0.00364,"134":0.00364,"135":0.00729,"136":0.00729,"137":0.01093,"138":0.02551,"139":0.02186,"140":0.04737,"141":0.26966,"142":1.71268,_:"13 15 17 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 121 125 127 129 132 143"},E:{"11":0.01093,"15":0.00364,_:"0 4 5 6 7 8 9 10 12 13 14 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.4 16.1 16.2 16.3 16.5 17.0 18.1 26.2","5.1":0.00729,"14.1":0.01093,"15.2-15.3":0.00364,"15.5":0.00364,"15.6":0.10568,"16.0":0.00364,"16.4":0.00364,"16.6":0.02915,"17.1":0.01458,"17.2":0.00364,"17.3":0.00729,"17.4":0.215,"17.5":0.02915,"17.6":0.0583,"18.0":0.00729,"18.2":0.01093,"18.3":0.01458,"18.4":0.00364,"18.5-18.6":0.05102,"26.0":0.12025,"26.1":0.05102},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0,"6.0-6.1":0.00284,"7.0-7.1":0.00213,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00638,"10.0-10.2":0.00071,"10.3":0.01135,"11.0-11.2":0.13191,"11.3-11.4":0.00426,"12.0-12.1":0.00142,"12.2-12.5":0.03333,"13.0-13.1":0,"13.2":0.00355,"13.3":0.00142,"13.4-13.7":0.00638,"14.0-14.4":0.01064,"14.5-14.8":0.01348,"15.0-15.1":0.01135,"15.2-15.3":0.00922,"15.4":0.00993,"15.5":0.01064,"15.6-15.8":0.1539,"16.0":0.01915,"16.1":0.03546,"16.2":0.01844,"16.3":0.03404,"16.4":0.00851,"16.5":0.01418,"16.6-16.7":0.2078,"17.0":0.01773,"17.1":0.02128,"17.2":0.0156,"17.3":0.02199,"17.4":0.03617,"17.5":0.06879,"17.6-17.7":0.16879,"18.0":0.03759,"18.1":0.07943,"18.2":0.04255,"18.3":0.1383,"18.4":0.07092,"18.5-18.7":4.95247,"26.0":0.33972,"26.1":0.30993},P:{"4":0.09021,"20":0.02005,"21":0.02005,"22":0.03007,"23":0.03007,"24":0.06014,"25":0.08019,"26":0.06014,"27":0.2105,"28":0.64153,"29":0.47112,_:"5.0-5.4 8.2 10.1 12.0 16.0 18.0","6.2-6.4":0.06014,"7.2-7.4":0.09021,"9.2":0.01002,"11.1-11.2":0.01002,"13.0":0.01002,"14.0":0.01002,"15.0":0.02005,"17.0":0.01002,"19.0":0.01002},I:{"0":0.01904,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.96503,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.11661,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.06355},O:{"0":0.53382},H:{"0":0.02},L:{"0":58.40486},R:{_:"0"},M:{"0":0.05084}};
Index: de_modules/caniuse-lite/data/regions/TL.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TL.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"44":0.0422,"46":0.00469,"47":0.00469,"48":0.00469,"56":0.09378,"57":0.01876,"59":0.02345,"61":0.00938,"63":0.01876,"66":0.00469,"67":0.02345,"72":0.0422,"78":0.09378,"80":0.00469,"88":0.00938,"91":0.00469,"106":0.00938,"110":0.01876,"112":0.00469,"114":0.01876,"115":0.51579,"118":0.00469,"123":0.00938,"126":0.01876,"127":0.03282,"128":0.00469,"129":0.00938,"130":0.01407,"131":0.00469,"133":0.00469,"134":0.35636,"135":0.00469,"136":0.01407,"138":0.01407,"139":0.01407,"140":0.20632,"141":0.00938,"142":0.22976,"143":0.11254,"144":2.39608,"145":2.729,"146":0.05158,_:"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 33 34 35 36 37 38 39 40 41 42 43 45 49 50 51 52 53 54 55 58 60 62 64 65 68 69 70 71 73 74 75 76 77 79 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 111 113 116 117 119 120 121 122 124 125 132 137 147 148 3.5 3.6"},D:{"58":0.01876,"60":0.00469,"62":0.00469,"63":0.01876,"64":0.01407,"65":0.00938,"67":0.00469,"68":0.00469,"70":0.01407,"71":0.00469,"73":0.01407,"74":0.00938,"76":0.00469,"78":0.00469,"79":0.02813,"80":0.03282,"84":0.17818,"86":0.00469,"87":0.01407,"92":0.00469,"96":0.00469,"99":0.00469,"100":0.00469,"102":0.01407,"103":0.08909,"106":0.00938,"107":0.00469,"109":0.60019,"112":0.00469,"113":0.00469,"114":0.00938,"115":0.00469,"116":0.15474,"118":0.00469,"119":0.05158,"120":0.04689,"122":0.0422,"123":0.01407,"124":0.01407,"125":0.10785,"126":0.07502,"127":0.12191,"128":0.09378,"129":0.00938,"130":0.03751,"131":0.07502,"132":0.03282,"133":0.01876,"134":0.03751,"135":0.08909,"136":0.09847,"137":0.22038,"138":0.65646,"139":0.37512,"140":0.96125,"141":5.73465,"142":13.77628,"143":0.02813,"144":0.00469,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 61 66 69 72 75 77 81 83 85 88 89 90 91 93 94 95 97 98 101 104 105 108 110 111 117 121 145 146"},F:{"15":0.00469,"92":0.01407,"95":0.03751,"102":0.00938,"109":0.00469,"118":0.17818,"120":0.00938,"122":0.16412,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00469,"15":0.00469,"16":0.00469,"17":0.00469,"18":0.03282,"84":0.00469,"89":0.00469,"91":0.00469,"92":0.02345,"100":0.01876,"109":0.01407,"113":0.00938,"114":0.04689,"117":0.03282,"118":0.01407,"120":0.00469,"122":0.03751,"125":0.00469,"126":0.01876,"128":0.00469,"129":0.00938,"130":0.00938,"131":0.01407,"132":0.00938,"133":0.14536,"134":0.02345,"135":0.00938,"136":0.11254,"137":0.0422,"138":0.09847,"139":0.07502,"140":0.15474,"141":1.0644,"142":6.63025,"143":0.01876,_:"13 14 79 80 81 83 85 86 87 88 90 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 119 121 123 124 127"},E:{"11":0.00938,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.4 15.5 16.0 16.2 16.3 16.4 17.0 26.2","5.1":0.00469,"13.1":0.01407,"14.1":0.04689,"15.1":0.01407,"15.2-15.3":0.00938,"15.6":0.07971,"16.1":0.00938,"16.5":0.01407,"16.6":0.06096,"17.1":0.01407,"17.2":0.03751,"17.3":0.00469,"17.4":0.03282,"17.5":0.03751,"17.6":0.05627,"18.0":0.05158,"18.1":0.01407,"18.2":0.00469,"18.3":0.01876,"18.4":0.03282,"18.5-18.6":0.07502,"26.0":0.18287,"26.1":0.06565},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00063,"5.0-5.1":0,"6.0-6.1":0.00253,"7.0-7.1":0.0019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00569,"10.0-10.2":0.00063,"10.3":0.01011,"11.0-11.2":0.11753,"11.3-11.4":0.00379,"12.0-12.1":0.00126,"12.2-12.5":0.0297,"13.0-13.1":0,"13.2":0.00316,"13.3":0.00126,"13.4-13.7":0.00569,"14.0-14.4":0.00948,"14.5-14.8":0.01201,"15.0-15.1":0.01011,"15.2-15.3":0.00821,"15.4":0.00885,"15.5":0.00948,"15.6-15.8":0.13712,"16.0":0.01706,"16.1":0.03159,"16.2":0.01643,"16.3":0.03033,"16.4":0.00758,"16.5":0.01264,"16.6-16.7":0.18514,"17.0":0.0158,"17.1":0.01896,"17.2":0.0139,"17.3":0.01959,"17.4":0.03223,"17.5":0.06129,"17.6-17.7":0.15039,"18.0":0.03349,"18.1":0.07077,"18.2":0.03791,"18.3":0.12322,"18.4":0.06319,"18.5-18.7":4.41249,"26.0":0.30268,"26.1":0.27614},P:{"21":0.03056,"22":0.01019,"23":0.03056,"24":0.13242,"25":0.10187,"26":0.11205,"27":0.12224,"28":0.33616,"29":0.50933,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0","7.2-7.4":0.02037,"11.1-11.2":0.05093,"16.0":0.02037,"18.0":0.01019,"19.0":0.01019},I:{"0":0.02121,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.29736,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01062},O:{"0":0.28143},H:{"0":0},L:{"0":49.13302},R:{_:"0"},M:{"0":0.04779}};
Index: de_modules/caniuse-lite/data/regions/TM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"64":0.04961,"68":0.01654,"85":0.2067,"115":0.03307,"125":1.6784,"128":0.01654,"137":0.01654,"143":0.01654,"144":0.04961,"145":0.19016,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 136 138 139 140 141 142 146 147 148 3.5 3.6"},D:{"46":0.01654,"69":0.01654,"70":0.09922,"79":0.2067,"84":0.03307,"101":0.68624,"109":3.46429,"114":0.08268,"117":0.09922,"120":0.01654,"121":0.04961,"122":0.04961,"124":0.06614,"125":2.8938,"126":0.09922,"131":1.04177,"134":0.01654,"138":0.06614,"139":0.15709,"140":0.42994,"141":9.29323,"142":28.73957,"143":0.08268,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 81 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 123 127 128 129 130 132 133 135 136 137 144 145 146"},F:{"60":0.03307,"89":0.01654,"92":0.03307,"93":0.4134,"109":0.01654,"122":0.23977,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.03307,"116":0.01654,"117":0.03307,"136":0.01654,"138":0.01654,"140":0.04961,"141":0.27284,"142":1.81896,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.4 16.5 16.6 17.0 17.1 17.2 17.4 18.0 18.1 18.2 26.2","10.1":0.04961,"16.3":0.03307,"17.3":0.03307,"17.5":0.01654,"17.6":0.09922,"18.3":0.03307,"18.4":0.01654,"18.5-18.6":0.22324,"26.0":0.04961,"26.1":0.08268},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00045,"5.0-5.1":0,"6.0-6.1":0.00179,"7.0-7.1":0.00135,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00404,"10.0-10.2":0.00045,"10.3":0.00718,"11.0-11.2":0.08342,"11.3-11.4":0.00269,"12.0-12.1":0.0009,"12.2-12.5":0.02108,"13.0-13.1":0,"13.2":0.00224,"13.3":0.0009,"13.4-13.7":0.00404,"14.0-14.4":0.00673,"14.5-14.8":0.00852,"15.0-15.1":0.00718,"15.2-15.3":0.00583,"15.4":0.00628,"15.5":0.00673,"15.6-15.8":0.09732,"16.0":0.01211,"16.1":0.02243,"16.2":0.01166,"16.3":0.02153,"16.4":0.00538,"16.5":0.00897,"16.6-16.7":0.13141,"17.0":0.01121,"17.1":0.01346,"17.2":0.00987,"17.3":0.0139,"17.4":0.02287,"17.5":0.0435,"17.6-17.7":0.10674,"18.0":0.02377,"18.1":0.05023,"18.2":0.02691,"18.3":0.08746,"18.4":0.04485,"18.5-18.7":3.13188,"26.0":0.21483,"26.1":0.19599},P:{"27":0.0201,"28":0.26126,"29":0.86416,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.81373,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.03293},H:{"0":0.59},L:{"0":12.82426},R:{_:"0"},M:{"0":0.17677}};
Index: de_modules/caniuse-lite/data/regions/TN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01811,"51":0.00604,"52":0.01207,"78":0.00604,"101":0.00604,"113":0.00604,"115":0.12678,"122":0.00604,"123":0.01811,"128":0.01207,"134":0.00604,"136":0.01207,"140":0.01207,"142":0.00604,"143":0.01207,"144":0.41655,"145":0.53729,"146":0.00604,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 124 125 126 127 129 130 131 132 133 135 137 138 139 141 147 148 3.5 3.6"},D:{"48":0.01811,"49":0.01207,"56":0.01207,"65":0.01207,"69":0.01811,"70":0.00604,"72":0.00604,"73":0.01207,"74":0.00604,"75":0.00604,"79":0.00604,"81":0.00604,"83":0.00604,"85":0.00604,"86":0.00604,"87":0.01811,"89":0.00604,"91":0.00604,"95":0.00604,"98":0.00604,"99":0.00604,"100":0.00604,"101":0.00604,"102":0.01811,"103":0.01207,"104":0.02415,"106":0.00604,"107":0.00604,"108":0.00604,"109":2.01636,"110":0.00604,"111":0.01811,"112":18.26796,"114":0.01207,"116":0.02415,"119":0.03019,"120":0.01811,"121":0.02415,"122":0.07244,"123":0.02415,"124":0.05433,"125":0.41052,"126":3.39279,"127":0.02415,"128":0.03622,"129":0.01207,"130":0.01207,"131":0.10263,"132":0.0483,"133":0.03622,"134":3.80935,"135":0.05433,"136":0.06037,"137":0.06037,"138":0.15093,"139":1.39455,"140":0.25355,"141":3.99649,"142":12.60526,"143":0.03019,"144":0.00604,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 67 68 71 76 77 78 80 84 88 90 92 93 94 96 97 105 113 115 117 118 145 146"},F:{"46":0.00604,"79":0.00604,"82":0.00604,"92":0.00604,"95":0.03019,"122":0.67011,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00604,"92":0.01811,"102":0.00604,"109":0.02415,"114":0.15696,"115":0.00604,"116":0.00604,"121":0.00604,"122":0.01207,"129":0.00604,"131":0.00604,"132":0.01207,"133":0.00604,"134":0.00604,"135":0.01207,"136":0.00604,"137":0.00604,"138":0.01207,"139":0.01207,"140":0.02415,"141":0.326,"142":2.42084,"143":0.00604,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 117 118 119 120 123 124 125 126 127 128 130"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 17.0 26.2","13.1":0.00604,"14.1":0.01207,"15.4":0.01207,"15.6":0.03019,"16.3":0.00604,"16.5":0.00604,"16.6":0.03019,"17.1":0.01207,"17.2":0.00604,"17.3":0.01207,"17.4":0.00604,"17.5":0.00604,"17.6":0.04226,"18.0":0.00604,"18.1":0.01207,"18.2":0.00604,"18.3":0.01811,"18.4":0.00604,"18.5-18.6":0.02415,"26.0":0.0483,"26.1":0.04226},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00036,"5.0-5.1":0,"6.0-6.1":0.00146,"7.0-7.1":0.00109,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00327,"10.0-10.2":0.00036,"10.3":0.00582,"11.0-11.2":0.06767,"11.3-11.4":0.00218,"12.0-12.1":0.00073,"12.2-12.5":0.0171,"13.0-13.1":0,"13.2":0.00182,"13.3":0.00073,"13.4-13.7":0.00327,"14.0-14.4":0.00546,"14.5-14.8":0.00691,"15.0-15.1":0.00582,"15.2-15.3":0.00473,"15.4":0.00509,"15.5":0.00546,"15.6-15.8":0.07895,"16.0":0.00982,"16.1":0.01819,"16.2":0.00946,"16.3":0.01746,"16.4":0.00437,"16.5":0.00728,"16.6-16.7":0.10659,"17.0":0.0091,"17.1":0.01091,"17.2":0.008,"17.3":0.01128,"17.4":0.01855,"17.5":0.03529,"17.6-17.7":0.08659,"18.0":0.01928,"18.1":0.04075,"18.2":0.02183,"18.3":0.07094,"18.4":0.03638,"18.5-18.7":2.54044,"26.0":0.17426,"26.1":0.15898},P:{"4":0.07263,"20":0.01038,"21":0.01038,"22":0.01038,"23":0.01038,"24":0.01038,"25":0.0415,"26":0.03113,"27":0.03113,"28":0.14526,"29":0.6018,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.14526,"11.1-11.2":0.01038,"17.0":0.01038},I:{"0":0.03166,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.13871,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04901,"9":0.00817,"10":0.01634,"11":0.20419,_:"6 7 5.5"},N:{_:"10 11"},S:{"2.5":0.00396,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.05152},H:{"0":0},L:{"0":39.11066},R:{_:"0"},M:{"0":0.05945}};
Index: de_modules/caniuse-lite/data/regions/TO.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TO.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.04272,"119":0.05049,"138":0.01942,"144":2.17504,"145":3.35578,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"69":0.01165,"87":0.03107,"93":0.03107,"99":0.01942,"103":0.03107,"109":0.10487,"120":0.05049,"121":0.01165,"123":0.01165,"124":0.03107,"125":0.6059,"126":0.09322,"128":0.01165,"131":0.10487,"132":0.01942,"133":0.01165,"134":0.01165,"136":0.01165,"137":0.01942,"138":0.15536,"139":0.01942,"140":0.20974,"141":1.54583,"142":15.21751,"143":0.01942,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 94 95 96 97 98 100 101 102 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 122 127 129 130 135 144 145 146"},F:{"122":0.08545,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.03107,"84":0.01165,"92":0.01165,"114":0.0738,"124":0.09322,"131":0.01942,"134":0.03107,"137":0.03107,"138":0.03107,"139":0.0738,"140":0.66028,"141":0.78457,"142":5.58131,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 132 133 135 136 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 17.3 17.4 17.5 18.0 18.1 18.3 18.4 26.2","13.1":0.14759,"14.1":0.01165,"15.5":0.01165,"15.6":0.03107,"16.5":0.01942,"16.6":0.22916,"17.0":0.01165,"17.1":0.28353,"17.2":0.01942,"17.6":0.01165,"18.2":0.01942,"18.5-18.6":0.01942,"26.0":0.43889,"26.1":0.13594},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00137,"5.0-5.1":0,"6.0-6.1":0.00548,"7.0-7.1":0.00411,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01233,"10.0-10.2":0.00137,"10.3":0.02192,"11.0-11.2":0.25482,"11.3-11.4":0.00822,"12.0-12.1":0.00274,"12.2-12.5":0.06439,"13.0-13.1":0,"13.2":0.00685,"13.3":0.00274,"13.4-13.7":0.01233,"14.0-14.4":0.02055,"14.5-14.8":0.02603,"15.0-15.1":0.02192,"15.2-15.3":0.01781,"15.4":0.01918,"15.5":0.02055,"15.6-15.8":0.29729,"16.0":0.03699,"16.1":0.0685,"16.2":0.03562,"16.3":0.06576,"16.4":0.01644,"16.5":0.0274,"16.6-16.7":0.40141,"17.0":0.03425,"17.1":0.0411,"17.2":0.03014,"17.3":0.04247,"17.4":0.06987,"17.5":0.13289,"17.6-17.7":0.32606,"18.0":0.07261,"18.1":0.15344,"18.2":0.0822,"18.3":0.26715,"18.4":0.137,"18.5-18.7":9.5666,"26.0":0.65622,"26.1":0.59868},P:{"24":0.05116,"26":0.07162,"27":0.05116,"28":0.85941,"29":0.6241,_:"4 20 21 22 23 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01221,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.53209,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.20183},H:{"0":0},L:{"0":48.00546},R:{_:"0"},M:{"0":0.08562}};
Index: de_modules/caniuse-lite/data/regions/TR.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TR.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00265,"52":0.00265,"72":0.00265,"115":0.06633,"125":0.00265,"128":0.00265,"133":0.00265,"134":0.00265,"136":0.00265,"139":0.00265,"140":0.00531,"141":0.00265,"142":0.00265,"143":0.00531,"144":0.15653,"145":0.20163,"146":0.00265,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 135 137 138 147 148 3.5 3.6"},D:{"26":0.00265,"29":0.00265,"34":0.00796,"38":0.02388,"39":0.00265,"40":0.00265,"41":0.00265,"42":0.00265,"43":0.00265,"44":0.00265,"45":0.00265,"46":0.00265,"47":0.05571,"48":0.00531,"49":0.01327,"50":0.00531,"51":0.00265,"52":0.00265,"53":0.01327,"54":0.00265,"55":0.00265,"56":0.00265,"57":0.00265,"58":0.00265,"59":0.00265,"60":0.00265,"63":0.00265,"65":0.00265,"66":0.00265,"67":0.00265,"68":0.00265,"69":0.00531,"70":0.00265,"71":0.00265,"72":0.00265,"73":0.01327,"74":0.00265,"75":0.00265,"76":0.00531,"78":0.00265,"79":0.29183,"80":0.00531,"81":0.00265,"83":0.04245,"85":0.01592,"86":0.00265,"87":0.28387,"88":0.00265,"90":0.00265,"91":0.00796,"93":0.00265,"94":0.02388,"95":0.00531,"96":0.00265,"98":0.00531,"99":0.00265,"100":0.00265,"101":0.00531,"102":0.00265,"103":0.01061,"104":0.01061,"105":0.00265,"106":0.00796,"107":0.00265,"108":0.10081,"109":1.35568,"110":0.00265,"111":0.01592,"112":0.0451,"113":0.00531,"114":0.04775,"115":0.00265,"116":0.01857,"117":0.00531,"118":0.01327,"119":0.01592,"120":0.06367,"121":0.00531,"122":0.02918,"123":0.01327,"124":0.01857,"125":0.36877,"126":0.26265,"127":0.01061,"128":0.02388,"129":0.01592,"130":0.01592,"131":0.0451,"132":0.02653,"133":0.02918,"134":0.02388,"135":0.04775,"136":0.03714,"137":0.04775,"138":0.14326,"139":0.09286,"140":0.18571,"141":2.98197,"142":8.61164,"143":0.01857,"144":0.00265,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 30 31 32 33 35 36 37 61 62 64 77 84 89 92 97 145 146"},F:{"32":0.00796,"36":0.00531,"40":0.0398,"46":0.05837,"85":0.00265,"86":0.00265,"91":0.00265,"92":0.13796,"93":0.01592,"95":0.02918,"114":0.00265,"119":0.00265,"120":0.0451,"121":0.00265,"122":0.55713,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00265,"15":0.00265,"16":0.00265,"17":0.00265,"18":0.01327,"92":0.00796,"109":0.06633,"114":0.05837,"122":0.00265,"128":0.00265,"130":0.00265,"131":0.01061,"132":0.00265,"133":0.00531,"134":0.00531,"135":0.00265,"136":0.00531,"137":0.00796,"138":0.00796,"139":0.01061,"140":0.01592,"141":0.19367,"142":1.82526,"143":0.00265,_:"12 13 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 129"},E:{"4":0.00265,"13":0.00265,"14":0.00265,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0","5.1":0.00265,"13.1":0.00265,"14.1":0.00796,"15.4":0.00265,"15.5":0.00265,"15.6":0.03184,"16.1":0.00265,"16.2":0.00265,"16.3":0.00531,"16.4":0.00265,"16.5":0.00265,"16.6":0.03184,"17.0":0.00531,"17.1":0.01061,"17.2":0.00265,"17.3":0.00531,"17.4":0.00796,"17.5":0.01061,"17.6":0.02388,"18.0":0.00531,"18.1":0.00796,"18.2":0.00531,"18.3":0.01857,"18.4":0.00796,"18.5-18.6":0.0398,"26.0":0.08224,"26.1":0.0849,"26.2":0.00265},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00114,"5.0-5.1":0,"6.0-6.1":0.00456,"7.0-7.1":0.00342,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01026,"10.0-10.2":0.00114,"10.3":0.01823,"11.0-11.2":0.21195,"11.3-11.4":0.00684,"12.0-12.1":0.00228,"12.2-12.5":0.05356,"13.0-13.1":0,"13.2":0.0057,"13.3":0.00228,"13.4-13.7":0.01026,"14.0-14.4":0.01709,"14.5-14.8":0.02165,"15.0-15.1":0.01823,"15.2-15.3":0.01481,"15.4":0.01595,"15.5":0.01709,"15.6-15.8":0.24728,"16.0":0.03077,"16.1":0.05698,"16.2":0.02963,"16.3":0.0547,"16.4":0.01367,"16.5":0.02279,"16.6-16.7":0.33388,"17.0":0.02849,"17.1":0.03419,"17.2":0.02507,"17.3":0.03533,"17.4":0.05812,"17.5":0.11053,"17.6-17.7":0.27121,"18.0":0.06039,"18.1":0.12763,"18.2":0.06837,"18.3":0.22221,"18.4":0.11395,"18.5-18.7":7.95727,"26.0":0.54583,"26.1":0.49797},P:{"4":0.36018,"20":0.01029,"21":0.04116,"22":0.02058,"23":0.01029,"24":0.01029,"25":0.04116,"26":0.12349,"27":0.08233,"28":0.30873,"29":1.698,"5.0-5.4":0.04116,"6.2-6.4":0.01029,"7.2-7.4":0.12349,"8.2":0.01029,_:"9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","13.0":0.02058,"17.0":0.04116},I:{"0":0.02201,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.24164,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00334,"8":0.01336,"9":0.00334,"10":0.00668,"11":0.06348,_:"7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.06612},H:{"0":0},L:{"0":60.15139},R:{_:"0"},M:{"0":0.11021}};
Index: de_modules/caniuse-lite/data/regions/TT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.05999,"52":0.005,"115":0.03999,"128":0.01,"132":0.005,"136":0.005,"140":0.04499,"142":0.005,"143":0.005,"144":0.4899,"145":0.75485,"146":0.005,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 133 134 135 137 138 139 141 147 148 3.5 3.6"},D:{"49":0.005,"69":0.05999,"76":0.015,"79":0.015,"81":0.005,"87":0.03999,"91":0.005,"93":0.015,"99":0.005,"103":0.14997,"104":0.13997,"106":0.005,"109":1.10478,"111":0.05999,"112":8.23835,"113":0.025,"114":0.005,"116":0.19496,"119":0.01,"120":0.025,"121":0.02,"122":0.03999,"123":0.005,"124":0.05499,"125":1.63967,"126":1.16977,"127":0.005,"128":0.25495,"129":0.025,"130":0.015,"131":0.05999,"132":0.07499,"133":0.03499,"134":0.015,"135":0.015,"136":0.02,"137":0.08498,"138":0.28994,"139":0.31494,"140":0.47491,"141":4.09418,"142":15.60188,"143":0.025,"144":0.01,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 77 78 80 83 84 85 86 88 89 90 92 94 95 96 97 98 100 101 102 105 107 108 110 115 117 118 145 146"},F:{"79":0.005,"92":0.02,"93":0.01,"95":0.015,"114":0.005,"115":0.005,"121":0.12997,"122":0.46491,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.005,"92":0.005,"109":0.025,"114":0.04999,"117":0.005,"126":0.005,"131":0.01,"133":0.005,"135":0.005,"136":0.005,"137":0.005,"138":0.02999,"139":0.02,"140":0.07998,"141":0.60488,"142":4.60408,"143":0.005,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 122 123 124 125 127 128 129 130 132 134"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 16.0 16.4","12.1":0.005,"13.1":0.02999,"14.1":0.02999,"15.4":0.01,"15.5":0.01,"15.6":0.09498,"16.1":0.02999,"16.2":0.025,"16.3":0.01,"16.5":0.005,"16.6":0.19496,"17.0":0.005,"17.1":0.05999,"17.2":0.005,"17.3":0.01,"17.4":0.01,"17.5":0.02999,"17.6":0.13997,"18.0":0.06999,"18.1":0.015,"18.2":0.005,"18.3":0.03999,"18.4":0.02,"18.5-18.6":0.08498,"26.0":0.40492,"26.1":0.37493,"26.2":0.005},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00139,"5.0-5.1":0,"6.0-6.1":0.00558,"7.0-7.1":0.00418,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01255,"10.0-10.2":0.00139,"10.3":0.02232,"11.0-11.2":0.25943,"11.3-11.4":0.00837,"12.0-12.1":0.00279,"12.2-12.5":0.06555,"13.0-13.1":0,"13.2":0.00697,"13.3":0.00279,"13.4-13.7":0.01255,"14.0-14.4":0.02092,"14.5-14.8":0.0265,"15.0-15.1":0.02232,"15.2-15.3":0.01813,"15.4":0.01953,"15.5":0.02092,"15.6-15.8":0.30267,"16.0":0.03766,"16.1":0.06974,"16.2":0.03626,"16.3":0.06695,"16.4":0.01674,"16.5":0.0279,"16.6-16.7":0.40867,"17.0":0.03487,"17.1":0.04184,"17.2":0.03069,"17.3":0.04324,"17.4":0.07113,"17.5":0.13529,"17.6-17.7":0.33196,"18.0":0.07392,"18.1":0.15622,"18.2":0.08369,"18.3":0.27198,"18.4":0.13948,"18.5-18.7":9.73974,"26.0":0.6681,"26.1":0.60952},P:{"4":0.05303,"21":0.01061,"22":0.02121,"23":0.03182,"24":0.04242,"25":0.03182,"26":0.08484,"27":0.05303,"28":0.22271,"29":3.31947,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.07424,"17.0":0.01061},I:{"0":0.03995,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.10502,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.005},H:{"0":0},L:{"0":34.75555},R:{_:"0"},M:{"0":0.22004}};
Index: de_modules/caniuse-lite/data/regions/TV.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TV.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"144":2.69263,"145":2.64572,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"116":0.0516,"125":1.79665,"131":0.39874,"139":0.20171,"140":0.49725,"141":3.74342,"142":20.56065,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 122 123 124 126 127 128 129 130 132 133 134 135 136 137 138 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"89":0.0516,"114":0.45034,"140":0.30022,"141":0.69896,"142":7.88557,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 26.2","18.5-18.6":0.0516,"26.0":0.09851,"26.1":0.0516},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00086,"5.0-5.1":0,"6.0-6.1":0.00346,"7.0-7.1":0.00259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00778,"10.0-10.2":0.00086,"10.3":0.01382,"11.0-11.2":0.16069,"11.3-11.4":0.00518,"12.0-12.1":0.00173,"12.2-12.5":0.04061,"13.0-13.1":0,"13.2":0.00432,"13.3":0.00173,"13.4-13.7":0.00778,"14.0-14.4":0.01296,"14.5-14.8":0.01641,"15.0-15.1":0.01382,"15.2-15.3":0.01123,"15.4":0.0121,"15.5":0.01296,"15.6-15.8":0.18747,"16.0":0.02333,"16.1":0.0432,"16.2":0.02246,"16.3":0.04147,"16.4":0.01037,"16.5":0.01728,"16.6-16.7":0.25313,"17.0":0.0216,"17.1":0.02592,"17.2":0.01901,"17.3":0.02678,"17.4":0.04406,"17.5":0.0838,"17.6-17.7":0.20562,"18.0":0.04579,"18.1":0.09676,"18.2":0.05184,"18.3":0.16847,"18.4":0.08639,"18.5-18.7":6.03287,"26.0":0.41383,"26.1":0.37754},P:{"25":0.10502,"27":0.26255,"29":0.57761,_:"4 20 21 22 23 24 26 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":46.95864},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/TW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"14":0.00426,"52":0.01703,"78":0.00426,"112":0.00426,"113":0.00426,"115":0.10217,"136":0.00851,"139":0.00426,"140":0.01277,"141":0.00426,"142":0.00851,"143":0.01703,"144":0.5151,"145":0.56192,"146":0.01703,_:"2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 147 148 3.5 3.6"},D:{"48":0.00426,"49":0.00426,"51":0.00426,"61":0.00426,"65":0.00426,"73":0.00426,"75":0.00426,"77":1.19622,"79":0.02554,"80":0.00426,"81":0.05534,"83":0.00426,"85":0.01703,"86":0.00426,"87":0.02129,"89":0.00426,"91":0.00426,"92":0.00426,"94":0.00426,"95":0.00851,"97":0.00426,"98":0.01277,"101":0.00426,"102":0.00426,"103":0.01703,"104":0.06386,"106":0.00426,"107":0.00851,"108":0.04257,"109":1.14088,"110":0.00851,"111":0.00426,"112":0.00426,"113":0.00426,"114":0.01277,"115":0.01277,"116":0.03831,"117":0.01277,"118":0.01277,"119":0.03831,"120":0.05534,"121":0.02554,"122":0.03406,"123":0.02129,"124":0.03406,"125":0.69815,"126":0.02554,"127":0.02554,"128":0.05534,"129":0.02554,"130":0.06811,"131":0.08514,"132":0.04683,"133":0.05534,"134":0.21711,"135":0.04683,"136":0.05534,"137":0.07237,"138":0.17879,"139":0.27671,"140":0.59598,"141":5.05732,"142":17.56864,"143":0.0596,"144":0.0298,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 52 53 54 55 56 57 58 59 60 62 63 64 66 67 68 69 70 71 72 74 76 78 84 88 90 93 96 99 100 105 145 146"},F:{"46":0.00851,"92":0.04683,"93":0.01277,"95":0.02129,"122":0.04257,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00426,"109":0.04683,"110":0.00426,"113":0.00426,"114":0.01703,"117":0.00426,"118":0.00426,"120":0.00851,"122":0.00851,"124":0.00426,"125":0.00851,"126":0.00426,"127":0.00426,"128":0.00426,"129":0.00426,"130":0.00426,"131":0.01277,"132":0.00426,"133":0.00851,"134":0.00851,"135":0.00851,"136":0.01703,"137":0.01277,"138":0.02129,"139":0.0298,"140":0.05534,"141":0.52787,"142":3.63122,"143":0.00851,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 111 112 115 116 119 121 123"},E:{"14":0.00426,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3","12.1":0.01277,"13.1":0.01277,"14.1":0.02554,"15.1":0.00426,"15.4":0.00851,"15.5":0.01703,"15.6":0.12771,"16.0":0.00426,"16.1":0.02129,"16.2":0.01277,"16.3":0.03831,"16.4":0.01703,"16.5":0.02129,"16.6":0.21285,"17.0":0.00426,"17.1":0.16602,"17.2":0.00851,"17.3":0.01277,"17.4":0.03406,"17.5":0.05534,"17.6":0.14048,"18.0":0.01703,"18.1":0.02554,"18.2":0.01703,"18.3":0.06811,"18.4":0.03831,"18.5-18.6":0.19582,"26.0":0.16602,"26.1":0.22562,"26.2":0.00851},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00246,"5.0-5.1":0,"6.0-6.1":0.00983,"7.0-7.1":0.00737,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02211,"10.0-10.2":0.00246,"10.3":0.0393,"11.0-11.2":0.45687,"11.3-11.4":0.01474,"12.0-12.1":0.00491,"12.2-12.5":0.11545,"13.0-13.1":0,"13.2":0.01228,"13.3":0.00491,"13.4-13.7":0.02211,"14.0-14.4":0.03684,"14.5-14.8":0.04667,"15.0-15.1":0.0393,"15.2-15.3":0.03193,"15.4":0.03439,"15.5":0.03684,"15.6-15.8":0.53301,"16.0":0.06632,"16.1":0.12281,"16.2":0.06386,"16.3":0.1179,"16.4":0.02948,"16.5":0.04913,"16.6-16.7":0.71969,"17.0":0.06141,"17.1":0.07369,"17.2":0.05404,"17.3":0.07614,"17.4":0.12527,"17.5":0.23826,"17.6-17.7":0.58459,"18.0":0.13018,"18.1":0.2751,"18.2":0.14738,"18.3":0.47897,"18.4":0.24563,"18.5-18.7":17.15221,"26.0":1.17656,"26.1":1.07339},P:{"4":0.01072,"20":0.01072,"21":0.02144,"22":0.03216,"23":0.02144,"24":0.02144,"25":0.02144,"26":0.06431,"27":0.10719,"28":0.63243,"29":2.42251,_:"5.0-5.4 6.2-6.4 8.2 9.2 11.1-11.2 12.0 14.0 15.0 18.0","7.2-7.4":0.01072,"10.1":0.01072,"13.0":0.02144,"16.0":0.01072,"17.0":0.01072,"19.0":0.02144},I:{"0":0.00573,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.18952,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01179,"11":0.14146,_:"6 7 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0402},O:{"0":0.09189},H:{"0":0},L:{"0":32.28923},R:{_:"0"},M:{"0":0.29864}};
Index: de_modules/caniuse-lite/data/regions/TZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/TZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00245,"47":0.00491,"56":0.00245,"57":0.00245,"61":0.00245,"63":0.00245,"65":0.00491,"68":0.00245,"72":0.00736,"90":0.00245,"103":0.00245,"109":0.00245,"112":0.00736,"115":0.05153,"116":0.00245,"123":0.00245,"127":0.01227,"128":0.00491,"131":0.00245,"133":0.00245,"134":0.00245,"135":0.00245,"136":0.00245,"139":0.02699,"140":0.02209,"141":0.00245,"142":0.00736,"143":0.04663,"144":0.45399,"145":0.53497,"146":0.01718,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 58 59 60 62 64 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 113 114 117 118 119 120 121 122 124 125 126 129 130 132 137 138 147 148 3.5 3.6"},D:{"46":0.00245,"49":0.00245,"55":0.00245,"58":0.00491,"59":0.00245,"62":0.00245,"63":0.00245,"64":0.00245,"65":0.00491,"68":0.00736,"69":0.00491,"70":0.00982,"71":0.01718,"72":0.00491,"73":0.00736,"74":0.00982,"75":0.00245,"76":0.00245,"77":0.00736,"78":0.00245,"79":0.01227,"80":0.01718,"81":0.00491,"83":0.00736,"85":0.00245,"86":0.01227,"87":0.01718,"88":0.00982,"90":0.01227,"91":0.00491,"92":0.00245,"93":0.00245,"94":0.01227,"95":0.00491,"96":0.00491,"97":0.00491,"98":0.00245,"99":0.00982,"100":0.0319,"102":0.00245,"103":0.0319,"104":0.01718,"105":0.00245,"106":0.00245,"108":0.00736,"109":0.20614,"110":0.00245,"111":0.01718,"112":0.02945,"113":0.00491,"114":0.02699,"115":0.00245,"116":0.13497,"117":0.00491,"118":0.00491,"119":0.01718,"120":0.01227,"121":0.00491,"122":0.02454,"123":0.00736,"124":0.00736,"125":0.04417,"126":0.04417,"127":0.02209,"128":0.02699,"129":0.00491,"130":0.00982,"131":0.0319,"132":0.01963,"133":0.0319,"134":0.0319,"135":0.0319,"136":0.02454,"137":0.05644,"138":0.18405,"139":0.11779,"140":0.2135,"141":1.79387,"142":5.83561,"143":0.01718,"144":0.00245,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 50 51 52 53 54 56 57 60 61 66 67 84 89 101 107 145 146"},F:{"37":0.00491,"40":0.00245,"42":0.00245,"46":0.00245,"79":0.00736,"83":0.00491,"89":0.00245,"90":0.00736,"91":0.01227,"92":0.0319,"93":0.00491,"95":0.01472,"120":0.00491,"121":0.00245,"122":0.08098,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 85 86 87 88 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00736,"13":0.00736,"14":0.00245,"15":0.00491,"16":0.00982,"17":0.00245,"18":0.04908,"84":0.00245,"89":0.00491,"90":0.01963,"92":0.02454,"100":0.00491,"103":0.00245,"109":0.00491,"111":0.00245,"114":0.03926,"122":0.00982,"125":0.00245,"131":0.41963,"133":0.00245,"134":0.00491,"135":0.00245,"136":0.00736,"137":0.00736,"138":0.02209,"139":0.10798,"140":0.05644,"141":0.15951,"142":1.48958,"143":0.00245,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 112 113 115 116 117 118 119 120 121 123 124 126 127 128 129 130 132"},E:{"11":0.00245,"12":0.00245,"13":0.00245,_:"0 4 5 6 7 8 9 10 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.2 16.3 16.4 17.0 17.1 17.2 17.3 18.2","11.1":0.00491,"13.1":0.01227,"14.1":0.01227,"15.6":0.08098,"16.0":0.00245,"16.1":0.00245,"16.5":0.00491,"16.6":0.0319,"17.4":0.00245,"17.5":0.00982,"17.6":0.02945,"18.0":0.00736,"18.1":0.00491,"18.3":0.00736,"18.4":0.00245,"18.5-18.6":0.01227,"26.0":0.07853,"26.1":0.05399,"26.2":0.00245},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00033,"5.0-5.1":0,"6.0-6.1":0.00133,"7.0-7.1":0.001,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00299,"10.0-10.2":0.00033,"10.3":0.00531,"11.0-11.2":0.06176,"11.3-11.4":0.00199,"12.0-12.1":0.00066,"12.2-12.5":0.01561,"13.0-13.1":0,"13.2":0.00166,"13.3":0.00066,"13.4-13.7":0.00299,"14.0-14.4":0.00498,"14.5-14.8":0.00631,"15.0-15.1":0.00531,"15.2-15.3":0.00432,"15.4":0.00465,"15.5":0.00498,"15.6-15.8":0.07205,"16.0":0.00896,"16.1":0.0166,"16.2":0.00863,"16.3":0.01594,"16.4":0.00398,"16.5":0.00664,"16.6-16.7":0.09728,"17.0":0.0083,"17.1":0.00996,"17.2":0.0073,"17.3":0.01029,"17.4":0.01693,"17.5":0.03221,"17.6-17.7":0.07902,"18.0":0.0176,"18.1":0.03719,"18.2":0.01992,"18.3":0.06474,"18.4":0.0332,"18.5-18.7":2.31852,"26.0":0.15904,"26.1":0.14509},P:{"4":0.04127,"21":0.01032,"22":0.02063,"23":0.01032,"24":0.21666,"25":0.07222,"26":0.03095,"27":0.27856,"28":0.44364,"29":0.56744,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 12.0 14.0 15.0 18.0","7.2-7.4":0.04127,"9.2":0.01032,"11.1-11.2":0.03095,"13.0":0.01032,"16.0":0.02063,"17.0":0.01032,"19.0":0.01032},I:{"0":0.2562,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":7.50692,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{"2.5":0.23393,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00755},O:{"0":0.14337},H:{"0":2.65},L:{"0":69.30002},R:{_:"0"},M:{"0":0.10564}};
Index: de_modules/caniuse-lite/data/regions/UA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/UA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.01326,"52":0.05965,"60":0.00663,"68":0.00663,"69":0.00663,"74":0.00663,"88":0.00663,"92":0.02651,"102":0.01326,"103":0.03314,"110":0.00663,"115":0.45733,"120":0.00663,"122":0.00663,"123":0.00663,"125":0.01326,"127":0.00663,"128":0.01326,"130":0.00663,"131":0.00663,"133":0.01988,"134":0.01326,"135":0.01988,"136":0.01988,"137":0.00663,"138":0.01326,"139":0.00663,"140":0.07954,"141":0.00663,"142":0.01326,"143":0.02651,"144":0.7821,"145":0.9942,"146":0.00663,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 70 71 72 73 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 111 112 113 114 116 117 118 119 121 124 126 129 132 147 148 3.5 3.6"},D:{"26":0.00663,"27":0.00663,"32":0.00663,"39":0.01988,"40":0.01988,"41":0.01988,"42":0.01988,"43":0.01988,"44":0.01988,"45":0.01988,"46":0.01988,"47":0.01988,"48":0.01988,"49":0.05965,"50":0.01988,"51":0.01988,"52":0.01988,"53":0.01988,"54":0.01988,"55":0.01988,"56":0.02651,"57":0.01988,"58":0.02651,"59":0.01988,"60":0.01988,"61":0.00663,"69":0.01326,"75":0.00663,"79":0.01988,"83":0.00663,"84":0.00663,"86":0.00663,"87":0.01326,"90":0.00663,"91":0.00663,"96":0.01988,"97":0.00663,"101":0.01326,"102":0.01988,"103":0.01988,"104":0.15907,"106":0.02651,"107":0.00663,"108":0.01326,"109":2.70422,"111":0.01326,"112":11.18144,"114":0.01988,"115":0.00663,"116":0.01988,"117":0.00663,"118":0.03314,"119":0.01988,"120":0.03314,"121":0.01988,"122":0.09942,"123":0.01326,"124":0.05302,"125":0.31814,"126":2.10108,"127":0.05965,"128":0.05965,"129":0.01988,"130":0.02651,"131":0.2121,"132":0.08616,"133":0.08616,"134":0.09942,"135":0.39105,"136":0.11268,"137":0.09942,"138":0.31152,"139":0.62303,"140":0.43745,"141":5.06379,"142":22.30322,"143":0.0464,"144":0.01326,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 28 29 30 31 33 34 35 36 37 38 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 80 81 85 88 89 92 93 94 95 98 99 100 105 110 113 145 146"},F:{"36":0.00663,"46":0.01988,"63":0.00663,"67":0.00663,"79":0.01326,"80":0.00663,"83":0.00663,"84":0.01326,"85":0.0464,"86":0.01988,"90":0.00663,"91":0.00663,"92":0.13256,"93":0.03977,"95":0.56338,"98":0.00663,"102":0.00663,"109":0.00663,"114":0.01988,"115":0.00663,"116":0.00663,"117":0.00663,"118":0.02651,"119":0.00663,"120":0.14582,"121":0.01326,"122":1.00746,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 81 82 87 88 89 94 96 97 99 100 101 103 104 105 106 107 108 110 111 112 113 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00663},B:{"18":0.00663,"92":0.01326,"109":0.01988,"113":0.00663,"114":0.10605,"116":0.01326,"122":0.00663,"124":0.00663,"130":0.00663,"131":0.0464,"132":0.01326,"133":0.02651,"134":0.01326,"135":0.01988,"136":0.01988,"137":0.01988,"138":0.00663,"139":0.00663,"140":0.01326,"141":0.50373,"142":2.04142,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 117 118 119 120 121 123 125 126 127 128 129 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 17.0","13.1":0.00663,"14.1":0.01988,"15.5":0.00663,"15.6":0.03314,"16.1":0.00663,"16.3":0.00663,"16.4":0.00663,"16.5":0.00663,"16.6":0.08616,"17.1":0.03314,"17.2":0.00663,"17.3":0.00663,"17.4":0.03977,"17.5":0.01988,"17.6":0.06628,"18.0":0.01326,"18.1":0.00663,"18.2":0.00663,"18.3":0.0464,"18.4":0.01326,"18.5-18.6":0.05965,"26.0":0.13919,"26.1":0.19221,"26.2":0.00663},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0.00322,"7.0-7.1":0.00241,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00724,"10.0-10.2":0.0008,"10.3":0.01287,"11.0-11.2":0.14965,"11.3-11.4":0.00483,"12.0-12.1":0.00161,"12.2-12.5":0.03781,"13.0-13.1":0,"13.2":0.00402,"13.3":0.00161,"13.4-13.7":0.00724,"14.0-14.4":0.01207,"14.5-14.8":0.01529,"15.0-15.1":0.01287,"15.2-15.3":0.01046,"15.4":0.01126,"15.5":0.01207,"15.6-15.8":0.17459,"16.0":0.02172,"16.1":0.04023,"16.2":0.02092,"16.3":0.03862,"16.4":0.00965,"16.5":0.01609,"16.6-16.7":0.23574,"17.0":0.02011,"17.1":0.02414,"17.2":0.0177,"17.3":0.02494,"17.4":0.04103,"17.5":0.07804,"17.6-17.7":0.19149,"18.0":0.04264,"18.1":0.09011,"18.2":0.04827,"18.3":0.15689,"18.4":0.08046,"18.5-18.7":5.61824,"26.0":0.38538,"26.1":0.35159},P:{"4":0.02087,"22":0.01043,"23":0.01043,"24":0.02087,"25":0.02087,"26":0.0313,"27":0.0313,"28":0.11478,"29":0.81386,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.02087,"17.0":0.01043},I:{"0":0.0202,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.83626,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04242,"9":0.0106,"10":0.0106,"11":0.04242,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00337},O:{"0":0.04046},H:{"0":0},L:{"0":25.32464},R:{_:"0"},M:{"0":0.1686}};
Index: de_modules/caniuse-lite/data/regions/UG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/UG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00965,"43":0.00322,"50":0.00643,"55":0.00322,"56":0.00322,"57":0.00322,"58":0.00643,"60":0.00322,"68":0.00322,"72":0.00643,"91":0.00643,"93":0.00965,"94":0.00322,"112":0.00322,"115":0.18326,"127":0.01608,"128":0.01286,"134":0.00322,"135":0.00322,"136":0.00643,"137":0.00322,"138":0.00322,"139":0.00322,"140":0.03537,"141":0.00643,"142":0.01286,"143":0.03537,"144":0.58835,"145":0.71695,"146":0.01286,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 51 52 53 54 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 147 148 3.5 3.6"},D:{"19":0.02251,"50":0.00322,"53":0.00322,"56":0.00322,"59":0.00322,"62":0.00322,"63":0.00322,"64":0.02572,"65":0.00643,"67":0.00643,"68":0.00643,"69":0.01608,"70":0.01286,"71":0.01286,"72":0.03537,"73":0.00965,"74":0.00643,"75":0.00965,"76":0.00965,"77":0.00643,"78":0.00643,"79":0.00965,"80":0.01929,"81":0.00643,"83":0.01286,"85":0.00322,"86":0.00322,"87":0.03537,"88":0.00643,"89":0.00322,"90":0.00322,"91":0.00965,"92":0.00643,"93":0.02572,"94":0.0418,"95":0.00965,"98":0.00322,"99":0.00322,"100":0.00322,"101":0.00965,"103":0.07073,"104":0.00322,"105":0.00322,"106":0.01286,"107":0.00322,"108":0.00643,"109":0.68158,"110":0.00322,"111":0.04501,"112":0.01286,"113":0.00643,"114":0.04823,"115":0.00643,"116":0.08359,"117":0.00322,"119":0.04823,"120":0.01286,"121":0.00643,"122":0.03537,"123":0.00643,"124":0.00643,"125":0.11896,"126":0.0418,"127":0.00965,"128":0.11253,"129":0.01286,"130":0.00965,"131":0.05466,"132":0.02894,"133":0.0418,"134":0.02894,"135":0.0418,"136":0.05787,"137":0.04823,"138":0.26685,"139":0.16397,"140":0.39545,"141":3.07354,"142":7.13409,"143":0.02251,"144":0.00322,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 54 55 57 58 60 61 66 84 96 97 102 118 145 146"},F:{"37":0.00322,"46":0.00322,"79":0.00643,"90":0.00322,"91":0.00643,"92":0.09967,"93":0.02894,"95":0.01608,"113":0.00643,"114":0.00322,"120":0.00322,"122":0.14789,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02251,"13":0.00965,"14":0.01286,"15":0.00322,"16":0.00643,"17":0.00643,"18":0.09645,"84":0.00322,"89":0.00322,"90":0.01608,"92":0.04823,"100":0.00965,"109":0.00965,"114":0.08359,"120":0.00322,"122":0.00965,"127":0.00322,"129":0.00322,"130":0.00322,"131":0.00643,"132":0.00322,"133":0.00965,"134":0.00322,"135":0.01286,"136":0.00643,"137":0.07395,"138":0.01929,"139":0.02572,"140":0.05144,"141":0.31186,"142":1.93222,"143":0.00322,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 124 125 126 128"},E:{"12":0.00322,_:"0 4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 6.1 7.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 18.0 18.1 26.2","5.1":0.01929,"9.1":0.00322,"11.1":0.00322,"12.1":0.00322,"13.1":0.01929,"14.1":0.01608,"15.6":0.05466,"16.3":0.00643,"16.5":0.00322,"16.6":0.01608,"17.1":0.00965,"17.3":0.00322,"17.4":0.00322,"17.5":0.00322,"17.6":0.03858,"18.2":0.00643,"18.3":0.00965,"18.4":0.00322,"18.5-18.6":0.01608,"26.0":0.03215,"26.1":0.05144},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0.00138,"7.0-7.1":0.00104,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00311,"10.0-10.2":0.00035,"10.3":0.00554,"11.0-11.2":0.06436,"11.3-11.4":0.00208,"12.0-12.1":0.00069,"12.2-12.5":0.01626,"13.0-13.1":0,"13.2":0.00173,"13.3":0.00069,"13.4-13.7":0.00311,"14.0-14.4":0.00519,"14.5-14.8":0.00657,"15.0-15.1":0.00554,"15.2-15.3":0.0045,"15.4":0.00484,"15.5":0.00519,"15.6-15.8":0.07509,"16.0":0.00934,"16.1":0.0173,"16.2":0.009,"16.3":0.01661,"16.4":0.00415,"16.5":0.00692,"16.6-16.7":0.10139,"17.0":0.00865,"17.1":0.01038,"17.2":0.00761,"17.3":0.01073,"17.4":0.01765,"17.5":0.03357,"17.6-17.7":0.08236,"18.0":0.01834,"18.1":0.03876,"18.2":0.02076,"18.3":0.06748,"18.4":0.0346,"18.5-18.7":2.41636,"26.0":0.16575,"26.1":0.15122},P:{"4":0.03107,"21":0.01036,"22":0.01036,"23":0.02072,"24":0.1968,"25":0.09322,"26":0.0725,"27":0.50753,"28":0.4661,"29":0.54896,_:"20 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 18.0","5.0-5.4":0.01036,"7.2-7.4":0.06215,"9.2":0.04143,"11.1-11.2":0.03107,"16.0":0.01036,"17.0":0.01036,"19.0":0.02072},I:{"0":0.03388,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":3.80496,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03858,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.02714,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.14927},H:{"0":3.36},L:{"0":67.18178},R:{_:"0"},M:{"0":0.08821}};
Index: de_modules/caniuse-lite/data/regions/US.js
===================================================================
--- node_modules/caniuse-lite/data/regions/US.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"11":0.30402,"44":0.01086,"52":0.01086,"59":0.00543,"78":0.01629,"94":0.00543,"115":0.15201,"117":0.00543,"118":0.68405,"125":0.01086,"127":0.00543,"128":0.01629,"132":0.00543,"133":0.00543,"134":0.00543,"135":0.01086,"136":0.01629,"137":0.01629,"138":0.01629,"139":0.01086,"140":0.14658,"141":0.01629,"142":0.02172,"143":0.05972,"144":0.88493,"145":0.97722,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 119 120 121 122 123 124 126 129 130 131 146 147 148 3.5 3.6"},D:{"39":0.01086,"40":0.01086,"41":0.01086,"42":0.01086,"43":0.01086,"44":0.01086,"45":0.01086,"46":0.01086,"47":0.01086,"48":0.038,"49":0.02172,"50":0.01086,"51":0.01086,"52":0.01629,"53":0.01086,"54":0.01086,"55":0.01086,"56":0.02172,"57":0.01086,"58":0.01086,"59":0.01086,"60":0.01086,"62":0.00543,"64":0.00543,"65":0.00543,"66":0.03257,"67":0.00543,"69":0.00543,"70":0.00543,"74":0.00543,"75":0.00543,"76":0.00543,"77":0.00543,"78":0.00543,"79":0.26602,"80":0.01086,"81":0.05429,"83":0.22802,"84":0.00543,"85":0.00543,"86":0.00543,"87":0.05972,"88":0.00543,"90":0.00543,"91":0.02172,"92":0.00543,"93":0.02172,"96":0.00543,"98":0.00543,"99":0.02715,"100":0.00543,"101":0.02172,"102":0.01086,"103":0.13573,"104":0.01629,"105":0.00543,"106":0.00543,"107":0.00543,"108":0.01086,"109":0.33117,"110":0.01086,"111":0.01086,"112":0.01086,"113":0.01086,"114":0.10315,"115":0.02715,"116":0.1303,"117":0.49404,"118":0.02172,"119":0.02715,"120":0.08144,"121":0.09229,"122":0.1303,"123":0.02172,"124":0.05972,"125":0.84692,"126":0.14115,"127":0.02715,"128":0.11944,"129":0.03257,"130":4.08804,"131":0.13573,"132":0.15744,"133":0.05972,"134":0.07601,"135":0.08686,"136":0.11401,"137":0.14115,"138":0.89579,"139":2.75793,"140":1.95444,"141":5.42357,"142":12.89388,"143":0.06515,"144":0.01086,_:"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 33 34 35 36 37 38 61 63 68 71 72 73 89 94 95 97 145 146"},F:{"92":0.04343,"93":0.00543,"95":0.03257,"102":0.00543,"114":0.00543,"117":0.00543,"118":0.00543,"120":0.00543,"122":0.23345,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00543,"109":0.04886,"120":0.00543,"121":0.08144,"122":0.00543,"126":0.00543,"128":0.00543,"129":0.00543,"130":0.00543,"131":0.02172,"132":0.01086,"133":0.01086,"134":0.01629,"135":0.01629,"136":0.01629,"137":0.01086,"138":0.03257,"139":0.02715,"140":0.08686,"141":0.81978,"142":5.44529,"143":0.01086,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 123 124 125 127"},E:{"9":0.00543,"14":0.02172,"15":0.00543,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00543,"12.1":0.01086,"13.1":0.05429,"14.1":0.04886,"15.1":0.01086,"15.2-15.3":0.00543,"15.4":0.01086,"15.5":0.02172,"15.6":0.16287,"16.0":0.01086,"16.1":0.02172,"16.2":0.01629,"16.3":0.038,"16.4":0.01629,"16.5":0.02715,"16.6":0.28774,"17.0":0.01086,"17.1":0.2063,"17.2":0.01629,"17.3":0.02715,"17.4":0.05429,"17.5":0.07601,"17.6":0.3746,"18.0":0.02172,"18.1":0.05429,"18.2":0.02715,"18.3":0.10858,"18.4":0.05972,"18.5-18.6":0.23888,"26.0":0.39089,"26.1":0.45061,"26.2":0.01629},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00231,"5.0-5.1":0,"6.0-6.1":0.00926,"7.0-7.1":0.00694,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02083,"10.0-10.2":0.00231,"10.3":0.03704,"11.0-11.2":0.43054,"11.3-11.4":0.01389,"12.0-12.1":0.00463,"12.2-12.5":0.10879,"13.0-13.1":0,"13.2":0.01157,"13.3":0.00463,"13.4-13.7":0.02083,"14.0-14.4":0.03472,"14.5-14.8":0.04398,"15.0-15.1":0.03704,"15.2-15.3":0.03009,"15.4":0.03241,"15.5":0.03472,"15.6-15.8":0.5023,"16.0":0.0625,"16.1":0.11574,"16.2":0.06018,"16.3":0.11111,"16.4":0.02778,"16.5":0.0463,"16.6-16.7":0.67822,"17.0":0.05787,"17.1":0.06944,"17.2":0.05092,"17.3":0.07176,"17.4":0.11805,"17.5":0.22453,"17.6-17.7":0.55091,"18.0":0.12268,"18.1":0.25925,"18.2":0.13889,"18.3":0.45138,"18.4":0.23148,"18.5-18.7":16.16393,"26.0":1.10877,"26.1":1.01155},P:{"4":0.02144,"21":0.01072,"22":0.01072,"23":0.02144,"24":0.01072,"25":0.01072,"26":0.02144,"27":0.02144,"28":0.13937,"29":1.21141,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01072},I:{"0":0.45646,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00023},K:{"0":0.27426,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01508,"9":0.04524,"11":0.0754,_:"6 7 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00457,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00914},O:{"0":0.02743},H:{"0":0},L:{"0":21.34959},R:{_:"0"},M:{"0":0.57138}};
Index: de_modules/caniuse-lite/data/regions/UY.js
===================================================================
--- node_modules/caniuse-lite/data/regions/UY.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03559,"52":0.01424,"60":0.00712,"83":0.01424,"113":0.00712,"115":0.07118,"120":0.00712,"121":0.01424,"128":0.02135,"134":0.00712,"136":0.01424,"137":0.00712,"138":0.00712,"139":0.01424,"140":0.02135,"142":0.00712,"143":0.01424,"144":0.53385,"145":0.45555,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 122 123 124 125 126 127 129 130 131 132 133 135 141 146 147 148 3.5 3.6"},D:{"49":0.00712,"69":0.03559,"70":0.00712,"75":0.00712,"79":0.01424,"80":0.00712,"86":0.02847,"87":0.02135,"88":0.00712,"90":0.00712,"93":0.00712,"97":0.00712,"103":0.01424,"104":0.00712,"105":0.00712,"108":0.00712,"109":0.49114,"110":0.00712,"111":0.04271,"112":30.69282,"114":0.00712,"116":0.02847,"119":0.01424,"120":0.00712,"122":0.07118,"123":0.02135,"124":0.01424,"125":0.80433,"126":6.42044,"127":0.02847,"128":0.05694,"129":0.00712,"130":0.02135,"131":0.1566,"132":0.05694,"133":0.0783,"134":0.04271,"135":0.04983,"136":0.02135,"137":0.04983,"138":0.10677,"139":0.09253,"140":0.26337,"141":4.17115,"142":15.92297,"143":0.03559,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 76 77 78 81 83 84 85 89 91 92 94 95 96 98 99 100 101 102 106 107 113 115 117 118 121 144 145 146"},F:{"37":0.00712,"95":0.01424,"120":0.00712,"122":0.74027,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"80":0.00712,"92":0.01424,"114":0.62638,"122":0.00712,"134":0.00712,"136":0.00712,"137":0.00712,"138":0.01424,"139":0.02135,"140":0.01424,"141":0.27048,"142":2.60519,"143":0.00712,_:"12 13 14 15 16 17 18 79 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 135"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.2-15.3 15.4 16.0 16.2 16.5 17.0 17.2 18.0 18.2 26.2","14.1":0.00712,"15.1":0.01424,"15.5":0.00712,"15.6":0.00712,"16.1":0.00712,"16.3":0.00712,"16.4":0.00712,"16.6":0.02847,"17.1":0.02135,"17.3":0.00712,"17.4":0.00712,"17.5":0.02135,"17.6":0.04983,"18.1":0.02847,"18.3":0.01424,"18.4":0.00712,"18.5-18.6":0.04271,"26.0":0.07118,"26.1":0.13524},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00074,"5.0-5.1":0,"6.0-6.1":0.00296,"7.0-7.1":0.00222,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00666,"10.0-10.2":0.00074,"10.3":0.01183,"11.0-11.2":0.13755,"11.3-11.4":0.00444,"12.0-12.1":0.00148,"12.2-12.5":0.03476,"13.0-13.1":0,"13.2":0.0037,"13.3":0.00148,"13.4-13.7":0.00666,"14.0-14.4":0.01109,"14.5-14.8":0.01405,"15.0-15.1":0.01183,"15.2-15.3":0.00961,"15.4":0.01035,"15.5":0.01109,"15.6-15.8":0.16048,"16.0":0.01997,"16.1":0.03698,"16.2":0.01923,"16.3":0.0355,"16.4":0.00887,"16.5":0.01479,"16.6-16.7":0.21668,"17.0":0.01849,"17.1":0.02219,"17.2":0.01627,"17.3":0.02293,"17.4":0.03772,"17.5":0.07173,"17.6-17.7":0.17601,"18.0":0.03919,"18.1":0.08283,"18.2":0.04437,"18.3":0.14421,"18.4":0.07395,"18.5-18.7":5.16408,"26.0":0.35423,"26.1":0.32317},P:{"24":0.01059,"25":0.01059,"26":0.01059,"27":0.03177,"28":0.14826,"29":0.66715,_:"4 20 21 22 23 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01059,"7.2-7.4":0.02118},I:{"0":0.00863,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.05764,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.0317},H:{"0":0},L:{"0":22.76134},R:{_:"0"},M:{"0":0.14122}};
Index: de_modules/caniuse-lite/data/regions/UZ.js
===================================================================
--- node_modules/caniuse-lite/data/regions/UZ.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.09584,"52":0.03195,"68":0.01278,"69":0.00639,"115":0.07028,"125":0.00639,"128":0.01278,"134":0.00639,"136":0.00639,"140":0.03195,"141":0.01278,"142":0.00639,"143":0.01278,"144":0.24278,"145":0.30028,"146":0.00639,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 135 137 138 139 147 148 3.5 3.6"},D:{"27":0.00639,"32":0.00639,"49":0.02556,"58":0.00639,"62":0.00639,"66":0.01278,"69":0.10222,"71":0.00639,"72":0.00639,"73":0.01278,"75":0.00639,"79":0.01917,"80":0.00639,"81":0.00639,"83":0.01917,"86":0.01278,"87":0.0575,"89":0.01917,"91":0.01278,"94":0.00639,"97":0.00639,"98":0.01278,"99":0.00639,"101":0.00639,"102":0.00639,"103":0.00639,"104":0.03833,"106":0.02556,"107":0.02556,"108":0.01278,"109":1.32252,"110":0.00639,"111":0.10222,"112":11.9091,"113":0.00639,"114":0.01278,"116":0.04472,"118":0.00639,"119":0.01278,"120":0.01917,"121":0.01278,"122":0.33223,"123":0.03195,"124":0.01278,"125":1.66114,"126":12.16466,"127":0.00639,"128":0.02556,"129":0.01917,"130":0.01917,"131":0.08945,"132":0.23,"133":0.04472,"134":0.07028,"135":0.05111,"136":0.04472,"137":0.07667,"138":0.1725,"139":0.10861,"140":0.37695,"141":3.32867,"142":13.91524,"143":0.02556,"144":0.03833,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 63 64 65 67 68 70 74 76 77 78 84 85 88 90 92 93 95 96 100 105 115 117 145 146"},F:{"63":0.00639,"67":0.00639,"79":0.00639,"92":0.0575,"93":0.00639,"95":0.03195,"122":0.12778,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01917,"92":0.02556,"100":0.00639,"109":0.00639,"113":0.00639,"114":2.59393,"119":0.00639,"120":0.00639,"122":0.00639,"123":0.00639,"124":0.00639,"129":0.00639,"130":0.00639,"131":0.01917,"132":0.00639,"133":0.01278,"134":0.00639,"135":0.01917,"136":0.01917,"137":0.01278,"138":0.00639,"139":0.01278,"140":0.04472,"141":0.19167,"142":2.25532,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 121 125 126 127 128 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0","5.1":0.03195,"9.1":0.00639,"15.6":0.01278,"16.3":0.00639,"16.5":0.01917,"16.6":0.01278,"17.1":0.00639,"17.2":0.00639,"17.3":0.00639,"17.4":0.00639,"17.5":0.00639,"17.6":0.04472,"18.0":0.00639,"18.1":0.01278,"18.2":0.00639,"18.3":0.01917,"18.4":0.01917,"18.5-18.6":0.05111,"26.0":0.12778,"26.1":0.10861,"26.2":0.00639},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00044,"5.0-5.1":0,"6.0-6.1":0.00176,"7.0-7.1":0.00132,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00396,"10.0-10.2":0.00044,"10.3":0.00704,"11.0-11.2":0.08187,"11.3-11.4":0.00264,"12.0-12.1":0.00088,"12.2-12.5":0.02069,"13.0-13.1":0,"13.2":0.0022,"13.3":0.00088,"13.4-13.7":0.00396,"14.0-14.4":0.0066,"14.5-14.8":0.00836,"15.0-15.1":0.00704,"15.2-15.3":0.00572,"15.4":0.00616,"15.5":0.0066,"15.6-15.8":0.09552,"16.0":0.01188,"16.1":0.02201,"16.2":0.01144,"16.3":0.02113,"16.4":0.00528,"16.5":0.0088,"16.6-16.7":0.12897,"17.0":0.011,"17.1":0.01321,"17.2":0.00968,"17.3":0.01365,"17.4":0.02245,"17.5":0.0427,"17.6-17.7":0.10476,"18.0":0.02333,"18.1":0.0493,"18.2":0.02641,"18.3":0.08584,"18.4":0.04402,"18.5-18.7":3.07378,"26.0":0.21085,"26.1":0.19236},P:{"4":0.07189,"21":0.01027,"22":0.02054,"23":0.02054,"24":0.02054,"25":0.04108,"26":0.06162,"27":0.11296,"28":0.26701,"29":1.02694,_:"20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","6.2-6.4":0.02054,"7.2-7.4":0.08216,"13.0":0.01027,"17.0":0.01027},I:{"0":0.00361,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.38277,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.18741,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00361},O:{"0":0.81609},H:{"0":0},L:{"0":31.73512},R:{_:"0"},M:{"0":0.07583}};
Index: de_modules/caniuse-lite/data/regions/VA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.22761,"128":0.04065,"130":0.04065,"140":0.07316,"144":3.39792,"145":4.43031,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 131 132 133 134 135 136 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"109":0.22761,"116":0.15445,"121":0.15445,"122":3.01586,"126":0.15445,"128":0.04065,"130":0.07316,"133":0.11381,"135":0.42271,"136":0.11381,"138":0.42271,"139":0.04065,"140":0.11381,"141":14.16885,"142":25.1999,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 123 124 125 127 129 131 132 134 137 143 144 145 146"},F:{"122":0.04065,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.04065,"140":0.22761,"141":3.51173,"142":19.28199,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 143"},E:{"13":0.07316,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.1 18.2 18.5-18.6 26.2","14.1":0.04065,"16.6":0.11381,"17.1":0.26826,"17.5":0.04065,"17.6":0.34142,"18.3":0.04065,"18.4":0.56903,"26.0":0.11381,"26.1":0.72348},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0.00141,"7.0-7.1":0.00106,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00317,"10.0-10.2":0.00035,"10.3":0.00563,"11.0-11.2":0.06546,"11.3-11.4":0.00211,"12.0-12.1":0.0007,"12.2-12.5":0.01654,"13.0-13.1":0,"13.2":0.00176,"13.3":0.0007,"13.4-13.7":0.00317,"14.0-14.4":0.00528,"14.5-14.8":0.00669,"15.0-15.1":0.00563,"15.2-15.3":0.00458,"15.4":0.00493,"15.5":0.00528,"15.6-15.8":0.07637,"16.0":0.0095,"16.1":0.0176,"16.2":0.00915,"16.3":0.01689,"16.4":0.00422,"16.5":0.00704,"16.6-16.7":0.10312,"17.0":0.0088,"17.1":0.01056,"17.2":0.00774,"17.3":0.01091,"17.4":0.01795,"17.5":0.03414,"17.6-17.7":0.08376,"18.0":0.01865,"18.1":0.03942,"18.2":0.02112,"18.3":0.06863,"18.4":0.03519,"18.5-18.7":2.45756,"26.0":0.16858,"26.1":0.1538},P:{"29":0.81576,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":14.12624},R:{_:"0"},M:{"0":0.17213}};
Index: de_modules/caniuse-lite/data/regions/VC.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VC.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.03121,"115":0.14045,"139":0.0052,"141":0.0052,"142":0.06242,"143":0.0052,"144":1.58141,"145":0.91035,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 140 146 147 148 3.5 3.6"},D:{"32":0.0052,"57":0.01561,"69":0.04162,"78":0.0052,"79":0.0052,"85":0.06763,"86":0.01561,"93":0.0104,"94":0.0104,"102":0.0104,"103":0.06242,"105":0.0104,"108":0.01561,"109":0.16126,"111":0.07283,"112":0.0052,"116":0.02081,"119":0.0052,"121":0.0052,"122":0.02081,"125":1.24848,"126":0.05722,"128":0.02601,"129":0.0104,"130":0.0104,"131":0.0052,"132":0.04682,"133":0.0052,"134":0.0104,"135":0.0052,"136":0.0052,"137":0.01561,"138":0.12485,"139":0.14045,"140":0.40576,"141":4.95751,"142":14.48237,"143":0.22369,"144":0.06763,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 83 84 87 88 89 90 91 92 95 96 97 98 99 100 101 104 106 107 110 113 114 115 117 118 120 123 124 127 145 146"},F:{"63":0.02081,"92":0.11965,"93":0.01561,"117":0.0052,"120":0.0104,"122":1.13404,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0104,"109":0.0052,"114":0.08843,"124":0.0052,"130":0.0104,"139":0.0052,"140":0.04682,"141":0.86873,"142":5.77942,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 129 131 132 133 134 135 136 137 138 143"},E:{"15":0.0052,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.5 16.0 16.3 16.4 17.0 17.4 18.2","15.4":0.0052,"15.6":4.51534,"16.1":0.0052,"16.2":0.0052,"16.5":0.0104,"16.6":0.17167,"17.1":0.04682,"17.2":0.0052,"17.3":0.02081,"17.5":0.01561,"17.6":0.11965,"18.0":0.0052,"18.1":0.02081,"18.3":0.15606,"18.4":0.01561,"18.5-18.6":0.11444,"26.0":0.84272,"26.1":0.7803,"26.2":0.06242},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00113,"5.0-5.1":0,"6.0-6.1":0.0045,"7.0-7.1":0.00338,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01013,"10.0-10.2":0.00113,"10.3":0.018,"11.0-11.2":0.20927,"11.3-11.4":0.00675,"12.0-12.1":0.00225,"12.2-12.5":0.05288,"13.0-13.1":0,"13.2":0.00563,"13.3":0.00225,"13.4-13.7":0.01013,"14.0-14.4":0.01688,"14.5-14.8":0.02138,"15.0-15.1":0.018,"15.2-15.3":0.01463,"15.4":0.01575,"15.5":0.01688,"15.6-15.8":0.24415,"16.0":0.03038,"16.1":0.05626,"16.2":0.02925,"16.3":0.05401,"16.4":0.0135,"16.5":0.0225,"16.6-16.7":0.32966,"17.0":0.02813,"17.1":0.03375,"17.2":0.02475,"17.3":0.03488,"17.4":0.05738,"17.5":0.10914,"17.6-17.7":0.26778,"18.0":0.05963,"18.1":0.12601,"18.2":0.06751,"18.3":0.2194,"18.4":0.11251,"18.5-18.7":7.85679,"26.0":0.53894,"26.1":0.49168},P:{"4":0.04269,"21":0.05336,"22":0.01067,"23":0.01067,"24":0.01067,"25":0.04269,"26":0.09604,"27":0.01067,"28":0.13873,"29":1.44064,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03354,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.12475,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.0048},O:{"0":0.0048},H:{"0":0},L:{"0":42.35658},R:{_:"0"},M:{"0":0.07677}};
Index: de_modules/caniuse-lite/data/regions/VE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.91927,"5":0.04714,"52":0.02357,"55":0.00786,"75":0.00786,"91":0.00786,"115":0.275,"120":0.00786,"123":0.00786,"128":0.01571,"134":0.00786,"136":0.00786,"138":0.00786,"139":0.00786,"140":0.03143,"141":0.00786,"142":0.00786,"143":0.01571,"144":0.36928,"145":0.52642,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 124 125 126 127 129 130 131 132 133 135 137 146 147 148 3.5 3.6"},D:{"49":0.01571,"65":0.00786,"69":0.04714,"71":0.00786,"73":0.01571,"75":0.00786,"76":0.00786,"79":0.00786,"81":0.00786,"83":0.00786,"85":0.02357,"87":0.01571,"91":0.00786,"93":0.01571,"97":0.02357,"98":0.00786,"99":0.00786,"100":0.00786,"101":0.00786,"102":0.00786,"103":0.02357,"104":0.02357,"108":0.00786,"109":1.81497,"110":0.00786,"111":0.04714,"112":39.42643,"113":0.00786,"114":0.04714,"116":0.04714,"118":0.00786,"119":0.01571,"120":0.01571,"121":0.01571,"122":0.14928,"123":0.00786,"124":0.00786,"125":0.8407,"126":9.38912,"127":0.00786,"128":0.055,"129":0.00786,"130":0.03929,"131":0.03929,"132":0.07857,"133":0.03143,"134":0.03143,"135":0.03143,"136":0.04714,"137":0.07857,"138":0.13357,"139":0.06286,"140":0.22,"141":2.27853,"142":9.40483,"143":0.03143,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 72 74 77 78 80 84 86 88 89 90 92 94 95 96 105 106 107 115 117 144 145 146"},F:{"92":0.04714,"93":0.00786,"95":0.06286,"122":0.46356,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00786,"85":0.00786,"92":0.02357,"109":0.03143,"114":1.13141,"121":0.00786,"122":0.00786,"131":0.00786,"133":0.00786,"134":0.01571,"135":0.00786,"136":0.00786,"137":0.01571,"138":0.00786,"139":0.00786,"140":0.03143,"141":0.25142,"142":2.1921,"143":0.00786,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 123 124 125 126 127 128 129 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.4 17.5 18.0 18.1 18.2","5.1":0.02357,"15.4":0.00786,"15.6":0.01571,"16.6":0.01571,"17.1":0.00786,"17.3":0.00786,"17.6":0.01571,"18.3":0.00786,"18.4":0.00786,"18.5-18.6":0.02357,"26.0":0.03143,"26.1":0.07071,"26.2":0.00786},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0002,"5.0-5.1":0,"6.0-6.1":0.00081,"7.0-7.1":0.00061,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00182,"10.0-10.2":0.0002,"10.3":0.00324,"11.0-11.2":0.03767,"11.3-11.4":0.00122,"12.0-12.1":0.00041,"12.2-12.5":0.00952,"13.0-13.1":0,"13.2":0.00101,"13.3":0.00041,"13.4-13.7":0.00182,"14.0-14.4":0.00304,"14.5-14.8":0.00385,"15.0-15.1":0.00324,"15.2-15.3":0.00263,"15.4":0.00284,"15.5":0.00304,"15.6-15.8":0.04395,"16.0":0.00547,"16.1":0.01013,"16.2":0.00527,"16.3":0.00972,"16.4":0.00243,"16.5":0.00405,"16.6-16.7":0.05934,"17.0":0.00506,"17.1":0.00608,"17.2":0.00446,"17.3":0.00628,"17.4":0.01033,"17.5":0.01964,"17.6-17.7":0.0482,"18.0":0.01073,"18.1":0.02268,"18.2":0.01215,"18.3":0.03949,"18.4":0.02025,"18.5-18.7":1.41415,"26.0":0.097,"26.1":0.0885},P:{"23":0.01159,"26":0.01159,"27":0.01159,"28":0.02317,"29":0.30123,_:"4 20 21 22 24 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01159},I:{"0":0.00642,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.19073,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.12571,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00214,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.015},H:{"0":0},L:{"0":23.1997},R:{_:"0"},M:{"0":0.14358}};
Index: de_modules/caniuse-lite/data/regions/VG.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"101":0.00913,"115":0.00913,"123":0.00913,"128":0.01827,"144":0.03654,"145":0.04567,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 146 147 148 3.5 3.6"},D:{"69":0.00913,"101":0.00913,"102":0.00913,"109":0.00913,"111":0.00913,"112":0.00913,"121":0.01827,"122":0.0274,"125":0.11874,"126":0.00913,"127":0.00913,"128":0.00913,"132":0.00913,"134":68.64201,"135":0.00913,"138":0.00913,"139":15.25378,"140":0.03654,"141":0.886,"142":2.66713,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104 105 106 107 108 110 113 114 115 116 117 118 119 120 123 124 129 130 131 133 136 137 143 144 145 146"},F:{"95":0.00913,"122":0.12788,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.01827,"129":0.09134,"131":0.00913,"132":0.01827,"136":0.14614,"141":0.16441,"142":1.36097,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 133 134 135 137 138 139 140 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0","16.6":0.10047,"17.6":0.00913,"18.1":0.0274,"18.2":0.08221,"18.3":0.00913,"18.4":0.00913,"18.5-18.6":0.03654,"26.0":0.08221,"26.1":0.03654,"26.2":0.00913},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0,"6.0-6.1":0.00173,"7.0-7.1":0.0013,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0039,"10.0-10.2":0.00043,"10.3":0.00693,"11.0-11.2":0.08055,"11.3-11.4":0.0026,"12.0-12.1":0.00087,"12.2-12.5":0.02036,"13.0-13.1":0,"13.2":0.00217,"13.3":0.00087,"13.4-13.7":0.0039,"14.0-14.4":0.0065,"14.5-14.8":0.00823,"15.0-15.1":0.00693,"15.2-15.3":0.00563,"15.4":0.00606,"15.5":0.0065,"15.6-15.8":0.09398,"16.0":0.01169,"16.1":0.02165,"16.2":0.01126,"16.3":0.02079,"16.4":0.0052,"16.5":0.00866,"16.6-16.7":0.12689,"17.0":0.01083,"17.1":0.01299,"17.2":0.00953,"17.3":0.01343,"17.4":0.02209,"17.5":0.04201,"17.6-17.7":0.10307,"18.0":0.02295,"18.1":0.04851,"18.2":0.02599,"18.3":0.08445,"18.4":0.04331,"18.5-18.7":3.02424,"26.0":0.20745,"26.1":0.18926},P:{"23":0.01072,"24":0.01072,"25":0.01072,"27":0.01072,"28":0.03216,"29":0.3538,_:"4 20 21 22 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.10721},I:{"0":0.00086,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.01645,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":4.08763},R:{_:"0"},M:{"0":0.01732}};
Index: de_modules/caniuse-lite/data/regions/VI.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VI.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02198,"115":0.43071,"118":0.01758,"138":0.03077,"140":0.00879,"141":0.01319,"142":0.05714,"143":0.04835,"144":2.83478,"145":1.79316,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 146 147 148 3.5 3.6"},D:{"58":0.00879,"69":0.02198,"87":0.0044,"99":0.0044,"103":0.02198,"104":0.0044,"107":0.0044,"108":0.0044,"109":0.23733,"111":0.02637,"116":0.05714,"120":0.01319,"121":0.02198,"122":0.01319,"125":0.47906,"126":0.05274,"127":0.01319,"128":0.00879,"130":0.06593,"132":0.05714,"133":0.03956,"134":0.00879,"135":0.01758,"136":0.00879,"137":0.03956,"138":0.48345,"139":0.08351,"140":0.28568,"141":3.95111,"142":10.56119,"143":0.03516,"144":0.01319,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 100 101 102 105 106 110 112 113 114 115 117 118 119 123 124 129 131 145 146"},F:{"95":0.0044,"109":0.0044,"122":0.07911,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.0044,"100":0.03516,"109":0.02198,"114":0.0044,"133":0.02198,"136":0.0044,"138":0.01319,"139":0.05274,"140":0.03956,"141":1.21742,"142":7.88024,"143":0.01319,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 18.0 26.2","15.6":0.0879,"16.3":0.01758,"16.5":0.01319,"16.6":0.14943,"17.0":0.00879,"17.1":0.50982,"17.2":0.0044,"17.3":0.03077,"17.4":0.0879,"17.5":0.05714,"17.6":0.14064,"18.1":0.01319,"18.2":0.04395,"18.3":0.08351,"18.4":0.14943,"18.5-18.6":0.71639,"26.0":0.48345,"26.1":0.7032},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0031,"5.0-5.1":0,"6.0-6.1":0.01241,"7.0-7.1":0.00931,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02792,"10.0-10.2":0.0031,"10.3":0.04964,"11.0-11.2":0.57704,"11.3-11.4":0.01861,"12.0-12.1":0.0062,"12.2-12.5":0.14581,"13.0-13.1":0,"13.2":0.01551,"13.3":0.0062,"13.4-13.7":0.02792,"14.0-14.4":0.04654,"14.5-14.8":0.05894,"15.0-15.1":0.04964,"15.2-15.3":0.04033,"15.4":0.04343,"15.5":0.04654,"15.6-15.8":0.67321,"16.0":0.08376,"16.1":0.15512,"16.2":0.08066,"16.3":0.14891,"16.4":0.03723,"16.5":0.06205,"16.6-16.7":0.90899,"17.0":0.07756,"17.1":0.09307,"17.2":0.06825,"17.3":0.09617,"17.4":0.15822,"17.5":0.30093,"17.6-17.7":0.73836,"18.0":0.16443,"18.1":0.34746,"18.2":0.18614,"18.3":0.60496,"18.4":0.31024,"18.5-18.7":21.66378,"26.0":1.48603,"26.1":1.35573},P:{"4":0.01071,"22":0.02142,"24":0.01071,"25":0.01071,"26":0.01071,"27":0.01071,"28":0.12849,"29":1.82032,_:"20 21 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0056,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.00561,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.06593,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01682},H:{"0":0},L:{"0":24.30616},R:{_:"0"},M:{"0":0.70075}};
Index: de_modules/caniuse-lite/data/regions/VN.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.00595,"54":0.00298,"59":0.00298,"75":0.00298,"113":0.00298,"115":0.04763,"117":0.00298,"118":0.00298,"125":0.02084,"127":0.00298,"128":0.00595,"134":0.00298,"135":0.00298,"136":0.01489,"138":0.00298,"140":0.00595,"141":0.00298,"142":0.00298,"143":0.00595,"144":0.21732,"145":0.23221,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 119 120 121 122 123 124 126 129 130 131 132 133 137 139 146 147 148 3.5 3.6"},D:{"26":0.00298,"34":0.01786,"38":0.02084,"39":0.00595,"40":0.00595,"41":0.00595,"42":0.00595,"43":0.00595,"44":0.00595,"45":0.00595,"46":0.00595,"47":0.00893,"48":0.01191,"49":0.00893,"50":0.00595,"51":0.00595,"52":0.00595,"53":0.00595,"54":0.00595,"55":0.00595,"56":0.00595,"57":0.01191,"58":0.00595,"59":0.00595,"60":0.00595,"66":0.00893,"69":0.00298,"71":0.00298,"75":0.00298,"79":0.04168,"80":0.00298,"81":0.00595,"83":0.00298,"85":0.00893,"86":0.00298,"87":0.05359,"89":0.00595,"90":0.00298,"91":0.00595,"99":0.00893,"100":0.04466,"101":0.00595,"102":0.00893,"103":0.05061,"104":0.02679,"105":0.01489,"106":0.00893,"107":0.02679,"108":0.01786,"109":0.52395,"110":0.00298,"111":0.00893,"112":0.01786,"113":0.00298,"114":0.01191,"115":0.02382,"116":0.02679,"117":0.00298,"118":0.00595,"119":0.01786,"120":0.0387,"121":0.03275,"122":0.35724,"123":0.01489,"124":0.12801,"125":0.86928,"126":0.19946,"127":0.04168,"128":0.11908,"129":0.01786,"130":0.03572,"131":0.06252,"132":0.02977,"133":0.03572,"134":0.03572,"135":0.23518,"136":0.04466,"137":0.05954,"138":0.13694,"139":0.1429,"140":0.20839,"141":2.60785,"142":9.16618,"143":0.02084,"144":0.00298,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 61 62 63 64 65 67 68 70 72 73 74 76 77 78 84 88 92 93 94 95 96 97 98 145 146"},F:{"36":0.00893,"46":0.00595,"62":0.00298,"85":0.00595,"86":0.00298,"92":0.04168,"93":0.00595,"95":0.00595,"114":0.00298,"115":0.00298,"116":0.00298,"119":0.00298,"122":0.08038,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 117 118 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00298,"18":0.00298,"92":0.00298,"100":0.00298,"101":0.00298,"103":0.00298,"105":0.00298,"106":0.00298,"107":0.00298,"108":0.00298,"109":0.01191,"110":0.00298,"111":0.00595,"112":0.00595,"113":0.00298,"114":0.02679,"115":0.00595,"116":0.00298,"117":0.00893,"118":0.00298,"119":0.00298,"120":0.00298,"121":0.00298,"122":0.00595,"123":0.00298,"124":0.00298,"125":0.00298,"126":0.00298,"127":0.00893,"128":0.01191,"129":0.00595,"130":0.00893,"131":0.0774,"132":0.00893,"133":0.00893,"134":0.00595,"135":0.00595,"136":0.00298,"137":0.00298,"138":0.01191,"139":0.00893,"140":0.02084,"141":0.20244,"142":1.83086,"143":0.00595,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 102 104"},E:{"14":0.00595,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 12.1 15.2-15.3","9.1":0.00298,"11.1":0.00298,"13.1":0.01191,"14.1":0.02382,"15.1":0.00298,"15.4":0.00595,"15.5":0.00893,"15.6":0.09229,"16.0":0.00298,"16.1":0.00595,"16.2":0.00595,"16.3":0.01489,"16.4":0.01191,"16.5":0.00893,"16.6":0.0774,"17.0":0.00298,"17.1":0.04763,"17.2":0.01191,"17.3":0.00595,"17.4":0.02084,"17.5":0.02679,"17.6":0.04168,"18.0":0.00595,"18.1":0.01191,"18.2":0.00595,"18.3":0.02679,"18.4":0.01489,"18.5-18.6":0.05954,"26.0":0.07443,"26.1":0.09824,"26.2":0.00595},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0021,"5.0-5.1":0,"6.0-6.1":0.0084,"7.0-7.1":0.0063,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01891,"10.0-10.2":0.0021,"10.3":0.03361,"11.0-11.2":0.39076,"11.3-11.4":0.01261,"12.0-12.1":0.0042,"12.2-12.5":0.09874,"13.0-13.1":0,"13.2":0.0105,"13.3":0.0042,"13.4-13.7":0.01891,"14.0-14.4":0.03151,"14.5-14.8":0.03992,"15.0-15.1":0.03361,"15.2-15.3":0.02731,"15.4":0.02941,"15.5":0.03151,"15.6-15.8":0.45589,"16.0":0.05672,"16.1":0.10504,"16.2":0.05462,"16.3":0.10084,"16.4":0.02521,"16.5":0.04202,"16.6-16.7":0.61556,"17.0":0.05252,"17.1":0.06303,"17.2":0.04622,"17.3":0.06513,"17.4":0.10714,"17.5":0.20379,"17.6-17.7":0.50001,"18.0":0.11135,"18.1":0.2353,"18.2":0.12605,"18.3":0.40967,"18.4":0.21009,"18.5-18.7":14.67043,"26.0":1.00632,"26.1":0.91808},P:{"4":0.18753,"20":0.01042,"21":0.03126,"22":0.04167,"23":0.04167,"24":0.03126,"25":0.07293,"26":0.12502,"27":0.1146,"28":0.32297,"29":1.69822,"5.0-5.4":0.01042,_:"6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.08335,"11.1-11.2":0.01042,"17.0":0.01042,"19.0":0.01042},I:{"0":0.01403,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.31608,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01786,"9":0.00357,"10":0.00714,"11":0.09645,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00702},O:{"0":0.83586},H:{"0":0},L:{"0":48.60136},R:{_:"0"},M:{"0":0.16858}};
Index: de_modules/caniuse-lite/data/regions/VU.js
===================================================================
--- node_modules/caniuse-lite/data/regions/VU.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.02374,"136":0.00593,"141":0.01484,"142":0.05044,"144":0.37978,"145":0.31154,"146":0.00593,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 140 143 147 148 3.5 3.6"},D:{"58":0.00593,"59":0.02374,"78":0.00593,"81":0.0356,"88":0.00593,"94":0.00593,"103":0.0178,"109":0.05934,"111":0.0178,"114":0.00593,"116":0.00593,"117":0.00593,"119":0.00593,"120":0.00593,"122":0.0356,"125":0.29373,"126":0.13945,"127":0.02374,"128":0.0089,"131":0.03264,"132":0.00593,"134":0.03264,"135":0.04451,"136":0.0089,"137":0.09791,"138":0.13352,"139":0.06231,"140":0.51626,"141":2.47745,"142":8.96924,"143":0.00593,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 83 84 85 86 87 89 90 91 92 93 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 115 118 121 123 124 129 130 133 144 145 146"},F:{"88":0.01484,"94":0.00593,"122":0.11275,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0089,"92":0.10385,"100":0.0089,"109":0.00593,"114":0.00593,"119":0.00593,"122":0.0267,"131":0.0267,"133":0.0089,"134":0.00593,"135":0.00593,"136":0.0178,"137":0.02374,"138":0.0089,"139":0.32044,"140":0.04154,"141":0.97318,"142":4.08556,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 123 124 125 126 127 128 129 130 132 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 16.4 17.1 17.3 18.0","15.6":0.00593,"16.2":0.00593,"16.5":0.00593,"16.6":0.01484,"17.0":0.0089,"17.2":0.0089,"17.4":1.55768,"17.5":0.00593,"17.6":0.05341,"18.1":0.00593,"18.2":0.00593,"18.3":0.00593,"18.4":0.03264,"18.5-18.6":0.20472,"26.0":0.05044,"26.1":0.18395,"26.2":0.0267},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00072,"5.0-5.1":0,"6.0-6.1":0.00288,"7.0-7.1":0.00216,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00649,"10.0-10.2":0.00072,"10.3":0.01153,"11.0-11.2":0.13408,"11.3-11.4":0.00433,"12.0-12.1":0.00144,"12.2-12.5":0.03388,"13.0-13.1":0,"13.2":0.0036,"13.3":0.00144,"13.4-13.7":0.00649,"14.0-14.4":0.01081,"14.5-14.8":0.0137,"15.0-15.1":0.01153,"15.2-15.3":0.00937,"15.4":0.01009,"15.5":0.01081,"15.6-15.8":0.15643,"16.0":0.01946,"16.1":0.03604,"16.2":0.01874,"16.3":0.0346,"16.4":0.00865,"16.5":0.01442,"16.6-16.7":0.21122,"17.0":0.01802,"17.1":0.02163,"17.2":0.01586,"17.3":0.02235,"17.4":0.03677,"17.5":0.06993,"17.6-17.7":0.17157,"18.0":0.03821,"18.1":0.08074,"18.2":0.04325,"18.3":0.14057,"18.4":0.07209,"18.5-18.7":5.03392,"26.0":0.3453,"26.1":0.31503},P:{"21":0.01053,"22":0.11586,"23":0.02107,"24":0.01053,"25":0.16853,"27":0.0632,"28":0.47399,"29":8.14206,_:"4 20 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","16.0":0.01053},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.0955,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00703},O:{"0":0.00703},H:{"0":0.01},L:{"0":59.00501},R:{_:"0"},M:{"0":0.47121}};
Index: de_modules/caniuse-lite/data/regions/WF.js
===================================================================
--- node_modules/caniuse-lite/data/regions/WF.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"115":0.10472,"128":0.05236,"140":1.05281,"144":0.21131,"145":0.15895,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"125":1.68487,"139":0.15895,"140":0.05236,"141":0.15895,"142":0.84337,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.10472,"142":0.5797,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2 18.4 26.2","15.1":0.05236,"15.6":0.31603,"16.6":0.73678,"17.1":0.31603,"17.4":0.10472,"17.5":0.94809,"17.6":0.31603,"18.3":0.15895,"18.5-18.6":0.10472,"26.0":3.05558,"26.1":2.73955},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00302,"5.0-5.1":0,"6.0-6.1":0.01207,"7.0-7.1":0.00905,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02716,"10.0-10.2":0.00302,"10.3":0.04829,"11.0-11.2":0.56132,"11.3-11.4":0.01811,"12.0-12.1":0.00604,"12.2-12.5":0.14184,"13.0-13.1":0,"13.2":0.01509,"13.3":0.00604,"13.4-13.7":0.02716,"14.0-14.4":0.04527,"14.5-14.8":0.05734,"15.0-15.1":0.04829,"15.2-15.3":0.03923,"15.4":0.04225,"15.5":0.04527,"15.6-15.8":0.65487,"16.0":0.08148,"16.1":0.15089,"16.2":0.07846,"16.3":0.14486,"16.4":0.03621,"16.5":0.06036,"16.6-16.7":0.88423,"17.0":0.07545,"17.1":0.09054,"17.2":0.06639,"17.3":0.09355,"17.4":0.15391,"17.5":0.29273,"17.6-17.7":0.71825,"18.0":0.15995,"18.1":0.338,"18.2":0.18107,"18.3":0.58848,"18.4":0.30179,"18.5-18.7":21.07369,"26.0":1.44555,"26.1":1.3188},P:{"29":0.69105,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":52.10713},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/WS.js
===================================================================
--- node_modules/caniuse-lite/data/regions/WS.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"141":0.0668,"144":0.10687,"145":0.16031,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 142 143 146 147 148 3.5 3.6"},D:{"76":0.00891,"84":0.00891,"93":0.13804,"101":0.00891,"102":0.01781,"103":0.01781,"105":0.02227,"107":0.00891,"109":0.25827,"116":0.01781,"120":0.01781,"123":0.03117,"124":0.02227,"125":0.51655,"126":0.04008,"128":0.0668,"129":0.04008,"130":0.01781,"131":0.04898,"132":0.00891,"133":0.04898,"134":0.02227,"135":0.0668,"136":0.03117,"137":0.05789,"138":0.0668,"139":0.14695,"140":0.23601,"141":3.59802,"142":10.03706,"143":0.00891,"144":0.40522,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 104 106 108 110 111 112 113 114 115 117 118 119 121 122 127 145 146"},F:{"92":0.05789,"122":0.11133,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"83":0.01781,"92":0.01781,"110":0.00891,"114":0.07125,"120":0.01781,"124":0.00891,"130":0.02227,"131":0.00891,"133":0.03117,"134":0.02227,"135":0.00891,"136":0.08906,"137":0.01781,"138":0.20039,"139":0.10687,"140":0.04898,"141":0.88169,"142":8.88374,_:"12 13 14 15 16 17 18 79 80 81 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 115 116 117 118 119 121 122 123 125 126 127 128 129 132 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 16.5 17.0 17.2 17.4 18.0 18.2 26.2","14.1":0.00891,"15.5":0.00891,"15.6":0.02227,"16.1":0.13804,"16.3":0.02227,"16.6":0.0668,"17.1":0.07125,"17.3":0.17812,"17.5":1.89253,"17.6":0.04898,"18.1":0.69467,"18.3":0.05789,"18.4":0.11133,"18.5-18.6":0.0668,"26.0":0.03117,"26.1":0.00891},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0,"6.0-6.1":0.00284,"7.0-7.1":0.00213,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00639,"10.0-10.2":0.00071,"10.3":0.01136,"11.0-11.2":0.13206,"11.3-11.4":0.00426,"12.0-12.1":0.00142,"12.2-12.5":0.03337,"13.0-13.1":0,"13.2":0.00355,"13.3":0.00142,"13.4-13.7":0.00639,"14.0-14.4":0.01065,"14.5-14.8":0.01349,"15.0-15.1":0.01136,"15.2-15.3":0.00923,"15.4":0.00994,"15.5":0.01065,"15.6-15.8":0.15407,"16.0":0.01917,"16.1":0.0355,"16.2":0.01846,"16.3":0.03408,"16.4":0.00852,"16.5":0.0142,"16.6-16.7":0.20803,"17.0":0.01775,"17.1":0.0213,"17.2":0.01562,"17.3":0.02201,"17.4":0.03621,"17.5":0.06887,"17.6-17.7":0.16898,"18.0":0.03763,"18.1":0.07952,"18.2":0.0426,"18.3":0.13845,"18.4":0.071,"18.5-18.7":4.95804,"26.0":0.3401,"26.1":0.31028},P:{"4":0.01024,"20":0.01024,"21":0.11262,"22":0.20476,"23":0.04095,"24":0.19453,"25":2.05787,"26":0.12286,"27":0.61429,"28":2.01692,"29":1.49477,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0 18.0","7.2-7.4":0.07167,"13.0":0.05119,"16.0":0.1331,"19.0":0.03071},I:{"0":0.01662,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.04838,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.02219},H:{"0":0},L:{"0":52.73886},R:{_:"0"},M:{"0":0.69338}};
Index: de_modules/caniuse-lite/data/regions/YE.js
===================================================================
--- node_modules/caniuse-lite/data/regions/YE.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"44":0.0028,"47":0.0028,"52":0.00559,"89":0.02238,"115":0.04475,"118":0.0028,"121":0.0028,"125":0.0028,"127":0.0028,"128":0.0028,"133":0.0028,"140":0.00839,"142":0.0028,"143":0.00839,"144":0.15663,"145":0.15384,_:"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 33 34 35 36 37 38 39 40 41 42 43 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 122 123 124 126 129 130 131 132 134 135 136 137 138 139 141 146 147 148 3.5 3.6"},D:{"40":0.00559,"41":0.00559,"43":0.00559,"44":0.0028,"55":0.0028,"56":0.0028,"57":0.0028,"58":0.0028,"63":0.0028,"65":0.0028,"66":0.0028,"67":0.00559,"68":0.00559,"69":0.0028,"70":0.05594,"72":0.0028,"73":0.0028,"75":0.00559,"78":0.0028,"79":0.00839,"80":0.00559,"83":0.01678,"86":0.00559,"87":0.24054,"88":0.00559,"89":0.0028,"90":0.0028,"91":0.00559,"93":0.0028,"95":0.0028,"98":0.00559,"101":0.0028,"103":0.0028,"105":0.00559,"106":0.03916,"107":0.0028,"108":0.0028,"109":0.27131,"111":0.00559,"112":0.0028,"113":0.01119,"114":0.01958,"115":0.01399,"116":0.00559,"119":0.04755,"120":0.0028,"122":0.00559,"123":0.01958,"125":0.01399,"126":0.01119,"127":0.00839,"128":0.00839,"129":0.0028,"130":0.00559,"131":0.06433,"132":0.0028,"133":0.01399,"134":0.00839,"135":0.01119,"136":0.04196,"137":0.03356,"138":0.17062,"139":0.11468,"140":0.0923,"141":1.38172,"142":3.59135,"143":0.0028,"144":0.00559,_:"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 33 34 35 36 37 38 39 42 45 46 47 48 49 50 51 52 53 54 59 60 61 62 64 71 74 76 77 81 84 85 92 94 96 97 99 100 102 104 110 117 118 121 124 145 146"},F:{"72":0.00839,"84":0.0028,"86":0.00839,"88":0.0028,"89":0.00559,"90":0.22935,"91":0.00559,"92":0.16223,"93":0.03636,"95":0.00559,"122":0.01119,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 85 87 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.0028,"15":0.00559,"16":0.0028,"18":0.0028,"89":0.0028,"92":0.02238,"114":0.01399,"122":0.00559,"130":0.0028,"134":0.0028,"135":0.0028,"136":0.00839,"137":0.0028,"138":0.00839,"139":0.00559,"140":0.03356,"141":0.13146,"142":1.04888,"143":0.00559,_:"12 14 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 131 132 133"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.4 17.5 17.6 18.2 26.2","5.1":0.05594,"15.2-15.3":0.01958,"15.4":0.03916,"15.6":0.00559,"16.6":0.01119,"17.3":0.0028,"18.0":0.0028,"18.1":0.0028,"18.3":0.0028,"18.4":0.00839,"18.5-18.6":0.03077,"26.0":0.01399,"26.1":0.00559},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00022,"5.0-5.1":0,"6.0-6.1":0.00087,"7.0-7.1":0.00065,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00196,"10.0-10.2":0.00022,"10.3":0.00348,"11.0-11.2":0.04047,"11.3-11.4":0.00131,"12.0-12.1":0.00044,"12.2-12.5":0.01023,"13.0-13.1":0,"13.2":0.00109,"13.3":0.00044,"13.4-13.7":0.00196,"14.0-14.4":0.00326,"14.5-14.8":0.00413,"15.0-15.1":0.00348,"15.2-15.3":0.00283,"15.4":0.00305,"15.5":0.00326,"15.6-15.8":0.04721,"16.0":0.00587,"16.1":0.01088,"16.2":0.00566,"16.3":0.01044,"16.4":0.00261,"16.5":0.00435,"16.6-16.7":0.06375,"17.0":0.00544,"17.1":0.00653,"17.2":0.00479,"17.3":0.00674,"17.4":0.0111,"17.5":0.0211,"17.6-17.7":0.05178,"18.0":0.01153,"18.1":0.02437,"18.2":0.01305,"18.3":0.04242,"18.4":0.02176,"18.5-18.7":1.51923,"26.0":0.10421,"26.1":0.09507},P:{"4":0.06025,"21":0.02008,"22":0.03012,"23":0.0502,"24":0.01004,"25":0.0502,"26":0.03012,"27":0.04016,"28":0.53217,"29":0.8334,_:"20 8.2 10.1 12.0 18.0","5.0-5.4":0.06025,"6.2-6.4":0.01004,"7.2-7.4":0.14057,"9.2":0.0502,"11.1-11.2":0.03012,"13.0":0.0502,"14.0":0.09037,"15.0":0.01004,"16.0":0.15061,"17.0":0.01004,"19.0":0.01004},I:{"0":0.15107,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":1.71422,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0028,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":2.43495},H:{"0":0.13},L:{"0":81.11026},R:{_:"0"},M:{"0":0.09365}};
Index: de_modules/caniuse-lite/data/regions/YT.js
===================================================================
--- node_modules/caniuse-lite/data/regions/YT.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.02339,"34":0.01337,"60":0.04345,"78":0.00334,"91":0.03342,"102":0.10026,"115":0.00334,"128":0.35091,"134":0.00334,"135":0.01337,"136":0.02005,"139":0.03342,"140":0.24062,"141":0.01337,"142":0.02339,"143":0.04345,"144":0.69848,"145":0.61827,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 137 138 146 147 148 3.5 3.6"},D:{"47":0.02005,"69":0.03008,"78":0.01003,"79":0.00334,"87":0.11363,"94":0.04679,"98":0.00334,"100":0.00334,"102":0.03342,"103":0.03008,"105":0.02339,"108":0.01337,"109":0.04679,"111":0.02339,"113":0.0635,"114":0.00334,"116":0.03008,"117":0.01003,"119":0.01337,"120":0.07018,"121":0.03008,"122":0.02005,"123":0.08021,"125":0.57148,"126":0.5414,"128":0.02005,"129":0.00334,"130":0.01337,"131":0.2306,"132":0.05681,"133":0.04345,"134":0.03342,"135":0.02005,"136":0.02005,"137":0.03342,"138":0.15373,"139":0.12031,"140":0.59488,"141":3.4055,"142":7.09172,"143":0.04345,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 83 84 85 86 88 89 90 91 92 93 95 96 97 99 101 104 106 107 110 112 115 118 124 127 144 145 146"},F:{"91":0.02005,"92":0.03342,"95":0.00334,"120":0.03342,"122":0.11363,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.01337,"90":0.00334,"95":0.00334,"100":0.03008,"109":0.03676,"114":1.79465,"122":0.02339,"123":0.00334,"131":0.00334,"132":0.00334,"133":0.01003,"135":0.03008,"136":0.02005,"137":0.00334,"138":0.00334,"139":0.02339,"140":0.07018,"141":0.67174,"142":4.1374,_:"12 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91 92 93 94 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 125 126 127 128 129 130 134 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 18.2 18.3 18.4 26.2","13.1":0.05347,"14.1":0.00334,"15.1":0.00334,"15.6":0.0635,"16.5":0.0635,"16.6":0.80542,"17.1":0.04345,"17.3":0.00334,"17.4":0.04345,"17.5":0.02339,"17.6":0.21389,"18.0":0.01003,"18.1":0.10026,"18.5-18.6":0.07687,"26.0":0.13034,"26.1":0.11363},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00079,"5.0-5.1":0,"6.0-6.1":0.00316,"7.0-7.1":0.00237,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0071,"10.0-10.2":0.00079,"10.3":0.01263,"11.0-11.2":0.14677,"11.3-11.4":0.00473,"12.0-12.1":0.00158,"12.2-12.5":0.03709,"13.0-13.1":0,"13.2":0.00395,"13.3":0.00158,"13.4-13.7":0.0071,"14.0-14.4":0.01184,"14.5-14.8":0.01499,"15.0-15.1":0.01263,"15.2-15.3":0.01026,"15.4":0.01105,"15.5":0.01184,"15.6-15.8":0.17123,"16.0":0.02131,"16.1":0.03945,"16.2":0.02052,"16.3":0.03788,"16.4":0.00947,"16.5":0.01578,"16.6-16.7":0.2312,"17.0":0.01973,"17.1":0.02367,"17.2":0.01736,"17.3":0.02446,"17.4":0.04024,"17.5":0.07654,"17.6-17.7":0.1878,"18.0":0.04182,"18.1":0.08838,"18.2":0.04735,"18.3":0.15387,"18.4":0.07891,"18.5-18.7":5.51023,"26.0":0.37797,"26.1":0.34483},P:{"4":0.02027,"22":0.0608,"24":0.13172,"25":2.26971,"26":0.04053,"27":0.4357,"28":0.48637,"29":0.993,_:"20 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.22292,"14.0":0.02027},I:{"0":0.00665,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.9256,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00666},O:{"0":0.01332},H:{"0":0},L:{"0":59.64819},R:{_:"0"},M:{"0":0.31963}};
Index: de_modules/caniuse-lite/data/regions/ZA.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ZA.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00302,"34":0.00604,"52":0.00604,"59":0.00302,"78":0.00604,"108":0.00302,"115":0.03623,"127":0.00302,"128":0.00302,"132":0.00302,"136":0.00604,"140":0.0151,"141":0.00604,"142":0.00604,"143":0.00906,"144":0.19925,"145":0.22643,"146":0.00302,_:"2 3 4 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 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 133 134 135 137 138 139 147 148 3.5 3.6"},D:{"39":0.00604,"40":0.00604,"41":0.00604,"42":0.00604,"43":0.00604,"44":0.00604,"45":0.00604,"46":0.00604,"47":0.00604,"48":0.00604,"49":0.00604,"50":0.00604,"51":0.00604,"52":0.08453,"53":0.00604,"54":0.00604,"55":0.00604,"56":0.00604,"57":0.00604,"58":0.00604,"59":0.00604,"60":0.00604,"65":0.00302,"66":0.00604,"69":0.00604,"70":0.00604,"75":0.00604,"78":0.00302,"79":0.01208,"81":0.00302,"83":0.00302,"86":0.00302,"87":0.01208,"88":0.01208,"90":0.00302,"91":0.00302,"94":0.00302,"98":0.27775,"99":0.00302,"100":0.00604,"101":0.00302,"102":0.00302,"103":0.00604,"104":0.00302,"107":0.00302,"108":0.00302,"109":0.32001,"110":0.00302,"111":0.02113,"112":3.08844,"114":0.04227,"116":0.02415,"117":0.00906,"118":0.00302,"119":0.01811,"120":0.00906,"121":0.00604,"122":0.02415,"123":0.00302,"124":0.00906,"125":0.10265,"126":0.73966,"127":0.00604,"128":0.02113,"129":0.00302,"130":0.09963,"131":0.03321,"132":0.0151,"133":0.03623,"134":0.0151,"135":0.01811,"136":0.03623,"137":0.02415,"138":0.1117,"139":0.13887,"140":0.18114,"141":2.31859,"142":5.7361,"143":0.00906,_:"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 33 34 35 36 37 38 61 62 63 64 67 68 71 72 73 74 76 77 80 84 85 89 92 93 95 96 97 105 106 113 115 144 145 146"},F:{"84":0.00302,"86":0.00302,"90":0.00604,"91":0.00604,"92":0.13887,"93":0.0151,"95":0.0151,"102":0.00302,"109":0.00302,"122":0.09963,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 87 88 89 94 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00302,"92":0.00604,"100":0.00302,"109":0.0151,"114":0.06038,"118":0.0151,"122":0.00302,"126":0.00302,"127":0.00302,"131":0.00302,"133":0.00302,"134":0.00302,"135":0.00604,"136":0.00302,"137":0.00906,"138":0.00906,"139":0.00906,"140":0.02415,"141":0.27473,"142":2.10424,"143":0.00302,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 128 129 130 132"},E:{"15":0.00302,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.0 17.0","11.1":0.00302,"13.1":0.00604,"14.1":0.00604,"15.5":0.00302,"15.6":0.04529,"16.1":0.00302,"16.2":0.00302,"16.3":0.00604,"16.4":0.00302,"16.5":0.00302,"16.6":0.05736,"17.1":0.04227,"17.2":0.00302,"17.3":0.00302,"17.4":0.00604,"17.5":0.00906,"17.6":0.04529,"18.0":0.00302,"18.1":0.00906,"18.2":0.00302,"18.3":0.01208,"18.4":0.00906,"18.5-18.6":0.04529,"26.0":0.07246,"26.1":0.09057,"26.2":0.00302},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0,"6.0-6.1":0.00364,"7.0-7.1":0.00273,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00819,"10.0-10.2":0.00091,"10.3":0.01455,"11.0-11.2":0.16919,"11.3-11.4":0.00546,"12.0-12.1":0.00182,"12.2-12.5":0.04275,"13.0-13.1":0,"13.2":0.00455,"13.3":0.00182,"13.4-13.7":0.00819,"14.0-14.4":0.01364,"14.5-14.8":0.01728,"15.0-15.1":0.01455,"15.2-15.3":0.01183,"15.4":0.01273,"15.5":0.01364,"15.6-15.8":0.19739,"16.0":0.02456,"16.1":0.04548,"16.2":0.02365,"16.3":0.04366,"16.4":0.01092,"16.5":0.01819,"16.6-16.7":0.26652,"17.0":0.02274,"17.1":0.02729,"17.2":0.02001,"17.3":0.0282,"17.4":0.04639,"17.5":0.08823,"17.6-17.7":0.21649,"18.0":0.04821,"18.1":0.10188,"18.2":0.05458,"18.3":0.17738,"18.4":0.09096,"18.5-18.7":6.35191,"26.0":0.43571,"26.1":0.39751},P:{"4":0.03049,"20":0.01016,"21":0.01016,"22":0.03049,"23":0.03049,"24":0.1118,"25":0.06098,"26":0.06098,"27":0.1118,"28":0.68096,"29":5.55944,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0 16.0","7.2-7.4":0.13213,"11.1-11.2":0.02033,"14.0":0.02033,"17.0":0.01016,"18.0":0.01016,"19.0":0.02033},I:{"0":0.02788,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.83221,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0151,_:"6 7 8 9 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00698},O:{"0":0.10472},H:{"0":0.03},L:{"0":61.58824},R:{_:"0"},M:{"0":0.48867}};
Index: de_modules/caniuse-lite/data/regions/ZM.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ZM.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00533,"41":0.00267,"72":0.00267,"112":0.00267,"115":0.02932,"127":0.00533,"128":0.00267,"137":0.00267,"140":0.01066,"141":0.01066,"142":0.01066,"143":0.01866,"144":0.19721,"145":0.2212,_:"2 3 4 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 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 138 139 146 147 148 3.5 3.6"},D:{"11":0.00267,"46":0.00267,"55":0.00267,"61":0.00267,"64":0.00267,"68":0.01066,"69":0.01066,"70":0.02132,"71":0.00533,"72":0.00267,"73":0.00533,"74":0.00267,"75":0.00267,"77":0.00533,"79":0.008,"80":0.00267,"81":0.00267,"83":0.02665,"86":0.008,"87":0.008,"88":0.00267,"89":0.008,"90":0.00267,"91":0.01333,"92":0.00267,"93":0.01333,"94":0.00267,"95":0.00533,"97":0.00267,"98":0.008,"101":0.00267,"103":0.03198,"105":0.008,"106":0.01866,"108":0.008,"109":0.26117,"110":0.00267,"111":0.01333,"114":0.01866,"115":0.00267,"116":0.01866,"117":0.00267,"118":0.00533,"119":0.01333,"120":0.008,"121":0.00267,"122":0.01599,"123":0.00533,"124":0.01066,"125":0.06663,"126":0.03465,"127":0.00533,"128":0.00267,"129":0.00533,"130":0.12792,"131":0.02932,"132":0.02665,"133":0.03731,"134":0.01866,"135":0.02399,"136":0.02665,"137":0.03465,"138":0.15457,"139":0.08795,"140":0.14658,"141":1.35116,"142":3.13671,"143":0.01333,"144":0.00267,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 56 57 58 59 60 62 63 65 66 67 76 78 84 85 96 99 100 102 104 107 112 113 145 146"},F:{"34":0.00267,"36":0.00267,"42":0.00267,"46":0.00267,"60":0.00267,"79":0.008,"86":0.00267,"89":0.00267,"90":0.008,"91":0.008,"92":0.06663,"93":0.01866,"95":0.02399,"102":0.00267,"113":0.00533,"114":0.00267,"119":0.00267,"120":0.00533,"122":0.11993,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 94 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02132,"13":0.03198,"14":0.02132,"15":0.00267,"16":0.00267,"17":0.00533,"18":0.02399,"84":0.00267,"89":0.00267,"90":0.01333,"92":0.06396,"100":0.01066,"109":0.008,"111":0.00267,"114":0.03998,"116":0.00267,"122":0.01333,"123":0.00267,"124":0.00267,"125":0.00267,"126":0.00267,"127":0.00267,"131":0.00267,"133":0.00267,"134":0.00267,"135":0.00533,"136":0.00267,"137":0.00533,"138":0.01599,"139":0.02132,"140":0.04264,"141":0.28516,"142":1.4924,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 115 117 118 119 120 121 128 129 130 132 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 18.0 18.2 26.2","13.1":0.00533,"15.6":0.01866,"16.6":0.01866,"17.1":0.02132,"17.3":0.00267,"17.4":0.00267,"17.5":0.008,"17.6":0.01866,"18.1":0.00267,"18.3":0.00267,"18.4":0.00267,"18.5-18.6":0.01866,"26.0":0.02932,"26.1":0.02932},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0.0022,"7.0-7.1":0.00165,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00495,"10.0-10.2":0.00055,"10.3":0.0088,"11.0-11.2":0.10234,"11.3-11.4":0.0033,"12.0-12.1":0.0011,"12.2-12.5":0.02586,"13.0-13.1":0,"13.2":0.00275,"13.3":0.0011,"13.4-13.7":0.00495,"14.0-14.4":0.00825,"14.5-14.8":0.01045,"15.0-15.1":0.0088,"15.2-15.3":0.00715,"15.4":0.0077,"15.5":0.00825,"15.6-15.8":0.11939,"16.0":0.01486,"16.1":0.02751,"16.2":0.01431,"16.3":0.02641,"16.4":0.0066,"16.5":0.011,"16.6-16.7":0.16121,"17.0":0.01376,"17.1":0.01651,"17.2":0.0121,"17.3":0.01706,"17.4":0.02806,"17.5":0.05337,"17.6-17.7":0.13095,"18.0":0.02916,"18.1":0.06162,"18.2":0.03301,"18.3":0.10729,"18.4":0.05502,"18.5-18.7":3.84205,"26.0":0.26355,"26.1":0.24044},P:{"4":0.04149,"21":0.01037,"22":0.01037,"23":0.01037,"24":0.06223,"25":0.09334,"26":0.04149,"27":0.12446,"28":0.40449,"29":0.59118,_:"20 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","5.0-5.4":0.02074,"7.2-7.4":0.05186,"9.2":0.02074,"11.1-11.2":0.01037,"16.0":0.01037},I:{"0":0.04395,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":11.16854,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.01199,"11":0.01199,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{"2.5":0.00734,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.01467},O:{"0":0.57221},H:{"0":1.31},L:{"0":69.44072},R:{_:"0"},M:{"0":0.07336}};
Index: de_modules/caniuse-lite/data/regions/ZW.js
===================================================================
--- node_modules/caniuse-lite/data/regions/ZW.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00726,"88":0.00363,"112":0.00363,"115":0.10893,"127":0.01089,"128":0.00363,"133":0.00363,"136":0.00726,"138":0.00363,"139":0.00363,"140":0.01452,"141":0.00363,"142":0.01089,"143":0.0472,"144":0.4684,"145":0.50834,"146":0.02542,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 134 135 137 147 148 3.5 3.6"},D:{"11":0.00363,"49":0.00363,"50":0.00363,"59":0.00363,"63":0.00726,"64":0.02179,"65":0.00363,"67":0.00363,"68":0.00726,"69":0.01816,"70":0.02179,"71":0.00726,"72":0.00363,"73":0.00363,"74":0.00726,"75":0.00726,"76":0.01452,"77":0.00363,"78":0.02179,"79":0.02179,"80":0.01089,"81":0.00363,"83":0.00726,"84":0.00363,"85":0.00363,"86":0.01452,"87":0.02542,"88":0.00726,"89":0.00363,"90":0.01089,"91":0.02905,"92":0.01452,"93":0.01816,"95":0.00726,"98":0.01089,"99":0.00363,"102":0.01089,"103":0.02542,"104":0.01816,"105":0.00363,"106":0.00363,"107":0.00363,"108":0.00363,"109":0.34131,"110":0.01089,"111":0.03268,"112":0.07262,"114":0.01816,"115":0.00363,"116":0.02542,"117":0.00363,"118":0.00363,"119":0.0581,"120":0.01816,"121":0.00726,"122":0.0581,"123":0.00726,"124":0.01452,"125":0.17429,"126":0.1053,"127":0.01089,"128":0.05447,"129":0.01089,"130":0.02542,"131":0.06536,"132":0.04357,"133":0.03994,"134":0.04357,"135":0.06899,"136":0.06536,"137":0.13435,"138":0.27959,"139":0.47566,"140":0.47203,"141":3.69273,"142":7.66504,"143":0.02179,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 60 61 62 66 94 96 97 100 101 113 144 145 146"},F:{"34":0.00363,"36":0.01089,"76":0.00363,"79":0.00363,"91":0.00726,"92":0.06899,"93":0.00726,"95":0.01816,"110":0.00363,"113":0.00726,"114":0.00363,"120":0.00726,"121":0.00363,"122":0.34131,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 82 83 84 85 86 87 88 89 90 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 115 116 117 118 119 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00363,"13":0.00363,"15":0.01816,"16":0.01452,"17":0.01452,"18":0.07625,"84":0.00726,"89":0.00726,"90":0.0472,"91":0.00363,"92":0.07988,"100":0.01816,"104":0.00363,"108":0.00726,"109":0.02542,"111":0.01089,"112":0.00726,"114":0.13435,"120":0.00363,"121":0.00363,"122":0.02905,"126":0.00363,"127":0.00363,"128":0.00363,"129":0.00363,"130":0.00363,"131":0.01452,"132":0.00363,"133":0.0472,"134":0.00726,"135":0.00726,"136":0.02179,"137":0.02542,"138":0.0472,"139":0.07262,"140":0.13798,"141":0.83513,"142":3.89969,"143":0.00726,_:"14 79 80 81 83 85 86 87 88 93 94 95 96 97 98 99 101 102 103 105 106 107 110 113 115 116 117 118 119 123 124 125"},E:{"14":0.00726,"15":0.00363,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 10.1 11.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.5 17.0 17.2 17.3 18.0","9.1":0.01089,"12.1":0.00363,"13.1":0.02179,"14.1":0.05447,"15.5":0.00363,"15.6":0.02179,"16.3":0.00363,"16.4":0.00363,"16.6":0.04357,"17.1":0.02179,"17.4":0.02542,"17.5":0.01089,"17.6":0.07988,"18.1":0.00726,"18.2":0.01089,"18.3":0.01452,"18.4":0.01816,"18.5-18.6":0.0581,"26.0":0.18518,"26.1":0.19971,"26.2":0.00726},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0,"6.0-6.1":0.00198,"7.0-7.1":0.00148,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00445,"10.0-10.2":0.00049,"10.3":0.00792,"11.0-11.2":0.09206,"11.3-11.4":0.00297,"12.0-12.1":0.00099,"12.2-12.5":0.02326,"13.0-13.1":0,"13.2":0.00247,"13.3":0.00099,"13.4-13.7":0.00445,"14.0-14.4":0.00742,"14.5-14.8":0.0094,"15.0-15.1":0.00792,"15.2-15.3":0.00643,"15.4":0.00693,"15.5":0.00742,"15.6-15.8":0.1074,"16.0":0.01336,"16.1":0.02475,"16.2":0.01287,"16.3":0.02376,"16.4":0.00594,"16.5":0.0099,"16.6-16.7":0.14502,"17.0":0.01237,"17.1":0.01485,"17.2":0.01089,"17.3":0.01534,"17.4":0.02524,"17.5":0.04801,"17.6-17.7":0.1178,"18.0":0.02623,"18.1":0.05543,"18.2":0.0297,"18.3":0.09652,"18.4":0.04949,"18.5-18.7":3.45623,"26.0":0.23708,"26.1":0.21629},P:{"20":0.01034,"21":0.02069,"22":0.03103,"23":0.01034,"24":0.13446,"25":0.13446,"26":0.0724,"27":0.26893,"28":0.61026,"29":1.66528,_:"4 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 14.0 15.0 18.0","7.2-7.4":0.12412,"8.2":0.01034,"13.0":0.01034,"16.0":0.01034,"17.0":0.01034,"19.0":0.01034},I:{"0":0.03817,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":5.38724,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.01089,"11":0.01089,_:"6 7 8 9 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.08918},O:{"0":0.32487},H:{"0":0.04},L:{"0":60.11566},R:{_:"0"},M:{"0":0.23569}};
Index: de_modules/caniuse-lite/data/regions/alt-af.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-af.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00695,"52":0.0452,"78":0.00348,"115":0.2121,"127":0.00695,"128":0.00695,"136":0.00695,"138":0.00348,"140":0.03129,"141":0.00695,"142":0.00695,"143":0.02086,"144":0.35465,"145":0.41376,"146":0.00348,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 137 139 147 148 3.5 3.6"},D:{"43":0.00695,"45":0.00348,"47":0.00695,"48":0.00348,"49":0.00348,"52":0.02782,"56":0.00348,"58":0.00348,"62":0.00348,"65":0.00348,"66":0.00348,"68":0.00348,"69":0.01391,"70":0.01391,"71":0.00348,"72":0.00348,"73":0.00695,"74":0.00348,"75":0.00695,"76":0.00348,"78":0.00348,"79":0.02782,"80":0.00695,"81":0.00695,"83":0.01391,"85":0.00348,"86":0.01043,"87":0.02782,"88":0.00695,"91":0.00695,"93":0.00695,"94":0.00348,"95":0.00695,"98":0.09388,"100":0.00348,"101":0.00348,"102":0.00695,"103":0.02434,"104":0.01391,"105":0.01391,"106":0.00695,"108":0.01043,"109":0.85187,"110":0.00348,"111":0.02086,"112":4.73567,"113":0.00348,"114":0.03129,"116":0.03825,"117":0.00695,"118":0.00348,"119":0.02434,"120":0.01739,"121":0.01043,"122":0.0452,"123":0.01043,"124":0.01739,"125":0.1669,"126":1.06049,"127":0.01043,"128":0.03129,"129":0.01391,"130":0.04868,"131":0.05563,"132":0.03129,"133":0.03477,"134":0.19819,"135":0.03825,"136":0.04868,"137":0.05563,"138":0.18428,"139":0.22601,"140":0.25034,"141":2.5556,"142":7.13828,"143":0.02782,"144":0.00348,_:"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 33 34 35 36 37 38 39 40 41 42 44 46 50 51 53 54 55 57 59 60 61 63 64 67 77 84 89 90 92 96 97 99 107 115 145 146"},F:{"79":0.00348,"89":0.00348,"90":0.01391,"91":0.01739,"92":0.14951,"93":0.02086,"95":0.02434,"120":0.00348,"122":0.15299,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01391,"90":0.00348,"92":0.02434,"100":0.00348,"109":0.01739,"114":0.12865,"118":0.00348,"122":0.01043,"131":0.01739,"133":0.00695,"134":0.00348,"135":0.00695,"136":0.00695,"137":0.01043,"138":0.01739,"139":0.02086,"140":0.03477,"141":0.28164,"142":2.03752,"143":0.00348,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 126 127 128 129 130 132"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 26.2","5.1":0.01391,"13.1":0.01043,"14.1":0.00695,"15.6":0.03825,"16.3":0.00348,"16.5":0.00348,"16.6":0.04172,"17.1":0.02086,"17.3":0.00348,"17.4":0.00695,"17.5":0.00695,"17.6":0.04172,"18.0":0.00348,"18.1":0.00695,"18.2":0.00348,"18.3":0.01391,"18.4":0.00695,"18.5-18.6":0.03477,"26.0":0.07302,"26.1":0.07649},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00072,"6.0-6.1":0,"7.0-7.1":0.01074,"8.1-8.4":0,"9.0-9.2":0.00143,"9.3":0.01074,"10.0-10.2":0.0043,"10.3":0.00931,"11.0-11.2":0.04655,"11.3-11.4":0.00215,"12.0-12.1":0.00072,"12.2-12.5":0.05658,"13.0-13.1":0,"13.2":0.00215,"13.3":0.00072,"13.4-13.7":0.00215,"14.0-14.4":0.00501,"14.5-14.8":0.00645,"15.0-15.1":0.0616,"15.2-15.3":0.01218,"15.4":0.01289,"15.5":0.01719,"15.6-15.8":0.40109,"16.0":0.03008,"16.1":0.0487,"16.2":0.02722,"16.3":0.04369,"16.4":0.01504,"16.5":0.02364,"16.6-16.7":0.40968,"17.0":0.01647,"17.1":0.02149,"17.2":0.01719,"17.3":0.0222,"17.4":0.03868,"17.5":0.08666,"17.6-17.7":0.15399,"18.0":0.06876,"18.1":0.12749,"18.2":0.08308,"18.3":0.21702,"18.4":0.11674,"18.5-18.7":4.10111,"26.0":0.44907,"26.1":0.36384},P:{"4":0.01061,"21":0.01061,"22":0.02122,"23":0.02122,"24":0.08488,"25":0.07427,"26":0.06366,"27":0.11671,"28":0.47745,"29":2.42968,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.1061,"11.1-11.2":0.01061,"19.0":0.01061},I:{"0":0.0586,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":5.18113,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0197,"10":0.00493,"11":0.09359,_:"6 7 9 5.5"},N:{_:"10 11"},S:{"2.5":0.01305,_:"3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.18264},H:{"0":0.67},L:{"0":58.13505},R:{_:"0"},M:{"0":0.28701}};
Index: de_modules/caniuse-lite/data/regions/alt-an.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-an.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"64":0.43486,"140":0.05756,"144":2.59637,"145":1.04239,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 146 147 148 3.5 3.6"},D:{"102":0.01919,"120":0.94646,"122":0.07674,"124":0.49242,"130":0.01919,"133":0.03837,"138":0.05756,"139":0.03837,"140":0.05756,"141":2.59637,"142":9.92504,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 123 125 126 127 128 129 131 132 134 135 136 137 143 144 145 146"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"137":0.01919,"141":0.09593,"142":12.7964,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 138 139 140 143"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4","15.5":0.01919,"15.6":0.37091,"16.0":0.05756,"16.1":0.96565,"16.2":0.01919,"16.3":0.41568,"16.4":0.01919,"16.5":0.19825,"16.6":2.47487,"17.0":0.07674,"17.1":2.63474,"17.2":0.62671,"17.3":0.47323,"17.4":1.17668,"17.5":0.45405,"17.6":9.50937,"18.0":0.31336,"18.1":0.05756,"18.2":0.01919,"18.3":0.05756,"18.4":0.15988,"18.5-18.6":0.35173,"26.0":1.11913,"26.1":1.6691,"26.2":0.01919},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6-15.8":0.09874,"16.0":0.17633,"16.1":3.00459,"16.2":0.09874,"16.3":0.64535,"16.4":0,"16.5":0.11637,"16.6-16.7":7.17646,"17.0":0.11637,"17.1":0.05995,"17.2":0.15517,"17.3":0.50782,"17.4":0.76173,"17.5":0.80052,"17.6-17.7":4.67968,"18.0":0.25391,"18.1":0.2927,"18.2":0.02116,"18.3":0.07758,"18.4":0.13753,"18.5-18.7":16.09148,"26.0":0,"26.1":0},P:{"29":0.02162,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0},L:{"0":1.36193},R:{_:"0"},M:{_:"0"}};
Index: de_modules/caniuse-lite/data/regions/alt-as.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-as.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00833,"43":0.07495,"115":0.09577,"128":0.02498,"132":0.00833,"136":0.00416,"140":0.01249,"141":0.00833,"142":0.00416,"143":0.01666,"144":0.28315,"145":0.35394,"146":0.00416,_:"2 3 4 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 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 133 134 135 137 138 139 147 148 3.5 3.6"},D:{"45":0.00416,"47":0.00833,"48":0.00833,"49":0.00833,"51":0.00416,"52":0.00416,"53":0.00416,"55":0.00416,"57":0.00416,"58":0.00416,"69":0.02498,"73":0.00416,"77":0.02915,"78":0.00416,"79":0.03331,"80":0.00416,"81":0.00416,"83":0.01249,"85":0.00833,"86":0.01249,"87":0.04164,"91":0.01666,"92":0.00833,"93":0.01249,"97":0.01249,"98":0.0458,"99":0.02082,"101":0.01666,"102":0.00416,"103":0.07079,"104":0.01249,"105":0.33312,"106":0.21653,"107":0.13325,"108":0.06246,"109":0.85362,"110":0.32896,"111":0.15407,"112":0.88693,"113":0.10826,"114":0.30397,"115":0.06246,"116":0.0458,"117":0.09577,"118":0.13325,"119":0.06246,"120":0.32479,"121":0.17905,"122":0.1041,"123":0.12492,"124":0.09577,"125":0.33728,"126":0.35394,"127":0.29564,"128":0.2082,"129":0.23318,"130":0.1624,"131":0.15407,"132":0.07495,"133":0.08328,"134":1.85714,"135":0.06246,"136":0.04997,"137":0.84946,"138":0.17072,"139":5.59225,"140":0.32063,"141":2.58168,"142":8.61948,"143":0.02498,"144":0.01249,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 46 50 54 56 59 60 61 62 63 64 65 66 67 68 70 71 72 74 75 76 84 88 89 90 94 95 96 100 145 146"},F:{"92":0.08744,"93":0.01249,"95":0.01249,"122":0.08328,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00416,"92":0.01666,"109":0.02498,"113":0.00833,"114":0.0458,"115":0.00416,"120":0.04997,"121":0.02915,"122":0.00833,"123":0.00416,"125":0.00416,"126":0.00833,"127":0.01249,"128":0.00833,"129":0.00833,"130":0.00833,"131":0.02082,"132":0.00833,"133":0.01249,"134":0.01249,"135":0.01249,"136":0.01666,"137":0.01666,"138":0.02915,"139":0.03331,"140":0.0583,"141":0.33728,"142":2.49424,"143":0.00833,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 116 117 118 119 124"},E:{"14":0.00416,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 17.0 26.2","13.1":0.00833,"14.1":0.01249,"15.6":0.03331,"16.1":0.00833,"16.3":0.00833,"16.5":0.00416,"16.6":0.0458,"17.1":0.02498,"17.2":0.00416,"17.3":0.00833,"17.4":0.00833,"17.5":0.01666,"17.6":0.04164,"18.0":0.00833,"18.1":0.01249,"18.2":0.00833,"18.3":0.02498,"18.4":0.01249,"18.5-18.6":0.05413,"26.0":0.08744,"26.1":0.08328},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00286,"5.0-5.1":0.00143,"6.0-6.1":0.00072,"7.0-7.1":0.00501,"8.1-8.4":0,"9.0-9.2":0.00215,"9.3":0.00501,"10.0-10.2":0,"10.3":0.01502,"11.0-11.2":0.13592,"11.3-11.4":0.00286,"12.0-12.1":0.00143,"12.2-12.5":0.04578,"13.0-13.1":0.00072,"13.2":0.00715,"13.3":0.00215,"13.4-13.7":0.01073,"14.0-14.4":0.01932,"14.5-14.8":0.02432,"15.0-15.1":0.01574,"15.2-15.3":0.01574,"15.4":0.02003,"15.5":0.02003,"15.6-15.8":0.24537,"16.0":0.03434,"16.1":0.05222,"16.2":0.03076,"16.3":0.05294,"16.4":0.01431,"16.5":0.02361,"16.6-16.7":0.27542,"17.0":0.02933,"17.1":0.02861,"17.2":0.02647,"17.3":0.03648,"17.4":0.0651,"17.5":0.10015,"17.6-17.7":0.2139,"18.0":0.0651,"18.1":0.1116,"18.2":0.07368,"18.3":0.18671,"18.4":0.11017,"18.5-18.7":4.13484,"26.0":0.48216,"26.1":0.39846},P:{"4":0.01115,"23":0.01115,"24":0.01115,"25":0.02229,"26":0.04459,"27":0.05574,"28":0.22295,"29":1.1036,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01115},I:{"0":0.7347,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00029},K:{"0":0.95028,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.02698,"11":0.64759,_:"6 7 8 10 5.5"},N:{_:"10 11"},S:{"2.5":0.03501,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.28592},O:{"0":1.07364},H:{"0":0.03},L:{"0":53.1932},R:{_:"0"},M:{"0":0.16338}};
Index: de_modules/caniuse-lite/data/regions/alt-eu.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-eu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.03074,"59":0.01537,"68":0.00512,"78":0.01537,"105":0.01025,"115":0.28177,"125":0.00512,"128":0.03074,"132":0.00512,"133":0.00512,"134":0.01025,"135":0.01537,"136":0.02049,"137":0.01537,"138":0.00512,"139":0.01025,"140":0.21004,"141":0.01537,"142":0.02562,"143":0.05635,"144":1.31149,"145":1.57276,"146":0.00512,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 147 148 3.5 3.6"},D:{"39":0.01025,"40":0.01025,"41":0.01025,"42":0.01025,"43":0.01025,"44":0.01025,"45":0.01537,"46":0.01025,"47":0.01025,"48":0.01537,"49":0.02049,"50":0.01025,"51":0.01025,"52":0.02562,"53":0.01025,"54":0.01025,"55":0.01025,"56":0.01025,"57":0.01025,"58":0.01537,"59":0.01025,"60":0.01025,"66":0.06148,"68":0.00512,"70":0.00512,"74":0.00512,"75":0.00512,"78":0.00512,"79":0.04098,"80":0.00512,"85":0.01025,"87":0.03074,"88":0.01025,"91":0.03074,"92":0.05635,"93":0.01025,"97":0.02049,"98":0.07685,"100":0.01025,"102":0.01025,"103":0.08709,"104":0.02562,"106":0.01025,"107":0.00512,"108":0.03074,"109":0.80943,"111":0.02562,"112":0.72747,"113":0.00512,"114":0.03074,"115":0.01025,"116":0.09734,"117":0.04098,"118":0.16394,"119":0.03586,"120":0.0666,"121":0.04611,"122":0.07172,"123":0.07172,"124":0.06148,"125":0.45082,"126":0.21004,"127":0.02049,"128":0.07172,"129":0.03074,"130":0.49693,"131":0.92214,"132":0.15369,"133":0.0666,"134":0.60451,"135":0.07685,"136":0.08197,"137":0.10246,"138":0.29201,"139":0.51742,"140":0.76333,"141":5.5021,"142":15.23068,"143":0.06148,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 69 71 72 73 76 77 81 83 84 86 89 90 94 95 96 99 101 105 110 144 145 146"},F:{"31":0.01025,"40":0.01025,"46":0.01025,"92":0.07172,"93":0.01025,"95":0.08197,"113":0.01025,"114":0.00512,"120":0.02049,"122":0.78382,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00512,"109":0.05123,"114":0.01025,"121":0.02049,"126":0.00512,"131":0.01537,"132":0.00512,"133":0.00512,"134":0.01025,"135":0.01025,"136":0.01025,"137":0.01025,"138":0.02562,"139":0.02562,"140":0.08709,"141":0.69673,"142":5.60969,"143":0.01025,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 122 123 124 125 127 128 129 130"},E:{"14":0.01025,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3","11.1":0.01537,"13.1":0.02562,"14.1":0.03586,"15.1":0.01537,"15.4":0.01025,"15.5":0.01025,"15.6":0.15881,"16.0":0.01025,"16.1":0.01537,"16.2":0.01537,"16.3":0.02562,"16.4":0.01025,"16.5":0.01537,"16.6":0.21517,"17.0":0.01025,"17.1":0.16906,"17.2":0.01537,"17.3":0.02049,"17.4":0.03586,"17.5":0.05635,"17.6":0.20492,"18.0":0.02049,"18.1":0.03586,"18.2":0.01537,"18.3":0.07685,"18.4":0.04098,"18.5-18.6":0.17418,"26.0":0.34324,"26.1":0.39959,"26.2":0.01537},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02258,"10.0-10.2":0.00301,"10.3":0.0301,"11.0-11.2":0.3176,"11.3-11.4":0.01505,"12.0-12.1":0,"12.2-12.5":0.07526,"13.0-13.1":0,"13.2":0.00151,"13.3":0.00151,"13.4-13.7":0.00301,"14.0-14.4":0.00602,"14.5-14.8":0.00903,"15.0-15.1":0.01054,"15.2-15.3":0.00903,"15.4":0.00753,"15.5":0.01204,"15.6-15.8":0.26943,"16.0":0.0301,"16.1":0.06472,"16.2":0.0286,"16.3":0.06171,"16.4":0.00753,"16.5":0.01957,"16.6-16.7":0.4034,"17.0":0.02107,"17.1":0.03161,"17.2":0.01957,"17.3":0.0286,"17.4":0.04516,"17.5":0.1159,"17.6-17.7":0.34018,"18.0":0.06021,"18.1":0.14601,"18.2":0.0587,"18.3":0.26191,"18.4":0.11891,"18.5-18.7":11.0709,"26.0":0.65929,"26.1":0.64122},P:{"4":0.02145,"21":0.02145,"22":0.02145,"23":0.02145,"24":0.02145,"25":0.02145,"26":0.05362,"27":0.05362,"28":0.28955,"29":2.79898,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01072},I:{"0":0.03408,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.45347,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01804,"9":0.03007,"11":0.09021,_:"6 7 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.04876},H:{"0":0},L:{"0":32.06793},R:{_:"0"},M:{"0":0.51686}};
Index: de_modules/caniuse-lite/data/regions/alt-na.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-na.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"11":0.25013,"44":0.01064,"52":0.01064,"59":0.00532,"78":0.01597,"115":0.15434,"118":0.56945,"125":0.01064,"128":0.01597,"133":0.00532,"134":0.00532,"135":0.01064,"136":0.01064,"137":0.01597,"138":0.01064,"139":0.01064,"140":0.13305,"141":0.01597,"142":0.02129,"143":0.05322,"144":0.86216,"145":0.9686,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 121 122 123 124 126 127 129 130 131 132 146 147 148 3.5 3.6"},D:{"39":0.01064,"40":0.01064,"41":0.01064,"42":0.01064,"43":0.01064,"44":0.01064,"45":0.01064,"46":0.01064,"47":0.01064,"48":0.03193,"49":0.02129,"50":0.01064,"51":0.01064,"52":0.01597,"53":0.01064,"54":0.01064,"55":0.01064,"56":0.01597,"57":0.01064,"58":0.01064,"59":0.01064,"60":0.01064,"66":0.02661,"76":0.00532,"79":0.22352,"80":0.01064,"81":0.0479,"83":0.20224,"85":0.00532,"87":0.05322,"91":0.01597,"93":0.01597,"99":0.02661,"100":0.00532,"101":0.02129,"102":0.01064,"103":0.12773,"104":0.01597,"108":0.01064,"109":0.3619,"110":0.01064,"111":0.01064,"112":0.60671,"113":0.01064,"114":0.0958,"115":0.02129,"116":0.12773,"117":0.41512,"118":0.02129,"119":0.02661,"120":0.07451,"121":0.07983,"122":0.12241,"123":0.02129,"124":0.05854,"125":0.77701,"126":0.22352,"127":0.02129,"128":0.12241,"129":0.03725,"130":3.51252,"131":0.13305,"132":0.14902,"133":0.05322,"134":0.07983,"135":0.07983,"136":0.10644,"137":0.13837,"138":0.79298,"139":2.347,"140":1.70836,"141":5.17298,"142":13.1347,"143":0.05854,"144":0.01064,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 71 72 73 74 75 77 78 84 86 88 89 90 92 94 95 96 97 98 105 106 107 145 146"},F:{"92":0.04258,"93":0.00532,"95":0.02661,"114":0.00532,"120":0.01064,"122":0.25013,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.0479,"114":0.01597,"121":0.06919,"131":0.02129,"132":0.01064,"133":0.00532,"134":0.01064,"135":0.01597,"136":0.01597,"137":0.01064,"138":0.02661,"139":0.02661,"140":0.07983,"141":0.80362,"142":5.40183,"143":0.01064,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 122 123 124 125 126 127 128 129 130"},E:{"14":0.02129,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3","11.1":0.00532,"12.1":0.01064,"13.1":0.05322,"14.1":0.04258,"15.1":0.01064,"15.4":0.01064,"15.5":0.02129,"15.6":0.17563,"16.0":0.01064,"16.1":0.02129,"16.2":0.01597,"16.3":0.04258,"16.4":0.02129,"16.5":0.03193,"16.6":0.30335,"17.0":0.01064,"17.1":0.22885,"17.2":0.02129,"17.3":0.02661,"17.4":0.05322,"17.5":0.07451,"17.6":0.3619,"18.0":0.02129,"18.1":0.05322,"18.2":0.02661,"18.3":0.11176,"18.4":0.05854,"18.5-18.6":0.23949,"26.0":0.40447,"26.1":0.47366,"26.2":0.01597},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.02547,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01158,"10.0-10.2":0,"10.3":0.02316,"11.0-11.2":0.37744,"11.3-11.4":0.00926,"12.0-12.1":0.00926,"12.2-12.5":0.06947,"13.0-13.1":0,"13.2":0.00232,"13.3":0.00232,"13.4-13.7":0.01158,"14.0-14.4":0.01621,"14.5-14.8":0.0301,"15.0-15.1":0.02779,"15.2-15.3":0.01852,"15.4":0.01389,"15.5":0.01852,"15.6-15.8":0.24082,"16.0":0.02547,"16.1":0.07642,"16.2":0.03473,"16.3":0.06484,"16.4":0.01389,"16.5":0.02547,"16.6-16.7":0.46775,"17.0":0.044,"17.1":0.06252,"17.2":0.03937,"17.3":0.05094,"17.4":0.06715,"17.5":0.16209,"17.6-17.7":0.45154,"18.0":0.05557,"18.1":0.18062,"18.2":0.07642,"18.3":0.32419,"18.4":0.14357,"18.5-18.7":18.38131,"26.0":0.71784,"26.1":0.74331},P:{"21":0.02254,"23":0.02254,"26":0.02254,"27":0.02254,"28":0.14649,"29":1.30711,_:"4 20 22 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.38703,"3":0.00012,"4":0.00004,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00082,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.25261,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01457,"9":0.03641,"11":0.08739,_:"6 7 10 5.5"},N:{_:"10 11"},S:{"2.5":0.00468,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00936},O:{"0":0.02807},H:{"0":0},L:{"0":22.68782},R:{_:"0"},M:{"0":0.52861}};
Index: de_modules/caniuse-lite/data/regions/alt-oc.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-oc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"52":0.01052,"78":0.01578,"115":0.12096,"125":0.01052,"128":0.01052,"132":0.00526,"133":0.00526,"134":0.01052,"136":0.01052,"138":0.00526,"139":0.00526,"140":0.05785,"141":0.00526,"142":0.02104,"143":0.04733,"144":0.90455,"145":1.02551,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 135 137 146 147 148 3.5 3.6"},D:{"25":0.01052,"34":0.01578,"38":0.04733,"39":0.01052,"40":0.01052,"41":0.01052,"42":0.01052,"43":0.01052,"44":0.01052,"45":0.01052,"46":0.01052,"47":0.01052,"48":0.01052,"49":0.02104,"50":0.01052,"51":0.01052,"52":0.02104,"53":0.01052,"54":0.01052,"55":0.01578,"56":0.01052,"57":0.01052,"58":0.01052,"59":0.01578,"60":0.01052,"79":0.03681,"85":0.01578,"87":0.03681,"88":0.01052,"93":0.00526,"97":0.00526,"99":0.01052,"103":0.07363,"104":0.01052,"105":0.02104,"108":0.0263,"109":0.34709,"110":0.00526,"111":0.03155,"112":0.00526,"113":0.01578,"114":0.05259,"116":0.15251,"117":0.00526,"118":0.00526,"119":0.01578,"120":0.03681,"121":0.02104,"122":0.06837,"123":0.03155,"124":0.05785,"125":0.74152,"126":0.04733,"127":0.02104,"128":0.14199,"129":0.04733,"130":0.68367,"131":0.09466,"132":0.07363,"133":0.05785,"134":0.53116,"135":0.07363,"136":0.0894,"137":0.13673,"138":0.46805,"139":0.53642,"140":0.70997,"141":6.06889,"142":17.63869,"143":0.03155,"144":0.01578,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 35 36 37 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 86 89 90 91 92 94 95 96 98 100 101 102 106 107 115 145 146"},F:{"46":0.00526,"92":0.01578,"95":0.01052,"120":0.04733,"122":0.42598,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00526,"85":0.01052,"109":0.03155,"114":0.01052,"120":0.01052,"122":0.00526,"131":0.01052,"132":0.01052,"133":0.00526,"134":0.01578,"135":0.01578,"136":0.01052,"137":0.01052,"138":0.0263,"139":0.0263,"140":0.09466,"141":0.90455,"142":6.50538,"143":0.01052,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 124 125 126 127 128 129 130"},E:{"13":0.00526,"14":0.02104,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01578,"13.1":0.04733,"14.1":0.0894,"15.1":0.01052,"15.2-15.3":0.01052,"15.4":0.01578,"15.5":0.03155,"15.6":0.31028,"16.0":0.01578,"16.1":0.05259,"16.2":0.04207,"16.3":0.07889,"16.4":0.02104,"16.5":0.03155,"16.6":0.44702,"17.0":0.00526,"17.1":0.41546,"17.2":0.0263,"17.3":0.04733,"17.4":0.07363,"17.5":0.1157,"17.6":0.37339,"18.0":0.0263,"18.1":0.06837,"18.2":0.05259,"18.3":0.14199,"18.4":0.07363,"18.5-18.6":0.33132,"26.0":0.53116,"26.1":0.58375,"26.2":0.02104},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00428,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00214,"9.0-9.2":0,"9.3":0.02785,"10.0-10.2":0,"10.3":0.04713,"11.0-11.2":0.5699,"11.3-11.4":0.01714,"12.0-12.1":0.00428,"12.2-12.5":0.16497,"13.0-13.1":0.00428,"13.2":0.00214,"13.3":0.00428,"13.4-13.7":0.01714,"14.0-14.4":0.01714,"14.5-14.8":0.02142,"15.0-15.1":0.01714,"15.2-15.3":0.015,"15.4":0.015,"15.5":0.01928,"15.6-15.8":0.36208,"16.0":0.02571,"16.1":0.09427,"16.2":0.04285,"16.3":0.07499,"16.4":0.015,"16.5":0.03214,"16.6-16.7":0.61061,"17.0":0.02142,"17.1":0.03856,"17.2":0.02357,"17.3":0.03642,"17.4":0.06213,"17.5":0.13712,"17.6-17.7":0.49277,"18.0":0.05785,"18.1":0.17997,"18.2":0.07713,"18.3":0.32994,"18.4":0.14355,"18.5-18.7":16.02575,"26.0":0.75844,"26.1":0.797},P:{"4":0.06633,"21":0.03316,"22":0.03316,"23":0.01105,"24":0.02211,"25":0.03316,"26":0.04422,"27":0.06633,"28":0.29848,"29":2.63101,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02211},I:{"0":0.02369,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.13272,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01183,"9":0.11833,"11":0.01183,_:"6 7 10 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.00474},O:{"0":0.03792},H:{"0":0},L:{"0":23.97282},R:{_:"0"},M:{"0":0.4503}};
Index: de_modules/caniuse-lite/data/regions/alt-sa.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-sa.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"4":0.03238,"5":0.01943,"112":0.01943,"113":0.01943,"114":0.01943,"115":0.10362,"116":0.01943,"128":0.01295,"136":0.00648,"140":0.03238,"141":0.00648,"142":0.00648,"143":0.0259,"144":0.40151,"145":0.47275,_:"2 3 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 138 139 146 147 148 3.5 3.6"},D:{"48":0.00648,"55":0.00648,"66":0.01295,"69":0.01943,"75":0.00648,"79":0.01943,"87":0.0259,"99":0.00648,"103":0.01943,"104":0.01295,"108":0.01295,"109":0.69941,"111":0.03886,"112":26.75883,"113":0.01943,"114":0.05181,"115":0.01943,"116":0.03238,"119":0.05181,"120":0.07771,"121":0.01295,"122":0.07124,"123":0.01295,"124":0.03238,"125":1.20454,"126":4.21588,"127":0.0259,"128":0.07771,"129":0.01943,"130":0.0259,"131":0.09066,"132":0.05828,"133":0.03886,"134":0.03886,"135":0.04533,"136":0.05181,"137":0.05828,"138":0.15542,"139":0.49218,"140":0.27199,"141":3.68484,"142":15.12146,"143":0.03886,_:"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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 73 74 76 77 78 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 100 101 102 105 106 107 110 117 118 144 145 146"},F:{"92":0.01295,"95":0.01295,"120":0.00648,"122":0.72531,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00648,"109":0.01943,"114":0.11009,"131":0.00648,"138":0.01295,"139":0.01295,"140":0.0259,"141":0.31732,"142":2.83001,"143":0.00648,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137"},E:{_:"0 4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 17.4 18.0 18.2 26.2","15.6":0.01295,"16.5":0.01295,"16.6":0.01943,"17.1":0.01295,"17.5":0.00648,"17.6":0.03238,"18.1":0.01295,"18.3":0.01295,"18.4":0.00648,"18.5-18.6":0.03238,"26.0":0.07771,"26.1":0.09714},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00086,"6.0-6.1":0,"7.0-7.1":0.00043,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00302,"10.0-10.2":0.00172,"10.3":0.00259,"11.0-11.2":0.13016,"11.3-11.4":0.01077,"12.0-12.1":0,"12.2-12.5":0.00646,"13.0-13.1":0,"13.2":0.00733,"13.3":0,"13.4-13.7":0.01422,"14.0-14.4":0.00129,"14.5-14.8":0.01465,"15.0-15.1":0.00129,"15.2-15.3":0.00129,"15.4":0.00129,"15.5":0.00215,"15.6-15.8":0.08404,"16.0":0.00776,"16.1":0.01595,"16.2":0.00603,"16.3":0.01336,"16.4":0.01638,"16.5":0.01724,"16.6-16.7":0.14007,"17.0":0.00991,"17.1":0.01207,"17.2":0.00345,"17.3":0.00991,"17.4":0.01077,"17.5":0.02801,"17.6-17.7":0.07284,"18.0":0.01896,"18.1":0.04525,"18.2":0.01595,"18.3":0.08275,"18.4":0.03103,"18.5-18.7":2.97337,"26.0":0.25687,"26.1":0.23058},P:{"25":0.01111,"26":0.03333,"27":0.02222,"28":0.1,"29":0.90002,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02222},I:{"0":0.03874,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.10572,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03786,"9":0.01893,"10":0.00946,"11":0.17983,_:"6 7 5.5"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},Q:{_:"14.9"},O:{"0":0.01057},H:{"0":0},L:{"0":31.83056},R:{_:"0"},M:{"0":0.08458}};
Index: de_modules/caniuse-lite/data/regions/alt-ww.js
===================================================================
--- node_modules/caniuse-lite/data/regions/alt-ww.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports={C:{"5":0.00469,"11":0.05157,"43":0.0375,"52":0.01406,"78":0.00469,"115":0.14533,"118":0.1172,"125":0.00469,"128":0.02344,"132":0.00938,"135":0.00938,"136":0.00938,"137":0.00469,"138":0.00469,"139":0.00469,"140":0.0797,"141":0.00938,"142":0.01406,"143":0.03282,"144":0.61413,"145":0.72664,_:"2 3 4 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 121 122 123 124 126 127 129 130 131 133 134 146 147 148 3.5 3.6"},D:{"39":0.00469,"40":0.00469,"41":0.00469,"42":0.00469,"43":0.00469,"44":0.00469,"45":0.00938,"46":0.00469,"47":0.00938,"48":0.01406,"49":0.01406,"50":0.00469,"51":0.00469,"52":0.01406,"53":0.00938,"54":0.00469,"55":0.00469,"56":0.00938,"57":0.00469,"58":0.00938,"59":0.00469,"60":0.00469,"66":0.01875,"69":0.01406,"70":0.00469,"77":0.01406,"78":0.00469,"79":0.07501,"80":0.00469,"81":0.01406,"83":0.04688,"85":0.00938,"86":0.00938,"87":0.0375,"88":0.00469,"91":0.01875,"92":0.01406,"93":0.01406,"97":0.01406,"98":0.04219,"99":0.01875,"100":0.00469,"101":0.01406,"102":0.00938,"103":0.0797,"104":0.01406,"105":0.17346,"106":0.11251,"107":0.07032,"108":0.04219,"109":0.73133,"110":0.16877,"111":0.08907,"112":2.29712,"113":0.06094,"114":0.18283,"115":0.0375,"116":0.07501,"117":0.14064,"118":0.10314,"119":0.04688,"120":0.1969,"121":0.1172,"122":0.09845,"123":0.0797,"124":0.07501,"125":0.49224,"126":0.52506,"127":0.15939,"128":0.15002,"129":0.13595,"130":0.89072,"131":0.29066,"132":0.10314,"133":0.07032,"134":1.08762,"135":0.06563,"136":0.06563,"137":0.48286,"138":0.31878,"139":3.44099,"140":0.68445,"141":3.75978,"142":11.18088,"143":0.0375,"144":0.00938,_:"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 33 34 35 36 37 38 61 62 63 64 65 67 68 71 72 73 74 75 76 84 89 90 94 95 96 145 146"},F:{"92":0.07501,"93":0.00938,"95":0.02813,"120":0.00938,"122":0.29066,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00938,"109":0.03282,"114":0.0375,"120":0.02813,"121":0.03282,"122":0.00938,"126":0.00469,"127":0.00469,"128":0.00469,"129":0.00469,"130":0.00469,"131":0.01875,"132":0.00938,"133":0.00938,"134":0.00938,"135":0.01406,"136":0.01406,"137":0.01406,"138":0.02813,"139":0.02813,"140":0.06563,"141":0.50162,"142":3.72227,"143":0.00938,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 123 124 125"},E:{"14":0.00938,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3","11.1":0.00469,"13.1":0.01875,"14.1":0.02344,"15.1":0.00469,"15.4":0.00469,"15.5":0.00938,"15.6":0.08907,"16.0":0.00469,"16.1":0.00938,"16.2":0.00938,"16.3":0.01875,"16.4":0.00938,"16.5":0.01406,"16.6":0.13126,"17.0":0.00469,"17.1":0.09376,"17.2":0.00938,"17.3":0.01406,"17.4":0.02344,"17.5":0.0375,"17.6":0.14064,"18.0":0.01406,"18.1":0.02344,"18.2":0.01406,"18.3":0.05157,"18.4":0.02813,"18.5-18.6":0.1172,"26.0":0.20627,"26.1":0.22971,"26.2":0.00938},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0.00472,"7.0-7.1":0.00354,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01062,"10.0-10.2":0.00118,"10.3":0.01889,"11.0-11.2":0.21954,"11.3-11.4":0.00708,"12.0-12.1":0.00236,"12.2-12.5":0.05548,"13.0-13.1":0,"13.2":0.0059,"13.3":0.00236,"13.4-13.7":0.01062,"14.0-14.4":0.0177,"14.5-14.8":0.02243,"15.0-15.1":0.01889,"15.2-15.3":0.01534,"15.4":0.01652,"15.5":0.0177,"15.6-15.8":0.25613,"16.0":0.03187,"16.1":0.05902,"16.2":0.03069,"16.3":0.05666,"16.4":0.01416,"16.5":0.02361,"16.6-16.7":0.34584,"17.0":0.02951,"17.1":0.03541,"17.2":0.02597,"17.3":0.03659,"17.4":0.0602,"17.5":0.11449,"17.6-17.7":0.28092,"18.0":0.06256,"18.1":0.1322,"18.2":0.07082,"18.3":0.23016,"18.4":0.11803,"18.5-18.7":8.24222,"26.0":0.56538,"26.1":0.5158},P:{"21":0.01083,"22":0.01083,"23":0.02167,"24":0.02167,"25":0.02167,"26":0.04334,"27":0.05417,"28":0.22752,"29":1.50594,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.4615,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00023},K:{"0":0.82586,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03477,"9":0.05215,"11":0.33031,_:"6 7 10 5.5"},N:{_:"10 11"},S:{"2.5":0.02125,_:"3.0-3.1"},J:{_:"7 10"},Q:{"14.9":0.14874},O:{"0":0.5737},H:{"0":0.04},L:{"0":41.85032},R:{_:"0"},M:{"0":0.30278}};
Index: de_modules/caniuse-lite/dist/lib/statuses.js
===================================================================
--- node_modules/caniuse-lite/dist/lib/statuses.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-module.exports = {
-  1: 'ls', // WHATWG Living Standard
-  2: 'rec', // W3C Recommendation
-  3: 'pr', // W3C Proposed Recommendation
-  4: 'cr', // W3C Candidate Recommendation
-  5: 'wd', // W3C Working Draft
-  6: 'other', // Non-W3C, but reputable
-  7: 'unoff' // Unofficial, Editor's Draft or W3C "Note"
-}
Index: de_modules/caniuse-lite/dist/lib/supported.js
===================================================================
--- node_modules/caniuse-lite/dist/lib/supported.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-module.exports = {
-  y: 1 << 0,
-  n: 1 << 1,
-  a: 1 << 2,
-  p: 1 << 3,
-  u: 1 << 4,
-  x: 1 << 5,
-  d: 1 << 6
-}
Index: de_modules/caniuse-lite/dist/unpacker/agents.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/agents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-'use strict'
-
-const browsers = require('./browsers').browsers
-const versions = require('./browserVersions').browserVersions
-const agentsData = require('../../data/agents')
-
-function unpackBrowserVersions(versionsData) {
-  return Object.keys(versionsData).reduce((usage, version) => {
-    usage[versions[version]] = versionsData[version]
-    return usage
-  }, {})
-}
-
-module.exports.agents = Object.keys(agentsData).reduce((map, key) => {
-  let versionsData = agentsData[key]
-  map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {
-    if (entry === 'A') {
-      data.usage_global = unpackBrowserVersions(versionsData[entry])
-    } else if (entry === 'C') {
-      data.versions = versionsData[entry].reduce((list, version) => {
-        if (version === '') {
-          list.push(null)
-        } else {
-          list.push(versions[version])
-        }
-        return list
-      }, [])
-    } else if (entry === 'D') {
-      data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])
-    } else if (entry === 'E') {
-      data.browser = versionsData[entry]
-    } else if (entry === 'F') {
-      data.release_date = Object.keys(versionsData[entry]).reduce(
-        (map2, key2) => {
-          map2[versions[key2]] = versionsData[entry][key2]
-          return map2
-        },
-        {}
-      )
-    } else {
-      // entry is B
-      data.prefix = versionsData[entry]
-    }
-    return data
-  }, {})
-  return map
-}, {})
Index: de_modules/caniuse-lite/dist/unpacker/browserVersions.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/browserVersions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports.browserVersions = require('../../data/browserVersions')
Index: de_modules/caniuse-lite/dist/unpacker/browsers.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/browsers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports.browsers = require('../../data/browsers')
Index: de_modules/caniuse-lite/dist/unpacker/feature.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/feature.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-'use strict'
-
-const statuses = require('../lib/statuses')
-const supported = require('../lib/supported')
-const browsers = require('./browsers').browsers
-const versions = require('./browserVersions').browserVersions
-
-const MATH2LOG = Math.log(2)
-
-function unpackSupport(cipher) {
-  // bit flags
-  let stats = Object.keys(supported).reduce((list, support) => {
-    if (cipher & supported[support]) list.push(support)
-    return list
-  }, [])
-
-  // notes
-  let notes = cipher >> 7
-  let notesArray = []
-  while (notes) {
-    let note = Math.floor(Math.log(notes) / MATH2LOG) + 1
-    notesArray.unshift(`#${note}`)
-    notes -= Math.pow(2, note - 1)
-  }
-
-  return stats.concat(notesArray).join(' ')
-}
-
-function unpackFeature(packed) {
-  let unpacked = {
-    status: statuses[packed.B],
-    title: packed.C,
-    shown: packed.D
-  }
-  unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => {
-    let browser = packed.A[key]
-    browserStats[browsers[key]] = Object.keys(browser).reduce(
-      (stats, support) => {
-        let packedVersions = browser[support].split(' ')
-        let unpacked2 = unpackSupport(support)
-        packedVersions.forEach(v => (stats[versions[v]] = unpacked2))
-        return stats
-      },
-      {}
-    )
-    return browserStats
-  }, {})
-  return unpacked
-}
-
-module.exports = unpackFeature
-module.exports.default = unpackFeature
Index: de_modules/caniuse-lite/dist/unpacker/features.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/features.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-/*
- * Load this dynamically so that it
- * doesn't appear in the rollup bundle.
- */
-
-module.exports.features = require('../../data/features')
Index: de_modules/caniuse-lite/dist/unpacker/index.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-module.exports.agents = require('./agents').agents
-module.exports.feature = require('./feature')
-module.exports.features = require('./features').features
-module.exports.region = require('./region')
Index: de_modules/caniuse-lite/dist/unpacker/region.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/region.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict'
-
-const browsers = require('./browsers').browsers
-
-function unpackRegion(packed) {
-  return Object.keys(packed).reduce((list, browser) => {
-    let data = packed[browser]
-    list[browsers[browser]] = Object.keys(data).reduce((memo, key) => {
-      let stats = data[key]
-      if (key === '_') {
-        stats.split(' ').forEach(version => (memo[version] = null))
-      } else {
-        memo[key] = stats
-      }
-      return memo
-    }, {})
-    return list
-  }, {})
-}
-
-module.exports = unpackRegion
-module.exports.default = unpackRegion
Index: de_modules/caniuse-lite/package.json
===================================================================
--- node_modules/caniuse-lite/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-{
-  "name": "caniuse-lite",
-  "version": "1.0.30001761",
-  "description": "A smaller version of caniuse-db, with only the essentials!",
-  "main": "dist/unpacker/index.js",
-  "files": [
-    "data",
-    "dist"
-  ],
-  "keywords": [
-    "support"
-  ],
-  "author": {
-    "name": "Ben Briggs",
-    "email": "beneb.info@gmail.com",
-    "url": "http://beneb.info"
-  },
-  "repository": "browserslist/caniuse-lite",
-  "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"
-}
Index: de_modules/clsx/clsx.d.mts
===================================================================
--- node_modules/clsx/clsx.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
-export type ClassDictionary = Record<string, any>;
-export type ClassArray = ClassValue[];
-
-export function clsx(...inputs: ClassValue[]): string;
-export default clsx;
Index: de_modules/clsx/clsx.d.ts
===================================================================
--- node_modules/clsx/clsx.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-declare namespace clsx {
-	type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
-	type ClassDictionary = Record<string, any>;
-	type ClassArray = ClassValue[];
-	function clsx(...inputs: ClassValue[]): string;
-}
-
-declare function clsx(...inputs: clsx.ClassValue[]): string;
-
-export = clsx;
Index: de_modules/clsx/dist/clsx.js
===================================================================
--- node_modules/clsx/dist/clsx.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-function r(e){var o,t,f="";if("string"==typeof e||"number"==typeof e)f+=e;else if("object"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=r(e[o]))&&(f&&(f+=" "),f+=t)}else for(t in e)e[t]&&(f&&(f+=" "),f+=t);return f}function e(){for(var e,o,t=0,f="",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=r(e))&&(f&&(f+=" "),f+=o);return f}module.exports=e,module.exports.clsx=e;
Index: de_modules/clsx/dist/clsx.min.js
===================================================================
--- node_modules/clsx/dist/clsx.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):e.clsx=n()}(this,(function(){function e(n){var t,f,o="";if("string"==typeof n||"number"==typeof n)o+=n;else if("object"==typeof n)if(Array.isArray(n)){var r=n.length;for(t=0;t<r;t++)n[t]&&(f=e(n[t]))&&(o&&(o+=" "),o+=f)}else for(f in n)n[f]&&(o&&(o+=" "),o+=f);return o}function n(){for(var n,t,f=0,o="",r=arguments.length;f<r;f++)(n=arguments[f])&&(t=e(n))&&(o&&(o+=" "),o+=t);return o}return n.clsx=n,n}));
Index: de_modules/clsx/dist/clsx.mjs
===================================================================
--- node_modules/clsx/dist/clsx.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}export function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}export default clsx;
Index: de_modules/clsx/dist/lite.js
===================================================================
--- node_modules/clsx/dist/lite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-function e(){for(var e,o=0,r="",t=arguments.length;o<t;o++)(e=arguments[o])&&"string"==typeof e&&(r+=(r&&" ")+e);return r}module.exports=e,module.exports.clsx=e;
Index: de_modules/clsx/dist/lite.mjs
===================================================================
--- node_modules/clsx/dist/lite.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export function clsx(){for(var t,r=0,e="",n=arguments.length;r<n;r++)(t=arguments[r])&&"string"==typeof t&&(e+=(e&&" ")+t);return e}export default clsx;
Index: de_modules/clsx/license
===================================================================
--- node_modules/clsx/license	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-MIT License
-
-Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/clsx/package.json
===================================================================
--- node_modules/clsx/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-{
-  "name": "clsx",
-  "version": "2.1.1",
-  "repository": "lukeed/clsx",
-  "description": "A tiny (239B) utility for constructing className strings conditionally.",
-  "module": "dist/clsx.mjs",
-  "unpkg": "dist/clsx.min.js",
-  "main": "dist/clsx.js",
-  "types": "clsx.d.ts",
-  "license": "MIT",
-  "exports": {
-    ".": {
-      "import": {
-        "types": "./clsx.d.mts",
-        "default": "./dist/clsx.mjs"
-      },
-      "default": {
-        "types": "./clsx.d.ts",
-        "default": "./dist/clsx.js"
-      }
-    },
-    "./lite": {
-      "import": {
-        "types": "./clsx.d.mts",
-        "default": "./dist/lite.mjs"
-      },
-      "default": {
-        "types": "./clsx.d.ts",
-        "default": "./dist/lite.js"
-      }
-    }
-  },
-  "author": {
-    "name": "Luke Edwards",
-    "email": "luke.edwards05@gmail.com",
-    "url": "https://lukeed.com"
-  },
-  "engines": {
-    "node": ">=6"
-  },
-  "scripts": {
-    "build": "node bin",
-    "test": "uvu -r esm test"
-  },
-  "files": [
-    "*.d.mts",
-    "*.d.ts",
-    "dist"
-  ],
-  "keywords": [
-    "classes",
-    "classname",
-    "classnames"
-  ],
-  "devDependencies": {
-    "esm": "3.2.25",
-    "terser": "4.8.0",
-    "uvu": "0.5.4"
-  }
-}
Index: de_modules/clsx/readme.md
===================================================================
--- node_modules/clsx/readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-# clsx [![CI](https://github.com/lukeed/clsx/workflows/CI/badge.svg)](https://github.com/lukeed/clsx/actions?query=workflow%3ACI) [![codecov](https://badgen.net/codecov/c/github/lukeed/clsx)](https://codecov.io/gh/lukeed/clsx) [![licenses](https://licenses.dev/b/npm/clsx)](https://licenses.dev/npm/clsx)
-
-> A tiny (239B) utility for constructing `className` strings conditionally.<Br>Also serves as a [faster](bench) & smaller drop-in replacement for the `classnames` module.
-
-This module is available in three formats:
-
-* **ES Module**: `dist/clsx.mjs`
-* **CommonJS**: `dist/clsx.js`
-* **UMD**: `dist/clsx.min.js`
-
-
-## Install
-
-```
-$ npm install --save clsx
-```
-
-
-## Usage
-
-```js
-import clsx from 'clsx';
-// or
-import { clsx } from 'clsx';
-
-// Strings (variadic)
-clsx('foo', true && 'bar', 'baz');
-//=> 'foo bar baz'
-
-// Objects
-clsx({ foo:true, bar:false, baz:isTrue() });
-//=> 'foo baz'
-
-// Objects (variadic)
-clsx({ foo:true }, { bar:false }, null, { '--foobar':'hello' });
-//=> 'foo --foobar'
-
-// Arrays
-clsx(['foo', 0, false, 'bar']);
-//=> 'foo bar'
-
-// Arrays (variadic)
-clsx(['foo'], ['', 0, false, 'bar'], [['baz', [['hello'], 'there']]]);
-//=> 'foo bar baz hello there'
-
-// Kitchen sink (with nesting)
-clsx('foo', [1 && 'bar', { baz:false, bat:null }, ['hello', ['world']]], 'cya');
-//=> 'foo bar hello world cya'
-```
-
-
-## API
-
-### clsx(...input)
-Returns: `String`
-
-#### input
-Type: `Mixed`
-
-The `clsx` function can take ***any*** number of arguments, each of which can be an Object, Array, Boolean, or String.
-
-> **Important:** _Any_ falsey values are discarded!<br>Standalone Boolean values are discarded as well.
-
-```js
-clsx(true, false, '', null, undefined, 0, NaN);
-//=> ''
-```
-
-## Modes
-
-There are multiple "versions" of `clsx` available, which allows you to bring only the functionality you need!
-
-#### `clsx`
-> **Size (gzip):** 239 bytes<br>
-> **Availability:** CommonJS, ES Module, UMD
-
-The default `clsx` module; see [API](#API) for info.
-
-```js
-import { clsx } from 'clsx';
-// or
-import clsx from 'clsx';
-```
-
-#### `clsx/lite`
-> **Size (gzip):** 140 bytes<br>
-> **Availability:** CommonJS, ES Module<br>
-> **CAUTION:** Accepts **ONLY** string arguments!
-
-Ideal for applications that ***only*** use the string-builder pattern.
-
-Any non-string arguments are ignored!
-
-```js
-import { clsx } from 'clsx/lite';
-// or
-import clsx from 'clsx/lite';
-
-// string
-clsx('hello', true && 'foo', false && 'bar');
-// => "hello foo"
-
-// NOTE: Any non-string input(s) ignored
-clsx({ foo: true });
-//=> ""
-```
-
-## Benchmarks
-
-For snapshots of cross-browser results, check out the [`bench`](bench) directory~!
-
-## Support
-
-All versions of Node.js are supported.
-
-All browsers that support [`Array.isArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Browser_compatibility) are supported (IE9+).
-
->**Note:** For IE8 support and older, please install `clsx@1.0.x` and beware of [#17](https://github.com/lukeed/clsx/issues/17).
-
-## Tailwind Support
-
-Here some additional (optional) steps to enable classes autocompletion using `clsx` with Tailwind CSS.
-
-<details>
-<summary>
-  Visual Studio Code
-</summary>
-
-1. [Install the "Tailwind CSS IntelliSense" Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)
-
-2. Add the following to your [`settings.json`](https://code.visualstudio.com/docs/getstarted/settings):
-
-  ```json
-   {
-    "tailwindCSS.experimental.classRegex": [
-      ["clsx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
-    ]
-   }
-  ```
-</details>
-
-You may find the [`clsx/lite`](#clsxlite) module useful within Tailwind contexts. This is especially true if/when your application **only** composes classes in this pattern:
-
-```js
-clsx('text-base', props.active && 'text-primary', props.className);
-```
-
-## Related
-
-- [obj-str](https://github.com/lukeed/obj-str) - A smaller (96B) and similiar utility that only works with Objects.
-
-## License
-
-MIT © [Luke Edwards](https://lukeed.com)
Index: de_modules/commander/CHANGELOG.md
===================================================================
--- node_modules/commander/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,440 +1,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). (Format adopted after v3.0.0.)
-
-<!-- markdownlint-disable MD024 -->
-<!-- markdownlint-disable MD004 -->
-
-## [7.2.0] (2021-03-26)
-
-### Added
-
-- TypeScript typing for `parent` property on `Command` ([#1475])
-- TypeScript typing for `.attributeName()` on `Option` ([#1483])
-- support information in package ([#1477])
-
-### Changed
-
-- improvements to error messages, README, and tests
-- update dependencies
-
-## [7.1.0] (2021-02-15)
-
-### Added
-
-- support for named imports from ECMAScript modules ([#1440])
-- add `.cjs` to list of expected script file extensions ([#1449])
-- allow using option choices and variadic together ([#1454])
-
-### Fixed
-
-- replace use of deprecated `process.mainModule` ([#1448])
-- regression for legacy `command('*')` and call when command line includes options ([#1464])
-- regression for `on('command:*', ...)` and call when command line includes unknown options ([#1464])
-- display best error for combination of unknown command and unknown option (i.e. unknown command) ([#1464])
-
-### Changed
-
-- make TypeScript typings tests stricter ([#1453])
-- improvements to README and tests
-
-## [7.0.0] (2021-01-15)
-
-### Added
-
-- `.enablePositionalOptions()` to let program and subcommand reuse same option ([#1427])
-- `.passThroughOptions()` to pass options through to other programs without needing `--` ([#1427])
-- `.allowExcessArguments(false)` to show an error message if there are too many command-arguments on command line for the action handler ([#1409])
-- `.configureOutput()` to modify use of stdout and stderr or customise display of errors ([#1387])
-- use `.addHelpText()` to add text before or after the built-in help, for just current command or also for all subcommands ([#1296])
-- enhance Option class ([#1331])
-  - allow hiding options from help
-  - allow restricting option arguments to a list of choices
-  - allow setting how default value is shown in help
-- `.createOption()` to support subclassing of automatically created options (like `.createCommand()`) ([#1380])
-- refactor the code generating the help into a separate public Help class ([#1365])
-  - support sorting subcommands and options in help
-  - support specifying wrap width (columns)
-  - allow subclassing Help class
-  - allow configuring Help class without subclassing
-
-### Changed
-
-- *Breaking:* options are stored safely by default, not as properties on the command ([#1409])
-    - this especially affects accessing options on program, use `program.opts()`
-    - revert behaviour with `.storeOptionsAsProperties()`
-- *Breaking:* action handlers are passed options and command separately ([#1409])
-- deprecated callback parameter to `.help()` and `.outputHelp()` (removed from README) ([#1296])
-- *Breaking:* errors now displayed using `process.stderr.write()` instead of `console.error()`
-- deprecate `.on('--help')` (removed from README) ([#1296])
-- initialise the command description to empty string (previously undefined) ([#1365])
-- document and annotate deprecated routines ([#1349])
-
-### Fixed
-
-- wrapping bugs in help ([#1365])
-  - first line of command description was wrapping two characters early
-  - pad width calculation was not including help option and help command
-  - pad width calculation was including hidden options and commands
-- improve backwards compatibility for custom command event listeners ([#1403])
-  
-### Deleted
-
-- *Breaking:* `.passCommandToAction()` ([#1409])
-    - no longer needed as action handler is passed options and command
-- *Breaking:* "extra arguments" parameter to action handler ([#1409])
-    - if being used to detect excess arguments, there is now an error available by setting `.allowExcessArguments(false)`
-
-### Migration Tips
-
-The biggest change is the parsed option values. Previously the options were stored by default as properties on the command object, and now the options are stored separately.
-
-If you wish to restore the old behaviour and get running quickly you can call `.storeOptionsAsProperties()`. 
-To allow you to move to the new code patterns incrementally, the action handler will be passed the command _twice_,
-to match the new "options" and "command" parameters (see below).
-
-**program options**
-
-Use the `.opts()` method to access the options. This is available on any command but is used most with the program.
-
-```js
-program.option('-d, --debug');
-program.parse();
-// Old code before Commander 7
-if (program.debug) console.log(`Program name is ${program.name()}`);
-```
-
-```js
-// New code
-const options = program.opts();
-if (options.debug) console.log(`Program name is ${program.name()}`);
-```
-
-**action handler**
-
-The action handler gets passed a parameter for each command-argument you declared. Previously by default the next parameter was the command object with the options as properties. Now the next two parameters are instead the options and the command. If you
-only accessed the options there may be no code changes required.
-
-```js
-program
-  .command('compress <filename>')
-  .option('-t, --trace')
-  // Old code before Commander 7
-  .action((filename, cmd)) => {
-    if (cmd.trace) console.log(`Command name is ${cmd.name()}`);
-  });
-```
-
-```js
-  // New code
-  .action((filename, options, command)) => {
-    if (options.trace) console.log(`Command name is ${command.name()}`);
-  });
-```
-
-If you already set `.storeOptionsAsProperties(false)` you may still need to adjust your code.
-
-```js
-program
-  .command('compress <filename>')
-  .storeOptionsAsProperties(false)
-  .option('-t, --trace')
-  // Old code before Commander 7
-  .action((filename, command)) => {
-    if (command.opts().trace) console.log(`Command name is ${command.name()}`);
-  });
-```
-
-```js
-   // New code
-   .action((filename, options, command)) => {
-      if (command.opts().trace) console.log(`Command name is ${command.name()}`);
-   });
-```
-
-## [7.0.0-2] (2020-12-14)
-
-(Released in 7.0.0)
-
-## [7.0.0-1] (2020-11-21)
-
-(Released in 7.0.0)
-
-## [7.0.0-0] (2020-10-25)
-
-(Released in 7.0.0)
-
-## [6.2.1] (2020-12-13)
-
-### Fixed
-
-- some tests failed if directory path included a space ([1390])
-
-## [6.2.0] (2020-10-25)
-
-### Added
-
-- added 'tsx' file extension for stand-alone executable subcommands ([#1368])
-- documented second parameter to `.description()` to describe command arguments ([#1353])
-- documentation of special cases with options taking varying numbers of option-arguments ([#1332])
-- documentation for terminology ([#1361])
-  
-### Fixed
-
-- add missing TypeScript definition for `.addHelpCommand()' ([#1375])
-- removed blank line after "Arguments:" in help, to match "Options:" and "Commands:" ([#1360])
-
-### Changed
-
-- update dependencies
-
-## [6.1.0] (2020-08-28)
-
-### Added
-
-- include URL to relevant section of README for error for potential conflict between Command properties and option values ([#1306])
-- `.combineFlagAndOptionalValue(false)` to ease upgrade path from older versions of Commander ([#1326])
-- allow disabling the built-in help option using `.helpOption(false)` ([#1325])
-- allow just some arguments in `argumentDescription` to `.description()` ([#1323])
-
-### Changed
-
-- tidy async test and remove lint override ([#1312])
-
-### Fixed
-
-- executable subcommand launching when script path not known ([#1322])
-
-## [6.0.0] (2020-07-21)
-
-### Added
-
-- add support for variadic options ([#1250])
-- allow options to be added with just a short flag ([#1256])
-  - *Breaking* the option property has same case as flag. e.g. flag `-n` accessed as `opts().n` (previously uppercase)
-- *Breaking* throw an error if there might be a clash between option name and a Command property, with advice on how to resolve ([#1275])
-
-### Fixed
-
-- Options which contain -no- in the middle of the option flag should not be treated as negatable. ([#1301])
-
-## [6.0.0-0] (2020-06-20)
-
-(Released in 6.0.0)
-
-## [5.1.0] (2020-04-25)
-
-### Added
-
-- support for multiple command aliases, the first of which is shown in the auto-generated help ([#531], [#1236])
-- configuration support in `addCommand()` for `hidden` and `isDefault` ([#1232])
-
-### Fixed
-
-- omit masked help flags from the displayed help ([#645], [#1247])
-- remove old short help flag when change help flags using `helpOption` ([#1248])
-
-### Changed
-
-- remove use of `arguments` to improve auto-generated help in editors ([#1235])
-- rename `.command()` configuration `noHelp` to `hidden` (but not remove old support) ([#1232])
-- improvements to documentation
-- update dependencies
-- update tested versions of node
-- eliminate lint errors in TypeScript ([#1208])
-
-## [5.0.0] (2020-03-14)
-
-### Added
-
-* support for nested commands with action-handlers ([#1] [#764] [#1149])
-* `.addCommand()` for adding a separately configured command ([#764] [#1149])
-* allow a non-executable to be set as the default command ([#742] [#1149])
-* implicit help command when there are subcommands (previously only if executables) ([#1149])
-* customise implicit help command with `.addHelpCommand()` ([#1149])
-* display error message for unknown subcommand, by default ([#432] [#1088] [#1149])
-* display help for missing subcommand, by default ([#1088] [#1149])
-* combined short options as single argument may include boolean flags and value flag and value (e.g. `-a -b -p 80` can be written as `-abp80`) ([#1145])
-* `.parseOption()` includes short flag and long flag expansions ([#1145])
-* `.helpInformation()` returns help text as a string, previously a private routine ([#1169])
-* `.parse()` implicitly uses `process.argv` if arguments not specified ([#1172])
-* optionally specify where `.parse()` arguments "from", if not following node conventions ([#512] [#1172])
-* suggest help option along with unknown command error ([#1179])
-* TypeScript definition for `commands` property of `Command` ([#1184])
-* export `program` property ([#1195])
-* `createCommand` factory method to simplify subclassing ([#1191])
-
-### Fixed
-
-* preserve argument order in subcommands ([#508] [#962] [#1138])
-* do not emit `command:*` for executable subcommands ([#809] [#1149])
-* action handler called whether or not there are non-option arguments ([#1062] [#1149])
-* combining option short flag and value in single argument now works for subcommands ([#1145])
-* only add implicit help command when it will not conflict with other uses of argument ([#1153] [#1149])
-* implicit help command works with command aliases ([#948] [#1149])
-* options are validated whether or not there is an action handler ([#1149])
-
-### Changed
-
-* *Breaking* `.args` contains command arguments with just recognised options removed ([#1032] [#1138])
-* *Breaking* display error if required argument for command is missing ([#995] [#1149])
-* tighten TypeScript definition of custom option processing function passed to `.option()` ([#1119])
-* *Breaking* `.allowUnknownOption()` ([#802] [#1138])
-  * unknown options included in arguments passed to command action handler
-  * unknown options included in `.args`
-* only recognised option short flags and long flags are expanded (e.g. `-ab` or `--foo=bar`) ([#1145])
-* *Breaking* `.parseOptions()` ([#1138])
-  * `args` in returned result renamed `operands` and does not include anything after first unknown option
-  * `unknown` in returned result has arguments after first unknown option including operands, not just options and values
-* *Breaking* `.on('command:*', callback)` and other command events passed (changed) results from `.parseOptions`, i.e. operands and unknown  ([#1138])
-* refactor Option from prototype to class ([#1133])
-* refactor Command from prototype to class ([#1159])
-* changes to error handling ([#1165])
-  * throw for author error, not just display message
-  * preflight for variadic error
-  * add tips to missing subcommand executable
-* TypeScript fluent return types changed to be more subclass friendly, return `this` rather than `Command` ([#1180])
-* `.parseAsync` returns `Promise<this>` to be consistent with `.parse()` ([#1180])
-* update dependencies
-
-### Removed
-
-* removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on `@types/node` ([#1146])
-* removed private function `normalize` (the functionality has been integrated into `parseOptions`) ([#1145])
-* `parseExpectedArgs` is now private ([#1149])
-
-### Migration Tips
-
-If you use `.on('command:*')` or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.
-
-If you use `program.args` or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.
-
-If you use `.command('*')` to add a default command, you may be be able to switch to `isDefault:true` with a named command.
-
-If you want to continue combining short options with optional values as though they were boolean flags, set `combineFlagAndOptionalValue(false)`
-to expand `-fb` to `-f -b` rather than `-f b`.
-
-## [5.0.0-4] (2020-03-03)
-
-(Released in 5.0.0)
-
-## [5.0.0-3] (2020-02-20)
-
-(Released in 5.0.0)
-
-## [5.0.0-2] (2020-02-10)
-
-(Released in 5.0.0)
-
-## [5.0.0-1] (2020-02-08)
-
-(Released in 5.0.0)
-
-## [5.0.0-0] (2020-02-02)
-
-(Released in 5.0.0)
-
-## Older versions
-
-* [4.x](./changelogs/CHANGELOG-4.md)
-* [3.x](./changelogs/CHANGELOG-3.md)
-* [2.x](./changelogs/CHANGELOG-2.md)
-* [1.x](./changelogs/CHANGELOG-1.md)
-* [0.x](./changelogs/CHANGELOG-0.md)
-
-[#1]: https://github.com/tj/commander.js/issues/1
-[#432]: https://github.com/tj/commander.js/issues/432
-[#508]: https://github.com/tj/commander.js/issues/508
-[#512]: https://github.com/tj/commander.js/issues/512
-[#531]: https://github.com/tj/commander.js/issues/531
-[#645]: https://github.com/tj/commander.js/issues/645
-[#742]: https://github.com/tj/commander.js/issues/742
-[#764]: https://github.com/tj/commander.js/issues/764
-[#802]: https://github.com/tj/commander.js/issues/802
-[#809]: https://github.com/tj/commander.js/issues/809
-[#948]: https://github.com/tj/commander.js/issues/948
-[#962]: https://github.com/tj/commander.js/issues/962
-[#995]: https://github.com/tj/commander.js/issues/995
-[#1032]: https://github.com/tj/commander.js/issues/1032
-[#1062]: https://github.com/tj/commander.js/pull/1062
-[#1088]: https://github.com/tj/commander.js/issues/1088
-[#1119]: https://github.com/tj/commander.js/pull/1119
-[#1133]: https://github.com/tj/commander.js/pull/1133
-[#1138]: https://github.com/tj/commander.js/pull/1138
-[#1145]: https://github.com/tj/commander.js/pull/1145
-[#1146]: https://github.com/tj/commander.js/pull/1146
-[#1149]: https://github.com/tj/commander.js/pull/1149
-[#1153]: https://github.com/tj/commander.js/issues/1153
-[#1159]: https://github.com/tj/commander.js/pull/1159
-[#1165]: https://github.com/tj/commander.js/pull/1165
-[#1169]: https://github.com/tj/commander.js/pull/1169
-[#1172]: https://github.com/tj/commander.js/pull/1172
-[#1179]: https://github.com/tj/commander.js/pull/1179
-[#1180]: https://github.com/tj/commander.js/pull/1180
-[#1184]: https://github.com/tj/commander.js/pull/1184
-[#1191]: https://github.com/tj/commander.js/pull/1191
-[#1195]: https://github.com/tj/commander.js/pull/1195
-[#1208]: https://github.com/tj/commander.js/pull/1208
-[#1232]: https://github.com/tj/commander.js/pull/1232
-[#1235]: https://github.com/tj/commander.js/pull/1235
-[#1236]: https://github.com/tj/commander.js/pull/1236
-[#1247]: https://github.com/tj/commander.js/pull/1247
-[#1248]: https://github.com/tj/commander.js/pull/1248
-[#1250]: https://github.com/tj/commander.js/pull/1250
-[#1256]: https://github.com/tj/commander.js/pull/1256
-[#1275]: https://github.com/tj/commander.js/pull/1275
-[#1296]: https://github.com/tj/commander.js/pull/1296
-[#1301]: https://github.com/tj/commander.js/issues/1301
-[#1306]: https://github.com/tj/commander.js/pull/1306
-[#1312]: https://github.com/tj/commander.js/pull/1312
-[#1322]: https://github.com/tj/commander.js/pull/1322
-[#1323]: https://github.com/tj/commander.js/pull/1323
-[#1325]: https://github.com/tj/commander.js/pull/1325
-[#1326]: https://github.com/tj/commander.js/pull/1326
-[#1331]: https://github.com/tj/commander.js/pull/1331
-[#1332]: https://github.com/tj/commander.js/pull/1332
-[#1349]: https://github.com/tj/commander.js/pull/1349
-[#1353]: https://github.com/tj/commander.js/pull/1353
-[#1360]: https://github.com/tj/commander.js/pull/1360
-[#1361]: https://github.com/tj/commander.js/pull/1361
-[#1365]: https://github.com/tj/commander.js/pull/1365
-[#1368]: https://github.com/tj/commander.js/pull/1368
-[#1375]: https://github.com/tj/commander.js/pull/1375
-[#1380]: https://github.com/tj/commander.js/pull/1380
-[#1387]: https://github.com/tj/commander.js/pull/1387
-[#1390]: https://github.com/tj/commander.js/pull/1390
-[#1403]: https://github.com/tj/commander.js/pull/1403
-[#1409]: https://github.com/tj/commander.js/pull/1409
-[#1427]: https://github.com/tj/commander.js/pull/1427
-[#1440]: https://github.com/tj/commander.js/pull/1440
-[#1448]: https://github.com/tj/commander.js/pull/1448
-[#1449]: https://github.com/tj/commander.js/pull/1449
-[#1453]: https://github.com/tj/commander.js/pull/1453
-[#1454]: https://github.com/tj/commander.js/pull/1454
-[#1464]: https://github.com/tj/commander.js/pull/1464
-[#1475]: https://github.com/tj/commander.js/pull/1475
-[#1477]: https://github.com/tj/commander.js/pull/1477
-[#1483]: https://github.com/tj/commander.js/pull/1483
-
-[Unreleased]: https://github.com/tj/commander.js/compare/master...develop
-[7.2.0]: https://github.com/tj/commander.js/compare/v7.1.0...v7.2.0
-[7.1.0]: https://github.com/tj/commander.js/compare/v7.0.0...v7.1.0
-[7.0.0]: https://github.com/tj/commander.js/compare/v6.2.1...v7.0.0
-[7.0.0-2]: https://github.com/tj/commander.js/compare/v7.0.0-1...v7.0.0-2
-[7.0.0-1]: https://github.com/tj/commander.js/compare/v7.0.0-0...v7.0.0-1
-[7.0.0-0]: https://github.com/tj/commander.js/compare/v6.2.0...v7.0.0-0
-[6.2.1]: https://github.com/tj/commander.js/compare/v6.2.0..v6.2.1
-[6.2.0]: https://github.com/tj/commander.js/compare/v6.1.0..v6.2.0
-[6.1.0]: https://github.com/tj/commander.js/compare/v6.0.0..v6.1.0
-[6.0.0]: https://github.com/tj/commander.js/compare/v5.1.0..v6.0.0
-[6.0.0-0]: https://github.com/tj/commander.js/compare/v5.1.0..v6.0.0-0
-[5.1.0]: https://github.com/tj/commander.js/compare/v5.0.0..v5.1.0
-[5.0.0]: https://github.com/tj/commander.js/compare/v4.1.1..v5.0.0
-[5.0.0-4]: https://github.com/tj/commander.js/compare/v5.0.0-3..v5.0.0-4
-[5.0.0-3]: https://github.com/tj/commander.js/compare/v5.0.0-2..v5.0.0-3
-[5.0.0-2]: https://github.com/tj/commander.js/compare/v5.0.0-1..v5.0.0-2
-[5.0.0-1]: https://github.com/tj/commander.js/compare/v5.0.0-0..v5.0.0-1
-[5.0.0-0]: https://github.com/tj/commander.js/compare/v4.1.1..v5.0.0-0
Index: de_modules/commander/LICENSE
===================================================================
--- node_modules/commander/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-(The MIT License)
-
-Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/commander/Readme.md
===================================================================
--- node_modules/commander/Readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,917 +1,0 @@
-# Commander.js
-
-[![Build Status](https://github.com/tj/commander.js/workflows/build/badge.svg)](https://github.com/tj/commander.js/actions?query=workflow%3A%22build%22)
-[![NPM Version](http://img.shields.io/npm/v/commander.svg?style=flat)](https://www.npmjs.org/package/commander)
-[![NPM Downloads](https://img.shields.io/npm/dm/commander.svg?style=flat)](https://npmcharts.com/compare/commander?minimal=true)
-[![Install Size](https://packagephobia.now.sh/badge?p=commander)](https://packagephobia.now.sh/result?p=commander)
-
-The complete solution for [node.js](http://nodejs.org) command-line interfaces.
-
-Read this in other languages: English | [简体中文](./Readme_zh-CN.md)
-
-- [Commander.js](#commanderjs)
-  - [Installation](#installation)
-  - [Declaring _program_ variable](#declaring-program-variable)
-  - [Options](#options)
-    - [Common option types, boolean and value](#common-option-types-boolean-and-value)
-    - [Default option value](#default-option-value)
-    - [Other option types, negatable boolean and boolean|value](#other-option-types-negatable-boolean-and-booleanvalue)
-    - [Required option](#required-option)
-    - [Variadic option](#variadic-option)
-    - [Version option](#version-option)
-    - [More configuration](#more-configuration)
-    - [Custom option processing](#custom-option-processing)
-  - [Commands](#commands)
-    - [Specify the argument syntax](#specify-the-argument-syntax)
-    - [Action handler](#action-handler)
-    - [Stand-alone executable (sub)commands](#stand-alone-executable-subcommands)
-  - [Automated help](#automated-help)
-    - [Custom help](#custom-help)
-    - [Display help from code](#display-help-from-code)
-    - [.usage and .name](#usage-and-name)
-    - [.helpOption(flags, description)](#helpoptionflags-description)
-    - [.addHelpCommand()](#addhelpcommand)
-    - [More configuration](#more-configuration-1)
-  - [Custom event listeners](#custom-event-listeners)
-  - [Bits and pieces](#bits-and-pieces)
-    - [.parse() and .parseAsync()](#parse-and-parseasync)
-    - [Parsing Configuration](#parsing-configuration)
-    - [Legacy options as properties](#legacy-options-as-properties)
-    - [TypeScript](#typescript)
-    - [createCommand()](#createcommand)
-    - [Node options such as `--harmony`](#node-options-such-as---harmony)
-    - [Debugging stand-alone executable subcommands](#debugging-stand-alone-executable-subcommands)
-    - [Override exit and output handling](#override-exit-and-output-handling)
-    - [Additional documentation](#additional-documentation)
-  - [Examples](#examples)
-  - [Support](#support)
-    - [Commander for enterprise](#commander-for-enterprise)
-
-For information about terms used in this document see: [terminology](./docs/terminology.md)
-
-## Installation
-
-```bash
-npm install commander
-```
-
-## Declaring _program_ variable
-
-Commander exports a global object which is convenient for quick programs.
-This is used in the examples in this README for brevity.
-
-```js
-const { program } = require('commander');
-program.version('0.0.1');
-```
-
-For larger programs which may use commander in multiple ways, including unit testing, it is better to create a local Command object to use.
-
-```js
-const { Command } = require('commander');
-const program = new Command();
-program.version('0.0.1');
-```
-
-For named imports in ECMAScript modules, import from `commander/esm.mjs`.
-
-```js
-// index.mjs
-import { Command } from 'commander/esm.mjs';
-const program = new Command();
-```
-
-And in TypeScript:
-
-```ts
-// index.ts
-import { Command } from 'commander';
-const program = new Command();
-```
-
-
-## Options
-
-Options are defined with the `.option()` method, also serving as documentation for the options. Each option can have a short flag (single character) and a long name, separated by a comma or space or vertical bar ('|').
-
-The parsed options can be accessed by calling `.opts()` on a `Command` object, and are passed to the action handler. Multi-word options such as "--template-engine" are camel-cased, becoming `program.opts().templateEngine` etc.
-
-Multiple short flags may optionally be combined in a single argument following the dash: boolean flags, followed by a single option taking a value (possibly followed by the value).
-For example `-a -b -p 80` may be written as `-ab -p80` or even `-abp80`.
-
-You can use `--` to indicate the end of the options, and any remaining arguments will be used without being interpreted.
-
-By default options on the command line are not positional, and can be specified before or after other arguments.
-
-### Common option types, boolean and value
-
-The two most used option types are a boolean option, and an option which takes its value
-from the following argument (declared with angle brackets like `--expect <value>`). Both are `undefined` unless specified on command line.  
-
-Example file: [options-common.js](./examples/options-common.js)
-
-```js
-program
-  .option('-d, --debug', 'output extra debugging')
-  .option('-s, --small', 'small pizza size')
-  .option('-p, --pizza-type <type>', 'flavour of pizza');
-
-program.parse(process.argv);
-
-const options = program.opts();
-if (options.debug) console.log(options);
-console.log('pizza details:');
-if (options.small) console.log('- small pizza size');
-if (options.pizzaType) console.log(`- ${options.pizzaType}`);
-```
-
-```bash
-$ pizza-options -d
-{ debug: true, small: undefined, pizzaType: undefined }
-pizza details:
-$ pizza-options -p
-error: option '-p, --pizza-type <type>' argument missing
-$ pizza-options -ds -p vegetarian
-{ debug: true, small: true, pizzaType: 'vegetarian' }
-pizza details:
-- small pizza size
-- vegetarian
-$ pizza-options --pizza-type=cheese
-pizza details:
-- cheese
-```
-
-`program.parse(arguments)` processes the arguments, leaving any args not consumed by the program options in the `program.args` array. The parameter is optional and defaults to `process.argv`.
-
-### Default option value
-
-You can specify a default value for an option which takes a value.
-
-Example file: [options-defaults.js](./examples/options-defaults.js)
-
-```js
-program
-  .option('-c, --cheese <type>', 'add the specified type of cheese', 'blue');
-
-program.parse();
-
-console.log(`cheese: ${program.opts().cheese}`);
-```
-
-```bash
-$ pizza-options
-cheese: blue
-$ pizza-options --cheese stilton
-cheese: stilton
-```
-
-### Other option types, negatable boolean and boolean|value
-
-You can define a boolean option long name with a leading `no-` to set the option value to false when used.
-Defined alone this also makes the option true by default.
-
-If you define `--foo` first, adding `--no-foo` does not change the default value from what it would
-otherwise be. You can specify a default boolean value for a boolean option and it can be overridden on command line.
-
-Example file: [options-negatable.js](./examples/options-negatable.js)
-
-```js
-program
-  .option('--no-sauce', 'Remove sauce')
-  .option('--cheese <flavour>', 'cheese flavour', 'mozzarella')
-  .option('--no-cheese', 'plain with no cheese')
-  .parse();
-
-const options = program.opts();
-const sauceStr = options.sauce ? 'sauce' : 'no sauce';
-const cheeseStr = (options.cheese === false) ? 'no cheese' : `${options.cheese} cheese`;
-console.log(`You ordered a pizza with ${sauceStr} and ${cheeseStr}`);
-```
-
-```bash
-$ pizza-options
-You ordered a pizza with sauce and mozzarella cheese
-$ pizza-options --sauce
-error: unknown option '--sauce'
-$ pizza-options --cheese=blue
-You ordered a pizza with sauce and blue cheese
-$ pizza-options --no-sauce --no-cheese
-You ordered a pizza with no sauce and no cheese
-```
-
-You can specify an option which may be used as a boolean option but may optionally take an option-argument
-(declared with square brackets like `--optional [value]`).
-
-Example file: [options-boolean-or-value.js](./examples/options-boolean-or-value.js)
-
-```js
-program
-  .option('-c, --cheese [type]', 'Add cheese with optional type');
-
-program.parse(process.argv);
-
-const options = program.opts();
-if (options.cheese === undefined) console.log('no cheese');
-else if (options.cheese === true) console.log('add cheese');
-else console.log(`add cheese type ${options.cheese}`);
-```
-
-```bash
-$ pizza-options
-no cheese
-$ pizza-options --cheese
-add cheese
-$ pizza-options --cheese mozzarella
-add cheese type mozzarella
-```
-
-For information about possible ambiguous cases, see [options taking varying arguments](./docs/options-taking-varying-arguments.md).
-
-### Required option
-
-You may specify a required (mandatory) option using `.requiredOption`. The option must have a value after parsing, usually specified on the command line, or perhaps from a default value (say from environment). The method is otherwise the same as `.option` in format, taking flags and description, and optional default value or custom processing.
-
-Example file: [options-required.js](./examples/options-required.js)
-
-```js
-program
-  .requiredOption('-c, --cheese <type>', 'pizza must have cheese');
-
-program.parse();
-```
-
-```bash
-$ pizza
-error: required option '-c, --cheese <type>' not specified
-```
-
-### Variadic option
-
-You may make an option variadic by appending `...` to the value placeholder when declaring the option. On the command line you
-can then specify multiple option-arguments, and the parsed option value will be an array. The extra arguments
-are read until the first argument starting with a dash. The special argument `--` stops option processing entirely. If a value
-is specified in the same argument as the option then no further values are read.
-
-Example file: [options-variadic.js](./examples/options-variadic.js)
-
-```js
-program
-  .option('-n, --number <numbers...>', 'specify numbers')
-  .option('-l, --letter [letters...]', 'specify letters');
-
-program.parse();
-
-console.log('Options: ', program.opts());
-console.log('Remaining arguments: ', program.args);
-```
-
-```bash
-$ collect -n 1 2 3 --letter a b c
-Options:  { number: [ '1', '2', '3' ], letter: [ 'a', 'b', 'c' ] }
-Remaining arguments:  []
-$ collect --letter=A -n80 operand
-Options:  { number: [ '80' ], letter: [ 'A' ] }
-Remaining arguments:  [ 'operand' ]
-$ collect --letter -n 1 -n 2 3 -- operand
-Options:  { number: [ '1', '2', '3' ], letter: true }
-Remaining arguments:  [ 'operand' ]
-```
-
-For information about possible ambiguous cases, see [options taking varying arguments](./docs/options-taking-varying-arguments.md).
-
-### Version option
-
-The optional `version` method adds handling for displaying the command version. The default option flags are `-V` and `--version`, and when present the command prints the version number and exits.
-
-```js
-program.version('0.0.1');
-```
-
-```bash
-$ ./examples/pizza -V
-0.0.1
-```
-
-You may change the flags and description by passing additional parameters to the `version` method, using
-the same syntax for flags as the `option` method.
-
-```js
-program.version('0.0.1', '-v, --vers', 'output the current version');
-```
-
-### More configuration
-
-You can add most options using the `.option()` method, but there are some additional features available
-by constructing an `Option` explicitly for less common cases.
-
-Example file: [options-extra.js](./examples/options-extra.js)
-
-```js
-program
-  .addOption(new Option('-s, --secret').hideHelp())
-  .addOption(new Option('-t, --timeout <delay>', 'timeout in seconds').default(60, 'one minute'))
-  .addOption(new Option('-d, --drink <size>', 'drink size').choices(['small', 'medium', 'large']));
-```
-
-```bash
-$ extra --help
-Usage: help [options]
-
-Options:
-  -t, --timeout <delay>  timeout in seconds (default: one minute)
-  -d, --drink <size>     drink cup size (choices: "small", "medium", "large")
-  -h, --help             display help for command
-
-$ extra --drink huge
-error: option '-d, --drink <size>' argument 'huge' is invalid. Allowed choices are small, medium, large.
-```
-
-### Custom option processing
-
-You may specify a function to do custom processing of option-arguments. The callback function receives two parameters,
-the user specified option-argument and the previous value for the option. It returns the new value for the option.
-
-This allows you to coerce the option-argument to the desired type, or accumulate values, or do entirely custom processing.
-
-You can optionally specify the default/starting value for the option after the function parameter.
-
-Example file: [options-custom-processing.js](./examples/options-custom-processing.js)
-
-```js
-function myParseInt(value, dummyPrevious) {
-  // parseInt takes a string and a radix
-  const parsedValue = parseInt(value, 10);
-  if (isNaN(parsedValue)) {
-    throw new commander.InvalidOptionArgumentError('Not a number.');
-  }
-  return parsedValue;
-}
-
-function increaseVerbosity(dummyValue, previous) {
-  return previous + 1;
-}
-
-function collect(value, previous) {
-  return previous.concat([value]);
-}
-
-function commaSeparatedList(value, dummyPrevious) {
-  return value.split(',');
-}
-
-program
-  .option('-f, --float <number>', 'float argument', parseFloat)
-  .option('-i, --integer <number>', 'integer argument', myParseInt)
-  .option('-v, --verbose', 'verbosity that can be increased', increaseVerbosity, 0)
-  .option('-c, --collect <value>', 'repeatable value', collect, [])
-  .option('-l, --list <items>', 'comma separated list', commaSeparatedList)
-;
-
-program.parse();
-
-const options = program.opts();
-if (options.float !== undefined) console.log(`float: ${options.float}`);
-if (options.integer !== undefined) console.log(`integer: ${options.integer}`);
-if (options.verbose > 0) console.log(`verbosity: ${options.verbose}`);
-if (options.collect.length > 0) console.log(options.collect);
-if (options.list !== undefined) console.log(options.list);
-```
-
-```bash
-$ custom -f 1e2
-float: 100
-$ custom --integer 2
-integer: 2
-$ custom -v -v -v
-verbose: 3
-$ custom -c a -c b -c c
-[ 'a', 'b', 'c' ]
-$ custom --list x,y,z
-[ 'x', 'y', 'z' ]
-```
-
-## Commands
-
-You can specify (sub)commands using `.command()` or `.addCommand()`. There are two ways these can be implemented: using an action handler attached to the command, or as a stand-alone executable file (described in more detail later). The subcommands may be nested ([example](./examples/nestedCommands.js)).
-
-In the first parameter to `.command()` you specify the command name and any command-arguments. The arguments may be `<required>` or `[optional]`, and the last argument may also be `variadic...`.
-
-You can use `.addCommand()` to add an already configured subcommand to the program.
-
-For example:
-
-```js
-// Command implemented using action handler (description is supplied separately to `.command`)
-// Returns new command for configuring.
-program
-  .command('clone <source> [destination]')
-  .description('clone a repository into a newly created directory')
-  .action((source, destination) => {
-    console.log('clone command called');
-  });
-
-// Command implemented using stand-alone executable file (description is second parameter to `.command`)
-// Returns `this` for adding more commands.
-program
-  .command('start <service>', 'start named service')
-  .command('stop [service]', 'stop named service, or all if no name supplied');
-
-// Command prepared separately.
-// Returns `this` for adding more commands.
-program
-  .addCommand(build.makeBuildCommand());
-```
-
-Configuration options can be passed with the call to `.command()` and `.addCommand()`. Specifying `hidden: true` will 
-remove the command from the generated help output. Specifying `isDefault: true` will run the subcommand if no other
-subcommand is specified ([example](./examples/defaultCommand.js)).
-
-### Specify the argument syntax
-
-You use `.arguments` to specify the expected command-arguments for the top-level command, and for subcommands they are usually
-included in the `.command` call. Angled brackets (e.g. `<required>`) indicate required command-arguments.
-Square brackets (e.g. `[optional]`) indicate optional command-arguments.
-You can optionally describe the arguments in the help by supplying a hash as second parameter to `.description()`.
-
-Example file: [arguments.js](./examples/arguments.js)
-
-```js
-program
-  .version('0.1.0')
-  .arguments('<username> [password]')
-  .description('test command', {
-    username: 'user to login',
-    password: 'password for user, if required'
-  })
-  .action((username, password) => {
-    console.log('username:', username);
-    console.log('environment:', password || 'no password given');
-  });
-```
-
- The last argument of a command can be variadic, and only the last argument.  To make an argument variadic you
- append `...` to the argument name. For example:
-
-```js
-program
-  .version('0.1.0')
-  .command('rmdir <dirs...>')
-  .action(function (dirs) {
-    dirs.forEach((dir) => {
-      console.log('rmdir %s', dir);
-    });
-  });
-```
-
-The variadic argument is passed to the action handler as an array.
-
-### Action handler
-
-The action handler gets passed a parameter for each command-argument you declared, and two additional parameters
-which are the parsed options and the command object itself. 
-
-Example file: [thank.js](./examples/thank.js)
-
-```js
-program
-  .arguments('<name>')
-  .option('-t, --title <honorific>', 'title to use before name')
-  .option('-d, --debug', 'display some debugging')
-  .action((name, options, command) => {
-    if (options.debug) {
-      console.error('Called %s with options %o', command.name(), options);
-    }
-    const title = options.title ? `${options.title} ` : '';
-    console.log(`Thank-you ${title}${name}`);
-  });
-```
-
-You may supply an `async` action handler, in which case you call `.parseAsync` rather than `.parse`.
-
-```js
-async function run() { /* code goes here */ }
-
-async function main() {
-  program
-    .command('run')
-    .action(run);
-  await program.parseAsync(process.argv);
-}
-```
-
-A command's options and arguments on the command line are validated when the command is used. Any unknown options or missing arguments will be reported as an error. You can suppress the unknown option checks with `.allowUnknownOption()`. By default it is not an error to
-pass more arguments than declared, but you can make this an error with `.allowExcessArguments(false)`.
-
-### Stand-alone executable (sub)commands
-
-When `.command()` is invoked with a description argument, this tells Commander that you're going to use stand-alone executables for subcommands.
-Commander will search the executables in the directory of the entry script (like `./examples/pm`) with the name `program-subcommand`, like `pm-install`, `pm-search`.
-You can specify a custom name with the `executableFile` configuration option.
-
-You handle the options for an executable (sub)command in the executable, and don't declare them at the top-level.
-
-Example file: [pm](./examples/pm)
-
-```js
-program
-  .version('0.1.0')
-  .command('install [name]', 'install one or more packages')
-  .command('search [query]', 'search with optional query')
-  .command('update', 'update installed packages', { executableFile: 'myUpdateSubCommand' })
-  .command('list', 'list packages installed', { isDefault: true });
-
-program.parse(process.argv);
-```
-
-If the program is designed to be installed globally, make sure the executables have proper modes, like `755`.
-
-## Automated help
-
-The help information is auto-generated based on the information commander already knows about your program. The default
-help option is `-h,--help`.
-
-Example file: [pizza](./examples/pizza)
-
-```bash
-$ node ./examples/pizza --help
-Usage: pizza [options]
-
-An application for pizza ordering
-
-Options:
-  -p, --peppers        Add peppers
-  -c, --cheese <type>  Add the specified type of cheese (default: "marble")
-  -C, --no-cheese      You do not want any cheese
-  -h, --help           display help for command
-```
-
-A `help` command is added by default if your command has subcommands. It can be used alone, or with a subcommand name to show
-further help for the subcommand. These are effectively the same if the `shell` program has implicit help:
-
-```bash
-shell help
-shell --help
-
-shell help spawn
-shell spawn --help
-```
-
-### Custom help
-
-You can add extra text to be displayed along with the built-in help. 
-
-Example file: [custom-help](./examples/custom-help)
-
-```js
-program
-  .option('-f, --foo', 'enable some foo');
-
-program.addHelpText('after', `
-
-Example call:
-  $ custom-help --help`);
-```
-
-Yields the following help output:
-
-```Text
-Usage: custom-help [options]
-
-Options:
-  -f, --foo   enable some foo
-  -h, --help  display help for command
-
-Example call:
-  $ custom-help --help
-```
-
-The positions in order displayed are:
-
-- `beforeAll`: add to the program for a global banner or header
-- `before`: display extra information before built-in help
-- `after`: display extra information after built-in help
-- `afterAll`: add to the program for a global footer (epilog)
-
-The positions "beforeAll" and "afterAll" apply to the command and all its subcommands. 
-
-The second parameter can be a string, or a function returning a string. The function is passed a context object for your convenience. The properties are:
-
-- error: a boolean for whether the help is being displayed due to a usage error
-- command: the Command which is displaying the help
-
-### Display help from code
-
-`.help()`: display help information and exit immediately. You can optionally pass `{ error: true }` to display on stderr and exit with an error status.
-
-`.outputHelp()`: output help information without exiting. You can optionally pass `{ error: true }` to display on stderr.
-
-`.helpInformation()`: get the built-in command help information as a string for processing or displaying yourself.
-
-### .usage and .name
-
-These allow you to customise the usage description in the first line of the help. The name is otherwise
-deduced from the (full) program arguments. Given:
-
-```js
-program
-  .name("my-command")
-  .usage("[global options] command")
-```
-
-The help will start with:
-
-```Text
-Usage: my-command [global options] command
-```
-
-### .helpOption(flags, description)
-
-By default every command has a help option. Override the default help flags and description. Pass false to disable the built-in help option.
-
-```js
-program
-  .helpOption('-e, --HELP', 'read more information');
-```
-
-### .addHelpCommand()
-
-A help command is added by default if your command has subcommands. You can explicitly turn on or off the implicit help command with `.addHelpCommand()` and `.addHelpCommand(false)`.
-
-You can both turn on and customise the help command by supplying the name and description:
-
-```js
-program.addHelpCommand('assist [command]', 'show assistance');
-```
-
-### More configuration
-
-The built-in help is formatted using the Help class.
-You can configure the Help behaviour by modifying data properties and methods using `.configureHelp()`, or by subclassing using `.createHelp()` if you prefer.
-
-The data properties are:
-
-- `helpWidth`: specify the wrap width, useful for unit tests
-- `sortSubcommands`: sort the subcommands alphabetically
-- `sortOptions`: sort the options alphabetically
-
-There are methods getting the visible lists of arguments, options, and subcommands. There are methods for formatting the items in the lists, with each item having a _term_ and _description_. Take a look at `.formatHelp()` to see how they are used.
-
-Example file: [configure-help.js](./examples/configure-help.js)
-
-```
-program.configureHelp({
-  sortSubcommands: true,
-  subcommandTerm: (cmd) => cmd.name() // Just show the name, instead of short usage.
-});
-```
-
-## Custom event listeners
-
-You can execute custom actions by listening to command and option events.
-
-```js
-program.on('option:verbose', function () {
-  process.env.VERBOSE = this.opts().verbose;
-});
-
-program.on('command:*', function (operands) {
-  console.error(`error: unknown command '${operands[0]}'`);
-  const availableCommands = program.commands.map(cmd => cmd.name());
-  mySuggestBestMatch(operands[0], availableCommands);
-  process.exitCode = 1;
-});
-```
-
-## Bits and pieces
-
-### .parse() and .parseAsync()
-
-The first argument to `.parse` is the array of strings to parse. You may omit the parameter to implicitly use `process.argv`.
-
-If the arguments follow different conventions than node you can pass a `from` option in the second parameter:
-
-- 'node': default, `argv[0]` is the application and `argv[1]` is the script being run, with user parameters after that
-- 'electron': `argv[1]` varies depending on whether the electron application is packaged
-- 'user': all of the arguments from the user
-
-For example:
-
-```js
-program.parse(process.argv); // Explicit, node conventions
-program.parse(); // Implicit, and auto-detect electron
-program.parse(['-f', 'filename'], { from: 'user' });
-```
-
-### Parsing Configuration
-
-If the default parsing does not suit your needs, there are some behaviours to support other usage patterns.
-
-By default program options are recognised before and after subcommands. To only look for program options before subcommands, use `.enablePositionalOptions()`. This lets you use
-an option for a different purpose in subcommands.
-
-Example file: [positional-options.js](./examples/positional-options.js)
-
-With positional options, the `-b` is a program option in the first line and a subcommand option in the second line:
-
-```sh
-program -b subcommand
-program subcommand -b
-```
-
-By default options are recognised before and after command-arguments. To only process options that come
-before the command-arguments, use `.passThroughOptions()`. This lets you pass the  arguments and following options through to another program
-without needing to use `--` to end the option processing. 
-To use pass through options in a subcommand, the program needs to enable positional options.
-
-Example file: [pass-through-options.js](./examples/pass-through-options.js)
-
-With pass through options, the `--port=80` is a program option in the first line and passed through as a command-argument in the second line:
-
-```sh
-program --port=80 arg
-program arg --port=80
-```
-
-By default the option processing shows an error for an unknown option. To have an unknown option treated as an ordinary command-argument and continue looking for options, use `.allowUnknownOption()`. This lets you mix known and unknown options.
-
-By default the argument processing does not display an error for more command-arguments than expected.
-To display an error for excess arguments, use`.allowExcessArguments(false)`.
-
-### Legacy options as properties 
-
-Before Commander 7, the option values were stored as properties on the command.
-This was convenient to code but the downside was possible clashes with
-existing properties of `Command`. You can revert to the old behaviour to run unmodified legacy code by using `.storeOptionsAsProperties()`.
-
-```js
-program
-  .storeOptionsAsProperties()
-  .option('-d, --debug')
-  .action((commandAndOptions) => {
-    if (commandAndOptions.debug) {
-      console.error(`Called ${commandAndOptions.name()}`);
-    }
-  });
-```
-
-### TypeScript
-
-If you use `ts-node` and  stand-alone executable subcommands written as `.ts` files, you need to call your program through node to get the subcommands called correctly. e.g.
-
-```bash
-node -r ts-node/register pm.ts
-```
-
-### createCommand()
-
-This factory function creates a new command. It is exported and may be used instead of using `new`, like:
-
-```js
-const { createCommand } = require('commander');
-const program = createCommand();
-```
-
-`createCommand` is also a method of the Command object, and creates a new command rather than a subcommand. This gets used internally
-when creating subcommands using `.command()`, and you may override it to
-customise the new subcommand (example file [custom-command-class.js](./examples/custom-command-class.js)).
-
-### Node options such as `--harmony`
-
-You can enable `--harmony` option in two ways:
-
-- Use `#! /usr/bin/env node --harmony` in the subcommands scripts. (Note Windows does not support this pattern.)
-- Use the `--harmony` option when call the command, like `node --harmony examples/pm publish`. The `--harmony` option will be preserved when spawning subcommand process.
-
-### Debugging stand-alone executable subcommands
-
-An executable subcommand is launched as a separate child process.
-
-If you are using the node inspector for [debugging](https://nodejs.org/en/docs/guides/debugging-getting-started/) executable subcommands using `node --inspect` et al,
-the inspector port is incremented by 1 for the spawned subcommand.
-
-If you are using VSCode to debug executable subcommands you need to set the `"autoAttachChildProcesses": true` flag in your launch.json configuration.
-
-### Override exit and output handling
-
-By default Commander calls `process.exit` when it detects errors, or after displaying the help or version. You can override
-this behaviour and optionally supply a callback. The default override throws a `CommanderError`.
-
-The override callback is passed a `CommanderError` with properties `exitCode` number, `code` string, and `message`. The default override behaviour is to throw the error, except for async handling of executable subcommand completion which carries on. The normal display of error messages or version or help
-is not affected by the override which is called after the display.
-
-```js
-program.exitOverride();
-
-try {
-  program.parse(process.argv);
-} catch (err) {
-  // custom processing...
-}
-```
-
-By default Commander is configured for a command-line application and writes to stdout and stderr.
-You can modify this behaviour for custom applications. In addition, you can modify the display of error messages.
-
-Example file: [configure-output.js](./examples/configure-output.js)
-
-
-```js
-function errorColor(str) {
-  // Add ANSI escape codes to display text in red.
-  return `\x1b[31m${str}\x1b[0m`;
-}
-
-program
-  .configureOutput({
-    // Visibly override write routines as example!
-    writeOut: (str) => process.stdout.write(`[OUT] ${str}`),
-    writeErr: (str) => process.stdout.write(`[ERR] ${str}`),
-    // Highlight errors in color.
-    outputError: (str, write) => write(errorColor(str))
-  });
-```
-
-### Additional documentation
-
-There is more information available about:
-
-- [deprecated](./docs/deprecated.md) features still supported for backwards compatibility
-- [options taking varying arguments](./docs/options-taking-varying-arguments.md)
-
-## Examples
-
-In a single command program, you might not need an action handler.
-
-Example file: [pizza](./examples/pizza)
-
-```js
-const { program } = require('commander');
-
-program
-  .description('An application for pizza ordering')
-  .option('-p, --peppers', 'Add peppers')
-  .option('-c, --cheese <type>', 'Add the specified type of cheese', 'marble')
-  .option('-C, --no-cheese', 'You do not want any cheese');
-
-program.parse();
-
-const options = program.opts();
-console.log('you ordered a pizza with:');
-if (options.peppers) console.log('  - peppers');
-const cheese = !options.cheese ? 'no' : options.cheese;
-console.log('  - %s cheese', cheese);
-```
-
-In a multi-command program, you will have action handlers for each command (or stand-alone executables for the commands).
-
-Example file: [deploy](./examples/deploy)
-
-```js
-const { Command } = require('commander');
-const program = new Command();
-
-program
-  .version('0.0.1')
-  .option('-c, --config <path>', 'set config path', './deploy.conf');
-
-program
-  .command('setup [env]')
-  .description('run setup commands for all envs')
-  .option('-s, --setup_mode <mode>', 'Which setup mode to use', 'normal')
-  .action((env, options) => {
-    env = env || 'all';
-    console.log('read config from %s', program.opts().config);
-    console.log('setup for %s env(s) with %s mode', env, options.setup_mode);
-  });
-
-program
-  .command('exec <script>')
-  .alias('ex')
-  .description('execute the given remote cmd')
-  .option('-e, --exec_mode <mode>', 'Which exec mode to use', 'fast')
-  .action((script, options) => {
-    console.log('read config from %s', program.opts().config);
-    console.log('exec "%s" using %s mode and config %s', script, options.exec_mode, program.opts().config);
-  }).addHelpText('after', `
-Examples:
-  $ deploy exec sequential
-  $ deploy exec async`
-  );
-  
-program.parse(process.argv);
-```
-
-More samples can be found in the [examples](https://github.com/tj/commander.js/tree/master/examples) directory.
-
-## Support
-
-The current version of Commander is fully supported on Long Term Support versions of node, and requires at least node v10.
-(For older versions of node, use an older version of Commander. Commander version 2.x has the widest support.)
-
-The main forum for free and community support is the project [Issues](https://github.com/tj/commander.js/issues) on GitHub.
-
-### Commander for enterprise
-
-Available as part of the Tidelift Subscription
-
-The maintainers of Commander and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-commander?utm_source=npm-commander&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
Index: de_modules/commander/esm.mjs
===================================================================
--- node_modules/commander/esm.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import commander from './index.js';
-
-// wrapper to provide named exports for ESM.
-export const { program, Option, Command, CommanderError, InvalidOptionArgumentError, Help, createCommand } = commander;
Index: de_modules/commander/index.js
===================================================================
--- node_modules/commander/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2217 +1,0 @@
-/**
- * Module dependencies.
- */
-
-const EventEmitter = require('events').EventEmitter;
-const childProcess = require('child_process');
-const path = require('path');
-const fs = require('fs');
-
-// @ts-check
-
-// Although this is a class, methods are static in style to allow override using subclass or just functions.
-class Help {
-  constructor() {
-    this.helpWidth = undefined;
-    this.sortSubcommands = false;
-    this.sortOptions = false;
-  }
-
-  /**
-   * Get an array of the visible subcommands. Includes a placeholder for the implicit help command, if there is one.
-   *
-   * @param {Command} cmd
-   * @returns {Command[]}
-   */
-
-  visibleCommands(cmd) {
-    const visibleCommands = cmd.commands.filter(cmd => !cmd._hidden);
-    if (cmd._hasImplicitHelpCommand()) {
-      // Create a command matching the implicit help command.
-      const args = cmd._helpCommandnameAndArgs.split(/ +/);
-      const helpCommand = cmd.createCommand(args.shift())
-        .helpOption(false);
-      helpCommand.description(cmd._helpCommandDescription);
-      helpCommand._parseExpectedArgs(args);
-      visibleCommands.push(helpCommand);
-    }
-    if (this.sortSubcommands) {
-      visibleCommands.sort((a, b) => {
-        return a.name().localeCompare(b.name());
-      });
-    }
-    return visibleCommands;
-  }
-
-  /**
-   * Get an array of the visible options. Includes a placeholder for the implicit help option, if there is one.
-   *
-   * @param {Command} cmd
-   * @returns {Option[]}
-   */
-
-  visibleOptions(cmd) {
-    const visibleOptions = cmd.options.filter((option) => !option.hidden);
-    // Implicit help
-    const showShortHelpFlag = cmd._hasHelpOption && cmd._helpShortFlag && !cmd._findOption(cmd._helpShortFlag);
-    const showLongHelpFlag = cmd._hasHelpOption && !cmd._findOption(cmd._helpLongFlag);
-    if (showShortHelpFlag || showLongHelpFlag) {
-      let helpOption;
-      if (!showShortHelpFlag) {
-        helpOption = cmd.createOption(cmd._helpLongFlag, cmd._helpDescription);
-      } else if (!showLongHelpFlag) {
-        helpOption = cmd.createOption(cmd._helpShortFlag, cmd._helpDescription);
-      } else {
-        helpOption = cmd.createOption(cmd._helpFlags, cmd._helpDescription);
-      }
-      visibleOptions.push(helpOption);
-    }
-    if (this.sortOptions) {
-      const getSortKey = (option) => {
-        // WYSIWYG for order displayed in help with short before long, no special handling for negated.
-        return option.short ? option.short.replace(/^-/, '') : option.long.replace(/^--/, '');
-      };
-      visibleOptions.sort((a, b) => {
-        return getSortKey(a).localeCompare(getSortKey(b));
-      });
-    }
-    return visibleOptions;
-  }
-
-  /**
-   * Get an array of the arguments which have descriptions.
-   *
-   * @param {Command} cmd
-   * @returns {{ term: string, description:string }[]}
-   */
-
-  visibleArguments(cmd) {
-    if (cmd._argsDescription && cmd._args.length) {
-      return cmd._args.map((argument) => {
-        return { term: argument.name, description: cmd._argsDescription[argument.name] || '' };
-      }, 0);
-    }
-    return [];
-  }
-
-  /**
-   * Get the command term to show in the list of subcommands.
-   *
-   * @param {Command} cmd
-   * @returns {string}
-   */
-
-  subcommandTerm(cmd) {
-    // Legacy. Ignores custom usage string, and nested commands.
-    const args = cmd._args.map(arg => humanReadableArgName(arg)).join(' ');
-    return cmd._name +
-      (cmd._aliases[0] ? '|' + cmd._aliases[0] : '') +
-      (cmd.options.length ? ' [options]' : '') + // simplistic check for non-help option
-      (args ? ' ' + args : '');
-  }
-
-  /**
-   * Get the option term to show in the list of options.
-   *
-   * @param {Option} option
-   * @returns {string}
-   */
-
-  optionTerm(option) {
-    return option.flags;
-  }
-
-  /**
-   * Get the longest command term length.
-   *
-   * @param {Command} cmd
-   * @param {Help} helper
-   * @returns {number}
-   */
-
-  longestSubcommandTermLength(cmd, helper) {
-    return helper.visibleCommands(cmd).reduce((max, command) => {
-      return Math.max(max, helper.subcommandTerm(command).length);
-    }, 0);
-  };
-
-  /**
-   * Get the longest option term length.
-   *
-   * @param {Command} cmd
-   * @param {Help} helper
-   * @returns {number}
-   */
-
-  longestOptionTermLength(cmd, helper) {
-    return helper.visibleOptions(cmd).reduce((max, option) => {
-      return Math.max(max, helper.optionTerm(option).length);
-    }, 0);
-  };
-
-  /**
-   * Get the longest argument term length.
-   *
-   * @param {Command} cmd
-   * @param {Help} helper
-   * @returns {number}
-   */
-
-  longestArgumentTermLength(cmd, helper) {
-    return helper.visibleArguments(cmd).reduce((max, argument) => {
-      return Math.max(max, argument.term.length);
-    }, 0);
-  };
-
-  /**
-   * Get the command usage to be displayed at the top of the built-in help.
-   *
-   * @param {Command} cmd
-   * @returns {string}
-   */
-
-  commandUsage(cmd) {
-    // Usage
-    let cmdName = cmd._name;
-    if (cmd._aliases[0]) {
-      cmdName = cmdName + '|' + cmd._aliases[0];
-    }
-    let parentCmdNames = '';
-    for (let parentCmd = cmd.parent; parentCmd; parentCmd = parentCmd.parent) {
-      parentCmdNames = parentCmd.name() + ' ' + parentCmdNames;
-    }
-    return parentCmdNames + cmdName + ' ' + cmd.usage();
-  }
-
-  /**
-   * Get the description for the command.
-   *
-   * @param {Command} cmd
-   * @returns {string}
-   */
-
-  commandDescription(cmd) {
-    // @ts-ignore: overloaded return type
-    return cmd.description();
-  }
-
-  /**
-   * Get the command description to show in the list of subcommands.
-   *
-   * @param {Command} cmd
-   * @returns {string}
-   */
-
-  subcommandDescription(cmd) {
-    // @ts-ignore: overloaded return type
-    return cmd.description();
-  }
-
-  /**
-   * Get the option description to show in the list of options.
-   *
-   * @param {Option} option
-   * @return {string}
-   */
-
-  optionDescription(option) {
-    if (option.negate) {
-      return option.description;
-    }
-    const extraInfo = [];
-    if (option.argChoices) {
-      extraInfo.push(
-        // use stringify to match the display of the default value
-        `choices: ${option.argChoices.map((choice) => JSON.stringify(choice)).join(', ')}`);
-    }
-    if (option.defaultValue !== undefined) {
-      extraInfo.push(`default: ${option.defaultValueDescription || JSON.stringify(option.defaultValue)}`);
-    }
-    if (extraInfo.length > 0) {
-      return `${option.description} (${extraInfo.join(', ')})`;
-    }
-    return option.description;
-  };
-
-  /**
-   * Generate the built-in help text.
-   *
-   * @param {Command} cmd
-   * @param {Help} helper
-   * @returns {string}
-   */
-
-  formatHelp(cmd, helper) {
-    const termWidth = helper.padWidth(cmd, helper);
-    const helpWidth = helper.helpWidth || 80;
-    const itemIndentWidth = 2;
-    const itemSeparatorWidth = 2; // between term and description
-    function formatItem(term, description) {
-      if (description) {
-        const fullText = `${term.padEnd(termWidth + itemSeparatorWidth)}${description}`;
-        return helper.wrap(fullText, helpWidth - itemIndentWidth, termWidth + itemSeparatorWidth);
-      }
-      return term;
-    };
-    function formatList(textArray) {
-      return textArray.join('\n').replace(/^/gm, ' '.repeat(itemIndentWidth));
-    }
-
-    // Usage
-    let output = [`Usage: ${helper.commandUsage(cmd)}`, ''];
-
-    // Description
-    const commandDescription = helper.commandDescription(cmd);
-    if (commandDescription.length > 0) {
-      output = output.concat([commandDescription, '']);
-    }
-
-    // Arguments
-    const argumentList = helper.visibleArguments(cmd).map((argument) => {
-      return formatItem(argument.term, argument.description);
-    });
-    if (argumentList.length > 0) {
-      output = output.concat(['Arguments:', formatList(argumentList), '']);
-    }
-
-    // Options
-    const optionList = helper.visibleOptions(cmd).map((option) => {
-      return formatItem(helper.optionTerm(option), helper.optionDescription(option));
-    });
-    if (optionList.length > 0) {
-      output = output.concat(['Options:', formatList(optionList), '']);
-    }
-
-    // Commands
-    const commandList = helper.visibleCommands(cmd).map((cmd) => {
-      return formatItem(helper.subcommandTerm(cmd), helper.subcommandDescription(cmd));
-    });
-    if (commandList.length > 0) {
-      output = output.concat(['Commands:', formatList(commandList), '']);
-    }
-
-    return output.join('\n');
-  }
-
-  /**
-   * Calculate the pad width from the maximum term length.
-   *
-   * @param {Command} cmd
-   * @param {Help} helper
-   * @returns {number}
-   */
-
-  padWidth(cmd, helper) {
-    return Math.max(
-      helper.longestOptionTermLength(cmd, helper),
-      helper.longestSubcommandTermLength(cmd, helper),
-      helper.longestArgumentTermLength(cmd, helper)
-    );
-  };
-
-  /**
-   * Wrap the given string to width characters per line, with lines after the first indented.
-   * Do not wrap if insufficient room for wrapping (minColumnWidth), or string is manually formatted.
-   *
-   * @param {string} str
-   * @param {number} width
-   * @param {number} indent
-   * @param {number} [minColumnWidth=40]
-   * @return {string}
-   *
-   */
-
-  wrap(str, width, indent, minColumnWidth = 40) {
-    // Detect manually wrapped and indented strings by searching for line breaks
-    // followed by multiple spaces/tabs.
-    if (str.match(/[\n]\s+/)) return str;
-    // Do not wrap if not enough room for a wrapped column of text (as could end up with a word per line).
-    const columnWidth = width - indent;
-    if (columnWidth < minColumnWidth) return str;
-
-    const leadingStr = str.substr(0, indent);
-    const columnText = str.substr(indent);
-
-    const indentString = ' '.repeat(indent);
-    const regex = new RegExp('.{1,' + (columnWidth - 1) + '}([\\s\u200B]|$)|[^\\s\u200B]+?([\\s\u200B]|$)', 'g');
-    const lines = columnText.match(regex) || [];
-    return leadingStr + lines.map((line, i) => {
-      if (line.slice(-1) === '\n') {
-        line = line.slice(0, line.length - 1);
-      }
-      return ((i > 0) ? indentString : '') + line.trimRight();
-    }).join('\n');
-  }
-}
-
-class Option {
-  /**
-   * Initialize a new `Option` with the given `flags` and `description`.
-   *
-   * @param {string} flags
-   * @param {string} [description]
-   */
-
-  constructor(flags, description) {
-    this.flags = flags;
-    this.description = description || '';
-
-    this.required = flags.includes('<'); // A value must be supplied when the option is specified.
-    this.optional = flags.includes('['); // A value is optional when the option is specified.
-    // variadic test ignores <value,...> et al which might be used to describe custom splitting of single argument
-    this.variadic = /\w\.\.\.[>\]]$/.test(flags); // The option can take multiple values.
-    this.mandatory = false; // The option must have a value after parsing, which usually means it must be specified on command line.
-    const optionFlags = _parseOptionFlags(flags);
-    this.short = optionFlags.shortFlag;
-    this.long = optionFlags.longFlag;
-    this.negate = false;
-    if (this.long) {
-      this.negate = this.long.startsWith('--no-');
-    }
-    this.defaultValue = undefined;
-    this.defaultValueDescription = undefined;
-    this.parseArg = undefined;
-    this.hidden = false;
-    this.argChoices = undefined;
-  }
-
-  /**
-   * Set the default value, and optionally supply the description to be displayed in the help.
-   *
-   * @param {any} value
-   * @param {string} [description]
-   * @return {Option}
-   */
-
-  default(value, description) {
-    this.defaultValue = value;
-    this.defaultValueDescription = description;
-    return this;
-  };
-
-  /**
-   * Set the custom handler for processing CLI option arguments into option values.
-   *
-   * @param {Function} [fn]
-   * @return {Option}
-   */
-
-  argParser(fn) {
-    this.parseArg = fn;
-    return this;
-  };
-
-  /**
-   * Whether the option is mandatory and must have a value after parsing.
-   *
-   * @param {boolean} [mandatory=true]
-   * @return {Option}
-   */
-
-  makeOptionMandatory(mandatory = true) {
-    this.mandatory = !!mandatory;
-    return this;
-  };
-
-  /**
-   * Hide option in help.
-   *
-   * @param {boolean} [hide=true]
-   * @return {Option}
-   */
-
-  hideHelp(hide = true) {
-    this.hidden = !!hide;
-    return this;
-  };
-
-  /**
-   * @api private
-   */
-
-  _concatValue(value, previous) {
-    if (previous === this.defaultValue || !Array.isArray(previous)) {
-      return [value];
-    }
-
-    return previous.concat(value);
-  }
-
-  /**
-   * Only allow option value to be one of choices.
-   *
-   * @param {string[]} values
-   * @return {Option}
-   */
-
-  choices(values) {
-    this.argChoices = values;
-    this.parseArg = (arg, previous) => {
-      if (!values.includes(arg)) {
-        throw new InvalidOptionArgumentError(`Allowed choices are ${values.join(', ')}.`);
-      }
-      if (this.variadic) {
-        return this._concatValue(arg, previous);
-      }
-      return arg;
-    };
-    return this;
-  };
-
-  /**
-   * Return option name.
-   *
-   * @return {string}
-   */
-
-  name() {
-    if (this.long) {
-      return this.long.replace(/^--/, '');
-    }
-    return this.short.replace(/^-/, '');
-  };
-
-  /**
-   * Return option name, in a camelcase format that can be used
-   * as a object attribute key.
-   *
-   * @return {string}
-   * @api private
-   */
-
-  attributeName() {
-    return camelcase(this.name().replace(/^no-/, ''));
-  };
-
-  /**
-   * Check if `arg` matches the short or long flag.
-   *
-   * @param {string} arg
-   * @return {boolean}
-   * @api private
-   */
-
-  is(arg) {
-    return this.short === arg || this.long === arg;
-  };
-}
-
-/**
- * CommanderError class
- * @class
- */
-class CommanderError extends Error {
-  /**
-   * Constructs the CommanderError class
-   * @param {number} exitCode suggested exit code which could be used with process.exit
-   * @param {string} code an id string representing the error
-   * @param {string} message human-readable description of the error
-   * @constructor
-   */
-  constructor(exitCode, code, message) {
-    super(message);
-    // properly capture stack trace in Node.js
-    Error.captureStackTrace(this, this.constructor);
-    this.name = this.constructor.name;
-    this.code = code;
-    this.exitCode = exitCode;
-    this.nestedError = undefined;
-  }
-}
-
-/**
- * InvalidOptionArgumentError class
- * @class
- */
-class InvalidOptionArgumentError extends CommanderError {
-  /**
-   * Constructs the InvalidOptionArgumentError class
-   * @param {string} [message] explanation of why argument is invalid
-   * @constructor
-   */
-  constructor(message) {
-    super(1, 'commander.invalidOptionArgument', message);
-    // properly capture stack trace in Node.js
-    Error.captureStackTrace(this, this.constructor);
-    this.name = this.constructor.name;
-  }
-}
-
-class Command extends EventEmitter {
-  /**
-   * Initialize a new `Command`.
-   *
-   * @param {string} [name]
-   */
-
-  constructor(name) {
-    super();
-    this.commands = [];
-    this.options = [];
-    this.parent = null;
-    this._allowUnknownOption = false;
-    this._allowExcessArguments = true;
-    this._args = [];
-    this.rawArgs = null;
-    this._scriptPath = null;
-    this._name = name || '';
-    this._optionValues = {};
-    this._storeOptionsAsProperties = false;
-    this._actionResults = [];
-    this._actionHandler = null;
-    this._executableHandler = false;
-    this._executableFile = null; // custom name for executable
-    this._defaultCommandName = null;
-    this._exitCallback = null;
-    this._aliases = [];
-    this._combineFlagAndOptionalValue = true;
-    this._description = '';
-    this._argsDescription = undefined;
-    this._enablePositionalOptions = false;
-    this._passThroughOptions = false;
-
-    // see .configureOutput() for docs
-    this._outputConfiguration = {
-      writeOut: (str) => process.stdout.write(str),
-      writeErr: (str) => process.stderr.write(str),
-      getOutHelpWidth: () => process.stdout.isTTY ? process.stdout.columns : undefined,
-      getErrHelpWidth: () => process.stderr.isTTY ? process.stderr.columns : undefined,
-      outputError: (str, write) => write(str)
-    };
-
-    this._hidden = false;
-    this._hasHelpOption = true;
-    this._helpFlags = '-h, --help';
-    this._helpDescription = 'display help for command';
-    this._helpShortFlag = '-h';
-    this._helpLongFlag = '--help';
-    this._addImplicitHelpCommand = undefined; // Deliberately undefined, not decided whether true or false
-    this._helpCommandName = 'help';
-    this._helpCommandnameAndArgs = 'help [command]';
-    this._helpCommandDescription = 'display help for command';
-    this._helpConfiguration = {};
-  }
-
-  /**
-   * Define a command.
-   *
-   * There are two styles of command: pay attention to where to put the description.
-   *
-   * Examples:
-   *
-   *      // Command implemented using action handler (description is supplied separately to `.command`)
-   *      program
-   *        .command('clone <source> [destination]')
-   *        .description('clone a repository into a newly created directory')
-   *        .action((source, destination) => {
-   *          console.log('clone command called');
-   *        });
-   *
-   *      // Command implemented using separate executable file (description is second parameter to `.command`)
-   *      program
-   *        .command('start <service>', 'start named service')
-   *        .command('stop [service]', 'stop named service, or all if no name supplied');
-   *
-   * @param {string} nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...`
-   * @param {Object|string} [actionOptsOrExecDesc] - configuration options (for action), or description (for executable)
-   * @param {Object} [execOpts] - configuration options (for executable)
-   * @return {Command} returns new command for action handler, or `this` for executable command
-   */
-
-  command(nameAndArgs, actionOptsOrExecDesc, execOpts) {
-    let desc = actionOptsOrExecDesc;
-    let opts = execOpts;
-    if (typeof desc === 'object' && desc !== null) {
-      opts = desc;
-      desc = null;
-    }
-    opts = opts || {};
-    const args = nameAndArgs.split(/ +/);
-    const cmd = this.createCommand(args.shift());
-
-    if (desc) {
-      cmd.description(desc);
-      cmd._executableHandler = true;
-    }
-    if (opts.isDefault) this._defaultCommandName = cmd._name;
-
-    cmd._outputConfiguration = this._outputConfiguration;
-
-    cmd._hidden = !!(opts.noHelp || opts.hidden); // noHelp is deprecated old name for hidden
-    cmd._hasHelpOption = this._hasHelpOption;
-    cmd._helpFlags = this._helpFlags;
-    cmd._helpDescription = this._helpDescription;
-    cmd._helpShortFlag = this._helpShortFlag;
-    cmd._helpLongFlag = this._helpLongFlag;
-    cmd._helpCommandName = this._helpCommandName;
-    cmd._helpCommandnameAndArgs = this._helpCommandnameAndArgs;
-    cmd._helpCommandDescription = this._helpCommandDescription;
-    cmd._helpConfiguration = this._helpConfiguration;
-    cmd._exitCallback = this._exitCallback;
-    cmd._storeOptionsAsProperties = this._storeOptionsAsProperties;
-    cmd._combineFlagAndOptionalValue = this._combineFlagAndOptionalValue;
-    cmd._allowExcessArguments = this._allowExcessArguments;
-    cmd._enablePositionalOptions = this._enablePositionalOptions;
-
-    cmd._executableFile = opts.executableFile || null; // Custom name for executable file, set missing to null to match constructor
-    this.commands.push(cmd);
-    cmd._parseExpectedArgs(args);
-    cmd.parent = this;
-
-    if (desc) return this;
-    return cmd;
-  };
-
-  /**
-   * Factory routine to create a new unattached command.
-   *
-   * See .command() for creating an attached subcommand, which uses this routine to
-   * create the command. You can override createCommand to customise subcommands.
-   *
-   * @param {string} [name]
-   * @return {Command} new command
-   */
-
-  createCommand(name) {
-    return new Command(name);
-  };
-
-  /**
-   * You can customise the help with a subclass of Help by overriding createHelp,
-   * or by overriding Help properties using configureHelp().
-   *
-   * @return {Help}
-   */
-
-  createHelp() {
-    return Object.assign(new Help(), this.configureHelp());
-  };
-
-  /**
-   * You can customise the help by overriding Help properties using configureHelp(),
-   * or with a subclass of Help by overriding createHelp().
-   *
-   * @param {Object} [configuration] - configuration options
-   * @return {Command|Object} `this` command for chaining, or stored configuration
-   */
-
-  configureHelp(configuration) {
-    if (configuration === undefined) return this._helpConfiguration;
-
-    this._helpConfiguration = configuration;
-    return this;
-  }
-
-  /**
-   * The default output goes to stdout and stderr. You can customise this for special
-   * applications. You can also customise the display of errors by overriding outputError.
-   *
-   * The configuration properties are all functions:
-   *
-   *    // functions to change where being written, stdout and stderr
-   *    writeOut(str)
-   *    writeErr(str)
-   *    // matching functions to specify width for wrapping help
-   *    getOutHelpWidth()
-   *    getErrHelpWidth()
-   *    // functions based on what is being written out
-   *    outputError(str, write) // used for displaying errors, and not used for displaying help
-   *
-   * @param {Object} [configuration] - configuration options
-   * @return {Command|Object} `this` command for chaining, or stored configuration
-   */
-
-  configureOutput(configuration) {
-    if (configuration === undefined) return this._outputConfiguration;
-
-    Object.assign(this._outputConfiguration, configuration);
-    return this;
-  }
-
-  /**
-   * Add a prepared subcommand.
-   *
-   * See .command() for creating an attached subcommand which inherits settings from its parent.
-   *
-   * @param {Command} cmd - new subcommand
-   * @param {Object} [opts] - configuration options
-   * @return {Command} `this` command for chaining
-   */
-
-  addCommand(cmd, opts) {
-    if (!cmd._name) throw new Error('Command passed to .addCommand() must have a name');
-
-    // To keep things simple, block automatic name generation for deeply nested executables.
-    // Fail fast and detect when adding rather than later when parsing.
-    function checkExplicitNames(commandArray) {
-      commandArray.forEach((cmd) => {
-        if (cmd._executableHandler && !cmd._executableFile) {
-          throw new Error(`Must specify executableFile for deeply nested executable: ${cmd.name()}`);
-        }
-        checkExplicitNames(cmd.commands);
-      });
-    }
-    checkExplicitNames(cmd.commands);
-
-    opts = opts || {};
-    if (opts.isDefault) this._defaultCommandName = cmd._name;
-    if (opts.noHelp || opts.hidden) cmd._hidden = true; // modifying passed command due to existing implementation
-
-    this.commands.push(cmd);
-    cmd.parent = this;
-    return this;
-  };
-
-  /**
-   * Define argument syntax for the command.
-   */
-
-  arguments(desc) {
-    return this._parseExpectedArgs(desc.split(/ +/));
-  };
-
-  /**
-   * Override default decision whether to add implicit help command.
-   *
-   *    addHelpCommand() // force on
-   *    addHelpCommand(false); // force off
-   *    addHelpCommand('help [cmd]', 'display help for [cmd]'); // force on with custom details
-   *
-   * @return {Command} `this` command for chaining
-   */
-
-  addHelpCommand(enableOrNameAndArgs, description) {
-    if (enableOrNameAndArgs === false) {
-      this._addImplicitHelpCommand = false;
-    } else {
-      this._addImplicitHelpCommand = true;
-      if (typeof enableOrNameAndArgs === 'string') {
-        this._helpCommandName = enableOrNameAndArgs.split(' ')[0];
-        this._helpCommandnameAndArgs = enableOrNameAndArgs;
-      }
-      this._helpCommandDescription = description || this._helpCommandDescription;
-    }
-    return this;
-  };
-
-  /**
-   * @return {boolean}
-   * @api private
-   */
-
-  _hasImplicitHelpCommand() {
-    if (this._addImplicitHelpCommand === undefined) {
-      return this.commands.length && !this._actionHandler && !this._findCommand('help');
-    }
-    return this._addImplicitHelpCommand;
-  };
-
-  /**
-   * Parse expected `args`.
-   *
-   * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
-   *
-   * @param {Array} args
-   * @return {Command} `this` command for chaining
-   * @api private
-   */
-
-  _parseExpectedArgs(args) {
-    if (!args.length) return;
-    args.forEach((arg) => {
-      const argDetails = {
-        required: false,
-        name: '',
-        variadic: false
-      };
-
-      switch (arg[0]) {
-        case '<':
-          argDetails.required = true;
-          argDetails.name = arg.slice(1, -1);
-          break;
-        case '[':
-          argDetails.name = arg.slice(1, -1);
-          break;
-      }
-
-      if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {
-        argDetails.variadic = true;
-        argDetails.name = argDetails.name.slice(0, -3);
-      }
-      if (argDetails.name) {
-        this._args.push(argDetails);
-      }
-    });
-    this._args.forEach((arg, i) => {
-      if (arg.variadic && i < this._args.length - 1) {
-        throw new Error(`only the last argument can be variadic '${arg.name}'`);
-      }
-    });
-    return this;
-  };
-
-  /**
-   * Register callback to use as replacement for calling process.exit.
-   *
-   * @param {Function} [fn] optional callback which will be passed a CommanderError, defaults to throwing
-   * @return {Command} `this` command for chaining
-   */
-
-  exitOverride(fn) {
-    if (fn) {
-      this._exitCallback = fn;
-    } else {
-      this._exitCallback = (err) => {
-        if (err.code !== 'commander.executeSubCommandAsync') {
-          throw err;
-        } else {
-          // Async callback from spawn events, not useful to throw.
-        }
-      };
-    }
-    return this;
-  };
-
-  /**
-   * Call process.exit, and _exitCallback if defined.
-   *
-   * @param {number} exitCode exit code for using with process.exit
-   * @param {string} code an id string representing the error
-   * @param {string} message human-readable description of the error
-   * @return never
-   * @api private
-   */
-
-  _exit(exitCode, code, message) {
-    if (this._exitCallback) {
-      this._exitCallback(new CommanderError(exitCode, code, message));
-      // Expecting this line is not reached.
-    }
-    process.exit(exitCode);
-  };
-
-  /**
-   * Register callback `fn` for the command.
-   *
-   * Examples:
-   *
-   *      program
-   *        .command('help')
-   *        .description('display verbose help')
-   *        .action(function() {
-   *           // output help here
-   *        });
-   *
-   * @param {Function} fn
-   * @return {Command} `this` command for chaining
-   */
-
-  action(fn) {
-    const listener = (args) => {
-      // The .action callback takes an extra parameter which is the command or options.
-      const expectedArgsCount = this._args.length;
-      const actionArgs = args.slice(0, expectedArgsCount);
-      if (this._storeOptionsAsProperties) {
-        actionArgs[expectedArgsCount] = this; // backwards compatible "options"
-      } else {
-        actionArgs[expectedArgsCount] = this.opts();
-      }
-      actionArgs.push(this);
-
-      const actionResult = fn.apply(this, actionArgs);
-      // Remember result in case it is async. Assume parseAsync getting called on root.
-      let rootCommand = this;
-      while (rootCommand.parent) {
-        rootCommand = rootCommand.parent;
-      }
-      rootCommand._actionResults.push(actionResult);
-    };
-    this._actionHandler = listener;
-    return this;
-  };
-
-  /**
-   * Factory routine to create a new unattached option.
-   *
-   * See .option() for creating an attached option, which uses this routine to
-   * create the option. You can override createOption to return a custom option.
-   *
-   * @param {string} flags
-   * @param {string} [description]
-   * @return {Option} new option
-   */
-
-  createOption(flags, description) {
-    return new Option(flags, description);
-  };
-
-  /**
-   * Add an option.
-   *
-   * @param {Option} option
-   * @return {Command} `this` command for chaining
-   */
-  addOption(option) {
-    const oname = option.name();
-    const name = option.attributeName();
-
-    let defaultValue = option.defaultValue;
-
-    // preassign default value for --no-*, [optional], <required>, or plain flag if boolean value
-    if (option.negate || option.optional || option.required || typeof defaultValue === 'boolean') {
-      // when --no-foo we make sure default is true, unless a --foo option is already defined
-      if (option.negate) {
-        const positiveLongFlag = option.long.replace(/^--no-/, '--');
-        defaultValue = this._findOption(positiveLongFlag) ? this._getOptionValue(name) : true;
-      }
-      // preassign only if we have a default
-      if (defaultValue !== undefined) {
-        this._setOptionValue(name, defaultValue);
-      }
-    }
-
-    // register the option
-    this.options.push(option);
-
-    // when it's passed assign the value
-    // and conditionally invoke the callback
-    this.on('option:' + oname, (val) => {
-      const oldValue = this._getOptionValue(name);
-
-      // custom processing
-      if (val !== null && option.parseArg) {
-        try {
-          val = option.parseArg(val, oldValue === undefined ? defaultValue : oldValue);
-        } catch (err) {
-          if (err.code === 'commander.invalidOptionArgument') {
-            const message = `error: option '${option.flags}' argument '${val}' is invalid. ${err.message}`;
-            this._displayError(err.exitCode, err.code, message);
-          }
-          throw err;
-        }
-      } else if (val !== null && option.variadic) {
-        val = option._concatValue(val, oldValue);
-      }
-
-      // unassigned or boolean value
-      if (typeof oldValue === 'boolean' || typeof oldValue === 'undefined') {
-        // if no value, negate false, and we have a default, then use it!
-        if (val == null) {
-          this._setOptionValue(name, option.negate
-            ? false
-            : defaultValue || true);
-        } else {
-          this._setOptionValue(name, val);
-        }
-      } else if (val !== null) {
-        // reassign
-        this._setOptionValue(name, option.negate ? false : val);
-      }
-    });
-
-    return this;
-  }
-
-  /**
-   * Internal implementation shared by .option() and .requiredOption()
-   *
-   * @api private
-   */
-  _optionEx(config, flags, description, fn, defaultValue) {
-    const option = this.createOption(flags, description);
-    option.makeOptionMandatory(!!config.mandatory);
-    if (typeof fn === 'function') {
-      option.default(defaultValue).argParser(fn);
-    } else if (fn instanceof RegExp) {
-      // deprecated
-      const regex = fn;
-      fn = (val, def) => {
-        const m = regex.exec(val);
-        return m ? m[0] : def;
-      };
-      option.default(defaultValue).argParser(fn);
-    } else {
-      option.default(fn);
-    }
-
-    return this.addOption(option);
-  }
-
-  /**
-   * Define option with `flags`, `description` and optional
-   * coercion `fn`.
-   *
-   * The `flags` string contains the short and/or long flags,
-   * separated by comma, a pipe or space. The following are all valid
-   * all will output this way when `--help` is used.
-   *
-   *    "-p, --pepper"
-   *    "-p|--pepper"
-   *    "-p --pepper"
-   *
-   * Examples:
-   *
-   *     // simple boolean defaulting to undefined
-   *     program.option('-p, --pepper', 'add pepper');
-   *
-   *     program.pepper
-   *     // => undefined
-   *
-   *     --pepper
-   *     program.pepper
-   *     // => true
-   *
-   *     // simple boolean defaulting to true (unless non-negated option is also defined)
-   *     program.option('-C, --no-cheese', 'remove cheese');
-   *
-   *     program.cheese
-   *     // => true
-   *
-   *     --no-cheese
-   *     program.cheese
-   *     // => false
-   *
-   *     // required argument
-   *     program.option('-C, --chdir <path>', 'change the working directory');
-   *
-   *     --chdir /tmp
-   *     program.chdir
-   *     // => "/tmp"
-   *
-   *     // optional argument
-   *     program.option('-c, --cheese [type]', 'add cheese [marble]');
-   *
-   * @param {string} flags
-   * @param {string} [description]
-   * @param {Function|*} [fn] - custom option processing function or default value
-   * @param {*} [defaultValue]
-   * @return {Command} `this` command for chaining
-   */
-
-  option(flags, description, fn, defaultValue) {
-    return this._optionEx({}, flags, description, fn, defaultValue);
-  };
-
-  /**
-  * Add a required option which must have a value after parsing. This usually means
-  * the option must be specified on the command line. (Otherwise the same as .option().)
-  *
-  * The `flags` string contains the short and/or long flags, separated by comma, a pipe or space.
-  *
-  * @param {string} flags
-  * @param {string} [description]
-  * @param {Function|*} [fn] - custom option processing function or default value
-  * @param {*} [defaultValue]
-  * @return {Command} `this` command for chaining
-  */
-
-  requiredOption(flags, description, fn, defaultValue) {
-    return this._optionEx({ mandatory: true }, flags, description, fn, defaultValue);
-  };
-
-  /**
-   * Alter parsing of short flags with optional values.
-   *
-   * Examples:
-   *
-   *    // for `.option('-f,--flag [value]'):
-   *    .combineFlagAndOptionalValue(true)  // `-f80` is treated like `--flag=80`, this is the default behaviour
-   *    .combineFlagAndOptionalValue(false) // `-fb` is treated like `-f -b`
-   *
-   * @param {Boolean} [combine=true] - if `true` or omitted, an optional value can be specified directly after the flag.
-   */
-  combineFlagAndOptionalValue(combine = true) {
-    this._combineFlagAndOptionalValue = !!combine;
-    return this;
-  };
-
-  /**
-   * Allow unknown options on the command line.
-   *
-   * @param {Boolean} [allowUnknown=true] - if `true` or omitted, no error will be thrown
-   * for unknown options.
-   */
-  allowUnknownOption(allowUnknown = true) {
-    this._allowUnknownOption = !!allowUnknown;
-    return this;
-  };
-
-  /**
-   * Allow excess command-arguments on the command line. Pass false to make excess arguments an error.
-   *
-   * @param {Boolean} [allowExcess=true] - if `true` or omitted, no error will be thrown
-   * for excess arguments.
-   */
-  allowExcessArguments(allowExcess = true) {
-    this._allowExcessArguments = !!allowExcess;
-    return this;
-  };
-
-  /**
-   * Enable positional options. Positional means global options are specified before subcommands which lets
-   * subcommands reuse the same option names, and also enables subcommands to turn on passThroughOptions.
-   * The default behaviour is non-positional and global options may appear anywhere on the command line.
-   *
-   * @param {Boolean} [positional=true]
-   */
-  enablePositionalOptions(positional = true) {
-    this._enablePositionalOptions = !!positional;
-    return this;
-  };
-
-  /**
-   * Pass through options that come after command-arguments rather than treat them as command-options,
-   * so actual command-options come before command-arguments. Turning this on for a subcommand requires
-   * positional options to have been enabled on the program (parent commands).
-   * The default behaviour is non-positional and options may appear before or after command-arguments.
-   *
-   * @param {Boolean} [passThrough=true]
-   * for unknown options.
-   */
-  passThroughOptions(passThrough = true) {
-    this._passThroughOptions = !!passThrough;
-    if (!!this.parent && passThrough && !this.parent._enablePositionalOptions) {
-      throw new Error('passThroughOptions can not be used without turning on enablePositionalOptions for parent command(s)');
-    }
-    return this;
-  };
-
-  /**
-    * Whether to store option values as properties on command object,
-    * or store separately (specify false). In both cases the option values can be accessed using .opts().
-    *
-    * @param {boolean} [storeAsProperties=true]
-    * @return {Command} `this` command for chaining
-    */
-
-  storeOptionsAsProperties(storeAsProperties = true) {
-    this._storeOptionsAsProperties = !!storeAsProperties;
-    if (this.options.length) {
-      throw new Error('call .storeOptionsAsProperties() before adding options');
-    }
-    return this;
-  };
-
-  /**
-   * Store option value
-   *
-   * @param {string} key
-   * @param {Object} value
-   * @api private
-   */
-
-  _setOptionValue(key, value) {
-    if (this._storeOptionsAsProperties) {
-      this[key] = value;
-    } else {
-      this._optionValues[key] = value;
-    }
-  };
-
-  /**
-   * Retrieve option value
-   *
-   * @param {string} key
-   * @return {Object} value
-   * @api private
-   */
-
-  _getOptionValue(key) {
-    if (this._storeOptionsAsProperties) {
-      return this[key];
-    }
-    return this._optionValues[key];
-  };
-
-  /**
-   * Parse `argv`, setting options and invoking commands when defined.
-   *
-   * The default expectation is that the arguments are from node and have the application as argv[0]
-   * and the script being run in argv[1], with user parameters after that.
-   *
-   * Examples:
-   *
-   *      program.parse(process.argv);
-   *      program.parse(); // implicitly use process.argv and auto-detect node vs electron conventions
-   *      program.parse(my-args, { from: 'user' }); // just user supplied arguments, nothing special about argv[0]
-   *
-   * @param {string[]} [argv] - optional, defaults to process.argv
-   * @param {Object} [parseOptions] - optionally specify style of options with from: node/user/electron
-   * @param {string} [parseOptions.from] - where the args are from: 'node', 'user', 'electron'
-   * @return {Command} `this` command for chaining
-   */
-
-  parse(argv, parseOptions) {
-    if (argv !== undefined && !Array.isArray(argv)) {
-      throw new Error('first parameter to parse must be array or undefined');
-    }
-    parseOptions = parseOptions || {};
-
-    // Default to using process.argv
-    if (argv === undefined) {
-      argv = process.argv;
-      // @ts-ignore: unknown property
-      if (process.versions && process.versions.electron) {
-        parseOptions.from = 'electron';
-      }
-    }
-    this.rawArgs = argv.slice();
-
-    // make it a little easier for callers by supporting various argv conventions
-    let userArgs;
-    switch (parseOptions.from) {
-      case undefined:
-      case 'node':
-        this._scriptPath = argv[1];
-        userArgs = argv.slice(2);
-        break;
-      case 'electron':
-        // @ts-ignore: unknown property
-        if (process.defaultApp) {
-          this._scriptPath = argv[1];
-          userArgs = argv.slice(2);
-        } else {
-          userArgs = argv.slice(1);
-        }
-        break;
-      case 'user':
-        userArgs = argv.slice(0);
-        break;
-      default:
-        throw new Error(`unexpected parse option { from: '${parseOptions.from}' }`);
-    }
-    if (!this._scriptPath && require.main) {
-      this._scriptPath = require.main.filename;
-    }
-
-    // Guess name, used in usage in help.
-    this._name = this._name || (this._scriptPath && path.basename(this._scriptPath, path.extname(this._scriptPath)));
-
-    // Let's go!
-    this._parseCommand([], userArgs);
-
-    return this;
-  };
-
-  /**
-   * Parse `argv`, setting options and invoking commands when defined.
-   *
-   * Use parseAsync instead of parse if any of your action handlers are async. Returns a Promise.
-   *
-   * The default expectation is that the arguments are from node and have the application as argv[0]
-   * and the script being run in argv[1], with user parameters after that.
-   *
-   * Examples:
-   *
-   *      program.parseAsync(process.argv);
-   *      program.parseAsync(); // implicitly use process.argv and auto-detect node vs electron conventions
-   *      program.parseAsync(my-args, { from: 'user' }); // just user supplied arguments, nothing special about argv[0]
-   *
-   * @param {string[]} [argv]
-   * @param {Object} [parseOptions]
-   * @param {string} parseOptions.from - where the args are from: 'node', 'user', 'electron'
-   * @return {Promise}
-   */
-
-  parseAsync(argv, parseOptions) {
-    this.parse(argv, parseOptions);
-    return Promise.all(this._actionResults).then(() => this);
-  };
-
-  /**
-   * Execute a sub-command executable.
-   *
-   * @api private
-   */
-
-  _executeSubCommand(subcommand, args) {
-    args = args.slice();
-    let launchWithNode = false; // Use node for source targets so do not need to get permissions correct, and on Windows.
-    const sourceExt = ['.js', '.ts', '.tsx', '.mjs', '.cjs'];
-
-    // Not checking for help first. Unlikely to have mandatory and executable, and can't robustly test for help flags in external command.
-    this._checkForMissingMandatoryOptions();
-
-    // Want the entry script as the reference for command name and directory for searching for other files.
-    let scriptPath = this._scriptPath;
-    // Fallback in case not set, due to how Command created or called.
-    if (!scriptPath && require.main) {
-      scriptPath = require.main.filename;
-    }
-
-    let baseDir;
-    try {
-      const resolvedLink = fs.realpathSync(scriptPath);
-      baseDir = path.dirname(resolvedLink);
-    } catch (e) {
-      baseDir = '.'; // dummy, probably not going to find executable!
-    }
-
-    // name of the subcommand, like `pm-install`
-    let bin = path.basename(scriptPath, path.extname(scriptPath)) + '-' + subcommand._name;
-    if (subcommand._executableFile) {
-      bin = subcommand._executableFile;
-    }
-
-    const localBin = path.join(baseDir, bin);
-    if (fs.existsSync(localBin)) {
-      // prefer local `./<bin>` to bin in the $PATH
-      bin = localBin;
-    } else {
-      // Look for source files.
-      sourceExt.forEach((ext) => {
-        if (fs.existsSync(`${localBin}${ext}`)) {
-          bin = `${localBin}${ext}`;
-        }
-      });
-    }
-    launchWithNode = sourceExt.includes(path.extname(bin));
-
-    let proc;
-    if (process.platform !== 'win32') {
-      if (launchWithNode) {
-        args.unshift(bin);
-        // add executable arguments to spawn
-        args = incrementNodeInspectorPort(process.execArgv).concat(args);
-
-        proc = childProcess.spawn(process.argv[0], args, { stdio: 'inherit' });
-      } else {
-        proc = childProcess.spawn(bin, args, { stdio: 'inherit' });
-      }
-    } else {
-      args.unshift(bin);
-      // add executable arguments to spawn
-      args = incrementNodeInspectorPort(process.execArgv).concat(args);
-      proc = childProcess.spawn(process.execPath, args, { stdio: 'inherit' });
-    }
-
-    const signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP'];
-    signals.forEach((signal) => {
-      // @ts-ignore
-      process.on(signal, () => {
-        if (proc.killed === false && proc.exitCode === null) {
-          proc.kill(signal);
-        }
-      });
-    });
-
-    // By default terminate process when spawned process terminates.
-    // Suppressing the exit if exitCallback defined is a bit messy and of limited use, but does allow process to stay running!
-    const exitCallback = this._exitCallback;
-    if (!exitCallback) {
-      proc.on('close', process.exit.bind(process));
-    } else {
-      proc.on('close', () => {
-        exitCallback(new CommanderError(process.exitCode || 0, 'commander.executeSubCommandAsync', '(close)'));
-      });
-    }
-    proc.on('error', (err) => {
-      // @ts-ignore
-      if (err.code === 'ENOENT') {
-        const executableMissing = `'${bin}' does not exist
- - if '${subcommand._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
- - if the default executable name is not suitable, use the executableFile option to supply a custom name`;
-        throw new Error(executableMissing);
-      // @ts-ignore
-      } else if (err.code === 'EACCES') {
-        throw new Error(`'${bin}' not executable`);
-      }
-      if (!exitCallback) {
-        process.exit(1);
-      } else {
-        const wrappedError = new CommanderError(1, 'commander.executeSubCommandAsync', '(error)');
-        wrappedError.nestedError = err;
-        exitCallback(wrappedError);
-      }
-    });
-
-    // Store the reference to the child process
-    this.runningCommand = proc;
-  };
-
-  /**
-   * @api private
-   */
-  _dispatchSubcommand(commandName, operands, unknown) {
-    const subCommand = this._findCommand(commandName);
-    if (!subCommand) this.help({ error: true });
-
-    if (subCommand._executableHandler) {
-      this._executeSubCommand(subCommand, operands.concat(unknown));
-    } else {
-      subCommand._parseCommand(operands, unknown);
-    }
-  };
-
-  /**
-   * Process arguments in context of this command.
-   *
-   * @api private
-   */
-
-  _parseCommand(operands, unknown) {
-    const parsed = this.parseOptions(unknown);
-    operands = operands.concat(parsed.operands);
-    unknown = parsed.unknown;
-    this.args = operands.concat(unknown);
-
-    if (operands && this._findCommand(operands[0])) {
-      this._dispatchSubcommand(operands[0], operands.slice(1), unknown);
-    } else if (this._hasImplicitHelpCommand() && operands[0] === this._helpCommandName) {
-      if (operands.length === 1) {
-        this.help();
-      } else {
-        this._dispatchSubcommand(operands[1], [], [this._helpLongFlag]);
-      }
-    } else if (this._defaultCommandName) {
-      outputHelpIfRequested(this, unknown); // Run the help for default command from parent rather than passing to default command
-      this._dispatchSubcommand(this._defaultCommandName, operands, unknown);
-    } else {
-      if (this.commands.length && this.args.length === 0 && !this._actionHandler && !this._defaultCommandName) {
-        // probably missing subcommand and no handler, user needs help
-        this.help({ error: true });
-      }
-
-      outputHelpIfRequested(this, parsed.unknown);
-      this._checkForMissingMandatoryOptions();
-
-      // We do not always call this check to avoid masking a "better" error, like unknown command.
-      const checkForUnknownOptions = () => {
-        if (parsed.unknown.length > 0) {
-          this.unknownOption(parsed.unknown[0]);
-        }
-      };
-
-      const commandEvent = `command:${this.name()}`;
-      if (this._actionHandler) {
-        checkForUnknownOptions();
-        // Check expected arguments and collect variadic together.
-        const args = this.args.slice();
-        this._args.forEach((arg, i) => {
-          if (arg.required && args[i] == null) {
-            this.missingArgument(arg.name);
-          } else if (arg.variadic) {
-            args[i] = args.splice(i);
-            args.length = Math.min(i + 1, args.length);
-          }
-        });
-        if (args.length > this._args.length) {
-          this._excessArguments(args);
-        }
-
-        this._actionHandler(args);
-        if (this.parent) this.parent.emit(commandEvent, operands, unknown); // legacy
-      } else if (this.parent && this.parent.listenerCount(commandEvent)) {
-        checkForUnknownOptions();
-        this.parent.emit(commandEvent, operands, unknown); // legacy
-      } else if (operands.length) {
-        if (this._findCommand('*')) { // legacy default command
-          this._dispatchSubcommand('*', operands, unknown);
-        } else if (this.listenerCount('command:*')) {
-          // skip option check, emit event for possible misspelling suggestion
-          this.emit('command:*', operands, unknown);
-        } else if (this.commands.length) {
-          this.unknownCommand();
-        } else {
-          checkForUnknownOptions();
-        }
-      } else if (this.commands.length) {
-        // This command has subcommands and nothing hooked up at this level, so display help.
-        this.help({ error: true });
-      } else {
-        checkForUnknownOptions();
-        // fall through for caller to handle after calling .parse()
-      }
-    }
-  };
-
-  /**
-   * Find matching command.
-   *
-   * @api private
-   */
-  _findCommand(name) {
-    if (!name) return undefined;
-    return this.commands.find(cmd => cmd._name === name || cmd._aliases.includes(name));
-  };
-
-  /**
-   * Return an option matching `arg` if any.
-   *
-   * @param {string} arg
-   * @return {Option}
-   * @api private
-   */
-
-  _findOption(arg) {
-    return this.options.find(option => option.is(arg));
-  };
-
-  /**
-   * Display an error message if a mandatory option does not have a value.
-   * Lazy calling after checking for help flags from leaf subcommand.
-   *
-   * @api private
-   */
-
-  _checkForMissingMandatoryOptions() {
-    // Walk up hierarchy so can call in subcommand after checking for displaying help.
-    for (let cmd = this; cmd; cmd = cmd.parent) {
-      cmd.options.forEach((anOption) => {
-        if (anOption.mandatory && (cmd._getOptionValue(anOption.attributeName()) === undefined)) {
-          cmd.missingMandatoryOptionValue(anOption);
-        }
-      });
-    }
-  };
-
-  /**
-   * Parse options from `argv` removing known options,
-   * and return argv split into operands and unknown arguments.
-   *
-   * Examples:
-   *
-   *    argv => operands, unknown
-   *    --known kkk op => [op], []
-   *    op --known kkk => [op], []
-   *    sub --unknown uuu op => [sub], [--unknown uuu op]
-   *    sub -- --unknown uuu op => [sub --unknown uuu op], []
-   *
-   * @param {String[]} argv
-   * @return {{operands: String[], unknown: String[]}}
-   */
-
-  parseOptions(argv) {
-    const operands = []; // operands, not options or values
-    const unknown = []; // first unknown option and remaining unknown args
-    let dest = operands;
-    const args = argv.slice();
-
-    function maybeOption(arg) {
-      return arg.length > 1 && arg[0] === '-';
-    }
-
-    // parse options
-    let activeVariadicOption = null;
-    while (args.length) {
-      const arg = args.shift();
-
-      // literal
-      if (arg === '--') {
-        if (dest === unknown) dest.push(arg);
-        dest.push(...args);
-        break;
-      }
-
-      if (activeVariadicOption && !maybeOption(arg)) {
-        this.emit(`option:${activeVariadicOption.name()}`, arg);
-        continue;
-      }
-      activeVariadicOption = null;
-
-      if (maybeOption(arg)) {
-        const option = this._findOption(arg);
-        // recognised option, call listener to assign value with possible custom processing
-        if (option) {
-          if (option.required) {
-            const value = args.shift();
-            if (value === undefined) this.optionMissingArgument(option);
-            this.emit(`option:${option.name()}`, value);
-          } else if (option.optional) {
-            let value = null;
-            // historical behaviour is optional value is following arg unless an option
-            if (args.length > 0 && !maybeOption(args[0])) {
-              value = args.shift();
-            }
-            this.emit(`option:${option.name()}`, value);
-          } else { // boolean flag
-            this.emit(`option:${option.name()}`);
-          }
-          activeVariadicOption = option.variadic ? option : null;
-          continue;
-        }
-      }
-
-      // Look for combo options following single dash, eat first one if known.
-      if (arg.length > 2 && arg[0] === '-' && arg[1] !== '-') {
-        const option = this._findOption(`-${arg[1]}`);
-        if (option) {
-          if (option.required || (option.optional && this._combineFlagAndOptionalValue)) {
-            // option with value following in same argument
-            this.emit(`option:${option.name()}`, arg.slice(2));
-          } else {
-            // boolean option, emit and put back remainder of arg for further processing
-            this.emit(`option:${option.name()}`);
-            args.unshift(`-${arg.slice(2)}`);
-          }
-          continue;
-        }
-      }
-
-      // Look for known long flag with value, like --foo=bar
-      if (/^--[^=]+=/.test(arg)) {
-        const index = arg.indexOf('=');
-        const option = this._findOption(arg.slice(0, index));
-        if (option && (option.required || option.optional)) {
-          this.emit(`option:${option.name()}`, arg.slice(index + 1));
-          continue;
-        }
-      }
-
-      // Not a recognised option by this command.
-      // Might be a command-argument, or subcommand option, or unknown option, or help command or option.
-
-      // An unknown option means further arguments also classified as unknown so can be reprocessed by subcommands.
-      if (maybeOption(arg)) {
-        dest = unknown;
-      }
-
-      // If using positionalOptions, stop processing our options at subcommand.
-      if ((this._enablePositionalOptions || this._passThroughOptions) && operands.length === 0 && unknown.length === 0) {
-        if (this._findCommand(arg)) {
-          operands.push(arg);
-          if (args.length > 0) unknown.push(...args);
-          break;
-        } else if (arg === this._helpCommandName && this._hasImplicitHelpCommand()) {
-          operands.push(arg);
-          if (args.length > 0) operands.push(...args);
-          break;
-        } else if (this._defaultCommandName) {
-          unknown.push(arg);
-          if (args.length > 0) unknown.push(...args);
-          break;
-        }
-      }
-
-      // If using passThroughOptions, stop processing options at first command-argument.
-      if (this._passThroughOptions) {
-        dest.push(arg);
-        if (args.length > 0) dest.push(...args);
-        break;
-      }
-
-      // add arg
-      dest.push(arg);
-    }
-
-    return { operands, unknown };
-  };
-
-  /**
-   * Return an object containing options as key-value pairs
-   *
-   * @return {Object}
-   */
-  opts() {
-    if (this._storeOptionsAsProperties) {
-      // Preserve original behaviour so backwards compatible when still using properties
-      const result = {};
-      const len = this.options.length;
-
-      for (let i = 0; i < len; i++) {
-        const key = this.options[i].attributeName();
-        result[key] = key === this._versionOptionName ? this._version : this[key];
-      }
-      return result;
-    }
-
-    return this._optionValues;
-  };
-
-  /**
-   * Internal bottleneck for handling of parsing errors.
-   *
-   * @api private
-   */
-  _displayError(exitCode, code, message) {
-    this._outputConfiguration.outputError(`${message}\n`, this._outputConfiguration.writeErr);
-    this._exit(exitCode, code, message);
-  }
-
-  /**
-   * Argument `name` is missing.
-   *
-   * @param {string} name
-   * @api private
-   */
-
-  missingArgument(name) {
-    const message = `error: missing required argument '${name}'`;
-    this._displayError(1, 'commander.missingArgument', message);
-  };
-
-  /**
-   * `Option` is missing an argument.
-   *
-   * @param {Option} option
-   * @api private
-   */
-
-  optionMissingArgument(option) {
-    const message = `error: option '${option.flags}' argument missing`;
-    this._displayError(1, 'commander.optionMissingArgument', message);
-  };
-
-  /**
-   * `Option` does not have a value, and is a mandatory option.
-   *
-   * @param {Option} option
-   * @api private
-   */
-
-  missingMandatoryOptionValue(option) {
-    const message = `error: required option '${option.flags}' not specified`;
-    this._displayError(1, 'commander.missingMandatoryOptionValue', message);
-  };
-
-  /**
-   * Unknown option `flag`.
-   *
-   * @param {string} flag
-   * @api private
-   */
-
-  unknownOption(flag) {
-    if (this._allowUnknownOption) return;
-    const message = `error: unknown option '${flag}'`;
-    this._displayError(1, 'commander.unknownOption', message);
-  };
-
-  /**
-   * Excess arguments, more than expected.
-   *
-   * @param {string[]} receivedArgs
-   * @api private
-   */
-
-  _excessArguments(receivedArgs) {
-    if (this._allowExcessArguments) return;
-
-    const expected = this._args.length;
-    const s = (expected === 1) ? '' : 's';
-    const forSubcommand = this.parent ? ` for '${this.name()}'` : '';
-    const message = `error: too many arguments${forSubcommand}. Expected ${expected} argument${s} but got ${receivedArgs.length}.`;
-    this._displayError(1, 'commander.excessArguments', message);
-  };
-
-  /**
-   * Unknown command.
-   *
-   * @api private
-   */
-
-  unknownCommand() {
-    const partCommands = [this.name()];
-    for (let parentCmd = this.parent; parentCmd; parentCmd = parentCmd.parent) {
-      partCommands.unshift(parentCmd.name());
-    }
-    const fullCommand = partCommands.join(' ');
-    const message = `error: unknown command '${this.args[0]}'.` +
-      (this._hasHelpOption ? ` See '${fullCommand} ${this._helpLongFlag}'.` : '');
-    this._displayError(1, 'commander.unknownCommand', message);
-  };
-
-  /**
-   * Set the program version to `str`.
-   *
-   * This method auto-registers the "-V, --version" flag
-   * which will print the version number when passed.
-   *
-   * You can optionally supply the  flags and description to override the defaults.
-   *
-   * @param {string} str
-   * @param {string} [flags]
-   * @param {string} [description]
-   * @return {this | string} `this` command for chaining, or version string if no arguments
-   */
-
-  version(str, flags, description) {
-    if (str === undefined) return this._version;
-    this._version = str;
-    flags = flags || '-V, --version';
-    description = description || 'output the version number';
-    const versionOption = this.createOption(flags, description);
-    this._versionOptionName = versionOption.attributeName();
-    this.options.push(versionOption);
-    this.on('option:' + versionOption.name(), () => {
-      this._outputConfiguration.writeOut(`${str}\n`);
-      this._exit(0, 'commander.version', str);
-    });
-    return this;
-  };
-
-  /**
-   * Set the description to `str`.
-   *
-   * @param {string} [str]
-   * @param {Object} [argsDescription]
-   * @return {string|Command}
-   */
-  description(str, argsDescription) {
-    if (str === undefined && argsDescription === undefined) return this._description;
-    this._description = str;
-    this._argsDescription = argsDescription;
-    return this;
-  };
-
-  /**
-   * Set an alias for the command.
-   *
-   * You may call more than once to add multiple aliases. Only the first alias is shown in the auto-generated help.
-   *
-   * @param {string} [alias]
-   * @return {string|Command}
-   */
-
-  alias(alias) {
-    if (alias === undefined) return this._aliases[0]; // just return first, for backwards compatibility
-
-    let command = this;
-    if (this.commands.length !== 0 && this.commands[this.commands.length - 1]._executableHandler) {
-      // assume adding alias for last added executable subcommand, rather than this
-      command = this.commands[this.commands.length - 1];
-    }
-
-    if (alias === command._name) throw new Error('Command alias can\'t be the same as its name');
-
-    command._aliases.push(alias);
-    return this;
-  };
-
-  /**
-   * Set aliases for the command.
-   *
-   * Only the first alias is shown in the auto-generated help.
-   *
-   * @param {string[]} [aliases]
-   * @return {string[]|Command}
-   */
-
-  aliases(aliases) {
-    // Getter for the array of aliases is the main reason for having aliases() in addition to alias().
-    if (aliases === undefined) return this._aliases;
-
-    aliases.forEach((alias) => this.alias(alias));
-    return this;
-  };
-
-  /**
-   * Set / get the command usage `str`.
-   *
-   * @param {string} [str]
-   * @return {String|Command}
-   */
-
-  usage(str) {
-    if (str === undefined) {
-      if (this._usage) return this._usage;
-
-      const args = this._args.map((arg) => {
-        return humanReadableArgName(arg);
-      });
-      return [].concat(
-        (this.options.length || this._hasHelpOption ? '[options]' : []),
-        (this.commands.length ? '[command]' : []),
-        (this._args.length ? args : [])
-      ).join(' ');
-    }
-
-    this._usage = str;
-    return this;
-  };
-
-  /**
-   * Get or set the name of the command
-   *
-   * @param {string} [str]
-   * @return {string|Command}
-   */
-
-  name(str) {
-    if (str === undefined) return this._name;
-    this._name = str;
-    return this;
-  };
-
-  /**
-   * Return program help documentation.
-   *
-   * @param {{ error: boolean }} [contextOptions] - pass {error:true} to wrap for stderr instead of stdout
-   * @return {string}
-   */
-
-  helpInformation(contextOptions) {
-    const helper = this.createHelp();
-    if (helper.helpWidth === undefined) {
-      helper.helpWidth = (contextOptions && contextOptions.error) ? this._outputConfiguration.getErrHelpWidth() : this._outputConfiguration.getOutHelpWidth();
-    }
-    return helper.formatHelp(this, helper);
-  };
-
-  /**
-   * @api private
-   */
-
-  _getHelpContext(contextOptions) {
-    contextOptions = contextOptions || {};
-    const context = { error: !!contextOptions.error };
-    let write;
-    if (context.error) {
-      write = (arg) => this._outputConfiguration.writeErr(arg);
-    } else {
-      write = (arg) => this._outputConfiguration.writeOut(arg);
-    }
-    context.write = contextOptions.write || write;
-    context.command = this;
-    return context;
-  }
-
-  /**
-   * Output help information for this command.
-   *
-   * Outputs built-in help, and custom text added using `.addHelpText()`.
-   *
-   * @param {{ error: boolean } | Function} [contextOptions] - pass {error:true} to write to stderr instead of stdout
-   */
-
-  outputHelp(contextOptions) {
-    let deprecatedCallback;
-    if (typeof contextOptions === 'function') {
-      deprecatedCallback = contextOptions;
-      contextOptions = undefined;
-    }
-    const context = this._getHelpContext(contextOptions);
-
-    const groupListeners = [];
-    let command = this;
-    while (command) {
-      groupListeners.push(command); // ordered from current command to root
-      command = command.parent;
-    }
-
-    groupListeners.slice().reverse().forEach(command => command.emit('beforeAllHelp', context));
-    this.emit('beforeHelp', context);
-
-    let helpInformation = this.helpInformation(context);
-    if (deprecatedCallback) {
-      helpInformation = deprecatedCallback(helpInformation);
-      if (typeof helpInformation !== 'string' && !Buffer.isBuffer(helpInformation)) {
-        throw new Error('outputHelp callback must return a string or a Buffer');
-      }
-    }
-    context.write(helpInformation);
-
-    this.emit(this._helpLongFlag); // deprecated
-    this.emit('afterHelp', context);
-    groupListeners.forEach(command => command.emit('afterAllHelp', context));
-  };
-
-  /**
-   * You can pass in flags and a description to override the help
-   * flags and help description for your command. Pass in false to
-   * disable the built-in help option.
-   *
-   * @param {string | boolean} [flags]
-   * @param {string} [description]
-   * @return {Command} `this` command for chaining
-   */
-
-  helpOption(flags, description) {
-    if (typeof flags === 'boolean') {
-      this._hasHelpOption = flags;
-      return this;
-    }
-    this._helpFlags = flags || this._helpFlags;
-    this._helpDescription = description || this._helpDescription;
-
-    const helpFlags = _parseOptionFlags(this._helpFlags);
-    this._helpShortFlag = helpFlags.shortFlag;
-    this._helpLongFlag = helpFlags.longFlag;
-
-    return this;
-  };
-
-  /**
-   * Output help information and exit.
-   *
-   * Outputs built-in help, and custom text added using `.addHelpText()`.
-   *
-   * @param {{ error: boolean }} [contextOptions] - pass {error:true} to write to stderr instead of stdout
-   */
-
-  help(contextOptions) {
-    this.outputHelp(contextOptions);
-    let exitCode = process.exitCode || 0;
-    if (exitCode === 0 && contextOptions && typeof contextOptions !== 'function' && contextOptions.error) {
-      exitCode = 1;
-    }
-    // message: do not have all displayed text available so only passing placeholder.
-    this._exit(exitCode, 'commander.help', '(outputHelp)');
-  };
-
-  /**
-   * Add additional text to be displayed with the built-in help.
-   *
-   * Position is 'before' or 'after' to affect just this command,
-   * and 'beforeAll' or 'afterAll' to affect this command and all its subcommands.
-   *
-   * @param {string} position - before or after built-in help
-   * @param {string | Function} text - string to add, or a function returning a string
-   * @return {Command} `this` command for chaining
-   */
-  addHelpText(position, text) {
-    const allowedValues = ['beforeAll', 'before', 'after', 'afterAll'];
-    if (!allowedValues.includes(position)) {
-      throw new Error(`Unexpected value for position to addHelpText.
-Expecting one of '${allowedValues.join("', '")}'`);
-    }
-    const helpEvent = `${position}Help`;
-    this.on(helpEvent, (context) => {
-      let helpStr;
-      if (typeof text === 'function') {
-        helpStr = text({ error: context.error, command: context.command });
-      } else {
-        helpStr = text;
-      }
-      // Ignore falsy value when nothing to output.
-      if (helpStr) {
-        context.write(`${helpStr}\n`);
-      }
-    });
-    return this;
-  }
-};
-
-/**
- * Expose the root command.
- */
-
-exports = module.exports = new Command();
-exports.program = exports; // More explicit access to global command.
-
-/**
- * Expose classes
- */
-
-exports.Command = Command;
-exports.Option = Option;
-exports.CommanderError = CommanderError;
-exports.InvalidOptionArgumentError = InvalidOptionArgumentError;
-exports.Help = Help;
-
-/**
- * Camel-case the given `flag`
- *
- * @param {string} flag
- * @return {string}
- * @api private
- */
-
-function camelcase(flag) {
-  return flag.split('-').reduce((str, word) => {
-    return str + word[0].toUpperCase() + word.slice(1);
-  });
-}
-
-/**
- * Output help information if help flags specified
- *
- * @param {Command} cmd - command to output help for
- * @param {Array} args - array of options to search for help flags
- * @api private
- */
-
-function outputHelpIfRequested(cmd, args) {
-  const helpOption = cmd._hasHelpOption && args.find(arg => arg === cmd._helpLongFlag || arg === cmd._helpShortFlag);
-  if (helpOption) {
-    cmd.outputHelp();
-    // (Do not have all displayed text available so only passing placeholder.)
-    cmd._exit(0, 'commander.helpDisplayed', '(outputHelp)');
-  }
-}
-
-/**
- * Takes an argument and returns its human readable equivalent for help usage.
- *
- * @param {Object} arg
- * @return {string}
- * @api private
- */
-
-function humanReadableArgName(arg) {
-  const nameOutput = arg.name + (arg.variadic === true ? '...' : '');
-
-  return arg.required
-    ? '<' + nameOutput + '>'
-    : '[' + nameOutput + ']';
-}
-
-/**
- * Parse the short and long flag out of something like '-m,--mixed <value>'
- *
- * @api private
- */
-
-function _parseOptionFlags(flags) {
-  let shortFlag;
-  let longFlag;
-  // Use original very loose parsing to maintain backwards compatibility for now,
-  // which allowed for example unintended `-sw, --short-word` [sic].
-  const flagParts = flags.split(/[ |,]+/);
-  if (flagParts.length > 1 && !/^[[<]/.test(flagParts[1])) shortFlag = flagParts.shift();
-  longFlag = flagParts.shift();
-  // Add support for lone short flag without significantly changing parsing!
-  if (!shortFlag && /^-[^-]$/.test(longFlag)) {
-    shortFlag = longFlag;
-    longFlag = undefined;
-  }
-  return { shortFlag, longFlag };
-}
-
-/**
- * Scan arguments and increment port number for inspect calls (to avoid conflicts when spawning new command).
- *
- * @param {string[]} args - array of arguments from node.execArgv
- * @returns {string[]}
- * @api private
- */
-
-function incrementNodeInspectorPort(args) {
-  // Testing for these options:
-  //  --inspect[=[host:]port]
-  //  --inspect-brk[=[host:]port]
-  //  --inspect-port=[host:]port
-  return args.map((arg) => {
-    if (!arg.startsWith('--inspect')) {
-      return arg;
-    }
-    let debugOption;
-    let debugHost = '127.0.0.1';
-    let debugPort = '9229';
-    let match;
-    if ((match = arg.match(/^(--inspect(-brk)?)$/)) !== null) {
-      // e.g. --inspect
-      debugOption = match[1];
-    } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) !== null) {
-      debugOption = match[1];
-      if (/^\d+$/.test(match[3])) {
-        // e.g. --inspect=1234
-        debugPort = match[3];
-      } else {
-        // e.g. --inspect=localhost
-        debugHost = match[3];
-      }
-    } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/)) !== null) {
-      // e.g. --inspect=localhost:1234
-      debugOption = match[1];
-      debugHost = match[3];
-      debugPort = match[4];
-    }
-
-    if (debugOption && debugPort !== '0') {
-      return `${debugOption}=${debugHost}:${parseInt(debugPort) + 1}`;
-    }
-    return arg;
-  });
-}
Index: de_modules/commander/package-support.json
===================================================================
--- node_modules/commander/package-support.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-{
-  "versions": [
-    {
-      "version": "*",
-      "target": {
-        "node": "supported"
-      },
-      "response": {
-        "type": "time-permitting"
-      },
-      "backing": {
-        "npm-funding": true
-      }
-    }
-  ]
-}
Index: de_modules/commander/package.json
===================================================================
--- node_modules/commander/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-{
-  "name": "commander",
-  "version": "7.2.0",
-  "description": "the complete solution for node.js command-line programs",
-  "keywords": [
-    "commander",
-    "command",
-    "option",
-    "parser",
-    "cli",
-    "argument",
-    "args",
-    "argv"
-  ],
-  "author": "TJ Holowaychuk <tj@vision-media.ca>",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/tj/commander.js.git"
-  },
-  "scripts": {
-    "lint": "eslint index.js esm.mjs \"tests/**/*.js\"",
-    "typescript-lint": "eslint typings/*.ts tests/*.ts",
-    "test": "jest && npm run test-typings",
-    "test-esm": "node --experimental-modules ./tests/esm-imports-test.mjs",
-    "test-typings": "tsd",
-    "typescript-checkJS": "tsc --allowJS --checkJS index.js --noEmit",
-    "test-all": "npm run test && npm run lint && npm run typescript-lint && npm run typescript-checkJS && npm run test-esm"
-  },
-  "main": "./index.js",
-  "files": [
-    "index.js",
-    "esm.mjs",
-    "typings/index.d.ts",
-    "package-support.json"
-  ],
-  "type": "commonjs",
-  "dependencies": {},
-  "devDependencies": {
-    "@types/jest": "^26.0.20",
-    "@types/node": "^14.14.20",
-    "@typescript-eslint/eslint-plugin": "^4.12.0",
-    "@typescript-eslint/parser": "^4.12.0",
-    "eslint": "^7.17.0",
-    "eslint-config-standard": "^16.0.2",
-    "eslint-plugin-jest": "^24.1.3",
-    "jest": "^26.6.3",
-    "standard": "^16.0.3",
-    "ts-jest": "^26.5.1",
-    "tsd": "^0.14.0",
-    "typescript": "^4.1.2"
-  },
-  "types": "typings/index.d.ts",
-  "jest": {
-    "testEnvironment": "node",
-    "collectCoverage": true,
-    "transform": {
-      "^.+\\.tsx?$": "ts-jest"
-    },
-    "testPathIgnorePatterns": [
-      "/node_modules/"
-    ]
-  },
-  "engines": {
-    "node": ">= 10"
-  },
-  "support": true
-}
Index: de_modules/commander/typings/index.d.ts
===================================================================
--- node_modules/commander/typings/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,627 +1,0 @@
-// Type definitions for commander
-// Original definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne>
-
-// Using method rather than property for method-signature-style, to document method overloads separately. Allow either.
-/* eslint-disable @typescript-eslint/method-signature-style */
-/* eslint-disable @typescript-eslint/no-explicit-any */
-
-declare namespace commander {
-
-  interface CommanderError extends Error {
-    code: string;
-    exitCode: number;
-    message: string;
-    nestedError?: string;
-  }
-  type CommanderErrorConstructor = new (exitCode: number, code: string, message: string) => CommanderError;
-
-  // eslint-disable-next-line @typescript-eslint/no-empty-interface
-  interface InvalidOptionArgumentError extends CommanderError {
-  }
-  type InvalidOptionArgumentErrorConstructor = new (message: string) => InvalidOptionArgumentError;
-
-  interface Option {
-    flags: string;
-    description: string;
-
-    required: boolean; // A value must be supplied when the option is specified.
-    optional: boolean; // A value is optional when the option is specified.
-    variadic: boolean;
-    mandatory: boolean; // The option must have a value after parsing, which usually means it must be specified on command line.
-    optionFlags: string;
-    short?: string;
-    long?: string;
-    negate: boolean;
-    defaultValue?: any;
-    defaultValueDescription?: string;
-    parseArg?: <T>(value: string, previous: T) => T;
-    hidden: boolean;
-    argChoices?: string[];
-
-    /**
-     * Set the default value, and optionally supply the description to be displayed in the help.
-     */
-    default(value: any, description?: string): this;
-
-    /**
-     * Calculate the full description, including defaultValue etc.
-     */
-    fullDescription(): string;
-
-    /**
-     * Set the custom handler for processing CLI option arguments into option values.
-     */
-    argParser<T>(fn: (value: string, previous: T) => T): this;
-
-    /**
-     * Whether the option is mandatory and must have a value after parsing.
-     */
-    makeOptionMandatory(mandatory?: boolean): this;
-
-    /**
-     * Hide option in help.
-     */
-    hideHelp(hide?: boolean): this;
-
-    /**
-     * Validation of option argument failed.
-     * Intended for use from custom argument processing functions.
-     */
-    argumentRejected(messsage: string): never;
-
-    /**
-     * Only allow option value to be one of choices.
-     */
-    choices(values: string[]): this;
-
-    /**
-     * Return option name.
-     */
-    name(): string;
-
-    /**
-     * Return option name, in a camelcase format that can be used
-     * as a object attribute key.
-     */
-    attributeName(): string;
-  }
-  type OptionConstructor = new (flags: string, description?: string) => Option;
-
-  interface Help {
-    /** output helpWidth, long lines are wrapped to fit */
-    helpWidth?: number;
-    sortSubcommands: boolean;
-    sortOptions: boolean;
-
-    /** Get the command term to show in the list of subcommands. */
-    subcommandTerm(cmd: Command): string;
-    /** Get the command description to show in the list of subcommands. */
-    subcommandDescription(cmd: Command): string;
-    /** Get the option term to show in the list of options. */
-    optionTerm(option: Option): string;
-    /** Get the option description to show in the list of options. */
-    optionDescription(option: Option): string;
-
-    /** Get the command usage to be displayed at the top of the built-in help. */
-    commandUsage(cmd: Command): string;
-    /** Get the description for the command. */
-    commandDescription(cmd: Command): string;
-
-    /** Get an array of the visible subcommands. Includes a placeholder for the implicit help command, if there is one. */
-    visibleCommands(cmd: Command): Command[];
-    /** Get an array of the visible options. Includes a placeholder for the implicit help option, if there is one. */
-    visibleOptions(cmd: Command): Option[];
-    /** Get an array of the arguments which have descriptions. */
-    visibleArguments(cmd: Command): Array<{ term: string; description: string}>;
-
-    /** Get the longest command term length. */
-    longestSubcommandTermLength(cmd: Command, helper: Help): number;
-    /** Get the longest option term length. */
-    longestOptionTermLength(cmd: Command, helper: Help): number;
-    /** Get the longest argument term length. */
-    longestArgumentTermLength(cmd: Command, helper: Help): number;
-    /** Calculate the pad width from the maximum term length. */
-    padWidth(cmd: Command, helper: Help): number;
-
-    /**
-     * Wrap the given string to width characters per line, with lines after the first indented.
-     * Do not wrap if insufficient room for wrapping (minColumnWidth), or string is manually formatted.
-     */
-    wrap(str: string, width: number, indent: number, minColumnWidth?: number): string;
-
-    /** Generate the built-in help text. */
-    formatHelp(cmd: Command, helper: Help): string;
-  }
-  type HelpConstructor = new () => Help;
-  type HelpConfiguration = Partial<Help>;
-
-  interface ParseOptions {
-    from: 'node' | 'electron' | 'user';
-  }
-  interface HelpContext { // optional parameter for .help() and .outputHelp()
-    error: boolean;
-  }
-  interface AddHelpTextContext { // passed to text function used with .addHelpText()
-    error: boolean;
-    command: Command;
-  }
-  interface OutputConfiguration {
-    writeOut?(str: string): void;
-    writeErr?(str: string): void;
-    getOutHelpWidth?(): number;
-    getErrHelpWidth?(): number;
-    outputError?(str: string, write: (str: string) => void): void;
-
-  }
-
-  type AddHelpTextPosition = 'beforeAll' | 'before' | 'after' | 'afterAll';
-
-  interface OptionValues {
-    [key: string]: any;
-  }
-
-  interface Command {
-    args: string[];
-    commands: Command[];
-    parent: Command | null;
-
-    /**
-     * Set the program version to `str`.
-     *
-     * This method auto-registers the "-V, --version" flag
-     * which will print the version number when passed.
-     *
-     * You can optionally supply the  flags and description to override the defaults.
-     */
-    version(str: string, flags?: string, description?: string): this;
-
-    /**
-     * Define a command, implemented using an action handler.
-     *
-     * @remarks
-     * The command description is supplied using `.description`, not as a parameter to `.command`.
-     *
-     * @example
-     * ```ts
-     *  program
-     *    .command('clone <source> [destination]')
-     *    .description('clone a repository into a newly created directory')
-     *    .action((source, destination) => {
-     *      console.log('clone command called');
-     *    });
-     * ```
-     *
-     * @param nameAndArgs - command name and arguments, args are  `<required>` or `[optional]` and last may also be `variadic...`
-     * @param opts - configuration options
-     * @returns new command
-     */
-    command(nameAndArgs: string, opts?: CommandOptions): ReturnType<this['createCommand']>;
-    /**
-     * Define a command, implemented in a separate executable file.
-     *
-     * @remarks
-     * The command description is supplied as the second parameter to `.command`.
-     *
-     * @example
-     * ```ts
-     *  program
-     *    .command('start <service>', 'start named service')
-     *    .command('stop [service]', 'stop named service, or all if no name supplied');
-     * ```
-     *
-     * @param nameAndArgs - command name and arguments, args are  `<required>` or `[optional]` and last may also be `variadic...`
-     * @param description - description of executable command
-     * @param opts - configuration options
-     * @returns `this` command for chaining
-     */
-    command(nameAndArgs: string, description: string, opts?: commander.ExecutableCommandOptions): this;
-
-    /**
-     * Factory routine to create a new unattached command.
-     *
-     * See .command() for creating an attached subcommand, which uses this routine to
-     * create the command. You can override createCommand to customise subcommands.
-     */
-    createCommand(name?: string): Command;
-
-    /**
-     * Add a prepared subcommand.
-     *
-     * See .command() for creating an attached subcommand which inherits settings from its parent.
-     *
-     * @returns `this` command for chaining
-     */
-    addCommand(cmd: Command, opts?: CommandOptions): this;
-
-    /**
-     * Define argument syntax for command.
-     *
-     * @returns `this` command for chaining
-     */
-    arguments(desc: string): this;
-
-    /**
-     * Override default decision whether to add implicit help command.
-     *
-     *    addHelpCommand() // force on
-     *    addHelpCommand(false); // force off
-     *    addHelpCommand('help [cmd]', 'display help for [cmd]'); // force on with custom details
-     *
-     * @returns `this` command for chaining
-     */
-    addHelpCommand(enableOrNameAndArgs?: string | boolean, description?: string): this;
-
-    /**
-     * Register callback to use as replacement for calling process.exit.
-     */
-    exitOverride(callback?: (err: CommanderError) => never|void): this;
-
-    /**
-     * You can customise the help with a subclass of Help by overriding createHelp,
-     * or by overriding Help properties using configureHelp().
-     */
-    createHelp(): Help;
-
-    /**
-     * You can customise the help by overriding Help properties using configureHelp(),
-     * or with a subclass of Help by overriding createHelp().
-     */
-    configureHelp(configuration: HelpConfiguration): this;
-    /** Get configuration */
-    configureHelp(): HelpConfiguration;
-
-    /**
-     * The default output goes to stdout and stderr. You can customise this for special
-     * applications. You can also customise the display of errors by overriding outputError.
-     *
-     * The configuration properties are all functions:
-     *
-     *    // functions to change where being written, stdout and stderr
-     *    writeOut(str)
-     *    writeErr(str)
-     *    // matching functions to specify width for wrapping help
-     *    getOutHelpWidth()
-     *    getErrHelpWidth()
-     *    // functions based on what is being written out
-     *    outputError(str, write) // used for displaying errors, and not used for displaying help
-     */
-    configureOutput(configuration: OutputConfiguration): this;
-    /** Get configuration */
-    configureOutput(): OutputConfiguration;
-
-    /**
-     * Register callback `fn` for the command.
-     *
-     * @example
-     *      program
-     *        .command('help')
-     *        .description('display verbose help')
-     *        .action(function() {
-     *           // output help here
-     *        });
-     *
-     * @returns `this` command for chaining
-     */
-    action(fn: (...args: any[]) => void | Promise<void>): this;
-
-    /**
-     * Define option with `flags`, `description` and optional
-     * coercion `fn`.
-     *
-     * The `flags` string contains the short and/or long flags,
-     * separated by comma, a pipe or space. The following are all valid
-     * all will output this way when `--help` is used.
-     *
-     *    "-p, --pepper"
-     *    "-p|--pepper"
-     *    "-p --pepper"
-     *
-     * @example
-     *     // simple boolean defaulting to false
-     *     program.option('-p, --pepper', 'add pepper');
-     *
-     *     --pepper
-     *     program.pepper
-     *     // => Boolean
-     *
-     *     // simple boolean defaulting to true
-     *     program.option('-C, --no-cheese', 'remove cheese');
-     *
-     *     program.cheese
-     *     // => true
-     *
-     *     --no-cheese
-     *     program.cheese
-     *     // => false
-     *
-     *     // required argument
-     *     program.option('-C, --chdir <path>', 'change the working directory');
-     *
-     *     --chdir /tmp
-     *     program.chdir
-     *     // => "/tmp"
-     *
-     *     // optional argument
-     *     program.option('-c, --cheese [type]', 'add cheese [marble]');
-     *
-     * @returns `this` command for chaining
-     */
-    option(flags: string, description?: string, defaultValue?: string | boolean): this;
-    option<T>(flags: string, description: string, fn: (value: string, previous: T) => T, defaultValue?: T): this;
-    /** @deprecated since v7, instead use choices or a custom function */
-    option(flags: string, description: string, regexp: RegExp, defaultValue?: string | boolean): this;
-
-    /**
-     * Define a required option, which must have a value after parsing. This usually means
-     * the option must be specified on the command line. (Otherwise the same as .option().)
-     *
-     * The `flags` string contains the short and/or long flags, separated by comma, a pipe or space.
-     */
-    requiredOption(flags: string, description?: string, defaultValue?: string | boolean): this;
-    requiredOption<T>(flags: string, description: string, fn: (value: string, previous: T) => T, defaultValue?: T): this;
-    /** @deprecated since v7, instead use choices or a custom function */
-    requiredOption(flags: string, description: string, regexp: RegExp, defaultValue?: string | boolean): this;
-
-    /**
-     * Factory routine to create a new unattached option.
-     *
-     * See .option() for creating an attached option, which uses this routine to
-     * create the option. You can override createOption to return a custom option.
-     */
-
-    createOption(flags: string, description?: string): Option;
-
-    /**
-     * Add a prepared Option.
-     *
-     * See .option() and .requiredOption() for creating and attaching an option in a single call.
-     */
-    addOption(option: Option): this;
-
-    /**
-     * Whether to store option values as properties on command object,
-     * or store separately (specify false). In both cases the option values can be accessed using .opts().
-     *
-     * @returns `this` command for chaining
-     */
-    storeOptionsAsProperties(): this & OptionValues;
-    storeOptionsAsProperties(storeAsProperties: true): this & OptionValues;
-    storeOptionsAsProperties(storeAsProperties?: boolean): this;
-
-    /**
-     * Alter parsing of short flags with optional values.
-     *
-     * @example
-     *    // for `.option('-f,--flag [value]'):
-     *   .combineFlagAndOptionalValue(true)  // `-f80` is treated like `--flag=80`, this is the default behaviour
-     *   .combineFlagAndOptionalValue(false) // `-fb` is treated like `-f -b`
-     *
-     * @returns `this` command for chaining
-     */
-    combineFlagAndOptionalValue(combine?: boolean): this;
-
-    /**
-     * Allow unknown options on the command line.
-     *
-     * @returns `this` command for chaining
-     */
-    allowUnknownOption(allowUnknown?: boolean): this;
-
-    /**
-     * Allow excess command-arguments on the command line. Pass false to make excess arguments an error.
-     *
-     * @returns `this` command for chaining
-     */
-    allowExcessArguments(allowExcess?: boolean): this;
-
-    /**
-     * Enable positional options. Positional means global options are specified before subcommands which lets
-     * subcommands reuse the same option names, and also enables subcommands to turn on passThroughOptions.
-     *
-     * The default behaviour is non-positional and global options may appear anywhere on the command line.
-     *
-     * @returns `this` command for chaining
-     */
-    enablePositionalOptions(positional?: boolean): this;
-
-    /**
-     * Pass through options that come after command-arguments rather than treat them as command-options,
-     * so actual command-options come before command-arguments. Turning this on for a subcommand requires
-     * positional options to have been enabled on the program (parent commands).
-     *
-     * The default behaviour is non-positional and options may appear before or after command-arguments.
-     *
-     * @returns `this` command for chaining
-     */
-    passThroughOptions(passThrough?: boolean): this;
-
-    /**
-     * Parse `argv`, setting options and invoking commands when defined.
-     *
-     * The default expectation is that the arguments are from node and have the application as argv[0]
-     * and the script being run in argv[1], with user parameters after that.
-     *
-     * Examples:
-     *
-     *      program.parse(process.argv);
-     *      program.parse(); // implicitly use process.argv and auto-detect node vs electron conventions
-     *      program.parse(my-args, { from: 'user' }); // just user supplied arguments, nothing special about argv[0]
-     *
-     * @returns `this` command for chaining
-     */
-    parse(argv?: string[], options?: ParseOptions): this;
-
-    /**
-     * Parse `argv`, setting options and invoking commands when defined.
-     *
-     * Use parseAsync instead of parse if any of your action handlers are async. Returns a Promise.
-     *
-     * The default expectation is that the arguments are from node and have the application as argv[0]
-     * and the script being run in argv[1], with user parameters after that.
-     *
-     * Examples:
-     *
-     *      program.parseAsync(process.argv);
-     *      program.parseAsync(); // implicitly use process.argv and auto-detect node vs electron conventions
-     *      program.parseAsync(my-args, { from: 'user' }); // just user supplied arguments, nothing special about argv[0]
-     *
-     * @returns Promise
-     */
-    parseAsync(argv?: string[], options?: ParseOptions): Promise<this>;
-
-    /**
-     * Parse options from `argv` removing known options,
-     * and return argv split into operands and unknown arguments.
-     *
-     * @example
-     *    argv => operands, unknown
-     *    --known kkk op => [op], []
-     *    op --known kkk => [op], []
-     *    sub --unknown uuu op => [sub], [--unknown uuu op]
-     *    sub -- --unknown uuu op => [sub --unknown uuu op], []
-     */
-    parseOptions(argv: string[]): commander.ParseOptionsResult;
-
-    /**
-     * Return an object containing options as key-value pairs
-     */
-    opts(): OptionValues;
-
-    /**
-     * Set the description.
-     *
-     * @returns `this` command for chaining
-     */
-    description(str: string, argsDescription?: {[argName: string]: string}): this;
-    /**
-     * Get the description.
-     */
-    description(): string;
-
-    /**
-     * Set an alias for the command.
-     *
-     * You may call more than once to add multiple aliases. Only the first alias is shown in the auto-generated help.
-     *
-     * @returns `this` command for chaining
-     */
-    alias(alias: string): this;
-    /**
-     * Get alias for the command.
-     */
-    alias(): string;
-
-    /**
-     * Set aliases for the command.
-     *
-     * Only the first alias is shown in the auto-generated help.
-     *
-     * @returns `this` command for chaining
-     */
-    aliases(aliases: string[]): this;
-    /**
-     * Get aliases for the command.
-     */
-    aliases(): string[];
-
-    /**
-     * Set the command usage.
-     *
-     * @returns `this` command for chaining
-     */
-    usage(str: string): this;
-    /**
-     * Get the command usage.
-     */
-    usage(): string;
-
-    /**
-     * Set the name of the command.
-     *
-     * @returns `this` command for chaining
-     */
-    name(str: string): this;
-    /**
-     * Get the name of the command.
-     */
-    name(): string;
-
-    /**
-     * Output help information for this command.
-     *
-     * Outputs built-in help, and custom text added using `.addHelpText()`.
-     *
-     */
-    outputHelp(context?: HelpContext): void;
-    /** @deprecated since v7 */
-    outputHelp(cb?: (str: string) => string): void;
-
-    /**
-     * Return command help documentation.
-     */
-    helpInformation(context?: HelpContext): string;
-
-    /**
-     * You can pass in flags and a description to override the help
-     * flags and help description for your command. Pass in false
-     * to disable the built-in help option.
-     */
-    helpOption(flags?: string | boolean, description?: string): this;
-
-    /**
-     * Output help information and exit.
-     *
-     * Outputs built-in help, and custom text added using `.addHelpText()`.
-     */
-    help(context?: HelpContext): never;
-    /** @deprecated since v7 */
-    help(cb?: (str: string) => string): never;
-
-    /**
-     * Add additional text to be displayed with the built-in help.
-     *
-     * Position is 'before' or 'after' to affect just this command,
-     * and 'beforeAll' or 'afterAll' to affect this command and all its subcommands.
-     */
-    addHelpText(position: AddHelpTextPosition, text: string): this;
-    addHelpText(position: AddHelpTextPosition, text: (context: AddHelpTextContext) => string | undefined): this;
-
-    /**
-     * Add a listener (callback) for when events occur. (Implemented using EventEmitter.)
-     */
-    on(event: string | symbol, listener: (...args: any[]) => void): this;
-  }
-  type CommandConstructor = new (name?: string) => Command;
-
-  interface CommandOptions {
-    hidden?: boolean;
-    isDefault?: boolean;
-    /** @deprecated since v7, replaced by hidden */
-    noHelp?: boolean;
-  }
-  interface ExecutableCommandOptions extends CommandOptions {
-    executableFile?: string;
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  interface ParseOptionsResult {
-    operands: string[];
-    unknown: string[];
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  interface CommanderStatic extends Command {
-    program: Command;
-    Command: CommandConstructor;
-    Option: OptionConstructor;
-    CommanderError: CommanderErrorConstructor;
-    InvalidOptionArgumentError: InvalidOptionArgumentErrorConstructor;
-    Help: HelpConstructor;
-  }
-
-}
-
-// Declaring namespace AND global
-// eslint-disable-next-line @typescript-eslint/no-redeclare
-declare const commander: commander.CommanderStatic;
-export = commander;
Index: de_modules/d3-array/LICENSE
===================================================================
--- node_modules/d3-array/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2023 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-array/README.md
===================================================================
--- node_modules/d3-array/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,954 +1,0 @@
-# d3-array
-
-Data in JavaScript is often represented by an iterable (such as an [array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array), [set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set) or [generator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Generator)), and so iterable manipulation is a common task when analyzing or visualizing data. For example, you might take a contiguous slice (subset) of an array, filter an array using a predicate function, or map an array to a parallel set of values using a transform function. Before looking at the methods that d3-array provides, familiarize yourself with the powerful [array methods built-in to JavaScript](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array).
-
-JavaScript includes **mutation methods** that modify the array:
-
-* [*array*.pop](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/pop) - Remove the last element from the array.
-* [*array*.push](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/push) - Add one or more elements to the end of the array.
-* [*array*.reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) - Reverse the order of the elements of the array.
-* [*array*.shift](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/shift) - Remove the first element from the array.
-* [*array*.sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) - Sort the elements of the array.
-* [*array*.splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) - Add or remove elements from the array.
-* [*array*.unshift](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift) - Add one or more elements to the front of the array.
-
-There are also **access methods** that return some representation of the array:
-
-* [*array*.concat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) - Join the array with other array(s) or value(s).
-* [*array*.join](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/join) - Join all elements of the array into a string.
-* [*array*.slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) - Extract a section of the array.
-* [*array*.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) - Find the first occurrence of a value within the array.
-* [*array*.lastIndexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf) - Find the last occurrence of a value within the array.
-
-And finally **iteration methods** that apply functions to elements in the array:
-
-* [*array*.filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - Create a new array with only the elements for which a predicate is true.
-* [*array*.forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) - Call a function for each element in the array.
-* [*array*.every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every) - See if every element in the array satisfies a predicate.
-* [*array*.map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - Create a new array with the result of calling a function on every element in the array.
-* [*array*.some](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some) - See if at least one element in the array satisfies a predicate.
-* [*array*.reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) - Apply a function to reduce the array to a single value (from left-to-right).
-* [*array*.reduceRight](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight) - Apply a function to reduce the array to a single value (from right-to-left).
-
-## Installing
-
-If you use npm, `npm install d3-array`. You can also download the [latest release on GitHub](https://github.com/d3/d3-array/releases/latest). For vanilla HTML in modern browsers, import d3-array from jsDelivr:
-
-```html
-<script type="module">
-
-import {min} from "https://cdn.jsdelivr.net/npm/d3-array@3/+esm";
-
-const m = min(array);
-
-</script>
-```
-
-For legacy environments, you can load d3-array’s UMD bundle; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
-<script>
-
-const m = d3.min(array);
-
-</script>
-```
-
-## API Reference
-
-* [Statistics](#statistics)
-* [Search](#search)
-* [Transformations](#transformations)
-* [Iterables](#iterables)
-* [Sets](#sets)
-* [Bins](#bins)
-* [Interning](#interning)
-
-### Statistics
-
-Methods for computing basic summary statistics.
-
-<a name="min" href="#min">#</a> d3.<b>min</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/min.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the minimum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the minimum value.
-
-Unlike the built-in [Math.min](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/min), this method ignores undefined, null and NaN values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the minimum of the strings [“20”, “3”] is “20”, while the minimum of the numbers [20, 3] is 3.
-
-See also [extent](#extent).
-
-<a name="minIndex" href="#minIndex">#</a> d3.<b>minIndex</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/minIndex.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the index of the minimum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns -1. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the minimum value.
-
-Unlike the built-in [Math.min](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/min), this method ignores undefined, null and NaN values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the minimum of the strings [“20”, “3”] is “20”, while the minimum of the numbers [20, 3] is 3.
-
-<a name="max" href="#max">#</a> d3.<b>max</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/max.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the maximum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the maximum value.
-
-Unlike the built-in [Math.max](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/max), this method ignores undefined values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the maximum of the strings [“20”, “3”] is “3”, while the maximum of the numbers [20, 3] is 20.
-
-See also [extent](#extent).
-
-<a name="maxIndex" href="#maxIndex">#</a> d3.<b>maxIndex</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/maxIndex.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the index of the maximum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns -1. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the maximum value.
-
-Unlike the built-in [Math.max](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/max), this method ignores undefined values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the maximum of the strings [“20”, “3”] is “3”, while the maximum of the numbers [20, 3] is 20.
-
-<a name="extent" href="#extent">#</a> d3.<b>extent</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/extent.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the [minimum](#min) and [maximum](#max) value in the given *iterable* using natural order. If the iterable contains no comparable values, returns [undefined, undefined]. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the extent.
-
-<a name="mode" href="#mode">#</a> d3.<b>mode</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/mode.js), [Examples](https://observablehq.com/@d3/d3-mode)
-
-Returns the mode of the given *iterable*, *i.e.* the value which appears the most often. In case of equality, returns the first of the relevant values. If the iterable contains no comparable values, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the mode. This method ignores undefined, null and NaN values; this is useful for ignoring missing data.
-
-<a name="sum" href="#sum">#</a> d3.<b>sum</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/sum.js), [Examples](https://observablehq.com/@d3/d3-sum)
-
-Returns the sum of the given *iterable* of numbers. If the iterable contains no numbers, returns 0. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the sum. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="mean" href="#mean">#</a> d3.<b>mean</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/mean.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the mean of the given *iterable* of numbers. If the iterable contains no numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the mean. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="median" href="#median">#</a> d3.<b>median</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/median.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the median of the given *iterable* of numbers using the [R-7 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). If the iterable contains no numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the median. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="medianIndex" href="#medianIndex">#</a> d3.<b>medianIndex</b>(<i>array</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/median.js)
-
-Similar to *median*, but returns the index of the element to the left of the median.
-
-<a name="cumsum" href="#cumsum">#</a> d3.<b>cumsum</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/cumsum.js), [Examples](https://observablehq.com/@d3/d3-cumsum)
-
-Returns the cumulative sum of the given *iterable* of numbers, as a Float64Array of the same length. If the iterable contains no numbers, returns zeros. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the cumulative sum. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="quantile" href="#quantile">#</a> d3.<b>quantile</b>(<i>iterable</i>, <i>p</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/quantile.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the *p*-quantile of the given *iterable* of numbers, where *p* is a number in the range [0, 1]. For example, the median can be computed using *p* = 0.5, the first quartile at *p* = 0.25, and the third quartile at *p* = 0.75. This particular implementation uses the [R-7 method](http://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population), which is the default for the R programming language and Excel. For example:
-
-```js
-var a = [0, 10, 30];
-d3.quantile(a, 0); // 0
-d3.quantile(a, 0.5); // 10
-d3.quantile(a, 1); // 30
-d3.quantile(a, 0.25); // 5
-d3.quantile(a, 0.75); // 20
-d3.quantile(a, 0.1); // 2
-```
-
-An optional *accessor* function may be specified, which is equivalent to calling *array*.map(*accessor*) before computing the quantile.
-
-<a name="quantileIndex" href="#quantileIndex">#</a> d3.<b>quantileIndex</b>(<i>array</i>, <i>p</i>[, <i>accessor</i>]) [Source](https://github.com/d3/d3-array/blob/main/src/quantile.js "Source")
-
-Similar to *quantile*, but returns the index to the left of *p*.
-
-<a name="quantileSorted" href="#quantileSorted">#</a> d3.<b>quantileSorted</b>(<i>array</i>, <i>p</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/quantile.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Similar to *quantile*, but expects the input to be a **sorted** *array* of values. In contrast with *quantile*, the accessor is only called on the elements needed to compute the quantile.
-
-<a name="rank" href="#rank">#</a> d3.<b>rank</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/rank.js), [Examples](https://observablehq.com/@d3/rank)
-<br><a name="rank" href="#rank">#</a> d3.<b>rank</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns an array with the rank of each value in the *iterable*, *i.e.* the zero-based index of the value when the iterable is sorted. Nullish values are sorted to the end and ranked NaN. An optional *comparator* or *accessor* function may be specified; the latter is equivalent to calling *array*.map(*accessor*) before computing the ranks. If *comparator* is not specified, it defaults to [ascending](#ascending). Ties (equivalent values) all get the same rank, defined as the first time the value is found.
-
-```js
-d3.rank([{x: 1}, {}, {x: 2}, {x: 0}], d => d.x); // [1, NaN, 2, 0]
-d3.rank(["b", "c", "b", "a"]); // [1, 3, 1, 0]
-d3.rank([1, 2, 3], d3.descending); // [2, 1, 0]
-```
-
-<a name="variance" href="#variance">#</a> d3.<b>variance</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/variance.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns an [unbiased estimator of the population variance](http://mathworld.wolfram.com/SampleVariance.html) of the given *iterable* of numbers using [Welford’s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm). If the iterable has fewer than two numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the variance. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="deviation" href="#deviation">#</a> d3.<b>deviation</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/deviation.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the standard deviation, defined as the square root of the [bias-corrected variance](#variance), of the given *iterable* of numbers. If the iterable has fewer than two numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the standard deviation. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="fsum" href="#fsum">#</a> d3.<b>fsum</b>([<i>values</i>][, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/fsum.js), [Examples](https://observablehq.com/@d3/d3-fsum)
-
-Returns a full precision summation of the given *values*.
-
-```js
-d3.fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]); // 1
-d3.sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]); // 0.9999999999999999
-```
-
-Although slower, d3.fsum can replace d3.sum wherever greater precision is needed. Uses <a href="#adder">d3.Adder</a>.
-
-<a name="fcumsum" href="#fcumsum">#</a> d3.<b>fcumsum</b>([<i>values</i>][, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/fsum.js), [Examples](https://observablehq.com/@d3/d3-fcumsum)
-
-Returns a full precision cumulative sum of the given *values*.
-
-```js
-d3.fcumsum([1, 1e-14, -1]); // [1, 1.00000000000001, 1e-14]
-d3.cumsum([1, 1e-14, -1]); // [1, 1.00000000000001, 9.992e-15]
-```
-
-Although slower, d3.fcumsum can replace d3.cumsum when greater precision is needed. Uses <a href="#adder">d3.Adder</a>.
-
-<a name="adder" href="#adder">#</a> new d3.<b>Adder</b>()
-
-Creates a full precision adder for [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754) floating point numbers, setting its initial value to 0.
-
-<a name="adder_add" href="#adder_add">#</a> *adder*.<b>add</b>(<i>number</i>)
-
-Adds the specified *number* to the adder’s current value and returns the adder.
-
-<a name="adder_valueOf" href="#adder_valueOf">#</a> *adder*.<b>valueOf</b>()
-
-Returns the IEEE 754 double precision representation of the adder’s current value. Most useful as the short-hand notation `+adder`.
-
-### Search
-
-Methods for searching arrays for a specific element.
-
-<a name="least" href="#least">#</a> d3.<b>least</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/least.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="least" href="#least">#</a> d3.<b>least</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the least element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns undefined. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.least(array, (a, b) => a.foo - b.foo); // {foo: 42}
-d3.least(array, (a, b) => b.foo - a.foo); // {foo: 91}
-d3.least(array, a => a.foo); // {foo: 42}
-```
-
-This function is similar to [min](#min), except it allows the use of a comparator rather than an accessor.
-
-<a name="leastIndex" href="#leastIndex">#</a> d3.<b>leastIndex</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/leastIndex.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="leastIndex" href="#leastIndex">#</a> d3.<b>leastIndex</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the index of the least element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns -1. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.leastIndex(array, (a, b) => a.foo - b.foo); // 0
-d3.leastIndex(array, (a, b) => b.foo - a.foo); // 1
-d3.leastIndex(array, a => a.foo); // 0
-```
-
-This function is similar to [minIndex](#minIndex), except it allows the use of a comparator rather than an accessor.
-
-<a name="greatest" href="#greatest">#</a> d3.<b>greatest</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/greatest.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="greatest" href="#greatest">#</a> d3.<b>greatest</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the greatest element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns undefined. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.greatest(array, (a, b) => a.foo - b.foo); // {foo: 91}
-d3.greatest(array, (a, b) => b.foo - a.foo); // {foo: 42}
-d3.greatest(array, a => a.foo); // {foo: 91}
-```
-
-This function is similar to [max](#max), except it allows the use of a comparator rather than an accessor.
-
-<a name="greatestIndex" href="#greatestIndex">#</a> d3.<b>greatestIndex</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/greatestIndex.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="greatestIndex" href="#greatestIndex">#</a> d3.<b>greatestIndex</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the index of the greatest element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns -1. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.greatestIndex(array, (a, b) => a.foo - b.foo); // 1
-d3.greatestIndex(array, (a, b) => b.foo - a.foo); // 0
-d3.greatestIndex(array, a => a.foo); // 1
-```
-
-This function is similar to [maxIndex](#maxIndex), except it allows the use of a comparator rather than an accessor.
-
-<a name="bisectLeft" href="#bisectLeft">#</a> d3.<b>bisectLeft</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisect.js)
-
-Returns the insertion point for *x* in *array* to maintain sorted order. The arguments *lo* and *hi* may be used to specify a subset of the array which should be considered; by default the entire array is used. If *x* is already present in *array*, the insertion point will be before (to the left of) any existing entries. The return value is suitable for use as the first argument to [splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) assuming that *array* is already sorted. The returned insertion point *i* partitions the *array* into two halves so that all *v* < *x* for *v* in *array*.slice(*lo*, *i*) for the left side and all *v* >= *x* for *v* in *array*.slice(*i*, *hi*) for the right side.
-
-<a name="bisect" href="#bisect">#</a> d3.<b>bisect</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisect.js), [Examples](https://observablehq.com/@d3/d3-bisect)
-<br><a name="bisectRight" href="#bisectRight">#</a> d3.<b>bisectRight</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]])
-
-Similar to [bisectLeft](#bisectLeft), but returns an insertion point which comes after (to the right of) any existing entries of *x* in *array*. The returned insertion point *i* partitions the *array* into two halves so that all *v* <= *x* for *v* in *array*.slice(*lo*, *i*) for the left side and all *v* > *x* for *v* in *array*.slice(*i*, *hi*) for the right side.
-
-<a name="bisectCenter" href="#bisectCenter">#</a> d3.<b>bisectCenter</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisect.js), [Examples](https://observablehq.com/@d3/multi-line-chart)
-
-Returns the index of the value closest to *x* in the given *array* of numbers. The arguments *lo* (inclusive) and *hi* (exclusive) may be used to specify a subset of the array which should be considered; by default the entire array is used.
-
-See [*bisector*.center](#bisector_center).
-
-<a name="bisector" href="#bisector">#</a> d3.<b>bisector</b>(<i>accessor</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/bisector.js)
-<br><a name="bisector" href="#bisector">#</a> d3.<b>bisector</b>(<i>comparator</i>)
-
-Returns a new bisector using the specified *accessor* or *comparator* function. This method can be used to bisect arrays of objects instead of being limited to simple arrays of primitives. For example, given the following array of objects:
-
-```js
-var data = [
-  {date: new Date(2011, 1, 1), value: 0.5},
-  {date: new Date(2011, 2, 1), value: 0.6},
-  {date: new Date(2011, 3, 1), value: 0.7},
-  {date: new Date(2011, 4, 1), value: 0.8}
-];
-```
-
-A suitable bisect function could be constructed as:
-
-```js
-var bisectDate = d3.bisector(function(d) { return d.date; }).right;
-```
-
-This is equivalent to specifying a comparator:
-
-```js
-var bisectDate = d3.bisector(function(d, x) { return d.date - x; }).right;
-```
-
-And then applied as *bisectDate*(*array*, *date*), returning an index. Note that the comparator is always passed the search value *x* as the second argument. Use a comparator rather than an accessor if you want values to be sorted in an order different than natural order, such as in descending rather than ascending order.
-
-<a name="bisector_left" href="#bisector_left">#</a> <i>bisector</i>.<b>left</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisector.js)
-
-Equivalent to [bisectLeft](#bisectLeft), but uses this bisector’s associated comparator.
-
-<a name="bisector_right" href="#bisector_right">#</a> <i>bisector</i>.<b>right</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisector.js)
-
-Equivalent to [bisectRight](#bisectRight), but uses this bisector’s associated comparator.
-
-<a name="bisector_center" href="#bisector_center">#</a> <i>bisector</i>.<b>center</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/bisector.js)
-
-Returns the index of the closest value to *x* in the given sorted *array*. This expects that the bisector’s associated accessor returns a quantitative value, or that the bisector’s associated comparator returns a signed distance; otherwise, this method is equivalent to *bisector*.left.
-
-<a name="quickselect" href="#quickselect">#</a> d3.<b>quickselect</b>(<i>array</i>, <i>k</i>, <i>left</i> = 0, <i>right</i> = <i>array</i>.length - 1, <i>compare</i> = ascending) · [Source](https://github.com/d3/d3-array/blob/main/src/quickselect.js), [Examples](https://observablehq.com/@d3/d3-quickselect)
-
-See [mourner/quickselect](https://github.com/mourner/quickselect/blob/master/README.md).
-
-<a name="ascending" href="#ascending">#</a> d3.<b>ascending</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/ascending.js), [Examples](https://observablehq.com/@d3/d3-ascending)
-
-Returns -1 if *a* is less than *b*, or 1 if *a* is greater than *b*, or 0. This is the comparator function for natural order, and can be used in conjunction with the built-in [*array*.sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) method to arrange elements in ascending order. It is implemented as:
-
-```js
-function ascending(a, b) {
-  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-```
-
-Note that if no comparator function is specified to the built-in sort method, the default order is lexicographic (alphabetical), not natural! This can lead to surprising behavior when sorting an array of numbers.
-
-<a name="descending" href="#descending">#</a> d3.<b>descending</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/descending.js), [Examples](https://observablehq.com/@d3/d3-ascending)
-
-Returns -1 if *a* is greater than *b*, or 1 if *a* is less than *b*, or 0. This is the comparator function for reverse natural order, and can be used in conjunction with the built-in array sort method to arrange elements in descending order. It is implemented as:
-
-```js
-function descending(a, b) {
-  return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-```
-
-Note that if no comparator function is specified to the built-in sort method, the default order is lexicographic (alphabetical), not natural! This can lead to surprising behavior when sorting an array of numbers.
-
-### Transformations
-
-Methods for transforming arrays and for generating new arrays.
-
-<a name="group" href="#group">#</a> d3.<b>group</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Groups the specified *iterable* of values into an [InternMap](#InternMap) from *key* to array of value. For example, given some data:
-
-```js
-data = [
-  {name: "jim",   amount: "34.0",   date: "11/12/2015"},
-  {name: "carl",  amount: "120.11", date: "11/12/2015"},
-  {name: "stacy", amount: "12.01",  date: "01/04/2016"},
-  {name: "stacy", amount: "34.05",  date: "01/04/2016"}
-]
-```
-
-To group the data by name:
-
-```js
-d3.group(data, d => d.name)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Array(1)
-  "carl" => Array(1)
-  "stacy" => Array(2)
-}
-```
-
-If more than one *key* is specified, a nested InternMap is returned. For example:
-
-```js
-d3.group(data, d => d.name, d => d.date)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Map(1) {
-    "11/12/2015" => Array(1)
-  }
-  "carl" => Map(1) {
-    "11/12/2015" => Array(1)
-  }
-  "stacy" => Map(1) {
-    "01/04/2016" => Array(2)
-  }
-}
-```
-
-To convert a Map to an Array, use [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from). For example:
-
-```js
-Array.from(d3.group(data, d => d.name))
-```
-
-This produces:
-
-```js
-[
-  ["jim", Array(1)],
-  ["carl", Array(1)],
-  ["stacy", Array(2)]
-]
-```
-
-You can also simultaneously convert the [*key*, *value*] to some other representation by passing a map function to Array.from:
-
-```js
-Array.from(d3.group(data, d => d.name), ([key, value]) => ({key, value}))
-```
-
-This produces:
-
-```js
-[
-  {key: "jim", value: Array(1)},
-  {key: "carl", value: Array(1)},
-  {key: "stacy", value: Array(2)}
-]
-```
-
-[*selection*.data](https://github.com/d3/d3-selection/blob/main/README.md#selection_data) accepts iterables directly, meaning that you can use a Map (or Set or other iterable) to perform a data join without first needing to convert to an array.
-
-<a name="groups" href="#groups">#</a> d3.<b>groups</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Equivalent to [group](#group), but returns nested arrays instead of nested maps.
-
-<a name="flatGroup" href="#flatGroup">#</a> d3.<b>flatGroup</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-flatgroup)
-
-Equivalent to [group](#group), but returns a flat array of [*key0*, *key1*, …, *values*] instead of nested maps.
-
-<a name="index" href="#index">#</a> d3.<b>index</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group)
-
-Equivalent to [group](#group) but returns a unique value per compound key instead of an array, throwing if the key is not unique.
-
-For example, given the data defined above,
-
-```js
-d3.index(data, d => d.amount)
-```
-
-returns
-
-```js
-Map(4) {
-  "34.0" => Object {name: "jim", amount: "34.0", date: "11/12/2015"}
-  "120.11" => Object {name: "carl", amount: "120.11", date: "11/12/2015"}
-  "12.01" => Object {name: "stacy", amount: "12.01", date: "01/04/2016"}
-  "34.05" => Object {name: "stacy", amount: "34.05", date: "01/04/2016"}
-}
-```
-
-On the other hand,
-
-```js
-d3.index(data, d => d.name)
-```
-
-throws an error because two objects share the same name.
-
-<a name="indexes" href="#indexes">#</a> d3.<b>indexes</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group)
-
-Equivalent to [index](#index), but returns nested arrays instead of nested maps.
-
-<a name="rollup" href="#rollup">#</a> d3.<b>rollup</b>(<i>iterable</i>, <i>reduce</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-[Groups](#group) and reduces the specified *iterable* of values into an InternMap from *key* to value. For example, given some data:
-
-```js
-data = [
-  {name: "jim",   amount: "34.0",   date: "11/12/2015"},
-  {name: "carl",  amount: "120.11", date: "11/12/2015"},
-  {name: "stacy", amount: "12.01",  date: "01/04/2016"},
-  {name: "stacy", amount: "34.05",  date: "01/04/2016"}
-]
-```
-
-To count the number of elements by name:
-
-```js
-d3.rollup(data, v => v.length, d => d.name)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => 1
-  "carl" => 1
-  "stacy" => 2
-}
-```
-
-If more than one *key* is specified, a nested Map is returned. For example:
-
-```js
-d3.rollup(data, v => v.length, d => d.name, d => d.date)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Map(1) {
-    "11/12/2015" => 1
-  }
-  "carl" => Map(1) {
-    "11/12/2015" => 1
-  }
-  "stacy" => Map(1) {
-    "01/04/2016" => 2
-  }
-}
-```
-
-To convert a Map to an Array, use [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from). See [d3.group](#group) for examples.
-
-<a name="rollups" href="#rollups">#</a> d3.<b>rollups</b>(<i>iterable</i>, <i>reduce</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Equivalent to [rollup](#rollup), but returns nested arrays instead of nested maps.
-
-<a name="flatRollup" href="#flatRollup">#</a> d3.<b>flatRollup</b>(<i>iterable</i>, <i>reduce</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/group.js), [Examples](https://observablehq.com/@d3/d3-flatgroup)
-
-Equivalent to [rollup](#rollup), but returns a flat array of [*key0*, *key1*, …, *value*] instead of nested maps.
-
-<a name="groupSort" href="#groupSort">#</a> d3.<b>groupSort</b>(<i>iterable</i>, <i>comparator</i>, <i>key</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/groupSort.js), [Examples](https://observablehq.com/@d3/d3-groupsort)
-<br><a name="groupSort" href="#groupSort">#</a> d3.<b>groupSort</b>(<i>iterable</i>, <i>accessor</i>, <i>key</i>)
-
-Groups the specified *iterable* of elements according to the specified *key* function, sorts the groups according to the specified *comparator*, and then returns an array of keys in sorted order. For example, if you had a table of barley yields for different varieties, sites, and years, to sort the barley varieties by ascending median yield:
-
-```js
-d3.groupSort(barley, g => d3.median(g, d => d.yield), d => d.variety)
-```
-
-For descending order, negate the group value:
-
-```js
-d3.groupSort(barley, g => -d3.median(g, d => d.yield), d => d.variety)
-```
-
-If a *comparator* is passed instead of an *accessor* (i.e., if the second argument is a function that takes exactly two arguments), it will be asked to compare two groups *a* and *b* and should return a negative value if *a* should be before *b*, a positive value if *a* should be after *b*, or zero for a partial ordering.
-
-<a name="count" href="#count">#</a> d3.<b>count</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/count.js), [Examples](https://observablehq.com/@d3/d3-count)
-
-Returns the number of valid number values (*i.e.*, not null, NaN, or undefined) in the specified *iterable*; accepts an accessor.
-
-For example:
-
-```js
-d3.count([{n: "Alice", age: NaN}, {n: "Bob", age: 18}, {n: "Other"}], d => d.age) // 1
-```
-<a name="cross" href="#cross">#</a> d3.<b>cross</b>(<i>...iterables</i>[, <i>reducer</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/cross.js), [Examples](https://observablehq.com/@d3/d3-cross)
-
-Returns the [Cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) of the specified *iterables*. For example, if two iterables *a* and *b* are specified, for each element *i* in the iterable *a* and each element *j* in the iterable *b*, in order, invokes the specified *reducer* function passing the element *i* and element *j*. If a *reducer* is not specified, it defaults to a function which creates a two-element array for each pair:
-
-```js
-function pair(a, b) {
-  return [a, b];
-}
-```
-
-For example:
-
-```js
-d3.cross([1, 2], ["x", "y"]); // returns [[1, "x"], [1, "y"], [2, "x"], [2, "y"]]
-d3.cross([1, 2], ["x", "y"], (a, b) => a + b); // returns ["1x", "1y", "2x", "2y"]
-```
-
-<a name="merge" href="#merge">#</a> d3.<b>merge</b>(<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/merge.js), [Examples](https://observablehq.com/@d3/d3-merge)
-
-Merges the specified iterable of *iterables* into a single array. This method is similar to the built-in array concat method; the only difference is that it is more convenient when you have an array of arrays.
-
-```js
-d3.merge([[1], [2, 3]]); // returns [1, 2, 3]
-```
-
-<a name="pairs" href="#pairs">#</a> d3.<b>pairs</b>(<i>iterable</i>[, <i>reducer</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/pairs.js), [Examples](https://observablehq.com/@d3/d3-pairs)
-
-For each adjacent pair of elements in the specified *iterable*, in order, invokes the specified *reducer* function passing the element *i* and element *i* - 1. If a *reducer* is not specified, it defaults to a function which creates a two-element array for each pair:
-
-```js
-function pair(a, b) {
-  return [a, b];
-}
-```
-
-For example:
-
-```js
-d3.pairs([1, 2, 3, 4]); // returns [[1, 2], [2, 3], [3, 4]]
-d3.pairs([1, 2, 3, 4], (a, b) => b - a); // returns [1, 1, 1];
-```
-
-If the specified iterable has fewer than two elements, returns the empty array.
-
-<a name="permute" href="#permute">#</a> d3.<b>permute</b>(<i>source</i>, <i>keys</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/permute.js), [Examples](https://observablehq.com/@d3/d3-permute)
-
-Returns a permutation of the specified *source* object (or array) using the specified iterable of *keys*. The returned array contains the corresponding property of the source object for each key in *keys*, in order. For example:
-
-```js
-permute(["a", "b", "c"], [1, 2, 0]); // returns ["b", "c", "a"]
-```
-
-It is acceptable to have more keys than source elements, and for keys to be duplicated or omitted.
-
-This method can also be used to extract the values from an object into an array with a stable order. Extracting keyed values in order can be useful for generating data arrays in nested selections. For example:
-
-```js
-let object = {yield: 27, variety: "Manchuria", year: 1931, site: "University Farm"};
-let fields = ["site", "variety", "yield"];
-
-d3.permute(object, fields); // returns ["University Farm", "Manchuria", 27]
-```
-
-<a name="shuffle" href="#shuffle">#</a> d3.<b>shuffle</b>(<i>array</i>[, <i>start</i>[, <i>stop</i>]]) · [Source](https://github.com/d3/d3-array/blob/main/src/shuffle.js), [Examples](https://observablehq.com/@d3/d3-shuffle)
-
-Randomizes the order of the specified *array* in-place using the [Fisher–Yates shuffle](https://bost.ocks.org/mike/shuffle/) and returns the *array*. If *start* is specified, it is the starting index (inclusive) of the *array* to shuffle; if *start* is not specified, it defaults to zero. If *stop* is specified, it is the ending index (exclusive) of the *array* to shuffle; if *stop* is not specified, it defaults to *array*.length. For example, to shuffle the first ten elements of the *array*: shuffle(*array*, 0, 10).
-
-<a name="shuffler" href="#shuffler">#</a> d3.<b>shuffler</b>(<i>random</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/shuffle.js)
-
-Returns a [shuffle function](#shuffle) given the specified random source. For example, using [d3.randomLcg](https://github.com/d3/d3-random/blob/main/README.md#randomLcg):
-
-```js
-const random = d3.randomLcg(0.9051667019185816);
-const shuffle = d3.shuffler(random);
-
-shuffle([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); // returns [7, 4, 5, 3, 9, 0, 6, 1, 2, 8]
-```
-
-<a name="ticks" href="#ticks">#</a> d3.<b>ticks</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Returns an array of approximately *count* + 1 uniformly-spaced, nicely-rounded values between *start* and *stop* (inclusive). Each value is a power of ten multiplied by 1, 2 or 5. See also [d3.tickIncrement](#tickIncrement), [d3.tickStep](#tickStep) and [*linear*.ticks](https://github.com/d3/d3-scale/blob/main/README.md#linear_ticks).
-
-Ticks are inclusive in the sense that they may include the specified *start* and *stop* values if (and only if) they are exact, nicely-rounded values consistent with the inferred [step](#tickStep). More formally, each returned tick *t* satisfies *start* ≤ *t* and *t* ≤ *stop*.
-
-<a name="tickIncrement" href="#tickIncrement">#</a> d3.<b>tickIncrement</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Like [d3.tickStep](#tickStep), except requires that *start* is always less than or equal to *stop*, and if the tick step for the given *start*, *stop* and *count* would be less than one, returns the negative inverse tick step instead. This method is always guaranteed to return an integer, and is used by [d3.ticks](#ticks) to guarantee that the returned tick values are represented as precisely as possible in IEEE 754 floating point.
-
-<a name="tickStep" href="#tickStep">#</a> d3.<b>tickStep</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Returns the difference between adjacent tick values if the same arguments were passed to [d3.ticks](#ticks): a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5. Note that due to the limited precision of IEEE 754 floating point, the returned value may not be exact decimals; use [d3-format](https://github.com/d3/d3-format) to format numbers for human consumption.
-
-<a name="nice" href="#nice">#</a> d3.<b>nice</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/nice.js)
-
-Returns a new interval [*niceStart*, *niceStop*] covering the given interval [*start*, *stop*] and where *niceStart* and *niceStop* are guaranteed to align with the corresponding [tick step](#tickStep). Like [d3.tickIncrement](#tickIncrement), this requires that *start* is less than or equal to *stop*.
-
-<a name="range" href="#range">#</a> d3.<b>range</b>([<i>start</i>, ]<i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/range.js), [Examples](https://observablehq.com/@d3/d3-range)
-
-Returns an array containing an arithmetic progression, similar to the Python built-in [range](http://docs.python.org/library/functions.html#range). This method is often used to iterate over a sequence of uniformly-spaced numeric values, such as the indexes of an array or the ticks of a linear scale. (See also [d3.ticks](#ticks) for nicely-rounded values.)
-
-If *step* is omitted, it defaults to 1. If *start* is omitted, it defaults to 0. The *stop* value is exclusive; it is not included in the result. If *step* is positive, the last element is the largest *start* + *i* \* *step* less than *stop*; if *step* is negative, the last element is the smallest *start* + *i* \* *step* greater than *stop*. If the returned array would contain an infinite number of values, an empty range is returned.
-
-The arguments are not required to be integers; however, the results are more predictable if they are. The values in the returned array are defined as *start* + *i* \* *step*, where *i* is an integer from zero to one minus the total number of elements in the returned array. For example:
-
-```js
-d3.range(0, 1, 0.2) // [0, 0.2, 0.4, 0.6000000000000001, 0.8]
-```
-
-This unexpected behavior is due to IEEE 754 double-precision floating point, which defines 0.2 * 3 = 0.6000000000000001. Use [d3-format](https://github.com/d3/d3-format) to format numbers for human consumption with appropriate rounding; see also [linear.tickFormat](https://github.com/d3/d3-scale/blob/main/README.md#linear_tickFormat) in [d3-scale](https://github.com/d3/d3-scale).
-
-Likewise, if the returned array should have a specific length, consider using [array.map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) on an integer range. For example:
-
-```js
-d3.range(0, 1, 1 / 49); // BAD: returns 50 elements!
-d3.range(49).map(function(d) { return d / 49; }); // GOOD: returns 49 elements.
-```
-
-<a name="transpose" href="#transpose">#</a> d3.<b>transpose</b>(<i>matrix</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/transpose.js), [Examples](https://observablehq.com/@d3/d3-transpose)
-
-Uses the [zip](#zip) operator as a two-dimensional [matrix transpose](http://en.wikipedia.org/wiki/Transpose).
-
-<a name="zip" href="#zip">#</a> d3.<b>zip</b>(<i>arrays…</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/zip.js), [Examples](https://observablehq.com/@d3/d3-transpose)
-
-Returns an array of arrays, where the *i*th array contains the *i*th element from each of the argument *arrays*. The returned array is truncated in length to the shortest array in *arrays*. If *arrays* contains only a single array, the returned array contains one-element arrays. With no arguments, the returned array is empty.
-
-```js
-d3.zip([1, 2], [3, 4]); // returns [[1, 3], [2, 4]]
-```
-
-#### Blur
-
-<a name="blur" href="#blur">#</a> d3.<b>blur</b>(*data*, *radius*) · [Source](https://github.com/d3/d3-array/blob/main/src/blur.js), [Examples](https://observablehq.com/@d3/d3-blur)
-
-Blurs an array of *data* in-place by applying three iterations of a moving average transform, for a fast approximation of a gaussian kernel of the given *radius*, a non-negative number, and returns the array.
-
-```js
-const randomWalk = d3.cumsum({length: 1000}, () => Math.random() - 0.5);
-blur(randomWalk, 5);
-```
-
-Copy the data if you don’t want to smooth it in-place:
-```js
-const smoothed = blur(randomWalk.slice(), 5);
-```
-
-<a name="blur2" href="#blur2">#</a> d3.<b>blur2</b>({*data*, *width*[, *height*]}, *rx*[, *ry*]) · [Source](https://github.com/d3/d3-array/blob/main/src/blur.js), [Examples](https://observablehq.com/@d3/d3-blur)
-
-Blurs a matrix of the given *width* and *height* in-place, by applying an horizontal blur of radius *rx* and a vertical blur or radius *ry* (which defaults to *rx*). The matrix *data* is stored in a flat array, used to determine the *height* if it is not specified. Returns the blurred {data, width, height}.
-
-```js
-data = [
-  1, 0, 0,
-  0, 0, 0,
-  0, 0, 1
-];
-blur2({data, width: 3}, 1);
-```
-
-<a name="blurImage" href="#blurImage">#</a> d3.<b>blurImage</b>(*imageData*, *rx*[, *ry*]) · [Source](https://github.com/d3/d3-array/blob/main/src/blur.js), [Examples](https://observablehq.com/@d3/d3-blurimage)
-
-Blurs an [ImageData](https://developer.mozilla.org/en-US/docs/Web/API/ImageData) structure in-place, blurring each of the RGBA layers independently by applying an horizontal blur of radius *rx* and a vertical blur or radius *ry* (which defaults to *rx*). Returns the blurred ImageData.
-
-```js
-const imData = context.getImageData(0, 0, width, height);
-blurImage(imData, 5);
-```
-
-### Iterables
-
-These are equivalent to built-in array methods, but work with any iterable including Map, Set, and Generator.
-
-<a name="every" href="#every">#</a> d3.<b>every</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/every.js)
-
-Returns true if the given *test* function returns true for every value in the given *iterable*. This method returns as soon as *test* returns a non-truthy value or all values are iterated over. Equivalent to [*array*.every](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every):
-
-```js
-d3.every(new Set([1, 3, 5, 7]), x => x & 1) // true
-```
-
-<a name="some" href="#some">#</a> d3.<b>some</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/some.js)
-
-Returns true if the given *test* function returns true for any value in the given *iterable*. This method returns as soon as *test* returns a truthy value or all values are iterated over. Equivalent to [*array*.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some):
-
-```js
-d3.some(new Set([0, 2, 3, 4]), x => x & 1) // true
-```
-
-<a name="filter" href="#filter">#</a> d3.<b>filter</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/filter.js)
-
-Returns a new array containing the values from *iterable*, in order, for which the given *test* function returns true. Equivalent to [*array*.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter):
-
-```js
-d3.filter(new Set([0, 2, 3, 4]), x => x & 1) // [3]
-```
-
-<a name="map" href="#map">#</a> d3.<b>map</b>(<i>iterable</i>, <i>mapper</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/map.js)
-
-Returns a new array containing the mapped values from *iterable*, in order, as defined by given *mapper* function. Equivalent to [*array*.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) and [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from):
-
-```js
-d3.map(new Set([0, 2, 3, 4]), x => x & 1) // [0, 0, 1, 0]
-```
-
-<a name="reduce" href="#reduce">#</a> d3.<b>reduce</b>(<i>iterable</i>, <i>reducer</i>[, <i>initialValue</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/reduce.js)
-
-Returns the reduced value defined by given *reducer* function, which is repeatedly invoked for each value in *iterable*, being passed the current reduced value and the next value. Equivalent to [*array*.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce):
-
-```js
-d3.reduce(new Set([0, 2, 3, 4]), (p, v) => p + v, 0) // 9
-```
-
-<a name="reverse" href="#reverse">#</a> d3.<b>reverse</b>(<i>iterable</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/reverse.js)
-
-Returns an array containing the values in the given *iterable* in reverse order. Equivalent to [*array*.reverse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse), except that it does not mutate the given *iterable*:
-
-```js
-d3.reverse(new Set([0, 2, 3, 1])) // [1, 3, 2, 0]
-```
-
-<a name="sort" href="#sort">#</a> d3.<b>sort</b>(<i>iterable</i>, <i>comparator</i> = d3.ascending) · [Source](https://github.com/d3/d3-array/blob/main/src/sort.js)
-<br><a name="sort" href="#sort">#</a> d3.<b>sort</b>(<i>iterable</i>, ...<i>accessors</i>)
-
-Returns an array containing the values in the given *iterable* in the sorted order defined by the given *comparator* or *accessor* function. If *comparator* is not specified, it defaults to [d3.ascending](#ascending). Equivalent to [*array*.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort), except that it does not mutate the given *iterable*, and the comparator defaults to natural order instead of lexicographic order:
-
-```js
-d3.sort(new Set([0, 2, 3, 1])) // [0, 1, 2, 3]
-```
-
-If an *accessor* (a function that does not take exactly two arguments) is specified,
-
-```js
-d3.sort(data, d => d.value)
-```
-
-it is equivalent to a *comparator* using [natural order](#ascending):
-
-```js
-d3.sort(data, (a, b) => d3.ascending(a.value, b.value))
-```
-
-The *accessor* is only invoked once per element, and thus the returned sorted order is consistent even if the accessor is nondeterministic.
-
-Multiple accessors may be specified to break ties:
-
-```js
-d3.sort(points, ({x}) => x, ({y}) => y)
-```
-
-This is equivalent to:
-
-```js
-d3.sort(data, (a, b) => d3.ascending(a.x, b.x) || d3.ascending(a.y, b.y))
-```
-
-### Sets
-
-This methods implement basic set operations for any iterable.
-
-<a name="difference" href="#difference">#</a> d3.<b>difference</b>(<i>iterable</i>, ...<i>others</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/difference.js)
-
-Returns a new InternSet containing every value in *iterable* that is not in any of the *others* iterables.
-
-```js
-d3.difference([0, 1, 2, 0], [1]) // Set {0, 2}
-```
-
-<a name="union" href="#union">#</a> d3.<b>union</b>(...<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/union.js)
-
-Returns a new InternSet containing every (distinct) value that appears in any of the given *iterables*. The order of values in the returned set is based on their first occurrence in the given *iterables*.
-
-```js
-d3.union([0, 2, 1, 0], [1, 3]) // Set {0, 2, 1, 3}
-```
-
-<a name="intersection" href="#intersection">#</a> d3.<b>intersection</b>(...<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/intersection.js)
-
-Returns a new InternSet containing every (distinct) value that appears in all of the given *iterables*. The order of values in the returned set is based on their first occurrence in the given *iterables*.
-
-```js
-d3.intersection([0, 2, 1, 0], [1, 3]) // Set {1}
-```
-
-<a name="superset" href="#superset">#</a> d3.<b>superset</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/superset.js)
-
-Returns true if *a* is a superset of *b*: if every value in the given iterable *b* is also in the given iterable *a*.
-
-```js
-d3.superset([0, 2, 1, 3, 0], [1, 3]) // true
-```
-
-<a name="subset" href="#subset">#</a> d3.<b>subset</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/subset.js)
-
-Returns true if *a* is a subset of *b*: if every value in the given iterable *a* is also in the given iterable *b*.
-
-```js
-d3.subset([1, 3], [0, 2, 1, 3, 0]) // true
-```
-
-<a name="disjoint" href="#disjoint">#</a> d3.<b>disjoint</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/disjoint.js)
-
-Returns true if *a* and *b* are disjoint: if *a* and *b* contain no shared value.
-
-```js
-d3.disjoint([1, 3], [2, 4]) // true
-```
-
-### Bins
-
-[<img src="https://raw.githubusercontent.com/d3/d3-array/main/img/histogram.png" width="480" height="250" alt="Histogram">](http://bl.ocks.org/mbostock/3048450)
-
-Binning groups discrete samples into a smaller number of consecutive, non-overlapping intervals. They are often used to visualize the distribution of numerical data as histograms.
-
-<a name="bin" href="#bin">#</a> d3.<b>bin</b>() · [Source](https://github.com/d3/d3-array/blob/main/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Constructs a new bin generator with the default settings.
-
-<a name="_bin" href="#_bin">#</a> <i>bin</i>(<i>data</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Bins the given iterable of *data* samples. Returns an array of bins, where each bin is an array containing the associated elements from the input *data*. Thus, the `length` of the bin is the number of elements in that bin. Each bin has two additional attributes:
-
-* `x0` - the lower bound of the bin (inclusive).
-* `x1` - the upper bound of the bin (exclusive, except for the last bin).
-
-Any null or non-comparable values in the given *data*, or those outside the [domain](#bin_domain), are ignored.
-
-<a name="bin_value" href="#bin_value">#</a> <i>bin</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-If *value* is specified, sets the value accessor to the specified function or constant and returns this bin generator. If *value* is not specified, returns the current value accessor, which defaults to the identity function.
-
-When bins are [generated](#_bin), the value accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default value accessor assumes that the input data are orderable (comparable), such as numbers or dates. If your data are not, then you should specify an accessor that returns the corresponding orderable value for a given datum.
-
-This is similar to mapping your data to values before invoking the bin generator, but has the benefit that the input data remains associated with the returned bins, thereby making it easier to access other fields of the data.
-
-<a name="bin_domain" href="#bin_domain">#</a> <i>bin</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-If *domain* is specified, sets the domain accessor to the specified function or array and returns this bin generator. If *domain* is not specified, returns the current domain accessor, which defaults to [extent](#extent). The bin domain is defined as an array [*min*, *max*], where *min* is the minimum observable value and *max* is the maximum observable value; both values are inclusive. Any value outside of this domain will be ignored when the bins are [generated](#_bin).
-
-For example, if you are using the bin generator in conjunction with a [linear scale](https://github.com/d3/d3-scale/blob/main/README.md#linear-scales) `x`, you might say:
-
-```js
-var bin = d3.bin()
-    .domain(x.domain())
-    .thresholds(x.ticks(20));
-```
-
-You can then compute the bins from an array of numbers like so:
-
-```js
-var bins = bin(numbers);
-```
-
-If the default [extent](#extent) domain is used and the [thresholds](#bin_thresholds) are specified as a count (rather than explicit values), then the computed domain will be [niced](#nice) such that all bins are uniform width.
-
-Note that the domain accessor is invoked on the materialized array of [values](#bin_value), not on the input data array.
-
-<a name="bin_thresholds" href="#bin_thresholds">#</a> <i>bin</i>.<b>thresholds</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-array/blob/main/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-<br><a name="bin_thresholds" href="#bin_thresholds">#</a> <i>bin</i>.<b>thresholds</b>([<i>thresholds</i>])
-
-If *thresholds* is specified, sets the [threshold generator](#bin-thresholds) to the specified function or array and returns this bin generator. If *thresholds* is not specified, returns the current threshold generator, which by default implements [Sturges’ formula](#thresholdSturges). (Thus by default, the values to be binned must be numbers!) Thresholds are defined as an array of values [*x0*, *x1*, …]. Any value less than *x0* will be placed in the first bin; any value greater than or equal to *x0* but less than *x1* will be placed in the second bin; and so on. Thus, the [generated bins](#_bin) will have *thresholds*.length + 1 bins. See [bin thresholds](#bin-thresholds) for more information.
-
-Any threshold values outside the [domain](#bin_domain) are ignored. The first *bin*.x0 is always equal to the minimum domain value, and the last *bin*.x1 is always equal to the maximum domain value.
-
-If a *count* is specified instead of an array of *thresholds*, then the [domain](#bin_domain) will be uniformly divided into approximately *count* bins; see [ticks](#ticks).
-
-#### Bin Thresholds
-
-These functions are typically not used directly; instead, pass them to [*bin*.thresholds](#bin_thresholds).
-
-<a name="thresholdFreedmanDiaconis" href="#thresholdFreedmanDiaconis">#</a> d3.<b>thresholdFreedmanDiaconis</b>(<i>values</i>, <i>min</i>, <i>max</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/threshold/freedmanDiaconis.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to the [Freedman–Diaconis rule](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-<a name="thresholdScott" href="#thresholdScott">#</a> d3.<b>thresholdScott</b>(<i>values</i>, <i>min</i>, <i>max</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/threshold/scott.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to [Scott’s normal reference rule](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-<a name="thresholdSturges" href="#thresholdSturges">#</a> d3.<b>thresholdSturges</b>(<i>values</i>) · [Source](https://github.com/d3/d3-array/blob/main/src/threshold/sturges.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to [Sturges’ formula](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-You may also implement your own threshold generator taking three arguments: the array of input [*values*](#bin_value) derived from the data, and the [observable domain](#bin_domain) represented as *min* and *max*. The generator may then return either the array of numeric thresholds or the *count* of bins; in the latter case the domain is divided uniformly into approximately *count* bins; see [ticks](#ticks).
-
-For instance, when binning date values, you might want to use the ticks from a time scale ([Example](https://observablehq.com/@d3/d3-bin-time-thresholds)).
-
-### Interning
-
-<a name="InternMap" href="#InternMap">#</a> new d3.<b>InternMap</b>([<i>iterable</i>][, <i>key</i>]) · [Source](https://github.com/mbostock/internmap/blob/main/src/index.js), [Examples](https://observablehq.com/d/d4c5f6ad343866b9)
-<br><a name="InternSet" href="#InternSet">#</a> new d3.<b>InternSet</b>([<i>iterable</i>][, <i>key</i>]) · [Source](https://github.com/mbostock/internmap/blob/main/src/index.js), [Examples](https://observablehq.com/d/d4c5f6ad343866b9)
-
-The [InternMap and InternSet](https://github.com/mbostock/internmap) classes extend the native JavaScript Map and Set classes, respectively, allowing Dates and other non-primitive keys by bypassing the [SameValueZero algorithm](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness) when determining key equality. d3.group, d3.rollup and d3.index use an InternMap rather than a native Map. These two classes are exported for convenience.
Index: de_modules/d3-array/dist/d3-array.js
===================================================================
--- node_modules/d3-array/dist/d3-array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1455 +1,0 @@
-// https://d3js.org/d3-array/ v3.2.4 Copyright 2010-2023 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-function ascending(a, b) {
-  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-function descending(a, b) {
-  return a == null || b == null ? NaN
-    : b < a ? -1
-    : b > a ? 1
-    : b >= a ? 0
-    : NaN;
-}
-
-function bisector(f) {
-  let compare1, compare2, delta;
-
-  // If an accessor is specified, promote it to a comparator. In this case we
-  // can test whether the search value is (self-) comparable. We can’t do this
-  // for a comparator (except for specific, known comparators) because we can’t
-  // tell if the comparator is symmetric, and an asymmetric comparator can’t be
-  // used to test whether a single value is comparable.
-  if (f.length !== 2) {
-    compare1 = ascending;
-    compare2 = (d, x) => ascending(f(d), x);
-    delta = (d, x) => f(d) - x;
-  } else {
-    compare1 = f === ascending || f === descending ? f : zero;
-    compare2 = f;
-    delta = f;
-  }
-
-  function left(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) < 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function right(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) <= 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function center(a, x, lo = 0, hi = a.length) {
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-
-  return {left, center, right};
-}
-
-function zero() {
-  return 0;
-}
-
-function number(x) {
-  return x === null ? NaN : +x;
-}
-
-function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
-
-const ascendingBisect = bisector(ascending);
-const bisectRight = ascendingBisect.right;
-const bisectLeft = ascendingBisect.left;
-const bisectCenter = bisector(number).center;
-var bisect = bisectRight;
-
-function blur(values, r) {
-  if (!((r = +r) >= 0)) throw new RangeError("invalid r");
-  let length = values.length;
-  if (!((length = Math.floor(length)) >= 0)) throw new RangeError("invalid length");
-  if (!length || !r) return values;
-  const blur = blurf(r);
-  const temp = values.slice();
-  blur(values, temp, 0, length, 1);
-  blur(temp, values, 0, length, 1);
-  blur(values, temp, 0, length, 1);
-  return values;
-}
-
-const blur2 = Blur2(blurf);
-
-const blurImage = Blur2(blurfImage);
-
-function Blur2(blur) {
-  return function(data, rx, ry = rx) {
-    if (!((rx = +rx) >= 0)) throw new RangeError("invalid rx");
-    if (!((ry = +ry) >= 0)) throw new RangeError("invalid ry");
-    let {data: values, width, height} = data;
-    if (!((width = Math.floor(width)) >= 0)) throw new RangeError("invalid width");
-    if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError("invalid height");
-    if (!width || !height || (!rx && !ry)) return data;
-    const blurx = rx && blur(rx);
-    const blury = ry && blur(ry);
-    const temp = values.slice();
-    if (blurx && blury) {
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    } else if (blurx) {
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-    } else if (blury) {
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    }
-    return data;
-  };
-}
-
-function blurh(blur, T, S, w, h) {
-  for (let y = 0, n = w * h; y < n;) {
-    blur(T, S, y, y += w, 1);
-  }
-}
-
-function blurv(blur, T, S, w, h) {
-  for (let x = 0, n = w * h; x < w; ++x) {
-    blur(T, S, x, x + n, w);
-  }
-}
-
-function blurfImage(radius) {
-  const blur = blurf(radius);
-  return (T, S, start, stop, step) => {
-    start <<= 2, stop <<= 2, step <<= 2;
-    blur(T, S, start + 0, stop + 0, step);
-    blur(T, S, start + 1, stop + 1, step);
-    blur(T, S, start + 2, stop + 2, step);
-    blur(T, S, start + 3, stop + 3, step);
-  };
-}
-
-// Given a target array T, a source array S, sets each value T[i] to the average
-// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,
-// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between
-// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an
-// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted
-// according to r - ⌊radius⌋.
-function blurf(radius) {
-  const radius0 = Math.floor(radius);
-  if (radius0 === radius) return bluri(radius);
-  const t = radius - radius0;
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius0 * S[start];
-    const s0 = step * radius0;
-    const s1 = s0 + step;
-    for (let i = start, j = start + s0; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s0)];
-      T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;
-      sum -= S[Math.max(start, i - s0)];
-    }
-  };
-}
-
-// Like blurf, but optimized for integer radius.
-function bluri(radius) {
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius * S[start];
-    const s = step * radius;
-    for (let i = start, j = start + s; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s)];
-      T[i] = sum / w;
-      sum -= S[Math.max(start, i - s)];
-    }
-  };
-}
-
-function count(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
-
-function length$1(array) {
-  return array.length | 0;
-}
-
-function empty(length) {
-  return !(length > 0);
-}
-
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-
-function cross(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length$1);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
-
-function cumsum(values, valueof) {
-  var sum = 0, index = 0;
-  return Float64Array.from(values, valueof === undefined
-    ? v => (sum += +v || 0)
-    : v => (sum += +valueof(v, index++, values) || 0));
-}
-
-function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
-
-function deviation(values, valueof) {
-  const v = variance(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
-
-function extent(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
-
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n, x, y, lo, hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-
-function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-
-function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined
-      ? v => adder.add(+v || 0)
-      : v => adder.add(+valueof(v, ++index, values) || 0)
-  );
-}
-
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(key);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-function identity(x) {
-  return x;
-}
-
-function group(values, ...keys) {
-  return nest(values, identity, identity, keys);
-}
-
-function groups(values, ...keys) {
-  return nest(values, Array.from, identity, keys);
-}
-
-function flatten$1(groups, keys) {
-  for (let i = 1, n = keys.length; i < n; ++i) {
-    groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
-  }
-  return groups;
-}
-
-function flatGroup(values, ...keys) {
-  return flatten$1(groups(values, ...keys), keys);
-}
-
-function flatRollup(values, reduce, ...keys) {
-  return flatten$1(rollups(values, reduce, ...keys), keys);
-}
-
-function rollup(values, reduce, ...keys) {
-  return nest(values, identity, reduce, keys);
-}
-
-function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-
-function index(values, ...keys) {
-  return nest(values, identity, unique, keys);
-}
-
-function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-
-function nest(values, map, reduce, keys) {
-  return (function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);
-      else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  })(values, 0);
-}
-
-function permute(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
-
-function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f] = F;
-  if ((f && f.length !== 2) || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascendingDefined(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascendingDefined(f[i], f[j]));
-    }
-    return permute(values, index);
-  }
-  return values.sort(compareDefined(f));
-}
-
-function compareDefined(compare = ascending) {
-  if (compare === ascending) return ascendingDefined;
-  if (typeof compare !== "function") throw new TypeError("compare is not a function");
-  return (a, b) => {
-    const x = compare(a, b);
-    if (x || x === 0) return x;
-    return (compare(b, b) === 0) - (compare(a, a) === 0);
-  };
-}
-
-function ascendingDefined(a, b) {
-  return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
-}
-
-function groupSort(values, reduce, key) {
-  return (reduce.length !== 2
-    ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))
-    : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))
-    .map(([key]) => key);
-}
-
-var array = Array.prototype;
-
-var slice = array.slice;
-
-function constant(x) {
-  return () => x;
-}
-
-const e10 = Math.sqrt(50),
-    e5 = Math.sqrt(10),
-    e2 = Math.sqrt(2);
-
-function tickSpec(start, stop, count) {
-  const step = (stop - start) / Math.max(0, count),
-      power = Math.floor(Math.log10(step)),
-      error = step / Math.pow(10, power),
-      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
-  let i1, i2, inc;
-  if (power < 0) {
-    inc = Math.pow(10, -power) / factor;
-    i1 = Math.round(start * inc);
-    i2 = Math.round(stop * inc);
-    if (i1 / inc < start) ++i1;
-    if (i2 / inc > stop) --i2;
-    inc = -inc;
-  } else {
-    inc = Math.pow(10, power) * factor;
-    i1 = Math.round(start / inc);
-    i2 = Math.round(stop / inc);
-    if (i1 * inc < start) ++i1;
-    if (i2 * inc > stop) --i2;
-  }
-  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
-  return [i1, i2, inc];
-}
-
-function ticks(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  if (!(count > 0)) return [];
-  if (start === stop) return [start];
-  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
-  if (!(i2 >= i1)) return [];
-  const n = i2 - i1 + 1, ticks = new Array(n);
-  if (reverse) {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;
-  } else {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;
-  }
-  return ticks;
-}
-
-function tickIncrement(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  return tickSpec(start, stop, count)[2];
-}
-
-function tickStep(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
-  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
-}
-
-function nice(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = tickIncrement(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
-
-function thresholdSturges(values) {
-  return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);
-}
-
-function bin() {
-  var value = identity,
-      domain = extent,
-      threshold = thresholdSturges;
-
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-
-    var i,
-        n = data.length,
-        x,
-        step,
-        values = new Array(n);
-
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-
-    var xz = domain(values),
-        x0 = xz[0],
-        x1 = xz[1],
-        tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1, tn = +tz;
-      if (domain === extent) [x0, x1] = nice(x0, x1, tn);
-      tz = ticks(x0, x1, tn);
-
-      // If the domain is aligned with the first tick (which it will by
-      // default), then we can use quantization rather than bisection to bin
-      // values, which is substantially faster.
-      if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === extent) {
-          const step = tickIncrement(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    // Be careful not to mutate an array owned by the user!
-    var m = tz.length, a = 0, b = m;
-    while (tz[a] <= x0) ++a;
-    while (tz[b - 1] > x1) --b;
-    if (a || b < m) tz = tz.slice(a, b), m = b - a;
-
-    var bins = new Array(m + 1),
-        bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    if (isFinite(step)) {
-      if (step > 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
-          }
-        }
-      } else if (step < 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            const j = Math.floor((x0 - x) * step);
-            bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
-          }
-        }
-      }
-    } else {
-      for (i = 0; i < n; ++i) {
-        if ((x = values[i]) != null && x0 <= x && x <= x1) {
-          bins[bisect(tz, x, 0, m)].push(data[i]);
-        }
-      }
-    }
-
-    return bins;
-  }
-
-  histogram.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
-  };
-
-  histogram.domain = function(_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
-  };
-
-  histogram.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : constant(Array.isArray(_) ? slice.call(_) : _), histogram) : threshold;
-  };
-
-  return histogram;
-}
-
-function max(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
-
-function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
-
-function min(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
-
-function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
-
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-function quickselect(array, k, left = 0, right = Infinity, compare) {
-  k = Math.floor(k);
-  left = Math.floor(Math.max(0, left));
-  right = Math.floor(Math.min(array.length - 1, right));
-
-  if (!(left <= k && k <= right)) return array;
-
-  compare = compare === undefined ? ascendingDefined : compareDefined(compare);
-
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-
-    const t = array[k];
-    let i = left;
-    let j = right;
-
-    swap(array, left, k);
-    if (compare(array[right], t) > 0) swap(array, left, right);
-
-    while (i < j) {
-      swap(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-
-    if (compare(array[left], t) === 0) swap(array, left, j);
-    else ++j, swap(array, j, right);
-
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-
-  return array;
-}
-
-function swap(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
-
-function greatest(values, compare = ascending) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, maxValue) > 0
-          : ascending(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, max) > 0
-          : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
-
-function quantile(values, p, valueof) {
-  values = Float64Array.from(numbers(values, valueof));
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return min(values);
-  if (p >= 1) return max(values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),
-      value1 = min(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function quantileSorted(values, p, valueof = number) {
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = +valueof(values[i0], i0, values),
-      value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function quantileIndex(values, p, valueof = number) {
-  if (isNaN(p = +p)) return;
-  numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));
-  if (p <= 0) return minIndex(numbers);
-  if (p >= 1) return maxIndex(numbers);
-  var numbers,
-      index = Uint32Array.from(values, (_, i) => i),
-      j = numbers.length - 1,
-      i = Math.floor(j * p);
-  quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));
-  i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);
-  return i >= 0 ? i : -1;
-}
-
-function thresholdFreedmanDiaconis(values, min, max) {
-  const c = count(values), d = quantile(values, 0.75) - quantile(values, 0.25);
-  return c && d ? Math.ceil((max - min) / (2 * d * Math.pow(c, -1 / 3))) : 1;
-}
-
-function thresholdScott(values, min, max) {
-  const c = count(values), d = deviation(values);
-  return c && d ? Math.ceil((max - min) * Math.cbrt(c) / (3.49 * d)) : 1;
-}
-
-function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
-
-function median(values, valueof) {
-  return quantile(values, 0.5, valueof);
-}
-
-function medianIndex(values, valueof) {
-  return quantileIndex(values, 0.5, valueof);
-}
-
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-
-function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
-
-function mode(values, valueof) {
-  const counts = new InternMap();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  }
-  let modeValue;
-  let modeCount = 0;
-  for (const [value, count] of counts) {
-    if (count > modeCount) {
-      modeCount = count;
-      modeValue = value;
-    }
-  }
-  return modeValue;
-}
-
-function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-
-function pair(a, b) {
-  return [a, b];
-}
-
-function range(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-
-  var i = -1,
-      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-      range = new Array(n);
-
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-
-  return range;
-}
-
-function rank(values, valueof = ascending) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  let V = Array.from(values);
-  const R = new Float64Array(V.length);
-  if (valueof.length !== 2) V = V.map(valueof), valueof = ascending;
-  const compareIndex = (i, j) => valueof(V[i], V[j]);
-  let k, r;
-  values = Uint32Array.from(V, (_, i) => i);
-  // Risky chaining due to Safari 14 https://github.com/d3/d3-array/issues/123
-  values.sort(valueof === ascending ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex));
-  values.forEach((j, i) => {
-      const c = compareIndex(j, k === undefined ? j : k);
-      if (c >= 0) {
-        if (k === undefined || c > 0) k = j, r = i;
-        R[j] = r;
-      } else {
-        R[j] = NaN;
-      }
-    });
-  return R;
-}
-
-function least(values, compare = ascending) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, minValue) < 0
-          : ascending(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, min) < 0
-          : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
-
-function leastIndex(values, compare = ascending) {
-  if (compare.length === 1) return minIndex(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0
-        ? compare(value, value) === 0
-        : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
-
-function greatestIndex(values, compare = ascending) {
-  if (compare.length === 1) return maxIndex(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0
-        ? compare(value, value) === 0
-        : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
-
-function scan(values, compare) {
-  const index = leastIndex(values, compare);
-  return index < 0 ? undefined : index;
-}
-
-var shuffle = shuffler(Math.random);
-
-function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0, t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
-
-function sum(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
-
-function transpose(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-
-function length(d) {
-  return d.length;
-}
-
-function zip() {
-  return transpose(arguments);
-}
-
-function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-function filter(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
-
-function map(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
-
-function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done, next, index = -1;
-  if (arguments.length < 3) {
-    ({done, value} = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({done, value: next} = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
-
-function reverse(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
-
-function difference(values, ...others) {
-  values = new InternSet(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
-
-function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](), set = new InternSet();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
-
-function intersection(values, ...others) {
-  values = new InternSet(values);
-  others = others.map(set);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
-
-function set(values) {
-  return values instanceof InternSet ? values : new InternSet(values);
-}
-
-function superset(values, other) {
-  const iterator = values[Symbol.iterator](), set = new Set();
-  for (const o of other) {
-    const io = intern(o);
-    if (set.has(io)) continue;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) return false;
-      const ivalue = intern(value);
-      set.add(ivalue);
-      if (Object.is(io, ivalue)) break;
-    }
-  }
-  return true;
-}
-
-function intern(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-function subset(values, other) {
-  return superset(other, values);
-}
-
-function union(...others) {
-  const set = new InternSet();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
-
-exports.Adder = Adder;
-exports.InternMap = InternMap;
-exports.InternSet = InternSet;
-exports.ascending = ascending;
-exports.bin = bin;
-exports.bisect = bisect;
-exports.bisectCenter = bisectCenter;
-exports.bisectLeft = bisectLeft;
-exports.bisectRight = bisectRight;
-exports.bisector = bisector;
-exports.blur = blur;
-exports.blur2 = blur2;
-exports.blurImage = blurImage;
-exports.count = count;
-exports.cross = cross;
-exports.cumsum = cumsum;
-exports.descending = descending;
-exports.deviation = deviation;
-exports.difference = difference;
-exports.disjoint = disjoint;
-exports.every = every;
-exports.extent = extent;
-exports.fcumsum = fcumsum;
-exports.filter = filter;
-exports.flatGroup = flatGroup;
-exports.flatRollup = flatRollup;
-exports.fsum = fsum;
-exports.greatest = greatest;
-exports.greatestIndex = greatestIndex;
-exports.group = group;
-exports.groupSort = groupSort;
-exports.groups = groups;
-exports.histogram = bin;
-exports.index = index;
-exports.indexes = indexes;
-exports.intersection = intersection;
-exports.least = least;
-exports.leastIndex = leastIndex;
-exports.map = map;
-exports.max = max;
-exports.maxIndex = maxIndex;
-exports.mean = mean;
-exports.median = median;
-exports.medianIndex = medianIndex;
-exports.merge = merge;
-exports.min = min;
-exports.minIndex = minIndex;
-exports.mode = mode;
-exports.nice = nice;
-exports.pairs = pairs;
-exports.permute = permute;
-exports.quantile = quantile;
-exports.quantileIndex = quantileIndex;
-exports.quantileSorted = quantileSorted;
-exports.quickselect = quickselect;
-exports.range = range;
-exports.rank = rank;
-exports.reduce = reduce;
-exports.reverse = reverse;
-exports.rollup = rollup;
-exports.rollups = rollups;
-exports.scan = scan;
-exports.shuffle = shuffle;
-exports.shuffler = shuffler;
-exports.some = some;
-exports.sort = sort;
-exports.subset = subset;
-exports.sum = sum;
-exports.superset = superset;
-exports.thresholdFreedmanDiaconis = thresholdFreedmanDiaconis;
-exports.thresholdScott = thresholdScott;
-exports.thresholdSturges = thresholdSturges;
-exports.tickIncrement = tickIncrement;
-exports.tickStep = tickStep;
-exports.ticks = ticks;
-exports.transpose = transpose;
-exports.union = union;
-exports.variance = variance;
-exports.zip = zip;
-
-}));
Index: de_modules/d3-array/dist/d3-array.min.js
===================================================================
--- node_modules/d3-array/dist/d3-array.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-array/ v3.2.4 Copyright 2010-2023 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function r(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function e(t){let e,f,i;function u(t,n,r=0,o=t.length){if(r<o){if(0!==e(n,n))return o;do{const e=r+o>>>1;f(t[e],n)<0?r=e+1:o=e}while(r<o)}return r}return 2!==t.length?(e=n,f=(r,e)=>n(t(r),e),i=(n,r)=>t(n)-r):(e=t===n||t===r?t:o,f=t,i=t),{left:u,center:function(t,n,r=0,e=t.length){const o=u(t,n,r,e-1);return o>r&&i(t[o-1],n)>-i(t[o],n)?o-1:o},right:function(t,n,r=0,o=t.length){if(r<o){if(0!==e(n,n))return o;do{const e=r+o>>>1;f(t[e],n)<=0?r=e+1:o=e}while(r<o)}return r}}}function o(){return 0}function f(t){return null===t?NaN:+t}const i=e(n),u=i.right,l=i.left,c=e(f).center;var s=u;const a=d(m),h=d((function(t){const n=m(t);return(t,r,e,o,f)=>{n(t,r,(e<<=2)+0,(o<<=2)+0,f<<=2),n(t,r,e+1,o+1,f),n(t,r,e+2,o+2,f),n(t,r,e+3,o+3,f)}}));function d(t){return function(n,r,e=r){if(!((r=+r)>=0))throw new RangeError("invalid rx");if(!((e=+e)>=0))throw new RangeError("invalid ry");let{data:o,width:f,height:i}=n;if(!((f=Math.floor(f))>=0))throw new RangeError("invalid width");if(!((i=Math.floor(void 0!==i?i:o.length/f))>=0))throw new RangeError("invalid height");if(!f||!i||!r&&!e)return n;const u=r&&t(r),l=e&&t(e),c=o.slice();return u&&l?(p(u,c,o,f,i),p(u,o,c,f,i),p(u,c,o,f,i),y(l,o,c,f,i),y(l,c,o,f,i),y(l,o,c,f,i)):u?(p(u,o,c,f,i),p(u,c,o,f,i),p(u,o,c,f,i)):l&&(y(l,o,c,f,i),y(l,c,o,f,i),y(l,o,c,f,i)),n}}function p(t,n,r,e,o){for(let f=0,i=e*o;f<i;)t(n,r,f,f+=e,1)}function y(t,n,r,e,o){for(let f=0,i=e*o;f<e;++f)t(n,r,f,f+i,e)}function m(t){const n=Math.floor(t);if(n===t)return function(t){const n=2*t+1;return(r,e,o,f,i)=>{if(!((f-=i)>=o))return;let u=t*e[o];const l=i*t;for(let t=o,n=o+l;t<n;t+=i)u+=e[Math.min(f,t)];for(let t=o,c=f;t<=c;t+=i)u+=e[Math.min(f,t+l)],r[t]=u/n,u-=e[Math.max(o,t-l)]}}(t);const r=t-n,e=2*t+1;return(t,o,f,i,u)=>{if(!((i-=u)>=f))return;let l=n*o[f];const c=u*n,s=c+u;for(let t=f,n=f+c;t<n;t+=u)l+=o[Math.min(i,t)];for(let n=f,a=i;n<=a;n+=u)l+=o[Math.min(i,n+c)],t[n]=(l+r*(o[Math.max(f,n-s)]+o[Math.min(i,n+s)]))/e,l-=o[Math.max(f,n-c)]}}function g(t,n){let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++r;else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(o=+o)>=o&&++r}return r}function v(t){return 0|t.length}function M(t){return!(t>0)}function w(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function b(t,n){let r,e=0,o=0,f=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(r=n-o,o+=r/++e,f+=r*(n-o));else{let i=-1;for(let u of t)null!=(u=n(u,++i,t))&&(u=+u)>=u&&(r=u-o,o+=r/++e,f+=r*(u-o))}if(e>1)return f/(e-1)}function A(t,n){const r=b(t,n);return r?Math.sqrt(r):r}function x(t,n){let r,e;if(void 0===n)for(const n of t)null!=n&&(void 0===r?n>=n&&(r=e=n):(r>n&&(r=n),e<n&&(e=n)));else{let o=-1;for(let f of t)null!=(f=n(f,++o,t))&&(void 0===r?f>=f&&(r=e=f):(r>f&&(r=f),e<f&&(e=f)))}return[r,e]}class N{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let r=0;for(let e=0;e<this._n&&e<32;e++){const o=n[e],f=t+o,i=Math.abs(t)<Math.abs(o)?t-(f-o):o-(f-t);i&&(n[r++]=i),t=f}return n[r]=t,this._n=r+1,this}valueOf(){const t=this._partials;let n,r,e,o=this._n,f=0;if(o>0){for(f=t[--o];o>0&&(n=f,r=t[--o],f=n+r,e=r-(f-n),!e););o>0&&(e<0&&t[o-1]<0||e>0&&t[o-1]>0)&&(r=2*e,n=f+r,r==n-f&&(f=n))}return f}}class InternMap extends Map{constructor(t,n=k){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,r]of t)this.set(n,r)}get(t){return super.get(E(this,t))}has(t){return super.has(E(this,t))}set(t,n){return super.set(_(this,t),n)}delete(t){return super.delete(S(this,t))}}class InternSet extends Set{constructor(t,n=k){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(E(this,t))}add(t){return super.add(_(this,t))}delete(t){return super.delete(S(this,t))}}function E({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):r}function _({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):(t.set(e,r),r)}function S({_intern:t,_key:n},r){const e=n(r);return t.has(e)&&(r=t.get(e),t.delete(e)),r}function k(t){return null!==t&&"object"==typeof t?t.valueOf():t}function T(t){return t}function F(t,...n){return U(t,T,T,n)}function I(t,...n){return U(t,Array.from,T,n)}function j(t,n){for(let r=1,e=n.length;r<e;++r)t=t.flatMap((t=>t.pop().map((([n,r])=>[...t,n,r]))));return t}function q(t,n,...r){return U(t,T,n,r)}function R(t,n,...r){return U(t,Array.from,n,r)}function O(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function U(t,n,r,e){return function t(o,f){if(f>=e.length)return r(o);const i=new InternMap,u=e[f++];let l=-1;for(const t of o){const n=u(t,++l,o),r=i.get(n);r?r.push(t):i.set(n,[t])}for(const[n,r]of i)i.set(n,t(r,f));return n(i)}(t,0)}function L(t,n){return Array.from(n,(n=>t[n]))}function P(t,...n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[r]=n;if(r&&2!==r.length||n.length>1){const e=Uint32Array.from(t,((t,n)=>n));return n.length>1?(n=n.map((n=>t.map(n))),e.sort(((t,r)=>{for(const e of n){const n=C(e[t],e[r]);if(n)return n}}))):(r=t.map(r),e.sort(((t,n)=>C(r[t],r[n])))),L(t,e)}return t.sort(z(r))}function z(t=n){if(t===n)return C;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,r)=>{const e=t(n,r);return e||0===e?e:(0===t(r,r))-(0===t(n,n))}}function C(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}var D=Array.prototype.slice;function G(t){return()=>t}const B=Math.sqrt(50),H=Math.sqrt(10),J=Math.sqrt(2);function K(t,n,r){const e=(n-t)/Math.max(0,r),o=Math.floor(Math.log10(e)),f=e/Math.pow(10,o),i=f>=B?10:f>=H?5:f>=J?2:1;let u,l,c;return o<0?(c=Math.pow(10,-o)/i,u=Math.round(t*c),l=Math.round(n*c),u/c<t&&++u,l/c>n&&--l,c=-c):(c=Math.pow(10,o)*i,u=Math.round(t/c),l=Math.round(n/c),u*c<t&&++u,l*c>n&&--l),l<u&&.5<=r&&r<2?K(t,n,2*r):[u,l,c]}function Q(t,n,r){if(!((r=+r)>0))return[];if((t=+t)===(n=+n))return[t];const e=n<t,[o,f,i]=e?K(n,t,r):K(t,n,r);if(!(f>=o))return[];const u=f-o+1,l=new Array(u);if(e)if(i<0)for(let t=0;t<u;++t)l[t]=(f-t)/-i;else for(let t=0;t<u;++t)l[t]=(f-t)*i;else if(i<0)for(let t=0;t<u;++t)l[t]=(o+t)/-i;else for(let t=0;t<u;++t)l[t]=(o+t)*i;return l}function V(t,n,r){return K(t=+t,n=+n,r=+r)[2]}function W(t,n,r){let e;for(;;){const o=V(t,n,r);if(o===e||0===o||!isFinite(o))return[t,n];o>0?(t=Math.floor(t/o)*o,n=Math.ceil(n/o)*o):o<0&&(t=Math.ceil(t*o)/o,n=Math.floor(n*o)/o),e=o}}function X(t){return Math.max(1,Math.ceil(Math.log(g(t))/Math.LN2)+1)}function Y(){var t=T,n=x,r=X;function e(e){Array.isArray(e)||(e=Array.from(e));var o,f,i,u=e.length,l=new Array(u);for(o=0;o<u;++o)l[o]=t(e[o],o,e);var c=n(l),a=c[0],h=c[1],d=r(l,a,h);if(!Array.isArray(d)){const t=h,r=+d;if(n===x&&([a,h]=W(a,h,r)),(d=Q(a,h,r))[0]<=a&&(i=V(a,h,r)),d[d.length-1]>=h)if(t>=h&&n===x){const t=V(a,h,r);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}for(var p=d.length,y=0,m=p;d[y]<=a;)++y;for(;d[m-1]>h;)--m;(y||m<p)&&(d=d.slice(y,m),p=m-y);var g,v=new Array(p+1);for(o=0;o<=p;++o)(g=v[o]=[]).x0=o>0?d[o-1]:a,g.x1=o<p?d[o]:h;if(isFinite(i)){if(i>0)for(o=0;o<u;++o)null!=(f=l[o])&&a<=f&&f<=h&&v[Math.min(p,Math.floor((f-a)/i))].push(e[o]);else if(i<0)for(o=0;o<u;++o)if(null!=(f=l[o])&&a<=f&&f<=h){const t=Math.floor((a-f)*i);v[Math.min(p,t+(d[t]<=f))].push(e[o])}}else for(o=0;o<u;++o)null!=(f=l[o])&&a<=f&&f<=h&&v[s(d,f,0,p)].push(e[o]);return v}return e.value=function(n){return arguments.length?(t="function"==typeof n?n:G(n),e):t},e.domain=function(t){return arguments.length?(n="function"==typeof t?t:G([t[0],t[1]]),e):n},e.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:G(Array.isArray(t)?D.call(t):t),e):r},e}function Z(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(r<o||void 0===r&&o>=o)&&(r=o)}return r}function $(t,n){let r,e=-1,o=-1;if(void 0===n)for(const n of t)++o,null!=n&&(r<n||void 0===r&&n>=n)&&(r=n,e=o);else for(let f of t)null!=(f=n(f,++o,t))&&(r<f||void 0===r&&f>=f)&&(r=f,e=o);return e}function tt(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(r>o||void 0===r&&o>=o)&&(r=o)}return r}function nt(t,n){let r,e=-1,o=-1;if(void 0===n)for(const n of t)++o,null!=n&&(r>n||void 0===r&&n>=n)&&(r=n,e=o);else for(let f of t)null!=(f=n(f,++o,t))&&(r>f||void 0===r&&f>=f)&&(r=f,e=o);return e}function rt(t,n,r=0,e=1/0,o){if(n=Math.floor(n),r=Math.floor(Math.max(0,r)),e=Math.floor(Math.min(t.length-1,e)),!(r<=n&&n<=e))return t;for(o=void 0===o?C:z(o);e>r;){if(e-r>600){const f=e-r+1,i=n-r+1,u=Math.log(f),l=.5*Math.exp(2*u/3),c=.5*Math.sqrt(u*l*(f-l)/f)*(i-f/2<0?-1:1);rt(t,n,Math.max(r,Math.floor(n-i*l/f+c)),Math.min(e,Math.floor(n+(f-i)*l/f+c)),o)}const f=t[n];let i=r,u=e;for(et(t,r,n),o(t[e],f)>0&&et(t,r,e);i<u;){for(et(t,i,u),++i,--u;o(t[i],f)<0;)++i;for(;o(t[u],f)>0;)--u}0===o(t[r],f)?et(t,r,u):(++u,et(t,u,e)),u<=n&&(r=u+1),n<=u&&(e=u-1)}return t}function et(t,n,r){const e=t[n];t[n]=t[r],t[r]=e}function ot(t,r=n){let e,o=!1;if(1===r.length){let f;for(const i of t){const t=r(i);(o?n(t,f)>0:0===n(t,t))&&(e=i,f=t,o=!0)}}else for(const n of t)(o?r(n,e)>0:0===r(n,n))&&(e=n,o=!0);return e}function ft(t,n,r){if(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let r=-1;for(let e of t)null!=(e=n(e,++r,t))&&(e=+e)>=e&&(yield e)}}(t,r)),(e=t.length)&&!isNaN(n=+n)){if(n<=0||e<2)return tt(t);if(n>=1)return Z(t);var e,o=(e-1)*n,f=Math.floor(o),i=Z(rt(t,f).subarray(0,f+1));return i+(tt(t.subarray(f+1))-i)*(o-f)}}function it(t,n,r=f){if(!isNaN(n=+n)){if(e=Float64Array.from(t,((n,e)=>f(r(t[e],e,t)))),n<=0)return nt(e);if(n>=1)return $(e);var e,o=Uint32Array.from(t,((t,n)=>n)),i=e.length-1,u=Math.floor(i*n);return rt(o,u,0,i,((t,n)=>C(e[t],e[n]))),(u=ot(o.subarray(0,u+1),(t=>e[t])))>=0?u:-1}}function ut(t,n){return[t,n]}function lt(t,r=n){if(1===r.length)return nt(t,r);let e,o=-1,f=-1;for(const n of t)++f,(o<0?0===r(n,n):r(n,e)<0)&&(e=n,o=f);return o}var ct=st(Math.random);function st(t){return function(n,r=0,e=n.length){let o=e-(r=+r);for(;o;){const e=t()*o--|0,f=n[o+r];n[o+r]=n[e+r],n[e+r]=f}return n}}function at(t){if(!(o=t.length))return[];for(var n=-1,r=tt(t,ht),e=new Array(r);++n<r;)for(var o,f=-1,i=e[n]=new Array(o);++f<o;)i[f]=t[f][n];return e}function ht(t){return t.length}function dt(t){return t instanceof InternSet?t:new InternSet(t)}function pt(t,n){const r=t[Symbol.iterator](),e=new Set;for(const t of n){const n=yt(t);if(e.has(n))continue;let o,f;for(;({value:o,done:f}=r.next());){if(f)return!1;const t=yt(o);if(e.add(t),Object.is(n,t))break}}return!0}function yt(t){return null!==t&&"object"==typeof t?t.valueOf():t}t.Adder=N,t.InternMap=InternMap,t.InternSet=InternSet,t.ascending=n,t.bin=Y,t.bisect=s,t.bisectCenter=c,t.bisectLeft=l,t.bisectRight=u,t.bisector=e,t.blur=function(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let r=t.length;if(!((r=Math.floor(r))>=0))throw new RangeError("invalid length");if(!r||!n)return t;const e=m(n),o=t.slice();return e(t,o,0,r,1),e(o,t,0,r,1),e(t,o,0,r,1),t},t.blur2=a,t.blurImage=h,t.count=g,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),r=(t=t.map(w)).map(v),e=t.length-1,o=new Array(e+1).fill(0),f=[];if(e<0||r.some(M))return f;for(;;){f.push(o.map(((n,r)=>t[r][n])));let i=e;for(;++o[i]===r[i];){if(0===i)return n?f.map(n):f;o[i--]=0}}},t.cumsum=function(t,n){var r=0,e=0;return Float64Array.from(t,void 0===n?t=>r+=+t||0:o=>r+=+n(o,e++,t)||0)},t.descending=r,t.deviation=A,t.difference=function(t,...n){t=new InternSet(t);for(const r of n)for(const n of r)t.delete(n);return t},t.disjoint=function(t,n){const r=n[Symbol.iterator](),e=new InternSet;for(const n of t){if(e.has(n))return!1;let t,o;for(;({value:t,done:o}=r.next())&&!o;){if(Object.is(n,t))return!1;e.add(t)}}return!0},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let r=-1;for(const e of t)if(!n(e,++r,t))return!1;return!0},t.extent=x,t.fcumsum=function(t,n){const r=new N;let e=-1;return Float64Array.from(t,void 0===n?t=>r.add(+t||0):o=>r.add(+n(o,++e,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const r=[];let e=-1;for(const o of t)n(o,++e,t)&&r.push(o);return r},t.flatGroup=function(t,...n){return j(I(t,...n),n)},t.flatRollup=function(t,n,...r){return j(R(t,n,...r),r)},t.fsum=function(t,n){const r=new N;if(void 0===n)for(let n of t)(n=+n)&&r.add(n);else{let e=-1;for(let o of t)(o=+n(o,++e,t))&&r.add(o)}return+r},t.greatest=ot,t.greatestIndex=function(t,r=n){if(1===r.length)return $(t,r);let e,o=-1,f=-1;for(const n of t)++f,(o<0?0===r(n,n):r(n,e)>0)&&(e=n,o=f);return o},t.group=F,t.groupSort=function(t,r,e){return(2!==r.length?P(q(t,r,e),(([t,r],[e,o])=>n(r,o)||n(t,e))):P(F(t,e),(([t,e],[o,f])=>r(e,f)||n(t,o)))).map((([t])=>t))},t.groups=I,t.histogram=Y,t.index=function(t,...n){return U(t,T,O,n)},t.indexes=function(t,...n){return U(t,Array.from,O,n)},t.intersection=function(t,...n){t=new InternSet(t),n=n.map(dt);t:for(const r of t)for(const e of n)if(!e.has(r)){t.delete(r);continue t}return t},t.least=function(t,r=n){let e,o=!1;if(1===r.length){let f;for(const i of t){const t=r(i);(o?n(t,f)<0:0===n(t,t))&&(e=i,f=t,o=!0)}}else for(const n of t)(o?r(n,e)<0:0===r(n,n))&&(e=n,o=!0);return e},t.leastIndex=lt,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((r,e)=>n(r,e,t)))},t.max=Z,t.maxIndex=$,t.mean=function(t,n){let r=0,e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++r,e+=n);else{let o=-1;for(let f of t)null!=(f=n(f,++o,t))&&(f=+f)>=f&&(++r,e+=f)}if(r)return e/r},t.median=function(t,n){return ft(t,.5,n)},t.medianIndex=function(t,n){return it(t,.5,n)},t.merge=function(t){return Array.from(function*(t){for(const n of t)yield*n}(t))},t.min=tt,t.minIndex=nt,t.mode=function(t,n){const r=new InternMap;if(void 0===n)for(let n of t)null!=n&&n>=n&&r.set(n,(r.get(n)||0)+1);else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&o>=o&&r.set(o,(r.get(o)||0)+1)}let e,o=0;for(const[t,n]of r)n>o&&(o=n,e=t);return e},t.nice=W,t.pairs=function(t,n=ut){const r=[];let e,o=!1;for(const f of t)o&&r.push(n(e,f)),e=f,o=!0;return r},t.permute=L,t.quantile=ft,t.quantileIndex=it,t.quantileSorted=function(t,n,r=f){if((e=t.length)&&!isNaN(n=+n)){if(n<=0||e<2)return+r(t[0],0,t);if(n>=1)return+r(t[e-1],e-1,t);var e,o=(e-1)*n,i=Math.floor(o),u=+r(t[i],i,t);return u+(+r(t[i+1],i+1,t)-u)*(o-i)}},t.quickselect=rt,t.range=function(t,n,r){t=+t,n=+n,r=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+r;for(var e=-1,o=0|Math.max(0,Math.ceil((n-t)/r)),f=new Array(o);++e<o;)f[e]=t+e*r;return f},t.rank=function(t,r=n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const o=new Float64Array(e.length);2!==r.length&&(e=e.map(r),r=n);const f=(t,n)=>r(e[t],e[n]);let i,u;return(t=Uint32Array.from(e,((t,n)=>n))).sort(r===n?(t,n)=>C(e[t],e[n]):z(f)),t.forEach(((t,n)=>{const r=f(t,void 0===i?t:i);r>=0?((void 0===i||r>0)&&(i=t,u=n),o[t]=u):o[t]=NaN})),o},t.reduce=function(t,n,r){if("function"!=typeof n)throw new TypeError("reducer is not a function");const e=t[Symbol.iterator]();let o,f,i=-1;if(arguments.length<3){if(({done:o,value:r}=e.next()),o)return;++i}for(;({done:o,value:f}=e.next()),!o;)r=n(r,f,++i,t);return r},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rollup=q,t.rollups=R,t.scan=function(t,n){const r=lt(t,n);return r<0?void 0:r},t.shuffle=ct,t.shuffler=st,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let r=-1;for(const e of t)if(n(e,++r,t))return!0;return!1},t.sort=P,t.subset=function(t,n){return pt(n,t)},t.sum=function(t,n){let r=0;if(void 0===n)for(let n of t)(n=+n)&&(r+=n);else{let e=-1;for(let o of t)(o=+n(o,++e,t))&&(r+=o)}return r},t.superset=pt,t.thresholdFreedmanDiaconis=function(t,n,r){const e=g(t),o=ft(t,.75)-ft(t,.25);return e&&o?Math.ceil((r-n)/(2*o*Math.pow(e,-1/3))):1},t.thresholdScott=function(t,n,r){const e=g(t),o=A(t);return e&&o?Math.ceil((r-n)*Math.cbrt(e)/(3.49*o)):1},t.thresholdSturges=X,t.tickIncrement=V,t.tickStep=function(t,n,r){r=+r;const e=(n=+n)<(t=+t),o=e?V(n,t,r):V(t,n,r);return(e?-1:1)*(o<0?1/-o:o)},t.ticks=Q,t.transpose=at,t.union=function(...t){const n=new InternSet;for(const r of t)for(const t of r)n.add(t);return n},t.variance=b,t.zip=function(){return at(arguments)}}));
Index: de_modules/d3-array/package.json
===================================================================
--- node_modules/d3-array/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-{
-  "name": "d3-array",
-  "version": "3.2.4",
-  "description": "Array manipulation, ordering, searching, summarizing, etc.",
-  "homepage": "https://d3js.org/d3-array/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-array.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "histogram",
-    "bisect",
-    "shuffle",
-    "statistics",
-    "search",
-    "sort",
-    "array"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-array.min.js",
-  "unpkg": "dist/d3-array.min.js",
-  "exports": {
-    "umd": "./dist/d3-array.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "internmap": "1 - 2"
-  },
-  "devDependencies": {
-    "@rollup/plugin-node-resolve": "15",
-    "d3-dsv": "3",
-    "d3-random": "2 - 3",
-    "eslint": "8",
-    "jsdom": "21",
-    "mocha": "10",
-    "rollup": "3",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-array/src/array.js
===================================================================
--- node_modules/d3-array/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-var array = Array.prototype;
-
-export var slice = array.slice;
-export var map = array.map;
Index: de_modules/d3-array/src/ascending.js
===================================================================
--- node_modules/d3-array/src/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function ascending(a, b) {
-  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
Index: de_modules/d3-array/src/bin.js
===================================================================
--- node_modules/d3-array/src/bin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-import {slice} from "./array.js";
-import bisect from "./bisect.js";
-import constant from "./constant.js";
-import extent from "./extent.js";
-import identity from "./identity.js";
-import nice from "./nice.js";
-import ticks, {tickIncrement} from "./ticks.js";
-import sturges from "./threshold/sturges.js";
-
-export default function bin() {
-  var value = identity,
-      domain = extent,
-      threshold = sturges;
-
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-
-    var i,
-        n = data.length,
-        x,
-        step,
-        values = new Array(n);
-
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-
-    var xz = domain(values),
-        x0 = xz[0],
-        x1 = xz[1],
-        tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1, tn = +tz;
-      if (domain === extent) [x0, x1] = nice(x0, x1, tn);
-      tz = ticks(x0, x1, tn);
-
-      // If the domain is aligned with the first tick (which it will by
-      // default), then we can use quantization rather than bisection to bin
-      // values, which is substantially faster.
-      if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === extent) {
-          const step = tickIncrement(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    // Be careful not to mutate an array owned by the user!
-    var m = tz.length, a = 0, b = m;
-    while (tz[a] <= x0) ++a;
-    while (tz[b - 1] > x1) --b;
-    if (a || b < m) tz = tz.slice(a, b), m = b - a;
-
-    var bins = new Array(m + 1),
-        bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    if (isFinite(step)) {
-      if (step > 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
-          }
-        }
-      } else if (step < 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            const j = Math.floor((x0 - x) * step);
-            bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
-          }
-        }
-      }
-    } else {
-      for (i = 0; i < n; ++i) {
-        if ((x = values[i]) != null && x0 <= x && x <= x1) {
-          bins[bisect(tz, x, 0, m)].push(data[i]);
-        }
-      }
-    }
-
-    return bins;
-  }
-
-  histogram.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
-  };
-
-  histogram.domain = function(_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
-  };
-
-  histogram.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : constant(Array.isArray(_) ? slice.call(_) : _), histogram) : threshold;
-  };
-
-  return histogram;
-}
Index: de_modules/d3-array/src/bisect.js
===================================================================
--- node_modules/d3-array/src/bisect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import ascending from "./ascending.js";
-import bisector from "./bisector.js";
-import number from "./number.js";
-
-const ascendingBisect = bisector(ascending);
-export const bisectRight = ascendingBisect.right;
-export const bisectLeft = ascendingBisect.left;
-export const bisectCenter = bisector(number).center;
-export default bisectRight;
Index: de_modules/d3-array/src/bisector.js
===================================================================
--- node_modules/d3-array/src/bisector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import ascending from "./ascending.js";
-import descending from "./descending.js";
-
-export default function bisector(f) {
-  let compare1, compare2, delta;
-
-  // If an accessor is specified, promote it to a comparator. In this case we
-  // can test whether the search value is (self-) comparable. We can’t do this
-  // for a comparator (except for specific, known comparators) because we can’t
-  // tell if the comparator is symmetric, and an asymmetric comparator can’t be
-  // used to test whether a single value is comparable.
-  if (f.length !== 2) {
-    compare1 = ascending;
-    compare2 = (d, x) => ascending(f(d), x);
-    delta = (d, x) => f(d) - x;
-  } else {
-    compare1 = f === ascending || f === descending ? f : zero;
-    compare2 = f;
-    delta = f;
-  }
-
-  function left(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) < 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function right(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) <= 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function center(a, x, lo = 0, hi = a.length) {
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-
-  return {left, center, right};
-}
-
-function zero() {
-  return 0;
-}
Index: de_modules/d3-array/src/blur.js
===================================================================
--- node_modules/d3-array/src/blur.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,115 +1,0 @@
-export function blur(values, r) {
-  if (!((r = +r) >= 0)) throw new RangeError("invalid r");
-  let length = values.length;
-  if (!((length = Math.floor(length)) >= 0)) throw new RangeError("invalid length");
-  if (!length || !r) return values;
-  const blur = blurf(r);
-  const temp = values.slice();
-  blur(values, temp, 0, length, 1);
-  blur(temp, values, 0, length, 1);
-  blur(values, temp, 0, length, 1);
-  return values;
-}
-
-export const blur2 = Blur2(blurf);
-
-export const blurImage = Blur2(blurfImage);
-
-function Blur2(blur) {
-  return function(data, rx, ry = rx) {
-    if (!((rx = +rx) >= 0)) throw new RangeError("invalid rx");
-    if (!((ry = +ry) >= 0)) throw new RangeError("invalid ry");
-    let {data: values, width, height} = data;
-    if (!((width = Math.floor(width)) >= 0)) throw new RangeError("invalid width");
-    if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError("invalid height");
-    if (!width || !height || (!rx && !ry)) return data;
-    const blurx = rx && blur(rx);
-    const blury = ry && blur(ry);
-    const temp = values.slice();
-    if (blurx && blury) {
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    } else if (blurx) {
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-    } else if (blury) {
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    }
-    return data;
-  };
-}
-
-function blurh(blur, T, S, w, h) {
-  for (let y = 0, n = w * h; y < n;) {
-    blur(T, S, y, y += w, 1);
-  }
-}
-
-function blurv(blur, T, S, w, h) {
-  for (let x = 0, n = w * h; x < w; ++x) {
-    blur(T, S, x, x + n, w);
-  }
-}
-
-function blurfImage(radius) {
-  const blur = blurf(radius);
-  return (T, S, start, stop, step) => {
-    start <<= 2, stop <<= 2, step <<= 2;
-    blur(T, S, start + 0, stop + 0, step);
-    blur(T, S, start + 1, stop + 1, step);
-    blur(T, S, start + 2, stop + 2, step);
-    blur(T, S, start + 3, stop + 3, step);
-  };
-}
-
-// Given a target array T, a source array S, sets each value T[i] to the average
-// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,
-// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between
-// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an
-// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted
-// according to r - ⌊radius⌋.
-function blurf(radius) {
-  const radius0 = Math.floor(radius);
-  if (radius0 === radius) return bluri(radius);
-  const t = radius - radius0;
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius0 * S[start];
-    const s0 = step * radius0;
-    const s1 = s0 + step;
-    for (let i = start, j = start + s0; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s0)];
-      T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;
-      sum -= S[Math.max(start, i - s0)];
-    }
-  };
-}
-
-// Like blurf, but optimized for integer radius.
-function bluri(radius) {
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius * S[start];
-    const s = step * radius;
-    for (let i = start, j = start + s; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s)];
-      T[i] = sum / w;
-      sum -= S[Math.max(start, i - s)];
-    }
-  };
-}
Index: de_modules/d3-array/src/constant.js
===================================================================
--- node_modules/d3-array/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function constant(x) {
-  return () => x;
-}
Index: de_modules/d3-array/src/count.js
===================================================================
--- node_modules/d3-array/src/count.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function count(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
Index: de_modules/d3-array/src/cross.js
===================================================================
--- node_modules/d3-array/src/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-function length(array) {
-  return array.length | 0;
-}
-
-function empty(length) {
-  return !(length > 0);
-}
-
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-
-export default function cross(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
Index: de_modules/d3-array/src/cumsum.js
===================================================================
--- node_modules/d3-array/src/cumsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function cumsum(values, valueof) {
-  var sum = 0, index = 0;
-  return Float64Array.from(values, valueof === undefined
-    ? v => (sum += +v || 0)
-    : v => (sum += +valueof(v, index++, values) || 0));
-}
Index: de_modules/d3-array/src/descending.js
===================================================================
--- node_modules/d3-array/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function descending(a, b) {
-  return a == null || b == null ? NaN
-    : b < a ? -1
-    : b > a ? 1
-    : b >= a ? 0
-    : NaN;
-}
Index: de_modules/d3-array/src/deviation.js
===================================================================
--- node_modules/d3-array/src/deviation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import variance from "./variance.js";
-
-export default function deviation(values, valueof) {
-  const v = variance(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
Index: de_modules/d3-array/src/difference.js
===================================================================
--- node_modules/d3-array/src/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {InternSet} from "internmap";
-
-export default function difference(values, ...others) {
-  values = new InternSet(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
Index: de_modules/d3-array/src/disjoint.js
===================================================================
--- node_modules/d3-array/src/disjoint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {InternSet} from "internmap";
-
-export default function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](), set = new InternSet();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
Index: de_modules/d3-array/src/every.js
===================================================================
--- node_modules/d3-array/src/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
Index: de_modules/d3-array/src/extent.js
===================================================================
--- node_modules/d3-array/src/extent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-export default function extent(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
Index: de_modules/d3-array/src/filter.js
===================================================================
--- node_modules/d3-array/src/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export default function filter(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
Index: de_modules/d3-array/src/fsum.js
===================================================================
--- node_modules/d3-array/src/fsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-export class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n, x, y, lo, hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-
-export function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-
-export function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined
-      ? v => adder.add(+v || 0)
-      : v => adder.add(+valueof(v, ++index, values) || 0)
-  );
-}
Index: de_modules/d3-array/src/greatest.js
===================================================================
--- node_modules/d3-array/src/greatest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function greatest(values, compare = ascending) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, maxValue) > 0
-          : ascending(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, max) > 0
-          : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/d3-array/src/greatestIndex.js
===================================================================
--- node_modules/d3-array/src/greatestIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import ascending from "./ascending.js";
-import maxIndex from "./maxIndex.js";
-
-export default function greatestIndex(values, compare = ascending) {
-  if (compare.length === 1) return maxIndex(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0
-        ? compare(value, value) === 0
-        : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
Index: de_modules/d3-array/src/group.js
===================================================================
--- node_modules/d3-array/src/group.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-import {InternMap} from "internmap";
-import identity from "./identity.js";
-
-export default function group(values, ...keys) {
-  return nest(values, identity, identity, keys);
-}
-
-export function groups(values, ...keys) {
-  return nest(values, Array.from, identity, keys);
-}
-
-function flatten(groups, keys) {
-  for (let i = 1, n = keys.length; i < n; ++i) {
-    groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
-  }
-  return groups;
-}
-
-export function flatGroup(values, ...keys) {
-  return flatten(groups(values, ...keys), keys);
-}
-
-export function flatRollup(values, reduce, ...keys) {
-  return flatten(rollups(values, reduce, ...keys), keys);
-}
-
-export function rollup(values, reduce, ...keys) {
-  return nest(values, identity, reduce, keys);
-}
-
-export function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-
-export function index(values, ...keys) {
-  return nest(values, identity, unique, keys);
-}
-
-export function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-
-function nest(values, map, reduce, keys) {
-  return (function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);
-      else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  })(values, 0);
-}
Index: de_modules/d3-array/src/groupSort.js
===================================================================
--- node_modules/d3-array/src/groupSort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import ascending from "./ascending.js";
-import group, {rollup} from "./group.js";
-import sort from "./sort.js";
-
-export default function groupSort(values, reduce, key) {
-  return (reduce.length !== 2
-    ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))
-    : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))
-    .map(([key]) => key);
-}
Index: de_modules/d3-array/src/identity.js
===================================================================
--- node_modules/d3-array/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function identity(x) {
-  return x;
-}
Index: de_modules/d3-array/src/index.js
===================================================================
--- node_modules/d3-array/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-export {default as bisect, bisectRight, bisectLeft, bisectCenter} from "./bisect.js";
-export {default as ascending} from "./ascending.js";
-export {default as bisector} from "./bisector.js";
-export {blur, blur2, blurImage} from "./blur.js";
-export {default as count} from "./count.js";
-export {default as cross} from "./cross.js";
-export {default as cumsum} from "./cumsum.js";
-export {default as descending} from "./descending.js";
-export {default as deviation} from "./deviation.js";
-export {default as extent} from "./extent.js";
-export {Adder, fsum, fcumsum} from "./fsum.js";
-export {default as group, flatGroup, flatRollup, groups, index, indexes, rollup, rollups} from "./group.js";
-export {default as groupSort} from "./groupSort.js";
-export {default as bin, default as histogram} from "./bin.js"; // Deprecated; use bin.
-export {default as thresholdFreedmanDiaconis} from "./threshold/freedmanDiaconis.js";
-export {default as thresholdScott} from "./threshold/scott.js";
-export {default as thresholdSturges} from "./threshold/sturges.js";
-export {default as max} from "./max.js";
-export {default as maxIndex} from "./maxIndex.js";
-export {default as mean} from "./mean.js";
-export {default as median, medianIndex} from "./median.js";
-export {default as merge} from "./merge.js";
-export {default as min} from "./min.js";
-export {default as minIndex} from "./minIndex.js";
-export {default as mode} from "./mode.js";
-export {default as nice} from "./nice.js";
-export {default as pairs} from "./pairs.js";
-export {default as permute} from "./permute.js";
-export {default as quantile, quantileIndex, quantileSorted} from "./quantile.js";
-export {default as quickselect} from "./quickselect.js";
-export {default as range} from "./range.js";
-export {default as rank} from "./rank.js";
-export {default as least} from "./least.js";
-export {default as leastIndex} from "./leastIndex.js";
-export {default as greatest} from "./greatest.js";
-export {default as greatestIndex} from "./greatestIndex.js";
-export {default as scan} from "./scan.js"; // Deprecated; use leastIndex.
-export {default as shuffle, shuffler} from "./shuffle.js";
-export {default as sum} from "./sum.js";
-export {default as ticks, tickIncrement, tickStep} from "./ticks.js";
-export {default as transpose} from "./transpose.js";
-export {default as variance} from "./variance.js";
-export {default as zip} from "./zip.js";
-export {default as every} from "./every.js";
-export {default as some} from "./some.js";
-export {default as filter} from "./filter.js";
-export {default as map} from "./map.js";
-export {default as reduce} from "./reduce.js";
-export {default as reverse} from "./reverse.js";
-export {default as sort} from "./sort.js";
-export {default as difference} from "./difference.js";
-export {default as disjoint} from "./disjoint.js";
-export {default as intersection} from "./intersection.js";
-export {default as subset} from "./subset.js";
-export {default as superset} from "./superset.js";
-export {default as union} from "./union.js";
-export {InternMap, InternSet} from "internmap";
Index: de_modules/d3-array/src/intersection.js
===================================================================
--- node_modules/d3-array/src/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import {InternSet} from "internmap";
-
-export default function intersection(values, ...others) {
-  values = new InternSet(values);
-  others = others.map(set);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
-
-function set(values) {
-  return values instanceof InternSet ? values : new InternSet(values);
-}
Index: de_modules/d3-array/src/least.js
===================================================================
--- node_modules/d3-array/src/least.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function least(values, compare = ascending) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, minValue) < 0
-          : ascending(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, min) < 0
-          : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/d3-array/src/leastIndex.js
===================================================================
--- node_modules/d3-array/src/leastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import ascending from "./ascending.js";
-import minIndex from "./minIndex.js";
-
-export default function leastIndex(values, compare = ascending) {
-  if (compare.length === 1) return minIndex(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0
-        ? compare(value, value) === 0
-        : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
Index: de_modules/d3-array/src/map.js
===================================================================
--- node_modules/d3-array/src/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function map(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
Index: de_modules/d3-array/src/max.js
===================================================================
--- node_modules/d3-array/src/max.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function max(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/d3-array/src/maxIndex.js
===================================================================
--- node_modules/d3-array/src/maxIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-export default function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
Index: de_modules/d3-array/src/mean.js
===================================================================
--- node_modules/d3-array/src/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-export default function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
Index: de_modules/d3-array/src/median.js
===================================================================
--- node_modules/d3-array/src/median.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import quantile, {quantileIndex} from "./quantile.js";
-
-export default function median(values, valueof) {
-  return quantile(values, 0.5, valueof);
-}
-
-export function medianIndex(values, valueof) {
-  return quantileIndex(values, 0.5, valueof);
-}
Index: de_modules/d3-array/src/merge.js
===================================================================
--- node_modules/d3-array/src/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-
-export default function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
Index: de_modules/d3-array/src/min.js
===================================================================
--- node_modules/d3-array/src/min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function min(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/d3-array/src/minIndex.js
===================================================================
--- node_modules/d3-array/src/minIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-export default function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
Index: de_modules/d3-array/src/mode.js
===================================================================
--- node_modules/d3-array/src/mode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import {InternMap} from "internmap";
-
-export default function mode(values, valueof) {
-  const counts = new InternMap();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  }
-  let modeValue;
-  let modeCount = 0;
-  for (const [value, count] of counts) {
-    if (count > modeCount) {
-      modeCount = count;
-      modeValue = value;
-    }
-  }
-  return modeValue;
-}
Index: de_modules/d3-array/src/nice.js
===================================================================
--- node_modules/d3-array/src/nice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import {tickIncrement} from "./ticks.js";
-
-export default function nice(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = tickIncrement(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
Index: de_modules/d3-array/src/number.js
===================================================================
--- node_modules/d3-array/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function number(x) {
-  return x === null ? NaN : +x;
-}
-
-export function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
Index: de_modules/d3-array/src/pairs.js
===================================================================
--- node_modules/d3-array/src/pairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export default function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-
-export function pair(a, b) {
-  return [a, b];
-}
Index: de_modules/d3-array/src/permute.js
===================================================================
--- node_modules/d3-array/src/permute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function permute(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
Index: de_modules/d3-array/src/quantile.js
===================================================================
--- node_modules/d3-array/src/quantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import max from "./max.js";
-import maxIndex from "./maxIndex.js";
-import min from "./min.js";
-import minIndex from "./minIndex.js";
-import quickselect from "./quickselect.js";
-import number, {numbers} from "./number.js";
-import {ascendingDefined} from "./sort.js";
-import greatest from "./greatest.js";
-
-export default function quantile(values, p, valueof) {
-  values = Float64Array.from(numbers(values, valueof));
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return min(values);
-  if (p >= 1) return max(values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),
-      value1 = min(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-export function quantileSorted(values, p, valueof = number) {
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = +valueof(values[i0], i0, values),
-      value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-export function quantileIndex(values, p, valueof = number) {
-  if (isNaN(p = +p)) return;
-  numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));
-  if (p <= 0) return minIndex(numbers);
-  if (p >= 1) return maxIndex(numbers);
-  var numbers,
-      index = Uint32Array.from(values, (_, i) => i),
-      j = numbers.length - 1,
-      i = Math.floor(j * p);
-  quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));
-  i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);
-  return i >= 0 ? i : -1;
-}
Index: de_modules/d3-array/src/quickselect.js
===================================================================
--- node_modules/d3-array/src/quickselect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import {ascendingDefined, compareDefined} from "./sort.js";
-
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-export default function quickselect(array, k, left = 0, right = Infinity, compare) {
-  k = Math.floor(k);
-  left = Math.floor(Math.max(0, left));
-  right = Math.floor(Math.min(array.length - 1, right));
-
-  if (!(left <= k && k <= right)) return array;
-
-  compare = compare === undefined ? ascendingDefined : compareDefined(compare);
-
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-
-    const t = array[k];
-    let i = left;
-    let j = right;
-
-    swap(array, left, k);
-    if (compare(array[right], t) > 0) swap(array, left, right);
-
-    while (i < j) {
-      swap(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-
-    if (compare(array[left], t) === 0) swap(array, left, j);
-    else ++j, swap(array, j, right);
-
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-
-  return array;
-}
-
-function swap(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
Index: de_modules/d3-array/src/range.js
===================================================================
--- node_modules/d3-array/src/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default function range(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-
-  var i = -1,
-      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-      range = new Array(n);
-
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-
-  return range;
-}
Index: de_modules/d3-array/src/rank.js
===================================================================
--- node_modules/d3-array/src/rank.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import ascending from "./ascending.js";
-import {ascendingDefined, compareDefined} from "./sort.js";
-
-export default function rank(values, valueof = ascending) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  let V = Array.from(values);
-  const R = new Float64Array(V.length);
-  if (valueof.length !== 2) V = V.map(valueof), valueof = ascending;
-  const compareIndex = (i, j) => valueof(V[i], V[j]);
-  let k, r;
-  values = Uint32Array.from(V, (_, i) => i);
-  // Risky chaining due to Safari 14 https://github.com/d3/d3-array/issues/123
-  values.sort(valueof === ascending ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex));
-  values.forEach((j, i) => {
-      const c = compareIndex(j, k === undefined ? j : k);
-      if (c >= 0) {
-        if (k === undefined || c > 0) k = j, r = i;
-        R[j] = r;
-      } else {
-        R[j] = NaN;
-      }
-    });
-  return R;
-}
Index: de_modules/d3-array/src/reduce.js
===================================================================
--- node_modules/d3-array/src/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done, next, index = -1;
-  if (arguments.length < 3) {
-    ({done, value} = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({done, value: next} = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
Index: de_modules/d3-array/src/reverse.js
===================================================================
--- node_modules/d3-array/src/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export default function reverse(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
Index: de_modules/d3-array/src/scan.js
===================================================================
--- node_modules/d3-array/src/scan.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import leastIndex from "./leastIndex.js";
-
-export default function scan(values, compare) {
-  const index = leastIndex(values, compare);
-  return index < 0 ? undefined : index;
-}
Index: de_modules/d3-array/src/shuffle.js
===================================================================
--- node_modules/d3-array/src/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default shuffler(Math.random);
-
-export function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0, t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
Index: de_modules/d3-array/src/some.js
===================================================================
--- node_modules/d3-array/src/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
Index: de_modules/d3-array/src/sort.js
===================================================================
--- node_modules/d3-array/src/sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import ascending from "./ascending.js";
-import permute from "./permute.js";
-
-export default function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f] = F;
-  if ((f && f.length !== 2) || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascendingDefined(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascendingDefined(f[i], f[j]));
-    }
-    return permute(values, index);
-  }
-  return values.sort(compareDefined(f));
-}
-
-export function compareDefined(compare = ascending) {
-  if (compare === ascending) return ascendingDefined;
-  if (typeof compare !== "function") throw new TypeError("compare is not a function");
-  return (a, b) => {
-    const x = compare(a, b);
-    if (x || x === 0) return x;
-    return (compare(b, b) === 0) - (compare(a, a) === 0);
-  };
-}
-
-export function ascendingDefined(a, b) {
-  return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
-}
Index: de_modules/d3-array/src/subset.js
===================================================================
--- node_modules/d3-array/src/subset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import superset from "./superset.js";
-
-export default function subset(values, other) {
-  return superset(other, values);
-}
Index: de_modules/d3-array/src/sum.js
===================================================================
--- node_modules/d3-array/src/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function sum(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
Index: de_modules/d3-array/src/superset.js
===================================================================
--- node_modules/d3-array/src/superset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-export default function superset(values, other) {
-  const iterator = values[Symbol.iterator](), set = new Set();
-  for (const o of other) {
-    const io = intern(o);
-    if (set.has(io)) continue;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) return false;
-      const ivalue = intern(value);
-      set.add(ivalue);
-      if (Object.is(io, ivalue)) break;
-    }
-  }
-  return true;
-}
-
-function intern(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
Index: de_modules/d3-array/src/threshold/freedmanDiaconis.js
===================================================================
--- node_modules/d3-array/src/threshold/freedmanDiaconis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import count from "../count.js";
-import quantile from "../quantile.js";
-
-export default function thresholdFreedmanDiaconis(values, min, max) {
-  const c = count(values), d = quantile(values, 0.75) - quantile(values, 0.25);
-  return c && d ? Math.ceil((max - min) / (2 * d * Math.pow(c, -1 / 3))) : 1;
-}
Index: de_modules/d3-array/src/threshold/scott.js
===================================================================
--- node_modules/d3-array/src/threshold/scott.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import count from "../count.js";
-import deviation from "../deviation.js";
-
-export default function thresholdScott(values, min, max) {
-  const c = count(values), d = deviation(values);
-  return c && d ? Math.ceil((max - min) * Math.cbrt(c) / (3.49 * d)) : 1;
-}
Index: de_modules/d3-array/src/threshold/sturges.js
===================================================================
--- node_modules/d3-array/src/threshold/sturges.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import count from "../count.js";
-
-export default function thresholdSturges(values) {
-  return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);
-}
Index: de_modules/d3-array/src/ticks.js
===================================================================
--- node_modules/d3-array/src/ticks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-const e10 = Math.sqrt(50),
-    e5 = Math.sqrt(10),
-    e2 = Math.sqrt(2);
-
-function tickSpec(start, stop, count) {
-  const step = (stop - start) / Math.max(0, count),
-      power = Math.floor(Math.log10(step)),
-      error = step / Math.pow(10, power),
-      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
-  let i1, i2, inc;
-  if (power < 0) {
-    inc = Math.pow(10, -power) / factor;
-    i1 = Math.round(start * inc);
-    i2 = Math.round(stop * inc);
-    if (i1 / inc < start) ++i1;
-    if (i2 / inc > stop) --i2;
-    inc = -inc;
-  } else {
-    inc = Math.pow(10, power) * factor;
-    i1 = Math.round(start / inc);
-    i2 = Math.round(stop / inc);
-    if (i1 * inc < start) ++i1;
-    if (i2 * inc > stop) --i2;
-  }
-  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
-  return [i1, i2, inc];
-}
-
-export default function ticks(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  if (!(count > 0)) return [];
-  if (start === stop) return [start];
-  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
-  if (!(i2 >= i1)) return [];
-  const n = i2 - i1 + 1, ticks = new Array(n);
-  if (reverse) {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;
-  } else {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;
-  }
-  return ticks;
-}
-
-export function tickIncrement(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  return tickSpec(start, stop, count)[2];
-}
-
-export function tickStep(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
-  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
-}
Index: de_modules/d3-array/src/transpose.js
===================================================================
--- node_modules/d3-array/src/transpose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import min from "./min.js";
-
-export default function transpose(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-
-function length(d) {
-  return d.length;
-}
Index: de_modules/d3-array/src/union.js
===================================================================
--- node_modules/d3-array/src/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {InternSet} from "internmap";
-
-export default function union(...others) {
-  const set = new InternSet();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
Index: de_modules/d3-array/src/variance.js
===================================================================
--- node_modules/d3-array/src/variance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-export default function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
Index: de_modules/d3-array/src/zip.js
===================================================================
--- node_modules/d3-array/src/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import transpose from "./transpose.js";
-
-export default function zip() {
-  return transpose(arguments);
-}
Index: de_modules/d3-axis/LICENSE
===================================================================
--- node_modules/d3-axis/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-axis/README.md
===================================================================
--- node_modules/d3-axis/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,210 +1,0 @@
-# d3-axis
-
-The axis component renders human-readable reference marks for [scales](https://github.com/d3/d3-scale). This alleviates one of the more tedious tasks in visualizing data.
-
-## Installing
-
-If you use npm, `npm install d3-axis`. You can also download the [latest release on GitHub](https://github.com/d3/d3-axis/releases/latest). For vanilla HTML in modern browsers, import d3-axis from Skypack:
-
-```html
-<script type="module">
-
-import {axisLeft} from "https://cdn.skypack.dev/d3-axis@3";
-
-const axis = axisLeft(scale);
-
-</script>
-```
-
-For legacy environments, you can load d3-axis’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-axis@3"></script>
-<script>
-
-const axis = d3.axisLeft(scale);
-
-</script>
-```
-
-[Try d3-axis in your browser.](https://observablehq.com/collection/@d3/d3-axis)
-
-## API Reference
-
-Regardless of orientation, axes are always rendered at the origin. To change the position of the axis with respect to the chart, specify a [transform attribute](http://www.w3.org/TR/SVG/coords.html#TransformAttribute) on the containing element. For example:
-
-```js
-d3.select("body").append("svg")
-    .attr("width", 1440)
-    .attr("height", 30)
-  .append("g")
-    .attr("transform", "translate(0,30)")
-    .call(axis);
-```
-
-The elements created by the axis are considered part of its public API. You can apply external stylesheets or modify the generated axis elements to [customize the axis appearance](https://observablehq.com/@d3/styled-axes).
-
-[<img alt="Custom Axis" src="https://raw.githubusercontent.com/d3/d3-axis/master/img/custom.png" width="420" height="219">](https://observablehq.com/@d3/styled-axes)
-
-An axis consists of a [path element](https://www.w3.org/TR/SVG/paths.html#PathElement) of class “domain” representing the extent of the scale’s domain, followed by transformed [g elements](https://www.w3.org/TR/SVG/struct.html#Groups) of class “tick” representing each of the scale’s ticks. Each tick has a [line element](https://www.w3.org/TR/SVG/shapes.html#LineElement) to draw the tick line, and a [text element](https://www.w3.org/TR/SVG/text.html#TextElement) for the tick label. For example, here is a typical bottom-oriented axis:
-
-```html
-<g fill="none" font-size="10" font-family="sans-serif" text-anchor="middle">
-  <path class="domain" stroke="currentColor" d="M0.5,6V0.5H880.5V6"></path>
-  <g class="tick" opacity="1" transform="translate(0.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">0.0</text>
-  </g>
-  <g class="tick" opacity="1" transform="translate(176.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">0.2</text>
-  </g>
-  <g class="tick" opacity="1" transform="translate(352.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">0.4</text>
-  </g>
-  <g class="tick" opacity="1" transform="translate(528.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">0.6</text>
-  </g>
-  <g class="tick" opacity="1" transform="translate(704.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">0.8</text>
-  </g>
-  <g class="tick" opacity="1" transform="translate(880.5,0)">
-    <line stroke="currentColor" y2="6"></line>
-    <text fill="currentColor" y="9" dy="0.71em">1.0</text>
-  </g>
-</g>
-```
-
-The orientation of an axis is fixed; to change the orientation, remove the old axis and create a new axis.
-
-<a name="axisTop" href="#axisTop">#</a> d3.<b>axisTop</b>(<i>scale</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-Constructs a new top-oriented axis generator for the given [scale](https://github.com/d3/d3-scale), with empty [tick arguments](#axis_ticks), a [tick size](#axis_tickSize) of 6 and [padding](#axis_tickPadding) of 3. In this orientation, ticks are drawn above the horizontal domain path.
-
-<a name="axisRight" href="#axisRight">#</a> d3.<b>axisRight</b>(<i>scale</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-Constructs a new right-oriented axis generator for the given [scale](https://github.com/d3/d3-scale), with empty [tick arguments](#axis_ticks), a [tick size](#axis_tickSize) of 6 and [padding](#axis_tickPadding) of 3. In this orientation, ticks are drawn to the right of the vertical domain path.
-
-<a name="axisBottom" href="#axisBottom">#</a> d3.<b>axisBottom</b>(<i>scale</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-Constructs a new bottom-oriented axis generator for the given [scale](https://github.com/d3/d3-scale), with empty [tick arguments](#axis_ticks), a [tick size](#axis_tickSize) of 6 and [padding](#axis_tickPadding) of 3. In this orientation, ticks are drawn below the horizontal domain path.
-
-<a name="axisLeft" href="#axisLeft">#</a> d3.<b>axisLeft</b>(<i>scale</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-Constructs a new left-oriented axis generator for the given [scale](https://github.com/d3/d3-scale), with empty [tick arguments](#axis_ticks), a [tick size](#axis_tickSize) of 6 and [padding](#axis_tickPadding) of 3. In this orientation, ticks are drawn to the left of the vertical domain path.
-
-<a name="_axis" href="#_axis">#</a> <i>axis</i>(<i>context</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-Render the axis to the given *context*, which may be either a [selection](https://github.com/d3/d3-selection) of SVG containers (either SVG or G elements) or a corresponding [transition](https://github.com/d3/d3-transition).
-
-<a name="axis_scale" href="#axis_scale">#</a> <i>axis</i>.<b>scale</b>([<i>scale</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *scale* is specified, sets the [scale](https://github.com/d3/d3-scale) and returns the axis. If *scale* is not specified, returns the current scale.
-
-<a name="axis_ticks" href="#axis_ticks">#</a> <i>axis</i>.<b>ticks</b>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-<br><a href="#axis_ticks">#</a> <i>axis</i>.<b>ticks</b>([<i>count</i>[, <i>specifier</i>]])
-<br><a href="#axis_ticks">#</a> <i>axis</i>.<b>ticks</b>([<i>interval</i>[, <i>specifier</i>]])
-
-Sets the *arguments* that will be passed to [*scale*.ticks](https://github.com/d3/d3-scale/blob/master/README.md#continuous_ticks) and [*scale*.tickFormat](https://github.com/d3/d3-scale/blob/master/README.md#continuous_tickFormat) when the axis is [rendered](#_axis), and returns the axis generator. The meaning of the *arguments* depends on the [axis’ scale](#axis_scale) type: most commonly, the arguments are a suggested *count* for the number of ticks (or a [time *interval*](https://github.com/d3/d3-time) for time scales), and an optional [format *specifier*](https://github.com/d3/d3-format) to customize how the tick values are formatted.
-
-This method has no effect if the scale does not implement *scale*.ticks, as with [band](https://github.com/d3/d3-scale/blob/master/README.md#band-scales) and [point](https://github.com/d3/d3-scale/blob/master/README.md#point-scales) scales. To set the tick values explicitly, use [*axis*.tickValues](#axis_tickValues). To set the tick format explicitly, use [*axis*.tickFormat](#axis_tickFormat).
-
-For example, to generate twenty ticks with SI-prefix formatting on a linear scale, say:
-
-```js
-axis.ticks(20, "s");
-```
-
-To generate ticks every fifteen minutes with a time scale, say:
-
-```js
-axis.ticks(d3.timeMinute.every(15));
-```
-
-This method is also a convenience function for [*axis*.tickArguments](#axis_tickArguments). For example, this:
-
-```js
-axis.ticks(10);
-```
-
-Is equivalent to:
-
-```js
-axis.tickArguments([10]);
-```
-
-To generate tick values directly, use [*scale*.ticks](https://github.com/d3/d3-scale/blob/master/README.md#continuous_ticks).
-
-<a name="axis_tickArguments" href="#axis_tickArguments">#</a> <i>axis</i>.<b>tickArguments</b>([<i>arguments</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *arguments* is specified, sets the *arguments* that will be passed to [*scale*.ticks](https://github.com/d3/d3-scale/blob/master/README.md#continuous_ticks) and [*scale*.tickFormat](https://github.com/d3/d3-scale/blob/master/README.md#continuous_tickFormat) when the axis is [rendered](#_axis), and returns the axis generator. The meaning of the *arguments* depends on the [axis’ scale](#axis_scale) type: most commonly, the arguments are a suggested *count* for the number of ticks (or a [time *interval*](https://github.com/d3/d3-time) for time scales), and an optional [format *specifier*](https://github.com/d3/d3-format) to customize how the tick values are formatted.
-
-If *arguments* is specified, this method has no effect if the scale does not implement *scale*.ticks, as with [band](https://github.com/d3/d3-scale/blob/master/README.md#band-scales) and [point](https://github.com/d3/d3-scale/blob/master/README.md#point-scales) scales. To set the tick values explicitly, use [*axis*.tickValues](#axis_tickValues). To set the tick format explicitly, use [*axis*.tickFormat](#axis_tickFormat).
-
-If *arguments* is not specified, returns the current tick arguments, which defaults to the empty array.
-
-For example, to generate twenty ticks with SI-prefix formatting on a linear scale, say:
-
-```js
-axis.tickArguments([20, "s"]);
-```
-
-To generate ticks every fifteen minutes with a time scale, say:
-
-```js
-axis.tickArguments([d3.timeMinute.every(15)]);
-```
-
-See also [*axis*.ticks](#axis_ticks).
-
-<a name="axis_tickValues" href="#axis_tickValues">#</a> <i>axis</i>.<b>tickValues</b>([<i>values</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If a *values* iterable is specified, the specified values are used for ticks rather than using the scale’s automatic tick generator. If *values* is null, clears any previously-set explicit tick values and reverts back to the scale’s tick generator. If *values* is not specified, returns the current tick values, which defaults to null. For example, to generate ticks at specific values:
-
-```js
-var xAxis = d3.axisBottom(x)
-    .tickValues([1, 2, 3, 5, 8, 13, 21]);
-```
-
-The explicit tick values take precedent over the tick arguments set by [*axis*.tickArguments](#axis_tickArguments). However, any tick arguments will still be passed to the scale’s [tickFormat](#axis_tickFormat) function if a tick format is not also set.
-
-<a name="axis_tickFormat" href="#axis_tickFormat">#</a> <i>axis</i>.<b>tickFormat</b>([<i>format</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *format* is specified, sets the tick format function and returns the axis. If *format* is not specified, returns the current format function, which defaults to null. A null format indicates that the scale’s default formatter should be used, which is generated by calling [*scale*.tickFormat](https://github.com/d3/d3-scale/blob/master/README.md#continuous_tickFormat). In this case, the arguments specified by [*axis*.tickArguments](#axis_tickArguments) are likewise passed to *scale*.tickFormat.
-
-See [d3-format](https://github.com/d3/d3-format) and [d3-time-format](https://github.com/d3/d3-time-format) for help creating formatters. For example, to display integers with comma-grouping for thousands:
-
-```js
-axis.tickFormat(d3.format(",.0f"));
-```
-
-More commonly, a format specifier is passed to [*axis*.ticks](#axis_ticks):
-
-```js
-axis.ticks(10, ",f");
-```
-
-This has the advantage of setting the format precision automatically based on the tick interval.
-
-<a name="axis_tickSize" href="#axis_tickSize">#</a> <i>axis</i>.<b>tickSize</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *size* is specified, sets the [inner](#axis_tickSizeInner) and [outer](#axis_tickSizeOuter) tick size to the specified value and returns the axis. If *size* is not specified, returns the current inner tick size, which defaults to 6.
-
-<a name="axis_tickSizeInner" href="#axis_tickSizeInner">#</a> <i>axis</i>.<b>tickSizeInner</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *size* is specified, sets the inner tick size to the specified value and returns the axis. If *size* is not specified, returns the current inner tick size, which defaults to 6. The inner tick size controls the length of the tick lines, offset from the native position of the axis.
-
-<a name="axis_tickSizeOuter" href="#axis_tickSizeOuter">#</a> <i>axis</i>.<b>tickSizeOuter</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *size* is specified, sets the outer tick size to the specified value and returns the axis. If *size* is not specified, returns the current outer tick size, which defaults to 6. The outer tick size controls the length of the square ends of the domain path, offset from the native position of the axis. Thus, the “outer ticks” are not actually ticks but part of the domain path, and their position is determined by the associated scale’s domain extent. Thus, outer ticks may overlap with the first or last inner tick. An outer tick size of 0 suppresses the square ends of the domain path, instead producing a straight line.
-
-<a name="axis_tickPadding" href="#axis_tickPadding">#</a> <i>axis</i>.<b>tickPadding</b>([<i>padding</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *padding* is specified, sets the padding to the specified value in pixels and returns the axis. If *padding* is not specified, returns the current padding which defaults to 3 pixels.
-
-<a name="axis_offset" href="#axis_offset">#</a> <i>axis</i>.<b>offset</b>([<i>offset</i>]) · [Source](https://github.com/d3/d3-axis/blob/master/src/axis.js)
-
-If *offset* is specified, sets the offset to the specified value in pixels and returns the axis. If *offset* is not specified, returns the current offset which defaults to 0 on devices with a [devicePixelRatio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) greater than 1, and 0.5px otherwise. This default offset ensures crisp edges on low-resolution devices.
Index: de_modules/d3-axis/dist/d3-axis.js
===================================================================
--- node_modules/d3-axis/dist/d3-axis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,192 +1,0 @@
-// https://d3js.org/d3-axis/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-function identity(x) {
-  return x;
-}
-
-var top = 1,
-    right = 2,
-    bottom = 3,
-    left = 4,
-    epsilon = 1e-6;
-
-function translateX(x) {
-  return "translate(" + x + ",0)";
-}
-
-function translateY(y) {
-  return "translate(0," + y + ")";
-}
-
-function number(scale) {
-  return d => +scale(d);
-}
-
-function center(scale, offset) {
-  offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
-  if (scale.round()) offset = Math.round(offset);
-  return d => +scale(d) + offset;
-}
-
-function entering() {
-  return !this.__axis;
-}
-
-function axis(orient, scale) {
-  var tickArguments = [],
-      tickValues = null,
-      tickFormat = null,
-      tickSizeInner = 6,
-      tickSizeOuter = 6,
-      tickPadding = 3,
-      offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5,
-      k = orient === top || orient === left ? -1 : 1,
-      x = orient === left || orient === right ? "x" : "y",
-      transform = orient === top || orient === bottom ? translateX : translateY;
-
-  function axis(context) {
-    var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
-        format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,
-        spacing = Math.max(tickSizeInner, 0) + tickPadding,
-        range = scale.range(),
-        range0 = +range[0] + offset,
-        range1 = +range[range.length - 1] + offset,
-        position = (scale.bandwidth ? center : number)(scale.copy(), offset),
-        selection = context.selection ? context.selection() : context,
-        path = selection.selectAll(".domain").data([null]),
-        tick = selection.selectAll(".tick").data(values, scale).order(),
-        tickExit = tick.exit(),
-        tickEnter = tick.enter().append("g").attr("class", "tick"),
-        line = tick.select("line"),
-        text = tick.select("text");
-
-    path = path.merge(path.enter().insert("path", ".tick")
-        .attr("class", "domain")
-        .attr("stroke", "currentColor"));
-
-    tick = tick.merge(tickEnter);
-
-    line = line.merge(tickEnter.append("line")
-        .attr("stroke", "currentColor")
-        .attr(x + "2", k * tickSizeInner));
-
-    text = text.merge(tickEnter.append("text")
-        .attr("fill", "currentColor")
-        .attr(x, k * spacing)
-        .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
-
-    if (context !== selection) {
-      path = path.transition(context);
-      tick = tick.transition(context);
-      line = line.transition(context);
-      text = text.transition(context);
-
-      tickExit = tickExit.transition(context)
-          .attr("opacity", epsilon)
-          .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); });
-
-      tickEnter
-          .attr("opacity", epsilon)
-          .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });
-    }
-
-    tickExit.remove();
-
-    path
-        .attr("d", orient === left || orient === right
-            ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1)
-            : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1));
-
-    tick
-        .attr("opacity", 1)
-        .attr("transform", function(d) { return transform(position(d) + offset); });
-
-    line
-        .attr(x + "2", k * tickSizeInner);
-
-    text
-        .attr(x, k * spacing)
-        .text(format);
-
-    selection.filter(entering)
-        .attr("fill", "none")
-        .attr("font-size", 10)
-        .attr("font-family", "sans-serif")
-        .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
-
-    selection
-        .each(function() { this.__axis = position; });
-  }
-
-  axis.scale = function(_) {
-    return arguments.length ? (scale = _, axis) : scale;
-  };
-
-  axis.ticks = function() {
-    return tickArguments = Array.from(arguments), axis;
-  };
-
-  axis.tickArguments = function(_) {
-    return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();
-  };
-
-  axis.tickValues = function(_) {
-    return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();
-  };
-
-  axis.tickFormat = function(_) {
-    return arguments.length ? (tickFormat = _, axis) : tickFormat;
-  };
-
-  axis.tickSize = function(_) {
-    return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeInner = function(_) {
-    return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeOuter = function(_) {
-    return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
-  };
-
-  axis.tickPadding = function(_) {
-    return arguments.length ? (tickPadding = +_, axis) : tickPadding;
-  };
-
-  axis.offset = function(_) {
-    return arguments.length ? (offset = +_, axis) : offset;
-  };
-
-  return axis;
-}
-
-function axisTop(scale) {
-  return axis(top, scale);
-}
-
-function axisRight(scale) {
-  return axis(right, scale);
-}
-
-function axisBottom(scale) {
-  return axis(bottom, scale);
-}
-
-function axisLeft(scale) {
-  return axis(left, scale);
-}
-
-exports.axisBottom = axisBottom;
-exports.axisLeft = axisLeft;
-exports.axisRight = axisRight;
-exports.axisTop = axisTop;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-axis/dist/d3-axis.min.js
===================================================================
--- node_modules/d3-axis/dist/d3-axis.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-axis/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t){return t}var e=1e-6;function r(t){return"translate("+t+",0)"}function i(t){return"translate(0,"+t+")"}function a(t){return n=>+t(n)}function o(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function u(){return!this.__axis}function c(t,c){var l=[],s=null,f=null,d=6,m=6,h=3,p="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,g=1===t||4===t?-1:1,x=4===t||2===t?"x":"y",y=1===t||3===t?r:i;function k(r){var i=null==s?c.ticks?c.ticks.apply(c,l):c.domain():s,k=null==f?c.tickFormat?c.tickFormat.apply(c,l):n:f,M=Math.max(d,0)+h,_=c.range(),b=+_[0]+p,v=+_[_.length-1]+p,A=(c.bandwidth?o:a)(c.copy(),p),w=r.selection?r.selection():r,F=w.selectAll(".domain").data([null]),V=w.selectAll(".tick").data(i,c).order(),z=V.exit(),H=V.enter().append("g").attr("class","tick"),C=V.select("line"),P=V.select("text");F=F.merge(F.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),V=V.merge(H),C=C.merge(H.append("line").attr("stroke","currentColor").attr(x+"2",g*d)),P=P.merge(H.append("text").attr("fill","currentColor").attr(x,g*M).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),r!==w&&(F=F.transition(r),V=V.transition(r),C=C.transition(r),P=P.transition(r),z=z.transition(r).attr("opacity",e).attr("transform",(function(t){return isFinite(t=A(t))?y(t+p):this.getAttribute("transform")})),H.attr("opacity",e).attr("transform",(function(t){var n=this.parentNode.__axis;return y((n&&isFinite(n=n(t))?n:A(t))+p)}))),z.remove(),F.attr("d",4===t||2===t?m?"M"+g*m+","+b+"H"+p+"V"+v+"H"+g*m:"M"+p+","+b+"V"+v:m?"M"+b+","+g*m+"V"+p+"H"+v+"V"+g*m:"M"+b+","+p+"H"+v),V.attr("opacity",1).attr("transform",(function(t){return y(A(t)+p)})),C.attr(x+"2",g*d),P.attr(x,g*M).text(k),w.filter(u).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),w.each((function(){this.__axis=A}))}return k.scale=function(t){return arguments.length?(c=t,k):c},k.ticks=function(){return l=Array.from(arguments),k},k.tickArguments=function(t){return arguments.length?(l=null==t?[]:Array.from(t),k):l.slice()},k.tickValues=function(t){return arguments.length?(s=null==t?null:Array.from(t),k):s&&s.slice()},k.tickFormat=function(t){return arguments.length?(f=t,k):f},k.tickSize=function(t){return arguments.length?(d=m=+t,k):d},k.tickSizeInner=function(t){return arguments.length?(d=+t,k):d},k.tickSizeOuter=function(t){return arguments.length?(m=+t,k):m},k.tickPadding=function(t){return arguments.length?(h=+t,k):h},k.offset=function(t){return arguments.length?(p=+t,k):p},k}t.axisBottom=function(t){return c(3,t)},t.axisLeft=function(t){return c(4,t)},t.axisRight=function(t){return c(2,t)},t.axisTop=function(t){return c(1,t)},Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-axis/package.json
===================================================================
--- node_modules/d3-axis/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "d3-axis",
-  "version": "3.0.0",
-  "description": "Displays automatic reference lines for scales.",
-  "homepage": "https://d3js.org/d3-axis/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-axis.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "axis",
-    "scale",
-    "visualization"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-axis.min.js",
-  "unpkg": "dist/d3-axis.min.js",
-  "exports": {
-    "umd": "./dist/d3-axis.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "d3-scale": "2 - 4",
-    "d3-selection": "1 - 3",
-    "eslint": "7",
-    "js-beautify": "1",
-    "jsdom": "16",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c && git push",
-    "postpublish": "git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-axis/src/axis.js
===================================================================
--- node_modules/d3-axis/src/axis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,174 +1,0 @@
-import identity from "./identity.js";
-
-var top = 1,
-    right = 2,
-    bottom = 3,
-    left = 4,
-    epsilon = 1e-6;
-
-function translateX(x) {
-  return "translate(" + x + ",0)";
-}
-
-function translateY(y) {
-  return "translate(0," + y + ")";
-}
-
-function number(scale) {
-  return d => +scale(d);
-}
-
-function center(scale, offset) {
-  offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
-  if (scale.round()) offset = Math.round(offset);
-  return d => +scale(d) + offset;
-}
-
-function entering() {
-  return !this.__axis;
-}
-
-function axis(orient, scale) {
-  var tickArguments = [],
-      tickValues = null,
-      tickFormat = null,
-      tickSizeInner = 6,
-      tickSizeOuter = 6,
-      tickPadding = 3,
-      offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5,
-      k = orient === top || orient === left ? -1 : 1,
-      x = orient === left || orient === right ? "x" : "y",
-      transform = orient === top || orient === bottom ? translateX : translateY;
-
-  function axis(context) {
-    var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
-        format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,
-        spacing = Math.max(tickSizeInner, 0) + tickPadding,
-        range = scale.range(),
-        range0 = +range[0] + offset,
-        range1 = +range[range.length - 1] + offset,
-        position = (scale.bandwidth ? center : number)(scale.copy(), offset),
-        selection = context.selection ? context.selection() : context,
-        path = selection.selectAll(".domain").data([null]),
-        tick = selection.selectAll(".tick").data(values, scale).order(),
-        tickExit = tick.exit(),
-        tickEnter = tick.enter().append("g").attr("class", "tick"),
-        line = tick.select("line"),
-        text = tick.select("text");
-
-    path = path.merge(path.enter().insert("path", ".tick")
-        .attr("class", "domain")
-        .attr("stroke", "currentColor"));
-
-    tick = tick.merge(tickEnter);
-
-    line = line.merge(tickEnter.append("line")
-        .attr("stroke", "currentColor")
-        .attr(x + "2", k * tickSizeInner));
-
-    text = text.merge(tickEnter.append("text")
-        .attr("fill", "currentColor")
-        .attr(x, k * spacing)
-        .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
-
-    if (context !== selection) {
-      path = path.transition(context);
-      tick = tick.transition(context);
-      line = line.transition(context);
-      text = text.transition(context);
-
-      tickExit = tickExit.transition(context)
-          .attr("opacity", epsilon)
-          .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); });
-
-      tickEnter
-          .attr("opacity", epsilon)
-          .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });
-    }
-
-    tickExit.remove();
-
-    path
-        .attr("d", orient === left || orient === right
-            ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1)
-            : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1));
-
-    tick
-        .attr("opacity", 1)
-        .attr("transform", function(d) { return transform(position(d) + offset); });
-
-    line
-        .attr(x + "2", k * tickSizeInner);
-
-    text
-        .attr(x, k * spacing)
-        .text(format);
-
-    selection.filter(entering)
-        .attr("fill", "none")
-        .attr("font-size", 10)
-        .attr("font-family", "sans-serif")
-        .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
-
-    selection
-        .each(function() { this.__axis = position; });
-  }
-
-  axis.scale = function(_) {
-    return arguments.length ? (scale = _, axis) : scale;
-  };
-
-  axis.ticks = function() {
-    return tickArguments = Array.from(arguments), axis;
-  };
-
-  axis.tickArguments = function(_) {
-    return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();
-  };
-
-  axis.tickValues = function(_) {
-    return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();
-  };
-
-  axis.tickFormat = function(_) {
-    return arguments.length ? (tickFormat = _, axis) : tickFormat;
-  };
-
-  axis.tickSize = function(_) {
-    return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeInner = function(_) {
-    return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeOuter = function(_) {
-    return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
-  };
-
-  axis.tickPadding = function(_) {
-    return arguments.length ? (tickPadding = +_, axis) : tickPadding;
-  };
-
-  axis.offset = function(_) {
-    return arguments.length ? (offset = +_, axis) : offset;
-  };
-
-  return axis;
-}
-
-export function axisTop(scale) {
-  return axis(top, scale);
-}
-
-export function axisRight(scale) {
-  return axis(right, scale);
-}
-
-export function axisBottom(scale) {
-  return axis(bottom, scale);
-}
-
-export function axisLeft(scale) {
-  return axis(left, scale);
-}
Index: de_modules/d3-axis/src/identity.js
===================================================================
--- node_modules/d3-axis/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x) {
-  return x;
-}
Index: de_modules/d3-axis/src/index.js
===================================================================
--- node_modules/d3-axis/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export {
-  axisTop,
-  axisRight,
-  axisBottom,
-  axisLeft
-} from "./axis.js";
Index: de_modules/d3-brush/LICENSE
===================================================================
--- node_modules/d3-brush/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-brush/README.md
===================================================================
--- node_modules/d3-brush/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,185 +1,0 @@
-# d3-brush
-
-Brushing is the interactive specification a one- or two-dimensional selected region using a pointing gesture, such as by clicking and dragging the mouse. Brushing is often used to select discrete elements, such as dots in a scatterplot or files on a desktop. It can also be used to zoom-in to a region of interest, or to select continuous regions for [cross-filtering data](http://square.github.io/crossfilter/) or live histograms:
-
-[<img alt="Mona Lisa Histogram" src="https://raw.githubusercontent.com/d3/d3-brush/master/img/mona-lisa.jpg" width="420" height="219">](https://observablehq.com/@d3/mona-lisa-histogram)
-
-The d3-brush module implements brushing for mouse and touch events using [SVG](https://www.w3.org/TR/SVG/). Click and drag on the brush selection to translate the selection. Click and drag on one of the selection handles to move the corresponding edge (or edges) of the selection. Click and drag on the invisible overlay to define a new brush selection, or click anywhere within the brushable region while holding down the META (⌘) key. Holding down the ALT (⌥) key while moving the brush causes it to reposition around its center, while holding down SPACE locks the current brush size, allowing only translation.
-
-Brushes also support programmatic control. For example, you can listen to [*end* events](#brush-events), and then initiate a transition with [*brush*.move](#brush_move) to snap the brush selection to semantic boundaries:
-
-[<img alt="Brush Snapping" src="https://raw.githubusercontent.com/d3/d3-brush/master/img/snapping.png" width="420" height="219">](https://observablehq.com/@d3/brush-snapping-transitions)
-
-Or you can have the brush recenter when you click outside the current selection:
-
-[<img alt="Click-to-Recenter" src="https://raw.githubusercontent.com/d3/d3-brush/master/img/recenter.jpg" width="420" height="219">](https://observablehq.com/@d3/click-to-recenter-brush)
-
-## Installing
-
-If you use npm, `npm install d3-brush`. You can also download the [latest release on GitHub](https://github.com/d3/d3-brush/releases/latest). For vanilla HTML in modern browsers, import d3-brush from Skypack:
-
-```html
-<script type="module">
-
-import {brushX} from "https://cdn.skypack.dev/d3-brush@3";
-
-const brush = brushX();
-
-</script>
-```
-
-For legacy environments, you can load d3-brush’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-ease@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-interpolate@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-selection@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-timer@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-drag@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-transition@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-brush@3"></script>
-<script>
-
-const brush = d3.brushX();
-
-</script>
-```
-
-
-[Try d3-brush in your browser.](https://observablehq.com/collection/@d3/d3-brush)
-
-## API Reference
-
-<a href="#brush" name="brush">#</a> d3.<b>brush</b>() · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/brushable-scatterplot)
-
-Creates a new two-dimensional brush.
-
-<a href="#brushX" name="brushX">#</a> d3.<b>brushX</b>() · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/focus-context)
-
-Creates a new one-dimensional brush along the *x*-dimension.
-
-<a href="#brushY" name="brushY">#</a> d3.<b>brushY</b>() · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js)
-
-Creates a new one-dimensional brush along the *y*-dimension.
-
-<a href="#_brush" name="_brush">#</a> <i>brush</i>(<i>group</i>) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/brushable-scatterplot-matrix)
-
-Applies the brush to the specified *group*, which must be a [selection](https://github.com/d3/d3-selection) of SVG [G elements](https://www.w3.org/TR/SVG/struct.html#Groups). This function is typically not invoked directly, and is instead invoked via [*selection*.call](https://github.com/d3/d3-selection#selection_call). For example, to render a brush:
-
-```js
-svg.append("g")
-    .attr("class", "brush")
-    .call(d3.brush().on("brush", brushed));
-```
-
-Internally, the brush uses [*selection*.on](https://github.com/d3/d3-selection#selection_on) to bind the necessary event listeners for dragging. The listeners use the name `.brush`, so you can subsequently unbind the brush event listeners as follows:
-
-```js
-group.on(".brush", null);
-```
-
-The brush also creates the SVG elements necessary to display the brush selection and to receive input events for interaction. You can add, remove or modify these elements as desired to change the brush appearance; you can also apply stylesheets to modify the brush appearance. The structure of a two-dimensional brush is as follows:
-
-```html
-<g class="brush" fill="none" pointer-events="all" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
-  <rect class="overlay" pointer-events="all" cursor="crosshair" x="0" y="0" width="960" height="500"></rect>
-  <rect class="selection" cursor="move" fill="#777" fill-opacity="0.3" stroke="#fff" shape-rendering="crispEdges" x="112" y="194" width="182" height="83"></rect>
-  <rect class="handle handle--n" cursor="ns-resize" x="107" y="189" width="192" height="10"></rect>
-  <rect class="handle handle--e" cursor="ew-resize" x="289" y="189" width="10" height="93"></rect>
-  <rect class="handle handle--s" cursor="ns-resize" x="107" y="272" width="192" height="10"></rect>
-  <rect class="handle handle--w" cursor="ew-resize" x="107" y="189" width="10" height="93"></rect>
-  <rect class="handle handle--nw" cursor="nwse-resize" x="107" y="189" width="10" height="10"></rect>
-  <rect class="handle handle--ne" cursor="nesw-resize" x="289" y="189" width="10" height="10"></rect>
-  <rect class="handle handle--se" cursor="nwse-resize" x="289" y="272" width="10" height="10"></rect>
-  <rect class="handle handle--sw" cursor="nesw-resize" x="107" y="272" width="10" height="10"></rect>
-</g>
-```
-
-The overlay rect covers the brushable area defined by [*brush*.extent](#brush_extent). The selection rect covers the area defined by the current [brush selection](#brushSelection). The handle rects cover the edges and corners of the brush selection, allowing the corresponding value in the brush selection to be modified interactively. To modify the brush selection programmatically, use [*brush*.move](#brush_move).
-
-<a href="#brush_move" name="brush_move">#</a> <i>brush</i>.<b>move</b>(<i>group</i>, <i>selection</i>[, <i>event</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/d/93b91f86f9ebc9b9)
-
-Sets the active *selection* of the brush on the specified *group*, which must be a [selection](https://github.com/d3/d3-selection) or a [transition](https://github.com/d3/d3-transition) of SVG [G elements](https://www.w3.org/TR/SVG/struct.html#Groups). The *selection* must be defined as an array of numbers, or null to clear the brush selection. For a [two-dimensional brush](#brush), it must be defined as [[*x0*, *y0*], [*x1*, *y1*]], where *x0* is the minimum *x*-value, *y0* is the minimum *y*-value, *x1* is the maximum *x*-value, and *y1* is the maximum *y*-value. For an [*x*-brush](#brushX), it must be defined as [*x0*, *x1*]; for a [*y*-brush](#brushY), it must be defined as [*y0*, *y1*]. The selection may also be specified as a function which returns such an array; if a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element. The returned array defines the brush selection for that element.
-
-<a href="#brush_clear" name="brush_clear">#</a> <i>brush</i>.<b>clear</b>(<i>group</i>[, <i>event</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/double-click-brush-clear)
-
-An alias for [*brush*.move](#brush_move) with the null selection.
-
-<a href="#brush_extent" name="brush_extent">#</a> <i>brush</i>.<b>extent</b>([<i>extent</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/brush-snapping)
-
-If *extent* is specified, sets the brushable extent to the specified array of points [[*x0*, *y0*], [*x1*, *y1*]], where [*x0*, *y0*] is the top-left corner and [*x1*, *y1*] is the bottom-right corner, and returns this brush. The *extent* may also be specified as a function which returns such an array; if a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element. If *extent* is not specified, returns the current extent accessor, which defaults to:
-
-```js
-function defaultExtent() {
-  var svg = this.ownerSVGElement || this;
-  if (svg.hasAttribute("viewBox")) {
-    svg = svg.viewBox.baseVal;
-    return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
-  }
-  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
-}
-```
-
-This default implementation requires that the owner SVG element have a defined [viewBox](https://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute), or [width](https://www.w3.org/TR/SVG/struct.html#SVGElementWidthAttribute) and [height](https://www.w3.org/TR/SVG/struct.html#SVGElementHeightAttribute) attributes. Alternatively, consider using [*element*.getBoundingClientRect](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect). (In Firefox, [*element*.clientWidth](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth) and [*element*.clientHeight](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight) is zero for SVG elements!)
-
-The brush extent determines the size of the invisible overlay and also constrains the brush selection; the brush selection cannot go outside the brush extent.
-
-<a href="#brush_filter" name="brush_filter">#</a> <i>brush</i>.<b>filter</b>([<i>filter</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/brush-filter)
-
-If *filter* is specified, sets the filter to the specified function and returns the brush. If *filter* is not specified, returns the current filter, which defaults to:
-
-```js
-function filter(event) {
-  return !event.ctrlKey && !event.button;
-}
-```
-
-If the filter returns falsey, the initiating event is ignored and no brush gesture is started. Thus, the filter determines which input events are ignored. The default filter ignores mousedown events on secondary buttons, since those buttons are typically intended for other purposes, such as the context menu.
-
-<a href="#brush_touchable" name="brush_touchable">#</a> <i>brush</i>.<b>touchable</b>([<i>touchable</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js)
-
-If *touchable* is specified, sets the touch support detector to the specified function and returns the brush. If *touchable* is not specified, returns the current touch support detector, which defaults to:
-
-```js
-function touchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-```
-
-Touch event listeners are only registered if the detector returns truthy for the corresponding element when the brush is [applied](#_brush). The default detector works well for most browsers that are capable of touch input, but not all; Chrome’s mobile device emulator, for example, fails detection.
-
-<a href="#brush_keyModifiers" name="brush_keyModifiers">#</a> <i>brush</i>.<b>keyModifiers</b>([<i>modifiers</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js)
-
-If *modifiers* is specified, sets whether the brush listens to key events during brushing and returns the brush. If *modifiers* is not specified, returns the current behavior, which defaults to true.
-
-<a href="#brush_handleSize" name="brush_handleSize">#</a> <i>brush</i>.<b>handleSize</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js)
-
-If *size* is specified, sets the size of the brush handles to the specified number and returns the brush. If *size* is not specified, returns the current handle size, which defaults to six. This method must be called before [applying the brush](#_brush) to a selection; changing the handle size does not affect brushes that were previously rendered.
-
-<a href="#brush_on" name="brush_on">#</a> <i>brush</i>.<b>on</b>(<i>typenames</i>[, <i>listener</i>]) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js)
-
-If *listener* is specified, sets the event *listener* for the specified *typenames* and returns the brush. If an event listener was already registered for the same type and name, the existing listener is removed before the new listener is added. If *listener* is null, removes the current event listeners for the specified *typenames*, if any. If *listener* is not specified, returns the first currently-assigned listener matching the specified *typenames*, if any. When a specified event is dispatched, each *listener* will be invoked with the same context and arguments as [*selection*.on](https://github.com/d3/d3-selection#selection_on) listeners: the current event `event` and datum `d`, with the `this` context as the current DOM element.
-
-The *typenames* is a string containing one or more *typename* separated by whitespace. Each *typename* is a *type*, optionally followed by a period (`.`) and a *name*, such as `brush.foo` and `brush.bar`; the name allows multiple listeners to be registered for the same *type*. The *type* must be one of the following:
-
-* `start` - at the start of a brush gesture, such as on mousedown.
-* `brush` - when the brush moves, such as on mousemove.
-* `end` - at the end of a brush gesture, such as on mouseup.
-
-See [*dispatch*.on](https://github.com/d3/d3-dispatch#dispatch_on) and [Brush Events](#brush-events) for more.
-
-<a href="#brushSelection" name="brushSelection">#</a> d3.<b>brushSelection</b>(<i>node</i>) · [Source](https://github.com/d3/d3-brush/blob/master/src/brush.js), [Examples](https://observablehq.com/@d3/double-click-brush-clear)
-
-Returns the current brush selection for the specified *node*. Internally, an element’s brush state is stored as *element*.\_\_brush; however, you should use this method rather than accessing it directly. If the given *node* has no selection, returns null. Otherwise, the *selection* is defined as an array of numbers. For a [two-dimensional brush](#brush), it is [[*x0*, *y0*], [*x1*, *y1*]], where *x0* is the minimum *x*-value, *y0* is the minimum *y*-value, *x1* is the maximum *x*-value, and *y1* is the maximum *y*-value. For an [*x*-brush](#brushX), it is [*x0*, *x1*]; for a [*y*-brush](#brushY), it is [*y0*, *y1*].
-
-### Brush Events
-
-When a [brush event listener](#brush_on) is invoked, it receives the current brush event. The *event* object exposes several fields:
-
-* `target` - the associated [brush behavior](#brush).
-* `type` - the string “start”, “brush” or “end”; see [*brush*.on](#brush_on).
-* `selection` - the current [brush selection](#brushSelection).
-* `sourceEvent` - the underlying input event, such as mousemove or touchmove.
-* `mode` - the string “drag”, “space”, “handle” or “center”; the mode of the brush.
Index: de_modules/d3-brush/dist/d3-brush.js
===================================================================
--- node_modules/d3-brush/dist/d3-brush.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,656 +1,0 @@
-// https://d3js.org/d3-brush/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-dispatch'), require('d3-drag'), require('d3-interpolate'), require('d3-selection'), require('d3-transition')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-dispatch', 'd3-drag', 'd3-interpolate', 'd3-selection', 'd3-transition'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3, global.d3, global.d3));
-}(this, (function (exports, d3Dispatch, d3Drag, d3Interpolate, d3Selection, d3Transition) { 'use strict';
-
-var constant = x => () => x;
-
-function BrushEvent(type, {
-  sourceEvent,
-  target,
-  selection,
-  mode,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    selection: {value: selection, enumerable: true, configurable: true},
-    mode: {value: mode, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-var MODE_DRAG = {name: "drag"},
-    MODE_SPACE = {name: "space"},
-    MODE_HANDLE = {name: "handle"},
-    MODE_CENTER = {name: "center"};
-
-const {abs, max, min} = Math;
-
-function number1(e) {
-  return [+e[0], +e[1]];
-}
-
-function number2(e) {
-  return [number1(e[0]), number1(e[1])];
-}
-
-var X = {
-  name: "x",
-  handles: ["w", "e"].map(type),
-  input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },
-  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
-};
-
-var Y = {
-  name: "y",
-  handles: ["n", "s"].map(type),
-  input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },
-  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
-};
-
-var XY = {
-  name: "xy",
-  handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
-  input: function(xy) { return xy == null ? null : number2(xy); },
-  output: function(xy) { return xy; }
-};
-
-var cursors = {
-  overlay: "crosshair",
-  selection: "move",
-  n: "ns-resize",
-  e: "ew-resize",
-  s: "ns-resize",
-  w: "ew-resize",
-  nw: "nwse-resize",
-  ne: "nesw-resize",
-  se: "nwse-resize",
-  sw: "nesw-resize"
-};
-
-var flipX = {
-  e: "w",
-  w: "e",
-  nw: "ne",
-  ne: "nw",
-  se: "sw",
-  sw: "se"
-};
-
-var flipY = {
-  n: "s",
-  s: "n",
-  nw: "sw",
-  ne: "se",
-  se: "ne",
-  sw: "nw"
-};
-
-var signsX = {
-  overlay: +1,
-  selection: +1,
-  n: null,
-  e: +1,
-  s: null,
-  w: -1,
-  nw: -1,
-  ne: +1,
-  se: +1,
-  sw: -1
-};
-
-var signsY = {
-  overlay: +1,
-  selection: +1,
-  n: -1,
-  e: null,
-  s: +1,
-  w: null,
-  nw: -1,
-  ne: -1,
-  se: +1,
-  sw: +1
-};
-
-function type(t) {
-  return {type: t};
-}
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultExtent() {
-  var svg = this.ownerSVGElement || this;
-  if (svg.hasAttribute("viewBox")) {
-    svg = svg.viewBox.baseVal;
-    return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
-  }
-  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-// Like d3.local, but with the name “__brush” rather than auto-generated.
-function local(node) {
-  while (!node.__brush) if (!(node = node.parentNode)) return;
-  return node.__brush;
-}
-
-function empty(extent) {
-  return extent[0][0] === extent[1][0]
-      || extent[0][1] === extent[1][1];
-}
-
-function brushSelection(node) {
-  var state = node.__brush;
-  return state ? state.dim.output(state.selection) : null;
-}
-
-function brushX() {
-  return brush$1(X);
-}
-
-function brushY() {
-  return brush$1(Y);
-}
-
-function brush() {
-  return brush$1(XY);
-}
-
-function brush$1(dim) {
-  var extent = defaultExtent,
-      filter = defaultFilter,
-      touchable = defaultTouchable,
-      keys = true,
-      listeners = d3Dispatch.dispatch("start", "brush", "end"),
-      handleSize = 6,
-      touchending;
-
-  function brush(group) {
-    var overlay = group
-        .property("__brush", initialize)
-      .selectAll(".overlay")
-      .data([type("overlay")]);
-
-    overlay.enter().append("rect")
-        .attr("class", "overlay")
-        .attr("pointer-events", "all")
-        .attr("cursor", cursors.overlay)
-      .merge(overlay)
-        .each(function() {
-          var extent = local(this).extent;
-          d3Selection.select(this)
-              .attr("x", extent[0][0])
-              .attr("y", extent[0][1])
-              .attr("width", extent[1][0] - extent[0][0])
-              .attr("height", extent[1][1] - extent[0][1]);
-        });
-
-    group.selectAll(".selection")
-      .data([type("selection")])
-      .enter().append("rect")
-        .attr("class", "selection")
-        .attr("cursor", cursors.selection)
-        .attr("fill", "#777")
-        .attr("fill-opacity", 0.3)
-        .attr("stroke", "#fff")
-        .attr("shape-rendering", "crispEdges");
-
-    var handle = group.selectAll(".handle")
-      .data(dim.handles, function(d) { return d.type; });
-
-    handle.exit().remove();
-
-    handle.enter().append("rect")
-        .attr("class", function(d) { return "handle handle--" + d.type; })
-        .attr("cursor", function(d) { return cursors[d.type]; });
-
-    group
-        .each(redraw)
-        .attr("fill", "none")
-        .attr("pointer-events", "all")
-        .on("mousedown.brush", started)
-      .filter(touchable)
-        .on("touchstart.brush", started)
-        .on("touchmove.brush", touchmoved)
-        .on("touchend.brush touchcancel.brush", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  brush.move = function(group, selection, event) {
-    if (group.tween) {
-      group
-          .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); })
-          .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); })
-          .tween("brush", function() {
-            var that = this,
-                state = that.__brush,
-                emit = emitter(that, arguments),
-                selection0 = state.selection,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
-                i = d3Interpolate.interpolate(selection0, selection1);
-
-            function tween(t) {
-              state.selection = t === 1 && selection1 === null ? null : i(t);
-              redraw.call(that);
-              emit.brush();
-            }
-
-            return selection0 !== null && selection1 !== null ? tween : tween(1);
-          });
-    } else {
-      group
-          .each(function() {
-            var that = this,
-                args = arguments,
-                state = that.__brush,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
-                emit = emitter(that, args).beforestart();
-
-            d3Transition.interrupt(that);
-            state.selection = selection1 === null ? null : selection1;
-            redraw.call(that);
-            emit.start(event).brush(event).end(event);
-          });
-    }
-  };
-
-  brush.clear = function(group, event) {
-    brush.move(group, null, event);
-  };
-
-  function redraw() {
-    var group = d3Selection.select(this),
-        selection = local(this).selection;
-
-    if (selection) {
-      group.selectAll(".selection")
-          .style("display", null)
-          .attr("x", selection[0][0])
-          .attr("y", selection[0][1])
-          .attr("width", selection[1][0] - selection[0][0])
-          .attr("height", selection[1][1] - selection[0][1]);
-
-      group.selectAll(".handle")
-          .style("display", null)
-          .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
-          .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
-          .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
-          .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
-    }
-
-    else {
-      group.selectAll(".selection,.handle")
-          .style("display", "none")
-          .attr("x", null)
-          .attr("y", null)
-          .attr("width", null)
-          .attr("height", null);
-    }
-  }
-
-  function emitter(that, args, clean) {
-    var emit = that.__brush.emitter;
-    return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);
-  }
-
-  function Emitter(that, args, clean) {
-    this.that = that;
-    this.args = args;
-    this.state = that.__brush;
-    this.active = 0;
-    this.clean = clean;
-  }
-
-  Emitter.prototype = {
-    beforestart: function() {
-      if (++this.active === 1) this.state.emitter = this, this.starting = true;
-      return this;
-    },
-    start: function(event, mode) {
-      if (this.starting) this.starting = false, this.emit("start", event, mode);
-      else this.emit("brush", event);
-      return this;
-    },
-    brush: function(event, mode) {
-      this.emit("brush", event, mode);
-      return this;
-    },
-    end: function(event, mode) {
-      if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode);
-      return this;
-    },
-    emit: function(type, event, mode) {
-      var d = d3Selection.select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new BrushEvent(type, {
-          sourceEvent: event,
-          target: brush,
-          selection: dim.output(this.state.selection),
-          mode,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function started(event) {
-    if (touchending && !event.touches) return;
-    if (!filter.apply(this, arguments)) return;
-
-    var that = this,
-        type = event.target.__data__.type,
-        mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),
-        signX = dim === Y ? null : signsX[type],
-        signY = dim === X ? null : signsY[type],
-        state = local(that),
-        extent = state.extent,
-        selection = state.selection,
-        W = extent[0][0], w0, w1,
-        N = extent[0][1], n0, n1,
-        E = extent[1][0], e0, e1,
-        S = extent[1][1], s0, s1,
-        dx = 0,
-        dy = 0,
-        moving,
-        shifting = signX && signY && keys && event.shiftKey,
-        lockX,
-        lockY,
-        points = Array.from(event.touches || [event], t => {
-          const i = t.identifier;
-          t = d3Selection.pointer(t, that);
-          t.point0 = t.slice();
-          t.identifier = i;
-          return t;
-        });
-
-    d3Transition.interrupt(that);
-    var emit = emitter(that, arguments, true).beforestart();
-
-    if (type === "overlay") {
-      if (selection) moving = true;
-      const pts = [points[0], points[1] || points[0]];
-      state.selection = selection = [[
-          w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),
-          n0 = dim === X ? N : min(pts[0][1], pts[1][1])
-        ], [
-          e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),
-          s0 = dim === X ? S : max(pts[0][1], pts[1][1])
-        ]];
-      if (points.length > 1) move(event);
-    } else {
-      w0 = selection[0][0];
-      n0 = selection[0][1];
-      e0 = selection[1][0];
-      s0 = selection[1][1];
-    }
-
-    w1 = w0;
-    n1 = n0;
-    e1 = e0;
-    s1 = s0;
-
-    var group = d3Selection.select(that)
-        .attr("pointer-events", "none");
-
-    var overlay = group.selectAll(".overlay")
-        .attr("cursor", cursors[type]);
-
-    if (event.touches) {
-      emit.moved = moved;
-      emit.ended = ended;
-    } else {
-      var view = d3Selection.select(event.view)
-          .on("mousemove.brush", moved, true)
-          .on("mouseup.brush", ended, true);
-      if (keys) view
-          .on("keydown.brush", keydowned, true)
-          .on("keyup.brush", keyupped, true);
-
-      d3Drag.dragDisable(event.view);
-    }
-
-    redraw.call(that);
-    emit.start(event, mode.name);
-
-    function moved(event) {
-      for (const p of event.changedTouches || [event]) {
-        for (const d of points)
-          if (d.identifier === p.identifier) d.cur = d3Selection.pointer(p, that);
-      }
-      if (shifting && !lockX && !lockY && points.length === 1) {
-        const point = points[0];
-        if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))
-          lockY = true;
-        else
-          lockX = true;
-      }
-      for (const point of points)
-        if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];
-      moving = true;
-      noevent(event);
-      move(event);
-    }
-
-    function move(event) {
-      const point = points[0], point0 = point.point0;
-      var t;
-
-      dx = point[0] - point0[0];
-      dy = point[1] - point0[1];
-
-      switch (mode) {
-        case MODE_SPACE:
-        case MODE_DRAG: {
-          if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
-          if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
-          break;
-        }
-        case MODE_HANDLE: {
-          if (points[1]) {
-            if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;
-            if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;
-          } else {
-            if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
-            else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
-            if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
-            else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
-          }
-          break;
-        }
-        case MODE_CENTER: {
-          if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));
-          if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));
-          break;
-        }
-      }
-
-      if (e1 < w1) {
-        signX *= -1;
-        t = w0, w0 = e0, e0 = t;
-        t = w1, w1 = e1, e1 = t;
-        if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
-      }
-
-      if (s1 < n1) {
-        signY *= -1;
-        t = n0, n0 = s0, s0 = t;
-        t = n1, n1 = s1, s1 = t;
-        if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
-      }
-
-      if (state.selection) selection = state.selection; // May be set by brush.move!
-      if (lockX) w1 = selection[0][0], e1 = selection[1][0];
-      if (lockY) n1 = selection[0][1], s1 = selection[1][1];
-
-      if (selection[0][0] !== w1
-          || selection[0][1] !== n1
-          || selection[1][0] !== e1
-          || selection[1][1] !== s1) {
-        state.selection = [[w1, n1], [e1, s1]];
-        redraw.call(that);
-        emit.brush(event, mode.name);
-      }
-    }
-
-    function ended(event) {
-      nopropagation(event);
-      if (event.touches) {
-        if (event.touches.length) return;
-        if (touchending) clearTimeout(touchending);
-        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-      } else {
-        d3Drag.dragEnable(event.view, moving);
-        view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
-      }
-      group.attr("pointer-events", "all");
-      overlay.attr("cursor", cursors.overlay);
-      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
-      if (empty(selection)) state.selection = null, redraw.call(that);
-      emit.end(event, mode.name);
-    }
-
-    function keydowned(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          shifting = signX && signY;
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_HANDLE) {
-            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-            mode = MODE_CENTER;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE; takes priority over ALT
-          if (mode === MODE_HANDLE || mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
-            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
-            mode = MODE_SPACE;
-            overlay.attr("cursor", cursors.selection);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent(event);
-    }
-
-    function keyupped(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          if (shifting) {
-            lockX = lockY = shifting = false;
-            move(event);
-          }
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-            mode = MODE_HANDLE;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE
-          if (mode === MODE_SPACE) {
-            if (event.altKey) {
-              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-              mode = MODE_CENTER;
-            } else {
-              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-              mode = MODE_HANDLE;
-            }
-            overlay.attr("cursor", cursors[type]);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent(event);
-    }
-  }
-
-  function touchmoved(event) {
-    emitter(this, arguments).moved(event);
-  }
-
-  function touchended(event) {
-    emitter(this, arguments).ended(event);
-  }
-
-  function initialize() {
-    var state = this.__brush || {selection: null};
-    state.extent = number2(extent.apply(this, arguments));
-    state.dim = dim;
-    return state;
-  }
-
-  brush.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant(number2(_)), brush) : extent;
-  };
-
-  brush.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), brush) : filter;
-  };
-
-  brush.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), brush) : touchable;
-  };
-
-  brush.handleSize = function(_) {
-    return arguments.length ? (handleSize = +_, brush) : handleSize;
-  };
-
-  brush.keyModifiers = function(_) {
-    return arguments.length ? (keys = !!_, brush) : keys;
-  };
-
-  brush.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? brush : value;
-  };
-
-  return brush;
-}
-
-exports.brush = brush;
-exports.brushSelection = brushSelection;
-exports.brushX = brushX;
-exports.brushY = brushY;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-brush/dist/d3-brush.min.js
===================================================================
--- node_modules/d3-brush/dist/d3-brush.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-brush/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-drag","d3-interpolate","d3-selection","d3-transition"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3)}(this,(function(e,t,n,r,i,s){"use strict";var u=e=>()=>e;function o(e,{sourceEvent:t,target:n,selection:r,mode:i,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:s}})}function a(e){e.stopImmediatePropagation()}function l(e){e.preventDefault(),e.stopImmediatePropagation()}var c={name:"drag"},h={name:"space"},f={name:"handle"},d={name:"center"};const{abs:p,max:b,min:y}=Math;function v(e){return[+e[0],+e[1]]}function m(e){return[v(e[0]),v(e[1])]}var w={name:"x",handles:["w","e"].map(T),input:function(e,t){return null==e?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},g={name:"y",handles:["n","s"].map(T),input:function(e,t){return null==e?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},_={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(T),input:function(e){return null==e?null:m(e)},output:function(e){return e}},x={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},k={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},z={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},A={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},E={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function T(e){return{type:e}}function q(e){return!e.ctrlKey&&!e.button}function K(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function P(){return navigator.maxTouchPoints||"ontouchstart"in this}function V(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function j(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}function M(e){var v,_=K,M=q,S=P,B=!0,C=t.dispatch("start","brush","end"),D=6;function I(t){var n=t.property("__brush",H).selectAll(".overlay").data([T("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",x.overlay).merge(n).each((function(){var e=V(this).extent;i.select(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])})),t.selectAll(".selection").data([T("selection")]).enter().append("rect").attr("class","selection").attr("cursor",x.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(e.handles,(function(e){return e.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return x[e.type]})),t.each(O).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",X).filter(S).on("touchstart.brush",X).on("touchmove.brush",Y).on("touchend.brush touchcancel.brush",F).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function O(){var e=i.select(this),t=V(this).selection;t?(e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]),e.selectAll(".handle").style("display",null).attr("x",(function(e){return"e"===e.type[e.type.length-1]?t[1][0]-D/2:t[0][0]-D/2})).attr("y",(function(e){return"s"===e.type[0]?t[1][1]-D/2:t[0][1]-D/2})).attr("width",(function(e){return"n"===e.type||"s"===e.type?t[1][0]-t[0][0]+D:D})).attr("height",(function(e){return"e"===e.type||"w"===e.type?t[1][1]-t[0][1]+D:D}))):e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function G(e,t,n){var r=e.__brush.emitter;return!r||n&&r.clean?new N(e,t,n):r}function N(e,t,n){this.that=e,this.args=t,this.state=e.__brush,this.active=0,this.clean=n}function X(t){if((!v||t.touches)&&M.apply(this,arguments)){var r,u,o,m,_,T,q,K,P,S,C,D=this,I=t.target.__data__.type,N="selection"===(B&&t.metaKey?I="overlay":I)?c:B&&t.altKey?d:f,X=e===g?null:A[I],Y=e===w?null:E[I],F=V(D),H=F.extent,J=F.selection,L=H[0][0],Q=H[0][1],R=H[1][0],U=H[1][1],W=0,Z=0,$=X&&Y&&B&&t.shiftKey,ee=Array.from(t.touches||[t],(e=>{const t=e.identifier;return(e=i.pointer(e,D)).point0=e.slice(),e.identifier=t,e}));s.interrupt(D);var te=G(D,arguments,!0).beforestart();if("overlay"===I){J&&(P=!0);const n=[ee[0],ee[1]||ee[0]];F.selection=J=[[r=e===g?L:y(n[0][0],n[1][0]),o=e===w?Q:y(n[0][1],n[1][1])],[_=e===g?R:b(n[0][0],n[1][0]),q=e===w?U:b(n[0][1],n[1][1])]],ee.length>1&&ue(t)}else r=J[0][0],o=J[0][1],_=J[1][0],q=J[1][1];u=r,m=o,T=_,K=q;var ne=i.select(D).attr("pointer-events","none"),re=ne.selectAll(".overlay").attr("cursor",x[I]);if(t.touches)te.moved=se,te.ended=oe;else{var ie=i.select(t.view).on("mousemove.brush",se,!0).on("mouseup.brush",oe,!0);B&&ie.on("keydown.brush",ae,!0).on("keyup.brush",le,!0),n.dragDisable(t.view)}O.call(D),te.start(t,N.name)}function se(e){for(const t of e.changedTouches||[e])for(const e of ee)e.identifier===t.identifier&&(e.cur=i.pointer(t,D));if($&&!S&&!C&&1===ee.length){const e=ee[0];p(e.cur[0]-e[0])>p(e.cur[1]-e[1])?C=!0:S=!0}for(const e of ee)e.cur&&(e[0]=e.cur[0],e[1]=e.cur[1]);P=!0,l(e),ue(e)}function ue(e){const t=ee[0],n=t.point0;var i;switch(W=t[0]-n[0],Z=t[1]-n[1],N){case h:case c:X&&(W=b(L-r,y(R-_,W)),u=r+W,T=_+W),Y&&(Z=b(Q-o,y(U-q,Z)),m=o+Z,K=q+Z);break;case f:ee[1]?(X&&(u=b(L,y(R,ee[0][0])),T=b(L,y(R,ee[1][0])),X=1),Y&&(m=b(Q,y(U,ee[0][1])),K=b(Q,y(U,ee[1][1])),Y=1)):(X<0?(W=b(L-r,y(R-r,W)),u=r+W,T=_):X>0&&(W=b(L-_,y(R-_,W)),u=r,T=_+W),Y<0?(Z=b(Q-o,y(U-o,Z)),m=o+Z,K=q):Y>0&&(Z=b(Q-q,y(U-q,Z)),m=o,K=q+Z));break;case d:X&&(u=b(L,y(R,r-W*X)),T=b(L,y(R,_+W*X))),Y&&(m=b(Q,y(U,o-Z*Y)),K=b(Q,y(U,q+Z*Y)))}T<u&&(X*=-1,i=r,r=_,_=i,i=u,u=T,T=i,I in k&&re.attr("cursor",x[I=k[I]])),K<m&&(Y*=-1,i=o,o=q,q=i,i=m,m=K,K=i,I in z&&re.attr("cursor",x[I=z[I]])),F.selection&&(J=F.selection),S&&(u=J[0][0],T=J[1][0]),C&&(m=J[0][1],K=J[1][1]),J[0][0]===u&&J[0][1]===m&&J[1][0]===T&&J[1][1]===K||(F.selection=[[u,m],[T,K]],O.call(D),te.brush(e,N.name))}function oe(e){if(a(e),e.touches){if(e.touches.length)return;v&&clearTimeout(v),v=setTimeout((function(){v=null}),500)}else n.dragEnable(e.view,P),ie.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);ne.attr("pointer-events","all"),re.attr("cursor",x.overlay),F.selection&&(J=F.selection),j(J)&&(F.selection=null,O.call(D)),te.end(e,N.name)}function ae(e){switch(e.keyCode){case 16:$=X&&Y;break;case 18:N===f&&(X&&(_=T-W*X,r=u+W*X),Y&&(q=K-Z*Y,o=m+Z*Y),N=d,ue(e));break;case 32:N!==f&&N!==d||(X<0?_=T-W:X>0&&(r=u-W),Y<0?q=K-Z:Y>0&&(o=m-Z),N=h,re.attr("cursor",x.selection),ue(e));break;default:return}l(e)}function le(e){switch(e.keyCode){case 16:$&&(S=C=$=!1,ue(e));break;case 18:N===d&&(X<0?_=T:X>0&&(r=u),Y<0?q=K:Y>0&&(o=m),N=f,ue(e));break;case 32:N===h&&(e.altKey?(X&&(_=T-W*X,r=u+W*X),Y&&(q=K-Z*Y,o=m+Z*Y),N=d):(X<0?_=T:X>0&&(r=u),Y<0?q=K:Y>0&&(o=m),N=f),re.attr("cursor",x[I]),ue(e));break;default:return}l(e)}}function Y(e){G(this,arguments).moved(e)}function F(e){G(this,arguments).ended(e)}function H(){var t=this.__brush||{selection:null};return t.extent=m(_.apply(this,arguments)),t.dim=e,t}return I.move=function(t,n,i){t.tween?t.on("start.brush",(function(e){G(this,arguments).beforestart().start(e)})).on("interrupt.brush end.brush",(function(e){G(this,arguments).end(e)})).tween("brush",(function(){var t=this,i=t.__brush,s=G(t,arguments),u=i.selection,o=e.input("function"==typeof n?n.apply(this,arguments):n,i.extent),a=r.interpolate(u,o);function l(e){i.selection=1===e&&null===o?null:a(e),O.call(t),s.brush()}return null!==u&&null!==o?l:l(1)})):t.each((function(){var t=this,r=arguments,u=t.__brush,o=e.input("function"==typeof n?n.apply(t,r):n,u.extent),a=G(t,r).beforestart();s.interrupt(t),u.selection=null===o?null:o,O.call(t),a.start(i).brush(i).end(i)}))},I.clear=function(e,t){I.move(e,null,t)},N.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(e,t){return this.starting?(this.starting=!1,this.emit("start",e,t)):this.emit("brush",e),this},brush:function(e,t){return this.emit("brush",e,t),this},end:function(e,t){return 0==--this.active&&(delete this.state.emitter,this.emit("end",e,t)),this},emit:function(t,n,r){var s=i.select(this.that).datum();C.call(t,this.that,new o(t,{sourceEvent:n,target:I,selection:e.output(this.state.selection),mode:r,dispatch:C}),s)}},I.extent=function(e){return arguments.length?(_="function"==typeof e?e:u(m(e)),I):_},I.filter=function(e){return arguments.length?(M="function"==typeof e?e:u(!!e),I):M},I.touchable=function(e){return arguments.length?(S="function"==typeof e?e:u(!!e),I):S},I.handleSize=function(e){return arguments.length?(D=+e,I):D},I.keyModifiers=function(e){return arguments.length?(B=!!e,I):B},I.on=function(){var e=C.on.apply(C,arguments);return e===C?I:e},I}e.brush=function(){return M(_)},e.brushSelection=function(e){var t=e.__brush;return t?t.dim.output(t.selection):null},e.brushX=function(){return M(w)},e.brushY=function(){return M(g)},Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/d3-brush/package.json
===================================================================
--- node_modules/d3-brush/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-{
-  "name": "d3-brush",
-  "version": "3.0.0",
-  "description": "Select a one- or two-dimensional region using the mouse or touch.",
-  "homepage": "https://d3js.org/d3-brush/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-brush.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "brush",
-    "interaction"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-brush.min.js",
-  "unpkg": "dist/d3-brush.min.js",
-  "exports": {
-    "umd": "./dist/d3-brush.min.js",
-    "default": "./src/index.js"
-  },
-  "dependencies": {
-    "d3-dispatch": "1 - 3",
-    "d3-drag": "2 - 3",
-    "d3-interpolate": "1 - 3",
-    "d3-selection": "3",
-    "d3-transition": "3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c && git push",
-    "postpublish": "git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-brush/src/brush.js
===================================================================
--- node_modules/d3-brush/src/brush.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,621 +1,0 @@
-import {dispatch} from "d3-dispatch";
-import {dragDisable, dragEnable} from "d3-drag";
-import {interpolate} from "d3-interpolate";
-import {pointer, select} from "d3-selection";
-import {interrupt} from "d3-transition";
-import constant from "./constant.js";
-import BrushEvent from "./event.js";
-import noevent, {nopropagation} from "./noevent.js";
-
-var MODE_DRAG = {name: "drag"},
-    MODE_SPACE = {name: "space"},
-    MODE_HANDLE = {name: "handle"},
-    MODE_CENTER = {name: "center"};
-
-const {abs, max, min} = Math;
-
-function number1(e) {
-  return [+e[0], +e[1]];
-}
-
-function number2(e) {
-  return [number1(e[0]), number1(e[1])];
-}
-
-var X = {
-  name: "x",
-  handles: ["w", "e"].map(type),
-  input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },
-  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
-};
-
-var Y = {
-  name: "y",
-  handles: ["n", "s"].map(type),
-  input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },
-  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
-};
-
-var XY = {
-  name: "xy",
-  handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
-  input: function(xy) { return xy == null ? null : number2(xy); },
-  output: function(xy) { return xy; }
-};
-
-var cursors = {
-  overlay: "crosshair",
-  selection: "move",
-  n: "ns-resize",
-  e: "ew-resize",
-  s: "ns-resize",
-  w: "ew-resize",
-  nw: "nwse-resize",
-  ne: "nesw-resize",
-  se: "nwse-resize",
-  sw: "nesw-resize"
-};
-
-var flipX = {
-  e: "w",
-  w: "e",
-  nw: "ne",
-  ne: "nw",
-  se: "sw",
-  sw: "se"
-};
-
-var flipY = {
-  n: "s",
-  s: "n",
-  nw: "sw",
-  ne: "se",
-  se: "ne",
-  sw: "nw"
-};
-
-var signsX = {
-  overlay: +1,
-  selection: +1,
-  n: null,
-  e: +1,
-  s: null,
-  w: -1,
-  nw: -1,
-  ne: +1,
-  se: +1,
-  sw: -1
-};
-
-var signsY = {
-  overlay: +1,
-  selection: +1,
-  n: -1,
-  e: null,
-  s: +1,
-  w: null,
-  nw: -1,
-  ne: -1,
-  se: +1,
-  sw: +1
-};
-
-function type(t) {
-  return {type: t};
-}
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultExtent() {
-  var svg = this.ownerSVGElement || this;
-  if (svg.hasAttribute("viewBox")) {
-    svg = svg.viewBox.baseVal;
-    return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
-  }
-  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-// Like d3.local, but with the name “__brush” rather than auto-generated.
-function local(node) {
-  while (!node.__brush) if (!(node = node.parentNode)) return;
-  return node.__brush;
-}
-
-function empty(extent) {
-  return extent[0][0] === extent[1][0]
-      || extent[0][1] === extent[1][1];
-}
-
-export function brushSelection(node) {
-  var state = node.__brush;
-  return state ? state.dim.output(state.selection) : null;
-}
-
-export function brushX() {
-  return brush(X);
-}
-
-export function brushY() {
-  return brush(Y);
-}
-
-export default function() {
-  return brush(XY);
-}
-
-function brush(dim) {
-  var extent = defaultExtent,
-      filter = defaultFilter,
-      touchable = defaultTouchable,
-      keys = true,
-      listeners = dispatch("start", "brush", "end"),
-      handleSize = 6,
-      touchending;
-
-  function brush(group) {
-    var overlay = group
-        .property("__brush", initialize)
-      .selectAll(".overlay")
-      .data([type("overlay")]);
-
-    overlay.enter().append("rect")
-        .attr("class", "overlay")
-        .attr("pointer-events", "all")
-        .attr("cursor", cursors.overlay)
-      .merge(overlay)
-        .each(function() {
-          var extent = local(this).extent;
-          select(this)
-              .attr("x", extent[0][0])
-              .attr("y", extent[0][1])
-              .attr("width", extent[1][0] - extent[0][0])
-              .attr("height", extent[1][1] - extent[0][1]);
-        });
-
-    group.selectAll(".selection")
-      .data([type("selection")])
-      .enter().append("rect")
-        .attr("class", "selection")
-        .attr("cursor", cursors.selection)
-        .attr("fill", "#777")
-        .attr("fill-opacity", 0.3)
-        .attr("stroke", "#fff")
-        .attr("shape-rendering", "crispEdges");
-
-    var handle = group.selectAll(".handle")
-      .data(dim.handles, function(d) { return d.type; });
-
-    handle.exit().remove();
-
-    handle.enter().append("rect")
-        .attr("class", function(d) { return "handle handle--" + d.type; })
-        .attr("cursor", function(d) { return cursors[d.type]; });
-
-    group
-        .each(redraw)
-        .attr("fill", "none")
-        .attr("pointer-events", "all")
-        .on("mousedown.brush", started)
-      .filter(touchable)
-        .on("touchstart.brush", started)
-        .on("touchmove.brush", touchmoved)
-        .on("touchend.brush touchcancel.brush", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  brush.move = function(group, selection, event) {
-    if (group.tween) {
-      group
-          .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); })
-          .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); })
-          .tween("brush", function() {
-            var that = this,
-                state = that.__brush,
-                emit = emitter(that, arguments),
-                selection0 = state.selection,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
-                i = interpolate(selection0, selection1);
-
-            function tween(t) {
-              state.selection = t === 1 && selection1 === null ? null : i(t);
-              redraw.call(that);
-              emit.brush();
-            }
-
-            return selection0 !== null && selection1 !== null ? tween : tween(1);
-          });
-    } else {
-      group
-          .each(function() {
-            var that = this,
-                args = arguments,
-                state = that.__brush,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
-                emit = emitter(that, args).beforestart();
-
-            interrupt(that);
-            state.selection = selection1 === null ? null : selection1;
-            redraw.call(that);
-            emit.start(event).brush(event).end(event);
-          });
-    }
-  };
-
-  brush.clear = function(group, event) {
-    brush.move(group, null, event);
-  };
-
-  function redraw() {
-    var group = select(this),
-        selection = local(this).selection;
-
-    if (selection) {
-      group.selectAll(".selection")
-          .style("display", null)
-          .attr("x", selection[0][0])
-          .attr("y", selection[0][1])
-          .attr("width", selection[1][0] - selection[0][0])
-          .attr("height", selection[1][1] - selection[0][1]);
-
-      group.selectAll(".handle")
-          .style("display", null)
-          .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
-          .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
-          .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
-          .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
-    }
-
-    else {
-      group.selectAll(".selection,.handle")
-          .style("display", "none")
-          .attr("x", null)
-          .attr("y", null)
-          .attr("width", null)
-          .attr("height", null);
-    }
-  }
-
-  function emitter(that, args, clean) {
-    var emit = that.__brush.emitter;
-    return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);
-  }
-
-  function Emitter(that, args, clean) {
-    this.that = that;
-    this.args = args;
-    this.state = that.__brush;
-    this.active = 0;
-    this.clean = clean;
-  }
-
-  Emitter.prototype = {
-    beforestart: function() {
-      if (++this.active === 1) this.state.emitter = this, this.starting = true;
-      return this;
-    },
-    start: function(event, mode) {
-      if (this.starting) this.starting = false, this.emit("start", event, mode);
-      else this.emit("brush", event);
-      return this;
-    },
-    brush: function(event, mode) {
-      this.emit("brush", event, mode);
-      return this;
-    },
-    end: function(event, mode) {
-      if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode);
-      return this;
-    },
-    emit: function(type, event, mode) {
-      var d = select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new BrushEvent(type, {
-          sourceEvent: event,
-          target: brush,
-          selection: dim.output(this.state.selection),
-          mode,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function started(event) {
-    if (touchending && !event.touches) return;
-    if (!filter.apply(this, arguments)) return;
-
-    var that = this,
-        type = event.target.__data__.type,
-        mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),
-        signX = dim === Y ? null : signsX[type],
-        signY = dim === X ? null : signsY[type],
-        state = local(that),
-        extent = state.extent,
-        selection = state.selection,
-        W = extent[0][0], w0, w1,
-        N = extent[0][1], n0, n1,
-        E = extent[1][0], e0, e1,
-        S = extent[1][1], s0, s1,
-        dx = 0,
-        dy = 0,
-        moving,
-        shifting = signX && signY && keys && event.shiftKey,
-        lockX,
-        lockY,
-        points = Array.from(event.touches || [event], t => {
-          const i = t.identifier;
-          t = pointer(t, that);
-          t.point0 = t.slice();
-          t.identifier = i;
-          return t;
-        });
-
-    interrupt(that);
-    var emit = emitter(that, arguments, true).beforestart();
-
-    if (type === "overlay") {
-      if (selection) moving = true;
-      const pts = [points[0], points[1] || points[0]];
-      state.selection = selection = [[
-          w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),
-          n0 = dim === X ? N : min(pts[0][1], pts[1][1])
-        ], [
-          e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),
-          s0 = dim === X ? S : max(pts[0][1], pts[1][1])
-        ]];
-      if (points.length > 1) move(event);
-    } else {
-      w0 = selection[0][0];
-      n0 = selection[0][1];
-      e0 = selection[1][0];
-      s0 = selection[1][1];
-    }
-
-    w1 = w0;
-    n1 = n0;
-    e1 = e0;
-    s1 = s0;
-
-    var group = select(that)
-        .attr("pointer-events", "none");
-
-    var overlay = group.selectAll(".overlay")
-        .attr("cursor", cursors[type]);
-
-    if (event.touches) {
-      emit.moved = moved;
-      emit.ended = ended;
-    } else {
-      var view = select(event.view)
-          .on("mousemove.brush", moved, true)
-          .on("mouseup.brush", ended, true);
-      if (keys) view
-          .on("keydown.brush", keydowned, true)
-          .on("keyup.brush", keyupped, true)
-
-      dragDisable(event.view);
-    }
-
-    redraw.call(that);
-    emit.start(event, mode.name);
-
-    function moved(event) {
-      for (const p of event.changedTouches || [event]) {
-        for (const d of points)
-          if (d.identifier === p.identifier) d.cur = pointer(p, that);
-      }
-      if (shifting && !lockX && !lockY && points.length === 1) {
-        const point = points[0];
-        if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))
-          lockY = true;
-        else
-          lockX = true;
-      }
-      for (const point of points)
-        if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];
-      moving = true;
-      noevent(event);
-      move(event);
-    }
-
-    function move(event) {
-      const point = points[0], point0 = point.point0;
-      var t;
-
-      dx = point[0] - point0[0];
-      dy = point[1] - point0[1];
-
-      switch (mode) {
-        case MODE_SPACE:
-        case MODE_DRAG: {
-          if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
-          if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
-          break;
-        }
-        case MODE_HANDLE: {
-          if (points[1]) {
-            if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;
-            if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;
-          } else {
-            if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
-            else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
-            if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
-            else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
-          }
-          break;
-        }
-        case MODE_CENTER: {
-          if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));
-          if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));
-          break;
-        }
-      }
-
-      if (e1 < w1) {
-        signX *= -1;
-        t = w0, w0 = e0, e0 = t;
-        t = w1, w1 = e1, e1 = t;
-        if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
-      }
-
-      if (s1 < n1) {
-        signY *= -1;
-        t = n0, n0 = s0, s0 = t;
-        t = n1, n1 = s1, s1 = t;
-        if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
-      }
-
-      if (state.selection) selection = state.selection; // May be set by brush.move!
-      if (lockX) w1 = selection[0][0], e1 = selection[1][0];
-      if (lockY) n1 = selection[0][1], s1 = selection[1][1];
-
-      if (selection[0][0] !== w1
-          || selection[0][1] !== n1
-          || selection[1][0] !== e1
-          || selection[1][1] !== s1) {
-        state.selection = [[w1, n1], [e1, s1]];
-        redraw.call(that);
-        emit.brush(event, mode.name);
-      }
-    }
-
-    function ended(event) {
-      nopropagation(event);
-      if (event.touches) {
-        if (event.touches.length) return;
-        if (touchending) clearTimeout(touchending);
-        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-      } else {
-        dragEnable(event.view, moving);
-        view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
-      }
-      group.attr("pointer-events", "all");
-      overlay.attr("cursor", cursors.overlay);
-      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
-      if (empty(selection)) state.selection = null, redraw.call(that);
-      emit.end(event, mode.name);
-    }
-
-    function keydowned(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          shifting = signX && signY;
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_HANDLE) {
-            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-            mode = MODE_CENTER;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE; takes priority over ALT
-          if (mode === MODE_HANDLE || mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
-            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
-            mode = MODE_SPACE;
-            overlay.attr("cursor", cursors.selection);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent(event);
-    }
-
-    function keyupped(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          if (shifting) {
-            lockX = lockY = shifting = false;
-            move(event);
-          }
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-            mode = MODE_HANDLE;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE
-          if (mode === MODE_SPACE) {
-            if (event.altKey) {
-              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-              mode = MODE_CENTER;
-            } else {
-              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-              mode = MODE_HANDLE;
-            }
-            overlay.attr("cursor", cursors[type]);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent(event);
-    }
-  }
-
-  function touchmoved(event) {
-    emitter(this, arguments).moved(event);
-  }
-
-  function touchended(event) {
-    emitter(this, arguments).ended(event);
-  }
-
-  function initialize() {
-    var state = this.__brush || {selection: null};
-    state.extent = number2(extent.apply(this, arguments));
-    state.dim = dim;
-    return state;
-  }
-
-  brush.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant(number2(_)), brush) : extent;
-  };
-
-  brush.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), brush) : filter;
-  };
-
-  brush.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), brush) : touchable;
-  };
-
-  brush.handleSize = function(_) {
-    return arguments.length ? (handleSize = +_, brush) : handleSize;
-  };
-
-  brush.keyModifiers = function(_) {
-    return arguments.length ? (keys = !!_, brush) : keys;
-  };
-
-  brush.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? brush : value;
-  };
-
-  return brush;
-}
Index: de_modules/d3-brush/src/constant.js
===================================================================
--- node_modules/d3-brush/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => () => x;
Index: de_modules/d3-brush/src/event.js
===================================================================
--- node_modules/d3-brush/src/event.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-export default function BrushEvent(type, {
-  sourceEvent,
-  target,
-  selection,
-  mode,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    selection: {value: selection, enumerable: true, configurable: true},
-    mode: {value: mode, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
Index: de_modules/d3-brush/src/index.js
===================================================================
--- node_modules/d3-brush/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export {
-  default as brush,
-  brushX,
-  brushY,
-  brushSelection
-} from "./brush.js";
Index: de_modules/d3-brush/src/noevent.js
===================================================================
--- node_modules/d3-brush/src/noevent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-export default function(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
Index: de_modules/d3-chord/LICENSE
===================================================================
--- node_modules/d3-chord/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-chord/README.md
===================================================================
--- node_modules/d3-chord/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,234 +1,0 @@
-# d3-chord
-
-Visualize relationships or network flow with an aesthetically-pleasing circular layout.
-
-[<img alt="Chord Diagram" src="https://raw.githubusercontent.com/d3/d3-chord/master/img/chord.png" width="480" height="480">](https://observablehq.com/@d3/chord-diagram)
-
-## Installing
-
-If you use npm, `npm install d3-chord`. You can also download the [latest release on GitHub](https://github.com/d3/d3-chord/releases/latest). For vanilla HTML in modern browsers, import d3-chord from Skypack:
-
-```html
-<script type="module">
-
-import {chord} from "https://cdn.skypack.dev/d3-chord@3";
-
-const c = chord();
-
-</script>
-```
-
-For legacy environments, you can load d3-chord’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-path@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-chord@3"></script>
-<script>
-
-const chord = d3.chord();
-
-</script>
-```
-
-## API Reference
-
-<a href="#chord" name="chord">#</a> d3.<b>chord</b>() · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-Constructs a new chord layout with the default settings.
-
-<a href="#_chord" name="_chord">#</a> <i>chord</i>(<i>matrix</i>) · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-Computes the chord layout for the specified square *matrix* of size *n*×*n*, where the *matrix* represents the directed flow amongst a network (a complete digraph) of *n* nodes. The given *matrix* must be an array of length *n*, where each element *matrix*[*i*] is an array of *n* numbers, where each *matrix*[*i*][*j*] represents the flow from the *i*th node in the network to the *j*th node. Each number *matrix*[*i*][*j*] must be nonnegative, though it can be zero if there is no flow from node *i* to node *j*. From the [Circos tableviewer example](http://mkweb.bcgsc.ca/circos/guide/tables/):
-
-```js
-const matrix = [
-  [11975,  5871, 8916, 2868],
-  [ 1951, 10048, 2060, 6171],
-  [ 8010, 16145, 8090, 8045],
-  [ 1013,   990,  940, 6907]
-];
-```
-
-The return value of *chord*(*matrix*) is an array of *chords*, where each chord represents the combined bidirectional flow between two nodes *i* and *j* (where *i* may be equal to *j*) and is an object with the following properties:
-
-* `source` - the source subgroup
-* `target` - the target subgroup
-
-Each source and target subgroup is also an object with the following properties:
-
-* `startAngle` - the start angle in radians
-* `endAngle` - the end angle in radians
-* `value` - the flow value *matrix*[*i*][*j*]
-* `index` - the node index *i*
-
-The chords are typically passed to [d3.ribbon](#ribbon) to display the network relationships. The returned array includes only chord objects for which the value *matrix*[*i*][*j*] or *matrix*[*j*][*i*] is non-zero. Furthermore, the returned array only contains unique chords: a given chord *ij* represents the bidirectional flow from *i* to *j* *and* from *j* to *i*, and does not contain a duplicate chord *ji*; *i* and *j* are chosen such that the chord’s source always represents the larger of *matrix*[*i*][*j*] and *matrix*[*j*][*i*].
-
-The *chords* array also defines a secondary array of length *n*, *chords*.groups, where each group represents the combined outflow for node *i*, corresponding to the elements *matrix*[*i*][0 … *n* - 1], and is an object with the following properties:
-
-* `startAngle` - the start angle in radians
-* `endAngle` - the end angle in radians
-* `value` - the total outgoing flow value for node *i*
-* `index` - the node index *i*
-
-The groups are typically passed to [d3.arc](https://github.com/d3/d3-shape#arc) to produce a donut chart around the circumference of the chord layout.
-
-<a href="#chord_padAngle" name="chord_padAngle">#</a> <i>chord</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-If *angle* is specified, sets the pad angle between adjacent groups to the specified number in radians and returns this chord layout. If *angle* is not specified, returns the current pad angle, which defaults to zero.
-
-<a href="#chord_sortGroups" name="chord_sortGroups">#</a> <i>chord</i>.<b>sortGroups</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-If *compare* is specified, sets the group comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current group comparator, which defaults to null. If the group comparator is non-null, it is used to sort the groups by their total outflow. See also [d3.ascending](https://github.com/d3/d3-array/blob/master/README.md#ascending) and [d3.descending](https://github.com/d3/d3-array/blob/master/README.md#descending).
-
-<a href="#chord_sortSubgroups" name="chord_sortSubgroups">#</a> <i>chord</i>.<b>sortSubgroups</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-If *compare* is specified, sets the subgroup comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current subgroup comparator, which defaults to null. If the subgroup comparator is non-null, it is used to sort the subgroups corresponding to *matrix*[*i*][0 … *n* - 1] for a given group *i* by their total outflow. See also [d3.ascending](https://github.com/d3/d3-array/blob/master/README.md#ascending) and [d3.descending](https://github.com/d3/d3-array/blob/master/README.md#descending).
-
-<a href="#chord_sortChords" name="chord_sortChords">#</a> <i>chord</i>.<b>sortChords</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-If *compare* is specified, sets the chord comparator to the specified function or null and returns this chord layout. If *compare* is not specified, returns the current chord comparator, which defaults to null. If the chord comparator is non-null, it is used to sort the [chords](#_chord) by their combined flow; this only affects the *z*-order of the chords. See also [d3.ascending](https://github.com/d3/d3-array/blob/master/README.md#ascending) and [d3.descending](https://github.com/d3/d3-array/blob/master/README.md#descending).
-
-<a href="#chordDirected" name="chordDirected">#</a> d3.<b>chordDirected</b>() · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js), [Examples](https://observablehq.com/@d3/directed-chord-diagram)
-
-A chord layout for directional flows. The chord from *i* to *j* is generated from the value in *matrix*[*i*][*j*] only.
-
-<a href="#chordTranspose" name="chordTranspose">#</a> d3.<b>chordTranspose</b>() · [Source](https://github.com/d3/d3-chord/blob/master/src/chord.js)
-
-A transposed chord layout. Useful to highlight outgoing (rather than incoming) flows.
-
-<a href="#ribbon" name="ribbon">#</a> d3.<b>ribbon</b>() · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-Creates a new ribbon generator with the default settings.
-
-<a href="#_ribbon" name="_ribbon">#</a> <i>ribbon</i>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-Generates a ribbon for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the ribbon generator’s accessor functions along with the `this` object. For example, with the default settings, a [chord object](#_chord) expected:
-
-```js
-const ribbon = d3.ribbon();
-
-ribbon({
-  source: {startAngle: 0.7524114, endAngle: 1.1212972, radius: 240},
-  target: {startAngle: 1.8617078, endAngle: 1.9842927, radius: 240}
-}); // "M164.0162810494058,-175.21032946354026A240,240,0,0,1,216.1595644740915,-104.28347273835429Q0,0,229.9158815306728,68.8381247563705A240,240,0,0,1,219.77316791012538,96.43523560788266Q0,0,164.0162810494058,-175.21032946354026Z"
-```
-
-Or equivalently if the radius is instead defined as a constant:
-
-```js
-const ribbon = d3.ribbon()
-    .radius(240);
-
-ribbon({
-  source: {startAngle: 0.7524114, endAngle: 1.1212972},
-  target: {startAngle: 1.8617078, endAngle: 1.9842927}
-}); // "M164.0162810494058,-175.21032946354026A240,240,0,0,1,216.1595644740915,-104.28347273835429Q0,0,229.9158815306728,68.8381247563705A240,240,0,0,1,219.77316791012538,96.43523560788266Q0,0,164.0162810494058,-175.21032946354026Z"
-```
-
-If the ribbon generator has a context, then the ribbon is rendered to this context as a sequence of path method calls and this function returns void. Otherwise, a path data string is returned.
-
-<a href="#ribbon_source" name="ribbon_source">#</a> <i>ribbon</i>.<b>source</b>([<i>source</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *source* is specified, sets the source accessor to the specified function and returns this ribbon generator. If *source* is not specified, returns the current source accessor, which defaults to:
-
-```js
-function source(d) {
-  return d.source;
-}
-```
-
-<a href="#ribbon_target" name="ribbon_target">#</a> <i>ribbon</i>.<b>target</b>([<i>target</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *target* is specified, sets the target accessor to the specified function and returns this ribbon generator. If *target* is not specified, returns the current target accessor, which defaults to:
-
-```js
-function target(d) {
-  return d.target;
-}
-```
-
-<a href="#ribbon_radius" name="ribbon_radius">#</a> <i>ribbon</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *radius* is specified, sets the source and target radius accessor to the specified function and returns this ribbon generator. If *radius* is not specified, returns the current source radius accessor, which defaults to:
-
-```js
-function radius(d) {
-  return d.radius;
-}
-```
-
-<a href="#ribbon_sourceRadius" name="ribbon_sourceRadius">#</a> <i>ribbon</i>.<b>sourceRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *radius* is specified, sets the source radius accessor to the specified function and returns this ribbon generator. If *radius* is not specified, returns the current source radius accessor, which defaults to:
-
-```js
-function radius(d) {
-  return d.radius;
-}
-```
-
-<a href="#ribbon_targetRadius" name="ribbon_targetRadius">#</a> <i>ribbon</i>.<b>targetRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *radius* is specified, sets the target radius accessor to the specified function and returns this ribbon generator. If *radius* is not specified, returns the current target radius accessor, which defaults to:
-
-```js
-function radius(d) {
-  return d.radius;
-}
-```
-
-By convention, the target radius in asymmetric chord diagrams is typically inset from the source radius, resulting in a gap between the end of the directed link and its associated group arc.
-
-<a href="#ribbon_startAngle" name="ribbon_startAngle">#</a> <i>ribbon</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *angle* is specified, sets the start angle accessor to the specified function and returns this ribbon generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:
-
-```js
-function startAngle(d) {
-  return d.startAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-<a href="#ribbon_endAngle" name="ribbon_endAngle">#</a> <i>ribbon</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *angle* is specified, sets the end angle accessor to the specified function and returns this ribbon generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:
-
-```js
-function endAngle(d) {
-  return d.endAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-<a href="#ribbon_padAngle" name="ribbon_padAngle">#</a> <i>ribbon</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *angle* is specified, sets the pad angle accessor to the specified function and returns this ribbon generator. If *angle* is not specified, returns the current pad angle accessor, which defaults to:
-
-```js
-function padAngle() {
-  return 0;
-}
-```
-
-The pad angle specifies the angular gap between adjacent ribbons.
-
-<a href="#ribbon_context" name="ribbon_context">#</a> <i>ribbon</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *context* is specified, sets the context and returns this ribbon generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated ribbon](#_ribbon) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated ribbon is returned. See also [d3-path](https://github.com/d3/d3-path).
-
-<a href="#ribbonArrow" name="ribbonArrow">#</a> d3.<b>ribbonArrow</b>() · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-Creates a new arrow ribbon generator with the default settings.
-
-<a href="#ribbonArrow_headRadius" name="ribbonArrow_headRadius">#</a> <i>ribbonArrow</i>.<b>headRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-chord/blob/master/src/ribbon.js)
-
-If *radius* is specified, sets the arrowhead radius accessor to the specified function and returns this ribbon generator. If *radius* is not specified, returns the current arrowhead radius accessor, which defaults to:
-
-```js
-function headRadius() {
-  return 10;
-}
-```
Index: de_modules/d3-chord/dist/d3-chord.js
===================================================================
--- node_modules/d3-chord/dist/d3-chord.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,284 +1,0 @@
-// https://d3js.org/d3-chord/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-path')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-path'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-}(this, (function (exports, d3Path) { 'use strict';
-
-var abs = Math.abs;
-var cos = Math.cos;
-var sin = Math.sin;
-var pi = Math.PI;
-var halfPi = pi / 2;
-var tau = pi * 2;
-var max = Math.max;
-var epsilon = 1e-12;
-
-function range(i, j) {
-  return Array.from({length: j - i}, (_, k) => i + k);
-}
-
-function compareValue(compare) {
-  return function(a, b) {
-    return compare(
-      a.source.value + a.target.value,
-      b.source.value + b.target.value
-    );
-  };
-}
-
-function chord() {
-  return chord$1(false, false);
-}
-
-function chordTranspose() {
-  return chord$1(false, true);
-}
-
-function chordDirected() {
-  return chord$1(true, false);
-}
-
-function chord$1(directed, transpose) {
-  var padAngle = 0,
-      sortGroups = null,
-      sortSubgroups = null,
-      sortChords = null;
-
-  function chord(matrix) {
-    var n = matrix.length,
-        groupSums = new Array(n),
-        groupIndex = range(0, n),
-        chords = new Array(n * n),
-        groups = new Array(n),
-        k = 0, dx;
-
-    matrix = Float64Array.from({length: n * n}, transpose
-        ? (_, i) => matrix[i % n][i / n | 0]
-        : (_, i) => matrix[i / n | 0][i % n]);
-
-    // Compute the scaling factor from value to angle in [0, 2pi].
-    for (let i = 0; i < n; ++i) {
-      let x = 0;
-      for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];
-      k += groupSums[i] = x;
-    }
-    k = max(0, tau - padAngle * n) / k;
-    dx = k ? padAngle : tau / n;
-
-    // Compute the angles for each group and constituent chord.
-    {
-      let x = 0;
-      if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));
-      for (const i of groupIndex) {
-        const x0 = x;
-        if (directed) {
-          const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            if (j < 0) {
-              const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};
-            } else {
-              const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        } else {
-          const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            let chord;
-            if (i < j) {
-              chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            } else {
-              chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-              if (i === j) chord.source = chord.target;
-            }
-            if (chord.source && chord.target && chord.source.value < chord.target.value) {
-              const source = chord.source;
-              chord.source = chord.target;
-              chord.target = source;
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        }
-        x += dx;
-      }
-    }
-
-    // Remove empty chords.
-    chords = Object.values(chords);
-    chords.groups = groups;
-    return sortChords ? chords.sort(sortChords) : chords;
-  }
-
-  chord.padAngle = function(_) {
-    return arguments.length ? (padAngle = max(0, _), chord) : padAngle;
-  };
-
-  chord.sortGroups = function(_) {
-    return arguments.length ? (sortGroups = _, chord) : sortGroups;
-  };
-
-  chord.sortSubgroups = function(_) {
-    return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
-  };
-
-  chord.sortChords = function(_) {
-    return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
-  };
-
-  return chord;
-}
-
-var slice = Array.prototype.slice;
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-function defaultSource(d) {
-  return d.source;
-}
-
-function defaultTarget(d) {
-  return d.target;
-}
-
-function defaultRadius(d) {
-  return d.radius;
-}
-
-function defaultStartAngle(d) {
-  return d.startAngle;
-}
-
-function defaultEndAngle(d) {
-  return d.endAngle;
-}
-
-function defaultPadAngle() {
-  return 0;
-}
-
-function defaultArrowheadRadius() {
-  return 10;
-}
-
-function ribbon(headRadius) {
-  var source = defaultSource,
-      target = defaultTarget,
-      sourceRadius = defaultRadius,
-      targetRadius = defaultRadius,
-      startAngle = defaultStartAngle,
-      endAngle = defaultEndAngle,
-      padAngle = defaultPadAngle,
-      context = null;
-
-  function ribbon() {
-    var buffer,
-        s = source.apply(this, arguments),
-        t = target.apply(this, arguments),
-        ap = padAngle.apply(this, arguments) / 2,
-        argv = slice.call(arguments),
-        sr = +sourceRadius.apply(this, (argv[0] = s, argv)),
-        sa0 = startAngle.apply(this, argv) - halfPi,
-        sa1 = endAngle.apply(this, argv) - halfPi,
-        tr = +targetRadius.apply(this, (argv[0] = t, argv)),
-        ta0 = startAngle.apply(this, argv) - halfPi,
-        ta1 = endAngle.apply(this, argv) - halfPi;
-
-    if (!context) context = buffer = d3Path.path();
-
-    if (ap > epsilon) {
-      if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);
-      else sa0 = sa1 = (sa0 + sa1) / 2;
-      if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);
-      else ta0 = ta1 = (ta0 + ta1) / 2;
-    }
-
-    context.moveTo(sr * cos(sa0), sr * sin(sa0));
-    context.arc(0, 0, sr, sa0, sa1);
-    if (sa0 !== ta0 || sa1 !== ta1) {
-      if (headRadius) {
-        var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;
-        context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));
-        context.lineTo(tr * cos(ta2), tr * sin(ta2));
-        context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));
-      } else {
-        context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));
-        context.arc(0, 0, tr, ta0, ta1);
-      }
-    }
-    context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  if (headRadius) ribbon.headRadius = function(_) {
-    return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : headRadius;
-  };
-
-  ribbon.radius = function(_) {
-    return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.sourceRadius = function(_) {
-    return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.targetRadius = function(_) {
-    return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : targetRadius;
-  };
-
-  ribbon.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : startAngle;
-  };
-
-  ribbon.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : endAngle;
-  };
-
-  ribbon.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : padAngle;
-  };
-
-  ribbon.source = function(_) {
-    return arguments.length ? (source = _, ribbon) : source;
-  };
-
-  ribbon.target = function(_) {
-    return arguments.length ? (target = _, ribbon) : target;
-  };
-
-  ribbon.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
-  };
-
-  return ribbon;
-}
-
-function ribbon$1() {
-  return ribbon();
-}
-
-function ribbonArrow() {
-  return ribbon(defaultArrowheadRadius);
-}
-
-exports.chord = chord;
-exports.chordDirected = chordDirected;
-exports.chordTranspose = chordTranspose;
-exports.ribbon = ribbon$1;
-exports.ribbonArrow = ribbonArrow;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-chord/dist/d3-chord.min.js
===================================================================
--- node_modules/d3-chord/dist/d3-chord.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-chord/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-path")):"function"==typeof define&&define.amd?define(["exports","d3-path"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{},n.d3)}(this,(function(n,t){"use strict";var e=Math.abs,r=Math.cos,u=Math.sin,o=Math.PI,l=o/2,i=2*o,a=Math.max,c=1e-12;function f(n,t){return Array.from({length:t-n},((t,e)=>n+e))}function s(n){return function(t,e){return n(t.source.value+t.target.value,e.source.value+e.target.value)}}function g(n,t){var e=0,r=null,u=null,o=null;function l(l){var c,s=l.length,g=new Array(s),d=f(0,s),p=new Array(s*s),h=new Array(s),y=0;l=Float64Array.from({length:s*s},t?(n,t)=>l[t%s][t/s|0]:(n,t)=>l[t/s|0][t%s]);for(let t=0;t<s;++t){let e=0;for(let r=0;r<s;++r)e+=l[t*s+r]+n*l[r*s+t];y+=g[t]=e}c=(y=a(0,i-e*s)/y)?e:i/s;{let t=0;r&&d.sort(((n,t)=>r(g[n],g[t])));for(const e of d){const r=t;if(n){const n=f(1+~s,s).filter((n=>n<0?l[~n*s+e]:l[e*s+n]));u&&n.sort(((n,t)=>u(n<0?-l[~n*s+e]:l[e*s+n],t<0?-l[~t*s+e]:l[e*s+t])));for(const r of n)if(r<0){(p[~r*s+e]||(p[~r*s+e]={source:null,target:null})).target={index:e,startAngle:t,endAngle:t+=l[~r*s+e]*y,value:l[~r*s+e]}}else{(p[e*s+r]||(p[e*s+r]={source:null,target:null})).source={index:e,startAngle:t,endAngle:t+=l[e*s+r]*y,value:l[e*s+r]}}h[e]={index:e,startAngle:r,endAngle:t,value:g[e]}}else{const n=f(0,s).filter((n=>l[e*s+n]||l[n*s+e]));u&&n.sort(((n,t)=>u(l[e*s+n],l[e*s+t])));for(const r of n){let n;if(e<r?(n=p[e*s+r]||(p[e*s+r]={source:null,target:null}),n.source={index:e,startAngle:t,endAngle:t+=l[e*s+r]*y,value:l[e*s+r]}):(n=p[r*s+e]||(p[r*s+e]={source:null,target:null}),n.target={index:e,startAngle:t,endAngle:t+=l[e*s+r]*y,value:l[e*s+r]},e===r&&(n.source=n.target)),n.source&&n.target&&n.source.value<n.target.value){const t=n.source;n.source=n.target,n.target=t}}h[e]={index:e,startAngle:r,endAngle:t,value:g[e]}}t+=c}}return(p=Object.values(p)).groups=h,o?p.sort(o):p}return l.padAngle=function(n){return arguments.length?(e=a(0,n),l):e},l.sortGroups=function(n){return arguments.length?(r=n,l):r},l.sortSubgroups=function(n){return arguments.length?(u=n,l):u},l.sortChords=function(n){return arguments.length?(null==n?o=null:(o=s(n))._=n,l):o&&o._},l}var d=Array.prototype.slice;function p(n){return function(){return n}}function h(n){return n.source}function y(n){return n.target}function v(n){return n.radius}function A(n){return n.startAngle}function b(n){return n.endAngle}function x(){return 0}function T(){return 10}function m(n){var o=h,i=y,a=v,f=v,s=A,g=b,T=x,m=null;function M(){var p,h=o.apply(this,arguments),y=i.apply(this,arguments),v=T.apply(this,arguments)/2,A=d.call(arguments),b=+a.apply(this,(A[0]=h,A)),x=s.apply(this,A)-l,M=g.apply(this,A)-l,q=+f.apply(this,(A[0]=y,A)),w=s.apply(this,A)-l,C=g.apply(this,A)-l;if(m||(m=p=t.path()),v>c&&(e(M-x)>2*v+c?M>x?(x+=v,M-=v):(x-=v,M+=v):x=M=(x+M)/2,e(C-w)>2*v+c?C>w?(w+=v,C-=v):(w-=v,C+=v):w=C=(w+C)/2),m.moveTo(b*r(x),b*u(x)),m.arc(0,0,b,x,M),x!==w||M!==C)if(n){var _=+n.apply(this,arguments),j=q-_,P=(w+C)/2;m.quadraticCurveTo(0,0,j*r(w),j*u(w)),m.lineTo(q*r(P),q*u(P)),m.lineTo(j*r(C),j*u(C))}else m.quadraticCurveTo(0,0,q*r(w),q*u(w)),m.arc(0,0,q,w,C);if(m.quadraticCurveTo(0,0,b*r(x),b*u(x)),m.closePath(),p)return m=null,p+""||null}return n&&(M.headRadius=function(t){return arguments.length?(n="function"==typeof t?t:p(+t),M):n}),M.radius=function(n){return arguments.length?(a=f="function"==typeof n?n:p(+n),M):a},M.sourceRadius=function(n){return arguments.length?(a="function"==typeof n?n:p(+n),M):a},M.targetRadius=function(n){return arguments.length?(f="function"==typeof n?n:p(+n),M):f},M.startAngle=function(n){return arguments.length?(s="function"==typeof n?n:p(+n),M):s},M.endAngle=function(n){return arguments.length?(g="function"==typeof n?n:p(+n),M):g},M.padAngle=function(n){return arguments.length?(T="function"==typeof n?n:p(+n),M):T},M.source=function(n){return arguments.length?(o=n,M):o},M.target=function(n){return arguments.length?(i=n,M):i},M.context=function(n){return arguments.length?(m=null==n?null:n,M):m},M}n.chord=function(){return g(!1,!1)},n.chordDirected=function(){return g(!0,!1)},n.chordTranspose=function(){return g(!1,!0)},n.ribbon=function(){return m()},n.ribbonArrow=function(){return m(T)},Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-chord/package.json
===================================================================
--- node_modules/d3-chord/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "d3-chord",
-  "version": "3.0.1",
-  "description": "Visualize relationships or network flow with an aesthetically-pleasing circular layout.",
-  "homepage": "https://d3js.org/d3-chord/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-chord.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "chord",
-    "radial",
-    "network",
-    "flow"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-chord.min.js",
-  "unpkg": "dist/d3-chord.min.js",
-  "exports": {
-    "umd": "./dist/d3-chord.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-path": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-chord/src/array.js
===================================================================
--- node_modules/d3-chord/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var slice = Array.prototype.slice;
Index: de_modules/d3-chord/src/chord.js
===================================================================
--- node_modules/d3-chord/src/chord.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-import {max, tau} from "./math.js";
-
-function range(i, j) {
-  return Array.from({length: j - i}, (_, k) => i + k);
-}
-
-function compareValue(compare) {
-  return function(a, b) {
-    return compare(
-      a.source.value + a.target.value,
-      b.source.value + b.target.value
-    );
-  };
-}
-
-export default function() {
-  return chord(false, false);
-}
-
-export function chordTranspose() {
-  return chord(false, true);
-}
-
-export function chordDirected() {
-  return chord(true, false);
-}
-
-function chord(directed, transpose) {
-  var padAngle = 0,
-      sortGroups = null,
-      sortSubgroups = null,
-      sortChords = null;
-
-  function chord(matrix) {
-    var n = matrix.length,
-        groupSums = new Array(n),
-        groupIndex = range(0, n),
-        chords = new Array(n * n),
-        groups = new Array(n),
-        k = 0, dx;
-
-    matrix = Float64Array.from({length: n * n}, transpose
-        ? (_, i) => matrix[i % n][i / n | 0]
-        : (_, i) => matrix[i / n | 0][i % n]);
-
-    // Compute the scaling factor from value to angle in [0, 2pi].
-    for (let i = 0; i < n; ++i) {
-      let x = 0;
-      for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];
-      k += groupSums[i] = x;
-    }
-    k = max(0, tau - padAngle * n) / k;
-    dx = k ? padAngle : tau / n;
-
-    // Compute the angles for each group and constituent chord.
-    {
-      let x = 0;
-      if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));
-      for (const i of groupIndex) {
-        const x0 = x;
-        if (directed) {
-          const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            if (j < 0) {
-              const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};
-            } else {
-              const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        } else {
-          const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            let chord;
-            if (i < j) {
-              chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            } else {
-              chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-              if (i === j) chord.source = chord.target;
-            }
-            if (chord.source && chord.target && chord.source.value < chord.target.value) {
-              const source = chord.source;
-              chord.source = chord.target;
-              chord.target = source;
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        }
-        x += dx;
-      }
-    }
-
-    // Remove empty chords.
-    chords = Object.values(chords);
-    chords.groups = groups;
-    return sortChords ? chords.sort(sortChords) : chords;
-  }
-
-  chord.padAngle = function(_) {
-    return arguments.length ? (padAngle = max(0, _), chord) : padAngle;
-  };
-
-  chord.sortGroups = function(_) {
-    return arguments.length ? (sortGroups = _, chord) : sortGroups;
-  };
-
-  chord.sortSubgroups = function(_) {
-    return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
-  };
-
-  chord.sortChords = function(_) {
-    return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
-  };
-
-  return chord;
-}
Index: de_modules/d3-chord/src/constant.js
===================================================================
--- node_modules/d3-chord/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-chord/src/index.js
===================================================================
--- node_modules/d3-chord/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export {default as chord, chordTranspose, chordDirected} from "./chord.js";
-export {default as ribbon, ribbonArrow} from "./ribbon.js";
Index: de_modules/d3-chord/src/math.js
===================================================================
--- node_modules/d3-chord/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export var abs = Math.abs;
-export var cos = Math.cos;
-export var sin = Math.sin;
-export var pi = Math.PI;
-export var halfPi = pi / 2;
-export var tau = pi * 2;
-export var max = Math.max;
-export var epsilon = 1e-12;
Index: de_modules/d3-chord/src/ribbon.js
===================================================================
--- node_modules/d3-chord/src/ribbon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,134 +1,0 @@
-import {path} from "d3-path";
-import {slice} from "./array.js";
-import constant from "./constant.js";
-import {abs, cos, epsilon, halfPi, sin} from "./math.js";
-
-function defaultSource(d) {
-  return d.source;
-}
-
-function defaultTarget(d) {
-  return d.target;
-}
-
-function defaultRadius(d) {
-  return d.radius;
-}
-
-function defaultStartAngle(d) {
-  return d.startAngle;
-}
-
-function defaultEndAngle(d) {
-  return d.endAngle;
-}
-
-function defaultPadAngle() {
-  return 0;
-}
-
-function defaultArrowheadRadius() {
-  return 10;
-}
-
-function ribbon(headRadius) {
-  var source = defaultSource,
-      target = defaultTarget,
-      sourceRadius = defaultRadius,
-      targetRadius = defaultRadius,
-      startAngle = defaultStartAngle,
-      endAngle = defaultEndAngle,
-      padAngle = defaultPadAngle,
-      context = null;
-
-  function ribbon() {
-    var buffer,
-        s = source.apply(this, arguments),
-        t = target.apply(this, arguments),
-        ap = padAngle.apply(this, arguments) / 2,
-        argv = slice.call(arguments),
-        sr = +sourceRadius.apply(this, (argv[0] = s, argv)),
-        sa0 = startAngle.apply(this, argv) - halfPi,
-        sa1 = endAngle.apply(this, argv) - halfPi,
-        tr = +targetRadius.apply(this, (argv[0] = t, argv)),
-        ta0 = startAngle.apply(this, argv) - halfPi,
-        ta1 = endAngle.apply(this, argv) - halfPi;
-
-    if (!context) context = buffer = path();
-
-    if (ap > epsilon) {
-      if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);
-      else sa0 = sa1 = (sa0 + sa1) / 2;
-      if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);
-      else ta0 = ta1 = (ta0 + ta1) / 2;
-    }
-
-    context.moveTo(sr * cos(sa0), sr * sin(sa0));
-    context.arc(0, 0, sr, sa0, sa1);
-    if (sa0 !== ta0 || sa1 !== ta1) {
-      if (headRadius) {
-        var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;
-        context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));
-        context.lineTo(tr * cos(ta2), tr * sin(ta2));
-        context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));
-      } else {
-        context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));
-        context.arc(0, 0, tr, ta0, ta1);
-      }
-    }
-    context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  if (headRadius) ribbon.headRadius = function(_) {
-    return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : headRadius;
-  };
-
-  ribbon.radius = function(_) {
-    return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.sourceRadius = function(_) {
-    return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.targetRadius = function(_) {
-    return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant(+_), ribbon) : targetRadius;
-  };
-
-  ribbon.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : startAngle;
-  };
-
-  ribbon.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : endAngle;
-  };
-
-  ribbon.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : padAngle;
-  };
-
-  ribbon.source = function(_) {
-    return arguments.length ? (source = _, ribbon) : source;
-  };
-
-  ribbon.target = function(_) {
-    return arguments.length ? (target = _, ribbon) : target;
-  };
-
-  ribbon.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
-  };
-
-  return ribbon;
-}
-
-export default function() {
-  return ribbon();
-}
-
-export function ribbonArrow() {
-  return ribbon(defaultArrowheadRadius);
-}
Index: de_modules/d3-color/LICENSE
===================================================================
--- node_modules/d3-color/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-color/README.md
===================================================================
--- node_modules/d3-color/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,203 +1,0 @@
-# d3-color
-
-Even though your browser understands a lot about colors, it doesn’t offer much help in manipulating colors through JavaScript. The d3-color module therefore provides representations for various color spaces, allowing specification, conversion and manipulation. (Also see [d3-interpolate](https://github.com/d3/d3-interpolate) for color interpolation.)
-
-For example, take the color named “steelblue”:
-
-```js
-const c = d3.color("steelblue"); // {r: 70, g: 130, b: 180, opacity: 1}
-```
-
-Let’s try converting it to HSL:
-
-```js
-const c = d3.hsl("steelblue"); // {h: 207.27…, s: 0.44, l: 0.4902…, opacity: 1}
-```
-
-Now rotate the hue by 90°, bump up the saturation, and format as a string for CSS:
-
-```js
-c.h += 90;
-c.s += 0.2;
-c + ""; // rgb(198, 45, 205)
-```
-
-To fade the color slightly:
-
-```js
-c.opacity = 0.8;
-c + ""; // rgba(198, 45, 205, 0.8)
-```
-
-In addition to the ubiquitous and machine-friendly [RGB](#rgb) and [HSL](#hsl) color space, d3-color supports color spaces that are designed for humans:
-
-* [CIELAB](#lab) (*a.k.a.* “Lab”)
-* [CIELCh<sub>ab</sub>](#lch) (*a.k.a.* “LCh” or “HCL”)
-* Dave Green’s [Cubehelix](#cubehelix)
-
-Cubehelix features monotonic lightness, while CIELAB and its polar form CIELCh<sub>ab</sub> are perceptually uniform.
-
-## Extensions
-
-For additional color spaces, see:
-
-* [d3-cam16](https://github.com/d3/d3-cam16)
-* [d3-cam02](https://github.com/connorgr/d3-cam02)
-* [d3-hsv](https://github.com/d3/d3-hsv)
-* [d3-hcg](https://github.com/d3/d3-hcg)
-* [d3-hsluv](https://github.com/petulla/d3-hsluv)
-
-To measure color differences, see:
-
-* [d3-color-difference](https://github.com/Evercoder/d3-color-difference)
-
-## Installing
-
-If you use npm, `npm install d3-color`. You can also download the [latest release on GitHub](https://github.com/d3/d3-color/releases/latest). For vanilla HTML in modern browsers, import d3-color from Skypack:
-
-```html
-<script type="module">
-
-import {rgb} from "https://cdn.skypack.dev/d3-color@3";
-
-const steelblue = d3.rgb("steelblue");
-
-</script>
-```
-
-For legacy environments, you can load d3-color’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script>
-
-const steelblue = d3.rgb("steelblue");
-
-</script>
-```
-
-[Try d3-color in your browser.](https://observablehq.com/collection/@d3/d3-color)
-
-## API Reference
-
-<a name="color" href="#color">#</a> d3.<b>color</b>(<i>specifier</i>) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Parses the specified [CSS Color Module Level 3](http://www.w3.org/TR/css3-color/#colorunits) *specifier* string, returning an [RGB](#rgb) or [HSL](#hsl) color, along with [CSS Color Module Level 4 hex](https://www.w3.org/TR/css-color-4/#hex-notation) *specifier* strings. If the specifier was not valid, null is returned. Some examples:
-
-* `rgb(255, 255, 255)`
-* `rgb(10%, 20%, 30%)`
-* `rgba(255, 255, 255, 0.4)`
-* `rgba(10%, 20%, 30%, 0.4)`
-* `hsl(120, 50%, 20%)`
-* `hsla(120, 50%, 20%, 0.4)`
-* `#ffeeaa`
-* `#fea`
-* `#ffeeaa22`
-* `#fea2`
-* `steelblue`
-
-The list of supported [named colors](http://www.w3.org/TR/SVG/types.html#ColorKeywords) is specified by CSS.
-
-Note: this function may also be used with `instanceof` to test if an object is a color instance. The same is true of color subclasses, allowing you to test whether a color is in a particular color space.
-
-<a name="color_opacity" href="#color_opacity">#</a> *color*.<b>opacity</b>
-
-This color’s opacity, typically in the range [0, 1].
-
-<a name="color_rgb" href="#color_rgb">#</a> *color*.<b>rgb</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns the [RGB equivalent](#rgb) of this color. For RGB colors, that’s `this`.
-
-<a name="color_copy" href="#color_copy">#</a> <i>color</i>.<b>copy</b>([<i>values</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a copy of this color. If *values* is specified, any enumerable own properties of *values* are assigned to the new returned color. For example, to derive a copy of a *color* with opacity 0.5, say
-
-```js
-color.copy({opacity: 0.5})
-```
-
-<a name="color_brighter" href="#color_brighter">#</a> *color*.<b>brighter</b>([<i>k</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a brighter copy of this color. If *k* is specified, it controls how much brighter the returned color should be. If *k* is not specified, it defaults to 1. The behavior of this method is dependent on the implementing color space.
-
-<a name="color_darker" href="#color_darker">#</a> *color*.<b>darker</b>([<i>k</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a darker copy of this color. If *k* is specified, it controls how much darker the returned color should be. If *k* is not specified, it defaults to 1. The behavior of this method is dependent on the implementing color space.
-
-<a name="color_displayable" href="#color_displayable">#</a> *color*.<b>displayable</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns true if and only if the color is displayable on standard hardware. For example, this returns false for an RGB color if any channel value is less than zero or greater than 255 when rounded, or if the opacity is not in the range [0, 1].
-
-<a name="color_formatHex" href="#color_formatHex">#</a> *color*.<b>formatHex</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a hexadecimal string representing this color in RGB space, such as `#f7eaba`. If this color is not displayable, a suitable displayable color is returned instead. For example, RGB channel values greater than 255 are clamped to 255.
-
-<a name="color_formatHsl" href="#color_formatHsl">#</a> *color*.<b>formatHsl</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a string representing this color according to the [CSS Color Module Level 3 specification](https://www.w3.org/TR/css-color-3/#hsl-color), such as `hsl(257, 50%, 80%)` or `hsla(257, 50%, 80%, 0.2)`. If this color is not displayable, a suitable displayable color is returned instead by clamping S and L channel values to the interval [0, 100].
-
-<a name="color_formatRgb" href="#color_formatRgb">#</a> *color*.<b>formatRgb</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a string representing this color according to the [CSS Object Model specification](https://drafts.csswg.org/cssom/#serialize-a-css-component-value), such as `rgb(247, 234, 186)` or `rgba(247, 234, 186, 0.2)`. If this color is not displayable, a suitable displayable color is returned instead by clamping RGB channel values to the interval [0, 255].
-
-<a name="color_toString" href="#color_toString">#</a> *color*.<b>toString</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-An alias for [*color*.formatRgb](#color_formatRgb).
-
-<a name="rgb" href="#rgb">#</a> d3.<b>rgb</b>(<i>r</i>, <i>g</i>, <i>b</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")<br>
-<a href="#rgb">#</a> d3.<b>rgb</b>(<i>specifier</i>)<br>
-<a href="#rgb">#</a> d3.<b>rgb</b>(<i>color</i>)<br>
-
-Constructs a new [RGB](https://en.wikipedia.org/wiki/RGB_color_model) color. The channel values are exposed as `r`, `g` and `b` properties on the returned instance. Use the [RGB color picker](http://bl.ocks.org/mbostock/78d64ca7ef013b4dcf8f) to explore this color space.
-
-If *r*, *g* and *b* are specified, these represent the channel values of the returned color; an *opacity* may also be specified. If a CSS Color Module Level 3 *specifier* string is specified, it is parsed and then converted to the RGB color space. See [color](#color) for examples. If a [*color*](#color) instance is specified, it is converted to the RGB color space using [*color*.rgb](#color_rgb). Note that unlike [*color*.rgb](#color_rgb) this method *always* returns a new instance, even if *color* is already an RGB color.
-
-<a name="rgb_clamp" href="#rgb_clamp">#</a> *rgb*.<b>clamp</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a new RGB color where the `r`, `g`, and `b` channels are clamped to the range [0, 255] and rounded to the nearest integer value, and the `opacity` is clamped to the range [0, 1].
-
-<a name="hsl" href="#hsl">#</a> d3.<b>hsl</b>(<i>h</i>, <i>s</i>, <i>l</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")<br>
-<a href="#hsl">#</a> d3.<b>hsl</b>(<i>specifier</i>)<br>
-<a href="#hsl">#</a> d3.<b>hsl</b>(<i>color</i>)<br>
-
-Constructs a new [HSL](https://en.wikipedia.org/wiki/HSL_and_HSV) color. The channel values are exposed as `h`, `s` and `l` properties on the returned instance. Use the [HSL color picker](http://bl.ocks.org/mbostock/debaad4fcce9bcee14cf) to explore this color space.
-
-If *h*, *s* and *l* are specified, these represent the channel values of the returned color; an *opacity* may also be specified. If a CSS Color Module Level 3 *specifier* string is specified, it is parsed and then converted to the HSL color space. See [color](#color) for examples. If a [*color*](#color) instance is specified, it is converted to the RGB color space using [*color*.rgb](#color_rgb) and then converted to HSL. (Colors already in the HSL color space skip the conversion to RGB.)
-
-<a name="hsl_clamp" href="#hsl_clamp">#</a> *hsl*.<b>clamp</b>() [<>](https://github.com/d3/d3-color/blob/master/src/color.js "Source")
-
-Returns a new HSL color where the `h` channel is clamped to the range [0, 360), and the `s`, `l`, and `opacity` channels are clamped to the range [0, 1].
-
-<a name="lab" href="#lab">#</a> d3.<b>lab</b>(<i>l</i>, <i>a</i>, <i>b</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/lab.js "Source")<br>
-<a href="#lab">#</a> d3.<b>lab</b>(<i>specifier</i>)<br>
-<a href="#lab">#</a> d3.<b>lab</b>(<i>color</i>)<br>
-
-Constructs a new [CIELAB](https://en.wikipedia.org/wiki/Lab_color_space#CIELAB) color. The channel values are exposed as `l`, `a` and `b` properties on the returned instance. Use the [CIELAB color picker](http://bl.ocks.org/mbostock/9f37cc207c0cb166921b) to explore this color space. The value of *l* is typically in the range [0, 100], while *a* and *b* are typically in [-160, +160].
-
-If *l*, *a* and *b* are specified, these represent the channel values of the returned color; an *opacity* may also be specified. If a CSS Color Module Level 3 *specifier* string is specified, it is parsed and then converted to the CIELAB color space. See [color](#color) for examples. If a [*color*](#color) instance is specified, it is converted to the RGB color space using [*color*.rgb](#color_rgb) and then converted to CIELAB. (Colors already in the CIELAB color space skip the conversion to RGB, and colors in the HCL color space are converted directly to CIELAB.)
-
-<a name="gray" href="#gray">#</a> d3.<b>gray</b>(<i>l</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/lab.js "Source")<br>
-
-Constructs a new [CIELAB](#lab) color with the specified *l* value and *a* = *b* = 0.
-
-<a name="hcl" href="#hcl">#</a> d3.<b>hcl</b>(<i>h</i>, <i>c</i>, <i>l</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/lab.js "Source")<br>
-<a href="#hcl">#</a> d3.<b>hcl</b>(<i>specifier</i>)<br>
-<a href="#hcl">#</a> d3.<b>hcl</b>(<i>color</i>)<br>
-
-Equivalent to [d3.lch](#lch), but with reversed argument order.
-
-<a name="lch" href="#lch">#</a> d3.<b>lch</b>(<i>l</i>, <i>c</i>, <i>h</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/lab.js "Source")<br>
-<a href="#lch">#</a> d3.<b>lch</b>(<i>specifier</i>)<br>
-<a href="#lch">#</a> d3.<b>lch</b>(<i>color</i>)<br>
-
-Constructs a new [CIELCh<sub>ab</sub>](https://en.wikipedia.org/wiki/CIELAB_color_space#Cylindrical_representation:_CIELCh_or_CIEHLC) color. The channel values are exposed as `l`, `c` and `h` properties on the returned instance. Use the [CIELCh<sub>ab</sub> color picker](http://bl.ocks.org/mbostock/3e115519a1b495e0bd95) to explore this color space. The value of *l* is typically in the range [0, 100], *c* is typically in [0, 230], and *h* is typically in [0, 360).
-
-If *l*, *c*, and *h* are specified, these represent the channel values of the returned color; an *opacity* may also be specified. If a CSS Color Module Level 3 *specifier* string is specified, it is parsed and then converted to CIELCh<sub>ab</sub> color space. See [color](#color) for examples. If a [*color*](#color) instance is specified, it is converted to the RGB color space using [*color*.rgb](#color_rgb) and then converted to CIELCh<sub>ab</sub>. (Colors already in CIELCh<sub>ab</sub> color space skip the conversion to RGB, and colors in CIELAB color space are converted directly to CIELCh<sub>ab</sub>.)
-
-<a name="cubehelix" href="#cubehelix">#</a> d3.<b>cubehelix</b>(<i>h</i>, <i>s</i>, <i>l</i>[, <i>opacity</i>]) [<>](https://github.com/d3/d3-color/blob/master/src/cubehelix.js "Source")<br>
-<a href="#cubehelix">#</a> d3.<b>cubehelix</b>(<i>specifier</i>)<br>
-<a href="#cubehelix">#</a> d3.<b>cubehelix</b>(<i>color</i>)<br>
-
-Constructs a new [Cubehelix](http://www.mrao.cam.ac.uk/~dag/CUBEHELIX/) color. The channel values are exposed as `h`, `s` and `l` properties on the returned instance. Use the [Cubehelix color picker](http://bl.ocks.org/mbostock/ba8d75e45794c27168b5) to explore this color space.
-
-If *h*, *s* and *l* are specified, these represent the channel values of the returned color; an *opacity* may also be specified. If a CSS Color Module Level 3 *specifier* string is specified, it is parsed and then converted to the Cubehelix color space. See [color](#color) for examples. If a [*color*](#color) instance is specified, it is converted to the RGB color space using [*color*.rgb](#color_rgb) and then converted to Cubehelix. (Colors already in the Cubehelix color space skip the conversion to RGB.)
Index: de_modules/d3-color/dist/d3-color.js
===================================================================
--- node_modules/d3-color/dist/d3-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,606 +1,0 @@
-// https://d3js.org/d3-color/ v3.1.0 Copyright 2010-2022 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-function define(constructor, factory, prototype) {
-  constructor.prototype = factory.prototype = prototype;
-  prototype.constructor = constructor;
-}
-
-function extend(parent, definition) {
-  var prototype = Object.create(parent.prototype);
-  for (var key in definition) prototype[key] = definition[key];
-  return prototype;
-}
-
-function Color() {}
-
-var darker = 0.7;
-var brighter = 1 / darker;
-
-var reI = "\\s*([+-]?\\d+)\\s*",
-    reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
-    reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
-    reHex = /^#([0-9a-f]{3,8})$/,
-    reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
-    reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
-    reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
-    reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
-    reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
-    reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
-
-var named = {
-  aliceblue: 0xf0f8ff,
-  antiquewhite: 0xfaebd7,
-  aqua: 0x00ffff,
-  aquamarine: 0x7fffd4,
-  azure: 0xf0ffff,
-  beige: 0xf5f5dc,
-  bisque: 0xffe4c4,
-  black: 0x000000,
-  blanchedalmond: 0xffebcd,
-  blue: 0x0000ff,
-  blueviolet: 0x8a2be2,
-  brown: 0xa52a2a,
-  burlywood: 0xdeb887,
-  cadetblue: 0x5f9ea0,
-  chartreuse: 0x7fff00,
-  chocolate: 0xd2691e,
-  coral: 0xff7f50,
-  cornflowerblue: 0x6495ed,
-  cornsilk: 0xfff8dc,
-  crimson: 0xdc143c,
-  cyan: 0x00ffff,
-  darkblue: 0x00008b,
-  darkcyan: 0x008b8b,
-  darkgoldenrod: 0xb8860b,
-  darkgray: 0xa9a9a9,
-  darkgreen: 0x006400,
-  darkgrey: 0xa9a9a9,
-  darkkhaki: 0xbdb76b,
-  darkmagenta: 0x8b008b,
-  darkolivegreen: 0x556b2f,
-  darkorange: 0xff8c00,
-  darkorchid: 0x9932cc,
-  darkred: 0x8b0000,
-  darksalmon: 0xe9967a,
-  darkseagreen: 0x8fbc8f,
-  darkslateblue: 0x483d8b,
-  darkslategray: 0x2f4f4f,
-  darkslategrey: 0x2f4f4f,
-  darkturquoise: 0x00ced1,
-  darkviolet: 0x9400d3,
-  deeppink: 0xff1493,
-  deepskyblue: 0x00bfff,
-  dimgray: 0x696969,
-  dimgrey: 0x696969,
-  dodgerblue: 0x1e90ff,
-  firebrick: 0xb22222,
-  floralwhite: 0xfffaf0,
-  forestgreen: 0x228b22,
-  fuchsia: 0xff00ff,
-  gainsboro: 0xdcdcdc,
-  ghostwhite: 0xf8f8ff,
-  gold: 0xffd700,
-  goldenrod: 0xdaa520,
-  gray: 0x808080,
-  green: 0x008000,
-  greenyellow: 0xadff2f,
-  grey: 0x808080,
-  honeydew: 0xf0fff0,
-  hotpink: 0xff69b4,
-  indianred: 0xcd5c5c,
-  indigo: 0x4b0082,
-  ivory: 0xfffff0,
-  khaki: 0xf0e68c,
-  lavender: 0xe6e6fa,
-  lavenderblush: 0xfff0f5,
-  lawngreen: 0x7cfc00,
-  lemonchiffon: 0xfffacd,
-  lightblue: 0xadd8e6,
-  lightcoral: 0xf08080,
-  lightcyan: 0xe0ffff,
-  lightgoldenrodyellow: 0xfafad2,
-  lightgray: 0xd3d3d3,
-  lightgreen: 0x90ee90,
-  lightgrey: 0xd3d3d3,
-  lightpink: 0xffb6c1,
-  lightsalmon: 0xffa07a,
-  lightseagreen: 0x20b2aa,
-  lightskyblue: 0x87cefa,
-  lightslategray: 0x778899,
-  lightslategrey: 0x778899,
-  lightsteelblue: 0xb0c4de,
-  lightyellow: 0xffffe0,
-  lime: 0x00ff00,
-  limegreen: 0x32cd32,
-  linen: 0xfaf0e6,
-  magenta: 0xff00ff,
-  maroon: 0x800000,
-  mediumaquamarine: 0x66cdaa,
-  mediumblue: 0x0000cd,
-  mediumorchid: 0xba55d3,
-  mediumpurple: 0x9370db,
-  mediumseagreen: 0x3cb371,
-  mediumslateblue: 0x7b68ee,
-  mediumspringgreen: 0x00fa9a,
-  mediumturquoise: 0x48d1cc,
-  mediumvioletred: 0xc71585,
-  midnightblue: 0x191970,
-  mintcream: 0xf5fffa,
-  mistyrose: 0xffe4e1,
-  moccasin: 0xffe4b5,
-  navajowhite: 0xffdead,
-  navy: 0x000080,
-  oldlace: 0xfdf5e6,
-  olive: 0x808000,
-  olivedrab: 0x6b8e23,
-  orange: 0xffa500,
-  orangered: 0xff4500,
-  orchid: 0xda70d6,
-  palegoldenrod: 0xeee8aa,
-  palegreen: 0x98fb98,
-  paleturquoise: 0xafeeee,
-  palevioletred: 0xdb7093,
-  papayawhip: 0xffefd5,
-  peachpuff: 0xffdab9,
-  peru: 0xcd853f,
-  pink: 0xffc0cb,
-  plum: 0xdda0dd,
-  powderblue: 0xb0e0e6,
-  purple: 0x800080,
-  rebeccapurple: 0x663399,
-  red: 0xff0000,
-  rosybrown: 0xbc8f8f,
-  royalblue: 0x4169e1,
-  saddlebrown: 0x8b4513,
-  salmon: 0xfa8072,
-  sandybrown: 0xf4a460,
-  seagreen: 0x2e8b57,
-  seashell: 0xfff5ee,
-  sienna: 0xa0522d,
-  silver: 0xc0c0c0,
-  skyblue: 0x87ceeb,
-  slateblue: 0x6a5acd,
-  slategray: 0x708090,
-  slategrey: 0x708090,
-  snow: 0xfffafa,
-  springgreen: 0x00ff7f,
-  steelblue: 0x4682b4,
-  tan: 0xd2b48c,
-  teal: 0x008080,
-  thistle: 0xd8bfd8,
-  tomato: 0xff6347,
-  turquoise: 0x40e0d0,
-  violet: 0xee82ee,
-  wheat: 0xf5deb3,
-  white: 0xffffff,
-  whitesmoke: 0xf5f5f5,
-  yellow: 0xffff00,
-  yellowgreen: 0x9acd32
-};
-
-define(Color, color, {
-  copy(channels) {
-    return Object.assign(new this.constructor, this, channels);
-  },
-  displayable() {
-    return this.rgb().displayable();
-  },
-  hex: color_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: color_formatHex,
-  formatHex8: color_formatHex8,
-  formatHsl: color_formatHsl,
-  formatRgb: color_formatRgb,
-  toString: color_formatRgb
-});
-
-function color_formatHex() {
-  return this.rgb().formatHex();
-}
-
-function color_formatHex8() {
-  return this.rgb().formatHex8();
-}
-
-function color_formatHsl() {
-  return hslConvert(this).formatHsl();
-}
-
-function color_formatRgb() {
-  return this.rgb().formatRgb();
-}
-
-function color(format) {
-  var m, l;
-  format = (format + "").trim().toLowerCase();
-  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
-      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
-      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
-      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
-      : null) // invalid hex
-      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
-      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
-      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
-      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
-      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
-      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
-      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
-      : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
-      : null;
-}
-
-function rgbn(n) {
-  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
-}
-
-function rgba(r, g, b, a) {
-  if (a <= 0) r = g = b = NaN;
-  return new Rgb(r, g, b, a);
-}
-
-function rgbConvert(o) {
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Rgb;
-  o = o.rgb();
-  return new Rgb(o.r, o.g, o.b, o.opacity);
-}
-
-function rgb(r, g, b, opacity) {
-  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
-}
-
-function Rgb(r, g, b, opacity) {
-  this.r = +r;
-  this.g = +g;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Rgb, rgb, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  rgb() {
-    return this;
-  },
-  clamp() {
-    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
-  },
-  displayable() {
-    return (-0.5 <= this.r && this.r < 255.5)
-        && (-0.5 <= this.g && this.g < 255.5)
-        && (-0.5 <= this.b && this.b < 255.5)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  hex: rgb_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: rgb_formatHex,
-  formatHex8: rgb_formatHex8,
-  formatRgb: rgb_formatRgb,
-  toString: rgb_formatRgb
-}));
-
-function rgb_formatHex() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
-}
-
-function rgb_formatHex8() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
-}
-
-function rgb_formatRgb() {
-  const a = clampa(this.opacity);
-  return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
-}
-
-function clampa(opacity) {
-  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
-}
-
-function clampi(value) {
-  return Math.max(0, Math.min(255, Math.round(value) || 0));
-}
-
-function hex(value) {
-  value = clampi(value);
-  return (value < 16 ? "0" : "") + value.toString(16);
-}
-
-function hsla(h, s, l, a) {
-  if (a <= 0) h = s = l = NaN;
-  else if (l <= 0 || l >= 1) h = s = NaN;
-  else if (s <= 0) h = NaN;
-  return new Hsl(h, s, l, a);
-}
-
-function hslConvert(o) {
-  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Hsl;
-  if (o instanceof Hsl) return o;
-  o = o.rgb();
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      min = Math.min(r, g, b),
-      max = Math.max(r, g, b),
-      h = NaN,
-      s = max - min,
-      l = (max + min) / 2;
-  if (s) {
-    if (r === max) h = (g - b) / s + (g < b) * 6;
-    else if (g === max) h = (b - r) / s + 2;
-    else h = (r - g) / s + 4;
-    s /= l < 0.5 ? max + min : 2 - max - min;
-    h *= 60;
-  } else {
-    s = l > 0 && l < 1 ? 0 : h;
-  }
-  return new Hsl(h, s, l, o.opacity);
-}
-
-function hsl(h, s, l, opacity) {
-  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Hsl(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Hsl, hsl, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = this.h % 360 + (this.h < 0) * 360,
-        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
-        l = this.l,
-        m2 = l + (l < 0.5 ? l : 1 - l) * s,
-        m1 = 2 * l - m2;
-    return new Rgb(
-      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
-      hsl2rgb(h, m1, m2),
-      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
-      this.opacity
-    );
-  },
-  clamp() {
-    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
-  },
-  displayable() {
-    return (0 <= this.s && this.s <= 1 || isNaN(this.s))
-        && (0 <= this.l && this.l <= 1)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  formatHsl() {
-    const a = clampa(this.opacity);
-    return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
-  }
-}));
-
-function clamph(value) {
-  value = (value || 0) % 360;
-  return value < 0 ? value + 360 : value;
-}
-
-function clampt(value) {
-  return Math.max(0, Math.min(1, value || 0));
-}
-
-/* From FvD 13.37, CSS Color Module Level 3 */
-function hsl2rgb(h, m1, m2) {
-  return (h < 60 ? m1 + (m2 - m1) * h / 60
-      : h < 180 ? m2
-      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
-      : m1) * 255;
-}
-
-const radians = Math.PI / 180;
-const degrees = 180 / Math.PI;
-
-// https://observablehq.com/@mbostock/lab-and-rgb
-const K = 18,
-    Xn = 0.96422,
-    Yn = 1,
-    Zn = 0.82521,
-    t0 = 4 / 29,
-    t1 = 6 / 29,
-    t2 = 3 * t1 * t1,
-    t3 = t1 * t1 * t1;
-
-function labConvert(o) {
-  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
-  if (o instanceof Hcl) return hcl2lab(o);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = rgb2lrgb(o.r),
-      g = rgb2lrgb(o.g),
-      b = rgb2lrgb(o.b),
-      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
-  if (r === g && g === b) x = z = y; else {
-    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
-    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
-  }
-  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
-}
-
-function gray(l, opacity) {
-  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
-}
-
-function lab(l, a, b, opacity) {
-  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
-}
-
-function Lab(l, a, b, opacity) {
-  this.l = +l;
-  this.a = +a;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Lab, lab, extend(Color, {
-  brighter(k) {
-    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  darker(k) {
-    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  rgb() {
-    var y = (this.l + 16) / 116,
-        x = isNaN(this.a) ? y : y + this.a / 500,
-        z = isNaN(this.b) ? y : y - this.b / 200;
-    x = Xn * lab2xyz(x);
-    y = Yn * lab2xyz(y);
-    z = Zn * lab2xyz(z);
-    return new Rgb(
-      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
-      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
-      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
-      this.opacity
-    );
-  }
-}));
-
-function xyz2lab(t) {
-  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
-}
-
-function lab2xyz(t) {
-  return t > t1 ? t * t * t : t2 * (t - t0);
-}
-
-function lrgb2rgb(x) {
-  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
-}
-
-function rgb2lrgb(x) {
-  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
-}
-
-function hclConvert(o) {
-  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
-  if (!(o instanceof Lab)) o = labConvert(o);
-  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
-  var h = Math.atan2(o.b, o.a) * degrees;
-  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
-}
-
-function lch(l, c, h, opacity) {
-  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-function hcl(h, c, l, opacity) {
-  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-function Hcl(h, c, l, opacity) {
-  this.h = +h;
-  this.c = +c;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-function hcl2lab(o) {
-  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
-  var h = o.h * radians;
-  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
-}
-
-define(Hcl, hcl, extend(Color, {
-  brighter(k) {
-    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
-  },
-  darker(k) {
-    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
-  },
-  rgb() {
-    return hcl2lab(this).rgb();
-  }
-}));
-
-var A = -0.14861,
-    B = +1.78277,
-    C = -0.29227,
-    D = -0.90649,
-    E = +1.97294,
-    ED = E * D,
-    EB = E * B,
-    BC_DA = B * C - D * A;
-
-function cubehelixConvert(o) {
-  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
-      bl = b - l,
-      k = (E * (g - l) - C * bl) / D,
-      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
-      h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;
-  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
-}
-
-function cubehelix(h, s, l, opacity) {
-  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Cubehelix(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Cubehelix, cubehelix, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,
-        l = +this.l,
-        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
-        cosh = Math.cos(h),
-        sinh = Math.sin(h);
-    return new Rgb(
-      255 * (l + a * (A * cosh + B * sinh)),
-      255 * (l + a * (C * cosh + D * sinh)),
-      255 * (l + a * (E * cosh)),
-      this.opacity
-    );
-  }
-}));
-
-exports.color = color;
-exports.cubehelix = cubehelix;
-exports.gray = gray;
-exports.hcl = hcl;
-exports.hsl = hsl;
-exports.lab = lab;
-exports.lch = lch;
-exports.rgb = rgb;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-color/dist/d3-color.min.js
===================================================================
--- node_modules/d3-color/dist/d3-color.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-color/ v3.1.0 Copyright 2010-2022 Mike Bostock
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function i(t,e){var i=Object.create(t.prototype);for(var n in e)i[n]=e[n];return i}function n(){}var r=.7,a=1/r,s="\\s*([+-]?\\d+)\\s*",h="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,u=new RegExp(`^rgb\\(${s},${s},${s}\\)$`),c=new RegExp(`^rgb\\(${o},${o},${o}\\)$`),g=new RegExp(`^rgba\\(${s},${s},${s},${h}\\)$`),p=new RegExp(`^rgba\\(${o},${o},${o},${h}\\)$`),f=new RegExp(`^hsl\\(${h},${o},${o}\\)$`),d=new RegExp(`^hsla\\(${h},${o},${o},${h}\\)$`),b={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function y(){return this.rgb().formatHex()}function w(){return this.rgb().formatRgb()}function m(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=l.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?$(e):3===i?new M(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?N(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?N(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=u.exec(t))?new M(e[1],e[2],e[3],1):(e=c.exec(t))?new M(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=g.exec(t))?N(e[1],e[2],e[3],e[4]):(e=p.exec(t))?N(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=f.exec(t))?j(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?j(e[1],e[2]/100,e[3]/100,e[4]):b.hasOwnProperty(t)?$(b[t]):"transparent"===t?new M(NaN,NaN,NaN,0):null}function $(t){return new M(t>>16&255,t>>8&255,255&t,1)}function N(t,e,i,n){return n<=0&&(t=e=i=NaN),new M(t,e,i,n)}function k(t){return t instanceof n||(t=m(t)),t?new M((t=t.rgb()).r,t.g,t.b,t.opacity):new M}function x(t,e,i,n){return 1===arguments.length?k(t):new M(t,e,i,null==n?1:n)}function M(t,e,i,n){this.r=+t,this.g=+e,this.b=+i,this.opacity=+n}function v(){return`#${E(this.r)}${E(this.g)}${E(this.b)}`}function q(){const t=H(this.opacity);return`${1===t?"rgb(":"rgba("}${R(this.r)}, ${R(this.g)}, ${R(this.b)}${1===t?")":`, ${t})`}`}function H(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function R(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function E(t){return((t=R(t))<16?"0":"")+t.toString(16)}function j(t,e,i,n){return n<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new I(t,e,i,n)}function O(t){if(t instanceof I)return new I(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=m(t)),!t)return new I;if(t instanceof I)return t;var e=(t=t.rgb()).r/255,i=t.g/255,r=t.b/255,a=Math.min(e,i,r),s=Math.max(e,i,r),h=NaN,o=s-a,l=(s+a)/2;return o?(h=e===s?(i-r)/o+6*(i<r):i===s?(r-e)/o+2:(e-i)/o+4,o/=l<.5?s+a:2-s-a,h*=60):o=l>0&&l<1?0:h,new I(h,o,l,t.opacity)}function P(t,e,i,n){return 1===arguments.length?O(t):new I(t,e,i,null==n?1:n)}function I(t,e,i,n){this.h=+t,this.s=+e,this.l=+i,this.opacity=+n}function S(t){return(t=(t||0)%360)<0?t+360:t}function T(t){return Math.max(0,Math.min(1,t||0))}function _(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}e(n,m,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:y,formatHex:y,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return O(this).formatHsl()},formatRgb:w,toString:w}),e(M,x,i(n,{brighter(t){return t=null==t?a:Math.pow(a,t),new M(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?r:Math.pow(r,t),new M(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new M(R(this.r),R(this.g),R(this.b),H(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:v,formatHex:v,formatHex8:function(){return`#${E(this.r)}${E(this.g)}${E(this.b)}${E(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:q,toString:q})),e(I,P,i(n,{brighter(t){return t=null==t?a:Math.pow(a,t),new I(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?r:Math.pow(r,t),new I(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,n=i+(i<.5?i:1-i)*e,r=2*i-n;return new M(_(t>=240?t-240:t+120,r,n),_(t,r,n),_(t<120?t+240:t-120,r,n),this.opacity)},clamp(){return new I(S(this.h),T(this.s),T(this.l),H(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=H(this.opacity);return`${1===t?"hsl(":"hsla("}${S(this.h)}, ${100*T(this.s)}%, ${100*T(this.l)}%${1===t?")":`, ${t})`}`}}));const z=Math.PI/180,C=180/Math.PI,L=.96422,A=.82521,B=4/29,D=6/29,F=3*D*D;function G(t){if(t instanceof K)return new K(t.l,t.a,t.b,t.opacity);if(t instanceof Z)return tt(t);t instanceof M||(t=k(t));var e,i,n=W(t.r),r=W(t.g),a=W(t.b),s=Q((.2225045*n+.7168786*r+.0606169*a)/1);return n===r&&r===a?e=i=s:(e=Q((.4360747*n+.3850649*r+.1430804*a)/L),i=Q((.0139322*n+.0971045*r+.7141733*a)/A)),new K(116*s-16,500*(e-s),200*(s-i),t.opacity)}function J(t,e,i,n){return 1===arguments.length?G(t):new K(t,e,i,null==n?1:n)}function K(t,e,i,n){this.l=+t,this.a=+e,this.b=+i,this.opacity=+n}function Q(t){return t>.008856451679035631?Math.pow(t,1/3):t/F+B}function U(t){return t>D?t*t*t:F*(t-B)}function V(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function W(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function X(t){if(t instanceof Z)return new Z(t.h,t.c,t.l,t.opacity);if(t instanceof K||(t=G(t)),0===t.a&&0===t.b)return new Z(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*C;return new Z(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Y(t,e,i,n){return 1===arguments.length?X(t):new Z(t,e,i,null==n?1:n)}function Z(t,e,i,n){this.h=+t,this.c=+e,this.l=+i,this.opacity=+n}function tt(t){if(isNaN(t.h))return new K(t.l,0,0,t.opacity);var e=t.h*z;return new K(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}e(K,J,i(n,{brighter(t){return new K(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new K(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,i=isNaN(this.b)?t:t-this.b/200;return new M(V(3.1338561*(e=L*U(e))-1.6168667*(t=1*U(t))-.4906146*(i=A*U(i))),V(-.9787684*e+1.9161415*t+.033454*i),V(.0719453*e-.2289914*t+1.4052427*i),this.opacity)}})),e(Z,Y,i(n,{brighter(t){return new Z(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new Z(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return tt(this).rgb()}}));var et=-.14861,it=1.78277,nt=-.29227,rt=-.90649,at=1.97294,st=at*rt,ht=at*it,ot=it*nt-rt*et;function lt(t){if(t instanceof ct)return new ct(t.h,t.s,t.l,t.opacity);t instanceof M||(t=k(t));var e=t.r/255,i=t.g/255,n=t.b/255,r=(ot*n+st*e-ht*i)/(ot+st-ht),a=n-r,s=(at*(i-r)-nt*a)/rt,h=Math.sqrt(s*s+a*a)/(at*r*(1-r)),o=h?Math.atan2(s,a)*C-120:NaN;return new ct(o<0?o+360:o,h,r,t.opacity)}function ut(t,e,i,n){return 1===arguments.length?lt(t):new ct(t,e,i,null==n?1:n)}function ct(t,e,i,n){this.h=+t,this.s=+e,this.l=+i,this.opacity=+n}e(ct,ut,i(n,{brighter(t){return t=null==t?a:Math.pow(a,t),new ct(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?r:Math.pow(r,t),new ct(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*z,e=+this.l,i=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),r=Math.sin(t);return new M(255*(e+i*(et*n+it*r)),255*(e+i*(nt*n+rt*r)),255*(e+i*(at*n)),this.opacity)}})),t.color=m,t.cubehelix=ut,t.gray=function(t,e){return new K(t,0,0,null==e?1:e)},t.hcl=Y,t.hsl=P,t.lab=J,t.lch=function(t,e,i,n){return 1===arguments.length?X(t):new Z(i,e,t,null==n?1:n)},t.rgb=x,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-color/package.json
===================================================================
--- node_modules/d3-color/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "d3-color",
-  "version": "3.1.0",
-  "description": "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).",
-  "homepage": "https://d3js.org/d3-color/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-color.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "color",
-    "rgb",
-    "hsl",
-    "lab",
-    "hcl",
-    "lch",
-    "cubehelix"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-color.min.js",
-  "unpkg": "dist/d3-color.min.js",
-  "exports": {
-    "umd": "./dist/d3-color.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "8",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-color/src/color.js
===================================================================
--- node_modules/d3-color/src/color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,396 +1,0 @@
-import define, {extend} from "./define.js";
-
-export function Color() {}
-
-export var darker = 0.7;
-export var brighter = 1 / darker;
-
-var reI = "\\s*([+-]?\\d+)\\s*",
-    reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
-    reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
-    reHex = /^#([0-9a-f]{3,8})$/,
-    reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
-    reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
-    reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
-    reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
-    reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
-    reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
-
-var named = {
-  aliceblue: 0xf0f8ff,
-  antiquewhite: 0xfaebd7,
-  aqua: 0x00ffff,
-  aquamarine: 0x7fffd4,
-  azure: 0xf0ffff,
-  beige: 0xf5f5dc,
-  bisque: 0xffe4c4,
-  black: 0x000000,
-  blanchedalmond: 0xffebcd,
-  blue: 0x0000ff,
-  blueviolet: 0x8a2be2,
-  brown: 0xa52a2a,
-  burlywood: 0xdeb887,
-  cadetblue: 0x5f9ea0,
-  chartreuse: 0x7fff00,
-  chocolate: 0xd2691e,
-  coral: 0xff7f50,
-  cornflowerblue: 0x6495ed,
-  cornsilk: 0xfff8dc,
-  crimson: 0xdc143c,
-  cyan: 0x00ffff,
-  darkblue: 0x00008b,
-  darkcyan: 0x008b8b,
-  darkgoldenrod: 0xb8860b,
-  darkgray: 0xa9a9a9,
-  darkgreen: 0x006400,
-  darkgrey: 0xa9a9a9,
-  darkkhaki: 0xbdb76b,
-  darkmagenta: 0x8b008b,
-  darkolivegreen: 0x556b2f,
-  darkorange: 0xff8c00,
-  darkorchid: 0x9932cc,
-  darkred: 0x8b0000,
-  darksalmon: 0xe9967a,
-  darkseagreen: 0x8fbc8f,
-  darkslateblue: 0x483d8b,
-  darkslategray: 0x2f4f4f,
-  darkslategrey: 0x2f4f4f,
-  darkturquoise: 0x00ced1,
-  darkviolet: 0x9400d3,
-  deeppink: 0xff1493,
-  deepskyblue: 0x00bfff,
-  dimgray: 0x696969,
-  dimgrey: 0x696969,
-  dodgerblue: 0x1e90ff,
-  firebrick: 0xb22222,
-  floralwhite: 0xfffaf0,
-  forestgreen: 0x228b22,
-  fuchsia: 0xff00ff,
-  gainsboro: 0xdcdcdc,
-  ghostwhite: 0xf8f8ff,
-  gold: 0xffd700,
-  goldenrod: 0xdaa520,
-  gray: 0x808080,
-  green: 0x008000,
-  greenyellow: 0xadff2f,
-  grey: 0x808080,
-  honeydew: 0xf0fff0,
-  hotpink: 0xff69b4,
-  indianred: 0xcd5c5c,
-  indigo: 0x4b0082,
-  ivory: 0xfffff0,
-  khaki: 0xf0e68c,
-  lavender: 0xe6e6fa,
-  lavenderblush: 0xfff0f5,
-  lawngreen: 0x7cfc00,
-  lemonchiffon: 0xfffacd,
-  lightblue: 0xadd8e6,
-  lightcoral: 0xf08080,
-  lightcyan: 0xe0ffff,
-  lightgoldenrodyellow: 0xfafad2,
-  lightgray: 0xd3d3d3,
-  lightgreen: 0x90ee90,
-  lightgrey: 0xd3d3d3,
-  lightpink: 0xffb6c1,
-  lightsalmon: 0xffa07a,
-  lightseagreen: 0x20b2aa,
-  lightskyblue: 0x87cefa,
-  lightslategray: 0x778899,
-  lightslategrey: 0x778899,
-  lightsteelblue: 0xb0c4de,
-  lightyellow: 0xffffe0,
-  lime: 0x00ff00,
-  limegreen: 0x32cd32,
-  linen: 0xfaf0e6,
-  magenta: 0xff00ff,
-  maroon: 0x800000,
-  mediumaquamarine: 0x66cdaa,
-  mediumblue: 0x0000cd,
-  mediumorchid: 0xba55d3,
-  mediumpurple: 0x9370db,
-  mediumseagreen: 0x3cb371,
-  mediumslateblue: 0x7b68ee,
-  mediumspringgreen: 0x00fa9a,
-  mediumturquoise: 0x48d1cc,
-  mediumvioletred: 0xc71585,
-  midnightblue: 0x191970,
-  mintcream: 0xf5fffa,
-  mistyrose: 0xffe4e1,
-  moccasin: 0xffe4b5,
-  navajowhite: 0xffdead,
-  navy: 0x000080,
-  oldlace: 0xfdf5e6,
-  olive: 0x808000,
-  olivedrab: 0x6b8e23,
-  orange: 0xffa500,
-  orangered: 0xff4500,
-  orchid: 0xda70d6,
-  palegoldenrod: 0xeee8aa,
-  palegreen: 0x98fb98,
-  paleturquoise: 0xafeeee,
-  palevioletred: 0xdb7093,
-  papayawhip: 0xffefd5,
-  peachpuff: 0xffdab9,
-  peru: 0xcd853f,
-  pink: 0xffc0cb,
-  plum: 0xdda0dd,
-  powderblue: 0xb0e0e6,
-  purple: 0x800080,
-  rebeccapurple: 0x663399,
-  red: 0xff0000,
-  rosybrown: 0xbc8f8f,
-  royalblue: 0x4169e1,
-  saddlebrown: 0x8b4513,
-  salmon: 0xfa8072,
-  sandybrown: 0xf4a460,
-  seagreen: 0x2e8b57,
-  seashell: 0xfff5ee,
-  sienna: 0xa0522d,
-  silver: 0xc0c0c0,
-  skyblue: 0x87ceeb,
-  slateblue: 0x6a5acd,
-  slategray: 0x708090,
-  slategrey: 0x708090,
-  snow: 0xfffafa,
-  springgreen: 0x00ff7f,
-  steelblue: 0x4682b4,
-  tan: 0xd2b48c,
-  teal: 0x008080,
-  thistle: 0xd8bfd8,
-  tomato: 0xff6347,
-  turquoise: 0x40e0d0,
-  violet: 0xee82ee,
-  wheat: 0xf5deb3,
-  white: 0xffffff,
-  whitesmoke: 0xf5f5f5,
-  yellow: 0xffff00,
-  yellowgreen: 0x9acd32
-};
-
-define(Color, color, {
-  copy(channels) {
-    return Object.assign(new this.constructor, this, channels);
-  },
-  displayable() {
-    return this.rgb().displayable();
-  },
-  hex: color_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: color_formatHex,
-  formatHex8: color_formatHex8,
-  formatHsl: color_formatHsl,
-  formatRgb: color_formatRgb,
-  toString: color_formatRgb
-});
-
-function color_formatHex() {
-  return this.rgb().formatHex();
-}
-
-function color_formatHex8() {
-  return this.rgb().formatHex8();
-}
-
-function color_formatHsl() {
-  return hslConvert(this).formatHsl();
-}
-
-function color_formatRgb() {
-  return this.rgb().formatRgb();
-}
-
-export default function color(format) {
-  var m, l;
-  format = (format + "").trim().toLowerCase();
-  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
-      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
-      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
-      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
-      : null) // invalid hex
-      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
-      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
-      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
-      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
-      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
-      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
-      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
-      : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
-      : null;
-}
-
-function rgbn(n) {
-  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
-}
-
-function rgba(r, g, b, a) {
-  if (a <= 0) r = g = b = NaN;
-  return new Rgb(r, g, b, a);
-}
-
-export function rgbConvert(o) {
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Rgb;
-  o = o.rgb();
-  return new Rgb(o.r, o.g, o.b, o.opacity);
-}
-
-export function rgb(r, g, b, opacity) {
-  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
-}
-
-export function Rgb(r, g, b, opacity) {
-  this.r = +r;
-  this.g = +g;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Rgb, rgb, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  rgb() {
-    return this;
-  },
-  clamp() {
-    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
-  },
-  displayable() {
-    return (-0.5 <= this.r && this.r < 255.5)
-        && (-0.5 <= this.g && this.g < 255.5)
-        && (-0.5 <= this.b && this.b < 255.5)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  hex: rgb_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: rgb_formatHex,
-  formatHex8: rgb_formatHex8,
-  formatRgb: rgb_formatRgb,
-  toString: rgb_formatRgb
-}));
-
-function rgb_formatHex() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
-}
-
-function rgb_formatHex8() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
-}
-
-function rgb_formatRgb() {
-  const a = clampa(this.opacity);
-  return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
-}
-
-function clampa(opacity) {
-  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
-}
-
-function clampi(value) {
-  return Math.max(0, Math.min(255, Math.round(value) || 0));
-}
-
-function hex(value) {
-  value = clampi(value);
-  return (value < 16 ? "0" : "") + value.toString(16);
-}
-
-function hsla(h, s, l, a) {
-  if (a <= 0) h = s = l = NaN;
-  else if (l <= 0 || l >= 1) h = s = NaN;
-  else if (s <= 0) h = NaN;
-  return new Hsl(h, s, l, a);
-}
-
-export function hslConvert(o) {
-  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Hsl;
-  if (o instanceof Hsl) return o;
-  o = o.rgb();
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      min = Math.min(r, g, b),
-      max = Math.max(r, g, b),
-      h = NaN,
-      s = max - min,
-      l = (max + min) / 2;
-  if (s) {
-    if (r === max) h = (g - b) / s + (g < b) * 6;
-    else if (g === max) h = (b - r) / s + 2;
-    else h = (r - g) / s + 4;
-    s /= l < 0.5 ? max + min : 2 - max - min;
-    h *= 60;
-  } else {
-    s = l > 0 && l < 1 ? 0 : h;
-  }
-  return new Hsl(h, s, l, o.opacity);
-}
-
-export function hsl(h, s, l, opacity) {
-  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Hsl(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Hsl, hsl, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = this.h % 360 + (this.h < 0) * 360,
-        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
-        l = this.l,
-        m2 = l + (l < 0.5 ? l : 1 - l) * s,
-        m1 = 2 * l - m2;
-    return new Rgb(
-      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
-      hsl2rgb(h, m1, m2),
-      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
-      this.opacity
-    );
-  },
-  clamp() {
-    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
-  },
-  displayable() {
-    return (0 <= this.s && this.s <= 1 || isNaN(this.s))
-        && (0 <= this.l && this.l <= 1)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  formatHsl() {
-    const a = clampa(this.opacity);
-    return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
-  }
-}));
-
-function clamph(value) {
-  value = (value || 0) % 360;
-  return value < 0 ? value + 360 : value;
-}
-
-function clampt(value) {
-  return Math.max(0, Math.min(1, value || 0));
-}
-
-/* From FvD 13.37, CSS Color Module Level 3 */
-function hsl2rgb(h, m1, m2) {
-  return (h < 60 ? m1 + (m2 - m1) * h / 60
-      : h < 180 ? m2
-      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
-      : m1) * 255;
-}
Index: de_modules/d3-color/src/cubehelix.js
===================================================================
--- node_modules/d3-color/src/cubehelix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import define, {extend} from "./define.js";
-import {Color, rgbConvert, Rgb, darker, brighter} from "./color.js";
-import {degrees, radians} from "./math.js";
-
-var A = -0.14861,
-    B = +1.78277,
-    C = -0.29227,
-    D = -0.90649,
-    E = +1.97294,
-    ED = E * D,
-    EB = E * B,
-    BC_DA = B * C - D * A;
-
-function cubehelixConvert(o) {
-  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
-      bl = b - l,
-      k = (E * (g - l) - C * bl) / D,
-      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
-      h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;
-  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
-}
-
-export default function cubehelix(h, s, l, opacity) {
-  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
-}
-
-export function Cubehelix(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Cubehelix, cubehelix, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,
-        l = +this.l,
-        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
-        cosh = Math.cos(h),
-        sinh = Math.sin(h);
-    return new Rgb(
-      255 * (l + a * (A * cosh + B * sinh)),
-      255 * (l + a * (C * cosh + D * sinh)),
-      255 * (l + a * (E * cosh)),
-      this.opacity
-    );
-  }
-}));
Index: de_modules/d3-color/src/define.js
===================================================================
--- node_modules/d3-color/src/define.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function(constructor, factory, prototype) {
-  constructor.prototype = factory.prototype = prototype;
-  prototype.constructor = constructor;
-}
-
-export function extend(parent, definition) {
-  var prototype = Object.create(parent.prototype);
-  for (var key in definition) prototype[key] = definition[key];
-  return prototype;
-}
Index: de_modules/d3-color/src/index.js
===================================================================
--- node_modules/d3-color/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export {default as color, rgb, hsl} from "./color.js";
-export {default as lab, hcl, lch, gray} from "./lab.js";
-export {default as cubehelix} from "./cubehelix.js";
Index: de_modules/d3-color/src/lab.js
===================================================================
--- node_modules/d3-color/src/lab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-import define, {extend} from "./define.js";
-import {Color, rgbConvert, Rgb} from "./color.js";
-import {degrees, radians} from "./math.js";
-
-// https://observablehq.com/@mbostock/lab-and-rgb
-const K = 18,
-    Xn = 0.96422,
-    Yn = 1,
-    Zn = 0.82521,
-    t0 = 4 / 29,
-    t1 = 6 / 29,
-    t2 = 3 * t1 * t1,
-    t3 = t1 * t1 * t1;
-
-function labConvert(o) {
-  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
-  if (o instanceof Hcl) return hcl2lab(o);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = rgb2lrgb(o.r),
-      g = rgb2lrgb(o.g),
-      b = rgb2lrgb(o.b),
-      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
-  if (r === g && g === b) x = z = y; else {
-    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
-    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
-  }
-  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
-}
-
-export function gray(l, opacity) {
-  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
-}
-
-export default function lab(l, a, b, opacity) {
-  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
-}
-
-export function Lab(l, a, b, opacity) {
-  this.l = +l;
-  this.a = +a;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Lab, lab, extend(Color, {
-  brighter(k) {
-    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  darker(k) {
-    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  rgb() {
-    var y = (this.l + 16) / 116,
-        x = isNaN(this.a) ? y : y + this.a / 500,
-        z = isNaN(this.b) ? y : y - this.b / 200;
-    x = Xn * lab2xyz(x);
-    y = Yn * lab2xyz(y);
-    z = Zn * lab2xyz(z);
-    return new Rgb(
-      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
-      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
-      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
-      this.opacity
-    );
-  }
-}));
-
-function xyz2lab(t) {
-  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
-}
-
-function lab2xyz(t) {
-  return t > t1 ? t * t * t : t2 * (t - t0);
-}
-
-function lrgb2rgb(x) {
-  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
-}
-
-function rgb2lrgb(x) {
-  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
-}
-
-function hclConvert(o) {
-  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
-  if (!(o instanceof Lab)) o = labConvert(o);
-  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
-  var h = Math.atan2(o.b, o.a) * degrees;
-  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
-}
-
-export function lch(l, c, h, opacity) {
-  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-export function hcl(h, c, l, opacity) {
-  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-export function Hcl(h, c, l, opacity) {
-  this.h = +h;
-  this.c = +c;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-function hcl2lab(o) {
-  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
-  var h = o.h * radians;
-  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
-}
-
-define(Hcl, hcl, extend(Color, {
-  brighter(k) {
-    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
-  },
-  darker(k) {
-    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
-  },
-  rgb() {
-    return hcl2lab(this).rgb();
-  }
-}));
Index: de_modules/d3-color/src/math.js
===================================================================
--- node_modules/d3-color/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export const radians = Math.PI / 180;
-export const degrees = 180 / Math.PI;
Index: de_modules/d3-contour/LICENSE
===================================================================
--- node_modules/d3-contour/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2012-2023 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-contour/README.md
===================================================================
--- node_modules/d3-contour/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,187 +1,0 @@
-# d3-contour
-
-This library computes contour polygons by applying [marching squares](https://en.wikipedia.org/wiki/Marching_squares) to a rectangular array of numeric values. For example, here is Maungawhau’s topology (the classic `volcano` dataset and `terrain.colors` from R):
-
-[<img alt="Volcano Contours" src="./img/volcano.gif" width="420" height="295">](https://observablehq.com/@d3/volcano-contours)
-
-For each [threshold value](#contours_thresholds), the [contour generator](#_contours) constructs a GeoJSON MultiPolygon geometry object representing the area where the input values are greater than or equal to the threshold value. The geometry is in planar coordinates, where ⟨<i>i</i> + 0.5, <i>j</i> + 0.5⟩ corresponds to element <i>i</i> + <i>jn</i> in the input values array. Here is an example that loads a GeoTIFF of surface temperatures, and another that blurs a noisy monochrome PNG to produce smooth contours of cloud fraction:
-
-[<img alt="GeoTiff Contours" src="./img/temperature.png" width="420" height="219">](https://observablehq.com/@d3/geotiff-contours)
-[<img alt="Cloud Contours" src="./img/clouds.png" width="420" height="219">](https://observablehq.com/@d3/cloud-contours)
-
-Since the contour polygons are GeoJSON, you can transform and display them using standard tools; see [d3.geoPath](https://github.com/d3/d3-geo/blob/main/README.md#geoPath), [d3.geoProject](https://github.com/d3/d3-geo-projection/blob/main/README.md#geoProject) and [d3.geoStitch](https://github.com/d3/d3-geo-projection/blob/main/README.md#geoStitch), for example. Here the above contours of surface temperature are displayed in the Natural Earth projection:
-
-[<img alt="GeoTiff Contours II" src="./img/reprojection.png" width="420" height="219">](https://observablehq.com/@d3/geotiff-contours-ii)
-
-Contour plots can also visualize continuous functions by sampling. Here is the Goldstein–Price function (a test function for global optimization) and a trippy animation of *sin*(*x* + *y*)*sin*(*x* - *y*):
-
-[<img alt="Contours" src="./img/goldstein-price.png" width="420" height="219">](https://observablehq.com/@d3/contours)
-[<img alt="Animated Contours" src="./img/sin-cos.png" width="420" height="219">](https://observablehq.com/@d3/animated-contours)
-
-Contours can also show the [estimated density](#density-estimation) of point clouds, which is especially useful to avoid overplotting in large datasets. This library implements fast two-dimensional kernel density estimation; see [d3.contourDensity](#contourDensity). Here is a scatterplot showing the relationship between the idle duration and eruption duration for Old Faithful:
-
-[<img alt="Density Contours" src="./img/faithful.png" width="420" height="219">](https://observablehq.com/@d3/density-contours)
-
-And here is a density contour plot showing the relationship between the weight and price of 53,940 diamonds:
-
-[<img alt="Density Contours" src="./img/diamonds.png" width="420" height="420">](https://observablehq.com/@d3/density-contours)
-
-## Installing
-
-If you use npm, `npm install d3-contour`. You can also download the [latest release on GitHub](https://github.com/d3/d3-contour/releases/latest). For vanilla HTML in modern browsers, import d3-contour from jsDelivr:
-
-```html
-<script type="module">
-
-import {contours} from "https://cdn.jsdelivr.net/npm/d3-contour@4/+esm";
-
-const c = contours(values);
-
-</script>
-```
-
-For legacy environments, you can load d3-contour’s UMD bundle; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-contour@4"></script>
-<script>
-
-// Populate a grid of n×m values where -2 ≤ x ≤ 2 and -2 ≤ y ≤ 1.
-const n = 256, m = 256, values = new Array(n * m);
-for (let j = 0.5, k = 0; j < m; ++j) {
-  for (let i = 0.5; i < n; ++i, ++k) {
-    values[k] = goldsteinPrice(i / n * 4 - 2, 1 - j / m * 3);
-  }
-}
-
-// Compute the contour polygons at log-spaced intervals; returns an array of MultiPolygon.
-const contours = d3.contours()
-    .size([n, m])
-    .thresholds(Array.from({ length: 19 }, (_, i) => Math.pow(2, i + 2)))
-    (values);
-
-// See https://en.wikipedia.org/wiki/Test_functions_for_optimization
-function goldsteinPrice(x, y) {
-  return (1 + Math.pow(x + y + 1, 2) * (19 - 14 * x + 3 * x * x - 14 * y + 6 * x * x + 3 * y * y))
-      * (30 + Math.pow(2 * x - 3 * y, 2) * (18 - 32 * x + 12 * x * x + 48 * y - 36 * x * y + 27 * y * y));
-}
-
-</script>
-```
-
-## API Reference
-
-<a name="contours" href="#contours">#</a> d3.<b>contours</b>() · [Source](./src/contours.js), [Examples](https://observablehq.com/collection/@d3/d3-contour)
-
-Constructs a new contour generator with the default settings.
-
-<a name="_contours" href="#_contours">#</a> <i>contours</i>(<i>values</i>) · [Source](./src/contours.js)
-
-Computes the contours for the given array of *values*, returning an array of [GeoJSON](http://geojson.org/geojson-spec.html) [MultiPolygon](http://geojson.org/geojson-spec.html#multipolygon) [geometry objects](http://geojson.org/geojson-spec.html#geometry-objects). Each geometry object represents the area where the input <i>values</i> are greater than or equal to the corresponding [threshold value](#contours_thresholds); the threshold value for each geometry object is exposed as <i>geometry</i>.value.
-
-The input *values* must be an array of length <i>n</i>×<i>m</i> where [<i>n</i>, <i>m</i>] is the contour generator’s [size](#contours_size); furthermore, each <i>values</i>[<i>i</i> + <i>jn</i>] must represent the value at the position ⟨<i>i</i>, <i>j</i>⟩. For example, to construct a 256×256 grid for the [Goldstein–Price function](https://en.wikipedia.org/wiki/Test_functions_for_optimization) where -2 ≤ <i>x</i> ≤ 2 and -2 ≤ <i>y</i> ≤ 1:
-
-```js
-var n = 256, m = 256, values = new Array(n * m);
-for (var j = 0.5, k = 0; j < m; ++j) {
-  for (var i = 0.5; i < n; ++i, ++k) {
-    values[k] = goldsteinPrice(i / n * 4 - 2, 1 - j / m * 3);
-  }
-}
-
-function goldsteinPrice(x, y) {
-  return (1 + Math.pow(x + y + 1, 2) * (19 - 14 * x + 3 * x * x - 14 * y + 6 * x * x + 3 * y * y))
-      * (30 + Math.pow(2 * x - 3 * y, 2) * (18 - 32 * x + 12 * x * x + 48 * y - 36 * x * y + 27 * y * y));
-}
-```
-
-The returned geometry objects are typically passed to [d3.geoPath](https://github.com/d3/d3-geo/blob/main/README.md#geoPath) to display, using null or [d3.geoIdentity](https://github.com/d3/d3-geo/blob/main/README.md#geoIdentity) as the associated projection.
-
-<a name="contours_contour" href="#contours_contour">#</a> <i>contours</i>.<b>contour</b>(<i>values</i>, <i>threshold</i>) · [Source](./src/contours.js), [Examples](https://observablehq.com/@d3/animated-contours)
-
-Computes a single contour, returning a [GeoJSON](http://geojson.org/geojson-spec.html) [MultiPolygon](http://geojson.org/geojson-spec.html#multipolygon) [geometry object](http://geojson.org/geojson-spec.html#geometry-objects) representing the area where the input <i>values</i> are greater than or equal to the given [*threshold* value](#contours_thresholds); the threshold value for each geometry object is exposed as <i>geometry</i>.value.
-
-The input *values* must be an array of length <i>n</i>×<i>m</i> where [<i>n</i>, <i>m</i>] is the contour generator’s [size](#contours_size); furthermore, each <i>values</i>[<i>i</i> + <i>jn</i>] must represent the value at the position ⟨<i>i</i>, <i>j</i>⟩. See [*contours*](#_contours) for an example.
-
-<a name="contours_size" href="#contours_size">#</a> <i>contours</i>.<b>size</b>([<i>size</i>]) · [Source](./src/contours.js), [Examples](https://observablehq.com/@d3/animated-contours)
-
-If *size* is specified, sets the expected size of the input *values* grid to the [contour generator](#_contour) and returns the contour generator. The *size* is specified as an array \[<i>n</i>, <i>m</i>\] where <i>n</i> is the number of columns in the grid and <i>m</i> is the number of rows; *n* and *m* must be positive integers. If *size* is not specified, returns the current size which defaults to [1, 1].
-
-<a name="contours_smooth" href="#contours_smooth">#</a> <i>contours</i>.<b>smooth</b>([<i>smooth</i>]) · [Source](./src/contours.js), [Examples](https://observablehq.com/@d3/contours-smooth)
-
-If *smooth* is specified, sets whether or not the generated contour polygons are smoothed using linear interpolation. If *smooth* is not specified, returns the current smoothing flag, which defaults to true.
-
-<a name="contours_thresholds" href="#contours_thresholds">#</a> <i>contours</i>.<b>thresholds</b>([<i>thresholds</i>]) · [Source](./src/contours.js), [Examples](https://observablehq.com/@d3/volcano-contours)
-
-If *thresholds* is specified, sets the threshold generator to the specified function or array and returns this contour generator. If *thresholds* is not specified, returns the current threshold generator, which by default implements [Sturges’ formula](https://github.com/d3/d3-array/blob/main/README.md#thresholdSturges).
-
-Thresholds are defined as an array of values [*x0*, *x1*, …]. The first [generated contour](#_contour) corresponds to the area where the input values are greater than or equal to *x0*; the second contour corresponds to the area where the input values are greater than or equal to *x1*, and so on. Thus, there is exactly one generated MultiPolygon geometry object for each specified threshold value; the threshold value is exposed as <i>geometry</i>.value.
-
-If a *count* is specified instead of an array of *thresholds*, then the input values’ [extent](https://github.com/d3/d3-array/blob/main/README.md#extent) will be uniformly divided into approximately *count* bins; see [d3.ticks](https://github.com/d3/d3-array/blob/main/README.md#ticks).
-
-### Density Estimation
-
-<a name="contourDensity" href="#contourDensity">#</a> d3.<b>contourDensity</b>() · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-Constructs a new density estimator with the default settings.
-
-<a name="_density" href="#_density">#</a> <i>density</i>(<i>data</i>) · [Source](./src/density.js)
-
-Estimates the density contours for the given array of *data*, returning an array of [GeoJSON](http://geojson.org/geojson-spec.html) [MultiPolygon](http://geojson.org/geojson-spec.html#multipolygon) [geometry objects](http://geojson.org/geojson-spec.html#geometry-objects). Each geometry object represents the area where the estimated number of points per square pixel is greater than or equal to the corresponding [threshold value](#density_thresholds); the threshold value for each geometry object is exposed as <i>geometry</i>.value. The returned geometry objects are typically passed to [d3.geoPath](https://github.com/d3/d3-geo/blob/main/README.md#geoPath) to display, using null or [d3.geoIdentity](https://github.com/d3/d3-geo/blob/main/README.md#geoIdentity) as the associated projection. See also [d3.contours](#contours).
-
-The *x*- and *y*-coordinate for each data point are computed using [*density*.x](#density_x) and [*density*.y](#density_y). In addition, [*density*.weight](#density_weight) indicates the relative contribution of each data point (default 1). The generated contours are only accurate within the estimator’s [defined size](#density_size).
-
-<a name="density_x" href="#density_x">#</a> <i>density</i>.<b>x</b>([<i>x</i>]) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-If *x* is specified, sets the *x*-coordinate accessor. If *x* is not specified, returns the current *x*-coordinate accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-<a name="density_y" href="#density_y">#</a> <i>density</i>.<b>y</b>([<i>y</i>]) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-If *y* is specified, sets the *y*-coordinate accessor. If *y* is not specified, returns the current *y*-coordinate accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-<a name="density_weight" href="#density_weight">#</a> <i>density</i>.<b>weight</b>([<i>weight</i>]) · [Source](./src/density.js)<!-- , [Examples](TBD) -->
-
-If *weight* is specified, sets the accessor for point weights. If *weight* is not specified, returns the current point weight accessor, which defaults to:
-
-```js
-function weight() {
-  return 1;
-}
-```
-
-<a name="density_size" href="#density_size">#</a> <i>density</i>.<b>size</b>([<i>size</i>]) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-If *size* is specified, sets the size of the density estimator to the specified bounds and returns the estimator. The *size* is specified as an array \[<i>width</i>, <i>height</i>\], where <i>width</i> is the maximum *x*-value and <i>height</i> is the maximum *y*-value. If *size* is not specified, returns the current size which defaults to [960, 500]. The [estimated density contours](#_density) are only accurate within the defined size.
-
-<a name="density_cellSize" href="#density_cellSize">#</a> <i>density</i>.<b>cellSize</b>([<i>cellSize</i>]) · [Source](./src/density.js)<!-- , [Examples](TBD) -->
-
-If *cellSize* is specified, sets the size of individual cells in the underlying bin grid to the specified positive integer and returns the estimator. If *cellSize* is not specified, returns the current cell size, which defaults to 4. The cell size is rounded down to the nearest power of two. Smaller cells produce more detailed contour polygons, but are more expensive to compute.
-
-<a name="density_thresholds" href="#density_thresholds">#</a> <i>density</i>.<b>thresholds</b>([<i>thresholds</i>]) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-If *thresholds* is specified, sets the threshold generator to the specified function or array and returns this contour generator. If *thresholds* is not specified, returns the current threshold generator, which by default generates about twenty nicely-rounded density thresholds.
-
-Thresholds are defined as an array of values [*x0*, *x1*, …]. The first [generated density contour](#_density) corresponds to the area where the estimated density is greater than or equal to *x0*; the second contour corresponds to the area where the estimated density is greater than or equal to *x1*, and so on. Thus, there is exactly one generated MultiPolygon geometry object for each specified threshold value; the threshold value is exposed as <i>geometry</i>.value. The first value *x0* should typically be greater than zero.
-
-If a *count* is specified instead of an array of *thresholds*, then approximately *count* uniformly-spaced nicely-rounded thresholds will be generated; see [d3.ticks](https://github.com/d3/d3-array/blob/main/README.md#ticks).
-
-<a name="density_bandwidth" href="#density_bandwidth">#</a> <i>density</i>.<b>bandwidth</b>([<i>bandwidth</i>]) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours)
-
-If *bandwidth* is specified, sets the bandwidth (the standard deviation) of the Gaussian kernel and returns the estimate. If *bandwidth* is not specified, returns the current bandwidth, which defaults to 20.4939…. The specified *bandwidth* is currently rounded to the nearest supported value by this implementation, and must be nonnegative.
-
-<a name="density_contours" href="#density_contours">#</a> <i>density</i>.<b>contours</b>(<i>data</i>) · [Source](./src/density.js), [Examples](https://observablehq.com/@d3/density-contours-data)
-
-Return a *contour*(*value*) function that can be used to compute an arbitrary contour on the given data without needing to recompute the underlying grid. The returned *contour* function also exposes a *contour*.max value which represents the maximum density of the grid.
Index: de_modules/d3-contour/dist/d3-contour.js
===================================================================
--- node_modules/d3-contour/dist/d3-contour.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,420 +1,0 @@
-// https://d3js.org/d3-contour/ v4.0.2 Copyright 2012-2023 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-})(this, (function (exports, d3Array) { 'use strict';
-
-var array = Array.prototype;
-
-var slice = array.slice;
-
-function ascending(a, b) {
-  return a - b;
-}
-
-function area(ring) {
-  var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
-  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
-  return area;
-}
-
-var constant = x => () => x;
-
-function contains(ring, hole) {
-  var i = -1, n = hole.length, c;
-  while (++i < n) if (c = ringContains(ring, hole[i])) return c;
-  return 0;
-}
-
-function ringContains(ring, point) {
-  var x = point[0], y = point[1], contains = -1;
-  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
-    var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
-    if (segmentContains(pi, pj, point)) return 0;
-    if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
-  }
-  return contains;
-}
-
-function segmentContains(a, b, c) {
-  var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
-}
-
-function collinear(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
-}
-
-function within(p, q, r) {
-  return p <= q && q <= r || r <= q && q <= p;
-}
-
-function noop() {}
-
-var cases = [
-  [],
-  [[[1.0, 1.5], [0.5, 1.0]]],
-  [[[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [0.5, 1.0]]],
-  [[[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 0.5], [1.0, 1.5]]],
-  [[[1.0, 0.5], [0.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 0.5]]],
-  [[[1.0, 1.5], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.5, 1.0]]],
-  [[[1.0, 1.5], [1.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 1.5]]],
-  []
-];
-
-function Contours() {
-  var dx = 1,
-      dy = 1,
-      threshold = d3Array.thresholdSturges,
-      smooth = smoothLinear;
-
-  function contours(values) {
-    var tz = threshold(values);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      const e = d3Array.extent(values, finite);
-      tz = d3Array.ticks(...d3Array.nice(e[0], e[1], tz), tz);
-      while (tz[tz.length - 1] >= e[1]) tz.pop();
-      while (tz[1] < e[0]) tz.shift();
-    } else {
-      tz = tz.slice().sort(ascending);
-    }
-
-    return tz.map(value => contour(values, value));
-  }
-
-  // Accumulate, smooth contour rings, assign holes to exterior rings.
-  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
-  function contour(values, value) {
-    const v = value == null ? NaN : +value;
-    if (isNaN(v)) throw new Error(`invalid value: ${value}`);
-
-    var polygons = [],
-        holes = [];
-
-    isorings(values, v, function(ring) {
-      smooth(ring, values, v);
-      if (area(ring) > 0) polygons.push([ring]);
-      else holes.push(ring);
-    });
-
-    holes.forEach(function(hole) {
-      for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
-        if (contains((polygon = polygons[i])[0], hole) !== -1) {
-          polygon.push(hole);
-          return;
-        }
-      }
-    });
-
-    return {
-      type: "MultiPolygon",
-      value: value,
-      coordinates: polygons
-    };
-  }
-
-  // Marching squares with isolines stitched into rings.
-  // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
-  function isorings(values, value, callback) {
-    var fragmentByStart = new Array,
-        fragmentByEnd = new Array,
-        x, y, t0, t1, t2, t3;
-
-    // Special case for the first row (y = -1, t2 = t3 = 0).
-    x = y = -1;
-    t1 = above(values[0], value);
-    cases[t1 << 1].forEach(stitch);
-    while (++x < dx - 1) {
-      t0 = t1, t1 = above(values[x + 1], value);
-      cases[t0 | t1 << 1].forEach(stitch);
-    }
-    cases[t1 << 0].forEach(stitch);
-
-    // General case for the intermediate rows.
-    while (++y < dy - 1) {
-      x = -1;
-      t1 = above(values[y * dx + dx], value);
-      t2 = above(values[y * dx], value);
-      cases[t1 << 1 | t2 << 2].forEach(stitch);
-      while (++x < dx - 1) {
-        t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
-        t3 = t2, t2 = above(values[y * dx + x + 1], value);
-        cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
-      }
-      cases[t1 | t2 << 3].forEach(stitch);
-    }
-
-    // Special case for the last row (y = dy - 1, t0 = t1 = 0).
-    x = -1;
-    t2 = values[y * dx] >= value;
-    cases[t2 << 2].forEach(stitch);
-    while (++x < dx - 1) {
-      t3 = t2, t2 = above(values[y * dx + x + 1], value);
-      cases[t2 << 2 | t3 << 3].forEach(stitch);
-    }
-    cases[t2 << 3].forEach(stitch);
-
-    function stitch(line) {
-      var start = [line[0][0] + x, line[0][1] + y],
-          end = [line[1][0] + x, line[1][1] + y],
-          startIndex = index(start),
-          endIndex = index(end),
-          f, g;
-      if (f = fragmentByEnd[startIndex]) {
-        if (g = fragmentByStart[endIndex]) {
-          delete fragmentByEnd[f.end];
-          delete fragmentByStart[g.start];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
-          }
-        } else {
-          delete fragmentByEnd[f.end];
-          f.ring.push(end);
-          fragmentByEnd[f.end = endIndex] = f;
-        }
-      } else if (f = fragmentByStart[endIndex]) {
-        if (g = fragmentByEnd[startIndex]) {
-          delete fragmentByStart[f.start];
-          delete fragmentByEnd[g.end];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
-          }
-        } else {
-          delete fragmentByStart[f.start];
-          f.ring.unshift(start);
-          fragmentByStart[f.start = startIndex] = f;
-        }
-      } else {
-        fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
-      }
-    }
-  }
-
-  function index(point) {
-    return point[0] * 2 + point[1] * (dx + 1) * 4;
-  }
-
-  function smoothLinear(ring, values, value) {
-    ring.forEach(function(point) {
-      var x = point[0],
-          y = point[1],
-          xt = x | 0,
-          yt = y | 0,
-          v1 = valid(values[yt * dx + xt]);
-      if (x > 0 && x < dx && xt === x) {
-        point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
-      }
-      if (y > 0 && y < dy && yt === y) {
-        point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
-      }
-    });
-  }
-
-  contours.contour = contour;
-
-  contours.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, contours;
-  };
-
-  contours.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;
-  };
-
-  contours.smooth = function(_) {
-    return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;
-  };
-
-  return contours;
-}
-
-// When computing the extent, ignore infinite values (as well as invalid ones).
-function finite(x) {
-  return isFinite(x) ? x : NaN;
-}
-
-// Is the (possibly invalid) x greater than or equal to the (known valid) value?
-// Treat any invalid value as below negative infinity.
-function above(x, value) {
-  return x == null ? false : +x >= value;
-}
-
-// During smoothing, treat any invalid value as negative infinity.
-function valid(v) {
-  return v == null || isNaN(v = +v) ? -Infinity : v;
-}
-
-function smooth1(x, v0, v1, value) {
-  const a = value - v0;
-  const b = v1 - v0;
-  const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
-  return isNaN(d) ? x : x + d - 0.5;
-}
-
-function defaultX(d) {
-  return d[0];
-}
-
-function defaultY(d) {
-  return d[1];
-}
-
-function defaultWeight() {
-  return 1;
-}
-
-function density() {
-  var x = defaultX,
-      y = defaultY,
-      weight = defaultWeight,
-      dx = 960,
-      dy = 500,
-      r = 20, // blur radius
-      k = 2, // log2(grid cell size)
-      o = r * 3, // grid offset, to pad for blur
-      n = (dx + o * 2) >> k, // grid width
-      m = (dy + o * 2) >> k, // grid height
-      threshold = constant(20);
-
-  function grid(data) {
-    var values = new Float32Array(n * m),
-        pow2k = Math.pow(2, -k),
-        i = -1;
-
-    for (const d of data) {
-      var xi = (x(d, ++i, data) + o) * pow2k,
-          yi = (y(d, i, data) + o) * pow2k,
-          wi = +weight(d, i, data);
-      if (wi && xi >= 0 && xi < n && yi >= 0 && yi < m) {
-        var x0 = Math.floor(xi),
-            y0 = Math.floor(yi),
-            xt = xi - x0 - 0.5,
-            yt = yi - y0 - 0.5;
-        values[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi;
-        values[x0 + 1 + y0 * n] += xt * (1 - yt) * wi;
-        values[x0 + 1 + (y0 + 1) * n] += xt * yt * wi;
-        values[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi;
-      }
-    }
-
-    d3Array.blur2({data: values, width: n, height: m}, r * pow2k);
-    return values;
-  }
-
-  function density(data) {
-    var values = grid(data),
-        tz = threshold(values),
-        pow4k = Math.pow(2, 2 * k);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      tz = d3Array.ticks(Number.MIN_VALUE, d3Array.max(values) / pow4k, tz);
-    }
-
-    return Contours()
-        .size([n, m])
-        .thresholds(tz.map(d => d * pow4k))
-      (values)
-        .map((c, i) => (c.value = +tz[i], transform(c)));
-  }
-
-  density.contours = function(data) {
-    var values = grid(data),
-        contours = Contours().size([n, m]),
-        pow4k = Math.pow(2, 2 * k),
-        contour = value => {
-          value = +value;
-          var c = transform(contours.contour(values, value * pow4k));
-          c.value = value; // preserve exact threshold value
-          return c;
-        };
-    Object.defineProperty(contour, "max", {get: () => d3Array.max(values) / pow4k});
-    return contour;
-  };
-
-  function transform(geometry) {
-    geometry.coordinates.forEach(transformPolygon);
-    return geometry;
-  }
-
-  function transformPolygon(coordinates) {
-    coordinates.forEach(transformRing);
-  }
-
-  function transformRing(coordinates) {
-    coordinates.forEach(transformPoint);
-  }
-
-  // TODO Optimize.
-  function transformPoint(coordinates) {
-    coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
-    coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
-  }
-
-  function resize() {
-    o = r * 3;
-    n = (dx + o * 2) >> k;
-    m = (dy + o * 2) >> k;
-    return density;
-  }
-
-  density.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), density) : x;
-  };
-
-  density.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), density) : y;
-  };
-
-  density.weight = function(_) {
-    return arguments.length ? (weight = typeof _ === "function" ? _ : constant(+_), density) : weight;
-  };
-
-  density.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = +_[0], _1 = +_[1];
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, resize();
-  };
-
-  density.cellSize = function(_) {
-    if (!arguments.length) return 1 << k;
-    if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
-    return k = Math.floor(Math.log(_) / Math.LN2), resize();
-  };
-
-  density.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;
-  };
-
-  density.bandwidth = function(_) {
-    if (!arguments.length) return Math.sqrt(r * (r + 1));
-    if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
-    return r = (Math.sqrt(4 * _ * _ + 1) - 1) / 2, resize();
-  };
-
-  return density;
-}
-
-exports.contourDensity = density;
-exports.contours = Contours;
-
-}));
Index: de_modules/d3-contour/dist/d3-contour.min.js
===================================================================
--- node_modules/d3-contour/dist/d3-contour.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-contour/ v4.0.2 Copyright 2012-2023 Mike Bostock
-!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],n):n((r="undefined"!=typeof globalThis?globalThis:r||self).d3=r.d3||{},r.d3)}(this,(function(r,n){"use strict";var t=Array.prototype.slice;function e(r,n){return r-n}var o=r=>()=>r;function i(r,n){for(var t,e=-1,o=n.length;++e<o;)if(t=u(r,n[e]))return t;return 0}function u(r,n){for(var t=n[0],e=n[1],o=-1,i=0,u=r.length,f=u-1;i<u;f=i++){var c=r[i],h=c[0],s=c[1],l=r[f],d=l[0],g=l[1];if(a(c,l,n))return 0;s>e!=g>e&&t<(d-h)*(e-s)/(g-s)+h&&(o=-o)}return o}function a(r,n,t){var e,o,i,u;return function(r,n,t){return(n[0]-r[0])*(t[1]-r[1])==(t[0]-r[0])*(n[1]-r[1])}(r,n,t)&&(o=r[e=+(r[0]===n[0])],i=t[e],u=n[e],o<=i&&i<=u||u<=i&&i<=o)}function f(){}var c=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function h(){var r=1,u=1,a=n.thresholdSturges,h=w;function v(r){var t=a(r);if(Array.isArray(t))t=t.slice().sort(e);else{const e=n.extent(r,s);for(t=n.ticks(...n.nice(e[0],e[1],t),t);t[t.length-1]>=e[1];)t.pop();for(;t[1]<e[0];)t.shift()}return t.map((n=>p(r,n)))}function p(n,t){const e=null==t?NaN:+t;if(isNaN(e))throw new Error(`invalid value: ${t}`);var o=[],a=[];return function(n,t,e){var o,i,a,f,h,s,d=new Array,g=new Array;o=i=-1,f=l(n[0],t),c[f<<1].forEach(v);for(;++o<r-1;)a=f,f=l(n[o+1],t),c[a|f<<1].forEach(v);c[f<<0].forEach(v);for(;++i<u-1;){for(o=-1,f=l(n[i*r+r],t),h=l(n[i*r],t),c[f<<1|h<<2].forEach(v);++o<r-1;)a=f,f=l(n[i*r+r+o+1],t),s=h,h=l(n[i*r+o+1],t),c[a|f<<1|h<<2|s<<3].forEach(v);c[f|h<<3].forEach(v)}o=-1,h=n[i*r]>=t,c[h<<2].forEach(v);for(;++o<r-1;)s=h,h=l(n[i*r+o+1],t),c[h<<2|s<<3].forEach(v);function v(r){var n,t,u=[r[0][0]+o,r[0][1]+i],a=[r[1][0]+o,r[1][1]+i],f=y(u),c=y(a);(n=g[f])?(t=d[c])?(delete g[n.end],delete d[t.start],n===t?(n.ring.push(a),e(n.ring)):d[n.start]=g[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete g[n.end],n.ring.push(a),g[n.end=c]=n):(n=d[c])?(t=g[f])?(delete d[n.start],delete g[t.end],n===t?(n.ring.push(a),e(n.ring)):d[t.start]=g[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete d[n.start],n.ring.unshift(u),d[n.start=f]=n):d[f]=g[c]={start:f,end:c,ring:[u,a]}}c[h<<3].forEach(v)}(n,e,(function(r){h(r,n,e),function(r){for(var n=0,t=r.length,e=r[t-1][1]*r[0][0]-r[t-1][0]*r[0][1];++n<t;)e+=r[n-1][1]*r[n][0]-r[n-1][0]*r[n][1];return e}(r)>0?o.push([r]):a.push(r)})),a.forEach((function(r){for(var n,t=0,e=o.length;t<e;++t)if(-1!==i((n=o[t])[0],r))return void n.push(r)})),{type:"MultiPolygon",value:t,coordinates:o}}function y(n){return 2*n[0]+n[1]*(r+1)*4}function w(n,t,e){n.forEach((function(n){var o=n[0],i=n[1],a=0|o,f=0|i,c=d(t[f*r+a]);o>0&&o<r&&a===o&&(n[0]=g(o,d(t[f*r+a-1]),c,e)),i>0&&i<u&&f===i&&(n[1]=g(i,d(t[(f-1)*r+a]),c,e))}))}return v.contour=p,v.size=function(n){if(!arguments.length)return[r,u];var t=Math.floor(n[0]),e=Math.floor(n[1]);if(!(t>=0&&e>=0))throw new Error("invalid size");return r=t,u=e,v},v.thresholds=function(r){return arguments.length?(a="function"==typeof r?r:Array.isArray(r)?o(t.call(r)):o(r),v):a},v.smooth=function(r){return arguments.length?(h=r?w:f,v):h===w},v}function s(r){return isFinite(r)?r:NaN}function l(r,n){return null!=r&&+r>=n}function d(r){return null==r||isNaN(r=+r)?-1/0:r}function g(r,n,t,e){const o=e-n,i=t-n,u=isFinite(o)||isFinite(i)?o/i:Math.sign(o)/Math.sign(i);return isNaN(u)?r:r+u-.5}function v(r){return r[0]}function p(r){return r[1]}function y(){return 1}r.contourDensity=function(){var r=v,e=p,i=y,u=960,a=500,f=20,c=2,s=3*f,l=u+2*s>>c,d=a+2*s>>c,g=o(20);function w(t){var o=new Float32Array(l*d),u=Math.pow(2,-c),a=-1;for(const n of t){var h=(r(n,++a,t)+s)*u,g=(e(n,a,t)+s)*u,v=+i(n,a,t);if(v&&h>=0&&h<l&&g>=0&&g<d){var p=Math.floor(h),y=Math.floor(g),w=h-p-.5,E=g-y-.5;o[p+y*l]+=(1-w)*(1-E)*v,o[p+1+y*l]+=w*(1-E)*v,o[p+1+(y+1)*l]+=w*E*v,o[p+(y+1)*l]+=(1-w)*E*v}}return n.blur2({data:o,width:l,height:d},f*u),o}function E(r){var t=w(r),e=g(t),o=Math.pow(2,2*c);return Array.isArray(e)||(e=n.ticks(Number.MIN_VALUE,n.max(t)/o,e)),h().size([l,d]).thresholds(e.map((r=>r*o)))(t).map(((r,n)=>(r.value=+e[n],M(r))))}function M(r){return r.coordinates.forEach(A),r}function A(r){r.forEach(N)}function N(r){r.forEach(m)}function m(r){r[0]=r[0]*Math.pow(2,c)-s,r[1]=r[1]*Math.pow(2,c)-s}function b(){return l=u+2*(s=3*f)>>c,d=a+2*s>>c,E}return E.contours=function(r){var t=w(r),e=h().size([l,d]),o=Math.pow(2,2*c),i=r=>{r=+r;var n=M(e.contour(t,r*o));return n.value=r,n};return Object.defineProperty(i,"max",{get:()=>n.max(t)/o}),i},E.x=function(n){return arguments.length?(r="function"==typeof n?n:o(+n),E):r},E.y=function(r){return arguments.length?(e="function"==typeof r?r:o(+r),E):e},E.weight=function(r){return arguments.length?(i="function"==typeof r?r:o(+r),E):i},E.size=function(r){if(!arguments.length)return[u,a];var n=+r[0],t=+r[1];if(!(n>=0&&t>=0))throw new Error("invalid size");return u=n,a=t,b()},E.cellSize=function(r){if(!arguments.length)return 1<<c;if(!((r=+r)>=1))throw new Error("invalid cell size");return c=Math.floor(Math.log(r)/Math.LN2),b()},E.thresholds=function(r){return arguments.length?(g="function"==typeof r?r:Array.isArray(r)?o(t.call(r)):o(r),E):g},E.bandwidth=function(r){if(!arguments.length)return Math.sqrt(f*(f+1));if(!((r=+r)>=0))throw new Error("invalid bandwidth");return f=(Math.sqrt(4*r*r+1)-1)/2,b()},E},r.contours=h}));
Index: de_modules/d3-contour/package.json
===================================================================
--- node_modules/d3-contour/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-{
-  "name": "d3-contour",
-  "version": "4.0.2",
-  "description": "Compute contour polygons using marching squares.",
-  "homepage": "https://d3js.org/d3-contour/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-contour.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "contour",
-    "isoline"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-contour.min.js",
-  "unpkg": "dist/d3-contour.min.js",
-  "exports": {
-    "umd": "./dist/d3-contour.min.js",
-    "default": "./src/index.js"
-  },
-  "_moduleAliases": {
-    "d3-contour": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-array": "^3.2.0"
-  },
-  "devDependencies": {
-    "d3-axis": "3",
-    "d3-dsv": "3",
-    "d3-fetch": "3",
-    "d3-geo": "3",
-    "d3-polygon": "3",
-    "d3-scale": "4",
-    "d3-selection": "3",
-    "eslint": "8",
-    "htl": "^0.3.1",
-    "js-beautify": "1",
-    "jsdom": "20",
-    "mocha": "10",
-    "module-alias": "2",
-    "rollup": "3",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mkdir -p test/output && mocha -r module-alias/register 'test/**/*-test.js' test/snapshot.js && eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-contour/src/area.js
===================================================================
--- node_modules/d3-contour/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(ring) {
-  var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
-  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
-  return area;
-}
Index: de_modules/d3-contour/src/array.js
===================================================================
--- node_modules/d3-contour/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-var array = Array.prototype;
-
-export var slice = array.slice;
Index: de_modules/d3-contour/src/ascending.js
===================================================================
--- node_modules/d3-contour/src/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(a, b) {
-  return a - b;
-}
Index: de_modules/d3-contour/src/constant.js
===================================================================
--- node_modules/d3-contour/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => () => x;
Index: de_modules/d3-contour/src/contains.js
===================================================================
--- node_modules/d3-contour/src/contains.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-export default function(ring, hole) {
-  var i = -1, n = hole.length, c;
-  while (++i < n) if (c = ringContains(ring, hole[i])) return c;
-  return 0;
-}
-
-function ringContains(ring, point) {
-  var x = point[0], y = point[1], contains = -1;
-  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
-    var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
-    if (segmentContains(pi, pj, point)) return 0;
-    if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
-  }
-  return contains;
-}
-
-function segmentContains(a, b, c) {
-  var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
-}
-
-function collinear(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
-}
-
-function within(p, q, r) {
-  return p <= q && q <= r || r <= q && q <= p;
-}
Index: de_modules/d3-contour/src/contours.js
===================================================================
--- node_modules/d3-contour/src/contours.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,225 +1,0 @@
-import {extent, nice, thresholdSturges, ticks} from "d3-array";
-import {slice} from "./array.js";
-import ascending from "./ascending.js";
-import area from "./area.js";
-import constant from "./constant.js";
-import contains from "./contains.js";
-import noop from "./noop.js";
-
-var cases = [
-  [],
-  [[[1.0, 1.5], [0.5, 1.0]]],
-  [[[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [0.5, 1.0]]],
-  [[[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 0.5], [1.0, 1.5]]],
-  [[[1.0, 0.5], [0.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 0.5]]],
-  [[[1.0, 1.5], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.5, 1.0]]],
-  [[[1.0, 1.5], [1.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 1.5]]],
-  []
-];
-
-export default function() {
-  var dx = 1,
-      dy = 1,
-      threshold = thresholdSturges,
-      smooth = smoothLinear;
-
-  function contours(values) {
-    var tz = threshold(values);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      const e = extent(values, finite);
-      tz = ticks(...nice(e[0], e[1], tz), tz);
-      while (tz[tz.length - 1] >= e[1]) tz.pop();
-      while (tz[1] < e[0]) tz.shift();
-    } else {
-      tz = tz.slice().sort(ascending);
-    }
-
-    return tz.map(value => contour(values, value));
-  }
-
-  // Accumulate, smooth contour rings, assign holes to exterior rings.
-  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
-  function contour(values, value) {
-    const v = value == null ? NaN : +value;
-    if (isNaN(v)) throw new Error(`invalid value: ${value}`);
-
-    var polygons = [],
-        holes = [];
-
-    isorings(values, v, function(ring) {
-      smooth(ring, values, v);
-      if (area(ring) > 0) polygons.push([ring]);
-      else holes.push(ring);
-    });
-
-    holes.forEach(function(hole) {
-      for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
-        if (contains((polygon = polygons[i])[0], hole) !== -1) {
-          polygon.push(hole);
-          return;
-        }
-      }
-    });
-
-    return {
-      type: "MultiPolygon",
-      value: value,
-      coordinates: polygons
-    };
-  }
-
-  // Marching squares with isolines stitched into rings.
-  // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
-  function isorings(values, value, callback) {
-    var fragmentByStart = new Array,
-        fragmentByEnd = new Array,
-        x, y, t0, t1, t2, t3;
-
-    // Special case for the first row (y = -1, t2 = t3 = 0).
-    x = y = -1;
-    t1 = above(values[0], value);
-    cases[t1 << 1].forEach(stitch);
-    while (++x < dx - 1) {
-      t0 = t1, t1 = above(values[x + 1], value);
-      cases[t0 | t1 << 1].forEach(stitch);
-    }
-    cases[t1 << 0].forEach(stitch);
-
-    // General case for the intermediate rows.
-    while (++y < dy - 1) {
-      x = -1;
-      t1 = above(values[y * dx + dx], value);
-      t2 = above(values[y * dx], value);
-      cases[t1 << 1 | t2 << 2].forEach(stitch);
-      while (++x < dx - 1) {
-        t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
-        t3 = t2, t2 = above(values[y * dx + x + 1], value);
-        cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
-      }
-      cases[t1 | t2 << 3].forEach(stitch);
-    }
-
-    // Special case for the last row (y = dy - 1, t0 = t1 = 0).
-    x = -1;
-    t2 = values[y * dx] >= value;
-    cases[t2 << 2].forEach(stitch);
-    while (++x < dx - 1) {
-      t3 = t2, t2 = above(values[y * dx + x + 1], value);
-      cases[t2 << 2 | t3 << 3].forEach(stitch);
-    }
-    cases[t2 << 3].forEach(stitch);
-
-    function stitch(line) {
-      var start = [line[0][0] + x, line[0][1] + y],
-          end = [line[1][0] + x, line[1][1] + y],
-          startIndex = index(start),
-          endIndex = index(end),
-          f, g;
-      if (f = fragmentByEnd[startIndex]) {
-        if (g = fragmentByStart[endIndex]) {
-          delete fragmentByEnd[f.end];
-          delete fragmentByStart[g.start];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
-          }
-        } else {
-          delete fragmentByEnd[f.end];
-          f.ring.push(end);
-          fragmentByEnd[f.end = endIndex] = f;
-        }
-      } else if (f = fragmentByStart[endIndex]) {
-        if (g = fragmentByEnd[startIndex]) {
-          delete fragmentByStart[f.start];
-          delete fragmentByEnd[g.end];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
-          }
-        } else {
-          delete fragmentByStart[f.start];
-          f.ring.unshift(start);
-          fragmentByStart[f.start = startIndex] = f;
-        }
-      } else {
-        fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
-      }
-    }
-  }
-
-  function index(point) {
-    return point[0] * 2 + point[1] * (dx + 1) * 4;
-  }
-
-  function smoothLinear(ring, values, value) {
-    ring.forEach(function(point) {
-      var x = point[0],
-          y = point[1],
-          xt = x | 0,
-          yt = y | 0,
-          v1 = valid(values[yt * dx + xt]);
-      if (x > 0 && x < dx && xt === x) {
-        point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
-      }
-      if (y > 0 && y < dy && yt === y) {
-        point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
-      }
-    });
-  }
-
-  contours.contour = contour;
-
-  contours.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, contours;
-  };
-
-  contours.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;
-  };
-
-  contours.smooth = function(_) {
-    return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;
-  };
-
-  return contours;
-}
-
-// When computing the extent, ignore infinite values (as well as invalid ones).
-function finite(x) {
-  return isFinite(x) ? x : NaN;
-}
-
-// Is the (possibly invalid) x greater than or equal to the (known valid) value?
-// Treat any invalid value as below negative infinity.
-function above(x, value) {
-  return x == null ? false : +x >= value;
-}
-
-// During smoothing, treat any invalid value as negative infinity.
-function valid(v) {
-  return v == null || isNaN(v = +v) ? -Infinity : v;
-}
-
-function smooth1(x, v0, v1, value) {
-  const a = value - v0;
-  const b = v1 - v0;
-  const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
-  return isNaN(d) ? x : x + d - 0.5;
-}
Index: de_modules/d3-contour/src/density.js
===================================================================
--- node_modules/d3-contour/src/density.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,149 +1,0 @@
-import {blur2, max, ticks} from "d3-array";
-import {slice} from "./array.js";
-import constant from "./constant.js";
-import Contours from "./contours.js";
-
-function defaultX(d) {
-  return d[0];
-}
-
-function defaultY(d) {
-  return d[1];
-}
-
-function defaultWeight() {
-  return 1;
-}
-
-export default function() {
-  var x = defaultX,
-      y = defaultY,
-      weight = defaultWeight,
-      dx = 960,
-      dy = 500,
-      r = 20, // blur radius
-      k = 2, // log2(grid cell size)
-      o = r * 3, // grid offset, to pad for blur
-      n = (dx + o * 2) >> k, // grid width
-      m = (dy + o * 2) >> k, // grid height
-      threshold = constant(20);
-
-  function grid(data) {
-    var values = new Float32Array(n * m),
-        pow2k = Math.pow(2, -k),
-        i = -1;
-
-    for (const d of data) {
-      var xi = (x(d, ++i, data) + o) * pow2k,
-          yi = (y(d, i, data) + o) * pow2k,
-          wi = +weight(d, i, data);
-      if (wi && xi >= 0 && xi < n && yi >= 0 && yi < m) {
-        var x0 = Math.floor(xi),
-            y0 = Math.floor(yi),
-            xt = xi - x0 - 0.5,
-            yt = yi - y0 - 0.5;
-        values[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi;
-        values[x0 + 1 + y0 * n] += xt * (1 - yt) * wi;
-        values[x0 + 1 + (y0 + 1) * n] += xt * yt * wi;
-        values[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi;
-      }
-    }
-
-    blur2({data: values, width: n, height: m}, r * pow2k);
-    return values;
-  }
-
-  function density(data) {
-    var values = grid(data),
-        tz = threshold(values),
-        pow4k = Math.pow(2, 2 * k);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      tz = ticks(Number.MIN_VALUE, max(values) / pow4k, tz);
-    }
-
-    return Contours()
-        .size([n, m])
-        .thresholds(tz.map(d => d * pow4k))
-      (values)
-        .map((c, i) => (c.value = +tz[i], transform(c)));
-  }
-
-  density.contours = function(data) {
-    var values = grid(data),
-        contours = Contours().size([n, m]),
-        pow4k = Math.pow(2, 2 * k),
-        contour = value => {
-          value = +value;
-          var c = transform(contours.contour(values, value * pow4k));
-          c.value = value; // preserve exact threshold value
-          return c;
-        };
-    Object.defineProperty(contour, "max", {get: () => max(values) / pow4k});
-    return contour;
-  };
-
-  function transform(geometry) {
-    geometry.coordinates.forEach(transformPolygon);
-    return geometry;
-  }
-
-  function transformPolygon(coordinates) {
-    coordinates.forEach(transformRing);
-  }
-
-  function transformRing(coordinates) {
-    coordinates.forEach(transformPoint);
-  }
-
-  // TODO Optimize.
-  function transformPoint(coordinates) {
-    coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
-    coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
-  }
-
-  function resize() {
-    o = r * 3;
-    n = (dx + o * 2) >> k;
-    m = (dy + o * 2) >> k;
-    return density;
-  }
-
-  density.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), density) : x;
-  };
-
-  density.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), density) : y;
-  };
-
-  density.weight = function(_) {
-    return arguments.length ? (weight = typeof _ === "function" ? _ : constant(+_), density) : weight;
-  };
-
-  density.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = +_[0], _1 = +_[1];
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, resize();
-  };
-
-  density.cellSize = function(_) {
-    if (!arguments.length) return 1 << k;
-    if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
-    return k = Math.floor(Math.log(_) / Math.LN2), resize();
-  };
-
-  density.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;
-  };
-
-  density.bandwidth = function(_) {
-    if (!arguments.length) return Math.sqrt(r * (r + 1));
-    if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
-    return r = (Math.sqrt(4 * _ * _ + 1) - 1) / 2, resize();
-  };
-
-  return density;
-}
Index: de_modules/d3-contour/src/index.js
===================================================================
--- node_modules/d3-contour/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export {default as contours} from "./contours.js";
-export {default as contourDensity} from "./density.js";
Index: de_modules/d3-contour/src/noop.js
===================================================================
--- node_modules/d3-contour/src/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default function() {}
Index: de_modules/d3-delaunay/LICENSE
===================================================================
--- node_modules/d3-delaunay/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-Copyright 2018-2021 Observable, Inc.
-Copyright 2021 Mapbox
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-delaunay/README.md
===================================================================
--- node_modules/d3-delaunay/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,216 +1,0 @@
-# d3-delaunay
-
-<p align="center"><img src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/voronator.jpg" width="300">
-<p align="center">Georgy “The Voronator” Voronoy
-
-This is a fast library for computing the [Voronoi diagram](https://en.wikipedia.org/wiki/Voronoi_diagram) of a set of two-dimensional points. It is based on [Delaunator](https://github.com/mapbox/delaunator), a fast library for computing the [Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) using [sweep algorithms](https://github.com/mapbox/delaunator/blob/master/README.md#papers). The Voronoi diagram is constructed by connecting the circumcenters of adjacent triangles in the Delaunay triangulation.
-
-For an interactive explanation of how this library works, see [The Delaunay’s Dual](https://observablehq.com/@mbostock/the-delaunays-dual).
-
-## Installing
-
-If you use npm, `npm install d3-delaunay`. You can also download the [latest release on GitHub](https://github.com/d3/d3-delaunay/releases/latest). For vanilla HTML in modern browsers, import d3-delaunay from Skypack:
-
-```html
-<script type="module">
-
-import {Delaunay} from "https://cdn.skypack.dev/d3-delaunay@6";
-
-const points = [[0, 0], [0, 1], [1, 0], [1, 1]];
-const delaunay = Delaunay.from(points);
-const voronoi = delaunay.voronoi([0, 0, 960, 500]);
-
-</script>
-```
-
-For legacy environments, you can load d3-delaunay’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-delaunay@6"></script>
-<script>
-
-const delaunay = d3.Delaunay.from(points);
-
-</script>
-```
-
-
-## API Reference
-
-### Delaunay
-
-<a href="#new_Delaunay" name="new_Delaunay">#</a> new <b>Delaunay</b>(<i>points</i>) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the Delaunay triangulation for the given flat array [*x0*, *y0*, *x1*, *y1*, …] of *points*.
-
-```js
-const delaunay = new Delaunay(Float64Array.of(0, 0, 0, 1, 1, 0, 1, 1));
-```
-
-<a href="#delaunay_from" name="delaunay_from">#</a> Delaunay.<b>from</b>(<i>points</i>[, <i>fx</i>[, <i>fy</i>[, <i>that</i>]]]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the Delaunay triangulation for the given array or iterable of *points*. If *fx* and *fy* are not specified, then *points* is assumed to be an array of two-element arrays of numbers: [[*x0*, *y0*], [*x1*, *y1*], …]. Otherwise, *fx* and *fy* are functions that are invoked for each element in the *points* array in order, and must return the respective *x*- and *y*-coordinate for each point. If *that* is specified, the functions *fx* and *fy* are invoked with *that* as *this*. (See [Array.from](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/from) for reference.)
-
-```js
-const delaunay = Delaunay.from([[0, 0], [0, 1], [1, 0], [1, 1]]);
-```
-
-<a href="#delaunay_points" name="delaunay_points">#</a> <i>delaunay</i>.<b>points</b>
-
-The coordinates of the points as an array [*x0*, *y0*, *x1*, *y1*, …]. Typically, this is a Float64Array, however you can use any array-like type in the [constructor](#new_Delaunay).
-
-<a href="#delaunay_halfedges" name="delaunay_halfedges">#</a> <i>delaunay</i>.<b>halfedges</b>
-
-The halfedge indexes as an Int32Array [*j0*, *j1*, …]. For each index 0 ≤ *i* < *halfedges*.length, there is a halfedge from triangle vertex *j* = *halfedges*[*i*] to triangle vertex *i*. Equivalently, this means that triangle ⌊*i* / 3⌋ is adjacent to triangle ⌊*j* / 3⌋. If *j* is negative, then triangle ⌊*i* / 3⌋ is an exterior triangle on the [convex hull](#delaunay_hull). For example, to render the internal edges of the Delaunay triangulation:
-
-```js
-const {points, halfedges, triangles} = delaunay;
-for (let i = 0, n = halfedges.length; i < n; ++i) {
-  const j = halfedges[i];
-  if (j < i) continue;
-  const ti = triangles[i];
-  const tj = triangles[j];
-  context.moveTo(points[ti * 2], points[ti * 2 + 1]);
-  context.lineTo(points[tj * 2], points[tj * 2 + 1]);
-}
-```
-
-See also [*delaunay*.render](#delaunay_render).
-
-<a href="#delaunay_hull" name="delaunay_hull">#</a> <i>delaunay</i>.<b>hull</b>
-
-An Int32Array of point indexes that form the convex hull in counterclockwise order. If the points are collinear, returns them ordered.
-
-See also [*delaunay*.renderHull](#delaunay_renderHull).
-
-<a href="#delaunay_triangles" name="delaunay_triangles">#</a> <i>delaunay</i>.<b>triangles</b>
-
-The triangle vertex indexes as an Uint32Array [*i0*, *j0*, *k0*, *i1*, *j1*, *k1*, …]. Each contiguous triplet of indexes *i*, *j*, *k* forms a counterclockwise triangle. The coordinates of the triangle’s points can be found by going through [*delaunay*.points](#delaunay_points). For example, to render triangle *i*:
-
-```js
-const {points, triangles} = delaunay;
-const t0 = triangles[i * 3 + 0];
-const t1 = triangles[i * 3 + 1];
-const t2 = triangles[i * 3 + 2];
-context.moveTo(points[t0 * 2], points[t0 * 2 + 1]);
-context.lineTo(points[t1 * 2], points[t1 * 2 + 1]);
-context.lineTo(points[t2 * 2], points[t2 * 2 + 1]);
-context.closePath();
-```
-
-See also [*delaunay*.renderTriangle](#delaunay_renderTriangle).
-
-<a href="#delaunay_inedges" name="delaunay_inedges">#</a> <i>delaunay</i>.<b>inedges</b>
-
-The incoming halfedge indexes as a Int32Array [*e0*, *e1*, *e2*, …]. For each point *i*, *inedges*[*i*] is the halfedge index *e* of an incoming halfedge. For coincident points, the halfedge index is -1; for points on the convex hull, the incoming halfedge is on the convex hull; for other points, the choice of incoming halfedge is arbitrary. The *inedges* table can be used to traverse the Delaunay triangulation; see also [*delaunay*.neighbors](#delaunay_neighbors).
-
-<a href="#delaunay_find" name="delaunay_find">#</a> <i>delaunay</i>.<b>find</b>(<i>x</i>, <i>y</i>[, <i>i</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the index of the input point that is closest to the specified point ⟨*x*, *y*⟩. The search is started at the specified point *i*. If *i* is not specified, it defaults to zero.
-
-<a href="#delaunay_neighbors" name="delaunay_neighbors">#</a> <i>delaunay</i>.<b>neighbors</b>(<i>i</i>) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns an iterable over the indexes of the neighboring points to the specified point *i*. The iterable is empty if *i* is a coincident point.
-
-<a href="#delaunay_render" name="delaunay_render">#</a> <i>delaunay</i>.<b>render</b>([<i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-<img alt="delaunay.render" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/delaunay-mesh.png">
-
-Renders the edges of the Delaunay triangulation to the specified *context*. The specified *context* must implement the *context*.moveTo and *context*.lineTo methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#delaunay_renderHull" name="delaunay_renderHull">#</a> <i>delaunay</i>.<b>renderHull</b>([<i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-<img alt="delaunay.renderHull" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/delaunay-hull.png">
-
-Renders the convex hull of the Delaunay triangulation to the specified *context*. The specified *context* must implement the *context*.moveTo and *context*.lineTo methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#delaunay_renderTriangle" name="delaunay_renderTriangle">#</a> <i>delaunay</i>.<b>renderTriangle</b>(<i>i</i>[, <i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-<img alt="delaunay.renderTriangle" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/delaunay-triangle.png">
-
-Renders triangle *i* of the Delaunay triangulation to the specified *context*. The specified *context* must implement the *context*.moveTo, *context*.lineTo and *context*.closePath methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#delaunay_renderPoints" name="delaunay_renderPoints">#</a> <i>delaunay</i>.<b>renderPoints</b>(\[<i>context</i>\]\[, <i>radius</i>\]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Renders the input points of the Delaunay triangulation to the specified *context* as circles with the specified *radius*. If *radius* is not specified, it defaults to 2. The specified *context* must implement the *context*.moveTo and *context*.arc methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#delaunay_hullPolygon" name="delaunay_hullPolygon">#</a> <i>delaunay</i>.<b>hullPolygon()</b> [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the closed polygon [[*x0*, *y0*], [*x1*, *y1*], …, [*x0*, *y0*]] representing the convex hull.
-
-<a href="#delaunay_trianglePolygons" name="delaunay_trianglePolygons">#</a> <i>delaunay</i>.<b>trianglePolygons()</b> [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns an iterable over the [polygons for each triangle](#delaunay_trianglePolygon), in order.
-
-<a href="#delaunay_trianglePolygon" name="delaunay_trianglePolygon">#</a> <i>delaunay</i>.<b>trianglePolygon(<i>i</i>)</b> [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the closed polygon [[*x0*, *y0*], [*x1*, *y1*], [*x2*, *y2*], [*x0*, *y0*]] representing the triangle *i*.
-
-<a href="#delaunay_update" name="delaunay_update">#</a> <i>delaunay</i>.<b>update</b>() [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Updates the triangulation after the points have been modified in-place.
-
-<a href="#delaunay_voronoi" name="delaunay_voronoi">#</a> <i>delaunay</i>.<b>voronoi</b>([<i>bounds</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js "Source")
-
-Returns the [Voronoi diagram](#voronoi) for the associated [points](#delaunay_points). When rendering, the diagram will be clipped to the specified *bounds* = [*xmin*, *ymin*, *xmax*, *ymax*]. If *bounds* is not specified, it defaults to [0, 0, 960, 500]. See [To Infinity and Back Again](https://observablehq.com/@mbostock/to-infinity-and-back-again) for an interactive explanation of Voronoi cell clipping.
-
-The Voronoi diagram is returned even in degenerate cases where no triangulation exists — namely 0, 1 or 2 points, and collinear points.
-
-### Voronoi
-
-<a href="#voronoi_delaunay" name="voronoi_delaunay">#</a> <i>voronoi</i>.<b>delaunay</b>
-
-The Voronoi diagram’s associated [Delaunay triangulation](#delaunay).
-
-<a href="#voronoi_circumcenters" name="voronoi_circumcenters">#</a> <i>voronoi</i>.<b>circumcenters</b>
-
-The [circumcenters](http://mathworld.wolfram.com/Circumcenter.html) of the Delaunay triangles as a Float64Array [*cx0*, *cy0*, *cx1*, *cy1*, …]. Each contiguous pair of coordinates *cx*, *cy* is the circumcenter for the corresponding triangle. These circumcenters form the coordinates of the Voronoi cell polygons.
-
-<a href="#voronoi_vectors" name="voronoi_vectors">#</a> <i>voronoi</i>.<b>vectors</b>
-
-A Float64Array [*vx0*, *vy0*, *wx0*, *wy0*, …] where each non-zero quadruple describes an open (infinite) cell on the outer hull, giving the directions of two open half-lines.
-
-<a href="#voronoi_xmin" name="voronoi_xmin">#</a> <i>voronoi</i>.<b>xmin</b><br>
-<a href="#voronoi_ymin" name="voronoi_ymin">#</a> <i>voronoi</i>.<b>ymin</b><br>
-<a href="#voronoi_xmax" name="voronoi_xmax">#</a> <i>voronoi</i>.<b>xmax</b><br>
-<a href="#voronoi_ymax" name="voronoi_ymax">#</a> <i>voronoi</i>.<b>ymax</b><br>
-
-The bounds of the viewport [*xmin*, *ymin*, *xmax*, *ymax*] for rendering the Voronoi diagram. These values only affect the rendering methods ([*voronoi*.render](#voronoi_render), [*voronoi*.renderBounds](#voronoi_renderBounds), [*cell*.render](#cell_render)).
-
-<a href="#voronoi_contains" name="voronoi_contains">#</a> <i>voronoi</i>.<b>contains</b>(<i>i</i>, <i>x</i>, <i>y</i>) [<>](https://github.com/d3/d3-delaunay/blob/master/src/cell.js "Source")
-
-Returns true if the cell with the specified index *i* contains the specified point ⟨*x*, *y*⟩. (This method is not affected by the associated Voronoi diagram’s viewport [bounds](#voronoi_xmin).)
-
-<a href="#voronoi_neighbors" name="voronoi_neighbors">#</a> <i>voronoi</i>.<b>neighbors</b>(<i>i</i>) [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-Returns an iterable over the indexes of the cells that share a common edge with the specified cell *i*. Voronoi neighbors are always neighbors on the Delaunay graph, but the converse is false when the common edge has been clipped out by the Voronoi diagram’s viewport.
-
-<a href="#voronoi_render" name="voronoi_render">#</a> <i>voronoi</i>.<b>render</b>([<i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-<img alt="voronoi.render" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/voronoi-mesh.png">
-
-Renders the mesh of Voronoi cells to the specified *context*. The specified *context* must implement the *context*.moveTo and *context*.lineTo methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#voronoi_renderBounds" name="voronoi_renderBounds">#</a> <i>voronoi</i>.<b>renderBounds</b>([<i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-<img alt="voronoi.renderBounds" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/voronoi-bounds.png">
-
-Renders the viewport extent to the specified *context*. The specified *context* must implement the *context*.rect method from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). Equivalent to *context*.rect(*voronoi*.xmin, *voronoi*.ymin, *voronoi*.xmax - *voronoi*.xmin, *voronoi*.ymax - *voronoi*.ymin). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#voronoi_renderCell" name="voronoi_renderCell">#</a> <i>voronoi</i>.<b>renderCell</b>(<i>i</i>[, <i>context</i>]) [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-<img alt="cell.render" src="https://raw.githubusercontent.com/d3/d3-delaunay/master/img/spectral.png">
-
-Renders the cell with the specified index *i* to the specified *context*. The specified *context* must implement the *context*.moveTo , *context*.lineTo and *context*.closePath methods from the [CanvasPathMethods API](https://www.w3.org/TR/2dcontext/#canvaspathmethods). If a *context* is not specified, an SVG path string is returned instead.
-
-<a href="#voronoi_cellPolygons" name="voronoi_cellPolygons">#</a> <i>voronoi</i>.<b>cellPolygons</b>() [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-Returns an iterable over the non-empty [polygons for each cell](#voronoi_cellPolygon), with the cell index as property.
-
-<a href="#voronoi_cellPolygon" name="voronoi_cellPolygon">#</a> <i>voronoi</i>.<b>cellPolygon</b>(<i>i</i>) [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-Returns the convex, closed polygon [[*x0*, *y0*], [*x1*, *y1*], …, [*x0*, *y0*]] representing the cell for the specified point *i*.
-
-<a href="#voronoi_update" name="voronoi_update">#</a> <i>voronoi</i>.<b>update</b>() [<>](https://github.com/d3/d3-delaunay/blob/master/src/voronoi.js "Source")
-
-Updates the Voronoi diagram and underlying triangulation after the points have been modified in-place — useful for Lloyd’s relaxation.
Index: de_modules/d3-delaunay/dist/d3-delaunay.js
===================================================================
--- node_modules/d3-delaunay/dist/d3-delaunay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1391 +1,0 @@
-// https://github.com/d3/d3-delaunay v6.0.4 Copyright 2018-2021 Observable, Inc., 2021 Mapbox
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-const epsilon$1 = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon$1) * epsilon$1;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const ccwerrboundA = (3 + 16 * epsilon$1) * epsilon$1;
-const ccwerrboundB = (2 + 12 * epsilon$1) * epsilon$1;
-const ccwerrboundC = (9 + 64 * epsilon$1) * epsilon$1 * epsilon$1;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C1len = sum(4, B, 4, u, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C2len = sum(C1len, C1, 4, u, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const Dlen = sum(C2len, C2, 4, u, D);
-
-    return D[Dlen - 1];
-}
-
-function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    if (detleft === 0 || detright === 0 || (detleft > 0) !== (detright > 0)) return det;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-const EPSILON = Math.pow(2, -52);
-const EDGE_STACK = new Uint32Array(512);
-
-class Delaunator {
-
-    static from(points, getX = defaultGetX, getY = defaultGetY) {
-        const n = points.length;
-        const coords = new Float64Array(n * 2);
-
-        for (let i = 0; i < n; i++) {
-            const p = points[i];
-            coords[2 * i] = getX(p);
-            coords[2 * i + 1] = getY(p);
-        }
-
-        return new Delaunator(coords);
-    }
-
-    constructor(coords) {
-        const n = coords.length >> 1;
-        if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');
-
-        this.coords = coords;
-
-        // arrays that will store the triangulation graph
-        const maxTriangles = Math.max(2 * n - 5, 0);
-        this._triangles = new Uint32Array(maxTriangles * 3);
-        this._halfedges = new Int32Array(maxTriangles * 3);
-
-        // temporary arrays for tracking the edges of the advancing convex hull
-        this._hashSize = Math.ceil(Math.sqrt(n));
-        this._hullPrev = new Uint32Array(n); // edge to prev edge
-        this._hullNext = new Uint32Array(n); // edge to next edge
-        this._hullTri = new Uint32Array(n); // edge to adjacent triangle
-        this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash
-
-        // temporary arrays for sorting points
-        this._ids = new Uint32Array(n);
-        this._dists = new Float64Array(n);
-
-        this.update();
-    }
-
-    update() {
-        const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} =  this;
-        const n = coords.length >> 1;
-
-        // populate an array of point indices; calculate input data bbox
-        let minX = Infinity;
-        let minY = Infinity;
-        let maxX = -Infinity;
-        let maxY = -Infinity;
-
-        for (let i = 0; i < n; i++) {
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-            if (x < minX) minX = x;
-            if (y < minY) minY = y;
-            if (x > maxX) maxX = x;
-            if (y > maxY) maxY = y;
-            this._ids[i] = i;
-        }
-        const cx = (minX + maxX) / 2;
-        const cy = (minY + maxY) / 2;
-
-        let minDist = Infinity;
-        let i0, i1, i2;
-
-        // pick a seed point close to the center
-        for (let i = 0; i < n; i++) {
-            const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist) {
-                i0 = i;
-                minDist = d;
-            }
-        }
-        const i0x = coords[2 * i0];
-        const i0y = coords[2 * i0 + 1];
-
-        minDist = Infinity;
-
-        // find the point closest to the seed
-        for (let i = 0; i < n; i++) {
-            if (i === i0) continue;
-            const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist && d > 0) {
-                i1 = i;
-                minDist = d;
-            }
-        }
-        let i1x = coords[2 * i1];
-        let i1y = coords[2 * i1 + 1];
-
-        let minRadius = Infinity;
-
-        // find the third point which forms the smallest circumcircle with the first two
-        for (let i = 0; i < n; i++) {
-            if (i === i0 || i === i1) continue;
-            const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);
-            if (r < minRadius) {
-                i2 = i;
-                minRadius = r;
-            }
-        }
-        let i2x = coords[2 * i2];
-        let i2y = coords[2 * i2 + 1];
-
-        if (minRadius === Infinity) {
-            // order collinear points by dx (or dy if all x are identical)
-            // and return the list as a hull
-            for (let i = 0; i < n; i++) {
-                this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);
-            }
-            quicksort(this._ids, this._dists, 0, n - 1);
-            const hull = new Uint32Array(n);
-            let j = 0;
-            for (let i = 0, d0 = -Infinity; i < n; i++) {
-                const id = this._ids[i];
-                if (this._dists[id] > d0) {
-                    hull[j++] = id;
-                    d0 = this._dists[id];
-                }
-            }
-            this.hull = hull.subarray(0, j);
-            this.triangles = new Uint32Array(0);
-            this.halfedges = new Uint32Array(0);
-            return;
-        }
-
-        // swap the order of the seed points for counter-clockwise orientation
-        if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {
-            const i = i1;
-            const x = i1x;
-            const y = i1y;
-            i1 = i2;
-            i1x = i2x;
-            i1y = i2y;
-            i2 = i;
-            i2x = x;
-            i2y = y;
-        }
-
-        const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);
-        this._cx = center.x;
-        this._cy = center.y;
-
-        for (let i = 0; i < n; i++) {
-            this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);
-        }
-
-        // sort the points by distance from the seed triangle circumcenter
-        quicksort(this._ids, this._dists, 0, n - 1);
-
-        // set up the seed triangle as the starting hull
-        this._hullStart = i0;
-        let hullSize = 3;
-
-        hullNext[i0] = hullPrev[i2] = i1;
-        hullNext[i1] = hullPrev[i0] = i2;
-        hullNext[i2] = hullPrev[i1] = i0;
-
-        hullTri[i0] = 0;
-        hullTri[i1] = 1;
-        hullTri[i2] = 2;
-
-        hullHash.fill(-1);
-        hullHash[this._hashKey(i0x, i0y)] = i0;
-        hullHash[this._hashKey(i1x, i1y)] = i1;
-        hullHash[this._hashKey(i2x, i2y)] = i2;
-
-        this.trianglesLen = 0;
-        this._addTriangle(i0, i1, i2, -1, -1, -1);
-
-        for (let k = 0, xp, yp; k < this._ids.length; k++) {
-            const i = this._ids[k];
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-
-            // skip near-duplicate points
-            if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;
-            xp = x;
-            yp = y;
-
-            // skip seed triangle points
-            if (i === i0 || i === i1 || i === i2) continue;
-
-            // find a visible edge on the convex hull using edge hash
-            let start = 0;
-            for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {
-                start = hullHash[(key + j) % this._hashSize];
-                if (start !== -1 && start !== hullNext[start]) break;
-            }
-
-            start = hullPrev[start];
-            let e = start, q;
-            while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {
-                e = q;
-                if (e === start) {
-                    e = -1;
-                    break;
-                }
-            }
-            if (e === -1) continue; // likely a near-duplicate point; skip it
-
-            // add the first triangle from the point
-            let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);
-
-            // recursively flip triangles from the point until they satisfy the Delaunay condition
-            hullTri[i] = this._legalize(t + 2);
-            hullTri[e] = t; // keep track of boundary triangles on the hull
-            hullSize++;
-
-            // walk forward through the hull, adding more triangles and flipping recursively
-            let n = hullNext[e];
-            while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {
-                t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);
-                hullTri[i] = this._legalize(t + 2);
-                hullNext[n] = n; // mark as removed
-                hullSize--;
-                n = q;
-            }
-
-            // walk backward from the other side, adding more triangles and flipping
-            if (e === start) {
-                while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {
-                    t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);
-                    this._legalize(t + 2);
-                    hullTri[q] = t;
-                    hullNext[e] = e; // mark as removed
-                    hullSize--;
-                    e = q;
-                }
-            }
-
-            // update the hull indices
-            this._hullStart = hullPrev[i] = e;
-            hullNext[e] = hullPrev[n] = i;
-            hullNext[i] = n;
-
-            // save the two new edges in the hash table
-            hullHash[this._hashKey(x, y)] = i;
-            hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;
-        }
-
-        this.hull = new Uint32Array(hullSize);
-        for (let i = 0, e = this._hullStart; i < hullSize; i++) {
-            this.hull[i] = e;
-            e = hullNext[e];
-        }
-
-        // trim typed triangle mesh arrays
-        this.triangles = this._triangles.subarray(0, this.trianglesLen);
-        this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
-    }
-
-    _hashKey(x, y) {
-        return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;
-    }
-
-    _legalize(a) {
-        const {_triangles: triangles, _halfedges: halfedges, coords} = this;
-
-        let i = 0;
-        let ar = 0;
-
-        // recursion eliminated with a fixed-size stack
-        while (true) {
-            const b = halfedges[a];
-
-            /* if the pair of triangles doesn't satisfy the Delaunay condition
-             * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
-             * then do the same check/flip recursively for the new pair of triangles
-             *
-             *           pl                    pl
-             *          /||\                  /  \
-             *       al/ || \bl            al/    \a
-             *        /  ||  \              /      \
-             *       /  a||b  \    flip    /___ar___\
-             *     p0\   ||   /p1   =>   p0\---bl---/p1
-             *        \  ||  /              \      /
-             *       ar\ || /br             b\    /br
-             *          \||/                  \  /
-             *           pr                    pr
-             */
-            const a0 = a - a % 3;
-            ar = a0 + (a + 2) % 3;
-
-            if (b === -1) { // convex hull edge
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-                continue;
-            }
-
-            const b0 = b - b % 3;
-            const al = a0 + (a + 1) % 3;
-            const bl = b0 + (b + 2) % 3;
-
-            const p0 = triangles[ar];
-            const pr = triangles[a];
-            const pl = triangles[al];
-            const p1 = triangles[bl];
-
-            const illegal = inCircle(
-                coords[2 * p0], coords[2 * p0 + 1],
-                coords[2 * pr], coords[2 * pr + 1],
-                coords[2 * pl], coords[2 * pl + 1],
-                coords[2 * p1], coords[2 * p1 + 1]);
-
-            if (illegal) {
-                triangles[a] = p1;
-                triangles[b] = p0;
-
-                const hbl = halfedges[bl];
-
-                // edge swapped on the other side of the hull (rare); fix the halfedge reference
-                if (hbl === -1) {
-                    let e = this._hullStart;
-                    do {
-                        if (this._hullTri[e] === bl) {
-                            this._hullTri[e] = a;
-                            break;
-                        }
-                        e = this._hullPrev[e];
-                    } while (e !== this._hullStart);
-                }
-                this._link(a, hbl);
-                this._link(b, halfedges[ar]);
-                this._link(ar, bl);
-
-                const br = b0 + (b + 1) % 3;
-
-                // don't worry about hitting the cap: it can only happen on extremely degenerate input
-                if (i < EDGE_STACK.length) {
-                    EDGE_STACK[i++] = br;
-                }
-            } else {
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-            }
-        }
-
-        return ar;
-    }
-
-    _link(a, b) {
-        this._halfedges[a] = b;
-        if (b !== -1) this._halfedges[b] = a;
-    }
-
-    // add a new triangle given vertex indices and adjacent half-edge ids
-    _addTriangle(i0, i1, i2, a, b, c) {
-        const t = this.trianglesLen;
-
-        this._triangles[t] = i0;
-        this._triangles[t + 1] = i1;
-        this._triangles[t + 2] = i2;
-
-        this._link(t, a);
-        this._link(t + 1, b);
-        this._link(t + 2, c);
-
-        this.trianglesLen += 3;
-
-        return t;
-    }
-}
-
-// monotonically increases with real angle, but doesn't need expensive trigonometry
-function pseudoAngle(dx, dy) {
-    const p = dx / (Math.abs(dx) + Math.abs(dy));
-    return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]
-}
-
-function dist(ax, ay, bx, by) {
-    const dx = ax - bx;
-    const dy = ay - by;
-    return dx * dx + dy * dy;
-}
-
-function inCircle(ax, ay, bx, by, cx, cy, px, py) {
-    const dx = ax - px;
-    const dy = ay - py;
-    const ex = bx - px;
-    const ey = by - py;
-    const fx = cx - px;
-    const fy = cy - py;
-
-    const ap = dx * dx + dy * dy;
-    const bp = ex * ex + ey * ey;
-    const cp = fx * fx + fy * fy;
-
-    return dx * (ey * cp - bp * fy) -
-           dy * (ex * cp - bp * fx) +
-           ap * (ex * fy - ey * fx) < 0;
-}
-
-function circumradius(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = (ey * bl - dy * cl) * d;
-    const y = (dx * cl - ex * bl) * d;
-
-    return x * x + y * y;
-}
-
-function circumcenter(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = ax + (ey * bl - dy * cl) * d;
-    const y = ay + (dx * cl - ex * bl) * d;
-
-    return {x, y};
-}
-
-function quicksort(ids, dists, left, right) {
-    if (right - left <= 20) {
-        for (let i = left + 1; i <= right; i++) {
-            const temp = ids[i];
-            const tempDist = dists[temp];
-            let j = i - 1;
-            while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];
-            ids[j + 1] = temp;
-        }
-    } else {
-        const median = (left + right) >> 1;
-        let i = left + 1;
-        let j = right;
-        swap(ids, median, i);
-        if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);
-        if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);
-        if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);
-
-        const temp = ids[i];
-        const tempDist = dists[temp];
-        while (true) {
-            do i++; while (dists[ids[i]] < tempDist);
-            do j--; while (dists[ids[j]] > tempDist);
-            if (j < i) break;
-            swap(ids, i, j);
-        }
-        ids[left + 1] = ids[j];
-        ids[j] = temp;
-
-        if (right - i + 1 >= j - left) {
-            quicksort(ids, dists, i, right);
-            quicksort(ids, dists, left, j - 1);
-        } else {
-            quicksort(ids, dists, left, j - 1);
-            quicksort(ids, dists, i, right);
-        }
-    }
-}
-
-function swap(arr, i, j) {
-    const tmp = arr[i];
-    arr[i] = arr[j];
-    arr[j] = tmp;
-}
-
-function defaultGetX(p) {
-    return p[0];
-}
-function defaultGetY(p) {
-    return p[1];
-}
-
-const epsilon = 1e-6;
-
-class Path {
-  constructor() {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-  }
-  moveTo(x, y) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  }
-  lineTo(x, y) {
-    this._ += `L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arc(x, y, r) {
-    x = +x, y = +y, r = +r;
-    const x0 = x + r;
-    const y0 = y;
-    if (r < 0) throw new Error("negative radius");
-    if (this._x1 === null) this._ += `M${x0},${y0}`;
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += "L" + x0 + "," + y0;
-    if (!r) return;
-    this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;
-  }
-  rect(x, y, w, h) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;
-  }
-  value() {
-    return this._ || null;
-  }
-}
-
-class Polygon {
-  constructor() {
-    this._ = [];
-  }
-  moveTo(x, y) {
-    this._.push([x, y]);
-  }
-  closePath() {
-    this._.push(this._[0].slice());
-  }
-  lineTo(x, y) {
-    this._.push([x, y]);
-  }
-  value() {
-    return this._.length ? this._ : null;
-  }
-}
-
-class Voronoi {
-  constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {
-    if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds");
-    this.delaunay = delaunay;
-    this._circumcenters = new Float64Array(delaunay.points.length * 2);
-    this.vectors = new Float64Array(delaunay.points.length * 2);
-    this.xmax = xmax, this.xmin = xmin;
-    this.ymax = ymax, this.ymin = ymin;
-    this._init();
-  }
-  update() {
-    this.delaunay.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const {delaunay: {points, hull, triangles}, vectors} = this;
-    let bx, by; // lazily computed barycenter of the hull
-
-    // Compute circumcenters.
-    const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);
-    for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {
-      const t1 = triangles[i] * 2;
-      const t2 = triangles[i + 1] * 2;
-      const t3 = triangles[i + 2] * 2;
-      const x1 = points[t1];
-      const y1 = points[t1 + 1];
-      const x2 = points[t2];
-      const y2 = points[t2 + 1];
-      const x3 = points[t3];
-      const y3 = points[t3 + 1];
-
-      const dx = x2 - x1;
-      const dy = y2 - y1;
-      const ex = x3 - x1;
-      const ey = y3 - y1;
-      const ab = (dx * ey - dy * ex) * 2;
-
-      if (Math.abs(ab) < 1e-9) {
-        // For a degenerate triangle, the circumcenter is at the infinity, in a
-        // direction orthogonal to the halfedge and away from the “center” of
-        // the diagram <bx, by>, defined as the hull’s barycenter.
-        if (bx === undefined) {
-          bx = by = 0;
-          for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];
-          bx /= hull.length, by /= hull.length;
-        }
-        const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);
-        x = (x1 + x3) / 2 - a * ey;
-        y = (y1 + y3) / 2 + a * ex;
-      } else {
-        const d = 1 / ab;
-        const bl = dx * dx + dy * dy;
-        const cl = ex * ex + ey * ey;
-        x = x1 + (ey * bl - dy * cl) * d;
-        y = y1 + (dx * cl - ex * bl) * d;
-      }
-      circumcenters[j] = x;
-      circumcenters[j + 1] = y;
-    }
-
-    // Compute exterior cell rays.
-    let h = hull[hull.length - 1];
-    let p0, p1 = h * 4;
-    let x0, x1 = points[2 * h];
-    let y0, y1 = points[2 * h + 1];
-    vectors.fill(0);
-    for (let i = 0; i < hull.length; ++i) {
-      h = hull[i];
-      p0 = p1, x0 = x1, y0 = y1;
-      p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];
-      vectors[p0 + 2] = vectors[p1] = y0 - y1;
-      vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;
-    }
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;
-    if (hull.length <= 1) return null;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = Math.floor(i / 3) * 2;
-      const tj = Math.floor(j / 3) * 2;
-      const xi = circumcenters[ti];
-      const yi = circumcenters[ti + 1];
-      const xj = circumcenters[tj];
-      const yj = circumcenters[tj + 1];
-      this._renderSegment(xi, yi, xj, yj, context);
-    }
-    let h0, h1 = hull[hull.length - 1];
-    for (let i = 0; i < hull.length; ++i) {
-      h0 = h1, h1 = hull[i];
-      const t = Math.floor(inedges[h1] / 3) * 2;
-      const x = circumcenters[t];
-      const y = circumcenters[t + 1];
-      const v = h0 * 4;
-      const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);
-      if (p) this._renderSegment(x, y, p[0], p[1], context);
-    }
-    return buffer && buffer.value();
-  }
-  renderBounds(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);
-    return buffer && buffer.value();
-  }
-  renderCell(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const points = this._clip(i);
-    if (points === null || !points.length) return;
-    context.moveTo(points[0], points[1]);
-    let n = points.length;
-    while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;
-    for (let i = 2; i < n; i += 2) {
-      if (points[i] !== points[i-2] || points[i+1] !== points[i-1])
-        context.lineTo(points[i], points[i + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *cellPolygons() {
-    const {delaunay: {points}} = this;
-    for (let i = 0, n = points.length / 2; i < n; ++i) {
-      const cell = this.cellPolygon(i);
-      if (cell) cell.index = i, yield cell;
-    }
-  }
-  cellPolygon(i) {
-    const polygon = new Polygon;
-    this.renderCell(i, polygon);
-    return polygon.value();
-  }
-  _renderSegment(x0, y0, x1, y1, context) {
-    let S;
-    const c0 = this._regioncode(x0, y0);
-    const c1 = this._regioncode(x1, y1);
-    if (c0 === 0 && c1 === 0) {
-      context.moveTo(x0, y0);
-      context.lineTo(x1, y1);
-    } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {
-      context.moveTo(S[0], S[1]);
-      context.lineTo(S[2], S[3]);
-    }
-  }
-  contains(i, x, y) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return false;
-    return this.delaunay._step(i, x, y) === i;
-  }
-  *neighbors(i) {
-    const ci = this._clip(i);
-    if (ci) for (const j of this.delaunay.neighbors(i)) {
-      const cj = this._clip(j);
-      // find the common edge
-      if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {
-        for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {
-          if (ci[ai] === cj[aj]
-              && ci[ai + 1] === cj[aj + 1]
-              && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]
-              && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {
-            yield j;
-            break loop;
-          }
-        }
-      }
-    }
-  }
-  _cell(i) {
-    const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;
-    const e0 = inedges[i];
-    if (e0 === -1) return null; // coincident point
-    const points = [];
-    let e = e0;
-    do {
-      const t = Math.floor(e / 3);
-      points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-    } while (e !== e0 && e !== -1);
-    return points;
-  }
-  _clip(i) {
-    // degenerate case (1 valid point: return the box)
-    if (i === 0 && this.delaunay.hull.length === 1) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    const points = this._cell(i);
-    if (points === null) return null;
-    const {vectors: V} = this;
-    const v = i * 4;
-    return this._simplify(V[v] || V[v + 1]
-        ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])
-        : this._clipFinite(i, points));
-  }
-  _clipFinite(i, points) {
-    const n = points.length;
-    let P = null;
-    let x0, y0, x1 = points[n - 2], y1 = points[n - 1];
-    let c0, c1 = this._regioncode(x1, y1);
-    let e0, e1 = 0;
-    for (let j = 0; j < n; j += 2) {
-      x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];
-      c0 = c1, c1 = this._regioncode(x1, y1);
-      if (c0 === 0 && c1 === 0) {
-        e0 = e1, e1 = 0;
-        if (P) P.push(x1, y1);
-        else P = [x1, y1];
-      } else {
-        let S, sx0, sy0, sx1, sy1;
-        if (c0 === 0) {
-          if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;
-          [sx0, sy0, sx1, sy1] = S;
-        } else {
-          if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;
-          [sx1, sy1, sx0, sy0] = S;
-          e0 = e1, e1 = this._edgecode(sx0, sy0);
-          if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-          if (P) P.push(sx0, sy0);
-          else P = [sx0, sy0];
-        }
-        e0 = e1, e1 = this._edgecode(sx1, sy1);
-        if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-        if (P) P.push(sx1, sy1);
-        else P = [sx1, sy1];
-      }
-    }
-    if (P) {
-      e0 = e1, e1 = this._edgecode(P[0], P[1]);
-      if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    return P;
-  }
-  _clipSegment(x0, y0, x1, y1, c0, c1) {
-    // for more robustness, always consider the segment in the same order
-    const flip = c0 < c1;
-    if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];
-    while (true) {
-      if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];
-      if (c0 & c1) return null;
-      let x, y, c = c0 || c1;
-      if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;
-      else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;
-      else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;
-      else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;
-      if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);
-      else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);
-    }
-  }
-  _clipInfinite(i, points, vx0, vy0, vxn, vyn) {
-    let P = Array.from(points), p;
-    if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);
-    if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);
-    if (P = this._clipFinite(i, P)) {
-      for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {
-        c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);
-        if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;
-      }
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];
-    }
-    return P;
-  }
-  _edge(i, e0, e1, P, j) {
-    while (e0 !== e1) {
-      let x, y;
-      switch (e0) {
-        case 0b0101: e0 = 0b0100; continue; // top-left
-        case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top
-        case 0b0110: e0 = 0b0010; continue; // top-right
-        case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right
-        case 0b1010: e0 = 0b1000; continue; // bottom-right
-        case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom
-        case 0b1001: e0 = 0b0001; continue; // bottom-left
-        case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left
-      }
-      // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are
-      // undefined, the conditional statement will be executed.
-      if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {
-        P.splice(j, 0, x, y), j += 2;
-      }
-    }
-    return j;
-  }
-  _project(x0, y0, vx, vy) {
-    let t = Infinity, c, x, y;
-    if (vy < 0) { // top
-      if (y0 <= this.ymin) return null;
-      if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;
-    } else if (vy > 0) { // bottom
-      if (y0 >= this.ymax) return null;
-      if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;
-    }
-    if (vx > 0) { // right
-      if (x0 >= this.xmax) return null;
-      if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;
-    } else if (vx < 0) { // left
-      if (x0 <= this.xmin) return null;
-      if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;
-    }
-    return [x, y];
-  }
-  _edgecode(x, y) {
-    return (x === this.xmin ? 0b0001
-        : x === this.xmax ? 0b0010 : 0b0000)
-        | (y === this.ymin ? 0b0100
-        : y === this.ymax ? 0b1000 : 0b0000);
-  }
-  _regioncode(x, y) {
-    return (x < this.xmin ? 0b0001
-        : x > this.xmax ? 0b0010 : 0b0000)
-        | (y < this.ymin ? 0b0100
-        : y > this.ymax ? 0b1000 : 0b0000);
-  }
-  _simplify(P) {
-    if (P && P.length > 4) {
-      for (let i = 0; i < P.length; i+= 2) {
-        const j = (i + 2) % P.length, k = (i + 4) % P.length;
-        if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {
-          P.splice(j, 2), i -= 2;
-        }
-      }
-      if (!P.length) P = null;
-    }
-    return P;
-  }
-}
-
-const tau = 2 * Math.PI, pow = Math.pow;
-
-function pointX(p) {
-  return p[0];
-}
-
-function pointY(p) {
-  return p[1];
-}
-
-// A triangulation is collinear if all its triangles have a non-null area
-function collinear(d) {
-  const {triangles, coords} = d;
-  for (let i = 0; i < triangles.length; i += 3) {
-    const a = 2 * triangles[i],
-          b = 2 * triangles[i + 1],
-          c = 2 * triangles[i + 2],
-          cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])
-                - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);
-    if (cross > 1e-10) return false;
-  }
-  return true;
-}
-
-function jitter(x, y, r) {
-  return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];
-}
-
-class Delaunay {
-  static from(points, fx = pointX, fy = pointY, that) {
-    return new Delaunay("length" in points
-        ? flatArray(points, fx, fy, that)
-        : Float64Array.from(flatIterable(points, fx, fy, that)));
-  }
-  constructor(points) {
-    this._delaunator = new Delaunator(points);
-    this.inedges = new Int32Array(points.length / 2);
-    this._hullIndex = new Int32Array(points.length / 2);
-    this.points = this._delaunator.coords;
-    this._init();
-  }
-  update() {
-    this._delaunator.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const d = this._delaunator, points = this.points;
-
-    // check for collinear
-    if (d.hull && d.hull.length > 2 && collinear(d)) {
-      this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)
-        .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors
-      const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],
-        bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],
-        r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);
-      for (let i = 0, n = points.length / 2; i < n; ++i) {
-        const p = jitter(points[2 * i], points[2 * i + 1], r);
-        points[2 * i] = p[0];
-        points[2 * i + 1] = p[1];
-      }
-      this._delaunator = new Delaunator(points);
-    } else {
-      delete this.collinear;
-    }
-
-    const halfedges = this.halfedges = this._delaunator.halfedges;
-    const hull = this.hull = this._delaunator.hull;
-    const triangles = this.triangles = this._delaunator.triangles;
-    const inedges = this.inedges.fill(-1);
-    const hullIndex = this._hullIndex.fill(-1);
-
-    // Compute an index from each point to an (arbitrary) incoming halfedge
-    // Used to give the first neighbor of each point; for this reason,
-    // on the hull we give priority to exterior halfedges
-    for (let e = 0, n = halfedges.length; e < n; ++e) {
-      const p = triangles[e % 3 === 2 ? e - 2 : e + 1];
-      if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;
-    }
-    for (let i = 0, n = hull.length; i < n; ++i) {
-      hullIndex[hull[i]] = i;
-    }
-
-    // degenerate case: 1 or 2 (distinct) points
-    if (hull.length <= 2 && hull.length > 0) {
-      this.triangles = new Int32Array(3).fill(-1);
-      this.halfedges = new Int32Array(3).fill(-1);
-      this.triangles[0] = hull[0];
-      inedges[hull[0]] = 1;
-      if (hull.length === 2) {
-        inedges[hull[1]] = 0;
-        this.triangles[1] = hull[1];
-        this.triangles[2] = hull[1];
-      }
-    }
-  }
-  voronoi(bounds) {
-    return new Voronoi(this, bounds);
-  }
-  *neighbors(i) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;
-
-    // degenerate case with several collinear points
-    if (collinear) {
-      const l = collinear.indexOf(i);
-      if (l > 0) yield collinear[l - 1];
-      if (l < collinear.length - 1) yield collinear[l + 1];
-      return;
-    }
-
-    const e0 = inedges[i];
-    if (e0 === -1) return; // coincident point
-    let e = e0, p0 = -1;
-    do {
-      yield p0 = triangles[e];
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) return; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        const p = hull[(_hullIndex[i] + 1) % hull.length];
-        if (p !== p0) yield p;
-        return;
-      }
-    } while (e !== e0);
-  }
-  find(x, y, i = 0) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;
-    const i0 = i;
-    let c;
-    while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;
-    return c;
-  }
-  _step(i, x, y) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;
-    if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);
-    let c = i;
-    let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);
-    const e0 = inedges[i];
-    let e = e0;
-    do {
-      let t = triangles[e];
-      const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);
-      if (dt < dc) dc = dt, c = t;
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        e = hull[(_hullIndex[i] + 1) % hull.length];
-        if (e !== t) {
-          if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;
-        }
-        break;
-      }
-    } while (e !== e0);
-    return c;
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, halfedges, triangles} = this;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = triangles[i] * 2;
-      const tj = triangles[j] * 2;
-      context.moveTo(points[ti], points[ti + 1]);
-      context.lineTo(points[tj], points[tj + 1]);
-    }
-    this.renderHull(context);
-    return buffer && buffer.value();
-  }
-  renderPoints(context, r) {
-    if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null;
-    r = r == undefined ? 2 : +r;
-    const buffer = context == null ? context = new Path : undefined;
-    const {points} = this;
-    for (let i = 0, n = points.length; i < n; i += 2) {
-      const x = points[i], y = points[i + 1];
-      context.moveTo(x + r, y);
-      context.arc(x, y, r, 0, tau);
-    }
-    return buffer && buffer.value();
-  }
-  renderHull(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {hull, points} = this;
-    const h = hull[0] * 2, n = hull.length;
-    context.moveTo(points[h], points[h + 1]);
-    for (let i = 1; i < n; ++i) {
-      const h = 2 * hull[i];
-      context.lineTo(points[h], points[h + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  hullPolygon() {
-    const polygon = new Polygon;
-    this.renderHull(polygon);
-    return polygon.value();
-  }
-  renderTriangle(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, triangles} = this;
-    const t0 = triangles[i *= 3] * 2;
-    const t1 = triangles[i + 1] * 2;
-    const t2 = triangles[i + 2] * 2;
-    context.moveTo(points[t0], points[t0 + 1]);
-    context.lineTo(points[t1], points[t1 + 1]);
-    context.lineTo(points[t2], points[t2 + 1]);
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *trianglePolygons() {
-    const {triangles} = this;
-    for (let i = 0, n = triangles.length / 3; i < n; ++i) {
-      yield this.trianglePolygon(i);
-    }
-  }
-  trianglePolygon(i) {
-    const polygon = new Polygon;
-    this.renderTriangle(i, polygon);
-    return polygon.value();
-  }
-}
-
-function flatArray(points, fx, fy, that) {
-  const n = points.length;
-  const array = new Float64Array(n * 2);
-  for (let i = 0; i < n; ++i) {
-    const p = points[i];
-    array[i * 2] = fx.call(that, p, i, points);
-    array[i * 2 + 1] = fy.call(that, p, i, points);
-  }
-  return array;
-}
-
-function* flatIterable(points, fx, fy, that) {
-  let i = 0;
-  for (const p of points) {
-    yield fx.call(that, p, i, points);
-    yield fy.call(that, p, i, points);
-    ++i;
-  }
-}
-
-exports.Delaunay = Delaunay;
-exports.Voronoi = Voronoi;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-delaunay/dist/d3-delaunay.min.js
===================================================================
--- node_modules/d3-delaunay/dist/d3-delaunay.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://github.com/d3/d3-delaunay v6.0.4 Copyright 2018-2021 Observable, Inc., 2021 Mapbox
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";const i=134217729;function e(t,i,e,n,s){let l,h,r,o,a=i[0],c=n[0],u=0,f=0;c>a==c>-a?(l=a,a=i[++u]):(l=c,c=n[++f]);let _=0;if(u<t&&f<e)for(c>a==c>-a?(h=a+l,r=l-(h-a),a=i[++u]):(h=c+l,r=l-(h-c),c=n[++f]),l=h,0!==r&&(s[_++]=r);u<t&&f<e;)c>a==c>-a?(h=l+a,o=h-l,r=l-(h-o)+(a-o),a=i[++u]):(h=l+c,o=h-l,r=l-(h-o)+(c-o),c=n[++f]),l=h,0!==r&&(s[_++]=r);for(;u<t;)h=l+a,o=h-l,r=l-(h-o)+(a-o),a=i[++u],l=h,0!==r&&(s[_++]=r);for(;f<e;)h=l+c,o=h-l,r=l-(h-o)+(c-o),c=n[++f],l=h,0!==r&&(s[_++]=r);return 0===l&&0!==_||(s[_++]=l),_}function n(t){return new Float64Array(t)}const s=n(4),l=n(8),h=n(12),r=n(16),o=n(4);function a(t,n,a,c,u,f){const _=(n-f)*(a-u),d=(t-u)*(c-f),g=_-d;if(0===_||0===d||_>0!=d>0)return g;const y=Math.abs(_+d);return Math.abs(g)>=33306690738754716e-32*y?g:-function(t,n,a,c,u,f,_){let d,g,y,m,x,p,w,v,b,T,M,A,k,$,P,S,I,z;const F=t-u,U=a-u,K=n-f,L=c-f;$=F*L,p=i*F,w=p-(p-F),v=F-w,p=i*L,b=p-(p-L),T=L-b,P=v*T-($-w*b-v*b-w*T),S=K*U,p=i*K,w=p-(p-K),v=K-w,p=i*U,b=p-(p-U),T=U-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,s[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,s[1]=k-(M+x)+(x-S),z=A+M,x=z-A,s[2]=A-(z-x)+(M-x),s[3]=z;let j=function(t,i){let e=i[0];for(let n=1;n<t;n++)e+=i[n];return e}(4,s),H=22204460492503146e-32*_;if(j>=H||-j>=H)return j;if(x=t-F,d=t-(F+x)+(x-u),x=a-U,y=a-(U+x)+(x-u),x=n-K,g=n-(K+x)+(x-f),x=c-L,m=c-(L+x)+(x-f),0===d&&0===g&&0===y&&0===m)return j;if(H=11093356479670487e-47*_+33306690738754706e-32*Math.abs(j),j+=F*m+L*d-(K*y+U*g),j>=H||-j>=H)return j;$=d*L,p=i*d,w=p-(p-d),v=d-w,p=i*L,b=p-(p-L),T=L-b,P=v*T-($-w*b-v*b-w*T),S=g*U,p=i*g,w=p-(p-g),v=g-w,p=i*U,b=p-(p-U),T=U-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const E=e(4,s,4,o,l);$=F*m,p=i*F,w=p-(p-F),v=F-w,p=i*m,b=p-(p-m),T=m-b,P=v*T-($-w*b-v*b-w*T),S=K*y,p=i*K,w=p-(p-K),v=K-w,p=i*y,b=p-(p-y),T=y-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const C=e(E,l,4,o,h);$=d*m,p=i*d,w=p-(p-d),v=d-w,p=i*m,b=p-(p-m),T=m-b,P=v*T-($-w*b-v*b-w*T),S=g*y,p=i*g,w=p-(p-g),v=g-w,p=i*y,b=p-(p-y),T=y-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const N=e(C,h,4,o,r);return r[N-1]}(t,n,a,c,u,f,y)}const c=Math.pow(2,-52),u=new Uint32Array(512);class f{static from(t,i=x,e=p){const n=t.length,s=new Float64Array(2*n);for(let l=0;l<n;l++){const n=t[l];s[2*l]=i(n),s[2*l+1]=e(n)}return new f(s)}constructor(t){const i=t.length>>1;if(i>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*i-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:t,_hullPrev:i,_hullNext:e,_hullTri:n,_hullHash:s}=this,l=t.length>>1;let h=1/0,r=1/0,o=-1/0,u=-1/0;for(let i=0;i<l;i++){const e=t[2*i],n=t[2*i+1];e<h&&(h=e),n<r&&(r=n),e>o&&(o=e),n>u&&(u=n),this._ids[i]=i}const f=(h+o)/2,d=(r+u)/2;let m,x,p,w=1/0;for(let i=0;i<l;i++){const e=_(f,d,t[2*i],t[2*i+1]);e<w&&(m=i,w=e)}const v=t[2*m],b=t[2*m+1];w=1/0;for(let i=0;i<l;i++){if(i===m)continue;const e=_(v,b,t[2*i],t[2*i+1]);e<w&&e>0&&(x=i,w=e)}let T=t[2*x],M=t[2*x+1],A=1/0;for(let i=0;i<l;i++){if(i===m||i===x)continue;const e=g(v,b,T,M,t[2*i],t[2*i+1]);e<A&&(p=i,A=e)}let k=t[2*p],$=t[2*p+1];if(A===1/0){for(let i=0;i<l;i++)this._dists[i]=t[2*i]-t[0]||t[2*i+1]-t[1];y(this._ids,this._dists,0,l-1);const i=new Uint32Array(l);let e=0;for(let t=0,n=-1/0;t<l;t++){const s=this._ids[t];this._dists[s]>n&&(i[e++]=s,n=this._dists[s])}return this.hull=i.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(a(v,b,T,M,k,$)<0){const t=x,i=T,e=M;x=p,T=k,M=$,p=t,k=i,$=e}const P=function(t,i,e,n,s,l){const h=e-t,r=n-i,o=s-t,a=l-i,c=h*h+r*r,u=o*o+a*a,f=.5/(h*a-r*o);return{x:t+(a*c-r*u)*f,y:i+(h*u-o*c)*f}}(v,b,T,M,k,$);this._cx=P.x,this._cy=P.y;for(let i=0;i<l;i++)this._dists[i]=_(t[2*i],t[2*i+1],P.x,P.y);y(this._ids,this._dists,0,l-1),this._hullStart=m;let S=3;e[m]=i[p]=x,e[x]=i[m]=p,e[p]=i[x]=m,n[m]=0,n[x]=1,n[p]=2,s.fill(-1),s[this._hashKey(v,b)]=m,s[this._hashKey(T,M)]=x,s[this._hashKey(k,$)]=p,this.trianglesLen=0,this._addTriangle(m,x,p,-1,-1,-1);for(let l,h,r=0;r<this._ids.length;r++){const o=this._ids[r],u=t[2*o],f=t[2*o+1];if(r>0&&Math.abs(u-l)<=c&&Math.abs(f-h)<=c)continue;if(l=u,h=f,o===m||o===x||o===p)continue;let _=0;for(let t=0,i=this._hashKey(u,f);t<this._hashSize&&(_=s[(i+t)%this._hashSize],-1===_||_===e[_]);t++);_=i[_];let d,g=_;for(;d=e[g],a(u,f,t[2*g],t[2*g+1],t[2*d],t[2*d+1])>=0;)if(g=d,g===_){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,o,e[g],-1,-1,n[g]);n[o]=this._legalize(y+2),n[g]=y,S++;let w=e[g];for(;d=e[w],a(u,f,t[2*w],t[2*w+1],t[2*d],t[2*d+1])<0;)y=this._addTriangle(w,o,d,n[o],-1,n[w]),n[o]=this._legalize(y+2),e[w]=w,S--,w=d;if(g===_)for(;d=i[g],a(u,f,t[2*d],t[2*d+1],t[2*g],t[2*g+1])<0;)y=this._addTriangle(d,o,g,-1,n[g],n[d]),this._legalize(y+2),n[d]=y,e[g]=g,S--,g=d;this._hullStart=i[o]=g,e[g]=i[w]=o,e[o]=w,s[this._hashKey(u,f)]=o,s[this._hashKey(t[2*g],t[2*g+1])]=g}this.hull=new Uint32Array(S);for(let t=0,i=this._hullStart;t<S;t++)this.hull[t]=i,i=e[i];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,i){return Math.floor(function(t,i){const e=t/(Math.abs(t)+Math.abs(i));return(i>0?3-e:1+e)/4}(t-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:i,_halfedges:e,coords:n}=this;let s=0,l=0;for(;;){const h=e[t],r=t-t%3;if(l=r+(t+2)%3,-1===h){if(0===s)break;t=u[--s];continue}const o=h-h%3,a=r+(t+1)%3,c=o+(h+2)%3,f=i[l],_=i[t],g=i[a],y=i[c];if(d(n[2*f],n[2*f+1],n[2*_],n[2*_+1],n[2*g],n[2*g+1],n[2*y],n[2*y+1])){i[t]=y,i[h]=f;const n=e[c];if(-1===n){let i=this._hullStart;do{if(this._hullTri[i]===c){this._hullTri[i]=t;break}i=this._hullPrev[i]}while(i!==this._hullStart)}this._link(t,n),this._link(h,e[l]),this._link(l,c);const r=o+(h+1)%3;s<u.length&&(u[s++]=r)}else{if(0===s)break;t=u[--s]}}return l}_link(t,i){this._halfedges[t]=i,-1!==i&&(this._halfedges[i]=t)}_addTriangle(t,i,e,n,s,l){const h=this.trianglesLen;return this._triangles[h]=t,this._triangles[h+1]=i,this._triangles[h+2]=e,this._link(h,n),this._link(h+1,s),this._link(h+2,l),this.trianglesLen+=3,h}}function _(t,i,e,n){const s=t-e,l=i-n;return s*s+l*l}function d(t,i,e,n,s,l,h,r){const o=t-h,a=i-r,c=e-h,u=n-r,f=s-h,_=l-r,d=c*c+u*u,g=f*f+_*_;return o*(u*g-d*_)-a*(c*g-d*f)+(o*o+a*a)*(c*_-u*f)<0}function g(t,i,e,n,s,l){const h=e-t,r=n-i,o=s-t,a=l-i,c=h*h+r*r,u=o*o+a*a,f=.5/(h*a-r*o),_=(a*c-r*u)*f,d=(h*u-o*c)*f;return _*_+d*d}function y(t,i,e,n){if(n-e<=20)for(let s=e+1;s<=n;s++){const n=t[s],l=i[n];let h=s-1;for(;h>=e&&i[t[h]]>l;)t[h+1]=t[h--];t[h+1]=n}else{let s=e+1,l=n;m(t,e+n>>1,s),i[t[e]]>i[t[n]]&&m(t,e,n),i[t[s]]>i[t[n]]&&m(t,s,n),i[t[e]]>i[t[s]]&&m(t,e,s);const h=t[s],r=i[h];for(;;){do{s++}while(i[t[s]]<r);do{l--}while(i[t[l]]>r);if(l<s)break;m(t,s,l)}t[e+1]=t[l],t[l]=h,n-s+1>=l-e?(y(t,i,s,n),y(t,i,e,l-1)):(y(t,i,e,l-1),y(t,i,s,n))}}function m(t,i,e){const n=t[i];t[i]=t[e],t[e]=n}function x(t){return t[0]}function p(t){return t[1]}const w=1e-6;class v{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,i){this._+=`L${this._x1=+t},${this._y1=+i}`}arc(t,i,e){const n=(t=+t)+(e=+e),s=i=+i;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${n},${s}`:(Math.abs(this._x1-n)>w||Math.abs(this._y1-s)>w)&&(this._+="L"+n+","+s),e&&(this._+=`A${e},${e},0,1,1,${t-e},${i}A${e},${e},0,1,1,${this._x1=n},${this._y1=s}`)}rect(t,i,e,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}h${+e}v${+n}h${-e}Z`}value(){return this._||null}}class b{constructor(){this._=[]}moveTo(t,i){this._.push([t,i])}closePath(){this._.push(this._[0].slice())}lineTo(t,i){this._.push([t,i])}value(){return this._.length?this._:null}}class T{constructor(t,[i,e,n,s]=[0,0,960,500]){if(!((n=+n)>=(i=+i)&&(s=+s)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=n,this.xmin=i,this.ymax=s,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:i,triangles:e},vectors:n}=this;let s,l;const h=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,c=e.length;o<c;o+=3,a+=2){const c=2*e[o],u=2*e[o+1],f=2*e[o+2],_=t[c],d=t[c+1],g=t[u],y=t[u+1],m=t[f],x=t[f+1],p=g-_,w=y-d,v=m-_,b=x-d,T=2*(p*b-w*v);if(Math.abs(T)<1e-9){if(void 0===s){s=l=0;for(const e of i)s+=t[2*e],l+=t[2*e+1];s/=i.length,l/=i.length}const e=1e9*Math.sign((s-_)*b-(l-d)*v);n=(_+m)/2-e*b,r=(d+x)/2+e*v}else{const t=1/T,i=p*p+w*w,e=v*v+b*b;n=_+(b*i-w*e)*t,r=d+(p*e-v*i)*t}h[a]=n,h[a+1]=r}let r,o,a,c=i[i.length-1],u=4*c,f=t[2*c],_=t[2*c+1];n.fill(0);for(let e=0;e<i.length;++e)c=i[e],r=u,o=f,a=_,u=4*c,f=t[2*c],_=t[2*c+1],n[r+2]=n[u]=a-_,n[r+3]=n[u+1]=f-o}render(t){const i=null==t?t=new v:void 0,{delaunay:{halfedges:e,inedges:n,hull:s},circumcenters:l,vectors:h}=this;if(s.length<=1)return null;for(let i=0,n=e.length;i<n;++i){const n=e[i];if(n<i)continue;const s=2*Math.floor(i/3),h=2*Math.floor(n/3),r=l[s],o=l[s+1],a=l[h],c=l[h+1];this._renderSegment(r,o,a,c,t)}let r,o=s[s.length-1];for(let i=0;i<s.length;++i){r=o,o=s[i];const e=2*Math.floor(n[o]/3),a=l[e],c=l[e+1],u=4*r,f=this._project(a,c,h[u+2],h[u+3]);f&&this._renderSegment(a,c,f[0],f[1],t)}return i&&i.value()}renderBounds(t){const i=null==t?t=new v:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),i&&i.value()}renderCell(t,i){const e=null==i?i=new v:void 0,n=this._clip(t);if(null===n||!n.length)return;i.moveTo(n[0],n[1]);let s=n.length;for(;n[0]===n[s-2]&&n[1]===n[s-1]&&s>1;)s-=2;for(let t=2;t<s;t+=2)n[t]===n[t-2]&&n[t+1]===n[t-1]||i.lineTo(n[t],n[t+1]);return i.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let i=0,e=t.length/2;i<e;++i){const t=this.cellPolygon(i);t&&(t.index=i,yield t)}}cellPolygon(t){const i=new b;return this.renderCell(t,i),i.value()}_renderSegment(t,i,e,n,s){let l;const h=this._regioncode(t,i),r=this._regioncode(e,n);0===h&&0===r?(s.moveTo(t,i),s.lineTo(e,n)):(l=this._clipSegment(t,i,e,n,h,r))&&(s.moveTo(l[0],l[1]),s.lineTo(l[2],l[3]))}contains(t,i,e){return(i=+i)==i&&(e=+e)==e&&this.delaunay._step(t,i,e)===t}*neighbors(t){const i=this._clip(t);if(i)for(const e of this.delaunay.neighbors(t)){const t=this._clip(e);if(t)t:for(let n=0,s=i.length;n<s;n+=2)for(let l=0,h=t.length;l<h;l+=2)if(i[n]===t[l]&&i[n+1]===t[l+1]&&i[(n+2)%s]===t[(l+h-2)%h]&&i[(n+3)%s]===t[(l+h-1)%h]){yield e;break t}}}_cell(t){const{circumcenters:i,delaunay:{inedges:e,halfedges:n,triangles:s}}=this,l=e[t];if(-1===l)return null;const h=[];let r=l;do{const e=Math.floor(r/3);if(h.push(i[2*e],i[2*e+1]),r=r%3==2?r-2:r+1,s[r]!==t)break;r=n[r]}while(r!==l&&-1!==r);return h}_clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const i=this._cell(t);if(null===i)return null;const{vectors:e}=this,n=4*t;return this._simplify(e[n]||e[n+1]?this._clipInfinite(t,i,e[n],e[n+1],e[n+2],e[n+3]):this._clipFinite(t,i))}_clipFinite(t,i){const e=i.length;let n,s,l,h,r=null,o=i[e-2],a=i[e-1],c=this._regioncode(o,a),u=0;for(let f=0;f<e;f+=2)if(n=o,s=a,o=i[f],a=i[f+1],l=c,c=this._regioncode(o,a),0===l&&0===c)h=u,u=0,r?r.push(o,a):r=[o,a];else{let i,e,f,_,d;if(0===l){if(null===(i=this._clipSegment(n,s,o,a,l,c)))continue;[e,f,_,d]=i}else{if(null===(i=this._clipSegment(o,a,n,s,c,l)))continue;[_,d,e,f]=i,h=u,u=this._edgecode(e,f),h&&u&&this._edge(t,h,u,r,r.length),r?r.push(e,f):r=[e,f]}h=u,u=this._edgecode(_,d),h&&u&&this._edge(t,h,u,r,r.length),r?r.push(_,d):r=[_,d]}if(r)h=u,u=this._edgecode(r[0],r[1]),h&&u&&this._edge(t,h,u,r,r.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return r}_clipSegment(t,i,e,n,s,l){const h=s<l;for(h&&([t,i,e,n,s,l]=[e,n,t,i,l,s]);;){if(0===s&&0===l)return h?[e,n,t,i]:[t,i,e,n];if(s&l)return null;let r,o,a=s||l;8&a?(r=t+(e-t)*(this.ymax-i)/(n-i),o=this.ymax):4&a?(r=t+(e-t)*(this.ymin-i)/(n-i),o=this.ymin):2&a?(o=i+(n-i)*(this.xmax-t)/(e-t),r=this.xmax):(o=i+(n-i)*(this.xmin-t)/(e-t),r=this.xmin),s?(t=r,i=o,s=this._regioncode(t,i)):(e=r,n=o,l=this._regioncode(e,n))}}_clipInfinite(t,i,e,n,s,l){let h,r=Array.from(i);if((h=this._project(r[0],r[1],e,n))&&r.unshift(h[0],h[1]),(h=this._project(r[r.length-2],r[r.length-1],s,l))&&r.push(h[0],h[1]),r=this._clipFinite(t,r))for(let i,e=0,n=r.length,s=this._edgecode(r[n-2],r[n-1]);e<n;e+=2)i=s,s=this._edgecode(r[e],r[e+1]),i&&s&&(e=this._edge(t,i,s,r,e),n=r.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(r=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return r}_edge(t,i,e,n,s){for(;i!==e;){let e,l;switch(i){case 5:i=4;continue;case 4:i=6,e=this.xmax,l=this.ymin;break;case 6:i=2;continue;case 2:i=10,e=this.xmax,l=this.ymax;break;case 10:i=8;continue;case 8:i=9,e=this.xmin,l=this.ymax;break;case 9:i=1;continue;case 1:i=5,e=this.xmin,l=this.ymin}n[s]===e&&n[s+1]===l||!this.contains(t,e,l)||(n.splice(s,0,e,l),s+=2)}return s}_project(t,i,e,n){let s,l,h,r=1/0;if(n<0){if(i<=this.ymin)return null;(s=(this.ymin-i)/n)<r&&(h=this.ymin,l=t+(r=s)*e)}else if(n>0){if(i>=this.ymax)return null;(s=(this.ymax-i)/n)<r&&(h=this.ymax,l=t+(r=s)*e)}if(e>0){if(t>=this.xmax)return null;(s=(this.xmax-t)/e)<r&&(l=this.xmax,h=i+(r=s)*n)}else if(e<0){if(t<=this.xmin)return null;(s=(this.xmin-t)/e)<r&&(l=this.xmin,h=i+(r=s)*n)}return[l,h]}_edgecode(t,i){return(t===this.xmin?1:t===this.xmax?2:0)|(i===this.ymin?4:i===this.ymax?8:0)}_regioncode(t,i){return(t<this.xmin?1:t>this.xmax?2:0)|(i<this.ymin?4:i>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let i=0;i<t.length;i+=2){const e=(i+2)%t.length,n=(i+4)%t.length;(t[i]===t[e]&&t[e]===t[n]||t[i+1]===t[e+1]&&t[e+1]===t[n+1])&&(t.splice(e,2),i-=2)}t.length||(t=null)}return t}}const M=2*Math.PI,A=Math.pow;function k(t){return t[0]}function $(t){return t[1]}function P(t,i,e){return[t+Math.sin(t+i)*e,i+Math.cos(t-i)*e]}class S{static from(t,i=k,e=$,n){return new S("length"in t?function(t,i,e,n){const s=t.length,l=new Float64Array(2*s);for(let h=0;h<s;++h){const s=t[h];l[2*h]=i.call(n,s,h,t),l[2*h+1]=e.call(n,s,h,t)}return l}(t,i,e,n):Float64Array.from(function*(t,i,e,n){let s=0;for(const l of t)yield i.call(n,l,s,t),yield e.call(n,l,s,t),++s}(t,i,e,n)))}constructor(t){this._delaunator=new f(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,i=this.points;if(t.hull&&t.hull.length>2&&function(t){const{triangles:i,coords:e}=t;for(let t=0;t<i.length;t+=3){const n=2*i[t],s=2*i[t+1],l=2*i[t+2];if((e[l]-e[n])*(e[s+1]-e[n+1])-(e[s]-e[n])*(e[l+1]-e[n+1])>1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:i.length/2},((t,i)=>i)).sort(((t,e)=>i[2*t]-i[2*e]||i[2*t+1]-i[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],n=[i[2*t],i[2*t+1],i[2*e],i[2*e+1]],s=1e-8*Math.hypot(n[3]-n[1],n[2]-n[0]);for(let t=0,e=i.length/2;t<e;++t){const e=P(i[2*t],i[2*t+1],s);i[2*t]=e[0],i[2*t+1]=e[1]}this._delaunator=new f(i)}else delete this.collinear;const e=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,l=this.inedges.fill(-1),h=this._hullIndex.fill(-1);for(let t=0,i=e.length;t<i;++t){const i=s[t%3==2?t-2:t+1];-1!==e[t]&&-1!==l[i]||(l[i]=t)}for(let t=0,i=n.length;t<i;++t)h[n[t]]=t;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],l[n[0]]=1,2===n.length&&(l[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(t){return new T(this,t)}*neighbors(t){const{inedges:i,hull:e,_hullIndex:n,halfedges:s,triangles:l,collinear:h}=this;if(h){const i=h.indexOf(t);return i>0&&(yield h[i-1]),void(i<h.length-1&&(yield h[i+1]))}const r=i[t];if(-1===r)return;let o=r,a=-1;do{if(yield a=l[o],o=o%3==2?o-2:o+1,l[o]!==t)return;if(o=s[o],-1===o){const i=e[(n[t]+1)%e.length];return void(i!==a&&(yield i))}}while(o!==r)}find(t,i,e=0){if((t=+t)!=t||(i=+i)!=i)return-1;const n=e;let s;for(;(s=this._step(e,t,i))>=0&&s!==e&&s!==n;)e=s;return s}_step(t,i,e){const{inedges:n,hull:s,_hullIndex:l,halfedges:h,triangles:r,points:o}=this;if(-1===n[t]||!o.length)return(t+1)%(o.length>>1);let a=t,c=A(i-o[2*t],2)+A(e-o[2*t+1],2);const u=n[t];let f=u;do{let n=r[f];const u=A(i-o[2*n],2)+A(e-o[2*n+1],2);if(u<c&&(c=u,a=n),f=f%3==2?f-2:f+1,r[f]!==t)break;if(f=h[f],-1===f){if(f=s[(l[t]+1)%s.length],f!==n&&A(i-o[2*f],2)+A(e-o[2*f+1],2)<c)return f;break}}while(f!==u);return a}render(t){const i=null==t?t=new v:void 0,{points:e,halfedges:n,triangles:s}=this;for(let i=0,l=n.length;i<l;++i){const l=n[i];if(l<i)continue;const h=2*s[i],r=2*s[l];t.moveTo(e[h],e[h+1]),t.lineTo(e[r],e[r+1])}return this.renderHull(t),i&&i.value()}renderPoints(t,i){void 0!==i||t&&"function"==typeof t.moveTo||(i=t,t=null),i=null==i?2:+i;const e=null==t?t=new v:void 0,{points:n}=this;for(let e=0,s=n.length;e<s;e+=2){const s=n[e],l=n[e+1];t.moveTo(s+i,l),t.arc(s,l,i,0,M)}return e&&e.value()}renderHull(t){const i=null==t?t=new v:void 0,{hull:e,points:n}=this,s=2*e[0],l=e.length;t.moveTo(n[s],n[s+1]);for(let i=1;i<l;++i){const s=2*e[i];t.lineTo(n[s],n[s+1])}return t.closePath(),i&&i.value()}hullPolygon(){const t=new b;return this.renderHull(t),t.value()}renderTriangle(t,i){const e=null==i?i=new v:void 0,{points:n,triangles:s}=this,l=2*s[t*=3],h=2*s[t+1],r=2*s[t+2];return i.moveTo(n[l],n[l+1]),i.lineTo(n[h],n[h+1]),i.lineTo(n[r],n[r+1]),i.closePath(),e&&e.value()}*trianglePolygons(){const{triangles:t}=this;for(let i=0,e=t.length/3;i<e;++i)yield this.trianglePolygon(i)}trianglePolygon(t){const i=new b;return this.renderTriangle(t,i),i.value()}}t.Delaunay=S,t.Voronoi=T,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-delaunay/package.json
===================================================================
--- node_modules/d3-delaunay/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-{
-  "name": "d3-delaunay",
-  "version": "6.0.4",
-  "description": "Compute the Voronoi diagram of a set of two-dimensional points.",
-  "homepage": "https://github.com/d3/d3-delaunay",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-delaunay.git"
-  },
-  "keywords": [
-    "voronoi",
-    "delaunay",
-    "geometry"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "contributors": [
-    {
-      "name": "Vladimir Agafonkin",
-      "url": "https://agafonkin.com"
-    },
-    {
-      "name": "Philippe Rivière",
-      "url": "https://visionscarto.net"
-    }
-  ],
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-delaunay.min.js",
-  "unpkg": "dist/d3-delaunay.min.js",
-  "exports": {
-    "umd": "./dist/d3-delaunay.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "delaunator": "5"
-  },
-  "devDependencies": {
-    "@rollup/plugin-node-resolve": "13",
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-delaunay/src/delaunay.js
===================================================================
--- node_modules/d3-delaunay/src/delaunay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,248 +1,0 @@
-import Delaunator from "delaunator";
-import Path from "./path.js";
-import Polygon from "./polygon.js";
-import Voronoi from "./voronoi.js";
-
-const tau = 2 * Math.PI, pow = Math.pow;
-
-function pointX(p) {
-  return p[0];
-}
-
-function pointY(p) {
-  return p[1];
-}
-
-// A triangulation is collinear if all its triangles have a non-null area
-function collinear(d) {
-  const {triangles, coords} = d;
-  for (let i = 0; i < triangles.length; i += 3) {
-    const a = 2 * triangles[i],
-          b = 2 * triangles[i + 1],
-          c = 2 * triangles[i + 2],
-          cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])
-                - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);
-    if (cross > 1e-10) return false;
-  }
-  return true;
-}
-
-function jitter(x, y, r) {
-  return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];
-}
-
-export default class Delaunay {
-  static from(points, fx = pointX, fy = pointY, that) {
-    return new Delaunay("length" in points
-        ? flatArray(points, fx, fy, that)
-        : Float64Array.from(flatIterable(points, fx, fy, that)));
-  }
-  constructor(points) {
-    this._delaunator = new Delaunator(points);
-    this.inedges = new Int32Array(points.length / 2);
-    this._hullIndex = new Int32Array(points.length / 2);
-    this.points = this._delaunator.coords;
-    this._init();
-  }
-  update() {
-    this._delaunator.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const d = this._delaunator, points = this.points;
-
-    // check for collinear
-    if (d.hull && d.hull.length > 2 && collinear(d)) {
-      this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)
-        .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors
-      const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],
-        bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],
-        r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);
-      for (let i = 0, n = points.length / 2; i < n; ++i) {
-        const p = jitter(points[2 * i], points[2 * i + 1], r);
-        points[2 * i] = p[0];
-        points[2 * i + 1] = p[1];
-      }
-      this._delaunator = new Delaunator(points);
-    } else {
-      delete this.collinear;
-    }
-
-    const halfedges = this.halfedges = this._delaunator.halfedges;
-    const hull = this.hull = this._delaunator.hull;
-    const triangles = this.triangles = this._delaunator.triangles;
-    const inedges = this.inedges.fill(-1);
-    const hullIndex = this._hullIndex.fill(-1);
-
-    // Compute an index from each point to an (arbitrary) incoming halfedge
-    // Used to give the first neighbor of each point; for this reason,
-    // on the hull we give priority to exterior halfedges
-    for (let e = 0, n = halfedges.length; e < n; ++e) {
-      const p = triangles[e % 3 === 2 ? e - 2 : e + 1];
-      if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;
-    }
-    for (let i = 0, n = hull.length; i < n; ++i) {
-      hullIndex[hull[i]] = i;
-    }
-
-    // degenerate case: 1 or 2 (distinct) points
-    if (hull.length <= 2 && hull.length > 0) {
-      this.triangles = new Int32Array(3).fill(-1);
-      this.halfedges = new Int32Array(3).fill(-1);
-      this.triangles[0] = hull[0];
-      inedges[hull[0]] = 1;
-      if (hull.length === 2) {
-        inedges[hull[1]] = 0;
-        this.triangles[1] = hull[1];
-        this.triangles[2] = hull[1];
-      }
-    }
-  }
-  voronoi(bounds) {
-    return new Voronoi(this, bounds);
-  }
-  *neighbors(i) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;
-
-    // degenerate case with several collinear points
-    if (collinear) {
-      const l = collinear.indexOf(i);
-      if (l > 0) yield collinear[l - 1];
-      if (l < collinear.length - 1) yield collinear[l + 1];
-      return;
-    }
-
-    const e0 = inedges[i];
-    if (e0 === -1) return; // coincident point
-    let e = e0, p0 = -1;
-    do {
-      yield p0 = triangles[e];
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) return; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        const p = hull[(_hullIndex[i] + 1) % hull.length];
-        if (p !== p0) yield p;
-        return;
-      }
-    } while (e !== e0);
-  }
-  find(x, y, i = 0) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;
-    const i0 = i;
-    let c;
-    while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;
-    return c;
-  }
-  _step(i, x, y) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;
-    if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);
-    let c = i;
-    let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);
-    const e0 = inedges[i];
-    let e = e0;
-    do {
-      let t = triangles[e];
-      const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);
-      if (dt < dc) dc = dt, c = t;
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        e = hull[(_hullIndex[i] + 1) % hull.length];
-        if (e !== t) {
-          if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;
-        }
-        break;
-      }
-    } while (e !== e0);
-    return c;
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, halfedges, triangles} = this;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = triangles[i] * 2;
-      const tj = triangles[j] * 2;
-      context.moveTo(points[ti], points[ti + 1]);
-      context.lineTo(points[tj], points[tj + 1]);
-    }
-    this.renderHull(context);
-    return buffer && buffer.value();
-  }
-  renderPoints(context, r) {
-    if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null;
-    r = r == undefined ? 2 : +r;
-    const buffer = context == null ? context = new Path : undefined;
-    const {points} = this;
-    for (let i = 0, n = points.length; i < n; i += 2) {
-      const x = points[i], y = points[i + 1];
-      context.moveTo(x + r, y);
-      context.arc(x, y, r, 0, tau);
-    }
-    return buffer && buffer.value();
-  }
-  renderHull(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {hull, points} = this;
-    const h = hull[0] * 2, n = hull.length;
-    context.moveTo(points[h], points[h + 1]);
-    for (let i = 1; i < n; ++i) {
-      const h = 2 * hull[i];
-      context.lineTo(points[h], points[h + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  hullPolygon() {
-    const polygon = new Polygon;
-    this.renderHull(polygon);
-    return polygon.value();
-  }
-  renderTriangle(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, triangles} = this;
-    const t0 = triangles[i *= 3] * 2;
-    const t1 = triangles[i + 1] * 2;
-    const t2 = triangles[i + 2] * 2;
-    context.moveTo(points[t0], points[t0 + 1]);
-    context.lineTo(points[t1], points[t1 + 1]);
-    context.lineTo(points[t2], points[t2 + 1]);
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *trianglePolygons() {
-    const {triangles} = this;
-    for (let i = 0, n = triangles.length / 3; i < n; ++i) {
-      yield this.trianglePolygon(i);
-    }
-  }
-  trianglePolygon(i) {
-    const polygon = new Polygon;
-    this.renderTriangle(i, polygon);
-    return polygon.value();
-  }
-}
-
-function flatArray(points, fx, fy, that) {
-  const n = points.length;
-  const array = new Float64Array(n * 2);
-  for (let i = 0; i < n; ++i) {
-    const p = points[i];
-    array[i * 2] = fx.call(that, p, i, points);
-    array[i * 2 + 1] = fy.call(that, p, i, points);
-  }
-  return array;
-}
-
-function* flatIterable(points, fx, fy, that) {
-  let i = 0;
-  for (const p of points) {
-    yield fx.call(that, p, i, points);
-    yield fy.call(that, p, i, points);
-    ++i;
-  }
-}
Index: de_modules/d3-delaunay/src/index.js
===================================================================
--- node_modules/d3-delaunay/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export {default as Delaunay} from "./delaunay.js";
-export {default as Voronoi} from "./voronoi.js";
Index: de_modules/d3-delaunay/src/path.js
===================================================================
--- node_modules/d3-delaunay/src/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-const epsilon = 1e-6;
-
-export default class Path {
-  constructor() {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-  }
-  moveTo(x, y) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  }
-  lineTo(x, y) {
-    this._ += `L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arc(x, y, r) {
-    x = +x, y = +y, r = +r;
-    const x0 = x + r;
-    const y0 = y;
-    if (r < 0) throw new Error("negative radius");
-    if (this._x1 === null) this._ += `M${x0},${y0}`;
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += "L" + x0 + "," + y0;
-    if (!r) return;
-    this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;
-  }
-  rect(x, y, w, h) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;
-  }
-  value() {
-    return this._ || null;
-  }
-}
Index: de_modules/d3-delaunay/src/polygon.js
===================================================================
--- node_modules/d3-delaunay/src/polygon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-export default class Polygon {
-  constructor() {
-    this._ = [];
-  }
-  moveTo(x, y) {
-    this._.push([x, y]);
-  }
-  closePath() {
-    this._.push(this._[0].slice());
-  }
-  lineTo(x, y) {
-    this._.push([x, y]);
-  }
-  value() {
-    return this._.length ? this._ : null;
-  }
-}
Index: de_modules/d3-delaunay/src/voronoi.js
===================================================================
--- node_modules/d3-delaunay/src/voronoi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,332 +1,0 @@
-import Path from "./path.js";
-import Polygon from "./polygon.js";
-
-export default class Voronoi {
-  constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {
-    if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds");
-    this.delaunay = delaunay;
-    this._circumcenters = new Float64Array(delaunay.points.length * 2);
-    this.vectors = new Float64Array(delaunay.points.length * 2);
-    this.xmax = xmax, this.xmin = xmin;
-    this.ymax = ymax, this.ymin = ymin;
-    this._init();
-  }
-  update() {
-    this.delaunay.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const {delaunay: {points, hull, triangles}, vectors} = this;
-    let bx, by; // lazily computed barycenter of the hull
-
-    // Compute circumcenters.
-    const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);
-    for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {
-      const t1 = triangles[i] * 2;
-      const t2 = triangles[i + 1] * 2;
-      const t3 = triangles[i + 2] * 2;
-      const x1 = points[t1];
-      const y1 = points[t1 + 1];
-      const x2 = points[t2];
-      const y2 = points[t2 + 1];
-      const x3 = points[t3];
-      const y3 = points[t3 + 1];
-
-      const dx = x2 - x1;
-      const dy = y2 - y1;
-      const ex = x3 - x1;
-      const ey = y3 - y1;
-      const ab = (dx * ey - dy * ex) * 2;
-
-      if (Math.abs(ab) < 1e-9) {
-        // For a degenerate triangle, the circumcenter is at the infinity, in a
-        // direction orthogonal to the halfedge and away from the “center” of
-        // the diagram <bx, by>, defined as the hull’s barycenter.
-        if (bx === undefined) {
-          bx = by = 0;
-          for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];
-          bx /= hull.length, by /= hull.length;
-        }
-        const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);
-        x = (x1 + x3) / 2 - a * ey;
-        y = (y1 + y3) / 2 + a * ex;
-      } else {
-        const d = 1 / ab;
-        const bl = dx * dx + dy * dy;
-        const cl = ex * ex + ey * ey;
-        x = x1 + (ey * bl - dy * cl) * d;
-        y = y1 + (dx * cl - ex * bl) * d;
-      }
-      circumcenters[j] = x;
-      circumcenters[j + 1] = y;
-    }
-
-    // Compute exterior cell rays.
-    let h = hull[hull.length - 1];
-    let p0, p1 = h * 4;
-    let x0, x1 = points[2 * h];
-    let y0, y1 = points[2 * h + 1];
-    vectors.fill(0);
-    for (let i = 0; i < hull.length; ++i) {
-      h = hull[i];
-      p0 = p1, x0 = x1, y0 = y1;
-      p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];
-      vectors[p0 + 2] = vectors[p1] = y0 - y1;
-      vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;
-    }
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;
-    if (hull.length <= 1) return null;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = Math.floor(i / 3) * 2;
-      const tj = Math.floor(j / 3) * 2;
-      const xi = circumcenters[ti];
-      const yi = circumcenters[ti + 1];
-      const xj = circumcenters[tj];
-      const yj = circumcenters[tj + 1];
-      this._renderSegment(xi, yi, xj, yj, context);
-    }
-    let h0, h1 = hull[hull.length - 1];
-    for (let i = 0; i < hull.length; ++i) {
-      h0 = h1, h1 = hull[i];
-      const t = Math.floor(inedges[h1] / 3) * 2;
-      const x = circumcenters[t];
-      const y = circumcenters[t + 1];
-      const v = h0 * 4;
-      const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);
-      if (p) this._renderSegment(x, y, p[0], p[1], context);
-    }
-    return buffer && buffer.value();
-  }
-  renderBounds(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);
-    return buffer && buffer.value();
-  }
-  renderCell(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const points = this._clip(i);
-    if (points === null || !points.length) return;
-    context.moveTo(points[0], points[1]);
-    let n = points.length;
-    while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;
-    for (let i = 2; i < n; i += 2) {
-      if (points[i] !== points[i-2] || points[i+1] !== points[i-1])
-        context.lineTo(points[i], points[i + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *cellPolygons() {
-    const {delaunay: {points}} = this;
-    for (let i = 0, n = points.length / 2; i < n; ++i) {
-      const cell = this.cellPolygon(i);
-      if (cell) cell.index = i, yield cell;
-    }
-  }
-  cellPolygon(i) {
-    const polygon = new Polygon;
-    this.renderCell(i, polygon);
-    return polygon.value();
-  }
-  _renderSegment(x0, y0, x1, y1, context) {
-    let S;
-    const c0 = this._regioncode(x0, y0);
-    const c1 = this._regioncode(x1, y1);
-    if (c0 === 0 && c1 === 0) {
-      context.moveTo(x0, y0);
-      context.lineTo(x1, y1);
-    } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {
-      context.moveTo(S[0], S[1]);
-      context.lineTo(S[2], S[3]);
-    }
-  }
-  contains(i, x, y) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return false;
-    return this.delaunay._step(i, x, y) === i;
-  }
-  *neighbors(i) {
-    const ci = this._clip(i);
-    if (ci) for (const j of this.delaunay.neighbors(i)) {
-      const cj = this._clip(j);
-      // find the common edge
-      if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {
-        for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {
-          if (ci[ai] === cj[aj]
-              && ci[ai + 1] === cj[aj + 1]
-              && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]
-              && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {
-            yield j;
-            break loop;
-          }
-        }
-      }
-    }
-  }
-  _cell(i) {
-    const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;
-    const e0 = inedges[i];
-    if (e0 === -1) return null; // coincident point
-    const points = [];
-    let e = e0;
-    do {
-      const t = Math.floor(e / 3);
-      points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-    } while (e !== e0 && e !== -1);
-    return points;
-  }
-  _clip(i) {
-    // degenerate case (1 valid point: return the box)
-    if (i === 0 && this.delaunay.hull.length === 1) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    const points = this._cell(i);
-    if (points === null) return null;
-    const {vectors: V} = this;
-    const v = i * 4;
-    return this._simplify(V[v] || V[v + 1]
-        ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])
-        : this._clipFinite(i, points));
-  }
-  _clipFinite(i, points) {
-    const n = points.length;
-    let P = null;
-    let x0, y0, x1 = points[n - 2], y1 = points[n - 1];
-    let c0, c1 = this._regioncode(x1, y1);
-    let e0, e1 = 0;
-    for (let j = 0; j < n; j += 2) {
-      x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];
-      c0 = c1, c1 = this._regioncode(x1, y1);
-      if (c0 === 0 && c1 === 0) {
-        e0 = e1, e1 = 0;
-        if (P) P.push(x1, y1);
-        else P = [x1, y1];
-      } else {
-        let S, sx0, sy0, sx1, sy1;
-        if (c0 === 0) {
-          if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;
-          [sx0, sy0, sx1, sy1] = S;
-        } else {
-          if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;
-          [sx1, sy1, sx0, sy0] = S;
-          e0 = e1, e1 = this._edgecode(sx0, sy0);
-          if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-          if (P) P.push(sx0, sy0);
-          else P = [sx0, sy0];
-        }
-        e0 = e1, e1 = this._edgecode(sx1, sy1);
-        if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-        if (P) P.push(sx1, sy1);
-        else P = [sx1, sy1];
-      }
-    }
-    if (P) {
-      e0 = e1, e1 = this._edgecode(P[0], P[1]);
-      if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    return P;
-  }
-  _clipSegment(x0, y0, x1, y1, c0, c1) {
-    // for more robustness, always consider the segment in the same order
-    const flip = c0 < c1;
-    if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];
-    while (true) {
-      if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];
-      if (c0 & c1) return null;
-      let x, y, c = c0 || c1;
-      if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;
-      else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;
-      else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;
-      else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;
-      if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);
-      else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);
-    }
-  }
-  _clipInfinite(i, points, vx0, vy0, vxn, vyn) {
-    let P = Array.from(points), p;
-    if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);
-    if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);
-    if (P = this._clipFinite(i, P)) {
-      for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {
-        c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);
-        if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;
-      }
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];
-    }
-    return P;
-  }
-  _edge(i, e0, e1, P, j) {
-    while (e0 !== e1) {
-      let x, y;
-      switch (e0) {
-        case 0b0101: e0 = 0b0100; continue; // top-left
-        case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top
-        case 0b0110: e0 = 0b0010; continue; // top-right
-        case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right
-        case 0b1010: e0 = 0b1000; continue; // bottom-right
-        case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom
-        case 0b1001: e0 = 0b0001; continue; // bottom-left
-        case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left
-      }
-      // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are
-      // undefined, the conditional statement will be executed.
-      if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {
-        P.splice(j, 0, x, y), j += 2;
-      }
-    }
-    return j;
-  }
-  _project(x0, y0, vx, vy) {
-    let t = Infinity, c, x, y;
-    if (vy < 0) { // top
-      if (y0 <= this.ymin) return null;
-      if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;
-    } else if (vy > 0) { // bottom
-      if (y0 >= this.ymax) return null;
-      if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;
-    }
-    if (vx > 0) { // right
-      if (x0 >= this.xmax) return null;
-      if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;
-    } else if (vx < 0) { // left
-      if (x0 <= this.xmin) return null;
-      if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;
-    }
-    return [x, y];
-  }
-  _edgecode(x, y) {
-    return (x === this.xmin ? 0b0001
-        : x === this.xmax ? 0b0010 : 0b0000)
-        | (y === this.ymin ? 0b0100
-        : y === this.ymax ? 0b1000 : 0b0000);
-  }
-  _regioncode(x, y) {
-    return (x < this.xmin ? 0b0001
-        : x > this.xmax ? 0b0010 : 0b0000)
-        | (y < this.ymin ? 0b0100
-        : y > this.ymax ? 0b1000 : 0b0000);
-  }
-  _simplify(P) {
-    if (P && P.length > 4) {
-      for (let i = 0; i < P.length; i+= 2) {
-        const j = (i + 2) % P.length, k = (i + 4) % P.length;
-        if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {
-          P.splice(j, 2), i -= 2;
-        }
-      }
-      if (!P.length) P = null;
-    }
-    return P;
-  }
-}
Index: de_modules/d3-dispatch/LICENSE
===================================================================
--- node_modules/d3-dispatch/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-dispatch/README.md
===================================================================
--- node_modules/d3-dispatch/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-# d3-dispatch
-
-Dispatching is a convenient mechanism for separating concerns with loosely-coupled code: register named callbacks and then call them with arbitrary arguments. A variety of D3 components, such as [d3-drag](https://github.com/d3/d3-drag), use this mechanism to emit events to listeners. Think of this like Node’s [EventEmitter](https://nodejs.org/api/events.html), except every listener has a well-defined name so it’s easy to remove or replace them.
-
-For example, to create a dispatch for *start* and *end* events:
-
-```js
-const dispatch = d3.dispatch("start", "end");
-```
-
-You can then register callbacks for these events using [*dispatch*.on](#dispatch_on):
-
-```js
-dispatch.on("start", callback1);
-dispatch.on("start.foo", callback2);
-dispatch.on("end", callback3);
-```
-
-Then, you can invoke all the *start* callbacks using [*dispatch*.call](#dispatch_call) or [*dispatch*.apply](#dispatch_apply):
-
-```js
-dispatch.call("start");
-```
-
-Like *function*.call, you may also specify the `this` context and any arguments:
-
-```js
-dispatch.call("start", {about: "I am a context object"}, "I am an argument");
-```
-
-Want a more involved example? See how to use [d3-dispatch for coordinated views](http://bl.ocks.org/mbostock/5872848).
-
-## Installing
-
-If you use npm, `npm install d3-dispatch`. You can also download the [latest release on GitHub](https://github.com/d3/d3-dispatch/releases/latest). For vanilla HTML in modern browsers, import d3-dispatch from Skypack:
-
-```html
-<script type="module">
-
-import {dispatch} from "https://cdn.skypack.dev/d3-dispatch@3";
-
-const d = dispatch("start", "end");
-
-</script>
-```
-
-For legacy environments, you can load d3-dispatch’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script>
-
-const d = d3.dispatch("start", "end");
-
-</script>
-```
-
-[Try d3-dispatch in your browser.](https://observablehq.com/collection/@d3/d3-dispatch)
-
-## API Reference
-
-<a name="dispatch" href="#dispatch">#</a> d3.<b>dispatch</b>(<i>types…</i>) · [Source](https://github.com/d3/d3-dispatch/blob/master/src/dispatch.js)
-
-Creates a new dispatch for the specified event *types*. Each *type* is a string, such as `"start"` or `"end"`.
-
-<a name="dispatch_on" href="#dispatch_on">#</a> *dispatch*.<b>on</b>(<i>typenames</i>[, <i>callback</i>]) · [Source](https://github.com/d3/d3-dispatch/blob/master/src/dispatch.js)
-
-Adds, removes or gets the *callback* for the specified *typenames*. If a *callback* function is specified, it is registered for the specified (fully-qualified) *typenames*. If a callback was already registered for the given *typenames*, the existing callback is removed before the new callback is added.
-
-The specified *typenames* is a string, such as `start` or `end.foo`. The type may be optionally followed by a period (`.`) and a name; the optional name allows multiple callbacks to be registered to receive events of the same type, such as `start.foo` and `start.bar`. To specify multiple typenames, separate typenames with spaces, such as `start end` or `start.foo start.bar`.
-
-To remove all callbacks for a given name `foo`, say `dispatch.on(".foo", null)`.
-
-If *callback* is not specified, returns the current callback for the specified *typenames*, if any. If multiple typenames are specified, the first matching callback is returned.
-
-<a name="dispatch_copy" href="#dispatch_copy">#</a> *dispatch*.<b>copy</b>() · [Source](https://github.com/d3/d3-dispatch/blob/master/src/dispatch.js)
-
-Returns a copy of this dispatch object. Changes to this dispatch do not affect the returned copy and <i>vice versa</i>.
-
-<a name="dispatch_call" href="#dispatch_call">#</a> *dispatch*.<b>call</b>(<i>type</i>[, <i>that</i>[, <i>arguments…</i>]]) · [Source](https://github.com/d3/d3-dispatch/blob/master/src/dispatch.js)
-
-Like [*function*.call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call), invokes each registered callback for the specified *type*, passing the callback the specified *arguments*, with *that* as the `this` context. See [*dispatch*.apply](#dispatch_apply) for more information.
-
-<a name="dispatch_apply" href="#dispatch_apply">#</a> *dispatch*.<b>apply</b>(<i>type</i>[, <i>that</i>[, <i>arguments</i>]]) · [Source](https://github.com/d3/d3-dispatch/blob/master/src/dispatch.js)
-
-Like [*function*.apply](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call), invokes each registered callback for the specified *type*, passing the callback the specified *arguments*, with *that* as the `this` context. For example, if you wanted to dispatch your *custom* callbacks after handling a native *click* event, while preserving the current `this` context and arguments, you could say:
-
-```js
-selection.on("click", function() {
-  dispatch.apply("custom", this, arguments);
-});
-```
-
-You can pass whatever arguments you want to callbacks; most commonly, you might create an object that represents an event, or pass the current datum (*d*) and index (*i*). See [function.call](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call) and [function.apply](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply) for further information.
Index: de_modules/d3-dispatch/dist/d3-dispatch.js
===================================================================
--- node_modules/d3-dispatch/dist/d3-dispatch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-// https://d3js.org/d3-dispatch/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-var noop = {value: () => {}};
-
-function dispatch() {
-  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
-    if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
-    _[t] = [];
-  }
-  return new Dispatch(_);
-}
-
-function Dispatch(_) {
-  this._ = _;
-}
-
-function parseTypenames(typenames, types) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
-    return {type: t, name: name};
-  });
-}
-
-Dispatch.prototype = dispatch.prototype = {
-  constructor: Dispatch,
-  on: function(typename, callback) {
-    var _ = this._,
-        T = parseTypenames(typename + "", _),
-        t,
-        i = -1,
-        n = T.length;
-
-    // If no callback was specified, return the callback of the given type and name.
-    if (arguments.length < 2) {
-      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
-      return;
-    }
-
-    // If a type was specified, set the callback for the given type and name.
-    // Otherwise, if a null callback was specified, remove callbacks of the given name.
-    if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
-    while (++i < n) {
-      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
-      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
-    }
-
-    return this;
-  },
-  copy: function() {
-    var copy = {}, _ = this._;
-    for (var t in _) copy[t] = _[t].slice();
-    return new Dispatch(copy);
-  },
-  call: function(type, that) {
-    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  },
-  apply: function(type, that, args) {
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  }
-};
-
-function get(type, name) {
-  for (var i = 0, n = type.length, c; i < n; ++i) {
-    if ((c = type[i]).name === name) {
-      return c.value;
-    }
-  }
-}
-
-function set(type, name, callback) {
-  for (var i = 0, n = type.length; i < n; ++i) {
-    if (type[i].name === name) {
-      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
-      break;
-    }
-  }
-  if (callback != null) type.push({name: name, value: callback});
-  return type;
-}
-
-exports.dispatch = dispatch;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-dispatch/dist/d3-dispatch.min.js
===================================================================
--- node_modules/d3-dispatch/dist/d3-dispatch.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-dispatch/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";var e={value:()=>{}};function t(){for(var n,e=0,t=arguments.length,o={};e<t;++e){if(!(n=arguments[e]+"")||n in o||/[\s.]/.test(n))throw new Error("illegal type: "+n);o[n]=[]}return new r(o)}function r(n){this._=n}function o(n,e){return n.trim().split(/^|\s+/).map((function(n){var t="",r=n.indexOf(".");if(r>=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function i(n,e){for(var t,r=0,o=n.length;r<o;++r)if((t=n[r]).name===e)return t.value}function f(n,t,r){for(var o=0,i=n.length;o<i;++o)if(n[o].name===t){n[o]=e,n=n.slice(0,o).concat(n.slice(o+1));break}return null!=r&&n.push({name:t,value:r}),n}r.prototype=t.prototype={constructor:r,on:function(n,e){var t,r=this._,l=o(n+"",r),a=-1,u=l.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<u;)if(t=(n=l[a]).type)r[t]=f(r[t],n.name,e);else if(null==e)for(t in r)r[t]=f(r[t],n.name,null);return this}for(;++a<u;)if((t=(n=l[a]).type)&&(t=i(r[t],n.name)))return t},copy:function(){var n={},e=this._;for(var t in e)n[t]=e[t].slice();return new r(n)},call:function(n,e){if((t=arguments.length-2)>0)for(var t,r,o=new Array(t),i=0;i<t;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(i=0,t=(r=this._[n]).length;i<t;++i)r[i].value.apply(e,o)},apply:function(n,e,t){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],o=0,i=r.length;o<i;++o)r[o].value.apply(e,t)}},n.dispatch=t,Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-dispatch/package.json
===================================================================
--- node_modules/d3-dispatch/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-{
-  "name": "d3-dispatch",
-  "version": "3.0.1",
-  "description": "Register named callbacks and call them with arguments.",
-  "homepage": "https://d3js.org/d3-dispatch/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-dispatch.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "event",
-    "listener",
-    "dispatch"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-dispatch.min.js",
-  "unpkg": "dist/d3-dispatch.min.js",
-  "exports": {
-    "umd": "./dist/d3-dispatch.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-dispatch/src/dispatch.js
===================================================================
--- node_modules/d3-dispatch/src/dispatch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-var noop = {value: () => {}};
-
-function dispatch() {
-  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
-    if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
-    _[t] = [];
-  }
-  return new Dispatch(_);
-}
-
-function Dispatch(_) {
-  this._ = _;
-}
-
-function parseTypenames(typenames, types) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
-    return {type: t, name: name};
-  });
-}
-
-Dispatch.prototype = dispatch.prototype = {
-  constructor: Dispatch,
-  on: function(typename, callback) {
-    var _ = this._,
-        T = parseTypenames(typename + "", _),
-        t,
-        i = -1,
-        n = T.length;
-
-    // If no callback was specified, return the callback of the given type and name.
-    if (arguments.length < 2) {
-      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
-      return;
-    }
-
-    // If a type was specified, set the callback for the given type and name.
-    // Otherwise, if a null callback was specified, remove callbacks of the given name.
-    if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
-    while (++i < n) {
-      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
-      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
-    }
-
-    return this;
-  },
-  copy: function() {
-    var copy = {}, _ = this._;
-    for (var t in _) copy[t] = _[t].slice();
-    return new Dispatch(copy);
-  },
-  call: function(type, that) {
-    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  },
-  apply: function(type, that, args) {
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  }
-};
-
-function get(type, name) {
-  for (var i = 0, n = type.length, c; i < n; ++i) {
-    if ((c = type[i]).name === name) {
-      return c.value;
-    }
-  }
-}
-
-function set(type, name, callback) {
-  for (var i = 0, n = type.length; i < n; ++i) {
-    if (type[i].name === name) {
-      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
-      break;
-    }
-  }
-  if (callback != null) type.push({name: name, value: callback});
-  return type;
-}
-
-export default dispatch;
Index: de_modules/d3-dispatch/src/index.js
===================================================================
--- node_modules/d3-dispatch/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {default as dispatch} from "./dispatch.js";
Index: de_modules/d3-drag/LICENSE
===================================================================
--- node_modules/d3-drag/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-drag/README.md
===================================================================
--- node_modules/d3-drag/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,248 +1,0 @@
-# d3-drag
-
-[Drag-and-drop](https://en.wikipedia.org/wiki/Drag_and_drop) is a popular and easy-to-learn pointing gesture: move the pointer to an object, press and hold to grab it, “drag” the object to a new location, and release to “drop”. D3’s [drag behavior](#api-reference) provides a convenient but flexible abstraction for enabling drag-and-drop interaction on [selections](https://github.com/d3/d3-selection). For example, you can use d3-drag to facilitate interaction with a [force-directed graph](https://github.com/d3/d3-force), or a simulation of colliding circles:
-
-[<img alt="Force-Directed Graph" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/force-graph.png" width="420" height="219">](https://observablehq.com/@d3/force-directed-graph)[<img alt="Force Dragging II" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/force-collide.png" width="420" height="219">](https://observablehq.com/d/c55a5839a5bb7c73)
-
-You can also use d3-drag to implement custom user interface elements, such as a slider. But the drag behavior isn’t just for moving elements around; there are a variety of ways to respond to a drag gesture. For example, you can use it to lasso elements in a scatterplot, or to paint lines on a canvas:
-
-[<img alt="Line Drawing" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/drawing.png" width="420" height="219">](https://observablehq.com/@d3/draw-me)
-
-The drag behavior can be combined with other behaviors, such as [d3-zoom](https://github.com/d3/d3-zoom) for zooming.
-
-[<img alt="Drag & Zoom II" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/dots.png" width="420" height="219">](https://observablehq.com/@d3/drag-zoom)
-
-The drag behavior is agnostic about the DOM, so you can use it with SVG, HTML or even Canvas! And you can extend it with advanced selection techniques, such as a Voronoi overlay or a closest-target search:
-
-[<img alt="Circle Dragging IV" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/voronoi.png" width="420" height="219">](https://observablehq.com/@d3/circle-dragging-iii)[<img alt="Circle Dragging II" src="https://raw.githubusercontent.com/d3/d3-drag/master/img/canvas.png" width="420" height="219">](https://observablehq.com/@d3/circle-dragging-ii)
-
-Best of all, the drag behavior automatically unifies mouse and touch input, and avoids browser idiosyncrasies. When [Pointer Events](https://www.w3.org/TR/pointerevents/) are more widely available, the drag behavior will support those, too.
-
-## Installing
-
-If you use npm, `npm install d3-drag`. You can also download the [latest release on GitHub](https://github.com/d3/d3-drag/releases/latest). For vanilla HTML in modern browsers, import d3-drag from Skypack:
-
-```html
-<script type="module">
-
-import {drag} from "https://cdn.skypack.dev/d3-drag@3";
-
-const handler = drag();
-
-</script>
-```
-
-For legacy environments, you can load d3-drag’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-selection@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-drag@3"></script>
-<script>
-
-const handler = d3.drag();
-
-</script>
-```
-
-[Try d3-drag in your browser.](https://observablehq.com/collection/@d3/d3-drag)
-
-## API Reference
-
-This table describes how the drag behavior interprets native events:
-
-| Event        | Listening Element | Drag Event | Default Prevented? |
-| ------------ | ----------------- | ---------- | ------------------ |
-| mousedown⁵   | selection         | start      | no¹                |
-| mousemove²   | window¹           | drag       | yes                |
-| mouseup²     | window¹           | end        | yes                |
-| dragstart²   | window            | -          | yes                |
-| selectstart² | window            | -          | yes                |
-| click³       | window            | -          | yes                |
-| touchstart   | selection         | start      | no⁴                |
-| touchmove    | selection         | drag       | yes                |
-| touchend     | selection         | end        | no⁴                |
-| touchcancel  | selection         | end        | no⁴                |
-
-The propagation of all consumed events is [immediately stopped](https://dom.spec.whatwg.org/#dom-event-stopimmediatepropagation). If you want to prevent some events from initiating a drag gesture, use [*drag*.filter](#drag_filter).
-
-¹ Necessary to capture events outside an iframe; see [#9](https://github.com/d3/d3-drag/issues/9).
-<br>² Only applies during an active, mouse-based gesture; see [#9](https://github.com/d3/d3-drag/issues/9).
-<br>³ Only applies immediately after some mouse-based gestures; see [*drag*.clickDistance](#drag_clickDistance).
-<br>⁴ Necessary to allow [click emulation](https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7) on touch input; see [#9](https://github.com/d3/d3-drag/issues/9).
-<br>⁵ Ignored if within 500ms of a touch gesture ending; assumes [click emulation](https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7).
-
-<a href="#drag" name="drag">#</a> d3.<b>drag</b>() · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/collection/@d3/d3-drag)
-
-Creates a new drag behavior. The returned behavior, [*drag*](#_drag), is both an object and a function, and is typically applied to selected elements via [*selection*.call](https://github.com/d3/d3-selection#selection_call).
-
-<a href="#_drag" name="_drag">#</a> <i>drag</i>(<i>selection</i>) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/collection/@d3/d3-drag)
-
-Applies this drag behavior to the specified [*selection*](https://github.com/d3/d3-selection). This function is typically not invoked directly, and is instead invoked via [*selection*.call](https://github.com/d3/d3-selection#selection_call). For example, to instantiate a drag behavior and apply it to a selection:
-
-```js
-d3.selectAll(".node").call(d3.drag().on("start", started));
-```
-
-Internally, the drag behavior uses [*selection*.on](https://github.com/d3/d3-selection#selection_on) to bind the necessary event listeners for dragging. The listeners use the name `.drag`, so you can subsequently unbind the drag behavior as follows:
-
-```js
-selection.on(".drag", null);
-```
-
-Applying the drag behavior also sets the [-webkit-tap-highlight-color](https://developer.apple.com/library/mac/documentation/AppleApplications/Reference/SafariWebContent/AdjustingtheTextSize/AdjustingtheTextSize.html#//apple_ref/doc/uid/TP40006510-SW5) style to transparent, disabling the tap highlight on iOS. If you want a different tap highlight color, remove or re-apply this style after applying the drag behavior.
-
-<a href="#drag_container" name="drag_container">#</a> <i>drag</i>.<b>container</b>([<i>container</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/collection/@d3/d3-drag)
-
-If *container* is specified, sets the container accessor to the specified object or function and returns the drag behavior. If *container* is not specified, returns the current container accessor, which defaults to:
-
-```js
-function container() {
-  return this.parentNode;
-}
-```
-
-The *container* of a drag gesture determines the coordinate system of subsequent [drag events](#drag-events), affecting *event*.x and *event*.y. The element returned by the container accessor is subsequently passed to [d3.pointer](https://github.com/d3/d3-selection#pointer) to determine the local coordinates of the pointer.
-
-The default container accessor returns the parent node of the element in the originating selection (see [*drag*](#_drag)) that received the initiating input event. This is often appropriate when dragging SVG or HTML elements, since those elements are typically positioned relative to a parent. For dragging graphical elements with a Canvas, however, you may want to redefine the container as the initiating element itself:
-
-```js
-function container() {
-  return this;
-}
-```
-
-Alternatively, the container may be specified as the element directly, such as `drag.container(canvas)`.
-
-
-<a href="#drag_filter" name="drag_filter">#</a> <i>drag</i>.<b>filter</b>([<i>filter</i>])  · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/d/c55a5839a5bb7c73)
-
-If *filter* is specified, sets the event filter to the specified function and returns the drag behavior. If *filter* is not specified, returns the current filter, which defaults to:
-
-```js
-function filter(event) {
-  return !event.ctrlKey && !event.button;
-}
-```
-
-If the filter returns falsey, the initiating event is ignored and no drag gestures are started. Thus, the filter determines which input events are ignored; the default filter ignores mousedown events on secondary buttons, since those buttons are typically intended for other purposes, such as the context menu.
-
-<a href="#drag_touchable" name="drag_touchable">#</a> <i>drag</i>.<b>touchable</b>([<i>touchable</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/d/c55a5839a5bb7c73)
-
-If *touchable* is specified, sets the touch support detector to the specified function and returns the drag behavior. If *touchable* is not specified, returns the current touch support detector, which defaults to:
-
-```js
-function touchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-```
-
-Touch event listeners are only registered if the detector returns truthy for the corresponding element when the drag behavior is [applied](#_drag). The default detector works well for most browsers that are capable of touch input, but not all; Chrome’s mobile device emulator, for example, fails detection.
-
-<a href="#drag_subject" name="drag_subject">#</a> <i>drag</i>.<b>subject</b>([<i>subject</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js), [Examples](https://observablehq.com/collection/@d3/d3-drag)
-
-If *subject* is specified, sets the subject accessor to the specified object or function and returns the drag behavior. If *subject* is not specified, returns the current subject accessor, which defaults to:
-
-```js
-function subject(event, d) {
-  return d == null ? {x: event.x, y: event.y} : d;
-}
-```
-
-The *subject* of a drag gesture represents *the thing being dragged*. It is computed when an initiating input event is received, such as a mousedown or touchstart, immediately before the drag gesture starts. The subject is then exposed as *event*.subject on subsequent [drag events](#drag-events) for this gesture.
-
-The default subject is the [datum](https://github.com/d3/d3-selection#selection_datum) of the element in the originating selection (see [*drag*](#_drag)) that received the initiating input event; if this datum is undefined, an object representing the coordinates of the pointer is created. When dragging circle elements in SVG, the default subject is thus the datum of the circle being dragged. With [Canvas](https://html.spec.whatwg.org/multipage/scripting.html#the-canvas-element), the default subject is the canvas element’s datum (regardless of where on the canvas you click). In this case, a custom subject accessor would be more appropriate, such as one that picks the closest circle to the mouse within a given search *radius*:
-
-```js
-function subject(event) {
-  let n = circles.length,
-      i,
-      dx,
-      dy,
-      d2,
-      s2 = radius * radius,
-      circle,
-      subject;
-
-  for (i = 0; i < n; ++i) {
-    circle = circles[i];
-    dx = event.x - circle.x;
-    dy = event.y - circle.y;
-    d2 = dx * dx + dy * dy;
-    if (d2 < s2) subject = circle, s2 = d2;
-  }
-
-  return subject;
-}
-```
-
-(If necessary, the above can be accelerated using [*quadtree*.find](https://github.com/d3/d3-quadtree/blob/master/README.md#quadtree_find),  [*simulation*.find](https://github.com/d3/d3-force/blob/master/README.md#simulation_find) or [*delaunay*.find](https://github.com/d3/d3-delaunay/blob/master/README.md#delaunay_find).)
-
-The returned subject should be an object that exposes `x` and `y` properties, so that the relative position of the subject and the pointer can be preserved during the drag gesture. If the subject is null or undefined, no drag gesture is started for this pointer; however, other starting touches may yet start drag gestures. See also [*drag*.filter](#drag_filter).
-
-The subject of a drag gesture may not be changed after the gesture starts. The subject accessor is invoked with the same context and arguments as [*selection*.on](https://github.com/d3/d3-selection#selection_on) listeners: the current event (`event`) and datum `d`, with the `this` context as the current DOM element. During the evaluation of the subject accessor, `event` is a beforestart [drag event](#drag-events). Use *event*.sourceEvent to access the initiating input event and *event*.identifier to access the touch identifier. The *event*.x and *event*.y are relative to the [container](#drag_container), and are computed using [d3.pointer](https://github.com/d3/d3-selection#pointer).
-
-<a href="#drag_clickDistance" name="drag_clickDistance">#</a> <i>drag</i>.<b>clickDistance</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js)
-
-If *distance* is specified, sets the maximum distance that the mouse can move between mousedown and mouseup that will trigger a subsequent click event. If at any point between mousedown and mouseup the mouse is greater than or equal to *distance* from its position on mousedown, the click event following mouseup will be suppressed. If *distance* is not specified, returns the current distance threshold, which defaults to zero. The distance threshold is measured in client coordinates ([*event*.clientX](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX) and [*event*.clientY](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY)).
-
-<a href="#drag_on" name="drag_on">#</a> <i>drag</i>.<b>on</b>(<i>typenames</i>, [<i>listener</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/drag.js)
-
-If *listener* is specified, sets the event *listener* for the specified *typenames* and returns the drag behavior. If an event listener was already registered for the same type and name, the existing listener is removed before the new listener is added. If *listener* is null, removes the current event listeners for the specified *typenames*, if any. If *listener* is not specified, returns the first currently-assigned listener matching the specified *typenames*, if any. When a specified event is dispatched, each *listener* will be invoked with the same context and arguments as [*selection*.on](https://github.com/d3/d3-selection#selection_on) listeners: the current event (`event`) and datum `d`, with the `this` context as the current DOM element.
-
-The *typenames* is a string containing one or more *typename* separated by whitespace. Each *typename* is a *type*, optionally followed by a period (`.`) and a *name*, such as `drag.foo` and `drag.bar`; the name allows multiple listeners to be registered for the same *type*. The *type* must be one of the following:
-
-* `start` - after a new pointer becomes active (on mousedown or touchstart).
-* `drag` - after an active pointer moves (on mousemove or touchmove).
-* `end` - after an active pointer becomes inactive (on mouseup, touchend or touchcancel).
-
-See [*dispatch*.on](https://github.com/d3/d3-dispatch#dispatch_on) for more.
-
-Changes to registered listeners via *drag*.on during a drag gesture *do not affect* the current drag gesture. Instead, you must use [*event*.on](#event_on), which also allows you to register temporary event listeners for the current drag gesture. **Separate events are dispatched for each active pointer** during a drag gesture. For example, if simultaneously dragging multiple subjects with multiple fingers, a start event is dispatched for each finger, even if both fingers start touching simultaneously. See [Drag Events](#drag-events) for more.
-
-<a href="#dragDisable" name="dragDisable">#</a> d3.<b>dragDisable</b>(<i>window</i>) · [Source](https://github.com/d3/d3-drag/blob/master/src/nodrag.js)
-
-Prevents native drag-and-drop and text selection on the specified *window*. As an alternative to preventing the default action of mousedown events (see [#9](https://github.com/d3/d3-drag/issues/9)), this method prevents undesirable default actions following mousedown. In supported browsers, this means capturing dragstart and selectstart events, preventing the associated default actions, and immediately stopping their propagation. In browsers that do not support selection events, the user-select CSS property is set to none on the document element. This method is intended to be called on mousedown, followed by [d3.dragEnable](#dragEnable) on mouseup.
-
-<a href="#dragEnable" name="dragEnable">#</a> d3.<b>dragEnable</b>(<i>window</i>[, <i>noclick</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/nodrag.js)
-
-Allows native drag-and-drop and text selection on the specified *window*; undoes the effect of [d3.dragDisable](#dragDisable). This method is intended to be called on mouseup, preceded by [d3.dragDisable](#dragDisable) on mousedown. If *noclick* is true, this method also temporarily suppresses click events. The suppression of click events expires after a zero-millisecond timeout, such that it only suppress the click event that would immediately follow the current mouseup event, if any.
-
-### Drag Events
-
-When a [drag event listener](#drag_on) is invoked, it receives the current drag event as its first argument. The *event* object exposes several fields:
-
-* `target` - the associated [drag behavior](#drag).
-* `type` - the string “start”, “drag” or “end”; see [*drag*.on](#drag_on).
-* `subject` - the drag subject, defined by [*drag*.subject](#drag_subject).
-* `x` - the new *x*-coordinate of the subject; see [*drag*.container](#drag_container).
-* `y` - the new *y*-coordinate of the subject; see [*drag*.container](#drag_container).
-* `dx` - the change in *x*-coordinate since the previous drag event.
-* `dy` - the change in *y*-coordinate since the previous drag event.
-* `identifier` - the string “mouse”, or a numeric [touch identifier](https://www.w3.org/TR/touch-events/#widl-Touch-identifier).
-* `active` - the number of currently active drag gestures (on start and end, not including this one).
-* `sourceEvent` - the underlying input event, such as mousemove or touchmove.
-
-The *event*.active field is useful for detecting the first start event and the last end event in a sequence of concurrent drag gestures: it is zero when the first drag gesture starts, and zero when the last drag gesture ends.
-
-The *event* object also exposes the [*event*.on](#event_on) method.
-
-<a href="#event_on" name="event_on">#</a> <i>event</i>.<b>on</b>(<i>typenames</i>, [<i>listener</i>]) · [Source](https://github.com/d3/d3-drag/blob/master/src/event.js)
-
-Equivalent to [*drag*.on](#drag_on), but only applies to the current drag gesture. Before the drag gesture starts, a [copy](https://github.com/d3/d3-dispatch#dispatch_copy) of the current drag [event listeners](#drag_on) is made. This copy is bound to the current drag gesture and modified by *event*.on. This is useful for temporary listeners that only receive events for the current drag gesture. For example, this start event listener registers temporary drag and end event listeners as closures:
-
-```js
-function started(event) {
-  const circle = d3.select(this).classed("dragging", true);
-
-  event.on("drag", dragged).on("end", ended);
-
-  function dragged(event, d) {
-    circle.raise().attr("cx", d.x = event.x).attr("cy", d.y = event.y);
-  }
-
-  function ended() {
-    circle.classed("dragging", false);
-  }
-}
-```
Index: de_modules/d3-drag/dist/d3-drag.js
===================================================================
--- node_modules/d3-drag/dist/d3-drag.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,273 +1,0 @@
-// https://d3js.org/d3-drag/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-dispatch'), require('d3-selection')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-dispatch', 'd3-selection'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3));
-}(this, (function (exports, d3Dispatch, d3Selection) { 'use strict';
-
-// These are typically used in conjunction with noevent to ensure that we can
-// preventDefault on the event.
-const nonpassive = {passive: false};
-const nonpassivecapture = {capture: true, passive: false};
-
-function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-function nodrag(view) {
-  var root = view.document.documentElement,
-      selection = d3Selection.select(view).on("dragstart.drag", noevent, nonpassivecapture);
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", noevent, nonpassivecapture);
-  } else {
-    root.__noselect = root.style.MozUserSelect;
-    root.style.MozUserSelect = "none";
-  }
-}
-
-function yesdrag(view, noclick) {
-  var root = view.document.documentElement,
-      selection = d3Selection.select(view).on("dragstart.drag", null);
-  if (noclick) {
-    selection.on("click.drag", noevent, nonpassivecapture);
-    setTimeout(function() { selection.on("click.drag", null); }, 0);
-  }
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", null);
-  } else {
-    root.style.MozUserSelect = root.__noselect;
-    delete root.__noselect;
-  }
-}
-
-var constant = x => () => x;
-
-function DragEvent(type, {
-  sourceEvent,
-  subject,
-  target,
-  identifier,
-  active,
-  x, y, dx, dy,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    subject: {value: subject, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    identifier: {value: identifier, enumerable: true, configurable: true},
-    active: {value: active, enumerable: true, configurable: true},
-    x: {value: x, enumerable: true, configurable: true},
-    y: {value: y, enumerable: true, configurable: true},
-    dx: {value: dx, enumerable: true, configurable: true},
-    dy: {value: dy, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-DragEvent.prototype.on = function() {
-  var value = this._.on.apply(this._, arguments);
-  return value === this._ ? this : value;
-};
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultContainer() {
-  return this.parentNode;
-}
-
-function defaultSubject(event, d) {
-  return d == null ? {x: event.x, y: event.y} : d;
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-function drag() {
-  var filter = defaultFilter,
-      container = defaultContainer,
-      subject = defaultSubject,
-      touchable = defaultTouchable,
-      gestures = {},
-      listeners = d3Dispatch.dispatch("start", "drag", "end"),
-      active = 0,
-      mousedownx,
-      mousedowny,
-      mousemoving,
-      touchending,
-      clickDistance2 = 0;
-
-  function drag(selection) {
-    selection
-        .on("mousedown.drag", mousedowned)
-      .filter(touchable)
-        .on("touchstart.drag", touchstarted)
-        .on("touchmove.drag", touchmoved, nonpassive)
-        .on("touchend.drag touchcancel.drag", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  function mousedowned(event, d) {
-    if (touchending || !filter.call(this, event, d)) return;
-    var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse");
-    if (!gesture) return;
-    d3Selection.select(event.view)
-      .on("mousemove.drag", mousemoved, nonpassivecapture)
-      .on("mouseup.drag", mouseupped, nonpassivecapture);
-    nodrag(event.view);
-    nopropagation(event);
-    mousemoving = false;
-    mousedownx = event.clientX;
-    mousedowny = event.clientY;
-    gesture("start", event);
-  }
-
-  function mousemoved(event) {
-    noevent(event);
-    if (!mousemoving) {
-      var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
-      mousemoving = dx * dx + dy * dy > clickDistance2;
-    }
-    gestures.mouse("drag", event);
-  }
-
-  function mouseupped(event) {
-    d3Selection.select(event.view).on("mousemove.drag mouseup.drag", null);
-    yesdrag(event.view, mousemoving);
-    noevent(event);
-    gestures.mouse("end", event);
-  }
-
-  function touchstarted(event, d) {
-    if (!filter.call(this, event, d)) return;
-    var touches = event.changedTouches,
-        c = container.call(this, event, d),
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {
-        nopropagation(event);
-        gesture("start", event, touches[i]);
-      }
-    }
-  }
-
-  function touchmoved(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        noevent(event);
-        gesture("drag", event, touches[i]);
-      }
-    }
-  }
-
-  function touchended(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        nopropagation(event);
-        gesture("end", event, touches[i]);
-      }
-    }
-  }
-
-  function beforestart(that, container, event, d, identifier, touch) {
-    var dispatch = listeners.copy(),
-        p = d3Selection.pointer(touch || event, container), dx, dy,
-        s;
-
-    if ((s = subject.call(that, new DragEvent("beforestart", {
-        sourceEvent: event,
-        target: drag,
-        identifier,
-        active,
-        x: p[0],
-        y: p[1],
-        dx: 0,
-        dy: 0,
-        dispatch
-      }), d)) == null) return;
-
-    dx = s.x - p[0] || 0;
-    dy = s.y - p[1] || 0;
-
-    return function gesture(type, event, touch) {
-      var p0 = p, n;
-      switch (type) {
-        case "start": gestures[identifier] = gesture, n = active++; break;
-        case "end": delete gestures[identifier], --active; // falls through
-        case "drag": p = d3Selection.pointer(touch || event, container), n = active; break;
-      }
-      dispatch.call(
-        type,
-        that,
-        new DragEvent(type, {
-          sourceEvent: event,
-          subject: s,
-          target: drag,
-          identifier,
-          active: n,
-          x: p[0] + dx,
-          y: p[1] + dy,
-          dx: p[0] - p0[0],
-          dy: p[1] - p0[1],
-          dispatch
-        }),
-        d
-      );
-    };
-  }
-
-  drag.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), drag) : filter;
-  };
-
-  drag.container = function(_) {
-    return arguments.length ? (container = typeof _ === "function" ? _ : constant(_), drag) : container;
-  };
-
-  drag.subject = function(_) {
-    return arguments.length ? (subject = typeof _ === "function" ? _ : constant(_), drag) : subject;
-  };
-
-  drag.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), drag) : touchable;
-  };
-
-  drag.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? drag : value;
-  };
-
-  drag.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
-  };
-
-  return drag;
-}
-
-exports.drag = drag;
-exports.dragDisable = nodrag;
-exports.dragEnable = yesdrag;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-drag/dist/d3-drag.min.js
===================================================================
--- node_modules/d3-drag/dist/d3-drag.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-drag/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-dispatch"),require("d3-selection")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-selection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{},e.d3,e.d3)}(this,(function(e,t,n){"use strict";const o={passive:!1},r={capture:!0,passive:!1};function i(e){e.stopImmediatePropagation()}function a(e){e.preventDefault(),e.stopImmediatePropagation()}function u(e){var t=e.document.documentElement,o=n.select(e).on("dragstart.drag",a,r);"onselectstart"in t?o.on("selectstart.drag",a,r):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function c(e,t){var o=e.document.documentElement,i=n.select(e).on("dragstart.drag",null);t&&(i.on("click.drag",a,r),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in o?i.on("selectstart.drag",null):(o.style.MozUserSelect=o.__noselect,delete o.__noselect)}var l=e=>()=>e;function s(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:u,dx:c,dy:l,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:s}})}function d(e){return!e.ctrlKey&&!e.button}function f(){return this.parentNode}function g(e,t){return null==t?{x:e.x,y:e.y}:t}function h(){return navigator.maxTouchPoints||"ontouchstart"in this}s.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.drag=function(){var e,v,p,b,m=d,y=f,x=g,_=h,w={},T=t.dispatch("start","drag","end"),j=0,E=0;function k(e){e.on("mousedown.drag",M).filter(_).on("touchstart.drag",z).on("touchmove.drag",D,o).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function M(t,o){if(!b&&m.call(this,t,o)){var a=U(this,y.call(this,t,o),t,o,"mouse");a&&(n.select(t.view).on("mousemove.drag",P,r).on("mouseup.drag",q,r),u(t.view),i(t),p=!1,e=t.clientX,v=t.clientY,a("start",t))}}function P(t){if(a(t),!p){var n=t.clientX-e,o=t.clientY-v;p=n*n+o*o>E}w.mouse("drag",t)}function q(e){n.select(e.view).on("mousemove.drag mouseup.drag",null),c(e.view,p),a(e),w.mouse("end",e)}function z(e,t){if(m.call(this,e,t)){var n,o,r=e.changedTouches,a=y.call(this,e,t),u=r.length;for(n=0;n<u;++n)(o=U(this,a,e,t,r[n].identifier,r[n]))&&(i(e),o("start",e,r[n]))}}function D(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=w[o[t].identifier])&&(a(e),n("drag",e,o[t]))}function S(e){var t,n,o=e.changedTouches,r=o.length;for(b&&clearTimeout(b),b=setTimeout((function(){b=null}),500),t=0;t<r;++t)(n=w[o[t].identifier])&&(i(e),n("end",e,o[t]))}function U(e,t,o,r,i,a){var u,c,l,d=T.copy(),f=n.pointer(a||o,t);if(null!=(l=x.call(e,new s("beforestart",{sourceEvent:o,target:k,identifier:i,active:j,x:f[0],y:f[1],dx:0,dy:0,dispatch:d}),r)))return u=l.x-f[0]||0,c=l.y-f[1]||0,function o(a,g,h){var v,p=f;switch(a){case"start":w[i]=o,v=j++;break;case"end":delete w[i],--j;case"drag":f=n.pointer(h||g,t),v=j}d.call(a,e,new s(a,{sourceEvent:g,subject:l,target:k,identifier:i,active:v,x:f[0]+u,y:f[1]+c,dx:f[0]-p[0],dy:f[1]-p[1],dispatch:d}),r)}}return k.filter=function(e){return arguments.length?(m="function"==typeof e?e:l(!!e),k):m},k.container=function(e){return arguments.length?(y="function"==typeof e?e:l(e),k):y},k.subject=function(e){return arguments.length?(x="function"==typeof e?e:l(e),k):x},k.touchable=function(e){return arguments.length?(_="function"==typeof e?e:l(!!e),k):_},k.on=function(){var e=T.on.apply(T,arguments);return e===T?k:e},k.clickDistance=function(e){return arguments.length?(E=(e=+e)*e,k):Math.sqrt(E)},k},e.dragDisable=u,e.dragEnable=c,Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/d3-drag/package.json
===================================================================
--- node_modules/d3-drag/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "d3-drag",
-  "version": "3.0.0",
-  "description": "Drag and drop SVG, HTML or Canvas using mouse or touch input.",
-  "homepage": "https://d3js.org/d3-drag/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-drag.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "drag",
-    "behavior",
-    "interaction"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-drag.min.js",
-  "unpkg": "dist/d3-drag.min.js",
-  "exports": {
-    "umd": "./dist/d3-drag.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-dispatch": "1 - 3",
-    "d3-selection": "3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c && git push",
-    "postpublish": "git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-drag/src/constant.js
===================================================================
--- node_modules/d3-drag/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => () => x;
Index: de_modules/d3-drag/src/drag.js
===================================================================
--- node_modules/d3-drag/src/drag.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,194 +1,0 @@
-import {dispatch} from "d3-dispatch";
-import {select, pointer} from "d3-selection";
-import nodrag, {yesdrag} from "./nodrag.js";
-import noevent, {nonpassive, nonpassivecapture, nopropagation} from "./noevent.js";
-import constant from "./constant.js";
-import DragEvent from "./event.js";
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultContainer() {
-  return this.parentNode;
-}
-
-function defaultSubject(event, d) {
-  return d == null ? {x: event.x, y: event.y} : d;
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-export default function() {
-  var filter = defaultFilter,
-      container = defaultContainer,
-      subject = defaultSubject,
-      touchable = defaultTouchable,
-      gestures = {},
-      listeners = dispatch("start", "drag", "end"),
-      active = 0,
-      mousedownx,
-      mousedowny,
-      mousemoving,
-      touchending,
-      clickDistance2 = 0;
-
-  function drag(selection) {
-    selection
-        .on("mousedown.drag", mousedowned)
-      .filter(touchable)
-        .on("touchstart.drag", touchstarted)
-        .on("touchmove.drag", touchmoved, nonpassive)
-        .on("touchend.drag touchcancel.drag", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  function mousedowned(event, d) {
-    if (touchending || !filter.call(this, event, d)) return;
-    var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse");
-    if (!gesture) return;
-    select(event.view)
-      .on("mousemove.drag", mousemoved, nonpassivecapture)
-      .on("mouseup.drag", mouseupped, nonpassivecapture);
-    nodrag(event.view);
-    nopropagation(event);
-    mousemoving = false;
-    mousedownx = event.clientX;
-    mousedowny = event.clientY;
-    gesture("start", event);
-  }
-
-  function mousemoved(event) {
-    noevent(event);
-    if (!mousemoving) {
-      var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
-      mousemoving = dx * dx + dy * dy > clickDistance2;
-    }
-    gestures.mouse("drag", event);
-  }
-
-  function mouseupped(event) {
-    select(event.view).on("mousemove.drag mouseup.drag", null);
-    yesdrag(event.view, mousemoving);
-    noevent(event);
-    gestures.mouse("end", event);
-  }
-
-  function touchstarted(event, d) {
-    if (!filter.call(this, event, d)) return;
-    var touches = event.changedTouches,
-        c = container.call(this, event, d),
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {
-        nopropagation(event);
-        gesture("start", event, touches[i]);
-      }
-    }
-  }
-
-  function touchmoved(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        noevent(event);
-        gesture("drag", event, touches[i]);
-      }
-    }
-  }
-
-  function touchended(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        nopropagation(event);
-        gesture("end", event, touches[i]);
-      }
-    }
-  }
-
-  function beforestart(that, container, event, d, identifier, touch) {
-    var dispatch = listeners.copy(),
-        p = pointer(touch || event, container), dx, dy,
-        s;
-
-    if ((s = subject.call(that, new DragEvent("beforestart", {
-        sourceEvent: event,
-        target: drag,
-        identifier,
-        active,
-        x: p[0],
-        y: p[1],
-        dx: 0,
-        dy: 0,
-        dispatch
-      }), d)) == null) return;
-
-    dx = s.x - p[0] || 0;
-    dy = s.y - p[1] || 0;
-
-    return function gesture(type, event, touch) {
-      var p0 = p, n;
-      switch (type) {
-        case "start": gestures[identifier] = gesture, n = active++; break;
-        case "end": delete gestures[identifier], --active; // falls through
-        case "drag": p = pointer(touch || event, container), n = active; break;
-      }
-      dispatch.call(
-        type,
-        that,
-        new DragEvent(type, {
-          sourceEvent: event,
-          subject: s,
-          target: drag,
-          identifier,
-          active: n,
-          x: p[0] + dx,
-          y: p[1] + dy,
-          dx: p[0] - p0[0],
-          dy: p[1] - p0[1],
-          dispatch
-        }),
-        d
-      );
-    };
-  }
-
-  drag.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), drag) : filter;
-  };
-
-  drag.container = function(_) {
-    return arguments.length ? (container = typeof _ === "function" ? _ : constant(_), drag) : container;
-  };
-
-  drag.subject = function(_) {
-    return arguments.length ? (subject = typeof _ === "function" ? _ : constant(_), drag) : subject;
-  };
-
-  drag.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), drag) : touchable;
-  };
-
-  drag.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? drag : value;
-  };
-
-  drag.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
-  };
-
-  return drag;
-}
Index: de_modules/d3-drag/src/event.js
===================================================================
--- node_modules/d3-drag/src/event.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-export default function DragEvent(type, {
-  sourceEvent,
-  subject,
-  target,
-  identifier,
-  active,
-  x, y, dx, dy,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    subject: {value: subject, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    identifier: {value: identifier, enumerable: true, configurable: true},
-    active: {value: active, enumerable: true, configurable: true},
-    x: {value: x, enumerable: true, configurable: true},
-    y: {value: y, enumerable: true, configurable: true},
-    dx: {value: dx, enumerable: true, configurable: true},
-    dy: {value: dy, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-DragEvent.prototype.on = function() {
-  var value = this._.on.apply(this._, arguments);
-  return value === this._ ? this : value;
-};
Index: de_modules/d3-drag/src/index.js
===================================================================
--- node_modules/d3-drag/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export {default as drag} from "./drag.js";
-export {default as dragDisable, yesdrag as dragEnable} from "./nodrag.js";
Index: de_modules/d3-drag/src/nodrag.js
===================================================================
--- node_modules/d3-drag/src/nodrag.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import {select} from "d3-selection";
-import noevent, {nonpassivecapture} from "./noevent.js";
-
-export default function(view) {
-  var root = view.document.documentElement,
-      selection = select(view).on("dragstart.drag", noevent, nonpassivecapture);
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", noevent, nonpassivecapture);
-  } else {
-    root.__noselect = root.style.MozUserSelect;
-    root.style.MozUserSelect = "none";
-  }
-}
-
-export function yesdrag(view, noclick) {
-  var root = view.document.documentElement,
-      selection = select(view).on("dragstart.drag", null);
-  if (noclick) {
-    selection.on("click.drag", noevent, nonpassivecapture);
-    setTimeout(function() { selection.on("click.drag", null); }, 0);
-  }
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", null);
-  } else {
-    root.style.MozUserSelect = root.__noselect;
-    delete root.__noselect;
-  }
-}
Index: de_modules/d3-drag/src/noevent.js
===================================================================
--- node_modules/d3-drag/src/noevent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-// These are typically used in conjunction with noevent to ensure that we can
-// preventDefault on the event.
-export const nonpassive = {passive: false};
-export const nonpassivecapture = {capture: true, passive: false};
-
-export function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-export default function(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
Index: de_modules/d3-dsv/LICENSE
===================================================================
--- node_modules/d3-dsv/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2013-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-dsv/README.md
===================================================================
--- node_modules/d3-dsv/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,492 +1,0 @@
-# d3-dsv
-
-This module provides a parser and formatter for delimiter-separated values, most commonly [comma-](https://en.wikipedia.org/wiki/Comma-separated_values) (CSV) or tab-separated values (TSV). These tabular formats are popular with spreadsheet programs such as Microsoft Excel, and are often more space-efficient than JSON. This implementation is based on [RFC 4180](http://tools.ietf.org/html/rfc4180).
-
-Comma (CSV) and tab (TSV) delimiters are built-in. For example, to parse:
-
-```js
-d3.csvParse("foo,bar\n1,2"); // [{foo: "1", bar: "2"}, columns: ["foo", "bar"]]
-d3.tsvParse("foo\tbar\n1\t2"); // [{foo: "1", bar: "2"}, columns: ["foo", "bar"]]
-```
-
-Or to format:
-
-```js
-d3.csvFormat([{foo: "1", bar: "2"}]); // "foo,bar\n1,2"
-d3.tsvFormat([{foo: "1", bar: "2"}]); // "foo\tbar\n1\t2"
-```
-
-To use a different delimiter, such as “|” for pipe-separated values, use [d3.dsvFormat](#dsvFormat):
-
-```js
-const psv = d3.dsvFormat("|");
-
-console.log(psv.parse("foo|bar\n1|2")); // [{foo: "1", bar: "2"}, columns: ["foo", "bar"]]
-```
-
-For easy loading of DSV files in a browser, see [d3-fetch](https://github.com/d3/d3-fetch)’s [d3.csv](https://github.com/d3/d3-fetch/blob/master/README.md#csv), [d3.tsv](https://github.com/d3/d3-fetch/blob/master/README.md#tsv) and [d3.dsv](https://github.com/d3/d3-fetch/blob/master/README.md#dsv) methods.
-
-## Installing
-
-If you use npm, `npm install d3-dsv`. You can also download the [latest release on GitHub](https://github.com/d3/d3-dsv/releases/latest). For vanilla HTML in modern browsers, import d3-dsv from Skypack:
-
-```html
-<script type="module">
-
-import {csvParse} from "https://cdn.skypack.dev/d3-dsv@3";
-
-const data = csvParse(string);
-
-</script>
-```
-
-For legacy environments, you can load d3-dsv’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-dsv@3"></script>
-<script>
-
-const data = d3.csvParse(string);
-
-</script>
-```
-
-## API Reference
-
-<a name="csvParse" href="#csvParse">#</a> d3.<b>csvParse</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[parse](#dsv_parse). Note: requires unsafe-eval [content security policy](#content-security-policy).
-
-<a name="csvParseRows" href="#csvParseRows">#</a> d3.<b>csvParseRows</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[parseRows](#dsv_parseRows).
-
-<a name="csvFormat" href="#csvFormat">#</a> d3.<b>csvFormat</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[format](#dsv_format).
-
-<a name="csvFormatBody" href="#csvFormatBody">#</a> d3.<b>csvFormatBody</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[formatBody](#dsv_formatBody).
-
-<a name="csvFormatRows" href="#csvFormatRows">#</a> d3.<b>csvFormatRows</b>(<i>rows</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[formatRows](#dsv_formatRows).
-
-<a name="csvFormatRow" href="#csvFormatRow">#</a> d3.<b>csvFormatRow</b>(<i>row</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[formatRow](#dsv_formatRow).
-
-<a name="csvFormatValue" href="#csvFormatValue">#</a> d3.<b>csvFormatValue</b>(<i>value</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/csv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)(",").[formatValue](#dsv_formatValue).
-
-<a name="tsvParse" href="#tsvParse">#</a> d3.<b>tsvParse</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[parse](#dsv_parse). Note: requires unsafe-eval [content security policy](#content-security-policy).
-
-<a name="tsvParseRows" href="#tsvParseRows">#</a> d3.<b>tsvParseRows</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[parseRows](#dsv_parseRows).
-
-<a name="tsvFormat" href="#tsvFormat">#</a> d3.<b>tsvFormat</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[format](#dsv_format).
-
-<a name="tsvFormatBody" href="#tsvFormatBody">#</a> d3.<b>tsvFormatBody</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[formatBody](#dsv_formatBody).
-
-<a name="tsvFormatRows" href="#tsvFormatRows">#</a> d3.<b>tsvFormatRows</b>(<i>rows</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[formatRows](#dsv_formatRows).
-
-<a name="tsvFormatRow" href="#tsvFormatRow">#</a> d3.<b>tsvFormatRow</b>(<i>row</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[formatRow](#dsv_formatRow).
-
-<a name="tsvFormatValue" href="#tsvFormatValue">#</a> d3.<b>tsvFormatValue</b>(<i>value</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/tsv.js "Source")
-
-Equivalent to [dsvFormat](#dsvFormat)("\t").[formatValue](#dsv_formatValue).
-
-<a name="dsvFormat" href="#dsvFormat">#</a> d3.<b>dsvFormat</b>(<i>delimiter</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js)
-
-Constructs a new DSV parser and formatter for the specified *delimiter*. The *delimiter* must be a single character (*i.e.*, a single 16-bit code unit); so, ASCII delimiters are fine, but emoji delimiters are not.
-
-<a name="dsv_parse" href="#dsv_parse">#</a> *dsv*.<b>parse</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Parses the specified *string*, which must be in the delimiter-separated values format with the appropriate delimiter, returning an array of objects representing the parsed rows.
-
-Unlike [*dsv*.parseRows](#dsv_parseRows), this method requires that the first line of the DSV content contains a delimiter-separated list of column names; these column names become the attributes on the returned objects. For example, consider the following CSV file:
-
-```
-Year,Make,Model,Length
-1997,Ford,E350,2.34
-2000,Mercury,Cougar,2.38
-```
-
-The resulting JavaScript array is:
-
-```js
-[
-  {"Year": "1997", "Make": "Ford", "Model": "E350", "Length": "2.34"},
-  {"Year": "2000", "Make": "Mercury", "Model": "Cougar", "Length": "2.38"}
-]
-```
-
-The returned array also exposes a `columns` property containing the column names in input order (in contrast to Object.keys, whose iteration order is arbitrary). For example:
-
-```js
-data.columns; // ["Year", "Make", "Model", "Length"]
-```
-
-If the column names are not unique, only the last value is returned for each name; to access all values, use [*dsv*.parseRows](#dsv_parseRows) instead (see [example](https://observablehq.com/@d3/parse-csv-with-duplicate-column-names)).
-
-If a *row* conversion function is not specified, field values are strings. For safety, there is no automatic conversion to numbers, dates, or other types. In some cases, JavaScript may coerce strings to numbers for you automatically (for example, using the `+` operator), but better is to specify a *row* conversion function. See [d3.autoType](#autoType) for a convenient *row* conversion function that infers and coerces common types like numbers and strings.
-
-If a *row* conversion function is specified, the specified function is invoked for each row, being passed an object representing the current row (`d`), the index (`i`) starting at zero for the first non-header row, and the array of column names. If the returned value is null or undefined, the row is skipped and will be omitted from the array returned by *dsv*.parse; otherwise, the returned value defines the corresponding row object. For example:
-
-```js
-const data = d3.csvParse(string, (d) => {
-  return {
-    year: new Date(+d.Year, 0, 1), // lowercase and convert "Year" to Date
-    make: d.Make, // lowercase
-    model: d.Model, // lowercase
-    length: +d.Length // lowercase and convert "Length" to number
-  };
-});
-```
-
-Note: using `+` rather than [parseInt](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt) or [parseFloat](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat) is typically faster, though more restrictive. For example, `"30px"` when coerced using `+` returns `NaN`, while parseInt and parseFloat return `30`.
-
-Note: requires unsafe-eval [content security policy](#content-security-policy).
-
-<a name="dsv_parseRows" href="#dsv_parseRows">#</a> <i>dsv</i>.<b>parseRows</b>(<i>string</i>[, <i>row</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Parses the specified *string*, which must be in the delimiter-separated values format with the appropriate delimiter, returning an array of arrays representing the parsed rows.
-
-Unlike [*dsv*.parse](#dsv_parse), this method treats the header line as a standard row, and should be used whenever DSV content does not contain a header. Each row is represented as an array rather than an object. Rows may have variable length. For example, consider the following CSV file, which notably lacks a header line:
-
-```
-1997,Ford,E350,2.34
-2000,Mercury,Cougar,2.38
-```
-
-The resulting JavaScript array is:
-
-```js
-[
-  ["1997", "Ford", "E350", "2.34"],
-  ["2000", "Mercury", "Cougar", "2.38"]
-]
-```
-
-If a *row* conversion function is not specified, field values are strings. For safety, there is no automatic conversion to numbers, dates, or other types. In some cases, JavaScript may coerce strings to numbers for you automatically (for example, using the `+` operator), but better is to specify a *row* conversion function. See [d3.autoType](#autoType) for a convenient *row* conversion function that infers and coerces common types like numbers and strings.
-
-If a *row* conversion function is specified, the specified function is invoked for each row, being passed an array representing the current row (`d`), the index (`i`) starting at zero for the first row, and the array of column names. If the returned value is null or undefined, the row is skipped and will be omitted from the array returned by *dsv*.parse; otherwise, the returned value defines the corresponding row object. For example:
-
-```js
-const data = d3.csvParseRows(string, (d, i) => {
-  return {
-    year: new Date(+d[0], 0, 1), // convert first colum column to Date
-    make: d[1],
-    model: d[2],
-    length: +d[3] // convert fourth column to number
-  };
-});
-```
-
-In effect, *row* is similar to applying a [map](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map) and [filter](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter) operator to the returned rows.
-
-<a name="dsv_format" href="#dsv_format">#</a> <i>dsv</i>.<b>format</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Formats the specified array of object *rows* as delimiter-separated values, returning a string. This operation is the inverse of [*dsv*.parse](#dsv_parse). Each row will be separated by a newline (`\n`), and each column within each row will be separated by the delimiter (such as a comma, `,`). Values that contain either the delimiter, a double-quote (`"`) or a newline will be escaped using double-quotes.
-
-If *columns* is not specified, the list of column names that forms the header row is determined by the union of all properties on all objects in *rows*; the order of columns is nondeterministic. If *columns* is specified, it is an array of strings representing the column names. For example:
-
-```js
-const string = d3.csvFormat(data, ["year", "make", "model", "length"]);
-```
-
-All fields on each row object will be coerced to strings. If the field value is null or undefined, the empty string is used. If the field value is a Date, the [ECMAScript date-time string format](https://www.ecma-international.org/ecma-262/9.0/index.html#sec-date-time-string-format) (a subset of ISO 8601) is used: for example, dates at UTC midnight are formatted as `YYYY-MM-DD`. For more control over which and how fields are formatted, first map *rows* to an array of array of string, and then use [*dsv*.formatRows](#dsv_formatRows).
-
-<a name="dsv_formatBody" href="#dsv_formatBody">#</a> <i>dsv</i>.<b>formatBody</b>(<i>rows</i>[, <i>columns</i>]) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Equivalent to [*dsv*.format](#dsv_format), but omits the header row. This is useful, for example, when appending rows to an existing file.
-
-<a name="dsv_formatRows" href="#dsv_formatRows">#</a> <i>dsv</i>.<b>formatRows</b>(<i>rows</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Formats the specified array of array of string *rows* as delimiter-separated values, returning a string. This operation is the reverse of [*dsv*.parseRows](#dsv_parseRows). Each row will be separated by a newline (`\n`), and each column within each row will be separated by the delimiter (such as a comma, `,`). Values that contain either the delimiter, a double-quote (") or a newline will be escaped using double-quotes.
-
-To convert an array of objects to an array of arrays while explicitly specifying the columns, use [*array*.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map). For example:
-
-```js
-const string = d3.csvFormatRows(data.map((d, i) => {
-  return [
-    d.year.getFullYear(), // Assuming d.year is a Date object.
-    d.make,
-    d.model,
-    d.length
-  ];
-}));
-```
-
-If you like, you can also [*array*.concat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) this result with an array of column names to generate the first row:
-
-```js
-const string = d3.csvFormatRows([[
-    "year",
-    "make",
-    "model",
-    "length"
-  ]].concat(data.map((d, i) => {
-  return [
-    d.year.getFullYear(), // Assuming d.year is a Date object.
-    d.make,
-    d.model,
-    d.length
-  ];
-})));
-```
-
-<a name="dsv_formatRow" href="#dsv_formatRow">#</a> <i>dsv</i>.<b>formatRow</b>(<i>row</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Formats a single array *row* of strings as delimiter-separated values, returning a string. Each column within the row will be separated by the delimiter (such as a comma, `,`). Values that contain either the delimiter, a double-quote (") or a newline will be escaped using double-quotes.
-
-<a name="dsv_formatValue" href="#dsv_formatValue">#</a> <i>dsv</i>.<b>formatValue</b>(<i>value</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/dsv.js "Source")
-
-Format a single *value* or string as a delimiter-separated value, returning a string. A value that contains either the delimiter, a double-quote (") or a newline will be escaped using double-quotes.
-
-<a name="autoType" href="#autoType">#</a> d3.<b>autoType</b>(<i>object</i>) [<>](https://github.com/d3/d3-dsv/blob/master/src/autoType.js "Source")
-
-Given an *object* (or array) representing a parsed row, infers the types of values on the *object* and coerces them accordingly, returning the mutated *object*. This function is intended to be used as a *row* accessor function in conjunction with [*dsv*.parse](#dsv_parse) and [*dsv*.parseRows](#dsv_parseRow). For example, consider the following CSV file:
-
-```
-Year,Make,Model,Length
-1997,Ford,E350,2.34
-2000,Mercury,Cougar,2.38
-```
-
-When used with [d3.csvParse](#csvParse),
-
-```js
-d3.csvParse(string, d3.autoType)
-```
-
-the resulting JavaScript array is:
-
-```js
-[
-  {"Year": 1997, "Make": "Ford", "Model": "E350", "Length": 2.34},
-  {"Year": 2000, "Make": "Mercury", "Model": "Cougar", "Length": 2.38}
-]
-```
-
-Type inference works as follows. For each *value* in the given *object*, the [trimmed](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) value is computed; the value is then re-assigned as follows:
-
-1. If empty, then `null`.
-1. If exactly `"true"`, then `true`.
-1. If exactly `"false"`, then `false`.
-1. If exactly `"NaN"`, then `NaN`.
-1. Otherwise, if [coercible to a number](https://www.ecma-international.org/ecma-262/9.0/index.html#sec-tonumber-applied-to-the-string-type), then a number.
-1. Otherwise, if a [date-only or date-time string](https://www.ecma-international.org/ecma-262/9.0/index.html#sec-date-time-string-format), then a Date.
-1. Otherwise, a string (the original untrimmed value).
-
-Values with leading zeroes may be coerced to numbers; for example `"08904"` coerces to `8904`. However, extra characters such as commas or units (*e.g.*, `"$1.00"`, `"(123)"`, `"1,234"` or `"32px"`) will prevent number coercion, resulting in a string.
-
-Date strings must be in ECMAScript’s subset of the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601). When a date-only string such as YYYY-MM-DD is specified, the inferred time is midnight UTC; however, if a date-time string such as YYYY-MM-DDTHH:MM is specified without a time zone, it is assumed to be local time.
-
-Automatic type inference is primarily intended to provide safe, predictable behavior in conjunction with [*dsv*.format](#dsv_format) and [*dsv*.formatRows](#dsv_formatRows) for common JavaScript types. If you need different behavior, you should implement your own row accessor function.
-
-For more, see [the d3.autoType notebook](https://observablehq.com/@d3/d3-autotype).
-
-### Content Security Policy
-
-If a [content security policy](http://www.w3.org/TR/CSP/) is in place, note that [*dsv*.parse](#dsv_parse) requires `unsafe-eval` in the `script-src` directive, due to the (safe) use of dynamic code generation for fast parsing. (See [source](https://github.com/d3/d3-dsv/blob/master/src/dsv.js).) Alternatively, use [*dsv*.parseRows](#dsv_parseRows).
-
-### Byte-Order Marks
-
-DSV files sometimes begin with a [byte order mark (BOM)](https://en.wikipedia.org/wiki/Byte_order_mark); saving a spreadsheet in CSV UTF-8 format from Microsoft Excel, for example, will include a BOM. On the web this is not usually a problem because the [UTF-8 decode algorithm](https://encoding.spec.whatwg.org/#utf-8-decode) specified in the Encoding standard removes the BOM. Node.js, on the other hand, [does not remove the BOM](https://github.com/nodejs/node-v0.x-archive/issues/1918) when decoding UTF-8.
-
-If the BOM is not removed, the first character of the text is a zero-width non-breaking space. So if a CSV file with a BOM is parsed by [d3.csvParse](#csvParse), the first column’s name will begin with a zero-width non-breaking space. This can be hard to spot since this character is usually invisible when printed.
-
-To remove the BOM before parsing, consider using [strip-bom](https://www.npmjs.com/package/strip-bom).
-
-## Command Line Reference
-
-### dsv2dsv
-
-<a name="dsv2dsv" href="#dsv2dsv">#</a> <b>dsv2dsv</b> [<i>options…</i>] [<i>file</i>]
-
-Converts the specified DSV input *file* to DSV (typically with a different delimiter or encoding). If *file* is not specified, defaults to reading from stdin. For example, to convert to CSV to TSV:
-
-```
-csv2tsv < example.csv > example.tsv
-```
-
-To convert windows-1252 CSV to utf-8 CSV:
-
-```
-dsv2dsv --input-encoding windows-1252 < latin1.csv > utf8.csv
-```
-
-<a name="dsv2dsv_help" href="dsv2dsv_help">#</a> dsv2dsv <b>-h</b>
-<br><a href="dsv2dsv_help">#</a> dsv2dsv <b>--help</b>
-
-Output usage information.
-
-<a name="dsv2dsv_version" href="dsv2dsv_version">#</a> dsv2dsv <b>-V</b>
-<br><a href="dsv2dsv_version">#</a> dsv2dsv <b>--version</b>
-
-Output the version number.
-
-<a name="dsv2dsv_out" href="dsv2dsv_out">#</a> dsv2dsv <b>-o</b> <i>file</i>
-<br><a href="dsv2dsv_out">#</a> dsv2dsv <b>--out</b> <i>file</i>
-
-Specify the output file name. Defaults to “-” for stdout.
-
-<a name="dsv2dsv_input_delimiter" href="dsv2dsv_input_delimiter">#</a> dsv2dsv <b>-r</b> <i>delimiter</i>
-<br><a href="dsv2dsv_input_delimiter">#</a> dsv2dsv <b>--input-delimiter</b> <i>delimiter</i>
-
-Specify the input delimiter character. Defaults to “,” for reading CSV. (You can enter a tab on the command line by typing ⌃V.)
-
-<a name="dsv2dsv_input_encoding" href="dsv2dsv_input_encoding">#</a> dsv2dsv <b>--input-encoding</b> <i>encoding</i>
-
-Specify the input character encoding. Defaults to “utf8”.
-
-<a name="dsv2dsv_output_delimiter" href="dsv2dsv_output_delimiter">#</a> dsv2dsv <b>-w</b> <i>delimiter</i>
-<br><a href="dsv2dsv_output_delimiter">#</a> dsv2dsv <b>--output-delimiter</b> <i>delimiter</i>
-
-Specify the output delimiter character. Defaults to “,” for writing CSV. (You can enter a tab on the command line by typing ⌃V.)
-
-<a name="dsv2dsv_output_encoding" href="dsv2dsv_output_encoding">#</a> dsv2dsv <b>--output-encoding</b> <i>encoding</i>
-
-Specify the output character encoding. Defaults to “utf8”.
-
-<a name="csv2tsv" href="#csv2tsv">#</a> <b>csv2tsv</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [dsv2dsv](#dsv2dsv), but the [output delimiter](#dsv2dsv_output_delimiter) defaults to the tab character (\t).
-
-<a name="tsv2csv" href="#tsv2csv">#</a> <b>tsv2csv</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [dsv2dsv](#dsv2dsv), but the [input delimiter](#dsv2dsv_output_delimiter) defaults to the tab character (\t).
-
-### dsv2json
-
-<a name="dsv2json" href="#dsv2json">#</a> <b>dsv2json</b> [<i>options…</i>] [<i>file</i>]
-
-Converts the specified DSV input *file* to JSON. If *file* is not specified, defaults to reading from stdin. For example, to convert to CSV to JSON:
-
-```
-csv2json < example.csv > example.json
-```
-
-Or to convert CSV to a newline-delimited JSON stream:
-
-```
-csv2json -n < example.csv > example.ndjson
-```
-
-<a name="dsv2json_help" href="dsv2json_help">#</a> dsv2json <b>-h</b>
-<br><a href="dsv2json_help">#</a> dsv2json <b>--help</b>
-
-Output usage information.
-
-<a name="dsv2json_version" href="dsv2json_version">#</a> dsv2json <b>-V</b>
-<br><a href="dsv2json_version">#</a> dsv2json <b>--version</b>
-
-Output the version number.
-
-<a name="dsv2json_out" href="dsv2json_out">#</a> dsv2json <b>-o</b> <i>file</i>
-<br><a href="dsv2json_out">#</a> dsv2json <b>--out</b> <i>file</i>
-
-Specify the output file name. Defaults to “-” for stdout.
-
-<a name="dsv2json_autotype" href="dsv2json_autotype">#</a> dsv2json <b>-a</b>
-<br><a href="dsv2json_autotype">#</a> dsv2json <b>--auto-type</b>
-
-Use type inference when parsing rows. See <a href="#autoType">d3.autoType</a> for how it works.
-
-<a name="dsv2json_input_delimiter" href="dsv2json_input_delimiter">#</a> dsv2json <b>-r</b> <i>delimiter</i>
-<br><a href="dsv2json_input_delimiter">#</a> dsv2json <b>--input-delimiter</b> <i>delimiter</i>
-
-Specify the input delimiter character. Defaults to “,” for reading CSV. (You can enter a tab on the command line by typing ⌃V.)
-
-<a name="dsv2json_input_encoding" href="dsv2json_input_encoding">#</a> dsv2json <b>--input-encoding</b> <i>encoding</i>
-
-Specify the input character encoding. Defaults to “utf8”.
-
-<a name="dsv2json_output_encoding" href="dsv2json_output_encoding">#</a> dsv2json <b>-r</b> <i>encoding</i>
-<br><a href="dsv2json_output_encoding">#</a> dsv2json <b>--output-encoding</b> <i>encoding</i>
-
-Specify the output character encoding. Defaults to “utf8”.
-
-<a name="dsv2json_newline_delimited" href="dsv2json_newline_delimited">#</a> dsv2json <b>-n</b>
-<br><a href="dsv2json_newline_delimited">#</a> dsv2json <b>--newline-delimited</b>
-
-Output [newline-delimited JSON](https://github.com/mbostock/ndjson-cli) instead of a single JSON array.
-
-<a name="csv2json" href="#csv2json">#</a> <b>csv2json</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [dsv2json](#dsv2json).
-
-<a name="tsv2json" href="#csv2json">#</a> <b>tsv2json</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [dsv2json](#dsv2json), but the [input delimiter](#dsv2json_input_delimiter) defaults to the tab character (\t).
-
-### json2dsv
-
-<a name="json2dsv" href="#json2dsv">#</a> <b>json2dsv</b> [<i>options…</i>] [<i>file</i>]
-
-Converts the specified JSON input *file* to DSV. If *file* is not specified, defaults to reading from stdin. For example, to convert to JSON to CSV:
-
-```
-json2csv < example.json > example.csv
-```
-
-Or to convert a newline-delimited JSON stream to CSV:
-
-```
-json2csv -n < example.ndjson > example.csv
-```
-
-<a name="json2dsv_help" href="json2dsv_help">#</a> json2dsv <b>-h</b>
-<br><a href="json2dsv_help">#</a> json2dsv <b>--help</b>
-
-Output usage information.
-
-<a name="json2dsv_version" href="json2dsv_version">#</a> json2dsv <b>-V</b>
-<br><a href="json2dsv_version">#</a> json2dsv <b>--version</b>
-
-Output the version number.
-
-<a name="json2dsv_out" href="json2dsv_out">#</a> json2dsv <b>-o</b> <i>file</i>
-<br><a href="json2dsv_out">#</a> json2dsv <b>--out</b> <i>file</i>
-
-Specify the output file name. Defaults to “-” for stdout.
-
-<a name="json2dsv_input_encoding" href="json2dsv_input_encoding">#</a> json2dsv <b>--input-encoding</b> <i>encoding</i>
-
-Specify the input character encoding. Defaults to “utf8”.
-
-<a name="json2dsv_output_delimiter" href="json2dsv_output_delimiter">#</a> json2dsv <b>-w</b> <i>delimiter</i>
-<br><a href="json2dsv_output_delimiter">#</a> json2dsv <b>--output-delimiter</b> <i>delimiter</i>
-
-Specify the output delimiter character. Defaults to “,” for writing CSV. (You can enter a tab on the command line by typing ⌃V.)
-
-<a name="json2dsv_output_encoding" href="json2dsv_output_encoding">#</a> json2dsv <b>--output-encoding</b> <i>encoding</i>
-
-Specify the output character encoding. Defaults to “utf8”.
-
-<a name="json2dsv_newline_delimited" href="json2dsv_newline_delimited">#</a> json2dsv <b>-n</b>
-<br><a href="json2dsv_newline_delimited">#</a> json2dsv <b>--newline-delimited</b>
-
-Read [newline-delimited JSON](https://github.com/mbostock/ndjson-cli) instead of a single JSON array.
-
-<a name="json2csv" href="#json2csv">#</a> <b>json2csv</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [json2dsv](#json2dsv).
-
-<a name="json2tsv" href="#json2tsv">#</a> <b>json2tsv</b> [<i>options…</i>] [<i>file</i>]
-
-Equivalent to [json2dsv](#json2dsv), but the [output delimiter](#json2dsv_output_delimiter) defaults to the tab character (\t).
Index: de_modules/d3-dsv/bin/dsv2dsv.js
===================================================================
--- node_modules/d3-dsv/bin/dsv2dsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#!/usr/bin/env node
-
-import {EOL} from "os";
-import {basename, dirname, resolve} from "path";
-import {readFileSync} from "fs";
-import {fileURLToPath} from "url";
-import rw from "rw";
-import {program} from "commander";
-import iconv from "iconv-lite";
-import {dsvFormat} from "../src/index.js";
-
-const progname = basename(process.argv[1]);
-const defaultInDelimiter = progname.slice(0, 3) === "tsv" ? "\t" : ",";
-const defaultOutDelimiter = progname.slice(-3) === "tsv" ? "\t" : ",";
-
-const options = program
-    .version(JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), "../package.json"))).version)
-    .usage("[options] [file]")
-    .option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
-    .option("-r, --input-delimiter <character>", "input delimiter character", defaultInDelimiter)
-    .option("-w, --output-delimiter <character>", "output delimiter character", defaultOutDelimiter)
-    .option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
-    .option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
-    .parse(process.argv)
-    .opts();
-
-const inFormat = dsvFormat(options.inputDelimiter);
-const outFormat = dsvFormat(options.outputDelimiter);
-
-rw.dash.readFile(program.args[0] || "-", (error, text) => {
-  if (error) throw error;
-  rw.dash.writeFile("-", iconv.encode(outFormat.format(inFormat.parse(iconv.decode(text, options.inputEncoding))) + EOL, options.outputEncoding), (error) => {
-    if (error) throw error;
-  });
-});
Index: de_modules/d3-dsv/bin/dsv2json.js
===================================================================
--- node_modules/d3-dsv/bin/dsv2json.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-#!/usr/bin/env node
-
-import {EOL} from "os";
-import {basename, dirname, resolve} from "path";
-import {readFileSync} from "fs";
-import {fileURLToPath} from "url";
-import rw from "rw";
-import {program} from "commander";
-import iconv from "iconv-lite";
-import {dsvFormat} from "../src/index.js";
-
-const progname = basename(process.argv[1]);
-const defaultInDelimiter = progname.slice(0, 3) === "tsv" ? "\t" : ",";
-
-const options = program
-    .version(JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), "../package.json"))).version)
-    .usage("[options] [file]")
-    .option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
-    .option("-r, --input-delimiter <character>", "input delimiter character", defaultInDelimiter)
-    .option("-a, --auto-type", "parse rows with type inference (see d3.autoType)")
-    .option("-n, --newline-delimited", "output newline-delimited JSON")
-    .option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
-    .option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
-    .parse(process.argv)
-    .opts();
-
-const inFormat = dsvFormat(options.inputDelimiter);
-
-rw.dash.readFile(program.args[0] || "-", (error, text) => {
-  if (error) throw error;
-  const rowConverter = options.autoType ? dsv.autoType : null
-  const rows = inFormat.parse(iconv.decode(text, options.inputEncoding), rowConverter);
-  rw.dash.writeFile(options.out, iconv.encode(options.newlineDelimited
-      ? rows.map((row) => JSON.stringify(row)).join("\n") + "\n"
-      : JSON.stringify(rows) + EOL, options.outputEncoding), (error) => {
-    if (error) throw error;
-  });
-});
Index: de_modules/d3-dsv/bin/json2dsv.js
===================================================================
--- node_modules/d3-dsv/bin/json2dsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#!/usr/bin/env node
-
-import {EOL} from "os";
-import {basename, dirname, resolve} from "path";
-import {readFileSync} from "fs";
-import {fileURLToPath} from "url";
-import rw from "rw";
-import {program} from "commander";
-import iconv from "iconv-lite";
-import {dsvFormat} from "../src/index.js";
-
-const progname = basename(process.argv[1]);
-const defaultOutDelimiter = progname.slice(-3) === "tsv" ? "\t" : ",";
-
-const options = program
-    .version(JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), "../package.json"))).version)
-    .usage("[options] [file]")
-    .option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
-    .option("-w, --output-delimiter <character>", "output delimiter character", defaultOutDelimiter)
-    .option("-n, --newline-delimited", "accept newline-delimited JSON")
-    .option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
-    .option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
-    .parse(process.argv)
-    .opts();
-
-const outFormat = dsvFormat(options.outputDelimiter);
-
-rw.dash.readFile(program.args[0] || "-", (error, text) => {
-  if (error) throw error;
-  text = iconv.decode(text, options.inputEncoding);
-  rw.dash.writeFile(options.out, iconv.encode(outFormat.format(options.newlineDelimited
-      ? text.trim().split(/\r?\n/g).map((line) => JSON.parse(line))
-      : JSON.parse(text)) + EOL, options.outputEncoding), (error) => {
-    if (error) throw error;
-  });
-});
Index: de_modules/d3-dsv/dist/d3-dsv.js
===================================================================
--- node_modules/d3-dsv/dist/d3-dsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,233 +1,0 @@
-// https://d3js.org/d3-dsv/ v3.0.1 Copyright 2013-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-var EOL = {},
-    EOF = {},
-    QUOTE = 34,
-    NEWLINE = 10,
-    RETURN = 13;
-
-function objectConverter(columns) {
-  return new Function("d", "return {" + columns.map(function(name, i) {
-    return JSON.stringify(name) + ": d[" + i + "] || \"\"";
-  }).join(",") + "}");
-}
-
-function customConverter(columns, f) {
-  var object = objectConverter(columns);
-  return function(row, i) {
-    return f(object(row), i, columns);
-  };
-}
-
-// Compute unique columns in order of discovery.
-function inferColumns(rows) {
-  var columnSet = Object.create(null),
-      columns = [];
-
-  rows.forEach(function(row) {
-    for (var column in row) {
-      if (!(column in columnSet)) {
-        columns.push(columnSet[column] = column);
-      }
-    }
-  });
-
-  return columns;
-}
-
-function pad(value, width) {
-  var s = value + "", length = s.length;
-  return length < width ? new Array(width - length + 1).join(0) + s : s;
-}
-
-function formatYear(year) {
-  return year < 0 ? "-" + pad(-year, 6)
-    : year > 9999 ? "+" + pad(year, 6)
-    : pad(year, 4);
-}
-
-function formatDate(date) {
-  var hours = date.getUTCHours(),
-      minutes = date.getUTCMinutes(),
-      seconds = date.getUTCSeconds(),
-      milliseconds = date.getUTCMilliseconds();
-  return isNaN(date) ? "Invalid Date"
-      : formatYear(date.getUTCFullYear()) + "-" + pad(date.getUTCMonth() + 1, 2) + "-" + pad(date.getUTCDate(), 2)
-      + (milliseconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "." + pad(milliseconds, 3) + "Z"
-      : seconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "Z"
-      : minutes || hours ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + "Z"
-      : "");
-}
-
-function dsv(delimiter) {
-  var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
-      DELIMITER = delimiter.charCodeAt(0);
-
-  function parse(text, f) {
-    var convert, columns, rows = parseRows(text, function(row, i) {
-      if (convert) return convert(row, i - 1);
-      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
-    });
-    rows.columns = columns || [];
-    return rows;
-  }
-
-  function parseRows(text, f) {
-    var rows = [], // output rows
-        N = text.length,
-        I = 0, // current character index
-        n = 0, // current line number
-        t, // current token
-        eof = N <= 0, // current token followed by EOF?
-        eol = false; // current token followed by EOL?
-
-    // Strip the trailing newline.
-    if (text.charCodeAt(N - 1) === NEWLINE) --N;
-    if (text.charCodeAt(N - 1) === RETURN) --N;
-
-    function token() {
-      if (eof) return EOF;
-      if (eol) return eol = false, EOL;
-
-      // Unescape quotes.
-      var i, j = I, c;
-      if (text.charCodeAt(j) === QUOTE) {
-        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
-        if ((i = I) >= N) eof = true;
-        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        return text.slice(j + 1, i - 1).replace(/""/g, "\"");
-      }
-
-      // Find next delimiter or newline.
-      while (I < N) {
-        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        else if (c !== DELIMITER) continue;
-        return text.slice(j, i);
-      }
-
-      // Return last token before EOF.
-      return eof = true, text.slice(j, N);
-    }
-
-    while ((t = token()) !== EOF) {
-      var row = [];
-      while (t !== EOL && t !== EOF) row.push(t), t = token();
-      if (f && (row = f(row, n++)) == null) continue;
-      rows.push(row);
-    }
-
-    return rows;
-  }
-
-  function preformatBody(rows, columns) {
-    return rows.map(function(row) {
-      return columns.map(function(column) {
-        return formatValue(row[column]);
-      }).join(delimiter);
-    });
-  }
-
-  function format(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
-  }
-
-  function formatBody(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return preformatBody(rows, columns).join("\n");
-  }
-
-  function formatRows(rows) {
-    return rows.map(formatRow).join("\n");
-  }
-
-  function formatRow(row) {
-    return row.map(formatValue).join(delimiter);
-  }
-
-  function formatValue(value) {
-    return value == null ? ""
-        : value instanceof Date ? formatDate(value)
-        : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\""
-        : value;
-  }
-
-  return {
-    parse: parse,
-    parseRows: parseRows,
-    format: format,
-    formatBody: formatBody,
-    formatRows: formatRows,
-    formatRow: formatRow,
-    formatValue: formatValue
-  };
-}
-
-var csv = dsv(",");
-
-var csvParse = csv.parse;
-var csvParseRows = csv.parseRows;
-var csvFormat = csv.format;
-var csvFormatBody = csv.formatBody;
-var csvFormatRows = csv.formatRows;
-var csvFormatRow = csv.formatRow;
-var csvFormatValue = csv.formatValue;
-
-var tsv = dsv("\t");
-
-var tsvParse = tsv.parse;
-var tsvParseRows = tsv.parseRows;
-var tsvFormat = tsv.format;
-var tsvFormatBody = tsv.formatBody;
-var tsvFormatRows = tsv.formatRows;
-var tsvFormatRow = tsv.formatRow;
-var tsvFormatValue = tsv.formatValue;
-
-function autoType(object) {
-  for (var key in object) {
-    var value = object[key].trim(), number, m;
-    if (!value) value = null;
-    else if (value === "true") value = true;
-    else if (value === "false") value = false;
-    else if (value === "NaN") value = NaN;
-    else if (!isNaN(number = +value)) value = number;
-    else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) {
-      if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " ");
-      value = new Date(value);
-    }
-    else continue;
-    object[key] = value;
-  }
-  return object;
-}
-
-// https://github.com/d3/d3-dsv/issues/45
-const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours();
-
-exports.autoType = autoType;
-exports.csvFormat = csvFormat;
-exports.csvFormatBody = csvFormatBody;
-exports.csvFormatRow = csvFormatRow;
-exports.csvFormatRows = csvFormatRows;
-exports.csvFormatValue = csvFormatValue;
-exports.csvParse = csvParse;
-exports.csvParseRows = csvParseRows;
-exports.dsvFormat = dsv;
-exports.tsvFormat = tsvFormat;
-exports.tsvFormatBody = tsvFormatBody;
-exports.tsvFormatRow = tsvFormatRow;
-exports.tsvFormatRows = tsvFormatRows;
-exports.tsvFormatValue = tsvFormatValue;
-exports.tsvParse = tsvParse;
-exports.tsvParseRows = tsvParseRows;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-dsv/dist/d3-dsv.min.js
===================================================================
--- node_modules/d3-dsv/dist/d3-dsv.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-dsv/ v3.0.1 Copyright 2013-2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{})}(this,(function(e){"use strict";var t={},r={};function n(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function o(e){var t=Object.create(null),r=[];return e.forEach((function(e){for(var n in e)n in t||r.push(t[n]=n)})),r}function a(e,t){var r=e+"",n=r.length;return n<t?new Array(t-n+1).join(0)+r:r}function u(e){var t,r=e.getUTCHours(),n=e.getUTCMinutes(),o=e.getUTCSeconds(),u=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+a(-t,6):t>9999?"+"+a(t,6):a(t,4))+"-"+a(e.getUTCMonth()+1,2)+"-"+a(e.getUTCDate(),2)+(u?"T"+a(r,2)+":"+a(n,2)+":"+a(o,2)+"."+a(u,3)+"Z":o?"T"+a(r,2)+":"+a(n,2)+":"+a(o,2)+"Z":n||r?"T"+a(r,2)+":"+a(n,2)+"Z":"")}function i(e){var a=new RegExp('["'+e+"\n\r]"),i=e.charCodeAt(0);function f(e,n){var o,a=[],u=e.length,f=0,s=0,c=u<=0,l=!1;function d(){if(c)return r;if(l)return l=!1,t;var n,o,a=f;if(34===e.charCodeAt(a)){for(;f++<u&&34!==e.charCodeAt(f)||34===e.charCodeAt(++f););return(n=f)>=u?c=!0:10===(o=e.charCodeAt(f++))?l=!0:13===o&&(l=!0,10===e.charCodeAt(f)&&++f),e.slice(a+1,n-1).replace(/""/g,'"')}for(;f<u;){if(10===(o=e.charCodeAt(n=f++)))l=!0;else if(13===o)l=!0,10===e.charCodeAt(f)&&++f;else if(o!==i)continue;return e.slice(a,n)}return c=!0,e.slice(a,u)}for(10===e.charCodeAt(u-1)&&--u,13===e.charCodeAt(u-1)&&--u;(o=d())!==r;){for(var m=[];o!==t&&o!==r;)m.push(o),o=d();n&&null==(m=n(m,s++))||a.push(m)}return a}function s(t,r){return t.map((function(t){return r.map((function(e){return l(t[e])})).join(e)}))}function c(t){return t.map(l).join(e)}function l(e){return null==e?"":e instanceof Date?u(e):a.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var r,o,a=f(e,(function(e,a){if(r)return r(e,a-1);o=e,r=t?function(e,t){var r=n(e);return function(n,o){return t(r(n),o,e)}}(e,t):n(e)}));return a.columns=o||[],a},parseRows:f,format:function(t,r){return null==r&&(r=o(t)),[r.map(l).join(e)].concat(s(t,r)).join("\n")},formatBody:function(e,t){return null==t&&(t=o(e)),s(e,t).join("\n")},formatRows:function(e){return e.map(c).join("\n")},formatRow:c,formatValue:l}}var f=i(","),s=f.parse,c=f.parseRows,l=f.format,d=f.formatBody,m=f.formatRows,v=f.formatRow,p=f.formatValue,h=i("\t"),w=h.parse,g=h.parseRows,C=h.format,T=h.formatBody,R=h.formatRows,y=h.formatRow,F=h.formatValue;const j=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();e.autoType=function(e){for(var t in e){var r,n,o=e[t].trim();if(o)if("true"===o)o=!0;else if("false"===o)o=!1;else if("NaN"===o)o=NaN;else if(isNaN(r=+o)){if(!(n=o.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;j&&n[4]&&!n[7]&&(o=o.replace(/-/g,"/").replace(/T/," ")),o=new Date(o)}else o=r;else o=null;e[t]=o}return e},e.csvFormat=l,e.csvFormatBody=d,e.csvFormatRow=v,e.csvFormatRows=m,e.csvFormatValue=p,e.csvParse=s,e.csvParseRows=c,e.dsvFormat=i,e.tsvFormat=C,e.tsvFormatBody=T,e.tsvFormatRow=y,e.tsvFormatRows=R,e.tsvFormatValue=F,e.tsvParse=w,e.tsvParseRows=g,Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/d3-dsv/package.json
===================================================================
--- node_modules/d3-dsv/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-{
-  "name": "d3-dsv",
-  "version": "3.0.1",
-  "description": "A parser and formatter for delimiter-separated values, such as CSV and TSV",
-  "homepage": "https://d3js.org/d3-dsv/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-dsv.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "dsv",
-    "csv",
-    "tsv"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "bin/*.js",
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-dsv.min.js",
-  "unpkg": "dist/d3-dsv.min.js",
-  "exports": {
-    "umd": "./dist/d3-dsv.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "commander": "7",
-    "iconv-lite": "0.6",
-    "rw": "1"
-  },
-  "devDependencies": {
-    "csv-spectrum": "1",
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "TZ=America/Los_Angeles mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  },
-  "bin": {
-    "csv2json": "bin/dsv2json.js",
-    "csv2tsv": "bin/dsv2dsv.js",
-    "dsv2dsv": "bin/dsv2dsv.js",
-    "dsv2json": "bin/dsv2json.js",
-    "json2csv": "bin/json2dsv.js",
-    "json2dsv": "bin/json2dsv.js",
-    "json2tsv": "bin/json2dsv.js",
-    "tsv2csv": "bin/dsv2dsv.js",
-    "tsv2json": "bin/dsv2json.js"
-  }
-}
Index: de_modules/d3-dsv/src/autoType.js
===================================================================
--- node_modules/d3-dsv/src/autoType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function autoType(object) {
-  for (var key in object) {
-    var value = object[key].trim(), number, m;
-    if (!value) value = null;
-    else if (value === "true") value = true;
-    else if (value === "false") value = false;
-    else if (value === "NaN") value = NaN;
-    else if (!isNaN(number = +value)) value = number;
-    else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) {
-      if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " ");
-      value = new Date(value);
-    }
-    else continue;
-    object[key] = value;
-  }
-  return object;
-}
-
-// https://github.com/d3/d3-dsv/issues/45
-const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours();
Index: de_modules/d3-dsv/src/csv.js
===================================================================
--- node_modules/d3-dsv/src/csv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import dsv from "./dsv.js";
-
-var csv = dsv(",");
-
-export var csvParse = csv.parse;
-export var csvParseRows = csv.parseRows;
-export var csvFormat = csv.format;
-export var csvFormatBody = csv.formatBody;
-export var csvFormatRows = csv.formatRows;
-export var csvFormatRow = csv.formatRow;
-export var csvFormatValue = csv.formatValue;
Index: de_modules/d3-dsv/src/dsv.js
===================================================================
--- node_modules/d3-dsv/src/dsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,164 +1,0 @@
-var EOL = {},
-    EOF = {},
-    QUOTE = 34,
-    NEWLINE = 10,
-    RETURN = 13;
-
-function objectConverter(columns) {
-  return new Function("d", "return {" + columns.map(function(name, i) {
-    return JSON.stringify(name) + ": d[" + i + "] || \"\"";
-  }).join(",") + "}");
-}
-
-function customConverter(columns, f) {
-  var object = objectConverter(columns);
-  return function(row, i) {
-    return f(object(row), i, columns);
-  };
-}
-
-// Compute unique columns in order of discovery.
-function inferColumns(rows) {
-  var columnSet = Object.create(null),
-      columns = [];
-
-  rows.forEach(function(row) {
-    for (var column in row) {
-      if (!(column in columnSet)) {
-        columns.push(columnSet[column] = column);
-      }
-    }
-  });
-
-  return columns;
-}
-
-function pad(value, width) {
-  var s = value + "", length = s.length;
-  return length < width ? new Array(width - length + 1).join(0) + s : s;
-}
-
-function formatYear(year) {
-  return year < 0 ? "-" + pad(-year, 6)
-    : year > 9999 ? "+" + pad(year, 6)
-    : pad(year, 4);
-}
-
-function formatDate(date) {
-  var hours = date.getUTCHours(),
-      minutes = date.getUTCMinutes(),
-      seconds = date.getUTCSeconds(),
-      milliseconds = date.getUTCMilliseconds();
-  return isNaN(date) ? "Invalid Date"
-      : formatYear(date.getUTCFullYear(), 4) + "-" + pad(date.getUTCMonth() + 1, 2) + "-" + pad(date.getUTCDate(), 2)
-      + (milliseconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "." + pad(milliseconds, 3) + "Z"
-      : seconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "Z"
-      : minutes || hours ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + "Z"
-      : "");
-}
-
-export default function(delimiter) {
-  var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
-      DELIMITER = delimiter.charCodeAt(0);
-
-  function parse(text, f) {
-    var convert, columns, rows = parseRows(text, function(row, i) {
-      if (convert) return convert(row, i - 1);
-      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
-    });
-    rows.columns = columns || [];
-    return rows;
-  }
-
-  function parseRows(text, f) {
-    var rows = [], // output rows
-        N = text.length,
-        I = 0, // current character index
-        n = 0, // current line number
-        t, // current token
-        eof = N <= 0, // current token followed by EOF?
-        eol = false; // current token followed by EOL?
-
-    // Strip the trailing newline.
-    if (text.charCodeAt(N - 1) === NEWLINE) --N;
-    if (text.charCodeAt(N - 1) === RETURN) --N;
-
-    function token() {
-      if (eof) return EOF;
-      if (eol) return eol = false, EOL;
-
-      // Unescape quotes.
-      var i, j = I, c;
-      if (text.charCodeAt(j) === QUOTE) {
-        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
-        if ((i = I) >= N) eof = true;
-        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        return text.slice(j + 1, i - 1).replace(/""/g, "\"");
-      }
-
-      // Find next delimiter or newline.
-      while (I < N) {
-        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        else if (c !== DELIMITER) continue;
-        return text.slice(j, i);
-      }
-
-      // Return last token before EOF.
-      return eof = true, text.slice(j, N);
-    }
-
-    while ((t = token()) !== EOF) {
-      var row = [];
-      while (t !== EOL && t !== EOF) row.push(t), t = token();
-      if (f && (row = f(row, n++)) == null) continue;
-      rows.push(row);
-    }
-
-    return rows;
-  }
-
-  function preformatBody(rows, columns) {
-    return rows.map(function(row) {
-      return columns.map(function(column) {
-        return formatValue(row[column]);
-      }).join(delimiter);
-    });
-  }
-
-  function format(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
-  }
-
-  function formatBody(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return preformatBody(rows, columns).join("\n");
-  }
-
-  function formatRows(rows) {
-    return rows.map(formatRow).join("\n");
-  }
-
-  function formatRow(row) {
-    return row.map(formatValue).join(delimiter);
-  }
-
-  function formatValue(value) {
-    return value == null ? ""
-        : value instanceof Date ? formatDate(value)
-        : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\""
-        : value;
-  }
-
-  return {
-    parse: parse,
-    parseRows: parseRows,
-    format: format,
-    formatBody: formatBody,
-    formatRows: formatRows,
-    formatRow: formatRow,
-    formatValue: formatValue
-  };
-}
Index: de_modules/d3-dsv/src/index.js
===================================================================
--- node_modules/d3-dsv/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export {default as dsvFormat} from "./dsv.js";
-export {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from "./csv.js";
-export {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from "./tsv.js";
-export {default as autoType} from "./autoType.js";
Index: de_modules/d3-dsv/src/tsv.js
===================================================================
--- node_modules/d3-dsv/src/tsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import dsv from "./dsv.js";
-
-var tsv = dsv("\t");
-
-export var tsvParse = tsv.parse;
-export var tsvParseRows = tsv.parseRows;
-export var tsvFormat = tsv.format;
-export var tsvFormatBody = tsv.formatBody;
-export var tsvFormatRows = tsv.formatRows;
-export var tsvFormatRow = tsv.formatRow;
-export var tsvFormatValue = tsv.formatValue;
Index: de_modules/d3-ease/LICENSE
===================================================================
--- node_modules/d3-ease/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-Copyright 2001 Robert Penner
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/d3-ease/README.md
===================================================================
--- node_modules/d3-ease/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,253 +1,0 @@
-# d3-ease
-
-*Easing* is a method of distorting time to control apparent motion in animation. It is most commonly used for [slow-in, slow-out](https://en.wikipedia.org/wiki/12_basic_principles_of_animation#Slow_In_and_Slow_Out). By easing time, [animated transitions](https://github.com/d3/d3-transition) are smoother and exhibit more plausible motion.
-
-The easing types in this module implement the [ease method](#ease_ease), which takes a normalized time *t* and returns the corresponding “eased” time *tʹ*. Both the normalized time and the eased time are typically in the range [0,1], where 0 represents the start of the animation and 1 represents the end; some easing types, such as [elastic](#easeElastic), may return eased times slightly outside this range. A good easing type should return 0 if *t* = 0 and 1 if *t* = 1. See the [easing explorer](https://observablehq.com/@d3/easing) for a visual demonstration.
-
-These easing types are largely based on work by [Robert Penner](http://robertpenner.com/easing/).
-
-## Installing
-
-If you use npm, `npm install d3-ease`. You can also download the [latest release on GitHub](https://github.com/d3/d3-ease/releases/latest). For vanilla HTML in modern browsers, import d3-ease from Skypack:
-
-```html
-<script type="module">
-
-import {easeCubic} from "https://cdn.skypack.dev/d3-ease@3";
-
-const e = easeCubic(0.25);
-
-</script>
-```
-
-For legacy environments, you can load d3-ease’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-ease@3"></script>
-<script>
-
-const e = d3.easeCubic(0.25);
-
-</script>
-```
-
-[Try d3-ease in your browser.](https://observablehq.com/@d3/easing-animations)
-
-## API Reference
-
-<a name="_ease" href="#_ease">#</a> <i>ease</i>(<i>t</i>)
-
-Given the specified normalized time *t*, typically in the range [0,1], returns the “eased” time *tʹ*, also typically in [0,1]. 0 represents the start of the animation and 1 represents the end. A good implementation returns 0 if *t* = 0 and 1 if *t* = 1. See the [easing explorer](https://observablehq.com/@d3/easing) for a visual demonstration. For example, to apply [cubic](#easeCubic) easing:
-
-```js
-const te = d3.easeCubic(t);
-```
-
-Similarly, to apply custom [elastic](#easeElastic) easing:
-
-```js
-// Before the animation starts, create your easing function.
-const customElastic = d3.easeElastic.period(0.4);
-
-// During the animation, apply the easing function.
-const te = customElastic(t);
-```
-
-<a name="easeLinear" href="#easeLinear">#</a> d3.<b>easeLinear</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/linear.js "Source")
-
-Linear easing; the identity function; *linear*(*t*) returns *t*.
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/linear.png" alt="linear">](https://observablehq.com/@d3/easing#linear)
-
-<a name="easePolyIn" href="#easePolyIn">#</a> d3.<b>easePolyIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/poly.js#L3 "Source")
-
-Polynomial easing; raises *t* to the specified [exponent](#poly_exponent). If the exponent is not specified, it defaults to 3, equivalent to [cubicIn](#easeCubicIn).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/polyIn.png" alt="polyIn">](https://observablehq.com/@d3/easing#polyIn)
-
-<a name="easePolyOut" href="#easePolyOut">#</a> d3.<b>easePolyOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/poly.js#L15 "Source")
-
-Reverse polynomial easing; equivalent to 1 - [polyIn](#easePolyIn)(1 - *t*). If the [exponent](#poly_exponent) is not specified, it defaults to 3, equivalent to [cubicOut](#easeCubicOut).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/polyOut.png" alt="polyOut">](https://observablehq.com/@d3/easing#polyOut)
-
-<a name="easePoly" href="#easePoly">#</a> d3.<b>easePoly</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/poly.js "Source")
-<br><a name="easePolyInOut" href="#easePolyInOut">#</a> d3.<b>easePolyInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/poly.js#L27 "Source")
-
-Symmetric polynomial easing; scales [polyIn](#easePolyIn) for *t* in [0, 0.5] and [polyOut](#easePolyOut) for *t* in [0.5, 1]. If the [exponent](#poly_exponent) is not specified, it defaults to 3, equivalent to [cubic](#easeCubic).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/polyInOut.png" alt="polyInOut">](https://observablehq.com/@d3/easing#polyInOut)
-
-<a name="poly_exponent" href="#poly_exponent">#</a> <i>poly</i>.<b>exponent</b>(<i>e</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/poly.js#L1 "Source")
-
-Returns a new polynomial easing with the specified exponent *e*. For example, to create equivalents of [linear](#easeLinear), [quad](#easeQuad), and [cubic](#easeCubic):
-
-```js
-const linear = d3.easePoly.exponent(1);
-const quad = d3.easePoly.exponent(2);
-const cubic = d3.easePoly.exponent(3);
-```
-
-<a name="easeQuadIn" href="#easeQuadIn">#</a> d3.<b>easeQuadIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/quad.js#L1 "Source")
-
-Quadratic easing; equivalent to [polyIn](#easePolyIn).[exponent](#poly_exponent)(2).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/quadIn.png" alt="quadIn">](https://observablehq.com/@d3/easing#quadIn)
-
-<a name="easeQuadOut" href="#easeQuadOut">#</a> d3.<b>easeQuadOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/quad.js#L5 "Source")
-
-Reverse quadratic easing; equivalent to 1 - [quadIn](#easeQuadIn)(1 - *t*). Also equivalent to [polyOut](#easePolyOut).[exponent](#poly_exponent)(2).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/quadOut.png" alt="quadOut">](https://observablehq.com/@d3/easing#quadOut)
-
-<a name="easeQuad" href="#easeQuad">#</a> d3.<b>easeQuad</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/quad.js "Source")
-<br><a name="easeQuadInOut" href="#easeQuadInOut">#</a> d3.<b>easeQuadInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/quad.js#L9 "Source")
-
-Symmetric quadratic easing; scales [quadIn](#easeQuadIn) for *t* in [0, 0.5] and [quadOut](#easeQuadOut) for *t* in [0.5, 1]. Also equivalent to [poly](#easePoly).[exponent](#poly_exponent)(2).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/quadInOut.png" alt="quadInOut">](https://observablehq.com/@d3/easing#quadInOut)
-
-<a name="easeCubicIn" href="#easeCubicIn">#</a> d3.<b>easeCubicIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/cubic.js#L1 "Source")
-
-Cubic easing; equivalent to [polyIn](#easePolyIn).[exponent](#poly_exponent)(3).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/cubicIn.png" alt="cubicIn">](https://observablehq.com/@d3/easing#cubicIn)
-
-<a name="easeCubicOut" href="#easeCubicOut">#</a> d3.<b>easeCubicOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/cubic.js#L5 "Source")
-
-Reverse cubic easing; equivalent to 1 - [cubicIn](#easeCubicIn)(1 - *t*). Also equivalent to [polyOut](#easePolyOut).[exponent](#poly_exponent)(3).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/cubicOut.png" alt="cubicOut">](https://observablehq.com/@d3/easing#cubicOut)
-
-<a name="easeCubic" href="#easeCubic">#</a> d3.<b>easeCubic</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/cubic.js "Source")
-<br><a name="easeCubicInOut" href="#easeCubicInOut">#</a> d3.<b>easeCubicInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/cubic.js#L9 "Source")
-
-Symmetric cubic easing; scales [cubicIn](#easeCubicIn) for *t* in [0, 0.5] and [cubicOut](#easeCubicOut) for *t* in [0.5, 1]. Also equivalent to [poly](#easePoly).[exponent](#poly_exponent)(3).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/cubicInOut.png" alt="cubicInOut">](https://observablehq.com/@d3/easing#cubicInOut)
-
-<a name="easeSinIn" href="#easeSinIn">#</a> d3.<b>easeSinIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/sin.js#L4 "Source")
-
-Sinusoidal easing; returns sin(*t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/sinIn.png" alt="sinIn">](https://observablehq.com/@d3/easing#sinIn)
-
-<a name="easeSinOut" href="#easeSinOut">#</a> d3.<b>easeSinOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/sin.js#L8 "Source")
-
-Reverse sinusoidal easing; equivalent to 1 - [sinIn](#easeSinIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/sinOut.png" alt="sinOut">](https://observablehq.com/@d3/easing#sinOut)
-
-<a name="easeSin" href="#easeSin">#</a> d3.<b>easeSin</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/sin.js "Source")
-<br><a name="easeSinInOut" href="#easeSinInOut">#</a> d3.<b>easeSinInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/sin.js#L12 "Source")
-
-Symmetric sinusoidal easing; scales [sinIn](#easeSinIn) for *t* in [0, 0.5] and [sinOut](#easeSinOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/sinInOut.png" alt="sinInOut">](https://observablehq.com/@d3/easing#sinInOut)
-
-<a name="easeExpIn" href="#easeExpIn">#</a> d3.<b>easeExpIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/exp.js#L1 "Source")
-
-Exponential easing; raises 2 to the exponent 10 \* (*t* - 1).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/expIn.png" alt="expIn">](https://observablehq.com/@d3/easing#expIn)
-
-<a name="easeExpOut" href="#easeExpOut">#</a> d3.<b>easeExpOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/exp.js#L5 "Source")
-
-Reverse exponential easing; equivalent to 1 - [expIn](#easeExpIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/expOut.png" alt="expOut">](https://observablehq.com/@d3/easing#expOut)
-
-<a name="easeExp" href="#easeExp">#</a> d3.<b>easeExp</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/exp.js "Source")
-<br><a name="easeExpInOut" href="#easeExpInOut">#</a> d3.<b>easeExpInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/exp.js#L9 "Source")
-
-Symmetric exponential easing; scales [expIn](#easeExpIn) for *t* in [0, 0.5] and [expOut](#easeExpOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/expInOut.png" alt="expInOut">](https://observablehq.com/@d3/easing#expInOut)
-
-<a name="easeCircleIn" href="#easeCircleIn">#</a> d3.<b>easeCircleIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/circle.js#L1 "Source")
-
-Circular easing.
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/circleIn.png" alt="circleIn">](https://observablehq.com/@d3/easing#circleIn)
-
-<a name="easeCircleOut" href="#easeCircleOut">#</a> d3.<b>easeCircleOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/circle.js#L5 "Source")
-
-Reverse circular easing; equivalent to 1 - [circleIn](#easeCircleIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/circleOut.png" alt="circleOut">](https://observablehq.com/@d3/easing#circleOut)
-
-<a name="easeCircle" href="#easeCircle">#</a> d3.<b>easeCircle</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/circle.js "Source")
-<br><a name="easeCircleInOut" href="#easeCircleInOut">#</a> d3.<b>easeCircleInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/circle.js#L9 "Source")
-
-Symmetric circular easing; scales [circleIn](#easeCircleIn) for *t* in [0, 0.5] and [circleOut](#easeCircleOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/circleInOut.png" alt="circleInOut">](https://observablehq.com/@d3/easing#circleInOut)
-
-<a name="easeElasticIn" href="#easeElasticIn">#</a> d3.<b>easeElasticIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js#L5 "Source")
-
-Elastic easing, like a rubber band. The [amplitude](#elastic_amplitude) and [period](#elastic_period) of the oscillation are configurable; if not specified, they default to 1 and 0.3, respectively.
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/elasticIn.png" alt="elasticIn">](https://observablehq.com/@d3/easing#elasticIn)
-
-<a name="easeElastic" href="#easeElastic">#</a> d3.<b>easeElastic</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js "Source")
-<br><a name="easeElasticOut" href="#easeElasticOut">#</a> d3.<b>easeElasticOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js#L18 "Source")
-
-Reverse elastic easing; equivalent to 1 - [elasticIn](#easeElasticIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/elasticOut.png" alt="elasticOut">](https://observablehq.com/@d3/easing#elasticOut)
-
-<a name="easeElasticInOut" href="#easeElasticInOut">#</a> d3.<b>easeElasticInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js#L31 "Source")
-
-Symmetric elastic easing; scales [elasticIn](#easeElasticIn) for *t* in [0, 0.5] and [elasticOut](#easeElasticOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/elasticInOut.png" alt="elasticInOut">](https://observablehq.com/@d3/easing#elasticInOut)
-
-<a name="elastic_amplitude" href="#elastic_amplitude">#</a> <i>elastic</i>.<b>amplitude</b>(<i>a</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js#L40 "Source")
-
-Returns a new elastic easing with the specified amplitude *a*.
-
-<a name="elastic_period" href="#elastic_period">#</a> <i>elastic</i>.<b>period</b>(<i>p</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/elastic.js#L41 "Source")
-
-Returns a new elastic easing with the specified period *p*.
-
-<a name="easeBackIn" href="#easeBackIn">#</a> d3.<b>easeBackIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/back.js#L3 "Source")
-
-[Anticipatory](https://en.wikipedia.org/wiki/12_basic_principles_of_animation#Anticipation) easing, like a dancer bending his knees before jumping off the floor. The degree of [overshoot](#back_overshoot) is configurable; if not specified, it defaults to 1.70158.
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/backIn.png" alt="backIn">](https://observablehq.com/@d3/easing#backIn)
-
-<a name="easeBackOut" href="#easeBackOut">#</a> d3.<b>easeBackOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/back.js#L15 "Source")
-
-Reverse anticipatory easing; equivalent to 1 - [backIn](#easeBackIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/backOut.png" alt="backOut">](https://observablehq.com/@d3/easing#backOut)
-
-<a name="easeBack" href="#easeBack">#</a> d3.<b>easeBack</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/back.js "Source")
-<br><a name="easeBackInOut" href="#easeBackInOut">#</a> d3.<b>easeBackInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/back.js#L27 "Source")
-
-Symmetric anticipatory easing; scales [backIn](#easeBackIn) for *t* in [0, 0.5] and [backOut](#easeBackOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/backInOut.png" alt="backInOut">](https://observablehq.com/@d3/easing#backInOut)
-
-<a name="back_overshoot" href="#back_overshoot">#</a> <i>back</i>.<b>overshoot</b>(<i>s</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/back.js#L1 "Source")
-
-Returns a new back easing with the specified overshoot *s*.
-
-<a name="easeBounceIn" href="#easeBounceIn">#</a> d3.<b>easeBounceIn</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/bounce.js#L12 "Source")
-
-Bounce easing, like a rubber ball.
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/bounceIn.png" alt="bounceIn">](https://observablehq.com/@d3/easing#bounceIn)
-
-<a name="easeBounce" href="#easeBounce">#</a> d3.<b>easeBounce</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/bounce.js "Source")
-<br><a name="easeBounceOut" href="#easeBounceOut">#</a> d3.<b>easeBounceOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/bounce.js#L16 "Source")
-
-Reverse bounce easing; equivalent to 1 - [bounceIn](#easeBounceIn)(1 - *t*).
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/bounceOut.png" alt="bounceOut">](https://observablehq.com/@d3/easing#bounceOut)
-
-<a name="easeBounceInOut" href="#easeBounceInOut">#</a> d3.<b>easeBounceInOut</b>(<i>t</i>) [<>](https://github.com/d3/d3-ease/blob/master/src/bounce.js#L20 "Source")
-
-Symmetric bounce easing; scales [bounceIn](#easeBounceIn) for *t* in [0, 0.5] and [bounceOut](#easeBounceOut) for *t* in [0.5, 1].
-
-[<img src="https://raw.githubusercontent.com/d3/d3-ease/master/img/bounceInOut.png" alt="bounceInOut">](https://observablehq.com/@d3/easing#bounceInOut)
Index: de_modules/d3-ease/dist/d3-ease.js
===================================================================
--- node_modules/d3-ease/dist/d3-ease.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,262 +1,0 @@
-// https://d3js.org/d3-ease/ v3.0.1 Copyright 2010-2021 Mike Bostock, 2001 Robert Penner
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-const linear = t => +t;
-
-function quadIn(t) {
-  return t * t;
-}
-
-function quadOut(t) {
-  return t * (2 - t);
-}
-
-function quadInOut(t) {
-  return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
-}
-
-function cubicIn(t) {
-  return t * t * t;
-}
-
-function cubicOut(t) {
-  return --t * t * t + 1;
-}
-
-function cubicInOut(t) {
-  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
-}
-
-var exponent = 3;
-
-var polyIn = (function custom(e) {
-  e = +e;
-
-  function polyIn(t) {
-    return Math.pow(t, e);
-  }
-
-  polyIn.exponent = custom;
-
-  return polyIn;
-})(exponent);
-
-var polyOut = (function custom(e) {
-  e = +e;
-
-  function polyOut(t) {
-    return 1 - Math.pow(1 - t, e);
-  }
-
-  polyOut.exponent = custom;
-
-  return polyOut;
-})(exponent);
-
-var polyInOut = (function custom(e) {
-  e = +e;
-
-  function polyInOut(t) {
-    return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
-  }
-
-  polyInOut.exponent = custom;
-
-  return polyInOut;
-})(exponent);
-
-var pi = Math.PI,
-    halfPi = pi / 2;
-
-function sinIn(t) {
-  return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);
-}
-
-function sinOut(t) {
-  return Math.sin(t * halfPi);
-}
-
-function sinInOut(t) {
-  return (1 - Math.cos(pi * t)) / 2;
-}
-
-// tpmt is two power minus ten times t scaled to [0,1]
-function tpmt(x) {
-  return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
-}
-
-function expIn(t) {
-  return tpmt(1 - +t);
-}
-
-function expOut(t) {
-  return 1 - tpmt(t);
-}
-
-function expInOut(t) {
-  return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;
-}
-
-function circleIn(t) {
-  return 1 - Math.sqrt(1 - t * t);
-}
-
-function circleOut(t) {
-  return Math.sqrt(1 - --t * t);
-}
-
-function circleInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
-}
-
-var b1 = 4 / 11,
-    b2 = 6 / 11,
-    b3 = 8 / 11,
-    b4 = 3 / 4,
-    b5 = 9 / 11,
-    b6 = 10 / 11,
-    b7 = 15 / 16,
-    b8 = 21 / 22,
-    b9 = 63 / 64,
-    b0 = 1 / b1 / b1;
-
-function bounceIn(t) {
-  return 1 - bounceOut(1 - t);
-}
-
-function bounceOut(t) {
-  return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
-}
-
-function bounceInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
-}
-
-var overshoot = 1.70158;
-
-var backIn = (function custom(s) {
-  s = +s;
-
-  function backIn(t) {
-    return (t = +t) * t * (s * (t - 1) + t);
-  }
-
-  backIn.overshoot = custom;
-
-  return backIn;
-})(overshoot);
-
-var backOut = (function custom(s) {
-  s = +s;
-
-  function backOut(t) {
-    return --t * t * ((t + 1) * s + t) + 1;
-  }
-
-  backOut.overshoot = custom;
-
-  return backOut;
-})(overshoot);
-
-var backInOut = (function custom(s) {
-  s = +s;
-
-  function backInOut(t) {
-    return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
-  }
-
-  backInOut.overshoot = custom;
-
-  return backInOut;
-})(overshoot);
-
-var tau = 2 * Math.PI,
-    amplitude = 1,
-    period = 0.3;
-
-var elasticIn = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticIn(t) {
-    return a * tpmt(-(--t)) * Math.sin((s - t) / p);
-  }
-
-  elasticIn.amplitude = function(a) { return custom(a, p * tau); };
-  elasticIn.period = function(p) { return custom(a, p); };
-
-  return elasticIn;
-})(amplitude, period);
-
-var elasticOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticOut(t) {
-    return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);
-  }
-
-  elasticOut.amplitude = function(a) { return custom(a, p * tau); };
-  elasticOut.period = function(p) { return custom(a, p); };
-
-  return elasticOut;
-})(amplitude, period);
-
-var elasticInOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticInOut(t) {
-    return ((t = t * 2 - 1) < 0
-        ? a * tpmt(-t) * Math.sin((s - t) / p)
-        : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;
-  }
-
-  elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
-  elasticInOut.period = function(p) { return custom(a, p); };
-
-  return elasticInOut;
-})(amplitude, period);
-
-exports.easeBack = backInOut;
-exports.easeBackIn = backIn;
-exports.easeBackInOut = backInOut;
-exports.easeBackOut = backOut;
-exports.easeBounce = bounceOut;
-exports.easeBounceIn = bounceIn;
-exports.easeBounceInOut = bounceInOut;
-exports.easeBounceOut = bounceOut;
-exports.easeCircle = circleInOut;
-exports.easeCircleIn = circleIn;
-exports.easeCircleInOut = circleInOut;
-exports.easeCircleOut = circleOut;
-exports.easeCubic = cubicInOut;
-exports.easeCubicIn = cubicIn;
-exports.easeCubicInOut = cubicInOut;
-exports.easeCubicOut = cubicOut;
-exports.easeElastic = elasticOut;
-exports.easeElasticIn = elasticIn;
-exports.easeElasticInOut = elasticInOut;
-exports.easeElasticOut = elasticOut;
-exports.easeExp = expInOut;
-exports.easeExpIn = expIn;
-exports.easeExpInOut = expInOut;
-exports.easeExpOut = expOut;
-exports.easeLinear = linear;
-exports.easePoly = polyInOut;
-exports.easePolyIn = polyIn;
-exports.easePolyInOut = polyInOut;
-exports.easePolyOut = polyOut;
-exports.easeQuad = quadInOut;
-exports.easeQuadIn = quadIn;
-exports.easeQuadInOut = quadInOut;
-exports.easeQuadOut = quadOut;
-exports.easeSin = sinInOut;
-exports.easeSinIn = sinIn;
-exports.easeSinInOut = sinInOut;
-exports.easeSinOut = sinOut;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-ease/dist/d3-ease.min.js
===================================================================
--- node_modules/d3-ease/dist/d3-ease.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-ease/ v3.0.1 Copyright 2010-2021 Mike Bostock, 2001 Robert Penner
-!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";function e(n){return((n*=2)<=1?n*n:--n*(2-n)+1)/2}function t(n){return((n*=2)<=1?n*n*n:(n-=2)*n*n+2)/2}var u=function n(e){function t(n){return Math.pow(n,e)}return e=+e,t.exponent=n,t}(3),r=function n(e){function t(n){return 1-Math.pow(1-n,e)}return e=+e,t.exponent=n,t}(3),a=function n(e){function t(n){return((n*=2)<=1?Math.pow(n,e):2-Math.pow(2-n,e))/2}return e=+e,t.exponent=n,t}(3),o=Math.PI,i=o/2;function c(n){return(1-Math.cos(o*n))/2}function s(n){return 1.0009775171065494*(Math.pow(2,-10*n)-.0009765625)}function f(n){return((n*=2)<=1?s(1-n):2-s(n-1))/2}function h(n){return((n*=2)<=1?1-Math.sqrt(1-n*n):Math.sqrt(1-(n-=2)*n)+1)/2}var p=4/11,M=7.5625;function d(n){return(n=+n)<p?M*n*n:n<.7272727272727273?M*(n-=.5454545454545454)*n+.75:n<.9090909090909091?M*(n-=.8181818181818182)*n+.9375:M*(n-=.9545454545454546)*n+.984375}var l=1.70158,I=function n(e){function t(n){return(n=+n)*n*(e*(n-1)+n)}return e=+e,t.overshoot=n,t}(l),O=function n(e){function t(n){return--n*n*((n+1)*e+n)+1}return e=+e,t.overshoot=n,t}(l),x=function n(e){function t(n){return((n*=2)<1?n*n*((e+1)*n-e):(n-=2)*n*((e+1)*n+e)+2)/2}return e=+e,t.overshoot=n,t}(l),v=2*Math.PI,y=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return e*s(- --n)*Math.sin((u-n)/t)}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3),b=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return 1-e*s(n=+n)*Math.sin((n+u)/t)}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3),m=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return((n=2*n-1)<0?e*s(-n)*Math.sin((u-n)/t):2-e*s(n)*Math.sin((u+n)/t))/2}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3);n.easeBack=x,n.easeBackIn=I,n.easeBackInOut=x,n.easeBackOut=O,n.easeBounce=d,n.easeBounceIn=function(n){return 1-d(1-n)},n.easeBounceInOut=function(n){return((n*=2)<=1?1-d(1-n):d(n-1)+1)/2},n.easeBounceOut=d,n.easeCircle=h,n.easeCircleIn=function(n){return 1-Math.sqrt(1-n*n)},n.easeCircleInOut=h,n.easeCircleOut=function(n){return Math.sqrt(1- --n*n)},n.easeCubic=t,n.easeCubicIn=function(n){return n*n*n},n.easeCubicInOut=t,n.easeCubicOut=function(n){return--n*n*n+1},n.easeElastic=b,n.easeElasticIn=y,n.easeElasticInOut=m,n.easeElasticOut=b,n.easeExp=f,n.easeExpIn=function(n){return s(1-+n)},n.easeExpInOut=f,n.easeExpOut=function(n){return 1-s(n)},n.easeLinear=n=>+n,n.easePoly=a,n.easePolyIn=u,n.easePolyInOut=a,n.easePolyOut=r,n.easeQuad=e,n.easeQuadIn=function(n){return n*n},n.easeQuadInOut=e,n.easeQuadOut=function(n){return n*(2-n)},n.easeSin=c,n.easeSinIn=function(n){return 1==+n?1:1-Math.cos(n*i)},n.easeSinInOut=c,n.easeSinOut=function(n){return Math.sin(n*i)},Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-ease/package.json
===================================================================
--- node_modules/d3-ease/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-{
-  "name": "d3-ease",
-  "version": "3.0.1",
-  "description": "Easing functions for smooth animation.",
-  "homepage": "https://d3js.org/d3-ease/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-ease.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "ease",
-    "easing",
-    "animation",
-    "transition"
-  ],
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-ease.min.js",
-  "unpkg": "dist/d3-ease.min.js",
-  "exports": {
-    "umd": "./dist/d3-ease.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-ease/src/back.js
===================================================================
--- node_modules/d3-ease/src/back.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-var overshoot = 1.70158;
-
-export var backIn = (function custom(s) {
-  s = +s;
-
-  function backIn(t) {
-    return (t = +t) * t * (s * (t - 1) + t);
-  }
-
-  backIn.overshoot = custom;
-
-  return backIn;
-})(overshoot);
-
-export var backOut = (function custom(s) {
-  s = +s;
-
-  function backOut(t) {
-    return --t * t * ((t + 1) * s + t) + 1;
-  }
-
-  backOut.overshoot = custom;
-
-  return backOut;
-})(overshoot);
-
-export var backInOut = (function custom(s) {
-  s = +s;
-
-  function backInOut(t) {
-    return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
-  }
-
-  backInOut.overshoot = custom;
-
-  return backInOut;
-})(overshoot);
Index: de_modules/d3-ease/src/bounce.js
===================================================================
--- node_modules/d3-ease/src/bounce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-var b1 = 4 / 11,
-    b2 = 6 / 11,
-    b3 = 8 / 11,
-    b4 = 3 / 4,
-    b5 = 9 / 11,
-    b6 = 10 / 11,
-    b7 = 15 / 16,
-    b8 = 21 / 22,
-    b9 = 63 / 64,
-    b0 = 1 / b1 / b1;
-
-export function bounceIn(t) {
-  return 1 - bounceOut(1 - t);
-}
-
-export function bounceOut(t) {
-  return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
-}
-
-export function bounceInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
-}
Index: de_modules/d3-ease/src/circle.js
===================================================================
--- node_modules/d3-ease/src/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export function circleIn(t) {
-  return 1 - Math.sqrt(1 - t * t);
-}
-
-export function circleOut(t) {
-  return Math.sqrt(1 - --t * t);
-}
-
-export function circleInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
-}
Index: de_modules/d3-ease/src/cubic.js
===================================================================
--- node_modules/d3-ease/src/cubic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export function cubicIn(t) {
-  return t * t * t;
-}
-
-export function cubicOut(t) {
-  return --t * t * t + 1;
-}
-
-export function cubicInOut(t) {
-  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
-}
Index: de_modules/d3-ease/src/elastic.js
===================================================================
--- node_modules/d3-ease/src/elastic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {tpmt} from "./math.js";
-
-var tau = 2 * Math.PI,
-    amplitude = 1,
-    period = 0.3;
-
-export var elasticIn = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticIn(t) {
-    return a * tpmt(-(--t)) * Math.sin((s - t) / p);
-  }
-
-  elasticIn.amplitude = function(a) { return custom(a, p * tau); };
-  elasticIn.period = function(p) { return custom(a, p); };
-
-  return elasticIn;
-})(amplitude, period);
-
-export var elasticOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticOut(t) {
-    return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);
-  }
-
-  elasticOut.amplitude = function(a) { return custom(a, p * tau); };
-  elasticOut.period = function(p) { return custom(a, p); };
-
-  return elasticOut;
-})(amplitude, period);
-
-export var elasticInOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-
-  function elasticInOut(t) {
-    return ((t = t * 2 - 1) < 0
-        ? a * tpmt(-t) * Math.sin((s - t) / p)
-        : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;
-  }
-
-  elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
-  elasticInOut.period = function(p) { return custom(a, p); };
-
-  return elasticInOut;
-})(amplitude, period);
Index: de_modules/d3-ease/src/exp.js
===================================================================
--- node_modules/d3-ease/src/exp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import {tpmt} from "./math.js";
-
-export function expIn(t) {
-  return tpmt(1 - +t);
-}
-
-export function expOut(t) {
-  return 1 - tpmt(t);
-}
-
-export function expInOut(t) {
-  return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;
-}
Index: de_modules/d3-ease/src/index.js
===================================================================
--- node_modules/d3-ease/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-export {
-  linear as easeLinear
-} from "./linear.js";
-
-export {
-  quadInOut as easeQuad,
-  quadIn as easeQuadIn,
-  quadOut as easeQuadOut,
-  quadInOut as easeQuadInOut
-} from "./quad.js";
-
-export {
-  cubicInOut as easeCubic,
-  cubicIn as easeCubicIn,
-  cubicOut as easeCubicOut,
-  cubicInOut as easeCubicInOut
-} from "./cubic.js";
-
-export {
-  polyInOut as easePoly,
-  polyIn as easePolyIn,
-  polyOut as easePolyOut,
-  polyInOut as easePolyInOut
-} from "./poly.js";
-
-export {
-  sinInOut as easeSin,
-  sinIn as easeSinIn,
-  sinOut as easeSinOut,
-  sinInOut as easeSinInOut
-} from "./sin.js";
-
-export {
-  expInOut as easeExp,
-  expIn as easeExpIn,
-  expOut as easeExpOut,
-  expInOut as easeExpInOut
-} from "./exp.js";
-
-export {
-  circleInOut as easeCircle,
-  circleIn as easeCircleIn,
-  circleOut as easeCircleOut,
-  circleInOut as easeCircleInOut
-} from "./circle.js";
-
-export {
-  bounceOut as easeBounce,
-  bounceIn as easeBounceIn,
-  bounceOut as easeBounceOut,
-  bounceInOut as easeBounceInOut
-} from "./bounce.js";
-
-export {
-  backInOut as easeBack,
-  backIn as easeBackIn,
-  backOut as easeBackOut,
-  backInOut as easeBackInOut
-} from "./back.js";
-
-export {
-  elasticOut as easeElastic,
-  elasticIn as easeElasticIn,
-  elasticOut as easeElasticOut,
-  elasticInOut as easeElasticInOut
-} from "./elastic.js";
Index: de_modules/d3-ease/src/linear.js
===================================================================
--- node_modules/d3-ease/src/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export const linear = t => +t;
Index: de_modules/d3-ease/src/math.js
===================================================================
--- node_modules/d3-ease/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-// tpmt is two power minus ten times t scaled to [0,1]
-export function tpmt(x) {
-  return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
-}
Index: de_modules/d3-ease/src/poly.js
===================================================================
--- node_modules/d3-ease/src/poly.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-var exponent = 3;
-
-export var polyIn = (function custom(e) {
-  e = +e;
-
-  function polyIn(t) {
-    return Math.pow(t, e);
-  }
-
-  polyIn.exponent = custom;
-
-  return polyIn;
-})(exponent);
-
-export var polyOut = (function custom(e) {
-  e = +e;
-
-  function polyOut(t) {
-    return 1 - Math.pow(1 - t, e);
-  }
-
-  polyOut.exponent = custom;
-
-  return polyOut;
-})(exponent);
-
-export var polyInOut = (function custom(e) {
-  e = +e;
-
-  function polyInOut(t) {
-    return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
-  }
-
-  polyInOut.exponent = custom;
-
-  return polyInOut;
-})(exponent);
Index: de_modules/d3-ease/src/quad.js
===================================================================
--- node_modules/d3-ease/src/quad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export function quadIn(t) {
-  return t * t;
-}
-
-export function quadOut(t) {
-  return t * (2 - t);
-}
-
-export function quadInOut(t) {
-  return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
-}
Index: de_modules/d3-ease/src/sin.js
===================================================================
--- node_modules/d3-ease/src/sin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-var pi = Math.PI,
-    halfPi = pi / 2;
-
-export function sinIn(t) {
-  return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);
-}
-
-export function sinOut(t) {
-  return Math.sin(t * halfPi);
-}
-
-export function sinInOut(t) {
-  return (1 - Math.cos(pi * t)) / 2;
-}
Index: de_modules/d3-fetch/LICENSE
===================================================================
--- node_modules/d3-fetch/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2016-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-fetch/README.md
===================================================================
--- node_modules/d3-fetch/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-# d3-fetch
-
-This module provides convenient parsing on top of [Fetch](https://fetch.spec.whatwg.org/). For example, to load a text file:
-
-```js
-const text = await d3.text("/path/to/file.txt");
-console.log(text); // Hello, world!
-```
-
-To load and parse a CSV file:
-
-```js
-const data = await d3.csv("/path/to/file.csv");
-console.log(data); // [{"Hello": "world"}, …]
-```
-
-This module has built-in support for parsing [JSON](#json), [CSV](#csv), and [TSV](#tsv). You can parse additional formats by using [text](#text) directly. (This module replaced [d3-request](https://github.com/d3/d3-request).)
-
-## Installing
-
-If you use npm, `npm install d3-fetch`. You can also download the [latest release on GitHub](https://github.com/d3/d3-fetch/releases/latest). For vanilla HTML in modern browsers, import d3-fetch from Skypack:
-
-```html
-<script type="module">
-
-import {csv} from "https://cdn.skypack.dev/d3-fetch@3";
-
-csv("/path/to/file.csv").then((data) => {
-  console.log(data); // [{"Hello": "world"}, …]
-});
-
-</script>
-```
-
-For legacy environments, you can load d3-fetch’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-fetch@3"></script>
-<script>
-
-d3.csv("/path/to/file.csv").then((data) => {
-  console.log(data); // [{"Hello": "world"}, …]
-});
-
-</script>
-```
-
-## API Reference
-
-<a name="blob" href="#blob">#</a> d3.<b>blob</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/blob.js "Source")
-
-Fetches the binary file at the specified *input* URL as a Blob. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
-
-<a name="buffer" href="#buffer">#</a> d3.<b>buffer</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/buffer.js "Source")
-
-Fetches the binary file at the specified *input* URL as an ArrayBuffer. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
-
-<a name="csv" href="#csv">#</a> d3.<b>csv</b>(<i>input</i>[, <i>init</i>][, <i>row</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/dsv.js "Source")
-
-Equivalent to [d3.dsv](#dsv) with the comma character as the delimiter.
-
-<a name="dsv" href="#dsv">#</a> d3.<b>dsv</b>(<i>delimiter</i>, <i>input</i>[, <i>init</i>][, <i>row</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/dsv.js "Source")
-
-Fetches the [DSV](https://github.com/d3/d3-dsv) file at the specified *input* URL. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields. An optional *row* conversion function may be specified to map and filter row objects to a more-specific representation; see [*dsv*.parse](https://github.com/d3/d3-dsv#dsv_parse) for details. For example:
-
-```js
-const data = await d3.dsv(",", "test.csv", (d) => {
-  return {
-    year: new Date(+d.Year, 0, 1), // convert "Year" column to Date
-    make: d.Make,
-    model: d.Model,
-    length: +d.Length // convert "Length" column to number
-  };
-});
-```
-
-If only one of *init* and *row* is specified, it is interpreted as the *row* conversion function if it is a function, and otherwise an *init* object.
-
-See also [d3.csv](#csv) and [d3.tsv](#tsv).
-
-<a name="html" href="#html">#</a> d3.<b>html</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/xml.js "Source")
-
-Fetches the file at the specified *input* URL as [text](#text) and then [parses it](https://developer.mozilla.org/docs/Web/API/DOMParser) as HTML. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
-
-<a name="image" href="#image">#</a> d3.<b>image</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/image.js "Source")
-
-Fetches the image at the specified *input* URL. If *init* is specified, sets any additional properties on the image before loading. For example, to enable an anonymous [cross-origin request](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image):
-
-```js
-const img = await d3.image("https://example.com/test.png", {crossOrigin: "anonymous"});
-```
-
-<a name="json" href="#json">#</a> d3.<b>json</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/json.js "Source")
-
-Fetches the [JSON](http://json.org) file at the specified *input* URL. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields. If the server returns a status code of [204 No Content](https://developer.mozilla.org/docs/Web/HTTP/Status/204) or [205 Reset Content](https://developer.mozilla.org/docs/Web/HTTP/Status/205), the promise resolves to `undefined`.
-
-<a name="svg" href="#svg">#</a> d3.<b>svg</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/xml.js "Source")
-
-Fetches the file at the specified *input* URL as [text](#text) and then [parses it](https://developer.mozilla.org/docs/Web/API/DOMParser) as SVG. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
-
-<a name="text" href="#text">#</a> d3.<b>text</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/text.js "Source")
-
-Fetches the text file at the specified *input* URL. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
-
-<a name="tsv" href="#tsv">#</a> d3.<b>tsv</b>(<i>input</i>[, <i>init</i>][, <i>row</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/dsv.js "Source")
-
-Equivalent to [d3.dsv](#dsv) with the tab character as the delimiter.
-
-<a name="xml" href="#xml">#</a> d3.<b>xml</b>(<i>input</i>[, <i>init</i>]) · [Source](https://github.com/d3/d3-fetch/blob/master/src/xml.js "Source")
-
-Fetches the file at the specified *input* URL as [text](#text) and then [parses it](https://developer.mozilla.org/docs/Web/API/DOMParser) as XML. If *init* is specified, it is passed along to the underlying call to [fetch](https://fetch.spec.whatwg.org/#fetch-method); see [RequestInit](https://fetch.spec.whatwg.org/#requestinit) for allowed fields.
Index: de_modules/d3-fetch/dist/d3-fetch.js
===================================================================
--- node_modules/d3-fetch/dist/d3-fetch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-// https://d3js.org/d3-fetch/ v3.0.1 Copyright 2016-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-dsv')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-dsv'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-}(this, (function (exports, d3Dsv) { 'use strict';
-
-function responseBlob(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.blob();
-}
-
-function blob(input, init) {
-  return fetch(input, init).then(responseBlob);
-}
-
-function responseArrayBuffer(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.arrayBuffer();
-}
-
-function buffer(input, init) {
-  return fetch(input, init).then(responseArrayBuffer);
-}
-
-function responseText(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.text();
-}
-
-function text(input, init) {
-  return fetch(input, init).then(responseText);
-}
-
-function dsvParse(parse) {
-  return function(input, init, row) {
-    if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
-    return text(input, init).then(function(response) {
-      return parse(response, row);
-    });
-  };
-}
-
-function dsv(delimiter, input, init, row) {
-  if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
-  var format = d3Dsv.dsvFormat(delimiter);
-  return text(input, init).then(function(response) {
-    return format.parse(response, row);
-  });
-}
-
-var csv = dsvParse(d3Dsv.csvParse);
-var tsv = dsvParse(d3Dsv.tsvParse);
-
-function image(input, init) {
-  return new Promise(function(resolve, reject) {
-    var image = new Image;
-    for (var key in init) image[key] = init[key];
-    image.onerror = reject;
-    image.onload = function() { resolve(image); };
-    image.src = input;
-  });
-}
-
-function responseJson(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  if (response.status === 204 || response.status === 205) return;
-  return response.json();
-}
-
-function json(input, init) {
-  return fetch(input, init).then(responseJson);
-}
-
-function parser(type) {
-  return (input, init) => text(input, init)
-    .then(text => (new DOMParser).parseFromString(text, type));
-}
-
-var xml = parser("application/xml");
-
-var html = parser("text/html");
-
-var svg = parser("image/svg+xml");
-
-exports.blob = blob;
-exports.buffer = buffer;
-exports.csv = csv;
-exports.dsv = dsv;
-exports.html = html;
-exports.image = image;
-exports.json = json;
-exports.svg = svg;
-exports.text = text;
-exports.tsv = tsv;
-exports.xml = xml;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-fetch/dist/d3-fetch.min.js
===================================================================
--- node_modules/d3-fetch/dist/d3-fetch.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-fetch/ v3.0.1 Copyright 2016-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-dsv")):"function"==typeof define&&define.amd?define(["exports","d3-dsv"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3)}(this,(function(t,n){"use strict";function e(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function r(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function o(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function u(t,n){return fetch(t,n).then(o)}function f(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),u(n,e).then((function(n){return t(n,r)}))}}var s=f(n.csvParse),i=f(n.tsvParse);function a(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(204!==t.status&&205!==t.status)return t.json()}function c(t){return(n,e)=>u(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var d=c("application/xml"),h=c("text/html"),l=c("image/svg+xml");t.blob=function(t,n){return fetch(t,n).then(e)},t.buffer=function(t,n){return fetch(t,n).then(r)},t.csv=s,t.dsv=function(t,e,r,o){3===arguments.length&&"function"==typeof r&&(o=r,r=void 0);var f=n.dsvFormat(t);return u(e,r).then((function(t){return f.parse(t,o)}))},t.html=h,t.image=function(t,n){return new Promise((function(e,r){var o=new Image;for(var u in n)o[u]=n[u];o.onerror=r,o.onload=function(){e(o)},o.src=t}))},t.json=function(t,n){return fetch(t,n).then(a)},t.svg=l,t.text=u,t.tsv=i,t.xml=d,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-fetch/package.json
===================================================================
--- node_modules/d3-fetch/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-  "name": "d3-fetch",
-  "version": "3.0.1",
-  "description": "Convenient parsing for Fetch.",
-  "homepage": "https://d3js.org/d3-fetch/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-fetch.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "fetch",
-    "ajax",
-    "XMLHttpRequest"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-fetch.min.js",
-  "unpkg": "dist/d3-fetch.min.js",
-  "exports": {
-    "umd": "./dist/d3-fetch.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-dsv": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-fetch/src/blob.js
===================================================================
--- node_modules/d3-fetch/src/blob.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function responseBlob(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.blob();
-}
-
-export default function(input, init) {
-  return fetch(input, init).then(responseBlob);
-}
Index: de_modules/d3-fetch/src/buffer.js
===================================================================
--- node_modules/d3-fetch/src/buffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function responseArrayBuffer(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.arrayBuffer();
-}
-
-export default function(input, init) {
-  return fetch(input, init).then(responseArrayBuffer);
-}
Index: de_modules/d3-fetch/src/dsv.js
===================================================================
--- node_modules/d3-fetch/src/dsv.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import {csvParse, dsvFormat, tsvParse} from "d3-dsv";
-import text from "./text.js";
-
-function dsvParse(parse) {
-  return function(input, init, row) {
-    if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
-    return text(input, init).then(function(response) {
-      return parse(response, row);
-    });
-  };
-}
-
-export default function dsv(delimiter, input, init, row) {
-  if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
-  var format = dsvFormat(delimiter);
-  return text(input, init).then(function(response) {
-    return format.parse(response, row);
-  });
-}
-
-export var csv = dsvParse(csvParse);
-export var tsv = dsvParse(tsvParse);
Index: de_modules/d3-fetch/src/image.js
===================================================================
--- node_modules/d3-fetch/src/image.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function(input, init) {
-  return new Promise(function(resolve, reject) {
-    var image = new Image;
-    for (var key in init) image[key] = init[key];
-    image.onerror = reject;
-    image.onload = function() { resolve(image); };
-    image.src = input;
-  });
-}
Index: de_modules/d3-fetch/src/index.js
===================================================================
--- node_modules/d3-fetch/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export {default as blob} from "./blob.js";
-export {default as buffer} from "./buffer.js";
-export {default as dsv, csv, tsv} from "./dsv.js";
-export {default as image} from "./image.js";
-export {default as json} from "./json.js";
-export {default as text} from "./text.js";
-export {default as xml, html, svg} from "./xml.js";
Index: de_modules/d3-fetch/src/json.js
===================================================================
--- node_modules/d3-fetch/src/json.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function responseJson(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  if (response.status === 204 || response.status === 205) return;
-  return response.json();
-}
-
-export default function(input, init) {
-  return fetch(input, init).then(responseJson);
-}
Index: de_modules/d3-fetch/src/text.js
===================================================================
--- node_modules/d3-fetch/src/text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function responseText(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.text();
-}
-
-export default function(input, init) {
-  return fetch(input, init).then(responseText);
-}
Index: de_modules/d3-fetch/src/xml.js
===================================================================
--- node_modules/d3-fetch/src/xml.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import text from "./text.js";
-
-function parser(type) {
-  return (input, init) => text(input, init)
-    .then(text => (new DOMParser).parseFromString(text, type));
-}
-
-export default parser("application/xml");
-
-export var html = parser("text/html");
-
-export var svg = parser("image/svg+xml");
Index: de_modules/d3-force/LICENSE
===================================================================
--- node_modules/d3-force/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-force/README.md
===================================================================
--- node_modules/d3-force/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,480 +1,0 @@
-# d3-force
-
-This module implements a [velocity Verlet](https://en.wikipedia.org/wiki/Verlet_integration) numerical integrator for simulating physical forces on particles. The simulation is simplified: it assumes a constant unit time step Δ*t* = 1 for each step, and a constant unit mass *m* = 1 for all particles. As a result, a force *F* acting on a particle is equivalent to a constant acceleration *a* over the time interval Δ*t*, and can be simulated simply by adding to the particle’s velocity, which is then added to the particle’s position.
-
-In the domain of information visualization, physical simulations are useful for studying [networks](https://observablehq.com/@d3/force-directed-graph) and [hierarchies](https://observablehq.com/@d3/force-directed-tree)!
-
-[<img alt="Force-Directed Graph" src="https://raw.githubusercontent.com/d3/d3-force/master/img/graph.png" width="420" height="219">](https://observablehq.com/@d3/force-directed-graph)[<img alt="Force-Directed Tree" src="https://raw.githubusercontent.com/d3/d3-force/master/img/tree.png" width="420" height="219">](https://observablehq.com/@d3/force-directed-tree)
-
-You can also simulate circles (disks) with collision, such as for [bubble charts](http://www.nytimes.com/interactive/2012/09/06/us/politics/convention-word-counts.html) or [beeswarm plots](https://observablehq.com/@d3/beeswarm):
-
-[<img alt="Collision Detection" src="https://raw.githubusercontent.com/d3/d3-force/master/img/collide.png" width="420" height="219">](https://observablehq.com/@d3/collision-detection)[<img alt="Beeswarm" src="https://raw.githubusercontent.com/d3/d3-force/master/img/beeswarm.png" width="420" height="219">](https://observablehq.com/@d3/beeswarm)
-
-You can even use it as a rudimentary physics engine, say to simulate cloth:
-
-[<img alt="Force-Directed Lattice" src="https://raw.githubusercontent.com/d3/d3-force/master/img/lattice.png" width="480" height="250">](https://observablehq.com/@d3/force-directed-lattice)
-
-To use this module, create a [simulation](#simulation) for an array of [nodes](#simulation_nodes), and compose the desired [forces](#simulation_force). Then [listen](#simulation_on) for tick events to render the nodes as they update in your preferred graphics system, such as Canvas or SVG.
-
-## Installing
-
-If you use npm, `npm install d3-force`. You can also download the [latest release on GitHub](https://github.com/d3/d3-force/releases/latest). For vanilla HTML in modern browsers, import d3-force from Skypack:
-
-```html
-<script type="module">
-
-import {forceSimulation} from "https://cdn.skypack.dev/d3-force@3";
-
-const simulation = forceSimulation(nodes);
-
-</script>
-```
-
-For legacy environments, you can load d3-force’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-quadtree@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-timer@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-force@3"></script>
-<script>
-
-const simulation = d3.forceSimulation(nodes);
-
-</script>
-```
-
-[Try d3-force in your browser.](https://observablehq.com/collection/@d3/d3-force)
-
-## API Reference
-
-### Simulation
-
-<a name="forceSimulation" href="#forceSimulation">#</a> d3.<b>forceSimulation</b>([<i>nodes</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Creates a new simulation with the specified array of [*nodes*](#simulation_nodes) and no [forces](#simulation_force). If *nodes* is not specified, it defaults to the empty array. The simulator [starts](#simulation_restart) automatically; use [*simulation*.on](#simulation_on) to listen for tick events as the simulation runs. If you wish to run the simulation manually instead, call [*simulation*.stop](#simulation_stop), and then call [*simulation*.tick](#simulation_tick) as desired.
-
-<a name="simulation_restart" href="#simulation_restart">#</a> <i>simulation</i>.<b>restart</b>() · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Restarts the simulation’s internal timer and returns the simulation. In conjunction with [*simulation*.alphaTarget](#simulation_alphaTarget) or [*simulation*.alpha](#simulation_alpha), this method can be used to “reheat” the simulation during interaction, such as when dragging a node, or to resume the simulation after temporarily pausing it with [*simulation*.stop](#simulation_stop).
-
-<a name="simulation_stop" href="#simulation_stop">#</a> <i>simulation</i>.<b>stop</b>() · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Stops the simulation’s internal timer, if it is running, and returns the simulation. If the timer is already stopped, this method does nothing. This method is useful for running the simulation manually; see [*simulation*.tick](#simulation_tick).
-
-<a name="simulation_tick" href="#simulation_tick">#</a> <i>simulation</i>.<b>tick</b>([<i>iterations</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Manually steps the simulation by the specified number of *iterations*, and returns the simulation. If *iterations* is not specified, it defaults to 1 (single step).
-
-For each iteration, it increments the current [*alpha*](#simulation_alpha) by ([*alphaTarget*](#simulation_alphaTarget) - *alpha*) × [*alphaDecay*](#simulation_alphaDecay); then invokes each registered [force](#simulation_force), passing the new *alpha*; then decrements each [node](#simulation_nodes)’s velocity by *velocity* × [*velocityDecay*](#simulation_velocityDecay); lastly increments each node’s position by *velocity*.
-
-This method does not dispatch [events](#simulation_on); events are only dispatched by the internal timer when the simulation is started automatically upon [creation](#forceSimulation) or by calling [*simulation*.restart](#simulation_restart). The natural number of ticks when the simulation is started is ⌈*log*([*alphaMin*](#simulation_alphaMin)) / *log*(1 - [*alphaDecay*](#simulation_alphaDecay))⌉; by default, this is 300.
-
-This method can be used in conjunction with [*simulation*.stop](#simulation_stop) to compute a [static force layout](https://bl.ocks.org/mbostock/1667139). For large graphs, static layouts should be computed [in a web worker](https://bl.ocks.org/mbostock/01ab2e85e8727d6529d20391c0fd9a16) to avoid freezing the user interface.
-
-<a name="simulation_nodes" href="#simulation_nodes">#</a> <i>simulation</i>.<b>nodes</b>([<i>nodes</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *nodes* is specified, sets the simulation’s nodes to the specified array of objects, initializing their positions and velocities if necessary, and then [re-initializes](#force_initialize) any bound [forces](#simulation_force); returns the simulation. If *nodes* is not specified, returns the simulation’s array of nodes as specified to the [constructor](#forceSimulation).
-
-Each *node* must be an object. The following properties are assigned by the simulation:
-
-* `index` - the node’s zero-based index into *nodes*
-* `x` - the node’s current *x*-position
-* `y` - the node’s current *y*-position
-* `vx` - the node’s current *x*-velocity
-* `vy` - the node’s current *y*-velocity
-
-The position ⟨*x*,*y*⟩ and velocity ⟨*vx*,*vy*⟩ may be subsequently modified by [forces](#forces) and by the simulation. If either *vx* or *vy* is NaN, the velocity is initialized to ⟨0,0⟩. If either *x* or *y* is NaN, the position is initialized in a [phyllotaxis arrangement](https://observablehq.com/@d3/force-layout-phyllotaxis), so chosen to ensure a deterministic, uniform distribution.
-
-To fix a node in a given position, you may specify two additional properties:
-
-* `fx` - the node’s fixed *x*-position
-* `fy` - the node’s fixed *y*-position
-
-At the end of each [tick](#simulation_tick), after the application of any forces, a node with a defined *node*.fx has *node*.x reset to this value and *node*.vx set to zero; likewise, a node with a defined *node*.fy has *node*.y reset to this value and *node*.vy set to zero. To unfix a node that was previously fixed, set *node*.fx and *node*.fy to null, or delete these properties.
-
-If the specified array of *nodes* is modified, such as when nodes are added to or removed from the simulation, this method must be called again with the new (or changed) array to notify the simulation and bound forces of the change; the simulation does not make a defensive copy of the specified array.
-
-<a name="simulation_alpha" href="#simulation_alpha">#</a> <i>simulation</i>.<b>alpha</b>([<i>alpha</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-*alpha* is roughly analogous to temperature in [simulated annealing](https://en.wikipedia.org/wiki/Simulated_annealing#Overview). It decreases over time as the simulation “cools down”. When *alpha* reaches *alphaMin*, the simulation stops; see [*simulation*.restart](#simulation_restart).
-
-If *alpha* is specified, sets the current alpha to the specified number in the range [0,1] and returns this simulation. If *alpha* is not specified, returns the current alpha value, which defaults to 1.
-
-<a name="simulation_alphaMin" href="#simulation_alphaMin">#</a> <i>simulation</i>.<b>alphaMin</b>([<i>min</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *min* is specified, sets the minimum *alpha* to the specified number in the range [0,1] and returns this simulation. If *min* is not specified, returns the current minimum *alpha* value, which defaults to 0.001. The simulation’s internal timer stops when the current [*alpha*](#simulation_alpha) is less than the minimum *alpha*. The default [alpha decay rate](#simulation_alphaDecay) of ~0.0228 corresponds to 300 iterations.
-
-<a name="simulation_alphaDecay" href="#simulation_alphaDecay">#</a> <i>simulation</i>.<b>alphaDecay</b>([<i>decay</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *decay* is specified, sets the [*alpha*](#simulation_alpha) decay rate to the specified number in the range [0,1] and returns this simulation. If *decay* is not specified, returns the current *alpha* decay rate, which defaults to 0.0228… = 1 - *pow*(0.001, 1 / 300) where 0.001 is the default [minimum *alpha*](#simulation_alphaMin).
-
-The alpha decay rate determines how quickly the current alpha interpolates towards the desired [target *alpha*](#simulation_alphaTarget); since the default target *alpha* is zero, by default this controls how quickly the simulation cools. Higher decay rates cause the simulation to stabilize more quickly, but risk getting stuck in a local minimum; lower values cause the simulation to take longer to run, but typically converge on a better layout. To have the simulation run forever at the current *alpha*, set the *decay* rate to zero; alternatively, set a [target *alpha*](#simulation_alphaTarget) greater than the [minimum *alpha*](#simulation_alphaMin).
-
-<a name="simulation_alphaTarget" href="#simulation_alphaTarget">#</a> <i>simulation</i>.<b>alphaTarget</b>([<i>target</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *target* is specified, sets the current target [*alpha*](#simulation_alpha) to the specified number in the range [0,1] and returns this simulation. If *target* is not specified, returns the current target alpha value, which defaults to 0.
-
-<a name="simulation_velocityDecay" href="#simulation_velocityDecay">#</a> <i>simulation</i>.<b>velocityDecay</b>([<i>decay</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *decay* is specified, sets the velocity decay factor to the specified number in the range [0,1] and returns this simulation. If *decay* is not specified, returns the current velocity decay factor, which defaults to 0.4. The decay factor is akin to atmospheric friction; after the application of any forces during a [tick](#simulation_tick), each node’s velocity is multiplied by 1 - *decay*. As with lowering the [alpha decay rate](#simulation_alphaDecay), less velocity decay may converge on a better solution, but risks numerical instabilities and oscillation.
-
-<a name="simulation_force" href="#simulation_force">#</a> <i>simulation</i>.<b>force</b>(<i>name</i>[, <i>force</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *force* is specified, assigns the [force](#forces) for the specified *name* and returns this simulation. If *force* is not specified, returns the force with the specified name, or undefined if there is no such force. (By default, new simulations have no forces.) For example, to create a new simulation to layout a graph, you might say:
-
-```js
-var simulation = d3.forceSimulation(nodes)
-    .force("charge", d3.forceManyBody())
-    .force("link", d3.forceLink(links))
-    .force("center", d3.forceCenter());
-```
-
-To remove the force with the given *name*, pass null as the *force*. For example, to remove the charge force:
-
-```js
-simulation.force("charge", null);
-```
-
-<a name="simulation_find" href="#simulation_find">#</a> <i>simulation</i>.<b>find</b>(<i>x</i>, <i>y</i>[, <i>radius</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Returns the node closest to the position ⟨*x*,*y*⟩ with the given search *radius*. If *radius* is not specified, it defaults to infinity. If there is no node within the search area, returns undefined.
-
-<a name="simulation_randomSource" href="#simulation_randomSource">#</a> <i>simulation</i>.<b>randomSource</b>([<i>source</i>]) [<>](https://github.com/d3/d3-force/blob/master/src/simulation.js "Source"))
-
-If *source* is specified, sets the function used to generate random numbers; this should be a function that returns a number between 0 (inclusive) and 1 (exclusive). If *source* is not specified, returns this simulation’s current random source which defaults to a fixed-seed [linear congruential generator](https://en.wikipedia.org/wiki/Linear_congruential_generator). See also [*random*.source](https://github.com/d3/d3-random/blob/master/README.md#random_source).
-
-<a name="simulation_on" href="#simulation_on">#</a> <i>simulation</i>.<b>on</b>(<i>typenames</i>, [<i>listener</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-If *listener* is specified, sets the event *listener* for the specified *typenames* and returns this simulation. If an event listener was already registered for the same type and name, the existing listener is removed before the new listener is added. If *listener* is null, removes the current event listeners for the specified *typenames*, if any. If *listener* is not specified, returns the first currently-assigned listener matching the specified *typenames*, if any. When a specified event is dispatched, each *listener* will be invoked with the `this` context as the simulation.
-
-The *typenames* is a string containing one or more *typename* separated by whitespace. Each *typename* is a *type*, optionally followed by a period (`.`) and a *name*, such as `tick.foo` and `tick.bar`; the name allows multiple listeners to be registered for the same *type*. The *type* must be one of the following:
-
-* `tick` - after each tick of the simulation’s internal timer.
-* `end` - after the simulation’s timer stops when *alpha* < [*alphaMin*](#simulation_alphaMin).
-
-Note that *tick* events are not dispatched when [*simulation*.tick](#simulation_tick) is called manually; events are only dispatched by the internal timer and are intended for interactive rendering of the simulation. To affect the simulation, register [forces](#simulation_force) instead of modifying nodes’ positions or velocities inside a tick event listener.
-
-See [*dispatch*.on](https://github.com/d3/d3-dispatch#dispatch_on) for details.
-
-### Forces
-
-A *force* is simply a function that modifies nodes’ positions or velocities; in this context, a *force* can apply a classical physical force such as electrical charge or gravity, or it can resolve a geometric constraint, such as keeping nodes within a bounding box or keeping linked nodes a fixed distance apart. For example, a simple positioning force that moves nodes towards the origin ⟨0,0⟩ might be implemented as:
-
-```js
-function force(alpha) {
-  for (var i = 0, n = nodes.length, node, k = alpha * 0.1; i < n; ++i) {
-    node = nodes[i];
-    node.vx -= node.x * k;
-    node.vy -= node.y * k;
-  }
-}
-```
-
-Forces typically read the node’s current position ⟨*x*,*y*⟩ and then add to (or subtract from) the node’s velocity ⟨*vx*,*vy*⟩. However, forces may also “peek ahead” to the anticipated next position of the node, ⟨*x* + *vx*,*y* + *vy*⟩; this is necessary for resolving geometric constraints through [iterative relaxation](https://en.wikipedia.org/wiki/Relaxation_\(iterative_method\)). Forces may also modify the position directly, which is sometimes useful to avoid adding energy to the simulation, such as when recentering the simulation in the viewport.
-
-Simulations typically compose multiple forces as desired. This module provides several for your enjoyment:
-
-* [Centering](#centering)
-* [Collision](#collision)
-* [Links](#links)
-* [Many-Body](#many-body)
-* [Positioning](#positioning)
-
-Forces may optionally implement [*force*.initialize](#force_initialize) to receive the simulation’s array of nodes.
-
-<a name="_force" href="#_force">#</a> <i>force</i>(<i>alpha</i>) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Applies this force, optionally observing the specified *alpha*. Typically, the force is applied to the array of nodes previously passed to [*force*.initialize](#force_initialize), however, some forces may apply to a subset of nodes, or behave differently. For example, [d3.forceLink](#links) applies to the source and target of each link.
-
-<a name="force_initialize" href="#force_initialize">#</a> <i>force</i>.<b>initialize</b>(<i>nodes</i>) · [Source](https://github.com/d3/d3-force/blob/master/src/simulation.js)
-
-Supplies the array of *nodes* and *random* source to this force. This method is called when a force is bound to a simulation via [*simulation*.force](#simulation_force) and when the simulation’s nodes change via [*simulation*.nodes](#simulation_nodes). A force may perform necessary work during initialization, such as evaluating per-node parameters, to avoid repeatedly performing work during each application of the force.
-
-#### Centering
-
-The centering force translates nodes uniformly so that the mean position of all nodes (the center of mass if all nodes have equal weight) is at the given position ⟨[*x*](#center_x),[*y*](#center_y)⟩. This force modifies the positions of nodes on each application; it does not modify velocities, as doing so would typically cause the nodes to overshoot and oscillate around the desired center. This force helps keeps nodes in the center of the viewport, and unlike the [positioning force](#positioning), it does not distort their relative positions.
-
-<a name="forceCenter" href="#forceCenter">#</a> d3.<b>forceCenter</b>([<i>x</i>, <i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/center.js)
-
-Creates a new centering force with the specified [*x*-](#center_x) and [*y*-](#center_y) coordinates. If *x* and *y* are not specified, they default to ⟨0,0⟩.
-
-<a name="center_x" href="#center_x">#</a> <i>center</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/center.js)
-
-If *x* is specified, sets the *x*-coordinate of the centering position to the specified number and returns this force. If *x* is not specified, returns the current *x*-coordinate, which defaults to zero.
-
-<a name="center_y" href="#center_y">#</a> <i>center</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/center.js)
-
-If *y* is specified, sets the *y*-coordinate of the centering position to the specified number and returns this force. If *y* is not specified, returns the current *y*-coordinate, which defaults to zero.
-
-<a name="center_strength" href="#center_strength">#</a> <i>center</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/center.js), [Examples](https://observablehq.com/@d3/forcecenter-strength)
-
-If *strength* is specified, sets the centering force’s strength. A reduced strength of e.g. 0.05 softens the movements on interactive graphs in which new nodes enter or exit the graph. If *strength* is not specified, returns the force’s current strength, which defaults to 1.
-
-#### Collision
-
-The collision force treats nodes as circles with a given [radius](#collide_radius), rather than points, and prevents nodes from overlapping. More formally, two nodes *a* and *b* are separated so that the distance between *a* and *b* is at least *radius*(*a*) + *radius*(*b*). To reduce jitter, this is by default a “soft” constraint with a configurable [strength](#collide_strength) and [iteration count](#collide_iterations).
-
-<a name="forceCollide" href="#forceCollide">#</a> d3.<b>forceCollide</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/collide.js)
-
-Creates a new circle collision force with the specified [*radius*](#collide_radius). If *radius* is not specified, it defaults to the constant one for all nodes.
-
-<a name="collide_radius" href="#collide_radius">#</a> <i>collide</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/collide.js)
-
-If *radius* is specified, sets the radius accessor to the specified number or function, re-evaluates the radius accessor for each node, and returns this force. If *radius* is not specified, returns the current radius accessor, which defaults to:
-
-```js
-function radius() {
-  return 1;
-}
-```
-
-The radius accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the radius of each node is only recomputed when the force is initialized or when this method is called with a new *radius*, and not on every application of the force.
-
-<a name="collide_strength" href="#collide_strength">#</a> <i>collide</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/collide.js)
-
-If *strength* is specified, sets the force strength to the specified number in the range [0,1] and returns this force. If *strength* is not specified, returns the current strength which defaults to 1.
-
-Overlapping nodes are resolved through iterative relaxation. For each node, the other nodes that are anticipated to overlap at the next tick (using the anticipated positions ⟨*x* + *vx*,*y* + *vy*⟩) are determined; the node’s velocity is then modified to push the node out of each overlapping node. The change in velocity is dampened by the force’s strength such that the resolution of simultaneous overlaps can be blended together to find a stable solution.
-
-<a name="collide_iterations" href="#collide_iterations">#</a> <i>collide</i>.<b>iterations</b>([<i>iterations</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/collide.js)
-
-If *iterations* is specified, sets the number of iterations per application to the specified number and returns this force. If *iterations* is not specified, returns the current iteration count which defaults to 1. Increasing the number of iterations greatly increases the rigidity of the constraint and avoids partial overlap of nodes, but also increases the runtime cost to evaluate the force.
-
-#### Links
-
-The link force pushes linked nodes together or apart according to the desired [link distance](#link_distance). The strength of the force is proportional to the difference between the linked nodes’ distance and the target distance, similar to a spring force.
-
-<a name="forceLink" href="#forceLink">#</a> d3.<b>forceLink</b>([<i>links</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-Creates a new link force with the specified *links* and default parameters. If *links* is not specified, it defaults to the empty array.
-
-<a name="link_links" href="#link_links">#</a> <i>link</i>.<b>links</b>([<i>links</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-If *links* is specified, sets the array of links associated with this force, recomputes the [distance](#link_distance) and [strength](#link_strength) parameters for each link, and returns this force. If *links* is not specified, returns the current array of links, which defaults to the empty array.
-
-Each link is an object with the following properties:
-
-* `source` - the link’s source node; see [*simulation*.nodes](#simulation_nodes)
-* `target` - the link’s target node; see [*simulation*.nodes](#simulation_nodes)
-* `index` - the zero-based index into *links*, assigned by this method
-
-For convenience, a link’s source and target properties may be initialized using numeric or string identifiers rather than object references; see [*link*.id](#link_id). When the link force is [initialized](#force_initialize) (or re-initialized, as when the nodes or links change), any *link*.source or *link*.target property which is *not* an object is replaced by an object reference to the corresponding *node* with the given identifier.
-
-If the specified array of *links* is modified, such as when links are added to or removed from the simulation, this method must be called again with the new (or changed) array to notify the force of the change; the force does not make a defensive copy of the specified array.
-
-<a name="link_id" href="#link_id">#</a> <i>link</i>.<b>id</b>([<i>id</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-If *id* is specified, sets the node id accessor to the specified function and returns this force. If *id* is not specified, returns the current node id accessor, which defaults to the numeric *node*.index:
-
-```js
-function id(d) {
-  return d.index;
-}
-```
-
-The default id accessor allows each link’s source and target to be specified as a zero-based index into the [nodes](#simulation_nodes) array. For example:
-
-```js
-var nodes = [
-  {"id": "Alice"},
-  {"id": "Bob"},
-  {"id": "Carol"}
-];
-
-var links = [
-  {"source": 0, "target": 1}, // Alice → Bob
-  {"source": 1, "target": 2} // Bob → Carol
-];
-```
-
-Now consider a different id accessor that returns a string:
-
-```js
-function id(d) {
-  return d.id;
-}
-```
-
-With this accessor, you can use named sources and targets:
-
-```js
-var nodes = [
-  {"id": "Alice"},
-  {"id": "Bob"},
-  {"id": "Carol"}
-];
-
-var links = [
-  {"source": "Alice", "target": "Bob"},
-  {"source": "Bob", "target": "Carol"}
-];
-```
-
-This is particularly useful when representing graphs in JSON, as JSON does not allow references. See [this example](https://bl.ocks.org/mbostock/f584aa36df54c451c94a9d0798caed35).
-
-The id accessor is invoked for each node whenever the force is initialized, as when the [nodes](#simulation_nodes) or [links](#link_links) change, being passed the node and its zero-based index.
-
-<a name="link_distance" href="#link_distance">#</a> <i>link</i>.<b>distance</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-If *distance* is specified, sets the distance accessor to the specified number or function, re-evaluates the distance accessor for each link, and returns this force. If *distance* is not specified, returns the current distance accessor, which defaults to:
-
-```js
-function distance() {
-  return 30;
-}
-```
-
-The distance accessor is invoked for each [link](#link_links), being passed the *link* and its zero-based *index*. The resulting number is then stored internally, such that the distance of each link is only recomputed when the force is initialized or when this method is called with a new *distance*, and not on every application of the force.
-
-<a name="link_strength" href="#link_strength">#</a> <i>link</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-If *strength* is specified, sets the strength accessor to the specified number or function, re-evaluates the strength accessor for each link, and returns this force. If *strength* is not specified, returns the current strength accessor, which defaults to:
-
-```js
-function strength(link) {
-  return 1 / Math.min(count(link.source), count(link.target));
-}
-```
-
-Where *count*(*node*) is a function that returns the number of links with the given node as a source or target. This default was chosen because it automatically reduces the strength of links connected to heavily-connected nodes, improving stability.
-
-The strength accessor is invoked for each [link](#link_links), being passed the *link* and its zero-based *index*. The resulting number is then stored internally, such that the strength of each link is only recomputed when the force is initialized or when this method is called with a new *strength*, and not on every application of the force.
-
-<a name="link_iterations" href="#link_iterations">#</a> <i>link</i>.<b>iterations</b>([<i>iterations</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/link.js)
-
-If *iterations* is specified, sets the number of iterations per application to the specified number and returns this force. If *iterations* is not specified, returns the current iteration count which defaults to 1. Increasing the number of iterations greatly increases the rigidity of the constraint and is useful for [complex structures such as lattices](https://observablehq.com/@d3/force-directed-lattice), but also increases the runtime cost to evaluate the force.
-
-#### Many-Body
-
-The many-body (or *n*-body) force applies mutually amongst all [nodes](#simulation_nodes). It can be used to simulate gravity (attraction) if the [strength](#manyBody_strength) is positive, or electrostatic charge (repulsion) if the strength is negative. This implementation uses quadtrees and the [Barnes–Hut approximation](https://en.wikipedia.org/wiki/Barnes–Hut_simulation) to greatly improve performance; the accuracy can be customized using the [theta](#manyBody_theta) parameter.
-
-Unlike links, which only affect two linked nodes, the charge force is global: every node affects every other node, even if they are on disconnected subgraphs.
-
-<a name="forceManyBody" href="#forceManyBody">#</a> d3.<b>forceManyBody</b>() · [Source](https://github.com/d3/d3-force/blob/master/src/manyBody.js)
-
-Creates a new many-body force with the default parameters.
-
-<a name="manyBody_strength" href="#manyBody_strength">#</a> <i>manyBody</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/manyBody.js)
-
-If *strength* is specified, sets the strength accessor to the specified number or function, re-evaluates the strength accessor for each node, and returns this force. A positive value causes nodes to attract each other, similar to gravity, while a negative value causes nodes to repel each other, similar to electrostatic charge. If *strength* is not specified, returns the current strength accessor, which defaults to:
-
-```js
-function strength() {
-  return -30;
-}
-```
-
-The strength accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the strength of each node is only recomputed when the force is initialized or when this method is called with a new *strength*, and not on every application of the force.
-
-<a name="manyBody_theta" href="#manyBody_theta">#</a> <i>manyBody</i>.<b>theta</b>([<i>theta</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/manyBody.js)
-
-If *theta* is specified, sets the Barnes–Hut approximation criterion to the specified number and returns this force. If *theta* is not specified, returns the current value, which defaults to 0.9.
-
-To accelerate computation, this force implements the [Barnes–Hut approximation](http://en.wikipedia.org/wiki/Barnes–Hut_simulation) which takes O(*n* log *n*) per application where *n* is the number of [nodes](#simulation_nodes). For each application, a [quadtree](https://github.com/d3/d3-quadtree) stores the current node positions; then for each node, the combined force of all other nodes on the given node is computed. For a cluster of nodes that is far away, the charge force can be approximated by treating the cluster as a single, larger node. The *theta* parameter determines the accuracy of the approximation: if the ratio *w* / *l* of the width *w* of the quadtree cell to the distance *l* from the node to the cell’s center of mass is less than *theta*, all nodes in the given cell are treated as a single node rather than individually.
-
-<a name="manyBody_distanceMin" href="#manyBody_distanceMin">#</a> <i>manyBody</i>.<b>distanceMin</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/manyBody.js)
-
-If *distance* is specified, sets the minimum distance between nodes over which this force is considered. If *distance* is not specified, returns the current minimum distance, which defaults to 1. A minimum distance establishes an upper bound on the strength of the force between two nearby nodes, avoiding instability. In particular, it avoids an infinitely-strong force if two nodes are exactly coincident; in this case, the direction of the force is random.
-
-<a name="manyBody_distanceMax" href="#manyBody_distanceMax">#</a> <i>manyBody</i>.<b>distanceMax</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/manyBody.js)
-
-If *distance* is specified, sets the maximum distance between nodes over which this force is considered. If *distance* is not specified, returns the current maximum distance, which defaults to infinity. Specifying a finite maximum distance improves performance and produces a more localized layout.
-
-#### Positioning
-
-The [*x*](#forceX)- and [*y*](#forceY)-positioning forces push nodes towards a desired position along the given dimension with a configurable strength. The [*radial*](#forceRadial) force is similar, except it pushes nodes towards the closest point on a given circle. The strength of the force is proportional to the one-dimensional distance between the node’s position and the target position. While these forces can be used to position individual nodes, they are intended primarily for global forces that apply to all (or most) nodes.
-
-<a name="forceX" href="#forceX">#</a> d3.<b>forceX</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/x.js)
-
-Creates a new positioning force along the *x*-axis towards the given position [*x*](#x_x). If *x* is not specified, it defaults to 0.
-
-<a name="x_strength" href="#x_strength">#</a> <i>x</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/x.js)
-
-If *strength* is specified, sets the strength accessor to the specified number or function, re-evaluates the strength accessor for each node, and returns this force. The *strength* determines how much to increment the node’s *x*-velocity: ([*x*](#x_x) - *node*.x) × *strength*. For example, a value of 0.1 indicates that the node should move a tenth of the way from its current *x*-position to the target *x*-position with each application. Higher values moves nodes more quickly to the target position, often at the expense of other forces or constraints. A value outside the range [0,1] is not recommended.
-
-If *strength* is not specified, returns the current strength accessor, which defaults to:
-
-```js
-function strength() {
-  return 0.1;
-}
-```
-
-The strength accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the strength of each node is only recomputed when the force is initialized or when this method is called with a new *strength*, and not on every application of the force.
-
-<a name="x_x" href="#x_x">#</a> <i>x</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/x.js)
-
-If *x* is specified, sets the *x*-coordinate accessor to the specified number or function, re-evaluates the *x*-accessor for each node, and returns this force. If *x* is not specified, returns the current *x*-accessor, which defaults to:
-
-```js
-function x() {
-  return 0;
-}
-```
-
-The *x*-accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the target *x*-coordinate of each node is only recomputed when the force is initialized or when this method is called with a new *x*, and not on every application of the force.
-
-<a name="forceY" href="#forceY">#</a> d3.<b>forceY</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/y.js)
-
-Creates a new positioning force along the *y*-axis towards the given position [*y*](#y_y). If *y* is not specified, it defaults to 0.
-
-<a name="y_strength" href="#y_strength">#</a> <i>y</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/y.js)
-
-If *strength* is specified, sets the strength accessor to the specified number or function, re-evaluates the strength accessor for each node, and returns this force. The *strength* determines how much to increment the node’s *y*-velocity: ([*y*](#y_y) - *node*.y) × *strength*. For example, a value of 0.1 indicates that the node should move a tenth of the way from its current *y*-position to the target *y*-position with each application. Higher values moves nodes more quickly to the target position, often at the expense of other forces or constraints. A value outside the range [0,1] is not recommended.
-
-If *strength* is not specified, returns the current strength accessor, which defaults to:
-
-```js
-function strength() {
-  return 0.1;
-}
-```
-
-The strength accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the strength of each node is only recomputed when the force is initialized or when this method is called with a new *strength*, and not on every application of the force.
-
-<a name="y_y" href="#y_y">#</a> <i>y</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/y.js)
-
-If *y* is specified, sets the *y*-coordinate accessor to the specified number or function, re-evaluates the *y*-accessor for each node, and returns this force. If *y* is not specified, returns the current *y*-accessor, which defaults to:
-
-```js
-function y() {
-  return 0;
-}
-```
-
-The *y*-accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the target *y*-coordinate of each node is only recomputed when the force is initialized or when this method is called with a new *y*, and not on every application of the force.
-
-<a name="forceRadial" href="#forceRadial">#</a> d3.<b>forceRadial</b>(<i>radius</i>[, <i>x</i>][, <i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/radial.js)
-
-[<img alt="Radial Force" src="https://raw.githubusercontent.com/d3/d3-force/master/img/radial.png" width="420" height="219">](https://bl.ocks.org/mbostock/cd98bf52e9067e26945edd95e8cf6ef9)
-
-Creates a new positioning force towards a circle of the specified [*radius*](#radial_radius) centered at ⟨[*x*](#radial_x),[*y*](#radial_y)⟩. If *x* and *y* are not specified, they default to ⟨0,0⟩.
-
-<a name="radial_strength" href="#radial_strength">#</a> <i>radial</i>.<b>strength</b>([<i>strength</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/radial.js)
-
-If *strength* is specified, sets the strength accessor to the specified number or function, re-evaluates the strength accessor for each node, and returns this force. The *strength* determines how much to increment the node’s *x*- and *y*-velocity. For example, a value of 0.1 indicates that the node should move a tenth of the way from its current position to the closest point on the circle with each application. Higher values moves nodes more quickly to the target position, often at the expense of other forces or constraints. A value outside the range [0,1] is not recommended.
-
-If *strength* is not specified, returns the current strength accessor, which defaults to:
-
-```js
-function strength() {
-  return 0.1;
-}
-```
-
-The strength accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the strength of each node is only recomputed when the force is initialized or when this method is called with a new *strength*, and not on every application of the force.
-
-<a name="radial_radius" href="#radial_radius">#</a> <i>radial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/radial.js)
-
-If *radius* is specified, sets the circle *radius* to the specified number or function, re-evaluates the *radius* accessor for each node, and returns this force. If *radius* is not specified, returns the current *radius* accessor.
-
-The *radius* accessor is invoked for each [node](#simulation_nodes) in the simulation, being passed the *node* and its zero-based *index*. The resulting number is then stored internally, such that the target radius of each node is only recomputed when the force is initialized or when this method is called with a new *radius*, and not on every application of the force.
-
-<a name="radial_x" href="#radial_x">#</a> <i>radial</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/radial.js)
-
-If *x* is specified, sets the *x*-coordinate of the circle center to the specified number and returns this force. If *x* is not specified, returns the current *x*-coordinate of the center, which defaults to zero.
-
-<a name="radial_y" href="#radial_y">#</a> <i>radial</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-force/blob/master/src/radial.js)
-
-If *y* is specified, sets the *y*-coordinate of the circle center to the specified number and returns this force. If *y* is not specified, returns the current *y*-coordinate of the center, which defaults to zero.
Index: de_modules/d3-force/dist/d3-force.js
===================================================================
--- node_modules/d3-force/dist/d3-force.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,693 +1,0 @@
-// https://d3js.org/d3-force/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-quadtree'), require('d3-dispatch'), require('d3-timer')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-quadtree', 'd3-dispatch', 'd3-timer'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3));
-}(this, (function (exports, d3Quadtree, d3Dispatch, d3Timer) { 'use strict';
-
-function center(x, y) {
-  var nodes, strength = 1;
-
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force() {
-    var i,
-        n = nodes.length,
-        node,
-        sx = 0,
-        sy = 0;
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i], sx += node.x, sy += node.y;
-    }
-
-    for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {
-      node = nodes[i], node.x -= sx, node.y -= sy;
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  return force;
-}
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-function jiggle(random) {
-  return (random() - 0.5) * 1e-6;
-}
-
-function x$2(d) {
-  return d.x + d.vx;
-}
-
-function y$2(d) {
-  return d.y + d.vy;
-}
-
-function collide(radius) {
-  var nodes,
-      radii,
-      random,
-      strength = 1,
-      iterations = 1;
-
-  if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius);
-
-  function force() {
-    var i, n = nodes.length,
-        tree,
-        node,
-        xi,
-        yi,
-        ri,
-        ri2;
-
-    for (var k = 0; k < iterations; ++k) {
-      tree = d3Quadtree.quadtree(nodes, x$2, y$2).visitAfter(prepare);
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        ri = radii[node.index], ri2 = ri * ri;
-        xi = node.x + node.vx;
-        yi = node.y + node.vy;
-        tree.visit(apply);
-      }
-    }
-
-    function apply(quad, x0, y0, x1, y1) {
-      var data = quad.data, rj = quad.r, r = ri + rj;
-      if (data) {
-        if (data.index > node.index) {
-          var x = xi - data.x - data.vx,
-              y = yi - data.y - data.vy,
-              l = x * x + y * y;
-          if (l < r * r) {
-            if (x === 0) x = jiggle(random), l += x * x;
-            if (y === 0) y = jiggle(random), l += y * y;
-            l = (r - (l = Math.sqrt(l))) / l * strength;
-            node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
-            node.vy += (y *= l) * r;
-            data.vx -= x * (r = 1 - r);
-            data.vy -= y * r;
-          }
-        }
-        return;
-      }
-      return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
-    }
-  }
-
-  function prepare(quad) {
-    if (quad.data) return quad.r = radii[quad.data.index];
-    for (var i = quad.r = 0; i < 4; ++i) {
-      if (quad[i] && quad[i].r > quad.r) {
-        quad.r = quad[i].r;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    radii = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
-  };
-
-  return force;
-}
-
-function index(d) {
-  return d.index;
-}
-
-function find(nodeById, nodeId) {
-  var node = nodeById.get(nodeId);
-  if (!node) throw new Error("node not found: " + nodeId);
-  return node;
-}
-
-function link(links) {
-  var id = index,
-      strength = defaultStrength,
-      strengths,
-      distance = constant(30),
-      distances,
-      nodes,
-      count,
-      bias,
-      random,
-      iterations = 1;
-
-  if (links == null) links = [];
-
-  function defaultStrength(link) {
-    return 1 / Math.min(count[link.source.index], count[link.target.index]);
-  }
-
-  function force(alpha) {
-    for (var k = 0, n = links.length; k < iterations; ++k) {
-      for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
-        link = links[i], source = link.source, target = link.target;
-        x = target.x + target.vx - source.x - source.vx || jiggle(random);
-        y = target.y + target.vy - source.y - source.vy || jiggle(random);
-        l = Math.sqrt(x * x + y * y);
-        l = (l - distances[i]) / l * alpha * strengths[i];
-        x *= l, y *= l;
-        target.vx -= x * (b = bias[i]);
-        target.vy -= y * b;
-        source.vx += x * (b = 1 - b);
-        source.vy += y * b;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-
-    var i,
-        n = nodes.length,
-        m = links.length,
-        nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
-        link;
-
-    for (i = 0, count = new Array(n); i < m; ++i) {
-      link = links[i], link.index = i;
-      if (typeof link.source !== "object") link.source = find(nodeById, link.source);
-      if (typeof link.target !== "object") link.target = find(nodeById, link.target);
-      count[link.source.index] = (count[link.source.index] || 0) + 1;
-      count[link.target.index] = (count[link.target.index] || 0) + 1;
-    }
-
-    for (i = 0, bias = new Array(m); i < m; ++i) {
-      link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
-    }
-
-    strengths = new Array(m), initializeStrength();
-    distances = new Array(m), initializeDistance();
-  }
-
-  function initializeStrength() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      strengths[i] = +strength(links[i], i, links);
-    }
-  }
-
-  function initializeDistance() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      distances[i] = +distance(links[i], i, links);
-    }
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.links = function(_) {
-    return arguments.length ? (links = _, initialize(), force) : links;
-  };
-
-  force.id = function(_) {
-    return arguments.length ? (id = _, force) : id;
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength;
-  };
-
-  force.distance = function(_) {
-    return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance;
-  };
-
-  return force;
-}
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a = 1664525;
-const c = 1013904223;
-const m = 4294967296; // 2^32
-
-function lcg() {
-  let s = 1;
-  return () => (s = (a * s + c) % m) / m;
-}
-
-function x$1(d) {
-  return d.x;
-}
-
-function y$1(d) {
-  return d.y;
-}
-
-var initialRadius = 10,
-    initialAngle = Math.PI * (3 - Math.sqrt(5));
-
-function simulation(nodes) {
-  var simulation,
-      alpha = 1,
-      alphaMin = 0.001,
-      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
-      alphaTarget = 0,
-      velocityDecay = 0.6,
-      forces = new Map(),
-      stepper = d3Timer.timer(step),
-      event = d3Dispatch.dispatch("tick", "end"),
-      random = lcg();
-
-  if (nodes == null) nodes = [];
-
-  function step() {
-    tick();
-    event.call("tick", simulation);
-    if (alpha < alphaMin) {
-      stepper.stop();
-      event.call("end", simulation);
-    }
-  }
-
-  function tick(iterations) {
-    var i, n = nodes.length, node;
-
-    if (iterations === undefined) iterations = 1;
-
-    for (var k = 0; k < iterations; ++k) {
-      alpha += (alphaTarget - alpha) * alphaDecay;
-
-      forces.forEach(function(force) {
-        force(alpha);
-      });
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        if (node.fx == null) node.x += node.vx *= velocityDecay;
-        else node.x = node.fx, node.vx = 0;
-        if (node.fy == null) node.y += node.vy *= velocityDecay;
-        else node.y = node.fy, node.vy = 0;
-      }
-    }
-
-    return simulation;
-  }
-
-  function initializeNodes() {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.index = i;
-      if (node.fx != null) node.x = node.fx;
-      if (node.fy != null) node.y = node.fy;
-      if (isNaN(node.x) || isNaN(node.y)) {
-        var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;
-        node.x = radius * Math.cos(angle);
-        node.y = radius * Math.sin(angle);
-      }
-      if (isNaN(node.vx) || isNaN(node.vy)) {
-        node.vx = node.vy = 0;
-      }
-    }
-  }
-
-  function initializeForce(force) {
-    if (force.initialize) force.initialize(nodes, random);
-    return force;
-  }
-
-  initializeNodes();
-
-  return simulation = {
-    tick: tick,
-
-    restart: function() {
-      return stepper.restart(step), simulation;
-    },
-
-    stop: function() {
-      return stepper.stop(), simulation;
-    },
-
-    nodes: function(_) {
-      return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
-    },
-
-    alpha: function(_) {
-      return arguments.length ? (alpha = +_, simulation) : alpha;
-    },
-
-    alphaMin: function(_) {
-      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
-    },
-
-    alphaDecay: function(_) {
-      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
-    },
-
-    alphaTarget: function(_) {
-      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
-    },
-
-    velocityDecay: function(_) {
-      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
-    },
-
-    randomSource: function(_) {
-      return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
-    },
-
-    force: function(name, _) {
-      return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
-    },
-
-    find: function(x, y, radius) {
-      var i = 0,
-          n = nodes.length,
-          dx,
-          dy,
-          d2,
-          node,
-          closest;
-
-      if (radius == null) radius = Infinity;
-      else radius *= radius;
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        dx = x - node.x;
-        dy = y - node.y;
-        d2 = dx * dx + dy * dy;
-        if (d2 < radius) closest = node, radius = d2;
-      }
-
-      return closest;
-    },
-
-    on: function(name, _) {
-      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
-    }
-  };
-}
-
-function manyBody() {
-  var nodes,
-      node,
-      random,
-      alpha,
-      strength = constant(-30),
-      strengths,
-      distanceMin2 = 1,
-      distanceMax2 = Infinity,
-      theta2 = 0.81;
-
-  function force(_) {
-    var i, n = nodes.length, tree = d3Quadtree.quadtree(nodes, x$1, y$1).visitAfter(accumulate);
-    for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    strengths = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
-  }
-
-  function accumulate(quad) {
-    var strength = 0, q, c, weight = 0, x, y, i;
-
-    // For internal nodes, accumulate forces from child quadrants.
-    if (quad.length) {
-      for (x = y = i = 0; i < 4; ++i) {
-        if ((q = quad[i]) && (c = Math.abs(q.value))) {
-          strength += q.value, weight += c, x += c * q.x, y += c * q.y;
-        }
-      }
-      quad.x = x / weight;
-      quad.y = y / weight;
-    }
-
-    // For leaf nodes, accumulate forces from coincident quadrants.
-    else {
-      q = quad;
-      q.x = q.data.x;
-      q.y = q.data.y;
-      do strength += strengths[q.data.index];
-      while (q = q.next);
-    }
-
-    quad.value = strength;
-  }
-
-  function apply(quad, x1, _, x2) {
-    if (!quad.value) return true;
-
-    var x = quad.x - node.x,
-        y = quad.y - node.y,
-        w = x2 - x1,
-        l = x * x + y * y;
-
-    // Apply the Barnes-Hut approximation if possible.
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (w * w / theta2 < l) {
-      if (l < distanceMax2) {
-        if (x === 0) x = jiggle(random), l += x * x;
-        if (y === 0) y = jiggle(random), l += y * y;
-        if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-        node.vx += x * quad.value * alpha / l;
-        node.vy += y * quad.value * alpha / l;
-      }
-      return true;
-    }
-
-    // Otherwise, process points directly.
-    else if (quad.length || l >= distanceMax2) return;
-
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (quad.data !== node || quad.next) {
-      if (x === 0) x = jiggle(random), l += x * x;
-      if (y === 0) y = jiggle(random), l += y * y;
-      if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-    }
-
-    do if (quad.data !== node) {
-      w = strengths[quad.data.index] * alpha / l;
-      node.vx += x * w;
-      node.vy += y * w;
-    } while (quad = quad.next);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.distanceMin = function(_) {
-    return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
-  };
-
-  force.distanceMax = function(_) {
-    return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
-  };
-
-  force.theta = function(_) {
-    return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
-  };
-
-  return force;
-}
-
-function radial(radius, x, y) {
-  var nodes,
-      strength = constant(0.1),
-      strengths,
-      radiuses;
-
-  if (typeof radius !== "function") radius = constant(+radius);
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length; i < n; ++i) {
-      var node = nodes[i],
-          dx = node.x - x || 1e-6,
-          dy = node.y - y || 1e-6,
-          r = Math.sqrt(dx * dx + dy * dy),
-          k = (radiuses[i] - r) * strengths[i] * alpha / r;
-      node.vx += dx * k;
-      node.vy += dy * k;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    radiuses = new Array(n);
-    for (i = 0; i < n; ++i) {
-      radiuses[i] = +radius(nodes[i], i, nodes);
-      strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _, initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  return force;
-}
-
-function x(x) {
-  var strength = constant(0.1),
-      nodes,
-      strengths,
-      xz;
-
-  if (typeof x !== "function") x = constant(x == null ? 0 : +x);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    xz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x;
-  };
-
-  return force;
-}
-
-function y(y) {
-  var strength = constant(0.1),
-      nodes,
-      strengths,
-      yz;
-
-  if (typeof y !== "function") y = constant(y == null ? 0 : +y);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    yz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y;
-  };
-
-  return force;
-}
-
-exports.forceCenter = center;
-exports.forceCollide = collide;
-exports.forceLink = link;
-exports.forceManyBody = manyBody;
-exports.forceRadial = radial;
-exports.forceSimulation = simulation;
-exports.forceX = x;
-exports.forceY = y;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-force/dist/d3-force.min.js
===================================================================
--- node_modules/d3-force/dist/d3-force.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-force/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-quadtree"),require("d3-dispatch"),require("d3-timer")):"function"==typeof define&&define.amd?define(["exports","d3-quadtree","d3-dispatch","d3-timer"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{},n.d3,n.d3,n.d3)}(this,(function(n,t,e,r){"use strict";function i(n){return function(){return n}}function u(n){return 1e-6*(n()-.5)}function o(n){return n.x+n.vx}function f(n){return n.y+n.vy}function a(n){return n.index}function c(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}const l=4294967296;function h(n){return n.x}function v(n){return n.y}var y=Math.PI*(3-Math.sqrt(5));n.forceCenter=function(n,t){var e,r=1;function i(){var i,u,o=e.length,f=0,a=0;for(i=0;i<o;++i)f+=(u=e[i]).x,a+=u.y;for(f=(f/o-n)*r,a=(a/o-t)*r,i=0;i<o;++i)(u=e[i]).x-=f,u.y-=a}return null==n&&(n=0),null==t&&(t=0),i.initialize=function(n){e=n},i.x=function(t){return arguments.length?(n=+t,i):n},i.y=function(n){return arguments.length?(t=+n,i):t},i.strength=function(n){return arguments.length?(r=+n,i):r},i},n.forceCollide=function(n){var e,r,a,c=1,l=1;function h(){for(var n,i,h,y,d,g,x,s=e.length,p=0;p<l;++p)for(i=t.quadtree(e,o,f).visitAfter(v),n=0;n<s;++n)h=e[n],g=r[h.index],x=g*g,y=h.x+h.vx,d=h.y+h.vy,i.visit(M);function M(n,t,e,r,i){var o=n.data,f=n.r,l=g+f;if(!o)return t>y+l||r<y-l||e>d+l||i<d-l;if(o.index>h.index){var v=y-o.x-o.vx,s=d-o.y-o.vy,p=v*v+s*s;p<l*l&&(0===v&&(p+=(v=u(a))*v),0===s&&(p+=(s=u(a))*s),p=(l-(p=Math.sqrt(p)))/p*c,h.vx+=(v*=p)*(l=(f*=f)/(x+f)),h.vy+=(s*=p)*l,o.vx-=v*(l=1-l),o.vy-=s*l)}}}function v(n){if(n.data)return n.r=r[n.data.index];for(var t=n.r=0;t<4;++t)n[t]&&n[t].r>n.r&&(n.r=n[t].r)}function y(){if(e){var t,i,u=e.length;for(r=new Array(u),t=0;t<u;++t)i=e[t],r[i.index]=+n(i,t,e)}}return"function"!=typeof n&&(n=i(null==n?1:+n)),h.initialize=function(n,t){e=n,a=t,y()},h.iterations=function(n){return arguments.length?(l=+n,h):l},h.strength=function(n){return arguments.length?(c=+n,h):c},h.radius=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),y(),h):n},h},n.forceLink=function(n){var t,e,r,o,f,l,h=a,v=function(n){return 1/Math.min(o[n.source.index],o[n.target.index])},y=i(30),d=1;function g(r){for(var i=0,o=n.length;i<d;++i)for(var a,c,h,v,y,g,x,s=0;s<o;++s)c=(a=n[s]).source,v=(h=a.target).x+h.vx-c.x-c.vx||u(l),y=h.y+h.vy-c.y-c.vy||u(l),v*=g=((g=Math.sqrt(v*v+y*y))-e[s])/g*r*t[s],y*=g,h.vx-=v*(x=f[s]),h.vy-=y*x,c.vx+=v*(x=1-x),c.vy+=y*x}function x(){if(r){var i,u,a=r.length,l=n.length,v=new Map(r.map(((n,t)=>[h(n,t,r),n])));for(i=0,o=new Array(a);i<l;++i)(u=n[i]).index=i,"object"!=typeof u.source&&(u.source=c(v,u.source)),"object"!=typeof u.target&&(u.target=c(v,u.target)),o[u.source.index]=(o[u.source.index]||0)+1,o[u.target.index]=(o[u.target.index]||0)+1;for(i=0,f=new Array(l);i<l;++i)u=n[i],f[i]=o[u.source.index]/(o[u.source.index]+o[u.target.index]);t=new Array(l),s(),e=new Array(l),p()}}function s(){if(r)for(var e=0,i=n.length;e<i;++e)t[e]=+v(n[e],e,n)}function p(){if(r)for(var t=0,i=n.length;t<i;++t)e[t]=+y(n[t],t,n)}return null==n&&(n=[]),g.initialize=function(n,t){r=n,l=t,x()},g.links=function(t){return arguments.length?(n=t,x(),g):n},g.id=function(n){return arguments.length?(h=n,g):h},g.iterations=function(n){return arguments.length?(d=+n,g):d},g.strength=function(n){return arguments.length?(v="function"==typeof n?n:i(+n),s(),g):v},g.distance=function(n){return arguments.length?(y="function"==typeof n?n:i(+n),p(),g):y},g},n.forceManyBody=function(){var n,e,r,o,f,a=i(-30),c=1,l=1/0,y=.81;function d(r){var i,u=n.length,f=t.quadtree(n,h,v).visitAfter(x);for(o=r,i=0;i<u;++i)e=n[i],f.visit(s)}function g(){if(n){var t,e,r=n.length;for(f=new Array(r),t=0;t<r;++t)e=n[t],f[e.index]=+a(e,t,n)}}function x(n){var t,e,r,i,u,o=0,a=0;if(n.length){for(r=i=u=0;u<4;++u)(t=n[u])&&(e=Math.abs(t.value))&&(o+=t.value,a+=e,r+=e*t.x,i+=e*t.y);n.x=r/a,n.y=i/a}else{(t=n).x=t.data.x,t.y=t.data.y;do{o+=f[t.data.index]}while(t=t.next)}n.value=o}function s(n,t,i,a){if(!n.value)return!0;var h=n.x-e.x,v=n.y-e.y,d=a-t,g=h*h+v*v;if(d*d/y<g)return g<l&&(0===h&&(g+=(h=u(r))*h),0===v&&(g+=(v=u(r))*v),g<c&&(g=Math.sqrt(c*g)),e.vx+=h*n.value*o/g,e.vy+=v*n.value*o/g),!0;if(!(n.length||g>=l)){(n.data!==e||n.next)&&(0===h&&(g+=(h=u(r))*h),0===v&&(g+=(v=u(r))*v),g<c&&(g=Math.sqrt(c*g)));do{n.data!==e&&(d=f[n.data.index]*o/g,e.vx+=h*d,e.vy+=v*d)}while(n=n.next)}}return d.initialize=function(t,e){n=t,r=e,g()},d.strength=function(n){return arguments.length?(a="function"==typeof n?n:i(+n),g(),d):a},d.distanceMin=function(n){return arguments.length?(c=n*n,d):Math.sqrt(c)},d.distanceMax=function(n){return arguments.length?(l=n*n,d):Math.sqrt(l)},d.theta=function(n){return arguments.length?(y=n*n,d):Math.sqrt(y)},d},n.forceRadial=function(n,t,e){var r,u,o,f=i(.1);function a(n){for(var i=0,f=r.length;i<f;++i){var a=r[i],c=a.x-t||1e-6,l=a.y-e||1e-6,h=Math.sqrt(c*c+l*l),v=(o[i]-h)*u[i]*n/h;a.vx+=c*v,a.vy+=l*v}}function c(){if(r){var t,e=r.length;for(u=new Array(e),o=new Array(e),t=0;t<e;++t)o[t]=+n(r[t],t,r),u[t]=isNaN(o[t])?0:+f(r[t],t,r)}}return"function"!=typeof n&&(n=i(+n)),null==t&&(t=0),null==e&&(e=0),a.initialize=function(n){r=n,c()},a.strength=function(n){return arguments.length?(f="function"==typeof n?n:i(+n),c(),a):f},a.radius=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),c(),a):n},a.x=function(n){return arguments.length?(t=+n,a):t},a.y=function(n){return arguments.length?(e=+n,a):e},a},n.forceSimulation=function(n){var t,i=1,u=.001,o=1-Math.pow(u,1/300),f=0,a=.6,c=new Map,h=r.timer(g),v=e.dispatch("tick","end"),d=function(){let n=1;return()=>(n=(1664525*n+1013904223)%l)/l}();function g(){x(),v.call("tick",t),i<u&&(h.stop(),v.call("end",t))}function x(e){var r,u,l=n.length;void 0===e&&(e=1);for(var h=0;h<e;++h)for(i+=(f-i)*o,c.forEach((function(n){n(i)})),r=0;r<l;++r)null==(u=n[r]).fx?u.x+=u.vx*=a:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=a:(u.y=u.fy,u.vy=0);return t}function s(){for(var t,e=0,r=n.length;e<r;++e){if((t=n[e]).index=e,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var i=10*Math.sqrt(.5+e),u=e*y;t.x=i*Math.cos(u),t.y=i*Math.sin(u)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(n,d),t}return null==n&&(n=[]),s(),t={tick:x,restart:function(){return h.restart(g),t},stop:function(){return h.stop(),t},nodes:function(e){return arguments.length?(n=e,s(),c.forEach(p),t):n},alpha:function(n){return arguments.length?(i=+n,t):i},alphaMin:function(n){return arguments.length?(u=+n,t):u},alphaDecay:function(n){return arguments.length?(o=+n,t):+o},alphaTarget:function(n){return arguments.length?(f=+n,t):f},velocityDecay:function(n){return arguments.length?(a=1-n,t):1-a},randomSource:function(n){return arguments.length?(d=n,c.forEach(p),t):d},force:function(n,e){return arguments.length>1?(null==e?c.delete(n):c.set(n,p(e)),t):c.get(n)},find:function(t,e,r){var i,u,o,f,a,c=0,l=n.length;for(null==r?r=1/0:r*=r,c=0;c<l;++c)(o=(i=t-(f=n[c]).x)*i+(u=e-f.y)*u)<r&&(a=f,r=o);return a},on:function(n,e){return arguments.length>1?(v.on(n,e),t):v.on(n)}}},n.forceX=function(n){var t,e,r,u=i(.1);function o(n){for(var i,u=0,o=t.length;u<o;++u)(i=t[u]).vx+=(r[u]-i.x)*e[u]*n}function f(){if(t){var i,o=t.length;for(e=new Array(o),r=new Array(o),i=0;i<o;++i)e[i]=isNaN(r[i]=+n(t[i],i,t))?0:+u(t[i],i,t)}}return"function"!=typeof n&&(n=i(null==n?0:+n)),o.initialize=function(n){t=n,f()},o.strength=function(n){return arguments.length?(u="function"==typeof n?n:i(+n),f(),o):u},o.x=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),f(),o):n},o},n.forceY=function(n){var t,e,r,u=i(.1);function o(n){for(var i,u=0,o=t.length;u<o;++u)(i=t[u]).vy+=(r[u]-i.y)*e[u]*n}function f(){if(t){var i,o=t.length;for(e=new Array(o),r=new Array(o),i=0;i<o;++i)e[i]=isNaN(r[i]=+n(t[i],i,t))?0:+u(t[i],i,t)}}return"function"!=typeof n&&(n=i(null==n?0:+n)),o.initialize=function(n){t=n,f()},o.strength=function(n){return arguments.length?(u="function"==typeof n?n:i(+n),f(),o):u},o.y=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),f(),o):n},o},Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-force/package.json
===================================================================
--- node_modules/d3-force/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-{
-  "name": "d3-force",
-  "version": "3.0.0",
-  "description": "Force-directed graph layout using velocity Verlet integration.",
-  "homepage": "https://d3js.org/d3-force/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-force.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "layout",
-    "network",
-    "graph",
-    "force",
-    "verlet",
-    "infovis"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "src/**/*.js",
-    "dist/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-force.min.js",
-  "unpkg": "dist/d3-force.min.js",
-  "exports": {
-    "umd": "./dist/d3-force.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-dispatch": "1 - 3",
-    "d3-quadtree": "1 - 3",
-    "d3-timer": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-force/src/center.js
===================================================================
--- node_modules/d3-force/src/center.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-export default function(x, y) {
-  var nodes, strength = 1;
-
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force() {
-    var i,
-        n = nodes.length,
-        node,
-        sx = 0,
-        sy = 0;
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i], sx += node.x, sy += node.y;
-    }
-
-    for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {
-      node = nodes[i], node.x -= sx, node.y -= sy;
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/collide.js
===================================================================
--- node_modules/d3-force/src/collide.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import {quadtree} from "d3-quadtree";
-import constant from "./constant.js";
-import jiggle from "./jiggle.js";
-
-function x(d) {
-  return d.x + d.vx;
-}
-
-function y(d) {
-  return d.y + d.vy;
-}
-
-export default function(radius) {
-  var nodes,
-      radii,
-      random,
-      strength = 1,
-      iterations = 1;
-
-  if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius);
-
-  function force() {
-    var i, n = nodes.length,
-        tree,
-        node,
-        xi,
-        yi,
-        ri,
-        ri2;
-
-    for (var k = 0; k < iterations; ++k) {
-      tree = quadtree(nodes, x, y).visitAfter(prepare);
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        ri = radii[node.index], ri2 = ri * ri;
-        xi = node.x + node.vx;
-        yi = node.y + node.vy;
-        tree.visit(apply);
-      }
-    }
-
-    function apply(quad, x0, y0, x1, y1) {
-      var data = quad.data, rj = quad.r, r = ri + rj;
-      if (data) {
-        if (data.index > node.index) {
-          var x = xi - data.x - data.vx,
-              y = yi - data.y - data.vy,
-              l = x * x + y * y;
-          if (l < r * r) {
-            if (x === 0) x = jiggle(random), l += x * x;
-            if (y === 0) y = jiggle(random), l += y * y;
-            l = (r - (l = Math.sqrt(l))) / l * strength;
-            node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
-            node.vy += (y *= l) * r;
-            data.vx -= x * (r = 1 - r);
-            data.vy -= y * r;
-          }
-        }
-        return;
-      }
-      return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
-    }
-  }
-
-  function prepare(quad) {
-    if (quad.data) return quad.r = radii[quad.data.index];
-    for (var i = quad.r = 0; i < 4; ++i) {
-      if (quad[i] && quad[i].r > quad.r) {
-        quad.r = quad[i].r;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    radii = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/constant.js
===================================================================
--- node_modules/d3-force/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-force/src/index.js
===================================================================
--- node_modules/d3-force/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export {default as forceCenter} from "./center.js";
-export {default as forceCollide} from "./collide.js";
-export {default as forceLink} from "./link.js";
-export {default as forceManyBody} from "./manyBody.js";
-export {default as forceRadial} from "./radial.js";
-export {default as forceSimulation} from "./simulation.js";
-export {default as forceX} from "./x.js";
-export {default as forceY} from "./y.js";
Index: de_modules/d3-force/src/jiggle.js
===================================================================
--- node_modules/d3-force/src/jiggle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(random) {
-  return (random() - 0.5) * 1e-6;
-}
Index: de_modules/d3-force/src/lcg.js
===================================================================
--- node_modules/d3-force/src/lcg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a = 1664525;
-const c = 1013904223;
-const m = 4294967296; // 2^32
-
-export default function() {
-  let s = 1;
-  return () => (s = (a * s + c) % m) / m;
-}
Index: de_modules/d3-force/src/link.js
===================================================================
--- node_modules/d3-force/src/link.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-import constant from "./constant.js";
-import jiggle from "./jiggle.js";
-
-function index(d) {
-  return d.index;
-}
-
-function find(nodeById, nodeId) {
-  var node = nodeById.get(nodeId);
-  if (!node) throw new Error("node not found: " + nodeId);
-  return node;
-}
-
-export default function(links) {
-  var id = index,
-      strength = defaultStrength,
-      strengths,
-      distance = constant(30),
-      distances,
-      nodes,
-      count,
-      bias,
-      random,
-      iterations = 1;
-
-  if (links == null) links = [];
-
-  function defaultStrength(link) {
-    return 1 / Math.min(count[link.source.index], count[link.target.index]);
-  }
-
-  function force(alpha) {
-    for (var k = 0, n = links.length; k < iterations; ++k) {
-      for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
-        link = links[i], source = link.source, target = link.target;
-        x = target.x + target.vx - source.x - source.vx || jiggle(random);
-        y = target.y + target.vy - source.y - source.vy || jiggle(random);
-        l = Math.sqrt(x * x + y * y);
-        l = (l - distances[i]) / l * alpha * strengths[i];
-        x *= l, y *= l;
-        target.vx -= x * (b = bias[i]);
-        target.vy -= y * b;
-        source.vx += x * (b = 1 - b);
-        source.vy += y * b;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-
-    var i,
-        n = nodes.length,
-        m = links.length,
-        nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
-        link;
-
-    for (i = 0, count = new Array(n); i < m; ++i) {
-      link = links[i], link.index = i;
-      if (typeof link.source !== "object") link.source = find(nodeById, link.source);
-      if (typeof link.target !== "object") link.target = find(nodeById, link.target);
-      count[link.source.index] = (count[link.source.index] || 0) + 1;
-      count[link.target.index] = (count[link.target.index] || 0) + 1;
-    }
-
-    for (i = 0, bias = new Array(m); i < m; ++i) {
-      link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
-    }
-
-    strengths = new Array(m), initializeStrength();
-    distances = new Array(m), initializeDistance();
-  }
-
-  function initializeStrength() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      strengths[i] = +strength(links[i], i, links);
-    }
-  }
-
-  function initializeDistance() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      distances[i] = +distance(links[i], i, links);
-    }
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.links = function(_) {
-    return arguments.length ? (links = _, initialize(), force) : links;
-  };
-
-  force.id = function(_) {
-    return arguments.length ? (id = _, force) : id;
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength;
-  };
-
-  force.distance = function(_) {
-    return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance;
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/manyBody.js
===================================================================
--- node_modules/d3-force/src/manyBody.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,116 +1,0 @@
-import {quadtree} from "d3-quadtree";
-import constant from "./constant.js";
-import jiggle from "./jiggle.js";
-import {x, y} from "./simulation.js";
-
-export default function() {
-  var nodes,
-      node,
-      random,
-      alpha,
-      strength = constant(-30),
-      strengths,
-      distanceMin2 = 1,
-      distanceMax2 = Infinity,
-      theta2 = 0.81;
-
-  function force(_) {
-    var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);
-    for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    strengths = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
-  }
-
-  function accumulate(quad) {
-    var strength = 0, q, c, weight = 0, x, y, i;
-
-    // For internal nodes, accumulate forces from child quadrants.
-    if (quad.length) {
-      for (x = y = i = 0; i < 4; ++i) {
-        if ((q = quad[i]) && (c = Math.abs(q.value))) {
-          strength += q.value, weight += c, x += c * q.x, y += c * q.y;
-        }
-      }
-      quad.x = x / weight;
-      quad.y = y / weight;
-    }
-
-    // For leaf nodes, accumulate forces from coincident quadrants.
-    else {
-      q = quad;
-      q.x = q.data.x;
-      q.y = q.data.y;
-      do strength += strengths[q.data.index];
-      while (q = q.next);
-    }
-
-    quad.value = strength;
-  }
-
-  function apply(quad, x1, _, x2) {
-    if (!quad.value) return true;
-
-    var x = quad.x - node.x,
-        y = quad.y - node.y,
-        w = x2 - x1,
-        l = x * x + y * y;
-
-    // Apply the Barnes-Hut approximation if possible.
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (w * w / theta2 < l) {
-      if (l < distanceMax2) {
-        if (x === 0) x = jiggle(random), l += x * x;
-        if (y === 0) y = jiggle(random), l += y * y;
-        if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-        node.vx += x * quad.value * alpha / l;
-        node.vy += y * quad.value * alpha / l;
-      }
-      return true;
-    }
-
-    // Otherwise, process points directly.
-    else if (quad.length || l >= distanceMax2) return;
-
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (quad.data !== node || quad.next) {
-      if (x === 0) x = jiggle(random), l += x * x;
-      if (y === 0) y = jiggle(random), l += y * y;
-      if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-    }
-
-    do if (quad.data !== node) {
-      w = strengths[quad.data.index] * alpha / l;
-      node.vx += x * w;
-      node.vy += y * w;
-    } while (quad = quad.next);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.distanceMin = function(_) {
-    return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
-  };
-
-  force.distanceMax = function(_) {
-    return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
-  };
-
-  force.theta = function(_) {
-    return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/radial.js
===================================================================
--- node_modules/d3-force/src/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-import constant from "./constant.js";
-
-export default function(radius, x, y) {
-  var nodes,
-      strength = constant(0.1),
-      strengths,
-      radiuses;
-
-  if (typeof radius !== "function") radius = constant(+radius);
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length; i < n; ++i) {
-      var node = nodes[i],
-          dx = node.x - x || 1e-6,
-          dy = node.y - y || 1e-6,
-          r = Math.sqrt(dx * dx + dy * dy),
-          k = (radiuses[i] - r) * strengths[i] * alpha / r;
-      node.vx += dx * k;
-      node.vy += dy * k;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    radiuses = new Array(n);
-    for (i = 0; i < n; ++i) {
-      radiuses[i] = +radius(nodes[i], i, nodes);
-      strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _, initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/simulation.js
===================================================================
--- node_modules/d3-force/src/simulation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,156 +1,0 @@
-import {dispatch} from "d3-dispatch";
-import {timer} from "d3-timer";
-import lcg from "./lcg.js";
-
-export function x(d) {
-  return d.x;
-}
-
-export function y(d) {
-  return d.y;
-}
-
-var initialRadius = 10,
-    initialAngle = Math.PI * (3 - Math.sqrt(5));
-
-export default function(nodes) {
-  var simulation,
-      alpha = 1,
-      alphaMin = 0.001,
-      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
-      alphaTarget = 0,
-      velocityDecay = 0.6,
-      forces = new Map(),
-      stepper = timer(step),
-      event = dispatch("tick", "end"),
-      random = lcg();
-
-  if (nodes == null) nodes = [];
-
-  function step() {
-    tick();
-    event.call("tick", simulation);
-    if (alpha < alphaMin) {
-      stepper.stop();
-      event.call("end", simulation);
-    }
-  }
-
-  function tick(iterations) {
-    var i, n = nodes.length, node;
-
-    if (iterations === undefined) iterations = 1;
-
-    for (var k = 0; k < iterations; ++k) {
-      alpha += (alphaTarget - alpha) * alphaDecay;
-
-      forces.forEach(function(force) {
-        force(alpha);
-      });
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        if (node.fx == null) node.x += node.vx *= velocityDecay;
-        else node.x = node.fx, node.vx = 0;
-        if (node.fy == null) node.y += node.vy *= velocityDecay;
-        else node.y = node.fy, node.vy = 0;
-      }
-    }
-
-    return simulation;
-  }
-
-  function initializeNodes() {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.index = i;
-      if (node.fx != null) node.x = node.fx;
-      if (node.fy != null) node.y = node.fy;
-      if (isNaN(node.x) || isNaN(node.y)) {
-        var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;
-        node.x = radius * Math.cos(angle);
-        node.y = radius * Math.sin(angle);
-      }
-      if (isNaN(node.vx) || isNaN(node.vy)) {
-        node.vx = node.vy = 0;
-      }
-    }
-  }
-
-  function initializeForce(force) {
-    if (force.initialize) force.initialize(nodes, random);
-    return force;
-  }
-
-  initializeNodes();
-
-  return simulation = {
-    tick: tick,
-
-    restart: function() {
-      return stepper.restart(step), simulation;
-    },
-
-    stop: function() {
-      return stepper.stop(), simulation;
-    },
-
-    nodes: function(_) {
-      return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
-    },
-
-    alpha: function(_) {
-      return arguments.length ? (alpha = +_, simulation) : alpha;
-    },
-
-    alphaMin: function(_) {
-      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
-    },
-
-    alphaDecay: function(_) {
-      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
-    },
-
-    alphaTarget: function(_) {
-      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
-    },
-
-    velocityDecay: function(_) {
-      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
-    },
-
-    randomSource: function(_) {
-      return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
-    },
-
-    force: function(name, _) {
-      return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
-    },
-
-    find: function(x, y, radius) {
-      var i = 0,
-          n = nodes.length,
-          dx,
-          dy,
-          d2,
-          node,
-          closest;
-
-      if (radius == null) radius = Infinity;
-      else radius *= radius;
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        dx = x - node.x;
-        dy = y - node.y;
-        d2 = dx * dx + dy * dy;
-        if (d2 < radius) closest = node, radius = d2;
-      }
-
-      return closest;
-    },
-
-    on: function(name, _) {
-      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
-    }
-  };
-}
Index: de_modules/d3-force/src/x.js
===================================================================
--- node_modules/d3-force/src/x.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import constant from "./constant.js";
-
-export default function(x) {
-  var strength = constant(0.1),
-      nodes,
-      strengths,
-      xz;
-
-  if (typeof x !== "function") x = constant(x == null ? 0 : +x);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    xz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x;
-  };
-
-  return force;
-}
Index: de_modules/d3-force/src/y.js
===================================================================
--- node_modules/d3-force/src/y.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import constant from "./constant.js";
-
-export default function(y) {
-  var strength = constant(0.1),
-      nodes,
-      strengths,
-      yz;
-
-  if (typeof y !== "function") y = constant(y == null ? 0 : +y);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    yz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y;
-  };
-
-  return force;
-}
Index: de_modules/d3-format/LICENSE
===================================================================
--- node_modules/d3-format/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2026 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-format/README.md
===================================================================
--- node_modules/d3-format/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# d3-format
-
-<a href="https://d3js.org"><img src="https://github.com/d3/d3/raw/main/docs/public/logo.svg" width="256" height="256"></a>
-
-This module formats numbers for human consumption, with a consistent output allowing comparison. Grouped digits, currencies, scientific notation…
-
-## Resources
-
-- [Documentation](https://d3js.org/d3-format)
-- [Examples](https://observablehq.com/@d3/d3-format)
-- [Releases](https://github.com/d3/d3-format/releases)
-- [Getting help](https://d3js.org/community)
Index: de_modules/d3-format/dist/d3-format.js
===================================================================
--- node_modules/d3-format/dist/d3-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,342 +1,0 @@
-// https://d3js.org/d3-format/ v3.1.2 Copyright 2010-2026 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-function formatDecimal(x) {
-  return Math.abs(x = Math.round(x)) >= 1e21
-      ? x.toLocaleString("en").replace(/,/g, "")
-      : x.toString(10);
-}
-
-// Computes the decimal coefficient and exponent of the specified number x with
-// significant digits p, where x is positive and p is in [1, 21] or undefined.
-// For example, formatDecimalParts(1.23) returns ["123", 0].
-function formatDecimalParts(x, p) {
-  if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0
-  var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e"), coefficient = x.slice(0, i);
-
-  // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
-  // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
-  return [
-    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
-    +x.slice(i + 1)
-  ];
-}
-
-function exponent(x) {
-  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
-}
-
-function formatGroup(grouping, thousands) {
-  return function(value, width) {
-    var i = value.length,
-        t = [],
-        j = 0,
-        g = grouping[0],
-        length = 0;
-
-    while (i > 0 && g > 0) {
-      if (length + g + 1 > width) g = Math.max(1, width - length);
-      t.push(value.substring(i -= g, i + g));
-      if ((length += g + 1) > width) break;
-      g = grouping[j = (j + 1) % grouping.length];
-    }
-
-    return t.reverse().join(thousands);
-  };
-}
-
-function formatNumerals(numerals) {
-  return function(value) {
-    return value.replace(/[0-9]/g, function(i) {
-      return numerals[+i];
-    });
-  };
-}
-
-// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
-var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
-
-function formatSpecifier(specifier) {
-  if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
-  var match;
-  return new FormatSpecifier({
-    fill: match[1],
-    align: match[2],
-    sign: match[3],
-    symbol: match[4],
-    zero: match[5],
-    width: match[6],
-    comma: match[7],
-    precision: match[8] && match[8].slice(1),
-    trim: match[9],
-    type: match[10]
-  });
-}
-
-formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
-
-function FormatSpecifier(specifier) {
-  this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
-  this.align = specifier.align === undefined ? ">" : specifier.align + "";
-  this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
-  this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
-  this.zero = !!specifier.zero;
-  this.width = specifier.width === undefined ? undefined : +specifier.width;
-  this.comma = !!specifier.comma;
-  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
-  this.trim = !!specifier.trim;
-  this.type = specifier.type === undefined ? "" : specifier.type + "";
-}
-
-FormatSpecifier.prototype.toString = function() {
-  return this.fill
-      + this.align
-      + this.sign
-      + this.symbol
-      + (this.zero ? "0" : "")
-      + (this.width === undefined ? "" : Math.max(1, this.width | 0))
-      + (this.comma ? "," : "")
-      + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
-      + (this.trim ? "~" : "")
-      + this.type;
-};
-
-// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
-function formatTrim(s) {
-  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
-    switch (s[i]) {
-      case ".": i0 = i1 = i; break;
-      case "0": if (i0 === 0) i0 = i; i1 = i; break;
-      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
-    }
-  }
-  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
-}
-
-var prefixExponent;
-
-function formatPrefixAuto(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return prefixExponent = undefined, x.toPrecision(p);
-  var coefficient = d[0],
-      exponent = d[1],
-      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
-      n = coefficient.length;
-  return i === n ? coefficient
-      : i > n ? coefficient + new Array(i - n + 1).join("0")
-      : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
-      : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
-}
-
-function formatRounded(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-      exponent = d[1];
-  return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
-      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
-      : coefficient + new Array(exponent - coefficient.length + 2).join("0");
-}
-
-var formatTypes = {
-  "%": (x, p) => (x * 100).toFixed(p),
-  "b": (x) => Math.round(x).toString(2),
-  "c": (x) => x + "",
-  "d": formatDecimal,
-  "e": (x, p) => x.toExponential(p),
-  "f": (x, p) => x.toFixed(p),
-  "g": (x, p) => x.toPrecision(p),
-  "o": (x) => Math.round(x).toString(8),
-  "p": (x, p) => formatRounded(x * 100, p),
-  "r": formatRounded,
-  "s": formatPrefixAuto,
-  "X": (x) => Math.round(x).toString(16).toUpperCase(),
-  "x": (x) => Math.round(x).toString(16)
-};
-
-function identity(x) {
-  return x;
-}
-
-var map = Array.prototype.map,
-    prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
-
-function formatLocale(locale) {
-  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""),
-      currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
-      currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
-      decimal = locale.decimal === undefined ? "." : locale.decimal + "",
-      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),
-      percent = locale.percent === undefined ? "%" : locale.percent + "",
-      minus = locale.minus === undefined ? "−" : locale.minus + "",
-      nan = locale.nan === undefined ? "NaN" : locale.nan + "";
-
-  function newFormat(specifier, options) {
-    specifier = formatSpecifier(specifier);
-
-    var fill = specifier.fill,
-        align = specifier.align,
-        sign = specifier.sign,
-        symbol = specifier.symbol,
-        zero = specifier.zero,
-        width = specifier.width,
-        comma = specifier.comma,
-        precision = specifier.precision,
-        trim = specifier.trim,
-        type = specifier.type;
-
-    // The "n" type is an alias for ",g".
-    if (type === "n") comma = true, type = "g";
-
-    // The "" type, and any invalid type, is an alias for ".12~g".
-    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g";
-
-    // If zero fill is specified, padding goes after sign and before digits.
-    if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
-
-    // Compute the prefix and suffix.
-    // For SI-prefix, the suffix is lazily computed.
-    var prefix = (options && options.prefix !== undefined ? options.prefix : "") + (symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : ""),
-        suffix = (symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "") + (options && options.suffix !== undefined ? options.suffix : "");
-
-    // What format function should we use?
-    // Is this an integer type?
-    // Can this type generate exponential notation?
-    var formatType = formatTypes[type],
-        maybeSuffix = /[defgprs%]/.test(type);
-
-    // Set the default precision if not specified,
-    // or clamp the specified precision to the supported range.
-    // For significant precision, it must be in [1, 21].
-    // For fixed precision, it must be in [0, 20].
-    precision = precision === undefined ? 6
-        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
-        : Math.max(0, Math.min(20, precision));
-
-    function format(value) {
-      var valuePrefix = prefix,
-          valueSuffix = suffix,
-          i, n, c;
-
-      if (type === "c") {
-        valueSuffix = formatType(value) + valueSuffix;
-        value = "";
-      } else {
-        value = +value;
-
-        // Determine the sign. -0 is not less than 0, but 1 / -0 is!
-        var valueNegative = value < 0 || 1 / value < 0;
-
-        // Perform the initial formatting.
-        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
-
-        // Trim insignificant zeros.
-        if (trim) value = formatTrim(value);
-
-        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
-        if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
-
-        // Compute the prefix and suffix.
-        valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
-        valueSuffix = (type === "s" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
-
-        // Break the formatted value into the integer “value” part that can be
-        // grouped, and fractional or exponential “suffix” part that is not.
-        if (maybeSuffix) {
-          i = -1, n = value.length;
-          while (++i < n) {
-            if (c = value.charCodeAt(i), 48 > c || c > 57) {
-              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
-              value = value.slice(0, i);
-              break;
-            }
-          }
-        }
-      }
-
-      // If the fill character is not "0", grouping is applied before padding.
-      if (comma && !zero) value = group(value, Infinity);
-
-      // Compute the padding.
-      var length = valuePrefix.length + value.length + valueSuffix.length,
-          padding = length < width ? new Array(width - length + 1).join(fill) : "";
-
-      // If the fill character is "0", grouping is applied after padding.
-      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
-
-      // Reconstruct the final output based on the desired alignment.
-      switch (align) {
-        case "<": value = valuePrefix + value + valueSuffix + padding; break;
-        case "=": value = valuePrefix + padding + value + valueSuffix; break;
-        case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
-        default: value = padding + valuePrefix + value + valueSuffix; break;
-      }
-
-      return numerals(value);
-    }
-
-    format.toString = function() {
-      return specifier + "";
-    };
-
-    return format;
-  }
-
-  function formatPrefix(specifier, value) {
-    var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
-        k = Math.pow(10, -e),
-        f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier), {suffix: prefixes[8 + e / 3]});
-    return function(value) {
-      return f(k * value);
-    };
-  }
-
-  return {
-    format: newFormat,
-    formatPrefix: formatPrefix
-  };
-}
-
-var locale;
-exports.format = void 0;
-exports.formatPrefix = void 0;
-
-defaultLocale({
-  thousands: ",",
-  grouping: [3],
-  currency: ["$", ""]
-});
-
-function defaultLocale(definition) {
-  locale = formatLocale(definition);
-  exports.format = locale.format;
-  exports.formatPrefix = locale.formatPrefix;
-  return locale;
-}
-
-function precisionFixed(step) {
-  return Math.max(0, -exponent(Math.abs(step)));
-}
-
-function precisionPrefix(step, value) {
-  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
-}
-
-function precisionRound(step, max) {
-  step = Math.abs(step), max = Math.abs(max) - step;
-  return Math.max(0, exponent(max) - exponent(step)) + 1;
-}
-
-exports.FormatSpecifier = FormatSpecifier;
-exports.formatDefaultLocale = defaultLocale;
-exports.formatLocale = formatLocale;
-exports.formatSpecifier = formatSpecifier;
-exports.precisionFixed = precisionFixed;
-exports.precisionPrefix = precisionPrefix;
-exports.precisionRound = precisionRound;
-
-}));
Index: de_modules/d3-format/dist/d3-format.min.js
===================================================================
--- node_modules/d3-format/dist/d3-format.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-format/ v3.1.2 Copyright 2010-2026 Mike Bostock
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,function(t){"use strict";function i(t,i){if(!isFinite(t)||0===t)return null;var r=(t=i?t.toExponential(i-1):t.toExponential()).indexOf("e"),n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function r(t){return(t=i(Math.abs(t)))?t[1]:NaN}var n,e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(t){if(!(i=e.exec(t)))throw new Error("invalid format: "+t);var i;return new a({fill:i[1],align:i[2],sign:i[3],symbol:i[4],zero:i[5],width:i[6],comma:i[7],precision:i[8]&&i[8].slice(1),trim:i[9],type:i[10]})}function a(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function s(t,r){var n=i(t,r);if(!n)return t+"";var e=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+e:e.length>o+1?e.slice(0,o+1)+"."+e.slice(o+1):e+new Array(o-e.length+2).join("0")}o.prototype=a.prototype,a.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var c={"%":(t,i)=>(100*t).toFixed(i),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,i)=>t.toExponential(i),f:(t,i)=>t.toFixed(i),g:(t,i)=>t.toPrecision(i),o:t=>Math.round(t).toString(8),p:(t,i)=>s(100*t,i),r:s,s:function(t,r){var e=i(t,r);if(!e)return n=void 0,t.toPrecision(r);var o=e[0],a=e[1],s=a-(n=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,c=o.length;return s===c?o:s>c?o+new Array(s-c+1).join("0"):s>0?o.slice(0,s)+"."+o.slice(s):"0."+new Array(1-s).join("0")+i(t,Math.max(0,r+s-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function f(t){return t}var u,h=Array.prototype.map,l=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function d(t){var i,e,a=void 0===t.grouping||void 0===t.thousands?f:(i=h.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var n=t.length,o=[],a=0,s=i[0],c=0;n>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(t.substring(n-=s,n+s)),!((c+=s+1)>r));)s=i[a=(a+1)%i.length];return o.reverse().join(e)}),s=void 0===t.currency?"":t.currency[0]+"",u=void 0===t.currency?"":t.currency[1]+"",d=void 0===t.decimal?".":t.decimal+"",m=void 0===t.numerals?f:function(t){return function(i){return i.replace(/[0-9]/g,function(i){return t[+i]})}}(h.call(t.numerals,String)),p=void 0===t.percent?"%":t.percent+"",g=void 0===t.minus?"−":t.minus+"",v=void 0===t.nan?"NaN":t.nan+"";function x(t,i){var r=(t=o(t)).fill,e=t.align,f=t.sign,h=t.symbol,x=t.zero,M=t.width,y=t.comma,b=t.precision,w=t.trim,S=t.type;"n"===S?(y=!0,S="g"):c[S]||(void 0===b&&(b=12),w=!0,S="g"),(x||"0"===r&&"="===e)&&(x=!0,r="0",e="=");var N=(i&&void 0!==i.prefix?i.prefix:"")+("$"===h?s:"#"===h&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),k=("$"===h?u:/[%p]/.test(S)?p:"")+(i&&void 0!==i.suffix?i.suffix:""),P=c[S],j=/[defgprs%]/.test(S);function z(t){var i,o,s,c=N,u=k;if("c"===S)u=P(t)+u,t="";else{var h=(t=+t)<0||1/t<0;if(t=isNaN(t)?v:P(Math.abs(t),b),w&&(t=function(t){t:for(var i,r=t.length,n=1,e=-1;n<r;++n)switch(t[n]){case".":e=i=n;break;case"0":0===e&&(e=n),i=n;break;default:if(!+t[n])break t;e>0&&(e=0)}return e>0?t.slice(0,e)+t.slice(i+1):t}(t)),h&&0===+t&&"+"!==f&&(h=!1),c=(h?"("===f?f:g:"-"===f||"("===f?"":f)+c,u=("s"!==S||isNaN(t)||void 0===n?"":l[8+n/3])+u+(h&&"("===f?")":""),j)for(i=-1,o=t.length;++i<o;)if(48>(s=t.charCodeAt(i))||s>57){u=(46===s?d+t.slice(i+1):t.slice(i))+u,t=t.slice(0,i);break}}y&&!x&&(t=a(t,1/0));var p=c.length+t.length+u.length,z=p<M?new Array(M-p+1).join(r):"";switch(y&&x&&(t=a(z+t,z.length?M-u.length:1/0),z=""),e){case"<":t=c+t+u+z;break;case"=":t=c+z+t+u;break;case"^":t=z.slice(0,p=z.length>>1)+c+t+u+z.slice(p);break;default:t=z+c+t+u}return m(t)}return b=void 0===b?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),z.toString=function(){return t+""},z}return{format:x,formatPrefix:function(t,i){var n=3*Math.max(-8,Math.min(8,Math.floor(r(i)/3))),e=Math.pow(10,-n),a=x(((t=o(t)).type="f",t),{suffix:l[8+n/3]});return function(t){return a(e*t)}}}}function m(i){return u=d(i),t.format=u.format,t.formatPrefix=u.formatPrefix,u}t.format=void 0,t.formatPrefix=void 0,m({thousands:",",grouping:[3],currency:["$",""]}),t.FormatSpecifier=a,t.formatDefaultLocale=m,t.formatLocale=d,t.formatSpecifier=o,t.precisionFixed=function(t){return Math.max(0,-r(Math.abs(t)))},t.precisionPrefix=function(t,i){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(r(i)/3)))-r(Math.abs(t)))},t.precisionRound=function(t,i){return t=Math.abs(t),i=Math.abs(i)-t,Math.max(0,r(i)-r(t))+1}});
Index: de_modules/d3-format/locale/ar-001.json
===================================================================
--- node_modules/d3-format/locale/ar-001.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-AE.json
===================================================================
--- node_modules/d3-format/locale/ar-AE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062f\u002e\u0625\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-BH.json
===================================================================
--- node_modules/d3-format/locale/ar-BH.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062f\u002e\u0628\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-DJ.json
===================================================================
--- node_modules/d3-format/locale/ar-DJ.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u200f\u0046\u0064\u006a ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-DZ.json
===================================================================
--- node_modules/d3-format/locale/ar-DZ.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": "\u002c",
-  "thousands": "\u002e",
-  "grouping": [3],
-  "currency": ["\u062f\u002e\u062c\u002e ", ""]
-}
Index: de_modules/d3-format/locale/ar-EG.json
===================================================================
--- node_modules/d3-format/locale/ar-EG.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062c\u002e\u0645\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-EH.json
===================================================================
--- node_modules/d3-format/locale/ar-EH.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": "\u002e",
-  "thousands": "\u002c",
-  "grouping": [3],
-  "currency": ["\u062f\u002e\u0645\u002e ", ""]
-}
Index: de_modules/d3-format/locale/ar-ER.json
===================================================================
--- node_modules/d3-format/locale/ar-ER.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u004e\u0066\u006b ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-IL.json
===================================================================
--- node_modules/d3-format/locale/ar-IL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u20aa ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-IQ.json
===================================================================
--- node_modules/d3-format/locale/ar-IQ.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062f\u002e\u0639\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-JO.json
===================================================================
--- node_modules/d3-format/locale/ar-JO.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062f\u002e\u0623\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-KM.json
===================================================================
--- node_modules/d3-format/locale/ar-KM.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0641\u002e\u062c\u002e\u0642\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-KW.json
===================================================================
--- node_modules/d3-format/locale/ar-KW.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062f\u002e\u0643\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-LB.json
===================================================================
--- node_modules/d3-format/locale/ar-LB.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0644\u002e\u0644\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-LY.json
===================================================================
--- node_modules/d3-format/locale/ar-LY.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": "\u002c",
-  "thousands": "\u002e",
-  "grouping": [3],
-  "currency": ["\u062f\u002e\u0644\u002e ", ""]
-}
Index: de_modules/d3-format/locale/ar-MA.json
===================================================================
--- node_modules/d3-format/locale/ar-MA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": "\u002c",
-  "thousands": "\u002e",
-  "grouping": [3],
-  "currency": ["\u062f\u002e\u0645\u002e ", ""]
-}
Index: de_modules/d3-format/locale/ar-MR.json
===================================================================
--- node_modules/d3-format/locale/ar-MR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0623\u002e\u0645\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-OM.json
===================================================================
--- node_modules/d3-format/locale/ar-OM.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0631\u002e\u0639\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-PS.json
===================================================================
--- node_modules/d3-format/locale/ar-PS.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u20aa ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-QA.json
===================================================================
--- node_modules/d3-format/locale/ar-QA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0631\u002e\u0642\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-SA.json
===================================================================
--- node_modules/d3-format/locale/ar-SA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0631\u002e\u0633\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-SD.json
===================================================================
--- node_modules/d3-format/locale/ar-SD.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u062c\u002e\u0633\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-SO.json
===================================================================
--- node_modules/d3-format/locale/ar-SO.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u200f\u0053 ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-SS.json
===================================================================
--- node_modules/d3-format/locale/ar-SS.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u00a3 ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-SY.json
===================================================================
--- node_modules/d3-format/locale/ar-SY.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0644\u002e\u0633\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-TD.json
===================================================================
--- node_modules/d3-format/locale/ar-TD.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["\u200f\u0046\u0043\u0046\u0041 ", ""],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ar-TN.json
===================================================================
--- node_modules/d3-format/locale/ar-TN.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": "\u002c",
-  "thousands": "\u002e",
-  "grouping": [3],
-  "currency": ["\u062f\u002e\u062a\u002e ", ""]
-}
Index: de_modules/d3-format/locale/ar-YE.json
===================================================================
--- node_modules/d3-format/locale/ar-YE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": "\u066b",
-  "thousands": "\u066c",
-  "grouping": [3],
-  "currency": ["", " \u0631\u002e\u0649\u002e"],
-  "numerals" : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
-}
Index: de_modules/d3-format/locale/ca-ES.json
===================================================================
--- node_modules/d3-format/locale/ca-ES.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/cs-CZ.json
===================================================================
--- node_modules/d3-format/locale/cs-CZ.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0Kč"]
-}
Index: de_modules/d3-format/locale/da-DK.json
===================================================================
--- node_modules/d3-format/locale/da-DK.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", " kr"]
-}
Index: de_modules/d3-format/locale/de-CH.json
===================================================================
--- node_modules/d3-format/locale/de-CH.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "'",
-  "grouping": [3],
-  "currency": ["", "\u00a0CHF"]
-}
Index: de_modules/d3-format/locale/de-DE.json
===================================================================
--- node_modules/d3-format/locale/de-DE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/en-CA.json
===================================================================
--- node_modules/d3-format/locale/en-CA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["$", ""]
-}
Index: de_modules/d3-format/locale/en-GB.json
===================================================================
--- node_modules/d3-format/locale/en-GB.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["£", ""]
-}
Index: de_modules/d3-format/locale/en-IE.json
===================================================================
--- node_modules/d3-format/locale/en-IE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["€", ""]
-}
Index: de_modules/d3-format/locale/en-IN.json
===================================================================
--- node_modules/d3-format/locale/en-IN.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3, 2, 2, 2, 2, 2, 2, 2, 2, 2],
-  "currency": ["₹", ""]
-}
Index: de_modules/d3-format/locale/en-US.json
===================================================================
--- node_modules/d3-format/locale/en-US.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["$", ""]
-}
Index: de_modules/d3-format/locale/es-BO.json
===================================================================
--- node_modules/d3-format/locale/es-BO.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["Bs\u00a0", ""],
-  "percent": "\u202f%"
-}
Index: de_modules/d3-format/locale/es-ES.json
===================================================================
--- node_modules/d3-format/locale/es-ES.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/es-MX.json
===================================================================
--- node_modules/d3-format/locale/es-MX.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["$", ""]
-}
Index: de_modules/d3-format/locale/fi-FI.json
===================================================================
--- node_modules/d3-format/locale/fi-FI.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/fr-CA.json
===================================================================
--- node_modules/d3-format/locale/fr-CA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "$"]
-}
Index: de_modules/d3-format/locale/fr-FR.json
===================================================================
--- node_modules/d3-format/locale/fr-FR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"],
-  "percent": "\u202f%"
-}
Index: de_modules/d3-format/locale/he-IL.json
===================================================================
--- node_modules/d3-format/locale/he-IL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["₪", ""]
-}
Index: de_modules/d3-format/locale/hu-HU.json
===================================================================
--- node_modules/d3-format/locale/hu-HU.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0Ft"]
-}
Index: de_modules/d3-format/locale/it-IT.json
===================================================================
--- node_modules/d3-format/locale/it-IT.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["€", ""]
-}
Index: de_modules/d3-format/locale/ja-JP.json
===================================================================
--- node_modules/d3-format/locale/ja-JP.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["", "円"]
-}
Index: de_modules/d3-format/locale/ko-KR.json
===================================================================
--- node_modules/d3-format/locale/ko-KR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["₩", ""]
-}
Index: de_modules/d3-format/locale/mk-MK.json
===================================================================
--- node_modules/d3-format/locale/mk-MK.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "\u00a0ден."]
-}
Index: de_modules/d3-format/locale/nl-NL.json
===================================================================
--- node_modules/d3-format/locale/nl-NL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["€\u00a0", ""]
-}
Index: de_modules/d3-format/locale/pl-PL.json
===================================================================
--- node_modules/d3-format/locale/pl-PL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "zł"]
-}
Index: de_modules/d3-format/locale/pt-BR.json
===================================================================
--- node_modules/d3-format/locale/pt-BR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["R$", ""]
-}
Index: de_modules/d3-format/locale/pt-PT.json
===================================================================
--- node_modules/d3-format/locale/pt-PT.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/ru-RU.json
===================================================================
--- node_modules/d3-format/locale/ru-RU.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0\u20bd"]
-}
Index: de_modules/d3-format/locale/sl-SI.json
===================================================================
--- node_modules/d3-format/locale/sl-SI.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": ".",
-  "grouping": [3],
-  "currency": ["", "\u00a0€"]
-}
Index: de_modules/d3-format/locale/sv-SE.json
===================================================================
--- node_modules/d3-format/locale/sv-SE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", " kr"]
-}
Index: de_modules/d3-format/locale/uk-UA.json
===================================================================
--- node_modules/d3-format/locale/uk-UA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ",",
-  "thousands": "\u00a0",
-  "grouping": [3],
-  "currency": ["", "\u00a0₴."]
-}
Index: de_modules/d3-format/locale/zh-CN.json
===================================================================
--- node_modules/d3-format/locale/zh-CN.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "decimal": ".",
-  "thousands": ",",
-  "grouping": [3],
-  "currency": ["¥", ""]
-}
Index: de_modules/d3-format/package.json
===================================================================
--- node_modules/d3-format/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-{
-  "name": "d3-format",
-  "version": "3.1.2",
-  "description": "Format numbers for human consumption.",
-  "homepage": "https://d3js.org/d3-format/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-format.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "format",
-    "localization"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js",
-    "locale/*.json"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-format.min.js",
-  "unpkg": "dist/d3-format.min.js",
-  "exports": {
-    ".": {
-      "umd": "./dist/d3-format.min.js",
-      "default": "./src/index.js"
-    },
-    "./locale/*": "./locale/*.json"
-  },
-  "sideEffects": [
-    "./src/defaultLocale.js"
-  ],
-  "devDependencies": {
-    "@rollup/plugin-terser": "^0.4.4",
-    "eslint": "^9.39.2",
-    "globals": "^17.0.0",
-    "rollup": "^4.55.1",
-    "vitest": "^4.0.17"
-  },
-  "scripts": {
-    "test": "vitest",
-    "lint": "eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-format/src/defaultLocale.js
===================================================================
--- node_modules/d3-format/src/defaultLocale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import formatLocale from "./locale.js";
-
-var locale;
-export var format;
-export var formatPrefix;
-
-defaultLocale({
-  thousands: ",",
-  grouping: [3],
-  currency: ["$", ""]
-});
-
-export default function defaultLocale(definition) {
-  locale = formatLocale(definition);
-  format = locale.format;
-  formatPrefix = locale.formatPrefix;
-  return locale;
-}
Index: de_modules/d3-format/src/exponent.js
===================================================================
--- node_modules/d3-format/src/exponent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import {formatDecimalParts} from "./formatDecimal.js";
-
-export default function(x) {
-  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
-}
Index: de_modules/d3-format/src/formatDecimal.js
===================================================================
--- node_modules/d3-format/src/formatDecimal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function(x) {
-  return Math.abs(x = Math.round(x)) >= 1e21
-      ? x.toLocaleString("en").replace(/,/g, "")
-      : x.toString(10);
-}
-
-// Computes the decimal coefficient and exponent of the specified number x with
-// significant digits p, where x is positive and p is in [1, 21] or undefined.
-// For example, formatDecimalParts(1.23) returns ["123", 0].
-export function formatDecimalParts(x, p) {
-  if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0
-  var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e"), coefficient = x.slice(0, i);
-
-  // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
-  // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
-  return [
-    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
-    +x.slice(i + 1)
-  ];
-}
Index: de_modules/d3-format/src/formatGroup.js
===================================================================
--- node_modules/d3-format/src/formatGroup.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function(grouping, thousands) {
-  return function(value, width) {
-    var i = value.length,
-        t = [],
-        j = 0,
-        g = grouping[0],
-        length = 0;
-
-    while (i > 0 && g > 0) {
-      if (length + g + 1 > width) g = Math.max(1, width - length);
-      t.push(value.substring(i -= g, i + g));
-      if ((length += g + 1) > width) break;
-      g = grouping[j = (j + 1) % grouping.length];
-    }
-
-    return t.reverse().join(thousands);
-  };
-}
Index: de_modules/d3-format/src/formatNumerals.js
===================================================================
--- node_modules/d3-format/src/formatNumerals.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function(numerals) {
-  return function(value) {
-    return value.replace(/[0-9]/g, function(i) {
-      return numerals[+i];
-    });
-  };
-}
Index: de_modules/d3-format/src/formatPrefixAuto.js
===================================================================
--- node_modules/d3-format/src/formatPrefixAuto.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {formatDecimalParts} from "./formatDecimal.js";
-
-export var prefixExponent;
-
-export default function(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return prefixExponent = undefined, x.toPrecision(p);
-  var coefficient = d[0],
-      exponent = d[1],
-      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
-      n = coefficient.length;
-  return i === n ? coefficient
-      : i > n ? coefficient + new Array(i - n + 1).join("0")
-      : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
-      : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
-}
Index: de_modules/d3-format/src/formatRounded.js
===================================================================
--- node_modules/d3-format/src/formatRounded.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {formatDecimalParts} from "./formatDecimal.js";
-
-export default function(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-      exponent = d[1];
-  return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
-      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
-      : coefficient + new Array(exponent - coefficient.length + 2).join("0");
-}
Index: de_modules/d3-format/src/formatSpecifier.js
===================================================================
--- node_modules/d3-format/src/formatSpecifier.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
-var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
-
-export default function formatSpecifier(specifier) {
-  if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
-  var match;
-  return new FormatSpecifier({
-    fill: match[1],
-    align: match[2],
-    sign: match[3],
-    symbol: match[4],
-    zero: match[5],
-    width: match[6],
-    comma: match[7],
-    precision: match[8] && match[8].slice(1),
-    trim: match[9],
-    type: match[10]
-  });
-}
-
-formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
-
-export function FormatSpecifier(specifier) {
-  this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
-  this.align = specifier.align === undefined ? ">" : specifier.align + "";
-  this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
-  this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
-  this.zero = !!specifier.zero;
-  this.width = specifier.width === undefined ? undefined : +specifier.width;
-  this.comma = !!specifier.comma;
-  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
-  this.trim = !!specifier.trim;
-  this.type = specifier.type === undefined ? "" : specifier.type + "";
-}
-
-FormatSpecifier.prototype.toString = function() {
-  return this.fill
-      + this.align
-      + this.sign
-      + this.symbol
-      + (this.zero ? "0" : "")
-      + (this.width === undefined ? "" : Math.max(1, this.width | 0))
-      + (this.comma ? "," : "")
-      + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
-      + (this.trim ? "~" : "")
-      + this.type;
-};
Index: de_modules/d3-format/src/formatTrim.js
===================================================================
--- node_modules/d3-format/src/formatTrim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
-export default function(s) {
-  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
-    switch (s[i]) {
-      case ".": i0 = i1 = i; break;
-      case "0": if (i0 === 0) i0 = i; i1 = i; break;
-      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
-    }
-  }
-  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
-}
Index: de_modules/d3-format/src/formatTypes.js
===================================================================
--- node_modules/d3-format/src/formatTypes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import formatDecimal from "./formatDecimal.js";
-import formatPrefixAuto from "./formatPrefixAuto.js";
-import formatRounded from "./formatRounded.js";
-
-export default {
-  "%": (x, p) => (x * 100).toFixed(p),
-  "b": (x) => Math.round(x).toString(2),
-  "c": (x) => x + "",
-  "d": formatDecimal,
-  "e": (x, p) => x.toExponential(p),
-  "f": (x, p) => x.toFixed(p),
-  "g": (x, p) => x.toPrecision(p),
-  "o": (x) => Math.round(x).toString(8),
-  "p": (x, p) => formatRounded(x * 100, p),
-  "r": formatRounded,
-  "s": formatPrefixAuto,
-  "X": (x) => Math.round(x).toString(16).toUpperCase(),
-  "x": (x) => Math.round(x).toString(16)
-};
Index: de_modules/d3-format/src/identity.js
===================================================================
--- node_modules/d3-format/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x) {
-  return x;
-}
Index: de_modules/d3-format/src/index.js
===================================================================
--- node_modules/d3-format/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export {default as formatDefaultLocale, format, formatPrefix} from "./defaultLocale.js";
-export {default as formatLocale} from "./locale.js";
-export {default as formatSpecifier, FormatSpecifier} from "./formatSpecifier.js";
-export {default as precisionFixed} from "./precisionFixed.js";
-export {default as precisionPrefix} from "./precisionPrefix.js";
-export {default as precisionRound} from "./precisionRound.js";
Index: de_modules/d3-format/src/locale.js
===================================================================
--- node_modules/d3-format/src/locale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,147 +1,0 @@
-import exponent from "./exponent.js";
-import formatGroup from "./formatGroup.js";
-import formatNumerals from "./formatNumerals.js";
-import formatSpecifier from "./formatSpecifier.js";
-import formatTrim from "./formatTrim.js";
-import formatTypes from "./formatTypes.js";
-import {prefixExponent} from "./formatPrefixAuto.js";
-import identity from "./identity.js";
-
-var map = Array.prototype.map,
-    prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
-
-export default function(locale) {
-  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""),
-      currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
-      currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
-      decimal = locale.decimal === undefined ? "." : locale.decimal + "",
-      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),
-      percent = locale.percent === undefined ? "%" : locale.percent + "",
-      minus = locale.minus === undefined ? "−" : locale.minus + "",
-      nan = locale.nan === undefined ? "NaN" : locale.nan + "";
-
-  function newFormat(specifier, options) {
-    specifier = formatSpecifier(specifier);
-
-    var fill = specifier.fill,
-        align = specifier.align,
-        sign = specifier.sign,
-        symbol = specifier.symbol,
-        zero = specifier.zero,
-        width = specifier.width,
-        comma = specifier.comma,
-        precision = specifier.precision,
-        trim = specifier.trim,
-        type = specifier.type;
-
-    // The "n" type is an alias for ",g".
-    if (type === "n") comma = true, type = "g";
-
-    // The "" type, and any invalid type, is an alias for ".12~g".
-    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g";
-
-    // If zero fill is specified, padding goes after sign and before digits.
-    if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
-
-    // Compute the prefix and suffix.
-    // For SI-prefix, the suffix is lazily computed.
-    var prefix = (options && options.prefix !== undefined ? options.prefix : "") + (symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : ""),
-        suffix = (symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "") + (options && options.suffix !== undefined ? options.suffix : "");
-
-    // What format function should we use?
-    // Is this an integer type?
-    // Can this type generate exponential notation?
-    var formatType = formatTypes[type],
-        maybeSuffix = /[defgprs%]/.test(type);
-
-    // Set the default precision if not specified,
-    // or clamp the specified precision to the supported range.
-    // For significant precision, it must be in [1, 21].
-    // For fixed precision, it must be in [0, 20].
-    precision = precision === undefined ? 6
-        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
-        : Math.max(0, Math.min(20, precision));
-
-    function format(value) {
-      var valuePrefix = prefix,
-          valueSuffix = suffix,
-          i, n, c;
-
-      if (type === "c") {
-        valueSuffix = formatType(value) + valueSuffix;
-        value = "";
-      } else {
-        value = +value;
-
-        // Determine the sign. -0 is not less than 0, but 1 / -0 is!
-        var valueNegative = value < 0 || 1 / value < 0;
-
-        // Perform the initial formatting.
-        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
-
-        // Trim insignificant zeros.
-        if (trim) value = formatTrim(value);
-
-        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
-        if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
-
-        // Compute the prefix and suffix.
-        valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
-        valueSuffix = (type === "s" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
-
-        // Break the formatted value into the integer “value” part that can be
-        // grouped, and fractional or exponential “suffix” part that is not.
-        if (maybeSuffix) {
-          i = -1, n = value.length;
-          while (++i < n) {
-            if (c = value.charCodeAt(i), 48 > c || c > 57) {
-              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
-              value = value.slice(0, i);
-              break;
-            }
-          }
-        }
-      }
-
-      // If the fill character is not "0", grouping is applied before padding.
-      if (comma && !zero) value = group(value, Infinity);
-
-      // Compute the padding.
-      var length = valuePrefix.length + value.length + valueSuffix.length,
-          padding = length < width ? new Array(width - length + 1).join(fill) : "";
-
-      // If the fill character is "0", grouping is applied after padding.
-      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
-
-      // Reconstruct the final output based on the desired alignment.
-      switch (align) {
-        case "<": value = valuePrefix + value + valueSuffix + padding; break;
-        case "=": value = valuePrefix + padding + value + valueSuffix; break;
-        case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
-        default: value = padding + valuePrefix + value + valueSuffix; break;
-      }
-
-      return numerals(value);
-    }
-
-    format.toString = function() {
-      return specifier + "";
-    };
-
-    return format;
-  }
-
-  function formatPrefix(specifier, value) {
-    var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
-        k = Math.pow(10, -e),
-        f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier), {suffix: prefixes[8 + e / 3]});
-    return function(value) {
-      return f(k * value);
-    };
-  }
-
-  return {
-    format: newFormat,
-    formatPrefix: formatPrefix
-  };
-}
Index: de_modules/d3-format/src/precisionFixed.js
===================================================================
--- node_modules/d3-format/src/precisionFixed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import exponent from "./exponent.js";
-
-export default function(step) {
-  return Math.max(0, -exponent(Math.abs(step)));
-}
Index: de_modules/d3-format/src/precisionPrefix.js
===================================================================
--- node_modules/d3-format/src/precisionPrefix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import exponent from "./exponent.js";
-
-export default function(step, value) {
-  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
-}
Index: de_modules/d3-format/src/precisionRound.js
===================================================================
--- node_modules/d3-format/src/precisionRound.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import exponent from "./exponent.js";
-
-export default function(step, max) {
-  step = Math.abs(step), max = Math.abs(max) - step;
-  return Math.max(0, exponent(max) - exponent(step)) + 1;
-}
Index: de_modules/d3-geo/LICENSE
===================================================================
--- node_modules/d3-geo/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-Copyright 2010-2024 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
-This license applies to GeographicLib, versions 1.12 and later.
-
-Copyright 2008-2012 Charles Karney
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/d3-geo/README.md
===================================================================
--- node_modules/d3-geo/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# d3-geo
-
-<a href="https://d3js.org"><img src="https://github.com/d3/d3/raw/main/docs/public/logo.svg" width="256" height="256"></a>
-
-This module uses spherical [GeoJSON](http://geojson.org/geojson-spec.html) to represent geographic features in JavaScript. D3 supports a wide variety of common and [unusual](https://github.com/d3/d3-geo-projection) map projections. And because D3 uses spherical geometry to represent data, you can apply any aspect to any projection by rotating geometry.
-
-## Resources
-
-- [Documentation](https://d3js.org/d3-geo)
-- [Examples](https://observablehq.com/collection/@d3/d3-geo)
-- [Releases](https://github.com/d3/d3-geo/releases)
-- [Getting help](https://d3js.org/community)
Index: de_modules/d3-geo/dist/d3-geo.js
===================================================================
--- node_modules/d3-geo/dist/d3-geo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3167 +1,0 @@
-// https://d3js.org/d3-geo/ v3.1.1 Copyright 2010-2024 Mike Bostock, 2008-2012 Charles Karney
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-})(this, (function (exports, d3Array) { 'use strict';
-
-var epsilon = 1e-6;
-var epsilon2 = 1e-12;
-var pi = Math.PI;
-var halfPi = pi / 2;
-var quarterPi = pi / 4;
-var tau = pi * 2;
-
-var degrees = 180 / pi;
-var radians = pi / 180;
-
-var abs = Math.abs;
-var atan = Math.atan;
-var atan2 = Math.atan2;
-var cos = Math.cos;
-var ceil = Math.ceil;
-var exp = Math.exp;
-var hypot = Math.hypot;
-var log = Math.log;
-var pow = Math.pow;
-var sin = Math.sin;
-var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
-var sqrt = Math.sqrt;
-var tan = Math.tan;
-
-function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-function asin(x) {
-  return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
-}
-
-function haversin(x) {
-  return (x = sin(x / 2)) * x;
-}
-
-function noop() {}
-
-function streamGeometry(geometry, stream) {
-  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
-    streamGeometryType[geometry.type](geometry, stream);
-  }
-}
-
-var streamObjectType = {
-  Feature: function(object, stream) {
-    streamGeometry(object.geometry, stream);
-  },
-  FeatureCollection: function(object, stream) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) streamGeometry(features[i].geometry, stream);
-  }
-};
-
-var streamGeometryType = {
-  Sphere: function(object, stream) {
-    stream.sphere();
-  },
-  Point: function(object, stream) {
-    object = object.coordinates;
-    stream.point(object[0], object[1], object[2]);
-  },
-  MultiPoint: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
-  },
-  LineString: function(object, stream) {
-    streamLine(object.coordinates, stream, 0);
-  },
-  MultiLineString: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamLine(coordinates[i], stream, 0);
-  },
-  Polygon: function(object, stream) {
-    streamPolygon(object.coordinates, stream);
-  },
-  MultiPolygon: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamPolygon(coordinates[i], stream);
-  },
-  GeometryCollection: function(object, stream) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) streamGeometry(geometries[i], stream);
-  }
-};
-
-function streamLine(coordinates, stream, closed) {
-  var i = -1, n = coordinates.length - closed, coordinate;
-  stream.lineStart();
-  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
-  stream.lineEnd();
-}
-
-function streamPolygon(coordinates, stream) {
-  var i = -1, n = coordinates.length;
-  stream.polygonStart();
-  while (++i < n) streamLine(coordinates[i], stream, 1);
-  stream.polygonEnd();
-}
-
-function geoStream(object, stream) {
-  if (object && streamObjectType.hasOwnProperty(object.type)) {
-    streamObjectType[object.type](object, stream);
-  } else {
-    streamGeometry(object, stream);
-  }
-}
-
-var areaRingSum$1 = new d3Array.Adder();
-
-// hello?
-
-var areaSum$1 = new d3Array.Adder(),
-    lambda00$2,
-    phi00$2,
-    lambda0$2,
-    cosPhi0$1,
-    sinPhi0$1;
-
-var areaStream$1 = {
-  point: noop,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: function() {
-    areaRingSum$1 = new d3Array.Adder();
-    areaStream$1.lineStart = areaRingStart$1;
-    areaStream$1.lineEnd = areaRingEnd$1;
-  },
-  polygonEnd: function() {
-    var areaRing = +areaRingSum$1;
-    areaSum$1.add(areaRing < 0 ? tau + areaRing : areaRing);
-    this.lineStart = this.lineEnd = this.point = noop;
-  },
-  sphere: function() {
-    areaSum$1.add(tau);
-  }
-};
-
-function areaRingStart$1() {
-  areaStream$1.point = areaPointFirst$1;
-}
-
-function areaRingEnd$1() {
-  areaPoint$1(lambda00$2, phi00$2);
-}
-
-function areaPointFirst$1(lambda, phi) {
-  areaStream$1.point = areaPoint$1;
-  lambda00$2 = lambda, phi00$2 = phi;
-  lambda *= radians, phi *= radians;
-  lambda0$2 = lambda, cosPhi0$1 = cos(phi = phi / 2 + quarterPi), sinPhi0$1 = sin(phi);
-}
-
-function areaPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  phi = phi / 2 + quarterPi; // half the angular distance from south pole
-
-  // Spherical excess E for a spherical triangle with vertices: south pole,
-  // previous point, current point.  Uses a formula derived from Cagnoli’s
-  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
-  var dLambda = lambda - lambda0$2,
-      sdLambda = dLambda >= 0 ? 1 : -1,
-      adLambda = sdLambda * dLambda,
-      cosPhi = cos(phi),
-      sinPhi = sin(phi),
-      k = sinPhi0$1 * sinPhi,
-      u = cosPhi0$1 * cosPhi + k * cos(adLambda),
-      v = k * sdLambda * sin(adLambda);
-  areaRingSum$1.add(atan2(v, u));
-
-  // Advance the previous points.
-  lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi;
-}
-
-function area(object) {
-  areaSum$1 = new d3Array.Adder();
-  geoStream(object, areaStream$1);
-  return areaSum$1 * 2;
-}
-
-function spherical(cartesian) {
-  return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];
-}
-
-function cartesian(spherical) {
-  var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);
-  return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];
-}
-
-function cartesianDot(a, b) {
-  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-}
-
-function cartesianCross(a, b) {
-  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
-}
-
-// TODO return a
-function cartesianAddInPlace(a, b) {
-  a[0] += b[0], a[1] += b[1], a[2] += b[2];
-}
-
-function cartesianScale(vector, k) {
-  return [vector[0] * k, vector[1] * k, vector[2] * k];
-}
-
-// TODO return d
-function cartesianNormalizeInPlace(d) {
-  var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
-  d[0] /= l, d[1] /= l, d[2] /= l;
-}
-
-var lambda0$1, phi0, lambda1, phi1, // bounds
-    lambda2, // previous lambda-coordinate
-    lambda00$1, phi00$1, // first point
-    p0, // previous 3D point
-    deltaSum,
-    ranges,
-    range;
-
-var boundsStream$1 = {
-  point: boundsPoint$1,
-  lineStart: boundsLineStart,
-  lineEnd: boundsLineEnd,
-  polygonStart: function() {
-    boundsStream$1.point = boundsRingPoint;
-    boundsStream$1.lineStart = boundsRingStart;
-    boundsStream$1.lineEnd = boundsRingEnd;
-    deltaSum = new d3Array.Adder();
-    areaStream$1.polygonStart();
-  },
-  polygonEnd: function() {
-    areaStream$1.polygonEnd();
-    boundsStream$1.point = boundsPoint$1;
-    boundsStream$1.lineStart = boundsLineStart;
-    boundsStream$1.lineEnd = boundsLineEnd;
-    if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-    else if (deltaSum > epsilon) phi1 = 90;
-    else if (deltaSum < -epsilon) phi0 = -90;
-    range[0] = lambda0$1, range[1] = lambda1;
-  },
-  sphere: function() {
-    lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-  }
-};
-
-function boundsPoint$1(lambda, phi) {
-  ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-}
-
-function linePoint(lambda, phi) {
-  var p = cartesian([lambda * radians, phi * radians]);
-  if (p0) {
-    var normal = cartesianCross(p0, p),
-        equatorial = [normal[1], -normal[0], 0],
-        inflection = cartesianCross(equatorial, normal);
-    cartesianNormalizeInPlace(inflection);
-    inflection = spherical(inflection);
-    var delta = lambda - lambda2,
-        sign = delta > 0 ? 1 : -1,
-        lambdai = inflection[0] * degrees * sign,
-        phii,
-        antimeridian = abs(delta) > 180;
-    if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = inflection[1] * degrees;
-      if (phii > phi1) phi1 = phii;
-    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = -inflection[1] * degrees;
-      if (phii < phi0) phi0 = phii;
-    } else {
-      if (phi < phi0) phi0 = phi;
-      if (phi > phi1) phi1 = phi;
-    }
-    if (antimeridian) {
-      if (lambda < lambda2) {
-        if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
-      } else {
-        if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
-      }
-    } else {
-      if (lambda1 >= lambda0$1) {
-        if (lambda < lambda0$1) lambda0$1 = lambda;
-        if (lambda > lambda1) lambda1 = lambda;
-      } else {
-        if (lambda > lambda2) {
-          if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
-        } else {
-          if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
-        }
-      }
-    }
-  } else {
-    ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);
-  }
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-  p0 = p, lambda2 = lambda;
-}
-
-function boundsLineStart() {
-  boundsStream$1.point = linePoint;
-}
-
-function boundsLineEnd() {
-  range[0] = lambda0$1, range[1] = lambda1;
-  boundsStream$1.point = boundsPoint$1;
-  p0 = null;
-}
-
-function boundsRingPoint(lambda, phi) {
-  if (p0) {
-    var delta = lambda - lambda2;
-    deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
-  } else {
-    lambda00$1 = lambda, phi00$1 = phi;
-  }
-  areaStream$1.point(lambda, phi);
-  linePoint(lambda, phi);
-}
-
-function boundsRingStart() {
-  areaStream$1.lineStart();
-}
-
-function boundsRingEnd() {
-  boundsRingPoint(lambda00$1, phi00$1);
-  areaStream$1.lineEnd();
-  if (abs(deltaSum) > epsilon) lambda0$1 = -(lambda1 = 180);
-  range[0] = lambda0$1, range[1] = lambda1;
-  p0 = null;
-}
-
-// Finds the left-right distance between two longitudes.
-// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
-// the distance between ±180° to be 360°.
-function angle(lambda0, lambda1) {
-  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
-}
-
-function rangeCompare(a, b) {
-  return a[0] - b[0];
-}
-
-function rangeContains(range, x) {
-  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
-}
-
-function bounds(feature) {
-  var i, n, a, b, merged, deltaMax, delta;
-
-  phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);
-  ranges = [];
-  geoStream(feature, boundsStream$1);
-
-  // First, sort ranges by their minimum longitudes.
-  if (n = ranges.length) {
-    ranges.sort(rangeCompare);
-
-    // Then, merge any ranges that overlap.
-    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
-      b = ranges[i];
-      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
-        if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
-        if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
-      } else {
-        merged.push(a = b);
-      }
-    }
-
-    // Finally, find the largest gap between the merged ranges.
-    // The final bounding box will be the inverse of this gap.
-    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
-      b = merged[i];
-      if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];
-    }
-  }
-
-  ranges = range = null;
-
-  return lambda0$1 === Infinity || phi0 === Infinity
-      ? [[NaN, NaN], [NaN, NaN]]
-      : [[lambda0$1, phi0], [lambda1, phi1]];
-}
-
-var W0, W1,
-    X0$1, Y0$1, Z0$1,
-    X1$1, Y1$1, Z1$1,
-    X2$1, Y2$1, Z2$1,
-    lambda00, phi00, // first point
-    x0$4, y0$4, z0; // previous point
-
-var centroidStream$1 = {
-  sphere: noop,
-  point: centroidPoint$1,
-  lineStart: centroidLineStart$1,
-  lineEnd: centroidLineEnd$1,
-  polygonStart: function() {
-    centroidStream$1.lineStart = centroidRingStart$1;
-    centroidStream$1.lineEnd = centroidRingEnd$1;
-  },
-  polygonEnd: function() {
-    centroidStream$1.lineStart = centroidLineStart$1;
-    centroidStream$1.lineEnd = centroidLineEnd$1;
-  }
-};
-
-// Arithmetic mean of Cartesian vectors.
-function centroidPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi);
-  centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));
-}
-
-function centroidPointCartesian(x, y, z) {
-  ++W0;
-  X0$1 += (x - X0$1) / W0;
-  Y0$1 += (y - Y0$1) / W0;
-  Z0$1 += (z - Z0$1) / W0;
-}
-
-function centroidLineStart$1() {
-  centroidStream$1.point = centroidLinePointFirst;
-}
-
-function centroidLinePointFirst(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi);
-  x0$4 = cosPhi * cos(lambda);
-  y0$4 = cosPhi * sin(lambda);
-  z0 = sin(phi);
-  centroidStream$1.point = centroidLinePoint;
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidLinePoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi),
-      x = cosPhi * cos(lambda),
-      y = cosPhi * sin(lambda),
-      z = sin(phi),
-      w = atan2(sqrt((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z);
-  W1 += w;
-  X1$1 += w * (x0$4 + (x0$4 = x));
-  Y1$1 += w * (y0$4 + (y0$4 = y));
-  Z1$1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidLineEnd$1() {
-  centroidStream$1.point = centroidPoint$1;
-}
-
-// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
-// J. Applied Mechanics 42, 239 (1975).
-function centroidRingStart$1() {
-  centroidStream$1.point = centroidRingPointFirst;
-}
-
-function centroidRingEnd$1() {
-  centroidRingPoint(lambda00, phi00);
-  centroidStream$1.point = centroidPoint$1;
-}
-
-function centroidRingPointFirst(lambda, phi) {
-  lambda00 = lambda, phi00 = phi;
-  lambda *= radians, phi *= radians;
-  centroidStream$1.point = centroidRingPoint;
-  var cosPhi = cos(phi);
-  x0$4 = cosPhi * cos(lambda);
-  y0$4 = cosPhi * sin(lambda);
-  z0 = sin(phi);
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidRingPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi),
-      x = cosPhi * cos(lambda),
-      y = cosPhi * sin(lambda),
-      z = sin(phi),
-      cx = y0$4 * z - z0 * y,
-      cy = z0 * x - x0$4 * z,
-      cz = x0$4 * y - y0$4 * x,
-      m = hypot(cx, cy, cz),
-      w = asin(m), // line weight = angle
-      v = m && -w / m; // area weight multiplier
-  X2$1.add(v * cx);
-  Y2$1.add(v * cy);
-  Z2$1.add(v * cz);
-  W1 += w;
-  X1$1 += w * (x0$4 + (x0$4 = x));
-  Y1$1 += w * (y0$4 + (y0$4 = y));
-  Z1$1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroid(object) {
-  W0 = W1 =
-  X0$1 = Y0$1 = Z0$1 =
-  X1$1 = Y1$1 = Z1$1 = 0;
-  X2$1 = new d3Array.Adder();
-  Y2$1 = new d3Array.Adder();
-  Z2$1 = new d3Array.Adder();
-  geoStream(object, centroidStream$1);
-
-  var x = +X2$1,
-      y = +Y2$1,
-      z = +Z2$1,
-      m = hypot(x, y, z);
-
-  // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
-  if (m < epsilon2) {
-    x = X1$1, y = Y1$1, z = Z1$1;
-    // If the feature has zero length, fall back to arithmetic mean of point vectors.
-    if (W1 < epsilon) x = X0$1, y = Y0$1, z = Z0$1;
-    m = hypot(x, y, z);
-    // If the feature still has an undefined ccentroid, then return.
-    if (m < epsilon2) return [NaN, NaN];
-  }
-
-  return [atan2(y, x) * degrees, asin(z / m) * degrees];
-}
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-function compose(a, b) {
-
-  function compose(x, y) {
-    return x = a(x, y), b(x[0], x[1]);
-  }
-
-  if (a.invert && b.invert) compose.invert = function(x, y) {
-    return x = b.invert(x, y), x && a.invert(x[0], x[1]);
-  };
-
-  return compose;
-}
-
-function rotationIdentity(lambda, phi) {
-  if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;
-  return [lambda, phi];
-}
-
-rotationIdentity.invert = rotationIdentity;
-
-function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
-  return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
-    : rotationLambda(deltaLambda))
-    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
-    : rotationIdentity);
-}
-
-function forwardRotationLambda(deltaLambda) {
-  return function(lambda, phi) {
-    lambda += deltaLambda;
-    if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;
-    return [lambda, phi];
-  };
-}
-
-function rotationLambda(deltaLambda) {
-  var rotation = forwardRotationLambda(deltaLambda);
-  rotation.invert = forwardRotationLambda(-deltaLambda);
-  return rotation;
-}
-
-function rotationPhiGamma(deltaPhi, deltaGamma) {
-  var cosDeltaPhi = cos(deltaPhi),
-      sinDeltaPhi = sin(deltaPhi),
-      cosDeltaGamma = cos(deltaGamma),
-      sinDeltaGamma = sin(deltaGamma);
-
-  function rotation(lambda, phi) {
-    var cosPhi = cos(phi),
-        x = cos(lambda) * cosPhi,
-        y = sin(lambda) * cosPhi,
-        z = sin(phi),
-        k = z * cosDeltaPhi + x * sinDeltaPhi;
-    return [
-      atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
-      asin(k * cosDeltaGamma + y * sinDeltaGamma)
-    ];
-  }
-
-  rotation.invert = function(lambda, phi) {
-    var cosPhi = cos(phi),
-        x = cos(lambda) * cosPhi,
-        y = sin(lambda) * cosPhi,
-        z = sin(phi),
-        k = z * cosDeltaGamma - y * sinDeltaGamma;
-    return [
-      atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
-      asin(k * cosDeltaPhi - x * sinDeltaPhi)
-    ];
-  };
-
-  return rotation;
-}
-
-function rotation(rotate) {
-  rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);
-
-  function forward(coordinates) {
-    coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  }
-
-  forward.invert = function(coordinates) {
-    coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  };
-
-  return forward;
-}
-
-// Generates a circle centered at [0°, 0°], with a given radius and precision.
-function circleStream(stream, radius, delta, direction, t0, t1) {
-  if (!delta) return;
-  var cosRadius = cos(radius),
-      sinRadius = sin(radius),
-      step = direction * delta;
-  if (t0 == null) {
-    t0 = radius + direction * tau;
-    t1 = radius - step / 2;
-  } else {
-    t0 = circleRadius(cosRadius, t0);
-    t1 = circleRadius(cosRadius, t1);
-    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;
-  }
-  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
-    point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);
-    stream.point(point[0], point[1]);
-  }
-}
-
-// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
-function circleRadius(cosRadius, point) {
-  point = cartesian(point), point[0] -= cosRadius;
-  cartesianNormalizeInPlace(point);
-  var radius = acos(-point[1]);
-  return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;
-}
-
-function circle() {
-  var center = constant([0, 0]),
-      radius = constant(90),
-      precision = constant(2),
-      ring,
-      rotate,
-      stream = {point: point};
-
-  function point(x, y) {
-    ring.push(x = rotate(x, y));
-    x[0] *= degrees, x[1] *= degrees;
-  }
-
-  function circle() {
-    var c = center.apply(this, arguments),
-        r = radius.apply(this, arguments) * radians,
-        p = precision.apply(this, arguments) * radians;
-    ring = [];
-    rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;
-    circleStream(stream, r, p, 1);
-    c = {type: "Polygon", coordinates: [ring]};
-    ring = rotate = null;
-    return c;
-  }
-
-  circle.center = function(_) {
-    return arguments.length ? (center = typeof _ === "function" ? _ : constant([+_[0], +_[1]]), circle) : center;
-  };
-
-  circle.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), circle) : radius;
-  };
-
-  circle.precision = function(_) {
-    return arguments.length ? (precision = typeof _ === "function" ? _ : constant(+_), circle) : precision;
-  };
-
-  return circle;
-}
-
-function clipBuffer() {
-  var lines = [],
-      line;
-  return {
-    point: function(x, y, m) {
-      line.push([x, y, m]);
-    },
-    lineStart: function() {
-      lines.push(line = []);
-    },
-    lineEnd: noop,
-    rejoin: function() {
-      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
-    },
-    result: function() {
-      var result = lines;
-      lines = [];
-      line = null;
-      return result;
-    }
-  };
-}
-
-function pointEqual(a, b) {
-  return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;
-}
-
-function Intersection(point, points, other, entry) {
-  this.x = point;
-  this.z = points;
-  this.o = other; // another intersection
-  this.e = entry; // is an entry?
-  this.v = false; // visited
-  this.n = this.p = null; // next & previous
-}
-
-// A generalized polygon clipping algorithm: given a polygon that has been cut
-// into its visible line segments, and rejoins the segments by interpolating
-// along the clip edge.
-function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) {
-  var subject = [],
-      clip = [],
-      i,
-      n;
-
-  segments.forEach(function(segment) {
-    if ((n = segment.length - 1) <= 0) return;
-    var n, p0 = segment[0], p1 = segment[n], x;
-
-    if (pointEqual(p0, p1)) {
-      if (!p0[2] && !p1[2]) {
-        stream.lineStart();
-        for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
-        stream.lineEnd();
-        return;
-      }
-      // handle degenerate cases by moving the point
-      p1[0] += 2 * epsilon;
-    }
-
-    subject.push(x = new Intersection(p0, segment, null, true));
-    clip.push(x.o = new Intersection(p0, null, x, false));
-    subject.push(x = new Intersection(p1, segment, null, false));
-    clip.push(x.o = new Intersection(p1, null, x, true));
-  });
-
-  if (!subject.length) return;
-
-  clip.sort(compareIntersection);
-  link(subject);
-  link(clip);
-
-  for (i = 0, n = clip.length; i < n; ++i) {
-    clip[i].e = startInside = !startInside;
-  }
-
-  var start = subject[0],
-      points,
-      point;
-
-  while (1) {
-    // Find first unvisited intersection.
-    var current = start,
-        isSubject = true;
-    while (current.v) if ((current = current.n) === start) return;
-    points = current.z;
-    stream.lineStart();
-    do {
-      current.v = current.o.v = true;
-      if (current.e) {
-        if (isSubject) {
-          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.n.x, 1, stream);
-        }
-        current = current.n;
-      } else {
-        if (isSubject) {
-          points = current.p.z;
-          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.p.x, -1, stream);
-        }
-        current = current.p;
-      }
-      current = current.o;
-      points = current.z;
-      isSubject = !isSubject;
-    } while (!current.v);
-    stream.lineEnd();
-  }
-}
-
-function link(array) {
-  if (!(n = array.length)) return;
-  var n,
-      i = 0,
-      a = array[0],
-      b;
-  while (++i < n) {
-    a.n = b = array[i];
-    b.p = a;
-    a = b;
-  }
-  a.n = b = array[0];
-  b.p = a;
-}
-
-function longitude(point) {
-  return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);
-}
-
-function polygonContains(polygon, point) {
-  var lambda = longitude(point),
-      phi = point[1],
-      sinPhi = sin(phi),
-      normal = [sin(lambda), -cos(lambda), 0],
-      angle = 0,
-      winding = 0;
-
-  var sum = new d3Array.Adder();
-
-  if (sinPhi === 1) phi = halfPi + epsilon;
-  else if (sinPhi === -1) phi = -halfPi - epsilon;
-
-  for (var i = 0, n = polygon.length; i < n; ++i) {
-    if (!(m = (ring = polygon[i]).length)) continue;
-    var ring,
-        m,
-        point0 = ring[m - 1],
-        lambda0 = longitude(point0),
-        phi0 = point0[1] / 2 + quarterPi,
-        sinPhi0 = sin(phi0),
-        cosPhi0 = cos(phi0);
-
-    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
-      var point1 = ring[j],
-          lambda1 = longitude(point1),
-          phi1 = point1[1] / 2 + quarterPi,
-          sinPhi1 = sin(phi1),
-          cosPhi1 = cos(phi1),
-          delta = lambda1 - lambda0,
-          sign = delta >= 0 ? 1 : -1,
-          absDelta = sign * delta,
-          antimeridian = absDelta > pi,
-          k = sinPhi0 * sinPhi1;
-
-      sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));
-      angle += antimeridian ? delta + sign * tau : delta;
-
-      // Are the longitudes either side of the point’s meridian (lambda),
-      // and are the latitudes smaller than the parallel (phi)?
-      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
-        var arc = cartesianCross(cartesian(point0), cartesian(point1));
-        cartesianNormalizeInPlace(arc);
-        var intersection = cartesianCross(normal, arc);
-        cartesianNormalizeInPlace(intersection);
-        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);
-        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
-          winding += antimeridian ^ delta >= 0 ? 1 : -1;
-        }
-      }
-    }
-  }
-
-  // First, determine whether the South pole is inside or outside:
-  //
-  // It is inside if:
-  // * the polygon winds around it in a clockwise direction.
-  // * the polygon does not (cumulatively) wind around it, but has a negative
-  //   (counter-clockwise) area.
-  //
-  // Second, count the (signed) number of times a segment crosses a lambda
-  // from the point to the South pole.  If it is zero, then the point is the
-  // same side as the South pole.
-
-  return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);
-}
-
-function clip(pointVisible, clipLine, interpolate, start) {
-  return function(sink) {
-    var line = clipLine(sink),
-        ringBuffer = clipBuffer(),
-        ringSink = clipLine(ringBuffer),
-        polygonStarted = false,
-        polygon,
-        segments,
-        ring;
-
-    var clip = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        clip.point = pointRing;
-        clip.lineStart = ringStart;
-        clip.lineEnd = ringEnd;
-        segments = [];
-        polygon = [];
-      },
-      polygonEnd: function() {
-        clip.point = point;
-        clip.lineStart = lineStart;
-        clip.lineEnd = lineEnd;
-        segments = d3Array.merge(segments);
-        var startInside = polygonContains(polygon, start);
-        if (segments.length) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          clipRejoin(segments, compareIntersection, startInside, interpolate, sink);
-        } else if (startInside) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          interpolate(null, null, 1, sink);
-          sink.lineEnd();
-        }
-        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
-        segments = polygon = null;
-      },
-      sphere: function() {
-        sink.polygonStart();
-        sink.lineStart();
-        interpolate(null, null, 1, sink);
-        sink.lineEnd();
-        sink.polygonEnd();
-      }
-    };
-
-    function point(lambda, phi) {
-      if (pointVisible(lambda, phi)) sink.point(lambda, phi);
-    }
-
-    function pointLine(lambda, phi) {
-      line.point(lambda, phi);
-    }
-
-    function lineStart() {
-      clip.point = pointLine;
-      line.lineStart();
-    }
-
-    function lineEnd() {
-      clip.point = point;
-      line.lineEnd();
-    }
-
-    function pointRing(lambda, phi) {
-      ring.push([lambda, phi]);
-      ringSink.point(lambda, phi);
-    }
-
-    function ringStart() {
-      ringSink.lineStart();
-      ring = [];
-    }
-
-    function ringEnd() {
-      pointRing(ring[0][0], ring[0][1]);
-      ringSink.lineEnd();
-
-      var clean = ringSink.clean(),
-          ringSegments = ringBuffer.result(),
-          i, n = ringSegments.length, m,
-          segment,
-          point;
-
-      ring.pop();
-      polygon.push(ring);
-      ring = null;
-
-      if (!n) return;
-
-      // No intersections.
-      if (clean & 1) {
-        segment = ringSegments[0];
-        if ((m = segment.length - 1) > 0) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
-          sink.lineEnd();
-        }
-        return;
-      }
-
-      // Rejoin connected segments.
-      // TODO reuse ringBuffer.rejoin()?
-      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
-
-      segments.push(ringSegments.filter(validSegment));
-    }
-
-    return clip;
-  };
-}
-
-function validSegment(segment) {
-  return segment.length > 1;
-}
-
-// Intersections are sorted along the clip edge. For both antimeridian cutting
-// and circle clipping, the same comparison is used.
-function compareIntersection(a, b) {
-  return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])
-       - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);
-}
-
-var clipAntimeridian = clip(
-  function() { return true; },
-  clipAntimeridianLine,
-  clipAntimeridianInterpolate,
-  [-pi, -halfPi]
-);
-
-// Takes a line and cuts into visible segments. Return values: 0 - there were
-// intersections or the line was empty; 1 - no intersections; 2 - there were
-// intersections, and the first and last segments should be rejoined.
-function clipAntimeridianLine(stream) {
-  var lambda0 = NaN,
-      phi0 = NaN,
-      sign0 = NaN,
-      clean; // no intersections
-
-  return {
-    lineStart: function() {
-      stream.lineStart();
-      clean = 1;
-    },
-    point: function(lambda1, phi1) {
-      var sign1 = lambda1 > 0 ? pi : -pi,
-          delta = abs(lambda1 - lambda0);
-      if (abs(delta - pi) < epsilon) { // line crosses a pole
-        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        stream.point(lambda1, phi0);
-        clean = 0;
-      } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian
-        if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies
-        if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;
-        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        clean = 0;
-      }
-      stream.point(lambda0 = lambda1, phi0 = phi1);
-      sign0 = sign1;
-    },
-    lineEnd: function() {
-      stream.lineEnd();
-      lambda0 = phi0 = NaN;
-    },
-    clean: function() {
-      return 2 - clean; // if intersections, rejoin first and last segments
-    }
-  };
-}
-
-function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
-  var cosPhi0,
-      cosPhi1,
-      sinLambda0Lambda1 = sin(lambda0 - lambda1);
-  return abs(sinLambda0Lambda1) > epsilon
-      ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)
-          - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))
-          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
-      : (phi0 + phi1) / 2;
-}
-
-function clipAntimeridianInterpolate(from, to, direction, stream) {
-  var phi;
-  if (from == null) {
-    phi = direction * halfPi;
-    stream.point(-pi, phi);
-    stream.point(0, phi);
-    stream.point(pi, phi);
-    stream.point(pi, 0);
-    stream.point(pi, -phi);
-    stream.point(0, -phi);
-    stream.point(-pi, -phi);
-    stream.point(-pi, 0);
-    stream.point(-pi, phi);
-  } else if (abs(from[0] - to[0]) > epsilon) {
-    var lambda = from[0] < to[0] ? pi : -pi;
-    phi = direction * lambda / 2;
-    stream.point(-lambda, phi);
-    stream.point(0, phi);
-    stream.point(lambda, phi);
-  } else {
-    stream.point(to[0], to[1]);
-  }
-}
-
-function clipCircle(radius) {
-  var cr = cos(radius),
-      delta = 2 * radians,
-      smallRadius = cr > 0,
-      notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case
-
-  function interpolate(from, to, direction, stream) {
-    circleStream(stream, radius, delta, direction, from, to);
-  }
-
-  function visible(lambda, phi) {
-    return cos(lambda) * cos(phi) > cr;
-  }
-
-  // Takes a line and cuts into visible segments. Return values used for polygon
-  // clipping: 0 - there were intersections or the line was empty; 1 - no
-  // intersections 2 - there were intersections, and the first and last segments
-  // should be rejoined.
-  function clipLine(stream) {
-    var point0, // previous point
-        c0, // code for previous point
-        v0, // visibility of previous point
-        v00, // visibility of first point
-        clean; // no intersections
-    return {
-      lineStart: function() {
-        v00 = v0 = false;
-        clean = 1;
-      },
-      point: function(lambda, phi) {
-        var point1 = [lambda, phi],
-            point2,
-            v = visible(lambda, phi),
-            c = smallRadius
-              ? v ? 0 : code(lambda, phi)
-              : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;
-        if (!point0 && (v00 = v0 = v)) stream.lineStart();
-        if (v !== v0) {
-          point2 = intersect(point0, point1);
-          if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))
-            point1[2] = 1;
-        }
-        if (v !== v0) {
-          clean = 0;
-          if (v) {
-            // outside going in
-            stream.lineStart();
-            point2 = intersect(point1, point0);
-            stream.point(point2[0], point2[1]);
-          } else {
-            // inside going out
-            point2 = intersect(point0, point1);
-            stream.point(point2[0], point2[1], 2);
-            stream.lineEnd();
-          }
-          point0 = point2;
-        } else if (notHemisphere && point0 && smallRadius ^ v) {
-          var t;
-          // If the codes for two points are different, or are both zero,
-          // and there this segment intersects with the small circle.
-          if (!(c & c0) && (t = intersect(point1, point0, true))) {
-            clean = 0;
-            if (smallRadius) {
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1]);
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-            } else {
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1], 3);
-            }
-          }
-        }
-        if (v && (!point0 || !pointEqual(point0, point1))) {
-          stream.point(point1[0], point1[1]);
-        }
-        point0 = point1, v0 = v, c0 = c;
-      },
-      lineEnd: function() {
-        if (v0) stream.lineEnd();
-        point0 = null;
-      },
-      // Rejoin first and last segments if there were intersections and the first
-      // and last points were visible.
-      clean: function() {
-        return clean | ((v00 && v0) << 1);
-      }
-    };
-  }
-
-  // Intersects the great circle between a and b with the clip circle.
-  function intersect(a, b, two) {
-    var pa = cartesian(a),
-        pb = cartesian(b);
-
-    // We have two planes, n1.p = d1 and n2.p = d2.
-    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
-    var n1 = [1, 0, 0], // normal
-        n2 = cartesianCross(pa, pb),
-        n2n2 = cartesianDot(n2, n2),
-        n1n2 = n2[0], // cartesianDot(n1, n2),
-        determinant = n2n2 - n1n2 * n1n2;
-
-    // Two polar points.
-    if (!determinant) return !two && a;
-
-    var c1 =  cr * n2n2 / determinant,
-        c2 = -cr * n1n2 / determinant,
-        n1xn2 = cartesianCross(n1, n2),
-        A = cartesianScale(n1, c1),
-        B = cartesianScale(n2, c2);
-    cartesianAddInPlace(A, B);
-
-    // Solve |p(t)|^2 = 1.
-    var u = n1xn2,
-        w = cartesianDot(A, u),
-        uu = cartesianDot(u, u),
-        t2 = w * w - uu * (cartesianDot(A, A) - 1);
-
-    if (t2 < 0) return;
-
-    var t = sqrt(t2),
-        q = cartesianScale(u, (-w - t) / uu);
-    cartesianAddInPlace(q, A);
-    q = spherical(q);
-
-    if (!two) return q;
-
-    // Two intersection points.
-    var lambda0 = a[0],
-        lambda1 = b[0],
-        phi0 = a[1],
-        phi1 = b[1],
-        z;
-
-    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
-
-    var delta = lambda1 - lambda0,
-        polar = abs(delta - pi) < epsilon,
-        meridian = polar || delta < epsilon;
-
-    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
-
-    // Check that the first point is between a and b.
-    if (meridian
-        ? polar
-          ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)
-          : phi0 <= q[1] && q[1] <= phi1
-        : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
-      var q1 = cartesianScale(u, (-w + t) / uu);
-      cartesianAddInPlace(q1, A);
-      return [q, spherical(q1)];
-    }
-  }
-
-  // Generates a 4-bit vector representing the location of a point relative to
-  // the small circle's bounding box.
-  function code(lambda, phi) {
-    var r = smallRadius ? radius : pi - radius,
-        code = 0;
-    if (lambda < -r) code |= 1; // left
-    else if (lambda > r) code |= 2; // right
-    if (phi < -r) code |= 4; // below
-    else if (phi > r) code |= 8; // above
-    return code;
-  }
-
-  return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);
-}
-
-function clipLine(a, b, x0, y0, x1, y1) {
-  var ax = a[0],
-      ay = a[1],
-      bx = b[0],
-      by = b[1],
-      t0 = 0,
-      t1 = 1,
-      dx = bx - ax,
-      dy = by - ay,
-      r;
-
-  r = x0 - ax;
-  if (!dx && r > 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dx > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = x1 - ax;
-  if (!dx && r < 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dx > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  r = y0 - ay;
-  if (!dy && r > 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dy > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = y1 - ay;
-  if (!dy && r < 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dy > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
-  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
-  return true;
-}
-
-var clipMax = 1e9, clipMin = -clipMax;
-
-// TODO Use d3-polygon’s polygonContains here for the ring check?
-// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
-
-function clipRectangle(x0, y0, x1, y1) {
-
-  function visible(x, y) {
-    return x0 <= x && x <= x1 && y0 <= y && y <= y1;
-  }
-
-  function interpolate(from, to, direction, stream) {
-    var a = 0, a1 = 0;
-    if (from == null
-        || (a = corner(from, direction)) !== (a1 = corner(to, direction))
-        || comparePoint(from, to) < 0 ^ direction > 0) {
-      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
-      while ((a = (a + direction + 4) % 4) !== a1);
-    } else {
-      stream.point(to[0], to[1]);
-    }
-  }
-
-  function corner(p, direction) {
-    return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3
-        : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1
-        : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0
-        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
-  }
-
-  function compareIntersection(a, b) {
-    return comparePoint(a.x, b.x);
-  }
-
-  function comparePoint(a, b) {
-    var ca = corner(a, 1),
-        cb = corner(b, 1);
-    return ca !== cb ? ca - cb
-        : ca === 0 ? b[1] - a[1]
-        : ca === 1 ? a[0] - b[0]
-        : ca === 2 ? a[1] - b[1]
-        : b[0] - a[0];
-  }
-
-  return function(stream) {
-    var activeStream = stream,
-        bufferStream = clipBuffer(),
-        segments,
-        polygon,
-        ring,
-        x__, y__, v__, // first point
-        x_, y_, v_, // previous point
-        first,
-        clean;
-
-    var clipStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: polygonStart,
-      polygonEnd: polygonEnd
-    };
-
-    function point(x, y) {
-      if (visible(x, y)) activeStream.point(x, y);
-    }
-
-    function polygonInside() {
-      var winding = 0;
-
-      for (var i = 0, n = polygon.length; i < n; ++i) {
-        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
-          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
-          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
-          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
-        }
-      }
-
-      return winding;
-    }
-
-    // Buffer geometry within a polygon and then clip it en masse.
-    function polygonStart() {
-      activeStream = bufferStream, segments = [], polygon = [], clean = true;
-    }
-
-    function polygonEnd() {
-      var startInside = polygonInside(),
-          cleanInside = clean && startInside,
-          visible = (segments = d3Array.merge(segments)).length;
-      if (cleanInside || visible) {
-        stream.polygonStart();
-        if (cleanInside) {
-          stream.lineStart();
-          interpolate(null, null, 1, stream);
-          stream.lineEnd();
-        }
-        if (visible) {
-          clipRejoin(segments, compareIntersection, startInside, interpolate, stream);
-        }
-        stream.polygonEnd();
-      }
-      activeStream = stream, segments = polygon = ring = null;
-    }
-
-    function lineStart() {
-      clipStream.point = linePoint;
-      if (polygon) polygon.push(ring = []);
-      first = true;
-      v_ = false;
-      x_ = y_ = NaN;
-    }
-
-    // TODO rather than special-case polygons, simply handle them separately.
-    // Ideally, coincident intersection points should be jittered to avoid
-    // clipping issues.
-    function lineEnd() {
-      if (segments) {
-        linePoint(x__, y__);
-        if (v__ && v_) bufferStream.rejoin();
-        segments.push(bufferStream.result());
-      }
-      clipStream.point = point;
-      if (v_) activeStream.lineEnd();
-    }
-
-    function linePoint(x, y) {
-      var v = visible(x, y);
-      if (polygon) ring.push([x, y]);
-      if (first) {
-        x__ = x, y__ = y, v__ = v;
-        first = false;
-        if (v) {
-          activeStream.lineStart();
-          activeStream.point(x, y);
-        }
-      } else {
-        if (v && v_) activeStream.point(x, y);
-        else {
-          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
-              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
-          if (clipLine(a, b, x0, y0, x1, y1)) {
-            if (!v_) {
-              activeStream.lineStart();
-              activeStream.point(a[0], a[1]);
-            }
-            activeStream.point(b[0], b[1]);
-            if (!v) activeStream.lineEnd();
-            clean = false;
-          } else if (v) {
-            activeStream.lineStart();
-            activeStream.point(x, y);
-            clean = false;
-          }
-        }
-      }
-      x_ = x, y_ = y, v_ = v;
-    }
-
-    return clipStream;
-  };
-}
-
-function extent() {
-  var x0 = 0,
-      y0 = 0,
-      x1 = 960,
-      y1 = 500,
-      cache,
-      cacheStream,
-      clip;
-
-  return clip = {
-    stream: function(stream) {
-      return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);
-    },
-    extent: function(_) {
-      return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
-    }
-  };
-}
-
-var lengthSum$1,
-    lambda0,
-    sinPhi0,
-    cosPhi0;
-
-var lengthStream$1 = {
-  sphere: noop,
-  point: noop,
-  lineStart: lengthLineStart,
-  lineEnd: noop,
-  polygonStart: noop,
-  polygonEnd: noop
-};
-
-function lengthLineStart() {
-  lengthStream$1.point = lengthPointFirst$1;
-  lengthStream$1.lineEnd = lengthLineEnd;
-}
-
-function lengthLineEnd() {
-  lengthStream$1.point = lengthStream$1.lineEnd = noop;
-}
-
-function lengthPointFirst$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);
-  lengthStream$1.point = lengthPoint$1;
-}
-
-function lengthPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var sinPhi = sin(phi),
-      cosPhi = cos(phi),
-      delta = abs(lambda - lambda0),
-      cosDelta = cos(delta),
-      sinDelta = sin(delta),
-      x = cosPhi * sinDelta,
-      y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
-      z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
-  lengthSum$1.add(atan2(sqrt(x * x + y * y), z));
-  lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
-}
-
-function length(object) {
-  lengthSum$1 = new d3Array.Adder();
-  geoStream(object, lengthStream$1);
-  return +lengthSum$1;
-}
-
-var coordinates = [null, null],
-    object = {type: "LineString", coordinates: coordinates};
-
-function distance(a, b) {
-  coordinates[0] = a;
-  coordinates[1] = b;
-  return length(object);
-}
-
-var containsObjectType = {
-  Feature: function(object, point) {
-    return containsGeometry(object.geometry, point);
-  },
-  FeatureCollection: function(object, point) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
-    return false;
-  }
-};
-
-var containsGeometryType = {
-  Sphere: function() {
-    return true;
-  },
-  Point: function(object, point) {
-    return containsPoint(object.coordinates, point);
-  },
-  MultiPoint: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPoint(coordinates[i], point)) return true;
-    return false;
-  },
-  LineString: function(object, point) {
-    return containsLine(object.coordinates, point);
-  },
-  MultiLineString: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsLine(coordinates[i], point)) return true;
-    return false;
-  },
-  Polygon: function(object, point) {
-    return containsPolygon(object.coordinates, point);
-  },
-  MultiPolygon: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
-    return false;
-  },
-  GeometryCollection: function(object, point) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) if (containsGeometry(geometries[i], point)) return true;
-    return false;
-  }
-};
-
-function containsGeometry(geometry, point) {
-  return geometry && containsGeometryType.hasOwnProperty(geometry.type)
-      ? containsGeometryType[geometry.type](geometry, point)
-      : false;
-}
-
-function containsPoint(coordinates, point) {
-  return distance(coordinates, point) === 0;
-}
-
-function containsLine(coordinates, point) {
-  var ao, bo, ab;
-  for (var i = 0, n = coordinates.length; i < n; i++) {
-    bo = distance(coordinates[i], point);
-    if (bo === 0) return true;
-    if (i > 0) {
-      ab = distance(coordinates[i], coordinates[i - 1]);
-      if (
-        ab > 0 &&
-        ao <= ab &&
-        bo <= ab &&
-        (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab
-      )
-        return true;
-    }
-    ao = bo;
-  }
-  return false;
-}
-
-function containsPolygon(coordinates, point) {
-  return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));
-}
-
-function ringRadians(ring) {
-  return ring = ring.map(pointRadians), ring.pop(), ring;
-}
-
-function pointRadians(point) {
-  return [point[0] * radians, point[1] * radians];
-}
-
-function contains(object, point) {
-  return (object && containsObjectType.hasOwnProperty(object.type)
-      ? containsObjectType[object.type]
-      : containsGeometry)(object, point);
-}
-
-function graticuleX(y0, y1, dy) {
-  var y = d3Array.range(y0, y1 - epsilon, dy).concat(y1);
-  return function(x) { return y.map(function(y) { return [x, y]; }); };
-}
-
-function graticuleY(x0, x1, dx) {
-  var x = d3Array.range(x0, x1 - epsilon, dx).concat(x1);
-  return function(y) { return x.map(function(x) { return [x, y]; }); };
-}
-
-function graticule() {
-  var x1, x0, X1, X0,
-      y1, y0, Y1, Y0,
-      dx = 10, dy = dx, DX = 90, DY = 360,
-      x, y, X, Y,
-      precision = 2.5;
-
-  function graticule() {
-    return {type: "MultiLineString", coordinates: lines()};
-  }
-
-  function lines() {
-    return d3Array.range(ceil(X0 / DX) * DX, X1, DX).map(X)
-        .concat(d3Array.range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))
-        .concat(d3Array.range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))
-        .concat(d3Array.range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));
-  }
-
-  graticule.lines = function() {
-    return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
-  };
-
-  graticule.outline = function() {
-    return {
-      type: "Polygon",
-      coordinates: [
-        X(X0).concat(
-        Y(Y1).slice(1),
-        X(X1).reverse().slice(1),
-        Y(Y0).reverse().slice(1))
-      ]
-    };
-  };
-
-  graticule.extent = function(_) {
-    if (!arguments.length) return graticule.extentMinor();
-    return graticule.extentMajor(_).extentMinor(_);
-  };
-
-  graticule.extentMajor = function(_) {
-    if (!arguments.length) return [[X0, Y0], [X1, Y1]];
-    X0 = +_[0][0], X1 = +_[1][0];
-    Y0 = +_[0][1], Y1 = +_[1][1];
-    if (X0 > X1) _ = X0, X0 = X1, X1 = _;
-    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.extentMinor = function(_) {
-    if (!arguments.length) return [[x0, y0], [x1, y1]];
-    x0 = +_[0][0], x1 = +_[1][0];
-    y0 = +_[0][1], y1 = +_[1][1];
-    if (x0 > x1) _ = x0, x0 = x1, x1 = _;
-    if (y0 > y1) _ = y0, y0 = y1, y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.step = function(_) {
-    if (!arguments.length) return graticule.stepMinor();
-    return graticule.stepMajor(_).stepMinor(_);
-  };
-
-  graticule.stepMajor = function(_) {
-    if (!arguments.length) return [DX, DY];
-    DX = +_[0], DY = +_[1];
-    return graticule;
-  };
-
-  graticule.stepMinor = function(_) {
-    if (!arguments.length) return [dx, dy];
-    dx = +_[0], dy = +_[1];
-    return graticule;
-  };
-
-  graticule.precision = function(_) {
-    if (!arguments.length) return precision;
-    precision = +_;
-    x = graticuleX(y0, y1, 90);
-    y = graticuleY(x0, x1, precision);
-    X = graticuleX(Y0, Y1, 90);
-    Y = graticuleY(X0, X1, precision);
-    return graticule;
-  };
-
-  return graticule
-      .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])
-      .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);
-}
-
-function graticule10() {
-  return graticule()();
-}
-
-function interpolate(a, b) {
-  var x0 = a[0] * radians,
-      y0 = a[1] * radians,
-      x1 = b[0] * radians,
-      y1 = b[1] * radians,
-      cy0 = cos(y0),
-      sy0 = sin(y0),
-      cy1 = cos(y1),
-      sy1 = sin(y1),
-      kx0 = cy0 * cos(x0),
-      ky0 = cy0 * sin(x0),
-      kx1 = cy1 * cos(x1),
-      ky1 = cy1 * sin(x1),
-      d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),
-      k = sin(d);
-
-  var interpolate = d ? function(t) {
-    var B = sin(t *= d) / k,
-        A = sin(d - t) / k,
-        x = A * kx0 + B * kx1,
-        y = A * ky0 + B * ky1,
-        z = A * sy0 + B * sy1;
-    return [
-      atan2(y, x) * degrees,
-      atan2(z, sqrt(x * x + y * y)) * degrees
-    ];
-  } : function() {
-    return [x0 * degrees, y0 * degrees];
-  };
-
-  interpolate.distance = d;
-
-  return interpolate;
-}
-
-var identity$1 = x => x;
-
-var areaSum = new d3Array.Adder(),
-    areaRingSum = new d3Array.Adder(),
-    x00$2,
-    y00$2,
-    x0$3,
-    y0$3;
-
-var areaStream = {
-  point: noop,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: function() {
-    areaStream.lineStart = areaRingStart;
-    areaStream.lineEnd = areaRingEnd;
-  },
-  polygonEnd: function() {
-    areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;
-    areaSum.add(abs(areaRingSum));
-    areaRingSum = new d3Array.Adder();
-  },
-  result: function() {
-    var area = areaSum / 2;
-    areaSum = new d3Array.Adder();
-    return area;
-  }
-};
-
-function areaRingStart() {
-  areaStream.point = areaPointFirst;
-}
-
-function areaPointFirst(x, y) {
-  areaStream.point = areaPoint;
-  x00$2 = x0$3 = x, y00$2 = y0$3 = y;
-}
-
-function areaPoint(x, y) {
-  areaRingSum.add(y0$3 * x - x0$3 * y);
-  x0$3 = x, y0$3 = y;
-}
-
-function areaRingEnd() {
-  areaPoint(x00$2, y00$2);
-}
-
-var x0$2 = Infinity,
-    y0$2 = x0$2,
-    x1 = -x0$2,
-    y1 = x1;
-
-var boundsStream = {
-  point: boundsPoint,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: noop,
-  polygonEnd: noop,
-  result: function() {
-    var bounds = [[x0$2, y0$2], [x1, y1]];
-    x1 = y1 = -(y0$2 = x0$2 = Infinity);
-    return bounds;
-  }
-};
-
-function boundsPoint(x, y) {
-  if (x < x0$2) x0$2 = x;
-  if (x > x1) x1 = x;
-  if (y < y0$2) y0$2 = y;
-  if (y > y1) y1 = y;
-}
-
-// TODO Enforce positive area for exterior, negative area for interior?
-
-var X0 = 0,
-    Y0 = 0,
-    Z0 = 0,
-    X1 = 0,
-    Y1 = 0,
-    Z1 = 0,
-    X2 = 0,
-    Y2 = 0,
-    Z2 = 0,
-    x00$1,
-    y00$1,
-    x0$1,
-    y0$1;
-
-var centroidStream = {
-  point: centroidPoint,
-  lineStart: centroidLineStart,
-  lineEnd: centroidLineEnd,
-  polygonStart: function() {
-    centroidStream.lineStart = centroidRingStart;
-    centroidStream.lineEnd = centroidRingEnd;
-  },
-  polygonEnd: function() {
-    centroidStream.point = centroidPoint;
-    centroidStream.lineStart = centroidLineStart;
-    centroidStream.lineEnd = centroidLineEnd;
-  },
-  result: function() {
-    var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
-        : Z1 ? [X1 / Z1, Y1 / Z1]
-        : Z0 ? [X0 / Z0, Y0 / Z0]
-        : [NaN, NaN];
-    X0 = Y0 = Z0 =
-    X1 = Y1 = Z1 =
-    X2 = Y2 = Z2 = 0;
-    return centroid;
-  }
-};
-
-function centroidPoint(x, y) {
-  X0 += x;
-  Y0 += y;
-  ++Z0;
-}
-
-function centroidLineStart() {
-  centroidStream.point = centroidPointFirstLine;
-}
-
-function centroidPointFirstLine(x, y) {
-  centroidStream.point = centroidPointLine;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-function centroidPointLine(x, y) {
-  var dx = x - x0$1, dy = y - y0$1, z = sqrt(dx * dx + dy * dy);
-  X1 += z * (x0$1 + x) / 2;
-  Y1 += z * (y0$1 + y) / 2;
-  Z1 += z;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-function centroidLineEnd() {
-  centroidStream.point = centroidPoint;
-}
-
-function centroidRingStart() {
-  centroidStream.point = centroidPointFirstRing;
-}
-
-function centroidRingEnd() {
-  centroidPointRing(x00$1, y00$1);
-}
-
-function centroidPointFirstRing(x, y) {
-  centroidStream.point = centroidPointRing;
-  centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y);
-}
-
-function centroidPointRing(x, y) {
-  var dx = x - x0$1,
-      dy = y - y0$1,
-      z = sqrt(dx * dx + dy * dy);
-
-  X1 += z * (x0$1 + x) / 2;
-  Y1 += z * (y0$1 + y) / 2;
-  Z1 += z;
-
-  z = y0$1 * x - x0$1 * y;
-  X2 += z * (x0$1 + x);
-  Y2 += z * (y0$1 + y);
-  Z2 += z * 3;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-function PathContext(context) {
-  this._context = context;
-}
-
-PathContext.prototype = {
-  _radius: 4.5,
-  pointRadius: function(_) {
-    return this._radius = _, this;
-  },
-  polygonStart: function() {
-    this._line = 0;
-  },
-  polygonEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line === 0) this._context.closePath();
-    this._point = NaN;
-  },
-  point: function(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._context.moveTo(x, y);
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._context.lineTo(x, y);
-        break;
-      }
-      default: {
-        this._context.moveTo(x + this._radius, y);
-        this._context.arc(x, y, this._radius, 0, tau);
-        break;
-      }
-    }
-  },
-  result: noop
-};
-
-var lengthSum = new d3Array.Adder(),
-    lengthRing,
-    x00,
-    y00,
-    x0,
-    y0;
-
-var lengthStream = {
-  point: noop,
-  lineStart: function() {
-    lengthStream.point = lengthPointFirst;
-  },
-  lineEnd: function() {
-    if (lengthRing) lengthPoint(x00, y00);
-    lengthStream.point = noop;
-  },
-  polygonStart: function() {
-    lengthRing = true;
-  },
-  polygonEnd: function() {
-    lengthRing = null;
-  },
-  result: function() {
-    var length = +lengthSum;
-    lengthSum = new d3Array.Adder();
-    return length;
-  }
-};
-
-function lengthPointFirst(x, y) {
-  lengthStream.point = lengthPoint;
-  x00 = x0 = x, y00 = y0 = y;
-}
-
-function lengthPoint(x, y) {
-  x0 -= x, y0 -= y;
-  lengthSum.add(sqrt(x0 * x0 + y0 * y0));
-  x0 = x, y0 = y;
-}
-
-// Simple caching for constant-radius points.
-let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
-
-class PathString {
-  constructor(digits) {
-    this._append = digits == null ? append : appendRound(digits);
-    this._radius = 4.5;
-    this._ = "";
-  }
-  pointRadius(_) {
-    this._radius = +_;
-    return this;
-  }
-  polygonStart() {
-    this._line = 0;
-  }
-  polygonEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line === 0) this._ += "Z";
-    this._point = NaN;
-  }
-  point(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._append`M${x},${y}`;
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._append`L${x},${y}`;
-        break;
-      }
-      default: {
-        this._append`M${x},${y}`;
-        if (this._radius !== cacheRadius || this._append !== cacheAppend) {
-          const r = this._radius;
-          const s = this._;
-          this._ = ""; // stash the old string so we can cache the circle path fragment
-          this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
-          cacheRadius = r;
-          cacheAppend = this._append;
-          cacheCircle = this._;
-          this._ = s;
-        }
-        this._ += cacheCircle;
-        break;
-      }
-    }
-  }
-  result() {
-    const result = this._;
-    this._ = "";
-    return result.length ? result : null;
-  }
-}
-
-function append(strings) {
-  let i = 1;
-  this._ += strings[0];
-  for (const j = strings.length; i < j; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound(digits) {
-  const d = Math.floor(digits);
-  if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
-  if (d > 15) return append;
-  if (d !== cacheDigits) {
-    const k = 10 ** d;
-    cacheDigits = d;
-    cacheAppend = function append(strings) {
-      let i = 1;
-      this._ += strings[0];
-      for (const j = strings.length; i < j; ++i) {
-        this._ += Math.round(arguments[i] * k) / k + strings[i];
-      }
-    };
-  }
-  return cacheAppend;
-}
-
-function index(projection, context) {
-  let digits = 3,
-      pointRadius = 4.5,
-      projectionStream,
-      contextStream;
-
-  function path(object) {
-    if (object) {
-      if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
-      geoStream(object, projectionStream(contextStream));
-    }
-    return contextStream.result();
-  }
-
-  path.area = function(object) {
-    geoStream(object, projectionStream(areaStream));
-    return areaStream.result();
-  };
-
-  path.measure = function(object) {
-    geoStream(object, projectionStream(lengthStream));
-    return lengthStream.result();
-  };
-
-  path.bounds = function(object) {
-    geoStream(object, projectionStream(boundsStream));
-    return boundsStream.result();
-  };
-
-  path.centroid = function(object) {
-    geoStream(object, projectionStream(centroidStream));
-    return centroidStream.result();
-  };
-
-  path.projection = function(_) {
-    if (!arguments.length) return projection;
-    projectionStream = _ == null ? (projection = null, identity$1) : (projection = _).stream;
-    return path;
-  };
-
-  path.context = function(_) {
-    if (!arguments.length) return context;
-    contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
-    if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
-    return path;
-  };
-
-  path.pointRadius = function(_) {
-    if (!arguments.length) return pointRadius;
-    pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
-    return path;
-  };
-
-  path.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) digits = null;
-    else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    if (context === null) contextStream = new PathString(digits);
-    return path;
-  };
-
-  return path.projection(projection).digits(digits).context(context);
-}
-
-function transform(methods) {
-  return {
-    stream: transformer(methods)
-  };
-}
-
-function transformer(methods) {
-  return function(stream) {
-    var s = new TransformStream;
-    for (var key in methods) s[key] = methods[key];
-    s.stream = stream;
-    return s;
-  };
-}
-
-function TransformStream() {}
-
-TransformStream.prototype = {
-  constructor: TransformStream,
-  point: function(x, y) { this.stream.point(x, y); },
-  sphere: function() { this.stream.sphere(); },
-  lineStart: function() { this.stream.lineStart(); },
-  lineEnd: function() { this.stream.lineEnd(); },
-  polygonStart: function() { this.stream.polygonStart(); },
-  polygonEnd: function() { this.stream.polygonEnd(); }
-};
-
-function fit(projection, fitBounds, object) {
-  var clip = projection.clipExtent && projection.clipExtent();
-  projection.scale(150).translate([0, 0]);
-  if (clip != null) projection.clipExtent(null);
-  geoStream(object, projection.stream(boundsStream));
-  fitBounds(boundsStream.result());
-  if (clip != null) projection.clipExtent(clip);
-  return projection;
-}
-
-function fitExtent(projection, extent, object) {
-  return fit(projection, function(b) {
-    var w = extent[1][0] - extent[0][0],
-        h = extent[1][1] - extent[0][1],
-        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
-        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
-        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-function fitSize(projection, size, object) {
-  return fitExtent(projection, [[0, 0], size], object);
-}
-
-function fitWidth(projection, width, object) {
-  return fit(projection, function(b) {
-    var w = +width,
-        k = w / (b[1][0] - b[0][0]),
-        x = (w - k * (b[1][0] + b[0][0])) / 2,
-        y = -k * b[0][1];
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-function fitHeight(projection, height, object) {
-  return fit(projection, function(b) {
-    var h = +height,
-        k = h / (b[1][1] - b[0][1]),
-        x = -k * b[0][0],
-        y = (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-var maxDepth = 16, // maximum depth of subdivision
-    cosMinDistance = cos(30 * radians); // cos(minimum angular distance)
-
-function resample(project, delta2) {
-  return +delta2 ? resample$1(project, delta2) : resampleNone(project);
-}
-
-function resampleNone(project) {
-  return transformer({
-    point: function(x, y) {
-      x = project(x, y);
-      this.stream.point(x[0], x[1]);
-    }
-  });
-}
-
-function resample$1(project, delta2) {
-
-  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
-    var dx = x1 - x0,
-        dy = y1 - y0,
-        d2 = dx * dx + dy * dy;
-    if (d2 > 4 * delta2 && depth--) {
-      var a = a0 + a1,
-          b = b0 + b1,
-          c = c0 + c1,
-          m = sqrt(a * a + b * b + c * c),
-          phi2 = asin(c /= m),
-          lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),
-          p = project(lambda2, phi2),
-          x2 = p[0],
-          y2 = p[1],
-          dx2 = x2 - x0,
-          dy2 = y2 - y0,
-          dz = dy * dx2 - dx * dy2;
-      if (dz * dz / d2 > delta2 // perpendicular projected distance
-          || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
-          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
-        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
-        stream.point(x2, y2);
-        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
-      }
-    }
-  }
-  return function(stream) {
-    var lambda00, x00, y00, a00, b00, c00, // first point
-        lambda0, x0, y0, a0, b0, c0; // previous point
-
-    var resampleStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
-      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
-    };
-
-    function point(x, y) {
-      x = project(x, y);
-      stream.point(x[0], x[1]);
-    }
-
-    function lineStart() {
-      x0 = NaN;
-      resampleStream.point = linePoint;
-      stream.lineStart();
-    }
-
-    function linePoint(lambda, phi) {
-      var c = cartesian([lambda, phi]), p = project(lambda, phi);
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
-      stream.point(x0, y0);
-    }
-
-    function lineEnd() {
-      resampleStream.point = point;
-      stream.lineEnd();
-    }
-
-    function ringStart() {
-      lineStart();
-      resampleStream.point = ringPoint;
-      resampleStream.lineEnd = ringEnd;
-    }
-
-    function ringPoint(lambda, phi) {
-      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
-      resampleStream.point = linePoint;
-    }
-
-    function ringEnd() {
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
-      resampleStream.lineEnd = lineEnd;
-      lineEnd();
-    }
-
-    return resampleStream;
-  };
-}
-
-var transformRadians = transformer({
-  point: function(x, y) {
-    this.stream.point(x * radians, y * radians);
-  }
-});
-
-function transformRotate(rotate) {
-  return transformer({
-    point: function(x, y) {
-      var r = rotate(x, y);
-      return this.stream.point(r[0], r[1]);
-    }
-  });
-}
-
-function scaleTranslate(k, dx, dy, sx, sy) {
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [dx + k * x, dy - k * y];
-  }
-  transform.invert = function(x, y) {
-    return [(x - dx) / k * sx, (dy - y) / k * sy];
-  };
-  return transform;
-}
-
-function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {
-  if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);
-  var cosAlpha = cos(alpha),
-      sinAlpha = sin(alpha),
-      a = cosAlpha * k,
-      b = sinAlpha * k,
-      ai = cosAlpha / k,
-      bi = sinAlpha / k,
-      ci = (sinAlpha * dy - cosAlpha * dx) / k,
-      fi = (sinAlpha * dx + cosAlpha * dy) / k;
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [a * x - b * y + dx, dy - b * x - a * y];
-  }
-  transform.invert = function(x, y) {
-    return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];
-  };
-  return transform;
-}
-
-function projection(project) {
-  return projectionMutator(function() { return project; })();
-}
-
-function projectionMutator(projectAt) {
-  var project,
-      k = 150, // scale
-      x = 480, y = 250, // translate
-      lambda = 0, phi = 0, // center
-      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
-      alpha = 0, // post-rotate angle
-      sx = 1, // reflectX
-      sy = 1, // reflectX
-      theta = null, preclip = clipAntimeridian, // pre-clip angle
-      x0 = null, y0, x1, y1, postclip = identity$1, // post-clip extent
-      delta2 = 0.5, // precision
-      projectResample,
-      projectTransform,
-      projectRotateTransform,
-      cache,
-      cacheStream;
-
-  function projection(point) {
-    return projectRotateTransform(point[0] * radians, point[1] * radians);
-  }
-
-  function invert(point) {
-    point = projectRotateTransform.invert(point[0], point[1]);
-    return point && [point[0] * degrees, point[1] * degrees];
-  }
-
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
-  };
-
-  projection.preclip = function(_) {
-    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
-  };
-
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-
-  projection.clipAngle = function(_) {
-    return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;
-  };
-
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$1) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, recenter()) : k;
-  };
-
-  projection.translate = function(_) {
-    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
-  };
-
-  projection.center = function(_) {
-    return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];
-  };
-
-  projection.rotate = function(_) {
-    return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];
-  };
-
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;
-  };
-
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;
-  };
-
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;
-  };
-
-  projection.precision = function(_) {
-    return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);
-  };
-
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  function recenter() {
-    var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),
-        transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);
-    rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);
-    projectTransform = compose(project, transform);
-    projectRotateTransform = compose(rotate, projectTransform);
-    projectResample = resample(projectTransform, delta2);
-    return reset();
-  }
-
-  function reset() {
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  return function() {
-    project = projectAt.apply(this, arguments);
-    projection.invert = project.invert && invert;
-    return recenter();
-  };
-}
-
-function conicProjection(projectAt) {
-  var phi0 = 0,
-      phi1 = pi / 3,
-      m = projectionMutator(projectAt),
-      p = m(phi0, phi1);
-
-  p.parallels = function(_) {
-    return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];
-  };
-
-  return p;
-}
-
-function cylindricalEqualAreaRaw(phi0) {
-  var cosPhi0 = cos(phi0);
-
-  function forward(lambda, phi) {
-    return [lambda * cosPhi0, sin(phi) / cosPhi0];
-  }
-
-  forward.invert = function(x, y) {
-    return [x / cosPhi0, asin(y * cosPhi0)];
-  };
-
-  return forward;
-}
-
-function conicEqualAreaRaw(y0, y1) {
-  var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;
-
-  // Are the parallels symmetrical around the Equator?
-  if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);
-
-  var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;
-
-  function project(x, y) {
-    var r = sqrt(c - 2 * n * sin(y)) / n;
-    return [r * sin(x *= n), r0 - r * cos(x)];
-  }
-
-  project.invert = function(x, y) {
-    var r0y = r0 - y,
-        l = atan2(x, abs(r0y)) * sign(r0y);
-    if (r0y * n < 0)
-      l -= pi * sign(x) * sign(r0y);
-    return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
-  };
-
-  return project;
-}
-
-function conicEqualArea() {
-  return conicProjection(conicEqualAreaRaw)
-      .scale(155.424)
-      .center([0, 33.6442]);
-}
-
-function albers() {
-  return conicEqualArea()
-      .parallels([29.5, 45.5])
-      .scale(1070)
-      .translate([480, 250])
-      .rotate([96, 0])
-      .center([-0.6, 38.7]);
-}
-
-// The projections must have mutually exclusive clip regions on the sphere,
-// as this will avoid emitting interleaving lines and polygons.
-function multiplex(streams) {
-  var n = streams.length;
-  return {
-    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
-    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
-    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
-    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
-    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
-    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
-  };
-}
-
-// A composite projection for the United States, configured by default for
-// 960×500. The projection also works quite well at 960×600 if you change the
-// scale to 1285 and adjust the translate accordingly. The set of standard
-// parallels for each region comes from USGS, which is published here:
-// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
-function albersUsa() {
-  var cache,
-      cacheStream,
-      lower48 = albers(), lower48Point,
-      alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
-      hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
-      point, pointStream = {point: function(x, y) { point = [x, y]; }};
-
-  function albersUsa(coordinates) {
-    var x = coordinates[0], y = coordinates[1];
-    return point = null,
-        (lower48Point.point(x, y), point)
-        || (alaskaPoint.point(x, y), point)
-        || (hawaiiPoint.point(x, y), point);
-  }
-
-  albersUsa.invert = function(coordinates) {
-    var k = lower48.scale(),
-        t = lower48.translate(),
-        x = (coordinates[0] - t[0]) / k,
-        y = (coordinates[1] - t[1]) / k;
-    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
-        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
-        : lower48).invert(coordinates);
-  };
-
-  albersUsa.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
-  };
-
-  albersUsa.precision = function(_) {
-    if (!arguments.length) return lower48.precision();
-    lower48.precision(_), alaska.precision(_), hawaii.precision(_);
-    return reset();
-  };
-
-  albersUsa.scale = function(_) {
-    if (!arguments.length) return lower48.scale();
-    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
-    return albersUsa.translate(lower48.translate());
-  };
-
-  albersUsa.translate = function(_) {
-    if (!arguments.length) return lower48.translate();
-    var k = lower48.scale(), x = +_[0], y = +_[1];
-
-    lower48Point = lower48
-        .translate(_)
-        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
-        .stream(pointStream);
-
-    alaskaPoint = alaska
-        .translate([x - 0.307 * k, y + 0.201 * k])
-        .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])
-        .stream(pointStream);
-
-    hawaiiPoint = hawaii
-        .translate([x - 0.205 * k, y + 0.212 * k])
-        .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])
-        .stream(pointStream);
-
-    return reset();
-  };
-
-  albersUsa.fitExtent = function(extent, object) {
-    return fitExtent(albersUsa, extent, object);
-  };
-
-  albersUsa.fitSize = function(size, object) {
-    return fitSize(albersUsa, size, object);
-  };
-
-  albersUsa.fitWidth = function(width, object) {
-    return fitWidth(albersUsa, width, object);
-  };
-
-  albersUsa.fitHeight = function(height, object) {
-    return fitHeight(albersUsa, height, object);
-  };
-
-  function reset() {
-    cache = cacheStream = null;
-    return albersUsa;
-  }
-
-  return albersUsa.scale(1070);
-}
-
-function azimuthalRaw(scale) {
-  return function(x, y) {
-    var cx = cos(x),
-        cy = cos(y),
-        k = scale(cx * cy);
-        if (k === Infinity) return [2, 0];
-    return [
-      k * cy * sin(x),
-      k * sin(y)
-    ];
-  }
-}
-
-function azimuthalInvert(angle) {
-  return function(x, y) {
-    var z = sqrt(x * x + y * y),
-        c = angle(z),
-        sc = sin(c),
-        cc = cos(c);
-    return [
-      atan2(x * sc, z * cc),
-      asin(z && y * sc / z)
-    ];
-  }
-}
-
-var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {
-  return sqrt(2 / (1 + cxcy));
-});
-
-azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {
-  return 2 * asin(z / 2);
-});
-
-function azimuthalEqualArea() {
-  return projection(azimuthalEqualAreaRaw)
-      .scale(124.75)
-      .clipAngle(180 - 1e-3);
-}
-
-var azimuthalEquidistantRaw = azimuthalRaw(function(c) {
-  return (c = acos(c)) && c / sin(c);
-});
-
-azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {
-  return z;
-});
-
-function azimuthalEquidistant() {
-  return projection(azimuthalEquidistantRaw)
-      .scale(79.4188)
-      .clipAngle(180 - 1e-3);
-}
-
-function mercatorRaw(lambda, phi) {
-  return [lambda, log(tan((halfPi + phi) / 2))];
-}
-
-mercatorRaw.invert = function(x, y) {
-  return [x, 2 * atan(exp(y)) - halfPi];
-};
-
-function mercator() {
-  return mercatorProjection(mercatorRaw)
-      .scale(961 / tau);
-}
-
-function mercatorProjection(project) {
-  var m = projection(project),
-      center = m.center,
-      scale = m.scale,
-      translate = m.translate,
-      clipExtent = m.clipExtent,
-      x0 = null, y0, x1, y1; // clip extent
-
-  m.scale = function(_) {
-    return arguments.length ? (scale(_), reclip()) : scale();
-  };
-
-  m.translate = function(_) {
-    return arguments.length ? (translate(_), reclip()) : translate();
-  };
-
-  m.center = function(_) {
-    return arguments.length ? (center(_), reclip()) : center();
-  };
-
-  m.clipExtent = function(_) {
-    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  function reclip() {
-    var k = pi * scale(),
-        t = m(rotation(m.rotate()).invert([0, 0]));
-    return clipExtent(x0 == null
-        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
-        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
-        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
-  }
-
-  return reclip();
-}
-
-function tany(y) {
-  return tan((halfPi + y) / 2);
-}
-
-function conicConformalRaw(y0, y1) {
-  var cy0 = cos(y0),
-      n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),
-      f = cy0 * pow(tany(y0), n) / n;
-
-  if (!n) return mercatorRaw;
-
-  function project(x, y) {
-    if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }
-    else { if (y > halfPi - epsilon) y = halfPi - epsilon; }
-    var r = f / pow(tany(y), n);
-    return [r * sin(n * x), f - r * cos(n * x)];
-  }
-
-  project.invert = function(x, y) {
-    var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),
-      l = atan2(x, abs(fy)) * sign(fy);
-    if (fy * n < 0)
-      l -= pi * sign(x) * sign(fy);
-    return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];
-  };
-
-  return project;
-}
-
-function conicConformal() {
-  return conicProjection(conicConformalRaw)
-      .scale(109.5)
-      .parallels([30, 30]);
-}
-
-function equirectangularRaw(lambda, phi) {
-  return [lambda, phi];
-}
-
-equirectangularRaw.invert = equirectangularRaw;
-
-function equirectangular() {
-  return projection(equirectangularRaw)
-      .scale(152.63);
-}
-
-function conicEquidistantRaw(y0, y1) {
-  var cy0 = cos(y0),
-      n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),
-      g = cy0 / n + y0;
-
-  if (abs(n) < epsilon) return equirectangularRaw;
-
-  function project(x, y) {
-    var gy = g - y, nx = n * x;
-    return [gy * sin(nx), g - gy * cos(nx)];
-  }
-
-  project.invert = function(x, y) {
-    var gy = g - y,
-        l = atan2(x, abs(gy)) * sign(gy);
-    if (gy * n < 0)
-      l -= pi * sign(x) * sign(gy);
-    return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];
-  };
-
-  return project;
-}
-
-function conicEquidistant() {
-  return conicProjection(conicEquidistantRaw)
-      .scale(131.154)
-      .center([0, 13.9389]);
-}
-
-var A1 = 1.340264,
-    A2 = -0.081106,
-    A3 = 0.000893,
-    A4 = 0.003796,
-    M = sqrt(3) / 2,
-    iterations = 12;
-
-function equalEarthRaw(lambda, phi) {
-  var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;
-  return [
-    lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
-    l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
-  ];
-}
-
-equalEarthRaw.invert = function(x, y) {
-  var l = y, l2 = l * l, l6 = l2 * l2 * l2;
-  for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
-    fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
-    fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
-    l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
-    if (abs(delta) < epsilon2) break;
-  }
-  return [
-    M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),
-    asin(sin(l) / M)
-  ];
-};
-
-function equalEarth() {
-  return projection(equalEarthRaw)
-      .scale(177.158);
-}
-
-function gnomonicRaw(x, y) {
-  var cy = cos(y), k = cos(x) * cy;
-  return [cy * sin(x) / k, sin(y) / k];
-}
-
-gnomonicRaw.invert = azimuthalInvert(atan);
-
-function gnomonic() {
-  return projection(gnomonicRaw)
-      .scale(144.049)
-      .clipAngle(60);
-}
-
-function identity() {
-  var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect
-      alpha = 0, ca, sa, // angle
-      x0 = null, y0, x1, y1, // clip extent
-      kx = 1, ky = 1,
-      transform = transformer({
-        point: function(x, y) {
-          var p = projection([x, y]);
-          this.stream.point(p[0], p[1]);
-        }
-      }),
-      postclip = identity$1,
-      cache,
-      cacheStream;
-
-  function reset() {
-    kx = k * sx;
-    ky = k * sy;
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  function projection (p) {
-    var x = p[0] * kx, y = p[1] * ky;
-    if (alpha) {
-      var t = y * ca - x * sa;
-      x = x * ca + y * sa;
-      y = t;
-    }    
-    return [x + tx, y + ty];
-  }
-  projection.invert = function(p) {
-    var x = p[0] - tx, y = p[1] - ty;
-    if (alpha) {
-      var t = y * ca + x * sa;
-      x = x * ca - y * sa;
-      y = t;
-    }
-    return [x / kx, y / ky];
-  };
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
-  };
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$1) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, reset()) : k;
-  };
-  projection.translate = function(_) {
-    return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];
-  };
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;
-  };
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;
-  };
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;
-  };
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  return projection;
-}
-
-function naturalEarth1Raw(lambda, phi) {
-  var phi2 = phi * phi, phi4 = phi2 * phi2;
-  return [
-    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
-    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
-  ];
-}
-
-naturalEarth1Raw.invert = function(x, y) {
-  var phi = y, i = 25, delta;
-  do {
-    var phi2 = phi * phi, phi4 = phi2 * phi2;
-    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
-        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
-  } while (abs(delta) > epsilon && --i > 0);
-  return [
-    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
-    phi
-  ];
-};
-
-function naturalEarth1() {
-  return projection(naturalEarth1Raw)
-      .scale(175.295);
-}
-
-function orthographicRaw(x, y) {
-  return [cos(y) * sin(x), sin(y)];
-}
-
-orthographicRaw.invert = azimuthalInvert(asin);
-
-function orthographic() {
-  return projection(orthographicRaw)
-      .scale(249.5)
-      .clipAngle(90 + epsilon);
-}
-
-function stereographicRaw(x, y) {
-  var cy = cos(y), k = 1 + cos(x) * cy;
-  return [cy * sin(x) / k, sin(y) / k];
-}
-
-stereographicRaw.invert = azimuthalInvert(function(z) {
-  return 2 * atan(z);
-});
-
-function stereographic() {
-  return projection(stereographicRaw)
-      .scale(250)
-      .clipAngle(142);
-}
-
-function transverseMercatorRaw(lambda, phi) {
-  return [log(tan((halfPi + phi) / 2)), -lambda];
-}
-
-transverseMercatorRaw.invert = function(x, y) {
-  return [-y, 2 * atan(exp(x)) - halfPi];
-};
-
-function transverseMercator() {
-  var m = mercatorProjection(transverseMercatorRaw),
-      center = m.center,
-      rotate = m.rotate;
-
-  m.center = function(_) {
-    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
-  };
-
-  m.rotate = function(_) {
-    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
-  };
-
-  return rotate([0, 0, 90])
-      .scale(159.155);
-}
-
-exports.geoAlbers = albers;
-exports.geoAlbersUsa = albersUsa;
-exports.geoArea = area;
-exports.geoAzimuthalEqualArea = azimuthalEqualArea;
-exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;
-exports.geoAzimuthalEquidistant = azimuthalEquidistant;
-exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;
-exports.geoBounds = bounds;
-exports.geoCentroid = centroid;
-exports.geoCircle = circle;
-exports.geoClipAntimeridian = clipAntimeridian;
-exports.geoClipCircle = clipCircle;
-exports.geoClipExtent = extent;
-exports.geoClipRectangle = clipRectangle;
-exports.geoConicConformal = conicConformal;
-exports.geoConicConformalRaw = conicConformalRaw;
-exports.geoConicEqualArea = conicEqualArea;
-exports.geoConicEqualAreaRaw = conicEqualAreaRaw;
-exports.geoConicEquidistant = conicEquidistant;
-exports.geoConicEquidistantRaw = conicEquidistantRaw;
-exports.geoContains = contains;
-exports.geoDistance = distance;
-exports.geoEqualEarth = equalEarth;
-exports.geoEqualEarthRaw = equalEarthRaw;
-exports.geoEquirectangular = equirectangular;
-exports.geoEquirectangularRaw = equirectangularRaw;
-exports.geoGnomonic = gnomonic;
-exports.geoGnomonicRaw = gnomonicRaw;
-exports.geoGraticule = graticule;
-exports.geoGraticule10 = graticule10;
-exports.geoIdentity = identity;
-exports.geoInterpolate = interpolate;
-exports.geoLength = length;
-exports.geoMercator = mercator;
-exports.geoMercatorRaw = mercatorRaw;
-exports.geoNaturalEarth1 = naturalEarth1;
-exports.geoNaturalEarth1Raw = naturalEarth1Raw;
-exports.geoOrthographic = orthographic;
-exports.geoOrthographicRaw = orthographicRaw;
-exports.geoPath = index;
-exports.geoProjection = projection;
-exports.geoProjectionMutator = projectionMutator;
-exports.geoRotation = rotation;
-exports.geoStereographic = stereographic;
-exports.geoStereographicRaw = stereographicRaw;
-exports.geoStream = geoStream;
-exports.geoTransform = transform;
-exports.geoTransverseMercator = transverseMercator;
-exports.geoTransverseMercatorRaw = transverseMercatorRaw;
-
-}));
Index: de_modules/d3-geo/dist/d3-geo.min.js
===================================================================
--- node_modules/d3-geo/dist/d3-geo.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-geo/ v3.1.1 Copyright 2010-2024 Mike Bostock, 2008-2012 Charles Karney
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{},n.d3)}(this,(function(n,t){"use strict";var r=1e-6,e=1e-12,i=Math.PI,o=i/2,u=i/4,a=2*i,c=180/i,l=i/180,f=Math.abs,p=Math.atan,s=Math.atan2,h=Math.cos,g=Math.ceil,d=Math.exp,v=Math.hypot,E=Math.log,y=Math.pow,S=Math.sin,m=Math.sign||function(n){return n>0?1:n<0?-1:0},M=Math.sqrt,w=Math.tan;function x(n){return n>1?0:n<-1?i:Math.acos(n)}function _(n){return n>1?o:n<-1?-o:Math.asin(n)}function N(n){return(n=S(n/2))*n}function A(){}function R(n,t){n&&P.hasOwnProperty(n.type)&&P[n.type](n,t)}var C={Feature:function(n,t){R(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,e=-1,i=r.length;++e<i;)R(r[e].geometry,t)}},P={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){$(n.coordinates,t,0)},MultiLineString:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)$(r[e],t,0)},Polygon:function(n,t){q(n.coordinates,t)},MultiPolygon:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)q(r[e],t)},GeometryCollection:function(n,t){for(var r=n.geometries,e=-1,i=r.length;++e<i;)R(r[e],t)}};function $(n,t,r){var e,i=-1,o=n.length-r;for(t.lineStart();++i<o;)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function q(n,t){var r=-1,e=n.length;for(t.polygonStart();++r<e;)$(n[r],t,1);t.polygonEnd()}function j(n,t){n&&C.hasOwnProperty(n.type)?C[n.type](n,t):R(n,t)}var z,b,L,T,G,O,k,F,H,I,W,X,Y,B,D,U,Z=new t.Adder,J=new t.Adder,K={point:A,lineStart:A,lineEnd:A,polygonStart:function(){Z=new t.Adder,K.lineStart=Q,K.lineEnd=V},polygonEnd:function(){var n=+Z;J.add(n<0?a+n:n),this.lineStart=this.lineEnd=this.point=A},sphere:function(){J.add(a)}};function Q(){K.point=nn}function V(){tn(z,b)}function nn(n,t){K.point=tn,z=n,b=t,L=n*=l,T=h(t=(t*=l)/2+u),G=S(t)}function tn(n,t){var r=(n*=l)-L,e=r>=0?1:-1,i=e*r,o=h(t=(t*=l)/2+u),a=S(t),c=G*a,f=T*o+c*h(i),p=c*e*S(i);Z.add(s(p,f)),L=n,T=o,G=a}function rn(n){return[s(n[1],n[0]),_(n[2])]}function en(n){var t=n[0],r=n[1],e=h(r);return[e*h(t),e*S(t),S(r)]}function on(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function un(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function an(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function cn(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ln(n){var t=M(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var fn,pn,sn,hn,gn,dn,vn,En,yn,Sn,mn,Mn,wn,xn,_n,Nn,An={point:Rn,lineStart:Pn,lineEnd:$n,polygonStart:function(){An.point=qn,An.lineStart=jn,An.lineEnd=zn,B=new t.Adder,K.polygonStart()},polygonEnd:function(){K.polygonEnd(),An.point=Rn,An.lineStart=Pn,An.lineEnd=$n,Z<0?(O=-(F=180),k=-(H=90)):B>r?H=90:B<-r&&(k=-90),U[0]=O,U[1]=F},sphere:function(){O=-(F=180),k=-(H=90)}};function Rn(n,t){D.push(U=[O=n,F=n]),t<k&&(k=t),t>H&&(H=t)}function Cn(n,t){var r=en([n*l,t*l]);if(Y){var e=un(Y,r),i=un([e[1],-e[0],0],e);ln(i),i=rn(i);var o,u=n-I,a=u>0?1:-1,p=i[0]*c*a,s=f(u)>180;s^(a*I<p&&p<a*n)?(o=i[1]*c)>H&&(H=o):s^(a*I<(p=(p+360)%360-180)&&p<a*n)?(o=-i[1]*c)<k&&(k=o):(t<k&&(k=t),t>H&&(H=t)),s?n<I?bn(O,n)>bn(O,F)&&(F=n):bn(n,F)>bn(O,F)&&(O=n):F>=O?(n<O&&(O=n),n>F&&(F=n)):n>I?bn(O,n)>bn(O,F)&&(F=n):bn(n,F)>bn(O,F)&&(O=n)}else D.push(U=[O=n,F=n]);t<k&&(k=t),t>H&&(H=t),Y=r,I=n}function Pn(){An.point=Cn}function $n(){U[0]=O,U[1]=F,An.point=Rn,Y=null}function qn(n,t){if(Y){var r=n-I;B.add(f(r)>180?r+(r>0?360:-360):r)}else W=n,X=t;K.point(n,t),Cn(n,t)}function jn(){K.lineStart()}function zn(){qn(W,X),K.lineEnd(),f(B)>r&&(O=-(F=180)),U[0]=O,U[1]=F,Y=null}function bn(n,t){return(t-=n)<0?t+360:t}function Ln(n,t){return n[0]-t[0]}function Tn(n,t){return n[0]<=n[1]?n[0]<=t&&t<=n[1]:t<n[0]||n[1]<t}var Gn={sphere:A,point:On,lineStart:Fn,lineEnd:Wn,polygonStart:function(){Gn.lineStart=Xn,Gn.lineEnd=Yn},polygonEnd:function(){Gn.lineStart=Fn,Gn.lineEnd=Wn}};function On(n,t){n*=l;var r=h(t*=l);kn(r*h(n),r*S(n),S(t))}function kn(n,t,r){++fn,sn+=(n-sn)/fn,hn+=(t-hn)/fn,gn+=(r-gn)/fn}function Fn(){Gn.point=Hn}function Hn(n,t){n*=l;var r=h(t*=l);xn=r*h(n),_n=r*S(n),Nn=S(t),Gn.point=In,kn(xn,_n,Nn)}function In(n,t){n*=l;var r=h(t*=l),e=r*h(n),i=r*S(n),o=S(t),u=s(M((u=_n*o-Nn*i)*u+(u=Nn*e-xn*o)*u+(u=xn*i-_n*e)*u),xn*e+_n*i+Nn*o);pn+=u,dn+=u*(xn+(xn=e)),vn+=u*(_n+(_n=i)),En+=u*(Nn+(Nn=o)),kn(xn,_n,Nn)}function Wn(){Gn.point=On}function Xn(){Gn.point=Bn}function Yn(){Dn(Mn,wn),Gn.point=On}function Bn(n,t){Mn=n,wn=t,n*=l,t*=l,Gn.point=Dn;var r=h(t);xn=r*h(n),_n=r*S(n),Nn=S(t),kn(xn,_n,Nn)}function Dn(n,t){n*=l;var r=h(t*=l),e=r*h(n),i=r*S(n),o=S(t),u=_n*o-Nn*i,a=Nn*e-xn*o,c=xn*i-_n*e,f=v(u,a,c),p=_(f),s=f&&-p/f;yn.add(s*u),Sn.add(s*a),mn.add(s*c),pn+=p,dn+=p*(xn+(xn=e)),vn+=p*(_n+(_n=i)),En+=p*(Nn+(Nn=o)),kn(xn,_n,Nn)}function Un(n){return function(){return n}}function Zn(n,t){function r(r,e){return r=n(r,e),t(r[0],r[1])}return n.invert&&t.invert&&(r.invert=function(r,e){return(r=t.invert(r,e))&&n.invert(r[0],r[1])}),r}function Jn(n,t){return f(n)>i&&(n-=Math.round(n/a)*a),[n,t]}function Kn(n,t,r){return(n%=a)?t||r?Zn(Vn(n),nt(t,r)):Vn(n):t||r?nt(t,r):Jn}function Qn(n){return function(t,r){return f(t+=n)>i&&(t-=Math.round(t/a)*a),[t,r]}}function Vn(n){var t=Qn(n);return t.invert=Qn(-n),t}function nt(n,t){var r=h(n),e=S(n),i=h(t),o=S(t);function u(n,t){var u=h(t),a=h(n)*u,c=S(n)*u,l=S(t),f=l*r+a*e;return[s(c*i-f*o,a*r-l*e),_(f*i+c*o)]}return u.invert=function(n,t){var u=h(t),a=h(n)*u,c=S(n)*u,l=S(t),f=l*i-c*o;return[s(c*i+l*o,a*r+f*e),_(f*r-a*e)]},u}function tt(n){function t(t){return(t=n(t[0]*l,t[1]*l))[0]*=c,t[1]*=c,t}return n=Kn(n[0]*l,n[1]*l,n.length>2?n[2]*l:0),t.invert=function(t){return(t=n.invert(t[0]*l,t[1]*l))[0]*=c,t[1]*=c,t},t}function rt(n,t,r,e,i,o){if(r){var u=h(t),c=S(t),l=e*r;null==i?(i=t+e*a,o=t-l/2):(i=et(u,i),o=et(u,o),(e>0?i<o:i>o)&&(i+=e*a));for(var f,p=i;e>0?p>o:p<o;p-=l)f=rn([u,-c*h(p),-c*S(p)]),n.point(f[0],f[1])}}function et(n,t){(t=en(t))[0]-=n,ln(t);var e=x(-t[1]);return((-t[2]<0?-e:e)+a-r)%a}function it(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:A,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var r=t;return t=[],n=null,r}}}function ot(n,t){return f(n[0]-t[0])<r&&f(n[1]-t[1])<r}function ut(n,t,r,e){this.x=n,this.z=t,this.o=r,this.e=e,this.v=!1,this.n=this.p=null}function at(n,t,e,i,o){var u,a,c=[],l=[];if(n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,e,i=n[0],a=n[t];if(ot(i,a)){if(!i[2]&&!a[2]){for(o.lineStart(),u=0;u<t;++u)o.point((i=n[u])[0],i[1]);return void o.lineEnd()}a[0]+=2*r}c.push(e=new ut(i,n,null,!0)),l.push(e.o=new ut(i,null,e,!1)),c.push(e=new ut(a,n,null,!1)),l.push(e.o=new ut(a,null,e,!0))}})),c.length){for(l.sort(t),ct(c),ct(l),u=0,a=l.length;u<a;++u)l[u].e=e=!e;for(var f,p,s=c[0];;){for(var h=s,g=!0;h.v;)if((h=h.n)===s)return;f=h.z,o.lineStart();do{if(h.v=h.o.v=!0,h.e){if(g)for(u=0,a=f.length;u<a;++u)o.point((p=f[u])[0],p[1]);else i(h.x,h.n.x,1,o);h=h.n}else{if(g)for(f=h.p.z,u=f.length-1;u>=0;--u)o.point((p=f[u])[0],p[1]);else i(h.x,h.p.x,-1,o);h=h.p}f=(h=h.o).z,g=!g}while(!h.v);o.lineEnd()}}}function ct(n){if(t=n.length){for(var t,r,e=0,i=n[0];++e<t;)i.n=r=n[e],r.p=i,i=r;i.n=r=n[0],r.p=i}}function lt(n){return f(n[0])<=i?n[0]:m(n[0])*((f(n[0])+i)%a-i)}function ft(n,c){var l=lt(c),f=c[1],p=S(f),g=[S(l),-h(l),0],d=0,v=0,E=new t.Adder;1===p?f=o+r:-1===p&&(f=-o-r);for(var y=0,m=n.length;y<m;++y)if(w=(M=n[y]).length)for(var M,w,x=M[w-1],N=lt(x),A=x[1]/2+u,R=S(A),C=h(A),P=0;P<w;++P,N=q,R=z,C=b,x=$){var $=M[P],q=lt($),j=$[1]/2+u,z=S(j),b=h(j),L=q-N,T=L>=0?1:-1,G=T*L,O=G>i,k=R*z;if(E.add(s(k*T*S(G),C*b+k*h(G))),d+=O?L+T*a:L,O^N>=l^q>=l){var F=un(en(x),en($));ln(F);var H=un(g,F);ln(H);var I=(O^L>=0?-1:1)*_(H[2]);(f>I||f===I&&(F[0]||F[1]))&&(v+=O^L>=0?1:-1)}}return(d<-r||d<r&&E<-e)^1&v}function pt(n,r,e,i){return function(o){var u,a,c,l=r(o),f=it(),p=r(f),s=!1,h={point:g,lineStart:v,lineEnd:E,polygonStart:function(){h.point=y,h.lineStart=S,h.lineEnd=m,a=[],u=[]},polygonEnd:function(){h.point=g,h.lineStart=v,h.lineEnd=E,a=t.merge(a);var n=ft(u,i);a.length?(s||(o.polygonStart(),s=!0),at(a,ht,n,e,o)):n&&(s||(o.polygonStart(),s=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),s&&(o.polygonEnd(),s=!1),a=u=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function g(t,r){n(t,r)&&o.point(t,r)}function d(n,t){l.point(n,t)}function v(){h.point=d,l.lineStart()}function E(){h.point=g,l.lineEnd()}function y(n,t){c.push([n,t]),p.point(n,t)}function S(){p.lineStart(),c=[]}function m(){y(c[0][0],c[0][1]),p.lineEnd();var n,t,r,e,i=p.clean(),l=f.result(),h=l.length;if(c.pop(),u.push(c),c=null,h)if(1&i){if((t=(r=l[0]).length-1)>0){for(s||(o.polygonStart(),s=!0),o.lineStart(),n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else h>1&&2&i&&l.push(l.pop().concat(l.shift())),a.push(l.filter(st))}return h}}function st(n){return n.length>1}function ht(n,t){return((n=n.x)[0]<0?n[1]-o-r:o-n[1])-((t=t.x)[0]<0?t[1]-o-r:o-t[1])}Jn.invert=Jn;var gt=pt((function(){return!0}),(function(n){var t,e=NaN,u=NaN,a=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(c,l){var s=c>0?i:-i,g=f(c-e);f(g-i)<r?(n.point(e,u=(u+l)/2>0?o:-o),n.point(a,u),n.lineEnd(),n.lineStart(),n.point(s,u),n.point(c,u),t=0):a!==s&&g>=i&&(f(e-a)<r&&(e-=a*r),f(c-s)<r&&(c-=s*r),u=function(n,t,e,i){var o,u,a=S(n-e);return f(a)>r?p((S(t)*(u=h(i))*S(e)-S(i)*(o=h(t))*S(n))/(o*u*a)):(t+i)/2}(e,u,c,l),n.point(a,u),n.lineEnd(),n.lineStart(),n.point(s,u),t=0),n.point(e=c,u=l),a=s},lineEnd:function(){n.lineEnd(),e=u=NaN},clean:function(){return 2-t}}}),(function(n,t,e,u){var a;if(null==n)a=e*o,u.point(-i,a),u.point(0,a),u.point(i,a),u.point(i,0),u.point(i,-a),u.point(0,-a),u.point(-i,-a),u.point(-i,0),u.point(-i,a);else if(f(n[0]-t[0])>r){var c=n[0]<t[0]?i:-i;a=e*c/2,u.point(-c,a),u.point(0,a),u.point(c,a)}else u.point(t[0],t[1])}),[-i,-o]);function dt(n){var t=h(n),e=2*l,o=t>0,u=f(t)>r;function a(n,r){return h(n)*h(r)>t}function c(n,e,o){var u=[1,0,0],a=un(en(n),en(e)),c=on(a,a),l=a[0],p=c-l*l;if(!p)return!o&&n;var s=t*c/p,h=-t*l/p,g=un(u,a),d=cn(u,s);an(d,cn(a,h));var v=g,E=on(d,v),y=on(v,v),S=E*E-y*(on(d,d)-1);if(!(S<0)){var m=M(S),w=cn(v,(-E-m)/y);if(an(w,d),w=rn(w),!o)return w;var x,_=n[0],N=e[0],A=n[1],R=e[1];N<_&&(x=_,_=N,N=x);var C=N-_,P=f(C-i)<r;if(!P&&R<A&&(x=A,A=R,R=x),P||C<r?P?A+R>0^w[1]<(f(w[0]-_)<r?A:R):A<=w[1]&&w[1]<=R:C>i^(_<=w[0]&&w[0]<=N)){var $=cn(v,(-E+m)/y);return an($,d),[w,rn($)]}}}function p(t,r){var e=o?n:i-n,u=0;return t<-e?u|=1:t>e&&(u|=2),r<-e?u|=4:r>e&&(u|=8),u}return pt(a,(function(n){var t,r,e,l,f;return{lineStart:function(){l=e=!1,f=1},point:function(s,h){var g,d=[s,h],v=a(s,h),E=o?v?0:p(s,h):v?p(s+(s<0?i:-i),h):0;if(!t&&(l=e=v)&&n.lineStart(),v!==e&&(!(g=c(t,d))||ot(t,g)||ot(d,g))&&(d[2]=1),v!==e)f=0,v?(n.lineStart(),g=c(d,t),n.point(g[0],g[1])):(g=c(t,d),n.point(g[0],g[1],2),n.lineEnd()),t=g;else if(u&&t&&o^v){var y;E&r||!(y=c(d,t,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1],3)))}!v||t&&ot(t,d)||n.point(d[0],d[1]),t=d,e=v,r=E},lineEnd:function(){e&&n.lineEnd(),t=null},clean:function(){return f|(l&&e)<<1}}}),(function(t,r,i,o){rt(o,n,e,i,t,r)}),o?[0,-n]:[-i,n-i])}var vt,Et,yt,St,mt=1e9,Mt=-mt;function wt(n,e,i,o){function u(t,r){return n<=t&&t<=i&&e<=r&&r<=o}function a(t,r,u,a){var l=0,f=0;if(null==t||(l=c(t,u))!==(f=c(r,u))||p(t,r)<0^u>0)do{a.point(0===l||3===l?n:i,l>1?o:e)}while((l=(l+u+4)%4)!==f);else a.point(r[0],r[1])}function c(t,o){return f(t[0]-n)<r?o>0?0:3:f(t[0]-i)<r?o>0?2:1:f(t[1]-e)<r?o>0?1:0:o>0?3:2}function l(n,t){return p(n.x,t.x)}function p(n,t){var r=c(n,1),e=c(t,1);return r!==e?r-e:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(r){var c,f,p,s,h,g,d,v,E,y,S,m=r,M=it(),w={point:x,lineStart:function(){w.point=_,f&&f.push(p=[]);y=!0,E=!1,d=v=NaN},lineEnd:function(){c&&(_(s,h),g&&E&&M.rejoin(),c.push(M.result()));w.point=x,E&&m.lineEnd()},polygonStart:function(){m=M,c=[],f=[],S=!0},polygonEnd:function(){var e=function(){for(var t=0,r=0,e=f.length;r<e;++r)for(var i,u,a=f[r],c=1,l=a.length,p=a[0],s=p[0],h=p[1];c<l;++c)i=s,u=h,s=(p=a[c])[0],h=p[1],u<=o?h>o&&(s-i)*(o-u)>(h-u)*(n-i)&&++t:h<=o&&(s-i)*(o-u)<(h-u)*(n-i)&&--t;return t}(),i=S&&e,u=(c=t.merge(c)).length;(i||u)&&(r.polygonStart(),i&&(r.lineStart(),a(null,null,1,r),r.lineEnd()),u&&at(c,l,e,a,r),r.polygonEnd());m=r,c=f=p=null}};function x(n,t){u(n,t)&&m.point(n,t)}function _(t,r){var a=u(t,r);if(f&&p.push([t,r]),y)s=t,h=r,g=a,y=!1,a&&(m.lineStart(),m.point(t,r));else if(a&&E)m.point(t,r);else{var c=[d=Math.max(Mt,Math.min(mt,d)),v=Math.max(Mt,Math.min(mt,v))],l=[t=Math.max(Mt,Math.min(mt,t)),r=Math.max(Mt,Math.min(mt,r))];!function(n,t,r,e,i,o){var u,a=n[0],c=n[1],l=0,f=1,p=t[0]-a,s=t[1]-c;if(u=r-a,p||!(u>0)){if(u/=p,p<0){if(u<l)return;u<f&&(f=u)}else if(p>0){if(u>f)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>f)return;u>l&&(l=u)}else if(p>0){if(u<l)return;u<f&&(f=u)}if(u=e-c,s||!(u>0)){if(u/=s,s<0){if(u<l)return;u<f&&(f=u)}else if(s>0){if(u>f)return;u>l&&(l=u)}if(u=o-c,s||!(u<0)){if(u/=s,s<0){if(u>f)return;u>l&&(l=u)}else if(s>0){if(u<l)return;u<f&&(f=u)}return l>0&&(n[0]=a+l*p,n[1]=c+l*s),f<1&&(t[0]=a+f*p,t[1]=c+f*s),!0}}}}}(c,l,n,e,i,o)?a&&(m.lineStart(),m.point(t,r),S=!1):(E||(m.lineStart(),m.point(c[0],c[1])),m.point(l[0],l[1]),a||m.lineEnd(),S=!1)}d=t,v=r,E=a}return w}}var xt={sphere:A,point:A,lineStart:function(){xt.point=Nt,xt.lineEnd=_t},lineEnd:A,polygonStart:A,polygonEnd:A};function _t(){xt.point=xt.lineEnd=A}function Nt(n,t){Et=n*=l,yt=S(t*=l),St=h(t),xt.point=At}function At(n,t){n*=l;var r=S(t*=l),e=h(t),i=f(n-Et),o=h(i),u=e*S(i),a=St*r-yt*e*o,c=yt*r+St*e*o;vt.add(s(M(u*u+a*a),c)),Et=n,yt=r,St=e}function Rt(n){return vt=new t.Adder,j(n,xt),+vt}var Ct=[null,null],Pt={type:"LineString",coordinates:Ct};function $t(n,t){return Ct[0]=n,Ct[1]=t,Rt(Pt)}var qt={Feature:function(n,t){return zt(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,e=-1,i=r.length;++e<i;)if(zt(r[e].geometry,t))return!0;return!1}},jt={Sphere:function(){return!0},Point:function(n,t){return bt(n.coordinates,t)},MultiPoint:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)if(bt(r[e],t))return!0;return!1},LineString:function(n,t){return Lt(n.coordinates,t)},MultiLineString:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)if(Lt(r[e],t))return!0;return!1},Polygon:function(n,t){return Tt(n.coordinates,t)},MultiPolygon:function(n,t){for(var r=n.coordinates,e=-1,i=r.length;++e<i;)if(Tt(r[e],t))return!0;return!1},GeometryCollection:function(n,t){for(var r=n.geometries,e=-1,i=r.length;++e<i;)if(zt(r[e],t))return!0;return!1}};function zt(n,t){return!(!n||!jt.hasOwnProperty(n.type))&&jt[n.type](n,t)}function bt(n,t){return 0===$t(n,t)}function Lt(n,t){for(var r,i,o,u=0,a=n.length;u<a;u++){if(0===(i=$t(n[u],t)))return!0;if(u>0&&(o=$t(n[u],n[u-1]))>0&&r<=o&&i<=o&&(r+i-o)*(1-Math.pow((r-i)/o,2))<e*o)return!0;r=i}return!1}function Tt(n,t){return!!ft(n.map(Gt),Ot(t))}function Gt(n){return(n=n.map(Ot)).pop(),n}function Ot(n){return[n[0]*l,n[1]*l]}function kt(n,e,i){var o=t.range(n,e-r,i).concat(e);return function(n){return o.map((function(t){return[n,t]}))}}function Ft(n,e,i){var o=t.range(n,e-r,i).concat(e);return function(n){return o.map((function(t){return[t,n]}))}}function Ht(){var n,e,i,o,u,a,c,l,p,s,h,d,v=10,E=v,y=90,S=360,m=2.5;function M(){return{type:"MultiLineString",coordinates:w()}}function w(){return t.range(g(o/y)*y,i,y).map(h).concat(t.range(g(l/S)*S,c,S).map(d)).concat(t.range(g(e/v)*v,n,v).filter((function(n){return f(n%y)>r})).map(p)).concat(t.range(g(a/E)*E,u,E).filter((function(n){return f(n%S)>r})).map(s))}return M.lines=function(){return w().map((function(n){return{type:"LineString",coordinates:n}}))},M.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(d(c).slice(1),h(i).reverse().slice(1),d(l).reverse().slice(1))]}},M.extent=function(n){return arguments.length?M.extentMajor(n).extentMinor(n):M.extentMinor()},M.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],l=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),l>c&&(n=l,l=c,c=n),M.precision(m)):[[o,l],[i,c]]},M.extentMinor=function(t){return arguments.length?(e=+t[0][0],n=+t[1][0],a=+t[0][1],u=+t[1][1],e>n&&(t=e,e=n,n=t),a>u&&(t=a,a=u,u=t),M.precision(m)):[[e,a],[n,u]]},M.step=function(n){return arguments.length?M.stepMajor(n).stepMinor(n):M.stepMinor()},M.stepMajor=function(n){return arguments.length?(y=+n[0],S=+n[1],M):[y,S]},M.stepMinor=function(n){return arguments.length?(v=+n[0],E=+n[1],M):[v,E]},M.precision=function(t){return arguments.length?(m=+t,p=kt(a,u,90),s=Ft(e,n,m),h=kt(l,c,90),d=Ft(o,i,m),M):m},M.extentMajor([[-180,-90+r],[180,90-r]]).extentMinor([[-180,-80-r],[180,80+r]])}var It,Wt,Xt,Yt,Bt=n=>n,Dt=new t.Adder,Ut=new t.Adder,Zt={point:A,lineStart:A,lineEnd:A,polygonStart:function(){Zt.lineStart=Jt,Zt.lineEnd=Vt},polygonEnd:function(){Zt.lineStart=Zt.lineEnd=Zt.point=A,Dt.add(f(Ut)),Ut=new t.Adder},result:function(){var n=Dt/2;return Dt=new t.Adder,n}};function Jt(){Zt.point=Kt}function Kt(n,t){Zt.point=Qt,It=Xt=n,Wt=Yt=t}function Qt(n,t){Ut.add(Yt*n-Xt*t),Xt=n,Yt=t}function Vt(){Qt(It,Wt)}var nr=1/0,tr=nr,rr=-nr,er=rr,ir={point:function(n,t){n<nr&&(nr=n);n>rr&&(rr=n);t<tr&&(tr=t);t>er&&(er=t)},lineStart:A,lineEnd:A,polygonStart:A,polygonEnd:A,result:function(){var n=[[nr,tr],[rr,er]];return rr=er=-(tr=nr=1/0),n}};var or,ur,ar,cr,lr=0,fr=0,pr=0,sr=0,hr=0,gr=0,dr=0,vr=0,Er=0,yr={point:Sr,lineStart:mr,lineEnd:xr,polygonStart:function(){yr.lineStart=_r,yr.lineEnd=Nr},polygonEnd:function(){yr.point=Sr,yr.lineStart=mr,yr.lineEnd=xr},result:function(){var n=Er?[dr/Er,vr/Er]:gr?[sr/gr,hr/gr]:pr?[lr/pr,fr/pr]:[NaN,NaN];return lr=fr=pr=sr=hr=gr=dr=vr=Er=0,n}};function Sr(n,t){lr+=n,fr+=t,++pr}function mr(){yr.point=Mr}function Mr(n,t){yr.point=wr,Sr(ar=n,cr=t)}function wr(n,t){var r=n-ar,e=t-cr,i=M(r*r+e*e);sr+=i*(ar+n)/2,hr+=i*(cr+t)/2,gr+=i,Sr(ar=n,cr=t)}function xr(){yr.point=Sr}function _r(){yr.point=Ar}function Nr(){Rr(or,ur)}function Ar(n,t){yr.point=Rr,Sr(or=ar=n,ur=cr=t)}function Rr(n,t){var r=n-ar,e=t-cr,i=M(r*r+e*e);sr+=i*(ar+n)/2,hr+=i*(cr+t)/2,gr+=i,dr+=(i=cr*n-ar*t)*(ar+n),vr+=i*(cr+t),Er+=3*i,Sr(ar=n,cr=t)}function Cr(n){this._context=n}Cr.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,t){switch(this._point){case 0:this._context.moveTo(n,t),this._point=1;break;case 1:this._context.lineTo(n,t);break;default:this._context.moveTo(n+this._radius,t),this._context.arc(n,t,this._radius,0,a)}},result:A};var Pr,$r,qr,jr,zr,br=new t.Adder,Lr={point:A,lineStart:function(){Lr.point=Tr},lineEnd:function(){Pr&&Gr($r,qr),Lr.point=A},polygonStart:function(){Pr=!0},polygonEnd:function(){Pr=null},result:function(){var n=+br;return br=new t.Adder,n}};function Tr(n,t){Lr.point=Gr,$r=jr=n,qr=zr=t}function Gr(n,t){jr-=n,zr-=t,br.add(M(jr*jr+zr*zr)),jr=n,zr=t}let Or,kr,Fr,Hr;class Ir{constructor(n){this._append=null==n?Wr:function(n){const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);if(t>15)return Wr;if(t!==Or){const n=10**t;Or=t,kr=function(t){let r=1;this._+=t[0];for(const e=t.length;r<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return kr}(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(n,t){switch(this._point){case 0:this._append`M${n},${t}`,this._point=1;break;case 1:this._append`L${n},${t}`;break;default:if(this._append`M${n},${t}`,this._radius!==Fr||this._append!==kr){const n=this._radius,t=this._;this._="",this._append`m0,${n}a${n},${n} 0 1,1 0,${-2*n}a${n},${n} 0 1,1 0,${2*n}z`,Fr=n,kr=this._append,Hr=this._,this._=t}this._+=Hr}}result(){const n=this._;return this._="",n.length?n:null}}function Wr(n){let t=1;this._+=n[0];for(const r=n.length;t<r;++t)this._+=arguments[t]+n[t]}function Xr(n){return function(t){var r=new Yr;for(var e in n)r[e]=n[e];return r.stream=t,r}}function Yr(){}function Br(n,t,r){var e=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=e&&n.clipExtent(null),j(r,n.stream(ir)),t(ir.result()),null!=e&&n.clipExtent(e),n}function Dr(n,t,r){return Br(n,(function(r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=Math.min(e/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),u=+t[0][0]+(e-o*(r[1][0]+r[0][0]))/2,a=+t[0][1]+(i-o*(r[1][1]+r[0][1]))/2;n.scale(150*o).translate([u,a])}),r)}function Ur(n,t,r){return Dr(n,[[0,0],t],r)}function Zr(n,t,r){return Br(n,(function(r){var e=+t,i=e/(r[1][0]-r[0][0]),o=(e-i*(r[1][0]+r[0][0]))/2,u=-i*r[0][1];n.scale(150*i).translate([o,u])}),r)}function Jr(n,t,r){return Br(n,(function(r){var e=+t,i=e/(r[1][1]-r[0][1]),o=-i*r[0][0],u=(e-i*(r[1][1]+r[0][1]))/2;n.scale(150*i).translate([o,u])}),r)}Yr.prototype={constructor:Yr,point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Kr=16,Qr=h(30*l);function Vr(n,t){return+t?function(n,t){function e(i,o,u,a,c,l,p,h,g,d,v,E,y,S){var m=p-i,w=h-o,x=m*m+w*w;if(x>4*t&&y--){var N=a+d,A=c+v,R=l+E,C=M(N*N+A*A+R*R),P=_(R/=C),$=f(f(R)-1)<r||f(u-g)<r?(u+g)/2:s(A,N),q=n($,P),j=q[0],z=q[1],b=j-i,L=z-o,T=w*b-m*L;(T*T/x>t||f((m*b+w*L)/x-.5)>.3||a*d+c*v+l*E<Qr)&&(e(i,o,u,a,c,l,j,z,$,N/=C,A/=C,R,y,S),S.point(j,z),e(j,z,$,N,A,R,p,h,g,d,v,E,y,S))}}return function(t){var r,i,o,u,a,c,l,f,p,s,h,g,d={point:v,lineStart:E,lineEnd:S,polygonStart:function(){t.polygonStart(),d.lineStart=m},polygonEnd:function(){t.polygonEnd(),d.lineStart=E}};function v(r,e){r=n(r,e),t.point(r[0],r[1])}function E(){f=NaN,d.point=y,t.lineStart()}function y(r,i){var o=en([r,i]),u=n(r,i);e(f,p,l,s,h,g,f=u[0],p=u[1],l=r,s=o[0],h=o[1],g=o[2],Kr,t),t.point(f,p)}function S(){d.point=v,t.lineEnd()}function m(){E(),d.point=M,d.lineEnd=w}function M(n,t){y(r=n,t),i=f,o=p,u=s,a=h,c=g,d.point=y}function w(){e(f,p,l,s,h,g,i,o,r,u,a,c,Kr,t),d.lineEnd=S,S()}return d}}(n,t):function(n){return Xr({point:function(t,r){t=n(t,r),this.stream.point(t[0],t[1])}})}(n)}var ne=Xr({point:function(n,t){this.stream.point(n*l,t*l)}});function te(n,t,r,e,i,o){if(!o)return function(n,t,r,e,i){function o(o,u){return[t+n*(o*=e),r-n*(u*=i)]}return o.invert=function(o,u){return[(o-t)/n*e,(r-u)/n*i]},o}(n,t,r,e,i);var u=h(o),a=S(o),c=u*n,l=a*n,f=u/n,p=a/n,s=(a*r-u*t)/n,g=(a*t+u*r)/n;function d(n,o){return[c*(n*=e)-l*(o*=i)+t,r-l*n-c*o]}return d.invert=function(n,t){return[e*(f*n-p*t+s),i*(g-p*n-f*t)]},d}function re(n){return ee((function(){return n}))()}function ee(n){var t,r,e,i,o,u,a,f,p,s,h=150,g=480,d=250,v=0,E=0,y=0,S=0,m=0,w=0,x=1,_=1,N=null,A=gt,R=null,C=Bt,P=.5;function $(n){return f(n[0]*l,n[1]*l)}function q(n){return(n=f.invert(n[0],n[1]))&&[n[0]*c,n[1]*c]}function j(){var n=te(h,0,0,x,_,w).apply(null,t(v,E)),e=te(h,g-n[0],d-n[1],x,_,w);return r=Kn(y,S,m),a=Zn(t,e),f=Zn(r,a),u=Vr(a,P),z()}function z(){return p=s=null,$}return $.stream=function(n){return p&&s===n?p:p=ne(function(n){return Xr({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}(r)(A(u(C(s=n)))))},$.preclip=function(n){return arguments.length?(A=n,N=void 0,z()):A},$.postclip=function(n){return arguments.length?(C=n,R=e=i=o=null,z()):C},$.clipAngle=function(n){return arguments.length?(A=+n?dt(N=n*l):(N=null,gt),z()):N*c},$.clipExtent=function(n){return arguments.length?(C=null==n?(R=e=i=o=null,Bt):wt(R=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),z()):null==R?null:[[R,e],[i,o]]},$.scale=function(n){return arguments.length?(h=+n,j()):h},$.translate=function(n){return arguments.length?(g=+n[0],d=+n[1],j()):[g,d]},$.center=function(n){return arguments.length?(v=n[0]%360*l,E=n[1]%360*l,j()):[v*c,E*c]},$.rotate=function(n){return arguments.length?(y=n[0]%360*l,S=n[1]%360*l,m=n.length>2?n[2]%360*l:0,j()):[y*c,S*c,m*c]},$.angle=function(n){return arguments.length?(w=n%360*l,j()):w*c},$.reflectX=function(n){return arguments.length?(x=n?-1:1,j()):x<0},$.reflectY=function(n){return arguments.length?(_=n?-1:1,j()):_<0},$.precision=function(n){return arguments.length?(u=Vr(a,P=n*n),z()):M(P)},$.fitExtent=function(n,t){return Dr($,n,t)},$.fitSize=function(n,t){return Ur($,n,t)},$.fitWidth=function(n,t){return Zr($,n,t)},$.fitHeight=function(n,t){return Jr($,n,t)},function(){return t=n.apply(this,arguments),$.invert=t.invert&&q,j()}}function ie(n){var t=0,r=i/3,e=ee(n),o=e(t,r);return o.parallels=function(n){return arguments.length?e(t=n[0]*l,r=n[1]*l):[t*c,r*c]},o}function oe(n,t){var e=S(n),o=(e+S(t))/2;if(f(o)<r)return function(n){var t=h(n);function r(n,r){return[n*t,S(r)/t]}return r.invert=function(n,r){return[n/t,_(r*t)]},r}(n);var u=1+e*(2*o-e),a=M(u)/o;function c(n,t){var r=M(u-2*o*S(t))/o;return[r*S(n*=o),a-r*h(n)]}return c.invert=function(n,t){var r=a-t,e=s(n,f(r))*m(r);return r*o<0&&(e-=i*m(n)*m(r)),[e/o,_((u-(n*n+r*r)*o*o)/(2*o))]},c}function ue(){return ie(oe).scale(155.424).center([0,33.6442])}function ae(){return ue().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function ce(n){return function(t,r){var e=h(t),i=h(r),o=n(e*i);return o===1/0?[2,0]:[o*i*S(t),o*S(r)]}}function le(n){return function(t,r){var e=M(t*t+r*r),i=n(e),o=S(i),u=h(i);return[s(t*o,e*u),_(e&&r*o/e)]}}var fe=ce((function(n){return M(2/(1+n))}));fe.invert=le((function(n){return 2*_(n/2)}));var pe=ce((function(n){return(n=x(n))&&n/S(n)}));function se(n,t){return[n,E(w((o+t)/2))]}function he(n){var t,r,e,o=re(n),u=o.center,a=o.scale,c=o.translate,l=o.clipExtent,f=null;function p(){var u=i*a(),c=o(tt(o.rotate()).invert([0,0]));return l(null==f?[[c[0]-u,c[1]-u],[c[0]+u,c[1]+u]]:n===se?[[Math.max(c[0]-u,f),t],[Math.min(c[0]+u,r),e]]:[[f,Math.max(c[1]-u,t)],[r,Math.min(c[1]+u,e)]])}return o.scale=function(n){return arguments.length?(a(n),p()):a()},o.translate=function(n){return arguments.length?(c(n),p()):c()},o.center=function(n){return arguments.length?(u(n),p()):u()},o.clipExtent=function(n){return arguments.length?(null==n?f=t=r=e=null:(f=+n[0][0],t=+n[0][1],r=+n[1][0],e=+n[1][1]),p()):null==f?null:[[f,t],[r,e]]},p()}function ge(n){return w((o+n)/2)}function de(n,t){var e=h(n),u=n===t?S(n):E(e/h(t))/E(ge(t)/ge(n)),a=e*y(ge(n),u)/u;if(!u)return se;function c(n,t){a>0?t<-o+r&&(t=-o+r):t>o-r&&(t=o-r);var e=a/y(ge(t),u);return[e*S(u*n),a-e*h(u*n)]}return c.invert=function(n,t){var r=a-t,e=m(u)*M(n*n+r*r),c=s(n,f(r))*m(r);return r*u<0&&(c-=i*m(n)*m(r)),[c/u,2*p(y(a/e,1/u))-o]},c}function ve(n,t){return[n,t]}function Ee(n,t){var e=h(n),o=n===t?S(n):(e-h(t))/(t-n),u=e/o+n;if(f(o)<r)return ve;function a(n,t){var r=u-t,e=o*n;return[r*S(e),u-r*h(e)]}return a.invert=function(n,t){var r=u-t,e=s(n,f(r))*m(r);return r*o<0&&(e-=i*m(n)*m(r)),[e/o,u-m(o)*M(n*n+r*r)]},a}pe.invert=le((function(n){return n})),se.invert=function(n,t){return[n,2*p(d(t))-o]},ve.invert=ve;var ye=1.340264,Se=-.081106,me=893e-6,Me=.003796,we=M(3)/2;function xe(n,t){var r=_(we*S(t)),e=r*r,i=e*e*e;return[n*h(r)/(we*(ye+3*Se*e+i*(7*me+9*Me*e))),r*(ye+Se*e+i*(me+Me*e))]}function _e(n,t){var r=h(t),e=h(n)*r;return[r*S(n)/e,S(t)/e]}function Ne(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}function Ae(n,t){return[h(t)*S(n),S(t)]}function Re(n,t){var r=h(t),e=1+h(n)*r;return[r*S(n)/e,S(t)/e]}function Ce(n,t){return[E(w((o+t)/2)),-n]}xe.invert=function(n,t){for(var r,i=t,o=i*i,u=o*o*o,a=0;a<12&&(u=(o=(i-=r=(i*(ye+Se*o+u*(me+Me*o))-t)/(ye+3*Se*o+u*(7*me+9*Me*o)))*i)*o*o,!(f(r)<e));++a);return[we*n*(ye+3*Se*o+u*(7*me+9*Me*o))/h(i),_(S(i)/we)]},_e.invert=le(p),Ne.invert=function(n,t){var e,i=t,o=25;do{var u=i*i,a=u*u;i-=e=(i*(1.007226+u*(.015085+a*(.028874*u-.044475-.005916*a)))-t)/(1.007226+u*(.045255+a*(.259866*u-.311325-.005916*11*a)))}while(f(e)>r&&--o>0);return[n/(.8707+(u=i*i)*(u*(u*u*u*(.003971-.001529*u)-.013791)-.131979)),i]},Ae.invert=le(_),Re.invert=le((function(n){return 2*p(n)})),Ce.invert=function(n,t){return[-t,2*p(d(n))-o]},n.geoAlbers=ae,n.geoAlbersUsa=function(){var n,t,e,i,o,u,a=ae(),c=ue().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=ue().rotate([157,0]).center([-3,19.9]).parallels([8,18]),f={point:function(n,t){u=[n,t]}};function p(n){var t=n[0],r=n[1];return u=null,e.point(t,r),u||(i.point(t,r),u)||(o.point(t,r),u)}function s(){return n=t=null,p}return p.invert=function(n){var t=a.scale(),r=a.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(i>=.12&&i<.234&&e>=-.425&&e<-.214?c:i>=.166&&i<.234&&e>=-.214&&e<-.115?l:a).invert(n)},p.stream=function(r){return n&&t===r?n:(e=[a.stream(t=r),c.stream(r),l.stream(r)],i=e.length,n={point:function(n,t){for(var r=-1;++r<i;)e[r].point(n,t)},sphere:function(){for(var n=-1;++n<i;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<i;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<i;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<i;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<i;)e[n].polygonEnd()}});var e,i},p.precision=function(n){return arguments.length?(a.precision(n),c.precision(n),l.precision(n),s()):a.precision()},p.scale=function(n){return arguments.length?(a.scale(n),c.scale(.35*n),l.scale(n),p.translate(a.translate())):a.scale()},p.translate=function(n){if(!arguments.length)return a.translate();var t=a.scale(),u=+n[0],p=+n[1];return e=a.translate(n).clipExtent([[u-.455*t,p-.238*t],[u+.455*t,p+.238*t]]).stream(f),i=c.translate([u-.307*t,p+.201*t]).clipExtent([[u-.425*t+r,p+.12*t+r],[u-.214*t-r,p+.234*t-r]]).stream(f),o=l.translate([u-.205*t,p+.212*t]).clipExtent([[u-.214*t+r,p+.166*t+r],[u-.115*t-r,p+.234*t-r]]).stream(f),s()},p.fitExtent=function(n,t){return Dr(p,n,t)},p.fitSize=function(n,t){return Ur(p,n,t)},p.fitWidth=function(n,t){return Zr(p,n,t)},p.fitHeight=function(n,t){return Jr(p,n,t)},p.scale(1070)},n.geoArea=function(n){return J=new t.Adder,j(n,K),2*J},n.geoAzimuthalEqualArea=function(){return re(fe).scale(124.75).clipAngle(179.999)},n.geoAzimuthalEqualAreaRaw=fe,n.geoAzimuthalEquidistant=function(){return re(pe).scale(79.4188).clipAngle(179.999)},n.geoAzimuthalEquidistantRaw=pe,n.geoBounds=function(n){var t,r,e,i,o,u,a;if(H=F=-(O=k=1/0),D=[],j(n,An),r=D.length){for(D.sort(Ln),t=1,o=[e=D[0]];t<r;++t)Tn(e,(i=D[t])[0])||Tn(e,i[1])?(bn(e[0],i[1])>bn(e[0],e[1])&&(e[1]=i[1]),bn(i[0],e[1])>bn(e[0],e[1])&&(e[0]=i[0])):o.push(e=i);for(u=-1/0,t=0,e=o[r=o.length-1];t<=r;e=i,++t)i=o[t],(a=bn(e[1],i[0]))>u&&(u=a,O=i[0],F=e[1])}return D=U=null,O===1/0||k===1/0?[[NaN,NaN],[NaN,NaN]]:[[O,k],[F,H]]},n.geoCentroid=function(n){fn=pn=sn=hn=gn=dn=vn=En=0,yn=new t.Adder,Sn=new t.Adder,mn=new t.Adder,j(n,Gn);var i=+yn,o=+Sn,u=+mn,a=v(i,o,u);return a<e&&(i=dn,o=vn,u=En,pn<r&&(i=sn,o=hn,u=gn),(a=v(i,o,u))<e)?[NaN,NaN]:[s(o,i)*c,_(u/a)*c]},n.geoCircle=function(){var n,t,r=Un([0,0]),e=Un(90),i=Un(2),o={point:function(r,e){n.push(r=t(r,e)),r[0]*=c,r[1]*=c}};function u(){var u=r.apply(this,arguments),a=e.apply(this,arguments)*l,c=i.apply(this,arguments)*l;return n=[],t=Kn(-u[0]*l,-u[1]*l,0).invert,rt(o,a,c,1),u={type:"Polygon",coordinates:[n]},n=t=null,u}return u.center=function(n){return arguments.length?(r="function"==typeof n?n:Un([+n[0],+n[1]]),u):r},u.radius=function(n){return arguments.length?(e="function"==typeof n?n:Un(+n),u):e},u.precision=function(n){return arguments.length?(i="function"==typeof n?n:Un(+n),u):i},u},n.geoClipAntimeridian=gt,n.geoClipCircle=dt,n.geoClipExtent=function(){var n,t,r,e=0,i=0,o=960,u=500;return r={stream:function(r){return n&&t===r?n:n=wt(e,i,o,u)(t=r)},extent:function(a){return arguments.length?(e=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],n=t=null,r):[[e,i],[o,u]]}}},n.geoClipRectangle=wt,n.geoConicConformal=function(){return ie(de).scale(109.5).parallels([30,30])},n.geoConicConformalRaw=de,n.geoConicEqualArea=ue,n.geoConicEqualAreaRaw=oe,n.geoConicEquidistant=function(){return ie(Ee).scale(131.154).center([0,13.9389])},n.geoConicEquidistantRaw=Ee,n.geoContains=function(n,t){return(n&&qt.hasOwnProperty(n.type)?qt[n.type]:zt)(n,t)},n.geoDistance=$t,n.geoEqualEarth=function(){return re(xe).scale(177.158)},n.geoEqualEarthRaw=xe,n.geoEquirectangular=function(){return re(ve).scale(152.63)},n.geoEquirectangularRaw=ve,n.geoGnomonic=function(){return re(_e).scale(144.049).clipAngle(60)},n.geoGnomonicRaw=_e,n.geoGraticule=Ht,n.geoGraticule10=function(){return Ht()()},n.geoIdentity=function(){var n,t,r,e,i,o,u,a=1,f=0,p=0,s=1,g=1,d=0,v=null,E=1,y=1,m=Xr({point:function(n,t){var r=x([n,t]);this.stream.point(r[0],r[1])}}),M=Bt;function w(){return E=a*s,y=a*g,o=u=null,x}function x(r){var e=r[0]*E,i=r[1]*y;if(d){var o=i*n-e*t;e=e*n+i*t,i=o}return[e+f,i+p]}return x.invert=function(r){var e=r[0]-f,i=r[1]-p;if(d){var o=i*n+e*t;e=e*n-i*t,i=o}return[e/E,i/y]},x.stream=function(n){return o&&u===n?o:o=m(M(u=n))},x.postclip=function(n){return arguments.length?(M=n,v=r=e=i=null,w()):M},x.clipExtent=function(n){return arguments.length?(M=null==n?(v=r=e=i=null,Bt):wt(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),w()):null==v?null:[[v,r],[e,i]]},x.scale=function(n){return arguments.length?(a=+n,w()):a},x.translate=function(n){return arguments.length?(f=+n[0],p=+n[1],w()):[f,p]},x.angle=function(r){return arguments.length?(t=S(d=r%360*l),n=h(d),w()):d*c},x.reflectX=function(n){return arguments.length?(s=n?-1:1,w()):s<0},x.reflectY=function(n){return arguments.length?(g=n?-1:1,w()):g<0},x.fitExtent=function(n,t){return Dr(x,n,t)},x.fitSize=function(n,t){return Ur(x,n,t)},x.fitWidth=function(n,t){return Zr(x,n,t)},x.fitHeight=function(n,t){return Jr(x,n,t)},x},n.geoInterpolate=function(n,t){var r=n[0]*l,e=n[1]*l,i=t[0]*l,o=t[1]*l,u=h(e),a=S(e),f=h(o),p=S(o),g=u*h(r),d=u*S(r),v=f*h(i),E=f*S(i),y=2*_(M(N(o-e)+u*f*N(i-r))),m=S(y),w=y?function(n){var t=S(n*=y)/m,r=S(y-n)/m,e=r*g+t*v,i=r*d+t*E,o=r*a+t*p;return[s(i,e)*c,s(o,M(e*e+i*i))*c]}:function(){return[r*c,e*c]};return w.distance=y,w},n.geoLength=Rt,n.geoMercator=function(){return he(se).scale(961/a)},n.geoMercatorRaw=se,n.geoNaturalEarth1=function(){return re(Ne).scale(175.295)},n.geoNaturalEarth1Raw=Ne,n.geoOrthographic=function(){return re(Ae).scale(249.5).clipAngle(90+r)},n.geoOrthographicRaw=Ae,n.geoPath=function(n,t){let r,e,i=3,o=4.5;function u(n){return n&&("function"==typeof o&&e.pointRadius(+o.apply(this,arguments)),j(n,r(e))),e.result()}return u.area=function(n){return j(n,r(Zt)),Zt.result()},u.measure=function(n){return j(n,r(Lr)),Lr.result()},u.bounds=function(n){return j(n,r(ir)),ir.result()},u.centroid=function(n){return j(n,r(yr)),yr.result()},u.projection=function(t){return arguments.length?(r=null==t?(n=null,Bt):(n=t).stream,u):n},u.context=function(n){return arguments.length?(e=null==n?(t=null,new Ir(i)):new Cr(t=n),"function"!=typeof o&&e.pointRadius(o),u):t},u.pointRadius=function(n){return arguments.length?(o="function"==typeof n?n:(e.pointRadius(+n),+n),u):o},u.digits=function(n){if(!arguments.length)return i;if(null==n)i=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);i=t}return null===t&&(e=new Ir(i)),u},u.projection(n).digits(i).context(t)},n.geoProjection=re,n.geoProjectionMutator=ee,n.geoRotation=tt,n.geoStereographic=function(){return re(Re).scale(250).clipAngle(142)},n.geoStereographicRaw=Re,n.geoStream=j,n.geoTransform=function(n){return{stream:Xr(n)}},n.geoTransverseMercator=function(){var n=he(Ce),t=n.center,r=n.rotate;return n.center=function(n){return arguments.length?t([-n[1],n[0]]):[(n=t())[1],-n[0]]},n.rotate=function(n){return arguments.length?r([n[0],n[1],n.length>2?n[2]+90:90]):[(n=r())[0],n[1],n[2]-90]},r([0,0,90]).scale(159.155)},n.geoTransverseMercatorRaw=Ce}));
Index: de_modules/d3-geo/package.json
===================================================================
--- node_modules/d3-geo/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-{
-  "name": "d3-geo",
-  "version": "3.1.1",
-  "description": "Shapes and calculators for spherical coordinates.",
-  "homepage": "https://d3js.org/d3-geo/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-geo.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "geo",
-    "maps",
-    "cartography"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-geo.min.js",
-  "unpkg": "dist/d3-geo.min.js",
-  "exports": {
-    "umd": "./dist/d3-geo.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-array": "2.5.0 - 3"
-  },
-  "devDependencies": {
-    "@rollup/plugin-terser": "0.4",
-    "canvas": "2",
-    "d3-format": "1 - 3",
-    "eslint": "8",
-    "mocha": "10",
-    "pixelmatch": "5",
-    "pngjs": "6",
-    "rollup": "3",
-    "topojson-client": "3",
-    "world-atlas": "1"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-geo/src/area.js
===================================================================
--- node_modules/d3-geo/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-import {Adder} from "d3-array";
-import {atan2, cos, quarterPi, radians, sin, tau} from "./math.js";
-import noop from "./noop.js";
-import stream from "./stream.js";
-
-export var areaRingSum = new Adder();
-
-// hello?
-
-var areaSum = new Adder(),
-    lambda00,
-    phi00,
-    lambda0,
-    cosPhi0,
-    sinPhi0;
-
-export var areaStream = {
-  point: noop,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: function() {
-    areaRingSum = new Adder();
-    areaStream.lineStart = areaRingStart;
-    areaStream.lineEnd = areaRingEnd;
-  },
-  polygonEnd: function() {
-    var areaRing = +areaRingSum;
-    areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);
-    this.lineStart = this.lineEnd = this.point = noop;
-  },
-  sphere: function() {
-    areaSum.add(tau);
-  }
-};
-
-function areaRingStart() {
-  areaStream.point = areaPointFirst;
-}
-
-function areaRingEnd() {
-  areaPoint(lambda00, phi00);
-}
-
-function areaPointFirst(lambda, phi) {
-  areaStream.point = areaPoint;
-  lambda00 = lambda, phi00 = phi;
-  lambda *= radians, phi *= radians;
-  lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);
-}
-
-function areaPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  phi = phi / 2 + quarterPi; // half the angular distance from south pole
-
-  // Spherical excess E for a spherical triangle with vertices: south pole,
-  // previous point, current point.  Uses a formula derived from Cagnoli’s
-  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
-  var dLambda = lambda - lambda0,
-      sdLambda = dLambda >= 0 ? 1 : -1,
-      adLambda = sdLambda * dLambda,
-      cosPhi = cos(phi),
-      sinPhi = sin(phi),
-      k = sinPhi0 * sinPhi,
-      u = cosPhi0 * cosPhi + k * cos(adLambda),
-      v = k * sdLambda * sin(adLambda);
-  areaRingSum.add(atan2(v, u));
-
-  // Advance the previous points.
-  lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
-}
-
-export default function(object) {
-  areaSum = new Adder();
-  stream(object, areaStream);
-  return areaSum * 2;
-}
Index: de_modules/d3-geo/src/bounds.js
===================================================================
--- node_modules/d3-geo/src/bounds.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,179 +1,0 @@
-import {Adder} from "d3-array";
-import {areaStream, areaRingSum} from "./area.js";
-import {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from "./cartesian.js";
-import {abs, degrees, epsilon, radians} from "./math.js";
-import stream from "./stream.js";
-
-var lambda0, phi0, lambda1, phi1, // bounds
-    lambda2, // previous lambda-coordinate
-    lambda00, phi00, // first point
-    p0, // previous 3D point
-    deltaSum,
-    ranges,
-    range;
-
-var boundsStream = {
-  point: boundsPoint,
-  lineStart: boundsLineStart,
-  lineEnd: boundsLineEnd,
-  polygonStart: function() {
-    boundsStream.point = boundsRingPoint;
-    boundsStream.lineStart = boundsRingStart;
-    boundsStream.lineEnd = boundsRingEnd;
-    deltaSum = new Adder();
-    areaStream.polygonStart();
-  },
-  polygonEnd: function() {
-    areaStream.polygonEnd();
-    boundsStream.point = boundsPoint;
-    boundsStream.lineStart = boundsLineStart;
-    boundsStream.lineEnd = boundsLineEnd;
-    if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-    else if (deltaSum > epsilon) phi1 = 90;
-    else if (deltaSum < -epsilon) phi0 = -90;
-    range[0] = lambda0, range[1] = lambda1;
-  },
-  sphere: function() {
-    lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-  }
-};
-
-function boundsPoint(lambda, phi) {
-  ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-}
-
-function linePoint(lambda, phi) {
-  var p = cartesian([lambda * radians, phi * radians]);
-  if (p0) {
-    var normal = cartesianCross(p0, p),
-        equatorial = [normal[1], -normal[0], 0],
-        inflection = cartesianCross(equatorial, normal);
-    cartesianNormalizeInPlace(inflection);
-    inflection = spherical(inflection);
-    var delta = lambda - lambda2,
-        sign = delta > 0 ? 1 : -1,
-        lambdai = inflection[0] * degrees * sign,
-        phii,
-        antimeridian = abs(delta) > 180;
-    if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = inflection[1] * degrees;
-      if (phii > phi1) phi1 = phii;
-    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = -inflection[1] * degrees;
-      if (phii < phi0) phi0 = phii;
-    } else {
-      if (phi < phi0) phi0 = phi;
-      if (phi > phi1) phi1 = phi;
-    }
-    if (antimeridian) {
-      if (lambda < lambda2) {
-        if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
-      } else {
-        if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
-      }
-    } else {
-      if (lambda1 >= lambda0) {
-        if (lambda < lambda0) lambda0 = lambda;
-        if (lambda > lambda1) lambda1 = lambda;
-      } else {
-        if (lambda > lambda2) {
-          if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
-        } else {
-          if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
-        }
-      }
-    }
-  } else {
-    ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
-  }
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-  p0 = p, lambda2 = lambda;
-}
-
-function boundsLineStart() {
-  boundsStream.point = linePoint;
-}
-
-function boundsLineEnd() {
-  range[0] = lambda0, range[1] = lambda1;
-  boundsStream.point = boundsPoint;
-  p0 = null;
-}
-
-function boundsRingPoint(lambda, phi) {
-  if (p0) {
-    var delta = lambda - lambda2;
-    deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
-  } else {
-    lambda00 = lambda, phi00 = phi;
-  }
-  areaStream.point(lambda, phi);
-  linePoint(lambda, phi);
-}
-
-function boundsRingStart() {
-  areaStream.lineStart();
-}
-
-function boundsRingEnd() {
-  boundsRingPoint(lambda00, phi00);
-  areaStream.lineEnd();
-  if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);
-  range[0] = lambda0, range[1] = lambda1;
-  p0 = null;
-}
-
-// Finds the left-right distance between two longitudes.
-// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
-// the distance between ±180° to be 360°.
-function angle(lambda0, lambda1) {
-  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
-}
-
-function rangeCompare(a, b) {
-  return a[0] - b[0];
-}
-
-function rangeContains(range, x) {
-  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
-}
-
-export default function(feature) {
-  var i, n, a, b, merged, deltaMax, delta;
-
-  phi1 = lambda1 = -(lambda0 = phi0 = Infinity);
-  ranges = [];
-  stream(feature, boundsStream);
-
-  // First, sort ranges by their minimum longitudes.
-  if (n = ranges.length) {
-    ranges.sort(rangeCompare);
-
-    // Then, merge any ranges that overlap.
-    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
-      b = ranges[i];
-      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
-        if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
-        if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
-      } else {
-        merged.push(a = b);
-      }
-    }
-
-    // Finally, find the largest gap between the merged ranges.
-    // The final bounding box will be the inverse of this gap.
-    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
-      b = merged[i];
-      if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];
-    }
-  }
-
-  ranges = range = null;
-
-  return lambda0 === Infinity || phi0 === Infinity
-      ? [[NaN, NaN], [NaN, NaN]]
-      : [[lambda0, phi0], [lambda1, phi1]];
-}
Index: de_modules/d3-geo/src/cartesian.js
===================================================================
--- node_modules/d3-geo/src/cartesian.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import {asin, atan2, cos, sin, sqrt} from "./math.js";
-
-export function spherical(cartesian) {
-  return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];
-}
-
-export function cartesian(spherical) {
-  var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);
-  return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];
-}
-
-export function cartesianDot(a, b) {
-  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-}
-
-export function cartesianCross(a, b) {
-  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
-}
-
-// TODO return a
-export function cartesianAddInPlace(a, b) {
-  a[0] += b[0], a[1] += b[1], a[2] += b[2];
-}
-
-export function cartesianScale(vector, k) {
-  return [vector[0] * k, vector[1] * k, vector[2] * k];
-}
-
-// TODO return d
-export function cartesianNormalizeInPlace(d) {
-  var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
-  d[0] /= l, d[1] /= l, d[2] /= l;
-}
Index: de_modules/d3-geo/src/centroid.js
===================================================================
--- node_modules/d3-geo/src/centroid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,143 +1,0 @@
-import {Adder} from "d3-array";
-import {asin, atan2, cos, degrees, epsilon, epsilon2, hypot, radians, sin, sqrt} from "./math.js";
-import noop from "./noop.js";
-import stream from "./stream.js";
-
-var W0, W1,
-    X0, Y0, Z0,
-    X1, Y1, Z1,
-    X2, Y2, Z2,
-    lambda00, phi00, // first point
-    x0, y0, z0; // previous point
-
-var centroidStream = {
-  sphere: noop,
-  point: centroidPoint,
-  lineStart: centroidLineStart,
-  lineEnd: centroidLineEnd,
-  polygonStart: function() {
-    centroidStream.lineStart = centroidRingStart;
-    centroidStream.lineEnd = centroidRingEnd;
-  },
-  polygonEnd: function() {
-    centroidStream.lineStart = centroidLineStart;
-    centroidStream.lineEnd = centroidLineEnd;
-  }
-};
-
-// Arithmetic mean of Cartesian vectors.
-function centroidPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi);
-  centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));
-}
-
-function centroidPointCartesian(x, y, z) {
-  ++W0;
-  X0 += (x - X0) / W0;
-  Y0 += (y - Y0) / W0;
-  Z0 += (z - Z0) / W0;
-}
-
-function centroidLineStart() {
-  centroidStream.point = centroidLinePointFirst;
-}
-
-function centroidLinePointFirst(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi);
-  x0 = cosPhi * cos(lambda);
-  y0 = cosPhi * sin(lambda);
-  z0 = sin(phi);
-  centroidStream.point = centroidLinePoint;
-  centroidPointCartesian(x0, y0, z0);
-}
-
-function centroidLinePoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi),
-      x = cosPhi * cos(lambda),
-      y = cosPhi * sin(lambda),
-      z = sin(phi),
-      w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
-  W1 += w;
-  X1 += w * (x0 + (x0 = x));
-  Y1 += w * (y0 + (y0 = y));
-  Z1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0, y0, z0);
-}
-
-function centroidLineEnd() {
-  centroidStream.point = centroidPoint;
-}
-
-// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
-// J. Applied Mechanics 42, 239 (1975).
-function centroidRingStart() {
-  centroidStream.point = centroidRingPointFirst;
-}
-
-function centroidRingEnd() {
-  centroidRingPoint(lambda00, phi00);
-  centroidStream.point = centroidPoint;
-}
-
-function centroidRingPointFirst(lambda, phi) {
-  lambda00 = lambda, phi00 = phi;
-  lambda *= radians, phi *= radians;
-  centroidStream.point = centroidRingPoint;
-  var cosPhi = cos(phi);
-  x0 = cosPhi * cos(lambda);
-  y0 = cosPhi * sin(lambda);
-  z0 = sin(phi);
-  centroidPointCartesian(x0, y0, z0);
-}
-
-function centroidRingPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos(phi),
-      x = cosPhi * cos(lambda),
-      y = cosPhi * sin(lambda),
-      z = sin(phi),
-      cx = y0 * z - z0 * y,
-      cy = z0 * x - x0 * z,
-      cz = x0 * y - y0 * x,
-      m = hypot(cx, cy, cz),
-      w = asin(m), // line weight = angle
-      v = m && -w / m; // area weight multiplier
-  X2.add(v * cx);
-  Y2.add(v * cy);
-  Z2.add(v * cz);
-  W1 += w;
-  X1 += w * (x0 + (x0 = x));
-  Y1 += w * (y0 + (y0 = y));
-  Z1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0, y0, z0);
-}
-
-export default function(object) {
-  W0 = W1 =
-  X0 = Y0 = Z0 =
-  X1 = Y1 = Z1 = 0;
-  X2 = new Adder();
-  Y2 = new Adder();
-  Z2 = new Adder();
-  stream(object, centroidStream);
-
-  var x = +X2,
-      y = +Y2,
-      z = +Z2,
-      m = hypot(x, y, z);
-
-  // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
-  if (m < epsilon2) {
-    x = X1, y = Y1, z = Z1;
-    // If the feature has zero length, fall back to arithmetic mean of point vectors.
-    if (W1 < epsilon) x = X0, y = Y0, z = Z0;
-    m = hypot(x, y, z);
-    // If the feature still has an undefined ccentroid, then return.
-    if (m < epsilon2) return [NaN, NaN];
-  }
-
-  return [atan2(y, x) * degrees, asin(z / m) * degrees];
-}
Index: de_modules/d3-geo/src/circle.js
===================================================================
--- node_modules/d3-geo/src/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-import {cartesian, cartesianNormalizeInPlace, spherical} from "./cartesian.js";
-import constant from "./constant.js";
-import {acos, cos, degrees, epsilon, radians, sin, tau} from "./math.js";
-import {rotateRadians} from "./rotation.js";
-
-// Generates a circle centered at [0°, 0°], with a given radius and precision.
-export function circleStream(stream, radius, delta, direction, t0, t1) {
-  if (!delta) return;
-  var cosRadius = cos(radius),
-      sinRadius = sin(radius),
-      step = direction * delta;
-  if (t0 == null) {
-    t0 = radius + direction * tau;
-    t1 = radius - step / 2;
-  } else {
-    t0 = circleRadius(cosRadius, t0);
-    t1 = circleRadius(cosRadius, t1);
-    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;
-  }
-  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
-    point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);
-    stream.point(point[0], point[1]);
-  }
-}
-
-// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
-function circleRadius(cosRadius, point) {
-  point = cartesian(point), point[0] -= cosRadius;
-  cartesianNormalizeInPlace(point);
-  var radius = acos(-point[1]);
-  return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;
-}
-
-export default function() {
-  var center = constant([0, 0]),
-      radius = constant(90),
-      precision = constant(2),
-      ring,
-      rotate,
-      stream = {point: point};
-
-  function point(x, y) {
-    ring.push(x = rotate(x, y));
-    x[0] *= degrees, x[1] *= degrees;
-  }
-
-  function circle() {
-    var c = center.apply(this, arguments),
-        r = radius.apply(this, arguments) * radians,
-        p = precision.apply(this, arguments) * radians;
-    ring = [];
-    rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;
-    circleStream(stream, r, p, 1);
-    c = {type: "Polygon", coordinates: [ring]};
-    ring = rotate = null;
-    return c;
-  }
-
-  circle.center = function(_) {
-    return arguments.length ? (center = typeof _ === "function" ? _ : constant([+_[0], +_[1]]), circle) : center;
-  };
-
-  circle.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), circle) : radius;
-  };
-
-  circle.precision = function(_) {
-    return arguments.length ? (precision = typeof _ === "function" ? _ : constant(+_), circle) : precision;
-  };
-
-  return circle;
-}
Index: de_modules/d3-geo/src/clip/antimeridian.js
===================================================================
--- node_modules/d3-geo/src/clip/antimeridian.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-import clip from "./index.js";
-import {abs, atan, cos, epsilon, halfPi, pi, sin} from "../math.js";
-
-export default clip(
-  function() { return true; },
-  clipAntimeridianLine,
-  clipAntimeridianInterpolate,
-  [-pi, -halfPi]
-);
-
-// Takes a line and cuts into visible segments. Return values: 0 - there were
-// intersections or the line was empty; 1 - no intersections; 2 - there were
-// intersections, and the first and last segments should be rejoined.
-function clipAntimeridianLine(stream) {
-  var lambda0 = NaN,
-      phi0 = NaN,
-      sign0 = NaN,
-      clean; // no intersections
-
-  return {
-    lineStart: function() {
-      stream.lineStart();
-      clean = 1;
-    },
-    point: function(lambda1, phi1) {
-      var sign1 = lambda1 > 0 ? pi : -pi,
-          delta = abs(lambda1 - lambda0);
-      if (abs(delta - pi) < epsilon) { // line crosses a pole
-        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        stream.point(lambda1, phi0);
-        clean = 0;
-      } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian
-        if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies
-        if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;
-        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        clean = 0;
-      }
-      stream.point(lambda0 = lambda1, phi0 = phi1);
-      sign0 = sign1;
-    },
-    lineEnd: function() {
-      stream.lineEnd();
-      lambda0 = phi0 = NaN;
-    },
-    clean: function() {
-      return 2 - clean; // if intersections, rejoin first and last segments
-    }
-  };
-}
-
-function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
-  var cosPhi0,
-      cosPhi1,
-      sinLambda0Lambda1 = sin(lambda0 - lambda1);
-  return abs(sinLambda0Lambda1) > epsilon
-      ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)
-          - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))
-          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
-      : (phi0 + phi1) / 2;
-}
-
-function clipAntimeridianInterpolate(from, to, direction, stream) {
-  var phi;
-  if (from == null) {
-    phi = direction * halfPi;
-    stream.point(-pi, phi);
-    stream.point(0, phi);
-    stream.point(pi, phi);
-    stream.point(pi, 0);
-    stream.point(pi, -phi);
-    stream.point(0, -phi);
-    stream.point(-pi, -phi);
-    stream.point(-pi, 0);
-    stream.point(-pi, phi);
-  } else if (abs(from[0] - to[0]) > epsilon) {
-    var lambda = from[0] < to[0] ? pi : -pi;
-    phi = direction * lambda / 2;
-    stream.point(-lambda, phi);
-    stream.point(0, phi);
-    stream.point(lambda, phi);
-  } else {
-    stream.point(to[0], to[1]);
-  }
-}
Index: de_modules/d3-geo/src/clip/buffer.js
===================================================================
--- node_modules/d3-geo/src/clip/buffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import noop from "../noop.js";
-
-export default function() {
-  var lines = [],
-      line;
-  return {
-    point: function(x, y, m) {
-      line.push([x, y, m]);
-    },
-    lineStart: function() {
-      lines.push(line = []);
-    },
-    lineEnd: noop,
-    rejoin: function() {
-      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
-    },
-    result: function() {
-      var result = lines;
-      lines = [];
-      line = null;
-      return result;
-    }
-  };
-}
Index: de_modules/d3-geo/src/clip/circle.js
===================================================================
--- node_modules/d3-geo/src/clip/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from "../cartesian.js";
-import {circleStream} from "../circle.js";
-import {abs, cos, epsilon, pi, radians, sqrt} from "../math.js";
-import pointEqual from "../pointEqual.js";
-import clip from "./index.js";
-
-export default function(radius) {
-  var cr = cos(radius),
-      delta = 2 * radians,
-      smallRadius = cr > 0,
-      notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case
-
-  function interpolate(from, to, direction, stream) {
-    circleStream(stream, radius, delta, direction, from, to);
-  }
-
-  function visible(lambda, phi) {
-    return cos(lambda) * cos(phi) > cr;
-  }
-
-  // Takes a line and cuts into visible segments. Return values used for polygon
-  // clipping: 0 - there were intersections or the line was empty; 1 - no
-  // intersections 2 - there were intersections, and the first and last segments
-  // should be rejoined.
-  function clipLine(stream) {
-    var point0, // previous point
-        c0, // code for previous point
-        v0, // visibility of previous point
-        v00, // visibility of first point
-        clean; // no intersections
-    return {
-      lineStart: function() {
-        v00 = v0 = false;
-        clean = 1;
-      },
-      point: function(lambda, phi) {
-        var point1 = [lambda, phi],
-            point2,
-            v = visible(lambda, phi),
-            c = smallRadius
-              ? v ? 0 : code(lambda, phi)
-              : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;
-        if (!point0 && (v00 = v0 = v)) stream.lineStart();
-        if (v !== v0) {
-          point2 = intersect(point0, point1);
-          if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))
-            point1[2] = 1;
-        }
-        if (v !== v0) {
-          clean = 0;
-          if (v) {
-            // outside going in
-            stream.lineStart();
-            point2 = intersect(point1, point0);
-            stream.point(point2[0], point2[1]);
-          } else {
-            // inside going out
-            point2 = intersect(point0, point1);
-            stream.point(point2[0], point2[1], 2);
-            stream.lineEnd();
-          }
-          point0 = point2;
-        } else if (notHemisphere && point0 && smallRadius ^ v) {
-          var t;
-          // If the codes for two points are different, or are both zero,
-          // and there this segment intersects with the small circle.
-          if (!(c & c0) && (t = intersect(point1, point0, true))) {
-            clean = 0;
-            if (smallRadius) {
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1]);
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-            } else {
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1], 3);
-            }
-          }
-        }
-        if (v && (!point0 || !pointEqual(point0, point1))) {
-          stream.point(point1[0], point1[1]);
-        }
-        point0 = point1, v0 = v, c0 = c;
-      },
-      lineEnd: function() {
-        if (v0) stream.lineEnd();
-        point0 = null;
-      },
-      // Rejoin first and last segments if there were intersections and the first
-      // and last points were visible.
-      clean: function() {
-        return clean | ((v00 && v0) << 1);
-      }
-    };
-  }
-
-  // Intersects the great circle between a and b with the clip circle.
-  function intersect(a, b, two) {
-    var pa = cartesian(a),
-        pb = cartesian(b);
-
-    // We have two planes, n1.p = d1 and n2.p = d2.
-    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
-    var n1 = [1, 0, 0], // normal
-        n2 = cartesianCross(pa, pb),
-        n2n2 = cartesianDot(n2, n2),
-        n1n2 = n2[0], // cartesianDot(n1, n2),
-        determinant = n2n2 - n1n2 * n1n2;
-
-    // Two polar points.
-    if (!determinant) return !two && a;
-
-    var c1 =  cr * n2n2 / determinant,
-        c2 = -cr * n1n2 / determinant,
-        n1xn2 = cartesianCross(n1, n2),
-        A = cartesianScale(n1, c1),
-        B = cartesianScale(n2, c2);
-    cartesianAddInPlace(A, B);
-
-    // Solve |p(t)|^2 = 1.
-    var u = n1xn2,
-        w = cartesianDot(A, u),
-        uu = cartesianDot(u, u),
-        t2 = w * w - uu * (cartesianDot(A, A) - 1);
-
-    if (t2 < 0) return;
-
-    var t = sqrt(t2),
-        q = cartesianScale(u, (-w - t) / uu);
-    cartesianAddInPlace(q, A);
-    q = spherical(q);
-
-    if (!two) return q;
-
-    // Two intersection points.
-    var lambda0 = a[0],
-        lambda1 = b[0],
-        phi0 = a[1],
-        phi1 = b[1],
-        z;
-
-    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
-
-    var delta = lambda1 - lambda0,
-        polar = abs(delta - pi) < epsilon,
-        meridian = polar || delta < epsilon;
-
-    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
-
-    // Check that the first point is between a and b.
-    if (meridian
-        ? polar
-          ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)
-          : phi0 <= q[1] && q[1] <= phi1
-        : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
-      var q1 = cartesianScale(u, (-w + t) / uu);
-      cartesianAddInPlace(q1, A);
-      return [q, spherical(q1)];
-    }
-  }
-
-  // Generates a 4-bit vector representing the location of a point relative to
-  // the small circle's bounding box.
-  function code(lambda, phi) {
-    var r = smallRadius ? radius : pi - radius,
-        code = 0;
-    if (lambda < -r) code |= 1; // left
-    else if (lambda > r) code |= 2; // right
-    if (phi < -r) code |= 4; // below
-    else if (phi > r) code |= 8; // above
-    return code;
-  }
-
-  return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);
-}
Index: de_modules/d3-geo/src/clip/extent.js
===================================================================
--- node_modules/d3-geo/src/clip/extent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import clipRectangle from "./rectangle.js";
-
-export default function() {
-  var x0 = 0,
-      y0 = 0,
-      x1 = 960,
-      y1 = 500,
-      cache,
-      cacheStream,
-      clip;
-
-  return clip = {
-    stream: function(stream) {
-      return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);
-    },
-    extent: function(_) {
-      return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
-    }
-  };
-}
Index: de_modules/d3-geo/src/clip/index.js
===================================================================
--- node_modules/d3-geo/src/clip/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,131 +1,0 @@
-import clipBuffer from "./buffer.js";
-import clipRejoin from "./rejoin.js";
-import {epsilon, halfPi} from "../math.js";
-import polygonContains from "../polygonContains.js";
-import {merge} from "d3-array";
-
-export default function(pointVisible, clipLine, interpolate, start) {
-  return function(sink) {
-    var line = clipLine(sink),
-        ringBuffer = clipBuffer(),
-        ringSink = clipLine(ringBuffer),
-        polygonStarted = false,
-        polygon,
-        segments,
-        ring;
-
-    var clip = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        clip.point = pointRing;
-        clip.lineStart = ringStart;
-        clip.lineEnd = ringEnd;
-        segments = [];
-        polygon = [];
-      },
-      polygonEnd: function() {
-        clip.point = point;
-        clip.lineStart = lineStart;
-        clip.lineEnd = lineEnd;
-        segments = merge(segments);
-        var startInside = polygonContains(polygon, start);
-        if (segments.length) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          clipRejoin(segments, compareIntersection, startInside, interpolate, sink);
-        } else if (startInside) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          interpolate(null, null, 1, sink);
-          sink.lineEnd();
-        }
-        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
-        segments = polygon = null;
-      },
-      sphere: function() {
-        sink.polygonStart();
-        sink.lineStart();
-        interpolate(null, null, 1, sink);
-        sink.lineEnd();
-        sink.polygonEnd();
-      }
-    };
-
-    function point(lambda, phi) {
-      if (pointVisible(lambda, phi)) sink.point(lambda, phi);
-    }
-
-    function pointLine(lambda, phi) {
-      line.point(lambda, phi);
-    }
-
-    function lineStart() {
-      clip.point = pointLine;
-      line.lineStart();
-    }
-
-    function lineEnd() {
-      clip.point = point;
-      line.lineEnd();
-    }
-
-    function pointRing(lambda, phi) {
-      ring.push([lambda, phi]);
-      ringSink.point(lambda, phi);
-    }
-
-    function ringStart() {
-      ringSink.lineStart();
-      ring = [];
-    }
-
-    function ringEnd() {
-      pointRing(ring[0][0], ring[0][1]);
-      ringSink.lineEnd();
-
-      var clean = ringSink.clean(),
-          ringSegments = ringBuffer.result(),
-          i, n = ringSegments.length, m,
-          segment,
-          point;
-
-      ring.pop();
-      polygon.push(ring);
-      ring = null;
-
-      if (!n) return;
-
-      // No intersections.
-      if (clean & 1) {
-        segment = ringSegments[0];
-        if ((m = segment.length - 1) > 0) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
-          sink.lineEnd();
-        }
-        return;
-      }
-
-      // Rejoin connected segments.
-      // TODO reuse ringBuffer.rejoin()?
-      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
-
-      segments.push(ringSegments.filter(validSegment));
-    }
-
-    return clip;
-  };
-}
-
-function validSegment(segment) {
-  return segment.length > 1;
-}
-
-// Intersections are sorted along the clip edge. For both antimeridian cutting
-// and circle clipping, the same comparison is used.
-function compareIntersection(a, b) {
-  return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])
-       - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);
-}
Index: de_modules/d3-geo/src/clip/line.js
===================================================================
--- node_modules/d3-geo/src/clip/line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-export default function(a, b, x0, y0, x1, y1) {
-  var ax = a[0],
-      ay = a[1],
-      bx = b[0],
-      by = b[1],
-      t0 = 0,
-      t1 = 1,
-      dx = bx - ax,
-      dy = by - ay,
-      r;
-
-  r = x0 - ax;
-  if (!dx && r > 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dx > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = x1 - ax;
-  if (!dx && r < 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dx > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  r = y0 - ay;
-  if (!dy && r > 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dy > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = y1 - ay;
-  if (!dy && r < 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dy > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
-  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
-  return true;
-}
Index: de_modules/d3-geo/src/clip/rectangle.js
===================================================================
--- node_modules/d3-geo/src/clip/rectangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,168 +1,0 @@
-import {abs, epsilon} from "../math.js";
-import clipBuffer from "./buffer.js";
-import clipLine from "./line.js";
-import clipRejoin from "./rejoin.js";
-import {merge} from "d3-array";
-
-var clipMax = 1e9, clipMin = -clipMax;
-
-// TODO Use d3-polygon’s polygonContains here for the ring check?
-// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
-
-export default function clipRectangle(x0, y0, x1, y1) {
-
-  function visible(x, y) {
-    return x0 <= x && x <= x1 && y0 <= y && y <= y1;
-  }
-
-  function interpolate(from, to, direction, stream) {
-    var a = 0, a1 = 0;
-    if (from == null
-        || (a = corner(from, direction)) !== (a1 = corner(to, direction))
-        || comparePoint(from, to) < 0 ^ direction > 0) {
-      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
-      while ((a = (a + direction + 4) % 4) !== a1);
-    } else {
-      stream.point(to[0], to[1]);
-    }
-  }
-
-  function corner(p, direction) {
-    return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3
-        : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1
-        : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0
-        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
-  }
-
-  function compareIntersection(a, b) {
-    return comparePoint(a.x, b.x);
-  }
-
-  function comparePoint(a, b) {
-    var ca = corner(a, 1),
-        cb = corner(b, 1);
-    return ca !== cb ? ca - cb
-        : ca === 0 ? b[1] - a[1]
-        : ca === 1 ? a[0] - b[0]
-        : ca === 2 ? a[1] - b[1]
-        : b[0] - a[0];
-  }
-
-  return function(stream) {
-    var activeStream = stream,
-        bufferStream = clipBuffer(),
-        segments,
-        polygon,
-        ring,
-        x__, y__, v__, // first point
-        x_, y_, v_, // previous point
-        first,
-        clean;
-
-    var clipStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: polygonStart,
-      polygonEnd: polygonEnd
-    };
-
-    function point(x, y) {
-      if (visible(x, y)) activeStream.point(x, y);
-    }
-
-    function polygonInside() {
-      var winding = 0;
-
-      for (var i = 0, n = polygon.length; i < n; ++i) {
-        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
-          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
-          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
-          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
-        }
-      }
-
-      return winding;
-    }
-
-    // Buffer geometry within a polygon and then clip it en masse.
-    function polygonStart() {
-      activeStream = bufferStream, segments = [], polygon = [], clean = true;
-    }
-
-    function polygonEnd() {
-      var startInside = polygonInside(),
-          cleanInside = clean && startInside,
-          visible = (segments = merge(segments)).length;
-      if (cleanInside || visible) {
-        stream.polygonStart();
-        if (cleanInside) {
-          stream.lineStart();
-          interpolate(null, null, 1, stream);
-          stream.lineEnd();
-        }
-        if (visible) {
-          clipRejoin(segments, compareIntersection, startInside, interpolate, stream);
-        }
-        stream.polygonEnd();
-      }
-      activeStream = stream, segments = polygon = ring = null;
-    }
-
-    function lineStart() {
-      clipStream.point = linePoint;
-      if (polygon) polygon.push(ring = []);
-      first = true;
-      v_ = false;
-      x_ = y_ = NaN;
-    }
-
-    // TODO rather than special-case polygons, simply handle them separately.
-    // Ideally, coincident intersection points should be jittered to avoid
-    // clipping issues.
-    function lineEnd() {
-      if (segments) {
-        linePoint(x__, y__);
-        if (v__ && v_) bufferStream.rejoin();
-        segments.push(bufferStream.result());
-      }
-      clipStream.point = point;
-      if (v_) activeStream.lineEnd();
-    }
-
-    function linePoint(x, y) {
-      var v = visible(x, y);
-      if (polygon) ring.push([x, y]);
-      if (first) {
-        x__ = x, y__ = y, v__ = v;
-        first = false;
-        if (v) {
-          activeStream.lineStart();
-          activeStream.point(x, y);
-        }
-      } else {
-        if (v && v_) activeStream.point(x, y);
-        else {
-          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
-              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
-          if (clipLine(a, b, x0, y0, x1, y1)) {
-            if (!v_) {
-              activeStream.lineStart();
-              activeStream.point(a[0], a[1]);
-            }
-            activeStream.point(b[0], b[1]);
-            if (!v) activeStream.lineEnd();
-            clean = false;
-          } else if (v) {
-            activeStream.lineStart();
-            activeStream.point(x, y);
-            clean = false;
-          }
-        }
-      }
-      x_ = x, y_ = y, v_ = v;
-    }
-
-    return clipStream;
-  };
-}
Index: de_modules/d3-geo/src/clip/rejoin.js
===================================================================
--- node_modules/d3-geo/src/clip/rejoin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,103 +1,0 @@
-import pointEqual from "../pointEqual.js";
-import {epsilon} from "../math.js";
-
-function Intersection(point, points, other, entry) {
-  this.x = point;
-  this.z = points;
-  this.o = other; // another intersection
-  this.e = entry; // is an entry?
-  this.v = false; // visited
-  this.n = this.p = null; // next & previous
-}
-
-// A generalized polygon clipping algorithm: given a polygon that has been cut
-// into its visible line segments, and rejoins the segments by interpolating
-// along the clip edge.
-export default function(segments, compareIntersection, startInside, interpolate, stream) {
-  var subject = [],
-      clip = [],
-      i,
-      n;
-
-  segments.forEach(function(segment) {
-    if ((n = segment.length - 1) <= 0) return;
-    var n, p0 = segment[0], p1 = segment[n], x;
-
-    if (pointEqual(p0, p1)) {
-      if (!p0[2] && !p1[2]) {
-        stream.lineStart();
-        for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
-        stream.lineEnd();
-        return;
-      }
-      // handle degenerate cases by moving the point
-      p1[0] += 2 * epsilon;
-    }
-
-    subject.push(x = new Intersection(p0, segment, null, true));
-    clip.push(x.o = new Intersection(p0, null, x, false));
-    subject.push(x = new Intersection(p1, segment, null, false));
-    clip.push(x.o = new Intersection(p1, null, x, true));
-  });
-
-  if (!subject.length) return;
-
-  clip.sort(compareIntersection);
-  link(subject);
-  link(clip);
-
-  for (i = 0, n = clip.length; i < n; ++i) {
-    clip[i].e = startInside = !startInside;
-  }
-
-  var start = subject[0],
-      points,
-      point;
-
-  while (1) {
-    // Find first unvisited intersection.
-    var current = start,
-        isSubject = true;
-    while (current.v) if ((current = current.n) === start) return;
-    points = current.z;
-    stream.lineStart();
-    do {
-      current.v = current.o.v = true;
-      if (current.e) {
-        if (isSubject) {
-          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.n.x, 1, stream);
-        }
-        current = current.n;
-      } else {
-        if (isSubject) {
-          points = current.p.z;
-          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.p.x, -1, stream);
-        }
-        current = current.p;
-      }
-      current = current.o;
-      points = current.z;
-      isSubject = !isSubject;
-    } while (!current.v);
-    stream.lineEnd();
-  }
-}
-
-function link(array) {
-  if (!(n = array.length)) return;
-  var n,
-      i = 0,
-      a = array[0],
-      b;
-  while (++i < n) {
-    a.n = b = array[i];
-    b.p = a;
-    a = b;
-  }
-  a.n = b = array[0];
-  b.p = a;
-}
Index: de_modules/d3-geo/src/compose.js
===================================================================
--- node_modules/d3-geo/src/compose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export default function(a, b) {
-
-  function compose(x, y) {
-    return x = a(x, y), b(x[0], x[1]);
-  }
-
-  if (a.invert && b.invert) compose.invert = function(x, y) {
-    return x = b.invert(x, y), x && a.invert(x[0], x[1]);
-  };
-
-  return compose;
-}
Index: de_modules/d3-geo/src/constant.js
===================================================================
--- node_modules/d3-geo/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-geo/src/contains.js
===================================================================
--- node_modules/d3-geo/src/contains.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-import {default as polygonContains} from "./polygonContains.js";
-import {default as distance} from "./distance.js";
-import {epsilon2, radians} from "./math.js";
-
-var containsObjectType = {
-  Feature: function(object, point) {
-    return containsGeometry(object.geometry, point);
-  },
-  FeatureCollection: function(object, point) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
-    return false;
-  }
-};
-
-var containsGeometryType = {
-  Sphere: function() {
-    return true;
-  },
-  Point: function(object, point) {
-    return containsPoint(object.coordinates, point);
-  },
-  MultiPoint: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPoint(coordinates[i], point)) return true;
-    return false;
-  },
-  LineString: function(object, point) {
-    return containsLine(object.coordinates, point);
-  },
-  MultiLineString: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsLine(coordinates[i], point)) return true;
-    return false;
-  },
-  Polygon: function(object, point) {
-    return containsPolygon(object.coordinates, point);
-  },
-  MultiPolygon: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
-    return false;
-  },
-  GeometryCollection: function(object, point) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) if (containsGeometry(geometries[i], point)) return true;
-    return false;
-  }
-};
-
-function containsGeometry(geometry, point) {
-  return geometry && containsGeometryType.hasOwnProperty(geometry.type)
-      ? containsGeometryType[geometry.type](geometry, point)
-      : false;
-}
-
-function containsPoint(coordinates, point) {
-  return distance(coordinates, point) === 0;
-}
-
-function containsLine(coordinates, point) {
-  var ao, bo, ab;
-  for (var i = 0, n = coordinates.length; i < n; i++) {
-    bo = distance(coordinates[i], point);
-    if (bo === 0) return true;
-    if (i > 0) {
-      ab = distance(coordinates[i], coordinates[i - 1]);
-      if (
-        ab > 0 &&
-        ao <= ab &&
-        bo <= ab &&
-        (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab
-      )
-        return true;
-    }
-    ao = bo;
-  }
-  return false;
-}
-
-function containsPolygon(coordinates, point) {
-  return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));
-}
-
-function ringRadians(ring) {
-  return ring = ring.map(pointRadians), ring.pop(), ring;
-}
-
-function pointRadians(point) {
-  return [point[0] * radians, point[1] * radians];
-}
-
-export default function(object, point) {
-  return (object && containsObjectType.hasOwnProperty(object.type)
-      ? containsObjectType[object.type]
-      : containsGeometry)(object, point);
-}
Index: de_modules/d3-geo/src/distance.js
===================================================================
--- node_modules/d3-geo/src/distance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import length from "./length.js";
-
-var coordinates = [null, null],
-    object = {type: "LineString", coordinates: coordinates};
-
-export default function(a, b) {
-  coordinates[0] = a;
-  coordinates[1] = b;
-  return length(object);
-}
Index: de_modules/d3-geo/src/graticule.js
===================================================================
--- node_modules/d3-geo/src/graticule.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,105 +1,0 @@
-import {range} from "d3-array";
-import {abs, ceil, epsilon} from "./math.js";
-
-function graticuleX(y0, y1, dy) {
-  var y = range(y0, y1 - epsilon, dy).concat(y1);
-  return function(x) { return y.map(function(y) { return [x, y]; }); };
-}
-
-function graticuleY(x0, x1, dx) {
-  var x = range(x0, x1 - epsilon, dx).concat(x1);
-  return function(y) { return x.map(function(x) { return [x, y]; }); };
-}
-
-export default function graticule() {
-  var x1, x0, X1, X0,
-      y1, y0, Y1, Y0,
-      dx = 10, dy = dx, DX = 90, DY = 360,
-      x, y, X, Y,
-      precision = 2.5;
-
-  function graticule() {
-    return {type: "MultiLineString", coordinates: lines()};
-  }
-
-  function lines() {
-    return range(ceil(X0 / DX) * DX, X1, DX).map(X)
-        .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))
-        .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))
-        .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));
-  }
-
-  graticule.lines = function() {
-    return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
-  };
-
-  graticule.outline = function() {
-    return {
-      type: "Polygon",
-      coordinates: [
-        X(X0).concat(
-        Y(Y1).slice(1),
-        X(X1).reverse().slice(1),
-        Y(Y0).reverse().slice(1))
-      ]
-    };
-  };
-
-  graticule.extent = function(_) {
-    if (!arguments.length) return graticule.extentMinor();
-    return graticule.extentMajor(_).extentMinor(_);
-  };
-
-  graticule.extentMajor = function(_) {
-    if (!arguments.length) return [[X0, Y0], [X1, Y1]];
-    X0 = +_[0][0], X1 = +_[1][0];
-    Y0 = +_[0][1], Y1 = +_[1][1];
-    if (X0 > X1) _ = X0, X0 = X1, X1 = _;
-    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.extentMinor = function(_) {
-    if (!arguments.length) return [[x0, y0], [x1, y1]];
-    x0 = +_[0][0], x1 = +_[1][0];
-    y0 = +_[0][1], y1 = +_[1][1];
-    if (x0 > x1) _ = x0, x0 = x1, x1 = _;
-    if (y0 > y1) _ = y0, y0 = y1, y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.step = function(_) {
-    if (!arguments.length) return graticule.stepMinor();
-    return graticule.stepMajor(_).stepMinor(_);
-  };
-
-  graticule.stepMajor = function(_) {
-    if (!arguments.length) return [DX, DY];
-    DX = +_[0], DY = +_[1];
-    return graticule;
-  };
-
-  graticule.stepMinor = function(_) {
-    if (!arguments.length) return [dx, dy];
-    dx = +_[0], dy = +_[1];
-    return graticule;
-  };
-
-  graticule.precision = function(_) {
-    if (!arguments.length) return precision;
-    precision = +_;
-    x = graticuleX(y0, y1, 90);
-    y = graticuleY(x0, x1, precision);
-    X = graticuleX(Y0, Y1, 90);
-    Y = graticuleY(X0, X1, precision);
-    return graticule;
-  };
-
-  return graticule
-      .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])
-      .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);
-}
-
-export function graticule10() {
-  return graticule()();
-}
Index: de_modules/d3-geo/src/identity.js
===================================================================
--- node_modules/d3-geo/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => x;
Index: de_modules/d3-geo/src/index.js
===================================================================
--- node_modules/d3-geo/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-export {default as geoArea} from "./area.js";
-export {default as geoBounds} from "./bounds.js";
-export {default as geoCentroid} from "./centroid.js";
-export {default as geoCircle} from "./circle.js";
-export {default as geoClipAntimeridian} from "./clip/antimeridian.js";
-export {default as geoClipCircle} from "./clip/circle.js";
-export {default as geoClipExtent} from "./clip/extent.js"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).
-export {default as geoClipRectangle} from "./clip/rectangle.js";
-export {default as geoContains} from "./contains.js";
-export {default as geoDistance} from "./distance.js";
-export {default as geoGraticule, graticule10 as geoGraticule10} from "./graticule.js";
-export {default as geoInterpolate} from "./interpolate.js";
-export {default as geoLength} from "./length.js";
-export {default as geoPath} from "./path/index.js";
-export {default as geoAlbers} from "./projection/albers.js";
-export {default as geoAlbersUsa} from "./projection/albersUsa.js";
-export {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from "./projection/azimuthalEqualArea.js";
-export {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from "./projection/azimuthalEquidistant.js";
-export {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from "./projection/conicConformal.js";
-export {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from "./projection/conicEqualArea.js";
-export {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from "./projection/conicEquidistant.js";
-export {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from "./projection/equalEarth.js";
-export {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from "./projection/equirectangular.js";
-export {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from "./projection/gnomonic.js";
-export {default as geoIdentity} from "./projection/identity.js";
-export {default as geoProjection, projectionMutator as geoProjectionMutator} from "./projection/index.js";
-export {default as geoMercator, mercatorRaw as geoMercatorRaw} from "./projection/mercator.js";
-export {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from "./projection/naturalEarth1.js";
-export {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from "./projection/orthographic.js";
-export {default as geoStereographic, stereographicRaw as geoStereographicRaw} from "./projection/stereographic.js";
-export {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from "./projection/transverseMercator.js";
-export {default as geoRotation} from "./rotation.js";
-export {default as geoStream} from "./stream.js";
-export {default as geoTransform} from "./transform.js";
Index: de_modules/d3-geo/src/interpolate.js
===================================================================
--- node_modules/d3-geo/src/interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from "./math.js";
-
-export default function(a, b) {
-  var x0 = a[0] * radians,
-      y0 = a[1] * radians,
-      x1 = b[0] * radians,
-      y1 = b[1] * radians,
-      cy0 = cos(y0),
-      sy0 = sin(y0),
-      cy1 = cos(y1),
-      sy1 = sin(y1),
-      kx0 = cy0 * cos(x0),
-      ky0 = cy0 * sin(x0),
-      kx1 = cy1 * cos(x1),
-      ky1 = cy1 * sin(x1),
-      d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),
-      k = sin(d);
-
-  var interpolate = d ? function(t) {
-    var B = sin(t *= d) / k,
-        A = sin(d - t) / k,
-        x = A * kx0 + B * kx1,
-        y = A * ky0 + B * ky1,
-        z = A * sy0 + B * sy1;
-    return [
-      atan2(y, x) * degrees,
-      atan2(z, sqrt(x * x + y * y)) * degrees
-    ];
-  } : function() {
-    return [x0 * degrees, y0 * degrees];
-  };
-
-  interpolate.distance = d;
-
-  return interpolate;
-}
Index: de_modules/d3-geo/src/length.js
===================================================================
--- node_modules/d3-geo/src/length.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import {Adder} from "d3-array";
-import {abs, atan2, cos, radians, sin, sqrt} from "./math.js";
-import noop from "./noop.js";
-import stream from "./stream.js";
-
-var lengthSum,
-    lambda0,
-    sinPhi0,
-    cosPhi0;
-
-var lengthStream = {
-  sphere: noop,
-  point: noop,
-  lineStart: lengthLineStart,
-  lineEnd: noop,
-  polygonStart: noop,
-  polygonEnd: noop
-};
-
-function lengthLineStart() {
-  lengthStream.point = lengthPointFirst;
-  lengthStream.lineEnd = lengthLineEnd;
-}
-
-function lengthLineEnd() {
-  lengthStream.point = lengthStream.lineEnd = noop;
-}
-
-function lengthPointFirst(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);
-  lengthStream.point = lengthPoint;
-}
-
-function lengthPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var sinPhi = sin(phi),
-      cosPhi = cos(phi),
-      delta = abs(lambda - lambda0),
-      cosDelta = cos(delta),
-      sinDelta = sin(delta),
-      x = cosPhi * sinDelta,
-      y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
-      z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
-  lengthSum.add(atan2(sqrt(x * x + y * y), z));
-  lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
-}
-
-export default function(object) {
-  lengthSum = new Adder();
-  stream(object, lengthStream);
-  return +lengthSum;
-}
Index: de_modules/d3-geo/src/math.js
===================================================================
--- node_modules/d3-geo/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-export var epsilon = 1e-6;
-export var epsilon2 = 1e-12;
-export var pi = Math.PI;
-export var halfPi = pi / 2;
-export var quarterPi = pi / 4;
-export var tau = pi * 2;
-
-export var degrees = 180 / pi;
-export var radians = pi / 180;
-
-export var abs = Math.abs;
-export var atan = Math.atan;
-export var atan2 = Math.atan2;
-export var cos = Math.cos;
-export var ceil = Math.ceil;
-export var exp = Math.exp;
-export var floor = Math.floor;
-export var hypot = Math.hypot;
-export var log = Math.log;
-export var pow = Math.pow;
-export var sin = Math.sin;
-export var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
-export var sqrt = Math.sqrt;
-export var tan = Math.tan;
-
-export function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-export function asin(x) {
-  return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
-}
-
-export function haversin(x) {
-  return (x = sin(x / 2)) * x;
-}
Index: de_modules/d3-geo/src/noop.js
===================================================================
--- node_modules/d3-geo/src/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default function noop() {}
Index: de_modules/d3-geo/src/path/area.js
===================================================================
--- node_modules/d3-geo/src/path/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import {Adder} from "d3-array";
-import {abs} from "../math.js";
-import noop from "../noop.js";
-
-var areaSum = new Adder(),
-    areaRingSum = new Adder(),
-    x00,
-    y00,
-    x0,
-    y0;
-
-var areaStream = {
-  point: noop,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: function() {
-    areaStream.lineStart = areaRingStart;
-    areaStream.lineEnd = areaRingEnd;
-  },
-  polygonEnd: function() {
-    areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;
-    areaSum.add(abs(areaRingSum));
-    areaRingSum = new Adder();
-  },
-  result: function() {
-    var area = areaSum / 2;
-    areaSum = new Adder();
-    return area;
-  }
-};
-
-function areaRingStart() {
-  areaStream.point = areaPointFirst;
-}
-
-function areaPointFirst(x, y) {
-  areaStream.point = areaPoint;
-  x00 = x0 = x, y00 = y0 = y;
-}
-
-function areaPoint(x, y) {
-  areaRingSum.add(y0 * x - x0 * y);
-  x0 = x, y0 = y;
-}
-
-function areaRingEnd() {
-  areaPoint(x00, y00);
-}
-
-export default areaStream;
Index: de_modules/d3-geo/src/path/bounds.js
===================================================================
--- node_modules/d3-geo/src/path/bounds.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import noop from "../noop.js";
-
-var x0 = Infinity,
-    y0 = x0,
-    x1 = -x0,
-    y1 = x1;
-
-var boundsStream = {
-  point: boundsPoint,
-  lineStart: noop,
-  lineEnd: noop,
-  polygonStart: noop,
-  polygonEnd: noop,
-  result: function() {
-    var bounds = [[x0, y0], [x1, y1]];
-    x1 = y1 = -(y0 = x0 = Infinity);
-    return bounds;
-  }
-};
-
-function boundsPoint(x, y) {
-  if (x < x0) x0 = x;
-  if (x > x1) x1 = x;
-  if (y < y0) y0 = y;
-  if (y > y1) y1 = y;
-}
-
-export default boundsStream;
Index: de_modules/d3-geo/src/path/centroid.js
===================================================================
--- node_modules/d3-geo/src/path/centroid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import {sqrt} from "../math.js";
-
-// TODO Enforce positive area for exterior, negative area for interior?
-
-var X0 = 0,
-    Y0 = 0,
-    Z0 = 0,
-    X1 = 0,
-    Y1 = 0,
-    Z1 = 0,
-    X2 = 0,
-    Y2 = 0,
-    Z2 = 0,
-    x00,
-    y00,
-    x0,
-    y0;
-
-var centroidStream = {
-  point: centroidPoint,
-  lineStart: centroidLineStart,
-  lineEnd: centroidLineEnd,
-  polygonStart: function() {
-    centroidStream.lineStart = centroidRingStart;
-    centroidStream.lineEnd = centroidRingEnd;
-  },
-  polygonEnd: function() {
-    centroidStream.point = centroidPoint;
-    centroidStream.lineStart = centroidLineStart;
-    centroidStream.lineEnd = centroidLineEnd;
-  },
-  result: function() {
-    var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
-        : Z1 ? [X1 / Z1, Y1 / Z1]
-        : Z0 ? [X0 / Z0, Y0 / Z0]
-        : [NaN, NaN];
-    X0 = Y0 = Z0 =
-    X1 = Y1 = Z1 =
-    X2 = Y2 = Z2 = 0;
-    return centroid;
-  }
-};
-
-function centroidPoint(x, y) {
-  X0 += x;
-  Y0 += y;
-  ++Z0;
-}
-
-function centroidLineStart() {
-  centroidStream.point = centroidPointFirstLine;
-}
-
-function centroidPointFirstLine(x, y) {
-  centroidStream.point = centroidPointLine;
-  centroidPoint(x0 = x, y0 = y);
-}
-
-function centroidPointLine(x, y) {
-  var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);
-  X1 += z * (x0 + x) / 2;
-  Y1 += z * (y0 + y) / 2;
-  Z1 += z;
-  centroidPoint(x0 = x, y0 = y);
-}
-
-function centroidLineEnd() {
-  centroidStream.point = centroidPoint;
-}
-
-function centroidRingStart() {
-  centroidStream.point = centroidPointFirstRing;
-}
-
-function centroidRingEnd() {
-  centroidPointRing(x00, y00);
-}
-
-function centroidPointFirstRing(x, y) {
-  centroidStream.point = centroidPointRing;
-  centroidPoint(x00 = x0 = x, y00 = y0 = y);
-}
-
-function centroidPointRing(x, y) {
-  var dx = x - x0,
-      dy = y - y0,
-      z = sqrt(dx * dx + dy * dy);
-
-  X1 += z * (x0 + x) / 2;
-  Y1 += z * (y0 + y) / 2;
-  Z1 += z;
-
-  z = y0 * x - x0 * y;
-  X2 += z * (x0 + x);
-  Y2 += z * (y0 + y);
-  Z2 += z * 3;
-  centroidPoint(x0 = x, y0 = y);
-}
-
-export default centroidStream;
Index: de_modules/d3-geo/src/path/context.js
===================================================================
--- node_modules/d3-geo/src/path/context.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import {tau} from "../math.js";
-import noop from "../noop.js";
-
-export default function PathContext(context) {
-  this._context = context;
-}
-
-PathContext.prototype = {
-  _radius: 4.5,
-  pointRadius: function(_) {
-    return this._radius = _, this;
-  },
-  polygonStart: function() {
-    this._line = 0;
-  },
-  polygonEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line === 0) this._context.closePath();
-    this._point = NaN;
-  },
-  point: function(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._context.moveTo(x, y);
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._context.lineTo(x, y);
-        break;
-      }
-      default: {
-        this._context.moveTo(x + this._radius, y);
-        this._context.arc(x, y, this._radius, 0, tau);
-        break;
-      }
-    }
-  },
-  result: noop
-};
Index: de_modules/d3-geo/src/path/index.js
===================================================================
--- node_modules/d3-geo/src/path/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-import identity from "../identity.js";
-import stream from "../stream.js";
-import pathArea from "./area.js";
-import pathBounds from "./bounds.js";
-import pathCentroid from "./centroid.js";
-import PathContext from "./context.js";
-import pathMeasure from "./measure.js";
-import PathString from "./string.js";
-
-export default function(projection, context) {
-  let digits = 3,
-      pointRadius = 4.5,
-      projectionStream,
-      contextStream;
-
-  function path(object) {
-    if (object) {
-      if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
-      stream(object, projectionStream(contextStream));
-    }
-    return contextStream.result();
-  }
-
-  path.area = function(object) {
-    stream(object, projectionStream(pathArea));
-    return pathArea.result();
-  };
-
-  path.measure = function(object) {
-    stream(object, projectionStream(pathMeasure));
-    return pathMeasure.result();
-  };
-
-  path.bounds = function(object) {
-    stream(object, projectionStream(pathBounds));
-    return pathBounds.result();
-  };
-
-  path.centroid = function(object) {
-    stream(object, projectionStream(pathCentroid));
-    return pathCentroid.result();
-  };
-
-  path.projection = function(_) {
-    if (!arguments.length) return projection;
-    projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream;
-    return path;
-  };
-
-  path.context = function(_) {
-    if (!arguments.length) return context;
-    contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
-    if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
-    return path;
-  };
-
-  path.pointRadius = function(_) {
-    if (!arguments.length) return pointRadius;
-    pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
-    return path;
-  };
-
-  path.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) digits = null;
-    else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    if (context === null) contextStream = new PathString(digits);
-    return path;
-  };
-
-  return path.projection(projection).digits(digits).context(context);
-}
Index: de_modules/d3-geo/src/path/measure.js
===================================================================
--- node_modules/d3-geo/src/path/measure.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import {Adder} from "d3-array";
-import {sqrt} from "../math.js";
-import noop from "../noop.js";
-
-var lengthSum = new Adder(),
-    lengthRing,
-    x00,
-    y00,
-    x0,
-    y0;
-
-var lengthStream = {
-  point: noop,
-  lineStart: function() {
-    lengthStream.point = lengthPointFirst;
-  },
-  lineEnd: function() {
-    if (lengthRing) lengthPoint(x00, y00);
-    lengthStream.point = noop;
-  },
-  polygonStart: function() {
-    lengthRing = true;
-  },
-  polygonEnd: function() {
-    lengthRing = null;
-  },
-  result: function() {
-    var length = +lengthSum;
-    lengthSum = new Adder();
-    return length;
-  }
-};
-
-function lengthPointFirst(x, y) {
-  lengthStream.point = lengthPoint;
-  x00 = x0 = x, y00 = y0 = y;
-}
-
-function lengthPoint(x, y) {
-  x0 -= x, y0 -= y;
-  lengthSum.add(sqrt(x0 * x0 + y0 * y0));
-  x0 = x, y0 = y;
-}
-
-export default lengthStream;
Index: de_modules/d3-geo/src/path/string.js
===================================================================
--- node_modules/d3-geo/src/path/string.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-// Simple caching for constant-radius points.
-let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
-
-export default class PathString {
-  constructor(digits) {
-    this._append = digits == null ? append : appendRound(digits);
-    this._radius = 4.5;
-    this._ = "";
-  }
-  pointRadius(_) {
-    this._radius = +_;
-    return this;
-  }
-  polygonStart() {
-    this._line = 0;
-  }
-  polygonEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line === 0) this._ += "Z";
-    this._point = NaN;
-  }
-  point(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._append`M${x},${y}`;
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._append`L${x},${y}`;
-        break;
-      }
-      default: {
-        this._append`M${x},${y}`;
-        if (this._radius !== cacheRadius || this._append !== cacheAppend) {
-          const r = this._radius;
-          const s = this._;
-          this._ = ""; // stash the old string so we can cache the circle path fragment
-          this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
-          cacheRadius = r;
-          cacheAppend = this._append;
-          cacheCircle = this._;
-          this._ = s;
-        }
-        this._ += cacheCircle;
-        break;
-      }
-    }
-  }
-  result() {
-    const result = this._;
-    this._ = "";
-    return result.length ? result : null;
-  }
-}
-
-function append(strings) {
-  let i = 1;
-  this._ += strings[0];
-  for (const j = strings.length; i < j; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound(digits) {
-  const d = Math.floor(digits);
-  if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
-  if (d > 15) return append;
-  if (d !== cacheDigits) {
-    const k = 10 ** d;
-    cacheDigits = d;
-    cacheAppend = function append(strings) {
-      let i = 1;
-      this._ += strings[0];
-      for (const j = strings.length; i < j; ++i) {
-        this._ += Math.round(arguments[i] * k) / k + strings[i];
-      }
-    };
-  }
-  return cacheAppend;
-}
Index: de_modules/d3-geo/src/pointEqual.js
===================================================================
--- node_modules/d3-geo/src/pointEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import {abs, epsilon} from "./math.js";
-
-export default function(a, b) {
-  return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;
-}
Index: de_modules/d3-geo/src/polygonContains.js
===================================================================
--- node_modules/d3-geo/src/polygonContains.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import {Adder} from "d3-array";
-import {cartesian, cartesianCross, cartesianNormalizeInPlace} from "./cartesian.js";
-import {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from "./math.js";
-
-function longitude(point) {
-  return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);
-}
-
-export default function(polygon, point) {
-  var lambda = longitude(point),
-      phi = point[1],
-      sinPhi = sin(phi),
-      normal = [sin(lambda), -cos(lambda), 0],
-      angle = 0,
-      winding = 0;
-
-  var sum = new Adder();
-
-  if (sinPhi === 1) phi = halfPi + epsilon;
-  else if (sinPhi === -1) phi = -halfPi - epsilon;
-
-  for (var i = 0, n = polygon.length; i < n; ++i) {
-    if (!(m = (ring = polygon[i]).length)) continue;
-    var ring,
-        m,
-        point0 = ring[m - 1],
-        lambda0 = longitude(point0),
-        phi0 = point0[1] / 2 + quarterPi,
-        sinPhi0 = sin(phi0),
-        cosPhi0 = cos(phi0);
-
-    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
-      var point1 = ring[j],
-          lambda1 = longitude(point1),
-          phi1 = point1[1] / 2 + quarterPi,
-          sinPhi1 = sin(phi1),
-          cosPhi1 = cos(phi1),
-          delta = lambda1 - lambda0,
-          sign = delta >= 0 ? 1 : -1,
-          absDelta = sign * delta,
-          antimeridian = absDelta > pi,
-          k = sinPhi0 * sinPhi1;
-
-      sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));
-      angle += antimeridian ? delta + sign * tau : delta;
-
-      // Are the longitudes either side of the point’s meridian (lambda),
-      // and are the latitudes smaller than the parallel (phi)?
-      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
-        var arc = cartesianCross(cartesian(point0), cartesian(point1));
-        cartesianNormalizeInPlace(arc);
-        var intersection = cartesianCross(normal, arc);
-        cartesianNormalizeInPlace(intersection);
-        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);
-        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
-          winding += antimeridian ^ delta >= 0 ? 1 : -1;
-        }
-      }
-    }
-  }
-
-  // First, determine whether the South pole is inside or outside:
-  //
-  // It is inside if:
-  // * the polygon winds around it in a clockwise direction.
-  // * the polygon does not (cumulatively) wind around it, but has a negative
-  //   (counter-clockwise) area.
-  //
-  // Second, count the (signed) number of times a segment crosses a lambda
-  // from the point to the South pole.  If it is zero, then the point is the
-  // same side as the South pole.
-
-  return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);
-}
Index: de_modules/d3-geo/src/projection/albers.js
===================================================================
--- node_modules/d3-geo/src/projection/albers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import conicEqualArea from "./conicEqualArea.js";
-
-export default function() {
-  return conicEqualArea()
-      .parallels([29.5, 45.5])
-      .scale(1070)
-      .translate([480, 250])
-      .rotate([96, 0])
-      .center([-0.6, 38.7]);
-}
Index: de_modules/d3-geo/src/projection/albersUsa.js
===================================================================
--- node_modules/d3-geo/src/projection/albersUsa.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-import {epsilon} from "../math.js";
-import albers from "./albers.js";
-import conicEqualArea from "./conicEqualArea.js";
-import {fitExtent, fitSize, fitWidth, fitHeight} from "./fit.js";
-
-// The projections must have mutually exclusive clip regions on the sphere,
-// as this will avoid emitting interleaving lines and polygons.
-function multiplex(streams) {
-  var n = streams.length;
-  return {
-    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
-    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
-    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
-    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
-    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
-    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
-  };
-}
-
-// A composite projection for the United States, configured by default for
-// 960×500. The projection also works quite well at 960×600 if you change the
-// scale to 1285 and adjust the translate accordingly. The set of standard
-// parallels for each region comes from USGS, which is published here:
-// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
-export default function() {
-  var cache,
-      cacheStream,
-      lower48 = albers(), lower48Point,
-      alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
-      hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
-      point, pointStream = {point: function(x, y) { point = [x, y]; }};
-
-  function albersUsa(coordinates) {
-    var x = coordinates[0], y = coordinates[1];
-    return point = null,
-        (lower48Point.point(x, y), point)
-        || (alaskaPoint.point(x, y), point)
-        || (hawaiiPoint.point(x, y), point);
-  }
-
-  albersUsa.invert = function(coordinates) {
-    var k = lower48.scale(),
-        t = lower48.translate(),
-        x = (coordinates[0] - t[0]) / k,
-        y = (coordinates[1] - t[1]) / k;
-    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
-        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
-        : lower48).invert(coordinates);
-  };
-
-  albersUsa.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
-  };
-
-  albersUsa.precision = function(_) {
-    if (!arguments.length) return lower48.precision();
-    lower48.precision(_), alaska.precision(_), hawaii.precision(_);
-    return reset();
-  };
-
-  albersUsa.scale = function(_) {
-    if (!arguments.length) return lower48.scale();
-    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
-    return albersUsa.translate(lower48.translate());
-  };
-
-  albersUsa.translate = function(_) {
-    if (!arguments.length) return lower48.translate();
-    var k = lower48.scale(), x = +_[0], y = +_[1];
-
-    lower48Point = lower48
-        .translate(_)
-        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
-        .stream(pointStream);
-
-    alaskaPoint = alaska
-        .translate([x - 0.307 * k, y + 0.201 * k])
-        .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])
-        .stream(pointStream);
-
-    hawaiiPoint = hawaii
-        .translate([x - 0.205 * k, y + 0.212 * k])
-        .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])
-        .stream(pointStream);
-
-    return reset();
-  };
-
-  albersUsa.fitExtent = function(extent, object) {
-    return fitExtent(albersUsa, extent, object);
-  };
-
-  albersUsa.fitSize = function(size, object) {
-    return fitSize(albersUsa, size, object);
-  };
-
-  albersUsa.fitWidth = function(width, object) {
-    return fitWidth(albersUsa, width, object);
-  };
-
-  albersUsa.fitHeight = function(height, object) {
-    return fitHeight(albersUsa, height, object);
-  };
-
-  function reset() {
-    cache = cacheStream = null;
-    return albersUsa;
-  }
-
-  return albersUsa.scale(1070);
-}
Index: de_modules/d3-geo/src/projection/azimuthal.js
===================================================================
--- node_modules/d3-geo/src/projection/azimuthal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import {asin, atan2, cos, sin, sqrt} from "../math.js";
-
-export function azimuthalRaw(scale) {
-  return function(x, y) {
-    var cx = cos(x),
-        cy = cos(y),
-        k = scale(cx * cy);
-        if (k === Infinity) return [2, 0];
-    return [
-      k * cy * sin(x),
-      k * sin(y)
-    ];
-  }
-}
-
-export function azimuthalInvert(angle) {
-  return function(x, y) {
-    var z = sqrt(x * x + y * y),
-        c = angle(z),
-        sc = sin(c),
-        cc = cos(c);
-    return [
-      atan2(x * sc, z * cc),
-      asin(z && y * sc / z)
-    ];
-  }
-}
Index: de_modules/d3-geo/src/projection/azimuthalEqualArea.js
===================================================================
--- node_modules/d3-geo/src/projection/azimuthalEqualArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {asin, sqrt} from "../math.js";
-import {azimuthalRaw, azimuthalInvert} from "./azimuthal.js";
-import projection from "./index.js";
-
-export var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {
-  return sqrt(2 / (1 + cxcy));
-});
-
-azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {
-  return 2 * asin(z / 2);
-});
-
-export default function() {
-  return projection(azimuthalEqualAreaRaw)
-      .scale(124.75)
-      .clipAngle(180 - 1e-3);
-}
Index: de_modules/d3-geo/src/projection/azimuthalEquidistant.js
===================================================================
--- node_modules/d3-geo/src/projection/azimuthalEquidistant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {acos, sin} from "../math.js";
-import {azimuthalRaw, azimuthalInvert} from "./azimuthal.js";
-import projection from "./index.js";
-
-export var azimuthalEquidistantRaw = azimuthalRaw(function(c) {
-  return (c = acos(c)) && c / sin(c);
-});
-
-azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {
-  return z;
-});
-
-export default function() {
-  return projection(azimuthalEquidistantRaw)
-      .scale(79.4188)
-      .clipAngle(180 - 1e-3);
-}
Index: de_modules/d3-geo/src/projection/conic.js
===================================================================
--- node_modules/d3-geo/src/projection/conic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {degrees, pi, radians} from "../math.js";
-import {projectionMutator} from "./index.js";
-
-export function conicProjection(projectAt) {
-  var phi0 = 0,
-      phi1 = pi / 3,
-      m = projectionMutator(projectAt),
-      p = m(phi0, phi1);
-
-  p.parallels = function(_) {
-    return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];
-  };
-
-  return p;
-}
Index: de_modules/d3-geo/src/projection/conicConformal.js
===================================================================
--- node_modules/d3-geo/src/projection/conicConformal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from "../math.js";
-import {conicProjection} from "./conic.js";
-import {mercatorRaw} from "./mercator.js";
-
-function tany(y) {
-  return tan((halfPi + y) / 2);
-}
-
-export function conicConformalRaw(y0, y1) {
-  var cy0 = cos(y0),
-      n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),
-      f = cy0 * pow(tany(y0), n) / n;
-
-  if (!n) return mercatorRaw;
-
-  function project(x, y) {
-    if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }
-    else { if (y > halfPi - epsilon) y = halfPi - epsilon; }
-    var r = f / pow(tany(y), n);
-    return [r * sin(n * x), f - r * cos(n * x)];
-  }
-
-  project.invert = function(x, y) {
-    var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),
-      l = atan2(x, abs(fy)) * sign(fy);
-    if (fy * n < 0)
-      l -= pi * sign(x) * sign(fy);
-    return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];
-  };
-
-  return project;
-}
-
-export default function() {
-  return conicProjection(conicConformalRaw)
-      .scale(109.5)
-      .parallels([30, 30]);
-}
Index: de_modules/d3-geo/src/projection/conicEqualArea.js
===================================================================
--- node_modules/d3-geo/src/projection/conicEqualArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from "../math.js";
-import {conicProjection} from "./conic.js";
-import {cylindricalEqualAreaRaw} from "./cylindricalEqualArea.js";
-
-export function conicEqualAreaRaw(y0, y1) {
-  var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;
-
-  // Are the parallels symmetrical around the Equator?
-  if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);
-
-  var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;
-
-  function project(x, y) {
-    var r = sqrt(c - 2 * n * sin(y)) / n;
-    return [r * sin(x *= n), r0 - r * cos(x)];
-  }
-
-  project.invert = function(x, y) {
-    var r0y = r0 - y,
-        l = atan2(x, abs(r0y)) * sign(r0y);
-    if (r0y * n < 0)
-      l -= pi * sign(x) * sign(r0y);
-    return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
-  };
-
-  return project;
-}
-
-export default function() {
-  return conicProjection(conicEqualAreaRaw)
-      .scale(155.424)
-      .center([0, 33.6442]);
-}
Index: de_modules/d3-geo/src/projection/conicEquidistant.js
===================================================================
--- node_modules/d3-geo/src/projection/conicEquidistant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from "../math.js";
-import {conicProjection} from "./conic.js";
-import {equirectangularRaw} from "./equirectangular.js";
-
-export function conicEquidistantRaw(y0, y1) {
-  var cy0 = cos(y0),
-      n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),
-      g = cy0 / n + y0;
-
-  if (abs(n) < epsilon) return equirectangularRaw;
-
-  function project(x, y) {
-    var gy = g - y, nx = n * x;
-    return [gy * sin(nx), g - gy * cos(nx)];
-  }
-
-  project.invert = function(x, y) {
-    var gy = g - y,
-        l = atan2(x, abs(gy)) * sign(gy);
-    if (gy * n < 0)
-      l -= pi * sign(x) * sign(gy);
-    return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];
-  };
-
-  return project;
-}
-
-export default function() {
-  return conicProjection(conicEquidistantRaw)
-      .scale(131.154)
-      .center([0, 13.9389]);
-}
Index: de_modules/d3-geo/src/projection/cylindricalEqualArea.js
===================================================================
--- node_modules/d3-geo/src/projection/cylindricalEqualArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {asin, cos, sin} from "../math.js";
-
-export function cylindricalEqualAreaRaw(phi0) {
-  var cosPhi0 = cos(phi0);
-
-  function forward(lambda, phi) {
-    return [lambda * cosPhi0, sin(phi) / cosPhi0];
-  }
-
-  forward.invert = function(x, y) {
-    return [x / cosPhi0, asin(y * cosPhi0)];
-  };
-
-  return forward;
-}
Index: de_modules/d3-geo/src/projection/equalEarth.js
===================================================================
--- node_modules/d3-geo/src/projection/equalEarth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import projection from "./index.js";
-import {abs, asin, cos, epsilon2, sin, sqrt} from "../math.js";
-
-var A1 = 1.340264,
-    A2 = -0.081106,
-    A3 = 0.000893,
-    A4 = 0.003796,
-    M = sqrt(3) / 2,
-    iterations = 12;
-
-export function equalEarthRaw(lambda, phi) {
-  var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;
-  return [
-    lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
-    l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
-  ];
-}
-
-equalEarthRaw.invert = function(x, y) {
-  var l = y, l2 = l * l, l6 = l2 * l2 * l2;
-  for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
-    fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
-    fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
-    l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
-    if (abs(delta) < epsilon2) break;
-  }
-  return [
-    M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),
-    asin(sin(l) / M)
-  ];
-};
-
-export default function() {
-  return projection(equalEarthRaw)
-      .scale(177.158);
-}
Index: de_modules/d3-geo/src/projection/equirectangular.js
===================================================================
--- node_modules/d3-geo/src/projection/equirectangular.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import projection from "./index.js";
-
-export function equirectangularRaw(lambda, phi) {
-  return [lambda, phi];
-}
-
-equirectangularRaw.invert = equirectangularRaw;
-
-export default function() {
-  return projection(equirectangularRaw)
-      .scale(152.63);
-}
Index: de_modules/d3-geo/src/projection/fit.js
===================================================================
--- node_modules/d3-geo/src/projection/fit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import {default as geoStream} from "../stream.js";
-import boundsStream from "../path/bounds.js";
-
-function fit(projection, fitBounds, object) {
-  var clip = projection.clipExtent && projection.clipExtent();
-  projection.scale(150).translate([0, 0]);
-  if (clip != null) projection.clipExtent(null);
-  geoStream(object, projection.stream(boundsStream));
-  fitBounds(boundsStream.result());
-  if (clip != null) projection.clipExtent(clip);
-  return projection;
-}
-
-export function fitExtent(projection, extent, object) {
-  return fit(projection, function(b) {
-    var w = extent[1][0] - extent[0][0],
-        h = extent[1][1] - extent[0][1],
-        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
-        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
-        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-export function fitSize(projection, size, object) {
-  return fitExtent(projection, [[0, 0], size], object);
-}
-
-export function fitWidth(projection, width, object) {
-  return fit(projection, function(b) {
-    var w = +width,
-        k = w / (b[1][0] - b[0][0]),
-        x = (w - k * (b[1][0] + b[0][0])) / 2,
-        y = -k * b[0][1];
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-export function fitHeight(projection, height, object) {
-  return fit(projection, function(b) {
-    var h = +height,
-        k = h / (b[1][1] - b[0][1]),
-        x = -k * b[0][0],
-        y = (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
Index: de_modules/d3-geo/src/projection/gnomonic.js
===================================================================
--- node_modules/d3-geo/src/projection/gnomonic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {atan, cos, sin} from "../math.js";
-import {azimuthalInvert} from "./azimuthal.js";
-import projection from "./index.js";
-
-export function gnomonicRaw(x, y) {
-  var cy = cos(y), k = cos(x) * cy;
-  return [cy * sin(x) / k, sin(y) / k];
-}
-
-gnomonicRaw.invert = azimuthalInvert(atan);
-
-export default function() {
-  return projection(gnomonicRaw)
-      .scale(144.049)
-      .clipAngle(60);
-}
Index: de_modules/d3-geo/src/projection/identity.js
===================================================================
--- node_modules/d3-geo/src/projection/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-import clipRectangle from "../clip/rectangle.js";
-import identity from "../identity.js";
-import {transformer} from "../transform.js";
-import {fitExtent, fitSize, fitWidth, fitHeight} from "./fit.js";
-import {cos, degrees, radians, sin} from "../math.js";
-
-export default function() {
-  var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect
-      alpha = 0, ca, sa, // angle
-      x0 = null, y0, x1, y1, // clip extent
-      kx = 1, ky = 1,
-      transform = transformer({
-        point: function(x, y) {
-          var p = projection([x, y])
-          this.stream.point(p[0], p[1]);
-        }
-      }),
-      postclip = identity,
-      cache,
-      cacheStream;
-
-  function reset() {
-    kx = k * sx;
-    ky = k * sy;
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  function projection (p) {
-    var x = p[0] * kx, y = p[1] * ky;
-    if (alpha) {
-      var t = y * ca - x * sa;
-      x = x * ca + y * sa;
-      y = t;
-    }    
-    return [x + tx, y + ty];
-  }
-  projection.invert = function(p) {
-    var x = p[0] - tx, y = p[1] - ty;
-    if (alpha) {
-      var t = y * ca + x * sa;
-      x = x * ca - y * sa;
-      y = t;
-    }
-    return [x / kx, y / ky];
-  };
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
-  };
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, reset()) : k;
-  };
-  projection.translate = function(_) {
-    return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];
-  }
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;
-  };
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;
-  };
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;
-  };
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  return projection;
-}
Index: de_modules/d3-geo/src/projection/index.js
===================================================================
--- node_modules/d3-geo/src/projection/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-import clipAntimeridian from "../clip/antimeridian.js";
-import clipCircle from "../clip/circle.js";
-import clipRectangle from "../clip/rectangle.js";
-import compose from "../compose.js";
-import identity from "../identity.js";
-import {cos, degrees, radians, sin, sqrt} from "../math.js";
-import {rotateRadians} from "../rotation.js";
-import {transformer} from "../transform.js";
-import {fitExtent, fitSize, fitWidth, fitHeight} from "./fit.js";
-import resample from "./resample.js";
-
-var transformRadians = transformer({
-  point: function(x, y) {
-    this.stream.point(x * radians, y * radians);
-  }
-});
-
-function transformRotate(rotate) {
-  return transformer({
-    point: function(x, y) {
-      var r = rotate(x, y);
-      return this.stream.point(r[0], r[1]);
-    }
-  });
-}
-
-function scaleTranslate(k, dx, dy, sx, sy) {
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [dx + k * x, dy - k * y];
-  }
-  transform.invert = function(x, y) {
-    return [(x - dx) / k * sx, (dy - y) / k * sy];
-  };
-  return transform;
-}
-
-function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {
-  if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);
-  var cosAlpha = cos(alpha),
-      sinAlpha = sin(alpha),
-      a = cosAlpha * k,
-      b = sinAlpha * k,
-      ai = cosAlpha / k,
-      bi = sinAlpha / k,
-      ci = (sinAlpha * dy - cosAlpha * dx) / k,
-      fi = (sinAlpha * dx + cosAlpha * dy) / k;
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [a * x - b * y + dx, dy - b * x - a * y];
-  }
-  transform.invert = function(x, y) {
-    return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];
-  };
-  return transform;
-}
-
-export default function projection(project) {
-  return projectionMutator(function() { return project; })();
-}
-
-export function projectionMutator(projectAt) {
-  var project,
-      k = 150, // scale
-      x = 480, y = 250, // translate
-      lambda = 0, phi = 0, // center
-      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
-      alpha = 0, // post-rotate angle
-      sx = 1, // reflectX
-      sy = 1, // reflectX
-      theta = null, preclip = clipAntimeridian, // pre-clip angle
-      x0 = null, y0, x1, y1, postclip = identity, // post-clip extent
-      delta2 = 0.5, // precision
-      projectResample,
-      projectTransform,
-      projectRotateTransform,
-      cache,
-      cacheStream;
-
-  function projection(point) {
-    return projectRotateTransform(point[0] * radians, point[1] * radians);
-  }
-
-  function invert(point) {
-    point = projectRotateTransform.invert(point[0], point[1]);
-    return point && [point[0] * degrees, point[1] * degrees];
-  }
-
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
-  };
-
-  projection.preclip = function(_) {
-    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
-  };
-
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-
-  projection.clipAngle = function(_) {
-    return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;
-  };
-
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, recenter()) : k;
-  };
-
-  projection.translate = function(_) {
-    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
-  };
-
-  projection.center = function(_) {
-    return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];
-  };
-
-  projection.rotate = function(_) {
-    return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];
-  };
-
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;
-  };
-
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;
-  };
-
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;
-  };
-
-  projection.precision = function(_) {
-    return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);
-  };
-
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  function recenter() {
-    var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),
-        transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);
-    rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);
-    projectTransform = compose(project, transform);
-    projectRotateTransform = compose(rotate, projectTransform);
-    projectResample = resample(projectTransform, delta2);
-    return reset();
-  }
-
-  function reset() {
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  return function() {
-    project = projectAt.apply(this, arguments);
-    projection.invert = project.invert && invert;
-    return recenter();
-  };
-}
Index: de_modules/d3-geo/src/projection/mercator.js
===================================================================
--- node_modules/d3-geo/src/projection/mercator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import {atan, exp, halfPi, log, pi, tan, tau} from "../math.js";
-import rotation from "../rotation.js";
-import projection from "./index.js";
-
-export function mercatorRaw(lambda, phi) {
-  return [lambda, log(tan((halfPi + phi) / 2))];
-}
-
-mercatorRaw.invert = function(x, y) {
-  return [x, 2 * atan(exp(y)) - halfPi];
-};
-
-export default function() {
-  return mercatorProjection(mercatorRaw)
-      .scale(961 / tau);
-}
-
-export function mercatorProjection(project) {
-  var m = projection(project),
-      center = m.center,
-      scale = m.scale,
-      translate = m.translate,
-      clipExtent = m.clipExtent,
-      x0 = null, y0, x1, y1; // clip extent
-
-  m.scale = function(_) {
-    return arguments.length ? (scale(_), reclip()) : scale();
-  };
-
-  m.translate = function(_) {
-    return arguments.length ? (translate(_), reclip()) : translate();
-  };
-
-  m.center = function(_) {
-    return arguments.length ? (center(_), reclip()) : center();
-  };
-
-  m.clipExtent = function(_) {
-    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  function reclip() {
-    var k = pi * scale(),
-        t = m(rotation(m.rotate()).invert([0, 0]));
-    return clipExtent(x0 == null
-        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
-        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
-        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
-  }
-
-  return reclip();
-}
Index: de_modules/d3-geo/src/projection/naturalEarth1.js
===================================================================
--- node_modules/d3-geo/src/projection/naturalEarth1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import projection from "./index.js";
-import {abs, epsilon} from "../math.js";
-
-export function naturalEarth1Raw(lambda, phi) {
-  var phi2 = phi * phi, phi4 = phi2 * phi2;
-  return [
-    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
-    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
-  ];
-}
-
-naturalEarth1Raw.invert = function(x, y) {
-  var phi = y, i = 25, delta;
-  do {
-    var phi2 = phi * phi, phi4 = phi2 * phi2;
-    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
-        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
-  } while (abs(delta) > epsilon && --i > 0);
-  return [
-    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
-    phi
-  ];
-};
-
-export default function() {
-  return projection(naturalEarth1Raw)
-      .scale(175.295);
-}
Index: de_modules/d3-geo/src/projection/orthographic.js
===================================================================
--- node_modules/d3-geo/src/projection/orthographic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {asin, cos, epsilon, sin} from "../math.js";
-import {azimuthalInvert} from "./azimuthal.js";
-import projection from "./index.js";
-
-export function orthographicRaw(x, y) {
-  return [cos(y) * sin(x), sin(y)];
-}
-
-orthographicRaw.invert = azimuthalInvert(asin);
-
-export default function() {
-  return projection(orthographicRaw)
-      .scale(249.5)
-      .clipAngle(90 + epsilon);
-}
Index: de_modules/d3-geo/src/projection/resample.js
===================================================================
--- node_modules/d3-geo/src/projection/resample.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,102 +1,0 @@
-import {cartesian} from "../cartesian.js";
-import {abs, asin, atan2, cos, epsilon, radians, sqrt} from "../math.js";
-import {transformer} from "../transform.js";
-
-var maxDepth = 16, // maximum depth of subdivision
-    cosMinDistance = cos(30 * radians); // cos(minimum angular distance)
-
-export default function(project, delta2) {
-  return +delta2 ? resample(project, delta2) : resampleNone(project);
-}
-
-function resampleNone(project) {
-  return transformer({
-    point: function(x, y) {
-      x = project(x, y);
-      this.stream.point(x[0], x[1]);
-    }
-  });
-}
-
-function resample(project, delta2) {
-
-  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
-    var dx = x1 - x0,
-        dy = y1 - y0,
-        d2 = dx * dx + dy * dy;
-    if (d2 > 4 * delta2 && depth--) {
-      var a = a0 + a1,
-          b = b0 + b1,
-          c = c0 + c1,
-          m = sqrt(a * a + b * b + c * c),
-          phi2 = asin(c /= m),
-          lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),
-          p = project(lambda2, phi2),
-          x2 = p[0],
-          y2 = p[1],
-          dx2 = x2 - x0,
-          dy2 = y2 - y0,
-          dz = dy * dx2 - dx * dy2;
-      if (dz * dz / d2 > delta2 // perpendicular projected distance
-          || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
-          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
-        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
-        stream.point(x2, y2);
-        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
-      }
-    }
-  }
-  return function(stream) {
-    var lambda00, x00, y00, a00, b00, c00, // first point
-        lambda0, x0, y0, a0, b0, c0; // previous point
-
-    var resampleStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
-      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
-    };
-
-    function point(x, y) {
-      x = project(x, y);
-      stream.point(x[0], x[1]);
-    }
-
-    function lineStart() {
-      x0 = NaN;
-      resampleStream.point = linePoint;
-      stream.lineStart();
-    }
-
-    function linePoint(lambda, phi) {
-      var c = cartesian([lambda, phi]), p = project(lambda, phi);
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
-      stream.point(x0, y0);
-    }
-
-    function lineEnd() {
-      resampleStream.point = point;
-      stream.lineEnd();
-    }
-
-    function ringStart() {
-      lineStart();
-      resampleStream.point = ringPoint;
-      resampleStream.lineEnd = ringEnd;
-    }
-
-    function ringPoint(lambda, phi) {
-      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
-      resampleStream.point = linePoint;
-    }
-
-    function ringEnd() {
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
-      resampleStream.lineEnd = lineEnd;
-      lineEnd();
-    }
-
-    return resampleStream;
-  };
-}
Index: de_modules/d3-geo/src/projection/stereographic.js
===================================================================
--- node_modules/d3-geo/src/projection/stereographic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import {atan, cos, sin} from "../math.js";
-import {azimuthalInvert} from "./azimuthal.js";
-import projection from "./index.js";
-
-export function stereographicRaw(x, y) {
-  var cy = cos(y), k = 1 + cos(x) * cy;
-  return [cy * sin(x) / k, sin(y) / k];
-}
-
-stereographicRaw.invert = azimuthalInvert(function(z) {
-  return 2 * atan(z);
-});
-
-export default function() {
-  return projection(stereographicRaw)
-      .scale(250)
-      .clipAngle(142);
-}
Index: de_modules/d3-geo/src/projection/transverseMercator.js
===================================================================
--- node_modules/d3-geo/src/projection/transverseMercator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import {atan, exp, halfPi, log, tan} from "../math.js";
-import {mercatorProjection} from "./mercator.js";
-
-export function transverseMercatorRaw(lambda, phi) {
-  return [log(tan((halfPi + phi) / 2)), -lambda];
-}
-
-transverseMercatorRaw.invert = function(x, y) {
-  return [-y, 2 * atan(exp(x)) - halfPi];
-};
-
-export default function() {
-  var m = mercatorProjection(transverseMercatorRaw),
-      center = m.center,
-      rotate = m.rotate;
-
-  m.center = function(_) {
-    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
-  };
-
-  m.rotate = function(_) {
-    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
-  };
-
-  return rotate([0, 0, 90])
-      .scale(159.155);
-}
Index: de_modules/d3-geo/src/rotation.js
===================================================================
--- node_modules/d3-geo/src/rotation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-import compose from "./compose.js";
-import {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from "./math.js";
-
-function rotationIdentity(lambda, phi) {
-  if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;
-  return [lambda, phi];
-}
-
-rotationIdentity.invert = rotationIdentity;
-
-export function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
-  return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
-    : rotationLambda(deltaLambda))
-    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
-    : rotationIdentity);
-}
-
-function forwardRotationLambda(deltaLambda) {
-  return function(lambda, phi) {
-    lambda += deltaLambda;
-    if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;
-    return [lambda, phi];
-  };
-}
-
-function rotationLambda(deltaLambda) {
-  var rotation = forwardRotationLambda(deltaLambda);
-  rotation.invert = forwardRotationLambda(-deltaLambda);
-  return rotation;
-}
-
-function rotationPhiGamma(deltaPhi, deltaGamma) {
-  var cosDeltaPhi = cos(deltaPhi),
-      sinDeltaPhi = sin(deltaPhi),
-      cosDeltaGamma = cos(deltaGamma),
-      sinDeltaGamma = sin(deltaGamma);
-
-  function rotation(lambda, phi) {
-    var cosPhi = cos(phi),
-        x = cos(lambda) * cosPhi,
-        y = sin(lambda) * cosPhi,
-        z = sin(phi),
-        k = z * cosDeltaPhi + x * sinDeltaPhi;
-    return [
-      atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
-      asin(k * cosDeltaGamma + y * sinDeltaGamma)
-    ];
-  }
-
-  rotation.invert = function(lambda, phi) {
-    var cosPhi = cos(phi),
-        x = cos(lambda) * cosPhi,
-        y = sin(lambda) * cosPhi,
-        z = sin(phi),
-        k = z * cosDeltaGamma - y * sinDeltaGamma;
-    return [
-      atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
-      asin(k * cosDeltaPhi - x * sinDeltaPhi)
-    ];
-  };
-
-  return rotation;
-}
-
-export default function(rotate) {
-  rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);
-
-  function forward(coordinates) {
-    coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  }
-
-  forward.invert = function(coordinates) {
-    coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  };
-
-  return forward;
-}
Index: de_modules/d3-geo/src/stream.js
===================================================================
--- node_modules/d3-geo/src/stream.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-function streamGeometry(geometry, stream) {
-  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
-    streamGeometryType[geometry.type](geometry, stream);
-  }
-}
-
-var streamObjectType = {
-  Feature: function(object, stream) {
-    streamGeometry(object.geometry, stream);
-  },
-  FeatureCollection: function(object, stream) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) streamGeometry(features[i].geometry, stream);
-  }
-};
-
-var streamGeometryType = {
-  Sphere: function(object, stream) {
-    stream.sphere();
-  },
-  Point: function(object, stream) {
-    object = object.coordinates;
-    stream.point(object[0], object[1], object[2]);
-  },
-  MultiPoint: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
-  },
-  LineString: function(object, stream) {
-    streamLine(object.coordinates, stream, 0);
-  },
-  MultiLineString: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamLine(coordinates[i], stream, 0);
-  },
-  Polygon: function(object, stream) {
-    streamPolygon(object.coordinates, stream);
-  },
-  MultiPolygon: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamPolygon(coordinates[i], stream);
-  },
-  GeometryCollection: function(object, stream) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) streamGeometry(geometries[i], stream);
-  }
-};
-
-function streamLine(coordinates, stream, closed) {
-  var i = -1, n = coordinates.length - closed, coordinate;
-  stream.lineStart();
-  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
-  stream.lineEnd();
-}
-
-function streamPolygon(coordinates, stream) {
-  var i = -1, n = coordinates.length;
-  stream.polygonStart();
-  while (++i < n) streamLine(coordinates[i], stream, 1);
-  stream.polygonEnd();
-}
-
-export default function(object, stream) {
-  if (object && streamObjectType.hasOwnProperty(object.type)) {
-    streamObjectType[object.type](object, stream);
-  } else {
-    streamGeometry(object, stream);
-  }
-}
Index: de_modules/d3-geo/src/transform.js
===================================================================
--- node_modules/d3-geo/src/transform.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-export default function(methods) {
-  return {
-    stream: transformer(methods)
-  };
-}
-
-export function transformer(methods) {
-  return function(stream) {
-    var s = new TransformStream;
-    for (var key in methods) s[key] = methods[key];
-    s.stream = stream;
-    return s;
-  };
-}
-
-function TransformStream() {}
-
-TransformStream.prototype = {
-  constructor: TransformStream,
-  point: function(x, y) { this.stream.point(x, y); },
-  sphere: function() { this.stream.sphere(); },
-  lineStart: function() { this.stream.lineStart(); },
-  lineEnd: function() { this.stream.lineEnd(); },
-  polygonStart: function() { this.stream.polygonStart(); },
-  polygonEnd: function() { this.stream.polygonEnd(); }
-};
Index: de_modules/d3-hierarchy/LICENSE
===================================================================
--- node_modules/d3-hierarchy/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-hierarchy/README.md
===================================================================
--- node_modules/d3-hierarchy/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,592 +1,0 @@
-# d3-hierarchy
-
-Many datasets are intrinsically hierarchical. Consider [geographic entities](https://www.census.gov/programs-surveys/geography/guidance/hierarchy.html), such as census blocks, census tracts, counties and states; the command structure of businesses and governments; file systems and software packages. And even non-hierarchical data may be arranged empirically into a hierarchy, as with [*k*-means clustering](https://en.wikipedia.org/wiki/K-means_clustering) or [phylogenetic trees](https://observablehq.com/@mbostock/tree-of-life).
-
-This module implements several popular techniques for visualizing hierarchical data:
-
-**Node-link diagrams** show topology using discrete marks for nodes and links, such as a circle for each node and a line connecting each parent and child. The [“tidy” tree](#tree) is delightfully compact, while the [dendrogram](#cluster) places leaves at the same level. (These have both polar and Cartesian forms.) [Indented trees](https://observablehq.com/@d3/indented-tree) are useful for interactive browsing.
-
-**Adjacency diagrams** show topology through the relative placement of nodes. They may also encode a quantitative dimension in the area of each node, for example to show revenue or file size. The [“icicle” diagram](#partition) uses rectangles, while the “sunburst” uses annular segments.
-
-**Enclosure diagrams** also use an area encoding, but show topology through containment. A [treemap](#treemap) recursively subdivides area into rectangles. [Circle-packing](#pack) tightly nests circles; this is not as space-efficient as a treemap, but perhaps more readily shows topology.
-
-A good hierarchical visualization facilitates rapid multiscale inference: micro-observations of individual elements and macro-observations of large groups.
-
-## Installing
-
-If you use npm, `npm install d3-hierarchy`. You can also download the [latest release on GitHub](https://github.com/d3/d3-hierarchy/releases/latest). For vanilla HTML in modern browsers, import d3-hierarchy from Skypack:
-
-```html
-<script type="module">
-
-import {treemap} from "https://cdn.skypack.dev/d3-hierarchy@3";
-
-const tree = treemap();
-
-</script>
-```
-
-For legacy environments, you can load d3-hierarchy’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-hierarchy@3"></script>
-<script>
-
-const tree = d3.treemap();
-
-</script>
-```
-
-## API Reference
-
-* [Hierarchy](#hierarchy) ([Stratify](#stratify))
-* [Cluster](#cluster)
-* [Tree](#tree)
-* [Treemap](#treemap) ([Treemap Tiling](#treemap-tiling))
-* [Partition](#partition)
-* [Pack](#pack)
-
-### Hierarchy
-
-Before you can compute a hierarchical layout, you need a root node. If your data is already in a hierarchical format, such as JSON, you can pass it directly to [d3.hierarchy](#hierarchy); otherwise, you can rearrange tabular data, such as comma-separated values (CSV), into a hierarchy using [d3.stratify](#stratify).
-
-<a name="hierarchy" href="#hierarchy">#</a> d3.<b>hierarchy</b>(<i>data</i>[, <i>children</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/index.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Constructs a root node from the specified hierarchical *data*. The specified *data* must be an object representing the root node. For example:
-
-```json
-{
-  "name": "Eve",
-  "children": [
-    {
-      "name": "Cain"
-    },
-    {
-      "name": "Seth",
-      "children": [
-        {
-          "name": "Enos"
-        },
-        {
-          "name": "Noam"
-        }
-      ]
-    },
-    {
-      "name": "Abel"
-    },
-    {
-      "name": "Awan",
-      "children": [
-        {
-          "name": "Enoch"
-        }
-      ]
-    },
-    {
-      "name": "Azura"
-    }
-  ]
-}
-```
-
-The specified *children* accessor function is invoked for each datum, starting with the root *data*, and must return an iterable of data representing the children, if any. If the children accessor is not specified, it defaults to:
-
-```js
-function children(d) {
-  return d.children;
-}
-```
-
-If *data* is a Map, it is implicitly converted to the entry [undefined, *data*], and the children accessor instead defaults to:
-
-```js
-function children(d) {
-  return Array.isArray(d) ? d[1] : null;
-}
-```
-
-This allows you to pass the result of [d3.group](https://github.com/d3/d3-array/blob/main/README.md#group) or [d3.rollup](https://github.com/d3/d3-array/blob/main/README.md#rollup) to d3.hierarchy.
-
-The returned node and each descendant has the following properties:
-
-* *node*.data - the associated data, as specified to the [constructor](#hierarchy).
-* *node*.depth - zero for the root node, and increasing by one for each descendant generation.
-* *node*.height - zero for leaf nodes, and the greatest distance from any descendant leaf for internal nodes.
-* *node*.parent - the parent node, or null for the root node.
-* *node*.children - an array of child nodes, if any; undefined for leaf nodes.
-* *node*.value - the summed value of the node and its [descendants](#node_descendants); optional, see [*node*.sum](#node_sum) and [*node*.count](#node_count).
-
-This method can also be used to test if a node is an `instanceof d3.hierarchy` and to extend the node prototype.
-
-<a name="node_ancestors" href="#node_ancestors">#</a> <i>node</i>.<b>ancestors</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/ancestors.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Returns the array of ancestors nodes, starting with this node, then followed by each parent up to the root.
-
-<a name="node_descendants" href="#node_descendants">#</a> <i>node</i>.<b>descendants</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/descendants.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Returns the array of descendant nodes, starting with this node, then followed by each child in topological order.
-
-<a name="node_leaves" href="#node_leaves">#</a> <i>node</i>.<b>leaves</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/leaves.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Returns the array of leaf nodes in traversal order; leaves are nodes with no children.
-
-<a name="node_find" href="#node_find">#</a> <i>node</i>.<b>find</b>(<i>filter</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/find.js)<!-- , [Examples](https://observablehq.com/@d3/d3-hierarchy) -->
-
-Returns the first node in the hierarchy from this *node* for which the specified *filter* returns a truthy value. undefined if no such node is found.
-
-<a name="node_path" href="#node_path">#</a> <i>node</i>.<b>path</b>(<i>target</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/path.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Returns the shortest path through the hierarchy from this *node* to the specified *target* node. The path starts at this *node*, ascends to the least common ancestor of this *node* and the *target* node, and then descends to the *target* node. This is particularly useful for [hierarchical edge bundling](https://observablehq.com/@d3/hierarchical-edge-bundling).
-
-<a name="node_links" href="#node_links">#</a> <i>node</i>.<b>links</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/links.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Returns an array of links for this *node* and its descendants, where each *link* is an object that defines source and target properties. The source of each link is the parent node, and the target is a child node.
-
-<a name="node_sum" href="#node_sum">#</a> <i>node</i>.<b>sum</b>(<i>value</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/sum.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Evaluates the specified *value* function for this *node* and each descendant in [post-order traversal](#node_eachAfter), and returns this *node*. The *node*.value property of each node is set to the numeric value returned by the specified function plus the combined value of all children. The function is passed the node’s data, and must return a non-negative number. The *value* accessor is evaluated for *node* and every descendant, including internal nodes; if you only want leaf nodes to have internal value, then return zero for any node with children. [For example](https://observablehq.com/@d3/treemap-by-count), as an alternative to [*node*.count](#node_count):
-
-```js
-root.sum(function(d) { return d.value ? 1 : 0; });
-```
-
-You must call *node*.sum or [*node*.count](#node_count) before invoking a hierarchical layout that requires *node*.value, such as [d3.treemap](#treemap). Since the API supports [method chaining](https://en.wikipedia.org/wiki/Method_chaining), you can invoke *node*.sum and [*node*.sort](#node_sort) before computing the layout, and then subsequently generate an array of all [descendant nodes](#node_descendants) like so:
-
-```js
-var treemap = d3.treemap()
-    .size([width, height])
-    .padding(2);
-
-var nodes = treemap(root
-    .sum(function(d) { return d.value; })
-    .sort(function(a, b) { return b.height - a.height || b.value - a.value; }))
-  .descendants();
-```
-
-This example assumes that the node data has a value field.
-
-<a name="node_count" href="#node_count">#</a> <i>node</i>.<b>count</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/count.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Computes the number of leaves under this *node* and assigns it to *node*.value, and similarly for every descendant of *node*. If this *node* is a leaf, its count is one. Returns this *node*. See also [*node*.sum](#node_sum).
-
-<a name="node_sort" href="#node_sort">#</a> <i>node</i>.<b>sort</b>(<i>compare</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/sort.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Sorts the children of this *node*, if any, and each of this *node*’s descendants’ children, in [pre-order traversal](#node_eachBefore) using the specified *compare* function, and returns this *node*. The specified function is passed two nodes *a* and *b* to compare. If *a* should be before *b*, the function must return a value less than zero; if *b* should be before *a*, the function must return a value greater than zero; otherwise, the relative order of *a* and *b* are not specified. See [*array*.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) for more.
-
-Unlike [*node*.sum](#node_sum), the *compare* function is passed two [nodes](#hierarchy) rather than two nodes’ data. For example, if the data has a value property, this sorts nodes by the descending aggregate value of the node and all its descendants, as is recommended for [circle-packing](#pack):
-
-```js
-root
-    .sum(function(d) { return d.value; })
-    .sort(function(a, b) { return b.value - a.value; });
-``````
-
-Similarly, to sort nodes by descending height (greatest distance from any descendant leaf) and then descending value, as is recommended for [treemaps](#treemap) and [icicles](#partition):
-
-```js
-root
-    .sum(function(d) { return d.value; })
-    .sort(function(a, b) { return b.height - a.height || b.value - a.value; });
-```
-
-To sort nodes by descending height and then ascending id, as is recommended for [trees](#tree) and [dendrograms](#cluster):
-
-```js
-root
-    .sum(function(d) { return d.value; })
-    .sort(function(a, b) { return b.height - a.height || a.id.localeCompare(b.id); });
-```
-
-You must call *node*.sort before invoking a hierarchical layout if you want the new sort order to affect the layout; see [*node*.sum](#node_sum) for an example.
-
-<a name="node_iterator" href="#node_iterator">#</a> <i>node</i>\[<b>Symbol.iterator</b>\]() [<>](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/iterator.js "Source")
-
-Returns an iterator over the *node*’s descendants in breadth-first order. For example:
-
-```js
-for (const descendant of node) {
-  console.log(descendant);
-}
-```
-
-<a name="node_each" href="#node_each">#</a> <i>node</i>.<b>each</b>(<i>function</i>[, <i>that</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/each.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Invokes the specified *function* for *node* and each descendant in [breadth-first order](https://en.wikipedia.org/wiki/Breadth-first_search), such that a given *node* is only visited if all nodes of lesser depth have already been visited, as well as all preceding nodes of the same depth. The specified function is passed the current *descendant*, the zero-based traversal *index*, and this *node*. If *that* is specified, it is the this context of the callback.
-
-<a name="node_eachAfter" href="#node_eachAfter">#</a> <i>node</i>.<b>eachAfter</b>(<i>function</i>[, <i>that</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/eachAfter.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Invokes the specified *function* for *node* and each descendant in [post-order traversal](https://en.wikipedia.org/wiki/Tree_traversal#Post-order), such that a given *node* is only visited after all of its descendants have already been visited. The specified function is passed the current *descendant*, the zero-based traversal *index*, and this *node*. If *that* is specified, it is the this context of the callback.
-
-<a name="node_eachBefore" href="#node_eachBefore">#</a> <i>node</i>.<b>eachBefore</b>(<i>function</i>[, <i>that</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/eachBefore.js), [Examples](https://observablehq.com/@d3/visiting-a-d3-hierarchy)
-
-Invokes the specified *function* for *node* and each descendant in [pre-order traversal](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order), such that a given *node* is only visited after all of its ancestors have already been visited. The specified function is passed the current *descendant*, the zero-based traversal *index*, and this *node*. If *that* is specified, it is the this context of the callback.
-
-<a name="node_copy" href="#node_copy">#</a> <i>node</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/index.js), [Examples](https://observablehq.com/@d3/d3-hierarchy)
-
-Return a deep copy of the subtree starting at this *node*. (The returned deep copy shares the same data, however.) The returned node is the root of a new tree; the returned node’s parent is always null and its depth is always zero.
-
-#### Stratify
-
-Consider the following table of relationships:
-
-Name  | Parent
-------|--------
-Eve   |
-Cain  | Eve
-Seth  | Eve
-Enos  | Seth
-Noam  | Seth
-Abel  | Eve
-Awan  | Eve
-Enoch | Awan
-Azura | Eve
-
-These names are conveniently unique, so we can unambiguously represent the hierarchy as a CSV file:
-
-```
-name,parent
-Eve,
-Cain,Eve
-Seth,Eve
-Enos,Seth
-Noam,Seth
-Abel,Eve
-Awan,Eve
-Enoch,Awan
-Azura,Eve
-```
-
-To parse the CSV using [d3.csvParse](https://github.com/d3/d3-dsv#csvParse):
-
-```js
-var table = d3.csvParse(text);
-```
-
-This returns:
-
-```json
-[
-  {"name": "Eve",   "parent": ""},
-  {"name": "Cain",  "parent": "Eve"},
-  {"name": "Seth",  "parent": "Eve"},
-  {"name": "Enos",  "parent": "Seth"},
-  {"name": "Noam",  "parent": "Seth"},
-  {"name": "Abel",  "parent": "Eve"},
-  {"name": "Awan",  "parent": "Eve"},
-  {"name": "Enoch", "parent": "Awan"},
-  {"name": "Azura", "parent": "Eve"}
-]
-```
-
-To convert to a hierarchy:
-
-```js
-var root = d3.stratify()
-    .id(function(d) { return d.name; })
-    .parentId(function(d) { return d.parent; })
-    (table);
-```
-
-This returns:
-
-[<img alt="Stratify" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/stratify.png">](https://runkit.com/mbostock/56fed33d8630b01300f72daa)
-
-This hierarchy can now be passed to a hierarchical layout, such as [d3.tree](#_tree), for visualization.
-
-<a name="stratify" href="#stratify">#</a> d3.<b>stratify</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js), [Examples](https://observablehq.com/@d3/d3-stratify)
-
-Constructs a new stratify operator with the default settings.
-
-<a name="_stratify" href="#_stratify">#</a> <i>stratify</i>(<i>data</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js), [Examples](https://observablehq.com/@d3/d3-stratify)
-
-Generates a new hierarchy from the specified tabular *data*.
-
-<a name="stratify_id" href="#stratify_id">#</a> <i>stratify</i>.<b>id</b>([<i>id</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js), [Examples](https://observablehq.com/@d3/d3-stratify)
-
-If *id* is specified, sets the id accessor to the given function and returns this stratify operator. Otherwise, returns the current id accessor, which defaults to:
-
-```js
-function id(d) {
-  return d.id;
-}
-```
-
-The id accessor is invoked for each element in the input data passed to the [stratify operator](#_stratify), being passed the current datum (*d*) and the current index (*i*). The returned string is then used to identify the node’s relationships in conjunction with the [parent id](#stratify_parentId). For leaf nodes, the id may be undefined; otherwise, the id must be unique. (Null and the empty string are equivalent to undefined.)
-
-<a name="stratify_parentId" href="#stratify_parentId">#</a> <i>stratify</i>.<b>parentId</b>([<i>parentId</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js), [Examples](https://observablehq.com/@d3/d3-stratify)
-
-If *parentId* is specified, sets the parent id accessor to the given function and returns this stratify operator. Otherwise, returns the current parent id accessor, which defaults to:
-
-```js
-function parentId(d) {
-  return d.parentId;
-}
-```
-
-The parent id accessor is invoked for each element in the input data passed to the [stratify operator](#_stratify), being passed the current datum (*d*) and the current index (*i*). The returned string is then used to identify the node’s relationships in conjunction with the [id](#stratify_id). For the root node, the parent id should be undefined. (Null and the empty string are equivalent to undefined.) There must be exactly one root node in the input data, and no circular relationships.
-
-<a name="stratify_path" href="#stratify_path">#</a> <i>stratify</i>.<b>path</b>([<i>path</i>]) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js), [Examples](https://observablehq.com/@d3/d3-stratify)
-
-If *path* is specified, sets the path accessor to the given function and returns this stratify operator. Otherwise, returns the current path accessor, which defaults to undefined. If a path accessor is set, the id and parentId arguments are ignored, and a unix-like hierarchy is computed on the slash-delimited strings returned by the path accessor, imputing parent nodes and ids as necessary.
-
-```js
-d3.stratify().path(d => d)(["a/b", "a/c"]); // nodes with id "/a", "/a/b", "/a/c"
-```
-
-### Cluster
-
-[<img alt="Dendrogram" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/cluster.png">](https://observablehq.com/@d3/cluster-dendrogram)
-
-The **cluster layout** produces [dendrograms](http://en.wikipedia.org/wiki/Dendrogram): node-link diagrams that place leaf nodes of the tree at the same depth. Dendrograms are typically less compact than [tidy trees](#tree), but are useful when all the leaves should be at the same level, such as for hierarchical clustering or [phylogenetic tree diagrams](https://observablehq.com/@mbostock/tree-of-life).
-
-<a name="cluster" href="#cluster">#</a> d3.<b>cluster</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/cluster.js), [Examples](https://observablehq.com/@d3/cluster-dendrogram)
-
-Creates a new cluster layout with default settings.
-
-<a name="_cluster" href="#_cluster">#</a> <i>cluster</i>(<i>root</i>)
-
-Lays out the specified *root* [hierarchy](#hierarchy), assigning the following properties on *root* and its descendants:
-
-* *node*.x - the *x*-coordinate of the node
-* *node*.y - the *y*-coordinate of the node
-
-The coordinates *x* and *y* represent an arbitrary coordinate system; for example, you can treat *x* as an angle and *y* as a radius to produce a [radial layout](https://observablehq.com/@d3/radial-dendrogram). You may want to call [*root*.sort](#node_sort) before passing the hierarchy to the cluster layout.
-
-<a name="cluster_size" href="#cluster_size">#</a> <i>cluster</i>.<b>size</b>([<i>size</i>])
-
-If *size* is specified, sets this cluster layout’s size to the specified two-element array of numbers [*width*, *height*] and returns this cluster layout. If *size* is not specified, returns the current layout size, which defaults to [1, 1]. A layout size of null indicates that a [node size](#cluster_nodeSize) will be used instead. The coordinates *x* and *y* represent an arbitrary coordinate system; for example, to produce a [radial layout](https://observablehq.com/@d3/radial-dendrogram), a size of [360, *radius*] corresponds to a breadth of 360° and a depth of *radius*.
-
-<a name="cluster_nodeSize" href="#cluster_nodeSize">#</a> <i>cluster</i>.<b>nodeSize</b>([<i>size</i>])
-
-If *size* is specified, sets this cluster layout’s node size to the specified two-element array of numbers [*width*, *height*] and returns this cluster layout. If *size* is not specified, returns the current node size, which defaults to null. A node size of null indicates that a [layout size](#cluster_size) will be used instead. When a node size is specified, the root node is always positioned at ⟨0, 0⟩.
-
-<a name="cluster_separation" href="#cluster_separation">#</a> <i>cluster</i>.<b>separation</b>([<i>separation</i>])
-
-If *separation* is specified, sets the separation accessor to the specified function and returns this cluster layout. If *separation* is not specified, returns the current separation accessor, which defaults to:
-
-```js
-function separation(a, b) {
-  return a.parent == b.parent ? 1 : 2;
-}
-```
-
-The separation accessor is used to separate neighboring leaves. The separation function is passed two leaves *a* and *b*, and must return the desired separation. The nodes are typically siblings, though the nodes may be more distantly related if the layout decides to place such nodes adjacent.
-
-### Tree
-
-[<img alt="Tidy Tree" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/tree.png">](https://observablehq.com/@d3/tidy-tree)
-
-The **tree** layout produces tidy node-link diagrams of trees using the [Reingold–Tilford “tidy” algorithm](http://reingold.co/tidier-drawings.pdf), improved to run in linear time by [Buchheim *et al.*](http://dirk.jivas.de/papers/buchheim02improving.pdf) Tidy trees are typically more compact than [dendrograms](#cluster).
-
-<a name="tree" href="#tree">#</a> d3.<b>tree</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/tree.js), [Examples](https://observablehq.com/@d3/tidy-tree)
-
-Creates a new tree layout with default settings.
-
-<a name="_tree" href="#_tree">#</a> <i>tree</i>(<i>root</i>)
-
-Lays out the specified *root* [hierarchy](#hierarchy), assigning the following properties on *root* and its descendants:
-
-* *node*.x - the *x*-coordinate of the node
-* *node*.y - the *y*-coordinate of the node
-
-The coordinates *x* and *y* represent an arbitrary coordinate system; for example, you can treat *x* as an angle and *y* as a radius to produce a [radial layout](https://observablehq.com/@d3/radial-tidy-tree). You may want to call [*root*.sort](#node_sort) before passing the hierarchy to the tree layout.
-
-<a name="tree_size" href="#tree_size">#</a> <i>tree</i>.<b>size</b>([<i>size</i>])
-
-If *size* is specified, sets this tree layout’s size to the specified two-element array of numbers [*width*, *height*] and returns this tree layout. If *size* is not specified, returns the current layout size, which defaults to [1, 1]. A layout size of null indicates that a [node size](#tree_nodeSize) will be used instead. The coordinates *x* and *y* represent an arbitrary coordinate system; for example, to produce a [radial layout](https://observablehq.com/@d3/radial-tidy-tree), a size of [360, *radius*] corresponds to a breadth of 360° and a depth of *radius*.
-
-<a name="tree_nodeSize" href="#tree_nodeSize">#</a> <i>tree</i>.<b>nodeSize</b>([<i>size</i>])
-
-If *size* is specified, sets this tree layout’s node size to the specified two-element array of numbers [*width*, *height*] and returns this tree layout. If *size* is not specified, returns the current node size, which defaults to null. A node size of null indicates that a [layout size](#tree_size) will be used instead. When a node size is specified, the root node is always positioned at ⟨0, 0⟩.
-
-<a name="tree_separation" href="#tree_separation">#</a> <i>tree</i>.<b>separation</b>([<i>separation</i>])
-
-If *separation* is specified, sets the separation accessor to the specified function and returns this tree layout. If *separation* is not specified, returns the current separation accessor, which defaults to:
-
-```js
-function separation(a, b) {
-  return a.parent == b.parent ? 1 : 2;
-}
-```
-
-A variation that is more appropriate for radial layouts reduces the separation gap proportionally to the radius:
-
-```js
-function separation(a, b) {
-  return (a.parent == b.parent ? 1 : 2) / a.depth;
-}
-```
-
-The separation accessor is used to separate neighboring nodes. The separation function is passed two nodes *a* and *b*, and must return the desired separation. The nodes are typically siblings, though the nodes may be more distantly related if the layout decides to place such nodes adjacent.
-
-### Treemap
-
-[<img alt="Treemap" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/treemap.png">](https://observablehq.com/@d3/treemap)
-
-Introduced by [Ben Shneiderman](http://www.cs.umd.edu/hcil/treemap-history/) in 1991, a **treemap** recursively subdivides area into rectangles according to each node’s associated value. D3’s treemap implementation supports an extensible [tiling method](#treemap_tile): the default [squarified](#treemapSquarify) method seeks to generate rectangles with a [golden](https://en.wikipedia.org/wiki/Golden_ratio) aspect ratio; this offers better readability and size estimation than [slice-and-dice](#treemapSliceDice), which simply alternates between horizontal and vertical subdivision by depth.
-
-<a name="treemap" href="#treemap">#</a> d3.<b>treemap</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/index.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Creates a new treemap layout with default settings.
-
-<a name="_treemap" href="#_treemap">#</a> <i>treemap</i>(<i>root</i>)
-
-Lays out the specified *root* [hierarchy](#hierarchy), assigning the following properties on *root* and its descendants:
-
-* *node*.x0 - the left edge of the rectangle
-* *node*.y0 - the top edge of the rectangle
-* *node*.x1 - the right edge of the rectangle
-* *node*.y1 - the bottom edge of the rectangle
-
-You must call [*root*.sum](#node_sum) before passing the hierarchy to the treemap layout. You probably also want to call [*root*.sort](#node_sort) to order the hierarchy before computing the layout.
-
-<a name="treemap_tile" href="#treemap_tile">#</a> <i>treemap</i>.<b>tile</b>([<i>tile</i>])
-
-If *tile* is specified, sets the [tiling method](#treemap-tiling) to the specified function and returns this treemap layout. If *tile* is not specified, returns the current tiling method, which defaults to [d3.treemapSquarify](#treemapSquarify) with the golden ratio.
-
-<a name="treemap_size" href="#treemap_size">#</a> <i>treemap</i>.<b>size</b>([<i>size</i>])
-
-If *size* is specified, sets this treemap layout’s size to the specified two-element array of numbers [*width*, *height*] and returns this treemap layout. If *size* is not specified, returns the current size, which defaults to [1, 1].
-
-<a name="treemap_round" href="#treemap_round">#</a> <i>treemap</i>.<b>round</b>([<i>round</i>])
-
-If *round* is specified, enables or disables rounding according to the given boolean and returns this treemap layout. If *round* is not specified, returns the current rounding state, which defaults to false.
-
-<a name="treemap_padding" href="#treemap_padding">#</a> <i>treemap</i>.<b>padding</b>([<i>padding</i>])
-
-If *padding* is specified, sets the [inner](#treemap_paddingInner) and [outer](#treemap_paddingOuter) padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current inner padding function.
-
-<a name="treemap_paddingInner" href="#treemap_paddingInner">#</a> <i>treemap</i>.<b>paddingInner</b>([<i>padding</i>])
-
-If *padding* is specified, sets the inner padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current inner padding function, which defaults to the constant zero. If *padding* is a function, it is invoked for each node with children, being passed the current node. The inner padding is used to separate a node’s adjacent children.
-
-<a name="treemap_paddingOuter" href="#treemap_paddingOuter">#</a> <i>treemap</i>.<b>paddingOuter</b>([<i>padding</i>])
-
-If *padding* is specified, sets the [top](#treemap_paddingTop), [right](#treemap_paddingRight), [bottom](#treemap_paddingBottom) and [left](#treemap_paddingLeft) padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current top padding function.
-
-<a name="treemap_paddingTop" href="#treemap_paddingTop">#</a> <i>treemap</i>.<b>paddingTop</b>([<i>padding</i>])
-
-If *padding* is specified, sets the top padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current top padding function, which defaults to the constant zero. If *padding* is a function, it is invoked for each node with children, being passed the current node. The top padding is used to separate the top edge of a node from its children.
-
-<a name="treemap_paddingRight" href="#treemap_paddingRight">#</a> <i>treemap</i>.<b>paddingRight</b>([<i>padding</i>])
-
-If *padding* is specified, sets the right padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current right padding function, which defaults to the constant zero. If *padding* is a function, it is invoked for each node with children, being passed the current node. The right padding is used to separate the right edge of a node from its children.
-
-<a name="treemap_paddingBottom" href="#treemap_paddingBottom">#</a> <i>treemap</i>.<b>paddingBottom</b>([<i>padding</i>])
-
-If *padding* is specified, sets the bottom padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current bottom padding function, which defaults to the constant zero. If *padding* is a function, it is invoked for each node with children, being passed the current node. The bottom padding is used to separate the bottom edge of a node from its children.
-
-<a name="treemap_paddingLeft" href="#treemap_paddingLeft">#</a> <i>treemap</i>.<b>paddingLeft</b>([<i>padding</i>])
-
-If *padding* is specified, sets the left padding to the specified number or function and returns this treemap layout. If *padding* is not specified, returns the current left padding function, which defaults to the constant zero. If *padding* is a function, it is invoked for each node with children, being passed the current node. The left padding is used to separate the left edge of a node from its children.
-
-#### Treemap Tiling
-
-Several built-in tiling methods are provided for use with [*treemap*.tile](#treemap_tile).
-
-<a name="treemapBinary" href="#treemapBinary">#</a> d3.<b>treemapBinary</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/binary.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Recursively partitions the specified *nodes* into an approximately-balanced binary tree, choosing horizontal partitioning for wide rectangles and vertical partitioning for tall rectangles.
-
-<a name="treemapDice" href="#treemapDice">#</a> d3.<b>treemapDice</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/dice.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Divides the rectangular area specified by *x0*, *y0*, *x1*, *y1* horizontally according the value of each of the specified *node*’s children. The children are positioned in order, starting with the left edge (*x0*) of the given rectangle. If the sum of the children’s values is less than the specified *node*’s value (*i.e.*, if the specified *node* has a non-zero internal value), the remaining empty space will be positioned on the right edge (*x1*) of the given rectangle.
-
-<a name="treemapSlice" href="#treemapSlice">#</a> d3.<b>treemapSlice</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/slice.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Divides the rectangular area specified by *x0*, *y0*, *x1*, *y1* vertically according the value of each of the specified *node*’s children. The children are positioned in order, starting with the top edge (*y0*) of the given rectangle. If the sum of the children’s values is less than the specified *node*’s value (*i.e.*, if the specified *node* has a non-zero internal value), the remaining empty space will be positioned on the bottom edge (*y1*) of the given rectangle.
-
-<a name="treemapSliceDice" href="#treemapSliceDice">#</a> d3.<b>treemapSliceDice</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/sliceDice.js), [Examples](https://observablehq.com/@d3/treemap)
-
-If the specified *node* has odd depth, delegates to [treemapSlice](#treemapSlice); otherwise delegates to [treemapDice](#treemapDice).
-
-<a name="treemapSquarify" href="#treemapSquarify">#</a> d3.<b>treemapSquarify</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/squarify.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Implements the [squarified treemap](https://www.win.tue.nl/~vanwijk/stm.pdf) algorithm by Bruls *et al.*, which seeks to produce rectangles of a given [aspect ratio](#squarify_ratio).
-
-<a name="treemapResquarify" href="#treemapResquarify">#</a> d3.<b>treemapResquarify</b>(<i>node</i>, <i>x0</i>, <i>y0</i>, <i>x1</i>, <i>y1</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/resquarify.js), [Examples](https://observablehq.com/@d3/animated-treemap)
-
-Like [d3.treemapSquarify](#treemapSquarify), except preserves the topology (node adjacencies) of the previous layout computed by d3.treemapResquarify, if there is one and it used the same [target aspect ratio](#squarify_ratio). This tiling method is good for animating changes to treemaps because it only changes node sizes and not their relative positions, thus avoiding distracting shuffling and occlusion. The downside of a stable update, however, is a suboptimal layout for subsequent updates: only the first layout uses the Bruls *et al.* squarified algorithm.
-
-<a name="squarify_ratio" href="#squarify_ratio">#</a> <i>squarify</i>.<b>ratio</b>(<i>ratio</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/treemap/squarify.js), [Examples](https://observablehq.com/@d3/treemap)
-
-Specifies the desired aspect ratio of the generated rectangles. The *ratio* must be specified as a number greater than or equal to one. Note that the orientation of the generated rectangles (tall or wide) is not implied by the ratio; for example, a ratio of two will attempt to produce a mixture of rectangles whose *width*:*height* ratio is either 2:1 or 1:2. (However, you can approximately achieve this result by generating a square treemap at different dimensions, and then [stretching the treemap](https://observablehq.com/@d3/stretched-treemap) to the desired aspect ratio.) Furthermore, the specified *ratio* is merely a hint to the tiling algorithm; the rectangles are not guaranteed to have the specified aspect ratio. If not specified, the aspect ratio defaults to the golden ratio, φ = (1 + sqrt(5)) / 2, per [Kong *et al.*](http://vis.stanford.edu/papers/perception-treemaps)
-
-### Partition
-
-[<img alt="Partition" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/partition.png">](https://observablehq.com/@d3/icicle)
-
-The **partition layout** produces adjacency diagrams: a space-filling variant of a node-link tree diagram. Rather than drawing a link between parent and child in the hierarchy, nodes are drawn as solid areas (either arcs or rectangles), and their placement relative to other nodes reveals their position in the hierarchy. The size of the nodes encodes a quantitative dimension that would be difficult to show in a node-link diagram.
-
-<a name="partition" href="#partition">#</a> d3.<b>partition</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/partition.js), [Examples](https://observablehq.com/@d3/icicle)
-
-Creates a new partition layout with the default settings.
-
-<a name="_partition" href="#_partition">#</a> <i>partition</i>(<i>root</i>)
-
-Lays out the specified *root* [hierarchy](#hierarchy), assigning the following properties on *root* and its descendants:
-
-* *node*.x0 - the left edge of the rectangle
-* *node*.y0 - the top edge of the rectangle
-* *node*.x1 - the right edge of the rectangle
-* *node*.y1 - the bottom edge of the rectangle
-
-You must call [*root*.sum](#node_sum) before passing the hierarchy to the partition layout. You probably also want to call [*root*.sort](#node_sort) to order the hierarchy before computing the layout.
-
-<a name="partition_size" href="#partition_size">#</a> <i>partition</i>.<b>size</b>([<i>size</i>])
-
-If *size* is specified, sets this partition layout’s size to the specified two-element array of numbers [*width*, *height*] and returns this partition layout. If *size* is not specified, returns the current size, which defaults to [1, 1].
-
-<a name="partition_round" href="#partition_round">#</a> <i>partition</i>.<b>round</b>([<i>round</i>])
-
-If *round* is specified, enables or disables rounding according to the given boolean and returns this partition layout. If *round* is not specified, returns the current rounding state, which defaults to false.
-
-<a name="partition_padding" href="#partition_padding">#</a> <i>partition</i>.<b>padding</b>([<i>padding</i>])
-
-If *padding* is specified, sets the padding to the specified number and returns this partition layout. If *padding* is not specified, returns the current padding, which defaults to zero. The padding is used to separate a node’s adjacent children.
-
-### Pack
-
-[<img alt="Circle-Packing" src="https://raw.githubusercontent.com/d3/d3-hierarchy/main/img/pack.png">](https://observablehq.com/@d3/circle-packing)
-
-Enclosure diagrams use containment (nesting) to represent a hierarchy. The size of the leaf circles encodes a quantitative dimension of the data. The enclosing circles show the approximate cumulative size of each subtree, but due to wasted space there is some distortion; only the leaf nodes can be compared accurately. Although [circle packing](http://en.wikipedia.org/wiki/Circle_packing) does not use space as efficiently as a [treemap](#treemap), the “wasted” space more prominently reveals the hierarchical structure.
-
-<a name="pack" href="#pack">#</a> d3.<b>pack</b>() · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/pack/index.js), [Examples](https://observablehq.com/@d3/circle-packing)
-
-Creates a new pack layout with the default settings.
-
-<a name="_pack" href="#_pack">#</a> <i>pack</i>(<i>root</i>)
-
-Lays out the specified *root* [hierarchy](#hierarchy), assigning the following properties on *root* and its descendants:
-
-* *node*.x - the *x*-coordinate of the circle’s center
-* *node*.y - the *y*-coordinate of the circle’s center
-* *node*.r - the radius of the circle
-
-You must call [*root*.sum](#node_sum) before passing the hierarchy to the pack layout. You probably also want to call [*root*.sort](#node_sort) to order the hierarchy before computing the layout.
-
-<a name="pack_radius" href="#pack_radius">#</a> <i>pack</i>.<b>radius</b>([<i>radius</i>])
-
-If *radius* is specified, sets the pack layout’s radius accessor to the specified function and returns this pack layout. If *radius* is not specified, returns the current radius accessor, which defaults to null. If the radius accessor is null, the radius of each leaf circle is derived from the leaf *node*.value (computed by [*node*.sum](#node_sum)); the radii are then scaled proportionally to fit the [layout size](#pack_size). If the radius accessor is not null, the radius of each leaf circle is specified exactly by the function.
-
-<a name="pack_size" href="#pack_size">#</a> <i>pack</i>.<b>size</b>([<i>size</i>])
-
-If *size* is specified, sets this pack layout’s size to the specified two-element array of numbers [*width*, *height*] and returns this pack layout. If *size* is not specified, returns the current size, which defaults to [1, 1].
-
-<a name="pack_padding" href="#pack_padding">#</a> <i>pack</i>.<b>padding</b>([<i>padding</i>])
-
-If *padding* is specified, sets this pack layout’s padding accessor to the specified number or function and returns this pack layout. If *padding* is not specified, returns the current padding accessor, which defaults to the constant zero. When siblings are packed, tangent siblings will be separated by approximately the specified padding; the enclosing parent circle will also be separated from its children by approximately the specified padding. If an [explicit radius](#pack_radius) is not specified, the padding is approximate because a two-pass algorithm is needed to fit within the [layout size](#pack_size): the circles are first packed without padding; a scaling factor is computed and applied to the specified padding; and lastly the circles are re-packed with padding.
-
-<a name="packSiblings" href="#packSiblings">#</a> d3.<b>packSiblings</b>(<i>circles</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/pack/siblings.js)
-
-Packs the specified array of *circles*, each of which must have a *circle*.r property specifying the circle’s radius. Assigns the following properties to each circle:
-
-* *circle*.x - the *x*-coordinate of the circle’s center
-* *circle*.y - the *y*-coordinate of the circle’s center
-
-The circles are positioned according to the front-chain packing algorithm by [Wang *et al.*](https://dl.acm.org/citation.cfm?id=1124851)
-
-<a name="packEnclose" href="#packEnclose">#</a> d3.<b>packEnclose</b>(<i>circles</i>) · [Source](https://github.com/d3/d3-hierarchy/blob/main/src/pack/enclose.js), [Examples](https://observablehq.com/@d3/d3-packenclose)
-
-Computes the [smallest circle](https://en.wikipedia.org/wiki/Smallest-circle_problem) that encloses the specified array of *circles*, each of which must have a *circle*.r property specifying the circle’s radius, and *circle*.x and *circle*.y properties specifying the circle’s center. The enclosing circle is computed using the [Matoušek-Sharir-Welzl algorithm](http://www.inf.ethz.ch/personal/emo/PublFiles/SubexLinProg_ALG16_96.pdf). (See also [Apollonius’ Problem](https://bl.ocks.org/mbostock/751fdd637f4bc2e3f08b).)
Index: de_modules/d3-hierarchy/dist/d3-hierarchy.js
===================================================================
--- node_modules/d3-hierarchy/dist/d3-hierarchy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1410 +1,0 @@
-// https://d3js.org/d3-hierarchy/ v3.1.2 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-function defaultSeparation$1(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-function meanX(children) {
-  return children.reduce(meanXReduce, 0) / children.length;
-}
-
-function meanXReduce(x, c) {
-  return x + c.x;
-}
-
-function maxY(children) {
-  return 1 + children.reduce(maxYReduce, 0);
-}
-
-function maxYReduce(y, c) {
-  return Math.max(y, c.y);
-}
-
-function leafLeft(node) {
-  var children;
-  while (children = node.children) node = children[0];
-  return node;
-}
-
-function leafRight(node) {
-  var children;
-  while (children = node.children) node = children[children.length - 1];
-  return node;
-}
-
-function cluster() {
-  var separation = defaultSeparation$1,
-      dx = 1,
-      dy = 1,
-      nodeSize = false;
-
-  function cluster(root) {
-    var previousNode,
-        x = 0;
-
-    // First walk, computing the initial x & y values.
-    root.eachAfter(function(node) {
-      var children = node.children;
-      if (children) {
-        node.x = meanX(children);
-        node.y = maxY(children);
-      } else {
-        node.x = previousNode ? x += separation(node, previousNode) : 0;
-        node.y = 0;
-        previousNode = node;
-      }
-    });
-
-    var left = leafLeft(root),
-        right = leafRight(root),
-        x0 = left.x - separation(left, right) / 2,
-        x1 = right.x + separation(right, left) / 2;
-
-    // Second walk, normalizing x & y to the desired size.
-    return root.eachAfter(nodeSize ? function(node) {
-      node.x = (node.x - root.x) * dx;
-      node.y = (root.y - node.y) * dy;
-    } : function(node) {
-      node.x = (node.x - x0) / (x1 - x0) * dx;
-      node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
-    });
-  }
-
-  cluster.separation = function(x) {
-    return arguments.length ? (separation = x, cluster) : separation;
-  };
-
-  cluster.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
-  };
-
-  cluster.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return cluster;
-}
-
-function count(node) {
-  var sum = 0,
-      children = node.children,
-      i = children && children.length;
-  if (!i) sum = 1;
-  else while (--i >= 0) sum += children[i].value;
-  node.value = sum;
-}
-
-function node_count() {
-  return this.eachAfter(count);
-}
-
-function node_each(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
-
-function node_eachBefore(callback, that) {
-  var node = this, nodes = [node], children, i, index = -1;
-  while (node = nodes.pop()) {
-    callback.call(that, node, ++index, this);
-    if (children = node.children) {
-      for (i = children.length - 1; i >= 0; --i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  return this;
-}
-
-function node_eachAfter(callback, that) {
-  var node = this, nodes = [node], next = [], children, i, n, index = -1;
-  while (node = nodes.pop()) {
-    next.push(node);
-    if (children = node.children) {
-      for (i = 0, n = children.length; i < n; ++i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  while (node = next.pop()) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
-
-function node_find(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    if (callback.call(that, node, ++index, this)) {
-      return node;
-    }
-  }
-}
-
-function node_sum(value) {
-  return this.eachAfter(function(node) {
-    var sum = +value(node.data) || 0,
-        children = node.children,
-        i = children && children.length;
-    while (--i >= 0) sum += children[i].value;
-    node.value = sum;
-  });
-}
-
-function node_sort(compare) {
-  return this.eachBefore(function(node) {
-    if (node.children) {
-      node.children.sort(compare);
-    }
-  });
-}
-
-function node_path(end) {
-  var start = this,
-      ancestor = leastCommonAncestor(start, end),
-      nodes = [start];
-  while (start !== ancestor) {
-    start = start.parent;
-    nodes.push(start);
-  }
-  var k = nodes.length;
-  while (end !== ancestor) {
-    nodes.splice(k, 0, end);
-    end = end.parent;
-  }
-  return nodes;
-}
-
-function leastCommonAncestor(a, b) {
-  if (a === b) return a;
-  var aNodes = a.ancestors(),
-      bNodes = b.ancestors(),
-      c = null;
-  a = aNodes.pop();
-  b = bNodes.pop();
-  while (a === b) {
-    c = a;
-    a = aNodes.pop();
-    b = bNodes.pop();
-  }
-  return c;
-}
-
-function node_ancestors() {
-  var node = this, nodes = [node];
-  while (node = node.parent) {
-    nodes.push(node);
-  }
-  return nodes;
-}
-
-function node_descendants() {
-  return Array.from(this);
-}
-
-function node_leaves() {
-  var leaves = [];
-  this.eachBefore(function(node) {
-    if (!node.children) {
-      leaves.push(node);
-    }
-  });
-  return leaves;
-}
-
-function node_links() {
-  var root = this, links = [];
-  root.each(function(node) {
-    if (node !== root) { // Don’t include the root’s parent, if any.
-      links.push({source: node.parent, target: node});
-    }
-  });
-  return links;
-}
-
-function* node_iterator() {
-  var node = this, current, next = [node], children, i, n;
-  do {
-    current = next.reverse(), next = [];
-    while (node = current.pop()) {
-      yield node;
-      if (children = node.children) {
-        for (i = 0, n = children.length; i < n; ++i) {
-          next.push(children[i]);
-        }
-      }
-    }
-  } while (next.length);
-}
-
-function hierarchy(data, children) {
-  if (data instanceof Map) {
-    data = [undefined, data];
-    if (children === undefined) children = mapChildren;
-  } else if (children === undefined) {
-    children = objectChildren;
-  }
-
-  var root = new Node$1(data),
-      node,
-      nodes = [root],
-      child,
-      childs,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {
-      node.children = childs;
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = childs[i] = new Node$1(childs[i]));
-        child.parent = node;
-        child.depth = node.depth + 1;
-      }
-    }
-  }
-
-  return root.eachBefore(computeHeight);
-}
-
-function node_copy() {
-  return hierarchy(this).eachBefore(copyData);
-}
-
-function objectChildren(d) {
-  return d.children;
-}
-
-function mapChildren(d) {
-  return Array.isArray(d) ? d[1] : null;
-}
-
-function copyData(node) {
-  if (node.data.value !== undefined) node.value = node.data.value;
-  node.data = node.data.data;
-}
-
-function computeHeight(node) {
-  var height = 0;
-  do node.height = height;
-  while ((node = node.parent) && (node.height < ++height));
-}
-
-function Node$1(data) {
-  this.data = data;
-  this.depth =
-  this.height = 0;
-  this.parent = null;
-}
-
-Node$1.prototype = hierarchy.prototype = {
-  constructor: Node$1,
-  count: node_count,
-  each: node_each,
-  eachAfter: node_eachAfter,
-  eachBefore: node_eachBefore,
-  find: node_find,
-  sum: node_sum,
-  sort: node_sort,
-  path: node_path,
-  ancestors: node_ancestors,
-  descendants: node_descendants,
-  leaves: node_leaves,
-  links: node_links,
-  copy: node_copy,
-  [Symbol.iterator]: node_iterator
-};
-
-function optional(f) {
-  return f == null ? null : required(f);
-}
-
-function required(f) {
-  if (typeof f !== "function") throw new Error;
-  return f;
-}
-
-function constantZero() {
-  return 0;
-}
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a = 1664525;
-const c = 1013904223;
-const m = 4294967296; // 2^32
-
-function lcg() {
-  let s = 1;
-  return () => (s = (a * s + c) % m) / m;
-}
-
-function array(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
-
-function shuffle(array, random) {
-  let m = array.length,
-      t,
-      i;
-
-  while (m) {
-    i = random() * m-- | 0;
-    t = array[m];
-    array[m] = array[i];
-    array[i] = t;
-  }
-
-  return array;
-}
-
-function enclose(circles) {
-  return packEncloseRandom(circles, lcg());
-}
-
-function packEncloseRandom(circles, random) {
-  var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e;
-
-  while (i < n) {
-    p = circles[i];
-    if (e && enclosesWeak(e, p)) ++i;
-    else e = encloseBasis(B = extendBasis(B, p)), i = 0;
-  }
-
-  return e;
-}
-
-function extendBasis(B, p) {
-  var i, j;
-
-  if (enclosesWeakAll(p, B)) return [p];
-
-  // If we get here then B must have at least one element.
-  for (i = 0; i < B.length; ++i) {
-    if (enclosesNot(p, B[i])
-        && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
-      return [B[i], p];
-    }
-  }
-
-  // If we get here then B must have at least two elements.
-  for (i = 0; i < B.length - 1; ++i) {
-    for (j = i + 1; j < B.length; ++j) {
-      if (enclosesNot(encloseBasis2(B[i], B[j]), p)
-          && enclosesNot(encloseBasis2(B[i], p), B[j])
-          && enclosesNot(encloseBasis2(B[j], p), B[i])
-          && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
-        return [B[i], B[j], p];
-      }
-    }
-  }
-
-  // If we get here then something is very wrong.
-  throw new Error;
-}
-
-function enclosesNot(a, b) {
-  var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
-  return dr < 0 || dr * dr < dx * dx + dy * dy;
-}
-
-function enclosesWeak(a, b) {
-  var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function enclosesWeakAll(a, B) {
-  for (var i = 0; i < B.length; ++i) {
-    if (!enclosesWeak(a, B[i])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function encloseBasis(B) {
-  switch (B.length) {
-    case 1: return encloseBasis1(B[0]);
-    case 2: return encloseBasis2(B[0], B[1]);
-    case 3: return encloseBasis3(B[0], B[1], B[2]);
-  }
-}
-
-function encloseBasis1(a) {
-  return {
-    x: a.x,
-    y: a.y,
-    r: a.r
-  };
-}
-
-function encloseBasis2(a, b) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
-      l = Math.sqrt(x21 * x21 + y21 * y21);
-  return {
-    x: (x1 + x2 + x21 / l * r21) / 2,
-    y: (y1 + y2 + y21 / l * r21) / 2,
-    r: (l + r1 + r2) / 2
-  };
-}
-
-function encloseBasis3(a, b, c) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x3 = c.x, y3 = c.y, r3 = c.r,
-      a2 = x1 - x2,
-      a3 = x1 - x3,
-      b2 = y1 - y2,
-      b3 = y1 - y3,
-      c2 = r2 - r1,
-      c3 = r3 - r1,
-      d1 = x1 * x1 + y1 * y1 - r1 * r1,
-      d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
-      d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
-      ab = a3 * b2 - a2 * b3,
-      xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
-      xb = (b3 * c2 - b2 * c3) / ab,
-      ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
-      yb = (a2 * c3 - a3 * c2) / ab,
-      A = xb * xb + yb * yb - 1,
-      B = 2 * (r1 + xa * xb + ya * yb),
-      C = xa * xa + ya * ya - r1 * r1,
-      r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
-  return {
-    x: x1 + xa + xb * r,
-    y: y1 + ya + yb * r,
-    r: r
-  };
-}
-
-function place(b, a, c) {
-  var dx = b.x - a.x, x, a2,
-      dy = b.y - a.y, y, b2,
-      d2 = dx * dx + dy * dy;
-  if (d2) {
-    a2 = a.r + c.r, a2 *= a2;
-    b2 = b.r + c.r, b2 *= b2;
-    if (a2 > b2) {
-      x = (d2 + b2 - a2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
-      c.x = b.x - x * dx - y * dy;
-      c.y = b.y - x * dy + y * dx;
-    } else {
-      x = (d2 + a2 - b2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
-      c.x = a.x + x * dx - y * dy;
-      c.y = a.y + x * dy + y * dx;
-    }
-  } else {
-    c.x = a.x + c.r;
-    c.y = a.y;
-  }
-}
-
-function intersects(a, b) {
-  var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function score(node) {
-  var a = node._,
-      b = node.next._,
-      ab = a.r + b.r,
-      dx = (a.x * b.r + b.x * a.r) / ab,
-      dy = (a.y * b.r + b.y * a.r) / ab;
-  return dx * dx + dy * dy;
-}
-
-function Node(circle) {
-  this._ = circle;
-  this.next = null;
-  this.previous = null;
-}
-
-function packSiblingsRandom(circles, random) {
-  if (!(n = (circles = array(circles)).length)) return 0;
-
-  var a, b, c, n, aa, ca, i, j, k, sj, sk;
-
-  // Place the first circle.
-  a = circles[0], a.x = 0, a.y = 0;
-  if (!(n > 1)) return a.r;
-
-  // Place the second circle.
-  b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
-  if (!(n > 2)) return a.r + b.r;
-
-  // Place the third circle.
-  place(b, a, c = circles[2]);
-
-  // Initialize the front-chain using the first three circles a, b and c.
-  a = new Node(a), b = new Node(b), c = new Node(c);
-  a.next = c.previous = b;
-  b.next = a.previous = c;
-  c.next = b.previous = a;
-
-  // Attempt to place each remaining circle…
-  pack: for (i = 3; i < n; ++i) {
-    place(a._, b._, c = circles[i]), c = new Node(c);
-
-    // Find the closest intersecting circle on the front-chain, if any.
-    // “Closeness” is determined by linear distance along the front-chain.
-    // “Ahead” or “behind” is likewise determined by linear distance.
-    j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
-    do {
-      if (sj <= sk) {
-        if (intersects(j._, c._)) {
-          b = j, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sj += j._.r, j = j.next;
-      } else {
-        if (intersects(k._, c._)) {
-          a = k, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sk += k._.r, k = k.previous;
-      }
-    } while (j !== k.next);
-
-    // Success! Insert the new circle c between a and b.
-    c.previous = a, c.next = b, a.next = b.previous = b = c;
-
-    // Compute the new closest circle pair to the centroid.
-    aa = score(a);
-    while ((c = c.next) !== b) {
-      if ((ca = score(c)) < aa) {
-        a = c, aa = ca;
-      }
-    }
-    b = a.next;
-  }
-
-  // Compute the enclosing circle of the front chain.
-  a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random);
-
-  // Translate the circles to put the enclosing circle around the origin.
-  for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
-
-  return c.r;
-}
-
-function siblings(circles) {
-  packSiblingsRandom(circles, lcg());
-  return circles;
-}
-
-function defaultRadius(d) {
-  return Math.sqrt(d.value);
-}
-
-function index$1() {
-  var radius = null,
-      dx = 1,
-      dy = 1,
-      padding = constantZero;
-
-  function pack(root) {
-    const random = lcg();
-    root.x = dx / 2, root.y = dy / 2;
-    if (radius) {
-      root.eachBefore(radiusLeaf(radius))
-          .eachAfter(packChildrenRandom(padding, 0.5, random))
-          .eachBefore(translateChild(1));
-    } else {
-      root.eachBefore(radiusLeaf(defaultRadius))
-          .eachAfter(packChildrenRandom(constantZero, 1, random))
-          .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random))
-          .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
-    }
-    return root;
-  }
-
-  pack.radius = function(x) {
-    return arguments.length ? (radius = optional(x), pack) : radius;
-  };
-
-  pack.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
-  };
-
-  pack.padding = function(x) {
-    return arguments.length ? (padding = typeof x === "function" ? x : constant(+x), pack) : padding;
-  };
-
-  return pack;
-}
-
-function radiusLeaf(radius) {
-  return function(node) {
-    if (!node.children) {
-      node.r = Math.max(0, +radius(node) || 0);
-    }
-  };
-}
-
-function packChildrenRandom(padding, k, random) {
-  return function(node) {
-    if (children = node.children) {
-      var children,
-          i,
-          n = children.length,
-          r = padding(node) * k || 0,
-          e;
-
-      if (r) for (i = 0; i < n; ++i) children[i].r += r;
-      e = packSiblingsRandom(children, random);
-      if (r) for (i = 0; i < n; ++i) children[i].r -= r;
-      node.r = e + r;
-    }
-  };
-}
-
-function translateChild(k) {
-  return function(node) {
-    var parent = node.parent;
-    node.r *= k;
-    if (parent) {
-      node.x = parent.x + k * node.x;
-      node.y = parent.y + k * node.y;
-    }
-  };
-}
-
-function roundNode(node) {
-  node.x0 = Math.round(node.x0);
-  node.y0 = Math.round(node.y0);
-  node.x1 = Math.round(node.x1);
-  node.y1 = Math.round(node.y1);
-}
-
-function treemapDice(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (x1 - x0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.y0 = y0, node.y1 = y1;
-    node.x0 = x0, node.x1 = x0 += node.value * k;
-  }
-}
-
-function partition() {
-  var dx = 1,
-      dy = 1,
-      padding = 0,
-      round = false;
-
-  function partition(root) {
-    var n = root.height + 1;
-    root.x0 =
-    root.y0 = padding;
-    root.x1 = dx;
-    root.y1 = dy / n;
-    root.eachBefore(positionNode(dy, n));
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(dy, n) {
-    return function(node) {
-      if (node.children) {
-        treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
-      }
-      var x0 = node.x0,
-          y0 = node.y0,
-          x1 = node.x1 - padding,
-          y1 = node.y1 - padding;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      node.x0 = x0;
-      node.y0 = y0;
-      node.x1 = x1;
-      node.y1 = y1;
-    };
-  }
-
-  partition.round = function(x) {
-    return arguments.length ? (round = !!x, partition) : round;
-  };
-
-  partition.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
-  };
-
-  partition.padding = function(x) {
-    return arguments.length ? (padding = +x, partition) : padding;
-  };
-
-  return partition;
-}
-
-var preroot = {depth: -1},
-    ambiguous = {},
-    imputed = {};
-
-function defaultId(d) {
-  return d.id;
-}
-
-function defaultParentId(d) {
-  return d.parentId;
-}
-
-function stratify() {
-  var id = defaultId,
-      parentId = defaultParentId,
-      path;
-
-  function stratify(data) {
-    var nodes = Array.from(data),
-        currentId = id,
-        currentParentId = parentId,
-        n,
-        d,
-        i,
-        root,
-        parent,
-        node,
-        nodeId,
-        nodeKey,
-        nodeByKey = new Map;
-
-    if (path != null) {
-      const I = nodes.map((d, i) => normalize(path(d, i, data)));
-      const P = I.map(parentof);
-      const S = new Set(I).add("");
-      for (const i of P) {
-        if (!S.has(i)) {
-          S.add(i);
-          I.push(i);
-          P.push(parentof(i));
-          nodes.push(imputed);
-        }
-      }
-      currentId = (_, i) => I[i];
-      currentParentId = (_, i) => P[i];
-    }
-
-    for (i = 0, n = nodes.length; i < n; ++i) {
-      d = nodes[i], node = nodes[i] = new Node$1(d);
-      if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) {
-        nodeKey = node.id = nodeId;
-        nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);
-      }
-      if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) {
-        node.parent = nodeId;
-      }
-    }
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i];
-      if (nodeId = node.parent) {
-        parent = nodeByKey.get(nodeId);
-        if (!parent) throw new Error("missing: " + nodeId);
-        if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
-        if (parent.children) parent.children.push(node);
-        else parent.children = [node];
-        node.parent = parent;
-      } else {
-        if (root) throw new Error("multiple roots");
-        root = node;
-      }
-    }
-
-    if (!root) throw new Error("no root");
-
-    // When imputing internal nodes, only introduce roots if needed.
-    // Then replace the imputed marker data with null.
-    if (path != null) {
-      while (root.data === imputed && root.children.length === 1) {
-        root = root.children[0], --n;
-      }
-      for (let i = nodes.length - 1; i >= 0; --i) {
-        node = nodes[i];
-        if (node.data !== imputed) break;
-        node.data = null;
-      }
-    }
-
-    root.parent = preroot;
-    root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);
-    root.parent = null;
-    if (n > 0) throw new Error("cycle");
-
-    return root;
-  }
-
-  stratify.id = function(x) {
-    return arguments.length ? (id = optional(x), stratify) : id;
-  };
-
-  stratify.parentId = function(x) {
-    return arguments.length ? (parentId = optional(x), stratify) : parentId;
-  };
-
-  stratify.path = function(x) {
-    return arguments.length ? (path = optional(x), stratify) : path;
-  };
-
-  return stratify;
-}
-
-// To normalize a path, we coerce to a string, strip the trailing slash if any
-// (as long as the trailing slash is not immediately preceded by another slash),
-// and add leading slash if missing.
-function normalize(path) {
-  path = `${path}`;
-  let i = path.length;
-  if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);
-  return path[0] === "/" ? path : `/${path}`;
-}
-
-// Walk backwards to find the first slash that is not the leading slash, e.g.:
-// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased
-// because the id of the root must be a truthy value.)
-function parentof(path) {
-  let i = path.length;
-  if (i < 2) return "";
-  while (--i > 1) if (slash(path, i)) break;
-  return path.slice(0, i);
-}
-
-// Slashes can be escaped; to determine whether a slash is a path delimiter, we
-// count the number of preceding backslashes escaping the forward slash: an odd
-// number indicates an escaped forward slash.
-function slash(path, i) {
-  if (path[i] === "/") {
-    let k = 0;
-    while (i > 0 && path[--i] === "\\") ++k;
-    if ((k & 1) === 0) return true;
-  }
-  return false;
-}
-
-function defaultSeparation(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-// function radialSeparation(a, b) {
-//   return (a.parent === b.parent ? 1 : 2) / a.depth;
-// }
-
-// This function is used to traverse the left contour of a subtree (or
-// subforest). It returns the successor of v on this contour. This successor is
-// either given by the leftmost child of v or by the thread of v. The function
-// returns null if and only if v is on the highest level of its subtree.
-function nextLeft(v) {
-  var children = v.children;
-  return children ? children[0] : v.t;
-}
-
-// This function works analogously to nextLeft.
-function nextRight(v) {
-  var children = v.children;
-  return children ? children[children.length - 1] : v.t;
-}
-
-// Shifts the current subtree rooted at w+. This is done by increasing
-// prelim(w+) and mod(w+) by shift.
-function moveSubtree(wm, wp, shift) {
-  var change = shift / (wp.i - wm.i);
-  wp.c -= change;
-  wp.s += shift;
-  wm.c += change;
-  wp.z += shift;
-  wp.m += shift;
-}
-
-// All other shifts, applied to the smaller subtrees between w- and w+, are
-// performed by this function. To prepare the shifts, we have to adjust
-// change(w+), shift(w+), and change(w-).
-function executeShifts(v) {
-  var shift = 0,
-      change = 0,
-      children = v.children,
-      i = children.length,
-      w;
-  while (--i >= 0) {
-    w = children[i];
-    w.z += shift;
-    w.m += shift;
-    shift += w.s + (change += w.c);
-  }
-}
-
-// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
-// returns the specified (default) ancestor.
-function nextAncestor(vim, v, ancestor) {
-  return vim.a.parent === v.parent ? vim.a : ancestor;
-}
-
-function TreeNode(node, i) {
-  this._ = node;
-  this.parent = null;
-  this.children = null;
-  this.A = null; // default ancestor
-  this.a = this; // ancestor
-  this.z = 0; // prelim
-  this.m = 0; // mod
-  this.c = 0; // change
-  this.s = 0; // shift
-  this.t = null; // thread
-  this.i = i; // number
-}
-
-TreeNode.prototype = Object.create(Node$1.prototype);
-
-function treeRoot(root) {
-  var tree = new TreeNode(root, 0),
-      node,
-      nodes = [tree],
-      child,
-      children,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if (children = node._.children) {
-      node.children = new Array(n = children.length);
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = node.children[i] = new TreeNode(children[i], i));
-        child.parent = node;
-      }
-    }
-  }
-
-  (tree.parent = new TreeNode(null, 0)).children = [tree];
-  return tree;
-}
-
-// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
-function tree() {
-  var separation = defaultSeparation,
-      dx = 1,
-      dy = 1,
-      nodeSize = null;
-
-  function tree(root) {
-    var t = treeRoot(root);
-
-    // Compute the layout using Buchheim et al.’s algorithm.
-    t.eachAfter(firstWalk), t.parent.m = -t.z;
-    t.eachBefore(secondWalk);
-
-    // If a fixed node size is specified, scale x and y.
-    if (nodeSize) root.eachBefore(sizeNode);
-
-    // If a fixed tree size is specified, scale x and y based on the extent.
-    // Compute the left-most, right-most, and depth-most nodes for extents.
-    else {
-      var left = root,
-          right = root,
-          bottom = root;
-      root.eachBefore(function(node) {
-        if (node.x < left.x) left = node;
-        if (node.x > right.x) right = node;
-        if (node.depth > bottom.depth) bottom = node;
-      });
-      var s = left === right ? 1 : separation(left, right) / 2,
-          tx = s - left.x,
-          kx = dx / (right.x + s + tx),
-          ky = dy / (bottom.depth || 1);
-      root.eachBefore(function(node) {
-        node.x = (node.x + tx) * kx;
-        node.y = node.depth * ky;
-      });
-    }
-
-    return root;
-  }
-
-  // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
-  // applied recursively to the children of v, as well as the function
-  // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
-  // node v is placed to the midpoint of its outermost children.
-  function firstWalk(v) {
-    var children = v.children,
-        siblings = v.parent.children,
-        w = v.i ? siblings[v.i - 1] : null;
-    if (children) {
-      executeShifts(v);
-      var midpoint = (children[0].z + children[children.length - 1].z) / 2;
-      if (w) {
-        v.z = w.z + separation(v._, w._);
-        v.m = v.z - midpoint;
-      } else {
-        v.z = midpoint;
-      }
-    } else if (w) {
-      v.z = w.z + separation(v._, w._);
-    }
-    v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
-  }
-
-  // Computes all real x-coordinates by summing up the modifiers recursively.
-  function secondWalk(v) {
-    v._.x = v.z + v.parent.m;
-    v.m += v.parent.m;
-  }
-
-  // The core of the algorithm. Here, a new subtree is combined with the
-  // previous subtrees. Threads are used to traverse the inside and outside
-  // contours of the left and right subtree up to the highest common level. The
-  // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
-  // superscript o means outside and i means inside, the subscript - means left
-  // subtree and + means right subtree. For summing up the modifiers along the
-  // contour, we use respective variables si+, si-, so-, and so+. Whenever two
-  // nodes of the inside contours conflict, we compute the left one of the
-  // greatest uncommon ancestors using the function ANCESTOR and call MOVE
-  // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
-  // Finally, we add a new thread (if necessary).
-  function apportion(v, w, ancestor) {
-    if (w) {
-      var vip = v,
-          vop = v,
-          vim = w,
-          vom = vip.parent.children[0],
-          sip = vip.m,
-          sop = vop.m,
-          sim = vim.m,
-          som = vom.m,
-          shift;
-      while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
-        vom = nextLeft(vom);
-        vop = nextRight(vop);
-        vop.a = v;
-        shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
-        if (shift > 0) {
-          moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
-          sip += shift;
-          sop += shift;
-        }
-        sim += vim.m;
-        sip += vip.m;
-        som += vom.m;
-        sop += vop.m;
-      }
-      if (vim && !nextRight(vop)) {
-        vop.t = vim;
-        vop.m += sim - sop;
-      }
-      if (vip && !nextLeft(vom)) {
-        vom.t = vip;
-        vom.m += sip - som;
-        ancestor = v;
-      }
-    }
-    return ancestor;
-  }
-
-  function sizeNode(node) {
-    node.x *= dx;
-    node.y = node.depth * dy;
-  }
-
-  tree.separation = function(x) {
-    return arguments.length ? (separation = x, tree) : separation;
-  };
-
-  tree.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
-  };
-
-  tree.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return tree;
-}
-
-function treemapSlice(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (y1 - y0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.x0 = x0, node.x1 = x1;
-    node.y0 = y0, node.y1 = y0 += node.value * k;
-  }
-}
-
-var phi = (1 + Math.sqrt(5)) / 2;
-
-function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
-  var rows = [],
-      nodes = parent.children,
-      row,
-      nodeValue,
-      i0 = 0,
-      i1 = 0,
-      n = nodes.length,
-      dx, dy,
-      value = parent.value,
-      sumValue,
-      minValue,
-      maxValue,
-      newRatio,
-      minRatio,
-      alpha,
-      beta;
-
-  while (i0 < n) {
-    dx = x1 - x0, dy = y1 - y0;
-
-    // Find the next non-empty node.
-    do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
-    minValue = maxValue = sumValue;
-    alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
-    beta = sumValue * sumValue * alpha;
-    minRatio = Math.max(maxValue / beta, beta / minValue);
-
-    // Keep adding nodes while the aspect ratio maintains or improves.
-    for (; i1 < n; ++i1) {
-      sumValue += nodeValue = nodes[i1].value;
-      if (nodeValue < minValue) minValue = nodeValue;
-      if (nodeValue > maxValue) maxValue = nodeValue;
-      beta = sumValue * sumValue * alpha;
-      newRatio = Math.max(maxValue / beta, beta / minValue);
-      if (newRatio > minRatio) { sumValue -= nodeValue; break; }
-      minRatio = newRatio;
-    }
-
-    // Position and record the row orientation.
-    rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
-    if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
-    else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
-    value -= sumValue, i0 = i1;
-  }
-
-  return rows;
-}
-
-var squarify = (function custom(ratio) {
-
-  function squarify(parent, x0, y0, x1, y1) {
-    squarifyRatio(ratio, parent, x0, y0, x1, y1);
-  }
-
-  squarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return squarify;
-})(phi);
-
-function index() {
-  var tile = squarify,
-      round = false,
-      dx = 1,
-      dy = 1,
-      paddingStack = [0],
-      paddingInner = constantZero,
-      paddingTop = constantZero,
-      paddingRight = constantZero,
-      paddingBottom = constantZero,
-      paddingLeft = constantZero;
-
-  function treemap(root) {
-    root.x0 =
-    root.y0 = 0;
-    root.x1 = dx;
-    root.y1 = dy;
-    root.eachBefore(positionNode);
-    paddingStack = [0];
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(node) {
-    var p = paddingStack[node.depth],
-        x0 = node.x0 + p,
-        y0 = node.y0 + p,
-        x1 = node.x1 - p,
-        y1 = node.y1 - p;
-    if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-    if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-    node.x0 = x0;
-    node.y0 = y0;
-    node.x1 = x1;
-    node.y1 = y1;
-    if (node.children) {
-      p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
-      x0 += paddingLeft(node) - p;
-      y0 += paddingTop(node) - p;
-      x1 -= paddingRight(node) - p;
-      y1 -= paddingBottom(node) - p;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      tile(node, x0, y0, x1, y1);
-    }
-  }
-
-  treemap.round = function(x) {
-    return arguments.length ? (round = !!x, treemap) : round;
-  };
-
-  treemap.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
-  };
-
-  treemap.tile = function(x) {
-    return arguments.length ? (tile = required(x), treemap) : tile;
-  };
-
-  treemap.padding = function(x) {
-    return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
-  };
-
-  treemap.paddingInner = function(x) {
-    return arguments.length ? (paddingInner = typeof x === "function" ? x : constant(+x), treemap) : paddingInner;
-  };
-
-  treemap.paddingOuter = function(x) {
-    return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
-  };
-
-  treemap.paddingTop = function(x) {
-    return arguments.length ? (paddingTop = typeof x === "function" ? x : constant(+x), treemap) : paddingTop;
-  };
-
-  treemap.paddingRight = function(x) {
-    return arguments.length ? (paddingRight = typeof x === "function" ? x : constant(+x), treemap) : paddingRight;
-  };
-
-  treemap.paddingBottom = function(x) {
-    return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant(+x), treemap) : paddingBottom;
-  };
-
-  treemap.paddingLeft = function(x) {
-    return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant(+x), treemap) : paddingLeft;
-  };
-
-  return treemap;
-}
-
-function binary(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      i, n = nodes.length,
-      sum, sums = new Array(n + 1);
-
-  for (sums[0] = sum = i = 0; i < n; ++i) {
-    sums[i + 1] = sum += nodes[i].value;
-  }
-
-  partition(0, n, parent.value, x0, y0, x1, y1);
-
-  function partition(i, j, value, x0, y0, x1, y1) {
-    if (i >= j - 1) {
-      var node = nodes[i];
-      node.x0 = x0, node.y0 = y0;
-      node.x1 = x1, node.y1 = y1;
-      return;
-    }
-
-    var valueOffset = sums[i],
-        valueTarget = (value / 2) + valueOffset,
-        k = i + 1,
-        hi = j - 1;
-
-    while (k < hi) {
-      var mid = k + hi >>> 1;
-      if (sums[mid] < valueTarget) k = mid + 1;
-      else hi = mid;
-    }
-
-    if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
-
-    var valueLeft = sums[k] - valueOffset,
-        valueRight = value - valueLeft;
-
-    if ((x1 - x0) > (y1 - y0)) {
-      var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;
-      partition(i, k, valueLeft, x0, y0, xk, y1);
-      partition(k, j, valueRight, xk, y0, x1, y1);
-    } else {
-      var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;
-      partition(i, k, valueLeft, x0, y0, x1, yk);
-      partition(k, j, valueRight, x0, yk, x1, y1);
-    }
-  }
-}
-
-function sliceDice(parent, x0, y0, x1, y1) {
-  (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);
-}
-
-var resquarify = (function custom(ratio) {
-
-  function resquarify(parent, x0, y0, x1, y1) {
-    if ((rows = parent._squarify) && (rows.ratio === ratio)) {
-      var rows,
-          row,
-          nodes,
-          i,
-          j = -1,
-          n,
-          m = rows.length,
-          value = parent.value;
-
-      while (++j < m) {
-        row = rows[j], nodes = row.children;
-        for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
-        if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);
-        else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);
-        value -= row.value;
-      }
-    } else {
-      parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);
-      rows.ratio = ratio;
-    }
-  }
-
-  resquarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return resquarify;
-})(phi);
-
-exports.Node = Node$1;
-exports.cluster = cluster;
-exports.hierarchy = hierarchy;
-exports.pack = index$1;
-exports.packEnclose = enclose;
-exports.packSiblings = siblings;
-exports.partition = partition;
-exports.stratify = stratify;
-exports.tree = tree;
-exports.treemap = index;
-exports.treemapBinary = binary;
-exports.treemapDice = treemapDice;
-exports.treemapResquarify = resquarify;
-exports.treemapSlice = treemapSlice;
-exports.treemapSliceDice = sliceDice;
-exports.treemapSquarify = squarify;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-hierarchy/dist/d3-hierarchy.min.js
===================================================================
--- node_modules/d3-hierarchy/dist/d3-hierarchy.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-hierarchy/ v3.1.2 Copyright 2010-2021 Mike Bostock
-!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";function r(n,r){return n.parent===r.parent?1:2}function t(n,r){return n+r.x}function e(n,r){return Math.max(n,r.y)}function i(n){var r=0,t=n.children,e=t&&t.length;if(e)for(;--e>=0;)r+=t[e].value;else r=1;n.value=r}function u(n,r){n instanceof Map?(n=[void 0,n],void 0===r&&(r=f)):void 0===r&&(r=o);for(var t,e,i,u,a,l=new h(n),p=[l];t=p.pop();)if((i=r(t.data))&&(a=(i=Array.from(i)).length))for(t.children=i,u=a-1;u>=0;--u)p.push(e=i[u]=new h(i[u])),e.parent=t,e.depth=t.depth+1;return l.eachBefore(c)}function o(n){return n.children}function f(n){return Array.isArray(n)?n[1]:null}function a(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function c(n){var r=0;do{n.height=r}while((n=n.parent)&&n.height<++r)}function h(n){this.data=n,this.depth=this.height=0,this.parent=null}function l(n){return null==n?null:p(n)}function p(n){if("function"!=typeof n)throw new Error;return n}function d(){return 0}function s(n){return function(){return n}}h.prototype=u.prototype={constructor:h,count:function(){return this.eachAfter(i)},each:function(n,r){let t=-1;for(const e of this)n.call(r,e,++t,this);return this},eachAfter:function(n,r){for(var t,e,i,u=this,o=[u],f=[],a=-1;u=o.pop();)if(f.push(u),t=u.children)for(e=0,i=t.length;e<i;++e)o.push(t[e]);for(;u=f.pop();)n.call(r,u,++a,this);return this},eachBefore:function(n,r){for(var t,e,i=this,u=[i],o=-1;i=u.pop();)if(n.call(r,i,++o,this),t=i.children)for(e=t.length-1;e>=0;--e)u.push(t[e]);return this},find:function(n,r){let t=-1;for(const e of this)if(n.call(r,e,++t,this))return e},sum:function(n){return this.eachAfter((function(r){for(var t=+n(r.data)||0,e=r.children,i=e&&e.length;--i>=0;)t+=e[i].value;r.value=t}))},sort:function(n){return this.eachBefore((function(r){r.children&&r.children.sort(n)}))},path:function(n){for(var r=this,t=function(n,r){if(n===r)return n;var t=n.ancestors(),e=r.ancestors(),i=null;n=t.pop(),r=e.pop();for(;n===r;)i=n,n=t.pop(),r=e.pop();return i}(r,n),e=[r];r!==t;)r=r.parent,e.push(r);for(var i=e.length;n!==t;)e.splice(i,0,n),n=n.parent;return e},ancestors:function(){for(var n=this,r=[n];n=n.parent;)r.push(n);return r},descendants:function(){return Array.from(this)},leaves:function(){var n=[];return this.eachBefore((function(r){r.children||n.push(r)})),n},links:function(){var n=this,r=[];return n.each((function(t){t!==n&&r.push({source:t.parent,target:t})})),r},copy:function(){return u(this).eachBefore(a)},[Symbol.iterator]:function*(){var n,r,t,e,i=this,u=[i];do{for(n=u.reverse(),u=[];i=n.pop();)if(yield i,r=i.children)for(t=0,e=r.length;t<e;++t)u.push(r[t])}while(u.length)}};const v=4294967296;function x(){let n=1;return()=>(n=(1664525*n+1013904223)%v)/v}function y(n,r){for(var t,e,i=0,u=(n=function(n,r){let t,e,i=n.length;for(;i;)e=r()*i--|0,t=n[i],n[i]=n[e],n[e]=t;return n}(Array.from(n),r)).length,o=[];i<u;)t=n[i],e&&w(e,t)?++i:(e=M(o=g(o,t)),i=0);return e}function g(n,r){var t,e;if(_(r,n))return[r];for(t=0;t<n.length;++t)if(m(r,n[t])&&_(z(n[t],r),n))return[n[t],r];for(t=0;t<n.length-1;++t)for(e=t+1;e<n.length;++e)if(m(z(n[t],n[e]),r)&&m(z(n[t],r),n[e])&&m(z(n[e],r),n[t])&&_(B(n[t],n[e],r),n))return[n[t],n[e],r];throw new Error}function m(n,r){var t=n.r-r.r,e=r.x-n.x,i=r.y-n.y;return t<0||t*t<e*e+i*i}function w(n,r){var t=n.r-r.r+1e-9*Math.max(n.r,r.r,1),e=r.x-n.x,i=r.y-n.y;return t>0&&t*t>e*e+i*i}function _(n,r){for(var t=0;t<r.length;++t)if(!w(n,r[t]))return!1;return!0}function M(n){switch(n.length){case 1:return function(n){return{x:n.x,y:n.y,r:n.r}}(n[0]);case 2:return z(n[0],n[1]);case 3:return B(n[0],n[1],n[2])}}function z(n,r){var t=n.x,e=n.y,i=n.r,u=r.x,o=r.y,f=r.r,a=u-t,c=o-e,h=f-i,l=Math.sqrt(a*a+c*c);return{x:(t+u+a/l*h)/2,y:(e+o+c/l*h)/2,r:(l+i+f)/2}}function B(n,r,t){var e=n.x,i=n.y,u=n.r,o=r.x,f=r.y,a=r.r,c=t.x,h=t.y,l=t.r,p=e-o,d=e-c,s=i-f,v=i-h,x=a-u,y=l-u,g=e*e+i*i-u*u,m=g-o*o-f*f+a*a,w=g-c*c-h*h+l*l,_=d*s-p*v,M=(s*w-v*m)/(2*_)-e,z=(v*x-s*y)/_,B=(d*m-p*w)/(2*_)-i,A=(p*y-d*x)/_,b=z*z+A*A-1,q=2*(u+M*z+B*A),E=M*M+B*B-u*u,S=-(Math.abs(b)>1e-6?(q+Math.sqrt(q*q-4*b*E))/(2*b):E/q);return{x:e+M+z*S,y:i+B+A*S,r:S}}function A(n,r,t){var e,i,u,o,f=n.x-r.x,a=n.y-r.y,c=f*f+a*a;c?(i=r.r+t.r,i*=i,o=n.r+t.r,i>(o*=o)?(e=(c+o-i)/(2*c),u=Math.sqrt(Math.max(0,o/c-e*e)),t.x=n.x-e*f-u*a,t.y=n.y-e*a+u*f):(e=(c+i-o)/(2*c),u=Math.sqrt(Math.max(0,i/c-e*e)),t.x=r.x+e*f-u*a,t.y=r.y+e*a+u*f)):(t.x=r.x+t.r,t.y=r.y)}function b(n,r){var t=n.r+r.r-1e-6,e=r.x-n.x,i=r.y-n.y;return t>0&&t*t>e*e+i*i}function q(n){var r=n._,t=n.next._,e=r.r+t.r,i=(r.x*t.r+t.x*r.r)/e,u=(r.y*t.r+t.y*r.r)/e;return i*i+u*u}function Node(n){this._=n,this.next=null,this.previous=null}function E(n,r){if(!(o=(t=n,n="object"==typeof t&&"length"in t?t:Array.from(t)).length))return 0;var t,e,i,u,o,f,a,c,h,l,p,d;if((e=n[0]).x=0,e.y=0,!(o>1))return e.r;if(i=n[1],e.x=-i.r,i.x=e.r,i.y=0,!(o>2))return e.r+i.r;A(i,e,u=n[2]),e=new Node(e),i=new Node(i),u=new Node(u),e.next=u.previous=i,i.next=e.previous=u,u.next=i.previous=e;n:for(c=3;c<o;++c){A(e._,i._,u=n[c]),u=new Node(u),h=i.next,l=e.previous,p=i._.r,d=e._.r;do{if(p<=d){if(b(h._,u._)){i=h,e.next=i,i.previous=e,--c;continue n}p+=h._.r,h=h.next}else{if(b(l._,u._)){(e=l).next=i,i.previous=e,--c;continue n}d+=l._.r,l=l.previous}}while(h!==l.next);for(u.previous=e,u.next=i,e.next=i.previous=i=u,f=q(e);(u=u.next)!==i;)(a=q(u))<f&&(e=u,f=a);i=e.next}for(e=[i._],u=i;(u=u.next)!==i;)e.push(u._);for(u=y(e,r),c=0;c<o;++c)(e=n[c]).x-=u.x,e.y-=u.y;return u.r}function S(n){return Math.sqrt(n.value)}function k(n){return function(r){r.children||(r.r=Math.max(0,+n(r)||0))}}function I(n,r,t){return function(e){if(i=e.children){var i,u,o,f=i.length,a=n(e)*r||0;if(a)for(u=0;u<f;++u)i[u].r+=a;if(o=E(i,t),a)for(u=0;u<f;++u)i[u].r-=a;e.r=o+a}}}function T(n){return function(r){var t=r.parent;r.r*=n,t&&(r.x=t.x+n*r.x,r.y=t.y+n*r.y)}}function j(n){n.x0=Math.round(n.x0),n.y0=Math.round(n.y0),n.x1=Math.round(n.x1),n.y1=Math.round(n.y1)}function O(n,r,t,e,i){for(var u,o=n.children,f=-1,a=o.length,c=n.value&&(e-r)/n.value;++f<a;)(u=o[f]).y0=t,u.y1=i,u.x0=r,u.x1=r+=u.value*c}var R={depth:-1},D={},L={};function $(n){return n.id}function N(n){return n.parentId}function P(n){let r=n.length;if(r<2)return"";for(;--r>1&&!C(n,r););return n.slice(0,r)}function C(n,r){if("/"===n[r]){let t=0;for(;r>0&&"\\"===n[--r];)++t;if(0==(1&t))return!0}return!1}function F(n,r){return n.parent===r.parent?1:2}function G(n){var r=n.children;return r?r[0]:n.t}function H(n){var r=n.children;return r?r[r.length-1]:n.t}function J(n,r,t){var e=t/(r.i-n.i);r.c-=e,r.s+=t,n.c+=e,r.z+=t,r.m+=t}function K(n,r,t){return n.a.parent===r.parent?n.a:t}function Q(n,r){this._=n,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=r}function U(n,r,t,e,i){for(var u,o=n.children,f=-1,a=o.length,c=n.value&&(i-t)/n.value;++f<a;)(u=o[f]).x0=r,u.x1=e,u.y0=t,u.y1=t+=u.value*c}Q.prototype=Object.create(h.prototype);var V=(1+Math.sqrt(5))/2;function W(n,r,t,e,i,u){for(var o,f,a,c,h,l,p,d,s,v,x,y=[],g=r.children,m=0,w=0,_=g.length,M=r.value;m<_;){a=i-t,c=u-e;do{h=g[w++].value}while(!h&&w<_);for(l=p=h,x=h*h*(v=Math.max(c/a,a/c)/(M*n)),s=Math.max(p/x,x/l);w<_;++w){if(h+=f=g[w].value,f<l&&(l=f),f>p&&(p=f),x=h*h*v,(d=Math.max(p/x,x/l))>s){h-=f;break}s=d}y.push(o={value:h,dice:a<c,children:g.slice(m,w)}),o.dice?O(o,t,e,i,M?e+=c*h/M:u):U(o,t,e,M?t+=a*h/M:i,u),M-=h,m=w}return y}var X=function n(r){function t(n,t,e,i,u){W(r,n,t,e,i,u)}return t.ratio=function(r){return n((r=+r)>1?r:1)},t}(V);var Y=function n(r){function t(n,t,e,i,u){if((o=n._squarify)&&o.ratio===r)for(var o,f,a,c,h,l=-1,p=o.length,d=n.value;++l<p;){for(a=(f=o[l]).children,c=f.value=0,h=a.length;c<h;++c)f.value+=a[c].value;f.dice?O(f,t,e,i,d?e+=(u-e)*f.value/d:u):U(f,t,e,d?t+=(i-t)*f.value/d:i,u),d-=f.value}else n._squarify=o=W(r,n,t,e,i,u),o.ratio=r}return t.ratio=function(r){return n((r=+r)>1?r:1)},t}(V);n.Node=h,n.cluster=function(){var n=r,i=1,u=1,o=!1;function f(r){var f,a=0;r.eachAfter((function(r){var i=r.children;i?(r.x=function(n){return n.reduce(t,0)/n.length}(i),r.y=function(n){return 1+n.reduce(e,0)}(i)):(r.x=f?a+=n(r,f):0,r.y=0,f=r)}));var c=function(n){for(var r;r=n.children;)n=r[0];return n}(r),h=function(n){for(var r;r=n.children;)n=r[r.length-1];return n}(r),l=c.x-n(c,h)/2,p=h.x+n(h,c)/2;return r.eachAfter(o?function(n){n.x=(n.x-r.x)*i,n.y=(r.y-n.y)*u}:function(n){n.x=(n.x-l)/(p-l)*i,n.y=(1-(r.y?n.y/r.y:1))*u})}return f.separation=function(r){return arguments.length?(n=r,f):n},f.size=function(n){return arguments.length?(o=!1,i=+n[0],u=+n[1],f):o?null:[i,u]},f.nodeSize=function(n){return arguments.length?(o=!0,i=+n[0],u=+n[1],f):o?[i,u]:null},f},n.hierarchy=u,n.pack=function(){var n=null,r=1,t=1,e=d;function i(i){const u=x();return i.x=r/2,i.y=t/2,n?i.eachBefore(k(n)).eachAfter(I(e,.5,u)).eachBefore(T(1)):i.eachBefore(k(S)).eachAfter(I(d,1,u)).eachAfter(I(e,i.r/Math.min(r,t),u)).eachBefore(T(Math.min(r,t)/(2*i.r))),i}return i.radius=function(r){return arguments.length?(n=l(r),i):n},i.size=function(n){return arguments.length?(r=+n[0],t=+n[1],i):[r,t]},i.padding=function(n){return arguments.length?(e="function"==typeof n?n:s(+n),i):e},i},n.packEnclose=function(n){return y(n,x())},n.packSiblings=function(n){return E(n,x()),n},n.partition=function(){var n=1,r=1,t=0,e=!1;function i(i){var u=i.height+1;return i.x0=i.y0=t,i.x1=n,i.y1=r/u,i.eachBefore(function(n,r){return function(e){e.children&&O(e,e.x0,n*(e.depth+1)/r,e.x1,n*(e.depth+2)/r);var i=e.x0,u=e.y0,o=e.x1-t,f=e.y1-t;o<i&&(i=o=(i+o)/2),f<u&&(u=f=(u+f)/2),e.x0=i,e.y0=u,e.x1=o,e.y1=f}}(r,u)),e&&i.eachBefore(j),i}return i.round=function(n){return arguments.length?(e=!!n,i):e},i.size=function(t){return arguments.length?(n=+t[0],r=+t[1],i):[n,r]},i.padding=function(n){return arguments.length?(t=+n,i):t},i},n.stratify=function(){var n,r=$,t=N;function e(e){var i,u,o,f,a,l,p,d,s=Array.from(e),v=r,x=t,y=new Map;if(null!=n){const r=s.map(((r,t)=>function(n){let r=(n=`${n}`).length;C(n,r-1)&&!C(n,r-2)&&(n=n.slice(0,-1));return"/"===n[0]?n:`/${n}`}(n(r,t,e)))),t=r.map(P),i=new Set(r).add("");for(const n of t)i.has(n)||(i.add(n),r.push(n),t.push(P(n)),s.push(L));v=(n,t)=>r[t],x=(n,r)=>t[r]}for(o=0,i=s.length;o<i;++o)u=s[o],l=s[o]=new h(u),null!=(p=v(u,o,e))&&(p+="")&&(d=l.id=p,y.set(d,y.has(d)?D:l)),null!=(p=x(u,o,e))&&(p+="")&&(l.parent=p);for(o=0;o<i;++o)if(p=(l=s[o]).parent){if(!(a=y.get(p)))throw new Error("missing: "+p);if(a===D)throw new Error("ambiguous: "+p);a.children?a.children.push(l):a.children=[l],l.parent=a}else{if(f)throw new Error("multiple roots");f=l}if(!f)throw new Error("no root");if(null!=n){for(;f.data===L&&1===f.children.length;)f=f.children[0],--i;for(let n=s.length-1;n>=0&&(l=s[n],l.data===L);--n)l.data=null}if(f.parent=R,f.eachBefore((function(n){n.depth=n.parent.depth+1,--i})).eachBefore(c),f.parent=null,i>0)throw new Error("cycle");return f}return e.id=function(n){return arguments.length?(r=l(n),e):r},e.parentId=function(n){return arguments.length?(t=l(n),e):t},e.path=function(r){return arguments.length?(n=l(r),e):n},e},n.tree=function(){var n=F,r=1,t=1,e=null;function i(i){var a=function(n){for(var r,t,e,i,u,o=new Q(n,0),f=[o];r=f.pop();)if(e=r._.children)for(r.children=new Array(u=e.length),i=u-1;i>=0;--i)f.push(t=r.children[i]=new Q(e[i],i)),t.parent=r;return(o.parent=new Q(null,0)).children=[o],o}(i);if(a.eachAfter(u),a.parent.m=-a.z,a.eachBefore(o),e)i.eachBefore(f);else{var c=i,h=i,l=i;i.eachBefore((function(n){n.x<c.x&&(c=n),n.x>h.x&&(h=n),n.depth>l.depth&&(l=n)}));var p=c===h?1:n(c,h)/2,d=p-c.x,s=r/(h.x+p+d),v=t/(l.depth||1);i.eachBefore((function(n){n.x=(n.x+d)*s,n.y=n.depth*v}))}return i}function u(r){var t=r.children,e=r.parent.children,i=r.i?e[r.i-1]:null;if(t){!function(n){for(var r,t=0,e=0,i=n.children,u=i.length;--u>=0;)(r=i[u]).z+=t,r.m+=t,t+=r.s+(e+=r.c)}(r);var u=(t[0].z+t[t.length-1].z)/2;i?(r.z=i.z+n(r._,i._),r.m=r.z-u):r.z=u}else i&&(r.z=i.z+n(r._,i._));r.parent.A=function(r,t,e){if(t){for(var i,u=r,o=r,f=t,a=u.parent.children[0],c=u.m,h=o.m,l=f.m,p=a.m;f=H(f),u=G(u),f&&u;)a=G(a),(o=H(o)).a=r,(i=f.z+l-u.z-c+n(f._,u._))>0&&(J(K(f,r,e),r,i),c+=i,h+=i),l+=f.m,c+=u.m,p+=a.m,h+=o.m;f&&!H(o)&&(o.t=f,o.m+=l-h),u&&!G(a)&&(a.t=u,a.m+=c-p,e=r)}return e}(r,i,r.parent.A||e[0])}function o(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function f(n){n.x*=r,n.y=n.depth*t}return i.separation=function(r){return arguments.length?(n=r,i):n},i.size=function(n){return arguments.length?(e=!1,r=+n[0],t=+n[1],i):e?null:[r,t]},i.nodeSize=function(n){return arguments.length?(e=!0,r=+n[0],t=+n[1],i):e?[r,t]:null},i},n.treemap=function(){var n=X,r=!1,t=1,e=1,i=[0],u=d,o=d,f=d,a=d,c=d;function h(n){return n.x0=n.y0=0,n.x1=t,n.y1=e,n.eachBefore(l),i=[0],r&&n.eachBefore(j),n}function l(r){var t=i[r.depth],e=r.x0+t,h=r.y0+t,l=r.x1-t,p=r.y1-t;l<e&&(e=l=(e+l)/2),p<h&&(h=p=(h+p)/2),r.x0=e,r.y0=h,r.x1=l,r.y1=p,r.children&&(t=i[r.depth+1]=u(r)/2,e+=c(r)-t,h+=o(r)-t,(l-=f(r)-t)<e&&(e=l=(e+l)/2),(p-=a(r)-t)<h&&(h=p=(h+p)/2),n(r,e,h,l,p))}return h.round=function(n){return arguments.length?(r=!!n,h):r},h.size=function(n){return arguments.length?(t=+n[0],e=+n[1],h):[t,e]},h.tile=function(r){return arguments.length?(n=p(r),h):n},h.padding=function(n){return arguments.length?h.paddingInner(n).paddingOuter(n):h.paddingInner()},h.paddingInner=function(n){return arguments.length?(u="function"==typeof n?n:s(+n),h):u},h.paddingOuter=function(n){return arguments.length?h.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):h.paddingTop()},h.paddingTop=function(n){return arguments.length?(o="function"==typeof n?n:s(+n),h):o},h.paddingRight=function(n){return arguments.length?(f="function"==typeof n?n:s(+n),h):f},h.paddingBottom=function(n){return arguments.length?(a="function"==typeof n?n:s(+n),h):a},h.paddingLeft=function(n){return arguments.length?(c="function"==typeof n?n:s(+n),h):c},h},n.treemapBinary=function(n,r,t,e,i){var u,o,f=n.children,a=f.length,c=new Array(a+1);for(c[0]=o=u=0;u<a;++u)c[u+1]=o+=f[u].value;!function n(r,t,e,i,u,o,a){if(r>=t-1){var h=f[r];return h.x0=i,h.y0=u,h.x1=o,void(h.y1=a)}var l=c[r],p=e/2+l,d=r+1,s=t-1;for(;d<s;){var v=d+s>>>1;c[v]<p?d=v+1:s=v}p-c[d-1]<c[d]-p&&r+1<d&&--d;var x=c[d]-l,y=e-x;if(o-i>a-u){var g=e?(i*y+o*x)/e:o;n(r,d,x,i,u,g,a),n(d,t,y,g,u,o,a)}else{var m=e?(u*y+a*x)/e:a;n(r,d,x,i,u,o,m),n(d,t,y,i,m,o,a)}}(0,a,n.value,r,t,e,i)},n.treemapDice=O,n.treemapResquarify=Y,n.treemapSlice=U,n.treemapSliceDice=function(n,r,t,e,i){(1&n.depth?U:O)(n,r,t,e,i)},n.treemapSquarify=X,Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-hierarchy/package.json
===================================================================
--- node_modules/d3-hierarchy/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-{
-  "name": "d3-hierarchy",
-  "version": "3.1.2",
-  "description": "Layout algorithms for visualizing hierarchical data.",
-  "homepage": "https://d3js.org/d3-hierarchy/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-hierarchy.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "layout",
-    "tree",
-    "treemap",
-    "hierarchy",
-    "infovis"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-hierarchy.min.js",
-  "unpkg": "dist/d3-hierarchy.min.js",
-  "exports": {
-    "umd": "./dist/d3-hierarchy.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "benchmark": "2",
-    "d3-array": "1.2.0 - 3",
-    "d3-dsv": "1 - 3",
-    "d3-random": "1.1.0 - 3",
-    "eslint": "8",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-hierarchy/src/accessors.js
===================================================================
--- node_modules/d3-hierarchy/src/accessors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export function optional(f) {
-  return f == null ? null : required(f);
-}
-
-export function required(f) {
-  if (typeof f !== "function") throw new Error;
-  return f;
-}
Index: de_modules/d3-hierarchy/src/array.js
===================================================================
--- node_modules/d3-hierarchy/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
-
-export function shuffle(array, random) {
-  let m = array.length,
-      t,
-      i;
-
-  while (m) {
-    i = random() * m-- | 0;
-    t = array[m];
-    array[m] = array[i];
-    array[i] = t;
-  }
-
-  return array;
-}
Index: de_modules/d3-hierarchy/src/cluster.js
===================================================================
--- node_modules/d3-hierarchy/src/cluster.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-function defaultSeparation(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-function meanX(children) {
-  return children.reduce(meanXReduce, 0) / children.length;
-}
-
-function meanXReduce(x, c) {
-  return x + c.x;
-}
-
-function maxY(children) {
-  return 1 + children.reduce(maxYReduce, 0);
-}
-
-function maxYReduce(y, c) {
-  return Math.max(y, c.y);
-}
-
-function leafLeft(node) {
-  var children;
-  while (children = node.children) node = children[0];
-  return node;
-}
-
-function leafRight(node) {
-  var children;
-  while (children = node.children) node = children[children.length - 1];
-  return node;
-}
-
-export default function() {
-  var separation = defaultSeparation,
-      dx = 1,
-      dy = 1,
-      nodeSize = false;
-
-  function cluster(root) {
-    var previousNode,
-        x = 0;
-
-    // First walk, computing the initial x & y values.
-    root.eachAfter(function(node) {
-      var children = node.children;
-      if (children) {
-        node.x = meanX(children);
-        node.y = maxY(children);
-      } else {
-        node.x = previousNode ? x += separation(node, previousNode) : 0;
-        node.y = 0;
-        previousNode = node;
-      }
-    });
-
-    var left = leafLeft(root),
-        right = leafRight(root),
-        x0 = left.x - separation(left, right) / 2,
-        x1 = right.x + separation(right, left) / 2;
-
-    // Second walk, normalizing x & y to the desired size.
-    return root.eachAfter(nodeSize ? function(node) {
-      node.x = (node.x - root.x) * dx;
-      node.y = (root.y - node.y) * dy;
-    } : function(node) {
-      node.x = (node.x - x0) / (x1 - x0) * dx;
-      node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
-    });
-  }
-
-  cluster.separation = function(x) {
-    return arguments.length ? (separation = x, cluster) : separation;
-  };
-
-  cluster.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
-  };
-
-  cluster.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return cluster;
-}
Index: de_modules/d3-hierarchy/src/constant.js
===================================================================
--- node_modules/d3-hierarchy/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export function constantZero() {
-  return 0;
-}
-
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-hierarchy/src/hierarchy/ancestors.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/ancestors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function() {
-  var node = this, nodes = [node];
-  while (node = node.parent) {
-    nodes.push(node);
-  }
-  return nodes;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/count.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/count.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function count(node) {
-  var sum = 0,
-      children = node.children,
-      i = children && children.length;
-  if (!i) sum = 1;
-  else while (--i >= 0) sum += children[i].value;
-  node.value = sum;
-}
-
-export default function() {
-  return this.eachAfter(count);
-}
Index: de_modules/d3-hierarchy/src/hierarchy/descendants.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/descendants.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function() {
-  return Array.from(this);
-}
Index: de_modules/d3-hierarchy/src/hierarchy/each.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/each.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/eachAfter.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/eachAfter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export default function(callback, that) {
-  var node = this, nodes = [node], next = [], children, i, n, index = -1;
-  while (node = nodes.pop()) {
-    next.push(node);
-    if (children = node.children) {
-      for (i = 0, n = children.length; i < n; ++i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  while (node = next.pop()) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/eachBefore.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/eachBefore.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export default function(callback, that) {
-  var node = this, nodes = [node], children, i, index = -1;
-  while (node = nodes.pop()) {
-    callback.call(that, node, ++index, this);
-    if (children = node.children) {
-      for (i = children.length - 1; i >= 0; --i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  return this;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/find.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export default function(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    if (callback.call(that, node, ++index, this)) {
-      return node;
-    }
-  }
-}
Index: de_modules/d3-hierarchy/src/hierarchy/index.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-import node_count from "./count.js";
-import node_each from "./each.js";
-import node_eachBefore from "./eachBefore.js";
-import node_eachAfter from "./eachAfter.js";
-import node_find from "./find.js";
-import node_sum from "./sum.js";
-import node_sort from "./sort.js";
-import node_path from "./path.js";
-import node_ancestors from "./ancestors.js";
-import node_descendants from "./descendants.js";
-import node_leaves from "./leaves.js";
-import node_links from "./links.js";
-import node_iterator from "./iterator.js";
-
-export default function hierarchy(data, children) {
-  if (data instanceof Map) {
-    data = [undefined, data];
-    if (children === undefined) children = mapChildren;
-  } else if (children === undefined) {
-    children = objectChildren;
-  }
-
-  var root = new Node(data),
-      node,
-      nodes = [root],
-      child,
-      childs,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {
-      node.children = childs;
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = childs[i] = new Node(childs[i]));
-        child.parent = node;
-        child.depth = node.depth + 1;
-      }
-    }
-  }
-
-  return root.eachBefore(computeHeight);
-}
-
-function node_copy() {
-  return hierarchy(this).eachBefore(copyData);
-}
-
-function objectChildren(d) {
-  return d.children;
-}
-
-function mapChildren(d) {
-  return Array.isArray(d) ? d[1] : null;
-}
-
-function copyData(node) {
-  if (node.data.value !== undefined) node.value = node.data.value;
-  node.data = node.data.data;
-}
-
-export function computeHeight(node) {
-  var height = 0;
-  do node.height = height;
-  while ((node = node.parent) && (node.height < ++height));
-}
-
-export function Node(data) {
-  this.data = data;
-  this.depth =
-  this.height = 0;
-  this.parent = null;
-}
-
-Node.prototype = hierarchy.prototype = {
-  constructor: Node,
-  count: node_count,
-  each: node_each,
-  eachAfter: node_eachAfter,
-  eachBefore: node_eachBefore,
-  find: node_find,
-  sum: node_sum,
-  sort: node_sort,
-  path: node_path,
-  ancestors: node_ancestors,
-  descendants: node_descendants,
-  leaves: node_leaves,
-  links: node_links,
-  copy: node_copy,
-  [Symbol.iterator]: node_iterator
-};
Index: de_modules/d3-hierarchy/src/hierarchy/iterator.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/iterator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function*() {
-  var node = this, current, next = [node], children, i, n;
-  do {
-    current = next.reverse(), next = [];
-    while (node = current.pop()) {
-      yield node;
-      if (children = node.children) {
-        for (i = 0, n = children.length; i < n; ++i) {
-          next.push(children[i]);
-        }
-      }
-    }
-  } while (next.length);
-}
Index: de_modules/d3-hierarchy/src/hierarchy/leaves.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/leaves.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function() {
-  var leaves = [];
-  this.eachBefore(function(node) {
-    if (!node.children) {
-      leaves.push(node);
-    }
-  });
-  return leaves;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/links.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/links.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function() {
-  var root = this, links = [];
-  root.each(function(node) {
-    if (node !== root) { // Don’t include the root’s parent, if any.
-      links.push({source: node.parent, target: node});
-    }
-  });
-  return links;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/path.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-export default function(end) {
-  var start = this,
-      ancestor = leastCommonAncestor(start, end),
-      nodes = [start];
-  while (start !== ancestor) {
-    start = start.parent;
-    nodes.push(start);
-  }
-  var k = nodes.length;
-  while (end !== ancestor) {
-    nodes.splice(k, 0, end);
-    end = end.parent;
-  }
-  return nodes;
-}
-
-function leastCommonAncestor(a, b) {
-  if (a === b) return a;
-  var aNodes = a.ancestors(),
-      bNodes = b.ancestors(),
-      c = null;
-  a = aNodes.pop();
-  b = bNodes.pop();
-  while (a === b) {
-    c = a;
-    a = aNodes.pop();
-    b = bNodes.pop();
-  }
-  return c;
-}
Index: de_modules/d3-hierarchy/src/hierarchy/sort.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function(compare) {
-  return this.eachBefore(function(node) {
-    if (node.children) {
-      node.children.sort(compare);
-    }
-  });
-}
Index: de_modules/d3-hierarchy/src/hierarchy/sum.js
===================================================================
--- node_modules/d3-hierarchy/src/hierarchy/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function(value) {
-  return this.eachAfter(function(node) {
-    var sum = +value(node.data) || 0,
-        children = node.children,
-        i = children && children.length;
-    while (--i >= 0) sum += children[i].value;
-    node.value = sum;
-  });
-}
Index: de_modules/d3-hierarchy/src/index.js
===================================================================
--- node_modules/d3-hierarchy/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export {default as cluster} from "./cluster.js";
-export {default as hierarchy, Node} from "./hierarchy/index.js";
-export {default as pack} from "./pack/index.js";
-export {default as packSiblings} from "./pack/siblings.js";
-export {default as packEnclose} from "./pack/enclose.js";
-export {default as partition} from "./partition.js";
-export {default as stratify} from "./stratify.js";
-export {default as tree} from "./tree.js";
-export {default as treemap} from "./treemap/index.js";
-export {default as treemapBinary} from "./treemap/binary.js";
-export {default as treemapDice} from "./treemap/dice.js";
-export {default as treemapSlice} from "./treemap/slice.js";
-export {default as treemapSliceDice} from "./treemap/sliceDice.js";
-export {default as treemapSquarify} from "./treemap/squarify.js";
-export {default as treemapResquarify} from "./treemap/resquarify.js";
Index: de_modules/d3-hierarchy/src/lcg.js
===================================================================
--- node_modules/d3-hierarchy/src/lcg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a = 1664525;
-const c = 1013904223;
-const m = 4294967296; // 2^32
-
-export default function() {
-  let s = 1;
-  return () => (s = (a * s + c) % m) / m;
-}
Index: de_modules/d3-hierarchy/src/pack/enclose.js
===================================================================
--- node_modules/d3-hierarchy/src/pack/enclose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-import {shuffle} from "../array.js";
-import lcg from "../lcg.js";
-
-export default function(circles) {
-  return packEncloseRandom(circles, lcg());
-}
-
-export function packEncloseRandom(circles, random) {
-  var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e;
-
-  while (i < n) {
-    p = circles[i];
-    if (e && enclosesWeak(e, p)) ++i;
-    else e = encloseBasis(B = extendBasis(B, p)), i = 0;
-  }
-
-  return e;
-}
-
-function extendBasis(B, p) {
-  var i, j;
-
-  if (enclosesWeakAll(p, B)) return [p];
-
-  // If we get here then B must have at least one element.
-  for (i = 0; i < B.length; ++i) {
-    if (enclosesNot(p, B[i])
-        && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
-      return [B[i], p];
-    }
-  }
-
-  // If we get here then B must have at least two elements.
-  for (i = 0; i < B.length - 1; ++i) {
-    for (j = i + 1; j < B.length; ++j) {
-      if (enclosesNot(encloseBasis2(B[i], B[j]), p)
-          && enclosesNot(encloseBasis2(B[i], p), B[j])
-          && enclosesNot(encloseBasis2(B[j], p), B[i])
-          && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
-        return [B[i], B[j], p];
-      }
-    }
-  }
-
-  // If we get here then something is very wrong.
-  throw new Error;
-}
-
-function enclosesNot(a, b) {
-  var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
-  return dr < 0 || dr * dr < dx * dx + dy * dy;
-}
-
-function enclosesWeak(a, b) {
-  var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function enclosesWeakAll(a, B) {
-  for (var i = 0; i < B.length; ++i) {
-    if (!enclosesWeak(a, B[i])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function encloseBasis(B) {
-  switch (B.length) {
-    case 1: return encloseBasis1(B[0]);
-    case 2: return encloseBasis2(B[0], B[1]);
-    case 3: return encloseBasis3(B[0], B[1], B[2]);
-  }
-}
-
-function encloseBasis1(a) {
-  return {
-    x: a.x,
-    y: a.y,
-    r: a.r
-  };
-}
-
-function encloseBasis2(a, b) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
-      l = Math.sqrt(x21 * x21 + y21 * y21);
-  return {
-    x: (x1 + x2 + x21 / l * r21) / 2,
-    y: (y1 + y2 + y21 / l * r21) / 2,
-    r: (l + r1 + r2) / 2
-  };
-}
-
-function encloseBasis3(a, b, c) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x3 = c.x, y3 = c.y, r3 = c.r,
-      a2 = x1 - x2,
-      a3 = x1 - x3,
-      b2 = y1 - y2,
-      b3 = y1 - y3,
-      c2 = r2 - r1,
-      c3 = r3 - r1,
-      d1 = x1 * x1 + y1 * y1 - r1 * r1,
-      d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
-      d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
-      ab = a3 * b2 - a2 * b3,
-      xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
-      xb = (b3 * c2 - b2 * c3) / ab,
-      ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
-      yb = (a2 * c3 - a3 * c2) / ab,
-      A = xb * xb + yb * yb - 1,
-      B = 2 * (r1 + xa * xb + ya * yb),
-      C = xa * xa + ya * ya - r1 * r1,
-      r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
-  return {
-    x: x1 + xa + xb * r,
-    y: y1 + ya + yb * r,
-    r: r
-  };
-}
Index: de_modules/d3-hierarchy/src/pack/index.js
===================================================================
--- node_modules/d3-hierarchy/src/pack/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import {optional} from "../accessors.js";
-import constant, {constantZero} from "../constant.js";
-import lcg from "../lcg.js";
-import {packSiblingsRandom} from "./siblings.js";
-
-function defaultRadius(d) {
-  return Math.sqrt(d.value);
-}
-
-export default function() {
-  var radius = null,
-      dx = 1,
-      dy = 1,
-      padding = constantZero;
-
-  function pack(root) {
-    const random = lcg();
-    root.x = dx / 2, root.y = dy / 2;
-    if (radius) {
-      root.eachBefore(radiusLeaf(radius))
-          .eachAfter(packChildrenRandom(padding, 0.5, random))
-          .eachBefore(translateChild(1));
-    } else {
-      root.eachBefore(radiusLeaf(defaultRadius))
-          .eachAfter(packChildrenRandom(constantZero, 1, random))
-          .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random))
-          .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
-    }
-    return root;
-  }
-
-  pack.radius = function(x) {
-    return arguments.length ? (radius = optional(x), pack) : radius;
-  };
-
-  pack.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
-  };
-
-  pack.padding = function(x) {
-    return arguments.length ? (padding = typeof x === "function" ? x : constant(+x), pack) : padding;
-  };
-
-  return pack;
-}
-
-function radiusLeaf(radius) {
-  return function(node) {
-    if (!node.children) {
-      node.r = Math.max(0, +radius(node) || 0);
-    }
-  };
-}
-
-function packChildrenRandom(padding, k, random) {
-  return function(node) {
-    if (children = node.children) {
-      var children,
-          i,
-          n = children.length,
-          r = padding(node) * k || 0,
-          e;
-
-      if (r) for (i = 0; i < n; ++i) children[i].r += r;
-      e = packSiblingsRandom(children, random);
-      if (r) for (i = 0; i < n; ++i) children[i].r -= r;
-      node.r = e + r;
-    }
-  };
-}
-
-function translateChild(k) {
-  return function(node) {
-    var parent = node.parent;
-    node.r *= k;
-    if (parent) {
-      node.x = parent.x + k * node.x;
-      node.y = parent.y + k * node.y;
-    }
-  };
-}
Index: de_modules/d3-hierarchy/src/pack/siblings.js
===================================================================
--- node_modules/d3-hierarchy/src/pack/siblings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,120 +1,0 @@
-import array from "../array.js";
-import lcg from "../lcg.js";
-import {packEncloseRandom} from "./enclose.js";
-
-function place(b, a, c) {
-  var dx = b.x - a.x, x, a2,
-      dy = b.y - a.y, y, b2,
-      d2 = dx * dx + dy * dy;
-  if (d2) {
-    a2 = a.r + c.r, a2 *= a2;
-    b2 = b.r + c.r, b2 *= b2;
-    if (a2 > b2) {
-      x = (d2 + b2 - a2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
-      c.x = b.x - x * dx - y * dy;
-      c.y = b.y - x * dy + y * dx;
-    } else {
-      x = (d2 + a2 - b2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
-      c.x = a.x + x * dx - y * dy;
-      c.y = a.y + x * dy + y * dx;
-    }
-  } else {
-    c.x = a.x + c.r;
-    c.y = a.y;
-  }
-}
-
-function intersects(a, b) {
-  var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function score(node) {
-  var a = node._,
-      b = node.next._,
-      ab = a.r + b.r,
-      dx = (a.x * b.r + b.x * a.r) / ab,
-      dy = (a.y * b.r + b.y * a.r) / ab;
-  return dx * dx + dy * dy;
-}
-
-function Node(circle) {
-  this._ = circle;
-  this.next = null;
-  this.previous = null;
-}
-
-export function packSiblingsRandom(circles, random) {
-  if (!(n = (circles = array(circles)).length)) return 0;
-
-  var a, b, c, n, aa, ca, i, j, k, sj, sk;
-
-  // Place the first circle.
-  a = circles[0], a.x = 0, a.y = 0;
-  if (!(n > 1)) return a.r;
-
-  // Place the second circle.
-  b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
-  if (!(n > 2)) return a.r + b.r;
-
-  // Place the third circle.
-  place(b, a, c = circles[2]);
-
-  // Initialize the front-chain using the first three circles a, b and c.
-  a = new Node(a), b = new Node(b), c = new Node(c);
-  a.next = c.previous = b;
-  b.next = a.previous = c;
-  c.next = b.previous = a;
-
-  // Attempt to place each remaining circle…
-  pack: for (i = 3; i < n; ++i) {
-    place(a._, b._, c = circles[i]), c = new Node(c);
-
-    // Find the closest intersecting circle on the front-chain, if any.
-    // “Closeness” is determined by linear distance along the front-chain.
-    // “Ahead” or “behind” is likewise determined by linear distance.
-    j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
-    do {
-      if (sj <= sk) {
-        if (intersects(j._, c._)) {
-          b = j, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sj += j._.r, j = j.next;
-      } else {
-        if (intersects(k._, c._)) {
-          a = k, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sk += k._.r, k = k.previous;
-      }
-    } while (j !== k.next);
-
-    // Success! Insert the new circle c between a and b.
-    c.previous = a, c.next = b, a.next = b.previous = b = c;
-
-    // Compute the new closest circle pair to the centroid.
-    aa = score(a);
-    while ((c = c.next) !== b) {
-      if ((ca = score(c)) < aa) {
-        a = c, aa = ca;
-      }
-    }
-    b = a.next;
-  }
-
-  // Compute the enclosing circle of the front chain.
-  a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random);
-
-  // Translate the circles to put the enclosing circle around the origin.
-  for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
-
-  return c.r;
-}
-
-export default function(circles) {
-  packSiblingsRandom(circles, lcg());
-  return circles;
-}
Index: de_modules/d3-hierarchy/src/partition.js
===================================================================
--- node_modules/d3-hierarchy/src/partition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import roundNode from "./treemap/round.js";
-import treemapDice from "./treemap/dice.js";
-
-export default function() {
-  var dx = 1,
-      dy = 1,
-      padding = 0,
-      round = false;
-
-  function partition(root) {
-    var n = root.height + 1;
-    root.x0 =
-    root.y0 = padding;
-    root.x1 = dx;
-    root.y1 = dy / n;
-    root.eachBefore(positionNode(dy, n));
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(dy, n) {
-    return function(node) {
-      if (node.children) {
-        treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
-      }
-      var x0 = node.x0,
-          y0 = node.y0,
-          x1 = node.x1 - padding,
-          y1 = node.y1 - padding;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      node.x0 = x0;
-      node.y0 = y0;
-      node.x1 = x1;
-      node.y1 = y1;
-    };
-  }
-
-  partition.round = function(x) {
-    return arguments.length ? (round = !!x, partition) : round;
-  };
-
-  partition.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
-  };
-
-  partition.padding = function(x) {
-    return arguments.length ? (padding = +x, partition) : padding;
-  };
-
-  return partition;
-}
Index: de_modules/d3-hierarchy/src/stratify.js
===================================================================
--- node_modules/d3-hierarchy/src/stratify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,145 +1,0 @@
-import {optional} from "./accessors.js";
-import {Node, computeHeight} from "./hierarchy/index.js";
-
-var preroot = {depth: -1},
-    ambiguous = {},
-    imputed = {};
-
-function defaultId(d) {
-  return d.id;
-}
-
-function defaultParentId(d) {
-  return d.parentId;
-}
-
-export default function() {
-  var id = defaultId,
-      parentId = defaultParentId,
-      path;
-
-  function stratify(data) {
-    var nodes = Array.from(data),
-        currentId = id,
-        currentParentId = parentId,
-        n,
-        d,
-        i,
-        root,
-        parent,
-        node,
-        nodeId,
-        nodeKey,
-        nodeByKey = new Map;
-
-    if (path != null) {
-      const I = nodes.map((d, i) => normalize(path(d, i, data)));
-      const P = I.map(parentof);
-      const S = new Set(I).add("");
-      for (const i of P) {
-        if (!S.has(i)) {
-          S.add(i);
-          I.push(i);
-          P.push(parentof(i));
-          nodes.push(imputed);
-        }
-      }
-      currentId = (_, i) => I[i];
-      currentParentId = (_, i) => P[i];
-    }
-
-    for (i = 0, n = nodes.length; i < n; ++i) {
-      d = nodes[i], node = nodes[i] = new Node(d);
-      if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) {
-        nodeKey = node.id = nodeId;
-        nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);
-      }
-      if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) {
-        node.parent = nodeId;
-      }
-    }
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i];
-      if (nodeId = node.parent) {
-        parent = nodeByKey.get(nodeId);
-        if (!parent) throw new Error("missing: " + nodeId);
-        if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
-        if (parent.children) parent.children.push(node);
-        else parent.children = [node];
-        node.parent = parent;
-      } else {
-        if (root) throw new Error("multiple roots");
-        root = node;
-      }
-    }
-
-    if (!root) throw new Error("no root");
-
-    // When imputing internal nodes, only introduce roots if needed.
-    // Then replace the imputed marker data with null.
-    if (path != null) {
-      while (root.data === imputed && root.children.length === 1) {
-        root = root.children[0], --n;
-      }
-      for (let i = nodes.length - 1; i >= 0; --i) {
-        node = nodes[i];
-        if (node.data !== imputed) break;
-        node.data = null;
-      }
-    }
-
-    root.parent = preroot;
-    root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);
-    root.parent = null;
-    if (n > 0) throw new Error("cycle");
-
-    return root;
-  }
-
-  stratify.id = function(x) {
-    return arguments.length ? (id = optional(x), stratify) : id;
-  };
-
-  stratify.parentId = function(x) {
-    return arguments.length ? (parentId = optional(x), stratify) : parentId;
-  };
-
-  stratify.path = function(x) {
-    return arguments.length ? (path = optional(x), stratify) : path;
-  };
-
-  return stratify;
-}
-
-// To normalize a path, we coerce to a string, strip the trailing slash if any
-// (as long as the trailing slash is not immediately preceded by another slash),
-// and add leading slash if missing.
-function normalize(path) {
-  path = `${path}`;
-  let i = path.length;
-  if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);
-  return path[0] === "/" ? path : `/${path}`;
-}
-
-// Walk backwards to find the first slash that is not the leading slash, e.g.:
-// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased
-// because the id of the root must be a truthy value.)
-function parentof(path) {
-  let i = path.length;
-  if (i < 2) return "";
-  while (--i > 1) if (slash(path, i)) break;
-  return path.slice(0, i);
-}
-
-// Slashes can be escaped; to determine whether a slash is a path delimiter, we
-// count the number of preceding backslashes escaping the forward slash: an odd
-// number indicates an escaped forward slash.
-function slash(path, i) {
-  if (path[i] === "/") {
-    let k = 0;
-    while (i > 0 && path[--i] === "\\") ++k;
-    if ((k & 1) === 0) return true;
-  }
-  return false;
-}
Index: de_modules/d3-hierarchy/src/tree.js
===================================================================
--- node_modules/d3-hierarchy/src/tree.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,237 +1,0 @@
-import {Node} from "./hierarchy/index.js";
-
-function defaultSeparation(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-// function radialSeparation(a, b) {
-//   return (a.parent === b.parent ? 1 : 2) / a.depth;
-// }
-
-// This function is used to traverse the left contour of a subtree (or
-// subforest). It returns the successor of v on this contour. This successor is
-// either given by the leftmost child of v or by the thread of v. The function
-// returns null if and only if v is on the highest level of its subtree.
-function nextLeft(v) {
-  var children = v.children;
-  return children ? children[0] : v.t;
-}
-
-// This function works analogously to nextLeft.
-function nextRight(v) {
-  var children = v.children;
-  return children ? children[children.length - 1] : v.t;
-}
-
-// Shifts the current subtree rooted at w+. This is done by increasing
-// prelim(w+) and mod(w+) by shift.
-function moveSubtree(wm, wp, shift) {
-  var change = shift / (wp.i - wm.i);
-  wp.c -= change;
-  wp.s += shift;
-  wm.c += change;
-  wp.z += shift;
-  wp.m += shift;
-}
-
-// All other shifts, applied to the smaller subtrees between w- and w+, are
-// performed by this function. To prepare the shifts, we have to adjust
-// change(w+), shift(w+), and change(w-).
-function executeShifts(v) {
-  var shift = 0,
-      change = 0,
-      children = v.children,
-      i = children.length,
-      w;
-  while (--i >= 0) {
-    w = children[i];
-    w.z += shift;
-    w.m += shift;
-    shift += w.s + (change += w.c);
-  }
-}
-
-// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
-// returns the specified (default) ancestor.
-function nextAncestor(vim, v, ancestor) {
-  return vim.a.parent === v.parent ? vim.a : ancestor;
-}
-
-function TreeNode(node, i) {
-  this._ = node;
-  this.parent = null;
-  this.children = null;
-  this.A = null; // default ancestor
-  this.a = this; // ancestor
-  this.z = 0; // prelim
-  this.m = 0; // mod
-  this.c = 0; // change
-  this.s = 0; // shift
-  this.t = null; // thread
-  this.i = i; // number
-}
-
-TreeNode.prototype = Object.create(Node.prototype);
-
-function treeRoot(root) {
-  var tree = new TreeNode(root, 0),
-      node,
-      nodes = [tree],
-      child,
-      children,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if (children = node._.children) {
-      node.children = new Array(n = children.length);
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = node.children[i] = new TreeNode(children[i], i));
-        child.parent = node;
-      }
-    }
-  }
-
-  (tree.parent = new TreeNode(null, 0)).children = [tree];
-  return tree;
-}
-
-// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
-export default function() {
-  var separation = defaultSeparation,
-      dx = 1,
-      dy = 1,
-      nodeSize = null;
-
-  function tree(root) {
-    var t = treeRoot(root);
-
-    // Compute the layout using Buchheim et al.’s algorithm.
-    t.eachAfter(firstWalk), t.parent.m = -t.z;
-    t.eachBefore(secondWalk);
-
-    // If a fixed node size is specified, scale x and y.
-    if (nodeSize) root.eachBefore(sizeNode);
-
-    // If a fixed tree size is specified, scale x and y based on the extent.
-    // Compute the left-most, right-most, and depth-most nodes for extents.
-    else {
-      var left = root,
-          right = root,
-          bottom = root;
-      root.eachBefore(function(node) {
-        if (node.x < left.x) left = node;
-        if (node.x > right.x) right = node;
-        if (node.depth > bottom.depth) bottom = node;
-      });
-      var s = left === right ? 1 : separation(left, right) / 2,
-          tx = s - left.x,
-          kx = dx / (right.x + s + tx),
-          ky = dy / (bottom.depth || 1);
-      root.eachBefore(function(node) {
-        node.x = (node.x + tx) * kx;
-        node.y = node.depth * ky;
-      });
-    }
-
-    return root;
-  }
-
-  // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
-  // applied recursively to the children of v, as well as the function
-  // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
-  // node v is placed to the midpoint of its outermost children.
-  function firstWalk(v) {
-    var children = v.children,
-        siblings = v.parent.children,
-        w = v.i ? siblings[v.i - 1] : null;
-    if (children) {
-      executeShifts(v);
-      var midpoint = (children[0].z + children[children.length - 1].z) / 2;
-      if (w) {
-        v.z = w.z + separation(v._, w._);
-        v.m = v.z - midpoint;
-      } else {
-        v.z = midpoint;
-      }
-    } else if (w) {
-      v.z = w.z + separation(v._, w._);
-    }
-    v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
-  }
-
-  // Computes all real x-coordinates by summing up the modifiers recursively.
-  function secondWalk(v) {
-    v._.x = v.z + v.parent.m;
-    v.m += v.parent.m;
-  }
-
-  // The core of the algorithm. Here, a new subtree is combined with the
-  // previous subtrees. Threads are used to traverse the inside and outside
-  // contours of the left and right subtree up to the highest common level. The
-  // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
-  // superscript o means outside and i means inside, the subscript - means left
-  // subtree and + means right subtree. For summing up the modifiers along the
-  // contour, we use respective variables si+, si-, so-, and so+. Whenever two
-  // nodes of the inside contours conflict, we compute the left one of the
-  // greatest uncommon ancestors using the function ANCESTOR and call MOVE
-  // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
-  // Finally, we add a new thread (if necessary).
-  function apportion(v, w, ancestor) {
-    if (w) {
-      var vip = v,
-          vop = v,
-          vim = w,
-          vom = vip.parent.children[0],
-          sip = vip.m,
-          sop = vop.m,
-          sim = vim.m,
-          som = vom.m,
-          shift;
-      while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
-        vom = nextLeft(vom);
-        vop = nextRight(vop);
-        vop.a = v;
-        shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
-        if (shift > 0) {
-          moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
-          sip += shift;
-          sop += shift;
-        }
-        sim += vim.m;
-        sip += vip.m;
-        som += vom.m;
-        sop += vop.m;
-      }
-      if (vim && !nextRight(vop)) {
-        vop.t = vim;
-        vop.m += sim - sop;
-      }
-      if (vip && !nextLeft(vom)) {
-        vom.t = vip;
-        vom.m += sip - som;
-        ancestor = v;
-      }
-    }
-    return ancestor;
-  }
-
-  function sizeNode(node) {
-    node.x *= dx;
-    node.y = node.depth * dy;
-  }
-
-  tree.separation = function(x) {
-    return arguments.length ? (separation = x, tree) : separation;
-  };
-
-  tree.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
-  };
-
-  tree.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return tree;
-}
Index: de_modules/d3-hierarchy/src/treemap/binary.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/binary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-export default function(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      i, n = nodes.length,
-      sum, sums = new Array(n + 1);
-
-  for (sums[0] = sum = i = 0; i < n; ++i) {
-    sums[i + 1] = sum += nodes[i].value;
-  }
-
-  partition(0, n, parent.value, x0, y0, x1, y1);
-
-  function partition(i, j, value, x0, y0, x1, y1) {
-    if (i >= j - 1) {
-      var node = nodes[i];
-      node.x0 = x0, node.y0 = y0;
-      node.x1 = x1, node.y1 = y1;
-      return;
-    }
-
-    var valueOffset = sums[i],
-        valueTarget = (value / 2) + valueOffset,
-        k = i + 1,
-        hi = j - 1;
-
-    while (k < hi) {
-      var mid = k + hi >>> 1;
-      if (sums[mid] < valueTarget) k = mid + 1;
-      else hi = mid;
-    }
-
-    if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
-
-    var valueLeft = sums[k] - valueOffset,
-        valueRight = value - valueLeft;
-
-    if ((x1 - x0) > (y1 - y0)) {
-      var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;
-      partition(i, k, valueLeft, x0, y0, xk, y1);
-      partition(k, j, valueRight, xk, y0, x1, y1);
-    } else {
-      var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;
-      partition(i, k, valueLeft, x0, y0, x1, yk);
-      partition(k, j, valueRight, x0, yk, x1, y1);
-    }
-  }
-}
Index: de_modules/d3-hierarchy/src/treemap/dice.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/dice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export default function(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (x1 - x0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.y0 = y0, node.y1 = y1;
-    node.x0 = x0, node.x1 = x0 += node.value * k;
-  }
-}
Index: de_modules/d3-hierarchy/src/treemap/index.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-import roundNode from "./round.js";
-import squarify from "./squarify.js";
-import {required} from "../accessors.js";
-import constant, {constantZero} from "../constant.js";
-
-export default function() {
-  var tile = squarify,
-      round = false,
-      dx = 1,
-      dy = 1,
-      paddingStack = [0],
-      paddingInner = constantZero,
-      paddingTop = constantZero,
-      paddingRight = constantZero,
-      paddingBottom = constantZero,
-      paddingLeft = constantZero;
-
-  function treemap(root) {
-    root.x0 =
-    root.y0 = 0;
-    root.x1 = dx;
-    root.y1 = dy;
-    root.eachBefore(positionNode);
-    paddingStack = [0];
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(node) {
-    var p = paddingStack[node.depth],
-        x0 = node.x0 + p,
-        y0 = node.y0 + p,
-        x1 = node.x1 - p,
-        y1 = node.y1 - p;
-    if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-    if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-    node.x0 = x0;
-    node.y0 = y0;
-    node.x1 = x1;
-    node.y1 = y1;
-    if (node.children) {
-      p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
-      x0 += paddingLeft(node) - p;
-      y0 += paddingTop(node) - p;
-      x1 -= paddingRight(node) - p;
-      y1 -= paddingBottom(node) - p;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      tile(node, x0, y0, x1, y1);
-    }
-  }
-
-  treemap.round = function(x) {
-    return arguments.length ? (round = !!x, treemap) : round;
-  };
-
-  treemap.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
-  };
-
-  treemap.tile = function(x) {
-    return arguments.length ? (tile = required(x), treemap) : tile;
-  };
-
-  treemap.padding = function(x) {
-    return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
-  };
-
-  treemap.paddingInner = function(x) {
-    return arguments.length ? (paddingInner = typeof x === "function" ? x : constant(+x), treemap) : paddingInner;
-  };
-
-  treemap.paddingOuter = function(x) {
-    return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
-  };
-
-  treemap.paddingTop = function(x) {
-    return arguments.length ? (paddingTop = typeof x === "function" ? x : constant(+x), treemap) : paddingTop;
-  };
-
-  treemap.paddingRight = function(x) {
-    return arguments.length ? (paddingRight = typeof x === "function" ? x : constant(+x), treemap) : paddingRight;
-  };
-
-  treemap.paddingBottom = function(x) {
-    return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant(+x), treemap) : paddingBottom;
-  };
-
-  treemap.paddingLeft = function(x) {
-    return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant(+x), treemap) : paddingLeft;
-  };
-
-  return treemap;
-}
Index: de_modules/d3-hierarchy/src/treemap/resquarify.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/resquarify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import treemapDice from "./dice.js";
-import treemapSlice from "./slice.js";
-import {phi, squarifyRatio} from "./squarify.js";
-
-export default (function custom(ratio) {
-
-  function resquarify(parent, x0, y0, x1, y1) {
-    if ((rows = parent._squarify) && (rows.ratio === ratio)) {
-      var rows,
-          row,
-          nodes,
-          i,
-          j = -1,
-          n,
-          m = rows.length,
-          value = parent.value;
-
-      while (++j < m) {
-        row = rows[j], nodes = row.children;
-        for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
-        if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);
-        else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);
-        value -= row.value;
-      }
-    } else {
-      parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);
-      rows.ratio = ratio;
-    }
-  }
-
-  resquarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return resquarify;
-})(phi);
Index: de_modules/d3-hierarchy/src/treemap/round.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function(node) {
-  node.x0 = Math.round(node.x0);
-  node.y0 = Math.round(node.y0);
-  node.x1 = Math.round(node.x1);
-  node.y1 = Math.round(node.y1);
-}
Index: de_modules/d3-hierarchy/src/treemap/slice.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/slice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export default function(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (y1 - y0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.x0 = x0, node.x1 = x1;
-    node.y0 = y0, node.y1 = y0 += node.value * k;
-  }
-}
Index: de_modules/d3-hierarchy/src/treemap/sliceDice.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/sliceDice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import dice from "./dice.js";
-import slice from "./slice.js";
-
-export default function(parent, x0, y0, x1, y1) {
-  (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);
-}
Index: de_modules/d3-hierarchy/src/treemap/squarify.js
===================================================================
--- node_modules/d3-hierarchy/src/treemap/squarify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-import treemapDice from "./dice.js";
-import treemapSlice from "./slice.js";
-
-export var phi = (1 + Math.sqrt(5)) / 2;
-
-export function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
-  var rows = [],
-      nodes = parent.children,
-      row,
-      nodeValue,
-      i0 = 0,
-      i1 = 0,
-      n = nodes.length,
-      dx, dy,
-      value = parent.value,
-      sumValue,
-      minValue,
-      maxValue,
-      newRatio,
-      minRatio,
-      alpha,
-      beta;
-
-  while (i0 < n) {
-    dx = x1 - x0, dy = y1 - y0;
-
-    // Find the next non-empty node.
-    do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
-    minValue = maxValue = sumValue;
-    alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
-    beta = sumValue * sumValue * alpha;
-    minRatio = Math.max(maxValue / beta, beta / minValue);
-
-    // Keep adding nodes while the aspect ratio maintains or improves.
-    for (; i1 < n; ++i1) {
-      sumValue += nodeValue = nodes[i1].value;
-      if (nodeValue < minValue) minValue = nodeValue;
-      if (nodeValue > maxValue) maxValue = nodeValue;
-      beta = sumValue * sumValue * alpha;
-      newRatio = Math.max(maxValue / beta, beta / minValue);
-      if (newRatio > minRatio) { sumValue -= nodeValue; break; }
-      minRatio = newRatio;
-    }
-
-    // Position and record the row orientation.
-    rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
-    if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
-    else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
-    value -= sumValue, i0 = i1;
-  }
-
-  return rows;
-}
-
-export default (function custom(ratio) {
-
-  function squarify(parent, x0, y0, x1, y1) {
-    squarifyRatio(ratio, parent, x0, y0, x1, y1);
-  }
-
-  squarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return squarify;
-})(phi);
Index: de_modules/d3-interpolate/LICENSE
===================================================================
--- node_modules/d3-interpolate/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-interpolate/README.md
===================================================================
--- node_modules/d3-interpolate/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,268 +1,0 @@
-# d3-interpolate
-
-This module provides a variety of interpolation methods for blending between two values. Values may be numbers, colors, strings, arrays, or even deeply-nested objects. For example:
-
-```js
-const i = d3.interpolateNumber(10, 20);
-i(0.0); // 10
-i(0.2); // 12
-i(0.5); // 15
-i(1.0); // 20
-```
-
-The returned function `i` is called an *interpolator*. Given a starting value *a* and an ending value *b*, it takes a parameter *t* in the domain [0, 1] and returns the corresponding interpolated value between *a* and *b*. An interpolator typically returns a value equivalent to *a* at *t* = 0 and a value equivalent to *b* at *t* = 1.
-
-You can interpolate more than just numbers. To find the perceptual midpoint between steelblue and brown:
-
-```js
-d3.interpolateLab("steelblue", "brown")(0.5); // "rgb(142, 92, 109)"
-```
-
-Here’s a more elaborate example demonstrating type inference used by [interpolate](#interpolate):
-
-```js
-const i = d3.interpolate({colors: ["red", "blue"]}, {colors: ["white", "black"]});
-i(0.0); // {colors: ["rgb(255, 0, 0)", "rgb(0, 0, 255)"]}
-i(0.5); // {colors: ["rgb(255, 128, 128)", "rgb(0, 0, 128)"]}
-i(1.0); // {colors: ["rgb(255, 255, 255)", "rgb(0, 0, 0)"]}
-```
-
-Note that the generic value interpolator detects not only nested objects and arrays, but also color strings and numbers embedded in strings!
-
-## Installing
-
-If you use npm, `npm install d3-interpolate`. You can also download the [latest release on GitHub](https://github.com/d3/d3-interpolate/releases/latest). For vanilla HTML in modern browsers, import d3-interpolate from Skypack:
-
-```html
-<script type="module">
-
-import {interpolateRgb} from "https://cdn.skypack.dev/d3-interpolate@3";
-
-const interpolate = interpolateRgb("steelblue", "brown");
-
-</script>
-```
-
-For legacy environments, you can load d3-interpolate’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported. (If using [color interpolation](#color-spaces), also load [d3-color](https://github.com/d3/d3-color).)
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-interpolate@3"></script>
-<script>
-
-const interpolate = d3.interpolateRgb("steelblue", "brown");
-
-</script>
-```
-
-## API Reference
-
-<a name="interpolate" href="#interpolate">#</a> d3.<b>interpolate</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/value.js), [Examples](https://observablehq.com/@d3/d3-interpolate)
-
-Returns an interpolator between the two arbitrary values *a* and *b*. The interpolator implementation is based on the type of the end value *b*, using the following algorithm:
-
-1. If *b* is null, undefined or a boolean, use the constant *b*.
-2. If *b* is a number, use [interpolateNumber](#interpolateNumber).
-3. If *b* is a [color](https://github.com/d3/d3-color/blob/master/README.md#color) or a string coercible to a color, use [interpolateRgb](#interpolateRgb).
-4. If *b* is a [date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date), use [interpolateDate](#interpolateDate).
-5. If *b* is a string, use [interpolateString](#interpolateString).
-6. If *b* is a [typed array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) of numbers, use [interpolateNumberArray](#interpolateNumberArray).
-7. If *b* is a generic [array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray), use [interpolateArray](#interpolateArray).
-8. If *b* is coercible to a number, use [interpolateNumber](#interpolateNumber).
-9. Use [interpolateObject](#interpolateObject).
-
-Based on the chosen interpolator, *a* is coerced to the suitable corresponding type.
-
-<a name="interpolateNumber" href="#interpolateNumber">#</a> d3.<b>interpolateNumber</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/number.js), [Examples](https://observablehq.com/@d3/d3-interpolatenumber)
-
-Returns an interpolator between the two numbers *a* and *b*. The returned interpolator is equivalent to:
-
-```js
-function interpolator(t) {
-  return a * (1 - t) + b * t;
-}
-```
-
-Caution: avoid interpolating to or from the number zero when the interpolator is used to generate a string. When very small values are stringified, they may be converted to scientific notation, which is an invalid attribute or style property value in older browsers. For example, the number `0.0000001` is converted to the string `"1e-7"`. This is particularly noticeable with interpolating opacity. To avoid scientific notation, start or end the transition at 1e-6: the smallest value that is not stringified in scientific notation.
-
-<a name="interpolateRound" href="#interpolateRound">#</a> d3.<b>interpolateRound</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/round.js), [Examples](https://observablehq.com/@d3/d3-interpolatenumber)
-
-Returns an interpolator between the two numbers *a* and *b*; the interpolator is similar to [interpolateNumber](#interpolateNumber), except it will round the resulting value to the nearest integer.
-
-<a name="interpolateString" href="#interpolateString">#</a> d3.<b>interpolateString</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/string.js), [Examples](https://observablehq.com/@d3/d3-interpolatestring)
-
-Returns an interpolator between the two strings *a* and *b*. The string interpolator finds numbers embedded in *a* and *b*, where each number is of the form understood by JavaScript. A few examples of numbers that will be detected within a string: `-1`, `42`, `3.14159`, and `6.0221413e+23`.
-
-For each number embedded in *b*, the interpolator will attempt to find a corresponding number in *a*. If a corresponding number is found, a numeric interpolator is created using [interpolateNumber](#interpolateNumber). The remaining parts of the string *b* are used as a template: the static parts of the string *b* remain constant for the interpolation, with the interpolated numeric values embedded in the template.
-
-For example, if *a* is `"300 12px sans-serif"`, and *b* is `"500 36px Comic-Sans"`, two embedded numbers are found. The remaining static parts (of string *b*) are a space between the two numbers (`" "`), and the suffix (`"px Comic-Sans"`). The result of the interpolator at *t* = 0.5 is `"400 24px Comic-Sans"`.
-
-<a name="interpolateDate" href="#interpolateDate">#</a> d3.<b>interpolateDate</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/date.js), [Examples](https://observablehq.com/@d3/d3-interpolatedate)
-
-Returns an interpolator between the two [dates](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) *a* and *b*.
-
-Note: **no defensive copy** of the returned date is created; the same Date instance is returned for every evaluation of the interpolator. No copy is made for performance reasons; interpolators are often part of the inner loop of [animated transitions](https://github.com/d3/d3-transition).
-
-<a name="interpolateArray" href="#interpolateArray">#</a> d3.<b>interpolateArray</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/array.js), [Examples](https://observablehq.com/@d3/d3-interpolateobject)
-
-Returns an interpolator between the two arrays *a* and *b*. If *b* is a typed array (e.g., Float64Array), [interpolateNumberArray](#interpolateNumberArray) is called instead.
-
-Internally, an array template is created that is the same length as *b*. For each element in *b*, if there exists a corresponding element in *a*, a generic interpolator is created for the two elements using [interpolate](#interpolate). If there is no such element, the static value from *b* is used in the template. Then, for the given parameter *t*, the template’s embedded interpolators are evaluated. The updated array template is then returned.
-
-For example, if *a* is the array `[0, 1]` and *b* is the array `[1, 10, 100]`, then the result of the interpolator for *t* = 0.5 is the array `[0.5, 5.5, 100]`.
-
-Note: **no defensive copy** of the template array is created; modifications of the returned array may adversely affect subsequent evaluation of the interpolator. No copy is made for performance reasons; interpolators are often part of the inner loop of [animated transitions](https://github.com/d3/d3-transition).
-
-<a name="interpolateNumberArray" href="#interpolateNumberArray">#</a> d3.<b>interpolateNumberArray</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/numberArray.js), [Examples](https://observablehq.com/@d3/d3-interpolatenumberarray)
-
-Returns an interpolator between the two arrays of numbers *a* and *b*. Internally, an array template is created that is the same type and length as *b*. For each element in *b*, if there exists a corresponding element in *a*, the values are directly interpolated in the array template. If there is no such element, the static value from *b* is copied. The updated array template is then returned.
-
-Note: For performance reasons, **no defensive copy** is made of the template array and the arguments *a* and *b*; modifications of these arrays may affect subsequent evaluation of the interpolator.
-
-<a name="interpolateObject" href="#interpolateObject">#</a> d3.<b>interpolateObject</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/object.js), [Examples](https://observablehq.com/@d3/d3-interpolateobject)
-
-Returns an interpolator between the two objects *a* and *b*. Internally, an object template is created that has the same properties as *b*. For each property in *b*, if there exists a corresponding property in *a*, a generic interpolator is created for the two elements using [interpolate](#interpolate). If there is no such property, the static value from *b* is used in the template. Then, for the given parameter *t*, the template's embedded interpolators are evaluated and the updated object template is then returned.
-
-For example, if *a* is the object `{x: 0, y: 1}` and *b* is the object `{x: 1, y: 10, z: 100}`, the result of the interpolator for *t* = 0.5 is the object `{x: 0.5, y: 5.5, z: 100}`.
-
-Object interpolation is particularly useful for *dataspace interpolation*, where data is interpolated rather than attribute values. For example, you can interpolate an object which describes an arc in a pie chart, and then use [d3.arc](https://github.com/d3/d3-shape/blob/master/README.md#arc) to compute the new SVG path data.
-
-Note: **no defensive copy** of the template object is created; modifications of the returned object may adversely affect subsequent evaluation of the interpolator. No copy is made for performance reasons; interpolators are often part of the inner loop of [animated transitions](https://github.com/d3/d3-transition).
-
-<a name="interpolateTransformCss" href="#interpolateTransformCss">#</a> d3.<b>interpolateTransformCss</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/transform/index.js#L62), [Examples](https://observablehq.com/@d3/d3-interpolatetransformcss)
-
-Returns an interpolator between the two 2D CSS transforms represented by *a* and *b*. Each transform is decomposed to a standard representation of translate, rotate, *x*-skew and scale; these component transformations are then interpolated. This behavior is standardized by CSS: see [matrix decomposition for animation](http://www.w3.org/TR/css3-2d-transforms/#matrix-decomposition).
-
-<a name="interpolateTransformSvg" href="#interpolateTransformSvg">#</a> d3.<b>interpolateTransformSvg</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/transform/index.js#L63), [Examples](https://observablehq.com/@d3/d3-interpolatetransformcss)
-
-Returns an interpolator between the two 2D SVG transforms represented by *a* and *b*. Each transform is decomposed to a standard representation of translate, rotate, *x*-skew and scale; these component transformations are then interpolated. This behavior is standardized by CSS: see [matrix decomposition for animation](http://www.w3.org/TR/css3-2d-transforms/#matrix-decomposition).
-
-<a name="interpolateZoom" href="#interpolateZoom">#</a> d3.<b>interpolateZoom</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/zoom.js), [Examples](https://observablehq.com/@d3/d3-interpolatezoom)
-
-Returns an interpolator between the two views *a* and *b* of a two-dimensional plane, based on [“Smooth and efficient zooming and panning”](http://www.win.tue.nl/~vanwijk/zoompan.pdf) by Jarke J. van Wijk and Wim A.A. Nuij. Each view is defined as an array of three numbers: *cx*, *cy* and *width*. The first two coordinates *cx*, *cy* represent the center of the viewport; the last coordinate *width* represents the size of the viewport.
-
-The returned interpolator exposes a *duration* property which encodes the recommended transition duration in milliseconds. This duration is based on the path length of the curved trajectory through *x,y* space. If you want a slower or faster transition, multiply this by an arbitrary scale factor (<i>V</i> as described in the original paper).
-
-<a name="interpolateZoom_rho" href="#interpolateZoom_rho">#</a> *interpolateZoom*.<b>rho</b>(<i>rho</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/zoom.js)<!-- , [Examples](https://observablehq.com/@d3/interpolatezoom-rho) -->
-
-Given a [zoom interpolator](#interpolateZoom), returns a new zoom interpolator using the specified curvature *rho*. When *rho* is close to 0, the interpolator is almost linear. The default curvature is sqrt(2).
-
-<a name="interpolateDiscrete" href="#interpolateDiscrete">#</a> d3.<b>interpolateDiscrete</b>(<i>values</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/discrete.js), [Examples](https://observablehq.com/@d3/d3-interpolatediscrete)
-
-Returns a discrete interpolator for the given array of *values*. The returned interpolator maps *t* in [0, 1 / *n*) to *values*[0], *t* in [1 / *n*, 2 / *n*) to *values*[1], and so on, where *n* = *values*.length. In effect, this is a lightweight [quantize scale](https://github.com/d3/d3-scale/blob/master/README.md#quantize-scales) with a fixed domain of [0, 1].
-
-### Sampling
-
-<a name="quantize" href="#quantize">#</a> d3.<b>quantize</b>(<i>interpolator</i>, <i>n</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/d3-quantize)
-
-Returns *n* uniformly-spaced samples from the specified *interpolator*, where *n* is an integer greater than one. The first sample is always at *t* = 0, and the last sample is always at *t* = 1. This can be useful in generating a fixed number of samples from a given interpolator, such as to derive the range of a [quantize scale](https://github.com/d3/d3-scale/blob/master/README.md#quantize-scales) from a [continuous interpolator](https://github.com/d3/d3-scale-chromatic/blob/master/README.md#interpolateWarm).
-
-Caution: this method will not work with interpolators that do not return defensive copies of their output, such as [d3.interpolateArray](#interpolateArray), [d3.interpolateDate](#interpolateDate) and [d3.interpolateObject](#interpolateObject). For those interpolators, you must wrap the interpolator and create a copy for each returned value.
-
-### Color Spaces
-
-<a name="interpolateRgb" href="#interpolateRgb">#</a> d3.<b>interpolateRgb</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/rgb.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/rgb.png" width="100%" height="40" alt="rgb">
-
-Or, with a corrected [gamma](#interpolate_gamma) of 2.2:
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/rgbGamma.png" width="100%" height="40" alt="rgbGamma">
-
-Returns an RGB color space interpolator between the two colors *a* and *b* with a configurable [gamma](#interpolate_gamma). If the gamma is not specified, it defaults to 1.0. The colors *a* and *b* need not be in RGB; they will be converted to RGB using [d3.rgb](https://github.com/d3/d3-color/blob/master/README.md#rgb). The return value of the interpolator is an RGB string.
-
-<a href="#interpolateRgbBasis" name="interpolateRgbBasis">#</a> d3.<b>interpolateRgbBasis</b>(<i>colors</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/rgb.js#L54), [Examples](https://observablehq.com/@d3/working-with-color)
-
-Returns a uniform nonrational B-spline interpolator through the specified array of *colors*, which are converted to [RGB color space](https://github.com/d3/d3-color/blob/master/README.md#rgb). Implicit control points are generated such that the interpolator returns *colors*[0] at *t* = 0 and *colors*[*colors*.length - 1] at *t* = 1. Opacity interpolation is not currently supported. See also [d3.interpolateBasis](#interpolateBasis), and see [d3-scale-chromatic](https://github.com/d3/d3-scale-chromatic) for examples.
-
-<a href="#interpolateRgbBasisClosed" name="interpolateRgbBasisClosed">#</a> d3.<b>interpolateRgbBasisClosed</b>(<i>colors</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/rgb.js#L55), [Examples](https://observablehq.com/@d3/working-with-color)
-
-Returns a uniform nonrational B-spline interpolator through the specified array of *colors*, which are converted to [RGB color space](https://github.com/d3/d3-color/blob/master/README.md#rgb). The control points are implicitly repeated such that the resulting spline has cyclical C² continuity when repeated around *t* in [0,1]; this is useful, for example, to create cyclical color scales. Opacity interpolation is not currently supported. See also [d3.interpolateBasisClosed](#interpolateBasisClosed), and see [d3-scale-chromatic](https://github.com/d3/d3-scale-chromatic) for examples.
-
-<a name="interpolateHsl" href="#interpolateHsl">#</a> d3.<b>interpolateHsl</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/hsl.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/hsl.png" width="100%" height="40" alt="hsl">
-
-Returns an HSL color space interpolator between the two colors *a* and *b*. The colors *a* and *b* need not be in HSL; they will be converted to HSL using [d3.hsl](https://github.com/d3/d3-color/blob/master/README.md#hsl). If either color’s hue or saturation is NaN, the opposing color’s channel value is used. The shortest path between hues is used. The return value of the interpolator is an RGB string.
-
-<a name="interpolateHslLong" href="#interpolateHslLong">#</a> d3.<b>interpolateHslLong</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/hsl.js#L21), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/hslLong.png" width="100%" height="40" alt="hslLong">
-
-Like [interpolateHsl](#interpolateHsl), but does not use the shortest path between hues.
-
-<a name="interpolateLab" href="#interpolateLab">#</a> d3.<b>interpolateLab</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/lab.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/lab.png" width="100%" height="40" alt="lab">
-
-Returns a [CIELAB color space](https://en.wikipedia.org/wiki/Lab_color_space#CIELAB) interpolator between the two colors *a* and *b*. The colors *a* and *b* need not be in CIELAB; they will be converted to CIELAB using [d3.lab](https://github.com/d3/d3-color/blob/master/README.md#lab). The return value of the interpolator is an RGB string.
-
-<a name="interpolateHcl" href="#interpolateHcl">#</a> d3.<b>interpolateHcl</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/hcl.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/hcl.png" width="100%" height="40" alt="hcl">
-
-Returns a [CIELCh<sub>ab</sub> color space](https://en.wikipedia.org/wiki/CIELAB_color_space#Cylindrical_representation:_CIELCh_or_CIEHLC) interpolator between the two colors *a* and *b*. The colors *a* and *b* need not be in CIELCh<sub>ab</sub>; they will be converted to CIELCh<sub>ab</sub> using [d3.hcl](https://github.com/d3/d3-color/blob/master/README.md#hcl). If either color’s hue or chroma is NaN, the opposing color’s channel value is used. The shortest path between hues is used. The return value of the interpolator is an RGB string.
-
-<a name="interpolateHclLong" href="#interpolateHclLong">#</a> d3.<b>interpolateHclLong</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/hcl.js#L21), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/hclLong.png" width="100%" height="40" alt="hclLong">
-
-Like [interpolateHcl](#interpolateHcl), but does not use the shortest path between hues.
-
-<a name="interpolateCubehelix" href="#interpolateCubehelix">#</a> d3.<b>interpolateCubehelix</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/cubehelix.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/cubehelix.png" width="100%" height="40" alt="cubehelix">
-
-Or, with a [gamma](#interpolate_gamma) of 3.0 to emphasize high-intensity values:
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/cubehelixGamma.png" width="100%" height="40" alt="cubehelixGamma">
-
-Returns a Cubehelix color space interpolator between the two colors *a* and *b* using a configurable [gamma](#interpolate_gamma). If the gamma is not specified, it defaults to 1.0. The colors *a* and *b* need not be in Cubehelix; they will be converted to Cubehelix using [d3.cubehelix](https://github.com/d3/d3-color/blob/master/README.md#cubehelix). If either color’s hue or saturation is NaN, the opposing color’s channel value is used. The shortest path between hues is used. The return value of the interpolator is an RGB string.
-
-<a name="interpolateCubehelixLong" href="#interpolateCubehelixLong">#</a> d3.<b>interpolateCubehelixLong</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/cubehelix.js#L29), [Examples](https://observablehq.com/@d3/working-with-color)
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/cubehelixLong.png" width="100%" height="40" alt="cubehelixLong">
-
-Or, with a [gamma](#interpolate_gamma) of 3.0 to emphasize high-intensity values:
-
-<img src="https://raw.githubusercontent.com/d3/d3-interpolate/master/img/cubehelixGammaLong.png" width="100%" height="40" alt="cubehelixGammaLong">
-
-Like [interpolateCubehelix](#interpolateCubehelix), but does not use the shortest path between hues.
-
-<a name="interpolate_gamma" href="#interpolate_gamma">#</a> <i>interpolate</i>.<b>gamma</b>(<i>gamma</i>)
-
-Given that *interpolate* is one of [interpolateRgb](#interpolateRgb), [interpolateCubehelix](#interpolateCubehelix) or [interpolateCubehelixLong](#interpolateCubehelixLong), returns a new interpolator factory of the same type using the specified *gamma*. For example, to interpolate from purple to orange with a gamma of 2.2 in RGB space:
-
-```js
-const interpolator = d3.interpolateRgb.gamma(2.2)("purple", "orange");
-```
-
-See Eric Brasseur’s article, [Gamma error in picture scaling](http://www.ericbrasseur.org/gamma.html), for more on gamma correction.
-
-<a name="interpolateHue" href="#interpolateHue">#</a> d3.<b>interpolateHue</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/hue.js), [Examples](https://observablehq.com/@d3/working-with-color)
-
-Returns an interpolator between the two hue angles *a* and *b*. If either hue is NaN, the opposing value is used. The shortest path between hues is used. The return value of the interpolator is a number in [0, 360).
-
-### Splines
-
-Whereas standard interpolators blend from a starting value *a* at *t* = 0 to an ending value *b* at *t* = 1, spline interpolators smoothly blend multiple input values for *t* in [0,1] using piecewise polynomial functions. Only cubic uniform nonrational [B-splines](https://en.wikipedia.org/wiki/B-spline) are currently supported, also known as basis splines.
-
-<a href="#interpolateBasis" name="interpolateBasis">#</a> d3.<b>interpolateBasis</b>(<i>values</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/basis.js), [Examples](https://observablehq.com/@d3/d3-interpolatebasis)
-
-Returns a uniform nonrational B-spline interpolator through the specified array of *values*, which must be numbers. Implicit control points are generated such that the interpolator returns *values*[0] at *t* = 0 and *values*[*values*.length - 1] at *t* = 1. See also [d3.curveBasis](https://github.com/d3/d3-shape/blob/master/README.md#curveBasis).
-
-<a href="#interpolateBasisClosed" name="interpolateBasisClosed">#</a> d3.<b>interpolateBasisClosed</b>(<i>values</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/basisClosed.js), [Examples](https://observablehq.com/@d3/d3-interpolatebasis)
-
-Returns a uniform nonrational B-spline interpolator through the specified array of *values*, which must be numbers. The control points are implicitly repeated such that the resulting one-dimensional spline has cyclical C² continuity when repeated around *t* in [0,1]. See also [d3.curveBasisClosed](https://github.com/d3/d3-shape/blob/master/README.md#curveBasisClosed).
-
-### Piecewise
-
-<a name="piecewise" href="#piecewise">#</a> d3.<b>piecewise</b>([<i>interpolate</i>, ]<i>values</i>) · [Source](https://github.com/d3/d3-interpolate/blob/master/src/piecewise.js), [Examples](https://observablehq.com/@d3/d3-piecewise)
-
-Returns a piecewise interpolator, composing interpolators for each adjacent pair of *values*. The returned interpolator maps *t* in [0, 1 / (*n* - 1)] to *interpolate*(*values*[0], *values*[1]), *t* in [1 / (*n* - 1), 2 / (*n* - 1)] to *interpolate*(*values*[1], *values*[2]), and so on, where *n* = *values*.length. In effect, this is a lightweight [linear scale](https://github.com/d3/d3-scale/blob/master/README.md#linear-scales). For example, to blend through red, green and blue:
-
-```js
-const interpolate = d3.piecewise(d3.interpolateRgb.gamma(2.2), ["red", "green", "blue"]);
-```
-
-If  *interpolate* is not specified, defaults to [d3.interpolate](#interpolate).
Index: de_modules/d3-interpolate/dist/d3-interpolate.js
===================================================================
--- node_modules/d3-interpolate/dist/d3-interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,590 +1,0 @@
-// https://d3js.org/d3-interpolate/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-}(this, (function (exports, d3Color) { 'use strict';
-
-function basis(t1, v0, v1, v2, v3) {
-  var t2 = t1 * t1, t3 = t2 * t1;
-  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
-      + (4 - 6 * t2 + 3 * t3) * v1
-      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
-      + t3 * v3) / 6;
-}
-
-function basis$1(values) {
-  var n = values.length - 1;
-  return function(t) {
-    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
-        v1 = values[i],
-        v2 = values[i + 1],
-        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
-        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
-    return basis((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
-
-function basisClosed(values) {
-  var n = values.length;
-  return function(t) {
-    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
-        v0 = values[(i + n - 1) % n],
-        v1 = values[i % n],
-        v2 = values[(i + 1) % n],
-        v3 = values[(i + 2) % n];
-    return basis((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
-
-var constant = x => () => x;
-
-function linear(a, d) {
-  return function(t) {
-    return a + t * d;
-  };
-}
-
-function exponential(a, b, y) {
-  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
-    return Math.pow(a + t * b, y);
-  };
-}
-
-function hue$1(a, b) {
-  var d = b - a;
-  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
-}
-
-function gamma(y) {
-  return (y = +y) === 1 ? nogamma : function(a, b) {
-    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
-  };
-}
-
-function nogamma(a, b) {
-  var d = b - a;
-  return d ? linear(a, d) : constant(isNaN(a) ? b : a);
-}
-
-var rgb = (function rgbGamma(y) {
-  var color = gamma(y);
-
-  function rgb(start, end) {
-    var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),
-        g = color(start.g, end.g),
-        b = color(start.b, end.b),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.r = r(t);
-      start.g = g(t);
-      start.b = b(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-
-  rgb.gamma = rgbGamma;
-
-  return rgb;
-})(1);
-
-function rgbSpline(spline) {
-  return function(colors) {
-    var n = colors.length,
-        r = new Array(n),
-        g = new Array(n),
-        b = new Array(n),
-        i, color;
-    for (i = 0; i < n; ++i) {
-      color = d3Color.rgb(colors[i]);
-      r[i] = color.r || 0;
-      g[i] = color.g || 0;
-      b[i] = color.b || 0;
-    }
-    r = spline(r);
-    g = spline(g);
-    b = spline(b);
-    color.opacity = 1;
-    return function(t) {
-      color.r = r(t);
-      color.g = g(t);
-      color.b = b(t);
-      return color + "";
-    };
-  };
-}
-
-var rgbBasis = rgbSpline(basis$1);
-var rgbBasisClosed = rgbSpline(basisClosed);
-
-function numberArray(a, b) {
-  if (!b) b = [];
-  var n = a ? Math.min(b.length, a.length) : 0,
-      c = b.slice(),
-      i;
-  return function(t) {
-    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
-    return c;
-  };
-}
-
-function isNumberArray(x) {
-  return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
-
-function array(a, b) {
-  return (isNumberArray(b) ? numberArray : genericArray)(a, b);
-}
-
-function genericArray(a, b) {
-  var nb = b ? b.length : 0,
-      na = a ? Math.min(nb, a.length) : 0,
-      x = new Array(na),
-      c = new Array(nb),
-      i;
-
-  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
-  for (; i < nb; ++i) c[i] = b[i];
-
-  return function(t) {
-    for (i = 0; i < na; ++i) c[i] = x[i](t);
-    return c;
-  };
-}
-
-function date(a, b) {
-  var d = new Date;
-  return a = +a, b = +b, function(t) {
-    return d.setTime(a * (1 - t) + b * t), d;
-  };
-}
-
-function number(a, b) {
-  return a = +a, b = +b, function(t) {
-    return a * (1 - t) + b * t;
-  };
-}
-
-function object(a, b) {
-  var i = {},
-      c = {},
-      k;
-
-  if (a === null || typeof a !== "object") a = {};
-  if (b === null || typeof b !== "object") b = {};
-
-  for (k in b) {
-    if (k in a) {
-      i[k] = value(a[k], b[k]);
-    } else {
-      c[k] = b[k];
-    }
-  }
-
-  return function(t) {
-    for (k in i) c[k] = i[k](t);
-    return c;
-  };
-}
-
-var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
-    reB = new RegExp(reA.source, "g");
-
-function zero(b) {
-  return function() {
-    return b;
-  };
-}
-
-function one(b) {
-  return function(t) {
-    return b(t) + "";
-  };
-}
-
-function string(a, b) {
-  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
-      am, // current match in a
-      bm, // current match in b
-      bs, // string preceding current number in b, if any
-      i = -1, // index in s
-      s = [], // string constants and placeholders
-      q = []; // number interpolators
-
-  // Coerce inputs to strings.
-  a = a + "", b = b + "";
-
-  // Interpolate pairs of numbers in a & b.
-  while ((am = reA.exec(a))
-      && (bm = reB.exec(b))) {
-    if ((bs = bm.index) > bi) { // a string precedes the next number in b
-      bs = b.slice(bi, bs);
-      if (s[i]) s[i] += bs; // coalesce with previous string
-      else s[++i] = bs;
-    }
-    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
-      if (s[i]) s[i] += bm; // coalesce with previous string
-      else s[++i] = bm;
-    } else { // interpolate non-matching numbers
-      s[++i] = null;
-      q.push({i: i, x: number(am, bm)});
-    }
-    bi = reB.lastIndex;
-  }
-
-  // Add remains of b.
-  if (bi < b.length) {
-    bs = b.slice(bi);
-    if (s[i]) s[i] += bs; // coalesce with previous string
-    else s[++i] = bs;
-  }
-
-  // Special optimization for only a single match.
-  // Otherwise, interpolate each of the numbers and rejoin the string.
-  return s.length < 2 ? (q[0]
-      ? one(q[0].x)
-      : zero(b))
-      : (b = q.length, function(t) {
-          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
-          return s.join("");
-        });
-}
-
-function value(a, b) {
-  var t = typeof b, c;
-  return b == null || t === "boolean" ? constant(b)
-      : (t === "number" ? number
-      : t === "string" ? ((c = d3Color.color(b)) ? (b = c, rgb) : string)
-      : b instanceof d3Color.color ? rgb
-      : b instanceof Date ? date
-      : isNumberArray(b) ? numberArray
-      : Array.isArray(b) ? genericArray
-      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
-      : number)(a, b);
-}
-
-function discrete(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
-
-function hue(a, b) {
-  var i = hue$1(+a, +b);
-  return function(t) {
-    var x = i(t);
-    return x - 360 * Math.floor(x / 360);
-  };
-}
-
-function round(a, b) {
-  return a = +a, b = +b, function(t) {
-    return Math.round(a * (1 - t) + b * t);
-  };
-}
-
-var degrees = 180 / Math.PI;
-
-var identity = {
-  translateX: 0,
-  translateY: 0,
-  rotate: 0,
-  skewX: 0,
-  scaleX: 1,
-  scaleY: 1
-};
-
-function decompose(a, b, c, d, e, f) {
-  var scaleX, scaleY, skewX;
-  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
-  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
-  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
-  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
-  return {
-    translateX: e,
-    translateY: f,
-    rotate: Math.atan2(b, a) * degrees,
-    skewX: Math.atan(skewX) * degrees,
-    scaleX: scaleX,
-    scaleY: scaleY
-  };
-}
-
-var svgNode;
-
-/* eslint-disable no-undef */
-function parseCss(value) {
-  const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
-  return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
-}
-
-function parseSvg(value) {
-  if (value == null) return identity;
-  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
-  svgNode.setAttribute("transform", value);
-  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;
-  value = value.matrix;
-  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
-}
-
-function interpolateTransform(parse, pxComma, pxParen, degParen) {
-
-  function pop(s) {
-    return s.length ? s.pop() + " " : "";
-  }
-
-  function translate(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push("translate(", null, pxComma, null, pxParen);
-      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
-    } else if (xb || yb) {
-      s.push("translate(" + xb + pxComma + yb + pxParen);
-    }
-  }
-
-  function rotate(a, b, s, q) {
-    if (a !== b) {
-      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
-      q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "rotate(" + b + degParen);
-    }
-  }
-
-  function skewX(a, b, s, q) {
-    if (a !== b) {
-      q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "skewX(" + b + degParen);
-    }
-  }
-
-  function scale(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
-      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
-    } else if (xb !== 1 || yb !== 1) {
-      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
-    }
-  }
-
-  return function(a, b) {
-    var s = [], // string constants and placeholders
-        q = []; // number interpolators
-    a = parse(a), b = parse(b);
-    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
-    rotate(a.rotate, b.rotate, s, q);
-    skewX(a.skewX, b.skewX, s, q);
-    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
-    a = b = null; // gc
-    return function(t) {
-      var i = -1, n = q.length, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-}
-
-var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
-var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
-
-var epsilon2 = 1e-12;
-
-function cosh(x) {
-  return ((x = Math.exp(x)) + 1 / x) / 2;
-}
-
-function sinh(x) {
-  return ((x = Math.exp(x)) - 1 / x) / 2;
-}
-
-function tanh(x) {
-  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
-}
-
-var zoom = (function zoomRho(rho, rho2, rho4) {
-
-  // p0 = [ux0, uy0, w0]
-  // p1 = [ux1, uy1, w1]
-  function zoom(p0, p1) {
-    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
-        ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
-        dx = ux1 - ux0,
-        dy = uy1 - uy0,
-        d2 = dx * dx + dy * dy,
-        i,
-        S;
-
-    // Special case for u0 ≅ u1.
-    if (d2 < epsilon2) {
-      S = Math.log(w1 / w0) / rho;
-      i = function(t) {
-        return [
-          ux0 + t * dx,
-          uy0 + t * dy,
-          w0 * Math.exp(rho * t * S)
-        ];
-      };
-    }
-
-    // General case.
-    else {
-      var d1 = Math.sqrt(d2),
-          b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
-          b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
-          r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
-          r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
-      S = (r1 - r0) / rho;
-      i = function(t) {
-        var s = t * S,
-            coshr0 = cosh(r0),
-            u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
-        return [
-          ux0 + u * dx,
-          uy0 + u * dy,
-          w0 * coshr0 / cosh(rho * s + r0)
-        ];
-      };
-    }
-
-    i.duration = S * 1000 * rho / Math.SQRT2;
-
-    return i;
-  }
-
-  zoom.rho = function(_) {
-    var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
-    return zoomRho(_1, _2, _4);
-  };
-
-  return zoom;
-})(Math.SQRT2, 2, 4);
-
-function hsl(hue) {
-  return function(start, end) {
-    var h = hue((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),
-        s = nogamma(start.s, end.s),
-        l = nogamma(start.l, end.l),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.s = s(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-var hsl$1 = hsl(hue$1);
-var hslLong = hsl(nogamma);
-
-function lab(start, end) {
-  var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),
-      a = nogamma(start.a, end.a),
-      b = nogamma(start.b, end.b),
-      opacity = nogamma(start.opacity, end.opacity);
-  return function(t) {
-    start.l = l(t);
-    start.a = a(t);
-    start.b = b(t);
-    start.opacity = opacity(t);
-    return start + "";
-  };
-}
-
-function hcl(hue) {
-  return function(start, end) {
-    var h = hue((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),
-        c = nogamma(start.c, end.c),
-        l = nogamma(start.l, end.l),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.c = c(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-var hcl$1 = hcl(hue$1);
-var hclLong = hcl(nogamma);
-
-function cubehelix(hue) {
-  return (function cubehelixGamma(y) {
-    y = +y;
-
-    function cubehelix(start, end) {
-      var h = hue((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),
-          s = nogamma(start.s, end.s),
-          l = nogamma(start.l, end.l),
-          opacity = nogamma(start.opacity, end.opacity);
-      return function(t) {
-        start.h = h(t);
-        start.s = s(t);
-        start.l = l(Math.pow(t, y));
-        start.opacity = opacity(t);
-        return start + "";
-      };
-    }
-
-    cubehelix.gamma = cubehelixGamma;
-
-    return cubehelix;
-  })(1);
-}
-
-var cubehelix$1 = cubehelix(hue$1);
-var cubehelixLong = cubehelix(nogamma);
-
-function piecewise(interpolate, values) {
-  if (values === undefined) values = interpolate, interpolate = value;
-  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
-  while (i < n) I[i] = interpolate(v, v = values[++i]);
-  return function(t) {
-    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
-    return I[i](t - i);
-  };
-}
-
-function quantize(interpolator, n) {
-  var samples = new Array(n);
-  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
-  return samples;
-}
-
-exports.interpolate = value;
-exports.interpolateArray = array;
-exports.interpolateBasis = basis$1;
-exports.interpolateBasisClosed = basisClosed;
-exports.interpolateCubehelix = cubehelix$1;
-exports.interpolateCubehelixLong = cubehelixLong;
-exports.interpolateDate = date;
-exports.interpolateDiscrete = discrete;
-exports.interpolateHcl = hcl$1;
-exports.interpolateHclLong = hclLong;
-exports.interpolateHsl = hsl$1;
-exports.interpolateHslLong = hslLong;
-exports.interpolateHue = hue;
-exports.interpolateLab = lab;
-exports.interpolateNumber = number;
-exports.interpolateNumberArray = numberArray;
-exports.interpolateObject = object;
-exports.interpolateRgb = rgb;
-exports.interpolateRgbBasis = rgbBasis;
-exports.interpolateRgbBasisClosed = rgbBasisClosed;
-exports.interpolateRound = round;
-exports.interpolateString = string;
-exports.interpolateTransformCss = interpolateTransformCss;
-exports.interpolateTransformSvg = interpolateTransformSvg;
-exports.interpolateZoom = zoom;
-exports.piecewise = piecewise;
-exports.quantize = quantize;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-interpolate/dist/d3-interpolate.min.js
===================================================================
--- node_modules/d3-interpolate/dist/d3-interpolate.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-interpolate/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-color")):"function"==typeof define&&define.amd?define(["exports","d3-color"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3)}(this,(function(t,n){"use strict";function r(t,n,r,e,a){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*r+(1+3*t+3*o-3*u)*e+u*a)/6}function e(t){var n=t.length-1;return function(e){var a=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),o=t[a],u=t[a+1],i=a>0?t[a-1]:2*o-u,c=a<n-1?t[a+2]:2*u-o;return r((e-a/n)*n,i,o,u,c)}}function a(t){var n=t.length;return function(e){var a=Math.floor(((e%=1)<0?++e:e)*n),o=t[(a+n-1)%n],u=t[a%n],i=t[(a+1)%n],c=t[(a+2)%n];return r((e-a/n)*n,o,u,i,c)}}var o=t=>()=>t;function u(t,n){return function(r){return t+r*n}}function i(t,n){var r=n-t;return r?u(t,r>180||r<-180?r-360*Math.round(r/360):r):o(isNaN(t)?n:t)}function c(t){return 1==(t=+t)?l:function(n,r){return r-n?function(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(e){return Math.pow(t+e*n,r)}}(n,r,t):o(isNaN(n)?r:n)}}function l(t,n){var r=n-t;return r?u(t,r):o(isNaN(t)?n:t)}var f=function t(r){var e=c(r);function a(t,r){var a=e((t=n.rgb(t)).r,(r=n.rgb(r)).r),o=e(t.g,r.g),u=e(t.b,r.b),i=l(t.opacity,r.opacity);return function(n){return t.r=a(n),t.g=o(n),t.b=u(n),t.opacity=i(n),t+""}}return a.gamma=t,a}(1);function s(t){return function(r){var e,a,o=r.length,u=new Array(o),i=new Array(o),c=new Array(o);for(e=0;e<o;++e)a=n.rgb(r[e]),u[e]=a.r||0,i[e]=a.g||0,c[e]=a.b||0;return u=t(u),i=t(i),c=t(c),a.opacity=1,function(t){return a.r=u(t),a.g=i(t),a.b=c(t),a+""}}}var h=s(e),p=s(a);function v(t,n){n||(n=[]);var r,e=t?Math.min(n.length,t.length):0,a=n.slice();return function(o){for(r=0;r<e;++r)a[r]=t[r]*(1-o)+n[r]*o;return a}}function g(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function M(t,n){var r,e=n?n.length:0,a=t?Math.min(e,t.length):0,o=new Array(a),u=new Array(e);for(r=0;r<a;++r)o[r]=X(t[r],n[r]);for(;r<e;++r)u[r]=n[r];return function(t){for(r=0;r<a;++r)u[r]=o[r](t);return u}}function y(t,n){var r=new Date;return t=+t,n=+n,function(e){return r.setTime(t*(1-e)+n*e),r}}function b(t,n){return t=+t,n=+n,function(r){return t*(1-r)+n*r}}function d(t,n){var r,e={},a={};for(r in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)r in t?e[r]=X(t[r],n[r]):a[r]=n[r];return function(t){for(r in e)a[r]=e[r](t);return a}}var x=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,w=new RegExp(x.source,"g");function m(t,n){var r,e,a,o=x.lastIndex=w.lastIndex=0,u=-1,i=[],c=[];for(t+="",n+="";(r=x.exec(t))&&(e=w.exec(n));)(a=e.index)>o&&(a=n.slice(o,a),i[u]?i[u]+=a:i[++u]=a),(r=r[0])===(e=e[0])?i[u]?i[u]+=e:i[++u]=e:(i[++u]=null,c.push({i:u,x:b(r,e)})),o=w.lastIndex;return o<n.length&&(a=n.slice(o),i[u]?i[u]+=a:i[++u]=a),i.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var r,e=0;e<n;++e)i[(r=c[e]).i]=r.x(t);return i.join("")})}function X(t,r){var e,a=typeof r;return null==r||"boolean"===a?o(r):("number"===a?b:"string"===a?(e=n.color(r))?(r=e,f):m:r instanceof n.color?f:r instanceof Date?y:g(r)?v:Array.isArray(r)?M:"function"!=typeof r.valueOf&&"function"!=typeof r.toString||isNaN(r)?d:b)(t,r)}var A,N=180/Math.PI,S={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Y(t,n,r,e,a,o){var u,i,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*r+n*e)&&(r-=t*c,e-=n*c),(i=Math.sqrt(r*r+e*e))&&(r/=i,e/=i,c/=i),t*e<n*r&&(t=-t,n=-n,c=-c,u=-u),{translateX:a,translateY:o,rotate:Math.atan2(n,t)*N,skewX:Math.atan(c)*N,scaleX:u,scaleY:i}}function j(t,n,r,e){function a(t){return t.length?t.pop()+" ":""}return function(o,u){var i=[],c=[];return o=t(o),u=t(u),function(t,e,a,o,u,i){if(t!==a||e!==o){var c=u.push("translate(",null,n,null,r);i.push({i:c-4,x:b(t,a)},{i:c-2,x:b(e,o)})}else(a||o)&&u.push("translate("+a+n+o+r)}(o.translateX,o.translateY,u.translateX,u.translateY,i,c),function(t,n,r,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:r.push(a(r)+"rotate(",null,e)-2,x:b(t,n)})):n&&r.push(a(r)+"rotate("+n+e)}(o.rotate,u.rotate,i,c),function(t,n,r,o){t!==n?o.push({i:r.push(a(r)+"skewX(",null,e)-2,x:b(t,n)}):n&&r.push(a(r)+"skewX("+n+e)}(o.skewX,u.skewX,i,c),function(t,n,r,e,o,u){if(t!==r||n!==e){var i=o.push(a(o)+"scale(",null,",",null,")");u.push({i:i-4,x:b(t,r)},{i:i-2,x:b(n,e)})}else 1===r&&1===e||o.push(a(o)+"scale("+r+","+e+")")}(o.scaleX,o.scaleY,u.scaleX,u.scaleY,i,c),o=u=null,function(t){for(var n,r=-1,e=c.length;++r<e;)i[(n=c[r]).i]=n.x(t);return i.join("")}}}var q=j((function(t){const n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?S:Y(n.a,n.b,n.c,n.d,n.e,n.f)}),"px, ","px)","deg)"),D=j((function(t){return null==t?S:(A||(A=document.createElementNS("http://www.w3.org/2000/svg","g")),A.setAttribute("transform",t),(t=A.transform.baseVal.consolidate())?Y((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):S)}),", ",")",")");function R(t){return((t=Math.exp(t))+1/t)/2}var T=function t(n,r,e){function a(t,a){var o,u,i=t[0],c=t[1],l=t[2],f=a[0],s=a[1],h=a[2],p=f-i,v=s-c,g=p*p+v*v;if(g<1e-12)u=Math.log(h/l)/n,o=function(t){return[i+t*p,c+t*v,l*Math.exp(n*t*u)]};else{var M=Math.sqrt(g),y=(h*h-l*l+e*g)/(2*l*r*M),b=(h*h-l*l-e*g)/(2*h*r*M),d=Math.log(Math.sqrt(y*y+1)-y),x=Math.log(Math.sqrt(b*b+1)-b);u=(x-d)/n,o=function(t){var e,a=t*u,o=R(d),f=l/(r*M)*(o*(e=n*a+d,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(d));return[i+f*p,c+f*v,l*o/R(n*a+d)]}}return o.duration=1e3*u*n/Math.SQRT2,o}return a.rho=function(n){var r=Math.max(.001,+n),e=r*r;return t(r,e,e*e)},a}(Math.SQRT2,2,4);function k(t){return function(r,e){var a=t((r=n.hsl(r)).h,(e=n.hsl(e)).h),o=l(r.s,e.s),u=l(r.l,e.l),i=l(r.opacity,e.opacity);return function(t){return r.h=a(t),r.s=o(t),r.l=u(t),r.opacity=i(t),r+""}}}var C=k(i),B=k(l);function H(t){return function(r,e){var a=t((r=n.hcl(r)).h,(e=n.hcl(e)).h),o=l(r.c,e.c),u=l(r.l,e.l),i=l(r.opacity,e.opacity);return function(t){return r.h=a(t),r.c=o(t),r.l=u(t),r.opacity=i(t),r+""}}}var I=H(i),O=H(l);function L(t){return function r(e){function a(r,a){var o=t((r=n.cubehelix(r)).h,(a=n.cubehelix(a)).h),u=l(r.s,a.s),i=l(r.l,a.l),c=l(r.opacity,a.opacity);return function(t){return r.h=o(t),r.s=u(t),r.l=i(Math.pow(t,e)),r.opacity=c(t),r+""}}return e=+e,a.gamma=r,a}(1)}var E=L(i),V=L(l);t.interpolate=X,t.interpolateArray=function(t,n){return(g(n)?v:M)(t,n)},t.interpolateBasis=e,t.interpolateBasisClosed=a,t.interpolateCubehelix=E,t.interpolateCubehelixLong=V,t.interpolateDate=y,t.interpolateDiscrete=function(t){var n=t.length;return function(r){return t[Math.max(0,Math.min(n-1,Math.floor(r*n)))]}},t.interpolateHcl=I,t.interpolateHclLong=O,t.interpolateHsl=C,t.interpolateHslLong=B,t.interpolateHue=function(t,n){var r=i(+t,+n);return function(t){var n=r(t);return n-360*Math.floor(n/360)}},t.interpolateLab=function(t,r){var e=l((t=n.lab(t)).l,(r=n.lab(r)).l),a=l(t.a,r.a),o=l(t.b,r.b),u=l(t.opacity,r.opacity);return function(n){return t.l=e(n),t.a=a(n),t.b=o(n),t.opacity=u(n),t+""}},t.interpolateNumber=b,t.interpolateNumberArray=v,t.interpolateObject=d,t.interpolateRgb=f,t.interpolateRgbBasis=h,t.interpolateRgbBasisClosed=p,t.interpolateRound=function(t,n){return t=+t,n=+n,function(r){return Math.round(t*(1-r)+n*r)}},t.interpolateString=m,t.interpolateTransformCss=q,t.interpolateTransformSvg=D,t.interpolateZoom=T,t.piecewise=function(t,n){void 0===n&&(n=t,t=X);for(var r=0,e=n.length-1,a=n[0],o=new Array(e<0?0:e);r<e;)o[r]=t(a,a=n[++r]);return function(t){var n=Math.max(0,Math.min(e-1,Math.floor(t*=e)));return o[n](t-n)}},t.quantize=function(t,n){for(var r=new Array(n),e=0;e<n;++e)r[e]=t(e/(n-1));return r},Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-interpolate/package.json
===================================================================
--- node_modules/d3-interpolate/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-  "name": "d3-interpolate",
-  "version": "3.0.1",
-  "description": "Interpolate numbers, colors, strings, arrays, objects, whatever!",
-  "homepage": "https://d3js.org/d3-interpolate/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-interpolate.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "interpolate",
-    "interpolation",
-    "color"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-interpolate.min.js",
-  "unpkg": "dist/d3-interpolate.min.js",
-  "exports": {
-    "umd": "./dist/d3-interpolate.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-color": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-interpolate/src/array.js
===================================================================
--- node_modules/d3-interpolate/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import value from "./value.js";
-import numberArray, {isNumberArray} from "./numberArray.js";
-
-export default function(a, b) {
-  return (isNumberArray(b) ? numberArray : genericArray)(a, b);
-}
-
-export function genericArray(a, b) {
-  var nb = b ? b.length : 0,
-      na = a ? Math.min(nb, a.length) : 0,
-      x = new Array(na),
-      c = new Array(nb),
-      i;
-
-  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
-  for (; i < nb; ++i) c[i] = b[i];
-
-  return function(t) {
-    for (i = 0; i < na; ++i) c[i] = x[i](t);
-    return c;
-  };
-}
Index: de_modules/d3-interpolate/src/basis.js
===================================================================
--- node_modules/d3-interpolate/src/basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-export function basis(t1, v0, v1, v2, v3) {
-  var t2 = t1 * t1, t3 = t2 * t1;
-  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
-      + (4 - 6 * t2 + 3 * t3) * v1
-      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
-      + t3 * v3) / 6;
-}
-
-export default function(values) {
-  var n = values.length - 1;
-  return function(t) {
-    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
-        v1 = values[i],
-        v2 = values[i + 1],
-        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
-        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
-    return basis((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
Index: de_modules/d3-interpolate/src/basisClosed.js
===================================================================
--- node_modules/d3-interpolate/src/basisClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import {basis} from "./basis.js";
-
-export default function(values) {
-  var n = values.length;
-  return function(t) {
-    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
-        v0 = values[(i + n - 1) % n],
-        v1 = values[i % n],
-        v2 = values[(i + 1) % n],
-        v3 = values[(i + 2) % n];
-    return basis((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
Index: de_modules/d3-interpolate/src/color.js
===================================================================
--- node_modules/d3-interpolate/src/color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import constant from "./constant.js";
-
-function linear(a, d) {
-  return function(t) {
-    return a + t * d;
-  };
-}
-
-function exponential(a, b, y) {
-  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
-    return Math.pow(a + t * b, y);
-  };
-}
-
-export function hue(a, b) {
-  var d = b - a;
-  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
-}
-
-export function gamma(y) {
-  return (y = +y) === 1 ? nogamma : function(a, b) {
-    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
-  };
-}
-
-export default function nogamma(a, b) {
-  var d = b - a;
-  return d ? linear(a, d) : constant(isNaN(a) ? b : a);
-}
Index: de_modules/d3-interpolate/src/constant.js
===================================================================
--- node_modules/d3-interpolate/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => () => x;
Index: de_modules/d3-interpolate/src/cubehelix.js
===================================================================
--- node_modules/d3-interpolate/src/cubehelix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import {cubehelix as colorCubehelix} from "d3-color";
-import color, {hue} from "./color.js";
-
-function cubehelix(hue) {
-  return (function cubehelixGamma(y) {
-    y = +y;
-
-    function cubehelix(start, end) {
-      var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),
-          s = color(start.s, end.s),
-          l = color(start.l, end.l),
-          opacity = color(start.opacity, end.opacity);
-      return function(t) {
-        start.h = h(t);
-        start.s = s(t);
-        start.l = l(Math.pow(t, y));
-        start.opacity = opacity(t);
-        return start + "";
-      };
-    }
-
-    cubehelix.gamma = cubehelixGamma;
-
-    return cubehelix;
-  })(1);
-}
-
-export default cubehelix(hue);
-export var cubehelixLong = cubehelix(color);
Index: de_modules/d3-interpolate/src/date.js
===================================================================
--- node_modules/d3-interpolate/src/date.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function(a, b) {
-  var d = new Date;
-  return a = +a, b = +b, function(t) {
-    return d.setTime(a * (1 - t) + b * t), d;
-  };
-}
Index: de_modules/d3-interpolate/src/discrete.js
===================================================================
--- node_modules/d3-interpolate/src/discrete.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
Index: de_modules/d3-interpolate/src/hcl.js
===================================================================
--- node_modules/d3-interpolate/src/hcl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import {hcl as colorHcl} from "d3-color";
-import color, {hue} from "./color.js";
-
-function hcl(hue) {
-  return function(start, end) {
-    var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),
-        c = color(start.c, end.c),
-        l = color(start.l, end.l),
-        opacity = color(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.c = c(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-export default hcl(hue);
-export var hclLong = hcl(color);
Index: de_modules/d3-interpolate/src/hsl.js
===================================================================
--- node_modules/d3-interpolate/src/hsl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import {hsl as colorHsl} from "d3-color";
-import color, {hue} from "./color.js";
-
-function hsl(hue) {
-  return function(start, end) {
-    var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),
-        s = color(start.s, end.s),
-        l = color(start.l, end.l),
-        opacity = color(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.s = s(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-export default hsl(hue);
-export var hslLong = hsl(color);
Index: de_modules/d3-interpolate/src/hue.js
===================================================================
--- node_modules/d3-interpolate/src/hue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import {hue} from "./color.js";
-
-export default function(a, b) {
-  var i = hue(+a, +b);
-  return function(t) {
-    var x = i(t);
-    return x - 360 * Math.floor(x / 360);
-  };
-}
Index: de_modules/d3-interpolate/src/index.js
===================================================================
--- node_modules/d3-interpolate/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export {default as interpolate} from "./value.js";
-export {default as interpolateArray} from "./array.js";
-export {default as interpolateBasis} from "./basis.js";
-export {default as interpolateBasisClosed} from "./basisClosed.js";
-export {default as interpolateDate} from "./date.js";
-export {default as interpolateDiscrete} from "./discrete.js";
-export {default as interpolateHue} from "./hue.js";
-export {default as interpolateNumber} from "./number.js";
-export {default as interpolateNumberArray} from "./numberArray.js";
-export {default as interpolateObject} from "./object.js";
-export {default as interpolateRound} from "./round.js";
-export {default as interpolateString} from "./string.js";
-export {interpolateTransformCss, interpolateTransformSvg} from "./transform/index.js";
-export {default as interpolateZoom} from "./zoom.js";
-export {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from "./rgb.js";
-export {default as interpolateHsl, hslLong as interpolateHslLong} from "./hsl.js";
-export {default as interpolateLab} from "./lab.js";
-export {default as interpolateHcl, hclLong as interpolateHclLong} from "./hcl.js";
-export {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from "./cubehelix.js";
-export {default as piecewise} from "./piecewise.js";
-export {default as quantize} from "./quantize.js";
Index: de_modules/d3-interpolate/src/lab.js
===================================================================
--- node_modules/d3-interpolate/src/lab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {lab as colorLab} from "d3-color";
-import color from "./color.js";
-
-export default function lab(start, end) {
-  var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),
-      a = color(start.a, end.a),
-      b = color(start.b, end.b),
-      opacity = color(start.opacity, end.opacity);
-  return function(t) {
-    start.l = l(t);
-    start.a = a(t);
-    start.b = b(t);
-    start.opacity = opacity(t);
-    return start + "";
-  };
-}
Index: de_modules/d3-interpolate/src/number.js
===================================================================
--- node_modules/d3-interpolate/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(a, b) {
-  return a = +a, b = +b, function(t) {
-    return a * (1 - t) + b * t;
-  };
-}
Index: de_modules/d3-interpolate/src/numberArray.js
===================================================================
--- node_modules/d3-interpolate/src/numberArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function(a, b) {
-  if (!b) b = [];
-  var n = a ? Math.min(b.length, a.length) : 0,
-      c = b.slice(),
-      i;
-  return function(t) {
-    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
-    return c;
-  };
-}
-
-export function isNumberArray(x) {
-  return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
Index: de_modules/d3-interpolate/src/object.js
===================================================================
--- node_modules/d3-interpolate/src/object.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import value from "./value.js";
-
-export default function(a, b) {
-  var i = {},
-      c = {},
-      k;
-
-  if (a === null || typeof a !== "object") a = {};
-  if (b === null || typeof b !== "object") b = {};
-
-  for (k in b) {
-    if (k in a) {
-      i[k] = value(a[k], b[k]);
-    } else {
-      c[k] = b[k];
-    }
-  }
-
-  return function(t) {
-    for (k in i) c[k] = i[k](t);
-    return c;
-  };
-}
Index: de_modules/d3-interpolate/src/piecewise.js
===================================================================
--- node_modules/d3-interpolate/src/piecewise.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {default as value} from "./value.js";
-
-export default function piecewise(interpolate, values) {
-  if (values === undefined) values = interpolate, interpolate = value;
-  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
-  while (i < n) I[i] = interpolate(v, v = values[++i]);
-  return function(t) {
-    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
-    return I[i](t - i);
-  };
-}
Index: de_modules/d3-interpolate/src/quantize.js
===================================================================
--- node_modules/d3-interpolate/src/quantize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(interpolator, n) {
-  var samples = new Array(n);
-  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
-  return samples;
-}
Index: de_modules/d3-interpolate/src/rgb.js
===================================================================
--- node_modules/d3-interpolate/src/rgb.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-import {rgb as colorRgb} from "d3-color";
-import basis from "./basis.js";
-import basisClosed from "./basisClosed.js";
-import nogamma, {gamma} from "./color.js";
-
-export default (function rgbGamma(y) {
-  var color = gamma(y);
-
-  function rgb(start, end) {
-    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),
-        g = color(start.g, end.g),
-        b = color(start.b, end.b),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.r = r(t);
-      start.g = g(t);
-      start.b = b(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-
-  rgb.gamma = rgbGamma;
-
-  return rgb;
-})(1);
-
-function rgbSpline(spline) {
-  return function(colors) {
-    var n = colors.length,
-        r = new Array(n),
-        g = new Array(n),
-        b = new Array(n),
-        i, color;
-    for (i = 0; i < n; ++i) {
-      color = colorRgb(colors[i]);
-      r[i] = color.r || 0;
-      g[i] = color.g || 0;
-      b[i] = color.b || 0;
-    }
-    r = spline(r);
-    g = spline(g);
-    b = spline(b);
-    color.opacity = 1;
-    return function(t) {
-      color.r = r(t);
-      color.g = g(t);
-      color.b = b(t);
-      return color + "";
-    };
-  };
-}
-
-export var rgbBasis = rgbSpline(basis);
-export var rgbBasisClosed = rgbSpline(basisClosed);
Index: de_modules/d3-interpolate/src/round.js
===================================================================
--- node_modules/d3-interpolate/src/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(a, b) {
-  return a = +a, b = +b, function(t) {
-    return Math.round(a * (1 - t) + b * t);
-  };
-}
Index: de_modules/d3-interpolate/src/string.js
===================================================================
--- node_modules/d3-interpolate/src/string.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-import number from "./number.js";
-
-var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
-    reB = new RegExp(reA.source, "g");
-
-function zero(b) {
-  return function() {
-    return b;
-  };
-}
-
-function one(b) {
-  return function(t) {
-    return b(t) + "";
-  };
-}
-
-export default function(a, b) {
-  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
-      am, // current match in a
-      bm, // current match in b
-      bs, // string preceding current number in b, if any
-      i = -1, // index in s
-      s = [], // string constants and placeholders
-      q = []; // number interpolators
-
-  // Coerce inputs to strings.
-  a = a + "", b = b + "";
-
-  // Interpolate pairs of numbers in a & b.
-  while ((am = reA.exec(a))
-      && (bm = reB.exec(b))) {
-    if ((bs = bm.index) > bi) { // a string precedes the next number in b
-      bs = b.slice(bi, bs);
-      if (s[i]) s[i] += bs; // coalesce with previous string
-      else s[++i] = bs;
-    }
-    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
-      if (s[i]) s[i] += bm; // coalesce with previous string
-      else s[++i] = bm;
-    } else { // interpolate non-matching numbers
-      s[++i] = null;
-      q.push({i: i, x: number(am, bm)});
-    }
-    bi = reB.lastIndex;
-  }
-
-  // Add remains of b.
-  if (bi < b.length) {
-    bs = b.slice(bi);
-    if (s[i]) s[i] += bs; // coalesce with previous string
-    else s[++i] = bs;
-  }
-
-  // Special optimization for only a single match.
-  // Otherwise, interpolate each of the numbers and rejoin the string.
-  return s.length < 2 ? (q[0]
-      ? one(q[0].x)
-      : zero(b))
-      : (b = q.length, function(t) {
-          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
-          return s.join("");
-        });
-}
Index: de_modules/d3-interpolate/src/transform/decompose.js
===================================================================
--- node_modules/d3-interpolate/src/transform/decompose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-var degrees = 180 / Math.PI;
-
-export var identity = {
-  translateX: 0,
-  translateY: 0,
-  rotate: 0,
-  skewX: 0,
-  scaleX: 1,
-  scaleY: 1
-};
-
-export default function(a, b, c, d, e, f) {
-  var scaleX, scaleY, skewX;
-  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
-  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
-  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
-  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
-  return {
-    translateX: e,
-    translateY: f,
-    rotate: Math.atan2(b, a) * degrees,
-    skewX: Math.atan(skewX) * degrees,
-    scaleX: scaleX,
-    scaleY: scaleY
-  };
-}
Index: de_modules/d3-interpolate/src/transform/index.js
===================================================================
--- node_modules/d3-interpolate/src/transform/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-import number from "../number.js";
-import {parseCss, parseSvg} from "./parse.js";
-
-function interpolateTransform(parse, pxComma, pxParen, degParen) {
-
-  function pop(s) {
-    return s.length ? s.pop() + " " : "";
-  }
-
-  function translate(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push("translate(", null, pxComma, null, pxParen);
-      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
-    } else if (xb || yb) {
-      s.push("translate(" + xb + pxComma + yb + pxParen);
-    }
-  }
-
-  function rotate(a, b, s, q) {
-    if (a !== b) {
-      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
-      q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "rotate(" + b + degParen);
-    }
-  }
-
-  function skewX(a, b, s, q) {
-    if (a !== b) {
-      q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "skewX(" + b + degParen);
-    }
-  }
-
-  function scale(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
-      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
-    } else if (xb !== 1 || yb !== 1) {
-      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
-    }
-  }
-
-  return function(a, b) {
-    var s = [], // string constants and placeholders
-        q = []; // number interpolators
-    a = parse(a), b = parse(b);
-    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
-    rotate(a.rotate, b.rotate, s, q);
-    skewX(a.skewX, b.skewX, s, q);
-    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
-    a = b = null; // gc
-    return function(t) {
-      var i = -1, n = q.length, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-}
-
-export var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
-export var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
Index: de_modules/d3-interpolate/src/transform/parse.js
===================================================================
--- node_modules/d3-interpolate/src/transform/parse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import decompose, {identity} from "./decompose.js";
-
-var svgNode;
-
-/* eslint-disable no-undef */
-export function parseCss(value) {
-  const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
-  return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
-}
-
-export function parseSvg(value) {
-  if (value == null) return identity;
-  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
-  svgNode.setAttribute("transform", value);
-  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;
-  value = value.matrix;
-  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
-}
Index: de_modules/d3-interpolate/src/value.js
===================================================================
--- node_modules/d3-interpolate/src/value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import {color} from "d3-color";
-import rgb from "./rgb.js";
-import {genericArray} from "./array.js";
-import date from "./date.js";
-import number from "./number.js";
-import object from "./object.js";
-import string from "./string.js";
-import constant from "./constant.js";
-import numberArray, {isNumberArray} from "./numberArray.js";
-
-export default function(a, b) {
-  var t = typeof b, c;
-  return b == null || t === "boolean" ? constant(b)
-      : (t === "number" ? number
-      : t === "string" ? ((c = color(b)) ? (b = c, rgb) : string)
-      : b instanceof color ? rgb
-      : b instanceof Date ? date
-      : isNumberArray(b) ? numberArray
-      : Array.isArray(b) ? genericArray
-      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
-      : number)(a, b);
-}
Index: de_modules/d3-interpolate/src/zoom.js
===================================================================
--- node_modules/d3-interpolate/src/zoom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-var epsilon2 = 1e-12;
-
-function cosh(x) {
-  return ((x = Math.exp(x)) + 1 / x) / 2;
-}
-
-function sinh(x) {
-  return ((x = Math.exp(x)) - 1 / x) / 2;
-}
-
-function tanh(x) {
-  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
-}
-
-export default (function zoomRho(rho, rho2, rho4) {
-
-  // p0 = [ux0, uy0, w0]
-  // p1 = [ux1, uy1, w1]
-  function zoom(p0, p1) {
-    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
-        ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
-        dx = ux1 - ux0,
-        dy = uy1 - uy0,
-        d2 = dx * dx + dy * dy,
-        i,
-        S;
-
-    // Special case for u0 ≅ u1.
-    if (d2 < epsilon2) {
-      S = Math.log(w1 / w0) / rho;
-      i = function(t) {
-        return [
-          ux0 + t * dx,
-          uy0 + t * dy,
-          w0 * Math.exp(rho * t * S)
-        ];
-      }
-    }
-
-    // General case.
-    else {
-      var d1 = Math.sqrt(d2),
-          b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
-          b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
-          r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
-          r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
-      S = (r1 - r0) / rho;
-      i = function(t) {
-        var s = t * S,
-            coshr0 = cosh(r0),
-            u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
-        return [
-          ux0 + u * dx,
-          uy0 + u * dy,
-          w0 * coshr0 / cosh(rho * s + r0)
-        ];
-      }
-    }
-
-    i.duration = S * 1000 * rho / Math.SQRT2;
-
-    return i;
-  }
-
-  zoom.rho = function(_) {
-    var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
-    return zoomRho(_1, _2, _4);
-  };
-
-  return zoom;
-})(Math.SQRT2, 2, 4);
Index: de_modules/d3-path/LICENSE
===================================================================
--- node_modules/d3-path/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2015-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-path/README.md
===================================================================
--- node_modules/d3-path/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-# d3-path
-
-Say you have some code that draws to a 2D canvas:
-
-```js
-function drawCircle(context, radius) {
-  context.moveTo(radius, 0);
-  context.arc(0, 0, radius, 0, 2 * Math.PI);
-}
-```
-
-The d3-path module lets you take this exact code and additionally render to [SVG](http://www.w3.org/TR/SVG/paths.html). It works by [serializing](#path_toString) [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls to [SVG path data](http://www.w3.org/TR/SVG/paths.html#PathData). For example:
-
-```js
-const context = d3.path();
-drawCircle(context, 40);
-pathElement.setAttribute("d", context.toString());
-```
-
-Now code you write once can be used with both Canvas (for performance) and SVG (for convenience). For a practical example, see [d3-shape](https://github.com/d3/d3-shape).
-
-## Installing
-
-If you use npm, `npm install d3-path`. You can also download the [latest release on GitHub](https://github.com/d3/d3-path/releases/latest). In modern browsers, you can import d3-path from jsDelivr:
-
-```html
-<script type="module">
-
-import {path} from "https://cdn.jsdelivr.net/npm/d3-path@3/+esm";
-
-const p = path();
-p.moveTo(1, 2);
-p.lineTo(3, 4);
-p.closePath();
-
-</script>
-```
-
-For legacy environments, you can load d3-path’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-path@3"></script>
-<script>
-
-const path = d3.path();
-
-</script>
-```
-
-## API Reference
-
-<a name="path" href="#path">#</a> d3.<b>path</b>() · [Source](https://github.com/d3/d3-path/blob/master/src/path.js), [Examples](https://observablehq.com/@d3/d3-path)
-
-Constructs a new path serializer that implements [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods).
-
-<a name="path_moveTo" href="#path_moveTo">#</a> <i>path</i>.<b>moveTo</b>(<i>x</i>, <i>y</i>)
-
-Move to the specified point ⟨*x*, *y*⟩. Equivalent to [*context*.moveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-moveto) and SVG’s [“moveto” command](http://www.w3.org/TR/SVG/paths.html#PathDataMovetoCommands).
-
-<a name="path_closePath" href="#path_closePath">#</a> <i>path</i>.<b>closePath</b>()
-
-Ends the current subpath and causes an automatic straight line to be drawn from the current point to the initial point of the current subpath. Equivalent to [*context*.closePath](http://www.w3.org/TR/2dcontext/#dom-context-2d-closepath) and SVG’s [“closepath” command](http://www.w3.org/TR/SVG/paths.html#PathDataClosePathCommand).
-
-<a name="path_lineTo" href="#path_lineTo">#</a> <i>path</i>.<b>lineTo</b>(<i>x</i>, <i>y</i>)
-
-Draws a straight line from the current point to the specified point ⟨*x*, *y*⟩. Equivalent to [*context*.lineTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-lineto) and SVG’s [“lineto” command](http://www.w3.org/TR/SVG/paths.html#PathDataLinetoCommands).
-
-<a name="path_quadraticCurveTo" href="#path_quadraticCurveTo">#</a> <i>path</i>.<b>quadraticCurveTo</b>(<i>cpx</i>, <i>cpy</i>, <i>x</i>, <i>y</i>)
-
-Draws a quadratic Bézier segment from the current point to the specified point ⟨*x*, *y*⟩, with the specified control point ⟨*cpx*, *cpy*⟩. Equivalent to [*context*.quadraticCurveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-quadraticcurveto) and SVG’s [quadratic Bézier curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataQuadraticBezierCommands).
-
-<a name="path_bezierCurveTo" href="#path_bezierCurveTo">#</a> <i>path</i>.<b>bezierCurveTo</b>(<i>cpx1</i>, <i>cpy1</i>, <i>cpx2</i>, <i>cpy2</i>, <i>x</i>, <i>y</i>)
-
-Draws a cubic Bézier segment from the current point to the specified point ⟨*x*, *y*⟩, with the specified control points ⟨*cpx1*, *cpy1*⟩ and ⟨*cpx2*, *cpy2*⟩. Equivalent to [*context*.bezierCurveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-beziercurveto) and SVG’s [cubic Bézier curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataCubicBezierCommands).
-
-<a name="path_arcTo" href="#path_arcTo">#</a> <i>path</i>.<b>arcTo</b>(<i>x1</i>, <i>y1</i>, <i>x2</i>, <i>y2</i>, <i>radius</i>)
-
-Draws a circular arc segment with the specified *radius* that starts tangent to the line between the current point and the specified point ⟨*x1*, *y1*⟩ and ends tangent to the line between the specified points ⟨*x1*, *y1*⟩ and ⟨*x2*, *y2*⟩. If the first tangent point is not equal to the current point, a straight line is drawn between the current point and the first tangent point. Equivalent to [*context*.arcTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-arcto) and uses SVG’s [elliptical arc curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands).
-
-<a name="path_arc" href="#path_arc">#</a> <i>path</i>.<b>arc</b>(<i>x</i>, <i>y</i>, <i>radius</i>, <i>startAngle</i>, <i>endAngle</i>[, <i>anticlockwise</i>])
-
-Draws a circular arc segment with the specified center ⟨*x*, *y*⟩, *radius*, *startAngle* and *endAngle*. If *anticlockwise* is true, the arc is drawn in the anticlockwise direction; otherwise, it is drawn in the clockwise direction. If the current point is not equal to the starting point of the arc, a straight line is drawn from the current point to the start of the arc. Equivalent to [*context*.arc](http://www.w3.org/TR/2dcontext/#dom-context-2d-arc) and uses SVG’s [elliptical arc curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands).
-
-<a name="path_rect" href="#path_rect">#</a> <i>path</i>.<b>rect</b>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>)
-
-Creates a new subpath containing just the four points ⟨*x*, *y*⟩, ⟨*x* + *w*, *y*⟩, ⟨*x* + *w*, *y* + *h*⟩, ⟨*x*, *y* + *h*⟩, with those four points connected by straight lines, and then marks the subpath as closed. Equivalent to [*context*.rect](http://www.w3.org/TR/2dcontext/#dom-context-2d-rect) and uses SVG’s [“lineto” commands](http://www.w3.org/TR/SVG/paths.html#PathDataLinetoCommands).
-
-<a name="path_toString" href="#path_toString">#</a> <i>path</i>.<b>toString</b>()
-
-Returns the string representation of this *path* according to SVG’s [path data specification](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-<a name="pathRound" href="#pathRound">#</a> d3.<b>pathRound</b>(*digits* = 3) · [Source](https://github.com/d3/d3-path/blob/master/src/path.js), [Examples](https://observablehq.com/@d3/d3-path)
-
-Like [d3.path](#path), except limits the digits after the decimal to the specified number of *digits*.
Index: de_modules/d3-path/dist/d3-path.js
===================================================================
--- node_modules/d3-path/dist/d3-path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,169 +1,0 @@
-// https://d3js.org/d3-path/ v3.1.0 Copyright 2015-2022 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-const pi = Math.PI,
-    tau = 2 * pi,
-    epsilon = 1e-6,
-    tauEpsilon = tau - epsilon;
-
-function append(strings) {
-  this._ += strings[0];
-  for (let i = 1, n = strings.length; i < n; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound(digits) {
-  let d = Math.floor(digits);
-  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
-  if (d > 15) return append;
-  const k = 10 ** d;
-  return function(strings) {
-    this._ += strings[0];
-    for (let i = 1, n = strings.length; i < n; ++i) {
-      this._ += Math.round(arguments[i] * k) / k + strings[i];
-    }
-  };
-}
-
-class Path {
-  constructor(digits) {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-    this._append = digits == null ? append : appendRound(digits);
-  }
-  moveTo(x, y) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._append`Z`;
-    }
-  }
-  lineTo(x, y) {
-    this._append`L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  quadraticCurveTo(x1, y1, x, y) {
-    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  bezierCurveTo(x1, y1, x2, y2, x, y) {
-    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arcTo(x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let x0 = this._x1,
-        y0 = this._y1,
-        x21 = x2 - x1,
-        y21 = y2 - y1,
-        x01 = x0 - x1,
-        y01 = y0 - y1,
-        l01_2 = x01 * x01 + y01 * y01;
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._append`M${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon));
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
-      this._append`L${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      let x20 = x2 - x0,
-          y20 = y2 - y0,
-          l21_2 = x21 * x21 + y21 * y21,
-          l20_2 = x20 * x20 + y20 * y20,
-          l21 = Math.sqrt(l21_2),
-          l01 = Math.sqrt(l01_2),
-          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-          t01 = l / l01,
-          t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon) {
-        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
-      }
-
-      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
-    }
-  }
-  arc(x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let dx = r * Math.cos(a0),
-        dy = r * Math.sin(a0),
-        x0 = x + dx,
-        y0 = y + dy,
-        cw = 1 ^ ccw,
-        da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._append`M${x0},${y0}`;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
-      this._append`L${x0},${y0}`;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau + tau;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon) {
-      this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;
-    }
-  }
-  rect(x, y, w, h) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
-  }
-  toString() {
-    return this._;
-  }
-}
-
-function path() {
-  return new Path;
-}
-
-// Allow instanceof d3.path
-path.prototype = Path.prototype;
-
-function pathRound(digits = 3) {
-  return new Path(+digits);
-}
-
-exports.Path = Path;
-exports.path = path;
-exports.pathRound = pathRound;
-
-}));
Index: de_modules/d3-path/dist/d3-path.min.js
===================================================================
--- node_modules/d3-path/dist/d3-path.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-path/ v3.1.0 Copyright 2015-2022 Mike Bostock
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";const i=Math.PI,s=2*i,h=1e-6,e=s-h;function n(t){this._+=t[0];for(let i=1,s=t.length;i<s;++i)this._+=arguments[i]+t[i]}class _{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?n:function(t){let i=Math.floor(t);if(!(i>=0))throw new Error(`invalid digits: ${t}`);if(i>15)return n;const s=10**i;return function(t){this._+=t[0];for(let i=1,h=t.length;i<h;++i)this._+=Math.round(arguments[i]*s)/s+t[i]}}(t)}moveTo(t,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,i){this._append`L${this._x1=+t},${this._y1=+i}`}quadraticCurveTo(t,i,s,h){this._append`Q${+t},${+i},${this._x1=+s},${this._y1=+h}`}bezierCurveTo(t,i,s,h,e,n){this._append`C${+t},${+i},${+s},${+h},${this._x1=+e},${this._y1=+n}`}arcTo(t,s,e,n,_){if(t=+t,s=+s,e=+e,n=+n,(_=+_)<0)throw new Error(`negative radius: ${_}`);let a=this._x1,$=this._y1,o=e-t,r=n-s,p=a-t,d=$-s,l=p*p+d*d;if(null===this._x1)this._append`M${this._x1=t},${this._y1=s}`;else if(l>h)if(Math.abs(d*o-r*p)>h&&_){let u=e-a,f=n-$,x=o*o+r*r,y=u*u+f*f,c=Math.sqrt(x),M=Math.sqrt(l),b=_*Math.tan((i-Math.acos((x+l-y)/(2*c*M)))/2),g=b/M,w=b/c;Math.abs(g-1)>h&&this._append`L${t+g*p},${s+g*d}`,this._append`A${_},${_},0,0,${+(d*u>p*f)},${this._x1=t+w*o},${this._y1=s+w*r}`}else this._append`L${this._x1=t},${this._y1=s}`;else;}arc(t,n,_,a,$,o){if(t=+t,n=+n,o=!!o,(_=+_)<0)throw new Error(`negative radius: ${_}`);let r=_*Math.cos(a),p=_*Math.sin(a),d=t+r,l=n+p,u=1^o,f=o?a-$:$-a;null===this._x1?this._append`M${d},${l}`:(Math.abs(this._x1-d)>h||Math.abs(this._y1-l)>h)&&this._append`L${d},${l}`,_&&(f<0&&(f=f%s+s),f>e?this._append`A${_},${_},0,1,${u},${t-r},${n-p}A${_},${_},0,1,${u},${this._x1=d},${this._y1=l}`:f>h&&this._append`A${_},${_},0,${+(f>=i)},${u},${this._x1=t+_*Math.cos($)},${this._y1=n+_*Math.sin($)}`)}rect(t,i,s,h){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}h${s=+s}v${+h}h${-s}Z`}toString(){return this._}}function a(){return new _}a.prototype=_.prototype,t.Path=_,t.path=a,t.pathRound=function(t=3){return new _(+t)}}));
Index: de_modules/d3-path/package.json
===================================================================
--- node_modules/d3-path/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-{
-  "name": "d3-path",
-  "version": "3.1.0",
-  "description": "Serialize Canvas path commands to SVG.",
-  "homepage": "https://d3js.org/d3-path/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-path.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "canvas",
-    "path",
-    "svg",
-    "graphics",
-    "CanvasRenderingContext2D",
-    "CanvasPathMethods",
-    "Path2D"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-path.min.js",
-  "unpkg": "dist/d3-path.min.js",
-  "exports": {
-    "umd": "./dist/d3-path.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "8",
-    "mocha": "10",
-    "rollup": "3",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-path/src/index.js
===================================================================
--- node_modules/d3-path/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {Path, path, pathRound} from "./path.js";
Index: de_modules/d3-path/src/path.js
===================================================================
--- node_modules/d3-path/src/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,156 +1,0 @@
-const pi = Math.PI,
-    tau = 2 * pi,
-    epsilon = 1e-6,
-    tauEpsilon = tau - epsilon;
-
-function append(strings) {
-  this._ += strings[0];
-  for (let i = 1, n = strings.length; i < n; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound(digits) {
-  let d = Math.floor(digits);
-  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
-  if (d > 15) return append;
-  const k = 10 ** d;
-  return function(strings) {
-    this._ += strings[0];
-    for (let i = 1, n = strings.length; i < n; ++i) {
-      this._ += Math.round(arguments[i] * k) / k + strings[i];
-    }
-  };
-}
-
-export class Path {
-  constructor(digits) {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-    this._append = digits == null ? append : appendRound(digits);
-  }
-  moveTo(x, y) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._append`Z`;
-    }
-  }
-  lineTo(x, y) {
-    this._append`L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  quadraticCurveTo(x1, y1, x, y) {
-    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  bezierCurveTo(x1, y1, x2, y2, x, y) {
-    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arcTo(x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let x0 = this._x1,
-        y0 = this._y1,
-        x21 = x2 - x1,
-        y21 = y2 - y1,
-        x01 = x0 - x1,
-        y01 = y0 - y1,
-        l01_2 = x01 * x01 + y01 * y01;
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._append`M${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon));
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
-      this._append`L${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      let x20 = x2 - x0,
-          y20 = y2 - y0,
-          l21_2 = x21 * x21 + y21 * y21,
-          l20_2 = x20 * x20 + y20 * y20,
-          l21 = Math.sqrt(l21_2),
-          l01 = Math.sqrt(l01_2),
-          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-          t01 = l / l01,
-          t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon) {
-        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
-      }
-
-      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
-    }
-  }
-  arc(x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let dx = r * Math.cos(a0),
-        dy = r * Math.sin(a0),
-        x0 = x + dx,
-        y0 = y + dy,
-        cw = 1 ^ ccw,
-        da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._append`M${x0},${y0}`;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
-      this._append`L${x0},${y0}`;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau + tau;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon) {
-      this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;
-    }
-  }
-  rect(x, y, w, h) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
-  }
-  toString() {
-    return this._;
-  }
-}
-
-export function path() {
-  return new Path;
-}
-
-// Allow instanceof d3.path
-path.prototype = Path.prototype;
-
-export function pathRound(digits = 3) {
-  return new Path(+digits);
-}
Index: de_modules/d3-polygon/LICENSE
===================================================================
--- node_modules/d3-polygon/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-polygon/README.md
===================================================================
--- node_modules/d3-polygon/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-# d3-polygon
-
-This module provides a few basic geometric operations for two-dimensional polygons. Each polygon is represented as an array of two-element arrays [​[<i>x1</i>, <i>y1</i>], [<i>x2</i>, <i>y2</i>], …], and may either be closed (wherein the first and last point are the same) or open (wherein they are not). Typically polygons are in counterclockwise order, assuming a coordinate system where the origin ⟨0,0⟩ is in the top-left corner.
-
-## Installing
-
-If you use npm, `npm install d3-polygon`. You can also download the [latest release on GitHub](https://github.com/d3/d3-polygon/releases/latest). For vanilla HTML in modern browsers, import d3-polygon from Skypack:
-
-```html
-<script type="module">
-
-import {polygonHull} from "https://cdn.skypack.dev/d3-polygon@3";
-
-const hull = polygonHull(points);
-
-</script>
-```
-
-For legacy environments, you can load d3-polygon’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-polygon@3"></script>
-<script>
-
-const hull = d3.polygonHull(points);
-
-</script>
-```
-
-## API Reference
-
-<a href="#polygonArea" name="polygonArea">#</a> d3.<b>polygonArea</b>(<i>polygon</i>) [<>](https://github.com/d3/d3-polygon/blob/master/src/area.js "Source Code")
-
-Returns the signed area of the specified *polygon*. If the vertices of the polygon are in counterclockwise order (assuming a coordinate system where the origin ⟨0,0⟩ is in the top-left corner), the returned area is positive; otherwise it is negative, or zero.
-
-<a href="#polygonCentroid" name="polygonCentroid">#</a> d3.<b>polygonCentroid</b>(<i>polygon</i>) [<>](https://github.com/d3/d3-polygon/blob/master/src/centroid.js "Source Code")
-
-Returns the [centroid](https://en.wikipedia.org/wiki/Centroid) of the specified *polygon*.
-
-<a href="#polygonHull" name="polygonHull">#</a> d3.<b>polygonHull</b>(<i>points</i>) [<>](https://github.com/d3/d3-polygon/blob/master/src/hull.js#L23 "Source Code")
-
-<a href="http://bl.ocks.org/mbostock/6f14f7b7f267a85f7cdc"><img src="https://raw.githubusercontent.com/d3/d3-polygon/master/img/hull.png" width="250" height="250"></a>
-
-Returns the [convex hull](https://en.wikipedia.org/wiki/Convex_hull) of the specified *points* using [Andrew’s monotone chain algorithm](http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain). The returned hull is represented as an array containing a subset of the input *points* arranged in counterclockwise order. Returns null if *points* has fewer than three elements.
-
-<a href="#polygonContains" name="polygonContains">#</a> d3.<b>polygonContains</b>(<i>polygon</i>, <i>point</i>) [<>](https://github.com/d3/d3-polygon/blob/master/src/contains.js "Source Code")
-
-Returns true if and only if the specified *point* is inside the specified *polygon*.
-
-<a href="#polygonLength" name="polygonLength">#</a> d3.<b>polygonLength</b>(<i>polygon</i>) [<>](https://github.com/d3/d3-polygon/blob/master/src/length.js "Source Code")
-
-Returns the length of the perimeter of the specified *polygon*.
Index: de_modules/d3-polygon/dist/d3-polygon.js
===================================================================
--- node_modules/d3-polygon/dist/d3-polygon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,150 +1,0 @@
-// https://d3js.org/d3-polygon/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-function area(polygon) {
-  var i = -1,
-      n = polygon.length,
-      a,
-      b = polygon[n - 1],
-      area = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    area += a[1] * b[0] - a[0] * b[1];
-  }
-
-  return area / 2;
-}
-
-function centroid(polygon) {
-  var i = -1,
-      n = polygon.length,
-      x = 0,
-      y = 0,
-      a,
-      b = polygon[n - 1],
-      c,
-      k = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    k += c = a[0] * b[1] - b[0] * a[1];
-    x += (a[0] + b[0]) * c;
-    y += (a[1] + b[1]) * c;
-  }
-
-  return k *= 3, [x / k, y / k];
-}
-
-// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
-// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
-// right, +y is up). Returns a positive value if ABC is counter-clockwise,
-// negative if clockwise, and zero if the points are collinear.
-function cross(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
-}
-
-function lexicographicOrder(a, b) {
-  return a[0] - b[0] || a[1] - b[1];
-}
-
-// Computes the upper convex hull per the monotone chain algorithm.
-// Assumes points.length >= 3, is sorted by x, unique in y.
-// Returns an array of indices into points in left-to-right order.
-function computeUpperHullIndexes(points) {
-  const n = points.length,
-      indexes = [0, 1];
-  let size = 2, i;
-
-  for (i = 2; i < n; ++i) {
-    while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
-    indexes[size++] = i;
-  }
-
-  return indexes.slice(0, size); // remove popped points
-}
-
-function hull(points) {
-  if ((n = points.length) < 3) return null;
-
-  var i,
-      n,
-      sortedPoints = new Array(n),
-      flippedPoints = new Array(n);
-
-  for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
-  sortedPoints.sort(lexicographicOrder);
-  for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
-
-  var upperIndexes = computeUpperHullIndexes(sortedPoints),
-      lowerIndexes = computeUpperHullIndexes(flippedPoints);
-
-  // Construct the hull polygon, removing possible duplicate endpoints.
-  var skipLeft = lowerIndexes[0] === upperIndexes[0],
-      skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
-      hull = [];
-
-  // Add upper hull in right-to-l order.
-  // Then add lower hull in left-to-right order.
-  for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
-  for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
-
-  return hull;
-}
-
-function contains(polygon, point) {
-  var n = polygon.length,
-      p = polygon[n - 1],
-      x = point[0], y = point[1],
-      x0 = p[0], y0 = p[1],
-      x1, y1,
-      inside = false;
-
-  for (var i = 0; i < n; ++i) {
-    p = polygon[i], x1 = p[0], y1 = p[1];
-    if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
-    x0 = x1, y0 = y1;
-  }
-
-  return inside;
-}
-
-function length(polygon) {
-  var i = -1,
-      n = polygon.length,
-      b = polygon[n - 1],
-      xa,
-      ya,
-      xb = b[0],
-      yb = b[1],
-      perimeter = 0;
-
-  while (++i < n) {
-    xa = xb;
-    ya = yb;
-    b = polygon[i];
-    xb = b[0];
-    yb = b[1];
-    xa -= xb;
-    ya -= yb;
-    perimeter += Math.hypot(xa, ya);
-  }
-
-  return perimeter;
-}
-
-exports.polygonArea = area;
-exports.polygonCentroid = centroid;
-exports.polygonContains = contains;
-exports.polygonHull = hull;
-exports.polygonLength = length;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-polygon/dist/d3-polygon.min.js
===================================================================
--- node_modules/d3-polygon/dist/d3-polygon.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-polygon/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";function e(n,e){return n[0]-e[0]||n[1]-e[1]}function t(n){const e=n.length,t=[0,1];let o,r=2;for(o=2;o<e;++o){for(;r>1&&(f=n[t[r-2]],l=n[t[r-1]],u=n[o],(l[0]-f[0])*(u[1]-f[1])-(l[1]-f[1])*(u[0]-f[0])<=0);)--r;t[r++]=o}var f,l,u;return t.slice(0,r)}n.polygonArea=function(n){for(var e,t=-1,o=n.length,r=n[o-1],f=0;++t<o;)e=r,r=n[t],f+=e[1]*r[0]-e[0]*r[1];return f/2},n.polygonCentroid=function(n){for(var e,t,o=-1,r=n.length,f=0,l=0,u=n[r-1],i=0;++o<r;)e=u,u=n[o],i+=t=e[0]*u[1]-u[0]*e[1],f+=(e[0]+u[0])*t,l+=(e[1]+u[1])*t;return[f/(i*=3),l/i]},n.polygonContains=function(n,e){for(var t,o,r=n.length,f=n[r-1],l=e[0],u=e[1],i=f[0],g=f[1],h=!1,a=0;a<r;++a)t=(f=n[a])[0],(o=f[1])>u!=g>u&&l<(i-t)*(u-o)/(g-o)+t&&(h=!h),i=t,g=o;return h},n.polygonHull=function(n){if((r=n.length)<3)return null;var o,r,f=new Array(r),l=new Array(r);for(o=0;o<r;++o)f[o]=[+n[o][0],+n[o][1],o];for(f.sort(e),o=0;o<r;++o)l[o]=[f[o][0],-f[o][1]];var u=t(f),i=t(l),g=i[0]===u[0],h=i[i.length-1]===u[u.length-1],a=[];for(o=u.length-1;o>=0;--o)a.push(n[f[u[o]][2]]);for(o=+g;o<i.length-h;++o)a.push(n[f[i[o]][2]]);return a},n.polygonLength=function(n){for(var e,t,o=-1,r=n.length,f=n[r-1],l=f[0],u=f[1],i=0;++o<r;)e=l,t=u,e-=l=(f=n[o])[0],t-=u=f[1],i+=Math.hypot(e,t);return i},Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-polygon/package.json
===================================================================
--- node_modules/d3-polygon/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-{
-  "name": "d3-polygon",
-  "version": "3.0.1",
-  "description": "Operations for two-dimensional polygons.",
-  "homepage": "https://d3js.org/d3-polygon/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-polygon.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "polygon",
-    "hull",
-    "geometry",
-    "graphics"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-polygon.min.js",
-  "unpkg": "dist/d3-polygon.min.js",
-  "exports": {
-    "umd": "./dist/d3-polygon.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-polygon/src/area.js
===================================================================
--- node_modules/d3-polygon/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export default function(polygon) {
-  var i = -1,
-      n = polygon.length,
-      a,
-      b = polygon[n - 1],
-      area = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    area += a[1] * b[0] - a[0] * b[1];
-  }
-
-  return area / 2;
-}
Index: de_modules/d3-polygon/src/centroid.js
===================================================================
--- node_modules/d3-polygon/src/centroid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function(polygon) {
-  var i = -1,
-      n = polygon.length,
-      x = 0,
-      y = 0,
-      a,
-      b = polygon[n - 1],
-      c,
-      k = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    k += c = a[0] * b[1] - b[0] * a[1];
-    x += (a[0] + b[0]) * c;
-    y += (a[1] + b[1]) * c;
-  }
-
-  return k *= 3, [x / k, y / k];
-}
Index: de_modules/d3-polygon/src/contains.js
===================================================================
--- node_modules/d3-polygon/src/contains.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-export default function(polygon, point) {
-  var n = polygon.length,
-      p = polygon[n - 1],
-      x = point[0], y = point[1],
-      x0 = p[0], y0 = p[1],
-      x1, y1,
-      inside = false;
-
-  for (var i = 0; i < n; ++i) {
-    p = polygon[i], x1 = p[0], y1 = p[1];
-    if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
-    x0 = x1, y0 = y1;
-  }
-
-  return inside;
-}
Index: de_modules/d3-polygon/src/cross.js
===================================================================
--- node_modules/d3-polygon/src/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
-// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
-// right, +y is up). Returns a positive value if ABC is counter-clockwise,
-// negative if clockwise, and zero if the points are collinear.
-export default function(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
-}
Index: de_modules/d3-polygon/src/hull.js
===================================================================
--- node_modules/d3-polygon/src/hull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import cross from "./cross.js";
-
-function lexicographicOrder(a, b) {
-  return a[0] - b[0] || a[1] - b[1];
-}
-
-// Computes the upper convex hull per the monotone chain algorithm.
-// Assumes points.length >= 3, is sorted by x, unique in y.
-// Returns an array of indices into points in left-to-right order.
-function computeUpperHullIndexes(points) {
-  const n = points.length,
-      indexes = [0, 1];
-  let size = 2, i;
-
-  for (i = 2; i < n; ++i) {
-    while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
-    indexes[size++] = i;
-  }
-
-  return indexes.slice(0, size); // remove popped points
-}
-
-export default function(points) {
-  if ((n = points.length) < 3) return null;
-
-  var i,
-      n,
-      sortedPoints = new Array(n),
-      flippedPoints = new Array(n);
-
-  for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
-  sortedPoints.sort(lexicographicOrder);
-  for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
-
-  var upperIndexes = computeUpperHullIndexes(sortedPoints),
-      lowerIndexes = computeUpperHullIndexes(flippedPoints);
-
-  // Construct the hull polygon, removing possible duplicate endpoints.
-  var skipLeft = lowerIndexes[0] === upperIndexes[0],
-      skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
-      hull = [];
-
-  // Add upper hull in right-to-l order.
-  // Then add lower hull in left-to-right order.
-  for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
-  for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
-
-  return hull;
-}
Index: de_modules/d3-polygon/src/index.js
===================================================================
--- node_modules/d3-polygon/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export {default as polygonArea} from "./area.js";
-export {default as polygonCentroid} from "./centroid.js";
-export {default as polygonHull} from "./hull.js";
-export {default as polygonContains} from "./contains.js";
-export {default as polygonLength} from "./length.js";
Index: de_modules/d3-polygon/src/length.js
===================================================================
--- node_modules/d3-polygon/src/length.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-export default function(polygon) {
-  var i = -1,
-      n = polygon.length,
-      b = polygon[n - 1],
-      xa,
-      ya,
-      xb = b[0],
-      yb = b[1],
-      perimeter = 0;
-
-  while (++i < n) {
-    xa = xb;
-    ya = yb;
-    b = polygon[i];
-    xb = b[0];
-    yb = b[1];
-    xa -= xb;
-    ya -= yb;
-    perimeter += Math.hypot(xa, ya);
-  }
-
-  return perimeter;
-}
Index: de_modules/d3-quadtree/LICENSE
===================================================================
--- node_modules/d3-quadtree/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-quadtree/README.md
===================================================================
--- node_modules/d3-quadtree/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,181 +1,0 @@
-# d3-quadtree
-
-A [quadtree](https://en.wikipedia.org/wiki/Quadtree) recursively partitions two-dimensional space into squares, dividing each square into four equally-sized squares. Each distinct point exists in a unique leaf [node](#nodes); coincident points are represented by a linked list. Quadtrees can accelerate various spatial operations, such as the [Barnes–Hut approximation](https://en.wikipedia.org/wiki/Barnes–Hut_simulation) for computing many-body forces, collision detection, and searching for nearby points.
-
-<a href="http://bl.ocks.org/mbostock/9078690"><img src="http://bl.ocks.org/mbostock/raw/9078690/thumbnail.png" width="202"></a>
-<a href="http://bl.ocks.org/mbostock/4343214"><img src="http://bl.ocks.org/mbostock/raw/4343214/thumbnail.png" width="202"></a>
-
-## Installing
-
-If you use npm, `npm install d3-quadtree`. You can also download the [latest release on GitHub](https://github.com/d3/d3-quadtree/releases/latest). For vanilla HTML in modern browsers, import d3-quadtree from Skypack:
-
-```html
-<script type="module">
-
-import {quadtree} from "https://cdn.skypack.dev/d3-quadtree@3";
-
-const tree = quadtree();
-
-</script>
-```
-
-For legacy environments, you can load d3-quadtree’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-quadtree@3"></script>
-<script>
-
-const tree = d3.quadtree();
-
-</script>
-```
-
-## API Reference
-
-<a name="quadtree" href="#quadtree">#</a> d3.<b>quadtree</b>([<i>data</i>[, <i>x</i>, <i>y</i>]]) [<>](https://github.com/d3/d3-quadtree/blob/master/src/quadtree.js "Source")
-
-Creates a new, empty quadtree with an empty [extent](#quadtree_extent) and the default [*x*-](#quadtree_x) and [*y*-](#quadtree_y)accessors. If *data* is specified, [adds](#quadtree_addAll) the specified array of data to the quadtree. This is equivalent to:
-
-```js
-const tree = d3.quadtree()
-    .addAll(data);
-```
-
-If *x* and *y* are also specified, sets the [*x*-](#quadtree_x) and [*y*-](#quadtree_y) accessors to the specified functions before adding the specified array of data to the quadtree, equivalent to:
-
-```js
-const tree = d3.quadtree()
-    .x(x)
-    .y(y)
-    .addAll(data);
-```
-
-<a name="quadtree_x" href="#quadtree_x">#</a> <i>quadtree</i>.<b>x</b>([<i>x</i>]) [<>](https://github.com/d3/d3-quadtree/blob/master/src/x.js "Source")
-
-If *x* is specified, sets the current *x*-coordinate accessor and returns the quadtree. If *x* is not specified, returns the current *x*-accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-The *x*-acccessor is used to derive the *x*-coordinate of data when [adding](#quadtree_add) to and [removing](#quadtree_remove) from the tree. It is also used when [finding](#quadtree_find) to re-access the coordinates of data previously added to the tree; therefore, the *x*- and *y*-accessors must be consistent, returning the same value given the same input.
-
-<a name="quadtree_y" href="#quadtree_y">#</a> <i>quadtree</i>.<b>y</b>([<i>y</i>]) [<>](https://github.com/d3/d3-quadtree/blob/master/src/y.js "Source")
-
-If *y* is specified, sets the current *y*-coordinate accessor and returns the quadtree. If *y* is not specified, returns the current *y*-accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-The *y*-acccessor is used to derive the *y*-coordinate of data when [adding](#quadtree_add) to and [removing](#quadtree_remove) from the tree. It is also used when [finding](#quadtree_find) to re-access the coordinates of data previously added to the tree; therefore, the *x*- and *y*-accessors must be consistent, returning the same value given the same input.
-
-<a name="quadtree_extent" href="#quadtree_extent">#</a> <i>quadtree</i>.<b>extent</b>([*extent*]) [<>](https://github.com/d3/d3-quadtree/blob/master/src/extent.js "Source")
-
-If *extent* is specified, expands the quadtree to [cover](#quadtree_cover) the specified points [[*x0*, *y0*], [*x1*, *y1*]] and returns the quadtree. If *extent* is not specified, returns the quadtree’s current extent [[*x0*, *y0*], [*x1*, *y1*]], where *x0* and *y0* are the inclusive lower bounds and *x1* and *y1* are the inclusive upper bounds, or undefined if the quadtree has no extent. The extent may also be expanded by calling [*quadtree*.cover](#quadtree_cover) or [*quadtree*.add](#quadtree_add).
-
-<a name="quadtree_cover" href="#quadtree_cover">#</a> <i>quadtree</i>.<b>cover</b>(<i>x</i>, <i>y</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/cover.js "Source")
-
-Expands the quadtree to cover the specified point ⟨*x*,*y*⟩, and returns the quadtree. If the quadtree’s extent already covers the specified point, this method does nothing. If the quadtree has an extent, the extent is repeatedly doubled to cover the specified point, wrapping the [root](#quadtree_root) [node](#nodes) as necessary; if the quadtree is empty, the extent is initialized to the extent [[⌊*x*⌋, ⌊*y*⌋], [⌈*x*⌉, ⌈*y*⌉]]. (Rounding is necessary such that if the extent is later doubled, the boundaries of existing quadrants do not change due to floating point error.)
-
-<a name="quadtree_add" href="#quadtree_add">#</a> <i>quadtree</i>.<b>add</b>(<i>datum</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/add.js "Source")
-
-Adds the specified *datum* to the quadtree, deriving its coordinates ⟨*x*,*y*⟩ using the current [*x*-](#quadtree_x) and [*y*-](#quadtree_y)accessors, and returns the quadtree. If the new point is outside the current [extent](#quadtree_extent) of the quadtree, the quadtree is automatically expanded to [cover](#quadtree_cover) the new point.
-
-<a name="quadtree_addAll" href="#quadtree_addAll">#</a> <i>quadtree</i>.<b>addAll</b>(<i>data</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/add.js "Source")
-
-Adds the specified array of *data* to the quadtree, deriving each element’s coordinates ⟨*x*,*y*⟩ using the current [*x*-](#quadtree_x) and [*y*-](#quadtree_y)accessors, and return this quadtree. This is approximately equivalent to calling [*quadtree*.add](#quadtree_add) repeatedly:
-
-```js
-for (let i = 0, n = data.length; i < n; ++i) {
-  quadtree.add(data[i]);
-}
-```
-
-However, this method results in a more compact quadtree because the extent of the *data* is computed first before adding the data.
-
-<a name="quadtree_remove" href="#quadtree_remove">#</a> <i>quadtree</i>.<b>remove</b>(<i>datum</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/remove.js "Source")
-
-Removes the specified *datum* from the quadtree, deriving its coordinates ⟨*x*,*y*⟩ using the current [*x*-](#quadtree_x) and [*y*-](#quadtree_y)accessors, and returns the quadtree. If the specified *datum* does not exist in this quadtree, this method does nothing.
-
-<a name="quadtree_removeAll" href="#quadtree_removeAll">#</a> <i>quadtree</i>.<b>removeAll</b>(<i>data</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/remove.js "Source")
-
-Removes the specified *data* from the quadtree, deriving their coordinates ⟨*x*,*y*⟩ using the current [*x*-](#quadtree_x) and [*y*-](#quadtree_y)accessors, and returns the quadtree. If a specified datum does not exist in this quadtree, it is ignored.
-
-<a name="quadtree_copy" href="#quadtree_copy">#</a> <i>quadtree</i>.<b>copy</b>()
-
-Returns a copy of the quadtree. All [nodes](#nodes) in the returned quadtree are identical copies of the corresponding node in the quadtree; however, any data in the quadtree is shared by reference and not copied.
-
-<a name="quadtree_root" href="#quadtree_root">#</a> <i>quadtree</i>.<b>root</b>() [<>](https://github.com/d3/d3-quadtree/blob/master/src/root.js "Source")
-
-Returns the root [node](#nodes) of the quadtree.
-
-<a name="quadtree_data" href="#quadtree_data">#</a> <i>quadtree</i>.<b>data</b>() [<>](https://github.com/d3/d3-quadtree/blob/master/src/data.js "Source")
-
-Returns an array of all data in the quadtree.
-
-<a name="quadtree_size" href="#quadtree_size">#</a> <i>quadtree</i>.<b>size</b>() [<>](https://github.com/d3/d3-quadtree/blob/master/src/size.js "Source")
-
-Returns the total number of data in the quadtree.
-
-<a name="quadtree_find" href="#quadtree_find">#</a> <i>quadtree</i>.<b>find</b>(<i>x</i>, <i>y</i>[, <i>radius</i>]) [<>](https://github.com/d3/d3-quadtree/blob/master/src/find.js "Source")
-
-Returns the datum closest to the position ⟨*x*,*y*⟩ with the given search *radius*. If *radius* is not specified, it defaults to infinity. If there is no datum within the search area, returns undefined.
-
-<a name="quadtree_visit" href="#quadtree_visit">#</a> <i>quadtree</i>.<b>visit</b>(<i>callback</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/visit.js "Source")
-
-Visits each [node](#nodes) in the quadtree in pre-order traversal, invoking the specified *callback* with arguments *node*, *x0*, *y0*, *x1*, *y1* for each node, where *node* is the node being visited, ⟨*x0*, *y0*⟩ are the lower bounds of the node, and ⟨*x1*, *y1*⟩ are the upper bounds, and returns the quadtree. (Assuming that positive *x* is right and positive *y* is down, as is typically the case in Canvas and SVG, ⟨*x0*, *y0*⟩ is the top-left corner and ⟨*x1*, *y1*⟩ is the lower-right corner; however, the coordinate system is arbitrary, so more formally *x0* <= *x1* and *y0* <= *y1*.)
-
-If the *callback* returns true for a given node, then the children of that node are not visited; otherwise, all child nodes are visited. This can be used to quickly visit only parts of the tree, for example when using the [Barnes–Hut approximation](https://en.wikipedia.org/wiki/Barnes–Hut_simulation). Note, however, that child quadrants are always visited in sibling order: top-left, top-right, bottom-left, bottom-right. In cases such as [search](#quadtree_find), visiting siblings in a specific order may be faster.
-
-As an example, the following visits the quadtree and returns all the nodes within a rectangular extent [xmin, ymin, xmax, ymax], ignoring quads that cannot possibly contain any such node:
-
-```js
-function search(quadtree, xmin, ymin, xmax, ymax) {
-  const results = [];
-  quadtree.visit((node, x1, y1, x2, y2) => {
-    if (!node.length) {
-      do {
-        let d = node.data;
-        if (d[0] >= xmin && d[0] < xmax && d[1] >= ymin && d[1] < ymax) {
-          results.push(d);
-        }
-      } while (node = node.next);
-    }
-    return x1 >= xmax || y1 >= ymax || x2 < xmin || y2 < ymin;
-  });
-  return results;
-}
-```
-
-<a name="quadtree_visitAfter" href="#quadtree_visitAfter">#</a> <i>quadtree</i>.<b>visitAfter</b>(<i>callback</i>) [<>](https://github.com/d3/d3-quadtree/blob/master/src/visitAfter.js "Source")
-
-Visits each [node](#nodes) in the quadtree in post-order traversal, invoking the specified *callback* with arguments *node*, *x0*, *y0*, *x1*, *y1* for each node, where *node* is the node being visited, ⟨*x0*, *y0*⟩ are the lower bounds of the node, and ⟨*x1*, *y1*⟩ are the upper bounds, and returns the quadtree. (Assuming that positive *x* is right and positive *y* is down, as is typically the case in Canvas and SVG, ⟨*x0*, *y0*⟩ is the top-left corner and ⟨*x1*, *y1*⟩ is the lower-right corner; however, the coordinate system is arbitrary, so more formally *x0* <= *x1* and *y0* <= *y1*.) Returns *root*.
-
-### Nodes
-
-Internal nodes of the quadtree are represented as four-element arrays in left-to-right, top-to-bottom order:
-
-* `0` - the top-left quadrant, if any.
-* `1` - the top-right quadrant, if any.
-* `2` - the bottom-left quadrant, if any.
-* `3` - the bottom-right quadrant, if any.
-
-A child quadrant may be undefined if it is empty.
-
-Leaf nodes are represented as objects with the following properties:
-
-* `data` - the data associated with this point, as passed to [*quadtree*.add](#quadtree_add).
-* `next` - the next datum in this leaf, if any.
-
-The `length` property may be used to distinguish leaf nodes from internal nodes: it is undefined for leaf nodes, and 4 for internal nodes. For example, to iterate over all data in a leaf node:
-
-```js
-if (!node.length) do console.log(node.data); while (node = node.next);
-```
-
-The point’s *x*- and *y*-coordinates **must not be modified** while the point is in the quadtree. To update a point’s position, [remove](#quadtree_remove) the point and then re-[add](#quadtree_add) it to the quadtree at the new position. Alternatively, you may discard the existing quadtree entirely and create a new one from scratch; this may be more efficient if many of the points have moved.
Index: de_modules/d3-quadtree/dist/d3-quadtree.js
===================================================================
--- node_modules/d3-quadtree/dist/d3-quadtree.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,419 +1,0 @@
-// https://d3js.org/d3-quadtree/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-function tree_add(d) {
-  const x = +this._x.call(null, d),
-      y = +this._y.call(null, d);
-  return add(this.cover(x, y), x, y, d);
-}
-
-function add(tree, x, y, d) {
-  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
-
-  var parent,
-      node = tree._root,
-      leaf = {data: d},
-      x0 = tree._x0,
-      y0 = tree._y0,
-      x1 = tree._x1,
-      y1 = tree._y1,
-      xm,
-      ym,
-      xp,
-      yp,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return tree._root = leaf, tree;
-
-  // Find the existing leaf for the new point, or add it.
-  while (node.length) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
-  }
-
-  // Is the new point is exactly coincident with the existing point?
-  xp = +tree._x.call(null, node.data);
-  yp = +tree._y.call(null, node.data);
-  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
-
-  // Otherwise, split the leaf node until the old and new point are separated.
-  do {
-    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
-  return parent[j] = node, parent[i] = leaf, tree;
-}
-
-function addAll(data) {
-  var d, i, n = data.length,
-      x,
-      y,
-      xz = new Array(n),
-      yz = new Array(n),
-      x0 = Infinity,
-      y0 = Infinity,
-      x1 = -Infinity,
-      y1 = -Infinity;
-
-  // Compute the points and their extent.
-  for (i = 0; i < n; ++i) {
-    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
-    xz[i] = x;
-    yz[i] = y;
-    if (x < x0) x0 = x;
-    if (x > x1) x1 = x;
-    if (y < y0) y0 = y;
-    if (y > y1) y1 = y;
-  }
-
-  // If there were no (valid) points, abort.
-  if (x0 > x1 || y0 > y1) return this;
-
-  // Expand the tree to cover the new points.
-  this.cover(x0, y0).cover(x1, y1);
-
-  // Add the new points.
-  for (i = 0; i < n; ++i) {
-    add(this, xz[i], yz[i], data[i]);
-  }
-
-  return this;
-}
-
-function tree_cover(x, y) {
-  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
-
-  var x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1;
-
-  // If the quadtree has no extent, initialize them.
-  // Integer extent are necessary so that if we later double the extent,
-  // the existing quadrant boundaries don’t change due to floating point error!
-  if (isNaN(x0)) {
-    x1 = (x0 = Math.floor(x)) + 1;
-    y1 = (y0 = Math.floor(y)) + 1;
-  }
-
-  // Otherwise, double repeatedly to cover.
-  else {
-    var z = x1 - x0 || 1,
-        node = this._root,
-        parent,
-        i;
-
-    while (x0 > x || x >= x1 || y0 > y || y >= y1) {
-      i = (y < y0) << 1 | (x < x0);
-      parent = new Array(4), parent[i] = node, node = parent, z *= 2;
-      switch (i) {
-        case 0: x1 = x0 + z, y1 = y0 + z; break;
-        case 1: x0 = x1 - z, y1 = y0 + z; break;
-        case 2: x1 = x0 + z, y0 = y1 - z; break;
-        case 3: x0 = x1 - z, y0 = y1 - z; break;
-      }
-    }
-
-    if (this._root && this._root.length) this._root = node;
-  }
-
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  return this;
-}
-
-function tree_data() {
-  var data = [];
-  this.visit(function(node) {
-    if (!node.length) do data.push(node.data); while (node = node.next)
-  });
-  return data;
-}
-
-function tree_extent(_) {
-  return arguments.length
-      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
-      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
-}
-
-function Quad(node, x0, y0, x1, y1) {
-  this.node = node;
-  this.x0 = x0;
-  this.y0 = y0;
-  this.x1 = x1;
-  this.y1 = y1;
-}
-
-function tree_find(x, y, radius) {
-  var data,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1,
-      y1,
-      x2,
-      y2,
-      x3 = this._x1,
-      y3 = this._y1,
-      quads = [],
-      node = this._root,
-      q,
-      i;
-
-  if (node) quads.push(new Quad(node, x0, y0, x3, y3));
-  if (radius == null) radius = Infinity;
-  else {
-    x0 = x - radius, y0 = y - radius;
-    x3 = x + radius, y3 = y + radius;
-    radius *= radius;
-  }
-
-  while (q = quads.pop()) {
-
-    // Stop searching if this quadrant can’t contain a closer node.
-    if (!(node = q.node)
-        || (x1 = q.x0) > x3
-        || (y1 = q.y0) > y3
-        || (x2 = q.x1) < x0
-        || (y2 = q.y1) < y0) continue;
-
-    // Bisect the current quadrant.
-    if (node.length) {
-      var xm = (x1 + x2) / 2,
-          ym = (y1 + y2) / 2;
-
-      quads.push(
-        new Quad(node[3], xm, ym, x2, y2),
-        new Quad(node[2], x1, ym, xm, y2),
-        new Quad(node[1], xm, y1, x2, ym),
-        new Quad(node[0], x1, y1, xm, ym)
-      );
-
-      // Visit the closest quadrant first.
-      if (i = (y >= ym) << 1 | (x >= xm)) {
-        q = quads[quads.length - 1];
-        quads[quads.length - 1] = quads[quads.length - 1 - i];
-        quads[quads.length - 1 - i] = q;
-      }
-    }
-
-    // Visit this point. (Visiting coincident points isn’t necessary!)
-    else {
-      var dx = x - +this._x.call(null, node.data),
-          dy = y - +this._y.call(null, node.data),
-          d2 = dx * dx + dy * dy;
-      if (d2 < radius) {
-        var d = Math.sqrt(radius = d2);
-        x0 = x - d, y0 = y - d;
-        x3 = x + d, y3 = y + d;
-        data = node.data;
-      }
-    }
-  }
-
-  return data;
-}
-
-function tree_remove(d) {
-  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
-
-  var parent,
-      node = this._root,
-      retainer,
-      previous,
-      next,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1,
-      x,
-      y,
-      xm,
-      ym,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return this;
-
-  // Find the leaf node for the point.
-  // While descending, also retain the deepest parent with a non-removed sibling.
-  if (node.length) while (true) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
-    if (!node.length) break;
-    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
-  }
-
-  // Find the point to remove.
-  while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-  if (next = node.next) delete node.next;
-
-  // If there are multiple coincident points, remove just the point.
-  if (previous) return (next ? previous.next = next : delete previous.next), this;
-
-  // If this is the root point, remove it.
-  if (!parent) return this._root = next, this;
-
-  // Remove this leaf.
-  next ? parent[i] = next : delete parent[i];
-
-  // If the parent now contains exactly one leaf, collapse superfluous parents.
-  if ((node = parent[0] || parent[1] || parent[2] || parent[3])
-      && node === (parent[3] || parent[2] || parent[1] || parent[0])
-      && !node.length) {
-    if (retainer) retainer[j] = node;
-    else this._root = node;
-  }
-
-  return this;
-}
-
-function removeAll(data) {
-  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-  return this;
-}
-
-function tree_root() {
-  return this._root;
-}
-
-function tree_size() {
-  var size = 0;
-  this.visit(function(node) {
-    if (!node.length) do ++size; while (node = node.next)
-  });
-  return size;
-}
-
-function tree_visit(callback) {
-  var quads = [], q, node = this._root, child, x0, y0, x1, y1;
-  if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
-      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-    }
-  }
-  return this;
-}
-
-function tree_visitAfter(callback) {
-  var quads = [], next = [], q;
-  if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    var node = q.node;
-    if (node.length) {
-      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-    }
-    next.push(q);
-  }
-  while (q = next.pop()) {
-    callback(q.node, q.x0, q.y0, q.x1, q.y1);
-  }
-  return this;
-}
-
-function defaultX(d) {
-  return d[0];
-}
-
-function tree_x(_) {
-  return arguments.length ? (this._x = _, this) : this._x;
-}
-
-function defaultY(d) {
-  return d[1];
-}
-
-function tree_y(_) {
-  return arguments.length ? (this._y = _, this) : this._y;
-}
-
-function quadtree(nodes, x, y) {
-  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
-  return nodes == null ? tree : tree.addAll(nodes);
-}
-
-function Quadtree(x, y, x0, y0, x1, y1) {
-  this._x = x;
-  this._y = y;
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  this._root = undefined;
-}
-
-function leaf_copy(leaf) {
-  var copy = {data: leaf.data}, next = copy;
-  while (leaf = leaf.next) next = next.next = {data: leaf.data};
-  return copy;
-}
-
-var treeProto = quadtree.prototype = Quadtree.prototype;
-
-treeProto.copy = function() {
-  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
-      node = this._root,
-      nodes,
-      child;
-
-  if (!node) return copy;
-
-  if (!node.length) return copy._root = leaf_copy(node), copy;
-
-  nodes = [{source: node, target: copy._root = new Array(4)}];
-  while (node = nodes.pop()) {
-    for (var i = 0; i < 4; ++i) {
-      if (child = node.source[i]) {
-        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
-        else node.target[i] = leaf_copy(child);
-      }
-    }
-  }
-
-  return copy;
-};
-
-treeProto.add = tree_add;
-treeProto.addAll = addAll;
-treeProto.cover = tree_cover;
-treeProto.data = tree_data;
-treeProto.extent = tree_extent;
-treeProto.find = tree_find;
-treeProto.remove = tree_remove;
-treeProto.removeAll = removeAll;
-treeProto.root = tree_root;
-treeProto.size = tree_size;
-treeProto.visit = tree_visit;
-treeProto.visitAfter = tree_visitAfter;
-treeProto.x = tree_x;
-treeProto.y = tree_y;
-
-exports.quadtree = quadtree;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-quadtree/dist/d3-quadtree.min.js
===================================================================
--- node_modules/d3-quadtree/dist/d3-quadtree.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-quadtree/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function i(t,i,e,n){if(isNaN(i)||isNaN(e))return t;var r,s,h,o,a,u,l,_,f,c=t._root,x={data:n},y=t._x0,d=t._y0,p=t._x1,v=t._y1;if(!c)return t._root=x,t;for(;c.length;)if((u=i>=(s=(y+p)/2))?y=s:p=s,(l=e>=(h=(d+v)/2))?d=h:v=h,r=c,!(c=c[_=l<<1|u]))return r[_]=x,t;if(o=+t._x.call(null,c.data),a=+t._y.call(null,c.data),i===o&&e===a)return x.next=c,r?r[_]=x:t._root=x,t;do{r=r?r[_]=new Array(4):t._root=new Array(4),(u=i>=(s=(y+p)/2))?y=s:p=s,(l=e>=(h=(d+v)/2))?d=h:v=h}while((_=l<<1|u)==(f=(a>=h)<<1|o>=s));return r[f]=c,r[_]=x,t}function e(t,i,e,n,r){this.node=t,this.x0=i,this.y0=e,this.x1=n,this.y1=r}function n(t){return t[0]}function r(t){return t[1]}function s(t,i,e){var s=new h(null==i?n:i,null==e?r:e,NaN,NaN,NaN,NaN);return null==t?s:s.addAll(t)}function h(t,i,e,n,r,s){this._x=t,this._y=i,this._x0=e,this._y0=n,this._x1=r,this._y1=s,this._root=void 0}function o(t){for(var i={data:t.data},e=i;t=t.next;)e=e.next={data:t.data};return i}var a=s.prototype=h.prototype;a.copy=function(){var t,i,e=new h(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return e;if(!n.length)return e._root=o(n),e;for(t=[{source:n,target:e._root=new Array(4)}];n=t.pop();)for(var r=0;r<4;++r)(i=n.source[r])&&(i.length?t.push({source:i,target:n.target[r]=new Array(4)}):n.target[r]=o(i));return e},a.add=function(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return i(this.cover(e,n),e,n,t)},a.addAll=function(t){var e,n,r,s,h=t.length,o=new Array(h),a=new Array(h),u=1/0,l=1/0,_=-1/0,f=-1/0;for(n=0;n<h;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=r,a[n]=s,r<u&&(u=r),r>_&&(_=r),s<l&&(l=s),s>f&&(f=s));if(u>_||l>f)return this;for(this.cover(u,l).cover(_,f),n=0;n<h;++n)i(this,o[n],a[n],t[n]);return this},a.cover=function(t,i){if(isNaN(t=+t)||isNaN(i=+i))return this;var e=this._x0,n=this._y0,r=this._x1,s=this._y1;if(isNaN(e))r=(e=Math.floor(t))+1,s=(n=Math.floor(i))+1;else{for(var h,o,a=r-e||1,u=this._root;e>t||t>=r||n>i||i>=s;)switch(o=(i<n)<<1|t<e,(h=new Array(4))[o]=u,u=h,a*=2,o){case 0:r=e+a,s=n+a;break;case 1:e=r-a,s=n+a;break;case 2:r=e+a,n=s-a;break;case 3:e=r-a,n=s-a}this._root&&this._root.length&&(this._root=u)}return this._x0=e,this._y0=n,this._x1=r,this._y1=s,this},a.data=function(){var t=[];return this.visit((function(i){if(!i.length)do{t.push(i.data)}while(i=i.next)})),t},a.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},a.find=function(t,i,n){var r,s,h,o,a,u,l,_=this._x0,f=this._y0,c=this._x1,x=this._y1,y=[],d=this._root;for(d&&y.push(new e(d,_,f,c,x)),null==n?n=1/0:(_=t-n,f=i-n,c=t+n,x=i+n,n*=n);u=y.pop();)if(!(!(d=u.node)||(s=u.x0)>c||(h=u.y0)>x||(o=u.x1)<_||(a=u.y1)<f))if(d.length){var p=(s+o)/2,v=(h+a)/2;y.push(new e(d[3],p,v,o,a),new e(d[2],s,v,p,a),new e(d[1],p,h,o,v),new e(d[0],s,h,p,v)),(l=(i>=v)<<1|t>=p)&&(u=y[y.length-1],y[y.length-1]=y[y.length-1-l],y[y.length-1-l]=u)}else{var w=t-+this._x.call(null,d.data),N=i-+this._y.call(null,d.data),g=w*w+N*N;if(g<n){var A=Math.sqrt(n=g);_=t-A,f=i-A,c=t+A,x=i+A,r=d.data}}return r},a.remove=function(t){if(isNaN(s=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var i,e,n,r,s,h,o,a,u,l,_,f,c=this._root,x=this._x0,y=this._y0,d=this._x1,p=this._y1;if(!c)return this;if(c.length)for(;;){if((u=s>=(o=(x+d)/2))?x=o:d=o,(l=h>=(a=(y+p)/2))?y=a:p=a,i=c,!(c=c[_=l<<1|u]))return this;if(!c.length)break;(i[_+1&3]||i[_+2&3]||i[_+3&3])&&(e=i,f=_)}for(;c.data!==t;)if(n=c,!(c=c.next))return this;return(r=c.next)&&delete c.next,n?(r?n.next=r:delete n.next,this):i?(r?i[_]=r:delete i[_],(c=i[0]||i[1]||i[2]||i[3])&&c===(i[3]||i[2]||i[1]||i[0])&&!c.length&&(e?e[f]=c:this._root=c),this):(this._root=r,this)},a.removeAll=function(t){for(var i=0,e=t.length;i<e;++i)this.remove(t[i]);return this},a.root=function(){return this._root},a.size=function(){var t=0;return this.visit((function(i){if(!i.length)do{++t}while(i=i.next)})),t},a.visit=function(t){var i,n,r,s,h,o,a=[],u=this._root;for(u&&a.push(new e(u,this._x0,this._y0,this._x1,this._y1));i=a.pop();)if(!t(u=i.node,r=i.x0,s=i.y0,h=i.x1,o=i.y1)&&u.length){var l=(r+h)/2,_=(s+o)/2;(n=u[3])&&a.push(new e(n,l,_,h,o)),(n=u[2])&&a.push(new e(n,r,_,l,o)),(n=u[1])&&a.push(new e(n,l,s,h,_)),(n=u[0])&&a.push(new e(n,r,s,l,_))}return this},a.visitAfter=function(t){var i,n=[],r=[];for(this._root&&n.push(new e(this._root,this._x0,this._y0,this._x1,this._y1));i=n.pop();){var s=i.node;if(s.length){var h,o=i.x0,a=i.y0,u=i.x1,l=i.y1,_=(o+u)/2,f=(a+l)/2;(h=s[0])&&n.push(new e(h,o,a,_,f)),(h=s[1])&&n.push(new e(h,_,a,u,f)),(h=s[2])&&n.push(new e(h,o,f,_,l)),(h=s[3])&&n.push(new e(h,_,f,u,l))}r.push(i)}for(;i=r.pop();)t(i.node,i.x0,i.y0,i.x1,i.y1);return this},a.x=function(t){return arguments.length?(this._x=t,this):this._x},a.y=function(t){return arguments.length?(this._y=t,this):this._y},t.quadtree=s,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-quadtree/package.json
===================================================================
--- node_modules/d3-quadtree/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-{
-  "name": "d3-quadtree",
-  "version": "3.0.1",
-  "description": "Two-dimensional recursive spatial subdivision.",
-  "homepage": "https://d3js.org/d3-quadtree/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-quadtree.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "quadtree"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-quadtree.min.js",
-  "unpkg": "dist/d3-quadtree.min.js",
-  "exports": {
-    "umd": "./dist/d3-quadtree.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "d3-array": "1 - 2",
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-quadtree/src/add.js
===================================================================
--- node_modules/d3-quadtree/src/add.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-export default function(d) {
-  const x = +this._x.call(null, d),
-      y = +this._y.call(null, d);
-  return add(this.cover(x, y), x, y, d);
-}
-
-function add(tree, x, y, d) {
-  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
-
-  var parent,
-      node = tree._root,
-      leaf = {data: d},
-      x0 = tree._x0,
-      y0 = tree._y0,
-      x1 = tree._x1,
-      y1 = tree._y1,
-      xm,
-      ym,
-      xp,
-      yp,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return tree._root = leaf, tree;
-
-  // Find the existing leaf for the new point, or add it.
-  while (node.length) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
-  }
-
-  // Is the new point is exactly coincident with the existing point?
-  xp = +tree._x.call(null, node.data);
-  yp = +tree._y.call(null, node.data);
-  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
-
-  // Otherwise, split the leaf node until the old and new point are separated.
-  do {
-    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
-  return parent[j] = node, parent[i] = leaf, tree;
-}
-
-export function addAll(data) {
-  var d, i, n = data.length,
-      x,
-      y,
-      xz = new Array(n),
-      yz = new Array(n),
-      x0 = Infinity,
-      y0 = Infinity,
-      x1 = -Infinity,
-      y1 = -Infinity;
-
-  // Compute the points and their extent.
-  for (i = 0; i < n; ++i) {
-    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
-    xz[i] = x;
-    yz[i] = y;
-    if (x < x0) x0 = x;
-    if (x > x1) x1 = x;
-    if (y < y0) y0 = y;
-    if (y > y1) y1 = y;
-  }
-
-  // If there were no (valid) points, abort.
-  if (x0 > x1 || y0 > y1) return this;
-
-  // Expand the tree to cover the new points.
-  this.cover(x0, y0).cover(x1, y1);
-
-  // Add the new points.
-  for (i = 0; i < n; ++i) {
-    add(this, xz[i], yz[i], data[i]);
-  }
-
-  return this;
-}
Index: de_modules/d3-quadtree/src/cover.js
===================================================================
--- node_modules/d3-quadtree/src/cover.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-export default function(x, y) {
-  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
-
-  var x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1;
-
-  // If the quadtree has no extent, initialize them.
-  // Integer extent are necessary so that if we later double the extent,
-  // the existing quadrant boundaries don’t change due to floating point error!
-  if (isNaN(x0)) {
-    x1 = (x0 = Math.floor(x)) + 1;
-    y1 = (y0 = Math.floor(y)) + 1;
-  }
-
-  // Otherwise, double repeatedly to cover.
-  else {
-    var z = x1 - x0 || 1,
-        node = this._root,
-        parent,
-        i;
-
-    while (x0 > x || x >= x1 || y0 > y || y >= y1) {
-      i = (y < y0) << 1 | (x < x0);
-      parent = new Array(4), parent[i] = node, node = parent, z *= 2;
-      switch (i) {
-        case 0: x1 = x0 + z, y1 = y0 + z; break;
-        case 1: x0 = x1 - z, y1 = y0 + z; break;
-        case 2: x1 = x0 + z, y0 = y1 - z; break;
-        case 3: x0 = x1 - z, y0 = y1 - z; break;
-      }
-    }
-
-    if (this._root && this._root.length) this._root = node;
-  }
-
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  return this;
-}
Index: de_modules/d3-quadtree/src/data.js
===================================================================
--- node_modules/d3-quadtree/src/data.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function() {
-  var data = [];
-  this.visit(function(node) {
-    if (!node.length) do data.push(node.data); while (node = node.next)
-  });
-  return data;
-}
Index: de_modules/d3-quadtree/src/extent.js
===================================================================
--- node_modules/d3-quadtree/src/extent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(_) {
-  return arguments.length
-      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
-      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
-}
Index: de_modules/d3-quadtree/src/find.js
===================================================================
--- node_modules/d3-quadtree/src/find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-import Quad from "./quad.js";
-
-export default function(x, y, radius) {
-  var data,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1,
-      y1,
-      x2,
-      y2,
-      x3 = this._x1,
-      y3 = this._y1,
-      quads = [],
-      node = this._root,
-      q,
-      i;
-
-  if (node) quads.push(new Quad(node, x0, y0, x3, y3));
-  if (radius == null) radius = Infinity;
-  else {
-    x0 = x - radius, y0 = y - radius;
-    x3 = x + radius, y3 = y + radius;
-    radius *= radius;
-  }
-
-  while (q = quads.pop()) {
-
-    // Stop searching if this quadrant can’t contain a closer node.
-    if (!(node = q.node)
-        || (x1 = q.x0) > x3
-        || (y1 = q.y0) > y3
-        || (x2 = q.x1) < x0
-        || (y2 = q.y1) < y0) continue;
-
-    // Bisect the current quadrant.
-    if (node.length) {
-      var xm = (x1 + x2) / 2,
-          ym = (y1 + y2) / 2;
-
-      quads.push(
-        new Quad(node[3], xm, ym, x2, y2),
-        new Quad(node[2], x1, ym, xm, y2),
-        new Quad(node[1], xm, y1, x2, ym),
-        new Quad(node[0], x1, y1, xm, ym)
-      );
-
-      // Visit the closest quadrant first.
-      if (i = (y >= ym) << 1 | (x >= xm)) {
-        q = quads[quads.length - 1];
-        quads[quads.length - 1] = quads[quads.length - 1 - i];
-        quads[quads.length - 1 - i] = q;
-      }
-    }
-
-    // Visit this point. (Visiting coincident points isn’t necessary!)
-    else {
-      var dx = x - +this._x.call(null, node.data),
-          dy = y - +this._y.call(null, node.data),
-          d2 = dx * dx + dy * dy;
-      if (d2 < radius) {
-        var d = Math.sqrt(radius = d2);
-        x0 = x - d, y0 = y - d;
-        x3 = x + d, y3 = y + d;
-        data = node.data;
-      }
-    }
-  }
-
-  return data;
-}
Index: de_modules/d3-quadtree/src/index.js
===================================================================
--- node_modules/d3-quadtree/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {default as quadtree} from "./quadtree.js";
Index: de_modules/d3-quadtree/src/quad.js
===================================================================
--- node_modules/d3-quadtree/src/quad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function(node, x0, y0, x1, y1) {
-  this.node = node;
-  this.x0 = x0;
-  this.y0 = y0;
-  this.x1 = x1;
-  this.y1 = y1;
-}
Index: de_modules/d3-quadtree/src/quadtree.js
===================================================================
--- node_modules/d3-quadtree/src/quadtree.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import tree_add, {addAll as tree_addAll} from "./add.js";
-import tree_cover from "./cover.js";
-import tree_data from "./data.js";
-import tree_extent from "./extent.js";
-import tree_find from "./find.js";
-import tree_remove, {removeAll as tree_removeAll} from "./remove.js";
-import tree_root from "./root.js";
-import tree_size from "./size.js";
-import tree_visit from "./visit.js";
-import tree_visitAfter from "./visitAfter.js";
-import tree_x, {defaultX} from "./x.js";
-import tree_y, {defaultY} from "./y.js";
-
-export default function quadtree(nodes, x, y) {
-  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
-  return nodes == null ? tree : tree.addAll(nodes);
-}
-
-function Quadtree(x, y, x0, y0, x1, y1) {
-  this._x = x;
-  this._y = y;
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  this._root = undefined;
-}
-
-function leaf_copy(leaf) {
-  var copy = {data: leaf.data}, next = copy;
-  while (leaf = leaf.next) next = next.next = {data: leaf.data};
-  return copy;
-}
-
-var treeProto = quadtree.prototype = Quadtree.prototype;
-
-treeProto.copy = function() {
-  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
-      node = this._root,
-      nodes,
-      child;
-
-  if (!node) return copy;
-
-  if (!node.length) return copy._root = leaf_copy(node), copy;
-
-  nodes = [{source: node, target: copy._root = new Array(4)}];
-  while (node = nodes.pop()) {
-    for (var i = 0; i < 4; ++i) {
-      if (child = node.source[i]) {
-        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
-        else node.target[i] = leaf_copy(child);
-      }
-    }
-  }
-
-  return copy;
-};
-
-treeProto.add = tree_add;
-treeProto.addAll = tree_addAll;
-treeProto.cover = tree_cover;
-treeProto.data = tree_data;
-treeProto.extent = tree_extent;
-treeProto.find = tree_find;
-treeProto.remove = tree_remove;
-treeProto.removeAll = tree_removeAll;
-treeProto.root = tree_root;
-treeProto.size = tree_size;
-treeProto.visit = tree_visit;
-treeProto.visitAfter = tree_visitAfter;
-treeProto.x = tree_x;
-treeProto.y = tree_y;
Index: de_modules/d3-quadtree/src/remove.js
===================================================================
--- node_modules/d3-quadtree/src/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-export default function(d) {
-  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
-
-  var parent,
-      node = this._root,
-      retainer,
-      previous,
-      next,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1,
-      x,
-      y,
-      xm,
-      ym,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return this;
-
-  // Find the leaf node for the point.
-  // While descending, also retain the deepest parent with a non-removed sibling.
-  if (node.length) while (true) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
-    if (!node.length) break;
-    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
-  }
-
-  // Find the point to remove.
-  while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-  if (next = node.next) delete node.next;
-
-  // If there are multiple coincident points, remove just the point.
-  if (previous) return (next ? previous.next = next : delete previous.next), this;
-
-  // If this is the root point, remove it.
-  if (!parent) return this._root = next, this;
-
-  // Remove this leaf.
-  next ? parent[i] = next : delete parent[i];
-
-  // If the parent now contains exactly one leaf, collapse superfluous parents.
-  if ((node = parent[0] || parent[1] || parent[2] || parent[3])
-      && node === (parent[3] || parent[2] || parent[1] || parent[0])
-      && !node.length) {
-    if (retainer) retainer[j] = node;
-    else this._root = node;
-  }
-
-  return this;
-}
-
-export function removeAll(data) {
-  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-  return this;
-}
Index: de_modules/d3-quadtree/src/root.js
===================================================================
--- node_modules/d3-quadtree/src/root.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function() {
-  return this._root;
-}
Index: de_modules/d3-quadtree/src/size.js
===================================================================
--- node_modules/d3-quadtree/src/size.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function() {
-  var size = 0;
-  this.visit(function(node) {
-    if (!node.length) do ++size; while (node = node.next)
-  });
-  return size;
-}
Index: de_modules/d3-quadtree/src/visit.js
===================================================================
--- node_modules/d3-quadtree/src/visit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import Quad from "./quad.js";
-
-export default function(callback) {
-  var quads = [], q, node = this._root, child, x0, y0, x1, y1;
-  if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
-      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-    }
-  }
-  return this;
-}
Index: de_modules/d3-quadtree/src/visitAfter.js
===================================================================
--- node_modules/d3-quadtree/src/visitAfter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import Quad from "./quad.js";
-
-export default function(callback) {
-  var quads = [], next = [], q;
-  if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    var node = q.node;
-    if (node.length) {
-      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-    }
-    next.push(q);
-  }
-  while (q = next.pop()) {
-    callback(q.node, q.x0, q.y0, q.x1, q.y1);
-  }
-  return this;
-}
Index: de_modules/d3-quadtree/src/x.js
===================================================================
--- node_modules/d3-quadtree/src/x.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function defaultX(d) {
-  return d[0];
-}
-
-export default function(_) {
-  return arguments.length ? (this._x = _, this) : this._x;
-}
Index: de_modules/d3-quadtree/src/y.js
===================================================================
--- node_modules/d3-quadtree/src/y.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function defaultY(d) {
-  return d[1];
-}
-
-export default function(_) {
-  return arguments.length ? (this._y = _, this) : this._y;
-}
Index: de_modules/d3-random/LICENSE
===================================================================
--- node_modules/d3-random/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-random/README.md
===================================================================
--- node_modules/d3-random/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,133 +1,0 @@
-# d3-random
-
-Generate random numbers from various distributions.
-
-See the [d3-random collection on Observable](https://observablehq.com/collection/@d3/d3-random) for examples.
-
-## Installing
-
-If you use npm, `npm install d3-random`. You can also download the [latest release on GitHub](https://github.com/d3/d3-random/releases/latest). For vanilla HTML in modern browsers, import d3-random from Skypack:
-
-```html
-<script type="module">
-
-import {randomUniform} from "https://cdn.skypack.dev/d3-random@3";
-
-const random = randomUniform(1, 10);
-
-</script>
-```
-
-For legacy environments, you can load d3-random’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-random@3"></script>
-<script>
-
-const random = d3.randomUniform(1, 10);
-
-</script>
-```
-
-## API Reference
-
-<a name="randomUniform" href="#randomUniform">#</a> d3.<b>randomUniform</b>([<i>min</i>, ][<i>max</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/uniform.js), [Examples](https://observablehq.com/@d3/d3-random#uniform)
-
-Returns a function for generating random numbers with a [uniform distribution](https://en.wikipedia.org/wiki/Uniform_distribution_\(continuous\)). The minimum allowed value of a returned number is *min* (inclusive), and the maximum is *max* (exclusive). If *min* is not specified, it defaults to 0; if *max* is not specified, it defaults to 1. For example:
-
-```js
-d3.randomUniform(6)(); // Returns a number greater than or equal to 0 and less than 6.
-d3.randomUniform(1, 5)(); // Returns a number greater than or equal to 1 and less than 5.
-```
-
-<a name="randomInt" href="#randomInt">#</a> d3.<b>randomInt</b>([<i>min</i>, ][<i>max</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/int.js), [Examples](https://observablehq.com/@d3/d3-random#int)
-
-Returns a function for generating random integers with a [uniform distribution](https://en.wikipedia.org/wiki/Uniform_distribution_\(continuous\)). The minimum allowed value of a returned number is ⌊*min*⌋ (inclusive), and the maximum is ⌊*max* - 1⌋ (inclusive). If *min* is not specified, it defaults to 0. For example:
-
-```js
-d3.randomInt(6)(); // Returns an integer greater than or equal to 0 and less than 6.
-d3.randomInt(1, 5)(); // Returns an integer greater than or equal to 1 and less than 5.
-```
-
-<a name="randomNormal" href="#randomNormal">#</a> d3.<b>randomNormal</b>([<i>mu</i>][, <i>sigma</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/normal.js), [Examples](https://observablehq.com/@d3/d3-random#normal)
-
-Returns a function for generating random numbers with a [normal (Gaussian) distribution](https://en.wikipedia.org/wiki/Normal_distribution). The expected value of the generated numbers is *mu*, with the given standard deviation *sigma*. If *mu* is not specified, it defaults to 0; if *sigma* is not specified, it defaults to 1.
-
-<a name="randomLogNormal" href="#randomLogNormal">#</a> d3.<b>randomLogNormal</b>([<i>mu</i>][, <i>sigma</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/logNormal.js), [Examples](https://observablehq.com/@d3/d3-random#logNormal)
-
-Returns a function for generating random numbers with a [log-normal distribution](https://en.wikipedia.org/wiki/Log-normal_distribution). The expected value of the random variable’s natural logarithm is *mu*, with the given standard deviation *sigma*. If *mu* is not specified, it defaults to 0; if *sigma* is not specified, it defaults to 1.
-
-<a name="randomBates" href="#randomBates">#</a> d3.<b>randomBates</b>(<i>n</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/bates.js), [Examples](https://observablehq.com/@d3/d3-random#bates)
-
-Returns a function for generating random numbers with a [Bates distribution](https://en.wikipedia.org/wiki/Bates_distribution) with *n* independent variables. The case of fractional *n* is handled as with d3.randomIrwinHall, and d3.randomBates(0) is equivalent to d3.randomUniform().
-
-<a name="randomIrwinHall" href="#randomIrwinHall">#</a> d3.<b>randomIrwinHall</b>(<i>n</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/irwinHall.js), [Examples](https://observablehq.com/@d3/d3-random#irwinHall)
-
-Returns a function for generating random numbers with an [Irwin–Hall distribution](https://en.wikipedia.org/wiki/Irwin–Hall_distribution) with *n* independent variables. If the fractional part of *n* is non-zero, this is treated as adding d3.randomUniform() times that fractional part to the integral part.
-
-<a name="randomExponential" href="#randomExponential">#</a> d3.<b>randomExponential</b>(<i>lambda</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/exponential.js), [Examples](https://observablehq.com/@d3/d3-random#exponential)
-
-Returns a function for generating random numbers with an [exponential distribution](https://en.wikipedia.org/wiki/Exponential_distribution) with the rate *lambda*; equivalent to time between events in a [Poisson process](https://en.wikipedia.org/wiki/Poisson_point_process) with a mean of 1 / *lambda*. For example, exponential(1/40) generates random times between events where, on average, one event occurs every 40 units of time.
-
-<a name="randomPareto" href="#randomPareto">#</a> d3.<b>randomPareto</b>(<i>alpha</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/pareto.js), [Examples](https://observablehq.com/@d3/d3-random#pareto)
-
-Returns a function for generating random numbers with a [Pareto distribution](https://en.wikipedia.org/wiki/Pareto_distribution) with the shape *alpha*. The value *alpha* must be a positive value.
-
-<a name="randomBernoulli" href="#randomBernoulli">#</a> d3.<b>randomBernoulli</b>(<i>p</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/bernoulli.js), [Examples](https://observablehq.com/@d3/d3-random#bernoulli)
-
-Returns a function for generating either 1 or 0 according to a [Bernoulli distribution](https://en.wikipedia.org/wiki/Binomial_distribution) with 1 being returned with success probability *p* and 0 with failure probability *q* = 1 - *p*. The value *p* is in the range [0, 1].
-
-<a name="randomGeometric" href="#randomGeometric">#</a> d3.<b>randomGeometric</b>(<i>p</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/geometric.js), [Examples](https://observablehq.com/@d3/d3-random#geometric)
-
-Returns a function for generating numbers with a [geometric distribution](https://en.wikipedia.org/wiki/Geometric_distribution) with success probability *p*. The value *p* is in the range [0, 1].
-
-<a name="randomBinomial" href="#randomBinomial">#</a> d3.<b>randomBinomial</b>(<i>n</i>, <i>p</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/binomial.js), [Examples](https://observablehq.com/@d3/d3-random#binomial)
-
-Returns a function for generating random numbers with a [binomial distribution](https://en.wikipedia.org/wiki/Binomial_distribution) with *n* the number of trials and *p* the probability of success in each trial. The value *n* is greater or equal to 0, and the value *p* is in the range [0, 1].
-
-<a name="randomGamma" href="#randomGamma">#</a> d3.<b>randomGamma</b>(<i>k</i>, [<i>theta</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/gamma.js), [Examples](https://observablehq.com/@parcly-taxel/the-gamma-and-beta-distributions)
-
-Returns a function for generating random numbers with a [gamma distribution](https://en.wikipedia.org/wiki/Gamma_distribution) with *k* the shape parameter and *theta* the scale parameter. The value *k* must be a positive value; if *theta* is not specified, it defaults to 1.
-
-<a name="randomBeta" href="#randomBeta">#</a> d3.<b>randomBeta</b>(<i>alpha</i>, <i>beta</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/beta.js), [Examples](https://observablehq.com/@parcly-taxel/the-gamma-and-beta-distributions)
-
-Returns a function for generating random numbers with a [beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) with *alpha* and *beta* shape parameters, which must both be positive.
-
-<a name="randomWeibull" href="#randomWeibull">#</a> d3.<b>randomWeibull</b>(<i>k</i>, [<i>a</i>], [<i>b</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/weibull.js), [Examples](https://observablehq.com/@parcly-taxel/frechet-gumbel-weibull)
-
-Returns a function for generating random numbers with one of the [generalized extreme value distributions](https://en.wikipedia.org/wiki/Generalized_extreme_value_distribution), depending on *k*:
-
-* If *k* is positive, the [Weibull distribution](https://en.wikipedia.org/wiki/Weibull_distribution) with shape parameter *k*
-* If *k* is zero, the [Gumbel distribution](https://en.wikipedia.org/wiki/Gumbel_distribution)
-* If *k* is negative, the [Fréchet distribution](https://en.wikipedia.org/wiki/Fréchet_distribution) with shape parameter −*k*
-
-In all three cases, *a* is the location parameter and *b* is the scale parameter. If *a* is not specified, it defaults to 0; if *b* is not specified, it defaults to 1.
-
-<a name="randomCauchy" href="#randomCauchy">#</a> d3.<b>randomCauchy</b>([<i>a</i>], [<i>b</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/cauchy.js), [Examples](https://observablehq.com/@parcly-taxel/cauchy-and-logistic-distributions)
-
-Returns a function for generating random numbers with a [Cauchy distribution](https://en.wikipedia.org/wiki/Cauchy_distribution). *a* and *b* have the same meanings and default values as in d3.randomWeibull.
-
-<a name="randomLogistic" href="#randomLogistic">#</a> d3.<b>randomLogistic</b>([<i>a</i>], [<i>b</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/logistic.js), [Examples](https://observablehq.com/@parcly-taxel/cauchy-and-logistic-distributions)
-
-Returns a function for generating random numbers with a [logistic distribution](https://en.wikipedia.org/wiki/Logistic_distribution). *a* and *b* have the same meanings and default values as in d3.randomWeibull.
-
-<a name="randomPoisson" href="#randomPoisson">#</a> d3.<b>randomPoisson</b>(<i>lambda</i>) · [Source](https://github.com/d3/d3-random/blob/master/src/poisson.js), [Examples](https://observablehq.com/@parcly-taxel/the-poisson-distribution)
-
-Returns a function for generating random numbers with a [Poisson distribution](https://en.wikipedia.org/wiki/Poisson_distribution) with mean *lambda*.
-
-<a name="random_source" href="#random_source">#</a> <i>random</i>.<b>source</b>(<i>source</i>) · [Examples](https://observablehq.com/@d3/random-source)
-
-Returns the same type of function for generating random numbers but where the given random number generator *source* is used as the source of randomness instead of Math.random. The given random number generator must implement the same interface as Math.random and only return values in the range [0, 1). This is useful when a seeded random number generator is preferable to Math.random. For example:
-
-```js
-import {randomLcg, randomNumber} from "d3-random";
-
-const seed = 0.44871573888282423; // any number in [0, 1)
-const random = randomNormal.source(randomLcg(seed))(0, 1);
-
-random(); // -0.6253955998897069
-```
-
-<a name="randomLcg" href="#randomLcg">#</a> d3.<b>randomLcg</b>([<i>seed</i>]) · [Source](https://github.com/d3/d3-random/blob/master/src/lcg.js), [Examples](https://observablehq.com/@d3/d3-randomlcg)
-
-Returns a [linear congruential generator](https://en.wikipedia.org/wiki/Linear_congruential_generator); this function can be called repeatedly to obtain pseudorandom values well-distributed on the interval [0,1) and with a long period (up to 1 billion numbers), similar to Math.random. A *seed* can be specified as a real number in the interval [0,1) or as any integer. In the latter case, only the lower 32 bits are considered. Two generators instanced with the same seed generate the same sequence, allowing to create reproducible pseudo-random experiments. If the *seed* is not specified, one is chosen using Math.random.
Index: de_modules/d3-random/dist/d3-random.js
===================================================================
--- node_modules/d3-random/dist/d3-random.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,358 +1,0 @@
-// https://d3js.org/d3-random/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-var defaultSource = Math.random;
-
-var uniform = (function sourceRandomUniform(source) {
-  function randomUniform(min, max) {
-    min = min == null ? 0 : +min;
-    max = max == null ? 1 : +max;
-    if (arguments.length === 1) max = min, min = 0;
-    else max -= min;
-    return function() {
-      return source() * max + min;
-    };
-  }
-
-  randomUniform.source = sourceRandomUniform;
-
-  return randomUniform;
-})(defaultSource);
-
-var int = (function sourceRandomInt(source) {
-  function randomInt(min, max) {
-    if (arguments.length < 2) max = min, min = 0;
-    min = Math.floor(min);
-    max = Math.floor(max) - min;
-    return function() {
-      return Math.floor(source() * max + min);
-    };
-  }
-
-  randomInt.source = sourceRandomInt;
-
-  return randomInt;
-})(defaultSource);
-
-var normal = (function sourceRandomNormal(source) {
-  function randomNormal(mu, sigma) {
-    var x, r;
-    mu = mu == null ? 0 : +mu;
-    sigma = sigma == null ? 1 : +sigma;
-    return function() {
-      var y;
-
-      // If available, use the second previously-generated uniform random.
-      if (x != null) y = x, x = null;
-
-      // Otherwise, generate a new x and y.
-      else do {
-        x = source() * 2 - 1;
-        y = source() * 2 - 1;
-        r = x * x + y * y;
-      } while (!r || r > 1);
-
-      return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
-    };
-  }
-
-  randomNormal.source = sourceRandomNormal;
-
-  return randomNormal;
-})(defaultSource);
-
-var logNormal = (function sourceRandomLogNormal(source) {
-  var N = normal.source(source);
-
-  function randomLogNormal() {
-    var randomNormal = N.apply(this, arguments);
-    return function() {
-      return Math.exp(randomNormal());
-    };
-  }
-
-  randomLogNormal.source = sourceRandomLogNormal;
-
-  return randomLogNormal;
-})(defaultSource);
-
-var irwinHall = (function sourceRandomIrwinHall(source) {
-  function randomIrwinHall(n) {
-    if ((n = +n) <= 0) return () => 0;
-    return function() {
-      for (var sum = 0, i = n; i > 1; --i) sum += source();
-      return sum + i * source();
-    };
-  }
-
-  randomIrwinHall.source = sourceRandomIrwinHall;
-
-  return randomIrwinHall;
-})(defaultSource);
-
-var bates = (function sourceRandomBates(source) {
-  var I = irwinHall.source(source);
-
-  function randomBates(n) {
-    // use limiting distribution at n === 0
-    if ((n = +n) === 0) return source;
-    var randomIrwinHall = I(n);
-    return function() {
-      return randomIrwinHall() / n;
-    };
-  }
-
-  randomBates.source = sourceRandomBates;
-
-  return randomBates;
-})(defaultSource);
-
-var exponential = (function sourceRandomExponential(source) {
-  function randomExponential(lambda) {
-    return function() {
-      return -Math.log1p(-source()) / lambda;
-    };
-  }
-
-  randomExponential.source = sourceRandomExponential;
-
-  return randomExponential;
-})(defaultSource);
-
-var pareto = (function sourceRandomPareto(source) {
-  function randomPareto(alpha) {
-    if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha");
-    alpha = 1 / -alpha;
-    return function() {
-      return Math.pow(1 - source(), alpha);
-    };
-  }
-
-  randomPareto.source = sourceRandomPareto;
-
-  return randomPareto;
-})(defaultSource);
-
-var bernoulli = (function sourceRandomBernoulli(source) {
-  function randomBernoulli(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    return function() {
-      return Math.floor(source() + p);
-    };
-  }
-
-  randomBernoulli.source = sourceRandomBernoulli;
-
-  return randomBernoulli;
-})(defaultSource);
-
-var geometric = (function sourceRandomGeometric(source) {
-  function randomGeometric(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    if (p === 0) return () => Infinity;
-    if (p === 1) return () => 1;
-    p = Math.log1p(-p);
-    return function() {
-      return 1 + Math.floor(Math.log1p(-source()) / p);
-    };
-  }
-
-  randomGeometric.source = sourceRandomGeometric;
-
-  return randomGeometric;
-})(defaultSource);
-
-var gamma = (function sourceRandomGamma(source) {
-  var randomNormal = normal.source(source)();
-
-  function randomGamma(k, theta) {
-    if ((k = +k) < 0) throw new RangeError("invalid k");
-    // degenerate distribution if k === 0
-    if (k === 0) return () => 0;
-    theta = theta == null ? 1 : +theta;
-    // exponential distribution if k === 1
-    if (k === 1) return () => -Math.log1p(-source()) * theta;
-
-    var d = (k < 1 ? k + 1 : k) - 1 / 3,
-        c = 1 / (3 * Math.sqrt(d)),
-        multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;
-    return function() {
-      do {
-        do {
-          var x = randomNormal(),
-              v = 1 + c * x;
-        } while (v <= 0);
-        v *= v * v;
-        var u = 1 - source();
-      } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));
-      return d * v * multiplier() * theta;
-    };
-  }
-
-  randomGamma.source = sourceRandomGamma;
-
-  return randomGamma;
-})(defaultSource);
-
-var beta = (function sourceRandomBeta(source) {
-  var G = gamma.source(source);
-
-  function randomBeta(alpha, beta) {
-    var X = G(alpha),
-        Y = G(beta);
-    return function() {
-      var x = X();
-      return x === 0 ? 0 : x / (x + Y());
-    };
-  }
-
-  randomBeta.source = sourceRandomBeta;
-
-  return randomBeta;
-})(defaultSource);
-
-var binomial = (function sourceRandomBinomial(source) {
-  var G = geometric.source(source),
-      B = beta.source(source);
-
-  function randomBinomial(n, p) {
-    n = +n;
-    if ((p = +p) >= 1) return () => n;
-    if (p <= 0) return () => 0;
-    return function() {
-      var acc = 0, nn = n, pp = p;
-      while (nn * pp > 16 && nn * (1 - pp) > 16) {
-        var i = Math.floor((nn + 1) * pp),
-            y = B(i, nn - i + 1)();
-        if (y <= pp) {
-          acc += i;
-          nn -= i;
-          pp = (pp - y) / (1 - y);
-        } else {
-          nn = i - 1;
-          pp /= y;
-        }
-      }
-      var sign = pp < 0.5,
-          pFinal = sign ? pp : 1 - pp,
-          g = G(pFinal);
-      for (var s = g(), k = 0; s <= nn; ++k) s += g();
-      return acc + (sign ? k : nn - k);
-    };
-  }
-
-  randomBinomial.source = sourceRandomBinomial;
-
-  return randomBinomial;
-})(defaultSource);
-
-var weibull = (function sourceRandomWeibull(source) {
-  function randomWeibull(k, a, b) {
-    var outerFunc;
-    if ((k = +k) === 0) {
-      outerFunc = x => -Math.log(x);
-    } else {
-      k = 1 / k;
-      outerFunc = x => Math.pow(x, k);
-    }
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * outerFunc(-Math.log1p(-source()));
-    };
-  }
-
-  randomWeibull.source = sourceRandomWeibull;
-
-  return randomWeibull;
-})(defaultSource);
-
-var cauchy = (function sourceRandomCauchy(source) {
-  function randomCauchy(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * Math.tan(Math.PI * source());
-    };
-  }
-
-  randomCauchy.source = sourceRandomCauchy;
-
-  return randomCauchy;
-})(defaultSource);
-
-var logistic = (function sourceRandomLogistic(source) {
-  function randomLogistic(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      var u = source();
-      return a + b * Math.log(u / (1 - u));
-    };
-  }
-
-  randomLogistic.source = sourceRandomLogistic;
-
-  return randomLogistic;
-})(defaultSource);
-
-var poisson = (function sourceRandomPoisson(source) {
-  var G = gamma.source(source),
-      B = binomial.source(source);
-
-  function randomPoisson(lambda) {
-    return function() {
-      var acc = 0, l = lambda;
-      while (l > 16) {
-        var n = Math.floor(0.875 * l),
-            t = G(n)();
-        if (t > l) return acc + B(n - 1, l / t)();
-        acc += n;
-        l -= t;
-      }
-      for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());
-      return acc + k;
-    };
-  }
-
-  randomPoisson.source = sourceRandomPoisson;
-
-  return randomPoisson;
-})(defaultSource);
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const mul = 0x19660D;
-const inc = 0x3C6EF35F;
-const eps = 1 / 0x100000000;
-
-function lcg(seed = Math.random()) {
-  let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;
-  return () => (state = mul * state + inc | 0, eps * (state >>> 0));
-}
-
-exports.randomBates = bates;
-exports.randomBernoulli = bernoulli;
-exports.randomBeta = beta;
-exports.randomBinomial = binomial;
-exports.randomCauchy = cauchy;
-exports.randomExponential = exponential;
-exports.randomGamma = gamma;
-exports.randomGeometric = geometric;
-exports.randomInt = int;
-exports.randomIrwinHall = irwinHall;
-exports.randomLcg = lcg;
-exports.randomLogNormal = logNormal;
-exports.randomLogistic = logistic;
-exports.randomNormal = normal;
-exports.randomPareto = pareto;
-exports.randomPoisson = poisson;
-exports.randomUniform = uniform;
-exports.randomWeibull = weibull;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-random/dist/d3-random.min.js
===================================================================
--- node_modules/d3-random/dist/d3-random.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-random/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";var r=Math.random,t=function n(r){function t(n,t){return n=null==n?0:+n,t=null==t?1:+t,1===arguments.length?(t=n,n=0):t-=n,function(){return r()*t+n}}return t.source=n,t}(r),o=function n(r){function t(n,t){return arguments.length<2&&(t=n,n=0),n=Math.floor(n),t=Math.floor(t)-n,function(){return Math.floor(r()*t+n)}}return t.source=n,t}(r),u=function n(r){function t(n,t){var o,u;return n=null==n?0:+n,t=null==t?1:+t,function(){var e;if(null!=o)e=o,o=null;else do{o=2*r()-1,e=2*r()-1,u=o*o+e*e}while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}}return t.source=n,t}(r),e=function n(r){var t=u.source(r);function o(){var n=t.apply(this,arguments);return function(){return Math.exp(n())}}return o.source=n,o}(r),a=function n(r){function t(n){return(n=+n)<=0?()=>0:function(){for(var t=0,o=n;o>1;--o)t+=r();return t+o*r()}}return t.source=n,t}(r),i=function n(r){var t=a.source(r);function o(n){if(0==(n=+n))return r;var o=t(n);return function(){return o()/n}}return o.source=n,o}(r),c=function n(r){function t(n){return function(){return-Math.log1p(-r())/n}}return t.source=n,t}(r),f=function n(r){function t(n){if((n=+n)<0)throw new RangeError("invalid alpha");return n=1/-n,function(){return Math.pow(1-r(),n)}}return t.source=n,t}(r),l=function n(r){function t(n){if((n=+n)<0||n>1)throw new RangeError("invalid p");return function(){return Math.floor(r()+n)}}return t.source=n,t}(r),h=function n(r){function t(n){if((n=+n)<0||n>1)throw new RangeError("invalid p");return 0===n?()=>1/0:1===n?()=>1:(n=Math.log1p(-n),function(){return 1+Math.floor(Math.log1p(-r())/n)})}return t.source=n,t}(r),s=function n(r){var t=u.source(r)();function o(n,o){if((n=+n)<0)throw new RangeError("invalid k");if(0===n)return()=>0;if(o=null==o?1:+o,1===n)return()=>-Math.log1p(-r())*o;var u=(n<1?n+1:n)-1/3,e=1/(3*Math.sqrt(u)),a=n<1?()=>Math.pow(r(),1/n):()=>1;return function(){do{do{var n=t(),i=1+e*n}while(i<=0);i*=i*i;var c=1-r()}while(c>=1-.0331*n*n*n*n&&Math.log(c)>=.5*n*n+u*(1-i+Math.log(i)));return u*i*a()*o}}return o.source=n,o}(r),d=function n(r){var t=s.source(r);function o(n,r){var o=t(n),u=t(r);return function(){var n=o();return 0===n?0:n/(n+u())}}return o.source=n,o}(r),M=function n(r){var t=h.source(r),o=d.source(r);function u(n,r){return n=+n,(r=+r)>=1?()=>n:r<=0?()=>0:function(){for(var u=0,e=n,a=r;e*a>16&&e*(1-a)>16;){var i=Math.floor((e+1)*a),c=o(i,e-i+1)();c<=a?(u+=i,e-=i,a=(a-c)/(1-c)):(e=i-1,a/=c)}for(var f=a<.5,l=t(f?a:1-a),h=l(),s=0;h<=e;++s)h+=l();return u+(f?s:e-s)}}return u.source=n,u}(r),v=function n(r){function t(n,t,o){var u;return 0==(n=+n)?u=n=>-Math.log(n):(n=1/n,u=r=>Math.pow(r,n)),t=null==t?0:+t,o=null==o?1:+o,function(){return t+o*u(-Math.log1p(-r()))}}return t.source=n,t}(r),m=function n(r){function t(n,t){return n=null==n?0:+n,t=null==t?1:+t,function(){return n+t*Math.tan(Math.PI*r())}}return t.source=n,t}(r),p=function n(r){function t(n,t){return n=null==n?0:+n,t=null==t?1:+t,function(){var o=r();return n+t*Math.log(o/(1-o))}}return t.source=n,t}(r),g=function n(r){var t=s.source(r),o=M.source(r);function u(n){return function(){for(var u=0,e=n;e>16;){var a=Math.floor(.875*e),i=t(a)();if(i>e)return u+o(a-1,e/i)();u+=a,e-=i}for(var c=-Math.log1p(-r()),f=0;c<=e;++f)c-=Math.log1p(-r());return u+f}}return u.source=n,u}(r);const w=1/4294967296;n.randomBates=i,n.randomBernoulli=l,n.randomBeta=d,n.randomBinomial=M,n.randomCauchy=m,n.randomExponential=c,n.randomGamma=s,n.randomGeometric=h,n.randomInt=o,n.randomIrwinHall=a,n.randomLcg=function(n=Math.random()){let r=0|(0<=n&&n<1?n/w:Math.abs(n));return()=>(r=1664525*r+1013904223|0,w*(r>>>0))},n.randomLogNormal=e,n.randomLogistic=p,n.randomNormal=u,n.randomPareto=f,n.randomPoisson=g,n.randomUniform=t,n.randomWeibull=v,Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-random/package.json
===================================================================
--- node_modules/d3-random/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-{
-  "name": "d3-random",
-  "version": "3.0.1",
-  "description": "Generate random numbers from various distributions.",
-  "homepage": "https://d3js.org/d3-random/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-random.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "random",
-    "rng"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-random.min.js",
-  "unpkg": "dist/d3-random.min.js",
-  "exports": {
-    "umd": "./dist/d3-random.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "d3-array": "1 - 2",
-    "eslint": "7",
-    "jsdom": "16",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-random/src/bates.js
===================================================================
--- node_modules/d3-random/src/bates.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import irwinHall from "./irwinHall.js";
-
-export default (function sourceRandomBates(source) {
-  var I = irwinHall.source(source);
-
-  function randomBates(n) {
-    // use limiting distribution at n === 0
-    if ((n = +n) === 0) return source;
-    var randomIrwinHall = I(n);
-    return function() {
-      return randomIrwinHall() / n;
-    };
-  }
-
-  randomBates.source = sourceRandomBates;
-
-  return randomBates;
-})(defaultSource);
Index: de_modules/d3-random/src/bernoulli.js
===================================================================
--- node_modules/d3-random/src/bernoulli.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomBernoulli(source) {
-  function randomBernoulli(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    return function() {
-      return Math.floor(source() + p);
-    };
-  }
-
-  randomBernoulli.source = sourceRandomBernoulli;
-
-  return randomBernoulli;
-})(defaultSource);
Index: de_modules/d3-random/src/beta.js
===================================================================
--- node_modules/d3-random/src/beta.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import gamma from "./gamma.js";
-
-export default (function sourceRandomBeta(source) {
-  var G = gamma.source(source);
-
-  function randomBeta(alpha, beta) {
-    var X = G(alpha),
-        Y = G(beta);
-    return function() {
-      var x = X();
-      return x === 0 ? 0 : x / (x + Y());
-    };
-  }
-
-  randomBeta.source = sourceRandomBeta;
-
-  return randomBeta;
-})(defaultSource);
Index: de_modules/d3-random/src/binomial.js
===================================================================
--- node_modules/d3-random/src/binomial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import beta from "./beta.js";
-import geometric from "./geometric.js";
-
-export default (function sourceRandomBinomial(source) {
-  var G = geometric.source(source),
-      B = beta.source(source);
-
-  function randomBinomial(n, p) {
-    n = +n;
-    if ((p = +p) >= 1) return () => n;
-    if (p <= 0) return () => 0;
-    return function() {
-      var acc = 0, nn = n, pp = p;
-      while (nn * pp > 16 && nn * (1 - pp) > 16) {
-        var i = Math.floor((nn + 1) * pp),
-            y = B(i, nn - i + 1)();
-        if (y <= pp) {
-          acc += i;
-          nn -= i;
-          pp = (pp - y) / (1 - y);
-        } else {
-          nn = i - 1;
-          pp /= y;
-        }
-      }
-      var sign = pp < 0.5,
-          pFinal = sign ? pp : 1 - pp,
-          g = G(pFinal);
-      for (var s = g(), k = 0; s <= nn; ++k) s += g();
-      return acc + (sign ? k : nn - k);
-    };
-  }
-
-  randomBinomial.source = sourceRandomBinomial;
-
-  return randomBinomial;
-})(defaultSource);
Index: de_modules/d3-random/src/cauchy.js
===================================================================
--- node_modules/d3-random/src/cauchy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomCauchy(source) {
-  function randomCauchy(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * Math.tan(Math.PI * source());
-    };
-  }
-
-  randomCauchy.source = sourceRandomCauchy;
-
-  return randomCauchy;
-})(defaultSource);
Index: de_modules/d3-random/src/defaultSource.js
===================================================================
--- node_modules/d3-random/src/defaultSource.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default Math.random;
Index: de_modules/d3-random/src/exponential.js
===================================================================
--- node_modules/d3-random/src/exponential.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomExponential(source) {
-  function randomExponential(lambda) {
-    return function() {
-      return -Math.log1p(-source()) / lambda;
-    };
-  }
-
-  randomExponential.source = sourceRandomExponential;
-
-  return randomExponential;
-})(defaultSource);
Index: de_modules/d3-random/src/gamma.js
===================================================================
--- node_modules/d3-random/src/gamma.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import normal from "./normal.js";
-
-export default (function sourceRandomGamma(source) {
-  var randomNormal = normal.source(source)();
-
-  function randomGamma(k, theta) {
-    if ((k = +k) < 0) throw new RangeError("invalid k");
-    // degenerate distribution if k === 0
-    if (k === 0) return () => 0;
-    theta = theta == null ? 1 : +theta;
-    // exponential distribution if k === 1
-    if (k === 1) return () => -Math.log1p(-source()) * theta;
-
-    var d = (k < 1 ? k + 1 : k) - 1 / 3,
-        c = 1 / (3 * Math.sqrt(d)),
-        multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;
-    return function() {
-      do {
-        do {
-          var x = randomNormal(),
-              v = 1 + c * x;
-        } while (v <= 0);
-        v *= v * v;
-        var u = 1 - source();
-      } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));
-      return d * v * multiplier() * theta;
-    };
-  }
-
-  randomGamma.source = sourceRandomGamma;
-
-  return randomGamma;
-})(defaultSource);
Index: de_modules/d3-random/src/geometric.js
===================================================================
--- node_modules/d3-random/src/geometric.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomGeometric(source) {
-  function randomGeometric(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    if (p === 0) return () => Infinity;
-    if (p === 1) return () => 1;
-    p = Math.log1p(-p);
-    return function() {
-      return 1 + Math.floor(Math.log1p(-source()) / p);
-    };
-  }
-
-  randomGeometric.source = sourceRandomGeometric;
-
-  return randomGeometric;
-})(defaultSource);
Index: de_modules/d3-random/src/index.js
===================================================================
--- node_modules/d3-random/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export {default as randomUniform} from "./uniform.js";
-export {default as randomInt} from "./int.js";
-export {default as randomNormal} from "./normal.js";
-export {default as randomLogNormal} from "./logNormal.js";
-export {default as randomBates} from "./bates.js";
-export {default as randomIrwinHall} from "./irwinHall.js";
-export {default as randomExponential} from "./exponential.js";
-export {default as randomPareto} from "./pareto.js";
-export {default as randomBernoulli} from "./bernoulli.js";
-export {default as randomGeometric} from "./geometric.js";
-export {default as randomBinomial} from "./binomial.js";
-export {default as randomGamma} from "./gamma.js";
-export {default as randomBeta} from "./beta.js";
-export {default as randomWeibull} from "./weibull.js";
-export {default as randomCauchy} from "./cauchy.js";
-export {default as randomLogistic} from "./logistic.js";
-export {default as randomPoisson} from "./poisson.js";
-export {default as randomLcg} from "./lcg.js";
Index: de_modules/d3-random/src/int.js
===================================================================
--- node_modules/d3-random/src/int.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomInt(source) {
-  function randomInt(min, max) {
-    if (arguments.length < 2) max = min, min = 0;
-    min = Math.floor(min);
-    max = Math.floor(max) - min;
-    return function() {
-      return Math.floor(source() * max + min);
-    };
-  }
-
-  randomInt.source = sourceRandomInt;
-
-  return randomInt;
-})(defaultSource);
Index: de_modules/d3-random/src/irwinHall.js
===================================================================
--- node_modules/d3-random/src/irwinHall.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomIrwinHall(source) {
-  function randomIrwinHall(n) {
-    if ((n = +n) <= 0) return () => 0;
-    return function() {
-      for (var sum = 0, i = n; i > 1; --i) sum += source();
-      return sum + i * source();
-    };
-  }
-
-  randomIrwinHall.source = sourceRandomIrwinHall;
-
-  return randomIrwinHall;
-})(defaultSource);
Index: de_modules/d3-random/src/lcg.js
===================================================================
--- node_modules/d3-random/src/lcg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const mul = 0x19660D;
-const inc = 0x3C6EF35F;
-const eps = 1 / 0x100000000;
-
-export default function lcg(seed = Math.random()) {
-  let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;
-  return () => (state = mul * state + inc | 0, eps * (state >>> 0));
-}
Index: de_modules/d3-random/src/logNormal.js
===================================================================
--- node_modules/d3-random/src/logNormal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import normal from "./normal.js";
-
-export default (function sourceRandomLogNormal(source) {
-  var N = normal.source(source);
-
-  function randomLogNormal() {
-    var randomNormal = N.apply(this, arguments);
-    return function() {
-      return Math.exp(randomNormal());
-    };
-  }
-
-  randomLogNormal.source = sourceRandomLogNormal;
-
-  return randomLogNormal;
-})(defaultSource);
Index: de_modules/d3-random/src/logistic.js
===================================================================
--- node_modules/d3-random/src/logistic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomLogistic(source) {
-  function randomLogistic(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      var u = source();
-      return a + b * Math.log(u / (1 - u));
-    };
-  }
-
-  randomLogistic.source = sourceRandomLogistic;
-
-  return randomLogistic;
-})(defaultSource);
Index: de_modules/d3-random/src/normal.js
===================================================================
--- node_modules/d3-random/src/normal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomNormal(source) {
-  function randomNormal(mu, sigma) {
-    var x, r;
-    mu = mu == null ? 0 : +mu;
-    sigma = sigma == null ? 1 : +sigma;
-    return function() {
-      var y;
-
-      // If available, use the second previously-generated uniform random.
-      if (x != null) y = x, x = null;
-
-      // Otherwise, generate a new x and y.
-      else do {
-        x = source() * 2 - 1;
-        y = source() * 2 - 1;
-        r = x * x + y * y;
-      } while (!r || r > 1);
-
-      return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
-    };
-  }
-
-  randomNormal.source = sourceRandomNormal;
-
-  return randomNormal;
-})(defaultSource);
Index: de_modules/d3-random/src/pareto.js
===================================================================
--- node_modules/d3-random/src/pareto.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomPareto(source) {
-  function randomPareto(alpha) {
-    if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha");
-    alpha = 1 / -alpha;
-    return function() {
-      return Math.pow(1 - source(), alpha);
-    };
-  }
-
-  randomPareto.source = sourceRandomPareto;
-
-  return randomPareto;
-})(defaultSource);
Index: de_modules/d3-random/src/poisson.js
===================================================================
--- node_modules/d3-random/src/poisson.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import defaultSource from "./defaultSource.js";
-import binomial from "./binomial.js";
-import gamma from "./gamma.js";
-
-export default (function sourceRandomPoisson(source) {
-  var G = gamma.source(source),
-      B = binomial.source(source);
-
-  function randomPoisson(lambda) {
-    return function() {
-      var acc = 0, l = lambda;
-      while (l > 16) {
-        var n = Math.floor(0.875 * l),
-            t = G(n)();
-        if (t > l) return acc + B(n - 1, l / t)();
-        acc += n;
-        l -= t;
-      }
-      for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());
-      return acc + k;
-    };
-  }
-
-  randomPoisson.source = sourceRandomPoisson;
-
-  return randomPoisson;
-})(defaultSource);
Index: de_modules/d3-random/src/uniform.js
===================================================================
--- node_modules/d3-random/src/uniform.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomUniform(source) {
-  function randomUniform(min, max) {
-    min = min == null ? 0 : +min;
-    max = max == null ? 1 : +max;
-    if (arguments.length === 1) max = min, min = 0;
-    else max -= min;
-    return function() {
-      return source() * max + min;
-    };
-  }
-
-  randomUniform.source = sourceRandomUniform;
-
-  return randomUniform;
-})(defaultSource);
Index: de_modules/d3-random/src/weibull.js
===================================================================
--- node_modules/d3-random/src/weibull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import defaultSource from "./defaultSource.js";
-
-export default (function sourceRandomWeibull(source) {
-  function randomWeibull(k, a, b) {
-    var outerFunc;
-    if ((k = +k) === 0) {
-      outerFunc = x => -Math.log(x);
-    } else {
-      k = 1 / k;
-      outerFunc = x => Math.pow(x, k);
-    }
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * outerFunc(-Math.log1p(-source()));
-    };
-  }
-
-  randomWeibull.source = sourceRandomWeibull;
-
-  return randomWeibull;
-})(defaultSource);
Index: de_modules/d3-sankey/LICENSE
===================================================================
--- node_modules/d3-sankey/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-Copyright 2015, Mike Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/d3-sankey/README.md
===================================================================
--- node_modules/d3-sankey/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,249 +1,0 @@
-# d3-sankey
-
-Sankey diagrams visualize the directed flow between nodes in an acyclic network. For example, this diagram shows a possible scenario of UK energy production and consumption in 2050:
-
-[<img alt="Sankey diagram" src="https://raw.githubusercontent.com/d3/d3-sankey/master/img/energy.png" width="960">](https://observablehq.com/@d3/sankey-diagram)
-
-Source: Department of Energy & Climate Change, Tom Counsell.
-
-**For an interactive editor, see [Flow-o-Matic](https://observablehq.com/@mbostock/flow-o-matic).**
-
-## Installing
-
-If you use NPM, `npm install d3-sankey`. Otherwise, download the [latest release](https://github.com/d3/d3-sankey/releases/latest). You can also load directly from [unpkg.com](https://unpkg.com/d3-sankey/). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `d3` global is exported:
-
-```html
-<script src="https://unpkg.com/d3-array@1"></script>
-<script src="https://unpkg.com/d3-collection@1"></script>
-<script src="https://unpkg.com/d3-path@1"></script>
-<script src="https://unpkg.com/d3-shape@1"></script>
-<script src="https://unpkg.com/d3-sankey@0"></script>
-<script>
-
-var sankey = d3.sankey();
-
-</script>
-```
-
-## API Reference
-
-<a href="#sankey" name="sankey">#</a> d3.<b>sankey</b>() [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-Constructs a new Sankey generator with the default settings.
-
-<a href="#_sankey" name="_sankey">#</a> <i>sankey</i>(<i>arguments</i>…) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-Computes the node and link positions for the given *arguments*, returning a *graph* representing the Sankey layout. The returned *graph* has the following properties:
-
-* *graph*.nodes - the array of [nodes](#sankey_nodes)
-* *graph*.links - the array of [links](#sankey_links)
-
-<a href="#sankey_update" name="sankey_update">#</a> <i>sankey</i>.<b>update</b>(<i>graph</i>) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-Recomputes the specified *graph*’s links’ positions, updating the following properties of each *link*:
-
-* *link*.y0 - the link’s vertical starting position (at source node)
-* *link*.y1 - the link’s vertical end position (at target node)
-
-This method is intended to be called after computing the initial [Sankey layout](#_sankey), for example when the diagram is repositioned interactively.
-
-<a name="sankey_nodes" href="#sankey_nodes">#</a> <i>sankey</i>.<b>nodes</b>([<i>nodes</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *nodes* is specified, sets the Sankey generator’s nodes accessor to the specified function or array and returns this Sankey generator. If *nodes* is not specified, returns the current nodes accessor, which defaults to:
-
-```js
-function nodes(graph) {
-  return graph.nodes;
-}
-```
-
-If *nodes* is specified as a function, the function is invoked when the Sankey layout is [generated](#_sankey), being passed any arguments passed to the Sankey generator. This function must return an array of nodes. If *nodes* is not a function, it must be a constant array of *nodes*.
-
-Each *node* must be an object. The following properties are assigned by the [Sankey generator](#_sankey):
-
-* *node*.sourceLinks - the array of outgoing [links](#sankey_links) which have this node as their source
-* *node*.targetLinks - the array of incoming [links](#sankey_links) which have this node as their target
-* *node*.value - the node’s value; this is the sum of *link*.value for the node’s incoming [links](#sankey_links), or *node*.fixedValue if defined
-* *node*.index - the node’s zero-based index within the array of nodes
-* *node*.depth - the node’s zero-based graph depth, derived from the graph topology
-* *node*.height - the node’s zero-based graph height, derived from the graph topology
-* *node*.layer - the node’s zero-based column index, corresponding to its horizontal position
-* *node*.x0 - the node’s minimum horizontal position, derived from *node*.depth
-* *node*.x1 - the node’s maximum horizontal position (*node*.x0 + [*sankey*.nodeWidth](#sankey_nodeWidth))
-* *node*.y0 - the node’s minimum vertical position
-* *node*.y1 - the node’s maximum vertical position (*node*.y1 - *node*.y0 is proportional to *node*.value)
-
-See also [*sankey*.links](#sankey_links).
-
-<a name="sankey_links" href="#sankey_links">#</a> <i>sankey</i>.<b>links</b>([<i>links</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *links* is specified, sets the Sankey generator’s links accessor to the specified function or array and returns this Sankey generator. If *links* is not specified, returns the current links accessor, which defaults to:
-
-```js
-function links(graph) {
-  return graph.links;
-}
-```
-
-If *links* is specified as a function, the function is invoked when the Sankey layout is [generated](#_sankey), being passed any arguments passed to the Sankey generator. This function must return an array of links. If *links* is not a function, it must be a constant array of *links*.
-
-Each *link* must be an object with the following properties:
-
-* *link*.source - the link’s source [node](#sankey_nodes)
-* *link*.target - the link’s target [node](#sankey_nodes)
-* *link*.value - the link’s numeric value
-
-For convenience, a link’s source and target may be initialized using numeric or string identifiers rather than object references; see [*sankey*.nodeId](#sankey_nodeId). The following properties are assigned to each link by the [Sankey generator](#_sankey):
-
-* *link*.y0 - the link’s vertical starting position (at source node)
-* *link*.y1 - the link’s vertical end position (at target node)
-* *link*.width - the link’s width (proportional to *link*.value)
-* *link*.index - the zero-based index of *link* within the array of links
-
-<a name="sankey_linkSort" href="#sankey_linkSort">#</a> <i>sankey</i>.<b>linkSort</b>([<i>sort</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *sort* is specified, sets the link sort method and returns this Sankey generator. If *sort* is not specified, returns the current link sort method, which defaults to *undefined*, indicating that vertical order of links within each node will be determined automatically by the layout. If *sort* is null, the order is fixed by the input. Otherwise, the specified *sort* function determines the order; the function is passed two links, and must return a value less than 0 if the first link should be above the second, and a value greater than 0 if the second link should be above the first, or 0 if the order is not specified.
-
-<a name="sankey_nodeId" href="#sankey_nodeId">#</a> <i>sankey</i>.<b>nodeId</b>([<i>id</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *id* is specified, sets the node id accessor to the specified function and returns this Sankey generator. If *id* is not specified, returns the current node id accessor, which defaults to the numeric *node*.index:
-
-```js
-function id(d) {
-  return d.index;
-}
-```
-
-The default id accessor allows each link’s source and target to be specified as a zero-based index into the [nodes](#sankey_nodes) array. For example:
-
-```js
-var nodes = [
-  {"id": "Alice"},
-  {"id": "Bob"},
-  {"id": "Carol"}
-];
-
-var links = [
-  {"source": 0, "target": 1}, // Alice → Bob
-  {"source": 1, "target": 2} // Bob → Carol
-];
-```
-
-Now consider a different id accessor that returns a string:
-
-```js
-function id(d) {
-  return d.id;
-}
-```
-
-With this accessor, you can use named sources and targets:
-
-```js
-var nodes = [
-  {"id": "Alice"},
-  {"id": "Bob"},
-  {"id": "Carol"}
-];
-
-var links = [
-  {"source": "Alice", "target": "Bob"},
-  {"source": "Bob", "target": "Carol"}
-];
-```
-
-This is particularly useful when representing graphs in JSON, as JSON does not allow references. See [this example](https://bl.ocks.org/mbostock/f584aa36df54c451c94a9d0798caed35).
-
-<a name="sankey_nodeAlign" href="#sankey_nodeAlign">#</a> <i>sankey</i>.<b>nodeAlign</b>([<i>align</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *align* is specified, sets the node [alignment method](#alignments) to the specified function and returns this Sankey generator. If *align* is not specified, returns the current node alignment method, which defaults to [d3.sankeyJustify](#sankeyJustify). The specified function is evaluated for each input *node* in order, being passed the current *node* and the total depth *n* of the graph (one plus the maximum *node*.depth), and must return an integer between 0 and *n* - 1 that indicates the desired horizontal position of the node in the generated Sankey diagram.
-
-<a name="sankey_nodeSort" href="#sankey_nodeSort">#</a> <i>sankey</i>.<b>nodeSort</b>([<i>sort</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *sort* is specified, sets the node sort method and returns this Sankey generator. If *sort* is not specified, returns the current node sort method, which defaults to *undefined*, indicating that vertical order of nodes within each column will be determined automatically by the layout. If *sort* is null, the order is fixed by the input. Otherwise, the specified *sort* function determines the order; the function is passed two nodes, and must return a value less than 0 if the first node should be above the second, and a value greater than 0 if the second node should be above the first, or 0 if the order is not specified.
-
-<a name="sankey_nodeWidth" href="#sankey_nodeWidth">#</a> <i>sankey</i>.<b>nodeWidth</b>([<i>width</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *width* is specified, sets the node width to the specified number and returns this Sankey generator. If *width* is not specified, returns the current node width, which defaults to 24.
-
-<a name="sankey_nodePadding" href="#sankey_nodePadding">#</a> <i>sankey</i>.<b>nodePadding</b>([<i>padding</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *padding* is specified, sets the vertical separation between nodes at each column to the specified number and returns this Sankey generator. If *padding* is not specified, returns the current node padding, which defaults to 8.
-
-<a name="sankey_extent" href="#sankey_extent">#</a> <i>sankey</i>.<b>extent</b>([<i>extent</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *extent* is specified, sets the extent of the Sankey layout to the specified bounds and returns the layout. The *extent* bounds are specified as an array \[\[<i>x0</i>, <i>y0</i>\], \[<i>x1</i>, <i>y1</i>\]\], where *x0* is the left side of the extent, *y0* is the top, *x1* is the right and *y1* is the bottom. If *extent* is not specified, returns the current extent which defaults to [[0, 0], [1, 1]].
-
-<a name="sankey_size" href="#sankey_size">#</a> <i>sankey</i>.<b>size</b>([<i>size</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-An alias for [*sankey*.extent](#sankey_extent) where the minimum *x* and *y* of the extent are ⟨0,0⟩. Equivalent to:
-
-```js
-sankey.extent([[0, 0], size]);
-```
-
-<a name="sankey_iterations" href="#sankey_iterations">#</a> <i>sankey</i>.<b>iterations</b>([<i>iterations</i>]) [<>](https://github.com/d3/d3-sankey/blob/master/src/sankey.js "Source")
-
-If *iterations* is specified, sets the number of relaxation iterations when [generating the layout](#_sankey) and returns this Sankey generator. If *iterations* is not specified, returns the current number of relaxation iterations, which defaults to 6.
-
-### Alignments
-
-See [*sankey*.nodeAlign](#sankey_nodeAlign).
-
-<a name="sankeyLeft" href="#sankeyLeft">#</a> d3.<b>sankeyLeft</b>(<i>node</i>, <i>n</i>) [<>](https://github.com/d3/d3-sankey/blob/master/src/align.js "Source")
-
-[<img alt="left" src="https://raw.githubusercontent.com/d3/d3-sankey/master/img/align-left.png" width="480">](https://observablehq.com/@d3/sankey-diagram?align=left)
-
-Returns *node*.depth.
-
-<a name="sankeyRight" href="#sankeyRight">#</a> d3.<b>sankeyRight</b>(<i>node</i>, <i>n</i>) [<>](https://github.com/d3/d3-sankey/blob/master/src/align.js "Source")
-
-[<img alt="right" src="https://raw.githubusercontent.com/d3/d3-sankey/master/img/align-right.png" width="480">](https://observablehq.com/@d3/sankey-diagram?align=right)
-
-Returns *n* - 1 - *node*.height.
-
-<a name="sankeyCenter" href="#sankeyCenter">#</a> d3.<b>sankeyCenter</b>(<i>node</i>, <i>n</i>) [<>](https://github.com/d3/d3-sankey/blob/master/src/align.js "Source")
-
-[<img alt="center" src="https://raw.githubusercontent.com/d3/d3-sankey/master/img/align-center.png" width="480">](https://observablehq.com/@d3/sankey-diagram?align=center)
-
-Like [d3.sankeyLeft](#sankeyLeft), except that nodes without any incoming links are moved as right as possible.
-
-<a name="sankeyJustify" href="#sankeyJustify">#</a> d3.<b>sankeyJustify</b>(<i>node</i>, <i>n</i>) [<>](https://github.com/d3/d3-sankey/blob/master/src/align.js "Source")
-
-[<img alt="justify" src="https://raw.githubusercontent.com/d3/d3-sankey/master/img/energy.png" width="480">](https://observablehq.com/@d3/sankey-diagram)
-
-Like [d3.sankeyLeft](#sankeyLeft), except that nodes without any outgoing links are moved to the far right.
-
-### Links
-
-<a name="sankeyLinkHorizontal" href="#sankeyLinkHorizontal">#</a> d3.<b>sankeyLinkHorizontal</b>() [<>](https://github.com/d3/d3-sankey/blob/master/src/sankeyLinkHorizontal.js "Source")
-
-Returns a [horizontal link shape](https://github.com/d3/d3-shape/blob/master/README.md#linkHorizontal) suitable for a Sankey diagram. The [source accessor](https://github.com/d3/d3-shape/blob/master/README.md#link_source) is defined as:
-
-```js
-function source(d) {
-  return [d.source.x1, d.y0];
-}
-```
-
-The [target accessor](https://github.com/d3/d3-shape/blob/master/README.md#link_target) is defined as:
-
-```js
-function target(d) {
-  return [d.target.x0, d.y1];
-}
-```
-
-For example, to render the links of a Sankey diagram in SVG, you might say:
-
-```js
-svg.append("g")
-    .attr("fill", "none")
-    .attr("stroke", "#000")
-    .attr("stroke-opacity", 0.2)
-  .selectAll("path")
-  .data(graph.links)
-  .join("path")
-    .attr("d", d3.sankeyLinkHorizontal())
-    .attr("stroke-width", function(d) { return d.width; });
-```
Index: de_modules/d3-sankey/dist/d3-sankey.js
===================================================================
--- node_modules/d3-sankey/dist/d3-sankey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,425 +1,0 @@
-// https://github.com/d3/d3-sankey v0.12.3 Copyright 2019 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array'), require('d3-shape')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-shape'], factory) :
-(global = global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3));
-}(this, function (exports, d3Array, d3Shape) { 'use strict';
-
-function targetDepth(d) {
-  return d.target.depth;
-}
-
-function left(node) {
-  return node.depth;
-}
-
-function right(node, n) {
-  return n - 1 - node.height;
-}
-
-function justify(node, n) {
-  return node.sourceLinks.length ? node.depth : n - 1;
-}
-
-function center(node) {
-  return node.targetLinks.length ? node.depth
-      : node.sourceLinks.length ? d3Array.min(node.sourceLinks, targetDepth) - 1
-      : 0;
-}
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-function ascendingSourceBreadth(a, b) {
-  return ascendingBreadth(a.source, b.source) || a.index - b.index;
-}
-
-function ascendingTargetBreadth(a, b) {
-  return ascendingBreadth(a.target, b.target) || a.index - b.index;
-}
-
-function ascendingBreadth(a, b) {
-  return a.y0 - b.y0;
-}
-
-function value(d) {
-  return d.value;
-}
-
-function defaultId(d) {
-  return d.index;
-}
-
-function defaultNodes(graph) {
-  return graph.nodes;
-}
-
-function defaultLinks(graph) {
-  return graph.links;
-}
-
-function find(nodeById, id) {
-  const node = nodeById.get(id);
-  if (!node) throw new Error("missing: " + id);
-  return node;
-}
-
-function computeLinkBreadths({nodes}) {
-  for (const node of nodes) {
-    let y0 = node.y0;
-    let y1 = y0;
-    for (const link of node.sourceLinks) {
-      link.y0 = y0 + link.width / 2;
-      y0 += link.width;
-    }
-    for (const link of node.targetLinks) {
-      link.y1 = y1 + link.width / 2;
-      y1 += link.width;
-    }
-  }
-}
-
-function Sankey() {
-  let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent
-  let dx = 24; // nodeWidth
-  let dy = 8, py; // nodePadding
-  let id = defaultId;
-  let align = justify;
-  let sort;
-  let linkSort;
-  let nodes = defaultNodes;
-  let links = defaultLinks;
-  let iterations = 6;
-
-  function sankey() {
-    const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};
-    computeNodeLinks(graph);
-    computeNodeValues(graph);
-    computeNodeDepths(graph);
-    computeNodeHeights(graph);
-    computeNodeBreadths(graph);
-    computeLinkBreadths(graph);
-    return graph;
-  }
-
-  sankey.update = function(graph) {
-    computeLinkBreadths(graph);
-    return graph;
-  };
-
-  sankey.nodeId = function(_) {
-    return arguments.length ? (id = typeof _ === "function" ? _ : constant(_), sankey) : id;
-  };
-
-  sankey.nodeAlign = function(_) {
-    return arguments.length ? (align = typeof _ === "function" ? _ : constant(_), sankey) : align;
-  };
-
-  sankey.nodeSort = function(_) {
-    return arguments.length ? (sort = _, sankey) : sort;
-  };
-
-  sankey.nodeWidth = function(_) {
-    return arguments.length ? (dx = +_, sankey) : dx;
-  };
-
-  sankey.nodePadding = function(_) {
-    return arguments.length ? (dy = py = +_, sankey) : dy;
-  };
-
-  sankey.nodes = function(_) {
-    return arguments.length ? (nodes = typeof _ === "function" ? _ : constant(_), sankey) : nodes;
-  };
-
-  sankey.links = function(_) {
-    return arguments.length ? (links = typeof _ === "function" ? _ : constant(_), sankey) : links;
-  };
-
-  sankey.linkSort = function(_) {
-    return arguments.length ? (linkSort = _, sankey) : linkSort;
-  };
-
-  sankey.size = function(_) {
-    return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];
-  };
-
-  sankey.extent = function(_) {
-    return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];
-  };
-
-  sankey.iterations = function(_) {
-    return arguments.length ? (iterations = +_, sankey) : iterations;
-  };
-
-  function computeNodeLinks({nodes, links}) {
-    for (const [i, node] of nodes.entries()) {
-      node.index = i;
-      node.sourceLinks = [];
-      node.targetLinks = [];
-    }
-    const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));
-    for (const [i, link] of links.entries()) {
-      link.index = i;
-      let {source, target} = link;
-      if (typeof source !== "object") source = link.source = find(nodeById, source);
-      if (typeof target !== "object") target = link.target = find(nodeById, target);
-      source.sourceLinks.push(link);
-      target.targetLinks.push(link);
-    }
-    if (linkSort != null) {
-      for (const {sourceLinks, targetLinks} of nodes) {
-        sourceLinks.sort(linkSort);
-        targetLinks.sort(linkSort);
-      }
-    }
-  }
-
-  function computeNodeValues({nodes}) {
-    for (const node of nodes) {
-      node.value = node.fixedValue === undefined
-          ? Math.max(d3Array.sum(node.sourceLinks, value), d3Array.sum(node.targetLinks, value))
-          : node.fixedValue;
-    }
-  }
-
-  function computeNodeDepths({nodes}) {
-    const n = nodes.length;
-    let current = new Set(nodes);
-    let next = new Set;
-    let x = 0;
-    while (current.size) {
-      for (const node of current) {
-        node.depth = x;
-        for (const {target} of node.sourceLinks) {
-          next.add(target);
-        }
-      }
-      if (++x > n) throw new Error("circular link");
-      current = next;
-      next = new Set;
-    }
-  }
-
-  function computeNodeHeights({nodes}) {
-    const n = nodes.length;
-    let current = new Set(nodes);
-    let next = new Set;
-    let x = 0;
-    while (current.size) {
-      for (const node of current) {
-        node.height = x;
-        for (const {source} of node.targetLinks) {
-          next.add(source);
-        }
-      }
-      if (++x > n) throw new Error("circular link");
-      current = next;
-      next = new Set;
-    }
-  }
-
-  function computeNodeLayers({nodes}) {
-    const x = d3Array.max(nodes, d => d.depth) + 1;
-    const kx = (x1 - x0 - dx) / (x - 1);
-    const columns = new Array(x);
-    for (const node of nodes) {
-      const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));
-      node.layer = i;
-      node.x0 = x0 + i * kx;
-      node.x1 = node.x0 + dx;
-      if (columns[i]) columns[i].push(node);
-      else columns[i] = [node];
-    }
-    if (sort) for (const column of columns) {
-      column.sort(sort);
-    }
-    return columns;
-  }
-
-  function initializeNodeBreadths(columns) {
-    const ky = d3Array.min(columns, c => (y1 - y0 - (c.length - 1) * py) / d3Array.sum(c, value));
-    for (const nodes of columns) {
-      let y = y0;
-      for (const node of nodes) {
-        node.y0 = y;
-        node.y1 = y + node.value * ky;
-        y = node.y1 + py;
-        for (const link of node.sourceLinks) {
-          link.width = link.value * ky;
-        }
-      }
-      y = (y1 - y + py) / (nodes.length + 1);
-      for (let i = 0; i < nodes.length; ++i) {
-        const node = nodes[i];
-        node.y0 += y * (i + 1);
-        node.y1 += y * (i + 1);
-      }
-      reorderLinks(nodes);
-    }
-  }
-
-  function computeNodeBreadths(graph) {
-    const columns = computeNodeLayers(graph);
-    py = Math.min(dy, (y1 - y0) / (d3Array.max(columns, c => c.length) - 1));
-    initializeNodeBreadths(columns);
-    for (let i = 0; i < iterations; ++i) {
-      const alpha = Math.pow(0.99, i);
-      const beta = Math.max(1 - alpha, (i + 1) / iterations);
-      relaxRightToLeft(columns, alpha, beta);
-      relaxLeftToRight(columns, alpha, beta);
-    }
-  }
-
-  // Reposition each node based on its incoming (target) links.
-  function relaxLeftToRight(columns, alpha, beta) {
-    for (let i = 1, n = columns.length; i < n; ++i) {
-      const column = columns[i];
-      for (const target of column) {
-        let y = 0;
-        let w = 0;
-        for (const {source, value} of target.targetLinks) {
-          let v = value * (target.layer - source.layer);
-          y += targetTop(source, target) * v;
-          w += v;
-        }
-        if (!(w > 0)) continue;
-        let dy = (y / w - target.y0) * alpha;
-        target.y0 += dy;
-        target.y1 += dy;
-        reorderNodeLinks(target);
-      }
-      if (sort === undefined) column.sort(ascendingBreadth);
-      resolveCollisions(column, beta);
-    }
-  }
-
-  // Reposition each node based on its outgoing (source) links.
-  function relaxRightToLeft(columns, alpha, beta) {
-    for (let n = columns.length, i = n - 2; i >= 0; --i) {
-      const column = columns[i];
-      for (const source of column) {
-        let y = 0;
-        let w = 0;
-        for (const {target, value} of source.sourceLinks) {
-          let v = value * (target.layer - source.layer);
-          y += sourceTop(source, target) * v;
-          w += v;
-        }
-        if (!(w > 0)) continue;
-        let dy = (y / w - source.y0) * alpha;
-        source.y0 += dy;
-        source.y1 += dy;
-        reorderNodeLinks(source);
-      }
-      if (sort === undefined) column.sort(ascendingBreadth);
-      resolveCollisions(column, beta);
-    }
-  }
-
-  function resolveCollisions(nodes, alpha) {
-    const i = nodes.length >> 1;
-    const subject = nodes[i];
-    resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);
-    resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);
-    resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);
-    resolveCollisionsTopToBottom(nodes, y0, 0, alpha);
-  }
-
-  // Push any overlapping nodes down.
-  function resolveCollisionsTopToBottom(nodes, y, i, alpha) {
-    for (; i < nodes.length; ++i) {
-      const node = nodes[i];
-      const dy = (y - node.y0) * alpha;
-      if (dy > 1e-6) node.y0 += dy, node.y1 += dy;
-      y = node.y1 + py;
-    }
-  }
-
-  // Push any overlapping nodes up.
-  function resolveCollisionsBottomToTop(nodes, y, i, alpha) {
-    for (; i >= 0; --i) {
-      const node = nodes[i];
-      const dy = (node.y1 - y) * alpha;
-      if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;
-      y = node.y0 - py;
-    }
-  }
-
-  function reorderNodeLinks({sourceLinks, targetLinks}) {
-    if (linkSort === undefined) {
-      for (const {source: {sourceLinks}} of targetLinks) {
-        sourceLinks.sort(ascendingTargetBreadth);
-      }
-      for (const {target: {targetLinks}} of sourceLinks) {
-        targetLinks.sort(ascendingSourceBreadth);
-      }
-    }
-  }
-
-  function reorderLinks(nodes) {
-    if (linkSort === undefined) {
-      for (const {sourceLinks, targetLinks} of nodes) {
-        sourceLinks.sort(ascendingTargetBreadth);
-        targetLinks.sort(ascendingSourceBreadth);
-      }
-    }
-  }
-
-  // Returns the target.y0 that would produce an ideal link from source to target.
-  function targetTop(source, target) {
-    let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;
-    for (const {target: node, width} of source.sourceLinks) {
-      if (node === target) break;
-      y += width + py;
-    }
-    for (const {source: node, width} of target.targetLinks) {
-      if (node === source) break;
-      y -= width;
-    }
-    return y;
-  }
-
-  // Returns the source.y0 that would produce an ideal link from source to target.
-  function sourceTop(source, target) {
-    let y = target.y0 - (target.targetLinks.length - 1) * py / 2;
-    for (const {source: node, width} of target.targetLinks) {
-      if (node === source) break;
-      y += width + py;
-    }
-    for (const {target: node, width} of source.sourceLinks) {
-      if (node === target) break;
-      y -= width;
-    }
-    return y;
-  }
-
-  return sankey;
-}
-
-function horizontalSource(d) {
-  return [d.source.x1, d.y0];
-}
-
-function horizontalTarget(d) {
-  return [d.target.x0, d.y1];
-}
-
-function sankeyLinkHorizontal() {
-  return d3Shape.linkHorizontal()
-      .source(horizontalSource)
-      .target(horizontalTarget);
-}
-
-exports.sankey = Sankey;
-exports.sankeyCenter = center;
-exports.sankeyJustify = justify;
-exports.sankeyLeft = left;
-exports.sankeyLinkHorizontal = sankeyLinkHorizontal;
-exports.sankeyRight = right;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-sankey/dist/d3-sankey.min.js
===================================================================
--- node_modules/d3-sankey/dist/d3-sankey.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://github.com/d3/d3-sankey v0.12.3 Copyright 2019 Mike Bostock
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array"),require("d3-shape")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-shape"],t):t((n=n||self).d3=n.d3||{},n.d3,n.d3)}(this,function(n,t,e){"use strict";function o(n){return n.target.depth}function r(n,t){return n.sourceLinks.length?n.depth:t-1}function i(n){return function(){return n}}function s(n,t){return u(n.source,t.source)||n.index-t.index}function f(n,t){return u(n.target,t.target)||n.index-t.index}function u(n,t){return n.y0-t.y0}function c(n){return n.value}function l(n){return n.index}function a(n){return n.nodes}function d(n){return n.links}function h(n,t){const e=n.get(t);if(!e)throw new Error("missing: "+t);return e}function g({nodes:n}){for(const t of n){let n=t.y0,e=n;for(const e of t.sourceLinks)e.y0=n+e.width/2,n+=e.width;for(const n of t.targetLinks)n.y1=e+n.width/2,e+=n.width}}function y(n){return[n.source.x1,n.y0]}function k(n){return[n.target.x0,n.y1]}n.sankey=function(){let n,e,o,y=0,k=0,L=1,p=1,w=24,x=8,m=l,v=r,M=a,b=d,S=6;function z(){const r={nodes:M.apply(null,arguments),links:b.apply(null,arguments)};return function({nodes:n,links:t}){for(const[t,e]of n.entries())e.index=t,e.sourceLinks=[],e.targetLinks=[];const e=new Map(n.map((t,e)=>[m(t,e,n),t]));for(const[n,o]of t.entries()){o.index=n;let{source:t,target:r}=o;"object"!=typeof t&&(t=o.source=h(e,t)),"object"!=typeof r&&(r=o.target=h(e,r)),t.sourceLinks.push(o),r.targetLinks.push(o)}if(null!=o)for(const{sourceLinks:t,targetLinks:e}of n)t.sort(o),e.sort(o)}(r),function({nodes:n}){for(const e of n)e.value=void 0===e.fixedValue?Math.max(t.sum(e.sourceLinks,c),t.sum(e.targetLinks,c)):e.fixedValue}(r),function({nodes:n}){const t=n.length;let e=new Set(n),o=new Set,r=0;for(;e.size;){for(const n of e){n.depth=r;for(const{target:t}of n.sourceLinks)o.add(t)}if(++r>t)throw new Error("circular link");e=o,o=new Set}}(r),function({nodes:n}){const t=n.length;let e=new Set(n),o=new Set,r=0;for(;e.size;){for(const n of e){n.height=r;for(const{source:t}of n.targetLinks)o.add(t)}if(++r>t)throw new Error("circular link");e=o,o=new Set}}(r),function(o){const r=function({nodes:n}){const o=t.max(n,n=>n.depth)+1,r=(L-y-w)/(o-1),i=new Array(o);for(const t of n){const n=Math.max(0,Math.min(o-1,Math.floor(v.call(null,t,o))));t.layer=n,t.x0=y+n*r,t.x1=t.x0+w,i[n]?i[n].push(t):i[n]=[t]}if(e)for(const n of i)n.sort(e);return i}(o);n=Math.min(x,(p-k)/(t.max(r,n=>n.length)-1)),function(e){const o=t.min(e,e=>(p-k-(e.length-1)*n)/t.sum(e,c));for(const t of e){let e=k;for(const r of t){r.y0=e,r.y1=e+r.value*o,e=r.y1+n;for(const n of r.sourceLinks)n.width=n.value*o}e=(p-e+n)/(t.length+1);for(let n=0;n<t.length;++n){const o=t[n];o.y0+=e*(n+1),o.y1+=e*(n+1)}V(t)}}(r);for(let n=0;n<S;++n){const t=Math.pow(.99,n),e=Math.max(1-t,(n+1)/S);E(r,t,e),j(r,t,e)}}(r),g(r),r}function j(n,t,o){for(let r=1,i=n.length;r<i;++r){const i=n[r];for(const n of i){let e=0,o=0;for(const{source:t,value:r}of n.targetLinks){let i=r*(n.layer-t.layer);e+=_(t,n)*i,o+=i}if(!(o>0))continue;let r=(e/o-n.y0)*t;n.y0+=r,n.y1+=r,P(n)}void 0===e&&i.sort(u),q(i,o)}}function E(n,t,o){for(let r=n.length-2;r>=0;--r){const i=n[r];for(const n of i){let e=0,o=0;for(const{target:t,value:r}of n.sourceLinks){let i=r*(t.layer-n.layer);e+=C(n,t)*i,o+=i}if(!(o>0))continue;let r=(e/o-n.y0)*t;n.y0+=r,n.y1+=r,P(n)}void 0===e&&i.sort(u),q(i,o)}}function q(t,e){const o=t.length>>1,r=t[o];H(t,r.y0-n,o-1,e),A(t,r.y1+n,o+1,e),H(t,p,t.length-1,e),A(t,k,0,e)}function A(t,e,o,r){for(;o<t.length;++o){const i=t[o],s=(e-i.y0)*r;s>1e-6&&(i.y0+=s,i.y1+=s),e=i.y1+n}}function H(t,e,o,r){for(;o>=0;--o){const i=t[o],s=(i.y1-e)*r;s>1e-6&&(i.y0-=s,i.y1-=s),e=i.y0-n}}function P({sourceLinks:n,targetLinks:t}){if(void 0===o){for(const{source:{sourceLinks:n}}of t)n.sort(f);for(const{target:{targetLinks:t}}of n)t.sort(s)}}function V(n){if(void 0===o)for(const{sourceLinks:t,targetLinks:e}of n)t.sort(f),e.sort(s)}function _(t,e){let o=t.y0-(t.sourceLinks.length-1)*n/2;for(const{target:r,width:i}of t.sourceLinks){if(r===e)break;o+=i+n}for(const{source:n,width:r}of e.targetLinks){if(n===t)break;o-=r}return o}function C(t,e){let o=e.y0-(e.targetLinks.length-1)*n/2;for(const{source:r,width:i}of e.targetLinks){if(r===t)break;o+=i+n}for(const{target:n,width:r}of t.sourceLinks){if(n===e)break;o-=r}return o}return z.update=function(n){return g(n),n},z.nodeId=function(n){return arguments.length?(m="function"==typeof n?n:i(n),z):m},z.nodeAlign=function(n){return arguments.length?(v="function"==typeof n?n:i(n),z):v},z.nodeSort=function(n){return arguments.length?(e=n,z):e},z.nodeWidth=function(n){return arguments.length?(w=+n,z):w},z.nodePadding=function(t){return arguments.length?(x=n=+t,z):x},z.nodes=function(n){return arguments.length?(M="function"==typeof n?n:i(n),z):M},z.links=function(n){return arguments.length?(b="function"==typeof n?n:i(n),z):b},z.linkSort=function(n){return arguments.length?(o=n,z):o},z.size=function(n){return arguments.length?(y=k=0,L=+n[0],p=+n[1],z):[L-y,p-k]},z.extent=function(n){return arguments.length?(y=+n[0][0],L=+n[1][0],k=+n[0][1],p=+n[1][1],z):[[y,k],[L,p]]},z.iterations=function(n){return arguments.length?(S=+n,z):S},z},n.sankeyCenter=function(n){return n.targetLinks.length?n.depth:n.sourceLinks.length?t.min(n.sourceLinks,o)-1:0},n.sankeyJustify=r,n.sankeyLeft=function(n){return n.depth},n.sankeyLinkHorizontal=function(){return e.linkHorizontal().source(y).target(k)},n.sankeyRight=function(n,t){return t-1-n.height},Object.defineProperty(n,"__esModule",{value:!0})});
Index: de_modules/d3-sankey/node_modules/d3-array/LICENSE
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-Copyright 2010-2020 Mike Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/d3-sankey/node_modules/d3-array/README.md
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,871 +1,0 @@
-# d3-array
-
-Data in JavaScript is often represented by an iterable (such as an [array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array), [set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set) or [generator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Generator)), and so iterable manipulation is a common task when analyzing or visualizing data. For example, you might take a contiguous slice (subset) of an array, filter an array using a predicate function, or map an array to a parallel set of values using a transform function. Before looking at the methods that d3-array provides, familiarize yourself with the powerful [array methods built-in to JavaScript](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array).
-
-JavaScript includes **mutation methods** that modify the array:
-
-* [*array*.pop](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/pop) - Remove the last element from the array.
-* [*array*.push](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/push) - Add one or more elements to the end of the array.
-* [*array*.reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) - Reverse the order of the elements of the array.
-* [*array*.shift](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/shift) - Remove the first element from the array.
-* [*array*.sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) - Sort the elements of the array.
-* [*array*.splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) - Add or remove elements from the array.
-* [*array*.unshift](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift) - Add one or more elements to the front of the array.
-
-There are also **access methods** that return some representation of the array:
-
-* [*array*.concat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) - Join the array with other array(s) or value(s).
-* [*array*.join](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/join) - Join all elements of the array into a string.
-* [*array*.slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) - Extract a section of the array.
-* [*array*.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) - Find the first occurrence of a value within the array.
-* [*array*.lastIndexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf) - Find the last occurrence of a value within the array.
-
-And finally **iteration methods** that apply functions to elements in the array:
-
-* [*array*.filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - Create a new array with only the elements for which a predicate is true.
-* [*array*.forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) - Call a function for each element in the array.
-* [*array*.every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every) - See if every element in the array satisfies a predicate.
-* [*array*.map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - Create a new array with the result of calling a function on every element in the array.
-* [*array*.some](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some) - See if at least one element in the array satisfies a predicate.
-* [*array*.reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) - Apply a function to reduce the array to a single value (from left-to-right).
-* [*array*.reduceRight](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight) - Apply a function to reduce the array to a single value (from right-to-left).
-
-## Installing
-
-If you use NPM, `npm install d3-array`. Otherwise, download the [latest release](https://github.com/d3/d3-array/releases/latest). You can also load directly from [d3js.org](https://d3js.org), either as a [standalone library](https://d3js.org/d3-array.v2.min.js) or as part of [D3](https://github.com/d3/d3). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `d3` global is exported:
-
-```html
-<script src="https://d3js.org/d3-array.v2.min.js"></script>
-<script>
-
-var min = d3.min(array);
-
-</script>
-```
-
-## API Reference
-
-* [Statistics](#statistics)
-* [Search](#search)
-* [Transformations](#transformations)
-* [Iterables](#iterables)
-* [Sets](#sets)
-* [Bins](#bins)
-* [Interning](#interning)
-
-### Statistics
-
-Methods for computing basic summary statistics.
-
-<a name="min" href="#min">#</a> d3.<b>min</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/min.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the minimum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the minimum value.
-
-Unlike the built-in [Math.min](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/min), this method ignores undefined, null and NaN values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the minimum of the strings [“20”, “3”] is “20”, while the minimum of the numbers [20, 3] is 3.
-
-See also [extent](#extent).
-
-<a name="minIndex" href="#minIndex">#</a> d3.<b>minIndex</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/minIndex.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the index of the minimum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns -1. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the minimum value.
-
-Unlike the built-in [Math.min](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/min), this method ignores undefined, null and NaN values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the minimum of the strings [“20”, “3”] is “20”, while the minimum of the numbers [20, 3] is 3.
-
-<a name="max" href="#max">#</a> d3.<b>max</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/max.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the maximum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the maximum value.
-
-Unlike the built-in [Math.max](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/max), this method ignores undefined values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the maximum of the strings [“20”, “3”] is “3”, while the maximum of the numbers [20, 3] is 20.
-
-See also [extent](#extent).
-
-<a name="maxIndex" href="#maxIndex">#</a> d3.<b>maxIndex</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/maxIndex.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the index of the maximum value in the given *iterable* using natural order. If the iterable contains no comparable values, returns -1. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the maximum value.
-
-Unlike the built-in [Math.max](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/max), this method ignores undefined values; this is useful for ignoring missing data. In addition, elements are compared using natural order rather than numeric order. For example, the maximum of the strings [“20”, “3”] is “3”, while the maximum of the numbers [20, 3] is 20.
-
-<a name="extent" href="#extent">#</a> d3.<b>extent</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/extent.js), [Examples](https://observablehq.com/@d3/d3-extent)
-
-Returns the [minimum](#min) and [maximum](#max) value in the given *iterable* using natural order. If the iterable contains no comparable values, returns [undefined, undefined]. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the extent.
-
-<a name="sum" href="#sum">#</a> d3.<b>sum</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/sum.js), [Examples](https://observablehq.com/@d3/d3-sum)
-
-Returns the sum of the given *iterable* of numbers. If the iterable contains no numbers, returns 0. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the sum. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="mean" href="#mean">#</a> d3.<b>mean</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/mean.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the mean of the given *iterable* of numbers. If the iterable contains no numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the mean. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="median" href="#median">#</a> d3.<b>median</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/median.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the median of the given *iterable* of numbers using the [R-7 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). If the iterable contains no numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the median. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="cumsum" href="#cumsum">#</a> d3.<b>cumsum</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/cumsum.js), [Examples](https://observablehq.com/@d3/d3-cumsum)
-
-Returns the cumulative sum of the given *iterable* of numbers, as a Float64Array of the same length. If the iterable contains no numbers, returns zeros. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the cumulative sum. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="quantile" href="#quantile">#</a> d3.<b>quantile</b>(<i>iterable</i>, <i>p</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the *p*-quantile of the given *iterable* of numbers, where *p* is a number in the range [0, 1]. For example, the median can be computed using *p* = 0.5, the first quartile at *p* = 0.25, and the third quartile at *p* = 0.75. This particular implementation uses the [R-7 method](http://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population), which is the default for the R programming language and Excel. For example:
-
-```js
-var a = [0, 10, 30];
-d3.quantile(a, 0); // 0
-d3.quantile(a, 0.5); // 10
-d3.quantile(a, 1); // 30
-d3.quantile(a, 0.25); // 5
-d3.quantile(a, 0.75); // 20
-d3.quantile(a, 0.1); // 2
-```
-
-An optional *accessor* function may be specified, which is equivalent to calling *array*.map(*accessor*) before computing the quantile.
-
-<a name="quantileSorted" href="#quantileSorted">#</a> d3.<b>quantileSorted</b>(<i>array</i>, <i>p</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Similar to *quantile*, but expects the input to be a **sorted** *array* of values. In contrast with *quantile*, the accessor is only called on the elements needed to compute the quantile.
-
-<a name="variance" href="#variance">#</a> d3.<b>variance</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/variance.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns an [unbiased estimator of the population variance](http://mathworld.wolfram.com/SampleVariance.html) of the given *iterable* of numbers using [Welford’s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm). If the iterable has fewer than two numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the variance. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="deviation" href="#deviation">#</a> d3.<b>deviation</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/deviation.js), [Examples](https://observablehq.com/@d3/d3-mean-d3-median-and-friends)
-
-Returns the standard deviation, defined as the square root of the [bias-corrected variance](#variance), of the given *iterable* of numbers. If the iterable has fewer than two numbers, returns undefined. An optional *accessor* function may be specified, which is equivalent to calling Array.from before computing the standard deviation. This method ignores undefined and NaN values; this is useful for ignoring missing data.
-
-<a name="fsum" href="#fsum">#</a> d3.<b>fsum</b>([<i>values</i>][, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/fsum.js), [Examples](https://observablehq.com/@d3/d3-fsum)
-
-Returns a full precision summation of the given *values*.
-
-```js
-d3.fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]); // 1
-d3.sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]); // 0.9999999999999999
-```
-
-Although slower, d3.fsum can replace d3.sum wherever greater precision is needed. Uses <a href="#adder">d3.Adder</a>.
-
-<a name="fcumsum" href="#fcumsum">#</a> d3.<b>fcumsum</b>([<i>values</i>][, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/fsum.js), [Examples](https://observablehq.com/@d3/d3-fcumsum)
-
-Returns a full precision cumulative sum of the given *values*.
-
-```js
-d3.fcumsum([1, 1e-14, -1]); // [1, 1.00000000000001, 1e-14]
-d3.cumsum([1, 1e-14, -1]); // [1, 1.00000000000001, 9.992e-15]
-```
-
-Although slower, d3.fcumsum can replace d3.cumsum when greater precision is needed. Uses <a href="#adder">d3.Adder</a>.
-
-<a name="adder" href="#adder">#</a> new d3.<b>Adder</b>()
-
-Creates a full precision adder for [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754) floating point numbers, setting its initial value to 0.
-
-<a name="adder_add" href="#adder_add">#</a> *adder*.<b>add</b>(<i>number</i>)
-
-Adds the specified *number* to the adder’s current value and returns the adder.
-
-<a name="adder_valueOf" href="#adder_valueOf">#</a> *adder*.<b>valueOf</b>()
-
-Returns the IEEE 754 double precision representation of the adder’s current value. Most useful as the short-hand notation `+adder`.
-
-### Search
-
-Methods for searching arrays for a specific element.
-
-<a name="least" href="#least">#</a> d3.<b>least</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/least.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="least" href="#least">#</a> d3.<b>least</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the least element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns undefined. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.least(array, (a, b) => a.foo - b.foo); // {foo: 42}
-d3.least(array, (a, b) => b.foo - a.foo); // {foo: 91}
-d3.least(array, a => a.foo); // {foo: 42}
-```
-
-This function is similar to [min](#min), except it allows the use of a comparator rather than an accessor.
-
-<a name="leastIndex" href="#leastIndex">#</a> d3.<b>leastIndex</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/leastIndex.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="leastIndex" href="#leastIndex">#</a> d3.<b>leastIndex</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the index of the least element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns -1. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.leastIndex(array, (a, b) => a.foo - b.foo); // 0
-d3.leastIndex(array, (a, b) => b.foo - a.foo); // 1
-d3.leastIndex(array, a => a.foo); // 0
-```
-
-This function is similar to [minIndex](#minIndex), except it allows the use of a comparator rather than an accessor.
-
-<a name="greatest" href="#greatest">#</a> d3.<b>greatest</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/greatest.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="greatest" href="#greatest">#</a> d3.<b>greatest</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the greatest element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns undefined. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.greatest(array, (a, b) => a.foo - b.foo); // {foo: 91}
-d3.greatest(array, (a, b) => b.foo - a.foo); // {foo: 42}
-d3.greatest(array, a => a.foo); // {foo: 91}
-```
-
-This function is similar to [max](#max), except it allows the use of a comparator rather than an accessor.
-
-<a name="greatestIndex" href="#greatestIndex">#</a> d3.<b>greatestIndex</b>(<i>iterable</i>[, <i>comparator</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/greatestIndex.js), [Examples](https://observablehq.com/@d3/d3-least)
-<br><a name="greatestIndex" href="#greatestIndex">#</a> d3.<b>greatestIndex</b>(<i>iterable</i>[, <i>accessor</i>])
-
-Returns the index of the greatest element of the specified *iterable* according to the specified *comparator* or *accessor*. If the given *iterable* contains no comparable elements (*i.e.*, the comparator returns NaN when comparing each element to itself), returns -1. If *comparator* is not specified, it defaults to [ascending](#ascending). For example:
-
-```js
-const array = [{foo: 42}, {foo: 91}];
-d3.greatestIndex(array, (a, b) => a.foo - b.foo); // 1
-d3.greatestIndex(array, (a, b) => b.foo - a.foo); // 0
-d3.greatestIndex(array, a => a.foo); // 1
-```
-
-This function is similar to [maxIndex](#maxIndex), except it allows the use of a comparator rather than an accessor.
-
-<a name="bisectLeft" href="#bisectLeft">#</a> d3.<b>bisectLeft</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisect.js)
-
-Returns the insertion point for *x* in *array* to maintain sorted order. The arguments *lo* and *hi* may be used to specify a subset of the array which should be considered; by default the entire array is used. If *x* is already present in *array*, the insertion point will be before (to the left of) any existing entries. The return value is suitable for use as the first argument to [splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) assuming that *array* is already sorted. The returned insertion point *i* partitions the *array* into two halves so that all *v* < *x* for *v* in *array*.slice(*lo*, *i*) for the left side and all *v* >= *x* for *v* in *array*.slice(*i*, *hi*) for the right side.
-
-<a name="bisect" href="#bisect">#</a> d3.<b>bisect</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisect.js), [Examples](https://observablehq.com/@d3/d3-bisect)
-<br><a name="bisectRight" href="#bisectRight">#</a> d3.<b>bisectRight</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]])
-
-Similar to [bisectLeft](#bisectLeft), but returns an insertion point which comes after (to the right of) any existing entries of *x* in *array*. The returned insertion point *i* partitions the *array* into two halves so that all *v* <= *x* for *v* in *array*.slice(*lo*, *i*) for the left side and all *v* > *x* for *v* in *array*.slice(*i*, *hi*) for the right side.
-
-<a name="bisectCenter" href="#bisectCenter">#</a> d3.<b>bisectCenter</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisect.js), [Examples](https://observablehq.com/@d3/multi-line-chart)
-
-Returns the index of the value closest to *x* in the given *array* of numbers. The arguments *lo* (inclusive) and *hi* (exclusive) may be used to specify a subset of the array which should be considered; by default the entire array is used.
-
-See [*bisector*.center](#bisector_center).
-
-<a name="bisector" href="#bisector">#</a> d3.<b>bisector</b>(<i>accessor</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/bisector.js)
-<br><a name="bisector" href="#bisector">#</a> d3.<b>bisector</b>(<i>comparator</i>)
-
-Returns a new bisector using the specified *accessor* or *comparator* function. This method can be used to bisect arrays of objects instead of being limited to simple arrays of primitives. For example, given the following array of objects:
-
-```js
-var data = [
-  {date: new Date(2011, 1, 1), value: 0.5},
-  {date: new Date(2011, 2, 1), value: 0.6},
-  {date: new Date(2011, 3, 1), value: 0.7},
-  {date: new Date(2011, 4, 1), value: 0.8}
-];
-```
-
-A suitable bisect function could be constructed as:
-
-```js
-var bisectDate = d3.bisector(function(d) { return d.date; }).right;
-```
-
-This is equivalent to specifying a comparator:
-
-```js
-var bisectDate = d3.bisector(function(d, x) { return d.date - x; }).right;
-```
-
-And then applied as *bisectDate*(*array*, *date*), returning an index. Note that the comparator is always passed the search value *x* as the second argument. Use a comparator rather than an accessor if you want values to be sorted in an order different than natural order, such as in descending rather than ascending order.
-
-<a name="bisector_left" href="#bisector_left">#</a> <i>bisector</i>.<b>left</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisector.js)
-
-Equivalent to [bisectLeft](#bisectLeft), but uses this bisector’s associated comparator.
-
-<a name="bisector_right" href="#bisector_right">#</a> <i>bisector</i>.<b>right</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisector.js)
-
-Equivalent to [bisectRight](#bisectRight), but uses this bisector’s associated comparator.
-
-<a name="bisector_center" href="#bisector_center">#</a> <i>bisector</i>.<b>center</b>(<i>array</i>, <i>x</i>[, <i>lo</i>[, <i>hi</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/bisector.js)
-
-Returns the index of the closest value to *x* in the given sorted *array*. This expects that the bisector’s associated accessor returns a quantitative value, or that the bisector’s associated comparator returns a signed distance; otherwise, this method is equivalent to *bisector*.left.
-
-<a name="quickselect" href="#quickselect">#</a> d3.<b>quickselect</b>(<i>array</i>, <i>k</i>, <i>left</i> = 0, <i>right</i> = <i>array</i>.length - 1, <i>compare</i> = ascending) · [Source](https://github.com/d3/d3-array/blob/master/src/quickselect.js), [Examples](https://observablehq.com/@d3/d3-quickselect)
-
-See [mourner/quickselect](https://github.com/mourner/quickselect/blob/master/README.md).
-
-<a name="ascending" href="#ascending">#</a> d3.<b>ascending</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/ascending.js), [Examples](https://observablehq.com/@d3/d3-ascending)
-
-Returns -1 if *a* is less than *b*, or 1 if *a* is greater than *b*, or 0. This is the comparator function for natural order, and can be used in conjunction with the built-in [*array*.sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) method to arrange elements in ascending order. It is implemented as:
-
-```js
-function ascending(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-```
-
-Note that if no comparator function is specified to the built-in sort method, the default order is lexicographic (alphabetical), not natural! This can lead to surprising behavior when sorting an array of numbers.
-
-<a name="descending" href="#descending">#</a> d3.<b>descending</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/descending.js), [Examples](https://observablehq.com/@d3/d3-ascending)
-
-Returns -1 if *a* is greater than *b*, or 1 if *a* is less than *b*, or 0. This is the comparator function for reverse natural order, and can be used in conjunction with the built-in array sort method to arrange elements in descending order.  It is implemented as:
-
-```js
-function descending(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-```
-
-Note that if no comparator function is specified to the built-in sort method, the default order is lexicographic (alphabetical), not natural! This can lead to surprising behavior when sorting an array of numbers.
-
-### Transformations
-
-Methods for transforming arrays and for generating new arrays.
-
-<a name="group" href="#group">#</a> d3.<b>group</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Groups the specified *iterable* of values into an [InternMap](#InternMap) from *key* to array of value. For example, given some data:
-
-```js
-data = [
-  {name: "jim",   amount: "34.0",   date: "11/12/2015"},
-  {name: "carl",  amount: "120.11", date: "11/12/2015"},
-  {name: "stacy", amount: "12.01",  date: "01/04/2016"},
-  {name: "stacy", amount: "34.05",  date: "01/04/2016"}
-]
-```
-
-To group the data by name:
-
-```js
-d3.group(data, d => d.name)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Array(1)
-  "carl" => Array(1)
-  "stacy" => Array(2)
-}
-```
-
-If more than one *key* is specified, a nested InternMap is returned. For example:
-
-```js
-d3.group(data, d => d.name, d => d.date)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Map(1) {
-    "11/12/2015" => Array(1)
-  }
-  "carl" => Map(1) {
-    "11/12/2015" => Array(1)
-  }
-  "stacy" => Map(1) {
-    "01/04/2016" => Array(2)
-  }
-}
-```
-
-To convert a Map to an Array, use [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from). For example:
-
-```js
-Array.from(d3.group(data, d => d.name))
-```
-
-This produces:
-
-```js
-[
-  ["jim", Array(1)],
-  ["carl", Array(1)],
-  ["stacy", Array(2)]
-]
-```
-
-You can also simultaneously convert the [*key*, *value*] to some other representation by passing a map function to Array.from:
-
-```js
-Array.from(d3.group(data, d => d.name), ([key, value]) => ({key, value}))
-```
-
-This produces:
-
-```js
-[
-  {key: "jim", value: Array(1)},
-  {key: "carl", value: Array(1)},
-  {key: "stacy", value: Array(2)}
-]
-```
-
-[*selection*.data](https://github.com/d3/d3-selection/blob/master/README.md#selection_data) accepts iterables directly, meaning that you can use a Map (or Set or other iterable) to perform a data join without first needing to convert to an array.
-
-<a name="groups" href="#groups">#</a> d3.<b>groups</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Equivalent to [group](#group), but returns nested arrays instead of nested maps.
-
-<a name="index" href="#index">#</a> d3.<b>index</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group)
-
-Equivalent to [group](#group) but returns a unique value per compound key instead of an array, throwing if the key is not unique.
-
-For example, given the data defined above,
-
-```js
-d3.index(data, d => d.amount)
-```
-
-returns
-
-```js
-Map(4) {
-  "34.0" => Object {name: "jim", amount: "34.0", date: "11/12/2015"}
-  "120.11" => Object {name: "carl", amount: "120.11", date: "11/12/2015"}
-  "12.01" => Object {name: "stacy", amount: "12.01", date: "01/04/2016"}
-  "34.05" => Object {name: "stacy", amount: "34.05", date: "01/04/2016"}
-}
-```
-
-On the other hand,
-
-```js
-d3.index(data, d => d.name)
-```
-
-throws an error because two objects share the same name.
-
-<a name="indexes" href="#indexes">#</a> d3.<b>indexes</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group)
-
-Equivalent to [index](#index), but returns nested arrays instead of nested maps.
-
-<a name="rollup" href="#rollup">#</a> d3.<b>rollup</b>(<i>iterable</i>, <i>reduce</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-[Groups](#group) and reduces the specified *iterable* of values into an InternMap from *key* to value. For example, given some data:
-
-```js
-data = [
-  {name: "jim",   amount: "34.0",   date: "11/12/2015"},
-  {name: "carl",  amount: "120.11", date: "11/12/2015"},
-  {name: "stacy", amount: "12.01",  date: "01/04/2016"},
-  {name: "stacy", amount: "34.05",  date: "01/04/2016"}
-]
-```
-
-To count the number of elements by name:
-
-```js
-d3.rollup(data, v => v.length, d => d.name)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => 1
-  "carl" => 1
-  "stacy" => 2
-}
-```
-
-If more than one *key* is specified, a nested Map is returned. For example:
-
-```js
-d3.rollup(data, v => v.length, d => d.name, d => d.date)
-```
-
-This produces:
-
-```js
-Map(3) {
-  "jim" => Map(1) {
-    "11/12/2015" => 1
-  }
-  "carl" => Map(1) {
-    "11/12/2015" => 1
-  }
-  "stacy" => Map(1) {
-    "01/04/2016" => 2
-  }
-}
-```
-
-To convert a Map to an Array, use [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from). See [d3.group](#group) for examples.
-
-<a name="rollups" href="#rollups">#</a> d3.<b>rollups</b>(<i>iterable</i>, <i>...keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/group.js), [Examples](https://observablehq.com/@d3/d3-group-d3-rollup)
-
-Equivalent to [rollup](#rollup), but returns nested arrays instead of nested maps.
-
-<a name="groupSort" href="#groupSort">#</a> d3.<b>groupSort</b>(<i>iterable</i>, <i>comparator</i>, <i>key</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/groupSort.js), [Examples](https://observablehq.com/@d3/d3-groupsort)
-<br><a name="groupSort" href="#groupSort">#</a> d3.<b>groupSort</b>(<i>iterable</i>, <i>accessor</i>, <i>key</i>)
-
-Groups the specified *iterable* of elements according to the specified *key* function, sorts the groups according to the specified *comparator*, and then returns an array of keys in sorted order. For example, if you had a table of barley yields for different varieties, sites, and years, to sort the barley varieties by ascending median yield:
-
-```js
-d3.groupSort(barley, g => d3.median(g, d => d.yield), d => d.variety)
-```
-
-For descending order, negate the group value:
-
-```js
-d3.groupSort(barley, g => -d3.median(g, d => d.yield), d => d.variety)
-```
-
-If a *comparator* is passed instead of an *accessor* (i.e., if the second argument is a function that takes two arguments), it will be asked to compare two groups *a* and *b* and should return a negative value if *a* should be before *b*, a positive value if *a* should be after *b*, or zero for a partial ordering.
-
-<a name="count" href="#count">#</a> d3.<b>count</b>(<i>iterable</i>[, <i>accessor</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/count.js), [Examples](https://observablehq.com/@d3/d3-count)
-
-Returns the number of valid number values (*i.e.*, not null, NaN, or undefined) in the specified *iterable*; accepts an accessor.
-
-For example:
-
-```js
-d3.count([{n: "Alice", age: NaN}, {n: "Bob", age: 18}, {n: "Other"}], d => d.age) // 1
-```
-<a name="cross" href="#cross">#</a> d3.<b>cross</b>(<i>...iterables</i>[, <i>reducer</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/cross.js), [Examples](https://observablehq.com/@d3/d3-cross)
-
-Returns the [Cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) of the specified *iterables*. For example, if two iterables *a* and *b* are specified, for each element *i* in the iterable *a* and each element *j* in the iterable *b*, in order, invokes the specified *reducer* function passing the element *i* and element *j*. If a *reducer* is not specified, it defaults to a function which creates a two-element array for each pair:
-
-```js
-function pair(a, b) {
-  return [a, b];
-}
-```
-
-For example:
-
-```js
-d3.cross([1, 2], ["x", "y"]); // returns [[1, "x"], [1, "y"], [2, "x"], [2, "y"]]
-d3.cross([1, 2], ["x", "y"], (a, b) => a + b); // returns ["1x", "1y", "2x", "2y"]
-```
-
-<a name="merge" href="#merge">#</a> d3.<b>merge</b>(<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/merge.js), [Examples](https://observablehq.com/@d3/d3-merge)
-
-Merges the specified iterable of *iterables* into a single array. This method is similar to the built-in array concat method; the only difference is that it is more convenient when you have an array of arrays.
-
-```js
-d3.merge([[1], [2, 3]]); // returns [1, 2, 3]
-```
-
-<a name="pairs" href="#pairs">#</a> d3.<b>pairs</b>(<i>iterable</i>[, <i>reducer</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/pairs.js), [Examples](https://observablehq.com/@d3/d3-pairs)
-
-For each adjacent pair of elements in the specified *iterable*, in order, invokes the specified *reducer* function passing the element *i* and element *i* - 1. If a *reducer* is not specified, it defaults to a function which creates a two-element array for each pair:
-
-```js
-function pair(a, b) {
-  return [a, b];
-}
-```
-
-For example:
-
-```js
-d3.pairs([1, 2, 3, 4]); // returns [[1, 2], [2, 3], [3, 4]]
-d3.pairs([1, 2, 3, 4], (a, b) => b - a); // returns [1, 1, 1];
-```
-
-If the specified iterable has fewer than two elements, returns the empty array.
-
-<a name="permute" href="#permute">#</a> d3.<b>permute</b>(<i>source</i>, <i>keys</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/permute.js), [Examples](https://observablehq.com/@d3/d3-permute)
-
-Returns a permutation of the specified *source* object (or array) using the specified iterable of *keys*. The returned array contains the corresponding property of the source object for each key in *keys*, in order. For example:
-
-```js
-permute(["a", "b", "c"], [1, 2, 0]); // returns ["b", "c", "a"]
-```
-
-It is acceptable to have more keys than source elements, and for keys to be duplicated or omitted.
-
-This method can also be used to extract the values from an object into an array with a stable order. Extracting keyed values in order can be useful for generating data arrays in nested selections. For example:
-
-```js
-let object = {yield: 27, variety: "Manchuria", year: 1931, site: "University Farm"};
-let fields = ["site", "variety", "yield"];
-
-d3.permute(object, fields); // returns ["University Farm", "Manchuria", 27]
-```
-
-<a name="shuffle" href="#shuffle">#</a> d3.<b>shuffle</b>(<i>array</i>[, <i>start</i>[, <i>stop</i>]]) · [Source](https://github.com/d3/d3-array/blob/master/src/shuffle.js), [Examples](https://observablehq.com/@d3/d3-shuffle)
-
-Randomizes the order of the specified *array* in-place using the [Fisher–Yates shuffle](https://bost.ocks.org/mike/shuffle/) and returns the *array*. If *start* is specified, it is the starting index (inclusive) of the *array* to shuffle; if *start* is not specified, it defaults to zero. If *stop* is specified, it is the ending index (exclusive) of the *array* to shuffle; if *stop* is not specified, it defaults to *array*.length. For example, to shuffle the first ten elements of the *array*: shuffle(*array*, 0, 10).
-
-<a name="shuffler" href="#shuffler">#</a> d3.<b>shuffler</b>(<i>random</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/shuffle.js)
-
-Returns a [shuffle function](#shuffle) given the specified random source. For example, using [d3.randomLcg](https://github.com/d3/d3-random/blob/master/README.md#randomLcg):
-
-```js
-const random = d3.randomLcg(0.9051667019185816);
-const shuffle = d3.shuffler(random);
-
-shuffle([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); // returns [7, 4, 5, 3, 9, 0, 6, 1, 2, 8]
-```
-
-<a name="ticks" href="#ticks">#</a> d3.<b>ticks</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Returns an array of approximately *count* + 1 uniformly-spaced, nicely-rounded values between *start* and *stop* (inclusive). Each value is a power of ten multiplied by 1, 2 or 5. See also [d3.tickIncrement](#tickIncrement), [d3.tickStep](#tickStep) and [*linear*.ticks](https://github.com/d3/d3-scale/blob/master/README.md#linear_ticks).
-
-Ticks are inclusive in the sense that they may include the specified *start* and *stop* values if (and only if) they are exact, nicely-rounded values consistent with the inferred [step](#tickStep). More formally, each returned tick *t* satisfies *start* ≤ *t* and *t* ≤ *stop*.
-
-<a name="tickIncrement" href="#tickIncrement">#</a> d3.<b>tickIncrement</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Like [d3.tickStep](#tickStep), except requires that *start* is always less than or equal to *stop*, and if the tick step for the given *start*, *stop* and *count* would be less than one, returns the negative inverse tick step instead. This method is always guaranteed to return an integer, and is used by [d3.ticks](#ticks) to guarantee that the returned tick values are represented as precisely as possible in IEEE 754 floating point.
-
-<a name="tickStep" href="#tickStep">#</a> d3.<b>tickStep</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/ticks.js), [Examples](https://observablehq.com/@d3/d3-ticks)
-
-Returns the difference between adjacent tick values if the same arguments were passed to [d3.ticks](#ticks): a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5. Note that due to the limited precision of IEEE 754 floating point, the returned value may not be exact decimals; use [d3-format](https://github.com/d3/d3-format) to format numbers for human consumption.
-
-<a name="nice" href="#nice">#</a> d3.<b>nice</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/nice.js)
-
-Returns a new interval [*niceStart*, *niceStop*] covering the given interval [*start*, *stop*] and where *niceStart* and *niceStop* are guaranteed to align with the corresponding [tick step](#tickStep). Like [d3.tickIncrement](#tickIncrement), this requires that *start* is less than or equal to *stop*.
-
-<a name="range" href="#range">#</a> d3.<b>range</b>([<i>start</i>, ]<i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/range.js), [Examples](https://observablehq.com/@d3/d3-range)
-
-Returns an array containing an arithmetic progression, similar to the Python built-in [range](http://docs.python.org/library/functions.html#range). This method is often used to iterate over a sequence of uniformly-spaced numeric values, such as the indexes of an array or the ticks of a linear scale. (See also [d3.ticks](#ticks) for nicely-rounded values.)
-
-If *step* is omitted, it defaults to 1. If *start* is omitted, it defaults to 0. The *stop* value is exclusive; it is not included in the result. If *step* is positive, the last element is the largest *start* + *i* \* *step* less than *stop*; if *step* is negative, the last element is the smallest *start* + *i* \* *step* greater than *stop*. If the returned array would contain an infinite number of values, an empty range is returned.
-
-The arguments are not required to be integers; however, the results are more predictable if they are. The values in the returned array are defined as *start* + *i* \* *step*, where *i* is an integer from zero to one minus the total number of elements in the returned array. For example:
-
-```js
-d3.range(0, 1, 0.2) // [0, 0.2, 0.4, 0.6000000000000001, 0.8]
-```
-
-This unexpected behavior is due to IEEE 754 double-precision floating point, which defines 0.2 * 3 = 0.6000000000000001. Use [d3-format](https://github.com/d3/d3-format) to format numbers for human consumption with appropriate rounding; see also [linear.tickFormat](https://github.com/d3/d3-scale/blob/master/README.md#linear_tickFormat) in [d3-scale](https://github.com/d3/d3-scale).
-
-Likewise, if the returned array should have a specific length, consider using [array.map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) on an integer range. For example:
-
-```js
-d3.range(0, 1, 1 / 49); // BAD: returns 50 elements!
-d3.range(49).map(function(d) { return d / 49; }); // GOOD: returns 49 elements.
-```
-
-<a name="transpose" href="#transpose">#</a> d3.<b>transpose</b>(<i>matrix</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/transpose.js), [Examples](https://observablehq.com/@d3/d3-transpose)
-
-Uses the [zip](#zip) operator as a two-dimensional [matrix transpose](http://en.wikipedia.org/wiki/Transpose).
-
-<a name="zip" href="#zip">#</a> d3.<b>zip</b>(<i>arrays…</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/zip.js), [Examples](https://observablehq.com/@d3/d3-transpose)
-
-Returns an array of arrays, where the *i*th array contains the *i*th element from each of the argument *arrays*. The returned array is truncated in length to the shortest array in *arrays*. If *arrays* contains only a single array, the returned array contains one-element arrays. With no arguments, the returned array is empty.
-
-```js
-d3.zip([1, 2], [3, 4]); // returns [[1, 3], [2, 4]]
-```
-
-### Iterables
-
-These are equivalent to built-in array methods, but work with any iterable including Map, Set, and Generator.
-
-<a name="every" href="#every">#</a> d3.<b>every</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/every.js)
-
-Returns true if the given *test* function returns true for every value in the given *iterable*. This method returns as soon as *test* returns a non-truthy value or all values are iterated over. Equivalent to [*array*.every](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every):
-
-```js
-d3.every(new Set([1, 3, 5, 7]), x => x & 1) // true
-```
-
-<a name="some" href="#some">#</a> d3.<b>some</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/some.js)
-
-Returns true if the given *test* function returns true for any value in the given *iterable*. This method returns as soon as *test* returns a truthy value or all values are iterated over. Equivalent to [*array*.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some):
-
-```js
-d3.some(new Set([0, 2, 3, 4]), x => x & 1) // true
-```
-
-<a name="filter" href="#filter">#</a> d3.<b>filter</b>(<i>iterable</i>, <i>test</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/filter.js)
-
-Returns a new array containing the values from *iterable*, in order, for which the given *test* function returns true. Equivalent to [*array*.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter):
-
-```js
-d3.filter(new Set([0, 2, 3, 4]), x => x & 1) // [3]
-```
-
-<a name="map" href="#map">#</a> d3.<b>map</b>(<i>iterable</i>, <i>mapper</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/map.js)
-
-Returns a new array containing the mapped values from *iterable*, in order, as defined by given *mapper* function. Equivalent to [*array*.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) and [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from):
-
-```js
-d3.map(new Set([0, 2, 3, 4]), x => x & 1) // [0, 0, 1, 0]
-```
-
-<a name="reduce" href="#reduce">#</a> d3.<b>reduce</b>(<i>iterable</i>, <i>reducer</i>[, <i>initialValue</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/reduce.js)
-
-Returns the reduced value defined by given *reducer* function, which is repeatedly invoked for each value in *iterable*, being passed the current reduced value and the next value. Equivalent to [*array*.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce):
-
-```js
-d3.reduce(new Set([0, 2, 3, 4]), (p, v) => p + v, 0) // 9
-```
-
-<a name="reverse" href="#reverse">#</a> d3.<b>reverse</b>(<i>iterable</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/reverse.js)
-
-Returns an array containing the values in the given *iterable* in reverse order. Equivalent to [*array*.reverse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse), except that it does not mutate the given *iterable*:
-
-```js
-d3.reverse(new Set([0, 2, 3, 1])) // [1, 3, 2, 0]
-```
-
-<a name="sort" href="#sort">#</a> d3.<b>sort</b>(<i>iterable</i>, <i>comparator</i> = d3.ascending) · [Source](https://github.com/d3/d3-array/blob/master/src/sort.js)
-<br><a name="sort" href="#sort">#</a> d3.<b>sort</b>(<i>iterable</i>, ...<i>accessors</i>)
-
-Returns an array containing the values in the given *iterable* in the sorted order defined by the given *comparator* or *accessor* function. If *comparator* is not specified, it defaults to [d3.ascending](#ascending). Equivalent to [*array*.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort), except that it does not mutate the given *iterable*, and the comparator defaults to natural order instead of lexicographic order:
-
-```js
-d3.sort(new Set([0, 2, 3, 1])) // [0, 1, 2, 3]
-```
-
-If an *accessor* (a function that takes a single argument) is specified,
-
-```js
-d3.sort(data, d => d.value)
-```
-
-it is equivalent to a *comparator* using [natural order](#ascending):
-
-```js
-d3.sort(data, (a, b) => d3.ascending(a.value, b.value))
-```
-
-The *accessor* is only invoked once per element, and thus the returned sorted order is consistent even if the accessor is nondeterministic.
-
-Multiple accessors may be specified to break ties:
-
-```js
-d3.sort(points, ({x}) => x, ({y}) => y)
-```
-
-This is equivalent to:
-
-```js
-d3.sort(data, (a, b) => d3.ascending(a.x, b.x) || d3.ascending(a.y, b.y))
-```
-
-### Sets
-
-This methods implement basic set operations for any iterable.
-
-<a name="difference" href="#difference">#</a> d3.<b>difference</b>(<i>iterable</i>, ...<i>others</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/difference.js)
-
-Returns a new Set containing every value in *iterable* that is not in any of the *others* iterables.
-
-```js
-d3.difference([0, 1, 2, 0], [1]) // Set {0, 2}
-```
-
-<a name="union" href="#union">#</a> d3.<b>union</b>(...<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/union.js)
-
-Returns a new Set containing every (distinct) value that appears in any of the given *iterables*. The order of values in the returned Set is based on their first occurrence in the given *iterables*.
-
-```js
-d3.union([0, 2, 1, 0], [1, 3]) // Set {0, 2, 1, 3}
-```
-
-<a name="intersection" href="#intersection">#</a> d3.<b>intersection</b>(...<i>iterables</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/intersection.js)
-
-Returns a new Set containing every (distinct) value that appears in all of the given *iterables*. The order of values in the returned Set is based on their first occurrence in the given *iterables*.
-
-```js
-d3.intersection([0, 2, 1, 0], [1, 3]) // Set {1}
-```
-
-<a name="superset" href="#superset">#</a> d3.<b>superset</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/superset.js)
-
-Returns true if *a* is a superset of *b*: if every value in the given iterable *b* is also in the given iterable *a*.
-
-```js
-d3.superset([0, 2, 1, 3, 0], [1, 3]) // true
-```
-
-<a name="subset" href="#subset">#</a> d3.<b>subset</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/subset.js)
-
-Returns true if *a* is a subset of *b*: if every value in the given iterable *a* is also in the given iterable *b*.
-
-```js
-d3.subset([1, 3], [0, 2, 1, 3, 0]) // true
-```
-
-<a name="disjoint" href="#disjoint">#</a> d3.<b>disjoint</b>(<i>a</i>, <i>b</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/disjoint.js)
-
-Returns true if *a* and *b* are disjoint: if *a* and *b* contain no shared value.
-
-```js
-d3.disjoint([1, 3], [2, 4]) // true
-```
-
-### Bins
-
-[<img src="https://raw.githubusercontent.com/d3/d3-array/master/img/histogram.png" width="480" height="250" alt="Histogram">](http://bl.ocks.org/mbostock/3048450)
-
-Binning groups discrete samples into a smaller number of consecutive, non-overlapping intervals. They are often used to visualize the distribution of numerical data as histograms.
-
-<a name="bin" href="#bin">#</a> d3.<b>bin</b>() · [Source](https://github.com/d3/d3-array/blob/master/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Constructs a new bin generator with the default settings.
-
-<a name="_bin" href="#_bin">#</a> <i>bin</i>(<i>data</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Bins the given iterable of *data* samples. Returns an array of bins, where each bin is an array containing the associated elements from the input *data*. Thus, the `length` of the bin is the number of elements in that bin. Each bin has two additional attributes:
-
-* `x0` - the lower bound of the bin (inclusive).
-* `x1` - the upper bound of the bin (exclusive, except for the last bin).
-
-<a name="bin_value" href="#bin_value">#</a> <i>bin</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-If *value* is specified, sets the value accessor to the specified function or constant and returns this bin generator. If *value* is not specified, returns the current value accessor, which defaults to the identity function.
-
-When bins are [generated](#_bin), the value accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default value accessor assumes that the input data are orderable (comparable), such as numbers or dates. If your data are not, then you should specify an accessor that returns the corresponding orderable value for a given datum.
-
-This is similar to mapping your data to values before invoking the bin generator, but has the benefit that the input data remains associated with the returned bins, thereby making it easier to access other fields of the data.
-
-<a name="bin_domain" href="#bin_domain">#</a> <i>bin</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-If *domain* is specified, sets the domain accessor to the specified function or array and returns this bin generator. If *domain* is not specified, returns the current domain accessor, which defaults to [extent](#extent). The bin domain is defined as an array [*min*, *max*], where *min* is the minimum observable value and *max* is the maximum observable value; both values are inclusive. Any value outside of this domain will be ignored when the bins are [generated](#_bin).
-
-For example, if you are using the bin generator in conjunction with a [linear scale](https://github.com/d3/d3-scale/blob/master/README.md#linear-scales) `x`, you might say:
-
-```js
-var bin = d3.bin()
-    .domain(x.domain())
-    .thresholds(x.ticks(20));
-```
-
-You can then compute the bins from an array of numbers like so:
-
-```js
-var bins = bin(numbers);
-```
-
-If the default [extent](#extent) domain is used and the [thresholds](#bin_thresholds) are specified as a count (rather than explicit values), then the computed domain will be [niced](#nice) such that all bins are uniform width.
-
-Note that the domain accessor is invoked on the materialized array of [values](#bin_value), not on the input data array.
-
-<a name="bin_thresholds" href="#bin_thresholds">#</a> <i>bin</i>.<b>thresholds</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-array/blob/master/src/bin.js), [Examples](https://observablehq.com/@d3/d3-bin)
-<br><a name="bin_thresholds" href="#bin_thresholds">#</a> <i>bin</i>.<b>thresholds</b>([<i>thresholds</i>])
-
-If *thresholds* is specified, sets the [threshold generator](#bin-thresholds) to the specified function or array and returns this bin generator. If *thresholds* is not specified, returns the current threshold generator, which by default implements [Sturges’ formula](#thresholdSturges). (Thus by default, the values to be binned must be numbers!) Thresholds are defined as an array of values [*x0*, *x1*, …]. Any value less than *x0* will be placed in the first bin; any value greater than or equal to *x0* but less than *x1* will be placed in the second bin; and so on. Thus, the [generated bins](#_bin) will have *thresholds*.length + 1 bins. See [bin thresholds](#bin-thresholds) for more information.
-
-Any threshold values outside the [domain](#bin_domain) are ignored. The first *bin*.x0 is always equal to the minimum domain value, and the last *bin*.x1 is always equal to the maximum domain value.
-
-If a *count* is specified instead of an array of *thresholds*, then the [domain](#bin_domain) will be uniformly divided into approximately *count* bins; see [ticks](#ticks).
-
-#### Bin Thresholds
-
-These functions are typically not used directly; instead, pass them to [*bin*.thresholds](#bin_thresholds).
-
-<a name="thresholdFreedmanDiaconis" href="#thresholdFreedmanDiaconis">#</a> d3.<b>thresholdFreedmanDiaconis</b>(<i>values</i>, <i>min</i>, <i>max</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/threshold/freedmanDiaconis.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to the [Freedman–Diaconis rule](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-<a name="thresholdScott" href="#thresholdScott">#</a> d3.<b>thresholdScott</b>(<i>values</i>, <i>min</i>, <i>max</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/threshold/scott.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to [Scott’s normal reference rule](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-<a name="thresholdSturges" href="#thresholdSturges">#</a> d3.<b>thresholdSturges</b>(<i>values</i>) · [Source](https://github.com/d3/d3-array/blob/master/src/threshold/sturges.js), [Examples](https://observablehq.com/@d3/d3-bin)
-
-Returns the number of bins according to [Sturges’ formula](https://en.wikipedia.org/wiki/Histogram#Mathematical_definition); the input *values* must be numbers.
-
-You may also implement your own threshold generator taking three arguments: the array of input [*values*](#bin_value) derived from the data, and the [observable domain](#bin_domain) represented as *min* and *max*. The generator may then return either the array of numeric thresholds or the *count* of bins; in the latter case the domain is divided uniformly into approximately *count* bins; see [ticks](#ticks).
-
-For instance, when binning date values, you might want to use the ticks from a time scale ([Example](https://observablehq.com/@d3/d3-bin-time-thresholds)).
-
-### Interning
-
-<a name="InternMap" href="#InternMap">#</a> new d3.<b>InternMap</b>([<i>iterable</i>][, <i>key</i>]) · [Source](https://github.com/mbostock/internmap/blob/main/src/index.js), [Examples](https://observablehq.com/d/d4c5f6ad343866b9)
-<br><a name="InternSet" href="#InternSet">#</a> new d3.<b>InternSet</b>([<i>iterable</i>][, <i>key</i>]) · [Source](https://github.com/mbostock/internmap/blob/main/src/index.js), [Examples](https://observablehq.com/d/d4c5f6ad343866b9)
-
-The [InternMap and InternSet](https://github.com/mbostock/internmap) classes extend the native JavaScript Map and Set classes, respectively, allowing Dates and other non-primitive keys by bypassing the [SameValueZero algorithm](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness) when determining key equality. d3.group, d3.rollup and d3.index use an InternMap rather than a native Map. These two classes are exported for convenience.
Index: de_modules/d3-sankey/node_modules/d3-array/dist/d3-array.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/dist/d3-array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1182 +1,0 @@
-// https://d3js.org/d3-array/ v2.12.1 Copyright 2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-function ascending(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-function bisector(f) {
-  let delta = f;
-  let compare = f;
-
-  if (f.length === 1) {
-    delta = (d, x) => f(d) - x;
-    compare = ascendingComparator(f);
-  }
-
-  function left(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    while (lo < hi) {
-      const mid = (lo + hi) >>> 1;
-      if (compare(a[mid], x) < 0) lo = mid + 1;
-      else hi = mid;
-    }
-    return lo;
-  }
-
-  function right(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    while (lo < hi) {
-      const mid = (lo + hi) >>> 1;
-      if (compare(a[mid], x) > 0) hi = mid;
-      else lo = mid + 1;
-    }
-    return lo;
-  }
-
-  function center(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-
-  return {left, center, right};
-}
-
-function ascendingComparator(f) {
-  return (d, x) => ascending(f(d), x);
-}
-
-function number(x) {
-  return x === null ? NaN : +x;
-}
-
-function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
-
-const ascendingBisect = bisector(ascending);
-const bisectRight = ascendingBisect.right;
-const bisectLeft = ascendingBisect.left;
-const bisectCenter = bisector(number).center;
-
-function count(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
-
-function length$1(array) {
-  return array.length | 0;
-}
-
-function empty(length) {
-  return !(length > 0);
-}
-
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-
-function cross(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length$1);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
-
-function cumsum(values, valueof) {
-  var sum = 0, index = 0;
-  return Float64Array.from(values, valueof === undefined
-    ? v => (sum += +v || 0)
-    : v => (sum += +valueof(v, index++, values) || 0));
-}
-
-function descending(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-
-function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
-
-function deviation(values, valueof) {
-  const v = variance(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
-
-function extent(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
-
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n, x, y, lo, hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-
-function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-
-function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined
-      ? v => adder.add(+v || 0)
-      : v => adder.add(+valueof(v, ++index, values) || 0)
-  );
-}
-
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(value);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-function identity(x) {
-  return x;
-}
-
-function group(values, ...keys) {
-  return nest(values, identity, identity, keys);
-}
-
-function groups(values, ...keys) {
-  return nest(values, Array.from, identity, keys);
-}
-
-function rollup(values, reduce, ...keys) {
-  return nest(values, identity, reduce, keys);
-}
-
-function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-
-function index(values, ...keys) {
-  return nest(values, identity, unique, keys);
-}
-
-function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-
-function nest(values, map, reduce, keys) {
-  return (function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);
-      else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  })(values, 0);
-}
-
-function permute(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
-
-function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f = ascending] = F;
-  if (f.length === 1 || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascending(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascending(f[i], f[j]));
-    }
-    return permute(values, index);
-  }
-  return values.sort(f);
-}
-
-function groupSort(values, reduce, key) {
-  return (reduce.length === 1
-    ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))
-    : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))
-    .map(([key]) => key);
-}
-
-var array = Array.prototype;
-
-var slice = array.slice;
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-var e10 = Math.sqrt(50),
-    e5 = Math.sqrt(10),
-    e2 = Math.sqrt(2);
-
-function ticks(start, stop, count) {
-  var reverse,
-      i = -1,
-      n,
-      ticks,
-      step;
-
-  stop = +stop, start = +start, count = +count;
-  if (start === stop && count > 0) return [start];
-  if (reverse = stop < start) n = start, start = stop, stop = n;
-  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
-
-  if (step > 0) {
-    let r0 = Math.round(start / step), r1 = Math.round(stop / step);
-    if (r0 * step < start) ++r0;
-    if (r1 * step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) * step;
-  } else {
-    step = -step;
-    let r0 = Math.round(start * step), r1 = Math.round(stop * step);
-    if (r0 / step < start) ++r0;
-    if (r1 / step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) / step;
-  }
-
-  if (reverse) ticks.reverse();
-
-  return ticks;
-}
-
-function tickIncrement(start, stop, count) {
-  var step = (stop - start) / Math.max(0, count),
-      power = Math.floor(Math.log(step) / Math.LN10),
-      error = step / Math.pow(10, power);
-  return power >= 0
-      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
-      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
-}
-
-function tickStep(start, stop, count) {
-  var step0 = Math.abs(stop - start) / Math.max(0, count),
-      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
-      error = step0 / step1;
-  if (error >= e10) step1 *= 10;
-  else if (error >= e5) step1 *= 5;
-  else if (error >= e2) step1 *= 2;
-  return stop < start ? -step1 : step1;
-}
-
-function nice(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = tickIncrement(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
-
-function sturges(values) {
-  return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;
-}
-
-function bin() {
-  var value = identity,
-      domain = extent,
-      threshold = sturges;
-
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-
-    var i,
-        n = data.length,
-        x,
-        values = new Array(n);
-
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-
-    var xz = domain(values),
-        x0 = xz[0],
-        x1 = xz[1],
-        tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1, tn = +tz;
-      if (domain === extent) [x0, x1] = nice(x0, x1, tn);
-      tz = ticks(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === extent) {
-          const step = tickIncrement(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    var m = tz.length;
-    while (tz[0] <= x0) tz.shift(), --m;
-    while (tz[m - 1] > x1) tz.pop(), --m;
-
-    var bins = new Array(m + 1),
-        bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    for (i = 0; i < n; ++i) {
-      x = values[i];
-      if (x0 <= x && x <= x1) {
-        bins[bisectRight(tz, x, 0, m)].push(data[i]);
-      }
-    }
-
-    return bins;
-  }
-
-  histogram.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
-  };
-
-  histogram.domain = function(_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
-  };
-
-  histogram.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
-  };
-
-  return histogram;
-}
-
-function max(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
-
-function min(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
-
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-
-    const t = array[k];
-    let i = left;
-    let j = right;
-
-    swap(array, left, k);
-    if (compare(array[right], t) > 0) swap(array, left, right);
-
-    while (i < j) {
-      swap(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-
-    if (compare(array[left], t) === 0) swap(array, left, j);
-    else ++j, swap(array, j, right);
-
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-  return array;
-}
-
-function swap(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
-
-function quantile(values, p, valueof) {
-  values = Float64Array.from(numbers(values, valueof));
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return min(values);
-  if (p >= 1) return max(values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),
-      value1 = min(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function quantileSorted(values, p, valueof = number) {
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = +valueof(values[i0], i0, values),
-      value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function freedmanDiaconis(values, min, max) {
-  return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));
-}
-
-function scott(values, min, max) {
-  return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));
-}
-
-function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
-
-function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
-
-function median(values, valueof) {
-  return quantile(values, 0.5, valueof);
-}
-
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-
-function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
-
-function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
-
-function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-
-function pair(a, b) {
-  return [a, b];
-}
-
-function range(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-
-  var i = -1,
-      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-      range = new Array(n);
-
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-
-  return range;
-}
-
-function least(values, compare = ascending) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, minValue) < 0
-          : ascending(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, min) < 0
-          : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
-
-function leastIndex(values, compare = ascending) {
-  if (compare.length === 1) return minIndex(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0
-        ? compare(value, value) === 0
-        : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
-
-function greatest(values, compare = ascending) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, maxValue) > 0
-          : ascending(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, max) > 0
-          : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
-
-function greatestIndex(values, compare = ascending) {
-  if (compare.length === 1) return maxIndex(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0
-        ? compare(value, value) === 0
-        : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
-
-function scan(values, compare) {
-  const index = leastIndex(values, compare);
-  return index < 0 ? undefined : index;
-}
-
-var shuffle = shuffler(Math.random);
-
-function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0, t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
-
-function sum(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
-
-function transpose(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-
-function length(d) {
-  return d.length;
-}
-
-function zip() {
-  return transpose(arguments);
-}
-
-function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-function filter(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
-
-function map(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
-
-function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done, next, index = -1;
-  if (arguments.length < 3) {
-    ({done, value} = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({done, value: next} = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
-
-function reverse(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
-
-function difference(values, ...others) {
-  values = new Set(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
-
-function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](), set = new Set();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
-
-function set(values) {
-  return values instanceof Set ? values : new Set(values);
-}
-
-function intersection(values, ...others) {
-  values = new Set(values);
-  others = others.map(set);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
-
-function superset(values, other) {
-  const iterator = values[Symbol.iterator](), set = new Set();
-  for (const o of other) {
-    if (set.has(o)) continue;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) return false;
-      set.add(value);
-      if (Object.is(o, value)) break;
-    }
-  }
-  return true;
-}
-
-function subset(values, other) {
-  return superset(other, values);
-}
-
-function union(...others) {
-  const set = new Set();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
-
-exports.Adder = Adder;
-exports.InternMap = InternMap;
-exports.InternSet = InternSet;
-exports.ascending = ascending;
-exports.bin = bin;
-exports.bisect = bisectRight;
-exports.bisectCenter = bisectCenter;
-exports.bisectLeft = bisectLeft;
-exports.bisectRight = bisectRight;
-exports.bisector = bisector;
-exports.count = count;
-exports.cross = cross;
-exports.cumsum = cumsum;
-exports.descending = descending;
-exports.deviation = deviation;
-exports.difference = difference;
-exports.disjoint = disjoint;
-exports.every = every;
-exports.extent = extent;
-exports.fcumsum = fcumsum;
-exports.filter = filter;
-exports.fsum = fsum;
-exports.greatest = greatest;
-exports.greatestIndex = greatestIndex;
-exports.group = group;
-exports.groupSort = groupSort;
-exports.groups = groups;
-exports.histogram = bin;
-exports.index = index;
-exports.indexes = indexes;
-exports.intersection = intersection;
-exports.least = least;
-exports.leastIndex = leastIndex;
-exports.map = map;
-exports.max = max;
-exports.maxIndex = maxIndex;
-exports.mean = mean;
-exports.median = median;
-exports.merge = merge;
-exports.min = min;
-exports.minIndex = minIndex;
-exports.nice = nice;
-exports.pairs = pairs;
-exports.permute = permute;
-exports.quantile = quantile;
-exports.quantileSorted = quantileSorted;
-exports.quickselect = quickselect;
-exports.range = range;
-exports.reduce = reduce;
-exports.reverse = reverse;
-exports.rollup = rollup;
-exports.rollups = rollups;
-exports.scan = scan;
-exports.shuffle = shuffle;
-exports.shuffler = shuffler;
-exports.some = some;
-exports.sort = sort;
-exports.subset = subset;
-exports.sum = sum;
-exports.superset = superset;
-exports.thresholdFreedmanDiaconis = freedmanDiaconis;
-exports.thresholdScott = scott;
-exports.thresholdSturges = sturges;
-exports.tickIncrement = tickIncrement;
-exports.tickStep = tickStep;
-exports.ticks = ticks;
-exports.transpose = transpose;
-exports.union = union;
-exports.variance = variance;
-exports.zip = zip;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-sankey/node_modules/d3-array/dist/d3-array.min.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/dist/d3-array.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-array/ v2.12.1 Copyright 2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function r(t){let r=t,e=t;function o(t,n,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r<o;){const f=r+o>>>1;e(t[f],n)<0?r=f+1:o=f}return r}return 1===t.length&&(r=(n,r)=>t(n)-r,e=function(t){return(r,e)=>n(t(r),e)}(t)),{left:o,center:function(t,n,e,f){null==e&&(e=0),null==f&&(f=t.length);const i=o(t,n,e,f-1);return i>e&&r(t[i-1],n)>-r(t[i],n)?i-1:i},right:function(t,n,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r<o;){const f=r+o>>>1;e(t[f],n)>0?o=f:r=f+1}return r}}}function e(t){return null===t?NaN:+t}const o=r(n),f=o.right,i=o.left,u=r(e).center;function l(t,n){let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++r;else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(o=+o)>=o&&++r}return r}function s(t){return 0|t.length}function c(t){return!(t>0)}function a(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function h(t,n){let r,e=0,o=0,f=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(r=n-o,o+=r/++e,f+=r*(n-o));else{let i=-1;for(let u of t)null!=(u=n(u,++i,t))&&(u=+u)>=u&&(r=u-o,o+=r/++e,f+=r*(u-o))}if(e>1)return f/(e-1)}function d(t,n){const r=h(t,n);return r?Math.sqrt(r):r}function p(t,n){let r,e;if(void 0===n)for(const n of t)null!=n&&(void 0===r?n>=n&&(r=e=n):(r>n&&(r=n),e<n&&(e=n)));else{let o=-1;for(let f of t)null!=(f=n(f,++o,t))&&(void 0===r?f>=f&&(r=e=f):(r>f&&(r=f),e<f&&(e=f)))}return[r,e]}class y{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let r=0;for(let e=0;e<this._n&&e<32;e++){const o=n[e],f=t+o,i=Math.abs(t)<Math.abs(o)?t-(f-o):o-(f-t);i&&(n[r++]=i),t=f}return n[r]=t,this._n=r+1,this}valueOf(){const t=this._partials;let n,r,e,o=this._n,f=0;if(o>0){for(f=t[--o];o>0&&(n=f,r=t[--o],f=n+r,e=r-(f-n),!e););o>0&&(e<0&&t[o-1]<0||e>0&&t[o-1]>0)&&(r=2*e,n=f+r,r==n-f&&(f=n))}return f}}class v extends Map{constructor(t,n=b){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,r]of t)this.set(n,r)}get(t){return super.get(g(this,t))}has(t){return super.has(g(this,t))}set(t,n){return super.set(M(this,t),n)}delete(t){return super.delete(w(this,t))}}class m extends Set{constructor(t,n=b){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(g(this,t))}add(t){return super.add(M(this,t))}delete(t){return super.delete(w(this,t))}}function g({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):r}function M({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):(t.set(e,r),r)}function w({_intern:t,_key:n},r){const e=n(r);return t.has(e)&&(r=t.get(r),t.delete(e)),r}function b(t){return null!==t&&"object"==typeof t?t.valueOf():t}function A(t){return t}function x(t,...n){return k(t,A,A,n)}function S(t,n,...r){return k(t,A,n,r)}function _(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function k(t,n,r,e){return function t(o,f){if(f>=e.length)return r(o);const i=new v,u=e[f++];let l=-1;for(const t of o){const n=u(t,++l,o),r=i.get(n);r?r.push(t):i.set(n,[t])}for(const[n,r]of i)i.set(n,t(r,f));return n(i)}(t,0)}function T(t,n){return Array.from(n,(n=>t[n]))}function j(t,...r){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e=n]=r;if(1===e.length||r.length>1){const o=Uint32Array.from(t,((t,n)=>n));return r.length>1?(r=r.map((n=>t.map(n))),o.sort(((t,e)=>{for(const o of r){const r=n(o[t],o[e]);if(r)return r}}))):(e=t.map(e),o.sort(((t,r)=>n(e[t],e[r])))),T(t,o)}return t.sort(e)}var E=Array.prototype.slice;function N(t){return function(){return t}}var q=Math.sqrt(50),F=Math.sqrt(10),I=Math.sqrt(2);function O(t,n,r){var e,o,f,i,u=-1;if(r=+r,(t=+t)===(n=+n)&&r>0)return[t];if((e=n<t)&&(o=t,t=n,n=o),0===(i=L(t,n,r))||!isFinite(i))return[];if(i>0){let r=Math.round(t/i),e=Math.round(n/i);for(r*i<t&&++r,e*i>n&&--e,f=new Array(o=e-r+1);++u<o;)f[u]=(r+u)*i}else{i=-i;let r=Math.round(t*i),e=Math.round(n*i);for(r/i<t&&++r,e/i>n&&--e,f=new Array(o=e-r+1);++u<o;)f[u]=(r+u)/i}return e&&f.reverse(),f}function L(t,n,r){var e=(n-t)/Math.max(0,r),o=Math.floor(Math.log(e)/Math.LN10),f=e/Math.pow(10,o);return o>=0?(f>=q?10:f>=F?5:f>=I?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(f>=q?10:f>=F?5:f>=I?2:1)}function P(t,n,r){let e;for(;;){const o=L(t,n,r);if(o===e||0===o||!isFinite(o))return[t,n];o>0?(t=Math.floor(t/o)*o,n=Math.ceil(n/o)*o):o<0&&(t=Math.ceil(t*o)/o,n=Math.floor(n*o)/o),e=o}}function z(t){return Math.ceil(Math.log(l(t))/Math.LN2)+1}function C(){var t=A,n=p,r=z;function e(e){Array.isArray(e)||(e=Array.from(e));var o,i,u=e.length,l=new Array(u);for(o=0;o<u;++o)l[o]=t(e[o],o,e);var s=n(l),c=s[0],a=s[1],h=r(l,c,a);if(!Array.isArray(h)){const t=a,r=+h;if(n===p&&([c,a]=P(c,a,r)),(h=O(c,a,r))[h.length-1]>=a)if(t>=a&&n===p){const t=L(c,a,r);isFinite(t)&&(t>0?a=(Math.floor(a/t)+1)*t:t<0&&(a=(Math.ceil(a*-t)+1)/-t))}else h.pop()}for(var d=h.length;h[0]<=c;)h.shift(),--d;for(;h[d-1]>a;)h.pop(),--d;var y,v=new Array(d+1);for(o=0;o<=d;++o)(y=v[o]=[]).x0=o>0?h[o-1]:c,y.x1=o<d?h[o]:a;for(o=0;o<u;++o)c<=(i=l[o])&&i<=a&&v[f(h,i,0,d)].push(e[o]);return v}return e.value=function(n){return arguments.length?(t="function"==typeof n?n:N(n),e):t},e.domain=function(t){return arguments.length?(n="function"==typeof t?t:N([t[0],t[1]]),e):n},e.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:Array.isArray(t)?N(E.call(t)):N(t),e):r},e}function D(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(r<o||void 0===r&&o>=o)&&(r=o)}return r}function R(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let o of t)null!=(o=n(o,++e,t))&&(r>o||void 0===r&&o>=o)&&(r=o)}return r}function U(t,r,e=0,o=t.length-1,f=n){for(;o>e;){if(o-e>600){const n=o-e+1,i=r-e+1,u=Math.log(n),l=.5*Math.exp(2*u/3),s=.5*Math.sqrt(u*l*(n-l)/n)*(i-n/2<0?-1:1);U(t,r,Math.max(e,Math.floor(r-i*l/n+s)),Math.min(o,Math.floor(r+(n-i)*l/n+s)),f)}const n=t[r];let i=e,u=o;for(B(t,e,r),f(t[o],n)>0&&B(t,e,o);i<u;){for(B(t,i,u),++i,--u;f(t[i],n)<0;)++i;for(;f(t[u],n)>0;)--u}0===f(t[e],n)?B(t,e,u):(++u,B(t,u,o)),u<=r&&(e=u+1),r<=u&&(o=u-1)}return t}function B(t,n,r){const e=t[n];t[n]=t[r],t[r]=e}function G(t,n,r){if(e=(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let r=-1;for(let e of t)null!=(e=n(e,++r,t))&&(e=+e)>=e&&(yield e)}}(t,r))).length){if((n=+n)<=0||e<2)return R(t);if(n>=1)return D(t);var e,o=(e-1)*n,f=Math.floor(o),i=D(U(t,f).subarray(0,f+1));return i+(R(t.subarray(f+1))-i)*(o-f)}}function H(t,n){let r,e=-1,o=-1;if(void 0===n)for(const n of t)++o,null!=n&&(r<n||void 0===r&&n>=n)&&(r=n,e=o);else for(let f of t)null!=(f=n(f,++o,t))&&(r<f||void 0===r&&f>=f)&&(r=f,e=o);return e}function J(t,n){let r,e=-1,o=-1;if(void 0===n)for(const n of t)++o,null!=n&&(r>n||void 0===r&&n>=n)&&(r=n,e=o);else for(let f of t)null!=(f=n(f,++o,t))&&(r>f||void 0===r&&f>=f)&&(r=f,e=o);return e}function K(t,n){return[t,n]}function Q(t,r=n){if(1===r.length)return J(t,r);let e,o=-1,f=-1;for(const n of t)++f,(o<0?0===r(n,n):r(n,e)<0)&&(e=n,o=f);return o}var V=W(Math.random);function W(t){return function(n,r=0,e=n.length){let o=e-(r=+r);for(;o;){const e=t()*o--|0,f=n[o+r];n[o+r]=n[e+r],n[e+r]=f}return n}}function X(t){if(!(o=t.length))return[];for(var n=-1,r=R(t,Y),e=new Array(r);++n<r;)for(var o,f=-1,i=e[n]=new Array(o);++f<o;)i[f]=t[f][n];return e}function Y(t){return t.length}function Z(t){return t instanceof Set?t:new Set(t)}function $(t,n){const r=t[Symbol.iterator](),e=new Set;for(const t of n){if(e.has(t))continue;let n,o;for(;({value:n,done:o}=r.next());){if(o)return!1;if(e.add(n),Object.is(t,n))break}}return!0}t.Adder=y,t.InternMap=v,t.InternSet=m,t.ascending=n,t.bin=C,t.bisect=f,t.bisectCenter=u,t.bisectLeft=i,t.bisectRight=f,t.bisector=r,t.count=l,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),r=(t=t.map(a)).map(s),e=t.length-1,o=new Array(e+1).fill(0),f=[];if(e<0||r.some(c))return f;for(;;){f.push(o.map(((n,r)=>t[r][n])));let i=e;for(;++o[i]===r[i];){if(0===i)return n?f.map(n):f;o[i--]=0}}},t.cumsum=function(t,n){var r=0,e=0;return Float64Array.from(t,void 0===n?t=>r+=+t||0:o=>r+=+n(o,e++,t)||0)},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=d,t.difference=function(t,...n){t=new Set(t);for(const r of n)for(const n of r)t.delete(n);return t},t.disjoint=function(t,n){const r=n[Symbol.iterator](),e=new Set;for(const n of t){if(e.has(n))return!1;let t,o;for(;({value:t,done:o}=r.next())&&!o;){if(Object.is(n,t))return!1;e.add(t)}}return!0},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let r=-1;for(const e of t)if(!n(e,++r,t))return!1;return!0},t.extent=p,t.fcumsum=function(t,n){const r=new y;let e=-1;return Float64Array.from(t,void 0===n?t=>r.add(+t||0):o=>r.add(+n(o,++e,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const r=[];let e=-1;for(const o of t)n(o,++e,t)&&r.push(o);return r},t.fsum=function(t,n){const r=new y;if(void 0===n)for(let n of t)(n=+n)&&r.add(n);else{let e=-1;for(let o of t)(o=+n(o,++e,t))&&r.add(o)}return+r},t.greatest=function(t,r=n){let e,o=!1;if(1===r.length){let f;for(const i of t){const t=r(i);(o?n(t,f)>0:0===n(t,t))&&(e=i,f=t,o=!0)}}else for(const n of t)(o?r(n,e)>0:0===r(n,n))&&(e=n,o=!0);return e},t.greatestIndex=function(t,r=n){if(1===r.length)return H(t,r);let e,o=-1,f=-1;for(const n of t)++f,(o<0?0===r(n,n):r(n,e)>0)&&(e=n,o=f);return o},t.group=x,t.groupSort=function(t,r,e){return(1===r.length?j(S(t,r,e),(([t,r],[e,o])=>n(r,o)||n(t,e))):j(x(t,e),(([t,e],[o,f])=>r(e,f)||n(t,o)))).map((([t])=>t))},t.groups=function(t,...n){return k(t,Array.from,A,n)},t.histogram=C,t.index=function(t,...n){return k(t,A,_,n)},t.indexes=function(t,...n){return k(t,Array.from,_,n)},t.intersection=function(t,...n){t=new Set(t),n=n.map(Z);t:for(const r of t)for(const e of n)if(!e.has(r)){t.delete(r);continue t}return t},t.least=function(t,r=n){let e,o=!1;if(1===r.length){let f;for(const i of t){const t=r(i);(o?n(t,f)<0:0===n(t,t))&&(e=i,f=t,o=!0)}}else for(const n of t)(o?r(n,e)<0:0===r(n,n))&&(e=n,o=!0);return e},t.leastIndex=Q,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((r,e)=>n(r,e,t)))},t.max=D,t.maxIndex=H,t.mean=function(t,n){let r=0,e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++r,e+=n);else{let o=-1;for(let f of t)null!=(f=n(f,++o,t))&&(f=+f)>=f&&(++r,e+=f)}if(r)return e/r},t.median=function(t,n){return G(t,.5,n)},t.merge=function(t){return Array.from(function*(t){for(const n of t)yield*n}(t))},t.min=R,t.minIndex=J,t.nice=P,t.pairs=function(t,n=K){const r=[];let e,o=!1;for(const f of t)o&&r.push(n(e,f)),e=f,o=!0;return r},t.permute=T,t.quantile=G,t.quantileSorted=function(t,n,r=e){if(o=t.length){if((n=+n)<=0||o<2)return+r(t[0],0,t);if(n>=1)return+r(t[o-1],o-1,t);var o,f=(o-1)*n,i=Math.floor(f),u=+r(t[i],i,t);return u+(+r(t[i+1],i+1,t)-u)*(f-i)}},t.quickselect=U,t.range=function(t,n,r){t=+t,n=+n,r=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+r;for(var e=-1,o=0|Math.max(0,Math.ceil((n-t)/r)),f=new Array(o);++e<o;)f[e]=t+e*r;return f},t.reduce=function(t,n,r){if("function"!=typeof n)throw new TypeError("reducer is not a function");const e=t[Symbol.iterator]();let o,f,i=-1;if(arguments.length<3){if(({done:o,value:r}=e.next()),o)return;++i}for(;({done:o,value:f}=e.next()),!o;)r=n(r,f,++i,t);return r},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rollup=S,t.rollups=function(t,n,...r){return k(t,Array.from,n,r)},t.scan=function(t,n){const r=Q(t,n);return r<0?void 0:r},t.shuffle=V,t.shuffler=W,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let r=-1;for(const e of t)if(n(e,++r,t))return!0;return!1},t.sort=j,t.subset=function(t,n){return $(n,t)},t.sum=function(t,n){let r=0;if(void 0===n)for(let n of t)(n=+n)&&(r+=n);else{let e=-1;for(let o of t)(o=+n(o,++e,t))&&(r+=o)}return r},t.superset=$,t.thresholdFreedmanDiaconis=function(t,n,r){return Math.ceil((r-n)/(2*(G(t,.75)-G(t,.25))*Math.pow(l(t),-1/3)))},t.thresholdScott=function(t,n,r){return Math.ceil((r-n)/(3.5*d(t)*Math.pow(l(t),-1/3)))},t.thresholdSturges=z,t.tickIncrement=L,t.tickStep=function(t,n,r){var e=Math.abs(n-t)/Math.max(0,r),o=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),f=e/o;return f>=q?o*=10:f>=F?o*=5:f>=I&&(o*=2),n<t?-o:o},t.ticks=O,t.transpose=X,t.union=function(...t){const n=new Set;for(const r of t)for(const t of r)n.add(t);return n},t.variance=h,t.zip=function(){return X(arguments)},Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-sankey/node_modules/d3-array/package.json
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-  "name": "d3-array",
-  "version": "2.12.1",
-  "description": "Array manipulation, ordering, searching, summarizing, etc.",
-  "keywords": [
-    "d3",
-    "d3-module",
-    "histogram",
-    "bisect",
-    "shuffle",
-    "statistics",
-    "search",
-    "sort",
-    "array"
-  ],
-  "homepage": "https://d3js.org/d3-array/",
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "main": "dist/d3-array.js",
-  "unpkg": "dist/d3-array.min.js",
-  "module": "src/index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-array.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "pretest": "rollup -c",
-    "test": "./test/run.sh",
-    "prepublishOnly": "rm -rf dist && yarn test",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "@rollup/plugin-node-resolve": "11",
-    "d3-random": "2",
-    "eslint": "7",
-    "jsdom": "16",
-    "rollup": "2",
-    "rollup-plugin-terser": "7",
-    "tape": "4",
-    "tape-await": "0.1"
-  },
-  "dependencies": {
-    "internmap": "^1.0.0"
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/array.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-var array = Array.prototype;
-
-export var slice = array.slice;
-export var map = array.map;
Index: de_modules/d3-sankey/node_modules/d3-array/src/ascending.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/bin.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/bin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import {slice} from "./array.js";
-import bisect from "./bisect.js";
-import constant from "./constant.js";
-import extent from "./extent.js";
-import identity from "./identity.js";
-import nice from "./nice.js";
-import ticks, {tickIncrement} from "./ticks.js";
-import sturges from "./threshold/sturges.js";
-
-export default function() {
-  var value = identity,
-      domain = extent,
-      threshold = sturges;
-
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-
-    var i,
-        n = data.length,
-        x,
-        values = new Array(n);
-
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-
-    var xz = domain(values),
-        x0 = xz[0],
-        x1 = xz[1],
-        tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1, tn = +tz;
-      if (domain === extent) [x0, x1] = nice(x0, x1, tn);
-      tz = ticks(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === extent) {
-          const step = tickIncrement(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    var m = tz.length;
-    while (tz[0] <= x0) tz.shift(), --m;
-    while (tz[m - 1] > x1) tz.pop(), --m;
-
-    var bins = new Array(m + 1),
-        bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    for (i = 0; i < n; ++i) {
-      x = values[i];
-      if (x0 <= x && x <= x1) {
-        bins[bisect(tz, x, 0, m)].push(data[i]);
-      }
-    }
-
-    return bins;
-  }
-
-  histogram.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
-  };
-
-  histogram.domain = function(_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
-  };
-
-  histogram.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
-  };
-
-  return histogram;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/bisect.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/bisect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import ascending from "./ascending.js";
-import bisector from "./bisector.js";
-import number from "./number.js";
-
-const ascendingBisect = bisector(ascending);
-export const bisectRight = ascendingBisect.right;
-export const bisectLeft = ascendingBisect.left;
-export const bisectCenter = bisector(number).center;
-export default bisectRight;
Index: de_modules/d3-sankey/node_modules/d3-array/src/bisector.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/bisector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function(f) {
-  let delta = f;
-  let compare = f;
-
-  if (f.length === 1) {
-    delta = (d, x) => f(d) - x;
-    compare = ascendingComparator(f);
-  }
-
-  function left(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    while (lo < hi) {
-      const mid = (lo + hi) >>> 1;
-      if (compare(a[mid], x) < 0) lo = mid + 1;
-      else hi = mid;
-    }
-    return lo;
-  }
-
-  function right(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    while (lo < hi) {
-      const mid = (lo + hi) >>> 1;
-      if (compare(a[mid], x) > 0) hi = mid;
-      else lo = mid + 1;
-    }
-    return lo;
-  }
-
-  function center(a, x, lo, hi) {
-    if (lo == null) lo = 0;
-    if (hi == null) hi = a.length;
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-
-  return {left, center, right};
-}
-
-function ascendingComparator(f) {
-  return (d, x) => ascending(f(d), x);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/constant.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/count.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/count.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function count(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/cross.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-function length(array) {
-  return array.length | 0;
-}
-
-function empty(length) {
-  return !(length > 0);
-}
-
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-
-export default function cross(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/cumsum.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/cumsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function cumsum(values, valueof) {
-  var sum = 0, index = 0;
-  return Float64Array.from(values, valueof === undefined
-    ? v => (sum += +v || 0)
-    : v => (sum += +valueof(v, index++, values) || 0));
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/descending.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/deviation.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/deviation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import variance from "./variance.js";
-
-export default function deviation(values, valueof) {
-  const v = variance(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/difference.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function difference(values, ...others) {
-  values = new Set(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/disjoint.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/disjoint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](), set = new Set();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/every.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/extent.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/extent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-export default function(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/filter.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export default function filter(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/fsum.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/fsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-export class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n, x, y, lo, hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-
-export function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-
-export function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined
-      ? v => adder.add(+v || 0)
-      : v => adder.add(+valueof(v, ++index, values) || 0)
-  );
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/greatest.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/greatest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function greatest(values, compare = ascending) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, maxValue) > 0
-          : ascending(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, max) > 0
-          : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/greatestIndex.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/greatestIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import ascending from "./ascending.js";
-import maxIndex from "./maxIndex.js";
-
-export default function greatestIndex(values, compare = ascending) {
-  if (compare.length === 1) return maxIndex(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0
-        ? compare(value, value) === 0
-        : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/group.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/group.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import {InternMap} from "internmap";
-import identity from "./identity.js";
-
-export default function group(values, ...keys) {
-  return nest(values, identity, identity, keys);
-}
-
-export function groups(values, ...keys) {
-  return nest(values, Array.from, identity, keys);
-}
-
-export function rollup(values, reduce, ...keys) {
-  return nest(values, identity, reduce, keys);
-}
-
-export function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-
-export function index(values, ...keys) {
-  return nest(values, identity, unique, keys);
-}
-
-export function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-
-function nest(values, map, reduce, keys) {
-  return (function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);
-      else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  })(values, 0);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/groupSort.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/groupSort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import ascending from "./ascending.js";
-import group, {rollup} from "./group.js";
-import sort from "./sort.js";
-
-export default function groupSort(values, reduce, key) {
-  return (reduce.length === 1
-    ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))
-    : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))
-    .map(([key]) => key);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/identity.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x) {
-  return x;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/index.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-export {default as bisect, bisectRight, bisectLeft, bisectCenter} from "./bisect.js";
-export {default as ascending} from "./ascending.js";
-export {default as bisector} from "./bisector.js";
-export {default as count} from "./count.js";
-export {default as cross} from "./cross.js";
-export {default as cumsum} from "./cumsum.js";
-export {default as descending} from "./descending.js";
-export {default as deviation} from "./deviation.js";
-export {default as extent} from "./extent.js";
-export {Adder, fsum, fcumsum} from "./fsum.js";
-export {default as group, groups, index, indexes, rollup, rollups} from "./group.js";
-export {default as groupSort} from "./groupSort.js";
-export {default as bin, default as histogram} from "./bin.js"; // Deprecated; use bin.
-export {default as thresholdFreedmanDiaconis} from "./threshold/freedmanDiaconis.js";
-export {default as thresholdScott} from "./threshold/scott.js";
-export {default as thresholdSturges} from "./threshold/sturges.js";
-export {default as max} from "./max.js";
-export {default as maxIndex} from "./maxIndex.js";
-export {default as mean} from "./mean.js";
-export {default as median} from "./median.js";
-export {default as merge} from "./merge.js";
-export {default as min} from "./min.js";
-export {default as minIndex} from "./minIndex.js";
-export {default as nice} from "./nice.js";
-export {default as pairs} from "./pairs.js";
-export {default as permute} from "./permute.js";
-export {default as quantile, quantileSorted} from "./quantile.js";
-export {default as quickselect} from "./quickselect.js";
-export {default as range} from "./range.js";
-export {default as least} from "./least.js";
-export {default as leastIndex} from "./leastIndex.js";
-export {default as greatest} from "./greatest.js";
-export {default as greatestIndex} from "./greatestIndex.js";
-export {default as scan} from "./scan.js"; // Deprecated; use leastIndex.
-export {default as shuffle, shuffler} from "./shuffle.js";
-export {default as sum} from "./sum.js";
-export {default as ticks, tickIncrement, tickStep} from "./ticks.js";
-export {default as transpose} from "./transpose.js";
-export {default as variance} from "./variance.js";
-export {default as zip} from "./zip.js";
-export {default as every} from "./every.js";
-export {default as some} from "./some.js";
-export {default as filter} from "./filter.js";
-export {default as map} from "./map.js";
-export {default as reduce} from "./reduce.js";
-export {default as reverse} from "./reverse.js";
-export {default as sort} from "./sort.js";
-export {default as difference} from "./difference.js";
-export {default as disjoint} from "./disjoint.js";
-export {default as intersection} from "./intersection.js";
-export {default as subset} from "./subset.js";
-export {default as superset} from "./superset.js";
-export {default as union} from "./union.js";
-export {InternMap, InternSet} from "internmap";
Index: de_modules/d3-sankey/node_modules/d3-array/src/intersection.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import set from "./set.js";
-
-export default function intersection(values, ...others) {
-  values = new Set(values);
-  others = others.map(set);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/least.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/least.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function least(values, compare = ascending) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending(value, minValue) < 0
-          : ascending(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, min) < 0
-          : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/leastIndex.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/leastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import ascending from "./ascending.js";
-import minIndex from "./minIndex.js";
-
-export default function leastIndex(values, compare = ascending) {
-  if (compare.length === 1) return minIndex(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0
-        ? compare(value, value) === 0
-        : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/map.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function map(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/max.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/max.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function max(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/maxIndex.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/maxIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-export default function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/mean.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-export default function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/median.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/median.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import quantile from "./quantile.js";
-
-export default function(values, valueof) {
-  return quantile(values, 0.5, valueof);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/merge.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-
-export default function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/min.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function min(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/minIndex.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/minIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-export default function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/nice.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/nice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import {tickIncrement} from "./ticks.js";
-
-export default function nice(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = tickIncrement(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/number.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export default function(x) {
-  return x === null ? NaN : +x;
-}
-
-export function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/pairs.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/pairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export default function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-
-export function pair(a, b) {
-  return [a, b];
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/permute.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/permute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/quantile.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/quantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import max from "./max.js";
-import min from "./min.js";
-import quickselect from "./quickselect.js";
-import number, {numbers} from "./number.js";
-
-export default function quantile(values, p, valueof) {
-  values = Float64Array.from(numbers(values, valueof));
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return min(values);
-  if (p >= 1) return max(values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),
-      value1 = min(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-export function quantileSorted(values, p, valueof = number) {
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = +valueof(values[i0], i0, values),
-      value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/quickselect.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/quickselect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import ascending from "./ascending.js";
-
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-export default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-
-    const t = array[k];
-    let i = left;
-    let j = right;
-
-    swap(array, left, k);
-    if (compare(array[right], t) > 0) swap(array, left, right);
-
-    while (i < j) {
-      swap(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-
-    if (compare(array[left], t) === 0) swap(array, left, j);
-    else ++j, swap(array, j, right);
-
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-  return array;
-}
-
-function swap(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/range.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default function(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-
-  var i = -1,
-      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-      range = new Array(n);
-
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-
-  return range;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/reduce.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done, next, index = -1;
-  if (arguments.length < 3) {
-    ({done, value} = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({done, value: next} = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/reverse.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export default function reverse(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/scan.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/scan.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import leastIndex from "./leastIndex.js";
-
-export default function scan(values, compare) {
-  const index = leastIndex(values, compare);
-  return index < 0 ? undefined : index;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/set.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function set(values) {
-  return values instanceof Set ? values : new Set(values);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/shuffle.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default shuffler(Math.random);
-
-export function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0, t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/some.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/sort.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import ascending from "./ascending.js";
-import permute from "./permute.js";
-
-export default function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f = ascending] = F;
-  if (f.length === 1 || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascending(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascending(f[i], f[j]));
-    }
-    return permute(values, index);
-  }
-  return values.sort(f);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/subset.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/subset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import superset from "./superset.js";
-
-export default function subset(values, other) {
-  return superset(other, values);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/sum.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function sum(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/superset.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/superset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default function superset(values, other) {
-  const iterator = values[Symbol.iterator](), set = new Set();
-  for (const o of other) {
-    if (set.has(o)) continue;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) return false;
-      set.add(value);
-      if (Object.is(o, value)) break;
-    }
-  }
-  return true;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/threshold/freedmanDiaconis.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/threshold/freedmanDiaconis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import count from "../count.js";
-import quantile from "../quantile.js";
-
-export default function(values, min, max) {
-  return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/threshold/scott.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/threshold/scott.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import count from "../count.js";
-import deviation from "../deviation.js";
-
-export default function(values, min, max) {
-  return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/threshold/sturges.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/threshold/sturges.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import count from "../count.js";
-
-export default function(values) {
-  return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/ticks.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/ticks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-var e10 = Math.sqrt(50),
-    e5 = Math.sqrt(10),
-    e2 = Math.sqrt(2);
-
-export default function(start, stop, count) {
-  var reverse,
-      i = -1,
-      n,
-      ticks,
-      step;
-
-  stop = +stop, start = +start, count = +count;
-  if (start === stop && count > 0) return [start];
-  if (reverse = stop < start) n = start, start = stop, stop = n;
-  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
-
-  if (step > 0) {
-    let r0 = Math.round(start / step), r1 = Math.round(stop / step);
-    if (r0 * step < start) ++r0;
-    if (r1 * step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) * step;
-  } else {
-    step = -step;
-    let r0 = Math.round(start * step), r1 = Math.round(stop * step);
-    if (r0 / step < start) ++r0;
-    if (r1 / step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) / step;
-  }
-
-  if (reverse) ticks.reverse();
-
-  return ticks;
-}
-
-export function tickIncrement(start, stop, count) {
-  var step = (stop - start) / Math.max(0, count),
-      power = Math.floor(Math.log(step) / Math.LN10),
-      error = step / Math.pow(10, power);
-  return power >= 0
-      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
-      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
-}
-
-export function tickStep(start, stop, count) {
-  var step0 = Math.abs(stop - start) / Math.max(0, count),
-      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
-      error = step0 / step1;
-  if (error >= e10) step1 *= 10;
-  else if (error >= e5) step1 *= 5;
-  else if (error >= e2) step1 *= 2;
-  return stop < start ? -step1 : step1;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/transpose.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/transpose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import min from "./min.js";
-
-export default function(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-
-function length(d) {
-  return d.length;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/union.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function union(...others) {
-  const set = new Set();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/variance.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/variance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-export default function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
Index: de_modules/d3-sankey/node_modules/d3-array/src/zip.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-array/src/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import transpose from "./transpose.js";
-
-export default function() {
-  return transpose(arguments);
-}
Index: de_modules/d3-sankey/node_modules/d3-path/LICENSE
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-Copyright 2015-2016 Mike Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/d3-sankey/node_modules/d3-path/README.md
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-# d3-path
-
-Say you have some code that draws to a 2D canvas:
-
-```js
-function drawCircle(context, radius) {
-  context.moveTo(radius, 0);
-  context.arc(0, 0, radius, 0, 2 * Math.PI);
-}
-```
-
-The d3-path module lets you take this exact code and additionally render to [SVG](http://www.w3.org/TR/SVG/paths.html). It works by [serializing](#path_toString) [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls to [SVG path data](http://www.w3.org/TR/SVG/paths.html#PathData). For example:
-
-```js
-var context = d3.path();
-drawCircle(context, 40);
-pathElement.setAttribute("d", context.toString());
-```
-
-Now code you write once can be used with both Canvas (for performance) and SVG (for convenience). For a practical example, see [d3-shape](https://github.com/d3/d3-shape).
-
-## Installing
-
-If you use NPM, `npm install d3-path`. Otherwise, download the [latest release](https://github.com/d3/d3-path/releases/latest). You can also load directly from [d3js.org](https://d3js.org), either as a [standalone library](https://d3js.org/d3-path.v1.min.js) or as part of [D3 4.0](https://github.com/d3/d3). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `d3` global is exported:
-
-```html
-<script src="https://d3js.org/d3-path.v1.min.js"></script>
-<script>
-
-var path = d3.path();
-path.moveTo(1, 2);
-path.lineTo(3, 4);
-path.closePath();
-
-</script>
-```
-
-## API Reference
-
-<a name="path" href="#path">#</a> d3.<b>path</b>() · [Source](https://github.com/d3/d3-path/blob/master/src/path.js), [Examples](https://observablehq.com/@d3/d3-path)
-
-Constructs a new path serializer that implements [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods).
-
-<a name="path_moveTo" href="#path_moveTo">#</a> <i>path</i>.<b>moveTo</b>(<i>x</i>, <i>y</i>)
-
-Move to the specified point ⟨*x*, *y*⟩. Equivalent to [*context*.moveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-moveto) and SVG’s [“moveto” command](http://www.w3.org/TR/SVG/paths.html#PathDataMovetoCommands).
-
-<a name="path_closePath" href="#path_closePath">#</A> <i>path</i>.<b>closePath</b>()
-
-Ends the current subpath and causes an automatic straight line to be drawn from the current point to the initial point of the current subpath. Equivalent to [*context*.closePath](http://www.w3.org/TR/2dcontext/#dom-context-2d-closepath) and SVG’s [“closepath” command](http://www.w3.org/TR/SVG/paths.html#PathDataClosePathCommand).
-
-<a name="path_lineTo" href="#path_lineTo">#</a> <i>path</i>.<b>lineTo</b>(<i>x</i>, <i>y</i>)
-
-Draws a straight line from the current point to the specified point ⟨*x*, *y*⟩. Equivalent to [*context*.lineTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-lineto) and SVG’s [“lineto” command](http://www.w3.org/TR/SVG/paths.html#PathDataLinetoCommands).
-
-<a name="path_quadraticCurveTo" href="#path_quadraticCurveTo">#</a> <i>path</i>.<b>quadraticCurveTo</b>(<i>cpx</i>, <i>cpy</i>, <i>x</i>, <i>y</i>)
-
-Draws a quadratic Bézier segment from the current point to the specified point ⟨*x*, *y*⟩, with the specified control point ⟨*cpx*, *cpy*⟩. Equivalent to [*context*.quadraticCurveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-quadraticcurveto) and SVG’s [quadratic Bézier curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataQuadraticBezierCommands).
-
-<a name="path_bezierCurveTo" href="#path_bezierCurveTo">#</a> <i>path</i>.<b>bezierCurveTo</b>(<i>cpx1</i>, <i>cpy1</i>, <i>cpx2</i>, <i>cpy2</i>, <i>x</i>, <i>y</i>)
-
-Draws a cubic Bézier segment from the current point to the specified point ⟨*x*, *y*⟩, with the specified control points ⟨*cpx1*, *cpy1*⟩ and ⟨*cpx2*, *cpy2*⟩. Equivalent to [*context*.bezierCurveTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-beziercurveto) and SVG’s [cubic Bézier curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataCubicBezierCommands).
-
-<a name="path_arcTo" href="#path_arcTo">#</a> <i>path</i>.<b>arcTo</b>(<i>x1</i>, <i>y1</i>, <i>x2</i>, <i>y2</i>, <i>radius</i>)
-
-Draws a circular arc segment with the specified *radius* that starts tangent to the line between the current point and the specified point ⟨*x1*, *y1*⟩ and ends tangent to the line between the specified points ⟨*x1*, *y1*⟩ and ⟨*x2*, *y2*⟩. If the first tangent point is not equal to the current point, a straight line is drawn between the current point and the first tangent point. Equivalent to [*context*.arcTo](http://www.w3.org/TR/2dcontext/#dom-context-2d-arcto) and uses SVG’s [elliptical arc curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands).
-
-<a name="path_arc" href="#path_arc">#</a> <i>path</i>.<b>arc</b>(<i>x</i>, <i>y</i>, <i>radius</i>, <i>startAngle</i>, <i>endAngle</i>[, <i>anticlockwise</i>])
-
-Draws a circular arc segment with the specified center ⟨*x*, *y*⟩, *radius*, *startAngle* and *endAngle*. If *anticlockwise* is true, the arc is drawn in the anticlockwise direction; otherwise, it is drawn in the clockwise direction. If the current point is not equal to the starting point of the arc, a straight line is drawn from the current point to the start of the arc. Equivalent to [*context*.arc](http://www.w3.org/TR/2dcontext/#dom-context-2d-arc) and uses SVG’s [elliptical arc curve commands](http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands).
-
-<a name="path_rect" href="#path_rect">#</a> <i>path</i>.<b>rect</b>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>)
-
-Creates a new subpath containing just the four points ⟨*x*, *y*⟩, ⟨*x* + *w*, *y*⟩, ⟨*x* + *w*, *y* + *h*⟩, ⟨*x*, *y* + *h*⟩, with those four points connected by straight lines, and then marks the subpath as closed. Equivalent to [*context*.rect](http://www.w3.org/TR/2dcontext/#dom-context-2d-rect) and uses SVG’s [“lineto” commands](http://www.w3.org/TR/SVG/paths.html#PathDataLinetoCommands).
-
-<a name="path_toString" href="#path_toString">#</a> <i>path</i>.<b>toString</b>()
-
-Returns the string representation of this *path* according to SVG’s [path data specification](http://www.w3.org/TR/SVG/paths.html#PathData).
Index: de_modules/d3-sankey/node_modules/d3-path/dist/d3-path.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/dist/d3-path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,141 +1,0 @@
-// https://d3js.org/d3-path/ v1.0.9 Copyright 2019 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = global || self, factory(global.d3 = global.d3 || {}));
-}(this, function (exports) { 'use strict';
-
-var pi = Math.PI,
-    tau = 2 * pi,
-    epsilon = 1e-6,
-    tauEpsilon = tau - epsilon;
-
-function Path() {
-  this._x0 = this._y0 = // start of current subpath
-  this._x1 = this._y1 = null; // end of current subpath
-  this._ = "";
-}
-
-function path() {
-  return new Path;
-}
-
-Path.prototype = path.prototype = {
-  constructor: Path,
-  moveTo: function(x, y) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
-  },
-  closePath: function() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  },
-  lineTo: function(x, y) {
-    this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  quadraticCurveTo: function(x1, y1, x, y) {
-    this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) {
-    this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  arcTo: function(x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-    var x0 = this._x1,
-        y0 = this._y1,
-        x21 = x2 - x1,
-        y21 = y2 - y1,
-        x01 = x0 - x1,
-        y01 = y0 - y1,
-        l01_2 = x01 * x01 + y01 * y01;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon));
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
-      this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      var x20 = x2 - x0,
-          y20 = y2 - y0,
-          l21_2 = x21 * x21 + y21 * y21,
-          l20_2 = x20 * x20 + y20 * y20,
-          l21 = Math.sqrt(l21_2),
-          l01 = Math.sqrt(l01_2),
-          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-          t01 = l / l01,
-          t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon) {
-        this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
-      }
-
-      this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
-    }
-  },
-  arc: function(x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-    var dx = r * Math.cos(a0),
-        dy = r * Math.sin(a0),
-        x0 = x + dx,
-        y0 = y + dy,
-        cw = 1 ^ ccw,
-        da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._ += "M" + x0 + "," + y0;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
-      this._ += "L" + x0 + "," + y0;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau + tau;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon) {
-      this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
-    }
-  },
-  rect: function(x, y, w, h) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
-  },
-  toString: function() {
-    return this._;
-  }
-};
-
-exports.path = path;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-sankey/node_modules/d3-path/dist/d3-path.min.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/dist/d3-path.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-path/ v1.0.9 Copyright 2019 Mike Bostock
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t=t||self).d3=t.d3||{})}(this,function(t){"use strict";var i=Math.PI,s=2*i,h=s-1e-6;function e(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function _(){return new e}e.prototype=_.prototype={constructor:e,moveTo:function(t,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,i){this._+="L"+(this._x1=+t)+","+(this._y1=+i)},quadraticCurveTo:function(t,i,s,h){this._+="Q"+ +t+","+ +i+","+(this._x1=+s)+","+(this._y1=+h)},bezierCurveTo:function(t,i,s,h,e,_){this._+="C"+ +t+","+ +i+","+ +s+","+ +h+","+(this._x1=+e)+","+(this._y1=+_)},arcTo:function(t,s,h,e,_){t=+t,s=+s,h=+h,e=+e,_=+_;var n=this._x1,o=this._y1,r=h-t,a=e-s,u=n-t,f=o-s,c=u*u+f*f;if(_<0)throw new Error("negative radius: "+_);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=s);else if(c>1e-6)if(Math.abs(f*r-a*u)>1e-6&&_){var x=h-n,y=e-o,M=r*r+a*a,l=x*x+y*y,d=Math.sqrt(M),p=Math.sqrt(c),v=_*Math.tan((i-Math.acos((M+c-l)/(2*d*p)))/2),b=v/p,w=v/d;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(s+b*f)),this._+="A"+_+","+_+",0,0,"+ +(f*x>u*y)+","+(this._x1=t+w*r)+","+(this._y1=s+w*a)}else this._+="L"+(this._x1=t)+","+(this._y1=s);else;},arc:function(t,e,_,n,o,r){t=+t,e=+e,r=!!r;var a=(_=+_)*Math.cos(n),u=_*Math.sin(n),f=t+a,c=e+u,x=1^r,y=r?n-o:o-n;if(_<0)throw new Error("negative radius: "+_);null===this._x1?this._+="M"+f+","+c:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+f+","+c),_&&(y<0&&(y=y%s+s),y>h?this._+="A"+_+","+_+",0,1,"+x+","+(t-a)+","+(e-u)+"A"+_+","+_+",0,1,"+x+","+(this._x1=f)+","+(this._y1=c):y>1e-6&&(this._+="A"+_+","+_+",0,"+ +(y>=i)+","+x+","+(this._x1=t+_*Math.cos(o))+","+(this._y1=e+_*Math.sin(o))))},rect:function(t,i,s,h){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)+"h"+ +s+"v"+ +h+"h"+-s+"Z"},toString:function(){return this._}},t.path=_,Object.defineProperty(t,"__esModule",{value:!0})});
Index: de_modules/d3-sankey/node_modules/d3-path/package.json
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-{
-  "name": "d3-path",
-  "version": "1.0.9",
-  "description": "Serialize Canvas path commands to SVG.",
-  "keywords": [
-    "d3",
-    "d3-module",
-    "canvas",
-    "path",
-    "svg",
-    "graphics",
-    "CanvasRenderingContext2D",
-    "CanvasPathMethods",
-    "Path2D"
-  ],
-  "homepage": "https://d3js.org/d3-path/",
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "main": "dist/d3-path.js",
-  "unpkg": "dist/d3-path.min.js",
-  "jsdelivr": "dist/d3-path.min.js",
-  "module": "src/index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-path.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "pretest": "rollup -c",
-    "test": "tape 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "6",
-    "rollup": "1",
-    "rollup-plugin-terser": "5",
-    "tape": "4"
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-path/src/index.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {default as path} from "./path.js";
Index: de_modules/d3-sankey/node_modules/d3-path/src/path.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-path/src/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,130 +1,0 @@
-var pi = Math.PI,
-    tau = 2 * pi,
-    epsilon = 1e-6,
-    tauEpsilon = tau - epsilon;
-
-function Path() {
-  this._x0 = this._y0 = // start of current subpath
-  this._x1 = this._y1 = null; // end of current subpath
-  this._ = "";
-}
-
-function path() {
-  return new Path;
-}
-
-Path.prototype = path.prototype = {
-  constructor: Path,
-  moveTo: function(x, y) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
-  },
-  closePath: function() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  },
-  lineTo: function(x, y) {
-    this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  quadraticCurveTo: function(x1, y1, x, y) {
-    this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) {
-    this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  arcTo: function(x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-    var x0 = this._x1,
-        y0 = this._y1,
-        x21 = x2 - x1,
-        y21 = y2 - y1,
-        x01 = x0 - x1,
-        y01 = y0 - y1,
-        l01_2 = x01 * x01 + y01 * y01;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon));
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
-      this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      var x20 = x2 - x0,
-          y20 = y2 - y0,
-          l21_2 = x21 * x21 + y21 * y21,
-          l20_2 = x20 * x20 + y20 * y20,
-          l21 = Math.sqrt(l21_2),
-          l01 = Math.sqrt(l01_2),
-          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-          t01 = l / l01,
-          t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon) {
-        this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
-      }
-
-      this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
-    }
-  },
-  arc: function(x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-    var dx = r * Math.cos(a0),
-        dy = r * Math.sin(a0),
-        x0 = x + dx,
-        y0 = y + dy,
-        cw = 1 ^ ccw,
-        da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._ += "M" + x0 + "," + y0;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
-      this._ += "L" + x0 + "," + y0;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau + tau;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon) {
-      this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
-    }
-  },
-  rect: function(x, y, w, h) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
-  },
-  toString: function() {
-    return this._;
-  }
-};
-
-export default path;
Index: de_modules/d3-sankey/node_modules/d3-shape/LICENSE
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-Copyright 2010-2015 Mike Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/d3-sankey/node_modules/d3-shape/README.md
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1149 +1,0 @@
-# d3-shape
-
-Visualizations typically consist of discrete graphical marks, such as [symbols](#symbols), [arcs](#arcs), [lines](#lines) and [areas](#areas). While the rectangles of a bar chart may be easy enough to generate directly using [SVG](http://www.w3.org/TR/SVG/paths.html#PathData) or [Canvas](http://www.w3.org/TR/2dcontext/#canvaspathmethods), other shapes are complex, such as rounded annular sectors and centripetal Catmull–Rom splines. This module provides a variety of shape generators for your convenience.
-
-As with other aspects of D3, these shapes are driven by data: each shape generator exposes accessors that control how the input data are mapped to a visual representation. For example, you might define a line generator for a time series by [scaling](https://github.com/d3/d3-scale) fields of your data to fit the chart:
-
-```js
-var line = d3.line()
-    .x(function(d) { return x(d.date); })
-    .y(function(d) { return y(d.value); });
-```
-
-This line generator can then be used to compute the `d` attribute of an SVG path element:
-
-```js
-path.datum(data).attr("d", line);
-```
-
-Or you can use it to render to a Canvas 2D context:
-
-```js
-line.context(context)(data);
-```
-
-For more, read [Introducing d3-shape](https://medium.com/@mbostock/introducing-d3-shape-73f8367e6d12).
-
-## Installing
-
-If you use NPM, `npm install d3-shape`. Otherwise, download the [latest release](https://github.com/d3/d3-shape/releases/latest). You can also load directly from [d3js.org](https://d3js.org), either as a [standalone library](https://d3js.org/d3-shape.v1.min.js) or as part of [D3](https://github.com/d3/d3). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `d3` global is exported:
-
-```html
-<script src="https://d3js.org/d3-path.v1.min.js"></script>
-<script src="https://d3js.org/d3-shape.v1.min.js"></script>
-<script>
-
-var line = d3.line();
-
-</script>
-```
-
-
-## API Reference
-
-* [Arcs](#arcs)
-* [Pies](#pies)
-* [Lines](#lines)
-* [Areas](#areas)
-* [Curves](#curves)
-* [Custom Curves](#custom-curves)
-* [Links](#links)
-* [Symbols](#symbols)
-* [Custom Symbol Types](#custom-symbol-types)
-* [Stacks](#stacks)
-
-### Arcs
-
-[<img alt="Pie Chart" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/pie.png" width="295" height="295">](http://bl.ocks.org/mbostock/8878e7fd82034f1d63cf)[<img alt="Donut Chart" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/donut.png" width="295" height="295">](http://bl.ocks.org/mbostock/2394b23da1994fc202e1)
-
-The arc generator produces a [circular](https://en.wikipedia.org/wiki/Circular_sector) or [annular](https://en.wikipedia.org/wiki/Annulus_\(mathematics\)) sector, as in a pie or donut chart. If the difference between the [start](#arc_startAngle) and [end](#arc_endAngle) angles (the *angular span*) is greater than [τ](https://en.wikipedia.org/wiki/Turn_\(geometry\)#Tau_proposal), the arc generator will produce a complete circle or annulus. If it is less than τ, arcs may have [rounded corners](#arc_cornerRadius) and [angular padding](#arc_padAngle). Arcs are always centered at ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to move the arc to a different position.
-
-See also the [pie generator](#pies), which computes the necessary angles to represent an array of data as a pie or donut chart; these angles can then be passed to an arc generator.
-
-<a name="arc" href="#arc">#</a> d3.<b>arc</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-Constructs a new arc generator with the default settings.
-
-<a name="_arc" href="#_arc">#</a> <i>arc</i>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-Generates an arc for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the arc generator’s accessor functions along with the `this` object. For example, with the default settings, an object with radii and angles is expected:
-
-```js
-var arc = d3.arc();
-
-arc({
-  innerRadius: 0,
-  outerRadius: 100,
-  startAngle: 0,
-  endAngle: Math.PI / 2
-}); // "M0,-100A100,100,0,0,1,100,0L0,0Z"
-```
-
-If the radii and angles are instead defined as constants, you can generate an arc without any arguments:
-
-```js
-var arc = d3.arc()
-    .innerRadius(0)
-    .outerRadius(100)
-    .startAngle(0)
-    .endAngle(Math.PI / 2);
-
-arc(); // "M0,-100A100,100,0,0,1,100,0L0,0Z"
-```
-
-If the arc generator has a [context](#arc_context), then the arc is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="arc_centroid" href="#arc_centroid">#</a> <i>arc</i>.<b>centroid</b>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-Computes the midpoint [*x*, *y*] of the center line of the arc that would be [generated](#_arc) by the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the arc generator’s accessor functions along with the `this` object. To be consistent with the generated arc, the accessors must be deterministic, *i.e.*, return the same value given the same arguments. The midpoint is defined as ([startAngle](#arc_startAngle) + [endAngle](#arc_endAngle)) / 2 and ([innerRadius](#arc_innerRadius) + [outerRadius](#arc_outerRadius)) / 2. For example:
-
-[<img alt="Circular Sector Centroids" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/centroid-circular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/9b5a2fd1ce1a146f27e4)[<img alt="Annular Sector Centroids" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/centroid-annular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/c274877f647361f3df7d)
-
-Note that this is **not the geometric center** of the arc, which may be outside the arc; this method is merely a convenience for positioning labels.
-
-<a name="arc_innerRadius" href="#arc_innerRadius">#</a> <i>arc</i>.<b>innerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *radius* is specified, sets the inner radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current inner radius accessor, which defaults to:
-
-```js
-function innerRadius(d) {
-  return d.innerRadius;
-}
-```
-
-Specifying the inner radius as a function is useful for constructing a stacked polar bar chart, often in conjunction with a [sqrt scale](https://github.com/d3/d3-scale#sqrt). More commonly, a constant inner radius is used for a donut or pie chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped. A negative value is treated as zero.
-
-<a name="arc_outerRadius" href="#arc_outerRadius">#</a> <i>arc</i>.<b>outerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *radius* is specified, sets the outer radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current outer radius accessor, which defaults to:
-
-```js
-function outerRadius(d) {
-  return d.outerRadius;
-}
-```
-
-Specifying the outer radius as a function is useful for constructing a coxcomb or polar bar chart, often in conjunction with a [sqrt scale](https://github.com/d3/d3-scale#sqrt). More commonly, a constant outer radius is used for a pie or donut chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped. A negative value is treated as zero.
-
-<a name="arc_cornerRadius" href="#arc_cornerRadius">#</a> <i>arc</i>.<b>cornerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *radius* is specified, sets the corner radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current corner radius accessor, which defaults to:
-
-```js
-function cornerRadius() {
-  return 0;
-}
-```
-
-If the corner radius is greater than zero, the corners of the arc are rounded using circles of the given radius. For a circular sector, the two outer corners are rounded; for an annular sector, all four corners are rounded. The corner circles are shown in this diagram:
-
-[<img alt="Rounded Circular Sectors" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/rounded-circular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/e5e3680f3079cf5c3437)[<img alt="Rounded Annular Sectors" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/rounded-annular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/f41f50e06a6c04828b6e)
-
-The corner radius may not be larger than ([outerRadius](#arc_outerRadius) - [innerRadius](#arc_innerRadius)) / 2. In addition, for arcs whose angular span is less than π, the corner radius may be reduced as two adjacent rounded corners intersect. This is occurs more often with the inner corners. See the [arc corners animation](http://bl.ocks.org/mbostock/b7671cb38efdfa5da3af) for illustration.
-
-<a name="arc_startAngle" href="#arc_startAngle">#</a> <i>arc</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *angle* is specified, sets the start angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:
-
-```js
-function startAngle(d) {
-  return d.startAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise. If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-
-<a name="arc_endAngle" href="#arc_endAngle">#</a> <i>arc</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *angle* is specified, sets the end angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:
-
-```js
-function endAngle(d) {
-  return d.endAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise. If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-
-<a name="arc_padAngle" href="#arc_padAngle">#</a> <i>arc</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *angle* is specified, sets the pad angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current pad angle accessor, which defaults to:
-
-```js
-function padAngle() {
-  return d && d.padAngle;
-}
-```
-
-The pad angle is converted to a fixed linear distance separating adjacent arcs, defined as [padRadius](#arc_padRadius) * padAngle. This distance is subtracted equally from the [start](#arc_startAngle) and [end](#arc_endAngle) of the arc. If the arc forms a complete circle or annulus, as when |endAngle - startAngle| ≥ τ, the pad angle is ignored.
-
-If the [inner radius](#arc_innerRadius) or angular span is small relative to the pad angle, it may not be possible to maintain parallel edges between adjacent arcs. In this case, the inner edge of the arc may collapse to a point, similar to a circular sector. For this reason, padding is typically only applied to annular sectors (*i.e.*, when innerRadius is positive), as shown in this diagram:
-
-[<img alt="Padded Circular Sectors" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/padded-circular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/f37b07b92633781a46f7)[<img alt="Padded Annular Sectors" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/padded-annular-sector.png" width="250" height="250">](http://bl.ocks.org/mbostock/99f0a6533f7c949cf8b8)
-
-The recommended minimum inner radius when using padding is outerRadius \* padAngle / sin(θ), where θ is the angular span of the smallest arc before padding. For example, if the outer radius is 200 pixels and the pad angle is 0.02 radians, a reasonable θ is 0.04 radians, and a reasonable inner radius is 100 pixels. See the [arc padding animation](http://bl.ocks.org/mbostock/053fcc2295a445afab07) for illustration.
-
-Often, the pad angle is not set directly on the arc generator, but is instead computed by the [pie generator](#pies) so as to ensure that the area of padded arcs is proportional to their value; see [*pie*.padAngle](#pie_padAngle). See the [pie padding animation](http://bl.ocks.org/mbostock/3e961b4c97a1b543fff2) for illustration. If you apply a constant pad angle to the arc generator directly, it tends to subtract disproportionately from smaller arcs, introducing distortion.
-
-<a name="arc_padRadius" href="#arc_padRadius">#</a> <i>arc</i>.<b>padRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *radius* is specified, sets the pad radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current pad radius accessor, which defaults to null, indicating that the pad radius should be automatically computed as sqrt([innerRadius](#arc_innerRadius) * innerRadius + [outerRadius](#arc_outerRadius) * outerRadius). The pad radius determines the fixed linear distance separating adjacent arcs, defined as padRadius * [padAngle](#arc_padAngle).
-
-<a name="arc_context" href="#arc_context">#</a> <i>arc</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/arc.js)
-
-If *context* is specified, sets the context and returns this arc generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated arc](#_arc) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated arc is returned.
-
-### Pies
-
-The pie generator does not produce a shape directly, but instead computes the necessary angles to represent a tabular dataset as a pie or donut chart; these angles can then be passed to an [arc generator](#arcs).
-
-<a name="pie" href="#pie">#</a> d3.<b>pie</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-Constructs a new pie generator with the default settings.
-
-<a name="_pie" href="#_pie">#</a> <i>pie</i>(<i>data</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-Generates a pie for the given array of *data*, returning an array of objects representing each datum’s arc angles. Any additional *arguments* are arbitrary; they are simply propagated to the pie generator’s accessor functions along with the `this` object. The length of the returned array is the same as *data*, and each element *i* in the returned array corresponds to the element *i* in the input data. Each object in the returned array has the following properties:
-
-* `data` - the input datum; the corresponding element in the input data array.
-* `value` - the numeric [value](#pie_value) of the arc.
-* `index` - the zero-based [sorted index](#pie_sort) of the arc.
-* `startAngle` - the [start angle](#pie_startAngle) of the arc.
-* `endAngle` - the [end angle](#pie_endAngle) of the arc.
-* `padAngle` - the [pad angle](#pie_padAngle) of the arc.
-
-This representation is designed to work with the arc generator’s default [startAngle](#arc_startAngle), [endAngle](#arc_endAngle) and [padAngle](#arc_padAngle) accessors. The angular units are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify angles in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-Given a small dataset of numbers, here is how to compute the arc angles to render this data as a pie chart:
-
-```js
-var data = [1, 1, 2, 3, 5, 8, 13, 21];
-var arcs = d3.pie()(data);
-```
-
-The first pair of parens, `pie()`, [constructs](#pie) a default pie generator. The second, `pie()(data)`, [invokes](#_pie) this generator on the dataset, returning an array of objects:
-
-```json
-[
-  {"data":  1, "value":  1, "index": 6, "startAngle": 6.050474740247008, "endAngle": 6.166830023713296, "padAngle": 0},
-  {"data":  1, "value":  1, "index": 7, "startAngle": 6.166830023713296, "endAngle": 6.283185307179584, "padAngle": 0},
-  {"data":  2, "value":  2, "index": 5, "startAngle": 5.817764173314431, "endAngle": 6.050474740247008, "padAngle": 0},
-  {"data":  3, "value":  3, "index": 4, "startAngle": 5.468698322915565, "endAngle": 5.817764173314431, "padAngle": 0},
-  {"data":  5, "value":  5, "index": 3, "startAngle": 4.886921905584122, "endAngle": 5.468698322915565, "padAngle": 0},
-  {"data":  8, "value":  8, "index": 2, "startAngle": 3.956079637853813, "endAngle": 4.886921905584122, "padAngle": 0},
-  {"data": 13, "value": 13, "index": 1, "startAngle": 2.443460952792061, "endAngle": 3.956079637853813, "padAngle": 0},
-  {"data": 21, "value": 21, "index": 0, "startAngle": 0.000000000000000, "endAngle": 2.443460952792061, "padAngle": 0}
-]
-```
-
-Note that the returned array is in the same order as the data, even though this pie chart is [sorted](#pie_sortValues) by descending value, starting with the arc for the last datum (value 21) at 12 o’clock.
-
-<a name="pie_value" href="#pie_value">#</a> <i>pie</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *value* is specified, sets the value accessor to the specified function or number and returns this pie generator. If *value* is not specified, returns the current value accessor, which defaults to:
-
-```js
-function value(d) {
-  return d;
-}
-```
-
-When a pie is [generated](#_pie), the value accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default value accessor assumes that the input data are numbers, or that they are coercible to numbers using [valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf). If your data are not simply numbers, then you should specify an accessor that returns the corresponding numeric value for a given datum. For example:
-
-```js
-var data = [
-  {"number":  4, "name": "Locke"},
-  {"number":  8, "name": "Reyes"},
-  {"number": 15, "name": "Ford"},
-  {"number": 16, "name": "Jarrah"},
-  {"number": 23, "name": "Shephard"},
-  {"number": 42, "name": "Kwon"}
-];
-
-var arcs = d3.pie()
-    .value(function(d) { return d.number; })
-    (data);
-```
-
-This is similar to [mapping](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) your data to values before invoking the pie generator:
-
-```js
-var arcs = d3.pie()(data.map(function(d) { return d.number; }));
-```
-
-The benefit of an accessor is that the input data remains associated with the returned objects, thereby making it easier to access other fields of the data, for example to set the color or to add text labels.
-
-<a name="pie_sort" href="#pie_sort">#</a> <i>pie</i>.<b>sort</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *compare* is specified, sets the data comparator to the specified function and returns this pie generator. If *compare* is not specified, returns the current data comparator, which defaults to null. If both the data comparator and the value comparator are null, then arcs are positioned in the original input order. Otherwise, the data is sorted according to the data comparator, and the resulting order is used. Setting the data comparator implicitly sets the [value comparator](#pie_sortValues) to null.
-
-The *compare* function takes two arguments *a* and *b*, each elements from the input data array. If the arc for *a* should be before the arc for *b*, then the comparator must return a number less than zero; if the arc for *a* should be after the arc for *b*, then the comparator must return a number greater than zero; returning zero means that the relative order of *a* and *b* is unspecified. For example, to sort arcs by their associated name:
-
-```js
-pie.sort(function(a, b) { return a.name.localeCompare(b.name); });
-```
-
-Sorting does not affect the order of the [generated arc array](#_pie) which is always in the same order as the input data array; it merely affects the computed angles of each arc. The first arc starts at the [start angle](#pie_startAngle) and the last arc ends at the [end angle](#pie_endAngle).
-
-<a name="pie_sortValues" href="#pie_sortValues">#</a> <i>pie</i>.<b>sortValues</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *compare* is specified, sets the value comparator to the specified function and returns this pie generator. If *compare* is not specified, returns the current value comparator, which defaults to descending value. The default value comparator is implemented as:
-
-```js
-function compare(a, b) {
-  return b - a;
-}
-```
-
-If both the data comparator and the value comparator are null, then arcs are positioned in the original input order. Otherwise, the data is sorted according to the data comparator, and the resulting order is used. Setting the value comparator implicitly sets the [data comparator](#pie_sort) to null.
-
-The value comparator is similar to the [data comparator](#pie_sort), except the two arguments *a* and *b* are values derived from the input data array using the [value accessor](#pie_value), not the data elements. If the arc for *a* should be before the arc for *b*, then the comparator must return a number less than zero; if the arc for *a* should be after the arc for *b*, then the comparator must return a number greater than zero; returning zero means that the relative order of *a* and *b* is unspecified. For example, to sort arcs by ascending value:
-
-```js
-pie.sortValues(function(a, b) { return a - b; });
-```
-
-Sorting does not affect the order of the [generated arc array](#_pie) which is always in the same order as the input data array; it merely affects the computed angles of each arc. The first arc starts at the [start angle](#pie_startAngle) and the last arc ends at the [end angle](#pie_endAngle).
-
-<a name="pie_startAngle" href="#pie_startAngle">#</a> <i>pie</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *angle* is specified, sets the overall start angle of the pie to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:
-
-```js
-function startAngle() {
-  return 0;
-}
-```
-
-The start angle here means the *overall* start angle of the pie, *i.e.*, the start angle of the first arc. The start angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-<a name="pie_endAngle" href="#pie_endAngle">#</a> <i>pie</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *angle* is specified, sets the overall end angle of the pie to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:
-
-```js
-function endAngle() {
-  return 2 * Math.PI;
-}
-```
-
-The end angle here means the *overall* end angle of the pie, *i.e.*, the end angle of the last arc. The end angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-The value of the end angle is constrained to [startAngle](#pie_startAngle) ± τ, such that |endAngle - startAngle| ≤ τ.
-
-<a name="pie_padAngle" href="#pie_padAngle">#</a> <i>pie</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/pie.js)
-
-If *angle* is specified, sets the pad angle to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current pad angle accessor, which defaults to:
-
-```js
-function padAngle() {
-  return 0;
-}
-```
-
-The pad angle here means the angular separation between each adjacent arc. The total amount of padding reserved is the specified *angle* times the number of elements in the input data array, and at most |endAngle - startAngle|; the remaining space is then divided proportionally by [value](#pie_value) such that the relative area of each arc is preserved. See the [pie padding animation](http://bl.ocks.org/mbostock/3e961b4c97a1b543fff2) for illustration. The pad angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians.
-
-### Lines
-
-[<img width="295" height="154" alt="Line Chart" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/line.png">](https://observablehq.com/@d3/line-chart)
-
-The line generator produces a [spline](https://en.wikipedia.org/wiki/Spline_\(mathematics\)) or [polyline](https://en.wikipedia.org/wiki/Polygonal_chain), as in a line chart. Lines also appear in many other visualization types, such as the links in [hierarchical edge bundling](https://observablehq.com/@d3/hierarchical-edge-bundling).
-
-<a name="line" href="#line">#</a> d3.<b>line</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-Constructs a new line generator with the default settings.
-
-<a name="_line" href="#_line">#</a> <i>line</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-Generates a line for the given array of *data*. Depending on this line generator’s associated [curve](#line_curve), the given input *data* may need to be sorted by *x*-value before being passed to the line generator. If the line generator has a [context](#line_context), then the line is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="line_x" href="#line_x">#</a> <i>line</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *x* is specified, sets the x accessor to the specified function or number and returns this line generator. If *x* is not specified, returns the current x accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-When a line is [generated](#_line), the x accessor will be invoked for each [defined](#line_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default x accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor. For example, if `x` is a [time scale](https://github.com/d3/d3-scale#time-scales) and `y` is a [linear scale](https://github.com/d3/d3-scale#linear-scales):
-
-```js
-var data = [
-  {date: new Date(2007, 3, 24), value: 93.24},
-  {date: new Date(2007, 3, 25), value: 95.35},
-  {date: new Date(2007, 3, 26), value: 98.84},
-  {date: new Date(2007, 3, 27), value: 99.92},
-  {date: new Date(2007, 3, 30), value: 99.80},
-  {date: new Date(2007, 4,  1), value: 99.47},
-  …
-];
-
-var line = d3.line()
-    .x(function(d) { return x(d.date); })
-    .y(function(d) { return y(d.value); });
-```
-
-<a name="line_y" href="#line_y">#</a> <i>line</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *y* is specified, sets the y accessor to the specified function or number and returns this line generator. If *y* is not specified, returns the current y accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-When a line is [generated](#_line), the y accessor will be invoked for each [defined](#line_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default y accessor assumes that the input data are two-element arrays of numbers. See [*line*.x](#line_x) for more information.
-
-<a name="line_defined" href="#line_defined">#</a> <i>line</i>.<b>defined</b>([<i>defined</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *defined* is specified, sets the defined accessor to the specified function or boolean and returns this line generator. If *defined* is not specified, returns the current defined accessor, which defaults to:
-
-```js
-function defined() {
-  return true;
-}
-```
-
-The default accessor thus assumes that the input data is always defined. When a line is [generated](#_line), the defined accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. If the given element is defined (*i.e.*, if the defined accessor returns a truthy value for this element), the [x](#line_x) and [y](#line_y) accessors will subsequently be evaluated and the point will be added to the current line segment. Otherwise, the element will be skipped, the current line segment will be ended, and a new line segment will be generated for the next defined point. As a result, the generated line may have several discrete segments. For example:
-
-[<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/line-defined.png" width="480" height="250" alt="Line with Missing Data">](http://bl.ocks.org/mbostock/0533f44f2cfabecc5e3a)
-
-Note that if a line segment consists of only a single point, it may appear invisible unless rendered with rounded or square [line caps](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap). In addition, some curves such as [curveCardinalOpen](#curveCardinalOpen) only render a visible segment if it contains multiple points.
-
-<a name="line_curve" href="#line_curve">#</a> <i>line</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *curve* is specified, sets the [curve factory](#curves) and returns this line generator. If *curve* is not specified, returns the current curve factory, which defaults to [curveLinear](#curveLinear).
-
-<a name="line_context" href="#line_context">#</a> <i>line</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *context* is specified, sets the context and returns this line generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated line](#_line) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated line is returned.
-
-<a name="lineRadial" href="#lineRadial">#</a> d3.<b>lineRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/lineRadial.js), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-<img alt="Radial Line" width="250" height="250" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/line-radial.png">
-
-Constructs a new radial line generator with the default settings. A radial line generator is equivalent to the standard Cartesian [line generator](#line), except the [x](#line_x) and [y](#line_y) accessors are replaced with [angle](#lineRadial_angle) and [radius](#lineRadial_radius) accessors. Radial lines are always positioned relative to ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to change the origin.
-
-<a name="_lineRadial" href="#_lineRadial">#</a> <i>lineRadial</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/lineRadial.js#L4), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*](#_line).
-
-<a name="lineRadial_angle" href="#lineRadial_angle">#</a> <i>lineRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/lineRadial.js#L7), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.x](#line_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="lineRadial_radius" href="#lineRadial_radius">#</a> <i>lineRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/lineRadial.js#L8), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.y](#line_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="lineRadial_defined" href="#lineRadial_defined">#</a> <i>lineRadial</i>.<b>defined</b>([<i>defined</i>])
-
-Equivalent to [*line*.defined](#line_defined).
-
-<a name="lineRadial_curve" href="#lineRadial_curve">#</a> <i>lineRadial</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/lineRadial.js), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.curve](#line_curve). Note that [curveMonotoneX](#curveMonotoneX) or [curveMonotoneY](#curveMonotoneY) are not recommended for radial lines because they assume that the data is monotonic in *x* or *y*, which is typically untrue of radial lines.
-
-<a name="lineRadial_context" href="#lineRadial_context">#</a> <i>lineRadial</i>.<b>context</b>([<i>context</i>])
-
-Equivalent to [*line*.context](#line_context).
-
-### Areas
-
-[<img alt="Area Chart" width="295" height="154" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/area.png">](https://observablehq.com/@d3/area-chart)[<img alt="Stacked Area Chart" width="295" height="154" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/area-stacked.png">](https://observablehq.com/@d3/stacked-area-chart)[<img alt="Difference Chart" width="295" height="154" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/area-difference.png">](https://observablehq.com/@d3/difference-chart)
-
-The area generator produces an area, as in an area chart. An area is defined by two bounding [lines](#lines), either splines or polylines. Typically, the two lines share the same [*x*-values](#area_x) ([x0](#area_x0) = [x1](#area_x1)), differing only in *y*-value ([y0](#area_y0) and [y1](#area_y1)); most commonly, y0 is defined as a constant representing [zero](http://www.vox.com/2015/11/19/9758062/y-axis-zero-chart). The first line (the <i>topline</i>) is defined by x1 and y1 and is rendered first; the second line (the <i>baseline</i>) is defined by x0 and y0 and is rendered second, with the points in reverse order. With a [curveLinear](#curveLinear) [curve](#area_curve), this produces a clockwise polygon.
-
-<a name="area" href="#area">#</a> d3.<b>area</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-Constructs a new area generator with the default settings.
-
-<a name="_area" href="#_area">#</a> <i>area</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-Generates an area for the given array of *data*. Depending on this area generator’s associated [curve](#area_curve), the given input *data* may need to be sorted by *x*-value before being passed to the area generator. If the area generator has a [context](#line_context), then the area is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="area_x" href="#area_x">#</a> <i>area</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *x* is specified, sets [x0](#area_x0) to *x* and [x1](#area_x1) to null and returns this area generator. If *x* is not specified, returns the current x0 accessor.
-
-<a name="area_x0" href="#area_x0">#</a> <i>area</i>.<b>x0</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *x* is specified, sets the x0 accessor to the specified function or number and returns this area generator. If *x* is not specified, returns the current x0 accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-When an area is [generated](#_area), the x0 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default x0 accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor. For example, if `x` is a [time scale](https://github.com/d3/d3-scale#time-scales) and `y` is a [linear scale](https://github.com/d3/d3-scale#linear-scales):
-
-```js
-var data = [
-  {date: new Date(2007, 3, 24), value: 93.24},
-  {date: new Date(2007, 3, 25), value: 95.35},
-  {date: new Date(2007, 3, 26), value: 98.84},
-  {date: new Date(2007, 3, 27), value: 99.92},
-  {date: new Date(2007, 3, 30), value: 99.80},
-  {date: new Date(2007, 4,  1), value: 99.47},
-  …
-];
-
-var area = d3.area()
-    .x(function(d) { return x(d.date); })
-    .y1(function(d) { return y(d.value); })
-    .y0(y(0));
-```
-
-<a name="area_x1" href="#area_x1">#</a> <i>area</i>.<b>x1</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *x* is specified, sets the x1 accessor to the specified function or number and returns this area generator. If *x* is not specified, returns the current x1 accessor, which defaults to null, indicating that the previously-computed [x0](#area_x0) value should be reused for the x1 value.
-
-When an area is [generated](#_area), the x1 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_y" href="#area_y">#</a> <i>area</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *y* is specified, sets [y0](#area_y0) to *y* and [y1](#area_y1) to null and returns this area generator. If *y* is not specified, returns the current y0 accessor.
-
-<a name="area_y0" href="#area_y0">#</a> <i>area</i>.<b>y0</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *y* is specified, sets the y0 accessor to the specified function or number and returns this area generator. If *y* is not specified, returns the current y0 accessor, which defaults to:
-
-```js
-function y() {
-  return 0;
-}
-```
-
-When an area is [generated](#_area), the y0 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_y1" href="#area_y1">#</a> <i>area</i>.<b>y1</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *y* is specified, sets the y1 accessor to the specified function or number and returns this area generator. If *y* is not specified, returns the current y1 accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-A null accessor is also allowed, indicating that the previously-computed [y0](#area_y0) value should be reused for the y1 value. When an area is [generated](#_area), the y1 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_defined" href="#area_defined">#</a> <i>area</i>.<b>defined</b>([<i>defined</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *defined* is specified, sets the defined accessor to the specified function or boolean and returns this area generator. If *defined* is not specified, returns the current defined accessor, which defaults to:
-
-```js
-function defined() {
-  return true;
-}
-```
-
-The default accessor thus assumes that the input data is always defined. When an area is [generated](#_area), the defined accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. If the given element is defined (*i.e.*, if the defined accessor returns a truthy value for this element), the [x0](#area_x0), [x1](#area_x1), [y0](#area_y0) and [y1](#area_y1) accessors will subsequently be evaluated and the point will be added to the current area segment. Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point. As a result, the generated area may have several discrete segments. For example:
-
-[<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/area-defined.png" width="480" height="250" alt="Area with Missing Data">](http://bl.ocks.org/mbostock/3035090)
-
-Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square [line caps](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap). In addition, some curves such as [curveCardinalOpen](#curveCardinalOpen) only render a visible segment if it contains multiple points.
-
-<a name="area_curve" href="#area_curve">#</a> <i>area</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *curve* is specified, sets the [curve factory](#curves) and returns this area generator. If *curve* is not specified, returns the current curve factory, which defaults to [curveLinear](#curveLinear).
-
-<a name="area_context" href="#area_context">#</a> <i>area</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-If *context* is specified, sets the context and returns this area generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated area](#_area) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated area is returned.
-
-<a name="area_lineX0" href="#area_lineX0">#</a> <i>area</i>.<b>lineX0</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-<br><a name="area_lineY0" href="#area_lineY0">#</a> <i>area</i>.<b>lineY0</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x0*-accessor](#area_x0), and the line’s [*y*-accessor](#line_y) is this area’s [*y0*-accessor](#area_y0).
-
-<a name="area_lineX1" href="#area_lineX1">#</a> <i>area</i>.<b>lineX1</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x1*-accessor](#area_x1), and the line’s [*y*-accessor](#line_y) is this area’s [*y0*-accessor](#area_y0).
-
-<a name="area_lineY1" href="#area_lineY1">#</a> <i>area</i>.<b>lineY1</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x0*-accessor](#area_x0), and the line’s [*y*-accessor](#line_y) is this area’s [*y1*-accessor](#area_y1).
-
-<a name="areaRadial" href="#areaRadial">#</a> d3.<b>areaRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-<img alt="Radial Area" width="250" height="250" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/area-radial.png">
-
-Constructs a new radial area generator with the default settings. A radial area generator is equivalent to the standard Cartesian [area generator](#area), except the [x](#area_x) and [y](#area_y) accessors are replaced with [angle](#areaRadial_angle) and [radius](#areaRadial_radius) accessors. Radial areas are always positioned relative to ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to change the origin.
-
-<a name="_areaRadial" href="#_areaRadial">#</a> <i>areaRadial</i>(<i>data</i>)
-
-Equivalent to [*area*](#_area).
-
-<a name="areaRadial_angle" href="#areaRadial_angle">#</a> <i>areaRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.x](#area_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="areaRadial_startAngle" href="#areaRadial_startAngle">#</a> <i>areaRadial</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.x0](#area_x0), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock). Note: typically [angle](#areaRadial_angle) is used instead of setting separate start and end angles.
-
-<a name="areaRadial_endAngle" href="#areaRadial_endAngle">#</a> <i>areaRadial</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.x1](#area_x1), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock). Note: typically [angle](#areaRadial_angle) is used instead of setting separate start and end angles.
-
-<a name="areaRadial_radius" href="#areaRadial_radius">#</a> <i>areaRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.y](#area_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_innerRadius" href="#areaRadial_innerRadius">#</a> <i>areaRadial</i>.<b>innerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.y0](#area_y0), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_outerRadius" href="#areaRadial_outerRadius">#</a> <i>areaRadial</i>.<b>outerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.y1](#area_y1), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_defined" href="#areaRadial_defined">#</a> <i>areaRadial</i>.<b>defined</b>([<i>defined</i>])
-
-Equivalent to [*area*.defined](#area_defined).
-
-<a name="areaRadial_curve" href="#areaRadial_curve">#</a> <i>areaRadial</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Equivalent to [*area*.curve](#area_curve). Note that [curveMonotoneX](#curveMonotoneX) or [curveMonotoneY](#curveMonotoneY) are not recommended for radial areas because they assume that the data is monotonic in *x* or *y*, which is typically untrue of radial areas.
-
-<a name="areaRadial_context" href="#areaRadial_context">#</a> <i>areaRadial</i>.<b>context</b>([<i>context</i>])
-
-Equivalent to [*line*.context](#line_context).
-
-<a name="areaRadial_lineStartAngle" href="#areaRadial_lineStartAngle">#</a> <i>areaRadial</i>.<b>lineStartAngle</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-<br><a name="areaRadial_lineInnerRadius" href="#areaRadial_lineInnerRadius">#</a> <i>areaRadial</i>.<b>lineInnerRadius</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [start angle accessor](#areaRadial_startAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [inner radius accessor](#areaRadial_innerRadius).
-
-<a name="areaRadial_lineEndAngle" href="#areaRadial_lineEndAngle">#</a> <i>areaRadial</i>.<b>lineEndAngle</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [end angle accessor](#areaRadial_endAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [inner radius accessor](#areaRadial_innerRadius).
-
-<a name="areaRadial_lineOuterRadius" href="#areaRadial_lineOuterRadius">#</a> <i>areaRadial</i>.<b>lineOuterRadius</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [start angle accessor](#areaRadial_startAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [outer radius accessor](#areaRadial_outerRadius).
-
-### Curves
-
-While [lines](#lines) are defined as a sequence of two-dimensional [*x*, *y*] points, and [areas](#areas) are similarly defined by a topline and a baseline, there remains the task of transforming this discrete representation into a continuous shape: *i.e.*, how to interpolate between the points. A variety of curves are provided for this purpose.
-
-Curves are typically not constructed or used directly, instead being passed to [*line*.curve](#line_curve) and [*area*.curve](#area_curve). For example:
-
-```js
-var line = d3.line()
-    .x(function(d) { return x(d.date); })
-    .y(function(d) { return y(d.value); })
-    .curve(d3.curveCatmullRom.alpha(0.5));
-```
-
-<a name="curveBasis" href="#curveBasis">#</a> d3.<b>curveBasis</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/basis.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/basis.png" width="888" height="240" alt="basis">
-
-Produces a cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. The first and last points are triplicated such that the spline starts at the first point and ends at the last point, and is tangent to the line between the first and second points, and to the line between the penultimate and last points.
-
-<a name="curveBasisClosed" href="#curveBasisClosed">#</a> d3.<b>curveBasisClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/basisClosed.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/basisClosed.png" width="888" height="240" alt="basisClosed">
-
-Produces a closed cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. When a line segment ends, the first three control points are repeated, producing a closed loop with C2 continuity.
-
-<a name="curveBasisOpen" href="#curveBasisOpen">#</a> d3.<b>curveBasisOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/basisOpen.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/basisOpen.png" width="888" height="240" alt="basisOpen">
-
-Produces a cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. Unlike [basis](#basis), the first and last points are not repeated, and thus the curve typically does not intersect these points.
-
-<a name="curveBundle" href="#curveBundle">#</a> d3.<b>curveBundle</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/bundle.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/bundle.png" width="888" height="240" alt="bundle">
-
-Produces a straightened cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points, with the spline straightened according to the curve’s [*beta*](#curveBundle_beta), which defaults to 0.85. This curve is typically used in [hierarchical edge bundling](https://observablehq.com/@d3/hierarchical-edge-bundling) to disambiguate connections, as proposed by [Danny Holten](https://www.win.tue.nl/vis1/home/dholten/) in [Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data](https://www.win.tue.nl/vis1/home/dholten/papers/bundles_infovis.pdf). This curve does not implement [*curve*.areaStart](#curve_areaStart) and [*curve*.areaEnd](#curve_areaEnd); it is intended to work with [d3.line](#lines), not [d3.area](#areas).
-
-<a name="curveBundle_beta" href="#curveBundle_beta">#</a> <i>bundle</i>.<b>beta</b>(<i>beta</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/bundle.js)
-
-Returns a bundle curve with the specified *beta* in the range [0, 1], representing the bundle strength. If *beta* equals zero, a straight line between the first and last point is produced; if *beta* equals one, a standard [basis](#basis) spline is produced. For example:
-
-```js
-var line = d3.line().curve(d3.curveBundle.beta(0.5));
-```
-
-<a name="curveCardinal" href="#curveCardinal">#</a> d3.<b>curveCardinal</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/cardinal.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/cardinal.png" width="888" height="240" alt="cardinal">
-
-Produces a cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points, with one-sided differences used for the first and last piece. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinalClosed" href="#curveCardinalClosed">#</a> d3.<b>curveCardinalClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/cardinalClosed.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/cardinalClosed.png" width="888" height="240" alt="cardinalClosed">
-
-Produces a closed cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points. When a line segment ends, the first three control points are repeated, producing a closed loop. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinalOpen" href="#curveCardinalOpen">#</a> d3.<b>curveCardinalOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/cardinalOpen.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/cardinalOpen.png" width="888" height="240" alt="cardinalOpen">
-
-Produces a cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points. Unlike [curveCardinal](#curveCardinal), one-sided differences are not used for the first and last piece, and thus the curve starts at the second point and ends at the penultimate point. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinal_tension" href="#curveCardinal_tension">#</a> <i>cardinal</i>.<b>tension</b>(<i>tension</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/cardinalOpen.js)
-
-Returns a cardinal curve with the specified *tension* in the range [0, 1]. The *tension* determines the length of the tangents: a *tension* of one yields all zero tangents, equivalent to [curveLinear](#curveLinear); a *tension* of zero produces a uniform [Catmull–Rom](#curveCatmullRom) spline. For example:
-
-```js
-var line = d3.line().curve(d3.curveCardinal.tension(0.5));
-```
-
-<a name="curveCatmullRom" href="#curveCatmullRom">#</a> d3.<b>curveCatmullRom</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/catmullRom.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/catmullRom.png" width="888" height="240" alt="catmullRom">
-
-Produces a cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. in [On the Parameterization of Catmull–Rom Curves](http://www.cemyuksel.com/research/catmullrom_param/), with one-sided differences used for the first and last piece.
-
-<a name="curveCatmullRomClosed" href="#curveCatmullRomClosed">#</a> d3.<b>curveCatmullRomClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/catmullRomClosed.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/catmullRomClosed.png" width="888" height="330" alt="catmullRomClosed">
-
-Produces a closed cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. When a line segment ends, the first three control points are repeated, producing a closed loop.
-
-<a name="curveCatmullRomOpen" href="#curveCatmullRomOpen">#</a> d3.<b>curveCatmullRomOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/catmullRomOpen.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/catmullRomOpen.png" width="888" height="240" alt="catmullRomOpen">
-
-Produces a cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. Unlike [curveCatmullRom](#curveCatmullRom), one-sided differences are not used for the first and last piece, and thus the curve starts at the second point and ends at the penultimate point.
-
-<a name="curveCatmullRom_alpha" href="#curveCatmullRom_alpha">#</a> <i>catmullRom</i>.<b>alpha</b>(<i>alpha</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/catmullRom.js)
-
-Returns a cubic Catmull–Rom curve with the specified *alpha* in the range [0, 1]. If *alpha* is zero, produces a uniform spline, equivalent to [curveCardinal](#curveCardinal) with a tension of zero; if *alpha* is one, produces a chordal spline; if *alpha* is 0.5, produces a [centripetal spline](https://en.wikipedia.org/wiki/Centripetal_Catmull–Rom_spline). Centripetal splines are recommended to avoid self-intersections and overshoot. For example:
-
-```js
-var line = d3.line().curve(d3.curveCatmullRom.alpha(0.5));
-```
-
-<a name="curveLinear" href="#curveLinear">#</a> d3.<b>curveLinear</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/linear.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/linear.png" width="888" height="240" alt="linear">
-
-Produces a polyline through the specified points.
-
-<a name="curveLinearClosed" href="#curveLinearClosed">#</a> d3.<b>curveLinearClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/linearClosed.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/linearClosed.png" width="888" height="240" alt="linearClosed">
-
-Produces a closed polyline through the specified points by repeating the first point when the line segment ends.
-
-<a name="curveMonotoneX" href="#curveMonotoneX">#</a> d3.<b>curveMonotoneX</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/monotone.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/monotoneX.png" width="888" height="240" alt="monotoneX">
-
-Produces a cubic spline that [preserves monotonicity](https://en.wikipedia.org/wiki/Monotone_cubic_interpolation) in *y*, assuming monotonicity in *x*, as proposed by Steffen in [A simple method for monotonic interpolation in one dimension](http://adsabs.harvard.edu/full/1990A%26A...239..443S): “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations. Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
-
-<a name="curveMonotoneY" href="#curveMonotoneY">#</a> d3.<b>curveMonotoneY</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/monotone.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/monotoneY.png" width="888" height="240" alt="monotoneY">
-
-Produces a cubic spline that [preserves monotonicity](https://en.wikipedia.org/wiki/Monotone_cubic_interpolation) in *x*, assuming monotonicity in *y*, as proposed by Steffen in [A simple method for monotonic interpolation in one dimension](http://adsabs.harvard.edu/full/1990A%26A...239..443S): “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations. Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
-
-<a name="curveNatural" href="#curveNatural">#</a> d3.<b>curveNatural</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/natural.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/natural.png" width="888" height="240" alt="natural">
-
-Produces a [natural](https://en.wikipedia.org/wiki/Spline_interpolation) [cubic spline](http://mathworld.wolfram.com/CubicSpline.html) with the second derivative of the spline set to zero at the endpoints.
-
-<a name="curveStep" href="#curveStep">#</a> d3.<b>curveStep</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/step.png" width="888" height="240" alt="step">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes at the midpoint of each pair of adjacent *x*-values.
-
-<a name="curveStepAfter" href="#curveStepAfter">#</a> d3.<b>curveStepAfter</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/stepAfter.png" width="888" height="240" alt="stepAfter">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes after the *x*-value.
-
-<a name="curveStepBefore" href="#curveStepBefore">#</a> d3.<b>curveStepBefore</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-<img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/stepBefore.png" width="888" height="240" alt="stepBefore">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes before the *x*-value.
-
-### Custom Curves
-
-Curves are typically not used directly, instead being passed to [*line*.curve](#line_curve) and [*area*.curve](#area_curve). However, you can define your own curve implementation should none of the built-in curves satisfy your needs using the following interface. You can also use this low-level interface with a built-in curve type as an alternative to the line and area generators.
-
-<a name="curve_areaStart" href="#curve_areaStart">#</a> <i>curve</i>.<b>areaStart</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js#L7)
-
-Indicates the start of a new area segment. Each area segment consists of exactly two [line segments](#curve_lineStart): the topline, followed by the baseline, with the baseline points in reverse order.
-
-<a name="curve_areaEnd" href="#curve_areaEnd">#</a> <i>curve</i>.<b>areaEnd</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-Indicates the end of the current area segment.
-
-<a name="curve_lineStart" href="#curve_lineStart">#</a> <i>curve</i>.<b>lineStart</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-Indicates the start of a new line segment. Zero or more [points](#curve_point) will follow.
-
-<a name="curve_lineEnd" href="#curve_lineEnd">#</a> <i>curve</i>.<b>lineEnd</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-Indicates the end of the current line segment.
-
-<a name="curve_point" href="#curve_point">#</a> <i>curve</i>.<b>point</b>(<i>x</i>, <i>y</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/curve/step.js)
-
-Indicates a new point in the current line segment with the given *x*- and *y*-values.
-
-### Links
-
-[<img alt="Tidy Tree" src="https://raw.githubusercontent.com/d3/d3-hierarchy/master/img/tree.png">](https://observablehq.com/@d3/tidy-tree)
-
-The **link** shape generates a smooth cubic Bézier curve from a source point to a target point. The tangents of the curve at the start and end are either [vertical](#linkVertical), [horizontal](#linkHorizontal) or [radial](#linkRadial).
-
-<a name="linkVertical" href="#linkVertical">#</a> d3.<b>linkVertical</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Returns a new [link generator](#_link) with vertical tangents. For example, to visualize [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted on the top edge of the display, you might say:
-
-```js
-var link = d3.linkVertical()
-    .x(function(d) { return d.x; })
-    .y(function(d) { return d.y; });
-```
-
-<a name="linkHorizontal" href="#linkHorizontal">#</a> d3.<b>linkHorizontal</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Returns a new [link generator](#_link) with horizontal tangents. For example, to visualize [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted on the left edge of the display, you might say:
-
-```js
-var link = d3.linkHorizontal()
-    .x(function(d) { return d.y; })
-    .y(function(d) { return d.x; });
-```
-
-<a href="#_link" name="_link">#</a> <i>link</i>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Generates a link for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the link generator’s accessor functions along with the `this` object. For example, with the default settings, an object expected:
-
-```js
-link({
-  source: [100, 100],
-  target: [300, 300]
-});
-```
-
-<a name="link_source" href="#link_source">#</a> <i>link</i>.<b>source</b>([<i>source</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-If *source* is specified, sets the source accessor to the specified function and returns this link generator. If *source* is not specified, returns the current source accessor, which defaults to:
-
-```js
-function source(d) {
-  return d.source;
-}
-```
-
-<a name="link_target" href="#link_target">#</a> <i>link</i>.<b>target</b>([<i>target</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-If *target* is specified, sets the target accessor to the specified function and returns this link generator. If *target* is not specified, returns the current target accessor, which defaults to:
-
-```js
-function target(d) {
-  return d.target;
-}
-```
-
-<a name="link_x" href="#link_x">#</a> <i>link</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-If *x* is specified, sets the *x*-accessor to the specified function or number and returns this link generator. If *x* is not specified, returns the current *x*-accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-<a name="link_y" href="#link_y">#</a> <i>link</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-If *y* is specified, sets the *y*-accessor to the specified function or number and returns this link generator. If *y* is not specified, returns the current *y*-accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-<a name="link_context" href="#link_context">#</a> <i>link</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-If *context* is specified, sets the context and returns this link generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated link](#_link) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated link is returned. See also [d3-path](https://github.com/d3/d3-path).
-
-<a name="linkRadial" href="#linkRadial">#</a> d3.<b>linkRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Returns a new [link generator](#_link) with radial tangents. For example, to visualize [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted in the center of the display, you might say:
-
-```js
-var link = d3.linkRadial()
-    .angle(function(d) { return d.x; })
-    .radius(function(d) { return d.y; });
-```
-
-<a name="linkRadial_angle" href="#linkRadial_angle">#</a> <i>linkRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Equivalent to [*link*.x](#link_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="linkRadial_radius" href="#linkRadial_radius">#</a> <i>linkRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/link/index.js)
-
-Equivalent to [*link*.y](#link_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-### Symbols
-
-<a href="#symbolCircle"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/circle.png" width="100" height="100"></a><a href="#symbolCross"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/cross.png" width="100" height="100"></a><a href="#symbolDiamond"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/diamond.png" width="100" height="100"></a><a href="#symbolSquare"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/square.png" width="100" height="100"></a><a href="#symbolStar"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/star.png" width="100" height="100"></a><a href="#symbolTriangle"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/triangle.png" width="100" height="100"><a href="#symbolWye"><img src="https://raw.githubusercontent.com/d3/d3-shape/master/img/wye.png" width="100" height="100"></a>
-
-Symbols provide a categorical shape encoding as is commonly used in scatterplots. Symbols are always centered at ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to move the symbol to a different position.
-
-<a name="symbol" href="#symbol">#</a> d3.<b>symbol</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol.js)
-
-Constructs a new symbol generator with the default settings.
-
-<a name="_symbol" href="#_symbol">#</a> <i>symbol</i>(<i>arguments</i>…) · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol.js)
-
-Generates a symbol for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the symbol generator’s accessor functions along with the `this` object. For example, with the default settings, no arguments are needed to produce a circle with area 64 square pixels. If the symbol generator has a [context](#symbol_context), then the symbol is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="symbol_type" href="#symbol_type">#</a> <i>symbol</i>.<b>type</b>([<i>type</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol.js)
-
-If *type* is specified, sets the symbol type to the specified function or symbol type and returns this symbol generator. If *type* is a function, the symbol generator’s arguments and *this* are passed through. (See [*selection*.attr](https://github.com/d3/d3-selection/blob/master/README.md#selection_attr) if you are using d3-selection.) If *type* is not specified, returns the current symbol type accessor, which defaults to:
-
-```js
-function type() {
-  return circle;
-}
-```
-
-See [symbols](#symbols) for the set of built-in symbol types. To implement a custom symbol type, pass an object that implements [*symbolType*.draw](#symbolType_draw).
-
-<a name="symbol_size" href="#symbol_size">#</a> <i>symbol</i>.<b>size</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol.js)
-
-If *size* is specified, sets the size to the specified function or number and returns this symbol generator. If *size* is a function, the symbol generator’s arguments and *this* are passed through. (See [*selection*.attr](https://github.com/d3/d3-selection/blob/master/README.md#selection_attr) if you are using d3-selection.) If *size* is not specified, returns the current size accessor, which defaults to:
-
-```js
-function size() {
-  return 64;
-}
-```
-
-Specifying the size as a function is useful for constructing a scatterplot with a size encoding. If you wish to scale the symbol to fit a given bounding box, rather than by area, try [SVG’s getBBox](https://observablehq.com/d/1fac2626b9e1b65f).
-
-<a name="symbol_context" href="#symbol_context">#</a> <i>symbol</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol.js)
-
-If *context* is specified, sets the context and returns this symbol generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated symbol](#_symbol) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated symbol is returned.
-
-<a name="symbols" href="#symbols">#</a> d3.<b>symbols</b>
-
-An array containing the set of all built-in symbol types: [circle](#symbolCircle), [cross](#symbolCross), [diamond](#symbolDiamond), [square](#symbolSquare), [star](#symbolStar), [triangle](#symbolTriangle), and [wye](#symbolWye). Useful for constructing the range of an [ordinal scale](https://github.com/d3/d3-scale#ordinal-scales) should you wish to use a shape encoding for categorical data.
-
-<a name="symbolCircle" href="#symbolCircle">#</a> d3.<b>symbolCircle</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/circle.js)
-
-The circle symbol type.
-
-<a name="symbolCross" href="#symbolCross">#</a> d3.<b>symbolCross</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/cross.js)
-
-The Greek cross symbol type, with arms of equal length.
-
-<a name="symbolDiamond" href="#symbolDiamond">#</a> d3.<b>symbolDiamond</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/diamond.js)
-
-The rhombus symbol type.
-
-<a name="symbolSquare" href="#symbolSquare">#</a> d3.<b>symbolSquare</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/square.js)
-
-The square symbol type.
-
-<a name="symbolStar" href="#symbolStar">#</a> d3.<b>symbolStar</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/star.js)
-
-The pentagonal star (pentagram) symbol type.
-
-<a name="symbolTriangle" href="#symbolTriangle">#</a> d3.<b>symbolTriangle</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/triangle.js)
-
-The up-pointing triangle symbol type.
-
-<a name="symbolWye" href="#symbolWye">#</a> d3.<b>symbolWye</b> · [Source](https://github.com/d3/d3-shape/blob/master/src/symbol/wye.js)
-
-The Y-shape symbol type.
-
-<a name="pointRadial" href="#pointRadial">#</a> d3.<b>pointRadial</b>(<i>angle</i>, <i>radius</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/pointRadial.js)
-
-Returns the point [<i>x</i>, <i>y</i>] for the given *angle* in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise, and the given *radius*.
-
-### Custom Symbol Types
-
-Symbol types are typically not used directly, instead being passed to [*symbol*.type](#symbol_type). However, you can define your own symbol type implementation should none of the built-in types satisfy your needs using the following interface. You can also use this low-level interface with a built-in symbol type as an alternative to the symbol generator.
-
-<a name="symbolType_draw" href="#symbolType_draw">#</a> <i>symbolType</i>.<b>draw</b>(<i>context</i>, <i>size</i>)
-
-Renders this symbol type to the specified *context* with the specified *size* in square pixels. The *context* implements the [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods) interface. (Note that this is a subset of the CanvasRenderingContext2D interface!)
-
-### Stacks
-
-[<img alt="Stacked Bar Chart" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/stacked-bar.png" width="295" height="154">](https://observablehq.com/@d3/stacked-bar-chart)[<img alt="Streamgraph" src="https://raw.githubusercontent.com/d3/d3-shape/master/img/stacked-stream.png" width="295" height="154">](https://observablehq.com/@mbostock/streamgraph-transitions)
-
-Some shape types can be stacked, placing one shape adjacent to another. For example, a bar chart of monthly sales might be broken down into a multi-series bar chart by product category, stacking bars vertically. This is equivalent to subdividing a bar chart by an ordinal dimension (such as product category) and applying a color encoding.
-
-Stacked charts can show overall value and per-category value simultaneously; however, it is typically harder to compare across categories, as only the bottom layer of the stack is aligned. So, chose the [stack order](#stack_order) carefully, and consider a [streamgraph](#stackOffsetWiggle). (See also [grouped charts](https://observablehq.com/@d3/grouped-bar-chart).)
-
-Like the [pie generator](#pies), the stack generator does not produce a shape directly. Instead it computes positions which you can then pass to an [area generator](#areas) or use directly, say to position bars.
-
-<a name="stack" href="#stack">#</a> d3.<b>stack</b>() · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-Constructs a new stack generator with the default settings.
-
-<a name="_stack" href="#_stack">#</a> <i>stack</i>(<i>data</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-Generates a stack for the given array of *data*, returning an array representing each series. Any additional *arguments* are arbitrary; they are simply propagated to accessors along with the `this` object.
-
-The series are determined by the [keys accessor](#stack_keys); each series *i* in the returned array corresponds to the *i*th key. Each series is an array of points, where each point *j* corresponds to the *j*th element in the input *data*. Lastly, each point is represented as an array [*y0*, *y1*] where *y0* is the lower value (baseline) and *y1* is the upper value (topline); the difference between *y0* and *y1* corresponds to the computed [value](#stack_value) for this point. The key for each series is available as *series*.key, and the [index](#stack_order) as *series*.index. The input data element for each point is available as *point*.data.
-
-For example, consider the following table representing monthly sales of fruits:
-
-Month   | Apples | Bananas | Cherries | Dates
---------|--------|---------|----------|-------
- 1/2015 |   3840 |    1920 |      960 |   400
- 2/2015 |   1600 |    1440 |      960 |   400
- 3/2015 |    640 |     960 |      640 |   400
- 4/2015 |    320 |     480 |      640 |   400
-
-This might be represented in JavaScript as an array of objects:
-
-```js
-var data = [
-  {month: new Date(2015, 0, 1), apples: 3840, bananas: 1920, cherries: 960, dates: 400},
-  {month: new Date(2015, 1, 1), apples: 1600, bananas: 1440, cherries: 960, dates: 400},
-  {month: new Date(2015, 2, 1), apples:  640, bananas:  960, cherries: 640, dates: 400},
-  {month: new Date(2015, 3, 1), apples:  320, bananas:  480, cherries: 640, dates: 400}
-];
-```
-
-To produce a stack for this data:
-
-```js
-var stack = d3.stack()
-    .keys(["apples", "bananas", "cherries", "dates"])
-    .order(d3.stackOrderNone)
-    .offset(d3.stackOffsetNone);
-
-var series = stack(data);
-```
-
-The resulting array has one element per *series*. Each series has one point per month, and each point has a lower and upper value defining the baseline and topline:
-
-```js
-[
-  [[   0, 3840], [   0, 1600], [   0,  640], [   0,  320]], // apples
-  [[3840, 5760], [1600, 3040], [ 640, 1600], [ 320,  800]], // bananas
-  [[5760, 6720], [3040, 4000], [1600, 2240], [ 800, 1440]], // cherries
-  [[6720, 7120], [4000, 4400], [2240, 2640], [1440, 1840]], // dates
-]
-```
-
-Each series in then typically passed to an [area generator](#areas) to render an area chart, or used to construct rectangles for a bar chart.
-
-<a name="stack_keys" href="#stack_keys">#</a> <i>stack</i>.<b>keys</b>([<i>keys</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-If *keys* is specified, sets the keys accessor to the specified function or array and returns this stack generator. If *keys* is not specified, returns the current keys accessor, which defaults to the empty array. A series (layer) is [generated](#_stack) for each key. Keys are typically strings, but they may be arbitrary values. The series’ key is passed to the [value accessor](#stack_value), along with each data point, to compute the point’s value.
-
-<a name="stack_value" href="#stack_value">#</a> <i>stack</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-If *value* is specified, sets the value accessor to the specified function or number and returns this stack generator. If *value* is not specified, returns the current value accessor, which defaults to:
-
-```js
-function value(d, key) {
-  return d[key];
-}
-```
-
-Thus, by default the stack generator assumes that the input data is an array of objects, with each object exposing named properties with numeric values; see [*stack*](#_stack) for an example.
-
-<a name="stack_order" href="#stack_order">#</a> <i>stack</i>.<b>order</b>([<i>order</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-If *order* is specified, sets the order accessor to the specified function or array and returns this stack generator. If *order* is not specified, returns the current order acccesor, which defaults to [stackOrderNone](#stackOrderNone); this uses the order given by the [key accessor](#stack_key). See [stack orders](#stack-orders) for the built-in orders.
-
-If *order* is a function, it is passed the generated series array and must return an array of numeric indexes representing the stack order. For example, the default order is defined as:
-
-```js
-function orderNone(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
-```
-
-The stack order is computed prior to the [offset](#stack_offset); thus, the lower value for all points is zero at the time the order is computed. The index attribute for each series is also not set until after the order is computed.
-
-<a name="stack_offset" href="#stack_offset">#</a> <i>stack</i>.<b>offset</b>([<i>offset</i>]) · [Source](https://github.com/d3/d3-shape/blob/master/src/stack.js)
-
-If *offset* is specified, sets the offset accessor to the specified function or array and returns this stack generator. If *offset* is not specified, returns the current offset acccesor, which defaults to [stackOffsetNone](#stackOffsetNone); this uses a zero baseline. See [stack offsets](#stack-offsets) for the built-in offsets.
-
-If *offset* is a function, it is passed the generated series array and the order index array. The offset function is then responsible for updating the lower and upper values in the series array to layout the stack. For example, the default offset is defined as:
-
-```js
-function offsetNone(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (var j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = s0[j][1];
-    }
-  }
-}
-```
-
-### Stack Orders
-
-Stack orders are typically not used directly, but are instead passed to [*stack*.order](#stack_order).
-
-<a name="stackOrderAppearance" href="#stackOrderAppearance">#</a> d3.<b>stackOrderAppearance</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/appearance.js)
-
-Returns a series order such that the earliest series (according to the maximum value) is at the bottom.
-
-<a name="stackOrderAscending" href="#stackOrderAscending">#</a> d3.<b>stackOrderAscending</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/ascending.js)
-
-Returns a series order such that the smallest series (according to the sum of values) is at the bottom.
-
-<a name="stackOrderDescending" href="#stackOrderDescending">#</a> d3.<b>stackOrderDescending</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/descending.js)
-
-Returns a series order such that the largest series (according to the sum of values) is at the bottom.
-
-<a name="stackOrderInsideOut" href="#stackOrderInsideOut">#</a> d3.<b>stackOrderInsideOut</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/insideOut.js)
-
-Returns a series order such that the earliest series (according to the maximum value) are on the inside and the later series are on the outside. This order is recommended for streamgraphs in conjunction with the [wiggle offset](#stackOffsetWiggle). See [Stacked Graphs—Geometry & Aesthetics](http://leebyron.com/streamgraph/) by Byron & Wattenberg for more information.
-
-<a name="stackOrderNone" href="#stackOrderNone">#</a> d3.<b>stackOrderNone</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/none.js)
-
-Returns the given series order [0, 1, … *n* - 1] where *n* is the number of elements in *series*. Thus, the stack order is given by the [key accessor](#stack_keys).
-
-<a name="stackOrderReverse" href="#stackOrderReverse">#</a> d3.<b>stackOrderReverse</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/order/reverse.js)
-
-Returns the reverse of the given series order [*n* - 1, *n* - 2, … 0] where *n* is the number of elements in *series*. Thus, the stack order is given by the reverse of the [key accessor](#stack_keys).
-
-### Stack Offsets
-
-Stack offsets are typically not used directly, but are instead passed to [*stack*.offset](#stack_offset).
-
-<a name="stackOffsetExpand" href="#stackOffsetExpand">#</a> d3.<b>stackOffsetExpand</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/expand.js)
-
-Applies a zero baseline and normalizes the values for each point such that the topline is always one.
-
-<a name="stackOffsetDiverging" href="#stackOffsetDiverging">#</a> d3.<b>stackOffsetDiverging</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/diverging.js)
-
-Positive values are stacked above zero, negative values are [stacked below zero](https://bl.ocks.org/mbostock/b5935342c6d21928111928401e2c8608), and zero values are stacked at zero.
-
-<a name="stackOffsetNone" href="#stackOffsetNone">#</a> d3.<b>stackOffsetNone</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/none.js)
-
-Applies a zero baseline.
-
-<a name="stackOffsetSilhouette" href="#stackOffsetSilhouette">#</a> d3.<b>stackOffsetSilhouette</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/silhouette.js)
-
-Shifts the baseline down such that the center of the streamgraph is always at zero.
-
-<a name="stackOffsetWiggle" href="#stackOffsetWiggle">#</a> d3.<b>stackOffsetWiggle</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/wiggle.js)
-
-Shifts the baseline so as to minimize the weighted wiggle of layers. This offset is recommended for streamgraphs in conjunction with the [inside-out order](#stackOrderInsideOut). See [Stacked Graphs—Geometry & Aesthetics](http://leebyron.com/streamgraph/) by Bryon & Wattenberg for more information.
Index: de_modules/d3-sankey/node_modules/d3-shape/dist/d3-shape.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/dist/d3-shape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1949 +1,0 @@
-// https://d3js.org/d3-shape/ v1.3.7 Copyright 2019 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-path')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-path'], factory) :
-(global = global || self, factory(global.d3 = global.d3 || {}, global.d3));
-}(this, function (exports, d3Path) { 'use strict';
-
-function constant(x) {
-  return function constant() {
-    return x;
-  };
-}
-
-var abs = Math.abs;
-var atan2 = Math.atan2;
-var cos = Math.cos;
-var max = Math.max;
-var min = Math.min;
-var sin = Math.sin;
-var sqrt = Math.sqrt;
-
-var epsilon = 1e-12;
-var pi = Math.PI;
-var halfPi = pi / 2;
-var tau = 2 * pi;
-
-function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
-
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0, y10 = y1 - y0,
-      x32 = x3 - x2, y32 = y3 - y2,
-      t = y32 * x10 - x32 * y10;
-  if (t * t < epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-      y01 = y0 - y1,
-      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),
-      ox = lo * y01,
-      oy = -lo * x01,
-      x11 = x0 + ox,
-      y11 = y0 + oy,
-      x10 = x1 + ox,
-      y10 = y1 + oy,
-      x00 = (x11 + x10) / 2,
-      y00 = (y11 + y10) / 2,
-      dx = x10 - x11,
-      dy = y10 - y11,
-      d2 = dx * dx + dy * dy,
-      r = r1 - rc,
-      D = x11 * y10 - x10 * y11,
-      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),
-      cx0 = (D * dy - dx * d) / d2,
-      cy0 = (-D * dx - dy * d) / d2,
-      cx1 = (D * dy + dx * d) / d2,
-      cy1 = (-D * dx + dy * d) / d2,
-      dx0 = cx0 - x00,
-      dy0 = cy0 - y00,
-      dx1 = cx1 - x00,
-      dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-
-function arc() {
-  var innerRadius = arcInnerRadius,
-      outerRadius = arcOuterRadius,
-      cornerRadius = constant(0),
-      padRadius = null,
-      startAngle = arcStartAngle,
-      endAngle = arcEndAngle,
-      padAngle = arcPadAngle,
-      context = null;
-
-  function arc() {
-    var buffer,
-        r,
-        r0 = +innerRadius.apply(this, arguments),
-        r1 = +outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) - halfPi,
-        a1 = endAngle.apply(this, arguments) - halfPi,
-        da = abs(a1 - a0),
-        cw = a1 > a0;
-
-    if (!context) context = buffer = d3Path.path();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > tau - epsilon) {
-      context.moveTo(r1 * cos(a0), r1 * sin(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > epsilon) {
-        context.moveTo(r0 * cos(a1), r0 * sin(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-          a11 = a1,
-          a00 = a0,
-          a10 = a1,
-          da0 = da,
-          da1 = da,
-          ap = padAngle.apply(this, arguments) / 2,
-          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),
-          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-          rc0 = rc,
-          rc1 = rc,
-          t0,
-          t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > epsilon) {
-        var p0 = asin(rp / r0 * sin(ap)),
-            p1 = asin(rp / r1 * sin(ap));
-        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
-        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
-        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-
-      var x01 = r1 * cos(a01),
-          y01 = r1 * sin(a01),
-          x10 = r0 * cos(a10),
-          y10 = r0 * sin(a10);
-
-      // Apply rounded corners?
-      if (rc > epsilon) {
-        var x11 = r1 * cos(a11),
-            y11 = r1 * sin(a11),
-            x00 = r0 * cos(a00),
-            y00 = r0 * sin(a00),
-            oc;
-
-        // Restrict the corner radius according to the sector angle.
-        if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
-          var ax = x01 - oc[0],
-              ay = y01 - oc[1],
-              bx = x11 - oc[0],
-              by = y11 - oc[1],
-              kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),
-              lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-          rc0 = min(rc, (r0 - lc) / (kc - 1));
-          rc1 = min(rc, (r1 - lc) / (kc + 1));
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  arc.centroid = function() {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
-    return [cos(a) * r, sin(a) * r];
-  };
-
-  arc.innerRadius = function(_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
-  };
-
-  arc.outerRadius = function(_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
-  };
-
-  arc.cornerRadius = function(_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
-  };
-
-  arc.padRadius = function(_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
-  };
-
-  arc.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
-  };
-
-  arc.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
-  };
-
-  arc.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
-  };
-
-  arc.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
-  };
-
-  return arc;
-}
-
-function Linear(context) {
-  this._context = context;
-}
-
-Linear.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // proceed
-      default: this._context.lineTo(x, y); break;
-    }
-  }
-};
-
-function curveLinear(context) {
-  return new Linear(context);
-}
-
-function x(p) {
-  return p[0];
-}
-
-function y(p) {
-  return p[1];
-}
-
-function line() {
-  var x$1 = x,
-      y$1 = y,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null;
-
-  function line(data) {
-    var i,
-        n = data.length,
-        d,
-        defined0 = false,
-        buffer;
-
-    if (context == null) output = curve(buffer = d3Path.path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();
-        else output.lineEnd();
-      }
-      if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  line.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line) : x$1;
-  };
-
-  line.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line) : y$1;
-  };
-
-  line.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined;
-  };
-
-  line.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-
-  line.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-
-  return line;
-}
-
-function area() {
-  var x0 = x,
-      x1 = null,
-      y0 = constant(0),
-      y1 = y,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null;
-
-  function area(data) {
-    var i,
-        j,
-        k,
-        n = data.length,
-        d,
-        defined0 = false,
-        buffer,
-        x0z = new Array(n),
-        y0z = new Array(n);
-
-    if (context == null) output = curve(buffer = d3Path.path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  function arealine() {
-    return line().defined(defined).curve(curve).context(context);
-  }
-
-  area.x = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0;
-  };
-
-  area.x0 = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0;
-  };
-
-  area.x1 = function(_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1;
-  };
-
-  area.y = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0;
-  };
-
-  area.y0 = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0;
-  };
-
-  area.y1 = function(_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1;
-  };
-
-  area.lineX0 =
-  area.lineY0 = function() {
-    return arealine().x(x0).y(y0);
-  };
-
-  area.lineY1 = function() {
-    return arealine().x(x0).y(y1);
-  };
-
-  area.lineX1 = function() {
-    return arealine().x(x1).y(y0);
-  };
-
-  area.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined;
-  };
-
-  area.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-
-  area.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-
-  return area;
-}
-
-function descending(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-
-function identity(d) {
-  return d;
-}
-
-function pie() {
-  var value = identity,
-      sortValues = descending,
-      sort = null,
-      startAngle = constant(0),
-      endAngle = constant(tau),
-      padAngle = constant(0);
-
-  function pie(data) {
-    var i,
-        n = data.length,
-        j,
-        k,
-        sum = 0,
-        index = new Array(n),
-        arcs = new Array(n),
-        a0 = +startAngle.apply(this, arguments),
-        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),
-        a1,
-        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-        pa = p * (da < 0 ? -1 : 1),
-        v;
-
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
-    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-
-    return arcs;
-  }
-
-  pie.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value;
-  };
-
-  pie.sortValues = function(_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-
-  pie.sort = function(_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-
-  pie.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle;
-  };
-
-  pie.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle;
-  };
-
-  pie.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle;
-  };
-
-  return pie;
-}
-
-var curveRadialLinear = curveRadial(curveLinear);
-
-function Radial(curve) {
-  this._curve = curve;
-}
-
-Radial.prototype = {
-  areaStart: function() {
-    this._curve.areaStart();
-  },
-  areaEnd: function() {
-    this._curve.areaEnd();
-  },
-  lineStart: function() {
-    this._curve.lineStart();
-  },
-  lineEnd: function() {
-    this._curve.lineEnd();
-  },
-  point: function(a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-
-function curveRadial(curve) {
-
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-
-  radial._curve = curve;
-
-  return radial;
-}
-
-function lineRadial(l) {
-  var c = l.curve;
-
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-
-  l.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return l;
-}
-
-function lineRadial$1() {
-  return lineRadial(line().curve(curveRadialLinear));
-}
-
-function areaRadial() {
-  var a = area().curve(curveRadialLinear),
-      c = a.curve,
-      x0 = a.lineX0,
-      x1 = a.lineX1,
-      y0 = a.lineY0,
-      y1 = a.lineY1;
-
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
-  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
-  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
-  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;
-
-  a.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return a;
-}
-
-function pointRadial(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
-
-var slice = Array.prototype.slice;
-
-function linkSource(d) {
-  return d.source;
-}
-
-function linkTarget(d) {
-  return d.target;
-}
-
-function link(curve) {
-  var source = linkSource,
-      target = linkTarget,
-      x$1 = x,
-      y$1 = y,
-      context = null;
-
-  function link() {
-    var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
-    if (!context) context = buffer = d3Path.path();
-    curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  link.source = function(_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-
-  link.target = function(_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-
-  link.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), link) : x$1;
-  };
-
-  link.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), link) : y$1;
-  };
-
-  link.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), link) : context;
-  };
-
-  return link;
-}
-
-function curveHorizontal(context, x0, y0, x1, y1) {
-  context.moveTo(x0, y0);
-  context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
-}
-
-function curveVertical(context, x0, y0, x1, y1) {
-  context.moveTo(x0, y0);
-  context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
-}
-
-function curveRadial$1(context, x0, y0, x1, y1) {
-  var p0 = pointRadial(x0, y0),
-      p1 = pointRadial(x0, y0 = (y0 + y1) / 2),
-      p2 = pointRadial(x1, y0),
-      p3 = pointRadial(x1, y1);
-  context.moveTo(p0[0], p0[1]);
-  context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
-}
-
-function linkHorizontal() {
-  return link(curveHorizontal);
-}
-
-function linkVertical() {
-  return link(curveVertical);
-}
-
-function linkRadial() {
-  var l = link(curveRadial$1);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
-
-var circle = {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, tau);
-  }
-};
-
-var cross = {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
-
-var tan30 = Math.sqrt(1 / 3),
-    tan30_2 = tan30 * 2;
-
-var diamond = {
-  draw: function(context, size) {
-    var y = Math.sqrt(size / tan30_2),
-        x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
-
-var ka = 0.89081309152928522810,
-    kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),
-    kx = Math.sin(tau / 10) * kr,
-    ky = -Math.cos(tau / 10) * kr;
-
-var star = {
-  draw: function(context, size) {
-    var r = Math.sqrt(size * ka),
-        x = kx * r,
-        y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (var i = 1; i < 5; ++i) {
-      var a = tau * i / 5,
-          c = Math.cos(a),
-          s = Math.sin(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
-
-var square = {
-  draw: function(context, size) {
-    var w = Math.sqrt(size),
-        x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
-
-var sqrt3 = Math.sqrt(3);
-
-var triangle = {
-  draw: function(context, size) {
-    var y = -Math.sqrt(size / (sqrt3 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3 * y, -y);
-    context.lineTo(sqrt3 * y, -y);
-    context.closePath();
-  }
-};
-
-var c = -0.5,
-    s = Math.sqrt(3) / 2,
-    k = 1 / Math.sqrt(12),
-    a = (k / 2 + 1) * 3;
-
-var wye = {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / a),
-        x0 = r / 2,
-        y0 = r * k,
-        x1 = x0,
-        y1 = r * k + r,
-        x2 = -x1,
-        y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
-
-var symbols = [
-  circle,
-  cross,
-  diamond,
-  square,
-  star,
-  triangle,
-  wye
-];
-
-function symbol() {
-  var type = constant(circle),
-      size = constant(64),
-      context = null;
-
-  function symbol() {
-    var buffer;
-    if (!context) context = buffer = d3Path.path();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  symbol.type = function(_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type;
-  };
-
-  symbol.size = function(_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size;
-  };
-
-  symbol.context = function(_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-
-  return symbol;
-}
-
-function noop() {}
-
-function point(that, x, y) {
-  that._context.bezierCurveTo(
-    (2 * that._x0 + that._x1) / 3,
-    (2 * that._y0 + that._y1) / 3,
-    (that._x0 + 2 * that._x1) / 3,
-    (that._y0 + 2 * that._y1) / 3,
-    (that._x0 + 4 * that._x1 + x) / 6,
-    (that._y0 + 4 * that._y1 + y) / 6
-  );
-}
-
-function Basis(context) {
-  this._context = context;
-}
-
-Basis.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 3: point(this, this._x1, this._y1); // proceed
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basis(context) {
-  return new Basis(context);
-}
-
-function BasisClosed(context) {
-  this._context = context;
-}
-
-BasisClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x2, this._y2);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x2, this._y2);
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
-      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
-      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisClosed(context) {
-  return new BasisClosed(context);
-}
-
-function BasisOpen(context) {
-  this._context = context;
-}
-
-BasisOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
-      case 3: this._point = 4; // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisOpen(context) {
-  return new BasisOpen(context);
-}
-
-function Bundle(context, beta) {
-  this._basis = new Basis(context);
-  this._beta = beta;
-}
-
-Bundle.prototype = {
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        j = x.length - 1;
-
-    if (j > 0) {
-      var x0 = x[0],
-          y0 = y[0],
-          dx = x[j] - x0,
-          dy = y[j] - y0,
-          i = -1,
-          t;
-
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(
-          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
-          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
-        );
-      }
-    }
-
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-var bundle = (function custom(beta) {
-
-  function bundle(context) {
-    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
-  }
-
-  bundle.beta = function(beta) {
-    return custom(+beta);
-  };
-
-  return bundle;
-})(0.85);
-
-function point$1(that, x, y) {
-  that._context.bezierCurveTo(
-    that._x1 + that._k * (that._x2 - that._x0),
-    that._y1 + that._k * (that._y2 - that._y0),
-    that._x2 + that._k * (that._x1 - x),
-    that._y2 + that._k * (that._y1 - y),
-    that._x2,
-    that._y2
-  );
-}
-
-function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-Cardinal.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: point$1(this, this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
-      case 2: this._point = 3; // proceed
-      default: point$1(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinal = (function custom(tension) {
-
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$1(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalClosed = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // proceed
-      default: point$1(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalOpen = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function point$2(that, x, y) {
-  var x1 = that._x1,
-      y1 = that._y1,
-      x2 = that._x2,
-      y2 = that._y2;
-
-  if (that._l01_a > epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-
-  if (that._l23_a > epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRom.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: this.point(this._x2, this._y2); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; // proceed
-      default: point$2(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRom = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$2(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomClosed = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // proceed
-      default: point$2(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomOpen = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function LinearClosed(context) {
-  this._context = context;
-}
-
-LinearClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._point) this._context.closePath();
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);
-    else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-
-function linearClosed(context) {
-  return new LinearClosed(context);
-}
-
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-      h1 = x2 - that._x1,
-      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-      p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point$3(that, t0, t1) {
-  var x0 = that._x0,
-      y0 = that._y0,
-      x1 = that._x1,
-      y1 = that._y1,
-      dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-
-function MonotoneX(context) {
-  this._context = context;
-}
-
-MonotoneX.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 =
-    this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-      case 3: point$3(this, this._t0, slope2(this, this._t0)); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    var t1 = NaN;
-
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
-      default: point$3(this, this._t0, t1 = slope3(this, x, y)); break;
-    }
-
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-};
-
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-
-function ReflectContext(context) {
-  this._context = context;
-}
-
-ReflectContext.prototype = {
-  moveTo: function(x, y) { this._context.moveTo(y, x); },
-  closePath: function() { this._context.closePath(); },
-  lineTo: function(x, y) { this._context.lineTo(y, x); },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
-};
-
-function monotoneX(context) {
-  return new MonotoneX(context);
-}
-
-function monotoneY(context) {
-  return new MonotoneY(context);
-}
-
-function Natural(context) {
-  this._context = context;
-}
-
-Natural.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        n = x.length;
-
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-            py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-
-    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-      n = x.length - 1,
-      m,
-      a = new Array(n),
-      b = new Array(n),
-      r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-
-function natural(context) {
-  return new Natural(context);
-}
-
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-
-Step.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // proceed
-      default: {
-        if (this._t <= 0) {
-          this._context.lineTo(this._x, y);
-          this._context.lineTo(x, y);
-        } else {
-          var x1 = this._x * (1 - this._t) + x * this._t;
-          this._context.lineTo(x1, this._y);
-          this._context.lineTo(x1, y);
-        }
-        break;
-      }
-    }
-    this._x = x, this._y = y;
-  }
-};
-
-function step(context) {
-  return new Step(context, 0.5);
-}
-
-function stepBefore(context) {
-  return new Step(context, 0);
-}
-
-function stepAfter(context) {
-  return new Step(context, 1);
-}
-
-function none(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
-
-function none$1(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
-
-function stackValue(d, key) {
-  return d[key];
-}
-
-function stack() {
-  var keys = constant([]),
-      order = none$1,
-      offset = none,
-      value = stackValue;
-
-  function stack(data) {
-    var kz = keys.apply(this, arguments),
-        i,
-        m = data.length,
-        n = kz.length,
-        sz = new Array(n),
-        oz;
-
-    for (i = 0; i < n; ++i) {
-      for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
-        si[j] = sij = [0, +value(data[j], ki, j, data)];
-        sij.data = data[j];
-      }
-      si.key = ki;
-    }
-
-    for (i = 0, oz = order(sz); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-
-    offset(sz, oz);
-    return sz;
-  }
-
-  stack.keys = function(_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : constant(slice.call(_)), stack) : keys;
-  };
-
-  stack.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value;
-  };
-
-  stack.order = function(_) {
-    return arguments.length ? (order = _ == null ? none$1 : typeof _ === "function" ? _ : constant(slice.call(_)), stack) : order;
-  };
-
-  stack.offset = function(_) {
-    return arguments.length ? (offset = _ == null ? none : _, stack) : offset;
-  };
-
-  return stack;
-}
-
-function expand(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  none(series, order);
-}
-
-function diverging(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
-
-function silhouette(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  none(series, order);
-}
-
-function wiggle(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-          sij0 = si[j][1] || 0,
-          sij1 = si[j - 1][1] || 0,
-          s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-            skj0 = sk[j][1] || 0,
-            skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  none(series, order);
-}
-
-function appearance(series) {
-  var peaks = series.map(peak);
-  return none$1(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
-}
-
-function peak(series) {
-  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
-
-function ascending(series) {
-  var sums = series.map(sum);
-  return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; });
-}
-
-function sum(series) {
-  var s = 0, i = -1, n = series.length, v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
-
-function descending$1(series) {
-  return ascending(series).reverse();
-}
-
-function insideOut(series) {
-  var n = series.length,
-      i,
-      j,
-      sums = series.map(sum),
-      order = appearance(series),
-      top = 0,
-      bottom = 0,
-      tops = [],
-      bottoms = [];
-
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-
-  return bottoms.reverse().concat(tops);
-}
-
-function reverse(series) {
-  return none$1(series).reverse();
-}
-
-exports.arc = arc;
-exports.area = area;
-exports.areaRadial = areaRadial;
-exports.curveBasis = basis;
-exports.curveBasisClosed = basisClosed;
-exports.curveBasisOpen = basisOpen;
-exports.curveBundle = bundle;
-exports.curveCardinal = cardinal;
-exports.curveCardinalClosed = cardinalClosed;
-exports.curveCardinalOpen = cardinalOpen;
-exports.curveCatmullRom = catmullRom;
-exports.curveCatmullRomClosed = catmullRomClosed;
-exports.curveCatmullRomOpen = catmullRomOpen;
-exports.curveLinear = curveLinear;
-exports.curveLinearClosed = linearClosed;
-exports.curveMonotoneX = monotoneX;
-exports.curveMonotoneY = monotoneY;
-exports.curveNatural = natural;
-exports.curveStep = step;
-exports.curveStepAfter = stepAfter;
-exports.curveStepBefore = stepBefore;
-exports.line = line;
-exports.lineRadial = lineRadial$1;
-exports.linkHorizontal = linkHorizontal;
-exports.linkRadial = linkRadial;
-exports.linkVertical = linkVertical;
-exports.pie = pie;
-exports.pointRadial = pointRadial;
-exports.radialArea = areaRadial;
-exports.radialLine = lineRadial$1;
-exports.stack = stack;
-exports.stackOffsetDiverging = diverging;
-exports.stackOffsetExpand = expand;
-exports.stackOffsetNone = none;
-exports.stackOffsetSilhouette = silhouette;
-exports.stackOffsetWiggle = wiggle;
-exports.stackOrderAppearance = appearance;
-exports.stackOrderAscending = ascending;
-exports.stackOrderDescending = descending$1;
-exports.stackOrderInsideOut = insideOut;
-exports.stackOrderNone = none$1;
-exports.stackOrderReverse = reverse;
-exports.symbol = symbol;
-exports.symbolCircle = circle;
-exports.symbolCross = cross;
-exports.symbolDiamond = diamond;
-exports.symbolSquare = square;
-exports.symbolStar = star;
-exports.symbolTriangle = triangle;
-exports.symbolWye = wye;
-exports.symbols = symbols;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-sankey/node_modules/d3-shape/dist/d3-shape.min.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/dist/d3-shape.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-shape/ v1.3.7 Copyright 2019 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-path")):"function"==typeof define&&define.amd?define(["exports","d3-path"],n):n((t=t||self).d3=t.d3||{},t.d3)}(this,function(t,n){"use strict";function i(t){return function(){return t}}var e=Math.abs,s=Math.atan2,h=Math.cos,o=Math.max,_=Math.min,r=Math.sin,a=Math.sqrt,c=1e-12,l=Math.PI,u=l/2,f=2*l;function x(t){return t>=1?u:t<=-1?-u:Math.asin(t)}function y(t){return t.innerRadius}function p(t){return t.outerRadius}function v(t){return t.startAngle}function d(t){return t.endAngle}function T(t){return t&&t.padAngle}function g(t,n,i,e,s,h,_){var r=t-i,c=n-e,l=(_?h:-h)/a(r*r+c*c),u=l*c,f=-l*r,x=t+u,y=n+f,p=i+u,v=e+f,d=(x+p)/2,T=(y+v)/2,g=p-x,b=v-y,w=g*g+b*b,k=s-h,m=x*v-p*y,N=(b<0?-1:1)*a(o(0,k*k*w-m*m)),M=(m*b-g*N)/w,S=(-m*g-b*N)/w,E=(m*b+g*N)/w,A=(-m*g+b*N)/w,P=M-d,C=S-T,O=E-d,R=A-T;return P*P+C*C>O*O+R*R&&(M=E,S=A),{cx:M,cy:S,x01:-u,y01:-f,x11:M*(s/k-1),y11:S*(s/k-1)}}function b(t){this._context=t}function w(t){return new b(t)}function k(t){return t[0]}function m(t){return t[1]}function N(){var t=k,e=m,s=i(!0),h=null,o=w,_=null;function r(i){var r,a,c,l=i.length,u=!1;for(null==h&&(_=o(c=n.path())),r=0;r<=l;++r)!(r<l&&s(a=i[r],r,i))===u&&((u=!u)?_.lineStart():_.lineEnd()),u&&_.point(+t(a,r,i),+e(a,r,i));if(c)return _=null,c+""||null}return r.x=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),r):t},r.y=function(t){return arguments.length?(e="function"==typeof t?t:i(+t),r):e},r.defined=function(t){return arguments.length?(s="function"==typeof t?t:i(!!t),r):s},r.curve=function(t){return arguments.length?(o=t,null!=h&&(_=o(h)),r):o},r.context=function(t){return arguments.length?(null==t?h=_=null:_=o(h=t),r):h},r}function M(){var t=k,e=null,s=i(0),h=m,o=i(!0),_=null,r=w,a=null;function c(i){var c,l,u,f,x,y=i.length,p=!1,v=new Array(y),d=new Array(y);for(null==_&&(a=r(x=n.path())),c=0;c<=y;++c){if(!(c<y&&o(f=i[c],c,i))===p)if(p=!p)l=c,a.areaStart(),a.lineStart();else{for(a.lineEnd(),a.lineStart(),u=c-1;u>=l;--u)a.point(v[u],d[u]);a.lineEnd(),a.areaEnd()}p&&(v[c]=+t(f,c,i),d[c]=+s(f,c,i),a.point(e?+e(f,c,i):v[c],h?+h(f,c,i):d[c]))}if(x)return a=null,x+""||null}function l(){return N().defined(o).curve(r).context(_)}return c.x=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),e=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),c):t},c.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:i(+t),c):e},c.y=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),h=null,c):s},c.y0=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),c):s},c.y1=function(t){return arguments.length?(h=null==t?null:"function"==typeof t?t:i(+t),c):h},c.lineX0=c.lineY0=function(){return l().x(t).y(s)},c.lineY1=function(){return l().x(t).y(h)},c.lineX1=function(){return l().x(e).y(s)},c.defined=function(t){return arguments.length?(o="function"==typeof t?t:i(!!t),c):o},c.curve=function(t){return arguments.length?(r=t,null!=_&&(a=r(_)),c):r},c.context=function(t){return arguments.length?(null==t?_=a=null:a=r(_=t),c):_},c}function S(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function E(t){return t}b.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var A=C(w);function P(t){this._curve=t}function C(t){function n(n){return new P(t(n))}return n._curve=t,n}function O(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(C(t)):n()._curve},t}function R(){return O(N().curve(A))}function q(){var t=M().curve(A),n=t.curve,i=t.lineX0,e=t.lineX1,s=t.lineY0,h=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return O(i())},delete t.lineX0,t.lineEndAngle=function(){return O(e())},delete t.lineX1,t.lineInnerRadius=function(){return O(s())},delete t.lineY0,t.lineOuterRadius=function(){return O(h())},delete t.lineY1,t.curve=function(t){return arguments.length?n(C(t)):n()._curve},t}function z(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}P.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var X=Array.prototype.slice;function Y(t){return t.source}function B(t){return t.target}function I(t){var e=Y,s=B,h=k,o=m,_=null;function r(){var i,r=X.call(arguments),a=e.apply(this,r),c=s.apply(this,r);if(_||(_=i=n.path()),t(_,+h.apply(this,(r[0]=a,r)),+o.apply(this,r),+h.apply(this,(r[0]=c,r)),+o.apply(this,r)),i)return _=null,i+""||null}return r.source=function(t){return arguments.length?(e=t,r):e},r.target=function(t){return arguments.length?(s=t,r):s},r.x=function(t){return arguments.length?(h="function"==typeof t?t:i(+t),r):h},r.y=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),r):o},r.context=function(t){return arguments.length?(_=null==t?null:t,r):_},r}function j(t,n,i,e,s){t.moveTo(n,i),t.bezierCurveTo(n=(n+e)/2,i,n,s,e,s)}function D(t,n,i,e,s){t.moveTo(n,i),t.bezierCurveTo(n,i=(i+s)/2,e,i,e,s)}function L(t,n,i,e,s){var h=z(n,i),o=z(n,i=(i+s)/2),_=z(e,i),r=z(e,s);t.moveTo(h[0],h[1]),t.bezierCurveTo(o[0],o[1],_[0],_[1],r[0],r[1])}var V={draw:function(t,n){var i=Math.sqrt(n/l);t.moveTo(i,0),t.arc(0,0,i,0,f)}},W={draw:function(t,n){var i=Math.sqrt(n/5)/2;t.moveTo(-3*i,-i),t.lineTo(-i,-i),t.lineTo(-i,-3*i),t.lineTo(i,-3*i),t.lineTo(i,-i),t.lineTo(3*i,-i),t.lineTo(3*i,i),t.lineTo(i,i),t.lineTo(i,3*i),t.lineTo(-i,3*i),t.lineTo(-i,i),t.lineTo(-3*i,i),t.closePath()}},H=Math.sqrt(1/3),F=2*H,G={draw:function(t,n){var i=Math.sqrt(n/F),e=i*H;t.moveTo(0,-i),t.lineTo(e,0),t.lineTo(0,i),t.lineTo(-e,0),t.closePath()}},J=Math.sin(l/10)/Math.sin(7*l/10),K=Math.sin(f/10)*J,Q=-Math.cos(f/10)*J,U={draw:function(t,n){var i=Math.sqrt(.8908130915292852*n),e=K*i,s=Q*i;t.moveTo(0,-i),t.lineTo(e,s);for(var h=1;h<5;++h){var o=f*h/5,_=Math.cos(o),r=Math.sin(o);t.lineTo(r*i,-_*i),t.lineTo(_*e-r*s,r*e+_*s)}t.closePath()}},Z={draw:function(t,n){var i=Math.sqrt(n),e=-i/2;t.rect(e,e,i,i)}},$=Math.sqrt(3),tt={draw:function(t,n){var i=-Math.sqrt(n/(3*$));t.moveTo(0,2*i),t.lineTo(-$*i,-i),t.lineTo($*i,-i),t.closePath()}},nt=-.5,it=Math.sqrt(3)/2,et=1/Math.sqrt(12),st=3*(et/2+1),ht={draw:function(t,n){var i=Math.sqrt(n/st),e=i/2,s=i*et,h=e,o=i*et+i,_=-h,r=o;t.moveTo(e,s),t.lineTo(h,o),t.lineTo(_,r),t.lineTo(nt*e-it*s,it*e+nt*s),t.lineTo(nt*h-it*o,it*h+nt*o),t.lineTo(nt*_-it*r,it*_+nt*r),t.lineTo(nt*e+it*s,nt*s-it*e),t.lineTo(nt*h+it*o,nt*o-it*h),t.lineTo(nt*_+it*r,nt*r-it*_),t.closePath()}},ot=[V,W,G,Z,U,tt,ht];function _t(){}function rt(t,n,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+i)/6)}function at(t){this._context=t}function ct(t){this._context=t}function lt(t){this._context=t}function ut(t,n){this._basis=new at(t),this._beta=n}at.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:rt(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:rt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},ct.prototype={areaStart:_t,areaEnd:_t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:rt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},lt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,e=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(i,e):this._context.moveTo(i,e);break;case 3:this._point=4;default:rt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},ut.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,i=t.length-1;if(i>0)for(var e,s=t[0],h=n[0],o=t[i]-s,_=n[i]-h,r=-1;++r<=i;)e=r/i,this._basis.point(this._beta*t[r]+(1-this._beta)*(s+e*o),this._beta*n[r]+(1-this._beta)*(h+e*_));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var ft=function t(n){function i(t){return 1===n?new at(t):new ut(t,n)}return i.beta=function(n){return t(+n)},i}(.85);function xt(t,n,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function yt(t,n){this._context=t,this._k=(1-n)/6}yt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:xt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:xt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var pt=function t(n){function i(t){return new yt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function vt(t,n){this._context=t,this._k=(1-n)/6}vt.prototype={areaStart:_t,areaEnd:_t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:xt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var dt=function t(n){function i(t){return new vt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function Tt(t,n){this._context=t,this._k=(1-n)/6}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:xt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var gt=function t(n){function i(t){return new Tt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function bt(t,n,i){var e=t._x1,s=t._y1,h=t._x2,o=t._y2;if(t._l01_a>c){var _=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,r=3*t._l01_a*(t._l01_a+t._l12_a);e=(e*_-t._x0*t._l12_2a+t._x2*t._l01_2a)/r,s=(s*_-t._y0*t._l12_2a+t._y2*t._l01_2a)/r}if(t._l23_a>c){var a=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);h=(h*a+t._x1*t._l23_2a-n*t._l12_2a)/l,o=(o*a+t._y1*t._l23_2a-i*t._l12_2a)/l}t._context.bezierCurveTo(e,s,h,o,t._x2,t._y2)}function wt(t,n){this._context=t,this._alpha=n}wt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:bt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var kt=function t(n){function i(t){return n?new wt(t,n):new yt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function mt(t,n){this._context=t,this._alpha=n}mt.prototype={areaStart:_t,areaEnd:_t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Nt=function t(n){function i(t){return n?new mt(t,n):new vt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function Mt(t,n){this._context=t,this._alpha=n}Mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var St=function t(n){function i(t){return n?new Mt(t,n):new Tt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function Et(t){this._context=t}function At(t){return t<0?-1:1}function Pt(t,n,i){var e=t._x1-t._x0,s=n-t._x1,h=(t._y1-t._y0)/(e||s<0&&-0),o=(i-t._y1)/(s||e<0&&-0),_=(h*s+o*e)/(e+s);return(At(h)+At(o))*Math.min(Math.abs(h),Math.abs(o),.5*Math.abs(_))||0}function Ct(t,n){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-n)/2:n}function Ot(t,n,i){var e=t._x0,s=t._y0,h=t._x1,o=t._y1,_=(h-e)/3;t._context.bezierCurveTo(e+_,s+_*n,h-_,o-_*i,h,o)}function Rt(t){this._context=t}function qt(t){this._context=new zt(t)}function zt(t){this._context=t}function Xt(t){this._context=t}function Yt(t){var n,i,e=t.length-1,s=new Array(e),h=new Array(e),o=new Array(e);for(s[0]=0,h[0]=2,o[0]=t[0]+2*t[1],n=1;n<e-1;++n)s[n]=1,h[n]=4,o[n]=4*t[n]+2*t[n+1];for(s[e-1]=2,h[e-1]=7,o[e-1]=8*t[e-1]+t[e],n=1;n<e;++n)i=s[n]/h[n-1],h[n]-=i,o[n]-=i*o[n-1];for(s[e-1]=o[e-1]/h[e-1],n=e-2;n>=0;--n)s[n]=(o[n]-s[n+1])/h[n];for(h[e-1]=(t[e]+s[e-1])/2,n=0;n<e-1;++n)h[n]=2*t[n+1]-s[n+1];return[s,h]}function Bt(t,n){this._context=t,this._t=n}function It(t,n){if((s=t.length)>1)for(var i,e,s,h=1,o=t[n[0]],_=o.length;h<s;++h)for(e=o,o=t[n[h]],i=0;i<_;++i)o[i][1]+=o[i][0]=isNaN(e[i][1])?e[i][0]:e[i][1]}function jt(t){for(var n=t.length,i=new Array(n);--n>=0;)i[n]=n;return i}function Dt(t,n){return t[n]}function Lt(t){var n=t.map(Vt);return jt(t).sort(function(t,i){return n[t]-n[i]})}function Vt(t){for(var n,i=-1,e=0,s=t.length,h=-1/0;++i<s;)(n=+t[i][1])>h&&(h=n,e=i);return e}function Wt(t){var n=t.map(Ht);return jt(t).sort(function(t,i){return n[t]-n[i]})}function Ht(t){for(var n,i=0,e=-1,s=t.length;++e<s;)(n=+t[e][1])&&(i+=n);return i}Et.prototype={areaStart:_t,areaEnd:_t,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},Rt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ot(this,this._t0,Ct(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var i=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,Ot(this,Ct(this,i=Pt(this,t,n)),i);break;default:Ot(this,this._t0,i=Pt(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=i}}},(qt.prototype=Object.create(Rt.prototype)).point=function(t,n){Rt.prototype.point.call(this,n,t)},zt.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,i,e,s,h){this._context.bezierCurveTo(n,t,e,i,h,s)}},Xt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===i)this._context.lineTo(t[1],n[1]);else for(var e=Yt(t),s=Yt(n),h=0,o=1;o<i;++h,++o)this._context.bezierCurveTo(e[0][h],s[0][h],e[1][h],s[1][h],t[o],n[o]);(this._line||0!==this._line&&1===i)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},Bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,n)}}this._x=t,this._y=n}},t.arc=function(){var t=y,o=p,b=i(0),w=null,k=v,m=d,N=T,M=null;function S(){var i,y,p=+t.apply(this,arguments),v=+o.apply(this,arguments),d=k.apply(this,arguments)-u,T=m.apply(this,arguments)-u,S=e(T-d),E=T>d;if(M||(M=i=n.path()),v<p&&(y=v,v=p,p=y),v>c)if(S>f-c)M.moveTo(v*h(d),v*r(d)),M.arc(0,0,v,d,T,!E),p>c&&(M.moveTo(p*h(T),p*r(T)),M.arc(0,0,p,T,d,E));else{var A,P,C=d,O=T,R=d,q=T,z=S,X=S,Y=N.apply(this,arguments)/2,B=Y>c&&(w?+w.apply(this,arguments):a(p*p+v*v)),I=_(e(v-p)/2,+b.apply(this,arguments)),j=I,D=I;if(B>c){var L=x(B/p*r(Y)),V=x(B/v*r(Y));(z-=2*L)>c?(R+=L*=E?1:-1,q-=L):(z=0,R=q=(d+T)/2),(X-=2*V)>c?(C+=V*=E?1:-1,O-=V):(X=0,C=O=(d+T)/2)}var W=v*h(C),H=v*r(C),F=p*h(q),G=p*r(q);if(I>c){var J,K=v*h(O),Q=v*r(O),U=p*h(R),Z=p*r(R);if(S<l&&(J=function(t,n,i,e,s,h,o,_){var r=i-t,a=e-n,l=o-s,u=_-h,f=u*r-l*a;if(!(f*f<c))return[t+(f=(l*(n-h)-u*(t-s))/f)*r,n+f*a]}(W,H,U,Z,K,Q,F,G))){var $=W-J[0],tt=H-J[1],nt=K-J[0],it=Q-J[1],et=1/r(function(t){return t>1?0:t<-1?l:Math.acos(t)}(($*nt+tt*it)/(a($*$+tt*tt)*a(nt*nt+it*it)))/2),st=a(J[0]*J[0]+J[1]*J[1]);j=_(I,(p-st)/(et-1)),D=_(I,(v-st)/(et+1))}}X>c?D>c?(A=g(U,Z,W,H,v,D,E),P=g(K,Q,F,G,v,D,E),M.moveTo(A.cx+A.x01,A.cy+A.y01),D<I?M.arc(A.cx,A.cy,D,s(A.y01,A.x01),s(P.y01,P.x01),!E):(M.arc(A.cx,A.cy,D,s(A.y01,A.x01),s(A.y11,A.x11),!E),M.arc(0,0,v,s(A.cy+A.y11,A.cx+A.x11),s(P.cy+P.y11,P.cx+P.x11),!E),M.arc(P.cx,P.cy,D,s(P.y11,P.x11),s(P.y01,P.x01),!E))):(M.moveTo(W,H),M.arc(0,0,v,C,O,!E)):M.moveTo(W,H),p>c&&z>c?j>c?(A=g(F,G,K,Q,p,-j,E),P=g(W,H,U,Z,p,-j,E),M.lineTo(A.cx+A.x01,A.cy+A.y01),j<I?M.arc(A.cx,A.cy,j,s(A.y01,A.x01),s(P.y01,P.x01),!E):(M.arc(A.cx,A.cy,j,s(A.y01,A.x01),s(A.y11,A.x11),!E),M.arc(0,0,p,s(A.cy+A.y11,A.cx+A.x11),s(P.cy+P.y11,P.cx+P.x11),E),M.arc(P.cx,P.cy,j,s(P.y11,P.x11),s(P.y01,P.x01),!E))):M.arc(0,0,p,q,R,E):M.lineTo(F,G)}else M.moveTo(0,0);if(M.closePath(),i)return M=null,i+""||null}return S.centroid=function(){var n=(+t.apply(this,arguments)+ +o.apply(this,arguments))/2,i=(+k.apply(this,arguments)+ +m.apply(this,arguments))/2-l/2;return[h(i)*n,r(i)*n]},S.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),S):t},S.outerRadius=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),S):o},S.cornerRadius=function(t){return arguments.length?(b="function"==typeof t?t:i(+t),S):b},S.padRadius=function(t){return arguments.length?(w=null==t?null:"function"==typeof t?t:i(+t),S):w},S.startAngle=function(t){return arguments.length?(k="function"==typeof t?t:i(+t),S):k},S.endAngle=function(t){return arguments.length?(m="function"==typeof t?t:i(+t),S):m},S.padAngle=function(t){return arguments.length?(N="function"==typeof t?t:i(+t),S):N},S.context=function(t){return arguments.length?(M=null==t?null:t,S):M},S},t.area=M,t.areaRadial=q,t.curveBasis=function(t){return new at(t)},t.curveBasisClosed=function(t){return new ct(t)},t.curveBasisOpen=function(t){return new lt(t)},t.curveBundle=ft,t.curveCardinal=pt,t.curveCardinalClosed=dt,t.curveCardinalOpen=gt,t.curveCatmullRom=kt,t.curveCatmullRomClosed=Nt,t.curveCatmullRomOpen=St,t.curveLinear=w,t.curveLinearClosed=function(t){return new Et(t)},t.curveMonotoneX=function(t){return new Rt(t)},t.curveMonotoneY=function(t){return new qt(t)},t.curveNatural=function(t){return new Xt(t)},t.curveStep=function(t){return new Bt(t,.5)},t.curveStepAfter=function(t){return new Bt(t,1)},t.curveStepBefore=function(t){return new Bt(t,0)},t.line=N,t.lineRadial=R,t.linkHorizontal=function(){return I(j)},t.linkRadial=function(){var t=I(L);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return I(D)},t.pie=function(){var t=E,n=S,e=null,s=i(0),h=i(f),o=i(0);function _(i){var _,r,a,c,l,u=i.length,x=0,y=new Array(u),p=new Array(u),v=+s.apply(this,arguments),d=Math.min(f,Math.max(-f,h.apply(this,arguments)-v)),T=Math.min(Math.abs(d)/u,o.apply(this,arguments)),g=T*(d<0?-1:1);for(_=0;_<u;++_)(l=p[y[_]=_]=+t(i[_],_,i))>0&&(x+=l);for(null!=n?y.sort(function(t,i){return n(p[t],p[i])}):null!=e&&y.sort(function(t,n){return e(i[t],i[n])}),_=0,a=x?(d-u*g)/x:0;_<u;++_,v=c)r=y[_],c=v+((l=p[r])>0?l*a:0)+g,p[r]={data:i[r],index:_,value:l,startAngle:v,endAngle:c,padAngle:T};return p}return _.value=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),_):t},_.sortValues=function(t){return arguments.length?(n=t,e=null,_):n},_.sort=function(t){return arguments.length?(e=t,n=null,_):e},_.startAngle=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),_):s},_.endAngle=function(t){return arguments.length?(h="function"==typeof t?t:i(+t),_):h},_.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),_):o},_},t.pointRadial=z,t.radialArea=q,t.radialLine=R,t.stack=function(){var t=i([]),n=jt,e=It,s=Dt;function h(i){var h,o,_=t.apply(this,arguments),r=i.length,a=_.length,c=new Array(a);for(h=0;h<a;++h){for(var l,u=_[h],f=c[h]=new Array(r),x=0;x<r;++x)f[x]=l=[0,+s(i[x],u,x,i)],l.data=i[x];f.key=u}for(h=0,o=n(c);h<a;++h)c[o[h]].index=h;return e(c,o),c}return h.keys=function(n){return arguments.length?(t="function"==typeof n?n:i(X.call(n)),h):t},h.value=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),h):s},h.order=function(t){return arguments.length?(n=null==t?jt:"function"==typeof t?t:i(X.call(t)),h):n},h.offset=function(t){return arguments.length?(e=null==t?It:t,h):e},h},t.stackOffsetDiverging=function(t,n){if((_=t.length)>0)for(var i,e,s,h,o,_,r=0,a=t[n[0]].length;r<a;++r)for(h=o=0,i=0;i<_;++i)(s=(e=t[n[i]][r])[1]-e[0])>0?(e[0]=h,e[1]=h+=s):s<0?(e[1]=o,e[0]=o+=s):(e[0]=0,e[1]=s)},t.stackOffsetExpand=function(t,n){if((e=t.length)>0){for(var i,e,s,h=0,o=t[0].length;h<o;++h){for(s=i=0;i<e;++i)s+=t[i][h][1]||0;if(s)for(i=0;i<e;++i)t[i][h][1]/=s}It(t,n)}},t.stackOffsetNone=It,t.stackOffsetSilhouette=function(t,n){if((i=t.length)>0){for(var i,e=0,s=t[n[0]],h=s.length;e<h;++e){for(var o=0,_=0;o<i;++o)_+=t[o][e][1]||0;s[e][1]+=s[e][0]=-_/2}It(t,n)}},t.stackOffsetWiggle=function(t,n){if((s=t.length)>0&&(e=(i=t[n[0]]).length)>0){for(var i,e,s,h=0,o=1;o<e;++o){for(var _=0,r=0,a=0;_<s;++_){for(var c=t[n[_]],l=c[o][1]||0,u=(l-(c[o-1][1]||0))/2,f=0;f<_;++f){var x=t[n[f]];u+=(x[o][1]||0)-(x[o-1][1]||0)}r+=l,a+=u*l}i[o-1][1]+=i[o-1][0]=h,r&&(h-=a/r)}i[o-1][1]+=i[o-1][0]=h,It(t,n)}},t.stackOrderAppearance=Lt,t.stackOrderAscending=Wt,t.stackOrderDescending=function(t){return Wt(t).reverse()},t.stackOrderInsideOut=function(t){var n,i,e=t.length,s=t.map(Ht),h=Lt(t),o=0,_=0,r=[],a=[];for(n=0;n<e;++n)i=h[n],o<_?(o+=s[i],r.push(i)):(_+=s[i],a.push(i));return a.reverse().concat(r)},t.stackOrderNone=jt,t.stackOrderReverse=function(t){return jt(t).reverse()},t.symbol=function(){var t=i(V),e=i(64),s=null;function h(){var i;if(s||(s=i=n.path()),t.apply(this,arguments).draw(s,+e.apply(this,arguments)),i)return s=null,i+""||null}return h.type=function(n){return arguments.length?(t="function"==typeof n?n:i(n),h):t},h.size=function(t){return arguments.length?(e="function"==typeof t?t:i(+t),h):e},h.context=function(t){return arguments.length?(s=null==t?null:t,h):s},h},t.symbolCircle=V,t.symbolCross=W,t.symbolDiamond=G,t.symbolSquare=Z,t.symbolStar=U,t.symbolTriangle=tt,t.symbolWye=ht,t.symbols=ot,Object.defineProperty(t,"__esModule",{value:!0})});
Index: de_modules/d3-sankey/node_modules/d3-shape/package.json
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-{
-  "name": "d3-shape",
-  "version": "1.3.7",
-  "description": "Graphical primitives for visualization, such as lines and areas.",
-  "keywords": [
-    "d3",
-    "d3-module",
-    "graphics",
-    "visualization",
-    "canvas",
-    "svg"
-  ],
-  "homepage": "https://d3js.org/d3-shape/",
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "main": "dist/d3-shape.js",
-  "unpkg": "dist/d3-shape.min.js",
-  "jsdelivr": "dist/d3-shape.min.js",
-  "module": "src/index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-shape.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "pretest": "rollup -c",
-    "test": "tape 'test/**/*-test.js' && eslint src",
-    "prepublishOnly": "rm -rf dist && yarn test",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js"
-  },
-  "dependencies": {
-    "d3-path": "1"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "d3-polygon": "1",
-    "eslint": "6",
-    "rollup": "1",
-    "rollup-plugin-terser": "5",
-    "tape": "4"
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/arc.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/arc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,261 +1,0 @@
-import {path} from "d3-path";
-import constant from "./constant.js";
-import {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from "./math.js";
-
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0, y10 = y1 - y0,
-      x32 = x3 - x2, y32 = y3 - y2,
-      t = y32 * x10 - x32 * y10;
-  if (t * t < epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-      y01 = y0 - y1,
-      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),
-      ox = lo * y01,
-      oy = -lo * x01,
-      x11 = x0 + ox,
-      y11 = y0 + oy,
-      x10 = x1 + ox,
-      y10 = y1 + oy,
-      x00 = (x11 + x10) / 2,
-      y00 = (y11 + y10) / 2,
-      dx = x10 - x11,
-      dy = y10 - y11,
-      d2 = dx * dx + dy * dy,
-      r = r1 - rc,
-      D = x11 * y10 - x10 * y11,
-      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),
-      cx0 = (D * dy - dx * d) / d2,
-      cy0 = (-D * dx - dy * d) / d2,
-      cx1 = (D * dy + dx * d) / d2,
-      cy1 = (-D * dx + dy * d) / d2,
-      dx0 = cx0 - x00,
-      dy0 = cy0 - y00,
-      dx1 = cx1 - x00,
-      dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-
-export default function() {
-  var innerRadius = arcInnerRadius,
-      outerRadius = arcOuterRadius,
-      cornerRadius = constant(0),
-      padRadius = null,
-      startAngle = arcStartAngle,
-      endAngle = arcEndAngle,
-      padAngle = arcPadAngle,
-      context = null;
-
-  function arc() {
-    var buffer,
-        r,
-        r0 = +innerRadius.apply(this, arguments),
-        r1 = +outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) - halfPi,
-        a1 = endAngle.apply(this, arguments) - halfPi,
-        da = abs(a1 - a0),
-        cw = a1 > a0;
-
-    if (!context) context = buffer = path();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > tau - epsilon) {
-      context.moveTo(r1 * cos(a0), r1 * sin(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > epsilon) {
-        context.moveTo(r0 * cos(a1), r0 * sin(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-          a11 = a1,
-          a00 = a0,
-          a10 = a1,
-          da0 = da,
-          da1 = da,
-          ap = padAngle.apply(this, arguments) / 2,
-          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),
-          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-          rc0 = rc,
-          rc1 = rc,
-          t0,
-          t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > epsilon) {
-        var p0 = asin(rp / r0 * sin(ap)),
-            p1 = asin(rp / r1 * sin(ap));
-        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
-        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
-        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-
-      var x01 = r1 * cos(a01),
-          y01 = r1 * sin(a01),
-          x10 = r0 * cos(a10),
-          y10 = r0 * sin(a10);
-
-      // Apply rounded corners?
-      if (rc > epsilon) {
-        var x11 = r1 * cos(a11),
-            y11 = r1 * sin(a11),
-            x00 = r0 * cos(a00),
-            y00 = r0 * sin(a00),
-            oc;
-
-        // Restrict the corner radius according to the sector angle.
-        if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
-          var ax = x01 - oc[0],
-              ay = y01 - oc[1],
-              bx = x11 - oc[0],
-              by = y11 - oc[1],
-              kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),
-              lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-          rc0 = min(rc, (r0 - lc) / (kc - 1));
-          rc1 = min(rc, (r1 - lc) / (kc + 1));
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  arc.centroid = function() {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
-    return [cos(a) * r, sin(a) * r];
-  };
-
-  arc.innerRadius = function(_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
-  };
-
-  arc.outerRadius = function(_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
-  };
-
-  arc.cornerRadius = function(_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
-  };
-
-  arc.padRadius = function(_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
-  };
-
-  arc.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
-  };
-
-  arc.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
-  };
-
-  arc.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
-  };
-
-  arc.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
-  };
-
-  return arc;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/area.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,109 +1,0 @@
-import {path} from "d3-path";
-import constant from "./constant.js";
-import curveLinear from "./curve/linear.js";
-import line from "./line.js";
-import {x as pointX, y as pointY} from "./point.js";
-
-export default function() {
-  var x0 = pointX,
-      x1 = null,
-      y0 = constant(0),
-      y1 = pointY,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null;
-
-  function area(data) {
-    var i,
-        j,
-        k,
-        n = data.length,
-        d,
-        defined0 = false,
-        buffer,
-        x0z = new Array(n),
-        y0z = new Array(n);
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  function arealine() {
-    return line().defined(defined).curve(curve).context(context);
-  }
-
-  area.x = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0;
-  };
-
-  area.x0 = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0;
-  };
-
-  area.x1 = function(_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1;
-  };
-
-  area.y = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0;
-  };
-
-  area.y0 = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0;
-  };
-
-  area.y1 = function(_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1;
-  };
-
-  area.lineX0 =
-  area.lineY0 = function() {
-    return arealine().x(x0).y(y0);
-  };
-
-  area.lineY1 = function() {
-    return arealine().x(x0).y(y1);
-  };
-
-  area.lineX1 = function() {
-    return arealine().x(x1).y(y0);
-  };
-
-  area.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined;
-  };
-
-  area.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-
-  area.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-
-  return area;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/areaRadial.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/areaRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import curveRadial, {curveRadialLinear} from "./curve/radial.js";
-import area from "./area.js";
-import {lineRadial} from "./lineRadial.js";
-
-export default function() {
-  var a = area().curve(curveRadialLinear),
-      c = a.curve,
-      x0 = a.lineX0,
-      x1 = a.lineX1,
-      y0 = a.lineY0,
-      y1 = a.lineY1;
-
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
-  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
-  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
-  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;
-
-  a.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return a;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/array.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var slice = Array.prototype.slice;
Index: de_modules/d3-sankey/node_modules/d3-shape/src/constant.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function constant() {
-    return x;
-  };
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/basis.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-export function point(that, x, y) {
-  that._context.bezierCurveTo(
-    (2 * that._x0 + that._x1) / 3,
-    (2 * that._y0 + that._y1) / 3,
-    (that._x0 + 2 * that._x1) / 3,
-    (that._y0 + 2 * that._y1) / 3,
-    (that._x0 + 4 * that._x1 + x) / 6,
-    (that._y0 + 4 * that._y1 + y) / 6
-  );
-}
-
-export function Basis(context) {
-  this._context = context;
-}
-
-Basis.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 3: point(this, this._x1, this._y1); // proceed
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new Basis(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/basisClosed.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import noop from "../noop.js";
-import {point} from "./basis.js";
-
-function BasisClosed(context) {
-  this._context = context;
-}
-
-BasisClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x2, this._y2);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x2, this._y2);
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
-      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
-      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new BasisClosed(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/basisOpen.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import {point} from "./basis.js";
-
-function BasisOpen(context) {
-  this._context = context;
-}
-
-BasisOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
-      case 3: this._point = 4; // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new BasisOpen(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/bundle.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/bundle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import {Basis} from "./basis.js";
-
-function Bundle(context, beta) {
-  this._basis = new Basis(context);
-  this._beta = beta;
-}
-
-Bundle.prototype = {
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        j = x.length - 1;
-
-    if (j > 0) {
-      var x0 = x[0],
-          y0 = y[0],
-          dx = x[j] - x0,
-          dy = y[j] - y0,
-          i = -1,
-          t;
-
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(
-          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
-          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
-        );
-      }
-    }
-
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-export default (function custom(beta) {
-
-  function bundle(context) {
-    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
-  }
-
-  bundle.beta = function(beta) {
-    return custom(+beta);
-  };
-
-  return bundle;
-})(0.85);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinal.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-export function point(that, x, y) {
-  that._context.bezierCurveTo(
-    that._x1 + that._k * (that._x2 - that._x0),
-    that._y1 + that._k * (that._y2 - that._y0),
-    that._x2 + that._k * (that._x1 - x),
-    that._y2 + that._k * (that._y1 - y),
-    that._x2,
-    that._y2
-  );
-}
-
-export function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-Cardinal.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: point(this, this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
-      case 2: this._point = 3; // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalClosed.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import noop from "../noop.js";
-import {point} from "./cardinal.js";
-
-export function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalOpen.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import {point} from "./cardinal.js";
-
-export function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // proceed
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRom.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-import {epsilon} from "../math.js";
-import {Cardinal} from "./cardinal.js";
-
-export function point(that, x, y) {
-  var x1 = that._x1,
-      y1 = that._y1,
-      x2 = that._x2,
-      y2 = that._y2;
-
-  if (that._l01_a > epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-
-  if (that._l23_a > epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRom.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: this.point(this._x2, this._y2); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; // proceed
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomClosed.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import {CardinalClosed} from "./cardinalClosed.js";
-import noop from "../noop.js";
-import {point} from "./catmullRom.js";
-
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomOpen.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-import {CardinalOpen} from "./cardinalOpen.js";
-import {point} from "./catmullRom.js";
-
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // proceed
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/linear.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-function Linear(context) {
-  this._context = context;
-}
-
-Linear.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // proceed
-      default: this._context.lineTo(x, y); break;
-    }
-  }
-};
-
-export default function(context) {
-  return new Linear(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/linearClosed.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/linearClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import noop from "../noop.js";
-
-function LinearClosed(context) {
-  this._context = context;
-}
-
-LinearClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._point) this._context.closePath();
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);
-    else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-
-export default function(context) {
-  return new LinearClosed(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/monotone.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/monotone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-      h1 = x2 - that._x1,
-      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-      p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point(that, t0, t1) {
-  var x0 = that._x0,
-      y0 = that._y0,
-      x1 = that._x1,
-      y1 = that._y1,
-      dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-
-function MonotoneX(context) {
-  this._context = context;
-}
-
-MonotoneX.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 =
-    this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-      case 3: point(this, this._t0, slope2(this, this._t0)); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    var t1 = NaN;
-
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
-      default: point(this, this._t0, t1 = slope3(this, x, y)); break;
-    }
-
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-}
-
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-
-function ReflectContext(context) {
-  this._context = context;
-}
-
-ReflectContext.prototype = {
-  moveTo: function(x, y) { this._context.moveTo(y, x); },
-  closePath: function() { this._context.closePath(); },
-  lineTo: function(x, y) { this._context.lineTo(y, x); },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
-};
-
-export function monotoneX(context) {
-  return new MonotoneX(context);
-}
-
-export function monotoneY(context) {
-  return new MonotoneY(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/natural.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/natural.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-function Natural(context) {
-  this._context = context;
-}
-
-Natural.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        n = x.length;
-
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-            py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-
-    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-      n = x.length - 1,
-      m,
-      a = new Array(n),
-      b = new Array(n),
-      r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-
-export default function(context) {
-  return new Natural(context);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/radial.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import curveLinear from "./linear.js";
-
-export var curveRadialLinear = curveRadial(curveLinear);
-
-function Radial(curve) {
-  this._curve = curve;
-}
-
-Radial.prototype = {
-  areaStart: function() {
-    this._curve.areaStart();
-  },
-  areaEnd: function() {
-    this._curve.areaEnd();
-  },
-  lineStart: function() {
-    this._curve.lineStart();
-  },
-  lineEnd: function() {
-    this._curve.lineEnd();
-  },
-  point: function(a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-
-export default function curveRadial(curve) {
-
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-
-  radial._curve = curve;
-
-  return radial;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/curve/step.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/curve/step.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-
-Step.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // proceed
-      default: {
-        if (this._t <= 0) {
-          this._context.lineTo(this._x, y);
-          this._context.lineTo(x, y);
-        } else {
-          var x1 = this._x * (1 - this._t) + x * this._t;
-          this._context.lineTo(x1, this._y);
-          this._context.lineTo(x1, y);
-        }
-        break;
-      }
-    }
-    this._x = x, this._y = y;
-  }
-};
-
-export default function(context) {
-  return new Step(context, 0.5);
-}
-
-export function stepBefore(context) {
-  return new Step(context, 0);
-}
-
-export function stepAfter(context) {
-  return new Step(context, 1);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/descending.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/identity.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(d) {
-  return d;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/index.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-export {default as arc} from "./arc.js";
-export {default as area} from "./area.js";
-export {default as line} from "./line.js";
-export {default as pie} from "./pie.js";
-export {default as areaRadial, default as radialArea} from "./areaRadial.js"; // Note: radialArea is deprecated!
-export {default as lineRadial, default as radialLine} from "./lineRadial.js"; // Note: radialLine is deprecated!
-export {default as pointRadial} from "./pointRadial.js";
-export {linkHorizontal, linkVertical, linkRadial} from "./link/index.js";
-
-export {default as symbol, symbols} from "./symbol.js";
-export {default as symbolCircle} from "./symbol/circle.js";
-export {default as symbolCross} from "./symbol/cross.js";
-export {default as symbolDiamond} from "./symbol/diamond.js";
-export {default as symbolSquare} from "./symbol/square.js";
-export {default as symbolStar} from "./symbol/star.js";
-export {default as symbolTriangle} from "./symbol/triangle.js";
-export {default as symbolWye} from "./symbol/wye.js";
-
-export {default as curveBasisClosed} from "./curve/basisClosed.js";
-export {default as curveBasisOpen} from "./curve/basisOpen.js";
-export {default as curveBasis} from "./curve/basis.js";
-export {default as curveBundle} from "./curve/bundle.js";
-export {default as curveCardinalClosed} from "./curve/cardinalClosed.js";
-export {default as curveCardinalOpen} from "./curve/cardinalOpen.js";
-export {default as curveCardinal} from "./curve/cardinal.js";
-export {default as curveCatmullRomClosed} from "./curve/catmullRomClosed.js";
-export {default as curveCatmullRomOpen} from "./curve/catmullRomOpen.js";
-export {default as curveCatmullRom} from "./curve/catmullRom.js";
-export {default as curveLinearClosed} from "./curve/linearClosed.js";
-export {default as curveLinear} from "./curve/linear.js";
-export {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from "./curve/monotone.js";
-export {default as curveNatural} from "./curve/natural.js";
-export {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from "./curve/step.js";
-
-export {default as stack} from "./stack.js";
-export {default as stackOffsetExpand} from "./offset/expand.js";
-export {default as stackOffsetDiverging} from "./offset/diverging.js";
-export {default as stackOffsetNone} from "./offset/none.js";
-export {default as stackOffsetSilhouette} from "./offset/silhouette.js";
-export {default as stackOffsetWiggle} from "./offset/wiggle.js";
-export {default as stackOrderAppearance} from "./order/appearance.js";
-export {default as stackOrderAscending} from "./order/ascending.js";
-export {default as stackOrderDescending} from "./order/descending.js";
-export {default as stackOrderInsideOut} from "./order/insideOut.js";
-export {default as stackOrderNone} from "./order/none.js";
-export {default as stackOrderReverse} from "./order/reverse.js";
Index: de_modules/d3-sankey/node_modules/d3-shape/src/line.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-import {path} from "d3-path";
-import constant from "./constant.js";
-import curveLinear from "./curve/linear.js";
-import {x as pointX, y as pointY} from "./point.js";
-
-export default function() {
-  var x = pointX,
-      y = pointY,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null;
-
-  function line(data) {
-    var i,
-        n = data.length,
-        d,
-        defined0 = false,
-        buffer;
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();
-        else output.lineEnd();
-      }
-      if (defined0) output.point(+x(d, i, data), +y(d, i, data));
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  line.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), line) : x;
-  };
-
-  line.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), line) : y;
-  };
-
-  line.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined;
-  };
-
-  line.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-
-  line.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-
-  return line;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/lineRadial.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/lineRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import curveRadial, {curveRadialLinear} from "./curve/radial.js";
-import line from "./line.js";
-
-export function lineRadial(l) {
-  var c = l.curve;
-
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-
-  l.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return l;
-}
-
-export default function() {
-  return lineRadial(line().curve(curveRadialLinear));
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/link/index.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-import {path} from "d3-path";
-import {slice} from "../array.js";
-import constant from "../constant.js";
-import {x as pointX, y as pointY} from "../point.js";
-import pointRadial from "../pointRadial.js";
-
-function linkSource(d) {
-  return d.source;
-}
-
-function linkTarget(d) {
-  return d.target;
-}
-
-function link(curve) {
-  var source = linkSource,
-      target = linkTarget,
-      x = pointX,
-      y = pointY,
-      context = null;
-
-  function link() {
-    var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
-    if (!context) context = buffer = path();
-    curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  link.source = function(_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-
-  link.target = function(_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-
-  link.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), link) : x;
-  };
-
-  link.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), link) : y;
-  };
-
-  link.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), link) : context;
-  };
-
-  return link;
-}
-
-function curveHorizontal(context, x0, y0, x1, y1) {
-  context.moveTo(x0, y0);
-  context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
-}
-
-function curveVertical(context, x0, y0, x1, y1) {
-  context.moveTo(x0, y0);
-  context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
-}
-
-function curveRadial(context, x0, y0, x1, y1) {
-  var p0 = pointRadial(x0, y0),
-      p1 = pointRadial(x0, y0 = (y0 + y1) / 2),
-      p2 = pointRadial(x1, y0),
-      p3 = pointRadial(x1, y1);
-  context.moveTo(p0[0], p0[1]);
-  context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
-}
-
-export function linkHorizontal() {
-  return link(curveHorizontal);
-}
-
-export function linkVertical() {
-  return link(curveVertical);
-}
-
-export function linkRadial() {
-  var l = link(curveRadial);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/math.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export var abs = Math.abs;
-export var atan2 = Math.atan2;
-export var cos = Math.cos;
-export var max = Math.max;
-export var min = Math.min;
-export var sin = Math.sin;
-export var sqrt = Math.sqrt;
-
-export var epsilon = 1e-12;
-export var pi = Math.PI;
-export var halfPi = pi / 2;
-export var tau = 2 * pi;
-
-export function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-export function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/noop.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default function() {}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/offset/diverging.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/offset/diverging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/offset/expand.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/offset/expand.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  none(series, order);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/offset/none.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/offset/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/offset/silhouette.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/offset/silhouette.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  none(series, order);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/offset/wiggle.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/offset/wiggle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-          sij0 = si[j][1] || 0,
-          sij1 = si[j - 1][1] || 0,
-          s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-            skj0 = sk[j][1] || 0,
-            skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  none(series, order);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/appearance.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/appearance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  var peaks = series.map(peak);
-  return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
-}
-
-function peak(series) {
-  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/ascending.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  var sums = series.map(sum);
-  return none(series).sort(function(a, b) { return sums[a] - sums[b]; });
-}
-
-export function sum(series) {
-  var s = 0, i = -1, n = series.length, v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/descending.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function(series) {
-  return ascending(series).reverse();
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/insideOut.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/insideOut.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import appearance from "./appearance.js";
-import {sum} from "./ascending.js";
-
-export default function(series) {
-  var n = series.length,
-      i,
-      j,
-      sums = series.map(sum),
-      order = appearance(series),
-      top = 0,
-      bottom = 0,
-      tops = [],
-      bottoms = [];
-
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-
-  return bottoms.reverse().concat(tops);
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/none.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/order/reverse.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/order/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  return none(series).reverse();
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/pie.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/pie.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-import constant from "./constant.js";
-import descending from "./descending.js";
-import identity from "./identity.js";
-import {tau} from "./math.js";
-
-export default function() {
-  var value = identity,
-      sortValues = descending,
-      sort = null,
-      startAngle = constant(0),
-      endAngle = constant(tau),
-      padAngle = constant(0);
-
-  function pie(data) {
-    var i,
-        n = data.length,
-        j,
-        k,
-        sum = 0,
-        index = new Array(n),
-        arcs = new Array(n),
-        a0 = +startAngle.apply(this, arguments),
-        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),
-        a1,
-        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-        pa = p * (da < 0 ? -1 : 1),
-        v;
-
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
-    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-
-    return arcs;
-  }
-
-  pie.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value;
-  };
-
-  pie.sortValues = function(_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-
-  pie.sort = function(_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-
-  pie.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle;
-  };
-
-  pie.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle;
-  };
-
-  pie.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle;
-  };
-
-  return pie;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/point.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/point.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function x(p) {
-  return p[0];
-}
-
-export function y(p) {
-  return p[1];
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/pointRadial.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/pointRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/stack.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/stack.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-import {slice} from "./array.js";
-import constant from "./constant.js";
-import offsetNone from "./offset/none.js";
-import orderNone from "./order/none.js";
-
-function stackValue(d, key) {
-  return d[key];
-}
-
-export default function() {
-  var keys = constant([]),
-      order = orderNone,
-      offset = offsetNone,
-      value = stackValue;
-
-  function stack(data) {
-    var kz = keys.apply(this, arguments),
-        i,
-        m = data.length,
-        n = kz.length,
-        sz = new Array(n),
-        oz;
-
-    for (i = 0; i < n; ++i) {
-      for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
-        si[j] = sij = [0, +value(data[j], ki, j, data)];
-        sij.data = data[j];
-      }
-      si.key = ki;
-    }
-
-    for (i = 0, oz = order(sz); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-
-    offset(sz, oz);
-    return sz;
-  }
-
-  stack.keys = function(_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : constant(slice.call(_)), stack) : keys;
-  };
-
-  stack.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value;
-  };
-
-  stack.order = function(_) {
-    return arguments.length ? (order = _ == null ? orderNone : typeof _ === "function" ? _ : constant(slice.call(_)), stack) : order;
-  };
-
-  stack.offset = function(_) {
-    return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;
-  };
-
-  return stack;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {path} from "d3-path";
-import circle from "./symbol/circle.js";
-import cross from "./symbol/cross.js";
-import diamond from "./symbol/diamond.js";
-import star from "./symbol/star.js";
-import square from "./symbol/square.js";
-import triangle from "./symbol/triangle.js";
-import wye from "./symbol/wye.js";
-import constant from "./constant.js";
-
-export var symbols = [
-  circle,
-  cross,
-  diamond,
-  square,
-  star,
-  triangle,
-  wye
-];
-
-export default function() {
-  var type = constant(circle),
-      size = constant(64),
-      context = null;
-
-  function symbol() {
-    var buffer;
-    if (!context) context = buffer = path();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  symbol.type = function(_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type;
-  };
-
-  symbol.size = function(_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size;
-  };
-
-  symbol.context = function(_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-
-  return symbol;
-}
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/circle.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import {pi, tau} from "../math.js";
-
-export default {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, tau);
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/cross.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/diamond.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/diamond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-var tan30 = Math.sqrt(1 / 3),
-    tan30_2 = tan30 * 2;
-
-export default {
-  draw: function(context, size) {
-    var y = Math.sqrt(size / tan30_2),
-        x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/square.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/square.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default {
-  draw: function(context, size) {
-    var w = Math.sqrt(size),
-        x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/star.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/star.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import {pi, tau} from "../math.js";
-
-var ka = 0.89081309152928522810,
-    kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),
-    kx = Math.sin(tau / 10) * kr,
-    ky = -Math.cos(tau / 10) * kr;
-
-export default {
-  draw: function(context, size) {
-    var r = Math.sqrt(size * ka),
-        x = kx * r,
-        y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (var i = 1; i < 5; ++i) {
-      var a = tau * i / 5,
-          c = Math.cos(a),
-          s = Math.sin(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/triangle.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/triangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-var sqrt3 = Math.sqrt(3);
-
-export default {
-  draw: function(context, size) {
-    var y = -Math.sqrt(size / (sqrt3 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3 * y, -y);
-    context.lineTo(sqrt3 * y, -y);
-    context.closePath();
-  }
-};
Index: de_modules/d3-sankey/node_modules/d3-shape/src/symbol/wye.js
===================================================================
--- node_modules/d3-sankey/node_modules/d3-shape/src/symbol/wye.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-var c = -0.5,
-    s = Math.sqrt(3) / 2,
-    k = 1 / Math.sqrt(12),
-    a = (k / 2 + 1) * 3;
-
-export default {
-  draw: function(context, size) {
-    var r = Math.sqrt(size / a),
-        x0 = r / 2,
-        y0 = r * k,
-        x1 = x0,
-        y1 = r * k + r,
-        x2 = -x1,
-        y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
Index: de_modules/d3-sankey/node_modules/internmap/LICENSE
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-sankey/node_modules/internmap/README.md
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-# InternMap
-
-*For live examples, see https://observablehq.com/@mbostock/internmap.*
-
-If you use dates as keys in a JavaScript Map (or as values in a Set), you may be surprised that it won’t work as you expect.
-
-```js
-dateMap = new Map([
-  [new Date(Date.UTC(2001, 0, 1)), "red"],
-  [new Date(Date.UTC(2001, 0, 1)), "green"] // distinct key!
-])
-```
-```js
-dateMap.get(new Date(Date.UTC(2001, 0, 1))) // undefined!
-```
-
-That’s because Map uses the [SameValueZero algorithm](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness) to determine key equality: for two dates to be considered the same, they must be the same instance (the same object), not just the same moment in time. This is true of the equality operator, too.
-
-```js
-{
-  const date1 = new Date(Date.UTC(2001, 0, 1));
-  const date2 = new Date(Date.UTC(2001, 0, 1));
-  return date1 === date2; // false!
-}
-```
-
-You can avoid this issue by using primitive values such as numbers or strings as keys instead. But it’s tedious and easy to forget to coerce types. (You’ll also need to do the inverse type conversion when pulling keys out of the map, say when using *map*.keys or *map*.entries, or when iterating over the map. The inverse above is new Date(*key*). Also, if you forget to coerce your key to a number when using *map*.get, it’s easy not to notice because the map won’t throw an error; it’ll simply return undefined.)
-
-```js
-numberMap = new Map([[978307200000, "red"]])
-numberMap.get(978307200000) // "red"
-numberMap.get(new Date(978307200000)) // undefined; oops!
-```
-
-Wouldn’t it be easier if Map and Set “just worked” with dates? Or with any object that supports [*object*.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)?
-
-Enter **InternMap**. [*Interning*](https://en.wikipedia.org/wiki/String_interning) refers to storing only one copy of each distinct key. An InternMap considers two Date instances representing the same moment to be equal, storing only the first instance.
-
-```js
-map = new InternMap([
-  [new Date(Date.UTC(2001, 0, 1)), "red"],
-  [new Date(Date.UTC(2001, 0, 1)), "green"] // replaces previous entry
-])
-```
-```js
-map.get(new Date(Date.UTC(2001, 0, 1))) // "green"
-```
-```js
-[...map.keys()] // [2001-01-01]
-```
-
-InternMap extends Map, so you can simply drop it in whenever you’d prefer this behavior to the SameValueZero algorithm. Because InternMap calls *object*.valueOf only for non-primitive keys, note that you can pass primitive keys, too.
-
-```js
-map.get(978307200000) // "green"; this works too!
-```
-
-InternMap keeps only the first distinct key according to its associated primitive value. Avoid adding keys to the map with inconsistent types.
-
-```js
-map2 = new InternMap([
-  [978307200000, "red"], // danger!
-  [new Date(Date.UTC(2001, 0, 1)), "blue"]
-])
-```
-```js
-map2.get(new Date(Date.UTC(2001, 0, 1))) // "blue"; this still works…
-```
-```js
-[...map2.keys()] // [978307200000]; but the key isn’t a Date
-```
-
-While InternMap uses *object*.valueOf by default to compute the intern key, you can pass a key function as a second argument to the constructor to change the behavior. For example, if you use JSON.stringify, you can use arrays as compound keys (assuming that the array elements can be serialized to JSON).
-
-```js
-map3 = new InternMap([
-  [["foo", "bar"], 1],
-  [["foo", "baz"], 2],
-  [["goo", "bee"], 3]
-], JSON.stringify)
-```
-```js
-map3.get(["foo", "baz"]) // 2
-```
-
-There’s an **InternSet** class, too.
-
-```js
-set = new InternSet([
-  new Date(Date.UTC(2000, 0, 1)),
-  new Date(Date.UTC(2001, 0, 1)),
-  new Date(Date.UTC(2001, 0, 1))
-])
-```
Index: de_modules/d3-sankey/node_modules/internmap/dist/internmap.js
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/dist/internmap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-// https://github.com/mbostock/internmap/ v1.0.1 Copyright 2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.internmap = {}));
-}(this, (function (exports) { 'use strict';
-
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(value);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-exports.InternMap = InternMap;
-exports.InternSet = InternSet;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-sankey/node_modules/internmap/dist/internmap.min.js
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/dist/internmap.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://github.com/mbostock/internmap/ v1.0.1 Copyright 2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).internmap={})}(this,(function(e){"use strict";class t extends Map{constructor(e,t=i){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,n]of e)this.set(t,n)}get(e){return super.get(s(this,e))}has(e){return super.has(s(this,e))}set(e,t){return super.set(r(this,e),t)}delete(e){return super.delete(u(this,e))}}class n extends Set{constructor(e,t=i){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const t of e)this.add(t)}has(e){return super.has(s(this,e))}add(e){return super.add(r(this,e))}delete(e){return super.delete(u(this,e))}}function s({_intern:e,_key:t},n){const s=t(n);return e.has(s)?e.get(s):n}function r({_intern:e,_key:t},n){const s=t(n);return e.has(s)?e.get(s):(e.set(s,n),n)}function u({_intern:e,_key:t},n){const s=t(n);return e.has(s)&&(n=e.get(n),e.delete(s)),n}function i(e){return null!==e&&"object"==typeof e?e.valueOf():e}e.InternMap=t,e.InternSet=n,Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/d3-sankey/node_modules/internmap/package.json
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-{
-  "name": "internmap",
-  "version": "1.0.1",
-  "description": "Map and Set with automatic key interning",
-  "homepage": "https://github.com/mbostock/internmap/",
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "main": "dist/internmap.js",
-  "unpkg": "dist/internmap.min.js",
-  "module": "src/index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mbostock/internmap.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "pretest": "rollup -c",
-    "test": "tape test/**/*-test.js && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test",
-    "postpublish": "git push && git push --tags"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "^7.18.0",
-    "rollup": "^2.37.1",
-    "rollup-plugin-terser": "^7.0.2",
-    "tape": "^4.13.3",
-    "tape-await": "^0.1.2"
-  }
-}
Index: de_modules/d3-sankey/node_modules/internmap/src/index.js
===================================================================
--- node_modules/d3-sankey/node_modules/internmap/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-export class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-export class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(value);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
Index: de_modules/d3-sankey/package.json
===================================================================
--- node_modules/d3-sankey/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-{
-  "name": "d3-sankey",
-  "version": "0.12.3",
-  "description": "Visualize flow between nodes in a directed acyclic network.",
-  "keywords": [
-    "d3",
-    "d3-module",
-    "sankey"
-  ],
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike/"
-  },
-  "license": "BSD-3-Clause",
-  "main": "dist/d3-sankey.js",
-  "unpkg": "dist/d3-sankey.min.js",
-  "module": "src/index.js",
-  "homepage": "https://github.com/d3/d3-sankey",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-sankey.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "pretest": "rollup -c",
-    "test": "tape 'test/**/*-test.js' && eslint src",
-    "prepublishOnly": "rm -rf dist && yarn test",
-    "postpublish": "git push && git push --tags && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js"
-  },
-  "dependencies": {
-    "d3-array": "1 - 2",
-    "d3-shape": "^1.2.0"
-  },
-  "devDependencies": {
-    "eslint": "6",
-    "rollup": "1",
-    "rollup-plugin-terser": "5",
-    "tape": "4"
-  }
-}
Index: de_modules/d3-sankey/src/align.js
===================================================================
--- node_modules/d3-sankey/src/align.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import {min} from "d3-array";
-
-function targetDepth(d) {
-  return d.target.depth;
-}
-
-export function left(node) {
-  return node.depth;
-}
-
-export function right(node, n) {
-  return n - 1 - node.height;
-}
-
-export function justify(node, n) {
-  return node.sourceLinks.length ? node.depth : n - 1;
-}
-
-export function center(node) {
-  return node.targetLinks.length ? node.depth
-      : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1
-      : 0;
-}
Index: de_modules/d3-sankey/src/constant.js
===================================================================
--- node_modules/d3-sankey/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function constant(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-sankey/src/index.js
===================================================================
--- node_modules/d3-sankey/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export {default as sankey} from "./sankey.js";
-export {center as sankeyCenter, left as sankeyLeft, right as sankeyRight, justify as sankeyJustify} from "./align.js";
-export {default as sankeyLinkHorizontal} from "./sankeyLinkHorizontal.js";
Index: de_modules/d3-sankey/src/sankey.js
===================================================================
--- node_modules/d3-sankey/src/sankey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,369 +1,0 @@
-import {max, min, sum} from "d3-array";
-import {justify} from "./align.js";
-import constant from "./constant.js";
-
-function ascendingSourceBreadth(a, b) {
-  return ascendingBreadth(a.source, b.source) || a.index - b.index;
-}
-
-function ascendingTargetBreadth(a, b) {
-  return ascendingBreadth(a.target, b.target) || a.index - b.index;
-}
-
-function ascendingBreadth(a, b) {
-  return a.y0 - b.y0;
-}
-
-function value(d) {
-  return d.value;
-}
-
-function defaultId(d) {
-  return d.index;
-}
-
-function defaultNodes(graph) {
-  return graph.nodes;
-}
-
-function defaultLinks(graph) {
-  return graph.links;
-}
-
-function find(nodeById, id) {
-  const node = nodeById.get(id);
-  if (!node) throw new Error("missing: " + id);
-  return node;
-}
-
-function computeLinkBreadths({nodes}) {
-  for (const node of nodes) {
-    let y0 = node.y0;
-    let y1 = y0;
-    for (const link of node.sourceLinks) {
-      link.y0 = y0 + link.width / 2;
-      y0 += link.width;
-    }
-    for (const link of node.targetLinks) {
-      link.y1 = y1 + link.width / 2;
-      y1 += link.width;
-    }
-  }
-}
-
-export default function Sankey() {
-  let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent
-  let dx = 24; // nodeWidth
-  let dy = 8, py; // nodePadding
-  let id = defaultId;
-  let align = justify;
-  let sort;
-  let linkSort;
-  let nodes = defaultNodes;
-  let links = defaultLinks;
-  let iterations = 6;
-
-  function sankey() {
-    const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};
-    computeNodeLinks(graph);
-    computeNodeValues(graph);
-    computeNodeDepths(graph);
-    computeNodeHeights(graph);
-    computeNodeBreadths(graph);
-    computeLinkBreadths(graph);
-    return graph;
-  }
-
-  sankey.update = function(graph) {
-    computeLinkBreadths(graph);
-    return graph;
-  };
-
-  sankey.nodeId = function(_) {
-    return arguments.length ? (id = typeof _ === "function" ? _ : constant(_), sankey) : id;
-  };
-
-  sankey.nodeAlign = function(_) {
-    return arguments.length ? (align = typeof _ === "function" ? _ : constant(_), sankey) : align;
-  };
-
-  sankey.nodeSort = function(_) {
-    return arguments.length ? (sort = _, sankey) : sort;
-  };
-
-  sankey.nodeWidth = function(_) {
-    return arguments.length ? (dx = +_, sankey) : dx;
-  };
-
-  sankey.nodePadding = function(_) {
-    return arguments.length ? (dy = py = +_, sankey) : dy;
-  };
-
-  sankey.nodes = function(_) {
-    return arguments.length ? (nodes = typeof _ === "function" ? _ : constant(_), sankey) : nodes;
-  };
-
-  sankey.links = function(_) {
-    return arguments.length ? (links = typeof _ === "function" ? _ : constant(_), sankey) : links;
-  };
-
-  sankey.linkSort = function(_) {
-    return arguments.length ? (linkSort = _, sankey) : linkSort;
-  };
-
-  sankey.size = function(_) {
-    return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];
-  };
-
-  sankey.extent = function(_) {
-    return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];
-  };
-
-  sankey.iterations = function(_) {
-    return arguments.length ? (iterations = +_, sankey) : iterations;
-  };
-
-  function computeNodeLinks({nodes, links}) {
-    for (const [i, node] of nodes.entries()) {
-      node.index = i;
-      node.sourceLinks = [];
-      node.targetLinks = [];
-    }
-    const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));
-    for (const [i, link] of links.entries()) {
-      link.index = i;
-      let {source, target} = link;
-      if (typeof source !== "object") source = link.source = find(nodeById, source);
-      if (typeof target !== "object") target = link.target = find(nodeById, target);
-      source.sourceLinks.push(link);
-      target.targetLinks.push(link);
-    }
-    if (linkSort != null) {
-      for (const {sourceLinks, targetLinks} of nodes) {
-        sourceLinks.sort(linkSort);
-        targetLinks.sort(linkSort);
-      }
-    }
-  }
-
-  function computeNodeValues({nodes}) {
-    for (const node of nodes) {
-      node.value = node.fixedValue === undefined
-          ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))
-          : node.fixedValue;
-    }
-  }
-
-  function computeNodeDepths({nodes}) {
-    const n = nodes.length;
-    let current = new Set(nodes);
-    let next = new Set;
-    let x = 0;
-    while (current.size) {
-      for (const node of current) {
-        node.depth = x;
-        for (const {target} of node.sourceLinks) {
-          next.add(target);
-        }
-      }
-      if (++x > n) throw new Error("circular link");
-      current = next;
-      next = new Set;
-    }
-  }
-
-  function computeNodeHeights({nodes}) {
-    const n = nodes.length;
-    let current = new Set(nodes);
-    let next = new Set;
-    let x = 0;
-    while (current.size) {
-      for (const node of current) {
-        node.height = x;
-        for (const {source} of node.targetLinks) {
-          next.add(source);
-        }
-      }
-      if (++x > n) throw new Error("circular link");
-      current = next;
-      next = new Set;
-    }
-  }
-
-  function computeNodeLayers({nodes}) {
-    const x = max(nodes, d => d.depth) + 1;
-    const kx = (x1 - x0 - dx) / (x - 1);
-    const columns = new Array(x);
-    for (const node of nodes) {
-      const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));
-      node.layer = i;
-      node.x0 = x0 + i * kx;
-      node.x1 = node.x0 + dx;
-      if (columns[i]) columns[i].push(node);
-      else columns[i] = [node];
-    }
-    if (sort) for (const column of columns) {
-      column.sort(sort);
-    }
-    return columns;
-  }
-
-  function initializeNodeBreadths(columns) {
-    const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));
-    for (const nodes of columns) {
-      let y = y0;
-      for (const node of nodes) {
-        node.y0 = y;
-        node.y1 = y + node.value * ky;
-        y = node.y1 + py;
-        for (const link of node.sourceLinks) {
-          link.width = link.value * ky;
-        }
-      }
-      y = (y1 - y + py) / (nodes.length + 1);
-      for (let i = 0; i < nodes.length; ++i) {
-        const node = nodes[i];
-        node.y0 += y * (i + 1);
-        node.y1 += y * (i + 1);
-      }
-      reorderLinks(nodes);
-    }
-  }
-
-  function computeNodeBreadths(graph) {
-    const columns = computeNodeLayers(graph);
-    py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));
-    initializeNodeBreadths(columns);
-    for (let i = 0; i < iterations; ++i) {
-      const alpha = Math.pow(0.99, i);
-      const beta = Math.max(1 - alpha, (i + 1) / iterations);
-      relaxRightToLeft(columns, alpha, beta);
-      relaxLeftToRight(columns, alpha, beta);
-    }
-  }
-
-  // Reposition each node based on its incoming (target) links.
-  function relaxLeftToRight(columns, alpha, beta) {
-    for (let i = 1, n = columns.length; i < n; ++i) {
-      const column = columns[i];
-      for (const target of column) {
-        let y = 0;
-        let w = 0;
-        for (const {source, value} of target.targetLinks) {
-          let v = value * (target.layer - source.layer);
-          y += targetTop(source, target) * v;
-          w += v;
-        }
-        if (!(w > 0)) continue;
-        let dy = (y / w - target.y0) * alpha;
-        target.y0 += dy;
-        target.y1 += dy;
-        reorderNodeLinks(target);
-      }
-      if (sort === undefined) column.sort(ascendingBreadth);
-      resolveCollisions(column, beta);
-    }
-  }
-
-  // Reposition each node based on its outgoing (source) links.
-  function relaxRightToLeft(columns, alpha, beta) {
-    for (let n = columns.length, i = n - 2; i >= 0; --i) {
-      const column = columns[i];
-      for (const source of column) {
-        let y = 0;
-        let w = 0;
-        for (const {target, value} of source.sourceLinks) {
-          let v = value * (target.layer - source.layer);
-          y += sourceTop(source, target) * v;
-          w += v;
-        }
-        if (!(w > 0)) continue;
-        let dy = (y / w - source.y0) * alpha;
-        source.y0 += dy;
-        source.y1 += dy;
-        reorderNodeLinks(source);
-      }
-      if (sort === undefined) column.sort(ascendingBreadth);
-      resolveCollisions(column, beta);
-    }
-  }
-
-  function resolveCollisions(nodes, alpha) {
-    const i = nodes.length >> 1;
-    const subject = nodes[i];
-    resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);
-    resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);
-    resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);
-    resolveCollisionsTopToBottom(nodes, y0, 0, alpha);
-  }
-
-  // Push any overlapping nodes down.
-  function resolveCollisionsTopToBottom(nodes, y, i, alpha) {
-    for (; i < nodes.length; ++i) {
-      const node = nodes[i];
-      const dy = (y - node.y0) * alpha;
-      if (dy > 1e-6) node.y0 += dy, node.y1 += dy;
-      y = node.y1 + py;
-    }
-  }
-
-  // Push any overlapping nodes up.
-  function resolveCollisionsBottomToTop(nodes, y, i, alpha) {
-    for (; i >= 0; --i) {
-      const node = nodes[i];
-      const dy = (node.y1 - y) * alpha;
-      if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;
-      y = node.y0 - py;
-    }
-  }
-
-  function reorderNodeLinks({sourceLinks, targetLinks}) {
-    if (linkSort === undefined) {
-      for (const {source: {sourceLinks}} of targetLinks) {
-        sourceLinks.sort(ascendingTargetBreadth);
-      }
-      for (const {target: {targetLinks}} of sourceLinks) {
-        targetLinks.sort(ascendingSourceBreadth);
-      }
-    }
-  }
-
-  function reorderLinks(nodes) {
-    if (linkSort === undefined) {
-      for (const {sourceLinks, targetLinks} of nodes) {
-        sourceLinks.sort(ascendingTargetBreadth);
-        targetLinks.sort(ascendingSourceBreadth);
-      }
-    }
-  }
-
-  // Returns the target.y0 that would produce an ideal link from source to target.
-  function targetTop(source, target) {
-    let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;
-    for (const {target: node, width} of source.sourceLinks) {
-      if (node === target) break;
-      y += width + py;
-    }
-    for (const {source: node, width} of target.targetLinks) {
-      if (node === source) break;
-      y -= width;
-    }
-    return y;
-  }
-
-  // Returns the source.y0 that would produce an ideal link from source to target.
-  function sourceTop(source, target) {
-    let y = target.y0 - (target.targetLinks.length - 1) * py / 2;
-    for (const {source: node, width} of target.targetLinks) {
-      if (node === source) break;
-      y += width + py;
-    }
-    for (const {target: node, width} of source.sourceLinks) {
-      if (node === target) break;
-      y -= width;
-    }
-    return y;
-  }
-
-  return sankey;
-}
Index: de_modules/d3-sankey/src/sankeyLinkHorizontal.js
===================================================================
--- node_modules/d3-sankey/src/sankeyLinkHorizontal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {linkHorizontal} from "d3-shape";
-
-function horizontalSource(d) {
-  return [d.source.x1, d.y0];
-}
-
-function horizontalTarget(d) {
-  return [d.target.x0, d.y1];
-}
-
-export default function() {
-  return linkHorizontal()
-      .source(horizontalSource)
-      .target(horizontalTarget);
-}
Index: de_modules/d3-scale-chromatic/LICENSE
===================================================================
--- node_modules/d3-scale-chromatic/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-Copyright 2010-2024 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
-Apache-Style Software License for ColorBrewer software and ColorBrewer Color Schemes
-
-Copyright 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software distributed
-under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-CONDITIONS OF ANY KIND, either express or implied. See the License for the
-specific language governing permissions and limitations under the License.
Index: de_modules/d3-scale-chromatic/README.md
===================================================================
--- node_modules/d3-scale-chromatic/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# d3-scale-chromatic
-
-<a href="https://d3js.org"><img src="https://github.com/d3/d3/raw/main/docs/public/logo.svg" width="256" height="256"></a>
-
-This module provides sequential, diverging and categorical color schemes designed to work with [d3-scale](https://github.com/d3/d3-scale)’s scaleOrdinal and scaleSequential. Most of these schemes are derived from Cynthia A. Brewer’s [ColorBrewer](http://colorbrewer2.org). Since ColorBrewer publishes only discrete color schemes, the sequential and diverging scales are interpolated using [uniform B-splines](https://observablehq.com/@d3/colorbrewer-splines).
-
-## Resources
-
-- [Documentation](https://d3js.org/d3-scale-chromatic)
-- [Examples](https://observablehq.com/collection/@d3/d3-scale-chromatic)
-- [Releases](https://github.com/d3/d3-scale-chromatic/releases)
-- [Getting help](https://d3js.org/community)
Index: de_modules/d3-scale-chromatic/dist/d3-scale-chromatic.js
===================================================================
--- node_modules/d3-scale-chromatic/dist/d3-scale-chromatic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,522 +1,0 @@
-// https://d3js.org/d3-scale-chromatic/ v3.1.0 Copyright 2010-2024 Mike Bostock; 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-interpolate'), require('d3-color')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-interpolate', 'd3-color'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3));
-})(this, (function (exports, d3Interpolate, d3Color) { 'use strict';
-
-function colors(specifier) {
-  var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
-  while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
-  return colors;
-}
-
-var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
-
-var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");
-
-var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");
-
-var observable10 = colors("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0");
-
-var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");
-
-var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");
-
-var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");
-
-var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");
-
-var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");
-
-var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");
-
-var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
-
-var ramp$1 = scheme => d3Interpolate.interpolateRgbBasis(scheme[scheme.length - 1]);
-
-var scheme$q = new Array(3).concat(
-  "d8b365f5f5f55ab4ac",
-  "a6611adfc27d80cdc1018571",
-  "a6611adfc27df5f5f580cdc1018571",
-  "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
-  "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
-  "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
-  "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
-  "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
-  "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
-).map(colors);
-
-var BrBG = ramp$1(scheme$q);
-
-var scheme$p = new Array(3).concat(
-  "af8dc3f7f7f77fbf7b",
-  "7b3294c2a5cfa6dba0008837",
-  "7b3294c2a5cff7f7f7a6dba0008837",
-  "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
-  "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
-  "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
-  "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
-  "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
-  "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
-).map(colors);
-
-var PRGn = ramp$1(scheme$p);
-
-var scheme$o = new Array(3).concat(
-  "e9a3c9f7f7f7a1d76a",
-  "d01c8bf1b6dab8e1864dac26",
-  "d01c8bf1b6daf7f7f7b8e1864dac26",
-  "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
-  "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
-  "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
-  "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
-  "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
-  "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
-).map(colors);
-
-var PiYG = ramp$1(scheme$o);
-
-var scheme$n = new Array(3).concat(
-  "998ec3f7f7f7f1a340",
-  "5e3c99b2abd2fdb863e66101",
-  "5e3c99b2abd2f7f7f7fdb863e66101",
-  "542788998ec3d8daebfee0b6f1a340b35806",
-  "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
-  "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
-  "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
-  "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
-  "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
-).map(colors);
-
-var PuOr = ramp$1(scheme$n);
-
-var scheme$m = new Array(3).concat(
-  "ef8a62f7f7f767a9cf",
-  "ca0020f4a58292c5de0571b0",
-  "ca0020f4a582f7f7f792c5de0571b0",
-  "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
-  "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
-  "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
-  "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
-  "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
-  "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
-).map(colors);
-
-var RdBu = ramp$1(scheme$m);
-
-var scheme$l = new Array(3).concat(
-  "ef8a62ffffff999999",
-  "ca0020f4a582bababa404040",
-  "ca0020f4a582ffffffbababa404040",
-  "b2182bef8a62fddbc7e0e0e09999994d4d4d",
-  "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
-  "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
-  "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
-  "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
-  "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
-).map(colors);
-
-var RdGy = ramp$1(scheme$l);
-
-var scheme$k = new Array(3).concat(
-  "fc8d59ffffbf91bfdb",
-  "d7191cfdae61abd9e92c7bb6",
-  "d7191cfdae61ffffbfabd9e92c7bb6",
-  "d73027fc8d59fee090e0f3f891bfdb4575b4",
-  "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
-  "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
-  "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
-  "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
-  "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
-).map(colors);
-
-var RdYlBu = ramp$1(scheme$k);
-
-var scheme$j = new Array(3).concat(
-  "fc8d59ffffbf91cf60",
-  "d7191cfdae61a6d96a1a9641",
-  "d7191cfdae61ffffbfa6d96a1a9641",
-  "d73027fc8d59fee08bd9ef8b91cf601a9850",
-  "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
-  "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
-  "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
-  "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
-  "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
-).map(colors);
-
-var RdYlGn = ramp$1(scheme$j);
-
-var scheme$i = new Array(3).concat(
-  "fc8d59ffffbf99d594",
-  "d7191cfdae61abdda42b83ba",
-  "d7191cfdae61ffffbfabdda42b83ba",
-  "d53e4ffc8d59fee08be6f59899d5943288bd",
-  "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
-  "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
-  "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
-  "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
-  "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
-).map(colors);
-
-var Spectral = ramp$1(scheme$i);
-
-var scheme$h = new Array(3).concat(
-  "e5f5f999d8c92ca25f",
-  "edf8fbb2e2e266c2a4238b45",
-  "edf8fbb2e2e266c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
-).map(colors);
-
-var BuGn = ramp$1(scheme$h);
-
-var scheme$g = new Array(3).concat(
-  "e0ecf49ebcda8856a7",
-  "edf8fbb3cde38c96c688419d",
-  "edf8fbb3cde38c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
-).map(colors);
-
-var BuPu = ramp$1(scheme$g);
-
-var scheme$f = new Array(3).concat(
-  "e0f3dba8ddb543a2ca",
-  "f0f9e8bae4bc7bccc42b8cbe",
-  "f0f9e8bae4bc7bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
-).map(colors);
-
-var GnBu = ramp$1(scheme$f);
-
-var scheme$e = new Array(3).concat(
-  "fee8c8fdbb84e34a33",
-  "fef0d9fdcc8afc8d59d7301f",
-  "fef0d9fdcc8afc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
-).map(colors);
-
-var OrRd = ramp$1(scheme$e);
-
-var scheme$d = new Array(3).concat(
-  "ece2f0a6bddb1c9099",
-  "f6eff7bdc9e167a9cf02818a",
-  "f6eff7bdc9e167a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
-).map(colors);
-
-var PuBuGn = ramp$1(scheme$d);
-
-var scheme$c = new Array(3).concat(
-  "ece7f2a6bddb2b8cbe",
-  "f1eef6bdc9e174a9cf0570b0",
-  "f1eef6bdc9e174a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
-).map(colors);
-
-var PuBu = ramp$1(scheme$c);
-
-var scheme$b = new Array(3).concat(
-  "e7e1efc994c7dd1c77",
-  "f1eef6d7b5d8df65b0ce1256",
-  "f1eef6d7b5d8df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
-).map(colors);
-
-var PuRd = ramp$1(scheme$b);
-
-var scheme$a = new Array(3).concat(
-  "fde0ddfa9fb5c51b8a",
-  "feebe2fbb4b9f768a1ae017e",
-  "feebe2fbb4b9f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
-).map(colors);
-
-var RdPu = ramp$1(scheme$a);
-
-var scheme$9 = new Array(3).concat(
-  "edf8b17fcdbb2c7fb8",
-  "ffffcca1dab441b6c4225ea8",
-  "ffffcca1dab441b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
-).map(colors);
-
-var YlGnBu = ramp$1(scheme$9);
-
-var scheme$8 = new Array(3).concat(
-  "f7fcb9addd8e31a354",
-  "ffffccc2e69978c679238443",
-  "ffffccc2e69978c67931a354006837",
-  "ffffccd9f0a3addd8e78c67931a354006837",
-  "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
-).map(colors);
-
-var YlGn = ramp$1(scheme$8);
-
-var scheme$7 = new Array(3).concat(
-  "fff7bcfec44fd95f0e",
-  "ffffd4fed98efe9929cc4c02",
-  "ffffd4fed98efe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
-).map(colors);
-
-var YlOrBr = ramp$1(scheme$7);
-
-var scheme$6 = new Array(3).concat(
-  "ffeda0feb24cf03b20",
-  "ffffb2fecc5cfd8d3ce31a1c",
-  "ffffb2fecc5cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
-).map(colors);
-
-var YlOrRd = ramp$1(scheme$6);
-
-var scheme$5 = new Array(3).concat(
-  "deebf79ecae13182bd",
-  "eff3ffbdd7e76baed62171b5",
-  "eff3ffbdd7e76baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
-).map(colors);
-
-var Blues = ramp$1(scheme$5);
-
-var scheme$4 = new Array(3).concat(
-  "e5f5e0a1d99b31a354",
-  "edf8e9bae4b374c476238b45",
-  "edf8e9bae4b374c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
-).map(colors);
-
-var Greens = ramp$1(scheme$4);
-
-var scheme$3 = new Array(3).concat(
-  "f0f0f0bdbdbd636363",
-  "f7f7f7cccccc969696525252",
-  "f7f7f7cccccc969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
-).map(colors);
-
-var Greys = ramp$1(scheme$3);
-
-var scheme$2 = new Array(3).concat(
-  "efedf5bcbddc756bb1",
-  "f2f0f7cbc9e29e9ac86a51a3",
-  "f2f0f7cbc9e29e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
-).map(colors);
-
-var Purples = ramp$1(scheme$2);
-
-var scheme$1 = new Array(3).concat(
-  "fee0d2fc9272de2d26",
-  "fee5d9fcae91fb6a4acb181d",
-  "fee5d9fcae91fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
-).map(colors);
-
-var Reds = ramp$1(scheme$1);
-
-var scheme = new Array(3).concat(
-  "fee6cefdae6be6550d",
-  "feeddefdbe85fd8d3cd94701",
-  "feeddefdbe85fd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
-).map(colors);
-
-var Oranges = ramp$1(scheme);
-
-function cividis(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))
-      + ")";
-}
-
-var cubehelix = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300, 0.5, 0.0), d3Color.cubehelix(-240, 0.5, 1.0));
-
-var warm = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));
-
-var cool = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));
-
-var c$1 = d3Color.cubehelix();
-
-function rainbow(t) {
-  if (t < 0 || t > 1) t -= Math.floor(t);
-  var ts = Math.abs(t - 0.5);
-  c$1.h = 360 * t - 100;
-  c$1.s = 1.5 - 1.5 * ts;
-  c$1.l = 0.8 - 0.9 * ts;
-  return c$1 + "";
-}
-
-var c = d3Color.rgb(),
-    pi_1_3 = Math.PI / 3,
-    pi_2_3 = Math.PI * 2 / 3;
-
-function sinebow(t) {
-  var x;
-  t = (0.5 - t) * Math.PI;
-  c.r = 255 * (x = Math.sin(t)) * x;
-  c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
-  c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
-  return c + "";
-}
-
-function turbo(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))
-      + ")";
-}
-
-function ramp(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
-
-var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));
-
-var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
-
-var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
-
-var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
-
-exports.interpolateBlues = Blues;
-exports.interpolateBrBG = BrBG;
-exports.interpolateBuGn = BuGn;
-exports.interpolateBuPu = BuPu;
-exports.interpolateCividis = cividis;
-exports.interpolateCool = cool;
-exports.interpolateCubehelixDefault = cubehelix;
-exports.interpolateGnBu = GnBu;
-exports.interpolateGreens = Greens;
-exports.interpolateGreys = Greys;
-exports.interpolateInferno = inferno;
-exports.interpolateMagma = magma;
-exports.interpolateOrRd = OrRd;
-exports.interpolateOranges = Oranges;
-exports.interpolatePRGn = PRGn;
-exports.interpolatePiYG = PiYG;
-exports.interpolatePlasma = plasma;
-exports.interpolatePuBu = PuBu;
-exports.interpolatePuBuGn = PuBuGn;
-exports.interpolatePuOr = PuOr;
-exports.interpolatePuRd = PuRd;
-exports.interpolatePurples = Purples;
-exports.interpolateRainbow = rainbow;
-exports.interpolateRdBu = RdBu;
-exports.interpolateRdGy = RdGy;
-exports.interpolateRdPu = RdPu;
-exports.interpolateRdYlBu = RdYlBu;
-exports.interpolateRdYlGn = RdYlGn;
-exports.interpolateReds = Reds;
-exports.interpolateSinebow = sinebow;
-exports.interpolateSpectral = Spectral;
-exports.interpolateTurbo = turbo;
-exports.interpolateViridis = viridis;
-exports.interpolateWarm = warm;
-exports.interpolateYlGn = YlGn;
-exports.interpolateYlGnBu = YlGnBu;
-exports.interpolateYlOrBr = YlOrBr;
-exports.interpolateYlOrRd = YlOrRd;
-exports.schemeAccent = Accent;
-exports.schemeBlues = scheme$5;
-exports.schemeBrBG = scheme$q;
-exports.schemeBuGn = scheme$h;
-exports.schemeBuPu = scheme$g;
-exports.schemeCategory10 = category10;
-exports.schemeDark2 = Dark2;
-exports.schemeGnBu = scheme$f;
-exports.schemeGreens = scheme$4;
-exports.schemeGreys = scheme$3;
-exports.schemeObservable10 = observable10;
-exports.schemeOrRd = scheme$e;
-exports.schemeOranges = scheme;
-exports.schemePRGn = scheme$p;
-exports.schemePaired = Paired;
-exports.schemePastel1 = Pastel1;
-exports.schemePastel2 = Pastel2;
-exports.schemePiYG = scheme$o;
-exports.schemePuBu = scheme$c;
-exports.schemePuBuGn = scheme$d;
-exports.schemePuOr = scheme$n;
-exports.schemePuRd = scheme$b;
-exports.schemePurples = scheme$2;
-exports.schemeRdBu = scheme$m;
-exports.schemeRdGy = scheme$l;
-exports.schemeRdPu = scheme$a;
-exports.schemeRdYlBu = scheme$k;
-exports.schemeRdYlGn = scheme$j;
-exports.schemeReds = scheme$1;
-exports.schemeSet1 = Set1;
-exports.schemeSet2 = Set2;
-exports.schemeSet3 = Set3;
-exports.schemeSpectral = scheme$i;
-exports.schemeTableau10 = Tableau10;
-exports.schemeYlGn = scheme$8;
-exports.schemeYlGnBu = scheme$9;
-exports.schemeYlOrBr = scheme$7;
-exports.schemeYlOrRd = scheme$6;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-scale-chromatic/dist/d3-scale-chromatic.min.js
===================================================================
--- node_modules/d3-scale-chromatic/dist/d3-scale-chromatic.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-scale-chromatic/ v3.1.0 Copyright 2010-2024 Mike Bostock; 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
-!function(f,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-interpolate"),require("d3-color")):"function"==typeof define&&define.amd?define(["exports","d3-interpolate","d3-color"],e):e((f="undefined"!=typeof globalThis?globalThis:f||self).d3=f.d3||{},f.d3,f.d3)}(this,(function(f,e,d){"use strict";function a(f){for(var e=f.length/6|0,d=new Array(e),a=0;a<e;)d[a]="#"+f.slice(6*a,6*++a);return d}var c=a("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),b=a("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),t=a("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),n=a("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),r=a("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),o=a("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),i=a("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),l=a("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),h=a("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),m=a("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),p=a("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),u=f=>e.interpolateRgbBasis(f[f.length-1]),s=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(a),y=u(s),M=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(a),w=u(M),A=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(a),P=u(A),B=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(a),G=u(B),x=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(a),R=u(x),g=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(a),Y=u(g),O=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(a),v=u(O),C=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(a),S=u(C),I=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(a),T=u(I),L=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(a),j=u(L),q=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(a),D=u(q),_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(a),k=u(_),V=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(a),W=u(V),z=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(a),E=u(z),F=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(a),H=u(F),J=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(a),K=u(J),N=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(a),Q=u(N),U=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(a),X=u(U),Z=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(a),$=u(Z),ff=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(a),ef=u(ff),df=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(a),af=u(df),cf=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(a),bf=u(cf),tf=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(a),nf=u(tf),rf=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(a),of=u(rf),lf=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(a),hf=u(lf),mf=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(a),pf=u(mf),uf=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(a),sf=u(uf);var yf=e.interpolateCubehelixLong(d.cubehelix(300,.5,0),d.cubehelix(-240,.5,1)),Mf=e.interpolateCubehelixLong(d.cubehelix(-100,.75,.35),d.cubehelix(80,1.5,.8)),wf=e.interpolateCubehelixLong(d.cubehelix(260,.75,.35),d.cubehelix(80,1.5,.8)),Af=d.cubehelix();var Pf=d.rgb(),Bf=Math.PI/3,Gf=2*Math.PI/3;function xf(f){var e=f.length;return function(d){return f[Math.max(0,Math.min(e-1,Math.floor(d*e)))]}}var Rf=xf(a("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),gf=xf(a("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Yf=xf(a("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Of=xf(a("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));f.interpolateBlues=bf,f.interpolateBrBG=y,f.interpolateBuGn=j,f.interpolateBuPu=D,f.interpolateCividis=function(f){return f=Math.max(0,Math.min(1,f)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-f*(35.34-f*(2381.73-f*(6402.7-f*(7024.72-2710.57*f)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+f*(170.73+f*(52.82-f*(131.46-f*(176.58-67.37*f)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+f*(442.36-f*(2482.43-f*(6167.24-f*(6614.94-2475.67*f)))))))+")"},f.interpolateCool=wf,f.interpolateCubehelixDefault=yf,f.interpolateGnBu=k,f.interpolateGreens=nf,f.interpolateGreys=of,f.interpolateInferno=Yf,f.interpolateMagma=gf,f.interpolateOrRd=W,f.interpolateOranges=sf,f.interpolatePRGn=w,f.interpolatePiYG=P,f.interpolatePlasma=Of,f.interpolatePuBu=H,f.interpolatePuBuGn=E,f.interpolatePuOr=G,f.interpolatePuRd=K,f.interpolatePurples=hf,f.interpolateRainbow=function(f){(f<0||f>1)&&(f-=Math.floor(f));var e=Math.abs(f-.5);return Af.h=360*f-100,Af.s=1.5-1.5*e,Af.l=.8-.9*e,Af+""},f.interpolateRdBu=R,f.interpolateRdGy=Y,f.interpolateRdPu=Q,f.interpolateRdYlBu=v,f.interpolateRdYlGn=S,f.interpolateReds=pf,f.interpolateSinebow=function(f){var e;return f=(.5-f)*Math.PI,Pf.r=255*(e=Math.sin(f))*e,Pf.g=255*(e=Math.sin(f+Bf))*e,Pf.b=255*(e=Math.sin(f+Gf))*e,Pf+""},f.interpolateSpectral=T,f.interpolateTurbo=function(f){return f=Math.max(0,Math.min(1,f)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+f*(1172.33-f*(10793.56-f*(33300.12-f*(38394.49-14825.05*f)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+f*(557.33+f*(1225.33-f*(3574.96-f*(1073.77+707.56*f)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+f*(3211.1-f*(15327.97-f*(27814-f*(22569.18-6838.66*f)))))))+")"},f.interpolateViridis=Rf,f.interpolateWarm=Mf,f.interpolateYlGn=$,f.interpolateYlGnBu=X,f.interpolateYlOrBr=ef,f.interpolateYlOrRd=af,f.schemeAccent=b,f.schemeBlues=cf,f.schemeBrBG=s,f.schemeBuGn=L,f.schemeBuPu=q,f.schemeCategory10=c,f.schemeDark2=t,f.schemeGnBu=_,f.schemeGreens=tf,f.schemeGreys=rf,f.schemeObservable10=n,f.schemeOrRd=V,f.schemeOranges=uf,f.schemePRGn=M,f.schemePaired=r,f.schemePastel1=o,f.schemePastel2=i,f.schemePiYG=A,f.schemePuBu=F,f.schemePuBuGn=z,f.schemePuOr=B,f.schemePuRd=J,f.schemePurples=lf,f.schemeRdBu=x,f.schemeRdGy=g,f.schemeRdPu=N,f.schemeRdYlBu=O,f.schemeRdYlGn=C,f.schemeReds=mf,f.schemeSet1=l,f.schemeSet2=h,f.schemeSet3=m,f.schemeSpectral=I,f.schemeTableau10=p,f.schemeYlGn=Z,f.schemeYlGnBu=U,f.schemeYlOrBr=ff,f.schemeYlOrRd=df,Object.defineProperty(f,"__esModule",{value:!0})}));
Index: de_modules/d3-scale-chromatic/package.json
===================================================================
--- node_modules/d3-scale-chromatic/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-{
-  "name": "d3-scale-chromatic",
-  "version": "3.1.0",
-  "description": "Sequential, diverging and categorical color schemes.",
-  "homepage": "https://d3js.org/d3-scale-chromatic/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-scale-chromatic.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "color",
-    "scale",
-    "sequential",
-    "colorbrewer"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-scale-chromatic.min.js",
-  "unpkg": "dist/d3-scale-chromatic.min.js",
-  "exports": {
-    "umd": "./dist/d3-scale-chromatic.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-color": "1 - 3",
-    "d3-interpolate": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-scale-chromatic/src/categorical/Accent.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Accent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");
Index: de_modules/d3-scale-chromatic/src/categorical/Dark2.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Dark2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");
Index: de_modules/d3-scale-chromatic/src/categorical/Paired.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Paired.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");
Index: de_modules/d3-scale-chromatic/src/categorical/Pastel1.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Pastel1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");
Index: de_modules/d3-scale-chromatic/src/categorical/Pastel2.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Pastel2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");
Index: de_modules/d3-scale-chromatic/src/categorical/Set1.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Set1.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");
Index: de_modules/d3-scale-chromatic/src/categorical/Set2.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Set2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");
Index: de_modules/d3-scale-chromatic/src/categorical/Set3.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Set3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");
Index: de_modules/d3-scale-chromatic/src/categorical/Tableau10.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/Tableau10.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
Index: de_modules/d3-scale-chromatic/src/categorical/category10.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/category10.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
Index: de_modules/d3-scale-chromatic/src/categorical/observable10.js
===================================================================
--- node_modules/d3-scale-chromatic/src/categorical/observable10.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import colors from "../colors.js";
-
-export default colors("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0");
Index: de_modules/d3-scale-chromatic/src/colors.js
===================================================================
--- node_modules/d3-scale-chromatic/src/colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(specifier) {
-  var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
-  while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
-  return colors;
-}
Index: de_modules/d3-scale-chromatic/src/diverging/BrBG.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/BrBG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "d8b365f5f5f55ab4ac",
-  "a6611adfc27d80cdc1018571",
-  "a6611adfc27df5f5f580cdc1018571",
-  "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
-  "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
-  "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
-  "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
-  "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
-  "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/PRGn.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/PRGn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "af8dc3f7f7f77fbf7b",
-  "7b3294c2a5cfa6dba0008837",
-  "7b3294c2a5cff7f7f7a6dba0008837",
-  "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
-  "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
-  "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
-  "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
-  "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
-  "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/PiYG.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/PiYG.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e9a3c9f7f7f7a1d76a",
-  "d01c8bf1b6dab8e1864dac26",
-  "d01c8bf1b6daf7f7f7b8e1864dac26",
-  "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
-  "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
-  "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
-  "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
-  "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
-  "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/PuOr.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/PuOr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "998ec3f7f7f7f1a340",
-  "5e3c99b2abd2fdb863e66101",
-  "5e3c99b2abd2f7f7f7fdb863e66101",
-  "542788998ec3d8daebfee0b6f1a340b35806",
-  "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
-  "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
-  "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
-  "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
-  "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/RdBu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/RdBu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "ef8a62f7f7f767a9cf",
-  "ca0020f4a58292c5de0571b0",
-  "ca0020f4a582f7f7f792c5de0571b0",
-  "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
-  "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
-  "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
-  "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
-  "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
-  "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/RdGy.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/RdGy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "ef8a62ffffff999999",
-  "ca0020f4a582bababa404040",
-  "ca0020f4a582ffffffbababa404040",
-  "b2182bef8a62fddbc7e0e0e09999994d4d4d",
-  "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
-  "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
-  "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
-  "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
-  "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/RdYlBu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fc8d59ffffbf91bfdb",
-  "d7191cfdae61abd9e92c7bb6",
-  "d7191cfdae61ffffbfabd9e92c7bb6",
-  "d73027fc8d59fee090e0f3f891bfdb4575b4",
-  "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
-  "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
-  "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
-  "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
-  "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/RdYlGn.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fc8d59ffffbf91cf60",
-  "d7191cfdae61a6d96a1a9641",
-  "d7191cfdae61ffffbfa6d96a1a9641",
-  "d73027fc8d59fee08bd9ef8b91cf601a9850",
-  "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
-  "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
-  "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
-  "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
-  "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/diverging/Spectral.js
===================================================================
--- node_modules/d3-scale-chromatic/src/diverging/Spectral.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fc8d59ffffbf99d594",
-  "d7191cfdae61abdda42b83ba",
-  "d7191cfdae61ffffbfabdda42b83ba",
-  "d53e4ffc8d59fee08be6f59899d5943288bd",
-  "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
-  "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
-  "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
-  "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
-  "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/index.js
===================================================================
--- node_modules/d3-scale-chromatic/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-export {default as schemeCategory10} from "./categorical/category10.js";
-export {default as schemeAccent} from "./categorical/Accent.js";
-export {default as schemeDark2} from "./categorical/Dark2.js";
-export {default as schemeObservable10} from "./categorical/observable10.js";
-export {default as schemePaired} from "./categorical/Paired.js";
-export {default as schemePastel1} from "./categorical/Pastel1.js";
-export {default as schemePastel2} from "./categorical/Pastel2.js";
-export {default as schemeSet1} from "./categorical/Set1.js";
-export {default as schemeSet2} from "./categorical/Set2.js";
-export {default as schemeSet3} from "./categorical/Set3.js";
-export {default as schemeTableau10} from "./categorical/Tableau10.js";
-export {default as interpolateBrBG, scheme as schemeBrBG} from "./diverging/BrBG.js";
-export {default as interpolatePRGn, scheme as schemePRGn} from "./diverging/PRGn.js";
-export {default as interpolatePiYG, scheme as schemePiYG} from "./diverging/PiYG.js";
-export {default as interpolatePuOr, scheme as schemePuOr} from "./diverging/PuOr.js";
-export {default as interpolateRdBu, scheme as schemeRdBu} from "./diverging/RdBu.js";
-export {default as interpolateRdGy, scheme as schemeRdGy} from "./diverging/RdGy.js";
-export {default as interpolateRdYlBu, scheme as schemeRdYlBu} from "./diverging/RdYlBu.js";
-export {default as interpolateRdYlGn, scheme as schemeRdYlGn} from "./diverging/RdYlGn.js";
-export {default as interpolateSpectral, scheme as schemeSpectral} from "./diverging/Spectral.js";
-export {default as interpolateBuGn, scheme as schemeBuGn} from "./sequential-multi/BuGn.js";
-export {default as interpolateBuPu, scheme as schemeBuPu} from "./sequential-multi/BuPu.js";
-export {default as interpolateGnBu, scheme as schemeGnBu} from "./sequential-multi/GnBu.js";
-export {default as interpolateOrRd, scheme as schemeOrRd} from "./sequential-multi/OrRd.js";
-export {default as interpolatePuBuGn, scheme as schemePuBuGn} from "./sequential-multi/PuBuGn.js";
-export {default as interpolatePuBu, scheme as schemePuBu} from "./sequential-multi/PuBu.js";
-export {default as interpolatePuRd, scheme as schemePuRd} from "./sequential-multi/PuRd.js";
-export {default as interpolateRdPu, scheme as schemeRdPu} from "./sequential-multi/RdPu.js";
-export {default as interpolateYlGnBu, scheme as schemeYlGnBu} from "./sequential-multi/YlGnBu.js";
-export {default as interpolateYlGn, scheme as schemeYlGn} from "./sequential-multi/YlGn.js";
-export {default as interpolateYlOrBr, scheme as schemeYlOrBr} from "./sequential-multi/YlOrBr.js";
-export {default as interpolateYlOrRd, scheme as schemeYlOrRd} from "./sequential-multi/YlOrRd.js";
-export {default as interpolateBlues, scheme as schemeBlues} from "./sequential-single/Blues.js";
-export {default as interpolateGreens, scheme as schemeGreens} from "./sequential-single/Greens.js";
-export {default as interpolateGreys, scheme as schemeGreys} from "./sequential-single/Greys.js";
-export {default as interpolatePurples, scheme as schemePurples} from "./sequential-single/Purples.js";
-export {default as interpolateReds, scheme as schemeReds} from "./sequential-single/Reds.js";
-export {default as interpolateOranges, scheme as schemeOranges} from "./sequential-single/Oranges.js";
-export {default as interpolateCividis} from "./sequential-multi/cividis.js";
-export {default as interpolateCubehelixDefault} from "./sequential-multi/cubehelix.js";
-export {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from "./sequential-multi/rainbow.js";
-export {default as interpolateSinebow} from "./sequential-multi/sinebow.js";
-export {default as interpolateTurbo} from "./sequential-multi/turbo.js";
-export {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from "./sequential-multi/viridis.js";
Index: de_modules/d3-scale-chromatic/src/ramp.js
===================================================================
--- node_modules/d3-scale-chromatic/src/ramp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import {interpolateRgbBasis} from "d3-interpolate";
-
-export default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);
Index: de_modules/d3-scale-chromatic/src/rampClosed.js
===================================================================
--- node_modules/d3-scale-chromatic/src/rampClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import {scaleSequential} from "d3-scale";
-import {interpolateRgbBasisClosed} from "d3-interpolate";
-import colors from "./colors.js";
-
-export default function(range) {
-  var s = scaleSequential(interpolateRgbBasisClosed(colors(range))).clamp(true);
-  delete s.clamp;
-  return s;
-}
Index: de_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e5f5f999d8c92ca25f",
-  "edf8fbb2e2e266c2a4238b45",
-  "edf8fbb2e2e266c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e0ecf49ebcda8856a7",
-  "edf8fbb3cde38c96c688419d",
-  "edf8fbb3cde38c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e0f3dba8ddb543a2ca",
-  "f0f9e8bae4bc7bccc42b8cbe",
-  "f0f9e8bae4bc7bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fee8c8fdbb84e34a33",
-  "fef0d9fdcc8afc8d59d7301f",
-  "fef0d9fdcc8afc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "ece7f2a6bddb2b8cbe",
-  "f1eef6bdc9e174a9cf0570b0",
-  "f1eef6bdc9e174a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "ece2f0a6bddb1c9099",
-  "f6eff7bdc9e167a9cf02818a",
-  "f6eff7bdc9e167a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e7e1efc994c7dd1c77",
-  "f1eef6d7b5d8df65b0ce1256",
-  "f1eef6d7b5d8df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fde0ddfa9fb5c51b8a",
-  "feebe2fbb4b9f768a1ae017e",
-  "feebe2fbb4b9f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "f7fcb9addd8e31a354",
-  "ffffccc2e69978c679238443",
-  "ffffccc2e69978c67931a354006837",
-  "ffffccd9f0a3addd8e78c67931a354006837",
-  "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "edf8b17fcdbb2c7fb8",
-  "ffffcca1dab441b6c4225ea8",
-  "ffffcca1dab441b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fff7bcfec44fd95f0e",
-  "ffffd4fed98efe9929cc4c02",
-  "ffffd4fed98efe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "ffeda0feb24cf03b20",
-  "ffffb2fecc5cfd8d3ce31a1c",
-  "ffffb2fecc5cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-multi/cividis.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export default function(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))
-      + ")";
-}
Index: de_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import {cubehelix} from "d3-color";
-import {interpolateCubehelixLong} from "d3-interpolate";
-
-export default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));
Index: de_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {cubehelix} from "d3-color";
-import {interpolateCubehelixLong} from "d3-interpolate";
-
-export var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));
-
-export var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));
-
-var c = cubehelix();
-
-export default function(t) {
-  if (t < 0 || t > 1) t -= Math.floor(t);
-  var ts = Math.abs(t - 0.5);
-  c.h = 360 * t - 100;
-  c.s = 1.5 - 1.5 * ts;
-  c.l = 0.8 - 0.9 * ts;
-  return c + "";
-}
Index: de_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import {rgb} from "d3-color";
-
-var c = rgb(),
-    pi_1_3 = Math.PI / 3,
-    pi_2_3 = Math.PI * 2 / 3;
-
-export default function(t) {
-  var x;
-  t = (0.5 - t) * Math.PI;
-  c.r = 255 * (x = Math.sin(t)) * x;
-  c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
-  c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
-  return c + "";
-}
Index: de_modules/d3-scale-chromatic/src/sequential-multi/turbo.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export default function(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))
-      + ")";
-}
Index: de_modules/d3-scale-chromatic/src/sequential-multi/viridis.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import colors from "../colors.js";
-
-function ramp(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
-
-export default ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));
-
-export var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
-
-export var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
-
-export var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
Index: de_modules/d3-scale-chromatic/src/sequential-single/Blues.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Blues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "deebf79ecae13182bd",
-  "eff3ffbdd7e76baed62171b5",
-  "eff3ffbdd7e76baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-single/Greens.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Greens.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "e5f5e0a1d99b31a354",
-  "edf8e9bae4b374c476238b45",
-  "edf8e9bae4b374c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-single/Greys.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Greys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "f0f0f0bdbdbd636363",
-  "f7f7f7cccccc969696525252",
-  "f7f7f7cccccc969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-single/Oranges.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fee6cefdae6be6550d",
-  "feeddefdbe85fd8d3cd94701",
-  "feeddefdbe85fd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-single/Purples.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Purples.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "efedf5bcbddc756bb1",
-  "f2f0f7cbc9e29e9ac86a51a3",
-  "f2f0f7cbc9e29e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale-chromatic/src/sequential-single/Reds.js
===================================================================
--- node_modules/d3-scale-chromatic/src/sequential-single/Reds.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import colors from "../colors.js";
-import ramp from "../ramp.js";
-
-export var scheme = new Array(3).concat(
-  "fee0d2fc9272de2d26",
-  "fee5d9fcae91fb6a4acb181d",
-  "fee5d9fcae91fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
-).map(colors);
-
-export default ramp(scheme);
Index: de_modules/d3-scale/LICENSE
===================================================================
--- node_modules/d3-scale/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-scale/README.md
===================================================================
--- node_modules/d3-scale/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1003 +1,0 @@
-# d3-scale
-
-Scales are a convenient abstraction for a fundamental task in visualization: mapping a dimension of abstract data to a visual representation. Although most often used for position-encoding quantitative data, such as mapping a measurement in meters to a position in pixels for dots in a scatterplot, scales can represent virtually any visual encoding, such as diverging colors, stroke widths, or symbol size. Scales can also be used with virtually any type of data, such as named categorical data or discrete data that requires sensible breaks.
-
-For [continuous](#continuous-scales) quantitative data, you typically want a [linear scale](#linear-scales). (For time series data, a [time scale](#time-scales).) If the distribution calls for it, consider transforming data using a [power](#power-scales) or [log](#log-scales) scale. A [quantize scale](#quantize-scales) may aid differentiation by rounding continuous data to a fixed set of discrete values; similarly, a [quantile scale](#quantile-scales) computes quantiles from a sample population, and a [threshold scale](#threshold-scales) allows you to specify arbitrary breaks in continuous data.
-
-For discrete ordinal (ordered) or categorical (unordered) data, an [ordinal scale](#ordinal-scales) specifies an explicit mapping from a set of data values to a corresponding set of visual attributes (such as colors). The related [band](#band-scales) and [point](#point-scales) scales are useful for position-encoding ordinal data, such as bars in a bar chart or dots in an categorical scatterplot.
-
-This repository does not provide color schemes; see [d3-scale-chromatic](https://github.com/d3/d3-scale-chromatic) for color schemes designed to work with d3-scale.
-
-Scales have no intrinsic visual representation. However, most scales can [generate](#continuous_ticks) and [format](#continuous_tickFormat) ticks for reference marks to aid in the construction of axes.
-
-For a longer introduction, see these recommended tutorials:
-
-* [Introducing d3-scale](https://medium.com/@mbostock/introducing-d3-scale-61980c51545f) by Mike Bostock
-
-* Chapter 7. Scales of [*Interactive Data Visualization for the Web*](http://alignedleft.com/work/d3-book) by Scott Murray
-
-* [d3: scales, and color.](https://jckr.github.io/blog/2011/08/11/d3-scales-and-color/) by Jérôme Cukier
-
-## Installing
-
-If you use npm, `npm install d3-scale`. You can also download the [latest release on GitHub](https://github.com/d3/d3-scale/releases/latest). For vanilla HTML in modern browsers, import d3-scale from Skypack:
-
-```html
-<script type="module">
-
-import {scaleLinear} from "https://cdn.skypack.dev/d3-scale@4";
-
-const x = scaleLinear();
-
-</script>
-```
-
-For legacy environments, you can load d3-scale’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-format@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-interpolate@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-time@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-time-format@4"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-scale@4"></script>
-<script>
-
-const x = d3.scaleLinear();
-
-</script>
-```
-
-(You can omit d3-time and d3-time-format if you’re not using [d3.scaleTime](#scaleTime) or [d3.scaleUtc](#scaleUtc).)
-
-## API Reference
-
-* [Continuous](#continuous-scales) ([Linear](#linear-scales), [Power](#power-scales), [Log](#log-scales), [Identity](#identity-scales), [Time](#time-scales), [Radial](#radial-scales))
-* [Sequential](#sequential-scales)
-* [Diverging](#diverging-scales)
-* [Quantize](#quantize-scales)
-* [Quantile](#quantile-scales)
-* [Threshold](#threshold-scales)
-* [Ordinal](#ordinal-scales) ([Band](#band-scales), [Point](#point-scales))
-
-### Continuous Scales
-
-Continuous scales map a continuous, quantitative input [domain](#continuous_domain) to a continuous output [range](#continuous_range). If the range is also numeric, the mapping may be [inverted](#continuous_invert). A continuous scale is not constructed directly; instead, try a [linear](#linear-scales), [power](#power-scales), [log](#log-scales), [identity](#identity-scales), [radial](#radial-scales), [time](#time-scales) or [sequential color](#sequential-scales) scale.
-
-<a name="_continuous" href="#_continuous">#</a> <i>continuous</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Given a *value* from the [domain](#continuous_domain), returns the corresponding value from the [range](#continuous_range). If the given *value* is outside the domain, and [clamping](#continuous_clamp) is not enabled, the mapping may be extrapolated such that the returned value is outside the range. For example, to apply a position encoding:
-
-```js
-var x = d3.scaleLinear()
-    .domain([10, 130])
-    .range([0, 960]);
-
-x(20); // 80
-x(50); // 320
-```
-
-Or to apply a color encoding:
-
-```js
-var color = d3.scaleLinear()
-    .domain([10, 100])
-    .range(["brown", "steelblue"]);
-
-color(20); // "#9a3439"
-color(50); // "#7b5167"
-```
-
-Or, in shorthand:
-
-```js
-var x = d3.scaleLinear([10, 130], [0, 960]);
-var color = d3.scaleLinear([10, 100], ["brown", "steelblue"]);
-```
-
-<a name="continuous_invert" href="#continuous_invert">#</a> <i>continuous</i>.<b>invert</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Given a *value* from the [range](#continuous_range), returns the corresponding value from the [domain](#continuous_domain). Inversion is useful for interaction, say to determine the data value corresponding to the position of the mouse. For example, to invert a position encoding:
-
-```js
-var x = d3.scaleLinear()
-    .domain([10, 130])
-    .range([0, 960]);
-
-x.invert(80); // 20
-x.invert(320); // 50
-```
-
-If the given *value* is outside the range, and [clamping](#continuous_clamp) is not enabled, the mapping may be extrapolated such that the returned value is outside the domain. This method is only supported if the range is numeric. If the range is not numeric, returns NaN.
-
-For a valid value *y* in the range, <i>continuous</i>(<i>continuous</i>.invert(<i>y</i>)) approximately equals *y*; similarly, for a valid value *x* in the domain, <i>continuous</i>.invert(<i>continuous</i>(<i>x</i>)) approximately equals *x*. The scale and its inverse may not be exact due to the limitations of floating point precision.
-
-<a name="continuous_domain" href="#continuous_domain">#</a> <i>continuous</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *domain* is specified, sets the scale’s domain to the specified array of numbers. The array must contain two or more elements. If the elements in the given array are not numbers, they will be coerced to numbers. If *domain* is not specified, returns a copy of the scale’s current domain.
-
-Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale. For example, to create a [diverging color scale](#diverging-scales) that interpolates between white and red for negative values, and white and green for positive values, say:
-
-```js
-var color = d3.scaleLinear()
-    .domain([-1, 0, 1])
-    .range(["red", "white", "green"]);
-
-color(-0.5); // "rgb(255, 128, 128)"
-color(+0.5); // "rgb(128, 192, 128)"
-```
-
-Internally, a piecewise scale performs a [binary search](https://github.com/d3/d3-array/blob/master/README.md#bisect) for the range interpolator corresponding to the given domain value. Thus, the domain must be in ascending or descending order. If the domain and range have different lengths *N* and *M*, only the first *min(N,M)* elements in each are observed.
-
-<a name="continuous_range" href="#continuous_range">#</a> <i>continuous</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *range* is specified, sets the scale’s range to the specified array of values. The array must contain two or more elements. Unlike the [domain](#continuous_domain), elements in the given array need not be numbers; any value that is supported by the underlying [interpolator](#continuous_interpolate) will work, though note that numeric ranges are required for [invert](#continuous_invert). If *range* is not specified, returns a copy of the scale’s current range. See [*continuous*.interpolate](#continuous_interpolate) for more examples.
-
-<a name="continuous_rangeRound" href="#continuous_rangeRound">#</a> <i>continuous</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Sets the scale’s [*range*](#continuous_range) to the specified array of values while also setting the scale’s [interpolator](#continuous_interpolate) to [interpolateRound](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateRound). This is a convenience method equivalent to:
-
-```js
-continuous
-    .range(range)
-    .interpolate(d3.interpolateRound);
-```
-
-The rounding interpolator is sometimes useful for avoiding antialiasing artifacts, though also consider the [shape-rendering](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering) “crispEdges” styles. Note that this interpolator can only be used with numeric ranges.
-
-<a name="continuous_clamp" href="#continuous_clamp">#</a> <i>continuous</i>.<b>clamp</b>(<i>clamp</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *clamp* is specified, enables or disables clamping accordingly. If clamping is disabled and the scale is passed a value outside the [domain](#continuous_domain), the scale may return a value outside the [range](#continuous_range) through extrapolation. If clamping is enabled, the return value of the scale is always within the scale’s range. Clamping similarly applies to [*continuous*.invert](#continuous_invert). For example:
-
-```js
-var x = d3.scaleLinear()
-    .domain([10, 130])
-    .range([0, 960]);
-
-x(-10); // -160, outside range
-x.invert(-160); // -10, outside domain
-
-x.clamp(true);
-x(-10); // 0, clamped to range
-x.invert(-160); // 10, clamped to domain
-```
-
-If *clamp* is not specified, returns whether or not the scale currently clamps values to within the range.
-
-<a name="continuous_unknown" href="#continuous_unknown">#</a> <i>continuous</i>.<b>unknown</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *value* is specified, sets the output value of the scale for undefined (or NaN) input values and returns this scale. If *value* is not specified, returns the current unknown value, which defaults to undefined.
-
-<a name="continuous_interpolate" href="#continuous_interpolate">#</a> <i>continuous</i>.<b>interpolate</b>(<i>interpolate</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *interpolate* is specified, sets the scale’s [range](#continuous_range) interpolator factory. This interpolator factory is used to create interpolators for each adjacent pair of values from the range; these interpolators then map a normalized domain parameter *t* in [0, 1] to the corresponding value in the range. If *factory* is not specified, returns the scale’s current interpolator factory, which defaults to [d3.interpolate](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate). See [d3-interpolate](https://github.com/d3/d3-interpolate) for more interpolators.
-
-For example, consider a diverging color scale with three colors in the range:
-
-```js
-var color = d3.scaleLinear()
-    .domain([-100, 0, +100])
-    .range(["red", "white", "green"]);
-```
-
-Two interpolators are created internally by the scale, equivalent to:
-
-```js
-var i0 = d3.interpolate("red", "white"),
-    i1 = d3.interpolate("white", "green");
-```
-
-A common reason to specify a custom interpolator is to change the color space of interpolation. For example, to use [HCL](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateHcl):
-
-```js
-var color = d3.scaleLinear()
-    .domain([10, 100])
-    .range(["brown", "steelblue"])
-    .interpolate(d3.interpolateHcl);
-```
-
-Or for [Cubehelix](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateCubehelix) with a custom gamma:
-
-```js
-var color = d3.scaleLinear()
-    .domain([10, 100])
-    .range(["brown", "steelblue"])
-    .interpolate(d3.interpolateCubehelix.gamma(3));
-```
-
-Note: the [default interpolator](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) **may reuse return values**. For example, if the range values are objects, then the value interpolator always returns the same object, modifying it in-place. If the scale is used to set an attribute or style, this is typically acceptable (and desirable for performance); however, if you need to store the scale’s return value, you must specify your own interpolator or make a copy as appropriate.
-
-<a name="continuous_ticks" href="#continuous_ticks">#</a> <i>continuous</i>.<b>ticks</b>([<i>count</i>])
-
-Returns approximately *count* representative values from the scale’s [domain](#continuous_domain). If *count* is not specified, it defaults to 10. The returned tick values are uniformly spaced, have human-readable values (such as multiples of powers of 10), and are guaranteed to be within the extent of the domain. Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data. The specified *count* is only a hint; the scale may return more or fewer values depending on the domain. See also d3-array’s [ticks](https://github.com/d3/d3-array/blob/master/README.md#ticks).
-
-<a name="continuous_tickFormat" href="#continuous_tickFormat">#</a> <i>continuous</i>.<b>tickFormat</b>([<i>count</i>[, <i>specifier</i>]]) · [Source](https://github.com/d3/d3-scale/blob/master/src/tickFormat.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Returns a [number format](https://github.com/d3/d3-format) function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values. The specified *count* should have the same value as the count that is used to generate the [tick values](#continuous_ticks).
-
-An optional *specifier* allows a [custom format](https://github.com/d3/d3-format/blob/master/README.md#locale_format) where the precision of the format is automatically set by the scale as appropriate for the tick interval. For example, to format percentage change, you might say:
-
-```js
-var x = d3.scaleLinear()
-    .domain([-1, 1])
-    .range([0, 960]);
-
-var ticks = x.ticks(5),
-    tickFormat = x.tickFormat(5, "+%");
-
-ticks.map(tickFormat); // ["-100%", "-50%", "+0%", "+50%", "+100%"]
-```
-
-If *specifier* uses the format type `s`, the scale will return a [SI-prefix format](https://github.com/d3/d3-format/blob/master/README.md#locale_formatPrefix) based on the largest value in the domain. If the *specifier* already specifies a precision, this method is equivalent to [*locale*.format](https://github.com/d3/d3-format/blob/master/README.md#locale_format).
-
-See also [d3.tickFormat](#tickFormat).
-
-<a name="continuous_nice" href="#continuous_nice">#</a> <i>continuous</i>.<b>nice</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/nice.js), [Examples](https://observablehq.com/@d3/d3-scalelinear)
-
-Extends the [domain](#continuous_domain) so that it starts and ends on nice round values. This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value. An optional tick *count* argument allows greater control over the step size used to extend the bounds, guaranteeing that the returned [ticks](#continuous_ticks) will exactly cover the domain. Nicing is useful if the domain is computed from data, say using [extent](https://github.com/d3/d3-array/blob/master/README.md#extent), and may be irregular. For example, for a domain of [0.201479…, 0.996679…], a nice domain might be [0.2, 1.0]. If the domain has more than two values, nicing the domain only affects the first and last value. See also d3-array’s [tickStep](https://github.com/d3/d3-array/blob/master/README.md#tickStep).
-
-Nicing a scale only modifies the current domain; it does not automatically nice domains that are subsequently set using [*continuous*.domain](#continuous_domain). You must re-nice the scale after setting the new domain, if desired.
-
-<a name="continuous_copy" href="#continuous_copy">#</a> <i>continuous</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-<a name="tickFormat" href="#tickFormat">#</a> d3.<b>tickFormat</b>(<i>start</i>, <i>stop</i>, <i>count</i>[, <i>specifier</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/tickFormat.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Returns a [number format](https://github.com/d3/d3-format) function suitable for displaying a tick value, automatically computing the appropriate precision based on the fixed interval between tick values, as determined by [d3.tickStep](https://github.com/d3/d3-array/blob/master/README.md#tickStep).
-
-An optional *specifier* allows a [custom format](https://github.com/d3/d3-format/blob/master/README.md#locale_format) where the precision of the format is automatically set by the scale as appropriate for the tick interval. For example, to format percentage change, you might say:
-
-```js
-var tickFormat = d3.tickFormat(-1, 1, 5, "+%");
-
-tickFormat(-0.5); // "-50%"
-```
-
-If *specifier* uses the format type `s`, the scale will return a [SI-prefix format](https://github.com/d3/d3-format/blob/master/README.md#locale_formatPrefix) based on the larger absolute value of *start* and *stop*. If the *specifier* already specifies a precision, this method is equivalent to [*locale*.format](https://github.com/d3/d3-format/blob/master/README.md#locale_format).
-
-#### Linear Scales
-
-<a name="scaleLinear" href="#scaleLinear">#</a> d3.<b>scaleLinear</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/linear.js), [Examples](https://observablehq.com/@d3/d3-scalelinear)
-
-Constructs a new [continuous scale](#continuous-scales) with the specified [domain](#continuous_domain) and [range](#continuous_range), the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#continuous_interpolate) and [clamping](#continuous_clamp) disabled. If either *domain* or *range* are not specified, each defaults to [0, 1]. Linear scales are a good default choice for continuous quantitative data because they preserve proportional differences. Each range value *y* can be expressed as a function of the domain value *x*: *y* = *mx* + *b*.
-
-#### Power Scales
-
-Power scales are similar to [linear scales](#linear-scales), except an exponential transform is applied to the input domain value before the output range value is computed. Each range value *y* can be expressed as a function of the domain value *x*: *y* = *mx^k* + *b*, where *k* is the [exponent](#pow_exponent) value. Power scales also support negative domain values, in which case the input value and the resulting output value are multiplied by -1.
-
-<a name="scalePow" href="#scalePow">#</a> d3.<b>scalePow</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Constructs a new [continuous scale](#continuous-scales) with the specified [domain](#continuous_domain) and [range](#continuous_range), the [exponent](#pow_exponent) 1, the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#continuous_interpolate) and [clamping](#continuous_clamp) disabled. If either *domain* or *range* are not specified, each defaults to [0, 1]. (Note that this is effectively a [linear](#linear-scales) scale until you set a different exponent.)
-
-<a name="_pow" href="#_pow">#</a> <i>pow</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*](#_continuous).
-
-<a name="pow_invert" href="#pow_invert">#</a> <i>pow</i>.<b>invert</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.invert](#continuous_invert).
-
-<a name="pow_exponent" href="#pow_exponent">#</a> <i>pow</i>.<b>exponent</b>([<i>exponent</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *exponent* is specified, sets the current exponent to the given numeric value. If *exponent* is not specified, returns the current exponent, which defaults to 1. (Note that this is effectively a [linear](#linear-scales) scale until you set a different exponent.)
-
-<a name="pow_domain" href="#pow_domain">#</a> <i>pow</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.domain](#continuous_domain).
-
-<a name="pow_range" href="#pow_range">#</a> <i>pow</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.range](#continuous_range).
-
-<a name="pow_rangeRound" href="#pow_rangeRound">#</a> <i>pow</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.rangeRound](#continuous_rangeRound).
-
-<a name="pow_clamp" href="#pow_clamp">#</a> <i>pow</i>.<b>clamp</b>(<i>clamp</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.clamp](#continuous_clamp).
-
-<a name="pow_interpolate" href="#pow_interpolate">#</a> <i>pow</i>.<b>interpolate</b>(<i>interpolate</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.interpolate](#continuous_interpolate).
-
-<a name="pow_ticks" href="#pow_ticks">#</a> <i>pow</i>.<b>ticks</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-See [*continuous*.ticks](#continuous_ticks).
-
-<a name="pow_tickFormat" href="#pow_tickFormat">#</a> <i>pow</i>.<b>tickFormat</b>([<i>count</i>[, <i>specifier</i>]]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-See [*continuous*.tickFormat](#continuous_tickFormat).
-
-<a name="pow_nice" href="#pow_nice">#</a> <i>pow</i>.<b>nice</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.nice](#continuous_nice).
-
-<a name="pow_copy" href="#pow_copy">#</a> <i>pow</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.copy](#continuous_copy).
-
-<a name="scaleSqrt" href="#scaleSqrt">#</a> d3.<b>scaleSqrt</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/pow.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Constructs a new [continuous](#continuous-scales) [power scale](#power-scales) with the specified [domain](#continuous_domain) and [range](#continuous_range), the [exponent](#pow_exponent) 0.5, the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#continuous_interpolate) and [clamping](#continuous_clamp) disabled. If either *domain* or *range* are not specified, each defaults to [0, 1]. This is a convenience method equivalent to `d3.scalePow(…).exponent(0.5)`.
-
-#### Log Scales
-
-Log scales are similar to [linear scales](#linear-scales), except a logarithmic transform is applied to the input domain value before the output range value is computed. The mapping to the range value *y* can be expressed as a function of the domain value *x*: *y* = *m* log(<i>x</i>) + *b*.
-
-As log(0) = -∞, a log scale domain must be **strictly-positive or strictly-negative**; the domain must not include or cross zero. A log scale with a positive domain has a well-defined behavior for positive values, and a log scale with a negative domain has a well-defined behavior for negative values. (For a negative domain, input and output values are implicitly multiplied by -1.) The behavior of the scale is undefined if you pass a negative value to a log scale with a positive domain or vice versa.
-
-<a name="scaleLog" href="#scaleLog">#</a> d3.<b>scaleLog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Constructs a new [continuous scale](#continuous-scales) with the specified [domain](#log_domain) and [range](#log_range), the [base](#log_base) 10, the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#log_interpolate) and [clamping](#log_clamp) disabled. If *domain* is not specified, it defaults to [1, 10]. If *range* is not specified, it defaults to [0, 1].
-
-<a name="_log" href="#_log">#</a> <i>log</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*](#_continuous).
-
-<a name="log_invert" href="#log_invert">#</a> <i>log</i>.<b>invert</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.invert](#continuous_invert).
-
-<a name="log_base" href="#log_base">#</a> <i>log</i>.<b>base</b>([<i>base</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *base* is specified, sets the base for this logarithmic scale to the specified value. If *base* is not specified, returns the current base, which defaults to 10.
-
-<a name="log_domain" href="#log_domain">#</a> <i>log</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.domain](#continuous_domain).
-
-<a name="log_range" href="#log_range">#</a> <i>log</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/continuous.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.range](#continuous_range).
-
-<a name="log_rangeRound" href="#log_rangeRound">#</a> <i>log</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.rangeRound](#continuous_rangeRound).
-
-<a name="log_clamp" href="#log_clamp">#</a> <i>log</i>.<b>clamp</b>(<i>clamp</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.clamp](#continuous_clamp).
-
-<a name="log_interpolate" href="#log_interpolate">#</a> <i>log</i>.<b>interpolate</b>(<i>interpolate</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.interpolate](#continuous_interpolate).
-
-<a name="log_ticks" href="#log_ticks">#</a> <i>log</i>.<b>ticks</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Like [*continuous*.ticks](#continuous_ticks), but customized for a log scale. If the [base](#log_base) is an integer, the returned ticks are uniformly spaced within each integer power of base; otherwise, one tick per power of base is returned. The returned ticks are guaranteed to be within the extent of the domain. If the orders of magnitude in the [domain](#log_domain) is greater than *count*, then at most one tick per power is returned. Otherwise, the tick values are unfiltered, but note that you can use [*log*.tickFormat](#log_tickFormat) to filter the display of tick labels. If *count* is not specified, it defaults to 10.
-
-<a name="log_tickFormat" href="#log_tickFormat">#</a> <i>log</i>.<b>tickFormat</b>([<i>count</i>[, <i>specifier</i>]]) · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Like [*continuous*.tickFormat](#continuous_tickFormat), but customized for a log scale. The specified *count* typically has the same value as the count that is used to generate the [tick values](#continuous_ticks). If there are too many ticks, the formatter may return the empty string for some of the tick labels; however, note that the ticks are still shown. To disable filtering, specify a *count* of Infinity. When specifying a count, you may also provide a format *specifier* or format function. For example, to get a tick formatter that will display 20 ticks of a currency, say `log.tickFormat(20, "$,f")`. If the specifier does not have a defined precision, the precision will be set automatically by the scale, returning the appropriate format. This provides a convenient way of specifying a format whose precision will be automatically set by the scale.
-
-<a name="log_nice" href="#log_nice">#</a> <i>log</i>.<b>nice</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/d3-scalelinear)
-
-Like [*continuous*.nice](#continuous_nice), except extends the domain to integer powers of [base](#log_base). For example, for a domain of [0.201479…, 0.996679…], and base 10, the nice domain is [0.1, 1]. If the domain has more than two values, nicing the domain only affects the first and last value.
-
-<a name="log_copy" href="#log_copy">#</a> <i>log</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/log.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-See [*continuous*.copy](#continuous_copy).
-
-#### Symlog Scales
-
-See [A bi-symmetric log transformation for wide-range data](https://www.researchgate.net/profile/John_Webber4/publication/233967063_A_bi-symmetric_log_transformation_for_wide-range_data/links/0fcfd50d791c85082e000000.pdf) by Webber for more.
-
-<a name="scaleSymlog" href="#scaleSymlog">#</a> d3.<b>scaleSymlog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/symlog.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-Constructs a new [continuous scale](#continuous-scales) with the specified [domain](#continuous_domain) and [range](#continuous_range), the [constant](#symlog_constant) 1, the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#continuous_interpolate) and [clamping](#continuous_clamp) disabled. If *domain* is not specified, it defaults to [0, 1]. If *range* is not specified, it defaults to [0, 1].
-
-<a name="symlog_constant" href="#symlog_constant">#</a> <i>symlog</i>.<b>constant</b>([<i>constant</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/symlog.js), [Examples](https://observablehq.com/@d3/continuous-scales)
-
-If *constant* is specified, sets the symlog constant to the specified number and returns this scale; otherwise returns the current value of the symlog constant, which defaults to 1. See “A bi-symmetric log transformation for wide-range data” by Webber for more.
-
-#### Identity Scales
-
-Identity scales are a special case of [linear scales](#linear-scales) where the domain and range are identical; the scale and its invert method are thus the identity function. These scales are occasionally useful when working with pixel coordinates, say in conjunction with an axis. Identity scales do not support [rangeRound](#continuous_rangeRound), [clamp](#continuous_clamp) or [interpolate](#continuous_interpolate).
-
-<a name="scaleIdentity" href="#scaleIdentity">#</a> d3.<b>scaleIdentity</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/identity.js), [Examples](https://observablehq.com/@d3/d3-scalelinear)
-
-Constructs a new identity scale with the specified [domain](#continuous_domain) and [range](#continuous_range). If *range* is not specified, it defaults to [0, 1].
-
-#### Radial Scales
-
-Radial scales are a variant of [linear scales](#linear-scales) where the range is internally squared so that an input value corresponds linearly to the squared output value. These scales are useful when you want the input value to correspond to the area of a graphical mark and the mark is specified by radius, as in a radial bar chart. Radial scales do not support [interpolate](#continuous_interpolate).
-
-<a name="scaleRadial" href="#scaleRadial">#</a> d3.<b>scaleRadial</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/radial.js), [Examples](https://observablehq.com/@d3/radial-stacked-bar-chart)
-
-Constructs a new radial scale with the specified [domain](#continuous_domain) and [range](#continuous_range). If *domain* or *range* is not specified, each defaults to [0, 1].
-
-#### Time Scales
-
-Time scales are a variant of [linear scales](#linear-scales) that have a temporal domain: domain values are coerced to [dates](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) rather than numbers, and [invert](#continuous_invert) likewise returns a date. Time scales implement [ticks](#time_ticks) based on [calendar intervals](https://github.com/d3/d3-time), taking the pain out of generating axes for temporal domains.
-
-For example, to create a position encoding:
-
-```js
-var x = d3.scaleTime()
-    .domain([new Date(2000, 0, 1), new Date(2000, 0, 2)])
-    .range([0, 960]);
-
-x(new Date(2000, 0, 1,  5)); // 200
-x(new Date(2000, 0, 1, 16)); // 640
-x.invert(200); // Sat Jan 01 2000 05:00:00 GMT-0800 (PST)
-x.invert(640); // Sat Jan 01 2000 16:00:00 GMT-0800 (PST)
-```
-
-For a valid value *y* in the range, <i>time</i>(<i>time</i>.invert(<i>y</i>)) equals *y*; similarly, for a valid value *x* in the domain, <i>time</i>.invert(<i>time</i>(<i>x</i>)) equals *x*. The invert method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-
-<a name="scaleTime" href="#scaleTime">#</a> d3.<b>scaleTime</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-Constructs a new time scale with the specified [domain](#time_domain) and [range](#time_range), the [default](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) [interpolator](#time_interpolate) and [clamping](#time_clamp) disabled. If *domain* is not specified, it defaults to [2000-01-01, 2000-01-02]. If *range* is not specified, it defaults to [0, 1].
-
-<a name="_time" href="#_time">#</a> <i>time</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*](#_continuous).
-
-<a name="time_invert" href="#time_invert">#</a> <i>time</i>.<b>invert</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.invert](#continuous_invert).
-
-<a name="time_domain" href="#time_domain">#</a> <i>time</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.domain](#continuous_domain).
-
-<a name="time_range" href="#time_range">#</a> <i>time</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.range](#continuous_range).
-
-<a name="time_rangeRound" href="#time_rangeRound">#</a> <i>time</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.rangeRound](#continuous_rangeRound).
-
-<a name="time_clamp" href="#time_clamp">#</a> <i>time</i>.<b>clamp</b>(<i>clamp</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.clamp](#continuous_clamp).
-
-<a name="time_interpolate" href="#time_interpolate">#</a> <i>time</i>.<b>interpolate</b>(<i>interpolate</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.interpolate](#continuous_interpolate).
-
-<a name="time_ticks" href="#time_ticks">#</a> <i>time</i>.<b>ticks</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-<br><a name="time_ticks" href="#time_ticks">#</a> <i>time</i>.<b>ticks</b>([<i>interval</i>])
-
-Returns representative dates from the scale’s [domain](#time_domain). The returned tick values are uniformly-spaced (mostly), have sensible values (such as every day at midnight), and are guaranteed to be within the extent of the domain. Ticks are often used to display reference lines, or tick marks, in conjunction with the visualized data.
-
-An optional *count* may be specified to affect how many ticks are generated. If *count* is not specified, it defaults to 10. The specified *count* is only a hint; the scale may return more or fewer values depending on the domain. For example, to create ten default ticks, say:
-
-```js
-var x = d3.scaleTime();
-
-x.ticks(10);
-// [Sat Jan 01 2000 00:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 03:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 06:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 09:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 12:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 15:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 18:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 21:00:00 GMT-0800 (PST),
-//  Sun Jan 02 2000 00:00:00 GMT-0800 (PST)]
-```
-
-The following time intervals are considered for automatic ticks:
-
-* 1-, 5-, 15- and 30-second.
-* 1-, 5-, 15- and 30-minute.
-* 1-, 3-, 6- and 12-hour.
-* 1- and 2-day.
-* 1-week.
-* 1- and 3-month.
-* 1-year.
-
-In lieu of a *count*, a [time *interval*](https://github.com/d3/d3-time/blob/master/README.md#intervals) may be explicitly specified. To prune the generated ticks for a given time *interval*, use [*interval*.every](https://github.com/d3/d3-time/blob/master/README.md#interval_every). For example, to generate ticks at 15-[minute](https://github.com/d3/d3-time/blob/master/README.md#minute) intervals:
-
-```js
-var x = d3.scaleTime()
-    .domain([new Date(2000, 0, 1, 0), new Date(2000, 0, 1, 2)]);
-
-x.ticks(d3.timeMinute.every(15));
-// [Sat Jan 01 2000 00:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 00:15:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 00:30:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 00:45:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 01:00:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 01:15:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 01:30:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 01:45:00 GMT-0800 (PST),
-//  Sat Jan 01 2000 02:00:00 GMT-0800 (PST)]
-```
-
-Alternatively, pass a test function to [*interval*.filter](https://github.com/d3/d3-time/blob/master/README.md#interval_filter):
-
-```js
-x.ticks(d3.timeMinute.filter(function(d) {
-  return d.getMinutes() % 15 === 0;
-}));
-```
-
-Note: in some cases, such as with day ticks, specifying a *step* can result in irregular spacing of ticks because time intervals have varying length.
-
-<a name="time_tickFormat" href="#time_tickFormat">#</a> <i>time</i>.<b>tickFormat</b>([<i>count</i>[, <i>specifier</i>]]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-<br><a href="#time_tickFormat">#</a> <i>time</i>.<b>tickFormat</b>([<i>interval</i>[, <i>specifier</i>]])
-
-Returns a time format function suitable for displaying [tick](#time_ticks) values. The specified *count* or *interval* is currently ignored, but is accepted for consistency with other scales such as [*continuous*.tickFormat](#continuous_tickFormat). If a format *specifier* is specified, this method is equivalent to [format](https://github.com/d3/d3-time-format/blob/master/README.md#format). If *specifier* is not specified, the default time format is returned. The default multi-scale time format chooses a human-readable representation based on the specified date as follows:
-
-* `%Y` - for year boundaries, such as `2011`.
-* `%B` - for month boundaries, such as `February`.
-* `%b %d` - for week boundaries, such as `Feb 06`.
-* `%a %d` - for day boundaries, such as `Mon 07`.
-* `%I %p` - for hour boundaries, such as `01 AM`.
-* `%I:%M` - for minute boundaries, such as `01:23`.
-* `:%S` - for second boundaries, such as `:45`.
-* `.%L` - milliseconds for all other times, such as `.012`.
-
-Although somewhat unusual, this default behavior has the benefit of providing both local and global context: for example, formatting a sequence of ticks as [11 PM, Mon 07, 01 AM] reveals information about hours, dates, and day simultaneously, rather than just the hours [11 PM, 12 AM, 01 AM]. See [d3-time-format](https://github.com/d3/d3-time-format) if you’d like to roll your own conditional time format.
-
-<a name="time_nice" href="#time_nice">#</a> <i>time</i>.<b>nice</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-<br><a name="time_nice" href="#time_nice">#</a> <i>time</i>.<b>nice</b>([<i>interval</i>])
-
-Extends the [domain](#time_domain) so that it starts and ends on nice round values. This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value. See [*continuous*.nice](#continuous_nice) for more.
-
-An optional tick *count* argument allows greater control over the step size used to extend the bounds, guaranteeing that the returned [ticks](#time_ticks) will exactly cover the domain. Alternatively, a [time *interval*](https://github.com/d3/d3-time/blob/master/README.md#intervals) may be specified to explicitly set the ticks. If an *interval* is specified, an optional *step* may also be specified to skip some ticks. For example, `time.nice(d3.timeSecond.every(10))` will extend the domain to an even ten seconds (0, 10, 20, <i>etc.</i>). See [*time*.ticks](#time_ticks) and [*interval*.every](https://github.com/d3/d3-time/blob/master/README.md#interval_every) for further detail.
-
-Nicing is useful if the domain is computed from data, say using [extent](https://github.com/d3/d3-array/blob/master/README.md#extent), and may be irregular. For example, for a domain of [2009-07-13T00:02, 2009-07-13T23:48], the nice domain is [2009-07-13, 2009-07-14]. If the domain has more than two values, nicing the domain only affects the first and last value.
-
-<a name="time_copy" href="#time_copy">#</a> <i>time</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/time.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-See [*continuous*.copy](#continuous_copy).
-
-<a name="scaleUtc" href="#scaleUtc">#</a> d3.<b>scaleUtc</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/utcTime.js), [Examples](https://observablehq.com/@d3/d3-scaletime)
-
-Equivalent to [scaleTime](#scaleTime), but the returned time scale operates in [Coordinated Universal Time](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) rather than local time.
-
-### Sequential Scales
-
-Sequential scales, like [diverging scales](#diverging-scales), are similar to [continuous scales](#continuous-scales) in that they map a continuous, numeric input domain to a continuous output range. However, unlike continuous scales, the input domain and output range of a sequential scale always has exactly two elements, and the output range is typically specified as an interpolator rather than an array of values. These scales do not expose [invert](#continuous_invert) and [interpolate](#continuous_interpolate) methods.
-
-<a name="scaleSequential" href="#scaleSequential">#</a> d3.<b>scaleSequential</b>([[<i>domain</i>, ]<i>interpolator</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-Constructs a new sequential scale with the specified [*domain*](#sequential_domain) and [*interpolator*](#sequential_interpolator) function or array. If *domain* is not specified, it defaults to [0, 1]. If *interpolator* is not specified, it defaults to the identity function. When the scale is [applied](#_sequential), the interpolator will be invoked with a value typically in the range [0, 1], where 0 represents the minimum value and 1 represents the maximum value. For example, to implement the ill-advised [HSL](https://github.com/d3/d3-color/blob/master/README.md#hsl) rainbow scale:
-
-```js
-var rainbow = d3.scaleSequential(function(t) {
-  return d3.hsl(t * 360, 1, 0.5) + "";
-});
-```
-
-A more aesthetically-pleasing and perceptually-effective cyclical hue encoding is to use [d3.interpolateRainbow](https://github.com/d3/d3-scale-chromatic/blob/master/README.md#interpolateRainbow):
-
-```js
-var rainbow = d3.scaleSequential(d3.interpolateRainbow);
-```
-
-If *interpolator* is an array, it represents the scale’s two-element output range and is converted to an interpolator function using [d3.interpolate](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate).
-
-<a name="_sequential" href="#_sequential">#</a> <i>sequential</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*](#_continuous).
-
-<a name="sequential_domain" href="#sequential_domain">#</a> <i>sequential</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*.domain](#continuous_domain). Note that a sequential scale’s domain must be numeric and must contain exactly two values.
-
-<a name="sequential_clamp" href="#sequential_clamp">#</a> <i>sequential</i>.<b>clamp</b>([<i>clamp</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*.clamp](#continuous_clamp).
-
-<a name="sequential_interpolator" href="#sequential_interpolator">#</a> <i>sequential</i>.<b>interpolator</b>([<i>interpolator</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-If *interpolator* is specified, sets the scale’s interpolator to the specified function. If *interpolator* is not specified, returns the scale’s current interpolator.
-
-<a name="sequential_range" href="#sequential_range">#</a> <i>sequential</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*.range](#continuous_range). If *range* is specified, the given two-element array is converted to an interpolator function using [d3.interpolate](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate).
-
-<a name="sequential_rangeRound" href="#sequential_rangeRound">#</a> <i>sequential</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*.rangeRound](#continuous_rangeRound). If *range* is specified, implicitly uses [d3.interpolateRound](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateRound) as the interpolator.
-
-<a name="sequential_copy" href="#sequential_copy">#</a> <i>sequential</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-See [*continuous*.copy](#continuous_copy).
-
-<a name="scaleSequentialLog" href="#scaleSequentialLog">#</a> d3.<b>scaleSequentialLog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-A [sequential scale](#sequential-scales) with a logarithmic transform, analogous to a [log scale](#log-scales).
-
-<a name="scaleSequentialPow" href="#scaleSequentialPow">#</a> d3.<b>scaleSequentialPow</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-A [sequential scale](#sequential-scales) with an exponential transform, analogous to a [power scale](#pow-scales).
-
-<a name="scaleSequentialSqrt" href="#scaleSequentialSqrt">#</a> d3.<b>scaleSequentialSqrt</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-A [sequential scale](#sequential-scales) with a square-root transform, analogous to a [d3.scaleSqrt](#scaleSqrt).
-
-<a name="scaleSequentialSymlog" href="#scaleSequentialSymlog">#</a> d3.<b>scaleSequentialSymlog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequential.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-A [sequential scale](#sequential-scales) with a symmetric logarithmic transform, analogous to a [symlog scale](#symlog-scales).
-
-<a name="scaleSequentialQuantile" href="#scaleSequentialQuantile">#</a> d3.<b>scaleSequentialQuantile</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequentialQuantile.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-A [sequential scale](#sequential-scales) using a *p*-quantile transform, analogous to a [quantile scale](#quantile-scales).
-
-<a name="sequentialQuantile_quantiles" href="#sequentialQuantile_quantiles">#</a> <i>sequentialQuantile</i>.<b>quantiles</b>(<i>n</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/sequentialQuantile.js), [Examples](https://observablehq.com/@d3/sequential-scales)
-
-Returns an array of *n* + 1 quantiles. For example, if *n* = 4, returns an array of five numbers: the minimum value, the first quartile, the median, the third quartile, and the maximum.
-
-### Diverging Scales
-
-Diverging scales, like [sequential scales](#sequential-scales), are similar to [continuous scales](#continuous-scales) in that they map a continuous, numeric input domain to a continuous output range. However, unlike continuous scales, the input domain and output range of a diverging scale always has exactly three elements, and the output range is typically specified as an interpolator rather than an array of values. These scales do not expose [invert](#continuous_invert) and [interpolate](#continuous_interpolate) methods.
-
-<a name="scaleDiverging" href="#scaleDiverging">#</a> d3.<b>scaleDiverging</b>([[<i>domain</i>, ]<i>interpolator</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-Constructs a new diverging scale with the specified [*domain*](#diverging_domain) and [*interpolator*](#diverging_interpolator) function or array. If *domain* is not specified, it defaults to [0, 0.5, 1]. If *interpolator* is not specified, it defaults to the identity function. When the scale is [applied](#_diverging), the interpolator will be invoked with a value typically in the range [0, 1], where 0 represents the extreme negative value, 0.5 represents the neutral value, and 1 represents the extreme positive value. For example, using [d3.interpolateSpectral](https://github.com/d3/d3-scale-chromatic/blob/master/README.md#interpolateSpectral):
-
-```js
-var spectral = d3.scaleDiverging(d3.interpolateSpectral);
-```
-
-If *interpolator* is an array, it represents the scale’s three-element output range and is converted to an interpolator function using [d3.interpolate](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) and [d3.piecewise](https://github.com/d3/d3-interpolate/blob/master/README.md#piecewise).
-
-<a name="_diverging" href="#_diverging">#</a> <i>diverging</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*](#_continuous).
-
-<a name="diverging_domain" href="#diverging_domain">#</a> <i>diverging</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.domain](#continuous_domain). Note that a diverging scale’s domain must be numeric and must contain exactly three values. The default domain is [0, 0.5, 1].
-
-<a name="diverging_clamp" href="#diverging_clamp">#</a> <i>diverging</i>.<b>clamp</b>([<i>clamp</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.clamp](#continuous_clamp).
-
-<a name="diverging_interpolator" href="#diverging_interpolator">#</a> <i>diverging</i>.<b>interpolator</b>([<i>interpolator</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-If *interpolator* is specified, sets the scale’s interpolator to the specified function. If *interpolator* is not specified, returns the scale’s current interpolator.
-
-<a name="diverging_range" href="#diverging_range">#</a> <i>diverging</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.range](#continuous_range). If *range* is specified, the given three-element array is converted to an interpolator function using [d3.interpolate](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolate) and [d3.piecewise](https://github.com/d3/d3-interpolate/blob/master/README.md#piecewise).
-
-<a name="diverging_rangeRound" href="#diverging_rangeRound">#</a> <i>diverging</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.range](#continuous_rangeRound). If *range* is specified, implicitly uses [d3.interpolateRound](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateRound) as the interpolator.
-
-<a name="diverging_copy" href="#diverging_copy">#</a> <i>diverging</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.copy](#continuous_copy).
-
-<a name="diverging_unknown" href="#diverging_unknown">#</a> <i>diverging</i>.<b>unknown</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-See [*continuous*.unknown](#continuous_unknown).
-
-<a name="scaleDivergingLog" href="#scaleDivergingLog">#</a> d3.<b>scaleDivergingLog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-A [diverging scale](#diverging-scales) with a logarithmic transform, analogous to a [log scale](#log-scales).
-
-<a name="scaleDivergingPow" href="#scaleDivergingPow">#</a> d3.<b>scaleDivergingPow</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-A [diverging scale](#diverging-scales) with an exponential transform, analogous to a [power scale](#pow-scales).
-
-<a name="scaleDivergingSqrt" href="#scaleDivergingSqrt">#</a> d3.<b>scaleDivergingSqrt</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-A [diverging scale](#diverging-scales) with a square-root transform, analogous to a [d3.scaleSqrt](#scaleSqrt).
-
-<a name="scaleDivergingSymlog" href="#scaleDivergingSymlog">#</a> d3.<b>scaleDivergingSymlog</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/diverging.js), [Examples](https://observablehq.com/@d3/diverging-scales)
-
-A [diverging scale](#diverging-scales) with a symmetric logarithmic transform, analogous to a [symlog scale](#symlog-scales).
-
-### Quantize Scales
-
-Quantize scales are similar to [linear scales](#linear-scales), except they use a discrete rather than continuous range. The continuous input domain is divided into uniform segments based on the number of values in (*i.e.*, the cardinality of) the output range. Each range value *y* can be expressed as a quantized linear function of the domain value *x*: *y* = *m round(x)* + *b*. See [this choropleth](https://observablehq.com/@d3/choropleth) for an example.
-
-<a name="scaleQuantize" href="#scaleQuantize">#</a> d3.<b>scaleQuantize</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Constructs a new quantize scale with the specified [*domain*](#quantize_domain) and [*range*](#quantize_range). If either *domain* or *range* is not specified, each defaults to [0, 1]. Thus, the default quantize scale is equivalent to the [Math.round](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round) function.
-
-<a name="_quantize" href="#_quantize">#</a> <i>quantize</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Given a *value* in the input [domain](#quantize_domain), returns the corresponding value in the output [range](#quantize_range). For example, to apply a color encoding:
-
-```js
-var color = d3.scaleQuantize()
-    .domain([0, 1])
-    .range(["brown", "steelblue"]);
-
-color(0.49); // "brown"
-color(0.51); // "steelblue"
-```
-
-Or dividing the domain into three equally-sized parts with different range values to compute an appropriate stroke width:
-
-```js
-var width = d3.scaleQuantize()
-    .domain([10, 100])
-    .range([1, 2, 4]);
-
-width(20); // 1
-width(50); // 2
-width(80); // 4
-```
-
-<a name="quantize_invertExtent" href="#quantize_invertExtent">#</a> <i>quantize</i>.<b>invertExtent</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns the extent of values in the [domain](#quantize_domain) [<i>x0</i>, <i>x1</i>] for the corresponding *value* in the [range](#quantize_range): the inverse of [*quantize*](#_quantize). This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-
-```js
-var width = d3.scaleQuantize()
-    .domain([10, 100])
-    .range([1, 2, 4]);
-
-width.invertExtent(2); // [40, 70]
-```
-
-<a name="quantize_domain" href="#quantize_domain">#</a> <i>quantize</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *domain* is specified, sets the scale’s domain to the specified two-element array of numbers. If the elements in the given array are not numbers, they will be coerced to numbers. The numbers must be in ascending order or the behavior of the scale is undefined. If *domain* is not specified, returns the scale’s current domain.
-
-<a name="quantize_range" href="#quantize_range">#</a> <i>quantize</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *range* is specified, sets the scale’s range to the specified array of values. The array may contain any number of discrete values. The elements in the given array need not be numbers; any value or type will work. If *range* is not specified, returns the scale’s current range.
-
-<a name="quantize_ticks" href="#quantize_ticks">#</a> <i>quantize</i>.<b>ticks</b>([<i>count</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Equivalent to [*continuous*.ticks](#continuous_ticks).
-
-<a name="quantize_tickFormat" href="#quantize_tickFormat">#</a> <i>quantize</i>.<b>tickFormat</b>([<i>count</i>[, <i>specifier</i>]]) · [Source](https://github.com/d3/d3-scale/blob/master/src/linear.js), [Examples](https://observablehq.com/@d3/scale-ticks)
-
-Equivalent to [*continuous*.tickFormat](#continuous_tickFormat).
-
-<a name="quantize_nice" href="#quantize_nice">#</a> <i>quantize</i>.<b>nice</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Equivalent to [*continuous*.nice](#continuous_nice).
-
-<a name="quantize_thresholds" href="#quantize_thresholds">#</a> <i>quantize</i>.<b>thresholds</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns the array of computed thresholds within the [domain](#quantize_domain).
-
-<a name="quantize_copy" href="#quantize_copy">#</a> <i>quantize</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/quantize.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-### Quantile Scales
-
-Quantile scales map a sampled input domain to a discrete range. The domain is considered continuous and thus the scale will accept any reasonable input value; however, the domain is specified as a discrete set of sample values. The number of values in (the cardinality of) the output range determines the number of quantiles that will be computed from the domain. To compute the quantiles, the domain is sorted, and treated as a [population of discrete values](https://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population); see d3-array’s [quantile](https://github.com/d3/d3-array/blob/master/README.md#quantile). See [this quantile choropleth](https://observablehq.com/@d3/quantile-choropleth) for an example.
-
-<a name="scaleQuantile" href="#scaleQuantile">#</a> d3.<b>scaleQuantile</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Constructs a new quantile scale with the specified [*domain*](#quantile_domain) and [*range*](#quantile_range). If either *domain* or *range* is not specified, each defaults to the empty array. The quantile scale is invalid until both a domain and range are specified.
-
-<a name="_quantile" href="#_quantile">#</a> <i>quantile</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Given a *value* in the input [domain](#quantile_domain), returns the corresponding value in the output [range](#quantile_range).
-
-<a name="quantile_invertExtent" href="#quantile_invertExtent">#</a> <i>quantile</i>.<b>invertExtent</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns the extent of values in the [domain](#quantile_domain) [<i>x0</i>, <i>x1</i>] for the corresponding *value* in the [range](#quantile_range): the inverse of [*quantile*](#_quantile). This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse.
-
-<a name="quantile_domain" href="#quantile_domain">#</a> <i>quantile</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *domain* is specified, sets the domain of the quantile scale to the specified set of discrete numeric values. The array must not be empty, and must contain at least one numeric value; NaN, null and undefined values are ignored and not considered part of the sample population. If the elements in the given array are not numbers, they will be coerced to numbers. A copy of the input array is sorted and stored internally. If *domain* is not specified, returns the scale’s current domain.
-
-<a name="quantile_range" href="#quantile_range">#</a> <i>quantile</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *range* is specified, sets the discrete values in the range. The array must not be empty, and may contain any type of value. The number of values in (the cardinality, or length, of) the *range* array determines the number of quantiles that are computed. For example, to compute quartiles, *range* must be an array of four elements such as [0, 1, 2, 3]. If *range* is not specified, returns the current range.
-
-<a name="quantile_quantiles" href="#quantile_quantiles">#</a> <i>quantile</i>.<b>quantiles</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns the quantile thresholds. If the [range](#quantile_range) contains *n* discrete values, the returned array will contain *n* - 1 thresholds. Values less than the first threshold are considered in the first quantile; values greater than or equal to the first threshold but less than the second threshold are in the second quantile, and so on. Internally, the thresholds array is used with [bisect](https://github.com/d3/d3-array/blob/master/README.md#bisect) to find the output quantile associated with the given input value.
-
-<a name="quantile_copy" href="#quantile_copy">#</a> <i>quantile</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/quantile.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-### Threshold Scales
-
-Threshold scales are similar to [quantize scales](#quantize-scales), except they allow you to map arbitrary subsets of the domain to discrete values in the range. The input domain is still continuous, and divided into slices based on a set of threshold values. See [this choropleth](https://observablehq.com/@d3/threshold-choropleth) for an example.
-
-<a name="scaleThreshold" href="#scaleThreshold">#</a> d3.<b>scaleThreshold</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Constructs a new threshold scale with the specified [*domain*](#threshold_domain) and [*range*](#threshold_range). If *domain* is not specified, it defaults to [0.5]. If *range* is not specified, it defaults to [0, 1]. Thus, the default threshold scale is equivalent to the [Math.round](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round) function for numbers; for example threshold(0.49) returns 0, and threshold(0.51) returns 1.
-
-<a name="_threshold" href="#_threshold">#</a> <i>threshold</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Given a *value* in the input [domain](#threshold_domain), returns the corresponding value in the output [range](#threshold_range). For example:
-
-```js
-var color = d3.scaleThreshold()
-    .domain([0, 1])
-    .range(["red", "white", "green"]);
-
-color(-1);   // "red"
-color(0);    // "white"
-color(0.5);  // "white"
-color(1);    // "green"
-color(1000); // "green"
-```
-
-<a name="threshold_invertExtent" href="#threshold_invertExtent">#</a> <i>threshold</i>.<b>invertExtent</b>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/choropleth)
-
-Returns the extent of values in the [domain](#threshold_domain) [<i>x0</i>, <i>x1</i>] for the corresponding *value* in the [range](#threshold_range), representing the inverse mapping from range to domain. This method is useful for interaction, say to determine the value in the domain that corresponds to the pixel location under the mouse. For example:
-
-```js
-var color = d3.scaleThreshold()
-    .domain([0, 1])
-    .range(["red", "white", "green"]);
-
-color.invertExtent("red"); // [undefined, 0]
-color.invertExtent("white"); // [0, 1]
-color.invertExtent("green"); // [1, undefined]
-```
-
-<a name="threshold_domain" href="#threshold_domain">#</a> <i>threshold</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *domain* is specified, sets the scale’s domain to the specified array of values. The values must be in ascending order or the behavior of the scale is undefined. The values are typically numbers, but any naturally ordered values (such as strings) will work; a threshold scale can be used to encode any type that is ordered. If the number of values in the scale’s range is N+1, the number of values in the scale’s domain must be N. If there are fewer than N elements in the domain, the additional values in the range are ignored. If there are more than N elements in the domain, the scale may return undefined for some inputs. If *domain* is not specified, returns the scale’s current domain.
-
-<a name="threshold_range" href="#threshold_range">#</a> <i>threshold</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-If *range* is specified, sets the scale’s range to the specified array of values. If the number of values in the scale’s domain is N, the number of values in the scale’s range must be N+1. If there are fewer than N+1 elements in the range, the scale may return undefined for some inputs. If there are more than N+1 elements in the range, the additional values are ignored. The elements in the given array need not be numbers; any value or type will work. If *range* is not specified, returns the scale’s current range.
-
-<a name="threshold_copy" href="#threshold_copy">#</a> <i>threshold</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/threshold.js), [Examples](https://observablehq.com/@d3/quantile-quantize-and-threshold-scales)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-### Ordinal Scales
-
-Unlike [continuous scales](#continuous-scales), ordinal scales have a discrete domain and range. For example, an ordinal scale might map a set of named categories to a set of colors, or determine the horizontal positions of columns in a column chart.
-
-<a name="scaleOrdinal" href="#scaleOrdinal">#</a> d3.<b>scaleOrdinal</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-Constructs a new ordinal scale with the specified [*domain*](#ordinal_domain) and [*range*](#ordinal_range). If *domain* is not specified, it defaults to the empty array. If *range* is not specified, it defaults to the empty array; an ordinal scale always returns undefined until a non-empty range is defined.
-
-<a name="_ordinal" href="#_ordinal">#</a> <i>ordinal</i>(<i>value</i>) · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-Given a *value* in the input [domain](#ordinal_domain), returns the corresponding value in the output [range](#ordinal_range). If the given *value* is not in the scale’s [domain](#ordinal_domain), returns the [unknown](#ordinal_unknown); or, if the unknown value is [implicit](#scaleImplicit) (the default), then the *value* is implicitly added to the domain and the next-available value in the range is assigned to *value*, such that this and subsequent invocations of the scale given the same input *value* return the same output value.
-
-<a name="ordinal_domain" href="#ordinal_domain">#</a> <i>ordinal</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-If *domain* is specified, sets the domain to the specified array of values. The first element in *domain* will be mapped to the first element in the range, the second domain value to the second range value, and so on. Domain values are stored internally in an [InternMap](https://github.com/mbostock/internmap) from primitive value to index; the resulting index is then used to retrieve a value from the range. Thus, an ordinal scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding range value. If *domain* is not specified, this method returns the current domain.
-
-Setting the domain on an ordinal scale is optional if the [unknown value](#ordinal_unknown) is [implicit](#scaleImplicit) (the default). In this case, the domain will be inferred implicitly from usage by assigning each unique value passed to the scale a new value from the range. Note that an explicit domain is recommended to ensure deterministic behavior, as inferring the domain from usage will be dependent on ordering.
-
-<a name="ordinal_range" href="#ordinal_range">#</a> <i>ordinal</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-If *range* is specified, sets the range of the ordinal scale to the specified array of values. The first element in the domain will be mapped to the first element in *range*, the second domain value to the second range value, and so on. If there are fewer elements in the range than in the domain, the scale will reuse values from the start of the range. If *range* is not specified, this method returns the current range.
-
-<a name="ordinal_unknown" href="#ordinal_unknown">#</a> <i>ordinal</i>.<b>unknown</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-If *value* is specified, sets the output value of the scale for unknown input values and returns this scale. If *value* is not specified, returns the current unknown value, which defaults to [implicit](#scaleImplicit). The implicit value enables implicit domain construction; see [*ordinal*.domain](#ordinal_domain).
-
-<a name="ordinal_copy" href="#ordinal_copy">#</a> <i>ordinal</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-Returns an exact copy of this ordinal scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-<a name="scaleImplicit" href="#scaleImplicit">#</a> d3.<b>scaleImplicit</b> · [Source](https://github.com/d3/d3-scale/blob/master/src/ordinal.js), [Examples](https://observablehq.com/@d3/d3-scaleordinal)
-
-A special value for [*ordinal*.unknown](#ordinal_unknown) that enables implicit domain construction: unknown values are implicitly added to the domain.
-
-#### Band Scales
-
-Band scales are like [ordinal scales](#ordinal-scales) except the output range is continuous and numeric. Discrete output values are automatically computed by the scale by dividing the continuous range into uniform bands. Band scales are typically used for bar charts with an ordinal or categorical dimension. The [unknown value](#ordinal_unknown) of a band scale is effectively undefined: they do not allow implicit domain construction.
-
-<img src="https://raw.githubusercontent.com/d3/d3-scale/master/img/band.png" width="751" height="238" alt="band">
-
-<a name="scaleBand" href="#scaleBand">#</a> d3.<b>scaleBand</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Constructs a new band scale with the specified [*domain*](#band_domain) and [*range*](#band_range), no [padding](#band_padding), no [rounding](#band_round) and center [alignment](#band_align). If *domain* is not specified, it defaults to the empty domain. If *range* is not specified, it defaults to the unit range [0, 1].
-
-<a name="_band" href="#_band">#</a> <i>band</i>(*value*) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Given a *value* in the input [domain](#band_domain), returns the start of the corresponding band derived from the output [range](#band_range). If the given *value* is not in the scale’s domain, returns undefined.
-
-<a name="band_domain" href="#band_domain">#</a> <i>band</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *domain* is specified, sets the domain to the specified array of values. The first element in *domain* will be mapped to the first band, the second domain value to the second band, and so on. Domain values are stored internally in an [InternMap](https://github.com/mbostock/internmap) from primitive value to index; the resulting index is then used to determine the band. Thus, a band scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding band. If *domain* is not specified, this method returns the current domain.
-
-<a name="band_range" href="#band_range">#</a> <i>band</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *range* is specified, sets the scale’s range to the specified two-element array of numbers. If the elements in the given array are not numbers, they will be coerced to numbers. If *range* is not specified, returns the scale’s current range, which defaults to [0, 1].
-
-<a name="band_rangeRound" href="#band_rangeRound">#</a> <i>band</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Sets the scale’s [*range*](#band_range) to the specified two-element array of numbers while also enabling [rounding](#band_round). This is a convenience method equivalent to:
-
-```js
-band
-    .range(range)
-    .round(true);
-```
-
-Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the [shape-rendering](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering) “crispEdges” styles.
-
-<a name="band_round" href="#band_round">#</a> <i>band</i>.<b>round</b>([<i>round</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *round* is specified, enables or disables rounding accordingly. If rounding is enabled, the start and stop of each band will be integers. Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the [shape-rendering](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering) “crispEdges” styles. Note that if the width of the domain is not a multiple of the cardinality of the range, there may be leftover unused space, even without padding! Use [*band*.align](#band_align) to specify how the leftover space is distributed.
-
-<a name="band_paddingInner" href="#band_paddingInner">#</a> <i>band</i>.<b>paddingInner</b>([<i>padding</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *padding* is specified, sets the inner padding to the specified number which must be less than or equal to 1. If *padding* is not specified, returns the current inner padding which defaults to 0. The inner padding specifies the proportion of the range that is reserved for blank space between bands; a value of 0 means no blank space between bands, and a value of 1 means a [bandwidth](#band_bandwidth) of zero.
-
-<a name="band_paddingOuter" href="#band_paddingOuter">#</a> <i>band</i>.<b>paddingOuter</b>([<i>padding</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *padding* is specified, sets the outer padding to the specified number which is typically in the range [0, 1]. If *padding* is not specified, returns the current outer padding which defaults to 0. The outer padding specifies the amount of blank space, in terms of multiples of the [step](#band_step), to reserve before the first band and after the last band.
-
-<a name="band_padding" href="#band_padding">#</a> <i>band</i>.<b>padding</b>([<i>padding</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-A convenience method for setting the [inner](#band_paddingInner) and [outer](#band_paddingOuter) padding to the same *padding* value. If *padding* is not specified, returns the inner padding.
-
-<a name="band_align" href="#band_align">#</a> <i>band</i>.<b>align</b>([<i>align</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-If *align* is specified, sets the alignment to the specified value which must be in the range [0, 1]. If *align* is not specified, returns the current alignment which defaults to 0.5. The alignment specifies how outer padding is distributed in the range. A value of 0.5 indicates that the outer padding should be equally distributed before the first band and after the last band; *i.e.*, the bands should be centered within the range. A value of 0 or 1 may be used to shift the bands to one side, say to position them adjacent to an axis. For more, [see this explainer](https://observablehq.com/@d3/band-align).
-
-<a name="band_bandwidth" href="#band_bandwidth">#</a> <i>band</i>.<b>bandwidth</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Returns the width of each band.
-
-<a name="band_step" href="#band_step">#</a> <i>band</i>.<b>step</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Returns the distance between the starts of adjacent bands.
-
-<a name="band_copy" href="#band_copy">#</a> <i>band</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scaleband)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-
-#### Point Scales
-
-Point scales are a variant of [band scales](#band-scales) with the bandwidth fixed to zero. Point scales are typically used for scatterplots with an ordinal or categorical dimension. The [unknown value](#ordinal_unknown) of a point scale is always undefined: they do not allow implicit domain construction.
-
-<img src="https://raw.githubusercontent.com/d3/d3-scale/master/img/point.png" width="648" height="155" alt="point">
-
-<a name="scalePoint" href="#scalePoint">#</a> d3.<b>scalePoint</b>([[<i>domain</i>, ]<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Constructs a new point scale with the specified [*domain*](#point_domain) and [*range*](#point_range), no [padding](#point_padding), no [rounding](#point_round) and center [alignment](#point_align). If *domain* is not specified, it defaults to the empty domain. If *range* is not specified, it defaults to the unit range [0, 1].
-
-<a name="_point" href="#_point">#</a> <i>point</i>(*value*) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Given a *value* in the input [domain](#point_domain), returns the corresponding point derived from the output [range](#point_range). If the given *value* is not in the scale’s domain, returns undefined.
-
-<a name="point_domain" href="#point_domain">#</a> <i>point</i>.<b>domain</b>([<i>domain</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-If *domain* is specified, sets the domain to the specified array of values. The first element in *domain* will be mapped to the first point, the second domain value to the second point, and so on. Domain values are stored internally in an [InternMap](https://github.com/mbostock/internmap) from primitive value to index; the resulting index is then used to determine the point. Thus, a point scale’s values must be coercible to a primitive value, and the primitive domain value uniquely identifies the corresponding point. If *domain* is not specified, this method returns the current domain.
-
-<a name="point_range" href="#point_range">#</a> <i>point</i>.<b>range</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-If *range* is specified, sets the scale’s range to the specified two-element array of numbers. If the elements in the given array are not numbers, they will be coerced to numbers. If *range* is not specified, returns the scale’s current range, which defaults to [0, 1].
-
-<a name="point_rangeRound" href="#point_rangeRound">#</a> <i>point</i>.<b>rangeRound</b>([<i>range</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Sets the scale’s [*range*](#point_range) to the specified two-element array of numbers while also enabling [rounding](#point_round). This is a convenience method equivalent to:
-
-```js
-point
-    .range(range)
-    .round(true);
-```
-
-Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the [shape-rendering](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering) “crispEdges” styles.
-
-<a name="point_round" href="#point_round">#</a> <i>point</i>.<b>round</b>([<i>round</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-If *round* is specified, enables or disables rounding accordingly. If rounding is enabled, the position of each point will be integers. Rounding is sometimes useful for avoiding antialiasing artifacts, though also consider the [shape-rendering](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering) “crispEdges” styles. Note that if the width of the domain is not a multiple of the cardinality of the range, there may be leftover unused space, even without padding! Use [*point*.align](#point_align) to specify how the leftover space is distributed.
-
-<a name="point_padding" href="#point_padding">#</a> <i>point</i>.<b>padding</b>([<i>padding</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-If *padding* is specified, sets the outer padding to the specified number which is typically in the range [0, 1]. If *padding* is not specified, returns the current outer padding which defaults to 0. The outer padding specifies the amount of blank space, in terms of multiples of the [step](#band_step), to reserve before the first point and after the last point. Equivalent to [*band*.paddingOuter](#band_paddingOuter).
-
-<a name="point_align" href="#point_align">#</a> <i>point</i>.<b>align</b>([<i>align</i>]) · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-If *align* is specified, sets the alignment to the specified value which must be in the range [0, 1]. If *align* is not specified, returns the current alignment which defaults to 0.5. The alignment specifies how any leftover unused space in the range is distributed. A value of 0.5 indicates that the leftover space should be equally distributed before the first point and after the last point; *i.e.*, the points should be centered within the range. A value of 0 or 1 may be used to shift the points to one side, say to position them adjacent to an axis.
-
-<a name="point_bandwidth" href="#point_bandwidth">#</a> <i>point</i>.<b>bandwidth</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Returns zero.
-
-<a name="point_step" href="#point_step">#</a> <i>point</i>.<b>step</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Returns the distance between the starts of adjacent points.
-
-<a name="point_copy" href="#point_copy">#</a> <i>point</i>.<b>copy</b>() · [Source](https://github.com/d3/d3-scale/blob/master/src/band.js), [Examples](https://observablehq.com/@d3/d3-scalepoint)
-
-Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
Index: de_modules/d3-scale/dist/d3-scale.js
===================================================================
--- node_modules/d3-scale/dist/d3-scale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1196 +1,0 @@
-// https://d3js.org/d3-scale/ v4.0.2 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array'), require('d3-interpolate'), require('d3-format'), require('d3-time'), require('d3-time-format')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-interpolate', 'd3-format', 'd3-time', 'd3-time-format'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3, global.d3, global.d3));
-})(this, (function (exports, d3Array, d3Interpolate, d3Format, d3Time, d3TimeFormat) { 'use strict';
-
-function initRange(domain, range) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: this.range(domain); break;
-    default: this.range(range).domain(domain); break;
-  }
-  return this;
-}
-
-function initInterpolator(domain, interpolator) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: {
-      if (typeof domain === "function") this.interpolator(domain);
-      else this.range(domain);
-      break;
-    }
-    default: {
-      this.domain(domain);
-      if (typeof interpolator === "function") this.interpolator(interpolator);
-      else this.range(interpolator);
-      break;
-    }
-  }
-  return this;
-}
-
-const implicit = Symbol("implicit");
-
-function ordinal() {
-  var index = new d3Array.InternMap(),
-      domain = [],
-      range = [],
-      unknown = implicit;
-
-  function scale(d) {
-    let i = index.get(d);
-    if (i === undefined) {
-      if (unknown !== implicit) return unknown;
-      index.set(d, i = domain.push(d) - 1);
-    }
-    return range[i % range.length];
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [], index = new d3Array.InternMap();
-    for (const value of _) {
-      if (index.has(value)) continue;
-      index.set(value, domain.push(value) - 1);
-    }
-    return scale;
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), scale) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return ordinal(domain, range).unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
-
-function band() {
-  var scale = ordinal().unknown(undefined),
-      domain = scale.domain,
-      ordinalRange = scale.range,
-      r0 = 0,
-      r1 = 1,
-      step,
-      bandwidth,
-      round = false,
-      paddingInner = 0,
-      paddingOuter = 0,
-      align = 0.5;
-
-  delete scale.unknown;
-
-  function rescale() {
-    var n = domain().length,
-        reverse = r1 < r0,
-        start = reverse ? r1 : r0,
-        stop = reverse ? r0 : r1;
-    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
-    if (round) step = Math.floor(step);
-    start += (stop - start - step * (n - paddingInner)) * align;
-    bandwidth = step * (1 - paddingInner);
-    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
-    var values = d3Array.range(n).map(function(i) { return start + step * i; });
-    return ordinalRange(reverse ? values.reverse() : values);
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
-  };
-
-  scale.rangeRound = function(_) {
-    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
-  };
-
-  scale.bandwidth = function() {
-    return bandwidth;
-  };
-
-  scale.step = function() {
-    return step;
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, rescale()) : round;
-  };
-
-  scale.padding = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
-  };
-
-  scale.paddingInner = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
-  };
-
-  scale.paddingOuter = function(_) {
-    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
-  };
-
-  scale.align = function(_) {
-    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
-  };
-
-  scale.copy = function() {
-    return band(domain(), [r0, r1])
-        .round(round)
-        .paddingInner(paddingInner)
-        .paddingOuter(paddingOuter)
-        .align(align);
-  };
-
-  return initRange.apply(rescale(), arguments);
-}
-
-function pointish(scale) {
-  var copy = scale.copy;
-
-  scale.padding = scale.paddingOuter;
-  delete scale.paddingInner;
-  delete scale.paddingOuter;
-
-  scale.copy = function() {
-    return pointish(copy());
-  };
-
-  return scale;
-}
-
-function point() {
-  return pointish(band.apply(null, arguments).paddingInner(1));
-}
-
-function constants(x) {
-  return function() {
-    return x;
-  };
-}
-
-function number$1(x) {
-  return +x;
-}
-
-var unit = [0, 1];
-
-function identity$1(x) {
-  return x;
-}
-
-function normalize(a, b) {
-  return (b -= (a = +a))
-      ? function(x) { return (x - a) / b; }
-      : constants(isNaN(b) ? NaN : 0.5);
-}
-
-function clamper(a, b) {
-  var t;
-  if (a > b) t = a, a = b, b = t;
-  return function(x) { return Math.max(a, Math.min(b, x)); };
-}
-
-// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
-// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
-function bimap(domain, range, interpolate) {
-  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
-  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
-  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
-  return function(x) { return r0(d0(x)); };
-}
-
-function polymap(domain, range, interpolate) {
-  var j = Math.min(domain.length, range.length) - 1,
-      d = new Array(j),
-      r = new Array(j),
-      i = -1;
-
-  // Reverse descending domains.
-  if (domain[j] < domain[0]) {
-    domain = domain.slice().reverse();
-    range = range.slice().reverse();
-  }
-
-  while (++i < j) {
-    d[i] = normalize(domain[i], domain[i + 1]);
-    r[i] = interpolate(range[i], range[i + 1]);
-  }
-
-  return function(x) {
-    var i = d3Array.bisect(domain, x, 1, j) - 1;
-    return r[i](d[i](x));
-  };
-}
-
-function copy$1(source, target) {
-  return target
-      .domain(source.domain())
-      .range(source.range())
-      .interpolate(source.interpolate())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-function transformer$2() {
-  var domain = unit,
-      range = unit,
-      interpolate = d3Interpolate.interpolate,
-      transform,
-      untransform,
-      unknown,
-      clamp = identity$1,
-      piecewise,
-      output,
-      input;
-
-  function rescale() {
-    var n = Math.min(domain.length, range.length);
-    if (clamp !== identity$1) clamp = clamper(domain[0], domain[n - 1]);
-    piecewise = n > 2 ? polymap : bimap;
-    output = input = null;
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
-  }
-
-  scale.invert = function(y) {
-    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3Interpolate.interpolateNumber)))(y)));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return range = Array.from(_), interpolate = d3Interpolate.interpolateRound, rescale();
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = _ ? true : identity$1, rescale()) : clamp !== identity$1;
-  };
-
-  scale.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, rescale()) : interpolate;
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t, u) {
-    transform = t, untransform = u;
-    return rescale();
-  };
-}
-
-function continuous() {
-  return transformer$2()(identity$1, identity$1);
-}
-
-function tickFormat(start, stop, count, specifier) {
-  var step = d3Array.tickStep(start, stop, count),
-      precision;
-  specifier = d3Format.formatSpecifier(specifier == null ? ",f" : specifier);
-  switch (specifier.type) {
-    case "s": {
-      var value = Math.max(Math.abs(start), Math.abs(stop));
-      if (specifier.precision == null && !isNaN(precision = d3Format.precisionPrefix(step, value))) specifier.precision = precision;
-      return d3Format.formatPrefix(specifier, value);
-    }
-    case "":
-    case "e":
-    case "g":
-    case "p":
-    case "r": {
-      if (specifier.precision == null && !isNaN(precision = d3Format.precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
-      break;
-    }
-    case "f":
-    case "%": {
-      if (specifier.precision == null && !isNaN(precision = d3Format.precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2;
-      break;
-    }
-  }
-  return d3Format.format(specifier);
-}
-
-function linearish(scale) {
-  var domain = scale.domain;
-
-  scale.ticks = function(count) {
-    var d = domain();
-    return d3Array.ticks(d[0], d[d.length - 1], count == null ? 10 : count);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    var d = domain();
-    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
-  };
-
-  scale.nice = function(count) {
-    if (count == null) count = 10;
-
-    var d = domain();
-    var i0 = 0;
-    var i1 = d.length - 1;
-    var start = d[i0];
-    var stop = d[i1];
-    var prestep;
-    var step;
-    var maxIter = 10;
-
-    if (stop < start) {
-      step = start, start = stop, stop = step;
-      step = i0, i0 = i1, i1 = step;
-    }
-    
-    while (maxIter-- > 0) {
-      step = d3Array.tickIncrement(start, stop, count);
-      if (step === prestep) {
-        d[i0] = start;
-        d[i1] = stop;
-        return domain(d);
-      } else if (step > 0) {
-        start = Math.floor(start / step) * step;
-        stop = Math.ceil(stop / step) * step;
-      } else if (step < 0) {
-        start = Math.ceil(start * step) / step;
-        stop = Math.floor(stop * step) / step;
-      } else {
-        break;
-      }
-      prestep = step;
-    }
-
-    return scale;
-  };
-
-  return scale;
-}
-
-function linear() {
-  var scale = continuous();
-
-  scale.copy = function() {
-    return copy$1(scale, linear());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
-
-function identity(domain) {
-  var unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : x;
-  }
-
-  scale.invert = scale;
-
-  scale.domain = scale.range = function(_) {
-    return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return identity(domain).unknown(unknown);
-  };
-
-  domain = arguments.length ? Array.from(domain, number$1) : [0, 1];
-
-  return linearish(scale);
-}
-
-function nice(domain, interval) {
-  domain = domain.slice();
-
-  var i0 = 0,
-      i1 = domain.length - 1,
-      x0 = domain[i0],
-      x1 = domain[i1],
-      t;
-
-  if (x1 < x0) {
-    t = i0, i0 = i1, i1 = t;
-    t = x0, x0 = x1, x1 = t;
-  }
-
-  domain[i0] = interval.floor(x0);
-  domain[i1] = interval.ceil(x1);
-  return domain;
-}
-
-function transformLog(x) {
-  return Math.log(x);
-}
-
-function transformExp(x) {
-  return Math.exp(x);
-}
-
-function transformLogn(x) {
-  return -Math.log(-x);
-}
-
-function transformExpn(x) {
-  return -Math.exp(-x);
-}
-
-function pow10(x) {
-  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
-}
-
-function powp(base) {
-  return base === 10 ? pow10
-      : base === Math.E ? Math.exp
-      : x => Math.pow(base, x);
-}
-
-function logp(base) {
-  return base === Math.E ? Math.log
-      : base === 10 && Math.log10
-      || base === 2 && Math.log2
-      || (base = Math.log(base), x => Math.log(x) / base);
-}
-
-function reflect(f) {
-  return (x, k) => -f(-x, k);
-}
-
-function loggish(transform) {
-  const scale = transform(transformLog, transformExp);
-  const domain = scale.domain;
-  let base = 10;
-  let logs;
-  let pows;
-
-  function rescale() {
-    logs = logp(base), pows = powp(base);
-    if (domain()[0] < 0) {
-      logs = reflect(logs), pows = reflect(pows);
-      transform(transformLogn, transformExpn);
-    } else {
-      transform(transformLog, transformExp);
-    }
-    return scale;
-  }
-
-  scale.base = function(_) {
-    return arguments.length ? (base = +_, rescale()) : base;
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.ticks = count => {
-    const d = domain();
-    let u = d[0];
-    let v = d[d.length - 1];
-    const r = v < u;
-
-    if (r) ([u, v] = [v, u]);
-
-    let i = logs(u);
-    let j = logs(v);
-    let k;
-    let t;
-    const n = count == null ? 10 : +count;
-    let z = [];
-
-    if (!(base % 1) && j - i < n) {
-      i = Math.floor(i), j = Math.ceil(j);
-      if (u > 0) for (; i <= j; ++i) {
-        for (k = 1; k < base; ++k) {
-          t = i < 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      } else for (; i <= j; ++i) {
-        for (k = base - 1; k >= 1; --k) {
-          t = i > 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      }
-      if (z.length * 2 < n) z = d3Array.ticks(u, v, n);
-    } else {
-      z = d3Array.ticks(i, j, Math.min(j - i, n)).map(pows);
-    }
-    return r ? z.reverse() : z;
-  };
-
-  scale.tickFormat = (count, specifier) => {
-    if (count == null) count = 10;
-    if (specifier == null) specifier = base === 10 ? "s" : ",";
-    if (typeof specifier !== "function") {
-      if (!(base % 1) && (specifier = d3Format.formatSpecifier(specifier)).precision == null) specifier.trim = true;
-      specifier = d3Format.format(specifier);
-    }
-    if (count === Infinity) return specifier;
-    const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
-    return d => {
-      let i = d / pows(Math.round(logs(d)));
-      if (i * base < base - 0.5) i *= base;
-      return i <= k ? specifier(d) : "";
-    };
-  };
-
-  scale.nice = () => {
-    return domain(nice(domain(), {
-      floor: x => pows(Math.floor(logs(x))),
-      ceil: x => pows(Math.ceil(logs(x)))
-    }));
-  };
-
-  return scale;
-}
-
-function log() {
-  const scale = loggish(transformer$2()).domain([1, 10]);
-  scale.copy = () => copy$1(scale, log()).base(scale.base());
-  initRange.apply(scale, arguments);
-  return scale;
-}
-
-function transformSymlog(c) {
-  return function(x) {
-    return Math.sign(x) * Math.log1p(Math.abs(x / c));
-  };
-}
-
-function transformSymexp(c) {
-  return function(x) {
-    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
-  };
-}
-
-function symlogish(transform) {
-  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));
-
-  scale.constant = function(_) {
-    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
-  };
-
-  return linearish(scale);
-}
-
-function symlog() {
-  var scale = symlogish(transformer$2());
-
-  scale.copy = function() {
-    return copy$1(scale, symlog()).constant(scale.constant());
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-function transformPow(exponent) {
-  return function(x) {
-    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
-  };
-}
-
-function transformSqrt(x) {
-  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
-}
-
-function transformSquare(x) {
-  return x < 0 ? -x * x : x * x;
-}
-
-function powish(transform) {
-  var scale = transform(identity$1, identity$1),
-      exponent = 1;
-
-  function rescale() {
-    return exponent === 1 ? transform(identity$1, identity$1)
-        : exponent === 0.5 ? transform(transformSqrt, transformSquare)
-        : transform(transformPow(exponent), transformPow(1 / exponent));
-  }
-
-  scale.exponent = function(_) {
-    return arguments.length ? (exponent = +_, rescale()) : exponent;
-  };
-
-  return linearish(scale);
-}
-
-function pow() {
-  var scale = powish(transformer$2());
-
-  scale.copy = function() {
-    return copy$1(scale, pow()).exponent(scale.exponent());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
-
-function sqrt() {
-  return pow.apply(null, arguments).exponent(0.5);
-}
-
-function square(x) {
-  return Math.sign(x) * x * x;
-}
-
-function unsquare(x) {
-  return Math.sign(x) * Math.sqrt(Math.abs(x));
-}
-
-function radial() {
-  var squared = continuous(),
-      range = [0, 1],
-      round = false,
-      unknown;
-
-  function scale(x) {
-    var y = unsquare(squared(x));
-    return isNaN(y) ? unknown : round ? Math.round(y) : y;
-  }
-
-  scale.invert = function(y) {
-    return squared.invert(square(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (squared.domain(_), scale) : squared.domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square)), scale) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return scale.range(_).round(true);
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, scale) : round;
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return radial(squared.domain(), range)
-        .round(round)
-        .clamp(squared.clamp())
-        .unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
-
-function quantile() {
-  var domain = [],
-      range = [],
-      thresholds = [],
-      unknown;
-
-  function rescale() {
-    var i = 0, n = Math.max(1, range.length);
-    thresholds = new Array(n - 1);
-    while (++i < n) thresholds[i - 1] = d3Array.quantileSorted(domain, i / n);
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : range[d3Array.bisect(thresholds, x)];
-  }
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN] : [
-      i > 0 ? thresholds[i - 1] : domain[0],
-      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
-    ];
-  };
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(d3Array.ascending);
-    return rescale();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.quantiles = function() {
-    return thresholds.slice();
-  };
-
-  scale.copy = function() {
-    return quantile()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-function quantize() {
-  var x0 = 0,
-      x1 = 1,
-      n = 1,
-      domain = [0.5],
-      range = [0, 1],
-      unknown;
-
-  function scale(x) {
-    return x != null && x <= x ? range[d3Array.bisect(domain, x, 0, n)] : unknown;
-  }
-
-  function rescale() {
-    var i = -1;
-    domain = new Array(n);
-    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
-    return scale;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN]
-        : i < 1 ? [x0, domain[0]]
-        : i >= n ? [domain[n - 1], x1]
-        : [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : scale;
-  };
-
-  scale.thresholds = function() {
-    return domain.slice();
-  };
-
-  scale.copy = function() {
-    return quantize()
-        .domain([x0, x1])
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(linearish(scale), arguments);
-}
-
-function threshold() {
-  var domain = [0.5],
-      range = [0, 1],
-      unknown,
-      n = 1;
-
-  function scale(x) {
-    return x != null && x <= x ? range[d3Array.bisect(domain, x, 0, n)] : unknown;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return threshold()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-function date(t) {
-  return new Date(t);
-}
-
-function number(t) {
-  return t instanceof Date ? +t : +new Date(+t);
-}
-
-function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
-  var scale = continuous(),
-      invert = scale.invert,
-      domain = scale.domain;
-
-  var formatMillisecond = format(".%L"),
-      formatSecond = format(":%S"),
-      formatMinute = format("%I:%M"),
-      formatHour = format("%I %p"),
-      formatDay = format("%a %d"),
-      formatWeek = format("%b %d"),
-      formatMonth = format("%B"),
-      formatYear = format("%Y");
-
-  function tickFormat(date) {
-    return (second(date) < date ? formatMillisecond
-        : minute(date) < date ? formatSecond
-        : hour(date) < date ? formatMinute
-        : day(date) < date ? formatHour
-        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
-        : year(date) < date ? formatMonth
-        : formatYear)(date);
-  }
-
-  scale.invert = function(y) {
-    return new Date(invert(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
-  };
-
-  scale.ticks = function(interval) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    return specifier == null ? tickFormat : format(specifier);
-  };
-
-  scale.nice = function(interval) {
-    var d = domain();
-    if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
-    return interval ? domain(nice(d, interval)) : scale;
-  };
-
-  scale.copy = function() {
-    return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
-  };
-
-  return scale;
-}
-
-function time() {
-  return initRange.apply(calendar(d3Time.timeTicks, d3Time.timeTickInterval, d3Time.timeYear, d3Time.timeMonth, d3Time.timeWeek, d3Time.timeDay, d3Time.timeHour, d3Time.timeMinute, d3Time.timeSecond, d3TimeFormat.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
-}
-
-function utcTime() {
-  return initRange.apply(calendar(d3Time.utcTicks, d3Time.utcTickInterval, d3Time.utcYear, d3Time.utcMonth, d3Time.utcWeek, d3Time.utcDay, d3Time.utcHour, d3Time.utcMinute, d3Time.utcSecond, d3TimeFormat.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
-}
-
-function transformer$1() {
-  var x0 = 0,
-      x1 = 1,
-      t0,
-      t1,
-      k10,
-      transform,
-      interpolator = identity$1,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1;
-      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
-    };
-  }
-
-  scale.range = range(d3Interpolate.interpolate);
-
-  scale.rangeRound = range(d3Interpolate.interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
-    return scale;
-  };
-}
-
-function copy(source, target) {
-  return target
-      .domain(source.domain())
-      .interpolator(source.interpolator())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-function sequential() {
-  var scale = linearish(transformer$1()(identity$1));
-
-  scale.copy = function() {
-    return copy(scale, sequential());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialLog() {
-  var scale = loggish(transformer$1()).domain([1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, sequentialLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialSymlog() {
-  var scale = symlogish(transformer$1());
-
-  scale.copy = function() {
-    return copy(scale, sequentialSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialPow() {
-  var scale = powish(transformer$1());
-
-  scale.copy = function() {
-    return copy(scale, sequentialPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialSqrt() {
-  return sequentialPow.apply(null, arguments).exponent(0.5);
-}
-
-function sequentialQuantile() {
-  var domain = [],
-      interpolator = identity$1;
-
-  function scale(x) {
-    if (x != null && !isNaN(x = +x)) return interpolator((d3Array.bisect(domain, x, 1) - 1) / (domain.length - 1));
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(d3Array.ascending);
-    return scale;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  scale.range = function() {
-    return domain.map((d, i) => interpolator(i / (domain.length - 1)));
-  };
-
-  scale.quantiles = function(n) {
-    return Array.from({length: n + 1}, (_, i) => d3Array.quantile(domain, i / n));
-  };
-
-  scale.copy = function() {
-    return sequentialQuantile(interpolator).domain(domain);
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function transformer() {
-  var x0 = 0,
-      x1 = 0.5,
-      x2 = 1,
-      s = 1,
-      t0,
-      t1,
-      t2,
-      k10,
-      k21,
-      interpolator = identity$1,
-      transform,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1, r2;
-      return arguments.length ? ([r0, r1, r2] = _, interpolator = d3Interpolate.piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
-    };
-  }
-
-  scale.range = range(d3Interpolate.interpolate);
-
-  scale.rangeRound = range(d3Interpolate.interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
-    return scale;
-  };
-}
-
-function diverging() {
-  var scale = linearish(transformer()(identity$1));
-
-  scale.copy = function() {
-    return copy(scale, diverging());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingLog() {
-  var scale = loggish(transformer()).domain([0.1, 1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, divergingLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingSymlog() {
-  var scale = symlogish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingPow() {
-  var scale = powish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingSqrt() {
-  return divergingPow.apply(null, arguments).exponent(0.5);
-}
-
-exports.scaleBand = band;
-exports.scaleDiverging = diverging;
-exports.scaleDivergingLog = divergingLog;
-exports.scaleDivergingPow = divergingPow;
-exports.scaleDivergingSqrt = divergingSqrt;
-exports.scaleDivergingSymlog = divergingSymlog;
-exports.scaleIdentity = identity;
-exports.scaleImplicit = implicit;
-exports.scaleLinear = linear;
-exports.scaleLog = log;
-exports.scaleOrdinal = ordinal;
-exports.scalePoint = point;
-exports.scalePow = pow;
-exports.scaleQuantile = quantile;
-exports.scaleQuantize = quantize;
-exports.scaleRadial = radial;
-exports.scaleSequential = sequential;
-exports.scaleSequentialLog = sequentialLog;
-exports.scaleSequentialPow = sequentialPow;
-exports.scaleSequentialQuantile = sequentialQuantile;
-exports.scaleSequentialSqrt = sequentialSqrt;
-exports.scaleSequentialSymlog = sequentialSymlog;
-exports.scaleSqrt = sqrt;
-exports.scaleSymlog = symlog;
-exports.scaleThreshold = threshold;
-exports.scaleTime = time;
-exports.scaleUtc = utcTime;
-exports.tickFormat = tickFormat;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-scale/dist/d3-scale.min.js
===================================================================
--- node_modules/d3-scale/dist/d3-scale.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-scale/ v4.0.2 Copyright 2010-2021 Mike Bostock
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array"),require("d3-interpolate"),require("d3-format"),require("d3-time"),require("d3-time-format")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{},n.d3,n.d3,n.d3,n.d3,n.d3)}(this,(function(n,t,r,e,u,i){"use strict";function o(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n)}return this}function a(n,t){switch(arguments.length){case 0:break;case 1:"function"==typeof n?this.interpolator(n):this.range(n);break;default:this.domain(n),"function"==typeof t?this.interpolator(t):this.range(t)}return this}const c=Symbol("implicit");function l(){var n=new t.InternMap,r=[],e=[],u=c;function i(t){let i=n.get(t);if(void 0===i){if(u!==c)return u;n.set(t,i=r.push(t)-1)}return e[i%e.length]}return i.domain=function(e){if(!arguments.length)return r.slice();r=[],n=new t.InternMap;for(const t of e)n.has(t)||n.set(t,r.push(t)-1);return i},i.range=function(n){return arguments.length?(e=Array.from(n),i):e.slice()},i.unknown=function(n){return arguments.length?(u=n,i):u},i.copy=function(){return l(r,e).unknown(u)},o.apply(i,arguments),i}function f(){var n,r,e=l().unknown(void 0),u=e.domain,i=e.range,a=0,c=1,s=!1,p=0,h=0,g=.5;function m(){var e=u().length,o=c<a,l=o?c:a,f=o?a:c;n=(f-l)/Math.max(1,e-p+2*h),s&&(n=Math.floor(n)),l+=(f-l-n*(e-p))*g,r=n*(1-p),s&&(l=Math.round(l),r=Math.round(r));var m=t.range(e).map((function(t){return l+n*t}));return i(o?m.reverse():m)}return delete e.unknown,e.domain=function(n){return arguments.length?(u(n),m()):u()},e.range=function(n){return arguments.length?([a,c]=n,a=+a,c=+c,m()):[a,c]},e.rangeRound=function(n){return[a,c]=n,a=+a,c=+c,s=!0,m()},e.bandwidth=function(){return r},e.step=function(){return n},e.round=function(n){return arguments.length?(s=!!n,m()):s},e.padding=function(n){return arguments.length?(p=Math.min(1,h=+n),m()):p},e.paddingInner=function(n){return arguments.length?(p=Math.min(1,n),m()):p},e.paddingOuter=function(n){return arguments.length?(h=+n,m()):h},e.align=function(n){return arguments.length?(g=Math.max(0,Math.min(1,n)),m()):g},e.copy=function(){return f(u(),[a,c]).round(s).paddingInner(p).paddingOuter(h).align(g)},o.apply(m(),arguments)}function s(n){var t=n.copy;return n.padding=n.paddingOuter,delete n.paddingInner,delete n.paddingOuter,n.copy=function(){return s(t())},n}function p(n){return+n}var h=[0,1];function g(n){return n}function m(n,t){return(t-=n=+n)?function(r){return(r-n)/t}:(r=isNaN(t)?NaN:.5,function(){return r});var r}function d(n,t,r){var e=n[0],u=n[1],i=t[0],o=t[1];return u<e?(e=m(u,e),i=r(o,i)):(e=m(e,u),i=r(i,o)),function(n){return i(e(n))}}function y(n,r,e){var u=Math.min(n.length,r.length)-1,i=new Array(u),o=new Array(u),a=-1;for(n[u]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<u;)i[a]=m(n[a],n[a+1]),o[a]=e(r[a],r[a+1]);return function(r){var e=t.bisect(n,r,1,u)-1;return o[e](i[e](r))}}function v(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function M(){var n,t,e,u,i,o,a=h,c=h,l=r.interpolate,f=g;function s(){var n,t,r,e=Math.min(a.length,c.length);return f!==g&&(n=a[0],t=a[e-1],n>t&&(r=n,n=t,t=r),f=function(r){return Math.max(n,Math.min(t,r))}),u=e>2?y:d,i=o=null,m}function m(t){return null==t||isNaN(t=+t)?e:(i||(i=u(a.map(n),c,l)))(n(f(t)))}return m.invert=function(e){return f(t((o||(o=u(c,a.map(n),r.interpolateNumber)))(e)))},m.domain=function(n){return arguments.length?(a=Array.from(n,p),s()):a.slice()},m.range=function(n){return arguments.length?(c=Array.from(n),s()):c.slice()},m.rangeRound=function(n){return c=Array.from(n),l=r.interpolateRound,s()},m.clamp=function(n){return arguments.length?(f=!!n||g,s()):f!==g},m.interpolate=function(n){return arguments.length?(l=n,s()):l},m.unknown=function(n){return arguments.length?(e=n,m):e},function(r,e){return n=r,t=e,s()}}function k(){return M()(g,g)}function w(n,r,u,i){var o,a=t.tickStep(n,r,u);switch((i=e.formatSpecifier(null==i?",f":i)).type){case"s":var c=Math.max(Math.abs(n),Math.abs(r));return null!=i.precision||isNaN(o=e.precisionPrefix(a,c))||(i.precision=o),e.formatPrefix(i,c);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=e.precisionRound(a,Math.max(Math.abs(n),Math.abs(r))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=e.precisionFixed(a))||(i.precision=o-2*("%"===i.type))}return e.format(i)}function N(n){var r=n.domain;return n.ticks=function(n){var e=r();return t.ticks(e[0],e[e.length-1],null==n?10:n)},n.tickFormat=function(n,t){var e=r();return w(e[0],e[e.length-1],null==n?10:n,t)},n.nice=function(e){null==e&&(e=10);var u,i,o=r(),a=0,c=o.length-1,l=o[a],f=o[c],s=10;for(f<l&&(i=l,l=f,f=i,i=a,a=c,c=i);s-- >0;){if((i=t.tickIncrement(l,f,e))===u)return o[a]=l,o[c]=f,r(o);if(i>0)l=Math.floor(l/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,f=Math.floor(f*i)/i}u=i}return n},n}function b(n,t){var r,e=0,u=(n=n.slice()).length-1,i=n[e],o=n[u];return o<i&&(r=e,e=u,u=r,r=i,i=o,o=r),n[e]=t.floor(i),n[u]=t.ceil(o),n}function x(n){return Math.log(n)}function q(n){return Math.exp(n)}function S(n){return-Math.log(-n)}function A(n){return-Math.exp(-n)}function D(n){return isFinite(n)?+("1e"+n):n<0?0:n}function I(n){return(t,r)=>-n(-t,r)}function R(n){const r=n(x,q),u=r.domain;let i,o,a=10;function c(){return i=function(n){return n===Math.E?Math.log:10===n&&Math.log10||2===n&&Math.log2||(n=Math.log(n),t=>Math.log(t)/n)}(a),o=function(n){return 10===n?D:n===Math.E?Math.exp:t=>Math.pow(n,t)}(a),u()[0]<0?(i=I(i),o=I(o),n(S,A)):n(x,q),r}return r.base=function(n){return arguments.length?(a=+n,c()):a},r.domain=function(n){return arguments.length?(u(n),c()):u()},r.ticks=n=>{const r=u();let e=r[0],c=r[r.length-1];const l=c<e;l&&([e,c]=[c,e]);let f,s,p=i(e),h=i(c);const g=null==n?10:+n;let m=[];if(!(a%1)&&h-p<g){if(p=Math.floor(p),h=Math.ceil(h),e>0){for(;p<=h;++p)for(f=1;f<a;++f)if(s=p<0?f/o(-p):f*o(p),!(s<e)){if(s>c)break;m.push(s)}}else for(;p<=h;++p)for(f=a-1;f>=1;--f)if(s=p>0?f/o(-p):f*o(p),!(s<e)){if(s>c)break;m.push(s)}2*m.length<g&&(m=t.ticks(e,c,g))}else m=t.ticks(p,h,Math.min(h-p,g)).map(o);return l?m.reverse():m},r.tickFormat=(n,t)=>{if(null==n&&(n=10),null==t&&(t=10===a?"s":","),"function"!=typeof t&&(a%1||null!=(t=e.formatSpecifier(t)).precision||(t.trim=!0),t=e.format(t)),n===1/0)return t;const u=Math.max(1,a*n/r.ticks().length);return n=>{let r=n/o(Math.round(i(n)));return r*a<a-.5&&(r*=a),r<=u?t(n):""}},r.nice=()=>u(b(u(),{floor:n=>o(Math.floor(i(n))),ceil:n=>o(Math.ceil(i(n)))})),r}function T(n){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/n))}}function O(n){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*n}}function F(n){var t=1,r=n(T(t),O(t));return r.constant=function(r){return arguments.length?n(T(t=+r),O(t)):t},N(r)}function P(n){return function(t){return t<0?-Math.pow(-t,n):Math.pow(t,n)}}function E(n){return n<0?-Math.sqrt(-n):Math.sqrt(n)}function L(n){return n<0?-n*n:n*n}function Q(n){var t=n(g,g),r=1;function e(){return 1===r?n(g,g):.5===r?n(E,L):n(P(r),P(1/r))}return t.exponent=function(n){return arguments.length?(r=+n,e()):r},N(t)}function U(){var n=Q(M());return n.copy=function(){return v(n,U()).exponent(n.exponent())},o.apply(n,arguments),n}function Y(n){return Math.sign(n)*n*n}function j(n){return Math.sign(n)*Math.sqrt(Math.abs(n))}function B(n){return new Date(n)}function C(n){return n instanceof Date?+n:+new Date(+n)}function H(n,t,r,e,u,i,o,a,c,l){var f=k(),s=f.invert,p=f.domain,h=l(".%L"),g=l(":%S"),m=l("%I:%M"),d=l("%I %p"),y=l("%a %d"),M=l("%b %d"),w=l("%B"),N=l("%Y");function x(n){return(c(n)<n?h:a(n)<n?g:o(n)<n?m:i(n)<n?d:e(n)<n?u(n)<n?y:M:r(n)<n?w:N)(n)}return f.invert=function(n){return new Date(s(n))},f.domain=function(n){return arguments.length?p(Array.from(n,C)):p().map(B)},f.ticks=function(t){var r=p();return n(r[0],r[r.length-1],null==t?10:t)},f.tickFormat=function(n,t){return null==t?x:l(t)},f.nice=function(n){var r=p();return n&&"function"==typeof n.range||(n=t(r[0],r[r.length-1],null==n?10:n)),n?p(b(r,n)):f},f.copy=function(){return v(f,H(n,t,r,e,u,i,o,a,c,l))},f}function W(){var n,t,e,u,i,o=0,a=1,c=g,l=!1;function f(t){return null==t||isNaN(t=+t)?i:c(0===e?.5:(t=(u(t)-n)*e,l?Math.max(0,Math.min(1,t)):t))}function s(n){return function(t){var r,e;return arguments.length?([r,e]=t,c=n(r,e),f):[c(0),c(1)]}}return f.domain=function(r){return arguments.length?([o,a]=r,n=u(o=+o),t=u(a=+a),e=n===t?0:1/(t-n),f):[o,a]},f.clamp=function(n){return arguments.length?(l=!!n,f):l},f.interpolator=function(n){return arguments.length?(c=n,f):c},f.range=s(r.interpolate),f.rangeRound=s(r.interpolateRound),f.unknown=function(n){return arguments.length?(i=n,f):i},function(r){return u=r,n=r(o),t=r(a),e=n===t?0:1/(t-n),f}}function _(n,t){return t.domain(n.domain()).interpolator(n.interpolator()).clamp(n.clamp()).unknown(n.unknown())}function z(){var n=Q(W());return n.copy=function(){return _(n,z()).exponent(n.exponent())},a.apply(n,arguments)}function G(){var n,t,e,u,i,o,a,c=0,l=.5,f=1,s=1,p=g,h=!1;function m(n){return isNaN(n=+n)?a:(n=.5+((n=+o(n))-t)*(s*n<s*t?u:i),p(h?Math.max(0,Math.min(1,n)):n))}function d(n){return function(t){var e,u,i;return arguments.length?([e,u,i]=t,p=r.piecewise(n,[e,u,i]),m):[p(0),p(.5),p(1)]}}return m.domain=function(r){return arguments.length?([c,l,f]=r,n=o(c=+c),t=o(l=+l),e=o(f=+f),u=n===t?0:.5/(t-n),i=t===e?0:.5/(e-t),s=t<n?-1:1,m):[c,l,f]},m.clamp=function(n){return arguments.length?(h=!!n,m):h},m.interpolator=function(n){return arguments.length?(p=n,m):p},m.range=d(r.interpolate),m.rangeRound=d(r.interpolateRound),m.unknown=function(n){return arguments.length?(a=n,m):a},function(r){return o=r,n=r(c),t=r(l),e=r(f),u=n===t?0:.5/(t-n),i=t===e?0:.5/(e-t),s=t<n?-1:1,m}}function J(){var n=Q(G());return n.copy=function(){return _(n,J()).exponent(n.exponent())},a.apply(n,arguments)}n.scaleBand=f,n.scaleDiverging=function n(){var t=N(G()(g));return t.copy=function(){return _(t,n())},a.apply(t,arguments)},n.scaleDivergingLog=function n(){var t=R(G()).domain([.1,1,10]);return t.copy=function(){return _(t,n()).base(t.base())},a.apply(t,arguments)},n.scaleDivergingPow=J,n.scaleDivergingSqrt=function(){return J.apply(null,arguments).exponent(.5)},n.scaleDivergingSymlog=function n(){var t=F(G());return t.copy=function(){return _(t,n()).constant(t.constant())},a.apply(t,arguments)},n.scaleIdentity=function n(t){var r;function e(n){return null==n||isNaN(n=+n)?r:n}return e.invert=e,e.domain=e.range=function(n){return arguments.length?(t=Array.from(n,p),e):t.slice()},e.unknown=function(n){return arguments.length?(r=n,e):r},e.copy=function(){return n(t).unknown(r)},t=arguments.length?Array.from(t,p):[0,1],N(e)},n.scaleImplicit=c,n.scaleLinear=function n(){var t=k();return t.copy=function(){return v(t,n())},o.apply(t,arguments),N(t)},n.scaleLog=function n(){const t=R(M()).domain([1,10]);return t.copy=()=>v(t,n()).base(t.base()),o.apply(t,arguments),t},n.scaleOrdinal=l,n.scalePoint=function(){return s(f.apply(null,arguments).paddingInner(1))},n.scalePow=U,n.scaleQuantile=function n(){var r,e=[],u=[],i=[];function a(){var n=0,r=Math.max(1,u.length);for(i=new Array(r-1);++n<r;)i[n-1]=t.quantileSorted(e,n/r);return c}function c(n){return null==n||isNaN(n=+n)?r:u[t.bisect(i,n)]}return c.invertExtent=function(n){var t=u.indexOf(n);return t<0?[NaN,NaN]:[t>0?i[t-1]:e[0],t<i.length?i[t]:e[e.length-1]]},c.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let t of n)null==t||isNaN(t=+t)||e.push(t);return e.sort(t.ascending),a()},c.range=function(n){return arguments.length?(u=Array.from(n),a()):u.slice()},c.unknown=function(n){return arguments.length?(r=n,c):r},c.quantiles=function(){return i.slice()},c.copy=function(){return n().domain(e).range(u).unknown(r)},o.apply(c,arguments)},n.scaleQuantize=function n(){var r,e=0,u=1,i=1,a=[.5],c=[0,1];function l(n){return null!=n&&n<=n?c[t.bisect(a,n,0,i)]:r}function f(){var n=-1;for(a=new Array(i);++n<i;)a[n]=((n+1)*u-(n-i)*e)/(i+1);return l}return l.domain=function(n){return arguments.length?([e,u]=n,e=+e,u=+u,f()):[e,u]},l.range=function(n){return arguments.length?(i=(c=Array.from(n)).length-1,f()):c.slice()},l.invertExtent=function(n){var t=c.indexOf(n);return t<0?[NaN,NaN]:t<1?[e,a[0]]:t>=i?[a[i-1],u]:[a[t-1],a[t]]},l.unknown=function(n){return arguments.length?(r=n,l):l},l.thresholds=function(){return a.slice()},l.copy=function(){return n().domain([e,u]).range(c).unknown(r)},o.apply(N(l),arguments)},n.scaleRadial=function n(){var t,r=k(),e=[0,1],u=!1;function i(n){var e=j(r(n));return isNaN(e)?t:u?Math.round(e):e}return i.invert=function(n){return r.invert(Y(n))},i.domain=function(n){return arguments.length?(r.domain(n),i):r.domain()},i.range=function(n){return arguments.length?(r.range((e=Array.from(n,p)).map(Y)),i):e.slice()},i.rangeRound=function(n){return i.range(n).round(!0)},i.round=function(n){return arguments.length?(u=!!n,i):u},i.clamp=function(n){return arguments.length?(r.clamp(n),i):r.clamp()},i.unknown=function(n){return arguments.length?(t=n,i):t},i.copy=function(){return n(r.domain(),e).round(u).clamp(r.clamp()).unknown(t)},o.apply(i,arguments),N(i)},n.scaleSequential=function n(){var t=N(W()(g));return t.copy=function(){return _(t,n())},a.apply(t,arguments)},n.scaleSequentialLog=function n(){var t=R(W()).domain([1,10]);return t.copy=function(){return _(t,n()).base(t.base())},a.apply(t,arguments)},n.scaleSequentialPow=z,n.scaleSequentialQuantile=function n(){var r=[],e=g;function u(n){if(null!=n&&!isNaN(n=+n))return e((t.bisect(r,n,1)-1)/(r.length-1))}return u.domain=function(n){if(!arguments.length)return r.slice();r=[];for(let t of n)null==t||isNaN(t=+t)||r.push(t);return r.sort(t.ascending),u},u.interpolator=function(n){return arguments.length?(e=n,u):e},u.range=function(){return r.map(((n,t)=>e(t/(r.length-1))))},u.quantiles=function(n){return Array.from({length:n+1},((e,u)=>t.quantile(r,u/n)))},u.copy=function(){return n(e).domain(r)},a.apply(u,arguments)},n.scaleSequentialSqrt=function(){return z.apply(null,arguments).exponent(.5)},n.scaleSequentialSymlog=function n(){var t=F(W());return t.copy=function(){return _(t,n()).constant(t.constant())},a.apply(t,arguments)},n.scaleSqrt=function(){return U.apply(null,arguments).exponent(.5)},n.scaleSymlog=function n(){var t=F(M());return t.copy=function(){return v(t,n()).constant(t.constant())},o.apply(t,arguments)},n.scaleThreshold=function n(){var r,e=[.5],u=[0,1],i=1;function a(n){return null!=n&&n<=n?u[t.bisect(e,n,0,i)]:r}return a.domain=function(n){return arguments.length?(e=Array.from(n),i=Math.min(e.length,u.length-1),a):e.slice()},a.range=function(n){return arguments.length?(u=Array.from(n),i=Math.min(e.length,u.length-1),a):u.slice()},a.invertExtent=function(n){var t=u.indexOf(n);return[e[t-1],e[t]]},a.unknown=function(n){return arguments.length?(r=n,a):r},a.copy=function(){return n().domain(e).range(u).unknown(r)},o.apply(a,arguments)},n.scaleTime=function(){return o.apply(H(u.timeTicks,u.timeTickInterval,u.timeYear,u.timeMonth,u.timeWeek,u.timeDay,u.timeHour,u.timeMinute,u.timeSecond,i.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},n.scaleUtc=function(){return o.apply(H(u.utcTicks,u.utcTickInterval,u.utcYear,u.utcMonth,u.utcWeek,u.utcDay,u.utcHour,u.utcMinute,u.utcSecond,i.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},n.tickFormat=w,Object.defineProperty(n,"__esModule",{value:!0})}));
Index: de_modules/d3-scale/package.json
===================================================================
--- node_modules/d3-scale/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-{
-  "name": "d3-scale",
-  "version": "4.0.2",
-  "description": "Encodings that map abstract data to visual representation.",
-  "homepage": "https://d3js.org/d3-scale/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-scale.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "scale",
-    "visualization"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-scale.min.js",
-  "unpkg": "dist/d3-scale.min.js",
-  "exports": {
-    "umd": "./dist/d3-scale.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-array": "2.10.0 - 3",
-    "d3-format": "1 - 3",
-    "d3-interpolate": "1.2.0 - 3",
-    "d3-time": "2.1.1 - 3",
-    "d3-time-format": "2 - 4"
-  },
-  "devDependencies": {
-    "d3-color": "1 - 3",
-    "eslint": "7",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "TZ=America/Los_Angeles mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-scale/src/band.js
===================================================================
--- node_modules/d3-scale/src/band.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import {range as sequence} from "d3-array";
-import {initRange} from "./init.js";
-import ordinal from "./ordinal.js";
-
-export default function band() {
-  var scale = ordinal().unknown(undefined),
-      domain = scale.domain,
-      ordinalRange = scale.range,
-      r0 = 0,
-      r1 = 1,
-      step,
-      bandwidth,
-      round = false,
-      paddingInner = 0,
-      paddingOuter = 0,
-      align = 0.5;
-
-  delete scale.unknown;
-
-  function rescale() {
-    var n = domain().length,
-        reverse = r1 < r0,
-        start = reverse ? r1 : r0,
-        stop = reverse ? r0 : r1;
-    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
-    if (round) step = Math.floor(step);
-    start += (stop - start - step * (n - paddingInner)) * align;
-    bandwidth = step * (1 - paddingInner);
-    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
-    var values = sequence(n).map(function(i) { return start + step * i; });
-    return ordinalRange(reverse ? values.reverse() : values);
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
-  };
-
-  scale.rangeRound = function(_) {
-    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
-  };
-
-  scale.bandwidth = function() {
-    return bandwidth;
-  };
-
-  scale.step = function() {
-    return step;
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, rescale()) : round;
-  };
-
-  scale.padding = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
-  };
-
-  scale.paddingInner = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
-  };
-
-  scale.paddingOuter = function(_) {
-    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
-  };
-
-  scale.align = function(_) {
-    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
-  };
-
-  scale.copy = function() {
-    return band(domain(), [r0, r1])
-        .round(round)
-        .paddingInner(paddingInner)
-        .paddingOuter(paddingOuter)
-        .align(align);
-  };
-
-  return initRange.apply(rescale(), arguments);
-}
-
-function pointish(scale) {
-  var copy = scale.copy;
-
-  scale.padding = scale.paddingOuter;
-  delete scale.paddingInner;
-  delete scale.paddingOuter;
-
-  scale.copy = function() {
-    return pointish(copy());
-  };
-
-  return scale;
-}
-
-export function point() {
-  return pointish(band.apply(null, arguments).paddingInner(1));
-}
Index: de_modules/d3-scale/src/colors.js
===================================================================
--- node_modules/d3-scale/src/colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function colors(s) {
-  return s.match(/.{6}/g).map(function(x) {
-    return "#" + x;
-  });
-}
Index: de_modules/d3-scale/src/constant.js
===================================================================
--- node_modules/d3-scale/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function constants(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-scale/src/continuous.js
===================================================================
--- node_modules/d3-scale/src/continuous.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-import {bisect} from "d3-array";
-import {interpolate as interpolateValue, interpolateNumber, interpolateRound} from "d3-interpolate";
-import constant from "./constant.js";
-import number from "./number.js";
-
-var unit = [0, 1];
-
-export function identity(x) {
-  return x;
-}
-
-function normalize(a, b) {
-  return (b -= (a = +a))
-      ? function(x) { return (x - a) / b; }
-      : constant(isNaN(b) ? NaN : 0.5);
-}
-
-function clamper(a, b) {
-  var t;
-  if (a > b) t = a, a = b, b = t;
-  return function(x) { return Math.max(a, Math.min(b, x)); };
-}
-
-// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
-// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
-function bimap(domain, range, interpolate) {
-  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
-  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
-  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
-  return function(x) { return r0(d0(x)); };
-}
-
-function polymap(domain, range, interpolate) {
-  var j = Math.min(domain.length, range.length) - 1,
-      d = new Array(j),
-      r = new Array(j),
-      i = -1;
-
-  // Reverse descending domains.
-  if (domain[j] < domain[0]) {
-    domain = domain.slice().reverse();
-    range = range.slice().reverse();
-  }
-
-  while (++i < j) {
-    d[i] = normalize(domain[i], domain[i + 1]);
-    r[i] = interpolate(range[i], range[i + 1]);
-  }
-
-  return function(x) {
-    var i = bisect(domain, x, 1, j) - 1;
-    return r[i](d[i](x));
-  };
-}
-
-export function copy(source, target) {
-  return target
-      .domain(source.domain())
-      .range(source.range())
-      .interpolate(source.interpolate())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-export function transformer() {
-  var domain = unit,
-      range = unit,
-      interpolate = interpolateValue,
-      transform,
-      untransform,
-      unknown,
-      clamp = identity,
-      piecewise,
-      output,
-      input;
-
-  function rescale() {
-    var n = Math.min(domain.length, range.length);
-    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
-    piecewise = n > 2 ? polymap : bimap;
-    output = input = null;
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
-  }
-
-  scale.invert = function(y) {
-    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return range = Array.from(_), interpolate = interpolateRound, rescale();
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
-  };
-
-  scale.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, rescale()) : interpolate;
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t, u) {
-    transform = t, untransform = u;
-    return rescale();
-  };
-}
-
-export default function continuous() {
-  return transformer()(identity, identity);
-}
Index: de_modules/d3-scale/src/diverging.js
===================================================================
--- node_modules/d3-scale/src/diverging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-import {interpolate, interpolateRound, piecewise} from "d3-interpolate";
-import {identity} from "./continuous.js";
-import {initInterpolator} from "./init.js";
-import {linearish} from "./linear.js";
-import {loggish} from "./log.js";
-import {copy} from "./sequential.js";
-import {symlogish} from "./symlog.js";
-import {powish} from "./pow.js";
-
-function transformer() {
-  var x0 = 0,
-      x1 = 0.5,
-      x2 = 1,
-      s = 1,
-      t0,
-      t1,
-      t2,
-      k10,
-      k21,
-      interpolator = identity,
-      transform,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1, r2;
-      return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
-    };
-  }
-
-  scale.range = range(interpolate);
-
-  scale.rangeRound = range(interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
-    return scale;
-  };
-}
-
-export default function diverging() {
-  var scale = linearish(transformer()(identity));
-
-  scale.copy = function() {
-    return copy(scale, diverging());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function divergingLog() {
-  var scale = loggish(transformer()).domain([0.1, 1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, divergingLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function divergingSymlog() {
-  var scale = symlogish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function divergingPow() {
-  var scale = powish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function divergingSqrt() {
-  return divergingPow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/d3-scale/src/identity.js
===================================================================
--- node_modules/d3-scale/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import {linearish} from "./linear.js";
-import number from "./number.js";
-
-export default function identity(domain) {
-  var unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : x;
-  }
-
-  scale.invert = scale;
-
-  scale.domain = scale.range = function(_) {
-    return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return identity(domain).unknown(unknown);
-  };
-
-  domain = arguments.length ? Array.from(domain, number) : [0, 1];
-
-  return linearish(scale);
-}
Index: de_modules/d3-scale/src/index.js
===================================================================
--- node_modules/d3-scale/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-export {
-  default as scaleBand,
-  point as scalePoint
-} from "./band.js";
-
-export {
-  default as scaleIdentity
-} from "./identity.js";
-
-export {
-  default as scaleLinear
-} from "./linear.js";
-
-export {
-  default as scaleLog
-} from "./log.js";
-
-export {
-  default as scaleSymlog
-} from "./symlog.js";
-
-export {
-  default as scaleOrdinal,
-  implicit as scaleImplicit
-} from "./ordinal.js";
-
-export {
-  default as scalePow,
-  sqrt as scaleSqrt
-} from "./pow.js";
-
-export {
-  default as scaleRadial
-} from "./radial.js";
-
-export {
-  default as scaleQuantile
-} from "./quantile.js";
-
-export {
-  default as scaleQuantize
-} from "./quantize.js";
-
-export {
-  default as scaleThreshold
-} from "./threshold.js";
-
-export {
-  default as scaleTime
-} from "./time.js";
-
-export {
-  default as scaleUtc
-} from "./utcTime.js";
-
-export {
-  default as scaleSequential,
-  sequentialLog as scaleSequentialLog,
-  sequentialPow as scaleSequentialPow,
-  sequentialSqrt as scaleSequentialSqrt,
-  sequentialSymlog as scaleSequentialSymlog
-} from "./sequential.js";
-
-export {
-  default as scaleSequentialQuantile
-} from "./sequentialQuantile.js";
-
-export {
-  default as scaleDiverging,
-  divergingLog as scaleDivergingLog,
-  divergingPow as scaleDivergingPow,
-  divergingSqrt as scaleDivergingSqrt,
-  divergingSymlog as scaleDivergingSymlog
-} from "./diverging.js";
-
-export {
-  default as tickFormat
-} from "./tickFormat.js";
Index: de_modules/d3-scale/src/init.js
===================================================================
--- node_modules/d3-scale/src/init.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-export function initRange(domain, range) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: this.range(domain); break;
-    default: this.range(range).domain(domain); break;
-  }
-  return this;
-}
-
-export function initInterpolator(domain, interpolator) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: {
-      if (typeof domain === "function") this.interpolator(domain);
-      else this.range(domain);
-      break;
-    }
-    default: {
-      this.domain(domain);
-      if (typeof interpolator === "function") this.interpolator(interpolator);
-      else this.range(interpolator);
-      break;
-    }
-  }
-  return this;
-}
Index: de_modules/d3-scale/src/linear.js
===================================================================
--- node_modules/d3-scale/src/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-import {ticks, tickIncrement} from "d3-array";
-import continuous, {copy} from "./continuous.js";
-import {initRange} from "./init.js";
-import tickFormat from "./tickFormat.js";
-
-export function linearish(scale) {
-  var domain = scale.domain;
-
-  scale.ticks = function(count) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    var d = domain();
-    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
-  };
-
-  scale.nice = function(count) {
-    if (count == null) count = 10;
-
-    var d = domain();
-    var i0 = 0;
-    var i1 = d.length - 1;
-    var start = d[i0];
-    var stop = d[i1];
-    var prestep;
-    var step;
-    var maxIter = 10;
-
-    if (stop < start) {
-      step = start, start = stop, stop = step;
-      step = i0, i0 = i1, i1 = step;
-    }
-    
-    while (maxIter-- > 0) {
-      step = tickIncrement(start, stop, count);
-      if (step === prestep) {
-        d[i0] = start
-        d[i1] = stop
-        return domain(d);
-      } else if (step > 0) {
-        start = Math.floor(start / step) * step;
-        stop = Math.ceil(stop / step) * step;
-      } else if (step < 0) {
-        start = Math.ceil(start * step) / step;
-        stop = Math.floor(stop * step) / step;
-      } else {
-        break;
-      }
-      prestep = step;
-    }
-
-    return scale;
-  };
-
-  return scale;
-}
-
-export default function linear() {
-  var scale = continuous();
-
-  scale.copy = function() {
-    return copy(scale, linear());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
Index: de_modules/d3-scale/src/log.js
===================================================================
--- node_modules/d3-scale/src/log.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-import {ticks} from "d3-array";
-import {format, formatSpecifier} from "d3-format";
-import nice from "./nice.js";
-import {copy, transformer} from "./continuous.js";
-import {initRange} from "./init.js";
-
-function transformLog(x) {
-  return Math.log(x);
-}
-
-function transformExp(x) {
-  return Math.exp(x);
-}
-
-function transformLogn(x) {
-  return -Math.log(-x);
-}
-
-function transformExpn(x) {
-  return -Math.exp(-x);
-}
-
-function pow10(x) {
-  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
-}
-
-function powp(base) {
-  return base === 10 ? pow10
-      : base === Math.E ? Math.exp
-      : x => Math.pow(base, x);
-}
-
-function logp(base) {
-  return base === Math.E ? Math.log
-      : base === 10 && Math.log10
-      || base === 2 && Math.log2
-      || (base = Math.log(base), x => Math.log(x) / base);
-}
-
-function reflect(f) {
-  return (x, k) => -f(-x, k);
-}
-
-export function loggish(transform) {
-  const scale = transform(transformLog, transformExp);
-  const domain = scale.domain;
-  let base = 10;
-  let logs;
-  let pows;
-
-  function rescale() {
-    logs = logp(base), pows = powp(base);
-    if (domain()[0] < 0) {
-      logs = reflect(logs), pows = reflect(pows);
-      transform(transformLogn, transformExpn);
-    } else {
-      transform(transformLog, transformExp);
-    }
-    return scale;
-  }
-
-  scale.base = function(_) {
-    return arguments.length ? (base = +_, rescale()) : base;
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.ticks = count => {
-    const d = domain();
-    let u = d[0];
-    let v = d[d.length - 1];
-    const r = v < u;
-
-    if (r) ([u, v] = [v, u]);
-
-    let i = logs(u);
-    let j = logs(v);
-    let k;
-    let t;
-    const n = count == null ? 10 : +count;
-    let z = [];
-
-    if (!(base % 1) && j - i < n) {
-      i = Math.floor(i), j = Math.ceil(j);
-      if (u > 0) for (; i <= j; ++i) {
-        for (k = 1; k < base; ++k) {
-          t = i < 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      } else for (; i <= j; ++i) {
-        for (k = base - 1; k >= 1; --k) {
-          t = i > 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      }
-      if (z.length * 2 < n) z = ticks(u, v, n);
-    } else {
-      z = ticks(i, j, Math.min(j - i, n)).map(pows);
-    }
-    return r ? z.reverse() : z;
-  };
-
-  scale.tickFormat = (count, specifier) => {
-    if (count == null) count = 10;
-    if (specifier == null) specifier = base === 10 ? "s" : ",";
-    if (typeof specifier !== "function") {
-      if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;
-      specifier = format(specifier);
-    }
-    if (count === Infinity) return specifier;
-    const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
-    return d => {
-      let i = d / pows(Math.round(logs(d)));
-      if (i * base < base - 0.5) i *= base;
-      return i <= k ? specifier(d) : "";
-    };
-  };
-
-  scale.nice = () => {
-    return domain(nice(domain(), {
-      floor: x => pows(Math.floor(logs(x))),
-      ceil: x => pows(Math.ceil(logs(x)))
-    }));
-  };
-
-  return scale;
-}
-
-export default function log() {
-  const scale = loggish(transformer()).domain([1, 10]);
-  scale.copy = () => copy(scale, log()).base(scale.base());
-  initRange.apply(scale, arguments);
-  return scale;
-}
Index: de_modules/d3-scale/src/nice.js
===================================================================
--- node_modules/d3-scale/src/nice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-export default function nice(domain, interval) {
-  domain = domain.slice();
-
-  var i0 = 0,
-      i1 = domain.length - 1,
-      x0 = domain[i0],
-      x1 = domain[i1],
-      t;
-
-  if (x1 < x0) {
-    t = i0, i0 = i1, i1 = t;
-    t = x0, x0 = x1, x1 = t;
-  }
-
-  domain[i0] = interval.floor(x0);
-  domain[i1] = interval.ceil(x1);
-  return domain;
-}
Index: de_modules/d3-scale/src/number.js
===================================================================
--- node_modules/d3-scale/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function number(x) {
-  return +x;
-}
Index: de_modules/d3-scale/src/ordinal.js
===================================================================
--- node_modules/d3-scale/src/ordinal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {InternMap} from "d3-array";
-import {initRange} from "./init.js";
-
-export const implicit = Symbol("implicit");
-
-export default function ordinal() {
-  var index = new InternMap(),
-      domain = [],
-      range = [],
-      unknown = implicit;
-
-  function scale(d) {
-    let i = index.get(d);
-    if (i === undefined) {
-      if (unknown !== implicit) return unknown;
-      index.set(d, i = domain.push(d) - 1);
-    }
-    return range[i % range.length];
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [], index = new InternMap();
-    for (const value of _) {
-      if (index.has(value)) continue;
-      index.set(value, domain.push(value) - 1);
-    }
-    return scale;
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), scale) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return ordinal(domain, range).unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
Index: de_modules/d3-scale/src/pow.js
===================================================================
--- node_modules/d3-scale/src/pow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import {linearish} from "./linear.js";
-import {copy, identity, transformer} from "./continuous.js";
-import {initRange} from "./init.js";
-
-function transformPow(exponent) {
-  return function(x) {
-    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
-  };
-}
-
-function transformSqrt(x) {
-  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
-}
-
-function transformSquare(x) {
-  return x < 0 ? -x * x : x * x;
-}
-
-export function powish(transform) {
-  var scale = transform(identity, identity),
-      exponent = 1;
-
-  function rescale() {
-    return exponent === 1 ? transform(identity, identity)
-        : exponent === 0.5 ? transform(transformSqrt, transformSquare)
-        : transform(transformPow(exponent), transformPow(1 / exponent));
-  }
-
-  scale.exponent = function(_) {
-    return arguments.length ? (exponent = +_, rescale()) : exponent;
-  };
-
-  return linearish(scale);
-}
-
-export default function pow() {
-  var scale = powish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, pow()).exponent(scale.exponent());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
-
-export function sqrt() {
-  return pow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/d3-scale/src/quantile.js
===================================================================
--- node_modules/d3-scale/src/quantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-import {ascending, bisect, quantileSorted as threshold} from "d3-array";
-import {initRange} from "./init.js";
-
-export default function quantile() {
-  var domain = [],
-      range = [],
-      thresholds = [],
-      unknown;
-
-  function rescale() {
-    var i = 0, n = Math.max(1, range.length);
-    thresholds = new Array(n - 1);
-    while (++i < n) thresholds[i - 1] = threshold(domain, i / n);
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];
-  }
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN] : [
-      i > 0 ? thresholds[i - 1] : domain[0],
-      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
-    ];
-  };
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(ascending);
-    return rescale();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.quantiles = function() {
-    return thresholds.slice();
-  };
-
-  scale.copy = function() {
-    return quantile()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
Index: de_modules/d3-scale/src/quantize.js
===================================================================
--- node_modules/d3-scale/src/quantize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import {bisect} from "d3-array";
-import {linearish} from "./linear.js";
-import {initRange} from "./init.js";
-
-export default function quantize() {
-  var x0 = 0,
-      x1 = 1,
-      n = 1,
-      domain = [0.5],
-      range = [0, 1],
-      unknown;
-
-  function scale(x) {
-    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;
-  }
-
-  function rescale() {
-    var i = -1;
-    domain = new Array(n);
-    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
-    return scale;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN]
-        : i < 1 ? [x0, domain[0]]
-        : i >= n ? [domain[n - 1], x1]
-        : [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : scale;
-  };
-
-  scale.thresholds = function() {
-    return domain.slice();
-  };
-
-  scale.copy = function() {
-    return quantize()
-        .domain([x0, x1])
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(linearish(scale), arguments);
-}
Index: de_modules/d3-scale/src/radial.js
===================================================================
--- node_modules/d3-scale/src/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-import continuous from "./continuous.js";
-import {initRange} from "./init.js";
-import {linearish} from "./linear.js";
-import number from "./number.js";
-
-function square(x) {
-  return Math.sign(x) * x * x;
-}
-
-function unsquare(x) {
-  return Math.sign(x) * Math.sqrt(Math.abs(x));
-}
-
-export default function radial() {
-  var squared = continuous(),
-      range = [0, 1],
-      round = false,
-      unknown;
-
-  function scale(x) {
-    var y = unsquare(squared(x));
-    return isNaN(y) ? unknown : round ? Math.round(y) : y;
-  }
-
-  scale.invert = function(y) {
-    return squared.invert(square(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (squared.domain(_), scale) : squared.domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return scale.range(_).round(true);
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, scale) : round;
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return radial(squared.domain(), range)
-        .round(round)
-        .clamp(squared.clamp())
-        .unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
Index: de_modules/d3-scale/src/sequential.js
===================================================================
--- node_modules/d3-scale/src/sequential.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,107 +1,0 @@
-import {interpolate, interpolateRound} from "d3-interpolate";
-import {identity} from "./continuous.js";
-import {initInterpolator} from "./init.js";
-import {linearish} from "./linear.js";
-import {loggish} from "./log.js";
-import {symlogish} from "./symlog.js";
-import {powish} from "./pow.js";
-
-function transformer() {
-  var x0 = 0,
-      x1 = 1,
-      t0,
-      t1,
-      k10,
-      transform,
-      interpolator = identity,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1;
-      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
-    };
-  }
-
-  scale.range = range(interpolate);
-
-  scale.rangeRound = range(interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
-    return scale;
-  };
-}
-
-export function copy(source, target) {
-  return target
-      .domain(source.domain())
-      .interpolator(source.interpolator())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-export default function sequential() {
-  var scale = linearish(transformer()(identity));
-
-  scale.copy = function() {
-    return copy(scale, sequential());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function sequentialLog() {
-  var scale = loggish(transformer()).domain([1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, sequentialLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function sequentialSymlog() {
-  var scale = symlogish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, sequentialSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function sequentialPow() {
-  var scale = powish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, sequentialPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-export function sequentialSqrt() {
-  return sequentialPow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/d3-scale/src/sequentialQuantile.js
===================================================================
--- node_modules/d3-scale/src/sequentialQuantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import {ascending, bisect, quantile} from "d3-array";
-import {identity} from "./continuous.js";
-import {initInterpolator} from "./init.js";
-
-export default function sequentialQuantile() {
-  var domain = [],
-      interpolator = identity;
-
-  function scale(x) {
-    if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(ascending);
-    return scale;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  scale.range = function() {
-    return domain.map((d, i) => interpolator(i / (domain.length - 1)));
-  };
-
-  scale.quantiles = function(n) {
-    return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));
-  };
-
-  scale.copy = function() {
-    return sequentialQuantile(interpolator).domain(domain);
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
Index: de_modules/d3-scale/src/symlog.js
===================================================================
--- node_modules/d3-scale/src/symlog.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import {linearish} from "./linear.js";
-import {copy, transformer} from "./continuous.js";
-import {initRange} from "./init.js";
-
-function transformSymlog(c) {
-  return function(x) {
-    return Math.sign(x) * Math.log1p(Math.abs(x / c));
-  };
-}
-
-function transformSymexp(c) {
-  return function(x) {
-    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
-  };
-}
-
-export function symlogish(transform) {
-  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));
-
-  scale.constant = function(_) {
-    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
-  };
-
-  return linearish(scale);
-}
-
-export default function symlog() {
-  var scale = symlogish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, symlog()).constant(scale.constant());
-  };
-
-  return initRange.apply(scale, arguments);
-}
Index: de_modules/d3-scale/src/threshold.js
===================================================================
--- node_modules/d3-scale/src/threshold.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import {bisect} from "d3-array";
-import {initRange} from "./init.js";
-
-export default function threshold() {
-  var domain = [0.5],
-      range = [0, 1],
-      unknown,
-      n = 1;
-
-  function scale(x) {
-    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return threshold()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
Index: de_modules/d3-scale/src/tickFormat.js
===================================================================
--- node_modules/d3-scale/src/tickFormat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import {tickStep} from "d3-array";
-import {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from "d3-format";
-
-export default function tickFormat(start, stop, count, specifier) {
-  var step = tickStep(start, stop, count),
-      precision;
-  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
-  switch (specifier.type) {
-    case "s": {
-      var value = Math.max(Math.abs(start), Math.abs(stop));
-      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;
-      return formatPrefix(specifier, value);
-    }
-    case "":
-    case "e":
-    case "g":
-    case "p":
-    case "r": {
-      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
-      break;
-    }
-    case "f":
-    case "%": {
-      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2;
-      break;
-    }
-  }
-  return format(specifier);
-}
Index: de_modules/d3-scale/src/time.js
===================================================================
--- node_modules/d3-scale/src/time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from "d3-time";
-import {timeFormat} from "d3-time-format";
-import continuous, {copy} from "./continuous.js";
-import {initRange} from "./init.js";
-import nice from "./nice.js";
-
-function date(t) {
-  return new Date(t);
-}
-
-function number(t) {
-  return t instanceof Date ? +t : +new Date(+t);
-}
-
-export function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
-  var scale = continuous(),
-      invert = scale.invert,
-      domain = scale.domain;
-
-  var formatMillisecond = format(".%L"),
-      formatSecond = format(":%S"),
-      formatMinute = format("%I:%M"),
-      formatHour = format("%I %p"),
-      formatDay = format("%a %d"),
-      formatWeek = format("%b %d"),
-      formatMonth = format("%B"),
-      formatYear = format("%Y");
-
-  function tickFormat(date) {
-    return (second(date) < date ? formatMillisecond
-        : minute(date) < date ? formatSecond
-        : hour(date) < date ? formatMinute
-        : day(date) < date ? formatHour
-        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
-        : year(date) < date ? formatMonth
-        : formatYear)(date);
-  }
-
-  scale.invert = function(y) {
-    return new Date(invert(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
-  };
-
-  scale.ticks = function(interval) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    return specifier == null ? tickFormat : format(specifier);
-  };
-
-  scale.nice = function(interval) {
-    var d = domain();
-    if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
-    return interval ? domain(nice(d, interval)) : scale;
-  };
-
-  scale.copy = function() {
-    return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
-  };
-
-  return scale;
-}
-
-export default function time() {
-  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
-}
Index: de_modules/d3-scale/src/utcTime.js
===================================================================
--- node_modules/d3-scale/src/utcTime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from "d3-time";
-import {utcFormat} from "d3-time-format";
-import {calendar} from "./time.js";
-import {initRange} from "./init.js";
-
-export default function utcTime() {
-  return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
-}
Index: de_modules/d3-selection/LICENSE
===================================================================
--- node_modules/d3-selection/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-selection/README.md
===================================================================
--- node_modules/d3-selection/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,863 +1,0 @@
-# d3-selection
-
-Selections allow powerful data-driven transformation of the document object model (DOM): set [attributes](#selection_attr), [styles](#selection_style), [properties](#selection_property), [HTML](#selection_html) or [text](#selection_text) content, and more. Using the [data join](#joining-data)’s [enter](#selection_enter) and [exit](#selection_enter) selections, you can also [add](#selection_append) or [remove](#selection_remove) elements to correspond to data.
-
-Selection methods typically return the current selection, or a new selection, allowing the concise application of multiple operations on a given selection via method chaining. For example, to set the class and color style of all paragraph elements in the current document:
-
-```js
-d3.selectAll("p")
-    .attr("class", "graf")
-    .style("color", "red");
-```
-
-This is equivalent to:
-
-```js
-const p = d3.selectAll("p");
-p.attr("class", "graf");
-p.style("color", "red");
-```
-
-By convention, selection methods that return the current selection use *four* spaces of indent, while methods that return a new selection use only *two*. This helps reveal changes of context by making them stick out of the chain:
-
-```js
-d3.select("body")
-  .append("svg")
-    .attr("width", 960)
-    .attr("height", 500)
-  .append("g")
-    .attr("transform", "translate(20,20)")
-  .append("rect")
-    .attr("width", 920)
-    .attr("height", 460);
-```
-
-Selections are immutable. All selection methods that affect which elements are selected (or their order) return a new selection rather than modifying the current selection. However, note that elements are necessarily mutable, as selections drive transformations of the document!
-
-For more, see [the d3-selection collection on Observable](https://observablehq.com/collection/@d3/d3-selection).
-
-## Installing
-
-If you use npm, `npm install d3-selection`. You can also download the [latest release on GitHub](https://github.com/d3/d3-selection/releases/latest). For vanilla HTML in modern browsers, import d3-selection from Skypack:
-
-```html
-<script type="module">
-
-import {selectAll} from "https://cdn.skypack.dev/d3-selection@3";
-
-const div = selectAll("div");
-
-</script>
-```
-
-For legacy environments, you can load d3-selection’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-selection@3"></script>
-<script>
-
-const div = d3.selectAll("div");
-
-</script>
-```
-
-[Try d3-selection in your browser.](https://observablehq.com/collection/@d3/d3-selection)
-
-## API Reference
-
-* [Selecting Elements](#selecting-elements)
-* [Modifying Elements](#modifying-elements)
-* [Joining Data](#joining-data)
-* [Handling Events](#handling-events)
-* [Control Flow](#control-flow)
-* [Local Variables](#local-variables)
-* [Namespaces](#namespaces)
-
-### Selecting Elements
-
-Selection methods accept [W3C selector strings](http://www.w3.org/TR/selectors-api/) such as `.fancy` to select elements with the class *fancy*, or `div` to select DIV elements. Selection methods come in two forms: select and selectAll: the former selects only the first matching element, while the latter selects all matching elements in document order. The top-level selection methods, [d3.select](#select) and [d3.selectAll](#selectAll), query the entire document; the subselection methods, [*selection*.select](#selection_select) and [*selection*.selectAll](#selection_selectAll), restrict selection to descendants of the selected elements.
-
-<a name="selection" href="#selection">#</a> d3.<b>selection</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/index.js)
-
-[Selects](#select) the root element, `document.documentElement`. This function can also be used to test for selections (`instanceof d3.selection`) or to extend the selection prototype. For example, to add a method to check checkboxes:
-
-```js
-d3.selection.prototype.checked = function(value) {
-  return arguments.length < 1
-      ? this.property("checked")
-      : this.property("checked", !!value);
-};
-```
-
-And then to use:
-
-```js
-d3.selectAll("input[type=checkbox]").checked(true);
-```
-
-<a name="select" href="#select">#</a> d3.<b>select</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/select.js)
-
-Selects the first element that matches the specified *selector* string. If no elements match the *selector*, returns an empty selection. If multiple elements match the *selector*, only the first matching element (in document order) will be selected. For example, to select the first anchor element:
-
-```js
-const anchor = d3.select("a");
-```
-
-If the *selector* is not a string, instead selects the specified node; this is useful if you already have a reference to a node, such as `this` within an event listener or a global such as `document.body`. For example, to make a clicked paragraph red:
-
-```js
-d3.selectAll("p").on("click", function(event) {
-  d3.select(this).style("color", "red");
-});
-```
-
-<a name="selectAll" href="#selectAll">#</a> d3.<b>selectAll</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selectAll.js)
-
-Selects all elements that match the specified *selector* string. The elements will be selected in document order (top-to-bottom). If no elements in the document match the *selector*, or if the *selector* is null or undefined, returns an empty selection. For example, to select all paragraphs:
-
-```js
-const paragraph = d3.selectAll("p");
-```
-
-If the *selector* is not a string, instead selects the specified array of nodes; this is useful if you already have a reference to nodes, such as `this.childNodes` within an event listener or a global such as `document.links`. The nodes may instead be an iterable, or a pseudo-array such as a NodeList. For example, to color all links red:
-
-```js
-d3.selectAll(document.links).style("color", "red");
-```
-
-<a name="selection_select" href="#selection_select">#</a> <i>selection</i>.<b>select</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/select.js)
-
-For each selected element, selects the first descendant element that matches the specified *selector* string. If no element matches the specified selector for the current element, the element at the current index will be null in the returned selection. (If the *selector* is null, every element in the returned selection will be null, resulting in an empty selection.) If the current element has associated data, this data is propagated to the corresponding selected element. If multiple elements match the selector, only the first matching element in document order is selected. For example, to select the first bold element in every paragraph:
-
-```js
-const b = d3.selectAll("p").select("b");
-```
-
-If the *selector* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). It must return an element, or null if there is no matching element. For example, to select the previous sibling of each paragraph:
-
-```js
-const previous = d3.selectAll("p").select(function() {
-  return this.previousElementSibling;
-});
-```
-
-Unlike [*selection*.selectAll](#selection_selectAll), *selection*.select does not affect grouping: it preserves the existing group structure and indexes, and propagates data (if any) to selected children. Grouping plays an important role in the [data join](#joining-data). See [Nested Selections](http://bost.ocks.org/mike/nest/) and [How Selections Work](http://bost.ocks.org/mike/selection/) for more on this topic.
-
-<a name="selection_selectAll" href="#selection_selectAll">#</a> <i>selection</i>.<b>selectAll</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/selectAll.js)
-
-For each selected element, selects the descendant elements that match the specified *selector* string. The elements in the returned selection are grouped by their corresponding parent node in this selection. If no element matches the specified selector for the current element, or if the *selector* is null, the group at the current index will be empty. The selected elements do not inherit data from this selection; use [*selection*.data](#selection_data) to propagate data to children. For example, to select the bold elements in every paragraph:
-
-```js
-const b = d3.selectAll("p").selectAll("b");
-```
-
-If the *selector* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). It must return an array of elements (or an iterable, or a pseudo-array such as a NodeList), or the empty array if there are no matching elements. For example, to select the previous and next siblings of each paragraph:
-
-```js
-const sibling = d3.selectAll("p").selectAll(function() {
-  return [
-    this.previousElementSibling,
-    this.nextElementSibling
-  ];
-});
-```
-
-Unlike [*selection*.select](#selection_select), *selection*.selectAll does affect grouping: each selected descendant is grouped by the parent element in the originating selection. Grouping plays an important role in the [data join](#joining-data). See [Nested Selections](http://bost.ocks.org/mike/nest/) and [How Selections Work](http://bost.ocks.org/mike/selection/) for more on this topic.
-
-<a name="selection_filter" href="#selection_filter">#</a> <i>selection</i>.<b>filter</b>(<i>filter</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/filter.js)
-
-Filters the selection, returning a new selection that contains only the elements for which the specified *filter* is true. The *filter* may be specified either as a selector string or a function. If the *filter* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]).
-
-For example, to filter a selection of table rows to contain only even rows:
-
-```js
-const even = d3.selectAll("tr").filter(":nth-child(even)");
-```
-
-This is approximately equivalent to using [d3.selectAll](#selectAll) directly, although the indexes may be different:
-
-```js
-const even = d3.selectAll("tr:nth-child(even)");
-```
-
-Similarly, using a function:
-
-```js
-const even = d3.selectAll("tr").filter((d, i) => i & 1);
-```
-
-Or using [*selection*.select](#selection_select) (and avoiding an arrow function, since *this* is needed to refer to the current element):
-
-```js
-const even = d3.selectAll("tr").select(function(d, i) { return i & 1 ? this : null; });
-```
-
-Note that the `:nth-child` pseudo-class is a one-based index rather than a zero-based index. Also, the above filter functions do not have precisely the same meaning as `:nth-child`; they rely on the selection index rather than the number of preceding sibling elements in the DOM.
-
-The returned filtered selection preserves the parents of this selection, but like [*array*.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), it does not preserve indexes as some elements may be removed; use [*selection*.select](#selection_select) to preserve the index, if needed.
-
-<a name="selection_merge" href="#selection_merge">#</a> <i>selection</i>.<b>merge</b>(<i>other</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/merge.js)
-
-Returns a new selection merging this selection with the specified *other* selection or transition. The returned selection has the same number of groups and the same parents as this selection. Any missing (null) elements in this selection are filled with the corresponding element, if present (not null), from the specified *selection*. (If the *other* selection has additional groups or parents, they are ignored.)
-
-This method is used internally by [*selection*.join](#selection_join) to merge the [enter](#selection_enter) and [update](#selection_data) selections after [binding data](#joining-data). You can also merge explicitly, although note that since merging is based on element index, you should use operations that preserve index, such as [*selection*.select](#selection_select) instead of [*selection*.filter](#selection_filter). For example:
-
-```js
-const odd = selection.select(function(d, i) { return i & 1 ? this : null; ));
-const even = selection.select(function(d, i) { return i & 1 ? null : this; ));
-const merged = odd.merge(even);
-```
-
-See [*selection*.data](#selection_data) for more.
-
-This method is not intended for concatenating arbitrary selections, however: if both this selection and the specified *other* selection have (non-null) elements at the same index, this selection’s element is returned in the merge and the *other* selection’s element is ignored.
-
-<a name="selection_selectChild" href="#selection_selectChild">#</a> <i>selection</i>.<b>selectChild</b>([<i>selector</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/selectChild.js)
-
-Returns a new selection with the (first) child of each element of the current selection matching the *selector*. If no *selector* is specified, selects the first child (if any). If the *selector* is specified as a string, selects the first child that matches (if any). If the *selector* is a function, it is evaluated for each of the children nodes, in order, being passed the child (*child*), the child’s index (*i*), and the list of children (*children*); the method selects the first child for which the selector return truthy, if any.
-
-<a name="selection_selectChildren" href="#selection_selectChildren">#</a> <i>selection</i>.<b>selectChildren</b>([<i>selector</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/selectChildren.js)
-
-Returns a new selection with the children of each element of the current selection matching the *selector*. If no *selector* is specified, selects all the children. If the *selector* is specified as a string, selects the children that match (if any). If the *selector* is a function, it is evaluated for each of the children nodes, in order, being passed the child (*child*), the child’s index (*i*), and the list of children (*children*); the method selects all children for which the selector return truthy.
-
-<a name="selection_selection" href="#selection_selection">#</a> <i>selection</i>.<b>selection</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/index.js)
-
-Returns the selection (for symmetry with [<i>transition</i>.selection](https://github.com/d3/d3-transition/blob/master/README.md#transition_selection)).
-
-<a name="matcher" href="#matcher">#</a> d3.<b>matcher</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/matcher.js)
-
-Given the specified *selector*, returns a function which returns true if `this` element [matches](https://developer.mozilla.org/en-US/docs/Web/API/Element/matches) the specified selector. This method is used internally by [*selection*.filter](#selection_filter). For example, this:
-
-```js
-const div = selection.filter("div");
-```
-
-Is equivalent to:
-
-```js
-const div = selection.filter(d3.matcher("div"));
-```
-
-(Although D3 is not a compatibility layer, this implementation does support vendor-prefixed implementations due to the recent standardization of *element*.matches.)
-
-<a name="selector" href="#selector">#</a> d3.<b>selector</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selector.js)
-
-Given the specified *selector*, returns a function which returns the first descendant of `this` element that matches the specified selector. This method is used internally by [*selection*.select](#selection_select). For example, this:
-
-```js
-const div = selection.select("div");
-```
-
-Is equivalent to:
-
-```js
-const div = selection.select(d3.selector("div"));
-```
-
-<a name="selectorAll" href="#selectorAll">#</a> d3.<b>selectorAll</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selectAll.js)
-
-Given the specified *selector*, returns a function which returns all descendants of `this` element that match the specified selector. This method is used internally by [*selection*.selectAll](#selection_selectAll). For example, this:
-
-```js
-const div = selection.selectAll("div");
-```
-
-Is equivalent to:
-
-```js
-const div = selection.selectAll(d3.selectorAll("div"));
-```
-
-<a name="window" href="#window">#</a> d3.<b>window</b>(<i>node</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/window.js)
-
-Returns the owner window for the specified *node*. If *node* is a node, returns the owner document’s default view; if *node* is a document, returns its default view; otherwise returns the *node*.
-
-<a name="style" href="#style">#</a> d3.<b>style</b>(<i>node</i>, <i>name</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/style.js)
-
-Returns the value of the style property with the specified *name* for the specified *node*. If the *node* has an inline style with the specified *name*, its value is returned; otherwise, the [computed property value](https://developer.mozilla.org/en-US/docs/Web/CSS/computed_value) is returned. See also [*selection*.style](#selection_style).
-
-### Modifying Elements
-
-After selecting elements, use the selection’s transformation methods to affect document content. For example, to set the name attribute and color style of an anchor element:
-
-```js
-d3.select("a")
-    .attr("name", "fred")
-    .style("color", "red");
-```
-
-To experiment with selections, visit [d3js.org](https://d3js.org) and open your browser’s developer console! (In Chrome, open the console with ⌥⌘J.) Select elements and then inspect the returned selection to see which elements are selected and how they are grouped. Call selection methods and see how the page content changes.
-
-<a name="selection_attr" href="#selection_attr">#</a> <i>selection</i>.<b>attr</b>(<i>name</i>[, <i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/attr.js)
-
-If a *value* is specified, sets the attribute with the specified *name* to the specified value on the selected elements and returns this selection. If the *value* is a constant, all elements are given the same attribute value; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to set each element’s attribute. A null value will remove the specified attribute.
-
-If a *value* is not specified, returns the current value of the specified attribute for the first (non-null) element in the selection. This is generally useful only if you know that the selection contains exactly one element.
-
-The specified *name* may have a namespace prefix, such as `xlink:href` to specify the `href` attribute in the XLink namespace. See [namespaces](#namespaces) for the map of supported namespaces; additional namespaces can be registered by adding to the map.
-
-<a name="selection_classed" href="#selection_classed">#</a> <i>selection</i>.<b>classed</b>(<i>names</i>[, <i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/classed.js)
-
-If a *value* is specified, assigns or unassigns the specified CSS class *names* on the selected elements by setting the `class` attribute or modifying the `classList` property and returns this selection. The specified *names* is a string of space-separated class names. For example, to assign the classes `foo` and `bar` to the selected elements:
-
-```js
-selection.classed("foo bar", true);
-```
-
-If the *value* is truthy, then all elements are assigned the specified classes; otherwise, the classes are unassigned. If the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to assign or unassign classes on each element. For example, to randomly associate the class *foo* with on average half the selected elements:
-
-```js
-selection.classed("foo", () => Math.random() > 0.5);
-```
-
-If a *value* is not specified, returns true if and only if the first (non-null) selected element has the specified *classes*. This is generally useful only if you know the selection contains exactly one element.
-
-<a name="selection_style" href="#selection_style">#</a> <i>selection</i>.<b>style</b>(<i>name</i>[, <i>value</i>[, <i>priority</i>]]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/style.js)
-
-If a *value* is specified, sets the style property with the specified *name* to the specified value on the selected elements and returns this selection. If the *value* is a constant, then all elements are given the same style property value; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to set each element’s style property. A null value will remove the style property. An optional *priority* may also be specified, either as null or the string `important` (without the exclamation point).
-
-If a *value* is not specified, returns the current value of the specified style property for the first (non-null) element in the selection. The current value is defined as the element’s inline value, if present, and otherwise its [computed value](https://developer.mozilla.org/en-US/docs/Web/CSS/computed_value). Accessing the current style value is generally useful only if you know the selection contains exactly one element.
-
-Caution: unlike many SVG attributes, CSS styles typically have associated units. For example, `3px` is a valid stroke-width property value, while `3` is not. Some browsers implicitly assign the `px` (pixel) unit to numeric values, but not all browsers do: IE, for example, throws an “invalid arguments” error!
-
-<a name="selection_property" href="#selection_property">#</a> <i>selection</i>.<b>property</b>(<i>name</i>[, <i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/property.js)
-
-Some HTML elements have special properties that are not addressable using attributes or styles, such as a form field’s text `value` and a checkbox’s `checked` boolean. Use this method to get or set these properties.
-
-If a *value* is specified, sets the property with the specified *name* to the specified value on selected elements. If the *value* is a constant, then all elements are given the same property value; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to set each element’s property. A null value will delete the specified property.
-
-If a *value* is not specified, returns the value of the specified property for the first (non-null) element in the selection. This is generally useful only if you know the selection contains exactly one element.
-
-<a name="selection_text" href="#selection_text">#</a> <i>selection</i>.<b>text</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/text.js)
-
-If a *value* is specified, sets the [text content](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent) to the specified value on all selected elements, replacing any existing child elements. If the *value* is a constant, then all elements are given the same text content; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to set each element’s text content. A null value will clear the content.
-
-If a *value* is not specified, returns the text content for the first (non-null) element in the selection. This is generally useful only if you know the selection contains exactly one element.
-
-<a name="selection_html" href="#selection_html">#</a> <i>selection</i>.<b>html</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/html.js)
-
-If a *value* is specified, sets the [inner HTML](http://dev.w3.org/html5/spec-LC/apis-in-html-documents.html#innerhtml) to the specified value on all selected elements, replacing any existing child elements. If the *value* is a constant, then all elements are given the same inner HTML; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function’s return value is then used to set each element’s inner HTML. A null value will clear the content.
-
-If a *value* is not specified, returns the inner HTML for the first (non-null) element in the selection. This is generally useful only if you know the selection contains exactly one element.
-
-Use [*selection*.append](#selection_append) or [*selection*.insert](#selection_insert) instead to create data-driven content; this method is intended for when you want a little bit of HTML, say for rich formatting. Also, *selection*.html is only supported on HTML elements. SVG elements and other non-HTML elements do not support the innerHTML property, and thus are incompatible with *selection*.html. Consider using [XMLSerializer](https://developer.mozilla.org/en-US/docs/XMLSerializer) to convert a DOM subtree to text. See also the [innersvg polyfill](https://code.google.com/p/innersvg/), which provides a shim to support the innerHTML property on SVG elements.
-
-<a name="selection_append" href="#selection_append">#</a> <i>selection</i>.<b>append</b>(<i>type</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/append.js)
-
-If the specified *type* is a string, appends a new element of this type (tag name) as the last child of each selected element, or before the next following sibling in the update selection if this is an [enter selection](#selection_enter). The latter behavior for enter selections allows you to insert elements into the DOM in an order consistent with the new bound data; however, note that [*selection*.order](#selection_order) may still be required if updating elements change order (*i.e.*, if the order of new data is inconsistent with old data).
-
-If the specified *type* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). This function should return an element to be appended. (The function typically creates a new element, but it may instead return an existing element.) For example, to append a paragraph to each DIV element:
-
-```js
-d3.selectAll("div").append("p");
-```
-
-This is equivalent to:
-
-```js
-d3.selectAll("div").append(() => document.createElement("p"));
-```
-
-Which is equivalent to:
-
-```js
-d3.selectAll("div").select(function() {
-  return this.appendChild(document.createElement("p"));
-});
-```
-
-In both cases, this method returns a new selection containing the appended elements. Each new element inherits the data of the current elements, if any, in the same manner as [*selection*.select](#selection_select).
-
-The specified *name* may have a namespace prefix, such as `svg:text` to specify a `text` attribute in the SVG namespace. See [namespaces](#namespaces) for the map of supported namespaces; additional namespaces can be registered by adding to the map. If no namespace is specified, the namespace will be inherited from the parent element; or, if the name is one of the known prefixes, the corresponding namespace will be used (for example, `svg` implies `svg:svg`).
-
-<a name="selection_insert" href="#selection_insert">#</a> <i>selection</i>.<b>insert</b>(<i>type</i>[, <i>before</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/insert.js)
-
-If the specified *type* is a string, inserts a new element of this type (tag name) before the first element matching the specified *before* selector for each selected element. For example, a *before* selector `:first-child` will prepend nodes before the first child. If *before* is not specified, it defaults to null. (To append elements in an order consistent with [bound data](#joining-data), use [*selection*.append](#selection_append).)
-
-Both *type* and *before* may instead be specified as functions which are evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The *type* function should return an element to be inserted; the *before* function should return the child element before which the element should be inserted. For example, to append a paragraph to each DIV element:
-
-```js
-d3.selectAll("div").insert("p");
-```
-
-This is equivalent to:
-
-```js
-d3.selectAll("div").insert(() => document.createElement("p"));
-```
-
-Which is equivalent to:
-
-```js
-d3.selectAll("div").select(function() {
-  return this.insertBefore(document.createElement("p"), null);
-});
-```
-
-In both cases, this method returns a new selection containing the appended elements. Each new element inherits the data of the current elements, if any, in the same manner as [*selection*.select](#selection_select).
-
-The specified *name* may have a namespace prefix, such as `svg:text` to specify a `text` attribute in the SVG namespace. See [namespaces](#namespaces) for the map of supported namespaces; additional namespaces can be registered by adding to the map. If no namespace is specified, the namespace will be inherited from the parent element; or, if the name is one of the known prefixes, the corresponding namespace will be used (for example, `svg` implies `svg:svg`).
-
-<a name="selection_remove" href="#selection_remove">#</a> <i>selection</i>.<b>remove</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/remove.js)
-
-Removes the selected elements from the document. Returns this selection (the removed elements) which are now detached from the DOM. There is not currently a dedicated API to add removed elements back to the document; however, you can pass a function to [*selection*.append](#selection_append) or [*selection*.insert](#selection_insert) to re-add elements.
-
-<a name="selection_clone" href="#selection_clone">#</a> <i>selection</i>.<b>clone</b>([<i>deep</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/clone.js)
-
-Inserts clones of the selected elements immediately following the selected elements and returns a selection of the newly added clones. If *deep* is truthy, the descendant nodes of the selected elements will be cloned as well. Otherwise, only the elements themselves will be cloned. Equivalent to:
-
-```js
-selection.select(function() {
-  return this.parentNode.insertBefore(this.cloneNode(deep), this.nextSibling);
-});
-```
-
-<a name="selection_sort" href="#selection_sort">#</a> <i>selection</i>.<b>sort</b>(<i>compare</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/sort.js)
-
-Returns a new selection that contains a copy of each group in this selection sorted according to the *compare* function. After sorting, re-inserts elements to match the resulting order (per [*selection*.order](#selection_order)).
-
-The compare function, which defaults to [ascending](https://github.com/d3/d3-array#ascending), is passed two elements’ data *a* and *b* to compare. It should return either a negative, positive, or zero value. If negative, then *a* should be before *b*; if positive, then *a* should be after *b*; otherwise, *a* and *b* are considered equal and the order is arbitrary.
-
-Note that sorting is not guaranteed to be stable; however, it is guaranteed to have the same behavior as your browser’s built-in [sort](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort) method on arrays.
-
-<a name="selection_order" href="#selection_order">#</a> <i>selection</i>.<b>order</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/order.js)
-
-Re-inserts elements into the document such that the document order of each group matches the selection order. This is equivalent to calling [*selection*.sort](#selection_sort) if the data is already sorted, but much faster.
-
-<a name="selection_raise" href="#selection_raise">#</a> <i>selection</i>.<b>raise</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/raise.js)
-
-Re-inserts each selected element, in order, as the last child of its parent. Equivalent to:
-
-```js
-selection.each(function() {
-  this.parentNode.appendChild(this);
-});
-```
-
-<a name="selection_lower" href="#selection_lower">#</a> <i>selection</i>.<b>lower</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/lower.js)
-
-Re-inserts each selected element, in order, as the first child of its parent. Equivalent to:
-
-```js
-selection.each(function() {
-  this.parentNode.insertBefore(this, this.parentNode.firstChild);
-});
-```
-
-<a name="create" href="#create">#</a> d3.<b>create</b>(<i>name</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/create.js)
-
-Given the specified element *name*, returns a single-element selection containing a detached element of the given name in the current document. This method assumes the HTML namespace, so you must specify a namespace explicitly when creating SVG or other non-HTML elements; see [namespace](#namespace) for details on supported namespace prefixes.
-
-```js
-d3.create("svg") // equivalent to svg:svg
-d3.create("svg:svg") // more explicitly
-d3.create("svg:g") // an SVG G element
-d3.create("g") // an HTML G (unknown) element
-```
-
-<a name="creator" href="#creator">#</a> d3.<b>creator</b>(<i>name</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/creator.js)
-
-Given the specified element *name*, returns a function which creates an element of the given name, assuming that `this` is the parent element. This method is used internally by [*selection*.append](#selection_append) and [*selection*.insert](#selection_insert) to create new elements. For example, this:
-
-```js
-selection.append("div");
-```
-
-Is equivalent to:
-
-```js
-selection.append(d3.creator("div"));
-```
-
-See [namespace](#namespace) for details on supported namespace prefixes, such as for SVG elements.
-
-### Joining Data
-
-For an introduction to D3’s data joins, see the [*selection*.join notebook](https://observablehq.com/@d3/selection-join). Also see [Thinking With Joins](http://bost.ocks.org/mike/join/).
-
-<a name="selection_data" href="#selection_data">#</a> <i>selection</i>.<b>data</b>([<i>data</i>[, <i>key</i>]]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/data.js), [Examples](https://observablehq.com/@d3/brushable-scatterplot)
-
-Binds the specified array of *data* with the selected elements, returning a new selection that represents the *update* selection: the elements successfully bound to data. Also defines the [enter](#selection_enter) and [exit](#selection_exit) selections on the returned selection, which can be used to add or remove elements to correspond to the new data. The specified *data* is an array of arbitrary values (*e.g.*, numbers or objects), or a function that returns an array of values for each group. When data is assigned to an element, it is stored in the property `__data__`, thus making the data “sticky” and available on re-selection.
-
-The *data* is specified **for each group** in the selection. If the selection has multiple groups (such as [d3.selectAll](#selectAll) followed by [*selection*.selectAll](#selection_selectAll)), then *data* should typically be specified as a function. This function will be evaluated for each group in order, being passed the group’s parent datum (*d*, which may be undefined), the group index (*i*), and the selection’s parent nodes (*nodes*), with *this* as the group’s parent element.
-
-In conjunction with [*selection*.join](#selection_join) (or more explicitly with [*selection*.enter](#selection_enter), [*selection*.exit](#selection_exit), [*selection*.append](#selection_append) and [*selection*.remove](#selection_remove)), *selection*.data can be used to enter, update and exit elements to match data. For example, to create an HTML table from a matrix of numbers:
-
-```js
-const matrix = [
-  [11975,  5871, 8916, 2868],
-  [ 1951, 10048, 2060, 6171],
-  [ 8010, 16145, 8090, 8045],
-  [ 1013,   990,  940, 6907]
-];
-
-d3.select("body")
-  .append("table")
-  .selectAll("tr")
-  .data(matrix)
-  .join("tr")
-  .selectAll("td")
-  .data(d => d)
-  .join("td")
-    .text(d => d);
-```
-
-In this example the *data* function is the identity function: for each table row, it returns the corresponding row from the data matrix.
-
-If a *key* function is not specified, then the first datum in *data* is assigned to the first selected element, the second datum to the second selected element, and so on. A *key* function may be specified to control which datum is assigned to which element, replacing the default join-by-index, by computing a string identifier for each datum and element. This key function is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]); the returned string is the element’s key. The key function is then also evaluated for each new datum in *data*, being passed the current datum (*d*), the current index (*i*), and the group’s new *data*, with *this* as the group’s parent DOM element; the returned string is the datum’s key. The datum for a given key is assigned to the element with the matching key. If multiple elements have the same key, the duplicate elements are put into the exit selection; if multiple data have the same key, the duplicate data are put into the enter selection.
-
-For example, given this document:
-
-```html
-<div id="Ford"></div>
-<div id="Jarrah"></div>
-<div id="Kwon"></div>
-<div id="Locke"></div>
-<div id="Reyes"></div>
-<div id="Shephard"></div>
-```
-
-You could join data by key as follows:
-
-
-```js
-const data = [
-  {name: "Locke", number: 4},
-  {name: "Reyes", number: 8},
-  {name: "Ford", number: 15},
-  {name: "Jarrah", number: 16},
-  {name: "Shephard", number: 23},
-  {name: "Kwon", number: 42}
-];
-
-d3.selectAll("div")
-  .data(data, function(d) { return d ? d.name : this.id; })
-    .text(d => d.number);
-```
-
-This example key function uses the datum *d* if present, and otherwise falls back to the element’s id property. Since these elements were not previously bound to data, the datum *d* is null when the key function is evaluated on selected elements, and non-null when the key function is evaluated on the new data.
-
-The *update* and *enter* selections are returned in data order, while the *exit* selection preserves the selection order prior to the join. If a key function is specified, the order of elements in the selection may not match their order in the document; use [*selection*.order](#selection_order) or [*selection*.sort](#selection_sort) as needed. For more on how the key function affects the join, see [A Bar Chart, Part 2](http://bost.ocks.org/mike/bar/2/) and [Object Constancy](http://bost.ocks.org/mike/constancy/).
-
-If *data* is not specified, this method returns the array of data for the selected elements.
-
-This method cannot be used to clear bound data; use [*selection*.datum](#selection_datum) instead.
-
-<a name="selection_join" href="#selection_join">#</a> <i>selection</i>.<b>join</b>(<i>enter</i>[, <i>update</i>][, <i>exit</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/join.js)
-
-Appends, removes and reorders elements as necessary to match the data that was previously bound by [*selection*.data](#selection_data), returning the [merged](#selection_merge) enter and update selection. This method is a convenient alternative to the explicit [general update pattern](https://bl.ocks.org/mbostock/3808218), replacing [*selection*.enter](#selection_enter), [*selection*.exit](#selection_exit), [*selection*.append](#selection_append), [*selection*.remove](#selection_remove), and [*selection*.order](#selection_order). For example:
-
-```js
-svg.selectAll("circle")
-  .data(data)
-  .join("circle")
-    .attr("fill", "none")
-    .attr("stroke", "black");
-```
-
-The *enter* function may be specified as a string shorthand, as above, which is equivalent to [*selection*.append](#selection_append) with the given element name. Likewise, optional *update* and *exit* functions may be specified, which default to the identity function and calling [*selection*.remove](#selection_remove), respectively. The shorthand above is thus equivalent to:
-
-```js
-svg.selectAll("circle")
-  .data(data)
-  .join(
-    enter => enter.append("circle"),
-    update => update,
-    exit => exit.remove()
-  )
-    .attr("fill", "none")
-    .attr("stroke", "black");
-````
-
-By passing separate functions on enter, update and exit, you have greater control over what happens. And by specifying a key function to [*selection*.data](#selection_data), you can minimize changes to the DOM to optimize performance. For example, to set different fill colors for enter and update:
-
-```js
-svg.selectAll("circle")
-  .data(data)
-  .join(
-    enter => enter.append("circle").attr("fill", "green"),
-    update => update.attr("fill", "blue")
-  )
-    .attr("stroke", "black");
-```
-
-The selections returned by the *enter* and *update* functions are merged and then returned by *selection*.join.
-
-You can animate enter, update and exit by creating transitions inside the *enter*, *update* and *exit* functions. If the *enter* and *update* functions return transitions, their underlying selections are merged and then returned by *selection*.join. The return value of the *exit* function is not used.
-
-For more, see the [*selection*.join notebook](https://observablehq.com/@d3/selection-join).
-
-<a name="selection_enter" href="#selection_enter">#</a> <i>selection</i>.<b>enter</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/enter.js)
-
-Returns the enter selection: placeholder nodes for each datum that had no corresponding DOM element in the selection. (The enter selection is empty for selections not returned by [*selection*.data](#selection_data).)
-
-The enter selection is typically used to create “missing” elements corresponding to new data. For example, to create DIV elements from an array of numbers:
-
-```js
-const div = d3.select("body")
-  .selectAll("div")
-  .data([4, 8, 15, 16, 23, 42])
-  .enter().append("div")
-    .text(d => d);
-```
-
-If the body is initially empty, the above code will create six new DIV elements, append them to the body in-order, and assign their text content as the associated (string-coerced) number:
-
-```html
-<div>4</div>
-<div>8</div>
-<div>15</div>
-<div>16</div>
-<div>23</div>
-<div>42</div>
-```
-
-Conceptually, the enter selection’s placeholders are pointers to the parent element (in this example, the document body). The enter selection is typically only used transiently to append elements, and is often [merged](#selection_merge) with the update selection after appending, such that modifications can be applied to both entering and updating elements.
-
-<a name="selection_exit" href="#selection_exit">#</a> <i>selection</i>.<b>exit</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/exit.js)
-
-Returns the exit selection: existing DOM elements in the selection for which no new datum was found. (The exit selection is empty for selections not returned by [*selection*.data](#selection_data).)
-
-The exit selection is typically used to remove “superfluous” elements corresponding to old data. For example, to update the DIV elements created previously with a new array of numbers:
-
-```js
-div = div.data([1, 2, 4, 8, 16, 32], d => d);
-```
-
-Since a key function was specified (as the identity function), and the new data contains the numbers [4, 8, 16] which match existing elements in the document, the update selection contains three DIV elements. Leaving those elements as-is, we can append new elements for [1, 2, 32] using the enter selection:
-
-```js
-div.enter().append("div").text(d => d);
-```
-
-Likewise, to remove the exiting elements [15, 23, 42]:
-
-```js
-div.exit().remove();
-```
-
-Now the document body looks like this:
-
-```html
-<div>1</div>
-<div>2</div>
-<div>4</div>
-<div>8</div>
-<div>16</div>
-<div>32</div>
-```
-
-The order of the DOM elements matches the order of the data because the old data’s order and the new data’s order were consistent. If the new data’s order is different, use [*selection*.order](#selection_order) to reorder the elements in the DOM. See the [General Update Pattern](http://bl.ocks.org/mbostock/3808218) example thread for more on data joins.
-
-<a name="selection_datum" href="#selection_datum">#</a> <i>selection</i>.<b>datum</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/datum.js)
-
-Gets or sets the bound data for each selected element. Unlike [*selection*.data](#selection_data), this method does not compute a join and does not affect indexes or the enter and exit selections.
-
-If a *value* is specified, sets the element’s bound data to the specified value on all selected elements. If the *value* is a constant, all elements are given the same datum; otherwise, if the *value* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). The function is then used to set each element’s new data. A null value will delete the bound data.
-
-If a *value* is not specified, returns the bound datum for the first (non-null) element in the selection. This is generally useful only if you know the selection contains exactly one element.
-
-This method is useful for accessing HTML5 [custom data attributes](http://www.w3.org/TR/html5/dom.html#custom-data-attribute). For example, given the following elements:
-
-```html
-<ul id="list">
-  <li data-username="shawnbot">Shawn Allen</li>
-  <li data-username="mbostock">Mike Bostock</li>
-</ul>
-```
-
-You can expose the custom data attributes by setting each element’s data as the built-in [dataset](http://www.w3.org/TR/html5/dom.html#dom-dataset) property:
-
-```js
-selection.datum(function() { return this.dataset; })
-```
-
-### Handling Events
-
-For interaction, selections allow listening for and dispatching of events.
-
-<a name="selection_on" href="#selection_on">#</a> <i>selection</i>.<b>on</b>(<i>typenames</i>[, <i>listener</i>[, <i>options</i>]]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/on.js)
-
-Adds or removes a *listener* to each selected element for the specified event *typenames*. The *typenames* is a string event type, such as `click`, `mouseover`, or `submit`; any [DOM event type](https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events) supported by your browser may be used. The type may be optionally followed by a period (`.`) and a name; the optional name allows multiple callbacks to be registered to receive events of the same type, such as `click.foo` and `click.bar`. To specify multiple typenames, separate typenames with spaces, such as `input change` or `click.foo click.bar`.
-
-When a specified event is dispatched on a selected element, the specified *listener* will be evaluated for the element, being passed the current event (*event*) and the current datum (*d*), with *this* as the current DOM element (*event*.currentTarget). Listeners always see the latest datum for their element. Note: while you can use [*event*.pageX](https://developer.mozilla.org/en/DOM/event.pageX) and [*event*.pageY](https://developer.mozilla.org/en/DOM/event.pageY) directly, it is often convenient to transform the event position to the local coordinate system of the element that received the event using [d3.pointer](#pointer).
-
-If an event listener was previously registered for the same *typename* on a selected element, the old listener is removed before the new listener is added. To remove a listener, pass null as the *listener*. To remove all listeners for a given name, pass null as the *listener* and `.foo` as the *typename*, where `foo` is the name; to remove all listeners with no name, specify `.` as the *typename*.
-
-An optional *options* object may specify characteristics about the event listener, such as whether it is capturing or passive; see [*element*.addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener).
-
-If a *listener* is not specified, returns the currently-assigned listener for the specified event *typename* on the first (non-null) selected element, if any. If multiple typenames are specified, the first matching listener is returned.
-
-<a name="selection_dispatch" href="#selection_dispatch">#</a> <i>selection</i>.<b>dispatch</b>(<i>type</i>[, <i>parameters</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/dispatch.js)
-
-Dispatches a [custom event](http://www.w3.org/TR/dom/#interface-customevent) of the specified *type* to each selected element, in order. An optional *parameters* map may be specified to set additional properties of the event. It may contain the following fields:
-
-* [`bubbles`](https://www.w3.org/TR/dom/#dom-event-bubbles) - if true, the event is dispatched to ancestors in reverse tree order.
-* [`cancelable`](https://www.w3.org/TR/dom/#dom-event-cancelable) - if true, *event*.preventDefault is allowed.
-* [`detail`](https://www.w3.org/TR/dom/#dom-customevent-detail) - any custom data associated with the event.
-
-If *parameters* is a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). It must return the parameters map for the current element.
-
-<a name="pointer" href="#pointer">#</a> d3.<b>pointer</b>(<i>event</i>[, <i>target</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/pointer.js)
-
-Returns a two-element array of numbers [*x*, *y*] representing the coordinates of the specified *event* relative to the specified *target*. *event* can be a [MouseEvent](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent), a [PointerEvent](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent), a [Touch](https://www.w3.org/TR/touch-events/#touch-interface), or a custom event holding a UIEvent as *event*.sourceEvent.
-
-If *target* is not specified, it defaults to the source event’s currentTarget property, if available. If the *target* is an SVG element, the event’s coordinates are transformed using the [inverse](https://www.w3.org/TR/geometry-1/#dom-dommatrixreadonly-inverse) of the [screen coordinate transformation matrix](https://www.w3.org/TR/SVG/types.html#__svg__SVGGraphicsElement__getScreenCTM). If the *target* is an HTML element, the event’s coordinates are translated relative to the top-left corner of the *target*’s [bounding client rectangle](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect). (As such, the coordinate system can only be translated relative to the client coordinates. See also [GeometryUtils](https://www.w3.org/TR/cssom-view-1/#the-geometryutils-interface).) Otherwise, [*event*.pageX, *event*.pageY] is returned.
-
-<a name="pointers" href="#pointers">#</a> d3.<b>pointers</b>(<i>event</i>[, <i>target</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/pointers.js)
-
-Returns an array [[*x0*, *y0*], [*x1*, *y1*]…] of coordinates of the specified *event*’s pointer locations relative to the specified *target*. For touch events, the returned array of positions corresponds to the *event*.touches array; for other events, returns a single-element array.
-
-If *target* is not specified, it defaults to the source event’s currentTarget property, if any.
-
-### Control Flow
-
-For advanced usage, selections provide methods for custom control flow.
-
-<a name="selection_each" href="#selection_each">#</a> <i>selection</i>.<b>each</b>(<i>function</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/each.js)
-
-Invokes the specified *function* for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element (*nodes*[*i*]). This method can be used to invoke arbitrary code for each selected element, and is useful for creating a context to access parent and child data simultaneously, such as:
-
-```js
-parent.each(function(p, j) {
-  d3.select(this)
-    .selectAll(".child")
-      .text(d => `child ${d.name} of ${p.name}`);
-});
-```
-
-See [Sized Donut Multiples](http://bl.ocks.org/mbostock/4c5fad723c87d2fd8273) for an example.
-
-<a name="selection_call" href="#selection_call">#</a> <i>selection</i>.<b>call</b>(<i>function</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/call.js)
-
-Invokes the specified *function* exactly once, passing in this selection along with any optional *arguments*. Returns this selection. This is equivalent to invoking the function by hand but facilitates method chaining. For example, to set several styles in a reusable function:
-
-```js
-function name(selection, first, last) {
-  selection
-      .attr("first-name", first)
-      .attr("last-name", last);
-}
-```
-
-Now say:
-
-```js
-d3.selectAll("div").call(name, "John", "Snow");
-```
-
-This is roughly equivalent to:
-
-```js
-name(d3.selectAll("div"), "John", "Snow");
-```
-
-The only difference is that *selection*.call always returns the *selection* and not the return value of the called *function*, `name`.
-
-<a name="selection_empty" href="#selection_empty">#</a> <i>selection</i>.<b>empty</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/empty.js)
-
-Returns true if this selection contains no (non-null) elements.
-
-<a name="selection_nodes" href="#selection_nodes">#</a> <i>selection</i>.<b>nodes</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/nodes.js)
-
-Returns an array of all (non-null) elements in this selection. Equivalent to:
-
-```js
-const elements = Array.from(selection);
-````
-
-See also [*selection*[Symbol.iterator]](#selection_iterator).
-
-<a name="selection_node" href="#selection_node">#</a> <i>selection</i>.<b>node</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/node.js)
-
-Returns the first (non-null) element in this selection. If the selection is empty, returns null.
-
-<a name="selection_size" href="#selection_size">#</a> <i>selection</i>.<b>size</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/size.js)
-
-Returns the total number of (non-null) elements in this selection.
-
-<a name="selection_iterator" href="#selection_iterator">#</a> <i>selection</i>\[<b>Symbol.iterator</b>\]() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/iterator.js)
-
-Returns an iterator over the selected (non-null) elements. For example, to iterate over the selected elements:
-
-```js
-for (const element of selection) {
-  console.log(element);
-}
-```
-
-To flatten the selection to an array:
-
-```js
-const elements = [...selection];
-````
-
-### Local Variables
-
-D3 locals allow you to define local state independent of data. For instance, when rendering [small multiples](http://bl.ocks.org/mbostock/e1192fe405703d8321a5187350910e08) of time-series data, you might want the same *x*-scale for all charts but distinct *y*-scales to compare the relative performance of each metric. D3 locals are scoped by DOM elements: on set, the value is stored on the given element; on get, the value is retrieved from given element or the nearest ancestor that defines it.
-
-<a name="local" href="#local">#</a> d3.<b>local</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/local.js)
-
-Declares a new local variable. For example:
-
-```js
-const foo = d3.local();
-```
-
-Like `var`, each local is a distinct symbolic reference; unlike `var`, the value of each local is also scoped by the DOM.
-
-<a name="local_set" href="#local_set">#</a> <i>local</i>.<b>set</b>(<i>node</i>, <i>value</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/local.js)
-
-Sets the value of this local on the specified *node* to the *value*, and returns the specified *value*. This is often performed using [*selection*.each](#selection_each):
-
-```js
-selection.each(function(d) { foo.set(this, d.value); });
-```
-
-If you are just setting a single variable, consider using [*selection*.property](#selection_property):
-
-```js
-selection.property(foo, d => d.value);
-```
-
-<a name="local_get" href="#local_get">#</a> <i>local</i>.<b>get</b>(<i>node</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/local.js)
-
-Returns the value of this local on the specified *node*. If the *node* does not define this local, returns the value from the nearest ancestor that defines it. Returns undefined if no ancestor defines this local.
-
-<a name="local_remove" href="#local_remove">#</a> <i>local</i>.<b>remove</b>(<i>node</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/local.js)
-
-Deletes this local’s value from the specified *node*. Returns true if the *node* defined this local prior to removal, and false otherwise. If ancestors also define this local, those definitions are unaffected, and thus [*local*.get](#local_get) will still return the inherited value.
-
-<a name="local_toString" href="#local_toString">#</a> <i>local</i>.<b>toString</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/local.js)
-
-Returns the automatically-generated identifier for this local. This is the name of the property that is used to store the local’s value on elements, and thus you can also set or get the local’s value using *element*[*local*] or by using [*selection*.property](#selection_property).
-
-### Namespaces
-
-XML namespaces are fun! Right? Fortunately you can mostly ignore them.
-
-<a name="namespace" href="#namespace">#</a> d3.<b>namespace</b>(<i>name</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/namespace.js)
-
-Qualifies the specified *name*, which may or may not have a namespace prefix. If the name contains a colon (`:`), the substring before the colon is interpreted as the namespace prefix, which must be registered in [d3.namespaces](#namespaces). Returns an object `space` and `local` attributes describing the full namespace URL and the local name. For example:
-
-```js
-d3.namespace("svg:text"); // {space: "http://www.w3.org/2000/svg", local: "text"}
-```
-
-If the name does not contain a colon, this function merely returns the input name.
-
-<a name="namespaces" href="#namespaces">#</a> d3.<b>namespaces</b> · [Source](https://github.com/d3/d3-selection/blob/master/src/namespaces.js)
-
-The map of registered namespace prefixes. The initial value is:
-
-```js
-{
-  svg: "http://www.w3.org/2000/svg",
-  xhtml: "http://www.w3.org/1999/xhtml",
-  xlink: "http://www.w3.org/1999/xlink",
-  xml: "http://www.w3.org/XML/1998/namespace",
-  xmlns: "http://www.w3.org/2000/xmlns/"
-}
-```
-
-Additional prefixes may be assigned as needed to create elements or attributes in other namespaces.
Index: de_modules/d3-selection/dist/d3-selection.js
===================================================================
--- node_modules/d3-selection/dist/d3-selection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1022 +1,0 @@
-// https://d3js.org/d3-selection/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-var xhtml = "http://www.w3.org/1999/xhtml";
-
-var namespaces = {
-  svg: "http://www.w3.org/2000/svg",
-  xhtml: xhtml,
-  xlink: "http://www.w3.org/1999/xlink",
-  xml: "http://www.w3.org/XML/1998/namespace",
-  xmlns: "http://www.w3.org/2000/xmlns/"
-};
-
-function namespace(name) {
-  var prefix = name += "", i = prefix.indexOf(":");
-  if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
-  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
-}
-
-function creatorInherit(name) {
-  return function() {
-    var document = this.ownerDocument,
-        uri = this.namespaceURI;
-    return uri === xhtml && document.documentElement.namespaceURI === xhtml
-        ? document.createElement(name)
-        : document.createElementNS(uri, name);
-  };
-}
-
-function creatorFixed(fullname) {
-  return function() {
-    return this.ownerDocument.createElementNS(fullname.space, fullname.local);
-  };
-}
-
-function creator(name) {
-  var fullname = namespace(name);
-  return (fullname.local
-      ? creatorFixed
-      : creatorInherit)(fullname);
-}
-
-function none() {}
-
-function selector(selector) {
-  return selector == null ? none : function() {
-    return this.querySelector(selector);
-  };
-}
-
-function selection_select(select) {
-  if (typeof select !== "function") select = selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-      }
-    }
-  }
-
-  return new Selection(subgroups, this._parents);
-}
-
-// Given something array like (or null), returns something that is strictly an
-// array. This is used to ensure that array-like objects passed to d3.selectAll
-// or selection.selectAll are converted into proper arrays when creating a
-// selection; we don’t ever want to create a selection backed by a live
-// HTMLCollection or NodeList. However, note that selection.selectAll will use a
-// static NodeList as a group, since it safely derived from querySelectorAll.
-function array(x) {
-  return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
-}
-
-function empty() {
-  return [];
-}
-
-function selectorAll(selector) {
-  return selector == null ? empty : function() {
-    return this.querySelectorAll(selector);
-  };
-}
-
-function arrayAll(select) {
-  return function() {
-    return array(select.apply(this, arguments));
-  };
-}
-
-function selection_selectAll(select) {
-  if (typeof select === "function") select = arrayAll(select);
-  else select = selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        subgroups.push(select.call(node, node.__data__, i, group));
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Selection(subgroups, parents);
-}
-
-function matcher(selector) {
-  return function() {
-    return this.matches(selector);
-  };
-}
-
-function childMatcher(selector) {
-  return function(node) {
-    return node.matches(selector);
-  };
-}
-
-var find = Array.prototype.find;
-
-function childFind(match) {
-  return function() {
-    return find.call(this.children, match);
-  };
-}
-
-function childFirst() {
-  return this.firstElementChild;
-}
-
-function selection_selectChild(match) {
-  return this.select(match == null ? childFirst
-      : childFind(typeof match === "function" ? match : childMatcher(match)));
-}
-
-var filter = Array.prototype.filter;
-
-function children() {
-  return Array.from(this.children);
-}
-
-function childrenFilter(match) {
-  return function() {
-    return filter.call(this.children, match);
-  };
-}
-
-function selection_selectChildren(match) {
-  return this.selectAll(match == null ? children
-      : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
-}
-
-function selection_filter(match) {
-  if (typeof match !== "function") match = matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Selection(subgroups, this._parents);
-}
-
-function sparse(update) {
-  return new Array(update.length);
-}
-
-function selection_enter() {
-  return new Selection(this._enter || this._groups.map(sparse), this._parents);
-}
-
-function EnterNode(parent, datum) {
-  this.ownerDocument = parent.ownerDocument;
-  this.namespaceURI = parent.namespaceURI;
-  this._next = null;
-  this._parent = parent;
-  this.__data__ = datum;
-}
-
-EnterNode.prototype = {
-  constructor: EnterNode,
-  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
-  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
-  querySelector: function(selector) { return this._parent.querySelector(selector); },
-  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
-};
-
-function constant(x) {
-  return function() {
-    return x;
-  };
-}
-
-function bindIndex(parent, group, enter, update, exit, data) {
-  var i = 0,
-      node,
-      groupLength = group.length,
-      dataLength = data.length;
-
-  // Put any non-null nodes that fit into update.
-  // Put any null nodes into enter.
-  // Put any remaining data into enter.
-  for (; i < dataLength; ++i) {
-    if (node = group[i]) {
-      node.__data__ = data[i];
-      update[i] = node;
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Put any non-null nodes that don’t fit into exit.
-  for (; i < groupLength; ++i) {
-    if (node = group[i]) {
-      exit[i] = node;
-    }
-  }
-}
-
-function bindKey(parent, group, enter, update, exit, data, key) {
-  var i,
-      node,
-      nodeByKeyValue = new Map,
-      groupLength = group.length,
-      dataLength = data.length,
-      keyValues = new Array(groupLength),
-      keyValue;
-
-  // Compute the key for each node.
-  // If multiple nodes have the same key, the duplicates are added to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if (node = group[i]) {
-      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
-      if (nodeByKeyValue.has(keyValue)) {
-        exit[i] = node;
-      } else {
-        nodeByKeyValue.set(keyValue, node);
-      }
-    }
-  }
-
-  // Compute the key for each datum.
-  // If there a node associated with this key, join and add it to update.
-  // If there is not (or the key is a duplicate), add it to enter.
-  for (i = 0; i < dataLength; ++i) {
-    keyValue = key.call(parent, data[i], i, data) + "";
-    if (node = nodeByKeyValue.get(keyValue)) {
-      update[i] = node;
-      node.__data__ = data[i];
-      nodeByKeyValue.delete(keyValue);
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Add any remaining nodes that were not bound to data to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
-      exit[i] = node;
-    }
-  }
-}
-
-function datum(node) {
-  return node.__data__;
-}
-
-function selection_data(value, key) {
-  if (!arguments.length) return Array.from(this, datum);
-
-  var bind = key ? bindKey : bindIndex,
-      parents = this._parents,
-      groups = this._groups;
-
-  if (typeof value !== "function") value = constant(value);
-
-  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
-    var parent = parents[j],
-        group = groups[j],
-        groupLength = group.length,
-        data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),
-        dataLength = data.length,
-        enterGroup = enter[j] = new Array(dataLength),
-        updateGroup = update[j] = new Array(dataLength),
-        exitGroup = exit[j] = new Array(groupLength);
-
-    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
-
-    // Now connect the enter nodes to their following update node, such that
-    // appendChild can insert the materialized enter node before this node,
-    // rather than at the end of the parent node.
-    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
-      if (previous = enterGroup[i0]) {
-        if (i0 >= i1) i1 = i0 + 1;
-        while (!(next = updateGroup[i1]) && ++i1 < dataLength);
-        previous._next = next || null;
-      }
-    }
-  }
-
-  update = new Selection(update, parents);
-  update._enter = enter;
-  update._exit = exit;
-  return update;
-}
-
-// Given some data, this returns an array-like view of it: an object that
-// exposes a length property and allows numeric indexing. Note that unlike
-// selectAll, this isn’t worried about “live” collections because the resulting
-// array will only be used briefly while data is being bound. (It is possible to
-// cause the data to change while iterating by using a key function, but please
-// don’t; we’d rather avoid a gratuitous copy.)
-function arraylike(data) {
-  return typeof data === "object" && "length" in data
-    ? data // Array, TypedArray, NodeList, array-like
-    : Array.from(data); // Map, Set, iterable, string, or anything else
-}
-
-function selection_exit() {
-  return new Selection(this._exit || this._groups.map(sparse), this._parents);
-}
-
-function selection_join(onenter, onupdate, onexit) {
-  var enter = this.enter(), update = this, exit = this.exit();
-  if (typeof onenter === "function") {
-    enter = onenter(enter);
-    if (enter) enter = enter.selection();
-  } else {
-    enter = enter.append(onenter + "");
-  }
-  if (onupdate != null) {
-    update = onupdate(update);
-    if (update) update = update.selection();
-  }
-  if (onexit == null) exit.remove(); else onexit(exit);
-  return enter && update ? enter.merge(update).order() : update;
-}
-
-function selection_merge(context) {
-  var selection = context.selection ? context.selection() : context;
-
-  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Selection(merges, this._parents);
-}
-
-function selection_order() {
-
-  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
-    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
-      if (node = group[i]) {
-        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
-        next = node;
-      }
-    }
-  }
-
-  return this;
-}
-
-function selection_sort(compare) {
-  if (!compare) compare = ascending;
-
-  function compareNode(a, b) {
-    return a && b ? compare(a.__data__, b.__data__) : !a - !b;
-  }
-
-  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        sortgroup[i] = node;
-      }
-    }
-    sortgroup.sort(compareNode);
-  }
-
-  return new Selection(sortgroups, this._parents).order();
-}
-
-function ascending(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-function selection_call() {
-  var callback = arguments[0];
-  arguments[0] = this;
-  callback.apply(null, arguments);
-  return this;
-}
-
-function selection_nodes() {
-  return Array.from(this);
-}
-
-function selection_node() {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
-      var node = group[i];
-      if (node) return node;
-    }
-  }
-
-  return null;
-}
-
-function selection_size() {
-  let size = 0;
-  for (const node of this) ++size; // eslint-disable-line no-unused-vars
-  return size;
-}
-
-function selection_empty() {
-  return !this.node();
-}
-
-function selection_each(callback) {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) callback.call(node, node.__data__, i, group);
-    }
-  }
-
-  return this;
-}
-
-function attrRemove(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant(name, value) {
-  return function() {
-    this.setAttribute(name, value);
-  };
-}
-
-function attrConstantNS(fullname, value) {
-  return function() {
-    this.setAttributeNS(fullname.space, fullname.local, value);
-  };
-}
-
-function attrFunction(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttribute(name);
-    else this.setAttribute(name, v);
-  };
-}
-
-function attrFunctionNS(fullname, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
-    else this.setAttributeNS(fullname.space, fullname.local, v);
-  };
-}
-
-function selection_attr(name, value) {
-  var fullname = namespace(name);
-
-  if (arguments.length < 2) {
-    var node = this.node();
-    return fullname.local
-        ? node.getAttributeNS(fullname.space, fullname.local)
-        : node.getAttribute(fullname);
-  }
-
-  return this.each((value == null
-      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
-      ? (fullname.local ? attrFunctionNS : attrFunction)
-      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
-}
-
-function defaultView(node) {
-  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
-      || (node.document && node) // node is a Window
-      || node.defaultView; // node is a Document
-}
-
-function styleRemove(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant(name, value, priority) {
-  return function() {
-    this.style.setProperty(name, value, priority);
-  };
-}
-
-function styleFunction(name, value, priority) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.style.removeProperty(name);
-    else this.style.setProperty(name, v, priority);
-  };
-}
-
-function selection_style(name, value, priority) {
-  return arguments.length > 1
-      ? this.each((value == null
-            ? styleRemove : typeof value === "function"
-            ? styleFunction
-            : styleConstant)(name, value, priority == null ? "" : priority))
-      : styleValue(this.node(), name);
-}
-
-function styleValue(node, name) {
-  return node.style.getPropertyValue(name)
-      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);
-}
-
-function propertyRemove(name) {
-  return function() {
-    delete this[name];
-  };
-}
-
-function propertyConstant(name, value) {
-  return function() {
-    this[name] = value;
-  };
-}
-
-function propertyFunction(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) delete this[name];
-    else this[name] = v;
-  };
-}
-
-function selection_property(name, value) {
-  return arguments.length > 1
-      ? this.each((value == null
-          ? propertyRemove : typeof value === "function"
-          ? propertyFunction
-          : propertyConstant)(name, value))
-      : this.node()[name];
-}
-
-function classArray(string) {
-  return string.trim().split(/^|\s+/);
-}
-
-function classList(node) {
-  return node.classList || new ClassList(node);
-}
-
-function ClassList(node) {
-  this._node = node;
-  this._names = classArray(node.getAttribute("class") || "");
-}
-
-ClassList.prototype = {
-  add: function(name) {
-    var i = this._names.indexOf(name);
-    if (i < 0) {
-      this._names.push(name);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  remove: function(name) {
-    var i = this._names.indexOf(name);
-    if (i >= 0) {
-      this._names.splice(i, 1);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  contains: function(name) {
-    return this._names.indexOf(name) >= 0;
-  }
-};
-
-function classedAdd(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.add(names[i]);
-}
-
-function classedRemove(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.remove(names[i]);
-}
-
-function classedTrue(names) {
-  return function() {
-    classedAdd(this, names);
-  };
-}
-
-function classedFalse(names) {
-  return function() {
-    classedRemove(this, names);
-  };
-}
-
-function classedFunction(names, value) {
-  return function() {
-    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
-  };
-}
-
-function selection_classed(name, value) {
-  var names = classArray(name + "");
-
-  if (arguments.length < 2) {
-    var list = classList(this.node()), i = -1, n = names.length;
-    while (++i < n) if (!list.contains(names[i])) return false;
-    return true;
-  }
-
-  return this.each((typeof value === "function"
-      ? classedFunction : value
-      ? classedTrue
-      : classedFalse)(names, value));
-}
-
-function textRemove() {
-  this.textContent = "";
-}
-
-function textConstant(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.textContent = v == null ? "" : v;
-  };
-}
-
-function selection_text(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? textRemove : (typeof value === "function"
-          ? textFunction
-          : textConstant)(value))
-      : this.node().textContent;
-}
-
-function htmlRemove() {
-  this.innerHTML = "";
-}
-
-function htmlConstant(value) {
-  return function() {
-    this.innerHTML = value;
-  };
-}
-
-function htmlFunction(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.innerHTML = v == null ? "" : v;
-  };
-}
-
-function selection_html(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? htmlRemove : (typeof value === "function"
-          ? htmlFunction
-          : htmlConstant)(value))
-      : this.node().innerHTML;
-}
-
-function raise() {
-  if (this.nextSibling) this.parentNode.appendChild(this);
-}
-
-function selection_raise() {
-  return this.each(raise);
-}
-
-function lower() {
-  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
-}
-
-function selection_lower() {
-  return this.each(lower);
-}
-
-function selection_append(name) {
-  var create = typeof name === "function" ? name : creator(name);
-  return this.select(function() {
-    return this.appendChild(create.apply(this, arguments));
-  });
-}
-
-function constantNull() {
-  return null;
-}
-
-function selection_insert(name, before) {
-  var create = typeof name === "function" ? name : creator(name),
-      select = before == null ? constantNull : typeof before === "function" ? before : selector(before);
-  return this.select(function() {
-    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
-  });
-}
-
-function remove() {
-  var parent = this.parentNode;
-  if (parent) parent.removeChild(this);
-}
-
-function selection_remove() {
-  return this.each(remove);
-}
-
-function selection_cloneShallow() {
-  var clone = this.cloneNode(false), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-function selection_cloneDeep() {
-  var clone = this.cloneNode(true), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-function selection_clone(deep) {
-  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
-}
-
-function selection_datum(value) {
-  return arguments.length
-      ? this.property("__data__", value)
-      : this.node().__data__;
-}
-
-function contextListener(listener) {
-  return function(event) {
-    listener.call(this, event, this.__data__);
-  };
-}
-
-function parseTypenames(typenames) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    return {type: t, name: name};
-  });
-}
-
-function onRemove(typename) {
-  return function() {
-    var on = this.__on;
-    if (!on) return;
-    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
-      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-      } else {
-        on[++i] = o;
-      }
-    }
-    if (++i) on.length = i;
-    else delete this.__on;
-  };
-}
-
-function onAdd(typename, value, options) {
-  return function() {
-    var on = this.__on, o, listener = contextListener(value);
-    if (on) for (var j = 0, m = on.length; j < m; ++j) {
-      if ((o = on[j]).type === typename.type && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-        this.addEventListener(o.type, o.listener = listener, o.options = options);
-        o.value = value;
-        return;
-      }
-    }
-    this.addEventListener(typename.type, listener, options);
-    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};
-    if (!on) this.__on = [o];
-    else on.push(o);
-  };
-}
-
-function selection_on(typename, value, options) {
-  var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
-
-  if (arguments.length < 2) {
-    var on = this.node().__on;
-    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
-      for (i = 0, o = on[j]; i < n; ++i) {
-        if ((t = typenames[i]).type === o.type && t.name === o.name) {
-          return o.value;
-        }
-      }
-    }
-    return;
-  }
-
-  on = value ? onAdd : onRemove;
-  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
-  return this;
-}
-
-function dispatchEvent(node, type, params) {
-  var window = defaultView(node),
-      event = window.CustomEvent;
-
-  if (typeof event === "function") {
-    event = new event(type, params);
-  } else {
-    event = window.document.createEvent("Event");
-    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
-    else event.initEvent(type, false, false);
-  }
-
-  node.dispatchEvent(event);
-}
-
-function dispatchConstant(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params);
-  };
-}
-
-function dispatchFunction(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params.apply(this, arguments));
-  };
-}
-
-function selection_dispatch(type, params) {
-  return this.each((typeof params === "function"
-      ? dispatchFunction
-      : dispatchConstant)(type, params));
-}
-
-function* selection_iterator() {
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) yield node;
-    }
-  }
-}
-
-var root = [null];
-
-function Selection(groups, parents) {
-  this._groups = groups;
-  this._parents = parents;
-}
-
-function selection() {
-  return new Selection([[document.documentElement]], root);
-}
-
-function selection_selection() {
-  return this;
-}
-
-Selection.prototype = selection.prototype = {
-  constructor: Selection,
-  select: selection_select,
-  selectAll: selection_selectAll,
-  selectChild: selection_selectChild,
-  selectChildren: selection_selectChildren,
-  filter: selection_filter,
-  data: selection_data,
-  enter: selection_enter,
-  exit: selection_exit,
-  join: selection_join,
-  merge: selection_merge,
-  selection: selection_selection,
-  order: selection_order,
-  sort: selection_sort,
-  call: selection_call,
-  nodes: selection_nodes,
-  node: selection_node,
-  size: selection_size,
-  empty: selection_empty,
-  each: selection_each,
-  attr: selection_attr,
-  style: selection_style,
-  property: selection_property,
-  classed: selection_classed,
-  text: selection_text,
-  html: selection_html,
-  raise: selection_raise,
-  lower: selection_lower,
-  append: selection_append,
-  insert: selection_insert,
-  remove: selection_remove,
-  clone: selection_clone,
-  datum: selection_datum,
-  on: selection_on,
-  dispatch: selection_dispatch,
-  [Symbol.iterator]: selection_iterator
-};
-
-function select(selector) {
-  return typeof selector === "string"
-      ? new Selection([[document.querySelector(selector)]], [document.documentElement])
-      : new Selection([[selector]], root);
-}
-
-function create(name) {
-  return select(creator(name).call(document.documentElement));
-}
-
-var nextId = 0;
-
-function local() {
-  return new Local;
-}
-
-function Local() {
-  this._ = "@" + (++nextId).toString(36);
-}
-
-Local.prototype = local.prototype = {
-  constructor: Local,
-  get: function(node) {
-    var id = this._;
-    while (!(id in node)) if (!(node = node.parentNode)) return;
-    return node[id];
-  },
-  set: function(node, value) {
-    return node[this._] = value;
-  },
-  remove: function(node) {
-    return this._ in node && delete node[this._];
-  },
-  toString: function() {
-    return this._;
-  }
-};
-
-function sourceEvent(event) {
-  let sourceEvent;
-  while (sourceEvent = event.sourceEvent) event = sourceEvent;
-  return event;
-}
-
-function pointer(event, node) {
-  event = sourceEvent(event);
-  if (node === undefined) node = event.currentTarget;
-  if (node) {
-    var svg = node.ownerSVGElement || node;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      point.x = event.clientX, point.y = event.clientY;
-      point = point.matrixTransform(node.getScreenCTM().inverse());
-      return [point.x, point.y];
-    }
-    if (node.getBoundingClientRect) {
-      var rect = node.getBoundingClientRect();
-      return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
-    }
-  }
-  return [event.pageX, event.pageY];
-}
-
-function pointers(events, node) {
-  if (events.target) { // i.e., instanceof Event, not TouchList or iterable
-    events = sourceEvent(events);
-    if (node === undefined) node = events.currentTarget;
-    events = events.touches || [events];
-  }
-  return Array.from(events, event => pointer(event, node));
-}
-
-function selectAll(selector) {
-  return typeof selector === "string"
-      ? new Selection([document.querySelectorAll(selector)], [document.documentElement])
-      : new Selection([array(selector)], root);
-}
-
-exports.create = create;
-exports.creator = creator;
-exports.local = local;
-exports.matcher = matcher;
-exports.namespace = namespace;
-exports.namespaces = namespaces;
-exports.pointer = pointer;
-exports.pointers = pointers;
-exports.select = select;
-exports.selectAll = selectAll;
-exports.selection = selection;
-exports.selector = selector;
-exports.selectorAll = selectorAll;
-exports.style = styleValue;
-exports.window = defaultView;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-selection/dist/d3-selection.min.js
===================================================================
--- node_modules/d3-selection/dist/d3-selection.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-selection/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";var n="http://www.w3.org/1999/xhtml",e={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function r(t){var n=t+="",r=n.indexOf(":");return r>=0&&"xmlns"!==(n=t.slice(0,r))&&(t=t.slice(r+1)),e.hasOwnProperty(n)?{space:e[n],local:t}:t}function i(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===n&&e.documentElement.namespaceURI===n?e.createElement(t):e.createElementNS(r,t)}}function o(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function u(t){var n=r(t);return(n.local?o:i)(n)}function s(){}function c(t){return null==t?s:function(){return this.querySelector(t)}}function l(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function a(){return[]}function f(t){return null==t?a:function(){return this.querySelectorAll(t)}}function h(t){return function(){return this.matches(t)}}function p(t){return function(n){return n.matches(t)}}var _=Array.prototype.find;function d(){return this.firstElementChild}var y=Array.prototype.filter;function m(){return Array.from(this.children)}function v(t){return new Array(t.length)}function g(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function w(t){return function(){return t}}function A(t,n,e,r,i,o){for(var u,s=0,c=n.length,l=o.length;s<l;++s)(u=n[s])?(u.__data__=o[s],r[s]=u):e[s]=new g(t,o[s]);for(;s<c;++s)(u=n[s])&&(i[s]=u)}function x(t,n,e,r,i,o,u){var s,c,l,a=new Map,f=n.length,h=o.length,p=new Array(f);for(s=0;s<f;++s)(c=n[s])&&(p[s]=l=u.call(c,c.__data__,s,n)+"",a.has(l)?i[s]=c:a.set(l,c));for(s=0;s<h;++s)l=u.call(t,o[s],s,o)+"",(c=a.get(l))?(r[s]=c,c.__data__=o[s],a.delete(l)):e[s]=new g(t,o[s]);for(s=0;s<f;++s)(c=n[s])&&a.get(p[s])===c&&(i[s]=c)}function b(t){return t.__data__}function S(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function E(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function N(t){return function(){this.removeAttribute(t)}}function C(t){return function(){this.removeAttributeNS(t.space,t.local)}}function L(t,n){return function(){this.setAttribute(t,n)}}function P(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function T(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function B(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function M(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function q(t){return function(){this.style.removeProperty(t)}}function D(t,n,e){return function(){this.style.setProperty(t,n,e)}}function O(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function V(t,n){return t.style.getPropertyValue(n)||M(t).getComputedStyle(t,null).getPropertyValue(n)}function j(t){return function(){delete this[t]}}function R(t,n){return function(){this[t]=n}}function H(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function I(t){return t.trim().split(/^|\s+/)}function U(t){return t.classList||new X(t)}function X(t){this._node=t,this._names=I(t.getAttribute("class")||"")}function G(t,n){for(var e=U(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function Y(t,n){for(var e=U(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function k(t){return function(){G(this,t)}}function z(t){return function(){Y(this,t)}}function F(t,n){return function(){(n.apply(this,arguments)?G:Y)(this,t)}}function J(){this.textContent=""}function K(t){return function(){this.textContent=t}}function Q(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function W(){this.innerHTML=""}function Z(t){return function(){this.innerHTML=t}}function $(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function tt(){this.nextSibling&&this.parentNode.appendChild(this)}function nt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function et(){return null}function rt(){var t=this.parentNode;t&&t.removeChild(this)}function it(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function ot(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function ut(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function st(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function ct(t,n,e){return function(){var r,i=this.__on,o=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var u=0,s=i.length;u<s;++u)if((r=i[u]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function lt(t,n,e){var r=M(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function at(t,n){return function(){return lt(this,t,n)}}function ft(t,n){return function(){return lt(this,t,n.apply(this,arguments))}}g.prototype={constructor:g,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},X.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ht=[null];function pt(t,n){this._groups=t,this._parents=n}function _t(){return new pt([[document.documentElement]],ht)}function dt(t){return"string"==typeof t?new pt([[document.querySelector(t)]],[document.documentElement]):new pt([[t]],ht)}pt.prototype=_t.prototype={constructor:pt,select:function(t){"function"!=typeof t&&(t=c(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,s=n[i],l=s.length,a=r[i]=new Array(l),f=0;f<l;++f)(o=s[f])&&(u=t.call(o,o.__data__,f,s))&&("__data__"in o&&(u.__data__=o.__data__),a[f]=u);return new pt(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return l(t.apply(this,arguments))}}(t):f(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,s=n[o],c=s.length,a=0;a<c;++a)(u=s[a])&&(r.push(t.call(u,u.__data__,a,s)),i.push(u));return new pt(r,i)},selectChild:function(t){return this.select(null==t?d:function(t){return function(){return _.call(this.children,t)}}("function"==typeof t?t:p(t)))},selectChildren:function(t){return this.selectAll(null==t?m:function(t){return function(){return y.call(this.children,t)}}("function"==typeof t?t:p(t)))},filter:function(t){"function"!=typeof t&&(t=h(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],s=u.length,c=r[i]=[],l=0;l<s;++l)(o=u[l])&&t.call(o,o.__data__,l,u)&&c.push(o);return new pt(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,b);var e=n?x:A,r=this._parents,i=this._groups;"function"!=typeof t&&(t=w(t));for(var o=i.length,u=new Array(o),s=new Array(o),c=new Array(o),l=0;l<o;++l){var a=r[l],f=i[l],h=f.length,p=S(t.call(a,a&&a.__data__,l,r)),_=p.length,d=s[l]=new Array(_),y=u[l]=new Array(_),m=c[l]=new Array(h);e(a,f,d,y,m,p,n);for(var v,g,E=0,N=0;E<_;++E)if(v=d[E]){for(E>=N&&(N=E+1);!(g=y[N])&&++N<_;);v._next=g||null}}return(u=new pt(u,r))._enter=s,u._exit=c,u},enter:function(){return new pt(this._enter||this._groups.map(v),this._parents)},exit:function(){return new pt(this._exit||this._groups.map(v),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,u=Math.min(i,o),s=new Array(i),c=0;c<u;++c)for(var l,a=e[c],f=r[c],h=a.length,p=s[c]=new Array(h),_=0;_<h;++_)(l=a[_]||f[_])&&(p[_]=l);for(;c<i;++c)s[c]=e[c];return new pt(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&4^r.compareDocumentPosition(u)&&u.parentNode.insertBefore(r,u),u=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=E);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,s=e[o],c=s.length,l=i[o]=new Array(c),a=0;a<c;++a)(u=s[a])&&(l[a]=u);l.sort(n)}return new pt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},size:function(){let t=0;for(const n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,s=o.length;u<s;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},attr:function(t,n){var e=r(t);if(arguments.length<2){var i=this.node();return e.local?i.getAttributeNS(e.space,e.local):i.getAttribute(e)}return this.each((null==n?e.local?C:N:"function"==typeof n?e.local?B:T:e.local?P:L)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?q:"function"==typeof n?O:D)(t,n,null==e?"":e)):V(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?j:"function"==typeof n?H:R)(t,n)):this.node()[t]},classed:function(t,n){var e=I(t+"");if(arguments.length<2){for(var r=U(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?F:n?k:z)(e,n))},text:function(t){return arguments.length?this.each(null==t?J:("function"==typeof t?Q:K)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?W:("function"==typeof t?$:Z)(t)):this.node().innerHTML},raise:function(){return this.each(tt)},lower:function(){return this.each(nt)},append:function(t){var n="function"==typeof t?t:u(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:u(t),r=null==n?et:"function"==typeof n?n:c(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(rt)},clone:function(t){return this.select(t?ot:it)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=ut(t+""),u=o.length;if(!(arguments.length<2)){for(s=n?ct:st,r=0;r<u;++r)this.each(s(o[r],n,e));return this}var s=this.node().__on;if(s)for(var c,l=0,a=s.length;l<a;++l)for(r=0,c=s[l];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,n){return this.each(("function"==typeof n?ft:at)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,u=i.length;o<u;++o)(r=i[o])&&(yield r)}};var yt=0;function mt(){return new vt}function vt(){this._="@"+(++yt).toString(36)}function gt(t){let n;for(;n=t.sourceEvent;)t=n;return t}function wt(t,n){if(t=gt(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}vt.prototype=mt.prototype={constructor:vt,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},t.create=function(t){return dt(u(t).call(document.documentElement))},t.creator=u,t.local=mt,t.matcher=h,t.namespace=r,t.namespaces=e,t.pointer=wt,t.pointers=function(t,n){return t.target&&(t=gt(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>wt(t,n)))},t.select=dt,t.selectAll=function(t){return"string"==typeof t?new pt([document.querySelectorAll(t)],[document.documentElement]):new pt([l(t)],ht)},t.selection=_t,t.selector=c,t.selectorAll=f,t.style=V,t.window=M,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-selection/package.json
===================================================================
--- node_modules/d3-selection/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-{
-  "name": "d3-selection",
-  "version": "3.0.0",
-  "description": "Data-driven DOM manipulation: select elements and join them to data.",
-  "homepage": "https://d3js.org/d3-selection/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-selection.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "dom",
-    "selection",
-    "data-join"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-selection.min.js",
-  "unpkg": "dist/d3-selection.min.js",
-  "exports": {
-    "umd": "./dist/d3-selection.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "7",
-    "jsdom": "16",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-selection/src/array.js
===================================================================
--- node_modules/d3-selection/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// Given something array like (or null), returns something that is strictly an
-// array. This is used to ensure that array-like objects passed to d3.selectAll
-// or selection.selectAll are converted into proper arrays when creating a
-// selection; we don’t ever want to create a selection backed by a live
-// HTMLCollection or NodeList. However, note that selection.selectAll will use a
-// static NodeList as a group, since it safely derived from querySelectorAll.
-export default function array(x) {
-  return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
-}
Index: de_modules/d3-selection/src/constant.js
===================================================================
--- node_modules/d3-selection/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function() {
-    return x;
-  };
-}
Index: de_modules/d3-selection/src/create.js
===================================================================
--- node_modules/d3-selection/src/create.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import creator from "./creator.js";
-import select from "./select.js";
-
-export default function(name) {
-  return select(creator(name).call(document.documentElement));
-}
Index: de_modules/d3-selection/src/creator.js
===================================================================
--- node_modules/d3-selection/src/creator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import namespace from "./namespace.js";
-import {xhtml} from "./namespaces.js";
-
-function creatorInherit(name) {
-  return function() {
-    var document = this.ownerDocument,
-        uri = this.namespaceURI;
-    return uri === xhtml && document.documentElement.namespaceURI === xhtml
-        ? document.createElement(name)
-        : document.createElementNS(uri, name);
-  };
-}
-
-function creatorFixed(fullname) {
-  return function() {
-    return this.ownerDocument.createElementNS(fullname.space, fullname.local);
-  };
-}
-
-export default function(name) {
-  var fullname = namespace(name);
-  return (fullname.local
-      ? creatorFixed
-      : creatorInherit)(fullname);
-}
Index: de_modules/d3-selection/src/identity.js
===================================================================
--- node_modules/d3-selection/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x) {
-  return x;
-}
Index: de_modules/d3-selection/src/index.js
===================================================================
--- node_modules/d3-selection/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export {default as create} from "./create.js";
-export {default as creator} from "./creator.js";
-export {default as local} from "./local.js";
-export {default as matcher} from "./matcher.js";
-export {default as namespace} from "./namespace.js";
-export {default as namespaces} from "./namespaces.js";
-export {default as pointer} from "./pointer.js";
-export {default as pointers} from "./pointers.js";
-export {default as select} from "./select.js";
-export {default as selectAll} from "./selectAll.js";
-export {default as selection} from "./selection/index.js";
-export {default as selector} from "./selector.js";
-export {default as selectorAll} from "./selectorAll.js";
-export {styleValue as style} from "./selection/style.js";
-export {default as window} from "./window.js";
Index: de_modules/d3-selection/src/local.js
===================================================================
--- node_modules/d3-selection/src/local.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-var nextId = 0;
-
-export default function local() {
-  return new Local;
-}
-
-function Local() {
-  this._ = "@" + (++nextId).toString(36);
-}
-
-Local.prototype = local.prototype = {
-  constructor: Local,
-  get: function(node) {
-    var id = this._;
-    while (!(id in node)) if (!(node = node.parentNode)) return;
-    return node[id];
-  },
-  set: function(node, value) {
-    return node[this._] = value;
-  },
-  remove: function(node) {
-    return this._ in node && delete node[this._];
-  },
-  toString: function() {
-    return this._;
-  }
-};
Index: de_modules/d3-selection/src/matcher.js
===================================================================
--- node_modules/d3-selection/src/matcher.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export default function(selector) {
-  return function() {
-    return this.matches(selector);
-  };
-}
-
-export function childMatcher(selector) {
-  return function(node) {
-    return node.matches(selector);
-  };
-}
-
Index: de_modules/d3-selection/src/namespace.js
===================================================================
--- node_modules/d3-selection/src/namespace.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import namespaces from "./namespaces.js";
-
-export default function(name) {
-  var prefix = name += "", i = prefix.indexOf(":");
-  if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
-  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
-}
Index: de_modules/d3-selection/src/namespaces.js
===================================================================
--- node_modules/d3-selection/src/namespaces.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export var xhtml = "http://www.w3.org/1999/xhtml";
-
-export default {
-  svg: "http://www.w3.org/2000/svg",
-  xhtml: xhtml,
-  xlink: "http://www.w3.org/1999/xlink",
-  xml: "http://www.w3.org/XML/1998/namespace",
-  xmlns: "http://www.w3.org/2000/xmlns/"
-};
Index: de_modules/d3-selection/src/pointer.js
===================================================================
--- node_modules/d3-selection/src/pointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import sourceEvent from "./sourceEvent.js";
-
-export default function(event, node) {
-  event = sourceEvent(event);
-  if (node === undefined) node = event.currentTarget;
-  if (node) {
-    var svg = node.ownerSVGElement || node;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      point.x = event.clientX, point.y = event.clientY;
-      point = point.matrixTransform(node.getScreenCTM().inverse());
-      return [point.x, point.y];
-    }
-    if (node.getBoundingClientRect) {
-      var rect = node.getBoundingClientRect();
-      return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
-    }
-  }
-  return [event.pageX, event.pageY];
-}
Index: de_modules/d3-selection/src/pointers.js
===================================================================
--- node_modules/d3-selection/src/pointers.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import pointer from "./pointer.js";
-import sourceEvent from "./sourceEvent.js";
-
-export default function(events, node) {
-  if (events.target) { // i.e., instanceof Event, not TouchList or iterable
-    events = sourceEvent(events);
-    if (node === undefined) node = events.currentTarget;
-    events = events.touches || [events];
-  }
-  return Array.from(events, event => pointer(event, node));
-}
Index: de_modules/d3-selection/src/select.js
===================================================================
--- node_modules/d3-selection/src/select.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import {Selection, root} from "./selection/index.js";
-
-export default function(selector) {
-  return typeof selector === "string"
-      ? new Selection([[document.querySelector(selector)]], [document.documentElement])
-      : new Selection([[selector]], root);
-}
Index: de_modules/d3-selection/src/selectAll.js
===================================================================
--- node_modules/d3-selection/src/selectAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import array from "./array.js";
-import {Selection, root} from "./selection/index.js";
-
-export default function(selector) {
-  return typeof selector === "string"
-      ? new Selection([document.querySelectorAll(selector)], [document.documentElement])
-      : new Selection([array(selector)], root);
-}
Index: de_modules/d3-selection/src/selection/append.js
===================================================================
--- node_modules/d3-selection/src/selection/append.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import creator from "../creator.js";
-
-export default function(name) {
-  var create = typeof name === "function" ? name : creator(name);
-  return this.select(function() {
-    return this.appendChild(create.apply(this, arguments));
-  });
-}
Index: de_modules/d3-selection/src/selection/attr.js
===================================================================
--- node_modules/d3-selection/src/selection/attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-import namespace from "../namespace.js";
-
-function attrRemove(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant(name, value) {
-  return function() {
-    this.setAttribute(name, value);
-  };
-}
-
-function attrConstantNS(fullname, value) {
-  return function() {
-    this.setAttributeNS(fullname.space, fullname.local, value);
-  };
-}
-
-function attrFunction(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttribute(name);
-    else this.setAttribute(name, v);
-  };
-}
-
-function attrFunctionNS(fullname, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
-    else this.setAttributeNS(fullname.space, fullname.local, v);
-  };
-}
-
-export default function(name, value) {
-  var fullname = namespace(name);
-
-  if (arguments.length < 2) {
-    var node = this.node();
-    return fullname.local
-        ? node.getAttributeNS(fullname.space, fullname.local)
-        : node.getAttribute(fullname);
-  }
-
-  return this.each((value == null
-      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
-      ? (fullname.local ? attrFunctionNS : attrFunction)
-      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
-}
Index: de_modules/d3-selection/src/selection/call.js
===================================================================
--- node_modules/d3-selection/src/selection/call.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export default function() {
-  var callback = arguments[0];
-  arguments[0] = this;
-  callback.apply(null, arguments);
-  return this;
-}
Index: de_modules/d3-selection/src/selection/classed.js
===================================================================
--- node_modules/d3-selection/src/selection/classed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-function classArray(string) {
-  return string.trim().split(/^|\s+/);
-}
-
-function classList(node) {
-  return node.classList || new ClassList(node);
-}
-
-function ClassList(node) {
-  this._node = node;
-  this._names = classArray(node.getAttribute("class") || "");
-}
-
-ClassList.prototype = {
-  add: function(name) {
-    var i = this._names.indexOf(name);
-    if (i < 0) {
-      this._names.push(name);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  remove: function(name) {
-    var i = this._names.indexOf(name);
-    if (i >= 0) {
-      this._names.splice(i, 1);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  contains: function(name) {
-    return this._names.indexOf(name) >= 0;
-  }
-};
-
-function classedAdd(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.add(names[i]);
-}
-
-function classedRemove(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.remove(names[i]);
-}
-
-function classedTrue(names) {
-  return function() {
-    classedAdd(this, names);
-  };
-}
-
-function classedFalse(names) {
-  return function() {
-    classedRemove(this, names);
-  };
-}
-
-function classedFunction(names, value) {
-  return function() {
-    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
-  };
-}
-
-export default function(name, value) {
-  var names = classArray(name + "");
-
-  if (arguments.length < 2) {
-    var list = classList(this.node()), i = -1, n = names.length;
-    while (++i < n) if (!list.contains(names[i])) return false;
-    return true;
-  }
-
-  return this.each((typeof value === "function"
-      ? classedFunction : value
-      ? classedTrue
-      : classedFalse)(names, value));
-}
Index: de_modules/d3-selection/src/selection/clone.js
===================================================================
--- node_modules/d3-selection/src/selection/clone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function selection_cloneShallow() {
-  var clone = this.cloneNode(false), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-function selection_cloneDeep() {
-  var clone = this.cloneNode(true), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-export default function(deep) {
-  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
-}
Index: de_modules/d3-selection/src/selection/data.js
===================================================================
--- node_modules/d3-selection/src/selection/data.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,128 +1,0 @@
-import {Selection} from "./index.js";
-import {EnterNode} from "./enter.js";
-import constant from "../constant.js";
-
-function bindIndex(parent, group, enter, update, exit, data) {
-  var i = 0,
-      node,
-      groupLength = group.length,
-      dataLength = data.length;
-
-  // Put any non-null nodes that fit into update.
-  // Put any null nodes into enter.
-  // Put any remaining data into enter.
-  for (; i < dataLength; ++i) {
-    if (node = group[i]) {
-      node.__data__ = data[i];
-      update[i] = node;
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Put any non-null nodes that don’t fit into exit.
-  for (; i < groupLength; ++i) {
-    if (node = group[i]) {
-      exit[i] = node;
-    }
-  }
-}
-
-function bindKey(parent, group, enter, update, exit, data, key) {
-  var i,
-      node,
-      nodeByKeyValue = new Map,
-      groupLength = group.length,
-      dataLength = data.length,
-      keyValues = new Array(groupLength),
-      keyValue;
-
-  // Compute the key for each node.
-  // If multiple nodes have the same key, the duplicates are added to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if (node = group[i]) {
-      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
-      if (nodeByKeyValue.has(keyValue)) {
-        exit[i] = node;
-      } else {
-        nodeByKeyValue.set(keyValue, node);
-      }
-    }
-  }
-
-  // Compute the key for each datum.
-  // If there a node associated with this key, join and add it to update.
-  // If there is not (or the key is a duplicate), add it to enter.
-  for (i = 0; i < dataLength; ++i) {
-    keyValue = key.call(parent, data[i], i, data) + "";
-    if (node = nodeByKeyValue.get(keyValue)) {
-      update[i] = node;
-      node.__data__ = data[i];
-      nodeByKeyValue.delete(keyValue);
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Add any remaining nodes that were not bound to data to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
-      exit[i] = node;
-    }
-  }
-}
-
-function datum(node) {
-  return node.__data__;
-}
-
-export default function(value, key) {
-  if (!arguments.length) return Array.from(this, datum);
-
-  var bind = key ? bindKey : bindIndex,
-      parents = this._parents,
-      groups = this._groups;
-
-  if (typeof value !== "function") value = constant(value);
-
-  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
-    var parent = parents[j],
-        group = groups[j],
-        groupLength = group.length,
-        data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),
-        dataLength = data.length,
-        enterGroup = enter[j] = new Array(dataLength),
-        updateGroup = update[j] = new Array(dataLength),
-        exitGroup = exit[j] = new Array(groupLength);
-
-    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
-
-    // Now connect the enter nodes to their following update node, such that
-    // appendChild can insert the materialized enter node before this node,
-    // rather than at the end of the parent node.
-    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
-      if (previous = enterGroup[i0]) {
-        if (i0 >= i1) i1 = i0 + 1;
-        while (!(next = updateGroup[i1]) && ++i1 < dataLength);
-        previous._next = next || null;
-      }
-    }
-  }
-
-  update = new Selection(update, parents);
-  update._enter = enter;
-  update._exit = exit;
-  return update;
-}
-
-// Given some data, this returns an array-like view of it: an object that
-// exposes a length property and allows numeric indexing. Note that unlike
-// selectAll, this isn’t worried about “live” collections because the resulting
-// array will only be used briefly while data is being bound. (It is possible to
-// cause the data to change while iterating by using a key function, but please
-// don’t; we’d rather avoid a gratuitous copy.)
-function arraylike(data) {
-  return typeof data === "object" && "length" in data
-    ? data // Array, TypedArray, NodeList, array-like
-    : Array.from(data); // Map, Set, iterable, string, or anything else
-}
Index: de_modules/d3-selection/src/selection/datum.js
===================================================================
--- node_modules/d3-selection/src/selection/datum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(value) {
-  return arguments.length
-      ? this.property("__data__", value)
-      : this.node().__data__;
-}
Index: de_modules/d3-selection/src/selection/dispatch.js
===================================================================
--- node_modules/d3-selection/src/selection/dispatch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import defaultView from "../window.js";
-
-function dispatchEvent(node, type, params) {
-  var window = defaultView(node),
-      event = window.CustomEvent;
-
-  if (typeof event === "function") {
-    event = new event(type, params);
-  } else {
-    event = window.document.createEvent("Event");
-    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
-    else event.initEvent(type, false, false);
-  }
-
-  node.dispatchEvent(event);
-}
-
-function dispatchConstant(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params);
-  };
-}
-
-function dispatchFunction(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params.apply(this, arguments));
-  };
-}
-
-export default function(type, params) {
-  return this.each((typeof params === "function"
-      ? dispatchFunction
-      : dispatchConstant)(type, params));
-}
Index: de_modules/d3-selection/src/selection/each.js
===================================================================
--- node_modules/d3-selection/src/selection/each.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export default function(callback) {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) callback.call(node, node.__data__, i, group);
-    }
-  }
-
-  return this;
-}
Index: de_modules/d3-selection/src/selection/empty.js
===================================================================
--- node_modules/d3-selection/src/selection/empty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function() {
-  return !this.node();
-}
Index: de_modules/d3-selection/src/selection/enter.js
===================================================================
--- node_modules/d3-selection/src/selection/enter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import sparse from "./sparse.js";
-import {Selection} from "./index.js";
-
-export default function() {
-  return new Selection(this._enter || this._groups.map(sparse), this._parents);
-}
-
-export function EnterNode(parent, datum) {
-  this.ownerDocument = parent.ownerDocument;
-  this.namespaceURI = parent.namespaceURI;
-  this._next = null;
-  this._parent = parent;
-  this.__data__ = datum;
-}
-
-EnterNode.prototype = {
-  constructor: EnterNode,
-  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
-  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
-  querySelector: function(selector) { return this._parent.querySelector(selector); },
-  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
-};
Index: de_modules/d3-selection/src/selection/exit.js
===================================================================
--- node_modules/d3-selection/src/selection/exit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import sparse from "./sparse.js";
-import {Selection} from "./index.js";
-
-export default function() {
-  return new Selection(this._exit || this._groups.map(sparse), this._parents);
-}
Index: de_modules/d3-selection/src/selection/filter.js
===================================================================
--- node_modules/d3-selection/src/selection/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {Selection} from "./index.js";
-import matcher from "../matcher.js";
-
-export default function(match) {
-  if (typeof match !== "function") match = matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Selection(subgroups, this._parents);
-}
Index: de_modules/d3-selection/src/selection/html.js
===================================================================
--- node_modules/d3-selection/src/selection/html.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-function htmlRemove() {
-  this.innerHTML = "";
-}
-
-function htmlConstant(value) {
-  return function() {
-    this.innerHTML = value;
-  };
-}
-
-function htmlFunction(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.innerHTML = v == null ? "" : v;
-  };
-}
-
-export default function(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? htmlRemove : (typeof value === "function"
-          ? htmlFunction
-          : htmlConstant)(value))
-      : this.node().innerHTML;
-}
Index: de_modules/d3-selection/src/selection/index.js
===================================================================
--- node_modules/d3-selection/src/selection/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-import selection_select from "./select.js";
-import selection_selectAll from "./selectAll.js";
-import selection_selectChild from "./selectChild.js";
-import selection_selectChildren from "./selectChildren.js";
-import selection_filter from "./filter.js";
-import selection_data from "./data.js";
-import selection_enter from "./enter.js";
-import selection_exit from "./exit.js";
-import selection_join from "./join.js";
-import selection_merge from "./merge.js";
-import selection_order from "./order.js";
-import selection_sort from "./sort.js";
-import selection_call from "./call.js";
-import selection_nodes from "./nodes.js";
-import selection_node from "./node.js";
-import selection_size from "./size.js";
-import selection_empty from "./empty.js";
-import selection_each from "./each.js";
-import selection_attr from "./attr.js";
-import selection_style from "./style.js";
-import selection_property from "./property.js";
-import selection_classed from "./classed.js";
-import selection_text from "./text.js";
-import selection_html from "./html.js";
-import selection_raise from "./raise.js";
-import selection_lower from "./lower.js";
-import selection_append from "./append.js";
-import selection_insert from "./insert.js";
-import selection_remove from "./remove.js";
-import selection_clone from "./clone.js";
-import selection_datum from "./datum.js";
-import selection_on from "./on.js";
-import selection_dispatch from "./dispatch.js";
-import selection_iterator from "./iterator.js";
-
-export var root = [null];
-
-export function Selection(groups, parents) {
-  this._groups = groups;
-  this._parents = parents;
-}
-
-function selection() {
-  return new Selection([[document.documentElement]], root);
-}
-
-function selection_selection() {
-  return this;
-}
-
-Selection.prototype = selection.prototype = {
-  constructor: Selection,
-  select: selection_select,
-  selectAll: selection_selectAll,
-  selectChild: selection_selectChild,
-  selectChildren: selection_selectChildren,
-  filter: selection_filter,
-  data: selection_data,
-  enter: selection_enter,
-  exit: selection_exit,
-  join: selection_join,
-  merge: selection_merge,
-  selection: selection_selection,
-  order: selection_order,
-  sort: selection_sort,
-  call: selection_call,
-  nodes: selection_nodes,
-  node: selection_node,
-  size: selection_size,
-  empty: selection_empty,
-  each: selection_each,
-  attr: selection_attr,
-  style: selection_style,
-  property: selection_property,
-  classed: selection_classed,
-  text: selection_text,
-  html: selection_html,
-  raise: selection_raise,
-  lower: selection_lower,
-  append: selection_append,
-  insert: selection_insert,
-  remove: selection_remove,
-  clone: selection_clone,
-  datum: selection_datum,
-  on: selection_on,
-  dispatch: selection_dispatch,
-  [Symbol.iterator]: selection_iterator
-};
-
-export default selection;
Index: de_modules/d3-selection/src/selection/insert.js
===================================================================
--- node_modules/d3-selection/src/selection/insert.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import creator from "../creator.js";
-import selector from "../selector.js";
-
-function constantNull() {
-  return null;
-}
-
-export default function(name, before) {
-  var create = typeof name === "function" ? name : creator(name),
-      select = before == null ? constantNull : typeof before === "function" ? before : selector(before);
-  return this.select(function() {
-    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
-  });
-}
Index: de_modules/d3-selection/src/selection/iterator.js
===================================================================
--- node_modules/d3-selection/src/selection/iterator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export default function*() {
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) yield node;
-    }
-  }
-}
Index: de_modules/d3-selection/src/selection/join.js
===================================================================
--- node_modules/d3-selection/src/selection/join.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export default function(onenter, onupdate, onexit) {
-  var enter = this.enter(), update = this, exit = this.exit();
-  if (typeof onenter === "function") {
-    enter = onenter(enter);
-    if (enter) enter = enter.selection();
-  } else {
-    enter = enter.append(onenter + "");
-  }
-  if (onupdate != null) {
-    update = onupdate(update);
-    if (update) update = update.selection();
-  }
-  if (onexit == null) exit.remove(); else onexit(exit);
-  return enter && update ? enter.merge(update).order() : update;
-}
Index: de_modules/d3-selection/src/selection/lower.js
===================================================================
--- node_modules/d3-selection/src/selection/lower.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function lower() {
-  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
-}
-
-export default function() {
-  return this.each(lower);
-}
Index: de_modules/d3-selection/src/selection/merge.js
===================================================================
--- node_modules/d3-selection/src/selection/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import {Selection} from "./index.js";
-
-export default function(context) {
-  var selection = context.selection ? context.selection() : context;
-
-  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Selection(merges, this._parents);
-}
Index: de_modules/d3-selection/src/selection/node.js
===================================================================
--- node_modules/d3-selection/src/selection/node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export default function() {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
-      var node = group[i];
-      if (node) return node;
-    }
-  }
-
-  return null;
-}
Index: de_modules/d3-selection/src/selection/nodes.js
===================================================================
--- node_modules/d3-selection/src/selection/nodes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function() {
-  return Array.from(this);
-}
Index: de_modules/d3-selection/src/selection/on.js
===================================================================
--- node_modules/d3-selection/src/selection/on.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-function contextListener(listener) {
-  return function(event) {
-    listener.call(this, event, this.__data__);
-  };
-}
-
-function parseTypenames(typenames) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    return {type: t, name: name};
-  });
-}
-
-function onRemove(typename) {
-  return function() {
-    var on = this.__on;
-    if (!on) return;
-    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
-      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-      } else {
-        on[++i] = o;
-      }
-    }
-    if (++i) on.length = i;
-    else delete this.__on;
-  };
-}
-
-function onAdd(typename, value, options) {
-  return function() {
-    var on = this.__on, o, listener = contextListener(value);
-    if (on) for (var j = 0, m = on.length; j < m; ++j) {
-      if ((o = on[j]).type === typename.type && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-        this.addEventListener(o.type, o.listener = listener, o.options = options);
-        o.value = value;
-        return;
-      }
-    }
-    this.addEventListener(typename.type, listener, options);
-    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};
-    if (!on) this.__on = [o];
-    else on.push(o);
-  };
-}
-
-export default function(typename, value, options) {
-  var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
-
-  if (arguments.length < 2) {
-    var on = this.node().__on;
-    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
-      for (i = 0, o = on[j]; i < n; ++i) {
-        if ((t = typenames[i]).type === o.type && t.name === o.name) {
-          return o.value;
-        }
-      }
-    }
-    return;
-  }
-
-  on = value ? onAdd : onRemove;
-  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
-  return this;
-}
Index: de_modules/d3-selection/src/selection/order.js
===================================================================
--- node_modules/d3-selection/src/selection/order.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export default function() {
-
-  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
-    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
-      if (node = group[i]) {
-        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
-        next = node;
-      }
-    }
-  }
-
-  return this;
-}
Index: de_modules/d3-selection/src/selection/property.js
===================================================================
--- node_modules/d3-selection/src/selection/property.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-function propertyRemove(name) {
-  return function() {
-    delete this[name];
-  };
-}
-
-function propertyConstant(name, value) {
-  return function() {
-    this[name] = value;
-  };
-}
-
-function propertyFunction(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) delete this[name];
-    else this[name] = v;
-  };
-}
-
-export default function(name, value) {
-  return arguments.length > 1
-      ? this.each((value == null
-          ? propertyRemove : typeof value === "function"
-          ? propertyFunction
-          : propertyConstant)(name, value))
-      : this.node()[name];
-}
Index: de_modules/d3-selection/src/selection/raise.js
===================================================================
--- node_modules/d3-selection/src/selection/raise.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function raise() {
-  if (this.nextSibling) this.parentNode.appendChild(this);
-}
-
-export default function() {
-  return this.each(raise);
-}
Index: de_modules/d3-selection/src/selection/remove.js
===================================================================
--- node_modules/d3-selection/src/selection/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function remove() {
-  var parent = this.parentNode;
-  if (parent) parent.removeChild(this);
-}
-
-export default function() {
-  return this.each(remove);
-}
Index: de_modules/d3-selection/src/selection/select.js
===================================================================
--- node_modules/d3-selection/src/selection/select.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {Selection} from "./index.js";
-import selector from "../selector.js";
-
-export default function(select) {
-  if (typeof select !== "function") select = selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-      }
-    }
-  }
-
-  return new Selection(subgroups, this._parents);
-}
Index: de_modules/d3-selection/src/selection/selectAll.js
===================================================================
--- node_modules/d3-selection/src/selection/selectAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import {Selection} from "./index.js";
-import array from "../array.js";
-import selectorAll from "../selectorAll.js";
-
-function arrayAll(select) {
-  return function() {
-    return array(select.apply(this, arguments));
-  };
-}
-
-export default function(select) {
-  if (typeof select === "function") select = arrayAll(select);
-  else select = selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        subgroups.push(select.call(node, node.__data__, i, group));
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Selection(subgroups, parents);
-}
Index: de_modules/d3-selection/src/selection/selectChild.js
===================================================================
--- node_modules/d3-selection/src/selection/selectChild.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import {childMatcher} from "../matcher.js";
-
-var find = Array.prototype.find;
-
-function childFind(match) {
-  return function() {
-    return find.call(this.children, match);
-  };
-}
-
-function childFirst() {
-  return this.firstElementChild;
-}
-
-export default function(match) {
-  return this.select(match == null ? childFirst
-      : childFind(typeof match === "function" ? match : childMatcher(match)));
-}
Index: de_modules/d3-selection/src/selection/selectChildren.js
===================================================================
--- node_modules/d3-selection/src/selection/selectChildren.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import {childMatcher} from "../matcher.js";
-
-var filter = Array.prototype.filter;
-
-function children() {
-  return Array.from(this.children);
-}
-
-function childrenFilter(match) {
-  return function() {
-    return filter.call(this.children, match);
-  };
-}
-
-export default function(match) {
-  return this.selectAll(match == null ? children
-      : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
-}
Index: de_modules/d3-selection/src/selection/size.js
===================================================================
--- node_modules/d3-selection/src/selection/size.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function() {
-  let size = 0;
-  for (const node of this) ++size; // eslint-disable-line no-unused-vars
-  return size;
-}
Index: de_modules/d3-selection/src/selection/sort.js
===================================================================
--- node_modules/d3-selection/src/selection/sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import {Selection} from "./index.js";
-
-export default function(compare) {
-  if (!compare) compare = ascending;
-
-  function compareNode(a, b) {
-    return a && b ? compare(a.__data__, b.__data__) : !a - !b;
-  }
-
-  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        sortgroup[i] = node;
-      }
-    }
-    sortgroup.sort(compareNode);
-  }
-
-  return new Selection(sortgroups, this._parents).order();
-}
-
-function ascending(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
Index: de_modules/d3-selection/src/selection/sparse.js
===================================================================
--- node_modules/d3-selection/src/selection/sparse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(update) {
-  return new Array(update.length);
-}
Index: de_modules/d3-selection/src/selection/style.js
===================================================================
--- node_modules/d3-selection/src/selection/style.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import defaultView from "../window.js";
-
-function styleRemove(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant(name, value, priority) {
-  return function() {
-    this.style.setProperty(name, value, priority);
-  };
-}
-
-function styleFunction(name, value, priority) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.style.removeProperty(name);
-    else this.style.setProperty(name, v, priority);
-  };
-}
-
-export default function(name, value, priority) {
-  return arguments.length > 1
-      ? this.each((value == null
-            ? styleRemove : typeof value === "function"
-            ? styleFunction
-            : styleConstant)(name, value, priority == null ? "" : priority))
-      : styleValue(this.node(), name);
-}
-
-export function styleValue(node, name) {
-  return node.style.getPropertyValue(name)
-      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);
-}
Index: de_modules/d3-selection/src/selection/text.js
===================================================================
--- node_modules/d3-selection/src/selection/text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-function textRemove() {
-  this.textContent = "";
-}
-
-function textConstant(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.textContent = v == null ? "" : v;
-  };
-}
-
-export default function(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? textRemove : (typeof value === "function"
-          ? textFunction
-          : textConstant)(value))
-      : this.node().textContent;
-}
Index: de_modules/d3-selection/src/selector.js
===================================================================
--- node_modules/d3-selection/src/selector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function none() {}
-
-export default function(selector) {
-  return selector == null ? none : function() {
-    return this.querySelector(selector);
-  };
-}
Index: de_modules/d3-selection/src/selectorAll.js
===================================================================
--- node_modules/d3-selection/src/selectorAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function empty() {
-  return [];
-}
-
-export default function(selector) {
-  return selector == null ? empty : function() {
-    return this.querySelectorAll(selector);
-  };
-}
Index: de_modules/d3-selection/src/sourceEvent.js
===================================================================
--- node_modules/d3-selection/src/sourceEvent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(event) {
-  let sourceEvent;
-  while (sourceEvent = event.sourceEvent) event = sourceEvent;
-  return event;
-}
Index: de_modules/d3-selection/src/window.js
===================================================================
--- node_modules/d3-selection/src/window.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(node) {
-  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
-      || (node.document && node) // node is a Window
-      || node.defaultView; // node is a Document
-}
Index: de_modules/d3-shape/LICENSE
===================================================================
--- node_modules/d3-shape/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-shape/README.md
===================================================================
--- node_modules/d3-shape/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1227 +1,0 @@
-# d3-shape
-
-Visualizations typically consist of discrete graphical marks, such as [symbols](#symbols), [arcs](#arcs), [lines](#lines) and [areas](#areas). While the rectangles of a bar chart may be easy enough to generate directly using [SVG](http://www.w3.org/TR/SVG/paths.html#PathData) or [Canvas](http://www.w3.org/TR/2dcontext/#canvaspathmethods), other shapes are complex, such as rounded annular sectors and centripetal Catmull–Rom splines. This module provides a variety of shape generators for your convenience.
-
-As with other aspects of D3, these shapes are driven by data: each shape generator exposes accessors that control how the input data are mapped to a visual representation. For example, you might define a line generator for a time series by [scaling](https://github.com/d3/d3-scale) fields of your data to fit the chart:
-
-```js
-const line = d3.line()
-    .x(d => x(d.date))
-    .y(d => y(d.value));
-```
-
-This line generator can then be used to compute the `d` attribute of an SVG path element:
-
-```js
-path.datum(data).attr("d", line);
-```
-
-Or you can use it to render to a Canvas 2D context:
-
-```js
-line.context(context)(data);
-```
-
-For more, read [Introducing d3-shape](https://medium.com/@mbostock/introducing-d3-shape-73f8367e6d12).
-
-## Installing
-
-If you use npm, `npm install d3-shape`. You can also download the [latest release on GitHub](https://github.com/d3/d3-shape/releases/latest). For vanilla HTML in modern browsers, import d3-shape from jsDelivr:
-
-```html
-<script type="module">
-
-import {line} from "https://cdn.jsdelivr.net/npm/d3-shape@3/+esm";
-
-const l = line();
-
-</script>
-```
-
-For legacy environments, you can load d3-shape’s UMD bundle; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-path@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-shape@3"></script>
-<script>
-
-const l = d3.line();
-
-</script>
-```
-
-## API Reference
-
-* [Arcs](#arcs)
-* [Pies](#pies)
-* [Lines](#lines)
-* [Areas](#areas)
-* [Curves](#curves)
-* [Custom Curves](#custom-curves)
-* [Links](#links)
-* [Symbols](#symbols)
-* [Custom Symbol Types](#custom-symbol-types)
-* [Stacks](#stacks)
-
-Note: all the methods that accept arrays also accept iterables and convert them to arrays internally.
-
-### Arcs
-
-[<img alt="Pie Chart" src="./img/pie.png" width="295" height="295">](https://observablehq.com/@d3/pie-chart)[<img alt="Donut Chart" src="./img/donut.png" width="295" height="295">](https://observablehq.com/@d3/donut-chart)
-
-The arc generator produces a [circular](https://en.wikipedia.org/wiki/Circular_sector) or [annular](https://en.wikipedia.org/wiki/Annulus_\(mathematics\)) sector, as in a pie or donut chart. If the absolute difference between the [start](#arc_startAngle) and [end](#arc_endAngle) angles (the *angular span*) is greater than [τ](https://en.wikipedia.org/wiki/Turn_\(geometry\)#Tau_proposal), the arc generator will produce a complete circle or annulus. If it is less than τ, the arc’s angular length will be equal to the absolute difference between the two angles (going clockwise if the signed difference is positive and anticlockwise if it is negative). If the absolute difference is less than τ, the arc may have [rounded corners](#arc_cornerRadius) and [angular padding](#arc_padAngle). Arcs are always centered at ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to move the arc to a different position.
-
-See also the [pie generator](#pies), which computes the necessary angles to represent an array of data as a pie or donut chart; these angles can then be passed to an arc generator.
-
-<a name="arc" href="#arc">#</a> d3.<b>arc</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-Constructs a new arc generator with the default settings.
-
-<a name="_arc" href="#_arc">#</a> <i>arc</i>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-Generates an arc for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the arc generator’s accessor functions along with the `this` object. For example, with the default settings, an object with radii and angles is expected:
-
-```js
-const arc = d3.arc();
-
-arc({
-  innerRadius: 0,
-  outerRadius: 100,
-  startAngle: 0,
-  endAngle: Math.PI / 2
-}); // "M0,-100A100,100,0,0,1,100,0L0,0Z"
-```
-
-If the radii and angles are instead defined as constants, you can generate an arc without any arguments:
-
-```js
-const arc = d3.arc()
-    .innerRadius(0)
-    .outerRadius(100)
-    .startAngle(0)
-    .endAngle(Math.PI / 2);
-
-arc(); // "M0,-100A100,100,0,0,1,100,0L0,0Z"
-```
-
-If the arc generator has a [context](#arc_context), then the arc is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="arc_centroid" href="#arc_centroid">#</a> <i>arc</i>.<b>centroid</b>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-Computes the midpoint [*x*, *y*] of the center line of the arc that would be [generated](#_arc) by the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the arc generator’s accessor functions along with the `this` object. To be consistent with the generated arc, the accessors must be deterministic, *i.e.*, return the same value given the same arguments. The midpoint is defined as ([startAngle](#arc_startAngle) + [endAngle](#arc_endAngle)) / 2 and ([innerRadius](#arc_innerRadius) + [outerRadius](#arc_outerRadius)) / 2. For example:
-
-[<img alt="Circular Sector Centroids" src="./img/centroid-circular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)[<img alt="Annular Sector Centroids" src="./img/centroid-annular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)
-
-Note that this is **not the geometric center** of the arc, which may be outside the arc; this method is merely a convenience for positioning labels.
-
-<a name="arc_innerRadius" href="#arc_innerRadius">#</a> <i>arc</i>.<b>innerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *radius* is specified, sets the inner radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current inner radius accessor, which defaults to:
-
-```js
-function innerRadius(d) {
-  return d.innerRadius;
-}
-```
-
-Specifying the inner radius as a function is useful for constructing a stacked polar bar chart, often in conjunction with a [sqrt scale](https://github.com/d3/d3-scale#sqrt). More commonly, a constant inner radius is used for a donut or pie chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped. A negative value is treated as zero.
-
-<a name="arc_outerRadius" href="#arc_outerRadius">#</a> <i>arc</i>.<b>outerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *radius* is specified, sets the outer radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current outer radius accessor, which defaults to:
-
-```js
-function outerRadius(d) {
-  return d.outerRadius;
-}
-```
-
-Specifying the outer radius as a function is useful for constructing a coxcomb or polar bar chart, often in conjunction with a [sqrt scale](https://github.com/d3/d3-scale#sqrt). More commonly, a constant outer radius is used for a pie or donut chart. If the outer radius is smaller than the inner radius, the inner and outer radii are swapped. A negative value is treated as zero.
-
-<a name="arc_cornerRadius" href="#arc_cornerRadius">#</a> <i>arc</i>.<b>cornerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *radius* is specified, sets the corner radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current corner radius accessor, which defaults to:
-
-```js
-function cornerRadius() {
-  return 0;
-}
-```
-
-If the corner radius is greater than zero, the corners of the arc are rounded using circles of the given radius. For a circular sector, the two outer corners are rounded; for an annular sector, all four corners are rounded. The corner circles are shown in this diagram:
-
-[<img alt="Rounded Circular Sectors" src="./img/rounded-circular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)[<img alt="Rounded Annular Sectors" src="./img/rounded-annular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)
-
-The corner radius may not be larger than ([outerRadius](#arc_outerRadius) - [innerRadius](#arc_innerRadius)) / 2. In addition, for arcs whose angular span is less than π, the corner radius may be reduced as two adjacent rounded corners intersect. This is occurs more often with the inner corners. See the [arc corners animation](https://observablehq.com/@d3/arc-corners) for illustration.
-
-<a name="arc_startAngle" href="#arc_startAngle">#</a> <i>arc</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *angle* is specified, sets the start angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:
-
-```js
-function startAngle(d) {
-  return d.startAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise. If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-
-<a name="arc_endAngle" href="#arc_endAngle">#</a> <i>arc</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *angle* is specified, sets the end angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:
-
-```js
-function endAngle(d) {
-  return d.endAngle;
-}
-```
-
-The *angle* is specified in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise. If |endAngle - startAngle| ≥ τ, a complete circle or annulus is generated rather than a sector.
-
-<a name="arc_padAngle" href="#arc_padAngle">#</a> <i>arc</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *angle* is specified, sets the pad angle to the specified function or number and returns this arc generator. If *angle* is not specified, returns the current pad angle accessor, which defaults to:
-
-```js
-function padAngle() {
-  return d && d.padAngle;
-}
-```
-
-The pad angle is converted to a fixed linear distance separating adjacent arcs, defined as [padRadius](#arc_padRadius) * padAngle. This distance is subtracted equally from the [start](#arc_startAngle) and [end](#arc_endAngle) of the arc. If the arc forms a complete circle or annulus, as when |endAngle - startAngle| ≥ τ, the pad angle is ignored.
-
-If the [inner radius](#arc_innerRadius) or angular span is small relative to the pad angle, it may not be possible to maintain parallel edges between adjacent arcs. In this case, the inner edge of the arc may collapse to a point, similar to a circular sector. For this reason, padding is typically only applied to annular sectors (*i.e.*, when innerRadius is positive), as shown in this diagram:
-
-[<img alt="Padded Circular Sectors" src="./img/padded-circular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)[<img alt="Padded Annular Sectors" src="./img/padded-annular-sector.png" width="250" height="250">](https://observablehq.com/@d3/pie-settings)
-
-The recommended minimum inner radius when using padding is outerRadius \* padAngle / sin(θ), where θ is the angular span of the smallest arc before padding. For example, if the outer radius is 200 pixels and the pad angle is 0.02 radians, a reasonable θ is 0.04 radians, and a reasonable inner radius is 100 pixels. See the [arc padding animation](https://observablehq.com/@d3/arc-pad-angle) for illustration.
-
-Often, the pad angle is not set directly on the arc generator, but is instead computed by the [pie generator](#pies) so as to ensure that the area of padded arcs is proportional to their value; see [*pie*.padAngle](#pie_padAngle). See the [pie padding animation](https://observablehq.com/@d3/arc-pad-angle) for illustration. If you apply a constant pad angle to the arc generator directly, it tends to subtract disproportionately from smaller arcs, introducing distortion.
-
-<a name="arc_padRadius" href="#arc_padRadius">#</a> <i>arc</i>.<b>padRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *radius* is specified, sets the pad radius to the specified function or number and returns this arc generator. If *radius* is not specified, returns the current pad radius accessor, which defaults to null, indicating that the pad radius should be automatically computed as sqrt([innerRadius](#arc_innerRadius) * innerRadius + [outerRadius](#arc_outerRadius) * outerRadius). The pad radius determines the fixed linear distance separating adjacent arcs, defined as padRadius * [padAngle](#arc_padAngle).
-
-<a name="arc_context" href="#arc_context">#</a> <i>arc</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *context* is specified, sets the context and returns this arc generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated arc](#_arc) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated arc is returned.
-
-<a name="arc_digits" href="#arc_digits">#</a> <i>arc</i>.<b>digits</b>([<i>digits</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/arc.js)
-
-If *digits* is specified, sets the maximum number of digits after the decimal separator and returns this arc generator. If *digits* is not specified, returns the current maximum fraction digits, which defaults to 3. This option only applies when the associated [*context*](#arc_context) is null, as when this arc generator is used to produce [path data](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-### Pies
-
-The pie generator does not produce a shape directly, but instead computes the necessary angles to represent a tabular dataset as a pie or donut chart; these angles can then be passed to an [arc generator](#arcs).
-
-<a name="pie" href="#pie">#</a> d3.<b>pie</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-Constructs a new pie generator with the default settings.
-
-<a name="_pie" href="#_pie">#</a> <i>pie</i>(<i>data</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-Generates a pie for the given array of *data*, returning an array of objects representing each datum’s arc angles. Any additional *arguments* are arbitrary; they are simply propagated to the pie generator’s accessor functions along with the `this` object. The length of the returned array is the same as *data*, and each element *i* in the returned array corresponds to the element *i* in the input data. Each object in the returned array has the following properties:
-
-* `data` - the input datum; the corresponding element in the input data array.
-* `value` - the numeric [value](#pie_value) of the arc.
-* `index` - the zero-based [sorted index](#pie_sort) of the arc.
-* `startAngle` - the [start angle](#pie_startAngle) of the arc.
-* `endAngle` - the [end angle](#pie_endAngle) of the arc.
-* `padAngle` - the [pad angle](#pie_padAngle) of the arc.
-
-This representation is designed to work with the arc generator’s default [startAngle](#arc_startAngle), [endAngle](#arc_endAngle) and [padAngle](#arc_padAngle) accessors. The angular units are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify angles in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-Given a small dataset of numbers, here is how to compute the arc angles to render this data as a pie chart:
-
-```js
-const data = [1, 1, 2, 3, 5, 8, 13, 21];
-const arcs = d3.pie()(data);
-```
-
-The first pair of parens, `pie()`, [constructs](#pie) a default pie generator. The second, `pie()(data)`, [invokes](#_pie) this generator on the dataset, returning an array of objects:
-
-```json
-[
-  {"data":  1, "value":  1, "index": 6, "startAngle": 6.050474740247008, "endAngle": 6.166830023713296, "padAngle": 0},
-  {"data":  1, "value":  1, "index": 7, "startAngle": 6.166830023713296, "endAngle": 6.283185307179584, "padAngle": 0},
-  {"data":  2, "value":  2, "index": 5, "startAngle": 5.817764173314431, "endAngle": 6.050474740247008, "padAngle": 0},
-  {"data":  3, "value":  3, "index": 4, "startAngle": 5.468698322915565, "endAngle": 5.817764173314431, "padAngle": 0},
-  {"data":  5, "value":  5, "index": 3, "startAngle": 4.886921905584122, "endAngle": 5.468698322915565, "padAngle": 0},
-  {"data":  8, "value":  8, "index": 2, "startAngle": 3.956079637853813, "endAngle": 4.886921905584122, "padAngle": 0},
-  {"data": 13, "value": 13, "index": 1, "startAngle": 2.443460952792061, "endAngle": 3.956079637853813, "padAngle": 0},
-  {"data": 21, "value": 21, "index": 0, "startAngle": 0.000000000000000, "endAngle": 2.443460952792061, "padAngle": 0}
-]
-```
-
-Note that the returned array is in the same order as the data, even though this pie chart is [sorted](#pie_sortValues) by descending value, starting with the arc for the last datum (value 21) at 12 o’clock.
-
-<a name="pie_value" href="#pie_value">#</a> <i>pie</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *value* is specified, sets the value accessor to the specified function or number and returns this pie generator. If *value* is not specified, returns the current value accessor, which defaults to:
-
-```js
-function value(d) {
-  return d;
-}
-```
-
-When a pie is [generated](#_pie), the value accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default value accessor assumes that the input data are numbers, or that they are coercible to numbers using [valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf). If your data are not simply numbers, then you should specify an accessor that returns the corresponding numeric value for a given datum. For example:
-
-```js
-const data = [
-  {"number":  4, "name": "Locke"},
-  {"number":  8, "name": "Reyes"},
-  {"number": 15, "name": "Ford"},
-  {"number": 16, "name": "Jarrah"},
-  {"number": 23, "name": "Shephard"},
-  {"number": 42, "name": "Kwon"}
-];
-
-const arcs = d3.pie()
-    .value(d => d.number)
-    (data);
-```
-
-This is similar to [mapping](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) your data to values before invoking the pie generator:
-
-```js
-const arcs = d3.pie()(data.map(d => d.number));
-```
-
-The benefit of an accessor is that the input data remains associated with the returned objects, thereby making it easier to access other fields of the data, for example to set the color or to add text labels.
-
-<a name="pie_sort" href="#pie_sort">#</a> <i>pie</i>.<b>sort</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *compare* is specified, sets the data comparator to the specified function and returns this pie generator. If *compare* is not specified, returns the current data comparator, which defaults to null. If both the data comparator and the value comparator are null, then arcs are positioned in the original input order. Otherwise, the data is sorted according to the data comparator, and the resulting order is used. Setting the data comparator implicitly sets the [value comparator](#pie_sortValues) to null.
-
-The *compare* function takes two arguments *a* and *b*, each elements from the input data array. If the arc for *a* should be before the arc for *b*, then the comparator must return a number less than zero; if the arc for *a* should be after the arc for *b*, then the comparator must return a number greater than zero; returning zero means that the relative order of *a* and *b* is unspecified. For example, to sort arcs by their associated name:
-
-```js
-pie.sort((a, b) => a.name.localeCompare(b.name));
-```
-
-Sorting does not affect the order of the [generated arc array](#_pie) which is always in the same order as the input data array; it merely affects the computed angles of each arc. The first arc starts at the [start angle](#pie_startAngle) and the last arc ends at the [end angle](#pie_endAngle).
-
-<a name="pie_sortValues" href="#pie_sortValues">#</a> <i>pie</i>.<b>sortValues</b>([<i>compare</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *compare* is specified, sets the value comparator to the specified function and returns this pie generator. If *compare* is not specified, returns the current value comparator, which defaults to descending value. The default value comparator is implemented as:
-
-```js
-function compare(a, b) {
-  return b - a;
-}
-```
-
-If both the data comparator and the value comparator are null, then arcs are positioned in the original input order. Otherwise, the data is sorted according to the data comparator, and the resulting order is used. Setting the value comparator implicitly sets the [data comparator](#pie_sort) to null.
-
-The value comparator is similar to the [data comparator](#pie_sort), except the two arguments *a* and *b* are values derived from the input data array using the [value accessor](#pie_value), not the data elements. If the arc for *a* should be before the arc for *b*, then the comparator must return a number less than zero; if the arc for *a* should be after the arc for *b*, then the comparator must return a number greater than zero; returning zero means that the relative order of *a* and *b* is unspecified. For example, to sort arcs by ascending value:
-
-```js
-pie.sortValues((a, b) => a - b);
-```
-
-Sorting does not affect the order of the [generated arc array](#_pie) which is always in the same order as the input data array; it merely affects the computed angles of each arc. The first arc starts at the [start angle](#pie_startAngle) and the last arc ends at the [end angle](#pie_endAngle).
-
-<a name="pie_startAngle" href="#pie_startAngle">#</a> <i>pie</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *angle* is specified, sets the overall start angle of the pie to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current start angle accessor, which defaults to:
-
-```js
-function startAngle() {
-  return 0;
-}
-```
-
-The start angle here means the *overall* start angle of the pie, *i.e.*, the start angle of the first arc. The start angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-<a name="pie_endAngle" href="#pie_endAngle">#</a> <i>pie</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *angle* is specified, sets the overall end angle of the pie to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current end angle accessor, which defaults to:
-
-```js
-function endAngle() {
-  return 2 * Math.PI;
-}
-```
-
-The end angle here means the *overall* end angle of the pie, *i.e.*, the end angle of the last arc. The end angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise.
-
-The value of the end angle is constrained to [startAngle](#pie_startAngle) ± τ, such that |endAngle - startAngle| ≤ τ.
-
-<a name="pie_padAngle" href="#pie_padAngle">#</a> <i>pie</i>.<b>padAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/pie.js)
-
-If *angle* is specified, sets the pad angle to the specified function or number and returns this pie generator. If *angle* is not specified, returns the current pad angle accessor, which defaults to:
-
-```js
-function padAngle() {
-  return 0;
-}
-```
-
-The pad angle here means the angular separation between each adjacent arc. The total amount of padding reserved is the specified *angle* times the number of elements in the input data array, and at most |endAngle - startAngle|; the remaining space is then divided proportionally by [value](#pie_value) such that the relative area of each arc is preserved. See the [pie padding animation](https://observablehq.com/@d3/arc-pad-angle) for illustration. The pad angle accessor is invoked once, being passed the same arguments and `this` context as the [pie generator](#_pie). The units of *angle* are arbitrary, but if you plan to use the pie generator in conjunction with an [arc generator](#arcs), you should specify an angle in radians.
-
-### Lines
-
-[<img width="295" height="154" alt="Line Chart" src="./img/line.png">](https://observablehq.com/@d3/line-chart)
-
-The line generator produces a [spline](https://en.wikipedia.org/wiki/Spline_\(mathematics\)) or [polyline](https://en.wikipedia.org/wiki/Polygonal_chain), as in a line chart. Lines also appear in many other visualization types, such as the links in [hierarchical edge bundling](https://observablehq.com/@d3/hierarchical-edge-bundling).
-
-<a name="line" href="#line">#</a> d3.<b>line</b>([<i>x</i>][, <i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-Constructs a new line generator with the default settings. If *x* or *y* are specified, sets the corresponding accessors to the specified function or number and returns this line generator.
-
-<a name="_line" href="#_line">#</a> <i>line</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-Generates a line for the given array of *data*. Depending on this line generator’s associated [curve](#line_curve), the given input *data* may need to be sorted by *x*-value before being passed to the line generator. If the line generator has a [context](#line_context), then the line is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="line_x" href="#line_x">#</a> <i>line</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *x* is specified, sets the x accessor to the specified function or number and returns this line generator. If *x* is not specified, returns the current x accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-When a line is [generated](#_line), the x accessor will be invoked for each [defined](#line_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default x accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor. For example, if `x` is a [time scale](https://github.com/d3/d3-scale#time-scales) and `y` is a [linear scale](https://github.com/d3/d3-scale#linear-scales):
-
-```js
-const data = [
-  {date: new Date(2007, 3, 24), value: 93.24},
-  {date: new Date(2007, 3, 25), value: 95.35},
-  {date: new Date(2007, 3, 26), value: 98.84},
-  {date: new Date(2007, 3, 27), value: 99.92},
-  {date: new Date(2007, 3, 30), value: 99.80},
-  {date: new Date(2007, 4,  1), value: 99.47},
-  …
-];
-
-const line = d3.line()
-    .x(d => x(d.date))
-    .y(d => y(d.value));
-```
-
-<a name="line_y" href="#line_y">#</a> <i>line</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *y* is specified, sets the y accessor to the specified function or number and returns this line generator. If *y* is not specified, returns the current y accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-When a line is [generated](#_line), the y accessor will be invoked for each [defined](#line_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default y accessor assumes that the input data are two-element arrays of numbers. See [*line*.x](#line_x) for more information.
-
-<a name="line_defined" href="#line_defined">#</a> <i>line</i>.<b>defined</b>([<i>defined</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *defined* is specified, sets the defined accessor to the specified function or boolean and returns this line generator. If *defined* is not specified, returns the current defined accessor, which defaults to:
-
-```js
-function defined() {
-  return true;
-}
-```
-
-The default accessor thus assumes that the input data is always defined. When a line is [generated](#_line), the defined accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. If the given element is defined (*i.e.*, if the defined accessor returns a truthy value for this element), the [x](#line_x) and [y](#line_y) accessors will subsequently be evaluated and the point will be added to the current line segment. Otherwise, the element will be skipped, the current line segment will be ended, and a new line segment will be generated for the next defined point. As a result, the generated line may have several discrete segments. For example:
-
-[<img src="./img/line-defined.png" width="480" height="250" alt="Line with Missing Data">](https://observablehq.com/@d3/line-with-missing-data)
-
-Note that if a line segment consists of only a single point, it may appear invisible unless rendered with rounded or square [line caps](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap). In addition, some curves such as [curveCardinalOpen](#curveCardinalOpen) only render a visible segment if it contains multiple points.
-
-<a name="line_curve" href="#line_curve">#</a> <i>line</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *curve* is specified, sets the [curve factory](#curves) and returns this line generator. If *curve* is not specified, returns the current curve factory, which defaults to [curveLinear](#curveLinear).
-
-<a name="line_context" href="#line_context">#</a> <i>line</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js), [Examples](https://observablehq.com/@d3/d3-line)
-
-If *context* is specified, sets the context and returns this line generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated line](#_line) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated line is returned.
-
-<a name="line_digits" href="#line_digits">#</a> <i>line</i>.<b>digits</b>([<i>digits</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/line.js)
-
-If *digits* is specified, sets the maximum number of digits after the decimal separator and returns this line generator. If *digits* is not specified, returns the current maximum fraction digits, which defaults to 3. This option only applies when the associated [*context*](#line_context) is null, as when this line generator is used to produce [path data](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-<a name="lineRadial" href="#lineRadial">#</a> d3.<b>lineRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/lineRadial.js), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-<img alt="Radial Line" width="250" height="250" src="./img/line-radial.png">
-
-Constructs a new radial line generator with the default settings. A radial line generator is equivalent to the standard Cartesian [line generator](#line), except the [x](#line_x) and [y](#line_y) accessors are replaced with [angle](#lineRadial_angle) and [radius](#lineRadial_radius) accessors. Radial lines are always positioned relative to ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to change the origin.
-
-<a name="_lineRadial" href="#_lineRadial">#</a> <i>lineRadial</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/lineRadial.js#L4), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*](#_line).
-
-<a name="lineRadial_angle" href="#lineRadial_angle">#</a> <i>lineRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/lineRadial.js#L7), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.x](#line_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="lineRadial_radius" href="#lineRadial_radius">#</a> <i>lineRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/lineRadial.js#L8), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.y](#line_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="lineRadial_defined" href="#lineRadial_defined">#</a> <i>lineRadial</i>.<b>defined</b>([<i>defined</i>])
-
-Equivalent to [*line*.defined](#line_defined).
-
-<a name="lineRadial_curve" href="#lineRadial_curve">#</a> <i>lineRadial</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/lineRadial.js), [Examples](https://observablehq.com/@d3/d3-lineradial)
-
-Equivalent to [*line*.curve](#line_curve). Note that [curveMonotoneX](#curveMonotoneX) or [curveMonotoneY](#curveMonotoneY) are not recommended for radial lines because they assume that the data is monotonic in *x* or *y*, which is typically untrue of radial lines.
-
-<a name="lineRadial_context" href="#lineRadial_context">#</a> <i>lineRadial</i>.<b>context</b>([<i>context</i>])
-
-Equivalent to [*line*.context](#line_context).
-
-### Areas
-
-[<img alt="Area Chart" width="295" height="154" src="./img/area.png">](https://observablehq.com/@d3/area-chart)[<img alt="Stacked Area Chart" width="295" height="154" src="./img/area-stacked.png">](https://observablehq.com/@d3/stacked-area-chart)[<img alt="Difference Chart" width="295" height="154" src="./img/area-difference.png">](https://observablehq.com/@d3/difference-chart)
-
-The area generator produces an area, as in an area chart. An area is defined by two bounding [lines](#lines), either splines or polylines. Typically, the two lines share the same [*x*-values](#area_x) ([x0](#area_x0) = [x1](#area_x1)), differing only in *y*-value ([y0](#area_y0) and [y1](#area_y1)); most commonly, y0 is defined as a constant representing [zero](http://www.vox.com/2015/11/19/9758062/y-axis-zero-chart). The first line (the <i>topline</i>) is defined by x1 and y1 and is rendered first; the second line (the <i>baseline</i>) is defined by x0 and y0 and is rendered second, with the points in reverse order. With a [curveLinear](#curveLinear) [curve](#area_curve), this produces a clockwise polygon.
-
-<a name="area" href="#area">#</a> d3.<b>area</b>([<i>x</i>][, <i>y0</i>][, <i>y1</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-Constructs a new area generator with the default settings. If *x*, *y0* or *y1* are specified, sets the corresponding accessors to the specified function or number and returns this area generator.
-
-<a name="_area" href="#_area">#</a> <i>area</i>(<i>data</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-Generates an area for the given array of *data*. Depending on this area generator’s associated [curve](#area_curve), the given input *data* may need to be sorted by *x*-value before being passed to the area generator. If the area generator has a [context](#line_context), then the area is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="area_x" href="#area_x">#</a> <i>area</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *x* is specified, sets [x0](#area_x0) to *x* and [x1](#area_x1) to null and returns this area generator. If *x* is not specified, returns the current x0 accessor.
-
-<a name="area_x0" href="#area_x0">#</a> <i>area</i>.<b>x0</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *x* is specified, sets the x0 accessor to the specified function or number and returns this area generator. If *x* is not specified, returns the current x0 accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-When an area is [generated](#_area), the x0 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. The default x0 accessor assumes that the input data are two-element arrays of numbers. If your data are in a different format, or if you wish to transform the data before rendering, then you should specify a custom accessor. For example, if `x` is a [time scale](https://github.com/d3/d3-scale#time-scales) and `y` is a [linear scale](https://github.com/d3/d3-scale#linear-scales):
-
-```js
-const data = [
-  {date: new Date(2007, 3, 24), value: 93.24},
-  {date: new Date(2007, 3, 25), value: 95.35},
-  {date: new Date(2007, 3, 26), value: 98.84},
-  {date: new Date(2007, 3, 27), value: 99.92},
-  {date: new Date(2007, 3, 30), value: 99.80},
-  {date: new Date(2007, 4,  1), value: 99.47},
-  …
-];
-
-const area = d3.area()
-    .x(d => x(d.date))
-    .y1(d => y(d.value))
-    .y0(y(0));
-```
-
-<a name="area_x1" href="#area_x1">#</a> <i>area</i>.<b>x1</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *x* is specified, sets the x1 accessor to the specified function or number and returns this area generator. If *x* is not specified, returns the current x1 accessor, which defaults to null, indicating that the previously-computed [x0](#area_x0) value should be reused for the x1 value.
-
-When an area is [generated](#_area), the x1 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_y" href="#area_y">#</a> <i>area</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *y* is specified, sets [y0](#area_y0) to *y* and [y1](#area_y1) to null and returns this area generator. If *y* is not specified, returns the current y0 accessor.
-
-<a name="area_y0" href="#area_y0">#</a> <i>area</i>.<b>y0</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *y* is specified, sets the y0 accessor to the specified function or number and returns this area generator. If *y* is not specified, returns the current y0 accessor, which defaults to:
-
-```js
-function y() {
-  return 0;
-}
-```
-
-When an area is [generated](#_area), the y0 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_y1" href="#area_y1">#</a> <i>area</i>.<b>y1</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *y* is specified, sets the y1 accessor to the specified function or number and returns this area generator. If *y* is not specified, returns the current y1 accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-A null accessor is also allowed, indicating that the previously-computed [y0](#area_y0) value should be reused for the y1 value. When an area is [generated](#_area), the y1 accessor will be invoked for each [defined](#area_defined) element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. See [*area*.x0](#area_x0) for more information.
-
-<a name="area_defined" href="#area_defined">#</a> <i>area</i>.<b>defined</b>([<i>defined</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *defined* is specified, sets the defined accessor to the specified function or boolean and returns this area generator. If *defined* is not specified, returns the current defined accessor, which defaults to:
-
-```js
-function defined() {
-  return true;
-}
-```
-
-The default accessor thus assumes that the input data is always defined. When an area is [generated](#_area), the defined accessor will be invoked for each element in the input data array, being passed the element `d`, the index `i`, and the array `data` as three arguments. If the given element is defined (*i.e.*, if the defined accessor returns a truthy value for this element), the [x0](#area_x0), [x1](#area_x1), [y0](#area_y0) and [y1](#area_y1) accessors will subsequently be evaluated and the point will be added to the current area segment. Otherwise, the element will be skipped, the current area segment will be ended, and a new area segment will be generated for the next defined point. As a result, the generated area may have several discrete segments. For example:
-
-[<img src="./img/area-defined.png" width="480" height="250" alt="Area with Missing Data">](https://observablehq.com/@d3/area-with-missing-data)
-
-Note that if an area segment consists of only a single point, it may appear invisible unless rendered with rounded or square [line caps](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap). In addition, some curves such as [curveCardinalOpen](#curveCardinalOpen) only render a visible segment if it contains multiple points.
-
-<a name="area_curve" href="#area_curve">#</a> <i>area</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *curve* is specified, sets the [curve factory](#curves) and returns this area generator. If *curve* is not specified, returns the current curve factory, which defaults to [curveLinear](#curveLinear).
-
-<a name="area_context" href="#area_context">#</a> <i>area</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *context* is specified, sets the context and returns this area generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated area](#_area) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated area is returned.
-
-<a name="area_digits" href="#area_digits">#</a> <i>area</i>.<b>digits</b>([<i>digits</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-If *digits* is specified, sets the maximum number of digits after the decimal separator and returns this area generator. If *digits* is not specified, returns the current maximum fraction digits, which defaults to 3. This option only applies when the associated [*context*](#area_context) is null, as when this area generator is used to produce [path data](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-<a name="area_lineX0" href="#area_lineX0">#</a> <i>area</i>.<b>lineX0</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-<br><a name="area_lineY0" href="#area_lineY0">#</a> <i>area</i>.<b>lineY0</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x0*-accessor](#area_x0), and the line’s [*y*-accessor](#line_y) is this area’s [*y0*-accessor](#area_y0).
-
-<a name="area_lineX1" href="#area_lineX1">#</a> <i>area</i>.<b>lineX1</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x1*-accessor](#area_x1), and the line’s [*y*-accessor](#line_y) is this area’s [*y0*-accessor](#area_y0).
-
-<a name="area_lineY1" href="#area_lineY1">#</a> <i>area</i>.<b>lineY1</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/area.js)
-
-Returns a new [line generator](#lines) that has this area generator’s current [defined accessor](#area_defined), [curve](#area_curve) and [context](#area_context). The line’s [*x*-accessor](#line_x) is this area’s [*x0*-accessor](#area_x0), and the line’s [*y*-accessor](#line_y) is this area’s [*y1*-accessor](#area_y1).
-
-<a name="areaRadial" href="#areaRadial">#</a> d3.<b>areaRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-<img alt="Radial Area" width="250" height="250" src="./img/area-radial.png">
-
-Constructs a new radial area generator with the default settings. A radial area generator is equivalent to the standard Cartesian [area generator](#area), except the [x](#area_x) and [y](#area_y) accessors are replaced with [angle](#areaRadial_angle) and [radius](#areaRadial_radius) accessors. Radial areas are always positioned relative to ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to change the origin.
-
-<a name="_areaRadial" href="#_areaRadial">#</a> <i>areaRadial</i>(<i>data</i>)
-
-Equivalent to [*area*](#_area).
-
-<a name="areaRadial_angle" href="#areaRadial_angle">#</a> <i>areaRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.x](#area_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="areaRadial_startAngle" href="#areaRadial_startAngle">#</a> <i>areaRadial</i>.<b>startAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.x0](#area_x0), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock). Note: typically [angle](#areaRadial_angle) is used instead of setting separate start and end angles.
-
-<a name="areaRadial_endAngle" href="#areaRadial_endAngle">#</a> <i>areaRadial</i>.<b>endAngle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.x1](#area_x1), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock). Note: typically [angle](#areaRadial_angle) is used instead of setting separate start and end angles.
-
-<a name="areaRadial_radius" href="#areaRadial_radius">#</a> <i>areaRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.y](#area_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_innerRadius" href="#areaRadial_innerRadius">#</a> <i>areaRadial</i>.<b>innerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.y0](#area_y0), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_outerRadius" href="#areaRadial_outerRadius">#</a> <i>areaRadial</i>.<b>outerRadius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.y1](#area_y1), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-<a name="areaRadial_defined" href="#areaRadial_defined">#</a> <i>areaRadial</i>.<b>defined</b>([<i>defined</i>])
-
-Equivalent to [*area*.defined](#area_defined).
-
-<a name="areaRadial_curve" href="#areaRadial_curve">#</a> <i>areaRadial</i>.<b>curve</b>([<i>curve</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Equivalent to [*area*.curve](#area_curve). Note that [curveMonotoneX](#curveMonotoneX) or [curveMonotoneY](#curveMonotoneY) are not recommended for radial areas because they assume that the data is monotonic in *x* or *y*, which is typically untrue of radial areas.
-
-<a name="areaRadial_context" href="#areaRadial_context">#</a> <i>areaRadial</i>.<b>context</b>([<i>context</i>])
-
-Equivalent to [*line*.context](#line_context).
-
-<a name="areaRadial_lineStartAngle" href="#areaRadial_lineStartAngle">#</a> <i>areaRadial</i>.<b>lineStartAngle</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-<br><a name="areaRadial_lineInnerRadius" href="#areaRadial_lineInnerRadius">#</a> <i>areaRadial</i>.<b>lineInnerRadius</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [start angle accessor](#areaRadial_startAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [inner radius accessor](#areaRadial_innerRadius).
-
-<a name="areaRadial_lineEndAngle" href="#areaRadial_lineEndAngle">#</a> <i>areaRadial</i>.<b>lineEndAngle</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [end angle accessor](#areaRadial_endAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [inner radius accessor](#areaRadial_innerRadius).
-
-<a name="areaRadial_lineOuterRadius" href="#areaRadial_lineOuterRadius">#</a> <i>areaRadial</i>.<b>lineOuterRadius</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/areaRadial.js)
-
-Returns a new [radial line generator](#lineRadial) that has this radial area generator’s current [defined accessor](#areaRadial_defined), [curve](#areaRadial_curve) and [context](#areaRadial_context). The line’s [angle accessor](#lineRadial_angle) is this area’s [start angle accessor](#areaRadial_startAngle), and the line’s [radius accessor](#lineRadial_radius) is this area’s [outer radius accessor](#areaRadial_outerRadius).
-
-### Curves
-
-While [lines](#lines) are defined as a sequence of two-dimensional [*x*, *y*] points, and [areas](#areas) are similarly defined by a topline and a baseline, there remains the task of transforming this discrete representation into a continuous shape: *i.e.*, how to interpolate between the points. A variety of curves are provided for this purpose.
-
-Curves are typically not constructed or used directly, instead being passed to [*line*.curve](#line_curve) and [*area*.curve](#area_curve). For example:
-
-```js
-const line = d3.line(d => d.date, d => d.value)
-    .curve(d3.curveCatmullRom.alpha(0.5));
-```
-
-<a name="curveBasis" href="#curveBasis">#</a> d3.<b>curveBasis</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/basis.js)
-
-<img src="./img/basis.png" width="888" height="240" alt="basis">
-
-Produces a cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. The first and last points are triplicated such that the spline starts at the first point and ends at the last point, and is tangent to the line between the first and second points, and to the line between the penultimate and last points.
-
-<a name="curveBasisClosed" href="#curveBasisClosed">#</a> d3.<b>curveBasisClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/basisClosed.js)
-
-<img src="./img/basisClosed.png" width="888" height="240" alt="basisClosed">
-
-Produces a closed cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. When a line segment ends, the first three control points are repeated, producing a closed loop with C2 continuity.
-
-<a name="curveBasisOpen" href="#curveBasisOpen">#</a> d3.<b>curveBasisOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/basisOpen.js)
-
-<img src="./img/basisOpen.png" width="888" height="240" alt="basisOpen">
-
-Produces a cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points. Unlike [basis](#basis), the first and last points are not repeated, and thus the curve typically does not intersect these points.
-
-<a name="curveBumpX" href="#curveBumpX">#</a> d3.<b>curveBumpX</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/bump.js)
-
-<img src="./img/bumpX.png" width="888" height="240" alt="bumpX">
-
-Produces a Bézier curve between each pair of points, with horizontal tangents at each point.
-
-<a name="curveBumpY" href="#curveBumpY">#</a> d3.<b>curveBumpY</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/bump.js)
-
-<img src="./img/bumpY.png" width="888" height="240" alt="bumpY">
-
-Produces a Bézier curve between each pair of points, with vertical tangents at each point.
-
-<a name="curveBundle" href="#curveBundle">#</a> d3.<b>curveBundle</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/bundle.js)
-
-<img src="./img/bundle.png" width="888" height="240" alt="bundle">
-
-Produces a straightened cubic [basis spline](https://en.wikipedia.org/wiki/B-spline) using the specified control points, with the spline straightened according to the curve’s [*beta*](#curveBundle_beta), which defaults to 0.85. This curve is typically used in [hierarchical edge bundling](https://observablehq.com/@d3/hierarchical-edge-bundling) to disambiguate connections, as proposed by [Danny Holten](https://www.win.tue.nl/vis1/home/dholten/) in [Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data](https://www.win.tue.nl/vis1/home/dholten/papers/bundles_infovis.pdf). This curve does not implement [*curve*.areaStart](#curve_areaStart) and [*curve*.areaEnd](#curve_areaEnd); it is intended to work with [d3.line](#lines), not [d3.area](#areas).
-
-<a name="curveBundle_beta" href="#curveBundle_beta">#</a> <i>bundle</i>.<b>beta</b>(<i>beta</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/bundle.js)
-
-Returns a bundle curve with the specified *beta* in the range [0, 1], representing the bundle strength. If *beta* equals zero, a straight line between the first and last point is produced; if *beta* equals one, a standard [basis](#basis) spline is produced. For example:
-
-```js
-const line = d3.line().curve(d3.curveBundle.beta(0.5));
-```
-
-<a name="curveCardinal" href="#curveCardinal">#</a> d3.<b>curveCardinal</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/cardinal.js)
-
-<img src="./img/cardinal.png" width="888" height="240" alt="cardinal">
-
-Produces a cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points, with one-sided differences used for the first and last piece. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinalClosed" href="#curveCardinalClosed">#</a> d3.<b>curveCardinalClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/cardinalClosed.js)
-
-<img src="./img/cardinalClosed.png" width="888" height="240" alt="cardinalClosed">
-
-Produces a closed cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points. When a line segment ends, the first three control points are repeated, producing a closed loop. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinalOpen" href="#curveCardinalOpen">#</a> d3.<b>curveCardinalOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/cardinalOpen.js)
-
-<img src="./img/cardinalOpen.png" width="888" height="240" alt="cardinalOpen">
-
-Produces a cubic [cardinal spline](https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline) using the specified control points. Unlike [curveCardinal](#curveCardinal), one-sided differences are not used for the first and last piece, and thus the curve starts at the second point and ends at the penultimate point. The default [tension](#curveCardinal_tension) is 0.
-
-<a name="curveCardinal_tension" href="#curveCardinal_tension">#</a> <i>cardinal</i>.<b>tension</b>(<i>tension</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/cardinalOpen.js)
-
-Returns a cardinal curve with the specified *tension* in the range [0, 1]. The *tension* determines the length of the tangents: a *tension* of one yields all zero tangents, equivalent to [curveLinear](#curveLinear); a *tension* of zero produces a uniform [Catmull–Rom](#curveCatmullRom) spline. For example:
-
-```js
-const line = d3.line().curve(d3.curveCardinal.tension(0.5));
-```
-
-<a name="curveCatmullRom" href="#curveCatmullRom">#</a> d3.<b>curveCatmullRom</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/catmullRom.js)
-
-<img src="./img/catmullRom.png" width="888" height="240" alt="catmullRom">
-
-Produces a cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. in [On the Parameterization of Catmull–Rom Curves](http://www.cemyuksel.com/research/catmullrom_param/), with one-sided differences used for the first and last piece.
-
-<a name="curveCatmullRomClosed" href="#curveCatmullRomClosed">#</a> d3.<b>curveCatmullRomClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/catmullRomClosed.js)
-
-<img src="./img/catmullRomClosed.png" width="888" height="330" alt="catmullRomClosed">
-
-Produces a closed cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. When a line segment ends, the first three control points are repeated, producing a closed loop.
-
-<a name="curveCatmullRomOpen" href="#curveCatmullRomOpen">#</a> d3.<b>curveCatmullRomOpen</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/catmullRomOpen.js)
-
-<img src="./img/catmullRomOpen.png" width="888" height="240" alt="catmullRomOpen">
-
-Produces a cubic Catmull–Rom spline using the specified control points and the parameter [*alpha*](#curveCatmullRom_alpha), which defaults to 0.5, as proposed by Yuksel et al. Unlike [curveCatmullRom](#curveCatmullRom), one-sided differences are not used for the first and last piece, and thus the curve starts at the second point and ends at the penultimate point.
-
-<a name="curveCatmullRom_alpha" href="#curveCatmullRom_alpha">#</a> <i>catmullRom</i>.<b>alpha</b>(<i>alpha</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/catmullRom.js)
-
-Returns a cubic Catmull–Rom curve with the specified *alpha* in the range [0, 1]. If *alpha* is zero, produces a uniform spline, equivalent to [curveCardinal](#curveCardinal) with a tension of zero; if *alpha* is one, produces a chordal spline; if *alpha* is 0.5, produces a [centripetal spline](https://en.wikipedia.org/wiki/Centripetal_Catmull–Rom_spline). Centripetal splines are recommended to avoid self-intersections and overshoot. For example:
-
-```js
-const line = d3.line().curve(d3.curveCatmullRom.alpha(0.5));
-```
-
-<a name="curveLinear" href="#curveLinear">#</a> d3.<b>curveLinear</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/linear.js)
-
-<img src="./img/linear.png" width="888" height="240" alt="linear">
-
-Produces a polyline through the specified points.
-
-<a name="curveLinearClosed" href="#curveLinearClosed">#</a> d3.<b>curveLinearClosed</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/linearClosed.js)
-
-<img src="./img/linearClosed.png" width="888" height="240" alt="linearClosed">
-
-Produces a closed polyline through the specified points by repeating the first point when the line segment ends.
-
-<a name="curveMonotoneX" href="#curveMonotoneX">#</a> d3.<b>curveMonotoneX</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/monotone.js)
-
-<img src="./img/monotoneX.png" width="888" height="240" alt="monotoneX">
-
-Produces a cubic spline that [preserves monotonicity](https://en.wikipedia.org/wiki/Monotone_cubic_interpolation) in *y*, assuming monotonicity in *x*, as proposed by Steffen in [A simple method for monotonic interpolation in one dimension](http://adsabs.harvard.edu/full/1990A%26A...239..443S): “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations. Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
-
-<a name="curveMonotoneY" href="#curveMonotoneY">#</a> d3.<b>curveMonotoneY</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/monotone.js)
-
-<img src="./img/monotoneY.png" width="888" height="240" alt="monotoneY">
-
-Produces a cubic spline that [preserves monotonicity](https://en.wikipedia.org/wiki/Monotone_cubic_interpolation) in *x*, assuming monotonicity in *y*, as proposed by Steffen in [A simple method for monotonic interpolation in one dimension](http://adsabs.harvard.edu/full/1990A%26A...239..443S): “a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations. Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points.”
-
-<a name="curveNatural" href="#curveNatural">#</a> d3.<b>curveNatural</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/natural.js)
-
-<img src="./img/natural.png" width="888" height="240" alt="natural">
-
-Produces a [natural](https://en.wikipedia.org/wiki/Spline_interpolation) [cubic spline](http://mathworld.wolfram.com/CubicSpline.html) with the second derivative of the spline set to zero at the endpoints.
-
-<a name="curveStep" href="#curveStep">#</a> d3.<b>curveStep</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-<img src="./img/step.png" width="888" height="240" alt="step">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes at the midpoint of each pair of adjacent *x*-values.
-
-<a name="curveStepAfter" href="#curveStepAfter">#</a> d3.<b>curveStepAfter</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-<img src="./img/stepAfter.png" width="888" height="240" alt="stepAfter">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes after the *x*-value.
-
-<a name="curveStepBefore" href="#curveStepBefore">#</a> d3.<b>curveStepBefore</b>(<i>context</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-<img src="./img/stepBefore.png" width="888" height="240" alt="stepBefore">
-
-Produces a piecewise constant function (a [step function](https://en.wikipedia.org/wiki/Step_function)) consisting of alternating horizontal and vertical lines. The *y*-value changes before the *x*-value.
-
-### Custom Curves
-
-Curves are typically not used directly, instead being passed to [*line*.curve](#line_curve) and [*area*.curve](#area_curve). However, you can define your own curve implementation should none of the built-in curves satisfy your needs using the following interface. You can also use this low-level interface with a built-in curve type as an alternative to the line and area generators.
-
-<a name="curve_areaStart" href="#curve_areaStart">#</a> <i>curve</i>.<b>areaStart</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js#L7)
-
-Indicates the start of a new area segment. Each area segment consists of exactly two [line segments](#curve_lineStart): the topline, followed by the baseline, with the baseline points in reverse order.
-
-<a name="curve_areaEnd" href="#curve_areaEnd">#</a> <i>curve</i>.<b>areaEnd</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-Indicates the end of the current area segment.
-
-<a name="curve_lineStart" href="#curve_lineStart">#</a> <i>curve</i>.<b>lineStart</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-Indicates the start of a new line segment. Zero or more [points](#curve_point) will follow.
-
-<a name="curve_lineEnd" href="#curve_lineEnd">#</a> <i>curve</i>.<b>lineEnd</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-Indicates the end of the current line segment.
-
-<a name="curve_point" href="#curve_point">#</a> <i>curve</i>.<b>point</b>(<i>x</i>, <i>y</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/curve/step.js)
-
-Indicates a new point in the current line segment with the given *x*- and *y*-values.
-
-### Links
-
-[<img alt="Tidy Tree" src="https://raw.githubusercontent.com/d3/d3-hierarchy/master/img/tree.png">](https://observablehq.com/@d3/tidy-tree)
-
-The **link** shape generates a smooth cubic Bézier curve from a source point to a target point. The tangents of the curve at the start and end are either [vertical](#linkVertical), [horizontal](#linkHorizontal) or [radial](#linkRadial).
-
-<a name="link" href="#link">#</a> d3.<b>link</b>(<i>curve</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Returns a new [link generator](#_link) using the specified <i>curve</i>. For example, to visualize [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted on the top edge of the display, you might say:
-
-```js
-const link = d3.link(d3.curveBumpY)
-    .x(d => d.x)
-    .y(d => d.y);
-```
-
-<a name="linkVertical" href="#linkVertical">#</a> d3.<b>linkVertical</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Shorthand for [d3.link](#link) with [d3.curveBumpY](#curveBumpY); suitable for visualizing [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted on the top edge of the display. Equivalent to:
-
-```js
-const link = d3.link(d3.curveBumpY);
-```
-
-<a name="linkHorizontal" href="#linkHorizontal">#</a> d3.<b>linkHorizontal</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Shorthand for [d3.link](#link) with [d3.curveBumpX](#curveBumpX); suitable for visualizing [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted on the left edge of the display. Equivalent to:
-
-```js
-const link = d3.link(d3.curveBumpX);
-```
-
-<a href="#_link" name="_link">#</a> <i>link</i>(<i>arguments…</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Generates a link for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the link generator’s accessor functions along with the `this` object. For example, with the default settings, an object expected:
-
-```js
-link({
-  source: [100, 100],
-  target: [300, 300]
-});
-```
-
-<a name="link_source" href="#link_source">#</a> <i>link</i>.<b>source</b>([<i>source</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *source* is specified, sets the source accessor to the specified function and returns this link generator. If *source* is not specified, returns the current source accessor, which defaults to:
-
-```js
-function source(d) {
-  return d.source;
-}
-```
-
-<a name="link_target" href="#link_target">#</a> <i>link</i>.<b>target</b>([<i>target</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *target* is specified, sets the target accessor to the specified function and returns this link generator. If *target* is not specified, returns the current target accessor, which defaults to:
-
-```js
-function target(d) {
-  return d.target;
-}
-```
-
-<a name="link_x" href="#link_x">#</a> <i>link</i>.<b>x</b>([<i>x</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *x* is specified, sets the *x*-accessor to the specified function or number and returns this link generator. If *x* is not specified, returns the current *x*-accessor, which defaults to:
-
-```js
-function x(d) {
-  return d[0];
-}
-```
-
-<a name="link_y" href="#link_y">#</a> <i>link</i>.<b>y</b>([<i>y</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *y* is specified, sets the *y*-accessor to the specified function or number and returns this link generator. If *y* is not specified, returns the current *y*-accessor, which defaults to:
-
-```js
-function y(d) {
-  return d[1];
-}
-```
-
-<a name="link_context" href="#link_context">#</a> <i>link</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *context* is specified, sets the context and returns this link generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated link](#_link) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated link is returned. See also [d3-path](https://github.com/d3/d3-path).
-
-<a name="link_digits" href="#link_digits">#</a> <i>link</i>.<b>digits</b>([<i>digits</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-If *digits* is specified, sets the maximum number of digits after the decimal separator and returns this link generator. If *digits* is not specified, returns the current maximum fraction digits, which defaults to 3. This option only applies when the associated [*context*](#link_context) is null, as when this link generator is used to produce [path data](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-<a name="linkRadial" href="#linkRadial">#</a> d3.<b>linkRadial</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Returns a new [link generator](#_link) with radial tangents. For example, to visualize [links](https://github.com/d3/d3-hierarchy/blob/master/README.md#node_links) in a [tree diagram](https://github.com/d3/d3-hierarchy/blob/master/README.md#tree) rooted in the center of the display, you might say:
-
-```js
-const link = d3.linkRadial()
-    .angle(d => d.x)
-    .radius(d => d.y);
-```
-
-<a name="linkRadial_angle" href="#linkRadial_angle">#</a> <i>linkRadial</i>.<b>angle</b>([<i>angle</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Equivalent to [*link*.x](#link_x), except the accessor returns the angle in radians, with 0 at -*y* (12 o’clock).
-
-<a name="linkRadial_radius" href="#linkRadial_radius">#</a> <i>linkRadial</i>.<b>radius</b>([<i>radius</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/link.js)
-
-Equivalent to [*link*.y](#link_y), except the accessor returns the radius: the distance from the origin ⟨0,0⟩.
-
-### Symbols
-
-Symbols provide a categorical shape encoding as is commonly used in scatterplots. Symbols are always centered at ⟨0,0⟩; use a transform (see: [SVG](http://www.w3.org/TR/SVG/coords.html#TransformAttribute), [Canvas](http://www.w3.org/TR/2dcontext/#transformations)) to move the symbol to a different position.
-
-<a name="symbol" href="#symbol">#</a> d3.<b>symbol</b>([<i>type</i>][, <i>size</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js), [Examples](https://observablehq.com/@d3/fitted-symbols)
-
-Constructs a new symbol generator of the specified [type](#symbol_type) and [size](#symbol_size). If not specified, *type* defaults to a circle, and *size* defaults to 64.
-
-<a name="_symbol" href="#_symbol">#</a> <i>symbol</i>(<i>arguments</i>…) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-Generates a symbol for the given *arguments*. The *arguments* are arbitrary; they are simply propagated to the symbol generator’s accessor functions along with the `this` object. For example, with the default settings, no arguments are needed to produce a circle with area 64 square pixels. If the symbol generator has a [context](#symbol_context), then the symbol is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls and this function returns void. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string is returned.
-
-<a name="symbol_type" href="#symbol_type">#</a> <i>symbol</i>.<b>type</b>([<i>type</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-If *type* is specified, sets the symbol type to the specified function or symbol type and returns this symbol generator. If *type* is a function, the symbol generator’s arguments and *this* are passed through. (See [*selection*.attr](https://github.com/d3/d3-selection/blob/master/README.md#selection_attr) if you are using d3-selection.) If *type* is not specified, returns the current symbol type accessor, which defaults to:
-
-```js
-function type() {
-  return circle;
-}
-```
-
-See [symbolsFill](#symbolsFill) and [symbolsStroke](#symbolsStroke) for built-in symbol types. To implement a custom symbol type, pass an object that implements [*symbolType*.draw](#symbolType_draw).
-
-<a name="symbol_size" href="#symbol_size">#</a> <i>symbol</i>.<b>size</b>([<i>size</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-If *size* is specified, sets the size to the specified function or number and returns this symbol generator. If *size* is a function, the symbol generator’s arguments and *this* are passed through. (See [*selection*.attr](https://github.com/d3/d3-selection/blob/master/README.md#selection_attr) if you are using d3-selection.) If *size* is not specified, returns the current size accessor, which defaults to:
-
-```js
-function size() {
-  return 64;
-}
-```
-
-Specifying the size as a function is useful for constructing a scatterplot with a size encoding. If you wish to scale the symbol to fit a given bounding box, rather than by area, try [SVG’s getBBox](https://observablehq.com/d/1fac2626b9e1b65f).
-
-<a name="symbol_context" href="#symbol_context">#</a> <i>symbol</i>.<b>context</b>([<i>context</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-If *context* is specified, sets the context and returns this symbol generator. If *context* is not specified, returns the current context, which defaults to null. If the context is not null, then the [generated symbol](#_symbol) is rendered to this context as a sequence of [path method](http://www.w3.org/TR/2dcontext/#canvaspathmethods) calls. Otherwise, a [path data](http://www.w3.org/TR/SVG/paths.html#PathData) string representing the generated symbol is returned.
-
-<a name="symbol_digits" href="#symbol_digits">#</a> <i>symbol</i>.<b>digits</b>([<i>digits</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-If *digits* is specified, sets the maximum number of digits after the decimal separator and returns this symbol generator. If *digits* is not specified, returns the current maximum fraction digits, which defaults to 3. This option only applies when the associated [*context*](#symbol_context) is null, as when this symbol generator is used to produce [path data](http://www.w3.org/TR/SVG/paths.html#PathData).
-
-<a name="symbolsFill" href="#symbolsFill">#</a> d3.<b>symbolsFill</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-<a href="#symbolCircle"><img src="./img/circle.png" width="100" height="100"></a><a href="#symbolCross"><img src="./img/cross.png" width="100" height="100"></a><a href="#symbolDiamond"><img src="./img/diamond.png" width="100" height="100"></a><a href="#symbolSquare"><img src="./img/square.png" width="100" height="100"></a><a href="#symbolStar"><img src="./img/star.png" width="100" height="100"></a><a href="#symbolTriangle"><img src="./img/triangle.png" width="100" height="100"><a href="#symbolWye"><img src="./img/wye.png" width="100" height="100"></a>
-
-An array containing a set of symbol types designed for filling: [circle](#symbolCircle), [cross](#symbolCross), [diamond](#symbolDiamond), [square](#symbolSquare), [star](#symbolStar), [triangle](#symbolTriangle), and [wye](#symbolWye). Useful for constructing the range of an [ordinal scale](https://github.com/d3/d3-scale#ordinal-scales) should you wish to use a shape encoding for categorical data.
-
-<a name="symbolsStroke" href="#symbolsStroke">#</a> d3.<b>symbolsStroke</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol.js)
-
-An array containing a set of symbol types designed for stroking: [circle](#symbolCircle), [plus](#symbolPlus), [times](#symbolTimes), [triangle2](#symbolTriangle2), [asterisk](#symbolAsterisk), [square2](#symbolSquare2), and [diamond2](#symbolDiamond2). Useful for constructing the range of an [ordinal scale](https://github.com/d3/d3-scale#ordinal-scales) should you wish to use a shape encoding for categorical data.
-
-<a name="symbolAsterisk" href="#symbolAsterisk">#</a> d3.<b>symbolAsterisk</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/asterisk.js)
-
-The asterisk symbol type; intended for stroking.
-
-<a name="symbolCircle" href="#symbolCircle">#</a> d3.<b>symbolCircle</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/circle.js)
-
-The circle symbol type; intended for either filling or stroking.
-
-<a name="symbolCross" href="#symbolCross">#</a> d3.<b>symbolCross</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/cross.js)
-
-The Greek cross symbol type, with arms of equal length; intended for filling.
-
-<a name="symbolDiamond" href="#symbolDiamond">#</a> d3.<b>symbolDiamond</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/diamond.js)
-
-The rhombus symbol type; intended for filling.
-
-<a name="symbolDiamond2" href="#symbolDiamond2">#</a> d3.<b>symbolDiamond2</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/diamond.js)
-
-The rotated square symbol type; intended for stroking.
-
-<a name="symbolPlus" href="#symbolPlus">#</a> d3.<b>symbolPlus</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/plus.js)
-
-The plus symbol type; intended for stroking.
-
-<a name="symbolSquare" href="#symbolSquare">#</a> d3.<b>symbolSquare</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/square.js)
-
-The square symbol type; intended for filling.
-
-<a name="symbolSquare2" href="#symbolSquare2">#</a> d3.<b>symbolSquare2</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/square2.js)
-
-The square2 symbol type; intended for stroking.
-
-<a name="symbolStar" href="#symbolStar">#</a> d3.<b>symbolStar</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/star.js)
-
-The pentagonal star (pentagram) symbol type; intended for filling.
-
-<a name="symbolTriangle" href="#symbolTriangle">#</a> d3.<b>symbolTriangle</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/triangle.js)
-
-The up-pointing triangle symbol type; intended for filling.
-
-<a name="symbolTriangle2" href="#symbolTriangle2">#</a> d3.<b>symbolTriangle2</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/triangle2.js)
-
-The up-pointing triangle symbol type; intended for stroking.
-
-<a name="symbolWye" href="#symbolWye">#</a> d3.<b>symbolWye</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/wye.js)
-
-The Y-shape symbol type; intended for filling.
-
-<a name="symbolTimes" href="#symbolTimes">#</a> d3.<b>symbolTimes</b> · [Source](https://github.com/d3/d3-shape/blob/main/src/symbol/times.js)
-
-The X-shape symbol type; intended for stroking.
-
-<a name="pointRadial" href="#pointRadial">#</a> d3.<b>pointRadial</b>(<i>angle</i>, <i>radius</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/pointRadial.js), [Examples](https://observablehq.com/@d3/radial-area-chart)
-
-Returns the point [<i>x</i>, <i>y</i>] for the given *angle* in radians, with 0 at -*y* (12 o’clock) and positive angles proceeding clockwise, and the given *radius*.
-
-### Custom Symbol Types
-
-Symbol types are typically not used directly, instead being passed to [*symbol*.type](#symbol_type). However, you can define your own symbol type implementation should none of the built-in types satisfy your needs using the following interface. You can also use this low-level interface with a built-in symbol type as an alternative to the symbol generator.
-
-<a name="symbolType_draw" href="#symbolType_draw">#</a> <i>symbolType</i>.<b>draw</b>(<i>context</i>, <i>size</i>)
-
-Renders this symbol type to the specified *context* with the specified *size* in square pixels. The *context* implements the [CanvasPathMethods](http://www.w3.org/TR/2dcontext/#canvaspathmethods) interface. (Note that this is a subset of the CanvasRenderingContext2D interface!)
-
-### Stacks
-
-[<img alt="Stacked Bar Chart" src="./img/stacked-bar.png" width="295" height="154">](https://observablehq.com/@d3/stacked-bar-chart)[<img alt="Streamgraph" src="./img/stacked-stream.png" width="295" height="154">](https://observablehq.com/@mbostock/streamgraph-transitions)
-
-Some shape types can be stacked, placing one shape adjacent to another. For example, a bar chart of monthly sales might be broken down into a multi-series bar chart by product category, stacking bars vertically. This is equivalent to subdividing a bar chart by an ordinal dimension (such as product category) and applying a color encoding.
-
-Stacked charts can show overall value and per-category value simultaneously; however, it is typically harder to compare across categories, as only the bottom layer of the stack is aligned. So, chose the [stack order](#stack_order) carefully, and consider a [streamgraph](#stackOffsetWiggle). (See also [grouped charts](https://observablehq.com/@d3/grouped-bar-chart).)
-
-Like the [pie generator](#pies), the stack generator does not produce a shape directly. Instead it computes positions which you can then pass to an [area generator](#areas) or use directly, say to position bars.
-
-<a name="stack" href="#stack">#</a> d3.<b>stack</b>() · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-Constructs a new stack generator with the default settings.
-
-<a name="_stack" href="#_stack">#</a> <i>stack</i>(<i>data</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-Generates a stack for the given array of *data*, returning an array representing each series. Any additional *arguments* are arbitrary; they are simply propagated to accessors along with the `this` object.
-
-The series are determined by the [keys accessor](#stack_keys); each series *i* in the returned array corresponds to the *i*th key. Each series is an array of points, where each point *j* corresponds to the *j*th element in the input *data*. Lastly, each point is represented as an array [*y0*, *y1*] where *y0* is the lower value (baseline) and *y1* is the upper value (topline); the difference between *y0* and *y1* corresponds to the computed [value](#stack_value) for this point. The key for each series is available as *series*.key, and the [index](#stack_order) as *series*.index. The input data element for each point is available as *point*.data.
-
-For example, consider the following table representing monthly sales of fruits:
-
-Month   | Apples | Bananas | Cherries | Durians
---------|--------|---------|----------|---------
- 1/2015 |   3840 |    1920 |      960 |     400
- 2/2015 |   1600 |    1440 |      960 |     400
- 3/2015 |    640 |     960 |      640 |     400
- 4/2015 |    320 |     480 |      640 |     400
-
-This might be represented in JavaScript as an array of objects:
-
-```js
-const data = [
-  {month: new Date(2015, 0, 1), apples: 3840, bananas: 1920, cherries: 960, durians: 400},
-  {month: new Date(2015, 1, 1), apples: 1600, bananas: 1440, cherries: 960, durians: 400},
-  {month: new Date(2015, 2, 1), apples:  640, bananas:  960, cherries: 640, durians: 400},
-  {month: new Date(2015, 3, 1), apples:  320, bananas:  480, cherries: 640, durians: 400}
-];
-```
-
-To produce a stack for this data:
-
-```js
-const stack = d3.stack()
-    .keys(["apples", "bananas", "cherries", "durians"])
-    .order(d3.stackOrderNone)
-    .offset(d3.stackOffsetNone);
-
-const series = stack(data);
-```
-
-The resulting array has one element per *series*. Each series has one point per month, and each point has a lower and upper value defining the baseline and topline:
-
-```js
-[
-  [[   0, 3840], [   0, 1600], [   0,  640], [   0,  320]], // apples
-  [[3840, 5760], [1600, 3040], [ 640, 1600], [ 320,  800]], // bananas
-  [[5760, 6720], [3040, 4000], [1600, 2240], [ 800, 1440]], // cherries
-  [[6720, 7120], [4000, 4400], [2240, 2640], [1440, 1840]], // durians
-]
-```
-
-Each series in then typically passed to an [area generator](#areas) to render an area chart, or used to construct rectangles for a bar chart.
-
-<a name="stack_keys" href="#stack_keys">#</a> <i>stack</i>.<b>keys</b>([<i>keys</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-If *keys* is specified, sets the keys accessor to the specified function or array and returns this stack generator. If *keys* is not specified, returns the current keys accessor, which defaults to the empty array. A series (layer) is [generated](#_stack) for each key. Keys are typically strings, but they may be arbitrary values. The series’ key is passed to the [value accessor](#stack_value), along with each data point, to compute the point’s value.
-
-<a name="stack_value" href="#stack_value">#</a> <i>stack</i>.<b>value</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-If *value* is specified, sets the value accessor to the specified function or number and returns this stack generator. If *value* is not specified, returns the current value accessor, which defaults to:
-
-```js
-function value(d, key) {
-  return d[key];
-}
-```
-
-Thus, by default the stack generator assumes that the input data is an array of objects, with each object exposing named properties with numeric values; see [*stack*](#_stack) for an example.
-
-<a name="stack_order" href="#stack_order">#</a> <i>stack</i>.<b>order</b>([<i>order</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-If *order* is specified, sets the order accessor to the specified function or array and returns this stack generator. If *order* is not specified, returns the current order accessor, which defaults to [stackOrderNone](#stackOrderNone); this uses the order given by the [key accessor](#stack_key). See [stack orders](#stack-orders) for the built-in orders.
-
-If *order* is a function, it is passed the generated series array and must return an array of numeric indexes representing the stack order. For example, the default order is defined as:
-
-```js
-function orderNone(series) {
-  let n = series.length;
-  const o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
-```
-
-The stack order is computed prior to the [offset](#stack_offset); thus, the lower value for all points is zero at the time the order is computed. The index attribute for each series is also not set until after the order is computed.
-
-<a name="stack_offset" href="#stack_offset">#</a> <i>stack</i>.<b>offset</b>([<i>offset</i>]) · [Source](https://github.com/d3/d3-shape/blob/main/src/stack.js)
-
-If *offset* is specified, sets the offset accessor to the specified function and returns this stack generator. If *offset* is not specified, returns the current offset acccesor, which defaults to [stackOffsetNone](#stackOffsetNone); this uses a zero baseline. See [stack offsets](#stack-offsets) for the built-in offsets.
-
-The offset function is passed the generated series array and the order index array; it is then responsible for updating the lower and upper values in the series array. For example, the default offset is defined as:
-
-```js
-function offsetNone(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (let i = 1, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (let j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = s0[j][1];
-    }
-  }
-}
-```
-
-### Stack Orders
-
-Stack orders are typically not used directly, but are instead passed to [*stack*.order](#stack_order).
-
-<a name="stackOrderAppearance" href="#stackOrderAppearance">#</a> d3.<b>stackOrderAppearance</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/appearance.js)
-
-Returns a series order such that the earliest series (according to the maximum value) is at the bottom.
-
-<a name="stackOrderAscending" href="#stackOrderAscending">#</a> d3.<b>stackOrderAscending</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/ascending.js)
-
-Returns a series order such that the smallest series (according to the sum of values) is at the bottom.
-
-<a name="stackOrderDescending" href="#stackOrderDescending">#</a> d3.<b>stackOrderDescending</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/descending.js)
-
-Returns a series order such that the largest series (according to the sum of values) is at the bottom.
-
-<a name="stackOrderInsideOut" href="#stackOrderInsideOut">#</a> d3.<b>stackOrderInsideOut</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/insideOut.js)
-
-Returns a series order such that the earliest series (according to the maximum value) are on the inside and the later series are on the outside. This order is recommended for streamgraphs in conjunction with the [wiggle offset](#stackOffsetWiggle). See [Stacked Graphs—Geometry & Aesthetics](http://leebyron.com/streamgraph/) by Byron & Wattenberg for more information.
-
-<a name="stackOrderNone" href="#stackOrderNone">#</a> d3.<b>stackOrderNone</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/none.js)
-
-Returns the given series order [0, 1, … *n* - 1] where *n* is the number of elements in *series*. Thus, the stack order is given by the [key accessor](#stack_keys).
-
-<a name="stackOrderReverse" href="#stackOrderReverse">#</a> d3.<b>stackOrderReverse</b>(<i>series</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/order/reverse.js)
-
-Returns the reverse of the given series order [*n* - 1, *n* - 2, … 0] where *n* is the number of elements in *series*. Thus, the stack order is given by the reverse of the [key accessor](#stack_keys).
-
-### Stack Offsets
-
-Stack offsets are typically not used directly, but are instead passed to [*stack*.offset](#stack_offset).
-
-<a name="stackOffsetExpand" href="#stackOffsetExpand">#</a> d3.<b>stackOffsetExpand</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/offset/expand.js)
-
-Applies a zero baseline and normalizes the values for each point such that the topline is always one.
-
-<a name="stackOffsetDiverging" href="#stackOffsetDiverging">#</a> d3.<b>stackOffsetDiverging</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/offset/diverging.js)
-
-Positive values are stacked above zero, negative values are [stacked below zero](https://observablehq.com/@d3/diverging-stacked-bar-chart), and zero values are stacked at zero.
-
-<a name="stackOffsetNone" href="#stackOffsetNone">#</a> d3.<b>stackOffsetNone</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/offset/none.js)
-
-Applies a zero baseline.
-
-<a name="stackOffsetSilhouette" href="#stackOffsetSilhouette">#</a> d3.<b>stackOffsetSilhouette</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/offset/silhouette.js)
-
-Shifts the baseline down such that the center of the streamgraph is always at zero.
-
-<a name="stackOffsetWiggle" href="#stackOffsetWiggle">#</a> d3.<b>stackOffsetWiggle</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/main/src/offset/wiggle.js)
-
-Shifts the baseline so as to minimize the weighted wiggle of layers. This offset is recommended for streamgraphs in conjunction with the [inside-out order](#stackOrderInsideOut). See [Stacked Graphs—Geometry & Aesthetics](http://leebyron.com/streamgraph/) by Bryon & Wattenberg for more information.
Index: de_modules/d3-shape/dist/d3-shape.js
===================================================================
--- node_modules/d3-shape/dist/d3-shape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2141 +1,0 @@
-// https://d3js.org/d3-shape/ v3.2.0 Copyright 2010-2022 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-path')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-path'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-})(this, (function (exports, d3Path) { 'use strict';
-
-function constant(x) {
-  return function constant() {
-    return x;
-  };
-}
-
-const abs = Math.abs;
-const atan2 = Math.atan2;
-const cos = Math.cos;
-const max = Math.max;
-const min = Math.min;
-const sin = Math.sin;
-const sqrt = Math.sqrt;
-
-const epsilon = 1e-12;
-const pi = Math.PI;
-const halfPi = pi / 2;
-const tau = 2 * pi;
-
-function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
-
-function withPath(shape) {
-  let digits = 3;
-
-  shape.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) {
-      digits = null;
-    } else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    return shape;
-  };
-
-  return () => new d3Path.Path(digits);
-}
-
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0, y10 = y1 - y0,
-      x32 = x3 - x2, y32 = y3 - y2,
-      t = y32 * x10 - x32 * y10;
-  if (t * t < epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-      y01 = y0 - y1,
-      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),
-      ox = lo * y01,
-      oy = -lo * x01,
-      x11 = x0 + ox,
-      y11 = y0 + oy,
-      x10 = x1 + ox,
-      y10 = y1 + oy,
-      x00 = (x11 + x10) / 2,
-      y00 = (y11 + y10) / 2,
-      dx = x10 - x11,
-      dy = y10 - y11,
-      d2 = dx * dx + dy * dy,
-      r = r1 - rc,
-      D = x11 * y10 - x10 * y11,
-      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),
-      cx0 = (D * dy - dx * d) / d2,
-      cy0 = (-D * dx - dy * d) / d2,
-      cx1 = (D * dy + dx * d) / d2,
-      cy1 = (-D * dx + dy * d) / d2,
-      dx0 = cx0 - x00,
-      dy0 = cy0 - y00,
-      dx1 = cx1 - x00,
-      dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-
-function arc() {
-  var innerRadius = arcInnerRadius,
-      outerRadius = arcOuterRadius,
-      cornerRadius = constant(0),
-      padRadius = null,
-      startAngle = arcStartAngle,
-      endAngle = arcEndAngle,
-      padAngle = arcPadAngle,
-      context = null,
-      path = withPath(arc);
-
-  function arc() {
-    var buffer,
-        r,
-        r0 = +innerRadius.apply(this, arguments),
-        r1 = +outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) - halfPi,
-        a1 = endAngle.apply(this, arguments) - halfPi,
-        da = abs(a1 - a0),
-        cw = a1 > a0;
-
-    if (!context) context = buffer = path();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > tau - epsilon) {
-      context.moveTo(r1 * cos(a0), r1 * sin(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > epsilon) {
-        context.moveTo(r0 * cos(a1), r0 * sin(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-          a11 = a1,
-          a00 = a0,
-          a10 = a1,
-          da0 = da,
-          da1 = da,
-          ap = padAngle.apply(this, arguments) / 2,
-          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),
-          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-          rc0 = rc,
-          rc1 = rc,
-          t0,
-          t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > epsilon) {
-        var p0 = asin(rp / r0 * sin(ap)),
-            p1 = asin(rp / r1 * sin(ap));
-        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
-        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
-        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-
-      var x01 = r1 * cos(a01),
-          y01 = r1 * sin(a01),
-          x10 = r0 * cos(a10),
-          y10 = r0 * sin(a10);
-
-      // Apply rounded corners?
-      if (rc > epsilon) {
-        var x11 = r1 * cos(a11),
-            y11 = r1 * sin(a11),
-            x00 = r0 * cos(a00),
-            y00 = r0 * sin(a00),
-            oc;
-
-        // Restrict the corner radius according to the sector angle. If this
-        // intersection fails, it’s probably because the arc is too small, so
-        // disable the corner radius entirely.
-        if (da < pi) {
-          if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {
-            var ax = x01 - oc[0],
-                ay = y01 - oc[1],
-                bx = x11 - oc[0],
-                by = y11 - oc[1],
-                kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),
-                lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-            rc0 = min(rc, (r0 - lc) / (kc - 1));
-            rc1 = min(rc, (r1 - lc) / (kc + 1));
-          } else {
-            rc0 = rc1 = 0;
-          }
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  arc.centroid = function() {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
-    return [cos(a) * r, sin(a) * r];
-  };
-
-  arc.innerRadius = function(_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
-  };
-
-  arc.outerRadius = function(_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
-  };
-
-  arc.cornerRadius = function(_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
-  };
-
-  arc.padRadius = function(_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
-  };
-
-  arc.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
-  };
-
-  arc.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
-  };
-
-  arc.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
-  };
-
-  arc.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
-  };
-
-  return arc;
-}
-
-var slice = Array.prototype.slice;
-
-function array(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
-
-function Linear(context) {
-  this._context = context;
-}
-
-Linear.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: this._context.lineTo(x, y); break;
-    }
-  }
-};
-
-function curveLinear(context) {
-  return new Linear(context);
-}
-
-function x(p) {
-  return p[0];
-}
-
-function y(p) {
-  return p[1];
-}
-
-function line(x$1, y$1) {
-  var defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(line);
-
-  x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant(x$1);
-  y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant(y$1);
-
-  function line(data) {
-    var i,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer;
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();
-        else output.lineEnd();
-      }
-      if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  line.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line) : x$1;
-  };
-
-  line.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line) : y$1;
-  };
-
-  line.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined;
-  };
-
-  line.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-
-  line.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-
-  return line;
-}
-
-function area(x0, y0, y1) {
-  var x1 = null,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(area);
-
-  x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant(+x0);
-  y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);
-  y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant(+y1);
-
-  function area(data) {
-    var i,
-        j,
-        k,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer,
-        x0z = new Array(n),
-        y0z = new Array(n);
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  function arealine() {
-    return line().defined(defined).curve(curve).context(context);
-  }
-
-  area.x = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0;
-  };
-
-  area.x0 = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0;
-  };
-
-  area.x1 = function(_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1;
-  };
-
-  area.y = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0;
-  };
-
-  area.y0 = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0;
-  };
-
-  area.y1 = function(_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1;
-  };
-
-  area.lineX0 =
-  area.lineY0 = function() {
-    return arealine().x(x0).y(y0);
-  };
-
-  area.lineY1 = function() {
-    return arealine().x(x0).y(y1);
-  };
-
-  area.lineX1 = function() {
-    return arealine().x(x1).y(y0);
-  };
-
-  area.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined;
-  };
-
-  area.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-
-  area.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-
-  return area;
-}
-
-function descending$1(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-
-function identity(d) {
-  return d;
-}
-
-function pie() {
-  var value = identity,
-      sortValues = descending$1,
-      sort = null,
-      startAngle = constant(0),
-      endAngle = constant(tau),
-      padAngle = constant(0);
-
-  function pie(data) {
-    var i,
-        n = (data = array(data)).length,
-        j,
-        k,
-        sum = 0,
-        index = new Array(n),
-        arcs = new Array(n),
-        a0 = +startAngle.apply(this, arguments),
-        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),
-        a1,
-        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-        pa = p * (da < 0 ? -1 : 1),
-        v;
-
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
-    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-
-    return arcs;
-  }
-
-  pie.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value;
-  };
-
-  pie.sortValues = function(_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-
-  pie.sort = function(_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-
-  pie.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle;
-  };
-
-  pie.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle;
-  };
-
-  pie.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle;
-  };
-
-  return pie;
-}
-
-var curveRadialLinear = curveRadial(curveLinear);
-
-function Radial(curve) {
-  this._curve = curve;
-}
-
-Radial.prototype = {
-  areaStart: function() {
-    this._curve.areaStart();
-  },
-  areaEnd: function() {
-    this._curve.areaEnd();
-  },
-  lineStart: function() {
-    this._curve.lineStart();
-  },
-  lineEnd: function() {
-    this._curve.lineEnd();
-  },
-  point: function(a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-
-function curveRadial(curve) {
-
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-
-  radial._curve = curve;
-
-  return radial;
-}
-
-function lineRadial(l) {
-  var c = l.curve;
-
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-
-  l.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return l;
-}
-
-function lineRadial$1() {
-  return lineRadial(line().curve(curveRadialLinear));
-}
-
-function areaRadial() {
-  var a = area().curve(curveRadialLinear),
-      c = a.curve,
-      x0 = a.lineX0,
-      x1 = a.lineX1,
-      y0 = a.lineY0,
-      y1 = a.lineY1;
-
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
-  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
-  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
-  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;
-
-  a.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return a;
-}
-
-function pointRadial(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
-
-class Bump {
-  constructor(context, x) {
-    this._context = context;
-    this._x = x;
-  }
-  areaStart() {
-    this._line = 0;
-  }
-  areaEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  }
-  point(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: {
-        this._point = 1;
-        if (this._line) this._context.lineTo(x, y);
-        else this._context.moveTo(x, y);
-        break;
-      }
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);
-        else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
-        break;
-      }
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-class BumpRadial {
-  constructor(context) {
-    this._context = context;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {}
-  point(x, y) {
-    x = +x, y = +y;
-    if (this._point === 0) {
-      this._point = 1;
-    } else {
-      const p0 = pointRadial(this._x0, this._y0);
-      const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);
-      const p2 = pointRadial(x, this._y0);
-      const p3 = pointRadial(x, y);
-      this._context.moveTo(...p0);
-      this._context.bezierCurveTo(...p1, ...p2, ...p3);
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-function bumpX(context) {
-  return new Bump(context, true);
-}
-
-function bumpY(context) {
-  return new Bump(context, false);
-}
-
-function bumpRadial(context) {
-  return new BumpRadial(context);
-}
-
-function linkSource(d) {
-  return d.source;
-}
-
-function linkTarget(d) {
-  return d.target;
-}
-
-function link(curve) {
-  let source = linkSource,
-      target = linkTarget,
-      x$1 = x,
-      y$1 = y,
-      context = null,
-      output = null,
-      path = withPath(link);
-
-  function link() {
-    let buffer;
-    const argv = slice.call(arguments);
-    const s = source.apply(this, argv);
-    const t = target.apply(this, argv);
-    if (context == null) output = curve(buffer = path());
-    output.lineStart();
-    argv[0] = s, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv));
-    argv[0] = t, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv));
-    output.lineEnd();
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  link.source = function(_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-
-  link.target = function(_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-
-  link.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), link) : x$1;
-  };
-
-  link.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), link) : y$1;
-  };
-
-  link.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;
-  };
-
-  return link;
-}
-
-function linkHorizontal() {
-  return link(bumpX);
-}
-
-function linkVertical() {
-  return link(bumpY);
-}
-
-function linkRadial() {
-  const l = link(bumpRadial);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
-
-const sqrt3$2 = sqrt(3);
-
-var asterisk = {
-  draw(context, size) {
-    const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;
-    const t = r / 2;
-    const u = t * sqrt3$2;
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-    context.moveTo(-u, -t);
-    context.lineTo(u, t);
-    context.moveTo(-u, t);
-    context.lineTo(u, -t);
-  }
-};
-
-var circle = {
-  draw(context, size) {
-    const r = sqrt(size / pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, tau);
-  }
-};
-
-var cross = {
-  draw(context, size) {
-    const r = sqrt(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
-
-const tan30 = sqrt(1 / 3);
-const tan30_2 = tan30 * 2;
-
-var diamond = {
-  draw(context, size) {
-    const y = sqrt(size / tan30_2);
-    const x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
-
-var diamond2 = {
-  draw(context, size) {
-    const r = sqrt(size) * 0.62625;
-    context.moveTo(0, -r);
-    context.lineTo(r, 0);
-    context.lineTo(0, r);
-    context.lineTo(-r, 0);
-    context.closePath();
-  }
-};
-
-var plus = {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 7, 2)) * 0.87559;
-    context.moveTo(-r, 0);
-    context.lineTo(r, 0);
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-  }
-};
-
-var square = {
-  draw(context, size) {
-    const w = sqrt(size);
-    const x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
-
-var square2 = {
-  draw(context, size) {
-    const r = sqrt(size) * 0.4431;
-    context.moveTo(r, r);
-    context.lineTo(r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, r);
-    context.closePath();
-  }
-};
-
-const ka = 0.89081309152928522810;
-const kr = sin(pi / 10) / sin(7 * pi / 10);
-const kx = sin(tau / 10) * kr;
-const ky = -cos(tau / 10) * kr;
-
-var star = {
-  draw(context, size) {
-    const r = sqrt(size * ka);
-    const x = kx * r;
-    const y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (let i = 1; i < 5; ++i) {
-      const a = tau * i / 5;
-      const c = cos(a);
-      const s = sin(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
-
-const sqrt3$1 = sqrt(3);
-
-var triangle = {
-  draw(context, size) {
-    const y = -sqrt(size / (sqrt3$1 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3$1 * y, -y);
-    context.lineTo(sqrt3$1 * y, -y);
-    context.closePath();
-  }
-};
-
-const sqrt3 = sqrt(3);
-
-var triangle2 = {
-  draw(context, size) {
-    const s = sqrt(size) * 0.6824;
-    const t = s  / 2;
-    const u = (s * sqrt3) / 2; // cos(Math.PI / 6)
-    context.moveTo(0, -s);
-    context.lineTo(u, t);
-    context.lineTo(-u, t);
-    context.closePath();
-  }
-};
-
-const c = -0.5;
-const s = sqrt(3) / 2;
-const k = 1 / sqrt(12);
-const a = (k / 2 + 1) * 3;
-
-var wye = {
-  draw(context, size) {
-    const r = sqrt(size / a);
-    const x0 = r / 2, y0 = r * k;
-    const x1 = x0, y1 = r * k + r;
-    const x2 = -x1, y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
-
-var times = {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;
-    context.moveTo(-r, -r);
-    context.lineTo(r, r);
-    context.moveTo(-r, r);
-    context.lineTo(r, -r);
-  }
-};
-
-// These symbols are designed to be filled.
-const symbolsFill = [
-  circle,
-  cross,
-  diamond,
-  square,
-  star,
-  triangle,
-  wye
-];
-
-// These symbols are designed to be stroked (with a width of 1.5px and round caps).
-const symbolsStroke = [
-  circle,
-  plus,
-  times,
-  triangle2,
-  asterisk,
-  square2,
-  diamond2
-];
-
-function Symbol(type, size) {
-  let context = null,
-      path = withPath(symbol);
-
-  type = typeof type === "function" ? type : constant(type || circle);
-  size = typeof size === "function" ? size : constant(size === undefined ? 64 : +size);
-
-  function symbol() {
-    let buffer;
-    if (!context) context = buffer = path();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  symbol.type = function(_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type;
-  };
-
-  symbol.size = function(_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size;
-  };
-
-  symbol.context = function(_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-
-  return symbol;
-}
-
-function noop() {}
-
-function point$3(that, x, y) {
-  that._context.bezierCurveTo(
-    (2 * that._x0 + that._x1) / 3,
-    (2 * that._y0 + that._y1) / 3,
-    (that._x0 + 2 * that._x1) / 3,
-    (that._y0 + 2 * that._y1) / 3,
-    (that._x0 + 4 * that._x1 + x) / 6,
-    (that._y0 + 4 * that._y1 + y) / 6
-  );
-}
-
-function Basis(context) {
-  this._context = context;
-}
-
-Basis.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 3: point$3(this, this._x1, this._y1); // falls through
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basis(context) {
-  return new Basis(context);
-}
-
-function BasisClosed(context) {
-  this._context = context;
-}
-
-BasisClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x2, this._y2);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x2, this._y2);
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
-      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
-      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisClosed(context) {
-  return new BasisClosed(context);
-}
-
-function BasisOpen(context) {
-  this._context = context;
-}
-
-BasisOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
-      case 3: this._point = 4; // falls through
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisOpen(context) {
-  return new BasisOpen(context);
-}
-
-function Bundle(context, beta) {
-  this._basis = new Basis(context);
-  this._beta = beta;
-}
-
-Bundle.prototype = {
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        j = x.length - 1;
-
-    if (j > 0) {
-      var x0 = x[0],
-          y0 = y[0],
-          dx = x[j] - x0,
-          dy = y[j] - y0,
-          i = -1,
-          t;
-
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(
-          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
-          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
-        );
-      }
-    }
-
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-var bundle = (function custom(beta) {
-
-  function bundle(context) {
-    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
-  }
-
-  bundle.beta = function(beta) {
-    return custom(+beta);
-  };
-
-  return bundle;
-})(0.85);
-
-function point$2(that, x, y) {
-  that._context.bezierCurveTo(
-    that._x1 + that._k * (that._x2 - that._x0),
-    that._y1 + that._k * (that._y2 - that._y0),
-    that._x2 + that._k * (that._x1 - x),
-    that._y2 + that._k * (that._y1 - y),
-    that._x2,
-    that._y2
-  );
-}
-
-function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-Cardinal.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: point$2(this, this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
-      case 2: this._point = 3; // falls through
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinal = (function custom(tension) {
-
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalClosed = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalOpen = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function point$1(that, x, y) {
-  var x1 = that._x1,
-      y1 = that._y1,
-      x2 = that._x2,
-      y2 = that._y2;
-
-  if (that._l01_a > epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-
-  if (that._l23_a > epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRom.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: this.point(this._x2, this._y2); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; // falls through
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRom = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomClosed = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomOpen = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function LinearClosed(context) {
-  this._context = context;
-}
-
-LinearClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._point) this._context.closePath();
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);
-    else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-
-function linearClosed(context) {
-  return new LinearClosed(context);
-}
-
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-      h1 = x2 - that._x1,
-      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-      p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point(that, t0, t1) {
-  var x0 = that._x0,
-      y0 = that._y0,
-      x1 = that._x1,
-      y1 = that._y1,
-      dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-
-function MonotoneX(context) {
-  this._context = context;
-}
-
-MonotoneX.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 =
-    this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-      case 3: point(this, this._t0, slope2(this, this._t0)); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    var t1 = NaN;
-
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
-      default: point(this, this._t0, t1 = slope3(this, x, y)); break;
-    }
-
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-};
-
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-
-function ReflectContext(context) {
-  this._context = context;
-}
-
-ReflectContext.prototype = {
-  moveTo: function(x, y) { this._context.moveTo(y, x); },
-  closePath: function() { this._context.closePath(); },
-  lineTo: function(x, y) { this._context.lineTo(y, x); },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
-};
-
-function monotoneX(context) {
-  return new MonotoneX(context);
-}
-
-function monotoneY(context) {
-  return new MonotoneY(context);
-}
-
-function Natural(context) {
-  this._context = context;
-}
-
-Natural.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        n = x.length;
-
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-            py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-
-    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-      n = x.length - 1,
-      m,
-      a = new Array(n),
-      b = new Array(n),
-      r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-
-function natural(context) {
-  return new Natural(context);
-}
-
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-
-Step.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._t <= 0) {
-          this._context.lineTo(this._x, y);
-          this._context.lineTo(x, y);
-        } else {
-          var x1 = this._x * (1 - this._t) + x * this._t;
-          this._context.lineTo(x1, this._y);
-          this._context.lineTo(x1, y);
-        }
-        break;
-      }
-    }
-    this._x = x, this._y = y;
-  }
-};
-
-function step(context) {
-  return new Step(context, 0.5);
-}
-
-function stepBefore(context) {
-  return new Step(context, 0);
-}
-
-function stepAfter(context) {
-  return new Step(context, 1);
-}
-
-function none$1(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
-
-function none(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
-
-function stackValue(d, key) {
-  return d[key];
-}
-
-function stackSeries(key) {
-  const series = [];
-  series.key = key;
-  return series;
-}
-
-function stack() {
-  var keys = constant([]),
-      order = none,
-      offset = none$1,
-      value = stackValue;
-
-  function stack(data) {
-    var sz = Array.from(keys.apply(this, arguments), stackSeries),
-        i, n = sz.length, j = -1,
-        oz;
-
-    for (const d of data) {
-      for (i = 0, ++j; i < n; ++i) {
-        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
-      }
-    }
-
-    for (i = 0, oz = array(order(sz)); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-
-    offset(sz, oz);
-    return sz;
-  }
-
-  stack.keys = function(_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : constant(Array.from(_)), stack) : keys;
-  };
-
-  stack.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value;
-  };
-
-  stack.order = function(_) {
-    return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant(Array.from(_)), stack) : order;
-  };
-
-  stack.offset = function(_) {
-    return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset;
-  };
-
-  return stack;
-}
-
-function expand(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  none$1(series, order);
-}
-
-function diverging(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
-
-function silhouette(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  none$1(series, order);
-}
-
-function wiggle(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-          sij0 = si[j][1] || 0,
-          sij1 = si[j - 1][1] || 0,
-          s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-            skj0 = sk[j][1] || 0,
-            skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  none$1(series, order);
-}
-
-function appearance(series) {
-  var peaks = series.map(peak);
-  return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
-}
-
-function peak(series) {
-  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
-
-function ascending(series) {
-  var sums = series.map(sum);
-  return none(series).sort(function(a, b) { return sums[a] - sums[b]; });
-}
-
-function sum(series) {
-  var s = 0, i = -1, n = series.length, v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
-
-function descending(series) {
-  return ascending(series).reverse();
-}
-
-function insideOut(series) {
-  var n = series.length,
-      i,
-      j,
-      sums = series.map(sum),
-      order = appearance(series),
-      top = 0,
-      bottom = 0,
-      tops = [],
-      bottoms = [];
-
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-
-  return bottoms.reverse().concat(tops);
-}
-
-function reverse(series) {
-  return none(series).reverse();
-}
-
-exports.arc = arc;
-exports.area = area;
-exports.areaRadial = areaRadial;
-exports.curveBasis = basis;
-exports.curveBasisClosed = basisClosed;
-exports.curveBasisOpen = basisOpen;
-exports.curveBumpX = bumpX;
-exports.curveBumpY = bumpY;
-exports.curveBundle = bundle;
-exports.curveCardinal = cardinal;
-exports.curveCardinalClosed = cardinalClosed;
-exports.curveCardinalOpen = cardinalOpen;
-exports.curveCatmullRom = catmullRom;
-exports.curveCatmullRomClosed = catmullRomClosed;
-exports.curveCatmullRomOpen = catmullRomOpen;
-exports.curveLinear = curveLinear;
-exports.curveLinearClosed = linearClosed;
-exports.curveMonotoneX = monotoneX;
-exports.curveMonotoneY = monotoneY;
-exports.curveNatural = natural;
-exports.curveStep = step;
-exports.curveStepAfter = stepAfter;
-exports.curveStepBefore = stepBefore;
-exports.line = line;
-exports.lineRadial = lineRadial$1;
-exports.link = link;
-exports.linkHorizontal = linkHorizontal;
-exports.linkRadial = linkRadial;
-exports.linkVertical = linkVertical;
-exports.pie = pie;
-exports.pointRadial = pointRadial;
-exports.radialArea = areaRadial;
-exports.radialLine = lineRadial$1;
-exports.stack = stack;
-exports.stackOffsetDiverging = diverging;
-exports.stackOffsetExpand = expand;
-exports.stackOffsetNone = none$1;
-exports.stackOffsetSilhouette = silhouette;
-exports.stackOffsetWiggle = wiggle;
-exports.stackOrderAppearance = appearance;
-exports.stackOrderAscending = ascending;
-exports.stackOrderDescending = descending;
-exports.stackOrderInsideOut = insideOut;
-exports.stackOrderNone = none;
-exports.stackOrderReverse = reverse;
-exports.symbol = Symbol;
-exports.symbolAsterisk = asterisk;
-exports.symbolCircle = circle;
-exports.symbolCross = cross;
-exports.symbolDiamond = diamond;
-exports.symbolDiamond2 = diamond2;
-exports.symbolPlus = plus;
-exports.symbolSquare = square;
-exports.symbolSquare2 = square2;
-exports.symbolStar = star;
-exports.symbolTimes = times;
-exports.symbolTriangle = triangle;
-exports.symbolTriangle2 = triangle2;
-exports.symbolWye = wye;
-exports.symbolX = times;
-exports.symbols = symbolsFill;
-exports.symbolsFill = symbolsFill;
-exports.symbolsStroke = symbolsStroke;
-
-}));
Index: de_modules/d3-shape/dist/d3-shape.min.js
===================================================================
--- node_modules/d3-shape/dist/d3-shape.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-shape/ v3.2.0 Copyright 2010-2022 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-path")):"function"==typeof define&&define.amd?define(["exports","d3-path"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3)}(this,(function(t,n){"use strict";function i(t){return function(){return t}}const e=Math.abs,s=Math.atan2,o=Math.cos,h=Math.max,_=Math.min,r=Math.sin,a=Math.sqrt,l=1e-12,c=Math.PI,u=c/2,f=2*c;function y(t){return t>1?0:t<-1?c:Math.acos(t)}function x(t){return t>=1?u:t<=-1?-u:Math.asin(t)}function p(t){let i=3;return t.digits=function(n){if(!arguments.length)return i;if(null==n)i=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);i=t}return t},()=>new n.Path(i)}function v(t){return t.innerRadius}function d(t){return t.outerRadius}function T(t){return t.startAngle}function g(t){return t.endAngle}function m(t){return t&&t.padAngle}function b(t,n,i,e,s,o,h,_){var r=i-t,a=e-n,c=h-s,u=_-o,f=u*r-c*a;if(!(f*f<l))return[t+(f=(c*(n-o)-u*(t-s))/f)*r,n+f*a]}function w(t,n,i,e,s,o,_){var r=t-i,l=n-e,c=(_?o:-o)/a(r*r+l*l),u=c*l,f=-c*r,y=t+u,x=n+f,p=i+u,v=e+f,d=(y+p)/2,T=(x+v)/2,g=p-y,m=v-x,b=g*g+m*m,w=s-o,k=y*v-p*x,N=(m<0?-1:1)*a(h(0,w*w*b-k*k)),S=(k*m-g*N)/b,E=(-k*g-m*N)/b,A=(k*m+g*N)/b,P=(-k*g+m*N)/b,M=S-d,C=E-T,R=A-d,O=P-T;return M*M+C*C>R*R+O*O&&(S=A,E=P),{cx:S,cy:E,x01:-u,y01:-f,x11:S*(s/w-1),y11:E*(s/w-1)}}var k=Array.prototype.slice;function N(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function S(t){this._context=t}function E(t){return new S(t)}function A(t){return t[0]}function P(t){return t[1]}function M(t,n){var e=i(!0),s=null,o=E,h=null,_=p(r);function r(i){var r,a,l,c=(i=N(i)).length,u=!1;for(null==s&&(h=o(l=_())),r=0;r<=c;++r)!(r<c&&e(a=i[r],r,i))===u&&((u=!u)?h.lineStart():h.lineEnd()),u&&h.point(+t(a,r,i),+n(a,r,i));if(l)return h=null,l+""||null}return t="function"==typeof t?t:void 0===t?A:i(t),n="function"==typeof n?n:void 0===n?P:i(n),r.x=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),r):t},r.y=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),r):n},r.defined=function(t){return arguments.length?(e="function"==typeof t?t:i(!!t),r):e},r.curve=function(t){return arguments.length?(o=t,null!=s&&(h=o(s)),r):o},r.context=function(t){return arguments.length?(null==t?s=h=null:h=o(s=t),r):s},r}function C(t,n,e){var s=null,o=i(!0),h=null,_=E,r=null,a=p(l);function l(i){var l,c,u,f,y,x=(i=N(i)).length,p=!1,v=new Array(x),d=new Array(x);for(null==h&&(r=_(y=a())),l=0;l<=x;++l){if(!(l<x&&o(f=i[l],l,i))===p)if(p=!p)c=l,r.areaStart(),r.lineStart();else{for(r.lineEnd(),r.lineStart(),u=l-1;u>=c;--u)r.point(v[u],d[u]);r.lineEnd(),r.areaEnd()}p&&(v[l]=+t(f,l,i),d[l]=+n(f,l,i),r.point(s?+s(f,l,i):v[l],e?+e(f,l,i):d[l]))}if(y)return r=null,y+""||null}function c(){return M().defined(o).curve(_).context(h)}return t="function"==typeof t?t:void 0===t?A:i(+t),n="function"==typeof n?n:i(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?P:i(+e),l.x=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),s=null,l):t},l.x0=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),l):t},l.x1=function(t){return arguments.length?(s=null==t?null:"function"==typeof t?t:i(+t),l):s},l.y=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),e=null,l):n},l.y0=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),l):n},l.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:i(+t),l):e},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(e)},l.lineX1=function(){return c().x(s).y(n)},l.defined=function(t){return arguments.length?(o="function"==typeof t?t:i(!!t),l):o},l.curve=function(t){return arguments.length?(_=t,null!=h&&(r=_(h)),l):_},l.context=function(t){return arguments.length?(null==t?h=r=null:r=_(h=t),l):h},l}function R(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function O(t){return t}S.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var z=Y(E);function X(t){this._curve=t}function Y(t){function n(n){return new X(t(n))}return n._curve=t,n}function q(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Y(t)):n()._curve},t}function B(){return q(M().curve(z))}function D(){var t=C().curve(z),n=t.curve,i=t.lineX0,e=t.lineX1,s=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return q(i())},delete t.lineX0,t.lineEndAngle=function(){return q(e())},delete t.lineX1,t.lineInnerRadius=function(){return q(s())},delete t.lineY0,t.lineOuterRadius=function(){return q(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Y(t)):n()._curve},t}function I(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}X.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};class j{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}class L{constructor(t){this._context=t}lineStart(){this._point=0}lineEnd(){}point(t,n){if(t=+t,n=+n,0===this._point)this._point=1;else{const i=I(this._x0,this._y0),e=I(this._x0,this._y0=(this._y0+n)/2),s=I(t,this._y0),o=I(t,n);this._context.moveTo(...i),this._context.bezierCurveTo(...e,...s,...o)}this._x0=t,this._y0=n}}function V(t){return new j(t,!0)}function W(t){return new j(t,!1)}function F(t){return new L(t)}function H(t){return t.source}function $(t){return t.target}function G(t){let n=H,e=$,s=A,o=P,h=null,_=null,r=p(a);function a(){let i;const a=k.call(arguments),l=n.apply(this,a),c=e.apply(this,a);if(null==h&&(_=t(i=r())),_.lineStart(),a[0]=l,_.point(+s.apply(this,a),+o.apply(this,a)),a[0]=c,_.point(+s.apply(this,a),+o.apply(this,a)),_.lineEnd(),i)return _=null,i+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),a):s},a.y=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),a):o},a.context=function(n){return arguments.length?(null==n?h=_=null:_=t(h=n),a):h},a}const J=a(3);var K={draw(t,n){const i=.59436*a(n+_(n/28,.75)),e=i/2,s=e*J;t.moveTo(0,i),t.lineTo(0,-i),t.moveTo(-s,-e),t.lineTo(s,e),t.moveTo(-s,e),t.lineTo(s,-e)}},Q={draw(t,n){const i=a(n/c);t.moveTo(i,0),t.arc(0,0,i,0,f)}},U={draw(t,n){const i=a(n/5)/2;t.moveTo(-3*i,-i),t.lineTo(-i,-i),t.lineTo(-i,-3*i),t.lineTo(i,-3*i),t.lineTo(i,-i),t.lineTo(3*i,-i),t.lineTo(3*i,i),t.lineTo(i,i),t.lineTo(i,3*i),t.lineTo(-i,3*i),t.lineTo(-i,i),t.lineTo(-3*i,i),t.closePath()}};const Z=a(1/3),tt=2*Z;var nt={draw(t,n){const i=a(n/tt),e=i*Z;t.moveTo(0,-i),t.lineTo(e,0),t.lineTo(0,i),t.lineTo(-e,0),t.closePath()}},it={draw(t,n){const i=.62625*a(n);t.moveTo(0,-i),t.lineTo(i,0),t.lineTo(0,i),t.lineTo(-i,0),t.closePath()}},et={draw(t,n){const i=.87559*a(n-_(n/7,2));t.moveTo(-i,0),t.lineTo(i,0),t.moveTo(0,i),t.lineTo(0,-i)}},st={draw(t,n){const i=a(n),e=-i/2;t.rect(e,e,i,i)}},ot={draw(t,n){const i=.4431*a(n);t.moveTo(i,i),t.lineTo(i,-i),t.lineTo(-i,-i),t.lineTo(-i,i),t.closePath()}};const ht=r(c/10)/r(7*c/10),_t=r(f/10)*ht,rt=-o(f/10)*ht;var at={draw(t,n){const i=a(.8908130915292852*n),e=_t*i,s=rt*i;t.moveTo(0,-i),t.lineTo(e,s);for(let n=1;n<5;++n){const h=f*n/5,_=o(h),a=r(h);t.lineTo(a*i,-_*i),t.lineTo(_*e-a*s,a*e+_*s)}t.closePath()}};const lt=a(3);var ct={draw(t,n){const i=-a(n/(3*lt));t.moveTo(0,2*i),t.lineTo(-lt*i,-i),t.lineTo(lt*i,-i),t.closePath()}};const ut=a(3);var ft={draw(t,n){const i=.6824*a(n),e=i/2,s=i*ut/2;t.moveTo(0,-i),t.lineTo(s,e),t.lineTo(-s,e),t.closePath()}};const yt=-.5,xt=a(3)/2,pt=1/a(12),vt=3*(pt/2+1);var dt={draw(t,n){const i=a(n/vt),e=i/2,s=i*pt,o=e,h=i*pt+i,_=-o,r=h;t.moveTo(e,s),t.lineTo(o,h),t.lineTo(_,r),t.lineTo(yt*e-xt*s,xt*e+yt*s),t.lineTo(yt*o-xt*h,xt*o+yt*h),t.lineTo(yt*_-xt*r,xt*_+yt*r),t.lineTo(yt*e+xt*s,yt*s-xt*e),t.lineTo(yt*o+xt*h,yt*h-xt*o),t.lineTo(yt*_+xt*r,yt*r-xt*_),t.closePath()}},Tt={draw(t,n){const i=.6189*a(n-_(n/6,1.7));t.moveTo(-i,-i),t.lineTo(i,i),t.moveTo(-i,i),t.lineTo(i,-i)}};const gt=[Q,U,nt,st,at,ct,dt],mt=[Q,et,Tt,ft,K,ot,it];function bt(){}function wt(t,n,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+i)/6)}function kt(t){this._context=t}function Nt(t){this._context=t}function St(t){this._context=t}function Et(t,n){this._basis=new kt(t),this._beta=n}kt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:wt(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:wt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Nt.prototype={areaStart:bt,areaEnd:bt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:wt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},St.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,e=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(i,e):this._context.moveTo(i,e);break;case 3:this._point=4;default:wt(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Et.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,i=t.length-1;if(i>0)for(var e,s=t[0],o=n[0],h=t[i]-s,_=n[i]-o,r=-1;++r<=i;)e=r/i,this._basis.point(this._beta*t[r]+(1-this._beta)*(s+e*h),this._beta*n[r]+(1-this._beta)*(o+e*_));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var At=function t(n){function i(t){return 1===n?new kt(t):new Et(t,n)}return i.beta=function(n){return t(+n)},i}(.85);function Pt(t,n,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function Mt(t,n){this._context=t,this._k=(1-n)/6}Mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Pt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Pt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Ct=function t(n){function i(t){return new Mt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function Rt(t,n){this._context=t,this._k=(1-n)/6}Rt.prototype={areaStart:bt,areaEnd:bt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Pt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Ot=function t(n){function i(t){return new Rt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function zt(t,n){this._context=t,this._k=(1-n)/6}zt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Pt(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Xt=function t(n){function i(t){return new zt(t,n)}return i.tension=function(n){return t(+n)},i}(0);function Yt(t,n,i){var e=t._x1,s=t._y1,o=t._x2,h=t._y2;if(t._l01_a>l){var _=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,r=3*t._l01_a*(t._l01_a+t._l12_a);e=(e*_-t._x0*t._l12_2a+t._x2*t._l01_2a)/r,s=(s*_-t._y0*t._l12_2a+t._y2*t._l01_2a)/r}if(t._l23_a>l){var a=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*a+t._x1*t._l23_2a-n*t._l12_2a)/c,h=(h*a+t._y1*t._l23_2a-i*t._l12_2a)/c}t._context.bezierCurveTo(e,s,o,h,t._x2,t._y2)}function qt(t,n){this._context=t,this._alpha=n}qt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Yt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Bt=function t(n){function i(t){return n?new qt(t,n):new Mt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function Dt(t,n){this._context=t,this._alpha=n}Dt.prototype={areaStart:bt,areaEnd:bt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Yt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var It=function t(n){function i(t){return n?new Dt(t,n):new Rt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function jt(t,n){this._context=t,this._alpha=n}jt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var i=this._x2-t,e=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+e*e,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Yt(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Lt=function t(n){function i(t){return n?new jt(t,n):new zt(t,0)}return i.alpha=function(n){return t(+n)},i}(.5);function Vt(t){this._context=t}function Wt(t){return t<0?-1:1}function Ft(t,n,i){var e=t._x1-t._x0,s=n-t._x1,o=(t._y1-t._y0)/(e||s<0&&-0),h=(i-t._y1)/(s||e<0&&-0),_=(o*s+h*e)/(e+s);return(Wt(o)+Wt(h))*Math.min(Math.abs(o),Math.abs(h),.5*Math.abs(_))||0}function Ht(t,n){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-n)/2:n}function $t(t,n,i){var e=t._x0,s=t._y0,o=t._x1,h=t._y1,_=(o-e)/3;t._context.bezierCurveTo(e+_,s+_*n,o-_,h-_*i,o,h)}function Gt(t){this._context=t}function Jt(t){this._context=new Kt(t)}function Kt(t){this._context=t}function Qt(t){this._context=t}function Ut(t){var n,i,e=t.length-1,s=new Array(e),o=new Array(e),h=new Array(e);for(s[0]=0,o[0]=2,h[0]=t[0]+2*t[1],n=1;n<e-1;++n)s[n]=1,o[n]=4,h[n]=4*t[n]+2*t[n+1];for(s[e-1]=2,o[e-1]=7,h[e-1]=8*t[e-1]+t[e],n=1;n<e;++n)i=s[n]/o[n-1],o[n]-=i,h[n]-=i*h[n-1];for(s[e-1]=h[e-1]/o[e-1],n=e-2;n>=0;--n)s[n]=(h[n]-s[n+1])/o[n];for(o[e-1]=(t[e]+s[e-1])/2,n=0;n<e-1;++n)o[n]=2*t[n+1]-s[n+1];return[s,o]}function Zt(t,n){this._context=t,this._t=n}function tn(t,n){if((s=t.length)>1)for(var i,e,s,o=1,h=t[n[0]],_=h.length;o<s;++o)for(e=h,h=t[n[o]],i=0;i<_;++i)h[i][1]+=h[i][0]=isNaN(e[i][1])?e[i][0]:e[i][1]}function nn(t){for(var n=t.length,i=new Array(n);--n>=0;)i[n]=n;return i}function en(t,n){return t[n]}function sn(t){const n=[];return n.key=t,n}function on(t){var n=t.map(hn);return nn(t).sort((function(t,i){return n[t]-n[i]}))}function hn(t){for(var n,i=-1,e=0,s=t.length,o=-1/0;++i<s;)(n=+t[i][1])>o&&(o=n,e=i);return e}function _n(t){var n=t.map(rn);return nn(t).sort((function(t,i){return n[t]-n[i]}))}function rn(t){for(var n,i=0,e=-1,s=t.length;++e<s;)(n=+t[e][1])&&(i+=n);return i}Vt.prototype={areaStart:bt,areaEnd:bt,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},Gt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$t(this,this._t0,Ht(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var i=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,$t(this,Ht(this,i=Ft(this,t,n)),i);break;default:$t(this,this._t0,i=Ft(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=i}}},(Jt.prototype=Object.create(Gt.prototype)).point=function(t,n){Gt.prototype.point.call(this,n,t)},Kt.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,i,e,s,o){this._context.bezierCurveTo(n,t,e,i,o,s)}},Qt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===i)this._context.lineTo(t[1],n[1]);else for(var e=Ut(t),s=Ut(n),o=0,h=1;h<i;++o,++h)this._context.bezierCurveTo(e[0][o],s[0][o],e[1][o],s[1][o],t[h],n[h]);(this._line||0!==this._line&&1===i)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},Zt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,n)}}this._x=t,this._y=n}},t.arc=function(){var t=v,n=d,h=i(0),k=null,N=T,S=g,E=m,A=null,P=p(M);function M(){var i,p,v=+t.apply(this,arguments),d=+n.apply(this,arguments),T=N.apply(this,arguments)-u,g=S.apply(this,arguments)-u,m=e(g-T),M=g>T;if(A||(A=i=P()),d<v&&(p=d,d=v,v=p),d>l)if(m>f-l)A.moveTo(d*o(T),d*r(T)),A.arc(0,0,d,T,g,!M),v>l&&(A.moveTo(v*o(g),v*r(g)),A.arc(0,0,v,g,T,M));else{var C,R,O=T,z=g,X=T,Y=g,q=m,B=m,D=E.apply(this,arguments)/2,I=D>l&&(k?+k.apply(this,arguments):a(v*v+d*d)),j=_(e(d-v)/2,+h.apply(this,arguments)),L=j,V=j;if(I>l){var W=x(I/v*r(D)),F=x(I/d*r(D));(q-=2*W)>l?(X+=W*=M?1:-1,Y-=W):(q=0,X=Y=(T+g)/2),(B-=2*F)>l?(O+=F*=M?1:-1,z-=F):(B=0,O=z=(T+g)/2)}var H=d*o(O),$=d*r(O),G=v*o(Y),J=v*r(Y);if(j>l){var K,Q=d*o(z),U=d*r(z),Z=v*o(X),tt=v*r(X);if(m<c)if(K=b(H,$,Z,tt,Q,U,G,J)){var nt=H-K[0],it=$-K[1],et=Q-K[0],st=U-K[1],ot=1/r(y((nt*et+it*st)/(a(nt*nt+it*it)*a(et*et+st*st)))/2),ht=a(K[0]*K[0]+K[1]*K[1]);L=_(j,(v-ht)/(ot-1)),V=_(j,(d-ht)/(ot+1))}else L=V=0}B>l?V>l?(C=w(Z,tt,H,$,d,V,M),R=w(Q,U,G,J,d,V,M),A.moveTo(C.cx+C.x01,C.cy+C.y01),V<j?A.arc(C.cx,C.cy,V,s(C.y01,C.x01),s(R.y01,R.x01),!M):(A.arc(C.cx,C.cy,V,s(C.y01,C.x01),s(C.y11,C.x11),!M),A.arc(0,0,d,s(C.cy+C.y11,C.cx+C.x11),s(R.cy+R.y11,R.cx+R.x11),!M),A.arc(R.cx,R.cy,V,s(R.y11,R.x11),s(R.y01,R.x01),!M))):(A.moveTo(H,$),A.arc(0,0,d,O,z,!M)):A.moveTo(H,$),v>l&&q>l?L>l?(C=w(G,J,Q,U,v,-L,M),R=w(H,$,Z,tt,v,-L,M),A.lineTo(C.cx+C.x01,C.cy+C.y01),L<j?A.arc(C.cx,C.cy,L,s(C.y01,C.x01),s(R.y01,R.x01),!M):(A.arc(C.cx,C.cy,L,s(C.y01,C.x01),s(C.y11,C.x11),!M),A.arc(0,0,v,s(C.cy+C.y11,C.cx+C.x11),s(R.cy+R.y11,R.cx+R.x11),M),A.arc(R.cx,R.cy,L,s(R.y11,R.x11),s(R.y01,R.x01),!M))):A.arc(0,0,v,Y,X,M):A.lineTo(G,J)}else A.moveTo(0,0);if(A.closePath(),i)return A=null,i+""||null}return M.centroid=function(){var i=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,e=(+N.apply(this,arguments)+ +S.apply(this,arguments))/2-c/2;return[o(e)*i,r(e)*i]},M.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),M):t},M.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),M):n},M.cornerRadius=function(t){return arguments.length?(h="function"==typeof t?t:i(+t),M):h},M.padRadius=function(t){return arguments.length?(k=null==t?null:"function"==typeof t?t:i(+t),M):k},M.startAngle=function(t){return arguments.length?(N="function"==typeof t?t:i(+t),M):N},M.endAngle=function(t){return arguments.length?(S="function"==typeof t?t:i(+t),M):S},M.padAngle=function(t){return arguments.length?(E="function"==typeof t?t:i(+t),M):E},M.context=function(t){return arguments.length?(A=null==t?null:t,M):A},M},t.area=C,t.areaRadial=D,t.curveBasis=function(t){return new kt(t)},t.curveBasisClosed=function(t){return new Nt(t)},t.curveBasisOpen=function(t){return new St(t)},t.curveBumpX=V,t.curveBumpY=W,t.curveBundle=At,t.curveCardinal=Ct,t.curveCardinalClosed=Ot,t.curveCardinalOpen=Xt,t.curveCatmullRom=Bt,t.curveCatmullRomClosed=It,t.curveCatmullRomOpen=Lt,t.curveLinear=E,t.curveLinearClosed=function(t){return new Vt(t)},t.curveMonotoneX=function(t){return new Gt(t)},t.curveMonotoneY=function(t){return new Jt(t)},t.curveNatural=function(t){return new Qt(t)},t.curveStep=function(t){return new Zt(t,.5)},t.curveStepAfter=function(t){return new Zt(t,1)},t.curveStepBefore=function(t){return new Zt(t,0)},t.line=M,t.lineRadial=B,t.link=G,t.linkHorizontal=function(){return G(V)},t.linkRadial=function(){const t=G(F);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return G(W)},t.pie=function(){var t=O,n=R,e=null,s=i(0),o=i(f),h=i(0);function _(i){var _,r,a,l,c,u=(i=N(i)).length,y=0,x=new Array(u),p=new Array(u),v=+s.apply(this,arguments),d=Math.min(f,Math.max(-f,o.apply(this,arguments)-v)),T=Math.min(Math.abs(d)/u,h.apply(this,arguments)),g=T*(d<0?-1:1);for(_=0;_<u;++_)(c=p[x[_]=_]=+t(i[_],_,i))>0&&(y+=c);for(null!=n?x.sort((function(t,i){return n(p[t],p[i])})):null!=e&&x.sort((function(t,n){return e(i[t],i[n])})),_=0,a=y?(d-u*g)/y:0;_<u;++_,v=l)r=x[_],l=v+((c=p[r])>0?c*a:0)+g,p[r]={data:i[r],index:_,value:c,startAngle:v,endAngle:l,padAngle:T};return p}return _.value=function(n){return arguments.length?(t="function"==typeof n?n:i(+n),_):t},_.sortValues=function(t){return arguments.length?(n=t,e=null,_):n},_.sort=function(t){return arguments.length?(e=t,n=null,_):e},_.startAngle=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),_):s},_.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),_):o},_.padAngle=function(t){return arguments.length?(h="function"==typeof t?t:i(+t),_):h},_},t.pointRadial=I,t.radialArea=D,t.radialLine=B,t.stack=function(){var t=i([]),n=nn,e=tn,s=en;function o(i){var o,h,_=Array.from(t.apply(this,arguments),sn),r=_.length,a=-1;for(const t of i)for(o=0,++a;o<r;++o)(_[o][a]=[0,+s(t,_[o].key,a,i)]).data=t;for(o=0,h=N(n(_));o<r;++o)_[h[o]].index=o;return e(_,h),_}return o.keys=function(n){return arguments.length?(t="function"==typeof n?n:i(Array.from(n)),o):t},o.value=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),o):s},o.order=function(t){return arguments.length?(n=null==t?nn:"function"==typeof t?t:i(Array.from(t)),o):n},o.offset=function(t){return arguments.length?(e=null==t?tn:t,o):e},o},t.stackOffsetDiverging=function(t,n){if((_=t.length)>0)for(var i,e,s,o,h,_,r=0,a=t[n[0]].length;r<a;++r)for(o=h=0,i=0;i<_;++i)(s=(e=t[n[i]][r])[1]-e[0])>0?(e[0]=o,e[1]=o+=s):s<0?(e[1]=h,e[0]=h+=s):(e[0]=0,e[1]=s)},t.stackOffsetExpand=function(t,n){if((e=t.length)>0){for(var i,e,s,o=0,h=t[0].length;o<h;++o){for(s=i=0;i<e;++i)s+=t[i][o][1]||0;if(s)for(i=0;i<e;++i)t[i][o][1]/=s}tn(t,n)}},t.stackOffsetNone=tn,t.stackOffsetSilhouette=function(t,n){if((i=t.length)>0){for(var i,e=0,s=t[n[0]],o=s.length;e<o;++e){for(var h=0,_=0;h<i;++h)_+=t[h][e][1]||0;s[e][1]+=s[e][0]=-_/2}tn(t,n)}},t.stackOffsetWiggle=function(t,n){if((s=t.length)>0&&(e=(i=t[n[0]]).length)>0){for(var i,e,s,o=0,h=1;h<e;++h){for(var _=0,r=0,a=0;_<s;++_){for(var l=t[n[_]],c=l[h][1]||0,u=(c-(l[h-1][1]||0))/2,f=0;f<_;++f){var y=t[n[f]];u+=(y[h][1]||0)-(y[h-1][1]||0)}r+=c,a+=u*c}i[h-1][1]+=i[h-1][0]=o,r&&(o-=a/r)}i[h-1][1]+=i[h-1][0]=o,tn(t,n)}},t.stackOrderAppearance=on,t.stackOrderAscending=_n,t.stackOrderDescending=function(t){return _n(t).reverse()},t.stackOrderInsideOut=function(t){var n,i,e=t.length,s=t.map(rn),o=on(t),h=0,_=0,r=[],a=[];for(n=0;n<e;++n)i=o[n],h<_?(h+=s[i],r.push(i)):(_+=s[i],a.push(i));return a.reverse().concat(r)},t.stackOrderNone=nn,t.stackOrderReverse=function(t){return nn(t).reverse()},t.symbol=function(t,n){let e=null,s=p(o);function o(){let i;if(e||(e=i=s()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),i)return e=null,i+""||null}return t="function"==typeof t?t:i(t||Q),n="function"==typeof n?n:i(void 0===n?64:+n),o.type=function(n){return arguments.length?(t="function"==typeof n?n:i(n),o):t},o.size=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),o):n},o.context=function(t){return arguments.length?(e=null==t?null:t,o):e},o},t.symbolAsterisk=K,t.symbolCircle=Q,t.symbolCross=U,t.symbolDiamond=nt,t.symbolDiamond2=it,t.symbolPlus=et,t.symbolSquare=st,t.symbolSquare2=ot,t.symbolStar=at,t.symbolTimes=Tt,t.symbolTriangle=ct,t.symbolTriangle2=ft,t.symbolWye=dt,t.symbolX=Tt,t.symbols=gt,t.symbolsFill=gt,t.symbolsStroke=mt}));
Index: de_modules/d3-shape/package.json
===================================================================
--- node_modules/d3-shape/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-{
-  "name": "d3-shape",
-  "version": "3.2.0",
-  "description": "Graphical primitives for visualization, such as lines and areas.",
-  "homepage": "https://d3js.org/d3-shape/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-shape.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "graphics",
-    "visualization",
-    "canvas",
-    "svg"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-shape.min.js",
-  "unpkg": "dist/d3-shape.min.js",
-  "exports": {
-    "umd": "./dist/d3-shape.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-path": "^3.1.0"
-  },
-  "devDependencies": {
-    "d3-polygon": "1 - 3",
-    "eslint": "8",
-    "mocha": "10",
-    "rollup": "3",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-shape/src/arc.js
===================================================================
--- node_modules/d3-shape/src/arc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,268 +1,0 @@
-import constant from "./constant.js";
-import {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from "./math.js";
-import {withPath} from "./path.js";
-
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0, y10 = y1 - y0,
-      x32 = x3 - x2, y32 = y3 - y2,
-      t = y32 * x10 - x32 * y10;
-  if (t * t < epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-      y01 = y0 - y1,
-      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),
-      ox = lo * y01,
-      oy = -lo * x01,
-      x11 = x0 + ox,
-      y11 = y0 + oy,
-      x10 = x1 + ox,
-      y10 = y1 + oy,
-      x00 = (x11 + x10) / 2,
-      y00 = (y11 + y10) / 2,
-      dx = x10 - x11,
-      dy = y10 - y11,
-      d2 = dx * dx + dy * dy,
-      r = r1 - rc,
-      D = x11 * y10 - x10 * y11,
-      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),
-      cx0 = (D * dy - dx * d) / d2,
-      cy0 = (-D * dx - dy * d) / d2,
-      cx1 = (D * dy + dx * d) / d2,
-      cy1 = (-D * dx + dy * d) / d2,
-      dx0 = cx0 - x00,
-      dy0 = cy0 - y00,
-      dx1 = cx1 - x00,
-      dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-
-export default function() {
-  var innerRadius = arcInnerRadius,
-      outerRadius = arcOuterRadius,
-      cornerRadius = constant(0),
-      padRadius = null,
-      startAngle = arcStartAngle,
-      endAngle = arcEndAngle,
-      padAngle = arcPadAngle,
-      context = null,
-      path = withPath(arc);
-
-  function arc() {
-    var buffer,
-        r,
-        r0 = +innerRadius.apply(this, arguments),
-        r1 = +outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) - halfPi,
-        a1 = endAngle.apply(this, arguments) - halfPi,
-        da = abs(a1 - a0),
-        cw = a1 > a0;
-
-    if (!context) context = buffer = path();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > tau - epsilon) {
-      context.moveTo(r1 * cos(a0), r1 * sin(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > epsilon) {
-        context.moveTo(r0 * cos(a1), r0 * sin(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-          a11 = a1,
-          a00 = a0,
-          a10 = a1,
-          da0 = da,
-          da1 = da,
-          ap = padAngle.apply(this, arguments) / 2,
-          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),
-          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-          rc0 = rc,
-          rc1 = rc,
-          t0,
-          t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > epsilon) {
-        var p0 = asin(rp / r0 * sin(ap)),
-            p1 = asin(rp / r1 * sin(ap));
-        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
-        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
-        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-
-      var x01 = r1 * cos(a01),
-          y01 = r1 * sin(a01),
-          x10 = r0 * cos(a10),
-          y10 = r0 * sin(a10);
-
-      // Apply rounded corners?
-      if (rc > epsilon) {
-        var x11 = r1 * cos(a11),
-            y11 = r1 * sin(a11),
-            x00 = r0 * cos(a00),
-            y00 = r0 * sin(a00),
-            oc;
-
-        // Restrict the corner radius according to the sector angle. If this
-        // intersection fails, it’s probably because the arc is too small, so
-        // disable the corner radius entirely.
-        if (da < pi) {
-          if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {
-            var ax = x01 - oc[0],
-                ay = y01 - oc[1],
-                bx = x11 - oc[0],
-                by = y11 - oc[1],
-                kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),
-                lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-            rc0 = min(rc, (r0 - lc) / (kc - 1));
-            rc1 = min(rc, (r1 - lc) / (kc + 1));
-          } else {
-            rc0 = rc1 = 0;
-          }
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  arc.centroid = function() {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
-    return [cos(a) * r, sin(a) * r];
-  };
-
-  arc.innerRadius = function(_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
-  };
-
-  arc.outerRadius = function(_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
-  };
-
-  arc.cornerRadius = function(_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
-  };
-
-  arc.padRadius = function(_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
-  };
-
-  arc.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
-  };
-
-  arc.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
-  };
-
-  arc.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
-  };
-
-  arc.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
-  };
-
-  return arc;
-}
Index: de_modules/d3-shape/src/area.js
===================================================================
--- node_modules/d3-shape/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-import array from "./array.js";
-import constant from "./constant.js";
-import curveLinear from "./curve/linear.js";
-import line from "./line.js";
-import {withPath} from "./path.js";
-import {x as pointX, y as pointY} from "./point.js";
-
-export default function(x0, y0, y1) {
-  var x1 = null,
-      defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(area);
-
-  x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? pointX : constant(+x0);
-  y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);
-  y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? pointY : constant(+y1);
-
-  function area(data) {
-    var i,
-        j,
-        k,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer,
-        x0z = new Array(n),
-        y0z = new Array(n);
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  function arealine() {
-    return line().defined(defined).curve(curve).context(context);
-  }
-
-  area.x = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0;
-  };
-
-  area.x0 = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0;
-  };
-
-  area.x1 = function(_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1;
-  };
-
-  area.y = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0;
-  };
-
-  area.y0 = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0;
-  };
-
-  area.y1 = function(_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1;
-  };
-
-  area.lineX0 =
-  area.lineY0 = function() {
-    return arealine().x(x0).y(y0);
-  };
-
-  area.lineY1 = function() {
-    return arealine().x(x0).y(y1);
-  };
-
-  area.lineX1 = function() {
-    return arealine().x(x1).y(y0);
-  };
-
-  area.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined;
-  };
-
-  area.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-
-  area.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-
-  return area;
-}
Index: de_modules/d3-shape/src/areaRadial.js
===================================================================
--- node_modules/d3-shape/src/areaRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import curveRadial, {curveRadialLinear} from "./curve/radial.js";
-import area from "./area.js";
-import {lineRadial} from "./lineRadial.js";
-
-export default function() {
-  var a = area().curve(curveRadialLinear),
-      c = a.curve,
-      x0 = a.lineX0,
-      x1 = a.lineX1,
-      y0 = a.lineY0,
-      y1 = a.lineY1;
-
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
-  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
-  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
-  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;
-
-  a.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return a;
-}
Index: de_modules/d3-shape/src/array.js
===================================================================
--- node_modules/d3-shape/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export var slice = Array.prototype.slice;
-
-export default function(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
Index: de_modules/d3-shape/src/constant.js
===================================================================
--- node_modules/d3-shape/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(x) {
-  return function constant() {
-    return x;
-  };
-}
Index: de_modules/d3-shape/src/curve/basis.js
===================================================================
--- node_modules/d3-shape/src/curve/basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-export function point(that, x, y) {
-  that._context.bezierCurveTo(
-    (2 * that._x0 + that._x1) / 3,
-    (2 * that._y0 + that._y1) / 3,
-    (that._x0 + 2 * that._x1) / 3,
-    (that._y0 + 2 * that._y1) / 3,
-    (that._x0 + 4 * that._x1 + x) / 6,
-    (that._y0 + 4 * that._y1 + y) / 6
-  );
-}
-
-export function Basis(context) {
-  this._context = context;
-}
-
-Basis.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 3: point(this, this._x1, this._y1); // falls through
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new Basis(context);
-}
Index: de_modules/d3-shape/src/curve/basisClosed.js
===================================================================
--- node_modules/d3-shape/src/curve/basisClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import noop from "../noop.js";
-import {point} from "./basis.js";
-
-function BasisClosed(context) {
-  this._context = context;
-}
-
-BasisClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x2, this._y2);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x2, this._y2);
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
-      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
-      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new BasisClosed(context);
-}
Index: de_modules/d3-shape/src/curve/basisOpen.js
===================================================================
--- node_modules/d3-shape/src/curve/basisOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import {point} from "./basis.js";
-
-function BasisOpen(context) {
-  this._context = context;
-}
-
-BasisOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
-      case 3: this._point = 4; // falls through
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-export default function(context) {
-  return new BasisOpen(context);
-}
Index: de_modules/d3-shape/src/curve/bump.js
===================================================================
--- node_modules/d3-shape/src/curve/bump.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-import pointRadial from "../pointRadial.js";
-
-class Bump {
-  constructor(context, x) {
-    this._context = context;
-    this._x = x;
-  }
-  areaStart() {
-    this._line = 0;
-  }
-  areaEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  }
-  point(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: {
-        this._point = 1;
-        if (this._line) this._context.lineTo(x, y);
-        else this._context.moveTo(x, y);
-        break;
-      }
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);
-        else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
-        break;
-      }
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-class BumpRadial {
-  constructor(context) {
-    this._context = context;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {}
-  point(x, y) {
-    x = +x, y = +y;
-    if (this._point === 0) {
-      this._point = 1;
-    } else {
-      const p0 = pointRadial(this._x0, this._y0);
-      const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);
-      const p2 = pointRadial(x, this._y0);
-      const p3 = pointRadial(x, y);
-      this._context.moveTo(...p0);
-      this._context.bezierCurveTo(...p1, ...p2, ...p3);
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-export function bumpX(context) {
-  return new Bump(context, true);
-}
-
-export function bumpY(context) {
-  return new Bump(context, false);
-}
-
-export function bumpRadial(context) {
-  return new BumpRadial(context);
-}
Index: de_modules/d3-shape/src/curve/bundle.js
===================================================================
--- node_modules/d3-shape/src/curve/bundle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import {Basis} from "./basis.js";
-
-function Bundle(context, beta) {
-  this._basis = new Basis(context);
-  this._beta = beta;
-}
-
-Bundle.prototype = {
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        j = x.length - 1;
-
-    if (j > 0) {
-      var x0 = x[0],
-          y0 = y[0],
-          dx = x[j] - x0,
-          dy = y[j] - y0,
-          i = -1,
-          t;
-
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(
-          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
-          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
-        );
-      }
-    }
-
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-export default (function custom(beta) {
-
-  function bundle(context) {
-    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
-  }
-
-  bundle.beta = function(beta) {
-    return custom(+beta);
-  };
-
-  return bundle;
-})(0.85);
Index: de_modules/d3-shape/src/curve/cardinal.js
===================================================================
--- node_modules/d3-shape/src/curve/cardinal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-export function point(that, x, y) {
-  that._context.bezierCurveTo(
-    that._x1 + that._k * (that._x2 - that._x0),
-    that._y1 + that._k * (that._y2 - that._y0),
-    that._x2 + that._k * (that._x1 - x),
-    that._y2 + that._k * (that._y1 - y),
-    that._x2,
-    that._y2
-  );
-}
-
-export function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-Cardinal.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: point(this, this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
-      case 2: this._point = 3; // falls through
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-shape/src/curve/cardinalClosed.js
===================================================================
--- node_modules/d3-shape/src/curve/cardinalClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import noop from "../noop.js";
-import {point} from "./cardinal.js";
-
-export function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-shape/src/curve/cardinalOpen.js
===================================================================
--- node_modules/d3-shape/src/curve/cardinalOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import {point} from "./cardinal.js";
-
-export function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
Index: de_modules/d3-shape/src/curve/catmullRom.js
===================================================================
--- node_modules/d3-shape/src/curve/catmullRom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-import {epsilon} from "../math.js";
-import {Cardinal} from "./cardinal.js";
-
-export function point(that, x, y) {
-  var x1 = that._x1,
-      y1 = that._y1,
-      x2 = that._x2,
-      y2 = that._y2;
-
-  if (that._l01_a > epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-
-  if (that._l23_a > epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRom.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: this.point(this._x2, this._y2); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; // falls through
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-shape/src/curve/catmullRomClosed.js
===================================================================
--- node_modules/d3-shape/src/curve/catmullRomClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import {CardinalClosed} from "./cardinalClosed.js";
-import noop from "../noop.js";
-import {point} from "./catmullRom.js";
-
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-shape/src/curve/catmullRomOpen.js
===================================================================
--- node_modules/d3-shape/src/curve/catmullRomOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-import {CardinalOpen} from "./cardinalOpen.js";
-import {point} from "./catmullRom.js";
-
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-export default (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
Index: de_modules/d3-shape/src/curve/linear.js
===================================================================
--- node_modules/d3-shape/src/curve/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-function Linear(context) {
-  this._context = context;
-}
-
-Linear.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: this._context.lineTo(x, y); break;
-    }
-  }
-};
-
-export default function(context) {
-  return new Linear(context);
-}
Index: de_modules/d3-shape/src/curve/linearClosed.js
===================================================================
--- node_modules/d3-shape/src/curve/linearClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import noop from "../noop.js";
-
-function LinearClosed(context) {
-  this._context = context;
-}
-
-LinearClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._point) this._context.closePath();
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);
-    else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-
-export default function(context) {
-  return new LinearClosed(context);
-}
Index: de_modules/d3-shape/src/curve/monotone.js
===================================================================
--- node_modules/d3-shape/src/curve/monotone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-      h1 = x2 - that._x1,
-      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-      p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point(that, t0, t1) {
-  var x0 = that._x0,
-      y0 = that._y0,
-      x1 = that._x1,
-      y1 = that._y1,
-      dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-
-function MonotoneX(context) {
-  this._context = context;
-}
-
-MonotoneX.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 =
-    this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-      case 3: point(this, this._t0, slope2(this, this._t0)); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    var t1 = NaN;
-
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
-      default: point(this, this._t0, t1 = slope3(this, x, y)); break;
-    }
-
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-}
-
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-
-function ReflectContext(context) {
-  this._context = context;
-}
-
-ReflectContext.prototype = {
-  moveTo: function(x, y) { this._context.moveTo(y, x); },
-  closePath: function() { this._context.closePath(); },
-  lineTo: function(x, y) { this._context.lineTo(y, x); },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
-};
-
-export function monotoneX(context) {
-  return new MonotoneX(context);
-}
-
-export function monotoneY(context) {
-  return new MonotoneY(context);
-}
Index: de_modules/d3-shape/src/curve/natural.js
===================================================================
--- node_modules/d3-shape/src/curve/natural.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-function Natural(context) {
-  this._context = context;
-}
-
-Natural.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        n = x.length;
-
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-            py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-
-    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-      n = x.length - 1,
-      m,
-      a = new Array(n),
-      b = new Array(n),
-      r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-
-export default function(context) {
-  return new Natural(context);
-}
Index: de_modules/d3-shape/src/curve/radial.js
===================================================================
--- node_modules/d3-shape/src/curve/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import curveLinear from "./linear.js";
-
-export var curveRadialLinear = curveRadial(curveLinear);
-
-function Radial(curve) {
-  this._curve = curve;
-}
-
-Radial.prototype = {
-  areaStart: function() {
-    this._curve.areaStart();
-  },
-  areaEnd: function() {
-    this._curve.areaEnd();
-  },
-  lineStart: function() {
-    this._curve.lineStart();
-  },
-  lineEnd: function() {
-    this._curve.lineEnd();
-  },
-  point: function(a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-
-export default function curveRadial(curve) {
-
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-
-  radial._curve = curve;
-
-  return radial;
-}
Index: de_modules/d3-shape/src/curve/step.js
===================================================================
--- node_modules/d3-shape/src/curve/step.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-
-Step.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._t <= 0) {
-          this._context.lineTo(this._x, y);
-          this._context.lineTo(x, y);
-        } else {
-          var x1 = this._x * (1 - this._t) + x * this._t;
-          this._context.lineTo(x1, this._y);
-          this._context.lineTo(x1, y);
-        }
-        break;
-      }
-    }
-    this._x = x, this._y = y;
-  }
-};
-
-export default function(context) {
-  return new Step(context, 0.5);
-}
-
-export function stepBefore(context) {
-  return new Step(context, 0);
-}
-
-export function stepAfter(context) {
-  return new Step(context, 1);
-}
Index: de_modules/d3-shape/src/descending.js
===================================================================
--- node_modules/d3-shape/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
Index: de_modules/d3-shape/src/identity.js
===================================================================
--- node_modules/d3-shape/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(d) {
-  return d;
-}
Index: de_modules/d3-shape/src/index.js
===================================================================
--- node_modules/d3-shape/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-export {default as arc} from "./arc.js";
-export {default as area} from "./area.js";
-export {default as line} from "./line.js";
-export {default as pie} from "./pie.js";
-export {default as areaRadial, default as radialArea} from "./areaRadial.js"; // Note: radialArea is deprecated!
-export {default as lineRadial, default as radialLine} from "./lineRadial.js"; // Note: radialLine is deprecated!
-export {default as pointRadial} from "./pointRadial.js";
-export {link, linkHorizontal, linkVertical, linkRadial} from "./link.js";
-
-export {default as symbol, symbolsStroke, symbolsFill, symbolsFill as symbols} from "./symbol.js";
-export {default as symbolAsterisk} from "./symbol/asterisk.js";
-export {default as symbolCircle} from "./symbol/circle.js";
-export {default as symbolCross} from "./symbol/cross.js";
-export {default as symbolDiamond} from "./symbol/diamond.js";
-export {default as symbolDiamond2} from "./symbol/diamond2.js";
-export {default as symbolPlus} from "./symbol/plus.js";
-export {default as symbolSquare} from "./symbol/square.js";
-export {default as symbolSquare2} from "./symbol/square2.js";
-export {default as symbolStar} from "./symbol/star.js";
-export {default as symbolTriangle} from "./symbol/triangle.js";
-export {default as symbolTriangle2} from "./symbol/triangle2.js";
-export {default as symbolWye} from "./symbol/wye.js";
-export {default as symbolTimes, default as symbolX} from "./symbol/times.js";
-
-export {default as curveBasisClosed} from "./curve/basisClosed.js";
-export {default as curveBasisOpen} from "./curve/basisOpen.js";
-export {default as curveBasis} from "./curve/basis.js";
-export {bumpX as curveBumpX, bumpY as curveBumpY} from "./curve/bump.js";
-export {default as curveBundle} from "./curve/bundle.js";
-export {default as curveCardinalClosed} from "./curve/cardinalClosed.js";
-export {default as curveCardinalOpen} from "./curve/cardinalOpen.js";
-export {default as curveCardinal} from "./curve/cardinal.js";
-export {default as curveCatmullRomClosed} from "./curve/catmullRomClosed.js";
-export {default as curveCatmullRomOpen} from "./curve/catmullRomOpen.js";
-export {default as curveCatmullRom} from "./curve/catmullRom.js";
-export {default as curveLinearClosed} from "./curve/linearClosed.js";
-export {default as curveLinear} from "./curve/linear.js";
-export {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from "./curve/monotone.js";
-export {default as curveNatural} from "./curve/natural.js";
-export {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from "./curve/step.js";
-
-export {default as stack} from "./stack.js";
-export {default as stackOffsetExpand} from "./offset/expand.js";
-export {default as stackOffsetDiverging} from "./offset/diverging.js";
-export {default as stackOffsetNone} from "./offset/none.js";
-export {default as stackOffsetSilhouette} from "./offset/silhouette.js";
-export {default as stackOffsetWiggle} from "./offset/wiggle.js";
-export {default as stackOrderAppearance} from "./order/appearance.js";
-export {default as stackOrderAscending} from "./order/ascending.js";
-export {default as stackOrderDescending} from "./order/descending.js";
-export {default as stackOrderInsideOut} from "./order/insideOut.js";
-export {default as stackOrderNone} from "./order/none.js";
-export {default as stackOrderReverse} from "./order/reverse.js";
Index: de_modules/d3-shape/src/line.js
===================================================================
--- node_modules/d3-shape/src/line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-import array from "./array.js";
-import constant from "./constant.js";
-import curveLinear from "./curve/linear.js";
-import {withPath} from "./path.js";
-import {x as pointX, y as pointY} from "./point.js";
-
-export default function(x, y) {
-  var defined = constant(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(line);
-
-  x = typeof x === "function" ? x : (x === undefined) ? pointX : constant(x);
-  y = typeof y === "function" ? y : (y === undefined) ? pointY : constant(y);
-
-  function line(data) {
-    var i,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer;
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();
-        else output.lineEnd();
-      }
-      if (defined0) output.point(+x(d, i, data), +y(d, i, data));
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  line.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), line) : x;
-  };
-
-  line.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), line) : y;
-  };
-
-  line.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined;
-  };
-
-  line.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-
-  line.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-
-  return line;
-}
Index: de_modules/d3-shape/src/lineRadial.js
===================================================================
--- node_modules/d3-shape/src/lineRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import curveRadial, {curveRadialLinear} from "./curve/radial.js";
-import line from "./line.js";
-
-export function lineRadial(l) {
-  var c = l.curve;
-
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-
-  l.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return l;
-}
-
-export default function() {
-  return lineRadial(line().curve(curveRadialLinear));
-}
Index: de_modules/d3-shape/src/link.js
===================================================================
--- node_modules/d3-shape/src/link.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import {slice} from "./array.js";
-import constant from "./constant.js";
-import {bumpX, bumpY, bumpRadial} from "./curve/bump.js";
-import {withPath} from "./path.js";
-import {x as pointX, y as pointY} from "./point.js";
-
-function linkSource(d) {
-  return d.source;
-}
-
-function linkTarget(d) {
-  return d.target;
-}
-
-export function link(curve) {
-  let source = linkSource,
-      target = linkTarget,
-      x = pointX,
-      y = pointY,
-      context = null,
-      output = null,
-      path = withPath(link);
-
-  function link() {
-    let buffer;
-    const argv = slice.call(arguments);
-    const s = source.apply(this, argv);
-    const t = target.apply(this, argv);
-    if (context == null) output = curve(buffer = path());
-    output.lineStart();
-    argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));
-    argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));
-    output.lineEnd();
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  link.source = function(_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-
-  link.target = function(_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-
-  link.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), link) : x;
-  };
-
-  link.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), link) : y;
-  };
-
-  link.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;
-  };
-
-  return link;
-}
-
-export function linkHorizontal() {
-  return link(bumpX);
-}
-
-export function linkVertical() {
-  return link(bumpY);
-}
-
-export function linkRadial() {
-  const l = link(bumpRadial);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
Index: de_modules/d3-shape/src/math.js
===================================================================
--- node_modules/d3-shape/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export const abs = Math.abs;
-export const atan2 = Math.atan2;
-export const cos = Math.cos;
-export const max = Math.max;
-export const min = Math.min;
-export const sin = Math.sin;
-export const sqrt = Math.sqrt;
-
-export const epsilon = 1e-12;
-export const pi = Math.PI;
-export const halfPi = pi / 2;
-export const tau = 2 * pi;
-
-export function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-export function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
Index: de_modules/d3-shape/src/noop.js
===================================================================
--- node_modules/d3-shape/src/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default function() {}
Index: de_modules/d3-shape/src/offset/diverging.js
===================================================================
--- node_modules/d3-shape/src/offset/diverging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
Index: de_modules/d3-shape/src/offset/expand.js
===================================================================
--- node_modules/d3-shape/src/offset/expand.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  none(series, order);
-}
Index: de_modules/d3-shape/src/offset/none.js
===================================================================
--- node_modules/d3-shape/src/offset/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export default function(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
Index: de_modules/d3-shape/src/offset/silhouette.js
===================================================================
--- node_modules/d3-shape/src/offset/silhouette.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  none(series, order);
-}
Index: de_modules/d3-shape/src/offset/wiggle.js
===================================================================
--- node_modules/d3-shape/src/offset/wiggle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import none from "./none.js";
-
-export default function(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-          sij0 = si[j][1] || 0,
-          sij1 = si[j - 1][1] || 0,
-          s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-            skj0 = sk[j][1] || 0,
-            skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  none(series, order);
-}
Index: de_modules/d3-shape/src/order/appearance.js
===================================================================
--- node_modules/d3-shape/src/order/appearance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  var peaks = series.map(peak);
-  return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
-}
-
-function peak(series) {
-  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
Index: de_modules/d3-shape/src/order/ascending.js
===================================================================
--- node_modules/d3-shape/src/order/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  var sums = series.map(sum);
-  return none(series).sort(function(a, b) { return sums[a] - sums[b]; });
-}
-
-export function sum(series) {
-  var s = 0, i = -1, n = series.length, v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
Index: de_modules/d3-shape/src/order/descending.js
===================================================================
--- node_modules/d3-shape/src/order/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import ascending from "./ascending.js";
-
-export default function(series) {
-  return ascending(series).reverse();
-}
Index: de_modules/d3-shape/src/order/insideOut.js
===================================================================
--- node_modules/d3-shape/src/order/insideOut.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import appearance from "./appearance.js";
-import {sum} from "./ascending.js";
-
-export default function(series) {
-  var n = series.length,
-      i,
-      j,
-      sums = series.map(sum),
-      order = appearance(series),
-      top = 0,
-      bottom = 0,
-      tops = [],
-      bottoms = [];
-
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-
-  return bottoms.reverse().concat(tops);
-}
Index: de_modules/d3-shape/src/order/none.js
===================================================================
--- node_modules/d3-shape/src/order/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export default function(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
Index: de_modules/d3-shape/src/order/reverse.js
===================================================================
--- node_modules/d3-shape/src/order/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import none from "./none.js";
-
-export default function(series) {
-  return none(series).reverse();
-}
Index: de_modules/d3-shape/src/path.js
===================================================================
--- node_modules/d3-shape/src/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import {Path} from "d3-path";
-
-export function withPath(shape) {
-  let digits = 3;
-
-  shape.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) {
-      digits = null;
-    } else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    return shape;
-  };
-
-  return () => new Path(digits);
-}
Index: de_modules/d3-shape/src/pie.js
===================================================================
--- node_modules/d3-shape/src/pie.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import array from "./array.js";
-import constant from "./constant.js";
-import descending from "./descending.js";
-import identity from "./identity.js";
-import {tau} from "./math.js";
-
-export default function() {
-  var value = identity,
-      sortValues = descending,
-      sort = null,
-      startAngle = constant(0),
-      endAngle = constant(tau),
-      padAngle = constant(0);
-
-  function pie(data) {
-    var i,
-        n = (data = array(data)).length,
-        j,
-        k,
-        sum = 0,
-        index = new Array(n),
-        arcs = new Array(n),
-        a0 = +startAngle.apply(this, arguments),
-        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),
-        a1,
-        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-        pa = p * (da < 0 ? -1 : 1),
-        v;
-
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
-    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-
-    return arcs;
-  }
-
-  pie.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value;
-  };
-
-  pie.sortValues = function(_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-
-  pie.sort = function(_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-
-  pie.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle;
-  };
-
-  pie.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle;
-  };
-
-  pie.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle;
-  };
-
-  return pie;
-}
Index: de_modules/d3-shape/src/point.js
===================================================================
--- node_modules/d3-shape/src/point.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export function x(p) {
-  return p[0];
-}
-
-export function y(p) {
-  return p[1];
-}
Index: de_modules/d3-shape/src/pointRadial.js
===================================================================
--- node_modules/d3-shape/src/pointRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export default function(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
Index: de_modules/d3-shape/src/stack.js
===================================================================
--- node_modules/d3-shape/src/stack.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-import array from "./array.js";
-import constant from "./constant.js";
-import offsetNone from "./offset/none.js";
-import orderNone from "./order/none.js";
-
-function stackValue(d, key) {
-  return d[key];
-}
-
-function stackSeries(key) {
-  const series = [];
-  series.key = key;
-  return series;
-}
-
-export default function() {
-  var keys = constant([]),
-      order = orderNone,
-      offset = offsetNone,
-      value = stackValue;
-
-  function stack(data) {
-    var sz = Array.from(keys.apply(this, arguments), stackSeries),
-        i, n = sz.length, j = -1,
-        oz;
-
-    for (const d of data) {
-      for (i = 0, ++j; i < n; ++i) {
-        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
-      }
-    }
-
-    for (i = 0, oz = array(order(sz)); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-
-    offset(sz, oz);
-    return sz;
-  }
-
-  stack.keys = function(_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : constant(Array.from(_)), stack) : keys;
-  };
-
-  stack.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value;
-  };
-
-  stack.order = function(_) {
-    return arguments.length ? (order = _ == null ? orderNone : typeof _ === "function" ? _ : constant(Array.from(_)), stack) : order;
-  };
-
-  stack.offset = function(_) {
-    return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;
-  };
-
-  return stack;
-}
Index: de_modules/d3-shape/src/symbol.js
===================================================================
--- node_modules/d3-shape/src/symbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-import constant from "./constant.js";
-import {withPath} from "./path.js";
-import asterisk from "./symbol/asterisk.js";
-import circle from "./symbol/circle.js";
-import cross from "./symbol/cross.js";
-import diamond from "./symbol/diamond.js";
-import diamond2 from "./symbol/diamond2.js";
-import plus from "./symbol/plus.js";
-import square from "./symbol/square.js";
-import square2 from "./symbol/square2.js";
-import star from "./symbol/star.js";
-import triangle from "./symbol/triangle.js";
-import triangle2 from "./symbol/triangle2.js";
-import wye from "./symbol/wye.js";
-import times from "./symbol/times.js";
-
-// These symbols are designed to be filled.
-export const symbolsFill = [
-  circle,
-  cross,
-  diamond,
-  square,
-  star,
-  triangle,
-  wye
-];
-
-// These symbols are designed to be stroked (with a width of 1.5px and round caps).
-export const symbolsStroke = [
-  circle,
-  plus,
-  times,
-  triangle2,
-  asterisk,
-  square2,
-  diamond2
-];
-
-export default function Symbol(type, size) {
-  let context = null,
-      path = withPath(symbol);
-
-  type = typeof type === "function" ? type : constant(type || circle);
-  size = typeof size === "function" ? size : constant(size === undefined ? 64 : +size);
-
-  function symbol() {
-    let buffer;
-    if (!context) context = buffer = path();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  symbol.type = function(_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type;
-  };
-
-  symbol.size = function(_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size;
-  };
-
-  symbol.context = function(_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-
-  return symbol;
-}
Index: de_modules/d3-shape/src/symbol/asterisk.js
===================================================================
--- node_modules/d3-shape/src/symbol/asterisk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {min, sqrt} from "../math.js";
-
-const sqrt3 = sqrt(3);
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;
-    const t = r / 2;
-    const u = t * sqrt3;
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-    context.moveTo(-u, -t);
-    context.lineTo(u, t);
-    context.moveTo(-u, t);
-    context.lineTo(u, -t);
-  }
-};
Index: de_modules/d3-shape/src/symbol/circle.js
===================================================================
--- node_modules/d3-shape/src/symbol/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import {pi, sqrt, tau} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size / pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, tau);
-  }
-};
Index: de_modules/d3-shape/src/symbol/cross.js
===================================================================
--- node_modules/d3-shape/src/symbol/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import {sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/diamond.js
===================================================================
--- node_modules/d3-shape/src/symbol/diamond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {sqrt} from "../math.js";
-
-const tan30 = sqrt(1 / 3);
-const tan30_2 = tan30 * 2;
-
-export default {
-  draw(context, size) {
-    const y = sqrt(size / tan30_2);
-    const x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/diamond2.js
===================================================================
--- node_modules/d3-shape/src/symbol/diamond2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import {sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size) * 0.62625;
-    context.moveTo(0, -r);
-    context.lineTo(r, 0);
-    context.lineTo(0, r);
-    context.lineTo(-r, 0);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/plus.js
===================================================================
--- node_modules/d3-shape/src/symbol/plus.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {min, sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 7, 2)) * 0.87559;
-    context.moveTo(-r, 0);
-    context.lineTo(r, 0);
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-  }
-};
Index: de_modules/d3-shape/src/symbol/square.js
===================================================================
--- node_modules/d3-shape/src/symbol/square.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import {sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const w = sqrt(size);
-    const x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
Index: de_modules/d3-shape/src/symbol/square2.js
===================================================================
--- node_modules/d3-shape/src/symbol/square2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import {sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size) * 0.4431;
-    context.moveTo(r, r);
-    context.lineTo(r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, r);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/star.js
===================================================================
--- node_modules/d3-shape/src/symbol/star.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import {sin, cos, sqrt, pi, tau} from "../math.js";
-
-const ka = 0.89081309152928522810;
-const kr = sin(pi / 10) / sin(7 * pi / 10);
-const kx = sin(tau / 10) * kr;
-const ky = -cos(tau / 10) * kr;
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size * ka);
-    const x = kx * r;
-    const y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (let i = 1; i < 5; ++i) {
-      const a = tau * i / 5;
-      const c = cos(a);
-      const s = sin(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/times.js
===================================================================
--- node_modules/d3-shape/src/symbol/times.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {min, sqrt} from "../math.js";
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;
-    context.moveTo(-r, -r);
-    context.lineTo(r, r);
-    context.moveTo(-r, r);
-    context.lineTo(r, -r);
-  }
-};
Index: de_modules/d3-shape/src/symbol/triangle.js
===================================================================
--- node_modules/d3-shape/src/symbol/triangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import {sqrt} from "../math.js";
-
-const sqrt3 = sqrt(3);
-
-export default {
-  draw(context, size) {
-    const y = -sqrt(size / (sqrt3 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3 * y, -y);
-    context.lineTo(sqrt3 * y, -y);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/triangle2.js
===================================================================
--- node_modules/d3-shape/src/symbol/triangle2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import {sqrt} from "../math.js";
-
-const sqrt3 = sqrt(3);
-
-export default {
-  draw(context, size) {
-    const s = sqrt(size) * 0.6824;
-    const t = s  / 2;
-    const u = (s * sqrt3) / 2; // cos(Math.PI / 6)
-    context.moveTo(0, -s);
-    context.lineTo(u, t);
-    context.lineTo(-u, t);
-    context.closePath();
-  }
-};
Index: de_modules/d3-shape/src/symbol/wye.js
===================================================================
--- node_modules/d3-shape/src/symbol/wye.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import {sqrt} from "../math.js";
-
-const c = -0.5;
-const s = sqrt(3) / 2;
-const k = 1 / sqrt(12);
-const a = (k / 2 + 1) * 3;
-
-export default {
-  draw(context, size) {
-    const r = sqrt(size / a);
-    const x0 = r / 2, y0 = r * k;
-    const x1 = x0, y1 = r * k + r;
-    const x2 = -x1, y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
Index: de_modules/d3-time-format/LICENSE
===================================================================
--- node_modules/d3-time-format/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-time-format/README.md
===================================================================
--- node_modules/d3-time-format/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,209 +1,0 @@
-# d3-time-format
-
-This module provides a JavaScript implementation of the venerable [strptime](http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html) and [strftime](http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html) functions from the C standard library, and can be used to parse or format [dates](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) in a variety of locale-specific representations. To format a date, create a [formatter](#locale_format) from a specifier (a string with the desired format *directives*, indicated by `%`); then pass a date to the formatter, which returns a string. For example, to convert the current date to a human-readable string:
-
-```js
-const formatTime = d3.timeFormat("%B %d, %Y");
-formatTime(new Date); // "June 30, 2015"
-```
-
-Likewise, to convert a string back to a date, create a [parser](#locale_parse):
-
-```js
-const parseTime = d3.timeParse("%B %d, %Y");
-parseTime("June 30, 2015"); // Tue Jun 30 2015 00:00:00 GMT-0700 (PDT)
-```
-
-You can implement more elaborate conditional time formats, too. For example, here’s a [multi-scale time format](https://bl.ocks.org/mbostock/4149176) using [time intervals](https://github.com/d3/d3-time):
-
-```js
-const formatMillisecond = d3.timeFormat(".%L"),
-    formatSecond = d3.timeFormat(":%S"),
-    formatMinute = d3.timeFormat("%I:%M"),
-    formatHour = d3.timeFormat("%I %p"),
-    formatDay = d3.timeFormat("%a %d"),
-    formatWeek = d3.timeFormat("%b %d"),
-    formatMonth = d3.timeFormat("%B"),
-    formatYear = d3.timeFormat("%Y");
-
-function multiFormat(date) {
-  return (d3.timeSecond(date) < date ? formatMillisecond
-      : d3.timeMinute(date) < date ? formatSecond
-      : d3.timeHour(date) < date ? formatMinute
-      : d3.timeDay(date) < date ? formatHour
-      : d3.timeMonth(date) < date ? (d3.timeWeek(date) < date ? formatDay : formatWeek)
-      : d3.timeYear(date) < date ? formatMonth
-      : formatYear)(date);
-}
-```
-
-This module is used by D3 [time scales](https://github.com/d3/d3-scale/blob/main/README.md#time-scales) to generate human-readable ticks.
-
-## Installing
-
-If you use npm, `npm install d3-time-format`. You can also download the [latest release on GitHub](https://github.com/d3/d3-time-format/releases/latest). For vanilla HTML in modern browsers, import d3-time-format from Skypack:
-
-```html
-<script type="module">
-
-import {timeFormat} from "https://cdn.skypack.dev/d3-time-format@4";
-
-const format = timeFormat("%x");
-
-</script>
-```
-
-For legacy environments, you can load d3-time-format’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-time@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-time-format@4"></script>
-<script>
-
-const format = d3.timeFormat("%x");
-
-</script>
-
-Locale files are published to npm and can be loaded using [d3.json](https://github.com/d3/d3-fetch/blob/main/README.md#json). For example, to set Russian as the default locale:
-
-```js
-d3.json("https://cdn.jsdelivr.net/npm/d3-time-format@3/locale/ru-RU.json").then(locale => {
-  d3.timeFormatDefaultLocale(locale);
-
-  const format = d3.timeFormat("%c");
-
-  console.log(format(new Date)); // понедельник,  5 декабря 2016 г. 10:31:59
-});
-```
-
-## API Reference
-
-<a name="timeFormat" href="#timeFormat">#</a> d3.<b>timeFormat</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/defaultLocale.js)
-
-An alias for [*locale*.format](#locale_format) on the [default locale](#timeFormatDefaultLocale).
-
-<a name="timeParse" href="#timeParse">#</a> d3.<b>timeParse</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/defaultLocale.js)
-
-An alias for [*locale*.parse](#locale_parse) on the [default locale](#timeFormatDefaultLocale).
-
-<a name="utcFormat" href="#utcFormat">#</a> d3.<b>utcFormat</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/defaultLocale.js)
-
-An alias for [*locale*.utcFormat](#locale_utcFormat) on the [default locale](#timeFormatDefaultLocale).
-
-<a name="utcParse" href="#utcParse">#</a> d3.<b>utcParse</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/defaultLocale.js)
-
-An alias for [*locale*.utcParse](#locale_utcParse) on the [default locale](#timeFormatDefaultLocale).
-
-<a name="isoFormat" href="#isoFormat">#</a> d3.<b>isoFormat</b> · [Source](https://github.com/d3/d3-time-format/blob/main/src/isoFormat.js)
-
-The full [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC time formatter. Where available, this method will use [Date.toISOString](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toISOString) to format.
-
-<a name="isoParse" href="#isoParse">#</a> d3.<b>isoParse</b> · [Source](https://github.com/d3/d3-time-format/blob/main/src/isoParse.js)
-
-The full [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC time parser. Where available, this method will use the [Date constructor](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date) to parse strings. If you depend on strict validation of the input format according to ISO 8601, you should construct a [UTC parser function](#utcParse):
-
-```js
-const strictIsoParse = d3.utcParse("%Y-%m-%dT%H:%M:%S.%LZ");
-```
-
-<a name="locale_format" href="#locale_format">#</a> <i>locale</i>.<b>format</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/locale.js)
-
-Returns a new formatter for the given string *specifier*. The specifier string may contain the following directives:
-
-* `%a` - abbreviated weekday name.*
-* `%A` - full weekday name.*
-* `%b` - abbreviated month name.*
-* `%B` - full month name.*
-* `%c` - the locale’s date and time, such as `%x, %X`.*
-* `%d` - zero-padded day of the month as a decimal number [01,31].
-* `%e` - space-padded day of the month as a decimal number [ 1,31]; equivalent to `%_d`.
-* `%f` - microseconds as a decimal number [000000, 999999].
-* `%g` - ISO 8601 week-based year without century as a decimal number [00,99].
-* `%G` - ISO 8601 week-based year with century as a decimal number.
-* `%H` - hour (24-hour clock) as a decimal number [00,23].
-* `%I` - hour (12-hour clock) as a decimal number [01,12].
-* `%j` - day of the year as a decimal number [001,366].
-* `%m` - month as a decimal number [01,12].
-* `%M` - minute as a decimal number [00,59].
-* `%L` - milliseconds as a decimal number [000, 999].
-* `%p` - either AM or PM.*
-* `%q` - quarter of the year as a decimal number [1,4].
-* `%Q` - milliseconds since UNIX epoch.
-* `%s` - seconds since UNIX epoch.
-* `%S` - second as a decimal number [00,61].
-* `%u` - Monday-based (ISO 8601) weekday as a decimal number [1,7].
-* `%U` - Sunday-based week of the year as a decimal number [00,53].
-* `%V` - ISO 8601 week of the year as a decimal number [01, 53].
-* `%w` - Sunday-based weekday as a decimal number [0,6].
-* `%W` - Monday-based week of the year as a decimal number [00,53].
-* `%x` - the locale’s date, such as `%-m/%-d/%Y`.*
-* `%X` - the locale’s time, such as `%-I:%M:%S %p`.*
-* `%y` - year without century as a decimal number [00,99].
-* `%Y` - year with century as a decimal number, such as `1999`.
-* `%Z` - time zone offset, such as `-0700`, `-07:00`, `-07`, or `Z`.
-* `%%` - a literal percent sign (`%`).
-
-Directives marked with an asterisk (\*) may be affected by the [locale definition](#locales).
-
-For `%U`, all days in a new year preceding the first Sunday are considered to be in week 0. For `%W`, all days in a new year preceding the first Monday are considered to be in week 0. Week numbers are computed using [*interval*.count](https://github.com/d3/d3-time/blob/main/README.md#interval_count). For example, 2015-52 and 2016-00 represent Monday, December 28, 2015, while 2015-53 and 2016-01 represent Monday, January 4, 2016. This differs from the [ISO week date](https://en.wikipedia.org/wiki/ISO_week_date) specification (`%V`), which uses a more complicated definition!
-
-For `%V`,`%g` and `%G`, per the [strftime man page](http://man7.org/linux/man-pages/man3/strftime.3.html):
-
-> In this system, weeks start on a Monday, and are numbered from 01, for the first week, up to 52 or 53, for the last week.  Week 1 is the first week where four or more days fall within the new year (or, synonymously, week 01 is: the first week of the year that contains a Thursday; or, the week that has 4 January in it). If the ISO week number belongs to the previous or next year, that year is used instead.
-
-The `%` sign indicating a directive may be immediately followed by a padding modifier:
-
-* `0` - zero-padding
-* `_` - space-padding
-* `-` - disable padding
-
-If no padding modifier is specified, the default is `0` for all directives except `%e`, which defaults to `_`. (In some implementations of strftime and strptime, a directive may include an optional field width or precision; this feature is not yet implemented.)
-
-The returned function formats a specified *[date](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date)*, returning the corresponding string.
-
-```js
-const formatMonth = d3.timeFormat("%B"),
-    formatDay = d3.timeFormat("%A"),
-    date = new Date(2014, 4, 1); // Thu May 01 2014 00:00:00 GMT-0700 (PDT)
-
-formatMonth(date); // "May"
-formatDay(date); // "Thursday"
-```
-
-<a name="locale_parse" href="#locale_parse">#</a> <i>locale</i>.<b>parse</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/locale.js)
-
-Returns a new parser for the given string *specifier*. The specifier string may contain the same directives as [*locale*.format](#locale_format). The `%d` and `%e` directives are considered equivalent for parsing.
-
-The returned function parses a specified *string*, returning the corresponding [date](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) or null if the string could not be parsed according to this format’s specifier. Parsing is strict: if the specified <i>string</i> does not exactly match the associated specifier, this method returns null. For example, if the associated specifier is `%Y-%m-%dT%H:%M:%SZ`, then the string `"2011-07-01T19:15:28Z"` will be parsed as expected, but `"2011-07-01T19:15:28"`, `"2011-07-01 19:15:28"` and `"2011-07-01"` will return null. (Note that the literal `Z` here is different from the time zone offset directive `%Z`.) If a more flexible parser is desired, try multiple formats sequentially until one returns non-null.
-
-<a name="locale_utcFormat" href="#locale_utcFormat">#</a> <i>locale</i>.<b>utcFormat</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/locale.js)
-
-Equivalent to [*locale*.format](#locale_format), except all directives are interpreted as [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) rather than local time.
-
-<a name="locale_utcParse" href="#locale_utcParse">#</a> <i>locale</i>.<b>utcParse</b>(<i>specifier</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/locale.js)
-
-Equivalent to [*locale*.parse](#locale_parse), except all directives are interpreted as [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) rather than local time.
-
-### Locales
-
-<a name="timeFormatLocale" href="#timeFormatLocale">#</a> d3.<b>timeFormatLocale</b>(<i>definition</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/locale.js)
-
-Returns a *locale* object for the specified *definition* with [*locale*.format](#locale_format), [*locale*.parse](#locale_parse), [*locale*.utcFormat](#locale_utcFormat), [*locale*.utcParse](#locale_utcParse) methods. The *definition* must include the following properties:
-
-* `dateTime` - the date and time (`%c`) format specifier (<i>e.g.</i>, `"%a %b %e %X %Y"`).
-* `date` - the date (`%x`) format specifier (<i>e.g.</i>, `"%m/%d/%Y"`).
-* `time` - the time (`%X`) format specifier (<i>e.g.</i>, `"%H:%M:%S"`).
-* `periods` - the A.M. and P.M. equivalents (<i>e.g.</i>, `["AM", "PM"]`).
-* `days` - the full names of the weekdays, starting with Sunday.
-* `shortDays` - the abbreviated names of the weekdays, starting with Sunday.
-* `months` - the full names of the months (starting with January).
-* `shortMonths` - the abbreviated names of the months (starting with January).
-
-For an example, see [Localized Time Axis II](https://bl.ocks.org/mbostock/805115ebaa574e771db1875a6d828949).
-
-<a name="timeFormatDefaultLocale" href="#timeFormatDefaultLocale">#</a> d3.<b>timeFormatDefaultLocale</b>(<i>definition</i>) · [Source](https://github.com/d3/d3-time-format/blob/main/src/defaultLocale.js)
-
-Equivalent to [d3.timeFormatLocale](#timeFormatLocale), except it also redefines [d3.timeFormat](#timeFormat), [d3.timeParse](#timeParse), [d3.utcFormat](#utcFormat) and [d3.utcParse](#utcParse) to the new locale’s [*locale*.format](#locale_format), [*locale*.parse](#locale_parse), [*locale*.utcFormat](#locale_utcFormat) and [*locale*.utcParse](#locale_utcParse). If you do not set a default locale, it defaults to [U.S. English](https://github.com/d3/d3-time-format/blob/main/locale/en-US.json).
-
-For an example, see [Localized Time Axis](https://bl.ocks.org/mbostock/6f1cc065d4d172bcaf322e399aa8d62f).
Index: de_modules/d3-time-format/dist/d3-time-format.js
===================================================================
--- node_modules/d3-time-format/dist/d3-time-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,745 +1,0 @@
-// https://d3js.org/d3-time-format/ v4.1.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-})(this, (function (exports, d3Time) { 'use strict';
-
-function localDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
-    date.setFullYear(d.y);
-    return date;
-  }
-  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
-}
-
-function utcDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
-    date.setUTCFullYear(d.y);
-    return date;
-  }
-  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
-}
-
-function newDate(y, m, d) {
-  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
-}
-
-function formatLocale(locale) {
-  var locale_dateTime = locale.dateTime,
-      locale_date = locale.date,
-      locale_time = locale.time,
-      locale_periods = locale.periods,
-      locale_weekdays = locale.days,
-      locale_shortWeekdays = locale.shortDays,
-      locale_months = locale.months,
-      locale_shortMonths = locale.shortMonths;
-
-  var periodRe = formatRe(locale_periods),
-      periodLookup = formatLookup(locale_periods),
-      weekdayRe = formatRe(locale_weekdays),
-      weekdayLookup = formatLookup(locale_weekdays),
-      shortWeekdayRe = formatRe(locale_shortWeekdays),
-      shortWeekdayLookup = formatLookup(locale_shortWeekdays),
-      monthRe = formatRe(locale_months),
-      monthLookup = formatLookup(locale_months),
-      shortMonthRe = formatRe(locale_shortMonths),
-      shortMonthLookup = formatLookup(locale_shortMonths);
-
-  var formats = {
-    "a": formatShortWeekday,
-    "A": formatWeekday,
-    "b": formatShortMonth,
-    "B": formatMonth,
-    "c": null,
-    "d": formatDayOfMonth,
-    "e": formatDayOfMonth,
-    "f": formatMicroseconds,
-    "g": formatYearISO,
-    "G": formatFullYearISO,
-    "H": formatHour24,
-    "I": formatHour12,
-    "j": formatDayOfYear,
-    "L": formatMilliseconds,
-    "m": formatMonthNumber,
-    "M": formatMinutes,
-    "p": formatPeriod,
-    "q": formatQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatSeconds,
-    "u": formatWeekdayNumberMonday,
-    "U": formatWeekNumberSunday,
-    "V": formatWeekNumberISO,
-    "w": formatWeekdayNumberSunday,
-    "W": formatWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatYear,
-    "Y": formatFullYear,
-    "Z": formatZone,
-    "%": formatLiteralPercent
-  };
-
-  var utcFormats = {
-    "a": formatUTCShortWeekday,
-    "A": formatUTCWeekday,
-    "b": formatUTCShortMonth,
-    "B": formatUTCMonth,
-    "c": null,
-    "d": formatUTCDayOfMonth,
-    "e": formatUTCDayOfMonth,
-    "f": formatUTCMicroseconds,
-    "g": formatUTCYearISO,
-    "G": formatUTCFullYearISO,
-    "H": formatUTCHour24,
-    "I": formatUTCHour12,
-    "j": formatUTCDayOfYear,
-    "L": formatUTCMilliseconds,
-    "m": formatUTCMonthNumber,
-    "M": formatUTCMinutes,
-    "p": formatUTCPeriod,
-    "q": formatUTCQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatUTCSeconds,
-    "u": formatUTCWeekdayNumberMonday,
-    "U": formatUTCWeekNumberSunday,
-    "V": formatUTCWeekNumberISO,
-    "w": formatUTCWeekdayNumberSunday,
-    "W": formatUTCWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatUTCYear,
-    "Y": formatUTCFullYear,
-    "Z": formatUTCZone,
-    "%": formatLiteralPercent
-  };
-
-  var parses = {
-    "a": parseShortWeekday,
-    "A": parseWeekday,
-    "b": parseShortMonth,
-    "B": parseMonth,
-    "c": parseLocaleDateTime,
-    "d": parseDayOfMonth,
-    "e": parseDayOfMonth,
-    "f": parseMicroseconds,
-    "g": parseYear,
-    "G": parseFullYear,
-    "H": parseHour24,
-    "I": parseHour24,
-    "j": parseDayOfYear,
-    "L": parseMilliseconds,
-    "m": parseMonthNumber,
-    "M": parseMinutes,
-    "p": parsePeriod,
-    "q": parseQuarter,
-    "Q": parseUnixTimestamp,
-    "s": parseUnixTimestampSeconds,
-    "S": parseSeconds,
-    "u": parseWeekdayNumberMonday,
-    "U": parseWeekNumberSunday,
-    "V": parseWeekNumberISO,
-    "w": parseWeekdayNumberSunday,
-    "W": parseWeekNumberMonday,
-    "x": parseLocaleDate,
-    "X": parseLocaleTime,
-    "y": parseYear,
-    "Y": parseFullYear,
-    "Z": parseZone,
-    "%": parseLiteralPercent
-  };
-
-  // These recursive directive definitions must be deferred.
-  formats.x = newFormat(locale_date, formats);
-  formats.X = newFormat(locale_time, formats);
-  formats.c = newFormat(locale_dateTime, formats);
-  utcFormats.x = newFormat(locale_date, utcFormats);
-  utcFormats.X = newFormat(locale_time, utcFormats);
-  utcFormats.c = newFormat(locale_dateTime, utcFormats);
-
-  function newFormat(specifier, formats) {
-    return function(date) {
-      var string = [],
-          i = -1,
-          j = 0,
-          n = specifier.length,
-          c,
-          pad,
-          format;
-
-      if (!(date instanceof Date)) date = new Date(+date);
-
-      while (++i < n) {
-        if (specifier.charCodeAt(i) === 37) {
-          string.push(specifier.slice(j, i));
-          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
-          else pad = c === "e" ? " " : "0";
-          if (format = formats[c]) c = format(date, pad);
-          string.push(c);
-          j = i + 1;
-        }
-      }
-
-      string.push(specifier.slice(j, i));
-      return string.join("");
-    };
-  }
-
-  function newParse(specifier, Z) {
-    return function(string) {
-      var d = newDate(1900, undefined, 1),
-          i = parseSpecifier(d, specifier, string += "", 0),
-          week, day;
-      if (i != string.length) return null;
-
-      // If a UNIX timestamp is specified, return it.
-      if ("Q" in d) return new Date(d.Q);
-      if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
-
-      // If this is utcParse, never use the local timezone.
-      if (Z && !("Z" in d)) d.Z = 0;
-
-      // The am-pm flag is 0 for AM, and 1 for PM.
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-
-      // If the month was not specified, inherit from the quarter.
-      if (d.m === undefined) d.m = "q" in d ? d.q : 0;
-
-      // Convert day-of-week and week-of-year to day-of-year.
-      if ("V" in d) {
-        if (d.V < 1 || d.V > 53) return null;
-        if (!("w" in d)) d.w = 1;
-        if ("Z" in d) {
-          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
-          week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);
-          week = d3Time.utcDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getUTCFullYear();
-          d.m = week.getUTCMonth();
-          d.d = week.getUTCDate() + (d.w + 6) % 7;
-        } else {
-          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
-          week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);
-          week = d3Time.timeDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getFullYear();
-          d.m = week.getMonth();
-          d.d = week.getDate() + (d.w + 6) % 7;
-        }
-      } else if ("W" in d || "U" in d) {
-        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
-        day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
-        d.m = 0;
-        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
-      }
-
-      // If a time zone is specified, all fields are interpreted as UTC and then
-      // offset according to the specified time zone.
-      if ("Z" in d) {
-        d.H += d.Z / 100 | 0;
-        d.M += d.Z % 100;
-        return utcDate(d);
-      }
-
-      // Otherwise, all fields are in local time.
-      return localDate(d);
-    };
-  }
-
-  function parseSpecifier(d, specifier, string, j) {
-    var i = 0,
-        n = specifier.length,
-        m = string.length,
-        c,
-        parse;
-
-    while (i < n) {
-      if (j >= m) return -1;
-      c = specifier.charCodeAt(i++);
-      if (c === 37) {
-        c = specifier.charAt(i++);
-        parse = parses[c in pads ? specifier.charAt(i++) : c];
-        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-
-    return j;
-  }
-
-  function parsePeriod(d, string, i) {
-    var n = periodRe.exec(string.slice(i));
-    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortWeekday(d, string, i) {
-    var n = shortWeekdayRe.exec(string.slice(i));
-    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseWeekday(d, string, i) {
-    var n = weekdayRe.exec(string.slice(i));
-    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortMonth(d, string, i) {
-    var n = shortMonthRe.exec(string.slice(i));
-    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseMonth(d, string, i) {
-    var n = monthRe.exec(string.slice(i));
-    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseLocaleDateTime(d, string, i) {
-    return parseSpecifier(d, locale_dateTime, string, i);
-  }
-
-  function parseLocaleDate(d, string, i) {
-    return parseSpecifier(d, locale_date, string, i);
-  }
-
-  function parseLocaleTime(d, string, i) {
-    return parseSpecifier(d, locale_time, string, i);
-  }
-
-  function formatShortWeekday(d) {
-    return locale_shortWeekdays[d.getDay()];
-  }
-
-  function formatWeekday(d) {
-    return locale_weekdays[d.getDay()];
-  }
-
-  function formatShortMonth(d) {
-    return locale_shortMonths[d.getMonth()];
-  }
-
-  function formatMonth(d) {
-    return locale_months[d.getMonth()];
-  }
-
-  function formatPeriod(d) {
-    return locale_periods[+(d.getHours() >= 12)];
-  }
-
-  function formatQuarter(d) {
-    return 1 + ~~(d.getMonth() / 3);
-  }
-
-  function formatUTCShortWeekday(d) {
-    return locale_shortWeekdays[d.getUTCDay()];
-  }
-
-  function formatUTCWeekday(d) {
-    return locale_weekdays[d.getUTCDay()];
-  }
-
-  function formatUTCShortMonth(d) {
-    return locale_shortMonths[d.getUTCMonth()];
-  }
-
-  function formatUTCMonth(d) {
-    return locale_months[d.getUTCMonth()];
-  }
-
-  function formatUTCPeriod(d) {
-    return locale_periods[+(d.getUTCHours() >= 12)];
-  }
-
-  function formatUTCQuarter(d) {
-    return 1 + ~~(d.getUTCMonth() / 3);
-  }
-
-  return {
-    format: function(specifier) {
-      var f = newFormat(specifier += "", formats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    parse: function(specifier) {
-      var p = newParse(specifier += "", false);
-      p.toString = function() { return specifier; };
-      return p;
-    },
-    utcFormat: function(specifier) {
-      var f = newFormat(specifier += "", utcFormats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    utcParse: function(specifier) {
-      var p = newParse(specifier += "", true);
-      p.toString = function() { return specifier; };
-      return p;
-    }
-  };
-}
-
-var pads = {"-": "", "_": " ", "0": "0"},
-    numberRe = /^\s*\d+/, // note: ignores next directive
-    percentRe = /^%/,
-    requoteRe = /[\\^$*+?|[\]().{}]/g;
-
-function pad(value, fill, width) {
-  var sign = value < 0 ? "-" : "",
-      string = (sign ? -value : value) + "",
-      length = string.length;
-  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
-}
-
-function requote(s) {
-  return s.replace(requoteRe, "\\$&");
-}
-
-function formatRe(names) {
-  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
-}
-
-function formatLookup(names) {
-  return new Map(names.map((name, i) => [name.toLowerCase(), i]));
-}
-
-function parseWeekdayNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.w = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekdayNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.u = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.U = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberISO(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.V = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.W = +n[0], i + n[0].length) : -1;
-}
-
-function parseFullYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 4));
-  return n ? (d.y = +n[0], i + n[0].length) : -1;
-}
-
-function parseYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
-}
-
-function parseZone(d, string, i) {
-  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
-  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
-}
-
-function parseQuarter(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
-}
-
-function parseMonthNumber(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
-}
-
-function parseDayOfMonth(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseDayOfYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseHour24(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.H = +n[0], i + n[0].length) : -1;
-}
-
-function parseMinutes(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.M = +n[0], i + n[0].length) : -1;
-}
-
-function parseSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.S = +n[0], i + n[0].length) : -1;
-}
-
-function parseMilliseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.L = +n[0], i + n[0].length) : -1;
-}
-
-function parseMicroseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 6));
-  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
-}
-
-function parseLiteralPercent(d, string, i) {
-  var n = percentRe.exec(string.slice(i, i + 1));
-  return n ? i + n[0].length : -1;
-}
-
-function parseUnixTimestamp(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.Q = +n[0], i + n[0].length) : -1;
-}
-
-function parseUnixTimestampSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.s = +n[0], i + n[0].length) : -1;
-}
-
-function formatDayOfMonth(d, p) {
-  return pad(d.getDate(), p, 2);
-}
-
-function formatHour24(d, p) {
-  return pad(d.getHours(), p, 2);
-}
-
-function formatHour12(d, p) {
-  return pad(d.getHours() % 12 || 12, p, 2);
-}
-
-function formatDayOfYear(d, p) {
-  return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);
-}
-
-function formatMilliseconds(d, p) {
-  return pad(d.getMilliseconds(), p, 3);
-}
-
-function formatMicroseconds(d, p) {
-  return formatMilliseconds(d, p) + "000";
-}
-
-function formatMonthNumber(d, p) {
-  return pad(d.getMonth() + 1, p, 2);
-}
-
-function formatMinutes(d, p) {
-  return pad(d.getMinutes(), p, 2);
-}
-
-function formatSeconds(d, p) {
-  return pad(d.getSeconds(), p, 2);
-}
-
-function formatWeekdayNumberMonday(d) {
-  var day = d.getDay();
-  return day === 0 ? 7 : day;
-}
-
-function formatWeekNumberSunday(d, p) {
-  return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);
-}
-
-function dISO(d) {
-  var day = d.getDay();
-  return (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);
-}
-
-function formatWeekNumberISO(d, p) {
-  d = dISO(d);
-  return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);
-}
-
-function formatWeekdayNumberSunday(d) {
-  return d.getDay();
-}
-
-function formatWeekNumberMonday(d, p) {
-  return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);
-}
-
-function formatYear(d, p) {
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatYearISO(d, p) {
-  d = dISO(d);
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatFullYear(d, p) {
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatFullYearISO(d, p) {
-  var day = d.getDay();
-  d = (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatZone(d) {
-  var z = d.getTimezoneOffset();
-  return (z > 0 ? "-" : (z *= -1, "+"))
-      + pad(z / 60 | 0, "0", 2)
-      + pad(z % 60, "0", 2);
-}
-
-function formatUTCDayOfMonth(d, p) {
-  return pad(d.getUTCDate(), p, 2);
-}
-
-function formatUTCHour24(d, p) {
-  return pad(d.getUTCHours(), p, 2);
-}
-
-function formatUTCHour12(d, p) {
-  return pad(d.getUTCHours() % 12 || 12, p, 2);
-}
-
-function formatUTCDayOfYear(d, p) {
-  return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);
-}
-
-function formatUTCMilliseconds(d, p) {
-  return pad(d.getUTCMilliseconds(), p, 3);
-}
-
-function formatUTCMicroseconds(d, p) {
-  return formatUTCMilliseconds(d, p) + "000";
-}
-
-function formatUTCMonthNumber(d, p) {
-  return pad(d.getUTCMonth() + 1, p, 2);
-}
-
-function formatUTCMinutes(d, p) {
-  return pad(d.getUTCMinutes(), p, 2);
-}
-
-function formatUTCSeconds(d, p) {
-  return pad(d.getUTCSeconds(), p, 2);
-}
-
-function formatUTCWeekdayNumberMonday(d) {
-  var dow = d.getUTCDay();
-  return dow === 0 ? 7 : dow;
-}
-
-function formatUTCWeekNumberSunday(d, p) {
-  return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);
-}
-
-function UTCdISO(d) {
-  var day = d.getUTCDay();
-  return (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);
-}
-
-function formatUTCWeekNumberISO(d, p) {
-  d = UTCdISO(d);
-  return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);
-}
-
-function formatUTCWeekdayNumberSunday(d) {
-  return d.getUTCDay();
-}
-
-function formatUTCWeekNumberMonday(d, p) {
-  return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);
-}
-
-function formatUTCYear(d, p) {
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCYearISO(d, p) {
-  d = UTCdISO(d);
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCFullYear(d, p) {
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCFullYearISO(d, p) {
-  var day = d.getUTCDay();
-  d = (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCZone() {
-  return "+0000";
-}
-
-function formatLiteralPercent() {
-  return "%";
-}
-
-function formatUnixTimestamp(d) {
-  return +d;
-}
-
-function formatUnixTimestampSeconds(d) {
-  return Math.floor(+d / 1000);
-}
-
-var locale;
-exports.timeFormat = void 0;
-exports.timeParse = void 0;
-exports.utcFormat = void 0;
-exports.utcParse = void 0;
-
-defaultLocale({
-  dateTime: "%x, %X",
-  date: "%-m/%-d/%Y",
-  time: "%-I:%M:%S %p",
-  periods: ["AM", "PM"],
-  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-});
-
-function defaultLocale(definition) {
-  locale = formatLocale(definition);
-  exports.timeFormat = locale.format;
-  exports.timeParse = locale.parse;
-  exports.utcFormat = locale.utcFormat;
-  exports.utcParse = locale.utcParse;
-  return locale;
-}
-
-var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
-
-function formatIsoNative(date) {
-  return date.toISOString();
-}
-
-var formatIso = Date.prototype.toISOString
-    ? formatIsoNative
-    : exports.utcFormat(isoSpecifier);
-
-function parseIsoNative(string) {
-  var date = new Date(string);
-  return isNaN(date) ? null : date;
-}
-
-var parseIso = +new Date("2000-01-01T00:00:00.000Z")
-    ? parseIsoNative
-    : exports.utcParse(isoSpecifier);
-
-exports.isoFormat = formatIso;
-exports.isoParse = parseIso;
-exports.timeFormatDefaultLocale = defaultLocale;
-exports.timeFormatLocale = formatLocale;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
Index: de_modules/d3-time-format/dist/d3-time-format.min.js
===================================================================
--- node_modules/d3-time-format/dist/d3-time-format.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-time-format/ v4.1.0 Copyright 2010-2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-time")):"function"==typeof define&&define.amd?define(["exports","d3-time"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{},e.d3)}(this,(function(e,t){"use strict";function n(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function r(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function u(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function i(e){var i=e.dateTime,c=e.date,a=e.time,f=e.periods,l=e.days,s=e.shortDays,g=e.months,G=e.shortMonths,ge=d(f),pe=y(f),we=d(l),Se=y(l),Ye=d(s),Fe=y(s),Le=d(g),He=y(g),Ae=d(G),Ze=y(G),be={a:function(e){return s[e.getDay()]},A:function(e){return l[e.getDay()]},b:function(e){return G[e.getMonth()]},B:function(e){return g[e.getMonth()]},c:null,d:W,e:W,f:J,g:R,G:K,H:V,I:j,j:q,L:I,m:O,M:Q,p:function(e){return f[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Ue,s:xe,S:X,u:N,U:B,V:_,w:$,W:z,x:null,X:null,y:E,Y:k,Z:ee,"%":Ce},Pe={a:function(e){return s[e.getUTCDay()]},A:function(e){return l[e.getUTCDay()]},b:function(e){return G[e.getUTCMonth()]},B:function(e){return g[e.getUTCMonth()]},c:null,d:te,e:te,f:ce,g:ve,G:Me,H:ne,I:re,j:ue,L:ie,m:oe,M:ae,p:function(e){return f[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Ue,s:xe,S:fe,u:le,U:se,V:de,w:ye,W:he,x:null,X:null,y:me,Y:Te,Z:De,"%":Ce},We={a:function(e,t,n){var r=Ye.exec(t.slice(n));return r?(e.w=Fe.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=we.exec(t.slice(n));return r?(e.w=Se.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=Ae.exec(t.slice(n));return r?(e.m=Ze.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=Le.exec(t.slice(n));return r?(e.m=He.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,t,n){return qe(e,i,t,n)},d:w,e:w,f:A,g:C,G:D,H:Y,I:Y,j:S,L:H,m:p,M:F,p:function(e,t,n){var r=ge.exec(t.slice(n));return r?(e.p=pe.get(r[0].toLowerCase()),n+r[0].length):-1},q:x,Q:b,s:P,S:L,u:m,U:v,V:T,w:h,W:M,x:function(e,t,n){return qe(e,c,t,n)},X:function(e,t,n){return qe(e,a,t,n)},y:C,Y:D,Z:U,"%":Z};function Ve(e,t){return function(n){var r,u,i,c=[],a=-1,f=0,l=e.length;for(n instanceof Date||(n=new Date(+n));++a<l;)37===e.charCodeAt(a)&&(c.push(e.slice(f,a)),null!=(u=o[r=e.charAt(++a)])?r=e.charAt(++a):u="e"===r?" ":"0",(i=t[r])&&(r=i(n,u)),c.push(r),f=a+1);return c.push(e.slice(f,a)),c.join("")}}function je(e,i){return function(c){var o,a,f=u(1900,void 0,1);if(qe(f,e,c+="",0)!=c.length)return null;if("Q"in f)return new Date(f.Q);if("s"in f)return new Date(1e3*f.s+("L"in f?f.L:0));if(i&&!("Z"in f)&&(f.Z=0),"p"in f&&(f.H=f.H%12+12*f.p),void 0===f.m&&(f.m="q"in f?f.q:0),"V"in f){if(f.V<1||f.V>53)return null;"w"in f||(f.w=1),"Z"in f?(a=(o=r(u(f.y,0,1))).getUTCDay(),o=a>4||0===a?t.utcMonday.ceil(o):t.utcMonday(o),o=t.utcDay.offset(o,7*(f.V-1)),f.y=o.getUTCFullYear(),f.m=o.getUTCMonth(),f.d=o.getUTCDate()+(f.w+6)%7):(a=(o=n(u(f.y,0,1))).getDay(),o=a>4||0===a?t.timeMonday.ceil(o):t.timeMonday(o),o=t.timeDay.offset(o,7*(f.V-1)),f.y=o.getFullYear(),f.m=o.getMonth(),f.d=o.getDate()+(f.w+6)%7)}else("W"in f||"U"in f)&&("w"in f||(f.w="u"in f?f.u%7:"W"in f?1:0),a="Z"in f?r(u(f.y,0,1)).getUTCDay():n(u(f.y,0,1)).getDay(),f.m=0,f.d="W"in f?(f.w+6)%7+7*f.W-(a+5)%7:f.w+7*f.U-(a+6)%7);return"Z"in f?(f.H+=f.Z/100|0,f.M+=f.Z%100,r(f)):n(f)}}function qe(e,t,n,r){for(var u,i,c=0,a=t.length,f=n.length;c<a;){if(r>=f)return-1;if(37===(u=t.charCodeAt(c++))){if(u=t.charAt(c++),!(i=We[u in o?t.charAt(c++):u])||(r=i(e,n,r))<0)return-1}else if(u!=n.charCodeAt(r++))return-1}return r}return be.x=Ve(c,be),be.X=Ve(a,be),be.c=Ve(i,be),Pe.x=Ve(c,Pe),Pe.X=Ve(a,Pe),Pe.c=Ve(i,Pe),{format:function(e){var t=Ve(e+="",be);return t.toString=function(){return e},t},parse:function(e){var t=je(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=Ve(e+="",Pe);return t.toString=function(){return e},t},utcParse:function(e){var t=je(e+="",!0);return t.toString=function(){return e},t}}}var c,o={"-":"",_:" ",0:"0"},a=/^\s*\d+/,f=/^%/,l=/[\\^$*+?|[\]().{}]/g;function s(e,t,n){var r=e<0?"-":"",u=(r?-e:e)+"",i=u.length;return r+(i<n?new Array(n-i+1).join(t)+u:u)}function g(e){return e.replace(l,"\\$&")}function d(e){return new RegExp("^(?:"+e.map(g).join("|")+")","i")}function y(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function h(e,t,n){var r=a.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function m(e,t,n){var r=a.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function v(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function T(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function M(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function D(e,t,n){var r=a.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function C(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function U(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function x(e,t,n){var r=a.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function p(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function w(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function S(e,t,n){var r=a.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Y(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function F(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function L(e,t,n){var r=a.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function H(e,t,n){var r=a.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function A(e,t,n){var r=a.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Z(e,t,n){var r=f.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function b(e,t,n){var r=a.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function P(e,t,n){var r=a.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function W(e,t){return s(e.getDate(),t,2)}function V(e,t){return s(e.getHours(),t,2)}function j(e,t){return s(e.getHours()%12||12,t,2)}function q(e,n){return s(1+t.timeDay.count(t.timeYear(e),e),n,3)}function I(e,t){return s(e.getMilliseconds(),t,3)}function J(e,t){return I(e,t)+"000"}function O(e,t){return s(e.getMonth()+1,t,2)}function Q(e,t){return s(e.getMinutes(),t,2)}function X(e,t){return s(e.getSeconds(),t,2)}function N(e){var t=e.getDay();return 0===t?7:t}function B(e,n){return s(t.timeSunday.count(t.timeYear(e)-1,e),n,2)}function G(e){var n=e.getDay();return n>=4||0===n?t.timeThursday(e):t.timeThursday.ceil(e)}function _(e,n){return e=G(e),s(t.timeThursday.count(t.timeYear(e),e)+(4===t.timeYear(e).getDay()),n,2)}function $(e){return e.getDay()}function z(e,n){return s(t.timeMonday.count(t.timeYear(e)-1,e),n,2)}function E(e,t){return s(e.getFullYear()%100,t,2)}function R(e,t){return s((e=G(e)).getFullYear()%100,t,2)}function k(e,t){return s(e.getFullYear()%1e4,t,4)}function K(e,n){var r=e.getDay();return s((e=r>=4||0===r?t.timeThursday(e):t.timeThursday.ceil(e)).getFullYear()%1e4,n,4)}function ee(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+s(t/60|0,"0",2)+s(t%60,"0",2)}function te(e,t){return s(e.getUTCDate(),t,2)}function ne(e,t){return s(e.getUTCHours(),t,2)}function re(e,t){return s(e.getUTCHours()%12||12,t,2)}function ue(e,n){return s(1+t.utcDay.count(t.utcYear(e),e),n,3)}function ie(e,t){return s(e.getUTCMilliseconds(),t,3)}function ce(e,t){return ie(e,t)+"000"}function oe(e,t){return s(e.getUTCMonth()+1,t,2)}function ae(e,t){return s(e.getUTCMinutes(),t,2)}function fe(e,t){return s(e.getUTCSeconds(),t,2)}function le(e){var t=e.getUTCDay();return 0===t?7:t}function se(e,n){return s(t.utcSunday.count(t.utcYear(e)-1,e),n,2)}function ge(e){var n=e.getUTCDay();return n>=4||0===n?t.utcThursday(e):t.utcThursday.ceil(e)}function de(e,n){return e=ge(e),s(t.utcThursday.count(t.utcYear(e),e)+(4===t.utcYear(e).getUTCDay()),n,2)}function ye(e){return e.getUTCDay()}function he(e,n){return s(t.utcMonday.count(t.utcYear(e)-1,e),n,2)}function me(e,t){return s(e.getUTCFullYear()%100,t,2)}function ve(e,t){return s((e=ge(e)).getUTCFullYear()%100,t,2)}function Te(e,t){return s(e.getUTCFullYear()%1e4,t,4)}function Me(e,n){var r=e.getUTCDay();return s((e=r>=4||0===r?t.utcThursday(e):t.utcThursday.ceil(e)).getUTCFullYear()%1e4,n,4)}function De(){return"+0000"}function Ce(){return"%"}function Ue(e){return+e}function xe(e){return Math.floor(+e/1e3)}function pe(t){return c=i(t),e.timeFormat=c.format,e.timeParse=c.parse,e.utcFormat=c.utcFormat,e.utcParse=c.utcParse,c}e.timeFormat=void 0,e.timeParse=void 0,e.utcFormat=void 0,e.utcParse=void 0,pe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var we="%Y-%m-%dT%H:%M:%S.%LZ";var Se=Date.prototype.toISOString?function(e){return e.toISOString()}:e.utcFormat(we);var Ye=+new Date("2000-01-01T00:00:00.000Z")?function(e){var t=new Date(e);return isNaN(t)?null:t}:e.utcParse(we);e.isoFormat=Se,e.isoParse=Ye,e.timeFormatDefaultLocale=pe,e.timeFormatLocale=i,Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/d3-time-format/locale/ar-EG.json
===================================================================
--- node_modules/d3-time-format/locale/ar-EG.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x, %X",
-  "date": "%-d/%-m/%Y",
-  "time": "%-I:%M:%S %p",
-  "periods": ["ص", "م"],
-  "days": ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
-  "shortDays": ["أحد", "إثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"],
-  "months": ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
-  "shortMonths": ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]
-}
Index: de_modules/d3-time-format/locale/ar-SY.json
===================================================================
--- node_modules/d3-time-format/locale/ar-SY.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x, %X",
-  "date": "%-d/%-m/%Y",
-  "time": "%-I:%M:%S %p",
-  "periods": ["ص", "م"],
-  "days": ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
-  "shortDays": ["أحد", "إثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"],
-  "months": ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"],
-  "shortMonths": ["ك٢", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "ت١", "ت٢", "ك١"]
-}
Index: de_modules/d3-time-format/locale/ca-ES.json
===================================================================
--- node_modules/d3-time-format/locale/ca-ES.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e de %B de %Y, %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"],
-  "shortDays": ["dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."],
-  "months": ["gener", "febrer", "març", "abril", "maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre"],
-  "shortMonths": ["gen.", "febr.", "març", "abr.", "maig", "juny", "jul.", "ag.", "set.", "oct.", "nov.", "des."]
-}
Index: de_modules/d3-time-format/locale/cs-CZ.json
===================================================================
--- node_modules/d3-time-format/locale/cs-CZ.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A,%e.%B %Y, %X",
-  "date": "%-d.%-m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["neděle", "pondělí", "úterý", "středa", "čvrtek", "pátek", "sobota"],
-  "shortDays": ["ne.", "po.", "út.", "st.", "čt.", "pá.", "so."],
-  "months": ["leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec"],
-  "shortMonths": ["led", "úno", "břez", "dub", "kvě", "čer", "červ", "srp", "zář", "říj", "list", "pros"]
-}
Index: de_modules/d3-time-format/locale/da-DK.json
===================================================================
--- node_modules/d3-time-format/locale/da-DK.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A den %d %B %Y %X",
-  "date": "%d-%m-%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"],
-  "shortDays": ["søn", "man", "tir", "ons", "tor", "fre", "lør"],
-  "months": ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"],
-  "shortMonths": ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"]
-}
Index: de_modules/d3-time-format/locale/de-CH.json
===================================================================
--- node_modules/d3-time-format/locale/de-CH.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, der %e. %B %Y, %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
-  "shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
-  "months": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
-  "shortMonths": ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]
-}
Index: de_modules/d3-time-format/locale/de-DE.json
===================================================================
--- node_modules/d3-time-format/locale/de-DE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, der %e. %B %Y, %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
-  "shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
-  "months": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
-  "shortMonths": ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]
-}
Index: de_modules/d3-time-format/locale/en-CA.json
===================================================================
--- node_modules/d3-time-format/locale/en-CA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %b %e %X %Y",
-  "date": "%Y-%m-%d",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-}
Index: de_modules/d3-time-format/locale/en-GB.json
===================================================================
--- node_modules/d3-time-format/locale/en-GB.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %e %b %X %Y",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-}
Index: de_modules/d3-time-format/locale/en-US.json
===================================================================
--- node_modules/d3-time-format/locale/en-US.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x, %X",
-  "date": "%-m/%-d/%Y",
-  "time": "%-I:%M:%S %p",
-  "periods": ["AM", "PM"],
-  "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-}
Index: de_modules/d3-time-format/locale/es-ES.json
===================================================================
--- node_modules/d3-time-format/locale/es-ES.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e de %B de %Y, %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"],
-  "shortDays": ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"],
-  "months": ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"],
-  "shortMonths": ["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"]
-}
Index: de_modules/d3-time-format/locale/es-MX.json
===================================================================
--- node_modules/d3-time-format/locale/es-MX.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x, %X",
-  "date": "%d/%m/%Y",
-  "time": "%-I:%M:%S %p",
-  "periods": ["AM", "PM"],
-  "days": ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"],
-  "shortDays": ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"],
-  "months": ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"],
-  "shortMonths": ["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"]
-}
Index: de_modules/d3-time-format/locale/fa-IR.json
===================================================================
--- node_modules/d3-time-format/locale/fa-IR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x, %X",
-  "date": "%-d/%-m/%Y",
-  "time": "%-I:%M:%S %p",
-  "periods": ["صبح", "عصر"],
-  "days": ["یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"],
-  "shortDays": ["یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"],
-  "months": ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"],
-  "shortMonths": ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"]
-}
Index: de_modules/d3-time-format/locale/fi-FI.json
===================================================================
--- node_modules/d3-time-format/locale/fi-FI.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %-d. %Bta %Y klo %X",
-  "date": "%-d.%-m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["a.m.", "p.m."],
-  "days": ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"],
-  "shortDays": ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"],
-  "months": ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
-  "shortMonths": ["Tammi", "Helmi", "Maalis", "Huhti", "Touko", "Kesä", "Heinä", "Elo", "Syys", "Loka", "Marras", "Joulu"]
-}
Index: de_modules/d3-time-format/locale/fr-CA.json
===================================================================
--- node_modules/d3-time-format/locale/fr-CA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %e %b %Y %X",
-  "date": "%Y-%m-%d",
-  "time": "%H:%M:%S",
-  "periods": ["", ""],
-  "days": ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
-  "shortDays": ["dim", "lun", "mar", "mer", "jeu", "ven", "sam"],
-  "months": ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
-  "shortMonths": ["jan", "fév", "mar", "avr", "mai", "jui", "jul", "aoû", "sep", "oct", "nov", "déc"]
-}
Index: de_modules/d3-time-format/locale/fr-FR.json
===================================================================
--- node_modules/d3-time-format/locale/fr-FR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A %e %B %Y à %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
-  "shortDays": ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
-  "months": ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
-  "shortMonths": ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."]
-}
Index: de_modules/d3-time-format/locale/he-IL.json
===================================================================
--- node_modules/d3-time-format/locale/he-IL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e ב%B %Y %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"],
-  "shortDays": ["א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"],
-  "months": ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
-  "shortMonths": ["ינו׳", "פבר׳", "מרץ", "אפר׳", "מאי", "יוני", "יולי", "אוג׳", "ספט׳", "אוק׳", "נוב׳", "דצמ׳"]
-}
Index: de_modules/d3-time-format/locale/hr-HR.json
===================================================================
--- node_modules/d3-time-format/locale/hr-HR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e. %B %Y., %X",
-  "date": "%d. %m. %Y.",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvtrak", "Petak", "Subota"],
-  "shortDays": ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
-  "months": ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
-  "shortMonths": ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"]
-}
Index: de_modules/d3-time-format/locale/hu-HU.json
===================================================================
--- node_modules/d3-time-format/locale/hu-HU.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%Y. %B %-e., %A %X",
-  "date": "%Y. %m. %d.",
-  "time": "%H:%M:%S",
-  "periods": ["de.", "du."],
-  "days": ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
-  "shortDays": ["V", "H", "K", "Sze", "Cs", "P", "Szo"],
-  "months": ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
-  "shortMonths": ["jan.", "feb.", "már.", "ápr.", "máj.", "jún.", "júl.", "aug.", "szept.", "okt.", "nov.", "dec."]
-}
Index: de_modules/d3-time-format/locale/it-IT.json
===================================================================
--- node_modules/d3-time-format/locale/it-IT.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A %e %B %Y, %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
-  "shortDays": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
-  "months": ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
-  "shortMonths": ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"]
-}
Index: de_modules/d3-time-format/locale/ja-JP.json
===================================================================
--- node_modules/d3-time-format/locale/ja-JP.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x %a %X",
-  "date": "%Y/%m/%d",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"],
-  "shortDays": ["日", "月", "火", "水", "木", "金", "土"],
-  "months": ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
-  "shortMonths": ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
-}
Index: de_modules/d3-time-format/locale/ko-KR.json
===================================================================
--- node_modules/d3-time-format/locale/ko-KR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%Y/%m/%d %a %X",
-  "date": "%Y/%m/%d",
-  "time": "%H:%M:%S",
-  "periods": ["오전", "오후"],
-  "days": ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
-  "shortDays": ["일", "월", "화", "수", "목", "금", "토"],
-  "months": ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
-  "shortMonths": ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"]
-}
Index: de_modules/d3-time-format/locale/mk-MK.json
===================================================================
--- node_modules/d3-time-format/locale/mk-MK.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e %B %Y г. %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["недела", "понеделник", "вторник", "среда", "четврток", "петок", "сабота"],
-  "shortDays": ["нед", "пон", "вто", "сре", "чет", "пет", "саб"],
-  "months": ["јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"],
-  "shortMonths": ["јан", "фев", "мар", "апр", "мај", "јун", "јул", "авг", "сеп", "окт", "ное", "дек"]
-}
Index: de_modules/d3-time-format/locale/nb-NO.json
===================================================================
--- node_modules/d3-time-format/locale/nb-NO.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A den %d. %B %Y %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"],
-  "shortDays": ["søn", "man", "tir", "ons", "tor", "fre", "lør"],
-  "months": ["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"],
-  "shortMonths": ["jan", "feb", "mars", "apr", "mai", "juni", "juli", "aug", "sep", "okt", "nov", "des"]
-}
Index: de_modules/d3-time-format/locale/nl-BE.json
===================================================================
--- node_modules/d3-time-format/locale/nl-BE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %e %B %Y %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
-  "shortDays": ["zo", "ma", "di", "wo", "do", "vr", "za"],
-  "months": ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
-  "shortMonths": ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"]
-}
Index: de_modules/d3-time-format/locale/nl-NL.json
===================================================================
--- node_modules/d3-time-format/locale/nl-NL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %e %B %Y %X",
-  "date": "%d-%m-%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
-  "shortDays": ["zo", "ma", "di", "wo", "do", "vr", "za"],
-  "months": ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
-  "shortMonths": ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"]
-}
Index: de_modules/d3-time-format/locale/pl-PL.json
===================================================================
--- node_modules/d3-time-format/locale/pl-PL.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e %B %Y, %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
-  "shortDays": ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."],
-  "months": ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
-  "shortMonths": ["Stycz.", "Luty", "Marz.", "Kwie.", "Maj", "Czerw.", "Lipc.", "Sierp.", "Wrz.", "Paźdz.", "Listop.", "Grudz."]
-}
Index: de_modules/d3-time-format/locale/pt-BR.json
===================================================================
--- node_modules/d3-time-format/locale/pt-BR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e de %B de %Y. %X",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
-  "shortDays": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
-  "months": ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
-  "shortMonths": ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
-}
Index: de_modules/d3-time-format/locale/ru-RU.json
===================================================================
--- node_modules/d3-time-format/locale/ru-RU.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e %B %Y г. %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
-  "shortDays": ["вс", "пн", "вт", "ср", "чт", "пт", "сб"],
-  "months": ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"],
-  "shortMonths": ["янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"]
-}
Index: de_modules/d3-time-format/locale/sv-SE.json
===================================================================
--- node_modules/d3-time-format/locale/sv-SE.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A den %d %B %Y %X",
-  "date": "%Y-%m-%d",
-  "time": "%H:%M:%S",
-  "periods": ["fm", "em"],
-  "days": ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"],
-  "shortDays": ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"],
-  "months": ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
-  "shortMonths": ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
-}
Index: de_modules/d3-time-format/locale/tr-TR.json
===================================================================
--- node_modules/d3-time-format/locale/tr-TR.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%a %e %b %X %Y",
-  "date": "%d/%m/%Y",
-  "time": "%H:%M:%S",
-  "periods": ["AM", "PM"],
-  "days": ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
-  "shortDays": ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"],
-  "months": ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
-  "shortMonths": ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"]
-}
Index: de_modules/d3-time-format/locale/uk-UA.json
===================================================================
--- node_modules/d3-time-format/locale/uk-UA.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%A, %e %B %Y р. %X",
-  "date": "%d.%m.%Y",
-  "time": "%H:%M:%S",
-  "periods": ["дп", "пп"],
-  "days": ["неділя", "понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота"],
-  "shortDays": ["нд", "пн", "вт", "ср", "чт", "пт", "сб"],
-  "months": ["січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"],
-  "shortMonths": ["січ.", "лют.", "бер.", "квіт.", "трав.", "черв.", "лип.", "серп.", "вер.", "жовт.", "лист.", "груд."]
-}
Index: de_modules/d3-time-format/locale/zh-CN.json
===================================================================
--- node_modules/d3-time-format/locale/zh-CN.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x %A %X",
-  "date": "%Y年%-m月%-d日",
-  "time": "%H:%M:%S",
-  "periods": ["上午", "下午"],
-  "days": ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
-  "shortDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
-  "months": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
-  "shortMonths": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
-}
Index: de_modules/d3-time-format/locale/zh-TW.json
===================================================================
--- node_modules/d3-time-format/locale/zh-TW.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-{
-  "dateTime": "%x %A %X",
-  "date": "%Y年%-m月%-d日",
-  "time": "%H:%M:%S",
-  "periods": ["上午", "下午"],
-  "days": ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
-  "shortDays": ["日", "一", "二", "三", "四", "五", "六"],
-  "months": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
-  "shortMonths": ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
-}
Index: de_modules/d3-time-format/package.json
===================================================================
--- node_modules/d3-time-format/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-{
-  "name": "d3-time-format",
-  "version": "4.1.0",
-  "description": "A JavaScript time formatter and parser inspired by strftime and strptime.",
-  "homepage": "https://d3js.org/d3-time-format/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-time-format.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "time",
-    "format",
-    "strftime",
-    "strptime"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js",
-    "locale/*.json"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-time-format.min.js",
-  "unpkg": "dist/d3-time-format.min.js",
-  "exports": {
-    ".": {
-      "umd": "./dist/d3-time-format.min.js",
-      "default": "./src/index.js"
-    },
-    "./locale/*": "./locale/*.json"
-  },
-  "sideEffects": [
-    "./src/defaultLocale.js"
-  ],
-  "dependencies": {
-    "d3-time": "1 - 3"
-  },
-  "devDependencies": {
-    "eslint": "8",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "TZ=America/Los_Angeles mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-time-format/src/defaultLocale.js
===================================================================
--- node_modules/d3-time-format/src/defaultLocale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import formatLocale from "./locale.js";
-
-var locale;
-export var timeFormat;
-export var timeParse;
-export var utcFormat;
-export var utcParse;
-
-defaultLocale({
-  dateTime: "%x, %X",
-  date: "%-m/%-d/%Y",
-  time: "%-I:%M:%S %p",
-  periods: ["AM", "PM"],
-  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-});
-
-export default function defaultLocale(definition) {
-  locale = formatLocale(definition);
-  timeFormat = locale.format;
-  timeParse = locale.parse;
-  utcFormat = locale.utcFormat;
-  utcParse = locale.utcParse;
-  return locale;
-}
Index: de_modules/d3-time-format/src/index.js
===================================================================
--- node_modules/d3-time-format/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from "./defaultLocale.js";
-export {default as timeFormatLocale} from "./locale.js";
-export {default as isoFormat} from "./isoFormat.js";
-export {default as isoParse} from "./isoParse.js";
Index: de_modules/d3-time-format/src/isoFormat.js
===================================================================
--- node_modules/d3-time-format/src/isoFormat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import {utcFormat} from "./defaultLocale.js";
-
-export var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
-
-function formatIsoNative(date) {
-  return date.toISOString();
-}
-
-var formatIso = Date.prototype.toISOString
-    ? formatIsoNative
-    : utcFormat(isoSpecifier);
-
-export default formatIso;
Index: de_modules/d3-time-format/src/isoParse.js
===================================================================
--- node_modules/d3-time-format/src/isoParse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import {isoSpecifier} from "./isoFormat.js";
-import {utcParse} from "./defaultLocale.js";
-
-function parseIsoNative(string) {
-  var date = new Date(string);
-  return isNaN(date) ? null : date;
-}
-
-var parseIso = +new Date("2000-01-01T00:00:00.000Z")
-    ? parseIsoNative
-    : utcParse(isoSpecifier);
-
-export default parseIso;
Index: de_modules/d3-time-format/src/locale.js
===================================================================
--- node_modules/d3-time-format/src/locale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,697 +1,0 @@
-import {
-  timeDay,
-  timeSunday,
-  timeMonday,
-  timeThursday,
-  timeYear,
-  utcDay,
-  utcSunday,
-  utcMonday,
-  utcThursday,
-  utcYear
-} from "d3-time";
-
-function localDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
-    date.setFullYear(d.y);
-    return date;
-  }
-  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
-}
-
-function utcDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
-    date.setUTCFullYear(d.y);
-    return date;
-  }
-  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
-}
-
-function newDate(y, m, d) {
-  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
-}
-
-export default function formatLocale(locale) {
-  var locale_dateTime = locale.dateTime,
-      locale_date = locale.date,
-      locale_time = locale.time,
-      locale_periods = locale.periods,
-      locale_weekdays = locale.days,
-      locale_shortWeekdays = locale.shortDays,
-      locale_months = locale.months,
-      locale_shortMonths = locale.shortMonths;
-
-  var periodRe = formatRe(locale_periods),
-      periodLookup = formatLookup(locale_periods),
-      weekdayRe = formatRe(locale_weekdays),
-      weekdayLookup = formatLookup(locale_weekdays),
-      shortWeekdayRe = formatRe(locale_shortWeekdays),
-      shortWeekdayLookup = formatLookup(locale_shortWeekdays),
-      monthRe = formatRe(locale_months),
-      monthLookup = formatLookup(locale_months),
-      shortMonthRe = formatRe(locale_shortMonths),
-      shortMonthLookup = formatLookup(locale_shortMonths);
-
-  var formats = {
-    "a": formatShortWeekday,
-    "A": formatWeekday,
-    "b": formatShortMonth,
-    "B": formatMonth,
-    "c": null,
-    "d": formatDayOfMonth,
-    "e": formatDayOfMonth,
-    "f": formatMicroseconds,
-    "g": formatYearISO,
-    "G": formatFullYearISO,
-    "H": formatHour24,
-    "I": formatHour12,
-    "j": formatDayOfYear,
-    "L": formatMilliseconds,
-    "m": formatMonthNumber,
-    "M": formatMinutes,
-    "p": formatPeriod,
-    "q": formatQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatSeconds,
-    "u": formatWeekdayNumberMonday,
-    "U": formatWeekNumberSunday,
-    "V": formatWeekNumberISO,
-    "w": formatWeekdayNumberSunday,
-    "W": formatWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatYear,
-    "Y": formatFullYear,
-    "Z": formatZone,
-    "%": formatLiteralPercent
-  };
-
-  var utcFormats = {
-    "a": formatUTCShortWeekday,
-    "A": formatUTCWeekday,
-    "b": formatUTCShortMonth,
-    "B": formatUTCMonth,
-    "c": null,
-    "d": formatUTCDayOfMonth,
-    "e": formatUTCDayOfMonth,
-    "f": formatUTCMicroseconds,
-    "g": formatUTCYearISO,
-    "G": formatUTCFullYearISO,
-    "H": formatUTCHour24,
-    "I": formatUTCHour12,
-    "j": formatUTCDayOfYear,
-    "L": formatUTCMilliseconds,
-    "m": formatUTCMonthNumber,
-    "M": formatUTCMinutes,
-    "p": formatUTCPeriod,
-    "q": formatUTCQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatUTCSeconds,
-    "u": formatUTCWeekdayNumberMonday,
-    "U": formatUTCWeekNumberSunday,
-    "V": formatUTCWeekNumberISO,
-    "w": formatUTCWeekdayNumberSunday,
-    "W": formatUTCWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatUTCYear,
-    "Y": formatUTCFullYear,
-    "Z": formatUTCZone,
-    "%": formatLiteralPercent
-  };
-
-  var parses = {
-    "a": parseShortWeekday,
-    "A": parseWeekday,
-    "b": parseShortMonth,
-    "B": parseMonth,
-    "c": parseLocaleDateTime,
-    "d": parseDayOfMonth,
-    "e": parseDayOfMonth,
-    "f": parseMicroseconds,
-    "g": parseYear,
-    "G": parseFullYear,
-    "H": parseHour24,
-    "I": parseHour24,
-    "j": parseDayOfYear,
-    "L": parseMilliseconds,
-    "m": parseMonthNumber,
-    "M": parseMinutes,
-    "p": parsePeriod,
-    "q": parseQuarter,
-    "Q": parseUnixTimestamp,
-    "s": parseUnixTimestampSeconds,
-    "S": parseSeconds,
-    "u": parseWeekdayNumberMonday,
-    "U": parseWeekNumberSunday,
-    "V": parseWeekNumberISO,
-    "w": parseWeekdayNumberSunday,
-    "W": parseWeekNumberMonday,
-    "x": parseLocaleDate,
-    "X": parseLocaleTime,
-    "y": parseYear,
-    "Y": parseFullYear,
-    "Z": parseZone,
-    "%": parseLiteralPercent
-  };
-
-  // These recursive directive definitions must be deferred.
-  formats.x = newFormat(locale_date, formats);
-  formats.X = newFormat(locale_time, formats);
-  formats.c = newFormat(locale_dateTime, formats);
-  utcFormats.x = newFormat(locale_date, utcFormats);
-  utcFormats.X = newFormat(locale_time, utcFormats);
-  utcFormats.c = newFormat(locale_dateTime, utcFormats);
-
-  function newFormat(specifier, formats) {
-    return function(date) {
-      var string = [],
-          i = -1,
-          j = 0,
-          n = specifier.length,
-          c,
-          pad,
-          format;
-
-      if (!(date instanceof Date)) date = new Date(+date);
-
-      while (++i < n) {
-        if (specifier.charCodeAt(i) === 37) {
-          string.push(specifier.slice(j, i));
-          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
-          else pad = c === "e" ? " " : "0";
-          if (format = formats[c]) c = format(date, pad);
-          string.push(c);
-          j = i + 1;
-        }
-      }
-
-      string.push(specifier.slice(j, i));
-      return string.join("");
-    };
-  }
-
-  function newParse(specifier, Z) {
-    return function(string) {
-      var d = newDate(1900, undefined, 1),
-          i = parseSpecifier(d, specifier, string += "", 0),
-          week, day;
-      if (i != string.length) return null;
-
-      // If a UNIX timestamp is specified, return it.
-      if ("Q" in d) return new Date(d.Q);
-      if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
-
-      // If this is utcParse, never use the local timezone.
-      if (Z && !("Z" in d)) d.Z = 0;
-
-      // The am-pm flag is 0 for AM, and 1 for PM.
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-
-      // If the month was not specified, inherit from the quarter.
-      if (d.m === undefined) d.m = "q" in d ? d.q : 0;
-
-      // Convert day-of-week and week-of-year to day-of-year.
-      if ("V" in d) {
-        if (d.V < 1 || d.V > 53) return null;
-        if (!("w" in d)) d.w = 1;
-        if ("Z" in d) {
-          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
-          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
-          week = utcDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getUTCFullYear();
-          d.m = week.getUTCMonth();
-          d.d = week.getUTCDate() + (d.w + 6) % 7;
-        } else {
-          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
-          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);
-          week = timeDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getFullYear();
-          d.m = week.getMonth();
-          d.d = week.getDate() + (d.w + 6) % 7;
-        }
-      } else if ("W" in d || "U" in d) {
-        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
-        day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
-        d.m = 0;
-        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
-      }
-
-      // If a time zone is specified, all fields are interpreted as UTC and then
-      // offset according to the specified time zone.
-      if ("Z" in d) {
-        d.H += d.Z / 100 | 0;
-        d.M += d.Z % 100;
-        return utcDate(d);
-      }
-
-      // Otherwise, all fields are in local time.
-      return localDate(d);
-    };
-  }
-
-  function parseSpecifier(d, specifier, string, j) {
-    var i = 0,
-        n = specifier.length,
-        m = string.length,
-        c,
-        parse;
-
-    while (i < n) {
-      if (j >= m) return -1;
-      c = specifier.charCodeAt(i++);
-      if (c === 37) {
-        c = specifier.charAt(i++);
-        parse = parses[c in pads ? specifier.charAt(i++) : c];
-        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-
-    return j;
-  }
-
-  function parsePeriod(d, string, i) {
-    var n = periodRe.exec(string.slice(i));
-    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortWeekday(d, string, i) {
-    var n = shortWeekdayRe.exec(string.slice(i));
-    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseWeekday(d, string, i) {
-    var n = weekdayRe.exec(string.slice(i));
-    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortMonth(d, string, i) {
-    var n = shortMonthRe.exec(string.slice(i));
-    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseMonth(d, string, i) {
-    var n = monthRe.exec(string.slice(i));
-    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseLocaleDateTime(d, string, i) {
-    return parseSpecifier(d, locale_dateTime, string, i);
-  }
-
-  function parseLocaleDate(d, string, i) {
-    return parseSpecifier(d, locale_date, string, i);
-  }
-
-  function parseLocaleTime(d, string, i) {
-    return parseSpecifier(d, locale_time, string, i);
-  }
-
-  function formatShortWeekday(d) {
-    return locale_shortWeekdays[d.getDay()];
-  }
-
-  function formatWeekday(d) {
-    return locale_weekdays[d.getDay()];
-  }
-
-  function formatShortMonth(d) {
-    return locale_shortMonths[d.getMonth()];
-  }
-
-  function formatMonth(d) {
-    return locale_months[d.getMonth()];
-  }
-
-  function formatPeriod(d) {
-    return locale_periods[+(d.getHours() >= 12)];
-  }
-
-  function formatQuarter(d) {
-    return 1 + ~~(d.getMonth() / 3);
-  }
-
-  function formatUTCShortWeekday(d) {
-    return locale_shortWeekdays[d.getUTCDay()];
-  }
-
-  function formatUTCWeekday(d) {
-    return locale_weekdays[d.getUTCDay()];
-  }
-
-  function formatUTCShortMonth(d) {
-    return locale_shortMonths[d.getUTCMonth()];
-  }
-
-  function formatUTCMonth(d) {
-    return locale_months[d.getUTCMonth()];
-  }
-
-  function formatUTCPeriod(d) {
-    return locale_periods[+(d.getUTCHours() >= 12)];
-  }
-
-  function formatUTCQuarter(d) {
-    return 1 + ~~(d.getUTCMonth() / 3);
-  }
-
-  return {
-    format: function(specifier) {
-      var f = newFormat(specifier += "", formats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    parse: function(specifier) {
-      var p = newParse(specifier += "", false);
-      p.toString = function() { return specifier; };
-      return p;
-    },
-    utcFormat: function(specifier) {
-      var f = newFormat(specifier += "", utcFormats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    utcParse: function(specifier) {
-      var p = newParse(specifier += "", true);
-      p.toString = function() { return specifier; };
-      return p;
-    }
-  };
-}
-
-var pads = {"-": "", "_": " ", "0": "0"},
-    numberRe = /^\s*\d+/, // note: ignores next directive
-    percentRe = /^%/,
-    requoteRe = /[\\^$*+?|[\]().{}]/g;
-
-function pad(value, fill, width) {
-  var sign = value < 0 ? "-" : "",
-      string = (sign ? -value : value) + "",
-      length = string.length;
-  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
-}
-
-function requote(s) {
-  return s.replace(requoteRe, "\\$&");
-}
-
-function formatRe(names) {
-  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
-}
-
-function formatLookup(names) {
-  return new Map(names.map((name, i) => [name.toLowerCase(), i]));
-}
-
-function parseWeekdayNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.w = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekdayNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.u = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.U = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberISO(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.V = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.W = +n[0], i + n[0].length) : -1;
-}
-
-function parseFullYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 4));
-  return n ? (d.y = +n[0], i + n[0].length) : -1;
-}
-
-function parseYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
-}
-
-function parseZone(d, string, i) {
-  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
-  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
-}
-
-function parseQuarter(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
-}
-
-function parseMonthNumber(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
-}
-
-function parseDayOfMonth(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseDayOfYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseHour24(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.H = +n[0], i + n[0].length) : -1;
-}
-
-function parseMinutes(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.M = +n[0], i + n[0].length) : -1;
-}
-
-function parseSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.S = +n[0], i + n[0].length) : -1;
-}
-
-function parseMilliseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.L = +n[0], i + n[0].length) : -1;
-}
-
-function parseMicroseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 6));
-  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
-}
-
-function parseLiteralPercent(d, string, i) {
-  var n = percentRe.exec(string.slice(i, i + 1));
-  return n ? i + n[0].length : -1;
-}
-
-function parseUnixTimestamp(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.Q = +n[0], i + n[0].length) : -1;
-}
-
-function parseUnixTimestampSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.s = +n[0], i + n[0].length) : -1;
-}
-
-function formatDayOfMonth(d, p) {
-  return pad(d.getDate(), p, 2);
-}
-
-function formatHour24(d, p) {
-  return pad(d.getHours(), p, 2);
-}
-
-function formatHour12(d, p) {
-  return pad(d.getHours() % 12 || 12, p, 2);
-}
-
-function formatDayOfYear(d, p) {
-  return pad(1 + timeDay.count(timeYear(d), d), p, 3);
-}
-
-function formatMilliseconds(d, p) {
-  return pad(d.getMilliseconds(), p, 3);
-}
-
-function formatMicroseconds(d, p) {
-  return formatMilliseconds(d, p) + "000";
-}
-
-function formatMonthNumber(d, p) {
-  return pad(d.getMonth() + 1, p, 2);
-}
-
-function formatMinutes(d, p) {
-  return pad(d.getMinutes(), p, 2);
-}
-
-function formatSeconds(d, p) {
-  return pad(d.getSeconds(), p, 2);
-}
-
-function formatWeekdayNumberMonday(d) {
-  var day = d.getDay();
-  return day === 0 ? 7 : day;
-}
-
-function formatWeekNumberSunday(d, p) {
-  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);
-}
-
-function dISO(d) {
-  var day = d.getDay();
-  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
-}
-
-function formatWeekNumberISO(d, p) {
-  d = dISO(d);
-  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
-}
-
-function formatWeekdayNumberSunday(d) {
-  return d.getDay();
-}
-
-function formatWeekNumberMonday(d, p) {
-  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);
-}
-
-function formatYear(d, p) {
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatYearISO(d, p) {
-  d = dISO(d);
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatFullYear(d, p) {
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatFullYearISO(d, p) {
-  var day = d.getDay();
-  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatZone(d) {
-  var z = d.getTimezoneOffset();
-  return (z > 0 ? "-" : (z *= -1, "+"))
-      + pad(z / 60 | 0, "0", 2)
-      + pad(z % 60, "0", 2);
-}
-
-function formatUTCDayOfMonth(d, p) {
-  return pad(d.getUTCDate(), p, 2);
-}
-
-function formatUTCHour24(d, p) {
-  return pad(d.getUTCHours(), p, 2);
-}
-
-function formatUTCHour12(d, p) {
-  return pad(d.getUTCHours() % 12 || 12, p, 2);
-}
-
-function formatUTCDayOfYear(d, p) {
-  return pad(1 + utcDay.count(utcYear(d), d), p, 3);
-}
-
-function formatUTCMilliseconds(d, p) {
-  return pad(d.getUTCMilliseconds(), p, 3);
-}
-
-function formatUTCMicroseconds(d, p) {
-  return formatUTCMilliseconds(d, p) + "000";
-}
-
-function formatUTCMonthNumber(d, p) {
-  return pad(d.getUTCMonth() + 1, p, 2);
-}
-
-function formatUTCMinutes(d, p) {
-  return pad(d.getUTCMinutes(), p, 2);
-}
-
-function formatUTCSeconds(d, p) {
-  return pad(d.getUTCSeconds(), p, 2);
-}
-
-function formatUTCWeekdayNumberMonday(d) {
-  var dow = d.getUTCDay();
-  return dow === 0 ? 7 : dow;
-}
-
-function formatUTCWeekNumberSunday(d, p) {
-  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
-}
-
-function UTCdISO(d) {
-  var day = d.getUTCDay();
-  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
-}
-
-function formatUTCWeekNumberISO(d, p) {
-  d = UTCdISO(d);
-  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
-}
-
-function formatUTCWeekdayNumberSunday(d) {
-  return d.getUTCDay();
-}
-
-function formatUTCWeekNumberMonday(d, p) {
-  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
-}
-
-function formatUTCYear(d, p) {
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCYearISO(d, p) {
-  d = UTCdISO(d);
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCFullYear(d, p) {
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCFullYearISO(d, p) {
-  var day = d.getUTCDay();
-  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCZone() {
-  return "+0000";
-}
-
-function formatLiteralPercent() {
-  return "%";
-}
-
-function formatUnixTimestamp(d) {
-  return +d;
-}
-
-function formatUnixTimestampSeconds(d) {
-  return Math.floor(+d / 1000);
-}
Index: de_modules/d3-time/LICENSE
===================================================================
--- node_modules/d3-time/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-time/README.md
===================================================================
--- node_modules/d3-time/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,380 +1,0 @@
-# d3-time
-
-When visualizing time series data, analyzing temporal patterns, or working with time in general, the irregularities of conventional time units quickly become apparent. In the [Gregorian calendar](https://en.wikipedia.org/wiki/Gregorian_calendar), for example, most months have 31 days but some have 28, 29 or 30; most years have 365 days but [leap years](https://en.wikipedia.org/wiki/Leap_year) have 366; and with [daylight saving](https://en.wikipedia.org/wiki/Daylight_saving_time), most days have 24 hours but some have 23 or 25. Adding to complexity, daylight saving conventions vary around the world.
-
-As a result of these temporal peculiarities, it can be difficult to perform seemingly-trivial tasks. For example, if you want to compute the number of days that have passed between two dates, you can’t simply subtract and divide by 24 hours (86,400,000 ms):
-
-```js
-start = new Date(2015, 02, 01) // 2015-03-01T00:00
-end = new Date(2015, 03, 01) // 2015-04-01T00:00
-(end - start) / 864e5 // 30.958333333333332, oops! 🤯
-```
-
-You can, however, use [d3.timeDay](#timeDay).[count](#interval_count):
-
-```js
-d3.timeDay.count(start, end) // 31 😌
-```
-
-The [day](#day) [interval](#api-reference) is one of several provided by d3-time. Each interval represents a conventional unit of time—[hours](#timeHour), [weeks](#timeWeek), [months](#timeMonth), *etc.*—and has methods to calculate boundary dates. For example, [d3.timeDay](#timeDay) computes midnight (typically 12:00 AM local time) of the corresponding day. In addition to [rounding](#interval_round) and [counting](#interval_count), intervals can also be used to generate arrays of boundary dates. For example, to compute each Sunday in the current month:
-
-```js
-start = d3.timeMonth.floor() // 2015-01-01T00:00
-stop = d3.timeMonth.ceil() // 2015-02-01T00:00
-d3.timeWeek.range(start, stop) // [2015-01-07T00:00, 2015-01-14T00:00, 2015-01-21T00:00, 2015-01-28T00:00]
-```
-
-The d3-time module does not implement its own calendaring system; it merely implements a convenient API for calendar math on top of ECMAScript [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date). Thus, it ignores leap seconds and can only work with the local time zone and [Coordinated Universal Time](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) (UTC).
-
-This module is used by D3’s time scales to generate sensible ticks, by D3’s time format, and can also be used directly to do things like [calendar layouts](http://bl.ocks.org/mbostock/4063318).
-
-## Installing
-
-If you use npm, `npm install d3-time`. You can also download the [latest release on GitHub](https://github.com/d3/d3-time/releases/latest). For vanilla HTML in modern browsers, import d3-time from Skypack:
-
-```html
-<script type="module">
-
-import {timeDay} from "https://cdn.skypack.dev/d3-time@3";
-
-const day = timeDay();
-
-</script>
-```
-
-For legacy environments, you can load d3-time’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-time@3"></script>
-<script>
-
-const day = d3.timeDay();
-
-</script>
-```
-
-[Try d3-time in your browser.](https://observablehq.com/collection/@d3/d3-time)
-
-## API Reference
-
-<a name="_interval" href="#_interval">#</a> <i>interval</i>([<i>date</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Equivalent to [*interval*.floor](#interval_floor), except if *date* is not specified, it defaults to the current time. For example, [d3.timeYear](#timeYear)(*date*) and d3.timeYear.floor(*date*) are equivalent.
-
-```js
-monday = d3.timeMonday() // the latest preceeding Monday, local time
-```
-
-<a name="interval_floor" href="#interval_floor">#</a> <i>interval</i>.<b>floor</b>(<i>date</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a new date representing the latest interval boundary date before or equal to *date*. For example, [d3.timeDay](#timeDay).floor(*date*) typically returns 12:00 AM local time on the given *date*.
-
-This method is idempotent: if the specified *date* is already floored to the current interval, a new date with an identical time is returned. Furthermore, the returned date is the minimum expressible value of the associated interval, such that *interval*.floor(*interval*.floor(*date*) - 1) returns the preceeding interval boundary date.
-
-Note that the `==` and `===` operators do not compare by value with [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) objects, and thus you cannot use them to tell whether the specified *date* has already been floored. Instead, coerce to a number and then compare:
-
-```js
-// Returns true if the specified date is a day boundary.
-function isDay(date) {
-  return +d3.timeDay.floor(date) === +date;
-}
-```
-
-This is more reliable than testing whether the time is 12:00 AM, as in some time zones midnight may not exist due to daylight saving.
-
-<a name="interval_round" href="#interval_round">#</a> <i>interval</i>.<b>round</b>(<i>date</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a new date representing the closest interval boundary date to *date*. For example, [d3.timeDay](#timeDay).round(*date*) typically returns 12:00 AM local time on the given *date* if it is on or before noon, and 12:00 AM of the following day if it is after noon.
-
-This method is idempotent: if the specified *date* is already rounded to the current interval, a new date with an identical time is returned.
-
-<a name="interval_ceil" href="#interval_ceil">#</a> <i>interval</i>.<b>ceil</b>(<i>date</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a new date representing the earliest interval boundary date after or equal to *date*. For example, [d3.timeDay](#timeDay).ceil(*date*) typically returns 12:00 AM local time on the date following the given *date*.
-
-This method is idempotent: if the specified *date* is already ceilinged to the current interval, a new date with an identical time is returned. Furthermore, the returned date is the maximum expressible value of the associated interval, such that *interval*.ceil(*interval*.ceil(*date*) + 1) returns the following interval boundary date.
-
-<a name="interval_offset" href="#interval_offset">#</a> <i>interval</i>.<b>offset</b>(<i>date</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a new date equal to *date* plus *step* intervals. If *step* is not specified it defaults to 1. If *step* is negative, then the returned date will be before the specified *date*; if *step* is zero, then a copy of the specified *date* is returned; if *step* is not an integer, it is [floored](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor). This method does not round the specified *date* to the interval. For example, if *date* is today at 5:34 PM, then [d3.timeDay](#timeDay).offset(*date*, 1) returns 5:34 PM tomorrow (even if daylight saving changes!).
-
-<a name="interval_range" href="#interval_range">#</a> <i>interval</i>.<b>range</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns an array of dates representing every interval boundary after or equal to *start* (inclusive) and before *stop* (exclusive). If *step* is specified, then every *step*th boundary will be returned; for example, for the [d3.timeDay](#timeDay) interval a *step* of 2 will return every other day. If *step* is not an integer, it is [floored](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor).
-
-The first date in the returned array is the earliest boundary after or equal to *start*; subsequent dates are [offset](#interval_offset) by *step* intervals and [floored](#interval_floor). Thus, two overlapping ranges may be consistent. For example, this range contains odd days:
-
-```js
-d3.timeDay.range(new Date(2015, 0, 1), new Date(2015, 0, 7), 2) // [2015-01-01T00:00, 2015-01-03T00:00, 2015-01-05T00:00]
-```
-
-While this contains even days:
-
-```js
-d3.timeDay.range(new Date(2015, 0, 2), new Date(2015, 0, 8), 2) // [2015-01-02T00:00, 2015-01-04T00:00, 2015-01-06T00:00]
-```
-
-To make ranges consistent when a *step* is specified, use [*interval*.every](#interval_every) instead.
-
-<a name="interval_filter" href="#interval_filter">#</a> <i>interval</i>.<b>filter</b>(<i>test</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a new interval that is a filtered subset of this interval using the specified *test* function. The *test* function is passed a date and should return true if and only if the specified date should be considered part of the interval. For example, to create an interval that returns the 1st, 11th, 21th and 31th (if it exists) of each month:
-
-```js
-d3.timeDay.filter(d => (d.getDate() - 1) % 10 === 0)
-```
-
-The returned filtered interval does not support [*interval*.count](#interval_count). See also [*interval*.every](#interval_every).
-
-<a name="interval_every" href="#interval_every">#</a> <i>interval</i>.<b>every</b>(<i>step</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns a [filtered](#interval_filter) view of this interval representing every *step*th date. The meaning of *step* is dependent on this interval’s parent interval as defined by the field function. For example, [d3.timeMinute](#timeMinute).every(15) returns an interval representing every fifteen minutes, starting on the hour: :00, :15, :30, :45, <i>etc.</i> Note that for some intervals, the resulting dates may not be uniformly-spaced; [d3.timeDay](#timeDay)’s parent interval is [d3.timeMonth](#timeMonth), and thus the interval number resets at the start of each month. If *step* is not valid, returns null. If *step* is one, returns this interval.
-
-This method can be used in conjunction with [*interval*.range](#interval_range) to ensure that two overlapping ranges are consistent. For example, this range contains odd days:
-
-```js
-d3.timeDay.every(2).range(new Date(2015, 0, 1), new Date(2015, 0, 7)) // [2015-01-01T00:00, 2015-01-03T00:00, 2015-01-05T00:00]
-```
-
-As does this one:
-
-```js
-d3.timeDay.every(2).range(new Date(2015, 0, 2), new Date(2015, 0, 8)) // [2015-01-03T00:00, 2015-01-05T00:00, 2015-01-07T00:00]
-```
-
-The returned filtered interval does not support [*interval*.count](#interval_count). See also [*interval*.filter](#interval_filter).
-
-<a name="interval_count" href="#interval_count">#</a> <i>interval</i>.<b>count</b>(<i>start</i>, <i>end</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Returns the number of interval boundaries after *start* (exclusive) and before or equal to *end* (inclusive). Note that this behavior is slightly different than [*interval*.range](#interval_range) because its purpose is to return the zero-based number of the specified *end* date relative to the specified *start* date. For example, to compute the current zero-based day-of-year number:
-
-```js
-d3.timeDay.count(d3.timeYear(now), now) // 177
-```
-
-Likewise, to compute the current zero-based week-of-year number for weeks that start on Sunday:
-
-```js
-d3.timeSunday.count(d3.timeYear(now), now) // 25
-```
-
-<a name="timeInterval" href="#timeInterval">#</a> d3.<b>timeInterval</b>(<i>floor</i>, <i>offset</i>[, <i>count</i>[, <i>field</i>]]) · [Source](https://github.com/d3/d3-time/blob/main/src/interval.js)
-
-Constructs a new custom interval given the specified *floor* and *offset* functions and an optional *count* function.
-
-The *floor* function takes a single date as an argument and rounds it down to the nearest interval boundary.
-
-The *offset* function takes a date and an integer step as arguments and advances the specified date by the specified number of boundaries; the step may be positive, negative or zero.
-
-The optional *count* function takes a start date and an end date, already floored to the current interval, and returns the number of boundaries between the start (exclusive) and end (inclusive). If a *count* function is not specified, the returned interval does not expose [*interval*.count](#interval_count) or [*interval*.every](#interval_every) methods. Note: due to an internal optimization, the specified *count* function must not invoke *interval*.count on other time intervals.
-
-The optional *field* function takes a date, already floored to the current interval, and returns the field value of the specified date, corresponding to the number of boundaries between this date (exclusive) and the latest previous parent boundary. For example, for the [d3.timeDay](#timeDay) interval, this returns the number of days since the start of the month. If a *field* function is not specified, it defaults to counting the number of interval boundaries since the UNIX epoch of January 1, 1970 UTC. The *field* function defines the behavior of [*interval*.every](#interval_every).
-
-### Intervals
-
-The following intervals are provided:
-
-<a name="timeMillisecond" href="#timeMillisecond">#</a> d3.<b>timeMillisecond</b> · [Source](https://github.com/d3/d3-time/blob/main/src/millisecond.js "Source")
-<br><a href="#timeMillisecond">#</a> d3.<b>utcMillisecond</b>
-
-Milliseconds; the shortest available time unit.
-
-<a name="timeSecond" href="#timeSecond">#</a> d3.<b>timeSecond</b> · [Source](https://github.com/d3/d3-time/blob/main/src/second.js "Source")
-<br><a href="#timeSecond">#</a> d3.<b>utcSecond</b>
-
-Seconds (e.g., 01:23:45.0000 AM); 1,000 milliseconds.
-
-<a name="timeMinute" href="#timeMinute">#</a> d3.<b>timeMinute</b> · [Source](https://github.com/d3/d3-time/blob/main/src/minute.js "Source")
-<br><a href="#timeMinute">#</a> d3.<b>utcMinute</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcMinute.js "Source")
-
-Minutes (e.g., 01:02:00 AM); 60 seconds. Note that ECMAScript [ignores leap seconds](http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.1).
-
-<a name="timeHour" href="#timeHour">#</a> d3.<b>timeHour</b> · [Source](https://github.com/d3/d3-time/blob/main/src/hour.js "Source")
-<br><a href="#timeHour">#</a> d3.<b>utcHour</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcHour.js "Source")
-
-Hours (e.g., 01:00 AM); 60 minutes. Note that advancing time by one hour in local time can return the same hour or skip an hour due to daylight saving.
-
-<a name="timeDay" href="#timeDay">#</a> d3.<b>timeDay</b> · [Source](https://github.com/d3/d3-time/blob/main/src/day.js "Source")
-<br><a href="#timeDay">#</a> d3.<b>utcDay</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcDay.js "Source")
-<br><a href="#timeDay">#</a> d3.<b>unixDay</b> · [Source](https://github.com/d3/d3-time/blob/main/src/unixDay.js "Source")
-
-Days (e.g., February 7, 2012 at 12:00 AM); typically 24 hours. Days in local time may range from 23 to 25 hours due to daylight saving. d3.unixDay is like [d3.utcDay](#timeDay), except it counts days since the UNIX epoch (January 1, 1970) such that *interval*.every returns uniformly-spaced dates rather than varying based on day-of-month.
-
-<a name="timeWeek" href="#timeWeek">#</a> d3.<b>timeWeek</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js "Source")
-<br><a href="#timeWeek">#</a> d3.<b>utcWeek</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js "Source")
-
-Alias for [d3.timeSunday](#timeSunday); 7 days and typically 168 hours. Weeks in local time may range from 167 to 169 hours due to daylight saving.
-
-<a name="timeSunday" href="#timeSunday">#</a> d3.<b>timeSunday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeSunday">#</a> d3.<b>utcSunday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Sunday-based weeks (e.g., February 5, 2012 at 12:00 AM).
-
-<a name="timeMonday" href="#timeMonday">#</a> d3.<b>timeMonday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeMonday">#</a> d3.<b>utcMonday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Monday-based weeks (e.g., February 6, 2012 at 12:00 AM).
-
-<a name="timeTuesday" href="#timeTuesday">#</a> d3.<b>timeTuesday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeTuesday">#</a> d3.<b>utcTuesday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Tuesday-based weeks (e.g., February 7, 2012 at 12:00 AM).
-
-<a name="timeWednesday" href="#timeWednesday">#</a> d3.<b>timeWednesday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeWednesday">#</a> d3.<b>utcWednesday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Wednesday-based weeks (e.g., February 8, 2012 at 12:00 AM).
-
-<a name="timeThursday" href="#timeThursday">#</a> d3.<b>timeThursday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeThursday">#</a> d3.<b>utcThursday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Thursday-based weeks (e.g., February 9, 2012 at 12:00 AM).
-
-<a name="timeFriday" href="#timeFriday">#</a> d3.<b>timeFriday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeFriday">#</a> d3.<b>utcFriday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Friday-based weeks (e.g., February 10, 2012 at 12:00 AM).
-
-<a name="timeSaturday" href="#timeSaturday">#</a> d3.<b>timeSaturday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeSaturday">#</a> d3.<b>utcSaturday</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Saturday-based weeks (e.g., February 11, 2012 at 12:00 AM).
-
-<a name="timeMonth" href="#timeMonth">#</a> d3.<b>timeMonth</b> · [Source](https://github.com/d3/d3-time/blob/main/src/month.js "Source")
-<br><a href="#timeMonth">#</a> d3.<b>utcMonth</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcMonth.js "Source")
-
-Months (e.g., February 1, 2012 at 12:00 AM); ranges from 28 to 31 days.
-
-<a name="timeYear" href="#timeYear">#</a> d3.<b>timeYear</b> · [Source](https://github.com/d3/d3-time/blob/main/src/year.js "Source")
-<br><a href="#timeYear">#</a> d3.<b>utcYear</b> · [Source](https://github.com/d3/d3-time/blob/main/src/utcYear.js "Source")
-
-Years (e.g., January 1, 2012 at 12:00 AM); ranges from 365 to 366 days.
-
-### Ranges
-
-For convenience, aliases for [*interval*.range](#interval_range) are also provided as plural forms of the corresponding interval.
-
-<a name="timeMilliseconds" href="#timeMilliseconds">#</a> d3.<b>timeMilliseconds</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/millisecond.js)
-<br><a href="#timeMilliseconds">#</a> d3.<b>utcMilliseconds</b>(<i>start</i>, <i>stop</i>[, <i>step</i>])
-
-Aliases for [d3.timeMillisecond](#timeMillisecond).[range](#interval_range) and [d3.utcMillisecond](#timeMillisecond).[range](#interval_range).
-
-<a name="timeSeconds" href="#timeSeconds">#</a> d3.<b>timeSeconds</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/second.js)
-<br><a href="#timeSeconds">#</a> d3.<b>utcSeconds</b>(<i>start</i>, <i>stop</i>[, <i>step</i>])
-
-Aliases for [d3.timeSecond](#timeSecond).[range](#interval_range) and [d3.utcSecond](#timeSecond).[range](#interval_range).
-
-<a name="timeMinutes" href="#timeMinutes">#</a> d3.<b>timeMinutes</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/minute.js)
-<br><a href="#timeMinutes">#</a> d3.<b>utcMinutes</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcMinute.js)
-
-Aliases for [d3.timeMinute](#timeMinute).[range](#interval_range) and [d3.utcMinute](#timeMinute).[range](#interval_range).
-
-<a name="timeHours" href="#timeHours">#</a> d3.<b>timeHours</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/hour.js)
-<br><a href="#timeHours">#</a> d3.<b>utcHours</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcHour.js)
-
-Aliases for [d3.timeHour](#timeHour).[range](#interval_range) and [d3.utcHour](#timeHour).[range](#interval_range).
-
-<a name="timeDays" href="#timeDays">#</a> d3.<b>timeDays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/day.js)
-<br><a href="#timeDays">#</a> d3.<b>utcDays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcDay.js)
-<br><a href="#timeDays">#</a> d3.<b>unixDays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/unixDay.js)
-
-Aliases for [d3.timeDay](#timeDay).[range](#interval_range), [d3.utcDay](#timeDay).[range](#interval_range), and [d3.unixDay](#timeDay).[range](#interval_range).
-
-<a name="timeWeeks" href="#timeWeeks">#</a> d3.<b>timeWeeks</b>(<i>start</i>, <i>stop</i>[, <i>step</i>])
-<br><a href="#timeWeeks">#</a> d3.<b>utcWeeks</b>(<i>start</i>, <i>stop</i>[, <i>step</i>])
-
-Aliases for [d3.timeWeek](#timeWeek).[range](#interval_range) and [d3.utcWeek](#timeWeek).[range](#interval_range).
-
-<a name="timeSundays" href="#timeSundays">#</a> d3.<b>timeSundays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeSundays">#</a> d3.<b>utcSundays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeSunday](#timeSunday).[range](#interval_range) and [d3.utcSunday](#timeSunday).[range](#interval_range).
-
-<a name="timeMondays" href="#timeMondays">#</a> d3.<b>timeMondays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeMondays">#</a> d3.<b>utcMondays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeMonday](#timeMonday).[range](#interval_range) and [d3.utcMonday](#timeMonday).[range](#interval_range).
-
-<a name="timeTuesdays" href="#timeTuesdays">#</a> d3.<b>timeTuesdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeTuesdays">#</a> d3.<b>utcTuesdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeTuesday](#timeTuesday).[range](#interval_range) and [d3.utcTuesday](#timeTuesday).[range](#interval_range).
-
-<a name="timeWednesdays" href="#timeWednesdays">#</a> d3.<b>timeWednesdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeWednesdays">#</a> d3.<b>utcWednesdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeWednesday](#timeWednesday).[range](#interval_range) and [d3.utcWednesday](#timeWednesday).[range](#interval_range).
-
-<a name="timeThursdays" href="#timeThursdays">#</a> d3.<b>timeThursdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeThursdays">#</a> d3.<b>utcThursdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeThursday](#timeThursday).[range](#interval_range) and [d3.utcThursday](#timeThursday).[range](#interval_range).
-
-<a name="timeFridays" href="#timeFridays">#</a> d3.<b>timeFridays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeFridays">#</a> d3.<b>utcFridays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeFriday](#timeFriday).[range](#interval_range) and [d3.utcFriday](#timeFriday).[range](#interval_range).
-
-<a name="timeSaturdays" href="#timeSaturdays">#</a> d3.<b>timeSaturdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/week.js)
-<br><a href="#timeSaturdays">#</a> d3.<b>utcSaturdays</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcWeek.js)
-
-Aliases for [d3.timeSaturday](#timeSaturday).[range](#interval_range) and [d3.utcSaturday](#timeSaturday).[range](#interval_range).
-
-<a name="timeMonths" href="#timeMonths">#</a> d3.<b>timeMonths</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/month.js)
-<br><a href="#timeMonths">#</a> d3.<b>utcMonths</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcMonth.js)
-
-Aliases for [d3.timeMonth](#timeMonth).[range](#interval_range) and [d3.utcMonth](#timeMonth).[range](#interval_range).
-
-<a name="timeYears" href="#timeYears">#</a> d3.<b>timeYears</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/year.js)
-<br><a href="#timeYears">#</a> d3.<b>utcYears</b>(<i>start</i>, <i>stop</i>[, <i>step</i>]) · [Source](https://github.com/d3/d3-time/blob/main/src/utcYear.js)
-
-Aliases for [d3.timeYear](#timeYear).[range](#interval_range) and [d3.utcYear](#timeYear).[range](#interval_range).
-
-### Ticks
-
-<a name="timeTicks" href="#timeTicks">#</a> d3.<b>timeTicks</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/ticks.js)
-
-Equivalent to [d3.utcTicks](#utcTicks), but in local time.
-
-<a name="timeTickInterval" href="#timeTickInterval">#</a> d3.<b>timeTickInterval</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/ticks.js)
-
-Returns the time interval that would be used by [d3.timeTicks](#timeTicks) given the same arguments.
-
-<a name="utcTicks" href="#utcTicks">#</a> d3.<b>utcTicks</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/ticks.js)
-
-Returns an array of approximately *count* dates at regular intervals between *start* and *stop* (inclusive). If *stop* is before *start*, dates are returned in reverse chronological order; otherwise dates are returned in chronological order. The following UTC time intervals are considered:
-
-* 1 second
-* 5 seconds
-* 15 seconds
-* 30 seconds
-* 1 minute
-* 5 minutes
-* 15 minutes
-* 30 minutes
-* 1 hour
-* 3 hours
-* 6 hours
-* 12 hours
-* 1 day
-* 2 days
-* 1 week
-* 1 month
-* 3 months
-* 1 year
-
-Multiples of milliseconds (for small ranges) and years (for large ranges) are also considered, following the rules of [d3.ticks](https://github.com/d3/d3-array/blob/main/README.md#ticks). The interval producing the number of dates that is closest to *count* is used. For example:
-
-```js
-start = new Date(Date.UTC(1970, 2, 1))
-stop = new Date(Date.UTC(1996, 2, 19))
-count = 4
-d3.utcTicks(start, stop, count) // [1975-01-01, 1980-01-01, 1985-01-01, 1990-01-01, 1995-01-01]
-```
-
-If *count* is a time interval, this function behaves similarly to [*interval*.range](#interval_range) except that both *start* and *stop* are inclusive and it may return dates in reverse chronological order if *stop* is before *start*.
-
-<a name="utcTickInterval" href="#utcTickInterval">#</a> d3.<b>utcTickInterval</b>(<i>start</i>, <i>stop</i>, <i>count</i>) · [Source](https://github.com/d3/d3-time/blob/main/src/ticks.js)
-
-Returns the time interval that would be used by [d3.utcTicks](#utcTicks) given the same arguments. If there is no associated interval, such as when *start* or *stop* is invalid, returns null.
Index: de_modules/d3-time/dist/d3-time.js
===================================================================
--- node_modules/d3-time/dist/d3-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,445 +1,0 @@
-// https://d3js.org/d3-time/ v3.1.0 Copyright 2010-2022 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
-})(this, (function (exports, d3Array) { 'use strict';
-
-const t0 = new Date, t1 = new Date;
-
-function timeInterval(floori, offseti, count, field) {
-
-  function interval(date) {
-    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
-  }
-
-  interval.floor = (date) => {
-    return floori(date = new Date(+date)), date;
-  };
-
-  interval.ceil = (date) => {
-    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
-  };
-
-  interval.round = (date) => {
-    const d0 = interval(date), d1 = interval.ceil(date);
-    return date - d0 < d1 - date ? d0 : d1;
-  };
-
-  interval.offset = (date, step) => {
-    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
-  };
-
-  interval.range = (start, stop, step) => {
-    const range = [];
-    start = interval.ceil(start);
-    step = step == null ? 1 : Math.floor(step);
-    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
-    let previous;
-    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
-    while (previous < start && start < stop);
-    return range;
-  };
-
-  interval.filter = (test) => {
-    return timeInterval((date) => {
-      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
-    }, (date, step) => {
-      if (date >= date) {
-        if (step < 0) while (++step <= 0) {
-          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
-        } else while (--step >= 0) {
-          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
-        }
-      }
-    });
-  };
-
-  if (count) {
-    interval.count = (start, end) => {
-      t0.setTime(+start), t1.setTime(+end);
-      floori(t0), floori(t1);
-      return Math.floor(count(t0, t1));
-    };
-
-    interval.every = (step) => {
-      step = Math.floor(step);
-      return !isFinite(step) || !(step > 0) ? null
-          : !(step > 1) ? interval
-          : interval.filter(field
-              ? (d) => field(d) % step === 0
-              : (d) => interval.count(0, d) % step === 0);
-    };
-  }
-
-  return interval;
-}
-
-const millisecond = timeInterval(() => {
-  // noop
-}, (date, step) => {
-  date.setTime(+date + step);
-}, (start, end) => {
-  return end - start;
-});
-
-// An optimized implementation for this simple case.
-millisecond.every = (k) => {
-  k = Math.floor(k);
-  if (!isFinite(k) || !(k > 0)) return null;
-  if (!(k > 1)) return millisecond;
-  return timeInterval((date) => {
-    date.setTime(Math.floor(date / k) * k);
-  }, (date, step) => {
-    date.setTime(+date + step * k);
-  }, (start, end) => {
-    return (end - start) / k;
-  });
-};
-
-const milliseconds = millisecond.range;
-
-const durationSecond = 1000;
-const durationMinute = durationSecond * 60;
-const durationHour = durationMinute * 60;
-const durationDay = durationHour * 24;
-const durationWeek = durationDay * 7;
-const durationMonth = durationDay * 30;
-const durationYear = durationDay * 365;
-
-const second = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds());
-}, (date, step) => {
-  date.setTime(+date + step * durationSecond);
-}, (start, end) => {
-  return (end - start) / durationSecond;
-}, (date) => {
-  return date.getUTCSeconds();
-});
-
-const seconds = second.range;
-
-const timeMinute = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getMinutes();
-});
-
-const timeMinutes = timeMinute.range;
-
-const utcMinute = timeInterval((date) => {
-  date.setUTCSeconds(0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getUTCMinutes();
-});
-
-const utcMinutes = utcMinute.range;
-
-const timeHour = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getHours();
-});
-
-const timeHours = timeHour.range;
-
-const utcHour = timeInterval((date) => {
-  date.setUTCMinutes(0, 0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getUTCHours();
-});
-
-const utcHours = utcHour.range;
-
-const timeDay = timeInterval(
-  date => date.setHours(0, 0, 0, 0),
-  (date, step) => date.setDate(date.getDate() + step),
-  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
-  date => date.getDate() - 1
-);
-
-const timeDays = timeDay.range;
-
-const utcDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return date.getUTCDate() - 1;
-});
-
-const utcDays = utcDay.range;
-
-const unixDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return Math.floor(date / durationDay);
-});
-
-const unixDays = unixDay.range;
-
-function timeWeekday(i) {
-  return timeInterval((date) => {
-    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setDate(date.getDate() + step * 7);
-  }, (start, end) => {
-    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
-  });
-}
-
-const timeSunday = timeWeekday(0);
-const timeMonday = timeWeekday(1);
-const timeTuesday = timeWeekday(2);
-const timeWednesday = timeWeekday(3);
-const timeThursday = timeWeekday(4);
-const timeFriday = timeWeekday(5);
-const timeSaturday = timeWeekday(6);
-
-const timeSundays = timeSunday.range;
-const timeMondays = timeMonday.range;
-const timeTuesdays = timeTuesday.range;
-const timeWednesdays = timeWednesday.range;
-const timeThursdays = timeThursday.range;
-const timeFridays = timeFriday.range;
-const timeSaturdays = timeSaturday.range;
-
-function utcWeekday(i) {
-  return timeInterval((date) => {
-    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCDate(date.getUTCDate() + step * 7);
-  }, (start, end) => {
-    return (end - start) / durationWeek;
-  });
-}
-
-const utcSunday = utcWeekday(0);
-const utcMonday = utcWeekday(1);
-const utcTuesday = utcWeekday(2);
-const utcWednesday = utcWeekday(3);
-const utcThursday = utcWeekday(4);
-const utcFriday = utcWeekday(5);
-const utcSaturday = utcWeekday(6);
-
-const utcSundays = utcSunday.range;
-const utcMondays = utcMonday.range;
-const utcTuesdays = utcTuesday.range;
-const utcWednesdays = utcWednesday.range;
-const utcThursdays = utcThursday.range;
-const utcFridays = utcFriday.range;
-const utcSaturdays = utcSaturday.range;
-
-const timeMonth = timeInterval((date) => {
-  date.setDate(1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setMonth(date.getMonth() + step);
-}, (start, end) => {
-  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
-}, (date) => {
-  return date.getMonth();
-});
-
-const timeMonths = timeMonth.range;
-
-const utcMonth = timeInterval((date) => {
-  date.setUTCDate(1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCMonth(date.getUTCMonth() + step);
-}, (start, end) => {
-  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
-}, (date) => {
-  return date.getUTCMonth();
-});
-
-const utcMonths = utcMonth.range;
-
-const timeYear = timeInterval((date) => {
-  date.setMonth(0, 1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setFullYear(date.getFullYear() + step);
-}, (start, end) => {
-  return end.getFullYear() - start.getFullYear();
-}, (date) => {
-  return date.getFullYear();
-});
-
-// An optimized implementation for this simple case.
-timeYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
-    date.setMonth(0, 1);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setFullYear(date.getFullYear() + step * k);
-  });
-};
-
-const timeYears = timeYear.range;
-
-const utcYear = timeInterval((date) => {
-  date.setUTCMonth(0, 1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCFullYear(date.getUTCFullYear() + step);
-}, (start, end) => {
-  return end.getUTCFullYear() - start.getUTCFullYear();
-}, (date) => {
-  return date.getUTCFullYear();
-});
-
-// An optimized implementation for this simple case.
-utcYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
-    date.setUTCMonth(0, 1);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCFullYear(date.getUTCFullYear() + step * k);
-  });
-};
-
-const utcYears = utcYear.range;
-
-function ticker(year, month, week, day, hour, minute) {
-
-  const tickIntervals = [
-    [second,  1,      durationSecond],
-    [second,  5,  5 * durationSecond],
-    [second, 15, 15 * durationSecond],
-    [second, 30, 30 * durationSecond],
-    [minute,  1,      durationMinute],
-    [minute,  5,  5 * durationMinute],
-    [minute, 15, 15 * durationMinute],
-    [minute, 30, 30 * durationMinute],
-    [  hour,  1,      durationHour  ],
-    [  hour,  3,  3 * durationHour  ],
-    [  hour,  6,  6 * durationHour  ],
-    [  hour, 12, 12 * durationHour  ],
-    [   day,  1,      durationDay   ],
-    [   day,  2,  2 * durationDay   ],
-    [  week,  1,      durationWeek  ],
-    [ month,  1,      durationMonth ],
-    [ month,  3,  3 * durationMonth ],
-    [  year,  1,      durationYear  ]
-  ];
-
-  function ticks(start, stop, count) {
-    const reverse = stop < start;
-    if (reverse) [start, stop] = [stop, start];
-    const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
-    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
-    return reverse ? ticks.reverse() : ticks;
-  }
-
-  function tickInterval(start, stop, count) {
-    const target = Math.abs(stop - start) / count;
-    const i = d3Array.bisector(([,, step]) => step).right(tickIntervals, target);
-    if (i === tickIntervals.length) return year.every(d3Array.tickStep(start / durationYear, stop / durationYear, count));
-    if (i === 0) return millisecond.every(Math.max(d3Array.tickStep(start, stop, count), 1));
-    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
-    return t.every(step);
-  }
-
-  return [ticks, tickInterval];
-}
-
-const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
-const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
-
-exports.timeDay = timeDay;
-exports.timeDays = timeDays;
-exports.timeFriday = timeFriday;
-exports.timeFridays = timeFridays;
-exports.timeHour = timeHour;
-exports.timeHours = timeHours;
-exports.timeInterval = timeInterval;
-exports.timeMillisecond = millisecond;
-exports.timeMilliseconds = milliseconds;
-exports.timeMinute = timeMinute;
-exports.timeMinutes = timeMinutes;
-exports.timeMonday = timeMonday;
-exports.timeMondays = timeMondays;
-exports.timeMonth = timeMonth;
-exports.timeMonths = timeMonths;
-exports.timeSaturday = timeSaturday;
-exports.timeSaturdays = timeSaturdays;
-exports.timeSecond = second;
-exports.timeSeconds = seconds;
-exports.timeSunday = timeSunday;
-exports.timeSundays = timeSundays;
-exports.timeThursday = timeThursday;
-exports.timeThursdays = timeThursdays;
-exports.timeTickInterval = timeTickInterval;
-exports.timeTicks = timeTicks;
-exports.timeTuesday = timeTuesday;
-exports.timeTuesdays = timeTuesdays;
-exports.timeWednesday = timeWednesday;
-exports.timeWednesdays = timeWednesdays;
-exports.timeWeek = timeSunday;
-exports.timeWeeks = timeSundays;
-exports.timeYear = timeYear;
-exports.timeYears = timeYears;
-exports.unixDay = unixDay;
-exports.unixDays = unixDays;
-exports.utcDay = utcDay;
-exports.utcDays = utcDays;
-exports.utcFriday = utcFriday;
-exports.utcFridays = utcFridays;
-exports.utcHour = utcHour;
-exports.utcHours = utcHours;
-exports.utcMillisecond = millisecond;
-exports.utcMilliseconds = milliseconds;
-exports.utcMinute = utcMinute;
-exports.utcMinutes = utcMinutes;
-exports.utcMonday = utcMonday;
-exports.utcMondays = utcMondays;
-exports.utcMonth = utcMonth;
-exports.utcMonths = utcMonths;
-exports.utcSaturday = utcSaturday;
-exports.utcSaturdays = utcSaturdays;
-exports.utcSecond = second;
-exports.utcSeconds = seconds;
-exports.utcSunday = utcSunday;
-exports.utcSundays = utcSundays;
-exports.utcThursday = utcThursday;
-exports.utcThursdays = utcThursdays;
-exports.utcTickInterval = utcTickInterval;
-exports.utcTicks = utcTicks;
-exports.utcTuesday = utcTuesday;
-exports.utcTuesdays = utcTuesdays;
-exports.utcWednesday = utcWednesday;
-exports.utcWednesdays = utcWednesdays;
-exports.utcWeek = utcSunday;
-exports.utcWeeks = utcSundays;
-exports.utcYear = utcYear;
-exports.utcYears = utcYears;
-
-}));
Index: de_modules/d3-time/dist/d3-time.min.js
===================================================================
--- node_modules/d3-time/dist/d3-time.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-time/ v3.1.0 Copyright 2010-2022 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{},e.d3)}(this,(function(e,t){"use strict";const n=new Date,s=new Date;function r(e,t,a,u){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{const t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),i.range=(n,s,r)=>{const a=[];if(n=i.ceil(n),r=null==r?1:Math.floor(r),!(n<s&&r>0))return a;let u;do{a.push(u=new Date(+n)),t(n,r),e(n)}while(u<n&&n<s);return a},i.filter=n=>r((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,s)=>{if(e>=e)if(s<0)for(;++s<=0;)for(;t(e,-1),!n(e););else for(;--s>=0;)for(;t(e,1),!n(e););})),a&&(i.count=(t,r)=>(n.setTime(+t),s.setTime(+r),e(n),e(s),Math.floor(a(n,s))),i.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(u?t=>u(t)%e==0:t=>i.count(0,t)%e==0):i:null)),i}const a=r((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));a.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?r((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):a:null);const u=a.range,i=1e3,o=6e4,l=36e5,c=864e5,g=6048e5,T=2592e6,d=31536e6,f=r((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*i)}),((e,t)=>(t-e)/i),(e=>e.getUTCSeconds())),m=f.range,y=r((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*i)}),((e,t)=>{e.setTime(+e+t*o)}),((e,t)=>(t-e)/o),(e=>e.getMinutes())),M=y.range,h=r((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*o)}),((e,t)=>(t-e)/o),(e=>e.getUTCMinutes())),C=h.range,U=r((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*i-e.getMinutes()*o)}),((e,t)=>{e.setTime(+e+t*l)}),((e,t)=>(t-e)/l),(e=>e.getHours())),D=U.range,F=r((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*l)}),((e,t)=>(t-e)/l),(e=>e.getUTCHours())),Y=F.range,S=r((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o)/c),(e=>e.getDate()-1)),H=S.range,p=r((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/c),(e=>e.getUTCDate()-1)),v=p.range,k=r((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/c),(e=>Math.floor(e/c))),w=k.range;function W(e){return r((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o)/g))}const x=W(0),b=W(1),z=W(2),O=W(3),I=W(4),j=W(5),q=W(6),A=x.range,B=b.range,E=z.range,G=O.range,J=I.range,K=j.range,L=q.range;function N(e){return r((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/g))}const P=N(0),Q=N(1),R=N(2),V=N(3),X=N(4),Z=N(5),$=N(6),_=P.range,ee=Q.range,te=R.range,ne=V.range,se=X.range,re=Z.range,ae=$.range,ue=r((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),ie=ue.range,oe=r((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth())),le=oe.range,ce=r((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear()));ce.every=e=>isFinite(e=Math.floor(e))&&e>0?r((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null;const ge=ce.range,Te=r((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));Te.every=e=>isFinite(e=Math.floor(e))&&e>0?r((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null;const de=Te.range;function fe(e,n,s,r,u,m){const y=[[f,1,i],[f,5,5e3],[f,15,15e3],[f,30,3e4],[m,1,o],[m,5,3e5],[m,15,9e5],[m,30,18e5],[u,1,l],[u,3,108e5],[u,6,216e5],[u,12,432e5],[r,1,c],[r,2,1728e5],[s,1,g],[n,1,T],[n,3,7776e6],[e,1,d]];function M(n,s,r){const u=Math.abs(s-n)/r,i=t.bisector((([,,e])=>e)).right(y,u);if(i===y.length)return e.every(t.tickStep(n/d,s/d,r));if(0===i)return a.every(Math.max(t.tickStep(n,s,r),1));const[o,l]=y[u/y[i-1][2]<y[i][2]/u?i-1:i];return o.every(l)}return[function(e,t,n){const s=t<e;s&&([e,t]=[t,e]);const r=n&&"function"==typeof n.range?n:M(e,t,n),a=r?r.range(e,+t+1):[];return s?a.reverse():a},M]}const[me,ye]=fe(Te,oe,P,k,F,h),[Me,he]=fe(ce,ue,x,S,U,y);e.timeDay=S,e.timeDays=H,e.timeFriday=j,e.timeFridays=K,e.timeHour=U,e.timeHours=D,e.timeInterval=r,e.timeMillisecond=a,e.timeMilliseconds=u,e.timeMinute=y,e.timeMinutes=M,e.timeMonday=b,e.timeMondays=B,e.timeMonth=ue,e.timeMonths=ie,e.timeSaturday=q,e.timeSaturdays=L,e.timeSecond=f,e.timeSeconds=m,e.timeSunday=x,e.timeSundays=A,e.timeThursday=I,e.timeThursdays=J,e.timeTickInterval=he,e.timeTicks=Me,e.timeTuesday=z,e.timeTuesdays=E,e.timeWednesday=O,e.timeWednesdays=G,e.timeWeek=x,e.timeWeeks=A,e.timeYear=ce,e.timeYears=ge,e.unixDay=k,e.unixDays=w,e.utcDay=p,e.utcDays=v,e.utcFriday=Z,e.utcFridays=re,e.utcHour=F,e.utcHours=Y,e.utcMillisecond=a,e.utcMilliseconds=u,e.utcMinute=h,e.utcMinutes=C,e.utcMonday=Q,e.utcMondays=ee,e.utcMonth=oe,e.utcMonths=le,e.utcSaturday=$,e.utcSaturdays=ae,e.utcSecond=f,e.utcSeconds=m,e.utcSunday=P,e.utcSundays=_,e.utcThursday=X,e.utcThursdays=se,e.utcTickInterval=ye,e.utcTicks=me,e.utcTuesday=R,e.utcTuesdays=te,e.utcWednesday=V,e.utcWednesdays=ne,e.utcWeek=P,e.utcWeeks=_,e.utcYear=Te,e.utcYears=de}));
Index: de_modules/d3-time/package.json
===================================================================
--- node_modules/d3-time/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-  "name": "d3-time",
-  "version": "3.1.0",
-  "description": "A calculator for humanity’s peculiar conventions of time.",
-  "homepage": "https://d3js.org/d3-time/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-time.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "time",
-    "interval",
-    "calendar"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-time.min.js",
-  "unpkg": "dist/d3-time.min.js",
-  "exports": {
-    "umd": "./dist/d3-time.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "dependencies": {
-    "d3-array": "2 - 3"
-  },
-  "devDependencies": {
-    "eslint": "8",
-    "mocha": "10",
-    "rollup": "3",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "TZ=America/Los_Angeles mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-time/src/day.js
===================================================================
--- node_modules/d3-time/src/day.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import {timeInterval} from "./interval.js";
-import {durationDay, durationMinute} from "./duration.js";
-
-export const timeDay = timeInterval(
-  date => date.setHours(0, 0, 0, 0),
-  (date, step) => date.setDate(date.getDate() + step),
-  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
-  date => date.getDate() - 1
-);
-
-export const timeDays = timeDay.range;
-
-export const utcDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return date.getUTCDate() - 1;
-});
-
-export const utcDays = utcDay.range;
-
-export const unixDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return Math.floor(date / durationDay);
-});
-
-export const unixDays = unixDay.range;
Index: de_modules/d3-time/src/duration.js
===================================================================
--- node_modules/d3-time/src/duration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export const durationSecond = 1000;
-export const durationMinute = durationSecond * 60;
-export const durationHour = durationMinute * 60;
-export const durationDay = durationHour * 24;
-export const durationWeek = durationDay * 7;
-export const durationMonth = durationDay * 30;
-export const durationYear = durationDay * 365;
Index: de_modules/d3-time/src/hour.js
===================================================================
--- node_modules/d3-time/src/hour.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import {timeInterval} from "./interval.js";
-import {durationHour, durationMinute, durationSecond} from "./duration.js";
-
-export const timeHour = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getHours();
-});
-
-export const timeHours = timeHour.range;
-
-export const utcHour = timeInterval((date) => {
-  date.setUTCMinutes(0, 0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getUTCHours();
-});
-
-export const utcHours = utcHour.range;
Index: de_modules/d3-time/src/index.js
===================================================================
--- node_modules/d3-time/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,96 +1,0 @@
-export {
-  timeInterval
-} from "./interval.js";
-
-export {
-  millisecond as utcMillisecond,
-  milliseconds as utcMilliseconds,
-  millisecond as timeMillisecond,
-  milliseconds as timeMilliseconds
-} from "./millisecond.js";
-
-export {
-  second as utcSecond,
-  seconds as utcSeconds,
-  second as timeSecond,
-  seconds as timeSeconds
-} from "./second.js";
-
-export {
-  timeMinute,
-  timeMinutes,
-  utcMinute,
-  utcMinutes
-} from "./minute.js";
-
-export {
-  timeHour,
-  timeHours,
-  utcHour,
-  utcHours
-} from "./hour.js";
-
-export {
-  timeDay,
-  timeDays,
-  utcDay,
-  utcDays,
-  unixDay,
-  unixDays
-} from "./day.js";
-
-export {
-  timeSunday as timeWeek,
-  timeSundays as timeWeeks,
-  timeSunday,
-  timeSundays,
-  timeMonday,
-  timeMondays,
-  timeTuesday,
-  timeTuesdays,
-  timeWednesday,
-  timeWednesdays,
-  timeThursday,
-  timeThursdays,
-  timeFriday,
-  timeFridays,
-  timeSaturday,
-  timeSaturdays,
-  utcSunday as utcWeek,
-  utcSundays as utcWeeks,
-  utcSunday,
-  utcSundays,
-  utcMonday,
-  utcMondays,
-  utcTuesday,
-  utcTuesdays,
-  utcWednesday,
-  utcWednesdays,
-  utcThursday,
-  utcThursdays,
-  utcFriday,
-  utcFridays,
-  utcSaturday,
-  utcSaturdays
-} from "./week.js";
-
-export {
-  timeMonth,
-  timeMonths,
-  utcMonth,
-  utcMonths
-} from "./month.js";
-
-export {
-  timeYear,
-  timeYears,
-  utcYear,
-  utcYears
-} from "./year.js";
-
-export {
-  utcTicks,
-  utcTickInterval,
-  timeTicks,
-  timeTickInterval
-} from "./ticks.js";
Index: de_modules/d3-time/src/interval.js
===================================================================
--- node_modules/d3-time/src/interval.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-const t0 = new Date, t1 = new Date;
-
-export function timeInterval(floori, offseti, count, field) {
-
-  function interval(date) {
-    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
-  }
-
-  interval.floor = (date) => {
-    return floori(date = new Date(+date)), date;
-  };
-
-  interval.ceil = (date) => {
-    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
-  };
-
-  interval.round = (date) => {
-    const d0 = interval(date), d1 = interval.ceil(date);
-    return date - d0 < d1 - date ? d0 : d1;
-  };
-
-  interval.offset = (date, step) => {
-    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
-  };
-
-  interval.range = (start, stop, step) => {
-    const range = [];
-    start = interval.ceil(start);
-    step = step == null ? 1 : Math.floor(step);
-    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
-    let previous;
-    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
-    while (previous < start && start < stop);
-    return range;
-  };
-
-  interval.filter = (test) => {
-    return timeInterval((date) => {
-      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
-    }, (date, step) => {
-      if (date >= date) {
-        if (step < 0) while (++step <= 0) {
-          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
-        } else while (--step >= 0) {
-          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
-        }
-      }
-    });
-  };
-
-  if (count) {
-    interval.count = (start, end) => {
-      t0.setTime(+start), t1.setTime(+end);
-      floori(t0), floori(t1);
-      return Math.floor(count(t0, t1));
-    };
-
-    interval.every = (step) => {
-      step = Math.floor(step);
-      return !isFinite(step) || !(step > 0) ? null
-          : !(step > 1) ? interval
-          : interval.filter(field
-              ? (d) => field(d) % step === 0
-              : (d) => interval.count(0, d) % step === 0);
-    };
-  }
-
-  return interval;
-}
Index: de_modules/d3-time/src/millisecond.js
===================================================================
--- node_modules/d3-time/src/millisecond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import {timeInterval} from "./interval.js";
-
-export const millisecond = timeInterval(() => {
-  // noop
-}, (date, step) => {
-  date.setTime(+date + step);
-}, (start, end) => {
-  return end - start;
-});
-
-// An optimized implementation for this simple case.
-millisecond.every = (k) => {
-  k = Math.floor(k);
-  if (!isFinite(k) || !(k > 0)) return null;
-  if (!(k > 1)) return millisecond;
-  return timeInterval((date) => {
-    date.setTime(Math.floor(date / k) * k);
-  }, (date, step) => {
-    date.setTime(+date + step * k);
-  }, (start, end) => {
-    return (end - start) / k;
-  });
-};
-
-export const milliseconds = millisecond.range;
Index: de_modules/d3-time/src/minute.js
===================================================================
--- node_modules/d3-time/src/minute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import {timeInterval} from "./interval.js";
-import {durationMinute, durationSecond} from "./duration.js";
-
-export const timeMinute = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getMinutes();
-});
-
-export const timeMinutes = timeMinute.range;
-
-export const utcMinute = timeInterval((date) => {
-  date.setUTCSeconds(0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getUTCMinutes();
-});
-
-export const utcMinutes = utcMinute.range;
Index: de_modules/d3-time/src/month.js
===================================================================
--- node_modules/d3-time/src/month.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import {timeInterval} from "./interval.js";
-
-export const timeMonth = timeInterval((date) => {
-  date.setDate(1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setMonth(date.getMonth() + step);
-}, (start, end) => {
-  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
-}, (date) => {
-  return date.getMonth();
-});
-
-export const timeMonths = timeMonth.range;
-
-export const utcMonth = timeInterval((date) => {
-  date.setUTCDate(1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCMonth(date.getUTCMonth() + step);
-}, (start, end) => {
-  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
-}, (date) => {
-  return date.getUTCMonth();
-});
-
-export const utcMonths = utcMonth.range;
Index: de_modules/d3-time/src/second.js
===================================================================
--- node_modules/d3-time/src/second.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import {timeInterval} from "./interval.js";
-import {durationSecond} from "./duration.js";
-
-export const second = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds());
-}, (date, step) => {
-  date.setTime(+date + step * durationSecond);
-}, (start, end) => {
-  return (end - start) / durationSecond;
-}, (date) => {
-  return date.getUTCSeconds();
-});
-
-export const seconds = second.range;
Index: de_modules/d3-time/src/ticks.js
===================================================================
--- node_modules/d3-time/src/ticks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-import {bisector, tickStep} from "d3-array";
-import {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from "./duration.js";
-import {millisecond} from "./millisecond.js";
-import {second} from "./second.js";
-import {timeMinute, utcMinute} from "./minute.js";
-import {timeHour, utcHour} from "./hour.js";
-import {timeDay, unixDay} from "./day.js";
-import {timeSunday, utcSunday} from "./week.js";
-import {timeMonth, utcMonth} from "./month.js";
-import {timeYear, utcYear} from "./year.js";
-
-function ticker(year, month, week, day, hour, minute) {
-
-  const tickIntervals = [
-    [second,  1,      durationSecond],
-    [second,  5,  5 * durationSecond],
-    [second, 15, 15 * durationSecond],
-    [second, 30, 30 * durationSecond],
-    [minute,  1,      durationMinute],
-    [minute,  5,  5 * durationMinute],
-    [minute, 15, 15 * durationMinute],
-    [minute, 30, 30 * durationMinute],
-    [  hour,  1,      durationHour  ],
-    [  hour,  3,  3 * durationHour  ],
-    [  hour,  6,  6 * durationHour  ],
-    [  hour, 12, 12 * durationHour  ],
-    [   day,  1,      durationDay   ],
-    [   day,  2,  2 * durationDay   ],
-    [  week,  1,      durationWeek  ],
-    [ month,  1,      durationMonth ],
-    [ month,  3,  3 * durationMonth ],
-    [  year,  1,      durationYear  ]
-  ];
-
-  function ticks(start, stop, count) {
-    const reverse = stop < start;
-    if (reverse) [start, stop] = [stop, start];
-    const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
-    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
-    return reverse ? ticks.reverse() : ticks;
-  }
-
-  function tickInterval(start, stop, count) {
-    const target = Math.abs(stop - start) / count;
-    const i = bisector(([,, step]) => step).right(tickIntervals, target);
-    if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));
-    if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));
-    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
-    return t.every(step);
-  }
-
-  return [ticks, tickInterval];
-}
-
-const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
-const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
-
-export {utcTicks, utcTickInterval, timeTicks, timeTickInterval};
Index: de_modules/d3-time/src/week.js
===================================================================
--- node_modules/d3-time/src/week.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import {timeInterval} from "./interval.js";
-import {durationMinute, durationWeek} from "./duration.js";
-
-function timeWeekday(i) {
-  return timeInterval((date) => {
-    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setDate(date.getDate() + step * 7);
-  }, (start, end) => {
-    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
-  });
-}
-
-export const timeSunday = timeWeekday(0);
-export const timeMonday = timeWeekday(1);
-export const timeTuesday = timeWeekday(2);
-export const timeWednesday = timeWeekday(3);
-export const timeThursday = timeWeekday(4);
-export const timeFriday = timeWeekday(5);
-export const timeSaturday = timeWeekday(6);
-
-export const timeSundays = timeSunday.range;
-export const timeMondays = timeMonday.range;
-export const timeTuesdays = timeTuesday.range;
-export const timeWednesdays = timeWednesday.range;
-export const timeThursdays = timeThursday.range;
-export const timeFridays = timeFriday.range;
-export const timeSaturdays = timeSaturday.range;
-
-function utcWeekday(i) {
-  return timeInterval((date) => {
-    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCDate(date.getUTCDate() + step * 7);
-  }, (start, end) => {
-    return (end - start) / durationWeek;
-  });
-}
-
-export const utcSunday = utcWeekday(0);
-export const utcMonday = utcWeekday(1);
-export const utcTuesday = utcWeekday(2);
-export const utcWednesday = utcWeekday(3);
-export const utcThursday = utcWeekday(4);
-export const utcFriday = utcWeekday(5);
-export const utcSaturday = utcWeekday(6);
-
-export const utcSundays = utcSunday.range;
-export const utcMondays = utcMonday.range;
-export const utcTuesdays = utcTuesday.range;
-export const utcWednesdays = utcWednesday.range;
-export const utcThursdays = utcThursday.range;
-export const utcFridays = utcFriday.range;
-export const utcSaturdays = utcSaturday.range;
Index: de_modules/d3-time/src/year.js
===================================================================
--- node_modules/d3-time/src/year.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import {timeInterval} from "./interval.js";
-
-export const timeYear = timeInterval((date) => {
-  date.setMonth(0, 1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setFullYear(date.getFullYear() + step);
-}, (start, end) => {
-  return end.getFullYear() - start.getFullYear();
-}, (date) => {
-  return date.getFullYear();
-});
-
-// An optimized implementation for this simple case.
-timeYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
-    date.setMonth(0, 1);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setFullYear(date.getFullYear() + step * k);
-  });
-};
-
-export const timeYears = timeYear.range;
-
-export const utcYear = timeInterval((date) => {
-  date.setUTCMonth(0, 1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCFullYear(date.getUTCFullYear() + step);
-}, (start, end) => {
-  return end.getUTCFullYear() - start.getUTCFullYear();
-}, (date) => {
-  return date.getUTCFullYear();
-});
-
-// An optimized implementation for this simple case.
-utcYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
-    date.setUTCMonth(0, 1);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCFullYear(date.getUTCFullYear() + step * k);
-  });
-};
-
-export const utcYears = utcYear.range;
Index: de_modules/d3-timer/LICENSE
===================================================================
--- node_modules/d3-timer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-timer/README.md
===================================================================
--- node_modules/d3-timer/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-# d3-timer
-
-This module provides an efficient queue capable of managing thousands of concurrent animations, while guaranteeing consistent, synchronized timing with concurrent or staged animations. Internally, it uses [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) for fluid animation (if available), switching to [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout) for delays longer than 24ms.
-
-## Installing
-
-If you use npm, `npm install d3-timer`. You can also download the [latest release on GitHub](https://github.com/d3/d3-timer/releases/latest). For vanilla HTML in modern browsers, import d3-timer from Skypack:
-
-```html
-<script type="module">
-
-import {timer} from "https://cdn.skypack.dev/d3-timer@3";
-
-const t = timer(callback);
-
-</script>
-```
-
-For legacy environments, you can load d3-timer’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-timer@3"></script>
-<script>
-
-const timer = d3.timer(callback);
-
-</script>
-```
-
-## API Reference
-
-<a name="now" href="#now">#</a> d3.<b>now</b>() [<>](https://github.com/d3/d3-timer/blob/master/src/timer.js "Source")
-
-Returns the current time as defined by [performance.now](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) if available, and [Date.now](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now) if not. The current time is updated at the start of a frame; it is thus consistent during the frame, and any timers scheduled during the same frame will be synchronized. If this method is called outside of a frame, such as in response to a user event, the current time is calculated and then fixed until the next frame, again ensuring consistent timing during event handling.
-
-<a name="timer" href="#timer">#</a> d3.<b>timer</b>(<i>callback</i>[, <i>delay</i>[, <i>time</i>]]) [<>](https://github.com/d3/d3-timer/blob/master/src/timer.js "Source")
-
-Schedules a new timer, invoking the specified *callback* repeatedly until the timer is [stopped](#timer_stop). An optional numeric *delay* in milliseconds may be specified to invoke the given *callback* after a delay; if *delay* is not specified, it defaults to zero. The delay is relative to the specified *time* in milliseconds; if *time* is not specified, it defaults to [now](#now).
-
-The *callback* is passed the (apparent) *elapsed* time since the timer became active. For example:
-
-```js
-const t = d3.timer((elapsed) => {
-  console.log(elapsed);
-  if (elapsed > 200) t.stop();
-}, 150);
-```
-
-This produces roughly the following console output:
-
-```
-3
-25
-48
-65
-85
-106
-125
-146
-167
-189
-209
-```
-
-(The exact values may vary depending on your JavaScript runtime and what else your computer is doing.) Note that the first *elapsed* time is 3ms: this is the elapsed time since the timer started, not since the timer was scheduled. Here the timer started 150ms after it was scheduled due to the specified delay. The apparent *elapsed* time may be less than the true *elapsed* time if the page is backgrounded and [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) is paused; in the background, apparent time is frozen.
-
-If [timer](#timer) is called within the callback of another timer, the new timer callback (if eligible as determined by the specified *delay* and *time*) will be invoked immediately at the end of the current frame, rather than waiting until the next frame. Within a frame, timer callbacks are guaranteed to be invoked in the order they were scheduled, regardless of their start time.
-
-<a name="timer_restart" href="#timer_restart">#</a> <i>timer</i>.<b>restart</b>(<i>callback</i>[, <i>delay</i>[, <i>time</i>]]) [<>](https://github.com/d3/d3-timer/blob/master/src/timer.js "Source")
-
-Restart a timer with the specified *callback* and optional *delay* and *time*. This is equivalent to stopping this timer and creating a new timer with the specified arguments, although this timer retains the original invocation priority.
-
-<a name="timer_stop" href="#timer_stop">#</a> <i>timer</i>.<b>stop</b>() [<>](https://github.com/d3/d3-timer/blob/master/src/timer.js "Source")
-
-Stops this timer, preventing subsequent callbacks. This method has no effect if the timer has already stopped.
-
-<a name="timerFlush" href="#timerFlush">#</a> d3.<b>timerFlush</b>() [<>](https://github.com/d3/d3-timer/blob/master/src/timer.js "Source")
-
-Immediately invoke any eligible timer callbacks. Note that zero-delay timers are normally first executed after one frame (~17ms). This can cause a brief flicker because the browser renders the page twice: once at the end of the first event loop, then again immediately on the first timer callback. By flushing the timer queue at the end of the first event loop, you can run any zero-delay timers immediately and avoid the flicker.
-
-<a name="timeout" href="#timeout">#</a> d3.<b>timeout</b>(<i>callback</i>[, <i>delay</i>[, <i>time</i>]]) [<>](https://github.com/d3/d3-timer/blob/master/src/timeout.js "Source")
-
-Like [timer](#timer), except the timer automatically [stops](#timer_stop) on its first callback. A suitable replacement for [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout) that is guaranteed to not run in the background. The *callback* is passed the elapsed time.
-
-<a name="interval" href="#interval">#</a> d3.<b>interval</b>(<i>callback</i>[, <i>delay</i>[, <i>time</i>]]) [<>](https://github.com/d3/d3-timer/blob/master/src/interval.js "Source")
-
-Like [timer](#timer), except the *callback* is invoked only every *delay* milliseconds; if *delay* is not specified, this is equivalent to [timer](#timer). A suitable replacement for [setInterval](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval) that is guaranteed to not run in the background. The *callback* is passed the elapsed time.
Index: de_modules/d3-timer/dist/d3-timer.js
===================================================================
--- node_modules/d3-timer/dist/d3-timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,153 +1,0 @@
-// https://d3js.org/d3-timer/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-}(this, (function (exports) { 'use strict';
-
-var frame = 0, // is an animation frame pending?
-    timeout$1 = 0, // is a timeout pending?
-    interval$1 = 0, // are any timers active?
-    pokeDelay = 1000, // how frequently we check for clock skew
-    taskHead,
-    taskTail,
-    clockLast = 0,
-    clockNow = 0,
-    clockSkew = 0,
-    clock = typeof performance === "object" && performance.now ? performance : Date,
-    setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
-
-function now() {
-  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
-}
-
-function clearNow() {
-  clockNow = 0;
-}
-
-function Timer() {
-  this._call =
-  this._time =
-  this._next = null;
-}
-
-Timer.prototype = timer.prototype = {
-  constructor: Timer,
-  restart: function(callback, delay, time) {
-    if (typeof callback !== "function") throw new TypeError("callback is not a function");
-    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
-    if (!this._next && taskTail !== this) {
-      if (taskTail) taskTail._next = this;
-      else taskHead = this;
-      taskTail = this;
-    }
-    this._call = callback;
-    this._time = time;
-    sleep();
-  },
-  stop: function() {
-    if (this._call) {
-      this._call = null;
-      this._time = Infinity;
-      sleep();
-    }
-  }
-};
-
-function timer(callback, delay, time) {
-  var t = new Timer;
-  t.restart(callback, delay, time);
-  return t;
-}
-
-function timerFlush() {
-  now(); // Get the current time, if not already set.
-  ++frame; // Pretend we’ve set an alarm, if we haven’t already.
-  var t = taskHead, e;
-  while (t) {
-    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
-    t = t._next;
-  }
-  --frame;
-}
-
-function wake() {
-  clockNow = (clockLast = clock.now()) + clockSkew;
-  frame = timeout$1 = 0;
-  try {
-    timerFlush();
-  } finally {
-    frame = 0;
-    nap();
-    clockNow = 0;
-  }
-}
-
-function poke() {
-  var now = clock.now(), delay = now - clockLast;
-  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-
-function nap() {
-  var t0, t1 = taskHead, t2, time = Infinity;
-  while (t1) {
-    if (t1._call) {
-      if (time > t1._time) time = t1._time;
-      t0 = t1, t1 = t1._next;
-    } else {
-      t2 = t1._next, t1._next = null;
-      t1 = t0 ? t0._next = t2 : taskHead = t2;
-    }
-  }
-  taskTail = t0;
-  sleep(time);
-}
-
-function sleep(time) {
-  if (frame) return; // Soonest alarm already set, or will be.
-  if (timeout$1) timeout$1 = clearTimeout(timeout$1);
-  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
-  if (delay > 24) {
-    if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);
-    if (interval$1) interval$1 = clearInterval(interval$1);
-  } else {
-    if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay);
-    frame = 1, setFrame(wake);
-  }
-}
-
-function timeout(callback, delay, time) {
-  var t = new Timer;
-  delay = delay == null ? 0 : +delay;
-  t.restart(elapsed => {
-    t.stop();
-    callback(elapsed + delay);
-  }, delay, time);
-  return t;
-}
-
-function interval(callback, delay, time) {
-  var t = new Timer, total = delay;
-  if (delay == null) return t.restart(callback, delay, time), t;
-  t._restart = t.restart;
-  t.restart = function(callback, delay, time) {
-    delay = +delay, time = time == null ? now() : +time;
-    t._restart(function tick(elapsed) {
-      elapsed += total;
-      t._restart(tick, total += delay, time);
-      callback(elapsed);
-    }, delay, time);
-  };
-  t.restart(callback, delay, time);
-  return t;
-}
-
-exports.interval = interval;
-exports.now = now;
-exports.timeout = timeout;
-exports.timer = timer;
-exports.timerFlush = timerFlush;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-timer/dist/d3-timer.min.js
===================================================================
--- node_modules/d3-timer/dist/d3-timer.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-timer/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";var n,e,o=0,i=0,r=0,l=0,u=0,a=0,s="object"==typeof performance&&performance.now?performance:Date,c="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return u||(c(_),u=s.now()+a)}function _(){u=0}function m(){this._call=this._time=this._next=null}function p(t,n,e){var o=new m;return o.restart(t,n,e),o}function w(){f(),++o;for(var t,e=n;e;)(t=u-e._time)>=0&&e._call.call(void 0,t),e=e._next;--o}function d(){u=(l=s.now())+a,o=i=0;try{w()}finally{o=0,function(){var t,o,i=n,r=1/0;for(;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(o=i._next,i._next=null,i=t?t._next=o:n=o);e=t,y(r)}(),u=0}}function h(){var t=s.now(),n=t-l;n>1e3&&(a-=n,l=t)}function y(t){o||(i&&(i=clearTimeout(i)),t-u>24?(t<1/0&&(i=setTimeout(d,t-s.now()-a)),r&&(r=clearInterval(r))):(r||(l=s.now(),r=setInterval(h,1e3)),o=1,c(d)))}m.prototype=p.prototype={constructor:m,restart:function(t,o,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==o?0:+o),this._next||e===this||(e?e._next=this:n=this,e=this),this._call=t,this._time=i,y()},stop:function(){this._call&&(this._call=null,this._time=1/0,y())}},t.interval=function(t,n,e){var o=new m,i=n;return null==n?(o.restart(t,n,e),o):(o._restart=o.restart,o.restart=function(t,n,e){n=+n,e=null==e?f():+e,o._restart((function r(l){l+=i,o._restart(r,i+=n,e),t(l)}),n,e)},o.restart(t,n,e),o)},t.now=f,t.timeout=function(t,n,e){var o=new m;return n=null==n?0:+n,o.restart((e=>{o.stop(),t(e+n)}),n,e),o},t.timer=p,t.timerFlush=w,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-timer/package.json
===================================================================
--- node_modules/d3-timer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-{
-  "name": "d3-timer",
-  "version": "3.0.1",
-  "description": "An efficient queue capable of managing thousands of concurrent animations.",
-  "homepage": "https://d3js.org/d3-timer/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-timer.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "timer",
-    "transition",
-    "animation",
-    "requestAnimationFrame",
-    "setTimeout",
-    "setInterval"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-timer.min.js",
-  "unpkg": "dist/d3-timer.min.js",
-  "exports": {
-    "umd": "./dist/d3-timer.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "7",
-    "mocha": "8",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-timer/src/index.js
===================================================================
--- node_modules/d3-timer/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export {
-  now,
-  timer,
-  timerFlush
-} from "./timer.js";
-
-export {
-  default as timeout
-} from "./timeout.js";
-
-export {
-  default as interval
-} from "./interval.js";
Index: de_modules/d3-timer/src/interval.js
===================================================================
--- node_modules/d3-timer/src/interval.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import {Timer, now} from "./timer.js";
-
-export default function(callback, delay, time) {
-  var t = new Timer, total = delay;
-  if (delay == null) return t.restart(callback, delay, time), t;
-  t._restart = t.restart;
-  t.restart = function(callback, delay, time) {
-    delay = +delay, time = time == null ? now() : +time;
-    t._restart(function tick(elapsed) {
-      elapsed += total;
-      t._restart(tick, total += delay, time);
-      callback(elapsed);
-    }, delay, time);
-  }
-  t.restart(callback, delay, time);
-  return t;
-}
Index: de_modules/d3-timer/src/timeout.js
===================================================================
--- node_modules/d3-timer/src/timeout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import {Timer} from "./timer.js";
-
-export default function(callback, delay, time) {
-  var t = new Timer;
-  delay = delay == null ? 0 : +delay;
-  t.restart(elapsed => {
-    t.stop();
-    callback(elapsed + delay);
-  }, delay, time);
-  return t;
-}
Index: de_modules/d3-timer/src/timer.js
===================================================================
--- node_modules/d3-timer/src/timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-var frame = 0, // is an animation frame pending?
-    timeout = 0, // is a timeout pending?
-    interval = 0, // are any timers active?
-    pokeDelay = 1000, // how frequently we check for clock skew
-    taskHead,
-    taskTail,
-    clockLast = 0,
-    clockNow = 0,
-    clockSkew = 0,
-    clock = typeof performance === "object" && performance.now ? performance : Date,
-    setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
-
-export function now() {
-  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
-}
-
-function clearNow() {
-  clockNow = 0;
-}
-
-export function Timer() {
-  this._call =
-  this._time =
-  this._next = null;
-}
-
-Timer.prototype = timer.prototype = {
-  constructor: Timer,
-  restart: function(callback, delay, time) {
-    if (typeof callback !== "function") throw new TypeError("callback is not a function");
-    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
-    if (!this._next && taskTail !== this) {
-      if (taskTail) taskTail._next = this;
-      else taskHead = this;
-      taskTail = this;
-    }
-    this._call = callback;
-    this._time = time;
-    sleep();
-  },
-  stop: function() {
-    if (this._call) {
-      this._call = null;
-      this._time = Infinity;
-      sleep();
-    }
-  }
-};
-
-export function timer(callback, delay, time) {
-  var t = new Timer;
-  t.restart(callback, delay, time);
-  return t;
-}
-
-export function timerFlush() {
-  now(); // Get the current time, if not already set.
-  ++frame; // Pretend we’ve set an alarm, if we haven’t already.
-  var t = taskHead, e;
-  while (t) {
-    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
-    t = t._next;
-  }
-  --frame;
-}
-
-function wake() {
-  clockNow = (clockLast = clock.now()) + clockSkew;
-  frame = timeout = 0;
-  try {
-    timerFlush();
-  } finally {
-    frame = 0;
-    nap();
-    clockNow = 0;
-  }
-}
-
-function poke() {
-  var now = clock.now(), delay = now - clockLast;
-  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-
-function nap() {
-  var t0, t1 = taskHead, t2, time = Infinity;
-  while (t1) {
-    if (t1._call) {
-      if (time > t1._time) time = t1._time;
-      t0 = t1, t1 = t1._next;
-    } else {
-      t2 = t1._next, t1._next = null;
-      t1 = t0 ? t0._next = t2 : taskHead = t2;
-    }
-  }
-  taskTail = t0;
-  sleep(time);
-}
-
-function sleep(time) {
-  if (frame) return; // Soonest alarm already set, or will be.
-  if (timeout) timeout = clearTimeout(timeout);
-  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
-  if (delay > 24) {
-    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
-    if (interval) interval = clearInterval(interval);
-  } else {
-    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
-    frame = 1, setFrame(wake);
-  }
-}
Index: de_modules/d3-transition/LICENSE
===================================================================
--- node_modules/d3-transition/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-transition/README.md
===================================================================
--- node_modules/d3-transition/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,490 +1,0 @@
-# d3-transition
-
-A transition is a [selection](https://github.com/d3/d3-selection)-like interface for animating changes to the DOM. Instead of applying changes instantaneously, transitions smoothly interpolate the DOM from its current state to the desired target state over a given duration.
-
-To apply a transition, select elements, call [*selection*.transition](#selection_transition), and then make the desired changes. For example:
-
-```js
-d3.select("body")
-  .transition()
-    .style("background-color", "red");
-```
-
-Transitions support most selection methods (such as [*transition*.attr](#transition_attr) and [*transition*.style](#transition_style) in place of [*selection*.attr](https://github.com/d3/d3-selection#selection_attr) and [*selection*.style](https://github.com/d3/d3-selection#selection_style)), but not all methods are supported; for example, you must [append](https://github.com/d3/d3-selection#selection_append) elements or [bind data](https://github.com/d3/d3-selection#joining-data) before a transition starts. A [*transition*.remove](#transition_remove) operator is provided for convenient removal of elements when the transition ends.
-
-To compute intermediate state, transitions leverage a variety of [built-in interpolators](https://github.com/d3/d3-interpolate). [Colors](https://github.com/d3/d3-interpolate#interpolateRgb), [numbers](https://github.com/d3/d3-interpolate#interpolateNumber), and [transforms](https://github.com/d3/d3-interpolate#interpolateTransform) are automatically detected. [Strings](https://github.com/d3/d3-interpolate#interpolateString) with embedded numbers are also detected, as is common with many styles (such as padding or font sizes) and paths. To specify a custom interpolator, use [*transition*.attrTween](#transition_attrTween), [*transition*.styleTween](#transition_styleTween) or [*transition*.tween](#transition_tween).
-
-## Installing
-
-If you use npm, `npm install d3-transition`. You can also download the [latest release on GitHub](https://github.com/d3/d3-transition/releases/latest). For vanilla HTML in modern browsers, import d3-transition from Skypack:
-
-```html
-<script type="module">
-
-import {transition} from "https://cdn.skypack.dev/d3-transition@3";
-
-const t = transition();
-
-</script>
-```
-
-For legacy environments, you can load d3-transition’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-ease@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-interpolate@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-selection@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-timer@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-transition@3"></script>
-<script>
-
-const t = d3.transition();
-
-</script>
-```
-
-[Try d3-transition in your browser.](https://observablehq.com/collection/@d3/d3-transition)
-
-## API Reference
-
-* [Selecting Elements](#selecting-elements)
-* [Modifying Elements](#modifying-elements)
-* [Timing](#timing)
-* [Control Flow](#control-flow)
-* [The Life of a Transition](#the-life-of-a-transition)
-
-### Selecting Elements
-
-Transitions are derived from [selections](https://github.com/d3/d3-selection) via [*selection*.transition](#selection_transition). You can also create a transition on the document root element using [d3.transition](#transition).
-
-<a name="selection_transition" href="#selection_transition">#</a> <i>selection</i>.<b>transition</b>([<i>name</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/selection/transition.js)
-
-Returns a new transition on the given *selection* with the specified *name*. If a *name* is not specified, null is used. The new transition is only exclusive with other transitions of the same name.
-
-If the *name* is a [transition](#transition) instance, the returned transition has the same id and name as the specified transition. If a transition with the same id already exists on a selected element, the existing transition is returned for that element. Otherwise, the timing of the returned transition is inherited from the existing transition of the same id on the nearest ancestor of each selected element. Thus, this method can be used to synchronize a transition across multiple selections, or to re-select a transition for specific elements and modify its configuration. For example:
-
-```js
-var t = d3.transition()
-    .duration(750)
-    .ease(d3.easeLinear);
-
-d3.selectAll(".apple").transition(t)
-    .style("fill", "red");
-
-d3.selectAll(".orange").transition(t)
-    .style("fill", "orange");
-```
-
-If the specified *transition* is not found on a selected node or its ancestors (such as if the transition [already ended](#the-life-of-a-transition)), the default timing parameters are used; however, in a future release, this will likely be changed to throw an error. See [#59](https://github.com/d3/d3-transition/issues/59).
-
-<a name="selection_interrupt" href="#selection_interrupt">#</a> <i>selection</i>.<b>interrupt</b>([<i>name</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/selection/interrupt.js)
-
-Interrupts the active transition of the specified *name* on the selected elements, and cancels any pending transitions with the specified *name*, if any. If a name is not specified, null is used.
-
-Interrupting a transition on an element has no effect on any transitions on any descendant elements. For example, an [axis transition](https://github.com/d3/d3-axis) consists of multiple independent, synchronized transitions on the descendants of the axis [G element](https://www.w3.org/TR/SVG/struct.html#Groups) (the tick lines, the tick labels, the domain path, *etc.*). To interrupt the axis transition, you must therefore interrupt the descendants:
-
-```js
-selection.selectAll("*").interrupt();
-```
-
-The [universal selector](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors), `*`, selects all descendant elements. If you also want to interrupt the G element itself:
-
-```js
-selection.interrupt().selectAll("*").interrupt();
-```
-
-<a name="interrupt" href="#interrupt">#</a> d3.<b>interrupt</b>(<i>node</i>[, <i>name</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/interrupt.js)
-
-Interrupts the active transition of the specified *name* on the specified *node*, and cancels any pending transitions with the specified *name*, if any. If a name is not specified, null is used. See also [*selection*.interrupt](#selection_interrupt).
-
-<a name="transition" href="#transition">#</a> d3.<b>transition</b>([<i>name</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/index.js#L29)
-
-Returns a new transition on the root element, `document.documentElement`, with the specified *name*. If a *name* is not specified, null is used. The new transition is only exclusive with other transitions of the same name. The *name* may also be a [transition](#transition) instance; see [*selection*.transition](#selection_transition). This method is equivalent to:
-
-```js
-d3.selection()
-  .transition(name)
-```
-
-This function can also be used to test for transitions (`instanceof d3.transition`) or to extend the transition prototype.
-
-<a name="transition_select" href="#transition_select">#</a> <i>transition</i>.<b>select</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/select.js)
-
-For each selected element, selects the first descendant element that matches the specified *selector* string, if any, and returns a transition on the resulting selection. The *selector* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The new transition has the same id, name and timing as this transition; however, if a transition with the same id already exists on a selected element, the existing transition is returned for that element.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), creating a subselection via [*selection*.select](https://github.com/d3/d3-selection#selection_select), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .select(selector)
-  .transition(transition)
-```
-
-<a name="transition_selectAll" href="#transition_selectAll">#</a> <i>transition</i>.<b>selectAll</b>(<i>selector</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/selectAll.js)
-
-For each selected element, selects all descendant elements that match the specified *selector* string, if any, and returns a transition on the resulting selection. The *selector* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The new transition has the same id, name and timing as this transition; however, if a transition with the same id already exists on a selected element, the existing transition is returned for that element.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), creating a subselection via [*selection*.selectAll](https://github.com/d3/d3-selection#selection_selectAll), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .selectAll(selector)
-  .transition(transition)
-```
-
-<a name="transition_selectChild" href="#transition_selectChild">#</a> <i>transition</i>.<b>selectChild</b>([<i>selector</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/select.js)
-
-For each selected element, selects the first child element that matches the specified *selector* string, if any, and returns a transition on the resulting selection. The *selector* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The new transition has the same id, name and timing as this transition; however, if a transition with the same id already exists on a selected element, the existing transition is returned for that element.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), creating a subselection via [*selection*.selectChild](https://github.com/d3/d3-selection#selection_selectChild), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .selectChild(selector)
-  .transition(transition)
-```
-
-<a name="transition_selectChildren" href="#transition_selectChildren">#</a> <i>transition</i>.<b>selectChildren</b>([<i>selector</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/selectAll.js)
-
-For each selected element, selects all children that match the specified *selector* string, if any, and returns a transition on the resulting selection. The *selector* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The new transition has the same id, name and timing as this transition; however, if a transition with the same id already exists on a selected element, the existing transition is returned for that element.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), creating a subselection via [*selection*.selectChildren](https://github.com/d3/d3-selection#selection_selectChildren), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .selectChildren(selector)
-  .transition(transition)
-```
-
-<a name="transition_filter" href="#transition_filter">#</a> <i>transition</i>.<b>filter</b>(<i>filter</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/filter.js)
-
-For each selected element, selects only the elements that match the specified *filter*, and returns a transition on the resulting selection. The *filter* may be specified either as a selector string or a function. If a function, it is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The new transition has the same id, name and timing as this transition; however, if a transition with the same id already exists on a selected element, the existing transition is returned for that element.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), creating a subselection via [*selection*.filter](https://github.com/d3/d3-selection#selection_filter), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .filter(filter)
-  .transition(transition)
-```
-
-<a name="transition_merge" href="#transition_merge">#</a> <i>transition</i>.<b>merge</b>(<i>other</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/merge.js)
-
-Returns a new transition merging this transition with the specified *other* transition, which must have the same id as this transition. The returned transition has the same number of groups, the same parents, the same name and the same id as this transition. Any missing (null) elements in this transition are filled with the corresponding element, if present (not null), from the *other* transition.
-
-This method is equivalent to deriving the selection for this transition via [*transition*.selection](#transition_selection), merging with the selection likewise derived from the *other* transition via [*selection*.merge](https://github.com/d3/d3-selection#selection_merge), and then creating a new transition via [*selection*.transition](#selection_transition):
-
-```js
-transition
-  .selection()
-  .merge(other.selection())
-  .transition(transition)
-```
-
-<a name="transition_transition" href="#transition_transition">#</a> <i>transition</i>.<b>transition</b>() · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/transition.js)
-
-Returns a new transition on the same selected elements as this transition, scheduled to start when this transition ends. The new transition inherits a reference time equal to this transition’s time plus its [delay](#transition_delay) and [duration](#transition_duration). The new transition also inherits this transition’s name, duration, and [easing](#transition_ease). This method can be used to schedule a sequence of chained transitions. For example:
-
-```js
-d3.selectAll(".apple")
-  .transition() // First fade to green.
-    .style("fill", "green")
-  .transition() // Then red.
-    .style("fill", "red")
-  .transition() // Wait one second. Then brown, and remove.
-    .delay(1000)
-    .style("fill", "brown")
-    .remove();
-```
-
-The delay for each transition is relative to its previous transition. Thus, in the above example, apples will stay red for one second before the last transition to brown starts.
-
-<a name="transition_selection" href="#transition_selection">#</a> <i>transition</i>.<b>selection</b>() · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/selection.js)
-
-Returns the [selection](https://github.com/d3/d3-selection#selection) corresponding to this transition.
-
-<a name="active" href="#active">#</a> d3.<b>active</b>(<i>node</i>[, <i>name</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/active.js)
-
-Returns the active transition on the specified *node* with the specified *name*, if any. If no *name* is specified, null is used. Returns null if there is no such active transition on the specified node. This method is useful for creating chained transitions. For example, to initiate disco mode:
-
-```js
-d3.selectAll("circle").transition()
-    .delay(function(d, i) { return i * 50; })
-    .on("start", function repeat() {
-        d3.active(this)
-            .style("fill", "red")
-          .transition()
-            .style("fill", "green")
-          .transition()
-            .style("fill", "blue")
-          .transition()
-            .on("start", repeat);
-      });
-```
-
-See [chained transitions](https://bl.ocks.org/mbostock/70d5541b547cc222aa02) for an example.
-
-### Modifying Elements
-
-After selecting elements and creating a transition with [*selection*.transition](#selection_transition), use the transition’s transformation methods to affect document content.
-
-<a name="transition_attr" href="#transition_attr">#</a> <i>transition</i>.<b>attr</b>(<i>name</i>, <i>value</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/attr.js)
-
-For each selected element, assigns the [attribute tween](#transition_attrTween) for the attribute with the specified *name* to the specified target *value*. The starting value of the tween is the attribute’s value when the transition starts. The target *value* may be specified either as a constant or a function. If a function, it is immediately evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element.
-
-If the target value is null, the attribute is removed when the transition starts. Otherwise, an interpolator is chosen based on the type of the target value, using the following algorithm:
-
-1. If *value* is a number, use [interpolateNumber](https://github.com/d3/d3-interpolate#interpolateNumber).
-2. If *value* is a [color](https://github.com/d3/d3-color#color) or a string coercible to a color, use [interpolateRgb](https://github.com/d3/d3-interpolate#interpolateRgb).
-3. Use [interpolateString](https://github.com/d3/d3-interpolate#interpolateString).
-
-To apply a different interpolator, use [*transition*.attrTween](#transition_attrTween).
-
-<a name="transition_attrTween" href="#transition_attrTween">#</a> <i>transition</i>.<b>attrTween</b>(<i>name</i>[, <i>factory</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/attrTween.js)
-
-If *factory* is specified and not null, assigns the attribute [tween](#transition_tween) for the attribute with the specified *name* to the specified interpolator *factory*. An interpolator factory is a function that returns an [interpolator](https://github.com/d3/d3-interpolate); when the transition starts, the *factory* is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The returned interpolator will then be invoked for each frame of the transition, in order, being passed the [eased](#transition_ease) time *t*, typically in the range [0, 1]. Lastly, the return value of the interpolator will be used to set the attribute value. The interpolator must return a string. (To remove an attribute at the start of a transition, use [*transition*.attr](#transition_attr); to remove an attribute at the end of a transition, use [*transition*.on](#transition_on) to listen for the *end* event.)
-
-If the specified *factory* is null, removes the previously-assigned attribute tween of the specified *name*, if any. If *factory* is not specified, returns the current interpolator factory for attribute with the specified *name*, or undefined if no such tween exists.
-
-For example, to interpolate the fill attribute from red to blue:
-
-```js
-transition.attrTween("fill", function() {
-  return d3.interpolateRgb("red", "blue");
-});
-```
-
-Or to interpolate from the current fill to blue, like [*transition*.attr](#transition_attr):
-
-```js
-transition.attrTween("fill", function() {
-  return d3.interpolateRgb(this.getAttribute("fill"), "blue");
-});
-```
-
-Or to apply a custom rainbow interpolator:
-
-```js
-transition.attrTween("fill", function() {
-  return function(t) {
-    return "hsl(" + t * 360 + ",100%,50%)";
-  };
-});
-```
-
-This method is useful to specify a custom interpolator, such as one that understands [SVG paths](https://bl.ocks.org/mbostock/3916621). A useful technique is *data interpolation*, where [d3.interpolateObject](https://github.com/d3/d3-interpolate#interpolateObject) is used to interpolate two data values, and the resulting value is then used (say, with a [shape](https://github.com/d3/d3-shape)) to compute the new attribute value.
-
-<a name="transition_style" href="#transition_style">#</a> <i>transition</i>.<b>style</b>(<i>name</i>, <i>value</i>[, <i>priority</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/style.js)
-
-For each selected element, assigns the [style tween](#transition_styleTween) for the style with the specified *name* to the specified target *value* with the specified *priority*. The starting value of the tween is the style’s inline value if present, and otherwise its computed value, when the transition starts. The target *value* may be specified either as a constant or a function. If a function, it is immediately evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element.
-
-If the target value is null, the style is removed when the transition starts. Otherwise, an interpolator is chosen based on the type of the target value, using the following algorithm:
-
-1. If *value* is a number, use [interpolateNumber](https://github.com/d3/d3-interpolate#interpolateNumber).
-2. If *value* is a [color](https://github.com/d3/d3-color#color) or a string coercible to a color, use [interpolateRgb](https://github.com/d3/d3-interpolate#interpolateRgb).
-3. Use [interpolateString](https://github.com/d3/d3-interpolate#interpolateString).
-
-To apply a different interpolator, use [*transition*.styleTween](#transition_styleTween).
-
-<a name="transition_styleTween" href="#transition_styleTween">#</a> <i>transition</i>.<b>styleTween</b>(<i>name</i>[, <i>factory</i>[, <i>priority</i>]]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/styleTween.js)
-
-If *factory* is specified and not null, assigns the style [tween](#transition_tween) for the style with the specified *name* to the specified interpolator *factory*. An interpolator factory is a function that returns an [interpolator](https://github.com/d3/d3-interpolate); when the transition starts, the *factory* is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The returned interpolator will then be invoked for each frame of the transition, in order, being passed the [eased](#transition_ease) time *t*, typically in the range [0, 1]. Lastly, the return value of the interpolator will be used to set the style value with the specified *priority*. The interpolator must return a string. (To remove an style at the start of a transition, use [*transition*.style](#transition_style); to remove an style at the end of a transition, use [*transition*.on](#transition_on) to listen for the *end* event.)
-
-If the specified *factory* is null, removes the previously-assigned style tween of the specified *name*, if any. If *factory* is not specified, returns the current interpolator factory for style with the specified *name*, or undefined if no such tween exists.
-
-For example, to interpolate the fill style from red to blue:
-
-```js
-transition.styleTween("fill", function() {
-  return d3.interpolateRgb("red", "blue");
-});
-```
-
-Or to interpolate from the current fill to blue, like [*transition*.style](#transition_style):
-
-```js
-transition.styleTween("fill", function() {
-  return d3.interpolateRgb(this.style.fill, "blue");
-});
-```
-
-Or to apply a custom rainbow interpolator:
-
-```js
-transition.styleTween("fill", function() {
-  return function(t) {
-    return "hsl(" + t * 360 + ",100%,50%)";
-  };
-});
-```
-
-This method is useful to specify a custom interpolator, such as with *data interpolation*, where [d3.interpolateObject](https://github.com/d3/d3-interpolate#interpolateObject) is used to interpolate two data values, and the resulting value is then used to compute the new style value.
-
-<a name="transition_text" href="#transition_text">#</a> <i>transition</i>.<b>text</b>(<i>value</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/text.js)
-
-For each selected element, sets the [text content](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent) to the specified target *value* when the transition starts. The *value* may be specified either as a constant or a function. If a function, it is immediately evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The function’s return value is then used to set each element’s text content. A null value will clear the content.
-
-To interpolate text rather than to set it on start, use [*transition*.textTween](#transition_textTween) or append a replacement element and cross-fade opacity. Text is not interpolated by default because it is usually undesirable.
-
-<a name="transition_textTween" href="#transition_textTween">#</a> <i>transition</i>.<b>textTween</b>(<i>factory</i>) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/textTween.js), [Examples](https://observablehq.com/@d3/transition-texttween)
-
-If *factory* is specified and not null, assigns the text [tween](#transition_tween) to the specified interpolator *factory*. An interpolator factory is a function that returns an [interpolator](https://github.com/d3/d3-interpolate); when the transition starts, the *factory* is evaluated for each selected element, in order, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element. The returned interpolator will then be invoked for each frame of the transition, in order, being passed the [eased](#transition_ease) time *t*, typically in the range [0, 1]. Lastly, the return value of the interpolator will be used to set the text. The interpolator must return a string.
-
-For example, to interpolate the text with integers from 0 to 100:
-
-```js
-transition.textTween(function() {
-  return d3.interpolateRound(0, 100);
-});
-```
-
-If the specified *factory* is null, removes the previously-assigned text tween, if any. If *factory* is not specified, returns the current interpolator factory for text, or undefined if no such tween exists.
-
-<a name="transition_remove" href="#transition_remove">#</a> <i>transition</i>.<b>remove</b>() · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/remove.js)
-
-For each selected element, [removes](https://github.com/d3/d3-selection#selection_remove) the element when the transition ends, as long as the element has no other active or pending transitions. If the element has other active or pending transitions, does nothing.
-
-<a name="transition_tween" href="#transition_tween">#</a> <i>transition</i>.<b>tween</b>(<i>name</i>[, <i>value</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/tween.js)
-
-For each selected element, assigns the tween with the specified *name* with the specified *value* function. The *value* must be specified as a function that returns a function. When the transition starts, the *value* function is evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The returned function is then invoked for each frame of the transition, in order, being passed the [eased](#transition_ease) time *t*, typically in the range [0, 1]. If the specified *value* is null, removes the previously-assigned tween of the specified *name*, if any.
-
-For example, to interpolate the fill attribute to blue, like [*transition*.attr](#transition_attr):
-
-```js
-transition.tween("attr.fill", function() {
-  var i = d3.interpolateRgb(this.getAttribute("fill"), "blue");
-  return function(t) {
-    this.setAttribute("fill", i(t));
-  };
-});
-```
-
-This method is useful to specify a custom interpolator, or to perform side-effects, say to animate the [scroll offset](https://bl.ocks.org/mbostock/1649463).
-
-### Timing
-
-The [easing](#transition_ease), [delay](#transition_delay) and [duration](#transition_duration) of a transition is configurable. For example, a per-element delay can be used to [stagger the reordering](https://observablehq.com/@d3/sortable-bar-chart) of elements, improving perception. See [Animated Transitions in Statistical Data Graphics](http://vis.berkeley.edu/papers/animated_transitions/) for recommendations.
-
-<a name="transition_delay" href="#transition_delay">#</a> <i>transition</i>.<b>delay</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/delay.js)
-
-For each selected element, sets the transition delay to the specified *value* in milliseconds. The *value* may be specified either as a constant or a function. If a function, it is immediately evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The function’s return value is then used to set each element’s transition delay. If a delay is not specified, it defaults to zero.
-
-If a *value* is not specified, returns the current value of the delay for the first (non-null) element in the transition. This is generally useful only if you know that the transition contains exactly one element.
-
-Setting the delay to a multiple of the index `i` is a convenient way to stagger transitions across a set of elements. For example:
-
-```js
-transition.delay(function(d, i) { return i * 10; });
-```
-
-Of course, you can also compute the delay as a function of the data, or [sort the selection](https://github.com/d3/d3-selection#selection_sort) before computed an index-based delay.
-
-<a name="transition_duration" href="#transition_duration">#</a> <i>transition</i>.<b>duration</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/duration.js)
-
-For each selected element, sets the transition duration to the specified *value* in milliseconds. The *value* may be specified either as a constant or a function. If a function, it is immediately evaluated for each selected element, in order, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. The function’s return value is then used to set each element’s transition duration. If a duration is not specified, it defaults to 250ms.
-
-If a *value* is not specified, returns the current value of the duration for the first (non-null) element in the transition. This is generally useful only if you know that the transition contains exactly one element.
-
-<a name="transition_ease" href="#transition_ease">#</a> <i>transition</i>.<b>ease</b>([<i>value</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/ease.js)
-
-Specifies the transition [easing function](https://github.com/d3/d3-ease) for all selected elements. The *value* must be specified as a function. The easing function is invoked for each frame of the animation, being passed the normalized time *t* in the range [0, 1]; it must then return the eased time *tʹ* which is typically also in the range [0, 1]. A good easing function should return 0 if *t* = 0 and 1 if *t* = 1. If an easing function is not specified, it defaults to [d3.easeCubic](https://github.com/d3/d3-ease#easeCubic).
-
-If a *value* is not specified, returns the current easing function for the first (non-null) element in the transition. This is generally useful only if you know that the transition contains exactly one element.
-
-<a name="transition_easeVarying" href="#transition_easeVarying">#</a> <i>transition</i>.<b>easeVarying</b>(<i>factory</i>) [<>](https://github.com/d3/d3-transition/blob/master/src/transition/easeVarying.js "Source")
-
-Specifies a factory for the transition [easing function](https://github.com/d3/d3-ease). The *factory* must be a function. It is invoked for each node of the selection, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. It must return an easing function.
-
-### Control Flow
-
-For advanced usage, transitions provide methods for custom control flow.
-
-<a name="transition_end" href="#transition_end">#</a> <i>transition</i>.<b>end</b>() · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/end.js)
-
-Returns a promise that resolves when every selected element finishes transitioning. If any element’s transition is cancelled or interrupted, the promise rejects.
-
-<a name="transition_on" href="#transition_on">#</a> <i>transition</i>.<b>on</b>(<i>typenames</i>[, <i>listener</i>]) · [Source](https://github.com/d3/d3-transition/blob/master/src/transition/on.js)
-
-Adds or removes a *listener* to each selected element for the specified event *typenames*. The *typenames* is one of the following string event types:
-
-* `start` - when the transition starts.
-* `end` - when the transition ends.
-* `interrupt` - when the transition is interrupted.
-* `cancel` - when the transition is cancelled.
-
-See [The Life of a Transition](#the-life-of-a-transition) for more. Note that these are *not* native DOM events as implemented by [*selection*.on](https://github.com/d3/d3-selection#selection_on) and [*selection*.dispatch](https://github.com/d3/d3-selection#selection_dispatch), but transition events!
-
-The type may be optionally followed by a period (`.`) and a name; the optional name allows multiple callbacks to be registered to receive events of the same type, such as `start.foo` and `start.bar`. To specify multiple typenames, separate typenames with spaces, such as `interrupt end` or `start.foo start.bar`.
-
-When a specified transition event is dispatched on a selected node, the specified *listener* will be invoked for the transitioning element, being passed the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. Listeners always see the latest datum for their element, but the index is a property of the selection and is fixed when the listener is assigned; to update the index, re-assign the listener.
-
-If an event listener was previously registered for the same *typename* on a selected element, the old listener is removed before the new listener is added. To remove a listener, pass null as the *listener*. To remove all listeners for a given name, pass null as the *listener* and `.foo` as the *typename*, where `foo` is the name; to remove all listeners with no name, specify `.` as the *typename*.
-
-If a *listener* is not specified, returns the currently-assigned listener for the specified event *typename* on the first (non-null) selected element, if any. If multiple typenames are specified, the first matching listener is returned.
-
-<a name="transition_each" href="#transition_each">#</a> <i>transition</i>.<b>each</b>(<i>function</i>) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/each.js)
-
-Invokes the specified *function* for each selected element, passing in the current datum (*d*), the current index (*i*), and the current group (*nodes*), with *this* as the current DOM element. This method can be used to invoke arbitrary code for each selected element, and is useful for creating a context to access parent and child data simultaneously. Equivalent to [*selection*.each](https://github.com/d3/d3-selection#selection_each).
-
-<a name="transition_call" href="#transition_call">#</a> <i>transition</i>.<b>call</b>(<i>function</i>[, <i>arguments…</i>]) · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/call.js)
-
-Invokes the specified *function* exactly once, passing in this transition along with any optional *arguments*. Returns this transition. This is equivalent to invoking the function by hand but facilitates method chaining. For example, to set several attributes in a reusable function:
-
-```js
-function color(transition, fill, stroke) {
-  transition
-      .style("fill", fill)
-      .style("stroke", stroke);
-}
-```
-
-Now say:
-
-```js
-d3.selectAll("div").transition().call(color, "red", "blue");
-```
-
-This is equivalent to:
-
-```js
-color(d3.selectAll("div").transition(), "red", "blue");
-```
-
-Equivalent to [*selection*.call](https://github.com/d3/d3-selection#selection_call).
-
-<a name="transition_empty" href="#transition_empty">#</a> <i>transition</i>.<b>empty</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/empty.js)
-
-Returns true if this transition contains no (non-null) elements. Equivalent to [*selection*.empty](https://github.com/d3/d3-selection#selection_empty).
-
-<a name="transition_nodes" href="#transition_nodes">#</a> <i>transition</i>.<b>nodes</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/nodes.js)
-
-Returns an array of all (non-null) elements in this transition. Equivalent to [*selection*.nodes](https://github.com/d3/d3-selection#selection_nodes).
-
-<a name="transition_node" href="#transition_node">#</a> <i>transition</i>.<b>node</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/node.js)
-
-Returns the first (non-null) element in this transition. If the transition is empty, returns null. Equivalent to [*selection*.node](https://github.com/d3/d3-selection#selection_node).
-
-<a name="transition_size" href="#transition_size">#</a> <i>transition</i>.<b>size</b>() · [Source](https://github.com/d3/d3-selection/blob/master/src/selection/size.js)
-
-Returns the total number of elements in this transition. Equivalent to [*selection*.size](https://github.com/d3/d3-selection#selection_size).
-
-### The Life of a Transition
-
-Immediately after creating a transition, such as by [*selection*.transition](#selection_transition) or [*transition*.transition](#transition_transition), you may configure the transition using methods such as [*transition*.delay](#transition_delay), [*transition*.duration](#transition_duration), [*transition*.attr](#transition_attr) and [*transition*.style](#transition_style). Methods that specify target values (such as *transition*.attr) are evaluated synchronously; however, methods that require the starting value for interpolation, such as [*transition*.attrTween](#transition_attrTween) and [*transition*.styleTween](#transition_styleTween), must be deferred until the transition starts.
-
-Shortly after creation, either at the end of the current frame or during the next frame, the transition is scheduled. At this point, the delay and `start` event listeners may no longer be changed; attempting to do so throws an error with the message “too late: already scheduled” (or if the transition has ended, “transition not found”).
-
-When the transition subsequently starts, it interrupts the active transition of the same name on the same element, if any, dispatching an `interrupt` event to registered listeners. (Note that interrupts happen on start, not creation, and thus even a zero-delay transition will not immediately interrupt the active transition: the old transition is given a final frame. Use [*selection*.interrupt](#selection_interrupt) to interrupt immediately.) The starting transition also cancels any pending transitions of the same name on the same element that were created before the starting transition. The transition then dispatches a `start` event to registered listeners. This is the last moment at which the transition may be modified: the transition’s timing, tweens, and listeners may not be changed when it is running; attempting to do so throws an error with the message “too late: already running” (or if the transition has ended, “transition not found”). The transition initializes its tweens immediately after starting.
-
-During the frame the transition starts, but *after* all transitions starting this frame have been started, the transition invokes its tweens for the first time. Batching tween initialization, which typically involves reading from the DOM, improves performance by avoiding interleaved DOM reads and writes.
-
-For each frame that a transition is active, it invokes its tweens with an [eased](#transition_ease) *t*-value ranging from 0 to 1. Within each frame, the transition invokes its tweens in the order they were registered.
-
-When a transition ends, it invokes its tweens a final time with a (non-eased) *t*-value of 1. It then dispatches an `end` event to registered listeners. This is the last moment at which the transition may be inspected: after ending, the transition is deleted from the element, and its configuration is destroyed. (A transition’s configuration is also destroyed on interrupt or cancel.) Attempting to inspect a transition after it is destroyed throws an error with the message “transition not found”.
Index: de_modules/d3-transition/dist/d3-transition.js
===================================================================
--- node_modules/d3-transition/dist/d3-transition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,900 +1,0 @@
-// https://d3js.org/d3-transition/ v3.0.1 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-timer'), require('d3-interpolate'), require('d3-color'), require('d3-ease')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-timer', 'd3-interpolate', 'd3-color', 'd3-ease'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3, global.d3, global.d3, global.d3));
-}(this, (function (exports, d3Selection, d3Dispatch, d3Timer, d3Interpolate, d3Color, d3Ease) { 'use strict';
-
-var emptyOn = d3Dispatch.dispatch("start", "end", "cancel", "interrupt");
-var emptyTween = [];
-
-var CREATED = 0;
-var SCHEDULED = 1;
-var STARTING = 2;
-var STARTED = 3;
-var RUNNING = 4;
-var ENDING = 5;
-var ENDED = 6;
-
-function schedule(node, name, id, index, group, timing) {
-  var schedules = node.__transition;
-  if (!schedules) node.__transition = {};
-  else if (id in schedules) return;
-  create(node, id, {
-    name: name,
-    index: index, // For context during callback.
-    group: group, // For context during callback.
-    on: emptyOn,
-    tween: emptyTween,
-    time: timing.time,
-    delay: timing.delay,
-    duration: timing.duration,
-    ease: timing.ease,
-    timer: null,
-    state: CREATED
-  });
-}
-
-function init(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > CREATED) throw new Error("too late; already scheduled");
-  return schedule;
-}
-
-function set(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > STARTED) throw new Error("too late; already running");
-  return schedule;
-}
-
-function get(node, id) {
-  var schedule = node.__transition;
-  if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
-  return schedule;
-}
-
-function create(node, id, self) {
-  var schedules = node.__transition,
-      tween;
-
-  // Initialize the self timer when the transition is created.
-  // Note the actual delay is not known until the first callback!
-  schedules[id] = self;
-  self.timer = d3Timer.timer(schedule, 0, self.time);
-
-  function schedule(elapsed) {
-    self.state = SCHEDULED;
-    self.timer.restart(start, self.delay, self.time);
-
-    // If the elapsed delay is less than our first sleep, start immediately.
-    if (self.delay <= elapsed) start(elapsed - self.delay);
-  }
-
-  function start(elapsed) {
-    var i, j, n, o;
-
-    // If the state is not SCHEDULED, then we previously errored on start.
-    if (self.state !== SCHEDULED) return stop();
-
-    for (i in schedules) {
-      o = schedules[i];
-      if (o.name !== self.name) continue;
-
-      // While this element already has a starting transition during this frame,
-      // defer starting an interrupting transition until that transition has a
-      // chance to tick (and possibly end); see d3/d3-transition#54!
-      if (o.state === STARTED) return d3Timer.timeout(start);
-
-      // Interrupt the active transition, if any.
-      if (o.state === RUNNING) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("interrupt", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-
-      // Cancel any pre-empted transitions.
-      else if (+i < id) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("cancel", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-    }
-
-    // Defer the first tick to end of the current frame; see d3/d3#1576.
-    // Note the transition may be canceled after start and before the first tick!
-    // Note this must be scheduled before the start event; see d3/d3-transition#16!
-    // Assuming this is successful, subsequent callbacks go straight to tick.
-    d3Timer.timeout(function() {
-      if (self.state === STARTED) {
-        self.state = RUNNING;
-        self.timer.restart(tick, self.delay, self.time);
-        tick(elapsed);
-      }
-    });
-
-    // Dispatch the start event.
-    // Note this must be done before the tween are initialized.
-    self.state = STARTING;
-    self.on.call("start", node, node.__data__, self.index, self.group);
-    if (self.state !== STARTING) return; // interrupted
-    self.state = STARTED;
-
-    // Initialize the tween, deleting null tween.
-    tween = new Array(n = self.tween.length);
-    for (i = 0, j = -1; i < n; ++i) {
-      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
-        tween[++j] = o;
-      }
-    }
-    tween.length = j + 1;
-  }
-
-  function tick(elapsed) {
-    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
-        i = -1,
-        n = tween.length;
-
-    while (++i < n) {
-      tween[i].call(node, t);
-    }
-
-    // Dispatch the end event.
-    if (self.state === ENDING) {
-      self.on.call("end", node, node.__data__, self.index, self.group);
-      stop();
-    }
-  }
-
-  function stop() {
-    self.state = ENDED;
-    self.timer.stop();
-    delete schedules[id];
-    for (var i in schedules) return; // eslint-disable-line no-unused-vars
-    delete node.__transition;
-  }
-}
-
-function interrupt(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      active,
-      empty = true,
-      i;
-
-  if (!schedules) return;
-
-  name = name == null ? null : name + "";
-
-  for (i in schedules) {
-    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
-    active = schedule.state > STARTING && schedule.state < ENDING;
-    schedule.state = ENDED;
-    schedule.timer.stop();
-    schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
-    delete schedules[i];
-  }
-
-  if (empty) delete node.__transition;
-}
-
-function selection_interrupt(name) {
-  return this.each(function() {
-    interrupt(this, name);
-  });
-}
-
-function tweenRemove(id, name) {
-  var tween0, tween1;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = tween0 = tween;
-      for (var i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1 = tween1.slice();
-          tween1.splice(i, 1);
-          break;
-        }
-      }
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-function tweenFunction(id, name, value) {
-  var tween0, tween1;
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = (tween0 = tween).slice();
-      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1[i] = t;
-          break;
-        }
-      }
-      if (i === n) tween1.push(t);
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-function transition_tween(name, value) {
-  var id = this._id;
-
-  name += "";
-
-  if (arguments.length < 2) {
-    var tween = get(this.node(), id).tween;
-    for (var i = 0, n = tween.length, t; i < n; ++i) {
-      if ((t = tween[i]).name === name) {
-        return t.value;
-      }
-    }
-    return null;
-  }
-
-  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
-}
-
-function tweenValue(transition, name, value) {
-  var id = transition._id;
-
-  transition.each(function() {
-    var schedule = set(this, id);
-    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
-  });
-
-  return function(node) {
-    return get(node, id).value[name];
-  };
-}
-
-function interpolate(a, b) {
-  var c;
-  return (typeof b === "number" ? d3Interpolate.interpolateNumber
-      : b instanceof d3Color.color ? d3Interpolate.interpolateRgb
-      : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)
-      : d3Interpolate.interpolateString)(a, b);
-}
-
-function attrRemove(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttribute(name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrConstantNS(fullname, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttributeNS(fullname.space, fullname.local);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttribute(name);
-    string0 = this.getAttribute(name);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function attrFunctionNS(fullname, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
-    string0 = this.getAttributeNS(fullname.space, fullname.local);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function transition_attr(name, value) {
-  var fullname = d3Selection.namespace(name), i = fullname === "transform" ? d3Interpolate.interpolateTransformSvg : interpolate;
-  return this.attrTween(name, typeof value === "function"
-      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
-      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
-      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
-}
-
-function attrInterpolate(name, i) {
-  return function(t) {
-    this.setAttribute(name, i.call(this, t));
-  };
-}
-
-function attrInterpolateNS(fullname, i) {
-  return function(t) {
-    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
-  };
-}
-
-function attrTweenNS(fullname, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function attrTween(name, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_attrTween(name, value) {
-  var key = "attr." + name;
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  var fullname = d3Selection.namespace(name);
-  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
-}
-
-function delayFunction(id, value) {
-  return function() {
-    init(this, id).delay = +value.apply(this, arguments);
-  };
-}
-
-function delayConstant(id, value) {
-  return value = +value, function() {
-    init(this, id).delay = value;
-  };
-}
-
-function transition_delay(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? delayFunction
-          : delayConstant)(id, value))
-      : get(this.node(), id).delay;
-}
-
-function durationFunction(id, value) {
-  return function() {
-    set(this, id).duration = +value.apply(this, arguments);
-  };
-}
-
-function durationConstant(id, value) {
-  return value = +value, function() {
-    set(this, id).duration = value;
-  };
-}
-
-function transition_duration(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? durationFunction
-          : durationConstant)(id, value))
-      : get(this.node(), id).duration;
-}
-
-function easeConstant(id, value) {
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    set(this, id).ease = value;
-  };
-}
-
-function transition_ease(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each(easeConstant(id, value))
-      : get(this.node(), id).ease;
-}
-
-function easeVarying(id, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (typeof v !== "function") throw new Error;
-    set(this, id).ease = v;
-  };
-}
-
-function transition_easeVarying(value) {
-  if (typeof value !== "function") throw new Error;
-  return this.each(easeVarying(this._id, value));
-}
-
-function transition_filter(match) {
-  if (typeof match !== "function") match = d3Selection.matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, this._name, this._id);
-}
-
-function transition_merge(transition) {
-  if (transition._id !== this._id) throw new Error;
-
-  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Transition(merges, this._parents, this._name, this._id);
-}
-
-function start(name) {
-  return (name + "").trim().split(/^|\s+/).every(function(t) {
-    var i = t.indexOf(".");
-    if (i >= 0) t = t.slice(0, i);
-    return !t || t === "start";
-  });
-}
-
-function onFunction(id, name, listener) {
-  var on0, on1, sit = start(name) ? init : set;
-  return function() {
-    var schedule = sit(this, id),
-        on = schedule.on;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
-
-    schedule.on = on1;
-  };
-}
-
-function transition_on(name, listener) {
-  var id = this._id;
-
-  return arguments.length < 2
-      ? get(this.node(), id).on.on(name)
-      : this.each(onFunction(id, name, listener));
-}
-
-function removeFunction(id) {
-  return function() {
-    var parent = this.parentNode;
-    for (var i in this.__transition) if (+i !== id) return;
-    if (parent) parent.removeChild(this);
-  };
-}
-
-function transition_remove() {
-  return this.on("end.remove", removeFunction(this._id));
-}
-
-function transition_select(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = d3Selection.selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-        schedule(subgroup[i], name, id, i, subgroup, get(node, id));
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, name, id);
-}
-
-function transition_selectAll(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = d3Selection.selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {
-          if (child = children[k]) {
-            schedule(child, name, id, k, children, inherit);
-          }
-        }
-        subgroups.push(children);
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, parents, name, id);
-}
-
-var Selection = d3Selection.selection.prototype.constructor;
-
-function transition_selection() {
-  return new Selection(this._groups, this._parents);
-}
-
-function styleNull(name, interpolate) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = d3Selection.style(this, name),
-        string1 = (this.style.removeProperty(name), d3Selection.style(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, string10 = string1);
-  };
-}
-
-function styleRemove(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = d3Selection.style(this, name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function styleFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = d3Selection.style(this, name),
-        value1 = value(this),
-        string1 = value1 + "";
-    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), d3Selection.style(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function styleMaybeRemove(id, name) {
-  var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
-  return function() {
-    var schedule = set(this, id),
-        on = schedule.on,
-        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
-
-    schedule.on = on1;
-  };
-}
-
-function transition_style(name, value, priority) {
-  var i = (name += "") === "transform" ? d3Interpolate.interpolateTransformCss : interpolate;
-  return value == null ? this
-      .styleTween(name, styleNull(name, i))
-      .on("end.style." + name, styleRemove(name))
-    : typeof value === "function" ? this
-      .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value)))
-      .each(styleMaybeRemove(this._id, name))
-    : this
-      .styleTween(name, styleConstant(name, i, value), priority)
-      .on("end.style." + name, null);
-}
-
-function styleInterpolate(name, i, priority) {
-  return function(t) {
-    this.style.setProperty(name, i.call(this, t), priority);
-  };
-}
-
-function styleTween(name, value, priority) {
-  var t, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
-    return t;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_styleTween(name, value, priority) {
-  var key = "style." + (name += "");
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
-}
-
-function textConstant(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction(value) {
-  return function() {
-    var value1 = value(this);
-    this.textContent = value1 == null ? "" : value1;
-  };
-}
-
-function transition_text(value) {
-  return this.tween("text", typeof value === "function"
-      ? textFunction(tweenValue(this, "text", value))
-      : textConstant(value == null ? "" : value + ""));
-}
-
-function textInterpolate(i) {
-  return function(t) {
-    this.textContent = i.call(this, t);
-  };
-}
-
-function textTween(value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_textTween(value) {
-  var key = "text";
-  if (arguments.length < 1) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, textTween(value));
-}
-
-function transition_transition() {
-  var name = this._name,
-      id0 = this._id,
-      id1 = newId();
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        var inherit = get(node, id0);
-        schedule(node, name, id1, i, group, {
-          time: inherit.time + inherit.delay + inherit.duration,
-          delay: 0,
-          duration: inherit.duration,
-          ease: inherit.ease
-        });
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id1);
-}
-
-function transition_end() {
-  var on0, on1, that = this, id = that._id, size = that.size();
-  return new Promise(function(resolve, reject) {
-    var cancel = {value: reject},
-        end = {value: function() { if (--size === 0) resolve(); }};
-
-    that.each(function() {
-      var schedule = set(this, id),
-          on = schedule.on;
-
-      // If this node shared a dispatch with the previous node,
-      // just assign the updated shared dispatch and we’re done!
-      // Otherwise, copy-on-write.
-      if (on !== on0) {
-        on1 = (on0 = on).copy();
-        on1._.cancel.push(cancel);
-        on1._.interrupt.push(cancel);
-        on1._.end.push(end);
-      }
-
-      schedule.on = on1;
-    });
-
-    // The selection was empty, resolve end immediately
-    if (size === 0) resolve();
-  });
-}
-
-var id = 0;
-
-function Transition(groups, parents, name, id) {
-  this._groups = groups;
-  this._parents = parents;
-  this._name = name;
-  this._id = id;
-}
-
-function transition(name) {
-  return d3Selection.selection().transition(name);
-}
-
-function newId() {
-  return ++id;
-}
-
-var selection_prototype = d3Selection.selection.prototype;
-
-Transition.prototype = transition.prototype = {
-  constructor: Transition,
-  select: transition_select,
-  selectAll: transition_selectAll,
-  selectChild: selection_prototype.selectChild,
-  selectChildren: selection_prototype.selectChildren,
-  filter: transition_filter,
-  merge: transition_merge,
-  selection: transition_selection,
-  transition: transition_transition,
-  call: selection_prototype.call,
-  nodes: selection_prototype.nodes,
-  node: selection_prototype.node,
-  size: selection_prototype.size,
-  empty: selection_prototype.empty,
-  each: selection_prototype.each,
-  on: transition_on,
-  attr: transition_attr,
-  attrTween: transition_attrTween,
-  style: transition_style,
-  styleTween: transition_styleTween,
-  text: transition_text,
-  textTween: transition_textTween,
-  remove: transition_remove,
-  tween: transition_tween,
-  delay: transition_delay,
-  duration: transition_duration,
-  ease: transition_ease,
-  easeVarying: transition_easeVarying,
-  end: transition_end,
-  [Symbol.iterator]: selection_prototype[Symbol.iterator]
-};
-
-var defaultTiming = {
-  time: null, // Set on use.
-  delay: 0,
-  duration: 250,
-  ease: d3Ease.easeCubicInOut
-};
-
-function inherit(node, id) {
-  var timing;
-  while (!(timing = node.__transition) || !(timing = timing[id])) {
-    if (!(node = node.parentNode)) {
-      throw new Error(`transition ${id} not found`);
-    }
-  }
-  return timing;
-}
-
-function selection_transition(name) {
-  var id,
-      timing;
-
-  if (name instanceof Transition) {
-    id = name._id, name = name._name;
-  } else {
-    id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + "";
-  }
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        schedule(node, name, id, i, group, timing || inherit(node, id));
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id);
-}
-
-d3Selection.selection.prototype.interrupt = selection_interrupt;
-d3Selection.selection.prototype.transition = selection_transition;
-
-var root = [null];
-
-function active(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      i;
-
-  if (schedules) {
-    name = name == null ? null : name + "";
-    for (i in schedules) {
-      if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {
-        return new Transition([[node]], root, name, +i);
-      }
-    }
-  }
-
-  return null;
-}
-
-exports.active = active;
-exports.interrupt = interrupt;
-exports.transition = transition;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-transition/dist/d3-transition.min.js
===================================================================
--- node_modules/d3-transition/dist/d3-transition.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-transition/ v3.0.1 Copyright 2010-2021 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-selection"),require("d3-dispatch"),require("d3-timer"),require("d3-interpolate"),require("d3-color"),require("d3-ease")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3,t.d3)}(this,(function(t,n,e,r,i,o,u){"use strict";var a=e.dispatch("start","end","cancel","interrupt"),s=[];function l(t,n,e,i,o,u){var l=t.__transition;if(l){if(e in l)return}else t.__transition={};!function(t,n,e){var i,o=t.__transition;function u(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(u){var f,c,h,d;if(1!==e.state)return l();for(f in o)if((d=o[f]).name===e.name){if(3===d.state)return r.timeout(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete o[f]):+f<n&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete o[f])}if(r.timeout((function(){3===e.state&&(e.state=4,e.timer.restart(s,e.delay,e.time),s(u))})),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(e.state=3,i=new Array(h=e.tween.length),f=0,c=-1;f<h;++f)(d=e.tween[f].value.call(t,t.__data__,e.index,e.group))&&(i[++c]=d);i.length=c+1}}function s(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(l),e.state=5,1),o=-1,u=i.length;++o<u;)i[o].call(t,r);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){for(var r in e.state=6,e.timer.stop(),delete o[n],o)return;delete t.__transition}o[n]=e,e.timer=r.timer(u,0,e.time)}(t,e,{name:n,index:i,group:o,on:a,tween:s,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:0})}function f(t,n){var e=h(t,n);if(e.state>0)throw new Error("too late; already scheduled");return e}function c(t,n){var e=h(t,n);if(e.state>3)throw new Error("too late; already running");return e}function h(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function d(t,n){var e,r,i,o=t.__transition,u=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}}function p(t,n){var e,r;return function(){var i=c(this,t),o=i.tween;if(o!==e)for(var u=0,a=(r=e=o).length;u<a;++u)if(r[u].name===n){(r=r.slice()).splice(u,1);break}i.tween=r}}function _(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=c(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=a;break}s===l&&i.push(a)}o.tween=i}}function v(t,n,e){var r=t._id;return t.each((function(){var t=c(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return h(t,r).value[n]}}function y(t,n){var e;return("number"==typeof n?i.interpolateNumber:n instanceof o.color?i.interpolateRgb:(e=o.color(n))?(n=e,i.interpolateRgb):i.interpolateString)(t,n)}function m(t){return function(){this.removeAttribute(t)}}function w(t){return function(){this.removeAttributeNS(t.space,t.local)}}function g(t,n,e){var r,i,o=e+"";return function(){var u=this.getAttribute(t);return u===o?null:u===r?i:i=n(r=u,e)}}function b(t,n,e){var r,i,o=e+"";return function(){var u=this.getAttributeNS(t.space,t.local);return u===o?null:u===r?i:i=n(r=u,e)}}function x(t,n,e){var r,i,o;return function(){var u,a,s=e(this);if(null!=s)return(u=this.getAttribute(t))===(a=s+"")?null:u===r&&a===i?o:(i=a,o=n(r=u,s));this.removeAttribute(t)}}function A(t,n,e){var r,i,o;return function(){var u,a,s=e(this);if(null!=s)return(u=this.getAttributeNS(t.space,t.local))===(a=s+"")?null:u===r&&a===i?o:(i=a,o=n(r=u,s));this.removeAttributeNS(t.space,t.local)}}function E(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function T(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function C(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&T(t,i)),e}return i._value=n,i}function S(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&E(t,i)),e}return i._value=n,i}function N(t,n){return function(){f(this,t).delay=+n.apply(this,arguments)}}function q(t,n){return n=+n,function(){f(this,t).delay=n}}function P(t,n){return function(){c(this,t).duration=+n.apply(this,arguments)}}function z(t,n){return n=+n,function(){c(this,t).duration=n}}function O(t,n){if("function"!=typeof n)throw new Error;return function(){c(this,t).ease=n}}function j(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?f:c;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}var k=n.selection.prototype.constructor;function M(t){return function(){this.style.removeProperty(t)}}function R(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function I(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&R(t,o,e)),r}return o._value=n,o}function V(t){return function(n){this.textContent=t.call(this,n)}}function $(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&V(r)),n}return r._value=t,r}var B=0;function D(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function F(t){return n.selection().transition(t)}function G(){return++B}var H=n.selection.prototype;D.prototype=F.prototype={constructor:D,select:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=n.selector(t));for(var i=this._groups,o=i.length,u=new Array(o),a=0;a<o;++a)for(var s,f,c=i[a],d=c.length,p=u[a]=new Array(d),_=0;_<d;++_)(s=c[_])&&(f=t.call(s,s.__data__,_,c))&&("__data__"in s&&(f.__data__=s.__data__),p[_]=f,l(p[_],e,r,_,p,h(s,r)));return new D(u,this._parents,e,r)},selectAll:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=n.selectorAll(t));for(var i=this._groups,o=i.length,u=[],a=[],s=0;s<o;++s)for(var f,c=i[s],d=c.length,p=0;p<d;++p)if(f=c[p]){for(var _,v=t.call(f,f.__data__,p,c),y=h(f,r),m=0,w=v.length;m<w;++m)(_=v[m])&&l(_,e,r,m,v,y);u.push(v),a.push(f)}return new D(u,a,e,r)},selectChild:H.selectChild,selectChildren:H.selectChildren,filter:function(t){"function"!=typeof t&&(t=n.matcher(t));for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o)for(var u,a=e[o],s=a.length,l=i[o]=[],f=0;f<s;++f)(u=a[f])&&t.call(u,u.__data__,f,a)&&l.push(u);return new D(i,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var s,l=n[a],f=e[a],c=l.length,h=u[a]=new Array(c),d=0;d<c;++d)(s=l[d]||f[d])&&(h[d]=s);for(;a<r;++a)u[a]=n[a];return new D(u,this._parents,this._name,this._id)},selection:function(){return new k(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=G(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],s=a.length,f=0;f<s;++f)if(u=a[f]){var c=h(u,n);l(u,t,e,f,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new D(r,this._parents,t,e)},call:H.call,nodes:H.nodes,node:H.node,size:H.size,empty:H.empty,each:H.each,on:function(t,n){var e=this._id;return arguments.length<2?h(this.node(),e).on.on(t):this.each(j(e,t,n))},attr:function(t,e){var r=n.namespace(t),o="transform"===r?i.interpolateTransformSvg:y;return this.attrTween(t,"function"==typeof e?(r.local?A:x)(r,o,v(this,"attr."+t,e)):null==e?(r.local?w:m)(r):(r.local?b:g)(r,o,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;var i=n.namespace(t);return this.tween(r,(i.local?C:S)(i,e))},style:function(t,e,r){var o="transform"==(t+="")?i.interpolateTransformCss:y;return null==e?this.styleTween(t,function(t,e){var r,i,o;return function(){var u=n.style(this,t),a=(this.style.removeProperty(t),n.style(this,t));return u===a?null:u===r&&a===i?o:o=e(r=u,i=a)}}(t,o)).on("end.style."+t,M(t)):"function"==typeof e?this.styleTween(t,function(t,e,r){var i,o,u;return function(){var a=n.style(this,t),s=r(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=n.style(this,t)),a===l?null:a===i&&l===o?u:(o=l,u=e(i=a,s))}}(t,o,v(this,"style."+t,e))).each(function(t,n){var e,r,i,o,u="style."+n,a="end."+u;return function(){var s=c(this,t),l=s.on,f=null==s.value[u]?o||(o=M(n)):void 0;l===e&&i===f||(r=(e=l).copy()).on(a,i=f),s.on=r}}(this._id,t)):this.styleTween(t,function(t,e,r){var i,o,u=r+"";return function(){var a=n.style(this,t);return a===u?null:a===i?o:o=e(i=a,r)}}(t,o,e),r).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,I(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(v(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,$(t))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=h(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?p:_)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?N:q)(n,t)):h(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?P:z)(n,t)):h(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(O(n,t)):h(this.node(),n).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,n){return function(){var e=n.apply(this,arguments);if("function"!=typeof e)throw new Error;c(this,t).ease=e}}(this._id,t))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,u){var a={value:u},s={value:function(){0==--i&&o()}};e.each((function(){var e=c(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(a),n._.interrupt.push(a),n._.end.push(s)),e.on=n})),0===i&&o()}))},[Symbol.iterator]:H[Symbol.iterator]};var J={time:null,delay:0,duration:250,ease:u.easeCubicInOut};function K(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}n.selection.prototype.interrupt=function(t){return this.each((function(){d(this,t)}))},n.selection.prototype.transition=function(t){var n,e;t instanceof D?(n=t._id,t=t._name):(n=G(),(e=J).time=r.now(),t=null==t?null:t+"");for(var i=this._groups,o=i.length,u=0;u<o;++u)for(var a,s=i[u],f=s.length,c=0;c<f;++c)(a=s[c])&&l(a,t,n,c,s,e||K(a,n));return new D(i,this._parents,t,n)};var L=[null];t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>1&&e.name===n)return new D([[t]],L,n,+r);return null},t.interrupt=d,t.transition=F,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-transition/package.json
===================================================================
--- node_modules/d3-transition/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-{
-  "name": "d3-transition",
-  "version": "3.0.1",
-  "description": "Animated transitions for D3 selections.",
-  "homepage": "https://d3js.org/d3-transition/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-transition.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "dom",
-    "transition",
-    "animation"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-transition.min.js",
-  "unpkg": "dist/d3-transition.min.js",
-  "exports": {
-    "umd": "./dist/d3-transition.min.js",
-    "default": "./src/index.js"
-  },
-  "sideEffects": [
-    "./src/index.js",
-    "./src/selection/index.js"
-  ],
-  "dependencies": {
-    "d3-color": "1 - 3",
-    "d3-dispatch": "1 - 3",
-    "d3-ease": "1 - 3",
-    "d3-interpolate": "1 - 3",
-    "d3-timer": "1 - 3"
-  },
-  "devDependencies": {
-    "d3-selection": "2 - 3",
-    "eslint": "7",
-    "jsdom": "16",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c && git push",
-    "postpublish": "git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  },
-  "peerDependencies": {
-    "d3-selection": "2 - 3"
-  }
-}
Index: de_modules/d3-transition/src/active.js
===================================================================
--- node_modules/d3-transition/src/active.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import {Transition} from "./transition/index.js";
-import {SCHEDULED} from "./transition/schedule.js";
-
-var root = [null];
-
-export default function(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      i;
-
-  if (schedules) {
-    name = name == null ? null : name + "";
-    for (i in schedules) {
-      if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {
-        return new Transition([[node]], root, name, +i);
-      }
-    }
-  }
-
-  return null;
-}
Index: de_modules/d3-transition/src/index.js
===================================================================
--- node_modules/d3-transition/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import "./selection/index.js";
-export {default as transition} from "./transition/index.js";
-export {default as active} from "./active.js";
-export {default as interrupt} from "./interrupt.js";
Index: de_modules/d3-transition/src/interrupt.js
===================================================================
--- node_modules/d3-transition/src/interrupt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import {STARTING, ENDING, ENDED} from "./transition/schedule.js";
-
-export default function(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      active,
-      empty = true,
-      i;
-
-  if (!schedules) return;
-
-  name = name == null ? null : name + "";
-
-  for (i in schedules) {
-    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
-    active = schedule.state > STARTING && schedule.state < ENDING;
-    schedule.state = ENDED;
-    schedule.timer.stop();
-    schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
-    delete schedules[i];
-  }
-
-  if (empty) delete node.__transition;
-}
Index: de_modules/d3-transition/src/selection/index.js
===================================================================
--- node_modules/d3-transition/src/selection/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import {selection} from "d3-selection";
-import selection_interrupt from "./interrupt.js";
-import selection_transition from "./transition.js";
-
-selection.prototype.interrupt = selection_interrupt;
-selection.prototype.transition = selection_transition;
Index: de_modules/d3-transition/src/selection/interrupt.js
===================================================================
--- node_modules/d3-transition/src/selection/interrupt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import interrupt from "../interrupt.js";
-
-export default function(name) {
-  return this.each(function() {
-    interrupt(this, name);
-  });
-}
Index: de_modules/d3-transition/src/selection/transition.js
===================================================================
--- node_modules/d3-transition/src/selection/transition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import {Transition, newId} from "../transition/index.js";
-import schedule from "../transition/schedule.js";
-import {easeCubicInOut} from "d3-ease";
-import {now} from "d3-timer";
-
-var defaultTiming = {
-  time: null, // Set on use.
-  delay: 0,
-  duration: 250,
-  ease: easeCubicInOut
-};
-
-function inherit(node, id) {
-  var timing;
-  while (!(timing = node.__transition) || !(timing = timing[id])) {
-    if (!(node = node.parentNode)) {
-      throw new Error(`transition ${id} not found`);
-    }
-  }
-  return timing;
-}
-
-export default function(name) {
-  var id,
-      timing;
-
-  if (name instanceof Transition) {
-    id = name._id, name = name._name;
-  } else {
-    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
-  }
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        schedule(node, name, id, i, group, timing || inherit(node, id));
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id);
-}
Index: de_modules/d3-transition/src/transition/attr.js
===================================================================
--- node_modules/d3-transition/src/transition/attr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import {interpolateTransformSvg as interpolateTransform} from "d3-interpolate";
-import {namespace} from "d3-selection";
-import {tweenValue} from "./tween.js";
-import interpolate from "./interpolate.js";
-
-function attrRemove(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttribute(name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrConstantNS(fullname, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttributeNS(fullname.space, fullname.local);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttribute(name);
-    string0 = this.getAttribute(name);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function attrFunctionNS(fullname, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
-    string0 = this.getAttributeNS(fullname.space, fullname.local);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-export default function(name, value) {
-  var fullname = namespace(name), i = fullname === "transform" ? interpolateTransform : interpolate;
-  return this.attrTween(name, typeof value === "function"
-      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
-      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
-      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
-}
Index: de_modules/d3-transition/src/transition/attrTween.js
===================================================================
--- node_modules/d3-transition/src/transition/attrTween.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import {namespace} from "d3-selection";
-
-function attrInterpolate(name, i) {
-  return function(t) {
-    this.setAttribute(name, i.call(this, t));
-  };
-}
-
-function attrInterpolateNS(fullname, i) {
-  return function(t) {
-    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
-  };
-}
-
-function attrTweenNS(fullname, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function attrTween(name, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-export default function(name, value) {
-  var key = "attr." + name;
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  var fullname = namespace(name);
-  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
-}
Index: de_modules/d3-transition/src/transition/delay.js
===================================================================
--- node_modules/d3-transition/src/transition/delay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import {get, init} from "./schedule.js";
-
-function delayFunction(id, value) {
-  return function() {
-    init(this, id).delay = +value.apply(this, arguments);
-  };
-}
-
-function delayConstant(id, value) {
-  return value = +value, function() {
-    init(this, id).delay = value;
-  };
-}
-
-export default function(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? delayFunction
-          : delayConstant)(id, value))
-      : get(this.node(), id).delay;
-}
Index: de_modules/d3-transition/src/transition/duration.js
===================================================================
--- node_modules/d3-transition/src/transition/duration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import {get, set} from "./schedule.js";
-
-function durationFunction(id, value) {
-  return function() {
-    set(this, id).duration = +value.apply(this, arguments);
-  };
-}
-
-function durationConstant(id, value) {
-  return value = +value, function() {
-    set(this, id).duration = value;
-  };
-}
-
-export default function(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? durationFunction
-          : durationConstant)(id, value))
-      : get(this.node(), id).duration;
-}
Index: de_modules/d3-transition/src/transition/ease.js
===================================================================
--- node_modules/d3-transition/src/transition/ease.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {get, set} from "./schedule.js";
-
-function easeConstant(id, value) {
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    set(this, id).ease = value;
-  };
-}
-
-export default function(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each(easeConstant(id, value))
-      : get(this.node(), id).ease;
-}
Index: de_modules/d3-transition/src/transition/easeVarying.js
===================================================================
--- node_modules/d3-transition/src/transition/easeVarying.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import {set} from "./schedule.js";
-
-function easeVarying(id, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (typeof v !== "function") throw new Error;
-    set(this, id).ease = v;
-  };
-}
-
-export default function(value) {
-  if (typeof value !== "function") throw new Error;
-  return this.each(easeVarying(this._id, value));
-}
Index: de_modules/d3-transition/src/transition/end.js
===================================================================
--- node_modules/d3-transition/src/transition/end.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import {set} from "./schedule.js";
-
-export default function() {
-  var on0, on1, that = this, id = that._id, size = that.size();
-  return new Promise(function(resolve, reject) {
-    var cancel = {value: reject},
-        end = {value: function() { if (--size === 0) resolve(); }};
-
-    that.each(function() {
-      var schedule = set(this, id),
-          on = schedule.on;
-
-      // If this node shared a dispatch with the previous node,
-      // just assign the updated shared dispatch and we’re done!
-      // Otherwise, copy-on-write.
-      if (on !== on0) {
-        on1 = (on0 = on).copy();
-        on1._.cancel.push(cancel);
-        on1._.interrupt.push(cancel);
-        on1._.end.push(end);
-      }
-
-      schedule.on = on1;
-    });
-
-    // The selection was empty, resolve end immediately
-    if (size === 0) resolve();
-  });
-}
Index: de_modules/d3-transition/src/transition/filter.js
===================================================================
--- node_modules/d3-transition/src/transition/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import {matcher} from "d3-selection";
-import {Transition} from "./index.js";
-
-export default function(match) {
-  if (typeof match !== "function") match = matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, this._name, this._id);
-}
Index: de_modules/d3-transition/src/transition/index.js
===================================================================
--- node_modules/d3-transition/src/transition/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import {selection} from "d3-selection";
-import transition_attr from "./attr.js";
-import transition_attrTween from "./attrTween.js";
-import transition_delay from "./delay.js";
-import transition_duration from "./duration.js";
-import transition_ease from "./ease.js";
-import transition_easeVarying from "./easeVarying.js";
-import transition_filter from "./filter.js";
-import transition_merge from "./merge.js";
-import transition_on from "./on.js";
-import transition_remove from "./remove.js";
-import transition_select from "./select.js";
-import transition_selectAll from "./selectAll.js";
-import transition_selection from "./selection.js";
-import transition_style from "./style.js";
-import transition_styleTween from "./styleTween.js";
-import transition_text from "./text.js";
-import transition_textTween from "./textTween.js";
-import transition_transition from "./transition.js";
-import transition_tween from "./tween.js";
-import transition_end from "./end.js";
-
-var id = 0;
-
-export function Transition(groups, parents, name, id) {
-  this._groups = groups;
-  this._parents = parents;
-  this._name = name;
-  this._id = id;
-}
-
-export default function transition(name) {
-  return selection().transition(name);
-}
-
-export function newId() {
-  return ++id;
-}
-
-var selection_prototype = selection.prototype;
-
-Transition.prototype = transition.prototype = {
-  constructor: Transition,
-  select: transition_select,
-  selectAll: transition_selectAll,
-  selectChild: selection_prototype.selectChild,
-  selectChildren: selection_prototype.selectChildren,
-  filter: transition_filter,
-  merge: transition_merge,
-  selection: transition_selection,
-  transition: transition_transition,
-  call: selection_prototype.call,
-  nodes: selection_prototype.nodes,
-  node: selection_prototype.node,
-  size: selection_prototype.size,
-  empty: selection_prototype.empty,
-  each: selection_prototype.each,
-  on: transition_on,
-  attr: transition_attr,
-  attrTween: transition_attrTween,
-  style: transition_style,
-  styleTween: transition_styleTween,
-  text: transition_text,
-  textTween: transition_textTween,
-  remove: transition_remove,
-  tween: transition_tween,
-  delay: transition_delay,
-  duration: transition_duration,
-  ease: transition_ease,
-  easeVarying: transition_easeVarying,
-  end: transition_end,
-  [Symbol.iterator]: selection_prototype[Symbol.iterator]
-};
Index: de_modules/d3-transition/src/transition/interpolate.js
===================================================================
--- node_modules/d3-transition/src/transition/interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import {color} from "d3-color";
-import {interpolateNumber, interpolateRgb, interpolateString} from "d3-interpolate";
-
-export default function(a, b) {
-  var c;
-  return (typeof b === "number" ? interpolateNumber
-      : b instanceof color ? interpolateRgb
-      : (c = color(b)) ? (b = c, interpolateRgb)
-      : interpolateString)(a, b);
-}
Index: de_modules/d3-transition/src/transition/merge.js
===================================================================
--- node_modules/d3-transition/src/transition/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import {Transition} from "./index.js";
-
-export default function(transition) {
-  if (transition._id !== this._id) throw new Error;
-
-  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Transition(merges, this._parents, this._name, this._id);
-}
Index: de_modules/d3-transition/src/transition/on.js
===================================================================
--- node_modules/d3-transition/src/transition/on.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import {get, set, init} from "./schedule.js";
-
-function start(name) {
-  return (name + "").trim().split(/^|\s+/).every(function(t) {
-    var i = t.indexOf(".");
-    if (i >= 0) t = t.slice(0, i);
-    return !t || t === "start";
-  });
-}
-
-function onFunction(id, name, listener) {
-  var on0, on1, sit = start(name) ? init : set;
-  return function() {
-    var schedule = sit(this, id),
-        on = schedule.on;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
-
-    schedule.on = on1;
-  };
-}
-
-export default function(name, listener) {
-  var id = this._id;
-
-  return arguments.length < 2
-      ? get(this.node(), id).on.on(name)
-      : this.each(onFunction(id, name, listener));
-}
Index: de_modules/d3-transition/src/transition/remove.js
===================================================================
--- node_modules/d3-transition/src/transition/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function removeFunction(id) {
-  return function() {
-    var parent = this.parentNode;
-    for (var i in this.__transition) if (+i !== id) return;
-    if (parent) parent.removeChild(this);
-  };
-}
-
-export default function() {
-  return this.on("end.remove", removeFunction(this._id));
-}
Index: de_modules/d3-transition/src/transition/schedule.js
===================================================================
--- node_modules/d3-transition/src/transition/schedule.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,153 +1,0 @@
-import {dispatch} from "d3-dispatch";
-import {timer, timeout} from "d3-timer";
-
-var emptyOn = dispatch("start", "end", "cancel", "interrupt");
-var emptyTween = [];
-
-export var CREATED = 0;
-export var SCHEDULED = 1;
-export var STARTING = 2;
-export var STARTED = 3;
-export var RUNNING = 4;
-export var ENDING = 5;
-export var ENDED = 6;
-
-export default function(node, name, id, index, group, timing) {
-  var schedules = node.__transition;
-  if (!schedules) node.__transition = {};
-  else if (id in schedules) return;
-  create(node, id, {
-    name: name,
-    index: index, // For context during callback.
-    group: group, // For context during callback.
-    on: emptyOn,
-    tween: emptyTween,
-    time: timing.time,
-    delay: timing.delay,
-    duration: timing.duration,
-    ease: timing.ease,
-    timer: null,
-    state: CREATED
-  });
-}
-
-export function init(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > CREATED) throw new Error("too late; already scheduled");
-  return schedule;
-}
-
-export function set(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > STARTED) throw new Error("too late; already running");
-  return schedule;
-}
-
-export function get(node, id) {
-  var schedule = node.__transition;
-  if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
-  return schedule;
-}
-
-function create(node, id, self) {
-  var schedules = node.__transition,
-      tween;
-
-  // Initialize the self timer when the transition is created.
-  // Note the actual delay is not known until the first callback!
-  schedules[id] = self;
-  self.timer = timer(schedule, 0, self.time);
-
-  function schedule(elapsed) {
-    self.state = SCHEDULED;
-    self.timer.restart(start, self.delay, self.time);
-
-    // If the elapsed delay is less than our first sleep, start immediately.
-    if (self.delay <= elapsed) start(elapsed - self.delay);
-  }
-
-  function start(elapsed) {
-    var i, j, n, o;
-
-    // If the state is not SCHEDULED, then we previously errored on start.
-    if (self.state !== SCHEDULED) return stop();
-
-    for (i in schedules) {
-      o = schedules[i];
-      if (o.name !== self.name) continue;
-
-      // While this element already has a starting transition during this frame,
-      // defer starting an interrupting transition until that transition has a
-      // chance to tick (and possibly end); see d3/d3-transition#54!
-      if (o.state === STARTED) return timeout(start);
-
-      // Interrupt the active transition, if any.
-      if (o.state === RUNNING) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("interrupt", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-
-      // Cancel any pre-empted transitions.
-      else if (+i < id) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("cancel", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-    }
-
-    // Defer the first tick to end of the current frame; see d3/d3#1576.
-    // Note the transition may be canceled after start and before the first tick!
-    // Note this must be scheduled before the start event; see d3/d3-transition#16!
-    // Assuming this is successful, subsequent callbacks go straight to tick.
-    timeout(function() {
-      if (self.state === STARTED) {
-        self.state = RUNNING;
-        self.timer.restart(tick, self.delay, self.time);
-        tick(elapsed);
-      }
-    });
-
-    // Dispatch the start event.
-    // Note this must be done before the tween are initialized.
-    self.state = STARTING;
-    self.on.call("start", node, node.__data__, self.index, self.group);
-    if (self.state !== STARTING) return; // interrupted
-    self.state = STARTED;
-
-    // Initialize the tween, deleting null tween.
-    tween = new Array(n = self.tween.length);
-    for (i = 0, j = -1; i < n; ++i) {
-      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
-        tween[++j] = o;
-      }
-    }
-    tween.length = j + 1;
-  }
-
-  function tick(elapsed) {
-    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
-        i = -1,
-        n = tween.length;
-
-    while (++i < n) {
-      tween[i].call(node, t);
-    }
-
-    // Dispatch the end event.
-    if (self.state === ENDING) {
-      self.on.call("end", node, node.__data__, self.index, self.group);
-      stop();
-    }
-  }
-
-  function stop() {
-    self.state = ENDED;
-    self.timer.stop();
-    delete schedules[id];
-    for (var i in schedules) return; // eslint-disable-line no-unused-vars
-    delete node.__transition;
-  }
-}
Index: de_modules/d3-transition/src/transition/select.js
===================================================================
--- node_modules/d3-transition/src/transition/select.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import {selector} from "d3-selection";
-import {Transition} from "./index.js";
-import schedule, {get} from "./schedule.js";
-
-export default function(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-        schedule(subgroup[i], name, id, i, subgroup, get(node, id));
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, name, id);
-}
Index: de_modules/d3-transition/src/transition/selectAll.js
===================================================================
--- node_modules/d3-transition/src/transition/selectAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import {selectorAll} from "d3-selection";
-import {Transition} from "./index.js";
-import schedule, {get} from "./schedule.js";
-
-export default function(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {
-          if (child = children[k]) {
-            schedule(child, name, id, k, children, inherit);
-          }
-        }
-        subgroups.push(children);
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, parents, name, id);
-}
Index: de_modules/d3-transition/src/transition/selection.js
===================================================================
--- node_modules/d3-transition/src/transition/selection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import {selection} from "d3-selection";
-
-var Selection = selection.prototype.constructor;
-
-export default function() {
-  return new Selection(this._groups, this._parents);
-}
Index: de_modules/d3-transition/src/transition/style.js
===================================================================
--- node_modules/d3-transition/src/transition/style.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import {interpolateTransformCss as interpolateTransform} from "d3-interpolate";
-import {style} from "d3-selection";
-import {set} from "./schedule.js";
-import {tweenValue} from "./tween.js";
-import interpolate from "./interpolate.js";
-
-function styleNull(name, interpolate) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = style(this, name),
-        string1 = (this.style.removeProperty(name), style(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, string10 = string1);
-  };
-}
-
-function styleRemove(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = style(this, name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function styleFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = style(this, name),
-        value1 = value(this),
-        string1 = value1 + "";
-    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function styleMaybeRemove(id, name) {
-  var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
-  return function() {
-    var schedule = set(this, id),
-        on = schedule.on,
-        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
-
-    schedule.on = on1;
-  };
-}
-
-export default function(name, value, priority) {
-  var i = (name += "") === "transform" ? interpolateTransform : interpolate;
-  return value == null ? this
-      .styleTween(name, styleNull(name, i))
-      .on("end.style." + name, styleRemove(name))
-    : typeof value === "function" ? this
-      .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value)))
-      .each(styleMaybeRemove(this._id, name))
-    : this
-      .styleTween(name, styleConstant(name, i, value), priority)
-      .on("end.style." + name, null);
-}
Index: de_modules/d3-transition/src/transition/styleTween.js
===================================================================
--- node_modules/d3-transition/src/transition/styleTween.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-function styleInterpolate(name, i, priority) {
-  return function(t) {
-    this.style.setProperty(name, i.call(this, t), priority);
-  };
-}
-
-function styleTween(name, value, priority) {
-  var t, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
-    return t;
-  }
-  tween._value = value;
-  return tween;
-}
-
-export default function(name, value, priority) {
-  var key = "style." + (name += "");
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
-}
Index: de_modules/d3-transition/src/transition/text.js
===================================================================
--- node_modules/d3-transition/src/transition/text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import {tweenValue} from "./tween.js";
-
-function textConstant(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction(value) {
-  return function() {
-    var value1 = value(this);
-    this.textContent = value1 == null ? "" : value1;
-  };
-}
-
-export default function(value) {
-  return this.tween("text", typeof value === "function"
-      ? textFunction(tweenValue(this, "text", value))
-      : textConstant(value == null ? "" : value + ""));
-}
Index: de_modules/d3-transition/src/transition/textTween.js
===================================================================
--- node_modules/d3-transition/src/transition/textTween.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-function textInterpolate(i) {
-  return function(t) {
-    this.textContent = i.call(this, t);
-  };
-}
-
-function textTween(value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-export default function(value) {
-  var key = "text";
-  if (arguments.length < 1) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, textTween(value));
-}
Index: de_modules/d3-transition/src/transition/transition.js
===================================================================
--- node_modules/d3-transition/src/transition/transition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import {Transition, newId} from "./index.js";
-import schedule, {get} from "./schedule.js";
-
-export default function() {
-  var name = this._name,
-      id0 = this._id,
-      id1 = newId();
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        var inherit = get(node, id0);
-        schedule(node, name, id1, i, group, {
-          time: inherit.time + inherit.delay + inherit.duration,
-          delay: 0,
-          duration: inherit.duration,
-          ease: inherit.ease
-        });
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id1);
-}
Index: de_modules/d3-transition/src/transition/tween.js
===================================================================
--- node_modules/d3-transition/src/transition/tween.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import {get, set} from "./schedule.js";
-
-function tweenRemove(id, name) {
-  var tween0, tween1;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = tween0 = tween;
-      for (var i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1 = tween1.slice();
-          tween1.splice(i, 1);
-          break;
-        }
-      }
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-function tweenFunction(id, name, value) {
-  var tween0, tween1;
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = (tween0 = tween).slice();
-      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1[i] = t;
-          break;
-        }
-      }
-      if (i === n) tween1.push(t);
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-export default function(name, value) {
-  var id = this._id;
-
-  name += "";
-
-  if (arguments.length < 2) {
-    var tween = get(this.node(), id).tween;
-    for (var i = 0, n = tween.length, t; i < n; ++i) {
-      if ((t = tween[i]).name === name) {
-        return t.value;
-      }
-    }
-    return null;
-  }
-
-  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
-}
-
-export function tweenValue(transition, name, value) {
-  var id = transition._id;
-
-  transition.each(function() {
-    var schedule = set(this, id);
-    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
-  });
-
-  return function(node) {
-    return get(node, id).value[name];
-  };
-}
Index: de_modules/d3-zoom/LICENSE
===================================================================
--- node_modules/d3-zoom/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3-zoom/README.md
===================================================================
--- node_modules/d3-zoom/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,414 +1,0 @@
-# d3-zoom
-
-Panning and zooming are popular interaction techniques which let the user focus on a region of interest by restricting the view. It is easy to learn due to direct manipulation: click-and-drag to pan (translate), spin the wheel to zoom (scale), or use touch. Panning and zooming are widely used in web-based mapping, but can also be used with visualizations such as time-series and scatterplots.
-
-The zoom behavior implemented by d3-zoom is a convenient but flexible abstraction for enabling pan-and-zoom on [selections](https://github.com/d3/d3-selection). It handles a surprising variety of [input events](#api-reference) and browser quirks. The zoom behavior is agnostic about the DOM, so you can use it with SVG, HTML or Canvas.
-
-[<img alt="Canvas Zooming" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/dots.png" width="420" height="219">](https://observablehq.com/@d3/zoom-canvas)[<img alt="SVG Zooming" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/dots.png" width="420" height="219">](https://observablehq.com/@d3/zoom)
-
-The zoom behavior is also designed to work with [d3-scale](https://github.com/d3/d3-scale) and [d3-axis](https://github.com/d3/d3-axis); see [*transform*.rescaleX](#transform_rescaleX) and [*transform*.rescaleY](#transform_rescaleY). You can also restrict zooming using [*zoom*.scaleExtent](#zoom_scaleExtent) and panning using [*zoom*.translateExtent](#zoom_translateExtent).
-
-[<img alt="Axis Zooming" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/axis.png" width="420" height="219">](https://observablehq.com/@d3/zoomable-scatterplot)
-
-The zoom behavior can be combined with other behaviors, such as [d3-drag](https://github.com/d3/d3-drag) for dragging, and [d3-brush](https://github.com/d3/d3-brush) for focus + context.
-
-[<img alt="Drag & Zoom II" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/dots.png" width="420" height="219">](https://observablehq.com/@d3/drag-zoom)[<img alt="Brush & Zoom" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/brush.png" width="420" height="219">](https://observablehq.com/@d3/focus-context)
-
-The zoom behavior can be controlled programmatically using [*zoom*.transform](#zoom_transform), allowing you to implement user interface controls which drive the display or to stage animated tours through your data. Smooth zoom transitions are based on [“Smooth and efficient zooming and panning”](http://www.win.tue.nl/~vanwijk/zoompan.pdf) by Jarke J. van Wijk and Wim A.A. Nuij.
-
-[<img alt="Zoom Transitions" src="https://raw.githubusercontent.com/d3/d3-zoom/master/img/transition.png" width="420" height="219">](https://observablehq.com/@d3/programmatic-zoom)
-
-See also [d3-tile](https://github.com/d3/d3-tile) for examples panning and zooming maps.
-
-## Installing
-
-If you use npm, `npm install d3-zoom`. You can also download the [latest release on GitHub](https://github.com/d3/d3-zoom/releases/latest). For vanilla HTML in modern browsers, import d3-zoom from Skypack:
-
-```html
-<script type="module">
-
-import {zoom} from "https://cdn.skypack.dev/d3-zoom@3";
-
-const handler = zoom();
-
-</script>
-```
-
-For legacy environments, you can load d3-zoom’s UMD bundle from an npm-based CDN such as jsDelivr; a `d3` global is exported:
-
-```html
-<script src="https://cdn.jsdelivr.net/npm/d3-color@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-dispatch@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-ease@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-interpolate@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-selection@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-timer@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-transition@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-drag@3"></script>
-<script src="https://cdn.jsdelivr.net/npm/d3-zoom@3"></script>
-<script>
-
-const zoom = d3.zoom();
-
-</script>
-```
-
-[Try d3-zoom in your browser.](https://observablehq.com/collection/@d3/d3-zoom)
-
-## API Reference
-
-This table describes how the zoom behavior interprets native events:
-
-| Event        | Listening Element | Zoom Event  | Default Prevented? |
-| ------------ | ----------------- | ----------- | ------------------ |
-| mousedown⁵   | selection         | start       | no¹                |
-| mousemove²   | window¹           | zoom        | yes                |
-| mouseup²     | window¹           | end         | yes                |
-| dragstart²   | window            | -           | yes                |
-| selectstart² | window            | -           | yes                |
-| click³       | window            | -           | yes                |
-| dblclick     | selection         | *multiple*⁶ | yes                |
-| wheel⁸       | selection         | zoom⁷       | yes                |
-| touchstart   | selection         | *multiple*⁶ | no⁴                |
-| touchmove    | selection         | zoom        | yes                |
-| touchend     | selection         | end         | no⁴                |
-| touchcancel  | selection         | end         | no⁴                |
-
-The propagation of all consumed events is [immediately stopped](https://dom.spec.whatwg.org/#dom-event-stopimmediatepropagation).
-
-¹ Necessary to capture events outside an iframe; see [d3-drag#9](https://github.com/d3/d3-drag/issues/9).
-<br>² Only applies during an active, mouse-based gesture; see [d3-drag#9](https://github.com/d3/d3-drag/issues/9).
-<br>³ Only applies immediately after some mouse-based gestures; see [*zoom*.clickDistance](#zoom_clickDistance).
-<br>⁴ Necessary to allow [click emulation](https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7) on touch input; see [d3-drag#9](https://github.com/d3/d3-drag/issues/9).
-<br>⁵ Ignored if within 500ms of a touch gesture ending; assumes [click emulation](https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7).
-<br>⁶ Double-click and double-tap initiate a transition that emits start, zoom and end events; see [*zoom*.tapDistance](#zoom_tapDistance)..
-<br>⁷ The first wheel event emits a start event; an end event is emitted when no wheel events are received for 150ms.
-<br>⁸ Ignored if already at the corresponding limit of the [scale extent](#zoom_scaleExtent).
-
-<a href="#zoom" name="zoom">#</a> d3.<b>zoom</b>() · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js), [Examples](https://observablehq.com/collection/@d3/d3-zoom)
-
-Creates a new zoom behavior. The returned behavior, [*zoom*](#_drag), is both an object and a function, and is typically applied to selected elements via [*selection*.call](https://github.com/d3/d3-selection#selection_call).
-
-<a href="#_zoom" name="_zoom">#</a> <i>zoom</i>(<i>selection</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js), [Examples](https://observablehq.com/collection/@d3/d3-zoom)
-
-Applies this zoom behavior to the specified [*selection*](https://github.com/d3/d3-selection), binding the necessary event listeners to allow panning and zooming, and initializing the [zoom transform](#zoom-transforms) on each selected element to the identity transform if not already defined. This function is typically not invoked directly, and is instead invoked via [*selection*.call](https://github.com/d3/d3-selection#selection_call). For example, to instantiate a zoom behavior and apply it to a selection:
-
-```js
-selection.call(d3.zoom().on("zoom", zoomed));
-```
-
-Internally, the zoom behavior uses [*selection*.on](https://github.com/d3/d3-selection#selection_on) to bind the necessary event listeners for zooming. The listeners use the name `.zoom`, so you can subsequently unbind the zoom behavior as follows:
-
-```js
-selection.on(".zoom", null);
-```
-
-To disable just wheel-driven zooming (say to not interfere with native scrolling), you can remove the zoom behavior’s wheel event listener after applying the zoom behavior to the selection:
-
-```js
-selection
-    .call(zoom)
-    .on("wheel.zoom", null);
-```
-
-Alternatively, use [*zoom*.filter](#zoom_filter) for greater control over which events can initiate zoom gestures.
-
-Applying the zoom behavior also sets the [-webkit-tap-highlight-color](https://developer.apple.com/library/mac/documentation/AppleApplications/Reference/SafariWebContent/AdjustingtheTextSize/AdjustingtheTextSize.html#//apple_ref/doc/uid/TP40006510-SW5) style to transparent, disabling the tap highlight on iOS. If you want a different tap highlight color, remove or re-apply this style after applying the drag behavior.
-
-<a href="#zoom_transform" name="zoom_transform">#</a> <i>zoom</i>.<b>transform</b>(<i>selection</i>, <i>transform</i>[, <i>point</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js), [Examples](https://observablehq.com/collection/@d3/d3-zoom)
-
-If *selection* is a selection, sets the [current zoom transform](#zoomTransform) of the selected elements to the specified *transform*, instantaneously emitting start, zoom and end [events](#zoom-events). If *selection* is a transition, defines a “zoom” tween to the specified *transform* using [d3.interpolateZoom](https://github.com/d3/d3-interpolate/blob/master/README.md#interpolateZoom), emitting a start event when the transition starts, zoom events for each tick of the transition, and then an end event when the transition ends (or is interrupted). The transition will attempt to minimize the visual movement around the specified *point*; if the *point* is not specified, it defaults to the center of the viewport [extent](#zoom_extent). The *transform* may be specified either as a [zoom transform](#zoom-transforms) or as a function that returns a zoom transform; similarly, the *point* may be specified either as a two-element array [*x*, *y*] or a function that returns such an array. If a function, it is invoked for each selected element, being passed the current event (`event`) and datum `d`, with the `this` context as the current DOM element.
-
-This function is typically not invoked directly, and is instead invoked via [*selection*.call](https://github.com/d3/d3-selection#selection_call) or [*transition*.call](https://github.com/d3/d3-transition#transition_call). For example, to reset the zoom transform to the [identity transform](#zoomIdentity) instantaneously:
-
-```js
-selection.call(zoom.transform, d3.zoomIdentity);
-```
-
-To smoothly reset the zoom transform to the identity transform over 750 milliseconds:
-
-```js
-selection.transition().duration(750).call(zoom.transform, d3.zoomIdentity);
-```
-
-This method requires that you specify the new zoom transform completely, and does not enforce the defined [scale extent](#zoom_scaleExtent) and [translate extent](#zoom_translateExtent), if any. To derive a new transform from the existing transform, and to enforce the scale and translate extents, see the convenience methods [*zoom*.translateBy](#zoom_translateBy), [*zoom*.scaleBy](#zoom_scaleBy) and [*zoom*.scaleTo](#zoom_scaleTo).
-
-<a href="#zoom_translateBy" name="zoom_translateBy">#</a> <i>zoom</i>.<b>translateBy</b>(<i>selection</i>, <i>x</i>, <i>y</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *selection* is a selection, [translates](#transform_translate) the [current zoom transform](#zoomTransform) of the selected elements by *x* and *y*, such that the new *t<sub>x1</sub>* = *t<sub>x0</sub>* + *kx* and *t<sub>y1</sub>* = *t<sub>y0</sub>* + *ky*. If *selection* is a transition, defines a “zoom” tween translating the current transform. This method is a convenience method for [*zoom*.transform](#zoom_transform). The *x* and *y* translation amounts may be specified either as numbers or as functions that return numbers. If a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element.
-
-<a href="#zoom_translateTo" name="zoom_translateTo">#</a> <i>zoom</i>.<b>translateTo</b>(<i>selection</i>, <i>x</i>, <i>y</i>[, <i>p</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *selection* is a selection, [translates](#transform_translate) the [current zoom transform](#zoomTransform) of the selected elements such that the given position ⟨*x*,*y*⟩ appears at given point *p*. The new *t<sub>x</sub>* = *p<sub>x</sub>* - *kx* and *t<sub>y</sub>* = *p<sub>y</sub>* - *ky*. If *p* is not specified, it defaults to the center of the viewport [extent](#zoom_extent). If *selection* is a transition, defines a “zoom” tween translating the current transform. This method is a convenience method for [*zoom*.transform](#zoom_transform). The *x* and *y* coordinates may be specified either as numbers or as functions that returns numbers; similarly the *p* point may be specified either as a two-element array [*p<sub>x</sub>*,*p<sub>y</sub>*] or a function. If a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element.
-
-<a href="#zoom_scaleBy" name="zoom_scaleBy">#</a> <i>zoom</i>.<b>scaleBy</b>(<i>selection</i>, <i>k</i>[, <i>p</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *selection* is a selection, [scales](#transform_scale) the [current zoom transform](#zoomTransform) of the selected elements by *k*, such that the new *k₁* = *k₀k*. The reference point *p* does move. If *p* is not specified, it defaults to the center of the viewport [extent](#zoom_extent). If *selection* is a transition, defines a “zoom” tween translating the current transform. This method is a convenience method for [*zoom*.transform](#zoom_transform). The *k* scale factor may be specified either as a number or a function that returns a number; similarly the *p* point may be specified either as a two-element array [*p<sub>x</sub>*,*p<sub>y</sub>*] or a function. If a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element.
-
-<a href="#zoom_scaleTo" name="zoom_scaleTo">#</a> <i>zoom</i>.<b>scaleTo</b>(<i>selection</i>, <i>k</i>[, <i>p</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *selection* is a selection, [scales](#transform_scale) the [current zoom transform](#zoomTransform) of the selected elements to *k*, such that the new *k₁* = *k*. The reference point *p* does move. If *p* is not specified, it defaults to the center of the viewport [extent](#zoom_extent). If *selection* is a transition, defines a “zoom” tween translating the current transform. This method is a convenience method for [*zoom*.transform](#zoom_transform). The *k* scale factor may be specified either as a number or a function that returns a number; similarly the *p* point may be specified either as a two-element array [*p<sub>x</sub>*,*p<sub>y</sub>*] or a function. If a function, it is invoked for each selected element, being passed the current datum `d` and index `i`, with the `this` context as the current DOM element.
-
-<a href="#zoom_constrain" name="zoom_constrain">#</a> <i>zoom</i>.<b>constrain</b>([<i>constrain</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *constrain* is specified, sets the transform constraint function to the specified function and returns the zoom behavior. If *constrain* is not specified, returns the current constraint function, which defaults to:
-
-```js
-function constrain(transform, extent, translateExtent) {
-  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
-      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
-      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
-      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
-  return transform.translate(
-    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
-    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
-  );
-}
-```
-
-The constraint function must return a [*transform*](#zoom-transforms) given the current *transform*, [viewport extent](#zoom_extent) and [translate extent](#zoom_translateExtent). The default implementation attempts to ensure that the viewport extent does not go outside the translate extent.
-
-<a href="#zoom_filter" name="zoom_filter">#</a> <i>zoom</i>.<b>filter</b>([<i>filter</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *filter* is specified, sets the filter to the specified function and returns the zoom behavior. If *filter* is not specified, returns the current filter, which defaults to:
-
-```js
-function filter(event) {
-  return (!event.ctrlKey || event.type === 'wheel') && !event.button;
-}
-```
-
-The filter is passed the current event (`event`) and datum `d`, with the `this` context as the current DOM element. If the filter returns falsey, the initiating event is ignored and no zoom gestures are started. Thus, the filter determines which input events are ignored. The default filter ignores mousedown events on secondary buttons, since those buttons are typically intended for other purposes, such as the context menu.
-
-<a href="#zoom_touchable" name="zoom_touchable">#</a> <i>zoom</i>.<b>touchable</b>([<i>touchable</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *touchable* is specified, sets the touch support detector to the specified function and returns the zoom behavior. If *touchable* is not specified, returns the current touch support detector, which defaults to:
-
-```js
-function touchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-```
-
-Touch event listeners are only registered if the detector returns truthy for the corresponding element when the zoom behavior is [applied](#_zoom). The default detector works well for most browsers that are capable of touch input, but not all; Chrome’s mobile device emulator, for example, fails detection.
-
-<a href="#zoom_wheelDelta" name="zoom_wheelDelta">#</a> <i>zoom</i>.<b>wheelDelta</b>([<i>delta</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *delta* is specified, sets the wheel delta function to the specified function and returns the zoom behavior. If *delta* is not specified, returns the current wheel delta function, which defaults to:
-
-```js
-function wheelDelta(event) {
-  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);
-}
-```
-
-The value *Δ* returned by the wheel delta function determines the amount of scaling applied in response to a [WheelEvent](https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent). The scale factor [*transform*.k](#zoomTransform) is multiplied by 2<sup>*Δ*</sup>; for example, a *Δ* of +1 doubles the scale factor, *Δ* of -1 halves the scale factor.
-
-<a href="#zoom_extent" name="zoom_extent">#</a> <i>zoom</i>.<b>extent</b>([<i>extent</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *extent* is specified, sets the viewport extent to the specified array of points [[*x0*, *y0*], [*x1*, *y1*]], where [*x0*, *y0*] is the top-left corner of the viewport and [*x1*, *y1*] is the bottom-right corner of the viewport, and returns this zoom behavior. The *extent* may also be specified as a function which returns such an array; if a function, it is invoked for each selected element, being passed the current datum `d`, with the `this` context as the current DOM element.
-
-If *extent* is not specified, returns the current extent accessor, which defaults to [[0, 0], [*width*, *height*]] where *width* is the [client width](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth) of the element and *height* is its [client height](https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight); for SVG elements, the nearest ancestor SVG element’s viewBox, or [width](https://www.w3.org/TR/SVG/struct.html#SVGElementWidthAttribute) and [height](https://www.w3.org/TR/SVG/struct.html#SVGElementHeightAttribute) attributes, are used. Alternatively, consider using [*element*.getBoundingClientRect](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).
-
-The viewport extent affects several functions: the center of the viewport remains fixed during changes by [*zoom*.scaleBy](#zoom_scaleBy) and [*zoom*.scaleTo](#zoom_scaleTo); the viewport center and dimensions affect the path chosen by [d3.interpolateZoom](https://github.com/d3/d3-interpolate#interpolateZoom); and the viewport extent is needed to enforce the optional [translate extent](#zoom_translateExtent).
-
-<a href="#zoom_scaleExtent" name="zoom_scaleExtent">#</a> <i>zoom</i>.<b>scaleExtent</b>([<i>extent</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *extent* is specified, sets the scale extent to the specified array of numbers [*k0*, *k1*] where *k0* is the minimum allowed scale factor and *k1* is the maximum allowed scale factor, and returns this zoom behavior. If *extent* is not specified, returns the current scale extent, which defaults to [0, ∞]. The scale extent restricts zooming in and out. It is enforced on interaction and when using [*zoom*.scaleBy](#zoom_scaleBy), [*zoom*.scaleTo](#zoom_scaleTo) and [*zoom*.translateBy](#zoom_translateBy); however, it is not enforced when using [*zoom*.transform](#zoom_transform) to set the transform explicitly.
-
-If the user tries to zoom by wheeling when already at the corresponding limit of the scale extent, the wheel events will be ignored and not initiate a zoom gesture. This allows the user to scroll down past a zoomable area after zooming in, or to scroll up after zooming out. If you would prefer to always prevent scrolling on wheel input regardless of the scale extent, register a wheel event listener to prevent the browser default behavior:
-
-```js
-selection
-    .call(zoom)
-    .on("wheel", event => event.preventDefault());
-```
-
-<a href="#zoom_translateExtent" name="zoom_translateExtent">#</a> <i>zoom</i>.<b>translateExtent</b>([<i>extent</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *extent* is specified, sets the translate extent to the specified array of points [[*x0*, *y0*], [*x1*, *y1*]], where [*x0*, *y0*] is the top-left corner of the world and [*x1*, *y1*] is the bottom-right corner of the world, and returns this zoom behavior. If *extent* is not specified, returns the current translate extent, which defaults to [[-∞, -∞], [+∞, +∞]]. The translate extent restricts panning, and may cause translation on zoom out. It is enforced on interaction and when using [*zoom*.scaleBy](#zoom_scaleBy), [*zoom*.scaleTo](#zoom_scaleTo) and [*zoom*.translateBy](#zoom_translateBy); however, it is not enforced when using [*zoom*.transform](#zoom_transform) to set the transform explicitly.
-
-<a href="#zoom_clickDistance" name="zoom_clickDistance">#</a> <i>zoom</i>.<b>clickDistance</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *distance* is specified, sets the maximum distance that the mouse can move between mousedown and mouseup that will trigger a subsequent click event. If at any point between mousedown and mouseup the mouse is greater than or equal to *distance* from its position on mousedown, the click event following mouseup will be suppressed. If *distance* is not specified, returns the current distance threshold, which defaults to zero. The distance threshold is measured in client coordinates ([*event*.clientX](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX) and [*event*.clientY](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY)).
-
-<a href="#zoom_tapDistance" name="zoom_tapDistance">#</a> <i>zoom</i>.<b>tapDistance</b>([<i>distance</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *distance* is specified, sets the maximum distance that a double-tap gesture can move between first touchstart and second touchend that will trigger a subsequent double-click event. If *distance* is not specified, returns the current distance threshold, which defaults to 10. The distance threshold is measured in client coordinates ([*event*.clientX](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX) and [*event*.clientY](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY)).
-
-<a href="#zoom_duration" name="zoom_duration">#</a> <i>zoom</i>.<b>duration</b>([<i>duration</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *duration* is specified, sets the duration for zoom transitions on double-click and double-tap to the specified number of milliseconds and returns the zoom behavior. If *duration* is not specified, returns the current duration, which defaults to 250 milliseconds. If the duration is not greater than zero, double-click and -tap trigger instantaneous changes to the zoom transform rather than initiating smooth transitions.
-
-To disable double-click and double-tap transitions, you can remove the zoom behavior’s dblclick event listener after applying the zoom behavior to the selection:
-
-```js
-selection
-    .call(zoom)
-    .on("dblclick.zoom", null);
-```
-
-<a href="#zoom_interpolate" name="zoom_interpolate">#</a> <i>zoom</i>.<b>interpolate</b>([<i>interpolate</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *interpolate* is specified, sets the interpolation factory for zoom transitions to the specified function. If *interpolate* is not specified, returns the current interpolation factory, which defaults to [d3.interpolateZoom](https://github.com/d3/d3-interpolate#interpolateZoom) to implement smooth zooming. To apply direct interpolation between two views, try [d3.interpolate](https://github.com/d3/d3-interpolate#interpolate) instead.
-
-<a href="#zoom_on" name="zoom_on">#</a> <i>zoom</i>.<b>on</b>(<i>typenames</i>[, <i>listener</i>]) · [Source](https://github.com/d3/d3-zoom/blob/master/src/zoom.js)
-
-If *listener* is specified, sets the event *listener* for the specified *typenames* and returns the zoom behavior. If an event listener was already registered for the same type and name, the existing listener is removed before the new listener is added. If *listener* is null, removes the current event listeners for the specified *typenames*, if any. If *listener* is not specified, returns the first currently-assigned listener matching the specified *typenames*, if any. When a specified event is dispatched, each *listener* will be invoked with the same context and arguments as [*selection*.on](https://github.com/d3/d3-selection#selection_on) listeners: the current event (`event`) and datum `d`, with the `this` context as the current DOM element.
-
-The *typenames* is a string containing one or more *typename* separated by whitespace. Each *typename* is a *type*, optionally followed by a period (`.`) and a *name*, such as `zoom.foo` and `zoom.bar`; the name allows multiple listeners to be registered for the same *type*. The *type* must be one of the following:
-
-* `start` - after zooming begins (such as on mousedown).
-* `zoom` - after a change to the zoom transform (such as on mousemove).
-* `end` - after zooming ends (such as on mouseup ).
-
-See [*dispatch*.on](https://github.com/d3/d3-dispatch#dispatch_on) for more.
-
-### Zoom Events
-
-When a [zoom event listener](#zoom_on) is invoked, it receives the current zoom event as a first argument. The *event* object exposes several fields:
-
-* *event*.target - the associated [zoom behavior](#zoom).
-* *event*.type - the string “start”, “zoom” or “end”; see [*zoom*.on](#zoom_on).
-* *event*.transform - the current [zoom transform](#zoom-transforms).
-* *event*.sourceEvent - the underlying input event, such as mousemove or touchmove.
-
-### Zoom Transforms
-
-The zoom behavior stores the zoom state on the element to which the zoom behavior was [applied](#_zoom), not on the zoom behavior itself. This is because the zoom behavior can be applied to many elements simultaneously, and each element can be zoomed independently. The zoom state can change either on user interaction or programmatically via [*zoom*.transform](#zoom_transform).
-
-To retrieve the zoom state, use *event*.transform on the current [zoom event](#zoom-events) within a zoom event listener (see [*zoom*.on](#zoom_on)), or use [d3.zoomTransform](#zoomTransform) for a given node. The latter is particularly useful for modifying the zoom state programmatically, say to implement buttons for zooming in and out.
-
-<a href="#zoomTransform" name="zoomTransform">#</a> d3.<b>zoomTransform</b>(<i>node</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the current transform for the specified *node*. Note that *node* should typically be a DOM element, not a *selection*. (A selection may consist of multiple nodes, in different states, and this function only returns a single transform.) If you have a selection, call [*selection*.node](https://github.com/d3/d3-selection#selection_node) first:
-
-```js
-var transform = d3.zoomTransform(selection.node());
-```
-
-In the context of an [event listener](https://github.com/d3/d3-selection#selection_on), the *node* is typically the element that received the input event (which should be equal to [*event*.transform](#zoom-events)), *this*:
-
-```js
-var transform = d3.zoomTransform(this);
-```
-
-Internally, an element’s transform is stored as *element*.\_\_zoom; however, you should use this method rather than accessing it directly. If the given *node* has no defined transform, returns the transform of the closest ancestor, or if none exists, the [identity transformation](#zoomIdentity). The returned transform represents a two-dimensional [transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations) of the form:
-
-*k* 0 *t<sub>x</sub>*
-<br>0 *k* *t<sub>y</sub>*
-<br>0 0 1
-
-(This matrix is capable of representing only scale and translation; a future release may also allow rotation, though this would probably not be a backwards-compatible change.) The position ⟨*x*,*y*⟩ is transformed to ⟨*xk* + *t<sub>x</sub>*,*yk* + *t<sub>y</sub>*⟩. The transform object exposes the following properties:
-
-* *transform*.x - the translation amount *t<sub>x</sub>* along the *x*-axis.
-* *transform*.y - the translation amount *t<sub>y</sub>* along the *y*-axis.
-* *transform*.k - the scale factor *k*.
-
-These properties should be considered read-only; instead of mutating a transform, use [*transform*.scale](#transform_scale) and [*transform*.translate](#transform_translate) to derive a new transform. Also see [*zoom*.scaleBy](#zoom_scaleBy), [*zoom*.scaleTo](#zoom_scaleTo) and [*zoom*.translateBy](#zoom_translateBy) for convenience methods on the zoom behavior. To create a transform with a given *k*, *t<sub>x</sub>*, and *t<sub>y</sub>*:
-
-```js
-var t = d3.zoomIdentity.translate(x, y).scale(k);
-```
-
-To apply the transformation to a [Canvas 2D context](https://www.w3.org/TR/2dcontext/), use [*context*.translate](https://www.w3.org/TR/2dcontext/#dom-context-2d-translate) followed by [*context*.scale](https://www.w3.org/TR/2dcontext/#dom-context-2d-scale):
-
-```js
-context.translate(transform.x, transform.y);
-context.scale(transform.k, transform.k);
-```
-
-Similarly, to apply the transformation to HTML elements via [CSS](https://www.w3.org/TR/css-transforms-1/):
-
-```js
-div.style("transform", "translate(" + transform.x + "px," + transform.y + "px) scale(" + transform.k + ")");
-div.style("transform-origin", "0 0");
-```
-
-To apply the transformation to [SVG](https://www.w3.org/TR/SVG/coords.html#TransformAttribute):
-
-```js
-g.attr("transform", "translate(" + transform.x + "," + transform.y + ") scale(" + transform.k + ")");
-```
-
-Or more simply, taking advantage of [*transform*.toString](#transform_toString):
-
-```js
-g.attr("transform", transform);
-```
-
-Note that the order of transformations matters! The translate must be applied before the scale.
-
-<a href="#transform_scale" name="transform_scale">#</a> <i>transform</i>.<b>scale</b>(<i>k</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns a transform whose scale *k₁* is equal to *k₀k*, where *k₀* is this transform’s scale.
-
-<a href="#transform_translate" name="transform_translate">#</a> <i>transform</i>.<b>translate</b>(<i>x</i>, <i>y</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns a transform whose translation *t<sub>x1</sub>* and *t<sub>y1</sub>* is equal to *t<sub>x0</sub>* + *t<sub>k</sub> x* and *t<sub>y0</sub>* + *t<sub>k</sub> y*, where *t<sub>x0</sub>* and *t<sub>y0</sub>* is this transform’s translation and *t<sub>k</sub>* is this transform’s scale.
-
-<a href="#transform_apply" name="transform_apply">#</a> <i>transform</i>.<b>apply</b>(<i>point</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the transformation of the specified *point* which is a two-element array of numbers [*x*, *y*]. The returned point is equal to [*xk* + *t<sub>x</sub>*, *yk* + *t<sub>y</sub>*].
-
-<a href="#transform_applyX" name="transform_applyX">#</a> <i>transform</i>.<b>applyX</b>(<i>x</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the transformation of the specified *x*-coordinate, *xk* + *t<sub>x</sub>*.
-
-<a href="#transform_applyY" name="transform_applyY">#</a> <i>transform</i>.<b>applyY</b>(<i>y</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the transformation of the specified *y*-coordinate, *yk* + *t<sub>y</sub>*.
-
-<a href="#transform_invert" name="transform_invert">#</a> <i>transform</i>.<b>invert</b>(<i>point</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the inverse transformation of the specified *point* which is a two-element array of numbers [*x*, *y*]. The returned point is equal to [(*x* - *t<sub>x</sub>*) / *k*, (*y* - *t<sub>y</sub>*) / *k*].
-
-<a href="#transform_invertX" name="transform_invertX">#</a> <i>transform</i>.<b>invertX</b>(<i>x</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the inverse transformation of the specified *x*-coordinate, (*x* - *t<sub>x</sub>*) / *k*.
-
-<a href="#transform_invertY" name="transform_invertY">#</a> <i>transform</i>.<b>invertY</b>(<i>y</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns the inverse transformation of the specified *y*-coordinate, (*y* - *t<sub>y</sub>*) / *k*.
-
-<a href="#transform_rescaleX" name="transform_rescaleX">#</a> <i>transform</i>.<b>rescaleX</b>(<i>x</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns a [copy](https://github.com/d3/d3-scale#continuous_copy) of the [continuous scale](https://github.com/d3/d3-scale#continuous-scales) *x* whose [domain](https://github.com/d3/d3-scale#continuous_domain) is transformed. This is implemented by first applying the [inverse *x*-transform](#transform_invertX) on the scale’s [range](https://github.com/d3/d3-scale#continuous_range), and then applying the [inverse scale](https://github.com/d3/d3-scale#continuous_invert) to compute the corresponding domain:
-
-```js
-function rescaleX(x) {
-  var range = x.range().map(transform.invertX, transform),
-      domain = range.map(x.invert, x);
-  return x.copy().domain(domain);
-}
-```
-
-The scale *x* must use [d3.interpolateNumber](https://github.com/d3/d3-interpolate#interpolateNumber); do not use [*continuous*.rangeRound](https://github.com/d3/d3-scale#continuous_rangeRound) as this reduces the accuracy of [*continuous*.invert](https://github.com/d3/d3-scale#continuous_invert) and can lead to an inaccurate rescaled domain. This method does not modify the input scale *x*; *x* thus represents the untransformed scale, while the returned scale represents its transformed view.
-
-<a href="#transform_rescaleY" name="transform_rescaleY">#</a> <i>transform</i>.<b>rescaleY</b>(<i>y</i>) · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns a [copy](https://github.com/d3/d3-scale#continuous_copy) of the [continuous scale](https://github.com/d3/d3-scale#continuous-scales) *y* whose [domain](https://github.com/d3/d3-scale#continuous_domain) is transformed. This is implemented by first applying the [inverse *y*-transform](#transform_invertY) on the scale’s [range](https://github.com/d3/d3-scale#continuous_range), and then applying the [inverse scale](https://github.com/d3/d3-scale#continuous_invert) to compute the corresponding domain:
-
-```js
-function rescaleY(y) {
-  var range = y.range().map(transform.invertY, transform),
-      domain = range.map(y.invert, y);
-  return y.copy().domain(domain);
-}
-```
-
-The scale *y* must use [d3.interpolateNumber](https://github.com/d3/d3-interpolate#interpolateNumber); do not use [*continuous*.rangeRound](https://github.com/d3/d3-scale#continuous_rangeRound) as this reduces the accuracy of [*continuous*.invert](https://github.com/d3/d3-scale#continuous_invert) and can lead to an inaccurate rescaled domain. This method does not modify the input scale *y*; *y* thus represents the untransformed scale, while the returned scale represents its transformed view.
-
-<a href="#transform_toString" name="transform_toString">#</a> <i>transform</i>.<b>toString</b>() · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-Returns a string representing the [SVG transform](https://www.w3.org/TR/SVG/coords.html#TransformAttribute) corresponding to this transform. Implemented as:
-
-```js
-function toString() {
-  return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
-}
-```
-
-<a href="#zoomIdentity" name="zoomIdentity">#</a> d3.<b>zoomIdentity</b> · [Source](https://github.com/d3/d3-zoom/blob/master/src/transform.js)
-
-The identity transform, where *k* = 1, *t<sub>x</sub>* = *t<sub>y</sub>* = 0.
Index: de_modules/d3-zoom/dist/d3-zoom.js
===================================================================
--- node_modules/d3-zoom/dist/d3-zoom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,531 +1,0 @@
-// https://d3js.org/d3-zoom/ v3.0.0 Copyright 2010-2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-dispatch'), require('d3-drag'), require('d3-interpolate'), require('d3-selection'), require('d3-transition')) :
-typeof define === 'function' && define.amd ? define(['exports', 'd3-dispatch', 'd3-drag', 'd3-interpolate', 'd3-selection', 'd3-transition'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3, global.d3, global.d3));
-}(this, (function (exports, d3Dispatch, d3Drag, d3Interpolate, d3Selection, d3Transition) { 'use strict';
-
-var constant = x => () => x;
-
-function ZoomEvent(type, {
-  sourceEvent,
-  target,
-  transform,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    transform: {value: transform, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-function Transform(k, x, y) {
-  this.k = k;
-  this.x = x;
-  this.y = y;
-}
-
-Transform.prototype = {
-  constructor: Transform,
-  scale: function(k) {
-    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
-  },
-  translate: function(x, y) {
-    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
-  },
-  apply: function(point) {
-    return [point[0] * this.k + this.x, point[1] * this.k + this.y];
-  },
-  applyX: function(x) {
-    return x * this.k + this.x;
-  },
-  applyY: function(y) {
-    return y * this.k + this.y;
-  },
-  invert: function(location) {
-    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
-  },
-  invertX: function(x) {
-    return (x - this.x) / this.k;
-  },
-  invertY: function(y) {
-    return (y - this.y) / this.k;
-  },
-  rescaleX: function(x) {
-    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
-  },
-  rescaleY: function(y) {
-    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
-  },
-  toString: function() {
-    return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
-  }
-};
-
-var identity = new Transform(1, 0, 0);
-
-transform.prototype = Transform.prototype;
-
-function transform(node) {
-  while (!node.__zoom) if (!(node = node.parentNode)) return identity;
-  return node.__zoom;
-}
-
-function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-// Ignore right-click, since that should open the context menu.
-// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event
-function defaultFilter(event) {
-  return (!event.ctrlKey || event.type === 'wheel') && !event.button;
-}
-
-function defaultExtent() {
-  var e = this;
-  if (e instanceof SVGElement) {
-    e = e.ownerSVGElement || e;
-    if (e.hasAttribute("viewBox")) {
-      e = e.viewBox.baseVal;
-      return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
-    }
-    return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
-  }
-  return [[0, 0], [e.clientWidth, e.clientHeight]];
-}
-
-function defaultTransform() {
-  return this.__zoom || identity;
-}
-
-function defaultWheelDelta(event) {
-  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-function defaultConstrain(transform, extent, translateExtent) {
-  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
-      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
-      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
-      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
-  return transform.translate(
-    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
-    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
-  );
-}
-
-function zoom() {
-  var filter = defaultFilter,
-      extent = defaultExtent,
-      constrain = defaultConstrain,
-      wheelDelta = defaultWheelDelta,
-      touchable = defaultTouchable,
-      scaleExtent = [0, Infinity],
-      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
-      duration = 250,
-      interpolate = d3Interpolate.interpolateZoom,
-      listeners = d3Dispatch.dispatch("start", "zoom", "end"),
-      touchstarting,
-      touchfirst,
-      touchending,
-      touchDelay = 500,
-      wheelDelay = 150,
-      clickDistance2 = 0,
-      tapDistance = 10;
-
-  function zoom(selection) {
-    selection
-        .property("__zoom", defaultTransform)
-        .on("wheel.zoom", wheeled, {passive: false})
-        .on("mousedown.zoom", mousedowned)
-        .on("dblclick.zoom", dblclicked)
-      .filter(touchable)
-        .on("touchstart.zoom", touchstarted)
-        .on("touchmove.zoom", touchmoved)
-        .on("touchend.zoom touchcancel.zoom", touchended)
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  zoom.transform = function(collection, transform, point, event) {
-    var selection = collection.selection ? collection.selection() : collection;
-    selection.property("__zoom", defaultTransform);
-    if (collection !== selection) {
-      schedule(collection, transform, point, event);
-    } else {
-      selection.interrupt().each(function() {
-        gesture(this, arguments)
-          .event(event)
-          .start()
-          .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
-          .end();
-      });
-    }
-  };
-
-  zoom.scaleBy = function(selection, k, p, event) {
-    zoom.scaleTo(selection, function() {
-      var k0 = this.__zoom.k,
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return k0 * k1;
-    }, p, event);
-  };
-
-  zoom.scaleTo = function(selection, k, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t0 = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
-          p1 = t0.invert(p0),
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
-    }, p, event);
-  };
-
-  zoom.translateBy = function(selection, x, y, event) {
-    zoom.transform(selection, function() {
-      return constrain(this.__zoom.translate(
-        typeof x === "function" ? x.apply(this, arguments) : x,
-        typeof y === "function" ? y.apply(this, arguments) : y
-      ), extent.apply(this, arguments), translateExtent);
-    }, null, event);
-  };
-
-  zoom.translateTo = function(selection, x, y, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
-      return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(
-        typeof x === "function" ? -x.apply(this, arguments) : -x,
-        typeof y === "function" ? -y.apply(this, arguments) : -y
-      ), e, translateExtent);
-    }, p, event);
-  };
-
-  function scale(transform, k) {
-    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
-    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
-  }
-
-  function translate(transform, p0, p1) {
-    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
-    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
-  }
-
-  function centroid(extent) {
-    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
-  }
-
-  function schedule(transition, transform, point, event) {
-    transition
-        .on("start.zoom", function() { gesture(this, arguments).event(event).start(); })
-        .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); })
-        .tween("zoom", function() {
-          var that = this,
-              args = arguments,
-              g = gesture(that, args).event(event),
-              e = extent.apply(that, args),
-              p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
-              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
-              a = that.__zoom,
-              b = typeof transform === "function" ? transform.apply(that, args) : transform,
-              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
-          return function(t) {
-            if (t === 1) t = b; // Avoid rounding error on end.
-            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
-            g.zoom(null, t);
-          };
-        });
-  }
-
-  function gesture(that, args, clean) {
-    return (!clean && that.__zooming) || new Gesture(that, args);
-  }
-
-  function Gesture(that, args) {
-    this.that = that;
-    this.args = args;
-    this.active = 0;
-    this.sourceEvent = null;
-    this.extent = extent.apply(that, args);
-    this.taps = 0;
-  }
-
-  Gesture.prototype = {
-    event: function(event) {
-      if (event) this.sourceEvent = event;
-      return this;
-    },
-    start: function() {
-      if (++this.active === 1) {
-        this.that.__zooming = this;
-        this.emit("start");
-      }
-      return this;
-    },
-    zoom: function(key, transform) {
-      if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
-      if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
-      if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
-      this.that.__zoom = transform;
-      this.emit("zoom");
-      return this;
-    },
-    end: function() {
-      if (--this.active === 0) {
-        delete this.that.__zooming;
-        this.emit("end");
-      }
-      return this;
-    },
-    emit: function(type) {
-      var d = d3Selection.select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new ZoomEvent(type, {
-          sourceEvent: this.sourceEvent,
-          target: zoom,
-          type,
-          transform: this.that.__zoom,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function wheeled(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var g = gesture(this, args).event(event),
-        t = this.__zoom,
-        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
-        p = d3Selection.pointer(event);
-
-    // If the mouse is in the same location as before, reuse it.
-    // If there were recent wheel events, reset the wheel idle timeout.
-    if (g.wheel) {
-      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
-        g.mouse[1] = t.invert(g.mouse[0] = p);
-      }
-      clearTimeout(g.wheel);
-    }
-
-    // If this wheel event won’t trigger a transform change, ignore it.
-    else if (t.k === k) return;
-
-    // Otherwise, capture the mouse point and location at the start.
-    else {
-      g.mouse = [p, t.invert(p)];
-      d3Transition.interrupt(this);
-      g.start();
-    }
-
-    noevent(event);
-    g.wheel = setTimeout(wheelidled, wheelDelay);
-    g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
-
-    function wheelidled() {
-      g.wheel = null;
-      g.end();
-    }
-  }
-
-  function mousedowned(event, ...args) {
-    if (touchending || !filter.apply(this, arguments)) return;
-    var currentTarget = event.currentTarget,
-        g = gesture(this, args, true).event(event),
-        v = d3Selection.select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
-        p = d3Selection.pointer(event, currentTarget),
-        x0 = event.clientX,
-        y0 = event.clientY;
-
-    d3Drag.dragDisable(event.view);
-    nopropagation(event);
-    g.mouse = [p, this.__zoom.invert(p)];
-    d3Transition.interrupt(this);
-    g.start();
-
-    function mousemoved(event) {
-      noevent(event);
-      if (!g.moved) {
-        var dx = event.clientX - x0, dy = event.clientY - y0;
-        g.moved = dx * dx + dy * dy > clickDistance2;
-      }
-      g.event(event)
-       .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = d3Selection.pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));
-    }
-
-    function mouseupped(event) {
-      v.on("mousemove.zoom mouseup.zoom", null);
-      d3Drag.dragEnable(event.view, g.moved);
-      noevent(event);
-      g.event(event).end();
-    }
-  }
-
-  function dblclicked(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var t0 = this.__zoom,
-        p0 = d3Selection.pointer(event.changedTouches ? event.changedTouches[0] : event, this),
-        p1 = t0.invert(p0),
-        k1 = t0.k * (event.shiftKey ? 0.5 : 2),
-        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
-
-    noevent(event);
-    if (duration > 0) d3Selection.select(this).transition().duration(duration).call(schedule, t1, p0, event);
-    else d3Selection.select(this).call(zoom.transform, t1, p0, event);
-  }
-
-  function touchstarted(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var touches = event.touches,
-        n = touches.length,
-        g = gesture(this, args, event.changedTouches.length === n).event(event),
-        started, i, t, p;
-
-    nopropagation(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = d3Selection.pointer(t, this);
-      p = [p, this.__zoom.invert(p), t.identifier];
-      if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
-      else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
-    }
-
-    if (touchstarting) touchstarting = clearTimeout(touchstarting);
-
-    if (started) {
-      if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
-      d3Transition.interrupt(this);
-      g.start();
-    }
-  }
-
-  function touchmoved(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t, p, l;
-
-    noevent(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = d3Selection.pointer(t, this);
-      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
-      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
-    }
-    t = g.that.__zoom;
-    if (g.touch1) {
-      var p0 = g.touch0[0], l0 = g.touch0[1],
-          p1 = g.touch1[0], l1 = g.touch1[1],
-          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
-          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
-      t = scale(t, Math.sqrt(dp / dl));
-      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
-      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
-    }
-    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
-    else return;
-
-    g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
-  }
-
-  function touchended(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t;
-
-    nopropagation(event);
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, touchDelay);
-    for (i = 0; i < n; ++i) {
-      t = touches[i];
-      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
-      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
-    }
-    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
-    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
-    else {
-      g.end();
-      // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
-      if (g.taps === 2) {
-        t = d3Selection.pointer(t, this);
-        if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
-          var p = d3Selection.select(this).on("dblclick.zoom");
-          if (p) p.apply(this, arguments);
-        }
-      }
-    }
-  }
-
-  zoom.wheelDelta = function(_) {
-    return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
-  };
-
-  zoom.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
-  };
-
-  zoom.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
-  };
-
-  zoom.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
-  };
-
-  zoom.scaleExtent = function(_) {
-    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
-  };
-
-  zoom.translateExtent = function(_) {
-    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
-  };
-
-  zoom.constrain = function(_) {
-    return arguments.length ? (constrain = _, zoom) : constrain;
-  };
-
-  zoom.duration = function(_) {
-    return arguments.length ? (duration = +_, zoom) : duration;
-  };
-
-  zoom.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, zoom) : interpolate;
-  };
-
-  zoom.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? zoom : value;
-  };
-
-  zoom.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
-  };
-
-  zoom.tapDistance = function(_) {
-    return arguments.length ? (tapDistance = +_, zoom) : tapDistance;
-  };
-
-  return zoom;
-}
-
-exports.ZoomTransform = Transform;
-exports.zoom = zoom;
-exports.zoomIdentity = identity;
-exports.zoomTransform = transform;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/d3-zoom/dist/d3-zoom.min.js
===================================================================
--- node_modules/d3-zoom/dist/d3-zoom.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org/d3-zoom/ v3.0.0 Copyright 2010-2021 Mike Bostock
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-drag","d3-interpolate","d3-selection","d3-transition"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,(function(t,e,n,o,i,r){"use strict";var u=t=>()=>t;function s(t,{sourceEvent:e,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function h(t,e,n){this.k=t,this.x=e,this.y=n}h.prototype={constructor:h,scale:function(t){return 1===t?this:new h(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new h(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var a=new h(1,0,0);function c(t){for(;!t.__zoom;)if(!(t=t.parentNode))return a;return t.__zoom}function l(t){t.stopImmediatePropagation()}function f(t){t.preventDefault(),t.stopImmediatePropagation()}function p(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function m(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function v(){return this.__zoom||a}function d(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function y(){return navigator.maxTouchPoints||"ontouchstart"in this}function g(t,e,n){var o=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],r=t.invertY(e[0][1])-n[0][1],u=t.invertY(e[1][1])-n[1][1];return t.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),u>r?(r+u)/2:Math.min(0,r)||Math.max(0,u))}c.prototype=h.prototype,t.ZoomTransform=h,t.zoom=function(){var t,c,z,_=p,x=m,k=g,w=d,b=y,T=[0,1/0],M=[[-1/0,-1/0],[1/0,1/0]],E=250,Y=o.interpolateZoom,X=e.dispatch("start","zoom","end"),q=500,D=0,P=10;function V(t){t.property("__zoom",v).on("wheel.zoom",O,{passive:!1}).on("mousedown.zoom",Z).on("dblclick.zoom",A).filter(b).on("touchstart.zoom",H).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",W).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function B(t,e){return(e=Math.max(T[0],Math.min(T[1],e)))===t.k?t:new h(e,t.x,t.y)}function j(t,e,n){var o=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return o===t.x&&i===t.y?t:new h(t.k,o,i)}function I(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function K(t,e,n,o){t.on("start.zoom",(function(){S(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){S(this,arguments).event(o).end()})).tween("zoom",(function(){var t=this,i=arguments,r=S(t,i).event(o),u=x.apply(t,i),s=null==n?I(u):"function"==typeof n?n.apply(t,i):n,a=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),c=t.__zoom,l="function"==typeof e?e.apply(t,i):e,f=Y(c.invert(s).concat(a/c.k),l.invert(s).concat(a/l.k));return function(t){if(1===t)t=l;else{var e=f(t),n=a/e[2];t=new h(n,s[0]-e[0]*n,s[1]-e[1]*n)}r.zoom(null,t)}}))}function S(t,e,n){return!n&&t.__zooming||new G(t,e)}function G(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=x.apply(t,e),this.taps=0}function O(t,...e){if(_.apply(this,arguments)){var n=S(this,e).event(t),o=this.__zoom,u=Math.max(T[0],Math.min(T[1],o.k*Math.pow(2,w.apply(this,arguments)))),s=i.pointer(t);if(n.wheel)n.mouse[0][0]===s[0]&&n.mouse[0][1]===s[1]||(n.mouse[1]=o.invert(n.mouse[0]=s)),clearTimeout(n.wheel);else{if(o.k===u)return;n.mouse=[s,o.invert(s)],r.interrupt(this),n.start()}f(t),n.wheel=setTimeout(h,150),n.zoom("mouse",k(j(B(o,u),n.mouse[0],n.mouse[1]),n.extent,M))}function h(){n.wheel=null,n.end()}}function Z(t,...e){if(!z&&_.apply(this,arguments)){var o=t.currentTarget,u=S(this,e,!0).event(t),s=i.select(t.view).on("mousemove.zoom",p,!0).on("mouseup.zoom",m,!0),h=i.pointer(t,o),a=t.clientX,c=t.clientY;n.dragDisable(t.view),l(t),u.mouse=[h,this.__zoom.invert(h)],r.interrupt(this),u.start()}function p(t){if(f(t),!u.moved){var e=t.clientX-a,n=t.clientY-c;u.moved=e*e+n*n>D}u.event(t).zoom("mouse",k(j(u.that.__zoom,u.mouse[0]=i.pointer(t,o),u.mouse[1]),u.extent,M))}function m(t){s.on("mousemove.zoom mouseup.zoom",null),n.dragEnable(t.view,u.moved),f(t),u.event(t).end()}}function A(t,...e){if(_.apply(this,arguments)){var n=this.__zoom,o=i.pointer(t.changedTouches?t.changedTouches[0]:t,this),r=n.invert(o),u=n.k*(t.shiftKey?.5:2),s=k(j(B(n,u),o,r),x.apply(this,e),M);f(t),E>0?i.select(this).transition().duration(E).call(K,s,o,t):i.select(this).call(V.transform,s,o,t)}}function H(e,...n){if(_.apply(this,arguments)){var o,u,s,h,a=e.touches,f=a.length,p=S(this,n,e.changedTouches.length===f).event(e);for(l(e),u=0;u<f;++u)s=a[u],h=[h=i.pointer(s,this),this.__zoom.invert(h),s.identifier],p.touch0?p.touch1||p.touch0[2]===h[2]||(p.touch1=h,p.taps=0):(p.touch0=h,o=!0,p.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(p.taps<2&&(c=h[0],t=setTimeout((function(){t=null}),q)),r.interrupt(this),p.start())}}function N(t,...e){if(this.__zooming){var n,o,r,u,s=S(this,e).event(t),h=t.changedTouches,a=h.length;for(f(t),n=0;n<a;++n)o=h[n],r=i.pointer(o,this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var c=s.touch0[0],l=s.touch0[1],p=s.touch1[0],m=s.touch1[1],v=(v=p[0]-c[0])*v+(v=p[1]-c[1])*v,d=(d=m[0]-l[0])*d+(d=m[1]-l[1])*d;o=B(o,Math.sqrt(v/d)),r=[(c[0]+p[0])/2,(c[1]+p[1])/2],u=[(l[0]+m[0])/2,(l[1]+m[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],u=s.touch0[1]}s.zoom("touch",k(j(o,r,u),s.extent,M))}}function W(t,...e){if(this.__zooming){var n,o,r=S(this,e).event(t),u=t.changedTouches,s=u.length;for(l(t),z&&clearTimeout(z),z=setTimeout((function(){z=null}),q),n=0;n<s;++n)o=u[n],r.touch0&&r.touch0[2]===o.identifier?delete r.touch0:r.touch1&&r.touch1[2]===o.identifier&&delete r.touch1;if(r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0)r.touch0[1]=this.__zoom.invert(r.touch0[0]);else if(r.end(),2===r.taps&&(o=i.pointer(o,this),Math.hypot(c[0]-o[0],c[1]-o[1])<P)){var h=i.select(this).on("dblclick.zoom");h&&h.apply(this,arguments)}}}return V.transform=function(t,e,n,o){var i=t.selection?t.selection():t;i.property("__zoom",v),t!==i?K(t,e,n,o):i.interrupt().each((function(){S(this,arguments).event(o).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},V.scaleBy=function(t,e,n,o){V.scaleTo(t,(function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n}),n,o)},V.scaleTo=function(t,e,n,o){V.transform(t,(function(){var t=x.apply(this,arguments),o=this.__zoom,i=null==n?I(t):"function"==typeof n?n.apply(this,arguments):n,r=o.invert(i),u="function"==typeof e?e.apply(this,arguments):e;return k(j(B(o,u),i,r),t,M)}),n,o)},V.translateBy=function(t,e,n,o){V.transform(t,(function(){return k(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),x.apply(this,arguments),M)}),null,o)},V.translateTo=function(t,e,n,o,i){V.transform(t,(function(){var t=x.apply(this,arguments),i=this.__zoom,r=null==o?I(t):"function"==typeof o?o.apply(this,arguments):o;return k(a.translate(r[0],r[1]).scale(i.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,M)}),o,i)},G.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=i.select(this.that).datum();X.call(t,this.that,new s(t,{sourceEvent:this.sourceEvent,target:V,type:t,transform:this.that.__zoom,dispatch:X}),e)}},V.wheelDelta=function(t){return arguments.length?(w="function"==typeof t?t:u(+t),V):w},V.filter=function(t){return arguments.length?(_="function"==typeof t?t:u(!!t),V):_},V.touchable=function(t){return arguments.length?(b="function"==typeof t?t:u(!!t),V):b},V.extent=function(t){return arguments.length?(x="function"==typeof t?t:u([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),V):x},V.scaleExtent=function(t){return arguments.length?(T[0]=+t[0],T[1]=+t[1],V):[T[0],T[1]]},V.translateExtent=function(t){return arguments.length?(M[0][0]=+t[0][0],M[1][0]=+t[1][0],M[0][1]=+t[0][1],M[1][1]=+t[1][1],V):[[M[0][0],M[0][1]],[M[1][0],M[1][1]]]},V.constrain=function(t){return arguments.length?(k=t,V):k},V.duration=function(t){return arguments.length?(E=+t,V):E},V.interpolate=function(t){return arguments.length?(Y=t,V):Y},V.on=function(){var t=X.on.apply(X,arguments);return t===X?V:t},V.clickDistance=function(t){return arguments.length?(D=(t=+t)*t,V):Math.sqrt(D)},V.tapDistance=function(t){return arguments.length?(P=+t,V):P},V},t.zoomIdentity=a,t.zoomTransform=c,Object.defineProperty(t,"__esModule",{value:!0})}));
Index: de_modules/d3-zoom/package.json
===================================================================
--- node_modules/d3-zoom/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-{
-  "name": "d3-zoom",
-  "version": "3.0.0",
-  "description": "Pan and zoom SVG, HTML or Canvas using mouse or touch input.",
-  "homepage": "https://d3js.org/d3-zoom/",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3-zoom.git"
-  },
-  "keywords": [
-    "d3",
-    "d3-module",
-    "zoom",
-    "behavior",
-    "interaction"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3-zoom.min.js",
-  "unpkg": "dist/d3-zoom.min.js",
-  "exports": {
-    "umd": "./dist/d3-zoom.min.js",
-    "default": "./src/index.js"
-  },
-  "dependencies": {
-    "d3-dispatch": "1 - 3",
-    "d3-drag": "2 - 3",
-    "d3-interpolate": "1 - 3",
-    "d3-selection": "2 - 3",
-    "d3-transition": "2 - 3"
-  },
-  "devDependencies": {
-    "eslint": "7",
-    "jsdom": "16",
-    "mocha": "9",
-    "rollup": "2",
-    "rollup-plugin-terser": "7"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c && git push",
-    "postpublish": "git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd -"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3-zoom/src/constant.js
===================================================================
--- node_modules/d3-zoom/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export default x => () => x;
Index: de_modules/d3-zoom/src/event.js
===================================================================
--- node_modules/d3-zoom/src/event.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export default function ZoomEvent(type, {
-  sourceEvent,
-  target,
-  transform,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    transform: {value: transform, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
Index: de_modules/d3-zoom/src/index.js
===================================================================
--- node_modules/d3-zoom/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export {default as zoom} from "./zoom.js";
-export {default as zoomTransform, identity as zoomIdentity, Transform as ZoomTransform} from "./transform.js";
Index: de_modules/d3-zoom/src/noevent.js
===================================================================
--- node_modules/d3-zoom/src/noevent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-export default function(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
Index: de_modules/d3-zoom/src/transform.js
===================================================================
--- node_modules/d3-zoom/src/transform.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-export function Transform(k, x, y) {
-  this.k = k;
-  this.x = x;
-  this.y = y;
-}
-
-Transform.prototype = {
-  constructor: Transform,
-  scale: function(k) {
-    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
-  },
-  translate: function(x, y) {
-    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
-  },
-  apply: function(point) {
-    return [point[0] * this.k + this.x, point[1] * this.k + this.y];
-  },
-  applyX: function(x) {
-    return x * this.k + this.x;
-  },
-  applyY: function(y) {
-    return y * this.k + this.y;
-  },
-  invert: function(location) {
-    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
-  },
-  invertX: function(x) {
-    return (x - this.x) / this.k;
-  },
-  invertY: function(y) {
-    return (y - this.y) / this.k;
-  },
-  rescaleX: function(x) {
-    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
-  },
-  rescaleY: function(y) {
-    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
-  },
-  toString: function() {
-    return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
-  }
-};
-
-export var identity = new Transform(1, 0, 0);
-
-transform.prototype = Transform.prototype;
-
-export default function transform(node) {
-  while (!node.__zoom) if (!(node = node.parentNode)) return identity;
-  return node.__zoom;
-}
Index: de_modules/d3-zoom/src/zoom.js
===================================================================
--- node_modules/d3-zoom/src/zoom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,447 +1,0 @@
-import {dispatch} from "d3-dispatch";
-import {dragDisable, dragEnable} from "d3-drag";
-import {interpolateZoom} from "d3-interpolate";
-import {select, pointer} from "d3-selection";
-import {interrupt} from "d3-transition";
-import constant from "./constant.js";
-import ZoomEvent from "./event.js";
-import {Transform, identity} from "./transform.js";
-import noevent, {nopropagation} from "./noevent.js";
-
-// Ignore right-click, since that should open the context menu.
-// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event
-function defaultFilter(event) {
-  return (!event.ctrlKey || event.type === 'wheel') && !event.button;
-}
-
-function defaultExtent() {
-  var e = this;
-  if (e instanceof SVGElement) {
-    e = e.ownerSVGElement || e;
-    if (e.hasAttribute("viewBox")) {
-      e = e.viewBox.baseVal;
-      return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
-    }
-    return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
-  }
-  return [[0, 0], [e.clientWidth, e.clientHeight]];
-}
-
-function defaultTransform() {
-  return this.__zoom || identity;
-}
-
-function defaultWheelDelta(event) {
-  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-function defaultConstrain(transform, extent, translateExtent) {
-  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
-      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
-      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
-      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
-  return transform.translate(
-    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
-    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
-  );
-}
-
-export default function() {
-  var filter = defaultFilter,
-      extent = defaultExtent,
-      constrain = defaultConstrain,
-      wheelDelta = defaultWheelDelta,
-      touchable = defaultTouchable,
-      scaleExtent = [0, Infinity],
-      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
-      duration = 250,
-      interpolate = interpolateZoom,
-      listeners = dispatch("start", "zoom", "end"),
-      touchstarting,
-      touchfirst,
-      touchending,
-      touchDelay = 500,
-      wheelDelay = 150,
-      clickDistance2 = 0,
-      tapDistance = 10;
-
-  function zoom(selection) {
-    selection
-        .property("__zoom", defaultTransform)
-        .on("wheel.zoom", wheeled, {passive: false})
-        .on("mousedown.zoom", mousedowned)
-        .on("dblclick.zoom", dblclicked)
-      .filter(touchable)
-        .on("touchstart.zoom", touchstarted)
-        .on("touchmove.zoom", touchmoved)
-        .on("touchend.zoom touchcancel.zoom", touchended)
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  zoom.transform = function(collection, transform, point, event) {
-    var selection = collection.selection ? collection.selection() : collection;
-    selection.property("__zoom", defaultTransform);
-    if (collection !== selection) {
-      schedule(collection, transform, point, event);
-    } else {
-      selection.interrupt().each(function() {
-        gesture(this, arguments)
-          .event(event)
-          .start()
-          .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
-          .end();
-      });
-    }
-  };
-
-  zoom.scaleBy = function(selection, k, p, event) {
-    zoom.scaleTo(selection, function() {
-      var k0 = this.__zoom.k,
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return k0 * k1;
-    }, p, event);
-  };
-
-  zoom.scaleTo = function(selection, k, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t0 = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
-          p1 = t0.invert(p0),
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
-    }, p, event);
-  };
-
-  zoom.translateBy = function(selection, x, y, event) {
-    zoom.transform(selection, function() {
-      return constrain(this.__zoom.translate(
-        typeof x === "function" ? x.apply(this, arguments) : x,
-        typeof y === "function" ? y.apply(this, arguments) : y
-      ), extent.apply(this, arguments), translateExtent);
-    }, null, event);
-  };
-
-  zoom.translateTo = function(selection, x, y, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
-      return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(
-        typeof x === "function" ? -x.apply(this, arguments) : -x,
-        typeof y === "function" ? -y.apply(this, arguments) : -y
-      ), e, translateExtent);
-    }, p, event);
-  };
-
-  function scale(transform, k) {
-    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
-    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
-  }
-
-  function translate(transform, p0, p1) {
-    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
-    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
-  }
-
-  function centroid(extent) {
-    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
-  }
-
-  function schedule(transition, transform, point, event) {
-    transition
-        .on("start.zoom", function() { gesture(this, arguments).event(event).start(); })
-        .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); })
-        .tween("zoom", function() {
-          var that = this,
-              args = arguments,
-              g = gesture(that, args).event(event),
-              e = extent.apply(that, args),
-              p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
-              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
-              a = that.__zoom,
-              b = typeof transform === "function" ? transform.apply(that, args) : transform,
-              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
-          return function(t) {
-            if (t === 1) t = b; // Avoid rounding error on end.
-            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
-            g.zoom(null, t);
-          };
-        });
-  }
-
-  function gesture(that, args, clean) {
-    return (!clean && that.__zooming) || new Gesture(that, args);
-  }
-
-  function Gesture(that, args) {
-    this.that = that;
-    this.args = args;
-    this.active = 0;
-    this.sourceEvent = null;
-    this.extent = extent.apply(that, args);
-    this.taps = 0;
-  }
-
-  Gesture.prototype = {
-    event: function(event) {
-      if (event) this.sourceEvent = event;
-      return this;
-    },
-    start: function() {
-      if (++this.active === 1) {
-        this.that.__zooming = this;
-        this.emit("start");
-      }
-      return this;
-    },
-    zoom: function(key, transform) {
-      if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
-      if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
-      if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
-      this.that.__zoom = transform;
-      this.emit("zoom");
-      return this;
-    },
-    end: function() {
-      if (--this.active === 0) {
-        delete this.that.__zooming;
-        this.emit("end");
-      }
-      return this;
-    },
-    emit: function(type) {
-      var d = select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new ZoomEvent(type, {
-          sourceEvent: this.sourceEvent,
-          target: zoom,
-          type,
-          transform: this.that.__zoom,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function wheeled(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var g = gesture(this, args).event(event),
-        t = this.__zoom,
-        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
-        p = pointer(event);
-
-    // If the mouse is in the same location as before, reuse it.
-    // If there were recent wheel events, reset the wheel idle timeout.
-    if (g.wheel) {
-      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
-        g.mouse[1] = t.invert(g.mouse[0] = p);
-      }
-      clearTimeout(g.wheel);
-    }
-
-    // If this wheel event won’t trigger a transform change, ignore it.
-    else if (t.k === k) return;
-
-    // Otherwise, capture the mouse point and location at the start.
-    else {
-      g.mouse = [p, t.invert(p)];
-      interrupt(this);
-      g.start();
-    }
-
-    noevent(event);
-    g.wheel = setTimeout(wheelidled, wheelDelay);
-    g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
-
-    function wheelidled() {
-      g.wheel = null;
-      g.end();
-    }
-  }
-
-  function mousedowned(event, ...args) {
-    if (touchending || !filter.apply(this, arguments)) return;
-    var currentTarget = event.currentTarget,
-        g = gesture(this, args, true).event(event),
-        v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
-        p = pointer(event, currentTarget),
-        x0 = event.clientX,
-        y0 = event.clientY;
-
-    dragDisable(event.view);
-    nopropagation(event);
-    g.mouse = [p, this.__zoom.invert(p)];
-    interrupt(this);
-    g.start();
-
-    function mousemoved(event) {
-      noevent(event);
-      if (!g.moved) {
-        var dx = event.clientX - x0, dy = event.clientY - y0;
-        g.moved = dx * dx + dy * dy > clickDistance2;
-      }
-      g.event(event)
-       .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));
-    }
-
-    function mouseupped(event) {
-      v.on("mousemove.zoom mouseup.zoom", null);
-      dragEnable(event.view, g.moved);
-      noevent(event);
-      g.event(event).end();
-    }
-  }
-
-  function dblclicked(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var t0 = this.__zoom,
-        p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),
-        p1 = t0.invert(p0),
-        k1 = t0.k * (event.shiftKey ? 0.5 : 2),
-        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
-
-    noevent(event);
-    if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);
-    else select(this).call(zoom.transform, t1, p0, event);
-  }
-
-  function touchstarted(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var touches = event.touches,
-        n = touches.length,
-        g = gesture(this, args, event.changedTouches.length === n).event(event),
-        started, i, t, p;
-
-    nopropagation(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = pointer(t, this);
-      p = [p, this.__zoom.invert(p), t.identifier];
-      if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
-      else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
-    }
-
-    if (touchstarting) touchstarting = clearTimeout(touchstarting);
-
-    if (started) {
-      if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
-      interrupt(this);
-      g.start();
-    }
-  }
-
-  function touchmoved(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t, p, l;
-
-    noevent(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = pointer(t, this);
-      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
-      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
-    }
-    t = g.that.__zoom;
-    if (g.touch1) {
-      var p0 = g.touch0[0], l0 = g.touch0[1],
-          p1 = g.touch1[0], l1 = g.touch1[1],
-          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
-          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
-      t = scale(t, Math.sqrt(dp / dl));
-      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
-      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
-    }
-    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
-    else return;
-
-    g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
-  }
-
-  function touchended(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t;
-
-    nopropagation(event);
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, touchDelay);
-    for (i = 0; i < n; ++i) {
-      t = touches[i];
-      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
-      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
-    }
-    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
-    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
-    else {
-      g.end();
-      // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
-      if (g.taps === 2) {
-        t = pointer(t, this);
-        if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
-          var p = select(this).on("dblclick.zoom");
-          if (p) p.apply(this, arguments);
-        }
-      }
-    }
-  }
-
-  zoom.wheelDelta = function(_) {
-    return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
-  };
-
-  zoom.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
-  };
-
-  zoom.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
-  };
-
-  zoom.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
-  };
-
-  zoom.scaleExtent = function(_) {
-    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
-  };
-
-  zoom.translateExtent = function(_) {
-    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
-  };
-
-  zoom.constrain = function(_) {
-    return arguments.length ? (constrain = _, zoom) : constrain;
-  };
-
-  zoom.duration = function(_) {
-    return arguments.length ? (duration = +_, zoom) : duration;
-  };
-
-  zoom.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, zoom) : interpolate;
-  };
-
-  zoom.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? zoom : value;
-  };
-
-  zoom.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
-  };
-
-  zoom.tapDistance = function(_) {
-    return arguments.length ? (tapDistance = +_, zoom) : tapDistance;
-  };
-
-  return zoom;
-}
Index: de_modules/d3/LICENSE
===================================================================
--- node_modules/d3/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2023 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/d3/README.md
===================================================================
--- node_modules/d3/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# D3: Data-Driven Documents
-
-<a href="https://d3js.org"><img src="./docs/public/logo.svg" width="256" height="256"></a>
-
-**D3** (or **D3.js**) is a free, open-source JavaScript library for visualizing data. Its low-level approach built on web standards offers unparalleled flexibility in authoring dynamic, data-driven graphics. For more than a decade D3 has powered groundbreaking and award-winning visualizations, become a foundational building block of higher-level chart libraries, and fostered a vibrant community of data practitioners around the world.
-
-## Resources
-
-* [Documentation](https://d3js.org)
-* [Examples](https://observablehq.com/@d3/gallery)
-* [Releases](https://github.com/d3/d3/releases)
-* [Getting help](https://d3js.org/community)
Index: de_modules/d3/dist/d3.js
===================================================================
--- node_modules/d3/dist/d3.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20625 +1,0 @@
-// https://d3js.org v7.9.0 Copyright 2010-2023 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
-})(this, (function (exports) { 'use strict';
-
-var version = "7.9.0";
-
-function ascending$3(a, b) {
-  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-function descending$2(a, b) {
-  return a == null || b == null ? NaN
-    : b < a ? -1
-    : b > a ? 1
-    : b >= a ? 0
-    : NaN;
-}
-
-function bisector(f) {
-  let compare1, compare2, delta;
-
-  // If an accessor is specified, promote it to a comparator. In this case we
-  // can test whether the search value is (self-) comparable. We can’t do this
-  // for a comparator (except for specific, known comparators) because we can’t
-  // tell if the comparator is symmetric, and an asymmetric comparator can’t be
-  // used to test whether a single value is comparable.
-  if (f.length !== 2) {
-    compare1 = ascending$3;
-    compare2 = (d, x) => ascending$3(f(d), x);
-    delta = (d, x) => f(d) - x;
-  } else {
-    compare1 = f === ascending$3 || f === descending$2 ? f : zero$1;
-    compare2 = f;
-    delta = f;
-  }
-
-  function left(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) < 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function right(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = (lo + hi) >>> 1;
-        if (compare2(a[mid], x) <= 0) lo = mid + 1;
-        else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-
-  function center(a, x, lo = 0, hi = a.length) {
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-
-  return {left, center, right};
-}
-
-function zero$1() {
-  return 0;
-}
-
-function number$3(x) {
-  return x === null ? NaN : +x;
-}
-
-function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
-
-const ascendingBisect = bisector(ascending$3);
-const bisectRight = ascendingBisect.right;
-const bisectLeft = ascendingBisect.left;
-const bisectCenter = bisector(number$3).center;
-var bisect = bisectRight;
-
-function blur(values, r) {
-  if (!((r = +r) >= 0)) throw new RangeError("invalid r");
-  let length = values.length;
-  if (!((length = Math.floor(length)) >= 0)) throw new RangeError("invalid length");
-  if (!length || !r) return values;
-  const blur = blurf(r);
-  const temp = values.slice();
-  blur(values, temp, 0, length, 1);
-  blur(temp, values, 0, length, 1);
-  blur(values, temp, 0, length, 1);
-  return values;
-}
-
-const blur2 = Blur2(blurf);
-
-const blurImage = Blur2(blurfImage);
-
-function Blur2(blur) {
-  return function(data, rx, ry = rx) {
-    if (!((rx = +rx) >= 0)) throw new RangeError("invalid rx");
-    if (!((ry = +ry) >= 0)) throw new RangeError("invalid ry");
-    let {data: values, width, height} = data;
-    if (!((width = Math.floor(width)) >= 0)) throw new RangeError("invalid width");
-    if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError("invalid height");
-    if (!width || !height || (!rx && !ry)) return data;
-    const blurx = rx && blur(rx);
-    const blury = ry && blur(ry);
-    const temp = values.slice();
-    if (blurx && blury) {
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    } else if (blurx) {
-      blurh(blurx, values, temp, width, height);
-      blurh(blurx, temp, values, width, height);
-      blurh(blurx, values, temp, width, height);
-    } else if (blury) {
-      blurv(blury, values, temp, width, height);
-      blurv(blury, temp, values, width, height);
-      blurv(blury, values, temp, width, height);
-    }
-    return data;
-  };
-}
-
-function blurh(blur, T, S, w, h) {
-  for (let y = 0, n = w * h; y < n;) {
-    blur(T, S, y, y += w, 1);
-  }
-}
-
-function blurv(blur, T, S, w, h) {
-  for (let x = 0, n = w * h; x < w; ++x) {
-    blur(T, S, x, x + n, w);
-  }
-}
-
-function blurfImage(radius) {
-  const blur = blurf(radius);
-  return (T, S, start, stop, step) => {
-    start <<= 2, stop <<= 2, step <<= 2;
-    blur(T, S, start + 0, stop + 0, step);
-    blur(T, S, start + 1, stop + 1, step);
-    blur(T, S, start + 2, stop + 2, step);
-    blur(T, S, start + 3, stop + 3, step);
-  };
-}
-
-// Given a target array T, a source array S, sets each value T[i] to the average
-// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,
-// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between
-// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an
-// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted
-// according to r - ⌊radius⌋.
-function blurf(radius) {
-  const radius0 = Math.floor(radius);
-  if (radius0 === radius) return bluri(radius);
-  const t = radius - radius0;
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius0 * S[start];
-    const s0 = step * radius0;
-    const s1 = s0 + step;
-    for (let i = start, j = start + s0; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s0)];
-      T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;
-      sum -= S[Math.max(start, i - s0)];
-    }
-  };
-}
-
-// Like blurf, but optimized for integer radius.
-function bluri(radius) {
-  const w = 2 * radius + 1;
-  return (T, S, start, stop, step) => { // stop must be aligned!
-    if (!((stop -= step) >= start)) return; // inclusive stop
-    let sum = radius * S[start];
-    const s = step * radius;
-    for (let i = start, j = start + s; i < j; i += step) {
-      sum += S[Math.min(stop, i)];
-    }
-    for (let i = start, j = stop; i <= j; i += step) {
-      sum += S[Math.min(stop, i + s)];
-      T[i] = sum / w;
-      sum -= S[Math.max(start, i - s)];
-    }
-  };
-}
-
-function count$1(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
-
-function length$3(array) {
-  return array.length | 0;
-}
-
-function empty$2(length) {
-  return !(length > 0);
-}
-
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-
-function cross$2(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length$3);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty$2)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
-
-function cumsum(values, valueof) {
-  var sum = 0, index = 0;
-  return Float64Array.from(values, valueof === undefined
-    ? v => (sum += +v || 0)
-    : v => (sum += +valueof(v, index++, values) || 0));
-}
-
-function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
-
-function deviation(values, valueof) {
-  const v = variance(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
-
-function extent$1(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
-
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n, x, y, lo, hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-
-function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-
-function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined
-      ? v => adder.add(+v || 0)
-      : v => adder.add(+valueof(v, ++index, values) || 0)
-  );
-}
-
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(key);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-function identity$9(x) {
-  return x;
-}
-
-function group(values, ...keys) {
-  return nest(values, identity$9, identity$9, keys);
-}
-
-function groups(values, ...keys) {
-  return nest(values, Array.from, identity$9, keys);
-}
-
-function flatten$1(groups, keys) {
-  for (let i = 1, n = keys.length; i < n; ++i) {
-    groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
-  }
-  return groups;
-}
-
-function flatGroup(values, ...keys) {
-  return flatten$1(groups(values, ...keys), keys);
-}
-
-function flatRollup(values, reduce, ...keys) {
-  return flatten$1(rollups(values, reduce, ...keys), keys);
-}
-
-function rollup(values, reduce, ...keys) {
-  return nest(values, identity$9, reduce, keys);
-}
-
-function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-
-function index$4(values, ...keys) {
-  return nest(values, identity$9, unique, keys);
-}
-
-function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-
-function nest(values, map, reduce, keys) {
-  return (function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);
-      else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  })(values, 0);
-}
-
-function permute(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
-
-function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f] = F;
-  if ((f && f.length !== 2) || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascendingDefined(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascendingDefined(f[i], f[j]));
-    }
-    return permute(values, index);
-  }
-  return values.sort(compareDefined(f));
-}
-
-function compareDefined(compare = ascending$3) {
-  if (compare === ascending$3) return ascendingDefined;
-  if (typeof compare !== "function") throw new TypeError("compare is not a function");
-  return (a, b) => {
-    const x = compare(a, b);
-    if (x || x === 0) return x;
-    return (compare(b, b) === 0) - (compare(a, a) === 0);
-  };
-}
-
-function ascendingDefined(a, b) {
-  return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
-}
-
-function groupSort(values, reduce, key) {
-  return (reduce.length !== 2
-    ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk)))
-    : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk))))
-    .map(([key]) => key);
-}
-
-var array$5 = Array.prototype;
-
-var slice$3 = array$5.slice;
-
-function constant$b(x) {
-  return () => x;
-}
-
-const e10 = Math.sqrt(50),
-    e5 = Math.sqrt(10),
-    e2 = Math.sqrt(2);
-
-function tickSpec(start, stop, count) {
-  const step = (stop - start) / Math.max(0, count),
-      power = Math.floor(Math.log10(step)),
-      error = step / Math.pow(10, power),
-      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
-  let i1, i2, inc;
-  if (power < 0) {
-    inc = Math.pow(10, -power) / factor;
-    i1 = Math.round(start * inc);
-    i2 = Math.round(stop * inc);
-    if (i1 / inc < start) ++i1;
-    if (i2 / inc > stop) --i2;
-    inc = -inc;
-  } else {
-    inc = Math.pow(10, power) * factor;
-    i1 = Math.round(start / inc);
-    i2 = Math.round(stop / inc);
-    if (i1 * inc < start) ++i1;
-    if (i2 * inc > stop) --i2;
-  }
-  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
-  return [i1, i2, inc];
-}
-
-function ticks(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  if (!(count > 0)) return [];
-  if (start === stop) return [start];
-  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
-  if (!(i2 >= i1)) return [];
-  const n = i2 - i1 + 1, ticks = new Array(n);
-  if (reverse) {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;
-  } else {
-    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;
-    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;
-  }
-  return ticks;
-}
-
-function tickIncrement(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  return tickSpec(start, stop, count)[2];
-}
-
-function tickStep(start, stop, count) {
-  stop = +stop, start = +start, count = +count;
-  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
-  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
-}
-
-function nice$1(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = tickIncrement(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
-
-function thresholdSturges(values) {
-  return Math.max(1, Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1);
-}
-
-function bin() {
-  var value = identity$9,
-      domain = extent$1,
-      threshold = thresholdSturges;
-
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-
-    var i,
-        n = data.length,
-        x,
-        step,
-        values = new Array(n);
-
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-
-    var xz = domain(values),
-        x0 = xz[0],
-        x1 = xz[1],
-        tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1, tn = +tz;
-      if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn);
-      tz = ticks(x0, x1, tn);
-
-      // If the domain is aligned with the first tick (which it will by
-      // default), then we can use quantization rather than bisection to bin
-      // values, which is substantially faster.
-      if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === extent$1) {
-          const step = tickIncrement(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    // Be careful not to mutate an array owned by the user!
-    var m = tz.length, a = 0, b = m;
-    while (tz[a] <= x0) ++a;
-    while (tz[b - 1] > x1) --b;
-    if (a || b < m) tz = tz.slice(a, b), m = b - a;
-
-    var bins = new Array(m + 1),
-        bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    if (isFinite(step)) {
-      if (step > 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
-          }
-        }
-      } else if (step < 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            const j = Math.floor((x0 - x) * step);
-            bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
-          }
-        }
-      }
-    } else {
-      for (i = 0; i < n; ++i) {
-        if ((x = values[i]) != null && x0 <= x && x <= x1) {
-          bins[bisect(tz, x, 0, m)].push(data[i]);
-        }
-      }
-    }
-
-    return bins;
-  }
-
-  histogram.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value;
-  };
-
-  histogram.domain = function(_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain;
-  };
-
-  histogram.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : constant$b(Array.isArray(_) ? slice$3.call(_) : _), histogram) : threshold;
-  };
-
-  return histogram;
-}
-
-function max$3(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
-
-function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (max < value || (max === undefined && value >= value))) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
-
-function min$2(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
-
-function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null
-          && (min > value || (min === undefined && value >= value))) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
-
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-function quickselect(array, k, left = 0, right = Infinity, compare) {
-  k = Math.floor(k);
-  left = Math.floor(Math.max(0, left));
-  right = Math.floor(Math.min(array.length - 1, right));
-
-  if (!(left <= k && k <= right)) return array;
-
-  compare = compare === undefined ? ascendingDefined : compareDefined(compare);
-
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-
-    const t = array[k];
-    let i = left;
-    let j = right;
-
-    swap$1(array, left, k);
-    if (compare(array[right], t) > 0) swap$1(array, left, right);
-
-    while (i < j) {
-      swap$1(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-
-    if (compare(array[left], t) === 0) swap$1(array, left, j);
-    else ++j, swap$1(array, j, right);
-
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-
-  return array;
-}
-
-function swap$1(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
-
-function greatest(values, compare = ascending$3) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending$3(value, maxValue) > 0
-          : ascending$3(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, max) > 0
-          : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
-
-function quantile$1(values, p, valueof) {
-  values = Float64Array.from(numbers(values, valueof));
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return min$2(values);
-  if (p >= 1) return max$3(values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)),
-      value1 = min$2(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function quantileSorted(values, p, valueof = number$3) {
-  if (!(n = values.length) || isNaN(p = +p)) return;
-  if (p <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-      i = (n - 1) * p,
-      i0 = Math.floor(i),
-      value0 = +valueof(values[i0], i0, values),
-      value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
-
-function quantileIndex(values, p, valueof = number$3) {
-  if (isNaN(p = +p)) return;
-  numbers = Float64Array.from(values, (_, i) => number$3(valueof(values[i], i, values)));
-  if (p <= 0) return minIndex(numbers);
-  if (p >= 1) return maxIndex(numbers);
-  var numbers,
-      index = Uint32Array.from(values, (_, i) => i),
-      j = numbers.length - 1,
-      i = Math.floor(j * p);
-  quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));
-  i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);
-  return i >= 0 ? i : -1;
-}
-
-function thresholdFreedmanDiaconis(values, min, max) {
-  const c = count$1(values), d = quantile$1(values, 0.75) - quantile$1(values, 0.25);
-  return c && d ? Math.ceil((max - min) / (2 * d * Math.pow(c, -1 / 3))) : 1;
-}
-
-function thresholdScott(values, min, max) {
-  const c = count$1(values), d = deviation(values);
-  return c && d ? Math.ceil((max - min) * Math.cbrt(c) / (3.49 * d)) : 1;
-}
-
-function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
-
-function median(values, valueof) {
-  return quantile$1(values, 0.5, valueof);
-}
-
-function medianIndex(values, valueof) {
-  return quantileIndex(values, 0.5, valueof);
-}
-
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-
-function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
-
-function mode(values, valueof) {
-  const counts = new InternMap();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  }
-  let modeValue;
-  let modeCount = 0;
-  for (const [value, count] of counts) {
-    if (count > modeCount) {
-      modeCount = count;
-      modeValue = value;
-    }
-  }
-  return modeValue;
-}
-
-function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-
-function pair(a, b) {
-  return [a, b];
-}
-
-function range$2(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-
-  var i = -1,
-      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-      range = new Array(n);
-
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-
-  return range;
-}
-
-function rank(values, valueof = ascending$3) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  let V = Array.from(values);
-  const R = new Float64Array(V.length);
-  if (valueof.length !== 2) V = V.map(valueof), valueof = ascending$3;
-  const compareIndex = (i, j) => valueof(V[i], V[j]);
-  let k, r;
-  values = Uint32Array.from(V, (_, i) => i);
-  // Risky chaining due to Safari 14 https://github.com/d3/d3-array/issues/123
-  values.sort(valueof === ascending$3 ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex));
-  values.forEach((j, i) => {
-      const c = compareIndex(j, k === undefined ? j : k);
-      if (c >= 0) {
-        if (k === undefined || c > 0) k = j, r = i;
-        R[j] = r;
-      } else {
-        R[j] = NaN;
-      }
-    });
-  return R;
-}
-
-function least(values, compare = ascending$3) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined
-          ? ascending$3(value, minValue) < 0
-          : ascending$3(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined
-          ? compare(value, min) < 0
-          : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
-
-function leastIndex(values, compare = ascending$3) {
-  if (compare.length === 1) return minIndex(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0
-        ? compare(value, value) === 0
-        : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
-
-function greatestIndex(values, compare = ascending$3) {
-  if (compare.length === 1) return maxIndex(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0
-        ? compare(value, value) === 0
-        : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
-
-function scan(values, compare) {
-  const index = leastIndex(values, compare);
-  return index < 0 ? undefined : index;
-}
-
-var shuffle$1 = shuffler(Math.random);
-
-function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0, t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
-
-function sum$2(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
-
-function transpose(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-
-function length$2(d) {
-  return d.length;
-}
-
-function zip() {
-  return transpose(arguments);
-}
-
-function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-function filter$1(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
-
-function map$1(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
-
-function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done, next, index = -1;
-  if (arguments.length < 3) {
-    ({done, value} = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({done, value: next} = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
-
-function reverse$1(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
-
-function difference(values, ...others) {
-  values = new InternSet(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
-
-function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](), set = new InternSet();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
-
-function intersection(values, ...others) {
-  values = new InternSet(values);
-  others = others.map(set$2);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
-
-function set$2(values) {
-  return values instanceof InternSet ? values : new InternSet(values);
-}
-
-function superset(values, other) {
-  const iterator = values[Symbol.iterator](), set = new Set();
-  for (const o of other) {
-    const io = intern(o);
-    if (set.has(io)) continue;
-    let value, done;
-    while (({value, done} = iterator.next())) {
-      if (done) return false;
-      const ivalue = intern(value);
-      set.add(ivalue);
-      if (Object.is(io, ivalue)) break;
-    }
-  }
-  return true;
-}
-
-function intern(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-function subset(values, other) {
-  return superset(other, values);
-}
-
-function union(...others) {
-  const set = new InternSet();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
-
-function identity$8(x) {
-  return x;
-}
-
-var top = 1,
-    right = 2,
-    bottom = 3,
-    left = 4,
-    epsilon$6 = 1e-6;
-
-function translateX(x) {
-  return "translate(" + x + ",0)";
-}
-
-function translateY(y) {
-  return "translate(0," + y + ")";
-}
-
-function number$2(scale) {
-  return d => +scale(d);
-}
-
-function center$1(scale, offset) {
-  offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
-  if (scale.round()) offset = Math.round(offset);
-  return d => +scale(d) + offset;
-}
-
-function entering() {
-  return !this.__axis;
-}
-
-function axis(orient, scale) {
-  var tickArguments = [],
-      tickValues = null,
-      tickFormat = null,
-      tickSizeInner = 6,
-      tickSizeOuter = 6,
-      tickPadding = 3,
-      offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5,
-      k = orient === top || orient === left ? -1 : 1,
-      x = orient === left || orient === right ? "x" : "y",
-      transform = orient === top || orient === bottom ? translateX : translateY;
-
-  function axis(context) {
-    var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
-        format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat,
-        spacing = Math.max(tickSizeInner, 0) + tickPadding,
-        range = scale.range(),
-        range0 = +range[0] + offset,
-        range1 = +range[range.length - 1] + offset,
-        position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset),
-        selection = context.selection ? context.selection() : context,
-        path = selection.selectAll(".domain").data([null]),
-        tick = selection.selectAll(".tick").data(values, scale).order(),
-        tickExit = tick.exit(),
-        tickEnter = tick.enter().append("g").attr("class", "tick"),
-        line = tick.select("line"),
-        text = tick.select("text");
-
-    path = path.merge(path.enter().insert("path", ".tick")
-        .attr("class", "domain")
-        .attr("stroke", "currentColor"));
-
-    tick = tick.merge(tickEnter);
-
-    line = line.merge(tickEnter.append("line")
-        .attr("stroke", "currentColor")
-        .attr(x + "2", k * tickSizeInner));
-
-    text = text.merge(tickEnter.append("text")
-        .attr("fill", "currentColor")
-        .attr(x, k * spacing)
-        .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
-
-    if (context !== selection) {
-      path = path.transition(context);
-      tick = tick.transition(context);
-      line = line.transition(context);
-      text = text.transition(context);
-
-      tickExit = tickExit.transition(context)
-          .attr("opacity", epsilon$6)
-          .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); });
-
-      tickEnter
-          .attr("opacity", epsilon$6)
-          .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });
-    }
-
-    tickExit.remove();
-
-    path
-        .attr("d", orient === left || orient === right
-            ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1)
-            : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1));
-
-    tick
-        .attr("opacity", 1)
-        .attr("transform", function(d) { return transform(position(d) + offset); });
-
-    line
-        .attr(x + "2", k * tickSizeInner);
-
-    text
-        .attr(x, k * spacing)
-        .text(format);
-
-    selection.filter(entering)
-        .attr("fill", "none")
-        .attr("font-size", 10)
-        .attr("font-family", "sans-serif")
-        .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
-
-    selection
-        .each(function() { this.__axis = position; });
-  }
-
-  axis.scale = function(_) {
-    return arguments.length ? (scale = _, axis) : scale;
-  };
-
-  axis.ticks = function() {
-    return tickArguments = Array.from(arguments), axis;
-  };
-
-  axis.tickArguments = function(_) {
-    return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();
-  };
-
-  axis.tickValues = function(_) {
-    return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();
-  };
-
-  axis.tickFormat = function(_) {
-    return arguments.length ? (tickFormat = _, axis) : tickFormat;
-  };
-
-  axis.tickSize = function(_) {
-    return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeInner = function(_) {
-    return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
-  };
-
-  axis.tickSizeOuter = function(_) {
-    return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
-  };
-
-  axis.tickPadding = function(_) {
-    return arguments.length ? (tickPadding = +_, axis) : tickPadding;
-  };
-
-  axis.offset = function(_) {
-    return arguments.length ? (offset = +_, axis) : offset;
-  };
-
-  return axis;
-}
-
-function axisTop(scale) {
-  return axis(top, scale);
-}
-
-function axisRight(scale) {
-  return axis(right, scale);
-}
-
-function axisBottom(scale) {
-  return axis(bottom, scale);
-}
-
-function axisLeft(scale) {
-  return axis(left, scale);
-}
-
-var noop$3 = {value: () => {}};
-
-function dispatch() {
-  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
-    if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
-    _[t] = [];
-  }
-  return new Dispatch(_);
-}
-
-function Dispatch(_) {
-  this._ = _;
-}
-
-function parseTypenames$1(typenames, types) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
-    return {type: t, name: name};
-  });
-}
-
-Dispatch.prototype = dispatch.prototype = {
-  constructor: Dispatch,
-  on: function(typename, callback) {
-    var _ = this._,
-        T = parseTypenames$1(typename + "", _),
-        t,
-        i = -1,
-        n = T.length;
-
-    // If no callback was specified, return the callback of the given type and name.
-    if (arguments.length < 2) {
-      while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t;
-      return;
-    }
-
-    // If a type was specified, set the callback for the given type and name.
-    // Otherwise, if a null callback was specified, remove callbacks of the given name.
-    if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
-    while (++i < n) {
-      if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback);
-      else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null);
-    }
-
-    return this;
-  },
-  copy: function() {
-    var copy = {}, _ = this._;
-    for (var t in _) copy[t] = _[t].slice();
-    return new Dispatch(copy);
-  },
-  call: function(type, that) {
-    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  },
-  apply: function(type, that, args) {
-    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
-  }
-};
-
-function get$1(type, name) {
-  for (var i = 0, n = type.length, c; i < n; ++i) {
-    if ((c = type[i]).name === name) {
-      return c.value;
-    }
-  }
-}
-
-function set$1(type, name, callback) {
-  for (var i = 0, n = type.length; i < n; ++i) {
-    if (type[i].name === name) {
-      type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1));
-      break;
-    }
-  }
-  if (callback != null) type.push({name: name, value: callback});
-  return type;
-}
-
-var xhtml = "http://www.w3.org/1999/xhtml";
-
-var namespaces = {
-  svg: "http://www.w3.org/2000/svg",
-  xhtml: xhtml,
-  xlink: "http://www.w3.org/1999/xlink",
-  xml: "http://www.w3.org/XML/1998/namespace",
-  xmlns: "http://www.w3.org/2000/xmlns/"
-};
-
-function namespace(name) {
-  var prefix = name += "", i = prefix.indexOf(":");
-  if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
-  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
-}
-
-function creatorInherit(name) {
-  return function() {
-    var document = this.ownerDocument,
-        uri = this.namespaceURI;
-    return uri === xhtml && document.documentElement.namespaceURI === xhtml
-        ? document.createElement(name)
-        : document.createElementNS(uri, name);
-  };
-}
-
-function creatorFixed(fullname) {
-  return function() {
-    return this.ownerDocument.createElementNS(fullname.space, fullname.local);
-  };
-}
-
-function creator(name) {
-  var fullname = namespace(name);
-  return (fullname.local
-      ? creatorFixed
-      : creatorInherit)(fullname);
-}
-
-function none$2() {}
-
-function selector(selector) {
-  return selector == null ? none$2 : function() {
-    return this.querySelector(selector);
-  };
-}
-
-function selection_select(select) {
-  if (typeof select !== "function") select = selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-      }
-    }
-  }
-
-  return new Selection$1(subgroups, this._parents);
-}
-
-// Given something array like (or null), returns something that is strictly an
-// array. This is used to ensure that array-like objects passed to d3.selectAll
-// or selection.selectAll are converted into proper arrays when creating a
-// selection; we don’t ever want to create a selection backed by a live
-// HTMLCollection or NodeList. However, note that selection.selectAll will use a
-// static NodeList as a group, since it safely derived from querySelectorAll.
-function array$4(x) {
-  return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
-}
-
-function empty$1() {
-  return [];
-}
-
-function selectorAll(selector) {
-  return selector == null ? empty$1 : function() {
-    return this.querySelectorAll(selector);
-  };
-}
-
-function arrayAll(select) {
-  return function() {
-    return array$4(select.apply(this, arguments));
-  };
-}
-
-function selection_selectAll(select) {
-  if (typeof select === "function") select = arrayAll(select);
-  else select = selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        subgroups.push(select.call(node, node.__data__, i, group));
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Selection$1(subgroups, parents);
-}
-
-function matcher(selector) {
-  return function() {
-    return this.matches(selector);
-  };
-}
-
-function childMatcher(selector) {
-  return function(node) {
-    return node.matches(selector);
-  };
-}
-
-var find$1 = Array.prototype.find;
-
-function childFind(match) {
-  return function() {
-    return find$1.call(this.children, match);
-  };
-}
-
-function childFirst() {
-  return this.firstElementChild;
-}
-
-function selection_selectChild(match) {
-  return this.select(match == null ? childFirst
-      : childFind(typeof match === "function" ? match : childMatcher(match)));
-}
-
-var filter = Array.prototype.filter;
-
-function children() {
-  return Array.from(this.children);
-}
-
-function childrenFilter(match) {
-  return function() {
-    return filter.call(this.children, match);
-  };
-}
-
-function selection_selectChildren(match) {
-  return this.selectAll(match == null ? children
-      : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
-}
-
-function selection_filter(match) {
-  if (typeof match !== "function") match = matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Selection$1(subgroups, this._parents);
-}
-
-function sparse(update) {
-  return new Array(update.length);
-}
-
-function selection_enter() {
-  return new Selection$1(this._enter || this._groups.map(sparse), this._parents);
-}
-
-function EnterNode(parent, datum) {
-  this.ownerDocument = parent.ownerDocument;
-  this.namespaceURI = parent.namespaceURI;
-  this._next = null;
-  this._parent = parent;
-  this.__data__ = datum;
-}
-
-EnterNode.prototype = {
-  constructor: EnterNode,
-  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
-  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
-  querySelector: function(selector) { return this._parent.querySelector(selector); },
-  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
-};
-
-function constant$a(x) {
-  return function() {
-    return x;
-  };
-}
-
-function bindIndex(parent, group, enter, update, exit, data) {
-  var i = 0,
-      node,
-      groupLength = group.length,
-      dataLength = data.length;
-
-  // Put any non-null nodes that fit into update.
-  // Put any null nodes into enter.
-  // Put any remaining data into enter.
-  for (; i < dataLength; ++i) {
-    if (node = group[i]) {
-      node.__data__ = data[i];
-      update[i] = node;
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Put any non-null nodes that don’t fit into exit.
-  for (; i < groupLength; ++i) {
-    if (node = group[i]) {
-      exit[i] = node;
-    }
-  }
-}
-
-function bindKey(parent, group, enter, update, exit, data, key) {
-  var i,
-      node,
-      nodeByKeyValue = new Map,
-      groupLength = group.length,
-      dataLength = data.length,
-      keyValues = new Array(groupLength),
-      keyValue;
-
-  // Compute the key for each node.
-  // If multiple nodes have the same key, the duplicates are added to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if (node = group[i]) {
-      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
-      if (nodeByKeyValue.has(keyValue)) {
-        exit[i] = node;
-      } else {
-        nodeByKeyValue.set(keyValue, node);
-      }
-    }
-  }
-
-  // Compute the key for each datum.
-  // If there a node associated with this key, join and add it to update.
-  // If there is not (or the key is a duplicate), add it to enter.
-  for (i = 0; i < dataLength; ++i) {
-    keyValue = key.call(parent, data[i], i, data) + "";
-    if (node = nodeByKeyValue.get(keyValue)) {
-      update[i] = node;
-      node.__data__ = data[i];
-      nodeByKeyValue.delete(keyValue);
-    } else {
-      enter[i] = new EnterNode(parent, data[i]);
-    }
-  }
-
-  // Add any remaining nodes that were not bound to data to exit.
-  for (i = 0; i < groupLength; ++i) {
-    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
-      exit[i] = node;
-    }
-  }
-}
-
-function datum(node) {
-  return node.__data__;
-}
-
-function selection_data(value, key) {
-  if (!arguments.length) return Array.from(this, datum);
-
-  var bind = key ? bindKey : bindIndex,
-      parents = this._parents,
-      groups = this._groups;
-
-  if (typeof value !== "function") value = constant$a(value);
-
-  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
-    var parent = parents[j],
-        group = groups[j],
-        groupLength = group.length,
-        data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),
-        dataLength = data.length,
-        enterGroup = enter[j] = new Array(dataLength),
-        updateGroup = update[j] = new Array(dataLength),
-        exitGroup = exit[j] = new Array(groupLength);
-
-    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
-
-    // Now connect the enter nodes to their following update node, such that
-    // appendChild can insert the materialized enter node before this node,
-    // rather than at the end of the parent node.
-    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
-      if (previous = enterGroup[i0]) {
-        if (i0 >= i1) i1 = i0 + 1;
-        while (!(next = updateGroup[i1]) && ++i1 < dataLength);
-        previous._next = next || null;
-      }
-    }
-  }
-
-  update = new Selection$1(update, parents);
-  update._enter = enter;
-  update._exit = exit;
-  return update;
-}
-
-// Given some data, this returns an array-like view of it: an object that
-// exposes a length property and allows numeric indexing. Note that unlike
-// selectAll, this isn’t worried about “live” collections because the resulting
-// array will only be used briefly while data is being bound. (It is possible to
-// cause the data to change while iterating by using a key function, but please
-// don’t; we’d rather avoid a gratuitous copy.)
-function arraylike(data) {
-  return typeof data === "object" && "length" in data
-    ? data // Array, TypedArray, NodeList, array-like
-    : Array.from(data); // Map, Set, iterable, string, or anything else
-}
-
-function selection_exit() {
-  return new Selection$1(this._exit || this._groups.map(sparse), this._parents);
-}
-
-function selection_join(onenter, onupdate, onexit) {
-  var enter = this.enter(), update = this, exit = this.exit();
-  if (typeof onenter === "function") {
-    enter = onenter(enter);
-    if (enter) enter = enter.selection();
-  } else {
-    enter = enter.append(onenter + "");
-  }
-  if (onupdate != null) {
-    update = onupdate(update);
-    if (update) update = update.selection();
-  }
-  if (onexit == null) exit.remove(); else onexit(exit);
-  return enter && update ? enter.merge(update).order() : update;
-}
-
-function selection_merge(context) {
-  var selection = context.selection ? context.selection() : context;
-
-  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Selection$1(merges, this._parents);
-}
-
-function selection_order() {
-
-  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
-    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
-      if (node = group[i]) {
-        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
-        next = node;
-      }
-    }
-  }
-
-  return this;
-}
-
-function selection_sort(compare) {
-  if (!compare) compare = ascending$2;
-
-  function compareNode(a, b) {
-    return a && b ? compare(a.__data__, b.__data__) : !a - !b;
-  }
-
-  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        sortgroup[i] = node;
-      }
-    }
-    sortgroup.sort(compareNode);
-  }
-
-  return new Selection$1(sortgroups, this._parents).order();
-}
-
-function ascending$2(a, b) {
-  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-function selection_call() {
-  var callback = arguments[0];
-  arguments[0] = this;
-  callback.apply(null, arguments);
-  return this;
-}
-
-function selection_nodes() {
-  return Array.from(this);
-}
-
-function selection_node() {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
-      var node = group[i];
-      if (node) return node;
-    }
-  }
-
-  return null;
-}
-
-function selection_size() {
-  let size = 0;
-  for (const node of this) ++size; // eslint-disable-line no-unused-vars
-  return size;
-}
-
-function selection_empty() {
-  return !this.node();
-}
-
-function selection_each(callback) {
-
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) callback.call(node, node.__data__, i, group);
-    }
-  }
-
-  return this;
-}
-
-function attrRemove$1(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS$1(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant$1(name, value) {
-  return function() {
-    this.setAttribute(name, value);
-  };
-}
-
-function attrConstantNS$1(fullname, value) {
-  return function() {
-    this.setAttributeNS(fullname.space, fullname.local, value);
-  };
-}
-
-function attrFunction$1(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttribute(name);
-    else this.setAttribute(name, v);
-  };
-}
-
-function attrFunctionNS$1(fullname, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
-    else this.setAttributeNS(fullname.space, fullname.local, v);
-  };
-}
-
-function selection_attr(name, value) {
-  var fullname = namespace(name);
-
-  if (arguments.length < 2) {
-    var node = this.node();
-    return fullname.local
-        ? node.getAttributeNS(fullname.space, fullname.local)
-        : node.getAttribute(fullname);
-  }
-
-  return this.each((value == null
-      ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function"
-      ? (fullname.local ? attrFunctionNS$1 : attrFunction$1)
-      : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value));
-}
-
-function defaultView(node) {
-  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
-      || (node.document && node) // node is a Window
-      || node.defaultView; // node is a Document
-}
-
-function styleRemove$1(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant$1(name, value, priority) {
-  return function() {
-    this.style.setProperty(name, value, priority);
-  };
-}
-
-function styleFunction$1(name, value, priority) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) this.style.removeProperty(name);
-    else this.style.setProperty(name, v, priority);
-  };
-}
-
-function selection_style(name, value, priority) {
-  return arguments.length > 1
-      ? this.each((value == null
-            ? styleRemove$1 : typeof value === "function"
-            ? styleFunction$1
-            : styleConstant$1)(name, value, priority == null ? "" : priority))
-      : styleValue(this.node(), name);
-}
-
-function styleValue(node, name) {
-  return node.style.getPropertyValue(name)
-      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);
-}
-
-function propertyRemove(name) {
-  return function() {
-    delete this[name];
-  };
-}
-
-function propertyConstant(name, value) {
-  return function() {
-    this[name] = value;
-  };
-}
-
-function propertyFunction(name, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (v == null) delete this[name];
-    else this[name] = v;
-  };
-}
-
-function selection_property(name, value) {
-  return arguments.length > 1
-      ? this.each((value == null
-          ? propertyRemove : typeof value === "function"
-          ? propertyFunction
-          : propertyConstant)(name, value))
-      : this.node()[name];
-}
-
-function classArray(string) {
-  return string.trim().split(/^|\s+/);
-}
-
-function classList(node) {
-  return node.classList || new ClassList(node);
-}
-
-function ClassList(node) {
-  this._node = node;
-  this._names = classArray(node.getAttribute("class") || "");
-}
-
-ClassList.prototype = {
-  add: function(name) {
-    var i = this._names.indexOf(name);
-    if (i < 0) {
-      this._names.push(name);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  remove: function(name) {
-    var i = this._names.indexOf(name);
-    if (i >= 0) {
-      this._names.splice(i, 1);
-      this._node.setAttribute("class", this._names.join(" "));
-    }
-  },
-  contains: function(name) {
-    return this._names.indexOf(name) >= 0;
-  }
-};
-
-function classedAdd(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.add(names[i]);
-}
-
-function classedRemove(node, names) {
-  var list = classList(node), i = -1, n = names.length;
-  while (++i < n) list.remove(names[i]);
-}
-
-function classedTrue(names) {
-  return function() {
-    classedAdd(this, names);
-  };
-}
-
-function classedFalse(names) {
-  return function() {
-    classedRemove(this, names);
-  };
-}
-
-function classedFunction(names, value) {
-  return function() {
-    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
-  };
-}
-
-function selection_classed(name, value) {
-  var names = classArray(name + "");
-
-  if (arguments.length < 2) {
-    var list = classList(this.node()), i = -1, n = names.length;
-    while (++i < n) if (!list.contains(names[i])) return false;
-    return true;
-  }
-
-  return this.each((typeof value === "function"
-      ? classedFunction : value
-      ? classedTrue
-      : classedFalse)(names, value));
-}
-
-function textRemove() {
-  this.textContent = "";
-}
-
-function textConstant$1(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction$1(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.textContent = v == null ? "" : v;
-  };
-}
-
-function selection_text(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? textRemove : (typeof value === "function"
-          ? textFunction$1
-          : textConstant$1)(value))
-      : this.node().textContent;
-}
-
-function htmlRemove() {
-  this.innerHTML = "";
-}
-
-function htmlConstant(value) {
-  return function() {
-    this.innerHTML = value;
-  };
-}
-
-function htmlFunction(value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    this.innerHTML = v == null ? "" : v;
-  };
-}
-
-function selection_html(value) {
-  return arguments.length
-      ? this.each(value == null
-          ? htmlRemove : (typeof value === "function"
-          ? htmlFunction
-          : htmlConstant)(value))
-      : this.node().innerHTML;
-}
-
-function raise() {
-  if (this.nextSibling) this.parentNode.appendChild(this);
-}
-
-function selection_raise() {
-  return this.each(raise);
-}
-
-function lower() {
-  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
-}
-
-function selection_lower() {
-  return this.each(lower);
-}
-
-function selection_append(name) {
-  var create = typeof name === "function" ? name : creator(name);
-  return this.select(function() {
-    return this.appendChild(create.apply(this, arguments));
-  });
-}
-
-function constantNull() {
-  return null;
-}
-
-function selection_insert(name, before) {
-  var create = typeof name === "function" ? name : creator(name),
-      select = before == null ? constantNull : typeof before === "function" ? before : selector(before);
-  return this.select(function() {
-    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
-  });
-}
-
-function remove() {
-  var parent = this.parentNode;
-  if (parent) parent.removeChild(this);
-}
-
-function selection_remove() {
-  return this.each(remove);
-}
-
-function selection_cloneShallow() {
-  var clone = this.cloneNode(false), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-function selection_cloneDeep() {
-  var clone = this.cloneNode(true), parent = this.parentNode;
-  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-function selection_clone(deep) {
-  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
-}
-
-function selection_datum(value) {
-  return arguments.length
-      ? this.property("__data__", value)
-      : this.node().__data__;
-}
-
-function contextListener(listener) {
-  return function(event) {
-    listener.call(this, event, this.__data__);
-  };
-}
-
-function parseTypenames(typenames) {
-  return typenames.trim().split(/^|\s+/).map(function(t) {
-    var name = "", i = t.indexOf(".");
-    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
-    return {type: t, name: name};
-  });
-}
-
-function onRemove(typename) {
-  return function() {
-    var on = this.__on;
-    if (!on) return;
-    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
-      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-      } else {
-        on[++i] = o;
-      }
-    }
-    if (++i) on.length = i;
-    else delete this.__on;
-  };
-}
-
-function onAdd(typename, value, options) {
-  return function() {
-    var on = this.__on, o, listener = contextListener(value);
-    if (on) for (var j = 0, m = on.length; j < m; ++j) {
-      if ((o = on[j]).type === typename.type && o.name === typename.name) {
-        this.removeEventListener(o.type, o.listener, o.options);
-        this.addEventListener(o.type, o.listener = listener, o.options = options);
-        o.value = value;
-        return;
-      }
-    }
-    this.addEventListener(typename.type, listener, options);
-    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};
-    if (!on) this.__on = [o];
-    else on.push(o);
-  };
-}
-
-function selection_on(typename, value, options) {
-  var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
-
-  if (arguments.length < 2) {
-    var on = this.node().__on;
-    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
-      for (i = 0, o = on[j]; i < n; ++i) {
-        if ((t = typenames[i]).type === o.type && t.name === o.name) {
-          return o.value;
-        }
-      }
-    }
-    return;
-  }
-
-  on = value ? onAdd : onRemove;
-  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
-  return this;
-}
-
-function dispatchEvent(node, type, params) {
-  var window = defaultView(node),
-      event = window.CustomEvent;
-
-  if (typeof event === "function") {
-    event = new event(type, params);
-  } else {
-    event = window.document.createEvent("Event");
-    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
-    else event.initEvent(type, false, false);
-  }
-
-  node.dispatchEvent(event);
-}
-
-function dispatchConstant(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params);
-  };
-}
-
-function dispatchFunction(type, params) {
-  return function() {
-    return dispatchEvent(this, type, params.apply(this, arguments));
-  };
-}
-
-function selection_dispatch(type, params) {
-  return this.each((typeof params === "function"
-      ? dispatchFunction
-      : dispatchConstant)(type, params));
-}
-
-function* selection_iterator() {
-  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
-    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
-      if (node = group[i]) yield node;
-    }
-  }
-}
-
-var root$1 = [null];
-
-function Selection$1(groups, parents) {
-  this._groups = groups;
-  this._parents = parents;
-}
-
-function selection() {
-  return new Selection$1([[document.documentElement]], root$1);
-}
-
-function selection_selection() {
-  return this;
-}
-
-Selection$1.prototype = selection.prototype = {
-  constructor: Selection$1,
-  select: selection_select,
-  selectAll: selection_selectAll,
-  selectChild: selection_selectChild,
-  selectChildren: selection_selectChildren,
-  filter: selection_filter,
-  data: selection_data,
-  enter: selection_enter,
-  exit: selection_exit,
-  join: selection_join,
-  merge: selection_merge,
-  selection: selection_selection,
-  order: selection_order,
-  sort: selection_sort,
-  call: selection_call,
-  nodes: selection_nodes,
-  node: selection_node,
-  size: selection_size,
-  empty: selection_empty,
-  each: selection_each,
-  attr: selection_attr,
-  style: selection_style,
-  property: selection_property,
-  classed: selection_classed,
-  text: selection_text,
-  html: selection_html,
-  raise: selection_raise,
-  lower: selection_lower,
-  append: selection_append,
-  insert: selection_insert,
-  remove: selection_remove,
-  clone: selection_clone,
-  datum: selection_datum,
-  on: selection_on,
-  dispatch: selection_dispatch,
-  [Symbol.iterator]: selection_iterator
-};
-
-function select(selector) {
-  return typeof selector === "string"
-      ? new Selection$1([[document.querySelector(selector)]], [document.documentElement])
-      : new Selection$1([[selector]], root$1);
-}
-
-function create$1(name) {
-  return select(creator(name).call(document.documentElement));
-}
-
-var nextId = 0;
-
-function local$1() {
-  return new Local;
-}
-
-function Local() {
-  this._ = "@" + (++nextId).toString(36);
-}
-
-Local.prototype = local$1.prototype = {
-  constructor: Local,
-  get: function(node) {
-    var id = this._;
-    while (!(id in node)) if (!(node = node.parentNode)) return;
-    return node[id];
-  },
-  set: function(node, value) {
-    return node[this._] = value;
-  },
-  remove: function(node) {
-    return this._ in node && delete node[this._];
-  },
-  toString: function() {
-    return this._;
-  }
-};
-
-function sourceEvent(event) {
-  let sourceEvent;
-  while (sourceEvent = event.sourceEvent) event = sourceEvent;
-  return event;
-}
-
-function pointer(event, node) {
-  event = sourceEvent(event);
-  if (node === undefined) node = event.currentTarget;
-  if (node) {
-    var svg = node.ownerSVGElement || node;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      point.x = event.clientX, point.y = event.clientY;
-      point = point.matrixTransform(node.getScreenCTM().inverse());
-      return [point.x, point.y];
-    }
-    if (node.getBoundingClientRect) {
-      var rect = node.getBoundingClientRect();
-      return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
-    }
-  }
-  return [event.pageX, event.pageY];
-}
-
-function pointers(events, node) {
-  if (events.target) { // i.e., instanceof Event, not TouchList or iterable
-    events = sourceEvent(events);
-    if (node === undefined) node = events.currentTarget;
-    events = events.touches || [events];
-  }
-  return Array.from(events, event => pointer(event, node));
-}
-
-function selectAll(selector) {
-  return typeof selector === "string"
-      ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement])
-      : new Selection$1([array$4(selector)], root$1);
-}
-
-// These are typically used in conjunction with noevent to ensure that we can
-// preventDefault on the event.
-const nonpassive = {passive: false};
-const nonpassivecapture = {capture: true, passive: false};
-
-function nopropagation$2(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent$2(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-function dragDisable(view) {
-  var root = view.document.documentElement,
-      selection = select(view).on("dragstart.drag", noevent$2, nonpassivecapture);
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", noevent$2, nonpassivecapture);
-  } else {
-    root.__noselect = root.style.MozUserSelect;
-    root.style.MozUserSelect = "none";
-  }
-}
-
-function yesdrag(view, noclick) {
-  var root = view.document.documentElement,
-      selection = select(view).on("dragstart.drag", null);
-  if (noclick) {
-    selection.on("click.drag", noevent$2, nonpassivecapture);
-    setTimeout(function() { selection.on("click.drag", null); }, 0);
-  }
-  if ("onselectstart" in root) {
-    selection.on("selectstart.drag", null);
-  } else {
-    root.style.MozUserSelect = root.__noselect;
-    delete root.__noselect;
-  }
-}
-
-var constant$9 = x => () => x;
-
-function DragEvent(type, {
-  sourceEvent,
-  subject,
-  target,
-  identifier,
-  active,
-  x, y, dx, dy,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    subject: {value: subject, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    identifier: {value: identifier, enumerable: true, configurable: true},
-    active: {value: active, enumerable: true, configurable: true},
-    x: {value: x, enumerable: true, configurable: true},
-    y: {value: y, enumerable: true, configurable: true},
-    dx: {value: dx, enumerable: true, configurable: true},
-    dy: {value: dy, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-DragEvent.prototype.on = function() {
-  var value = this._.on.apply(this._, arguments);
-  return value === this._ ? this : value;
-};
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter$2(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultContainer() {
-  return this.parentNode;
-}
-
-function defaultSubject(event, d) {
-  return d == null ? {x: event.x, y: event.y} : d;
-}
-
-function defaultTouchable$2() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-function drag() {
-  var filter = defaultFilter$2,
-      container = defaultContainer,
-      subject = defaultSubject,
-      touchable = defaultTouchable$2,
-      gestures = {},
-      listeners = dispatch("start", "drag", "end"),
-      active = 0,
-      mousedownx,
-      mousedowny,
-      mousemoving,
-      touchending,
-      clickDistance2 = 0;
-
-  function drag(selection) {
-    selection
-        .on("mousedown.drag", mousedowned)
-      .filter(touchable)
-        .on("touchstart.drag", touchstarted)
-        .on("touchmove.drag", touchmoved, nonpassive)
-        .on("touchend.drag touchcancel.drag", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  function mousedowned(event, d) {
-    if (touchending || !filter.call(this, event, d)) return;
-    var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse");
-    if (!gesture) return;
-    select(event.view)
-      .on("mousemove.drag", mousemoved, nonpassivecapture)
-      .on("mouseup.drag", mouseupped, nonpassivecapture);
-    dragDisable(event.view);
-    nopropagation$2(event);
-    mousemoving = false;
-    mousedownx = event.clientX;
-    mousedowny = event.clientY;
-    gesture("start", event);
-  }
-
-  function mousemoved(event) {
-    noevent$2(event);
-    if (!mousemoving) {
-      var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
-      mousemoving = dx * dx + dy * dy > clickDistance2;
-    }
-    gestures.mouse("drag", event);
-  }
-
-  function mouseupped(event) {
-    select(event.view).on("mousemove.drag mouseup.drag", null);
-    yesdrag(event.view, mousemoving);
-    noevent$2(event);
-    gestures.mouse("end", event);
-  }
-
-  function touchstarted(event, d) {
-    if (!filter.call(this, event, d)) return;
-    var touches = event.changedTouches,
-        c = container.call(this, event, d),
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {
-        nopropagation$2(event);
-        gesture("start", event, touches[i]);
-      }
-    }
-  }
-
-  function touchmoved(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        noevent$2(event);
-        gesture("drag", event, touches[i]);
-      }
-    }
-  }
-
-  function touchended(event) {
-    var touches = event.changedTouches,
-        n = touches.length, i, gesture;
-
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-    for (i = 0; i < n; ++i) {
-      if (gesture = gestures[touches[i].identifier]) {
-        nopropagation$2(event);
-        gesture("end", event, touches[i]);
-      }
-    }
-  }
-
-  function beforestart(that, container, event, d, identifier, touch) {
-    var dispatch = listeners.copy(),
-        p = pointer(touch || event, container), dx, dy,
-        s;
-
-    if ((s = subject.call(that, new DragEvent("beforestart", {
-        sourceEvent: event,
-        target: drag,
-        identifier,
-        active,
-        x: p[0],
-        y: p[1],
-        dx: 0,
-        dy: 0,
-        dispatch
-      }), d)) == null) return;
-
-    dx = s.x - p[0] || 0;
-    dy = s.y - p[1] || 0;
-
-    return function gesture(type, event, touch) {
-      var p0 = p, n;
-      switch (type) {
-        case "start": gestures[identifier] = gesture, n = active++; break;
-        case "end": delete gestures[identifier], --active; // falls through
-        case "drag": p = pointer(touch || event, container), n = active; break;
-      }
-      dispatch.call(
-        type,
-        that,
-        new DragEvent(type, {
-          sourceEvent: event,
-          subject: s,
-          target: drag,
-          identifier,
-          active: n,
-          x: p[0] + dx,
-          y: p[1] + dy,
-          dx: p[0] - p0[0],
-          dy: p[1] - p0[1],
-          dispatch
-        }),
-        d
-      );
-    };
-  }
-
-  drag.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter;
-  };
-
-  drag.container = function(_) {
-    return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container;
-  };
-
-  drag.subject = function(_) {
-    return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject;
-  };
-
-  drag.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable;
-  };
-
-  drag.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? drag : value;
-  };
-
-  drag.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
-  };
-
-  return drag;
-}
-
-function define(constructor, factory, prototype) {
-  constructor.prototype = factory.prototype = prototype;
-  prototype.constructor = constructor;
-}
-
-function extend(parent, definition) {
-  var prototype = Object.create(parent.prototype);
-  for (var key in definition) prototype[key] = definition[key];
-  return prototype;
-}
-
-function Color() {}
-
-var darker = 0.7;
-var brighter = 1 / darker;
-
-var reI = "\\s*([+-]?\\d+)\\s*",
-    reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
-    reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
-    reHex = /^#([0-9a-f]{3,8})$/,
-    reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
-    reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
-    reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
-    reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
-    reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
-    reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
-
-var named = {
-  aliceblue: 0xf0f8ff,
-  antiquewhite: 0xfaebd7,
-  aqua: 0x00ffff,
-  aquamarine: 0x7fffd4,
-  azure: 0xf0ffff,
-  beige: 0xf5f5dc,
-  bisque: 0xffe4c4,
-  black: 0x000000,
-  blanchedalmond: 0xffebcd,
-  blue: 0x0000ff,
-  blueviolet: 0x8a2be2,
-  brown: 0xa52a2a,
-  burlywood: 0xdeb887,
-  cadetblue: 0x5f9ea0,
-  chartreuse: 0x7fff00,
-  chocolate: 0xd2691e,
-  coral: 0xff7f50,
-  cornflowerblue: 0x6495ed,
-  cornsilk: 0xfff8dc,
-  crimson: 0xdc143c,
-  cyan: 0x00ffff,
-  darkblue: 0x00008b,
-  darkcyan: 0x008b8b,
-  darkgoldenrod: 0xb8860b,
-  darkgray: 0xa9a9a9,
-  darkgreen: 0x006400,
-  darkgrey: 0xa9a9a9,
-  darkkhaki: 0xbdb76b,
-  darkmagenta: 0x8b008b,
-  darkolivegreen: 0x556b2f,
-  darkorange: 0xff8c00,
-  darkorchid: 0x9932cc,
-  darkred: 0x8b0000,
-  darksalmon: 0xe9967a,
-  darkseagreen: 0x8fbc8f,
-  darkslateblue: 0x483d8b,
-  darkslategray: 0x2f4f4f,
-  darkslategrey: 0x2f4f4f,
-  darkturquoise: 0x00ced1,
-  darkviolet: 0x9400d3,
-  deeppink: 0xff1493,
-  deepskyblue: 0x00bfff,
-  dimgray: 0x696969,
-  dimgrey: 0x696969,
-  dodgerblue: 0x1e90ff,
-  firebrick: 0xb22222,
-  floralwhite: 0xfffaf0,
-  forestgreen: 0x228b22,
-  fuchsia: 0xff00ff,
-  gainsboro: 0xdcdcdc,
-  ghostwhite: 0xf8f8ff,
-  gold: 0xffd700,
-  goldenrod: 0xdaa520,
-  gray: 0x808080,
-  green: 0x008000,
-  greenyellow: 0xadff2f,
-  grey: 0x808080,
-  honeydew: 0xf0fff0,
-  hotpink: 0xff69b4,
-  indianred: 0xcd5c5c,
-  indigo: 0x4b0082,
-  ivory: 0xfffff0,
-  khaki: 0xf0e68c,
-  lavender: 0xe6e6fa,
-  lavenderblush: 0xfff0f5,
-  lawngreen: 0x7cfc00,
-  lemonchiffon: 0xfffacd,
-  lightblue: 0xadd8e6,
-  lightcoral: 0xf08080,
-  lightcyan: 0xe0ffff,
-  lightgoldenrodyellow: 0xfafad2,
-  lightgray: 0xd3d3d3,
-  lightgreen: 0x90ee90,
-  lightgrey: 0xd3d3d3,
-  lightpink: 0xffb6c1,
-  lightsalmon: 0xffa07a,
-  lightseagreen: 0x20b2aa,
-  lightskyblue: 0x87cefa,
-  lightslategray: 0x778899,
-  lightslategrey: 0x778899,
-  lightsteelblue: 0xb0c4de,
-  lightyellow: 0xffffe0,
-  lime: 0x00ff00,
-  limegreen: 0x32cd32,
-  linen: 0xfaf0e6,
-  magenta: 0xff00ff,
-  maroon: 0x800000,
-  mediumaquamarine: 0x66cdaa,
-  mediumblue: 0x0000cd,
-  mediumorchid: 0xba55d3,
-  mediumpurple: 0x9370db,
-  mediumseagreen: 0x3cb371,
-  mediumslateblue: 0x7b68ee,
-  mediumspringgreen: 0x00fa9a,
-  mediumturquoise: 0x48d1cc,
-  mediumvioletred: 0xc71585,
-  midnightblue: 0x191970,
-  mintcream: 0xf5fffa,
-  mistyrose: 0xffe4e1,
-  moccasin: 0xffe4b5,
-  navajowhite: 0xffdead,
-  navy: 0x000080,
-  oldlace: 0xfdf5e6,
-  olive: 0x808000,
-  olivedrab: 0x6b8e23,
-  orange: 0xffa500,
-  orangered: 0xff4500,
-  orchid: 0xda70d6,
-  palegoldenrod: 0xeee8aa,
-  palegreen: 0x98fb98,
-  paleturquoise: 0xafeeee,
-  palevioletred: 0xdb7093,
-  papayawhip: 0xffefd5,
-  peachpuff: 0xffdab9,
-  peru: 0xcd853f,
-  pink: 0xffc0cb,
-  plum: 0xdda0dd,
-  powderblue: 0xb0e0e6,
-  purple: 0x800080,
-  rebeccapurple: 0x663399,
-  red: 0xff0000,
-  rosybrown: 0xbc8f8f,
-  royalblue: 0x4169e1,
-  saddlebrown: 0x8b4513,
-  salmon: 0xfa8072,
-  sandybrown: 0xf4a460,
-  seagreen: 0x2e8b57,
-  seashell: 0xfff5ee,
-  sienna: 0xa0522d,
-  silver: 0xc0c0c0,
-  skyblue: 0x87ceeb,
-  slateblue: 0x6a5acd,
-  slategray: 0x708090,
-  slategrey: 0x708090,
-  snow: 0xfffafa,
-  springgreen: 0x00ff7f,
-  steelblue: 0x4682b4,
-  tan: 0xd2b48c,
-  teal: 0x008080,
-  thistle: 0xd8bfd8,
-  tomato: 0xff6347,
-  turquoise: 0x40e0d0,
-  violet: 0xee82ee,
-  wheat: 0xf5deb3,
-  white: 0xffffff,
-  whitesmoke: 0xf5f5f5,
-  yellow: 0xffff00,
-  yellowgreen: 0x9acd32
-};
-
-define(Color, color, {
-  copy(channels) {
-    return Object.assign(new this.constructor, this, channels);
-  },
-  displayable() {
-    return this.rgb().displayable();
-  },
-  hex: color_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: color_formatHex,
-  formatHex8: color_formatHex8,
-  formatHsl: color_formatHsl,
-  formatRgb: color_formatRgb,
-  toString: color_formatRgb
-});
-
-function color_formatHex() {
-  return this.rgb().formatHex();
-}
-
-function color_formatHex8() {
-  return this.rgb().formatHex8();
-}
-
-function color_formatHsl() {
-  return hslConvert(this).formatHsl();
-}
-
-function color_formatRgb() {
-  return this.rgb().formatRgb();
-}
-
-function color(format) {
-  var m, l;
-  format = (format + "").trim().toLowerCase();
-  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
-      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
-      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
-      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
-      : null) // invalid hex
-      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
-      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
-      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
-      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
-      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
-      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
-      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
-      : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
-      : null;
-}
-
-function rgbn(n) {
-  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
-}
-
-function rgba(r, g, b, a) {
-  if (a <= 0) r = g = b = NaN;
-  return new Rgb(r, g, b, a);
-}
-
-function rgbConvert(o) {
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Rgb;
-  o = o.rgb();
-  return new Rgb(o.r, o.g, o.b, o.opacity);
-}
-
-function rgb(r, g, b, opacity) {
-  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
-}
-
-function Rgb(r, g, b, opacity) {
-  this.r = +r;
-  this.g = +g;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Rgb, rgb, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  rgb() {
-    return this;
-  },
-  clamp() {
-    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
-  },
-  displayable() {
-    return (-0.5 <= this.r && this.r < 255.5)
-        && (-0.5 <= this.g && this.g < 255.5)
-        && (-0.5 <= this.b && this.b < 255.5)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  hex: rgb_formatHex, // Deprecated! Use color.formatHex.
-  formatHex: rgb_formatHex,
-  formatHex8: rgb_formatHex8,
-  formatRgb: rgb_formatRgb,
-  toString: rgb_formatRgb
-}));
-
-function rgb_formatHex() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
-}
-
-function rgb_formatHex8() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
-}
-
-function rgb_formatRgb() {
-  const a = clampa(this.opacity);
-  return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
-}
-
-function clampa(opacity) {
-  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
-}
-
-function clampi(value) {
-  return Math.max(0, Math.min(255, Math.round(value) || 0));
-}
-
-function hex(value) {
-  value = clampi(value);
-  return (value < 16 ? "0" : "") + value.toString(16);
-}
-
-function hsla(h, s, l, a) {
-  if (a <= 0) h = s = l = NaN;
-  else if (l <= 0 || l >= 1) h = s = NaN;
-  else if (s <= 0) h = NaN;
-  return new Hsl(h, s, l, a);
-}
-
-function hslConvert(o) {
-  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Hsl;
-  if (o instanceof Hsl) return o;
-  o = o.rgb();
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      min = Math.min(r, g, b),
-      max = Math.max(r, g, b),
-      h = NaN,
-      s = max - min,
-      l = (max + min) / 2;
-  if (s) {
-    if (r === max) h = (g - b) / s + (g < b) * 6;
-    else if (g === max) h = (b - r) / s + 2;
-    else h = (r - g) / s + 4;
-    s /= l < 0.5 ? max + min : 2 - max - min;
-    h *= 60;
-  } else {
-    s = l > 0 && l < 1 ? 0 : h;
-  }
-  return new Hsl(h, s, l, o.opacity);
-}
-
-function hsl$2(h, s, l, opacity) {
-  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Hsl(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Hsl, hsl$2, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = this.h % 360 + (this.h < 0) * 360,
-        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
-        l = this.l,
-        m2 = l + (l < 0.5 ? l : 1 - l) * s,
-        m1 = 2 * l - m2;
-    return new Rgb(
-      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
-      hsl2rgb(h, m1, m2),
-      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
-      this.opacity
-    );
-  },
-  clamp() {
-    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
-  },
-  displayable() {
-    return (0 <= this.s && this.s <= 1 || isNaN(this.s))
-        && (0 <= this.l && this.l <= 1)
-        && (0 <= this.opacity && this.opacity <= 1);
-  },
-  formatHsl() {
-    const a = clampa(this.opacity);
-    return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
-  }
-}));
-
-function clamph(value) {
-  value = (value || 0) % 360;
-  return value < 0 ? value + 360 : value;
-}
-
-function clampt(value) {
-  return Math.max(0, Math.min(1, value || 0));
-}
-
-/* From FvD 13.37, CSS Color Module Level 3 */
-function hsl2rgb(h, m1, m2) {
-  return (h < 60 ? m1 + (m2 - m1) * h / 60
-      : h < 180 ? m2
-      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
-      : m1) * 255;
-}
-
-const radians$1 = Math.PI / 180;
-const degrees$2 = 180 / Math.PI;
-
-// https://observablehq.com/@mbostock/lab-and-rgb
-const K = 18,
-    Xn = 0.96422,
-    Yn = 1,
-    Zn = 0.82521,
-    t0$1 = 4 / 29,
-    t1$1 = 6 / 29,
-    t2 = 3 * t1$1 * t1$1,
-    t3 = t1$1 * t1$1 * t1$1;
-
-function labConvert(o) {
-  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
-  if (o instanceof Hcl) return hcl2lab(o);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = rgb2lrgb(o.r),
-      g = rgb2lrgb(o.g),
-      b = rgb2lrgb(o.b),
-      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
-  if (r === g && g === b) x = z = y; else {
-    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
-    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
-  }
-  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
-}
-
-function gray(l, opacity) {
-  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
-}
-
-function lab$1(l, a, b, opacity) {
-  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
-}
-
-function Lab(l, a, b, opacity) {
-  this.l = +l;
-  this.a = +a;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-
-define(Lab, lab$1, extend(Color, {
-  brighter(k) {
-    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  darker(k) {
-    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  rgb() {
-    var y = (this.l + 16) / 116,
-        x = isNaN(this.a) ? y : y + this.a / 500,
-        z = isNaN(this.b) ? y : y - this.b / 200;
-    x = Xn * lab2xyz(x);
-    y = Yn * lab2xyz(y);
-    z = Zn * lab2xyz(z);
-    return new Rgb(
-      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
-      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
-      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
-      this.opacity
-    );
-  }
-}));
-
-function xyz2lab(t) {
-  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1;
-}
-
-function lab2xyz(t) {
-  return t > t1$1 ? t * t * t : t2 * (t - t0$1);
-}
-
-function lrgb2rgb(x) {
-  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
-}
-
-function rgb2lrgb(x) {
-  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
-}
-
-function hclConvert(o) {
-  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
-  if (!(o instanceof Lab)) o = labConvert(o);
-  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
-  var h = Math.atan2(o.b, o.a) * degrees$2;
-  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
-}
-
-function lch(l, c, h, opacity) {
-  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-function hcl$2(h, c, l, opacity) {
-  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-
-function Hcl(h, c, l, opacity) {
-  this.h = +h;
-  this.c = +c;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-function hcl2lab(o) {
-  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
-  var h = o.h * radians$1;
-  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
-}
-
-define(Hcl, hcl$2, extend(Color, {
-  brighter(k) {
-    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
-  },
-  darker(k) {
-    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
-  },
-  rgb() {
-    return hcl2lab(this).rgb();
-  }
-}));
-
-var A = -0.14861,
-    B$1 = +1.78277,
-    C = -0.29227,
-    D$1 = -0.90649,
-    E = +1.97294,
-    ED = E * D$1,
-    EB = E * B$1,
-    BC_DA = B$1 * C - D$1 * A;
-
-function cubehelixConvert(o) {
-  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Rgb)) o = rgbConvert(o);
-  var r = o.r / 255,
-      g = o.g / 255,
-      b = o.b / 255,
-      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
-      bl = b - l,
-      k = (E * (g - l) - C * bl) / D$1,
-      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
-      h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN;
-  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
-}
-
-function cubehelix$3(h, s, l, opacity) {
-  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Cubehelix(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-
-define(Cubehelix, cubehelix$3, extend(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1,
-        l = +this.l,
-        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
-        cosh = Math.cos(h),
-        sinh = Math.sin(h);
-    return new Rgb(
-      255 * (l + a * (A * cosh + B$1 * sinh)),
-      255 * (l + a * (C * cosh + D$1 * sinh)),
-      255 * (l + a * (E * cosh)),
-      this.opacity
-    );
-  }
-}));
-
-function basis$1(t1, v0, v1, v2, v3) {
-  var t2 = t1 * t1, t3 = t2 * t1;
-  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
-      + (4 - 6 * t2 + 3 * t3) * v1
-      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
-      + t3 * v3) / 6;
-}
-
-function basis$2(values) {
-  var n = values.length - 1;
-  return function(t) {
-    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
-        v1 = values[i],
-        v2 = values[i + 1],
-        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
-        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
-    return basis$1((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
-
-function basisClosed$1(values) {
-  var n = values.length;
-  return function(t) {
-    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
-        v0 = values[(i + n - 1) % n],
-        v1 = values[i % n],
-        v2 = values[(i + 1) % n],
-        v3 = values[(i + 2) % n];
-    return basis$1((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
-
-var constant$8 = x => () => x;
-
-function linear$2(a, d) {
-  return function(t) {
-    return a + t * d;
-  };
-}
-
-function exponential$1(a, b, y) {
-  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
-    return Math.pow(a + t * b, y);
-  };
-}
-
-function hue$1(a, b) {
-  var d = b - a;
-  return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a);
-}
-
-function gamma$1(y) {
-  return (y = +y) === 1 ? nogamma : function(a, b) {
-    return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a);
-  };
-}
-
-function nogamma(a, b) {
-  var d = b - a;
-  return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a);
-}
-
-var interpolateRgb = (function rgbGamma(y) {
-  var color = gamma$1(y);
-
-  function rgb$1(start, end) {
-    var r = color((start = rgb(start)).r, (end = rgb(end)).r),
-        g = color(start.g, end.g),
-        b = color(start.b, end.b),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.r = r(t);
-      start.g = g(t);
-      start.b = b(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-
-  rgb$1.gamma = rgbGamma;
-
-  return rgb$1;
-})(1);
-
-function rgbSpline(spline) {
-  return function(colors) {
-    var n = colors.length,
-        r = new Array(n),
-        g = new Array(n),
-        b = new Array(n),
-        i, color;
-    for (i = 0; i < n; ++i) {
-      color = rgb(colors[i]);
-      r[i] = color.r || 0;
-      g[i] = color.g || 0;
-      b[i] = color.b || 0;
-    }
-    r = spline(r);
-    g = spline(g);
-    b = spline(b);
-    color.opacity = 1;
-    return function(t) {
-      color.r = r(t);
-      color.g = g(t);
-      color.b = b(t);
-      return color + "";
-    };
-  };
-}
-
-var rgbBasis = rgbSpline(basis$2);
-var rgbBasisClosed = rgbSpline(basisClosed$1);
-
-function numberArray(a, b) {
-  if (!b) b = [];
-  var n = a ? Math.min(b.length, a.length) : 0,
-      c = b.slice(),
-      i;
-  return function(t) {
-    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
-    return c;
-  };
-}
-
-function isNumberArray(x) {
-  return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
-
-function array$3(a, b) {
-  return (isNumberArray(b) ? numberArray : genericArray)(a, b);
-}
-
-function genericArray(a, b) {
-  var nb = b ? b.length : 0,
-      na = a ? Math.min(nb, a.length) : 0,
-      x = new Array(na),
-      c = new Array(nb),
-      i;
-
-  for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]);
-  for (; i < nb; ++i) c[i] = b[i];
-
-  return function(t) {
-    for (i = 0; i < na; ++i) c[i] = x[i](t);
-    return c;
-  };
-}
-
-function date$1(a, b) {
-  var d = new Date;
-  return a = +a, b = +b, function(t) {
-    return d.setTime(a * (1 - t) + b * t), d;
-  };
-}
-
-function interpolateNumber(a, b) {
-  return a = +a, b = +b, function(t) {
-    return a * (1 - t) + b * t;
-  };
-}
-
-function object$1(a, b) {
-  var i = {},
-      c = {},
-      k;
-
-  if (a === null || typeof a !== "object") a = {};
-  if (b === null || typeof b !== "object") b = {};
-
-  for (k in b) {
-    if (k in a) {
-      i[k] = interpolate$2(a[k], b[k]);
-    } else {
-      c[k] = b[k];
-    }
-  }
-
-  return function(t) {
-    for (k in i) c[k] = i[k](t);
-    return c;
-  };
-}
-
-var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
-    reB = new RegExp(reA.source, "g");
-
-function zero(b) {
-  return function() {
-    return b;
-  };
-}
-
-function one(b) {
-  return function(t) {
-    return b(t) + "";
-  };
-}
-
-function interpolateString(a, b) {
-  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
-      am, // current match in a
-      bm, // current match in b
-      bs, // string preceding current number in b, if any
-      i = -1, // index in s
-      s = [], // string constants and placeholders
-      q = []; // number interpolators
-
-  // Coerce inputs to strings.
-  a = a + "", b = b + "";
-
-  // Interpolate pairs of numbers in a & b.
-  while ((am = reA.exec(a))
-      && (bm = reB.exec(b))) {
-    if ((bs = bm.index) > bi) { // a string precedes the next number in b
-      bs = b.slice(bi, bs);
-      if (s[i]) s[i] += bs; // coalesce with previous string
-      else s[++i] = bs;
-    }
-    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
-      if (s[i]) s[i] += bm; // coalesce with previous string
-      else s[++i] = bm;
-    } else { // interpolate non-matching numbers
-      s[++i] = null;
-      q.push({i: i, x: interpolateNumber(am, bm)});
-    }
-    bi = reB.lastIndex;
-  }
-
-  // Add remains of b.
-  if (bi < b.length) {
-    bs = b.slice(bi);
-    if (s[i]) s[i] += bs; // coalesce with previous string
-    else s[++i] = bs;
-  }
-
-  // Special optimization for only a single match.
-  // Otherwise, interpolate each of the numbers and rejoin the string.
-  return s.length < 2 ? (q[0]
-      ? one(q[0].x)
-      : zero(b))
-      : (b = q.length, function(t) {
-          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
-          return s.join("");
-        });
-}
-
-function interpolate$2(a, b) {
-  var t = typeof b, c;
-  return b == null || t === "boolean" ? constant$8(b)
-      : (t === "number" ? interpolateNumber
-      : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString)
-      : b instanceof color ? interpolateRgb
-      : b instanceof Date ? date$1
-      : isNumberArray(b) ? numberArray
-      : Array.isArray(b) ? genericArray
-      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1
-      : interpolateNumber)(a, b);
-}
-
-function discrete(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
-
-function hue(a, b) {
-  var i = hue$1(+a, +b);
-  return function(t) {
-    var x = i(t);
-    return x - 360 * Math.floor(x / 360);
-  };
-}
-
-function interpolateRound(a, b) {
-  return a = +a, b = +b, function(t) {
-    return Math.round(a * (1 - t) + b * t);
-  };
-}
-
-var degrees$1 = 180 / Math.PI;
-
-var identity$7 = {
-  translateX: 0,
-  translateY: 0,
-  rotate: 0,
-  skewX: 0,
-  scaleX: 1,
-  scaleY: 1
-};
-
-function decompose(a, b, c, d, e, f) {
-  var scaleX, scaleY, skewX;
-  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
-  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
-  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
-  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
-  return {
-    translateX: e,
-    translateY: f,
-    rotate: Math.atan2(b, a) * degrees$1,
-    skewX: Math.atan(skewX) * degrees$1,
-    scaleX: scaleX,
-    scaleY: scaleY
-  };
-}
-
-var svgNode;
-
-/* eslint-disable no-undef */
-function parseCss(value) {
-  const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
-  return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
-}
-
-function parseSvg(value) {
-  if (value == null) return identity$7;
-  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
-  svgNode.setAttribute("transform", value);
-  if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7;
-  value = value.matrix;
-  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
-}
-
-function interpolateTransform(parse, pxComma, pxParen, degParen) {
-
-  function pop(s) {
-    return s.length ? s.pop() + " " : "";
-  }
-
-  function translate(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push("translate(", null, pxComma, null, pxParen);
-      q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});
-    } else if (xb || yb) {
-      s.push("translate(" + xb + pxComma + yb + pxParen);
-    }
-  }
-
-  function rotate(a, b, s, q) {
-    if (a !== b) {
-      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
-      q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "rotate(" + b + degParen);
-    }
-  }
-
-  function skewX(a, b, s, q) {
-    if (a !== b) {
-      q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)});
-    } else if (b) {
-      s.push(pop(s) + "skewX(" + b + degParen);
-    }
-  }
-
-  function scale(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
-      q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});
-    } else if (xb !== 1 || yb !== 1) {
-      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
-    }
-  }
-
-  return function(a, b) {
-    var s = [], // string constants and placeholders
-        q = []; // number interpolators
-    a = parse(a), b = parse(b);
-    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
-    rotate(a.rotate, b.rotate, s, q);
-    skewX(a.skewX, b.skewX, s, q);
-    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
-    a = b = null; // gc
-    return function(t) {
-      var i = -1, n = q.length, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-}
-
-var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
-var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
-
-var epsilon2$1 = 1e-12;
-
-function cosh(x) {
-  return ((x = Math.exp(x)) + 1 / x) / 2;
-}
-
-function sinh(x) {
-  return ((x = Math.exp(x)) - 1 / x) / 2;
-}
-
-function tanh(x) {
-  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
-}
-
-var interpolateZoom = (function zoomRho(rho, rho2, rho4) {
-
-  // p0 = [ux0, uy0, w0]
-  // p1 = [ux1, uy1, w1]
-  function zoom(p0, p1) {
-    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
-        ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
-        dx = ux1 - ux0,
-        dy = uy1 - uy0,
-        d2 = dx * dx + dy * dy,
-        i,
-        S;
-
-    // Special case for u0 ≅ u1.
-    if (d2 < epsilon2$1) {
-      S = Math.log(w1 / w0) / rho;
-      i = function(t) {
-        return [
-          ux0 + t * dx,
-          uy0 + t * dy,
-          w0 * Math.exp(rho * t * S)
-        ];
-      };
-    }
-
-    // General case.
-    else {
-      var d1 = Math.sqrt(d2),
-          b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
-          b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
-          r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
-          r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
-      S = (r1 - r0) / rho;
-      i = function(t) {
-        var s = t * S,
-            coshr0 = cosh(r0),
-            u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
-        return [
-          ux0 + u * dx,
-          uy0 + u * dy,
-          w0 * coshr0 / cosh(rho * s + r0)
-        ];
-      };
-    }
-
-    i.duration = S * 1000 * rho / Math.SQRT2;
-
-    return i;
-  }
-
-  zoom.rho = function(_) {
-    var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
-    return zoomRho(_1, _2, _4);
-  };
-
-  return zoom;
-})(Math.SQRT2, 2, 4);
-
-function hsl(hue) {
-  return function(start, end) {
-    var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h),
-        s = nogamma(start.s, end.s),
-        l = nogamma(start.l, end.l),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.s = s(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-var hsl$1 = hsl(hue$1);
-var hslLong = hsl(nogamma);
-
-function lab(start, end) {
-  var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l),
-      a = nogamma(start.a, end.a),
-      b = nogamma(start.b, end.b),
-      opacity = nogamma(start.opacity, end.opacity);
-  return function(t) {
-    start.l = l(t);
-    start.a = a(t);
-    start.b = b(t);
-    start.opacity = opacity(t);
-    return start + "";
-  };
-}
-
-function hcl(hue) {
-  return function(start, end) {
-    var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h),
-        c = nogamma(start.c, end.c),
-        l = nogamma(start.l, end.l),
-        opacity = nogamma(start.opacity, end.opacity);
-    return function(t) {
-      start.h = h(t);
-      start.c = c(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-}
-
-var hcl$1 = hcl(hue$1);
-var hclLong = hcl(nogamma);
-
-function cubehelix$1(hue) {
-  return (function cubehelixGamma(y) {
-    y = +y;
-
-    function cubehelix(start, end) {
-      var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h),
-          s = nogamma(start.s, end.s),
-          l = nogamma(start.l, end.l),
-          opacity = nogamma(start.opacity, end.opacity);
-      return function(t) {
-        start.h = h(t);
-        start.s = s(t);
-        start.l = l(Math.pow(t, y));
-        start.opacity = opacity(t);
-        return start + "";
-      };
-    }
-
-    cubehelix.gamma = cubehelixGamma;
-
-    return cubehelix;
-  })(1);
-}
-
-var cubehelix$2 = cubehelix$1(hue$1);
-var cubehelixLong = cubehelix$1(nogamma);
-
-function piecewise(interpolate, values) {
-  if (values === undefined) values = interpolate, interpolate = interpolate$2;
-  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
-  while (i < n) I[i] = interpolate(v, v = values[++i]);
-  return function(t) {
-    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
-    return I[i](t - i);
-  };
-}
-
-function quantize$1(interpolator, n) {
-  var samples = new Array(n);
-  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
-  return samples;
-}
-
-var frame = 0, // is an animation frame pending?
-    timeout$1 = 0, // is a timeout pending?
-    interval$1 = 0, // are any timers active?
-    pokeDelay = 1000, // how frequently we check for clock skew
-    taskHead,
-    taskTail,
-    clockLast = 0,
-    clockNow = 0,
-    clockSkew = 0,
-    clock = typeof performance === "object" && performance.now ? performance : Date,
-    setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
-
-function now() {
-  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
-}
-
-function clearNow() {
-  clockNow = 0;
-}
-
-function Timer() {
-  this._call =
-  this._time =
-  this._next = null;
-}
-
-Timer.prototype = timer.prototype = {
-  constructor: Timer,
-  restart: function(callback, delay, time) {
-    if (typeof callback !== "function") throw new TypeError("callback is not a function");
-    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
-    if (!this._next && taskTail !== this) {
-      if (taskTail) taskTail._next = this;
-      else taskHead = this;
-      taskTail = this;
-    }
-    this._call = callback;
-    this._time = time;
-    sleep();
-  },
-  stop: function() {
-    if (this._call) {
-      this._call = null;
-      this._time = Infinity;
-      sleep();
-    }
-  }
-};
-
-function timer(callback, delay, time) {
-  var t = new Timer;
-  t.restart(callback, delay, time);
-  return t;
-}
-
-function timerFlush() {
-  now(); // Get the current time, if not already set.
-  ++frame; // Pretend we’ve set an alarm, if we haven’t already.
-  var t = taskHead, e;
-  while (t) {
-    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
-    t = t._next;
-  }
-  --frame;
-}
-
-function wake() {
-  clockNow = (clockLast = clock.now()) + clockSkew;
-  frame = timeout$1 = 0;
-  try {
-    timerFlush();
-  } finally {
-    frame = 0;
-    nap();
-    clockNow = 0;
-  }
-}
-
-function poke() {
-  var now = clock.now(), delay = now - clockLast;
-  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-
-function nap() {
-  var t0, t1 = taskHead, t2, time = Infinity;
-  while (t1) {
-    if (t1._call) {
-      if (time > t1._time) time = t1._time;
-      t0 = t1, t1 = t1._next;
-    } else {
-      t2 = t1._next, t1._next = null;
-      t1 = t0 ? t0._next = t2 : taskHead = t2;
-    }
-  }
-  taskTail = t0;
-  sleep(time);
-}
-
-function sleep(time) {
-  if (frame) return; // Soonest alarm already set, or will be.
-  if (timeout$1) timeout$1 = clearTimeout(timeout$1);
-  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
-  if (delay > 24) {
-    if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);
-    if (interval$1) interval$1 = clearInterval(interval$1);
-  } else {
-    if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay);
-    frame = 1, setFrame(wake);
-  }
-}
-
-function timeout(callback, delay, time) {
-  var t = new Timer;
-  delay = delay == null ? 0 : +delay;
-  t.restart(elapsed => {
-    t.stop();
-    callback(elapsed + delay);
-  }, delay, time);
-  return t;
-}
-
-function interval(callback, delay, time) {
-  var t = new Timer, total = delay;
-  if (delay == null) return t.restart(callback, delay, time), t;
-  t._restart = t.restart;
-  t.restart = function(callback, delay, time) {
-    delay = +delay, time = time == null ? now() : +time;
-    t._restart(function tick(elapsed) {
-      elapsed += total;
-      t._restart(tick, total += delay, time);
-      callback(elapsed);
-    }, delay, time);
-  };
-  t.restart(callback, delay, time);
-  return t;
-}
-
-var emptyOn = dispatch("start", "end", "cancel", "interrupt");
-var emptyTween = [];
-
-var CREATED = 0;
-var SCHEDULED = 1;
-var STARTING = 2;
-var STARTED = 3;
-var RUNNING = 4;
-var ENDING = 5;
-var ENDED = 6;
-
-function schedule(node, name, id, index, group, timing) {
-  var schedules = node.__transition;
-  if (!schedules) node.__transition = {};
-  else if (id in schedules) return;
-  create(node, id, {
-    name: name,
-    index: index, // For context during callback.
-    group: group, // For context during callback.
-    on: emptyOn,
-    tween: emptyTween,
-    time: timing.time,
-    delay: timing.delay,
-    duration: timing.duration,
-    ease: timing.ease,
-    timer: null,
-    state: CREATED
-  });
-}
-
-function init(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > CREATED) throw new Error("too late; already scheduled");
-  return schedule;
-}
-
-function set(node, id) {
-  var schedule = get(node, id);
-  if (schedule.state > STARTED) throw new Error("too late; already running");
-  return schedule;
-}
-
-function get(node, id) {
-  var schedule = node.__transition;
-  if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
-  return schedule;
-}
-
-function create(node, id, self) {
-  var schedules = node.__transition,
-      tween;
-
-  // Initialize the self timer when the transition is created.
-  // Note the actual delay is not known until the first callback!
-  schedules[id] = self;
-  self.timer = timer(schedule, 0, self.time);
-
-  function schedule(elapsed) {
-    self.state = SCHEDULED;
-    self.timer.restart(start, self.delay, self.time);
-
-    // If the elapsed delay is less than our first sleep, start immediately.
-    if (self.delay <= elapsed) start(elapsed - self.delay);
-  }
-
-  function start(elapsed) {
-    var i, j, n, o;
-
-    // If the state is not SCHEDULED, then we previously errored on start.
-    if (self.state !== SCHEDULED) return stop();
-
-    for (i in schedules) {
-      o = schedules[i];
-      if (o.name !== self.name) continue;
-
-      // While this element already has a starting transition during this frame,
-      // defer starting an interrupting transition until that transition has a
-      // chance to tick (and possibly end); see d3/d3-transition#54!
-      if (o.state === STARTED) return timeout(start);
-
-      // Interrupt the active transition, if any.
-      if (o.state === RUNNING) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("interrupt", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-
-      // Cancel any pre-empted transitions.
-      else if (+i < id) {
-        o.state = ENDED;
-        o.timer.stop();
-        o.on.call("cancel", node, node.__data__, o.index, o.group);
-        delete schedules[i];
-      }
-    }
-
-    // Defer the first tick to end of the current frame; see d3/d3#1576.
-    // Note the transition may be canceled after start and before the first tick!
-    // Note this must be scheduled before the start event; see d3/d3-transition#16!
-    // Assuming this is successful, subsequent callbacks go straight to tick.
-    timeout(function() {
-      if (self.state === STARTED) {
-        self.state = RUNNING;
-        self.timer.restart(tick, self.delay, self.time);
-        tick(elapsed);
-      }
-    });
-
-    // Dispatch the start event.
-    // Note this must be done before the tween are initialized.
-    self.state = STARTING;
-    self.on.call("start", node, node.__data__, self.index, self.group);
-    if (self.state !== STARTING) return; // interrupted
-    self.state = STARTED;
-
-    // Initialize the tween, deleting null tween.
-    tween = new Array(n = self.tween.length);
-    for (i = 0, j = -1; i < n; ++i) {
-      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
-        tween[++j] = o;
-      }
-    }
-    tween.length = j + 1;
-  }
-
-  function tick(elapsed) {
-    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
-        i = -1,
-        n = tween.length;
-
-    while (++i < n) {
-      tween[i].call(node, t);
-    }
-
-    // Dispatch the end event.
-    if (self.state === ENDING) {
-      self.on.call("end", node, node.__data__, self.index, self.group);
-      stop();
-    }
-  }
-
-  function stop() {
-    self.state = ENDED;
-    self.timer.stop();
-    delete schedules[id];
-    for (var i in schedules) return; // eslint-disable-line no-unused-vars
-    delete node.__transition;
-  }
-}
-
-function interrupt(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      active,
-      empty = true,
-      i;
-
-  if (!schedules) return;
-
-  name = name == null ? null : name + "";
-
-  for (i in schedules) {
-    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
-    active = schedule.state > STARTING && schedule.state < ENDING;
-    schedule.state = ENDED;
-    schedule.timer.stop();
-    schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
-    delete schedules[i];
-  }
-
-  if (empty) delete node.__transition;
-}
-
-function selection_interrupt(name) {
-  return this.each(function() {
-    interrupt(this, name);
-  });
-}
-
-function tweenRemove(id, name) {
-  var tween0, tween1;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = tween0 = tween;
-      for (var i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1 = tween1.slice();
-          tween1.splice(i, 1);
-          break;
-        }
-      }
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-function tweenFunction(id, name, value) {
-  var tween0, tween1;
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    var schedule = set(this, id),
-        tween = schedule.tween;
-
-    // If this node shared tween with the previous node,
-    // just assign the updated shared tween and we’re done!
-    // Otherwise, copy-on-write.
-    if (tween !== tween0) {
-      tween1 = (tween0 = tween).slice();
-      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
-        if (tween1[i].name === name) {
-          tween1[i] = t;
-          break;
-        }
-      }
-      if (i === n) tween1.push(t);
-    }
-
-    schedule.tween = tween1;
-  };
-}
-
-function transition_tween(name, value) {
-  var id = this._id;
-
-  name += "";
-
-  if (arguments.length < 2) {
-    var tween = get(this.node(), id).tween;
-    for (var i = 0, n = tween.length, t; i < n; ++i) {
-      if ((t = tween[i]).name === name) {
-        return t.value;
-      }
-    }
-    return null;
-  }
-
-  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
-}
-
-function tweenValue(transition, name, value) {
-  var id = transition._id;
-
-  transition.each(function() {
-    var schedule = set(this, id);
-    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
-  });
-
-  return function(node) {
-    return get(node, id).value[name];
-  };
-}
-
-function interpolate$1(a, b) {
-  var c;
-  return (typeof b === "number" ? interpolateNumber
-      : b instanceof color ? interpolateRgb
-      : (c = color(b)) ? (b = c, interpolateRgb)
-      : interpolateString)(a, b);
-}
-
-function attrRemove(name) {
-  return function() {
-    this.removeAttribute(name);
-  };
-}
-
-function attrRemoveNS(fullname) {
-  return function() {
-    this.removeAttributeNS(fullname.space, fullname.local);
-  };
-}
-
-function attrConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttribute(name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrConstantNS(fullname, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = this.getAttributeNS(fullname.space, fullname.local);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function attrFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttribute(name);
-    string0 = this.getAttribute(name);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function attrFunctionNS(fullname, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0, value1 = value(this), string1;
-    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
-    string0 = this.getAttributeNS(fullname.space, fullname.local);
-    string1 = value1 + "";
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function transition_attr(name, value) {
-  var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1;
-  return this.attrTween(name, typeof value === "function"
-      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
-      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
-      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
-}
-
-function attrInterpolate(name, i) {
-  return function(t) {
-    this.setAttribute(name, i.call(this, t));
-  };
-}
-
-function attrInterpolateNS(fullname, i) {
-  return function(t) {
-    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
-  };
-}
-
-function attrTweenNS(fullname, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function attrTween(name, value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_attrTween(name, value) {
-  var key = "attr." + name;
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  var fullname = namespace(name);
-  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
-}
-
-function delayFunction(id, value) {
-  return function() {
-    init(this, id).delay = +value.apply(this, arguments);
-  };
-}
-
-function delayConstant(id, value) {
-  return value = +value, function() {
-    init(this, id).delay = value;
-  };
-}
-
-function transition_delay(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? delayFunction
-          : delayConstant)(id, value))
-      : get(this.node(), id).delay;
-}
-
-function durationFunction(id, value) {
-  return function() {
-    set(this, id).duration = +value.apply(this, arguments);
-  };
-}
-
-function durationConstant(id, value) {
-  return value = +value, function() {
-    set(this, id).duration = value;
-  };
-}
-
-function transition_duration(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each((typeof value === "function"
-          ? durationFunction
-          : durationConstant)(id, value))
-      : get(this.node(), id).duration;
-}
-
-function easeConstant(id, value) {
-  if (typeof value !== "function") throw new Error;
-  return function() {
-    set(this, id).ease = value;
-  };
-}
-
-function transition_ease(value) {
-  var id = this._id;
-
-  return arguments.length
-      ? this.each(easeConstant(id, value))
-      : get(this.node(), id).ease;
-}
-
-function easeVarying(id, value) {
-  return function() {
-    var v = value.apply(this, arguments);
-    if (typeof v !== "function") throw new Error;
-    set(this, id).ease = v;
-  };
-}
-
-function transition_easeVarying(value) {
-  if (typeof value !== "function") throw new Error;
-  return this.each(easeVarying(this._id, value));
-}
-
-function transition_filter(match) {
-  if (typeof match !== "function") match = matcher(match);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
-      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
-        subgroup.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, this._name, this._id);
-}
-
-function transition_merge(transition) {
-  if (transition._id !== this._id) throw new Error;
-
-  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
-    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
-      if (node = group0[i] || group1[i]) {
-        merge[i] = node;
-      }
-    }
-  }
-
-  for (; j < m0; ++j) {
-    merges[j] = groups0[j];
-  }
-
-  return new Transition(merges, this._parents, this._name, this._id);
-}
-
-function start(name) {
-  return (name + "").trim().split(/^|\s+/).every(function(t) {
-    var i = t.indexOf(".");
-    if (i >= 0) t = t.slice(0, i);
-    return !t || t === "start";
-  });
-}
-
-function onFunction(id, name, listener) {
-  var on0, on1, sit = start(name) ? init : set;
-  return function() {
-    var schedule = sit(this, id),
-        on = schedule.on;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
-
-    schedule.on = on1;
-  };
-}
-
-function transition_on(name, listener) {
-  var id = this._id;
-
-  return arguments.length < 2
-      ? get(this.node(), id).on.on(name)
-      : this.each(onFunction(id, name, listener));
-}
-
-function removeFunction(id) {
-  return function() {
-    var parent = this.parentNode;
-    for (var i in this.__transition) if (+i !== id) return;
-    if (parent) parent.removeChild(this);
-  };
-}
-
-function transition_remove() {
-  return this.on("end.remove", removeFunction(this._id));
-}
-
-function transition_select(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = selector(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
-      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
-        if ("__data__" in node) subnode.__data__ = node.__data__;
-        subgroup[i] = subnode;
-        schedule(subgroup[i], name, id, i, subgroup, get(node, id));
-      }
-    }
-  }
-
-  return new Transition(subgroups, this._parents, name, id);
-}
-
-function transition_selectAll(select) {
-  var name = this._name,
-      id = this._id;
-
-  if (typeof select !== "function") select = selectorAll(select);
-
-  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {
-          if (child = children[k]) {
-            schedule(child, name, id, k, children, inherit);
-          }
-        }
-        subgroups.push(children);
-        parents.push(node);
-      }
-    }
-  }
-
-  return new Transition(subgroups, parents, name, id);
-}
-
-var Selection = selection.prototype.constructor;
-
-function transition_selection() {
-  return new Selection(this._groups, this._parents);
-}
-
-function styleNull(name, interpolate) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = styleValue(this, name),
-        string1 = (this.style.removeProperty(name), styleValue(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, string10 = string1);
-  };
-}
-
-function styleRemove(name) {
-  return function() {
-    this.style.removeProperty(name);
-  };
-}
-
-function styleConstant(name, interpolate, value1) {
-  var string00,
-      string1 = value1 + "",
-      interpolate0;
-  return function() {
-    var string0 = styleValue(this, name);
-    return string0 === string1 ? null
-        : string0 === string00 ? interpolate0
-        : interpolate0 = interpolate(string00 = string0, value1);
-  };
-}
-
-function styleFunction(name, interpolate, value) {
-  var string00,
-      string10,
-      interpolate0;
-  return function() {
-    var string0 = styleValue(this, name),
-        value1 = value(this),
-        string1 = value1 + "";
-    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));
-    return string0 === string1 ? null
-        : string0 === string00 && string1 === string10 ? interpolate0
-        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
-  };
-}
-
-function styleMaybeRemove(id, name) {
-  var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
-  return function() {
-    var schedule = set(this, id),
-        on = schedule.on,
-        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;
-
-    // If this node shared a dispatch with the previous node,
-    // just assign the updated shared dispatch and we’re done!
-    // Otherwise, copy-on-write.
-    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
-
-    schedule.on = on1;
-  };
-}
-
-function transition_style(name, value, priority) {
-  var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1;
-  return value == null ? this
-      .styleTween(name, styleNull(name, i))
-      .on("end.style." + name, styleRemove(name))
-    : typeof value === "function" ? this
-      .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value)))
-      .each(styleMaybeRemove(this._id, name))
-    : this
-      .styleTween(name, styleConstant(name, i, value), priority)
-      .on("end.style." + name, null);
-}
-
-function styleInterpolate(name, i, priority) {
-  return function(t) {
-    this.style.setProperty(name, i.call(this, t), priority);
-  };
-}
-
-function styleTween(name, value, priority) {
-  var t, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
-    return t;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_styleTween(name, value, priority) {
-  var key = "style." + (name += "");
-  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
-}
-
-function textConstant(value) {
-  return function() {
-    this.textContent = value;
-  };
-}
-
-function textFunction(value) {
-  return function() {
-    var value1 = value(this);
-    this.textContent = value1 == null ? "" : value1;
-  };
-}
-
-function transition_text(value) {
-  return this.tween("text", typeof value === "function"
-      ? textFunction(tweenValue(this, "text", value))
-      : textConstant(value == null ? "" : value + ""));
-}
-
-function textInterpolate(i) {
-  return function(t) {
-    this.textContent = i.call(this, t);
-  };
-}
-
-function textTween(value) {
-  var t0, i0;
-  function tween() {
-    var i = value.apply(this, arguments);
-    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
-    return t0;
-  }
-  tween._value = value;
-  return tween;
-}
-
-function transition_textTween(value) {
-  var key = "text";
-  if (arguments.length < 1) return (key = this.tween(key)) && key._value;
-  if (value == null) return this.tween(key, null);
-  if (typeof value !== "function") throw new Error;
-  return this.tween(key, textTween(value));
-}
-
-function transition_transition() {
-  var name = this._name,
-      id0 = this._id,
-      id1 = newId();
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        var inherit = get(node, id0);
-        schedule(node, name, id1, i, group, {
-          time: inherit.time + inherit.delay + inherit.duration,
-          delay: 0,
-          duration: inherit.duration,
-          ease: inherit.ease
-        });
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id1);
-}
-
-function transition_end() {
-  var on0, on1, that = this, id = that._id, size = that.size();
-  return new Promise(function(resolve, reject) {
-    var cancel = {value: reject},
-        end = {value: function() { if (--size === 0) resolve(); }};
-
-    that.each(function() {
-      var schedule = set(this, id),
-          on = schedule.on;
-
-      // If this node shared a dispatch with the previous node,
-      // just assign the updated shared dispatch and we’re done!
-      // Otherwise, copy-on-write.
-      if (on !== on0) {
-        on1 = (on0 = on).copy();
-        on1._.cancel.push(cancel);
-        on1._.interrupt.push(cancel);
-        on1._.end.push(end);
-      }
-
-      schedule.on = on1;
-    });
-
-    // The selection was empty, resolve end immediately
-    if (size === 0) resolve();
-  });
-}
-
-var id = 0;
-
-function Transition(groups, parents, name, id) {
-  this._groups = groups;
-  this._parents = parents;
-  this._name = name;
-  this._id = id;
-}
-
-function transition(name) {
-  return selection().transition(name);
-}
-
-function newId() {
-  return ++id;
-}
-
-var selection_prototype = selection.prototype;
-
-Transition.prototype = transition.prototype = {
-  constructor: Transition,
-  select: transition_select,
-  selectAll: transition_selectAll,
-  selectChild: selection_prototype.selectChild,
-  selectChildren: selection_prototype.selectChildren,
-  filter: transition_filter,
-  merge: transition_merge,
-  selection: transition_selection,
-  transition: transition_transition,
-  call: selection_prototype.call,
-  nodes: selection_prototype.nodes,
-  node: selection_prototype.node,
-  size: selection_prototype.size,
-  empty: selection_prototype.empty,
-  each: selection_prototype.each,
-  on: transition_on,
-  attr: transition_attr,
-  attrTween: transition_attrTween,
-  style: transition_style,
-  styleTween: transition_styleTween,
-  text: transition_text,
-  textTween: transition_textTween,
-  remove: transition_remove,
-  tween: transition_tween,
-  delay: transition_delay,
-  duration: transition_duration,
-  ease: transition_ease,
-  easeVarying: transition_easeVarying,
-  end: transition_end,
-  [Symbol.iterator]: selection_prototype[Symbol.iterator]
-};
-
-const linear$1 = t => +t;
-
-function quadIn(t) {
-  return t * t;
-}
-
-function quadOut(t) {
-  return t * (2 - t);
-}
-
-function quadInOut(t) {
-  return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
-}
-
-function cubicIn(t) {
-  return t * t * t;
-}
-
-function cubicOut(t) {
-  return --t * t * t + 1;
-}
-
-function cubicInOut(t) {
-  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
-}
-
-var exponent$1 = 3;
-
-var polyIn = (function custom(e) {
-  e = +e;
-
-  function polyIn(t) {
-    return Math.pow(t, e);
-  }
-
-  polyIn.exponent = custom;
-
-  return polyIn;
-})(exponent$1);
-
-var polyOut = (function custom(e) {
-  e = +e;
-
-  function polyOut(t) {
-    return 1 - Math.pow(1 - t, e);
-  }
-
-  polyOut.exponent = custom;
-
-  return polyOut;
-})(exponent$1);
-
-var polyInOut = (function custom(e) {
-  e = +e;
-
-  function polyInOut(t) {
-    return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
-  }
-
-  polyInOut.exponent = custom;
-
-  return polyInOut;
-})(exponent$1);
-
-var pi$4 = Math.PI,
-    halfPi$3 = pi$4 / 2;
-
-function sinIn(t) {
-  return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3);
-}
-
-function sinOut(t) {
-  return Math.sin(t * halfPi$3);
-}
-
-function sinInOut(t) {
-  return (1 - Math.cos(pi$4 * t)) / 2;
-}
-
-// tpmt is two power minus ten times t scaled to [0,1]
-function tpmt(x) {
-  return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
-}
-
-function expIn(t) {
-  return tpmt(1 - +t);
-}
-
-function expOut(t) {
-  return 1 - tpmt(t);
-}
-
-function expInOut(t) {
-  return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;
-}
-
-function circleIn(t) {
-  return 1 - Math.sqrt(1 - t * t);
-}
-
-function circleOut(t) {
-  return Math.sqrt(1 - --t * t);
-}
-
-function circleInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
-}
-
-var b1 = 4 / 11,
-    b2 = 6 / 11,
-    b3 = 8 / 11,
-    b4 = 3 / 4,
-    b5 = 9 / 11,
-    b6 = 10 / 11,
-    b7 = 15 / 16,
-    b8 = 21 / 22,
-    b9 = 63 / 64,
-    b0 = 1 / b1 / b1;
-
-function bounceIn(t) {
-  return 1 - bounceOut(1 - t);
-}
-
-function bounceOut(t) {
-  return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
-}
-
-function bounceInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
-}
-
-var overshoot = 1.70158;
-
-var backIn = (function custom(s) {
-  s = +s;
-
-  function backIn(t) {
-    return (t = +t) * t * (s * (t - 1) + t);
-  }
-
-  backIn.overshoot = custom;
-
-  return backIn;
-})(overshoot);
-
-var backOut = (function custom(s) {
-  s = +s;
-
-  function backOut(t) {
-    return --t * t * ((t + 1) * s + t) + 1;
-  }
-
-  backOut.overshoot = custom;
-
-  return backOut;
-})(overshoot);
-
-var backInOut = (function custom(s) {
-  s = +s;
-
-  function backInOut(t) {
-    return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
-  }
-
-  backInOut.overshoot = custom;
-
-  return backInOut;
-})(overshoot);
-
-var tau$5 = 2 * Math.PI,
-    amplitude = 1,
-    period = 0.3;
-
-var elasticIn = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5);
-
-  function elasticIn(t) {
-    return a * tpmt(-(--t)) * Math.sin((s - t) / p);
-  }
-
-  elasticIn.amplitude = function(a) { return custom(a, p * tau$5); };
-  elasticIn.period = function(p) { return custom(a, p); };
-
-  return elasticIn;
-})(amplitude, period);
-
-var elasticOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5);
-
-  function elasticOut(t) {
-    return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);
-  }
-
-  elasticOut.amplitude = function(a) { return custom(a, p * tau$5); };
-  elasticOut.period = function(p) { return custom(a, p); };
-
-  return elasticOut;
-})(amplitude, period);
-
-var elasticInOut = (function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5);
-
-  function elasticInOut(t) {
-    return ((t = t * 2 - 1) < 0
-        ? a * tpmt(-t) * Math.sin((s - t) / p)
-        : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;
-  }
-
-  elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); };
-  elasticInOut.period = function(p) { return custom(a, p); };
-
-  return elasticInOut;
-})(amplitude, period);
-
-var defaultTiming = {
-  time: null, // Set on use.
-  delay: 0,
-  duration: 250,
-  ease: cubicInOut
-};
-
-function inherit(node, id) {
-  var timing;
-  while (!(timing = node.__transition) || !(timing = timing[id])) {
-    if (!(node = node.parentNode)) {
-      throw new Error(`transition ${id} not found`);
-    }
-  }
-  return timing;
-}
-
-function selection_transition(name) {
-  var id,
-      timing;
-
-  if (name instanceof Transition) {
-    id = name._id, name = name._name;
-  } else {
-    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
-  }
-
-  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
-    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
-      if (node = group[i]) {
-        schedule(node, name, id, i, group, timing || inherit(node, id));
-      }
-    }
-  }
-
-  return new Transition(groups, this._parents, name, id);
-}
-
-selection.prototype.interrupt = selection_interrupt;
-selection.prototype.transition = selection_transition;
-
-var root = [null];
-
-function active(node, name) {
-  var schedules = node.__transition,
-      schedule,
-      i;
-
-  if (schedules) {
-    name = name == null ? null : name + "";
-    for (i in schedules) {
-      if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {
-        return new Transition([[node]], root, name, +i);
-      }
-    }
-  }
-
-  return null;
-}
-
-var constant$7 = x => () => x;
-
-function BrushEvent(type, {
-  sourceEvent,
-  target,
-  selection,
-  mode,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    selection: {value: selection, enumerable: true, configurable: true},
-    mode: {value: mode, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-function nopropagation$1(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent$1(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-var MODE_DRAG = {name: "drag"},
-    MODE_SPACE = {name: "space"},
-    MODE_HANDLE = {name: "handle"},
-    MODE_CENTER = {name: "center"};
-
-const {abs: abs$3, max: max$2, min: min$1} = Math;
-
-function number1(e) {
-  return [+e[0], +e[1]];
-}
-
-function number2(e) {
-  return [number1(e[0]), number1(e[1])];
-}
-
-var X = {
-  name: "x",
-  handles: ["w", "e"].map(type),
-  input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },
-  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
-};
-
-var Y = {
-  name: "y",
-  handles: ["n", "s"].map(type),
-  input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },
-  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
-};
-
-var XY = {
-  name: "xy",
-  handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
-  input: function(xy) { return xy == null ? null : number2(xy); },
-  output: function(xy) { return xy; }
-};
-
-var cursors = {
-  overlay: "crosshair",
-  selection: "move",
-  n: "ns-resize",
-  e: "ew-resize",
-  s: "ns-resize",
-  w: "ew-resize",
-  nw: "nwse-resize",
-  ne: "nesw-resize",
-  se: "nwse-resize",
-  sw: "nesw-resize"
-};
-
-var flipX = {
-  e: "w",
-  w: "e",
-  nw: "ne",
-  ne: "nw",
-  se: "sw",
-  sw: "se"
-};
-
-var flipY = {
-  n: "s",
-  s: "n",
-  nw: "sw",
-  ne: "se",
-  se: "ne",
-  sw: "nw"
-};
-
-var signsX = {
-  overlay: +1,
-  selection: +1,
-  n: null,
-  e: +1,
-  s: null,
-  w: -1,
-  nw: -1,
-  ne: +1,
-  se: +1,
-  sw: -1
-};
-
-var signsY = {
-  overlay: +1,
-  selection: +1,
-  n: -1,
-  e: null,
-  s: +1,
-  w: null,
-  nw: -1,
-  ne: -1,
-  se: +1,
-  sw: +1
-};
-
-function type(t) {
-  return {type: t};
-}
-
-// Ignore right-click, since that should open the context menu.
-function defaultFilter$1(event) {
-  return !event.ctrlKey && !event.button;
-}
-
-function defaultExtent$1() {
-  var svg = this.ownerSVGElement || this;
-  if (svg.hasAttribute("viewBox")) {
-    svg = svg.viewBox.baseVal;
-    return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
-  }
-  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
-}
-
-function defaultTouchable$1() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-// Like d3.local, but with the name “__brush” rather than auto-generated.
-function local(node) {
-  while (!node.__brush) if (!(node = node.parentNode)) return;
-  return node.__brush;
-}
-
-function empty(extent) {
-  return extent[0][0] === extent[1][0]
-      || extent[0][1] === extent[1][1];
-}
-
-function brushSelection(node) {
-  var state = node.__brush;
-  return state ? state.dim.output(state.selection) : null;
-}
-
-function brushX() {
-  return brush$1(X);
-}
-
-function brushY() {
-  return brush$1(Y);
-}
-
-function brush() {
-  return brush$1(XY);
-}
-
-function brush$1(dim) {
-  var extent = defaultExtent$1,
-      filter = defaultFilter$1,
-      touchable = defaultTouchable$1,
-      keys = true,
-      listeners = dispatch("start", "brush", "end"),
-      handleSize = 6,
-      touchending;
-
-  function brush(group) {
-    var overlay = group
-        .property("__brush", initialize)
-      .selectAll(".overlay")
-      .data([type("overlay")]);
-
-    overlay.enter().append("rect")
-        .attr("class", "overlay")
-        .attr("pointer-events", "all")
-        .attr("cursor", cursors.overlay)
-      .merge(overlay)
-        .each(function() {
-          var extent = local(this).extent;
-          select(this)
-              .attr("x", extent[0][0])
-              .attr("y", extent[0][1])
-              .attr("width", extent[1][0] - extent[0][0])
-              .attr("height", extent[1][1] - extent[0][1]);
-        });
-
-    group.selectAll(".selection")
-      .data([type("selection")])
-      .enter().append("rect")
-        .attr("class", "selection")
-        .attr("cursor", cursors.selection)
-        .attr("fill", "#777")
-        .attr("fill-opacity", 0.3)
-        .attr("stroke", "#fff")
-        .attr("shape-rendering", "crispEdges");
-
-    var handle = group.selectAll(".handle")
-      .data(dim.handles, function(d) { return d.type; });
-
-    handle.exit().remove();
-
-    handle.enter().append("rect")
-        .attr("class", function(d) { return "handle handle--" + d.type; })
-        .attr("cursor", function(d) { return cursors[d.type]; });
-
-    group
-        .each(redraw)
-        .attr("fill", "none")
-        .attr("pointer-events", "all")
-        .on("mousedown.brush", started)
-      .filter(touchable)
-        .on("touchstart.brush", started)
-        .on("touchmove.brush", touchmoved)
-        .on("touchend.brush touchcancel.brush", touchended)
-        .style("touch-action", "none")
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  brush.move = function(group, selection, event) {
-    if (group.tween) {
-      group
-          .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); })
-          .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); })
-          .tween("brush", function() {
-            var that = this,
-                state = that.__brush,
-                emit = emitter(that, arguments),
-                selection0 = state.selection,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
-                i = interpolate$2(selection0, selection1);
-
-            function tween(t) {
-              state.selection = t === 1 && selection1 === null ? null : i(t);
-              redraw.call(that);
-              emit.brush();
-            }
-
-            return selection0 !== null && selection1 !== null ? tween : tween(1);
-          });
-    } else {
-      group
-          .each(function() {
-            var that = this,
-                args = arguments,
-                state = that.__brush,
-                selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
-                emit = emitter(that, args).beforestart();
-
-            interrupt(that);
-            state.selection = selection1 === null ? null : selection1;
-            redraw.call(that);
-            emit.start(event).brush(event).end(event);
-          });
-    }
-  };
-
-  brush.clear = function(group, event) {
-    brush.move(group, null, event);
-  };
-
-  function redraw() {
-    var group = select(this),
-        selection = local(this).selection;
-
-    if (selection) {
-      group.selectAll(".selection")
-          .style("display", null)
-          .attr("x", selection[0][0])
-          .attr("y", selection[0][1])
-          .attr("width", selection[1][0] - selection[0][0])
-          .attr("height", selection[1][1] - selection[0][1]);
-
-      group.selectAll(".handle")
-          .style("display", null)
-          .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
-          .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
-          .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
-          .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
-    }
-
-    else {
-      group.selectAll(".selection,.handle")
-          .style("display", "none")
-          .attr("x", null)
-          .attr("y", null)
-          .attr("width", null)
-          .attr("height", null);
-    }
-  }
-
-  function emitter(that, args, clean) {
-    var emit = that.__brush.emitter;
-    return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);
-  }
-
-  function Emitter(that, args, clean) {
-    this.that = that;
-    this.args = args;
-    this.state = that.__brush;
-    this.active = 0;
-    this.clean = clean;
-  }
-
-  Emitter.prototype = {
-    beforestart: function() {
-      if (++this.active === 1) this.state.emitter = this, this.starting = true;
-      return this;
-    },
-    start: function(event, mode) {
-      if (this.starting) this.starting = false, this.emit("start", event, mode);
-      else this.emit("brush", event);
-      return this;
-    },
-    brush: function(event, mode) {
-      this.emit("brush", event, mode);
-      return this;
-    },
-    end: function(event, mode) {
-      if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode);
-      return this;
-    },
-    emit: function(type, event, mode) {
-      var d = select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new BrushEvent(type, {
-          sourceEvent: event,
-          target: brush,
-          selection: dim.output(this.state.selection),
-          mode,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function started(event) {
-    if (touchending && !event.touches) return;
-    if (!filter.apply(this, arguments)) return;
-
-    var that = this,
-        type = event.target.__data__.type,
-        mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),
-        signX = dim === Y ? null : signsX[type],
-        signY = dim === X ? null : signsY[type],
-        state = local(that),
-        extent = state.extent,
-        selection = state.selection,
-        W = extent[0][0], w0, w1,
-        N = extent[0][1], n0, n1,
-        E = extent[1][0], e0, e1,
-        S = extent[1][1], s0, s1,
-        dx = 0,
-        dy = 0,
-        moving,
-        shifting = signX && signY && keys && event.shiftKey,
-        lockX,
-        lockY,
-        points = Array.from(event.touches || [event], t => {
-          const i = t.identifier;
-          t = pointer(t, that);
-          t.point0 = t.slice();
-          t.identifier = i;
-          return t;
-        });
-
-    interrupt(that);
-    var emit = emitter(that, arguments, true).beforestart();
-
-    if (type === "overlay") {
-      if (selection) moving = true;
-      const pts = [points[0], points[1] || points[0]];
-      state.selection = selection = [[
-          w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]),
-          n0 = dim === X ? N : min$1(pts[0][1], pts[1][1])
-        ], [
-          e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]),
-          s0 = dim === X ? S : max$2(pts[0][1], pts[1][1])
-        ]];
-      if (points.length > 1) move(event);
-    } else {
-      w0 = selection[0][0];
-      n0 = selection[0][1];
-      e0 = selection[1][0];
-      s0 = selection[1][1];
-    }
-
-    w1 = w0;
-    n1 = n0;
-    e1 = e0;
-    s1 = s0;
-
-    var group = select(that)
-        .attr("pointer-events", "none");
-
-    var overlay = group.selectAll(".overlay")
-        .attr("cursor", cursors[type]);
-
-    if (event.touches) {
-      emit.moved = moved;
-      emit.ended = ended;
-    } else {
-      var view = select(event.view)
-          .on("mousemove.brush", moved, true)
-          .on("mouseup.brush", ended, true);
-      if (keys) view
-          .on("keydown.brush", keydowned, true)
-          .on("keyup.brush", keyupped, true);
-
-      dragDisable(event.view);
-    }
-
-    redraw.call(that);
-    emit.start(event, mode.name);
-
-    function moved(event) {
-      for (const p of event.changedTouches || [event]) {
-        for (const d of points)
-          if (d.identifier === p.identifier) d.cur = pointer(p, that);
-      }
-      if (shifting && !lockX && !lockY && points.length === 1) {
-        const point = points[0];
-        if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1]))
-          lockY = true;
-        else
-          lockX = true;
-      }
-      for (const point of points)
-        if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];
-      moving = true;
-      noevent$1(event);
-      move(event);
-    }
-
-    function move(event) {
-      const point = points[0], point0 = point.point0;
-      var t;
-
-      dx = point[0] - point0[0];
-      dy = point[1] - point0[1];
-
-      switch (mode) {
-        case MODE_SPACE:
-        case MODE_DRAG: {
-          if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
-          if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
-          break;
-        }
-        case MODE_HANDLE: {
-          if (points[1]) {
-            if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1;
-            if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1;
-          } else {
-            if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0;
-            else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx;
-            if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0;
-            else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy;
-          }
-          break;
-        }
-        case MODE_CENTER: {
-          if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX));
-          if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY));
-          break;
-        }
-      }
-
-      if (e1 < w1) {
-        signX *= -1;
-        t = w0, w0 = e0, e0 = t;
-        t = w1, w1 = e1, e1 = t;
-        if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
-      }
-
-      if (s1 < n1) {
-        signY *= -1;
-        t = n0, n0 = s0, s0 = t;
-        t = n1, n1 = s1, s1 = t;
-        if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
-      }
-
-      if (state.selection) selection = state.selection; // May be set by brush.move!
-      if (lockX) w1 = selection[0][0], e1 = selection[1][0];
-      if (lockY) n1 = selection[0][1], s1 = selection[1][1];
-
-      if (selection[0][0] !== w1
-          || selection[0][1] !== n1
-          || selection[1][0] !== e1
-          || selection[1][1] !== s1) {
-        state.selection = [[w1, n1], [e1, s1]];
-        redraw.call(that);
-        emit.brush(event, mode.name);
-      }
-    }
-
-    function ended(event) {
-      nopropagation$1(event);
-      if (event.touches) {
-        if (event.touches.length) return;
-        if (touchending) clearTimeout(touchending);
-        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
-      } else {
-        yesdrag(event.view, moving);
-        view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
-      }
-      group.attr("pointer-events", "all");
-      overlay.attr("cursor", cursors.overlay);
-      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
-      if (empty(selection)) state.selection = null, redraw.call(that);
-      emit.end(event, mode.name);
-    }
-
-    function keydowned(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          shifting = signX && signY;
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_HANDLE) {
-            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-            mode = MODE_CENTER;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE; takes priority over ALT
-          if (mode === MODE_HANDLE || mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
-            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
-            mode = MODE_SPACE;
-            overlay.attr("cursor", cursors.selection);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent$1(event);
-    }
-
-    function keyupped(event) {
-      switch (event.keyCode) {
-        case 16: { // SHIFT
-          if (shifting) {
-            lockX = lockY = shifting = false;
-            move(event);
-          }
-          break;
-        }
-        case 18: { // ALT
-          if (mode === MODE_CENTER) {
-            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-            mode = MODE_HANDLE;
-            move(event);
-          }
-          break;
-        }
-        case 32: { // SPACE
-          if (mode === MODE_SPACE) {
-            if (event.altKey) {
-              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
-              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
-              mode = MODE_CENTER;
-            } else {
-              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
-              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
-              mode = MODE_HANDLE;
-            }
-            overlay.attr("cursor", cursors[type]);
-            move(event);
-          }
-          break;
-        }
-        default: return;
-      }
-      noevent$1(event);
-    }
-  }
-
-  function touchmoved(event) {
-    emitter(this, arguments).moved(event);
-  }
-
-  function touchended(event) {
-    emitter(this, arguments).ended(event);
-  }
-
-  function initialize() {
-    var state = this.__brush || {selection: null};
-    state.extent = number2(extent.apply(this, arguments));
-    state.dim = dim;
-    return state;
-  }
-
-  brush.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent;
-  };
-
-  brush.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter;
-  };
-
-  brush.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable;
-  };
-
-  brush.handleSize = function(_) {
-    return arguments.length ? (handleSize = +_, brush) : handleSize;
-  };
-
-  brush.keyModifiers = function(_) {
-    return arguments.length ? (keys = !!_, brush) : keys;
-  };
-
-  brush.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? brush : value;
-  };
-
-  return brush;
-}
-
-var abs$2 = Math.abs;
-var cos$2 = Math.cos;
-var sin$2 = Math.sin;
-var pi$3 = Math.PI;
-var halfPi$2 = pi$3 / 2;
-var tau$4 = pi$3 * 2;
-var max$1 = Math.max;
-var epsilon$5 = 1e-12;
-
-function range$1(i, j) {
-  return Array.from({length: j - i}, (_, k) => i + k);
-}
-
-function compareValue(compare) {
-  return function(a, b) {
-    return compare(
-      a.source.value + a.target.value,
-      b.source.value + b.target.value
-    );
-  };
-}
-
-function chord() {
-  return chord$1(false, false);
-}
-
-function chordTranspose() {
-  return chord$1(false, true);
-}
-
-function chordDirected() {
-  return chord$1(true, false);
-}
-
-function chord$1(directed, transpose) {
-  var padAngle = 0,
-      sortGroups = null,
-      sortSubgroups = null,
-      sortChords = null;
-
-  function chord(matrix) {
-    var n = matrix.length,
-        groupSums = new Array(n),
-        groupIndex = range$1(0, n),
-        chords = new Array(n * n),
-        groups = new Array(n),
-        k = 0, dx;
-
-    matrix = Float64Array.from({length: n * n}, transpose
-        ? (_, i) => matrix[i % n][i / n | 0]
-        : (_, i) => matrix[i / n | 0][i % n]);
-
-    // Compute the scaling factor from value to angle in [0, 2pi].
-    for (let i = 0; i < n; ++i) {
-      let x = 0;
-      for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];
-      k += groupSums[i] = x;
-    }
-    k = max$1(0, tau$4 - padAngle * n) / k;
-    dx = k ? padAngle : tau$4 / n;
-
-    // Compute the angles for each group and constituent chord.
-    {
-      let x = 0;
-      if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));
-      for (const i of groupIndex) {
-        const x0 = x;
-        if (directed) {
-          const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            if (j < 0) {
-              const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};
-            } else {
-              const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        } else {
-          const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);
-          if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));
-          for (const j of subgroupIndex) {
-            let chord;
-            if (i < j) {
-              chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
-              chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-            } else {
-              chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});
-              chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
-              if (i === j) chord.source = chord.target;
-            }
-            if (chord.source && chord.target && chord.source.value < chord.target.value) {
-              const source = chord.source;
-              chord.source = chord.target;
-              chord.target = source;
-            }
-          }
-          groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
-        }
-        x += dx;
-      }
-    }
-
-    // Remove empty chords.
-    chords = Object.values(chords);
-    chords.groups = groups;
-    return sortChords ? chords.sort(sortChords) : chords;
-  }
-
-  chord.padAngle = function(_) {
-    return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle;
-  };
-
-  chord.sortGroups = function(_) {
-    return arguments.length ? (sortGroups = _, chord) : sortGroups;
-  };
-
-  chord.sortSubgroups = function(_) {
-    return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
-  };
-
-  chord.sortChords = function(_) {
-    return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
-  };
-
-  return chord;
-}
-
-const pi$2 = Math.PI,
-    tau$3 = 2 * pi$2,
-    epsilon$4 = 1e-6,
-    tauEpsilon = tau$3 - epsilon$4;
-
-function append$1(strings) {
-  this._ += strings[0];
-  for (let i = 1, n = strings.length; i < n; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound$1(digits) {
-  let d = Math.floor(digits);
-  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
-  if (d > 15) return append$1;
-  const k = 10 ** d;
-  return function(strings) {
-    this._ += strings[0];
-    for (let i = 1, n = strings.length; i < n; ++i) {
-      this._ += Math.round(arguments[i] * k) / k + strings[i];
-    }
-  };
-}
-
-let Path$1 = class Path {
-  constructor(digits) {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-    this._append = digits == null ? append$1 : appendRound$1(digits);
-  }
-  moveTo(x, y) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._append`Z`;
-    }
-  }
-  lineTo(x, y) {
-    this._append`L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  quadraticCurveTo(x1, y1, x, y) {
-    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  bezierCurveTo(x1, y1, x2, y2, x, y) {
-    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arcTo(x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let x0 = this._x1,
-        y0 = this._y1,
-        x21 = x2 - x1,
-        y21 = y2 - y1,
-        x01 = x0 - x1,
-        y01 = y0 - y1,
-        l01_2 = x01 * x01 + y01 * y01;
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._append`M${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon$4));
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$4) || !r) {
-      this._append`L${this._x1 = x1},${this._y1 = y1}`;
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      let x20 = x2 - x0,
-          y20 = y2 - y0,
-          l21_2 = x21 * x21 + y21 * y21,
-          l20_2 = x20 * x20 + y20 * y20,
-          l21 = Math.sqrt(l21_2),
-          l01 = Math.sqrt(l01_2),
-          l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-          t01 = l / l01,
-          t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon$4) {
-        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
-      }
-
-      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
-    }
-  }
-  arc(x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error(`negative radius: ${r}`);
-
-    let dx = r * Math.cos(a0),
-        dy = r * Math.sin(a0),
-        x0 = x + dx,
-        y0 = y + dy,
-        cw = 1 ^ ccw,
-        da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._append`M${x0},${y0}`;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon$4 || Math.abs(this._y1 - y0) > epsilon$4) {
-      this._append`L${x0},${y0}`;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau$3 + tau$3;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon$4) {
-      this._append`A${r},${r},0,${+(da >= pi$2)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;
-    }
-  }
-  rect(x, y, w, h) {
-    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
-  }
-  toString() {
-    return this._;
-  }
-};
-
-function path() {
-  return new Path$1;
-}
-
-// Allow instanceof d3.path
-path.prototype = Path$1.prototype;
-
-function pathRound(digits = 3) {
-  return new Path$1(+digits);
-}
-
-var slice$2 = Array.prototype.slice;
-
-function constant$6(x) {
-  return function() {
-    return x;
-  };
-}
-
-function defaultSource$1(d) {
-  return d.source;
-}
-
-function defaultTarget(d) {
-  return d.target;
-}
-
-function defaultRadius$1(d) {
-  return d.radius;
-}
-
-function defaultStartAngle(d) {
-  return d.startAngle;
-}
-
-function defaultEndAngle(d) {
-  return d.endAngle;
-}
-
-function defaultPadAngle() {
-  return 0;
-}
-
-function defaultArrowheadRadius() {
-  return 10;
-}
-
-function ribbon(headRadius) {
-  var source = defaultSource$1,
-      target = defaultTarget,
-      sourceRadius = defaultRadius$1,
-      targetRadius = defaultRadius$1,
-      startAngle = defaultStartAngle,
-      endAngle = defaultEndAngle,
-      padAngle = defaultPadAngle,
-      context = null;
-
-  function ribbon() {
-    var buffer,
-        s = source.apply(this, arguments),
-        t = target.apply(this, arguments),
-        ap = padAngle.apply(this, arguments) / 2,
-        argv = slice$2.call(arguments),
-        sr = +sourceRadius.apply(this, (argv[0] = s, argv)),
-        sa0 = startAngle.apply(this, argv) - halfPi$2,
-        sa1 = endAngle.apply(this, argv) - halfPi$2,
-        tr = +targetRadius.apply(this, (argv[0] = t, argv)),
-        ta0 = startAngle.apply(this, argv) - halfPi$2,
-        ta1 = endAngle.apply(this, argv) - halfPi$2;
-
-    if (!context) context = buffer = path();
-
-    if (ap > epsilon$5) {
-      if (abs$2(sa1 - sa0) > ap * 2 + epsilon$5) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);
-      else sa0 = sa1 = (sa0 + sa1) / 2;
-      if (abs$2(ta1 - ta0) > ap * 2 + epsilon$5) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);
-      else ta0 = ta1 = (ta0 + ta1) / 2;
-    }
-
-    context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0));
-    context.arc(0, 0, sr, sa0, sa1);
-    if (sa0 !== ta0 || sa1 !== ta1) {
-      if (headRadius) {
-        var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;
-        context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0));
-        context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2));
-        context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1));
-      } else {
-        context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0));
-        context.arc(0, 0, tr, ta0, ta1);
-      }
-    }
-    context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0));
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  if (headRadius) ribbon.headRadius = function(_) {
-    return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius;
-  };
-
-  ribbon.radius = function(_) {
-    return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.sourceRadius = function(_) {
-    return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius;
-  };
-
-  ribbon.targetRadius = function(_) {
-    return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius;
-  };
-
-  ribbon.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle;
-  };
-
-  ribbon.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle;
-  };
-
-  ribbon.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle;
-  };
-
-  ribbon.source = function(_) {
-    return arguments.length ? (source = _, ribbon) : source;
-  };
-
-  ribbon.target = function(_) {
-    return arguments.length ? (target = _, ribbon) : target;
-  };
-
-  ribbon.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
-  };
-
-  return ribbon;
-}
-
-function ribbon$1() {
-  return ribbon();
-}
-
-function ribbonArrow() {
-  return ribbon(defaultArrowheadRadius);
-}
-
-var array$2 = Array.prototype;
-
-var slice$1 = array$2.slice;
-
-function ascending$1(a, b) {
-  return a - b;
-}
-
-function area$3(ring) {
-  var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
-  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
-  return area;
-}
-
-var constant$5 = x => () => x;
-
-function contains$2(ring, hole) {
-  var i = -1, n = hole.length, c;
-  while (++i < n) if (c = ringContains(ring, hole[i])) return c;
-  return 0;
-}
-
-function ringContains(ring, point) {
-  var x = point[0], y = point[1], contains = -1;
-  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
-    var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
-    if (segmentContains(pi, pj, point)) return 0;
-    if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
-  }
-  return contains;
-}
-
-function segmentContains(a, b, c) {
-  var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
-}
-
-function collinear$1(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
-}
-
-function within(p, q, r) {
-  return p <= q && q <= r || r <= q && q <= p;
-}
-
-function noop$2() {}
-
-var cases = [
-  [],
-  [[[1.0, 1.5], [0.5, 1.0]]],
-  [[[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [0.5, 1.0]]],
-  [[[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
-  [[[1.0, 0.5], [1.0, 1.5]]],
-  [[[1.0, 0.5], [0.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 0.5]]],
-  [[[1.0, 1.5], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
-  [[[1.5, 1.0], [1.0, 0.5]]],
-  [[[0.5, 1.0], [1.5, 1.0]]],
-  [[[1.0, 1.5], [1.5, 1.0]]],
-  [[[0.5, 1.0], [1.0, 1.5]]],
-  []
-];
-
-function Contours() {
-  var dx = 1,
-      dy = 1,
-      threshold = thresholdSturges,
-      smooth = smoothLinear;
-
-  function contours(values) {
-    var tz = threshold(values);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      const e = extent$1(values, finite);
-      tz = ticks(...nice$1(e[0], e[1], tz), tz);
-      while (tz[tz.length - 1] >= e[1]) tz.pop();
-      while (tz[1] < e[0]) tz.shift();
-    } else {
-      tz = tz.slice().sort(ascending$1);
-    }
-
-    return tz.map(value => contour(values, value));
-  }
-
-  // Accumulate, smooth contour rings, assign holes to exterior rings.
-  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
-  function contour(values, value) {
-    const v = value == null ? NaN : +value;
-    if (isNaN(v)) throw new Error(`invalid value: ${value}`);
-
-    var polygons = [],
-        holes = [];
-
-    isorings(values, v, function(ring) {
-      smooth(ring, values, v);
-      if (area$3(ring) > 0) polygons.push([ring]);
-      else holes.push(ring);
-    });
-
-    holes.forEach(function(hole) {
-      for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
-        if (contains$2((polygon = polygons[i])[0], hole) !== -1) {
-          polygon.push(hole);
-          return;
-        }
-      }
-    });
-
-    return {
-      type: "MultiPolygon",
-      value: value,
-      coordinates: polygons
-    };
-  }
-
-  // Marching squares with isolines stitched into rings.
-  // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
-  function isorings(values, value, callback) {
-    var fragmentByStart = new Array,
-        fragmentByEnd = new Array,
-        x, y, t0, t1, t2, t3;
-
-    // Special case for the first row (y = -1, t2 = t3 = 0).
-    x = y = -1;
-    t1 = above(values[0], value);
-    cases[t1 << 1].forEach(stitch);
-    while (++x < dx - 1) {
-      t0 = t1, t1 = above(values[x + 1], value);
-      cases[t0 | t1 << 1].forEach(stitch);
-    }
-    cases[t1 << 0].forEach(stitch);
-
-    // General case for the intermediate rows.
-    while (++y < dy - 1) {
-      x = -1;
-      t1 = above(values[y * dx + dx], value);
-      t2 = above(values[y * dx], value);
-      cases[t1 << 1 | t2 << 2].forEach(stitch);
-      while (++x < dx - 1) {
-        t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
-        t3 = t2, t2 = above(values[y * dx + x + 1], value);
-        cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
-      }
-      cases[t1 | t2 << 3].forEach(stitch);
-    }
-
-    // Special case for the last row (y = dy - 1, t0 = t1 = 0).
-    x = -1;
-    t2 = values[y * dx] >= value;
-    cases[t2 << 2].forEach(stitch);
-    while (++x < dx - 1) {
-      t3 = t2, t2 = above(values[y * dx + x + 1], value);
-      cases[t2 << 2 | t3 << 3].forEach(stitch);
-    }
-    cases[t2 << 3].forEach(stitch);
-
-    function stitch(line) {
-      var start = [line[0][0] + x, line[0][1] + y],
-          end = [line[1][0] + x, line[1][1] + y],
-          startIndex = index(start),
-          endIndex = index(end),
-          f, g;
-      if (f = fragmentByEnd[startIndex]) {
-        if (g = fragmentByStart[endIndex]) {
-          delete fragmentByEnd[f.end];
-          delete fragmentByStart[g.start];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
-          }
-        } else {
-          delete fragmentByEnd[f.end];
-          f.ring.push(end);
-          fragmentByEnd[f.end = endIndex] = f;
-        }
-      } else if (f = fragmentByStart[endIndex]) {
-        if (g = fragmentByEnd[startIndex]) {
-          delete fragmentByStart[f.start];
-          delete fragmentByEnd[g.end];
-          if (f === g) {
-            f.ring.push(end);
-            callback(f.ring);
-          } else {
-            fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
-          }
-        } else {
-          delete fragmentByStart[f.start];
-          f.ring.unshift(start);
-          fragmentByStart[f.start = startIndex] = f;
-        }
-      } else {
-        fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
-      }
-    }
-  }
-
-  function index(point) {
-    return point[0] * 2 + point[1] * (dx + 1) * 4;
-  }
-
-  function smoothLinear(ring, values, value) {
-    ring.forEach(function(point) {
-      var x = point[0],
-          y = point[1],
-          xt = x | 0,
-          yt = y | 0,
-          v1 = valid(values[yt * dx + xt]);
-      if (x > 0 && x < dx && xt === x) {
-        point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
-      }
-      if (y > 0 && y < dy && yt === y) {
-        point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
-      }
-    });
-  }
-
-  contours.contour = contour;
-
-  contours.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, contours;
-  };
-
-  contours.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold;
-  };
-
-  contours.smooth = function(_) {
-    return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear;
-  };
-
-  return contours;
-}
-
-// When computing the extent, ignore infinite values (as well as invalid ones).
-function finite(x) {
-  return isFinite(x) ? x : NaN;
-}
-
-// Is the (possibly invalid) x greater than or equal to the (known valid) value?
-// Treat any invalid value as below negative infinity.
-function above(x, value) {
-  return x == null ? false : +x >= value;
-}
-
-// During smoothing, treat any invalid value as negative infinity.
-function valid(v) {
-  return v == null || isNaN(v = +v) ? -Infinity : v;
-}
-
-function smooth1(x, v0, v1, value) {
-  const a = value - v0;
-  const b = v1 - v0;
-  const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
-  return isNaN(d) ? x : x + d - 0.5;
-}
-
-function defaultX$1(d) {
-  return d[0];
-}
-
-function defaultY$1(d) {
-  return d[1];
-}
-
-function defaultWeight() {
-  return 1;
-}
-
-function density() {
-  var x = defaultX$1,
-      y = defaultY$1,
-      weight = defaultWeight,
-      dx = 960,
-      dy = 500,
-      r = 20, // blur radius
-      k = 2, // log2(grid cell size)
-      o = r * 3, // grid offset, to pad for blur
-      n = (dx + o * 2) >> k, // grid width
-      m = (dy + o * 2) >> k, // grid height
-      threshold = constant$5(20);
-
-  function grid(data) {
-    var values = new Float32Array(n * m),
-        pow2k = Math.pow(2, -k),
-        i = -1;
-
-    for (const d of data) {
-      var xi = (x(d, ++i, data) + o) * pow2k,
-          yi = (y(d, i, data) + o) * pow2k,
-          wi = +weight(d, i, data);
-      if (wi && xi >= 0 && xi < n && yi >= 0 && yi < m) {
-        var x0 = Math.floor(xi),
-            y0 = Math.floor(yi),
-            xt = xi - x0 - 0.5,
-            yt = yi - y0 - 0.5;
-        values[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi;
-        values[x0 + 1 + y0 * n] += xt * (1 - yt) * wi;
-        values[x0 + 1 + (y0 + 1) * n] += xt * yt * wi;
-        values[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi;
-      }
-    }
-
-    blur2({data: values, width: n, height: m}, r * pow2k);
-    return values;
-  }
-
-  function density(data) {
-    var values = grid(data),
-        tz = threshold(values),
-        pow4k = Math.pow(2, 2 * k);
-
-    // Convert number of thresholds into uniform thresholds.
-    if (!Array.isArray(tz)) {
-      tz = ticks(Number.MIN_VALUE, max$3(values) / pow4k, tz);
-    }
-
-    return Contours()
-        .size([n, m])
-        .thresholds(tz.map(d => d * pow4k))
-      (values)
-        .map((c, i) => (c.value = +tz[i], transform(c)));
-  }
-
-  density.contours = function(data) {
-    var values = grid(data),
-        contours = Contours().size([n, m]),
-        pow4k = Math.pow(2, 2 * k),
-        contour = value => {
-          value = +value;
-          var c = transform(contours.contour(values, value * pow4k));
-          c.value = value; // preserve exact threshold value
-          return c;
-        };
-    Object.defineProperty(contour, "max", {get: () => max$3(values) / pow4k});
-    return contour;
-  };
-
-  function transform(geometry) {
-    geometry.coordinates.forEach(transformPolygon);
-    return geometry;
-  }
-
-  function transformPolygon(coordinates) {
-    coordinates.forEach(transformRing);
-  }
-
-  function transformRing(coordinates) {
-    coordinates.forEach(transformPoint);
-  }
-
-  // TODO Optimize.
-  function transformPoint(coordinates) {
-    coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
-    coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
-  }
-
-  function resize() {
-    o = r * 3;
-    n = (dx + o * 2) >> k;
-    m = (dy + o * 2) >> k;
-    return density;
-  }
-
-  density.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x;
-  };
-
-  density.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y;
-  };
-
-  density.weight = function(_) {
-    return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight;
-  };
-
-  density.size = function(_) {
-    if (!arguments.length) return [dx, dy];
-    var _0 = +_[0], _1 = +_[1];
-    if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
-    return dx = _0, dy = _1, resize();
-  };
-
-  density.cellSize = function(_) {
-    if (!arguments.length) return 1 << k;
-    if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
-    return k = Math.floor(Math.log(_) / Math.LN2), resize();
-  };
-
-  density.thresholds = function(_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold;
-  };
-
-  density.bandwidth = function(_) {
-    if (!arguments.length) return Math.sqrt(r * (r + 1));
-    if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
-    return r = (Math.sqrt(4 * _ * _ + 1) - 1) / 2, resize();
-  };
-
-  return density;
-}
-
-const epsilon$3 = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon$3) * epsilon$3;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum$1(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const ccwerrboundA = (3 + 16 * epsilon$3) * epsilon$3;
-const ccwerrboundB = (2 + 12 * epsilon$3) * epsilon$3;
-const ccwerrboundC = (9 + 64 * epsilon$3) * epsilon$3 * epsilon$3;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C1len = sum$1(4, B, 4, u, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C2len = sum$1(C1len, C1, 4, u, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const Dlen = sum$1(C2len, C2, 4, u, D);
-
-    return D[Dlen - 1];
-}
-
-function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-const EPSILON = Math.pow(2, -52);
-const EDGE_STACK = new Uint32Array(512);
-
-class Delaunator {
-
-    static from(points, getX = defaultGetX, getY = defaultGetY) {
-        const n = points.length;
-        const coords = new Float64Array(n * 2);
-
-        for (let i = 0; i < n; i++) {
-            const p = points[i];
-            coords[2 * i] = getX(p);
-            coords[2 * i + 1] = getY(p);
-        }
-
-        return new Delaunator(coords);
-    }
-
-    constructor(coords) {
-        const n = coords.length >> 1;
-        if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');
-
-        this.coords = coords;
-
-        // arrays that will store the triangulation graph
-        const maxTriangles = Math.max(2 * n - 5, 0);
-        this._triangles = new Uint32Array(maxTriangles * 3);
-        this._halfedges = new Int32Array(maxTriangles * 3);
-
-        // temporary arrays for tracking the edges of the advancing convex hull
-        this._hashSize = Math.ceil(Math.sqrt(n));
-        this._hullPrev = new Uint32Array(n); // edge to prev edge
-        this._hullNext = new Uint32Array(n); // edge to next edge
-        this._hullTri = new Uint32Array(n); // edge to adjacent triangle
-        this._hullHash = new Int32Array(this._hashSize); // angular edge hash
-
-        // temporary arrays for sorting points
-        this._ids = new Uint32Array(n);
-        this._dists = new Float64Array(n);
-
-        this.update();
-    }
-
-    update() {
-        const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} =  this;
-        const n = coords.length >> 1;
-
-        // populate an array of point indices; calculate input data bbox
-        let minX = Infinity;
-        let minY = Infinity;
-        let maxX = -Infinity;
-        let maxY = -Infinity;
-
-        for (let i = 0; i < n; i++) {
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-            if (x < minX) minX = x;
-            if (y < minY) minY = y;
-            if (x > maxX) maxX = x;
-            if (y > maxY) maxY = y;
-            this._ids[i] = i;
-        }
-        const cx = (minX + maxX) / 2;
-        const cy = (minY + maxY) / 2;
-
-        let i0, i1, i2;
-
-        // pick a seed point close to the center
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist) {
-                i0 = i;
-                minDist = d;
-            }
-        }
-        const i0x = coords[2 * i0];
-        const i0y = coords[2 * i0 + 1];
-
-        // find the point closest to the seed
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            if (i === i0) continue;
-            const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist && d > 0) {
-                i1 = i;
-                minDist = d;
-            }
-        }
-        let i1x = coords[2 * i1];
-        let i1y = coords[2 * i1 + 1];
-
-        let minRadius = Infinity;
-
-        // find the third point which forms the smallest circumcircle with the first two
-        for (let i = 0; i < n; i++) {
-            if (i === i0 || i === i1) continue;
-            const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);
-            if (r < minRadius) {
-                i2 = i;
-                minRadius = r;
-            }
-        }
-        let i2x = coords[2 * i2];
-        let i2y = coords[2 * i2 + 1];
-
-        if (minRadius === Infinity) {
-            // order collinear points by dx (or dy if all x are identical)
-            // and return the list as a hull
-            for (let i = 0; i < n; i++) {
-                this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);
-            }
-            quicksort(this._ids, this._dists, 0, n - 1);
-            const hull = new Uint32Array(n);
-            let j = 0;
-            for (let i = 0, d0 = -Infinity; i < n; i++) {
-                const id = this._ids[i];
-                const d = this._dists[id];
-                if (d > d0) {
-                    hull[j++] = id;
-                    d0 = d;
-                }
-            }
-            this.hull = hull.subarray(0, j);
-            this.triangles = new Uint32Array(0);
-            this.halfedges = new Uint32Array(0);
-            return;
-        }
-
-        // swap the order of the seed points for counter-clockwise orientation
-        if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {
-            const i = i1;
-            const x = i1x;
-            const y = i1y;
-            i1 = i2;
-            i1x = i2x;
-            i1y = i2y;
-            i2 = i;
-            i2x = x;
-            i2y = y;
-        }
-
-        const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);
-        this._cx = center.x;
-        this._cy = center.y;
-
-        for (let i = 0; i < n; i++) {
-            this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);
-        }
-
-        // sort the points by distance from the seed triangle circumcenter
-        quicksort(this._ids, this._dists, 0, n - 1);
-
-        // set up the seed triangle as the starting hull
-        this._hullStart = i0;
-        let hullSize = 3;
-
-        hullNext[i0] = hullPrev[i2] = i1;
-        hullNext[i1] = hullPrev[i0] = i2;
-        hullNext[i2] = hullPrev[i1] = i0;
-
-        hullTri[i0] = 0;
-        hullTri[i1] = 1;
-        hullTri[i2] = 2;
-
-        hullHash.fill(-1);
-        hullHash[this._hashKey(i0x, i0y)] = i0;
-        hullHash[this._hashKey(i1x, i1y)] = i1;
-        hullHash[this._hashKey(i2x, i2y)] = i2;
-
-        this.trianglesLen = 0;
-        this._addTriangle(i0, i1, i2, -1, -1, -1);
-
-        for (let k = 0, xp, yp; k < this._ids.length; k++) {
-            const i = this._ids[k];
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-
-            // skip near-duplicate points
-            if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;
-            xp = x;
-            yp = y;
-
-            // skip seed triangle points
-            if (i === i0 || i === i1 || i === i2) continue;
-
-            // find a visible edge on the convex hull using edge hash
-            let start = 0;
-            for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {
-                start = hullHash[(key + j) % this._hashSize];
-                if (start !== -1 && start !== hullNext[start]) break;
-            }
-
-            start = hullPrev[start];
-            let e = start, q;
-            while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {
-                e = q;
-                if (e === start) {
-                    e = -1;
-                    break;
-                }
-            }
-            if (e === -1) continue; // likely a near-duplicate point; skip it
-
-            // add the first triangle from the point
-            let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);
-
-            // recursively flip triangles from the point until they satisfy the Delaunay condition
-            hullTri[i] = this._legalize(t + 2);
-            hullTri[e] = t; // keep track of boundary triangles on the hull
-            hullSize++;
-
-            // walk forward through the hull, adding more triangles and flipping recursively
-            let n = hullNext[e];
-            while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {
-                t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);
-                hullTri[i] = this._legalize(t + 2);
-                hullNext[n] = n; // mark as removed
-                hullSize--;
-                n = q;
-            }
-
-            // walk backward from the other side, adding more triangles and flipping
-            if (e === start) {
-                while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {
-                    t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);
-                    this._legalize(t + 2);
-                    hullTri[q] = t;
-                    hullNext[e] = e; // mark as removed
-                    hullSize--;
-                    e = q;
-                }
-            }
-
-            // update the hull indices
-            this._hullStart = hullPrev[i] = e;
-            hullNext[e] = hullPrev[n] = i;
-            hullNext[i] = n;
-
-            // save the two new edges in the hash table
-            hullHash[this._hashKey(x, y)] = i;
-            hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;
-        }
-
-        this.hull = new Uint32Array(hullSize);
-        for (let i = 0, e = this._hullStart; i < hullSize; i++) {
-            this.hull[i] = e;
-            e = hullNext[e];
-        }
-
-        // trim typed triangle mesh arrays
-        this.triangles = this._triangles.subarray(0, this.trianglesLen);
-        this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
-    }
-
-    _hashKey(x, y) {
-        return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;
-    }
-
-    _legalize(a) {
-        const {_triangles: triangles, _halfedges: halfedges, coords} = this;
-
-        let i = 0;
-        let ar = 0;
-
-        // recursion eliminated with a fixed-size stack
-        while (true) {
-            const b = halfedges[a];
-
-            /* if the pair of triangles doesn't satisfy the Delaunay condition
-             * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
-             * then do the same check/flip recursively for the new pair of triangles
-             *
-             *           pl                    pl
-             *          /||\                  /  \
-             *       al/ || \bl            al/    \a
-             *        /  ||  \              /      \
-             *       /  a||b  \    flip    /___ar___\
-             *     p0\   ||   /p1   =>   p0\---bl---/p1
-             *        \  ||  /              \      /
-             *       ar\ || /br             b\    /br
-             *          \||/                  \  /
-             *           pr                    pr
-             */
-            const a0 = a - a % 3;
-            ar = a0 + (a + 2) % 3;
-
-            if (b === -1) { // convex hull edge
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-                continue;
-            }
-
-            const b0 = b - b % 3;
-            const al = a0 + (a + 1) % 3;
-            const bl = b0 + (b + 2) % 3;
-
-            const p0 = triangles[ar];
-            const pr = triangles[a];
-            const pl = triangles[al];
-            const p1 = triangles[bl];
-
-            const illegal = inCircle(
-                coords[2 * p0], coords[2 * p0 + 1],
-                coords[2 * pr], coords[2 * pr + 1],
-                coords[2 * pl], coords[2 * pl + 1],
-                coords[2 * p1], coords[2 * p1 + 1]);
-
-            if (illegal) {
-                triangles[a] = p1;
-                triangles[b] = p0;
-
-                const hbl = halfedges[bl];
-
-                // edge swapped on the other side of the hull (rare); fix the halfedge reference
-                if (hbl === -1) {
-                    let e = this._hullStart;
-                    do {
-                        if (this._hullTri[e] === bl) {
-                            this._hullTri[e] = a;
-                            break;
-                        }
-                        e = this._hullPrev[e];
-                    } while (e !== this._hullStart);
-                }
-                this._link(a, hbl);
-                this._link(b, halfedges[ar]);
-                this._link(ar, bl);
-
-                const br = b0 + (b + 1) % 3;
-
-                // don't worry about hitting the cap: it can only happen on extremely degenerate input
-                if (i < EDGE_STACK.length) {
-                    EDGE_STACK[i++] = br;
-                }
-            } else {
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-            }
-        }
-
-        return ar;
-    }
-
-    _link(a, b) {
-        this._halfedges[a] = b;
-        if (b !== -1) this._halfedges[b] = a;
-    }
-
-    // add a new triangle given vertex indices and adjacent half-edge ids
-    _addTriangle(i0, i1, i2, a, b, c) {
-        const t = this.trianglesLen;
-
-        this._triangles[t] = i0;
-        this._triangles[t + 1] = i1;
-        this._triangles[t + 2] = i2;
-
-        this._link(t, a);
-        this._link(t + 1, b);
-        this._link(t + 2, c);
-
-        this.trianglesLen += 3;
-
-        return t;
-    }
-}
-
-// monotonically increases with real angle, but doesn't need expensive trigonometry
-function pseudoAngle(dx, dy) {
-    const p = dx / (Math.abs(dx) + Math.abs(dy));
-    return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]
-}
-
-function dist(ax, ay, bx, by) {
-    const dx = ax - bx;
-    const dy = ay - by;
-    return dx * dx + dy * dy;
-}
-
-function inCircle(ax, ay, bx, by, cx, cy, px, py) {
-    const dx = ax - px;
-    const dy = ay - py;
-    const ex = bx - px;
-    const ey = by - py;
-    const fx = cx - px;
-    const fy = cy - py;
-
-    const ap = dx * dx + dy * dy;
-    const bp = ex * ex + ey * ey;
-    const cp = fx * fx + fy * fy;
-
-    return dx * (ey * cp - bp * fy) -
-           dy * (ex * cp - bp * fx) +
-           ap * (ex * fy - ey * fx) < 0;
-}
-
-function circumradius(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = (ey * bl - dy * cl) * d;
-    const y = (dx * cl - ex * bl) * d;
-
-    return x * x + y * y;
-}
-
-function circumcenter(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = ax + (ey * bl - dy * cl) * d;
-    const y = ay + (dx * cl - ex * bl) * d;
-
-    return {x, y};
-}
-
-function quicksort(ids, dists, left, right) {
-    if (right - left <= 20) {
-        for (let i = left + 1; i <= right; i++) {
-            const temp = ids[i];
-            const tempDist = dists[temp];
-            let j = i - 1;
-            while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];
-            ids[j + 1] = temp;
-        }
-    } else {
-        const median = (left + right) >> 1;
-        let i = left + 1;
-        let j = right;
-        swap(ids, median, i);
-        if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);
-        if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);
-        if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);
-
-        const temp = ids[i];
-        const tempDist = dists[temp];
-        while (true) {
-            do i++; while (dists[ids[i]] < tempDist);
-            do j--; while (dists[ids[j]] > tempDist);
-            if (j < i) break;
-            swap(ids, i, j);
-        }
-        ids[left + 1] = ids[j];
-        ids[j] = temp;
-
-        if (right - i + 1 >= j - left) {
-            quicksort(ids, dists, i, right);
-            quicksort(ids, dists, left, j - 1);
-        } else {
-            quicksort(ids, dists, left, j - 1);
-            quicksort(ids, dists, i, right);
-        }
-    }
-}
-
-function swap(arr, i, j) {
-    const tmp = arr[i];
-    arr[i] = arr[j];
-    arr[j] = tmp;
-}
-
-function defaultGetX(p) {
-    return p[0];
-}
-function defaultGetY(p) {
-    return p[1];
-}
-
-const epsilon$2 = 1e-6;
-
-class Path {
-  constructor() {
-    this._x0 = this._y0 = // start of current subpath
-    this._x1 = this._y1 = null; // end of current subpath
-    this._ = "";
-  }
-  moveTo(x, y) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
-  }
-  closePath() {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  }
-  lineTo(x, y) {
-    this._ += `L${this._x1 = +x},${this._y1 = +y}`;
-  }
-  arc(x, y, r) {
-    x = +x, y = +y, r = +r;
-    const x0 = x + r;
-    const y0 = y;
-    if (r < 0) throw new Error("negative radius");
-    if (this._x1 === null) this._ += `M${x0},${y0}`;
-    else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0;
-    if (!r) return;
-    this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;
-  }
-  rect(x, y, w, h) {
-    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;
-  }
-  value() {
-    return this._ || null;
-  }
-}
-
-class Polygon {
-  constructor() {
-    this._ = [];
-  }
-  moveTo(x, y) {
-    this._.push([x, y]);
-  }
-  closePath() {
-    this._.push(this._[0].slice());
-  }
-  lineTo(x, y) {
-    this._.push([x, y]);
-  }
-  value() {
-    return this._.length ? this._ : null;
-  }
-}
-
-class Voronoi {
-  constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {
-    if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds");
-    this.delaunay = delaunay;
-    this._circumcenters = new Float64Array(delaunay.points.length * 2);
-    this.vectors = new Float64Array(delaunay.points.length * 2);
-    this.xmax = xmax, this.xmin = xmin;
-    this.ymax = ymax, this.ymin = ymin;
-    this._init();
-  }
-  update() {
-    this.delaunay.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const {delaunay: {points, hull, triangles}, vectors} = this;
-    let bx, by; // lazily computed barycenter of the hull
-
-    // Compute circumcenters.
-    const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);
-    for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {
-      const t1 = triangles[i] * 2;
-      const t2 = triangles[i + 1] * 2;
-      const t3 = triangles[i + 2] * 2;
-      const x1 = points[t1];
-      const y1 = points[t1 + 1];
-      const x2 = points[t2];
-      const y2 = points[t2 + 1];
-      const x3 = points[t3];
-      const y3 = points[t3 + 1];
-
-      const dx = x2 - x1;
-      const dy = y2 - y1;
-      const ex = x3 - x1;
-      const ey = y3 - y1;
-      const ab = (dx * ey - dy * ex) * 2;
-
-      if (Math.abs(ab) < 1e-9) {
-        // For a degenerate triangle, the circumcenter is at the infinity, in a
-        // direction orthogonal to the halfedge and away from the “center” of
-        // the diagram <bx, by>, defined as the hull’s barycenter.
-        if (bx === undefined) {
-          bx = by = 0;
-          for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];
-          bx /= hull.length, by /= hull.length;
-        }
-        const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);
-        x = (x1 + x3) / 2 - a * ey;
-        y = (y1 + y3) / 2 + a * ex;
-      } else {
-        const d = 1 / ab;
-        const bl = dx * dx + dy * dy;
-        const cl = ex * ex + ey * ey;
-        x = x1 + (ey * bl - dy * cl) * d;
-        y = y1 + (dx * cl - ex * bl) * d;
-      }
-      circumcenters[j] = x;
-      circumcenters[j + 1] = y;
-    }
-
-    // Compute exterior cell rays.
-    let h = hull[hull.length - 1];
-    let p0, p1 = h * 4;
-    let x0, x1 = points[2 * h];
-    let y0, y1 = points[2 * h + 1];
-    vectors.fill(0);
-    for (let i = 0; i < hull.length; ++i) {
-      h = hull[i];
-      p0 = p1, x0 = x1, y0 = y1;
-      p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];
-      vectors[p0 + 2] = vectors[p1] = y0 - y1;
-      vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;
-    }
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;
-    if (hull.length <= 1) return null;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = Math.floor(i / 3) * 2;
-      const tj = Math.floor(j / 3) * 2;
-      const xi = circumcenters[ti];
-      const yi = circumcenters[ti + 1];
-      const xj = circumcenters[tj];
-      const yj = circumcenters[tj + 1];
-      this._renderSegment(xi, yi, xj, yj, context);
-    }
-    let h0, h1 = hull[hull.length - 1];
-    for (let i = 0; i < hull.length; ++i) {
-      h0 = h1, h1 = hull[i];
-      const t = Math.floor(inedges[h1] / 3) * 2;
-      const x = circumcenters[t];
-      const y = circumcenters[t + 1];
-      const v = h0 * 4;
-      const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);
-      if (p) this._renderSegment(x, y, p[0], p[1], context);
-    }
-    return buffer && buffer.value();
-  }
-  renderBounds(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);
-    return buffer && buffer.value();
-  }
-  renderCell(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const points = this._clip(i);
-    if (points === null || !points.length) return;
-    context.moveTo(points[0], points[1]);
-    let n = points.length;
-    while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;
-    for (let i = 2; i < n; i += 2) {
-      if (points[i] !== points[i-2] || points[i+1] !== points[i-1])
-        context.lineTo(points[i], points[i + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *cellPolygons() {
-    const {delaunay: {points}} = this;
-    for (let i = 0, n = points.length / 2; i < n; ++i) {
-      const cell = this.cellPolygon(i);
-      if (cell) cell.index = i, yield cell;
-    }
-  }
-  cellPolygon(i) {
-    const polygon = new Polygon;
-    this.renderCell(i, polygon);
-    return polygon.value();
-  }
-  _renderSegment(x0, y0, x1, y1, context) {
-    let S;
-    const c0 = this._regioncode(x0, y0);
-    const c1 = this._regioncode(x1, y1);
-    if (c0 === 0 && c1 === 0) {
-      context.moveTo(x0, y0);
-      context.lineTo(x1, y1);
-    } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {
-      context.moveTo(S[0], S[1]);
-      context.lineTo(S[2], S[3]);
-    }
-  }
-  contains(i, x, y) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return false;
-    return this.delaunay._step(i, x, y) === i;
-  }
-  *neighbors(i) {
-    const ci = this._clip(i);
-    if (ci) for (const j of this.delaunay.neighbors(i)) {
-      const cj = this._clip(j);
-      // find the common edge
-      if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {
-        for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {
-          if (ci[ai] === cj[aj]
-              && ci[ai + 1] === cj[aj + 1]
-              && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]
-              && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {
-            yield j;
-            break loop;
-          }
-        }
-      }
-    }
-  }
-  _cell(i) {
-    const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;
-    const e0 = inedges[i];
-    if (e0 === -1) return null; // coincident point
-    const points = [];
-    let e = e0;
-    do {
-      const t = Math.floor(e / 3);
-      points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-    } while (e !== e0 && e !== -1);
-    return points;
-  }
-  _clip(i) {
-    // degenerate case (1 valid point: return the box)
-    if (i === 0 && this.delaunay.hull.length === 1) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    const points = this._cell(i);
-    if (points === null) return null;
-    const {vectors: V} = this;
-    const v = i * 4;
-    return this._simplify(V[v] || V[v + 1]
-        ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])
-        : this._clipFinite(i, points));
-  }
-  _clipFinite(i, points) {
-    const n = points.length;
-    let P = null;
-    let x0, y0, x1 = points[n - 2], y1 = points[n - 1];
-    let c0, c1 = this._regioncode(x1, y1);
-    let e0, e1 = 0;
-    for (let j = 0; j < n; j += 2) {
-      x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];
-      c0 = c1, c1 = this._regioncode(x1, y1);
-      if (c0 === 0 && c1 === 0) {
-        e0 = e1, e1 = 0;
-        if (P) P.push(x1, y1);
-        else P = [x1, y1];
-      } else {
-        let S, sx0, sy0, sx1, sy1;
-        if (c0 === 0) {
-          if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;
-          [sx0, sy0, sx1, sy1] = S;
-        } else {
-          if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;
-          [sx1, sy1, sx0, sy0] = S;
-          e0 = e1, e1 = this._edgecode(sx0, sy0);
-          if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-          if (P) P.push(sx0, sy0);
-          else P = [sx0, sy0];
-        }
-        e0 = e1, e1 = this._edgecode(sx1, sy1);
-        if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-        if (P) P.push(sx1, sy1);
-        else P = [sx1, sy1];
-      }
-    }
-    if (P) {
-      e0 = e1, e1 = this._edgecode(P[0], P[1]);
-      if (e0 && e1) this._edge(i, e0, e1, P, P.length);
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
-    }
-    return P;
-  }
-  _clipSegment(x0, y0, x1, y1, c0, c1) {
-    // for more robustness, always consider the segment in the same order
-    const flip = c0 < c1;
-    if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];
-    while (true) {
-      if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];
-      if (c0 & c1) return null;
-      let x, y, c = c0 || c1;
-      if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;
-      else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;
-      else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;
-      else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;
-      if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);
-      else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);
-    }
-  }
-  _clipInfinite(i, points, vx0, vy0, vxn, vyn) {
-    let P = Array.from(points), p;
-    if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);
-    if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);
-    if (P = this._clipFinite(i, P)) {
-      for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {
-        c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);
-        if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;
-      }
-    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
-      P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];
-    }
-    return P;
-  }
-  _edge(i, e0, e1, P, j) {
-    while (e0 !== e1) {
-      let x, y;
-      switch (e0) {
-        case 0b0101: e0 = 0b0100; continue; // top-left
-        case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top
-        case 0b0110: e0 = 0b0010; continue; // top-right
-        case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right
-        case 0b1010: e0 = 0b1000; continue; // bottom-right
-        case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom
-        case 0b1001: e0 = 0b0001; continue; // bottom-left
-        case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left
-      }
-      // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are
-      // undefined, the conditional statement will be executed.
-      if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {
-        P.splice(j, 0, x, y), j += 2;
-      }
-    }
-    return j;
-  }
-  _project(x0, y0, vx, vy) {
-    let t = Infinity, c, x, y;
-    if (vy < 0) { // top
-      if (y0 <= this.ymin) return null;
-      if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;
-    } else if (vy > 0) { // bottom
-      if (y0 >= this.ymax) return null;
-      if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;
-    }
-    if (vx > 0) { // right
-      if (x0 >= this.xmax) return null;
-      if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;
-    } else if (vx < 0) { // left
-      if (x0 <= this.xmin) return null;
-      if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;
-    }
-    return [x, y];
-  }
-  _edgecode(x, y) {
-    return (x === this.xmin ? 0b0001
-        : x === this.xmax ? 0b0010 : 0b0000)
-        | (y === this.ymin ? 0b0100
-        : y === this.ymax ? 0b1000 : 0b0000);
-  }
-  _regioncode(x, y) {
-    return (x < this.xmin ? 0b0001
-        : x > this.xmax ? 0b0010 : 0b0000)
-        | (y < this.ymin ? 0b0100
-        : y > this.ymax ? 0b1000 : 0b0000);
-  }
-  _simplify(P) {
-    if (P && P.length > 4) {
-      for (let i = 0; i < P.length; i+= 2) {
-        const j = (i + 2) % P.length, k = (i + 4) % P.length;
-        if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {
-          P.splice(j, 2), i -= 2;
-        }
-      }
-      if (!P.length) P = null;
-    }
-    return P;
-  }
-}
-
-const tau$2 = 2 * Math.PI, pow$2 = Math.pow;
-
-function pointX(p) {
-  return p[0];
-}
-
-function pointY(p) {
-  return p[1];
-}
-
-// A triangulation is collinear if all its triangles have a non-null area
-function collinear(d) {
-  const {triangles, coords} = d;
-  for (let i = 0; i < triangles.length; i += 3) {
-    const a = 2 * triangles[i],
-          b = 2 * triangles[i + 1],
-          c = 2 * triangles[i + 2],
-          cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])
-                - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);
-    if (cross > 1e-10) return false;
-  }
-  return true;
-}
-
-function jitter(x, y, r) {
-  return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];
-}
-
-class Delaunay {
-  static from(points, fx = pointX, fy = pointY, that) {
-    return new Delaunay("length" in points
-        ? flatArray(points, fx, fy, that)
-        : Float64Array.from(flatIterable(points, fx, fy, that)));
-  }
-  constructor(points) {
-    this._delaunator = new Delaunator(points);
-    this.inedges = new Int32Array(points.length / 2);
-    this._hullIndex = new Int32Array(points.length / 2);
-    this.points = this._delaunator.coords;
-    this._init();
-  }
-  update() {
-    this._delaunator.update();
-    this._init();
-    return this;
-  }
-  _init() {
-    const d = this._delaunator, points = this.points;
-
-    // check for collinear
-    if (d.hull && d.hull.length > 2 && collinear(d)) {
-      this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)
-        .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors
-      const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],
-        bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],
-        r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);
-      for (let i = 0, n = points.length / 2; i < n; ++i) {
-        const p = jitter(points[2 * i], points[2 * i + 1], r);
-        points[2 * i] = p[0];
-        points[2 * i + 1] = p[1];
-      }
-      this._delaunator = new Delaunator(points);
-    } else {
-      delete this.collinear;
-    }
-
-    const halfedges = this.halfedges = this._delaunator.halfedges;
-    const hull = this.hull = this._delaunator.hull;
-    const triangles = this.triangles = this._delaunator.triangles;
-    const inedges = this.inedges.fill(-1);
-    const hullIndex = this._hullIndex.fill(-1);
-
-    // Compute an index from each point to an (arbitrary) incoming halfedge
-    // Used to give the first neighbor of each point; for this reason,
-    // on the hull we give priority to exterior halfedges
-    for (let e = 0, n = halfedges.length; e < n; ++e) {
-      const p = triangles[e % 3 === 2 ? e - 2 : e + 1];
-      if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;
-    }
-    for (let i = 0, n = hull.length; i < n; ++i) {
-      hullIndex[hull[i]] = i;
-    }
-
-    // degenerate case: 1 or 2 (distinct) points
-    if (hull.length <= 2 && hull.length > 0) {
-      this.triangles = new Int32Array(3).fill(-1);
-      this.halfedges = new Int32Array(3).fill(-1);
-      this.triangles[0] = hull[0];
-      inedges[hull[0]] = 1;
-      if (hull.length === 2) {
-        inedges[hull[1]] = 0;
-        this.triangles[1] = hull[1];
-        this.triangles[2] = hull[1];
-      }
-    }
-  }
-  voronoi(bounds) {
-    return new Voronoi(this, bounds);
-  }
-  *neighbors(i) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;
-
-    // degenerate case with several collinear points
-    if (collinear) {
-      const l = collinear.indexOf(i);
-      if (l > 0) yield collinear[l - 1];
-      if (l < collinear.length - 1) yield collinear[l + 1];
-      return;
-    }
-
-    const e0 = inedges[i];
-    if (e0 === -1) return; // coincident point
-    let e = e0, p0 = -1;
-    do {
-      yield p0 = triangles[e];
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) return; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        const p = hull[(_hullIndex[i] + 1) % hull.length];
-        if (p !== p0) yield p;
-        return;
-      }
-    } while (e !== e0);
-  }
-  find(x, y, i = 0) {
-    if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;
-    const i0 = i;
-    let c;
-    while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;
-    return c;
-  }
-  _step(i, x, y) {
-    const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;
-    if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);
-    let c = i;
-    let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2);
-    const e0 = inedges[i];
-    let e = e0;
-    do {
-      let t = triangles[e];
-      const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2);
-      if (dt < dc) dc = dt, c = t;
-      e = e % 3 === 2 ? e - 2 : e + 1;
-      if (triangles[e] !== i) break; // bad triangulation
-      e = halfedges[e];
-      if (e === -1) {
-        e = hull[(_hullIndex[i] + 1) % hull.length];
-        if (e !== t) {
-          if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e;
-        }
-        break;
-      }
-    } while (e !== e0);
-    return c;
-  }
-  render(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, halfedges, triangles} = this;
-    for (let i = 0, n = halfedges.length; i < n; ++i) {
-      const j = halfedges[i];
-      if (j < i) continue;
-      const ti = triangles[i] * 2;
-      const tj = triangles[j] * 2;
-      context.moveTo(points[ti], points[ti + 1]);
-      context.lineTo(points[tj], points[tj + 1]);
-    }
-    this.renderHull(context);
-    return buffer && buffer.value();
-  }
-  renderPoints(context, r) {
-    if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null;
-    r = r == undefined ? 2 : +r;
-    const buffer = context == null ? context = new Path : undefined;
-    const {points} = this;
-    for (let i = 0, n = points.length; i < n; i += 2) {
-      const x = points[i], y = points[i + 1];
-      context.moveTo(x + r, y);
-      context.arc(x, y, r, 0, tau$2);
-    }
-    return buffer && buffer.value();
-  }
-  renderHull(context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {hull, points} = this;
-    const h = hull[0] * 2, n = hull.length;
-    context.moveTo(points[h], points[h + 1]);
-    for (let i = 1; i < n; ++i) {
-      const h = 2 * hull[i];
-      context.lineTo(points[h], points[h + 1]);
-    }
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  hullPolygon() {
-    const polygon = new Polygon;
-    this.renderHull(polygon);
-    return polygon.value();
-  }
-  renderTriangle(i, context) {
-    const buffer = context == null ? context = new Path : undefined;
-    const {points, triangles} = this;
-    const t0 = triangles[i *= 3] * 2;
-    const t1 = triangles[i + 1] * 2;
-    const t2 = triangles[i + 2] * 2;
-    context.moveTo(points[t0], points[t0 + 1]);
-    context.lineTo(points[t1], points[t1 + 1]);
-    context.lineTo(points[t2], points[t2 + 1]);
-    context.closePath();
-    return buffer && buffer.value();
-  }
-  *trianglePolygons() {
-    const {triangles} = this;
-    for (let i = 0, n = triangles.length / 3; i < n; ++i) {
-      yield this.trianglePolygon(i);
-    }
-  }
-  trianglePolygon(i) {
-    const polygon = new Polygon;
-    this.renderTriangle(i, polygon);
-    return polygon.value();
-  }
-}
-
-function flatArray(points, fx, fy, that) {
-  const n = points.length;
-  const array = new Float64Array(n * 2);
-  for (let i = 0; i < n; ++i) {
-    const p = points[i];
-    array[i * 2] = fx.call(that, p, i, points);
-    array[i * 2 + 1] = fy.call(that, p, i, points);
-  }
-  return array;
-}
-
-function* flatIterable(points, fx, fy, that) {
-  let i = 0;
-  for (const p of points) {
-    yield fx.call(that, p, i, points);
-    yield fy.call(that, p, i, points);
-    ++i;
-  }
-}
-
-var EOL = {},
-    EOF = {},
-    QUOTE = 34,
-    NEWLINE = 10,
-    RETURN = 13;
-
-function objectConverter(columns) {
-  return new Function("d", "return {" + columns.map(function(name, i) {
-    return JSON.stringify(name) + ": d[" + i + "] || \"\"";
-  }).join(",") + "}");
-}
-
-function customConverter(columns, f) {
-  var object = objectConverter(columns);
-  return function(row, i) {
-    return f(object(row), i, columns);
-  };
-}
-
-// Compute unique columns in order of discovery.
-function inferColumns(rows) {
-  var columnSet = Object.create(null),
-      columns = [];
-
-  rows.forEach(function(row) {
-    for (var column in row) {
-      if (!(column in columnSet)) {
-        columns.push(columnSet[column] = column);
-      }
-    }
-  });
-
-  return columns;
-}
-
-function pad$1(value, width) {
-  var s = value + "", length = s.length;
-  return length < width ? new Array(width - length + 1).join(0) + s : s;
-}
-
-function formatYear$1(year) {
-  return year < 0 ? "-" + pad$1(-year, 6)
-    : year > 9999 ? "+" + pad$1(year, 6)
-    : pad$1(year, 4);
-}
-
-function formatDate(date) {
-  var hours = date.getUTCHours(),
-      minutes = date.getUTCMinutes(),
-      seconds = date.getUTCSeconds(),
-      milliseconds = date.getUTCMilliseconds();
-  return isNaN(date) ? "Invalid Date"
-      : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2)
-      + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z"
-      : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z"
-      : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z"
-      : "");
-}
-
-function dsvFormat(delimiter) {
-  var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
-      DELIMITER = delimiter.charCodeAt(0);
-
-  function parse(text, f) {
-    var convert, columns, rows = parseRows(text, function(row, i) {
-      if (convert) return convert(row, i - 1);
-      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
-    });
-    rows.columns = columns || [];
-    return rows;
-  }
-
-  function parseRows(text, f) {
-    var rows = [], // output rows
-        N = text.length,
-        I = 0, // current character index
-        n = 0, // current line number
-        t, // current token
-        eof = N <= 0, // current token followed by EOF?
-        eol = false; // current token followed by EOL?
-
-    // Strip the trailing newline.
-    if (text.charCodeAt(N - 1) === NEWLINE) --N;
-    if (text.charCodeAt(N - 1) === RETURN) --N;
-
-    function token() {
-      if (eof) return EOF;
-      if (eol) return eol = false, EOL;
-
-      // Unescape quotes.
-      var i, j = I, c;
-      if (text.charCodeAt(j) === QUOTE) {
-        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
-        if ((i = I) >= N) eof = true;
-        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        return text.slice(j + 1, i - 1).replace(/""/g, "\"");
-      }
-
-      // Find next delimiter or newline.
-      while (I < N) {
-        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
-        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
-        else if (c !== DELIMITER) continue;
-        return text.slice(j, i);
-      }
-
-      // Return last token before EOF.
-      return eof = true, text.slice(j, N);
-    }
-
-    while ((t = token()) !== EOF) {
-      var row = [];
-      while (t !== EOL && t !== EOF) row.push(t), t = token();
-      if (f && (row = f(row, n++)) == null) continue;
-      rows.push(row);
-    }
-
-    return rows;
-  }
-
-  function preformatBody(rows, columns) {
-    return rows.map(function(row) {
-      return columns.map(function(column) {
-        return formatValue(row[column]);
-      }).join(delimiter);
-    });
-  }
-
-  function format(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
-  }
-
-  function formatBody(rows, columns) {
-    if (columns == null) columns = inferColumns(rows);
-    return preformatBody(rows, columns).join("\n");
-  }
-
-  function formatRows(rows) {
-    return rows.map(formatRow).join("\n");
-  }
-
-  function formatRow(row) {
-    return row.map(formatValue).join(delimiter);
-  }
-
-  function formatValue(value) {
-    return value == null ? ""
-        : value instanceof Date ? formatDate(value)
-        : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\""
-        : value;
-  }
-
-  return {
-    parse: parse,
-    parseRows: parseRows,
-    format: format,
-    formatBody: formatBody,
-    formatRows: formatRows,
-    formatRow: formatRow,
-    formatValue: formatValue
-  };
-}
-
-var csv$1 = dsvFormat(",");
-
-var csvParse = csv$1.parse;
-var csvParseRows = csv$1.parseRows;
-var csvFormat = csv$1.format;
-var csvFormatBody = csv$1.formatBody;
-var csvFormatRows = csv$1.formatRows;
-var csvFormatRow = csv$1.formatRow;
-var csvFormatValue = csv$1.formatValue;
-
-var tsv$1 = dsvFormat("\t");
-
-var tsvParse = tsv$1.parse;
-var tsvParseRows = tsv$1.parseRows;
-var tsvFormat = tsv$1.format;
-var tsvFormatBody = tsv$1.formatBody;
-var tsvFormatRows = tsv$1.formatRows;
-var tsvFormatRow = tsv$1.formatRow;
-var tsvFormatValue = tsv$1.formatValue;
-
-function autoType(object) {
-  for (var key in object) {
-    var value = object[key].trim(), number, m;
-    if (!value) value = null;
-    else if (value === "true") value = true;
-    else if (value === "false") value = false;
-    else if (value === "NaN") value = NaN;
-    else if (!isNaN(number = +value)) value = number;
-    else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) {
-      if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " ");
-      value = new Date(value);
-    }
-    else continue;
-    object[key] = value;
-  }
-  return object;
-}
-
-// https://github.com/d3/d3-dsv/issues/45
-const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours();
-
-function responseBlob(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.blob();
-}
-
-function blob(input, init) {
-  return fetch(input, init).then(responseBlob);
-}
-
-function responseArrayBuffer(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.arrayBuffer();
-}
-
-function buffer(input, init) {
-  return fetch(input, init).then(responseArrayBuffer);
-}
-
-function responseText(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  return response.text();
-}
-
-function text(input, init) {
-  return fetch(input, init).then(responseText);
-}
-
-function dsvParse(parse) {
-  return function(input, init, row) {
-    if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
-    return text(input, init).then(function(response) {
-      return parse(response, row);
-    });
-  };
-}
-
-function dsv(delimiter, input, init, row) {
-  if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
-  var format = dsvFormat(delimiter);
-  return text(input, init).then(function(response) {
-    return format.parse(response, row);
-  });
-}
-
-var csv = dsvParse(csvParse);
-var tsv = dsvParse(tsvParse);
-
-function image(input, init) {
-  return new Promise(function(resolve, reject) {
-    var image = new Image;
-    for (var key in init) image[key] = init[key];
-    image.onerror = reject;
-    image.onload = function() { resolve(image); };
-    image.src = input;
-  });
-}
-
-function responseJson(response) {
-  if (!response.ok) throw new Error(response.status + " " + response.statusText);
-  if (response.status === 204 || response.status === 205) return;
-  return response.json();
-}
-
-function json(input, init) {
-  return fetch(input, init).then(responseJson);
-}
-
-function parser(type) {
-  return (input, init) => text(input, init)
-    .then(text => (new DOMParser).parseFromString(text, type));
-}
-
-var xml = parser("application/xml");
-
-var html = parser("text/html");
-
-var svg = parser("image/svg+xml");
-
-function center(x, y) {
-  var nodes, strength = 1;
-
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force() {
-    var i,
-        n = nodes.length,
-        node,
-        sx = 0,
-        sy = 0;
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i], sx += node.x, sy += node.y;
-    }
-
-    for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {
-      node = nodes[i], node.x -= sx, node.y -= sy;
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  return force;
-}
-
-function tree_add(d) {
-  const x = +this._x.call(null, d),
-      y = +this._y.call(null, d);
-  return add(this.cover(x, y), x, y, d);
-}
-
-function add(tree, x, y, d) {
-  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
-
-  var parent,
-      node = tree._root,
-      leaf = {data: d},
-      x0 = tree._x0,
-      y0 = tree._y0,
-      x1 = tree._x1,
-      y1 = tree._y1,
-      xm,
-      ym,
-      xp,
-      yp,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return tree._root = leaf, tree;
-
-  // Find the existing leaf for the new point, or add it.
-  while (node.length) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
-  }
-
-  // Is the new point is exactly coincident with the existing point?
-  xp = +tree._x.call(null, node.data);
-  yp = +tree._y.call(null, node.data);
-  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
-
-  // Otherwise, split the leaf node until the old and new point are separated.
-  do {
-    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
-  return parent[j] = node, parent[i] = leaf, tree;
-}
-
-function addAll(data) {
-  var d, i, n = data.length,
-      x,
-      y,
-      xz = new Array(n),
-      yz = new Array(n),
-      x0 = Infinity,
-      y0 = Infinity,
-      x1 = -Infinity,
-      y1 = -Infinity;
-
-  // Compute the points and their extent.
-  for (i = 0; i < n; ++i) {
-    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
-    xz[i] = x;
-    yz[i] = y;
-    if (x < x0) x0 = x;
-    if (x > x1) x1 = x;
-    if (y < y0) y0 = y;
-    if (y > y1) y1 = y;
-  }
-
-  // If there were no (valid) points, abort.
-  if (x0 > x1 || y0 > y1) return this;
-
-  // Expand the tree to cover the new points.
-  this.cover(x0, y0).cover(x1, y1);
-
-  // Add the new points.
-  for (i = 0; i < n; ++i) {
-    add(this, xz[i], yz[i], data[i]);
-  }
-
-  return this;
-}
-
-function tree_cover(x, y) {
-  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
-
-  var x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1;
-
-  // If the quadtree has no extent, initialize them.
-  // Integer extent are necessary so that if we later double the extent,
-  // the existing quadrant boundaries don’t change due to floating point error!
-  if (isNaN(x0)) {
-    x1 = (x0 = Math.floor(x)) + 1;
-    y1 = (y0 = Math.floor(y)) + 1;
-  }
-
-  // Otherwise, double repeatedly to cover.
-  else {
-    var z = x1 - x0 || 1,
-        node = this._root,
-        parent,
-        i;
-
-    while (x0 > x || x >= x1 || y0 > y || y >= y1) {
-      i = (y < y0) << 1 | (x < x0);
-      parent = new Array(4), parent[i] = node, node = parent, z *= 2;
-      switch (i) {
-        case 0: x1 = x0 + z, y1 = y0 + z; break;
-        case 1: x0 = x1 - z, y1 = y0 + z; break;
-        case 2: x1 = x0 + z, y0 = y1 - z; break;
-        case 3: x0 = x1 - z, y0 = y1 - z; break;
-      }
-    }
-
-    if (this._root && this._root.length) this._root = node;
-  }
-
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  return this;
-}
-
-function tree_data() {
-  var data = [];
-  this.visit(function(node) {
-    if (!node.length) do data.push(node.data); while (node = node.next)
-  });
-  return data;
-}
-
-function tree_extent(_) {
-  return arguments.length
-      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
-      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
-}
-
-function Quad(node, x0, y0, x1, y1) {
-  this.node = node;
-  this.x0 = x0;
-  this.y0 = y0;
-  this.x1 = x1;
-  this.y1 = y1;
-}
-
-function tree_find(x, y, radius) {
-  var data,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1,
-      y1,
-      x2,
-      y2,
-      x3 = this._x1,
-      y3 = this._y1,
-      quads = [],
-      node = this._root,
-      q,
-      i;
-
-  if (node) quads.push(new Quad(node, x0, y0, x3, y3));
-  if (radius == null) radius = Infinity;
-  else {
-    x0 = x - radius, y0 = y - radius;
-    x3 = x + radius, y3 = y + radius;
-    radius *= radius;
-  }
-
-  while (q = quads.pop()) {
-
-    // Stop searching if this quadrant can’t contain a closer node.
-    if (!(node = q.node)
-        || (x1 = q.x0) > x3
-        || (y1 = q.y0) > y3
-        || (x2 = q.x1) < x0
-        || (y2 = q.y1) < y0) continue;
-
-    // Bisect the current quadrant.
-    if (node.length) {
-      var xm = (x1 + x2) / 2,
-          ym = (y1 + y2) / 2;
-
-      quads.push(
-        new Quad(node[3], xm, ym, x2, y2),
-        new Quad(node[2], x1, ym, xm, y2),
-        new Quad(node[1], xm, y1, x2, ym),
-        new Quad(node[0], x1, y1, xm, ym)
-      );
-
-      // Visit the closest quadrant first.
-      if (i = (y >= ym) << 1 | (x >= xm)) {
-        q = quads[quads.length - 1];
-        quads[quads.length - 1] = quads[quads.length - 1 - i];
-        quads[quads.length - 1 - i] = q;
-      }
-    }
-
-    // Visit this point. (Visiting coincident points isn’t necessary!)
-    else {
-      var dx = x - +this._x.call(null, node.data),
-          dy = y - +this._y.call(null, node.data),
-          d2 = dx * dx + dy * dy;
-      if (d2 < radius) {
-        var d = Math.sqrt(radius = d2);
-        x0 = x - d, y0 = y - d;
-        x3 = x + d, y3 = y + d;
-        data = node.data;
-      }
-    }
-  }
-
-  return data;
-}
-
-function tree_remove(d) {
-  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
-
-  var parent,
-      node = this._root,
-      retainer,
-      previous,
-      next,
-      x0 = this._x0,
-      y0 = this._y0,
-      x1 = this._x1,
-      y1 = this._y1,
-      x,
-      y,
-      xm,
-      ym,
-      right,
-      bottom,
-      i,
-      j;
-
-  // If the tree is empty, initialize the root as a leaf.
-  if (!node) return this;
-
-  // Find the leaf node for the point.
-  // While descending, also retain the deepest parent with a non-removed sibling.
-  if (node.length) while (true) {
-    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
-    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
-    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
-    if (!node.length) break;
-    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
-  }
-
-  // Find the point to remove.
-  while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-  if (next = node.next) delete node.next;
-
-  // If there are multiple coincident points, remove just the point.
-  if (previous) return (next ? previous.next = next : delete previous.next), this;
-
-  // If this is the root point, remove it.
-  if (!parent) return this._root = next, this;
-
-  // Remove this leaf.
-  next ? parent[i] = next : delete parent[i];
-
-  // If the parent now contains exactly one leaf, collapse superfluous parents.
-  if ((node = parent[0] || parent[1] || parent[2] || parent[3])
-      && node === (parent[3] || parent[2] || parent[1] || parent[0])
-      && !node.length) {
-    if (retainer) retainer[j] = node;
-    else this._root = node;
-  }
-
-  return this;
-}
-
-function removeAll(data) {
-  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-  return this;
-}
-
-function tree_root() {
-  return this._root;
-}
-
-function tree_size() {
-  var size = 0;
-  this.visit(function(node) {
-    if (!node.length) do ++size; while (node = node.next)
-  });
-  return size;
-}
-
-function tree_visit(callback) {
-  var quads = [], q, node = this._root, child, x0, y0, x1, y1;
-  if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
-      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-    }
-  }
-  return this;
-}
-
-function tree_visitAfter(callback) {
-  var quads = [], next = [], q;
-  if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));
-  while (q = quads.pop()) {
-    var node = q.node;
-    if (node.length) {
-      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
-      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
-      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
-      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
-      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
-    }
-    next.push(q);
-  }
-  while (q = next.pop()) {
-    callback(q.node, q.x0, q.y0, q.x1, q.y1);
-  }
-  return this;
-}
-
-function defaultX(d) {
-  return d[0];
-}
-
-function tree_x(_) {
-  return arguments.length ? (this._x = _, this) : this._x;
-}
-
-function defaultY(d) {
-  return d[1];
-}
-
-function tree_y(_) {
-  return arguments.length ? (this._y = _, this) : this._y;
-}
-
-function quadtree(nodes, x, y) {
-  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
-  return nodes == null ? tree : tree.addAll(nodes);
-}
-
-function Quadtree(x, y, x0, y0, x1, y1) {
-  this._x = x;
-  this._y = y;
-  this._x0 = x0;
-  this._y0 = y0;
-  this._x1 = x1;
-  this._y1 = y1;
-  this._root = undefined;
-}
-
-function leaf_copy(leaf) {
-  var copy = {data: leaf.data}, next = copy;
-  while (leaf = leaf.next) next = next.next = {data: leaf.data};
-  return copy;
-}
-
-var treeProto = quadtree.prototype = Quadtree.prototype;
-
-treeProto.copy = function() {
-  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
-      node = this._root,
-      nodes,
-      child;
-
-  if (!node) return copy;
-
-  if (!node.length) return copy._root = leaf_copy(node), copy;
-
-  nodes = [{source: node, target: copy._root = new Array(4)}];
-  while (node = nodes.pop()) {
-    for (var i = 0; i < 4; ++i) {
-      if (child = node.source[i]) {
-        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
-        else node.target[i] = leaf_copy(child);
-      }
-    }
-  }
-
-  return copy;
-};
-
-treeProto.add = tree_add;
-treeProto.addAll = addAll;
-treeProto.cover = tree_cover;
-treeProto.data = tree_data;
-treeProto.extent = tree_extent;
-treeProto.find = tree_find;
-treeProto.remove = tree_remove;
-treeProto.removeAll = removeAll;
-treeProto.root = tree_root;
-treeProto.size = tree_size;
-treeProto.visit = tree_visit;
-treeProto.visitAfter = tree_visitAfter;
-treeProto.x = tree_x;
-treeProto.y = tree_y;
-
-function constant$4(x) {
-  return function() {
-    return x;
-  };
-}
-
-function jiggle(random) {
-  return (random() - 0.5) * 1e-6;
-}
-
-function x$3(d) {
-  return d.x + d.vx;
-}
-
-function y$3(d) {
-  return d.y + d.vy;
-}
-
-function collide(radius) {
-  var nodes,
-      radii,
-      random,
-      strength = 1,
-      iterations = 1;
-
-  if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius);
-
-  function force() {
-    var i, n = nodes.length,
-        tree,
-        node,
-        xi,
-        yi,
-        ri,
-        ri2;
-
-    for (var k = 0; k < iterations; ++k) {
-      tree = quadtree(nodes, x$3, y$3).visitAfter(prepare);
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        ri = radii[node.index], ri2 = ri * ri;
-        xi = node.x + node.vx;
-        yi = node.y + node.vy;
-        tree.visit(apply);
-      }
-    }
-
-    function apply(quad, x0, y0, x1, y1) {
-      var data = quad.data, rj = quad.r, r = ri + rj;
-      if (data) {
-        if (data.index > node.index) {
-          var x = xi - data.x - data.vx,
-              y = yi - data.y - data.vy,
-              l = x * x + y * y;
-          if (l < r * r) {
-            if (x === 0) x = jiggle(random), l += x * x;
-            if (y === 0) y = jiggle(random), l += y * y;
-            l = (r - (l = Math.sqrt(l))) / l * strength;
-            node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
-            node.vy += (y *= l) * r;
-            data.vx -= x * (r = 1 - r);
-            data.vy -= y * r;
-          }
-        }
-        return;
-      }
-      return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
-    }
-  }
-
-  function prepare(quad) {
-    if (quad.data) return quad.r = radii[quad.data.index];
-    for (var i = quad.r = 0; i < 4; ++i) {
-      if (quad[i] && quad[i].r > quad.r) {
-        quad.r = quad[i].r;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    radii = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = +_, force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius;
-  };
-
-  return force;
-}
-
-function index$3(d) {
-  return d.index;
-}
-
-function find(nodeById, nodeId) {
-  var node = nodeById.get(nodeId);
-  if (!node) throw new Error("node not found: " + nodeId);
-  return node;
-}
-
-function link$2(links) {
-  var id = index$3,
-      strength = defaultStrength,
-      strengths,
-      distance = constant$4(30),
-      distances,
-      nodes,
-      count,
-      bias,
-      random,
-      iterations = 1;
-
-  if (links == null) links = [];
-
-  function defaultStrength(link) {
-    return 1 / Math.min(count[link.source.index], count[link.target.index]);
-  }
-
-  function force(alpha) {
-    for (var k = 0, n = links.length; k < iterations; ++k) {
-      for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
-        link = links[i], source = link.source, target = link.target;
-        x = target.x + target.vx - source.x - source.vx || jiggle(random);
-        y = target.y + target.vy - source.y - source.vy || jiggle(random);
-        l = Math.sqrt(x * x + y * y);
-        l = (l - distances[i]) / l * alpha * strengths[i];
-        x *= l, y *= l;
-        target.vx -= x * (b = bias[i]);
-        target.vy -= y * b;
-        source.vx += x * (b = 1 - b);
-        source.vy += y * b;
-      }
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-
-    var i,
-        n = nodes.length,
-        m = links.length,
-        nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
-        link;
-
-    for (i = 0, count = new Array(n); i < m; ++i) {
-      link = links[i], link.index = i;
-      if (typeof link.source !== "object") link.source = find(nodeById, link.source);
-      if (typeof link.target !== "object") link.target = find(nodeById, link.target);
-      count[link.source.index] = (count[link.source.index] || 0) + 1;
-      count[link.target.index] = (count[link.target.index] || 0) + 1;
-    }
-
-    for (i = 0, bias = new Array(m); i < m; ++i) {
-      link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
-    }
-
-    strengths = new Array(m), initializeStrength();
-    distances = new Array(m), initializeDistance();
-  }
-
-  function initializeStrength() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      strengths[i] = +strength(links[i], i, links);
-    }
-  }
-
-  function initializeDistance() {
-    if (!nodes) return;
-
-    for (var i = 0, n = links.length; i < n; ++i) {
-      distances[i] = +distance(links[i], i, links);
-    }
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.links = function(_) {
-    return arguments.length ? (links = _, initialize(), force) : links;
-  };
-
-  force.id = function(_) {
-    return arguments.length ? (id = _, force) : id;
-  };
-
-  force.iterations = function(_) {
-    return arguments.length ? (iterations = +_, force) : iterations;
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength;
-  };
-
-  force.distance = function(_) {
-    return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance;
-  };
-
-  return force;
-}
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a$2 = 1664525;
-const c$4 = 1013904223;
-const m$1 = 4294967296; // 2^32
-
-function lcg$2() {
-  let s = 1;
-  return () => (s = (a$2 * s + c$4) % m$1) / m$1;
-}
-
-function x$2(d) {
-  return d.x;
-}
-
-function y$2(d) {
-  return d.y;
-}
-
-var initialRadius = 10,
-    initialAngle = Math.PI * (3 - Math.sqrt(5));
-
-function simulation(nodes) {
-  var simulation,
-      alpha = 1,
-      alphaMin = 0.001,
-      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
-      alphaTarget = 0,
-      velocityDecay = 0.6,
-      forces = new Map(),
-      stepper = timer(step),
-      event = dispatch("tick", "end"),
-      random = lcg$2();
-
-  if (nodes == null) nodes = [];
-
-  function step() {
-    tick();
-    event.call("tick", simulation);
-    if (alpha < alphaMin) {
-      stepper.stop();
-      event.call("end", simulation);
-    }
-  }
-
-  function tick(iterations) {
-    var i, n = nodes.length, node;
-
-    if (iterations === undefined) iterations = 1;
-
-    for (var k = 0; k < iterations; ++k) {
-      alpha += (alphaTarget - alpha) * alphaDecay;
-
-      forces.forEach(function(force) {
-        force(alpha);
-      });
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        if (node.fx == null) node.x += node.vx *= velocityDecay;
-        else node.x = node.fx, node.vx = 0;
-        if (node.fy == null) node.y += node.vy *= velocityDecay;
-        else node.y = node.fy, node.vy = 0;
-      }
-    }
-
-    return simulation;
-  }
-
-  function initializeNodes() {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.index = i;
-      if (node.fx != null) node.x = node.fx;
-      if (node.fy != null) node.y = node.fy;
-      if (isNaN(node.x) || isNaN(node.y)) {
-        var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;
-        node.x = radius * Math.cos(angle);
-        node.y = radius * Math.sin(angle);
-      }
-      if (isNaN(node.vx) || isNaN(node.vy)) {
-        node.vx = node.vy = 0;
-      }
-    }
-  }
-
-  function initializeForce(force) {
-    if (force.initialize) force.initialize(nodes, random);
-    return force;
-  }
-
-  initializeNodes();
-
-  return simulation = {
-    tick: tick,
-
-    restart: function() {
-      return stepper.restart(step), simulation;
-    },
-
-    stop: function() {
-      return stepper.stop(), simulation;
-    },
-
-    nodes: function(_) {
-      return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
-    },
-
-    alpha: function(_) {
-      return arguments.length ? (alpha = +_, simulation) : alpha;
-    },
-
-    alphaMin: function(_) {
-      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
-    },
-
-    alphaDecay: function(_) {
-      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
-    },
-
-    alphaTarget: function(_) {
-      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
-    },
-
-    velocityDecay: function(_) {
-      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
-    },
-
-    randomSource: function(_) {
-      return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
-    },
-
-    force: function(name, _) {
-      return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
-    },
-
-    find: function(x, y, radius) {
-      var i = 0,
-          n = nodes.length,
-          dx,
-          dy,
-          d2,
-          node,
-          closest;
-
-      if (radius == null) radius = Infinity;
-      else radius *= radius;
-
-      for (i = 0; i < n; ++i) {
-        node = nodes[i];
-        dx = x - node.x;
-        dy = y - node.y;
-        d2 = dx * dx + dy * dy;
-        if (d2 < radius) closest = node, radius = d2;
-      }
-
-      return closest;
-    },
-
-    on: function(name, _) {
-      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
-    }
-  };
-}
-
-function manyBody() {
-  var nodes,
-      node,
-      random,
-      alpha,
-      strength = constant$4(-30),
-      strengths,
-      distanceMin2 = 1,
-      distanceMax2 = Infinity,
-      theta2 = 0.81;
-
-  function force(_) {
-    var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate);
-    for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length, node;
-    strengths = new Array(n);
-    for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
-  }
-
-  function accumulate(quad) {
-    var strength = 0, q, c, weight = 0, x, y, i;
-
-    // For internal nodes, accumulate forces from child quadrants.
-    if (quad.length) {
-      for (x = y = i = 0; i < 4; ++i) {
-        if ((q = quad[i]) && (c = Math.abs(q.value))) {
-          strength += q.value, weight += c, x += c * q.x, y += c * q.y;
-        }
-      }
-      quad.x = x / weight;
-      quad.y = y / weight;
-    }
-
-    // For leaf nodes, accumulate forces from coincident quadrants.
-    else {
-      q = quad;
-      q.x = q.data.x;
-      q.y = q.data.y;
-      do strength += strengths[q.data.index];
-      while (q = q.next);
-    }
-
-    quad.value = strength;
-  }
-
-  function apply(quad, x1, _, x2) {
-    if (!quad.value) return true;
-
-    var x = quad.x - node.x,
-        y = quad.y - node.y,
-        w = x2 - x1,
-        l = x * x + y * y;
-
-    // Apply the Barnes-Hut approximation if possible.
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (w * w / theta2 < l) {
-      if (l < distanceMax2) {
-        if (x === 0) x = jiggle(random), l += x * x;
-        if (y === 0) y = jiggle(random), l += y * y;
-        if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-        node.vx += x * quad.value * alpha / l;
-        node.vy += y * quad.value * alpha / l;
-      }
-      return true;
-    }
-
-    // Otherwise, process points directly.
-    else if (quad.length || l >= distanceMax2) return;
-
-    // Limit forces for very close nodes; randomize direction if coincident.
-    if (quad.data !== node || quad.next) {
-      if (x === 0) x = jiggle(random), l += x * x;
-      if (y === 0) y = jiggle(random), l += y * y;
-      if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
-    }
-
-    do if (quad.data !== node) {
-      w = strengths[quad.data.index] * alpha / l;
-      node.vx += x * w;
-      node.vy += y * w;
-    } while (quad = quad.next);
-  }
-
-  force.initialize = function(_nodes, _random) {
-    nodes = _nodes;
-    random = _random;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength;
-  };
-
-  force.distanceMin = function(_) {
-    return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
-  };
-
-  force.distanceMax = function(_) {
-    return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
-  };
-
-  force.theta = function(_) {
-    return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
-  };
-
-  return force;
-}
-
-function radial$1(radius, x, y) {
-  var nodes,
-      strength = constant$4(0.1),
-      strengths,
-      radiuses;
-
-  if (typeof radius !== "function") radius = constant$4(+radius);
-  if (x == null) x = 0;
-  if (y == null) y = 0;
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length; i < n; ++i) {
-      var node = nodes[i],
-          dx = node.x - x || 1e-6,
-          dy = node.y - y || 1e-6,
-          r = Math.sqrt(dx * dx + dy * dy),
-          k = (radiuses[i] - r) * strengths[i] * alpha / r;
-      node.vx += dx * k;
-      node.vy += dy * k;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    radiuses = new Array(n);
-    for (i = 0; i < n; ++i) {
-      radiuses[i] = +radius(nodes[i], i, nodes);
-      strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _, initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength;
-  };
-
-  force.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = +_, force) : x;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = +_, force) : y;
-  };
-
-  return force;
-}
-
-function x$1(x) {
-  var strength = constant$4(0.1),
-      nodes,
-      strengths,
-      xz;
-
-  if (typeof x !== "function") x = constant$4(x == null ? 0 : +x);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    xz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength;
-  };
-
-  force.x = function(_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x;
-  };
-
-  return force;
-}
-
-function y$1(y) {
-  var strength = constant$4(0.1),
-      nodes,
-      strengths,
-      yz;
-
-  if (typeof y !== "function") y = constant$4(y == null ? 0 : +y);
-
-  function force(alpha) {
-    for (var i = 0, n = nodes.length, node; i < n; ++i) {
-      node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
-    }
-  }
-
-  function initialize() {
-    if (!nodes) return;
-    var i, n = nodes.length;
-    strengths = new Array(n);
-    yz = new Array(n);
-    for (i = 0; i < n; ++i) {
-      strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
-    }
-  }
-
-  force.initialize = function(_) {
-    nodes = _;
-    initialize();
-  };
-
-  force.strength = function(_) {
-    return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength;
-  };
-
-  force.y = function(_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y;
-  };
-
-  return force;
-}
-
-function formatDecimal(x) {
-  return Math.abs(x = Math.round(x)) >= 1e21
-      ? x.toLocaleString("en").replace(/,/g, "")
-      : x.toString(10);
-}
-
-// Computes the decimal coefficient and exponent of the specified number x with
-// significant digits p, where x is positive and p is in [1, 21] or undefined.
-// For example, formatDecimalParts(1.23) returns ["123", 0].
-function formatDecimalParts(x, p) {
-  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
-  var i, coefficient = x.slice(0, i);
-
-  // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
-  // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
-  return [
-    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
-    +x.slice(i + 1)
-  ];
-}
-
-function exponent(x) {
-  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
-}
-
-function formatGroup(grouping, thousands) {
-  return function(value, width) {
-    var i = value.length,
-        t = [],
-        j = 0,
-        g = grouping[0],
-        length = 0;
-
-    while (i > 0 && g > 0) {
-      if (length + g + 1 > width) g = Math.max(1, width - length);
-      t.push(value.substring(i -= g, i + g));
-      if ((length += g + 1) > width) break;
-      g = grouping[j = (j + 1) % grouping.length];
-    }
-
-    return t.reverse().join(thousands);
-  };
-}
-
-function formatNumerals(numerals) {
-  return function(value) {
-    return value.replace(/[0-9]/g, function(i) {
-      return numerals[+i];
-    });
-  };
-}
-
-// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
-var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
-
-function formatSpecifier(specifier) {
-  if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
-  var match;
-  return new FormatSpecifier({
-    fill: match[1],
-    align: match[2],
-    sign: match[3],
-    symbol: match[4],
-    zero: match[5],
-    width: match[6],
-    comma: match[7],
-    precision: match[8] && match[8].slice(1),
-    trim: match[9],
-    type: match[10]
-  });
-}
-
-formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
-
-function FormatSpecifier(specifier) {
-  this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
-  this.align = specifier.align === undefined ? ">" : specifier.align + "";
-  this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
-  this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
-  this.zero = !!specifier.zero;
-  this.width = specifier.width === undefined ? undefined : +specifier.width;
-  this.comma = !!specifier.comma;
-  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
-  this.trim = !!specifier.trim;
-  this.type = specifier.type === undefined ? "" : specifier.type + "";
-}
-
-FormatSpecifier.prototype.toString = function() {
-  return this.fill
-      + this.align
-      + this.sign
-      + this.symbol
-      + (this.zero ? "0" : "")
-      + (this.width === undefined ? "" : Math.max(1, this.width | 0))
-      + (this.comma ? "," : "")
-      + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
-      + (this.trim ? "~" : "")
-      + this.type;
-};
-
-// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
-function formatTrim(s) {
-  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
-    switch (s[i]) {
-      case ".": i0 = i1 = i; break;
-      case "0": if (i0 === 0) i0 = i; i1 = i; break;
-      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
-    }
-  }
-  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
-}
-
-var prefixExponent;
-
-function formatPrefixAuto(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-      exponent = d[1],
-      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
-      n = coefficient.length;
-  return i === n ? coefficient
-      : i > n ? coefficient + new Array(i - n + 1).join("0")
-      : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
-      : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
-}
-
-function formatRounded(x, p) {
-  var d = formatDecimalParts(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-      exponent = d[1];
-  return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
-      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
-      : coefficient + new Array(exponent - coefficient.length + 2).join("0");
-}
-
-var formatTypes = {
-  "%": (x, p) => (x * 100).toFixed(p),
-  "b": (x) => Math.round(x).toString(2),
-  "c": (x) => x + "",
-  "d": formatDecimal,
-  "e": (x, p) => x.toExponential(p),
-  "f": (x, p) => x.toFixed(p),
-  "g": (x, p) => x.toPrecision(p),
-  "o": (x) => Math.round(x).toString(8),
-  "p": (x, p) => formatRounded(x * 100, p),
-  "r": formatRounded,
-  "s": formatPrefixAuto,
-  "X": (x) => Math.round(x).toString(16).toUpperCase(),
-  "x": (x) => Math.round(x).toString(16)
-};
-
-function identity$6(x) {
-  return x;
-}
-
-var map = Array.prototype.map,
-    prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
-
-function formatLocale$1(locale) {
-  var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""),
-      currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
-      currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
-      decimal = locale.decimal === undefined ? "." : locale.decimal + "",
-      numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)),
-      percent = locale.percent === undefined ? "%" : locale.percent + "",
-      minus = locale.minus === undefined ? "−" : locale.minus + "",
-      nan = locale.nan === undefined ? "NaN" : locale.nan + "";
-
-  function newFormat(specifier) {
-    specifier = formatSpecifier(specifier);
-
-    var fill = specifier.fill,
-        align = specifier.align,
-        sign = specifier.sign,
-        symbol = specifier.symbol,
-        zero = specifier.zero,
-        width = specifier.width,
-        comma = specifier.comma,
-        precision = specifier.precision,
-        trim = specifier.trim,
-        type = specifier.type;
-
-    // The "n" type is an alias for ",g".
-    if (type === "n") comma = true, type = "g";
-
-    // The "" type, and any invalid type, is an alias for ".12~g".
-    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g";
-
-    // If zero fill is specified, padding goes after sign and before digits.
-    if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
-
-    // Compute the prefix and suffix.
-    // For SI-prefix, the suffix is lazily computed.
-    var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
-        suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
-
-    // What format function should we use?
-    // Is this an integer type?
-    // Can this type generate exponential notation?
-    var formatType = formatTypes[type],
-        maybeSuffix = /[defgprs%]/.test(type);
-
-    // Set the default precision if not specified,
-    // or clamp the specified precision to the supported range.
-    // For significant precision, it must be in [1, 21].
-    // For fixed precision, it must be in [0, 20].
-    precision = precision === undefined ? 6
-        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
-        : Math.max(0, Math.min(20, precision));
-
-    function format(value) {
-      var valuePrefix = prefix,
-          valueSuffix = suffix,
-          i, n, c;
-
-      if (type === "c") {
-        valueSuffix = formatType(value) + valueSuffix;
-        value = "";
-      } else {
-        value = +value;
-
-        // Determine the sign. -0 is not less than 0, but 1 / -0 is!
-        var valueNegative = value < 0 || 1 / value < 0;
-
-        // Perform the initial formatting.
-        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
-
-        // Trim insignificant zeros.
-        if (trim) value = formatTrim(value);
-
-        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
-        if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
-
-        // Compute the prefix and suffix.
-        valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
-        valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
-
-        // Break the formatted value into the integer “value” part that can be
-        // grouped, and fractional or exponential “suffix” part that is not.
-        if (maybeSuffix) {
-          i = -1, n = value.length;
-          while (++i < n) {
-            if (c = value.charCodeAt(i), 48 > c || c > 57) {
-              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
-              value = value.slice(0, i);
-              break;
-            }
-          }
-        }
-      }
-
-      // If the fill character is not "0", grouping is applied before padding.
-      if (comma && !zero) value = group(value, Infinity);
-
-      // Compute the padding.
-      var length = valuePrefix.length + value.length + valueSuffix.length,
-          padding = length < width ? new Array(width - length + 1).join(fill) : "";
-
-      // If the fill character is "0", grouping is applied after padding.
-      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
-
-      // Reconstruct the final output based on the desired alignment.
-      switch (align) {
-        case "<": value = valuePrefix + value + valueSuffix + padding; break;
-        case "=": value = valuePrefix + padding + value + valueSuffix; break;
-        case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
-        default: value = padding + valuePrefix + value + valueSuffix; break;
-      }
-
-      return numerals(value);
-    }
-
-    format.toString = function() {
-      return specifier + "";
-    };
-
-    return format;
-  }
-
-  function formatPrefix(specifier, value) {
-    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)),
-        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
-        k = Math.pow(10, -e),
-        prefix = prefixes[8 + e / 3];
-    return function(value) {
-      return f(k * value) + prefix;
-    };
-  }
-
-  return {
-    format: newFormat,
-    formatPrefix: formatPrefix
-  };
-}
-
-var locale$1;
-exports.format = void 0;
-exports.formatPrefix = void 0;
-
-defaultLocale$1({
-  thousands: ",",
-  grouping: [3],
-  currency: ["$", ""]
-});
-
-function defaultLocale$1(definition) {
-  locale$1 = formatLocale$1(definition);
-  exports.format = locale$1.format;
-  exports.formatPrefix = locale$1.formatPrefix;
-  return locale$1;
-}
-
-function precisionFixed(step) {
-  return Math.max(0, -exponent(Math.abs(step)));
-}
-
-function precisionPrefix(step, value) {
-  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
-}
-
-function precisionRound(step, max) {
-  step = Math.abs(step), max = Math.abs(max) - step;
-  return Math.max(0, exponent(max) - exponent(step)) + 1;
-}
-
-var epsilon$1 = 1e-6;
-var epsilon2 = 1e-12;
-var pi$1 = Math.PI;
-var halfPi$1 = pi$1 / 2;
-var quarterPi = pi$1 / 4;
-var tau$1 = pi$1 * 2;
-
-var degrees = 180 / pi$1;
-var radians = pi$1 / 180;
-
-var abs$1 = Math.abs;
-var atan = Math.atan;
-var atan2$1 = Math.atan2;
-var cos$1 = Math.cos;
-var ceil = Math.ceil;
-var exp = Math.exp;
-var hypot = Math.hypot;
-var log$1 = Math.log;
-var pow$1 = Math.pow;
-var sin$1 = Math.sin;
-var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
-var sqrt$2 = Math.sqrt;
-var tan = Math.tan;
-
-function acos$1(x) {
-  return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x);
-}
-
-function asin$1(x) {
-  return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x);
-}
-
-function haversin(x) {
-  return (x = sin$1(x / 2)) * x;
-}
-
-function noop$1() {}
-
-function streamGeometry(geometry, stream) {
-  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
-    streamGeometryType[geometry.type](geometry, stream);
-  }
-}
-
-var streamObjectType = {
-  Feature: function(object, stream) {
-    streamGeometry(object.geometry, stream);
-  },
-  FeatureCollection: function(object, stream) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) streamGeometry(features[i].geometry, stream);
-  }
-};
-
-var streamGeometryType = {
-  Sphere: function(object, stream) {
-    stream.sphere();
-  },
-  Point: function(object, stream) {
-    object = object.coordinates;
-    stream.point(object[0], object[1], object[2]);
-  },
-  MultiPoint: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
-  },
-  LineString: function(object, stream) {
-    streamLine(object.coordinates, stream, 0);
-  },
-  MultiLineString: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamLine(coordinates[i], stream, 0);
-  },
-  Polygon: function(object, stream) {
-    streamPolygon(object.coordinates, stream);
-  },
-  MultiPolygon: function(object, stream) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) streamPolygon(coordinates[i], stream);
-  },
-  GeometryCollection: function(object, stream) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) streamGeometry(geometries[i], stream);
-  }
-};
-
-function streamLine(coordinates, stream, closed) {
-  var i = -1, n = coordinates.length - closed, coordinate;
-  stream.lineStart();
-  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
-  stream.lineEnd();
-}
-
-function streamPolygon(coordinates, stream) {
-  var i = -1, n = coordinates.length;
-  stream.polygonStart();
-  while (++i < n) streamLine(coordinates[i], stream, 1);
-  stream.polygonEnd();
-}
-
-function geoStream(object, stream) {
-  if (object && streamObjectType.hasOwnProperty(object.type)) {
-    streamObjectType[object.type](object, stream);
-  } else {
-    streamGeometry(object, stream);
-  }
-}
-
-var areaRingSum$1 = new Adder();
-
-// hello?
-
-var areaSum$1 = new Adder(),
-    lambda00$2,
-    phi00$2,
-    lambda0$2,
-    cosPhi0$1,
-    sinPhi0$1;
-
-var areaStream$1 = {
-  point: noop$1,
-  lineStart: noop$1,
-  lineEnd: noop$1,
-  polygonStart: function() {
-    areaRingSum$1 = new Adder();
-    areaStream$1.lineStart = areaRingStart$1;
-    areaStream$1.lineEnd = areaRingEnd$1;
-  },
-  polygonEnd: function() {
-    var areaRing = +areaRingSum$1;
-    areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing);
-    this.lineStart = this.lineEnd = this.point = noop$1;
-  },
-  sphere: function() {
-    areaSum$1.add(tau$1);
-  }
-};
-
-function areaRingStart$1() {
-  areaStream$1.point = areaPointFirst$1;
-}
-
-function areaRingEnd$1() {
-  areaPoint$1(lambda00$2, phi00$2);
-}
-
-function areaPointFirst$1(lambda, phi) {
-  areaStream$1.point = areaPoint$1;
-  lambda00$2 = lambda, phi00$2 = phi;
-  lambda *= radians, phi *= radians;
-  lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi);
-}
-
-function areaPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  phi = phi / 2 + quarterPi; // half the angular distance from south pole
-
-  // Spherical excess E for a spherical triangle with vertices: south pole,
-  // previous point, current point.  Uses a formula derived from Cagnoli’s
-  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
-  var dLambda = lambda - lambda0$2,
-      sdLambda = dLambda >= 0 ? 1 : -1,
-      adLambda = sdLambda * dLambda,
-      cosPhi = cos$1(phi),
-      sinPhi = sin$1(phi),
-      k = sinPhi0$1 * sinPhi,
-      u = cosPhi0$1 * cosPhi + k * cos$1(adLambda),
-      v = k * sdLambda * sin$1(adLambda);
-  areaRingSum$1.add(atan2$1(v, u));
-
-  // Advance the previous points.
-  lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi;
-}
-
-function area$2(object) {
-  areaSum$1 = new Adder();
-  geoStream(object, areaStream$1);
-  return areaSum$1 * 2;
-}
-
-function spherical(cartesian) {
-  return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])];
-}
-
-function cartesian(spherical) {
-  var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi);
-  return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)];
-}
-
-function cartesianDot(a, b) {
-  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-}
-
-function cartesianCross(a, b) {
-  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
-}
-
-// TODO return a
-function cartesianAddInPlace(a, b) {
-  a[0] += b[0], a[1] += b[1], a[2] += b[2];
-}
-
-function cartesianScale(vector, k) {
-  return [vector[0] * k, vector[1] * k, vector[2] * k];
-}
-
-// TODO return d
-function cartesianNormalizeInPlace(d) {
-  var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
-  d[0] /= l, d[1] /= l, d[2] /= l;
-}
-
-var lambda0$1, phi0, lambda1, phi1, // bounds
-    lambda2, // previous lambda-coordinate
-    lambda00$1, phi00$1, // first point
-    p0, // previous 3D point
-    deltaSum,
-    ranges,
-    range;
-
-var boundsStream$2 = {
-  point: boundsPoint$1,
-  lineStart: boundsLineStart,
-  lineEnd: boundsLineEnd,
-  polygonStart: function() {
-    boundsStream$2.point = boundsRingPoint;
-    boundsStream$2.lineStart = boundsRingStart;
-    boundsStream$2.lineEnd = boundsRingEnd;
-    deltaSum = new Adder();
-    areaStream$1.polygonStart();
-  },
-  polygonEnd: function() {
-    areaStream$1.polygonEnd();
-    boundsStream$2.point = boundsPoint$1;
-    boundsStream$2.lineStart = boundsLineStart;
-    boundsStream$2.lineEnd = boundsLineEnd;
-    if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-    else if (deltaSum > epsilon$1) phi1 = 90;
-    else if (deltaSum < -epsilon$1) phi0 = -90;
-    range[0] = lambda0$1, range[1] = lambda1;
-  },
-  sphere: function() {
-    lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);
-  }
-};
-
-function boundsPoint$1(lambda, phi) {
-  ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-}
-
-function linePoint(lambda, phi) {
-  var p = cartesian([lambda * radians, phi * radians]);
-  if (p0) {
-    var normal = cartesianCross(p0, p),
-        equatorial = [normal[1], -normal[0], 0],
-        inflection = cartesianCross(equatorial, normal);
-    cartesianNormalizeInPlace(inflection);
-    inflection = spherical(inflection);
-    var delta = lambda - lambda2,
-        sign = delta > 0 ? 1 : -1,
-        lambdai = inflection[0] * degrees * sign,
-        phii,
-        antimeridian = abs$1(delta) > 180;
-    if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = inflection[1] * degrees;
-      if (phii > phi1) phi1 = phii;
-    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
-      phii = -inflection[1] * degrees;
-      if (phii < phi0) phi0 = phii;
-    } else {
-      if (phi < phi0) phi0 = phi;
-      if (phi > phi1) phi1 = phi;
-    }
-    if (antimeridian) {
-      if (lambda < lambda2) {
-        if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
-      } else {
-        if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
-      }
-    } else {
-      if (lambda1 >= lambda0$1) {
-        if (lambda < lambda0$1) lambda0$1 = lambda;
-        if (lambda > lambda1) lambda1 = lambda;
-      } else {
-        if (lambda > lambda2) {
-          if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
-        } else {
-          if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
-        }
-      }
-    }
-  } else {
-    ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);
-  }
-  if (phi < phi0) phi0 = phi;
-  if (phi > phi1) phi1 = phi;
-  p0 = p, lambda2 = lambda;
-}
-
-function boundsLineStart() {
-  boundsStream$2.point = linePoint;
-}
-
-function boundsLineEnd() {
-  range[0] = lambda0$1, range[1] = lambda1;
-  boundsStream$2.point = boundsPoint$1;
-  p0 = null;
-}
-
-function boundsRingPoint(lambda, phi) {
-  if (p0) {
-    var delta = lambda - lambda2;
-    deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
-  } else {
-    lambda00$1 = lambda, phi00$1 = phi;
-  }
-  areaStream$1.point(lambda, phi);
-  linePoint(lambda, phi);
-}
-
-function boundsRingStart() {
-  areaStream$1.lineStart();
-}
-
-function boundsRingEnd() {
-  boundsRingPoint(lambda00$1, phi00$1);
-  areaStream$1.lineEnd();
-  if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180);
-  range[0] = lambda0$1, range[1] = lambda1;
-  p0 = null;
-}
-
-// Finds the left-right distance between two longitudes.
-// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
-// the distance between ±180° to be 360°.
-function angle(lambda0, lambda1) {
-  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
-}
-
-function rangeCompare(a, b) {
-  return a[0] - b[0];
-}
-
-function rangeContains(range, x) {
-  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
-}
-
-function bounds(feature) {
-  var i, n, a, b, merged, deltaMax, delta;
-
-  phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);
-  ranges = [];
-  geoStream(feature, boundsStream$2);
-
-  // First, sort ranges by their minimum longitudes.
-  if (n = ranges.length) {
-    ranges.sort(rangeCompare);
-
-    // Then, merge any ranges that overlap.
-    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
-      b = ranges[i];
-      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
-        if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
-        if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
-      } else {
-        merged.push(a = b);
-      }
-    }
-
-    // Finally, find the largest gap between the merged ranges.
-    // The final bounding box will be the inverse of this gap.
-    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
-      b = merged[i];
-      if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];
-    }
-  }
-
-  ranges = range = null;
-
-  return lambda0$1 === Infinity || phi0 === Infinity
-      ? [[NaN, NaN], [NaN, NaN]]
-      : [[lambda0$1, phi0], [lambda1, phi1]];
-}
-
-var W0, W1,
-    X0$1, Y0$1, Z0$1,
-    X1$1, Y1$1, Z1$1,
-    X2$1, Y2$1, Z2$1,
-    lambda00, phi00, // first point
-    x0$4, y0$4, z0; // previous point
-
-var centroidStream$1 = {
-  sphere: noop$1,
-  point: centroidPoint$1,
-  lineStart: centroidLineStart$1,
-  lineEnd: centroidLineEnd$1,
-  polygonStart: function() {
-    centroidStream$1.lineStart = centroidRingStart$1;
-    centroidStream$1.lineEnd = centroidRingEnd$1;
-  },
-  polygonEnd: function() {
-    centroidStream$1.lineStart = centroidLineStart$1;
-    centroidStream$1.lineEnd = centroidLineEnd$1;
-  }
-};
-
-// Arithmetic mean of Cartesian vectors.
-function centroidPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos$1(phi);
-  centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi));
-}
-
-function centroidPointCartesian(x, y, z) {
-  ++W0;
-  X0$1 += (x - X0$1) / W0;
-  Y0$1 += (y - Y0$1) / W0;
-  Z0$1 += (z - Z0$1) / W0;
-}
-
-function centroidLineStart$1() {
-  centroidStream$1.point = centroidLinePointFirst;
-}
-
-function centroidLinePointFirst(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos$1(phi);
-  x0$4 = cosPhi * cos$1(lambda);
-  y0$4 = cosPhi * sin$1(lambda);
-  z0 = sin$1(phi);
-  centroidStream$1.point = centroidLinePoint;
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidLinePoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos$1(phi),
-      x = cosPhi * cos$1(lambda),
-      y = cosPhi * sin$1(lambda),
-      z = sin$1(phi),
-      w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z);
-  W1 += w;
-  X1$1 += w * (x0$4 + (x0$4 = x));
-  Y1$1 += w * (y0$4 + (y0$4 = y));
-  Z1$1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidLineEnd$1() {
-  centroidStream$1.point = centroidPoint$1;
-}
-
-// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
-// J. Applied Mechanics 42, 239 (1975).
-function centroidRingStart$1() {
-  centroidStream$1.point = centroidRingPointFirst;
-}
-
-function centroidRingEnd$1() {
-  centroidRingPoint(lambda00, phi00);
-  centroidStream$1.point = centroidPoint$1;
-}
-
-function centroidRingPointFirst(lambda, phi) {
-  lambda00 = lambda, phi00 = phi;
-  lambda *= radians, phi *= radians;
-  centroidStream$1.point = centroidRingPoint;
-  var cosPhi = cos$1(phi);
-  x0$4 = cosPhi * cos$1(lambda);
-  y0$4 = cosPhi * sin$1(lambda);
-  z0 = sin$1(phi);
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroidRingPoint(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var cosPhi = cos$1(phi),
-      x = cosPhi * cos$1(lambda),
-      y = cosPhi * sin$1(lambda),
-      z = sin$1(phi),
-      cx = y0$4 * z - z0 * y,
-      cy = z0 * x - x0$4 * z,
-      cz = x0$4 * y - y0$4 * x,
-      m = hypot(cx, cy, cz),
-      w = asin$1(m), // line weight = angle
-      v = m && -w / m; // area weight multiplier
-  X2$1.add(v * cx);
-  Y2$1.add(v * cy);
-  Z2$1.add(v * cz);
-  W1 += w;
-  X1$1 += w * (x0$4 + (x0$4 = x));
-  Y1$1 += w * (y0$4 + (y0$4 = y));
-  Z1$1 += w * (z0 + (z0 = z));
-  centroidPointCartesian(x0$4, y0$4, z0);
-}
-
-function centroid$1(object) {
-  W0 = W1 =
-  X0$1 = Y0$1 = Z0$1 =
-  X1$1 = Y1$1 = Z1$1 = 0;
-  X2$1 = new Adder();
-  Y2$1 = new Adder();
-  Z2$1 = new Adder();
-  geoStream(object, centroidStream$1);
-
-  var x = +X2$1,
-      y = +Y2$1,
-      z = +Z2$1,
-      m = hypot(x, y, z);
-
-  // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
-  if (m < epsilon2) {
-    x = X1$1, y = Y1$1, z = Z1$1;
-    // If the feature has zero length, fall back to arithmetic mean of point vectors.
-    if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1;
-    m = hypot(x, y, z);
-    // If the feature still has an undefined ccentroid, then return.
-    if (m < epsilon2) return [NaN, NaN];
-  }
-
-  return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees];
-}
-
-function constant$3(x) {
-  return function() {
-    return x;
-  };
-}
-
-function compose(a, b) {
-
-  function compose(x, y) {
-    return x = a(x, y), b(x[0], x[1]);
-  }
-
-  if (a.invert && b.invert) compose.invert = function(x, y) {
-    return x = b.invert(x, y), x && a.invert(x[0], x[1]);
-  };
-
-  return compose;
-}
-
-function rotationIdentity(lambda, phi) {
-  if (abs$1(lambda) > pi$1) lambda -= Math.round(lambda / tau$1) * tau$1;
-  return [lambda, phi];
-}
-
-rotationIdentity.invert = rotationIdentity;
-
-function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
-  return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
-    : rotationLambda(deltaLambda))
-    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
-    : rotationIdentity);
-}
-
-function forwardRotationLambda(deltaLambda) {
-  return function(lambda, phi) {
-    lambda += deltaLambda;
-    if (abs$1(lambda) > pi$1) lambda -= Math.round(lambda / tau$1) * tau$1;
-    return [lambda, phi];
-  };
-}
-
-function rotationLambda(deltaLambda) {
-  var rotation = forwardRotationLambda(deltaLambda);
-  rotation.invert = forwardRotationLambda(-deltaLambda);
-  return rotation;
-}
-
-function rotationPhiGamma(deltaPhi, deltaGamma) {
-  var cosDeltaPhi = cos$1(deltaPhi),
-      sinDeltaPhi = sin$1(deltaPhi),
-      cosDeltaGamma = cos$1(deltaGamma),
-      sinDeltaGamma = sin$1(deltaGamma);
-
-  function rotation(lambda, phi) {
-    var cosPhi = cos$1(phi),
-        x = cos$1(lambda) * cosPhi,
-        y = sin$1(lambda) * cosPhi,
-        z = sin$1(phi),
-        k = z * cosDeltaPhi + x * sinDeltaPhi;
-    return [
-      atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
-      asin$1(k * cosDeltaGamma + y * sinDeltaGamma)
-    ];
-  }
-
-  rotation.invert = function(lambda, phi) {
-    var cosPhi = cos$1(phi),
-        x = cos$1(lambda) * cosPhi,
-        y = sin$1(lambda) * cosPhi,
-        z = sin$1(phi),
-        k = z * cosDeltaGamma - y * sinDeltaGamma;
-    return [
-      atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
-      asin$1(k * cosDeltaPhi - x * sinDeltaPhi)
-    ];
-  };
-
-  return rotation;
-}
-
-function rotation(rotate) {
-  rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);
-
-  function forward(coordinates) {
-    coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  }
-
-  forward.invert = function(coordinates) {
-    coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);
-    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
-  };
-
-  return forward;
-}
-
-// Generates a circle centered at [0°, 0°], with a given radius and precision.
-function circleStream(stream, radius, delta, direction, t0, t1) {
-  if (!delta) return;
-  var cosRadius = cos$1(radius),
-      sinRadius = sin$1(radius),
-      step = direction * delta;
-  if (t0 == null) {
-    t0 = radius + direction * tau$1;
-    t1 = radius - step / 2;
-  } else {
-    t0 = circleRadius(cosRadius, t0);
-    t1 = circleRadius(cosRadius, t1);
-    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1;
-  }
-  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
-    point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]);
-    stream.point(point[0], point[1]);
-  }
-}
-
-// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
-function circleRadius(cosRadius, point) {
-  point = cartesian(point), point[0] -= cosRadius;
-  cartesianNormalizeInPlace(point);
-  var radius = acos$1(-point[1]);
-  return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1;
-}
-
-function circle$1() {
-  var center = constant$3([0, 0]),
-      radius = constant$3(90),
-      precision = constant$3(2),
-      ring,
-      rotate,
-      stream = {point: point};
-
-  function point(x, y) {
-    ring.push(x = rotate(x, y));
-    x[0] *= degrees, x[1] *= degrees;
-  }
-
-  function circle() {
-    var c = center.apply(this, arguments),
-        r = radius.apply(this, arguments) * radians,
-        p = precision.apply(this, arguments) * radians;
-    ring = [];
-    rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;
-    circleStream(stream, r, p, 1);
-    c = {type: "Polygon", coordinates: [ring]};
-    ring = rotate = null;
-    return c;
-  }
-
-  circle.center = function(_) {
-    return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center;
-  };
-
-  circle.radius = function(_) {
-    return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius;
-  };
-
-  circle.precision = function(_) {
-    return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision;
-  };
-
-  return circle;
-}
-
-function clipBuffer() {
-  var lines = [],
-      line;
-  return {
-    point: function(x, y, m) {
-      line.push([x, y, m]);
-    },
-    lineStart: function() {
-      lines.push(line = []);
-    },
-    lineEnd: noop$1,
-    rejoin: function() {
-      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
-    },
-    result: function() {
-      var result = lines;
-      lines = [];
-      line = null;
-      return result;
-    }
-  };
-}
-
-function pointEqual(a, b) {
-  return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1;
-}
-
-function Intersection(point, points, other, entry) {
-  this.x = point;
-  this.z = points;
-  this.o = other; // another intersection
-  this.e = entry; // is an entry?
-  this.v = false; // visited
-  this.n = this.p = null; // next & previous
-}
-
-// A generalized polygon clipping algorithm: given a polygon that has been cut
-// into its visible line segments, and rejoins the segments by interpolating
-// along the clip edge.
-function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) {
-  var subject = [],
-      clip = [],
-      i,
-      n;
-
-  segments.forEach(function(segment) {
-    if ((n = segment.length - 1) <= 0) return;
-    var n, p0 = segment[0], p1 = segment[n], x;
-
-    if (pointEqual(p0, p1)) {
-      if (!p0[2] && !p1[2]) {
-        stream.lineStart();
-        for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
-        stream.lineEnd();
-        return;
-      }
-      // handle degenerate cases by moving the point
-      p1[0] += 2 * epsilon$1;
-    }
-
-    subject.push(x = new Intersection(p0, segment, null, true));
-    clip.push(x.o = new Intersection(p0, null, x, false));
-    subject.push(x = new Intersection(p1, segment, null, false));
-    clip.push(x.o = new Intersection(p1, null, x, true));
-  });
-
-  if (!subject.length) return;
-
-  clip.sort(compareIntersection);
-  link$1(subject);
-  link$1(clip);
-
-  for (i = 0, n = clip.length; i < n; ++i) {
-    clip[i].e = startInside = !startInside;
-  }
-
-  var start = subject[0],
-      points,
-      point;
-
-  while (1) {
-    // Find first unvisited intersection.
-    var current = start,
-        isSubject = true;
-    while (current.v) if ((current = current.n) === start) return;
-    points = current.z;
-    stream.lineStart();
-    do {
-      current.v = current.o.v = true;
-      if (current.e) {
-        if (isSubject) {
-          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.n.x, 1, stream);
-        }
-        current = current.n;
-      } else {
-        if (isSubject) {
-          points = current.p.z;
-          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
-        } else {
-          interpolate(current.x, current.p.x, -1, stream);
-        }
-        current = current.p;
-      }
-      current = current.o;
-      points = current.z;
-      isSubject = !isSubject;
-    } while (!current.v);
-    stream.lineEnd();
-  }
-}
-
-function link$1(array) {
-  if (!(n = array.length)) return;
-  var n,
-      i = 0,
-      a = array[0],
-      b;
-  while (++i < n) {
-    a.n = b = array[i];
-    b.p = a;
-    a = b;
-  }
-  a.n = b = array[0];
-  b.p = a;
-}
-
-function longitude(point) {
-  return abs$1(point[0]) <= pi$1 ? point[0] : sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1);
-}
-
-function polygonContains(polygon, point) {
-  var lambda = longitude(point),
-      phi = point[1],
-      sinPhi = sin$1(phi),
-      normal = [sin$1(lambda), -cos$1(lambda), 0],
-      angle = 0,
-      winding = 0;
-
-  var sum = new Adder();
-
-  if (sinPhi === 1) phi = halfPi$1 + epsilon$1;
-  else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1;
-
-  for (var i = 0, n = polygon.length; i < n; ++i) {
-    if (!(m = (ring = polygon[i]).length)) continue;
-    var ring,
-        m,
-        point0 = ring[m - 1],
-        lambda0 = longitude(point0),
-        phi0 = point0[1] / 2 + quarterPi,
-        sinPhi0 = sin$1(phi0),
-        cosPhi0 = cos$1(phi0);
-
-    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
-      var point1 = ring[j],
-          lambda1 = longitude(point1),
-          phi1 = point1[1] / 2 + quarterPi,
-          sinPhi1 = sin$1(phi1),
-          cosPhi1 = cos$1(phi1),
-          delta = lambda1 - lambda0,
-          sign = delta >= 0 ? 1 : -1,
-          absDelta = sign * delta,
-          antimeridian = absDelta > pi$1,
-          k = sinPhi0 * sinPhi1;
-
-      sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta)));
-      angle += antimeridian ? delta + sign * tau$1 : delta;
-
-      // Are the longitudes either side of the point’s meridian (lambda),
-      // and are the latitudes smaller than the parallel (phi)?
-      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
-        var arc = cartesianCross(cartesian(point0), cartesian(point1));
-        cartesianNormalizeInPlace(arc);
-        var intersection = cartesianCross(normal, arc);
-        cartesianNormalizeInPlace(intersection);
-        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]);
-        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
-          winding += antimeridian ^ delta >= 0 ? 1 : -1;
-        }
-      }
-    }
-  }
-
-  // First, determine whether the South pole is inside or outside:
-  //
-  // It is inside if:
-  // * the polygon winds around it in a clockwise direction.
-  // * the polygon does not (cumulatively) wind around it, but has a negative
-  //   (counter-clockwise) area.
-  //
-  // Second, count the (signed) number of times a segment crosses a lambda
-  // from the point to the South pole.  If it is zero, then the point is the
-  // same side as the South pole.
-
-  return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1);
-}
-
-function clip(pointVisible, clipLine, interpolate, start) {
-  return function(sink) {
-    var line = clipLine(sink),
-        ringBuffer = clipBuffer(),
-        ringSink = clipLine(ringBuffer),
-        polygonStarted = false,
-        polygon,
-        segments,
-        ring;
-
-    var clip = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        clip.point = pointRing;
-        clip.lineStart = ringStart;
-        clip.lineEnd = ringEnd;
-        segments = [];
-        polygon = [];
-      },
-      polygonEnd: function() {
-        clip.point = point;
-        clip.lineStart = lineStart;
-        clip.lineEnd = lineEnd;
-        segments = merge(segments);
-        var startInside = polygonContains(polygon, start);
-        if (segments.length) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          clipRejoin(segments, compareIntersection, startInside, interpolate, sink);
-        } else if (startInside) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          interpolate(null, null, 1, sink);
-          sink.lineEnd();
-        }
-        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
-        segments = polygon = null;
-      },
-      sphere: function() {
-        sink.polygonStart();
-        sink.lineStart();
-        interpolate(null, null, 1, sink);
-        sink.lineEnd();
-        sink.polygonEnd();
-      }
-    };
-
-    function point(lambda, phi) {
-      if (pointVisible(lambda, phi)) sink.point(lambda, phi);
-    }
-
-    function pointLine(lambda, phi) {
-      line.point(lambda, phi);
-    }
-
-    function lineStart() {
-      clip.point = pointLine;
-      line.lineStart();
-    }
-
-    function lineEnd() {
-      clip.point = point;
-      line.lineEnd();
-    }
-
-    function pointRing(lambda, phi) {
-      ring.push([lambda, phi]);
-      ringSink.point(lambda, phi);
-    }
-
-    function ringStart() {
-      ringSink.lineStart();
-      ring = [];
-    }
-
-    function ringEnd() {
-      pointRing(ring[0][0], ring[0][1]);
-      ringSink.lineEnd();
-
-      var clean = ringSink.clean(),
-          ringSegments = ringBuffer.result(),
-          i, n = ringSegments.length, m,
-          segment,
-          point;
-
-      ring.pop();
-      polygon.push(ring);
-      ring = null;
-
-      if (!n) return;
-
-      // No intersections.
-      if (clean & 1) {
-        segment = ringSegments[0];
-        if ((m = segment.length - 1) > 0) {
-          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
-          sink.lineStart();
-          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
-          sink.lineEnd();
-        }
-        return;
-      }
-
-      // Rejoin connected segments.
-      // TODO reuse ringBuffer.rejoin()?
-      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
-
-      segments.push(ringSegments.filter(validSegment));
-    }
-
-    return clip;
-  };
-}
-
-function validSegment(segment) {
-  return segment.length > 1;
-}
-
-// Intersections are sorted along the clip edge. For both antimeridian cutting
-// and circle clipping, the same comparison is used.
-function compareIntersection(a, b) {
-  return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1])
-       - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]);
-}
-
-var clipAntimeridian = clip(
-  function() { return true; },
-  clipAntimeridianLine,
-  clipAntimeridianInterpolate,
-  [-pi$1, -halfPi$1]
-);
-
-// Takes a line and cuts into visible segments. Return values: 0 - there were
-// intersections or the line was empty; 1 - no intersections; 2 - there were
-// intersections, and the first and last segments should be rejoined.
-function clipAntimeridianLine(stream) {
-  var lambda0 = NaN,
-      phi0 = NaN,
-      sign0 = NaN,
-      clean; // no intersections
-
-  return {
-    lineStart: function() {
-      stream.lineStart();
-      clean = 1;
-    },
-    point: function(lambda1, phi1) {
-      var sign1 = lambda1 > 0 ? pi$1 : -pi$1,
-          delta = abs$1(lambda1 - lambda0);
-      if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole
-        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        stream.point(lambda1, phi0);
-        clean = 0;
-      } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian
-        if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies
-        if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1;
-        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
-        stream.point(sign0, phi0);
-        stream.lineEnd();
-        stream.lineStart();
-        stream.point(sign1, phi0);
-        clean = 0;
-      }
-      stream.point(lambda0 = lambda1, phi0 = phi1);
-      sign0 = sign1;
-    },
-    lineEnd: function() {
-      stream.lineEnd();
-      lambda0 = phi0 = NaN;
-    },
-    clean: function() {
-      return 2 - clean; // if intersections, rejoin first and last segments
-    }
-  };
-}
-
-function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
-  var cosPhi0,
-      cosPhi1,
-      sinLambda0Lambda1 = sin$1(lambda0 - lambda1);
-  return abs$1(sinLambda0Lambda1) > epsilon$1
-      ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1)
-          - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0))
-          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
-      : (phi0 + phi1) / 2;
-}
-
-function clipAntimeridianInterpolate(from, to, direction, stream) {
-  var phi;
-  if (from == null) {
-    phi = direction * halfPi$1;
-    stream.point(-pi$1, phi);
-    stream.point(0, phi);
-    stream.point(pi$1, phi);
-    stream.point(pi$1, 0);
-    stream.point(pi$1, -phi);
-    stream.point(0, -phi);
-    stream.point(-pi$1, -phi);
-    stream.point(-pi$1, 0);
-    stream.point(-pi$1, phi);
-  } else if (abs$1(from[0] - to[0]) > epsilon$1) {
-    var lambda = from[0] < to[0] ? pi$1 : -pi$1;
-    phi = direction * lambda / 2;
-    stream.point(-lambda, phi);
-    stream.point(0, phi);
-    stream.point(lambda, phi);
-  } else {
-    stream.point(to[0], to[1]);
-  }
-}
-
-function clipCircle(radius) {
-  var cr = cos$1(radius),
-      delta = 2 * radians,
-      smallRadius = cr > 0,
-      notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case
-
-  function interpolate(from, to, direction, stream) {
-    circleStream(stream, radius, delta, direction, from, to);
-  }
-
-  function visible(lambda, phi) {
-    return cos$1(lambda) * cos$1(phi) > cr;
-  }
-
-  // Takes a line and cuts into visible segments. Return values used for polygon
-  // clipping: 0 - there were intersections or the line was empty; 1 - no
-  // intersections 2 - there were intersections, and the first and last segments
-  // should be rejoined.
-  function clipLine(stream) {
-    var point0, // previous point
-        c0, // code for previous point
-        v0, // visibility of previous point
-        v00, // visibility of first point
-        clean; // no intersections
-    return {
-      lineStart: function() {
-        v00 = v0 = false;
-        clean = 1;
-      },
-      point: function(lambda, phi) {
-        var point1 = [lambda, phi],
-            point2,
-            v = visible(lambda, phi),
-            c = smallRadius
-              ? v ? 0 : code(lambda, phi)
-              : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0;
-        if (!point0 && (v00 = v0 = v)) stream.lineStart();
-        if (v !== v0) {
-          point2 = intersect(point0, point1);
-          if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))
-            point1[2] = 1;
-        }
-        if (v !== v0) {
-          clean = 0;
-          if (v) {
-            // outside going in
-            stream.lineStart();
-            point2 = intersect(point1, point0);
-            stream.point(point2[0], point2[1]);
-          } else {
-            // inside going out
-            point2 = intersect(point0, point1);
-            stream.point(point2[0], point2[1], 2);
-            stream.lineEnd();
-          }
-          point0 = point2;
-        } else if (notHemisphere && point0 && smallRadius ^ v) {
-          var t;
-          // If the codes for two points are different, or are both zero,
-          // and there this segment intersects with the small circle.
-          if (!(c & c0) && (t = intersect(point1, point0, true))) {
-            clean = 0;
-            if (smallRadius) {
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1]);
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-            } else {
-              stream.point(t[1][0], t[1][1]);
-              stream.lineEnd();
-              stream.lineStart();
-              stream.point(t[0][0], t[0][1], 3);
-            }
-          }
-        }
-        if (v && (!point0 || !pointEqual(point0, point1))) {
-          stream.point(point1[0], point1[1]);
-        }
-        point0 = point1, v0 = v, c0 = c;
-      },
-      lineEnd: function() {
-        if (v0) stream.lineEnd();
-        point0 = null;
-      },
-      // Rejoin first and last segments if there were intersections and the first
-      // and last points were visible.
-      clean: function() {
-        return clean | ((v00 && v0) << 1);
-      }
-    };
-  }
-
-  // Intersects the great circle between a and b with the clip circle.
-  function intersect(a, b, two) {
-    var pa = cartesian(a),
-        pb = cartesian(b);
-
-    // We have two planes, n1.p = d1 and n2.p = d2.
-    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
-    var n1 = [1, 0, 0], // normal
-        n2 = cartesianCross(pa, pb),
-        n2n2 = cartesianDot(n2, n2),
-        n1n2 = n2[0], // cartesianDot(n1, n2),
-        determinant = n2n2 - n1n2 * n1n2;
-
-    // Two polar points.
-    if (!determinant) return !two && a;
-
-    var c1 =  cr * n2n2 / determinant,
-        c2 = -cr * n1n2 / determinant,
-        n1xn2 = cartesianCross(n1, n2),
-        A = cartesianScale(n1, c1),
-        B = cartesianScale(n2, c2);
-    cartesianAddInPlace(A, B);
-
-    // Solve |p(t)|^2 = 1.
-    var u = n1xn2,
-        w = cartesianDot(A, u),
-        uu = cartesianDot(u, u),
-        t2 = w * w - uu * (cartesianDot(A, A) - 1);
-
-    if (t2 < 0) return;
-
-    var t = sqrt$2(t2),
-        q = cartesianScale(u, (-w - t) / uu);
-    cartesianAddInPlace(q, A);
-    q = spherical(q);
-
-    if (!two) return q;
-
-    // Two intersection points.
-    var lambda0 = a[0],
-        lambda1 = b[0],
-        phi0 = a[1],
-        phi1 = b[1],
-        z;
-
-    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
-
-    var delta = lambda1 - lambda0,
-        polar = abs$1(delta - pi$1) < epsilon$1,
-        meridian = polar || delta < epsilon$1;
-
-    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
-
-    // Check that the first point is between a and b.
-    if (meridian
-        ? polar
-          ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1)
-          : phi0 <= q[1] && q[1] <= phi1
-        : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
-      var q1 = cartesianScale(u, (-w + t) / uu);
-      cartesianAddInPlace(q1, A);
-      return [q, spherical(q1)];
-    }
-  }
-
-  // Generates a 4-bit vector representing the location of a point relative to
-  // the small circle's bounding box.
-  function code(lambda, phi) {
-    var r = smallRadius ? radius : pi$1 - radius,
-        code = 0;
-    if (lambda < -r) code |= 1; // left
-    else if (lambda > r) code |= 2; // right
-    if (phi < -r) code |= 4; // below
-    else if (phi > r) code |= 8; // above
-    return code;
-  }
-
-  return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]);
-}
-
-function clipLine(a, b, x0, y0, x1, y1) {
-  var ax = a[0],
-      ay = a[1],
-      bx = b[0],
-      by = b[1],
-      t0 = 0,
-      t1 = 1,
-      dx = bx - ax,
-      dy = by - ay,
-      r;
-
-  r = x0 - ax;
-  if (!dx && r > 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dx > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = x1 - ax;
-  if (!dx && r < 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dx > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  r = y0 - ay;
-  if (!dy && r > 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dy > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-
-  r = y1 - ay;
-  if (!dy && r < 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dy > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-
-  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
-  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
-  return true;
-}
-
-var clipMax = 1e9, clipMin = -clipMax;
-
-// TODO Use d3-polygon’s polygonContains here for the ring check?
-// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
-
-function clipRectangle(x0, y0, x1, y1) {
-
-  function visible(x, y) {
-    return x0 <= x && x <= x1 && y0 <= y && y <= y1;
-  }
-
-  function interpolate(from, to, direction, stream) {
-    var a = 0, a1 = 0;
-    if (from == null
-        || (a = corner(from, direction)) !== (a1 = corner(to, direction))
-        || comparePoint(from, to) < 0 ^ direction > 0) {
-      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
-      while ((a = (a + direction + 4) % 4) !== a1);
-    } else {
-      stream.point(to[0], to[1]);
-    }
-  }
-
-  function corner(p, direction) {
-    return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3
-        : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1
-        : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0
-        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
-  }
-
-  function compareIntersection(a, b) {
-    return comparePoint(a.x, b.x);
-  }
-
-  function comparePoint(a, b) {
-    var ca = corner(a, 1),
-        cb = corner(b, 1);
-    return ca !== cb ? ca - cb
-        : ca === 0 ? b[1] - a[1]
-        : ca === 1 ? a[0] - b[0]
-        : ca === 2 ? a[1] - b[1]
-        : b[0] - a[0];
-  }
-
-  return function(stream) {
-    var activeStream = stream,
-        bufferStream = clipBuffer(),
-        segments,
-        polygon,
-        ring,
-        x__, y__, v__, // first point
-        x_, y_, v_, // previous point
-        first,
-        clean;
-
-    var clipStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: polygonStart,
-      polygonEnd: polygonEnd
-    };
-
-    function point(x, y) {
-      if (visible(x, y)) activeStream.point(x, y);
-    }
-
-    function polygonInside() {
-      var winding = 0;
-
-      for (var i = 0, n = polygon.length; i < n; ++i) {
-        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
-          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
-          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
-          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
-        }
-      }
-
-      return winding;
-    }
-
-    // Buffer geometry within a polygon and then clip it en masse.
-    function polygonStart() {
-      activeStream = bufferStream, segments = [], polygon = [], clean = true;
-    }
-
-    function polygonEnd() {
-      var startInside = polygonInside(),
-          cleanInside = clean && startInside,
-          visible = (segments = merge(segments)).length;
-      if (cleanInside || visible) {
-        stream.polygonStart();
-        if (cleanInside) {
-          stream.lineStart();
-          interpolate(null, null, 1, stream);
-          stream.lineEnd();
-        }
-        if (visible) {
-          clipRejoin(segments, compareIntersection, startInside, interpolate, stream);
-        }
-        stream.polygonEnd();
-      }
-      activeStream = stream, segments = polygon = ring = null;
-    }
-
-    function lineStart() {
-      clipStream.point = linePoint;
-      if (polygon) polygon.push(ring = []);
-      first = true;
-      v_ = false;
-      x_ = y_ = NaN;
-    }
-
-    // TODO rather than special-case polygons, simply handle them separately.
-    // Ideally, coincident intersection points should be jittered to avoid
-    // clipping issues.
-    function lineEnd() {
-      if (segments) {
-        linePoint(x__, y__);
-        if (v__ && v_) bufferStream.rejoin();
-        segments.push(bufferStream.result());
-      }
-      clipStream.point = point;
-      if (v_) activeStream.lineEnd();
-    }
-
-    function linePoint(x, y) {
-      var v = visible(x, y);
-      if (polygon) ring.push([x, y]);
-      if (first) {
-        x__ = x, y__ = y, v__ = v;
-        first = false;
-        if (v) {
-          activeStream.lineStart();
-          activeStream.point(x, y);
-        }
-      } else {
-        if (v && v_) activeStream.point(x, y);
-        else {
-          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
-              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
-          if (clipLine(a, b, x0, y0, x1, y1)) {
-            if (!v_) {
-              activeStream.lineStart();
-              activeStream.point(a[0], a[1]);
-            }
-            activeStream.point(b[0], b[1]);
-            if (!v) activeStream.lineEnd();
-            clean = false;
-          } else if (v) {
-            activeStream.lineStart();
-            activeStream.point(x, y);
-            clean = false;
-          }
-        }
-      }
-      x_ = x, y_ = y, v_ = v;
-    }
-
-    return clipStream;
-  };
-}
-
-function extent() {
-  var x0 = 0,
-      y0 = 0,
-      x1 = 960,
-      y1 = 500,
-      cache,
-      cacheStream,
-      clip;
-
-  return clip = {
-    stream: function(stream) {
-      return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);
-    },
-    extent: function(_) {
-      return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
-    }
-  };
-}
-
-var lengthSum$1,
-    lambda0,
-    sinPhi0,
-    cosPhi0;
-
-var lengthStream$1 = {
-  sphere: noop$1,
-  point: noop$1,
-  lineStart: lengthLineStart,
-  lineEnd: noop$1,
-  polygonStart: noop$1,
-  polygonEnd: noop$1
-};
-
-function lengthLineStart() {
-  lengthStream$1.point = lengthPointFirst$1;
-  lengthStream$1.lineEnd = lengthLineEnd;
-}
-
-function lengthLineEnd() {
-  lengthStream$1.point = lengthStream$1.lineEnd = noop$1;
-}
-
-function lengthPointFirst$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi);
-  lengthStream$1.point = lengthPoint$1;
-}
-
-function lengthPoint$1(lambda, phi) {
-  lambda *= radians, phi *= radians;
-  var sinPhi = sin$1(phi),
-      cosPhi = cos$1(phi),
-      delta = abs$1(lambda - lambda0),
-      cosDelta = cos$1(delta),
-      sinDelta = sin$1(delta),
-      x = cosPhi * sinDelta,
-      y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
-      z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
-  lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z));
-  lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
-}
-
-function length$1(object) {
-  lengthSum$1 = new Adder();
-  geoStream(object, lengthStream$1);
-  return +lengthSum$1;
-}
-
-var coordinates = [null, null],
-    object = {type: "LineString", coordinates: coordinates};
-
-function distance(a, b) {
-  coordinates[0] = a;
-  coordinates[1] = b;
-  return length$1(object);
-}
-
-var containsObjectType = {
-  Feature: function(object, point) {
-    return containsGeometry(object.geometry, point);
-  },
-  FeatureCollection: function(object, point) {
-    var features = object.features, i = -1, n = features.length;
-    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
-    return false;
-  }
-};
-
-var containsGeometryType = {
-  Sphere: function() {
-    return true;
-  },
-  Point: function(object, point) {
-    return containsPoint(object.coordinates, point);
-  },
-  MultiPoint: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPoint(coordinates[i], point)) return true;
-    return false;
-  },
-  LineString: function(object, point) {
-    return containsLine(object.coordinates, point);
-  },
-  MultiLineString: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsLine(coordinates[i], point)) return true;
-    return false;
-  },
-  Polygon: function(object, point) {
-    return containsPolygon(object.coordinates, point);
-  },
-  MultiPolygon: function(object, point) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length;
-    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
-    return false;
-  },
-  GeometryCollection: function(object, point) {
-    var geometries = object.geometries, i = -1, n = geometries.length;
-    while (++i < n) if (containsGeometry(geometries[i], point)) return true;
-    return false;
-  }
-};
-
-function containsGeometry(geometry, point) {
-  return geometry && containsGeometryType.hasOwnProperty(geometry.type)
-      ? containsGeometryType[geometry.type](geometry, point)
-      : false;
-}
-
-function containsPoint(coordinates, point) {
-  return distance(coordinates, point) === 0;
-}
-
-function containsLine(coordinates, point) {
-  var ao, bo, ab;
-  for (var i = 0, n = coordinates.length; i < n; i++) {
-    bo = distance(coordinates[i], point);
-    if (bo === 0) return true;
-    if (i > 0) {
-      ab = distance(coordinates[i], coordinates[i - 1]);
-      if (
-        ab > 0 &&
-        ao <= ab &&
-        bo <= ab &&
-        (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab
-      )
-        return true;
-    }
-    ao = bo;
-  }
-  return false;
-}
-
-function containsPolygon(coordinates, point) {
-  return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));
-}
-
-function ringRadians(ring) {
-  return ring = ring.map(pointRadians), ring.pop(), ring;
-}
-
-function pointRadians(point) {
-  return [point[0] * radians, point[1] * radians];
-}
-
-function contains$1(object, point) {
-  return (object && containsObjectType.hasOwnProperty(object.type)
-      ? containsObjectType[object.type]
-      : containsGeometry)(object, point);
-}
-
-function graticuleX(y0, y1, dy) {
-  var y = range$2(y0, y1 - epsilon$1, dy).concat(y1);
-  return function(x) { return y.map(function(y) { return [x, y]; }); };
-}
-
-function graticuleY(x0, x1, dx) {
-  var x = range$2(x0, x1 - epsilon$1, dx).concat(x1);
-  return function(y) { return x.map(function(x) { return [x, y]; }); };
-}
-
-function graticule() {
-  var x1, x0, X1, X0,
-      y1, y0, Y1, Y0,
-      dx = 10, dy = dx, DX = 90, DY = 360,
-      x, y, X, Y,
-      precision = 2.5;
-
-  function graticule() {
-    return {type: "MultiLineString", coordinates: lines()};
-  }
-
-  function lines() {
-    return range$2(ceil(X0 / DX) * DX, X1, DX).map(X)
-        .concat(range$2(ceil(Y0 / DY) * DY, Y1, DY).map(Y))
-        .concat(range$2(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x))
-        .concat(range$2(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y));
-  }
-
-  graticule.lines = function() {
-    return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
-  };
-
-  graticule.outline = function() {
-    return {
-      type: "Polygon",
-      coordinates: [
-        X(X0).concat(
-        Y(Y1).slice(1),
-        X(X1).reverse().slice(1),
-        Y(Y0).reverse().slice(1))
-      ]
-    };
-  };
-
-  graticule.extent = function(_) {
-    if (!arguments.length) return graticule.extentMinor();
-    return graticule.extentMajor(_).extentMinor(_);
-  };
-
-  graticule.extentMajor = function(_) {
-    if (!arguments.length) return [[X0, Y0], [X1, Y1]];
-    X0 = +_[0][0], X1 = +_[1][0];
-    Y0 = +_[0][1], Y1 = +_[1][1];
-    if (X0 > X1) _ = X0, X0 = X1, X1 = _;
-    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.extentMinor = function(_) {
-    if (!arguments.length) return [[x0, y0], [x1, y1]];
-    x0 = +_[0][0], x1 = +_[1][0];
-    y0 = +_[0][1], y1 = +_[1][1];
-    if (x0 > x1) _ = x0, x0 = x1, x1 = _;
-    if (y0 > y1) _ = y0, y0 = y1, y1 = _;
-    return graticule.precision(precision);
-  };
-
-  graticule.step = function(_) {
-    if (!arguments.length) return graticule.stepMinor();
-    return graticule.stepMajor(_).stepMinor(_);
-  };
-
-  graticule.stepMajor = function(_) {
-    if (!arguments.length) return [DX, DY];
-    DX = +_[0], DY = +_[1];
-    return graticule;
-  };
-
-  graticule.stepMinor = function(_) {
-    if (!arguments.length) return [dx, dy];
-    dx = +_[0], dy = +_[1];
-    return graticule;
-  };
-
-  graticule.precision = function(_) {
-    if (!arguments.length) return precision;
-    precision = +_;
-    x = graticuleX(y0, y1, 90);
-    y = graticuleY(x0, x1, precision);
-    X = graticuleX(Y0, Y1, 90);
-    Y = graticuleY(X0, X1, precision);
-    return graticule;
-  };
-
-  return graticule
-      .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]])
-      .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]);
-}
-
-function graticule10() {
-  return graticule()();
-}
-
-function interpolate(a, b) {
-  var x0 = a[0] * radians,
-      y0 = a[1] * radians,
-      x1 = b[0] * radians,
-      y1 = b[1] * radians,
-      cy0 = cos$1(y0),
-      sy0 = sin$1(y0),
-      cy1 = cos$1(y1),
-      sy1 = sin$1(y1),
-      kx0 = cy0 * cos$1(x0),
-      ky0 = cy0 * sin$1(x0),
-      kx1 = cy1 * cos$1(x1),
-      ky1 = cy1 * sin$1(x1),
-      d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),
-      k = sin$1(d);
-
-  var interpolate = d ? function(t) {
-    var B = sin$1(t *= d) / k,
-        A = sin$1(d - t) / k,
-        x = A * kx0 + B * kx1,
-        y = A * ky0 + B * ky1,
-        z = A * sy0 + B * sy1;
-    return [
-      atan2$1(y, x) * degrees,
-      atan2$1(z, sqrt$2(x * x + y * y)) * degrees
-    ];
-  } : function() {
-    return [x0 * degrees, y0 * degrees];
-  };
-
-  interpolate.distance = d;
-
-  return interpolate;
-}
-
-var identity$5 = x => x;
-
-var areaSum = new Adder(),
-    areaRingSum = new Adder(),
-    x00$2,
-    y00$2,
-    x0$3,
-    y0$3;
-
-var areaStream = {
-  point: noop$1,
-  lineStart: noop$1,
-  lineEnd: noop$1,
-  polygonStart: function() {
-    areaStream.lineStart = areaRingStart;
-    areaStream.lineEnd = areaRingEnd;
-  },
-  polygonEnd: function() {
-    areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1;
-    areaSum.add(abs$1(areaRingSum));
-    areaRingSum = new Adder();
-  },
-  result: function() {
-    var area = areaSum / 2;
-    areaSum = new Adder();
-    return area;
-  }
-};
-
-function areaRingStart() {
-  areaStream.point = areaPointFirst;
-}
-
-function areaPointFirst(x, y) {
-  areaStream.point = areaPoint;
-  x00$2 = x0$3 = x, y00$2 = y0$3 = y;
-}
-
-function areaPoint(x, y) {
-  areaRingSum.add(y0$3 * x - x0$3 * y);
-  x0$3 = x, y0$3 = y;
-}
-
-function areaRingEnd() {
-  areaPoint(x00$2, y00$2);
-}
-
-var pathArea = areaStream;
-
-var x0$2 = Infinity,
-    y0$2 = x0$2,
-    x1 = -x0$2,
-    y1 = x1;
-
-var boundsStream = {
-  point: boundsPoint,
-  lineStart: noop$1,
-  lineEnd: noop$1,
-  polygonStart: noop$1,
-  polygonEnd: noop$1,
-  result: function() {
-    var bounds = [[x0$2, y0$2], [x1, y1]];
-    x1 = y1 = -(y0$2 = x0$2 = Infinity);
-    return bounds;
-  }
-};
-
-function boundsPoint(x, y) {
-  if (x < x0$2) x0$2 = x;
-  if (x > x1) x1 = x;
-  if (y < y0$2) y0$2 = y;
-  if (y > y1) y1 = y;
-}
-
-var boundsStream$1 = boundsStream;
-
-// TODO Enforce positive area for exterior, negative area for interior?
-
-var X0 = 0,
-    Y0 = 0,
-    Z0 = 0,
-    X1 = 0,
-    Y1 = 0,
-    Z1 = 0,
-    X2 = 0,
-    Y2 = 0,
-    Z2 = 0,
-    x00$1,
-    y00$1,
-    x0$1,
-    y0$1;
-
-var centroidStream = {
-  point: centroidPoint,
-  lineStart: centroidLineStart,
-  lineEnd: centroidLineEnd,
-  polygonStart: function() {
-    centroidStream.lineStart = centroidRingStart;
-    centroidStream.lineEnd = centroidRingEnd;
-  },
-  polygonEnd: function() {
-    centroidStream.point = centroidPoint;
-    centroidStream.lineStart = centroidLineStart;
-    centroidStream.lineEnd = centroidLineEnd;
-  },
-  result: function() {
-    var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
-        : Z1 ? [X1 / Z1, Y1 / Z1]
-        : Z0 ? [X0 / Z0, Y0 / Z0]
-        : [NaN, NaN];
-    X0 = Y0 = Z0 =
-    X1 = Y1 = Z1 =
-    X2 = Y2 = Z2 = 0;
-    return centroid;
-  }
-};
-
-function centroidPoint(x, y) {
-  X0 += x;
-  Y0 += y;
-  ++Z0;
-}
-
-function centroidLineStart() {
-  centroidStream.point = centroidPointFirstLine;
-}
-
-function centroidPointFirstLine(x, y) {
-  centroidStream.point = centroidPointLine;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-function centroidPointLine(x, y) {
-  var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy);
-  X1 += z * (x0$1 + x) / 2;
-  Y1 += z * (y0$1 + y) / 2;
-  Z1 += z;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-function centroidLineEnd() {
-  centroidStream.point = centroidPoint;
-}
-
-function centroidRingStart() {
-  centroidStream.point = centroidPointFirstRing;
-}
-
-function centroidRingEnd() {
-  centroidPointRing(x00$1, y00$1);
-}
-
-function centroidPointFirstRing(x, y) {
-  centroidStream.point = centroidPointRing;
-  centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y);
-}
-
-function centroidPointRing(x, y) {
-  var dx = x - x0$1,
-      dy = y - y0$1,
-      z = sqrt$2(dx * dx + dy * dy);
-
-  X1 += z * (x0$1 + x) / 2;
-  Y1 += z * (y0$1 + y) / 2;
-  Z1 += z;
-
-  z = y0$1 * x - x0$1 * y;
-  X2 += z * (x0$1 + x);
-  Y2 += z * (y0$1 + y);
-  Z2 += z * 3;
-  centroidPoint(x0$1 = x, y0$1 = y);
-}
-
-var pathCentroid = centroidStream;
-
-function PathContext(context) {
-  this._context = context;
-}
-
-PathContext.prototype = {
-  _radius: 4.5,
-  pointRadius: function(_) {
-    return this._radius = _, this;
-  },
-  polygonStart: function() {
-    this._line = 0;
-  },
-  polygonEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line === 0) this._context.closePath();
-    this._point = NaN;
-  },
-  point: function(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._context.moveTo(x, y);
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._context.lineTo(x, y);
-        break;
-      }
-      default: {
-        this._context.moveTo(x + this._radius, y);
-        this._context.arc(x, y, this._radius, 0, tau$1);
-        break;
-      }
-    }
-  },
-  result: noop$1
-};
-
-var lengthSum = new Adder(),
-    lengthRing,
-    x00,
-    y00,
-    x0,
-    y0;
-
-var lengthStream = {
-  point: noop$1,
-  lineStart: function() {
-    lengthStream.point = lengthPointFirst;
-  },
-  lineEnd: function() {
-    if (lengthRing) lengthPoint(x00, y00);
-    lengthStream.point = noop$1;
-  },
-  polygonStart: function() {
-    lengthRing = true;
-  },
-  polygonEnd: function() {
-    lengthRing = null;
-  },
-  result: function() {
-    var length = +lengthSum;
-    lengthSum = new Adder();
-    return length;
-  }
-};
-
-function lengthPointFirst(x, y) {
-  lengthStream.point = lengthPoint;
-  x00 = x0 = x, y00 = y0 = y;
-}
-
-function lengthPoint(x, y) {
-  x0 -= x, y0 -= y;
-  lengthSum.add(sqrt$2(x0 * x0 + y0 * y0));
-  x0 = x, y0 = y;
-}
-
-var pathMeasure = lengthStream;
-
-// Simple caching for constant-radius points.
-let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
-
-class PathString {
-  constructor(digits) {
-    this._append = digits == null ? append : appendRound(digits);
-    this._radius = 4.5;
-    this._ = "";
-  }
-  pointRadius(_) {
-    this._radius = +_;
-    return this;
-  }
-  polygonStart() {
-    this._line = 0;
-  }
-  polygonEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line === 0) this._ += "Z";
-    this._point = NaN;
-  }
-  point(x, y) {
-    switch (this._point) {
-      case 0: {
-        this._append`M${x},${y}`;
-        this._point = 1;
-        break;
-      }
-      case 1: {
-        this._append`L${x},${y}`;
-        break;
-      }
-      default: {
-        this._append`M${x},${y}`;
-        if (this._radius !== cacheRadius || this._append !== cacheAppend) {
-          const r = this._radius;
-          const s = this._;
-          this._ = ""; // stash the old string so we can cache the circle path fragment
-          this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
-          cacheRadius = r;
-          cacheAppend = this._append;
-          cacheCircle = this._;
-          this._ = s;
-        }
-        this._ += cacheCircle;
-        break;
-      }
-    }
-  }
-  result() {
-    const result = this._;
-    this._ = "";
-    return result.length ? result : null;
-  }
-}
-
-function append(strings) {
-  let i = 1;
-  this._ += strings[0];
-  for (const j = strings.length; i < j; ++i) {
-    this._ += arguments[i] + strings[i];
-  }
-}
-
-function appendRound(digits) {
-  const d = Math.floor(digits);
-  if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
-  if (d > 15) return append;
-  if (d !== cacheDigits) {
-    const k = 10 ** d;
-    cacheDigits = d;
-    cacheAppend = function append(strings) {
-      let i = 1;
-      this._ += strings[0];
-      for (const j = strings.length; i < j; ++i) {
-        this._ += Math.round(arguments[i] * k) / k + strings[i];
-      }
-    };
-  }
-  return cacheAppend;
-}
-
-function index$2(projection, context) {
-  let digits = 3,
-      pointRadius = 4.5,
-      projectionStream,
-      contextStream;
-
-  function path(object) {
-    if (object) {
-      if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
-      geoStream(object, projectionStream(contextStream));
-    }
-    return contextStream.result();
-  }
-
-  path.area = function(object) {
-    geoStream(object, projectionStream(pathArea));
-    return pathArea.result();
-  };
-
-  path.measure = function(object) {
-    geoStream(object, projectionStream(pathMeasure));
-    return pathMeasure.result();
-  };
-
-  path.bounds = function(object) {
-    geoStream(object, projectionStream(boundsStream$1));
-    return boundsStream$1.result();
-  };
-
-  path.centroid = function(object) {
-    geoStream(object, projectionStream(pathCentroid));
-    return pathCentroid.result();
-  };
-
-  path.projection = function(_) {
-    if (!arguments.length) return projection;
-    projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream;
-    return path;
-  };
-
-  path.context = function(_) {
-    if (!arguments.length) return context;
-    contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
-    if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
-    return path;
-  };
-
-  path.pointRadius = function(_) {
-    if (!arguments.length) return pointRadius;
-    pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
-    return path;
-  };
-
-  path.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) digits = null;
-    else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    if (context === null) contextStream = new PathString(digits);
-    return path;
-  };
-
-  return path.projection(projection).digits(digits).context(context);
-}
-
-function transform$1(methods) {
-  return {
-    stream: transformer$3(methods)
-  };
-}
-
-function transformer$3(methods) {
-  return function(stream) {
-    var s = new TransformStream;
-    for (var key in methods) s[key] = methods[key];
-    s.stream = stream;
-    return s;
-  };
-}
-
-function TransformStream() {}
-
-TransformStream.prototype = {
-  constructor: TransformStream,
-  point: function(x, y) { this.stream.point(x, y); },
-  sphere: function() { this.stream.sphere(); },
-  lineStart: function() { this.stream.lineStart(); },
-  lineEnd: function() { this.stream.lineEnd(); },
-  polygonStart: function() { this.stream.polygonStart(); },
-  polygonEnd: function() { this.stream.polygonEnd(); }
-};
-
-function fit(projection, fitBounds, object) {
-  var clip = projection.clipExtent && projection.clipExtent();
-  projection.scale(150).translate([0, 0]);
-  if (clip != null) projection.clipExtent(null);
-  geoStream(object, projection.stream(boundsStream$1));
-  fitBounds(boundsStream$1.result());
-  if (clip != null) projection.clipExtent(clip);
-  return projection;
-}
-
-function fitExtent(projection, extent, object) {
-  return fit(projection, function(b) {
-    var w = extent[1][0] - extent[0][0],
-        h = extent[1][1] - extent[0][1],
-        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
-        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
-        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-function fitSize(projection, size, object) {
-  return fitExtent(projection, [[0, 0], size], object);
-}
-
-function fitWidth(projection, width, object) {
-  return fit(projection, function(b) {
-    var w = +width,
-        k = w / (b[1][0] - b[0][0]),
-        x = (w - k * (b[1][0] + b[0][0])) / 2,
-        y = -k * b[0][1];
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-function fitHeight(projection, height, object) {
-  return fit(projection, function(b) {
-    var h = +height,
-        k = h / (b[1][1] - b[0][1]),
-        x = -k * b[0][0],
-        y = (h - k * (b[1][1] + b[0][1])) / 2;
-    projection.scale(150 * k).translate([x, y]);
-  }, object);
-}
-
-var maxDepth = 16, // maximum depth of subdivision
-    cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance)
-
-function resample(project, delta2) {
-  return +delta2 ? resample$1(project, delta2) : resampleNone(project);
-}
-
-function resampleNone(project) {
-  return transformer$3({
-    point: function(x, y) {
-      x = project(x, y);
-      this.stream.point(x[0], x[1]);
-    }
-  });
-}
-
-function resample$1(project, delta2) {
-
-  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
-    var dx = x1 - x0,
-        dy = y1 - y0,
-        d2 = dx * dx + dy * dy;
-    if (d2 > 4 * delta2 && depth--) {
-      var a = a0 + a1,
-          b = b0 + b1,
-          c = c0 + c1,
-          m = sqrt$2(a * a + b * b + c * c),
-          phi2 = asin$1(c /= m),
-          lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a),
-          p = project(lambda2, phi2),
-          x2 = p[0],
-          y2 = p[1],
-          dx2 = x2 - x0,
-          dy2 = y2 - y0,
-          dz = dy * dx2 - dx * dy2;
-      if (dz * dz / d2 > delta2 // perpendicular projected distance
-          || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
-          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
-        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
-        stream.point(x2, y2);
-        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
-      }
-    }
-  }
-  return function(stream) {
-    var lambda00, x00, y00, a00, b00, c00, // first point
-        lambda0, x0, y0, a0, b0, c0; // previous point
-
-    var resampleStream = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
-      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
-    };
-
-    function point(x, y) {
-      x = project(x, y);
-      stream.point(x[0], x[1]);
-    }
-
-    function lineStart() {
-      x0 = NaN;
-      resampleStream.point = linePoint;
-      stream.lineStart();
-    }
-
-    function linePoint(lambda, phi) {
-      var c = cartesian([lambda, phi]), p = project(lambda, phi);
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
-      stream.point(x0, y0);
-    }
-
-    function lineEnd() {
-      resampleStream.point = point;
-      stream.lineEnd();
-    }
-
-    function ringStart() {
-      lineStart();
-      resampleStream.point = ringPoint;
-      resampleStream.lineEnd = ringEnd;
-    }
-
-    function ringPoint(lambda, phi) {
-      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
-      resampleStream.point = linePoint;
-    }
-
-    function ringEnd() {
-      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
-      resampleStream.lineEnd = lineEnd;
-      lineEnd();
-    }
-
-    return resampleStream;
-  };
-}
-
-var transformRadians = transformer$3({
-  point: function(x, y) {
-    this.stream.point(x * radians, y * radians);
-  }
-});
-
-function transformRotate(rotate) {
-  return transformer$3({
-    point: function(x, y) {
-      var r = rotate(x, y);
-      return this.stream.point(r[0], r[1]);
-    }
-  });
-}
-
-function scaleTranslate(k, dx, dy, sx, sy) {
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [dx + k * x, dy - k * y];
-  }
-  transform.invert = function(x, y) {
-    return [(x - dx) / k * sx, (dy - y) / k * sy];
-  };
-  return transform;
-}
-
-function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {
-  if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);
-  var cosAlpha = cos$1(alpha),
-      sinAlpha = sin$1(alpha),
-      a = cosAlpha * k,
-      b = sinAlpha * k,
-      ai = cosAlpha / k,
-      bi = sinAlpha / k,
-      ci = (sinAlpha * dy - cosAlpha * dx) / k,
-      fi = (sinAlpha * dx + cosAlpha * dy) / k;
-  function transform(x, y) {
-    x *= sx; y *= sy;
-    return [a * x - b * y + dx, dy - b * x - a * y];
-  }
-  transform.invert = function(x, y) {
-    return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];
-  };
-  return transform;
-}
-
-function projection(project) {
-  return projectionMutator(function() { return project; })();
-}
-
-function projectionMutator(projectAt) {
-  var project,
-      k = 150, // scale
-      x = 480, y = 250, // translate
-      lambda = 0, phi = 0, // center
-      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
-      alpha = 0, // post-rotate angle
-      sx = 1, // reflectX
-      sy = 1, // reflectX
-      theta = null, preclip = clipAntimeridian, // pre-clip angle
-      x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent
-      delta2 = 0.5, // precision
-      projectResample,
-      projectTransform,
-      projectRotateTransform,
-      cache,
-      cacheStream;
-
-  function projection(point) {
-    return projectRotateTransform(point[0] * radians, point[1] * radians);
-  }
-
-  function invert(point) {
-    point = projectRotateTransform.invert(point[0], point[1]);
-    return point && [point[0] * degrees, point[1] * degrees];
-  }
-
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
-  };
-
-  projection.preclip = function(_) {
-    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
-  };
-
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-
-  projection.clipAngle = function(_) {
-    return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;
-  };
-
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, recenter()) : k;
-  };
-
-  projection.translate = function(_) {
-    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
-  };
-
-  projection.center = function(_) {
-    return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];
-  };
-
-  projection.rotate = function(_) {
-    return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];
-  };
-
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;
-  };
-
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;
-  };
-
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;
-  };
-
-  projection.precision = function(_) {
-    return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2);
-  };
-
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  function recenter() {
-    var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),
-        transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);
-    rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);
-    projectTransform = compose(project, transform);
-    projectRotateTransform = compose(rotate, projectTransform);
-    projectResample = resample(projectTransform, delta2);
-    return reset();
-  }
-
-  function reset() {
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  return function() {
-    project = projectAt.apply(this, arguments);
-    projection.invert = project.invert && invert;
-    return recenter();
-  };
-}
-
-function conicProjection(projectAt) {
-  var phi0 = 0,
-      phi1 = pi$1 / 3,
-      m = projectionMutator(projectAt),
-      p = m(phi0, phi1);
-
-  p.parallels = function(_) {
-    return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];
-  };
-
-  return p;
-}
-
-function cylindricalEqualAreaRaw(phi0) {
-  var cosPhi0 = cos$1(phi0);
-
-  function forward(lambda, phi) {
-    return [lambda * cosPhi0, sin$1(phi) / cosPhi0];
-  }
-
-  forward.invert = function(x, y) {
-    return [x / cosPhi0, asin$1(y * cosPhi0)];
-  };
-
-  return forward;
-}
-
-function conicEqualAreaRaw(y0, y1) {
-  var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2;
-
-  // Are the parallels symmetrical around the Equator?
-  if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0);
-
-  var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n;
-
-  function project(x, y) {
-    var r = sqrt$2(c - 2 * n * sin$1(y)) / n;
-    return [r * sin$1(x *= n), r0 - r * cos$1(x)];
-  }
-
-  project.invert = function(x, y) {
-    var r0y = r0 - y,
-        l = atan2$1(x, abs$1(r0y)) * sign$1(r0y);
-    if (r0y * n < 0)
-      l -= pi$1 * sign$1(x) * sign$1(r0y);
-    return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
-  };
-
-  return project;
-}
-
-function conicEqualArea() {
-  return conicProjection(conicEqualAreaRaw)
-      .scale(155.424)
-      .center([0, 33.6442]);
-}
-
-function albers() {
-  return conicEqualArea()
-      .parallels([29.5, 45.5])
-      .scale(1070)
-      .translate([480, 250])
-      .rotate([96, 0])
-      .center([-0.6, 38.7]);
-}
-
-// The projections must have mutually exclusive clip regions on the sphere,
-// as this will avoid emitting interleaving lines and polygons.
-function multiplex(streams) {
-  var n = streams.length;
-  return {
-    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
-    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
-    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
-    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
-    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
-    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
-  };
-}
-
-// A composite projection for the United States, configured by default for
-// 960×500. The projection also works quite well at 960×600 if you change the
-// scale to 1285 and adjust the translate accordingly. The set of standard
-// parallels for each region comes from USGS, which is published here:
-// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
-function albersUsa() {
-  var cache,
-      cacheStream,
-      lower48 = albers(), lower48Point,
-      alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
-      hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
-      point, pointStream = {point: function(x, y) { point = [x, y]; }};
-
-  function albersUsa(coordinates) {
-    var x = coordinates[0], y = coordinates[1];
-    return point = null,
-        (lower48Point.point(x, y), point)
-        || (alaskaPoint.point(x, y), point)
-        || (hawaiiPoint.point(x, y), point);
-  }
-
-  albersUsa.invert = function(coordinates) {
-    var k = lower48.scale(),
-        t = lower48.translate(),
-        x = (coordinates[0] - t[0]) / k,
-        y = (coordinates[1] - t[1]) / k;
-    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
-        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
-        : lower48).invert(coordinates);
-  };
-
-  albersUsa.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
-  };
-
-  albersUsa.precision = function(_) {
-    if (!arguments.length) return lower48.precision();
-    lower48.precision(_), alaska.precision(_), hawaii.precision(_);
-    return reset();
-  };
-
-  albersUsa.scale = function(_) {
-    if (!arguments.length) return lower48.scale();
-    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
-    return albersUsa.translate(lower48.translate());
-  };
-
-  albersUsa.translate = function(_) {
-    if (!arguments.length) return lower48.translate();
-    var k = lower48.scale(), x = +_[0], y = +_[1];
-
-    lower48Point = lower48
-        .translate(_)
-        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
-        .stream(pointStream);
-
-    alaskaPoint = alaska
-        .translate([x - 0.307 * k, y + 0.201 * k])
-        .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]])
-        .stream(pointStream);
-
-    hawaiiPoint = hawaii
-        .translate([x - 0.205 * k, y + 0.212 * k])
-        .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]])
-        .stream(pointStream);
-
-    return reset();
-  };
-
-  albersUsa.fitExtent = function(extent, object) {
-    return fitExtent(albersUsa, extent, object);
-  };
-
-  albersUsa.fitSize = function(size, object) {
-    return fitSize(albersUsa, size, object);
-  };
-
-  albersUsa.fitWidth = function(width, object) {
-    return fitWidth(albersUsa, width, object);
-  };
-
-  albersUsa.fitHeight = function(height, object) {
-    return fitHeight(albersUsa, height, object);
-  };
-
-  function reset() {
-    cache = cacheStream = null;
-    return albersUsa;
-  }
-
-  return albersUsa.scale(1070);
-}
-
-function azimuthalRaw(scale) {
-  return function(x, y) {
-    var cx = cos$1(x),
-        cy = cos$1(y),
-        k = scale(cx * cy);
-        if (k === Infinity) return [2, 0];
-    return [
-      k * cy * sin$1(x),
-      k * sin$1(y)
-    ];
-  }
-}
-
-function azimuthalInvert(angle) {
-  return function(x, y) {
-    var z = sqrt$2(x * x + y * y),
-        c = angle(z),
-        sc = sin$1(c),
-        cc = cos$1(c);
-    return [
-      atan2$1(x * sc, z * cc),
-      asin$1(z && y * sc / z)
-    ];
-  }
-}
-
-var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {
-  return sqrt$2(2 / (1 + cxcy));
-});
-
-azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {
-  return 2 * asin$1(z / 2);
-});
-
-function azimuthalEqualArea() {
-  return projection(azimuthalEqualAreaRaw)
-      .scale(124.75)
-      .clipAngle(180 - 1e-3);
-}
-
-var azimuthalEquidistantRaw = azimuthalRaw(function(c) {
-  return (c = acos$1(c)) && c / sin$1(c);
-});
-
-azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {
-  return z;
-});
-
-function azimuthalEquidistant() {
-  return projection(azimuthalEquidistantRaw)
-      .scale(79.4188)
-      .clipAngle(180 - 1e-3);
-}
-
-function mercatorRaw(lambda, phi) {
-  return [lambda, log$1(tan((halfPi$1 + phi) / 2))];
-}
-
-mercatorRaw.invert = function(x, y) {
-  return [x, 2 * atan(exp(y)) - halfPi$1];
-};
-
-function mercator() {
-  return mercatorProjection(mercatorRaw)
-      .scale(961 / tau$1);
-}
-
-function mercatorProjection(project) {
-  var m = projection(project),
-      center = m.center,
-      scale = m.scale,
-      translate = m.translate,
-      clipExtent = m.clipExtent,
-      x0 = null, y0, x1, y1; // clip extent
-
-  m.scale = function(_) {
-    return arguments.length ? (scale(_), reclip()) : scale();
-  };
-
-  m.translate = function(_) {
-    return arguments.length ? (translate(_), reclip()) : translate();
-  };
-
-  m.center = function(_) {
-    return arguments.length ? (center(_), reclip()) : center();
-  };
-
-  m.clipExtent = function(_) {
-    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-
-  function reclip() {
-    var k = pi$1 * scale(),
-        t = m(rotation(m.rotate()).invert([0, 0]));
-    return clipExtent(x0 == null
-        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
-        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
-        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
-  }
-
-  return reclip();
-}
-
-function tany(y) {
-  return tan((halfPi$1 + y) / 2);
-}
-
-function conicConformalRaw(y0, y1) {
-  var cy0 = cos$1(y0),
-      n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)),
-      f = cy0 * pow$1(tany(y0), n) / n;
-
-  if (!n) return mercatorRaw;
-
-  function project(x, y) {
-    if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; }
-    else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; }
-    var r = f / pow$1(tany(y), n);
-    return [r * sin$1(n * x), f - r * cos$1(n * x)];
-  }
-
-  project.invert = function(x, y) {
-    var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy),
-      l = atan2$1(x, abs$1(fy)) * sign$1(fy);
-    if (fy * n < 0)
-      l -= pi$1 * sign$1(x) * sign$1(fy);
-    return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1];
-  };
-
-  return project;
-}
-
-function conicConformal() {
-  return conicProjection(conicConformalRaw)
-      .scale(109.5)
-      .parallels([30, 30]);
-}
-
-function equirectangularRaw(lambda, phi) {
-  return [lambda, phi];
-}
-
-equirectangularRaw.invert = equirectangularRaw;
-
-function equirectangular() {
-  return projection(equirectangularRaw)
-      .scale(152.63);
-}
-
-function conicEquidistantRaw(y0, y1) {
-  var cy0 = cos$1(y0),
-      n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0),
-      g = cy0 / n + y0;
-
-  if (abs$1(n) < epsilon$1) return equirectangularRaw;
-
-  function project(x, y) {
-    var gy = g - y, nx = n * x;
-    return [gy * sin$1(nx), g - gy * cos$1(nx)];
-  }
-
-  project.invert = function(x, y) {
-    var gy = g - y,
-        l = atan2$1(x, abs$1(gy)) * sign$1(gy);
-    if (gy * n < 0)
-      l -= pi$1 * sign$1(x) * sign$1(gy);
-    return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)];
-  };
-
-  return project;
-}
-
-function conicEquidistant() {
-  return conicProjection(conicEquidistantRaw)
-      .scale(131.154)
-      .center([0, 13.9389]);
-}
-
-var A1 = 1.340264,
-    A2 = -0.081106,
-    A3 = 0.000893,
-    A4 = 0.003796,
-    M = sqrt$2(3) / 2,
-    iterations = 12;
-
-function equalEarthRaw(lambda, phi) {
-  var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2;
-  return [
-    lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
-    l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
-  ];
-}
-
-equalEarthRaw.invert = function(x, y) {
-  var l = y, l2 = l * l, l6 = l2 * l2 * l2;
-  for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
-    fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
-    fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
-    l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
-    if (abs$1(delta) < epsilon2) break;
-  }
-  return [
-    M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l),
-    asin$1(sin$1(l) / M)
-  ];
-};
-
-function equalEarth() {
-  return projection(equalEarthRaw)
-      .scale(177.158);
-}
-
-function gnomonicRaw(x, y) {
-  var cy = cos$1(y), k = cos$1(x) * cy;
-  return [cy * sin$1(x) / k, sin$1(y) / k];
-}
-
-gnomonicRaw.invert = azimuthalInvert(atan);
-
-function gnomonic() {
-  return projection(gnomonicRaw)
-      .scale(144.049)
-      .clipAngle(60);
-}
-
-function identity$4() {
-  var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect
-      alpha = 0, ca, sa, // angle
-      x0 = null, y0, x1, y1, // clip extent
-      kx = 1, ky = 1,
-      transform = transformer$3({
-        point: function(x, y) {
-          var p = projection([x, y]);
-          this.stream.point(p[0], p[1]);
-        }
-      }),
-      postclip = identity$5,
-      cache,
-      cacheStream;
-
-  function reset() {
-    kx = k * sx;
-    ky = k * sy;
-    cache = cacheStream = null;
-    return projection;
-  }
-
-  function projection (p) {
-    var x = p[0] * kx, y = p[1] * ky;
-    if (alpha) {
-      var t = y * ca - x * sa;
-      x = x * ca + y * sa;
-      y = t;
-    }    
-    return [x + tx, y + ty];
-  }
-  projection.invert = function(p) {
-    var x = p[0] - tx, y = p[1] - ty;
-    if (alpha) {
-      var t = y * ca + x * sa;
-      x = x * ca - y * sa;
-      y = t;
-    }
-    return [x / kx, y / ky];
-  };
-  projection.stream = function(stream) {
-    return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
-  };
-  projection.postclip = function(_) {
-    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
-  };
-  projection.clipExtent = function(_) {
-    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
-  };
-  projection.scale = function(_) {
-    return arguments.length ? (k = +_, reset()) : k;
-  };
-  projection.translate = function(_) {
-    return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];
-  };
-  projection.angle = function(_) {
-    return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees;
-  };
-  projection.reflectX = function(_) {
-    return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;
-  };
-  projection.reflectY = function(_) {
-    return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;
-  };
-  projection.fitExtent = function(extent, object) {
-    return fitExtent(projection, extent, object);
-  };
-  projection.fitSize = function(size, object) {
-    return fitSize(projection, size, object);
-  };
-  projection.fitWidth = function(width, object) {
-    return fitWidth(projection, width, object);
-  };
-  projection.fitHeight = function(height, object) {
-    return fitHeight(projection, height, object);
-  };
-
-  return projection;
-}
-
-function naturalEarth1Raw(lambda, phi) {
-  var phi2 = phi * phi, phi4 = phi2 * phi2;
-  return [
-    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
-    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
-  ];
-}
-
-naturalEarth1Raw.invert = function(x, y) {
-  var phi = y, i = 25, delta;
-  do {
-    var phi2 = phi * phi, phi4 = phi2 * phi2;
-    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
-        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
-  } while (abs$1(delta) > epsilon$1 && --i > 0);
-  return [
-    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
-    phi
-  ];
-};
-
-function naturalEarth1() {
-  return projection(naturalEarth1Raw)
-      .scale(175.295);
-}
-
-function orthographicRaw(x, y) {
-  return [cos$1(y) * sin$1(x), sin$1(y)];
-}
-
-orthographicRaw.invert = azimuthalInvert(asin$1);
-
-function orthographic() {
-  return projection(orthographicRaw)
-      .scale(249.5)
-      .clipAngle(90 + epsilon$1);
-}
-
-function stereographicRaw(x, y) {
-  var cy = cos$1(y), k = 1 + cos$1(x) * cy;
-  return [cy * sin$1(x) / k, sin$1(y) / k];
-}
-
-stereographicRaw.invert = azimuthalInvert(function(z) {
-  return 2 * atan(z);
-});
-
-function stereographic() {
-  return projection(stereographicRaw)
-      .scale(250)
-      .clipAngle(142);
-}
-
-function transverseMercatorRaw(lambda, phi) {
-  return [log$1(tan((halfPi$1 + phi) / 2)), -lambda];
-}
-
-transverseMercatorRaw.invert = function(x, y) {
-  return [-y, 2 * atan(exp(x)) - halfPi$1];
-};
-
-function transverseMercator() {
-  var m = mercatorProjection(transverseMercatorRaw),
-      center = m.center,
-      rotate = m.rotate;
-
-  m.center = function(_) {
-    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
-  };
-
-  m.rotate = function(_) {
-    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
-  };
-
-  return rotate([0, 0, 90])
-      .scale(159.155);
-}
-
-function defaultSeparation$1(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-function meanX(children) {
-  return children.reduce(meanXReduce, 0) / children.length;
-}
-
-function meanXReduce(x, c) {
-  return x + c.x;
-}
-
-function maxY(children) {
-  return 1 + children.reduce(maxYReduce, 0);
-}
-
-function maxYReduce(y, c) {
-  return Math.max(y, c.y);
-}
-
-function leafLeft(node) {
-  var children;
-  while (children = node.children) node = children[0];
-  return node;
-}
-
-function leafRight(node) {
-  var children;
-  while (children = node.children) node = children[children.length - 1];
-  return node;
-}
-
-function cluster() {
-  var separation = defaultSeparation$1,
-      dx = 1,
-      dy = 1,
-      nodeSize = false;
-
-  function cluster(root) {
-    var previousNode,
-        x = 0;
-
-    // First walk, computing the initial x & y values.
-    root.eachAfter(function(node) {
-      var children = node.children;
-      if (children) {
-        node.x = meanX(children);
-        node.y = maxY(children);
-      } else {
-        node.x = previousNode ? x += separation(node, previousNode) : 0;
-        node.y = 0;
-        previousNode = node;
-      }
-    });
-
-    var left = leafLeft(root),
-        right = leafRight(root),
-        x0 = left.x - separation(left, right) / 2,
-        x1 = right.x + separation(right, left) / 2;
-
-    // Second walk, normalizing x & y to the desired size.
-    return root.eachAfter(nodeSize ? function(node) {
-      node.x = (node.x - root.x) * dx;
-      node.y = (root.y - node.y) * dy;
-    } : function(node) {
-      node.x = (node.x - x0) / (x1 - x0) * dx;
-      node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
-    });
-  }
-
-  cluster.separation = function(x) {
-    return arguments.length ? (separation = x, cluster) : separation;
-  };
-
-  cluster.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
-  };
-
-  cluster.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return cluster;
-}
-
-function count(node) {
-  var sum = 0,
-      children = node.children,
-      i = children && children.length;
-  if (!i) sum = 1;
-  else while (--i >= 0) sum += children[i].value;
-  node.value = sum;
-}
-
-function node_count() {
-  return this.eachAfter(count);
-}
-
-function node_each(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
-
-function node_eachBefore(callback, that) {
-  var node = this, nodes = [node], children, i, index = -1;
-  while (node = nodes.pop()) {
-    callback.call(that, node, ++index, this);
-    if (children = node.children) {
-      for (i = children.length - 1; i >= 0; --i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  return this;
-}
-
-function node_eachAfter(callback, that) {
-  var node = this, nodes = [node], next = [], children, i, n, index = -1;
-  while (node = nodes.pop()) {
-    next.push(node);
-    if (children = node.children) {
-      for (i = 0, n = children.length; i < n; ++i) {
-        nodes.push(children[i]);
-      }
-    }
-  }
-  while (node = next.pop()) {
-    callback.call(that, node, ++index, this);
-  }
-  return this;
-}
-
-function node_find(callback, that) {
-  let index = -1;
-  for (const node of this) {
-    if (callback.call(that, node, ++index, this)) {
-      return node;
-    }
-  }
-}
-
-function node_sum(value) {
-  return this.eachAfter(function(node) {
-    var sum = +value(node.data) || 0,
-        children = node.children,
-        i = children && children.length;
-    while (--i >= 0) sum += children[i].value;
-    node.value = sum;
-  });
-}
-
-function node_sort(compare) {
-  return this.eachBefore(function(node) {
-    if (node.children) {
-      node.children.sort(compare);
-    }
-  });
-}
-
-function node_path(end) {
-  var start = this,
-      ancestor = leastCommonAncestor(start, end),
-      nodes = [start];
-  while (start !== ancestor) {
-    start = start.parent;
-    nodes.push(start);
-  }
-  var k = nodes.length;
-  while (end !== ancestor) {
-    nodes.splice(k, 0, end);
-    end = end.parent;
-  }
-  return nodes;
-}
-
-function leastCommonAncestor(a, b) {
-  if (a === b) return a;
-  var aNodes = a.ancestors(),
-      bNodes = b.ancestors(),
-      c = null;
-  a = aNodes.pop();
-  b = bNodes.pop();
-  while (a === b) {
-    c = a;
-    a = aNodes.pop();
-    b = bNodes.pop();
-  }
-  return c;
-}
-
-function node_ancestors() {
-  var node = this, nodes = [node];
-  while (node = node.parent) {
-    nodes.push(node);
-  }
-  return nodes;
-}
-
-function node_descendants() {
-  return Array.from(this);
-}
-
-function node_leaves() {
-  var leaves = [];
-  this.eachBefore(function(node) {
-    if (!node.children) {
-      leaves.push(node);
-    }
-  });
-  return leaves;
-}
-
-function node_links() {
-  var root = this, links = [];
-  root.each(function(node) {
-    if (node !== root) { // Don’t include the root’s parent, if any.
-      links.push({source: node.parent, target: node});
-    }
-  });
-  return links;
-}
-
-function* node_iterator() {
-  var node = this, current, next = [node], children, i, n;
-  do {
-    current = next.reverse(), next = [];
-    while (node = current.pop()) {
-      yield node;
-      if (children = node.children) {
-        for (i = 0, n = children.length; i < n; ++i) {
-          next.push(children[i]);
-        }
-      }
-    }
-  } while (next.length);
-}
-
-function hierarchy(data, children) {
-  if (data instanceof Map) {
-    data = [undefined, data];
-    if (children === undefined) children = mapChildren;
-  } else if (children === undefined) {
-    children = objectChildren;
-  }
-
-  var root = new Node$1(data),
-      node,
-      nodes = [root],
-      child,
-      childs,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {
-      node.children = childs;
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = childs[i] = new Node$1(childs[i]));
-        child.parent = node;
-        child.depth = node.depth + 1;
-      }
-    }
-  }
-
-  return root.eachBefore(computeHeight);
-}
-
-function node_copy() {
-  return hierarchy(this).eachBefore(copyData);
-}
-
-function objectChildren(d) {
-  return d.children;
-}
-
-function mapChildren(d) {
-  return Array.isArray(d) ? d[1] : null;
-}
-
-function copyData(node) {
-  if (node.data.value !== undefined) node.value = node.data.value;
-  node.data = node.data.data;
-}
-
-function computeHeight(node) {
-  var height = 0;
-  do node.height = height;
-  while ((node = node.parent) && (node.height < ++height));
-}
-
-function Node$1(data) {
-  this.data = data;
-  this.depth =
-  this.height = 0;
-  this.parent = null;
-}
-
-Node$1.prototype = hierarchy.prototype = {
-  constructor: Node$1,
-  count: node_count,
-  each: node_each,
-  eachAfter: node_eachAfter,
-  eachBefore: node_eachBefore,
-  find: node_find,
-  sum: node_sum,
-  sort: node_sort,
-  path: node_path,
-  ancestors: node_ancestors,
-  descendants: node_descendants,
-  leaves: node_leaves,
-  links: node_links,
-  copy: node_copy,
-  [Symbol.iterator]: node_iterator
-};
-
-function optional(f) {
-  return f == null ? null : required(f);
-}
-
-function required(f) {
-  if (typeof f !== "function") throw new Error;
-  return f;
-}
-
-function constantZero() {
-  return 0;
-}
-
-function constant$2(x) {
-  return function() {
-    return x;
-  };
-}
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a$1 = 1664525;
-const c$3 = 1013904223;
-const m = 4294967296; // 2^32
-
-function lcg$1() {
-  let s = 1;
-  return () => (s = (a$1 * s + c$3) % m) / m;
-}
-
-function array$1(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
-
-function shuffle(array, random) {
-  let m = array.length,
-      t,
-      i;
-
-  while (m) {
-    i = random() * m-- | 0;
-    t = array[m];
-    array[m] = array[i];
-    array[i] = t;
-  }
-
-  return array;
-}
-
-function enclose(circles) {
-  return packEncloseRandom(circles, lcg$1());
-}
-
-function packEncloseRandom(circles, random) {
-  var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e;
-
-  while (i < n) {
-    p = circles[i];
-    if (e && enclosesWeak(e, p)) ++i;
-    else e = encloseBasis(B = extendBasis(B, p)), i = 0;
-  }
-
-  return e;
-}
-
-function extendBasis(B, p) {
-  var i, j;
-
-  if (enclosesWeakAll(p, B)) return [p];
-
-  // If we get here then B must have at least one element.
-  for (i = 0; i < B.length; ++i) {
-    if (enclosesNot(p, B[i])
-        && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
-      return [B[i], p];
-    }
-  }
-
-  // If we get here then B must have at least two elements.
-  for (i = 0; i < B.length - 1; ++i) {
-    for (j = i + 1; j < B.length; ++j) {
-      if (enclosesNot(encloseBasis2(B[i], B[j]), p)
-          && enclosesNot(encloseBasis2(B[i], p), B[j])
-          && enclosesNot(encloseBasis2(B[j], p), B[i])
-          && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
-        return [B[i], B[j], p];
-      }
-    }
-  }
-
-  // If we get here then something is very wrong.
-  throw new Error;
-}
-
-function enclosesNot(a, b) {
-  var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
-  return dr < 0 || dr * dr < dx * dx + dy * dy;
-}
-
-function enclosesWeak(a, b) {
-  var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function enclosesWeakAll(a, B) {
-  for (var i = 0; i < B.length; ++i) {
-    if (!enclosesWeak(a, B[i])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-function encloseBasis(B) {
-  switch (B.length) {
-    case 1: return encloseBasis1(B[0]);
-    case 2: return encloseBasis2(B[0], B[1]);
-    case 3: return encloseBasis3(B[0], B[1], B[2]);
-  }
-}
-
-function encloseBasis1(a) {
-  return {
-    x: a.x,
-    y: a.y,
-    r: a.r
-  };
-}
-
-function encloseBasis2(a, b) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
-      l = Math.sqrt(x21 * x21 + y21 * y21);
-  return {
-    x: (x1 + x2 + x21 / l * r21) / 2,
-    y: (y1 + y2 + y21 / l * r21) / 2,
-    r: (l + r1 + r2) / 2
-  };
-}
-
-function encloseBasis3(a, b, c) {
-  var x1 = a.x, y1 = a.y, r1 = a.r,
-      x2 = b.x, y2 = b.y, r2 = b.r,
-      x3 = c.x, y3 = c.y, r3 = c.r,
-      a2 = x1 - x2,
-      a3 = x1 - x3,
-      b2 = y1 - y2,
-      b3 = y1 - y3,
-      c2 = r2 - r1,
-      c3 = r3 - r1,
-      d1 = x1 * x1 + y1 * y1 - r1 * r1,
-      d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
-      d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
-      ab = a3 * b2 - a2 * b3,
-      xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
-      xb = (b3 * c2 - b2 * c3) / ab,
-      ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
-      yb = (a2 * c3 - a3 * c2) / ab,
-      A = xb * xb + yb * yb - 1,
-      B = 2 * (r1 + xa * xb + ya * yb),
-      C = xa * xa + ya * ya - r1 * r1,
-      r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
-  return {
-    x: x1 + xa + xb * r,
-    y: y1 + ya + yb * r,
-    r: r
-  };
-}
-
-function place(b, a, c) {
-  var dx = b.x - a.x, x, a2,
-      dy = b.y - a.y, y, b2,
-      d2 = dx * dx + dy * dy;
-  if (d2) {
-    a2 = a.r + c.r, a2 *= a2;
-    b2 = b.r + c.r, b2 *= b2;
-    if (a2 > b2) {
-      x = (d2 + b2 - a2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
-      c.x = b.x - x * dx - y * dy;
-      c.y = b.y - x * dy + y * dx;
-    } else {
-      x = (d2 + a2 - b2) / (2 * d2);
-      y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
-      c.x = a.x + x * dx - y * dy;
-      c.y = a.y + x * dy + y * dx;
-    }
-  } else {
-    c.x = a.x + c.r;
-    c.y = a.y;
-  }
-}
-
-function intersects(a, b) {
-  var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
-  return dr > 0 && dr * dr > dx * dx + dy * dy;
-}
-
-function score(node) {
-  var a = node._,
-      b = node.next._,
-      ab = a.r + b.r,
-      dx = (a.x * b.r + b.x * a.r) / ab,
-      dy = (a.y * b.r + b.y * a.r) / ab;
-  return dx * dx + dy * dy;
-}
-
-function Node(circle) {
-  this._ = circle;
-  this.next = null;
-  this.previous = null;
-}
-
-function packSiblingsRandom(circles, random) {
-  if (!(n = (circles = array$1(circles)).length)) return 0;
-
-  var a, b, c, n, aa, ca, i, j, k, sj, sk;
-
-  // Place the first circle.
-  a = circles[0], a.x = 0, a.y = 0;
-  if (!(n > 1)) return a.r;
-
-  // Place the second circle.
-  b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
-  if (!(n > 2)) return a.r + b.r;
-
-  // Place the third circle.
-  place(b, a, c = circles[2]);
-
-  // Initialize the front-chain using the first three circles a, b and c.
-  a = new Node(a), b = new Node(b), c = new Node(c);
-  a.next = c.previous = b;
-  b.next = a.previous = c;
-  c.next = b.previous = a;
-
-  // Attempt to place each remaining circle…
-  pack: for (i = 3; i < n; ++i) {
-    place(a._, b._, c = circles[i]), c = new Node(c);
-
-    // Find the closest intersecting circle on the front-chain, if any.
-    // “Closeness” is determined by linear distance along the front-chain.
-    // “Ahead” or “behind” is likewise determined by linear distance.
-    j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
-    do {
-      if (sj <= sk) {
-        if (intersects(j._, c._)) {
-          b = j, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sj += j._.r, j = j.next;
-      } else {
-        if (intersects(k._, c._)) {
-          a = k, a.next = b, b.previous = a, --i;
-          continue pack;
-        }
-        sk += k._.r, k = k.previous;
-      }
-    } while (j !== k.next);
-
-    // Success! Insert the new circle c between a and b.
-    c.previous = a, c.next = b, a.next = b.previous = b = c;
-
-    // Compute the new closest circle pair to the centroid.
-    aa = score(a);
-    while ((c = c.next) !== b) {
-      if ((ca = score(c)) < aa) {
-        a = c, aa = ca;
-      }
-    }
-    b = a.next;
-  }
-
-  // Compute the enclosing circle of the front chain.
-  a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random);
-
-  // Translate the circles to put the enclosing circle around the origin.
-  for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
-
-  return c.r;
-}
-
-function siblings(circles) {
-  packSiblingsRandom(circles, lcg$1());
-  return circles;
-}
-
-function defaultRadius(d) {
-  return Math.sqrt(d.value);
-}
-
-function index$1() {
-  var radius = null,
-      dx = 1,
-      dy = 1,
-      padding = constantZero;
-
-  function pack(root) {
-    const random = lcg$1();
-    root.x = dx / 2, root.y = dy / 2;
-    if (radius) {
-      root.eachBefore(radiusLeaf(radius))
-          .eachAfter(packChildrenRandom(padding, 0.5, random))
-          .eachBefore(translateChild(1));
-    } else {
-      root.eachBefore(radiusLeaf(defaultRadius))
-          .eachAfter(packChildrenRandom(constantZero, 1, random))
-          .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random))
-          .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
-    }
-    return root;
-  }
-
-  pack.radius = function(x) {
-    return arguments.length ? (radius = optional(x), pack) : radius;
-  };
-
-  pack.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
-  };
-
-  pack.padding = function(x) {
-    return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding;
-  };
-
-  return pack;
-}
-
-function radiusLeaf(radius) {
-  return function(node) {
-    if (!node.children) {
-      node.r = Math.max(0, +radius(node) || 0);
-    }
-  };
-}
-
-function packChildrenRandom(padding, k, random) {
-  return function(node) {
-    if (children = node.children) {
-      var children,
-          i,
-          n = children.length,
-          r = padding(node) * k || 0,
-          e;
-
-      if (r) for (i = 0; i < n; ++i) children[i].r += r;
-      e = packSiblingsRandom(children, random);
-      if (r) for (i = 0; i < n; ++i) children[i].r -= r;
-      node.r = e + r;
-    }
-  };
-}
-
-function translateChild(k) {
-  return function(node) {
-    var parent = node.parent;
-    node.r *= k;
-    if (parent) {
-      node.x = parent.x + k * node.x;
-      node.y = parent.y + k * node.y;
-    }
-  };
-}
-
-function roundNode(node) {
-  node.x0 = Math.round(node.x0);
-  node.y0 = Math.round(node.y0);
-  node.x1 = Math.round(node.x1);
-  node.y1 = Math.round(node.y1);
-}
-
-function treemapDice(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (x1 - x0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.y0 = y0, node.y1 = y1;
-    node.x0 = x0, node.x1 = x0 += node.value * k;
-  }
-}
-
-function partition() {
-  var dx = 1,
-      dy = 1,
-      padding = 0,
-      round = false;
-
-  function partition(root) {
-    var n = root.height + 1;
-    root.x0 =
-    root.y0 = padding;
-    root.x1 = dx;
-    root.y1 = dy / n;
-    root.eachBefore(positionNode(dy, n));
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(dy, n) {
-    return function(node) {
-      if (node.children) {
-        treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
-      }
-      var x0 = node.x0,
-          y0 = node.y0,
-          x1 = node.x1 - padding,
-          y1 = node.y1 - padding;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      node.x0 = x0;
-      node.y0 = y0;
-      node.x1 = x1;
-      node.y1 = y1;
-    };
-  }
-
-  partition.round = function(x) {
-    return arguments.length ? (round = !!x, partition) : round;
-  };
-
-  partition.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
-  };
-
-  partition.padding = function(x) {
-    return arguments.length ? (padding = +x, partition) : padding;
-  };
-
-  return partition;
-}
-
-var preroot = {depth: -1},
-    ambiguous = {},
-    imputed = {};
-
-function defaultId(d) {
-  return d.id;
-}
-
-function defaultParentId(d) {
-  return d.parentId;
-}
-
-function stratify() {
-  var id = defaultId,
-      parentId = defaultParentId,
-      path;
-
-  function stratify(data) {
-    var nodes = Array.from(data),
-        currentId = id,
-        currentParentId = parentId,
-        n,
-        d,
-        i,
-        root,
-        parent,
-        node,
-        nodeId,
-        nodeKey,
-        nodeByKey = new Map;
-
-    if (path != null) {
-      const I = nodes.map((d, i) => normalize$1(path(d, i, data)));
-      const P = I.map(parentof);
-      const S = new Set(I).add("");
-      for (const i of P) {
-        if (!S.has(i)) {
-          S.add(i);
-          I.push(i);
-          P.push(parentof(i));
-          nodes.push(imputed);
-        }
-      }
-      currentId = (_, i) => I[i];
-      currentParentId = (_, i) => P[i];
-    }
-
-    for (i = 0, n = nodes.length; i < n; ++i) {
-      d = nodes[i], node = nodes[i] = new Node$1(d);
-      if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) {
-        nodeKey = node.id = nodeId;
-        nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);
-      }
-      if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) {
-        node.parent = nodeId;
-      }
-    }
-
-    for (i = 0; i < n; ++i) {
-      node = nodes[i];
-      if (nodeId = node.parent) {
-        parent = nodeByKey.get(nodeId);
-        if (!parent) throw new Error("missing: " + nodeId);
-        if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
-        if (parent.children) parent.children.push(node);
-        else parent.children = [node];
-        node.parent = parent;
-      } else {
-        if (root) throw new Error("multiple roots");
-        root = node;
-      }
-    }
-
-    if (!root) throw new Error("no root");
-
-    // When imputing internal nodes, only introduce roots if needed.
-    // Then replace the imputed marker data with null.
-    if (path != null) {
-      while (root.data === imputed && root.children.length === 1) {
-        root = root.children[0], --n;
-      }
-      for (let i = nodes.length - 1; i >= 0; --i) {
-        node = nodes[i];
-        if (node.data !== imputed) break;
-        node.data = null;
-      }
-    }
-
-    root.parent = preroot;
-    root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);
-    root.parent = null;
-    if (n > 0) throw new Error("cycle");
-
-    return root;
-  }
-
-  stratify.id = function(x) {
-    return arguments.length ? (id = optional(x), stratify) : id;
-  };
-
-  stratify.parentId = function(x) {
-    return arguments.length ? (parentId = optional(x), stratify) : parentId;
-  };
-
-  stratify.path = function(x) {
-    return arguments.length ? (path = optional(x), stratify) : path;
-  };
-
-  return stratify;
-}
-
-// To normalize a path, we coerce to a string, strip the trailing slash if any
-// (as long as the trailing slash is not immediately preceded by another slash),
-// and add leading slash if missing.
-function normalize$1(path) {
-  path = `${path}`;
-  let i = path.length;
-  if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);
-  return path[0] === "/" ? path : `/${path}`;
-}
-
-// Walk backwards to find the first slash that is not the leading slash, e.g.:
-// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased
-// because the id of the root must be a truthy value.)
-function parentof(path) {
-  let i = path.length;
-  if (i < 2) return "";
-  while (--i > 1) if (slash(path, i)) break;
-  return path.slice(0, i);
-}
-
-// Slashes can be escaped; to determine whether a slash is a path delimiter, we
-// count the number of preceding backslashes escaping the forward slash: an odd
-// number indicates an escaped forward slash.
-function slash(path, i) {
-  if (path[i] === "/") {
-    let k = 0;
-    while (i > 0 && path[--i] === "\\") ++k;
-    if ((k & 1) === 0) return true;
-  }
-  return false;
-}
-
-function defaultSeparation(a, b) {
-  return a.parent === b.parent ? 1 : 2;
-}
-
-// function radialSeparation(a, b) {
-//   return (a.parent === b.parent ? 1 : 2) / a.depth;
-// }
-
-// This function is used to traverse the left contour of a subtree (or
-// subforest). It returns the successor of v on this contour. This successor is
-// either given by the leftmost child of v or by the thread of v. The function
-// returns null if and only if v is on the highest level of its subtree.
-function nextLeft(v) {
-  var children = v.children;
-  return children ? children[0] : v.t;
-}
-
-// This function works analogously to nextLeft.
-function nextRight(v) {
-  var children = v.children;
-  return children ? children[children.length - 1] : v.t;
-}
-
-// Shifts the current subtree rooted at w+. This is done by increasing
-// prelim(w+) and mod(w+) by shift.
-function moveSubtree(wm, wp, shift) {
-  var change = shift / (wp.i - wm.i);
-  wp.c -= change;
-  wp.s += shift;
-  wm.c += change;
-  wp.z += shift;
-  wp.m += shift;
-}
-
-// All other shifts, applied to the smaller subtrees between w- and w+, are
-// performed by this function. To prepare the shifts, we have to adjust
-// change(w+), shift(w+), and change(w-).
-function executeShifts(v) {
-  var shift = 0,
-      change = 0,
-      children = v.children,
-      i = children.length,
-      w;
-  while (--i >= 0) {
-    w = children[i];
-    w.z += shift;
-    w.m += shift;
-    shift += w.s + (change += w.c);
-  }
-}
-
-// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
-// returns the specified (default) ancestor.
-function nextAncestor(vim, v, ancestor) {
-  return vim.a.parent === v.parent ? vim.a : ancestor;
-}
-
-function TreeNode(node, i) {
-  this._ = node;
-  this.parent = null;
-  this.children = null;
-  this.A = null; // default ancestor
-  this.a = this; // ancestor
-  this.z = 0; // prelim
-  this.m = 0; // mod
-  this.c = 0; // change
-  this.s = 0; // shift
-  this.t = null; // thread
-  this.i = i; // number
-}
-
-TreeNode.prototype = Object.create(Node$1.prototype);
-
-function treeRoot(root) {
-  var tree = new TreeNode(root, 0),
-      node,
-      nodes = [tree],
-      child,
-      children,
-      i,
-      n;
-
-  while (node = nodes.pop()) {
-    if (children = node._.children) {
-      node.children = new Array(n = children.length);
-      for (i = n - 1; i >= 0; --i) {
-        nodes.push(child = node.children[i] = new TreeNode(children[i], i));
-        child.parent = node;
-      }
-    }
-  }
-
-  (tree.parent = new TreeNode(null, 0)).children = [tree];
-  return tree;
-}
-
-// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
-function tree() {
-  var separation = defaultSeparation,
-      dx = 1,
-      dy = 1,
-      nodeSize = null;
-
-  function tree(root) {
-    var t = treeRoot(root);
-
-    // Compute the layout using Buchheim et al.’s algorithm.
-    t.eachAfter(firstWalk), t.parent.m = -t.z;
-    t.eachBefore(secondWalk);
-
-    // If a fixed node size is specified, scale x and y.
-    if (nodeSize) root.eachBefore(sizeNode);
-
-    // If a fixed tree size is specified, scale x and y based on the extent.
-    // Compute the left-most, right-most, and depth-most nodes for extents.
-    else {
-      var left = root,
-          right = root,
-          bottom = root;
-      root.eachBefore(function(node) {
-        if (node.x < left.x) left = node;
-        if (node.x > right.x) right = node;
-        if (node.depth > bottom.depth) bottom = node;
-      });
-      var s = left === right ? 1 : separation(left, right) / 2,
-          tx = s - left.x,
-          kx = dx / (right.x + s + tx),
-          ky = dy / (bottom.depth || 1);
-      root.eachBefore(function(node) {
-        node.x = (node.x + tx) * kx;
-        node.y = node.depth * ky;
-      });
-    }
-
-    return root;
-  }
-
-  // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
-  // applied recursively to the children of v, as well as the function
-  // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
-  // node v is placed to the midpoint of its outermost children.
-  function firstWalk(v) {
-    var children = v.children,
-        siblings = v.parent.children,
-        w = v.i ? siblings[v.i - 1] : null;
-    if (children) {
-      executeShifts(v);
-      var midpoint = (children[0].z + children[children.length - 1].z) / 2;
-      if (w) {
-        v.z = w.z + separation(v._, w._);
-        v.m = v.z - midpoint;
-      } else {
-        v.z = midpoint;
-      }
-    } else if (w) {
-      v.z = w.z + separation(v._, w._);
-    }
-    v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
-  }
-
-  // Computes all real x-coordinates by summing up the modifiers recursively.
-  function secondWalk(v) {
-    v._.x = v.z + v.parent.m;
-    v.m += v.parent.m;
-  }
-
-  // The core of the algorithm. Here, a new subtree is combined with the
-  // previous subtrees. Threads are used to traverse the inside and outside
-  // contours of the left and right subtree up to the highest common level. The
-  // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
-  // superscript o means outside and i means inside, the subscript - means left
-  // subtree and + means right subtree. For summing up the modifiers along the
-  // contour, we use respective variables si+, si-, so-, and so+. Whenever two
-  // nodes of the inside contours conflict, we compute the left one of the
-  // greatest uncommon ancestors using the function ANCESTOR and call MOVE
-  // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
-  // Finally, we add a new thread (if necessary).
-  function apportion(v, w, ancestor) {
-    if (w) {
-      var vip = v,
-          vop = v,
-          vim = w,
-          vom = vip.parent.children[0],
-          sip = vip.m,
-          sop = vop.m,
-          sim = vim.m,
-          som = vom.m,
-          shift;
-      while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
-        vom = nextLeft(vom);
-        vop = nextRight(vop);
-        vop.a = v;
-        shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
-        if (shift > 0) {
-          moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
-          sip += shift;
-          sop += shift;
-        }
-        sim += vim.m;
-        sip += vip.m;
-        som += vom.m;
-        sop += vop.m;
-      }
-      if (vim && !nextRight(vop)) {
-        vop.t = vim;
-        vop.m += sim - sop;
-      }
-      if (vip && !nextLeft(vom)) {
-        vom.t = vip;
-        vom.m += sip - som;
-        ancestor = v;
-      }
-    }
-    return ancestor;
-  }
-
-  function sizeNode(node) {
-    node.x *= dx;
-    node.y = node.depth * dy;
-  }
-
-  tree.separation = function(x) {
-    return arguments.length ? (separation = x, tree) : separation;
-  };
-
-  tree.size = function(x) {
-    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
-  };
-
-  tree.nodeSize = function(x) {
-    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
-  };
-
-  return tree;
-}
-
-function treemapSlice(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      node,
-      i = -1,
-      n = nodes.length,
-      k = parent.value && (y1 - y0) / parent.value;
-
-  while (++i < n) {
-    node = nodes[i], node.x0 = x0, node.x1 = x1;
-    node.y0 = y0, node.y1 = y0 += node.value * k;
-  }
-}
-
-var phi = (1 + Math.sqrt(5)) / 2;
-
-function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
-  var rows = [],
-      nodes = parent.children,
-      row,
-      nodeValue,
-      i0 = 0,
-      i1 = 0,
-      n = nodes.length,
-      dx, dy,
-      value = parent.value,
-      sumValue,
-      minValue,
-      maxValue,
-      newRatio,
-      minRatio,
-      alpha,
-      beta;
-
-  while (i0 < n) {
-    dx = x1 - x0, dy = y1 - y0;
-
-    // Find the next non-empty node.
-    do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
-    minValue = maxValue = sumValue;
-    alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
-    beta = sumValue * sumValue * alpha;
-    minRatio = Math.max(maxValue / beta, beta / minValue);
-
-    // Keep adding nodes while the aspect ratio maintains or improves.
-    for (; i1 < n; ++i1) {
-      sumValue += nodeValue = nodes[i1].value;
-      if (nodeValue < minValue) minValue = nodeValue;
-      if (nodeValue > maxValue) maxValue = nodeValue;
-      beta = sumValue * sumValue * alpha;
-      newRatio = Math.max(maxValue / beta, beta / minValue);
-      if (newRatio > minRatio) { sumValue -= nodeValue; break; }
-      minRatio = newRatio;
-    }
-
-    // Position and record the row orientation.
-    rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
-    if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
-    else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
-    value -= sumValue, i0 = i1;
-  }
-
-  return rows;
-}
-
-var squarify = (function custom(ratio) {
-
-  function squarify(parent, x0, y0, x1, y1) {
-    squarifyRatio(ratio, parent, x0, y0, x1, y1);
-  }
-
-  squarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return squarify;
-})(phi);
-
-function index() {
-  var tile = squarify,
-      round = false,
-      dx = 1,
-      dy = 1,
-      paddingStack = [0],
-      paddingInner = constantZero,
-      paddingTop = constantZero,
-      paddingRight = constantZero,
-      paddingBottom = constantZero,
-      paddingLeft = constantZero;
-
-  function treemap(root) {
-    root.x0 =
-    root.y0 = 0;
-    root.x1 = dx;
-    root.y1 = dy;
-    root.eachBefore(positionNode);
-    paddingStack = [0];
-    if (round) root.eachBefore(roundNode);
-    return root;
-  }
-
-  function positionNode(node) {
-    var p = paddingStack[node.depth],
-        x0 = node.x0 + p,
-        y0 = node.y0 + p,
-        x1 = node.x1 - p,
-        y1 = node.y1 - p;
-    if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-    if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-    node.x0 = x0;
-    node.y0 = y0;
-    node.x1 = x1;
-    node.y1 = y1;
-    if (node.children) {
-      p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
-      x0 += paddingLeft(node) - p;
-      y0 += paddingTop(node) - p;
-      x1 -= paddingRight(node) - p;
-      y1 -= paddingBottom(node) - p;
-      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
-      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
-      tile(node, x0, y0, x1, y1);
-    }
-  }
-
-  treemap.round = function(x) {
-    return arguments.length ? (round = !!x, treemap) : round;
-  };
-
-  treemap.size = function(x) {
-    return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
-  };
-
-  treemap.tile = function(x) {
-    return arguments.length ? (tile = required(x), treemap) : tile;
-  };
-
-  treemap.padding = function(x) {
-    return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
-  };
-
-  treemap.paddingInner = function(x) {
-    return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner;
-  };
-
-  treemap.paddingOuter = function(x) {
-    return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
-  };
-
-  treemap.paddingTop = function(x) {
-    return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop;
-  };
-
-  treemap.paddingRight = function(x) {
-    return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight;
-  };
-
-  treemap.paddingBottom = function(x) {
-    return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom;
-  };
-
-  treemap.paddingLeft = function(x) {
-    return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft;
-  };
-
-  return treemap;
-}
-
-function binary(parent, x0, y0, x1, y1) {
-  var nodes = parent.children,
-      i, n = nodes.length,
-      sum, sums = new Array(n + 1);
-
-  for (sums[0] = sum = i = 0; i < n; ++i) {
-    sums[i + 1] = sum += nodes[i].value;
-  }
-
-  partition(0, n, parent.value, x0, y0, x1, y1);
-
-  function partition(i, j, value, x0, y0, x1, y1) {
-    if (i >= j - 1) {
-      var node = nodes[i];
-      node.x0 = x0, node.y0 = y0;
-      node.x1 = x1, node.y1 = y1;
-      return;
-    }
-
-    var valueOffset = sums[i],
-        valueTarget = (value / 2) + valueOffset,
-        k = i + 1,
-        hi = j - 1;
-
-    while (k < hi) {
-      var mid = k + hi >>> 1;
-      if (sums[mid] < valueTarget) k = mid + 1;
-      else hi = mid;
-    }
-
-    if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
-
-    var valueLeft = sums[k] - valueOffset,
-        valueRight = value - valueLeft;
-
-    if ((x1 - x0) > (y1 - y0)) {
-      var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;
-      partition(i, k, valueLeft, x0, y0, xk, y1);
-      partition(k, j, valueRight, xk, y0, x1, y1);
-    } else {
-      var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;
-      partition(i, k, valueLeft, x0, y0, x1, yk);
-      partition(k, j, valueRight, x0, yk, x1, y1);
-    }
-  }
-}
-
-function sliceDice(parent, x0, y0, x1, y1) {
-  (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);
-}
-
-var resquarify = (function custom(ratio) {
-
-  function resquarify(parent, x0, y0, x1, y1) {
-    if ((rows = parent._squarify) && (rows.ratio === ratio)) {
-      var rows,
-          row,
-          nodes,
-          i,
-          j = -1,
-          n,
-          m = rows.length,
-          value = parent.value;
-
-      while (++j < m) {
-        row = rows[j], nodes = row.children;
-        for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
-        if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);
-        else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);
-        value -= row.value;
-      }
-    } else {
-      parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);
-      rows.ratio = ratio;
-    }
-  }
-
-  resquarify.ratio = function(x) {
-    return custom((x = +x) > 1 ? x : 1);
-  };
-
-  return resquarify;
-})(phi);
-
-function area$1(polygon) {
-  var i = -1,
-      n = polygon.length,
-      a,
-      b = polygon[n - 1],
-      area = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    area += a[1] * b[0] - a[0] * b[1];
-  }
-
-  return area / 2;
-}
-
-function centroid(polygon) {
-  var i = -1,
-      n = polygon.length,
-      x = 0,
-      y = 0,
-      a,
-      b = polygon[n - 1],
-      c,
-      k = 0;
-
-  while (++i < n) {
-    a = b;
-    b = polygon[i];
-    k += c = a[0] * b[1] - b[0] * a[1];
-    x += (a[0] + b[0]) * c;
-    y += (a[1] + b[1]) * c;
-  }
-
-  return k *= 3, [x / k, y / k];
-}
-
-// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
-// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
-// right, +y is up). Returns a positive value if ABC is counter-clockwise,
-// negative if clockwise, and zero if the points are collinear.
-function cross$1(a, b, c) {
-  return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
-}
-
-function lexicographicOrder(a, b) {
-  return a[0] - b[0] || a[1] - b[1];
-}
-
-// Computes the upper convex hull per the monotone chain algorithm.
-// Assumes points.length >= 3, is sorted by x, unique in y.
-// Returns an array of indices into points in left-to-right order.
-function computeUpperHullIndexes(points) {
-  const n = points.length,
-      indexes = [0, 1];
-  let size = 2, i;
-
-  for (i = 2; i < n; ++i) {
-    while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
-    indexes[size++] = i;
-  }
-
-  return indexes.slice(0, size); // remove popped points
-}
-
-function hull(points) {
-  if ((n = points.length) < 3) return null;
-
-  var i,
-      n,
-      sortedPoints = new Array(n),
-      flippedPoints = new Array(n);
-
-  for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
-  sortedPoints.sort(lexicographicOrder);
-  for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
-
-  var upperIndexes = computeUpperHullIndexes(sortedPoints),
-      lowerIndexes = computeUpperHullIndexes(flippedPoints);
-
-  // Construct the hull polygon, removing possible duplicate endpoints.
-  var skipLeft = lowerIndexes[0] === upperIndexes[0],
-      skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
-      hull = [];
-
-  // Add upper hull in right-to-l order.
-  // Then add lower hull in left-to-right order.
-  for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
-  for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
-
-  return hull;
-}
-
-function contains(polygon, point) {
-  var n = polygon.length,
-      p = polygon[n - 1],
-      x = point[0], y = point[1],
-      x0 = p[0], y0 = p[1],
-      x1, y1,
-      inside = false;
-
-  for (var i = 0; i < n; ++i) {
-    p = polygon[i], x1 = p[0], y1 = p[1];
-    if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
-    x0 = x1, y0 = y1;
-  }
-
-  return inside;
-}
-
-function length(polygon) {
-  var i = -1,
-      n = polygon.length,
-      b = polygon[n - 1],
-      xa,
-      ya,
-      xb = b[0],
-      yb = b[1],
-      perimeter = 0;
-
-  while (++i < n) {
-    xa = xb;
-    ya = yb;
-    b = polygon[i];
-    xb = b[0];
-    yb = b[1];
-    xa -= xb;
-    ya -= yb;
-    perimeter += Math.hypot(xa, ya);
-  }
-
-  return perimeter;
-}
-
-var defaultSource = Math.random;
-
-var uniform = (function sourceRandomUniform(source) {
-  function randomUniform(min, max) {
-    min = min == null ? 0 : +min;
-    max = max == null ? 1 : +max;
-    if (arguments.length === 1) max = min, min = 0;
-    else max -= min;
-    return function() {
-      return source() * max + min;
-    };
-  }
-
-  randomUniform.source = sourceRandomUniform;
-
-  return randomUniform;
-})(defaultSource);
-
-var int = (function sourceRandomInt(source) {
-  function randomInt(min, max) {
-    if (arguments.length < 2) max = min, min = 0;
-    min = Math.floor(min);
-    max = Math.floor(max) - min;
-    return function() {
-      return Math.floor(source() * max + min);
-    };
-  }
-
-  randomInt.source = sourceRandomInt;
-
-  return randomInt;
-})(defaultSource);
-
-var normal = (function sourceRandomNormal(source) {
-  function randomNormal(mu, sigma) {
-    var x, r;
-    mu = mu == null ? 0 : +mu;
-    sigma = sigma == null ? 1 : +sigma;
-    return function() {
-      var y;
-
-      // If available, use the second previously-generated uniform random.
-      if (x != null) y = x, x = null;
-
-      // Otherwise, generate a new x and y.
-      else do {
-        x = source() * 2 - 1;
-        y = source() * 2 - 1;
-        r = x * x + y * y;
-      } while (!r || r > 1);
-
-      return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
-    };
-  }
-
-  randomNormal.source = sourceRandomNormal;
-
-  return randomNormal;
-})(defaultSource);
-
-var logNormal = (function sourceRandomLogNormal(source) {
-  var N = normal.source(source);
-
-  function randomLogNormal() {
-    var randomNormal = N.apply(this, arguments);
-    return function() {
-      return Math.exp(randomNormal());
-    };
-  }
-
-  randomLogNormal.source = sourceRandomLogNormal;
-
-  return randomLogNormal;
-})(defaultSource);
-
-var irwinHall = (function sourceRandomIrwinHall(source) {
-  function randomIrwinHall(n) {
-    if ((n = +n) <= 0) return () => 0;
-    return function() {
-      for (var sum = 0, i = n; i > 1; --i) sum += source();
-      return sum + i * source();
-    };
-  }
-
-  randomIrwinHall.source = sourceRandomIrwinHall;
-
-  return randomIrwinHall;
-})(defaultSource);
-
-var bates = (function sourceRandomBates(source) {
-  var I = irwinHall.source(source);
-
-  function randomBates(n) {
-    // use limiting distribution at n === 0
-    if ((n = +n) === 0) return source;
-    var randomIrwinHall = I(n);
-    return function() {
-      return randomIrwinHall() / n;
-    };
-  }
-
-  randomBates.source = sourceRandomBates;
-
-  return randomBates;
-})(defaultSource);
-
-var exponential = (function sourceRandomExponential(source) {
-  function randomExponential(lambda) {
-    return function() {
-      return -Math.log1p(-source()) / lambda;
-    };
-  }
-
-  randomExponential.source = sourceRandomExponential;
-
-  return randomExponential;
-})(defaultSource);
-
-var pareto = (function sourceRandomPareto(source) {
-  function randomPareto(alpha) {
-    if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha");
-    alpha = 1 / -alpha;
-    return function() {
-      return Math.pow(1 - source(), alpha);
-    };
-  }
-
-  randomPareto.source = sourceRandomPareto;
-
-  return randomPareto;
-})(defaultSource);
-
-var bernoulli = (function sourceRandomBernoulli(source) {
-  function randomBernoulli(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    return function() {
-      return Math.floor(source() + p);
-    };
-  }
-
-  randomBernoulli.source = sourceRandomBernoulli;
-
-  return randomBernoulli;
-})(defaultSource);
-
-var geometric = (function sourceRandomGeometric(source) {
-  function randomGeometric(p) {
-    if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
-    if (p === 0) return () => Infinity;
-    if (p === 1) return () => 1;
-    p = Math.log1p(-p);
-    return function() {
-      return 1 + Math.floor(Math.log1p(-source()) / p);
-    };
-  }
-
-  randomGeometric.source = sourceRandomGeometric;
-
-  return randomGeometric;
-})(defaultSource);
-
-var gamma = (function sourceRandomGamma(source) {
-  var randomNormal = normal.source(source)();
-
-  function randomGamma(k, theta) {
-    if ((k = +k) < 0) throw new RangeError("invalid k");
-    // degenerate distribution if k === 0
-    if (k === 0) return () => 0;
-    theta = theta == null ? 1 : +theta;
-    // exponential distribution if k === 1
-    if (k === 1) return () => -Math.log1p(-source()) * theta;
-
-    var d = (k < 1 ? k + 1 : k) - 1 / 3,
-        c = 1 / (3 * Math.sqrt(d)),
-        multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;
-    return function() {
-      do {
-        do {
-          var x = randomNormal(),
-              v = 1 + c * x;
-        } while (v <= 0);
-        v *= v * v;
-        var u = 1 - source();
-      } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));
-      return d * v * multiplier() * theta;
-    };
-  }
-
-  randomGamma.source = sourceRandomGamma;
-
-  return randomGamma;
-})(defaultSource);
-
-var beta = (function sourceRandomBeta(source) {
-  var G = gamma.source(source);
-
-  function randomBeta(alpha, beta) {
-    var X = G(alpha),
-        Y = G(beta);
-    return function() {
-      var x = X();
-      return x === 0 ? 0 : x / (x + Y());
-    };
-  }
-
-  randomBeta.source = sourceRandomBeta;
-
-  return randomBeta;
-})(defaultSource);
-
-var binomial = (function sourceRandomBinomial(source) {
-  var G = geometric.source(source),
-      B = beta.source(source);
-
-  function randomBinomial(n, p) {
-    n = +n;
-    if ((p = +p) >= 1) return () => n;
-    if (p <= 0) return () => 0;
-    return function() {
-      var acc = 0, nn = n, pp = p;
-      while (nn * pp > 16 && nn * (1 - pp) > 16) {
-        var i = Math.floor((nn + 1) * pp),
-            y = B(i, nn - i + 1)();
-        if (y <= pp) {
-          acc += i;
-          nn -= i;
-          pp = (pp - y) / (1 - y);
-        } else {
-          nn = i - 1;
-          pp /= y;
-        }
-      }
-      var sign = pp < 0.5,
-          pFinal = sign ? pp : 1 - pp,
-          g = G(pFinal);
-      for (var s = g(), k = 0; s <= nn; ++k) s += g();
-      return acc + (sign ? k : nn - k);
-    };
-  }
-
-  randomBinomial.source = sourceRandomBinomial;
-
-  return randomBinomial;
-})(defaultSource);
-
-var weibull = (function sourceRandomWeibull(source) {
-  function randomWeibull(k, a, b) {
-    var outerFunc;
-    if ((k = +k) === 0) {
-      outerFunc = x => -Math.log(x);
-    } else {
-      k = 1 / k;
-      outerFunc = x => Math.pow(x, k);
-    }
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * outerFunc(-Math.log1p(-source()));
-    };
-  }
-
-  randomWeibull.source = sourceRandomWeibull;
-
-  return randomWeibull;
-})(defaultSource);
-
-var cauchy = (function sourceRandomCauchy(source) {
-  function randomCauchy(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      return a + b * Math.tan(Math.PI * source());
-    };
-  }
-
-  randomCauchy.source = sourceRandomCauchy;
-
-  return randomCauchy;
-})(defaultSource);
-
-var logistic = (function sourceRandomLogistic(source) {
-  function randomLogistic(a, b) {
-    a = a == null ? 0 : +a;
-    b = b == null ? 1 : +b;
-    return function() {
-      var u = source();
-      return a + b * Math.log(u / (1 - u));
-    };
-  }
-
-  randomLogistic.source = sourceRandomLogistic;
-
-  return randomLogistic;
-})(defaultSource);
-
-var poisson = (function sourceRandomPoisson(source) {
-  var G = gamma.source(source),
-      B = binomial.source(source);
-
-  function randomPoisson(lambda) {
-    return function() {
-      var acc = 0, l = lambda;
-      while (l > 16) {
-        var n = Math.floor(0.875 * l),
-            t = G(n)();
-        if (t > l) return acc + B(n - 1, l / t)();
-        acc += n;
-        l -= t;
-      }
-      for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());
-      return acc + k;
-    };
-  }
-
-  randomPoisson.source = sourceRandomPoisson;
-
-  return randomPoisson;
-})(defaultSource);
-
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const mul = 0x19660D;
-const inc = 0x3C6EF35F;
-const eps = 1 / 0x100000000;
-
-function lcg(seed = Math.random()) {
-  let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;
-  return () => (state = mul * state + inc | 0, eps * (state >>> 0));
-}
-
-function initRange(domain, range) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: this.range(domain); break;
-    default: this.range(range).domain(domain); break;
-  }
-  return this;
-}
-
-function initInterpolator(domain, interpolator) {
-  switch (arguments.length) {
-    case 0: break;
-    case 1: {
-      if (typeof domain === "function") this.interpolator(domain);
-      else this.range(domain);
-      break;
-    }
-    default: {
-      this.domain(domain);
-      if (typeof interpolator === "function") this.interpolator(interpolator);
-      else this.range(interpolator);
-      break;
-    }
-  }
-  return this;
-}
-
-const implicit = Symbol("implicit");
-
-function ordinal() {
-  var index = new InternMap(),
-      domain = [],
-      range = [],
-      unknown = implicit;
-
-  function scale(d) {
-    let i = index.get(d);
-    if (i === undefined) {
-      if (unknown !== implicit) return unknown;
-      index.set(d, i = domain.push(d) - 1);
-    }
-    return range[i % range.length];
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [], index = new InternMap();
-    for (const value of _) {
-      if (index.has(value)) continue;
-      index.set(value, domain.push(value) - 1);
-    }
-    return scale;
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), scale) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return ordinal(domain, range).unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
-
-function band() {
-  var scale = ordinal().unknown(undefined),
-      domain = scale.domain,
-      ordinalRange = scale.range,
-      r0 = 0,
-      r1 = 1,
-      step,
-      bandwidth,
-      round = false,
-      paddingInner = 0,
-      paddingOuter = 0,
-      align = 0.5;
-
-  delete scale.unknown;
-
-  function rescale() {
-    var n = domain().length,
-        reverse = r1 < r0,
-        start = reverse ? r1 : r0,
-        stop = reverse ? r0 : r1;
-    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
-    if (round) step = Math.floor(step);
-    start += (stop - start - step * (n - paddingInner)) * align;
-    bandwidth = step * (1 - paddingInner);
-    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
-    var values = range$2(n).map(function(i) { return start + step * i; });
-    return ordinalRange(reverse ? values.reverse() : values);
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
-  };
-
-  scale.rangeRound = function(_) {
-    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
-  };
-
-  scale.bandwidth = function() {
-    return bandwidth;
-  };
-
-  scale.step = function() {
-    return step;
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, rescale()) : round;
-  };
-
-  scale.padding = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
-  };
-
-  scale.paddingInner = function(_) {
-    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
-  };
-
-  scale.paddingOuter = function(_) {
-    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
-  };
-
-  scale.align = function(_) {
-    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
-  };
-
-  scale.copy = function() {
-    return band(domain(), [r0, r1])
-        .round(round)
-        .paddingInner(paddingInner)
-        .paddingOuter(paddingOuter)
-        .align(align);
-  };
-
-  return initRange.apply(rescale(), arguments);
-}
-
-function pointish(scale) {
-  var copy = scale.copy;
-
-  scale.padding = scale.paddingOuter;
-  delete scale.paddingInner;
-  delete scale.paddingOuter;
-
-  scale.copy = function() {
-    return pointish(copy());
-  };
-
-  return scale;
-}
-
-function point$4() {
-  return pointish(band.apply(null, arguments).paddingInner(1));
-}
-
-function constants(x) {
-  return function() {
-    return x;
-  };
-}
-
-function number$1(x) {
-  return +x;
-}
-
-var unit = [0, 1];
-
-function identity$3(x) {
-  return x;
-}
-
-function normalize(a, b) {
-  return (b -= (a = +a))
-      ? function(x) { return (x - a) / b; }
-      : constants(isNaN(b) ? NaN : 0.5);
-}
-
-function clamper(a, b) {
-  var t;
-  if (a > b) t = a, a = b, b = t;
-  return function(x) { return Math.max(a, Math.min(b, x)); };
-}
-
-// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
-// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
-function bimap(domain, range, interpolate) {
-  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
-  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
-  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
-  return function(x) { return r0(d0(x)); };
-}
-
-function polymap(domain, range, interpolate) {
-  var j = Math.min(domain.length, range.length) - 1,
-      d = new Array(j),
-      r = new Array(j),
-      i = -1;
-
-  // Reverse descending domains.
-  if (domain[j] < domain[0]) {
-    domain = domain.slice().reverse();
-    range = range.slice().reverse();
-  }
-
-  while (++i < j) {
-    d[i] = normalize(domain[i], domain[i + 1]);
-    r[i] = interpolate(range[i], range[i + 1]);
-  }
-
-  return function(x) {
-    var i = bisect(domain, x, 1, j) - 1;
-    return r[i](d[i](x));
-  };
-}
-
-function copy$1(source, target) {
-  return target
-      .domain(source.domain())
-      .range(source.range())
-      .interpolate(source.interpolate())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-function transformer$2() {
-  var domain = unit,
-      range = unit,
-      interpolate = interpolate$2,
-      transform,
-      untransform,
-      unknown,
-      clamp = identity$3,
-      piecewise,
-      output,
-      input;
-
-  function rescale() {
-    var n = Math.min(domain.length, range.length);
-    if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]);
-    piecewise = n > 2 ? polymap : bimap;
-    output = input = null;
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
-  }
-
-  scale.invert = function(y) {
-    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return range = Array.from(_), interpolate = interpolateRound, rescale();
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3;
-  };
-
-  scale.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, rescale()) : interpolate;
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t, u) {
-    transform = t, untransform = u;
-    return rescale();
-  };
-}
-
-function continuous() {
-  return transformer$2()(identity$3, identity$3);
-}
-
-function tickFormat(start, stop, count, specifier) {
-  var step = tickStep(start, stop, count),
-      precision;
-  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
-  switch (specifier.type) {
-    case "s": {
-      var value = Math.max(Math.abs(start), Math.abs(stop));
-      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;
-      return exports.formatPrefix(specifier, value);
-    }
-    case "":
-    case "e":
-    case "g":
-    case "p":
-    case "r": {
-      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
-      break;
-    }
-    case "f":
-    case "%": {
-      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2;
-      break;
-    }
-  }
-  return exports.format(specifier);
-}
-
-function linearish(scale) {
-  var domain = scale.domain;
-
-  scale.ticks = function(count) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    var d = domain();
-    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
-  };
-
-  scale.nice = function(count) {
-    if (count == null) count = 10;
-
-    var d = domain();
-    var i0 = 0;
-    var i1 = d.length - 1;
-    var start = d[i0];
-    var stop = d[i1];
-    var prestep;
-    var step;
-    var maxIter = 10;
-
-    if (stop < start) {
-      step = start, start = stop, stop = step;
-      step = i0, i0 = i1, i1 = step;
-    }
-    
-    while (maxIter-- > 0) {
-      step = tickIncrement(start, stop, count);
-      if (step === prestep) {
-        d[i0] = start;
-        d[i1] = stop;
-        return domain(d);
-      } else if (step > 0) {
-        start = Math.floor(start / step) * step;
-        stop = Math.ceil(stop / step) * step;
-      } else if (step < 0) {
-        start = Math.ceil(start * step) / step;
-        stop = Math.floor(stop * step) / step;
-      } else {
-        break;
-      }
-      prestep = step;
-    }
-
-    return scale;
-  };
-
-  return scale;
-}
-
-function linear() {
-  var scale = continuous();
-
-  scale.copy = function() {
-    return copy$1(scale, linear());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
-
-function identity$2(domain) {
-  var unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : x;
-  }
-
-  scale.invert = scale;
-
-  scale.domain = scale.range = function(_) {
-    return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return identity$2(domain).unknown(unknown);
-  };
-
-  domain = arguments.length ? Array.from(domain, number$1) : [0, 1];
-
-  return linearish(scale);
-}
-
-function nice(domain, interval) {
-  domain = domain.slice();
-
-  var i0 = 0,
-      i1 = domain.length - 1,
-      x0 = domain[i0],
-      x1 = domain[i1],
-      t;
-
-  if (x1 < x0) {
-    t = i0, i0 = i1, i1 = t;
-    t = x0, x0 = x1, x1 = t;
-  }
-
-  domain[i0] = interval.floor(x0);
-  domain[i1] = interval.ceil(x1);
-  return domain;
-}
-
-function transformLog(x) {
-  return Math.log(x);
-}
-
-function transformExp(x) {
-  return Math.exp(x);
-}
-
-function transformLogn(x) {
-  return -Math.log(-x);
-}
-
-function transformExpn(x) {
-  return -Math.exp(-x);
-}
-
-function pow10(x) {
-  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
-}
-
-function powp(base) {
-  return base === 10 ? pow10
-      : base === Math.E ? Math.exp
-      : x => Math.pow(base, x);
-}
-
-function logp(base) {
-  return base === Math.E ? Math.log
-      : base === 10 && Math.log10
-      || base === 2 && Math.log2
-      || (base = Math.log(base), x => Math.log(x) / base);
-}
-
-function reflect(f) {
-  return (x, k) => -f(-x, k);
-}
-
-function loggish(transform) {
-  const scale = transform(transformLog, transformExp);
-  const domain = scale.domain;
-  let base = 10;
-  let logs;
-  let pows;
-
-  function rescale() {
-    logs = logp(base), pows = powp(base);
-    if (domain()[0] < 0) {
-      logs = reflect(logs), pows = reflect(pows);
-      transform(transformLogn, transformExpn);
-    } else {
-      transform(transformLog, transformExp);
-    }
-    return scale;
-  }
-
-  scale.base = function(_) {
-    return arguments.length ? (base = +_, rescale()) : base;
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-
-  scale.ticks = count => {
-    const d = domain();
-    let u = d[0];
-    let v = d[d.length - 1];
-    const r = v < u;
-
-    if (r) ([u, v] = [v, u]);
-
-    let i = logs(u);
-    let j = logs(v);
-    let k;
-    let t;
-    const n = count == null ? 10 : +count;
-    let z = [];
-
-    if (!(base % 1) && j - i < n) {
-      i = Math.floor(i), j = Math.ceil(j);
-      if (u > 0) for (; i <= j; ++i) {
-        for (k = 1; k < base; ++k) {
-          t = i < 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      } else for (; i <= j; ++i) {
-        for (k = base - 1; k >= 1; --k) {
-          t = i > 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      }
-      if (z.length * 2 < n) z = ticks(u, v, n);
-    } else {
-      z = ticks(i, j, Math.min(j - i, n)).map(pows);
-    }
-    return r ? z.reverse() : z;
-  };
-
-  scale.tickFormat = (count, specifier) => {
-    if (count == null) count = 10;
-    if (specifier == null) specifier = base === 10 ? "s" : ",";
-    if (typeof specifier !== "function") {
-      if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;
-      specifier = exports.format(specifier);
-    }
-    if (count === Infinity) return specifier;
-    const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
-    return d => {
-      let i = d / pows(Math.round(logs(d)));
-      if (i * base < base - 0.5) i *= base;
-      return i <= k ? specifier(d) : "";
-    };
-  };
-
-  scale.nice = () => {
-    return domain(nice(domain(), {
-      floor: x => pows(Math.floor(logs(x))),
-      ceil: x => pows(Math.ceil(logs(x)))
-    }));
-  };
-
-  return scale;
-}
-
-function log() {
-  const scale = loggish(transformer$2()).domain([1, 10]);
-  scale.copy = () => copy$1(scale, log()).base(scale.base());
-  initRange.apply(scale, arguments);
-  return scale;
-}
-
-function transformSymlog(c) {
-  return function(x) {
-    return Math.sign(x) * Math.log1p(Math.abs(x / c));
-  };
-}
-
-function transformSymexp(c) {
-  return function(x) {
-    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
-  };
-}
-
-function symlogish(transform) {
-  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));
-
-  scale.constant = function(_) {
-    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
-  };
-
-  return linearish(scale);
-}
-
-function symlog() {
-  var scale = symlogish(transformer$2());
-
-  scale.copy = function() {
-    return copy$1(scale, symlog()).constant(scale.constant());
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-function transformPow(exponent) {
-  return function(x) {
-    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
-  };
-}
-
-function transformSqrt(x) {
-  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
-}
-
-function transformSquare(x) {
-  return x < 0 ? -x * x : x * x;
-}
-
-function powish(transform) {
-  var scale = transform(identity$3, identity$3),
-      exponent = 1;
-
-  function rescale() {
-    return exponent === 1 ? transform(identity$3, identity$3)
-        : exponent === 0.5 ? transform(transformSqrt, transformSquare)
-        : transform(transformPow(exponent), transformPow(1 / exponent));
-  }
-
-  scale.exponent = function(_) {
-    return arguments.length ? (exponent = +_, rescale()) : exponent;
-  };
-
-  return linearish(scale);
-}
-
-function pow() {
-  var scale = powish(transformer$2());
-
-  scale.copy = function() {
-    return copy$1(scale, pow()).exponent(scale.exponent());
-  };
-
-  initRange.apply(scale, arguments);
-
-  return scale;
-}
-
-function sqrt$1() {
-  return pow.apply(null, arguments).exponent(0.5);
-}
-
-function square$1(x) {
-  return Math.sign(x) * x * x;
-}
-
-function unsquare(x) {
-  return Math.sign(x) * Math.sqrt(Math.abs(x));
-}
-
-function radial() {
-  var squared = continuous(),
-      range = [0, 1],
-      round = false,
-      unknown;
-
-  function scale(x) {
-    var y = unsquare(squared(x));
-    return isNaN(y) ? unknown : round ? Math.round(y) : y;
-  }
-
-  scale.invert = function(y) {
-    return squared.invert(square$1(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? (squared.domain(_), scale) : squared.domain();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice();
-  };
-
-  scale.rangeRound = function(_) {
-    return scale.range(_).round(true);
-  };
-
-  scale.round = function(_) {
-    return arguments.length ? (round = !!_, scale) : round;
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return radial(squared.domain(), range)
-        .round(round)
-        .clamp(squared.clamp())
-        .unknown(unknown);
-  };
-
-  initRange.apply(scale, arguments);
-
-  return linearish(scale);
-}
-
-function quantile() {
-  var domain = [],
-      range = [],
-      thresholds = [],
-      unknown;
-
-  function rescale() {
-    var i = 0, n = Math.max(1, range.length);
-    thresholds = new Array(n - 1);
-    while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n);
-    return scale;
-  }
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];
-  }
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN] : [
-      i > 0 ? thresholds[i - 1] : domain[0],
-      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
-    ];
-  };
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(ascending$3);
-    return rescale();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.quantiles = function() {
-    return thresholds.slice();
-  };
-
-  scale.copy = function() {
-    return quantile()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-function quantize() {
-  var x0 = 0,
-      x1 = 1,
-      n = 1,
-      domain = [0.5],
-      range = [0, 1],
-      unknown;
-
-  function scale(x) {
-    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;
-  }
-
-  function rescale() {
-    var i = -1;
-    domain = new Array(n);
-    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
-    return scale;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN]
-        : i < 1 ? [x0, domain[0]]
-        : i >= n ? [domain[n - 1], x1]
-        : [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : scale;
-  };
-
-  scale.thresholds = function() {
-    return domain.slice();
-  };
-
-  scale.copy = function() {
-    return quantize()
-        .domain([x0, x1])
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(linearish(scale), arguments);
-}
-
-function threshold() {
-  var domain = [0.5],
-      range = [0, 1],
-      unknown,
-      n = 1;
-
-  function scale(x) {
-    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
-  };
-
-  scale.range = function(_) {
-    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
-  };
-
-  scale.invertExtent = function(y) {
-    var i = range.indexOf(y);
-    return [domain[i - 1], domain[i]];
-  };
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  scale.copy = function() {
-    return threshold()
-        .domain(domain)
-        .range(range)
-        .unknown(unknown);
-  };
-
-  return initRange.apply(scale, arguments);
-}
-
-const t0 = new Date, t1 = new Date;
-
-function timeInterval(floori, offseti, count, field) {
-
-  function interval(date) {
-    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
-  }
-
-  interval.floor = (date) => {
-    return floori(date = new Date(+date)), date;
-  };
-
-  interval.ceil = (date) => {
-    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
-  };
-
-  interval.round = (date) => {
-    const d0 = interval(date), d1 = interval.ceil(date);
-    return date - d0 < d1 - date ? d0 : d1;
-  };
-
-  interval.offset = (date, step) => {
-    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
-  };
-
-  interval.range = (start, stop, step) => {
-    const range = [];
-    start = interval.ceil(start);
-    step = step == null ? 1 : Math.floor(step);
-    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
-    let previous;
-    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
-    while (previous < start && start < stop);
-    return range;
-  };
-
-  interval.filter = (test) => {
-    return timeInterval((date) => {
-      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
-    }, (date, step) => {
-      if (date >= date) {
-        if (step < 0) while (++step <= 0) {
-          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
-        } else while (--step >= 0) {
-          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
-        }
-      }
-    });
-  };
-
-  if (count) {
-    interval.count = (start, end) => {
-      t0.setTime(+start), t1.setTime(+end);
-      floori(t0), floori(t1);
-      return Math.floor(count(t0, t1));
-    };
-
-    interval.every = (step) => {
-      step = Math.floor(step);
-      return !isFinite(step) || !(step > 0) ? null
-          : !(step > 1) ? interval
-          : interval.filter(field
-              ? (d) => field(d) % step === 0
-              : (d) => interval.count(0, d) % step === 0);
-    };
-  }
-
-  return interval;
-}
-
-const millisecond = timeInterval(() => {
-  // noop
-}, (date, step) => {
-  date.setTime(+date + step);
-}, (start, end) => {
-  return end - start;
-});
-
-// An optimized implementation for this simple case.
-millisecond.every = (k) => {
-  k = Math.floor(k);
-  if (!isFinite(k) || !(k > 0)) return null;
-  if (!(k > 1)) return millisecond;
-  return timeInterval((date) => {
-    date.setTime(Math.floor(date / k) * k);
-  }, (date, step) => {
-    date.setTime(+date + step * k);
-  }, (start, end) => {
-    return (end - start) / k;
-  });
-};
-
-const milliseconds = millisecond.range;
-
-const durationSecond = 1000;
-const durationMinute = durationSecond * 60;
-const durationHour = durationMinute * 60;
-const durationDay = durationHour * 24;
-const durationWeek = durationDay * 7;
-const durationMonth = durationDay * 30;
-const durationYear = durationDay * 365;
-
-const second = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds());
-}, (date, step) => {
-  date.setTime(+date + step * durationSecond);
-}, (start, end) => {
-  return (end - start) / durationSecond;
-}, (date) => {
-  return date.getUTCSeconds();
-});
-
-const seconds = second.range;
-
-const timeMinute = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getMinutes();
-});
-
-const timeMinutes = timeMinute.range;
-
-const utcMinute = timeInterval((date) => {
-  date.setUTCSeconds(0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationMinute);
-}, (start, end) => {
-  return (end - start) / durationMinute;
-}, (date) => {
-  return date.getUTCMinutes();
-});
-
-const utcMinutes = utcMinute.range;
-
-const timeHour = timeInterval((date) => {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getHours();
-});
-
-const timeHours = timeHour.range;
-
-const utcHour = timeInterval((date) => {
-  date.setUTCMinutes(0, 0, 0);
-}, (date, step) => {
-  date.setTime(+date + step * durationHour);
-}, (start, end) => {
-  return (end - start) / durationHour;
-}, (date) => {
-  return date.getUTCHours();
-});
-
-const utcHours = utcHour.range;
-
-const timeDay = timeInterval(
-  date => date.setHours(0, 0, 0, 0),
-  (date, step) => date.setDate(date.getDate() + step),
-  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
-  date => date.getDate() - 1
-);
-
-const timeDays = timeDay.range;
-
-const utcDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return date.getUTCDate() - 1;
-});
-
-const utcDays = utcDay.range;
-
-const unixDay = timeInterval((date) => {
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCDate(date.getUTCDate() + step);
-}, (start, end) => {
-  return (end - start) / durationDay;
-}, (date) => {
-  return Math.floor(date / durationDay);
-});
-
-const unixDays = unixDay.range;
-
-function timeWeekday(i) {
-  return timeInterval((date) => {
-    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setDate(date.getDate() + step * 7);
-  }, (start, end) => {
-    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
-  });
-}
-
-const timeSunday = timeWeekday(0);
-const timeMonday = timeWeekday(1);
-const timeTuesday = timeWeekday(2);
-const timeWednesday = timeWeekday(3);
-const timeThursday = timeWeekday(4);
-const timeFriday = timeWeekday(5);
-const timeSaturday = timeWeekday(6);
-
-const timeSundays = timeSunday.range;
-const timeMondays = timeMonday.range;
-const timeTuesdays = timeTuesday.range;
-const timeWednesdays = timeWednesday.range;
-const timeThursdays = timeThursday.range;
-const timeFridays = timeFriday.range;
-const timeSaturdays = timeSaturday.range;
-
-function utcWeekday(i) {
-  return timeInterval((date) => {
-    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCDate(date.getUTCDate() + step * 7);
-  }, (start, end) => {
-    return (end - start) / durationWeek;
-  });
-}
-
-const utcSunday = utcWeekday(0);
-const utcMonday = utcWeekday(1);
-const utcTuesday = utcWeekday(2);
-const utcWednesday = utcWeekday(3);
-const utcThursday = utcWeekday(4);
-const utcFriday = utcWeekday(5);
-const utcSaturday = utcWeekday(6);
-
-const utcSundays = utcSunday.range;
-const utcMondays = utcMonday.range;
-const utcTuesdays = utcTuesday.range;
-const utcWednesdays = utcWednesday.range;
-const utcThursdays = utcThursday.range;
-const utcFridays = utcFriday.range;
-const utcSaturdays = utcSaturday.range;
-
-const timeMonth = timeInterval((date) => {
-  date.setDate(1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setMonth(date.getMonth() + step);
-}, (start, end) => {
-  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
-}, (date) => {
-  return date.getMonth();
-});
-
-const timeMonths = timeMonth.range;
-
-const utcMonth = timeInterval((date) => {
-  date.setUTCDate(1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCMonth(date.getUTCMonth() + step);
-}, (start, end) => {
-  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
-}, (date) => {
-  return date.getUTCMonth();
-});
-
-const utcMonths = utcMonth.range;
-
-const timeYear = timeInterval((date) => {
-  date.setMonth(0, 1);
-  date.setHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setFullYear(date.getFullYear() + step);
-}, (start, end) => {
-  return end.getFullYear() - start.getFullYear();
-}, (date) => {
-  return date.getFullYear();
-});
-
-// An optimized implementation for this simple case.
-timeYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
-    date.setMonth(0, 1);
-    date.setHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setFullYear(date.getFullYear() + step * k);
-  });
-};
-
-const timeYears = timeYear.range;
-
-const utcYear = timeInterval((date) => {
-  date.setUTCMonth(0, 1);
-  date.setUTCHours(0, 0, 0, 0);
-}, (date, step) => {
-  date.setUTCFullYear(date.getUTCFullYear() + step);
-}, (start, end) => {
-  return end.getUTCFullYear() - start.getUTCFullYear();
-}, (date) => {
-  return date.getUTCFullYear();
-});
-
-// An optimized implementation for this simple case.
-utcYear.every = (k) => {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
-    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
-    date.setUTCMonth(0, 1);
-    date.setUTCHours(0, 0, 0, 0);
-  }, (date, step) => {
-    date.setUTCFullYear(date.getUTCFullYear() + step * k);
-  });
-};
-
-const utcYears = utcYear.range;
-
-function ticker(year, month, week, day, hour, minute) {
-
-  const tickIntervals = [
-    [second,  1,      durationSecond],
-    [second,  5,  5 * durationSecond],
-    [second, 15, 15 * durationSecond],
-    [second, 30, 30 * durationSecond],
-    [minute,  1,      durationMinute],
-    [minute,  5,  5 * durationMinute],
-    [minute, 15, 15 * durationMinute],
-    [minute, 30, 30 * durationMinute],
-    [  hour,  1,      durationHour  ],
-    [  hour,  3,  3 * durationHour  ],
-    [  hour,  6,  6 * durationHour  ],
-    [  hour, 12, 12 * durationHour  ],
-    [   day,  1,      durationDay   ],
-    [   day,  2,  2 * durationDay   ],
-    [  week,  1,      durationWeek  ],
-    [ month,  1,      durationMonth ],
-    [ month,  3,  3 * durationMonth ],
-    [  year,  1,      durationYear  ]
-  ];
-
-  function ticks(start, stop, count) {
-    const reverse = stop < start;
-    if (reverse) [start, stop] = [stop, start];
-    const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
-    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
-    return reverse ? ticks.reverse() : ticks;
-  }
-
-  function tickInterval(start, stop, count) {
-    const target = Math.abs(stop - start) / count;
-    const i = bisector(([,, step]) => step).right(tickIntervals, target);
-    if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));
-    if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));
-    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
-    return t.every(step);
-  }
-
-  return [ticks, tickInterval];
-}
-
-const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
-const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
-
-function localDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
-    date.setFullYear(d.y);
-    return date;
-  }
-  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
-}
-
-function utcDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
-    date.setUTCFullYear(d.y);
-    return date;
-  }
-  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
-}
-
-function newDate(y, m, d) {
-  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
-}
-
-function formatLocale(locale) {
-  var locale_dateTime = locale.dateTime,
-      locale_date = locale.date,
-      locale_time = locale.time,
-      locale_periods = locale.periods,
-      locale_weekdays = locale.days,
-      locale_shortWeekdays = locale.shortDays,
-      locale_months = locale.months,
-      locale_shortMonths = locale.shortMonths;
-
-  var periodRe = formatRe(locale_periods),
-      periodLookup = formatLookup(locale_periods),
-      weekdayRe = formatRe(locale_weekdays),
-      weekdayLookup = formatLookup(locale_weekdays),
-      shortWeekdayRe = formatRe(locale_shortWeekdays),
-      shortWeekdayLookup = formatLookup(locale_shortWeekdays),
-      monthRe = formatRe(locale_months),
-      monthLookup = formatLookup(locale_months),
-      shortMonthRe = formatRe(locale_shortMonths),
-      shortMonthLookup = formatLookup(locale_shortMonths);
-
-  var formats = {
-    "a": formatShortWeekday,
-    "A": formatWeekday,
-    "b": formatShortMonth,
-    "B": formatMonth,
-    "c": null,
-    "d": formatDayOfMonth,
-    "e": formatDayOfMonth,
-    "f": formatMicroseconds,
-    "g": formatYearISO,
-    "G": formatFullYearISO,
-    "H": formatHour24,
-    "I": formatHour12,
-    "j": formatDayOfYear,
-    "L": formatMilliseconds,
-    "m": formatMonthNumber,
-    "M": formatMinutes,
-    "p": formatPeriod,
-    "q": formatQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatSeconds,
-    "u": formatWeekdayNumberMonday,
-    "U": formatWeekNumberSunday,
-    "V": formatWeekNumberISO,
-    "w": formatWeekdayNumberSunday,
-    "W": formatWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatYear,
-    "Y": formatFullYear,
-    "Z": formatZone,
-    "%": formatLiteralPercent
-  };
-
-  var utcFormats = {
-    "a": formatUTCShortWeekday,
-    "A": formatUTCWeekday,
-    "b": formatUTCShortMonth,
-    "B": formatUTCMonth,
-    "c": null,
-    "d": formatUTCDayOfMonth,
-    "e": formatUTCDayOfMonth,
-    "f": formatUTCMicroseconds,
-    "g": formatUTCYearISO,
-    "G": formatUTCFullYearISO,
-    "H": formatUTCHour24,
-    "I": formatUTCHour12,
-    "j": formatUTCDayOfYear,
-    "L": formatUTCMilliseconds,
-    "m": formatUTCMonthNumber,
-    "M": formatUTCMinutes,
-    "p": formatUTCPeriod,
-    "q": formatUTCQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatUTCSeconds,
-    "u": formatUTCWeekdayNumberMonday,
-    "U": formatUTCWeekNumberSunday,
-    "V": formatUTCWeekNumberISO,
-    "w": formatUTCWeekdayNumberSunday,
-    "W": formatUTCWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatUTCYear,
-    "Y": formatUTCFullYear,
-    "Z": formatUTCZone,
-    "%": formatLiteralPercent
-  };
-
-  var parses = {
-    "a": parseShortWeekday,
-    "A": parseWeekday,
-    "b": parseShortMonth,
-    "B": parseMonth,
-    "c": parseLocaleDateTime,
-    "d": parseDayOfMonth,
-    "e": parseDayOfMonth,
-    "f": parseMicroseconds,
-    "g": parseYear,
-    "G": parseFullYear,
-    "H": parseHour24,
-    "I": parseHour24,
-    "j": parseDayOfYear,
-    "L": parseMilliseconds,
-    "m": parseMonthNumber,
-    "M": parseMinutes,
-    "p": parsePeriod,
-    "q": parseQuarter,
-    "Q": parseUnixTimestamp,
-    "s": parseUnixTimestampSeconds,
-    "S": parseSeconds,
-    "u": parseWeekdayNumberMonday,
-    "U": parseWeekNumberSunday,
-    "V": parseWeekNumberISO,
-    "w": parseWeekdayNumberSunday,
-    "W": parseWeekNumberMonday,
-    "x": parseLocaleDate,
-    "X": parseLocaleTime,
-    "y": parseYear,
-    "Y": parseFullYear,
-    "Z": parseZone,
-    "%": parseLiteralPercent
-  };
-
-  // These recursive directive definitions must be deferred.
-  formats.x = newFormat(locale_date, formats);
-  formats.X = newFormat(locale_time, formats);
-  formats.c = newFormat(locale_dateTime, formats);
-  utcFormats.x = newFormat(locale_date, utcFormats);
-  utcFormats.X = newFormat(locale_time, utcFormats);
-  utcFormats.c = newFormat(locale_dateTime, utcFormats);
-
-  function newFormat(specifier, formats) {
-    return function(date) {
-      var string = [],
-          i = -1,
-          j = 0,
-          n = specifier.length,
-          c,
-          pad,
-          format;
-
-      if (!(date instanceof Date)) date = new Date(+date);
-
-      while (++i < n) {
-        if (specifier.charCodeAt(i) === 37) {
-          string.push(specifier.slice(j, i));
-          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
-          else pad = c === "e" ? " " : "0";
-          if (format = formats[c]) c = format(date, pad);
-          string.push(c);
-          j = i + 1;
-        }
-      }
-
-      string.push(specifier.slice(j, i));
-      return string.join("");
-    };
-  }
-
-  function newParse(specifier, Z) {
-    return function(string) {
-      var d = newDate(1900, undefined, 1),
-          i = parseSpecifier(d, specifier, string += "", 0),
-          week, day;
-      if (i != string.length) return null;
-
-      // If a UNIX timestamp is specified, return it.
-      if ("Q" in d) return new Date(d.Q);
-      if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
-
-      // If this is utcParse, never use the local timezone.
-      if (Z && !("Z" in d)) d.Z = 0;
-
-      // The am-pm flag is 0 for AM, and 1 for PM.
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-
-      // If the month was not specified, inherit from the quarter.
-      if (d.m === undefined) d.m = "q" in d ? d.q : 0;
-
-      // Convert day-of-week and week-of-year to day-of-year.
-      if ("V" in d) {
-        if (d.V < 1 || d.V > 53) return null;
-        if (!("w" in d)) d.w = 1;
-        if ("Z" in d) {
-          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
-          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
-          week = utcDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getUTCFullYear();
-          d.m = week.getUTCMonth();
-          d.d = week.getUTCDate() + (d.w + 6) % 7;
-        } else {
-          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
-          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);
-          week = timeDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getFullYear();
-          d.m = week.getMonth();
-          d.d = week.getDate() + (d.w + 6) % 7;
-        }
-      } else if ("W" in d || "U" in d) {
-        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
-        day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
-        d.m = 0;
-        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
-      }
-
-      // If a time zone is specified, all fields are interpreted as UTC and then
-      // offset according to the specified time zone.
-      if ("Z" in d) {
-        d.H += d.Z / 100 | 0;
-        d.M += d.Z % 100;
-        return utcDate(d);
-      }
-
-      // Otherwise, all fields are in local time.
-      return localDate(d);
-    };
-  }
-
-  function parseSpecifier(d, specifier, string, j) {
-    var i = 0,
-        n = specifier.length,
-        m = string.length,
-        c,
-        parse;
-
-    while (i < n) {
-      if (j >= m) return -1;
-      c = specifier.charCodeAt(i++);
-      if (c === 37) {
-        c = specifier.charAt(i++);
-        parse = parses[c in pads ? specifier.charAt(i++) : c];
-        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-
-    return j;
-  }
-
-  function parsePeriod(d, string, i) {
-    var n = periodRe.exec(string.slice(i));
-    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortWeekday(d, string, i) {
-    var n = shortWeekdayRe.exec(string.slice(i));
-    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseWeekday(d, string, i) {
-    var n = weekdayRe.exec(string.slice(i));
-    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseShortMonth(d, string, i) {
-    var n = shortMonthRe.exec(string.slice(i));
-    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseMonth(d, string, i) {
-    var n = monthRe.exec(string.slice(i));
-    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-
-  function parseLocaleDateTime(d, string, i) {
-    return parseSpecifier(d, locale_dateTime, string, i);
-  }
-
-  function parseLocaleDate(d, string, i) {
-    return parseSpecifier(d, locale_date, string, i);
-  }
-
-  function parseLocaleTime(d, string, i) {
-    return parseSpecifier(d, locale_time, string, i);
-  }
-
-  function formatShortWeekday(d) {
-    return locale_shortWeekdays[d.getDay()];
-  }
-
-  function formatWeekday(d) {
-    return locale_weekdays[d.getDay()];
-  }
-
-  function formatShortMonth(d) {
-    return locale_shortMonths[d.getMonth()];
-  }
-
-  function formatMonth(d) {
-    return locale_months[d.getMonth()];
-  }
-
-  function formatPeriod(d) {
-    return locale_periods[+(d.getHours() >= 12)];
-  }
-
-  function formatQuarter(d) {
-    return 1 + ~~(d.getMonth() / 3);
-  }
-
-  function formatUTCShortWeekday(d) {
-    return locale_shortWeekdays[d.getUTCDay()];
-  }
-
-  function formatUTCWeekday(d) {
-    return locale_weekdays[d.getUTCDay()];
-  }
-
-  function formatUTCShortMonth(d) {
-    return locale_shortMonths[d.getUTCMonth()];
-  }
-
-  function formatUTCMonth(d) {
-    return locale_months[d.getUTCMonth()];
-  }
-
-  function formatUTCPeriod(d) {
-    return locale_periods[+(d.getUTCHours() >= 12)];
-  }
-
-  function formatUTCQuarter(d) {
-    return 1 + ~~(d.getUTCMonth() / 3);
-  }
-
-  return {
-    format: function(specifier) {
-      var f = newFormat(specifier += "", formats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    parse: function(specifier) {
-      var p = newParse(specifier += "", false);
-      p.toString = function() { return specifier; };
-      return p;
-    },
-    utcFormat: function(specifier) {
-      var f = newFormat(specifier += "", utcFormats);
-      f.toString = function() { return specifier; };
-      return f;
-    },
-    utcParse: function(specifier) {
-      var p = newParse(specifier += "", true);
-      p.toString = function() { return specifier; };
-      return p;
-    }
-  };
-}
-
-var pads = {"-": "", "_": " ", "0": "0"},
-    numberRe = /^\s*\d+/, // note: ignores next directive
-    percentRe = /^%/,
-    requoteRe = /[\\^$*+?|[\]().{}]/g;
-
-function pad(value, fill, width) {
-  var sign = value < 0 ? "-" : "",
-      string = (sign ? -value : value) + "",
-      length = string.length;
-  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
-}
-
-function requote(s) {
-  return s.replace(requoteRe, "\\$&");
-}
-
-function formatRe(names) {
-  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
-}
-
-function formatLookup(names) {
-  return new Map(names.map((name, i) => [name.toLowerCase(), i]));
-}
-
-function parseWeekdayNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.w = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekdayNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.u = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.U = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberISO(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.V = +n[0], i + n[0].length) : -1;
-}
-
-function parseWeekNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.W = +n[0], i + n[0].length) : -1;
-}
-
-function parseFullYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 4));
-  return n ? (d.y = +n[0], i + n[0].length) : -1;
-}
-
-function parseYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
-}
-
-function parseZone(d, string, i) {
-  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
-  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
-}
-
-function parseQuarter(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
-}
-
-function parseMonthNumber(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
-}
-
-function parseDayOfMonth(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseDayOfYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
-}
-
-function parseHour24(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.H = +n[0], i + n[0].length) : -1;
-}
-
-function parseMinutes(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.M = +n[0], i + n[0].length) : -1;
-}
-
-function parseSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.S = +n[0], i + n[0].length) : -1;
-}
-
-function parseMilliseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.L = +n[0], i + n[0].length) : -1;
-}
-
-function parseMicroseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 6));
-  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
-}
-
-function parseLiteralPercent(d, string, i) {
-  var n = percentRe.exec(string.slice(i, i + 1));
-  return n ? i + n[0].length : -1;
-}
-
-function parseUnixTimestamp(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.Q = +n[0], i + n[0].length) : -1;
-}
-
-function parseUnixTimestampSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.s = +n[0], i + n[0].length) : -1;
-}
-
-function formatDayOfMonth(d, p) {
-  return pad(d.getDate(), p, 2);
-}
-
-function formatHour24(d, p) {
-  return pad(d.getHours(), p, 2);
-}
-
-function formatHour12(d, p) {
-  return pad(d.getHours() % 12 || 12, p, 2);
-}
-
-function formatDayOfYear(d, p) {
-  return pad(1 + timeDay.count(timeYear(d), d), p, 3);
-}
-
-function formatMilliseconds(d, p) {
-  return pad(d.getMilliseconds(), p, 3);
-}
-
-function formatMicroseconds(d, p) {
-  return formatMilliseconds(d, p) + "000";
-}
-
-function formatMonthNumber(d, p) {
-  return pad(d.getMonth() + 1, p, 2);
-}
-
-function formatMinutes(d, p) {
-  return pad(d.getMinutes(), p, 2);
-}
-
-function formatSeconds(d, p) {
-  return pad(d.getSeconds(), p, 2);
-}
-
-function formatWeekdayNumberMonday(d) {
-  var day = d.getDay();
-  return day === 0 ? 7 : day;
-}
-
-function formatWeekNumberSunday(d, p) {
-  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);
-}
-
-function dISO(d) {
-  var day = d.getDay();
-  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
-}
-
-function formatWeekNumberISO(d, p) {
-  d = dISO(d);
-  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
-}
-
-function formatWeekdayNumberSunday(d) {
-  return d.getDay();
-}
-
-function formatWeekNumberMonday(d, p) {
-  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);
-}
-
-function formatYear(d, p) {
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatYearISO(d, p) {
-  d = dISO(d);
-  return pad(d.getFullYear() % 100, p, 2);
-}
-
-function formatFullYear(d, p) {
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatFullYearISO(d, p) {
-  var day = d.getDay();
-  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-
-function formatZone(d) {
-  var z = d.getTimezoneOffset();
-  return (z > 0 ? "-" : (z *= -1, "+"))
-      + pad(z / 60 | 0, "0", 2)
-      + pad(z % 60, "0", 2);
-}
-
-function formatUTCDayOfMonth(d, p) {
-  return pad(d.getUTCDate(), p, 2);
-}
-
-function formatUTCHour24(d, p) {
-  return pad(d.getUTCHours(), p, 2);
-}
-
-function formatUTCHour12(d, p) {
-  return pad(d.getUTCHours() % 12 || 12, p, 2);
-}
-
-function formatUTCDayOfYear(d, p) {
-  return pad(1 + utcDay.count(utcYear(d), d), p, 3);
-}
-
-function formatUTCMilliseconds(d, p) {
-  return pad(d.getUTCMilliseconds(), p, 3);
-}
-
-function formatUTCMicroseconds(d, p) {
-  return formatUTCMilliseconds(d, p) + "000";
-}
-
-function formatUTCMonthNumber(d, p) {
-  return pad(d.getUTCMonth() + 1, p, 2);
-}
-
-function formatUTCMinutes(d, p) {
-  return pad(d.getUTCMinutes(), p, 2);
-}
-
-function formatUTCSeconds(d, p) {
-  return pad(d.getUTCSeconds(), p, 2);
-}
-
-function formatUTCWeekdayNumberMonday(d) {
-  var dow = d.getUTCDay();
-  return dow === 0 ? 7 : dow;
-}
-
-function formatUTCWeekNumberSunday(d, p) {
-  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
-}
-
-function UTCdISO(d) {
-  var day = d.getUTCDay();
-  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
-}
-
-function formatUTCWeekNumberISO(d, p) {
-  d = UTCdISO(d);
-  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
-}
-
-function formatUTCWeekdayNumberSunday(d) {
-  return d.getUTCDay();
-}
-
-function formatUTCWeekNumberMonday(d, p) {
-  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
-}
-
-function formatUTCYear(d, p) {
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCYearISO(d, p) {
-  d = UTCdISO(d);
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-
-function formatUTCFullYear(d, p) {
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCFullYearISO(d, p) {
-  var day = d.getUTCDay();
-  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-
-function formatUTCZone() {
-  return "+0000";
-}
-
-function formatLiteralPercent() {
-  return "%";
-}
-
-function formatUnixTimestamp(d) {
-  return +d;
-}
-
-function formatUnixTimestampSeconds(d) {
-  return Math.floor(+d / 1000);
-}
-
-var locale;
-exports.timeFormat = void 0;
-exports.timeParse = void 0;
-exports.utcFormat = void 0;
-exports.utcParse = void 0;
-
-defaultLocale({
-  dateTime: "%x, %X",
-  date: "%-m/%-d/%Y",
-  time: "%-I:%M:%S %p",
-  periods: ["AM", "PM"],
-  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-});
-
-function defaultLocale(definition) {
-  locale = formatLocale(definition);
-  exports.timeFormat = locale.format;
-  exports.timeParse = locale.parse;
-  exports.utcFormat = locale.utcFormat;
-  exports.utcParse = locale.utcParse;
-  return locale;
-}
-
-var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
-
-function formatIsoNative(date) {
-  return date.toISOString();
-}
-
-var formatIso = Date.prototype.toISOString
-    ? formatIsoNative
-    : exports.utcFormat(isoSpecifier);
-
-var formatIso$1 = formatIso;
-
-function parseIsoNative(string) {
-  var date = new Date(string);
-  return isNaN(date) ? null : date;
-}
-
-var parseIso = +new Date("2000-01-01T00:00:00.000Z")
-    ? parseIsoNative
-    : exports.utcParse(isoSpecifier);
-
-var parseIso$1 = parseIso;
-
-function date(t) {
-  return new Date(t);
-}
-
-function number(t) {
-  return t instanceof Date ? +t : +new Date(+t);
-}
-
-function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
-  var scale = continuous(),
-      invert = scale.invert,
-      domain = scale.domain;
-
-  var formatMillisecond = format(".%L"),
-      formatSecond = format(":%S"),
-      formatMinute = format("%I:%M"),
-      formatHour = format("%I %p"),
-      formatDay = format("%a %d"),
-      formatWeek = format("%b %d"),
-      formatMonth = format("%B"),
-      formatYear = format("%Y");
-
-  function tickFormat(date) {
-    return (second(date) < date ? formatMillisecond
-        : minute(date) < date ? formatSecond
-        : hour(date) < date ? formatMinute
-        : day(date) < date ? formatHour
-        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
-        : year(date) < date ? formatMonth
-        : formatYear)(date);
-  }
-
-  scale.invert = function(y) {
-    return new Date(invert(y));
-  };
-
-  scale.domain = function(_) {
-    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
-  };
-
-  scale.ticks = function(interval) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
-  };
-
-  scale.tickFormat = function(count, specifier) {
-    return specifier == null ? tickFormat : format(specifier);
-  };
-
-  scale.nice = function(interval) {
-    var d = domain();
-    if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
-    return interval ? domain(nice(d, interval)) : scale;
-  };
-
-  scale.copy = function() {
-    return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
-  };
-
-  return scale;
-}
-
-function time() {
-  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
-}
-
-function utcTime() {
-  return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
-}
-
-function transformer$1() {
-  var x0 = 0,
-      x1 = 1,
-      t0,
-      t1,
-      k10,
-      transform,
-      interpolator = identity$3,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1;
-      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
-    };
-  }
-
-  scale.range = range(interpolate$2);
-
-  scale.rangeRound = range(interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
-    return scale;
-  };
-}
-
-function copy(source, target) {
-  return target
-      .domain(source.domain())
-      .interpolator(source.interpolator())
-      .clamp(source.clamp())
-      .unknown(source.unknown());
-}
-
-function sequential() {
-  var scale = linearish(transformer$1()(identity$3));
-
-  scale.copy = function() {
-    return copy(scale, sequential());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialLog() {
-  var scale = loggish(transformer$1()).domain([1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, sequentialLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialSymlog() {
-  var scale = symlogish(transformer$1());
-
-  scale.copy = function() {
-    return copy(scale, sequentialSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialPow() {
-  var scale = powish(transformer$1());
-
-  scale.copy = function() {
-    return copy(scale, sequentialPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function sequentialSqrt() {
-  return sequentialPow.apply(null, arguments).exponent(0.5);
-}
-
-function sequentialQuantile() {
-  var domain = [],
-      interpolator = identity$3;
-
-  function scale(x) {
-    if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));
-  }
-
-  scale.domain = function(_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(ascending$3);
-    return scale;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  scale.range = function() {
-    return domain.map((d, i) => interpolator(i / (domain.length - 1)));
-  };
-
-  scale.quantiles = function(n) {
-    return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n));
-  };
-
-  scale.copy = function() {
-    return sequentialQuantile(interpolator).domain(domain);
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function transformer() {
-  var x0 = 0,
-      x1 = 0.5,
-      x2 = 1,
-      s = 1,
-      t0,
-      t1,
-      t2,
-      k10,
-      k21,
-      interpolator = identity$3,
-      transform,
-      clamp = false,
-      unknown;
-
-  function scale(x) {
-    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-
-  scale.domain = function(_) {
-    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
-  };
-
-  scale.clamp = function(_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-
-  scale.interpolator = function(_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-
-  function range(interpolate) {
-    return function(_) {
-      var r0, r1, r2;
-      return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
-    };
-  }
-
-  scale.range = range(interpolate$2);
-
-  scale.rangeRound = range(interpolateRound);
-
-  scale.unknown = function(_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-
-  return function(t) {
-    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
-    return scale;
-  };
-}
-
-function diverging$1() {
-  var scale = linearish(transformer()(identity$3));
-
-  scale.copy = function() {
-    return copy(scale, diverging$1());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingLog() {
-  var scale = loggish(transformer()).domain([0.1, 1, 10]);
-
-  scale.copy = function() {
-    return copy(scale, divergingLog()).base(scale.base());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingSymlog() {
-  var scale = symlogish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingSymlog()).constant(scale.constant());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingPow() {
-  var scale = powish(transformer());
-
-  scale.copy = function() {
-    return copy(scale, divergingPow()).exponent(scale.exponent());
-  };
-
-  return initInterpolator.apply(scale, arguments);
-}
-
-function divergingSqrt() {
-  return divergingPow.apply(null, arguments).exponent(0.5);
-}
-
-function colors(specifier) {
-  var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
-  while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
-  return colors;
-}
-
-var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
-
-var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");
-
-var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");
-
-var observable10 = colors("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0");
-
-var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");
-
-var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");
-
-var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");
-
-var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");
-
-var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");
-
-var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");
-
-var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
-
-var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]);
-
-var scheme$q = new Array(3).concat(
-  "d8b365f5f5f55ab4ac",
-  "a6611adfc27d80cdc1018571",
-  "a6611adfc27df5f5f580cdc1018571",
-  "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
-  "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
-  "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
-  "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
-  "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
-  "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
-).map(colors);
-
-var BrBG = ramp$1(scheme$q);
-
-var scheme$p = new Array(3).concat(
-  "af8dc3f7f7f77fbf7b",
-  "7b3294c2a5cfa6dba0008837",
-  "7b3294c2a5cff7f7f7a6dba0008837",
-  "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
-  "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
-  "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
-  "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
-  "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
-  "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
-).map(colors);
-
-var PRGn = ramp$1(scheme$p);
-
-var scheme$o = new Array(3).concat(
-  "e9a3c9f7f7f7a1d76a",
-  "d01c8bf1b6dab8e1864dac26",
-  "d01c8bf1b6daf7f7f7b8e1864dac26",
-  "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
-  "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
-  "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
-  "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
-  "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
-  "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
-).map(colors);
-
-var PiYG = ramp$1(scheme$o);
-
-var scheme$n = new Array(3).concat(
-  "998ec3f7f7f7f1a340",
-  "5e3c99b2abd2fdb863e66101",
-  "5e3c99b2abd2f7f7f7fdb863e66101",
-  "542788998ec3d8daebfee0b6f1a340b35806",
-  "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
-  "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
-  "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
-  "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
-  "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
-).map(colors);
-
-var PuOr = ramp$1(scheme$n);
-
-var scheme$m = new Array(3).concat(
-  "ef8a62f7f7f767a9cf",
-  "ca0020f4a58292c5de0571b0",
-  "ca0020f4a582f7f7f792c5de0571b0",
-  "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
-  "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
-  "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
-  "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
-  "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
-  "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
-).map(colors);
-
-var RdBu = ramp$1(scheme$m);
-
-var scheme$l = new Array(3).concat(
-  "ef8a62ffffff999999",
-  "ca0020f4a582bababa404040",
-  "ca0020f4a582ffffffbababa404040",
-  "b2182bef8a62fddbc7e0e0e09999994d4d4d",
-  "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
-  "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
-  "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
-  "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
-  "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
-).map(colors);
-
-var RdGy = ramp$1(scheme$l);
-
-var scheme$k = new Array(3).concat(
-  "fc8d59ffffbf91bfdb",
-  "d7191cfdae61abd9e92c7bb6",
-  "d7191cfdae61ffffbfabd9e92c7bb6",
-  "d73027fc8d59fee090e0f3f891bfdb4575b4",
-  "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
-  "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
-  "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
-  "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
-  "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
-).map(colors);
-
-var RdYlBu = ramp$1(scheme$k);
-
-var scheme$j = new Array(3).concat(
-  "fc8d59ffffbf91cf60",
-  "d7191cfdae61a6d96a1a9641",
-  "d7191cfdae61ffffbfa6d96a1a9641",
-  "d73027fc8d59fee08bd9ef8b91cf601a9850",
-  "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
-  "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
-  "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
-  "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
-  "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
-).map(colors);
-
-var RdYlGn = ramp$1(scheme$j);
-
-var scheme$i = new Array(3).concat(
-  "fc8d59ffffbf99d594",
-  "d7191cfdae61abdda42b83ba",
-  "d7191cfdae61ffffbfabdda42b83ba",
-  "d53e4ffc8d59fee08be6f59899d5943288bd",
-  "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
-  "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
-  "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
-  "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
-  "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
-).map(colors);
-
-var Spectral = ramp$1(scheme$i);
-
-var scheme$h = new Array(3).concat(
-  "e5f5f999d8c92ca25f",
-  "edf8fbb2e2e266c2a4238b45",
-  "edf8fbb2e2e266c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a42ca25f006d2c",
-  "edf8fbccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
-  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
-).map(colors);
-
-var BuGn = ramp$1(scheme$h);
-
-var scheme$g = new Array(3).concat(
-  "e0ecf49ebcda8856a7",
-  "edf8fbb3cde38c96c688419d",
-  "edf8fbb3cde38c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
-  "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
-  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
-).map(colors);
-
-var BuPu = ramp$1(scheme$g);
-
-var scheme$f = new Array(3).concat(
-  "e0f3dba8ddb543a2ca",
-  "f0f9e8bae4bc7bccc42b8cbe",
-  "f0f9e8bae4bc7bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
-  "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
-  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
-).map(colors);
-
-var GnBu = ramp$1(scheme$f);
-
-var scheme$e = new Array(3).concat(
-  "fee8c8fdbb84e34a33",
-  "fef0d9fdcc8afc8d59d7301f",
-  "fef0d9fdcc8afc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59e34a33b30000",
-  "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
-  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
-).map(colors);
-
-var OrRd = ramp$1(scheme$e);
-
-var scheme$d = new Array(3).concat(
-  "ece2f0a6bddb1c9099",
-  "f6eff7bdc9e167a9cf02818a",
-  "f6eff7bdc9e167a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
-  "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
-  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
-).map(colors);
-
-var PuBuGn = ramp$1(scheme$d);
-
-var scheme$c = new Array(3).concat(
-  "ece7f2a6bddb2b8cbe",
-  "f1eef6bdc9e174a9cf0570b0",
-  "f1eef6bdc9e174a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
-  "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
-  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
-).map(colors);
-
-var PuBu = ramp$1(scheme$c);
-
-var scheme$b = new Array(3).concat(
-  "e7e1efc994c7dd1c77",
-  "f1eef6d7b5d8df65b0ce1256",
-  "f1eef6d7b5d8df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0dd1c77980043",
-  "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
-  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
-).map(colors);
-
-var PuRd = ramp$1(scheme$b);
-
-var scheme$a = new Array(3).concat(
-  "fde0ddfa9fb5c51b8a",
-  "feebe2fbb4b9f768a1ae017e",
-  "feebe2fbb4b9f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
-  "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
-  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
-).map(colors);
-
-var RdPu = ramp$1(scheme$a);
-
-var scheme$9 = new Array(3).concat(
-  "edf8b17fcdbb2c7fb8",
-  "ffffcca1dab441b6c4225ea8",
-  "ffffcca1dab441b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
-  "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
-  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
-).map(colors);
-
-var YlGnBu = ramp$1(scheme$9);
-
-var scheme$8 = new Array(3).concat(
-  "f7fcb9addd8e31a354",
-  "ffffccc2e69978c679238443",
-  "ffffccc2e69978c67931a354006837",
-  "ffffccd9f0a3addd8e78c67931a354006837",
-  "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
-  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
-).map(colors);
-
-var YlGn = ramp$1(scheme$8);
-
-var scheme$7 = new Array(3).concat(
-  "fff7bcfec44fd95f0e",
-  "ffffd4fed98efe9929cc4c02",
-  "ffffd4fed98efe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929d95f0e993404",
-  "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
-  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
-).map(colors);
-
-var YlOrBr = ramp$1(scheme$7);
-
-var scheme$6 = new Array(3).concat(
-  "ffeda0feb24cf03b20",
-  "ffffb2fecc5cfd8d3ce31a1c",
-  "ffffb2fecc5cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cf03b20bd0026",
-  "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
-  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
-).map(colors);
-
-var YlOrRd = ramp$1(scheme$6);
-
-var scheme$5 = new Array(3).concat(
-  "deebf79ecae13182bd",
-  "eff3ffbdd7e76baed62171b5",
-  "eff3ffbdd7e76baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed63182bd08519c",
-  "eff3ffc6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
-  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
-).map(colors);
-
-var Blues = ramp$1(scheme$5);
-
-var scheme$4 = new Array(3).concat(
-  "e5f5e0a1d99b31a354",
-  "edf8e9bae4b374c476238b45",
-  "edf8e9bae4b374c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47631a354006d2c",
-  "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
-  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
-).map(colors);
-
-var Greens = ramp$1(scheme$4);
-
-var scheme$3 = new Array(3).concat(
-  "f0f0f0bdbdbd636363",
-  "f7f7f7cccccc969696525252",
-  "f7f7f7cccccc969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696636363252525",
-  "f7f7f7d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
-  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
-).map(colors);
-
-var Greys = ramp$1(scheme$3);
-
-var scheme$2 = new Array(3).concat(
-  "efedf5bcbddc756bb1",
-  "f2f0f7cbc9e29e9ac86a51a3",
-  "f2f0f7cbc9e29e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
-  "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
-  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
-).map(colors);
-
-var Purples = ramp$1(scheme$2);
-
-var scheme$1 = new Array(3).concat(
-  "fee0d2fc9272de2d26",
-  "fee5d9fcae91fb6a4acb181d",
-  "fee5d9fcae91fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
-  "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
-  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
-).map(colors);
-
-var Reds = ramp$1(scheme$1);
-
-var scheme = new Array(3).concat(
-  "fee6cefdae6be6550d",
-  "feeddefdbe85fd8d3cd94701",
-  "feeddefdbe85fd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3ce6550da63603",
-  "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
-  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
-).map(colors);
-
-var Oranges = ramp$1(scheme);
-
-function cividis(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))
-      + ")";
-}
-
-var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0));
-
-var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8));
-
-var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8));
-
-var c$2 = cubehelix$3();
-
-function rainbow(t) {
-  if (t < 0 || t > 1) t -= Math.floor(t);
-  var ts = Math.abs(t - 0.5);
-  c$2.h = 360 * t - 100;
-  c$2.s = 1.5 - 1.5 * ts;
-  c$2.l = 0.8 - 0.9 * ts;
-  return c$2 + "";
-}
-
-var c$1 = rgb(),
-    pi_1_3 = Math.PI / 3,
-    pi_2_3 = Math.PI * 2 / 3;
-
-function sinebow(t) {
-  var x;
-  t = (0.5 - t) * Math.PI;
-  c$1.r = 255 * (x = Math.sin(t)) * x;
-  c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
-  c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
-  return c$1 + "";
-}
-
-function turbo(t) {
-  t = Math.max(0, Math.min(1, t));
-  return "rgb("
-      + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", "
-      + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))
-      + ")";
-}
-
-function ramp(range) {
-  var n = range.length;
-  return function(t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
-
-var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));
-
-var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
-
-var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
-
-var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
-
-function constant$1(x) {
-  return function constant() {
-    return x;
-  };
-}
-
-const abs = Math.abs;
-const atan2 = Math.atan2;
-const cos = Math.cos;
-const max = Math.max;
-const min = Math.min;
-const sin = Math.sin;
-const sqrt = Math.sqrt;
-
-const epsilon = 1e-12;
-const pi = Math.PI;
-const halfPi = pi / 2;
-const tau = 2 * pi;
-
-function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-
-function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
-
-function withPath(shape) {
-  let digits = 3;
-
-  shape.digits = function(_) {
-    if (!arguments.length) return digits;
-    if (_ == null) {
-      digits = null;
-    } else {
-      const d = Math.floor(_);
-      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
-      digits = d;
-    }
-    return shape;
-  };
-
-  return () => new Path$1(digits);
-}
-
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0, y10 = y1 - y0,
-      x32 = x3 - x2, y32 = y3 - y2,
-      t = y32 * x10 - x32 * y10;
-  if (t * t < epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-      y01 = y0 - y1,
-      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),
-      ox = lo * y01,
-      oy = -lo * x01,
-      x11 = x0 + ox,
-      y11 = y0 + oy,
-      x10 = x1 + ox,
-      y10 = y1 + oy,
-      x00 = (x11 + x10) / 2,
-      y00 = (y11 + y10) / 2,
-      dx = x10 - x11,
-      dy = y10 - y11,
-      d2 = dx * dx + dy * dy,
-      r = r1 - rc,
-      D = x11 * y10 - x10 * y11,
-      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),
-      cx0 = (D * dy - dx * d) / d2,
-      cy0 = (-D * dx - dy * d) / d2,
-      cx1 = (D * dy + dx * d) / d2,
-      cy1 = (-D * dx + dy * d) / d2,
-      dx0 = cx0 - x00,
-      dy0 = cy0 - y00,
-      dx1 = cx1 - x00,
-      dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-
-function arc() {
-  var innerRadius = arcInnerRadius,
-      outerRadius = arcOuterRadius,
-      cornerRadius = constant$1(0),
-      padRadius = null,
-      startAngle = arcStartAngle,
-      endAngle = arcEndAngle,
-      padAngle = arcPadAngle,
-      context = null,
-      path = withPath(arc);
-
-  function arc() {
-    var buffer,
-        r,
-        r0 = +innerRadius.apply(this, arguments),
-        r1 = +outerRadius.apply(this, arguments),
-        a0 = startAngle.apply(this, arguments) - halfPi,
-        a1 = endAngle.apply(this, arguments) - halfPi,
-        da = abs(a1 - a0),
-        cw = a1 > a0;
-
-    if (!context) context = buffer = path();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > tau - epsilon) {
-      context.moveTo(r1 * cos(a0), r1 * sin(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > epsilon) {
-        context.moveTo(r0 * cos(a1), r0 * sin(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-          a11 = a1,
-          a00 = a0,
-          a10 = a1,
-          da0 = da,
-          da1 = da,
-          ap = padAngle.apply(this, arguments) / 2,
-          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),
-          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-          rc0 = rc,
-          rc1 = rc,
-          t0,
-          t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > epsilon) {
-        var p0 = asin(rp / r0 * sin(ap)),
-            p1 = asin(rp / r1 * sin(ap));
-        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
-        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
-        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-
-      var x01 = r1 * cos(a01),
-          y01 = r1 * sin(a01),
-          x10 = r0 * cos(a10),
-          y10 = r0 * sin(a10);
-
-      // Apply rounded corners?
-      if (rc > epsilon) {
-        var x11 = r1 * cos(a11),
-            y11 = r1 * sin(a11),
-            x00 = r0 * cos(a00),
-            y00 = r0 * sin(a00),
-            oc;
-
-        // Restrict the corner radius according to the sector angle. If this
-        // intersection fails, it’s probably because the arc is too small, so
-        // disable the corner radius entirely.
-        if (da < pi) {
-          if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {
-            var ax = x01 - oc[0],
-                ay = y01 - oc[1],
-                bx = x11 - oc[0],
-                by = y11 - oc[1],
-                kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),
-                lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-            rc0 = min(rc, (r0 - lc) / (kc - 1));
-            rc1 = min(rc, (r1 - lc) / (kc + 1));
-          } else {
-            rc0 = rc1 = 0;
-          }
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-
-    context.closePath();
-
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  arc.centroid = function() {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
-    return [cos(a) * r, sin(a) * r];
-  };
-
-  arc.innerRadius = function(_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius;
-  };
-
-  arc.outerRadius = function(_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius;
-  };
-
-  arc.cornerRadius = function(_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius;
-  };
-
-  arc.padRadius = function(_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius;
-  };
-
-  arc.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle;
-  };
-
-  arc.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle;
-  };
-
-  arc.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle;
-  };
-
-  arc.context = function(_) {
-    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
-  };
-
-  return arc;
-}
-
-var slice = Array.prototype.slice;
-
-function array(x) {
-  return typeof x === "object" && "length" in x
-    ? x // Array, TypedArray, NodeList, array-like
-    : Array.from(x); // Map, Set, iterable, string, or anything else
-}
-
-function Linear(context) {
-  this._context = context;
-}
-
-Linear.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: this._context.lineTo(x, y); break;
-    }
-  }
-};
-
-function curveLinear(context) {
-  return new Linear(context);
-}
-
-function x(p) {
-  return p[0];
-}
-
-function y(p) {
-  return p[1];
-}
-
-function line(x$1, y$1) {
-  var defined = constant$1(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(line);
-
-  x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1);
-  y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1);
-
-  function line(data) {
-    var i,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer;
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();
-        else output.lineEnd();
-      }
-      if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  line.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1;
-  };
-
-  line.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1;
-  };
-
-  line.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined;
-  };
-
-  line.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-
-  line.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-
-  return line;
-}
-
-function area(x0, y0, y1) {
-  var x1 = null,
-      defined = constant$1(true),
-      context = null,
-      curve = curveLinear,
-      output = null,
-      path = withPath(area);
-
-  x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0);
-  y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0);
-  y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1);
-
-  function area(data) {
-    var i,
-        j,
-        k,
-        n = (data = array(data)).length,
-        d,
-        defined0 = false,
-        buffer,
-        x0z = new Array(n),
-        y0z = new Array(n);
-
-    if (context == null) output = curve(buffer = path());
-
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  function arealine() {
-    return line().defined(defined).curve(curve).context(context);
-  }
-
-  area.x = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0;
-  };
-
-  area.x0 = function(_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0;
-  };
-
-  area.x1 = function(_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1;
-  };
-
-  area.y = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0;
-  };
-
-  area.y0 = function(_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0;
-  };
-
-  area.y1 = function(_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1;
-  };
-
-  area.lineX0 =
-  area.lineY0 = function() {
-    return arealine().x(x0).y(y0);
-  };
-
-  area.lineY1 = function() {
-    return arealine().x(x0).y(y1);
-  };
-
-  area.lineX1 = function() {
-    return arealine().x(x1).y(y0);
-  };
-
-  area.defined = function(_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined;
-  };
-
-  area.curve = function(_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-
-  area.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-
-  return area;
-}
-
-function descending$1(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
-
-function identity$1(d) {
-  return d;
-}
-
-function pie() {
-  var value = identity$1,
-      sortValues = descending$1,
-      sort = null,
-      startAngle = constant$1(0),
-      endAngle = constant$1(tau),
-      padAngle = constant$1(0);
-
-  function pie(data) {
-    var i,
-        n = (data = array(data)).length,
-        j,
-        k,
-        sum = 0,
-        index = new Array(n),
-        arcs = new Array(n),
-        a0 = +startAngle.apply(this, arguments),
-        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),
-        a1,
-        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-        pa = p * (da < 0 ? -1 : 1),
-        v;
-
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
-    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-
-    return arcs;
-  }
-
-  pie.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value;
-  };
-
-  pie.sortValues = function(_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-
-  pie.sort = function(_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-
-  pie.startAngle = function(_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle;
-  };
-
-  pie.endAngle = function(_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle;
-  };
-
-  pie.padAngle = function(_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle;
-  };
-
-  return pie;
-}
-
-var curveRadialLinear = curveRadial(curveLinear);
-
-function Radial(curve) {
-  this._curve = curve;
-}
-
-Radial.prototype = {
-  areaStart: function() {
-    this._curve.areaStart();
-  },
-  areaEnd: function() {
-    this._curve.areaEnd();
-  },
-  lineStart: function() {
-    this._curve.lineStart();
-  },
-  lineEnd: function() {
-    this._curve.lineEnd();
-  },
-  point: function(a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-
-function curveRadial(curve) {
-
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-
-  radial._curve = curve;
-
-  return radial;
-}
-
-function lineRadial(l) {
-  var c = l.curve;
-
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-
-  l.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return l;
-}
-
-function lineRadial$1() {
-  return lineRadial(line().curve(curveRadialLinear));
-}
-
-function areaRadial() {
-  var a = area().curve(curveRadialLinear),
-      c = a.curve,
-      x0 = a.lineX0,
-      x1 = a.lineX1,
-      y0 = a.lineY0,
-      y1 = a.lineY1;
-
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
-  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
-  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
-  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;
-
-  a.curve = function(_) {
-    return arguments.length ? c(curveRadial(_)) : c()._curve;
-  };
-
-  return a;
-}
-
-function pointRadial(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
-
-class Bump {
-  constructor(context, x) {
-    this._context = context;
-    this._x = x;
-  }
-  areaStart() {
-    this._line = 0;
-  }
-  areaEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  }
-  point(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: {
-        this._point = 1;
-        if (this._line) this._context.lineTo(x, y);
-        else this._context.moveTo(x, y);
-        break;
-      }
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);
-        else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
-        break;
-      }
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-class BumpRadial {
-  constructor(context) {
-    this._context = context;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {}
-  point(x, y) {
-    x = +x, y = +y;
-    if (this._point === 0) {
-      this._point = 1;
-    } else {
-      const p0 = pointRadial(this._x0, this._y0);
-      const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);
-      const p2 = pointRadial(x, this._y0);
-      const p3 = pointRadial(x, y);
-      this._context.moveTo(...p0);
-      this._context.bezierCurveTo(...p1, ...p2, ...p3);
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-
-function bumpX(context) {
-  return new Bump(context, true);
-}
-
-function bumpY(context) {
-  return new Bump(context, false);
-}
-
-function bumpRadial(context) {
-  return new BumpRadial(context);
-}
-
-function linkSource(d) {
-  return d.source;
-}
-
-function linkTarget(d) {
-  return d.target;
-}
-
-function link(curve) {
-  let source = linkSource,
-      target = linkTarget,
-      x$1 = x,
-      y$1 = y,
-      context = null,
-      output = null,
-      path = withPath(link);
-
-  function link() {
-    let buffer;
-    const argv = slice.call(arguments);
-    const s = source.apply(this, argv);
-    const t = target.apply(this, argv);
-    if (context == null) output = curve(buffer = path());
-    output.lineStart();
-    argv[0] = s, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv));
-    argv[0] = t, output.point(+x$1.apply(this, argv), +y$1.apply(this, argv));
-    output.lineEnd();
-    if (buffer) return output = null, buffer + "" || null;
-  }
-
-  link.source = function(_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-
-  link.target = function(_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-
-  link.x = function(_) {
-    return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1;
-  };
-
-  link.y = function(_) {
-    return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1;
-  };
-
-  link.context = function(_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;
-  };
-
-  return link;
-}
-
-function linkHorizontal() {
-  return link(bumpX);
-}
-
-function linkVertical() {
-  return link(bumpY);
-}
-
-function linkRadial() {
-  const l = link(bumpRadial);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
-
-const sqrt3$2 = sqrt(3);
-
-var asterisk = {
-  draw(context, size) {
-    const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;
-    const t = r / 2;
-    const u = t * sqrt3$2;
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-    context.moveTo(-u, -t);
-    context.lineTo(u, t);
-    context.moveTo(-u, t);
-    context.lineTo(u, -t);
-  }
-};
-
-var circle = {
-  draw(context, size) {
-    const r = sqrt(size / pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, tau);
-  }
-};
-
-var cross = {
-  draw(context, size) {
-    const r = sqrt(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
-
-const tan30 = sqrt(1 / 3);
-const tan30_2 = tan30 * 2;
-
-var diamond = {
-  draw(context, size) {
-    const y = sqrt(size / tan30_2);
-    const x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
-
-var diamond2 = {
-  draw(context, size) {
-    const r = sqrt(size) * 0.62625;
-    context.moveTo(0, -r);
-    context.lineTo(r, 0);
-    context.lineTo(0, r);
-    context.lineTo(-r, 0);
-    context.closePath();
-  }
-};
-
-var plus = {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 7, 2)) * 0.87559;
-    context.moveTo(-r, 0);
-    context.lineTo(r, 0);
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-  }
-};
-
-var square = {
-  draw(context, size) {
-    const w = sqrt(size);
-    const x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
-
-var square2 = {
-  draw(context, size) {
-    const r = sqrt(size) * 0.4431;
-    context.moveTo(r, r);
-    context.lineTo(r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, r);
-    context.closePath();
-  }
-};
-
-const ka = 0.89081309152928522810;
-const kr = sin(pi / 10) / sin(7 * pi / 10);
-const kx = sin(tau / 10) * kr;
-const ky = -cos(tau / 10) * kr;
-
-var star = {
-  draw(context, size) {
-    const r = sqrt(size * ka);
-    const x = kx * r;
-    const y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (let i = 1; i < 5; ++i) {
-      const a = tau * i / 5;
-      const c = cos(a);
-      const s = sin(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
-
-const sqrt3$1 = sqrt(3);
-
-var triangle = {
-  draw(context, size) {
-    const y = -sqrt(size / (sqrt3$1 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3$1 * y, -y);
-    context.lineTo(sqrt3$1 * y, -y);
-    context.closePath();
-  }
-};
-
-const sqrt3 = sqrt(3);
-
-var triangle2 = {
-  draw(context, size) {
-    const s = sqrt(size) * 0.6824;
-    const t = s  / 2;
-    const u = (s * sqrt3) / 2; // cos(Math.PI / 6)
-    context.moveTo(0, -s);
-    context.lineTo(u, t);
-    context.lineTo(-u, t);
-    context.closePath();
-  }
-};
-
-const c = -0.5;
-const s = sqrt(3) / 2;
-const k = 1 / sqrt(12);
-const a = (k / 2 + 1) * 3;
-
-var wye = {
-  draw(context, size) {
-    const r = sqrt(size / a);
-    const x0 = r / 2, y0 = r * k;
-    const x1 = x0, y1 = r * k + r;
-    const x2 = -x1, y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
-
-var times = {
-  draw(context, size) {
-    const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;
-    context.moveTo(-r, -r);
-    context.lineTo(r, r);
-    context.moveTo(-r, r);
-    context.lineTo(r, -r);
-  }
-};
-
-// These symbols are designed to be filled.
-const symbolsFill = [
-  circle,
-  cross,
-  diamond,
-  square,
-  star,
-  triangle,
-  wye
-];
-
-// These symbols are designed to be stroked (with a width of 1.5px and round caps).
-const symbolsStroke = [
-  circle,
-  plus,
-  times,
-  triangle2,
-  asterisk,
-  square2,
-  diamond2
-];
-
-function Symbol$1(type, size) {
-  let context = null,
-      path = withPath(symbol);
-
-  type = typeof type === "function" ? type : constant$1(type || circle);
-  size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size);
-
-  function symbol() {
-    let buffer;
-    if (!context) context = buffer = path();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-
-  symbol.type = function(_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type;
-  };
-
-  symbol.size = function(_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size;
-  };
-
-  symbol.context = function(_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-
-  return symbol;
-}
-
-function noop() {}
-
-function point$3(that, x, y) {
-  that._context.bezierCurveTo(
-    (2 * that._x0 + that._x1) / 3,
-    (2 * that._y0 + that._y1) / 3,
-    (that._x0 + 2 * that._x1) / 3,
-    (that._y0 + 2 * that._y1) / 3,
-    (that._x0 + 4 * that._x1 + x) / 6,
-    (that._y0 + 4 * that._y1 + y) / 6
-  );
-}
-
-function Basis(context) {
-  this._context = context;
-}
-
-Basis.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 3: point$3(this, this._x1, this._y1); // falls through
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basis(context) {
-  return new Basis(context);
-}
-
-function BasisClosed(context) {
-  this._context = context;
-}
-
-BasisClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x2, this._y2);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x2, this._y2);
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
-      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
-      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisClosed(context) {
-  return new BasisClosed(context);
-}
-
-function BasisOpen(context) {
-  this._context = context;
-}
-
-BasisOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
-      case 3: this._point = 4; // falls through
-      default: point$3(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-
-function basisOpen(context) {
-  return new BasisOpen(context);
-}
-
-function Bundle(context, beta) {
-  this._basis = new Basis(context);
-  this._beta = beta;
-}
-
-Bundle.prototype = {
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        j = x.length - 1;
-
-    if (j > 0) {
-      var x0 = x[0],
-          y0 = y[0],
-          dx = x[j] - x0,
-          dy = y[j] - y0,
-          i = -1,
-          t;
-
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(
-          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
-          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
-        );
-      }
-    }
-
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-var bundle = (function custom(beta) {
-
-  function bundle(context) {
-    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
-  }
-
-  bundle.beta = function(beta) {
-    return custom(+beta);
-  };
-
-  return bundle;
-})(0.85);
-
-function point$2(that, x, y) {
-  that._context.bezierCurveTo(
-    that._x1 + that._k * (that._x2 - that._x0),
-    that._y1 + that._k * (that._y2 - that._y0),
-    that._x2 + that._k * (that._x1 - x),
-    that._y2 + that._k * (that._y1 - y),
-    that._x2,
-    that._y2
-  );
-}
-
-function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-Cardinal.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: point$2(this, this._x1, this._y1); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
-      case 2: this._point = 3; // falls through
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinal = (function custom(tension) {
-
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalClosed = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-
-CardinalOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point$2(this, x, y); break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var cardinalOpen = (function custom(tension) {
-
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-
-  cardinal.tension = function(tension) {
-    return custom(+tension);
-  };
-
-  return cardinal;
-})(0);
-
-function point$1(that, x, y) {
-  var x1 = that._x1,
-      y1 = that._y1,
-      x2 = that._x2,
-      y2 = that._y2;
-
-  if (that._l01_a > epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-
-  if (that._l23_a > epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRom.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x2, this._y2); break;
-      case 3: this.point(this._x2, this._y2); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; // falls through
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRom = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
-    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 1: {
-        this._context.moveTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 2: {
-        this._context.lineTo(this._x3, this._y3);
-        this._context.closePath();
-        break;
-      }
-      case 3: {
-        this.point(this._x3, this._y3);
-        this.point(this._x4, this._y4);
-        this.point(this._x5, this._y5);
-        break;
-      }
-    }
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
-      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
-      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomClosed = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-
-CatmullRomOpen.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 = this._x2 =
-    this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a =
-    this._l01_2a = this._l12_2a = this._l23_2a =
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-
-    if (this._point) {
-      var x23 = this._x2 - x,
-          y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-
-    switch (this._point) {
-      case 0: this._point = 1; break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
-      case 3: this._point = 4; // falls through
-      default: point$1(this, x, y); break;
-    }
-
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-
-var catmullRomOpen = (function custom(alpha) {
-
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
-  }
-
-  catmullRom.alpha = function(alpha) {
-    return custom(+alpha);
-  };
-
-  return catmullRom;
-})(0.5);
-
-function LinearClosed(context) {
-  this._context = context;
-}
-
-LinearClosed.prototype = {
-  areaStart: noop,
-  areaEnd: noop,
-  lineStart: function() {
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (this._point) this._context.closePath();
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);
-    else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-
-function linearClosed(context) {
-  return new LinearClosed(context);
-}
-
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-      h1 = x2 - that._x1,
-      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-      p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point(that, t0, t1) {
-  var x0 = that._x0,
-      y0 = that._y0,
-      x1 = that._x1,
-      y1 = that._y1,
-      dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-
-function MonotoneX(context) {
-  this._context = context;
-}
-
-MonotoneX.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x0 = this._x1 =
-    this._y0 = this._y1 =
-    this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    switch (this._point) {
-      case 2: this._context.lineTo(this._x1, this._y1); break;
-      case 3: point(this, this._t0, slope2(this, this._t0)); break;
-    }
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    var t1 = NaN;
-
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; break;
-      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
-      default: point(this, this._t0, t1 = slope3(this, x, y)); break;
-    }
-
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-};
-
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-
-function ReflectContext(context) {
-  this._context = context;
-}
-
-ReflectContext.prototype = {
-  moveTo: function(x, y) { this._context.moveTo(y, x); },
-  closePath: function() { this._context.closePath(); },
-  lineTo: function(x, y) { this._context.lineTo(y, x); },
-  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
-};
-
-function monotoneX(context) {
-  return new MonotoneX(context);
-}
-
-function monotoneY(context) {
-  return new MonotoneY(context);
-}
-
-function Natural(context) {
-  this._context = context;
-}
-
-Natural.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function() {
-    var x = this._x,
-        y = this._y,
-        n = x.length;
-
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-            py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-
-    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function(x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-      n = x.length - 1,
-      m,
-      a = new Array(n),
-      b = new Array(n),
-      r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-
-function natural(context) {
-  return new Natural(context);
-}
-
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-
-Step.prototype = {
-  areaStart: function() {
-    this._line = 0;
-  },
-  areaEnd: function() {
-    this._line = NaN;
-  },
-  lineStart: function() {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function() {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
-      case 1: this._point = 2; // falls through
-      default: {
-        if (this._t <= 0) {
-          this._context.lineTo(this._x, y);
-          this._context.lineTo(x, y);
-        } else {
-          var x1 = this._x * (1 - this._t) + x * this._t;
-          this._context.lineTo(x1, this._y);
-          this._context.lineTo(x1, y);
-        }
-        break;
-      }
-    }
-    this._x = x, this._y = y;
-  }
-};
-
-function step(context) {
-  return new Step(context, 0.5);
-}
-
-function stepBefore(context) {
-  return new Step(context, 0);
-}
-
-function stepAfter(context) {
-  return new Step(context, 1);
-}
-
-function none$1(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
-
-function none(series) {
-  var n = series.length, o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
-
-function stackValue(d, key) {
-  return d[key];
-}
-
-function stackSeries(key) {
-  const series = [];
-  series.key = key;
-  return series;
-}
-
-function stack() {
-  var keys = constant$1([]),
-      order = none,
-      offset = none$1,
-      value = stackValue;
-
-  function stack(data) {
-    var sz = Array.from(keys.apply(this, arguments), stackSeries),
-        i, n = sz.length, j = -1,
-        oz;
-
-    for (const d of data) {
-      for (i = 0, ++j; i < n; ++i) {
-        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
-      }
-    }
-
-    for (i = 0, oz = array(order(sz)); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-
-    offset(sz, oz);
-    return sz;
-  }
-
-  stack.keys = function(_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys;
-  };
-
-  stack.value = function(_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value;
-  };
-
-  stack.order = function(_) {
-    return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order;
-  };
-
-  stack.offset = function(_) {
-    return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset;
-  };
-
-  return stack;
-}
-
-function expand(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  none$1(series, order);
-}
-
-function diverging(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
-
-function silhouette(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  none$1(series, order);
-}
-
-function wiggle(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-          sij0 = si[j][1] || 0,
-          sij1 = si[j - 1][1] || 0,
-          s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-            skj0 = sk[j][1] || 0,
-            skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  none$1(series, order);
-}
-
-function appearance(series) {
-  var peaks = series.map(peak);
-  return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
-}
-
-function peak(series) {
-  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
-
-function ascending(series) {
-  var sums = series.map(sum);
-  return none(series).sort(function(a, b) { return sums[a] - sums[b]; });
-}
-
-function sum(series) {
-  var s = 0, i = -1, n = series.length, v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
-
-function descending(series) {
-  return ascending(series).reverse();
-}
-
-function insideOut(series) {
-  var n = series.length,
-      i,
-      j,
-      sums = series.map(sum),
-      order = appearance(series),
-      top = 0,
-      bottom = 0,
-      tops = [],
-      bottoms = [];
-
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-
-  return bottoms.reverse().concat(tops);
-}
-
-function reverse(series) {
-  return none(series).reverse();
-}
-
-var constant = x => () => x;
-
-function ZoomEvent(type, {
-  sourceEvent,
-  target,
-  transform,
-  dispatch
-}) {
-  Object.defineProperties(this, {
-    type: {value: type, enumerable: true, configurable: true},
-    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
-    target: {value: target, enumerable: true, configurable: true},
-    transform: {value: transform, enumerable: true, configurable: true},
-    _: {value: dispatch}
-  });
-}
-
-function Transform(k, x, y) {
-  this.k = k;
-  this.x = x;
-  this.y = y;
-}
-
-Transform.prototype = {
-  constructor: Transform,
-  scale: function(k) {
-    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
-  },
-  translate: function(x, y) {
-    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
-  },
-  apply: function(point) {
-    return [point[0] * this.k + this.x, point[1] * this.k + this.y];
-  },
-  applyX: function(x) {
-    return x * this.k + this.x;
-  },
-  applyY: function(y) {
-    return y * this.k + this.y;
-  },
-  invert: function(location) {
-    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
-  },
-  invertX: function(x) {
-    return (x - this.x) / this.k;
-  },
-  invertY: function(y) {
-    return (y - this.y) / this.k;
-  },
-  rescaleX: function(x) {
-    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
-  },
-  rescaleY: function(y) {
-    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
-  },
-  toString: function() {
-    return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
-  }
-};
-
-var identity = new Transform(1, 0, 0);
-
-transform.prototype = Transform.prototype;
-
-function transform(node) {
-  while (!node.__zoom) if (!(node = node.parentNode)) return identity;
-  return node.__zoom;
-}
-
-function nopropagation(event) {
-  event.stopImmediatePropagation();
-}
-
-function noevent(event) {
-  event.preventDefault();
-  event.stopImmediatePropagation();
-}
-
-// Ignore right-click, since that should open the context menu.
-// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event
-function defaultFilter(event) {
-  return (!event.ctrlKey || event.type === 'wheel') && !event.button;
-}
-
-function defaultExtent() {
-  var e = this;
-  if (e instanceof SVGElement) {
-    e = e.ownerSVGElement || e;
-    if (e.hasAttribute("viewBox")) {
-      e = e.viewBox.baseVal;
-      return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
-    }
-    return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
-  }
-  return [[0, 0], [e.clientWidth, e.clientHeight]];
-}
-
-function defaultTransform() {
-  return this.__zoom || identity;
-}
-
-function defaultWheelDelta(event) {
-  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);
-}
-
-function defaultTouchable() {
-  return navigator.maxTouchPoints || ("ontouchstart" in this);
-}
-
-function defaultConstrain(transform, extent, translateExtent) {
-  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
-      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
-      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
-      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
-  return transform.translate(
-    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
-    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
-  );
-}
-
-function zoom() {
-  var filter = defaultFilter,
-      extent = defaultExtent,
-      constrain = defaultConstrain,
-      wheelDelta = defaultWheelDelta,
-      touchable = defaultTouchable,
-      scaleExtent = [0, Infinity],
-      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
-      duration = 250,
-      interpolate = interpolateZoom,
-      listeners = dispatch("start", "zoom", "end"),
-      touchstarting,
-      touchfirst,
-      touchending,
-      touchDelay = 500,
-      wheelDelay = 150,
-      clickDistance2 = 0,
-      tapDistance = 10;
-
-  function zoom(selection) {
-    selection
-        .property("__zoom", defaultTransform)
-        .on("wheel.zoom", wheeled, {passive: false})
-        .on("mousedown.zoom", mousedowned)
-        .on("dblclick.zoom", dblclicked)
-      .filter(touchable)
-        .on("touchstart.zoom", touchstarted)
-        .on("touchmove.zoom", touchmoved)
-        .on("touchend.zoom touchcancel.zoom", touchended)
-        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
-  }
-
-  zoom.transform = function(collection, transform, point, event) {
-    var selection = collection.selection ? collection.selection() : collection;
-    selection.property("__zoom", defaultTransform);
-    if (collection !== selection) {
-      schedule(collection, transform, point, event);
-    } else {
-      selection.interrupt().each(function() {
-        gesture(this, arguments)
-          .event(event)
-          .start()
-          .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
-          .end();
-      });
-    }
-  };
-
-  zoom.scaleBy = function(selection, k, p, event) {
-    zoom.scaleTo(selection, function() {
-      var k0 = this.__zoom.k,
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return k0 * k1;
-    }, p, event);
-  };
-
-  zoom.scaleTo = function(selection, k, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t0 = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
-          p1 = t0.invert(p0),
-          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
-      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
-    }, p, event);
-  };
-
-  zoom.translateBy = function(selection, x, y, event) {
-    zoom.transform(selection, function() {
-      return constrain(this.__zoom.translate(
-        typeof x === "function" ? x.apply(this, arguments) : x,
-        typeof y === "function" ? y.apply(this, arguments) : y
-      ), extent.apply(this, arguments), translateExtent);
-    }, null, event);
-  };
-
-  zoom.translateTo = function(selection, x, y, p, event) {
-    zoom.transform(selection, function() {
-      var e = extent.apply(this, arguments),
-          t = this.__zoom,
-          p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
-      return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(
-        typeof x === "function" ? -x.apply(this, arguments) : -x,
-        typeof y === "function" ? -y.apply(this, arguments) : -y
-      ), e, translateExtent);
-    }, p, event);
-  };
-
-  function scale(transform, k) {
-    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
-    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
-  }
-
-  function translate(transform, p0, p1) {
-    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
-    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
-  }
-
-  function centroid(extent) {
-    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
-  }
-
-  function schedule(transition, transform, point, event) {
-    transition
-        .on("start.zoom", function() { gesture(this, arguments).event(event).start(); })
-        .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); })
-        .tween("zoom", function() {
-          var that = this,
-              args = arguments,
-              g = gesture(that, args).event(event),
-              e = extent.apply(that, args),
-              p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
-              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
-              a = that.__zoom,
-              b = typeof transform === "function" ? transform.apply(that, args) : transform,
-              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
-          return function(t) {
-            if (t === 1) t = b; // Avoid rounding error on end.
-            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
-            g.zoom(null, t);
-          };
-        });
-  }
-
-  function gesture(that, args, clean) {
-    return (!clean && that.__zooming) || new Gesture(that, args);
-  }
-
-  function Gesture(that, args) {
-    this.that = that;
-    this.args = args;
-    this.active = 0;
-    this.sourceEvent = null;
-    this.extent = extent.apply(that, args);
-    this.taps = 0;
-  }
-
-  Gesture.prototype = {
-    event: function(event) {
-      if (event) this.sourceEvent = event;
-      return this;
-    },
-    start: function() {
-      if (++this.active === 1) {
-        this.that.__zooming = this;
-        this.emit("start");
-      }
-      return this;
-    },
-    zoom: function(key, transform) {
-      if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
-      if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
-      if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
-      this.that.__zoom = transform;
-      this.emit("zoom");
-      return this;
-    },
-    end: function() {
-      if (--this.active === 0) {
-        delete this.that.__zooming;
-        this.emit("end");
-      }
-      return this;
-    },
-    emit: function(type) {
-      var d = select(this.that).datum();
-      listeners.call(
-        type,
-        this.that,
-        new ZoomEvent(type, {
-          sourceEvent: this.sourceEvent,
-          target: zoom,
-          type,
-          transform: this.that.__zoom,
-          dispatch: listeners
-        }),
-        d
-      );
-    }
-  };
-
-  function wheeled(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var g = gesture(this, args).event(event),
-        t = this.__zoom,
-        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
-        p = pointer(event);
-
-    // If the mouse is in the same location as before, reuse it.
-    // If there were recent wheel events, reset the wheel idle timeout.
-    if (g.wheel) {
-      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
-        g.mouse[1] = t.invert(g.mouse[0] = p);
-      }
-      clearTimeout(g.wheel);
-    }
-
-    // If this wheel event won’t trigger a transform change, ignore it.
-    else if (t.k === k) return;
-
-    // Otherwise, capture the mouse point and location at the start.
-    else {
-      g.mouse = [p, t.invert(p)];
-      interrupt(this);
-      g.start();
-    }
-
-    noevent(event);
-    g.wheel = setTimeout(wheelidled, wheelDelay);
-    g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
-
-    function wheelidled() {
-      g.wheel = null;
-      g.end();
-    }
-  }
-
-  function mousedowned(event, ...args) {
-    if (touchending || !filter.apply(this, arguments)) return;
-    var currentTarget = event.currentTarget,
-        g = gesture(this, args, true).event(event),
-        v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
-        p = pointer(event, currentTarget),
-        x0 = event.clientX,
-        y0 = event.clientY;
-
-    dragDisable(event.view);
-    nopropagation(event);
-    g.mouse = [p, this.__zoom.invert(p)];
-    interrupt(this);
-    g.start();
-
-    function mousemoved(event) {
-      noevent(event);
-      if (!g.moved) {
-        var dx = event.clientX - x0, dy = event.clientY - y0;
-        g.moved = dx * dx + dy * dy > clickDistance2;
-      }
-      g.event(event)
-       .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));
-    }
-
-    function mouseupped(event) {
-      v.on("mousemove.zoom mouseup.zoom", null);
-      yesdrag(event.view, g.moved);
-      noevent(event);
-      g.event(event).end();
-    }
-  }
-
-  function dblclicked(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var t0 = this.__zoom,
-        p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),
-        p1 = t0.invert(p0),
-        k1 = t0.k * (event.shiftKey ? 0.5 : 2),
-        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
-
-    noevent(event);
-    if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);
-    else select(this).call(zoom.transform, t1, p0, event);
-  }
-
-  function touchstarted(event, ...args) {
-    if (!filter.apply(this, arguments)) return;
-    var touches = event.touches,
-        n = touches.length,
-        g = gesture(this, args, event.changedTouches.length === n).event(event),
-        started, i, t, p;
-
-    nopropagation(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = pointer(t, this);
-      p = [p, this.__zoom.invert(p), t.identifier];
-      if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
-      else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
-    }
-
-    if (touchstarting) touchstarting = clearTimeout(touchstarting);
-
-    if (started) {
-      if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
-      interrupt(this);
-      g.start();
-    }
-  }
-
-  function touchmoved(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t, p, l;
-
-    noevent(event);
-    for (i = 0; i < n; ++i) {
-      t = touches[i], p = pointer(t, this);
-      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
-      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
-    }
-    t = g.that.__zoom;
-    if (g.touch1) {
-      var p0 = g.touch0[0], l0 = g.touch0[1],
-          p1 = g.touch1[0], l1 = g.touch1[1],
-          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
-          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
-      t = scale(t, Math.sqrt(dp / dl));
-      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
-      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
-    }
-    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
-    else return;
-
-    g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
-  }
-
-  function touchended(event, ...args) {
-    if (!this.__zooming) return;
-    var g = gesture(this, args).event(event),
-        touches = event.changedTouches,
-        n = touches.length, i, t;
-
-    nopropagation(event);
-    if (touchending) clearTimeout(touchending);
-    touchending = setTimeout(function() { touchending = null; }, touchDelay);
-    for (i = 0; i < n; ++i) {
-      t = touches[i];
-      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
-      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
-    }
-    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
-    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
-    else {
-      g.end();
-      // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
-      if (g.taps === 2) {
-        t = pointer(t, this);
-        if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
-          var p = select(this).on("dblclick.zoom");
-          if (p) p.apply(this, arguments);
-        }
-      }
-    }
-  }
-
-  zoom.wheelDelta = function(_) {
-    return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
-  };
-
-  zoom.filter = function(_) {
-    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
-  };
-
-  zoom.touchable = function(_) {
-    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
-  };
-
-  zoom.extent = function(_) {
-    return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
-  };
-
-  zoom.scaleExtent = function(_) {
-    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
-  };
-
-  zoom.translateExtent = function(_) {
-    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
-  };
-
-  zoom.constrain = function(_) {
-    return arguments.length ? (constrain = _, zoom) : constrain;
-  };
-
-  zoom.duration = function(_) {
-    return arguments.length ? (duration = +_, zoom) : duration;
-  };
-
-  zoom.interpolate = function(_) {
-    return arguments.length ? (interpolate = _, zoom) : interpolate;
-  };
-
-  zoom.on = function() {
-    var value = listeners.on.apply(listeners, arguments);
-    return value === listeners ? zoom : value;
-  };
-
-  zoom.clickDistance = function(_) {
-    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
-  };
-
-  zoom.tapDistance = function(_) {
-    return arguments.length ? (tapDistance = +_, zoom) : tapDistance;
-  };
-
-  return zoom;
-}
-
-exports.Adder = Adder;
-exports.Delaunay = Delaunay;
-exports.FormatSpecifier = FormatSpecifier;
-exports.InternMap = InternMap;
-exports.InternSet = InternSet;
-exports.Node = Node$1;
-exports.Path = Path$1;
-exports.Voronoi = Voronoi;
-exports.ZoomTransform = Transform;
-exports.active = active;
-exports.arc = arc;
-exports.area = area;
-exports.areaRadial = areaRadial;
-exports.ascending = ascending$3;
-exports.autoType = autoType;
-exports.axisBottom = axisBottom;
-exports.axisLeft = axisLeft;
-exports.axisRight = axisRight;
-exports.axisTop = axisTop;
-exports.bin = bin;
-exports.bisect = bisect;
-exports.bisectCenter = bisectCenter;
-exports.bisectLeft = bisectLeft;
-exports.bisectRight = bisectRight;
-exports.bisector = bisector;
-exports.blob = blob;
-exports.blur = blur;
-exports.blur2 = blur2;
-exports.blurImage = blurImage;
-exports.brush = brush;
-exports.brushSelection = brushSelection;
-exports.brushX = brushX;
-exports.brushY = brushY;
-exports.buffer = buffer;
-exports.chord = chord;
-exports.chordDirected = chordDirected;
-exports.chordTranspose = chordTranspose;
-exports.cluster = cluster;
-exports.color = color;
-exports.contourDensity = density;
-exports.contours = Contours;
-exports.count = count$1;
-exports.create = create$1;
-exports.creator = creator;
-exports.cross = cross$2;
-exports.csv = csv;
-exports.csvFormat = csvFormat;
-exports.csvFormatBody = csvFormatBody;
-exports.csvFormatRow = csvFormatRow;
-exports.csvFormatRows = csvFormatRows;
-exports.csvFormatValue = csvFormatValue;
-exports.csvParse = csvParse;
-exports.csvParseRows = csvParseRows;
-exports.cubehelix = cubehelix$3;
-exports.cumsum = cumsum;
-exports.curveBasis = basis;
-exports.curveBasisClosed = basisClosed;
-exports.curveBasisOpen = basisOpen;
-exports.curveBumpX = bumpX;
-exports.curveBumpY = bumpY;
-exports.curveBundle = bundle;
-exports.curveCardinal = cardinal;
-exports.curveCardinalClosed = cardinalClosed;
-exports.curveCardinalOpen = cardinalOpen;
-exports.curveCatmullRom = catmullRom;
-exports.curveCatmullRomClosed = catmullRomClosed;
-exports.curveCatmullRomOpen = catmullRomOpen;
-exports.curveLinear = curveLinear;
-exports.curveLinearClosed = linearClosed;
-exports.curveMonotoneX = monotoneX;
-exports.curveMonotoneY = monotoneY;
-exports.curveNatural = natural;
-exports.curveStep = step;
-exports.curveStepAfter = stepAfter;
-exports.curveStepBefore = stepBefore;
-exports.descending = descending$2;
-exports.deviation = deviation;
-exports.difference = difference;
-exports.disjoint = disjoint;
-exports.dispatch = dispatch;
-exports.drag = drag;
-exports.dragDisable = dragDisable;
-exports.dragEnable = yesdrag;
-exports.dsv = dsv;
-exports.dsvFormat = dsvFormat;
-exports.easeBack = backInOut;
-exports.easeBackIn = backIn;
-exports.easeBackInOut = backInOut;
-exports.easeBackOut = backOut;
-exports.easeBounce = bounceOut;
-exports.easeBounceIn = bounceIn;
-exports.easeBounceInOut = bounceInOut;
-exports.easeBounceOut = bounceOut;
-exports.easeCircle = circleInOut;
-exports.easeCircleIn = circleIn;
-exports.easeCircleInOut = circleInOut;
-exports.easeCircleOut = circleOut;
-exports.easeCubic = cubicInOut;
-exports.easeCubicIn = cubicIn;
-exports.easeCubicInOut = cubicInOut;
-exports.easeCubicOut = cubicOut;
-exports.easeElastic = elasticOut;
-exports.easeElasticIn = elasticIn;
-exports.easeElasticInOut = elasticInOut;
-exports.easeElasticOut = elasticOut;
-exports.easeExp = expInOut;
-exports.easeExpIn = expIn;
-exports.easeExpInOut = expInOut;
-exports.easeExpOut = expOut;
-exports.easeLinear = linear$1;
-exports.easePoly = polyInOut;
-exports.easePolyIn = polyIn;
-exports.easePolyInOut = polyInOut;
-exports.easePolyOut = polyOut;
-exports.easeQuad = quadInOut;
-exports.easeQuadIn = quadIn;
-exports.easeQuadInOut = quadInOut;
-exports.easeQuadOut = quadOut;
-exports.easeSin = sinInOut;
-exports.easeSinIn = sinIn;
-exports.easeSinInOut = sinInOut;
-exports.easeSinOut = sinOut;
-exports.every = every;
-exports.extent = extent$1;
-exports.fcumsum = fcumsum;
-exports.filter = filter$1;
-exports.flatGroup = flatGroup;
-exports.flatRollup = flatRollup;
-exports.forceCenter = center;
-exports.forceCollide = collide;
-exports.forceLink = link$2;
-exports.forceManyBody = manyBody;
-exports.forceRadial = radial$1;
-exports.forceSimulation = simulation;
-exports.forceX = x$1;
-exports.forceY = y$1;
-exports.formatDefaultLocale = defaultLocale$1;
-exports.formatLocale = formatLocale$1;
-exports.formatSpecifier = formatSpecifier;
-exports.fsum = fsum;
-exports.geoAlbers = albers;
-exports.geoAlbersUsa = albersUsa;
-exports.geoArea = area$2;
-exports.geoAzimuthalEqualArea = azimuthalEqualArea;
-exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;
-exports.geoAzimuthalEquidistant = azimuthalEquidistant;
-exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;
-exports.geoBounds = bounds;
-exports.geoCentroid = centroid$1;
-exports.geoCircle = circle$1;
-exports.geoClipAntimeridian = clipAntimeridian;
-exports.geoClipCircle = clipCircle;
-exports.geoClipExtent = extent;
-exports.geoClipRectangle = clipRectangle;
-exports.geoConicConformal = conicConformal;
-exports.geoConicConformalRaw = conicConformalRaw;
-exports.geoConicEqualArea = conicEqualArea;
-exports.geoConicEqualAreaRaw = conicEqualAreaRaw;
-exports.geoConicEquidistant = conicEquidistant;
-exports.geoConicEquidistantRaw = conicEquidistantRaw;
-exports.geoContains = contains$1;
-exports.geoDistance = distance;
-exports.geoEqualEarth = equalEarth;
-exports.geoEqualEarthRaw = equalEarthRaw;
-exports.geoEquirectangular = equirectangular;
-exports.geoEquirectangularRaw = equirectangularRaw;
-exports.geoGnomonic = gnomonic;
-exports.geoGnomonicRaw = gnomonicRaw;
-exports.geoGraticule = graticule;
-exports.geoGraticule10 = graticule10;
-exports.geoIdentity = identity$4;
-exports.geoInterpolate = interpolate;
-exports.geoLength = length$1;
-exports.geoMercator = mercator;
-exports.geoMercatorRaw = mercatorRaw;
-exports.geoNaturalEarth1 = naturalEarth1;
-exports.geoNaturalEarth1Raw = naturalEarth1Raw;
-exports.geoOrthographic = orthographic;
-exports.geoOrthographicRaw = orthographicRaw;
-exports.geoPath = index$2;
-exports.geoProjection = projection;
-exports.geoProjectionMutator = projectionMutator;
-exports.geoRotation = rotation;
-exports.geoStereographic = stereographic;
-exports.geoStereographicRaw = stereographicRaw;
-exports.geoStream = geoStream;
-exports.geoTransform = transform$1;
-exports.geoTransverseMercator = transverseMercator;
-exports.geoTransverseMercatorRaw = transverseMercatorRaw;
-exports.gray = gray;
-exports.greatest = greatest;
-exports.greatestIndex = greatestIndex;
-exports.group = group;
-exports.groupSort = groupSort;
-exports.groups = groups;
-exports.hcl = hcl$2;
-exports.hierarchy = hierarchy;
-exports.histogram = bin;
-exports.hsl = hsl$2;
-exports.html = html;
-exports.image = image;
-exports.index = index$4;
-exports.indexes = indexes;
-exports.interpolate = interpolate$2;
-exports.interpolateArray = array$3;
-exports.interpolateBasis = basis$2;
-exports.interpolateBasisClosed = basisClosed$1;
-exports.interpolateBlues = Blues;
-exports.interpolateBrBG = BrBG;
-exports.interpolateBuGn = BuGn;
-exports.interpolateBuPu = BuPu;
-exports.interpolateCividis = cividis;
-exports.interpolateCool = cool;
-exports.interpolateCubehelix = cubehelix$2;
-exports.interpolateCubehelixDefault = cubehelix;
-exports.interpolateCubehelixLong = cubehelixLong;
-exports.interpolateDate = date$1;
-exports.interpolateDiscrete = discrete;
-exports.interpolateGnBu = GnBu;
-exports.interpolateGreens = Greens;
-exports.interpolateGreys = Greys;
-exports.interpolateHcl = hcl$1;
-exports.interpolateHclLong = hclLong;
-exports.interpolateHsl = hsl$1;
-exports.interpolateHslLong = hslLong;
-exports.interpolateHue = hue;
-exports.interpolateInferno = inferno;
-exports.interpolateLab = lab;
-exports.interpolateMagma = magma;
-exports.interpolateNumber = interpolateNumber;
-exports.interpolateNumberArray = numberArray;
-exports.interpolateObject = object$1;
-exports.interpolateOrRd = OrRd;
-exports.interpolateOranges = Oranges;
-exports.interpolatePRGn = PRGn;
-exports.interpolatePiYG = PiYG;
-exports.interpolatePlasma = plasma;
-exports.interpolatePuBu = PuBu;
-exports.interpolatePuBuGn = PuBuGn;
-exports.interpolatePuOr = PuOr;
-exports.interpolatePuRd = PuRd;
-exports.interpolatePurples = Purples;
-exports.interpolateRainbow = rainbow;
-exports.interpolateRdBu = RdBu;
-exports.interpolateRdGy = RdGy;
-exports.interpolateRdPu = RdPu;
-exports.interpolateRdYlBu = RdYlBu;
-exports.interpolateRdYlGn = RdYlGn;
-exports.interpolateReds = Reds;
-exports.interpolateRgb = interpolateRgb;
-exports.interpolateRgbBasis = rgbBasis;
-exports.interpolateRgbBasisClosed = rgbBasisClosed;
-exports.interpolateRound = interpolateRound;
-exports.interpolateSinebow = sinebow;
-exports.interpolateSpectral = Spectral;
-exports.interpolateString = interpolateString;
-exports.interpolateTransformCss = interpolateTransformCss;
-exports.interpolateTransformSvg = interpolateTransformSvg;
-exports.interpolateTurbo = turbo;
-exports.interpolateViridis = viridis;
-exports.interpolateWarm = warm;
-exports.interpolateYlGn = YlGn;
-exports.interpolateYlGnBu = YlGnBu;
-exports.interpolateYlOrBr = YlOrBr;
-exports.interpolateYlOrRd = YlOrRd;
-exports.interpolateZoom = interpolateZoom;
-exports.interrupt = interrupt;
-exports.intersection = intersection;
-exports.interval = interval;
-exports.isoFormat = formatIso$1;
-exports.isoParse = parseIso$1;
-exports.json = json;
-exports.lab = lab$1;
-exports.lch = lch;
-exports.least = least;
-exports.leastIndex = leastIndex;
-exports.line = line;
-exports.lineRadial = lineRadial$1;
-exports.link = link;
-exports.linkHorizontal = linkHorizontal;
-exports.linkRadial = linkRadial;
-exports.linkVertical = linkVertical;
-exports.local = local$1;
-exports.map = map$1;
-exports.matcher = matcher;
-exports.max = max$3;
-exports.maxIndex = maxIndex;
-exports.mean = mean;
-exports.median = median;
-exports.medianIndex = medianIndex;
-exports.merge = merge;
-exports.min = min$2;
-exports.minIndex = minIndex;
-exports.mode = mode;
-exports.namespace = namespace;
-exports.namespaces = namespaces;
-exports.nice = nice$1;
-exports.now = now;
-exports.pack = index$1;
-exports.packEnclose = enclose;
-exports.packSiblings = siblings;
-exports.pairs = pairs;
-exports.partition = partition;
-exports.path = path;
-exports.pathRound = pathRound;
-exports.permute = permute;
-exports.pie = pie;
-exports.piecewise = piecewise;
-exports.pointRadial = pointRadial;
-exports.pointer = pointer;
-exports.pointers = pointers;
-exports.polygonArea = area$1;
-exports.polygonCentroid = centroid;
-exports.polygonContains = contains;
-exports.polygonHull = hull;
-exports.polygonLength = length;
-exports.precisionFixed = precisionFixed;
-exports.precisionPrefix = precisionPrefix;
-exports.precisionRound = precisionRound;
-exports.quadtree = quadtree;
-exports.quantile = quantile$1;
-exports.quantileIndex = quantileIndex;
-exports.quantileSorted = quantileSorted;
-exports.quantize = quantize$1;
-exports.quickselect = quickselect;
-exports.radialArea = areaRadial;
-exports.radialLine = lineRadial$1;
-exports.randomBates = bates;
-exports.randomBernoulli = bernoulli;
-exports.randomBeta = beta;
-exports.randomBinomial = binomial;
-exports.randomCauchy = cauchy;
-exports.randomExponential = exponential;
-exports.randomGamma = gamma;
-exports.randomGeometric = geometric;
-exports.randomInt = int;
-exports.randomIrwinHall = irwinHall;
-exports.randomLcg = lcg;
-exports.randomLogNormal = logNormal;
-exports.randomLogistic = logistic;
-exports.randomNormal = normal;
-exports.randomPareto = pareto;
-exports.randomPoisson = poisson;
-exports.randomUniform = uniform;
-exports.randomWeibull = weibull;
-exports.range = range$2;
-exports.rank = rank;
-exports.reduce = reduce;
-exports.reverse = reverse$1;
-exports.rgb = rgb;
-exports.ribbon = ribbon$1;
-exports.ribbonArrow = ribbonArrow;
-exports.rollup = rollup;
-exports.rollups = rollups;
-exports.scaleBand = band;
-exports.scaleDiverging = diverging$1;
-exports.scaleDivergingLog = divergingLog;
-exports.scaleDivergingPow = divergingPow;
-exports.scaleDivergingSqrt = divergingSqrt;
-exports.scaleDivergingSymlog = divergingSymlog;
-exports.scaleIdentity = identity$2;
-exports.scaleImplicit = implicit;
-exports.scaleLinear = linear;
-exports.scaleLog = log;
-exports.scaleOrdinal = ordinal;
-exports.scalePoint = point$4;
-exports.scalePow = pow;
-exports.scaleQuantile = quantile;
-exports.scaleQuantize = quantize;
-exports.scaleRadial = radial;
-exports.scaleSequential = sequential;
-exports.scaleSequentialLog = sequentialLog;
-exports.scaleSequentialPow = sequentialPow;
-exports.scaleSequentialQuantile = sequentialQuantile;
-exports.scaleSequentialSqrt = sequentialSqrt;
-exports.scaleSequentialSymlog = sequentialSymlog;
-exports.scaleSqrt = sqrt$1;
-exports.scaleSymlog = symlog;
-exports.scaleThreshold = threshold;
-exports.scaleTime = time;
-exports.scaleUtc = utcTime;
-exports.scan = scan;
-exports.schemeAccent = Accent;
-exports.schemeBlues = scheme$5;
-exports.schemeBrBG = scheme$q;
-exports.schemeBuGn = scheme$h;
-exports.schemeBuPu = scheme$g;
-exports.schemeCategory10 = category10;
-exports.schemeDark2 = Dark2;
-exports.schemeGnBu = scheme$f;
-exports.schemeGreens = scheme$4;
-exports.schemeGreys = scheme$3;
-exports.schemeObservable10 = observable10;
-exports.schemeOrRd = scheme$e;
-exports.schemeOranges = scheme;
-exports.schemePRGn = scheme$p;
-exports.schemePaired = Paired;
-exports.schemePastel1 = Pastel1;
-exports.schemePastel2 = Pastel2;
-exports.schemePiYG = scheme$o;
-exports.schemePuBu = scheme$c;
-exports.schemePuBuGn = scheme$d;
-exports.schemePuOr = scheme$n;
-exports.schemePuRd = scheme$b;
-exports.schemePurples = scheme$2;
-exports.schemeRdBu = scheme$m;
-exports.schemeRdGy = scheme$l;
-exports.schemeRdPu = scheme$a;
-exports.schemeRdYlBu = scheme$k;
-exports.schemeRdYlGn = scheme$j;
-exports.schemeReds = scheme$1;
-exports.schemeSet1 = Set1;
-exports.schemeSet2 = Set2;
-exports.schemeSet3 = Set3;
-exports.schemeSpectral = scheme$i;
-exports.schemeTableau10 = Tableau10;
-exports.schemeYlGn = scheme$8;
-exports.schemeYlGnBu = scheme$9;
-exports.schemeYlOrBr = scheme$7;
-exports.schemeYlOrRd = scheme$6;
-exports.select = select;
-exports.selectAll = selectAll;
-exports.selection = selection;
-exports.selector = selector;
-exports.selectorAll = selectorAll;
-exports.shuffle = shuffle$1;
-exports.shuffler = shuffler;
-exports.some = some;
-exports.sort = sort;
-exports.stack = stack;
-exports.stackOffsetDiverging = diverging;
-exports.stackOffsetExpand = expand;
-exports.stackOffsetNone = none$1;
-exports.stackOffsetSilhouette = silhouette;
-exports.stackOffsetWiggle = wiggle;
-exports.stackOrderAppearance = appearance;
-exports.stackOrderAscending = ascending;
-exports.stackOrderDescending = descending;
-exports.stackOrderInsideOut = insideOut;
-exports.stackOrderNone = none;
-exports.stackOrderReverse = reverse;
-exports.stratify = stratify;
-exports.style = styleValue;
-exports.subset = subset;
-exports.sum = sum$2;
-exports.superset = superset;
-exports.svg = svg;
-exports.symbol = Symbol$1;
-exports.symbolAsterisk = asterisk;
-exports.symbolCircle = circle;
-exports.symbolCross = cross;
-exports.symbolDiamond = diamond;
-exports.symbolDiamond2 = diamond2;
-exports.symbolPlus = plus;
-exports.symbolSquare = square;
-exports.symbolSquare2 = square2;
-exports.symbolStar = star;
-exports.symbolTimes = times;
-exports.symbolTriangle = triangle;
-exports.symbolTriangle2 = triangle2;
-exports.symbolWye = wye;
-exports.symbolX = times;
-exports.symbols = symbolsFill;
-exports.symbolsFill = symbolsFill;
-exports.symbolsStroke = symbolsStroke;
-exports.text = text;
-exports.thresholdFreedmanDiaconis = thresholdFreedmanDiaconis;
-exports.thresholdScott = thresholdScott;
-exports.thresholdSturges = thresholdSturges;
-exports.tickFormat = tickFormat;
-exports.tickIncrement = tickIncrement;
-exports.tickStep = tickStep;
-exports.ticks = ticks;
-exports.timeDay = timeDay;
-exports.timeDays = timeDays;
-exports.timeFormatDefaultLocale = defaultLocale;
-exports.timeFormatLocale = formatLocale;
-exports.timeFriday = timeFriday;
-exports.timeFridays = timeFridays;
-exports.timeHour = timeHour;
-exports.timeHours = timeHours;
-exports.timeInterval = timeInterval;
-exports.timeMillisecond = millisecond;
-exports.timeMilliseconds = milliseconds;
-exports.timeMinute = timeMinute;
-exports.timeMinutes = timeMinutes;
-exports.timeMonday = timeMonday;
-exports.timeMondays = timeMondays;
-exports.timeMonth = timeMonth;
-exports.timeMonths = timeMonths;
-exports.timeSaturday = timeSaturday;
-exports.timeSaturdays = timeSaturdays;
-exports.timeSecond = second;
-exports.timeSeconds = seconds;
-exports.timeSunday = timeSunday;
-exports.timeSundays = timeSundays;
-exports.timeThursday = timeThursday;
-exports.timeThursdays = timeThursdays;
-exports.timeTickInterval = timeTickInterval;
-exports.timeTicks = timeTicks;
-exports.timeTuesday = timeTuesday;
-exports.timeTuesdays = timeTuesdays;
-exports.timeWednesday = timeWednesday;
-exports.timeWednesdays = timeWednesdays;
-exports.timeWeek = timeSunday;
-exports.timeWeeks = timeSundays;
-exports.timeYear = timeYear;
-exports.timeYears = timeYears;
-exports.timeout = timeout;
-exports.timer = timer;
-exports.timerFlush = timerFlush;
-exports.transition = transition;
-exports.transpose = transpose;
-exports.tree = tree;
-exports.treemap = index;
-exports.treemapBinary = binary;
-exports.treemapDice = treemapDice;
-exports.treemapResquarify = resquarify;
-exports.treemapSlice = treemapSlice;
-exports.treemapSliceDice = sliceDice;
-exports.treemapSquarify = squarify;
-exports.tsv = tsv;
-exports.tsvFormat = tsvFormat;
-exports.tsvFormatBody = tsvFormatBody;
-exports.tsvFormatRow = tsvFormatRow;
-exports.tsvFormatRows = tsvFormatRows;
-exports.tsvFormatValue = tsvFormatValue;
-exports.tsvParse = tsvParse;
-exports.tsvParseRows = tsvParseRows;
-exports.union = union;
-exports.unixDay = unixDay;
-exports.unixDays = unixDays;
-exports.utcDay = utcDay;
-exports.utcDays = utcDays;
-exports.utcFriday = utcFriday;
-exports.utcFridays = utcFridays;
-exports.utcHour = utcHour;
-exports.utcHours = utcHours;
-exports.utcMillisecond = millisecond;
-exports.utcMilliseconds = milliseconds;
-exports.utcMinute = utcMinute;
-exports.utcMinutes = utcMinutes;
-exports.utcMonday = utcMonday;
-exports.utcMondays = utcMondays;
-exports.utcMonth = utcMonth;
-exports.utcMonths = utcMonths;
-exports.utcSaturday = utcSaturday;
-exports.utcSaturdays = utcSaturdays;
-exports.utcSecond = second;
-exports.utcSeconds = seconds;
-exports.utcSunday = utcSunday;
-exports.utcSundays = utcSundays;
-exports.utcThursday = utcThursday;
-exports.utcThursdays = utcThursdays;
-exports.utcTickInterval = utcTickInterval;
-exports.utcTicks = utcTicks;
-exports.utcTuesday = utcTuesday;
-exports.utcTuesdays = utcTuesdays;
-exports.utcWednesday = utcWednesday;
-exports.utcWednesdays = utcWednesdays;
-exports.utcWeek = utcSunday;
-exports.utcWeeks = utcSundays;
-exports.utcYear = utcYear;
-exports.utcYears = utcYears;
-exports.variance = variance;
-exports.version = version;
-exports.window = defaultView;
-exports.xml = xml;
-exports.zip = zip;
-exports.zoom = zoom;
-exports.zoomIdentity = identity;
-exports.zoomTransform = transform;
-
-}));
Index: de_modules/d3/dist/d3.min.js
===================================================================
--- node_modules/d3/dist/d3.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://d3js.org v7.9.0 Copyright 2010-2023 Mike Bostock
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function e(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function r(t){let r,o,a;function u(t,n,e=0,i=t.length){if(e<i){if(0!==r(n,n))return i;do{const r=e+i>>>1;o(t[r],n)<0?e=r+1:i=r}while(e<i)}return e}return 2!==t.length?(r=n,o=(e,r)=>n(t(e),r),a=(n,e)=>t(n)-e):(r=t===n||t===e?t:i,o=t,a=t),{left:u,center:function(t,n,e=0,r=t.length){const i=u(t,n,e,r-1);return i>e&&a(t[i-1],n)>-a(t[i],n)?i-1:i},right:function(t,n,e=0,i=t.length){if(e<i){if(0!==r(n,n))return i;do{const r=e+i>>>1;o(t[r],n)<=0?e=r+1:i=r}while(e<i)}return e}}}function i(){return 0}function o(t){return null===t?NaN:+t}const a=r(n),u=a.right,c=a.left,f=r(o).center;var s=u;const l=d(y),h=d((function(t){const n=y(t);return(t,e,r,i,o)=>{n(t,e,(r<<=2)+0,(i<<=2)+0,o<<=2),n(t,e,r+1,i+1,o),n(t,e,r+2,i+2,o),n(t,e,r+3,i+3,o)}}));function d(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=n;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!e&&!r)return n;const u=e&&t(e),c=r&&t(r),f=i.slice();return u&&c?(p(u,f,i,o,a),p(u,i,f,o,a),p(u,f,i,o,a),g(c,i,f,o,a),g(c,f,i,o,a),g(c,i,f,o,a)):u?(p(u,i,f,o,a),p(u,f,i,o,a),p(u,i,f,o,a)):c&&(g(c,i,f,o,a),g(c,f,i,o,a),g(c,i,f,o,a)),n}}function p(t,n,e,r,i){for(let o=0,a=r*i;o<a;)t(n,e,o,o+=r,1)}function g(t,n,e,r,i){for(let o=0,a=r*i;o<r;++o)t(n,e,o,o+a,r)}function y(t){const n=Math.floor(t);if(n===t)return function(t){const n=2*t+1;return(e,r,i,o,a)=>{if(!((o-=a)>=i))return;let u=t*r[i];const c=a*t;for(let t=i,n=i+c;t<n;t+=a)u+=r[Math.min(o,t)];for(let t=i,f=o;t<=f;t+=a)u+=r[Math.min(o,t+c)],e[t]=u/n,u-=r[Math.max(i,t-c)]}}(t);const e=t-n,r=2*t+1;return(t,i,o,a,u)=>{if(!((a-=u)>=o))return;let c=n*i[o];const f=u*n,s=f+u;for(let t=o,n=o+f;t<n;t+=u)c+=i[Math.min(a,t)];for(let n=o,l=a;n<=l;n+=u)c+=i[Math.min(a,n+f)],t[n]=(c+e*(i[Math.max(o,n-s)]+i[Math.min(a,n+s)]))/r,c-=i[Math.max(o,n-f)]}}function v(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function _(t){return 0|t.length}function b(t){return!(t>0)}function m(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function x(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function w(t,n){const e=x(t,n);return e?Math.sqrt(e):e}function M(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r<n&&(r=n)));else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(void 0===e?o>=o&&(e=r=o):(e>o&&(e=o),r<o&&(r=o)))}return[e,r]}class T{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const i=n[r],o=t+i,a=Math.abs(t)<Math.abs(i)?t-(o-i):i-(o-t);a&&(n[e++]=a),t=o}return n[e]=t,this._n=e+1,this}valueOf(){const t=this._partials;let n,e,r,i=this._n,o=0;if(i>0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class InternMap extends Map{constructor(t,n=N){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(A(this,t))}has(t){return super.has(A(this,t))}set(t,n){return super.set(S(this,t),n)}delete(t){return super.delete(E(this,t))}}class InternSet extends Set{constructor(t,n=N){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(A(this,t))}add(t){return super.add(S(this,t))}delete(t){return super.delete(E(this,t))}}function A({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function S({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function E({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(r),t.delete(r)),e}function N(t){return null!==t&&"object"==typeof t?t.valueOf():t}function k(t){return t}function C(t,...n){return F(t,k,k,n)}function P(t,...n){return F(t,Array.from,k,n)}function z(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function $(t,n,...e){return F(t,k,n,e)}function D(t,n,...e){return F(t,Array.from,n,e)}function R(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function F(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new InternMap,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function q(t,n){return Array.from(n,(n=>t[n]))}function U(t,...n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));return n.length>1?(n=n.map((n=>t.map(n))),r.sort(((t,e)=>{for(const r of n){const n=O(r[t],r[e]);if(n)return n}}))):(e=t.map(e),r.sort(((t,n)=>O(e[t],e[n])))),q(t,r)}return t.sort(I(e))}function I(t=n){if(t===n)return O;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function O(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}var B=Array.prototype.slice;function Y(t){return()=>t}const L=Math.sqrt(50),j=Math.sqrt(10),H=Math.sqrt(2);function X(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=L?10:o>=j?5:o>=H?2:1;let u,c,f;return i<0?(f=Math.pow(10,-i)/a,u=Math.round(t*f),c=Math.round(n*f),u/f<t&&++u,c/f>n&&--c,f=-f):(f=Math.pow(10,i)*a,u=Math.round(t/f),c=Math.round(n/f),u*f<t&&++u,c*f>n&&--c),c<u&&.5<=e&&e<2?X(t,n,2*e):[u,c,f]}function G(t,n,e){if(!((e=+e)>0))return[];if((t=+t)===(n=+n))return[t];const r=n<t,[i,o,a]=r?X(n,t,e):X(t,n,e);if(!(o>=i))return[];const u=o-i+1,c=new Array(u);if(r)if(a<0)for(let t=0;t<u;++t)c[t]=(o-t)/-a;else for(let t=0;t<u;++t)c[t]=(o-t)*a;else if(a<0)for(let t=0;t<u;++t)c[t]=(i+t)/-a;else for(let t=0;t<u;++t)c[t]=(i+t)*a;return c}function V(t,n,e){return X(t=+t,n=+n,e=+e)[2]}function W(t,n,e){e=+e;const r=(n=+n)<(t=+t),i=r?V(n,t,e):V(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function Z(t,n,e){let r;for(;;){const i=V(t,n,e);if(i===r||0===i||!isFinite(i))return[t,n];i>0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function K(t){return Math.max(1,Math.ceil(Math.log(v(t))/Math.LN2)+1)}function Q(){var t=k,n=M,e=K;function r(r){Array.isArray(r)||(r=Array.from(r));var i,o,a,u=r.length,c=new Array(u);for(i=0;i<u;++i)c[i]=t(r[i],i,r);var f=n(c),l=f[0],h=f[1],d=e(c,l,h);if(!Array.isArray(d)){const t=h,e=+d;if(n===M&&([l,h]=Z(l,h,e)),(d=G(l,h,e))[0]<=l&&(a=V(l,h,e)),d[d.length-1]>=h)if(t>=h&&n===M){const t=V(l,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}for(var p=d.length,g=0,y=p;d[g]<=l;)++g;for(;d[y-1]>h;)--y;(g||y<p)&&(d=d.slice(g,y),p=y-g);var v,_=new Array(p+1);for(i=0;i<=p;++i)(v=_[i]=[]).x0=i>0?d[i-1]:l,v.x1=i<p?d[i]:h;if(isFinite(a)){if(a>0)for(i=0;i<u;++i)null!=(o=c[i])&&l<=o&&o<=h&&_[Math.min(p,Math.floor((o-l)/a))].push(r[i]);else if(a<0)for(i=0;i<u;++i)if(null!=(o=c[i])&&l<=o&&o<=h){const t=Math.floor((l-o)*a);_[Math.min(p,t+(d[t]<=o))].push(r[i])}}else for(i=0;i<u;++i)null!=(o=c[i])&&l<=o&&o<=h&&_[s(d,o,0,p)].push(r[i]);return _}return r.value=function(n){return arguments.length?(t="function"==typeof n?n:Y(n),r):t},r.domain=function(t){return arguments.length?(n="function"==typeof t?t:Y([t[0],t[1]]),r):n},r.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Y(Array.isArray(t)?B.call(t):t),r):e},r}function J(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}function tt(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e<o||void 0===e&&o>=o)&&(e=o,r=i);return r}function nt(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function et(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function rt(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=void 0===i?O:I(i);r>e;){if(r-e>600){const o=r-e+1,a=n-e+1,u=Math.log(o),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(o-c)/o)*(a-o/2<0?-1:1);rt(t,n,Math.max(e,Math.floor(n-a*c/o+f)),Math.min(r,Math.floor(n+(o-a)*c/o+f)),i)}const o=t[n];let a=e,u=r;for(it(t,e,n),i(t[r],o)>0&&it(t,e,r);a<u;){for(it(t,a,u),++a,--u;i(t[a],o)<0;)++a;for(;i(t[u],o)>0;)--u}0===i(t[e],o)?it(t,e,u):(++u,it(t,u,r)),u<=n&&(e=u+1),n<=u&&(r=u-1)}return t}function it(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function ot(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r}function at(t,n,e){if(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e)),(r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return nt(t);if(n>=1)return J(t);var r,i=(r-1)*n,o=Math.floor(i),a=J(rt(t,o).subarray(0,o+1));return a+(nt(t.subarray(o+1))-a)*(i-o)}}function ut(t,n,e=o){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(i-a)}}function ct(t,n,e=o){if(!isNaN(n=+n)){if(r=Float64Array.from(t,((n,r)=>o(e(t[r],r,t)))),n<=0)return et(r);if(n>=1)return tt(r);var r,i=Uint32Array.from(t,((t,n)=>n)),a=r.length-1,u=Math.floor(a*n);return rt(i,u,0,a,((t,n)=>O(r[t],r[n]))),(u=ot(i.subarray(0,u+1),(t=>r[t])))>=0?u:-1}}function ft(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function st(t,n){return[t,n]}function lt(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function ht(t,e=n){if(1===e.length)return et(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)<0)&&(r=n,i=o);return i}var dt=pt(Math.random);function pt(t){return function(n,e=0,r=n.length){let i=r-(e=+e);for(;i;){const r=t()*i--|0,o=n[i+e];n[i+e]=n[r+e],n[r+e]=o}return n}}function gt(t){if(!(i=t.length))return[];for(var n=-1,e=nt(t,yt),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function yt(t){return t.length}function vt(t){return t instanceof InternSet?t:new InternSet(t)}function _t(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=bt(t);if(r.has(n))continue;let i,o;for(;({value:i,done:o}=e.next());){if(o)return!1;const t=bt(i);if(r.add(t),Object.is(n,t))break}}return!0}function bt(t){return null!==t&&"object"==typeof t?t.valueOf():t}function mt(t){return t}var xt=1,wt=2,Mt=3,Tt=4,At=1e-6;function St(t){return"translate("+t+",0)"}function Et(t){return"translate(0,"+t+")"}function Nt(t){return n=>+t(n)}function kt(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function Ct(){return!this.__axis}function Pt(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=t===xt||t===Tt?-1:1,s=t===Tt||t===wt?"x":"y",l=t===xt||t===Mt?St:Et;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):mt:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?kt:Nt)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),A=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(T),A=A.merge(T.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(T.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",t===xt?"0em":t===Mt?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),A=A.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",At).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),T.attr("opacity",At).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",t===Tt||t===wt?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),A.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(Ct).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===wt?"start":t===Tt?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:Array.from(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var zt={value:()=>{}};function $t(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Dt(r)}function Dt(t){this._=t}function Rt(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function Ft(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=zt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}Dt.prototype=$t.prototype={constructor:Dt,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=Ft(i[e],t.name,n);else if(null==n)for(e in i)i[e]=Ft(i[e],t.name,null);return this}for(;++a<u;)if((e=(t=o[a]).type)&&(e=Rt(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Dt(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var qt="http://www.w3.org/1999/xhtml",Ut={svg:"http://www.w3.org/2000/svg",xhtml:qt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function It(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Ut.hasOwnProperty(n)?{space:Ut[n],local:t}:t}function Ot(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===qt&&n.documentElement.namespaceURI===qt?n.createElement(t):n.createElementNS(e,t)}}function Bt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Yt(t){var n=It(t);return(n.local?Bt:Ot)(n)}function Lt(){}function jt(t){return null==t?Lt:function(){return this.querySelector(t)}}function Ht(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function Xt(){return[]}function Gt(t){return null==t?Xt:function(){return this.querySelectorAll(t)}}function Vt(t){return function(){return this.matches(t)}}function Wt(t){return function(n){return n.matches(t)}}var Zt=Array.prototype.find;function Kt(){return this.firstElementChild}var Qt=Array.prototype.filter;function Jt(){return Array.from(this.children)}function tn(t){return new Array(t.length)}function nn(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function en(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;u<f;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new nn(t,o[u]);for(;u<c;++u)(a=n[u])&&(i[u]=a)}function rn(t,n,e,r,i,o,a){var u,c,f,s=new Map,l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(c=n[u])&&(d[u]=f=a.call(c,c.__data__,u,n)+"",s.has(f)?i[u]=c:s.set(f,c));for(u=0;u<h;++u)f=a.call(t,o[u],u,o)+"",(c=s.get(f))?(r[u]=c,c.__data__=o[u],s.delete(f)):e[u]=new nn(t,o[u]);for(u=0;u<l;++u)(c=n[u])&&s.get(d[u])===c&&(i[u]=c)}function on(t){return t.__data__}function an(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function un(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function cn(t){return function(){this.removeAttribute(t)}}function fn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function sn(t,n){return function(){this.setAttribute(t,n)}}function ln(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function hn(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function dn(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function pn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function gn(t){return function(){this.style.removeProperty(t)}}function yn(t,n,e){return function(){this.style.setProperty(t,n,e)}}function vn(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function _n(t,n){return t.style.getPropertyValue(n)||pn(t).getComputedStyle(t,null).getPropertyValue(n)}function bn(t){return function(){delete this[t]}}function mn(t,n){return function(){this[t]=n}}function xn(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function wn(t){return t.trim().split(/^|\s+/)}function Mn(t){return t.classList||new Tn(t)}function Tn(t){this._node=t,this._names=wn(t.getAttribute("class")||"")}function An(t,n){for(var e=Mn(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function Sn(t,n){for(var e=Mn(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function En(t){return function(){An(this,t)}}function Nn(t){return function(){Sn(this,t)}}function kn(t,n){return function(){(n.apply(this,arguments)?An:Sn)(this,t)}}function Cn(){this.textContent=""}function Pn(t){return function(){this.textContent=t}}function zn(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function $n(){this.innerHTML=""}function Dn(t){return function(){this.innerHTML=t}}function Rn(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function Fn(){this.nextSibling&&this.parentNode.appendChild(this)}function qn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Un(){return null}function In(){var t=this.parentNode;t&&t.removeChild(this)}function On(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Bn(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Yn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function Ln(t,n,e){return function(){var r,i=this.__on,o=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function jn(t,n,e){var r=pn(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Hn(t,n){return function(){return jn(this,t,n)}}function Xn(t,n){return function(){return jn(this,t,n.apply(this,arguments))}}nn.prototype={constructor:nn,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Tn.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Gn=[null];function Vn(t,n){this._groups=t,this._parents=n}function Wn(){return new Vn([[document.documentElement]],Gn)}function Zn(t){return"string"==typeof t?new Vn([[document.querySelector(t)]],[document.documentElement]):new Vn([[t]],Gn)}Vn.prototype=Wn.prototype={constructor:Vn,select:function(t){"function"!=typeof t&&(t=jt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],c=u.length,f=r[i]=new Array(c),s=0;s<c;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),f[s]=a);return new Vn(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return Ht(t.apply(this,arguments))}}(t):Gt(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],c=u.length,f=0;f<c;++f)(a=u[f])&&(r.push(t.call(a,a.__data__,f,u)),i.push(a));return new Vn(r,i)},selectChild:function(t){return this.select(null==t?Kt:function(t){return function(){return Zt.call(this.children,t)}}("function"==typeof t?t:Wt(t)))},selectChildren:function(t){return this.selectAll(null==t?Jt:function(t){return function(){return Qt.call(this.children,t)}}("function"==typeof t?t:Wt(t)))},filter:function(t){"function"!=typeof t&&(t=Vt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,c=r[i]=[],f=0;f<u;++f)(o=a[f])&&t.call(o,o.__data__,f,a)&&c.push(o);return new Vn(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,on);var e=n?rn:en,r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,a=new Array(o),u=new Array(o),c=new Array(o),f=0;f<o;++f){var s=r[f],l=i[f],h=l.length,d=an(t.call(s,s&&s.__data__,f,r)),p=d.length,g=u[f]=new Array(p),y=a[f]=new Array(p);e(s,l,g,y,c[f]=new Array(h),d,n);for(var v,_,b=0,m=0;b<p;++b)if(v=g[b]){for(b>=m&&(m=b+1);!(_=y[m])&&++m<p;);v._next=_||null}}return(a=new Vn(a,r))._enter=u,a._exit=c,a},enter:function(){return new Vn(this._enter||this._groups.map(tn),this._parents)},exit:function(){return new Vn(this._exit||this._groups.map(tn),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var f,s=e[c],l=r[c],h=s.length,d=u[c]=new Array(h),p=0;p<h;++p)(f=s[p]||l[p])&&(d[p]=f);for(;c<i;++c)u[c]=e[c];return new Vn(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=un);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],c=u.length,f=i[o]=new Array(c),s=0;s<c;++s)(a=u[s])&&(f[s]=a);f.sort(n)}return new Vn(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(const n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=It(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?fn:cn:"function"==typeof n?e.local?dn:hn:e.local?ln:sn)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?gn:"function"==typeof n?vn:yn)(t,n,null==e?"":e)):_n(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?bn:"function"==typeof n?xn:mn)(t,n)):this.node()[t]},classed:function(t,n){var e=wn(t+"");if(arguments.length<2){for(var r=Mn(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?kn:n?En:Nn)(e,n))},text:function(t){return arguments.length?this.each(null==t?Cn:("function"==typeof t?zn:Pn)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?$n:("function"==typeof t?Rn:Dn)(t)):this.node().innerHTML},raise:function(){return this.each(Fn)},lower:function(){return this.each(qn)},append:function(t){var n="function"==typeof t?t:Yt(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:Yt(t),r=null==n?Un:"function"==typeof n?n:jt(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(In)},clone:function(t){return this.select(t?Bn:On)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?Ln:Yn,r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var c,f=0,s=u.length;f<s;++f)for(r=0,c=u[f];r<a;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,n){return this.each(("function"==typeof n?Xn:Hn)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var Kn=0;function Qn(){return new Jn}function Jn(){this._="@"+(++Kn).toString(36)}function te(t){let n;for(;n=t.sourceEvent;)t=n;return t}function ne(t,n){if(t=te(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}Jn.prototype=Qn.prototype={constructor:Jn,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};const ee={passive:!1},re={capture:!0,passive:!1};function ie(t){t.stopImmediatePropagation()}function oe(t){t.preventDefault(),t.stopImmediatePropagation()}function ae(t){var n=t.document.documentElement,e=Zn(t).on("dragstart.drag",oe,re);"onselectstart"in n?e.on("selectstart.drag",oe,re):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function ue(t,n){var e=t.document.documentElement,r=Zn(t).on("dragstart.drag",null);n&&(r.on("click.drag",oe,re),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}var ce=t=>()=>t;function fe(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function se(t){return!t.ctrlKey&&!t.button}function le(){return this.parentNode}function he(t,n){return null==n?{x:t.x,y:t.y}:n}function de(){return navigator.maxTouchPoints||"ontouchstart"in this}function pe(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function ge(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function ye(){}fe.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var ve=.7,_e=1/ve,be="\\s*([+-]?\\d+)\\s*",me="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",xe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",we=/^#([0-9a-f]{3,8})$/,Me=new RegExp(`^rgb\\(${be},${be},${be}\\)$`),Te=new RegExp(`^rgb\\(${xe},${xe},${xe}\\)$`),Ae=new RegExp(`^rgba\\(${be},${be},${be},${me}\\)$`),Se=new RegExp(`^rgba\\(${xe},${xe},${xe},${me}\\)$`),Ee=new RegExp(`^hsl\\(${me},${xe},${xe}\\)$`),Ne=new RegExp(`^hsla\\(${me},${xe},${xe},${me}\\)$`),ke={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Ce(){return this.rgb().formatHex()}function Pe(){return this.rgb().formatRgb()}function ze(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=we.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?$e(n):3===e?new qe(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?De(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?De(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Me.exec(t))?new qe(n[1],n[2],n[3],1):(n=Te.exec(t))?new qe(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ae.exec(t))?De(n[1],n[2],n[3],n[4]):(n=Se.exec(t))?De(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Ee.exec(t))?Le(n[1],n[2]/100,n[3]/100,1):(n=Ne.exec(t))?Le(n[1],n[2]/100,n[3]/100,n[4]):ke.hasOwnProperty(t)?$e(ke[t]):"transparent"===t?new qe(NaN,NaN,NaN,0):null}function $e(t){return new qe(t>>16&255,t>>8&255,255&t,1)}function De(t,n,e,r){return r<=0&&(t=n=e=NaN),new qe(t,n,e,r)}function Re(t){return t instanceof ye||(t=ze(t)),t?new qe((t=t.rgb()).r,t.g,t.b,t.opacity):new qe}function Fe(t,n,e,r){return 1===arguments.length?Re(t):new qe(t,n,e,null==r?1:r)}function qe(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Ue(){return`#${Ye(this.r)}${Ye(this.g)}${Ye(this.b)}`}function Ie(){const t=Oe(this.opacity);return`${1===t?"rgb(":"rgba("}${Be(this.r)}, ${Be(this.g)}, ${Be(this.b)}${1===t?")":`, ${t})`}`}function Oe(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Be(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Ye(t){return((t=Be(t))<16?"0":"")+t.toString(16)}function Le(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Xe(t,n,e,r)}function je(t){if(t instanceof Xe)return new Xe(t.h,t.s,t.l,t.opacity);if(t instanceof ye||(t=ze(t)),!t)return new Xe;if(t instanceof Xe)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=c<.5?o+i:2-o-i,a*=60):u=c>0&&c<1?0:a,new Xe(a,u,c,t.opacity)}function He(t,n,e,r){return 1===arguments.length?je(t):new Xe(t,n,e,null==r?1:r)}function Xe(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Ge(t){return(t=(t||0)%360)<0?t+360:t}function Ve(t){return Math.max(0,Math.min(1,t||0))}function We(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}pe(ye,ze,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ce,formatHex:Ce,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return je(this).formatHsl()},formatRgb:Pe,toString:Pe}),pe(qe,Fe,ge(ye,{brighter(t){return t=null==t?_e:Math.pow(_e,t),new qe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?ve:Math.pow(ve,t),new qe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new qe(Be(this.r),Be(this.g),Be(this.b),Oe(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ue,formatHex:Ue,formatHex8:function(){return`#${Ye(this.r)}${Ye(this.g)}${Ye(this.b)}${Ye(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ie,toString:Ie})),pe(Xe,He,ge(ye,{brighter(t){return t=null==t?_e:Math.pow(_e,t),new Xe(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?ve:Math.pow(ve,t),new Xe(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new qe(We(t>=240?t-240:t+120,i,r),We(t,i,r),We(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Xe(Ge(this.h),Ve(this.s),Ve(this.l),Oe(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Oe(this.opacity);return`${1===t?"hsl(":"hsla("}${Ge(this.h)}, ${100*Ve(this.s)}%, ${100*Ve(this.l)}%${1===t?")":`, ${t})`}`}}));const Ze=Math.PI/180,Ke=180/Math.PI,Qe=.96422,Je=1,tr=.82521,nr=4/29,er=6/29,rr=3*er*er,ir=er*er*er;function or(t){if(t instanceof ur)return new ur(t.l,t.a,t.b,t.opacity);if(t instanceof pr)return gr(t);t instanceof qe||(t=Re(t));var n,e,r=lr(t.r),i=lr(t.g),o=lr(t.b),a=cr((.2225045*r+.7168786*i+.0606169*o)/Je);return r===i&&i===o?n=e=a:(n=cr((.4360747*r+.3850649*i+.1430804*o)/Qe),e=cr((.0139322*r+.0971045*i+.7141733*o)/tr)),new ur(116*a-16,500*(n-a),200*(a-e),t.opacity)}function ar(t,n,e,r){return 1===arguments.length?or(t):new ur(t,n,e,null==r?1:r)}function ur(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function cr(t){return t>ir?Math.pow(t,1/3):t/rr+nr}function fr(t){return t>er?t*t*t:rr*(t-nr)}function sr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function lr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function hr(t){if(t instanceof pr)return new pr(t.h,t.c,t.l,t.opacity);if(t instanceof ur||(t=or(t)),0===t.a&&0===t.b)return new pr(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*Ke;return new pr(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function dr(t,n,e,r){return 1===arguments.length?hr(t):new pr(t,n,e,null==r?1:r)}function pr(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function gr(t){if(isNaN(t.h))return new ur(t.l,0,0,t.opacity);var n=t.h*Ze;return new ur(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}pe(ur,ar,ge(ye,{brighter(t){return new ur(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new ur(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new qe(sr(3.1338561*(n=Qe*fr(n))-1.6168667*(t=Je*fr(t))-.4906146*(e=tr*fr(e))),sr(-.9787684*n+1.9161415*t+.033454*e),sr(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),pe(pr,dr,ge(ye,{brighter(t){return new pr(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new pr(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return gr(this).rgb()}}));var yr=-.14861,vr=1.78277,_r=-.29227,br=-.90649,mr=1.97294,xr=mr*br,wr=mr*vr,Mr=vr*_r-br*yr;function Tr(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ar)return new Ar(t.h,t.s,t.l,t.opacity);t instanceof qe||(t=Re(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Mr*r+xr*n-wr*e)/(Mr+xr-wr),o=r-i,a=(mr*(e-i)-_r*o)/br,u=Math.sqrt(a*a+o*o)/(mr*i*(1-i)),c=u?Math.atan2(a,o)*Ke-120:NaN;return new Ar(c<0?c+360:c,u,i,t.opacity)}(t):new Ar(t,n,e,null==r?1:r)}function Ar(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Sr(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Er(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return Sr((e-r/n)*n,a,i,o,u)}}function Nr(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return Sr((e-r/n)*n,i,o,a,u)}}pe(Ar,Tr,ge(ye,{brighter(t){return t=null==t?_e:Math.pow(_e,t),new Ar(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?ve:Math.pow(ve,t),new Ar(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Ze,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new qe(255*(n+e*(yr*r+vr*i)),255*(n+e*(_r*r+br*i)),255*(n+e*(mr*r)),this.opacity)}}));var kr=t=>()=>t;function Cr(t,n){return function(e){return t+e*n}}function Pr(t,n){var e=n-t;return e?Cr(t,e>180||e<-180?e-360*Math.round(e/360):e):kr(isNaN(t)?n:t)}function zr(t){return 1==(t=+t)?$r:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):kr(isNaN(n)?e:n)}}function $r(t,n){var e=n-t;return e?Cr(t,e):kr(isNaN(t)?n:t)}var Dr=function t(n){var e=zr(n);function r(t,n){var r=e((t=Fe(t)).r,(n=Fe(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=$r(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function Rr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=Fe(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}var Fr=Rr(Er),qr=Rr(Nr);function Ur(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}}function Ir(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Or(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=Gr(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function Br(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function Yr(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function Lr(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=Gr(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}var jr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hr=new RegExp(jr.source,"g");function Xr(t,n){var e,r,i,o=jr.lastIndex=Hr.lastIndex=0,a=-1,u=[],c=[];for(t+="",n+="";(e=jr.exec(t))&&(r=Hr.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:Yr(e,r)})),o=Hr.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)u[(e=c[r]).i]=e.x(t);return u.join("")})}function Gr(t,n){var e,r=typeof n;return null==n||"boolean"===r?kr(n):("number"===r?Yr:"string"===r?(e=ze(n))?(n=e,Dr):Xr:n instanceof ze?Dr:n instanceof Date?Br:Ir(n)?Ur:Array.isArray(n)?Or:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?Lr:Yr)(t,n)}function Vr(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var Wr,Zr=180/Math.PI,Kr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Qr(t,n,e,r,i,o){var a,u,c;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,c/=u),t*r<n*e&&(t=-t,n=-n,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Zr,skewX:Math.atan(c)*Zr,scaleX:a,scaleY:u}}function Jr(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],c=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var c=a.push("translate(",null,n,null,e);u.push({i:c-4,x:Yr(t,i)},{i:c-2,x:Yr(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,c),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:Yr(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:Yr(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:Yr(t,e)},{i:u-2,x:Yr(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e<r;)u[(n=c[e]).i]=n.x(t);return u.join("")}}}var ti=Jr((function(t){const n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Kr:Qr(n.a,n.b,n.c,n.d,n.e,n.f)}),"px, ","px)","deg)"),ni=Jr((function(t){return null==t?Kr:(Wr||(Wr=document.createElementNS("http://www.w3.org/2000/svg","g")),Wr.setAttribute("transform",t),(t=Wr.transform.baseVal.consolidate())?Qr((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Kr)}),", ",")",")");function ei(t){return((t=Math.exp(t))+1/t)/2}var ri=function t(n,e,r){function i(t,i){var o,a,u=t[0],c=t[1],f=t[2],s=i[0],l=i[1],h=i[2],d=s-u,p=l-c,g=d*d+p*p;if(g<1e-12)a=Math.log(h/f)/n,o=function(t){return[u+t*d,c+t*p,f*Math.exp(n*t*a)]};else{var y=Math.sqrt(g),v=(h*h-f*f+r*g)/(2*f*e*y),_=(h*h-f*f-r*g)/(2*h*e*y),b=Math.log(Math.sqrt(v*v+1)-v),m=Math.log(Math.sqrt(_*_+1)-_);a=(m-b)/n,o=function(t){var r=t*a,i=ei(b),o=f/(e*y)*(i*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(n*r+b)-function(t){return((t=Math.exp(t))-1/t)/2}(b));return[u+o*d,c+o*p,f*i/ei(n*r+b)]}}return o.duration=1e3*a*n/Math.SQRT2,o}return i.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},i}(Math.SQRT2,2,4);function ii(t){return function(n,e){var r=t((n=He(n)).h,(e=He(e)).h),i=$r(n.s,e.s),o=$r(n.l,e.l),a=$r(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var oi=ii(Pr),ai=ii($r);function ui(t){return function(n,e){var r=t((n=dr(n)).h,(e=dr(e)).h),i=$r(n.c,e.c),o=$r(n.l,e.l),a=$r(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var ci=ui(Pr),fi=ui($r);function si(t){return function n(e){function r(n,r){var i=t((n=Tr(n)).h,(r=Tr(r)).h),o=$r(n.s,r.s),a=$r(n.l,r.l),u=$r(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}var li=si(Pr),hi=si($r);function di(t,n){void 0===n&&(n=t,t=Gr);for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}}var pi,gi,yi=0,vi=0,_i=0,bi=1e3,mi=0,xi=0,wi=0,Mi="object"==typeof performance&&performance.now?performance:Date,Ti="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ai(){return xi||(Ti(Si),xi=Mi.now()+wi)}function Si(){xi=0}function Ei(){this._call=this._time=this._next=null}function Ni(t,n,e){var r=new Ei;return r.restart(t,n,e),r}function ki(){Ai(),++yi;for(var t,n=pi;n;)(t=xi-n._time)>=0&&n._call.call(void 0,t),n=n._next;--yi}function Ci(){xi=(mi=Mi.now())+wi,yi=vi=0;try{ki()}finally{yi=0,function(){var t,n,e=pi,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:pi=n);gi=t,zi(r)}(),xi=0}}function Pi(){var t=Mi.now(),n=t-mi;n>bi&&(wi-=n,mi=t)}function zi(t){yi||(vi&&(vi=clearTimeout(vi)),t-xi>24?(t<1/0&&(vi=setTimeout(Ci,t-Mi.now()-wi)),_i&&(_i=clearInterval(_i))):(_i||(mi=Mi.now(),_i=setInterval(Pi,bi)),yi=1,Ti(Ci)))}function $i(t,n,e){var r=new Ei;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}Ei.prototype=Ni.prototype={constructor:Ei,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Ai():+e)+(null==n?0:+n),this._next||gi===this||(gi?gi._next=this:pi=this,gi=this),this._call=t,this._time=e,zi()},stop:function(){this._call&&(this._call=null,this._time=1/0,zi())}};var Di=$t("start","end","cancel","interrupt"),Ri=[],Fi=0,qi=1,Ui=2,Ii=3,Oi=4,Bi=5,Yi=6;function Li(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=qi,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(e.state!==qi)return c();for(f in i)if((h=i[f]).name===e.name){if(h.state===Ii)return $i(a);h.state===Oi?(h.state=Yi,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f<n&&(h.state=Yi,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete i[f])}if($i((function(){e.state===Ii&&(e.state=Oi,e.timer.restart(u,e.delay,e.time),u(o))})),e.state=Ui,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Ui){for(e.state=Ii,r=new Array(l=e.tween.length),f=0,s=-1;f<l;++f)(h=e.tween[f].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=h);r.length=s+1}}function u(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(c),e.state=Bi,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);e.state===Bi&&(e.on.call("end",t,t.__data__,e.index,e.group),c())}function c(){for(var r in e.state=Yi,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=Ni(o,0,e.time)}(t,e,{name:n,index:r,group:i,on:Di,tween:Ri,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Fi})}function ji(t,n){var e=Xi(t,n);if(e.state>Fi)throw new Error("too late; already scheduled");return e}function Hi(t,n){var e=Xi(t,n);if(e.state>Ii)throw new Error("too late; already running");return e}function Xi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Gi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>Ui&&e.state<Bi,e.state=Yi,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Vi(t,n){var e,r;return function(){var i=Hi(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}function Wi(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Hi(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},c=0,f=i.length;c<f;++c)if(i[c].name===n){i[c]=u;break}c===f&&i.push(u)}o.tween=i}}function Zi(t,n,e){var r=t._id;return t.each((function(){var t=Hi(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return Xi(t,r).value[n]}}function Ki(t,n){var e;return("number"==typeof n?Yr:n instanceof ze?Dr:(e=ze(n))?(n=e,Dr):Xr)(t,n)}function Qi(t){return function(){this.removeAttribute(t)}}function Ji(t){return function(){this.removeAttributeNS(t.space,t.local)}}function to(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}}function no(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}function eo(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttribute(t))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttribute(t)}}function ro(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttributeNS(t.space,t.local))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttributeNS(t.space,t.local)}}function io(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}(t,i)),e}return i._value=n,i}function oo(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}(t,i)),e}return i._value=n,i}function ao(t,n){return function(){ji(this,t).delay=+n.apply(this,arguments)}}function uo(t,n){return n=+n,function(){ji(this,t).delay=n}}function co(t,n){return function(){Hi(this,t).duration=+n.apply(this,arguments)}}function fo(t,n){return n=+n,function(){Hi(this,t).duration=n}}var so=Wn.prototype.constructor;function lo(t){return function(){this.style.removeProperty(t)}}var ho=0;function po(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function go(t){return Wn().transition(t)}function yo(){return++ho}var vo=Wn.prototype;po.prototype=go.prototype={constructor:po,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=jt(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,c,f=r[a],s=f.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=f[h])&&(c=t.call(u,u.__data__,h,f))&&("__data__"in u&&(c.__data__=u.__data__),l[h]=c,Li(l[h],n,e,h,l,Xi(u,e)));return new po(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Gt(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var c,f=r[u],s=f.length,l=0;l<s;++l)if(c=f[l]){for(var h,d=t.call(c,c.__data__,l,f),p=Xi(c,e),g=0,y=d.length;g<y;++g)(h=d[g])&&Li(h,n,e,g,d,p);o.push(d),a.push(c)}return new po(o,a,n,e)},selectChild:vo.selectChild,selectChildren:vo.selectChildren,filter:function(t){"function"!=typeof t&&(t=Vt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,c=r[i]=[],f=0;f<u;++f)(o=a[f])&&t.call(o,o.__data__,f,a)&&c.push(o);return new po(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var c,f=n[u],s=e[u],l=f.length,h=a[u]=new Array(l),d=0;d<l;++d)(c=f[d]||s[d])&&(h[d]=c);for(;u<r;++u)a[u]=n[u];return new po(a,this._parents,this._name,this._id)},selection:function(){return new so(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=yo(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],c=u.length,f=0;f<c;++f)if(a=u[f]){var s=Xi(a,n);Li(a,t,e,f,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new po(r,this._parents,t,e)},call:vo.call,nodes:vo.nodes,node:vo.node,size:vo.size,empty:vo.empty,each:vo.each,on:function(t,n){var e=this._id;return arguments.length<2?Xi(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?ji:Hi;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=It(t),r="transform"===e?ni:Ki;return this.attrTween(t,"function"==typeof n?(e.local?ro:eo)(e,r,Zi(this,"attr."+t,n)):null==n?(e.local?Ji:Qi)(e):(e.local?no:to)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=It(t);return this.tween(e,(r.local?io:oo)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?ti:Ki;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=_n(this,t),a=(this.style.removeProperty(t),_n(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,lo(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=_n(this,t),u=e(this),c=u+"";return null==u&&(this.style.removeProperty(t),c=u=_n(this,t)),a===c?null:a===r&&c===i?o:(i=c,o=n(r=a,u))}}(t,r,Zi(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var c=Hi(this,t),f=c.on,s=null==c.value[a]?o||(o=lo(n)):void 0;f===e&&i===s||(r=(e=f).copy()).on(u,i=s),c.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=_n(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}(t,o,e)),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Zi(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Xi(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Vi:Wi)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?ao:uo)(n,t)):Xi(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?co:fo)(n,t)):Xi(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Hi(this,t).ease=n}}(n,t)):Xi(this.node(),n).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,n){return function(){var e=n.apply(this,arguments);if("function"!=typeof e)throw new Error;Hi(this,t).ease=e}}(this._id,t))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,a){var u={value:a},c={value:function(){0==--i&&o()}};e.each((function(){var e=Hi(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(c)),e.on=n})),0===i&&o()}))},[Symbol.iterator]:vo[Symbol.iterator]};function _o(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function bo(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var mo=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),xo=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),wo=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Mo=Math.PI,To=Mo/2;function Ao(t){return(1-Math.cos(Mo*t))/2}function So(t){return 1.0009775171065494*(Math.pow(2,-10*t)-.0009765625)}function Eo(t){return((t*=2)<=1?So(1-t):2-So(t-1))/2}function No(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var ko=4/11,Co=6/11,Po=8/11,zo=3/4,$o=9/11,Do=10/11,Ro=15/16,Fo=21/22,qo=63/64,Uo=1/ko/ko;function Io(t){return(t=+t)<ko?Uo*t*t:t<Po?Uo*(t-=Co)*t+zo:t<Do?Uo*(t-=$o)*t+Ro:Uo*(t-=Fo)*t+qo}var Oo=1.70158,Bo=function t(n){function e(t){return(t=+t)*t*(n*(t-1)+t)}return n=+n,e.overshoot=t,e}(Oo),Yo=function t(n){function e(t){return--t*t*((t+1)*n+t)+1}return n=+n,e.overshoot=t,e}(Oo),Lo=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(Oo),jo=2*Math.PI,Ho=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=jo);function i(t){return n*So(- --t)*Math.sin((r-t)/e)}return i.amplitude=function(n){return t(n,e*jo)},i.period=function(e){return t(n,e)},i}(1,.3),Xo=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=jo);function i(t){return 1-n*So(t=+t)*Math.sin((t+r)/e)}return i.amplitude=function(n){return t(n,e*jo)},i.period=function(e){return t(n,e)},i}(1,.3),Go=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=jo);function i(t){return((t=2*t-1)<0?n*So(-t)*Math.sin((r-t)/e):2-n*So(t)*Math.sin((r+t)/e))/2}return i.amplitude=function(n){return t(n,e*jo)},i.period=function(e){return t(n,e)},i}(1,.3),Vo={time:null,delay:0,duration:250,ease:bo};function Wo(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}Wn.prototype.interrupt=function(t){return this.each((function(){Gi(this,t)}))},Wn.prototype.transition=function(t){var n,e;t instanceof po?(n=t._id,t=t._name):(n=yo(),(e=Vo).time=Ai(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],c=u.length,f=0;f<c;++f)(a=u[f])&&Li(a,t,n,f,u,e||Wo(a,n));return new po(r,this._parents,t,n)};var Zo=[null];var Ko=t=>()=>t;function Qo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Jo(t){t.preventDefault(),t.stopImmediatePropagation()}var ta={name:"drag"},na={name:"space"},ea={name:"handle"},ra={name:"center"};const{abs:ia,max:oa,min:aa}=Math;function ua(t){return[+t[0],+t[1]]}function ca(t){return[ua(t[0]),ua(t[1])]}var fa={name:"x",handles:["w","e"].map(va),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},sa={name:"y",handles:["n","s"].map(va),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},la={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(va),input:function(t){return null==t?null:ca(t)},output:function(t){return t}},ha={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},da={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},pa={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},ga={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},ya={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function va(t){return{type:t}}function _a(t){return!t.ctrlKey&&!t.button}function ba(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function ma(){return navigator.maxTouchPoints||"ontouchstart"in this}function xa(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function wa(t){var n,e=ba,r=_a,i=ma,o=!0,a=$t("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([va("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",ha.overlay).merge(e).each((function(){var t=xa(this).extent;Zn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([va("selection")]).enter().append("rect").attr("class","selection").attr("cursor",ha.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return ha[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Zn(this),n=xa(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?ta:o&&e.altKey?ra:ea,x=t===sa?null:ga[b],w=t===fa?null:ya[b],M=xa(_),T=M.extent,A=M.selection,S=T[0][0],E=T[0][1],N=T[1][0],k=T[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,$=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=ne(t,_)).point0=t.slice(),t.identifier=n,t}));Gi(_);var D=s(_,arguments,!0).beforestart();if("overlay"===b){A&&(g=!0);const n=[$[0],$[1]||$[0]];M.selection=A=[[i=t===sa?S:aa(n[0][0],n[1][0]),u=t===fa?E:aa(n[0][1],n[1][1])],[l=t===sa?N:oa(n[0][0],n[1][0]),d=t===fa?k:oa(n[0][1],n[1][1])]],$.length>1&&I(e)}else i=A[0][0],u=A[0][1],l=A[1][0],d=A[1][1];a=i,c=u,h=l,p=d;var R=Zn(_).attr("pointer-events","none"),F=R.selectAll(".overlay").attr("cursor",ha[b]);if(e.touches)D.moved=U,D.ended=O;else{var q=Zn(e.view).on("mousemove.brush",U,!0).on("mouseup.brush",O,!0);o&&q.on("keydown.brush",(function(t){switch(t.keyCode){case 16:z=x&&w;break;case 18:m===ea&&(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=ra,I(t));break;case 32:m!==ea&&m!==ra||(x<0?l=h-C:x>0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=na,F.attr("cursor",ha.selection),I(t));break;default:return}Jo(t)}),!0).on("keyup.brush",(function(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,I(t));break;case 18:m===ra&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=ea,I(t));break;case 32:m===na&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=ra):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=ea),F.attr("cursor",ha[b]),I(t));break;default:return}Jo(t)}),!0),ae(e.view)}f.call(_),D.start(e,m.name)}function U(t){for(const n of t.changedTouches||[t])for(const t of $)t.identifier===n.identifier&&(t.cur=ne(n,_));if(z&&!y&&!v&&1===$.length){const t=$[0];ia(t.cur[0]-t[0])>ia(t.cur[1]-t[1])?v=!0:y=!0}for(const t of $)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,Jo(t),I(t)}function I(t){const n=$[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case na:case ta:x&&(C=oa(S-i,aa(N-l,C)),a=i+C,h=l+C),w&&(P=oa(E-u,aa(k-d,P)),c=u+P,p=d+P);break;case ea:$[1]?(x&&(a=oa(S,aa(N,$[0][0])),h=oa(S,aa(N,$[1][0])),x=1),w&&(c=oa(E,aa(k,$[0][1])),p=oa(E,aa(k,$[1][1])),w=1)):(x<0?(C=oa(S-i,aa(N-i,C)),a=i+C,h=l):x>0&&(C=oa(S-l,aa(N-l,C)),a=i,h=l+C),w<0?(P=oa(E-u,aa(k-u,P)),c=u+P,p=d):w>0&&(P=oa(E-d,aa(k-d,P)),c=u,p=d+P));break;case ra:x&&(a=oa(S,aa(N,i-C*x)),h=oa(S,aa(N,l+C*x))),w&&(c=oa(E,aa(k,u-P*w)),p=oa(E,aa(k,d+P*w)))}h<a&&(x*=-1,r=i,i=l,l=r,r=a,a=h,h=r,b in da&&F.attr("cursor",ha[b=da[b]])),p<c&&(w*=-1,r=u,u=d,d=r,r=c,c=p,p=r,b in pa&&F.attr("cursor",ha[b=pa[b]])),M.selection&&(A=M.selection),y&&(a=A[0][0],h=A[1][0]),v&&(c=A[0][1],p=A[1][1]),A[0][0]===a&&A[0][1]===c&&A[1][0]===h&&A[1][1]===p||(M.selection=[[a,c],[h,p]],f.call(_),D.brush(t,m.name))}function O(t){if(function(t){t.stopImmediatePropagation()}(t),t.touches){if(t.touches.length)return;n&&clearTimeout(n),n=setTimeout((function(){n=null}),500)}else ue(t.view,g),q.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);R.attr("pointer-events","all"),F.attr("cursor",ha.overlay),M.selection&&(A=M.selection),function(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}(A)&&(M.selection=null,f.call(_)),D.end(t,m.name)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=ca(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e,r){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Gr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,i=arguments,o=n.__brush,a=t.input("function"==typeof e?e.apply(n,i):e,o.extent),u=s(n,i).beforestart();Gi(n),o.selection=null===a?null:a,f.call(n),u.start(r).brush(r).end(r)}))},c.clear=function(t,n){c.move(t,null,n)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Zn(this.that).datum();a.call(n,this.that,new Qo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:Ko(ca(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:Ko(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:Ko(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Ma=Math.abs,Ta=Math.cos,Aa=Math.sin,Sa=Math.PI,Ea=Sa/2,Na=2*Sa,ka=Math.max,Ca=1e-12;function Pa(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function za(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=Pa(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;n<c;++n){let e=0;for(let r=0;r<c;++r)e+=a[n*c+r]+t*a[r*c+n];d+=f[n]=e}u=(d=ka(0,Na-e*c)/d)?e:Na/c;{let n=0;r&&s.sort(((t,n)=>r(f[t],f[n])));for(const e of s){const r=n;if(t){const t=Pa(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=Pa(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(e<r?(t=l[e*c+r]||(l[e*c+r]={source:null,target:null}),t.source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}):(t=l[r*c+e]||(l[r*c+e]={source:null,target:null}),t.target={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]},e===r&&(t.source=t.target)),t.source&&t.target&&t.source.value<t.target.value){const n=t.source;t.source=t.target,t.target=n}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}n+=u}}return(l=Object.values(l)).groups=h,o?l.sort(o):l}return a.padAngle=function(t){return arguments.length?(e=ka(0,t),a):e},a.sortGroups=function(t){return arguments.length?(r=t,a):r},a.sortSubgroups=function(t){return arguments.length?(i=t,a):i},a.sortChords=function(t){return arguments.length?(null==t?o=null:(n=t,o=function(t,e){return n(t.source.value+t.target.value,e.source.value+e.target.value)})._=t,a):o&&o._;var n},a}const $a=Math.PI,Da=2*$a,Ra=1e-6,Fa=Da-Ra;function qa(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}let Ua=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?qa:function(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return qa;const e=10**n;return function(t){this._+=t[0];for(let n=1,r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,e,r){this._append`Q${+t},${+n},${this._x1=+e},${this._y1=+r}`}bezierCurveTo(t,n,e,r,i,o){this._append`C${+t},${+n},${+e},${+r},${this._x1=+i},${this._y1=+o}`}arcTo(t,n,e,r,i){if(t=+t,n=+n,e=+e,r=+r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let o=this._x1,a=this._y1,u=e-t,c=r-n,f=o-t,s=a-n,l=f*f+s*s;if(null===this._x1)this._append`M${this._x1=t},${this._y1=n}`;else if(l>Ra)if(Math.abs(s*u-c*f)>Ra&&i){let h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan(($a-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>Ra&&this._append`L${t+b*f},${n+b*s}`,this._append`A${i},${i},0,0,${+(s*h>f*d)},${this._x1=t+m*u},${this._y1=n+m*c}`}else this._append`L${this._x1=t},${this._y1=n}`;else;}arc(t,n,e,r,i,o){if(t=+t,n=+n,o=!!o,(e=+e)<0)throw new Error(`negative radius: ${e}`);let a=e*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;null===this._x1?this._append`M${c},${f}`:(Math.abs(this._x1-c)>Ra||Math.abs(this._y1-f)>Ra)&&this._append`L${c},${f}`,e&&(l<0&&(l=l%Da+Da),l>Fa?this._append`A${e},${e},0,1,${s},${t-a},${n-u}A${e},${e},0,1,${s},${this._x1=c},${this._y1=f}`:l>Ra&&this._append`A${e},${e},0,${+(l>=$a)},${s},${this._x1=t+e*Math.cos(i)},${this._y1=n+e*Math.sin(i)}`)}rect(t,n,e,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${e=+e}v${+r}h${-e}Z`}toString(){return this._}};function Ia(){return new Ua}Ia.prototype=Ua.prototype;var Oa=Array.prototype.slice;function Ba(t){return function(){return t}}function Ya(t){return t.source}function La(t){return t.target}function ja(t){return t.radius}function Ha(t){return t.startAngle}function Xa(t){return t.endAngle}function Ga(){return 0}function Va(){return 10}function Wa(t){var n=Ya,e=La,r=ja,i=ja,o=Ha,a=Xa,u=Ga,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=Oa.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Ea,y=a.apply(this,d)-Ea,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Ea,b=a.apply(this,d)-Ea;if(c||(c=f=Ia()),h>Ca&&(Ma(y-g)>2*h+Ca?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Ma(b-_)>2*h+Ca?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*Ta(g),p*Aa(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=v-+t.apply(this,arguments),x=(_+b)/2;c.quadraticCurveTo(0,0,m*Ta(_),m*Aa(_)),c.lineTo(v*Ta(x),v*Aa(x)),c.lineTo(m*Ta(b),m*Aa(b))}else c.quadraticCurveTo(0,0,v*Ta(_),v*Aa(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*Ta(g),p*Aa(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:Ba(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:Ba(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:Ba(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:Ba(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:Ba(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Ba(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:Ba(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var Za=Array.prototype.slice;function Ka(t,n){return t-n}var Qa=t=>()=>t;function Ja(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=tu(t,n[r]))return e;return 0}function tu(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var c=t[o],f=c[0],s=c[1],l=t[u],h=l[0],d=l[1];if(nu(c,l,n))return 0;s>r!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function nu(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function eu(){}var ru=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function iu(){var t=1,n=1,e=K,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(Ka);else{const e=M(t,ou);for(n=G(...Z(e[0],e[1],n),n);n[n.length-1]>=e[1];)n.pop();for(;n[1]<e[0];)n.shift()}return n.map((n=>o(t,n)))}function o(e,i){const o=null==i?NaN:+i;if(isNaN(o))throw new Error(`invalid value: ${i}`);var u=[],c=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=au(e[0],r),ru[f<<1].forEach(p);for(;++o<t-1;)c=f,f=au(e[o+1],r),ru[c|f<<1].forEach(p);ru[f|0].forEach(p);for(;++u<n-1;){for(o=-1,f=au(e[u*t+t],r),s=au(e[u*t],r),ru[f<<1|s<<2].forEach(p);++o<t-1;)c=f,f=au(e[u*t+t+o+1],r),l=s,s=au(e[u*t+o+1],r),ru[c|f<<1|s<<2|l<<3].forEach(p);ru[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,ru[s<<2].forEach(p);for(;++o<t-1;)l=s,s=au(e[u*t+o+1],r),ru[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}ru[s<<3].forEach(p)}(e,o,(function(t){r(t,e,o),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(t)>0?u.push([t]):c.push(t)})),c.forEach((function(t){for(var n,e=0,r=u.length;e<r;++e)if(-1!==Ja((n=u[e])[0],t))return void n.push(t)})),{type:"MultiPolygon",value:i,coordinates:u}}function a(n){return 2*n[0]+n[1]*(t+1)*4}function u(e,r,i){e.forEach((function(e){var o=e[0],a=e[1],u=0|o,c=0|a,f=uu(r[c*t+u]);o>0&&o<t&&u===o&&(e[0]=cu(o,uu(r[c*t+u-1]),f,i)),a>0&&a<n&&c===a&&(e[1]=cu(a,uu(r[(c-1)*t+u]),f,i))}))}return i.contour=o,i.size=function(e){if(!arguments.length)return[t,n];var r=Math.floor(e[0]),o=Math.floor(e[1]);if(!(r>=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?Qa(Za.call(t)):Qa(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:eu,i):r===u},i}function ou(t){return isFinite(t)?t:NaN}function au(t,n){return null!=t&&+t>=n}function uu(t){return null==t||isNaN(t=+t)?-1/0:t}function cu(t,n,e,r){const i=r-n,o=e-n,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function fu(t){return t[0]}function su(t){return t[1]}function lu(){return 1}const hu=134217729,du=33306690738754706e-32;function pu(t,n,e,r,i){let o,a,u,c,f=n[0],s=r[0],l=0,h=0;s>f==s>-f?(o=f,f=n[++l]):(o=s,s=r[++h]);let d=0;if(l<t&&h<e)for(s>f==s>-f?(a=f+o,u=o-(a-f),f=n[++l]):(a=s+o,u=o-(a-s),s=r[++h]),o=a,0!==u&&(i[d++]=u);l<t&&h<e;)s>f==s>-f?(a=o+f,c=a-o,u=o-(a-c)+(f-c),f=n[++l]):(a=o+s,c=a-o,u=o-(a-c)+(s-c),s=r[++h]),o=a,0!==u&&(i[d++]=u);for(;l<t;)a=o+f,c=a-o,u=o-(a-c)+(f-c),f=n[++l],o=a,0!==u&&(i[d++]=u);for(;h<e;)a=o+s,c=a-o,u=o-(a-c)+(s-c),s=r[++h],o=a,0!==u&&(i[d++]=u);return 0===o&&0!==d||(i[d++]=o),d}function gu(t){return new Float64Array(t)}const yu=22204460492503146e-32,vu=11093356479670487e-47,_u=gu(4),bu=gu(8),mu=gu(12),xu=gu(16),wu=gu(4);function Mu(t,n,e,r,i,o){const a=(n-o)*(e-i),u=(t-i)*(r-o),c=a-u,f=Math.abs(a+u);return Math.abs(c)>=33306690738754716e-32*f?c:-function(t,n,e,r,i,o,a){let u,c,f,s,l,h,d,p,g,y,v,_,b,m,x,w,M,T;const A=t-i,S=e-i,E=n-o,N=r-o;m=A*N,h=hu*A,d=h-(h-A),p=A-d,h=hu*N,g=h-(h-N),y=N-g,x=p*y-(m-d*g-p*g-d*y),w=E*S,h=hu*E,d=h-(h-E),p=E-d,h=hu*S,g=h-(h-S),y=S-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,_u[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,_u[1]=b-(v+l)+(l-w),T=_+v,l=T-_,_u[2]=_-(T-l)+(v-l),_u[3]=T;let k=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,_u),C=yu*a;if(k>=C||-k>=C)return k;if(l=t-A,u=t-(A+l)+(l-i),l=e-S,f=e-(S+l)+(l-i),l=n-E,c=n-(E+l)+(l-o),l=r-N,s=r-(N+l)+(l-o),0===u&&0===c&&0===f&&0===s)return k;if(C=vu*a+du*Math.abs(k),k+=A*s+N*u-(E*f+S*c),k>=C||-k>=C)return k;m=u*N,h=hu*u,d=h-(h-u),p=u-d,h=hu*N,g=h-(h-N),y=N-g,x=p*y-(m-d*g-p*g-d*y),w=c*S,h=hu*c,d=h-(h-c),p=c-d,h=hu*S,g=h-(h-S),y=S-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,wu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,wu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,wu[2]=_-(T-l)+(v-l),wu[3]=T;const P=pu(4,_u,4,wu,bu);m=A*s,h=hu*A,d=h-(h-A),p=A-d,h=hu*s,g=h-(h-s),y=s-g,x=p*y-(m-d*g-p*g-d*y),w=E*f,h=hu*E,d=h-(h-E),p=E-d,h=hu*f,g=h-(h-f),y=f-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,wu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,wu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,wu[2]=_-(T-l)+(v-l),wu[3]=T;const z=pu(P,bu,4,wu,mu);m=u*s,h=hu*u,d=h-(h-u),p=u-d,h=hu*s,g=h-(h-s),y=s-g,x=p*y-(m-d*g-p*g-d*y),w=c*f,h=hu*c,d=h-(h-c),p=c-d,h=hu*f,g=h-(h-f),y=f-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,wu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,wu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,wu[2]=_-(T-l)+(v-l),wu[3]=T;const $=pu(z,mu,4,wu,xu);return xu[$-1]}(t,n,e,r,i,o,f)}const Tu=Math.pow(2,-52),Au=new Uint32Array(512);class Su{static from(t,n=zu,e=$u){const r=t.length,i=new Float64Array(2*r);for(let o=0;o<r;o++){const r=t[o];i[2*o]=n(r),i[2*o+1]=e(r)}return new Su(i)}constructor(t){const n=t.length>>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;n<o;n++){const e=t[2*n],r=t[2*n+1];e<a&&(a=e),r<u&&(u=r),e>c&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p;for(let n=0,e=1/0;n<o;n++){const r=Eu(s,l,t[2*n],t[2*n+1]);r<e&&(h=n,e=r)}const g=t[2*h],y=t[2*h+1];for(let n=0,e=1/0;n<o;n++){if(n===h)continue;const r=Eu(g,y,t[2*n],t[2*n+1]);r<e&&r>0&&(d=n,e=r)}let v=t[2*d],_=t[2*d+1],b=1/0;for(let n=0;n<o;n++){if(n===h||n===d)continue;const e=ku(g,y,v,_,t[2*n],t[2*n+1]);e<b&&(p=n,b=e)}let m=t[2*p],x=t[2*p+1];if(b===1/0){for(let n=0;n<o;n++)this._dists[n]=t[2*n]-t[0]||t[2*n+1]-t[1];Cu(this._ids,this._dists,0,o-1);const n=new Uint32Array(o);let e=0;for(let t=0,r=-1/0;t<o;t++){const i=this._ids[t],o=this._dists[i];o>r&&(n[e++]=i,r=o)}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Mu(g,y,v,_,m,x)<0){const t=d,n=v,e=_;d=p,v=m,_=x,p=t,m=n,x=e}const w=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=t+(f*s-u*l)*h,p=n+(a*l-c*s)*h;return{x:d,y:p}}(g,y,v,_,m,x);this._cx=w.x,this._cy=w.y;for(let n=0;n<o;n++)this._dists[n]=Eu(t[2*n],t[2*n+1],w.x,w.y);Cu(this._ids,this._dists,0,o-1),this._hullStart=h;let M=3;e[h]=n[p]=d,e[d]=n[h]=p,e[p]=n[d]=h,r[h]=0,r[d]=1,r[p]=2,i.fill(-1),i[this._hashKey(g,y)]=h,i[this._hashKey(v,_)]=d,i[this._hashKey(m,x)]=p,this.trianglesLen=0,this._addTriangle(h,d,p,-1,-1,-1);for(let o,a,u=0;u<this._ids.length;u++){const c=this._ids[u],f=t[2*c],s=t[2*c+1];if(u>0&&Math.abs(f-o)<=Tu&&Math.abs(s-a)<=Tu)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t<this._hashSize&&(l=i[(n+t)%this._hashSize],-1===l||l===e[l]);t++);l=n[l];let g,y=l;for(;g=e[y],Mu(f,s,t[2*y],t[2*y+1],t[2*g],t[2*g+1])>=0;)if(y=g,y===l){y=-1;break}if(-1===y)continue;let v=this._addTriangle(y,c,e[y],-1,-1,r[y]);r[c]=this._legalize(v+2),r[y]=v,M++;let _=e[y];for(;g=e[_],Mu(f,s,t[2*_],t[2*_+1],t[2*g],t[2*g+1])<0;)v=this._addTriangle(_,c,g,r[c],-1,r[_]),r[c]=this._legalize(v+2),e[_]=_,M--,_=g;if(y===l)for(;g=n[y],Mu(f,s,t[2*g],t[2*g+1],t[2*y],t[2*y+1])<0;)v=this._addTriangle(g,c,y,-1,r[y],r[g]),this._legalize(v+2),r[g]=v,e[y]=y,M--,y=g;this._hullStart=n[c]=y,e[y]=n[_]=c,e[c]=_,i[this._hashKey(f,s)]=c,i[this._hashKey(t[2*y],t[2*y+1])]=y}this.hull=new Uint32Array(M);for(let t=0,n=this._hullStart;t<M;t++)this.hull[t]=n,n=e[n];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,n){return Math.floor(function(t,n){const e=t/(Math.abs(t)+Math.abs(n));return(n>0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Au[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(Nu(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i<Au.length&&(Au[i++]=u)}else{if(0===i)break;t=Au[--i]}}return o}_link(t,n){this._halfedges[t]=n,-1!==n&&(this._halfedges[n]=t)}_addTriangle(t,n,e,r,i,o){const a=this.trianglesLen;return this._triangles[a]=t,this._triangles[a+1]=n,this._triangles[a+2]=e,this._link(a,r),this._link(a+1,i),this._link(a+2,o),this.trianglesLen+=3,a}}function Eu(t,n,e,r){const i=t-e,o=n-r;return i*i+o*o}function Nu(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function ku(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function Cu(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;Pu(t,e+r>>1,i),n[t[e]]>n[t[r]]&&Pu(t,e,r),n[t[i]]>n[t[r]]&&Pu(t,i,r),n[t[e]]>n[t[i]]&&Pu(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]<u);do{o--}while(n[t[o]]>u);if(o<i)break;Pu(t,i,o)}t[e+1]=t[o],t[o]=a,r-i+1>=o-e?(Cu(t,n,i,r),Cu(t,n,e,o-1)):(Cu(t,n,e,o-1),Cu(t,n,i,r))}}function Pu(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function zu(t){return t[0]}function $u(t){return t[1]}const Du=1e-6;class Ru{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Du||Math.abs(this._y1-i)>Du)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class Fu{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class qu{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this;let i,o;const a=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let r,u,c=0,f=0,s=e.length;c<s;c+=3,f+=2){const s=2*e[c],l=2*e[c+1],h=2*e[c+2],d=t[s],p=t[s+1],g=t[l],y=t[l+1],v=t[h],_=t[h+1],b=g-d,m=y-p,x=v-d,w=_-p,M=2*(b*w-m*x);if(Math.abs(M)<1e-9){if(void 0===i){i=o=0;for(const e of n)i+=t[2*e],o+=t[2*e+1];i/=n.length,o/=n.length}const e=1e9*Math.sign((i-d)*w-(o-p)*x);r=(d+v)/2-e*w,u=(p+_)/2+e*x}else{const t=1/M,n=b*b+m*m,e=x*x+w*w;r=d+(w*n-m*e)*t,u=p+(b*e-x*n)*t}a[f]=r,a[f+1]=u}let u,c,f,s=n[n.length-1],l=4*s,h=t[2*s],d=t[2*s+1];r.fill(0);for(let e=0;e<n.length;++e)s=n[e],u=l,c=h,f=d,l=4*s,h=t[2*s],d=t[2*s+1],r[u+2]=r[l]=f-d,r[u+3]=r[l+1]=h-c}render(t){const n=null==t?t=new Ru:void 0,{delaunay:{halfedges:e,inedges:r,hull:i},circumcenters:o,vectors:a}=this;if(i.length<=1)return null;for(let n=0,r=e.length;n<r;++n){const r=e[n];if(r<n)continue;const i=2*Math.floor(n/3),a=2*Math.floor(r/3),u=o[i],c=o[i+1],f=o[a],s=o[a+1];this._renderSegment(u,c,f,s,t)}let u,c=i[i.length-1];for(let n=0;n<i.length;++n){u=c,c=i[n];const e=2*Math.floor(r[c]/3),f=o[e],s=o[e+1],l=4*u,h=this._project(f,s,a[l+2],a[l+3]);h&&this._renderSegment(f,s,h[0],h[1],t)}return n&&n.value()}renderBounds(t){const n=null==t?t=new Ru:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const e=null==n?n=new Ru:void 0,r=this._clip(t);if(null===r||!r.length)return;n.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let t=2;t<i;t+=2)r[t]===r[t-2]&&r[t+1]===r[t-1]||n.lineTo(r[t],r[t+1]);return n.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length/2;n<e;++n){const t=this.cellPolygon(n);t&&(t.index=n,yield t)}}cellPolygon(t){const n=new Fu;return this.renderCell(t,n),n.value()}_renderSegment(t,n,e,r,i){let o;const a=this._regioncode(t,n),u=this._regioncode(e,r);0===a&&0===u?(i.moveTo(t,n),i.lineTo(e,r)):(o=this._clipSegment(t,n,e,r,a,u))&&(i.moveTo(o[0],o[1]),i.lineTo(o[2],o[3]))}contains(t,n,e){return(n=+n)==n&&(e=+e)==e&&this.delaunay._step(t,n,e)===t}*neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.neighbors(t)){const t=this._clip(e);if(t)t:for(let r=0,i=n.length;r<i;r+=2)for(let o=0,a=t.length;o<a;o+=2)if(n[r]===t[o]&&n[r+1]===t[o+1]&&n[(r+2)%i]===t[(o+a-2)%a]&&n[(r+3)%i]===t[(o+a-1)%a]){yield e;break t}}}_cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:r,triangles:i}}=this,o=e[t];if(-1===o)return null;const a=[];let u=o;do{const e=Math.floor(u/3);if(a.push(n[2*e],n[2*e+1]),u=u%3==2?u-2:u+1,i[u]!==t)break;u=r[u]}while(u!==o&&-1!==u);return a}_clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(t);if(null===n)return null;const{vectors:e}=this,r=4*t;return this._simplify(e[r]||e[r+1]?this._clipInfinite(t,n,e[r],e[r+1],e[r+2],e[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const e=n.length;let r,i,o,a,u=null,c=n[e-2],f=n[e-1],s=this._regioncode(c,f),l=0;for(let h=0;h<e;h+=2)if(r=c,i=f,c=n[h],f=n[h+1],o=s,s=this._regioncode(c,f),0===o&&0===s)a=l,l=0,u?u.push(c,f):u=[c,f];else{let n,e,h,d,p;if(0===o){if(null===(n=this._clipSegment(r,i,c,f,o,s)))continue;[e,h,d,p]=n}else{if(null===(n=this._clipSegment(c,f,r,i,s,o)))continue;[d,p,e,h]=n,a=l,l=this._edgecode(e,h),a&&l&&this._edge(t,a,l,u,u.length),u?u.push(e,h):u=[e,h]}a=l,l=this._edgecode(d,p),a&&l&&this._edge(t,a,l,u,u.length),u?u.push(d,p):u=[d,p]}if(u)a=l,l=this._edgecode(u[0],u[1]),a&&l&&this._edge(t,a,l,u,u.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return u}_clipSegment(t,n,e,r,i,o){const a=i<o;for(a&&([t,n,e,r,i,o]=[e,r,t,n,o,i]);;){if(0===i&&0===o)return a?[e,r,t,n]:[t,n,e,r];if(i&o)return null;let u,c,f=i||o;8&f?(u=t+(e-t)*(this.ymax-n)/(r-n),c=this.ymax):4&f?(u=t+(e-t)*(this.ymin-n)/(r-n),c=this.ymin):2&f?(c=n+(r-n)*(this.xmax-t)/(e-t),u=this.xmax):(c=n+(r-n)*(this.xmin-t)/(e-t),u=this.xmin),i?(t=u,n=c,i=this._regioncode(t,n)):(e=u,r=c,o=this._regioncode(e,r))}}_clipInfinite(t,n,e,r,i,o){let a,u=Array.from(n);if((a=this._project(u[0],u[1],e,r))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],i,o))&&u.push(a[0],a[1]),u=this._clipFinite(t,u))for(let n,e=0,r=u.length,i=this._edgecode(u[r-2],u[r-1]);e<r;e+=2)n=i,i=this._edgecode(u[e],u[e+1]),n&&i&&(e=this._edge(t,n,i,u,e),r=u.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(t,n,e,r,i){for(;n!==e;){let e,o;switch(n){case 5:n=4;continue;case 4:n=6,e=this.xmax,o=this.ymin;break;case 6:n=2;continue;case 2:n=10,e=this.xmax,o=this.ymax;break;case 10:n=8;continue;case 8:n=9,e=this.xmin,o=this.ymax;break;case 9:n=1;continue;case 1:n=5,e=this.xmin,o=this.ymin}r[i]===e&&r[i+1]===o||!this.contains(t,e,o)||(r.splice(i,0,e,o),i+=2)}return i}_project(t,n,e,r){let i,o,a,u=1/0;if(r<0){if(n<=this.ymin)return null;(i=(this.ymin-n)/r)<u&&(a=this.ymin,o=t+(u=i)*e)}else if(r>0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)<u&&(a=this.ymax,o=t+(u=i)*e)}if(e>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)<u&&(o=this.xmax,a=n+(u=i)*r)}else if(e<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/e)<u&&(o=this.xmin,a=n+(u=i)*r)}return[o,a]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const e=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[e]&&t[e]===t[r]||t[n+1]===t[e+1]&&t[e+1]===t[r+1])&&(t.splice(e,2),n-=2)}t.length||(t=null)}return t}}const Uu=2*Math.PI,Iu=Math.pow;function Ou(t){return t[0]}function Bu(t){return t[1]}function Yu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class Lu{static from(t,n=Ou,e=Bu,r){return new Lu("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a<i;++a){const i=t[a];o[2*a]=n.call(r,i,a,t),o[2*a+1]=e.call(r,i,a,t)}return o}(t,n,e,r):Float64Array.from(function*(t,n,e,r){let i=0;for(const o of t)yield n.call(r,o,i,t),yield e.call(r,o,i,t),++i}(t,n,e,r)))}constructor(t){this._delaunator=new Su(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,n=this.points;if(t.hull&&t.hull.length>2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t<n.length;t+=3){const r=2*n[t],i=2*n[t+1],o=2*n[t+2];if((e[o]-e[r])*(e[i+1]-e[r+1])-(e[i]-e[r])*(e[o+1]-e[r+1])>1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t<e;++t){const e=Yu(n[2*t],n[2*t+1],i);n[2*t]=e[0],n[2*t+1]=e[1]}this._delaunator=new Su(n)}else delete this.collinear;const e=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let t=0,n=e.length;t<n;++t){const n=i[t%3==2?t-2:t+1];-1!==e[t]&&-1!==o[n]||(o[n]=t)}for(let t=0,n=r.length;t<n;++t)a[r[t]]=t;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],o[r[0]]=1,2===r.length&&(o[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(t){return new qu(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n<a.length-1&&(yield a[n+1]))}const u=n[t];if(-1===u)return;let c=u,f=-1;do{if(yield f=o[c],c=c%3==2?c-2:c+1,o[c]!==t)return;if(c=i[c],-1===c){const n=e[(r[t]+1)%e.length];return void(n!==f&&(yield n))}}while(c!==u)}find(t,n,e=0){if((t=+t)!=t||(n=+n)!=n)return-1;const r=e;let i;for(;(i=this._step(e,t,n))>=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Iu(n-c[2*t],2)+Iu(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Iu(n-c[2*r],2)+Iu(e-c[2*r+1],2);if(l<s&&(s=l,f=r),h=h%3==2?h-2:h+1,u[h]!==t)break;if(h=a[h],-1===h){if(h=i[(o[t]+1)%i.length],h!==r&&Iu(n-c[2*h],2)+Iu(e-c[2*h+1],2)<s)return h;break}}while(h!==l);return f}render(t){const n=null==t?t=new Ru:void 0,{points:e,halfedges:r,triangles:i}=this;for(let n=0,o=r.length;n<o;++n){const o=r[n];if(o<n)continue;const a=2*i[n],u=2*i[o];t.moveTo(e[a],e[a+1]),t.lineTo(e[u],e[u+1])}return this.renderHull(t),n&&n.value()}renderPoints(t,n){void 0!==n||t&&"function"==typeof t.moveTo||(n=t,t=null),n=null==n?2:+n;const e=null==t?t=new Ru:void 0,{points:r}=this;for(let e=0,i=r.length;e<i;e+=2){const i=r[e],o=r[e+1];t.moveTo(i+n,o),t.arc(i,o,n,0,Uu)}return e&&e.value()}renderHull(t){const n=null==t?t=new Ru:void 0,{hull:e,points:r}=this,i=2*e[0],o=e.length;t.moveTo(r[i],r[i+1]);for(let n=1;n<o;++n){const i=2*e[n];t.lineTo(r[i],r[i+1])}return t.closePath(),n&&n.value()}hullPolygon(){const t=new Fu;return this.renderHull(t),t.value()}renderTriangle(t,n){const e=null==n?n=new Ru:void 0,{points:r,triangles:i}=this,o=2*i[t*=3],a=2*i[t+1],u=2*i[t+2];return n.moveTo(r[o],r[o+1]),n.lineTo(r[a],r[a+1]),n.lineTo(r[u],r[u+1]),n.closePath(),e&&e.value()}*trianglePolygons(){const{triangles:t}=this;for(let n=0,e=t.length/3;n<e;++n)yield this.trianglePolygon(n)}trianglePolygon(t){const n=new Fu;return this.renderTriangle(t,n),n.value()}}var ju={},Hu={},Xu=34,Gu=10,Vu=13;function Wu(t){return new Function("d","return {"+t.map((function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'})).join(",")+"}")}function Zu(t){var n=Object.create(null),e=[];return t.forEach((function(t){for(var r in t)r in n||e.push(n[r]=r)})),e}function Ku(t,n){var e=t+"",r=e.length;return r<n?new Array(n-r+1).join(0)+e:e}function Qu(t){var n,e=t.getUTCHours(),r=t.getUTCMinutes(),i=t.getUTCSeconds(),o=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":((n=t.getUTCFullYear())<0?"-"+Ku(-n,6):n>9999?"+"+Ku(n,6):Ku(n,4))+"-"+Ku(t.getUTCMonth()+1,2)+"-"+Ku(t.getUTCDate(),2)+(o?"T"+Ku(e,2)+":"+Ku(r,2)+":"+Ku(i,2)+"."+Ku(o,3)+"Z":i?"T"+Ku(e,2)+":"+Ku(r,2)+":"+Ku(i,2)+"Z":r||e?"T"+Ku(e,2)+":"+Ku(r,2)+"Z":"")}function Ju(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return Hu;if(f)return f=!1,ju;var n,r,i=a;if(t.charCodeAt(i)===Xu){for(;a++<o&&t.charCodeAt(a)!==Xu||t.charCodeAt(++a)===Xu;);return(n=a)>=o?c=!0:(r=t.charCodeAt(a++))===Gu?f=!0:r===Vu&&(f=!0,t.charCodeAt(a)===Gu&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;a<o;){if((r=t.charCodeAt(n=a++))===Gu)f=!0;else if(r===Vu)f=!0,t.charCodeAt(a)===Gu&&++a;else if(r!==e)continue;return t.slice(i,n)}return c=!0,t.slice(i,o)}for(t.charCodeAt(o-1)===Gu&&--o,t.charCodeAt(o-1)===Vu&&--o;(r=s())!==Hu;){for(var l=[];r!==ju&&r!==Hu;)l.push(r),r=s();n&&null==(l=n(l,u++))||i.push(l)}return i}function i(n,e){return n.map((function(n){return e.map((function(t){return a(n[t])})).join(t)}))}function o(n){return n.map(a).join(t)}function a(t){return null==t?"":t instanceof Date?Qu(t):n.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,n){var e,i,o=r(t,(function(t,r){if(e)return e(t,r-1);i=t,e=n?function(t,n){var e=Wu(t);return function(r,i){return n(e(r),i,t)}}(t,n):Wu(t)}));return o.columns=i||[],o},parseRows:r,format:function(n,e){return null==e&&(e=Zu(n)),[e.map(a).join(t)].concat(i(n,e)).join("\n")},formatBody:function(t,n){return null==n&&(n=Zu(t)),i(t,n).join("\n")},formatRows:function(t){return t.map(o).join("\n")},formatRow:o,formatValue:a}}var tc=Ju(","),nc=tc.parse,ec=tc.parseRows,rc=tc.format,ic=tc.formatBody,oc=tc.formatRows,ac=tc.formatRow,uc=tc.formatValue,cc=Ju("\t"),fc=cc.parse,sc=cc.parseRows,lc=cc.format,hc=cc.formatBody,dc=cc.formatRows,pc=cc.formatRow,gc=cc.formatValue;const yc=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function vc(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function _c(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function bc(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function mc(t,n){return fetch(t,n).then(bc)}function xc(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),mc(n,e).then((function(n){return t(n,r)}))}}var wc=xc(nc),Mc=xc(fc);function Tc(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(204!==t.status&&205!==t.status)return t.json()}function Ac(t){return(n,e)=>mc(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Sc=Ac("application/xml"),Ec=Ac("text/html"),Nc=Ac("image/svg+xml");function kc(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Cc(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Pc(t){return t[0]}function zc(t){return t[1]}function $c(t,n,e){var r=new Dc(null==n?Pc:n,null==e?zc:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Dc(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Rc(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Fc=$c.prototype=Dc.prototype;function qc(t){return function(){return t}}function Uc(t){return 1e-6*(t()-.5)}function Ic(t){return t.x+t.vx}function Oc(t){return t.y+t.vy}function Bc(t){return t.index}function Yc(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}Fc.copy=function(){var t,n,e=new Dc(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Rc(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Rc(n));return e},Fc.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return kc(this.cover(n,e),n,e,t)},Fc.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<c&&(c=r),r>s&&(s=r),i<f&&(f=i),i>l&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;e<o;++e)kc(this,a[e],u[e],t[e]);return this},Fc.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{for(var a,u,c=i-e||1,f=this._root;e>t||t>=i||r>n||n>=o;)switch(u=(n<r)<<1|t<e,(a=new Array(4))[u]=f,f=a,c*=2,u){case 0:i=e+c,o=r+c;break;case 1:e=i-c,o=r+c;break;case 2:i=e+c,r=o-c;break;case 3:e=i-c,r=o-c}this._root&&this._root.length&&(this._root=f)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},Fc.data=function(){var t=[];return this.visit((function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)})),t},Fc.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Fc.find=function(t,n,e){var r,i,o,a,u,c,f,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],g=this._root;for(g&&p.push(new Cc(g,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);c=p.pop();)if(!(!(g=c.node)||(i=c.x0)>h||(o=c.y0)>d||(a=c.x1)<s||(u=c.y1)<l))if(g.length){var y=(i+a)/2,v=(o+u)/2;p.push(new Cc(g[3],y,v,a,u),new Cc(g[2],i,v,y,u),new Cc(g[1],y,o,a,v),new Cc(g[0],i,o,y,v)),(f=(n>=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=g.data}}return r},Fc.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,c,f,s,l,h,d=this._root,p=this._x0,g=this._y0,y=this._x1,v=this._y1;if(!d)return this;if(d.length)for(;;){if((f=o>=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},Fc.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},Fc.root=function(){return this._root},Fc.size=function(){var t=0;return this.visit((function(n){if(!n.length)do{++t}while(n=n.next)})),t},Fc.visit=function(t){var n,e,r,i,o,a,u=[],c=this._root;for(c&&u.push(new Cc(c,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&c.length){var f=(r+o)/2,s=(i+a)/2;(e=c[3])&&u.push(new Cc(e,f,s,o,a)),(e=c[2])&&u.push(new Cc(e,r,s,f,a)),(e=c[1])&&u.push(new Cc(e,f,i,o,s)),(e=c[0])&&u.push(new Cc(e,r,i,f,s))}return this},Fc.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Cc(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,c=n.x1,f=n.y1,s=(a+c)/2,l=(u+f)/2;(o=i[0])&&e.push(new Cc(o,a,u,s,l)),(o=i[1])&&e.push(new Cc(o,s,u,c,l)),(o=i[2])&&e.push(new Cc(o,a,l,s,f)),(o=i[3])&&e.push(new Cc(o,s,l,c,f))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},Fc.x=function(t){return arguments.length?(this._x=t,this):this._x},Fc.y=function(t){return arguments.length?(this._y=t,this):this._y};const Lc=1664525,jc=1013904223,Hc=4294967296;function Xc(t){return t.x}function Gc(t){return t.y}var Vc=Math.PI*(3-Math.sqrt(5));function Wc(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Zc(t){return(t=Wc(Math.abs(t)))?t[1]:NaN}var Kc,Qc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Jc(t){if(!(n=Qc.exec(t)))throw new Error("invalid format: "+t);var n;return new tf({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function tf(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function nf(t,n){var e=Wc(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}Jc.prototype=tf.prototype,tf.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ef={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>nf(100*t,n),r:nf,s:function(t,n){var e=Wc(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(Kc=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Wc(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function rf(t){return t}var of,af=Array.prototype.map,uf=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function cf(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?rf:(n=af.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?rf:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(af.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=Jc(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):ef[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=ef[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var T=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),T&&0==+t&&"+"!==l&&(T=!1),h=(T?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?uf[8+Kc/3]:"")+M+(T&&"("===l?")":""),w)for(i=-1,o=t.length;++i<o;)if(48>(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var A=h.length+t.length+M.length,S=A<p?new Array(p-A+1).join(n):"";switch(g&&d&&(t=r(S+t,S.length?p-M.length:1/0),S=""),e){case"<":t=h+t+M+S;break;case"=":t=h+S+t+M;break;case"^":t=S.slice(0,A=S.length>>1)+h+t+M+S.slice(A);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=Jc(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Zc(n)/3))),i=Math.pow(10,-r),o=uf[8+r/3];return function(t){return e(i*t)+o}}}}function ff(n){return of=cf(n),t.format=of.format,t.formatPrefix=of.formatPrefix,of}function sf(t){return Math.max(0,-Zc(Math.abs(t)))}function lf(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Zc(n)/3)))-Zc(Math.abs(t)))}function hf(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Zc(n)-Zc(t))+1}t.format=void 0,t.formatPrefix=void 0,ff({thousands:",",grouping:[3],currency:["$",""]});var df=1e-6,pf=1e-12,gf=Math.PI,yf=gf/2,vf=gf/4,_f=2*gf,bf=180/gf,mf=gf/180,xf=Math.abs,wf=Math.atan,Mf=Math.atan2,Tf=Math.cos,Af=Math.ceil,Sf=Math.exp,Ef=Math.hypot,Nf=Math.log,kf=Math.pow,Cf=Math.sin,Pf=Math.sign||function(t){return t>0?1:t<0?-1:0},zf=Math.sqrt,$f=Math.tan;function Df(t){return t>1?0:t<-1?gf:Math.acos(t)}function Rf(t){return t>1?yf:t<-1?-yf:Math.asin(t)}function Ff(t){return(t=Cf(t/2))*t}function qf(){}function Uf(t,n){t&&Of.hasOwnProperty(t.type)&&Of[t.type](t,n)}var If={Feature:function(t,n){Uf(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)Uf(e[r].geometry,n)}},Of={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){Bf(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Bf(e[r],n,0)},Polygon:function(t,n){Yf(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Yf(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)Uf(e[r],n)}};function Bf(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Yf(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)Bf(t[e],n,1);n.polygonEnd()}function Lf(t,n){t&&If.hasOwnProperty(t.type)?If[t.type](t,n):Uf(t,n)}var jf,Hf,Xf,Gf,Vf,Wf,Zf,Kf,Qf,Jf,ts,ns,es,rs,is,os,as=new T,us=new T,cs={point:qf,lineStart:qf,lineEnd:qf,polygonStart:function(){as=new T,cs.lineStart=fs,cs.lineEnd=ss},polygonEnd:function(){var t=+as;us.add(t<0?_f+t:t),this.lineStart=this.lineEnd=this.point=qf},sphere:function(){us.add(_f)}};function fs(){cs.point=ls}function ss(){hs(jf,Hf)}function ls(t,n){cs.point=hs,jf=t,Hf=n,Xf=t*=mf,Gf=Tf(n=(n*=mf)/2+vf),Vf=Cf(n)}function hs(t,n){var e=(t*=mf)-Xf,r=e>=0?1:-1,i=r*e,o=Tf(n=(n*=mf)/2+vf),a=Cf(n),u=Vf*a,c=Gf*o+u*Tf(i),f=u*r*Cf(i);as.add(Mf(f,c)),Xf=t,Gf=o,Vf=a}function ds(t){return[Mf(t[1],t[0]),Rf(t[2])]}function ps(t){var n=t[0],e=t[1],r=Tf(e);return[r*Tf(n),r*Cf(n),Cf(e)]}function gs(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function ys(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function vs(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function _s(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function bs(t){var n=zf(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var ms,xs,ws,Ms,Ts,As,Ss,Es,Ns,ks,Cs,Ps,zs,$s,Ds,Rs,Fs={point:qs,lineStart:Is,lineEnd:Os,polygonStart:function(){Fs.point=Bs,Fs.lineStart=Ys,Fs.lineEnd=Ls,rs=new T,cs.polygonStart()},polygonEnd:function(){cs.polygonEnd(),Fs.point=qs,Fs.lineStart=Is,Fs.lineEnd=Os,as<0?(Wf=-(Kf=180),Zf=-(Qf=90)):rs>df?Qf=90:rs<-df&&(Zf=-90),os[0]=Wf,os[1]=Kf},sphere:function(){Wf=-(Kf=180),Zf=-(Qf=90)}};function qs(t,n){is.push(os=[Wf=t,Kf=t]),n<Zf&&(Zf=n),n>Qf&&(Qf=n)}function Us(t,n){var e=ps([t*mf,n*mf]);if(es){var r=ys(es,e),i=ys([r[1],-r[0],0],r);bs(i),i=ds(i);var o,a=t-Jf,u=a>0?1:-1,c=i[0]*bf*u,f=xf(a)>180;f^(u*Jf<c&&c<u*t)?(o=i[1]*bf)>Qf&&(Qf=o):f^(u*Jf<(c=(c+360)%360-180)&&c<u*t)?(o=-i[1]*bf)<Zf&&(Zf=o):(n<Zf&&(Zf=n),n>Qf&&(Qf=n)),f?t<Jf?js(Wf,t)>js(Wf,Kf)&&(Kf=t):js(t,Kf)>js(Wf,Kf)&&(Wf=t):Kf>=Wf?(t<Wf&&(Wf=t),t>Kf&&(Kf=t)):t>Jf?js(Wf,t)>js(Wf,Kf)&&(Kf=t):js(t,Kf)>js(Wf,Kf)&&(Wf=t)}else is.push(os=[Wf=t,Kf=t]);n<Zf&&(Zf=n),n>Qf&&(Qf=n),es=e,Jf=t}function Is(){Fs.point=Us}function Os(){os[0]=Wf,os[1]=Kf,Fs.point=qs,es=null}function Bs(t,n){if(es){var e=t-Jf;rs.add(xf(e)>180?e+(e>0?360:-360):e)}else ts=t,ns=n;cs.point(t,n),Us(t,n)}function Ys(){cs.lineStart()}function Ls(){Bs(ts,ns),cs.lineEnd(),xf(rs)>df&&(Wf=-(Kf=180)),os[0]=Wf,os[1]=Kf,es=null}function js(t,n){return(n-=t)<0?n+360:n}function Hs(t,n){return t[0]-n[0]}function Xs(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var Gs={sphere:qf,point:Vs,lineStart:Zs,lineEnd:Js,polygonStart:function(){Gs.lineStart=tl,Gs.lineEnd=nl},polygonEnd:function(){Gs.lineStart=Zs,Gs.lineEnd=Js}};function Vs(t,n){t*=mf;var e=Tf(n*=mf);Ws(e*Tf(t),e*Cf(t),Cf(n))}function Ws(t,n,e){++ms,ws+=(t-ws)/ms,Ms+=(n-Ms)/ms,Ts+=(e-Ts)/ms}function Zs(){Gs.point=Ks}function Ks(t,n){t*=mf;var e=Tf(n*=mf);$s=e*Tf(t),Ds=e*Cf(t),Rs=Cf(n),Gs.point=Qs,Ws($s,Ds,Rs)}function Qs(t,n){t*=mf;var e=Tf(n*=mf),r=e*Tf(t),i=e*Cf(t),o=Cf(n),a=Mf(zf((a=Ds*o-Rs*i)*a+(a=Rs*r-$s*o)*a+(a=$s*i-Ds*r)*a),$s*r+Ds*i+Rs*o);xs+=a,As+=a*($s+($s=r)),Ss+=a*(Ds+(Ds=i)),Es+=a*(Rs+(Rs=o)),Ws($s,Ds,Rs)}function Js(){Gs.point=Vs}function tl(){Gs.point=el}function nl(){rl(Ps,zs),Gs.point=Vs}function el(t,n){Ps=t,zs=n,t*=mf,n*=mf,Gs.point=rl;var e=Tf(n);$s=e*Tf(t),Ds=e*Cf(t),Rs=Cf(n),Ws($s,Ds,Rs)}function rl(t,n){t*=mf;var e=Tf(n*=mf),r=e*Tf(t),i=e*Cf(t),o=Cf(n),a=Ds*o-Rs*i,u=Rs*r-$s*o,c=$s*i-Ds*r,f=Ef(a,u,c),s=Rf(f),l=f&&-s/f;Ns.add(l*a),ks.add(l*u),Cs.add(l*c),xs+=s,As+=s*($s+($s=r)),Ss+=s*(Ds+(Ds=i)),Es+=s*(Rs+(Rs=o)),Ws($s,Ds,Rs)}function il(t){return function(){return t}}function ol(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function al(t,n){return xf(t)>gf&&(t-=Math.round(t/_f)*_f),[t,n]}function ul(t,n,e){return(t%=_f)?n||e?ol(fl(t),sl(n,e)):fl(t):n||e?sl(n,e):al}function cl(t){return function(n,e){return xf(n+=t)>gf&&(n-=Math.round(n/_f)*_f),[n,e]}}function fl(t){var n=cl(t);return n.invert=cl(-t),n}function sl(t,n){var e=Tf(t),r=Cf(t),i=Tf(n),o=Cf(n);function a(t,n){var a=Tf(n),u=Tf(t)*a,c=Cf(t)*a,f=Cf(n),s=f*e+u*r;return[Mf(c*i-s*o,u*e-f*r),Rf(s*i+c*o)]}return a.invert=function(t,n){var a=Tf(n),u=Tf(t)*a,c=Cf(t)*a,f=Cf(n),s=f*i-c*o;return[Mf(c*i+f*o,u*e+s*r),Rf(s*e-u*r)]},a}function ll(t){function n(n){return(n=t(n[0]*mf,n[1]*mf))[0]*=bf,n[1]*=bf,n}return t=ul(t[0]*mf,t[1]*mf,t.length>2?t[2]*mf:0),n.invert=function(n){return(n=t.invert(n[0]*mf,n[1]*mf))[0]*=bf,n[1]*=bf,n},n}function hl(t,n,e,r,i,o){if(e){var a=Tf(n),u=Cf(n),c=r*e;null==i?(i=n+r*_f,o=n-c/2):(i=dl(a,i),o=dl(a,o),(r>0?i<o:i>o)&&(i+=r*_f));for(var f,s=i;r>0?s>o:s<o;s-=c)f=ds([a,-u*Tf(s),-u*Cf(s)]),t.point(f[0],f[1])}}function dl(t,n){(n=ps(n))[0]-=t,bs(n);var e=Df(-n[1]);return((-n[2]<0?-e:e)+_f-df)%_f}function pl(){var t,n=[];return{point:function(n,e,r){t.push([n,e,r])},lineStart:function(){n.push(t=[])},lineEnd:qf,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function gl(t,n){return xf(t[0]-n[0])<df&&xf(t[1]-n[1])<df}function yl(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function vl(t,n,e,r,i){var o,a,u=[],c=[];if(t.forEach((function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(gl(r,a)){if(!r[2]&&!a[2]){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a[0]+=2*df}u.push(e=new yl(r,t,null,!0)),c.push(e.o=new yl(r,null,e,!1)),u.push(e=new yl(a,t,null,!1)),c.push(e.o=new yl(a,null,e,!0))}})),u.length){for(c.sort(n),_l(u),_l(c),o=0,a=c.length;o<a;++o)c[o].e=e=!e;for(var f,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;f=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=f.length;o<a;++o)i.point((s=f[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(f=h.p.z,o=f.length-1;o>=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function _l(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function bl(t){return xf(t[0])<=gf?t[0]:Pf(t[0])*((xf(t[0])+gf)%_f-gf)}function ml(t,n){var e=bl(n),r=n[1],i=Cf(r),o=[Cf(e),-Tf(e),0],a=0,u=0,c=new T;1===i?r=yf+df:-1===i&&(r=-yf-df);for(var f=0,s=t.length;f<s;++f)if(h=(l=t[f]).length)for(var l,h,d=l[h-1],p=bl(d),g=d[1]/2+vf,y=Cf(g),v=Tf(g),_=0;_<h;++_,p=m,y=w,v=M,d=b){var b=l[_],m=bl(b),x=b[1]/2+vf,w=Cf(x),M=Tf(x),A=m-p,S=A>=0?1:-1,E=S*A,N=E>gf,k=y*w;if(c.add(Mf(k*S*Cf(E),v*M+k*Tf(E))),a+=N?A+S*_f:A,N^p>=e^m>=e){var C=ys(ps(d),ps(b));bs(C);var P=ys(o,C);bs(P);var z=(N^A>=0?-1:1)*Rf(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=N^A>=0?1:-1)}}return(a<-df||a<df&&c<-pf)^1&u}function xl(t,n,e,r){return function(i){var o,a,u,c=n(i),f=pl(),s=n(f),l=!1,h={point:d,lineStart:g,lineEnd:y,polygonStart:function(){h.point=v,h.lineStart=_,h.lineEnd=b,a=[],o=[]},polygonEnd:function(){h.point=d,h.lineStart=g,h.lineEnd=y,a=ft(a);var t=ml(o,r);a.length?(l||(i.polygonStart(),l=!0),vl(a,Ml,t,e,i)):t&&(l||(i.polygonStart(),l=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),l&&(i.polygonEnd(),l=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(n,e){t(n,e)&&i.point(n,e)}function p(t,n){c.point(t,n)}function g(){h.point=p,c.lineStart()}function y(){h.point=d,c.lineEnd()}function v(t,n){u.push([t,n]),s.point(t,n)}function _(){s.lineStart(),u=[]}function b(){v(u[0][0],u[0][1]),s.lineEnd();var t,n,e,r,c=s.clean(),h=f.result(),d=h.length;if(u.pop(),o.push(u),u=null,d)if(1&c){if((n=(e=h[0]).length-1)>0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else d>1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(wl))}return h}}function wl(t){return t.length>1}function Ml(t,n){return((t=t.x)[0]<0?t[1]-yf-df:yf-t[1])-((n=n.x)[0]<0?n[1]-yf-df:yf-n[1])}al.invert=al;var Tl=xl((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?gf:-gf,c=xf(o-e);xf(c-gf)<df?(t.point(e,r=(r+a)/2>0?yf:-yf),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=gf&&(xf(e-i)<df&&(e-=i*df),xf(o-u)<df&&(o-=u*df),r=function(t,n,e,r){var i,o,a=Cf(t-e);return xf(a)>df?wf((Cf(n)*(o=Tf(r))*Cf(e)-Cf(r)*(i=Tf(n))*Cf(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*yf,r.point(-gf,i),r.point(0,i),r.point(gf,i),r.point(gf,0),r.point(gf,-i),r.point(0,-i),r.point(-gf,-i),r.point(-gf,0),r.point(-gf,i);else if(xf(t[0]-n[0])>df){var o=t[0]<n[0]?gf:-gf;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}),[-gf,-yf]);function Al(t){var n=Tf(t),e=2*mf,r=n>0,i=xf(n)>df;function o(t,e){return Tf(t)*Tf(e)>n}function a(t,e,r){var i=[1,0,0],o=ys(ps(t),ps(e)),a=gs(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=ys(i,o),h=_s(i,f);vs(h,_s(o,s));var d=l,p=gs(h,d),g=gs(d,d),y=p*p-g*(gs(h,h)-1);if(!(y<0)){var v=zf(y),_=_s(d,(-p-v)/g);if(vs(_,h),_=ds(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x<m&&(b=m,m=x,x=b);var T=x-m,A=xf(T-gf)<df;if(!A&&M<w&&(b=w,w=M,M=b),A||T<df?A?w+M>0^_[1]<(xf(_[0]-m)<df?w:M):w<=_[1]&&_[1]<=M:T>gf^(m<=_[0]&&_[0]<=x)){var S=_s(d,(-p+v)/g);return vs(S,h),[_,ds(S)]}}}function u(n,e){var i=r?t:gf-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return xl(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?gf:-gf),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||gl(n,d)||gl(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&gl(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){hl(o,t,e,i,n,r)}),r?[0,-t]:[-gf,t-gf])}var Sl,El,Nl,kl,Cl=1e9,Pl=-Cl;function zl(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return xf(r[0]-t)<df?i>0?0:3:xf(r[0]-e)<df?i>0?2:1:xf(r[1]-n)<df?i>0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=pl(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;e<i;++e)for(var o,a,u=f[e],c=1,s=u.length,l=u[0],h=l[0],d=l[1];c<s;++c)o=h,a=d,h=(l=u[c])[0],d=l[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=ft(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&vl(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(Pl,Math.min(Cl,p)),g=Math.max(Pl,Math.min(Cl,g))],m=[o=Math.max(Pl,Math.min(Cl,o)),a=Math.max(Pl,Math.min(Cl,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<f)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a<f)return;a<s&&(s=a)}if(a=r-c,h||!(a>0)){if(a/=h,h<0){if(a<f)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a<f)return;a<s&&(s=a)}return f>0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var $l={sphere:qf,point:qf,lineStart:function(){$l.point=Rl,$l.lineEnd=Dl},lineEnd:qf,polygonStart:qf,polygonEnd:qf};function Dl(){$l.point=$l.lineEnd=qf}function Rl(t,n){El=t*=mf,Nl=Cf(n*=mf),kl=Tf(n),$l.point=Fl}function Fl(t,n){t*=mf;var e=Cf(n*=mf),r=Tf(n),i=xf(t-El),o=Tf(i),a=r*Cf(i),u=kl*e-Nl*r*o,c=Nl*e+kl*r*o;Sl.add(Mf(zf(a*a+u*u),c)),El=t,Nl=e,kl=r}function ql(t){return Sl=new T,Lf(t,$l),+Sl}var Ul=[null,null],Il={type:"LineString",coordinates:Ul};function Ol(t,n){return Ul[0]=t,Ul[1]=n,ql(Il)}var Bl={Feature:function(t,n){return Ll(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(Ll(e[r].geometry,n))return!0;return!1}},Yl={Sphere:function(){return!0},Point:function(t,n){return jl(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(jl(e[r],n))return!0;return!1},LineString:function(t,n){return Hl(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Hl(e[r],n))return!0;return!1},Polygon:function(t,n){return Xl(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Xl(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(Ll(e[r],n))return!0;return!1}};function Ll(t,n){return!(!t||!Yl.hasOwnProperty(t.type))&&Yl[t.type](t,n)}function jl(t,n){return 0===Ol(t,n)}function Hl(t,n){for(var e,r,i,o=0,a=t.length;o<a;o++){if(0===(r=Ol(t[o],n)))return!0;if(o>0&&(i=Ol(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))<pf*i)return!0;e=r}return!1}function Xl(t,n){return!!ml(t.map(Gl),Vl(n))}function Gl(t){return(t=t.map(Vl)).pop(),t}function Vl(t){return[t[0]*mf,t[1]*mf]}function Wl(t,n,e){var r=lt(t,n-df,e).concat(n);return function(t){return r.map((function(n){return[t,n]}))}}function Zl(t,n,e){var r=lt(t,n-df,e).concat(n);return function(t){return r.map((function(n){return[n,t]}))}}function Kl(){var t,n,e,r,i,o,a,u,c,f,s,l,h=10,d=h,p=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:_()}}function _(){return lt(Af(r/p)*p,e,p).map(s).concat(lt(Af(u/g)*g,a,g).map(l)).concat(lt(Af(n/h)*h,t,h).filter((function(t){return xf(t%p)>df})).map(c)).concat(lt(Af(o/d)*d,i,d).filter((function(t){return xf(t%g)>df})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=Wl(o,i,90),f=Zl(n,t,y),s=Wl(u,a,90),l=Zl(r,e,y),v):y},v.extentMajor([[-180,-90+df],[180,90-df]]).extentMinor([[-180,-80-df],[180,80+df]])}var Ql,Jl,th,nh,eh=t=>t,rh=new T,ih=new T,oh={point:qf,lineStart:qf,lineEnd:qf,polygonStart:function(){oh.lineStart=ah,oh.lineEnd=fh},polygonEnd:function(){oh.lineStart=oh.lineEnd=oh.point=qf,rh.add(xf(ih)),ih=new T},result:function(){var t=rh/2;return rh=new T,t}};function ah(){oh.point=uh}function uh(t,n){oh.point=ch,Ql=th=t,Jl=nh=n}function ch(t,n){ih.add(nh*t-th*n),th=t,nh=n}function fh(){ch(Ql,Jl)}var sh=oh,lh=1/0,hh=lh,dh=-lh,ph=dh,gh={point:function(t,n){t<lh&&(lh=t);t>dh&&(dh=t);n<hh&&(hh=n);n>ph&&(ph=n)},lineStart:qf,lineEnd:qf,polygonStart:qf,polygonEnd:qf,result:function(){var t=[[lh,hh],[dh,ph]];return dh=ph=-(hh=lh=1/0),t}};var yh,vh,_h,bh,mh=gh,xh=0,wh=0,Mh=0,Th=0,Ah=0,Sh=0,Eh=0,Nh=0,kh=0,Ch={point:Ph,lineStart:zh,lineEnd:Rh,polygonStart:function(){Ch.lineStart=Fh,Ch.lineEnd=qh},polygonEnd:function(){Ch.point=Ph,Ch.lineStart=zh,Ch.lineEnd=Rh},result:function(){var t=kh?[Eh/kh,Nh/kh]:Sh?[Th/Sh,Ah/Sh]:Mh?[xh/Mh,wh/Mh]:[NaN,NaN];return xh=wh=Mh=Th=Ah=Sh=Eh=Nh=kh=0,t}};function Ph(t,n){xh+=t,wh+=n,++Mh}function zh(){Ch.point=$h}function $h(t,n){Ch.point=Dh,Ph(_h=t,bh=n)}function Dh(t,n){var e=t-_h,r=n-bh,i=zf(e*e+r*r);Th+=i*(_h+t)/2,Ah+=i*(bh+n)/2,Sh+=i,Ph(_h=t,bh=n)}function Rh(){Ch.point=Ph}function Fh(){Ch.point=Uh}function qh(){Ih(yh,vh)}function Uh(t,n){Ch.point=Ih,Ph(yh=_h=t,vh=bh=n)}function Ih(t,n){var e=t-_h,r=n-bh,i=zf(e*e+r*r);Th+=i*(_h+t)/2,Ah+=i*(bh+n)/2,Sh+=i,Eh+=(i=bh*t-_h*n)*(_h+t),Nh+=i*(bh+n),kh+=3*i,Ph(_h=t,bh=n)}var Oh=Ch;function Bh(t){this._context=t}Bh.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,_f)}},result:qf};var Yh,Lh,jh,Hh,Xh,Gh=new T,Vh={point:qf,lineStart:function(){Vh.point=Wh},lineEnd:function(){Yh&&Zh(Lh,jh),Vh.point=qf},polygonStart:function(){Yh=!0},polygonEnd:function(){Yh=null},result:function(){var t=+Gh;return Gh=new T,t}};function Wh(t,n){Vh.point=Zh,Lh=Hh=t,jh=Xh=n}function Zh(t,n){Hh-=t,Xh-=n,Gh.add(zf(Hh*Hh+Xh*Xh)),Hh=t,Xh=n}var Kh=Vh;let Qh,Jh,td,nd;class ed{constructor(t){this._append=null==t?rd:function(t){const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);if(n>15)return rd;if(n!==Qh){const t=10**n;Qh=n,Jh=function(n){let e=1;this._+=n[0];for(const r=n.length;e<r;++e)this._+=Math.round(arguments[e]*t)/t+n[e]}}return Jh}(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(t,n){switch(this._point){case 0:this._append`M${t},${n}`,this._point=1;break;case 1:this._append`L${t},${n}`;break;default:if(this._append`M${t},${n}`,this._radius!==td||this._append!==Jh){const t=this._radius,n=this._;this._="",this._append`m0,${t}a${t},${t} 0 1,1 0,${-2*t}a${t},${t} 0 1,1 0,${2*t}z`,td=t,Jh=this._append,nd=this._,this._=n}this._+=nd}}result(){const t=this._;return this._="",t.length?t:null}}function rd(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function id(t){return function(n){var e=new od;for(var r in t)e[r]=t[r];return e.stream=n,e}}function od(){}function ad(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Lf(e,t.stream(mh)),n(mh.result()),null!=r&&t.clipExtent(r),t}function ud(t,n,e){return ad(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function cd(t,n,e){return ud(t,[[0,0],n],e)}function fd(t,n,e){return ad(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function sd(t,n,e){return ad(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}od.prototype={constructor:od,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var ld=16,hd=Tf(30*mf);function dd(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=zf(m*m+x*x+w*w),T=Rf(w/=M),A=xf(xf(w)-1)<df||xf(o-l)<df?(o+l)/2:Mf(x,m),S=t(A,T),E=S[0],N=S[1],k=E-r,C=N-i,P=_*k-v*C;(P*P/b>n||xf((v*k+_*C)/b-.5)>.3||a*h+u*d+c*p<hd)&&(e(r,i,o,a,u,c,E,N,A,m/=M,x/=M,w,g,y),y.point(E,N),e(E,N,A,m,x,w,f,s,l,h,d,p,g,y))}}return function(n){var r,i,o,a,u,c,f,s,l,h,d,p,g={point:y,lineStart:v,lineEnd:b,polygonStart:function(){n.polygonStart(),g.lineStart=m},polygonEnd:function(){n.polygonEnd(),g.lineStart=v}};function y(e,r){e=t(e,r),n.point(e[0],e[1])}function v(){s=NaN,g.point=_,n.lineStart()}function _(r,i){var o=ps([r,i]),a=t(r,i);e(s,l,f,h,d,p,s=a[0],l=a[1],f=r,h=o[0],d=o[1],p=o[2],ld,n),n.point(s,l)}function b(){g.point=y,n.lineEnd()}function m(){v(),g.point=x,g.lineEnd=w}function x(t,n){_(r=t,n),i=s,o=l,a=h,u=d,c=p,g.point=_}function w(){e(s,l,f,h,d,p,i,o,r,a,u,c,ld,n),g.lineEnd=b,b()}return g}}(t,n):function(t){return id({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}var pd=id({point:function(t,n){this.stream.point(t*mf,n*mf)}});function gd(t,n,e,r,i,o){if(!o)return function(t,n,e,r,i){function o(o,a){return[n+t*(o*=r),e-t*(a*=i)]}return o.invert=function(o,a){return[(o-n)/t*r,(e-a)/t*i]},o}(t,n,e,r,i);var a=Tf(o),u=Cf(o),c=a*t,f=u*t,s=a/t,l=u/t,h=(u*e-a*n)/t,d=(u*n+a*e)/t;function p(t,o){return[c*(t*=r)-f*(o*=i)+n,e-f*t-c*o]}return p.invert=function(t,n){return[r*(s*t-l*n+h),i*(d-l*t-s*n)]},p}function yd(t){return vd((function(){return t}))()}function vd(t){var n,e,r,i,o,a,u,c,f,s,l=150,h=480,d=250,p=0,g=0,y=0,v=0,_=0,b=0,m=1,x=1,w=null,M=Tl,T=null,A=eh,S=.5;function E(t){return c(t[0]*mf,t[1]*mf)}function N(t){return(t=c.invert(t[0],t[1]))&&[t[0]*bf,t[1]*bf]}function k(){var t=gd(l,0,0,m,x,b).apply(null,n(p,g)),r=gd(l,h-t[0],d-t[1],m,x,b);return e=ul(y,v,_),u=ol(n,r),c=ol(e,u),a=dd(u,S),C()}function C(){return f=s=null,E}return E.stream=function(t){return f&&s===t?f:f=pd(function(t){return id({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(e)(M(a(A(s=t)))))},E.preclip=function(t){return arguments.length?(M=t,w=void 0,C()):M},E.postclip=function(t){return arguments.length?(A=t,T=r=i=o=null,C()):A},E.clipAngle=function(t){return arguments.length?(M=+t?Al(w=t*mf):(w=null,Tl),C()):w*bf},E.clipExtent=function(t){return arguments.length?(A=null==t?(T=r=i=o=null,eh):zl(T=+t[0][0],r=+t[0][1],i=+t[1][0],o=+t[1][1]),C()):null==T?null:[[T,r],[i,o]]},E.scale=function(t){return arguments.length?(l=+t,k()):l},E.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],k()):[h,d]},E.center=function(t){return arguments.length?(p=t[0]%360*mf,g=t[1]%360*mf,k()):[p*bf,g*bf]},E.rotate=function(t){return arguments.length?(y=t[0]%360*mf,v=t[1]%360*mf,_=t.length>2?t[2]%360*mf:0,k()):[y*bf,v*bf,_*bf]},E.angle=function(t){return arguments.length?(b=t%360*mf,k()):b*bf},E.reflectX=function(t){return arguments.length?(m=t?-1:1,k()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,k()):x<0},E.precision=function(t){return arguments.length?(a=dd(u,S=t*t),C()):zf(S)},E.fitExtent=function(t,n){return ud(E,t,n)},E.fitSize=function(t,n){return cd(E,t,n)},E.fitWidth=function(t,n){return fd(E,t,n)},E.fitHeight=function(t,n){return sd(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&N,k()}}function _d(t){var n=0,e=gf/3,r=vd(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*mf,e=t[1]*mf):[n*bf,e*bf]},i}function bd(t,n){var e=Cf(t),r=(e+Cf(n))/2;if(xf(r)<df)return function(t){var n=Tf(t);function e(t,e){return[t*n,Cf(e)/n]}return e.invert=function(t,e){return[t/n,Rf(e*n)]},e}(t);var i=1+e*(2*r-e),o=zf(i)/r;function a(t,n){var e=zf(i-2*r*Cf(n))/r;return[e*Cf(t*=r),o-e*Tf(t)]}return a.invert=function(t,n){var e=o-n,a=Mf(t,xf(e))*Pf(e);return e*r<0&&(a-=gf*Pf(t)*Pf(e)),[a/r,Rf((i-(t*t+e*e)*r*r)/(2*r))]},a}function md(){return _d(bd).scale(155.424).center([0,33.6442])}function xd(){return md().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function wd(t){return function(n,e){var r=Tf(n),i=Tf(e),o=t(r*i);return o===1/0?[2,0]:[o*i*Cf(n),o*Cf(e)]}}function Md(t){return function(n,e){var r=zf(n*n+e*e),i=t(r),o=Cf(i),a=Tf(i);return[Mf(n*o,r*a),Rf(r&&e*o/r)]}}var Td=wd((function(t){return zf(2/(1+t))}));Td.invert=Md((function(t){return 2*Rf(t/2)}));var Ad=wd((function(t){return(t=Df(t))&&t/Cf(t)}));function Sd(t,n){return[t,Nf($f((yf+n)/2))]}function Ed(t){var n,e,r,i=yd(t),o=i.center,a=i.scale,u=i.translate,c=i.clipExtent,f=null;function s(){var o=gf*a(),u=i(ll(i.rotate()).invert([0,0]));return c(null==f?[[u[0]-o,u[1]-o],[u[0]+o,u[1]+o]]:t===Sd?[[Math.max(u[0]-o,f),n],[Math.min(u[0]+o,e),r]]:[[f,Math.max(u[1]-o,n)],[e,Math.min(u[1]+o,r)]])}return i.scale=function(t){return arguments.length?(a(t),s()):a()},i.translate=function(t){return arguments.length?(u(t),s()):u()},i.center=function(t){return arguments.length?(o(t),s()):o()},i.clipExtent=function(t){return arguments.length?(null==t?f=n=e=r=null:(f=+t[0][0],n=+t[0][1],e=+t[1][0],r=+t[1][1]),s()):null==f?null:[[f,n],[e,r]]},s()}function Nd(t){return $f((yf+t)/2)}function kd(t,n){var e=Tf(t),r=t===n?Cf(t):Nf(e/Tf(n))/Nf(Nd(n)/Nd(t)),i=e*kf(Nd(t),r)/r;if(!r)return Sd;function o(t,n){i>0?n<-yf+df&&(n=-yf+df):n>yf-df&&(n=yf-df);var e=i/kf(Nd(n),r);return[e*Cf(r*t),i-e*Tf(r*t)]}return o.invert=function(t,n){var e=i-n,o=Pf(r)*zf(t*t+e*e),a=Mf(t,xf(e))*Pf(e);return e*r<0&&(a-=gf*Pf(t)*Pf(e)),[a/r,2*wf(kf(i/o,1/r))-yf]},o}function Cd(t,n){return[t,n]}function Pd(t,n){var e=Tf(t),r=t===n?Cf(t):(e-Tf(n))/(n-t),i=e/r+t;if(xf(r)<df)return Cd;function o(t,n){var e=i-n,o=r*t;return[e*Cf(o),i-e*Tf(o)]}return o.invert=function(t,n){var e=i-n,o=Mf(t,xf(e))*Pf(e);return e*r<0&&(o-=gf*Pf(t)*Pf(e)),[o/r,i-Pf(r)*zf(t*t+e*e)]},o}Ad.invert=Md((function(t){return t})),Sd.invert=function(t,n){return[t,2*wf(Sf(n))-yf]},Cd.invert=Cd;var zd=1.340264,$d=-.081106,Dd=893e-6,Rd=.003796,Fd=zf(3)/2;function qd(t,n){var e=Rf(Fd*Cf(n)),r=e*e,i=r*r*r;return[t*Tf(e)/(Fd*(zd+3*$d*r+i*(7*Dd+9*Rd*r))),e*(zd+$d*r+i*(Dd+Rd*r))]}function Ud(t,n){var e=Tf(n),r=Tf(t)*e;return[e*Cf(t)/r,Cf(n)/r]}function Id(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Od(t,n){return[Tf(n)*Cf(t),Cf(n)]}function Bd(t,n){var e=Tf(n),r=1+Tf(t)*e;return[e*Cf(t)/r,Cf(n)/r]}function Yd(t,n){return[Nf($f((yf+n)/2)),-t]}function Ld(t,n){return t.parent===n.parent?1:2}function jd(t,n){return t+n.x}function Hd(t,n){return Math.max(t,n.y)}function Xd(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Gd(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Wd)):void 0===n&&(n=Vd);for(var e,r,i,o,a,u=new Qd(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Qd(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Kd)}function Vd(t){return t.children}function Wd(t){return Array.isArray(t)?t[1]:null}function Zd(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Kd(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Qd(t){this.data=t,this.depth=this.height=0,this.parent=null}function Jd(t){return null==t?null:tp(t)}function tp(t){if("function"!=typeof t)throw new Error;return t}function np(){return 0}function ep(t){return function(){return t}}qd.invert=function(t,n){for(var e,r=n,i=r*r,o=i*i*i,a=0;a<12&&(o=(i=(r-=e=(r*(zd+$d*i+o*(Dd+Rd*i))-n)/(zd+3*$d*i+o*(7*Dd+9*Rd*i)))*r)*i*i,!(xf(e)<pf));++a);return[Fd*t*(zd+3*$d*i+o*(7*Dd+9*Rd*i))/Tf(r),Rf(Cf(r)/Fd)]},Ud.invert=Md(wf),Id.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(xf(e)>df&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Od.invert=Md(Rf),Bd.invert=Md((function(t){return 2*wf(t)})),Yd.invert=function(t,n){return[-n,2*wf(Sf(t))-yf]},Qd.prototype=Gd.prototype={constructor:Qd,count:function(){return this.eachAfter(Xd)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r]);for(;o=u.pop();)t.call(n,o,++c,this);return this},eachBefore:function(t,n){for(var e,r,i=this,o=[i],a=-1;i=o.pop();)if(t.call(n,i,++a,this),e=i.children)for(r=e.length-1;r>=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Gd(this).eachBefore(Zd)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e])}while(o.length)}};const rp=1664525,ip=1013904223,op=4294967296;function ap(){let t=1;return()=>(t=(rp*t+ip)%op)/op}function up(t,n){for(var e,r,i=0,o=(t=function(t,n){let e,r,i=t.length;for(;i;)r=n()*i--|0,e=t[i],t[i]=t[r],t[r]=e;return t}(Array.from(t),n)).length,a=[];i<o;)e=t[i],r&&sp(r,e)?++i:(r=hp(a=cp(a,e)),i=0);return r}function cp(t,n){var e,r;if(lp(n,t))return[n];for(e=0;e<t.length;++e)if(fp(n,t[e])&&lp(dp(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(fp(dp(t[e],t[r]),n)&&fp(dp(t[e],n),t[r])&&fp(dp(t[r],n),t[e])&&lp(pp(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function fp(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function sp(t,n){var e=t.r-n.r+1e-9*Math.max(t.r,n.r,1),r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function lp(t,n){for(var e=0;e<n.length;++e)if(!sp(t,n[e]))return!1;return!0}function hp(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return dp(t[0],t[1]);case 3:return pp(t[0],t[1],t[2])}}function dp(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,c=o-e,f=a-r,s=u-i,l=Math.sqrt(c*c+f*f);return{x:(e+o+c/l*s)/2,y:(r+a+f/l*s)/2,r:(l+i+u)/2}}function pp(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,c=n.r,f=e.x,s=e.y,l=e.r,h=r-a,d=r-f,p=i-u,g=i-s,y=c-o,v=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+c*c,m=_-f*f-s*s+l*l,x=d*p-h*g,w=(p*m-g*b)/(2*x)-r,M=(g*y-p*v)/x,T=(d*b-h*m)/(2*x)-i,A=(h*v-d*y)/x,S=M*M+A*A-1,E=2*(o+w*M+T*A),N=w*w+T*T-o*o,k=-(Math.abs(S)>1e-6?(E+Math.sqrt(E*E-4*S*N))/(2*S):N/E);return{x:r+w+M*k,y:i+T+A*k,r:k}}function gp(t,n,e){var r,i,o,a,u=t.x-n.x,c=t.y-n.y,f=u*u+c*c;f?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function yp(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function vp(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function _p(t){this._=t,this.next=null,this.previous=null}function bp(t,n){if(!(o=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var e,r,i,o,a,u,c,f,s,l,h;if((e=t[0]).x=0,e.y=0,!(o>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(o>2))return e.r+r.r;gp(r,e,i=t[2]),e=new _p(e),r=new _p(r),i=new _p(i),e.next=i.previous=r,r.next=e.previous=i,i.next=r.previous=e;t:for(c=3;c<o;++c){gp(e._,r._,i=t[c]),i=new _p(i),f=r.next,s=e.previous,l=r._.r,h=e._.r;do{if(l<=h){if(yp(f._,i._)){r=f,e.next=r,r.previous=e,--c;continue t}l+=f._.r,f=f.next}else{if(yp(s._,i._)){(e=s).next=r,r.previous=e,--c;continue t}h+=s._.r,s=s.previous}}while(f!==s.next);for(i.previous=e,i.next=r,e.next=r.previous=r=i,a=vp(e);(i=i.next)!==r;)(u=vp(i))<a&&(e=i,a=u);r=e.next}for(e=[r._],i=r;(i=i.next)!==r;)e.push(i._);for(i=up(e,n),c=0;c<o;++c)(e=t[c]).x-=i.x,e.y-=i.y;return i.r}function mp(t){return Math.sqrt(t.value)}function xp(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function wp(t,n,e){return function(r){if(i=r.children){var i,o,a,u=i.length,c=t(r)*n||0;if(c)for(o=0;o<u;++o)i[o].r+=c;if(a=bp(i,e),c)for(o=0;o<u;++o)i[o].r-=c;r.r=a+c}}}function Mp(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Tp(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Ap(t,n,e,r,i){for(var o,a=t.children,u=-1,c=a.length,f=t.value&&(r-n)/t.value;++u<c;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*f}var Sp={depth:-1},Ep={},Np={};function kp(t){return t.id}function Cp(t){return t.parentId}function Pp(t){let n=t.length;if(n<2)return"";for(;--n>1&&!zp(t,n););return t.slice(0,n)}function zp(t,n){if("/"===t[n]){let e=0;for(;n>0&&"\\"===t[--n];)++e;if(!(1&e))return!0}return!1}function $p(t,n){return t.parent===n.parent?1:2}function Dp(t){var n=t.children;return n?n[0]:t.t}function Rp(t){var n=t.children;return n?n[n.length-1]:t.t}function Fp(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function qp(t,n,e){return t.a.parent===n.parent?t.a:e}function Up(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Ip(t,n,e,r,i){for(var o,a=t.children,u=-1,c=a.length,f=t.value&&(i-e)/t.value;++u<c;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*f}Up.prototype=Object.create(Qd.prototype);var Op=(1+Math.sqrt(5))/2;function Bp(t,n,e,r,i,o){for(var a,u,c,f,s,l,h,d,p,g,y,v=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){c=i-e,f=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,y=s*s*(g=Math.max(f/c,c/f)/(w*t)),p=Math.max(h/y,y/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c<f,children:_.slice(b,m)}),a.dice?Ap(a,e,r,i,w?r+=f*s/w:o):Ip(a,e,r,w?e+=c*s/w:i,o),w-=s,b=m}return v}var Yp=function t(n){function e(t,e,r,i,o){Bp(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Op);var Lp=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l<h;){for(c=(u=a[l]).children,f=u.value=0,s=c.length;f<s;++f)u.value+=c[f].value;u.dice?Ap(u,e,r,i,d?r+=(o-r)*u.value/d:o):Ip(u,e,r,d?e+=(i-e)*u.value/d:i,o),d-=u.value}else t._squarify=a=Bp(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Op);function jp(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Hp(t,n){return t[0]-n[0]||t[1]-n[1]}function Xp(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r<n;++r){for(;i>1&&jp(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Gp=Math.random,Vp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Gp),Wp=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Gp),Zp=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Gp),Kp=function t(n){var e=Zp.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Gp),Qp=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Gp),Jp=function t(n){var e=Qp.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Gp),tg=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Gp),ng=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Gp),eg=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Gp),rg=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Gp),ig=function t(n){var e=Zp.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Gp),og=function t(n){var e=ig.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Gp),ag=function t(n){var e=rg.source(n),r=og.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Gp),ug=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Gp),cg=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Gp),fg=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Gp),sg=function t(n){var e=ig.source(n),r=ag.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Gp);const lg=1/4294967296;function hg(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function dg(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const pg=Symbol("implicit");function gg(){var t=new InternMap,n=[],e=[],r=pg;function i(i){let o=t.get(i);if(void 0===o){if(r!==pg)return r;t.set(i,o=n.push(i)-1)}return e[o%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new InternMap;for(const r of e)t.has(r)||t.set(r,n.push(r)-1);return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return gg(n,e).unknown(r)},hg.apply(i,arguments),i}function yg(){var t,n,e=gg().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=a<o,h=l?a:o,d=l?o:a;t=(d-h)/Math.max(1,e-c+2*f),u&&(t=Math.floor(t)),h+=(d-h-t*(e-c))*s,n=t*(1-c),u&&(h=Math.round(h),n=Math.round(n));var p=lt(e).map((function(n){return h+t*n}));return i(l?p.reverse():p)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),l()):r()},e.range=function(t){return arguments.length?([o,a]=t,o=+o,a=+a,l()):[o,a]},e.rangeRound=function(t){return[o,a]=t,o=+o,a=+a,u=!0,l()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(u=!!t,l()):u},e.padding=function(t){return arguments.length?(c=Math.min(1,f=+t),l()):c},e.paddingInner=function(t){return arguments.length?(c=Math.min(1,t),l()):c},e.paddingOuter=function(t){return arguments.length?(f=+t,l()):f},e.align=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),l()):s},e.copy=function(){return yg(r(),[o,a]).round(u).paddingInner(c).paddingOuter(f).align(s)},hg.apply(l(),arguments)}function vg(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return vg(n())},t}function _g(t){return+t}var bg=[0,1];function mg(t){return t}function xg(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:function(t){return function(){return t}}(isNaN(n)?NaN:.5)}function wg(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i<r?(r=xg(i,r),o=e(a,o)):(r=xg(r,i),o=e(o,a)),function(t){return o(r(t))}}function Mg(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<r;)i[a]=xg(t[a],t[a+1]),o[a]=e(n[a],n[a+1]);return function(n){var e=s(t,n,1,r)-1;return o[e](i[e](n))}}function Tg(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Ag(){var t,n,e,r,i,o,a=bg,u=bg,c=Gr,f=mg;function s(){var t=Math.min(a.length,u.length);return f!==mg&&(f=function(t,n){var e;return t>n&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?Mg:wg,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),Yr)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,_g),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Vr,s()},l.clamp=function(t){return arguments.length?(f=!!t||mg,s()):f!==mg},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function Sg(){return Ag()(mg,mg)}function Eg(n,e,r,i){var o,a=W(n,e,r);switch((i=Jc(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=lf(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=hf(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=sf(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function Ng(t){var n=t.domain;return t.ticks=function(t){var e=n();return G(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return Eg(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f<c&&(i=c,c=f,f=i,i=a,a=u,u=i);s-- >0;){if((i=V(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function kg(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Cg(t){return Math.log(t)}function Pg(t){return Math.exp(t)}function zg(t){return-Math.log(-t)}function $g(t){return-Math.exp(-t)}function Dg(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Rg(t){return(n,e)=>-t(-n,e)}function Fg(n){const e=n(Cg,Pg),r=e.domain;let i,o,a=10;function u(){return i=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}(a),o=function(t){return 10===t?Dg:t===Math.E?Math.exp:n=>Math.pow(t,n)}(a),r()[0]<0?(i=Rg(i),o=Rg(o),n(zg,$g)):n(Cg,Pg),e}return e.base=function(t){return arguments.length?(a=+t,u()):a},e.domain=function(t){return arguments.length?(r(t),u()):r()},e.ticks=t=>{const n=r();let e=n[0],u=n[n.length-1];const c=u<e;c&&([e,u]=[u,e]);let f,s,l=i(e),h=i(u);const d=null==t?10:+t;let p=[];if(!(a%1)&&h-l<d){if(l=Math.floor(l),h=Math.ceil(h),e>0){for(;l<=h;++l)for(f=1;f<a;++f)if(s=l<0?f/o(-l):f*o(l),!(s<e)){if(s>u)break;p.push(s)}}else for(;l<=h;++l)for(f=a-1;f>=1;--f)if(s=l>0?f/o(-l):f*o(l),!(s<e)){if(s>u)break;p.push(s)}2*p.length<d&&(p=G(e,u,d))}else p=G(l,h,Math.min(h-l,d)).map(o);return c?p.reverse():p},e.tickFormat=(n,r)=>{if(null==n&&(n=10),null==r&&(r=10===a?"s":","),"function"!=typeof r&&(a%1||null!=(r=Jc(r)).precision||(r.trim=!0),r=t.format(r)),n===1/0)return r;const u=Math.max(1,a*n/e.ticks().length);return t=>{let n=t/o(Math.round(i(t)));return n*a<a-.5&&(n*=a),n<=u?r(t):""}},e.nice=()=>r(kg(r(),{floor:t=>o(Math.floor(i(t))),ceil:t=>o(Math.ceil(i(t)))})),e}function qg(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function Ug(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function Ig(t){var n=1,e=t(qg(n),Ug(n));return e.constant=function(e){return arguments.length?t(qg(n=+e),Ug(n)):n},Ng(e)}function Og(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function Bg(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Yg(t){return t<0?-t*t:t*t}function Lg(t){var n=t(mg,mg),e=1;return n.exponent=function(n){return arguments.length?1===(e=+n)?t(mg,mg):.5===e?t(Bg,Yg):t(Og(e),Og(1/e)):e},Ng(n)}function jg(){var t=Lg(Ag());return t.copy=function(){return Tg(t,jg()).exponent(t.exponent())},hg.apply(t,arguments),t}function Hg(t){return Math.sign(t)*t*t}const Xg=new Date,Gg=new Date;function Vg(t,n,e,r){function i(n){return t(n=0===arguments.length?new Date:new Date(+n)),n}return i.floor=n=>(t(n=new Date(+n)),n),i.ceil=e=>(t(e=new Date(e-1)),n(e,1),t(e),e),i.round=t=>{const n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=(t,e)=>(n(t=new Date(+t),null==e?1:Math.floor(e)),t),i.range=(e,r,o)=>{const a=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return a;let u;do{a.push(u=new Date(+e)),n(e,o),t(e)}while(u<e&&e<r);return a},i.filter=e=>Vg((n=>{if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)}),((t,r)=>{if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})),e&&(i.count=(n,r)=>(Xg.setTime(+n),Gg.setTime(+r),t(Xg),t(Gg),Math.floor(e(Xg,Gg))),i.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?n=>r(n)%t==0:n=>i.count(0,n)%t==0):i:null)),i}const Wg=Vg((()=>{}),((t,n)=>{t.setTime(+t+n)}),((t,n)=>n-t));Wg.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Vg((n=>{n.setTime(Math.floor(n/t)*t)}),((n,e)=>{n.setTime(+n+e*t)}),((n,e)=>(e-n)/t)):Wg:null);const Zg=Wg.range,Kg=1e3,Qg=6e4,Jg=36e5,ty=864e5,ny=6048e5,ey=2592e6,ry=31536e6,iy=Vg((t=>{t.setTime(t-t.getMilliseconds())}),((t,n)=>{t.setTime(+t+n*Kg)}),((t,n)=>(n-t)/Kg),(t=>t.getUTCSeconds())),oy=iy.range,ay=Vg((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Kg)}),((t,n)=>{t.setTime(+t+n*Qg)}),((t,n)=>(n-t)/Qg),(t=>t.getMinutes())),uy=ay.range,cy=Vg((t=>{t.setUTCSeconds(0,0)}),((t,n)=>{t.setTime(+t+n*Qg)}),((t,n)=>(n-t)/Qg),(t=>t.getUTCMinutes())),fy=cy.range,sy=Vg((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Kg-t.getMinutes()*Qg)}),((t,n)=>{t.setTime(+t+n*Jg)}),((t,n)=>(n-t)/Jg),(t=>t.getHours())),ly=sy.range,hy=Vg((t=>{t.setUTCMinutes(0,0,0)}),((t,n)=>{t.setTime(+t+n*Jg)}),((t,n)=>(n-t)/Jg),(t=>t.getUTCHours())),dy=hy.range,py=Vg((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Qg)/ty),(t=>t.getDate()-1)),gy=py.range,yy=Vg((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/ty),(t=>t.getUTCDate()-1)),vy=yy.range,_y=Vg((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/ty),(t=>Math.floor(t/ty))),by=_y.range;function my(t){return Vg((n=>{n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),((t,n)=>{t.setDate(t.getDate()+7*n)}),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Qg)/ny))}const xy=my(0),wy=my(1),My=my(2),Ty=my(3),Ay=my(4),Sy=my(5),Ey=my(6),Ny=xy.range,ky=wy.range,Cy=My.range,Py=Ty.range,zy=Ay.range,$y=Sy.range,Dy=Ey.range;function Ry(t){return Vg((n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+7*n)}),((t,n)=>(n-t)/ny))}const Fy=Ry(0),qy=Ry(1),Uy=Ry(2),Iy=Ry(3),Oy=Ry(4),By=Ry(5),Yy=Ry(6),Ly=Fy.range,jy=qy.range,Hy=Uy.range,Xy=Iy.range,Gy=Oy.range,Vy=By.range,Wy=Yy.range,Zy=Vg((t=>{t.setDate(1),t.setHours(0,0,0,0)}),((t,n)=>{t.setMonth(t.getMonth()+n)}),((t,n)=>n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())),(t=>t.getMonth())),Ky=Zy.range,Qy=Vg((t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCMonth(t.getUTCMonth()+n)}),((t,n)=>n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())),(t=>t.getUTCMonth())),Jy=Qy.range,tv=Vg((t=>{t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n)}),((t,n)=>n.getFullYear()-t.getFullYear()),(t=>t.getFullYear()));tv.every=t=>isFinite(t=Math.floor(t))&&t>0?Vg((n=>{n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),((n,e)=>{n.setFullYear(n.getFullYear()+e*t)})):null;const nv=tv.range,ev=Vg((t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n)}),((t,n)=>n.getUTCFullYear()-t.getUTCFullYear()),(t=>t.getUTCFullYear()));ev.every=t=>isFinite(t=Math.floor(t))&&t>0?Vg((n=>{n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),((n,e)=>{n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null;const rv=ev.range;function iv(t,n,e,i,o,a){const u=[[iy,1,Kg],[iy,5,5e3],[iy,15,15e3],[iy,30,3e4],[a,1,Qg],[a,5,3e5],[a,15,9e5],[a,30,18e5],[o,1,Jg],[o,3,108e5],[o,6,216e5],[o,12,432e5],[i,1,ty],[i,2,1728e5],[e,1,ny],[n,1,ey],[n,3,7776e6],[t,1,ry]];function c(n,e,i){const o=Math.abs(e-n)/i,a=r((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(W(n/ry,e/ry,i));if(0===a)return Wg.every(Math.max(W(n,e,i),1));const[c,f]=u[o/u[a-1][2]<u[a][2]/o?a-1:a];return c.every(f)}return[function(t,n,e){const r=n<t;r&&([t,n]=[n,t]);const i=e&&"function"==typeof e.range?e:c(t,n,e),o=i?i.range(t,+n+1):[];return r?o.reverse():o},c]}const[ov,av]=iv(ev,Qy,Fy,_y,hy,cy),[uv,cv]=iv(tv,Zy,xy,py,sy,ay);function fv(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function sv(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function lv(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}function hv(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,u=t.months,c=t.shortMonths,f=mv(i),s=xv(i),l=mv(o),h=xv(o),d=mv(a),p=xv(a),g=mv(u),y=xv(u),v=mv(c),_=xv(c),b={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:Yv,e:Yv,f:Gv,g:i_,G:a_,H:Lv,I:jv,j:Hv,L:Xv,m:Vv,M:Wv,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:k_,s:C_,S:Zv,u:Kv,U:Qv,V:t_,w:n_,W:e_,x:null,X:null,y:r_,Y:o_,Z:u_,"%":N_},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:c_,e:c_,f:d_,g:T_,G:S_,H:f_,I:s_,j:l_,L:h_,m:p_,M:g_,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:k_,s:C_,S:y_,u:v_,U:__,V:m_,w:x_,W:w_,x:null,X:null,y:M_,Y:A_,Z:E_,"%":N_},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return T(t,n,e,r)},d:zv,e:zv,f:Uv,g:Nv,G:Ev,H:Dv,I:Dv,j:$v,L:qv,m:Pv,M:Rv,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:Cv,Q:Ov,s:Bv,S:Fv,u:Mv,U:Tv,V:Av,w:wv,W:Sv,x:function(t,n,r){return T(t,e,n,r)},X:function(t,n,e){return T(t,r,n,e)},y:Nv,Y:Ev,Z:kv,"%":Iv};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u<f;)37===t.charCodeAt(u)&&(a.push(t.slice(c,u)),null!=(i=pv[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),c=u+1);return a.push(t.slice(c,u)),a.join("")}}function M(t,n){return function(e){var r,i,o=lv(1900,void 0,1);if(T(o,t,e+="",0)!=e.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(n&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=sv(lv(o.y,0,1))).getUTCDay(),r=i>4||0===i?qy.ceil(r):qy(r),r=yy.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=fv(lv(o.y,0,1))).getDay(),r=i>4||0===i?wy.ceil(r):wy(r),r=py.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?sv(lv(o.y,0,1)).getUTCDay():fv(lv(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,sv(o)):fv(o)}}function T(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a<u;){if(r>=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in pv?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var dv,pv={"-":"",_:" ",0:"0"},gv=/^\s*\d+/,yv=/^%/,vv=/[\\^$*+?|[\]().{}]/g;function _v(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function bv(t){return t.replace(vv,"\\$&")}function mv(t){return new RegExp("^(?:"+t.map(bv).join("|")+")","i")}function xv(t){return new Map(t.map(((t,n)=>[t.toLowerCase(),n])))}function wv(t,n,e){var r=gv.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Mv(t,n,e){var r=gv.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function Tv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function Av(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function Sv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function Ev(t,n,e){var r=gv.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function Nv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function kv(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Cv(t,n,e){var r=gv.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function Pv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function zv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function $v(t,n,e){var r=gv.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Dv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Rv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Fv(t,n,e){var r=gv.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function qv(t,n,e){var r=gv.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Uv(t,n,e){var r=gv.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Iv(t,n,e){var r=yv.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Ov(t,n,e){var r=gv.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Bv(t,n,e){var r=gv.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function Yv(t,n){return _v(t.getDate(),n,2)}function Lv(t,n){return _v(t.getHours(),n,2)}function jv(t,n){return _v(t.getHours()%12||12,n,2)}function Hv(t,n){return _v(1+py.count(tv(t),t),n,3)}function Xv(t,n){return _v(t.getMilliseconds(),n,3)}function Gv(t,n){return Xv(t,n)+"000"}function Vv(t,n){return _v(t.getMonth()+1,n,2)}function Wv(t,n){return _v(t.getMinutes(),n,2)}function Zv(t,n){return _v(t.getSeconds(),n,2)}function Kv(t){var n=t.getDay();return 0===n?7:n}function Qv(t,n){return _v(xy.count(tv(t)-1,t),n,2)}function Jv(t){var n=t.getDay();return n>=4||0===n?Ay(t):Ay.ceil(t)}function t_(t,n){return t=Jv(t),_v(Ay.count(tv(t),t)+(4===tv(t).getDay()),n,2)}function n_(t){return t.getDay()}function e_(t,n){return _v(wy.count(tv(t)-1,t),n,2)}function r_(t,n){return _v(t.getFullYear()%100,n,2)}function i_(t,n){return _v((t=Jv(t)).getFullYear()%100,n,2)}function o_(t,n){return _v(t.getFullYear()%1e4,n,4)}function a_(t,n){var e=t.getDay();return _v((t=e>=4||0===e?Ay(t):Ay.ceil(t)).getFullYear()%1e4,n,4)}function u_(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+_v(n/60|0,"0",2)+_v(n%60,"0",2)}function c_(t,n){return _v(t.getUTCDate(),n,2)}function f_(t,n){return _v(t.getUTCHours(),n,2)}function s_(t,n){return _v(t.getUTCHours()%12||12,n,2)}function l_(t,n){return _v(1+yy.count(ev(t),t),n,3)}function h_(t,n){return _v(t.getUTCMilliseconds(),n,3)}function d_(t,n){return h_(t,n)+"000"}function p_(t,n){return _v(t.getUTCMonth()+1,n,2)}function g_(t,n){return _v(t.getUTCMinutes(),n,2)}function y_(t,n){return _v(t.getUTCSeconds(),n,2)}function v_(t){var n=t.getUTCDay();return 0===n?7:n}function __(t,n){return _v(Fy.count(ev(t)-1,t),n,2)}function b_(t){var n=t.getUTCDay();return n>=4||0===n?Oy(t):Oy.ceil(t)}function m_(t,n){return t=b_(t),_v(Oy.count(ev(t),t)+(4===ev(t).getUTCDay()),n,2)}function x_(t){return t.getUTCDay()}function w_(t,n){return _v(qy.count(ev(t)-1,t),n,2)}function M_(t,n){return _v(t.getUTCFullYear()%100,n,2)}function T_(t,n){return _v((t=b_(t)).getUTCFullYear()%100,n,2)}function A_(t,n){return _v(t.getUTCFullYear()%1e4,n,4)}function S_(t,n){var e=t.getUTCDay();return _v((t=e>=4||0===e?Oy(t):Oy.ceil(t)).getUTCFullYear()%1e4,n,4)}function E_(){return"+0000"}function N_(){return"%"}function k_(t){return+t}function C_(t){return Math.floor(+t/1e3)}function P_(n){return dv=hv(n),t.timeFormat=dv.format,t.timeParse=dv.parse,t.utcFormat=dv.utcFormat,t.utcParse=dv.utcParse,dv}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,P_({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var z_="%Y-%m-%dT%H:%M:%S.%LZ";var $_=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(z_),D_=$_;var R_=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(z_),F_=R_;function q_(t){return new Date(t)}function U_(t){return t instanceof Date?+t:+new Date(+t)}function I_(t,n,e,r,i,o,a,u,c,f){var s=Sg(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)<t?d:u(t)<t?p:a(t)<t?g:o(t)<t?y:r(t)<t?i(t)<t?v:_:e(t)<t?b:m)(t)}return s.invert=function(t){return new Date(l(t))},s.domain=function(t){return arguments.length?h(Array.from(t,U_)):h().map(q_)},s.ticks=function(n){var e=h();return t(e[0],e[e.length-1],null==n?10:n)},s.tickFormat=function(t,n){return null==n?x:f(n)},s.nice=function(t){var e=h();return t&&"function"==typeof t.range||(t=n(e[0],e[e.length-1],null==t?10:t)),t?h(kg(e,t)):s},s.copy=function(){return Tg(s,I_(t,n,e,r,i,o,a,u,c,f))},s}function O_(){var t,n,e,r,i,o=0,a=1,u=mg,c=!1;function f(n){return null==n||isNaN(n=+n)?i:u(0===e?.5:(n=(r(n)-t)*e,c?Math.max(0,Math.min(1,n)):n))}function s(t){return function(n){var e,r;return arguments.length?([e,r]=n,u=t(e,r),f):[u(0),u(1)]}}return f.domain=function(i){return arguments.length?([o,a]=i,t=r(o=+o),n=r(a=+a),e=t===n?0:1/(n-t),f):[o,a]},f.clamp=function(t){return arguments.length?(c=!!t,f):c},f.interpolator=function(t){return arguments.length?(u=t,f):u},f.range=s(Gr),f.rangeRound=s(Vr),f.unknown=function(t){return arguments.length?(i=t,f):i},function(i){return r=i,t=i(o),n=i(a),e=t===n?0:1/(n-t),f}}function B_(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function Y_(){var t=Lg(O_());return t.copy=function(){return B_(t,Y_()).exponent(t.exponent())},dg.apply(t,arguments)}function L_(){var t,n,e,r,i,o,a,u=0,c=.5,f=1,s=1,l=mg,h=!1;function d(t){return isNaN(t=+t)?a:(t=.5+((t=+o(t))-n)*(s*t<s*n?r:i),l(h?Math.max(0,Math.min(1,t)):t))}function p(t){return function(n){var e,r,i;return arguments.length?([e,r,i]=n,l=di(t,[e,r,i]),d):[l(0),l(.5),l(1)]}}return d.domain=function(a){return arguments.length?([u,c,f]=a,t=o(u=+u),n=o(c=+c),e=o(f=+f),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),s=n<t?-1:1,d):[u,c,f]},d.clamp=function(t){return arguments.length?(h=!!t,d):h},d.interpolator=function(t){return arguments.length?(l=t,d):l},d.range=p(Gr),d.rangeRound=p(Vr),d.unknown=function(t){return arguments.length?(a=t,d):a},function(a){return o=a,t=a(u),n=a(c),e=a(f),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),s=n<t?-1:1,d}}function j_(){var t=Lg(L_());return t.copy=function(){return B_(t,j_()).exponent(t.exponent())},dg.apply(t,arguments)}function H_(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}var X_=H_("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),G_=H_("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),V_=H_("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),W_=H_("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),Z_=H_("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),K_=H_("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Q_=H_("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),J_=H_("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),tb=H_("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),nb=H_("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),eb=H_("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),rb=t=>Fr(t[t.length-1]),ib=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(H_),ob=rb(ib),ab=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(H_),ub=rb(ab),cb=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(H_),fb=rb(cb),sb=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(H_),lb=rb(sb),hb=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(H_),db=rb(hb),pb=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(H_),gb=rb(pb),yb=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(H_),vb=rb(yb),_b=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(H_),bb=rb(_b),mb=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(H_),xb=rb(mb),wb=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(H_),Mb=rb(wb),Tb=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(H_),Ab=rb(Tb),Sb=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(H_),Eb=rb(Sb),Nb=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(H_),kb=rb(Nb),Cb=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(H_),Pb=rb(Cb),zb=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(H_),$b=rb(zb),Db=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(H_),Rb=rb(Db),Fb=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(H_),qb=rb(Fb),Ub=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(H_),Ib=rb(Ub),Ob=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(H_),Bb=rb(Ob),Yb=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(H_),Lb=rb(Yb),jb=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(H_),Hb=rb(jb),Xb=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(H_),Gb=rb(Xb),Vb=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(H_),Wb=rb(Vb),Zb=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(H_),Kb=rb(Zb),Qb=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(H_),Jb=rb(Qb),tm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(H_),nm=rb(tm),em=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(H_),rm=rb(em);var im=hi(Tr(300,.5,0),Tr(-240,.5,1)),om=hi(Tr(-100,.75,.35),Tr(80,1.5,.8)),am=hi(Tr(260,.75,.35),Tr(80,1.5,.8)),um=Tr();var cm=Fe(),fm=Math.PI/3,sm=2*Math.PI/3;function lm(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var hm=lm(H_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),dm=lm(H_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),pm=lm(H_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),gm=lm(H_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function ym(t){return function(){return t}}const vm=Math.abs,_m=Math.atan2,bm=Math.cos,mm=Math.max,xm=Math.min,wm=Math.sin,Mm=Math.sqrt,Tm=1e-12,Am=Math.PI,Sm=Am/2,Em=2*Am;function Nm(t){return t>=1?Sm:t<=-1?-Sm:Math.asin(t)}function km(t){let n=3;return t.digits=function(e){if(!arguments.length)return n;if(null==e)n=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);n=t}return t},()=>new Ua(n)}function Cm(t){return t.innerRadius}function Pm(t){return t.outerRadius}function zm(t){return t.startAngle}function $m(t){return t.endAngle}function Dm(t){return t&&t.padAngle}function Rm(t,n,e,r,i,o,a){var u=t-e,c=n-r,f=(a?o:-o)/Mm(u*u+c*c),s=f*c,l=-f*u,h=t+s,d=n+l,p=e+s,g=r+l,y=(h+p)/2,v=(d+g)/2,_=p-h,b=g-d,m=_*_+b*b,x=i-o,w=h*g-p*d,M=(b<0?-1:1)*Mm(mm(0,x*x*m-w*w)),T=(w*b-_*M)/m,A=(-w*_-b*M)/m,S=(w*b+_*M)/m,E=(-w*_+b*M)/m,N=T-y,k=A-v,C=S-y,P=E-v;return N*N+k*k>C*C+P*P&&(T=S,A=E),{cx:T,cy:A,x01:-s,y01:-l,x11:T*(i/x-1),y11:A*(i/x-1)}}var Fm=Array.prototype.slice;function qm(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Um(t){this._context=t}function Im(t){return new Um(t)}function Om(t){return t[0]}function Bm(t){return t[1]}function Ym(t,n){var e=ym(!0),r=null,i=Im,o=null,a=km(u);function u(u){var c,f,s,l=(u=qm(u)).length,h=!1;for(null==r&&(o=i(s=a())),c=0;c<=l;++c)!(c<l&&e(f=u[c],c,u))===h&&((h=!h)?o.lineStart():o.lineEnd()),h&&o.point(+t(f,c,u),+n(f,c,u));if(s)return o=null,s+""||null}return t="function"==typeof t?t:void 0===t?Om:ym(t),n="function"==typeof n?n:void 0===n?Bm:ym(n),u.x=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),u):n},u.defined=function(t){return arguments.length?(e="function"==typeof t?t:ym(!!t),u):e},u.curve=function(t){return arguments.length?(i=t,null!=r&&(o=i(r)),u):i},u.context=function(t){return arguments.length?(null==t?r=o=null:o=i(r=t),u):r},u}function Lm(t,n,e){var r=null,i=ym(!0),o=null,a=Im,u=null,c=km(f);function f(f){var s,l,h,d,p,g=(f=qm(f)).length,y=!1,v=new Array(g),_=new Array(g);for(null==o&&(u=a(p=c())),s=0;s<=g;++s){if(!(s<g&&i(d=f[s],s,f))===y)if(y=!y)l=s,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),h=s-1;h>=l;--h)u.point(v[h],_[h]);u.lineEnd(),u.areaEnd()}y&&(v[s]=+t(d,s,f),_[s]=+n(d,s,f),u.point(r?+r(d,s,f):v[s],e?+e(d,s,f):_[s]))}if(p)return u=null,p+""||null}function s(){return Ym().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?Om:ym(+t),n="function"==typeof n?n:ym(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Bm:ym(+e),f.x=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),r=null,f):t},f.x0=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),f):t},f.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ym(+t),f):r},f.y=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),e=null,f):n},f.y0=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),f):n},f.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:ym(+t),f):e},f.lineX0=f.lineY0=function(){return s().x(t).y(n)},f.lineY1=function(){return s().x(t).y(e)},f.lineX1=function(){return s().x(r).y(n)},f.defined=function(t){return arguments.length?(i="function"==typeof t?t:ym(!!t),f):i},f.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),f):a},f.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),f):o},f}function jm(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Hm(t){return t}Um.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Xm=Vm(Im);function Gm(t){this._curve=t}function Vm(t){function n(n){return new Gm(t(n))}return n._curve=t,n}function Wm(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Vm(t)):n()._curve},t}function Zm(){return Wm(Ym().curve(Xm))}function Km(){var t=Lm().curve(Xm),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Wm(e())},delete t.lineX0,t.lineEndAngle=function(){return Wm(r())},delete t.lineX1,t.lineInnerRadius=function(){return Wm(i())},delete t.lineY0,t.lineOuterRadius=function(){return Wm(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Vm(t)):n()._curve},t}function Qm(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}Gm.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};class Jm{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}class tx{constructor(t){this._context=t}lineStart(){this._point=0}lineEnd(){}point(t,n){if(t=+t,n=+n,0===this._point)this._point=1;else{const e=Qm(this._x0,this._y0),r=Qm(this._x0,this._y0=(this._y0+n)/2),i=Qm(t,this._y0),o=Qm(t,n);this._context.moveTo(...e),this._context.bezierCurveTo(...r,...i,...o)}this._x0=t,this._y0=n}}function nx(t){return new Jm(t,!0)}function ex(t){return new Jm(t,!1)}function rx(t){return new tx(t)}function ix(t){return t.source}function ox(t){return t.target}function ax(t){let n=ix,e=ox,r=Om,i=Bm,o=null,a=null,u=km(c);function c(){let c;const f=Fm.call(arguments),s=n.apply(this,f),l=e.apply(this,f);if(null==o&&(a=t(c=u())),a.lineStart(),f[0]=s,a.point(+r.apply(this,f),+i.apply(this,f)),f[0]=l,a.point(+r.apply(this,f),+i.apply(this,f)),a.lineEnd(),c)return a=null,c+""||null}return c.source=function(t){return arguments.length?(n=t,c):n},c.target=function(t){return arguments.length?(e=t,c):e},c.x=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),c):r},c.y=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),c):i},c.context=function(n){return arguments.length?(null==n?o=a=null:a=t(o=n),c):o},c}const ux=Mm(3);var cx={draw(t,n){const e=.59436*Mm(n+xm(n/28,.75)),r=e/2,i=r*ux;t.moveTo(0,e),t.lineTo(0,-e),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},fx={draw(t,n){const e=Mm(n/Am);t.moveTo(e,0),t.arc(0,0,e,0,Em)}},sx={draw(t,n){const e=Mm(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}};const lx=Mm(1/3),hx=2*lx;var dx={draw(t,n){const e=Mm(n/hx),r=e*lx;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},px={draw(t,n){const e=.62625*Mm(n);t.moveTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.lineTo(-e,0),t.closePath()}},gx={draw(t,n){const e=.87559*Mm(n-xm(n/7,2));t.moveTo(-e,0),t.lineTo(e,0),t.moveTo(0,e),t.lineTo(0,-e)}},yx={draw(t,n){const e=Mm(n),r=-e/2;t.rect(r,r,e,e)}},vx={draw(t,n){const e=.4431*Mm(n);t.moveTo(e,e),t.lineTo(e,-e),t.lineTo(-e,-e),t.lineTo(-e,e),t.closePath()}};const _x=wm(Am/10)/wm(7*Am/10),bx=wm(Em/10)*_x,mx=-bm(Em/10)*_x;var xx={draw(t,n){const e=Mm(.8908130915292852*n),r=bx*e,i=mx*e;t.moveTo(0,-e),t.lineTo(r,i);for(let n=1;n<5;++n){const o=Em*n/5,a=bm(o),u=wm(o);t.lineTo(u*e,-a*e),t.lineTo(a*r-u*i,u*r+a*i)}t.closePath()}};const wx=Mm(3);var Mx={draw(t,n){const e=-Mm(n/(3*wx));t.moveTo(0,2*e),t.lineTo(-wx*e,-e),t.lineTo(wx*e,-e),t.closePath()}};const Tx=Mm(3);var Ax={draw(t,n){const e=.6824*Mm(n),r=e/2,i=e*Tx/2;t.moveTo(0,-e),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}};const Sx=-.5,Ex=Mm(3)/2,Nx=1/Mm(12),kx=3*(Nx/2+1);var Cx={draw(t,n){const e=Mm(n/kx),r=e/2,i=e*Nx,o=r,a=e*Nx+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(Sx*r-Ex*i,Ex*r+Sx*i),t.lineTo(Sx*o-Ex*a,Ex*o+Sx*a),t.lineTo(Sx*u-Ex*c,Ex*u+Sx*c),t.lineTo(Sx*r+Ex*i,Sx*i-Ex*r),t.lineTo(Sx*o+Ex*a,Sx*a-Ex*o),t.lineTo(Sx*u+Ex*c,Sx*c-Ex*u),t.closePath()}},Px={draw(t,n){const e=.6189*Mm(n-xm(n/6,1.7));t.moveTo(-e,-e),t.lineTo(e,e),t.moveTo(-e,e),t.lineTo(e,-e)}};const zx=[fx,sx,dx,yx,xx,Mx,Cx],$x=[fx,gx,Px,Ax,cx,vx,px];function Dx(){}function Rx(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Fx(t){this._context=t}function qx(t){this._context=t}function Ux(t){this._context=t}function Ix(t,n){this._basis=new Fx(t),this._beta=n}Fx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rx(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},qx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Ux.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Ix.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Ox=function t(n){function e(t){return 1===n?new Fx(t):new Ix(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function Bx(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Yx(t,n){this._context=t,this._k=(1-n)/6}Yx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Bx(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Lx=function t(n){function e(t){return new Yx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function jx(t,n){this._context=t,this._k=(1-n)/6}jx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Hx=function t(n){function e(t){return new jx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Xx(t,n){this._context=t,this._k=(1-n)/6}Xx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Gx=function t(n){function e(t){return new Xx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Vx(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Tm){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Tm){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Wx(t,n){this._context=t,this._alpha=n}Wx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Zx=function t(n){function e(t){return n?new Wx(t,n):new Yx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Kx(t,n){this._context=t,this._alpha=n}Kx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Qx=function t(n){function e(t){return n?new Kx(t,n):new jx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Jx(t,n){this._context=t,this._alpha=n}Jx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var tw=function t(n){function e(t){return n?new Jx(t,n):new Xx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function nw(t){this._context=t}function ew(t){return t<0?-1:1}function rw(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(ew(o)+ew(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function iw(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function ow(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function aw(t){this._context=t}function uw(t){this._context=new cw(t)}function cw(t){this._context=t}function fw(t){this._context=t}function sw(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function lw(t,n){this._context=t,this._t=n}function hw(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function dw(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function pw(t,n){return t[n]}function gw(t){const n=[];return n.key=t,n}function yw(t){var n=t.map(vw);return dw(t).sort((function(t,e){return n[t]-n[e]}))}function vw(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++e<i;)(n=+t[e][1])>o&&(o=n,r=e);return r}function _w(t){var n=t.map(bw);return dw(t).sort((function(t,e){return n[t]-n[e]}))}function bw(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}nw.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},aw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ow(this,this._t0,iw(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,ow(this,iw(this,e=rw(this,t,n)),e);break;default:ow(this,this._t0,e=rw(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(uw.prototype=Object.create(aw.prototype)).point=function(t,n){aw.prototype.point.call(this,n,t)},cw.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},fw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=sw(t),i=sw(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},lw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var mw=t=>()=>t;function xw(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ww(t,n,e){this.k=t,this.x=n,this.y=e}ww.prototype={constructor:ww,scale:function(t){return 1===t?this:new ww(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new ww(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Mw=new ww(1,0,0);function Tw(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Mw;return t.__zoom}function Aw(t){t.stopImmediatePropagation()}function Sw(t){t.preventDefault(),t.stopImmediatePropagation()}function Ew(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function Nw(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function kw(){return this.__zoom||Mw}function Cw(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Pw(){return navigator.maxTouchPoints||"ontouchstart"in this}function zw(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}Tw.prototype=ww.prototype,t.Adder=T,t.Delaunay=Lu,t.FormatSpecifier=tf,t.InternMap=InternMap,t.InternSet=InternSet,t.Node=Qd,t.Path=Ua,t.Voronoi=qu,t.ZoomTransform=ww,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>qi&&e.name===n)return new po([[t]],Zo,n,+r);return null},t.arc=function(){var t=Cm,n=Pm,e=ym(0),r=null,i=zm,o=$m,a=Dm,u=null,c=km(f);function f(){var f,s,l=+t.apply(this,arguments),h=+n.apply(this,arguments),d=i.apply(this,arguments)-Sm,p=o.apply(this,arguments)-Sm,g=vm(p-d),y=p>d;if(u||(u=f=c()),h<l&&(s=h,h=l,l=s),h>Tm)if(g>Em-Tm)u.moveTo(h*bm(d),h*wm(d)),u.arc(0,0,h,d,p,!y),l>Tm&&(u.moveTo(l*bm(p),l*wm(p)),u.arc(0,0,l,p,d,y));else{var v,_,b=d,m=p,x=d,w=p,M=g,T=g,A=a.apply(this,arguments)/2,S=A>Tm&&(r?+r.apply(this,arguments):Mm(l*l+h*h)),E=xm(vm(h-l)/2,+e.apply(this,arguments)),N=E,k=E;if(S>Tm){var C=Nm(S/l*wm(A)),P=Nm(S/h*wm(A));(M-=2*C)>Tm?(x+=C*=y?1:-1,w-=C):(M=0,x=w=(d+p)/2),(T-=2*P)>Tm?(b+=P*=y?1:-1,m-=P):(T=0,b=m=(d+p)/2)}var z=h*bm(b),$=h*wm(b),D=l*bm(w),R=l*wm(w);if(E>Tm){var F,q=h*bm(m),U=h*wm(m),I=l*bm(x),O=l*wm(x);if(g<Am)if(F=function(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*h<Tm))return[t+(h=(s*(n-o)-l*(t-i))/h)*c,n+h*f]}(z,$,I,O,q,U,D,R)){var B=z-F[0],Y=$-F[1],L=q-F[0],j=U-F[1],H=1/wm(function(t){return t>1?0:t<-1?Am:Math.acos(t)}((B*L+Y*j)/(Mm(B*B+Y*Y)*Mm(L*L+j*j)))/2),X=Mm(F[0]*F[0]+F[1]*F[1]);N=xm(E,(l-X)/(H-1)),k=xm(E,(h-X)/(H+1))}else N=k=0}T>Tm?k>Tm?(v=Rm(I,O,z,$,h,k,y),_=Rm(q,U,D,R,h,k,y),u.moveTo(v.cx+v.x01,v.cy+v.y01),k<E?u.arc(v.cx,v.cy,k,_m(v.y01,v.x01),_m(_.y01,_.x01),!y):(u.arc(v.cx,v.cy,k,_m(v.y01,v.x01),_m(v.y11,v.x11),!y),u.arc(0,0,h,_m(v.cy+v.y11,v.cx+v.x11),_m(_.cy+_.y11,_.cx+_.x11),!y),u.arc(_.cx,_.cy,k,_m(_.y11,_.x11),_m(_.y01,_.x01),!y))):(u.moveTo(z,$),u.arc(0,0,h,b,m,!y)):u.moveTo(z,$),l>Tm&&M>Tm?N>Tm?(v=Rm(D,R,q,U,l,-N,y),_=Rm(z,$,I,O,l,-N,y),u.lineTo(v.cx+v.x01,v.cy+v.y01),N<E?u.arc(v.cx,v.cy,N,_m(v.y01,v.x01),_m(_.y01,_.x01),!y):(u.arc(v.cx,v.cy,N,_m(v.y01,v.x01),_m(v.y11,v.x11),!y),u.arc(0,0,l,_m(v.cy+v.y11,v.cx+v.x11),_m(_.cy+_.y11,_.cx+_.x11),y),u.arc(_.cx,_.cy,N,_m(_.y11,_.x11),_m(_.y01,_.x01),!y))):u.arc(0,0,l,w,x,y):u.lineTo(D,R)}else u.moveTo(0,0);if(u.closePath(),f)return u=null,f+""||null}return f.centroid=function(){var e=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-Am/2;return[bm(r)*e,wm(r)*e]},f.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),f):t},f.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),f):n},f.cornerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ym(+t),f):e},f.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ym(+t),f):r},f.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),f):i},f.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:ym(+t),f):o},f.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:ym(+t),f):a},f.context=function(t){return arguments.length?(u=null==t?null:t,f):u},f},t.area=Lm,t.areaRadial=Km,t.ascending=n,t.autoType=function(t){for(var n in t){var e,r,i=t[n].trim();if(i)if("true"===i)i=!0;else if("false"===i)i=!1;else if("NaN"===i)i=NaN;else if(isNaN(e=+i)){if(!(r=i.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;yc&&r[4]&&!r[7]&&(i=i.replace(/-/g,"/").replace(/T/," ")),i=new Date(i)}else i=e;else i=null;t[n]=i}return t},t.axisBottom=function(t){return Pt(Mt,t)},t.axisLeft=function(t){return Pt(Tt,t)},t.axisRight=function(t){return Pt(wt,t)},t.axisTop=function(t){return Pt(xt,t)},t.bin=Q,t.bisect=s,t.bisectCenter=f,t.bisectLeft=c,t.bisectRight=u,t.bisector=r,t.blob=function(t,n){return fetch(t,n).then(vc)},t.blur=function(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=y(n),i=t.slice();return r(t,i,0,e,1),r(i,t,0,e,1),r(t,i,0,e,1),t},t.blur2=l,t.blurImage=h,t.brush=function(){return wa(la)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.brushX=function(){return wa(fa)},t.brushY=function(){return wa(sa)},t.buffer=function(t,n){return fetch(t,n).then(_c)},t.chord=function(){return za(!1,!1)},t.chordDirected=function(){return za(!0,!1)},t.chordTranspose=function(){return za(!1,!0)},t.cluster=function(){var t=Ld,n=1,e=1,r=!1;function i(i){var o,a=0;i.eachAfter((function(n){var e=n.children;e?(n.x=function(t){return t.reduce(jd,0)/t.length}(e),n.y=function(t){return 1+t.reduce(Hd,0)}(e)):(n.x=o?a+=t(n,o):0,n.y=0,o=n)}));var u=function(t){for(var n;n=t.children;)t=n[0];return t}(i),c=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(i),f=u.x-t(u,c)/2,s=c.x+t(c,u)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*n,t.y=(i.y-t.y)*e}:function(t){t.x=(t.x-f)/(s-f)*n,t.y=(1-(i.y?t.y/i.y:1))*e})}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.color=ze,t.contourDensity=function(){var t=fu,n=su,e=lu,r=960,i=500,o=20,a=2,u=3*o,c=r+2*u>>a,f=i+2*u>>a,s=Qa(20);function h(r){var i=new Float32Array(c*f),s=Math.pow(2,-a),h=-1;for(const o of r){var d=(t(o,++h,r)+u)*s,p=(n(o,h,r)+u)*s,g=+e(o,h,r);if(g&&d>=0&&d<c&&p>=0&&p<f){var y=Math.floor(d),v=Math.floor(p),_=d-y-.5,b=p-v-.5;i[y+v*c]+=(1-_)*(1-b)*g,i[y+1+v*c]+=_*(1-b)*g,i[y+1+(v+1)*c]+=_*b*g,i[y+(v+1)*c]+=(1-_)*b*g}}return l({data:i,width:c,height:f},o*s),i}function d(t){var n=h(t),e=s(n),r=Math.pow(2,2*a);return Array.isArray(e)||(e=G(Number.MIN_VALUE,J(n)/r,e)),iu().size([c,f]).thresholds(e.map((t=>t*r)))(n).map(((t,n)=>(t.value=+e[n],p(t))))}function p(t){return t.coordinates.forEach(g),t}function g(t){t.forEach(y)}function y(t){t.forEach(v)}function v(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function _(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,d}return d.contours=function(t){var n=h(t),e=iu().size([c,f]),r=Math.pow(2,2*a),i=t=>{t=+t;var i=p(e.contour(n,t*r));return i.value=t,i};return Object.defineProperty(i,"max",{get:()=>J(n)/r}),i},d.x=function(n){return arguments.length?(t="function"==typeof n?n:Qa(+n),d):t},d.y=function(t){return arguments.length?(n="function"==typeof t?t:Qa(+t),d):n},d.weight=function(t){return arguments.length?(e="function"==typeof t?t:Qa(+t),d):e},d.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,_()},d.cellSize=function(t){if(!arguments.length)return 1<<a;if(!((t=+t)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),_()},d.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?Qa(Za.call(t)):Qa(t),d):s},d.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*t*t+1)-1)/2,_()},d},t.contours=iu,t.count=v,t.create=function(t){return Zn(Yt(t).call(document.documentElement))},t.creator=Yt,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(m)).map(_),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(b))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=wc,t.csvFormat=rc,t.csvFormatBody=ic,t.csvFormatRow=ac,t.csvFormatRows=oc,t.csvFormatValue=uc,t.csvParse=nc,t.csvParseRows=ec,t.cubehelix=Tr,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new Fx(t)},t.curveBasisClosed=function(t){return new qx(t)},t.curveBasisOpen=function(t){return new Ux(t)},t.curveBumpX=nx,t.curveBumpY=ex,t.curveBundle=Ox,t.curveCardinal=Lx,t.curveCardinalClosed=Hx,t.curveCardinalOpen=Gx,t.curveCatmullRom=Zx,t.curveCatmullRomClosed=Qx,t.curveCatmullRomOpen=tw,t.curveLinear=Im,t.curveLinearClosed=function(t){return new nw(t)},t.curveMonotoneX=function(t){return new aw(t)},t.curveMonotoneY=function(t){return new uw(t)},t.curveNatural=function(t){return new fw(t)},t.curveStep=function(t){return new lw(t,.5)},t.curveStepAfter=function(t){return new lw(t,1)},t.curveStepBefore=function(t){return new lw(t,0)},t.descending=e,t.deviation=w,t.difference=function(t,...n){t=new InternSet(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new InternSet;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=$t,t.drag=function(){var t,n,e,r,i=se,o=le,a=he,u=de,c={},f=$t("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v,ee).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Zn(a.view).on("mousemove.drag",p,re).on("mouseup.drag",g,re),ae(a.view),ie(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(oe(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Zn(t.view).on("mousemove.drag mouseup.drag",null),ue(t.view,e),oe(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e<c;++e)(r=b(this,u,t,n,a[e].identifier,a[e]))&&(ie(t),r("start",t,a[e]))}}function v(t){var n,e,r=t.changedTouches,i=r.length;for(n=0;n<i;++n)(e=c[r[n].identifier])&&(oe(t),e("drag",t,r[n]))}function _(t){var n,e,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),n=0;n<o;++n)(e=c[i[n].identifier])&&(ie(t),e("end",t,i[n]))}function b(t,n,e,r,i,o){var u,l,d,p=f.copy(),g=ne(o||e,n);if(null!=(d=a.call(t,new fe("beforestart",{sourceEvent:e,target:h,identifier:i,active:s,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),r)))return u=d.x-g[0]||0,l=d.y-g[1]||0,function e(o,a,f){var y,v=g;switch(o){case"start":c[i]=e,y=s++;break;case"end":delete c[i],--s;case"drag":g=ne(f||a,n),y=s}p.call(o,t,new fe(o,{sourceEvent:a,subject:d,target:h,identifier:i,active:y,x:g[0]+u,y:g[1]+l,dx:g[0]-v[0],dy:g[1]-v[1],dispatch:p}),r)}}return h.filter=function(t){return arguments.length?(i="function"==typeof t?t:ce(!!t),h):i},h.container=function(t){return arguments.length?(o="function"==typeof t?t:ce(t),h):o},h.subject=function(t){return arguments.length?(a="function"==typeof t?t:ce(t),h):a},h.touchable=function(t){return arguments.length?(u="function"==typeof t?t:ce(!!t),h):u},h.on=function(){var t=f.on.apply(f,arguments);return t===f?h:t},h.clickDistance=function(t){return arguments.length?(l=(t=+t)*t,h):Math.sqrt(l)},h},t.dragDisable=ae,t.dragEnable=ue,t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=Ju(t);return mc(n,e).then((function(t){return i.parse(t,r)}))},t.dsvFormat=Ju,t.easeBack=Lo,t.easeBackIn=Bo,t.easeBackInOut=Lo,t.easeBackOut=Yo,t.easeBounce=Io,t.easeBounceIn=function(t){return 1-Io(1-t)},t.easeBounceInOut=function(t){return((t*=2)<=1?1-Io(1-t):Io(t-1)+1)/2},t.easeBounceOut=Io,t.easeCircle=No,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleInOut=No,t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCubic=bo,t.easeCubicIn=function(t){return t*t*t},t.easeCubicInOut=bo,t.easeCubicOut=function(t){return--t*t*t+1},t.easeElastic=Xo,t.easeElasticIn=Ho,t.easeElasticInOut=Go,t.easeElasticOut=Xo,t.easeExp=Eo,t.easeExpIn=function(t){return So(1-+t)},t.easeExpInOut=Eo,t.easeExpOut=function(t){return 1-So(t)},t.easeLinear=t=>+t,t.easePoly=wo,t.easePolyIn=mo,t.easePolyInOut=wo,t.easePolyOut=xo,t.easeQuad=_o,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=_o,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=Ao,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*To)},t.easeSinInOut=Ao,t.easeSinOut=function(t){return Math.sin(t*To)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=M,t.fcumsum=function(t,n){const e=new T;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.flatGroup=function(t,...n){return z(P(t,...n),n)},t.flatRollup=function(t,n,...e){return z(D(t,n,...e),e)},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;i<a;++i)u+=(o=e[i]).x,c+=o.y;for(u=(u/a-t)*r,c=(c/a-n)*r,i=0;i<a;++i)(o=e[i]).x-=u,o.y-=c}return null==t&&(t=0),null==n&&(n=0),i.initialize=function(t){e=t},i.x=function(n){return arguments.length?(t=+n,i):t},i.y=function(t){return arguments.length?(n=+t,i):n},i.strength=function(t){return arguments.length?(r=+t,i):r},i},t.forceCollide=function(t){var n,e,r,i=1,o=1;function a(){for(var t,a,c,f,s,l,h,d=n.length,p=0;p<o;++p)for(a=$c(n,Ic,Oc).visitAfter(u),t=0;t<d;++t)c=n[t],l=e[c.index],h=l*l,f=c.x+c.vx,s=c.y+c.vy,a.visit(g);function g(t,n,e,o,a){var u=t.data,d=t.r,p=l+d;if(!u)return n>f+p||o<f-p||e>s+p||a<s-p;if(u.index>c.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;v<p*p&&(0===g&&(v+=(g=Uc(r))*g),0===y&&(v+=(y=Uc(r))*y),v=(p-(v=Math.sqrt(v)))/v*i,c.vx+=(g*=v)*(p=(d*=d)/(h+d)),c.vy+=(y*=v)*p,u.vx-=g*(p=1-p),u.vy-=y*p)}}}function u(t){if(t.data)return t.r=e[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r<o;++r)i=n[r],e[i.index]=+t(i,r,n)}}return"function"!=typeof t&&(t=qc(null==t?1:+t)),a.initialize=function(t,e){n=t,r=e,c()},a.iterations=function(t){return arguments.length?(o=+t,a):o},a.strength=function(t){return arguments.length?(i=+t,a):i},a.radius=function(n){return arguments.length?(t="function"==typeof n?n:qc(+n),c(),a):t},a},t.forceLink=function(t){var n,e,r,i,o,a,u=Bc,c=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},f=qc(30),s=1;function l(r){for(var i=0,u=t.length;i<s;++i)for(var c,f,l,h,d,p,g,y=0;y<u;++y)f=(c=t[y]).source,h=(l=c.target).x+l.vx-f.x-f.vx||Uc(a),d=l.y+l.vy-f.y-f.vy||Uc(a),h*=p=((p=Math.sqrt(h*h+d*d))-e[y])/p*r*n[y],d*=p,l.vx-=h*(g=o[y]),l.vy-=d*g,f.vx+=h*(g=1-g),f.vy+=d*g}function h(){if(r){var a,c,f=r.length,s=t.length,l=new Map(r.map(((t,n)=>[u(t,n,r),t])));for(a=0,i=new Array(f);a<s;++a)(c=t[a]).index=a,"object"!=typeof c.source&&(c.source=Yc(l,c.source)),"object"!=typeof c.target&&(c.target=Yc(l,c.target)),i[c.source.index]=(i[c.source.index]||0)+1,i[c.target.index]=(i[c.target.index]||0)+1;for(a=0,o=new Array(s);a<s;++a)c=t[a],o[a]=i[c.source.index]/(i[c.source.index]+i[c.target.index]);n=new Array(s),d(),e=new Array(s),p()}}function d(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+c(t[e],e,t)}function p(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+f(t[n],n,t)}return null==t&&(t=[]),l.initialize=function(t,n){r=t,a=n,h()},l.links=function(n){return arguments.length?(t=n,h(),l):t},l.id=function(t){return arguments.length?(u=t,l):u},l.iterations=function(t){return arguments.length?(s=+t,l):s},l.strength=function(t){return arguments.length?(c="function"==typeof t?t:qc(+t),d(),l):c},l.distance=function(t){return arguments.length?(f="function"==typeof t?t:qc(+t),p(),l):f},l},t.forceManyBody=function(){var t,n,e,r,i,o=qc(-30),a=1,u=1/0,c=.81;function f(e){var i,o=t.length,a=$c(t,Xc,Gc).visitAfter(l);for(r=e,i=0;i<o;++i)n=t[i],a.visit(h)}function s(){if(t){var n,e,r=t.length;for(i=new Array(r),n=0;n<r;++n)e=t[n],i[e.index]=+o(e,n,t)}}function l(t){var n,e,r,o,a,u=0,c=0;if(t.length){for(r=o=a=0;a<4;++a)(n=t[a])&&(e=Math.abs(n.value))&&(u+=n.value,c+=e,r+=e*n.x,o+=e*n.y);t.x=r/c,t.y=o/c}else{(n=t).x=n.data.x,n.y=n.data.y;do{u+=i[n.data.index]}while(n=n.next)}t.value=u}function h(t,o,f,s){if(!t.value)return!0;var l=t.x-n.x,h=t.y-n.y,d=s-o,p=l*l+h*h;if(d*d/c<p)return p<u&&(0===l&&(p+=(l=Uc(e))*l),0===h&&(p+=(h=Uc(e))*h),p<a&&(p=Math.sqrt(a*p)),n.vx+=l*t.value*r/p,n.vy+=h*t.value*r/p),!0;if(!(t.length||p>=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Uc(e))*l),0===h&&(p+=(h=Uc(e))*h),p<a&&(p=Math.sqrt(a*p)));do{t.data!==n&&(d=i[t.data.index]*r/p,n.vx+=l*d,n.vy+=h*d)}while(t=t.next)}}return f.initialize=function(n,r){t=n,e=r,s()},f.strength=function(t){return arguments.length?(o="function"==typeof t?t:qc(+t),s(),f):o},f.distanceMin=function(t){return arguments.length?(a=t*t,f):Math.sqrt(a)},f.distanceMax=function(t){return arguments.length?(u=t*t,f):Math.sqrt(u)},f.theta=function(t){return arguments.length?(c=t*t,f):Math.sqrt(c)},f},t.forceRadial=function(t,n,e){var r,i,o,a=qc(.1);function u(t){for(var a=0,u=r.length;a<u;++a){var c=r[a],f=c.x-n||1e-6,s=c.y-e||1e-6,l=Math.sqrt(f*f+s*s),h=(o[a]-l)*i[a]*t/l;c.vx+=f*h,c.vy+=s*h}}function c(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)o[n]=+t(r[n],n,r),i[n]=isNaN(o[n])?0:+a(r[n],n,r)}}return"function"!=typeof t&&(t=qc(+t)),null==n&&(n=0),null==e&&(e=0),u.initialize=function(t){r=t,c()},u.strength=function(t){return arguments.length?(a="function"==typeof t?t:qc(+t),c(),u):a},u.radius=function(n){return arguments.length?(t="function"==typeof n?n:qc(+n),c(),u):t},u.x=function(t){return arguments.length?(n=+t,u):n},u.y=function(t){return arguments.length?(e=+t,u):e},u},t.forceSimulation=function(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,u=new Map,c=Ni(l),f=$t("tick","end"),s=function(){let t=1;return()=>(t=(Lc*t+jc)%Hc)/Hc}();function l(){h(),f.call("tick",n),e<r&&(c.stop(),f.call("end",n))}function h(r){var c,f,s=t.length;void 0===r&&(r=1);for(var l=0;l<r;++l)for(e+=(o-e)*i,u.forEach((function(t){t(e)})),c=0;c<s;++c)null==(f=t[c]).fx?f.x+=f.vx*=a:(f.x=f.fx,f.vx=0),null==f.fy?f.y+=f.vy*=a:(f.y=f.fy,f.vy=0);return n}function d(){for(var n,e=0,r=t.length;e<r;++e){if((n=t[e]).index=e,null!=n.fx&&(n.x=n.fx),null!=n.fy&&(n.y=n.fy),isNaN(n.x)||isNaN(n.y)){var i=10*Math.sqrt(.5+e),o=e*Vc;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function p(n){return n.initialize&&n.initialize(t,s),n}return null==t&&(t=[]),d(),n={tick:h,restart:function(){return c.restart(l),n},stop:function(){return c.stop(),n},nodes:function(e){return arguments.length?(t=e,d(),u.forEach(p),n):t},alpha:function(t){return arguments.length?(e=+t,n):e},alphaMin:function(t){return arguments.length?(r=+t,n):r},alphaDecay:function(t){return arguments.length?(i=+t,n):+i},alphaTarget:function(t){return arguments.length?(o=+t,n):o},velocityDecay:function(t){return arguments.length?(a=1-t,n):1-a},randomSource:function(t){return arguments.length?(s=t,u.forEach(p),n):s},force:function(t,e){return arguments.length>1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f<s;++f)(a=(i=n-(u=t[f]).x)*i+(o=e-u.y)*o)<r&&(c=u,r=a);return c},on:function(t,e){return arguments.length>1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=qc(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vx+=(r[o]-i.x)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=qc(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:qc(+t),a(),o):i},o.x=function(n){return arguments.length?(t="function"==typeof n?n:qc(+n),a(),o):t},o},t.forceY=function(t){var n,e,r,i=qc(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vy+=(r[o]-i.y)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=qc(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:qc(+t),a(),o):i},o.y=function(n){return arguments.length?(t="function"==typeof n?n:qc(+n),a(),o):t},o},t.formatDefaultLocale=ff,t.formatLocale=cf,t.formatSpecifier=Jc,t.fsum=function(t,n){const e=new T;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&e.add(i)}return+e},t.geoAlbers=xd,t.geoAlbersUsa=function(){var t,n,e,r,i,o,a=xd(),u=md().rotate([154,0]).center([-2,58.5]).parallels([55,65]),c=md().rotate([157,0]).center([-3,19.9]).parallels([8,18]),f={point:function(t,n){o=[t,n]}};function s(t){var n=t[0],a=t[1];return o=null,e.point(n,a),o||(r.point(n,a),o)||(i.point(n,a),o)}function l(){return t=n=null,s}return s.invert=function(t){var n=a.scale(),e=a.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++e<i;)r[e].point(t,n)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},s.precision=function(t){return arguments.length?(a.precision(t),u.precision(t),c.precision(t),l()):a.precision()},s.scale=function(t){return arguments.length?(a.scale(t),u.scale(.35*t),c.scale(t),s.translate(a.translate())):a.scale()},s.translate=function(t){if(!arguments.length)return a.translate();var n=a.scale(),o=+t[0],s=+t[1];return e=a.translate(t).clipExtent([[o-.455*n,s-.238*n],[o+.455*n,s+.238*n]]).stream(f),r=u.translate([o-.307*n,s+.201*n]).clipExtent([[o-.425*n+df,s+.12*n+df],[o-.214*n-df,s+.234*n-df]]).stream(f),i=c.translate([o-.205*n,s+.212*n]).clipExtent([[o-.214*n+df,s+.166*n+df],[o-.115*n-df,s+.234*n-df]]).stream(f),l()},s.fitExtent=function(t,n){return ud(s,t,n)},s.fitSize=function(t,n){return cd(s,t,n)},s.fitWidth=function(t,n){return fd(s,t,n)},s.fitHeight=function(t,n){return sd(s,t,n)},s.scale(1070)},t.geoArea=function(t){return us=new T,Lf(t,cs),2*us},t.geoAzimuthalEqualArea=function(){return yd(Td).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=Td,t.geoAzimuthalEquidistant=function(){return yd(Ad).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=Ad,t.geoBounds=function(t){var n,e,r,i,o,a,u;if(Qf=Kf=-(Wf=Zf=1/0),is=[],Lf(t,Fs),e=is.length){for(is.sort(Hs),n=1,o=[r=is[0]];n<e;++n)Xs(r,(i=is[n])[0])||Xs(r,i[1])?(js(r[0],i[1])>js(r[0],r[1])&&(r[1]=i[1]),js(i[0],r[1])>js(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=js(r[1],i[0]))>a&&(a=u,Wf=i[0],Kf=r[1])}return is=os=null,Wf===1/0||Zf===1/0?[[NaN,NaN],[NaN,NaN]]:[[Wf,Zf],[Kf,Qf]]},t.geoCentroid=function(t){ms=xs=ws=Ms=Ts=As=Ss=Es=0,Ns=new T,ks=new T,Cs=new T,Lf(t,Gs);var n=+Ns,e=+ks,r=+Cs,i=Ef(n,e,r);return i<pf&&(n=As,e=Ss,r=Es,xs<df&&(n=ws,e=Ms,r=Ts),(i=Ef(n,e,r))<pf)?[NaN,NaN]:[Mf(e,n)*bf,Rf(r/i)*bf]},t.geoCircle=function(){var t,n,e=il([0,0]),r=il(90),i=il(2),o={point:function(e,r){t.push(e=n(e,r)),e[0]*=bf,e[1]*=bf}};function a(){var a=e.apply(this,arguments),u=r.apply(this,arguments)*mf,c=i.apply(this,arguments)*mf;return t=[],n=ul(-a[0]*mf,-a[1]*mf,0).invert,hl(o,u,c,1),a={type:"Polygon",coordinates:[t]},t=n=null,a}return a.center=function(t){return arguments.length?(e="function"==typeof t?t:il([+t[0],+t[1]]),a):e},a.radius=function(t){return arguments.length?(r="function"==typeof t?t:il(+t),a):r},a.precision=function(t){return arguments.length?(i="function"==typeof t?t:il(+t),a):i},a},t.geoClipAntimeridian=Tl,t.geoClipCircle=Al,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=zl(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=zl,t.geoConicConformal=function(){return _d(kd).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=kd,t.geoConicEqualArea=md,t.geoConicEqualAreaRaw=bd,t.geoConicEquidistant=function(){return _d(Pd).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=Pd,t.geoContains=function(t,n){return(t&&Bl.hasOwnProperty(t.type)?Bl[t.type]:Ll)(t,n)},t.geoDistance=Ol,t.geoEqualEarth=function(){return yd(qd).scale(177.158)},t.geoEqualEarthRaw=qd,t.geoEquirectangular=function(){return yd(Cd).scale(152.63)},t.geoEquirectangularRaw=Cd,t.geoGnomonic=function(){return yd(Ud).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=Ud,t.geoGraticule=Kl,t.geoGraticule10=function(){return Kl()()},t.geoIdentity=function(){var t,n,e,r,i,o,a,u=1,c=0,f=0,s=1,l=1,h=0,d=null,p=1,g=1,y=id({point:function(t,n){var e=b([t,n]);this.stream.point(e[0],e[1])}}),v=eh;function _(){return p=u*s,g=u*l,o=a=null,b}function b(e){var r=e[0]*p,i=e[1]*g;if(h){var o=i*t-r*n;r=r*t+i*n,i=o}return[r+c,i+f]}return b.invert=function(e){var r=e[0]-c,i=e[1]-f;if(h){var o=i*t+r*n;r=r*t-i*n,i=o}return[r/p,i/g]},b.stream=function(t){return o&&a===t?o:o=y(v(a=t))},b.postclip=function(t){return arguments.length?(v=t,d=e=r=i=null,_()):v},b.clipExtent=function(t){return arguments.length?(v=null==t?(d=e=r=i=null,eh):zl(d=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),_()):null==d?null:[[d,e],[r,i]]},b.scale=function(t){return arguments.length?(u=+t,_()):u},b.translate=function(t){return arguments.length?(c=+t[0],f=+t[1],_()):[c,f]},b.angle=function(e){return arguments.length?(n=Cf(h=e%360*mf),t=Tf(h),_()):h*bf},b.reflectX=function(t){return arguments.length?(s=t?-1:1,_()):s<0},b.reflectY=function(t){return arguments.length?(l=t?-1:1,_()):l<0},b.fitExtent=function(t,n){return ud(b,t,n)},b.fitSize=function(t,n){return cd(b,t,n)},b.fitWidth=function(t,n){return fd(b,t,n)},b.fitHeight=function(t,n){return sd(b,t,n)},b},t.geoInterpolate=function(t,n){var e=t[0]*mf,r=t[1]*mf,i=n[0]*mf,o=n[1]*mf,a=Tf(r),u=Cf(r),c=Tf(o),f=Cf(o),s=a*Tf(e),l=a*Cf(e),h=c*Tf(i),d=c*Cf(i),p=2*Rf(zf(Ff(o-r)+a*c*Ff(i-e))),g=Cf(p),y=p?function(t){var n=Cf(t*=p)/g,e=Cf(p-t)/g,r=e*s+n*h,i=e*l+n*d,o=e*u+n*f;return[Mf(i,r)*bf,Mf(o,zf(r*r+i*i))*bf]}:function(){return[e*bf,r*bf]};return y.distance=p,y},t.geoLength=ql,t.geoMercator=function(){return Ed(Sd).scale(961/_f)},t.geoMercatorRaw=Sd,t.geoNaturalEarth1=function(){return yd(Id).scale(175.295)},t.geoNaturalEarth1Raw=Id,t.geoOrthographic=function(){return yd(Od).scale(249.5).clipAngle(90+df)},t.geoOrthographicRaw=Od,t.geoPath=function(t,n){let e,r,i=3,o=4.5;function a(t){return t&&("function"==typeof o&&r.pointRadius(+o.apply(this,arguments)),Lf(t,e(r))),r.result()}return a.area=function(t){return Lf(t,e(sh)),sh.result()},a.measure=function(t){return Lf(t,e(Kh)),Kh.result()},a.bounds=function(t){return Lf(t,e(mh)),mh.result()},a.centroid=function(t){return Lf(t,e(Oh)),Oh.result()},a.projection=function(n){return arguments.length?(e=null==n?(t=null,eh):(t=n).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(n=null,new ed(i)):new Bh(n=t),"function"!=typeof o&&r.pointRadius(o),a):n},a.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(r.pointRadius(+t),+t),a):o},a.digits=function(t){if(!arguments.length)return i;if(null==t)i=null;else{const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);i=n}return null===n&&(r=new ed(i)),a},a.projection(t).digits(i).context(n)},t.geoProjection=yd,t.geoProjectionMutator=vd,t.geoRotation=ll,t.geoStereographic=function(){return yd(Bd).scale(250).clipAngle(142)},t.geoStereographicRaw=Bd,t.geoStream=Lf,t.geoTransform=function(t){return{stream:id(t)}},t.geoTransverseMercator=function(){var t=Ed(Yd),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):[(t=n())[1],-t[0]]},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Yd,t.gray=function(t,n){return new ur(t,0,0,null==n?1:n)},t.greatest=ot,t.greatestIndex=function(t,e=n){if(1===e.length)return tt(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=C,t.groupSort=function(t,e,r){return(2!==e.length?U($(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):U(C(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=P,t.hcl=dr,t.hierarchy=Gd,t.histogram=Q,t.hsl=He,t.html=Ec,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return F(t,k,R,n)},t.indexes=function(t,...n){return F(t,Array.from,R,n)},t.interpolate=Gr,t.interpolateArray=function(t,n){return(Ir(n)?Ur:Or)(t,n)},t.interpolateBasis=Er,t.interpolateBasisClosed=Nr,t.interpolateBlues=Gb,t.interpolateBrBG=ob,t.interpolateBuGn=Mb,t.interpolateBuPu=Ab,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=am,t.interpolateCubehelix=li,t.interpolateCubehelixDefault=im,t.interpolateCubehelixLong=hi,t.interpolateDate=Br,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=Eb,t.interpolateGreens=Wb,t.interpolateGreys=Kb,t.interpolateHcl=ci,t.interpolateHclLong=fi,t.interpolateHsl=oi,t.interpolateHslLong=ai,t.interpolateHue=function(t,n){var e=Pr(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=pm,t.interpolateLab=function(t,n){var e=$r((t=ar(t)).l,(n=ar(n)).l),r=$r(t.a,n.a),i=$r(t.b,n.b),o=$r(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=dm,t.interpolateNumber=Yr,t.interpolateNumberArray=Ur,t.interpolateObject=Lr,t.interpolateOrRd=kb,t.interpolateOranges=rm,t.interpolatePRGn=ub,t.interpolatePiYG=fb,t.interpolatePlasma=gm,t.interpolatePuBu=$b,t.interpolatePuBuGn=Pb,t.interpolatePuOr=lb,t.interpolatePuRd=Rb,t.interpolatePurples=Jb,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return um.h=360*t-100,um.s=1.5-1.5*n,um.l=.8-.9*n,um+""},t.interpolateRdBu=db,t.interpolateRdGy=gb,t.interpolateRdPu=qb,t.interpolateRdYlBu=vb,t.interpolateRdYlGn=bb,t.interpolateReds=nm,t.interpolateRgb=Dr,t.interpolateRgbBasis=Fr,t.interpolateRgbBasisClosed=qr,t.interpolateRound=Vr,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,cm.r=255*(n=Math.sin(t))*n,cm.g=255*(n=Math.sin(t+fm))*n,cm.b=255*(n=Math.sin(t+sm))*n,cm+""},t.interpolateSpectral=xb,t.interpolateString=Xr,t.interpolateTransformCss=ti,t.interpolateTransformSvg=ni,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=hm,t.interpolateWarm=om,t.interpolateYlGn=Bb,t.interpolateYlGnBu=Ib,t.interpolateYlOrBr=Lb,t.interpolateYlOrRd=Hb,t.interpolateZoom=ri,t.interrupt=Gi,t.intersection=function(t,...n){t=new InternSet(t),n=n.map(vt);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new Ei,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?Ai():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=D_,t.isoParse=F_,t.json=function(t,n){return fetch(t,n).then(Tc)},t.lab=ar,t.lch=function(t,n,e,r){return 1===arguments.length?hr(t):new pr(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=ht,t.line=Ym,t.lineRadial=Zm,t.link=ax,t.linkHorizontal=function(){return ax(nx)},t.linkRadial=function(){const t=ax(rx);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return ax(ex)},t.local=Qn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Vt,t.max=J,t.maxIndex=tt,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return at(t,.5,n)},t.medianIndex=function(t,n){return ct(t,.5,n)},t.merge=ft,t.min=nt,t.minIndex=et,t.mode=function(t,n){const e=new InternMap;if(void 0===n)for(let n of t)null!=n&&n>=n&&e.set(n,(e.get(n)||0)+1);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&i>=i&&e.set(i,(e.get(i)||0)+1)}let r,i=0;for(const[t,n]of e)n>i&&(i=n,r=t);return r},t.namespace=It,t.namespaces=Ut,t.nice=Z,t.now=Ai,t.pack=function(){var t=null,n=1,e=1,r=np;function i(i){const o=ap();return i.x=n/2,i.y=e/2,t?i.eachBefore(xp(t)).eachAfter(wp(r,.5,o)).eachBefore(Mp(1)):i.eachBefore(xp(mp)).eachAfter(wp(np,1,o)).eachAfter(wp(r,i.r/Math.min(n,e),o)).eachBefore(Mp(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=Jd(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:ep(+t),i):r},i},t.packEnclose=function(t){return up(t,ap())},t.packSiblings=function(t){return bp(t,ap()),t},t.pairs=function(t,n=st){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&Ap(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),r.x0=i,r.y0=o,r.x1=a,r.y1=u}}(n,o)),r&&i.eachBefore(Tp),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i},t.path=Ia,t.pathRound=function(t=3){return new Ua(+t)},t.permute=q,t.pie=function(){var t=Hm,n=jm,e=null,r=ym(0),i=ym(Em),o=ym(0);function a(a){var u,c,f,s,l,h=(a=qm(a)).length,d=0,p=new Array(h),g=new Array(h),y=+r.apply(this,arguments),v=Math.min(Em,Math.max(-Em,i.apply(this,arguments)-y)),_=Math.min(Math.abs(v)/h,o.apply(this,arguments)),b=_*(v<0?-1:1);for(u=0;u<h;++u)(l=g[p[u]=u]=+t(a[u],u,a))>0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u<h;++u,y=s)c=p[u],s=y+((l=g[c])>0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:ym(+t),a):o},a},t.piecewise=di,t.pointRadial=Qm,t.pointer=ne,t.pointers=function(t,n){return t.target&&(t=te(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>ne(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],c=0;++r<i;)n=u,u=t[r],c+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return[o/(c*=3),a/c]},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],c=o[0],f=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(Hp),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=Xp(r),a=Xp(i),u=a[0]===o[0],c=a[a.length-1]===o[o.length-1],f=[];for(n=o.length-1;n>=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n<a.length-c;++n)f.push(t[r[a[n]][2]]);return f},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],c=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],c+=Math.hypot(n,e);return c},t.precisionFixed=sf,t.precisionPrefix=lf,t.precisionRound=hf,t.quadtree=$c,t.quantile=at,t.quantileIndex=ct,t.quantileSorted=ut,t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.quickselect=rt,t.radialArea=Km,t.radialLine=Zm,t.randomBates=Jp,t.randomBernoulli=eg,t.randomBeta=og,t.randomBinomial=ag,t.randomCauchy=cg,t.randomExponential=tg,t.randomGamma=ig,t.randomGeometric=rg,t.randomInt=Wp,t.randomIrwinHall=Qp,t.randomLcg=function(t=Math.random()){let n=0|(0<=t&&t<1?t/lg:Math.abs(t));return()=>(n=1664525*n+1013904223|0,lg*(n>>>0))},t.randomLogNormal=Kp,t.randomLogistic=fg,t.randomNormal=Zp,t.randomPareto=ng,t.randomPoisson=sg,t.randomUniform=Vp,t.randomWeibull=ug,t.range=lt,t.rank=function(t,e=n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let r=Array.from(t);const i=new Float64Array(r.length);2!==e.length&&(r=r.map(e),e=n);const o=(t,n)=>e(r[t],r[n]);let a,u;return(t=Uint32Array.from(r,((t,n)=>n))).sort(e===n?(t,n)=>O(r[t],r[n]):I(o)),t.forEach(((t,n)=>{const e=o(t,void 0===a?t:a);e>=0?((void 0===a||e>0)&&(a=t,u=n),i[t]=u):i[t]=NaN})),i},t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=Fe,t.ribbon=function(){return Wa()},t.ribbonArrow=function(){return Wa(Va)},t.rollup=$,t.rollups=D,t.scaleBand=yg,t.scaleDiverging=function t(){var n=Ng(L_()(mg));return n.copy=function(){return B_(n,t())},dg.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=Fg(L_()).domain([.1,1,10]);return n.copy=function(){return B_(n,t()).base(n.base())},dg.apply(n,arguments)},t.scaleDivergingPow=j_,t.scaleDivergingSqrt=function(){return j_.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Ig(L_());return n.copy=function(){return B_(n,t()).constant(n.constant())},dg.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,_g),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,_g):[0,1],Ng(r)},t.scaleImplicit=pg,t.scaleLinear=function t(){var n=Sg();return n.copy=function(){return Tg(n,t())},hg.apply(n,arguments),Ng(n)},t.scaleLog=function t(){const n=Fg(Ag()).domain([1,10]);return n.copy=()=>Tg(n,t()).base(n.base()),hg.apply(n,arguments),n},t.scaleOrdinal=gg,t.scalePoint=function(){return vg(yg.apply(null,arguments).paddingInner(1))},t.scalePow=jg,t.scaleQuantile=function t(){var e,r=[],i=[],o=[];function a(){var t=0,n=Math.max(1,i.length);for(o=new Array(n-1);++t<n;)o[t-1]=ut(r,t/n);return u}function u(t){return null==t||isNaN(t=+t)?e:i[s(o,t)]}return u.invertExtent=function(t){var n=i.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:r[0],n<o.length?o[n]:r[r.length-1]]},u.domain=function(t){if(!arguments.length)return r.slice();r=[];for(let n of t)null==n||isNaN(n=+n)||r.push(n);return r.sort(n),a()},u.range=function(t){return arguments.length?(i=Array.from(t),a()):i.slice()},u.unknown=function(t){return arguments.length?(e=t,u):e},u.quantiles=function(){return o.slice()},u.copy=function(){return t().domain(r).range(i).unknown(e)},hg.apply(u,arguments)},t.scaleQuantize=function t(){var n,e=0,r=1,i=1,o=[.5],a=[0,1];function u(t){return null!=t&&t<=t?a[s(o,t,0,i)]:n}function c(){var t=-1;for(o=new Array(i);++t<i;)o[t]=((t+1)*r-(t-i)*e)/(i+1);return u}return u.domain=function(t){return arguments.length?([e,r]=t,e=+e,r=+r,c()):[e,r]},u.range=function(t){return arguments.length?(i=(a=Array.from(t)).length-1,c()):a.slice()},u.invertExtent=function(t){var n=a.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},u.unknown=function(t){return arguments.length?(n=t,u):u},u.thresholds=function(){return o.slice()},u.copy=function(){return t().domain([e,r]).range(a).unknown(n)},hg.apply(Ng(u),arguments)},t.scaleRadial=function t(){var n,e=Sg(),r=[0,1],i=!1;function o(t){var r=function(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Hg(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,_g)).map(Hg)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},hg.apply(o,arguments),Ng(o)},t.scaleSequential=function t(){var n=Ng(O_()(mg));return n.copy=function(){return B_(n,t())},dg.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=Fg(O_()).domain([1,10]);return n.copy=function(){return B_(n,t()).base(n.base())},dg.apply(n,arguments)},t.scaleSequentialPow=Y_,t.scaleSequentialQuantile=function t(){var e=[],r=mg;function i(t){if(null!=t&&!isNaN(t=+t))return r((s(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>at(e,r/t)))},i.copy=function(){return t(r).domain(e)},dg.apply(i,arguments)},t.scaleSequentialSqrt=function(){return Y_.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Ig(O_());return n.copy=function(){return B_(n,t()).constant(n.constant())},dg.apply(n,arguments)},t.scaleSqrt=function(){return jg.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Ig(Ag());return n.copy=function(){return Tg(n,t()).constant(n.constant())},hg.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function o(t){return null!=t&&t<=t?r[s(e,t,0,i)]:n}return o.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),o):e.slice()},o.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),o):r.slice()},o.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t().domain(e).range(r).unknown(n)},hg.apply(o,arguments)},t.scaleTime=function(){return hg.apply(I_(uv,cv,tv,Zy,xy,py,sy,ay,iy,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return hg.apply(I_(ov,av,ev,Qy,Fy,yy,hy,cy,iy,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=ht(t,n);return e<0?void 0:e},t.schemeAccent=G_,t.schemeBlues=Xb,t.schemeBrBG=ib,t.schemeBuGn=wb,t.schemeBuPu=Tb,t.schemeCategory10=X_,t.schemeDark2=V_,t.schemeGnBu=Sb,t.schemeGreens=Vb,t.schemeGreys=Zb,t.schemeObservable10=W_,t.schemeOrRd=Nb,t.schemeOranges=em,t.schemePRGn=ab,t.schemePaired=Z_,t.schemePastel1=K_,t.schemePastel2=Q_,t.schemePiYG=cb,t.schemePuBu=zb,t.schemePuBuGn=Cb,t.schemePuOr=sb,t.schemePuRd=Db,t.schemePurples=Qb,t.schemeRdBu=hb,t.schemeRdGy=pb,t.schemeRdPu=Fb,t.schemeRdYlBu=yb,t.schemeRdYlGn=_b,t.schemeReds=tm,t.schemeSet1=J_,t.schemeSet2=tb,t.schemeSet3=nb,t.schemeSpectral=mb,t.schemeTableau10=eb,t.schemeYlGn=Ob,t.schemeYlGnBu=Ub,t.schemeYlOrBr=Yb,t.schemeYlOrRd=jb,t.select=Zn,t.selectAll=function(t){return"string"==typeof t?new Vn([document.querySelectorAll(t)],[document.documentElement]):new Vn([Ht(t)],Gn)},t.selection=Wn,t.selector=jt,t.selectorAll=Gt,t.shuffle=dt,t.shuffler=pt,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=U,t.stack=function(){var t=ym([]),n=dw,e=hw,r=pw;function i(i){var o,a,u=Array.from(t.apply(this,arguments),gw),c=u.length,f=-1;for(const t of i)for(o=0,++f;o<c;++o)(u[o][f]=[0,+r(t,u[o].key,f,i)]).data=t;for(o=0,a=qm(n(u));o<c;++o)u[a[o]].index=o;return e(u,a),u}return i.keys=function(n){return arguments.length?(t="function"==typeof n?n:ym(Array.from(n)),i):t},i.value=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),i):r},i.order=function(t){return arguments.length?(n=null==t?dw:"function"==typeof t?t:ym(Array.from(t)),i):n},i.offset=function(t){return arguments.length?(e=null==t?hw:t,i):e},i},t.stackOffsetDiverging=function(t,n){if((u=t.length)>0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c<f;++c)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][c])[1]-r[0])>0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}hw(t,n)}},t.stackOffsetNone=hw,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}hw(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,c=0,f=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}c+=l,f+=h*l}e[a-1][1]+=e[a-1][0]=o,c&&(o-=f/c)}e[a-1][1]+=e[a-1][0]=o,hw(t,n)}},t.stackOrderAppearance=yw,t.stackOrderAscending=_w,t.stackOrderDescending=function(t){return _w(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(bw),o=yw(t),a=0,u=0,c=[],f=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],c.push(e)):(u+=i[e],f.push(e));return f.reverse().concat(c)},t.stackOrderNone=dw,t.stackOrderReverse=function(t){return dw(t).reverse()},t.stratify=function(){var t,n=kp,e=Cp;function r(r){var i,o,a,u,c,f,s,l,h=Array.from(r),d=n,p=e,g=new Map;if(null!=t){const n=h.map(((n,e)=>function(t){t=`${t}`;let n=t.length;zp(t,n-1)&&!zp(t,n-2)&&(t=t.slice(0,-1));return"/"===t[0]?t:`/${t}`}(t(n,e,r)))),e=n.map(Pp),i=new Set(n).add("");for(const t of e)i.has(t)||(i.add(t),n.push(t),e.push(Pp(t)),h.push(Np));d=(t,e)=>n[e],p=(t,n)=>e[n]}for(a=0,i=h.length;a<i;++a)o=h[a],f=h[a]=new Qd(o),null!=(s=d(o,a,r))&&(s+="")&&(l=f.id=s,g.set(l,g.has(l)?Ep:f)),null!=(s=p(o,a,r))&&(s+="")&&(f.parent=s);for(a=0;a<i;++a)if(s=(f=h[a]).parent){if(!(c=g.get(s)))throw new Error("missing: "+s);if(c===Ep)throw new Error("ambiguous: "+s);c.children?c.children.push(f):c.children=[f],f.parent=c}else{if(u)throw new Error("multiple roots");u=f}if(!u)throw new Error("no root");if(null!=t){for(;u.data===Np&&1===u.children.length;)u=u.children[0],--i;for(let t=h.length-1;t>=0&&(f=h[t]).data===Np;--t)f.data=null}if(u.parent=Sp,u.eachBefore((function(t){t.depth=t.parent.depth+1,--i})).eachBefore(Kd),u.parent=null,i>0)throw new Error("cycle");return u}return r.id=function(t){return arguments.length?(n=Jd(t),r):n},r.parentId=function(t){return arguments.length?(e=Jd(t),r):e},r.path=function(n){return arguments.length?(t=Jd(n),r):t},r},t.style=_n,t.subset=function(t,n){return _t(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=_t,t.svg=Nc,t.symbol=function(t,n){let e=null,r=km(i);function i(){let i;if(e||(e=i=r()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),i)return e=null,i+""||null}return t="function"==typeof t?t:ym(t||fx),n="function"==typeof n?n:ym(void 0===n?64:+n),i.type=function(n){return arguments.length?(t="function"==typeof n?n:ym(n),i):t},i.size=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),i):n},i.context=function(t){return arguments.length?(e=null==t?null:t,i):e},i},t.symbolAsterisk=cx,t.symbolCircle=fx,t.symbolCross=sx,t.symbolDiamond=dx,t.symbolDiamond2=px,t.symbolPlus=gx,t.symbolSquare=yx,t.symbolSquare2=vx,t.symbolStar=xx,t.symbolTimes=Px,t.symbolTriangle=Mx,t.symbolTriangle2=Ax,t.symbolWye=Cx,t.symbolX=Px,t.symbols=zx,t.symbolsFill=zx,t.symbolsStroke=$x,t.text=mc,t.thresholdFreedmanDiaconis=function(t,n,e){const r=v(t),i=at(t,.75)-at(t,.25);return r&&i?Math.ceil((e-n)/(2*i*Math.pow(r,-1/3))):1},t.thresholdScott=function(t,n,e){const r=v(t),i=w(t);return r&&i?Math.ceil((e-n)*Math.cbrt(r)/(3.49*i)):1},t.thresholdSturges=K,t.tickFormat=Eg,t.tickIncrement=V,t.tickStep=W,t.ticks=G,t.timeDay=py,t.timeDays=gy,t.timeFormatDefaultLocale=P_,t.timeFormatLocale=hv,t.timeFriday=Sy,t.timeFridays=$y,t.timeHour=sy,t.timeHours=ly,t.timeInterval=Vg,t.timeMillisecond=Wg,t.timeMilliseconds=Zg,t.timeMinute=ay,t.timeMinutes=uy,t.timeMonday=wy,t.timeMondays=ky,t.timeMonth=Zy,t.timeMonths=Ky,t.timeSaturday=Ey,t.timeSaturdays=Dy,t.timeSecond=iy,t.timeSeconds=oy,t.timeSunday=xy,t.timeSundays=Ny,t.timeThursday=Ay,t.timeThursdays=zy,t.timeTickInterval=cv,t.timeTicks=uv,t.timeTuesday=My,t.timeTuesdays=Cy,t.timeWednesday=Ty,t.timeWednesdays=Py,t.timeWeek=xy,t.timeWeeks=Ny,t.timeYear=tv,t.timeYears=nv,t.timeout=$i,t.timer=Ni,t.timerFlush=ki,t.transition=go,t.transpose=gt,t.tree=function(){var t=$p,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Up(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Up(r[i],i)),e.parent=n;return(a.parent=new Up(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.x<f.x&&(f=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Rp(u),o=Dp(o),u&&o;)c=Dp(c),(a=Rp(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Fp(qp(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Rp(a)&&(a.t=u,a.m+=l-s),o&&!Dp(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Yp,n=!1,e=1,r=1,i=[0],o=np,a=np,u=np,c=np,f=np;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(Tp),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l<r&&(r=l=(r+l)/2),h<s&&(s=h=(s+h)/2),n.x0=r,n.y0=s,n.x1=l,n.y1=h,n.children&&(e=i[n.depth+1]=o(n)/2,r+=f(n)-e,s+=a(n)-e,(l-=u(n)-e)<r&&(r=l=(r+l)/2),(h-=c(n)-e)<s&&(s=h=(s+h)/2),t(n,r,s,l,h))}return s.round=function(t){return arguments.length?(n=!!t,s):n},s.size=function(t){return arguments.length?(e=+t[0],r=+t[1],s):[e,r]},s.tile=function(n){return arguments.length?(t=tp(n),s):t},s.padding=function(t){return arguments.length?s.paddingInner(t).paddingOuter(t):s.paddingInner()},s.paddingInner=function(t){return arguments.length?(o="function"==typeof t?t:ep(+t),s):o},s.paddingOuter=function(t){return arguments.length?s.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):s.paddingTop()},s.paddingTop=function(t){return arguments.length?(a="function"==typeof t?t:ep(+t),s):a},s.paddingRight=function(t){return arguments.length?(u="function"==typeof t?t:ep(+t),s):u},s.paddingBottom=function(t){return arguments.length?(c="function"==typeof t?t:ep(+t),s):c},s.paddingLeft=function(t){return arguments.length?(f="function"==typeof t?t:ep(+t),s):f},s},t.treemapBinary=function(t,n,e,r,i){var o,a,u=t.children,c=u.length,f=new Array(c+1);for(f[0]=a=o=0;o<c;++o)f[o+1]=a+=u[o].value;!function t(n,e,r,i,o,a,c){if(n>=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d<p;){var g=d+p>>>1;f[g]<h?d=g+1:p=g}h-f[d-1]<f[d]-h&&n+1<d&&--d;var y=f[d]-l,v=r-y;if(a-i>c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=Ap,t.treemapResquarify=Lp,t.treemapSlice=Ip,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Ip:Ap)(t,n,e,r,i)},t.treemapSquarify=Yp,t.tsv=Mc,t.tsvFormat=lc,t.tsvFormatBody=hc,t.tsvFormatRow=pc,t.tsvFormatRows=dc,t.tsvFormatValue=gc,t.tsvParse=fc,t.tsvParseRows=sc,t.union=function(...t){const n=new InternSet;for(const e of t)for(const t of e)n.add(t);return n},t.unixDay=_y,t.unixDays=by,t.utcDay=yy,t.utcDays=vy,t.utcFriday=By,t.utcFridays=Vy,t.utcHour=hy,t.utcHours=dy,t.utcMillisecond=Wg,t.utcMilliseconds=Zg,t.utcMinute=cy,t.utcMinutes=fy,t.utcMonday=qy,t.utcMondays=jy,t.utcMonth=Qy,t.utcMonths=Jy,t.utcSaturday=Yy,t.utcSaturdays=Wy,t.utcSecond=iy,t.utcSeconds=oy,t.utcSunday=Fy,t.utcSundays=Ly,t.utcThursday=Oy,t.utcThursdays=Gy,t.utcTickInterval=av,t.utcTicks=ov,t.utcTuesday=Uy,t.utcTuesdays=Hy,t.utcWednesday=Iy,t.utcWednesdays=Xy,t.utcWeek=Fy,t.utcWeeks=Ly,t.utcYear=ev,t.utcYears=rv,t.variance=x,t.version="7.9.0",t.window=pn,t.xml=Sc,t.zip=function(){return gt(arguments)},t.zoom=function(){var t,n,e,r=Ew,i=Nw,o=zw,a=Cw,u=Pw,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=ri,h=$t("start","zoom","end"),d=500,p=150,g=0,y=10;function v(t){t.property("__zoom",kw).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",A).on("dblclick.zoom",S).filter(u).on("touchstart.zoom",E).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new ww(n,t.x,t.y)}function b(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new ww(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e,r){t.on("start.zoom",(function(){w(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=w(t,o).event(r),u=i.apply(t,o),c=null==e?m(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new ww(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function w(t,n,e){return!e&&t.__zooming||new M(t,n)}function M(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function T(t,...n){if(r.apply(this,arguments)){var e=w(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=ne(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],Gi(this),e.start()}Sw(t),e.wheel=setTimeout((function(){e.wheel=null,e.end()}),p),e.zoom("mouse",o(b(_(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=t.currentTarget,a=w(this,n,!0).event(t),u=Zn(t.view).on("mousemove.zoom",(function(t){if(Sw(t),!a.moved){var n=t.clientX-s,e=t.clientY-l;a.moved=n*n+e*e>g}a.event(t).zoom("mouse",o(b(a.that.__zoom,a.mouse[0]=ne(t,i),a.mouse[1]),a.extent,f))}),!0).on("mouseup.zoom",(function(t){u.on("mousemove.zoom mouseup.zoom",null),ue(t.view,a.moved),Sw(t),a.event(t).end()}),!0),c=ne(t,i),s=t.clientX,l=t.clientY;ae(t.view),Aw(t),a.mouse=[c,this.__zoom.invert(c)],Gi(this),a.start()}}function S(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=ne(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(b(_(e,c),a,u),i.apply(this,n),f);Sw(t),s>0?Zn(this).transition().duration(s).call(x,l,a,t):Zn(this).call(v.transform,l,a,t)}}function E(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=w(this,i,e.changedTouches.length===s).event(e);for(Aw(e),a=0;a<s;++a)c=[c=ne(u=f[a],this),this.__zoom.invert(c),u.identifier],l.touch0?l.touch1||l.touch0[2]===c[2]||(l.touch1=c,l.taps=0):(l.touch0=c,o=!0,l.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(l.taps<2&&(n=c[0],t=setTimeout((function(){t=null}),d)),Gi(this),l.start())}}function N(t,...n){if(this.__zooming){var e,r,i,a,u=w(this,n).event(t),c=t.changedTouches,s=c.length;for(Sw(t),e=0;e<s;++e)i=ne(r=c[e],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var l=u.touch0[0],h=u.touch0[1],d=u.touch1[0],p=u.touch1[1],g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g,y=(y=p[0]-h[0])*y+(y=p[1]-h[1])*y;r=_(r,Math.sqrt(g/y)),i=[(l[0]+d[0])/2,(l[1]+d[1])/2],a=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(b(r,i,a),u.extent,f))}}function k(t,...r){if(this.__zooming){var i,o,a=w(this,r).event(t),u=t.changedTouches,c=u.length;for(Aw(t),e&&clearTimeout(e),e=setTimeout((function(){e=null}),d),i=0;i<c;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=ne(o,this),Math.hypot(n[0]-o[0],n[1]-o[1])<y)){var f=Zn(this).on("dblclick.zoom");f&&f.apply(this,arguments)}}}return v.transform=function(t,n,e,r){var i=t.selection?t.selection():t;i.property("__zoom",kw),t!==i?x(t,n,e,r):i.interrupt().each((function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()}))},v.scaleBy=function(t,n,e,r){v.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof n?n.apply(this,arguments):n)}),e,r)},v.scaleTo=function(t,n,e,r){v.transform(t,(function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==e?m(t):"function"==typeof e?e.apply(this,arguments):e,u=r.invert(a),c="function"==typeof n?n.apply(this,arguments):n;return o(b(_(r,c),a,u),t,f)}),e,r)},v.translateBy=function(t,n,e,r){v.transform(t,(function(){return o(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),i.apply(this,arguments),f)}),null,r)},v.translateTo=function(t,n,e,r,a){v.transform(t,(function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?m(t):"function"==typeof r?r.apply(this,arguments):r;return o(Mw.translate(u[0],u[1]).scale(a.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,f)}),r,a)},M.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var n=Zn(this.that).datum();h.call(t,this.that,new xw(t,{sourceEvent:this.sourceEvent,target:v,type:t,transform:this.that.__zoom,dispatch:h}),n)}},v.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:mw(+t),v):a},v.filter=function(t){return arguments.length?(r="function"==typeof t?t:mw(!!t),v):r},v.touchable=function(t){return arguments.length?(u="function"==typeof t?t:mw(!!t),v):u},v.extent=function(t){return arguments.length?(i="function"==typeof t?t:mw([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),v):i},v.scaleExtent=function(t){return arguments.length?(c[0]=+t[0],c[1]=+t[1],v):[c[0],c[1]]},v.translateExtent=function(t){return arguments.length?(f[0][0]=+t[0][0],f[1][0]=+t[1][0],f[0][1]=+t[0][1],f[1][1]=+t[1][1],v):[[f[0][0],f[0][1]],[f[1][0],f[1][1]]]},v.constrain=function(t){return arguments.length?(o=t,v):o},v.duration=function(t){return arguments.length?(s=+t,v):s},v.interpolate=function(t){return arguments.length?(l=t,v):l},v.on=function(){var t=h.on.apply(h,arguments);return t===h?v:t},v.clickDistance=function(t){return arguments.length?(g=(t=+t)*t,v):Math.sqrt(g)},v.tapDistance=function(t){return arguments.length?(y=+t,v):y},v},t.zoomIdentity=Mw,t.zoomTransform=Tw}));
Index: de_modules/d3/package.json
===================================================================
--- node_modules/d3/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-{
-  "name": "d3",
-  "version": "7.9.0",
-  "description": "Data-Driven Documents",
-  "homepage": "https://d3js.org",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/d3/d3.git"
-  },
-  "keywords": [
-    "d3",
-    "dom",
-    "visualization",
-    "svg",
-    "animation",
-    "canvas"
-  ],
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "files": [
-    "dist/d3.js",
-    "dist/d3.min.js",
-    "src/**/*.js"
-  ],
-  "module": "src/index.js",
-  "main": "src/index.js",
-  "jsdelivr": "dist/d3.min.js",
-  "unpkg": "dist/d3.min.js",
-  "exports": {
-    "umd": "./dist/d3.min.js",
-    "default": "./src/index.js"
-  },
-  "dependencies": {
-    "d3-array": "3",
-    "d3-axis": "3",
-    "d3-brush": "3",
-    "d3-chord": "3",
-    "d3-color": "3",
-    "d3-contour": "4",
-    "d3-delaunay": "6",
-    "d3-dispatch": "3",
-    "d3-drag": "3",
-    "d3-dsv": "3",
-    "d3-ease": "3",
-    "d3-fetch": "3",
-    "d3-force": "3",
-    "d3-format": "3",
-    "d3-geo": "3",
-    "d3-hierarchy": "3",
-    "d3-interpolate": "3",
-    "d3-path": "3",
-    "d3-polygon": "3",
-    "d3-quadtree": "3",
-    "d3-random": "3",
-    "d3-scale": "4",
-    "d3-scale-chromatic": "3",
-    "d3-selection": "3",
-    "d3-shape": "3",
-    "d3-time": "3",
-    "d3-time-format": "4",
-    "d3-timer": "3",
-    "d3-transition": "3",
-    "d3-zoom": "3"
-  },
-  "devDependencies": {
-    "@observablehq/plot": "^0.6.7",
-    "@observablehq/runtime": "^5.7.3",
-    "@rollup/plugin-json": "6",
-    "@rollup/plugin-node-resolve": "15",
-    "@rollup/plugin-terser": "^0.4.0",
-    "eslint": "8",
-    "mocha": "10",
-    "rollup": "3",
-    "topojson-client": "^3.1.0",
-    "vitepress": "^1.0.0-beta.2"
-  },
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && rollup -c",
-    "postpublish": "git push && git push --tags",
-    "docs:dev": "node --experimental-network-imports node_modules/vitepress/dist/node/cli.js dev docs",
-    "docs:build": "./prebuild.sh && node --experimental-network-imports node_modules/vitepress/dist/node/cli.js build docs",
-    "docs:preview": "vitepress preview docs"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/d3/src/index.js
===================================================================
--- node_modules/d3/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-export * from "d3-array";
-export * from "d3-axis";
-export * from "d3-brush";
-export * from "d3-chord";
-export * from "d3-color";
-export * from "d3-contour";
-export * from "d3-delaunay";
-export * from "d3-dispatch";
-export * from "d3-drag";
-export * from "d3-dsv";
-export * from "d3-ease";
-export * from "d3-fetch";
-export * from "d3-force";
-export * from "d3-format";
-export * from "d3-geo";
-export * from "d3-hierarchy";
-export * from "d3-interpolate";
-export * from "d3-path";
-export * from "d3-polygon";
-export * from "d3-quadtree";
-export * from "d3-random";
-export * from "d3-scale";
-export * from "d3-scale-chromatic";
-export * from "d3-selection";
-export * from "d3-shape";
-export * from "d3-time";
-export * from "d3-time-format";
-export * from "d3-timer";
-export * from "d3-transition";
-export * from "d3-zoom";
Index: de_modules/decimal.js-light/CHANGELOG.md
===================================================================
--- node_modules/decimal.js-light/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-#### 2.5.1
-* 30/09/2020
-* Correct initial `sqrt` estimate.
-
-#### 2.5.0
-* 16/10/2018
-* Add default export to *decimal.d.ts*.
-* Add `Symbol.for('nodejs.util.inspect.custom')` to *decimal.mjs*.
-
-#### 2.4.1
-* 24/05/2018
-* Add `browser` field to *package.json*.
-
-#### 2.4.0
-* 22/05/2018
-* Amend *.mjs* exports.
-* Remove extension from `main` field in *package.json*.
-
-#### 2.3.1
-* 13/11/2017
-* Add constructor properties to typings.
-* Amend `LN10` section of *doc/API.html*.
-
-#### 2.3.0
-* 26/09/2017
-* Add *bignumber.mjs*.
-
-#### 2.2.5
-* 08/09/2017
-* #5 Fix import.
-
-#### 2.2.4
-* 15/08/2017
-* Add TypeScript type declaration file, *decimal.d.ts*
-* Correct `toPositive` and `toNegative` examples
-
-#### 2.2.3
-* 04/05/2017
-* Fix *README* badge
-
-#### 2.2.2
-05/04/2017
-* `Decimal.default` to `Decimal['default']` IE8 issue
-
-#### 2.2.1
-10/03/2017
-* Remove `tonum` from documentation
-
-#### 2.2.0
-10/01/2017
-* Add `exponent` method
-
-#### 2.0.2
-12/12/2016
-* npm publish
-
-#### 2.0.1
-12/12/2016
-* Filename-casing issue
-
-#### 2.0.0
-11/12/2016
-* Make `LN10` configurable at runtime
-* Reduce `LN10` default precision
-* Remove `ceil`, `floor`, `min`, `max` and `truncated`
-* Rename `divToInt` to `idiv`, `toSD` to `tosd`, `toDP` to `todp`, `isInt` to `isint`, `isNeg` to `isneg`, `isPos` to `ispos` and `round` to `toInteger`
-* Rename some test files
-* Add `set` as alias to `config`
-* Support ES6 import shims
-* Add to README
-
-#### 1.0.4
-28/02/2016
-* Add to README
-
-#### 1.0.3
-25/02/2016
-* Add to README
-
-#### 1.0.2
-25/02/2016
-* Correct url
-* Amend .travis.yml as Node.js v0.6 doesn't include `process.hrtime` which is used in testing.
-
-#### 1.0.0
-24/02/2016
-* Initial release
Index: de_modules/decimal.js-light/LICENCE.md
===================================================================
--- node_modules/decimal.js-light/LICENCE.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-The MIT Expat Licence.
-
-Copyright (c) 2020 Michael Mclaughlin
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Index: de_modules/decimal.js-light/README.md
===================================================================
--- node_modules/decimal.js-light/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-![decimal.js-light](https://raw.githubusercontent.com/MikeMcl/decimal.js-light/gh-pages/decimaljslight.png)
-
-The light version of [decimal.js](https://github.com/MikeMcl/decimal.js/), an arbitrary-precision Decimal type for JavaScript.
-
-[![Build Status](https://travis-ci.org/MikeMcl/decimal.js-light.svg)](https://travis-ci.org/MikeMcl/decimal.js-light)
-
-<br />
-
-This library is the newest of the family of libraries: [bignumber.js](https://github.com/MikeMcl/bignumber.js/), [big.js](https://github.com/MikeMcl/big.js/), [decimal.js](https://github.com/MikeMcl/decimal.js/) and *decimal.js-light*.<br>
-The API is more or less a subset of the API of *decimal.js*.
-
-![API](https://raw.githubusercontent.com/MikeMcl/decimal.js-light/gh-pages/API.png)
-
-__Differences between this library and *decimal.js*__
-
-Size of *decimal.js* minified: 32.1 KB.<br>
-Size of *decimal.js-light* minified: 12.7 KB.
-
-This library does not include `NaN`, `Infinity` or `-0` as legitimate values, or work with values in other bases.
-
-Here, the `Decimal.round` property is just the default rounding mode for `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`. It does not apply to arithmetic operations, which are simply truncated at the required precision.
-
-If rounding is required just apply it explicitly, for example
-
-```js
-x = new Decimal(2);
-y = new Decimal(3);
-
-// decimal.js
-x.dividedBy(y).toString();                       // '0.66666666666666666667'
-
-// decimal.js-light
-x.dividedBy(y).toString();                       // '0.66666666666666666666'
-x.dividedBy(y).toDecimalPlaces(19).toString();   // '0.6666666666666666667'
-```
-
-The `naturalExponential`, `naturalLogarithm`, `logarithm`, and `toPower` methods in this library have by default a limited precision of around 100 digits. This limit can be increased at runtime using the `LN10` (the natural logarithm of ten) configuration object property.
-
-For example, if a maximum precision of 400 digits is required for these operations use
-
-```js
-// 415 digits
-Decimal.set({
-  LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286248633409525465082806756666287369098781689482907208325554680843799894826233198528393505308965377732628846163366222287698219886746543667474404243274365155048934314939391479619404400222105101714174800368808401264708068556774321622835522011480466371565912137345074785694768346361679210180644507064800027'
-});
-```
-
-Also, in this library the `e` property of a Decimal is the base 10000000 exponent, not the base 10 exponent as in *decimal.js*.<br>
-Use the `exponent` method to get the base 10 exponent.
-
-## Quickstart
-
-Browser:
-
-```html
-<script src='path/to/decimal.js-light'></script>
-```
-
-Node package manager:
-
-```shell
-$ npm install --save decimal.js-light
-```
-
-```js
-// Node.js
-var Decimal = require('decimal.js-light');
-
-// Adjust the global configuration if required (these are the defaults)
-Decimal.set({
-  precision: 20,
-  rounding: Decimal.ROUND_HALF_UP,
-  toExpNeg: -7,
-  toExpPos: 21
-});
-
-phi = new Decimal('1.61803398874989484820458683436563811772030917980576');
-
-phi.toFixed(10);    // '1.6180339887'
-
-phi.times(2).minus(1).toPower(2).plus('1e-19').equals(5);    // true
-
-```
-
-See the [documentation](http://mikemcl.github.io/decimal.js-light) for further information.
-
-[TypeScript](https://github.com/Microsoft/TypeScript) type declaration file contributed by [TANAKA Koichi](https://github.com/MugeSo).
-
-
-
-
-
Index: de_modules/decimal.js-light/decimal.d.ts
===================================================================
--- node_modules/decimal.js-light/decimal.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,570 +1,0 @@
-export default Decimal;
-
-export declare class Decimal {
-    /**
-     * The Decimal constructor and exported function.
-     * Return a new Decimal instance.
-     *
-     * @param value {number|string|Decimal} A numeric value.
-     *
-     */
-    constructor(value: Numeric)
-
-    /**
-     * Return a new Decimal whose value is the absolute value of this Decimal.
-     */
-    absoluteValue(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the absolute value of this Decimal.
-     */
-    abs(): Decimal;
-
-    /**
-     * Return
-     *   1    if the value of this Decimal is greater than the value of `y`,
-     *  -1    if the value of this Decimal is less than the value of `y`,
-     *   0    if they have the same value
-     */
-    comparedTo(y: Numeric): 1|0|-1;
-
-    /**
-     * Return
-     *   1    if the value of this Decimal is greater than the value of `y`,
-     *  -1    if the value of this Decimal is less than the value of `y`,
-     *   0    if they have the same value
-     */
-    cmp(y: Numeric): 1|0|-1;
-
-    /**
-     * Return the number of decimal places of the value of this Decimal.
-     */
-    decimalPlaces(): number;
-
-    /**
-     * Return the number of decimal places of the value of this Decimal.
-     */
-    dp(): number;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    dividedBy(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    div(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the integer part of dividing the value of this Decimal
-     * by the value of `y`, truncated to `precision` significant digits.
-     *
-     */
-    dividedToIntegerBy(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the integer part of dividing the value of this Decimal
-     * by the value of `y`, truncated to `precision` significant digits.
-     *
-     */
-    idiv(y: Numeric): Decimal;
-
-    /**
-     * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.
-     */
-    equals(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.
-     */
-    eq(y: Numeric): boolean;
-
-    /**
-     * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).
-     */
-    exponent(): number;
-
-    /**
-     * Return true if the value of this Decimal is greater than the value of `y`, otherwise return
-     * false.
-     */
-    greaterThan(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is greater than the value of `y`, otherwise return
-     * false.
-     */
-    gt(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is greater than or equal to the value of `y`,
-     * otherwise return false.
-     *
-     */
-    greaterThanOrEqualTo(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is greater than or equal to the value of `y`,
-     * otherwise return false.
-     *
-     */
-    gte(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is an integer, otherwise return false.
-     *
-     */
-    isInteger(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is an integer, otherwise return false.
-     *
-     */
-    isint(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is negative, otherwise return false.
-     *
-     */
-    isNegative(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is negative, otherwise return false.
-     *
-     */
-    isneg(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is positive, otherwise return false.
-     *
-     */
-    isPositive(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is positive, otherwise return false.
-     *
-     */
-    ispos(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is 0, otherwise return false.
-     *
-     */
-    isZero(): boolean;
-
-    /**
-     * Return true if the value of this Decimal is less than `y`, otherwise return false.
-     *
-     */
-    lessThan(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is less than `y`, otherwise return false.
-     *
-     */
-    lt(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.
-     *
-     */
-    lessThanOrEqualTo(y: Numeric): boolean;
-
-    /**
-     * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.
-     *
-     */
-    lte(y: Numeric): boolean;
-
-    /**
-     * Return the logarithm of the value of this Decimal to the specified base, truncated to
-     * `precision` significant digits.
-     *
-     * If no base is specified, return log[10](x).
-     *
-     * log[base](x) = ln(x) / ln(base)
-     *
-     * The maximum error of the result is 1 ulp (unit in the last place).
-     *
-     */
-    logarithm(base?: Numeric): Decimal;
-
-    /**
-     * Return the logarithm of the value of this Decimal to the specified base, truncated to
-     * `precision` significant digits.
-     *
-     * If no base is specified, return log[10](x).
-     *
-     * log[base](x) = ln(x) / ln(base)
-     *
-     * The maximum error of the result is 1 ulp (unit in the last place).
-     *
-     */
-    log(base?: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    minus(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    sub(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    modulo(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    mod(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the natural exponential of the value of this Decimal,
-     * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`
-     * significant digits.
-     *
-     */
-    naturalExponetial(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the natural exponential of the value of this Decimal,
-     * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`
-     * significant digits.
-     *
-     */
-    exp(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,
-     * truncated to `precision` significant digits.
-     *
-     */
-    naturalLogarithm(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,
-     * truncated to `precision` significant digits.
-     *
-     */
-    ln(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by
-     * -1.
-     *
-     */
-    negated(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by
-     * -1.
-     *
-     */
-    neg(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    plus(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    add(y: Numeric): Decimal;
-
-    /**
-     * Return the number of significant digits of the value of this Decimal.
-     *
-     * @param zeros {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.
-     */
-    precision(zeros: boolean|number): number;
-
-    /**
-     * Return the number of significant digits of the value of this Decimal.
-     *
-     * @param zeros {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.
-     */
-    sd(zeros: boolean|number): number;
-
-    /**
-     * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`
-     * significant digits.
-     *
-     */
-    squareRoot(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`
-     * significant digits.
-     *
-     */
-    sqrt(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    times(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to
-     * `precision` significant digits.
-     *
-     */
-    mul(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`
-     * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.
-     *
-     * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.
-     *
-     * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    toDecimalPlaces(dp?: number, rm?: number): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`
-     * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.
-     *
-     * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.
-     *
-     * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    todp(dp?: number, rm?: number): Decimal;
-
-    /**
-     * Return a string representing the value of this Decimal in exponential notation rounded to
-     * `dp` fixed decimal places using rounding mode `rounding`.
-     *
-     * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    toExponential(dp?: number, rm?: number): string;
-
-    /**
-     * Return a string representing the value of this Decimal in normal (fixed-point) notation to
-     * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is
-     * omitted.
-     *
-     * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.
-     *
-     * @param dp {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
-     * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
-     * (-0).toFixed(3) is '0.000'.
-     * (-0.5).toFixed(0) is '-0'.
-     *
-     */
-    toFixed(dp?: number, rm?: number): string;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using
-     * rounding mode `rounding`.
-     *
-     */
-    toInteger(): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using
-     * rounding mode `rounding`.
-     *
-     */
-    toint(): Decimal;
-
-    /**
-     * Return the value of this Decimal converted to a number primitive.
-     *
-     */
-    toNumber(): number;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,
-     * truncated to `precision` significant digits.
-     *
-     * For non-integer or very large exponents pow(x, y) is calculated using
-     *
-     *   x^y = exp(y*ln(x))
-     *
-     * The maximum error is 1 ulp (unit in last place).
-     *
-     * @param y {number|string|Decimal} The power to which to raise this Decimal.
-     *
-     */
-    toPower(y: Numeric): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,
-     * truncated to `precision` significant digits.
-     *
-     * For non-integer or very large exponents pow(x, y) is calculated using
-     *
-     *   x^y = exp(y*ln(x))
-     *
-     * The maximum error is 1 ulp (unit in last place).
-     *
-     * @param y {number|string|Decimal} The power to which to raise this Decimal.
-     *
-     */
-    pow(y: Numeric): Decimal;
-
-    /**
-     * Return a string representing the value of this Decimal rounded to `sd` significant digits
-     * using rounding mode `rounding`.
-     *
-     * Return exponential notation if `sd` is less than the number of digits necessary to represent
-     * the integer part of the value in normal notation.
-     *
-     * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    toPrecision(sd?: number, rm?: number): string;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`
-     * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if
-     * omitted.
-     *
-     * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    toSignificantDigits(sd?: number, rm?: number): Decimal;
-
-    /**
-     * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`
-     * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if
-     * omitted.
-     *
-     * @param sd {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
-     * @param rm {number} Rounding mode. Integer, 0 to 8 inclusive.
-     *
-     */
-    tosd(sd?: number, rm?: number): Decimal;
-
-    /**
-     * Return a string representing the value of this Decimal.
-     *
-     * Return exponential notation if this Decimal has a positive exponent equal to or greater than
-     * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
-     *
-     */
-    toString(): string;
-
-    /**
-     * Return a string representing the value of this Decimal.
-     *
-     * Return exponential notation if this Decimal has a positive exponent equal to or greater than
-     * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
-     *
-     */
-    valueOf(): string;
-
-    /**
-     * Return a string representing the value of this Decimal.
-     *
-     * Return exponential notation if this Decimal has a positive exponent equal to or greater than
-     * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
-     *
-     */
-    val(): string;
-
-    /**
-     * Return a string representing the value of this Decimal.
-     *
-     * Return exponential notation if this Decimal has a positive exponent equal to or greater than
-     * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
-     *
-     */
-    toJSON(): string;
-
-    /**
-     * Create and return a Decimal constructor with the same configuration properties as this Decimal
-     * constructor.
-     *
-     * @param config? Config
-     */
-    static clone(config?: Config): typeof Decimal;
-
-    /**
-     * Configure global settings for a Decimal constructor.
-     */
-    static config(config: Config): Decimal;
-
-    /**
-     * Configure global settings for a Decimal constructor.
-     */
-    static set(config: Config): Decimal;
-
-    // The maximum number of significant digits of the result of a calculation or base conversion.
-    // E.g. `Decimal.config({ precision: 20 });`
-    static precision: number;
-
-    // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,
-    // `toFixed`, `toPrecision` and `toSignificantDigits`.
-    //
-    // E.g.
-    // `Decimal.rounding = 4;`
-    // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
-    static rounding: number;
-    static readonly ROUND_UP: number;
-    static readonly ROUND_DOWN: number;
-    static readonly ROUND_CEIL: number;
-    static readonly ROUND_FLOOR: number;
-    static readonly ROUND_HALF_UP: number;
-    static readonly ROUND_HALF_DOWN: number;
-    static readonly ROUND_HALF_EVEN: number;
-    static readonly ROUND_HALF_CEIL: number;
-    static readonly ROUND_HALF_FLOOR: number;
-
-    // The exponent value at and beneath which `toString` returns exponential notation.
-    // JavaScript numbers: -7
-    static toExpNeg: number;                          // 0 to -MAX_E
-
-    // The exponent value at and above which `toString` returns exponential notation.
-    // JavaScript numbers: 21
-    static toExpPos:  number;                         // 0 to MAX_E
-
-    // The natural logarithm of 10.
-    static LN10: Decimal;
-}
-
-export interface Config {
-    precision?: number;
-    rounding?: number;
-    toExpNeg?: number;
-    toExpPos?: number;
-    LN10?: Numeric;
-}
-
-export type Numeric = string|number|Decimal;
Index: de_modules/decimal.js-light/decimal.js
===================================================================
--- node_modules/decimal.js-light/decimal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2014 +1,0 @@
-/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */
-;(function (globalScope) {
-  'use strict';
-
-
-  /*
-   *  decimal.js-light v2.5.1
-   *  An arbitrary-precision Decimal type for JavaScript.
-   *  https://github.com/MikeMcl/decimal.js-light
-   *  Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>
-   *  MIT Expat Licence
-   */
-
-
-  // -----------------------------------  EDITABLE DEFAULTS  ------------------------------------ //
-
-
-    // The limit on the value of `precision`, and on the value of the first argument to
-    // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.
-  var MAX_DIGITS = 1e9,                        // 0 to 1e9
-
-
-    // The initial configuration properties of the Decimal constructor.
-    Decimal = {
-
-      // These values must be integers within the stated ranges (inclusive).
-      // Most of these values can be changed during run-time using `Decimal.config`.
-
-      // The maximum number of significant digits of the result of a calculation or base conversion.
-      // E.g. `Decimal.config({ precision: 20 });`
-      precision: 20,                         // 1 to MAX_DIGITS
-
-      // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,
-      // `toFixed`, `toPrecision` and `toSignificantDigits`.
-      //
-      // ROUND_UP         0 Away from zero.
-      // ROUND_DOWN       1 Towards zero.
-      // ROUND_CEIL       2 Towards +Infinity.
-      // ROUND_FLOOR      3 Towards -Infinity.
-      // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.
-      // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.
-      // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.
-      // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.
-      // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
-      //
-      // E.g.
-      // `Decimal.rounding = 4;`
-      // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
-      rounding: 4,                           // 0 to 8
-
-      // The exponent value at and beneath which `toString` returns exponential notation.
-      // JavaScript numbers: -7
-      toExpNeg: -7,                          // 0 to -MAX_E
-
-      // The exponent value at and above which `toString` returns exponential notation.
-      // JavaScript numbers: 21
-      toExpPos:  21,                         // 0 to MAX_E
-
-      // The natural logarithm of 10.
-      // 115 digits
-      LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'
-    },
-
-
-  // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //
-
-
-    external = true,
-
-    decimalError = '[DecimalError] ',
-    invalidArgument = decimalError + 'Invalid argument: ',
-    exponentOutOfRange = decimalError + 'Exponent out of range: ',
-
-    mathfloor = Math.floor,
-    mathpow = Math.pow,
-
-    isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,
-
-    ONE,
-    BASE = 1e7,
-    LOG_BASE = 7,
-    MAX_SAFE_INTEGER = 9007199254740991,
-    MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE),    // 1286742750677284
-
-    // Decimal.prototype object
-    P = {};
-
-
-  // Decimal prototype methods
-
-
-  /*
-   *  absoluteValue                       abs
-   *  comparedTo                          cmp
-   *  decimalPlaces                       dp
-   *  dividedBy                           div
-   *  dividedToIntegerBy                  idiv
-   *  equals                              eq
-   *  exponent
-   *  greaterThan                         gt
-   *  greaterThanOrEqualTo                gte
-   *  isInteger                           isint
-   *  isNegative                          isneg
-   *  isPositive                          ispos
-   *  isZero
-   *  lessThan                            lt
-   *  lessThanOrEqualTo                   lte
-   *  logarithm                           log
-   *  minus                               sub
-   *  modulo                              mod
-   *  naturalExponential                  exp
-   *  naturalLogarithm                    ln
-   *  negated                             neg
-   *  plus                                add
-   *  precision                           sd
-   *  squareRoot                          sqrt
-   *  times                               mul
-   *  toDecimalPlaces                     todp
-   *  toExponential
-   *  toFixed
-   *  toInteger                           toint
-   *  toNumber
-   *  toPower                             pow
-   *  toPrecision
-   *  toSignificantDigits                 tosd
-   *  toString
-   *  valueOf                             val
-   */
-
-
-  /*
-   * Return a new Decimal whose value is the absolute value of this Decimal.
-   *
-   */
-  P.absoluteValue = P.abs = function () {
-    var x = new this.constructor(this);
-    if (x.s) x.s = 1;
-    return x;
-  };
-
-
-  /*
-   * Return
-   *   1    if the value of this Decimal is greater than the value of `y`,
-   *  -1    if the value of this Decimal is less than the value of `y`,
-   *   0    if they have the same value
-   *
-   */
-  P.comparedTo = P.cmp = function (y) {
-    var i, j, xdL, ydL,
-      x = this;
-
-    y = new x.constructor(y);
-
-    // Signs differ?
-    if (x.s !== y.s) return x.s || -y.s;
-
-    // Compare exponents.
-    if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;
-
-    xdL = x.d.length;
-    ydL = y.d.length;
-
-    // Compare digit by digit.
-    for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {
-      if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;
-    }
-
-    // Compare lengths.
-    return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;
-  };
-
-
-  /*
-   * Return the number of decimal places of the value of this Decimal.
-   *
-   */
-  P.decimalPlaces = P.dp = function () {
-    var x = this,
-      w = x.d.length - 1,
-      dp = (w - x.e) * LOG_BASE;
-
-    // Subtract the number of trailing zeros of the last word.
-    w = x.d[w];
-    if (w) for (; w % 10 == 0; w /= 10) dp--;
-
-    return dp < 0 ? 0 : dp;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to
-   * `precision` significant digits.
-   *
-   */
-  P.dividedBy = P.div = function (y) {
-    return divide(this, new this.constructor(y));
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the integer part of dividing the value of this Decimal
-   * by the value of `y`, truncated to `precision` significant digits.
-   *
-   */
-  P.dividedToIntegerBy = P.idiv = function (y) {
-    var x = this,
-      Ctor = x.constructor;
-    return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.
-   *
-   */
-  P.equals = P.eq = function (y) {
-    return !this.cmp(y);
-  };
-
-
-  /*
-   * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).
-   *
-   */
-  P.exponent = function () {
-    return getBase10Exponent(this);
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is greater than the value of `y`, otherwise return
-   * false.
-   *
-   */
-  P.greaterThan = P.gt = function (y) {
-    return this.cmp(y) > 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is greater than or equal to the value of `y`,
-   * otherwise return false.
-   *
-   */
-  P.greaterThanOrEqualTo = P.gte = function (y) {
-    return this.cmp(y) >= 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is an integer, otherwise return false.
-   *
-   */
-  P.isInteger = P.isint = function () {
-    return this.e > this.d.length - 2;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is negative, otherwise return false.
-   *
-   */
-  P.isNegative = P.isneg = function () {
-    return this.s < 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is positive, otherwise return false.
-   *
-   */
-  P.isPositive = P.ispos = function () {
-    return this.s > 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is 0, otherwise return false.
-   *
-   */
-  P.isZero = function () {
-    return this.s === 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is less than `y`, otherwise return false.
-   *
-   */
-  P.lessThan = P.lt = function (y) {
-    return this.cmp(y) < 0;
-  };
-
-
-  /*
-   * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.
-   *
-   */
-  P.lessThanOrEqualTo = P.lte = function (y) {
-    return this.cmp(y) < 1;
-  };
-
-
-  /*
-   * Return the logarithm of the value of this Decimal to the specified base, truncated to
-   * `precision` significant digits.
-   *
-   * If no base is specified, return log[10](x).
-   *
-   * log[base](x) = ln(x) / ln(base)
-   *
-   * The maximum error of the result is 1 ulp (unit in the last place).
-   *
-   * [base] {number|string|Decimal} The base of the logarithm.
-   *
-   */
-  P.logarithm = P.log = function (base) {
-    var r,
-      x = this,
-      Ctor = x.constructor,
-      pr = Ctor.precision,
-      wpr = pr + 5;
-
-    // Default base is 10.
-    if (base === void 0) {
-      base = new Ctor(10);
-    } else {
-      base = new Ctor(base);
-
-      // log[-b](x) = NaN
-      // log[0](x)  = NaN
-      // log[1](x)  = NaN
-      if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');
-    }
-
-    // log[b](-x) = NaN
-    // log[b](0) = -Infinity
-    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));
-
-    // log[b](1) = 0
-    if (x.eq(ONE)) return new Ctor(0);
-
-    external = false;
-    r = divide(ln(x, wpr), ln(base, wpr), wpr);
-    external = true;
-
-    return round(r, pr);
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to
-   * `precision` significant digits.
-   *
-   */
-  P.minus = P.sub = function (y) {
-    var x = this;
-    y = new x.constructor(y);
-    return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to
-   * `precision` significant digits.
-   *
-   */
-  P.modulo = P.mod = function (y) {
-    var q,
-      x = this,
-      Ctor = x.constructor,
-      pr = Ctor.precision;
-
-    y = new Ctor(y);
-
-    // x % 0 = NaN
-    if (!y.s) throw Error(decimalError + 'NaN');
-
-    // Return x if x is 0.
-    if (!x.s) return round(new Ctor(x), pr);
-
-    // Prevent rounding of intermediate calculations.
-    external = false;
-    q = divide(x, y, 0, 1).times(y);
-    external = true;
-
-    return x.minus(q);
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the natural exponential of the value of this Decimal,
-   * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`
-   * significant digits.
-   *
-   */
-  P.naturalExponential = P.exp = function () {
-    return exp(this);
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,
-   * truncated to `precision` significant digits.
-   *
-   */
-  P.naturalLogarithm = P.ln = function () {
-    return ln(this);
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by
-   * -1.
-   *
-   */
-  P.negated = P.neg = function () {
-    var x = new this.constructor(this);
-    x.s = -x.s || 0;
-    return x;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to
-   * `precision` significant digits.
-   *
-   */
-  P.plus = P.add = function (y) {
-    var x = this;
-    y = new x.constructor(y);
-    return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));
-  };
-
-
-  /*
-   * Return the number of significant digits of the value of this Decimal.
-   *
-   * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.
-   *
-   */
-  P.precision = P.sd = function (z) {
-    var e, sd, w,
-      x = this;
-
-    if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);
-
-    e = getBase10Exponent(x) + 1;
-    w = x.d.length - 1;
-    sd = w * LOG_BASE + 1;
-    w = x.d[w];
-
-    // If non-zero...
-    if (w) {
-
-      // Subtract the number of trailing zeros of the last word.
-      for (; w % 10 == 0; w /= 10) sd--;
-
-      // Add the number of digits of the first word.
-      for (w = x.d[0]; w >= 10; w /= 10) sd++;
-    }
-
-    return z && e > sd ? e : sd;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`
-   * significant digits.
-   *
-   */
-  P.squareRoot = P.sqrt = function () {
-    var e, n, pr, r, s, t, wpr,
-      x = this,
-      Ctor = x.constructor;
-
-    // Negative or zero?
-    if (x.s < 1) {
-      if (!x.s) return new Ctor(0);
-
-      // sqrt(-x) = NaN
-      throw Error(decimalError + 'NaN');
-    }
-
-    e = getBase10Exponent(x);
-    external = false;
-
-    // Initial estimate.
-    s = Math.sqrt(+x);
-
-    // Math.sqrt underflow/overflow?
-    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.
-    if (s == 0 || s == 1 / 0) {
-      n = digitsToString(x.d);
-      if ((n.length + e) % 2 == 0) n += '0';
-      s = Math.sqrt(n);
-      e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);
-
-      if (s == 1 / 0) {
-        n = '5e' + e;
-      } else {
-        n = s.toExponential();
-        n = n.slice(0, n.indexOf('e') + 1) + e;
-      }
-
-      r = new Ctor(n);
-    } else {
-      r = new Ctor(s.toString());
-    }
-
-    pr = Ctor.precision;
-    s = wpr = pr + 3;
-
-    // Newton-Raphson iteration.
-    for (;;) {
-      t = r;
-      r = t.plus(divide(x, t, wpr + 2)).times(0.5);
-
-      if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {
-        n = n.slice(wpr - 3, wpr + 1);
-
-        // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or
-        // 4999, i.e. approaching a rounding boundary, continue the iteration.
-        if (s == wpr && n == '4999') {
-
-          // On the first iteration only, check to see if rounding up gives the exact result as the
-          // nines may infinitely repeat.
-          round(t, pr + 1, 0);
-
-          if (t.times(t).eq(x)) {
-            r = t;
-            break;
-          }
-        } else if (n != '9999') {
-          break;
-        }
-
-        wpr += 4;
-      }
-    }
-
-    external = true;
-
-    return round(r, pr);
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to
-   * `precision` significant digits.
-   *
-   */
-  P.times = P.mul = function (y) {
-    var carry, e, i, k, r, rL, t, xdL, ydL,
-      x = this,
-      Ctor = x.constructor,
-      xd = x.d,
-      yd = (y = new Ctor(y)).d;
-
-    // Return 0 if either is 0.
-    if (!x.s || !y.s) return new Ctor(0);
-
-    y.s *= x.s;
-    e = x.e + y.e;
-    xdL = xd.length;
-    ydL = yd.length;
-
-    // Ensure xd points to the longer array.
-    if (xdL < ydL) {
-      r = xd;
-      xd = yd;
-      yd = r;
-      rL = xdL;
-      xdL = ydL;
-      ydL = rL;
-    }
-
-    // Initialise the result array with zeros.
-    r = [];
-    rL = xdL + ydL;
-    for (i = rL; i--;) r.push(0);
-
-    // Multiply!
-    for (i = ydL; --i >= 0;) {
-      carry = 0;
-      for (k = xdL + i; k > i;) {
-        t = r[k] + yd[i] * xd[k - i - 1] + carry;
-        r[k--] = t % BASE | 0;
-        carry = t / BASE | 0;
-      }
-
-      r[k] = (r[k] + carry) % BASE | 0;
-    }
-
-    // Remove trailing zeros.
-    for (; !r[--rL];) r.pop();
-
-    if (carry) ++e;
-    else r.shift();
-
-    y.d = r;
-    y.e = e;
-
-    return external ? round(y, Ctor.precision) : y;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`
-   * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.
-   *
-   * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.
-   *
-   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
-   *
-   */
-  P.toDecimalPlaces = P.todp = function (dp, rm) {
-    var x = this,
-      Ctor = x.constructor;
-
-    x = new Ctor(x);
-    if (dp === void 0) return x;
-
-    checkInt32(dp, 0, MAX_DIGITS);
-
-    if (rm === void 0) rm = Ctor.rounding;
-    else checkInt32(rm, 0, 8);
-
-    return round(x, dp + getBase10Exponent(x) + 1, rm);
-  };
-
-
-  /*
-   * Return a string representing the value of this Decimal in exponential notation rounded to
-   * `dp` fixed decimal places using rounding mode `rounding`.
-   *
-   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
-   *
-   */
-  P.toExponential = function (dp, rm) {
-    var str,
-      x = this,
-      Ctor = x.constructor;
-
-    if (dp === void 0) {
-      str = toString(x, true);
-    } else {
-      checkInt32(dp, 0, MAX_DIGITS);
-
-      if (rm === void 0) rm = Ctor.rounding;
-      else checkInt32(rm, 0, 8);
-
-      x = round(new Ctor(x), dp + 1, rm);
-      str = toString(x, true, dp + 1);
-    }
-
-    return str;
-  };
-
-
-  /*
-   * Return a string representing the value of this Decimal in normal (fixed-point) notation to
-   * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is
-   * omitted.
-   *
-   * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.
-   *
-   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
-   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
-   *
-   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
-   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
-   * (-0).toFixed(3) is '0.000'.
-   * (-0.5).toFixed(0) is '-0'.
-   *
-   */
-  P.toFixed = function (dp, rm) {
-    var str, y,
-      x = this,
-      Ctor = x.constructor;
-
-    if (dp === void 0) return toString(x);
-
-    checkInt32(dp, 0, MAX_DIGITS);
-
-    if (rm === void 0) rm = Ctor.rounding;
-    else checkInt32(rm, 0, 8);
-
-    y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);
-    str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);
-
-    // To determine whether to add the minus sign look at the value before it was rounded,
-    // i.e. look at `x` rather than `y`.
-    return x.isneg() && !x.isZero() ? '-' + str : str;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using
-   * rounding mode `rounding`.
-   *
-   */
-  P.toInteger = P.toint = function () {
-    var x = this,
-      Ctor = x.constructor;
-    return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);
-  };
-
-
-  /*
-   * Return the value of this Decimal converted to a number primitive.
-   *
-   */
-  P.toNumber = function () {
-    return +this;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,
-   * truncated to `precision` significant digits.
-   *
-   * For non-integer or very large exponents pow(x, y) is calculated using
-   *
-   *   x^y = exp(y*ln(x))
-   *
-   * The maximum error is 1 ulp (unit in last place).
-   *
-   * y {number|string|Decimal} The power to which to raise this Decimal.
-   *
-   */
-  P.toPower = P.pow = function (y) {
-    var e, k, pr, r, sign, yIsInt,
-      x = this,
-      Ctor = x.constructor,
-      guard = 12,
-      yn = +(y = new Ctor(y));
-
-    // pow(x, 0) = 1
-    if (!y.s) return new Ctor(ONE);
-
-    x = new Ctor(x);
-
-    // pow(0, y > 0) = 0
-    // pow(0, y < 0) = Infinity
-    if (!x.s) {
-      if (y.s < 1) throw Error(decimalError + 'Infinity');
-      return x;
-    }
-
-    // pow(1, y) = 1
-    if (x.eq(ONE)) return x;
-
-    pr = Ctor.precision;
-
-    // pow(x, 1) = x
-    if (y.eq(ONE)) return round(x, pr);
-
-    e = y.e;
-    k = y.d.length - 1;
-    yIsInt = e >= k;
-    sign = x.s;
-
-    if (!yIsInt) {
-
-      // pow(x < 0, y non-integer) = NaN
-      if (sign < 0) throw Error(decimalError + 'NaN');
-
-    // If y is a small integer use the 'exponentiation by squaring' algorithm.
-    } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
-      r = new Ctor(ONE);
-
-      // Max k of 9007199254740991 takes 53 loop iterations.
-      // Maximum digits array length; leaves [28, 34] guard digits.
-      e = Math.ceil(pr / LOG_BASE + 4);
-
-      external = false;
-
-      for (;;) {
-        if (k % 2) {
-          r = r.times(x);
-          truncate(r.d, e);
-        }
-
-        k = mathfloor(k / 2);
-        if (k === 0) break;
-
-        x = x.times(x);
-        truncate(x.d, e);
-      }
-
-      external = true;
-
-      return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);
-    }
-
-    // Result is negative if x is negative and the last digit of integer y is odd.
-    sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;
-
-    x.s = 1;
-    external = false;
-    r = y.times(ln(x, pr + guard));
-    external = true;
-    r = exp(r);
-    r.s = sign;
-
-    return r;
-  };
-
-
-  /*
-   * Return a string representing the value of this Decimal rounded to `sd` significant digits
-   * using rounding mode `rounding`.
-   *
-   * Return exponential notation if `sd` is less than the number of digits necessary to represent
-   * the integer part of the value in normal notation.
-   *
-   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
-   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
-   *
-   */
-  P.toPrecision = function (sd, rm) {
-    var e, str,
-      x = this,
-      Ctor = x.constructor;
-
-    if (sd === void 0) {
-      e = getBase10Exponent(x);
-      str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
-    } else {
-      checkInt32(sd, 1, MAX_DIGITS);
-
-      if (rm === void 0) rm = Ctor.rounding;
-      else checkInt32(rm, 0, 8);
-
-      x = round(new Ctor(x), sd, rm);
-      e = getBase10Exponent(x);
-      str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);
-    }
-
-    return str;
-  };
-
-
-  /*
-   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`
-   * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if
-   * omitted.
-   *
-   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
-   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
-   *
-   */
-  P.toSignificantDigits = P.tosd = function (sd, rm) {
-    var x = this,
-      Ctor = x.constructor;
-
-    if (sd === void 0) {
-      sd = Ctor.precision;
-      rm = Ctor.rounding;
-    } else {
-      checkInt32(sd, 1, MAX_DIGITS);
-
-      if (rm === void 0) rm = Ctor.rounding;
-      else checkInt32(rm, 0, 8);
-    }
-
-    return round(new Ctor(x), sd, rm);
-  };
-
-
-  /*
-   * Return a string representing the value of this Decimal.
-   *
-   * Return exponential notation if this Decimal has a positive exponent equal to or greater than
-   * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
-   *
-   */
-  P.toString = P.valueOf = P.val = P.toJSON = function () {
-    var x = this,
-      e = getBase10Exponent(x),
-      Ctor = x.constructor;
-
-    return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
-  };
-
-
-  // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.
-
-
-  /*
-   *  add                 P.minus, P.plus
-   *  checkInt32          P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd
-   *  digitsToString      P.log, P.sqrt, P.pow, toString, exp, ln
-   *  divide              P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln
-   *  exp                 P.exp, P.pow
-   *  getBase10Exponent   P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,
-   *                      P.toString, divide, round, toString, exp, ln
-   *  getLn10             P.log, ln
-   *  getZeroString       digitsToString, toString
-   *  ln                  P.log, P.ln, P.pow, exp
-   *  parseDecimal        Decimal
-   *  round               P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,
-   *                      P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,
-   *                      divide, getLn10, exp, ln
-   *  subtract            P.minus, P.plus
-   *  toString            P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf
-   *  truncate            P.pow
-   *
-   *  Throws:             P.log, P.mod, P.sd, P.sqrt, P.pow,  checkInt32, divide, round,
-   *                      getLn10, exp, ln, parseDecimal, Decimal, config
-   */
-
-
-  function add(x, y) {
-    var carry, d, e, i, k, len, xd, yd,
-      Ctor = x.constructor,
-      pr = Ctor.precision;
-
-    // If either is zero...
-    if (!x.s || !y.s) {
-
-      // Return x if y is zero.
-      // Return y if y is non-zero.
-      if (!y.s) y = new Ctor(x);
-      return external ? round(y, pr) : y;
-    }
-
-    xd = x.d;
-    yd = y.d;
-
-    // x and y are finite, non-zero numbers with the same sign.
-
-    k = x.e;
-    e = y.e;
-    xd = xd.slice();
-    i = k - e;
-
-    // If base 1e7 exponents differ...
-    if (i) {
-      if (i < 0) {
-        d = xd;
-        i = -i;
-        len = yd.length;
-      } else {
-        d = yd;
-        e = k;
-        len = xd.length;
-      }
-
-      // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.
-      k = Math.ceil(pr / LOG_BASE);
-      len = k > len ? k + 1 : len + 1;
-
-      if (i > len) {
-        i = len;
-        d.length = 1;
-      }
-
-      // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.
-      d.reverse();
-      for (; i--;) d.push(0);
-      d.reverse();
-    }
-
-    len = xd.length;
-    i = yd.length;
-
-    // If yd is longer than xd, swap xd and yd so xd points to the longer array.
-    if (len - i < 0) {
-      i = len;
-      d = yd;
-      yd = xd;
-      xd = d;
-    }
-
-    // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.
-    for (carry = 0; i;) {
-      carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;
-      xd[i] %= BASE;
-    }
-
-    if (carry) {
-      xd.unshift(carry);
-      ++e;
-    }
-
-    // Remove trailing zeros.
-    // No need to check for zero, as +x + +y != 0 && -x + -y != 0
-    for (len = xd.length; xd[--len] == 0;) xd.pop();
-
-    y.d = xd;
-    y.e = e;
-
-    return external ? round(y, pr) : y;
-  }
-
-
-  function checkInt32(i, min, max) {
-    if (i !== ~~i || i < min || i > max) {
-      throw Error(invalidArgument + i);
-    }
-  }
-
-
-  function digitsToString(d) {
-    var i, k, ws,
-      indexOfLastWord = d.length - 1,
-      str = '',
-      w = d[0];
-
-    if (indexOfLastWord > 0) {
-      str += w;
-      for (i = 1; i < indexOfLastWord; i++) {
-        ws = d[i] + '';
-        k = LOG_BASE - ws.length;
-        if (k) str += getZeroString(k);
-        str += ws;
-      }
-
-      w = d[i];
-      ws = w + '';
-      k = LOG_BASE - ws.length;
-      if (k) str += getZeroString(k);
-    } else if (w === 0) {
-      return '0';
-    }
-
-    // Remove trailing zeros of last w.
-    for (; w % 10 === 0;) w /= 10;
-
-    return str + w;
-  }
-
-
-  var divide = (function () {
-
-    // Assumes non-zero x and k, and hence non-zero result.
-    function multiplyInteger(x, k) {
-      var temp,
-        carry = 0,
-        i = x.length;
-
-      for (x = x.slice(); i--;) {
-        temp = x[i] * k + carry;
-        x[i] = temp % BASE | 0;
-        carry = temp / BASE | 0;
-      }
-
-      if (carry) x.unshift(carry);
-
-      return x;
-    }
-
-    function compare(a, b, aL, bL) {
-      var i, r;
-
-      if (aL != bL) {
-        r = aL > bL ? 1 : -1;
-      } else {
-        for (i = r = 0; i < aL; i++) {
-          if (a[i] != b[i]) {
-            r = a[i] > b[i] ? 1 : -1;
-            break;
-          }
-        }
-      }
-
-      return r;
-    }
-
-    function subtract(a, b, aL) {
-      var i = 0;
-
-      // Subtract b from a.
-      for (; aL--;) {
-        a[aL] -= i;
-        i = a[aL] < b[aL] ? 1 : 0;
-        a[aL] = i * BASE + a[aL] - b[aL];
-      }
-
-      // Remove leading zeros.
-      for (; !a[0] && a.length > 1;) a.shift();
-    }
-
-    return function (x, y, pr, dp) {
-      var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,
-        Ctor = x.constructor,
-        sign = x.s == y.s ? 1 : -1,
-        xd = x.d,
-        yd = y.d;
-
-      // Either 0?
-      if (!x.s) return new Ctor(x);
-      if (!y.s) throw Error(decimalError + 'Division by zero');
-
-      e = x.e - y.e;
-      yL = yd.length;
-      xL = xd.length;
-      q = new Ctor(sign);
-      qd = q.d = [];
-
-      // Result exponent may be one less than e.
-      for (i = 0; yd[i] == (xd[i] || 0); ) ++i;
-      if (yd[i] > (xd[i] || 0)) --e;
-
-      if (pr == null) {
-        sd = pr = Ctor.precision;
-      } else if (dp) {
-        sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;
-      } else {
-        sd = pr;
-      }
-
-      if (sd < 0) return new Ctor(0);
-
-      // Convert precision in number of base 10 digits to base 1e7 digits.
-      sd = sd / LOG_BASE + 2 | 0;
-      i = 0;
-
-      // divisor < 1e7
-      if (yL == 1) {
-        k = 0;
-        yd = yd[0];
-        sd++;
-
-        // k is the carry.
-        for (; (i < xL || k) && sd--; i++) {
-          t = k * BASE + (xd[i] || 0);
-          qd[i] = t / yd | 0;
-          k = t % yd | 0;
-        }
-
-      // divisor >= 1e7
-      } else {
-
-        // Normalise xd and yd so highest order digit of yd is >= BASE/2
-        k = BASE / (yd[0] + 1) | 0;
-
-        if (k > 1) {
-          yd = multiplyInteger(yd, k);
-          xd = multiplyInteger(xd, k);
-          yL = yd.length;
-          xL = xd.length;
-        }
-
-        xi = yL;
-        rem = xd.slice(0, yL);
-        remL = rem.length;
-
-        // Add zeros to make remainder as long as divisor.
-        for (; remL < yL;) rem[remL++] = 0;
-
-        yz = yd.slice();
-        yz.unshift(0);
-        yd0 = yd[0];
-
-        if (yd[1] >= BASE / 2) ++yd0;
-
-        do {
-          k = 0;
-
-          // Compare divisor and remainder.
-          cmp = compare(yd, rem, yL, remL);
-
-          // If divisor < remainder.
-          if (cmp < 0) {
-
-            // Calculate trial digit, k.
-            rem0 = rem[0];
-            if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);
-
-            // k will be how many times the divisor goes into the current remainder.
-            k = rem0 / yd0 | 0;
-
-            //  Algorithm:
-            //  1. product = divisor * trial digit (k)
-            //  2. if product > remainder: product -= divisor, k--
-            //  3. remainder -= product
-            //  4. if product was < remainder at 2:
-            //    5. compare new remainder and divisor
-            //    6. If remainder > divisor: remainder -= divisor, k++
-
-            if (k > 1) {
-              if (k >= BASE) k = BASE - 1;
-
-              // product = divisor * trial digit.
-              prod = multiplyInteger(yd, k);
-              prodL = prod.length;
-              remL = rem.length;
-
-              // Compare product and remainder.
-              cmp = compare(prod, rem, prodL, remL);
-
-              // product > remainder.
-              if (cmp == 1) {
-                k--;
-
-                // Subtract divisor from product.
-                subtract(prod, yL < prodL ? yz : yd, prodL);
-              }
-            } else {
-
-              // cmp is -1.
-              // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1
-              // to avoid it. If k is 1 there is a need to compare yd and rem again below.
-              if (k == 0) cmp = k = 1;
-              prod = yd.slice();
-            }
-
-            prodL = prod.length;
-            if (prodL < remL) prod.unshift(0);
-
-            // Subtract product from remainder.
-            subtract(rem, prod, remL);
-
-            // If product was < previous remainder.
-            if (cmp == -1) {
-              remL = rem.length;
-
-              // Compare divisor and new remainder.
-              cmp = compare(yd, rem, yL, remL);
-
-              // If divisor < new remainder, subtract divisor from remainder.
-              if (cmp < 1) {
-                k++;
-
-                // Subtract divisor from remainder.
-                subtract(rem, yL < remL ? yz : yd, remL);
-              }
-            }
-
-            remL = rem.length;
-          } else if (cmp === 0) {
-            k++;
-            rem = [0];
-          }    // if cmp === 1, k will be 0
-
-          // Add the next digit, k, to the result array.
-          qd[i++] = k;
-
-          // Update the remainder.
-          if (cmp && rem[0]) {
-            rem[remL++] = xd[xi] || 0;
-          } else {
-            rem = [xd[xi]];
-            remL = 1;
-          }
-
-        } while ((xi++ < xL || rem[0] !== void 0) && sd--);
-      }
-
-      // Leading zero?
-      if (!qd[0]) qd.shift();
-
-      q.e = e;
-
-      return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);
-    };
-  })();
-
-
-  /*
-   * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`
-   * significant digits.
-   *
-   * Taylor/Maclaurin series.
-   *
-   * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...
-   *
-   * Argument reduction:
-   *   Repeat x = x / 32, k += 5, until |x| < 0.1
-   *   exp(x) = exp(x / 2^k)^(2^k)
-   *
-   * Previously, the argument was initially reduced by
-   * exp(x) = exp(r) * 10^k  where r = x - k * ln10, k = floor(x / ln10)
-   * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was
-   * found to be slower than just dividing repeatedly by 32 as above.
-   *
-   * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)
-   *
-   *  exp(x) is non-terminating for any finite, non-zero x.
-   *
-   */
-  function exp(x, sd) {
-    var denominator, guard, pow, sum, t, wpr,
-      i = 0,
-      k = 0,
-      Ctor = x.constructor,
-      pr = Ctor.precision;
-
-    if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));
-
-    // exp(0) = 1
-    if (!x.s) return new Ctor(ONE);
-
-    if (sd == null) {
-      external = false;
-      wpr = pr;
-    } else {
-      wpr = sd;
-    }
-
-    t = new Ctor(0.03125);
-
-    while (x.abs().gte(0.1)) {
-      x = x.times(t);    // x = x / 2^5
-      k += 5;
-    }
-
-    // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.
-    guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;
-    wpr += guard;
-    denominator = pow = sum = new Ctor(ONE);
-    Ctor.precision = wpr;
-
-    for (;;) {
-      pow = round(pow.times(x), wpr);
-      denominator = denominator.times(++i);
-      t = sum.plus(divide(pow, denominator, wpr));
-
-      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
-        while (k--) sum = round(sum.times(sum), wpr);
-        Ctor.precision = pr;
-        return sd == null ? (external = true, round(sum, pr)) : sum;
-      }
-
-      sum = t;
-    }
-  }
-
-
-  // Calculate the base 10 exponent from the base 1e7 exponent.
-  function getBase10Exponent(x) {
-    var e = x.e * LOG_BASE,
-      w = x.d[0];
-
-    // Add the number of digits of the first word of the digits array.
-    for (; w >= 10; w /= 10) e++;
-    return e;
-  }
-
-
-  function getLn10(Ctor, sd, pr) {
-
-    if (sd > Ctor.LN10.sd()) {
-
-
-      // Reset global state in case the exception is caught.
-      external = true;
-      if (pr) Ctor.precision = pr;
-      throw Error(decimalError + 'LN10 precision limit exceeded');
-    }
-
-    return round(new Ctor(Ctor.LN10), sd);
-  }
-
-
-  function getZeroString(k) {
-    var zs = '';
-    for (; k--;) zs += '0';
-    return zs;
-  }
-
-
-  /*
-   * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant
-   * digits.
-   *
-   *  ln(n) is non-terminating (n != 1)
-   *
-   */
-  function ln(y, sd) {
-    var c, c0, denominator, e, numerator, sum, t, wpr, x2,
-      n = 1,
-      guard = 10,
-      x = y,
-      xd = x.d,
-      Ctor = x.constructor,
-      pr = Ctor.precision;
-
-    // ln(-x) = NaN
-    // ln(0) = -Infinity
-    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));
-
-    // ln(1) = 0
-    if (x.eq(ONE)) return new Ctor(0);
-
-    if (sd == null) {
-      external = false;
-      wpr = pr;
-    } else {
-      wpr = sd;
-    }
-
-    if (x.eq(10)) {
-      if (sd == null) external = true;
-      return getLn10(Ctor, wpr);
-    }
-
-    wpr += guard;
-    Ctor.precision = wpr;
-    c = digitsToString(xd);
-    c0 = c.charAt(0);
-    e = getBase10Exponent(x);
-
-    if (Math.abs(e) < 1.5e15) {
-
-      // Argument reduction.
-      // The series converges faster the closer the argument is to 1, so using
-      // ln(a^b) = b * ln(a),   ln(a) = ln(a^b) / b
-      // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,
-      // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can
-      // later be divided by this number, then separate out the power of 10 using
-      // ln(a*10^b) = ln(a) + b*ln(10).
-
-      // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).
-      //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {
-      // max n is 6 (gives 0.7 - 1.3)
-      while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {
-        x = x.times(y);
-        c = digitsToString(x.d);
-        c0 = c.charAt(0);
-        n++;
-      }
-
-      e = getBase10Exponent(x);
-
-      if (c0 > 1) {
-        x = new Ctor('0.' + c);
-        e++;
-      } else {
-        x = new Ctor(c0 + '.' + c.slice(1));
-      }
-    } else {
-
-      // The argument reduction method above may result in overflow if the argument y is a massive
-      // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this
-      // function using ln(x*10^e) = ln(x) + e*ln(10).
-      t = getLn10(Ctor, wpr + 2, pr).times(e + '');
-      x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);
-
-      Ctor.precision = pr;
-      return sd == null ? (external = true, round(x, pr)) : x;
-    }
-
-    // x is reduced to a value near 1.
-
-    // Taylor series.
-    // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)
-    // where x = (y - 1)/(y + 1)    (|x| < 1)
-    sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);
-    x2 = round(x.times(x), wpr);
-    denominator = 3;
-
-    for (;;) {
-      numerator = round(numerator.times(x2), wpr);
-      t = sum.plus(divide(numerator, new Ctor(denominator), wpr));
-
-      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
-        sum = sum.times(2);
-
-        // Reverse the argument reduction.
-        if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));
-        sum = divide(sum, new Ctor(n), wpr);
-
-        Ctor.precision = pr;
-        return sd == null ? (external = true, round(sum, pr)) : sum;
-      }
-
-      sum = t;
-      denominator += 2;
-    }
-  }
-
-
-  /*
-   * Parse the value of a new Decimal `x` from string `str`.
-   */
-  function parseDecimal(x, str) {
-    var e, i, len;
-
-    // Decimal point?
-    if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
-
-    // Exponential form?
-    if ((i = str.search(/e/i)) > 0) {
-
-      // Determine exponent.
-      if (e < 0) e = i;
-      e += +str.slice(i + 1);
-      str = str.substring(0, i);
-    } else if (e < 0) {
-
-      // Integer.
-      e = str.length;
-    }
-
-    // Determine leading zeros.
-    for (i = 0; str.charCodeAt(i) === 48;) ++i;
-
-    // Determine trailing zeros.
-    for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;
-    str = str.slice(i, len);
-
-    if (str) {
-      len -= i;
-      e = e - i - 1;
-      x.e = mathfloor(e / LOG_BASE);
-      x.d = [];
-
-      // Transform base
-
-      // e is the base 10 exponent.
-      // i is where to slice str to get the first word of the digits array.
-      i = (e + 1) % LOG_BASE;
-      if (e < 0) i += LOG_BASE;
-
-      if (i < len) {
-        if (i) x.d.push(+str.slice(0, i));
-        for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));
-        str = str.slice(i);
-        i = LOG_BASE - str.length;
-      } else {
-        i -= len;
-      }
-
-      for (; i--;) str += '0';
-      x.d.push(+str);
-
-      if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);
-    } else {
-
-      // Zero.
-      x.s = 0;
-      x.e = 0;
-      x.d = [0];
-    }
-
-    return x;
-  }
-
-
-  /*
-   * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).
-   */
-   function round(x, sd, rm) {
-    var i, j, k, n, rd, doRound, w, xdi,
-      xd = x.d;
-
-    // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.
-    // w: the word of xd which contains the rounding digit, a base 1e7 number.
-    // xdi: the index of w within xd.
-    // n: the number of digits of w.
-    // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if
-    // they had leading zeros)
-    // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).
-
-    // Get the length of the first word of the digits array xd.
-    for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;
-    i = sd - n;
-
-    // Is the rounding digit in the first word of xd?
-    if (i < 0) {
-      i += LOG_BASE;
-      j = sd;
-      w = xd[xdi = 0];
-    } else {
-      xdi = Math.ceil((i + 1) / LOG_BASE);
-      k = xd.length;
-      if (xdi >= k) return x;
-      w = k = xd[xdi];
-
-      // Get the number of digits of w.
-      for (n = 1; k >= 10; k /= 10) n++;
-
-      // Get the index of rd within w.
-      i %= LOG_BASE;
-
-      // Get the index of rd within w, adjusted for leading zeros.
-      // The number of leading zeros of w is given by LOG_BASE - n.
-      j = i - LOG_BASE + n;
-    }
-
-    if (rm !== void 0) {
-      k = mathpow(10, n - j - 1);
-
-      // Get the rounding digit at index j of w.
-      rd = w / k % 10 | 0;
-
-      // Are there any non-zero digits after the rounding digit?
-      doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;
-
-      // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the
-      // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give
-      // 714.
-
-      doRound = rm < 4
-        ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
-        : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&
-
-          // Check whether the digit to the left of the rounding digit is odd.
-          ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||
-            rm == (x.s < 0 ? 8 : 7));
-    }
-
-    if (sd < 1 || !xd[0]) {
-      if (doRound) {
-        k = getBase10Exponent(x);
-        xd.length = 1;
-
-        // Convert sd to decimal places.
-        sd = sd - k - 1;
-
-        // 1, 0.1, 0.01, 0.001, 0.0001 etc.
-        xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
-        x.e = mathfloor(-sd / LOG_BASE) || 0;
-      } else {
-        xd.length = 1;
-
-        // Zero.
-        xd[0] = x.e = x.s = 0;
-      }
-
-      return x;
-    }
-
-    // Remove excess digits.
-    if (i == 0) {
-      xd.length = xdi;
-      k = 1;
-      xdi--;
-    } else {
-      xd.length = xdi + 1;
-      k = mathpow(10, LOG_BASE - i);
-
-      // E.g. 56700 becomes 56000 if 7 is the rounding digit.
-      // j > 0 means i > number of leading zeros of w.
-      xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;
-    }
-
-    if (doRound) {
-      for (;;) {
-
-        // Is the digit to be rounded up in the first word of xd?
-        if (xdi == 0) {
-          if ((xd[0] += k) == BASE) {
-            xd[0] = 1;
-            ++x.e;
-          }
-
-          break;
-        } else {
-          xd[xdi] += k;
-          if (xd[xdi] != BASE) break;
-          xd[xdi--] = 0;
-          k = 1;
-        }
-      }
-    }
-
-    // Remove trailing zeros.
-    for (i = xd.length; xd[--i] === 0;) xd.pop();
-
-    if (external && (x.e > MAX_E || x.e < -MAX_E)) {
-      throw Error(exponentOutOfRange + getBase10Exponent(x));
-    }
-
-    return x;
-  }
-
-
-  function subtract(x, y) {
-    var d, e, i, j, k, len, xd, xe, xLTy, yd,
-      Ctor = x.constructor,
-      pr = Ctor.precision;
-
-    // Return y negated if x is zero.
-    // Return x if y is zero and x is non-zero.
-    if (!x.s || !y.s) {
-      if (y.s) y.s = -y.s;
-      else y = new Ctor(x);
-      return external ? round(y, pr) : y;
-    }
-
-    xd = x.d;
-    yd = y.d;
-
-    // x and y are non-zero numbers with the same sign.
-
-    e = y.e;
-    xe = x.e;
-    xd = xd.slice();
-    k = xe - e;
-
-    // If exponents differ...
-    if (k) {
-      xLTy = k < 0;
-
-      if (xLTy) {
-        d = xd;
-        k = -k;
-        len = yd.length;
-      } else {
-        d = yd;
-        e = xe;
-        len = xd.length;
-      }
-
-      // Numbers with massively different exponents would result in a very high number of zeros
-      // needing to be prepended, but this can be avoided while still ensuring correct rounding by
-      // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.
-      i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;
-
-      if (k > i) {
-        k = i;
-        d.length = 1;
-      }
-
-      // Prepend zeros to equalise exponents.
-      d.reverse();
-      for (i = k; i--;) d.push(0);
-      d.reverse();
-
-    // Base 1e7 exponents equal.
-    } else {
-
-      // Check digits to determine which is the bigger number.
-
-      i = xd.length;
-      len = yd.length;
-      xLTy = i < len;
-      if (xLTy) len = i;
-
-      for (i = 0; i < len; i++) {
-        if (xd[i] != yd[i]) {
-          xLTy = xd[i] < yd[i];
-          break;
-        }
-      }
-
-      k = 0;
-    }
-
-    if (xLTy) {
-      d = xd;
-      xd = yd;
-      yd = d;
-      y.s = -y.s;
-    }
-
-    len = xd.length;
-
-    // Append zeros to xd if shorter.
-    // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.
-    for (i = yd.length - len; i > 0; --i) xd[len++] = 0;
-
-    // Subtract yd from xd.
-    for (i = yd.length; i > k;) {
-      if (xd[--i] < yd[i]) {
-        for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;
-        --xd[j];
-        xd[i] += BASE;
-      }
-
-      xd[i] -= yd[i];
-    }
-
-    // Remove trailing zeros.
-    for (; xd[--len] === 0;) xd.pop();
-
-    // Remove leading zeros and adjust exponent accordingly.
-    for (; xd[0] === 0; xd.shift()) --e;
-
-    // Zero?
-    if (!xd[0]) return new Ctor(0);
-
-    y.d = xd;
-    y.e = e;
-
-    //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;
-    return external ? round(y, pr) : y;
-  }
-
-
-  function toString(x, isExp, sd) {
-    var k,
-      e = getBase10Exponent(x),
-      str = digitsToString(x.d),
-      len = str.length;
-
-    if (isExp) {
-      if (sd && (k = sd - len) > 0) {
-        str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);
-      } else if (len > 1) {
-        str = str.charAt(0) + '.' + str.slice(1);
-      }
-
-      str = str + (e < 0 ? 'e' : 'e+') + e;
-    } else if (e < 0) {
-      str = '0.' + getZeroString(-e - 1) + str;
-      if (sd && (k = sd - len) > 0) str += getZeroString(k);
-    } else if (e >= len) {
-      str += getZeroString(e + 1 - len);
-      if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);
-    } else {
-      if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);
-      if (sd && (k = sd - len) > 0) {
-        if (e + 1 === len) str += '.';
-        str += getZeroString(k);
-      }
-    }
-
-    return x.s < 0 ? '-' + str : str;
-  }
-
-
-  // Does not strip trailing zeros.
-  function truncate(arr, len) {
-    if (arr.length > len) {
-      arr.length = len;
-      return true;
-    }
-  }
-
-
-  // Decimal methods
-
-
-  /*
-   *  clone
-   *  config/set
-   */
-
-
-  /*
-   * Create and return a Decimal constructor with the same configuration properties as this Decimal
-   * constructor.
-   *
-   */
-  function clone(obj) {
-    var i, p, ps;
-
-    /*
-     * The Decimal constructor and exported function.
-     * Return a new Decimal instance.
-     *
-     * value {number|string|Decimal} A numeric value.
-     *
-     */
-    function Decimal(value) {
-      var x = this;
-
-      // Decimal called without new.
-      if (!(x instanceof Decimal)) return new Decimal(value);
-
-      // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor
-      // which points to Object.
-      x.constructor = Decimal;
-
-      // Duplicate.
-      if (value instanceof Decimal) {
-        x.s = value.s;
-        x.e = value.e;
-        x.d = (value = value.d) ? value.slice() : value;
-        return;
-      }
-
-      if (typeof value === 'number') {
-
-        // Reject Infinity/NaN.
-        if (value * 0 !== 0) {
-          throw Error(invalidArgument + value);
-        }
-
-        if (value > 0) {
-          x.s = 1;
-        } else if (value < 0) {
-          value = -value;
-          x.s = -1;
-        } else {
-          x.s = 0;
-          x.e = 0;
-          x.d = [0];
-          return;
-        }
-
-        // Fast path for small integers.
-        if (value === ~~value && value < 1e7) {
-          x.e = 0;
-          x.d = [value];
-          return;
-        }
-
-        return parseDecimal(x, value.toString());
-      } else if (typeof value !== 'string') {
-        throw Error(invalidArgument + value);
-      }
-
-      // Minus sign?
-      if (value.charCodeAt(0) === 45) {
-        value = value.slice(1);
-        x.s = -1;
-      } else {
-        x.s = 1;
-      }
-
-      if (isDecimal.test(value)) parseDecimal(x, value);
-      else throw Error(invalidArgument + value);
-    }
-
-    Decimal.prototype = P;
-
-    Decimal.ROUND_UP = 0;
-    Decimal.ROUND_DOWN = 1;
-    Decimal.ROUND_CEIL = 2;
-    Decimal.ROUND_FLOOR = 3;
-    Decimal.ROUND_HALF_UP = 4;
-    Decimal.ROUND_HALF_DOWN = 5;
-    Decimal.ROUND_HALF_EVEN = 6;
-    Decimal.ROUND_HALF_CEIL = 7;
-    Decimal.ROUND_HALF_FLOOR = 8;
-
-    Decimal.clone = clone;
-    Decimal.config = Decimal.set = config;
-
-    if (obj === void 0) obj = {};
-    if (obj) {
-      ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];
-      for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];
-    }
-
-    Decimal.config(obj);
-
-    return Decimal;
-  }
-
-
-  /*
-   * Configure global settings for a Decimal constructor.
-   *
-   * `obj` is an object with one or more of the following properties,
-   *
-   *   precision  {number}
-   *   rounding   {number}
-   *   toExpNeg   {number}
-   *   toExpPos   {number}
-   *
-   * E.g. Decimal.config({ precision: 20, rounding: 4 })
-   *
-   */
-  function config(obj) {
-    if (!obj || typeof obj !== 'object') {
-      throw Error(decimalError + 'Object expected');
-    }
-    var i, p, v,
-      ps = [
-        'precision', 1, MAX_DIGITS,
-        'rounding', 0, 8,
-        'toExpNeg', -1 / 0, 0,
-        'toExpPos', 0, 1 / 0
-      ];
-
-    for (i = 0; i < ps.length; i += 3) {
-      if ((v = obj[p = ps[i]]) !== void 0) {
-        if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;
-        else throw Error(invalidArgument + p + ': ' + v);
-      }
-    }
-
-    if ((v = obj[p = 'LN10']) !== void 0) {
-        if (v == Math.LN10) this[p] = new this(v);
-        else throw Error(invalidArgument + p + ': ' + v);
-    }
-
-    return this;
-  }
-
-
-  // Create and configure initial Decimal constructor.
-  Decimal = clone(Decimal);
-
-  Decimal['default'] = Decimal.Decimal = Decimal;
-
-  // Internal constant.
-  ONE = new Decimal(1);
-
-
-  // Export.
-
-
-  // AMD.
-  if (typeof define == 'function' && define.amd) {
-    define(function () {
-      return Decimal;
-    });
-
-  // Node and other environments that support module.exports.
-  } else if (typeof module != 'undefined' && module.exports) {
-    module.exports = Decimal;
-
-    // Browser.
-  } else {
-    if (!globalScope) {
-      globalScope = typeof self != 'undefined' && self && self.self == self
-        ? self : Function('return this')();
-    }
-
-    globalScope.Decimal = Decimal;
-  }
-})(this);
Index: de_modules/decimal.js-light/decimal.min.js
===================================================================
--- node_modules/decimal.js-light/decimal.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-/* decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */
-!function(r){"use strict";function e(r,e){var t,n,i,o,s,u,f,c,l=r.constructor,d=l.precision;if(!r.s||!e.s)return e.s||(e=new l(r)),E?h(e,d):e;if(f=r.d,c=e.d,s=r.e,i=e.e,f=f.slice(),o=s-i){for(0>o?(n=f,o=-o,u=c.length):(n=c,i=s,u=f.length),s=Math.ceil(d/y),u=s>u?s+1:u+1,o>u&&(o=u,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(u=f.length,o=c.length,0>u-o&&(o=u,n=c,c=f,f=n),t=0;o;)t=(f[--o]=f[o]+c[o]+t)/q|0,f[o]%=q;for(t&&(f.unshift(t),++i),u=f.length;0==f[--u];)f.pop();return e.d=f,e.e=i,E?h(e,d):e}function t(r,e,t){if(r!==~~r||e>r||r>t)throw Error(x+r)}function n(r){var e,t,n,i=r.length-1,o="",s=r[0];if(i>0){for(o+=s,e=1;i>e;e++)n=r[e]+"",t=y-n.length,t&&(o+=u(t)),o+=n;s=r[e],n=s+"",t=y-n.length,t&&(o+=u(t))}else if(0===s)return"0";for(;s%10===0;)s/=10;return o+s}function i(r,e){var t,i,s,u,f,c,l=0,d=0,a=r.constructor,g=a.precision;if(o(r)>16)throw Error(O+o(r));if(!r.s)return new a(v);for(null==e?(E=!1,c=g):c=e,f=new a(.03125);r.abs().gte(.1);)r=r.times(f),d+=5;for(i=Math.log(L(2,d))/Math.LN10*2+5|0,c+=i,t=s=u=new a(v),a.precision=c;;){if(s=h(s.times(r),c),t=t.times(++l),f=u.plus(P(s,t,c)),n(f.d).slice(0,c)===n(u.d).slice(0,c)){for(;d--;)u=h(u.times(u),c);return a.precision=g,null==e?(E=!0,h(u,g)):u}u=f}}function o(r){for(var e=r.e*y,t=r.d[0];t>=10;t/=10)e++;return e}function s(r,e,t){if(e>r.LN10.sd())throw E=!0,t&&(r.precision=t),Error(N+"LN10 precision limit exceeded");return h(new r(r.LN10),e)}function u(r){for(var e="";r--;)e+="0";return e}function f(r,e){var t,i,u,c,l,d,a,g,p,w=1,m=10,x=r,O=x.d,b=x.constructor,L=b.precision;if(x.s<1)throw Error(N+(x.s?"NaN":"-Infinity"));if(x.eq(v))return new b(0);if(null==e?(E=!1,g=L):g=e,x.eq(10))return null==e&&(E=!0),s(b,g);if(g+=m,b.precision=g,t=n(O),i=t.charAt(0),c=o(x),!(Math.abs(c)<15e14))return a=s(b,g+2,L).times(c+""),x=f(new b(i+"."+t.slice(1)),g-m).plus(a),b.precision=L,null==e?(E=!0,h(x,L)):x;for(;7>i&&1!=i||1==i&&t.charAt(1)>3;)x=x.times(r),t=n(x.d),i=t.charAt(0),w++;for(c=o(x),i>1?(x=new b("0."+t),c++):x=new b(i+"."+t.slice(1)),d=l=x=P(x.minus(v),x.plus(v),g),p=h(x.times(x),g),u=3;;){if(l=h(l.times(p),g),a=d.plus(P(l,new b(u),g)),n(a.d).slice(0,g)===n(d.d).slice(0,g))return d=d.times(2),0!==c&&(d=d.plus(s(b,g+2,L).times(c+""))),d=P(d,new b(w),g),b.precision=L,null==e?(E=!0,h(d,L)):d;d=a,u+=2}}function c(r,e){var t,n,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(0>t&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):0>t&&(t=e.length),n=0;48===e.charCodeAt(n);)++n;for(i=e.length;48===e.charCodeAt(i-1);)--i;if(e=e.slice(n,i)){if(i-=n,t=t-n-1,r.e=b(t/y),r.d=[],n=(t+1)%y,0>t&&(n+=y),i>n){for(n&&r.d.push(+e.slice(0,n)),i-=y;i>n;)r.d.push(+e.slice(n,n+=y));e=e.slice(n),n=y-e.length}else n-=i;for(;n--;)e+="0";if(r.d.push(+e),E&&(r.e>_||r.e<-_))throw Error(O+t)}else r.s=0,r.e=0,r.d=[0];return r}function h(r,e,t){var n,i,s,u,f,c,h,l,d=r.d;for(u=1,s=d[0];s>=10;s/=10)u++;if(n=e-u,0>n)n+=y,i=e,h=d[l=0];else{if(l=Math.ceil((n+1)/y),s=d.length,l>=s)return r;for(h=s=d[l],u=1;s>=10;s/=10)u++;n%=y,i=n-y+u}if(void 0!==t&&(s=L(10,u-i-1),f=h/s%10|0,c=0>e||void 0!==d[l+1]||h%s,c=4>t?(f||c)&&(0==t||t==(r.s<0?3:2)):f>5||5==f&&(4==t||c||6==t&&(n>0?i>0?h/L(10,u-i):0:d[l-1])%10&1||t==(r.s<0?8:7))),1>e||!d[0])return c?(s=o(r),d.length=1,e=e-s-1,d[0]=L(10,(y-e%y)%y),r.e=b(-e/y)||0):(d.length=1,d[0]=r.e=r.s=0),r;if(0==n?(d.length=l,s=1,l--):(d.length=l+1,s=L(10,y-n),d[l]=i>0?(h/L(10,u-i)%L(10,i)|0)*s:0),c)for(;;){if(0==l){(d[0]+=s)==q&&(d[0]=1,++r.e);break}if(d[l]+=s,d[l]!=q)break;d[l--]=0,s=1}for(n=d.length;0===d[--n];)d.pop();if(E&&(r.e>_||r.e<-_))throw Error(O+o(r));return r}function l(r,e){var t,n,i,o,s,u,f,c,l,d,a=r.constructor,g=a.precision;if(!r.s||!e.s)return e.s?e.s=-e.s:e=new a(r),E?h(e,g):e;if(f=r.d,d=e.d,n=e.e,c=r.e,f=f.slice(),s=c-n){for(l=0>s,l?(t=f,s=-s,u=d.length):(t=d,n=c,u=f.length),i=Math.max(Math.ceil(g/y),u)+2,s>i&&(s=i,t.length=1),t.reverse(),i=s;i--;)t.push(0);t.reverse()}else{for(i=f.length,u=d.length,l=u>i,l&&(u=i),i=0;u>i;i++)if(f[i]!=d[i]){l=f[i]<d[i];break}s=0}for(l&&(t=f,f=d,d=t,e.s=-e.s),u=f.length,i=d.length-u;i>0;--i)f[u++]=0;for(i=d.length;i>s;){if(f[--i]<d[i]){for(o=i;o&&0===f[--o];)f[o]=q-1;--f[o],f[i]+=q}f[i]-=d[i]}for(;0===f[--u];)f.pop();for(;0===f[0];f.shift())--n;return f[0]?(e.d=f,e.e=n,E?h(e,g):e):new a(0)}function d(r,e,t){var i,s=o(r),f=n(r.d),c=f.length;return e?(t&&(i=t-c)>0?f=f.charAt(0)+"."+f.slice(1)+u(i):c>1&&(f=f.charAt(0)+"."+f.slice(1)),f=f+(0>s?"e":"e+")+s):0>s?(f="0."+u(-s-1)+f,t&&(i=t-c)>0&&(f+=u(i))):s>=c?(f+=u(s+1-c),t&&(i=t-s-1)>0&&(f=f+"."+u(i))):((i=s+1)<c&&(f=f.slice(0,i)+"."+f.slice(i)),t&&(i=t-c)>0&&(s+1===c&&(f+="."),f+=u(i))),r.s<0?"-"+f:f}function a(r,e){return r.length>e?(r.length=e,!0):void 0}function g(r){function e(r){var t=this;if(!(t instanceof e))return new e(r);if(t.constructor=e,r instanceof e)return t.s=r.s,t.e=r.e,void(t.d=(r=r.d)?r.slice():r);if("number"==typeof r){if(0*r!==0)throw Error(x+r);if(r>0)t.s=1;else{if(!(0>r))return t.s=0,t.e=0,void(t.d=[0]);r=-r,t.s=-1}return r===~~r&&1e7>r?(t.e=0,void(t.d=[r])):c(t,r.toString())}if("string"!=typeof r)throw Error(x+r);if(45===r.charCodeAt(0)?(r=r.slice(1),t.s=-1):t.s=1,!D.test(r))throw Error(x+r);c(t,r)}var t,n,i;if(e.prototype=A,e.ROUND_UP=0,e.ROUND_DOWN=1,e.ROUND_CEIL=2,e.ROUND_FLOOR=3,e.ROUND_HALF_UP=4,e.ROUND_HALF_DOWN=5,e.ROUND_HALF_EVEN=6,e.ROUND_HALF_CEIL=7,e.ROUND_HALF_FLOOR=8,e.clone=g,e.config=e.set=p,void 0===r&&(r={}),r)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<i.length;)r.hasOwnProperty(n=i[t++])||(r[n]=this[n]);return e.config(r),e}function p(r){if(!r||"object"!=typeof r)throw Error(N+"Object expected");var e,t,n,i=["precision",1,w,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e<i.length;e+=3)if(void 0!==(n=r[t=i[e]])){if(!(b(n)===n&&n>=i[e+1]&&n<=i[e+2]))throw Error(x+t+": "+n);this[t]=n}if(void 0!==(n=r[t="LN10"])){if(n!=Math.LN10)throw Error(x+t+": "+n);this[t]=new this(n)}return this}var v,w=1e9,m={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},E=!0,N="[DecimalError] ",x=N+"Invalid argument: ",O=N+"Exponent out of range: ",b=Math.floor,L=Math.pow,D=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,q=1e7,y=7,M=9007199254740991,_=b(M/y),A={};A.absoluteValue=A.abs=function(){var r=new this.constructor(this);return r.s&&(r.s=1),r},A.comparedTo=A.cmp=function(r){var e,t,n,i,o=this;if(r=new o.constructor(r),o.s!==r.s)return o.s||-r.s;if(o.e!==r.e)return o.e>r.e^o.s<0?1:-1;for(n=o.d.length,i=r.d.length,e=0,t=i>n?n:i;t>e;++e)if(o.d[e]!==r.d[e])return o.d[e]>r.d[e]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1},A.decimalPlaces=A.dp=function(){var r=this,e=r.d.length-1,t=(e-r.e)*y;if(e=r.d[e])for(;e%10==0;e/=10)t--;return 0>t?0:t},A.dividedBy=A.div=function(r){return P(this,new this.constructor(r))},A.dividedToIntegerBy=A.idiv=function(r){var e=this,t=e.constructor;return h(P(e,new t(r),0,1),t.precision)},A.equals=A.eq=function(r){return!this.cmp(r)},A.exponent=function(){return o(this)},A.greaterThan=A.gt=function(r){return this.cmp(r)>0},A.greaterThanOrEqualTo=A.gte=function(r){return this.cmp(r)>=0},A.isInteger=A.isint=function(){return this.e>this.d.length-2},A.isNegative=A.isneg=function(){return this.s<0},A.isPositive=A.ispos=function(){return this.s>0},A.isZero=function(){return 0===this.s},A.lessThan=A.lt=function(r){return this.cmp(r)<0},A.lessThanOrEqualTo=A.lte=function(r){return this.cmp(r)<1},A.logarithm=A.log=function(r){var e,t=this,n=t.constructor,i=n.precision,o=i+5;if(void 0===r)r=new n(10);else if(r=new n(r),r.s<1||r.eq(v))throw Error(N+"NaN");if(t.s<1)throw Error(N+(t.s?"NaN":"-Infinity"));return t.eq(v)?new n(0):(E=!1,e=P(f(t,o),f(r,o),o),E=!0,h(e,i))},A.minus=A.sub=function(r){var t=this;return r=new t.constructor(r),t.s==r.s?l(t,r):e(t,(r.s=-r.s,r))},A.modulo=A.mod=function(r){var e,t=this,n=t.constructor,i=n.precision;if(r=new n(r),!r.s)throw Error(N+"NaN");return t.s?(E=!1,e=P(t,r,0,1).times(r),E=!0,t.minus(e)):h(new n(t),i)},A.naturalExponential=A.exp=function(){return i(this)},A.naturalLogarithm=A.ln=function(){return f(this)},A.negated=A.neg=function(){var r=new this.constructor(this);return r.s=-r.s||0,r},A.plus=A.add=function(r){var t=this;return r=new t.constructor(r),t.s==r.s?e(t,r):l(t,(r.s=-r.s,r))},A.precision=A.sd=function(r){var e,t,n,i=this;if(void 0!==r&&r!==!!r&&1!==r&&0!==r)throw Error(x+r);if(e=o(i)+1,n=i.d.length-1,t=n*y+1,n=i.d[n]){for(;n%10==0;n/=10)t--;for(n=i.d[0];n>=10;n/=10)t++}return r&&e>t?e:t},A.squareRoot=A.sqrt=function(){var r,e,t,i,s,u,f,c=this,l=c.constructor;if(c.s<1){if(!c.s)return new l(0);throw Error(N+"NaN")}for(r=o(c),E=!1,s=Math.sqrt(+c),0==s||s==1/0?(e=n(c.d),(e.length+r)%2==0&&(e+="0"),s=Math.sqrt(e),r=b((r+1)/2)-(0>r||r%2),s==1/0?e="5e"+r:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+r),i=new l(e)):i=new l(s.toString()),t=l.precision,s=f=t+3;;)if(u=i,i=u.plus(P(c,u,f+2)).times(.5),n(u.d).slice(0,f)===(e=n(i.d)).slice(0,f)){if(e=e.slice(f-3,f+1),s==f&&"4999"==e){if(h(u,t+1,0),u.times(u).eq(c)){i=u;break}}else if("9999"!=e)break;f+=4}return E=!0,h(i,t)},A.times=A.mul=function(r){var e,t,n,i,o,s,u,f,c,l=this,d=l.constructor,a=l.d,g=(r=new d(r)).d;if(!l.s||!r.s)return new d(0);for(r.s*=l.s,t=l.e+r.e,f=a.length,c=g.length,c>f&&(o=a,a=g,g=o,s=f,f=c,c=s),o=[],s=f+c,n=s;n--;)o.push(0);for(n=c;--n>=0;){for(e=0,i=f+n;i>n;)u=o[i]+g[n]*a[i-n-1]+e,o[i--]=u%q|0,e=u/q|0;o[i]=(o[i]+e)%q|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),r.d=o,r.e=t,E?h(r,d.precision):r},A.toDecimalPlaces=A.todp=function(r,e){var n=this,i=n.constructor;return n=new i(n),void 0===r?n:(t(r,0,w),void 0===e?e=i.rounding:t(e,0,8),h(n,r+o(n)+1,e))},A.toExponential=function(r,e){var n,i=this,o=i.constructor;return void 0===r?n=d(i,!0):(t(r,0,w),void 0===e?e=o.rounding:t(e,0,8),i=h(new o(i),r+1,e),n=d(i,!0,r+1)),n},A.toFixed=function(r,e){var n,i,s=this,u=s.constructor;return void 0===r?d(s):(t(r,0,w),void 0===e?e=u.rounding:t(e,0,8),i=h(new u(s),r+o(s)+1,e),n=d(i.abs(),!1,r+o(i)+1),s.isneg()&&!s.isZero()?"-"+n:n)},A.toInteger=A.toint=function(){var r=this,e=r.constructor;return h(new e(r),o(r)+1,e.rounding)},A.toNumber=function(){return+this},A.toPower=A.pow=function(r){var e,t,n,o,s,u,c=this,l=c.constructor,d=12,g=+(r=new l(r));if(!r.s)return new l(v);if(c=new l(c),!c.s){if(r.s<1)throw Error(N+"Infinity");return c}if(c.eq(v))return c;if(n=l.precision,r.eq(v))return h(c,n);if(e=r.e,t=r.d.length-1,u=e>=t,s=c.s,u){if((t=0>g?-g:g)<=M){for(o=new l(v),e=Math.ceil(n/y+4),E=!1;t%2&&(o=o.times(c),a(o.d,e)),t=b(t/2),0!==t;)c=c.times(c),a(c.d,e);return E=!0,r.s<0?new l(v).div(o):h(o,n)}}else if(0>s)throw Error(N+"NaN");return s=0>s&&1&r.d[Math.max(e,t)]?-1:1,c.s=1,E=!1,o=r.times(f(c,n+d)),E=!0,o=i(o),o.s=s,o},A.toPrecision=function(r,e){var n,i,s=this,u=s.constructor;return void 0===r?(n=o(s),i=d(s,n<=u.toExpNeg||n>=u.toExpPos)):(t(r,1,w),void 0===e?e=u.rounding:t(e,0,8),s=h(new u(s),r,e),n=o(s),i=d(s,n>=r||n<=u.toExpNeg,r)),i},A.toSignificantDigits=A.tosd=function(r,e){var n=this,i=n.constructor;return void 0===r?(r=i.precision,e=i.rounding):(t(r,1,w),void 0===e?e=i.rounding:t(e,0,8)),h(new i(n),r,e)},A.toString=A.valueOf=A.val=A.toJSON=function(){var r=this,e=o(r),t=r.constructor;return d(r,e<=t.toExpNeg||e>=t.toExpPos)};var P=function(){function r(r,e){var t,n=0,i=r.length;for(r=r.slice();i--;)t=r[i]*e+n,r[i]=t%q|0,n=t/q|0;return n&&r.unshift(n),r}function e(r,e,t,n){var i,o;if(t!=n)o=t>n?1:-1;else for(i=o=0;t>i;i++)if(r[i]!=e[i]){o=r[i]>e[i]?1:-1;break}return o}function t(r,e,t){for(var n=0;t--;)r[t]-=n,n=r[t]<e[t]?1:0,r[t]=n*q+r[t]-e[t];for(;!r[0]&&r.length>1;)r.shift()}return function(n,i,s,u){var f,c,l,d,a,g,p,v,w,m,E,x,O,b,L,D,M,_,A=n.constructor,P=n.s==i.s?1:-1,R=n.d,U=i.d;if(!n.s)return new A(n);if(!i.s)throw Error(N+"Division by zero");for(c=n.e-i.e,M=U.length,L=R.length,p=new A(P),v=p.d=[],l=0;U[l]==(R[l]||0);)++l;if(U[l]>(R[l]||0)&&--c,x=null==s?s=A.precision:u?s+(o(n)-o(i))+1:s,0>x)return new A(0);if(x=x/y+2|0,l=0,1==M)for(d=0,U=U[0],x++;(L>l||d)&&x--;l++)O=d*q+(R[l]||0),v[l]=O/U|0,d=O%U|0;else{for(d=q/(U[0]+1)|0,d>1&&(U=r(U,d),R=r(R,d),M=U.length,L=R.length),b=M,w=R.slice(0,M),m=w.length;M>m;)w[m++]=0;_=U.slice(),_.unshift(0),D=U[0],U[1]>=q/2&&++D;do d=0,f=e(U,w,M,m),0>f?(E=w[0],M!=m&&(E=E*q+(w[1]||0)),d=E/D|0,d>1?(d>=q&&(d=q-1),a=r(U,d),g=a.length,m=w.length,f=e(a,w,g,m),1==f&&(d--,t(a,g>M?_:U,g))):(0==d&&(f=d=1),a=U.slice()),g=a.length,m>g&&a.unshift(0),t(w,a,m),-1==f&&(m=w.length,f=e(U,w,M,m),1>f&&(d++,t(w,m>M?_:U,m))),m=w.length):0===f&&(d++,w=[0]),v[l++]=d,f&&w[0]?w[m++]=R[b]||0:(w=[R[b]],m=1);while((b++<L||void 0!==w[0])&&x--)}return v[0]||v.shift(),p.e=c,h(p,u?s+o(p)+1:s)}}();m=g(m),m["default"]=m.Decimal=m,v=new m(1),"function"==typeof define&&define.amd?define(function(){return m}):"undefined"!=typeof module&&module.exports?module.exports=m:(r||(r="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),r.Decimal=m)}(this);
-//# sourceMappingURL=doc/decimal.js.map
Index: de_modules/decimal.js-light/decimal.mjs
===================================================================
--- node_modules/decimal.js-light/decimal.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1985 +1,0 @@
-/*
- *  decimal.js-light v2.5.1
- *  An arbitrary-precision Decimal type for JavaScript.
- *  https://github.com/MikeMcl/decimal.js-light
- *  Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>
- *  MIT Expat Licence
- */
-
-
-// ------------------------------------  EDITABLE DEFAULTS  ------------------------------------- //
-
-
-// The limit on the value of `precision`, and on the value of the first argument to
-// `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.
-var MAX_DIGITS = 1e9,                        // 0 to 1e9
-
-
-  // The initial configuration properties of the Decimal constructor.
-  defaults = {
-
-    // These values must be integers within the stated ranges (inclusive).
-    // Most of these values can be changed during run-time using `Decimal.config`.
-
-    // The maximum number of significant digits of the result of a calculation or base conversion.
-    // E.g. `Decimal.config({ precision: 20 });`
-    precision: 20,                         // 1 to MAX_DIGITS
-
-    // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,
-    // `toFixed`, `toPrecision` and `toSignificantDigits`.
-    //
-    // ROUND_UP         0 Away from zero.
-    // ROUND_DOWN       1 Towards zero.
-    // ROUND_CEIL       2 Towards +Infinity.
-    // ROUND_FLOOR      3 Towards -Infinity.
-    // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.
-    // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.
-    // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.
-    // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.
-    // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
-    //
-    // E.g.
-    // `Decimal.rounding = 4;`
-    // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
-    rounding: 4,                           // 0 to 8
-
-    // The exponent value at and beneath which `toString` returns exponential notation.
-    // JavaScript numbers: -7
-    toExpNeg: -7,                          // 0 to -MAX_E
-
-    // The exponent value at and above which `toString` returns exponential notation.
-    // JavaScript numbers: 21
-    toExpPos:  21,                         // 0 to MAX_E
-
-    // The natural logarithm of 10.
-    // 115 digits
-    LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'
-  },
-
-
-// ------------------------------------ END OF EDITABLE DEFAULTS -------------------------------- //
-
-
-  Decimal,
-  external = true,
-
-  decimalError = '[DecimalError] ',
-  invalidArgument = decimalError + 'Invalid argument: ',
-  exponentOutOfRange = decimalError + 'Exponent out of range: ',
-
-  mathfloor = Math.floor,
-  mathpow = Math.pow,
-
-  isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,
-
-  ONE,
-  BASE = 1e7,
-  LOG_BASE = 7,
-  MAX_SAFE_INTEGER = 9007199254740991,
-  MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE),    // 1286742750677284
-
-  // Decimal.prototype object
-  P = {};
-
-
-// Decimal prototype methods
-
-
-/*
- *  absoluteValue                       abs
- *  comparedTo                          cmp
- *  decimalPlaces                       dp
- *  dividedBy                           div
- *  dividedToIntegerBy                  idiv
- *  equals                              eq
- *  exponent
- *  greaterThan                         gt
- *  greaterThanOrEqualTo                gte
- *  isInteger                           isint
- *  isNegative                          isneg
- *  isPositive                          ispos
- *  isZero
- *  lessThan                            lt
- *  lessThanOrEqualTo                   lte
- *  logarithm                           log
- *  minus                               sub
- *  modulo                              mod
- *  naturalExponential                  exp
- *  naturalLogarithm                    ln
- *  negated                             neg
- *  plus                                add
- *  precision                           sd
- *  squareRoot                          sqrt
- *  times                               mul
- *  toDecimalPlaces                     todp
- *  toExponential
- *  toFixed
- *  toInteger                           toint
- *  toNumber
- *  toPower                             pow
- *  toPrecision
- *  toSignificantDigits                 tosd
- *  toString
- *  valueOf                             val
- */
-
-
-/*
- * Return a new Decimal whose value is the absolute value of this Decimal.
- *
- */
-P.absoluteValue = P.abs = function () {
-  var x = new this.constructor(this);
-  if (x.s) x.s = 1;
-  return x;
-};
-
-
-/*
- * Return
- *   1    if the value of this Decimal is greater than the value of `y`,
- *  -1    if the value of this Decimal is less than the value of `y`,
- *   0    if they have the same value
- *
- */
-P.comparedTo = P.cmp = function (y) {
-  var i, j, xdL, ydL,
-    x = this;
-
-  y = new x.constructor(y);
-
-  // Signs differ?
-  if (x.s !== y.s) return x.s || -y.s;
-
-  // Compare exponents.
-  if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;
-
-  xdL = x.d.length;
-  ydL = y.d.length;
-
-  // Compare digit by digit.
-  for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {
-    if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;
-  }
-
-  // Compare lengths.
-  return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;
-};
-
-
-/*
- * Return the number of decimal places of the value of this Decimal.
- *
- */
-P.decimalPlaces = P.dp = function () {
-  var x = this,
-    w = x.d.length - 1,
-    dp = (w - x.e) * LOG_BASE;
-
-  // Subtract the number of trailing zeros of the last word.
-  w = x.d[w];
-  if (w) for (; w % 10 == 0; w /= 10) dp--;
-
-  return dp < 0 ? 0 : dp;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to
- * `precision` significant digits.
- *
- */
-P.dividedBy = P.div = function (y) {
-  return divide(this, new this.constructor(y));
-};
-
-
-/*
- * Return a new Decimal whose value is the integer part of dividing the value of this Decimal
- * by the value of `y`, truncated to `precision` significant digits.
- *
- */
-P.dividedToIntegerBy = P.idiv = function (y) {
-  var x = this,
-    Ctor = x.constructor;
-  return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);
-};
-
-
-/*
- * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.
- *
- */
-P.equals = P.eq = function (y) {
-  return !this.cmp(y);
-};
-
-
-/*
- * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).
- *
- */
-P.exponent = function () {
-  return getBase10Exponent(this);
-};
-
-
-/*
- * Return true if the value of this Decimal is greater than the value of `y`, otherwise return
- * false.
- *
- */
-P.greaterThan = P.gt = function (y) {
-  return this.cmp(y) > 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is greater than or equal to the value of `y`,
- * otherwise return false.
- *
- */
-P.greaterThanOrEqualTo = P.gte = function (y) {
-  return this.cmp(y) >= 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is an integer, otherwise return false.
- *
- */
-P.isInteger = P.isint = function () {
-  return this.e > this.d.length - 2;
-};
-
-
-/*
- * Return true if the value of this Decimal is negative, otherwise return false.
- *
- */
-P.isNegative = P.isneg = function () {
-  return this.s < 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is positive, otherwise return false.
- *
- */
-P.isPositive = P.ispos = function () {
-  return this.s > 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is 0, otherwise return false.
- *
- */
-P.isZero = function () {
-  return this.s === 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is less than `y`, otherwise return false.
- *
- */
-P.lessThan = P.lt = function (y) {
-  return this.cmp(y) < 0;
-};
-
-
-/*
- * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.
- *
- */
-P.lessThanOrEqualTo = P.lte = function (y) {
-  return this.cmp(y) < 1;
-};
-
-
-/*
- * Return the logarithm of the value of this Decimal to the specified base, truncated to
- * `precision` significant digits.
- *
- * If no base is specified, return log[10](x).
- *
- * log[base](x) = ln(x) / ln(base)
- *
- * The maximum error of the result is 1 ulp (unit in the last place).
- *
- * [base] {number|string|Decimal} The base of the logarithm.
- *
- */
-P.logarithm = P.log = function (base) {
-  var r,
-    x = this,
-    Ctor = x.constructor,
-    pr = Ctor.precision,
-    wpr = pr + 5;
-
-  // Default base is 10.
-  if (base === void 0) {
-    base = new Ctor(10);
-  } else {
-    base = new Ctor(base);
-
-    // log[-b](x) = NaN
-    // log[0](x)  = NaN
-    // log[1](x)  = NaN
-    if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');
-  }
-
-  // log[b](-x) = NaN
-  // log[b](0) = -Infinity
-  if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));
-
-  // log[b](1) = 0
-  if (x.eq(ONE)) return new Ctor(0);
-
-  external = false;
-  r = divide(ln(x, wpr), ln(base, wpr), wpr);
-  external = true;
-
-  return round(r, pr);
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to
- * `precision` significant digits.
- *
- */
-P.minus = P.sub = function (y) {
-  var x = this;
-  y = new x.constructor(y);
-  return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to
- * `precision` significant digits.
- *
- */
-P.modulo = P.mod = function (y) {
-  var q,
-    x = this,
-    Ctor = x.constructor,
-    pr = Ctor.precision;
-
-  y = new Ctor(y);
-
-  // x % 0 = NaN
-  if (!y.s) throw Error(decimalError + 'NaN');
-
-  // Return x if x is 0.
-  if (!x.s) return round(new Ctor(x), pr);
-
-  // Prevent rounding of intermediate calculations.
-  external = false;
-  q = divide(x, y, 0, 1).times(y);
-  external = true;
-
-  return x.minus(q);
-};
-
-
-/*
- * Return a new Decimal whose value is the natural exponential of the value of this Decimal,
- * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`
- * significant digits.
- *
- */
-P.naturalExponential = P.exp = function () {
-  return exp(this);
-};
-
-
-/*
- * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,
- * truncated to `precision` significant digits.
- *
- */
-P.naturalLogarithm = P.ln = function () {
-  return ln(this);
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by
- * -1.
- *
- */
-P.negated = P.neg = function () {
-  var x = new this.constructor(this);
-  x.s = -x.s || 0;
-  return x;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to
- * `precision` significant digits.
- *
- */
-P.plus = P.add = function (y) {
-  var x = this;
-  y = new x.constructor(y);
-  return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));
-};
-
-
-/*
- * Return the number of significant digits of the value of this Decimal.
- *
- * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.
- *
- */
-P.precision = P.sd = function (z) {
-  var e, sd, w,
-    x = this;
-
-  if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);
-
-  e = getBase10Exponent(x) + 1;
-  w = x.d.length - 1;
-  sd = w * LOG_BASE + 1;
-  w = x.d[w];
-
-  // If non-zero...
-  if (w) {
-
-    // Subtract the number of trailing zeros of the last word.
-    for (; w % 10 == 0; w /= 10) sd--;
-
-    // Add the number of digits of the first word.
-    for (w = x.d[0]; w >= 10; w /= 10) sd++;
-  }
-
-  return z && e > sd ? e : sd;
-};
-
-
-/*
- * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`
- * significant digits.
- *
- */
-P.squareRoot = P.sqrt = function () {
-  var e, n, pr, r, s, t, wpr,
-    x = this,
-    Ctor = x.constructor;
-
-  // Negative or zero?
-  if (x.s < 1) {
-    if (!x.s) return new Ctor(0);
-
-    // sqrt(-x) = NaN
-    throw Error(decimalError + 'NaN');
-  }
-
-  e = getBase10Exponent(x);
-  external = false;
-
-  // Initial estimate.
-  s = Math.sqrt(+x);
-
-  // Math.sqrt underflow/overflow?
-  // Pass x to Math.sqrt as integer, then adjust the exponent of the result.
-  if (s == 0 || s == 1 / 0) {
-    n = digitsToString(x.d);
-    if ((n.length + e) % 2 == 0) n += '0';
-    s = Math.sqrt(n);
-    e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);
-
-    if (s == 1 / 0) {
-      n = '5e' + e;
-    } else {
-      n = s.toExponential();
-      n = n.slice(0, n.indexOf('e') + 1) + e;
-    }
-
-    r = new Ctor(n);
-  } else {
-    r = new Ctor(s.toString());
-  }
-
-  pr = Ctor.precision;
-  s = wpr = pr + 3;
-
-  // Newton-Raphson iteration.
-  for (;;) {
-    t = r;
-    r = t.plus(divide(x, t, wpr + 2)).times(0.5);
-
-    if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {
-      n = n.slice(wpr - 3, wpr + 1);
-
-      // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or
-      // 4999, i.e. approaching a rounding boundary, continue the iteration.
-      if (s == wpr && n == '4999') {
-
-        // On the first iteration only, check to see if rounding up gives the exact result as the
-        // nines may infinitely repeat.
-        round(t, pr + 1, 0);
-
-        if (t.times(t).eq(x)) {
-          r = t;
-          break;
-        }
-      } else if (n != '9999') {
-        break;
-      }
-
-      wpr += 4;
-    }
-  }
-
-  external = true;
-
-  return round(r, pr);
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to
- * `precision` significant digits.
- *
- */
-P.times = P.mul = function (y) {
-  var carry, e, i, k, r, rL, t, xdL, ydL,
-    x = this,
-    Ctor = x.constructor,
-    xd = x.d,
-    yd = (y = new Ctor(y)).d;
-
-  // Return 0 if either is 0.
-  if (!x.s || !y.s) return new Ctor(0);
-
-  y.s *= x.s;
-  e = x.e + y.e;
-  xdL = xd.length;
-  ydL = yd.length;
-
-  // Ensure xd points to the longer array.
-  if (xdL < ydL) {
-    r = xd;
-    xd = yd;
-    yd = r;
-    rL = xdL;
-    xdL = ydL;
-    ydL = rL;
-  }
-
-  // Initialise the result array with zeros.
-  r = [];
-  rL = xdL + ydL;
-  for (i = rL; i--;) r.push(0);
-
-  // Multiply!
-  for (i = ydL; --i >= 0;) {
-    carry = 0;
-    for (k = xdL + i; k > i;) {
-      t = r[k] + yd[i] * xd[k - i - 1] + carry;
-      r[k--] = t % BASE | 0;
-      carry = t / BASE | 0;
-    }
-
-    r[k] = (r[k] + carry) % BASE | 0;
-  }
-
-  // Remove trailing zeros.
-  for (; !r[--rL];) r.pop();
-
-  if (carry) ++e;
-  else r.shift();
-
-  y.d = r;
-  y.e = e;
-
-  return external ? round(y, Ctor.precision) : y;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`
- * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.
- *
- * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.
- *
- * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
- * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
- *
- */
-P.toDecimalPlaces = P.todp = function (dp, rm) {
-  var x = this,
-    Ctor = x.constructor;
-
-  x = new Ctor(x);
-  if (dp === void 0) return x;
-
-  checkInt32(dp, 0, MAX_DIGITS);
-
-  if (rm === void 0) rm = Ctor.rounding;
-  else checkInt32(rm, 0, 8);
-
-  return round(x, dp + getBase10Exponent(x) + 1, rm);
-};
-
-
-/*
- * Return a string representing the value of this Decimal in exponential notation rounded to
- * `dp` fixed decimal places using rounding mode `rounding`.
- *
- * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
- * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
- *
- */
-P.toExponential = function (dp, rm) {
-  var str,
-    x = this,
-    Ctor = x.constructor;
-
-  if (dp === void 0) {
-    str = toString(x, true);
-  } else {
-    checkInt32(dp, 0, MAX_DIGITS);
-
-    if (rm === void 0) rm = Ctor.rounding;
-    else checkInt32(rm, 0, 8);
-
-    x = round(new Ctor(x), dp + 1, rm);
-    str = toString(x, true, dp + 1);
-  }
-
-  return str;
-};
-
-
-/*
- * Return a string representing the value of this Decimal in normal (fixed-point) notation to
- * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is
- * omitted.
- *
- * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.
- *
- * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
- * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
- *
- * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
- * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
- * (-0).toFixed(3) is '0.000'.
- * (-0.5).toFixed(0) is '-0'.
- *
- */
-P.toFixed = function (dp, rm) {
-  var str, y,
-    x = this,
-    Ctor = x.constructor;
-
-  if (dp === void 0) return toString(x);
-
-  checkInt32(dp, 0, MAX_DIGITS);
-
-  if (rm === void 0) rm = Ctor.rounding;
-  else checkInt32(rm, 0, 8);
-
-  y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);
-  str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);
-
-  // To determine whether to add the minus sign look at the value before it was rounded,
-  // i.e. look at `x` rather than `y`.
-  return x.isneg() && !x.isZero() ? '-' + str : str;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using
- * rounding mode `rounding`.
- *
- */
-P.toInteger = P.toint = function () {
-  var x = this,
-    Ctor = x.constructor;
-  return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);
-};
-
-
-/*
- * Return the value of this Decimal converted to a number primitive.
- *
- */
-P.toNumber = function () {
-  return +this;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,
- * truncated to `precision` significant digits.
- *
- * For non-integer or very large exponents pow(x, y) is calculated using
- *
- *   x^y = exp(y*ln(x))
- *
- * The maximum error is 1 ulp (unit in last place).
- *
- * y {number|string|Decimal} The power to which to raise this Decimal.
- *
- */
-P.toPower = P.pow = function (y) {
-  var e, k, pr, r, sign, yIsInt,
-    x = this,
-    Ctor = x.constructor,
-    guard = 12,
-    yn = +(y = new Ctor(y));
-
-  // pow(x, 0) = 1
-  if (!y.s) return new Ctor(ONE);
-
-  x = new Ctor(x);
-
-  // pow(0, y > 0) = 0
-  // pow(0, y < 0) = Infinity
-  if (!x.s) {
-    if (y.s < 1) throw Error(decimalError + 'Infinity');
-    return x;
-  }
-
-  // pow(1, y) = 1
-  if (x.eq(ONE)) return x;
-
-  pr = Ctor.precision;
-
-  // pow(x, 1) = x
-  if (y.eq(ONE)) return round(x, pr);
-
-  e = y.e;
-  k = y.d.length - 1;
-  yIsInt = e >= k;
-  sign = x.s;
-
-  if (!yIsInt) {
-
-    // pow(x < 0, y non-integer) = NaN
-    if (sign < 0) throw Error(decimalError + 'NaN');
-
-  // If y is a small integer use the 'exponentiation by squaring' algorithm.
-  } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
-    r = new Ctor(ONE);
-
-    // Max k of 9007199254740991 takes 53 loop iterations.
-    // Maximum digits array length; leaves [28, 34] guard digits.
-    e = Math.ceil(pr / LOG_BASE + 4);
-
-    external = false;
-
-    for (;;) {
-      if (k % 2) {
-        r = r.times(x);
-        truncate(r.d, e);
-      }
-
-      k = mathfloor(k / 2);
-      if (k === 0) break;
-
-      x = x.times(x);
-      truncate(x.d, e);
-    }
-
-    external = true;
-
-    return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);
-  }
-
-  // Result is negative if x is negative and the last digit of integer y is odd.
-  sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;
-
-  x.s = 1;
-  external = false;
-  r = y.times(ln(x, pr + guard));
-  external = true;
-  r = exp(r);
-  r.s = sign;
-
-  return r;
-};
-
-
-/*
- * Return a string representing the value of this Decimal rounded to `sd` significant digits
- * using rounding mode `rounding`.
- *
- * Return exponential notation if `sd` is less than the number of digits necessary to represent
- * the integer part of the value in normal notation.
- *
- * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
- * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
- *
- */
-P.toPrecision = function (sd, rm) {
-  var e, str,
-    x = this,
-    Ctor = x.constructor;
-
-  if (sd === void 0) {
-    e = getBase10Exponent(x);
-    str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
-  } else {
-    checkInt32(sd, 1, MAX_DIGITS);
-
-    if (rm === void 0) rm = Ctor.rounding;
-    else checkInt32(rm, 0, 8);
-
-    x = round(new Ctor(x), sd, rm);
-    e = getBase10Exponent(x);
-    str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);
-  }
-
-  return str;
-};
-
-
-/*
- * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`
- * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if
- * omitted.
- *
- * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
- * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
- *
- */
-P.toSignificantDigits = P.tosd = function (sd, rm) {
-  var x = this,
-    Ctor = x.constructor;
-
-  if (sd === void 0) {
-    sd = Ctor.precision;
-    rm = Ctor.rounding;
-  } else {
-    checkInt32(sd, 1, MAX_DIGITS);
-
-    if (rm === void 0) rm = Ctor.rounding;
-    else checkInt32(rm, 0, 8);
-  }
-
-  return round(new Ctor(x), sd, rm);
-};
-
-
-/*
- * Return a string representing the value of this Decimal.
- *
- * Return exponential notation if this Decimal has a positive exponent equal to or greater than
- * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
- *
- */
-P.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = function () {
-  var x = this,
-    e = getBase10Exponent(x),
-    Ctor = x.constructor;
-
-  return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
-};
-
-
-// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.
-
-
-/*
- *  add                 P.minus, P.plus
- *  checkInt32          P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd
- *  digitsToString      P.log, P.sqrt, P.pow, toString, exp, ln
- *  divide              P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln
- *  exp                 P.exp, P.pow
- *  getBase10Exponent   P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,
- *                      P.toString, divide, round, toString, exp, ln
- *  getLn10             P.log, ln
- *  getZeroString       digitsToString, toString
- *  ln                  P.log, P.ln, P.pow, exp
- *  parseDecimal        Decimal
- *  round               P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,
- *                      P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,
- *                      divide, getLn10, exp, ln
- *  subtract            P.minus, P.plus
- *  toString            P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf
- *  truncate            P.pow
- *
- *  Throws:             P.log, P.mod, P.sd, P.sqrt, P.pow,  checkInt32, divide, round,
- *                      getLn10, exp, ln, parseDecimal, Decimal, config
- */
-
-
-function add(x, y) {
-  var carry, d, e, i, k, len, xd, yd,
-    Ctor = x.constructor,
-    pr = Ctor.precision;
-
-  // If either is zero...
-  if (!x.s || !y.s) {
-
-    // Return x if y is zero.
-    // Return y if y is non-zero.
-    if (!y.s) y = new Ctor(x);
-    return external ? round(y, pr) : y;
-  }
-
-  xd = x.d;
-  yd = y.d;
-
-  // x and y are finite, non-zero numbers with the same sign.
-
-  k = x.e;
-  e = y.e;
-  xd = xd.slice();
-  i = k - e;
-
-  // If base 1e7 exponents differ...
-  if (i) {
-    if (i < 0) {
-      d = xd;
-      i = -i;
-      len = yd.length;
-    } else {
-      d = yd;
-      e = k;
-      len = xd.length;
-    }
-
-    // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.
-    k = Math.ceil(pr / LOG_BASE);
-    len = k > len ? k + 1 : len + 1;
-
-    if (i > len) {
-      i = len;
-      d.length = 1;
-    }
-
-    // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.
-    d.reverse();
-    for (; i--;) d.push(0);
-    d.reverse();
-  }
-
-  len = xd.length;
-  i = yd.length;
-
-  // If yd is longer than xd, swap xd and yd so xd points to the longer array.
-  if (len - i < 0) {
-    i = len;
-    d = yd;
-    yd = xd;
-    xd = d;
-  }
-
-  // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.
-  for (carry = 0; i;) {
-    carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;
-    xd[i] %= BASE;
-  }
-
-  if (carry) {
-    xd.unshift(carry);
-    ++e;
-  }
-
-  // Remove trailing zeros.
-  // No need to check for zero, as +x + +y != 0 && -x + -y != 0
-  for (len = xd.length; xd[--len] == 0;) xd.pop();
-
-  y.d = xd;
-  y.e = e;
-
-  return external ? round(y, pr) : y;
-}
-
-
-function checkInt32(i, min, max) {
-  if (i !== ~~i || i < min || i > max) {
-    throw Error(invalidArgument + i);
-  }
-}
-
-
-function digitsToString(d) {
-  var i, k, ws,
-    indexOfLastWord = d.length - 1,
-    str = '',
-    w = d[0];
-
-  if (indexOfLastWord > 0) {
-    str += w;
-    for (i = 1; i < indexOfLastWord; i++) {
-      ws = d[i] + '';
-      k = LOG_BASE - ws.length;
-      if (k) str += getZeroString(k);
-      str += ws;
-    }
-
-    w = d[i];
-    ws = w + '';
-    k = LOG_BASE - ws.length;
-    if (k) str += getZeroString(k);
-  } else if (w === 0) {
-    return '0';
-  }
-
-  // Remove trailing zeros of last w.
-  for (; w % 10 === 0;) w /= 10;
-
-  return str + w;
-}
-
-
-var divide = (function () {
-
-  // Assumes non-zero x and k, and hence non-zero result.
-  function multiplyInteger(x, k) {
-    var temp,
-      carry = 0,
-      i = x.length;
-
-    for (x = x.slice(); i--;) {
-      temp = x[i] * k + carry;
-      x[i] = temp % BASE | 0;
-      carry = temp / BASE | 0;
-    }
-
-    if (carry) x.unshift(carry);
-
-    return x;
-  }
-
-  function compare(a, b, aL, bL) {
-    var i, r;
-
-    if (aL != bL) {
-      r = aL > bL ? 1 : -1;
-    } else {
-      for (i = r = 0; i < aL; i++) {
-        if (a[i] != b[i]) {
-          r = a[i] > b[i] ? 1 : -1;
-          break;
-        }
-      }
-    }
-
-    return r;
-  }
-
-  function subtract(a, b, aL) {
-    var i = 0;
-
-    // Subtract b from a.
-    for (; aL--;) {
-      a[aL] -= i;
-      i = a[aL] < b[aL] ? 1 : 0;
-      a[aL] = i * BASE + a[aL] - b[aL];
-    }
-
-    // Remove leading zeros.
-    for (; !a[0] && a.length > 1;) a.shift();
-  }
-
-  return function (x, y, pr, dp) {
-    var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,
-      Ctor = x.constructor,
-      sign = x.s == y.s ? 1 : -1,
-      xd = x.d,
-      yd = y.d;
-
-    // Either 0?
-    if (!x.s) return new Ctor(x);
-    if (!y.s) throw Error(decimalError + 'Division by zero');
-
-    e = x.e - y.e;
-    yL = yd.length;
-    xL = xd.length;
-    q = new Ctor(sign);
-    qd = q.d = [];
-
-    // Result exponent may be one less than e.
-    for (i = 0; yd[i] == (xd[i] || 0); ) ++i;
-    if (yd[i] > (xd[i] || 0)) --e;
-
-    if (pr == null) {
-      sd = pr = Ctor.precision;
-    } else if (dp) {
-      sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;
-    } else {
-      sd = pr;
-    }
-
-    if (sd < 0) return new Ctor(0);
-
-    // Convert precision in number of base 10 digits to base 1e7 digits.
-    sd = sd / LOG_BASE + 2 | 0;
-    i = 0;
-
-    // divisor < 1e7
-    if (yL == 1) {
-      k = 0;
-      yd = yd[0];
-      sd++;
-
-      // k is the carry.
-      for (; (i < xL || k) && sd--; i++) {
-        t = k * BASE + (xd[i] || 0);
-        qd[i] = t / yd | 0;
-        k = t % yd | 0;
-      }
-
-    // divisor >= 1e7
-    } else {
-
-      // Normalise xd and yd so highest order digit of yd is >= BASE/2
-      k = BASE / (yd[0] + 1) | 0;
-
-      if (k > 1) {
-        yd = multiplyInteger(yd, k);
-        xd = multiplyInteger(xd, k);
-        yL = yd.length;
-        xL = xd.length;
-      }
-
-      xi = yL;
-      rem = xd.slice(0, yL);
-      remL = rem.length;
-
-      // Add zeros to make remainder as long as divisor.
-      for (; remL < yL;) rem[remL++] = 0;
-
-      yz = yd.slice();
-      yz.unshift(0);
-      yd0 = yd[0];
-
-      if (yd[1] >= BASE / 2) ++yd0;
-
-      do {
-        k = 0;
-
-        // Compare divisor and remainder.
-        cmp = compare(yd, rem, yL, remL);
-
-        // If divisor < remainder.
-        if (cmp < 0) {
-
-          // Calculate trial digit, k.
-          rem0 = rem[0];
-          if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);
-
-          // k will be how many times the divisor goes into the current remainder.
-          k = rem0 / yd0 | 0;
-
-          //  Algorithm:
-          //  1. product = divisor * trial digit (k)
-          //  2. if product > remainder: product -= divisor, k--
-          //  3. remainder -= product
-          //  4. if product was < remainder at 2:
-          //    5. compare new remainder and divisor
-          //    6. If remainder > divisor: remainder -= divisor, k++
-
-          if (k > 1) {
-            if (k >= BASE) k = BASE - 1;
-
-            // product = divisor * trial digit.
-            prod = multiplyInteger(yd, k);
-            prodL = prod.length;
-            remL = rem.length;
-
-            // Compare product and remainder.
-            cmp = compare(prod, rem, prodL, remL);
-
-            // product > remainder.
-            if (cmp == 1) {
-              k--;
-
-              // Subtract divisor from product.
-              subtract(prod, yL < prodL ? yz : yd, prodL);
-            }
-          } else {
-
-            // cmp is -1.
-            // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1
-            // to avoid it. If k is 1 there is a need to compare yd and rem again below.
-            if (k == 0) cmp = k = 1;
-            prod = yd.slice();
-          }
-
-          prodL = prod.length;
-          if (prodL < remL) prod.unshift(0);
-
-          // Subtract product from remainder.
-          subtract(rem, prod, remL);
-
-          // If product was < previous remainder.
-          if (cmp == -1) {
-            remL = rem.length;
-
-            // Compare divisor and new remainder.
-            cmp = compare(yd, rem, yL, remL);
-
-            // If divisor < new remainder, subtract divisor from remainder.
-            if (cmp < 1) {
-              k++;
-
-              // Subtract divisor from remainder.
-              subtract(rem, yL < remL ? yz : yd, remL);
-            }
-          }
-
-          remL = rem.length;
-        } else if (cmp === 0) {
-          k++;
-          rem = [0];
-        }    // if cmp === 1, k will be 0
-
-        // Add the next digit, k, to the result array.
-        qd[i++] = k;
-
-        // Update the remainder.
-        if (cmp && rem[0]) {
-          rem[remL++] = xd[xi] || 0;
-        } else {
-          rem = [xd[xi]];
-          remL = 1;
-        }
-
-      } while ((xi++ < xL || rem[0] !== void 0) && sd--);
-    }
-
-    // Leading zero?
-    if (!qd[0]) qd.shift();
-
-    q.e = e;
-
-    return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);
-  };
-})();
-
-
-/*
- * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`
- * significant digits.
- *
- * Taylor/Maclaurin series.
- *
- * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...
- *
- * Argument reduction:
- *   Repeat x = x / 32, k += 5, until |x| < 0.1
- *   exp(x) = exp(x / 2^k)^(2^k)
- *
- * Previously, the argument was initially reduced by
- * exp(x) = exp(r) * 10^k  where r = x - k * ln10, k = floor(x / ln10)
- * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was
- * found to be slower than just dividing repeatedly by 32 as above.
- *
- * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)
- *
- *  exp(x) is non-terminating for any finite, non-zero x.
- *
- */
-function exp(x, sd) {
-  var denominator, guard, pow, sum, t, wpr,
-    i = 0,
-    k = 0,
-    Ctor = x.constructor,
-    pr = Ctor.precision;
-
-  if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));
-
-  // exp(0) = 1
-  if (!x.s) return new Ctor(ONE);
-
-  if (sd == null) {
-    external = false;
-    wpr = pr;
-  } else {
-    wpr = sd;
-  }
-
-  t = new Ctor(0.03125);
-
-  while (x.abs().gte(0.1)) {
-    x = x.times(t);    // x = x / 2^5
-    k += 5;
-  }
-
-  // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.
-  guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;
-  wpr += guard;
-  denominator = pow = sum = new Ctor(ONE);
-  Ctor.precision = wpr;
-
-  for (;;) {
-    pow = round(pow.times(x), wpr);
-    denominator = denominator.times(++i);
-    t = sum.plus(divide(pow, denominator, wpr));
-
-    if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
-      while (k--) sum = round(sum.times(sum), wpr);
-      Ctor.precision = pr;
-      return sd == null ? (external = true, round(sum, pr)) : sum;
-    }
-
-    sum = t;
-  }
-}
-
-
-// Calculate the base 10 exponent from the base 1e7 exponent.
-function getBase10Exponent(x) {
-  var e = x.e * LOG_BASE,
-    w = x.d[0];
-
-  // Add the number of digits of the first word of the digits array.
-  for (; w >= 10; w /= 10) e++;
-  return e;
-}
-
-
-function getLn10(Ctor, sd, pr) {
-
-  if (sd > Ctor.LN10.sd()) {
-
-
-    // Reset global state in case the exception is caught.
-    external = true;
-    if (pr) Ctor.precision = pr;
-    throw Error(decimalError + 'LN10 precision limit exceeded');
-  }
-
-  return round(new Ctor(Ctor.LN10), sd);
-}
-
-
-function getZeroString(k) {
-  var zs = '';
-  for (; k--;) zs += '0';
-  return zs;
-}
-
-
-/*
- * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant
- * digits.
- *
- *  ln(n) is non-terminating (n != 1)
- *
- */
-function ln(y, sd) {
-  var c, c0, denominator, e, numerator, sum, t, wpr, x2,
-    n = 1,
-    guard = 10,
-    x = y,
-    xd = x.d,
-    Ctor = x.constructor,
-    pr = Ctor.precision;
-
-  // ln(-x) = NaN
-  // ln(0) = -Infinity
-  if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));
-
-  // ln(1) = 0
-  if (x.eq(ONE)) return new Ctor(0);
-
-  if (sd == null) {
-    external = false;
-    wpr = pr;
-  } else {
-    wpr = sd;
-  }
-
-  if (x.eq(10)) {
-    if (sd == null) external = true;
-    return getLn10(Ctor, wpr);
-  }
-
-  wpr += guard;
-  Ctor.precision = wpr;
-  c = digitsToString(xd);
-  c0 = c.charAt(0);
-  e = getBase10Exponent(x);
-
-  if (Math.abs(e) < 1.5e15) {
-
-    // Argument reduction.
-    // The series converges faster the closer the argument is to 1, so using
-    // ln(a^b) = b * ln(a),   ln(a) = ln(a^b) / b
-    // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,
-    // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can
-    // later be divided by this number, then separate out the power of 10 using
-    // ln(a*10^b) = ln(a) + b*ln(10).
-
-    // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).
-    //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {
-    // max n is 6 (gives 0.7 - 1.3)
-    while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {
-      x = x.times(y);
-      c = digitsToString(x.d);
-      c0 = c.charAt(0);
-      n++;
-    }
-
-    e = getBase10Exponent(x);
-
-    if (c0 > 1) {
-      x = new Ctor('0.' + c);
-      e++;
-    } else {
-      x = new Ctor(c0 + '.' + c.slice(1));
-    }
-  } else {
-
-    // The argument reduction method above may result in overflow if the argument y is a massive
-    // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this
-    // function using ln(x*10^e) = ln(x) + e*ln(10).
-    t = getLn10(Ctor, wpr + 2, pr).times(e + '');
-    x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);
-
-    Ctor.precision = pr;
-    return sd == null ? (external = true, round(x, pr)) : x;
-  }
-
-  // x is reduced to a value near 1.
-
-  // Taylor series.
-  // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)
-  // where x = (y - 1)/(y + 1)    (|x| < 1)
-  sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);
-  x2 = round(x.times(x), wpr);
-  denominator = 3;
-
-  for (;;) {
-    numerator = round(numerator.times(x2), wpr);
-    t = sum.plus(divide(numerator, new Ctor(denominator), wpr));
-
-    if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
-      sum = sum.times(2);
-
-      // Reverse the argument reduction.
-      if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));
-      sum = divide(sum, new Ctor(n), wpr);
-
-      Ctor.precision = pr;
-      return sd == null ? (external = true, round(sum, pr)) : sum;
-    }
-
-    sum = t;
-    denominator += 2;
-  }
-}
-
-
-/*
- * Parse the value of a new Decimal `x` from string `str`.
- */
-function parseDecimal(x, str) {
-  var e, i, len;
-
-  // Decimal point?
-  if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
-
-  // Exponential form?
-  if ((i = str.search(/e/i)) > 0) {
-
-    // Determine exponent.
-    if (e < 0) e = i;
-    e += +str.slice(i + 1);
-    str = str.substring(0, i);
-  } else if (e < 0) {
-
-    // Integer.
-    e = str.length;
-  }
-
-  // Determine leading zeros.
-  for (i = 0; str.charCodeAt(i) === 48;) ++i;
-
-  // Determine trailing zeros.
-  for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;
-  str = str.slice(i, len);
-
-  if (str) {
-    len -= i;
-    e = e - i - 1;
-    x.e = mathfloor(e / LOG_BASE);
-    x.d = [];
-
-    // Transform base
-
-    // e is the base 10 exponent.
-    // i is where to slice str to get the first word of the digits array.
-    i = (e + 1) % LOG_BASE;
-    if (e < 0) i += LOG_BASE;
-
-    if (i < len) {
-      if (i) x.d.push(+str.slice(0, i));
-      for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));
-      str = str.slice(i);
-      i = LOG_BASE - str.length;
-    } else {
-      i -= len;
-    }
-
-    for (; i--;) str += '0';
-    x.d.push(+str);
-
-    if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);
-  } else {
-
-    // Zero.
-    x.s = 0;
-    x.e = 0;
-    x.d = [0];
-  }
-
-  return x;
-}
-
-
-/*
- * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).
- */
- function round(x, sd, rm) {
-  var i, j, k, n, rd, doRound, w, xdi,
-    xd = x.d;
-
-  // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.
-  // w: the word of xd which contains the rounding digit, a base 1e7 number.
-  // xdi: the index of w within xd.
-  // n: the number of digits of w.
-  // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if
-  // they had leading zeros)
-  // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).
-
-  // Get the length of the first word of the digits array xd.
-  for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;
-  i = sd - n;
-
-  // Is the rounding digit in the first word of xd?
-  if (i < 0) {
-    i += LOG_BASE;
-    j = sd;
-    w = xd[xdi = 0];
-  } else {
-    xdi = Math.ceil((i + 1) / LOG_BASE);
-    k = xd.length;
-    if (xdi >= k) return x;
-    w = k = xd[xdi];
-
-    // Get the number of digits of w.
-    for (n = 1; k >= 10; k /= 10) n++;
-
-    // Get the index of rd within w.
-    i %= LOG_BASE;
-
-    // Get the index of rd within w, adjusted for leading zeros.
-    // The number of leading zeros of w is given by LOG_BASE - n.
-    j = i - LOG_BASE + n;
-  }
-
-  if (rm !== void 0) {
-    k = mathpow(10, n - j - 1);
-
-    // Get the rounding digit at index j of w.
-    rd = w / k % 10 | 0;
-
-    // Are there any non-zero digits after the rounding digit?
-    doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;
-
-    // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the
-    // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give
-    // 714.
-
-    doRound = rm < 4
-      ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
-      : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&
-
-        // Check whether the digit to the left of the rounding digit is odd.
-        ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||
-          rm == (x.s < 0 ? 8 : 7));
-  }
-
-  if (sd < 1 || !xd[0]) {
-    if (doRound) {
-      k = getBase10Exponent(x);
-      xd.length = 1;
-
-      // Convert sd to decimal places.
-      sd = sd - k - 1;
-
-      // 1, 0.1, 0.01, 0.001, 0.0001 etc.
-      xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
-      x.e = mathfloor(-sd / LOG_BASE) || 0;
-    } else {
-      xd.length = 1;
-
-      // Zero.
-      xd[0] = x.e = x.s = 0;
-    }
-
-    return x;
-  }
-
-  // Remove excess digits.
-  if (i == 0) {
-    xd.length = xdi;
-    k = 1;
-    xdi--;
-  } else {
-    xd.length = xdi + 1;
-    k = mathpow(10, LOG_BASE - i);
-
-    // E.g. 56700 becomes 56000 if 7 is the rounding digit.
-    // j > 0 means i > number of leading zeros of w.
-    xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;
-  }
-
-  if (doRound) {
-    for (;;) {
-
-      // Is the digit to be rounded up in the first word of xd?
-      if (xdi == 0) {
-        if ((xd[0] += k) == BASE) {
-          xd[0] = 1;
-          ++x.e;
-        }
-
-        break;
-      } else {
-        xd[xdi] += k;
-        if (xd[xdi] != BASE) break;
-        xd[xdi--] = 0;
-        k = 1;
-      }
-    }
-  }
-
-  // Remove trailing zeros.
-  for (i = xd.length; xd[--i] === 0;) xd.pop();
-
-  if (external && (x.e > MAX_E || x.e < -MAX_E)) {
-    throw Error(exponentOutOfRange + getBase10Exponent(x));
-  }
-
-  return x;
-}
-
-
-function subtract(x, y) {
-  var d, e, i, j, k, len, xd, xe, xLTy, yd,
-    Ctor = x.constructor,
-    pr = Ctor.precision;
-
-  // Return y negated if x is zero.
-  // Return x if y is zero and x is non-zero.
-  if (!x.s || !y.s) {
-    if (y.s) y.s = -y.s;
-    else y = new Ctor(x);
-    return external ? round(y, pr) : y;
-  }
-
-  xd = x.d;
-  yd = y.d;
-
-  // x and y are non-zero numbers with the same sign.
-
-  e = y.e;
-  xe = x.e;
-  xd = xd.slice();
-  k = xe - e;
-
-  // If exponents differ...
-  if (k) {
-    xLTy = k < 0;
-
-    if (xLTy) {
-      d = xd;
-      k = -k;
-      len = yd.length;
-    } else {
-      d = yd;
-      e = xe;
-      len = xd.length;
-    }
-
-    // Numbers with massively different exponents would result in a very high number of zeros
-    // needing to be prepended, but this can be avoided while still ensuring correct rounding by
-    // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.
-    i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;
-
-    if (k > i) {
-      k = i;
-      d.length = 1;
-    }
-
-    // Prepend zeros to equalise exponents.
-    d.reverse();
-    for (i = k; i--;) d.push(0);
-    d.reverse();
-
-  // Base 1e7 exponents equal.
-  } else {
-
-    // Check digits to determine which is the bigger number.
-
-    i = xd.length;
-    len = yd.length;
-    xLTy = i < len;
-    if (xLTy) len = i;
-
-    for (i = 0; i < len; i++) {
-      if (xd[i] != yd[i]) {
-        xLTy = xd[i] < yd[i];
-        break;
-      }
-    }
-
-    k = 0;
-  }
-
-  if (xLTy) {
-    d = xd;
-    xd = yd;
-    yd = d;
-    y.s = -y.s;
-  }
-
-  len = xd.length;
-
-  // Append zeros to xd if shorter.
-  // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.
-  for (i = yd.length - len; i > 0; --i) xd[len++] = 0;
-
-  // Subtract yd from xd.
-  for (i = yd.length; i > k;) {
-    if (xd[--i] < yd[i]) {
-      for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;
-      --xd[j];
-      xd[i] += BASE;
-    }
-
-    xd[i] -= yd[i];
-  }
-
-  // Remove trailing zeros.
-  for (; xd[--len] === 0;) xd.pop();
-
-  // Remove leading zeros and adjust exponent accordingly.
-  for (; xd[0] === 0; xd.shift()) --e;
-
-  // Zero?
-  if (!xd[0]) return new Ctor(0);
-
-  y.d = xd;
-  y.e = e;
-
-  //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;
-  return external ? round(y, pr) : y;
-}
-
-
-function toString(x, isExp, sd) {
-  var k,
-    e = getBase10Exponent(x),
-    str = digitsToString(x.d),
-    len = str.length;
-
-  if (isExp) {
-    if (sd && (k = sd - len) > 0) {
-      str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);
-    } else if (len > 1) {
-      str = str.charAt(0) + '.' + str.slice(1);
-    }
-
-    str = str + (e < 0 ? 'e' : 'e+') + e;
-  } else if (e < 0) {
-    str = '0.' + getZeroString(-e - 1) + str;
-    if (sd && (k = sd - len) > 0) str += getZeroString(k);
-  } else if (e >= len) {
-    str += getZeroString(e + 1 - len);
-    if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);
-  } else {
-    if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);
-    if (sd && (k = sd - len) > 0) {
-      if (e + 1 === len) str += '.';
-      str += getZeroString(k);
-    }
-  }
-
-  return x.s < 0 ? '-' + str : str;
-}
-
-
-// Does not strip trailing zeros.
-function truncate(arr, len) {
-  if (arr.length > len) {
-    arr.length = len;
-    return true;
-  }
-}
-
-
-// Decimal methods
-
-
-/*
- *  clone
- *  config/set
- */
-
-
-/*
- * Create and return a Decimal constructor with the same configuration properties as this Decimal
- * constructor.
- *
- */
-function clone(obj) {
-  var i, p, ps;
-
-  /*
-   * The Decimal constructor and exported function.
-   * Return a new Decimal instance.
-   *
-   * value {number|string|Decimal} A numeric value.
-   *
-   */
-  function Decimal(value) {
-    var x = this;
-
-    // Decimal called without new.
-    if (!(x instanceof Decimal)) return new Decimal(value);
-
-    // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor
-    // which points to Object.
-    x.constructor = Decimal;
-
-    // Duplicate.
-    if (value instanceof Decimal) {
-      x.s = value.s;
-      x.e = value.e;
-      x.d = (value = value.d) ? value.slice() : value;
-      return;
-    }
-
-    if (typeof value === 'number') {
-
-      // Reject Infinity/NaN.
-      if (value * 0 !== 0) {
-        throw Error(invalidArgument + value);
-      }
-
-      if (value > 0) {
-        x.s = 1;
-      } else if (value < 0) {
-        value = -value;
-        x.s = -1;
-      } else {
-        x.s = 0;
-        x.e = 0;
-        x.d = [0];
-        return;
-      }
-
-      // Fast path for small integers.
-      if (value === ~~value && value < 1e7) {
-        x.e = 0;
-        x.d = [value];
-        return;
-      }
-
-      return parseDecimal(x, value.toString());
-    } else if (typeof value !== 'string') {
-      throw Error(invalidArgument + value);
-    }
-
-    // Minus sign?
-    if (value.charCodeAt(0) === 45) {
-      value = value.slice(1);
-      x.s = -1;
-    } else {
-      x.s = 1;
-    }
-
-    if (isDecimal.test(value)) parseDecimal(x, value);
-    else throw Error(invalidArgument + value);
-  }
-
-  Decimal.prototype = P;
-
-  Decimal.ROUND_UP = 0;
-  Decimal.ROUND_DOWN = 1;
-  Decimal.ROUND_CEIL = 2;
-  Decimal.ROUND_FLOOR = 3;
-  Decimal.ROUND_HALF_UP = 4;
-  Decimal.ROUND_HALF_DOWN = 5;
-  Decimal.ROUND_HALF_EVEN = 6;
-  Decimal.ROUND_HALF_CEIL = 7;
-  Decimal.ROUND_HALF_FLOOR = 8;
-
-  Decimal.clone = clone;
-  Decimal.config = Decimal.set = config;
-
-  if (obj === void 0) obj = {};
-  if (obj) {
-    ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];
-    for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];
-  }
-
-  Decimal.config(obj);
-
-  return Decimal;
-}
-
-
-/*
- * Configure global settings for a Decimal constructor.
- *
- * `obj` is an object with one or more of the following properties,
- *
- *   precision  {number}
- *   rounding   {number}
- *   toExpNeg   {number}
- *   toExpPos   {number}
- *
- * E.g. Decimal.config({ precision: 20, rounding: 4 })
- *
- */
-function config(obj) {
-  if (!obj || typeof obj !== 'object') {
-    throw Error(decimalError + 'Object expected');
-  }
-  var i, p, v,
-    ps = [
-      'precision', 1, MAX_DIGITS,
-      'rounding', 0, 8,
-      'toExpNeg', -1 / 0, 0,
-      'toExpPos', 0, 1 / 0
-    ];
-
-  for (i = 0; i < ps.length; i += 3) {
-    if ((v = obj[p = ps[i]]) !== void 0) {
-      if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;
-      else throw Error(invalidArgument + p + ': ' + v);
-    }
-  }
-
-  if ((v = obj[p = 'LN10']) !== void 0) {
-      if (v == Math.LN10) this[p] = new this(v);
-      else throw Error(invalidArgument + p + ': ' + v);
-  }
-
-  return this;
-}
-
-
-// Create and configure initial Decimal constructor.
-export var Decimal = clone(defaults);
-
-// Internal constant.
-ONE = new Decimal(1);
-
-export default Decimal;
Index: de_modules/decimal.js-light/doc/API.html
===================================================================
--- node_modules/decimal.js-light/doc/API.html	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1312 +1,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge">
-  <meta name="Author" content="MMclaughlin">
-  <title>decimal.js-light API</title>
-  <style>
-html{font-size:100%}
-body{background:#fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;
-  line-height:1.65em;min-height:100%;margin:0}
-body,i{color:#000}
-.nav{background:#fff;position:fixed;top:0;bottom:0;left:0;width:210px;overflow-y:auto;
-  padding:15px 0 30px 15px}
-div.container{width:600px;margin:50px 0 50px 240px}
-p{margin:0 0 1em;width:600px}
-pre,ul{margin:1em 0}
-h1,h2,h3,h4,h5{margin:0;padding:1.5em 0 0}
-h1,h2{padding:.75em 0}
-h1{font:400 3em Consolas, monaco, monospace;color:#000;margin-bottom:1em}
-h2{font-size:2.25em;color:#f00}
-h3{font-size:1.75em;color:#69d2e7}
-h4{font-size:1.75em;color:#f00;padding-bottom:.75em}
-h5{font-size:1.2em;margin-bottom:.4em}
-h6{font-size:1.1em;margin-bottom:0.8em;padding:0.5em 0}
-dd dt{font-size:1.2em}
-dt{padding-top:.5em}
-dd{padding-top:.35em}
-b{font-weight:700}
-a,a:visited{color:#f00;text-decoration:none}
-a:active,a:hover{outline:0;text-decoration:underline}
-.nav a,.nav b,.nav a:visited{display:block;color:#f00;font-weight:700;margin-top:15px}
-.nav b{color:#69d2e7;margin-top:20px;cursor:default;width:auto}
-ul{list-style-type:none;padding:0 0 0 20px}
-.nav ul{line-height:14px;padding-left:0;margin:5px 0 0}
-.nav ul a,.nav ul a:visited,span{display:inline;color:#000;font-family:Verdana,Geneva,sans-serif;
-  font-size:11px;font-weight:400;margin:0}
-.inset{margin-left:20px;font-size:.9em}
-.nav li{width:auto;margin:0 0 3px}
-.alias{font-style:italic;margin-left:20px}
-table{border-collapse:collapse;border-spacing:0;border:2px solid #a7dbd8;margin:1.75em 0;padding:0}
-td,th{text-align:left;margin:0;padding:2px 5px;border:1px dotted #a7dbd8}
-th{border-top:2px solid #a7dbd8;border-bottom:2px solid #a7dbd8;color:#f00}
-code,pre{font-family:Consolas, monaco, monospace;font-weight:400}
-pre{background:#f5f5f5;white-space:pre-wrap;word-wrap:break-word;border-left:5px solid #a7dbd8;
-  padding:1px 0 1px 15px;margin:1.2em 0}
-code,.nav-title{color:#f00}
-.end{margin-bottom:25px}
-.centre{text-align:center}
-#modes,#configProps{color:#f00}
-.spacer{line-height:0px}
-#faq{margin:3em 0 0}
-li span{float:right;margin-right:10px;color:#c0c0c0}
-#js{font:inherit;color:#f00}
-  </style>
-</head>
-<body>
-
-  <div class="nav">
-
-    <a class='nav-title' href="#">API</a>
-
-    <b>CONSTRUCTOR</b>
-    <ul><li><a href="#decimal">Decimal</a></li></ul>
-
-    <a href="#methods">Methods</a>
-    <ul>
-      <li><a href="#Dclone" >clone</a></li>
-      <li><a href="#Dconfig">config</a></li>
-    </ul>
-
-    <a href="#constructor-properties">Properties</a>
-    <ul>
-      <li><a href="#precision">precision</a></li>
-      <li><a href="#rounding" >rounding</a></li>
-      <li><a href="#toExpNeg" >toExpNeg</a></li>
-      <li><a href="#toExpPos" >toExpPos</a></li>
-      <li><a href="#ln10"     >LN10</a></li>
-      <li class='spacer'>&nbsp;</li>
-      <li><a href="#modes">ROUND_UP</a></li>
-      <li><a href="#modes">ROUND_DOWN</a></li>
-      <li><a href="#modes">ROUND_CEIL</a></li>
-      <li><a href="#modes">ROUND_FLOOR</a></li>
-      <li><a href="#modes">ROUND_HALF_UP</a></li>
-      <li><a href="#modes">ROUND_HALF_DOWN</a></li>
-      <li><a href="#modes">ROUND_HALF_EVEN</a></li>
-      <li><a href="#modes">ROUND_HALF_CEIL</a></li>
-      <li><a href="#modes">ROUND_HALF_FLOOR</a></li>
-      <li><a href="#modes">EUCLID</a></li>
-    </ul>
-
-    <b> INSTANCE </b>
-
-    <a href="#prototype-methods">Methods</a>
-    <ul>
-      <li><a href="#abs"          >absoluteValue           </a><span>abs</span>  </li>
-      <li><a href="#cmp"          >comparedTo              </a><span>cmp</span>  </li>
-      <li><a href="#dp"           >decimalPlaces           </a><span>dp</span>   </li>
-      <li><a href="#div"          >dividedBy               </a><span>div</span>  </li>
-      <li><a href="#idiv"         >dividedToIntegerBy      </a><span>idiv</span> </li>
-      <li><a href="#eq"           >equals                  </a><span>eq</span>   </li>
-      <li><a href="#exp"          >exponent                </a>                  </li>
-      <li><a href="#gt"           >greaterThan             </a><span>gt</span>   </li>
-      <li><a href="#gte"          >greaterThanOrEqualTo    </a><span>gte</span>  </li>
-      <li><a href="#isint"        >isInteger               </a><span>isint</span></li>
-      <li><a href="#isneg"        >isNegative              </a><span>isneg</span></li>
-      <li><a href="#ispos"        >isPositive              </a><span>ispos</span></li>
-      <li><a href="#isZero"       >isZero                  </a>                  </li>
-      <li><a href="#lt"           >lessThan                </a><span>lt</span>   </li>
-      <li><a href="#lte"          >lessThanOrEqualTo       </a><span>lte</span>  </li>
-      <li><a href="#log"          >logarithm               </a><span>log</span>  </li>
-      <li><a href="#sub"          >minus                   </a><span>sub</span>  </li>
-      <li><a href="#mod"          >modulo                  </a><span>mod</span>  </li>
-      <li><a href="#exp"          >naturalExponential      </a><span>exp</span>  </li>
-      <li><a href="#ln"           >naturalLogarithm        </a><span>ln</span>   </li>
-      <li><a href="#neg"          >negated                 </a><span>neg</span>  </li>
-      <li><a href="#add"          >plus                    </a><span>add</span>  </li>
-      <li><a href="#sd"           >precision               </a><span>sd</span>   </li>
-      <li><a href="#sqrt"         >squareRoot              </a><span>sqrt</span> </li>
-      <li><a href="#mul"          >times                   </a><span>mul</span>  </li>
-      <li><a href="#todp"         >toDecimalPlaces         </a><span>todp</span> </li>
-      <li><a href="#toExponential">toExponential           </a>                  </li>
-      <li><a href="#toFixed"      >toFixed                 </a>                  </li>
-      <li><a href="#toInteger"    >toInteger               </a><span>toint</span></li>
-      <li><a href="#toJSON"       >toJSON                  </a>                  </li>
-      <li><a href="#toNumber"     >toNumber                </a>                  </li>
-      <li><a href="#pow"          >toPower                 </a><span>pow</span>  </li>
-      <li><a href="#toPrecision"  >toPrecision             </a>                  </li>
-      <li><a href="#tosd"         >toSignificantDigits     </a><span>tosd</span> </li>
-      <li><a href="#toString"     >toString                </a>                  </li>
-      <li><a href="#valueOf"      >valueOf                 </a><span>val</span>  </li>
-    </ul>
-
-    <a href="#instance-properties">Properties</a>
-    <ul>
-      <li><a href="#digits"  >d</a><span>digits</span></li>
-      <li><a href="#exponent">e</a><span>exponent</span></li>
-      <li><a href="#sign"    >s</a><span>sign</span></li>
-    </ul>
-
-    <a href="#Errors">Errors</a>
-    <a class='end' href="#faq">FAQ</a>
-
-  </div>
-
-  <div class="container">
-
-    <h1>decimal<span id='js'>.js</span>-light</h1>
-
-    <p>
-      The light version of <a href='https://github.com/MikeMcl/decimal.js/'>decimal.js</a>, an
-      arbitrary-precision Decimal type for JavaScript.
-    </p>
-    <p><a href='https://github.com/MikeMcl/decimal.js-light'>Hosted on GitHub</a>.</p>
-
-    <h2>API</h2>
-
-    <p>
-      See the <a href='https://github.com/MikeMcl/decimal.js'>README</a> on GitHub for a quick-start
-      introduction.
-    </p>
-    <p>
-      In all examples below, <code>var</code> and semicolons are not shown, and if a commented-out
-      value is in quotes it means <code>toString</code> has been called on the preceding expression.
-    </p><br />
-    <p>
-      When the library is loaded, it defines a single function object,
-      <a href='#decimal'><code>Decimal</code></a>, the constructor of Decimal instances.
-    </p>
-    <p>
-      <i>
-        If necessary, multiple Decimal constructors can be created, each with their own independent
-        configuration, e.g. precision and range, which applies to all Decimal instances created from
-        it.
-      </i>
-    </p>
-    <p>
-      <i>
-        A new Decimal constructor is created by calling the <code><a href='#Dclone'>clone</a></code>
-        method of an already existing Decimal constructor.
-      </i>
-    </p>
-
-
-
-    <h3 class='end'>CONSTRUCTOR</h3>
-
-    <h5 id="decimal">
-      Decimal<code class='inset'>Decimal(value) <i>&rArr; Decimal</i></code>
-    </h5>
-    <dl>
-      <dt><code>value</code>: <i>number|string|Decimal</i></dt>
-      <dd>
-        Integer or float.
-      </dd>
-      <dd>
-        The number of digits is not limited, except by JavaScript's maximum array size and, in
-        practice, the processing time required.
-      </dd>
-      <dd>
-        The maximum permissible exponent magnitude is approximately <code>9007199254740991</code>.
-      </dd>
-      <dd>
-        String values may be in exponential (floating-point), as well as normal (fixed-point)
-        notation.
-      </dd>
-      <dd>
-        In exponential notation, <code>e</code> or <code>E</code> defines a power-of-ten exponent.
-      </dd>
-    </dl>
-    <p>Returns a new Decimal object instance.</p>
-    <p>Throws on an invalid <code>value</code>.</p>
-    <pre>
-x = new Decimal(9)                       // '9'
-y = new Decimal(x)                       // '9'
-
-new Decimal('5032485723458348569331745.33434346346912144534543')
-new Decimal('4.321e+4')                  // '43210'
-new Decimal('-735.0918e-430')            // '-7.350918e-428'
-new Decimal('5.6700000')                 // '5.67'
-new Decimal('.5')                        // '0.5'
-
-new Decimal(0.046875)                    // '0.046875'
-new Decimal('0.046875000000')            // '0.046875'
-
-new Decimal(4.6875e-2)                   // '0.046875'
-new Decimal('468.75e-4')                 // '0.046875'</pre>
-
-
-
-    <h4 id="methods">Methods</h4>
-    <p>The methods of a Decimal constructor.</p>
-
-
-
-    <h5 id="Dclone">
-      clone
-      <code class='inset'>.clone([object]) <i>&rArr; Decimal constructor</i></code>
-    </h5>
-    <p><code>object</code>: <i>object</i></p>
-    <p>
-      Returns a new independent Decimal constructor with configuration settings as described by
-      <code>object</code> (see <a href='#Dconfig'><code>config</code></a>), or with the same
-      settings as <code>this</code> Decimal constructor if <code>object</code> is omitted.
-    </p>
-    <pre>Decimal.config({ precision: 5 })
-D9 = Decimal.clone({ precision: 9 })
-
-a = new Decimal(1)
-b = new D9(1)
-
-a.div(3)                           // 0.33333
-b.div(3)                           // 0.333333333
-
-// D9 = Decimal.clone({ precision: 9 }) is equivalent to:
-D9 = Decimal.clone()
-D9.config({ precision: 9 })</pre>
-    <p>
-      It is not inefficient in terms of memory usage to use multiple Decimal constructors as
-      functions are shared between them.
-    </p>
-
-
-
-    <h5 id="Dconfig">
-      config<code class='inset'>.set(object) <i>&rArr; Decimal constructor</i></code>
-    </h5>
-    <p><code>object</code>: <i>object</i></p>
-    <p>
-      Configures the 'global' settings for <code>this</code> particular Decimal constructor, i.e.
-      the settings which apply to operations performed on the Decimal instances created by it.
-    </p>
-    <p>Returns <code>this</code> Decimal constructor.</p>
-    <p>
-      The configuration object, <code>object</code>, can contain some or all of the properties
-      described in detail at <a href="#constructor-properties">Properties</a> and shown in the
-      example below.
-    </p>
-    <p>
-      The values of the configuration object properties are checked for validity and then stored as
-      equivalently-named properties of <code>this</code> Decimal constructor.
-    </p>
-    <p>Throws on an invalid <code>object</code> or configuration property value.</p>
-    <pre>
-// Defaults
-Decimal.config({
-    precision: 20,
-    rounding: 4,
-    toExpNeg: -7,
-    toExpPos: 21,
-    LN10: new Decimal('2.30258509299404568401799145468436...')
-})
-
-Decimal.set({ rounding: Decimal.ROUND_CEIL })
-</pre>
-    <p>
-      The properties of a Decimal constructor can also be set by direct assignment, but that will
-      by-pass the validity checking that this method performs - which is not a problem if the user
-      knows that the checks are unnecessary.
-    </p>
-
-
-
-    <h4 id="constructor-properties">Properties</h4>
-    <p>The properties of a Decimal constructor.</p>
-
-
-
-    <h6 id='configProps'>Configuration properties</h6>
-    <p>
-      The values of the configuration properties <a href='#precision'><code>precision</code></a>,
-      <a href='#rounding'><code>rounding</code></a>, <a href='#toExpNeg'><code>toExpNeg</code></a>
-      and <a href='#toExpPos'><code>toExpPos</code></a> are set using the
-      <a href='#Dconfig'><code>config</code></a> method.
-    </p>
-    <p>
-      As simple object properties they can be set directly without using
-      <a href='#Dconfig'><code>config</code></a>, and it is fine to do so, but the values assigned
-      will not then be checked for validity. For example:
-    </p>
-    <pre>Decimal.config({ precision: 0 })
-// '[DecimalError] Invalid argument: precision: 0'
-
-Decimal.precision = 0
-// No error is thrown and the results of calculations are unreliable</pre>
-
-
-
-    <h5 id="precision">precision</h5>
-    <p>
-      <i>number</i>: integer, <code>1</code> to <code>1e+9</code> inclusive<br />
-      Default value: <code>20</code>
-    </p>
-    <p>The <i>maximum</i> number of significant digits of the result of an operation.</p>
-    <p>
-      All functions which return a Decimal will return the value to <code>precision</code>
-      significant digits except <a href='#decimal'><code>Decimal</code></a>,
-      <a href='#abs'><code>absoluteValue</code></a>,
-      <a href='#neg'><code>negated</code></a>, <a href='#round'><code>toInteger</code></a>, and
-      <a href='#todp'><code>toDecimalPlaces</code></a>.
-    </p>
-    <pre>Decimal.config({ precision: 5 })
-Decimal.precision                  // 5</pre>
-
-
-
-    <h5 id="rounding">rounding</h5>
-    <p>
-      <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive<br />
-      Default value: <code>4</code> <a href="#modes">(<code>ROUND_HALF_UP</code>)</a>
-    </p>
-    <p>
-      The default rounding mode used by <a href='#round'><code>toInteger</code></a>,
-      <a href='#todp'><code>toDecimalPlaces</code></a>,
-      <a href='#toExponential'><code>toExponential</code></a>,
-      <a href='#toFixed'><code>toFixed</code></a>,
-      <a href='#toPrecision'><code>toPrecision</code></a> and
-      <a href='#tosd'><code>toSignificantDigits</code></a>.
-    </p>
-    <p>
-      The <a href='#modes'>rounding modes</a> are available as enumerated properties of the
-      constructor.
-    </p>
-    <pre>Decimal.config({ rounding: Decimal.ROUND_UP })
-Decimal.config({ rounding: 0 })    // equivalent
-Decimal.rounding                   // 0</pre>
-
-
-
-    <h5 id="toExpNeg">toExpNeg</h5>
-    <p>
-      <i>number</i>: integer, <code>-9e15</code> to <code>0</code> inclusive<br />
-      Default value: <code>-7</code>
-    </p>
-    <p>
-      The negative exponent value at and below which <a href='#toString'><code>toString</code></a>
-      returns exponential notation.
-    </p>
-    <pre>Decimal.config({ toExpNeg: -7 })
-Decimal.toExpNeg                   // -7
-new Decimal(0.00000123)            // '0.00000123'       e is -6
-new Decimal(0.000000123)           // '1.23e-7'
-
-// Always return exponential notation:
-Decimal.config({ toExpNeg: 0 })</pre>
-    <p>
-      JavaScript numbers use exponential notation for negative exponents of <code>-7</code> and
-      below.
-    </p>
-    <p>
-      Regardless of the value of <code>toExpNeg</code>, the
-      <a href='#toFixed'><code>toFixed</code></a> method will always return a value in normal
-      notation and the <a href='#toExponential'><code>toExponential</code></a> method will always
-      return a value in exponential form.
-    </p>
-
-
-
-    <h5 id="toExpPos">toExpPos</h5>
-    <p>
-      <i>number</i>: integer, <code>0</code> to <code>9e15</code> inclusive<br />
-      Default value: <code>20</code>
-    </p>
-    <p>
-      The positive exponent value at and above which <a href='#toString'><code>toString</code></a>
-      returns exponential notation.
-    </p>
-    <pre>Decimal.config({ toExpPos: 2 })
-Decimal.toExpPos                   // 2
-new Decimal(12.3)                  // '12.3'        e is 1
-new Decimal(123)                   // '1.23e+2'
-
-// Always return exponential notation:
-Decimal.config({ toExpPos: 0 })</pre>
-    <p>
-      JavaScript numbers use exponential notation for positive exponents of <code>20</code> and
-      above.
-    </p>
-    <p>
-      Regardless of the value of <code>toExpPos</code>, the
-      <a href='#toFixed'><code>toFixed</code></a> method will always return a value in normal
-      notation and the <a href='#toExponential'><code>toExponential</code></a> method will always
-      return a value in exponential form.
-    </p>
-
-
-
-    <h5 id="ln10">LN10</h5>
-    <p>
-      <i>string|Decimal</i>: the natural logarithm of <code>10</code><br />
-      The default value has <code>115</code> digits
-    </p>
-    <p>
-      The maximum precision of the <a href='#exp'><code>naturalExponential</code></a>,
-      <a href='#ln'><code>naturalLogarithm</code></a>, <a href='#log'><code>logarithm</code></a>,
-      and <a href='#pow'><code>toPower</code></a> methods is determined by the precision of the
-      value of <code>LN10</code>.
-    </p>
-    <p>
-      The default value of <code>LN10</code> enables a maximum precision of about <code>100</code>
-      digits. To increase this, assign a new value to <code>LN10</code> using a string or Decimal
-      value with about 15 digits more than the maximum precision required.
-    </p>
-    <p>
-      An error will be thrown if the <code>LN10</code> value does not have sufficient precision to
-      enable an operation to be performed.
-    </p>
-    <pre>
-Decimal.config({ LN10: '2.3025850929940456840179914546843642076011014886287729760333279009' })
-
-Decimal.LN10.toFixed(5)             // ''2.30259'</pre>
-
-
-
-    <h6 id="modes">Rounding modes</h6>
-    <p>
-      The library's enumerated rounding modes are stored as properties of the Decimal constructor.
-      <br />They are not referenced internally by the library itself.
-    </p>
-    <p>Rounding modes 0 to 6 (inclusive) are the same as those of Java's BigDecimal class.</p>
-    <table>
-      <tr><th>Property</th><th>Value</th><th>Description</th></tr>
-      <tr><td><b>ROUND_UP</b></td><td class='centre'>0</td><td>Rounds away from zero</td></tr>
-      <tr><td><b>ROUND_DOWN</b></td><td class='centre'>1</td><td>Rounds towards zero</td></tr>
-      <tr><td><b>ROUND_CEIL</b></td><td class='centre'>2</td><td>Rounds towards Infinity</td></tr>
-      <tr><td><b>ROUND_FLOOR</b></td><td class='centre'>3</td><td>Rounds towards -Infinity</td></tr>
-      <tr>
-        <td><b>ROUND_HALF_UP</b></td><td class='centre'>4</td>
-        <td>Rounds towards nearest neighbour.<br />If equidistant, rounds away from zero</td>
-      </tr>
-      <tr>
-        <td><b>ROUND_HALF_DOWN</b></td><td class='centre'>5</td>
-        <td>Rounds towards nearest neighbour.<br />If equidistant, rounds towards zero</td>
-      </tr>
-      <tr>
-        <td><b>ROUND_HALF_EVEN</b></td><td class='centre'>6</td>
-        <td>
-          Rounds towards nearest neighbour.<br />If equidistant, rounds towards even neighbour
-        </td>
-      </tr>
-      <tr>
-        <td><b>ROUND_HALF_CEIL</b></td><td class='centre'>7</td>
-        <td>Rounds towards nearest neighbour.<br />If equidistant, rounds towards Infinity</td>
-      </tr>
-      <tr>
-        <td><b>ROUND_HALF_FLOOR</b></td><td class='centre'>8</td>
-        <td>Rounds towards nearest neighbour.<br />If equidistant, rounds towards -Infinity</td>
-      </tr>
-    </table>
-    <pre>Decimal.config({ rounding: Decimal.ROUND_CEIL })
-Decimal.config({ rounding: 2 })    // equivalent
-Decimal.rounding                   // 2</pre>
-
-
-
-
-    <h3>INSTANCE</h3>
-
-    <h4 id="prototype-methods">Methods</h4>
-    <p>The methods inherited by a Decimal instance from its constructor's prototype object.</p>
-    <p>A Decimal instance is immutable in the sense that it is not changed by its methods.</p>
-    <p>Methods that return a Decimal can be chained:</p>
-    <pre>x = new Decimal(2).times('999.999999999999999').dividedBy(4).toFixed(2)</pre>
-    <p>Methods do not round their arguments before execution.</p>
-    <p>
-      Many method names have a shorter alias. (Internally, the library always uses the shorter
-      method names.)
-    </p>
-
-
-
-    <h5 id="abs">absoluteValue<code class='inset'>.abs() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the absolute value, i.e. the magnitude, of the value of
-      this Decimal.
-    </p>
-    <p>
-      The return value is not affected by the value of the
-      <a href='#precision'><code>precision</code></a> setting.
-    </p>
-    <pre>
-x = new Decimal(-0.8)
-y = x.absoluteValue()         // '0.8'
-z = y.abs()                   // '0.8'</pre>
-
-
-
-    <h5 id="cmp">comparedTo<code class='inset'>.cmp(x) <i>&rArr; number</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <table>
-      <tr><th>Returns</th><th>&nbsp;</th></tr>
-      <tr>
-        <td class='centre'><code>1</code></td>
-        <td>if the value of this Decimal is greater than the value of <code>x</code></td>
-      </tr>
-      <tr>
-        <td class='centre'><code>-1</code></td>
-        <td>if the value of this Decimal is less than the value of <code>x</code></td>
-      </tr>
-      <tr>
-        <td class='centre'><code>0</code></td>
-        <td>if this Decimal and <code>x</code> have the same value</td>
-      </tr>
-    </table>
-    <pre>
-x = new Decimal(4)
-y = new Decimal(5)
-x.comparedTo(y)                // -1
-x.comparedTo(x.plus(1))        // 0</pre>
-
-
-
-    <h5 id="dp">decimalPlaces<code class='inset'>.dp() <i>&rArr; number</i></code></h5>
-    <p>
-      Returns the number of decimal places, i.e. the number of digits after the decimal point, of
-      the value of this Decimal.
-    </p>
-    <pre>
-x = new Decimal(1.234)
-x.decimalPlaces()              // '3'
-y = new Decimal(987.654321)
-y.dp()                         // '6'</pre>
-
-
-
-    <h5 id="div">dividedBy<code class='inset'>.div(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal divided by <code>x</code>,
-      truncated to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <pre>
-x = new Decimal(355)
-y = new Decimal(113)
-x.dividedBy(y)             // '3.14159292035398230088'
-x.div(5)                   // '71'</pre>
-
-
-
-    <h5 id="idiv">
-      dividedToIntegerBy<code class='inset'>.idiv(x) <i>&rArr; Decimal</i></code>
-    </h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Return a new Decimal whose value is the integer part of dividing this Decimal by
-      <code>x</code>, truncated to <code><a href='#precision'>precision</a></code> significant
-      digits.
-    </p>
-    <pre>
-x = new Decimal(5)
-y = new Decimal(3)
-x.dividedToIntegerBy(y)     // '1'
-x.idiv(0.7)             // '7'</pre>
-
-
-
-    <h5 id="eq">equals<code class='inset'>.eq(x) <i>&rArr; boolean</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns <code>true</code> if the value of this Decimal equals the value of <code>x</code>,
-      otherwise returns <code>false</code>.
-    </p>
-    <p>Note: This method uses the <code>cmp</code> method internally.</p>
-    <pre>
-0 === 1e-324                     // true
-x = new Decimal(0)
-x.equals('1e-324')               // false</pre>
-
-
-
-    <h5 id="exp">exponent<code class='inset'>.exponent() <i>&rArr; number</i></code></h5>
-    <p>Returns the exponent value of this Decimal.</p>
-    <pre>
-x = new Decimal(1234.567)
-x.exponent()                     // 3</pre>
-
-
-
-    <h5 id="gt">greaterThan<code class='inset'>.gt(x) <i>&rArr; boolean</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is greater than the value of
-      <code>x</code>, otherwise returns <code>false</code>.
-    </p>
-    <p>Note: This method uses the <code>cmp</code> method internally.</p>
-    <pre>
-0.1 &gt; (0.3 - 0.2)                            // true
-x = new Decimal(0.1)
-x.greaterThan(Decimal(0.3).minus(0.2))       // false
-new Decimal(0).gt(x)                         // false</pre>
-
-
-
-    <h5 id="gte">
-      greaterThanOrEqualTo<code class='inset'>.gte(x) <i>&rArr; boolean</i></code>
-    </h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is greater than or equal to the value
-      of <code>x</code>, otherwise returns <code>false</code>.
-    </p>
-    <p>Note: This method uses the <code>cmp</code> method internally.</p>
-    <pre>
-(0.3 - 0.2) &gt;= 0.1                       // false
-x = new Decimal(0.3).minus(0.2)
-x.greaterThanOrEqualTo(0.1)              // true
-new Decimal(1).gte(x)                    // true</pre>
-
-
-
-    <h5 id="isint">isInteger<code class='inset'>.isint() <i>&rArr; boolean</i></code></h5>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is a whole number, otherwise returns
-      <code>false</code>.
-    </p>
-    <pre>
-x = new Decimal(1)
-x.isInteger()                            // true
-y = new Decimal(123.456)
-y.isint()                                // false</pre>
-
-
-
-    <h5 id="isneg">isNegative<code class='inset'>.isneg() <i>&rArr; boolean</i></code></h5>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is negative, otherwise returns
-      <code>false</code>.
-    </p>
-    <pre>
-x = new Decimal(0)
-x.isNegative()                           // false
-y = new Decimal(2)
-y.isneg                                  // false</pre>
-    <p>Note: <code>n &lt; 0</code> can be used if <code>n &lt;= -Number.MIN_VALUE</code>.</p>
-
-
-
-     <h5 id="ispos">isPositive<code class='inset'>.ispos() <i>&rArr; boolean</i></code></h5>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is positive, otherwise returns
-      <code>false</code>.
-    </p>
-    <pre>
-x = new Decimal(0)
-x.isPositive()                           // false
-y = new Decimal(-2)
-y.ispos                                  // false</pre>
-    <p>Note: <code>n &lt; 0</code> can be used if <code>n &lt;= -Number.MIN_VALUE</code>.</p>
-
-
-
-    <h5 id="isZero">isZero<code class='inset'>.isZero() <i>&rArr; boolean</i></code></h5>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is zero or minus zero, otherwise
-      returns <code>false</code>.
-    </p>
-    <pre>
-x = new Decimal(0)
-x.isZero()                               // true</pre>
-    <p>Note: <code>n == 0</code> can be used if <code>n &gt;= Number.MIN_VALUE</code>.</p>
-
-
-
-    <h5 id="lt">lessThan<code class='inset'>.lt(x) <i>&rArr; boolean</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is less than the value of
-      <code>x</code>, otherwise returns <code>false</code>.
-    </p>
-    <p>Note: This method uses the <code>cmp</code> method internally.</p>
-    <pre>
-(0.3 - 0.2) &lt; 0.1                        // true
-x = new Decimal(0.3).minus(0.2)
-x.lessThan(0.1)                          // false
-new Decimal(0).lt(x)                     // true</pre>
-
-
-
-    <h5 id="lte">lessThanOrEqualTo<code class='inset'>.lte(x) <i>&rArr; boolean</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns <code>true</code> if the value of this Decimal is less than or equal to the value of
-      <code>x</code>, otherwise returns <code>false</code>.
-    </p>
-    <p>Note: This method uses the <code>cmp</code> method internally.</p>
-    <pre>
-0.1 &lt;= (0.3 - 0.2)                              // false
-x = new Decimal(0.1)
-x.lessThanOrEqualTo(Decimal(0.3).minus(0.2))    // true
-new Decimal(-1).lte(x)                          // true</pre>
-
-
-
-    <h5 id="log">logarithm<code class='inset'>.log(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the base <code>x</code> logarithm of the value of this
-      Decimal, truncated to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <p>
-      If <code>x</code> is omitted, the base 10 logarithm of the value of this Decimal will be
-      returned.
-    </p>
-    <pre>
-x = new Decimal(1000)
-x.logarithm()                            // '3'
-y = new Decimal(256)
-y.log(2)                                 // '8'</pre>
-    <p>The maximum error will be <code>1</code> <i>ulp</i> (unit in the last place).</p>
-    <p>Logarithms to base <code>2</code> or <code>10</code> will always be correct.</p>
-    <p>The performance of this method degrades exponentially with increasing digits.</p>
-
-
-
-    <h5 id="sub">minus<code class='inset'>.minus(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal minus <code>x</code>, truncated
-      to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <pre>
-0.3 - 0.1                                // 0.19999999999999998
-x = new Decimal(0.3)
-x.minus(0.1)                             // '0.2'</pre>
-
-
-
-    <h5 id="mod">modulo<code class='inset'>.mod(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal modulo <code>x</code>,
-      truncated to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <pre>
-1 % 0.9                                  // 0.09999999999999998
-x = new Decimal(1)
-y = x.modulo(0.9)                            // '0.1'</pre>
-
-
-
-    <h5 id="exp">naturalExponential<code class='inset'>.exp() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the base <code>e</code> (Euler's number, the base of the
-      natural logarithm) exponential of the value of this Decimal, truncated to
-      <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <p>
-      The <code><a href='#ln'>naturalLogarithm</a></code> function is the inverse of this function.
-    </p>
-    <pre>
-x = new Decimal(1)
-x.naturalExponential()                   // '2.7182818284590452354'
-y = new Decimal(2)
-y.exp()                                  // '7.3890560989306502272'</pre>
-    <p>The maximum error will be <code>1</code> <i>ulp</i> (unit in the last place).</p>
-    <p>The performance of this method degrades exponentially with increasing digits.</p>
-
-
-
-    <h5 id="ln">naturalLogarithm<code class='inset'>.ln() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the natural logarithm of the value of this Decimal,
-      truncated to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <p>
-      The natural logarithm is the inverse of the <code><a href='#exp'>naturalExponential</a></code>
-      function.
-    </p>
-    <pre>
-x = new Decimal(10)
-x.naturalLogarithm()                     // '2.3026'
-y = new Decimal('1.23e+30')
-y.ln()                                   // '69.28'</pre>
-    <p>
-      The mathematical result of the natural logarithm function is non-terminating, unless its
-      argument is <code>1</code>.
-    </p>
-    <p>
-      The time-taken by this method increases exponentially with increasing digits.
-    </p>
-    <p>
-      See <a href='#ln10'>LN10</a> to configure the maximum precision available.
-    </p>
-
-
-
-    <h5 id="neg">negated<code class='inset'>.neg() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal negated, i.e. multiplied by
-      <code>-1</code>.
-    </p>
-    <p>
-      The return value is not affected by the value of the
-      <a href='#precision'><code>precision</code></a> setting.
-    </p>
-    <pre>
-x = new Decimal(1.8)
-x.negated()                              // '-1.8'
-y = new Decimal(-1.3)
-y.neg()                                  // '1.3'</pre>
-
-
-
-    <h5 id="add">plus<code class='inset'>.plus(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal plus <code>x</code>, truncated
-      to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <pre>
-0.1 + 0.2                                // 0.30000000000000004
-x = new Decimal(0.1)
-y = x.plus(0.2)                          // '0.3'
-new Decimal(0.7).plus(x).plus(y)         // '1.1'</pre>
-
-
-
-    <h5 id="sd">precision<code class='inset'>.sd([include_zeros]) <i>&rArr; number</i></code></h5>
-    <p>Returns the number of significant digits of the value of this Decimal.</p>
-    <p>
-      If <code>include_zeros</code> is <code>true</code> or <code>1</code> then any trailing zeros
-      of the integer part of a number are counted as significant digits, otherwise they are not.
-    </p>
-    <pre>
-x = new Decimal(1.234)
-x.precision()                            // '4'
-y = new Decimal(987000)
-y.sd()                                   // '3'
-y.sd(true)                               // '6'</pre>
-
-
-
-    <h5 id="sqrt">squareRoot<code class='inset'>.sqrt() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the square root of this Decimal, truncated to
-      <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <p>
-      This method is much faster than using the <a href='#pow'><code>toPower</code></a> method with
-      an exponent of <code>0.5</code>.
-    </p>
-    <pre>
-x = new Decimal(16)
-x.squareRoot()                           // '4'
-y = new Decimal(3)
-y.sqrt()                                 // '1.73205080756887729353'
-y.sqrt().eq( y.pow(0.5) )                // true</pre>
-
-
-
-    <h5 id="mul">times<code class='inset'>.times(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i></p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal times <code>x</code>,
-      truncated to <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <pre>
-0.6 * 3                                  // 1.7999999999999998
-x = new Decimal(0.6)
-y = x.times(3)                           // '1.8'
-new Decimal('7e+500').times(y)           // '1.26e+501'</pre>
-
-
-
-    <h5 id="todp">
-      toDecimalPlaces<code class='inset'>.todp([dp [, rm]]) <i>&rArr; Decimal</i></code>
-    </h5>
-    <p>
-      <code>dp</code>: <i>number</i>: integer, <code>0</code> to <code>1e+9</code> inclusive<br />
-      <code>rm</code>: <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive.
-    </p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal rounded to a maximum of
-      <code>dp</code> decimal places using rounding mode <code>rm</code>.
-    </p>
-    <p>
-      If <code>dp</code> is omitted, the return value will have the same value as this Decimal.
-    </p>
-    <p>
-      If <code>rm</code> is omitted, rounding mode <a href='#rounding'><code>rounding</code></a>
-      is used.
-    </p>
-    <p>Throws on an invalid <code>dp</code> or <code>rm</code> value.</p>
-    <pre>
-x = new Decimal(12.24567)
-x.toDecimalPlaces(0)                // '12'
-x.toDecimalPlaces(1, 0)             // '12.3'
-
-y = new Decimal(9876.54321)
-y.todp(3)                           // '9876.543'
-y.todp(1, 0)                        // '9876.6'
-y.todp(1, Decimal.ROUND_DOWN)       // '9876.5'</pre>
-
-
-
-    <h5 id="toExponential">
-      toExponential<code class='inset'>.toExponential([dp [, rm]]) <i>&rArr; string</i></code>
-    </h5>
-    <p>
-      <code>dp</code>: <i>number</i>: integer, <code>0</code> to <code>1e+9</code> inclusive<br />
-      <code>rm</code>: <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive
-    </p>
-    <p>
-      Returns a string representing the value of this Decimal in exponential notation rounded
-      using rounding mode <code>rm</code> to <code>dp</code> decimal places, i.e with one digit
-      before the decimal point and <code>dp</code> digits after it.
-    </p>
-    <p>
-      If the value of this Decimal in exponential notation has fewer than <code>dp</code> fraction
-      digits, the return value will be appended with zeros accordingly.
-    </p>
-    <p>
-      If <code>dp</code> is omitted, the number of digits after the decimal point defaults to the
-      minimum number of digits necessary to represent the value exactly.
-    </p>
-    <p>
-      If <code>rm</code> is omitted, rounding mode <a href='#rounding'><code>rounding</code></a> is
-      used.
-    </p>
-    <p>Throws on an invalid <code>dp</code> or <code>rm</code> value.</p>
-    <pre>
-x = 45.6
-b = new Decimal(x)
-x.toExponential()              // '4.56e+1'
-y.toExponential()              // '4.56e+1'
-x.toExponential(0)             // '5e+1'
-y.toExponential(0)             // '5e+1'
-x.toExponential(1)             // '4.6e+1'
-y.toExponential(1)             // '4.6e+1'
-y.toExponential(1, 1)          // '4.5e+1'  (ROUND_DOWN)
-x.toExponential(3)             // '4.560e+1'
-y.toExponential(3)             // '4.560e+1'</pre>
-
-
-
-    <h5 id="toFixed">
-      toFixed<code class='inset'>.toFixed([dp [, rm]]) <i>&rArr; string</i></code>
-    </h5>
-    <p>
-      <code>dp</code>: <i>number</i>: integer, <code>0</code> to <code>1e+9</code> inclusive<br />
-      <code>rm</code>: <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive
-    </p>
-    <p>
-      Returns a string representing the value of this Decimal in normal (fixed-point) notation
-      rounded to <code>dp</code> decimal places using rounding mode <code>rm</code>.
-    </p>
-    <p>
-      If the value of this Decimal in normal notation has fewer than <code>dp</code> fraction
-      digits, the return value will be appended with zeros accordingly.
-    </p>
-    <p>
-      Unlike <code>Number.prototype.toFixed</code>, which returns exponential notation if a number
-      is greater or equal to <code>10<sup>21</sup></code>, this method will always return normal
-      notation.
-    </p>
-    <p>
-      If <code>dp</code> is omitted, the return value will be unrounded and in normal notation. This
-      is unlike <code>Number.prototype.toFixed</code>, which returns the value to zero decimal
-      places, but is useful when because of the current
-      <a href="#toExpNeg"><code>toExpNeg</code></a> or
-      <a href="#toExpPos"><code>toExpNeg</code></a> values,
-      <code><a href='#toString'>toString</a></code> returns exponential notation.
-    </p>
-    <p>
-      If <code>rm</code> is omitted, rounding mode <a href='#rounding'><code>rounding</code></a> is
-      used.
-    </p>
-    <p>Throws on an invalid <code>dp</code> or <code>rm</code> value.</p>
-    <pre>
-x = 3.456
-b = new Decimal(x)
-x.toFixed()              // '3'
-y.toFixed()              // '3.456'
-y.toFixed(0)             // '3'
-x.toFixed(2)             // '3.46'
-y.toFixed(2)             // '3.46'
-y.toFixed(2, 1)          // '3.45'  (ROUND_DOWN)
-x.toFixed(5)             // '3.45600'
-y.toFixed(5)             // '3.45600'</pre>
-
-
-
-    <h5 id="toInteger">toInteger<code class='inset'>.toint() <i>&rArr; Decimal</i></code></h5>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal rounded to a whole number using
-      rounding mode <a href='#rounding'><code>rounding</code></a>.
-    </p>
-    <p>
-      To emulate <code>Math.round</code>, set <a href='#rounding'><code>rounding</code></a> to
-      <code>7</code>, i.e. <a href='#modes'><code>ROUND_HALF_CEIL</code></a>.
-    </p>
-    <pre>
-Decimal.config({ rounding: 4 })
-x = 1234.5
-x.toInteger()                            // '1235'
-
-Decimal.rounding = Decimal.ROUND_DOWN
-x.toint()                                // '1234'
-x                                        // '1234.5'</pre>
-
-
-
-<h5 id="toJSON">toJSON<code class='inset'>.toJSON() <i>&rArr; string</i></code></h5>
-    <p>As <a href='#toString'><code>toString</code></a>.</p>
-
-
-
-    <h5 id="toNumber">toNumber<code class='inset'>.toNumber() <i>&rArr; number</i></code></h5>
-    <p>Returns the value of this Decimal converted to a primitive number.</p>
-    <p>
-      Type coercion with, for example, JavaScript's unary plus operator will also work, except that
-      a Decimal with the value minus zero will convert to positive zero.
-    </p>
-    <pre>
-x = new Decimal(456.789)
-x.toNumber()                   // 456.789
-+x                             // 456.789
-
-y = new Decimal('45987349857634085409857349856430985')
-y.toNumber()                   // 4.598734985763409e+34</pre>
-
-
-
-    <h5 id="pow">toPower<code class='inset'>.pow(x) <i>&rArr; Decimal</i></code></h5>
-    <p><code>x</code>: <i>number|string|Decimal</i>: integer or non-integer</p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal raised to the power
-      <code>x</code>, truncated to <a href='#precision'><code>precision</code></a> significant
-      digits.
-    </p>
-    <p>
-      The performance of this method degrades exponentially with increasing digits.<br />
-      For non-integer exponents in particular, the performance of this method may not be adequate.
-    </p>
-    <p>The maximum error will be <code>1</code> <i>ulp</i> (unit in the last place). </p>
-    <pre>
-Math.pow(0.7, 2)               // 0.48999999999999994
-x = new Decimal(0.7)
-x.toPower(2)                   // '0.49'
-new Decimal(3).pow(-2)         // '0.11111111111111111111'
-
-new Decimal(1217652.23).pow('98765.489305603941')
-// '4.8227010515242461181e+601039'</pre>
-
-
-
-
-    <h5 id="toPrecision">
-      toPrecision<code class='inset'>.toPrecision([sd [, rm]]) <i>&rArr; string</i></code>
-    </h5>
-    <p>
-      <code>sd</code>: <i>number</i>: integer, <code>1</code> to <code>1e+9</code> inclusive<br />
-      <code>rm</code>: <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive
-    </p>
-    <p>
-      Returns a string representing the value of this Decimal rounded to <code>sd</code> significant
-      digits using rounding mode <code>rm</code>.
-    </p>
-    <p>
-      If <code>sd</code> is less than the number of digits necessary to represent the integer part
-      of the value in normal (fixed-point) notation, then exponential notation is used.
-    </p>
-    <p>
-      If <code>sd</code> is omitted, the return value is the same as
-      <code><a href='#toString'>toString</a></code>.
-    </p>
-    <p>
-      If <code>rm</code> is omitted, rounding mode <a href='#rounding'><code>rounding</code></a> is
-      used.
-    </p>
-    <p>Throws on an invalid <code>sd</code> or <code>rm</code> value.</p>
-    <pre>
-x = 45.6
-b = new Decimal(x)
-x.toPrecision()                          // '45.6'
-y.toPrecision()                          // '45.6'
-x.toPrecision(1)                         // '5e+1'
-y.toPrecision(1)                         // '5e+1'
-y.toPrecision(2, 0)                      // '4.6e+1'  (ROUND_UP)
-y.toPrecision(2, 1)                      // '4.5e+1'  (ROUND_DOWN)
-x.toPrecision(5)                         // '45.600'
-y.toPrecision(5)                         // '45.600'</pre>
-
-
-
-    <h5 id="tosd">
-      toSignificantDigits<code class='inset'>.tosd([sd [, rm]]) <i>&rArr; Decimal</i></code>
-    </h5>
-    <p>
-      <code>sd</code>: <i>number</i>: integer, <code>1</code> to <code>1e+9</code> inclusive.<br />
-      <code>rm</code>: <i>number</i>: integer, <code>0</code> to <code>8</code> inclusive.
-    </p>
-    <p>
-      Returns a new Decimal whose value is the value of this Decimal rounded to a maximum of
-      <code>sd</code> significant digits using rounding mode <code>rm</code>.
-    </p>
-    <p>
-      If <code>sd</code> is omitted, the return value will be rounded to
-      <a href='#precision'><code>precision</code></a> significant digits.
-    </p>
-    <p>
-      If <code>rm</code> is omitted, rounding mode <a href='#rounding'><code>rounding</code></a>
-      will be used.
-    </p>
-    <p>Throws on an invalid <code>sd</code> or <code>rm</code> value.</p>
-    <pre>
-Decimal.config({ precision: 5, rounding: 4 })
-x = new Decimal(9876.54321)
-
-x.toSignificantDigits()                          // '9876.5'
-x.toSignificantDigits(6)                         // '9876.54'
-x.toSignificantDigits(6, Decimal.ROUND_UP)       // '9876.55'
-x.tosd(2)                                        // '9900'
-x.tosd(2, 1)                                     // '9800'
-x                                                // '9876.54321'</pre>
-
-
-
-    <h5 id="toString">toString<code class='inset'>.toString() <i>&rArr; string</i></code></h5>
-    <p>Returns a string representing the value of this Decimal.</p>
-    <p>
-      If this Decimal has a positive exponent that is equal to or greater than
-      <a href="#toExpPos"><code>toExpPos</code></a>, or a negative exponent equal to or less than
-      <a href="#toExpPos"><code>toExpNeg</code></a>, then exponential notation will be returned.
-    </p>
-    <pre>
-x = new Decimal(750000)
-x.toString()                             // '750000'
-Decimal.config({ toExpPos: 5 })
-x.toString()                             // '7.5e+5'
-
-Decimal.config({ precision: 4 });
-y = new Decimal('1.23456789')
-y.toString()                             // '1.23456789'</pre>
-
-
-
-    <h5 id="valueOf">valueOf<code class='inset'>.val() <i>&rArr; string</i></code></h5>
-    <p>As <a href='#toString'><code>toString</code></a>.</p>
-
-
-
-
-
-    <h4 id="instance-properties">Properties</h4>
-    <p>
-      The value of a Decimal is stored in a normalised base <code>10000000</code> floating point
-      format.
-    </p>
-    <p>
-      A Decimal instance is an object with three properties:
-    </p>
-    <table>
-      <tr>
-        <th>Property</th>
-        <th>Description</th>
-        <th>Type</th>
-        <th>Value</th>
-      </tr>
-      <tr>
-        <td class='centre' id='digits'><b>d</b></td>
-        <td>digits</td>
-        <td><i>number</i><code style='color:#000'>[]</code></td>
-        <td> Array of integers, each <code>0</code> - <code>1e7</code></td>
-      </tr>
-      <tr>
-        <td class='centre' id='exponent'><b>e</b></td>
-        <td>exponent*</td>
-        <td><i>number</i></td>
-        <td>Integer, <code>-1286742750677284</code> to <code>1286742750677284</code> inclusive</td>
-      </tr>
-      <tr>
-        <td class='centre' id='sign'><b>s</b></td>
-        <td>sign</td>
-        <td><i>number</i></td>
-        <td><code>-1</code>, <code>0</code>, or <code>1</code></td>
-      </tr>
-    </table>
-     <p>
-      *This is the exponent in base <code>10000000</code>. To get the base 10 exponent, use the
-      <a href='#exp'><code>exponent</code></a> method.
-    </p>
-    <p>The properties are best considered to be read-only.</p>
-    <p>
-      As with JavaScript numbers, the original exponent and fractional trailing zeros of a number
-      are not preserved.
-    </p>
-    <pre>
-x = new Decimal(0.123)                   // '0.123'
-x.toExponential()                        // '1.23e-1'
-x.d                                      // [ 1230000 ]
-x.e                                      // -1
-x.s                                      // 1
-
-y = new Number(-123.4567000e+2)          // '-12345.67'
-y.toExponential()                        // '-1.234567e+4'
-z = new Decimal('-123.4567000e+2')       // '-12345.67'
-z.toExponential()                        // '-1.234567e+4'
-z.d                                      // [ 12345, 6700000 ]
-z.e                                      // 4
-z.s                                      // -1</pre>
-
-
-
-    <h4 id='Errors'>Errors</h4>
-    <p>
-      The errors that are thrown are generic <code>Error</code> objects whose <code>message</code>
-      property begins with <code>"[DecimalError]"</code>.
-    </p>
-    <p>To determine if an exception is a Decimal Error:</p>
-    <pre>
-try {
-    // ...
-} catch (e) {
-    if ( e instanceof Error && /DecimalError/.test(e.message) ) {
-        // ...
-    }
-}</pre>
-
-
-
-    <h2 id='faq'>FAQ</h2>
-    <h6>Why are trailing fractional zeros removed from Decimals?</h6>
-    <p>
-      Some arbitrary-precision libraries retain trailing fractional zeros as they can indicate the
-      precision of a value. This can be useful but the results of arithmetic operations can be
-      misleading.
-    </p>
-    <pre>
-x = new BigDecimal("1.0")
-y = new BigDecimal("1.1000")
-z = x.add(y)                      // 2.1000
-
-x = new BigDecimal("1.20")
-y = new BigDecimal("3.45000")
-z = x.multiply(y)                 // 4.1400000</pre>
-    <p>
-      To specify the precision of a value is to specify that the value lies
-      within a certain range.
-    </p>
-    <p>
-      In the first example, <code>x</code> has a value of <code>1.0</code>. The trailing zero shows
-      the precision of the value, implying that it is in the range <code>0.95</code> to
-      <code>1.05</code>. Similarly, the precision indicated by the trailing zeros of <code>y</code>
-      indicates that the value is in the range <code>1.09995</code> to <code>1.10005</code>.
-    </p>
-    <p>
-      If we  add the two lowest values in the ranges we have, <code>0.95 + 1.09995 = 2.04995</code>,
-      and if we add the two highest values we have, <code>1.05 + 1.10005 = 2.15005</code>, so the
-      range of the result of the addition implied by the precision of its operands is
-      <code>2.04995</code> to <code>2.15005</code>.
-    </p>
-    <p>
-      The result given by BigDecimal of <code>2.1000</code> however, indicates that the value is in
-      the range <code>2.09995</code> to <code>2.10005</code> and therefore the precision implied by
-      its trailing zeros may be misleading.
-    </p>
-    <p>
-      In the second example, the true range is <code>4.122744</code> to <code>4.157256</code> yet
-      the BigDecimal answer of <code>4.1400000</code> indicates a range of <code>4.13999995</code>
-      to  <code>4.14000005</code>. Again, the precision implied by the trailing zeros may be
-      misleading.
-    </p>
-    <p>
-      This library, like binary floating point and most calculators, does not retain trailing
-      fractional zeros. Instead, the <code>toExponential</code>, <code>toFixed</code> and
-      <code>toPrecision</code> methods enable trailing zeros to be added if and when required.<br />
-    </p>
-  </div>
-
-</body>
-</html>
Index: de_modules/decimal.js-light/doc/decimal.js.map
===================================================================
--- node_modules/decimal.js-light/doc/decimal.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"file":"decimal.min.js","sources":["decimal.js"],"names":["globalScope","add","x","y","carry","d","e","i","k","len","xd","yd","Ctor","constructor","pr","precision","s","external","round","slice","length","Math","ceil","LOG_BASE","reverse","push","BASE","unshift","pop","checkInt32","min","max","Error","invalidArgument","digitsToString","ws","indexOfLastWord","str","w","getZeroString","exp","sd","denominator","guard","pow","sum","t","wpr","getBase10Exponent","exponentOutOfRange","ONE","abs","gte","times","log","mathpow","LN10","plus","divide","getLn10","decimalError","zs","ln","c","c0","numerator","x2","n","eq","charAt","minus","parseDecimal","indexOf","replace","search","substring","charCodeAt","mathfloor","MAX_E","rm","j","rd","doRound","xdi","subtract","xe","xLTy","shift","toString","isExp","truncate","arr","clone","obj","Decimal","value","this","isDecimal","test","p","ps","prototype","P","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","config","set","hasOwnProperty","v","MAX_DIGITS","rounding","toExpNeg","toExpPos","floor","MAX_SAFE_INTEGER","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","div","dividedToIntegerBy","idiv","equals","exponent","greaterThan","gt","greaterThanOrEqualTo","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","base","r","sub","modulo","mod","q","naturalExponential","naturalLogarithm","negated","neg","z","squareRoot","sqrt","toExponential","mul","rL","toDecimalPlaces","todp","toFixed","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","toPrecision","toSignificantDigits","tosd","valueOf","val","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","define","amd","module","exports","self","Function"],"mappings":";CACC,SAAWA,GACV,YAm5BA,SAASC,GAAIC,EAAGC,GACd,GAAIC,GAAOC,EAAGC,EAAGC,EAAGC,EAAGC,EAAKC,EAAIC,EAC9BC,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,SAGZ,KAAKb,EAAEc,IAAMb,EAAEa,EAKb,MADKb,GAAEa,IAAGb,EAAI,GAAIS,GAAKV,IAChBe,EAAWC,EAAMf,EAAGW,GAAMX,CAcnC,IAXAO,EAAKR,EAAEG,EACPM,EAAKR,EAAEE,EAIPG,EAAIN,EAAEI,EACNA,EAAIH,EAAEG,EACNI,EAAKA,EAAGS,QACRZ,EAAIC,EAAIF,EAGD,CAsBL,IArBQ,EAAJC,GACFF,EAAIK,EACJH,GAAKA,EACLE,EAAME,EAAGS,SAETf,EAAIM,EACJL,EAAIE,EACJC,EAAMC,EAAGU,QAIXZ,EAAIa,KAAKC,KAAKR,EAAKS,GACnBd,EAAMD,EAAIC,EAAMD,EAAI,EAAIC,EAAM,EAE1BF,EAAIE,IACNF,EAAIE,EACJJ,EAAEe,OAAS,GAIbf,EAAEmB,UACKjB,KAAMF,EAAEoB,KAAK,EACpBpB,GAAEmB,UAeJ,IAZAf,EAAMC,EAAGU,OACTb,EAAII,EAAGS,OAGO,EAAVX,EAAMF,IACRA,EAAIE,EACJJ,EAAIM,EACJA,EAAKD,EACLA,EAAKL,GAIFD,EAAQ,EAAGG,GACdH,GAASM,IAAKH,GAAKG,EAAGH,GAAKI,EAAGJ,GAAKH,GAASsB,EAAO,EACnDhB,EAAGH,IAAMmB,CAUX,KAPItB,IACFM,EAAGiB,QAAQvB,KACTE,GAKCG,EAAMC,EAAGU,OAAqB,GAAbV,IAAKD,IAAYC,EAAGkB,KAK1C,OAHAzB,GAAEE,EAAIK,EACNP,EAAEG,EAAIA,EAECW,EAAWC,EAAMf,EAAGW,GAAMX,EAInC,QAAS0B,GAAWtB,EAAGuB,EAAKC,GAC1B,GAAIxB,MAAQA,GAASuB,EAAJvB,GAAWA,EAAIwB,EAC9B,KAAMC,OAAMC,EAAkB1B,GAKlC,QAAS2B,GAAe7B,GACtB,GAAIE,GAAGC,EAAG2B,EACRC,EAAkB/B,EAAEe,OAAS,EAC7BiB,EAAM,GACNC,EAAIjC,EAAE,EAER,IAAI+B,EAAkB,EAAG,CAEvB,IADAC,GAAOC,EACF/B,EAAI,EAAO6B,EAAJ7B,EAAqBA,IAC/B4B,EAAK9B,EAAEE,GAAK,GACZC,EAAIe,EAAWY,EAAGf,OACdZ,IAAG6B,GAAOE,EAAc/B,IAC5B6B,GAAOF,CAGTG,GAAIjC,EAAEE,GACN4B,EAAKG,EAAI,GACT9B,EAAIe,EAAWY,EAAGf,OACdZ,IAAG6B,GAAOE,EAAc/B,QACvB,IAAU,IAAN8B,EACT,MAAO,GAIT,MAAOA,EAAI,KAAO,GAAIA,GAAK,EAE3B,OAAOD,GAAMC,EA6Pf,QAASE,GAAItC,EAAGuC,GACd,GAAIC,GAAaC,EAAOC,EAAKC,EAAKC,EAAGC,EACnCxC,EAAI,EACJC,EAAI,EACJI,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,SAEZ,IAAIiC,EAAkB9C,GAAK,GAAI,KAAM8B,OAAMiB,EAAqBD,EAAkB9C,GAGlF,KAAKA,EAAEc,EAAG,MAAO,IAAIJ,GAAKsC,EAW1B,KATU,MAANT,GACFxB,GAAW,EACX8B,EAAMjC,GAENiC,EAAMN,EAGRK,EAAI,GAAIlC,GAAK,QAENV,EAAEiD,MAAMC,IAAI,KACjBlD,EAAIA,EAAEmD,MAAMP,GACZtC,GAAK,CASP,KALAmC,EAAQtB,KAAKiC,IAAIC,EAAQ,EAAG/C,IAAMa,KAAKmC,KAAO,EAAI,EAAI,EACtDT,GAAOJ,EACPD,EAAcE,EAAMC,EAAM,GAAIjC,GAAKsC,GACnCtC,EAAKG,UAAYgC,IAER,CAKP,GAJAH,EAAM1B,EAAM0B,EAAIS,MAAMnD,GAAI6C,GAC1BL,EAAcA,EAAYW,QAAQ9C,GAClCuC,EAAID,EAAIY,KAAKC,EAAOd,EAAKF,EAAaK,IAElCb,EAAeY,EAAEzC,GAAGc,MAAM,EAAG4B,KAASb,EAAeW,EAAIxC,GAAGc,MAAM,EAAG4B,GAAM,CAC7E,KAAOvC,KAAKqC,EAAM3B,EAAM2B,EAAIQ,MAAMR,GAAME,EAExC,OADAnC,GAAKG,UAAYD,EACJ,MAAN2B,GAAcxB,GAAW,EAAMC,EAAM2B,EAAK/B,IAAO+B,EAG1DA,EAAMC,GAMV,QAASE,GAAkB9C,GAKzB,IAJA,GAAII,GAAIJ,EAAEI,EAAIiB,EACZe,EAAIpC,EAAEG,EAAE,GAGHiC,GAAK,GAAIA,GAAK,GAAIhC,GACzB,OAAOA,GAIT,QAASqD,GAAQ/C,EAAM6B,EAAI3B,GAEzB,GAAI2B,EAAK7B,EAAK4C,KAAKf,KAMjB,KAFAxB,IAAW,EACPH,IAAIF,EAAKG,UAAYD,GACnBkB,MAAM4B,EAAe,gCAG7B,OAAO1C,GAAM,GAAIN,GAAKA,EAAK4C,MAAOf,GAIpC,QAASF,GAAc/B,GAErB,IADA,GAAIqD,GAAK,GACFrD,KAAMqD,GAAM,GACnB,OAAOA,GAWT,QAASC,GAAG3D,EAAGsC,GACb,GAAIsB,GAAGC,EAAItB,EAAapC,EAAG2D,EAAWpB,EAAKC,EAAGC,EAAKmB,EACjDC,EAAI,EACJxB,EAAQ,GACRzC,EAAIC,EACJO,EAAKR,EAAEG,EACPO,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,SAIZ,IAAIb,EAAEc,EAAI,EAAG,KAAMgB,OAAM4B,GAAgB1D,EAAEc,EAAI,MAAQ,aAGvD,IAAId,EAAEkE,GAAGlB,GAAM,MAAO,IAAItC,GAAK,EAS/B,IAPU,MAAN6B,GACFxB,GAAW,EACX8B,EAAMjC,GAENiC,EAAMN,EAGJvC,EAAEkE,GAAG,IAEP,MADU,OAAN3B,IAAYxB,GAAW,GACpB0C,EAAQ/C,EAAMmC,EASvB,IANAA,GAAOJ,EACP/B,EAAKG,UAAYgC,EACjBgB,EAAI7B,EAAexB,GACnBsD,EAAKD,EAAEM,OAAO,GACd/D,EAAI0C,EAAkB9C,KAElBmB,KAAK8B,IAAI7C,GAAK,OAqChB,MAJAwC,GAAIa,EAAQ/C,EAAMmC,EAAM,EAAGjC,GAAIuC,MAAM/C,EAAI,IACzCJ,EAAI4D,EAAG,GAAIlD,GAAKoD,EAAK,IAAMD,EAAE5C,MAAM,IAAK4B,EAAMJ,GAAOc,KAAKX,GAE1DlC,EAAKG,UAAYD,EACJ,MAAN2B,GAAcxB,GAAW,EAAMC,EAAMhB,EAAGY,IAAOZ,CAxBtD,MAAY,EAAL8D,GAAgB,GAANA,GAAiB,GAANA,GAAWD,EAAEM,OAAO,GAAK,GACnDnE,EAAIA,EAAEmD,MAAMlD,GACZ4D,EAAI7B,EAAehC,EAAEG,GACrB2D,EAAKD,EAAEM,OAAO,GACdF,GAgCJ,KA7BE7D,EAAI0C,EAAkB9C,GAElB8D,EAAK,GACP9D,EAAI,GAAIU,GAAK,KAAOmD,GACpBzD,KAEAJ,EAAI,GAAIU,GAAKoD,EAAK,IAAMD,EAAE5C,MAAM,IAmBpC0B,EAAMoB,EAAY/D,EAAIwD,EAAOxD,EAAEoE,MAAMpB,GAAMhD,EAAEuD,KAAKP,GAAMH,GACxDmB,EAAKhD,EAAMhB,EAAEmD,MAAMnD,GAAI6C,GACvBL,EAAc,IAEL,CAIP,GAHAuB,EAAY/C,EAAM+C,EAAUZ,MAAMa,GAAKnB,GACvCD,EAAID,EAAIY,KAAKC,EAAOO,EAAW,GAAIrD,GAAK8B,GAAcK,IAElDb,EAAeY,EAAEzC,GAAGc,MAAM,EAAG4B,KAASb,EAAeW,EAAIxC,GAAGc,MAAM,EAAG4B,GAQvE,MAPAF,GAAMA,EAAIQ,MAAM,GAGN,IAAN/C,IAASuC,EAAMA,EAAIY,KAAKE,EAAQ/C,EAAMmC,EAAM,EAAGjC,GAAIuC,MAAM/C,EAAI,MACjEuC,EAAMa,EAAOb,EAAK,GAAIjC,GAAKuD,GAAIpB,GAE/BnC,EAAKG,UAAYD,EACJ,MAAN2B,GAAcxB,GAAW,EAAMC,EAAM2B,EAAK/B,IAAO+B,CAG1DA,GAAMC,EACNJ,GAAe,GAQnB,QAAS6B,GAAarE,EAAGmC,GACvB,GAAI/B,GAAGC,EAAGE,CAmBV,MAhBKH,EAAI+B,EAAImC,QAAQ,MAAQ,KAAInC,EAAMA,EAAIoC,QAAQ,IAAK,MAGnDlE,EAAI8B,EAAIqC,OAAO,OAAS,GAGnB,EAAJpE,IAAOA,EAAIC,GACfD,IAAM+B,EAAIlB,MAAMZ,EAAI,GACpB8B,EAAMA,EAAIsC,UAAU,EAAGpE,IACV,EAAJD,IAGTA,EAAI+B,EAAIjB,QAILb,EAAI,EAAyB,KAAtB8B,EAAIuC,WAAWrE,MAAcA,CAGzC,KAAKE,EAAM4B,EAAIjB,OAAoC,KAA5BiB,EAAIuC,WAAWnE,EAAM,MAAcA,CAG1D,IAFA4B,EAAMA,EAAIlB,MAAMZ,EAAGE,GAEV,CAaP,GAZAA,GAAOF,EACPD,EAAIA,EAAIC,EAAI,EACZL,EAAEI,EAAIuE,EAAUvE,EAAIiB,GACpBrB,EAAEG,KAMFE,GAAKD,EAAI,GAAKiB,EACN,EAAJjB,IAAOC,GAAKgB,GAERd,EAAJF,EAAS,CAEX,IADIA,GAAGL,EAAEG,EAAEoB,MAAMY,EAAIlB,MAAM,EAAGZ,IACzBE,GAAOc,EAAcd,EAAJF,GAAUL,EAAEG,EAAEoB,MAAMY,EAAIlB,MAAMZ,EAAGA,GAAKgB,GAC5Dc,GAAMA,EAAIlB,MAAMZ,GAChBA,EAAIgB,EAAWc,EAAIjB,WAEnBb,IAAKE,CAGP,MAAOF,KAAM8B,GAAO,GAGpB,IAFAnC,EAAEG,EAAEoB,MAAMY,GAENpB,IAAaf,EAAEI,EAAIwE,GAAS5E,EAAEI,GAAKwE,GAAQ,KAAM9C,OAAMiB,EAAqB3C,OAIhFJ,GAAEc,EAAI,EACNd,EAAEI,EAAI,EACNJ,EAAEG,GAAK,EAGT,OAAOH,GAOR,QAASgB,GAAMhB,EAAGuC,EAAIsC,GACrB,GAAIxE,GAAGyE,EAAGxE,EAAG2D,EAAGc,EAAIC,EAAS5C,EAAG6C,EAC9BzE,EAAKR,EAAEG,CAWT,KAAK8D,EAAI,EAAG3D,EAAIE,EAAG,GAAIF,GAAK,GAAIA,GAAK,GAAI2D,GAIzC,IAHA5D,EAAIkC,EAAK0B,EAGD,EAAJ5D,EACFA,GAAKgB,EACLyD,EAAIvC,EACJH,EAAI5B,EAAGyE,EAAM,OACR,CAGL,GAFAA,EAAM9D,KAAKC,MAAMf,EAAI,GAAKgB,GAC1Bf,EAAIE,EAAGU,OACH+D,GAAO3E,EAAG,MAAON,EAIrB,KAHAoC,EAAI9B,EAAIE,EAAGyE,GAGNhB,EAAI,EAAG3D,GAAK,GAAIA,GAAK,GAAI2D,GAG9B5D,IAAKgB,EAILyD,EAAIzE,EAAIgB,EAAW4C,EAyBrB,GAtBW,SAAPY,IACFvE,EAAI+C,EAAQ,GAAIY,EAAIa,EAAI,GAGxBC,EAAK3C,EAAI9B,EAAI,GAAK,EAGlB0E,EAAe,EAALzC,GAA0B,SAAhB/B,EAAGyE,EAAM,IAAiB7C,EAAI9B,EAMlD0E,EAAe,EAALH,GACLE,GAAMC,KAAmB,GAANH,GAAWA,IAAO7E,EAAEc,EAAI,EAAI,EAAI,IACpDiE,EAAK,GAAW,GAANA,IAAkB,GAANF,GAAWG,GAAiB,GAANH,IAG1CxE,EAAI,EAAIyE,EAAI,EAAI1C,EAAIiB,EAAQ,GAAIY,EAAIa,GAAK,EAAItE,EAAGyE,EAAM,IAAM,GAAM,GAClEJ,IAAO7E,EAAEc,EAAI,EAAI,EAAI,KAGpB,EAALyB,IAAW/B,EAAG,GAkBhB,MAjBIwE,IACF1E,EAAIwC,EAAkB9C,GACtBQ,EAAGU,OAAS,EAGZqB,EAAKA,EAAKjC,EAAI,EAGdE,EAAG,GAAK6C,EAAQ,IAAKhC,EAAWkB,EAAKlB,GAAYA,GACjDrB,EAAEI,EAAIuE,GAAWpC,EAAKlB,IAAa,IAEnCb,EAAGU,OAAS,EAGZV,EAAG,GAAKR,EAAEI,EAAIJ,EAAEc,EAAI,GAGfd,CAiBT,IAbS,GAALK,GACFG,EAAGU,OAAS+D,EACZ3E,EAAI,EACJ2E,MAEAzE,EAAGU,OAAS+D,EAAM,EAClB3E,EAAI+C,EAAQ,GAAIhC,EAAWhB,GAI3BG,EAAGyE,GAAOH,EAAI,GAAK1C,EAAIiB,EAAQ,GAAIY,EAAIa,GAAKzB,EAAQ,GAAIyB,GAAK,GAAKxE,EAAI,GAGpE0E,EACF,OAAS,CAGP,GAAW,GAAPC,EAAU,EACPzE,EAAG,IAAMF,IAAMkB,IAClBhB,EAAG,GAAK,IACNR,EAAEI,EAGN,OAGA,GADAI,EAAGyE,IAAQ3E,EACPE,EAAGyE,IAAQzD,EAAM,KACrBhB,GAAGyE,KAAS,EACZ3E,EAAI,EAMV,IAAKD,EAAIG,EAAGU,OAAoB,IAAZV,IAAKH,IAAWG,EAAGkB,KAEvC,IAAIX,IAAaf,EAAEI,EAAIwE,GAAS5E,EAAEI,GAAKwE,GACrC,KAAM9C,OAAMiB,EAAqBD,EAAkB9C,GAGrD,OAAOA,GAIT,QAASkF,GAASlF,EAAGC,GACnB,GAAIE,GAAGC,EAAGC,EAAGyE,EAAGxE,EAAGC,EAAKC,EAAI2E,EAAIC,EAAM3E,EACpCC,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,SAIZ,KAAKb,EAAEc,IAAMb,EAAEa,EAGb,MAFIb,GAAEa,EAAGb,EAAEa,GAAKb,EAAEa,EACbb,EAAI,GAAIS,GAAKV,GACXe,EAAWC,EAAMf,EAAGW,GAAMX,CAcnC,IAXAO,EAAKR,EAAEG,EACPM,EAAKR,EAAEE,EAIPC,EAAIH,EAAEG,EACN+E,EAAKnF,EAAEI,EACPI,EAAKA,EAAGS,QACRX,EAAI6E,EAAK/E,EAGF,CAyBL,IAxBAgF,EAAW,EAAJ9E,EAEH8E,GACFjF,EAAIK,EACJF,GAAKA,EACLC,EAAME,EAAGS,SAETf,EAAIM,EACJL,EAAI+E,EACJ5E,EAAMC,EAAGU,QAMXb,EAAIc,KAAKU,IAAIV,KAAKC,KAAKR,EAAKS,GAAWd,GAAO,EAE1CD,EAAID,IACNC,EAAID,EACJF,EAAEe,OAAS,GAIbf,EAAEmB,UACGjB,EAAIC,EAAGD,KAAMF,EAAEoB,KAAK,EACzBpB,GAAEmB,cAGG,CASL,IALAjB,EAAIG,EAAGU,OACPX,EAAME,EAAGS,OACTkE,EAAW7E,EAAJF,EACH+E,IAAM7E,EAAMF,GAEXA,EAAI,EAAOE,EAAJF,EAASA,IACnB,GAAIG,EAAGH,IAAMI,EAAGJ,GAAI,CAClB+E,EAAO5E,EAAGH,GAAKI,EAAGJ,EAClB,OAIJC,EAAI,EAcN,IAXI8E,IACFjF,EAAIK,EACJA,EAAKC,EACLA,EAAKN,EACLF,EAAEa,GAAKb,EAAEa,GAGXP,EAAMC,EAAGU,OAIJb,EAAII,EAAGS,OAASX,EAAKF,EAAI,IAAKA,EAAGG,EAAGD,KAAS,CAGlD,KAAKF,EAAII,EAAGS,OAAQb,EAAIC,GAAI,CAC1B,GAAIE,IAAKH,GAAKI,EAAGJ,GAAI,CACnB,IAAKyE,EAAIzE,EAAGyE,GAAiB,IAAZtE,IAAKsE,IAAWtE,EAAGsE,GAAKtD,EAAO,IAC9ChB,EAAGsE,GACLtE,EAAGH,IAAMmB,EAGXhB,EAAGH,IAAMI,EAAGJ,GAId,KAAqB,IAAdG,IAAKD,IAAaC,EAAGkB,KAG5B,MAAiB,IAAVlB,EAAG,GAAUA,EAAG6E,UAAWjF,CAGlC,OAAKI,GAAG,IAERP,EAAEE,EAAIK,EACNP,EAAEG,EAAIA,EAGCW,EAAWC,EAAMf,EAAGW,GAAMX,GANd,GAAIS,GAAK,GAU9B,QAAS4E,GAAStF,EAAGuF,EAAOhD,GAC1B,GAAIjC,GACFF,EAAI0C,EAAkB9C,GACtBmC,EAAMH,EAAehC,EAAEG,GACvBI,EAAM4B,EAAIjB,MAwBZ,OAtBIqE,IACEhD,IAAOjC,EAAIiC,EAAKhC,GAAO,EACzB4B,EAAMA,EAAIgC,OAAO,GAAK,IAAMhC,EAAIlB,MAAM,GAAKoB,EAAc/B,GAChDC,EAAM,IACf4B,EAAMA,EAAIgC,OAAO,GAAK,IAAMhC,EAAIlB,MAAM,IAGxCkB,EAAMA,GAAW,EAAJ/B,EAAQ,IAAM,MAAQA,GACtB,EAAJA,GACT+B,EAAM,KAAOE,GAAejC,EAAI,GAAK+B,EACjCI,IAAOjC,EAAIiC,EAAKhC,GAAO,IAAG4B,GAAOE,EAAc/B,KAC1CF,GAAKG,GACd4B,GAAOE,EAAcjC,EAAI,EAAIG,GACzBgC,IAAOjC,EAAIiC,EAAKnC,EAAI,GAAK,IAAG+B,EAAMA,EAAM,IAAME,EAAc/B,OAE3DA,EAAIF,EAAI,GAAKG,IAAK4B,EAAMA,EAAIlB,MAAM,EAAGX,GAAK,IAAM6B,EAAIlB,MAAMX,IAC3DiC,IAAOjC,EAAIiC,EAAKhC,GAAO,IACrBH,EAAI,IAAMG,IAAK4B,GAAO,KAC1BA,GAAOE,EAAc/B,KAIlBN,EAAEc,EAAI,EAAI,IAAMqB,EAAMA,EAK/B,QAASqD,GAASC,EAAKlF,GACrB,MAAIkF,GAAIvE,OAASX,GACfkF,EAAIvE,OAASX,GACN,GAFT,OAqBF,QAASmF,GAAMC,GAUb,QAASC,GAAQC,GACf,GAAI7F,GAAI8F,IAGR,MAAM9F,YAAa4F,IAAU,MAAO,IAAIA,GAAQC,EAOhD,IAHA7F,EAAEW,YAAciF,EAGZC,YAAiBD,GAInB,MAHA5F,GAAEc,EAAI+E,EAAM/E,EACZd,EAAEI,EAAIyF,EAAMzF,OACZJ,EAAEG,GAAK0F,EAAQA,EAAM1F,GAAK0F,EAAM5E,QAAU4E,EAI5C,IAAqB,gBAAVA,GAAoB,CAG7B,GAAY,EAARA,IAAc,EAChB,KAAM/D,OAAMC,EAAkB8D,EAGhC,IAAIA,EAAQ,EACV7F,EAAEc,EAAI,MACD,CAAA,KAAY,EAAR+E,GAOT,MAHA7F,GAAEc,EAAI,EACNd,EAAEI,EAAI,OACNJ,EAAEG,GAAK,GALP0F,IAASA,EACT7F,EAAEc,EAAI,GASR,MAAI+E,OAAYA,GAAiB,IAARA,GACvB7F,EAAEI,EAAI,OACNJ,EAAEG,GAAK0F,KAIFxB,EAAarE,EAAG6F,EAAMP,YACxB,GAAqB,gBAAVO,GAChB,KAAM/D,OAAMC,EAAkB8D,EAWhC,IAP4B,KAAxBA,EAAMnB,WAAW,IACnBmB,EAAQA,EAAM5E,MAAM,GACpBjB,EAAEc,EAAI,IAENd,EAAEc,EAAI,GAGJiF,EAAUC,KAAKH,GACd,KAAM/D,OAAMC,EAAkB8D,EADRxB,GAAarE,EAAG6F,GAlE7C,GAAIxF,GAAG4F,EAAGC,CAsFV,IAhBAN,EAAQO,UAAYC,EAEpBR,EAAQS,SAAW,EACnBT,EAAQU,WAAa,EACrBV,EAAQW,WAAa,EACrBX,EAAQY,YAAc,EACtBZ,EAAQa,cAAgB,EACxBb,EAAQc,gBAAkB,EAC1Bd,EAAQe,gBAAkB,EAC1Bf,EAAQgB,gBAAkB,EAC1BhB,EAAQiB,iBAAmB,EAE3BjB,EAAQF,MAAQA,EAChBE,EAAQkB,OAASlB,EAAQmB,IAAMD,EAEnB,SAARnB,IAAgBA,MAChBA,EAEF,IADAO,GAAM,YAAa,WAAY,WAAY,WAAY,QAClD7F,EAAI,EAAGA,EAAI6F,EAAGhF,QAAcyE,EAAIqB,eAAef,EAAIC,EAAG7F,QAAOsF,EAAIM,GAAKH,KAAKG,GAKlF,OAFAL,GAAQkB,OAAOnB,GAERC,EAiBT,QAASkB,GAAOnB,GACd,IAAKA,GAAsB,gBAARA,GACjB,KAAM7D,OAAM4B,EAAe,kBAE7B,IAAIrD,GAAG4F,EAAGgB,EACRf,GACE,YAAa,EAAGgB,EAChB,WAAY,EAAG,EACf,WAAY,GAAK,EAAG,EACpB,WAAY,EAAG,EAAI,EAGvB,KAAK7G,EAAI,EAAGA,EAAI6F,EAAGhF,OAAQb,GAAK,EAC9B,GAA6B,UAAxB4G,EAAItB,EAAIM,EAAIC,EAAG7F,KAAiB,CACnC,KAAIsE,EAAUsC,KAAOA,GAAKA,GAAKf,EAAG7F,EAAI,IAAM4G,GAAKf,EAAG7F,EAAI,IACnD,KAAMyB,OAAMC,EAAkBkE,EAAI,KAAOgB,EADcnB,MAAKG,GAAKgB,EAK1E,GAA8B,UAAzBA,EAAItB,EAAIM,EAAI,SAAqB,CAClC,GAAIgB,GAAK9F,KAAKmC,KACT,KAAMxB,OAAMC,EAAkBkE,EAAI,KAAOgB,EAD1BnB,MAAKG,GAAK,GAAIH,MAAKmB,GAI3C,MAAOnB,MAv6DT,GA2DE9C,GA3DEkE,EAAa,IAIftB,GAOE/E,UAAW,GAkBXsG,SAAU,EAIVC,SAAU,GAIVC,SAAW,GAIX/D,KAAM,wHAORvC,GAAW,EAEX2C,EAAe,kBACf3B,EAAkB2B,EAAe,qBACjCX,EAAqBW,EAAe,0BAEpCiB,EAAYxD,KAAKmG,MACjBjE,EAAUlC,KAAKuB,IAEfqD,EAAY,qCAGZvE,EAAO,IACPH,EAAW,EACXkG,EAAmB,iBACnB3C,EAAQD,EAAU4C,EAAmBlG,GAGrC+E,IAiDFA,GAAEoB,cAAgBpB,EAAEnD,IAAM,WACxB,GAAIjD,GAAI,GAAI8F,MAAKnF,YAAYmF,KAE7B,OADI9F,GAAEc,IAAGd,EAAEc,EAAI,GACRd,GAWToG,EAAEqB,WAAarB,EAAEsB,IAAM,SAAUzH,GAC/B,GAAII,GAAGyE,EAAG6C,EAAKC,EACb5H,EAAI8F,IAKN,IAHA7F,EAAI,GAAID,GAAEW,YAAYV,GAGlBD,EAAEc,IAAMb,EAAEa,EAAG,MAAOd,GAAEc,IAAMb,EAAEa,CAGlC,IAAId,EAAEI,IAAMH,EAAEG,EAAG,MAAOJ,GAAEI,EAAIH,EAAEG,EAAIJ,EAAEc,EAAI,EAAI,EAAI,EAMlD,KAJA6G,EAAM3H,EAAEG,EAAEe,OACV0G,EAAM3H,EAAEE,EAAEe,OAGLb,EAAI,EAAGyE,EAAU8C,EAAND,EAAYA,EAAMC,EAAS9C,EAAJzE,IAASA,EAC9C,GAAIL,EAAEG,EAAEE,KAAOJ,EAAEE,EAAEE,GAAI,MAAOL,GAAEG,EAAEE,GAAKJ,EAAEE,EAAEE,GAAKL,EAAEc,EAAI,EAAI,EAAI,EAIhE,OAAO6G,KAAQC,EAAM,EAAID,EAAMC,EAAM5H,EAAEc,EAAI,EAAI,EAAI,IAQrDsF,EAAEyB,cAAgBzB,EAAE0B,GAAK,WACvB,GAAI9H,GAAI8F,KACN1D,EAAIpC,EAAEG,EAAEe,OAAS,EACjB4G,GAAM1F,EAAIpC,EAAEI,GAAKiB,CAInB,IADAe,EAAIpC,EAAEG,EAAEiC,GACD,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI0F,GAEpC,OAAY,GAALA,EAAS,EAAIA,GAStB1B,EAAE2B,UAAY3B,EAAE4B,IAAM,SAAU/H,GAC9B,MAAOuD,GAAOsC,KAAM,GAAIA,MAAKnF,YAAYV,KAS3CmG,EAAE6B,mBAAqB7B,EAAE8B,KAAO,SAAUjI,GACxC,GAAID,GAAI8F,KACNpF,EAAOV,EAAEW,WACX,OAAOK,GAAMwC,EAAOxD,EAAG,GAAIU,GAAKT,GAAI,EAAG,GAAIS,EAAKG,YAQlDuF,EAAE+B,OAAS/B,EAAElC,GAAK,SAAUjE,GAC1B,OAAQ6F,KAAK4B,IAAIzH,IAQnBmG,EAAEgC,SAAW,WACX,MAAOtF,GAAkBgD,OAS3BM,EAAEiC,YAAcjC,EAAEkC,GAAK,SAAUrI,GAC/B,MAAO6F,MAAK4B,IAAIzH,GAAK,GASvBmG,EAAEmC,qBAAuBnC,EAAElD,IAAM,SAAUjD,GACzC,MAAO6F,MAAK4B,IAAIzH,IAAM,GAQxBmG,EAAEoC,UAAYpC,EAAEqC,MAAQ,WACtB,MAAO3C,MAAK1F,EAAI0F,KAAK3F,EAAEe,OAAS,GAQlCkF,EAAEsC,WAAatC,EAAEuC,MAAQ,WACvB,MAAO7C,MAAKhF,EAAI,GAQlBsF,EAAEwC,WAAaxC,EAAEyC,MAAQ,WACvB,MAAO/C,MAAKhF,EAAI,GAQlBsF,EAAE0C,OAAS,WACT,MAAkB,KAAXhD,KAAKhF,GAQdsF,EAAE2C,SAAW3C,EAAE4C,GAAK,SAAU/I,GAC5B,MAAO6F,MAAK4B,IAAIzH,GAAK,GAQvBmG,EAAE6C,kBAAoB7C,EAAE8C,IAAM,SAAUjJ,GACtC,MAAO6F,MAAK4B,IAAIzH,GAAK,GAiBvBmG,EAAE+C,UAAY/C,EAAEhD,IAAM,SAAUgG,GAC9B,GAAIC,GACFrJ,EAAI8F,KACJpF,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,UACVgC,EAAMjC,EAAK,CAGb,IAAa,SAATwI,EACFA,EAAO,GAAI1I,GAAK,QAOhB,IALA0I,EAAO,GAAI1I,GAAK0I,GAKZA,EAAKtI,EAAI,GAAKsI,EAAKlF,GAAGlB,GAAM,KAAMlB,OAAM4B,EAAe,MAK7D,IAAI1D,EAAEc,EAAI,EAAG,KAAMgB,OAAM4B,GAAgB1D,EAAEc,EAAI,MAAQ,aAGvD,OAAId,GAAEkE,GAAGlB,GAAa,GAAItC,GAAK,IAE/BK,GAAW,EACXsI,EAAI7F,EAAOI,EAAG5D,EAAG6C,GAAMe,EAAGwF,EAAMvG,GAAMA,GACtC9B,GAAW,EAEJC,EAAMqI,EAAGzI,KASlBwF,EAAEhC,MAAQgC,EAAEkD,IAAM,SAAUrJ,GAC1B,GAAID,GAAI8F,IAER,OADA7F,GAAI,GAAID,GAAEW,YAAYV,GACfD,EAAEc,GAAKb,EAAEa,EAAIoE,EAASlF,EAAGC,GAAKF,EAAIC,GAAIC,EAAEa,GAAKb,EAAEa,EAAGb,KAS3DmG,EAAEmD,OAASnD,EAAEoD,IAAM,SAAUvJ,GAC3B,GAAIwJ,GACFzJ,EAAI8F,KACJpF,EAAOV,EAAEW,YACTC,EAAKF,EAAKG,SAKZ,IAHAZ,EAAI,GAAIS,GAAKT,IAGRA,EAAEa,EAAG,KAAMgB,OAAM4B,EAAe,MAGrC,OAAK1D,GAAEc,GAGPC,GAAW,EACX0I,EAAIjG,EAAOxD,EAAGC,EAAG,EAAG,GAAGkD,MAAMlD,GAC7Bc,GAAW,EAEJf,EAAEoE,MAAMqF,IAPEzI,EAAM,GAAIN,GAAKV,GAAIY,IAiBtCwF,EAAEsD,mBAAqBtD,EAAE9D,IAAM,WAC7B,MAAOA,GAAIwD,OASbM,EAAEuD,iBAAmBvD,EAAExC,GAAK,WAC1B,MAAOA,GAAGkC,OASZM,EAAEwD,QAAUxD,EAAEyD,IAAM,WAClB,GAAI7J,GAAI,GAAI8F,MAAKnF,YAAYmF,KAE7B,OADA9F,GAAEc,GAAKd,EAAEc,GAAK,EACPd,GASToG,EAAE7C,KAAO6C,EAAErG,IAAM,SAAUE,GACzB,GAAID,GAAI8F,IAER,OADA7F,GAAI,GAAID,GAAEW,YAAYV,GACfD,EAAEc,GAAKb,EAAEa,EAAIf,EAAIC,EAAGC,GAAKiF,EAASlF,GAAIC,EAAEa,GAAKb,EAAEa,EAAGb,KAU3DmG,EAAEvF,UAAYuF,EAAE7D,GAAK,SAAUuH,GAC7B,GAAI1J,GAAGmC,EAAIH,EACTpC,EAAI8F,IAEN,IAAU,SAANgE,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,KAAMhI,OAAMC,EAAkB+H,EAQnF,IANA1J,EAAI0C,EAAkB9C,GAAK,EAC3BoC,EAAIpC,EAAEG,EAAEe,OAAS,EACjBqB,EAAKH,EAAIf,EAAW,EACpBe,EAAIpC,EAAEG,EAAEiC,GAGD,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIG,GAG7B,KAAKH,EAAIpC,EAAEG,EAAE,GAAIiC,GAAK,GAAIA,GAAK,GAAIG,IAGrC,MAAOuH,IAAK1J,EAAImC,EAAKnC,EAAImC,GAS3B6D,EAAE2D,WAAa3D,EAAE4D,KAAO,WACtB,GAAI5J,GAAG6D,EAAGrD,EAAIyI,EAAGvI,EAAG8B,EAAGC,EACrB7C,EAAI8F,KACJpF,EAAOV,EAAEW,WAGX,IAAIX,EAAEc,EAAI,EAAG,CACX,IAAKd,EAAEc,EAAG,MAAO,IAAIJ,GAAK,EAG1B,MAAMoB,OAAM4B,EAAe,OAiC7B,IA9BAtD,EAAI0C,EAAkB9C,GACtBe,GAAW,EAGXD,EAAIK,KAAK6I,MAAMhK,GAIN,GAALc,GAAUA,GAAK,EAAI,GACrBmD,EAAIjC,EAAehC,EAAEG,IAChB8D,EAAE/C,OAASd,GAAK,GAAK,IAAG6D,GAAK,KAClCnD,EAAIK,KAAK6I,KAAK/F,GACd7D,EAAIuE,GAAWvE,EAAI,GAAK,IAAU,EAAJA,GAASA,EAAI,GAEvCU,GAAK,EAAI,EACXmD,EAAI,KAAO7D,GAEX6D,EAAInD,EAAEmJ,gBACNhG,EAAIA,EAAEhD,MAAM,EAAGgD,EAAEK,QAAQ,KAAO,GAAKlE,GAGvCiJ,EAAI,GAAI3I,GAAKuD,IAEboF,EAAI,GAAI3I,GAAKI,EAAEwE,YAGjB1E,EAAKF,EAAKG,UACVC,EAAI+B,EAAMjC,EAAK,IAOb,GAHAgC,EAAIyG,EACJA,EAAIzG,EAAEW,KAAKC,EAAOxD,EAAG4C,EAAGC,EAAM,IAAIM,MAAM,IAEpCnB,EAAeY,EAAEzC,GAAGc,MAAM,EAAG4B,MAAUoB,EAAIjC,EAAeqH,EAAElJ,IAAIc,MAAM,EAAG4B,GAAM,CAKjF,GAJAoB,EAAIA,EAAEhD,MAAM4B,EAAM,EAAGA,EAAM,GAIvB/B,GAAK+B,GAAY,QAALoB,GAMd,GAFAjD,EAAM4B,EAAGhC,EAAK,EAAG,GAEbgC,EAAEO,MAAMP,GAAGsB,GAAGlE,GAAI,CACpBqJ,EAAIzG,CACJ,YAEG,IAAS,QAALqB,EACT,KAGFpB,IAAO,EAMX,MAFA9B,IAAW,EAEJC,EAAMqI,EAAGzI,IASlBwF,EAAEjD,MAAQiD,EAAE8D,IAAM,SAAUjK,GAC1B,GAAIC,GAAOE,EAAGC,EAAGC,EAAG+I,EAAGc,EAAIvH,EAAG+E,EAAKC,EACjC5H,EAAI8F,KACJpF,EAAOV,EAAEW,YACTH,EAAKR,EAAEG,EACPM,GAAMR,EAAI,GAAIS,GAAKT,IAAIE,CAGzB,KAAKH,EAAEc,IAAMb,EAAEa,EAAG,MAAO,IAAIJ,GAAK,EAoBlC,KAlBAT,EAAEa,GAAKd,EAAEc,EACTV,EAAIJ,EAAEI,EAAIH,EAAEG,EACZuH,EAAMnH,EAAGU,OACT0G,EAAMnH,EAAGS,OAGC0G,EAAND,IACF0B,EAAI7I,EACJA,EAAKC,EACLA,EAAK4I,EACLc,EAAKxC,EACLA,EAAMC,EACNA,EAAMuC,GAIRd,KACAc,EAAKxC,EAAMC,EACNvH,EAAI8J,EAAI9J,KAAMgJ,EAAE9H,KAAK,EAG1B,KAAKlB,EAAIuH,IAAOvH,GAAK,GAAI,CAEvB,IADAH,EAAQ,EACHI,EAAIqH,EAAMtH,EAAGC,EAAID,GACpBuC,EAAIyG,EAAE/I,GAAKG,EAAGJ,GAAKG,EAAGF,EAAID,EAAI,GAAKH,EACnCmJ,EAAE/I,KAAOsC,EAAIpB,EAAO,EACpBtB,EAAQ0C,EAAIpB,EAAO,CAGrB6H,GAAE/I,IAAM+I,EAAE/I,GAAKJ,GAASsB,EAAO,EAIjC,MAAQ6H,IAAIc,IAAMd,EAAE3H,KAQpB,OANIxB,KAASE,EACRiJ,EAAEhE,QAEPpF,EAAEE,EAAIkJ,EACNpJ,EAAEG,EAAIA,EAECW,EAAWC,EAAMf,EAAGS,EAAKG,WAAaZ,GAc/CmG,EAAEgE,gBAAkBhE,EAAEiE,KAAO,SAAUvC,EAAIjD,GACzC,GAAI7E,GAAI8F,KACNpF,EAAOV,EAAEW,WAGX,OADAX,GAAI,GAAIU,GAAKV,GACF,SAAP8H,EAAsB9H,GAE1B2B,EAAWmG,EAAI,EAAGZ,GAEP,SAAPrC,EAAeA,EAAKnE,EAAKyG,SACxBxF,EAAWkD,EAAI,EAAG,GAEhB7D,EAAMhB,EAAG8H,EAAKhF,EAAkB9C,GAAK,EAAG6E,KAYjDuB,EAAE6D,cAAgB,SAAUnC,EAAIjD,GAC9B,GAAI1C,GACFnC,EAAI8F,KACJpF,EAAOV,EAAEW,WAcX,OAZW,UAAPmH,EACF3F,EAAMmD,EAAStF,GAAG,IAElB2B,EAAWmG,EAAI,EAAGZ,GAEP,SAAPrC,EAAeA,EAAKnE,EAAKyG,SACxBxF,EAAWkD,EAAI,EAAG,GAEvB7E,EAAIgB,EAAM,GAAIN,GAAKV,GAAI8H,EAAK,EAAGjD,GAC/B1C,EAAMmD,EAAStF,GAAG,EAAM8H,EAAK,IAGxB3F,GAoBTiE,EAAEkE,QAAU,SAAUxC,EAAIjD,GACxB,GAAI1C,GAAKlC,EACPD,EAAI8F,KACJpF,EAAOV,EAAEW,WAEX,OAAW,UAAPmH,EAAsBxC,EAAStF,IAEnC2B,EAAWmG,EAAI,EAAGZ,GAEP,SAAPrC,EAAeA,EAAKnE,EAAKyG,SACxBxF,EAAWkD,EAAI,EAAG,GAEvB5E,EAAIe,EAAM,GAAIN,GAAKV,GAAI8H,EAAKhF,EAAkB9C,GAAK,EAAG6E,GACtD1C,EAAMmD,EAASrF,EAAEgD,OAAO,EAAO6E,EAAKhF,EAAkB7C,GAAK,GAIpDD,EAAE2I,UAAY3I,EAAE8I,SAAW,IAAM3G,EAAMA,IAShDiE,EAAEmE,UAAYnE,EAAEoE,MAAQ,WACtB,GAAIxK,GAAI8F,KACNpF,EAAOV,EAAEW,WACX,OAAOK,GAAM,GAAIN,GAAKV,GAAI8C,EAAkB9C,GAAK,EAAGU,EAAKyG,WAQ3Df,EAAEqE,SAAW,WACX,OAAQ3E,MAiBVM,EAAEsE,QAAUtE,EAAE1D,IAAM,SAAUzC,GAC5B,GAAIG,GAAGE,EAAGM,EAAIyI,EAAGsB,EAAMC,EACrB5K,EAAI8F,KACJpF,EAAOV,EAAEW,YACT8B,EAAQ,GACRoI,IAAO5K,EAAI,GAAIS,GAAKT,GAGtB,KAAKA,EAAEa,EAAG,MAAO,IAAIJ,GAAKsC,EAM1B,IAJAhD,EAAI,GAAIU,GAAKV,IAIRA,EAAEc,EAAG,CACR,GAAIb,EAAEa,EAAI,EAAG,KAAMgB,OAAM4B,EAAe,WACxC,OAAO1D,GAIT,GAAIA,EAAEkE,GAAGlB,GAAM,MAAOhD,EAKtB,IAHAY,EAAKF,EAAKG,UAGNZ,EAAEiE,GAAGlB,GAAM,MAAOhC,GAAMhB,EAAGY,EAO/B,IALAR,EAAIH,EAAEG,EACNE,EAAIL,EAAEE,EAAEe,OAAS,EACjB0J,EAASxK,GAAKE,EACdqK,EAAO3K,EAAEc,EAEJ8J,GAME,IAAKtK,EAAS,EAALuK,GAAUA,EAAKA,IAAOtD,EAAkB,CAStD,IARA8B,EAAI,GAAI3I,GAAKsC,GAIb5C,EAAIe,KAAKC,KAAKR,EAAKS,EAAW,GAE9BN,GAAW,EAGLT,EAAI,IACN+I,EAAIA,EAAElG,MAAMnD,GACZwF,EAAS6D,EAAElJ,EAAGC,IAGhBE,EAAIqE,EAAUrE,EAAI,GACR,IAANA,GAEJN,EAAIA,EAAEmD,MAAMnD,GACZwF,EAASxF,EAAEG,EAAGC,EAKhB,OAFAW,IAAW,EAEJd,EAAEa,EAAI,EAAI,GAAIJ,GAAKsC,GAAKgF,IAAIqB,GAAKrI,EAAMqI,EAAGzI,QA3BjD,IAAW,EAAP+J,EAAU,KAAM7I,OAAM4B,EAAe,MAwC3C,OATAiH,GAAc,EAAPA,GAAkC,EAAtB1K,EAAEE,EAAEgB,KAAKU,IAAIzB,EAAGE,IAAU,GAAK,EAElDN,EAAEc,EAAI,EACNC,GAAW,EACXsI,EAAIpJ,EAAEkD,MAAMS,EAAG5D,EAAGY,EAAK6B,IACvB1B,GAAW,EACXsI,EAAI/G,EAAI+G,GACRA,EAAEvI,EAAI6J,EAECtB,GAeTjD,EAAE0E,YAAc,SAAUvI,EAAIsC,GAC5B,GAAIzE,GAAG+B,EACLnC,EAAI8F,KACJpF,EAAOV,EAAEW,WAgBX,OAdW,UAAP4B,GACFnC,EAAI0C,EAAkB9C,GACtBmC,EAAMmD,EAAStF,EAAGI,GAAKM,EAAK0G,UAAYhH,GAAKM,EAAK2G,YAElD1F,EAAWY,EAAI,EAAG2E,GAEP,SAAPrC,EAAeA,EAAKnE,EAAKyG,SACxBxF,EAAWkD,EAAI,EAAG,GAEvB7E,EAAIgB,EAAM,GAAIN,GAAKV,GAAIuC,EAAIsC,GAC3BzE,EAAI0C,EAAkB9C,GACtBmC,EAAMmD,EAAStF,EAASI,GAANmC,GAAWnC,GAAKM,EAAK0G,SAAU7E,IAG5CJ,GAaTiE,EAAE2E,oBAAsB3E,EAAE4E,KAAO,SAAUzI,EAAIsC,GAC7C,GAAI7E,GAAI8F,KACNpF,EAAOV,EAAEW,WAYX,OAVW,UAAP4B,GACFA,EAAK7B,EAAKG,UACVgE,EAAKnE,EAAKyG,WAEVxF,EAAWY,EAAI,EAAG2E,GAEP,SAAPrC,EAAeA,EAAKnE,EAAKyG,SACxBxF,EAAWkD,EAAI,EAAG,IAGlB7D,EAAM,GAAIN,GAAKV,GAAIuC,EAAIsC,IAWhCuB,EAAEd,SAAWc,EAAE6E,QAAU7E,EAAE8E,IAAM9E,EAAE+E,OAAS,WAC1C,GAAInL,GAAI8F,KACN1F,EAAI0C,EAAkB9C,GACtBU,EAAOV,EAAEW,WAEX,OAAO2E,GAAStF,EAAGI,GAAKM,EAAK0G,UAAYhH,GAAKM,EAAK2G,UAwJrD,IAAI7D,GAAS,WAGX,QAAS4H,GAAgBpL,EAAGM,GAC1B,GAAI+K,GACFnL,EAAQ,EACRG,EAAIL,EAAEkB,MAER,KAAKlB,EAAIA,EAAEiB,QAASZ,KAClBgL,EAAOrL,EAAEK,GAAKC,EAAIJ,EAClBF,EAAEK,GAAKgL,EAAO7J,EAAO,EACrBtB,EAAQmL,EAAO7J,EAAO,CAKxB,OAFItB,IAAOF,EAAEyB,QAAQvB,GAEdF,EAGT,QAASsL,GAAQC,EAAGC,EAAGC,EAAIC,GACzB,GAAIrL,GAAGgJ,CAEP,IAAIoC,GAAMC,EACRrC,EAAIoC,EAAKC,EAAK,EAAI,OAElB,KAAKrL,EAAIgJ,EAAI,EAAOoC,EAAJpL,EAAQA,IACtB,GAAIkL,EAAElL,IAAMmL,EAAEnL,GAAI,CAChBgJ,EAAIkC,EAAElL,GAAKmL,EAAEnL,GAAK,EAAI,EACtB,OAKN,MAAOgJ,GAGT,QAASnE,GAASqG,EAAGC,EAAGC,GAItB,IAHA,GAAIpL,GAAI,EAGDoL,KACLF,EAAEE,IAAOpL,EACTA,EAAIkL,EAAEE,GAAMD,EAAEC,GAAM,EAAI,EACxBF,EAAEE,GAAMpL,EAAImB,EAAO+J,EAAEE,GAAMD,EAAEC,EAI/B,OAAQF,EAAE,IAAMA,EAAErK,OAAS,GAAIqK,EAAElG,QAGnC,MAAO,UAAUrF,EAAGC,EAAGW,EAAIkH,GACzB,GAAIJ,GAAKtH,EAAGC,EAAGC,EAAGqL,EAAMC,EAAOnC,EAAGoC,EAAIC,EAAKC,EAAMC,EAAMzJ,EAAIK,EAAGqJ,EAAIC,EAAIC,EAAKC,EAAIC,EAC7E3L,EAAOV,EAAEW,YACTgK,EAAO3K,EAAEc,GAAKb,EAAEa,EAAI,EAAI,GACxBN,EAAKR,EAAEG,EACPM,EAAKR,EAAEE,CAGT,KAAKH,EAAEc,EAAG,MAAO,IAAIJ,GAAKV,EAC1B,KAAKC,EAAEa,EAAG,KAAMgB,OAAM4B,EAAe,mBASrC,KAPAtD,EAAIJ,EAAEI,EAAIH,EAAEG,EACZgM,EAAK3L,EAAGS,OACRgL,EAAK1L,EAAGU,OACRuI,EAAI,GAAI/I,GAAKiK,GACbkB,EAAKpC,EAAEtJ,KAGFE,EAAI,EAAGI,EAAGJ,KAAOG,EAAGH,IAAM,MAAQA,CAWvC,IAVII,EAAGJ,IAAMG,EAAGH,IAAM,MAAMD,EAG1BmC,EADQ,MAAN3B,EACGA,EAAKF,EAAKG,UACNiH,EACJlH,GAAMkC,EAAkB9C,GAAK8C,EAAkB7C,IAAM,EAErDW,EAGE,EAAL2B,EAAQ,MAAO,IAAI7B,GAAK,EAO5B,IAJA6B,EAAKA,EAAKlB,EAAW,EAAI,EACzBhB,EAAI,EAGM,GAAN+L,EAMF,IALA9L,EAAI,EACJG,EAAKA,EAAG,GACR8B,KAGY2J,EAAJ7L,GAAUC,IAAMiC,IAAMlC,IAC5BuC,EAAItC,EAAIkB,GAAQhB,EAAGH,IAAM,GACzBwL,EAAGxL,GAAKuC,EAAInC,EAAK,EACjBH,EAAIsC,EAAInC,EAAK,MAIV,CAiBL,IAdAH,EAAIkB,GAAQf,EAAG,GAAK,GAAK,EAErBH,EAAI,IACNG,EAAK2K,EAAgB3K,EAAIH,GACzBE,EAAK4K,EAAgB5K,EAAIF,GACzB8L,EAAK3L,EAAGS,OACRgL,EAAK1L,EAAGU,QAGV+K,EAAKG,EACLN,EAAMtL,EAAGS,MAAM,EAAGmL,GAClBL,EAAOD,EAAI5K,OAGGkL,EAAPL,GAAYD,EAAIC,KAAU,CAEjCM,GAAK5L,EAAGQ,QACRoL,EAAG5K,QAAQ,GACX0K,EAAM1L,EAAG,GAELA,EAAG,IAAMe,EAAO,KAAK2K,CAEzB,GACE7L,GAAI,EAGJoH,EAAM4D,EAAQ7K,EAAIqL,EAAKM,EAAIL,GAGjB,EAANrE,GAGFsE,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOxK,GAAQsK,EAAI,IAAM,IAGhDxL,EAAI0L,EAAOG,EAAM,EAUb7L,EAAI,GACFA,GAAKkB,IAAMlB,EAAIkB,EAAO,GAG1BmK,EAAOP,EAAgB3K,EAAIH,GAC3BsL,EAAQD,EAAKzK,OACb6K,EAAOD,EAAI5K,OAGXwG,EAAM4D,EAAQK,EAAMG,EAAKF,EAAOG,GAGrB,GAAPrE,IACFpH,IAGA4E,EAASyG,EAAWC,EAALQ,EAAaC,EAAK5L,EAAImL,MAO9B,GAALtL,IAAQoH,EAAMpH,EAAI,GACtBqL,EAAOlL,EAAGQ,SAGZ2K,EAAQD,EAAKzK,OACD6K,EAARH,GAAcD,EAAKlK,QAAQ,GAG/ByD,EAAS4G,EAAKH,EAAMI,GAGT,IAAPrE,IACFqE,EAAOD,EAAI5K,OAGXwG,EAAM4D,EAAQ7K,EAAIqL,EAAKM,EAAIL,GAGjB,EAANrE,IACFpH,IAGA4E,EAAS4G,EAAUC,EAALK,EAAYC,EAAK5L,EAAIsL,KAIvCA,EAAOD,EAAI5K,QACM,IAARwG,IACTpH,IACAwL,GAAO,IAITD,EAAGxL,KAAOC,EAGNoH,GAAOoE,EAAI,GACbA,EAAIC,KAAUvL,EAAGyL,IAAO,GAExBH,GAAOtL,EAAGyL,IACVF,EAAO,UAGDE,IAAOC,GAAiB,SAAXJ,EAAI,KAAkBvJ,KAQ/C,MAJKsJ,GAAG,IAAIA,EAAGxG,QAEfoE,EAAErJ,EAAIA,EAECY,EAAMyI,EAAG3B,EAAKlH,EAAKkC,EAAkB2G,GAAK,EAAI7I,MAmtBzDgF,GAAUF,EAAME,GAEhBA,EAAQ,WAAaA,EAAQA,QAAUA,EAGvC5C,EAAM,GAAI4C,GAAQ,GAOG,kBAAV0G,SAAwBA,OAAOC,IACxCD,OAAO,WACL,MAAO1G,KAIiB,mBAAV4G,SAAyBA,OAAOC,QAChDD,OAAOC,QAAU7G,GAIZ9F,IACHA,EAA6B,mBAAR4M,OAAuBA,MAAQA,KAAKA,MAAQA,KAC7DA,KAAOC,SAAS,kBAGtB7M,EAAY8F,QAAUA,IAEvBE"}
Index: de_modules/decimal.js-light/package.json
===================================================================
--- node_modules/decimal.js-light/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-{
-  "name": "decimal.js-light",
-  "description": "An arbitrary-precision Decimal type for JavaScript.",
-  "version": "2.5.1",
-  "keywords": [
-    "arbitrary",
-    "precision",
-    "arithmetic",
-    "big",
-    "number",
-    "decimal",
-    "float",
-    "biginteger",
-    "bigdecimal",
-    "bignumber",
-    "bigint",
-    "bignum"
-  ],
-  "repository" : {
-    "type": "git",
-    "url": "https://github.com/MikeMcl/decimal.js-light.git"
-  },
-  "main": "decimal",
-  "module": "decimal.mjs",
-  "browser": "decimal.js",
-  "types": "decimal.d.ts",
-  "author": {
-    "name": "Michael Mclaughlin",
-    "email": "M8ch88l@gmail.com"
-  },
-  "license": "MIT",
-  "scripts": {
-    "test": "node ./test/test.js",
-    "build": "uglifyjs decimal.js --source-map doc/decimal.js.map -c -m -o decimal.min.js --preamble \"/* decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\""
-  }
-}
Index: de_modules/delaunator/LICENSE
===================================================================
--- node_modules/delaunator/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-ISC License
-
-Copyright (c) 2021, Mapbox
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/delaunator/README.md
===================================================================
--- node_modules/delaunator/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,141 +1,0 @@
-# Delaunator [![Build Status](https://app.travis-ci.com/mapbox/delaunator.svg?branch=main)](https://app.travis-ci.com/mapbox/delaunator) [![](https://img.shields.io/badge/simply-awesome-brightgreen.svg)](https://github.com/mourner/projects) [![](https://badgen.net/bundlephobia/minzip/delaunator)](https://unpkg.com/delaunator)
-
-An incredibly fast and robust JavaScript library for
-[Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) of 2D points.
-
-- [Interactive Demo](https://mapbox.github.io/delaunator/demo.html)
-- [Guide to data structures](https://mapbox.github.io/delaunator/)
-
-<img src="delaunator.png" alt="Delaunay triangulation example" width="600" />
-
-### Projects based on Delaunator
-
-- [d3-delaunay](https://github.com/d3/d3-delaunay) for Voronoi diagrams, search, traversal and rendering (a part of [D3](https://d3js.org)).
-- [d3-geo-voronoi](https://github.com/Fil/d3-geo-voronoi) for Delaunay triangulations and Voronoi diagrams on a sphere (e.g. for geographic locations).
-
-## Example
-
-```js
-const coords = [168,180, 168,178, 168,179, 168,181, 168,183, ...];
-
-const delaunay = new Delaunator(coords);
-console.log(delaunay.triangles);
-// [623, 636, 619,  636, 444, 619, ...]
-```
-
-## Install
-
-Install with NPM (`npm install delaunator`) or Yarn (`yarn add delaunator`), then import as an ES module:
-
-```js
-import Delaunator from 'delaunator';
-```
-
-To use as a module in a browser:
-
-```html
-<script type="module">
-    import Delaunator from 'https://cdn.skypack.dev/delaunator@5.0.0';
-</script>
-```
-
-Or use a browser UMD build that exposes a `Delaunator` global variable:
-
-```html
-<script src="https://unpkg.com/delaunator@5.0.0/delaunator.min.js"></script>
-```
-
-## API Reference
-
-#### new Delaunator(coords)
-
-Constructs a delaunay triangulation object given an array of point coordinates of the form:
-`[x0, y0, x1, y1, ...]` (use a typed array for best performance).
-
-#### Delaunator.from(points[, getX, getY])
-
-Constructs a delaunay triangulation object given an array of points (`[x, y]` by default).
-`getX` and `getY` are optional functions of the form `(point) => value` for custom point formats.
-Duplicate points are skipped.
-
-#### delaunay.triangles
-
-A `Uint32Array` array of triangle vertex indices (each group of three numbers forms a triangle).
-All triangles are directed counterclockwise.
-
-To get the coordinates of all triangles, use:
-
-```js
-for (let i = 0; i < triangles.length; i += 3) {
-    coordinates.push([
-        points[triangles[i]],
-        points[triangles[i + 1]],
-        points[triangles[i + 2]]
-    ]);
-}
-```
-
-#### delaunay.halfedges
-
-A `Int32Array` array of triangle half-edge indices that allows you to traverse the triangulation.
-`i`-th half-edge in the array corresponds to vertex `triangles[i]` the half-edge is coming from.
-`halfedges[i]` is the index of a twin half-edge in an adjacent triangle
-(or `-1` for outer half-edges on the convex hull).
-
-The flat array-based data structures might be counterintuitive,
-but they're one of the key reasons this library is fast.
-
-#### delaunay.hull
-
-A `Uint32Array` array of indices that reference points on the convex hull of the input data, counter-clockwise.
-
-#### delaunay.coords
-
-An array of input coordinates in the form `[x0, y0, x1, y1, ....]`,
-of the type provided in the constructor (or `Float64Array` if you used `Delaunator.from`).
-
-#### delaunay.update()
-
-Updates the triangulation if you modified `delaunay.coords` values in place, avoiding expensive memory allocations.
-Useful for iterative relaxation algorithms such as [Lloyd's](https://en.wikipedia.org/wiki/Lloyd%27s_algorithm).
-
-## Performance
-
-Benchmark results against other Delaunay JS libraries
-(`npm run bench` on Macbook Pro Retina 15" 2017, Node v10.10.0):
-
-&nbsp; | uniform 100k | gauss 100k | grid 100k | degen 100k | uniform 1&nbsp;million | gauss 1&nbsp;million | grid 1&nbsp;million | degen 1&nbsp;million
-:-- | --: | --: | --: | --: | --: | --: | --: | --:
-**delaunator** | 82ms | 61ms | 66ms | 25ms | 1.07s | 950ms | 830ms | 278ms
-[faster&#8209;delaunay](https://github.com/Bathlamos/delaunay-triangulation) | 473ms | 411ms | 272ms | 68ms | 4.27s | 4.62s | 4.3s | 810ms
-[incremental&#8209;delaunay](https://github.com/mikolalysenko/incremental-delaunay) | 547ms | 505ms | 172ms | 528ms | 5.9s | 6.08s | 2.11s | 6.09s
-[d3&#8209;voronoi](https://github.com/d3/d3-voronoi) | 972ms | 909ms | 358ms | 720ms | 15.04s | 13.86s | 5.55s | 11.13s
-[delaunay&#8209;fast](https://github.com/ironwallaby/delaunay) | 3.8s | 4s | 12.57s | timeout | 132s | 138s | 399s | timeout
-[delaunay](https://github.com/darkskyapp/delaunay) | 4.85s | 5.73s | 15.05s | timeout | 156s | 178s | 326s | timeout
-[delaunay&#8209;triangulate](https://github.com/mikolalysenko/delaunay-triangulate) | 2.24s | 2.04s | OOM | 1.51s | OOM | OOM | OOM | OOM
-[cdt2d](https://github.com/mikolalysenko/cdt2d) | 45s | 51s | 118s | 17s | timeout | timeout | timeout | timeout
-
-## Papers
-
-The algorithm is based on ideas from the following papers:
-
-- [A simple sweep-line Delaunay triangulation algorithm](http://www.academicpub.org/jao/paperInfo.aspx?paperid=15630), 2013, Liu Yonghe, Feng Jinming and Shao Yuehong
-- [S-hull: a fast radial sweep-hull routine for Delaunay triangulation](http://www.s-hull.org/paper/s_hull.pdf), 2010, David Sinclair
-- [A faster circle-sweep Delaunay triangulation algorithm](http://cglab.ca/~biniaz/papers/Sweep%20Circle.pdf), 2011, Ahmad Biniaz and Gholamhossein Dastghaibyfard
-
-## Robustness
-
-Delaunator should produce valid output even on highly degenerate input. It does so by depending on [robust-predicates](https://github.com/mourner/robust-predicates), a modern port of Jonathan Shewchuk's robust geometric predicates, an industry standard in computational geometry.
-
-## Ports to other languages
-
-- [delaunator-rs](https://github.com/mourner/delaunator-rs) (Rust)
-- [fogleman/delaunay](https://github.com/fogleman/delaunay) (Go)
-- [delaunator-cpp](https://github.com/abellgithub/delaunator-cpp) (C++)
-- [delaunator-sharp](https://github.com/nol1fe/delaunator-sharp) (C#)
-- [delaunator-ruby](https://github.com/hendrixfan/delaunator-ruby) (Ruby)
-- [Delaunator-Python](https://github.com/HakanSeven12/Delaunator-Python) (Python)
-- [ricardomatias/delaunator](https://github.com/ricardomatias/delaunator) (Kotlin)
-- [delaunator-java](https://github.com/waveware4ai/delaunator-java) (Java)
-- [delaunay-Stata](https://github.com/asjadnaqvi/stata-delaunay-voronoi) (Stata/Mata)
-- [Delaunator.jl](https://github.com/JuliaGeometry/Delaunator.jl) (Julia)
Index: de_modules/delaunator/delaunator.js
===================================================================
--- node_modules/delaunator/delaunator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,753 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
-typeof define === 'function' && define.amd ? define(factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Delaunator = factory());
-})(this, (function () { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const ccwerrboundA = (3 + 16 * epsilon) * epsilon;
-const ccwerrboundB = (2 + 12 * epsilon) * epsilon;
-const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C1len = sum(4, B, 4, u, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C2len = sum(C1len, C1, 4, u, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const Dlen = sum(C2len, C2, 4, u, D);
-
-    return D[Dlen - 1];
-}
-
-function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-const EPSILON = Math.pow(2, -52);
-const EDGE_STACK = new Uint32Array(512);
-
-class Delaunator {
-
-    static from(points, getX = defaultGetX, getY = defaultGetY) {
-        const n = points.length;
-        const coords = new Float64Array(n * 2);
-
-        for (let i = 0; i < n; i++) {
-            const p = points[i];
-            coords[2 * i] = getX(p);
-            coords[2 * i + 1] = getY(p);
-        }
-
-        return new Delaunator(coords);
-    }
-
-    constructor(coords) {
-        const n = coords.length >> 1;
-        if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');
-
-        this.coords = coords;
-
-        // arrays that will store the triangulation graph
-        const maxTriangles = Math.max(2 * n - 5, 0);
-        this._triangles = new Uint32Array(maxTriangles * 3);
-        this._halfedges = new Int32Array(maxTriangles * 3);
-
-        // temporary arrays for tracking the edges of the advancing convex hull
-        this._hashSize = Math.ceil(Math.sqrt(n));
-        this._hullPrev = new Uint32Array(n); // edge to prev edge
-        this._hullNext = new Uint32Array(n); // edge to next edge
-        this._hullTri = new Uint32Array(n); // edge to adjacent triangle
-        this._hullHash = new Int32Array(this._hashSize); // angular edge hash
-
-        // temporary arrays for sorting points
-        this._ids = new Uint32Array(n);
-        this._dists = new Float64Array(n);
-
-        this.update();
-    }
-
-    update() {
-        const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} =  this;
-        const n = coords.length >> 1;
-
-        // populate an array of point indices; calculate input data bbox
-        let minX = Infinity;
-        let minY = Infinity;
-        let maxX = -Infinity;
-        let maxY = -Infinity;
-
-        for (let i = 0; i < n; i++) {
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-            if (x < minX) minX = x;
-            if (y < minY) minY = y;
-            if (x > maxX) maxX = x;
-            if (y > maxY) maxY = y;
-            this._ids[i] = i;
-        }
-        const cx = (minX + maxX) / 2;
-        const cy = (minY + maxY) / 2;
-
-        let i0, i1, i2;
-
-        // pick a seed point close to the center
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist) {
-                i0 = i;
-                minDist = d;
-            }
-        }
-        const i0x = coords[2 * i0];
-        const i0y = coords[2 * i0 + 1];
-
-        // find the point closest to the seed
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            if (i === i0) continue;
-            const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist && d > 0) {
-                i1 = i;
-                minDist = d;
-            }
-        }
-        let i1x = coords[2 * i1];
-        let i1y = coords[2 * i1 + 1];
-
-        let minRadius = Infinity;
-
-        // find the third point which forms the smallest circumcircle with the first two
-        for (let i = 0; i < n; i++) {
-            if (i === i0 || i === i1) continue;
-            const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);
-            if (r < minRadius) {
-                i2 = i;
-                minRadius = r;
-            }
-        }
-        let i2x = coords[2 * i2];
-        let i2y = coords[2 * i2 + 1];
-
-        if (minRadius === Infinity) {
-            // order collinear points by dx (or dy if all x are identical)
-            // and return the list as a hull
-            for (let i = 0; i < n; i++) {
-                this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);
-            }
-            quicksort(this._ids, this._dists, 0, n - 1);
-            const hull = new Uint32Array(n);
-            let j = 0;
-            for (let i = 0, d0 = -Infinity; i < n; i++) {
-                const id = this._ids[i];
-                const d = this._dists[id];
-                if (d > d0) {
-                    hull[j++] = id;
-                    d0 = d;
-                }
-            }
-            this.hull = hull.subarray(0, j);
-            this.triangles = new Uint32Array(0);
-            this.halfedges = new Uint32Array(0);
-            return;
-        }
-
-        // swap the order of the seed points for counter-clockwise orientation
-        if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {
-            const i = i1;
-            const x = i1x;
-            const y = i1y;
-            i1 = i2;
-            i1x = i2x;
-            i1y = i2y;
-            i2 = i;
-            i2x = x;
-            i2y = y;
-        }
-
-        const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);
-        this._cx = center.x;
-        this._cy = center.y;
-
-        for (let i = 0; i < n; i++) {
-            this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);
-        }
-
-        // sort the points by distance from the seed triangle circumcenter
-        quicksort(this._ids, this._dists, 0, n - 1);
-
-        // set up the seed triangle as the starting hull
-        this._hullStart = i0;
-        let hullSize = 3;
-
-        hullNext[i0] = hullPrev[i2] = i1;
-        hullNext[i1] = hullPrev[i0] = i2;
-        hullNext[i2] = hullPrev[i1] = i0;
-
-        hullTri[i0] = 0;
-        hullTri[i1] = 1;
-        hullTri[i2] = 2;
-
-        hullHash.fill(-1);
-        hullHash[this._hashKey(i0x, i0y)] = i0;
-        hullHash[this._hashKey(i1x, i1y)] = i1;
-        hullHash[this._hashKey(i2x, i2y)] = i2;
-
-        this.trianglesLen = 0;
-        this._addTriangle(i0, i1, i2, -1, -1, -1);
-
-        for (let k = 0, xp, yp; k < this._ids.length; k++) {
-            const i = this._ids[k];
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-
-            // skip near-duplicate points
-            if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;
-            xp = x;
-            yp = y;
-
-            // skip seed triangle points
-            if (i === i0 || i === i1 || i === i2) continue;
-
-            // find a visible edge on the convex hull using edge hash
-            let start = 0;
-            for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {
-                start = hullHash[(key + j) % this._hashSize];
-                if (start !== -1 && start !== hullNext[start]) break;
-            }
-
-            start = hullPrev[start];
-            let e = start, q;
-            while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {
-                e = q;
-                if (e === start) {
-                    e = -1;
-                    break;
-                }
-            }
-            if (e === -1) continue; // likely a near-duplicate point; skip it
-
-            // add the first triangle from the point
-            let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);
-
-            // recursively flip triangles from the point until they satisfy the Delaunay condition
-            hullTri[i] = this._legalize(t + 2);
-            hullTri[e] = t; // keep track of boundary triangles on the hull
-            hullSize++;
-
-            // walk forward through the hull, adding more triangles and flipping recursively
-            let n = hullNext[e];
-            while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {
-                t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);
-                hullTri[i] = this._legalize(t + 2);
-                hullNext[n] = n; // mark as removed
-                hullSize--;
-                n = q;
-            }
-
-            // walk backward from the other side, adding more triangles and flipping
-            if (e === start) {
-                while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {
-                    t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);
-                    this._legalize(t + 2);
-                    hullTri[q] = t;
-                    hullNext[e] = e; // mark as removed
-                    hullSize--;
-                    e = q;
-                }
-            }
-
-            // update the hull indices
-            this._hullStart = hullPrev[i] = e;
-            hullNext[e] = hullPrev[n] = i;
-            hullNext[i] = n;
-
-            // save the two new edges in the hash table
-            hullHash[this._hashKey(x, y)] = i;
-            hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;
-        }
-
-        this.hull = new Uint32Array(hullSize);
-        for (let i = 0, e = this._hullStart; i < hullSize; i++) {
-            this.hull[i] = e;
-            e = hullNext[e];
-        }
-
-        // trim typed triangle mesh arrays
-        this.triangles = this._triangles.subarray(0, this.trianglesLen);
-        this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
-    }
-
-    _hashKey(x, y) {
-        return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;
-    }
-
-    _legalize(a) {
-        const {_triangles: triangles, _halfedges: halfedges, coords} = this;
-
-        let i = 0;
-        let ar = 0;
-
-        // recursion eliminated with a fixed-size stack
-        while (true) {
-            const b = halfedges[a];
-
-            /* if the pair of triangles doesn't satisfy the Delaunay condition
-             * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
-             * then do the same check/flip recursively for the new pair of triangles
-             *
-             *           pl                    pl
-             *          /||\                  /  \
-             *       al/ || \bl            al/    \a
-             *        /  ||  \              /      \
-             *       /  a||b  \    flip    /___ar___\
-             *     p0\   ||   /p1   =>   p0\---bl---/p1
-             *        \  ||  /              \      /
-             *       ar\ || /br             b\    /br
-             *          \||/                  \  /
-             *           pr                    pr
-             */
-            const a0 = a - a % 3;
-            ar = a0 + (a + 2) % 3;
-
-            if (b === -1) { // convex hull edge
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-                continue;
-            }
-
-            const b0 = b - b % 3;
-            const al = a0 + (a + 1) % 3;
-            const bl = b0 + (b + 2) % 3;
-
-            const p0 = triangles[ar];
-            const pr = triangles[a];
-            const pl = triangles[al];
-            const p1 = triangles[bl];
-
-            const illegal = inCircle(
-                coords[2 * p0], coords[2 * p0 + 1],
-                coords[2 * pr], coords[2 * pr + 1],
-                coords[2 * pl], coords[2 * pl + 1],
-                coords[2 * p1], coords[2 * p1 + 1]);
-
-            if (illegal) {
-                triangles[a] = p1;
-                triangles[b] = p0;
-
-                const hbl = halfedges[bl];
-
-                // edge swapped on the other side of the hull (rare); fix the halfedge reference
-                if (hbl === -1) {
-                    let e = this._hullStart;
-                    do {
-                        if (this._hullTri[e] === bl) {
-                            this._hullTri[e] = a;
-                            break;
-                        }
-                        e = this._hullPrev[e];
-                    } while (e !== this._hullStart);
-                }
-                this._link(a, hbl);
-                this._link(b, halfedges[ar]);
-                this._link(ar, bl);
-
-                const br = b0 + (b + 1) % 3;
-
-                // don't worry about hitting the cap: it can only happen on extremely degenerate input
-                if (i < EDGE_STACK.length) {
-                    EDGE_STACK[i++] = br;
-                }
-            } else {
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-            }
-        }
-
-        return ar;
-    }
-
-    _link(a, b) {
-        this._halfedges[a] = b;
-        if (b !== -1) this._halfedges[b] = a;
-    }
-
-    // add a new triangle given vertex indices and adjacent half-edge ids
-    _addTriangle(i0, i1, i2, a, b, c) {
-        const t = this.trianglesLen;
-
-        this._triangles[t] = i0;
-        this._triangles[t + 1] = i1;
-        this._triangles[t + 2] = i2;
-
-        this._link(t, a);
-        this._link(t + 1, b);
-        this._link(t + 2, c);
-
-        this.trianglesLen += 3;
-
-        return t;
-    }
-}
-
-// monotonically increases with real angle, but doesn't need expensive trigonometry
-function pseudoAngle(dx, dy) {
-    const p = dx / (Math.abs(dx) + Math.abs(dy));
-    return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]
-}
-
-function dist(ax, ay, bx, by) {
-    const dx = ax - bx;
-    const dy = ay - by;
-    return dx * dx + dy * dy;
-}
-
-function inCircle(ax, ay, bx, by, cx, cy, px, py) {
-    const dx = ax - px;
-    const dy = ay - py;
-    const ex = bx - px;
-    const ey = by - py;
-    const fx = cx - px;
-    const fy = cy - py;
-
-    const ap = dx * dx + dy * dy;
-    const bp = ex * ex + ey * ey;
-    const cp = fx * fx + fy * fy;
-
-    return dx * (ey * cp - bp * fy) -
-           dy * (ex * cp - bp * fx) +
-           ap * (ex * fy - ey * fx) < 0;
-}
-
-function circumradius(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = (ey * bl - dy * cl) * d;
-    const y = (dx * cl - ex * bl) * d;
-
-    return x * x + y * y;
-}
-
-function circumcenter(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = ax + (ey * bl - dy * cl) * d;
-    const y = ay + (dx * cl - ex * bl) * d;
-
-    return {x, y};
-}
-
-function quicksort(ids, dists, left, right) {
-    if (right - left <= 20) {
-        for (let i = left + 1; i <= right; i++) {
-            const temp = ids[i];
-            const tempDist = dists[temp];
-            let j = i - 1;
-            while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];
-            ids[j + 1] = temp;
-        }
-    } else {
-        const median = (left + right) >> 1;
-        let i = left + 1;
-        let j = right;
-        swap(ids, median, i);
-        if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);
-        if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);
-        if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);
-
-        const temp = ids[i];
-        const tempDist = dists[temp];
-        while (true) {
-            do i++; while (dists[ids[i]] < tempDist);
-            do j--; while (dists[ids[j]] > tempDist);
-            if (j < i) break;
-            swap(ids, i, j);
-        }
-        ids[left + 1] = ids[j];
-        ids[j] = temp;
-
-        if (right - i + 1 >= j - left) {
-            quicksort(ids, dists, i, right);
-            quicksort(ids, dists, left, j - 1);
-        } else {
-            quicksort(ids, dists, left, j - 1);
-            quicksort(ids, dists, i, right);
-        }
-    }
-}
-
-function swap(arr, i, j) {
-    const tmp = arr[i];
-    arr[i] = arr[j];
-    arr[j] = tmp;
-}
-
-function defaultGetX(p) {
-    return p[0];
-}
-function defaultGetY(p) {
-    return p[1];
-}
-
-return Delaunator;
-
-}));
Index: de_modules/delaunator/delaunator.min.js
===================================================================
--- node_modules/delaunator/delaunator.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).Delaunator=i()}(this,(function(){"use strict";const t=11102230246251565e-32,i=134217729,s=(3+8*t)*t;function e(t,i,s,e,n){let h,r,l,o,a=i[0],f=e[0],c=0,u=0;f>a==f>-a?(h=a,a=i[++c]):(h=f,f=e[++u]);let _=0;if(c<t&&u<s)for(f>a==f>-a?(r=a+h,l=h-(r-a),a=i[++c]):(r=f+h,l=h-(r-f),f=e[++u]),h=r,0!==l&&(n[_++]=l);c<t&&u<s;)f>a==f>-a?(r=h+a,o=r-h,l=h-(r-o)+(a-o),a=i[++c]):(r=h+f,o=r-h,l=h-(r-o)+(f-o),f=e[++u]),h=r,0!==l&&(n[_++]=l);for(;c<t;)r=h+a,o=r-h,l=h-(r-o)+(a-o),a=i[++c],h=r,0!==l&&(n[_++]=l);for(;u<s;)r=h+f,o=r-h,l=h-(r-o)+(f-o),f=e[++u],h=r,0!==l&&(n[_++]=l);return 0===h&&0!==_||(n[_++]=h),_}function n(t){return new Float64Array(t)}const h=22204460492503146e-32,r=11093356479670487e-47,l=n(4),o=n(8),a=n(12),f=n(16),c=n(4);function u(t,n,u,_,d,g){const y=(n-g)*(u-d),w=(t-d)*(_-g),b=y-w,A=Math.abs(y+w);return Math.abs(b)>=33306690738754716e-32*A?b:-function(t,n,u,_,d,g,y){let w,b,A,k,M,p,x,S,T,z,U,m,K,L,v,F,P,E;const H=t-d,I=u-d,N=n-g,j=_-g;L=H*j,p=i*H,x=p-(p-H),S=H-x,p=i*j,T=p-(p-j),z=j-T,v=S*z-(L-x*T-S*T-x*z),F=N*I,p=i*N,x=p-(p-N),S=N-x,p=i*I,T=p-(p-I),z=I-T,P=S*z-(F-x*T-S*T-x*z),U=v-P,M=v-U,l[0]=v-(U+M)+(M-P),m=L+U,M=m-L,K=L-(m-M)+(U-M),U=K-F,M=K-U,l[1]=K-(U+M)+(M-F),E=m+U,M=E-m,l[2]=m-(E-M)+(U-M),l[3]=E;let q=function(t,i){let s=i[0];for(let e=1;e<t;e++)s+=i[e];return s}(4,l),D=h*y;if(q>=D||-q>=D)return q;if(M=t-H,w=t-(H+M)+(M-d),M=u-I,A=u-(I+M)+(M-d),M=n-N,b=n-(N+M)+(M-g),M=_-j,k=_-(j+M)+(M-g),0===w&&0===b&&0===A&&0===k)return q;if(D=r*y+s*Math.abs(q),q+=H*k+j*w-(N*A+I*b),q>=D||-q>=D)return q;L=w*j,p=i*w,x=p-(p-w),S=w-x,p=i*j,T=p-(p-j),z=j-T,v=S*z-(L-x*T-S*T-x*z),F=b*I,p=i*b,x=p-(p-b),S=b-x,p=i*I,T=p-(p-I),z=I-T,P=S*z-(F-x*T-S*T-x*z),U=v-P,M=v-U,c[0]=v-(U+M)+(M-P),m=L+U,M=m-L,K=L-(m-M)+(U-M),U=K-F,M=K-U,c[1]=K-(U+M)+(M-F),E=m+U,M=E-m,c[2]=m-(E-M)+(U-M),c[3]=E;const B=e(4,l,4,c,o);L=H*k,p=i*H,x=p-(p-H),S=H-x,p=i*k,T=p-(p-k),z=k-T,v=S*z-(L-x*T-S*T-x*z),F=N*A,p=i*N,x=p-(p-N),S=N-x,p=i*A,T=p-(p-A),z=A-T,P=S*z-(F-x*T-S*T-x*z),U=v-P,M=v-U,c[0]=v-(U+M)+(M-P),m=L+U,M=m-L,K=L-(m-M)+(U-M),U=K-F,M=K-U,c[1]=K-(U+M)+(M-F),E=m+U,M=E-m,c[2]=m-(E-M)+(U-M),c[3]=E;const C=e(B,o,4,c,a);L=w*k,p=i*w,x=p-(p-w),S=w-x,p=i*k,T=p-(p-k),z=k-T,v=S*z-(L-x*T-S*T-x*z),F=b*A,p=i*b,x=p-(p-b),S=b-x,p=i*A,T=p-(p-A),z=A-T,P=S*z-(F-x*T-S*T-x*z),U=v-P,M=v-U,c[0]=v-(U+M)+(M-P),m=L+U,M=m-L,K=L-(m-M)+(U-M),U=K-F,M=K-U,c[1]=K-(U+M)+(M-F),E=m+U,M=E-m,c[2]=m-(E-M)+(U-M),c[3]=E;const G=e(C,a,4,c,f);return f[G-1]}(t,n,u,_,d,g,A)}const _=Math.pow(2,-52),d=new Uint32Array(512);class g{static from(t,i=M,s=p){const e=t.length,n=new Float64Array(2*e);for(let h=0;h<e;h++){const e=t[h];n[2*h]=i(e),n[2*h+1]=s(e)}return new g(n)}constructor(t){const i=t.length>>1;if(i>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const s=Math.max(2*i-5,0);this._triangles=new Uint32Array(3*s),this._halfedges=new Int32Array(3*s),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:t,_hullPrev:i,_hullNext:s,_hullTri:e,_hullHash:n}=this,h=t.length>>1;let r=1/0,l=1/0,o=-1/0,a=-1/0;for(let i=0;i<h;i++){const s=t[2*i],e=t[2*i+1];s<r&&(r=s),e<l&&(l=e),s>o&&(o=s),e>a&&(a=e),this._ids[i]=i}const f=(r+o)/2,c=(l+a)/2;let d,g,w;for(let i=0,s=1/0;i<h;i++){const e=y(f,c,t[2*i],t[2*i+1]);e<s&&(d=i,s=e)}const k=t[2*d],M=t[2*d+1];for(let i=0,s=1/0;i<h;i++){if(i===d)continue;const e=y(k,M,t[2*i],t[2*i+1]);e<s&&e>0&&(g=i,s=e)}let p=t[2*g],x=t[2*g+1],S=1/0;for(let i=0;i<h;i++){if(i===d||i===g)continue;const s=b(k,M,p,x,t[2*i],t[2*i+1]);s<S&&(w=i,S=s)}let T=t[2*w],z=t[2*w+1];if(S===1/0){for(let i=0;i<h;i++)this._dists[i]=t[2*i]-t[0]||t[2*i+1]-t[1];A(this._ids,this._dists,0,h-1);const i=new Uint32Array(h);let s=0;for(let t=0,e=-1/0;t<h;t++){const n=this._ids[t],h=this._dists[n];h>e&&(i[s++]=n,e=h)}return this.hull=i.subarray(0,s),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(u(k,M,p,x,T,z)<0){const t=g,i=p,s=x;g=w,p=T,x=z,w=t,T=i,z=s}const U=function(t,i,s,e,n,h){const r=s-t,l=e-i,o=n-t,a=h-i,f=r*r+l*l,c=o*o+a*a,u=.5/(r*a-l*o);return{x:t+(a*f-l*c)*u,y:i+(r*c-o*f)*u}}(k,M,p,x,T,z);this._cx=U.x,this._cy=U.y;for(let i=0;i<h;i++)this._dists[i]=y(t[2*i],t[2*i+1],U.x,U.y);A(this._ids,this._dists,0,h-1),this._hullStart=d;let m=3;s[d]=i[w]=g,s[g]=i[d]=w,s[w]=i[g]=d,e[d]=0,e[g]=1,e[w]=2,n.fill(-1),n[this._hashKey(k,M)]=d,n[this._hashKey(p,x)]=g,n[this._hashKey(T,z)]=w,this.trianglesLen=0,this._addTriangle(d,g,w,-1,-1,-1);for(let h,r,l=0;l<this._ids.length;l++){const o=this._ids[l],a=t[2*o],f=t[2*o+1];if(l>0&&Math.abs(a-h)<=_&&Math.abs(f-r)<=_)continue;if(h=a,r=f,o===d||o===g||o===w)continue;let c=0;for(let t=0,i=this._hashKey(a,f);t<this._hashSize&&(c=n[(i+t)%this._hashSize],-1===c||c===s[c]);t++);c=i[c];let y,b=c;for(;y=s[b],u(a,f,t[2*b],t[2*b+1],t[2*y],t[2*y+1])>=0;)if(b=y,b===c){b=-1;break}if(-1===b)continue;let A=this._addTriangle(b,o,s[b],-1,-1,e[b]);e[o]=this._legalize(A+2),e[b]=A,m++;let k=s[b];for(;y=s[k],u(a,f,t[2*k],t[2*k+1],t[2*y],t[2*y+1])<0;)A=this._addTriangle(k,o,y,e[o],-1,e[k]),e[o]=this._legalize(A+2),s[k]=k,m--,k=y;if(b===c)for(;y=i[b],u(a,f,t[2*y],t[2*y+1],t[2*b],t[2*b+1])<0;)A=this._addTriangle(y,o,b,-1,e[b],e[y]),this._legalize(A+2),e[y]=A,s[b]=b,m--,b=y;this._hullStart=i[o]=b,s[b]=i[k]=o,s[o]=k,n[this._hashKey(a,f)]=o,n[this._hashKey(t[2*b],t[2*b+1])]=b}this.hull=new Uint32Array(m);for(let t=0,i=this._hullStart;t<m;t++)this.hull[t]=i,i=s[i];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,i){return Math.floor(function(t,i){const s=t/(Math.abs(t)+Math.abs(i));return(i>0?3-s:1+s)/4}(t-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:i,_halfedges:s,coords:e}=this;let n=0,h=0;for(;;){const r=s[t],l=t-t%3;if(h=l+(t+2)%3,-1===r){if(0===n)break;t=d[--n];continue}const o=r-r%3,a=l+(t+1)%3,f=o+(r+2)%3,c=i[h],u=i[t],_=i[a],g=i[f];if(w(e[2*c],e[2*c+1],e[2*u],e[2*u+1],e[2*_],e[2*_+1],e[2*g],e[2*g+1])){i[t]=g,i[r]=c;const e=s[f];if(-1===e){let i=this._hullStart;do{if(this._hullTri[i]===f){this._hullTri[i]=t;break}i=this._hullPrev[i]}while(i!==this._hullStart)}this._link(t,e),this._link(r,s[h]),this._link(h,f);const l=o+(r+1)%3;n<d.length&&(d[n++]=l)}else{if(0===n)break;t=d[--n]}}return h}_link(t,i){this._halfedges[t]=i,-1!==i&&(this._halfedges[i]=t)}_addTriangle(t,i,s,e,n,h){const r=this.trianglesLen;return this._triangles[r]=t,this._triangles[r+1]=i,this._triangles[r+2]=s,this._link(r,e),this._link(r+1,n),this._link(r+2,h),this.trianglesLen+=3,r}}function y(t,i,s,e){const n=t-s,h=i-e;return n*n+h*h}function w(t,i,s,e,n,h,r,l){const o=t-r,a=i-l,f=s-r,c=e-l,u=n-r,_=h-l,d=f*f+c*c,g=u*u+_*_;return o*(c*g-d*_)-a*(f*g-d*u)+(o*o+a*a)*(f*_-c*u)<0}function b(t,i,s,e,n,h){const r=s-t,l=e-i,o=n-t,a=h-i,f=r*r+l*l,c=o*o+a*a,u=.5/(r*a-l*o),_=(a*f-l*c)*u,d=(r*c-o*f)*u;return _*_+d*d}function A(t,i,s,e){if(e-s<=20)for(let n=s+1;n<=e;n++){const e=t[n],h=i[e];let r=n-1;for(;r>=s&&i[t[r]]>h;)t[r+1]=t[r--];t[r+1]=e}else{let n=s+1,h=e;k(t,s+e>>1,n),i[t[s]]>i[t[e]]&&k(t,s,e),i[t[n]]>i[t[e]]&&k(t,n,e),i[t[s]]>i[t[n]]&&k(t,s,n);const r=t[n],l=i[r];for(;;){do{n++}while(i[t[n]]<l);do{h--}while(i[t[h]]>l);if(h<n)break;k(t,n,h)}t[s+1]=t[h],t[h]=r,e-n+1>=h-s?(A(t,i,n,e),A(t,i,s,h-1)):(A(t,i,s,h-1),A(t,i,n,e))}}function k(t,i,s){const e=t[i];t[i]=t[s],t[s]=e}function M(t){return t[0]}function p(t){return t[1]}return g}));
Index: de_modules/delaunator/index.js
===================================================================
--- node_modules/delaunator/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,480 +1,0 @@
-
-const EPSILON = Math.pow(2, -52);
-const EDGE_STACK = new Uint32Array(512);
-
-import {orient2d} from 'robust-predicates';
-
-export default class Delaunator {
-
-    static from(points, getX = defaultGetX, getY = defaultGetY) {
-        const n = points.length;
-        const coords = new Float64Array(n * 2);
-
-        for (let i = 0; i < n; i++) {
-            const p = points[i];
-            coords[2 * i] = getX(p);
-            coords[2 * i + 1] = getY(p);
-        }
-
-        return new Delaunator(coords);
-    }
-
-    constructor(coords) {
-        const n = coords.length >> 1;
-        if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');
-
-        this.coords = coords;
-
-        // arrays that will store the triangulation graph
-        const maxTriangles = Math.max(2 * n - 5, 0);
-        this._triangles = new Uint32Array(maxTriangles * 3);
-        this._halfedges = new Int32Array(maxTriangles * 3);
-
-        // temporary arrays for tracking the edges of the advancing convex hull
-        this._hashSize = Math.ceil(Math.sqrt(n));
-        this._hullPrev = new Uint32Array(n); // edge to prev edge
-        this._hullNext = new Uint32Array(n); // edge to next edge
-        this._hullTri = new Uint32Array(n); // edge to adjacent triangle
-        this._hullHash = new Int32Array(this._hashSize); // angular edge hash
-
-        // temporary arrays for sorting points
-        this._ids = new Uint32Array(n);
-        this._dists = new Float64Array(n);
-
-        this.update();
-    }
-
-    update() {
-        const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} =  this;
-        const n = coords.length >> 1;
-
-        // populate an array of point indices; calculate input data bbox
-        let minX = Infinity;
-        let minY = Infinity;
-        let maxX = -Infinity;
-        let maxY = -Infinity;
-
-        for (let i = 0; i < n; i++) {
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-            if (x < minX) minX = x;
-            if (y < minY) minY = y;
-            if (x > maxX) maxX = x;
-            if (y > maxY) maxY = y;
-            this._ids[i] = i;
-        }
-        const cx = (minX + maxX) / 2;
-        const cy = (minY + maxY) / 2;
-
-        let i0, i1, i2;
-
-        // pick a seed point close to the center
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist) {
-                i0 = i;
-                minDist = d;
-            }
-        }
-        const i0x = coords[2 * i0];
-        const i0y = coords[2 * i0 + 1];
-
-        // find the point closest to the seed
-        for (let i = 0, minDist = Infinity; i < n; i++) {
-            if (i === i0) continue;
-            const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);
-            if (d < minDist && d > 0) {
-                i1 = i;
-                minDist = d;
-            }
-        }
-        let i1x = coords[2 * i1];
-        let i1y = coords[2 * i1 + 1];
-
-        let minRadius = Infinity;
-
-        // find the third point which forms the smallest circumcircle with the first two
-        for (let i = 0; i < n; i++) {
-            if (i === i0 || i === i1) continue;
-            const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);
-            if (r < minRadius) {
-                i2 = i;
-                minRadius = r;
-            }
-        }
-        let i2x = coords[2 * i2];
-        let i2y = coords[2 * i2 + 1];
-
-        if (minRadius === Infinity) {
-            // order collinear points by dx (or dy if all x are identical)
-            // and return the list as a hull
-            for (let i = 0; i < n; i++) {
-                this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);
-            }
-            quicksort(this._ids, this._dists, 0, n - 1);
-            const hull = new Uint32Array(n);
-            let j = 0;
-            for (let i = 0, d0 = -Infinity; i < n; i++) {
-                const id = this._ids[i];
-                const d = this._dists[id];
-                if (d > d0) {
-                    hull[j++] = id;
-                    d0 = d;
-                }
-            }
-            this.hull = hull.subarray(0, j);
-            this.triangles = new Uint32Array(0);
-            this.halfedges = new Uint32Array(0);
-            return;
-        }
-
-        // swap the order of the seed points for counter-clockwise orientation
-        if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {
-            const i = i1;
-            const x = i1x;
-            const y = i1y;
-            i1 = i2;
-            i1x = i2x;
-            i1y = i2y;
-            i2 = i;
-            i2x = x;
-            i2y = y;
-        }
-
-        const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);
-        this._cx = center.x;
-        this._cy = center.y;
-
-        for (let i = 0; i < n; i++) {
-            this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);
-        }
-
-        // sort the points by distance from the seed triangle circumcenter
-        quicksort(this._ids, this._dists, 0, n - 1);
-
-        // set up the seed triangle as the starting hull
-        this._hullStart = i0;
-        let hullSize = 3;
-
-        hullNext[i0] = hullPrev[i2] = i1;
-        hullNext[i1] = hullPrev[i0] = i2;
-        hullNext[i2] = hullPrev[i1] = i0;
-
-        hullTri[i0] = 0;
-        hullTri[i1] = 1;
-        hullTri[i2] = 2;
-
-        hullHash.fill(-1);
-        hullHash[this._hashKey(i0x, i0y)] = i0;
-        hullHash[this._hashKey(i1x, i1y)] = i1;
-        hullHash[this._hashKey(i2x, i2y)] = i2;
-
-        this.trianglesLen = 0;
-        this._addTriangle(i0, i1, i2, -1, -1, -1);
-
-        for (let k = 0, xp, yp; k < this._ids.length; k++) {
-            const i = this._ids[k];
-            const x = coords[2 * i];
-            const y = coords[2 * i + 1];
-
-            // skip near-duplicate points
-            if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;
-            xp = x;
-            yp = y;
-
-            // skip seed triangle points
-            if (i === i0 || i === i1 || i === i2) continue;
-
-            // find a visible edge on the convex hull using edge hash
-            let start = 0;
-            for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {
-                start = hullHash[(key + j) % this._hashSize];
-                if (start !== -1 && start !== hullNext[start]) break;
-            }
-
-            start = hullPrev[start];
-            let e = start, q;
-            while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {
-                e = q;
-                if (e === start) {
-                    e = -1;
-                    break;
-                }
-            }
-            if (e === -1) continue; // likely a near-duplicate point; skip it
-
-            // add the first triangle from the point
-            let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);
-
-            // recursively flip triangles from the point until they satisfy the Delaunay condition
-            hullTri[i] = this._legalize(t + 2);
-            hullTri[e] = t; // keep track of boundary triangles on the hull
-            hullSize++;
-
-            // walk forward through the hull, adding more triangles and flipping recursively
-            let n = hullNext[e];
-            while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {
-                t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);
-                hullTri[i] = this._legalize(t + 2);
-                hullNext[n] = n; // mark as removed
-                hullSize--;
-                n = q;
-            }
-
-            // walk backward from the other side, adding more triangles and flipping
-            if (e === start) {
-                while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {
-                    t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);
-                    this._legalize(t + 2);
-                    hullTri[q] = t;
-                    hullNext[e] = e; // mark as removed
-                    hullSize--;
-                    e = q;
-                }
-            }
-
-            // update the hull indices
-            this._hullStart = hullPrev[i] = e;
-            hullNext[e] = hullPrev[n] = i;
-            hullNext[i] = n;
-
-            // save the two new edges in the hash table
-            hullHash[this._hashKey(x, y)] = i;
-            hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;
-        }
-
-        this.hull = new Uint32Array(hullSize);
-        for (let i = 0, e = this._hullStart; i < hullSize; i++) {
-            this.hull[i] = e;
-            e = hullNext[e];
-        }
-
-        // trim typed triangle mesh arrays
-        this.triangles = this._triangles.subarray(0, this.trianglesLen);
-        this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
-    }
-
-    _hashKey(x, y) {
-        return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;
-    }
-
-    _legalize(a) {
-        const {_triangles: triangles, _halfedges: halfedges, coords} = this;
-
-        let i = 0;
-        let ar = 0;
-
-        // recursion eliminated with a fixed-size stack
-        while (true) {
-            const b = halfedges[a];
-
-            /* if the pair of triangles doesn't satisfy the Delaunay condition
-             * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
-             * then do the same check/flip recursively for the new pair of triangles
-             *
-             *           pl                    pl
-             *          /||\                  /  \
-             *       al/ || \bl            al/    \a
-             *        /  ||  \              /      \
-             *       /  a||b  \    flip    /___ar___\
-             *     p0\   ||   /p1   =>   p0\---bl---/p1
-             *        \  ||  /              \      /
-             *       ar\ || /br             b\    /br
-             *          \||/                  \  /
-             *           pr                    pr
-             */
-            const a0 = a - a % 3;
-            ar = a0 + (a + 2) % 3;
-
-            if (b === -1) { // convex hull edge
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-                continue;
-            }
-
-            const b0 = b - b % 3;
-            const al = a0 + (a + 1) % 3;
-            const bl = b0 + (b + 2) % 3;
-
-            const p0 = triangles[ar];
-            const pr = triangles[a];
-            const pl = triangles[al];
-            const p1 = triangles[bl];
-
-            const illegal = inCircle(
-                coords[2 * p0], coords[2 * p0 + 1],
-                coords[2 * pr], coords[2 * pr + 1],
-                coords[2 * pl], coords[2 * pl + 1],
-                coords[2 * p1], coords[2 * p1 + 1]);
-
-            if (illegal) {
-                triangles[a] = p1;
-                triangles[b] = p0;
-
-                const hbl = halfedges[bl];
-
-                // edge swapped on the other side of the hull (rare); fix the halfedge reference
-                if (hbl === -1) {
-                    let e = this._hullStart;
-                    do {
-                        if (this._hullTri[e] === bl) {
-                            this._hullTri[e] = a;
-                            break;
-                        }
-                        e = this._hullPrev[e];
-                    } while (e !== this._hullStart);
-                }
-                this._link(a, hbl);
-                this._link(b, halfedges[ar]);
-                this._link(ar, bl);
-
-                const br = b0 + (b + 1) % 3;
-
-                // don't worry about hitting the cap: it can only happen on extremely degenerate input
-                if (i < EDGE_STACK.length) {
-                    EDGE_STACK[i++] = br;
-                }
-            } else {
-                if (i === 0) break;
-                a = EDGE_STACK[--i];
-            }
-        }
-
-        return ar;
-    }
-
-    _link(a, b) {
-        this._halfedges[a] = b;
-        if (b !== -1) this._halfedges[b] = a;
-    }
-
-    // add a new triangle given vertex indices and adjacent half-edge ids
-    _addTriangle(i0, i1, i2, a, b, c) {
-        const t = this.trianglesLen;
-
-        this._triangles[t] = i0;
-        this._triangles[t + 1] = i1;
-        this._triangles[t + 2] = i2;
-
-        this._link(t, a);
-        this._link(t + 1, b);
-        this._link(t + 2, c);
-
-        this.trianglesLen += 3;
-
-        return t;
-    }
-}
-
-// monotonically increases with real angle, but doesn't need expensive trigonometry
-function pseudoAngle(dx, dy) {
-    const p = dx / (Math.abs(dx) + Math.abs(dy));
-    return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]
-}
-
-function dist(ax, ay, bx, by) {
-    const dx = ax - bx;
-    const dy = ay - by;
-    return dx * dx + dy * dy;
-}
-
-function inCircle(ax, ay, bx, by, cx, cy, px, py) {
-    const dx = ax - px;
-    const dy = ay - py;
-    const ex = bx - px;
-    const ey = by - py;
-    const fx = cx - px;
-    const fy = cy - py;
-
-    const ap = dx * dx + dy * dy;
-    const bp = ex * ex + ey * ey;
-    const cp = fx * fx + fy * fy;
-
-    return dx * (ey * cp - bp * fy) -
-           dy * (ex * cp - bp * fx) +
-           ap * (ex * fy - ey * fx) < 0;
-}
-
-function circumradius(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = (ey * bl - dy * cl) * d;
-    const y = (dx * cl - ex * bl) * d;
-
-    return x * x + y * y;
-}
-
-function circumcenter(ax, ay, bx, by, cx, cy) {
-    const dx = bx - ax;
-    const dy = by - ay;
-    const ex = cx - ax;
-    const ey = cy - ay;
-
-    const bl = dx * dx + dy * dy;
-    const cl = ex * ex + ey * ey;
-    const d = 0.5 / (dx * ey - dy * ex);
-
-    const x = ax + (ey * bl - dy * cl) * d;
-    const y = ay + (dx * cl - ex * bl) * d;
-
-    return {x, y};
-}
-
-function quicksort(ids, dists, left, right) {
-    if (right - left <= 20) {
-        for (let i = left + 1; i <= right; i++) {
-            const temp = ids[i];
-            const tempDist = dists[temp];
-            let j = i - 1;
-            while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];
-            ids[j + 1] = temp;
-        }
-    } else {
-        const median = (left + right) >> 1;
-        let i = left + 1;
-        let j = right;
-        swap(ids, median, i);
-        if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);
-        if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);
-        if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);
-
-        const temp = ids[i];
-        const tempDist = dists[temp];
-        while (true) {
-            do i++; while (dists[ids[i]] < tempDist);
-            do j--; while (dists[ids[j]] > tempDist);
-            if (j < i) break;
-            swap(ids, i, j);
-        }
-        ids[left + 1] = ids[j];
-        ids[j] = temp;
-
-        if (right - i + 1 >= j - left) {
-            quicksort(ids, dists, i, right);
-            quicksort(ids, dists, left, j - 1);
-        } else {
-            quicksort(ids, dists, left, j - 1);
-            quicksort(ids, dists, i, right);
-        }
-    }
-}
-
-function swap(arr, i, j) {
-    const tmp = arr[i];
-    arr[i] = arr[j];
-    arr[j] = tmp;
-}
-
-function defaultGetX(p) {
-    return p[0];
-}
-function defaultGetY(p) {
-    return p[1];
-}
Index: de_modules/delaunator/package.json
===================================================================
--- node_modules/delaunator/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-{
-  "name": "delaunator",
-  "version": "5.0.1",
-  "description": "An incredibly fast JavaScript library for Delaunay triangulation of 2D points",
-  "main": "index.js",
-  "module": "index.js",
-  "type": "module",
-  "jsdelivr": "delaunator.min.js",
-  "unpkg": "delaunator.min.js",
-  "sideEffects": false,
-  "dependencies": {
-    "robust-predicates": "^3.0.2"
-  },
-  "devDependencies": {
-    "@rollup/plugin-node-resolve": "^15.2.3",
-    "@rollup/plugin-terser": "^0.4.4",
-    "eslint": "^8.56.0",
-    "eslint-config-mourner": "^3.0.0",
-    "rollup": "^4.9.6"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mapbox/delaunator.git"
-  },
-  "scripts": {
-    "lint": "eslint index.js test/test.js bench.js rollup.config.js docs/diagrams.js",
-    "pretest": "npm run lint",
-    "test": "node --test-reporter spec test/test.js",
-    "cov": "node --experimental-test-coverage test/test.js",
-    "bench": "node bench.js",
-    "build": "rollup -c",
-    "start": "rollup -cw",
-    "prepublishOnly": "npm test && npm run build"
-  },
-  "files": [
-    "index.js",
-    "delaunator.js",
-    "delaunator.min.js"
-  ],
-  "eslintConfig": {
-    "extends": "mourner",
-    "rules": {
-      "no-sequences": 0
-    },
-    "parserOptions": {
-      "ecmaVersion": 2020
-    }
-  },
-  "keywords": [
-    "delaunay triangulation",
-    "computational geometry",
-    "algorithms"
-  ],
-  "author": "Vladimir Agafonkin",
-  "license": "ISC"
-}
Index: de_modules/electron-to-chromium/LICENSE
===================================================================
--- node_modules/electron-to-chromium/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-Copyright 2018 Kilian Valkhof
-
-Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Index: de_modules/electron-to-chromium/README.md
===================================================================
--- node_modules/electron-to-chromium/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-### Made by [@kilianvalkhof](https://twitter.com/kilianvalkhof)
-
-#### Other projects:
-
-- 💻 [Polypane](https://polypane.app) - Develop responsive websites and apps twice as fast on multiple screens at once
-- 🖌️ [Superposition](https://superposition.design) - Kickstart your design system by extracting design tokens from your website
-- 🗒️ [FromScratch](https://fromscratch.rocks) - A smart but simple autosaving scratchpad
-
----
-
-# Electron-to-Chromium [![npm](https://img.shields.io/npm/v/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![travis](https://img.shields.io/travis/Kilian/electron-to-chromium/master.svg)](https://travis-ci.org/Kilian/electron-to-chromium) [![npm-downloads](https://img.shields.io/npm/dm/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![codecov](https://codecov.io/gh/Kilian/electron-to-chromium/branch/master/graph/badge.svg)](https://codecov.io/gh/Kilian/electron-to-chromium)[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_shield)
-
-This repository provides a mapping of Electron versions to the Chromium version that it uses.
-
-This package is used in [Browserslist](https://github.com/ai/browserslist), so you can use e.g. `electron >= 1.4` in [Autoprefixer](https://github.com/postcss/autoprefixer), [Stylelint](https://github.com/stylelint/stylelint), [babel-preset-env](https://github.com/babel/babel-preset-env) and [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat).
-
-**Supported by:**
-
-  <a href="https://m.do.co/c/bb22ea58e765">
-    <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
-  </a>
-
-
-## Install
-Install using `npm install electron-to-chromium`.
-
-## Usage
-To include Electron-to-Chromium, require it:
-
-```js
-var e2c = require('electron-to-chromium');
-```
-
-### Properties
-The Electron-to-Chromium object has 4 properties to use:
-
-#### `versions`
-An object of key-value pairs with a _major_ Electron version as the key, and the corresponding major Chromium version as the value.
-
-```js
-var versions = e2c.versions;
-console.log(versions['1.4']);
-// returns "53"
-```
-
-#### `fullVersions`
-An object of key-value pairs with a Electron version as the key, and the corresponding full Chromium version as the value.
-
-```js
-var versions = e2c.fullVersions;
-console.log(versions['1.4.11']);
-// returns "53.0.2785.143"
-```
-
-#### `chromiumVersions`
-An object of key-value pairs with a _major_ Chromium version as the key, and the corresponding major Electron version as the value.
-
-```js
-var versions = e2c.chromiumVersions;
-console.log(versions['54']);
-// returns "1.4"
-```
-
-#### `fullChromiumVersions`
-An object of key-value pairs with a Chromium version as the key, and an array of the corresponding major Electron versions as the value.
-
-```js
-var versions = e2c.fullChromiumVersions;
-console.log(versions['54.0.2840.101']);
-// returns ["1.5.1", "1.5.0"]
-```
-### Functions
-
-#### `electronToChromium(query)`
-Arguments:
-* Query: string or number, required. A major or full Electron version.
-
-A function that returns the corresponding Chromium version for a given Electron function. Returns a string.
-
-If you provide it with a major Electron version, it will return a major Chromium version:
-
-```js
-var chromeVersion = e2c.electronToChromium('1.4');
-// chromeVersion is "53"
-```
-
-If you provide it with a full Electron version, it will return the full Chromium version.
-
-```js
-var chromeVersion = e2c.electronToChromium('1.4.11');
-// chromeVersion is "53.0.2785.143"
-```
-
-If a query does not match a Chromium version, it will return `undefined`.
-
-```js
-var chromeVersion = e2c.electronToChromium('9000');
-// chromeVersion is undefined
-```
-
-#### `chromiumToElectron(query)`
-Arguments:
-* Query: string or number, required. A major or full Chromium version.
-
-Returns a string with the corresponding Electron version for a given Chromium query.
-
-If you provide it with a major Chromium version, it will return a major Electron version:
-
-```js
-var electronVersion = e2c.chromiumToElectron('54');
-// electronVersion is "1.4"
-```
-
-If you provide it with a full Chrome version, it will return an array of full Electron versions.
-
-```js
-var electronVersions = e2c.chromiumToElectron('56.0.2924.87');
-// electronVersions is ["1.6.3", "1.6.2", "1.6.1", "1.6.0"]
-```
-
-If a query does not match an Electron version, it will return `undefined`.
-
-```js
-var electronVersion = e2c.chromiumToElectron('10');
-// electronVersion is undefined
-```
-
-#### `electronToBrowserList(query)` **DEPRECATED**
-Arguments:
-* Query: string or number, required. A major Electron version.
-
-_**Deprecated**: Browserlist already includes electron-to-chromium._
-
-A function that returns a [Browserslist](https://github.com/ai/browserslist) query that matches the given major Electron version. Returns a string.
-
-If you provide it with a major Electron version, it will return a Browserlist query string that matches the Chromium capabilities:
-
-```js
-var query = e2c.electronToBrowserList('1.4');
-// query is "Chrome >= 53"
-```
-
-If a query does not match a Chromium version, it will return `undefined`.
-
-```js
-var query = e2c.electronToBrowserList('9000');
-// query is undefined
-```
-
-### Importing just versions, fullVersions, chromiumVersions and fullChromiumVersions
-All lists can be imported on their own, if file size is a concern.
-
-#### `versions`
-
-```js
-var versions = require('electron-to-chromium/versions');
-```
-
-#### `fullVersions`
-
-```js
-var fullVersions = require('electron-to-chromium/full-versions');
-```
-
-#### `chromiumVersions`
-
-```js
-var chromiumVersions = require('electron-to-chromium/chromium-versions');
-```
-
-#### `fullChromiumVersions`
-
-```js
-var fullChromiumVersions = require('electron-to-chromium/full-chromium-versions');
-```
-
-## Updating
-This package will be updated with each new Electron release.
-
-To update the list, run `npm run build.js`. Requires internet access as it downloads from the canonical list of Electron versions.
-
-To verify correct behaviour, run `npm test`.
-
-
-## License
-[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_large)
Index: de_modules/electron-to-chromium/chromium-versions.js
===================================================================
--- node_modules/electron-to-chromium/chromium-versions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-module.exports = {
-	"39": "0.20",
-	"40": "0.21",
-	"41": "0.21",
-	"42": "0.25",
-	"43": "0.27",
-	"44": "0.30",
-	"45": "0.31",
-	"47": "0.36",
-	"49": "0.37",
-	"50": "1.1",
-	"51": "1.2",
-	"52": "1.3",
-	"53": "1.4",
-	"54": "1.4",
-	"56": "1.6",
-	"58": "1.7",
-	"59": "1.8",
-	"61": "2.0",
-	"66": "3.0",
-	"69": "4.0",
-	"72": "5.0",
-	"73": "5.0",
-	"76": "6.0",
-	"78": "7.0",
-	"79": "8.0",
-	"80": "8.0",
-	"82": "9.0",
-	"83": "9.0",
-	"84": "10.0",
-	"85": "10.0",
-	"86": "11.0",
-	"87": "11.0",
-	"89": "12.0",
-	"90": "13.0",
-	"91": "13.0",
-	"92": "14.0",
-	"93": "14.0",
-	"94": "15.0",
-	"95": "16.0",
-	"96": "16.0",
-	"98": "17.0",
-	"99": "18.0",
-	"100": "18.0",
-	"102": "19.0",
-	"103": "20.0",
-	"104": "20.0",
-	"105": "21.0",
-	"106": "21.0",
-	"107": "22.0",
-	"108": "22.0",
-	"110": "23.0",
-	"111": "24.0",
-	"112": "24.0",
-	"114": "25.0",
-	"116": "26.0",
-	"118": "27.0",
-	"119": "28.0",
-	"120": "28.0",
-	"121": "29.0",
-	"122": "29.0",
-	"123": "30.0",
-	"124": "30.0",
-	"125": "31.0",
-	"126": "31.0",
-	"127": "32.0",
-	"128": "32.0",
-	"129": "33.0",
-	"130": "33.0",
-	"131": "34.0",
-	"132": "34.0",
-	"133": "35.0",
-	"134": "35.0",
-	"135": "36.0",
-	"136": "36.0",
-	"137": "37.0",
-	"138": "37.0",
-	"139": "38.0",
-	"140": "38.0",
-	"141": "39.0",
-	"142": "39.0",
-	"143": "40.0",
-	"144": "40.0"
-};
Index: de_modules/electron-to-chromium/chromium-versions.json
===================================================================
--- node_modules/electron-to-chromium/chromium-versions.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"39":"0.20","40":"0.21","41":"0.21","42":"0.25","43":"0.27","44":"0.30","45":"0.31","47":"0.36","49":"0.37","50":"1.1","51":"1.2","52":"1.3","53":"1.4","54":"1.4","56":"1.6","58":"1.7","59":"1.8","61":"2.0","66":"3.0","69":"4.0","72":"5.0","73":"5.0","76":"6.0","78":"7.0","79":"8.0","80":"8.0","82":"9.0","83":"9.0","84":"10.0","85":"10.0","86":"11.0","87":"11.0","89":"12.0","90":"13.0","91":"13.0","92":"14.0","93":"14.0","94":"15.0","95":"16.0","96":"16.0","98":"17.0","99":"18.0","100":"18.0","102":"19.0","103":"20.0","104":"20.0","105":"21.0","106":"21.0","107":"22.0","108":"22.0","110":"23.0","111":"24.0","112":"24.0","114":"25.0","116":"26.0","118":"27.0","119":"28.0","120":"28.0","121":"29.0","122":"29.0","123":"30.0","124":"30.0","125":"31.0","126":"31.0","127":"32.0","128":"32.0","129":"33.0","130":"33.0","131":"34.0","132":"34.0","133":"35.0","134":"35.0","135":"36.0","136":"36.0","137":"37.0","138":"37.0","139":"38.0","140":"38.0","141":"39.0","142":"39.0","143":"40.0","144":"40.0"}
Index: de_modules/electron-to-chromium/full-chromium-versions.js
===================================================================
--- node_modules/electron-to-chromium/full-chromium-versions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2632 +1,0 @@
-module.exports = {
-	"39.0.2171.65": [
-		"0.20.0",
-		"0.20.1",
-		"0.20.2",
-		"0.20.3",
-		"0.20.4",
-		"0.20.5",
-		"0.20.6",
-		"0.20.7",
-		"0.20.8"
-	],
-	"40.0.2214.91": [
-		"0.21.0",
-		"0.21.1",
-		"0.21.2"
-	],
-	"41.0.2272.76": [
-		"0.21.3",
-		"0.22.1",
-		"0.22.2",
-		"0.22.3",
-		"0.23.0",
-		"0.24.0"
-	],
-	"42.0.2311.107": [
-		"0.25.0",
-		"0.25.1",
-		"0.25.2",
-		"0.25.3",
-		"0.26.0",
-		"0.26.1",
-		"0.27.0",
-		"0.27.1"
-	],
-	"43.0.2357.65": [
-		"0.27.2",
-		"0.27.3",
-		"0.28.0",
-		"0.28.1",
-		"0.28.2",
-		"0.28.3",
-		"0.29.1",
-		"0.29.2"
-	],
-	"44.0.2403.125": [
-		"0.30.4",
-		"0.31.0"
-	],
-	"45.0.2454.85": [
-		"0.31.2",
-		"0.32.2",
-		"0.32.3",
-		"0.33.0",
-		"0.33.1",
-		"0.33.2",
-		"0.33.3",
-		"0.33.4",
-		"0.33.6",
-		"0.33.7",
-		"0.33.8",
-		"0.33.9",
-		"0.34.0",
-		"0.34.1",
-		"0.34.2",
-		"0.34.3",
-		"0.34.4",
-		"0.35.1",
-		"0.35.2",
-		"0.35.3",
-		"0.35.4",
-		"0.35.5"
-	],
-	"47.0.2526.73": [
-		"0.36.0",
-		"0.36.2",
-		"0.36.3",
-		"0.36.4"
-	],
-	"47.0.2526.110": [
-		"0.36.5",
-		"0.36.6",
-		"0.36.7",
-		"0.36.8",
-		"0.36.9",
-		"0.36.10",
-		"0.36.11",
-		"0.36.12"
-	],
-	"49.0.2623.75": [
-		"0.37.0",
-		"0.37.1",
-		"0.37.3",
-		"0.37.4",
-		"0.37.5",
-		"0.37.6",
-		"0.37.7",
-		"0.37.8",
-		"1.0.0",
-		"1.0.1",
-		"1.0.2"
-	],
-	"50.0.2661.102": [
-		"1.1.0",
-		"1.1.1",
-		"1.1.2",
-		"1.1.3"
-	],
-	"51.0.2704.63": [
-		"1.2.0",
-		"1.2.1"
-	],
-	"51.0.2704.84": [
-		"1.2.2",
-		"1.2.3"
-	],
-	"51.0.2704.103": [
-		"1.2.4",
-		"1.2.5"
-	],
-	"51.0.2704.106": [
-		"1.2.6",
-		"1.2.7",
-		"1.2.8"
-	],
-	"52.0.2743.82": [
-		"1.3.0",
-		"1.3.1",
-		"1.3.2",
-		"1.3.3",
-		"1.3.4",
-		"1.3.5",
-		"1.3.6",
-		"1.3.7",
-		"1.3.9",
-		"1.3.10",
-		"1.3.13",
-		"1.3.14",
-		"1.3.15"
-	],
-	"53.0.2785.113": [
-		"1.4.0",
-		"1.4.1",
-		"1.4.2",
-		"1.4.3",
-		"1.4.4",
-		"1.4.5"
-	],
-	"53.0.2785.143": [
-		"1.4.6",
-		"1.4.7",
-		"1.4.8",
-		"1.4.10",
-		"1.4.11",
-		"1.4.13",
-		"1.4.14",
-		"1.4.15",
-		"1.4.16"
-	],
-	"54.0.2840.51": [
-		"1.4.12"
-	],
-	"54.0.2840.101": [
-		"1.5.0",
-		"1.5.1"
-	],
-	"56.0.2924.87": [
-		"1.6.0",
-		"1.6.1",
-		"1.6.2",
-		"1.6.3",
-		"1.6.4",
-		"1.6.5",
-		"1.6.6",
-		"1.6.7",
-		"1.6.8",
-		"1.6.9",
-		"1.6.10",
-		"1.6.11",
-		"1.6.12",
-		"1.6.13",
-		"1.6.14",
-		"1.6.15",
-		"1.6.16",
-		"1.6.17",
-		"1.6.18"
-	],
-	"58.0.3029.110": [
-		"1.7.0",
-		"1.7.1",
-		"1.7.2",
-		"1.7.3",
-		"1.7.4",
-		"1.7.5",
-		"1.7.6",
-		"1.7.7",
-		"1.7.8",
-		"1.7.9",
-		"1.7.10",
-		"1.7.11",
-		"1.7.12",
-		"1.7.13",
-		"1.7.14",
-		"1.7.15",
-		"1.7.16"
-	],
-	"59.0.3071.115": [
-		"1.8.0",
-		"1.8.1",
-		"1.8.2-beta.1",
-		"1.8.2-beta.2",
-		"1.8.2-beta.3",
-		"1.8.2-beta.4",
-		"1.8.2-beta.5",
-		"1.8.2",
-		"1.8.3",
-		"1.8.4",
-		"1.8.5",
-		"1.8.6",
-		"1.8.7",
-		"1.8.8"
-	],
-	"61.0.3163.100": [
-		"2.0.0-beta.1",
-		"2.0.0-beta.2",
-		"2.0.0-beta.3",
-		"2.0.0-beta.4",
-		"2.0.0-beta.5",
-		"2.0.0-beta.6",
-		"2.0.0-beta.7",
-		"2.0.0-beta.8",
-		"2.0.0",
-		"2.0.1",
-		"2.0.2",
-		"2.0.3",
-		"2.0.4",
-		"2.0.5",
-		"2.0.6",
-		"2.0.7",
-		"2.0.8",
-		"2.0.9",
-		"2.0.10",
-		"2.0.11",
-		"2.0.12",
-		"2.0.13",
-		"2.0.14",
-		"2.0.15",
-		"2.0.16",
-		"2.0.17",
-		"2.0.18",
-		"2.1.0-unsupported.20180809"
-	],
-	"66.0.3359.181": [
-		"3.0.0-beta.1",
-		"3.0.0-beta.2",
-		"3.0.0-beta.3",
-		"3.0.0-beta.4",
-		"3.0.0-beta.5",
-		"3.0.0-beta.6",
-		"3.0.0-beta.7",
-		"3.0.0-beta.8",
-		"3.0.0-beta.9",
-		"3.0.0-beta.10",
-		"3.0.0-beta.11",
-		"3.0.0-beta.12",
-		"3.0.0-beta.13",
-		"3.0.0",
-		"3.0.1",
-		"3.0.2",
-		"3.0.3",
-		"3.0.4",
-		"3.0.5",
-		"3.0.6",
-		"3.0.7",
-		"3.0.8",
-		"3.0.9",
-		"3.0.10",
-		"3.0.11",
-		"3.0.12",
-		"3.0.13",
-		"3.0.14",
-		"3.0.15",
-		"3.0.16",
-		"3.1.0-beta.1",
-		"3.1.0-beta.2",
-		"3.1.0-beta.3",
-		"3.1.0-beta.4",
-		"3.1.0-beta.5",
-		"3.1.0",
-		"3.1.1",
-		"3.1.2",
-		"3.1.3",
-		"3.1.4",
-		"3.1.5",
-		"3.1.6",
-		"3.1.7",
-		"3.1.8",
-		"3.1.9",
-		"3.1.10",
-		"3.1.11",
-		"3.1.12",
-		"3.1.13"
-	],
-	"69.0.3497.106": [
-		"4.0.0-beta.1",
-		"4.0.0-beta.2",
-		"4.0.0-beta.3",
-		"4.0.0-beta.4",
-		"4.0.0-beta.5",
-		"4.0.0-beta.6",
-		"4.0.0-beta.7",
-		"4.0.0-beta.8",
-		"4.0.0-beta.9",
-		"4.0.0-beta.10",
-		"4.0.0-beta.11",
-		"4.0.0",
-		"4.0.1",
-		"4.0.2",
-		"4.0.3",
-		"4.0.4",
-		"4.0.5",
-		"4.0.6"
-	],
-	"69.0.3497.128": [
-		"4.0.7",
-		"4.0.8",
-		"4.1.0",
-		"4.1.1",
-		"4.1.2",
-		"4.1.3",
-		"4.1.4",
-		"4.1.5",
-		"4.2.0",
-		"4.2.1",
-		"4.2.2",
-		"4.2.3",
-		"4.2.4",
-		"4.2.5",
-		"4.2.6",
-		"4.2.7",
-		"4.2.8",
-		"4.2.9",
-		"4.2.10",
-		"4.2.11",
-		"4.2.12"
-	],
-	"72.0.3626.52": [
-		"5.0.0-beta.1",
-		"5.0.0-beta.2"
-	],
-	"73.0.3683.27": [
-		"5.0.0-beta.3"
-	],
-	"73.0.3683.54": [
-		"5.0.0-beta.4"
-	],
-	"73.0.3683.61": [
-		"5.0.0-beta.5"
-	],
-	"73.0.3683.84": [
-		"5.0.0-beta.6"
-	],
-	"73.0.3683.94": [
-		"5.0.0-beta.7"
-	],
-	"73.0.3683.104": [
-		"5.0.0-beta.8"
-	],
-	"73.0.3683.117": [
-		"5.0.0-beta.9"
-	],
-	"73.0.3683.119": [
-		"5.0.0"
-	],
-	"73.0.3683.121": [
-		"5.0.1",
-		"5.0.2",
-		"5.0.3",
-		"5.0.4",
-		"5.0.5",
-		"5.0.6",
-		"5.0.7",
-		"5.0.8",
-		"5.0.9",
-		"5.0.10",
-		"5.0.11",
-		"5.0.12",
-		"5.0.13"
-	],
-	"76.0.3774.1": [
-		"6.0.0-beta.1"
-	],
-	"76.0.3783.1": [
-		"6.0.0-beta.2",
-		"6.0.0-beta.3",
-		"6.0.0-beta.4"
-	],
-	"76.0.3805.4": [
-		"6.0.0-beta.5"
-	],
-	"76.0.3809.3": [
-		"6.0.0-beta.6"
-	],
-	"76.0.3809.22": [
-		"6.0.0-beta.7"
-	],
-	"76.0.3809.26": [
-		"6.0.0-beta.8",
-		"6.0.0-beta.9"
-	],
-	"76.0.3809.37": [
-		"6.0.0-beta.10"
-	],
-	"76.0.3809.42": [
-		"6.0.0-beta.11"
-	],
-	"76.0.3809.54": [
-		"6.0.0-beta.12"
-	],
-	"76.0.3809.60": [
-		"6.0.0-beta.13"
-	],
-	"76.0.3809.68": [
-		"6.0.0-beta.14"
-	],
-	"76.0.3809.74": [
-		"6.0.0-beta.15"
-	],
-	"76.0.3809.88": [
-		"6.0.0"
-	],
-	"76.0.3809.102": [
-		"6.0.1"
-	],
-	"76.0.3809.110": [
-		"6.0.2"
-	],
-	"76.0.3809.126": [
-		"6.0.3"
-	],
-	"76.0.3809.131": [
-		"6.0.4"
-	],
-	"76.0.3809.136": [
-		"6.0.5"
-	],
-	"76.0.3809.138": [
-		"6.0.6"
-	],
-	"76.0.3809.139": [
-		"6.0.7"
-	],
-	"76.0.3809.146": [
-		"6.0.8",
-		"6.0.9",
-		"6.0.10",
-		"6.0.11",
-		"6.0.12",
-		"6.1.0",
-		"6.1.1",
-		"6.1.2",
-		"6.1.3",
-		"6.1.4",
-		"6.1.5",
-		"6.1.6",
-		"6.1.7",
-		"6.1.8",
-		"6.1.9",
-		"6.1.10",
-		"6.1.11",
-		"6.1.12"
-	],
-	"78.0.3866.0": [
-		"7.0.0-beta.1",
-		"7.0.0-beta.2",
-		"7.0.0-beta.3"
-	],
-	"78.0.3896.6": [
-		"7.0.0-beta.4"
-	],
-	"78.0.3905.1": [
-		"7.0.0-beta.5",
-		"7.0.0-beta.6",
-		"7.0.0-beta.7",
-		"7.0.0"
-	],
-	"78.0.3904.92": [
-		"7.0.1"
-	],
-	"78.0.3904.94": [
-		"7.1.0"
-	],
-	"78.0.3904.99": [
-		"7.1.1"
-	],
-	"78.0.3904.113": [
-		"7.1.2"
-	],
-	"78.0.3904.126": [
-		"7.1.3"
-	],
-	"78.0.3904.130": [
-		"7.1.4",
-		"7.1.5",
-		"7.1.6",
-		"7.1.7",
-		"7.1.8",
-		"7.1.9",
-		"7.1.10",
-		"7.1.11",
-		"7.1.12",
-		"7.1.13",
-		"7.1.14",
-		"7.2.0",
-		"7.2.1",
-		"7.2.2",
-		"7.2.3",
-		"7.2.4",
-		"7.3.0",
-		"7.3.1",
-		"7.3.2",
-		"7.3.3"
-	],
-	"79.0.3931.0": [
-		"8.0.0-beta.1",
-		"8.0.0-beta.2"
-	],
-	"80.0.3955.0": [
-		"8.0.0-beta.3",
-		"8.0.0-beta.4"
-	],
-	"80.0.3987.14": [
-		"8.0.0-beta.5"
-	],
-	"80.0.3987.51": [
-		"8.0.0-beta.6"
-	],
-	"80.0.3987.59": [
-		"8.0.0-beta.7"
-	],
-	"80.0.3987.75": [
-		"8.0.0-beta.8",
-		"8.0.0-beta.9"
-	],
-	"80.0.3987.86": [
-		"8.0.0",
-		"8.0.1",
-		"8.0.2"
-	],
-	"80.0.3987.134": [
-		"8.0.3"
-	],
-	"80.0.3987.137": [
-		"8.1.0"
-	],
-	"80.0.3987.141": [
-		"8.1.1"
-	],
-	"80.0.3987.158": [
-		"8.2.0"
-	],
-	"80.0.3987.163": [
-		"8.2.1",
-		"8.2.2",
-		"8.2.3",
-		"8.5.3",
-		"8.5.4",
-		"8.5.5"
-	],
-	"80.0.3987.165": [
-		"8.2.4",
-		"8.2.5",
-		"8.3.0",
-		"8.3.1",
-		"8.3.2",
-		"8.3.3",
-		"8.3.4",
-		"8.4.0",
-		"8.4.1",
-		"8.5.0",
-		"8.5.1",
-		"8.5.2"
-	],
-	"82.0.4048.0": [
-		"9.0.0-beta.1",
-		"9.0.0-beta.2",
-		"9.0.0-beta.3",
-		"9.0.0-beta.4",
-		"9.0.0-beta.5"
-	],
-	"82.0.4058.2": [
-		"9.0.0-beta.6",
-		"9.0.0-beta.7",
-		"9.0.0-beta.9"
-	],
-	"82.0.4085.10": [
-		"9.0.0-beta.10"
-	],
-	"82.0.4085.14": [
-		"9.0.0-beta.11",
-		"9.0.0-beta.12",
-		"9.0.0-beta.13"
-	],
-	"82.0.4085.27": [
-		"9.0.0-beta.14"
-	],
-	"83.0.4102.3": [
-		"9.0.0-beta.15",
-		"9.0.0-beta.16"
-	],
-	"83.0.4103.14": [
-		"9.0.0-beta.17"
-	],
-	"83.0.4103.16": [
-		"9.0.0-beta.18"
-	],
-	"83.0.4103.24": [
-		"9.0.0-beta.19"
-	],
-	"83.0.4103.26": [
-		"9.0.0-beta.20",
-		"9.0.0-beta.21"
-	],
-	"83.0.4103.34": [
-		"9.0.0-beta.22"
-	],
-	"83.0.4103.44": [
-		"9.0.0-beta.23"
-	],
-	"83.0.4103.45": [
-		"9.0.0-beta.24"
-	],
-	"83.0.4103.64": [
-		"9.0.0"
-	],
-	"83.0.4103.94": [
-		"9.0.1",
-		"9.0.2"
-	],
-	"83.0.4103.100": [
-		"9.0.3"
-	],
-	"83.0.4103.104": [
-		"9.0.4"
-	],
-	"83.0.4103.119": [
-		"9.0.5"
-	],
-	"83.0.4103.122": [
-		"9.1.0",
-		"9.1.1",
-		"9.1.2",
-		"9.2.0",
-		"9.2.1",
-		"9.3.0",
-		"9.3.1",
-		"9.3.2",
-		"9.3.3",
-		"9.3.4",
-		"9.3.5",
-		"9.4.0",
-		"9.4.1",
-		"9.4.2",
-		"9.4.3",
-		"9.4.4"
-	],
-	"84.0.4129.0": [
-		"10.0.0-beta.1",
-		"10.0.0-beta.2"
-	],
-	"85.0.4161.2": [
-		"10.0.0-beta.3",
-		"10.0.0-beta.4"
-	],
-	"85.0.4181.1": [
-		"10.0.0-beta.8",
-		"10.0.0-beta.9"
-	],
-	"85.0.4183.19": [
-		"10.0.0-beta.10"
-	],
-	"85.0.4183.20": [
-		"10.0.0-beta.11"
-	],
-	"85.0.4183.26": [
-		"10.0.0-beta.12"
-	],
-	"85.0.4183.39": [
-		"10.0.0-beta.13",
-		"10.0.0-beta.14",
-		"10.0.0-beta.15",
-		"10.0.0-beta.17",
-		"10.0.0-beta.19",
-		"10.0.0-beta.20",
-		"10.0.0-beta.21"
-	],
-	"85.0.4183.70": [
-		"10.0.0-beta.23"
-	],
-	"85.0.4183.78": [
-		"10.0.0-beta.24"
-	],
-	"85.0.4183.80": [
-		"10.0.0-beta.25"
-	],
-	"85.0.4183.84": [
-		"10.0.0"
-	],
-	"85.0.4183.86": [
-		"10.0.1"
-	],
-	"85.0.4183.87": [
-		"10.1.0"
-	],
-	"85.0.4183.93": [
-		"10.1.1"
-	],
-	"85.0.4183.98": [
-		"10.1.2"
-	],
-	"85.0.4183.121": [
-		"10.1.3",
-		"10.1.4",
-		"10.1.5",
-		"10.1.6",
-		"10.1.7",
-		"10.2.0",
-		"10.3.0",
-		"10.3.1",
-		"10.3.2",
-		"10.4.0",
-		"10.4.1",
-		"10.4.2",
-		"10.4.3",
-		"10.4.4",
-		"10.4.5",
-		"10.4.6",
-		"10.4.7"
-	],
-	"86.0.4234.0": [
-		"11.0.0-beta.1",
-		"11.0.0-beta.3",
-		"11.0.0-beta.4",
-		"11.0.0-beta.5",
-		"11.0.0-beta.6",
-		"11.0.0-beta.7"
-	],
-	"87.0.4251.1": [
-		"11.0.0-beta.8",
-		"11.0.0-beta.9",
-		"11.0.0-beta.11"
-	],
-	"87.0.4280.11": [
-		"11.0.0-beta.12",
-		"11.0.0-beta.13"
-	],
-	"87.0.4280.27": [
-		"11.0.0-beta.16",
-		"11.0.0-beta.17",
-		"11.0.0-beta.18",
-		"11.0.0-beta.19"
-	],
-	"87.0.4280.40": [
-		"11.0.0-beta.20"
-	],
-	"87.0.4280.47": [
-		"11.0.0-beta.22",
-		"11.0.0-beta.23"
-	],
-	"87.0.4280.60": [
-		"11.0.0",
-		"11.0.1"
-	],
-	"87.0.4280.67": [
-		"11.0.2",
-		"11.0.3",
-		"11.0.4"
-	],
-	"87.0.4280.88": [
-		"11.0.5",
-		"11.1.0",
-		"11.1.1"
-	],
-	"87.0.4280.141": [
-		"11.2.0",
-		"11.2.1",
-		"11.2.2",
-		"11.2.3",
-		"11.3.0",
-		"11.4.0",
-		"11.4.1",
-		"11.4.2",
-		"11.4.3",
-		"11.4.4",
-		"11.4.5",
-		"11.4.6",
-		"11.4.7",
-		"11.4.8",
-		"11.4.9",
-		"11.4.10",
-		"11.4.11",
-		"11.4.12",
-		"11.5.0"
-	],
-	"89.0.4328.0": [
-		"12.0.0-beta.1",
-		"12.0.0-beta.3",
-		"12.0.0-beta.4",
-		"12.0.0-beta.5",
-		"12.0.0-beta.6",
-		"12.0.0-beta.7",
-		"12.0.0-beta.8",
-		"12.0.0-beta.9",
-		"12.0.0-beta.10",
-		"12.0.0-beta.11",
-		"12.0.0-beta.12",
-		"12.0.0-beta.14"
-	],
-	"89.0.4348.1": [
-		"12.0.0-beta.16",
-		"12.0.0-beta.18",
-		"12.0.0-beta.19",
-		"12.0.0-beta.20"
-	],
-	"89.0.4388.2": [
-		"12.0.0-beta.21",
-		"12.0.0-beta.22",
-		"12.0.0-beta.23",
-		"12.0.0-beta.24",
-		"12.0.0-beta.25",
-		"12.0.0-beta.26"
-	],
-	"89.0.4389.23": [
-		"12.0.0-beta.27",
-		"12.0.0-beta.28",
-		"12.0.0-beta.29"
-	],
-	"89.0.4389.58": [
-		"12.0.0-beta.30",
-		"12.0.0-beta.31"
-	],
-	"89.0.4389.69": [
-		"12.0.0"
-	],
-	"89.0.4389.82": [
-		"12.0.1"
-	],
-	"89.0.4389.90": [
-		"12.0.2"
-	],
-	"89.0.4389.114": [
-		"12.0.3",
-		"12.0.4"
-	],
-	"89.0.4389.128": [
-		"12.0.5",
-		"12.0.6",
-		"12.0.7",
-		"12.0.8",
-		"12.0.9",
-		"12.0.10",
-		"12.0.11",
-		"12.0.12",
-		"12.0.13",
-		"12.0.14",
-		"12.0.15",
-		"12.0.16",
-		"12.0.17",
-		"12.0.18",
-		"12.1.0",
-		"12.1.1",
-		"12.1.2",
-		"12.2.0",
-		"12.2.1",
-		"12.2.2",
-		"12.2.3"
-	],
-	"90.0.4402.0": [
-		"13.0.0-beta.2",
-		"13.0.0-beta.3"
-	],
-	"90.0.4415.0": [
-		"13.0.0-beta.4",
-		"13.0.0-beta.5",
-		"13.0.0-beta.6",
-		"13.0.0-beta.7",
-		"13.0.0-beta.8",
-		"13.0.0-beta.9",
-		"13.0.0-beta.10",
-		"13.0.0-beta.11",
-		"13.0.0-beta.12",
-		"13.0.0-beta.13"
-	],
-	"91.0.4448.0": [
-		"13.0.0-beta.14",
-		"13.0.0-beta.16",
-		"13.0.0-beta.17",
-		"13.0.0-beta.18",
-		"13.0.0-beta.20"
-	],
-	"91.0.4472.33": [
-		"13.0.0-beta.21",
-		"13.0.0-beta.22",
-		"13.0.0-beta.23"
-	],
-	"91.0.4472.38": [
-		"13.0.0-beta.24",
-		"13.0.0-beta.25",
-		"13.0.0-beta.26",
-		"13.0.0-beta.27",
-		"13.0.0-beta.28"
-	],
-	"91.0.4472.69": [
-		"13.0.0",
-		"13.0.1"
-	],
-	"91.0.4472.77": [
-		"13.1.0",
-		"13.1.1",
-		"13.1.2"
-	],
-	"91.0.4472.106": [
-		"13.1.3",
-		"13.1.4"
-	],
-	"91.0.4472.124": [
-		"13.1.5",
-		"13.1.6",
-		"13.1.7"
-	],
-	"91.0.4472.164": [
-		"13.1.8",
-		"13.1.9",
-		"13.2.0",
-		"13.2.1",
-		"13.2.2",
-		"13.2.3",
-		"13.3.0",
-		"13.4.0",
-		"13.5.0",
-		"13.5.1",
-		"13.5.2",
-		"13.6.0",
-		"13.6.1",
-		"13.6.2",
-		"13.6.3",
-		"13.6.6",
-		"13.6.7",
-		"13.6.8",
-		"13.6.9"
-	],
-	"92.0.4511.0": [
-		"14.0.0-beta.1",
-		"14.0.0-beta.2",
-		"14.0.0-beta.3"
-	],
-	"93.0.4536.0": [
-		"14.0.0-beta.5",
-		"14.0.0-beta.6",
-		"14.0.0-beta.7",
-		"14.0.0-beta.8"
-	],
-	"93.0.4539.0": [
-		"14.0.0-beta.9",
-		"14.0.0-beta.10"
-	],
-	"93.0.4557.4": [
-		"14.0.0-beta.11",
-		"14.0.0-beta.12"
-	],
-	"93.0.4566.0": [
-		"14.0.0-beta.13",
-		"14.0.0-beta.14",
-		"14.0.0-beta.15",
-		"14.0.0-beta.16",
-		"14.0.0-beta.17",
-		"15.0.0-alpha.1",
-		"15.0.0-alpha.2"
-	],
-	"93.0.4577.15": [
-		"14.0.0-beta.18",
-		"14.0.0-beta.19",
-		"14.0.0-beta.20",
-		"14.0.0-beta.21"
-	],
-	"93.0.4577.25": [
-		"14.0.0-beta.22",
-		"14.0.0-beta.23"
-	],
-	"93.0.4577.51": [
-		"14.0.0-beta.24",
-		"14.0.0-beta.25"
-	],
-	"93.0.4577.58": [
-		"14.0.0"
-	],
-	"93.0.4577.63": [
-		"14.0.1"
-	],
-	"93.0.4577.82": [
-		"14.0.2",
-		"14.1.0",
-		"14.1.1",
-		"14.2.0",
-		"14.2.1",
-		"14.2.2",
-		"14.2.3",
-		"14.2.4",
-		"14.2.5",
-		"14.2.6",
-		"14.2.7",
-		"14.2.8",
-		"14.2.9"
-	],
-	"94.0.4584.0": [
-		"15.0.0-alpha.3",
-		"15.0.0-alpha.4",
-		"15.0.0-alpha.5",
-		"15.0.0-alpha.6"
-	],
-	"94.0.4590.2": [
-		"15.0.0-alpha.7",
-		"15.0.0-alpha.8",
-		"15.0.0-alpha.9"
-	],
-	"94.0.4606.12": [
-		"15.0.0-alpha.10"
-	],
-	"94.0.4606.20": [
-		"15.0.0-beta.1",
-		"15.0.0-beta.2"
-	],
-	"94.0.4606.31": [
-		"15.0.0-beta.3",
-		"15.0.0-beta.4",
-		"15.0.0-beta.5",
-		"15.0.0-beta.6",
-		"15.0.0-beta.7"
-	],
-	"94.0.4606.51": [
-		"15.0.0"
-	],
-	"94.0.4606.61": [
-		"15.1.0",
-		"15.1.1"
-	],
-	"94.0.4606.71": [
-		"15.1.2"
-	],
-	"94.0.4606.81": [
-		"15.2.0",
-		"15.3.0",
-		"15.3.1",
-		"15.3.2",
-		"15.3.3",
-		"15.3.4",
-		"15.3.5",
-		"15.3.6",
-		"15.3.7",
-		"15.4.0",
-		"15.4.1",
-		"15.4.2",
-		"15.5.0",
-		"15.5.1",
-		"15.5.2",
-		"15.5.3",
-		"15.5.4",
-		"15.5.5",
-		"15.5.6",
-		"15.5.7"
-	],
-	"95.0.4629.0": [
-		"16.0.0-alpha.1",
-		"16.0.0-alpha.2",
-		"16.0.0-alpha.3",
-		"16.0.0-alpha.4",
-		"16.0.0-alpha.5",
-		"16.0.0-alpha.6",
-		"16.0.0-alpha.7"
-	],
-	"96.0.4647.0": [
-		"16.0.0-alpha.8",
-		"16.0.0-alpha.9",
-		"16.0.0-beta.1",
-		"16.0.0-beta.2",
-		"16.0.0-beta.3"
-	],
-	"96.0.4664.18": [
-		"16.0.0-beta.4",
-		"16.0.0-beta.5"
-	],
-	"96.0.4664.27": [
-		"16.0.0-beta.6",
-		"16.0.0-beta.7"
-	],
-	"96.0.4664.35": [
-		"16.0.0-beta.8",
-		"16.0.0-beta.9"
-	],
-	"96.0.4664.45": [
-		"16.0.0",
-		"16.0.1"
-	],
-	"96.0.4664.55": [
-		"16.0.2",
-		"16.0.3",
-		"16.0.4",
-		"16.0.5"
-	],
-	"96.0.4664.110": [
-		"16.0.6",
-		"16.0.7",
-		"16.0.8"
-	],
-	"96.0.4664.174": [
-		"16.0.9",
-		"16.0.10",
-		"16.1.0",
-		"16.1.1",
-		"16.2.0",
-		"16.2.1",
-		"16.2.2",
-		"16.2.3",
-		"16.2.4",
-		"16.2.5",
-		"16.2.6",
-		"16.2.7",
-		"16.2.8"
-	],
-	"96.0.4664.4": [
-		"17.0.0-alpha.1",
-		"17.0.0-alpha.2",
-		"17.0.0-alpha.3"
-	],
-	"98.0.4706.0": [
-		"17.0.0-alpha.4",
-		"17.0.0-alpha.5",
-		"17.0.0-alpha.6",
-		"17.0.0-beta.1",
-		"17.0.0-beta.2"
-	],
-	"98.0.4758.9": [
-		"17.0.0-beta.3"
-	],
-	"98.0.4758.11": [
-		"17.0.0-beta.4",
-		"17.0.0-beta.5",
-		"17.0.0-beta.6",
-		"17.0.0-beta.7",
-		"17.0.0-beta.8",
-		"17.0.0-beta.9"
-	],
-	"98.0.4758.74": [
-		"17.0.0"
-	],
-	"98.0.4758.82": [
-		"17.0.1"
-	],
-	"98.0.4758.102": [
-		"17.1.0"
-	],
-	"98.0.4758.109": [
-		"17.1.1",
-		"17.1.2",
-		"17.2.0"
-	],
-	"98.0.4758.141": [
-		"17.3.0",
-		"17.3.1",
-		"17.4.0",
-		"17.4.1",
-		"17.4.2",
-		"17.4.3",
-		"17.4.4",
-		"17.4.5",
-		"17.4.6",
-		"17.4.7",
-		"17.4.8",
-		"17.4.9",
-		"17.4.10",
-		"17.4.11"
-	],
-	"99.0.4767.0": [
-		"18.0.0-alpha.1",
-		"18.0.0-alpha.2",
-		"18.0.0-alpha.3",
-		"18.0.0-alpha.4",
-		"18.0.0-alpha.5"
-	],
-	"100.0.4894.0": [
-		"18.0.0-beta.1",
-		"18.0.0-beta.2",
-		"18.0.0-beta.3",
-		"18.0.0-beta.4",
-		"18.0.0-beta.5",
-		"18.0.0-beta.6"
-	],
-	"100.0.4896.56": [
-		"18.0.0"
-	],
-	"100.0.4896.60": [
-		"18.0.1",
-		"18.0.2"
-	],
-	"100.0.4896.75": [
-		"18.0.3",
-		"18.0.4"
-	],
-	"100.0.4896.127": [
-		"18.1.0"
-	],
-	"100.0.4896.143": [
-		"18.2.0",
-		"18.2.1",
-		"18.2.2",
-		"18.2.3"
-	],
-	"100.0.4896.160": [
-		"18.2.4",
-		"18.3.0",
-		"18.3.1",
-		"18.3.2",
-		"18.3.3",
-		"18.3.4",
-		"18.3.5",
-		"18.3.6",
-		"18.3.7",
-		"18.3.8",
-		"18.3.9",
-		"18.3.11",
-		"18.3.12",
-		"18.3.13",
-		"18.3.14",
-		"18.3.15"
-	],
-	"102.0.4962.3": [
-		"19.0.0-alpha.1"
-	],
-	"102.0.4971.0": [
-		"19.0.0-alpha.2",
-		"19.0.0-alpha.3"
-	],
-	"102.0.4989.0": [
-		"19.0.0-alpha.4",
-		"19.0.0-alpha.5"
-	],
-	"102.0.4999.0": [
-		"19.0.0-beta.1",
-		"19.0.0-beta.2",
-		"19.0.0-beta.3"
-	],
-	"102.0.5005.27": [
-		"19.0.0-beta.4"
-	],
-	"102.0.5005.40": [
-		"19.0.0-beta.5",
-		"19.0.0-beta.6",
-		"19.0.0-beta.7"
-	],
-	"102.0.5005.49": [
-		"19.0.0-beta.8"
-	],
-	"102.0.5005.61": [
-		"19.0.0",
-		"19.0.1"
-	],
-	"102.0.5005.63": [
-		"19.0.2",
-		"19.0.3",
-		"19.0.4"
-	],
-	"102.0.5005.115": [
-		"19.0.5",
-		"19.0.6"
-	],
-	"102.0.5005.134": [
-		"19.0.7"
-	],
-	"102.0.5005.148": [
-		"19.0.8"
-	],
-	"102.0.5005.167": [
-		"19.0.9",
-		"19.0.10",
-		"19.0.11",
-		"19.0.12",
-		"19.0.13",
-		"19.0.14",
-		"19.0.15",
-		"19.0.16",
-		"19.0.17",
-		"19.1.0",
-		"19.1.1",
-		"19.1.2",
-		"19.1.3",
-		"19.1.4",
-		"19.1.5",
-		"19.1.6",
-		"19.1.7",
-		"19.1.8",
-		"19.1.9"
-	],
-	"103.0.5044.0": [
-		"20.0.0-alpha.1"
-	],
-	"104.0.5073.0": [
-		"20.0.0-alpha.2",
-		"20.0.0-alpha.3",
-		"20.0.0-alpha.4",
-		"20.0.0-alpha.5",
-		"20.0.0-alpha.6",
-		"20.0.0-alpha.7",
-		"20.0.0-beta.1",
-		"20.0.0-beta.2",
-		"20.0.0-beta.3",
-		"20.0.0-beta.4",
-		"20.0.0-beta.5",
-		"20.0.0-beta.6",
-		"20.0.0-beta.7",
-		"20.0.0-beta.8"
-	],
-	"104.0.5112.39": [
-		"20.0.0-beta.9"
-	],
-	"104.0.5112.48": [
-		"20.0.0-beta.10",
-		"20.0.0-beta.11",
-		"20.0.0-beta.12"
-	],
-	"104.0.5112.57": [
-		"20.0.0-beta.13"
-	],
-	"104.0.5112.65": [
-		"20.0.0"
-	],
-	"104.0.5112.81": [
-		"20.0.1",
-		"20.0.2",
-		"20.0.3"
-	],
-	"104.0.5112.102": [
-		"20.1.0",
-		"20.1.1"
-	],
-	"104.0.5112.114": [
-		"20.1.2",
-		"20.1.3",
-		"20.1.4"
-	],
-	"104.0.5112.124": [
-		"20.2.0",
-		"20.3.0",
-		"20.3.1",
-		"20.3.2",
-		"20.3.3",
-		"20.3.4",
-		"20.3.5",
-		"20.3.6",
-		"20.3.7",
-		"20.3.8",
-		"20.3.9",
-		"20.3.10",
-		"20.3.11",
-		"20.3.12"
-	],
-	"105.0.5187.0": [
-		"21.0.0-alpha.1",
-		"21.0.0-alpha.2",
-		"21.0.0-alpha.3",
-		"21.0.0-alpha.4",
-		"21.0.0-alpha.5"
-	],
-	"106.0.5216.0": [
-		"21.0.0-alpha.6",
-		"21.0.0-beta.1",
-		"21.0.0-beta.2",
-		"21.0.0-beta.3",
-		"21.0.0-beta.4",
-		"21.0.0-beta.5"
-	],
-	"106.0.5249.40": [
-		"21.0.0-beta.6",
-		"21.0.0-beta.7",
-		"21.0.0-beta.8"
-	],
-	"106.0.5249.51": [
-		"21.0.0"
-	],
-	"106.0.5249.61": [
-		"21.0.1"
-	],
-	"106.0.5249.91": [
-		"21.1.0"
-	],
-	"106.0.5249.103": [
-		"21.1.1"
-	],
-	"106.0.5249.119": [
-		"21.2.0"
-	],
-	"106.0.5249.165": [
-		"21.2.1"
-	],
-	"106.0.5249.168": [
-		"21.2.2",
-		"21.2.3"
-	],
-	"106.0.5249.181": [
-		"21.3.0",
-		"21.3.1"
-	],
-	"106.0.5249.199": [
-		"21.3.3",
-		"21.3.4",
-		"21.3.5",
-		"21.4.0",
-		"21.4.1",
-		"21.4.2",
-		"21.4.3",
-		"21.4.4"
-	],
-	"107.0.5286.0": [
-		"22.0.0-alpha.1"
-	],
-	"108.0.5329.0": [
-		"22.0.0-alpha.3",
-		"22.0.0-alpha.4",
-		"22.0.0-alpha.5",
-		"22.0.0-alpha.6"
-	],
-	"108.0.5355.0": [
-		"22.0.0-alpha.7"
-	],
-	"108.0.5359.10": [
-		"22.0.0-alpha.8",
-		"22.0.0-beta.1",
-		"22.0.0-beta.2",
-		"22.0.0-beta.3"
-	],
-	"108.0.5359.29": [
-		"22.0.0-beta.4"
-	],
-	"108.0.5359.40": [
-		"22.0.0-beta.5",
-		"22.0.0-beta.6"
-	],
-	"108.0.5359.48": [
-		"22.0.0-beta.7",
-		"22.0.0-beta.8"
-	],
-	"108.0.5359.62": [
-		"22.0.0"
-	],
-	"108.0.5359.125": [
-		"22.0.1"
-	],
-	"108.0.5359.179": [
-		"22.0.2",
-		"22.0.3",
-		"22.1.0"
-	],
-	"108.0.5359.215": [
-		"22.2.0",
-		"22.2.1",
-		"22.3.0",
-		"22.3.1",
-		"22.3.2",
-		"22.3.3",
-		"22.3.4",
-		"22.3.5",
-		"22.3.6",
-		"22.3.7",
-		"22.3.8",
-		"22.3.9",
-		"22.3.10",
-		"22.3.11",
-		"22.3.12",
-		"22.3.13",
-		"22.3.14",
-		"22.3.15",
-		"22.3.16",
-		"22.3.17",
-		"22.3.18",
-		"22.3.20",
-		"22.3.21",
-		"22.3.22",
-		"22.3.23",
-		"22.3.24",
-		"22.3.25",
-		"22.3.26",
-		"22.3.27"
-	],
-	"110.0.5415.0": [
-		"23.0.0-alpha.1"
-	],
-	"110.0.5451.0": [
-		"23.0.0-alpha.2",
-		"23.0.0-alpha.3"
-	],
-	"110.0.5478.5": [
-		"23.0.0-beta.1",
-		"23.0.0-beta.2",
-		"23.0.0-beta.3"
-	],
-	"110.0.5481.30": [
-		"23.0.0-beta.4"
-	],
-	"110.0.5481.38": [
-		"23.0.0-beta.5"
-	],
-	"110.0.5481.52": [
-		"23.0.0-beta.6",
-		"23.0.0-beta.8"
-	],
-	"110.0.5481.77": [
-		"23.0.0"
-	],
-	"110.0.5481.100": [
-		"23.1.0"
-	],
-	"110.0.5481.104": [
-		"23.1.1"
-	],
-	"110.0.5481.177": [
-		"23.1.2"
-	],
-	"110.0.5481.179": [
-		"23.1.3"
-	],
-	"110.0.5481.192": [
-		"23.1.4",
-		"23.2.0"
-	],
-	"110.0.5481.208": [
-		"23.2.1",
-		"23.2.2",
-		"23.2.3",
-		"23.2.4",
-		"23.3.0",
-		"23.3.1",
-		"23.3.2",
-		"23.3.3",
-		"23.3.4",
-		"23.3.5",
-		"23.3.6",
-		"23.3.7",
-		"23.3.8",
-		"23.3.9",
-		"23.3.10",
-		"23.3.11",
-		"23.3.12",
-		"23.3.13"
-	],
-	"111.0.5560.0": [
-		"24.0.0-alpha.1",
-		"24.0.0-alpha.2",
-		"24.0.0-alpha.3",
-		"24.0.0-alpha.4",
-		"24.0.0-alpha.5",
-		"24.0.0-alpha.6",
-		"24.0.0-alpha.7"
-	],
-	"111.0.5563.50": [
-		"24.0.0-beta.1",
-		"24.0.0-beta.2"
-	],
-	"112.0.5615.20": [
-		"24.0.0-beta.3",
-		"24.0.0-beta.4"
-	],
-	"112.0.5615.29": [
-		"24.0.0-beta.5"
-	],
-	"112.0.5615.39": [
-		"24.0.0-beta.6",
-		"24.0.0-beta.7"
-	],
-	"112.0.5615.49": [
-		"24.0.0"
-	],
-	"112.0.5615.50": [
-		"24.1.0",
-		"24.1.1"
-	],
-	"112.0.5615.87": [
-		"24.1.2"
-	],
-	"112.0.5615.165": [
-		"24.1.3",
-		"24.2.0",
-		"24.3.0"
-	],
-	"112.0.5615.183": [
-		"24.3.1"
-	],
-	"112.0.5615.204": [
-		"24.4.0",
-		"24.4.1",
-		"24.5.0",
-		"24.5.1",
-		"24.6.0",
-		"24.6.1",
-		"24.6.2",
-		"24.6.3",
-		"24.6.4",
-		"24.6.5",
-		"24.7.0",
-		"24.7.1",
-		"24.8.0",
-		"24.8.1",
-		"24.8.2",
-		"24.8.3",
-		"24.8.4",
-		"24.8.5",
-		"24.8.6",
-		"24.8.7",
-		"24.8.8"
-	],
-	"114.0.5694.0": [
-		"25.0.0-alpha.1",
-		"25.0.0-alpha.2"
-	],
-	"114.0.5710.0": [
-		"25.0.0-alpha.3",
-		"25.0.0-alpha.4"
-	],
-	"114.0.5719.0": [
-		"25.0.0-alpha.5",
-		"25.0.0-alpha.6",
-		"25.0.0-beta.1",
-		"25.0.0-beta.2",
-		"25.0.0-beta.3"
-	],
-	"114.0.5735.16": [
-		"25.0.0-beta.4",
-		"25.0.0-beta.5",
-		"25.0.0-beta.6",
-		"25.0.0-beta.7"
-	],
-	"114.0.5735.35": [
-		"25.0.0-beta.8"
-	],
-	"114.0.5735.45": [
-		"25.0.0-beta.9",
-		"25.0.0",
-		"25.0.1"
-	],
-	"114.0.5735.106": [
-		"25.1.0",
-		"25.1.1"
-	],
-	"114.0.5735.134": [
-		"25.2.0"
-	],
-	"114.0.5735.199": [
-		"25.3.0"
-	],
-	"114.0.5735.243": [
-		"25.3.1"
-	],
-	"114.0.5735.248": [
-		"25.3.2",
-		"25.4.0"
-	],
-	"114.0.5735.289": [
-		"25.5.0",
-		"25.6.0",
-		"25.7.0",
-		"25.8.0",
-		"25.8.1",
-		"25.8.2",
-		"25.8.3",
-		"25.8.4",
-		"25.9.0",
-		"25.9.1",
-		"25.9.2",
-		"25.9.3",
-		"25.9.4",
-		"25.9.5",
-		"25.9.6",
-		"25.9.7",
-		"25.9.8"
-	],
-	"116.0.5791.0": [
-		"26.0.0-alpha.1",
-		"26.0.0-alpha.2",
-		"26.0.0-alpha.3",
-		"26.0.0-alpha.4",
-		"26.0.0-alpha.5"
-	],
-	"116.0.5815.0": [
-		"26.0.0-alpha.6"
-	],
-	"116.0.5831.0": [
-		"26.0.0-alpha.7"
-	],
-	"116.0.5845.0": [
-		"26.0.0-alpha.8",
-		"26.0.0-beta.1"
-	],
-	"116.0.5845.14": [
-		"26.0.0-beta.2",
-		"26.0.0-beta.3",
-		"26.0.0-beta.4",
-		"26.0.0-beta.5",
-		"26.0.0-beta.6",
-		"26.0.0-beta.7"
-	],
-	"116.0.5845.42": [
-		"26.0.0-beta.8",
-		"26.0.0-beta.9"
-	],
-	"116.0.5845.49": [
-		"26.0.0-beta.10",
-		"26.0.0-beta.11"
-	],
-	"116.0.5845.62": [
-		"26.0.0-beta.12"
-	],
-	"116.0.5845.82": [
-		"26.0.0"
-	],
-	"116.0.5845.97": [
-		"26.1.0"
-	],
-	"116.0.5845.179": [
-		"26.2.0"
-	],
-	"116.0.5845.188": [
-		"26.2.1"
-	],
-	"116.0.5845.190": [
-		"26.2.2",
-		"26.2.3",
-		"26.2.4"
-	],
-	"116.0.5845.228": [
-		"26.3.0",
-		"26.4.0",
-		"26.4.1",
-		"26.4.2",
-		"26.4.3",
-		"26.5.0",
-		"26.6.0",
-		"26.6.1",
-		"26.6.2",
-		"26.6.3",
-		"26.6.4",
-		"26.6.5",
-		"26.6.6",
-		"26.6.7",
-		"26.6.8",
-		"26.6.9",
-		"26.6.10"
-	],
-	"118.0.5949.0": [
-		"27.0.0-alpha.1",
-		"27.0.0-alpha.2",
-		"27.0.0-alpha.3",
-		"27.0.0-alpha.4",
-		"27.0.0-alpha.5",
-		"27.0.0-alpha.6"
-	],
-	"118.0.5993.5": [
-		"27.0.0-beta.1",
-		"27.0.0-beta.2",
-		"27.0.0-beta.3"
-	],
-	"118.0.5993.11": [
-		"27.0.0-beta.4"
-	],
-	"118.0.5993.18": [
-		"27.0.0-beta.5",
-		"27.0.0-beta.6",
-		"27.0.0-beta.7",
-		"27.0.0-beta.8",
-		"27.0.0-beta.9"
-	],
-	"118.0.5993.54": [
-		"27.0.0"
-	],
-	"118.0.5993.89": [
-		"27.0.1",
-		"27.0.2"
-	],
-	"118.0.5993.120": [
-		"27.0.3"
-	],
-	"118.0.5993.129": [
-		"27.0.4"
-	],
-	"118.0.5993.144": [
-		"27.1.0",
-		"27.1.2"
-	],
-	"118.0.5993.159": [
-		"27.1.3",
-		"27.2.0",
-		"27.2.1",
-		"27.2.2",
-		"27.2.3",
-		"27.2.4",
-		"27.3.0",
-		"27.3.1",
-		"27.3.2",
-		"27.3.3",
-		"27.3.4",
-		"27.3.5",
-		"27.3.6",
-		"27.3.7",
-		"27.3.8",
-		"27.3.9",
-		"27.3.10",
-		"27.3.11"
-	],
-	"119.0.6045.0": [
-		"28.0.0-alpha.1",
-		"28.0.0-alpha.2"
-	],
-	"119.0.6045.21": [
-		"28.0.0-alpha.3",
-		"28.0.0-alpha.4"
-	],
-	"119.0.6045.33": [
-		"28.0.0-alpha.5",
-		"28.0.0-alpha.6",
-		"28.0.0-alpha.7",
-		"28.0.0-beta.1"
-	],
-	"120.0.6099.0": [
-		"28.0.0-beta.2"
-	],
-	"120.0.6099.5": [
-		"28.0.0-beta.3",
-		"28.0.0-beta.4"
-	],
-	"120.0.6099.18": [
-		"28.0.0-beta.5",
-		"28.0.0-beta.6",
-		"28.0.0-beta.7",
-		"28.0.0-beta.8",
-		"28.0.0-beta.9",
-		"28.0.0-beta.10"
-	],
-	"120.0.6099.35": [
-		"28.0.0-beta.11"
-	],
-	"120.0.6099.56": [
-		"28.0.0"
-	],
-	"120.0.6099.109": [
-		"28.1.0",
-		"28.1.1"
-	],
-	"120.0.6099.199": [
-		"28.1.2",
-		"28.1.3"
-	],
-	"120.0.6099.216": [
-		"28.1.4"
-	],
-	"120.0.6099.227": [
-		"28.2.0"
-	],
-	"120.0.6099.268": [
-		"28.2.1"
-	],
-	"120.0.6099.276": [
-		"28.2.2"
-	],
-	"120.0.6099.283": [
-		"28.2.3"
-	],
-	"120.0.6099.291": [
-		"28.2.4",
-		"28.2.5",
-		"28.2.6",
-		"28.2.7",
-		"28.2.8",
-		"28.2.9",
-		"28.2.10",
-		"28.3.0",
-		"28.3.1",
-		"28.3.2",
-		"28.3.3"
-	],
-	"121.0.6147.0": [
-		"29.0.0-alpha.1",
-		"29.0.0-alpha.2",
-		"29.0.0-alpha.3"
-	],
-	"121.0.6159.0": [
-		"29.0.0-alpha.4",
-		"29.0.0-alpha.5",
-		"29.0.0-alpha.6",
-		"29.0.0-alpha.7"
-	],
-	"122.0.6194.0": [
-		"29.0.0-alpha.8"
-	],
-	"122.0.6236.2": [
-		"29.0.0-alpha.9",
-		"29.0.0-alpha.10",
-		"29.0.0-alpha.11",
-		"29.0.0-beta.1",
-		"29.0.0-beta.2"
-	],
-	"122.0.6261.6": [
-		"29.0.0-beta.3",
-		"29.0.0-beta.4"
-	],
-	"122.0.6261.18": [
-		"29.0.0-beta.5",
-		"29.0.0-beta.6",
-		"29.0.0-beta.7",
-		"29.0.0-beta.8",
-		"29.0.0-beta.9",
-		"29.0.0-beta.10",
-		"29.0.0-beta.11"
-	],
-	"122.0.6261.29": [
-		"29.0.0-beta.12"
-	],
-	"122.0.6261.39": [
-		"29.0.0"
-	],
-	"122.0.6261.57": [
-		"29.0.1"
-	],
-	"122.0.6261.70": [
-		"29.1.0"
-	],
-	"122.0.6261.111": [
-		"29.1.1"
-	],
-	"122.0.6261.112": [
-		"29.1.2",
-		"29.1.3"
-	],
-	"122.0.6261.129": [
-		"29.1.4"
-	],
-	"122.0.6261.130": [
-		"29.1.5"
-	],
-	"122.0.6261.139": [
-		"29.1.6"
-	],
-	"122.0.6261.156": [
-		"29.2.0",
-		"29.3.0",
-		"29.3.1",
-		"29.3.2",
-		"29.3.3",
-		"29.4.0",
-		"29.4.1",
-		"29.4.2",
-		"29.4.3",
-		"29.4.4",
-		"29.4.5",
-		"29.4.6"
-	],
-	"123.0.6296.0": [
-		"30.0.0-alpha.1"
-	],
-	"123.0.6312.5": [
-		"30.0.0-alpha.2"
-	],
-	"124.0.6323.0": [
-		"30.0.0-alpha.3",
-		"30.0.0-alpha.4"
-	],
-	"124.0.6331.0": [
-		"30.0.0-alpha.5",
-		"30.0.0-alpha.6"
-	],
-	"124.0.6353.0": [
-		"30.0.0-alpha.7"
-	],
-	"124.0.6359.0": [
-		"30.0.0-beta.1",
-		"30.0.0-beta.2"
-	],
-	"124.0.6367.9": [
-		"30.0.0-beta.3",
-		"30.0.0-beta.4",
-		"30.0.0-beta.5"
-	],
-	"124.0.6367.18": [
-		"30.0.0-beta.6"
-	],
-	"124.0.6367.29": [
-		"30.0.0-beta.7",
-		"30.0.0-beta.8"
-	],
-	"124.0.6367.49": [
-		"30.0.0"
-	],
-	"124.0.6367.60": [
-		"30.0.1"
-	],
-	"124.0.6367.91": [
-		"30.0.2"
-	],
-	"124.0.6367.119": [
-		"30.0.3"
-	],
-	"124.0.6367.201": [
-		"30.0.4"
-	],
-	"124.0.6367.207": [
-		"30.0.5",
-		"30.0.6"
-	],
-	"124.0.6367.221": [
-		"30.0.7"
-	],
-	"124.0.6367.230": [
-		"30.0.8"
-	],
-	"124.0.6367.233": [
-		"30.0.9"
-	],
-	"124.0.6367.243": [
-		"30.1.0",
-		"30.1.1",
-		"30.1.2",
-		"30.2.0",
-		"30.3.0",
-		"30.3.1",
-		"30.4.0",
-		"30.5.0",
-		"30.5.1"
-	],
-	"125.0.6412.0": [
-		"31.0.0-alpha.1",
-		"31.0.0-alpha.2",
-		"31.0.0-alpha.3",
-		"31.0.0-alpha.4",
-		"31.0.0-alpha.5"
-	],
-	"126.0.6445.0": [
-		"31.0.0-beta.1",
-		"31.0.0-beta.2",
-		"31.0.0-beta.3",
-		"31.0.0-beta.4",
-		"31.0.0-beta.5",
-		"31.0.0-beta.6",
-		"31.0.0-beta.7",
-		"31.0.0-beta.8",
-		"31.0.0-beta.9"
-	],
-	"126.0.6478.36": [
-		"31.0.0-beta.10",
-		"31.0.0",
-		"31.0.1"
-	],
-	"126.0.6478.61": [
-		"31.0.2"
-	],
-	"126.0.6478.114": [
-		"31.1.0"
-	],
-	"126.0.6478.127": [
-		"31.2.0",
-		"31.2.1"
-	],
-	"126.0.6478.183": [
-		"31.3.0"
-	],
-	"126.0.6478.185": [
-		"31.3.1"
-	],
-	"126.0.6478.234": [
-		"31.4.0",
-		"31.5.0",
-		"31.6.0",
-		"31.7.0",
-		"31.7.1",
-		"31.7.2",
-		"31.7.3",
-		"31.7.4",
-		"31.7.5",
-		"31.7.6",
-		"31.7.7"
-	],
-	"127.0.6521.0": [
-		"32.0.0-alpha.1",
-		"32.0.0-alpha.2",
-		"32.0.0-alpha.3",
-		"32.0.0-alpha.4",
-		"32.0.0-alpha.5"
-	],
-	"128.0.6571.0": [
-		"32.0.0-alpha.6",
-		"32.0.0-alpha.7"
-	],
-	"128.0.6573.0": [
-		"32.0.0-alpha.8",
-		"32.0.0-alpha.9",
-		"32.0.0-alpha.10",
-		"32.0.0-beta.1"
-	],
-	"128.0.6611.0": [
-		"32.0.0-beta.2"
-	],
-	"128.0.6613.7": [
-		"32.0.0-beta.3"
-	],
-	"128.0.6613.18": [
-		"32.0.0-beta.4"
-	],
-	"128.0.6613.27": [
-		"32.0.0-beta.5",
-		"32.0.0-beta.6",
-		"32.0.0-beta.7"
-	],
-	"128.0.6613.36": [
-		"32.0.0",
-		"32.0.1"
-	],
-	"128.0.6613.84": [
-		"32.0.2"
-	],
-	"128.0.6613.120": [
-		"32.1.0"
-	],
-	"128.0.6613.137": [
-		"32.1.1"
-	],
-	"128.0.6613.162": [
-		"32.1.2"
-	],
-	"128.0.6613.178": [
-		"32.2.0"
-	],
-	"128.0.6613.186": [
-		"32.2.1",
-		"32.2.2",
-		"32.2.3",
-		"32.2.4",
-		"32.2.5",
-		"32.2.6",
-		"32.2.7",
-		"32.2.8",
-		"32.3.0",
-		"32.3.1",
-		"32.3.2",
-		"32.3.3"
-	],
-	"129.0.6668.0": [
-		"33.0.0-alpha.1"
-	],
-	"130.0.6672.0": [
-		"33.0.0-alpha.2",
-		"33.0.0-alpha.3",
-		"33.0.0-alpha.4",
-		"33.0.0-alpha.5",
-		"33.0.0-alpha.6",
-		"33.0.0-beta.1",
-		"33.0.0-beta.2",
-		"33.0.0-beta.3",
-		"33.0.0-beta.4"
-	],
-	"130.0.6723.19": [
-		"33.0.0-beta.5",
-		"33.0.0-beta.6",
-		"33.0.0-beta.7"
-	],
-	"130.0.6723.31": [
-		"33.0.0-beta.8",
-		"33.0.0-beta.9",
-		"33.0.0-beta.10"
-	],
-	"130.0.6723.44": [
-		"33.0.0-beta.11",
-		"33.0.0"
-	],
-	"130.0.6723.59": [
-		"33.0.1",
-		"33.0.2"
-	],
-	"130.0.6723.91": [
-		"33.1.0"
-	],
-	"130.0.6723.118": [
-		"33.2.0"
-	],
-	"130.0.6723.137": [
-		"33.2.1"
-	],
-	"130.0.6723.152": [
-		"33.3.0"
-	],
-	"130.0.6723.170": [
-		"33.3.1"
-	],
-	"130.0.6723.191": [
-		"33.3.2",
-		"33.4.0",
-		"33.4.1",
-		"33.4.2",
-		"33.4.3",
-		"33.4.4",
-		"33.4.5",
-		"33.4.6",
-		"33.4.7",
-		"33.4.8",
-		"33.4.9",
-		"33.4.10",
-		"33.4.11"
-	],
-	"131.0.6776.0": [
-		"34.0.0-alpha.1"
-	],
-	"132.0.6779.0": [
-		"34.0.0-alpha.2"
-	],
-	"132.0.6789.1": [
-		"34.0.0-alpha.3",
-		"34.0.0-alpha.4",
-		"34.0.0-alpha.5",
-		"34.0.0-alpha.6",
-		"34.0.0-alpha.7"
-	],
-	"132.0.6820.0": [
-		"34.0.0-alpha.8"
-	],
-	"132.0.6824.0": [
-		"34.0.0-alpha.9",
-		"34.0.0-beta.1",
-		"34.0.0-beta.2",
-		"34.0.0-beta.3"
-	],
-	"132.0.6834.6": [
-		"34.0.0-beta.4",
-		"34.0.0-beta.5"
-	],
-	"132.0.6834.15": [
-		"34.0.0-beta.6",
-		"34.0.0-beta.7",
-		"34.0.0-beta.8"
-	],
-	"132.0.6834.32": [
-		"34.0.0-beta.9",
-		"34.0.0-beta.10",
-		"34.0.0-beta.11"
-	],
-	"132.0.6834.46": [
-		"34.0.0-beta.12",
-		"34.0.0-beta.13"
-	],
-	"132.0.6834.57": [
-		"34.0.0-beta.14",
-		"34.0.0-beta.15",
-		"34.0.0-beta.16"
-	],
-	"132.0.6834.83": [
-		"34.0.0",
-		"34.0.1"
-	],
-	"132.0.6834.159": [
-		"34.0.2"
-	],
-	"132.0.6834.194": [
-		"34.1.0",
-		"34.1.1"
-	],
-	"132.0.6834.196": [
-		"34.2.0"
-	],
-	"132.0.6834.210": [
-		"34.3.0",
-		"34.3.1",
-		"34.3.2",
-		"34.3.3",
-		"34.3.4",
-		"34.4.0",
-		"34.4.1",
-		"34.5.0",
-		"34.5.1",
-		"34.5.2",
-		"34.5.3",
-		"34.5.4",
-		"34.5.5",
-		"34.5.6",
-		"34.5.7",
-		"34.5.8"
-	],
-	"133.0.6920.0": [
-		"35.0.0-alpha.1",
-		"35.0.0-alpha.2",
-		"35.0.0-alpha.3",
-		"35.0.0-alpha.4",
-		"35.0.0-alpha.5",
-		"35.0.0-beta.1"
-	],
-	"134.0.6968.0": [
-		"35.0.0-beta.2",
-		"35.0.0-beta.3",
-		"35.0.0-beta.4"
-	],
-	"134.0.6989.0": [
-		"35.0.0-beta.5"
-	],
-	"134.0.6990.0": [
-		"35.0.0-beta.6",
-		"35.0.0-beta.7"
-	],
-	"134.0.6998.10": [
-		"35.0.0-beta.8",
-		"35.0.0-beta.9"
-	],
-	"134.0.6998.23": [
-		"35.0.0-beta.10",
-		"35.0.0-beta.11",
-		"35.0.0-beta.12"
-	],
-	"134.0.6998.44": [
-		"35.0.0-beta.13",
-		"35.0.0",
-		"35.0.1"
-	],
-	"134.0.6998.88": [
-		"35.0.2",
-		"35.0.3"
-	],
-	"134.0.6998.165": [
-		"35.1.0",
-		"35.1.1"
-	],
-	"134.0.6998.178": [
-		"35.1.2"
-	],
-	"134.0.6998.179": [
-		"35.1.3",
-		"35.1.4",
-		"35.1.5"
-	],
-	"134.0.6998.205": [
-		"35.2.0",
-		"35.2.1",
-		"35.2.2",
-		"35.3.0",
-		"35.4.0",
-		"35.5.0",
-		"35.5.1",
-		"35.6.0",
-		"35.7.0",
-		"35.7.1",
-		"35.7.2",
-		"35.7.4",
-		"35.7.5"
-	],
-	"135.0.7049.5": [
-		"36.0.0-alpha.1"
-	],
-	"136.0.7062.0": [
-		"36.0.0-alpha.2",
-		"36.0.0-alpha.3",
-		"36.0.0-alpha.4"
-	],
-	"136.0.7067.0": [
-		"36.0.0-alpha.5",
-		"36.0.0-alpha.6",
-		"36.0.0-beta.1",
-		"36.0.0-beta.2",
-		"36.0.0-beta.3",
-		"36.0.0-beta.4"
-	],
-	"136.0.7103.17": [
-		"36.0.0-beta.5"
-	],
-	"136.0.7103.25": [
-		"36.0.0-beta.6",
-		"36.0.0-beta.7"
-	],
-	"136.0.7103.33": [
-		"36.0.0-beta.8",
-		"36.0.0-beta.9"
-	],
-	"136.0.7103.48": [
-		"36.0.0",
-		"36.0.1"
-	],
-	"136.0.7103.49": [
-		"36.1.0",
-		"36.2.0"
-	],
-	"136.0.7103.93": [
-		"36.2.1"
-	],
-	"136.0.7103.113": [
-		"36.3.0",
-		"36.3.1"
-	],
-	"136.0.7103.115": [
-		"36.3.2"
-	],
-	"136.0.7103.149": [
-		"36.4.0"
-	],
-	"136.0.7103.168": [
-		"36.5.0"
-	],
-	"136.0.7103.177": [
-		"36.6.0",
-		"36.7.0",
-		"36.7.1",
-		"36.7.3",
-		"36.7.4",
-		"36.8.0",
-		"36.8.1",
-		"36.9.0",
-		"36.9.1",
-		"36.9.2",
-		"36.9.3",
-		"36.9.4",
-		"36.9.5"
-	],
-	"137.0.7151.0": [
-		"37.0.0-alpha.1",
-		"37.0.0-alpha.2"
-	],
-	"138.0.7156.0": [
-		"37.0.0-alpha.3"
-	],
-	"138.0.7165.0": [
-		"37.0.0-alpha.4"
-	],
-	"138.0.7177.0": [
-		"37.0.0-alpha.5"
-	],
-	"138.0.7178.0": [
-		"37.0.0-alpha.6",
-		"37.0.0-alpha.7",
-		"37.0.0-beta.1",
-		"37.0.0-beta.2"
-	],
-	"138.0.7190.0": [
-		"37.0.0-beta.3"
-	],
-	"138.0.7204.15": [
-		"37.0.0-beta.4",
-		"37.0.0-beta.5",
-		"37.0.0-beta.6",
-		"37.0.0-beta.7"
-	],
-	"138.0.7204.23": [
-		"37.0.0-beta.8"
-	],
-	"138.0.7204.35": [
-		"37.0.0-beta.9",
-		"37.0.0",
-		"37.1.0"
-	],
-	"138.0.7204.97": [
-		"37.2.0",
-		"37.2.1"
-	],
-	"138.0.7204.100": [
-		"37.2.2",
-		"37.2.3"
-	],
-	"138.0.7204.157": [
-		"37.2.4"
-	],
-	"138.0.7204.168": [
-		"37.2.5"
-	],
-	"138.0.7204.185": [
-		"37.2.6"
-	],
-	"138.0.7204.224": [
-		"37.3.0"
-	],
-	"138.0.7204.235": [
-		"37.3.1"
-	],
-	"138.0.7204.243": [
-		"37.4.0"
-	],
-	"138.0.7204.251": [
-		"37.5.0",
-		"37.5.1",
-		"37.6.0",
-		"37.6.1",
-		"37.7.0",
-		"37.7.1",
-		"37.8.0",
-		"37.9.0",
-		"37.10.0",
-		"37.10.1",
-		"37.10.2",
-		"37.10.3"
-	],
-	"139.0.7219.0": [
-		"38.0.0-alpha.1",
-		"38.0.0-alpha.2",
-		"38.0.0-alpha.3"
-	],
-	"140.0.7261.0": [
-		"38.0.0-alpha.4",
-		"38.0.0-alpha.5",
-		"38.0.0-alpha.6"
-	],
-	"140.0.7281.0": [
-		"38.0.0-alpha.7",
-		"38.0.0-alpha.8"
-	],
-	"140.0.7301.0": [
-		"38.0.0-alpha.9"
-	],
-	"140.0.7309.0": [
-		"38.0.0-alpha.10"
-	],
-	"140.0.7312.0": [
-		"38.0.0-alpha.11"
-	],
-	"140.0.7314.0": [
-		"38.0.0-alpha.12",
-		"38.0.0-alpha.13",
-		"38.0.0-beta.1"
-	],
-	"140.0.7327.0": [
-		"38.0.0-beta.2",
-		"38.0.0-beta.3"
-	],
-	"140.0.7339.2": [
-		"38.0.0-beta.4",
-		"38.0.0-beta.5",
-		"38.0.0-beta.6"
-	],
-	"140.0.7339.16": [
-		"38.0.0-beta.7"
-	],
-	"140.0.7339.24": [
-		"38.0.0-beta.8",
-		"38.0.0-beta.9"
-	],
-	"140.0.7339.41": [
-		"38.0.0-beta.11",
-		"38.0.0"
-	],
-	"140.0.7339.80": [
-		"38.1.0"
-	],
-	"140.0.7339.133": [
-		"38.1.1",
-		"38.1.2",
-		"38.2.0",
-		"38.2.1",
-		"38.2.2"
-	],
-	"140.0.7339.240": [
-		"38.3.0",
-		"38.4.0"
-	],
-	"140.0.7339.249": [
-		"38.5.0",
-		"38.6.0",
-		"38.7.0",
-		"38.7.1",
-		"38.7.2"
-	],
-	"141.0.7361.0": [
-		"39.0.0-alpha.1",
-		"39.0.0-alpha.2"
-	],
-	"141.0.7390.7": [
-		"39.0.0-alpha.3",
-		"39.0.0-alpha.4",
-		"39.0.0-alpha.5"
-	],
-	"142.0.7417.0": [
-		"39.0.0-alpha.6",
-		"39.0.0-alpha.7",
-		"39.0.0-alpha.8",
-		"39.0.0-alpha.9",
-		"39.0.0-beta.1",
-		"39.0.0-beta.2",
-		"39.0.0-beta.3"
-	],
-	"142.0.7444.34": [
-		"39.0.0-beta.4",
-		"39.0.0-beta.5"
-	],
-	"142.0.7444.52": [
-		"39.0.0"
-	],
-	"142.0.7444.59": [
-		"39.1.0",
-		"39.1.1"
-	],
-	"142.0.7444.134": [
-		"39.1.2"
-	],
-	"142.0.7444.162": [
-		"39.2.0",
-		"39.2.1",
-		"39.2.2"
-	],
-	"142.0.7444.175": [
-		"39.2.3"
-	],
-	"142.0.7444.177": [
-		"39.2.4",
-		"39.2.5"
-	],
-	"142.0.7444.226": [
-		"39.2.6"
-	],
-	"143.0.7499.0": [
-		"40.0.0-alpha.2"
-	],
-	"144.0.7506.0": [
-		"40.0.0-alpha.4"
-	],
-	"144.0.7526.0": [
-		"40.0.0-alpha.5",
-		"40.0.0-alpha.6",
-		"40.0.0-alpha.7",
-		"40.0.0-alpha.8"
-	],
-	"144.0.7527.0": [
-		"40.0.0-beta.1",
-		"40.0.0-beta.2"
-	],
-	"144.0.7547.0": [
-		"40.0.0-beta.3"
-	]
-};
Index: de_modules/electron-to-chromium/full-chromium-versions.json
===================================================================
--- node_modules/electron-to-chromium/full-chromium-versions.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6"],"108.0.5355.0":["22.0.0-alpha.7"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3","25.9.4","25.9.5","25.9.6","25.9.7","25.9.8"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5"],"116.0.5815.0":["26.0.0-alpha.6"],"116.0.5831.0":["26.0.0-alpha.7"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2","26.4.3","26.5.0","26.6.0","26.6.1","26.6.2","26.6.3","26.6.4","26.6.5","26.6.6","26.6.7","26.6.8","26.6.9","26.6.10"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"118.0.5993.120":["27.0.3"],"118.0.5993.129":["27.0.4"],"118.0.5993.144":["27.1.0","27.1.2"],"118.0.5993.159":["27.1.3","27.2.0","27.2.1","27.2.2","27.2.3","27.2.4","27.3.0","27.3.1","27.3.2","27.3.3","27.3.4","27.3.5","27.3.6","27.3.7","27.3.8","27.3.9","27.3.10","27.3.11"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6","28.0.0-alpha.7","28.0.0-beta.1"],"120.0.6099.0":["28.0.0-beta.2"],"120.0.6099.5":["28.0.0-beta.3","28.0.0-beta.4"],"120.0.6099.18":["28.0.0-beta.5","28.0.0-beta.6","28.0.0-beta.7","28.0.0-beta.8","28.0.0-beta.9","28.0.0-beta.10"],"120.0.6099.35":["28.0.0-beta.11"],"120.0.6099.56":["28.0.0"],"120.0.6099.109":["28.1.0","28.1.1"],"120.0.6099.199":["28.1.2","28.1.3"],"120.0.6099.216":["28.1.4"],"120.0.6099.227":["28.2.0"],"120.0.6099.268":["28.2.1"],"120.0.6099.276":["28.2.2"],"120.0.6099.283":["28.2.3"],"120.0.6099.291":["28.2.4","28.2.5","28.2.6","28.2.7","28.2.8","28.2.9","28.2.10","28.3.0","28.3.1","28.3.2","28.3.3"],"121.0.6147.0":["29.0.0-alpha.1","29.0.0-alpha.2","29.0.0-alpha.3"],"121.0.6159.0":["29.0.0-alpha.4","29.0.0-alpha.5","29.0.0-alpha.6","29.0.0-alpha.7"],"122.0.6194.0":["29.0.0-alpha.8"],"122.0.6236.2":["29.0.0-alpha.9","29.0.0-alpha.10","29.0.0-alpha.11","29.0.0-beta.1","29.0.0-beta.2"],"122.0.6261.6":["29.0.0-beta.3","29.0.0-beta.4"],"122.0.6261.18":["29.0.0-beta.5","29.0.0-beta.6","29.0.0-beta.7","29.0.0-beta.8","29.0.0-beta.9","29.0.0-beta.10","29.0.0-beta.11"],"122.0.6261.29":["29.0.0-beta.12"],"122.0.6261.39":["29.0.0"],"122.0.6261.57":["29.0.1"],"122.0.6261.70":["29.1.0"],"122.0.6261.111":["29.1.1"],"122.0.6261.112":["29.1.2","29.1.3"],"122.0.6261.129":["29.1.4"],"122.0.6261.130":["29.1.5"],"122.0.6261.139":["29.1.6"],"122.0.6261.156":["29.2.0","29.3.0","29.3.1","29.3.2","29.3.3","29.4.0","29.4.1","29.4.2","29.4.3","29.4.4","29.4.5","29.4.6"],"123.0.6296.0":["30.0.0-alpha.1"],"123.0.6312.5":["30.0.0-alpha.2"],"124.0.6323.0":["30.0.0-alpha.3","30.0.0-alpha.4"],"124.0.6331.0":["30.0.0-alpha.5","30.0.0-alpha.6"],"124.0.6353.0":["30.0.0-alpha.7"],"124.0.6359.0":["30.0.0-beta.1","30.0.0-beta.2"],"124.0.6367.9":["30.0.0-beta.3","30.0.0-beta.4","30.0.0-beta.5"],"124.0.6367.18":["30.0.0-beta.6"],"124.0.6367.29":["30.0.0-beta.7","30.0.0-beta.8"],"124.0.6367.49":["30.0.0"],"124.0.6367.60":["30.0.1"],"124.0.6367.91":["30.0.2"],"124.0.6367.119":["30.0.3"],"124.0.6367.201":["30.0.4"],"124.0.6367.207":["30.0.5","30.0.6"],"124.0.6367.221":["30.0.7"],"124.0.6367.230":["30.0.8"],"124.0.6367.233":["30.0.9"],"124.0.6367.243":["30.1.0","30.1.1","30.1.2","30.2.0","30.3.0","30.3.1","30.4.0","30.5.0","30.5.1"],"125.0.6412.0":["31.0.0-alpha.1","31.0.0-alpha.2","31.0.0-alpha.3","31.0.0-alpha.4","31.0.0-alpha.5"],"126.0.6445.0":["31.0.0-beta.1","31.0.0-beta.2","31.0.0-beta.3","31.0.0-beta.4","31.0.0-beta.5","31.0.0-beta.6","31.0.0-beta.7","31.0.0-beta.8","31.0.0-beta.9"],"126.0.6478.36":["31.0.0-beta.10","31.0.0","31.0.1"],"126.0.6478.61":["31.0.2"],"126.0.6478.114":["31.1.0"],"126.0.6478.127":["31.2.0","31.2.1"],"126.0.6478.183":["31.3.0"],"126.0.6478.185":["31.3.1"],"126.0.6478.234":["31.4.0","31.5.0","31.6.0","31.7.0","31.7.1","31.7.2","31.7.3","31.7.4","31.7.5","31.7.6","31.7.7"],"127.0.6521.0":["32.0.0-alpha.1","32.0.0-alpha.2","32.0.0-alpha.3","32.0.0-alpha.4","32.0.0-alpha.5"],"128.0.6571.0":["32.0.0-alpha.6","32.0.0-alpha.7"],"128.0.6573.0":["32.0.0-alpha.8","32.0.0-alpha.9","32.0.0-alpha.10","32.0.0-beta.1"],"128.0.6611.0":["32.0.0-beta.2"],"128.0.6613.7":["32.0.0-beta.3"],"128.0.6613.18":["32.0.0-beta.4"],"128.0.6613.27":["32.0.0-beta.5","32.0.0-beta.6","32.0.0-beta.7"],"128.0.6613.36":["32.0.0","32.0.1"],"128.0.6613.84":["32.0.2"],"128.0.6613.120":["32.1.0"],"128.0.6613.137":["32.1.1"],"128.0.6613.162":["32.1.2"],"128.0.6613.178":["32.2.0"],"128.0.6613.186":["32.2.1","32.2.2","32.2.3","32.2.4","32.2.5","32.2.6","32.2.7","32.2.8","32.3.0","32.3.1","32.3.2","32.3.3"],"129.0.6668.0":["33.0.0-alpha.1"],"130.0.6672.0":["33.0.0-alpha.2","33.0.0-alpha.3","33.0.0-alpha.4","33.0.0-alpha.5","33.0.0-alpha.6","33.0.0-beta.1","33.0.0-beta.2","33.0.0-beta.3","33.0.0-beta.4"],"130.0.6723.19":["33.0.0-beta.5","33.0.0-beta.6","33.0.0-beta.7"],"130.0.6723.31":["33.0.0-beta.8","33.0.0-beta.9","33.0.0-beta.10"],"130.0.6723.44":["33.0.0-beta.11","33.0.0"],"130.0.6723.59":["33.0.1","33.0.2"],"130.0.6723.91":["33.1.0"],"130.0.6723.118":["33.2.0"],"130.0.6723.137":["33.2.1"],"130.0.6723.152":["33.3.0"],"130.0.6723.170":["33.3.1"],"130.0.6723.191":["33.3.2","33.4.0","33.4.1","33.4.2","33.4.3","33.4.4","33.4.5","33.4.6","33.4.7","33.4.8","33.4.9","33.4.10","33.4.11"],"131.0.6776.0":["34.0.0-alpha.1"],"132.0.6779.0":["34.0.0-alpha.2"],"132.0.6789.1":["34.0.0-alpha.3","34.0.0-alpha.4","34.0.0-alpha.5","34.0.0-alpha.6","34.0.0-alpha.7"],"132.0.6820.0":["34.0.0-alpha.8"],"132.0.6824.0":["34.0.0-alpha.9","34.0.0-beta.1","34.0.0-beta.2","34.0.0-beta.3"],"132.0.6834.6":["34.0.0-beta.4","34.0.0-beta.5"],"132.0.6834.15":["34.0.0-beta.6","34.0.0-beta.7","34.0.0-beta.8"],"132.0.6834.32":["34.0.0-beta.9","34.0.0-beta.10","34.0.0-beta.11"],"132.0.6834.46":["34.0.0-beta.12","34.0.0-beta.13"],"132.0.6834.57":["34.0.0-beta.14","34.0.0-beta.15","34.0.0-beta.16"],"132.0.6834.83":["34.0.0","34.0.1"],"132.0.6834.159":["34.0.2"],"132.0.6834.194":["34.1.0","34.1.1"],"132.0.6834.196":["34.2.0"],"132.0.6834.210":["34.3.0","34.3.1","34.3.2","34.3.3","34.3.4","34.4.0","34.4.1","34.5.0","34.5.1","34.5.2","34.5.3","34.5.4","34.5.5","34.5.6","34.5.7","34.5.8"],"133.0.6920.0":["35.0.0-alpha.1","35.0.0-alpha.2","35.0.0-alpha.3","35.0.0-alpha.4","35.0.0-alpha.5","35.0.0-beta.1"],"134.0.6968.0":["35.0.0-beta.2","35.0.0-beta.3","35.0.0-beta.4"],"134.0.6989.0":["35.0.0-beta.5"],"134.0.6990.0":["35.0.0-beta.6","35.0.0-beta.7"],"134.0.6998.10":["35.0.0-beta.8","35.0.0-beta.9"],"134.0.6998.23":["35.0.0-beta.10","35.0.0-beta.11","35.0.0-beta.12"],"134.0.6998.44":["35.0.0-beta.13","35.0.0","35.0.1"],"134.0.6998.88":["35.0.2","35.0.3"],"134.0.6998.165":["35.1.0","35.1.1"],"134.0.6998.178":["35.1.2"],"134.0.6998.179":["35.1.3","35.1.4","35.1.5"],"134.0.6998.205":["35.2.0","35.2.1","35.2.2","35.3.0","35.4.0","35.5.0","35.5.1","35.6.0","35.7.0","35.7.1","35.7.2","35.7.4","35.7.5"],"135.0.7049.5":["36.0.0-alpha.1"],"136.0.7062.0":["36.0.0-alpha.2","36.0.0-alpha.3","36.0.0-alpha.4"],"136.0.7067.0":["36.0.0-alpha.5","36.0.0-alpha.6","36.0.0-beta.1","36.0.0-beta.2","36.0.0-beta.3","36.0.0-beta.4"],"136.0.7103.17":["36.0.0-beta.5"],"136.0.7103.25":["36.0.0-beta.6","36.0.0-beta.7"],"136.0.7103.33":["36.0.0-beta.8","36.0.0-beta.9"],"136.0.7103.48":["36.0.0","36.0.1"],"136.0.7103.49":["36.1.0","36.2.0"],"136.0.7103.93":["36.2.1"],"136.0.7103.113":["36.3.0","36.3.1"],"136.0.7103.115":["36.3.2"],"136.0.7103.149":["36.4.0"],"136.0.7103.168":["36.5.0"],"136.0.7103.177":["36.6.0","36.7.0","36.7.1","36.7.3","36.7.4","36.8.0","36.8.1","36.9.0","36.9.1","36.9.2","36.9.3","36.9.4","36.9.5"],"137.0.7151.0":["37.0.0-alpha.1","37.0.0-alpha.2"],"138.0.7156.0":["37.0.0-alpha.3"],"138.0.7165.0":["37.0.0-alpha.4"],"138.0.7177.0":["37.0.0-alpha.5"],"138.0.7178.0":["37.0.0-alpha.6","37.0.0-alpha.7","37.0.0-beta.1","37.0.0-beta.2"],"138.0.7190.0":["37.0.0-beta.3"],"138.0.7204.15":["37.0.0-beta.4","37.0.0-beta.5","37.0.0-beta.6","37.0.0-beta.7"],"138.0.7204.23":["37.0.0-beta.8"],"138.0.7204.35":["37.0.0-beta.9","37.0.0","37.1.0"],"138.0.7204.97":["37.2.0","37.2.1"],"138.0.7204.100":["37.2.2","37.2.3"],"138.0.7204.157":["37.2.4"],"138.0.7204.168":["37.2.5"],"138.0.7204.185":["37.2.6"],"138.0.7204.224":["37.3.0"],"138.0.7204.235":["37.3.1"],"138.0.7204.243":["37.4.0"],"138.0.7204.251":["37.5.0","37.5.1","37.6.0","37.6.1","37.7.0","37.7.1","37.8.0","37.9.0","37.10.0","37.10.1","37.10.2","37.10.3"],"139.0.7219.0":["38.0.0-alpha.1","38.0.0-alpha.2","38.0.0-alpha.3"],"140.0.7261.0":["38.0.0-alpha.4","38.0.0-alpha.5","38.0.0-alpha.6"],"140.0.7281.0":["38.0.0-alpha.7","38.0.0-alpha.8"],"140.0.7301.0":["38.0.0-alpha.9"],"140.0.7309.0":["38.0.0-alpha.10"],"140.0.7312.0":["38.0.0-alpha.11"],"140.0.7314.0":["38.0.0-alpha.12","38.0.0-alpha.13","38.0.0-beta.1"],"140.0.7327.0":["38.0.0-beta.2","38.0.0-beta.3"],"140.0.7339.2":["38.0.0-beta.4","38.0.0-beta.5","38.0.0-beta.6"],"140.0.7339.16":["38.0.0-beta.7"],"140.0.7339.24":["38.0.0-beta.8","38.0.0-beta.9"],"140.0.7339.41":["38.0.0-beta.11","38.0.0"],"140.0.7339.80":["38.1.0"],"140.0.7339.133":["38.1.1","38.1.2","38.2.0","38.2.1","38.2.2"],"140.0.7339.240":["38.3.0","38.4.0"],"140.0.7339.249":["38.5.0","38.6.0","38.7.0","38.7.1","38.7.2"],"141.0.7361.0":["39.0.0-alpha.1","39.0.0-alpha.2"],"141.0.7390.7":["39.0.0-alpha.3","39.0.0-alpha.4","39.0.0-alpha.5"],"142.0.7417.0":["39.0.0-alpha.6","39.0.0-alpha.7","39.0.0-alpha.8","39.0.0-alpha.9","39.0.0-beta.1","39.0.0-beta.2","39.0.0-beta.3"],"142.0.7444.34":["39.0.0-beta.4","39.0.0-beta.5"],"142.0.7444.52":["39.0.0"],"142.0.7444.59":["39.1.0","39.1.1"],"142.0.7444.134":["39.1.2"],"142.0.7444.162":["39.2.0","39.2.1","39.2.2"],"142.0.7444.175":["39.2.3"],"142.0.7444.177":["39.2.4","39.2.5"],"142.0.7444.226":["39.2.6"],"143.0.7499.0":["40.0.0-alpha.2"],"144.0.7506.0":["40.0.0-alpha.4"],"144.0.7526.0":["40.0.0-alpha.5","40.0.0-alpha.6","40.0.0-alpha.7","40.0.0-alpha.8"],"144.0.7527.0":["40.0.0-beta.1","40.0.0-beta.2"],"144.0.7547.0":["40.0.0-beta.3"]}
Index: de_modules/electron-to-chromium/full-versions.js
===================================================================
--- node_modules/electron-to-chromium/full-versions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1684 +1,0 @@
-module.exports = {
-	"0.20.0": "39.0.2171.65",
-	"0.20.1": "39.0.2171.65",
-	"0.20.2": "39.0.2171.65",
-	"0.20.3": "39.0.2171.65",
-	"0.20.4": "39.0.2171.65",
-	"0.20.5": "39.0.2171.65",
-	"0.20.6": "39.0.2171.65",
-	"0.20.7": "39.0.2171.65",
-	"0.20.8": "39.0.2171.65",
-	"0.21.0": "40.0.2214.91",
-	"0.21.1": "40.0.2214.91",
-	"0.21.2": "40.0.2214.91",
-	"0.21.3": "41.0.2272.76",
-	"0.22.1": "41.0.2272.76",
-	"0.22.2": "41.0.2272.76",
-	"0.22.3": "41.0.2272.76",
-	"0.23.0": "41.0.2272.76",
-	"0.24.0": "41.0.2272.76",
-	"0.25.0": "42.0.2311.107",
-	"0.25.1": "42.0.2311.107",
-	"0.25.2": "42.0.2311.107",
-	"0.25.3": "42.0.2311.107",
-	"0.26.0": "42.0.2311.107",
-	"0.26.1": "42.0.2311.107",
-	"0.27.0": "42.0.2311.107",
-	"0.27.1": "42.0.2311.107",
-	"0.27.2": "43.0.2357.65",
-	"0.27.3": "43.0.2357.65",
-	"0.28.0": "43.0.2357.65",
-	"0.28.1": "43.0.2357.65",
-	"0.28.2": "43.0.2357.65",
-	"0.28.3": "43.0.2357.65",
-	"0.29.1": "43.0.2357.65",
-	"0.29.2": "43.0.2357.65",
-	"0.30.4": "44.0.2403.125",
-	"0.31.0": "44.0.2403.125",
-	"0.31.2": "45.0.2454.85",
-	"0.32.2": "45.0.2454.85",
-	"0.32.3": "45.0.2454.85",
-	"0.33.0": "45.0.2454.85",
-	"0.33.1": "45.0.2454.85",
-	"0.33.2": "45.0.2454.85",
-	"0.33.3": "45.0.2454.85",
-	"0.33.4": "45.0.2454.85",
-	"0.33.6": "45.0.2454.85",
-	"0.33.7": "45.0.2454.85",
-	"0.33.8": "45.0.2454.85",
-	"0.33.9": "45.0.2454.85",
-	"0.34.0": "45.0.2454.85",
-	"0.34.1": "45.0.2454.85",
-	"0.34.2": "45.0.2454.85",
-	"0.34.3": "45.0.2454.85",
-	"0.34.4": "45.0.2454.85",
-	"0.35.1": "45.0.2454.85",
-	"0.35.2": "45.0.2454.85",
-	"0.35.3": "45.0.2454.85",
-	"0.35.4": "45.0.2454.85",
-	"0.35.5": "45.0.2454.85",
-	"0.36.0": "47.0.2526.73",
-	"0.36.2": "47.0.2526.73",
-	"0.36.3": "47.0.2526.73",
-	"0.36.4": "47.0.2526.73",
-	"0.36.5": "47.0.2526.110",
-	"0.36.6": "47.0.2526.110",
-	"0.36.7": "47.0.2526.110",
-	"0.36.8": "47.0.2526.110",
-	"0.36.9": "47.0.2526.110",
-	"0.36.10": "47.0.2526.110",
-	"0.36.11": "47.0.2526.110",
-	"0.36.12": "47.0.2526.110",
-	"0.37.0": "49.0.2623.75",
-	"0.37.1": "49.0.2623.75",
-	"0.37.3": "49.0.2623.75",
-	"0.37.4": "49.0.2623.75",
-	"0.37.5": "49.0.2623.75",
-	"0.37.6": "49.0.2623.75",
-	"0.37.7": "49.0.2623.75",
-	"0.37.8": "49.0.2623.75",
-	"1.0.0": "49.0.2623.75",
-	"1.0.1": "49.0.2623.75",
-	"1.0.2": "49.0.2623.75",
-	"1.1.0": "50.0.2661.102",
-	"1.1.1": "50.0.2661.102",
-	"1.1.2": "50.0.2661.102",
-	"1.1.3": "50.0.2661.102",
-	"1.2.0": "51.0.2704.63",
-	"1.2.1": "51.0.2704.63",
-	"1.2.2": "51.0.2704.84",
-	"1.2.3": "51.0.2704.84",
-	"1.2.4": "51.0.2704.103",
-	"1.2.5": "51.0.2704.103",
-	"1.2.6": "51.0.2704.106",
-	"1.2.7": "51.0.2704.106",
-	"1.2.8": "51.0.2704.106",
-	"1.3.0": "52.0.2743.82",
-	"1.3.1": "52.0.2743.82",
-	"1.3.2": "52.0.2743.82",
-	"1.3.3": "52.0.2743.82",
-	"1.3.4": "52.0.2743.82",
-	"1.3.5": "52.0.2743.82",
-	"1.3.6": "52.0.2743.82",
-	"1.3.7": "52.0.2743.82",
-	"1.3.9": "52.0.2743.82",
-	"1.3.10": "52.0.2743.82",
-	"1.3.13": "52.0.2743.82",
-	"1.3.14": "52.0.2743.82",
-	"1.3.15": "52.0.2743.82",
-	"1.4.0": "53.0.2785.113",
-	"1.4.1": "53.0.2785.113",
-	"1.4.2": "53.0.2785.113",
-	"1.4.3": "53.0.2785.113",
-	"1.4.4": "53.0.2785.113",
-	"1.4.5": "53.0.2785.113",
-	"1.4.6": "53.0.2785.143",
-	"1.4.7": "53.0.2785.143",
-	"1.4.8": "53.0.2785.143",
-	"1.4.10": "53.0.2785.143",
-	"1.4.11": "53.0.2785.143",
-	"1.4.12": "54.0.2840.51",
-	"1.4.13": "53.0.2785.143",
-	"1.4.14": "53.0.2785.143",
-	"1.4.15": "53.0.2785.143",
-	"1.4.16": "53.0.2785.143",
-	"1.5.0": "54.0.2840.101",
-	"1.5.1": "54.0.2840.101",
-	"1.6.0": "56.0.2924.87",
-	"1.6.1": "56.0.2924.87",
-	"1.6.2": "56.0.2924.87",
-	"1.6.3": "56.0.2924.87",
-	"1.6.4": "56.0.2924.87",
-	"1.6.5": "56.0.2924.87",
-	"1.6.6": "56.0.2924.87",
-	"1.6.7": "56.0.2924.87",
-	"1.6.8": "56.0.2924.87",
-	"1.6.9": "56.0.2924.87",
-	"1.6.10": "56.0.2924.87",
-	"1.6.11": "56.0.2924.87",
-	"1.6.12": "56.0.2924.87",
-	"1.6.13": "56.0.2924.87",
-	"1.6.14": "56.0.2924.87",
-	"1.6.15": "56.0.2924.87",
-	"1.6.16": "56.0.2924.87",
-	"1.6.17": "56.0.2924.87",
-	"1.6.18": "56.0.2924.87",
-	"1.7.0": "58.0.3029.110",
-	"1.7.1": "58.0.3029.110",
-	"1.7.2": "58.0.3029.110",
-	"1.7.3": "58.0.3029.110",
-	"1.7.4": "58.0.3029.110",
-	"1.7.5": "58.0.3029.110",
-	"1.7.6": "58.0.3029.110",
-	"1.7.7": "58.0.3029.110",
-	"1.7.8": "58.0.3029.110",
-	"1.7.9": "58.0.3029.110",
-	"1.7.10": "58.0.3029.110",
-	"1.7.11": "58.0.3029.110",
-	"1.7.12": "58.0.3029.110",
-	"1.7.13": "58.0.3029.110",
-	"1.7.14": "58.0.3029.110",
-	"1.7.15": "58.0.3029.110",
-	"1.7.16": "58.0.3029.110",
-	"1.8.0": "59.0.3071.115",
-	"1.8.1": "59.0.3071.115",
-	"1.8.2-beta.1": "59.0.3071.115",
-	"1.8.2-beta.2": "59.0.3071.115",
-	"1.8.2-beta.3": "59.0.3071.115",
-	"1.8.2-beta.4": "59.0.3071.115",
-	"1.8.2-beta.5": "59.0.3071.115",
-	"1.8.2": "59.0.3071.115",
-	"1.8.3": "59.0.3071.115",
-	"1.8.4": "59.0.3071.115",
-	"1.8.5": "59.0.3071.115",
-	"1.8.6": "59.0.3071.115",
-	"1.8.7": "59.0.3071.115",
-	"1.8.8": "59.0.3071.115",
-	"2.0.0-beta.1": "61.0.3163.100",
-	"2.0.0-beta.2": "61.0.3163.100",
-	"2.0.0-beta.3": "61.0.3163.100",
-	"2.0.0-beta.4": "61.0.3163.100",
-	"2.0.0-beta.5": "61.0.3163.100",
-	"2.0.0-beta.6": "61.0.3163.100",
-	"2.0.0-beta.7": "61.0.3163.100",
-	"2.0.0-beta.8": "61.0.3163.100",
-	"2.0.0": "61.0.3163.100",
-	"2.0.1": "61.0.3163.100",
-	"2.0.2": "61.0.3163.100",
-	"2.0.3": "61.0.3163.100",
-	"2.0.4": "61.0.3163.100",
-	"2.0.5": "61.0.3163.100",
-	"2.0.6": "61.0.3163.100",
-	"2.0.7": "61.0.3163.100",
-	"2.0.8": "61.0.3163.100",
-	"2.0.9": "61.0.3163.100",
-	"2.0.10": "61.0.3163.100",
-	"2.0.11": "61.0.3163.100",
-	"2.0.12": "61.0.3163.100",
-	"2.0.13": "61.0.3163.100",
-	"2.0.14": "61.0.3163.100",
-	"2.0.15": "61.0.3163.100",
-	"2.0.16": "61.0.3163.100",
-	"2.0.17": "61.0.3163.100",
-	"2.0.18": "61.0.3163.100",
-	"2.1.0-unsupported.20180809": "61.0.3163.100",
-	"3.0.0-beta.1": "66.0.3359.181",
-	"3.0.0-beta.2": "66.0.3359.181",
-	"3.0.0-beta.3": "66.0.3359.181",
-	"3.0.0-beta.4": "66.0.3359.181",
-	"3.0.0-beta.5": "66.0.3359.181",
-	"3.0.0-beta.6": "66.0.3359.181",
-	"3.0.0-beta.7": "66.0.3359.181",
-	"3.0.0-beta.8": "66.0.3359.181",
-	"3.0.0-beta.9": "66.0.3359.181",
-	"3.0.0-beta.10": "66.0.3359.181",
-	"3.0.0-beta.11": "66.0.3359.181",
-	"3.0.0-beta.12": "66.0.3359.181",
-	"3.0.0-beta.13": "66.0.3359.181",
-	"3.0.0": "66.0.3359.181",
-	"3.0.1": "66.0.3359.181",
-	"3.0.2": "66.0.3359.181",
-	"3.0.3": "66.0.3359.181",
-	"3.0.4": "66.0.3359.181",
-	"3.0.5": "66.0.3359.181",
-	"3.0.6": "66.0.3359.181",
-	"3.0.7": "66.0.3359.181",
-	"3.0.8": "66.0.3359.181",
-	"3.0.9": "66.0.3359.181",
-	"3.0.10": "66.0.3359.181",
-	"3.0.11": "66.0.3359.181",
-	"3.0.12": "66.0.3359.181",
-	"3.0.13": "66.0.3359.181",
-	"3.0.14": "66.0.3359.181",
-	"3.0.15": "66.0.3359.181",
-	"3.0.16": "66.0.3359.181",
-	"3.1.0-beta.1": "66.0.3359.181",
-	"3.1.0-beta.2": "66.0.3359.181",
-	"3.1.0-beta.3": "66.0.3359.181",
-	"3.1.0-beta.4": "66.0.3359.181",
-	"3.1.0-beta.5": "66.0.3359.181",
-	"3.1.0": "66.0.3359.181",
-	"3.1.1": "66.0.3359.181",
-	"3.1.2": "66.0.3359.181",
-	"3.1.3": "66.0.3359.181",
-	"3.1.4": "66.0.3359.181",
-	"3.1.5": "66.0.3359.181",
-	"3.1.6": "66.0.3359.181",
-	"3.1.7": "66.0.3359.181",
-	"3.1.8": "66.0.3359.181",
-	"3.1.9": "66.0.3359.181",
-	"3.1.10": "66.0.3359.181",
-	"3.1.11": "66.0.3359.181",
-	"3.1.12": "66.0.3359.181",
-	"3.1.13": "66.0.3359.181",
-	"4.0.0-beta.1": "69.0.3497.106",
-	"4.0.0-beta.2": "69.0.3497.106",
-	"4.0.0-beta.3": "69.0.3497.106",
-	"4.0.0-beta.4": "69.0.3497.106",
-	"4.0.0-beta.5": "69.0.3497.106",
-	"4.0.0-beta.6": "69.0.3497.106",
-	"4.0.0-beta.7": "69.0.3497.106",
-	"4.0.0-beta.8": "69.0.3497.106",
-	"4.0.0-beta.9": "69.0.3497.106",
-	"4.0.0-beta.10": "69.0.3497.106",
-	"4.0.0-beta.11": "69.0.3497.106",
-	"4.0.0": "69.0.3497.106",
-	"4.0.1": "69.0.3497.106",
-	"4.0.2": "69.0.3497.106",
-	"4.0.3": "69.0.3497.106",
-	"4.0.4": "69.0.3497.106",
-	"4.0.5": "69.0.3497.106",
-	"4.0.6": "69.0.3497.106",
-	"4.0.7": "69.0.3497.128",
-	"4.0.8": "69.0.3497.128",
-	"4.1.0": "69.0.3497.128",
-	"4.1.1": "69.0.3497.128",
-	"4.1.2": "69.0.3497.128",
-	"4.1.3": "69.0.3497.128",
-	"4.1.4": "69.0.3497.128",
-	"4.1.5": "69.0.3497.128",
-	"4.2.0": "69.0.3497.128",
-	"4.2.1": "69.0.3497.128",
-	"4.2.2": "69.0.3497.128",
-	"4.2.3": "69.0.3497.128",
-	"4.2.4": "69.0.3497.128",
-	"4.2.5": "69.0.3497.128",
-	"4.2.6": "69.0.3497.128",
-	"4.2.7": "69.0.3497.128",
-	"4.2.8": "69.0.3497.128",
-	"4.2.9": "69.0.3497.128",
-	"4.2.10": "69.0.3497.128",
-	"4.2.11": "69.0.3497.128",
-	"4.2.12": "69.0.3497.128",
-	"5.0.0-beta.1": "72.0.3626.52",
-	"5.0.0-beta.2": "72.0.3626.52",
-	"5.0.0-beta.3": "73.0.3683.27",
-	"5.0.0-beta.4": "73.0.3683.54",
-	"5.0.0-beta.5": "73.0.3683.61",
-	"5.0.0-beta.6": "73.0.3683.84",
-	"5.0.0-beta.7": "73.0.3683.94",
-	"5.0.0-beta.8": "73.0.3683.104",
-	"5.0.0-beta.9": "73.0.3683.117",
-	"5.0.0": "73.0.3683.119",
-	"5.0.1": "73.0.3683.121",
-	"5.0.2": "73.0.3683.121",
-	"5.0.3": "73.0.3683.121",
-	"5.0.4": "73.0.3683.121",
-	"5.0.5": "73.0.3683.121",
-	"5.0.6": "73.0.3683.121",
-	"5.0.7": "73.0.3683.121",
-	"5.0.8": "73.0.3683.121",
-	"5.0.9": "73.0.3683.121",
-	"5.0.10": "73.0.3683.121",
-	"5.0.11": "73.0.3683.121",
-	"5.0.12": "73.0.3683.121",
-	"5.0.13": "73.0.3683.121",
-	"6.0.0-beta.1": "76.0.3774.1",
-	"6.0.0-beta.2": "76.0.3783.1",
-	"6.0.0-beta.3": "76.0.3783.1",
-	"6.0.0-beta.4": "76.0.3783.1",
-	"6.0.0-beta.5": "76.0.3805.4",
-	"6.0.0-beta.6": "76.0.3809.3",
-	"6.0.0-beta.7": "76.0.3809.22",
-	"6.0.0-beta.8": "76.0.3809.26",
-	"6.0.0-beta.9": "76.0.3809.26",
-	"6.0.0-beta.10": "76.0.3809.37",
-	"6.0.0-beta.11": "76.0.3809.42",
-	"6.0.0-beta.12": "76.0.3809.54",
-	"6.0.0-beta.13": "76.0.3809.60",
-	"6.0.0-beta.14": "76.0.3809.68",
-	"6.0.0-beta.15": "76.0.3809.74",
-	"6.0.0": "76.0.3809.88",
-	"6.0.1": "76.0.3809.102",
-	"6.0.2": "76.0.3809.110",
-	"6.0.3": "76.0.3809.126",
-	"6.0.4": "76.0.3809.131",
-	"6.0.5": "76.0.3809.136",
-	"6.0.6": "76.0.3809.138",
-	"6.0.7": "76.0.3809.139",
-	"6.0.8": "76.0.3809.146",
-	"6.0.9": "76.0.3809.146",
-	"6.0.10": "76.0.3809.146",
-	"6.0.11": "76.0.3809.146",
-	"6.0.12": "76.0.3809.146",
-	"6.1.0": "76.0.3809.146",
-	"6.1.1": "76.0.3809.146",
-	"6.1.2": "76.0.3809.146",
-	"6.1.3": "76.0.3809.146",
-	"6.1.4": "76.0.3809.146",
-	"6.1.5": "76.0.3809.146",
-	"6.1.6": "76.0.3809.146",
-	"6.1.7": "76.0.3809.146",
-	"6.1.8": "76.0.3809.146",
-	"6.1.9": "76.0.3809.146",
-	"6.1.10": "76.0.3809.146",
-	"6.1.11": "76.0.3809.146",
-	"6.1.12": "76.0.3809.146",
-	"7.0.0-beta.1": "78.0.3866.0",
-	"7.0.0-beta.2": "78.0.3866.0",
-	"7.0.0-beta.3": "78.0.3866.0",
-	"7.0.0-beta.4": "78.0.3896.6",
-	"7.0.0-beta.5": "78.0.3905.1",
-	"7.0.0-beta.6": "78.0.3905.1",
-	"7.0.0-beta.7": "78.0.3905.1",
-	"7.0.0": "78.0.3905.1",
-	"7.0.1": "78.0.3904.92",
-	"7.1.0": "78.0.3904.94",
-	"7.1.1": "78.0.3904.99",
-	"7.1.2": "78.0.3904.113",
-	"7.1.3": "78.0.3904.126",
-	"7.1.4": "78.0.3904.130",
-	"7.1.5": "78.0.3904.130",
-	"7.1.6": "78.0.3904.130",
-	"7.1.7": "78.0.3904.130",
-	"7.1.8": "78.0.3904.130",
-	"7.1.9": "78.0.3904.130",
-	"7.1.10": "78.0.3904.130",
-	"7.1.11": "78.0.3904.130",
-	"7.1.12": "78.0.3904.130",
-	"7.1.13": "78.0.3904.130",
-	"7.1.14": "78.0.3904.130",
-	"7.2.0": "78.0.3904.130",
-	"7.2.1": "78.0.3904.130",
-	"7.2.2": "78.0.3904.130",
-	"7.2.3": "78.0.3904.130",
-	"7.2.4": "78.0.3904.130",
-	"7.3.0": "78.0.3904.130",
-	"7.3.1": "78.0.3904.130",
-	"7.3.2": "78.0.3904.130",
-	"7.3.3": "78.0.3904.130",
-	"8.0.0-beta.1": "79.0.3931.0",
-	"8.0.0-beta.2": "79.0.3931.0",
-	"8.0.0-beta.3": "80.0.3955.0",
-	"8.0.0-beta.4": "80.0.3955.0",
-	"8.0.0-beta.5": "80.0.3987.14",
-	"8.0.0-beta.6": "80.0.3987.51",
-	"8.0.0-beta.7": "80.0.3987.59",
-	"8.0.0-beta.8": "80.0.3987.75",
-	"8.0.0-beta.9": "80.0.3987.75",
-	"8.0.0": "80.0.3987.86",
-	"8.0.1": "80.0.3987.86",
-	"8.0.2": "80.0.3987.86",
-	"8.0.3": "80.0.3987.134",
-	"8.1.0": "80.0.3987.137",
-	"8.1.1": "80.0.3987.141",
-	"8.2.0": "80.0.3987.158",
-	"8.2.1": "80.0.3987.163",
-	"8.2.2": "80.0.3987.163",
-	"8.2.3": "80.0.3987.163",
-	"8.2.4": "80.0.3987.165",
-	"8.2.5": "80.0.3987.165",
-	"8.3.0": "80.0.3987.165",
-	"8.3.1": "80.0.3987.165",
-	"8.3.2": "80.0.3987.165",
-	"8.3.3": "80.0.3987.165",
-	"8.3.4": "80.0.3987.165",
-	"8.4.0": "80.0.3987.165",
-	"8.4.1": "80.0.3987.165",
-	"8.5.0": "80.0.3987.165",
-	"8.5.1": "80.0.3987.165",
-	"8.5.2": "80.0.3987.165",
-	"8.5.3": "80.0.3987.163",
-	"8.5.4": "80.0.3987.163",
-	"8.5.5": "80.0.3987.163",
-	"9.0.0-beta.1": "82.0.4048.0",
-	"9.0.0-beta.2": "82.0.4048.0",
-	"9.0.0-beta.3": "82.0.4048.0",
-	"9.0.0-beta.4": "82.0.4048.0",
-	"9.0.0-beta.5": "82.0.4048.0",
-	"9.0.0-beta.6": "82.0.4058.2",
-	"9.0.0-beta.7": "82.0.4058.2",
-	"9.0.0-beta.9": "82.0.4058.2",
-	"9.0.0-beta.10": "82.0.4085.10",
-	"9.0.0-beta.11": "82.0.4085.14",
-	"9.0.0-beta.12": "82.0.4085.14",
-	"9.0.0-beta.13": "82.0.4085.14",
-	"9.0.0-beta.14": "82.0.4085.27",
-	"9.0.0-beta.15": "83.0.4102.3",
-	"9.0.0-beta.16": "83.0.4102.3",
-	"9.0.0-beta.17": "83.0.4103.14",
-	"9.0.0-beta.18": "83.0.4103.16",
-	"9.0.0-beta.19": "83.0.4103.24",
-	"9.0.0-beta.20": "83.0.4103.26",
-	"9.0.0-beta.21": "83.0.4103.26",
-	"9.0.0-beta.22": "83.0.4103.34",
-	"9.0.0-beta.23": "83.0.4103.44",
-	"9.0.0-beta.24": "83.0.4103.45",
-	"9.0.0": "83.0.4103.64",
-	"9.0.1": "83.0.4103.94",
-	"9.0.2": "83.0.4103.94",
-	"9.0.3": "83.0.4103.100",
-	"9.0.4": "83.0.4103.104",
-	"9.0.5": "83.0.4103.119",
-	"9.1.0": "83.0.4103.122",
-	"9.1.1": "83.0.4103.122",
-	"9.1.2": "83.0.4103.122",
-	"9.2.0": "83.0.4103.122",
-	"9.2.1": "83.0.4103.122",
-	"9.3.0": "83.0.4103.122",
-	"9.3.1": "83.0.4103.122",
-	"9.3.2": "83.0.4103.122",
-	"9.3.3": "83.0.4103.122",
-	"9.3.4": "83.0.4103.122",
-	"9.3.5": "83.0.4103.122",
-	"9.4.0": "83.0.4103.122",
-	"9.4.1": "83.0.4103.122",
-	"9.4.2": "83.0.4103.122",
-	"9.4.3": "83.0.4103.122",
-	"9.4.4": "83.0.4103.122",
-	"10.0.0-beta.1": "84.0.4129.0",
-	"10.0.0-beta.2": "84.0.4129.0",
-	"10.0.0-beta.3": "85.0.4161.2",
-	"10.0.0-beta.4": "85.0.4161.2",
-	"10.0.0-beta.8": "85.0.4181.1",
-	"10.0.0-beta.9": "85.0.4181.1",
-	"10.0.0-beta.10": "85.0.4183.19",
-	"10.0.0-beta.11": "85.0.4183.20",
-	"10.0.0-beta.12": "85.0.4183.26",
-	"10.0.0-beta.13": "85.0.4183.39",
-	"10.0.0-beta.14": "85.0.4183.39",
-	"10.0.0-beta.15": "85.0.4183.39",
-	"10.0.0-beta.17": "85.0.4183.39",
-	"10.0.0-beta.19": "85.0.4183.39",
-	"10.0.0-beta.20": "85.0.4183.39",
-	"10.0.0-beta.21": "85.0.4183.39",
-	"10.0.0-beta.23": "85.0.4183.70",
-	"10.0.0-beta.24": "85.0.4183.78",
-	"10.0.0-beta.25": "85.0.4183.80",
-	"10.0.0": "85.0.4183.84",
-	"10.0.1": "85.0.4183.86",
-	"10.1.0": "85.0.4183.87",
-	"10.1.1": "85.0.4183.93",
-	"10.1.2": "85.0.4183.98",
-	"10.1.3": "85.0.4183.121",
-	"10.1.4": "85.0.4183.121",
-	"10.1.5": "85.0.4183.121",
-	"10.1.6": "85.0.4183.121",
-	"10.1.7": "85.0.4183.121",
-	"10.2.0": "85.0.4183.121",
-	"10.3.0": "85.0.4183.121",
-	"10.3.1": "85.0.4183.121",
-	"10.3.2": "85.0.4183.121",
-	"10.4.0": "85.0.4183.121",
-	"10.4.1": "85.0.4183.121",
-	"10.4.2": "85.0.4183.121",
-	"10.4.3": "85.0.4183.121",
-	"10.4.4": "85.0.4183.121",
-	"10.4.5": "85.0.4183.121",
-	"10.4.6": "85.0.4183.121",
-	"10.4.7": "85.0.4183.121",
-	"11.0.0-beta.1": "86.0.4234.0",
-	"11.0.0-beta.3": "86.0.4234.0",
-	"11.0.0-beta.4": "86.0.4234.0",
-	"11.0.0-beta.5": "86.0.4234.0",
-	"11.0.0-beta.6": "86.0.4234.0",
-	"11.0.0-beta.7": "86.0.4234.0",
-	"11.0.0-beta.8": "87.0.4251.1",
-	"11.0.0-beta.9": "87.0.4251.1",
-	"11.0.0-beta.11": "87.0.4251.1",
-	"11.0.0-beta.12": "87.0.4280.11",
-	"11.0.0-beta.13": "87.0.4280.11",
-	"11.0.0-beta.16": "87.0.4280.27",
-	"11.0.0-beta.17": "87.0.4280.27",
-	"11.0.0-beta.18": "87.0.4280.27",
-	"11.0.0-beta.19": "87.0.4280.27",
-	"11.0.0-beta.20": "87.0.4280.40",
-	"11.0.0-beta.22": "87.0.4280.47",
-	"11.0.0-beta.23": "87.0.4280.47",
-	"11.0.0": "87.0.4280.60",
-	"11.0.1": "87.0.4280.60",
-	"11.0.2": "87.0.4280.67",
-	"11.0.3": "87.0.4280.67",
-	"11.0.4": "87.0.4280.67",
-	"11.0.5": "87.0.4280.88",
-	"11.1.0": "87.0.4280.88",
-	"11.1.1": "87.0.4280.88",
-	"11.2.0": "87.0.4280.141",
-	"11.2.1": "87.0.4280.141",
-	"11.2.2": "87.0.4280.141",
-	"11.2.3": "87.0.4280.141",
-	"11.3.0": "87.0.4280.141",
-	"11.4.0": "87.0.4280.141",
-	"11.4.1": "87.0.4280.141",
-	"11.4.2": "87.0.4280.141",
-	"11.4.3": "87.0.4280.141",
-	"11.4.4": "87.0.4280.141",
-	"11.4.5": "87.0.4280.141",
-	"11.4.6": "87.0.4280.141",
-	"11.4.7": "87.0.4280.141",
-	"11.4.8": "87.0.4280.141",
-	"11.4.9": "87.0.4280.141",
-	"11.4.10": "87.0.4280.141",
-	"11.4.11": "87.0.4280.141",
-	"11.4.12": "87.0.4280.141",
-	"11.5.0": "87.0.4280.141",
-	"12.0.0-beta.1": "89.0.4328.0",
-	"12.0.0-beta.3": "89.0.4328.0",
-	"12.0.0-beta.4": "89.0.4328.0",
-	"12.0.0-beta.5": "89.0.4328.0",
-	"12.0.0-beta.6": "89.0.4328.0",
-	"12.0.0-beta.7": "89.0.4328.0",
-	"12.0.0-beta.8": "89.0.4328.0",
-	"12.0.0-beta.9": "89.0.4328.0",
-	"12.0.0-beta.10": "89.0.4328.0",
-	"12.0.0-beta.11": "89.0.4328.0",
-	"12.0.0-beta.12": "89.0.4328.0",
-	"12.0.0-beta.14": "89.0.4328.0",
-	"12.0.0-beta.16": "89.0.4348.1",
-	"12.0.0-beta.18": "89.0.4348.1",
-	"12.0.0-beta.19": "89.0.4348.1",
-	"12.0.0-beta.20": "89.0.4348.1",
-	"12.0.0-beta.21": "89.0.4388.2",
-	"12.0.0-beta.22": "89.0.4388.2",
-	"12.0.0-beta.23": "89.0.4388.2",
-	"12.0.0-beta.24": "89.0.4388.2",
-	"12.0.0-beta.25": "89.0.4388.2",
-	"12.0.0-beta.26": "89.0.4388.2",
-	"12.0.0-beta.27": "89.0.4389.23",
-	"12.0.0-beta.28": "89.0.4389.23",
-	"12.0.0-beta.29": "89.0.4389.23",
-	"12.0.0-beta.30": "89.0.4389.58",
-	"12.0.0-beta.31": "89.0.4389.58",
-	"12.0.0": "89.0.4389.69",
-	"12.0.1": "89.0.4389.82",
-	"12.0.2": "89.0.4389.90",
-	"12.0.3": "89.0.4389.114",
-	"12.0.4": "89.0.4389.114",
-	"12.0.5": "89.0.4389.128",
-	"12.0.6": "89.0.4389.128",
-	"12.0.7": "89.0.4389.128",
-	"12.0.8": "89.0.4389.128",
-	"12.0.9": "89.0.4389.128",
-	"12.0.10": "89.0.4389.128",
-	"12.0.11": "89.0.4389.128",
-	"12.0.12": "89.0.4389.128",
-	"12.0.13": "89.0.4389.128",
-	"12.0.14": "89.0.4389.128",
-	"12.0.15": "89.0.4389.128",
-	"12.0.16": "89.0.4389.128",
-	"12.0.17": "89.0.4389.128",
-	"12.0.18": "89.0.4389.128",
-	"12.1.0": "89.0.4389.128",
-	"12.1.1": "89.0.4389.128",
-	"12.1.2": "89.0.4389.128",
-	"12.2.0": "89.0.4389.128",
-	"12.2.1": "89.0.4389.128",
-	"12.2.2": "89.0.4389.128",
-	"12.2.3": "89.0.4389.128",
-	"13.0.0-beta.2": "90.0.4402.0",
-	"13.0.0-beta.3": "90.0.4402.0",
-	"13.0.0-beta.4": "90.0.4415.0",
-	"13.0.0-beta.5": "90.0.4415.0",
-	"13.0.0-beta.6": "90.0.4415.0",
-	"13.0.0-beta.7": "90.0.4415.0",
-	"13.0.0-beta.8": "90.0.4415.0",
-	"13.0.0-beta.9": "90.0.4415.0",
-	"13.0.0-beta.10": "90.0.4415.0",
-	"13.0.0-beta.11": "90.0.4415.0",
-	"13.0.0-beta.12": "90.0.4415.0",
-	"13.0.0-beta.13": "90.0.4415.0",
-	"13.0.0-beta.14": "91.0.4448.0",
-	"13.0.0-beta.16": "91.0.4448.0",
-	"13.0.0-beta.17": "91.0.4448.0",
-	"13.0.0-beta.18": "91.0.4448.0",
-	"13.0.0-beta.20": "91.0.4448.0",
-	"13.0.0-beta.21": "91.0.4472.33",
-	"13.0.0-beta.22": "91.0.4472.33",
-	"13.0.0-beta.23": "91.0.4472.33",
-	"13.0.0-beta.24": "91.0.4472.38",
-	"13.0.0-beta.25": "91.0.4472.38",
-	"13.0.0-beta.26": "91.0.4472.38",
-	"13.0.0-beta.27": "91.0.4472.38",
-	"13.0.0-beta.28": "91.0.4472.38",
-	"13.0.0": "91.0.4472.69",
-	"13.0.1": "91.0.4472.69",
-	"13.1.0": "91.0.4472.77",
-	"13.1.1": "91.0.4472.77",
-	"13.1.2": "91.0.4472.77",
-	"13.1.3": "91.0.4472.106",
-	"13.1.4": "91.0.4472.106",
-	"13.1.5": "91.0.4472.124",
-	"13.1.6": "91.0.4472.124",
-	"13.1.7": "91.0.4472.124",
-	"13.1.8": "91.0.4472.164",
-	"13.1.9": "91.0.4472.164",
-	"13.2.0": "91.0.4472.164",
-	"13.2.1": "91.0.4472.164",
-	"13.2.2": "91.0.4472.164",
-	"13.2.3": "91.0.4472.164",
-	"13.3.0": "91.0.4472.164",
-	"13.4.0": "91.0.4472.164",
-	"13.5.0": "91.0.4472.164",
-	"13.5.1": "91.0.4472.164",
-	"13.5.2": "91.0.4472.164",
-	"13.6.0": "91.0.4472.164",
-	"13.6.1": "91.0.4472.164",
-	"13.6.2": "91.0.4472.164",
-	"13.6.3": "91.0.4472.164",
-	"13.6.6": "91.0.4472.164",
-	"13.6.7": "91.0.4472.164",
-	"13.6.8": "91.0.4472.164",
-	"13.6.9": "91.0.4472.164",
-	"14.0.0-beta.1": "92.0.4511.0",
-	"14.0.0-beta.2": "92.0.4511.0",
-	"14.0.0-beta.3": "92.0.4511.0",
-	"14.0.0-beta.5": "93.0.4536.0",
-	"14.0.0-beta.6": "93.0.4536.0",
-	"14.0.0-beta.7": "93.0.4536.0",
-	"14.0.0-beta.8": "93.0.4536.0",
-	"14.0.0-beta.9": "93.0.4539.0",
-	"14.0.0-beta.10": "93.0.4539.0",
-	"14.0.0-beta.11": "93.0.4557.4",
-	"14.0.0-beta.12": "93.0.4557.4",
-	"14.0.0-beta.13": "93.0.4566.0",
-	"14.0.0-beta.14": "93.0.4566.0",
-	"14.0.0-beta.15": "93.0.4566.0",
-	"14.0.0-beta.16": "93.0.4566.0",
-	"14.0.0-beta.17": "93.0.4566.0",
-	"14.0.0-beta.18": "93.0.4577.15",
-	"14.0.0-beta.19": "93.0.4577.15",
-	"14.0.0-beta.20": "93.0.4577.15",
-	"14.0.0-beta.21": "93.0.4577.15",
-	"14.0.0-beta.22": "93.0.4577.25",
-	"14.0.0-beta.23": "93.0.4577.25",
-	"14.0.0-beta.24": "93.0.4577.51",
-	"14.0.0-beta.25": "93.0.4577.51",
-	"14.0.0": "93.0.4577.58",
-	"14.0.1": "93.0.4577.63",
-	"14.0.2": "93.0.4577.82",
-	"14.1.0": "93.0.4577.82",
-	"14.1.1": "93.0.4577.82",
-	"14.2.0": "93.0.4577.82",
-	"14.2.1": "93.0.4577.82",
-	"14.2.2": "93.0.4577.82",
-	"14.2.3": "93.0.4577.82",
-	"14.2.4": "93.0.4577.82",
-	"14.2.5": "93.0.4577.82",
-	"14.2.6": "93.0.4577.82",
-	"14.2.7": "93.0.4577.82",
-	"14.2.8": "93.0.4577.82",
-	"14.2.9": "93.0.4577.82",
-	"15.0.0-alpha.1": "93.0.4566.0",
-	"15.0.0-alpha.2": "93.0.4566.0",
-	"15.0.0-alpha.3": "94.0.4584.0",
-	"15.0.0-alpha.4": "94.0.4584.0",
-	"15.0.0-alpha.5": "94.0.4584.0",
-	"15.0.0-alpha.6": "94.0.4584.0",
-	"15.0.0-alpha.7": "94.0.4590.2",
-	"15.0.0-alpha.8": "94.0.4590.2",
-	"15.0.0-alpha.9": "94.0.4590.2",
-	"15.0.0-alpha.10": "94.0.4606.12",
-	"15.0.0-beta.1": "94.0.4606.20",
-	"15.0.0-beta.2": "94.0.4606.20",
-	"15.0.0-beta.3": "94.0.4606.31",
-	"15.0.0-beta.4": "94.0.4606.31",
-	"15.0.0-beta.5": "94.0.4606.31",
-	"15.0.0-beta.6": "94.0.4606.31",
-	"15.0.0-beta.7": "94.0.4606.31",
-	"15.0.0": "94.0.4606.51",
-	"15.1.0": "94.0.4606.61",
-	"15.1.1": "94.0.4606.61",
-	"15.1.2": "94.0.4606.71",
-	"15.2.0": "94.0.4606.81",
-	"15.3.0": "94.0.4606.81",
-	"15.3.1": "94.0.4606.81",
-	"15.3.2": "94.0.4606.81",
-	"15.3.3": "94.0.4606.81",
-	"15.3.4": "94.0.4606.81",
-	"15.3.5": "94.0.4606.81",
-	"15.3.6": "94.0.4606.81",
-	"15.3.7": "94.0.4606.81",
-	"15.4.0": "94.0.4606.81",
-	"15.4.1": "94.0.4606.81",
-	"15.4.2": "94.0.4606.81",
-	"15.5.0": "94.0.4606.81",
-	"15.5.1": "94.0.4606.81",
-	"15.5.2": "94.0.4606.81",
-	"15.5.3": "94.0.4606.81",
-	"15.5.4": "94.0.4606.81",
-	"15.5.5": "94.0.4606.81",
-	"15.5.6": "94.0.4606.81",
-	"15.5.7": "94.0.4606.81",
-	"16.0.0-alpha.1": "95.0.4629.0",
-	"16.0.0-alpha.2": "95.0.4629.0",
-	"16.0.0-alpha.3": "95.0.4629.0",
-	"16.0.0-alpha.4": "95.0.4629.0",
-	"16.0.0-alpha.5": "95.0.4629.0",
-	"16.0.0-alpha.6": "95.0.4629.0",
-	"16.0.0-alpha.7": "95.0.4629.0",
-	"16.0.0-alpha.8": "96.0.4647.0",
-	"16.0.0-alpha.9": "96.0.4647.0",
-	"16.0.0-beta.1": "96.0.4647.0",
-	"16.0.0-beta.2": "96.0.4647.0",
-	"16.0.0-beta.3": "96.0.4647.0",
-	"16.0.0-beta.4": "96.0.4664.18",
-	"16.0.0-beta.5": "96.0.4664.18",
-	"16.0.0-beta.6": "96.0.4664.27",
-	"16.0.0-beta.7": "96.0.4664.27",
-	"16.0.0-beta.8": "96.0.4664.35",
-	"16.0.0-beta.9": "96.0.4664.35",
-	"16.0.0": "96.0.4664.45",
-	"16.0.1": "96.0.4664.45",
-	"16.0.2": "96.0.4664.55",
-	"16.0.3": "96.0.4664.55",
-	"16.0.4": "96.0.4664.55",
-	"16.0.5": "96.0.4664.55",
-	"16.0.6": "96.0.4664.110",
-	"16.0.7": "96.0.4664.110",
-	"16.0.8": "96.0.4664.110",
-	"16.0.9": "96.0.4664.174",
-	"16.0.10": "96.0.4664.174",
-	"16.1.0": "96.0.4664.174",
-	"16.1.1": "96.0.4664.174",
-	"16.2.0": "96.0.4664.174",
-	"16.2.1": "96.0.4664.174",
-	"16.2.2": "96.0.4664.174",
-	"16.2.3": "96.0.4664.174",
-	"16.2.4": "96.0.4664.174",
-	"16.2.5": "96.0.4664.174",
-	"16.2.6": "96.0.4664.174",
-	"16.2.7": "96.0.4664.174",
-	"16.2.8": "96.0.4664.174",
-	"17.0.0-alpha.1": "96.0.4664.4",
-	"17.0.0-alpha.2": "96.0.4664.4",
-	"17.0.0-alpha.3": "96.0.4664.4",
-	"17.0.0-alpha.4": "98.0.4706.0",
-	"17.0.0-alpha.5": "98.0.4706.0",
-	"17.0.0-alpha.6": "98.0.4706.0",
-	"17.0.0-beta.1": "98.0.4706.0",
-	"17.0.0-beta.2": "98.0.4706.0",
-	"17.0.0-beta.3": "98.0.4758.9",
-	"17.0.0-beta.4": "98.0.4758.11",
-	"17.0.0-beta.5": "98.0.4758.11",
-	"17.0.0-beta.6": "98.0.4758.11",
-	"17.0.0-beta.7": "98.0.4758.11",
-	"17.0.0-beta.8": "98.0.4758.11",
-	"17.0.0-beta.9": "98.0.4758.11",
-	"17.0.0": "98.0.4758.74",
-	"17.0.1": "98.0.4758.82",
-	"17.1.0": "98.0.4758.102",
-	"17.1.1": "98.0.4758.109",
-	"17.1.2": "98.0.4758.109",
-	"17.2.0": "98.0.4758.109",
-	"17.3.0": "98.0.4758.141",
-	"17.3.1": "98.0.4758.141",
-	"17.4.0": "98.0.4758.141",
-	"17.4.1": "98.0.4758.141",
-	"17.4.2": "98.0.4758.141",
-	"17.4.3": "98.0.4758.141",
-	"17.4.4": "98.0.4758.141",
-	"17.4.5": "98.0.4758.141",
-	"17.4.6": "98.0.4758.141",
-	"17.4.7": "98.0.4758.141",
-	"17.4.8": "98.0.4758.141",
-	"17.4.9": "98.0.4758.141",
-	"17.4.10": "98.0.4758.141",
-	"17.4.11": "98.0.4758.141",
-	"18.0.0-alpha.1": "99.0.4767.0",
-	"18.0.0-alpha.2": "99.0.4767.0",
-	"18.0.0-alpha.3": "99.0.4767.0",
-	"18.0.0-alpha.4": "99.0.4767.0",
-	"18.0.0-alpha.5": "99.0.4767.0",
-	"18.0.0-beta.1": "100.0.4894.0",
-	"18.0.0-beta.2": "100.0.4894.0",
-	"18.0.0-beta.3": "100.0.4894.0",
-	"18.0.0-beta.4": "100.0.4894.0",
-	"18.0.0-beta.5": "100.0.4894.0",
-	"18.0.0-beta.6": "100.0.4894.0",
-	"18.0.0": "100.0.4896.56",
-	"18.0.1": "100.0.4896.60",
-	"18.0.2": "100.0.4896.60",
-	"18.0.3": "100.0.4896.75",
-	"18.0.4": "100.0.4896.75",
-	"18.1.0": "100.0.4896.127",
-	"18.2.0": "100.0.4896.143",
-	"18.2.1": "100.0.4896.143",
-	"18.2.2": "100.0.4896.143",
-	"18.2.3": "100.0.4896.143",
-	"18.2.4": "100.0.4896.160",
-	"18.3.0": "100.0.4896.160",
-	"18.3.1": "100.0.4896.160",
-	"18.3.2": "100.0.4896.160",
-	"18.3.3": "100.0.4896.160",
-	"18.3.4": "100.0.4896.160",
-	"18.3.5": "100.0.4896.160",
-	"18.3.6": "100.0.4896.160",
-	"18.3.7": "100.0.4896.160",
-	"18.3.8": "100.0.4896.160",
-	"18.3.9": "100.0.4896.160",
-	"18.3.11": "100.0.4896.160",
-	"18.3.12": "100.0.4896.160",
-	"18.3.13": "100.0.4896.160",
-	"18.3.14": "100.0.4896.160",
-	"18.3.15": "100.0.4896.160",
-	"19.0.0-alpha.1": "102.0.4962.3",
-	"19.0.0-alpha.2": "102.0.4971.0",
-	"19.0.0-alpha.3": "102.0.4971.0",
-	"19.0.0-alpha.4": "102.0.4989.0",
-	"19.0.0-alpha.5": "102.0.4989.0",
-	"19.0.0-beta.1": "102.0.4999.0",
-	"19.0.0-beta.2": "102.0.4999.0",
-	"19.0.0-beta.3": "102.0.4999.0",
-	"19.0.0-beta.4": "102.0.5005.27",
-	"19.0.0-beta.5": "102.0.5005.40",
-	"19.0.0-beta.6": "102.0.5005.40",
-	"19.0.0-beta.7": "102.0.5005.40",
-	"19.0.0-beta.8": "102.0.5005.49",
-	"19.0.0": "102.0.5005.61",
-	"19.0.1": "102.0.5005.61",
-	"19.0.2": "102.0.5005.63",
-	"19.0.3": "102.0.5005.63",
-	"19.0.4": "102.0.5005.63",
-	"19.0.5": "102.0.5005.115",
-	"19.0.6": "102.0.5005.115",
-	"19.0.7": "102.0.5005.134",
-	"19.0.8": "102.0.5005.148",
-	"19.0.9": "102.0.5005.167",
-	"19.0.10": "102.0.5005.167",
-	"19.0.11": "102.0.5005.167",
-	"19.0.12": "102.0.5005.167",
-	"19.0.13": "102.0.5005.167",
-	"19.0.14": "102.0.5005.167",
-	"19.0.15": "102.0.5005.167",
-	"19.0.16": "102.0.5005.167",
-	"19.0.17": "102.0.5005.167",
-	"19.1.0": "102.0.5005.167",
-	"19.1.1": "102.0.5005.167",
-	"19.1.2": "102.0.5005.167",
-	"19.1.3": "102.0.5005.167",
-	"19.1.4": "102.0.5005.167",
-	"19.1.5": "102.0.5005.167",
-	"19.1.6": "102.0.5005.167",
-	"19.1.7": "102.0.5005.167",
-	"19.1.8": "102.0.5005.167",
-	"19.1.9": "102.0.5005.167",
-	"20.0.0-alpha.1": "103.0.5044.0",
-	"20.0.0-alpha.2": "104.0.5073.0",
-	"20.0.0-alpha.3": "104.0.5073.0",
-	"20.0.0-alpha.4": "104.0.5073.0",
-	"20.0.0-alpha.5": "104.0.5073.0",
-	"20.0.0-alpha.6": "104.0.5073.0",
-	"20.0.0-alpha.7": "104.0.5073.0",
-	"20.0.0-beta.1": "104.0.5073.0",
-	"20.0.0-beta.2": "104.0.5073.0",
-	"20.0.0-beta.3": "104.0.5073.0",
-	"20.0.0-beta.4": "104.0.5073.0",
-	"20.0.0-beta.5": "104.0.5073.0",
-	"20.0.0-beta.6": "104.0.5073.0",
-	"20.0.0-beta.7": "104.0.5073.0",
-	"20.0.0-beta.8": "104.0.5073.0",
-	"20.0.0-beta.9": "104.0.5112.39",
-	"20.0.0-beta.10": "104.0.5112.48",
-	"20.0.0-beta.11": "104.0.5112.48",
-	"20.0.0-beta.12": "104.0.5112.48",
-	"20.0.0-beta.13": "104.0.5112.57",
-	"20.0.0": "104.0.5112.65",
-	"20.0.1": "104.0.5112.81",
-	"20.0.2": "104.0.5112.81",
-	"20.0.3": "104.0.5112.81",
-	"20.1.0": "104.0.5112.102",
-	"20.1.1": "104.0.5112.102",
-	"20.1.2": "104.0.5112.114",
-	"20.1.3": "104.0.5112.114",
-	"20.1.4": "104.0.5112.114",
-	"20.2.0": "104.0.5112.124",
-	"20.3.0": "104.0.5112.124",
-	"20.3.1": "104.0.5112.124",
-	"20.3.2": "104.0.5112.124",
-	"20.3.3": "104.0.5112.124",
-	"20.3.4": "104.0.5112.124",
-	"20.3.5": "104.0.5112.124",
-	"20.3.6": "104.0.5112.124",
-	"20.3.7": "104.0.5112.124",
-	"20.3.8": "104.0.5112.124",
-	"20.3.9": "104.0.5112.124",
-	"20.3.10": "104.0.5112.124",
-	"20.3.11": "104.0.5112.124",
-	"20.3.12": "104.0.5112.124",
-	"21.0.0-alpha.1": "105.0.5187.0",
-	"21.0.0-alpha.2": "105.0.5187.0",
-	"21.0.0-alpha.3": "105.0.5187.0",
-	"21.0.0-alpha.4": "105.0.5187.0",
-	"21.0.0-alpha.5": "105.0.5187.0",
-	"21.0.0-alpha.6": "106.0.5216.0",
-	"21.0.0-beta.1": "106.0.5216.0",
-	"21.0.0-beta.2": "106.0.5216.0",
-	"21.0.0-beta.3": "106.0.5216.0",
-	"21.0.0-beta.4": "106.0.5216.0",
-	"21.0.0-beta.5": "106.0.5216.0",
-	"21.0.0-beta.6": "106.0.5249.40",
-	"21.0.0-beta.7": "106.0.5249.40",
-	"21.0.0-beta.8": "106.0.5249.40",
-	"21.0.0": "106.0.5249.51",
-	"21.0.1": "106.0.5249.61",
-	"21.1.0": "106.0.5249.91",
-	"21.1.1": "106.0.5249.103",
-	"21.2.0": "106.0.5249.119",
-	"21.2.1": "106.0.5249.165",
-	"21.2.2": "106.0.5249.168",
-	"21.2.3": "106.0.5249.168",
-	"21.3.0": "106.0.5249.181",
-	"21.3.1": "106.0.5249.181",
-	"21.3.3": "106.0.5249.199",
-	"21.3.4": "106.0.5249.199",
-	"21.3.5": "106.0.5249.199",
-	"21.4.0": "106.0.5249.199",
-	"21.4.1": "106.0.5249.199",
-	"21.4.2": "106.0.5249.199",
-	"21.4.3": "106.0.5249.199",
-	"21.4.4": "106.0.5249.199",
-	"22.0.0-alpha.1": "107.0.5286.0",
-	"22.0.0-alpha.3": "108.0.5329.0",
-	"22.0.0-alpha.4": "108.0.5329.0",
-	"22.0.0-alpha.5": "108.0.5329.0",
-	"22.0.0-alpha.6": "108.0.5329.0",
-	"22.0.0-alpha.7": "108.0.5355.0",
-	"22.0.0-alpha.8": "108.0.5359.10",
-	"22.0.0-beta.1": "108.0.5359.10",
-	"22.0.0-beta.2": "108.0.5359.10",
-	"22.0.0-beta.3": "108.0.5359.10",
-	"22.0.0-beta.4": "108.0.5359.29",
-	"22.0.0-beta.5": "108.0.5359.40",
-	"22.0.0-beta.6": "108.0.5359.40",
-	"22.0.0-beta.7": "108.0.5359.48",
-	"22.0.0-beta.8": "108.0.5359.48",
-	"22.0.0": "108.0.5359.62",
-	"22.0.1": "108.0.5359.125",
-	"22.0.2": "108.0.5359.179",
-	"22.0.3": "108.0.5359.179",
-	"22.1.0": "108.0.5359.179",
-	"22.2.0": "108.0.5359.215",
-	"22.2.1": "108.0.5359.215",
-	"22.3.0": "108.0.5359.215",
-	"22.3.1": "108.0.5359.215",
-	"22.3.2": "108.0.5359.215",
-	"22.3.3": "108.0.5359.215",
-	"22.3.4": "108.0.5359.215",
-	"22.3.5": "108.0.5359.215",
-	"22.3.6": "108.0.5359.215",
-	"22.3.7": "108.0.5359.215",
-	"22.3.8": "108.0.5359.215",
-	"22.3.9": "108.0.5359.215",
-	"22.3.10": "108.0.5359.215",
-	"22.3.11": "108.0.5359.215",
-	"22.3.12": "108.0.5359.215",
-	"22.3.13": "108.0.5359.215",
-	"22.3.14": "108.0.5359.215",
-	"22.3.15": "108.0.5359.215",
-	"22.3.16": "108.0.5359.215",
-	"22.3.17": "108.0.5359.215",
-	"22.3.18": "108.0.5359.215",
-	"22.3.20": "108.0.5359.215",
-	"22.3.21": "108.0.5359.215",
-	"22.3.22": "108.0.5359.215",
-	"22.3.23": "108.0.5359.215",
-	"22.3.24": "108.0.5359.215",
-	"22.3.25": "108.0.5359.215",
-	"22.3.26": "108.0.5359.215",
-	"22.3.27": "108.0.5359.215",
-	"23.0.0-alpha.1": "110.0.5415.0",
-	"23.0.0-alpha.2": "110.0.5451.0",
-	"23.0.0-alpha.3": "110.0.5451.0",
-	"23.0.0-beta.1": "110.0.5478.5",
-	"23.0.0-beta.2": "110.0.5478.5",
-	"23.0.0-beta.3": "110.0.5478.5",
-	"23.0.0-beta.4": "110.0.5481.30",
-	"23.0.0-beta.5": "110.0.5481.38",
-	"23.0.0-beta.6": "110.0.5481.52",
-	"23.0.0-beta.8": "110.0.5481.52",
-	"23.0.0": "110.0.5481.77",
-	"23.1.0": "110.0.5481.100",
-	"23.1.1": "110.0.5481.104",
-	"23.1.2": "110.0.5481.177",
-	"23.1.3": "110.0.5481.179",
-	"23.1.4": "110.0.5481.192",
-	"23.2.0": "110.0.5481.192",
-	"23.2.1": "110.0.5481.208",
-	"23.2.2": "110.0.5481.208",
-	"23.2.3": "110.0.5481.208",
-	"23.2.4": "110.0.5481.208",
-	"23.3.0": "110.0.5481.208",
-	"23.3.1": "110.0.5481.208",
-	"23.3.2": "110.0.5481.208",
-	"23.3.3": "110.0.5481.208",
-	"23.3.4": "110.0.5481.208",
-	"23.3.5": "110.0.5481.208",
-	"23.3.6": "110.0.5481.208",
-	"23.3.7": "110.0.5481.208",
-	"23.3.8": "110.0.5481.208",
-	"23.3.9": "110.0.5481.208",
-	"23.3.10": "110.0.5481.208",
-	"23.3.11": "110.0.5481.208",
-	"23.3.12": "110.0.5481.208",
-	"23.3.13": "110.0.5481.208",
-	"24.0.0-alpha.1": "111.0.5560.0",
-	"24.0.0-alpha.2": "111.0.5560.0",
-	"24.0.0-alpha.3": "111.0.5560.0",
-	"24.0.0-alpha.4": "111.0.5560.0",
-	"24.0.0-alpha.5": "111.0.5560.0",
-	"24.0.0-alpha.6": "111.0.5560.0",
-	"24.0.0-alpha.7": "111.0.5560.0",
-	"24.0.0-beta.1": "111.0.5563.50",
-	"24.0.0-beta.2": "111.0.5563.50",
-	"24.0.0-beta.3": "112.0.5615.20",
-	"24.0.0-beta.4": "112.0.5615.20",
-	"24.0.0-beta.5": "112.0.5615.29",
-	"24.0.0-beta.6": "112.0.5615.39",
-	"24.0.0-beta.7": "112.0.5615.39",
-	"24.0.0": "112.0.5615.49",
-	"24.1.0": "112.0.5615.50",
-	"24.1.1": "112.0.5615.50",
-	"24.1.2": "112.0.5615.87",
-	"24.1.3": "112.0.5615.165",
-	"24.2.0": "112.0.5615.165",
-	"24.3.0": "112.0.5615.165",
-	"24.3.1": "112.0.5615.183",
-	"24.4.0": "112.0.5615.204",
-	"24.4.1": "112.0.5615.204",
-	"24.5.0": "112.0.5615.204",
-	"24.5.1": "112.0.5615.204",
-	"24.6.0": "112.0.5615.204",
-	"24.6.1": "112.0.5615.204",
-	"24.6.2": "112.0.5615.204",
-	"24.6.3": "112.0.5615.204",
-	"24.6.4": "112.0.5615.204",
-	"24.6.5": "112.0.5615.204",
-	"24.7.0": "112.0.5615.204",
-	"24.7.1": "112.0.5615.204",
-	"24.8.0": "112.0.5615.204",
-	"24.8.1": "112.0.5615.204",
-	"24.8.2": "112.0.5615.204",
-	"24.8.3": "112.0.5615.204",
-	"24.8.4": "112.0.5615.204",
-	"24.8.5": "112.0.5615.204",
-	"24.8.6": "112.0.5615.204",
-	"24.8.7": "112.0.5615.204",
-	"24.8.8": "112.0.5615.204",
-	"25.0.0-alpha.1": "114.0.5694.0",
-	"25.0.0-alpha.2": "114.0.5694.0",
-	"25.0.0-alpha.3": "114.0.5710.0",
-	"25.0.0-alpha.4": "114.0.5710.0",
-	"25.0.0-alpha.5": "114.0.5719.0",
-	"25.0.0-alpha.6": "114.0.5719.0",
-	"25.0.0-beta.1": "114.0.5719.0",
-	"25.0.0-beta.2": "114.0.5719.0",
-	"25.0.0-beta.3": "114.0.5719.0",
-	"25.0.0-beta.4": "114.0.5735.16",
-	"25.0.0-beta.5": "114.0.5735.16",
-	"25.0.0-beta.6": "114.0.5735.16",
-	"25.0.0-beta.7": "114.0.5735.16",
-	"25.0.0-beta.8": "114.0.5735.35",
-	"25.0.0-beta.9": "114.0.5735.45",
-	"25.0.0": "114.0.5735.45",
-	"25.0.1": "114.0.5735.45",
-	"25.1.0": "114.0.5735.106",
-	"25.1.1": "114.0.5735.106",
-	"25.2.0": "114.0.5735.134",
-	"25.3.0": "114.0.5735.199",
-	"25.3.1": "114.0.5735.243",
-	"25.3.2": "114.0.5735.248",
-	"25.4.0": "114.0.5735.248",
-	"25.5.0": "114.0.5735.289",
-	"25.6.0": "114.0.5735.289",
-	"25.7.0": "114.0.5735.289",
-	"25.8.0": "114.0.5735.289",
-	"25.8.1": "114.0.5735.289",
-	"25.8.2": "114.0.5735.289",
-	"25.8.3": "114.0.5735.289",
-	"25.8.4": "114.0.5735.289",
-	"25.9.0": "114.0.5735.289",
-	"25.9.1": "114.0.5735.289",
-	"25.9.2": "114.0.5735.289",
-	"25.9.3": "114.0.5735.289",
-	"25.9.4": "114.0.5735.289",
-	"25.9.5": "114.0.5735.289",
-	"25.9.6": "114.0.5735.289",
-	"25.9.7": "114.0.5735.289",
-	"25.9.8": "114.0.5735.289",
-	"26.0.0-alpha.1": "116.0.5791.0",
-	"26.0.0-alpha.2": "116.0.5791.0",
-	"26.0.0-alpha.3": "116.0.5791.0",
-	"26.0.0-alpha.4": "116.0.5791.0",
-	"26.0.0-alpha.5": "116.0.5791.0",
-	"26.0.0-alpha.6": "116.0.5815.0",
-	"26.0.0-alpha.7": "116.0.5831.0",
-	"26.0.0-alpha.8": "116.0.5845.0",
-	"26.0.0-beta.1": "116.0.5845.0",
-	"26.0.0-beta.2": "116.0.5845.14",
-	"26.0.0-beta.3": "116.0.5845.14",
-	"26.0.0-beta.4": "116.0.5845.14",
-	"26.0.0-beta.5": "116.0.5845.14",
-	"26.0.0-beta.6": "116.0.5845.14",
-	"26.0.0-beta.7": "116.0.5845.14",
-	"26.0.0-beta.8": "116.0.5845.42",
-	"26.0.0-beta.9": "116.0.5845.42",
-	"26.0.0-beta.10": "116.0.5845.49",
-	"26.0.0-beta.11": "116.0.5845.49",
-	"26.0.0-beta.12": "116.0.5845.62",
-	"26.0.0": "116.0.5845.82",
-	"26.1.0": "116.0.5845.97",
-	"26.2.0": "116.0.5845.179",
-	"26.2.1": "116.0.5845.188",
-	"26.2.2": "116.0.5845.190",
-	"26.2.3": "116.0.5845.190",
-	"26.2.4": "116.0.5845.190",
-	"26.3.0": "116.0.5845.228",
-	"26.4.0": "116.0.5845.228",
-	"26.4.1": "116.0.5845.228",
-	"26.4.2": "116.0.5845.228",
-	"26.4.3": "116.0.5845.228",
-	"26.5.0": "116.0.5845.228",
-	"26.6.0": "116.0.5845.228",
-	"26.6.1": "116.0.5845.228",
-	"26.6.2": "116.0.5845.228",
-	"26.6.3": "116.0.5845.228",
-	"26.6.4": "116.0.5845.228",
-	"26.6.5": "116.0.5845.228",
-	"26.6.6": "116.0.5845.228",
-	"26.6.7": "116.0.5845.228",
-	"26.6.8": "116.0.5845.228",
-	"26.6.9": "116.0.5845.228",
-	"26.6.10": "116.0.5845.228",
-	"27.0.0-alpha.1": "118.0.5949.0",
-	"27.0.0-alpha.2": "118.0.5949.0",
-	"27.0.0-alpha.3": "118.0.5949.0",
-	"27.0.0-alpha.4": "118.0.5949.0",
-	"27.0.0-alpha.5": "118.0.5949.0",
-	"27.0.0-alpha.6": "118.0.5949.0",
-	"27.0.0-beta.1": "118.0.5993.5",
-	"27.0.0-beta.2": "118.0.5993.5",
-	"27.0.0-beta.3": "118.0.5993.5",
-	"27.0.0-beta.4": "118.0.5993.11",
-	"27.0.0-beta.5": "118.0.5993.18",
-	"27.0.0-beta.6": "118.0.5993.18",
-	"27.0.0-beta.7": "118.0.5993.18",
-	"27.0.0-beta.8": "118.0.5993.18",
-	"27.0.0-beta.9": "118.0.5993.18",
-	"27.0.0": "118.0.5993.54",
-	"27.0.1": "118.0.5993.89",
-	"27.0.2": "118.0.5993.89",
-	"27.0.3": "118.0.5993.120",
-	"27.0.4": "118.0.5993.129",
-	"27.1.0": "118.0.5993.144",
-	"27.1.2": "118.0.5993.144",
-	"27.1.3": "118.0.5993.159",
-	"27.2.0": "118.0.5993.159",
-	"27.2.1": "118.0.5993.159",
-	"27.2.2": "118.0.5993.159",
-	"27.2.3": "118.0.5993.159",
-	"27.2.4": "118.0.5993.159",
-	"27.3.0": "118.0.5993.159",
-	"27.3.1": "118.0.5993.159",
-	"27.3.2": "118.0.5993.159",
-	"27.3.3": "118.0.5993.159",
-	"27.3.4": "118.0.5993.159",
-	"27.3.5": "118.0.5993.159",
-	"27.3.6": "118.0.5993.159",
-	"27.3.7": "118.0.5993.159",
-	"27.3.8": "118.0.5993.159",
-	"27.3.9": "118.0.5993.159",
-	"27.3.10": "118.0.5993.159",
-	"27.3.11": "118.0.5993.159",
-	"28.0.0-alpha.1": "119.0.6045.0",
-	"28.0.0-alpha.2": "119.0.6045.0",
-	"28.0.0-alpha.3": "119.0.6045.21",
-	"28.0.0-alpha.4": "119.0.6045.21",
-	"28.0.0-alpha.5": "119.0.6045.33",
-	"28.0.0-alpha.6": "119.0.6045.33",
-	"28.0.0-alpha.7": "119.0.6045.33",
-	"28.0.0-beta.1": "119.0.6045.33",
-	"28.0.0-beta.2": "120.0.6099.0",
-	"28.0.0-beta.3": "120.0.6099.5",
-	"28.0.0-beta.4": "120.0.6099.5",
-	"28.0.0-beta.5": "120.0.6099.18",
-	"28.0.0-beta.6": "120.0.6099.18",
-	"28.0.0-beta.7": "120.0.6099.18",
-	"28.0.0-beta.8": "120.0.6099.18",
-	"28.0.0-beta.9": "120.0.6099.18",
-	"28.0.0-beta.10": "120.0.6099.18",
-	"28.0.0-beta.11": "120.0.6099.35",
-	"28.0.0": "120.0.6099.56",
-	"28.1.0": "120.0.6099.109",
-	"28.1.1": "120.0.6099.109",
-	"28.1.2": "120.0.6099.199",
-	"28.1.3": "120.0.6099.199",
-	"28.1.4": "120.0.6099.216",
-	"28.2.0": "120.0.6099.227",
-	"28.2.1": "120.0.6099.268",
-	"28.2.2": "120.0.6099.276",
-	"28.2.3": "120.0.6099.283",
-	"28.2.4": "120.0.6099.291",
-	"28.2.5": "120.0.6099.291",
-	"28.2.6": "120.0.6099.291",
-	"28.2.7": "120.0.6099.291",
-	"28.2.8": "120.0.6099.291",
-	"28.2.9": "120.0.6099.291",
-	"28.2.10": "120.0.6099.291",
-	"28.3.0": "120.0.6099.291",
-	"28.3.1": "120.0.6099.291",
-	"28.3.2": "120.0.6099.291",
-	"28.3.3": "120.0.6099.291",
-	"29.0.0-alpha.1": "121.0.6147.0",
-	"29.0.0-alpha.2": "121.0.6147.0",
-	"29.0.0-alpha.3": "121.0.6147.0",
-	"29.0.0-alpha.4": "121.0.6159.0",
-	"29.0.0-alpha.5": "121.0.6159.0",
-	"29.0.0-alpha.6": "121.0.6159.0",
-	"29.0.0-alpha.7": "121.0.6159.0",
-	"29.0.0-alpha.8": "122.0.6194.0",
-	"29.0.0-alpha.9": "122.0.6236.2",
-	"29.0.0-alpha.10": "122.0.6236.2",
-	"29.0.0-alpha.11": "122.0.6236.2",
-	"29.0.0-beta.1": "122.0.6236.2",
-	"29.0.0-beta.2": "122.0.6236.2",
-	"29.0.0-beta.3": "122.0.6261.6",
-	"29.0.0-beta.4": "122.0.6261.6",
-	"29.0.0-beta.5": "122.0.6261.18",
-	"29.0.0-beta.6": "122.0.6261.18",
-	"29.0.0-beta.7": "122.0.6261.18",
-	"29.0.0-beta.8": "122.0.6261.18",
-	"29.0.0-beta.9": "122.0.6261.18",
-	"29.0.0-beta.10": "122.0.6261.18",
-	"29.0.0-beta.11": "122.0.6261.18",
-	"29.0.0-beta.12": "122.0.6261.29",
-	"29.0.0": "122.0.6261.39",
-	"29.0.1": "122.0.6261.57",
-	"29.1.0": "122.0.6261.70",
-	"29.1.1": "122.0.6261.111",
-	"29.1.2": "122.0.6261.112",
-	"29.1.3": "122.0.6261.112",
-	"29.1.4": "122.0.6261.129",
-	"29.1.5": "122.0.6261.130",
-	"29.1.6": "122.0.6261.139",
-	"29.2.0": "122.0.6261.156",
-	"29.3.0": "122.0.6261.156",
-	"29.3.1": "122.0.6261.156",
-	"29.3.2": "122.0.6261.156",
-	"29.3.3": "122.0.6261.156",
-	"29.4.0": "122.0.6261.156",
-	"29.4.1": "122.0.6261.156",
-	"29.4.2": "122.0.6261.156",
-	"29.4.3": "122.0.6261.156",
-	"29.4.4": "122.0.6261.156",
-	"29.4.5": "122.0.6261.156",
-	"29.4.6": "122.0.6261.156",
-	"30.0.0-alpha.1": "123.0.6296.0",
-	"30.0.0-alpha.2": "123.0.6312.5",
-	"30.0.0-alpha.3": "124.0.6323.0",
-	"30.0.0-alpha.4": "124.0.6323.0",
-	"30.0.0-alpha.5": "124.0.6331.0",
-	"30.0.0-alpha.6": "124.0.6331.0",
-	"30.0.0-alpha.7": "124.0.6353.0",
-	"30.0.0-beta.1": "124.0.6359.0",
-	"30.0.0-beta.2": "124.0.6359.0",
-	"30.0.0-beta.3": "124.0.6367.9",
-	"30.0.0-beta.4": "124.0.6367.9",
-	"30.0.0-beta.5": "124.0.6367.9",
-	"30.0.0-beta.6": "124.0.6367.18",
-	"30.0.0-beta.7": "124.0.6367.29",
-	"30.0.0-beta.8": "124.0.6367.29",
-	"30.0.0": "124.0.6367.49",
-	"30.0.1": "124.0.6367.60",
-	"30.0.2": "124.0.6367.91",
-	"30.0.3": "124.0.6367.119",
-	"30.0.4": "124.0.6367.201",
-	"30.0.5": "124.0.6367.207",
-	"30.0.6": "124.0.6367.207",
-	"30.0.7": "124.0.6367.221",
-	"30.0.8": "124.0.6367.230",
-	"30.0.9": "124.0.6367.233",
-	"30.1.0": "124.0.6367.243",
-	"30.1.1": "124.0.6367.243",
-	"30.1.2": "124.0.6367.243",
-	"30.2.0": "124.0.6367.243",
-	"30.3.0": "124.0.6367.243",
-	"30.3.1": "124.0.6367.243",
-	"30.4.0": "124.0.6367.243",
-	"30.5.0": "124.0.6367.243",
-	"30.5.1": "124.0.6367.243",
-	"31.0.0-alpha.1": "125.0.6412.0",
-	"31.0.0-alpha.2": "125.0.6412.0",
-	"31.0.0-alpha.3": "125.0.6412.0",
-	"31.0.0-alpha.4": "125.0.6412.0",
-	"31.0.0-alpha.5": "125.0.6412.0",
-	"31.0.0-beta.1": "126.0.6445.0",
-	"31.0.0-beta.2": "126.0.6445.0",
-	"31.0.0-beta.3": "126.0.6445.0",
-	"31.0.0-beta.4": "126.0.6445.0",
-	"31.0.0-beta.5": "126.0.6445.0",
-	"31.0.0-beta.6": "126.0.6445.0",
-	"31.0.0-beta.7": "126.0.6445.0",
-	"31.0.0-beta.8": "126.0.6445.0",
-	"31.0.0-beta.9": "126.0.6445.0",
-	"31.0.0-beta.10": "126.0.6478.36",
-	"31.0.0": "126.0.6478.36",
-	"31.0.1": "126.0.6478.36",
-	"31.0.2": "126.0.6478.61",
-	"31.1.0": "126.0.6478.114",
-	"31.2.0": "126.0.6478.127",
-	"31.2.1": "126.0.6478.127",
-	"31.3.0": "126.0.6478.183",
-	"31.3.1": "126.0.6478.185",
-	"31.4.0": "126.0.6478.234",
-	"31.5.0": "126.0.6478.234",
-	"31.6.0": "126.0.6478.234",
-	"31.7.0": "126.0.6478.234",
-	"31.7.1": "126.0.6478.234",
-	"31.7.2": "126.0.6478.234",
-	"31.7.3": "126.0.6478.234",
-	"31.7.4": "126.0.6478.234",
-	"31.7.5": "126.0.6478.234",
-	"31.7.6": "126.0.6478.234",
-	"31.7.7": "126.0.6478.234",
-	"32.0.0-alpha.1": "127.0.6521.0",
-	"32.0.0-alpha.2": "127.0.6521.0",
-	"32.0.0-alpha.3": "127.0.6521.0",
-	"32.0.0-alpha.4": "127.0.6521.0",
-	"32.0.0-alpha.5": "127.0.6521.0",
-	"32.0.0-alpha.6": "128.0.6571.0",
-	"32.0.0-alpha.7": "128.0.6571.0",
-	"32.0.0-alpha.8": "128.0.6573.0",
-	"32.0.0-alpha.9": "128.0.6573.0",
-	"32.0.0-alpha.10": "128.0.6573.0",
-	"32.0.0-beta.1": "128.0.6573.0",
-	"32.0.0-beta.2": "128.0.6611.0",
-	"32.0.0-beta.3": "128.0.6613.7",
-	"32.0.0-beta.4": "128.0.6613.18",
-	"32.0.0-beta.5": "128.0.6613.27",
-	"32.0.0-beta.6": "128.0.6613.27",
-	"32.0.0-beta.7": "128.0.6613.27",
-	"32.0.0": "128.0.6613.36",
-	"32.0.1": "128.0.6613.36",
-	"32.0.2": "128.0.6613.84",
-	"32.1.0": "128.0.6613.120",
-	"32.1.1": "128.0.6613.137",
-	"32.1.2": "128.0.6613.162",
-	"32.2.0": "128.0.6613.178",
-	"32.2.1": "128.0.6613.186",
-	"32.2.2": "128.0.6613.186",
-	"32.2.3": "128.0.6613.186",
-	"32.2.4": "128.0.6613.186",
-	"32.2.5": "128.0.6613.186",
-	"32.2.6": "128.0.6613.186",
-	"32.2.7": "128.0.6613.186",
-	"32.2.8": "128.0.6613.186",
-	"32.3.0": "128.0.6613.186",
-	"32.3.1": "128.0.6613.186",
-	"32.3.2": "128.0.6613.186",
-	"32.3.3": "128.0.6613.186",
-	"33.0.0-alpha.1": "129.0.6668.0",
-	"33.0.0-alpha.2": "130.0.6672.0",
-	"33.0.0-alpha.3": "130.0.6672.0",
-	"33.0.0-alpha.4": "130.0.6672.0",
-	"33.0.0-alpha.5": "130.0.6672.0",
-	"33.0.0-alpha.6": "130.0.6672.0",
-	"33.0.0-beta.1": "130.0.6672.0",
-	"33.0.0-beta.2": "130.0.6672.0",
-	"33.0.0-beta.3": "130.0.6672.0",
-	"33.0.0-beta.4": "130.0.6672.0",
-	"33.0.0-beta.5": "130.0.6723.19",
-	"33.0.0-beta.6": "130.0.6723.19",
-	"33.0.0-beta.7": "130.0.6723.19",
-	"33.0.0-beta.8": "130.0.6723.31",
-	"33.0.0-beta.9": "130.0.6723.31",
-	"33.0.0-beta.10": "130.0.6723.31",
-	"33.0.0-beta.11": "130.0.6723.44",
-	"33.0.0": "130.0.6723.44",
-	"33.0.1": "130.0.6723.59",
-	"33.0.2": "130.0.6723.59",
-	"33.1.0": "130.0.6723.91",
-	"33.2.0": "130.0.6723.118",
-	"33.2.1": "130.0.6723.137",
-	"33.3.0": "130.0.6723.152",
-	"33.3.1": "130.0.6723.170",
-	"33.3.2": "130.0.6723.191",
-	"33.4.0": "130.0.6723.191",
-	"33.4.1": "130.0.6723.191",
-	"33.4.2": "130.0.6723.191",
-	"33.4.3": "130.0.6723.191",
-	"33.4.4": "130.0.6723.191",
-	"33.4.5": "130.0.6723.191",
-	"33.4.6": "130.0.6723.191",
-	"33.4.7": "130.0.6723.191",
-	"33.4.8": "130.0.6723.191",
-	"33.4.9": "130.0.6723.191",
-	"33.4.10": "130.0.6723.191",
-	"33.4.11": "130.0.6723.191",
-	"34.0.0-alpha.1": "131.0.6776.0",
-	"34.0.0-alpha.2": "132.0.6779.0",
-	"34.0.0-alpha.3": "132.0.6789.1",
-	"34.0.0-alpha.4": "132.0.6789.1",
-	"34.0.0-alpha.5": "132.0.6789.1",
-	"34.0.0-alpha.6": "132.0.6789.1",
-	"34.0.0-alpha.7": "132.0.6789.1",
-	"34.0.0-alpha.8": "132.0.6820.0",
-	"34.0.0-alpha.9": "132.0.6824.0",
-	"34.0.0-beta.1": "132.0.6824.0",
-	"34.0.0-beta.2": "132.0.6824.0",
-	"34.0.0-beta.3": "132.0.6824.0",
-	"34.0.0-beta.4": "132.0.6834.6",
-	"34.0.0-beta.5": "132.0.6834.6",
-	"34.0.0-beta.6": "132.0.6834.15",
-	"34.0.0-beta.7": "132.0.6834.15",
-	"34.0.0-beta.8": "132.0.6834.15",
-	"34.0.0-beta.9": "132.0.6834.32",
-	"34.0.0-beta.10": "132.0.6834.32",
-	"34.0.0-beta.11": "132.0.6834.32",
-	"34.0.0-beta.12": "132.0.6834.46",
-	"34.0.0-beta.13": "132.0.6834.46",
-	"34.0.0-beta.14": "132.0.6834.57",
-	"34.0.0-beta.15": "132.0.6834.57",
-	"34.0.0-beta.16": "132.0.6834.57",
-	"34.0.0": "132.0.6834.83",
-	"34.0.1": "132.0.6834.83",
-	"34.0.2": "132.0.6834.159",
-	"34.1.0": "132.0.6834.194",
-	"34.1.1": "132.0.6834.194",
-	"34.2.0": "132.0.6834.196",
-	"34.3.0": "132.0.6834.210",
-	"34.3.1": "132.0.6834.210",
-	"34.3.2": "132.0.6834.210",
-	"34.3.3": "132.0.6834.210",
-	"34.3.4": "132.0.6834.210",
-	"34.4.0": "132.0.6834.210",
-	"34.4.1": "132.0.6834.210",
-	"34.5.0": "132.0.6834.210",
-	"34.5.1": "132.0.6834.210",
-	"34.5.2": "132.0.6834.210",
-	"34.5.3": "132.0.6834.210",
-	"34.5.4": "132.0.6834.210",
-	"34.5.5": "132.0.6834.210",
-	"34.5.6": "132.0.6834.210",
-	"34.5.7": "132.0.6834.210",
-	"34.5.8": "132.0.6834.210",
-	"35.0.0-alpha.1": "133.0.6920.0",
-	"35.0.0-alpha.2": "133.0.6920.0",
-	"35.0.0-alpha.3": "133.0.6920.0",
-	"35.0.0-alpha.4": "133.0.6920.0",
-	"35.0.0-alpha.5": "133.0.6920.0",
-	"35.0.0-beta.1": "133.0.6920.0",
-	"35.0.0-beta.2": "134.0.6968.0",
-	"35.0.0-beta.3": "134.0.6968.0",
-	"35.0.0-beta.4": "134.0.6968.0",
-	"35.0.0-beta.5": "134.0.6989.0",
-	"35.0.0-beta.6": "134.0.6990.0",
-	"35.0.0-beta.7": "134.0.6990.0",
-	"35.0.0-beta.8": "134.0.6998.10",
-	"35.0.0-beta.9": "134.0.6998.10",
-	"35.0.0-beta.10": "134.0.6998.23",
-	"35.0.0-beta.11": "134.0.6998.23",
-	"35.0.0-beta.12": "134.0.6998.23",
-	"35.0.0-beta.13": "134.0.6998.44",
-	"35.0.0": "134.0.6998.44",
-	"35.0.1": "134.0.6998.44",
-	"35.0.2": "134.0.6998.88",
-	"35.0.3": "134.0.6998.88",
-	"35.1.0": "134.0.6998.165",
-	"35.1.1": "134.0.6998.165",
-	"35.1.2": "134.0.6998.178",
-	"35.1.3": "134.0.6998.179",
-	"35.1.4": "134.0.6998.179",
-	"35.1.5": "134.0.6998.179",
-	"35.2.0": "134.0.6998.205",
-	"35.2.1": "134.0.6998.205",
-	"35.2.2": "134.0.6998.205",
-	"35.3.0": "134.0.6998.205",
-	"35.4.0": "134.0.6998.205",
-	"35.5.0": "134.0.6998.205",
-	"35.5.1": "134.0.6998.205",
-	"35.6.0": "134.0.6998.205",
-	"35.7.0": "134.0.6998.205",
-	"35.7.1": "134.0.6998.205",
-	"35.7.2": "134.0.6998.205",
-	"35.7.4": "134.0.6998.205",
-	"35.7.5": "134.0.6998.205",
-	"36.0.0-alpha.1": "135.0.7049.5",
-	"36.0.0-alpha.2": "136.0.7062.0",
-	"36.0.0-alpha.3": "136.0.7062.0",
-	"36.0.0-alpha.4": "136.0.7062.0",
-	"36.0.0-alpha.5": "136.0.7067.0",
-	"36.0.0-alpha.6": "136.0.7067.0",
-	"36.0.0-beta.1": "136.0.7067.0",
-	"36.0.0-beta.2": "136.0.7067.0",
-	"36.0.0-beta.3": "136.0.7067.0",
-	"36.0.0-beta.4": "136.0.7067.0",
-	"36.0.0-beta.5": "136.0.7103.17",
-	"36.0.0-beta.6": "136.0.7103.25",
-	"36.0.0-beta.7": "136.0.7103.25",
-	"36.0.0-beta.8": "136.0.7103.33",
-	"36.0.0-beta.9": "136.0.7103.33",
-	"36.0.0": "136.0.7103.48",
-	"36.0.1": "136.0.7103.48",
-	"36.1.0": "136.0.7103.49",
-	"36.2.0": "136.0.7103.49",
-	"36.2.1": "136.0.7103.93",
-	"36.3.0": "136.0.7103.113",
-	"36.3.1": "136.0.7103.113",
-	"36.3.2": "136.0.7103.115",
-	"36.4.0": "136.0.7103.149",
-	"36.5.0": "136.0.7103.168",
-	"36.6.0": "136.0.7103.177",
-	"36.7.0": "136.0.7103.177",
-	"36.7.1": "136.0.7103.177",
-	"36.7.3": "136.0.7103.177",
-	"36.7.4": "136.0.7103.177",
-	"36.8.0": "136.0.7103.177",
-	"36.8.1": "136.0.7103.177",
-	"36.9.0": "136.0.7103.177",
-	"36.9.1": "136.0.7103.177",
-	"36.9.2": "136.0.7103.177",
-	"36.9.3": "136.0.7103.177",
-	"36.9.4": "136.0.7103.177",
-	"36.9.5": "136.0.7103.177",
-	"37.0.0-alpha.1": "137.0.7151.0",
-	"37.0.0-alpha.2": "137.0.7151.0",
-	"37.0.0-alpha.3": "138.0.7156.0",
-	"37.0.0-alpha.4": "138.0.7165.0",
-	"37.0.0-alpha.5": "138.0.7177.0",
-	"37.0.0-alpha.6": "138.0.7178.0",
-	"37.0.0-alpha.7": "138.0.7178.0",
-	"37.0.0-beta.1": "138.0.7178.0",
-	"37.0.0-beta.2": "138.0.7178.0",
-	"37.0.0-beta.3": "138.0.7190.0",
-	"37.0.0-beta.4": "138.0.7204.15",
-	"37.0.0-beta.5": "138.0.7204.15",
-	"37.0.0-beta.6": "138.0.7204.15",
-	"37.0.0-beta.7": "138.0.7204.15",
-	"37.0.0-beta.8": "138.0.7204.23",
-	"37.0.0-beta.9": "138.0.7204.35",
-	"37.0.0": "138.0.7204.35",
-	"37.1.0": "138.0.7204.35",
-	"37.2.0": "138.0.7204.97",
-	"37.2.1": "138.0.7204.97",
-	"37.2.2": "138.0.7204.100",
-	"37.2.3": "138.0.7204.100",
-	"37.2.4": "138.0.7204.157",
-	"37.2.5": "138.0.7204.168",
-	"37.2.6": "138.0.7204.185",
-	"37.3.0": "138.0.7204.224",
-	"37.3.1": "138.0.7204.235",
-	"37.4.0": "138.0.7204.243",
-	"37.5.0": "138.0.7204.251",
-	"37.5.1": "138.0.7204.251",
-	"37.6.0": "138.0.7204.251",
-	"37.6.1": "138.0.7204.251",
-	"37.7.0": "138.0.7204.251",
-	"37.7.1": "138.0.7204.251",
-	"37.8.0": "138.0.7204.251",
-	"37.9.0": "138.0.7204.251",
-	"37.10.0": "138.0.7204.251",
-	"37.10.1": "138.0.7204.251",
-	"37.10.2": "138.0.7204.251",
-	"37.10.3": "138.0.7204.251",
-	"38.0.0-alpha.1": "139.0.7219.0",
-	"38.0.0-alpha.2": "139.0.7219.0",
-	"38.0.0-alpha.3": "139.0.7219.0",
-	"38.0.0-alpha.4": "140.0.7261.0",
-	"38.0.0-alpha.5": "140.0.7261.0",
-	"38.0.0-alpha.6": "140.0.7261.0",
-	"38.0.0-alpha.7": "140.0.7281.0",
-	"38.0.0-alpha.8": "140.0.7281.0",
-	"38.0.0-alpha.9": "140.0.7301.0",
-	"38.0.0-alpha.10": "140.0.7309.0",
-	"38.0.0-alpha.11": "140.0.7312.0",
-	"38.0.0-alpha.12": "140.0.7314.0",
-	"38.0.0-alpha.13": "140.0.7314.0",
-	"38.0.0-beta.1": "140.0.7314.0",
-	"38.0.0-beta.2": "140.0.7327.0",
-	"38.0.0-beta.3": "140.0.7327.0",
-	"38.0.0-beta.4": "140.0.7339.2",
-	"38.0.0-beta.5": "140.0.7339.2",
-	"38.0.0-beta.6": "140.0.7339.2",
-	"38.0.0-beta.7": "140.0.7339.16",
-	"38.0.0-beta.8": "140.0.7339.24",
-	"38.0.0-beta.9": "140.0.7339.24",
-	"38.0.0-beta.11": "140.0.7339.41",
-	"38.0.0": "140.0.7339.41",
-	"38.1.0": "140.0.7339.80",
-	"38.1.1": "140.0.7339.133",
-	"38.1.2": "140.0.7339.133",
-	"38.2.0": "140.0.7339.133",
-	"38.2.1": "140.0.7339.133",
-	"38.2.2": "140.0.7339.133",
-	"38.3.0": "140.0.7339.240",
-	"38.4.0": "140.0.7339.240",
-	"38.5.0": "140.0.7339.249",
-	"38.6.0": "140.0.7339.249",
-	"38.7.0": "140.0.7339.249",
-	"38.7.1": "140.0.7339.249",
-	"38.7.2": "140.0.7339.249",
-	"39.0.0-alpha.1": "141.0.7361.0",
-	"39.0.0-alpha.2": "141.0.7361.0",
-	"39.0.0-alpha.3": "141.0.7390.7",
-	"39.0.0-alpha.4": "141.0.7390.7",
-	"39.0.0-alpha.5": "141.0.7390.7",
-	"39.0.0-alpha.6": "142.0.7417.0",
-	"39.0.0-alpha.7": "142.0.7417.0",
-	"39.0.0-alpha.8": "142.0.7417.0",
-	"39.0.0-alpha.9": "142.0.7417.0",
-	"39.0.0-beta.1": "142.0.7417.0",
-	"39.0.0-beta.2": "142.0.7417.0",
-	"39.0.0-beta.3": "142.0.7417.0",
-	"39.0.0-beta.4": "142.0.7444.34",
-	"39.0.0-beta.5": "142.0.7444.34",
-	"39.0.0": "142.0.7444.52",
-	"39.1.0": "142.0.7444.59",
-	"39.1.1": "142.0.7444.59",
-	"39.1.2": "142.0.7444.134",
-	"39.2.0": "142.0.7444.162",
-	"39.2.1": "142.0.7444.162",
-	"39.2.2": "142.0.7444.162",
-	"39.2.3": "142.0.7444.175",
-	"39.2.4": "142.0.7444.177",
-	"39.2.5": "142.0.7444.177",
-	"39.2.6": "142.0.7444.226",
-	"40.0.0-alpha.2": "143.0.7499.0",
-	"40.0.0-alpha.4": "144.0.7506.0",
-	"40.0.0-alpha.5": "144.0.7526.0",
-	"40.0.0-alpha.6": "144.0.7526.0",
-	"40.0.0-alpha.7": "144.0.7526.0",
-	"40.0.0-alpha.8": "144.0.7526.0",
-	"40.0.0-beta.1": "144.0.7527.0",
-	"40.0.0-beta.2": "144.0.7527.0",
-	"40.0.0-beta.3": "144.0.7547.0"
-};
Index: de_modules/electron-to-chromium/full-versions.json
===================================================================
--- node_modules/electron-to-chromium/full-versions.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","25.9.4":"114.0.5735.289","25.9.5":"114.0.5735.289","25.9.6":"114.0.5735.289","25.9.7":"114.0.5735.289","25.9.8":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","26.4.3":"116.0.5845.228","26.5.0":"116.0.5845.228","26.6.0":"116.0.5845.228","26.6.1":"116.0.5845.228","26.6.2":"116.0.5845.228","26.6.3":"116.0.5845.228","26.6.4":"116.0.5845.228","26.6.5":"116.0.5845.228","26.6.6":"116.0.5845.228","26.6.7":"116.0.5845.228","26.6.8":"116.0.5845.228","26.6.9":"116.0.5845.228","26.6.10":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","27.0.3":"118.0.5993.120","27.0.4":"118.0.5993.129","27.1.0":"118.0.5993.144","27.1.2":"118.0.5993.144","27.1.3":"118.0.5993.159","27.2.0":"118.0.5993.159","27.2.1":"118.0.5993.159","27.2.2":"118.0.5993.159","27.2.3":"118.0.5993.159","27.2.4":"118.0.5993.159","27.3.0":"118.0.5993.159","27.3.1":"118.0.5993.159","27.3.2":"118.0.5993.159","27.3.3":"118.0.5993.159","27.3.4":"118.0.5993.159","27.3.5":"118.0.5993.159","27.3.6":"118.0.5993.159","27.3.7":"118.0.5993.159","27.3.8":"118.0.5993.159","27.3.9":"118.0.5993.159","27.3.10":"118.0.5993.159","27.3.11":"118.0.5993.159","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-alpha.7":"119.0.6045.33","28.0.0-beta.1":"119.0.6045.33","28.0.0-beta.2":"120.0.6099.0","28.0.0-beta.3":"120.0.6099.5","28.0.0-beta.4":"120.0.6099.5","28.0.0-beta.5":"120.0.6099.18","28.0.0-beta.6":"120.0.6099.18","28.0.0-beta.7":"120.0.6099.18","28.0.0-beta.8":"120.0.6099.18","28.0.0-beta.9":"120.0.6099.18","28.0.0-beta.10":"120.0.6099.18","28.0.0-beta.11":"120.0.6099.35","28.0.0":"120.0.6099.56","28.1.0":"120.0.6099.109","28.1.1":"120.0.6099.109","28.1.2":"120.0.6099.199","28.1.3":"120.0.6099.199","28.1.4":"120.0.6099.216","28.2.0":"120.0.6099.227","28.2.1":"120.0.6099.268","28.2.2":"120.0.6099.276","28.2.3":"120.0.6099.283","28.2.4":"120.0.6099.291","28.2.5":"120.0.6099.291","28.2.6":"120.0.6099.291","28.2.7":"120.0.6099.291","28.2.8":"120.0.6099.291","28.2.9":"120.0.6099.291","28.2.10":"120.0.6099.291","28.3.0":"120.0.6099.291","28.3.1":"120.0.6099.291","28.3.2":"120.0.6099.291","28.3.3":"120.0.6099.291","29.0.0-alpha.1":"121.0.6147.0","29.0.0-alpha.2":"121.0.6147.0","29.0.0-alpha.3":"121.0.6147.0","29.0.0-alpha.4":"121.0.6159.0","29.0.0-alpha.5":"121.0.6159.0","29.0.0-alpha.6":"121.0.6159.0","29.0.0-alpha.7":"121.0.6159.0","29.0.0-alpha.8":"122.0.6194.0","29.0.0-alpha.9":"122.0.6236.2","29.0.0-alpha.10":"122.0.6236.2","29.0.0-alpha.11":"122.0.6236.2","29.0.0-beta.1":"122.0.6236.2","29.0.0-beta.2":"122.0.6236.2","29.0.0-beta.3":"122.0.6261.6","29.0.0-beta.4":"122.0.6261.6","29.0.0-beta.5":"122.0.6261.18","29.0.0-beta.6":"122.0.6261.18","29.0.0-beta.7":"122.0.6261.18","29.0.0-beta.8":"122.0.6261.18","29.0.0-beta.9":"122.0.6261.18","29.0.0-beta.10":"122.0.6261.18","29.0.0-beta.11":"122.0.6261.18","29.0.0-beta.12":"122.0.6261.29","29.0.0":"122.0.6261.39","29.0.1":"122.0.6261.57","29.1.0":"122.0.6261.70","29.1.1":"122.0.6261.111","29.1.2":"122.0.6261.112","29.1.3":"122.0.6261.112","29.1.4":"122.0.6261.129","29.1.5":"122.0.6261.130","29.1.6":"122.0.6261.139","29.2.0":"122.0.6261.156","29.3.0":"122.0.6261.156","29.3.1":"122.0.6261.156","29.3.2":"122.0.6261.156","29.3.3":"122.0.6261.156","29.4.0":"122.0.6261.156","29.4.1":"122.0.6261.156","29.4.2":"122.0.6261.156","29.4.3":"122.0.6261.156","29.4.4":"122.0.6261.156","29.4.5":"122.0.6261.156","29.4.6":"122.0.6261.156","30.0.0-alpha.1":"123.0.6296.0","30.0.0-alpha.2":"123.0.6312.5","30.0.0-alpha.3":"124.0.6323.0","30.0.0-alpha.4":"124.0.6323.0","30.0.0-alpha.5":"124.0.6331.0","30.0.0-alpha.6":"124.0.6331.0","30.0.0-alpha.7":"124.0.6353.0","30.0.0-beta.1":"124.0.6359.0","30.0.0-beta.2":"124.0.6359.0","30.0.0-beta.3":"124.0.6367.9","30.0.0-beta.4":"124.0.6367.9","30.0.0-beta.5":"124.0.6367.9","30.0.0-beta.6":"124.0.6367.18","30.0.0-beta.7":"124.0.6367.29","30.0.0-beta.8":"124.0.6367.29","30.0.0":"124.0.6367.49","30.0.1":"124.0.6367.60","30.0.2":"124.0.6367.91","30.0.3":"124.0.6367.119","30.0.4":"124.0.6367.201","30.0.5":"124.0.6367.207","30.0.6":"124.0.6367.207","30.0.7":"124.0.6367.221","30.0.8":"124.0.6367.230","30.0.9":"124.0.6367.233","30.1.0":"124.0.6367.243","30.1.1":"124.0.6367.243","30.1.2":"124.0.6367.243","30.2.0":"124.0.6367.243","30.3.0":"124.0.6367.243","30.3.1":"124.0.6367.243","30.4.0":"124.0.6367.243","30.5.0":"124.0.6367.243","30.5.1":"124.0.6367.243","31.0.0-alpha.1":"125.0.6412.0","31.0.0-alpha.2":"125.0.6412.0","31.0.0-alpha.3":"125.0.6412.0","31.0.0-alpha.4":"125.0.6412.0","31.0.0-alpha.5":"125.0.6412.0","31.0.0-beta.1":"126.0.6445.0","31.0.0-beta.2":"126.0.6445.0","31.0.0-beta.3":"126.0.6445.0","31.0.0-beta.4":"126.0.6445.0","31.0.0-beta.5":"126.0.6445.0","31.0.0-beta.6":"126.0.6445.0","31.0.0-beta.7":"126.0.6445.0","31.0.0-beta.8":"126.0.6445.0","31.0.0-beta.9":"126.0.6445.0","31.0.0-beta.10":"126.0.6478.36","31.0.0":"126.0.6478.36","31.0.1":"126.0.6478.36","31.0.2":"126.0.6478.61","31.1.0":"126.0.6478.114","31.2.0":"126.0.6478.127","31.2.1":"126.0.6478.127","31.3.0":"126.0.6478.183","31.3.1":"126.0.6478.185","31.4.0":"126.0.6478.234","31.5.0":"126.0.6478.234","31.6.0":"126.0.6478.234","31.7.0":"126.0.6478.234","31.7.1":"126.0.6478.234","31.7.2":"126.0.6478.234","31.7.3":"126.0.6478.234","31.7.4":"126.0.6478.234","31.7.5":"126.0.6478.234","31.7.6":"126.0.6478.234","31.7.7":"126.0.6478.234","32.0.0-alpha.1":"127.0.6521.0","32.0.0-alpha.2":"127.0.6521.0","32.0.0-alpha.3":"127.0.6521.0","32.0.0-alpha.4":"127.0.6521.0","32.0.0-alpha.5":"127.0.6521.0","32.0.0-alpha.6":"128.0.6571.0","32.0.0-alpha.7":"128.0.6571.0","32.0.0-alpha.8":"128.0.6573.0","32.0.0-alpha.9":"128.0.6573.0","32.0.0-alpha.10":"128.0.6573.0","32.0.0-beta.1":"128.0.6573.0","32.0.0-beta.2":"128.0.6611.0","32.0.0-beta.3":"128.0.6613.7","32.0.0-beta.4":"128.0.6613.18","32.0.0-beta.5":"128.0.6613.27","32.0.0-beta.6":"128.0.6613.27","32.0.0-beta.7":"128.0.6613.27","32.0.0":"128.0.6613.36","32.0.1":"128.0.6613.36","32.0.2":"128.0.6613.84","32.1.0":"128.0.6613.120","32.1.1":"128.0.6613.137","32.1.2":"128.0.6613.162","32.2.0":"128.0.6613.178","32.2.1":"128.0.6613.186","32.2.2":"128.0.6613.186","32.2.3":"128.0.6613.186","32.2.4":"128.0.6613.186","32.2.5":"128.0.6613.186","32.2.6":"128.0.6613.186","32.2.7":"128.0.6613.186","32.2.8":"128.0.6613.186","32.3.0":"128.0.6613.186","32.3.1":"128.0.6613.186","32.3.2":"128.0.6613.186","32.3.3":"128.0.6613.186","33.0.0-alpha.1":"129.0.6668.0","33.0.0-alpha.2":"130.0.6672.0","33.0.0-alpha.3":"130.0.6672.0","33.0.0-alpha.4":"130.0.6672.0","33.0.0-alpha.5":"130.0.6672.0","33.0.0-alpha.6":"130.0.6672.0","33.0.0-beta.1":"130.0.6672.0","33.0.0-beta.2":"130.0.6672.0","33.0.0-beta.3":"130.0.6672.0","33.0.0-beta.4":"130.0.6672.0","33.0.0-beta.5":"130.0.6723.19","33.0.0-beta.6":"130.0.6723.19","33.0.0-beta.7":"130.0.6723.19","33.0.0-beta.8":"130.0.6723.31","33.0.0-beta.9":"130.0.6723.31","33.0.0-beta.10":"130.0.6723.31","33.0.0-beta.11":"130.0.6723.44","33.0.0":"130.0.6723.44","33.0.1":"130.0.6723.59","33.0.2":"130.0.6723.59","33.1.0":"130.0.6723.91","33.2.0":"130.0.6723.118","33.2.1":"130.0.6723.137","33.3.0":"130.0.6723.152","33.3.1":"130.0.6723.170","33.3.2":"130.0.6723.191","33.4.0":"130.0.6723.191","33.4.1":"130.0.6723.191","33.4.2":"130.0.6723.191","33.4.3":"130.0.6723.191","33.4.4":"130.0.6723.191","33.4.5":"130.0.6723.191","33.4.6":"130.0.6723.191","33.4.7":"130.0.6723.191","33.4.8":"130.0.6723.191","33.4.9":"130.0.6723.191","33.4.10":"130.0.6723.191","33.4.11":"130.0.6723.191","34.0.0-alpha.1":"131.0.6776.0","34.0.0-alpha.2":"132.0.6779.0","34.0.0-alpha.3":"132.0.6789.1","34.0.0-alpha.4":"132.0.6789.1","34.0.0-alpha.5":"132.0.6789.1","34.0.0-alpha.6":"132.0.6789.1","34.0.0-alpha.7":"132.0.6789.1","34.0.0-alpha.8":"132.0.6820.0","34.0.0-alpha.9":"132.0.6824.0","34.0.0-beta.1":"132.0.6824.0","34.0.0-beta.2":"132.0.6824.0","34.0.0-beta.3":"132.0.6824.0","34.0.0-beta.4":"132.0.6834.6","34.0.0-beta.5":"132.0.6834.6","34.0.0-beta.6":"132.0.6834.15","34.0.0-beta.7":"132.0.6834.15","34.0.0-beta.8":"132.0.6834.15","34.0.0-beta.9":"132.0.6834.32","34.0.0-beta.10":"132.0.6834.32","34.0.0-beta.11":"132.0.6834.32","34.0.0-beta.12":"132.0.6834.46","34.0.0-beta.13":"132.0.6834.46","34.0.0-beta.14":"132.0.6834.57","34.0.0-beta.15":"132.0.6834.57","34.0.0-beta.16":"132.0.6834.57","34.0.0":"132.0.6834.83","34.0.1":"132.0.6834.83","34.0.2":"132.0.6834.159","34.1.0":"132.0.6834.194","34.1.1":"132.0.6834.194","34.2.0":"132.0.6834.196","34.3.0":"132.0.6834.210","34.3.1":"132.0.6834.210","34.3.2":"132.0.6834.210","34.3.3":"132.0.6834.210","34.3.4":"132.0.6834.210","34.4.0":"132.0.6834.210","34.4.1":"132.0.6834.210","34.5.0":"132.0.6834.210","34.5.1":"132.0.6834.210","34.5.2":"132.0.6834.210","34.5.3":"132.0.6834.210","34.5.4":"132.0.6834.210","34.5.5":"132.0.6834.210","34.5.6":"132.0.6834.210","34.5.7":"132.0.6834.210","34.5.8":"132.0.6834.210","35.0.0-alpha.1":"133.0.6920.0","35.0.0-alpha.2":"133.0.6920.0","35.0.0-alpha.3":"133.0.6920.0","35.0.0-alpha.4":"133.0.6920.0","35.0.0-alpha.5":"133.0.6920.0","35.0.0-beta.1":"133.0.6920.0","35.0.0-beta.2":"134.0.6968.0","35.0.0-beta.3":"134.0.6968.0","35.0.0-beta.4":"134.0.6968.0","35.0.0-beta.5":"134.0.6989.0","35.0.0-beta.6":"134.0.6990.0","35.0.0-beta.7":"134.0.6990.0","35.0.0-beta.8":"134.0.6998.10","35.0.0-beta.9":"134.0.6998.10","35.0.0-beta.10":"134.0.6998.23","35.0.0-beta.11":"134.0.6998.23","35.0.0-beta.12":"134.0.6998.23","35.0.0-beta.13":"134.0.6998.44","35.0.0":"134.0.6998.44","35.0.1":"134.0.6998.44","35.0.2":"134.0.6998.88","35.0.3":"134.0.6998.88","35.1.0":"134.0.6998.165","35.1.1":"134.0.6998.165","35.1.2":"134.0.6998.178","35.1.3":"134.0.6998.179","35.1.4":"134.0.6998.179","35.1.5":"134.0.6998.179","35.2.0":"134.0.6998.205","35.2.1":"134.0.6998.205","35.2.2":"134.0.6998.205","35.3.0":"134.0.6998.205","35.4.0":"134.0.6998.205","35.5.0":"134.0.6998.205","35.5.1":"134.0.6998.205","35.6.0":"134.0.6998.205","35.7.0":"134.0.6998.205","35.7.1":"134.0.6998.205","35.7.2":"134.0.6998.205","35.7.4":"134.0.6998.205","35.7.5":"134.0.6998.205","36.0.0-alpha.1":"135.0.7049.5","36.0.0-alpha.2":"136.0.7062.0","36.0.0-alpha.3":"136.0.7062.0","36.0.0-alpha.4":"136.0.7062.0","36.0.0-alpha.5":"136.0.7067.0","36.0.0-alpha.6":"136.0.7067.0","36.0.0-beta.1":"136.0.7067.0","36.0.0-beta.2":"136.0.7067.0","36.0.0-beta.3":"136.0.7067.0","36.0.0-beta.4":"136.0.7067.0","36.0.0-beta.5":"136.0.7103.17","36.0.0-beta.6":"136.0.7103.25","36.0.0-beta.7":"136.0.7103.25","36.0.0-beta.8":"136.0.7103.33","36.0.0-beta.9":"136.0.7103.33","36.0.0":"136.0.7103.48","36.0.1":"136.0.7103.48","36.1.0":"136.0.7103.49","36.2.0":"136.0.7103.49","36.2.1":"136.0.7103.93","36.3.0":"136.0.7103.113","36.3.1":"136.0.7103.113","36.3.2":"136.0.7103.115","36.4.0":"136.0.7103.149","36.5.0":"136.0.7103.168","36.6.0":"136.0.7103.177","36.7.0":"136.0.7103.177","36.7.1":"136.0.7103.177","36.7.3":"136.0.7103.177","36.7.4":"136.0.7103.177","36.8.0":"136.0.7103.177","36.8.1":"136.0.7103.177","36.9.0":"136.0.7103.177","36.9.1":"136.0.7103.177","36.9.2":"136.0.7103.177","36.9.3":"136.0.7103.177","36.9.4":"136.0.7103.177","36.9.5":"136.0.7103.177","37.0.0-alpha.1":"137.0.7151.0","37.0.0-alpha.2":"137.0.7151.0","37.0.0-alpha.3":"138.0.7156.0","37.0.0-alpha.4":"138.0.7165.0","37.0.0-alpha.5":"138.0.7177.0","37.0.0-alpha.6":"138.0.7178.0","37.0.0-alpha.7":"138.0.7178.0","37.0.0-beta.1":"138.0.7178.0","37.0.0-beta.2":"138.0.7178.0","37.0.0-beta.3":"138.0.7190.0","37.0.0-beta.4":"138.0.7204.15","37.0.0-beta.5":"138.0.7204.15","37.0.0-beta.6":"138.0.7204.15","37.0.0-beta.7":"138.0.7204.15","37.0.0-beta.8":"138.0.7204.23","37.0.0-beta.9":"138.0.7204.35","37.0.0":"138.0.7204.35","37.1.0":"138.0.7204.35","37.2.0":"138.0.7204.97","37.2.1":"138.0.7204.97","37.2.2":"138.0.7204.100","37.2.3":"138.0.7204.100","37.2.4":"138.0.7204.157","37.2.5":"138.0.7204.168","37.2.6":"138.0.7204.185","37.3.0":"138.0.7204.224","37.3.1":"138.0.7204.235","37.4.0":"138.0.7204.243","37.5.0":"138.0.7204.251","37.5.1":"138.0.7204.251","37.6.0":"138.0.7204.251","37.6.1":"138.0.7204.251","37.7.0":"138.0.7204.251","37.7.1":"138.0.7204.251","37.8.0":"138.0.7204.251","37.9.0":"138.0.7204.251","37.10.0":"138.0.7204.251","37.10.1":"138.0.7204.251","37.10.2":"138.0.7204.251","37.10.3":"138.0.7204.251","38.0.0-alpha.1":"139.0.7219.0","38.0.0-alpha.2":"139.0.7219.0","38.0.0-alpha.3":"139.0.7219.0","38.0.0-alpha.4":"140.0.7261.0","38.0.0-alpha.5":"140.0.7261.0","38.0.0-alpha.6":"140.0.7261.0","38.0.0-alpha.7":"140.0.7281.0","38.0.0-alpha.8":"140.0.7281.0","38.0.0-alpha.9":"140.0.7301.0","38.0.0-alpha.10":"140.0.7309.0","38.0.0-alpha.11":"140.0.7312.0","38.0.0-alpha.12":"140.0.7314.0","38.0.0-alpha.13":"140.0.7314.0","38.0.0-beta.1":"140.0.7314.0","38.0.0-beta.2":"140.0.7327.0","38.0.0-beta.3":"140.0.7327.0","38.0.0-beta.4":"140.0.7339.2","38.0.0-beta.5":"140.0.7339.2","38.0.0-beta.6":"140.0.7339.2","38.0.0-beta.7":"140.0.7339.16","38.0.0-beta.8":"140.0.7339.24","38.0.0-beta.9":"140.0.7339.24","38.0.0-beta.11":"140.0.7339.41","38.0.0":"140.0.7339.41","38.1.0":"140.0.7339.80","38.1.1":"140.0.7339.133","38.1.2":"140.0.7339.133","38.2.0":"140.0.7339.133","38.2.1":"140.0.7339.133","38.2.2":"140.0.7339.133","38.3.0":"140.0.7339.240","38.4.0":"140.0.7339.240","38.5.0":"140.0.7339.249","38.6.0":"140.0.7339.249","38.7.0":"140.0.7339.249","38.7.1":"140.0.7339.249","38.7.2":"140.0.7339.249","39.0.0-alpha.1":"141.0.7361.0","39.0.0-alpha.2":"141.0.7361.0","39.0.0-alpha.3":"141.0.7390.7","39.0.0-alpha.4":"141.0.7390.7","39.0.0-alpha.5":"141.0.7390.7","39.0.0-alpha.6":"142.0.7417.0","39.0.0-alpha.7":"142.0.7417.0","39.0.0-alpha.8":"142.0.7417.0","39.0.0-alpha.9":"142.0.7417.0","39.0.0-beta.1":"142.0.7417.0","39.0.0-beta.2":"142.0.7417.0","39.0.0-beta.3":"142.0.7417.0","39.0.0-beta.4":"142.0.7444.34","39.0.0-beta.5":"142.0.7444.34","39.0.0":"142.0.7444.52","39.1.0":"142.0.7444.59","39.1.1":"142.0.7444.59","39.1.2":"142.0.7444.134","39.2.0":"142.0.7444.162","39.2.1":"142.0.7444.162","39.2.2":"142.0.7444.162","39.2.3":"142.0.7444.175","39.2.4":"142.0.7444.177","39.2.5":"142.0.7444.177","39.2.6":"142.0.7444.226","40.0.0-alpha.2":"143.0.7499.0","40.0.0-alpha.4":"144.0.7506.0","40.0.0-alpha.5":"144.0.7526.0","40.0.0-alpha.6":"144.0.7526.0","40.0.0-alpha.7":"144.0.7526.0","40.0.0-alpha.8":"144.0.7526.0","40.0.0-beta.1":"144.0.7527.0","40.0.0-beta.2":"144.0.7527.0","40.0.0-beta.3":"144.0.7547.0"}
Index: de_modules/electron-to-chromium/index.js
===================================================================
--- node_modules/electron-to-chromium/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-var versions = require('./versions');
-var fullVersions = require('./full-versions');
-var chromiumVersions = require('./chromium-versions');
-var fullChromiumVersions = require('./full-chromium-versions');
-
-var electronToChromium = function (query) {
-  var number = getQueryString(query);
-  return number.split('.').length > 2 ? fullVersions[number] : versions[number] || undefined;
-};
-
-var chromiumToElectron = function (query) {
-  var number = getQueryString(query);
-  return number.split('.').length > 2 ? fullChromiumVersions[number] : chromiumVersions[number] || undefined;
-};
-
-var electronToBrowserList = function (query) {
-  var number = getQueryString(query);
-  return versions[number] ? "Chrome >= " + versions[number] : undefined;
-};
-
-var getQueryString = function (query) {
-  var number = query;
-  if (query === 1) { number = "1.0" }
-  if (typeof query === 'number') { number += ''; }
-  return number;
-};
-
-module.exports = {
-  versions: versions,
-  fullVersions: fullVersions,
-  chromiumVersions: chromiumVersions,
-  fullChromiumVersions: fullChromiumVersions,
-  electronToChromium: electronToChromium,
-  electronToBrowserList: electronToBrowserList,
-  chromiumToElectron: chromiumToElectron
-};
Index: de_modules/electron-to-chromium/package.json
===================================================================
--- node_modules/electron-to-chromium/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-{
-  "name": "electron-to-chromium",
-  "version": "1.5.267",
-  "description": "Provides a list of electron-to-chromium version mappings",
-  "main": "index.js",
-  "files": [
-    "versions.js",
-    "full-versions.js",
-    "chromium-versions.js",
-    "full-chromium-versions.js",
-    "versions.json",
-    "full-versions.json",
-    "chromium-versions.json",
-    "full-chromium-versions.json",
-    "LICENSE"
-  ],
-  "scripts": {
-    "build": "node build.mjs",
-    "update": "node automated-update.js",
-    "test": "nyc ava --verbose",
-    "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/kilian/electron-to-chromium/"
-  },
-  "keywords": [
-    "electron",
-    "chrome",
-    "chromium",
-    "browserslist",
-    "browserlist"
-  ],
-  "author": "Kilian Valkhof",
-  "license": "ISC",
-  "devDependencies": {
-    "ava": "^5.1.1",
-    "codecov": "^3.8.2",
-    "compare-versions": "^6.0.0-rc.1",
-    "node-fetch": "^3.3.0",
-    "nyc": "^15.1.0",
-    "shelljs": "^0.8.5"
-  }
-}
Index: de_modules/electron-to-chromium/versions.js
===================================================================
--- node_modules/electron-to-chromium/versions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,224 +1,0 @@
-module.exports = {
-	"0.20": "39",
-	"0.21": "41",
-	"0.22": "41",
-	"0.23": "41",
-	"0.24": "41",
-	"0.25": "42",
-	"0.26": "42",
-	"0.27": "43",
-	"0.28": "43",
-	"0.29": "43",
-	"0.30": "44",
-	"0.31": "45",
-	"0.32": "45",
-	"0.33": "45",
-	"0.34": "45",
-	"0.35": "45",
-	"0.36": "47",
-	"0.37": "49",
-	"1.0": "49",
-	"1.1": "50",
-	"1.2": "51",
-	"1.3": "52",
-	"1.4": "53",
-	"1.5": "54",
-	"1.6": "56",
-	"1.7": "58",
-	"1.8": "59",
-	"2.0": "61",
-	"2.1": "61",
-	"3.0": "66",
-	"3.1": "66",
-	"4.0": "69",
-	"4.1": "69",
-	"4.2": "69",
-	"5.0": "73",
-	"6.0": "76",
-	"6.1": "76",
-	"7.0": "78",
-	"7.1": "78",
-	"7.2": "78",
-	"7.3": "78",
-	"8.0": "80",
-	"8.1": "80",
-	"8.2": "80",
-	"8.3": "80",
-	"8.4": "80",
-	"8.5": "80",
-	"9.0": "83",
-	"9.1": "83",
-	"9.2": "83",
-	"9.3": "83",
-	"9.4": "83",
-	"10.0": "85",
-	"10.1": "85",
-	"10.2": "85",
-	"10.3": "85",
-	"10.4": "85",
-	"11.0": "87",
-	"11.1": "87",
-	"11.2": "87",
-	"11.3": "87",
-	"11.4": "87",
-	"11.5": "87",
-	"12.0": "89",
-	"12.1": "89",
-	"12.2": "89",
-	"13.0": "91",
-	"13.1": "91",
-	"13.2": "91",
-	"13.3": "91",
-	"13.4": "91",
-	"13.5": "91",
-	"13.6": "91",
-	"14.0": "93",
-	"14.1": "93",
-	"14.2": "93",
-	"15.0": "94",
-	"15.1": "94",
-	"15.2": "94",
-	"15.3": "94",
-	"15.4": "94",
-	"15.5": "94",
-	"16.0": "96",
-	"16.1": "96",
-	"16.2": "96",
-	"17.0": "98",
-	"17.1": "98",
-	"17.2": "98",
-	"17.3": "98",
-	"17.4": "98",
-	"18.0": "100",
-	"18.1": "100",
-	"18.2": "100",
-	"18.3": "100",
-	"19.0": "102",
-	"19.1": "102",
-	"20.0": "104",
-	"20.1": "104",
-	"20.2": "104",
-	"20.3": "104",
-	"21.0": "106",
-	"21.1": "106",
-	"21.2": "106",
-	"21.3": "106",
-	"21.4": "106",
-	"22.0": "108",
-	"22.1": "108",
-	"22.2": "108",
-	"22.3": "108",
-	"23.0": "110",
-	"23.1": "110",
-	"23.2": "110",
-	"23.3": "110",
-	"24.0": "112",
-	"24.1": "112",
-	"24.2": "112",
-	"24.3": "112",
-	"24.4": "112",
-	"24.5": "112",
-	"24.6": "112",
-	"24.7": "112",
-	"24.8": "112",
-	"25.0": "114",
-	"25.1": "114",
-	"25.2": "114",
-	"25.3": "114",
-	"25.4": "114",
-	"25.5": "114",
-	"25.6": "114",
-	"25.7": "114",
-	"25.8": "114",
-	"25.9": "114",
-	"26.0": "116",
-	"26.1": "116",
-	"26.2": "116",
-	"26.3": "116",
-	"26.4": "116",
-	"26.5": "116",
-	"26.6": "116",
-	"27.0": "118",
-	"27.1": "118",
-	"27.2": "118",
-	"27.3": "118",
-	"28.0": "120",
-	"28.1": "120",
-	"28.2": "120",
-	"28.3": "120",
-	"29.0": "122",
-	"29.1": "122",
-	"29.2": "122",
-	"29.3": "122",
-	"29.4": "122",
-	"30.0": "124",
-	"30.1": "124",
-	"30.2": "124",
-	"30.3": "124",
-	"30.4": "124",
-	"30.5": "124",
-	"31.0": "126",
-	"31.1": "126",
-	"31.2": "126",
-	"31.3": "126",
-	"31.4": "126",
-	"31.5": "126",
-	"31.6": "126",
-	"31.7": "126",
-	"32.0": "128",
-	"32.1": "128",
-	"32.2": "128",
-	"32.3": "128",
-	"33.0": "130",
-	"33.1": "130",
-	"33.2": "130",
-	"33.3": "130",
-	"33.4": "130",
-	"34.0": "132",
-	"34.1": "132",
-	"34.2": "132",
-	"34.3": "132",
-	"34.4": "132",
-	"34.5": "132",
-	"35.0": "134",
-	"35.1": "134",
-	"35.2": "134",
-	"35.3": "134",
-	"35.4": "134",
-	"35.5": "134",
-	"35.6": "134",
-	"35.7": "134",
-	"36.0": "136",
-	"36.1": "136",
-	"36.2": "136",
-	"36.3": "136",
-	"36.4": "136",
-	"36.5": "136",
-	"36.6": "136",
-	"36.7": "136",
-	"36.8": "136",
-	"36.9": "136",
-	"37.0": "138",
-	"37.1": "138",
-	"37.2": "138",
-	"37.3": "138",
-	"37.4": "138",
-	"37.5": "138",
-	"37.6": "138",
-	"37.7": "138",
-	"37.8": "138",
-	"37.9": "138",
-	"37.10": "138",
-	"38.0": "140",
-	"38.1": "140",
-	"38.2": "140",
-	"38.3": "140",
-	"38.4": "140",
-	"38.5": "140",
-	"38.6": "140",
-	"38.7": "140",
-	"39.0": "142",
-	"39.1": "142",
-	"39.2": "142",
-	"40.0": "144"
-};
Index: de_modules/electron-to-chromium/versions.json
===================================================================
--- node_modules/electron-to-chromium/versions.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","18.1":"100","18.2":"100","18.3":"100","19.0":"102","19.1":"102","20.0":"104","20.1":"104","20.2":"104","20.3":"104","21.0":"106","21.1":"106","21.2":"106","21.3":"106","21.4":"106","22.0":"108","22.1":"108","22.2":"108","22.3":"108","23.0":"110","23.1":"110","23.2":"110","23.3":"110","24.0":"112","24.1":"112","24.2":"112","24.3":"112","24.4":"112","24.5":"112","24.6":"112","24.7":"112","24.8":"112","25.0":"114","25.1":"114","25.2":"114","25.3":"114","25.4":"114","25.5":"114","25.6":"114","25.7":"114","25.8":"114","25.9":"114","26.0":"116","26.1":"116","26.2":"116","26.3":"116","26.4":"116","26.5":"116","26.6":"116","27.0":"118","27.1":"118","27.2":"118","27.3":"118","28.0":"120","28.1":"120","28.2":"120","28.3":"120","29.0":"122","29.1":"122","29.2":"122","29.3":"122","29.4":"122","30.0":"124","30.1":"124","30.2":"124","30.3":"124","30.4":"124","30.5":"124","31.0":"126","31.1":"126","31.2":"126","31.3":"126","31.4":"126","31.5":"126","31.6":"126","31.7":"126","32.0":"128","32.1":"128","32.2":"128","32.3":"128","33.0":"130","33.1":"130","33.2":"130","33.3":"130","33.4":"130","34.0":"132","34.1":"132","34.2":"132","34.3":"132","34.4":"132","34.5":"132","35.0":"134","35.1":"134","35.2":"134","35.3":"134","35.4":"134","35.5":"134","35.6":"134","35.7":"134","36.0":"136","36.1":"136","36.2":"136","36.3":"136","36.4":"136","36.5":"136","36.6":"136","36.7":"136","36.8":"136","36.9":"136","37.0":"138","37.1":"138","37.2":"138","37.3":"138","37.4":"138","37.5":"138","37.6":"138","37.7":"138","37.8":"138","37.9":"138","37.10":"138","38.0":"140","38.1":"140","38.2":"140","38.3":"140","38.4":"140","38.5":"140","38.6":"140","38.7":"140","39.0":"142","39.1":"142","39.2":"142","40.0":"144"}
Index: de_modules/es-toolkit/CHANGELOG.md
===================================================================
--- node_modules/es-toolkit/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,763 +1,0 @@
-# es-toolkit Changelog
-
-## Version v1.44.0
-
-Released on January 16th, 2026.
-
-- Added `shouldRetry` option to `retry` function. ([#1585])
-- Added `isEmptyObject` predicate function. ([#1584])
-- Added `isNumber` predicate function.
-- Enhanced error cloning to support `AggregateError`. ([#1563])
-- Implemented collection methods for Maps and Sets.
-- Added bundle size analysis and visualization components to docs. ([#1564])
-- Fixed `flattenObject` to retain empty objects and arrays.
-- Enhanced type safety for `clone` function.
-- Fixed `clone` error when cloning object with null prototype. ([#1570])
-- Fixed array function callbacks to include index and array parameters. ([#1561])
-- Fixed `compat/cloneDeep` and `cloneDeepWith` to clone null-prototype objects as regular objects. ([#1562])
-- Fixed `compat/clamp` to ensure consistency with lodash. ([#1555])
-- Simplified `intersection` filter callback for consistency. ([#1582])
-- Fixed incorrect function names and output in `cloneDeep` JSDoc examples. ([#1583])
-
-We sincerely thank @raon0211, @dayongkr, @eunwoo-levi, @matt-oakes, @T3sT3ro, and @D-Sketon for their contributions. We appreciate your great efforts!
-
-## Version v1.43.0
-
-Released on December 12th, 2025.
-
-- Enhanced `merge` to handle arrays and objects consistently, and to match lodash's behavior with date values and array-like objects. ([#1553], [#1542], [#1548])
-- Fixed `isMatch` and `isMatchWith` to match lodash's behavior.
-- Fixed `intersectionBy` implementation and removed duplicates when the mapper produces the same values. ([#1528])
-- Fixed `throttle` working like debounce.
-- Fixed type inference in `toSnakeCaseKeys`, `toCamelCaseKeys` for edge cases and improved type inference for uppercase keys. ([#1538])
-- Fixed casing utilities (`camelCase`, `kebabCase`, `lowerCase`, `snakeCase`, `startCase`, `upperCase`) to match lodash's behavior. ([#1525])
-- Fixed `compat/template` to disable ES interpolation when custom `interpolate` is provided. ([#1527])
-- Fixed incorrect example in `differenceBy` documentation. ([#1543])
-- Performance improvement: updated `deburr` to use arrays to construct the deburrMap. ([#1526])
-
-We sincerely thank @dayongkr, @raon0211, @wo-o29, @Yeom-JinHo, @Copilot, @oshosh, @vbfox, @sukvvon, @sankeyangshu, @D-Sketon, @seo-rii for their contributions. We appreciate your great efforts!
-
-## Version v1.42.0
-
-Released on November 17th, 2025.
-
-- Added new async utilities: `filterAsync`, `flatMapAsync`, `forEachAsync`, `mapAsync`, `reduceAsync`, and `limitAsync` for handling asynchronous operations.
-- Exported `ThrottleOptions` and `DebounceOptions` interfaces for better type support.
-- Fixed `isFinite` to implement type predicate to narrow type to number.
-- Fixed `isSafeInteger` to implement type predicate to narrow type to number.
-- Fixed `omit` to prevent adding index properties to array-like objects.
-- Fixed `mergeWith` to remove unnecessary nullish coalescing for 100% branch coverage.
-- Fixed `compat/updateWith` to remove unreachable code and add prototype pollution test.
-- Updated documentation headings for consistency.
-- Improved test coverage for `compat/mergeWith`, `compat/unset`, `get`, `toMerged`, `mergeWith`, and `compat/intersectionBy` with additional edge cases and security tests.
-
-We sincerely thank @Debbl, @wo-o29, @raon0211, @Yeom-JinHo, @sukvvon, and @D-Sketon for their contributions. We appreciate your great efforts!
-
-## Version v1.41.0
-
-Released on October 24th, 2025.
-
-- Enhanced `throttle` to preserve `this` context when called as a method.
-- Added type guard support for `partition` function.
-- Fixed `omit` to support runtime-determined key arrays with proper overloads.
-- Fixed `defaults` in compatibility layer to properly handle undefined and null sources.
-- Fixed `toSnakeCaseKeys` and `toCamelCaseKeys` to correctly return types for non-plain objects.
-- Fixed `toMerged` and `mergeWith` to properly handle shared objects in merge logic.
-- Fixed `compat/union` to support array-like objects.
-- Fixed `compat/updateWith` to use `get` for value retrieval in updater function.
-- Fixed circular import between `isMatch` and `isMatchWith`.
-- Fixed `find` and `findLast` by simplifying logic and removing unnecessary checks.
-- Fixed `takeRight` by improving test coverage and removing redundant checks.
-- Fixed `curry` and `curryRight` by removing unnecessary type assertions.
-- Fixed `isEqualWith` and `mapKeys` by removing unnecessary type assertions.
-- Improved performance for `meanBy` by removing intermediate array creation.
-- Updated build system to use UMD format instead of IIFE for browser builds.
-- Fixed numerous documentation examples across compat modules.
-- Improved test coverage with additional test cases for edge cases and compatibility.
-
-We sincerely thank @the5thbeatle, @wo-o29, @hwibaski, @manudeli, @raon0211, @dayongkr, @D-Sketon, @yoouungyoung, @Dohun-choi, @sukvvon, @zoulou00, and @sen2y for their contributions. We appreciate your great efforts!
-
-## Version v1.40.0
-
-Released on October 8th, 2025.
-
-- Enhanced `sumBy` to pass the element index to the `getValue` callback function.
-- Improved performance for `uniq` function.
-- Fixed `cloneDeepWith` to handle runtime errors in environments without Blob support and correctly clone Boolean, Number, and String objects.
-- Fixed `omit` to avoid unnecessary deep cloning, improving performance.
-- Fixed `toCamelCaseKeys` to properly handle PascalCase type conversion.
-- Fixed `toPath` to correctly handle arrays and non-string inputs.
-- Fixed `repeat` to validate and handle invalid repeat counts.
-- Fixed `sortedIndexBy` to properly handle default iteratee.
-- Fixed `some` predicate check to correctly handle null and undefined cases.
-- Fixed compatibility issue in `compat/unset` with nonexistent paths.
-- Fixed several JSDoc issues across multiple functions including return types, parameter descriptions, and method names.
-- Improved documentation clarity and consistency across multiple functions.
-- Enhanced test coverage with additional test cases for compat functions and edge cases.
-- Updated build configuration and CI workflows.
-
-We sincerely thank @wo-o29, @D-Sketon, @HidenLee, @yoouung, @manudeli, @dayongkr, @Li13, @nicklemmon, @sen2y, @miinhho, @raon0211, @joshkel, @jgjgill, @mlnwns, @Dohun-choi, @PinkChampagne17, @sukvvon, @YOUNGHO8762, @caseBread, @Jeongeun-Choi, @artechventure and hoyyChoi for their contributions. We appreciate your great efforts!
-
-## Version v1.39.10
-
-Released on August 17th, 2025.
-
-- Fixed `defaultsDeep` to properly handle deep merging of objects in arrays
-- Fixed several documentation issues and examples across multiple functions
-
-We sincerely thank @wo-o29, @thwlckd, @kilimandzharov, and @dayongkr for their contributions. We appreciate your great efforts!
-
-## Version v1.39.9
-
-Released on August 10th, 2025.
-
-- Fixed `mergeWith` to properly handle null values returned from customizer function.
-- Fixed `cloneDeepWith` to properly handle customizer returning null values.
-- Fixed some of the documentation issues.
-
-We sincerely thank @raon0211, @joshkel, and @Najeong-Kim for their contributions. We appreciate your great efforts!
-
-## Version v1.39.8
-
-Released on July 25th, 2025.
-
-- Aligned the types of `fill`, `pullAll`, `pullAllBy`, `pullAllWith`, `pullAt`, `remove`, and `reverse` in our compatibility library with the latest Lodash types (`@types/lodash` v4.17.20).
-
-## Version v1.39.7
-
-Released on July 9th, 2025.
-
-- Fixed a compatibility issue with Lodash's `debounce` and `throttle` functions.
-- Remove useless source map for reduce bundle size.
-- Fix some of the documentation issues.
-
-We sincerely thank @dayongkr, @cobocho, @raon0211, and @D-Sketon for their contributions. We appreciate your great efforts!
-
-## Version v1.39.6
-
-Released on July 2th, 2025.
-
-- Fixed handling of null/undefined values in `values` function.
-- Fixed type safety in `compat/get` by adding GetFieldType utility type.
-
-We sincerely thank @raon0211, @dayongkr, @yhb-flydream, @ssi02014, @JeongHwan-dev, and @guesung for their contributions. We appreciate your great efforts!
-
-## Version v1.39.5
-
-Released on June 24th, 2025.
-
-- Fixed type compatibility issues between `es-toolkit/compat` and `@types/lodash`.
-- Improved documentation.
-
-We thank @raon0211, @dayongkr, @sukvvon, and @yhb-flydream for their contributions.
-
-## Version v1.39.4
-
-Released on June 21st, 2025.
-
-- Fixed prototype pollution issue in es-toolkit to enhance security.
-- Enhanced build system to provide compat/\* functions in CommonJS format by default.
-
-We thank @raon0211, and @dayongkr for their contributions.
-
-## Version v1.39.3
-
-Released on June 7th, 2025.
-
-- Fixed postbuild script to ensure compat function categorization aligns with src directory structure.
-
-## Version v1.39.2
-
-Released on June 7th, 2025.
-
-- Added dual package export support for individual compat functions (e.g., `es-toolkit/compat/add`).
-
-## Version v1.39.1
-
-Released on June 6th, 2025.
-
-- Resolved mismatch between named and default exports in compat .d.ts and .js files to improve TypeScript integration.
-
-## Version v1.39.0
-
-🎉 Released on June 5th, 2025. 🎉
-
-We're thrilled to announce that `es-toolkit/compat` has achieved full compatibility with Lodash! 🎉
-
-A huge thank you to all our contributors who made this possible.
-
-- Introduced compatibility functions for [defaultsDeep](https://es-toolkit.slash.page/reference/compat/object/defaultsDeep.html), [isMatchWith](https://es-toolkit.slash.page/reference/compat/predicate/isMatchWith.html), [flatMapDepth](https://es-toolkit.slash.page/reference/compat/array/flatMapDepth.html), [flatMapDeep](https://es-toolkit.slash.page/reference/compat/array/flatMapDeep.html), [overArgs](https://es-toolkit.slash.page/reference/compat/function/overArgs.html), [findLastKey](https://es-toolkit.slash.page/reference/compat/object/findLastKey.html) and [truncate](https://es-toolkit.slash.page/reference/compat/string/truncate.html).
-- Enhanced build system to support `es-toolkit/compat/*` module imports.
-- Fixed special functions like `each` to ensure proper functionality.
-- Fixed Deno compatibility issues for `defaultsDeep` function.
-- Fixed import paths in Deno environment.
-- Added benchmark comparing es-toolkit and lodash `identity` function performance.
-- Improved documentation and test coverage for various functions.
-
-We sincerely thank @raon0211, @dayongkr, @mreiden, @hwibaski, @shren207, @jiji-hoon96, and @myungjuice for their contributions. We appreciate your great efforts!
-
-### ⭐️ Special Thanks to Our Amazing Contributors Who Made 100% Compatibility Possible ⭐️
-
-@raon0211, @dayongkr, @D-Sketon, @mass2527, @ssi02014, @shren207, @chhw130, @haejunejung, @jsparkdev, @manudeli, @jgjgill, @hyesungoh, @kaehehehe, @filipsobol, @fvsch, @wondonghwi, @seungrodotlee, @bertyhell, @minchodang, @Jeong-Rae, @kangju2000, @juno7803, @wojtekmaj, @mattiacoll, @changwoolab, @po4tion, @gyumong, @choi2021, @mancuoj, @de-novo, @eunhyulkim, @kim-sung-jee, @gs18004, @Hanna922, @Na-hyunwoo, @aken-you, @tanggd, @ho991217, @piquark6046, @jiji-hoon96, @seonghun0828, @pkovzz, @nnnnoel, @noelkim-prestolabs, @minsoo-web, @hautest, @scato3, @l2hyunwoo, @WooWan, @VVSOGI, @k-jeonghee, @knott11, @lukaszkowalik2, @moonheekim0118, @sadobass, @minjongbaek, @umsungjun, @sossost, @sunrabbit123, @Seung-wan, @cruelladevil, @iDevGon, @oror-sine, @1eeminhyeong, @benzyminzy, @BlackWhite2000, @tooooo1, @L2HYUNN, @DonghyunKim98, @dasom-jo, @guesung, @uniqueeest, @KiKoS0, @myungjuice, @seung-juv, @Collection50, @nowethan, @coding-honey, @ariandel-dev, @apeltop, @jch1223, @yhay81, @milooy, @raviqqe, @youznn, @BinskLee, @YEONDG, @shinwonse, @willmanduffy, @vjo, @touhidrahman, @T3sT3ro, @belgattitude, @WISUNGWON, @anaclumos, @hsskey, @BasixKOR, @Kyujenius, @Dohun-choi, @dngur9801, @sanginchun, @westofsky, @DONG-8, @yhmpc, @pbstar, @MoXiaoluo, @uussong, @tuhm1, @tisou1, @spookyuser, @sa02045, @Hotanya, @nia3y, @mreiden, @kms0219kms, @IkumaTadokoro, @hansolbangul, @hainan-612, @hwibaski, @jeongshin, @HoberMin, @ohprettyhak, @gweesin, @FengBuPi, @kyvg, @evan-moon, @chldmsqls34, @kimpuro, @dogagenc, @Duck-98, @redd97, @faner11, @bhollis, @jaehunn, @babay123, @beomxtone, @ankitjha420, @shan-mx, @2skydev, @StyleShit, @confidential-nt, @siddsarkar, @seongminn, @healtheloper, @pnodet, @Gaic4o, @leeminhee119, @leehj322, @kristian240, @kingston, @kim-dongho, @jungwoo3490, @joris-gallot, @jonganebski, @jiwooproity, @moshuying, @jakvbs, @therealjamesjung, @SaeWooKKang and @HyeokjaeLee
-
-## Version v1.38.0
-
-Released on May 18th, 2025.
-
-- Added compatibility functions for [bindAll](https://es-toolkit.slash.page/reference/compat/util/bindAll.html), [setWith](https://es-toolkit.slash.page/reference/compat/object/setWith.html), [memoize](https://es-toolkit.slash.page/reference/function/memoize.html), [isNative](https://es-toolkit.slash.page/reference/compat/predicate/isNative.html), [invokeMap](https://es-toolkit.slash.page/reference/compat/array/invokeMap.html), [clone](https://es-toolkit.slash.page/reference/object/clone.html), [cloneWith](https://es-toolkit.slash.page/reference/compat/object/cloneWith.html), and [sortedLastIndexOf](https://es-toolkit.slash.page/reference/compat/array/sortedLastIndexOf.html).
-- Enhanced [invariant](https://es-toolkit.slash.page/reference/util/invariant.html) function to accept Error instances and added [assert](https://es-toolkit.slash.page/reference/util/assert.html) alias.
-- Fixed type definitions and empty array handling in [maxBy](https://es-toolkit.slash.page/reference/array/maxBy.html) and [minBy](https://es-toolkit.slash.page/reference/array/minBy.html).
-- Fixed typo 'Partail' to 'Partial' in [findKey](https://es-toolkit.slash.page/reference/object/findKey.html) type annotation.
-- Enhanced [max](https://es-toolkit.slash.page/reference/math/max.html) and [min](https://es-toolkit.slash.page/reference/math/min.html) functions to skip NaN, symbol, and null values, and return undefined when all values are skipped.
-- Fixed sparse array handling in compat functions to match Lodash's behavior.
-- Improved test coverage and documentation for various functions.
-- Fixed various documentation issues and typos.
-
-We sincerely thank @myungjuice, @scato3, @uniqueeest, @YEONDG, @shren207, @hyesungoh, @kms0219kms, @minjongbaek, @kristian240, @D-Sketon, @Seung-wan, @jiji-hoon96, @raon0211, and @dayongkr for their contributions. We appreciate your great efforts!
-
-## Version v1.37.2
-
-Released on May 4th, 2025.
-
-- Fixed an issue in `es-toolkit/compat`'s `throttle` function to match Lodash's behavior by immediately invoking the throttled function when wait time is zero.
-
-## Version v1.37.1
-
-Released on May 3rd, 2025.
-
-- Fixed a bug in JSR's `@es-toolkit/es-toolkit` package that prevented importing the `camelCase` function in Deno.
-
-## Version v1.37.0
-
-Released on May 3rd, 2025.
-
-- Introduced compatibility functions for [result](https://es-toolkit.slash.page/reference/compat/object/result.html), [omitBy](https://es-toolkit.slash.page/reference/object/omitBy.html), [xorBy](https://es-toolkit.slash.page/reference/array/xorBy.html), [xorWith](https://es-toolkit.slash.page/reference/array/xorWith.html), [unzipWith](https://es-toolkit.slash.page/reference/array/unzipWith.html), [sampleSize](https://es-toolkit.slash.page/reference/array/sampleSize.html), [transform](https://es-toolkit.slash.page/reference/compat/object/transform.html), [wrap](https://es-toolkit.slash.page/reference/compat/function/wrap.html), [countBy](https://es-toolkit.slash.page/reference/array/countBy.html), and [xor](https://es-toolkit.slash.page/reference/array/xor.html).
-- Added vitest benchmark for [ary](https://es-toolkit.slash.page/reference/function/ary.html) function.
-- Fixed string comparison in [sortBy](https://es-toolkit.slash.page/reference/array/sortBy.html) and [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html) by removing locale comparison and using ASCII code instead.
-- Fixed type definition in [isBuffer](https://es-toolkit.slash.page/reference/predicate/isBuffer.html).
-- Fixed internal documentation links for Korean and Japanese headings.
-- Improved code readability and documentation for various functions.
-- Prevented circular dependencies by updating import paths in [toCamelCaseKeys](https://es-toolkit.slash.page/reference/object/toCamelCaseKeys.html) and [toSnakeCaseKeys](https://es-toolkit.slash.page/reference/object/toSnakeCaseKeys.html).
-
-We sincerely thank @chldmsqls34, @umsungjun, @raon0211, @dayongkr, @shren207, @oror-sine, @L2HYUNN, @D-Sketon, @ariandel-dev, @Jeong-Rae, and @beomxtone for their contributions. We appreciate your great efforts!
-
-## Version v1.36.0
-
-Released on April 24th, 2025.
-
-- Introduced compatibility functions for [groupBy](https://es-toolkit.slash.page/reference/array/groupBy.html), [partial](https://es-toolkit.slash.page/reference/function/partial.html), [partialRight](https://es-toolkit.slash.page/reference/function/partialRight.html), [forEachRight](https://es-toolkit.slash.page/reference/array/forEachRight.html), [forOwnRight](https://es-toolkit.slash.page/reference/compat/object/forOwnRight.html), [forIn](https://es-toolkit.slash.page/reference/compat/object/forIn.html), [forInRight](https://es-toolkit.slash.page/reference/compat/object/forInRight.html), [overEvery](https://es-toolkit.slash.page/reference/compat/util/overEvery.html), [hasIn](https://es-toolkit.slash.page/reference/compat/object/hasIn.html), [pullAt](https://es-toolkit.slash.page/reference/array/pullAt.html), [forOwn](https://es-toolkit.slash.page/reference/compat/object/forOwn.html), [pullAllWith](https://es-toolkit.slash.page/reference/compat/array/pullAllWith.html), [overSome](https://es-toolkit.slash.page/reference/compat/util/overSome.html), [partition](https://es-toolkit.slash.page/reference/array/partition.html), and [flatMap](https://es-toolkit.slash.page/reference/array/flatMap.html).
-- Fixed compatibility issues in [take](https://es-toolkit.slash.page/reference/array/take.html), [takeRight](https://es-toolkit.slash.page/reference/array/takeRight.html), [defaults](https://es-toolkit.slash.page/reference/compat/object/defaults.html), [repeat](https://es-toolkit.slash.page/reference/compat/string/repeat.html), and [words](https://es-toolkit.slash.page/reference/string/words.html) by adding proper guards.
-- Fixed [throttle](https://es-toolkit.slash.page/reference/function/throttle.html) behavior when both leading and trailing options are enabled.
-- Improved performance for [find](https://es-toolkit.slash.page/reference/compat/array/find.html) by removing unnecessary slice operations.
-- Enhanced performance of [toPairs](https://es-toolkit.slash.page/reference/compat/object/toPairs.html) by pre-allocating arrays and using iterator values.
-- Simplified implementation and aligned types with Lodash for [partition](https://es-toolkit.slash.page/reference/array/partition.html).
-
-We sincerely thank @D-Sketon, @raon0211, @dayongkr, @minjongbaek, @seungrodotlee, @mass2527, @uniqueeest, @leehj322, @cruelladevil, @shren207, and @ssi02014 for their contributions. We appreciate your great efforts!
-
-## Version v1.35.0
-
-Released on April 16th, 2025.
-
-- Added support for [toCamelCaseKeys](https://es-toolkit.slash.page/reference/object/toCamelCaseKeys.html) and [toSnakeCaseKeys](https://es-toolkit.slash.page/reference/object/toSnakeCaseKeys.html).
-- Added support for custom delay function based on attempts in [retry](https://es-toolkit.slash.page/reference/function/retry.html).
-- Introduced compatibility functions for [at](https://es-toolkit.slash.page/reference/array/at.html) (array), [split](https://es-toolkit.slash.page/reference/compat/string/split.html), [shuffle](https://es-toolkit.slash.page/reference/array/shuffle.html), [zipWith](https://es-toolkit.slash.page/reference/array/zipWith.html), [zipObject](https://es-toolkit.slash.page/reference/array/zipObject.html), [keyBy](https://es-toolkit.slash.page/reference/array/keyBy.html), [assign](https://es-toolkit.slash.page/reference/compat/object/assign.html), [assignInWith](https://es-toolkit.slash.page/reference/compat/object/assignInWith.html), [assignWith](https://es-toolkit.slash.page/reference/compat/object/assignWith.html), [update](https://es-toolkit.slash.page/reference/compat/object/update.html), [updateWith](https://es-toolkit.slash.page/reference/compat/object/updateWith.html), [uniqWith](https://es-toolkit.slash.page/reference/array/uniqWith.html), [unionBy](https://es-toolkit.slash.page/reference/array/unionBy.html), [unionWith](https://es-toolkit.slash.page/reference/array/unionWith.html), [takeWhile](https://es-toolkit.slash.page/reference/array/takeWhile.html), [sortedLastIndex](https://es-toolkit.slash.page/reference/compat/array/sortedLastIndex.html), [sortedLastIndexBy](https://es-toolkit.slash.page/reference/compat/array/sortedLastIndexBy.html), [toPairs](https://es-toolkit.slash.page/reference/compat/object/toPairs.html), [toPairsIn](https://es-toolkit.slash.page/reference/compat/object/toPairsIn.html), [cond](https://es-toolkit.slash.page/reference/compat/util/cond.html), [over](https://es-toolkit.slash.page/reference/compat/util/over.html), [functions](https://es-toolkit.slash.page/reference/compat/object/functions.html), and [create](https://es-toolkit.slash.page/reference/compat/object/create.html) in `es-toolkit/compat`.
-- Fixed Lodash compatibility issues in [pick](https://es-toolkit.slash.page/reference/object/pick.html) and [pickBy](https://es-toolkit.slash.page/reference/object/pickBy.html).
-
-We sincerely thank @shren207, @kim-sung-jee, @HyeokjaeLee, @Jeong-Rae, @D-Sketon, @jsparkdev, @wojtekmaj, @FengBuPi, @oror-sine, @L2HYUNN, @gs18004, @ohprettyhak, and @kimpuro for their contributions. We appreciate your great efforts!
-
-## Version v1.34.1
-
-Released on March 27th, 2025.
-
-- Fixed a bug in [isBrowser](https://es-toolkit.slash.page/reference/predicate/isBrowser.html) and [isNode](https://es-toolkit.slash.page/reference/predicate/isNode.html) that caused them to not work properly in Deno environments.
-
-## Version v1.34.0
-
-Released on March 27th, 2025.
-
-- Added support for [isBrowser](https://es-toolkit.slash.page/reference/predicate/isBrowser.html), [isNode](https://es-toolkit.slash.page/reference/predicate/isNode.html), [attempt](https://es-toolkit.slash.page/reference/util/attempt.html), [attemptAsync](https://es-toolkit.slash.page/reference/util/attemptAsync.html).
-- Introduced compatibility functions for [functionsIn](https://es-toolkit.slash.page/reference/compat/object/functionsIn.html), [meanBy](https://es-toolkit.slash.page/reference/math/meanBy.html), [minBy](https://es-toolkit.slash.page/reference/math/minBy.html), [mean](https://es-toolkit.slash.page/reference/math/mean.html), [sortedIndexOf](https://es-toolkit.slash.page/reference/compat/array/sortedIndexOf.html).
-- Fixed compatibility with lodash for [set](https://es-toolkit.slash.page/reference/compat/object/set.html), [add](https://es-toolkit.slash.page/reference/compat/math/add.html), [subtract](https://es-toolkit.slash.page/reference/compat/math/subtract.html).
-
-We sincerely thank @dayongkr, @D-Sketon, @seongminn, @Kyujenius for their contributions. We appreciate your great efforts!
-
-## Version v1.33.0
-
-Released on March 9th, 2025.
-
-- Added support for [reverseString](https://es-toolkit.slash.page/reference/string/reverseString.html) and [isJSON](https://es-toolkit.slash.page/reference/predicate/isJSON.html).
-- Introduced compatibility functions for [pullAllBy](https://es-toolkit.slash.page/reference/compat/array/pullAllBy.html), [intersectionWith](https://es-toolkit.slash.page/reference/array/intersectionWith.html), [findLast](https://es-toolkit.slash.page/reference/compat/array/findLast.html), [reduce](https://es-toolkit.slash.page/reference/compat/array/reduce.html), [reduceRight](https://es-toolkit.slash.page/reference/compat/array/reduceRight.html), [divide](https://es-toolkit.slash.page/reference/compat/math/divide.html), [values](https://es-toolkit.slash.page/reference/compat/object/values.html), [valuesIn](https://es-toolkit.slash.page/reference/compat/object/valuesIn.html), [maxBy](https://es-toolkit.slash.page/reference/compat/math/maxBy.html), and [pickBy](https://es-toolkit.slash.page/reference/compat/object/pickBy.html).
-- Fixed package exports on React Native so that `es-toolkit` can be used in React Native projects.
-- Fixed a bug in [sum](https://es-toolkit.slash.page/reference/math/sum.html) where passing `undefined` values like `sum([undefined, 1, 2, 3])` resulted in `NaN`, which was different from lodash.
-- Fixed a bug in [assignIn](https://es-toolkit.slash.page/reference/compat/object/assignIn.html) that didn't assign keys with undefined values.
-
-## Version v1.32.0
-
-Released on January 30th, 2025.
-
-- Added support for [Semaphore](https://es-toolkit.slash.page/reference/promise/Semaphore.html), [Mutex](https://es-toolkit.slash.page/reference/promise/Mutex.html), [isPromise](https://es-toolkit.slash.page/reference/predicate/isPromise.html), and [retry](https://es-toolkit.slash.page/reference/function/retry.html).
-- Introduced compatibility functions for [multiply](https://es-toolkit.slash.page/reference/compat/math/multiply.html), [sortedIndex](https://es-toolkit.slash.page/reference/compat/array/sortedIndex.html), and [sortedIndexBy](https://es-toolkit.slash.page/reference/compat/array/sortedIndexBy.html).
-- Added support for custom delimiters in [flattenObject](https://es-toolkit.slash.page/reference/object/flattenObject.html).
-- Added support for `fromIndex` parameters in [find](https://es-toolkit.slash.page/reference/compat/array/find.html).
-- Fixed a bug in [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html) and [cloneDeepWith](https://es-toolkit.slash.page/reference/object/cloneDeepWith.html) that cloned uncloneable objects.
-
-## Version v1.31.0
-
-Released on December 27th, 2024.
-
-- Added support for the [windowed](https://es-toolkit.slash.page/reference/array/windowed.html), [remove](https://es-toolkit.slash.page/reference/array/remove.html) and [asyncNoop](https://es-toolkit.slash.page/reference/function/asyncNoop.html) functions.
-- Introduced compatibility functions for [pullAll](https://es-toolkit.slash.page/reference/compat/array/pullAll.html), [subtract](https://es-toolkit.slash.page/reference/compat/math/subtract.html), [isBuffer](https://es-toolkit.slash.page/reference/predicate/isBuffer.html), and [methodOf](https://es-toolkit.slash.page/reference/compat/util/methodOf.html).
-- Enhanced the performance of [pull](https://es-toolkit.slash.page/reference/array/pull.html) when working with large arrays.
-- Resolved an issue where [reverse](https://es-toolkit.slash.page/reference/compat/array/reverse.html) was not being exported in our compatibility library.
-- Updated [groupBy](https://es-toolkit.slash.page/reference/array/groupBy.html) to properly handle keys like `toString` or `valueOf`.
-- Fixed [merge](https://es-toolkit.slash.page/reference/object/merge.html) to correctly merge values when `target` or any of its values are `null` or `undefined`.
-
-We sincerely thank @T3sT3ro, @D-Sketon, @tuhm1, @willmanduffy, @apeltop, @aken-you, @SaeWooKKang, and @ssi02014 for their contributions. We appreciate your great efforts!
-
-## Version v1.30.1
-
-Released on December 14th, 2024.
-
-- Fixed [uniqueId](https://es-toolkit.slash.page/reference/compat/util/uniqueId.html) not being exported in our compatibility library.
-
-We sincerely thank @redd97 for their contributions. We appreciate your great efforts!
-
-## Version v1.30.0
-
-Released on December 13th, 2024.
-
-- Introduced support for [pull](https://es-toolkit.slash.page/reference/array/pull.html).
-- Added compatibility functions for [map](https://es-toolkit.slash.page/reference/compat/array/map.html), [range](https://es-toolkit.slash.page/reference/math/range.html), [rangeRight](https://es-toolkit.slash.page/reference/math/rangeRight.html), [differenceWith](https://es-toolkit.slash.page/reference/array/differenceWith.html), [nth](https://es-toolkit.slash.page/reference/compat/array/nth.html), [noop](https://es-toolkit.slash.page/reference/function/noop.html), [identity](https://es-toolkit.slash.page/reference/function/identity.html), [keys](https://es-toolkit.slash.page/reference/compat/object/keys.html), [propertyOf](https://es-toolkit.slash.page/reference/compat/object/propertyOf.html), [nthArg](https://es-toolkit.slash.page/reference/compat/function/nthArg.html), [delay](https://es-toolkit.slash.page/reference/promise/delay.html), [toPlainObject](https://es-toolkit.slash.page/reference/compat/util/toPlainObject.html), [unary](https://es-toolkit.slash.page/reference/function/unary.html), [once](https://es-toolkit.slash.page/reference/function/once.html), [after](https://es-toolkit.slash.page/reference/function/after.html), [takeRightWhile](https://es-toolkit.slash.page/reference/array/takeRightWhile.html), [escapeRegExp](https://es-toolkit.slash.page/reference/string/escapeRegExp.html), [unescape](https://es-toolkit.slash.page/reference/string/unescape.html), [upperFirst](https://es-toolkit.slash.page/reference/string/upperFirst.html), [lowerFirst](https://es-toolkit.slash.page/reference/string/lowerFirst.html), [deburr](https://es-toolkit.slash.page/reference/string/deburr.html), [lt](https://es-toolkit.slash.page/reference/util/lt.html), [lte](https://es-toolkit.slash.page/reference/util/lte.html), [toLower](https://es-toolkit.slash.page/reference/compat/string/toLower.html), [invoke](https://es-toolkit.slash.page/reference/compat/util/invoke.html), [method](https://es-toolkit.slash.page/reference/compat/util/method.html), [reverse](https://es-toolkit.slash.page/reference/compat/array/reverse.html), [now](https://es-toolkit.slash.page/reference/compat/util/now.html), [findKey](https://es-toolkit.slash.page/reference/object/findKey.html), [stubArray](https://es-toolkit.slash.page/reference/compat/util/stubArray.html), [stubFalse](https://es-toolkit.slash.page/reference/compat/util/stubFalse.html), [stubObject](https://es-toolkit.slash.page/reference/compat/util/stubObject.html), [stubString](https://es-toolkit.slash.page/reference/compat/util/stubString.html), and [stubTrue](https://es-toolkit.slash.page/reference/compat/util/stubTrue.html).
-
-We sincerely thank @healtheloper, @mass2527, @D-Sketon, @eunhyulkim, @scato3, @Na-hyunwoo, and @dasom-jo for their contributions. We appreciate your great efforts!
-
-## Version v1.29.0
-
-Released on December 1st, 2024.
-
-- Introduced support for [cloneDeepWith](https://es-toolkit.slash.page/reference/object/cloneDeepWith.html).
-- Added a compatibility function for [lastIndexOf](https://es-toolkit.slash.page/reference/compat/array/lastIndexOf.html).
-- Fixed an issue in [flattenObject](https://es-toolkit.slash.page/reference/object/flattenObject.html) where nested objects in arrays were not flattened correctly.
-
-We sincerely thank @nnnnoel and @evan-moon for their contributions. We appreciate your great efforts!
-
-## Version v1.28.0
-
-Released on November 30th, 2024.
-
-- Added compatibility functions for [gt](https://es-toolkit.slash.page/reference/compat/util/gt.html), [gte](https://es-toolkit.slash.page/reference/compat/util/gte.html), [toArray](https://es-toolkit.slash.page/reference/compat/util/toArray.html), [toUpper](https://es-toolkit.slash.page/reference/compat/string/toUpper.html), [add](https://es-toolkit.slash.page/reference/compat/math/add.html), [assignIn](https://es-toolkit.slash.page/reference/compat/object/assignIn.html) ([extend](https://es-toolkit.slash.page/reference/compat/object/extend.html)), and [isElement](https://es-toolkit.slash.page/reference/compat/predicate/isElement.html).
-- Introduced new compatibility types for `DebouncedFunc`.
-- Enhanced our function types to accept `PropertyKey` instead of just `string` for property keys.
-- Corrected [flatMap](https://es-toolkit.slash.page/reference/array/flatMap.html) to accurately infer return types when the `depth` parameter is omitted.
-- Resolved issues with incorrect types for [partial](https://es-toolkit.slash.page/reference/function/partial.html) and [partialRight](https://es-toolkit.slash.page/reference/function/partialRight.html).
-- Fixed [intersectionBy](https://es-toolkit.slash.page/reference/array/intersectionBy.html), [differenceBy](https://es-toolkit.slash.page/reference/array/differenceBy.html), and [differenceWith](https://es-toolkit.slash.page/reference/array/differenceWith.html) to properly calculate differences between various element types.
-- Ensured that [words](https://es-toolkit.slash.page/reference/string/words.html) is now correctly exported in our compatibility library.
-
-We sincerely thank @D-Sketon, @mass2527, @1eeminhyeong, @chhw130, @DONG-8, @filipsobol, @kim-dongho, @nnnnoel, @pbstar, and @jsparkdev for their contributions. We appreciate your great efforts!
-
-## Version v1.27.0
-
-Released on November 10th, 2024.
-
-- Added support for [findKey](https://es-toolkit.slash.page/reference/object/findKey.html) and [isSubsetWith](https://es-toolkit.slash.page/reference/array/isSubsetWith.html).
-- Introduced compatibility functions for [words](https://es-toolkit.slash.page/reference/string/words.html), [at](https://es-toolkit.slash.page/reference/array/at.html), [differenceBy](https://es-toolkit.slash.page/reference/array/differenceBy.html), [uniqBy](https://es-toolkit.slash.page/reference/array/uniqBy.html), [forEach](https://es-toolkit.slash.page/reference/compat/array/forEach.html), [each](https://es-toolkit.slash.page/reference/compat/array/each.html), [sum](https://es-toolkit.slash.page/reference/math/sum.html), [sumBy](https://es-toolkit.slash.page/reference/array/sumBy.html), [union](https://es-toolkit.slash.page/reference/array/union.html), [zip](https://es-toolkit.slash.page/reference/array/zip.html), [unzip](https://es-toolkit.slash.page/reference/array/unzip.html), [iteratee](https://es-toolkit.slash.page/reference/compat/util/iteratee.html), [isEmpty](https://es-toolkit.slash.page/reference/compat/predicate/isEmpty.html), and [replace](https://es-toolkit.slash.page/reference/compat/string/replace.html).
-- Fixed a bug in [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html) that prevented it from correctly cloning object prototypes.
-- Improved performance for [at](https://es-toolkit.slash.page/reference/array/at.html).
-- Enhanced performance for [toPath](https://es-toolkit.slash.page/reference/compat/util/toPath.html), [get](https://es-toolkit.slash.page/reference/compat/object/get.html), [set](https://es-toolkit.slash.page/reference/compat/object/set.html), [unset](https://es-toolkit.slash.page/reference/compat/object/unset.html), [has](https://es-toolkit.slash.page/reference/compat/object/has.html), [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html), [chunk](https://es-toolkit.slash.page/reference/array/chunk.html), [difference](https://es-toolkit.slash.page/reference/array/difference.html), [drop](https://es-toolkit.slash.page/reference/array/drop.html), [dropRight](https://es-toolkit.slash.page/reference/array/dropRight.html), [dropWhile](https://es-toolkit.slash.page/reference/array/dropWhile.html), [findLastIndex](https://es-toolkit.slash.page/reference/compat/array/findLastIndex.html), [head](https://es-toolkit.slash.page/reference/array/head.html), [last](https://es-toolkit.slash.page/reference/array/last.html), [sample](https://es-toolkit.slash.page/reference/array/sample.html), [tail](https://es-toolkit.slash.page/reference/array/tail.html), [take](https://es-toolkit.slash.page/reference/array/take.html), and [takeRight](https://es-toolkit.slash.page/reference/array/takeRight.html) in our compatibility library.
-
-We sincerely thank @scato3, @ssi02014, @filipsobol, @mass2527, @Gyumong, @D-Sketon, @dayongkr, @kyvg, @Na-hyunwoo, @kaehehehe, and @bhollis for their contributions. Special thanks to @cruelladevil for improving the documentation. We appreciate your great efforts!
-
-## Version v1.26.1
-
-Released on October 25th, 2024.
-
-- Fixed a bug in [isMatch](https://es-toolkit.slash.page/reference/compat/predicate/isMatch.html) that did not strictly compare `null` in objects.
-
-This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
-
-## Version v1.26.0
-
-Released on October 24th, 2024.
-
-- Added support for [invariant](https://es-toolkit.slash.page/reference/util/invariant.html), [identity](https://es-toolkit.slash.page/reference/function/identity.html), [median](https://es-toolkit.slash.page/reference/math/median.html), and [medianBy](https://es-toolkit.slash.page/reference/math/medianBy.html).
-- Added compatibility functions for [template](https://es-toolkit.slash.page/reference/compat/string/template.html), [uniqueId](https://es-toolkit.slash.page/reference/compat/util/uniqueId.html), [intersectionBy](https://es-toolkit.slash.page/reference/array/intersectionBy.html), [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html), [sortBy](https://es-toolkit.slash.page/reference/array/sortBy.html), and [some](https://es-toolkit.slash.page/reference/array/some.html).
-- Made it possible to use [drop](https://es-toolkit.slash.page/reference/array/drop.html), [dropRight](https://es-toolkit.slash.page/reference/array/dropRight.html), [every](https://es-toolkit.slash.page/reference/compat/array/every.html), [take](https://es-toolkit.slash.page/reference/array/take.html), and [takeRight](https://es-toolkit.slash.page/reference/array/takeRight.html) directly as iteratees, allowing for usage like `arr.map(drop)`.
-- Corrected [merge](https://es-toolkit.slash.page/reference/object/merge.html) to disallow primitive values such as numbers or strings.
-
-This version includes contributions from @dayongkr, @Na-hyunwoo, @ssi02014, @kaehehehe, @jakvbs, @D-Sketon, and @seonghun0828. Thank you for your valuable contributions!
-
-## Version v1.25.2
-
-Released on October 16th, 2024.
-
-- Fixed a problem with [isJSONValue](https://es-toolkit.slash.page/reference/predicate/isJSONValue.html), [isJSONArray](https://es-toolkit.slash.page/reference/predicate/isJSONArray.html), and [isJSONObject](https://es-toolkit.slash.page/reference/predicate/isJSONObject.html) that led to circular dependencies.
-- Enhanced [flatten](https://es-toolkit.slash.page/reference/array/flatten.html), [flattenDeep](https://es-toolkit.slash.page/reference/array/flattenDeep.html), [flattenDepth](https://es-toolkit.slash.page/reference/compat/array/flattenDepth.html#flattendepth), [slice](https://es-toolkit.slash.page/reference/compat/array/slice.html), and [zipObjectDeep](https://es-toolkit.slash.page/reference/compat/array/zipObjectDeep.html) to work with array-like objects in our compatibility library, ensuring they are fully compatible with lodash.
-
-This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
-
-## Version v1.25.1
-
-Released on October 15th, 2024.
-
-- Resolved an issue in [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html) that incorrectly copied properties from the `target` when they were read-only.
-- Updated [every](https://es-toolkit.slash.page/reference/compat/array/every.html), [filter](https://es-toolkit.slash.page/reference/compat/array/filter.html), [find](https://es-toolkit.slash.page/reference/compat/array/find.html), [findIndex](https://es-toolkit.slash.page/reference/compat/array/findIndex.html), [findLastIndex](https://es-toolkit.slash.page/reference/compat/array/findLastIndex.html), [indexOf](https://es-toolkit.slash.page/reference/compat/array/indexOf.html), and [join](https://es-toolkit.slash.page/reference/compat/array/join.html) to now accept array-like objects and a `fromIndex` parameter, making them compatible with lodash.
-
-This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
-
-## Version v1.25.0
-
-Released on October 14th, 2024.
-
-- Added support for [isFile](https://es-toolkit.slash.page/reference/predicate/isFile.html).
-- Added compatibility functions for [escape](https://es-toolkit.slash.page/reference/string/escape.html), [toSafeInteger](https://es-toolkit.slash.page/reference/compat/util/toSafeInteger.html), [intersection](https://es-toolkit.slash.page/reference/array/intersection.html), [sample](https://es-toolkit.slash.page/reference/array/sample.html), [chunk](https://es-toolkit.slash.page/reference/array/chunk.html), [compact](https://es-toolkit.slash.page/reference/array/compact.html), [head](https://es-toolkit.slash.page/reference/array/head.html), [initial](https://es-toolkit.slash.page/reference/array/initial.html), [last](https://es-toolkit.slash.page/reference/array/last.html), [tail](https://es-toolkit.slash.page/reference/array/tail.html), [take](https://es-toolkit.slash.page/reference/array/take.html), [takeRight](https://es-toolkit.slash.page/reference/array/takeRight.html), [uniq](https://es-toolkit.slash.page/reference/array/uniq.html), and [without](https://es-toolkit.slash.page/reference/array/without.html).
-- Enhanced performance for [at](https://es-toolkit.slash.page/reference/array/at.html) and [isPlainObject](https://es-toolkit.slash.page/reference/predicate/isPlainObject.html).
-- Resolved an issue in [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html) that prevented it from cloning symbol properties and read-only properties of objects.
-- Fixed a problem in [pick](https://es-toolkit.slash.page/reference/object/pick.html) within our compatibility library that incorrectly added `undefined` for keys that do not exist.
-
-This version includes contributions from @D-Sketon, @mass2527, @dayongkr, @lukaszkowalik2, @Gyumong, @Dohun-choi, @belgattitude, and @chhw130. Thank you for your valuable contributions!
-
-## Version v1.24.0
-
-Released on October 7th, 2024.
-
-- Added support for [isBlob](https://es-toolkit.slash.page/reference/predicate/isBlob.html) and [isDate](https://es-toolkit.slash.page/reference/predicate/isDate.html).
-- Added compatibility functions for [invertBy](https://es-toolkit.slash.page/reference/compat/object/invertBy.html), [times](https://es-toolkit.slash.page/reference/compat/util/times.html), [constant](https://es-toolkit.slash.page/reference/compat/util/constant.html), [slice](https://es-toolkit.slash.page/reference/compat/array/slice.html), [toLength](https://es-toolkit.slash.page/reference/compat/util/toLength.html), [defaultTo](https://es-toolkit.slash.page/reference/compat/util/defaultTo.html), [dropRightWhile](https://es-toolkit.slash.page/reference/array/dropRightWhile.html), [curryRight](https://es-toolkit.slash.page/reference/function/curryRight.html), [rangeRight](https://es-toolkit.slash.page/reference/math/rangeRight.html), [before](https://es-toolkit.slash.page/reference/function/before.html), [eq](https://es-toolkit.slash.page/reference/compat/util/eq.html), [defaults](https://es-toolkit.slash.page/reference/compat/object/defaults.html), [toDefaulted](https://es-toolkit.slash.page/reference/compat/object/toDefaulted.html), [isArrayBuffer](https://es-toolkit.slash.page/reference/predicate/isArrayBuffer.html), [isSet](https://es-toolkit.slash.page/reference/predicate/isSet.html), and [isMap](https://es-toolkit.slash.page/reference/predicate/isMap.html).
-- Enhanced [difference](https://es-toolkit.slash.page/reference/array/difference.html) to work with Array-like objects, aligning its functionality with lodash's behavior.
-- Improved performance for [pickBy](https://es-toolkit.slash.page/reference/object/pickBy.html) and [omitBy](https://es-toolkit.slash.page/reference/object/omitBy.html).
-
-## Version v1.23.0
-
-Released on October 1st, 2024.
-
-- Added support for [isEqualWith](https://es-toolkit.slash.page/reference/predicate/isEqualWith.html), [isArrayBuffer](https://es-toolkit.slash.page/reference/predicate/isArrayBuffer.html), [curryRight](https://es-toolkit.slash.page/reference/function/curryRight.html), [isJSONValue](https://es-toolkit.slash.page/reference/predicate/isJSONValue.html), [isJSONObject](https://es-toolkit.slash.page/reference/predicate/isJSONObject.html), [isJSONArray](https://es-toolkit.slash.page/reference/predicate/isJSONArray.html).
-- Fixed a bug in [merge](https://es-toolkit.slash.page/reference/object/merge.html) that copied the reference from the `source` object to the `target` object.
-- Fixed a bug in [includes](https://es-toolkit.slash.page/reference/compat/array/includes.html) that returned `true` for inherited properties.
-- Fixed a bug in [startCase](https://es-toolkit.slash.page/reference/string/startCase.html) and other string methods that did not correctly split the words when using accented letters.
-- Fixed a bug in [filter](https://es-toolkit.slash.page/reference/compat/array/filter.html) that did not provide correct arguments to the predicate function.
-- Fixed a bug in [isMatch](https://es-toolkit.slash.page/reference/compat/predicate/isMatch.html) that did not strictly compare primitive falsy values.
-
-This version includes contributions from @D-Sketon, @wojtekmaj, @mass2527, @chhw130, and @knott11. Thank you for your valuable contributions!
-
-## Version v1.22.0
-
-Released on September 28th, 2024.
-
-- Added support for [flow](https://es-toolkit.slash.page/reference/function/flow.html), [flowRight](https://es-toolkit.slash.page/reference/function/flowRight.html), [isMap](https://es-toolkit.slash.page/reference/predicate/isMap.html), and [isSet](https://es-toolkit.slash.page/reference/predicate/isSet.html).
-- Added compatibility functions for [filter](https://es-toolkit.slash.page/reference/compat/array/filter.html), [includes](https://es-toolkit.slash.page/reference/compat/array/includes.html), [every](https://es-toolkit.slash.page/reference/compat/array/every.html), [flip](https://es-toolkit.slash.page/reference/compat/function/flip.html), and [dropWhile](https://es-toolkit.slash.page/reference/array/dropWhile.html).
-
-- Fixed a bug in [throttle](https://es-toolkit.slash.page/reference/function/throttle.html) that prevented it from throttling after the initial `throttleMs`.
-- Fixed a bug in [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html) that caused it to not clone the offset and length of `DataView`.
-- Fixed a bug in [clone](https://es-toolkit.slash.page/reference/object/clone.html) that threw an error if `SharedArrayBuffer` is unavailable.
-
-This version includes contributions from @dayongkr, @k-jeonghee, @D-Sketon, @iDevGon, @mass2527, @wojtekmaj, @jonganebski, @hyesungoh, and @chhw130. Thank you for your valuable contributions!
-
-## Version v1.21.0
-
-Released on September 25th, 2024.
-
-- Added support for [constantCase](https://es-toolkit.slash.page/reference/string/constantCase.html) and [isError](https://es-toolkit.slash.page/reference/predicate/isError.html).
-- Added compatibility functions for [pad](https://es-toolkit.slash.page/reference/compat/string/pad.html), [padStart](https://es-toolkit.slash.page/reference/compat/string/padStart.html), [padEnd](https://es-toolkit.slash.page/reference/compat/string/padEnd.html), [defer](https://es-toolkit.slash.page/reference/compat/function/defer.html), [isFinite](https://es-toolkit.slash.page/reference/compat/predicate/isFinite.html), [toNumber](https://es-toolkit.slash.page/reference/compat/math/toNumber.html), [toFinite](https://es-toolkit.slash.page/reference/compat/math/toFinite.html), and [toInteger](https://es-toolkit.slash.page/reference/compat/math/toInteger.html).
-- Improved performance for [flatten](https://es-toolkit.slash.page/reference/array/flatten.html), [isNumber](https://es-toolkit.slash.page/reference/predicate/isNumber.html), [isString](https://es-toolkit.slash.page/reference/predicate/isString.html), [isSymbol](https://es-toolkit.slash.page/reference/predicate/isSymbol.html), [isRegExp](https://es-toolkit.slash.page/reference/predicate/isRegExp.html), and [isBoolean](https://es-toolkit.slash.page/reference/predicate/isBoolean.html).
-- Fixed [compact](https://es-toolkit.slash.page/reference/array/compact.html) to correctly exclude `0n` as a falsey value.
-- Fixed [pick](https://es-toolkit.slash.page/reference/object/pick.html) to not pick nonexistent keys from the original object.
-- Fixed [omit](https://es-toolkit.slash.page/reference/object/omit.html) to accept readonly arrays.
-
-This version includes contributions from @hyesungoh, @D-Sketon, @mass2527, @gweesin, @VVSOGI, @coding-honey, @seonghun0828, and @jsparkdev. Thank you for your valuable contributions!
-
-## Version v1.20.0
-
-Released on September 20th, 2024.
-
-- Added support for function invocation on leading and trailing edges for [debounce](https://es-toolkit.slash.page/reference/function/debounce.html) and [throttle](https://es-toolkit.slash.page/reference/function/throttle.html).
-- Added compatibility functions for [debounce](https://es-toolkit.slash.page/reference/function/debounce.html), [throttle](https://es-toolkit.slash.page/reference/function/throttle.html), [curry](https://es-toolkit.slash.page/reference/function/curry.html), [isNumber](https://es-toolkit.slash.page/reference/compat/predicate/isNumber.html), and [isNaN](https://es-toolkit.slash.page/reference/compat/predicate/isNaN.html).
-- Improved performance for [at](https://es-toolkit.slash.page/reference/array/at.html), [zip](https://es-toolkit.slash.page/reference/array/zip.html), [zipWith](https://es-toolkit.slash.page/reference/array/zipWith.html), and [drop](https://es-toolkit.slash.page/reference/array/drop.html).
-
-## Version v1.19.0
-
-Released on September 14th, 2024.
-
-- Added support for [isDate](https://es-toolkit.slash.page/reference/predicate/isDate.html), [curry](https://es-toolkit.slash.page/reference/function/curry.html), [upperCase](https://es-toolkit.slash.page/reference/string/upperCase.html).
-- Added compatibility functions for [pick](https://es-toolkit.slash.page/reference/object/pick.html), [omit](https://es-toolkit.slash.page/reference/object/omit.html), [unset](https://es-toolkit.slash.page/reference/compat/object/unset.html), [toPath](https://es-toolkit.slash.page/reference/compat/util/toPath.html), [trim](https://es-toolkit.slash.page/reference/compat/string/trim.html), [trimStart](https://es-toolkit.slash.page/reference/compat/string/trimStart.html), [trimEnd](https://es-toolkit.slash.page/reference/compat/string/trimEnd.html), [isInteger](https://es-toolkit.slash.page/reference/compat/predicate/isInteger.html), [isSafeInteger](https://es-toolkit.slash.page/reference/compat/predicate/isSafeInteger.html), [snakeCase](https://es-toolkit.slash.page/reference/string/snakeCase.html), [startCase](https://es-toolkit.slash.page/reference/string/startCase.html), [lowerCase](https://es-toolkit.slash.page/reference/string/lowerCase.html), [kebabCase](https://es-toolkit.slash.page/reference/string/kebabCase.html), [ceil](https://es-toolkit.slash.page/reference/compat/math/ceil.html), [floor](https://es-toolkit.slash.page/reference/compat/math/floor.html), [round](https://es-toolkit.slash.page/reference/math/round.html).
-- Enhanced [clone](https://es-toolkit.slash.page/reference/object/clone.html) to handle `Buffer`s, `SharedArrayBuffer`s, `File`s, `Blob`s, `TypedArray`s, and `Error`s.
-- Fixed a bug where [mergeWith](https://es-toolkit.slash.page/reference/object/mergeWith.html) did not preserve the original properties of the `target` object.
-- Fixed a bug where [groupBy](https://es-toolkit.slash.page/reference/array/groupBy.html) couldn't group with keys like `toString` and `indexOf`.
-- Improved performance for [has](https://es-toolkit.slash.page/reference/compat/object/has.html) and [get](https://es-toolkit.slash.page/reference/compat/object/get.html).
-
-## Version v1.18.0
-
-Released on September 12th, 2024.
-
-- Added support for [isObject](https://es-toolkit.slash.page/reference/compat/predicate/isObject.html), [findLastIndex](https://es-toolkit.slash.page/reference/compat/array/findLastIndex.html), [parseInt](https://es-toolkit.slash.page/reference/compat/math/parseInt.html), [rearg](https://es-toolkit.slash.page/reference/compat/function/rearg.html), [conforms](https://es-toolkit.slash.page/reference/compat/predicate/conforms.html), [conformsTo](https://es-toolkit.slash.page/reference/compat/predicate/conformsTo.html), [bindKey](https://es-toolkit.slash.page/reference/compat/function/bindKey.html), [some](https://es-toolkit.slash.page/reference/compat/array/some.html), [fromPairs](https://es-toolkit.slash.page/reference/compat/object/fromPairs.html), [isArrayLikeObject](https://es-toolkit.slash.page/reference/compat/predicate/isArrayLikeObject.html), [escapeRegExp](https://es-toolkit.slash.page/reference/string/escapeRegExp.html), [sortBy](https://es-toolkit.slash.page/reference/array/sortBy.html), [isWeakSet](https://es-toolkit.slash.page/reference/predicate/isWeakSet.html), [isWeakMap](https://es-toolkit.slash.page/reference/predicate/isWeakMap.html), [flatMapDeep](https://es-toolkit.slash.page/reference/array/flatMapDeep.html), [escape](https://es-toolkit.slash.page/reference/string/escape.html), [unescape](https://es-toolkit.slash.page/reference/string/unescape.html), [repeat](https://es-toolkit.slash.page/reference/compat/string/repeat.html), [pad](https://es-toolkit.slash.page/reference/compat/string/pad.html), [join](https://es-toolkit.slash.page/reference/compat/array/join.html), and [spread](https://es-toolkit.slash.page/reference/compat/function/spread.html).
-- Improved performance for [deburr](https://es-toolkit.slash.page/reference/string/deburr.html).
-
-## Version v1.17.0
-
-Released on August 31st, 2024.
-
-### New Features
-
-- Added support for new functions: [at](https://es-toolkit.slash.page/reference/array/at.html), [pullAt](https://es-toolkit.slash.page/reference/array/pullAt.html), [deburr](https://es-toolkit.slash.page/reference/string/deburr.html), [lowerFirst](https://es-toolkit.slash.page/reference/string/lowerFirst.html), [upperFirst](https://es-toolkit.slash.page/reference/string/upperFirst.html), and [isRegExp](https://es-toolkit.slash.page/reference/predicate/isRegExp.html).
-- Enhanced [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html) and [sortBy](https://es-toolkit.slash.page/reference/array/sortBy.html) to support function criteria.
-- [countBy](https://es-toolkit.slash.page/reference/array/countBy.html) now supports numeric and symbol keys.
-
-#### Bug Fixes
-
-- Updated type definitions for [throttle](https://es-toolkit.slash.page/reference/function/throttle.html) and [debounce](https://es-toolkit.slash.page/reference/function/debounce.html).
-- (`es-toolkit/compat`) Fixed [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html) to correctly handle deep keys even when object shapes differ ([#427](https://github.com/toss/es-toolkit/pull/427)).
-
-## Version v1.16.0
-
-Released on August 15th, 2024.
-
-- Added support for [memoize](https://es-toolkit.slash.page/reference/function/memoize.html), [find](https://es-toolkit.slash.page/reference/compat/array/find.html), [findIndex](https://es-toolkit.slash.page/reference/compat/array/findIndex.html), [has](https://es-toolkit.slash.page/reference/compat/object/has.html), [partial](https://es-toolkit.slash.page/reference/function/partial.html), [partialRight](https://es-toolkit.slash.page/reference/function/partialRight.html), [sortBy](https://es-toolkit.slash.page/reference/array/sortBy.html), [isString](https://es-toolkit.slash.page/reference/predicate/isString.html), [rest](https://es-toolkit.slash.page/reference/function/rest.html), [padEnd](https://es-toolkit.slash.page/reference/compat/string/padEnd.html).
-
-## Version v1.15.1
-
-Released on August 10th, 2024.
-
-- Disabled implicit conversion of values in [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html) for performance and simplicity.
-
-## Version v1.15.0
-
-Released on August 10th, 2024.
-
-- Added support for [merge](https://es-toolkit.slash.page/reference/object/merge.html), [mergeWith](https://es-toolkit.slash.page/reference/object/mergeWith.html), [toMerged](https://es-toolkit.slash.page/reference/object/toMerged.html), [isSymbol](https://es-toolkit.slash.page/reference/predicate/isSymbol.html), [pascalCase](https://es-toolkit.slash.page/reference/string/pascalCase.html).
-- Added compatibility tests with lodash for [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html).
-
-## Version v1.14.0
-
-Released on August 9th, 2024.
-
-- (`es-toolkit`) Added support for [mapKeys](https://es-toolkit.slash.page/reference/object/mapKeys.html), [mapValues](https://es-toolkit.slash.page/reference/object/mapValues.html), [cloneDeep](https://es-toolkit.slash.page/reference/object/cloneDeep.html), [before](https://es-toolkit.slash.page/reference/function/before.html), [after](https://es-toolkit.slash.page/reference/function/after.html), [isSubset](https://es-toolkit.slash.page/reference/array/isSubset.html), [ary](https://es-toolkit.slash.page/reference/function/ary.html), [unary](https://es-toolkit.slash.page/reference/function/unary.html), [flattenDeep](https://es-toolkit.slash.page/reference/array/flattenDeep.html), [isEqual](https://es-toolkit.slash.page/reference/predicate/isEqual.html), [isFunction](https://es-toolkit.slash.page/reference/predicate/isFunction.html), [isBoolean](https://es-toolkit.slash.page/reference/predicate/isBoolean.html), [isPrimitive](https://es-toolkit.slash.page/reference/predicate/isPrimitive.html), and [isTypedArray](https://es-toolkit.slash.page/reference/predicate/isTypedArray.html).
-- (`es-toolkit/compat`) Added support for [matches](https://es-toolkit.slash.page/reference/compat/predicate/matches.html), [isMatch](https://es-toolkit.slash.page/reference/compat/predicate/isMatch.html), [isArray](https://es-toolkit.slash.page/reference/compat/predicate/isArray.html), [isArrayLike](https://es-toolkit.slash.page/reference/compat/predicate/isArrayLike.html), [isObjectLike](https://es-toolkit.slash.page/reference/compat/predicate/isObjectLike.html), [isArguments](https://es-toolkit.slash.page/reference/compat/predicate/isArguments.html), [size](https://es-toolkit.slash.page/reference/compat/array/size.html), [bind](https://es-toolkit.slash.page/reference/compat/function/bind.html), [flattenDepth](https://es-toolkit.slash.page/reference/array/flatten.html), and [padStart](https://es-toolkit.slash.page/reference/compat/string/padStart.html).
-- Added compatibility tests with lodash for many functions like [initial](https://es-toolkit.slash.page/reference/array/initial.html), [last](https://es-toolkit.slash.page/reference/array/last.html), [takeRight](https://es-toolkit.slash.page/reference/array/takeRight.html), [without](https://es-toolkit.slash.page/reference/array/without.html), [uniq](https://es-toolkit.slash.page/reference/array/uniq.html), [invert](https://es-toolkit.slash.page/reference/object/invert.html), [isNull](https://es-toolkit.slash.page/reference/predicate/isNull.html), [isUndefined](https://es-toolkit.slash.page/reference/predicate/isUndefined.html), and [isNil](https://es-toolkit.slash.page/reference/predicate/isNil.html).
-
-## Version v1.13.1
-
-Released on July 20th, 2024.
-
-- Use the compatibility layer `es-toolkit/compat` in legacy CDN builds.
-
-## Version v1.13.0
-
-Released on July 20th, 2024.
-
-`es-toolkit` can now be used in various CDNs, like [unpkg](https://unpkg.com) and [jsdelivr](https://www.jsdelivr.com). See more in our [usage docs](https://es-toolkit.slash.page/usage.html)
-
-### Features
-
-- Added support for [flattenObject](https://es-toolkit.slash.page/reference/object/flattenObject.html), [isPlainObject](https://es-toolkit.slash.page/reference/predicate/isPlainObject.html), [isLength](https://es-toolkit.slash.page/reference/predicate/isLength.html). ([3e60443](https://github.com/toss/es-toolkit/commit/3e60443a408d3296e4a18a1601a16f5953d414f9), [3764993](https://github.com/toss/es-toolkit/commit/376499351f347c269400ee0eeb5145ad041c7c06), [#245](https://github.com/toss/es-toolkit/pull/245))
-- Added support for [concat](https://es-toolkit.slash.page/reference/compat/array/concat.html) in our compatibility layer `es-toolkit/compat`. ([e09517f](https://github.com/toss/es-toolkit/commit/e09517f05c180b43e0f2b0b0fa44167f9c4832f3))
-
-### Lodash Compatibility
-
-- Ensured compatibility with [difference](https://es-toolkit.slash.page/reference/array/difference.html) and [take](https://es-toolkit.slash.page/reference/compat/array/take.html)
-
-## Version v1.12.0
-
-Released on July 19th, 2024.
-
-- Fixed a bug where `es-toolkit/compat` was not available in modern Node.js environments.
-- Added support for [max](https://es-toolkit.slash.page/reference/compat/math/max.html) and [min](https://es-toolkit.slash.page/reference/compat/math/min.html) in our compatibility layer `es-toolkit/compat`. ([e1e6e38](https://github.com/toss/es-toolkit/commit/e1e6e38206750fb90f5b99cace9196635288e21c))
-
-## Version v1.11.0
-
-Released on July 18th, 2024.
-
-### Introducing `es-toolkit/compat`
-
-We're introducing `es-toolkit/compat`, a new module designed as a drop-in replacement for lodash. It replicates lodash's API, making it easier to switch between the two libraries.
-
-`es-toolkit/compat` is undergoing rigorous testing using real `lodash` test cases. Initial benchmarks suggest it's typically 5% slower and increases bundle size by 10% compared to the original `es-toolkit`.
-
-This module is intended to facilitate a smooth transition and should be replaced with the original `es-toolkit` for optimal performance once migration is complete.
-
-For more information, see our [compatibility documentation](https://es-toolkit.slash.page/compatibility.html).
-
-### Features
-
-- Added support for [get](https://es-toolkit.slash.page/reference/compat/object/get.html) and [set](https://es-toolkit.slash.page/reference/compat/object/set.html) in our compatibility layer `es-toolkit/compat`. (https://github.com/toss/es-toolkit/pull/232, https://github.com/toss/es-toolkit/pull/223)
-- Added support for [zipObjectDeep](https://es-toolkit.slash.page/reference/compat/array/zipObjectDeep.html) in our compatibility layer `es-toolkit/compat`. (https://github.com/toss/es-toolkit/pull/150)
-- Added support for [flatMap](https://es-toolkit.slash.page/reference/compat/array/flatMap.html). (https://github.com/toss/es-toolkit/pull/209)
-- Added support for [startCase](https://es-toolkit.slash.page/reference/string/startCase.html), [startsWith](https://es-toolkit.slash.page/reference/string/startsWith.html), and [endsWith](https://es-toolkit.slash.page/reference/string/endsWith.html). (https://github.com/toss/es-toolkit/pull/224).
-- Added support for [withTimeout](https://es-toolkit.slash.page/reference/promise/withTimeout.html). (https://github.com/toss/es-toolkit/pull/210)
-
-### Bug fixes
-
-- Fixed `drop` and `dropRight` incorrectly accepting negative integers. (https://github.com/toss/es-toolkit/pull/218)
-- Fixed `invert` not to invert inherited properties. (https://github.com/toss/es-toolkit/pull/221)
-
-### Performance Improvements
-
-- Improved performance for `dropRightWhile`. (https://github.com/toss/es-toolkit/pull/220)
-
-## Version v1.10.1
-
-Released on July 15th, 2024.
-
-- Fixed [camelCase](https://es-toolkit.slash.page/reference/string/camelCase.html) using `capitalize` from incorrect import. ([8dda135](https://github.com/toss/es-toolkit/commit/8dda135fa339ae4953908a74b2e6eeca9f163a20))
-
-## Version v1.10.0
-
-Released on July 14th, 2024.
-
-### Features
-
-- Add support for [capitalize](https://es-toolkit.slash.page/reference/string/capitalize.html), [snakeCase](https://es-toolkit.slash.page/reference/string/snakeCase.html), [kebabCase](https://es-toolkit.slash.page/reference/string/kebabCase.html), [camelCase](https://es-toolkit.slash.page/reference/string/camelCase.html) and [lowerCase](https://es-toolkit.slash.page/reference/string/lowerCase.html). (https://github.com/toss/es-toolkit/pull/152, https://github.com/toss/es-toolkit/pull/161, https://github.com/toss/es-toolkit/pull/162, https://github.com/toss/es-toolkit/pull/166, [21d6530](https://github.com/toss/es-toolkit/commit/21d6530e16471d596410d57d59fd3ced8fc5569f)).
-- Add support for [negate](https://es-toolkit.slash.page/reference/function/negate.html). (https://github.com/toss/es-toolkit/pull/177)
-- Add support for [isEqual](https://es-toolkit.slash.page/reference/predicate/isEqual.html). (https://github.com/toss/es-toolkit/pull/174)
-- Add support for [clone](https://es-toolkit.slash.page/reference/object/clone.html). (https://github.com/toss/es-toolkit/pull/155)
-- Add support for [toFilled](https://es-toolkit.slash.page/reference/array/toFilled.html). (https://github.com/toss/es-toolkit/pull/154)
-- Add support for [initial](https://es-toolkit.slash.page/reference/array/initial.html) and [last](https://es-toolkit.slash.page/reference/array/last.html). (https://github.com/toss/es-toolkit/pull/188, https://github.com/toss/es-toolkit/pull/149)
-- Add support for [flattenDeep](https://es-toolkit.slash.page/reference/array/flattenDeep.html). (https://github.com/toss/es-toolkit/pull/160)
-
-### Performance Improvements
-
-- Optimize the performance of [isNil](https://es-toolkit.slash.page/reference/predicate/isNil.html) by simplifying its check. ([489ac76](https://github.com/toss/es-toolkit/commit/489ac76fc62f97cbfa3ca9eec2e0a4c03c4f5b1c))
-- Optimize the performance of [sum](https://es-toolkit.slash.page/reference/array/sum.html). (https://github.com/toss/es-toolkit/pull/155)
-
-## Version v1.9.0
-
-Released on July 10th, 2024.
-
-- Add support for [head](https://es-toolkit.slash.page/reference/array/head.html) and [tail](https://es-toolkit.slash.page/reference/array/tail.html). (https://github.com/toss/es-toolkit/pull/131, https://github.com/toss/es-toolkit/pull/143).
-- Add support for [unzip](https://es-toolkit.slash.page/reference/array/unzip.html). (https://github.com/toss/es-toolkit/pull/130)
-- Add support for [flatten](https://es-toolkit.slash.page/reference/array/flatten.html), which is six times faster than `Array#flat`. (https://github.com/toss/es-toolkit/pull/147)
-
-## Version v1.8.0
-
-Released on July 5th, 2024.
-
-- Add support for [orderBy](https://es-toolkit.slash.page/reference/array/orderBy.html). (https://github.com/toss/es-toolkit/pull/123)
-- Add support for [invert](https://es-toolkit.slash.page/reference/array/invert.html). (https://github.com/toss/es-toolkit/pull/125)
-- Add support for [inRange](https://es-toolkit.slash.page/reference/array/inRange.html). (https://github.com/toss/es-toolkit/pull/124)
-
-## Version v1.7.1
-
-Released on July 3rd, 2024.
-
-- Add support for [unzipWith](https://es-toolkit.slash.page/reference/array/unzipWith.html). (https://github.com/toss/es-toolkit/pull/113)
-- Add support for [forEachRight](https://es-toolkit.slash.page/reference/array/forEachRight.html). (https://github.com/toss/es-toolkit/pull/119)
-- Add support for [countBy](https://es-toolkit.slash.page/reference/array/countBy.html). (https://github.com/toss/es-toolkit/pull/117)
-- Add support for [without](https://es-toolkit.slash.page/reference/array/without.html). (https://github.com/toss/es-toolkit/pull/115)
-- Add support for [fill](https://es-toolkit.slash.page/reference/array/fill.html). (https://github.com/toss/es-toolkit/pull/109)
-- Add support for [sampleSize](https://es-toolkit.slash.page/reference/array/sampleSize.html). (https://github.com/toss/es-toolkit/pull/101)
-- Add support for [meanBy](https://es-toolkit.slash.page/reference/math/meanBy.html). (https://github.com/toss/es-toolkit/pull/104)
-- Accept number and symbol keys in [keyBy](https://es-toolkit.slash.page/reference/array/keyBy.html) and [groupBy](https://es-toolkit.slash.page/reference/array/groupBy.html) (https://github.com/toss/es-toolkit/pull/98, https://github.com/toss/es-toolkit/pull/99)
-
-## Version v1.6.1
-
-Released on June 30th, 2024.
-
-- Publish package on [JSR](https://jsr.io/@es-toolkit/es-toolkit).
-
-## Version v1.6.0
-
-Released on June 30th, 2024.
-
-### Features
-
-- Add support for [keyBy](https://es-toolkit.slash.page/reference/array/keyBy.html). (https://github.com/toss/es-toolkit/pull/93).
-- Add support for [zipObject](https://es-toolkit.slash.page/reference/array/zipObject.html). (https://github.com/toss/es-toolkit/pull/92).
-- Add support for [compact](https://es-toolkit.slash.page/reference/array/compact.html). ([60ae59b](https://github.com/toss/es-toolkit/commit/60ae59bcfee69992e5447322e1da9cb7631c5745))
-- Add support for [mean](https://es-toolkit.slash.page/reference/math/mean.html). ([715bc60](https://github.com/toss/es-toolkit/commit/715bc60b26bb24ad490b8befe16204050699f0c0))
-
-## Version v1.5.0
-
-Released on June 28th, 2024.
-
-### Features
-
-- Add support for [range](https://es-toolkit.slash.page/reference/math/range.html). (https://github.com/toss/es-toolkit/pull/77, [2db11d8](https://github.com/toss/es-toolkit/commit/2db11d8882f6d7b0b53271c76f4c5007b6a9181e)).
-- Add support for [minBy](https://es-toolkit.slash.page/reference/math/minBy.html) (https://github.com/toss/es-toolkit/pull/71).
-- Add support for [maxBy](https://es-toolkit.slash.page/reference/math/maxBy.html) (https://github.com/toss/es-toolkit/pull/64).
-
-### Bug fixes
-
-- Enforce stricter argument types in `pickBy` and `omitBy`. (https://github.com/toss/es-toolkit/pull/60)
-- Fix a bug in `difference` where one array parameter was not readonly. (https://github.com/toss/es-toolkit/pull/83)
-- Fix a bug in `round` where it incorrectly accepts floating-point numbers as `precision`. (https://github.com/toss/es-toolkit/pull/79)
-
-## Version v1.4.0
-
-Released on June 15th, 2024.
-
-### Features
-
-- Add support for [random](https://es-toolkit.slash.page/reference/math/random.html). (https://github.com/toss/es-toolkit/pull/53)
-- Add support for [randomInt](https://es-toolkit.slash.page/reference/math/randomInt.html). ([99a34e4](https://github.com/toss/es-toolkit/commit/99a34e4e9944c1b843e9d97dff0b5ff4e5eec260))
-- Add support for using AbortSignals to cancel the `Promise` returned by `delay`. (https://github.com/toss/es-toolkit/pull/52)
-
-### Performance Optimizations
-
-- Optimized `uniqBy`. ([60e7974](https://github.com/toss/es-toolkit/commit/60e79741271e645bfa551f708466e43b136f69b1))
-
-## Version v1.3.1
-
-Released on June 15th, 2024.
-
-- Fixed a bug in `dropWhile` where it incorrectly returned the entire array when no elements matched the predicate. (https://github.com/toss/es-toolkit/pull/49)
-
-## Version v1.3.0
-
-Released on June 14th, 2024.
-
-### Features
-
-- Add support for using AbortSignals to cancel `debounce`d functions. (https://github.com/toss/es-toolkit/pull/45)
-
-### Performance Optimizations
-
-- Optimize the time complexity of `intersection`. (https://github.com/toss/es-toolkit/pull/47)
-
-## Version v1.2.2
-
-Released on June 13th, 2024.
-
-- Add support for `readonly` arrays in array utilities. (https://github.com/toss/es-toolkit/pull/32, [e595e5e](https://github.com/toss/es-toolkit/commit/e595e5e017e1f2cb138b1ad3d708635efc5e289e))
-- Optimize the time complexity of `uniq`. (https://github.com/toss/es-toolkit/pull/40)
-- Optimize the time complexity of `intersectionBy`. (https://github.com/toss/es-toolkit/pull/44)
-
-## Version v1.2.1
-
-Released on June 13th, 2024.
-
-- Ensure that the `omit` and `pick` functions only accept plain JavaScript objects as arguments. (https://github.com/toss/es-toolkit/pull/35)
-
-## Version v1.2.0
-
-Released on June 8th, 2024.
-
-### Features
-
-- Added the `noop` function. (https://github.com/toss/es-toolkit/commit/678028dd3d60509b99dfec47aed7f1088140d19d)
-
-### Performance Improvements
-
-- Optimized the `difference` and `differenceBy` functions for better performance with large arrays. (https://github.com/toss/es-toolkit/pull/27, https://github.com/toss/es-toolkit/pull/28)
-
-### Bug fixes
-
-- Fixed `shuffle` to ensure it does not modify the original array. (https://github.com/toss/es-toolkit/pull/29)
-
-## Version v1.1.0
-
-Released on June 5th, 2024.
-
-- Support passing arguments to throttled and debounced functions. (https://github.com/toss/es-toolkit/pull/26)
-
-## Version v1.0.4
-
-Released on June 4th, 2024.
-
-- Provide correct type declarations for ECMAScript Modules. (https://github.com/toss/es-toolkit/pull/21)
-
-## Version v1.0.3
-
-Released on June 3rd, 2024.
-
-- Provide correct types for `"module": "Node"`, ` "Node10"`, and `"Node16"`. (https://github.com/toss/es-toolkit/pull/16)
-
-## Version v1.0.2
-
-Initial release. Released on May 31th, 2024.
Index: de_modules/es-toolkit/LICENSE
===================================================================
--- node_modules/es-toolkit/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-MIT License
-
-Copyright (c) 2024 Viva Republica, Inc
-
-Copyright OpenJS Foundation and other contributors
-
-Parts of the test suite and compatibility layer in `es-toolkit/compat` are derived from Lodash (https://github.com/lodash/lodash) by the OpenJS Foundation (https://openjsf.org/) and Underscore.js by Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors (http://underscorejs.org/)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/es-toolkit/README.md
===================================================================
--- node_modules/es-toolkit/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-![](./docs/public/og.png)
-
-# es-toolkit &middot; [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/toss/slash/blob/main/LICENSE) [![codecov](https://codecov.io/gh/toss/es-toolkit/graph/badge.svg?token=8N5S3AR3C7)](https://codecov.io/gh/toss/es-toolkit) [![NPM badge](https://img.shields.io/npm/v/es-toolkit?logo=npm)](https://www.npmjs.com/package/es-toolkit) [![JSR badge](https://jsr.io/badges/@es-toolkit/es-toolkit)](https://jsr.io/@es-toolkit/es-toolkit) [![Discord Badge](https://discord.com/api/guilds/1281071127052943361/widget.png?style=shield)](https://discord.gg/vGXbVjP2nY)
-
-English | [한국어](https://github.com/toss/es-toolkit/blob/main/README-ko_kr.md) | [简体中文](https://github.com/toss/es-toolkit/blob/main/README-zh_hans.md) | [日本語](https://github.com/toss/es-toolkit/blob/main/README-ja_jp.md)
-
-es-toolkit is a state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
-
-- es-toolkit offers a variety of everyday utility functions with modern implementations, such as [debounce](https://es-toolkit.dev/reference/function/debounce.html), [delay](https://es-toolkit.dev/reference/promise/delay.html), [chunk](https://es-toolkit.dev/reference/array/chunk.html), [sum](https://es-toolkit.dev/reference/math/sum.html), and [pick](https://es-toolkit.dev/reference/object/pick.html).
-- Designed with performance in mind, es-toolkit achieves [2-3× better performance](https://es-toolkit.dev/performance.html) in modern JavaScript environments.
-- es-toolkit supports tree shaking out of the box, and [reduces JavaScript code by up to 97%](https://es-toolkit.dev/bundle-size.html) compared to other libraries.
-- es-toolkit offers a complete compatibility layer to seamlessly replace lodash, available as [es-toolkit/compat](https://es-toolkit.dev/compatibility.html).
-- es-toolkit includes built-in TypeScript support, with straightforward yet robust types. It also provides useful type guards such as [isNotNil](https://es-toolkit.dev/reference/predicate/isNotNil.html).
-- es-toolkit is trusted and used by popular open-source projects like [Storybook](https://github.com/storybookjs/storybook/blob/9d862798d666678cc4822e857c00bbd744169ced/code/core/package.json#L358), Recharts, ink, and CKEditor.
-- es-toolkit is battle-tested with 100% test coverage, ensuring reliability and robustness.
-
-## Examples
-
-```tsx
-// import from '@es-toolkit/es-toolkit' in jsr.
-import { chunk, debounce } from 'es-toolkit';
-
-const debouncedLog = debounce(message => {
-  console.log(message);
-}, 300);
-
-// This call will be debounced
-debouncedLog('Hello, world!');
-
-const array = [1, 2, 3, 4, 5, 6];
-const chunkedArray = chunk(array, 2);
-
-console.log(chunkedArray);
-// Output: [[1, 2], [3, 4], [5, 6]]
-```
-
-## Contributing
-
-We welcome contribution from everyone in the community. Read below for detailed contribution guide.
-
-[CONTRIBUTING](https://github.com/toss/es-toolkit/blob/main/.github/CONTRIBUTING.md)
-
-## License
-
-MIT © Viva Republica, Inc. See [LICENSE](./LICENSE) for details.
-
-<a title="Toss" href="https://toss.im">
-  <picture>
-    <source media="(prefers-color-scheme: dark)" srcset="https://static.toss.im/logos/png/4x/logo-toss-reverse.png">
-    <img alt="Toss" src="https://static.toss.im/logos/png/4x/logo-toss.png" width="100">
-  </picture>
-</a>
Index: de_modules/es-toolkit/array.d.ts
===================================================================
--- node_modules/es-toolkit/array.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/array';
Index: de_modules/es-toolkit/array.js
===================================================================
--- node_modules/es-toolkit/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/array');
Index: de_modules/es-toolkit/compat.d.ts
===================================================================
--- node_modules/es-toolkit/compat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/compat';
Index: de_modules/es-toolkit/compat.js
===================================================================
--- node_modules/es-toolkit/compat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/compat');
Index: de_modules/es-toolkit/compat/add.d.ts
===================================================================
--- node_modules/es-toolkit/compat/add.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { add as default } from '../dist/compat/math/add.js';
Index: de_modules/es-toolkit/compat/add.js
===================================================================
--- node_modules/es-toolkit/compat/add.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/add.js').add;
Index: de_modules/es-toolkit/compat/after.d.ts
===================================================================
--- node_modules/es-toolkit/compat/after.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { after as default } from '../dist/compat/function/after.js';
Index: de_modules/es-toolkit/compat/after.js
===================================================================
--- node_modules/es-toolkit/compat/after.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/after.js').after;
Index: de_modules/es-toolkit/compat/ary.d.ts
===================================================================
--- node_modules/es-toolkit/compat/ary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { ary as default } from '../dist/compat/function/ary.js';
Index: de_modules/es-toolkit/compat/ary.js
===================================================================
--- node_modules/es-toolkit/compat/ary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/ary.js').ary;
Index: de_modules/es-toolkit/compat/assign.d.ts
===================================================================
--- node_modules/es-toolkit/compat/assign.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assign as default } from '../dist/compat/object/assign.js';
Index: de_modules/es-toolkit/compat/assign.js
===================================================================
--- node_modules/es-toolkit/compat/assign.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assign.js').assign;
Index: de_modules/es-toolkit/compat/assignIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/assignIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assignIn as default } from '../dist/compat/object/assignIn.js';
Index: de_modules/es-toolkit/compat/assignIn.js
===================================================================
--- node_modules/es-toolkit/compat/assignIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assignIn.js').assignIn;
Index: de_modules/es-toolkit/compat/assignInWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/assignInWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assignInWith as default } from '../dist/compat/object/assignInWith.js';
Index: de_modules/es-toolkit/compat/assignInWith.js
===================================================================
--- node_modules/es-toolkit/compat/assignInWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assignInWith.js').assignInWith;
Index: de_modules/es-toolkit/compat/assignWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/assignWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assignWith as default } from '../dist/compat/object/assignWith.js';
Index: de_modules/es-toolkit/compat/assignWith.js
===================================================================
--- node_modules/es-toolkit/compat/assignWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assignWith.js').assignWith;
Index: de_modules/es-toolkit/compat/at.d.ts
===================================================================
--- node_modules/es-toolkit/compat/at.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { at as default } from '../dist/compat/object/at.js';
Index: de_modules/es-toolkit/compat/at.js
===================================================================
--- node_modules/es-toolkit/compat/at.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/at.js').at;
Index: de_modules/es-toolkit/compat/attempt.d.ts
===================================================================
--- node_modules/es-toolkit/compat/attempt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { attempt as default } from '../dist/compat/function/attempt.js';
Index: de_modules/es-toolkit/compat/attempt.js
===================================================================
--- node_modules/es-toolkit/compat/attempt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/attempt.js').attempt;
Index: de_modules/es-toolkit/compat/before.d.ts
===================================================================
--- node_modules/es-toolkit/compat/before.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { before as default } from '../dist/compat/function/before.js';
Index: de_modules/es-toolkit/compat/before.js
===================================================================
--- node_modules/es-toolkit/compat/before.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/before.js').before;
Index: de_modules/es-toolkit/compat/bind.d.ts
===================================================================
--- node_modules/es-toolkit/compat/bind.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { bind as default } from '../dist/compat/function/bind.js';
Index: de_modules/es-toolkit/compat/bind.js
===================================================================
--- node_modules/es-toolkit/compat/bind.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/bind.js').bind;
Index: de_modules/es-toolkit/compat/bindAll.d.ts
===================================================================
--- node_modules/es-toolkit/compat/bindAll.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { bindAll as default } from '../dist/compat/util/bindAll.js';
Index: de_modules/es-toolkit/compat/bindAll.js
===================================================================
--- node_modules/es-toolkit/compat/bindAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/bindAll.js').bindAll;
Index: de_modules/es-toolkit/compat/bindKey.d.ts
===================================================================
--- node_modules/es-toolkit/compat/bindKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { bindKey as default } from '../dist/compat/function/bindKey.js';
Index: de_modules/es-toolkit/compat/bindKey.js
===================================================================
--- node_modules/es-toolkit/compat/bindKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/bindKey.js').bindKey;
Index: de_modules/es-toolkit/compat/camelCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/camelCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { camelCase as default } from '../dist/compat/string/camelCase.js';
Index: de_modules/es-toolkit/compat/camelCase.js
===================================================================
--- node_modules/es-toolkit/compat/camelCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/camelCase.js').camelCase;
Index: de_modules/es-toolkit/compat/capitalize.d.ts
===================================================================
--- node_modules/es-toolkit/compat/capitalize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { capitalize as default } from '../dist/string/capitalize.js';
Index: de_modules/es-toolkit/compat/capitalize.js
===================================================================
--- node_modules/es-toolkit/compat/capitalize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/string/capitalize.js').capitalize;
Index: de_modules/es-toolkit/compat/castArray.d.ts
===================================================================
--- node_modules/es-toolkit/compat/castArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { castArray as default } from '../dist/compat/array/castArray.js';
Index: de_modules/es-toolkit/compat/castArray.js
===================================================================
--- node_modules/es-toolkit/compat/castArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/castArray.js').castArray;
Index: de_modules/es-toolkit/compat/ceil.d.ts
===================================================================
--- node_modules/es-toolkit/compat/ceil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { ceil as default } from '../dist/compat/math/ceil.js';
Index: de_modules/es-toolkit/compat/ceil.js
===================================================================
--- node_modules/es-toolkit/compat/ceil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/ceil.js').ceil;
Index: de_modules/es-toolkit/compat/chunk.d.ts
===================================================================
--- node_modules/es-toolkit/compat/chunk.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { chunk as default } from '../dist/compat/array/chunk.js';
Index: de_modules/es-toolkit/compat/chunk.js
===================================================================
--- node_modules/es-toolkit/compat/chunk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/chunk.js').chunk;
Index: de_modules/es-toolkit/compat/clamp.d.ts
===================================================================
--- node_modules/es-toolkit/compat/clamp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { clamp as default } from '../dist/compat/math/clamp.js';
Index: de_modules/es-toolkit/compat/clamp.js
===================================================================
--- node_modules/es-toolkit/compat/clamp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/clamp.js').clamp;
Index: de_modules/es-toolkit/compat/clone.d.ts
===================================================================
--- node_modules/es-toolkit/compat/clone.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { clone as default } from '../dist/compat/object/clone.js';
Index: de_modules/es-toolkit/compat/clone.js
===================================================================
--- node_modules/es-toolkit/compat/clone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/clone.js').clone;
Index: de_modules/es-toolkit/compat/cloneDeep.d.ts
===================================================================
--- node_modules/es-toolkit/compat/cloneDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { cloneDeep as default } from '../dist/compat/object/cloneDeep.js';
Index: de_modules/es-toolkit/compat/cloneDeep.js
===================================================================
--- node_modules/es-toolkit/compat/cloneDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/cloneDeep.js').cloneDeep;
Index: de_modules/es-toolkit/compat/cloneDeepWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/cloneDeepWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { cloneDeepWith as default } from '../dist/compat/object/cloneDeepWith.js';
Index: de_modules/es-toolkit/compat/cloneDeepWith.js
===================================================================
--- node_modules/es-toolkit/compat/cloneDeepWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/cloneDeepWith.js').cloneDeepWith;
Index: de_modules/es-toolkit/compat/cloneWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/cloneWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { cloneWith as default } from '../dist/compat/object/cloneWith.js';
Index: de_modules/es-toolkit/compat/cloneWith.js
===================================================================
--- node_modules/es-toolkit/compat/cloneWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/cloneWith.js').cloneWith;
Index: de_modules/es-toolkit/compat/compact.d.ts
===================================================================
--- node_modules/es-toolkit/compat/compact.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { compact as default } from '../dist/compat/array/compact.js';
Index: de_modules/es-toolkit/compat/compact.js
===================================================================
--- node_modules/es-toolkit/compat/compact.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/compact.js').compact;
Index: de_modules/es-toolkit/compat/concat.d.ts
===================================================================
--- node_modules/es-toolkit/compat/concat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { concat as default } from '../dist/compat/array/concat.js';
Index: de_modules/es-toolkit/compat/concat.js
===================================================================
--- node_modules/es-toolkit/compat/concat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/concat.js').concat;
Index: de_modules/es-toolkit/compat/cond.d.ts
===================================================================
--- node_modules/es-toolkit/compat/cond.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { cond as default } from '../dist/compat/util/cond.js';
Index: de_modules/es-toolkit/compat/cond.js
===================================================================
--- node_modules/es-toolkit/compat/cond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/cond.js').cond;
Index: de_modules/es-toolkit/compat/conforms.d.ts
===================================================================
--- node_modules/es-toolkit/compat/conforms.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { conforms as default } from '../dist/compat/predicate/conforms.js';
Index: de_modules/es-toolkit/compat/conforms.js
===================================================================
--- node_modules/es-toolkit/compat/conforms.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/conforms.js').conforms;
Index: de_modules/es-toolkit/compat/conformsTo.d.ts
===================================================================
--- node_modules/es-toolkit/compat/conformsTo.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { conformsTo as default } from '../dist/compat/predicate/conformsTo.js';
Index: de_modules/es-toolkit/compat/conformsTo.js
===================================================================
--- node_modules/es-toolkit/compat/conformsTo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/conformsTo.js').conformsTo;
Index: de_modules/es-toolkit/compat/constant.d.ts
===================================================================
--- node_modules/es-toolkit/compat/constant.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { constant as default } from '../dist/compat/util/constant.js';
Index: de_modules/es-toolkit/compat/constant.js
===================================================================
--- node_modules/es-toolkit/compat/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/constant.js').constant;
Index: de_modules/es-toolkit/compat/countBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/countBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { countBy as default } from '../dist/compat/array/countBy.js';
Index: de_modules/es-toolkit/compat/countBy.js
===================================================================
--- node_modules/es-toolkit/compat/countBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/countBy.js').countBy;
Index: de_modules/es-toolkit/compat/create.d.ts
===================================================================
--- node_modules/es-toolkit/compat/create.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { create as default } from '../dist/compat/object/create.js';
Index: de_modules/es-toolkit/compat/create.js
===================================================================
--- node_modules/es-toolkit/compat/create.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/create.js').create;
Index: de_modules/es-toolkit/compat/curry.d.ts
===================================================================
--- node_modules/es-toolkit/compat/curry.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { curry as default } from '../dist/compat/function/curry.js';
Index: de_modules/es-toolkit/compat/curry.js
===================================================================
--- node_modules/es-toolkit/compat/curry.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/curry.js').curry;
Index: de_modules/es-toolkit/compat/curryRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/curryRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { curryRight as default } from '../dist/compat/function/curryRight.js';
Index: de_modules/es-toolkit/compat/curryRight.js
===================================================================
--- node_modules/es-toolkit/compat/curryRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/curryRight.js').curryRight;
Index: de_modules/es-toolkit/compat/debounce.d.ts
===================================================================
--- node_modules/es-toolkit/compat/debounce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { debounce as default } from '../dist/compat/function/debounce.js';
Index: de_modules/es-toolkit/compat/debounce.js
===================================================================
--- node_modules/es-toolkit/compat/debounce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/debounce.js').debounce;
Index: de_modules/es-toolkit/compat/deburr.d.ts
===================================================================
--- node_modules/es-toolkit/compat/deburr.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { deburr as default } from '../dist/compat/string/deburr.js';
Index: de_modules/es-toolkit/compat/deburr.js
===================================================================
--- node_modules/es-toolkit/compat/deburr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/deburr.js').deburr;
Index: de_modules/es-toolkit/compat/defaultTo.d.ts
===================================================================
--- node_modules/es-toolkit/compat/defaultTo.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { defaultTo as default } from '../dist/compat/util/defaultTo.js';
Index: de_modules/es-toolkit/compat/defaultTo.js
===================================================================
--- node_modules/es-toolkit/compat/defaultTo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/defaultTo.js').defaultTo;
Index: de_modules/es-toolkit/compat/defaults.d.ts
===================================================================
--- node_modules/es-toolkit/compat/defaults.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { defaults as default } from '../dist/compat/object/defaults.js';
Index: de_modules/es-toolkit/compat/defaults.js
===================================================================
--- node_modules/es-toolkit/compat/defaults.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/defaults.js').defaults;
Index: de_modules/es-toolkit/compat/defaultsDeep.d.ts
===================================================================
--- node_modules/es-toolkit/compat/defaultsDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { defaultsDeep as default } from '../dist/compat/object/defaultsDeep.js';
Index: de_modules/es-toolkit/compat/defaultsDeep.js
===================================================================
--- node_modules/es-toolkit/compat/defaultsDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/defaultsDeep.js').defaultsDeep;
Index: de_modules/es-toolkit/compat/defer.d.ts
===================================================================
--- node_modules/es-toolkit/compat/defer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { defer as default } from '../dist/compat/function/defer.js';
Index: de_modules/es-toolkit/compat/defer.js
===================================================================
--- node_modules/es-toolkit/compat/defer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/defer.js').defer;
Index: de_modules/es-toolkit/compat/delay.d.ts
===================================================================
--- node_modules/es-toolkit/compat/delay.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { delay as default } from '../dist/compat/function/delay.js';
Index: de_modules/es-toolkit/compat/delay.js
===================================================================
--- node_modules/es-toolkit/compat/delay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/delay.js').delay;
Index: de_modules/es-toolkit/compat/difference.d.ts
===================================================================
--- node_modules/es-toolkit/compat/difference.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { difference as default } from '../dist/compat/array/difference.js';
Index: de_modules/es-toolkit/compat/difference.js
===================================================================
--- node_modules/es-toolkit/compat/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/difference.js').difference;
Index: de_modules/es-toolkit/compat/differenceBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/differenceBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { differenceBy as default } from '../dist/compat/array/differenceBy.js';
Index: de_modules/es-toolkit/compat/differenceBy.js
===================================================================
--- node_modules/es-toolkit/compat/differenceBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/differenceBy.js').differenceBy;
Index: de_modules/es-toolkit/compat/differenceWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/differenceWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { differenceWith as default } from '../dist/compat/array/differenceWith.js';
Index: de_modules/es-toolkit/compat/differenceWith.js
===================================================================
--- node_modules/es-toolkit/compat/differenceWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/differenceWith.js').differenceWith;
Index: de_modules/es-toolkit/compat/divide.d.ts
===================================================================
--- node_modules/es-toolkit/compat/divide.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { divide as default } from '../dist/compat/math/divide.js';
Index: de_modules/es-toolkit/compat/divide.js
===================================================================
--- node_modules/es-toolkit/compat/divide.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/divide.js').divide;
Index: de_modules/es-toolkit/compat/drop.d.ts
===================================================================
--- node_modules/es-toolkit/compat/drop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { drop as default } from '../dist/compat/array/drop.js';
Index: de_modules/es-toolkit/compat/drop.js
===================================================================
--- node_modules/es-toolkit/compat/drop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/drop.js').drop;
Index: de_modules/es-toolkit/compat/dropRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/dropRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { dropRight as default } from '../dist/compat/array/dropRight.js';
Index: de_modules/es-toolkit/compat/dropRight.js
===================================================================
--- node_modules/es-toolkit/compat/dropRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/dropRight.js').dropRight;
Index: de_modules/es-toolkit/compat/dropRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/compat/dropRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { dropRightWhile as default } from '../dist/compat/array/dropRightWhile.js';
Index: de_modules/es-toolkit/compat/dropRightWhile.js
===================================================================
--- node_modules/es-toolkit/compat/dropRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/dropRightWhile.js').dropRightWhile;
Index: de_modules/es-toolkit/compat/dropWhile.d.ts
===================================================================
--- node_modules/es-toolkit/compat/dropWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { dropWhile as default } from '../dist/compat/array/dropWhile.js';
Index: de_modules/es-toolkit/compat/dropWhile.js
===================================================================
--- node_modules/es-toolkit/compat/dropWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/dropWhile.js').dropWhile;
Index: de_modules/es-toolkit/compat/each.d.ts
===================================================================
--- node_modules/es-toolkit/compat/each.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forEach as default } from '../dist/compat/array/forEach.js';
Index: de_modules/es-toolkit/compat/each.js
===================================================================
--- node_modules/es-toolkit/compat/each.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/forEach.js').forEach;
Index: de_modules/es-toolkit/compat/eachRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/eachRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forEachRight as default } from '../dist/compat/array/forEachRight.js';
Index: de_modules/es-toolkit/compat/eachRight.js
===================================================================
--- node_modules/es-toolkit/compat/eachRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/forEachRight.js').forEachRight;
Index: de_modules/es-toolkit/compat/endsWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/endsWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { endsWith as default } from '../dist/compat/string/endsWith.js';
Index: de_modules/es-toolkit/compat/endsWith.js
===================================================================
--- node_modules/es-toolkit/compat/endsWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/endsWith.js').endsWith;
Index: de_modules/es-toolkit/compat/eq.d.ts
===================================================================
--- node_modules/es-toolkit/compat/eq.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { eq as default } from '../dist/compat/util/eq.js';
Index: de_modules/es-toolkit/compat/eq.js
===================================================================
--- node_modules/es-toolkit/compat/eq.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/eq.js').eq;
Index: de_modules/es-toolkit/compat/escape.d.ts
===================================================================
--- node_modules/es-toolkit/compat/escape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { escape as default } from '../dist/compat/string/escape.js';
Index: de_modules/es-toolkit/compat/escape.js
===================================================================
--- node_modules/es-toolkit/compat/escape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/escape.js').escape;
Index: de_modules/es-toolkit/compat/escapeRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/compat/escapeRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { escapeRegExp as default } from '../dist/compat/string/escapeRegExp.js';
Index: de_modules/es-toolkit/compat/escapeRegExp.js
===================================================================
--- node_modules/es-toolkit/compat/escapeRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/escapeRegExp.js').escapeRegExp;
Index: de_modules/es-toolkit/compat/every.d.ts
===================================================================
--- node_modules/es-toolkit/compat/every.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { every as default } from '../dist/compat/array/every.js';
Index: de_modules/es-toolkit/compat/every.js
===================================================================
--- node_modules/es-toolkit/compat/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/every.js').every;
Index: de_modules/es-toolkit/compat/extend.d.ts
===================================================================
--- node_modules/es-toolkit/compat/extend.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assignIn as default } from '../dist/compat/object/assignIn.js';
Index: de_modules/es-toolkit/compat/extend.js
===================================================================
--- node_modules/es-toolkit/compat/extend.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assignIn.js').assignIn;
Index: de_modules/es-toolkit/compat/extendWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/extendWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { assignInWith as default } from '../dist/compat/object/assignInWith.js';
Index: de_modules/es-toolkit/compat/extendWith.js
===================================================================
--- node_modules/es-toolkit/compat/extendWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/assignInWith.js').assignInWith;
Index: de_modules/es-toolkit/compat/fill.d.ts
===================================================================
--- node_modules/es-toolkit/compat/fill.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { fill as default } from '../dist/compat/array/fill.js';
Index: de_modules/es-toolkit/compat/fill.js
===================================================================
--- node_modules/es-toolkit/compat/fill.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/fill.js').fill;
Index: de_modules/es-toolkit/compat/filter.d.ts
===================================================================
--- node_modules/es-toolkit/compat/filter.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { filter as default } from '../dist/compat/array/filter.js';
Index: de_modules/es-toolkit/compat/filter.js
===================================================================
--- node_modules/es-toolkit/compat/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/filter.js').filter;
Index: de_modules/es-toolkit/compat/find.d.ts
===================================================================
--- node_modules/es-toolkit/compat/find.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { find as default } from '../dist/compat/array/find.js';
Index: de_modules/es-toolkit/compat/find.js
===================================================================
--- node_modules/es-toolkit/compat/find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/find.js').find;
Index: de_modules/es-toolkit/compat/findIndex.d.ts
===================================================================
--- node_modules/es-toolkit/compat/findIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { findIndex as default } from '../dist/compat/array/findIndex.js';
Index: de_modules/es-toolkit/compat/findIndex.js
===================================================================
--- node_modules/es-toolkit/compat/findIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/findIndex.js').findIndex;
Index: de_modules/es-toolkit/compat/findKey.d.ts
===================================================================
--- node_modules/es-toolkit/compat/findKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { findKey as default } from '../dist/compat/object/findKey.js';
Index: de_modules/es-toolkit/compat/findKey.js
===================================================================
--- node_modules/es-toolkit/compat/findKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/findKey.js').findKey;
Index: de_modules/es-toolkit/compat/findLast.d.ts
===================================================================
--- node_modules/es-toolkit/compat/findLast.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { findLast as default } from '../dist/compat/array/findLast.js';
Index: de_modules/es-toolkit/compat/findLast.js
===================================================================
--- node_modules/es-toolkit/compat/findLast.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/findLast.js').findLast;
Index: de_modules/es-toolkit/compat/findLastIndex.d.ts
===================================================================
--- node_modules/es-toolkit/compat/findLastIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { findLastIndex as default } from '../dist/compat/array/findLastIndex.js';
Index: de_modules/es-toolkit/compat/findLastIndex.js
===================================================================
--- node_modules/es-toolkit/compat/findLastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/findLastIndex.js').findLastIndex;
Index: de_modules/es-toolkit/compat/findLastKey.d.ts
===================================================================
--- node_modules/es-toolkit/compat/findLastKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { findLastKey as default } from '../dist/compat/object/findLastKey.js';
Index: de_modules/es-toolkit/compat/findLastKey.js
===================================================================
--- node_modules/es-toolkit/compat/findLastKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/findLastKey.js').findLastKey;
Index: de_modules/es-toolkit/compat/first.d.ts
===================================================================
--- node_modules/es-toolkit/compat/first.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { head as default } from '../dist/compat/array/head.js';
Index: de_modules/es-toolkit/compat/first.js
===================================================================
--- node_modules/es-toolkit/compat/first.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/head.js').head;
Index: de_modules/es-toolkit/compat/flatMap.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flatMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flatMap as default } from '../dist/compat/array/flatMap.js';
Index: de_modules/es-toolkit/compat/flatMap.js
===================================================================
--- node_modules/es-toolkit/compat/flatMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flatMap.js').flatMap;
Index: de_modules/es-toolkit/compat/flatMapDeep.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flatMapDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flatMapDeep as default } from '../dist/compat/array/flatMapDeep.js';
Index: de_modules/es-toolkit/compat/flatMapDeep.js
===================================================================
--- node_modules/es-toolkit/compat/flatMapDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flatMapDeep.js').flatMapDeep;
Index: de_modules/es-toolkit/compat/flatMapDepth.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flatMapDepth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flatMapDepth as default } from '../dist/compat/array/flatMapDepth.js';
Index: de_modules/es-toolkit/compat/flatMapDepth.js
===================================================================
--- node_modules/es-toolkit/compat/flatMapDepth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flatMapDepth.js').flatMapDepth;
Index: de_modules/es-toolkit/compat/flatten.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flatten.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flatten as default } from '../dist/compat/array/flatten.js';
Index: de_modules/es-toolkit/compat/flatten.js
===================================================================
--- node_modules/es-toolkit/compat/flatten.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flatten.js').flatten;
Index: de_modules/es-toolkit/compat/flattenDeep.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flattenDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flattenDeep as default } from '../dist/compat/array/flattenDeep.js';
Index: de_modules/es-toolkit/compat/flattenDeep.js
===================================================================
--- node_modules/es-toolkit/compat/flattenDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flattenDeep.js').flattenDeep;
Index: de_modules/es-toolkit/compat/flattenDepth.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flattenDepth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flattenDepth as default } from '../dist/compat/array/flattenDepth.js';
Index: de_modules/es-toolkit/compat/flattenDepth.js
===================================================================
--- node_modules/es-toolkit/compat/flattenDepth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/flattenDepth.js').flattenDepth;
Index: de_modules/es-toolkit/compat/flip.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flip as default } from '../dist/compat/function/flip.js';
Index: de_modules/es-toolkit/compat/flip.js
===================================================================
--- node_modules/es-toolkit/compat/flip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/flip.js').flip;
Index: de_modules/es-toolkit/compat/floor.d.ts
===================================================================
--- node_modules/es-toolkit/compat/floor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { floor as default } from '../dist/compat/math/floor.js';
Index: de_modules/es-toolkit/compat/floor.js
===================================================================
--- node_modules/es-toolkit/compat/floor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/floor.js').floor;
Index: de_modules/es-toolkit/compat/flow.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flow.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flow as default } from '../dist/compat/function/flow.js';
Index: de_modules/es-toolkit/compat/flow.js
===================================================================
--- node_modules/es-toolkit/compat/flow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/flow.js').flow;
Index: de_modules/es-toolkit/compat/flowRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/flowRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { flowRight as default } from '../dist/compat/function/flowRight.js';
Index: de_modules/es-toolkit/compat/flowRight.js
===================================================================
--- node_modules/es-toolkit/compat/flowRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/flowRight.js').flowRight;
Index: de_modules/es-toolkit/compat/forEach.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forEach.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forEach as default } from '../dist/compat/array/forEach.js';
Index: de_modules/es-toolkit/compat/forEach.js
===================================================================
--- node_modules/es-toolkit/compat/forEach.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/forEach.js').forEach;
Index: de_modules/es-toolkit/compat/forEachRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forEachRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forEachRight as default } from '../dist/compat/array/forEachRight.js';
Index: de_modules/es-toolkit/compat/forEachRight.js
===================================================================
--- node_modules/es-toolkit/compat/forEachRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/forEachRight.js').forEachRight;
Index: de_modules/es-toolkit/compat/forIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forIn as default } from '../dist/compat/object/forIn.js';
Index: de_modules/es-toolkit/compat/forIn.js
===================================================================
--- node_modules/es-toolkit/compat/forIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/forIn.js').forIn;
Index: de_modules/es-toolkit/compat/forInRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forInRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forInRight as default } from '../dist/compat/object/forInRight.js';
Index: de_modules/es-toolkit/compat/forInRight.js
===================================================================
--- node_modules/es-toolkit/compat/forInRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/forInRight.js').forInRight;
Index: de_modules/es-toolkit/compat/forOwn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forOwn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forOwn as default } from '../dist/compat/object/forOwn.js';
Index: de_modules/es-toolkit/compat/forOwn.js
===================================================================
--- node_modules/es-toolkit/compat/forOwn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/forOwn.js').forOwn;
Index: de_modules/es-toolkit/compat/forOwnRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/forOwnRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { forOwnRight as default } from '../dist/compat/object/forOwnRight.js';
Index: de_modules/es-toolkit/compat/forOwnRight.js
===================================================================
--- node_modules/es-toolkit/compat/forOwnRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/forOwnRight.js').forOwnRight;
Index: de_modules/es-toolkit/compat/fromPairs.d.ts
===================================================================
--- node_modules/es-toolkit/compat/fromPairs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { fromPairs as default } from '../dist/compat/object/fromPairs.js';
Index: de_modules/es-toolkit/compat/fromPairs.js
===================================================================
--- node_modules/es-toolkit/compat/fromPairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/fromPairs.js').fromPairs;
Index: de_modules/es-toolkit/compat/functions.d.ts
===================================================================
--- node_modules/es-toolkit/compat/functions.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { functions as default } from '../dist/compat/object/functions.js';
Index: de_modules/es-toolkit/compat/functions.js
===================================================================
--- node_modules/es-toolkit/compat/functions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/functions.js').functions;
Index: de_modules/es-toolkit/compat/functionsIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/functionsIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { functionsIn as default } from '../dist/compat/object/functionsIn.js';
Index: de_modules/es-toolkit/compat/functionsIn.js
===================================================================
--- node_modules/es-toolkit/compat/functionsIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/functionsIn.js').functionsIn;
Index: de_modules/es-toolkit/compat/get.d.ts
===================================================================
--- node_modules/es-toolkit/compat/get.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { get as default } from '../dist/compat/object/get.js';
Index: de_modules/es-toolkit/compat/get.js
===================================================================
--- node_modules/es-toolkit/compat/get.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/get.js').get;
Index: de_modules/es-toolkit/compat/groupBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/groupBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { groupBy as default } from '../dist/compat/array/groupBy.js';
Index: de_modules/es-toolkit/compat/groupBy.js
===================================================================
--- node_modules/es-toolkit/compat/groupBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/groupBy.js').groupBy;
Index: de_modules/es-toolkit/compat/gt.d.ts
===================================================================
--- node_modules/es-toolkit/compat/gt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { gt as default } from '../dist/compat/util/gt.js';
Index: de_modules/es-toolkit/compat/gt.js
===================================================================
--- node_modules/es-toolkit/compat/gt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/gt.js').gt;
Index: de_modules/es-toolkit/compat/gte.d.ts
===================================================================
--- node_modules/es-toolkit/compat/gte.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { gte as default } from '../dist/compat/util/gte.js';
Index: de_modules/es-toolkit/compat/gte.js
===================================================================
--- node_modules/es-toolkit/compat/gte.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/gte.js').gte;
Index: de_modules/es-toolkit/compat/has.d.ts
===================================================================
--- node_modules/es-toolkit/compat/has.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { has as default } from '../dist/compat/object/has.js';
Index: de_modules/es-toolkit/compat/has.js
===================================================================
--- node_modules/es-toolkit/compat/has.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/has.js').has;
Index: de_modules/es-toolkit/compat/hasIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/hasIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { hasIn as default } from '../dist/compat/object/hasIn.js';
Index: de_modules/es-toolkit/compat/hasIn.js
===================================================================
--- node_modules/es-toolkit/compat/hasIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/hasIn.js').hasIn;
Index: de_modules/es-toolkit/compat/head.d.ts
===================================================================
--- node_modules/es-toolkit/compat/head.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { head as default } from '../dist/compat/array/head.js';
Index: de_modules/es-toolkit/compat/head.js
===================================================================
--- node_modules/es-toolkit/compat/head.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/head.js').head;
Index: de_modules/es-toolkit/compat/identity.d.ts
===================================================================
--- node_modules/es-toolkit/compat/identity.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { identity as default } from '../dist/function/identity.js';
Index: de_modules/es-toolkit/compat/identity.js
===================================================================
--- node_modules/es-toolkit/compat/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/function/identity.js').identity;
Index: de_modules/es-toolkit/compat/inRange.d.ts
===================================================================
--- node_modules/es-toolkit/compat/inRange.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { inRange as default } from '../dist/compat/math/inRange.js';
Index: de_modules/es-toolkit/compat/inRange.js
===================================================================
--- node_modules/es-toolkit/compat/inRange.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/inRange.js').inRange;
Index: de_modules/es-toolkit/compat/includes.d.ts
===================================================================
--- node_modules/es-toolkit/compat/includes.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { includes as default } from '../dist/compat/array/includes.js';
Index: de_modules/es-toolkit/compat/includes.js
===================================================================
--- node_modules/es-toolkit/compat/includes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/includes.js').includes;
Index: de_modules/es-toolkit/compat/indexOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/indexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { indexOf as default } from '../dist/compat/array/indexOf.js';
Index: de_modules/es-toolkit/compat/indexOf.js
===================================================================
--- node_modules/es-toolkit/compat/indexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/indexOf.js').indexOf;
Index: de_modules/es-toolkit/compat/initial.d.ts
===================================================================
--- node_modules/es-toolkit/compat/initial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { initial as default } from '../dist/compat/array/initial.js';
Index: de_modules/es-toolkit/compat/initial.js
===================================================================
--- node_modules/es-toolkit/compat/initial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/initial.js').initial;
Index: de_modules/es-toolkit/compat/intersection.d.ts
===================================================================
--- node_modules/es-toolkit/compat/intersection.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { intersection as default } from '../dist/compat/array/intersection.js';
Index: de_modules/es-toolkit/compat/intersection.js
===================================================================
--- node_modules/es-toolkit/compat/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/intersection.js').intersection;
Index: de_modules/es-toolkit/compat/intersectionBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/intersectionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { intersectionBy as default } from '../dist/compat/array/intersectionBy.js';
Index: de_modules/es-toolkit/compat/intersectionBy.js
===================================================================
--- node_modules/es-toolkit/compat/intersectionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/intersectionBy.js').intersectionBy;
Index: de_modules/es-toolkit/compat/intersectionWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/intersectionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { intersectionWith as default } from '../dist/compat/array/intersectionWith.js';
Index: de_modules/es-toolkit/compat/intersectionWith.js
===================================================================
--- node_modules/es-toolkit/compat/intersectionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/intersectionWith.js').intersectionWith;
Index: de_modules/es-toolkit/compat/invert.d.ts
===================================================================
--- node_modules/es-toolkit/compat/invert.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { invert as default } from '../dist/object/invert.js';
Index: de_modules/es-toolkit/compat/invert.js
===================================================================
--- node_modules/es-toolkit/compat/invert.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/object/invert.js').invert;
Index: de_modules/es-toolkit/compat/invertBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/invertBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { invertBy as default } from '../dist/compat/object/invertBy.js';
Index: de_modules/es-toolkit/compat/invertBy.js
===================================================================
--- node_modules/es-toolkit/compat/invertBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/invertBy.js').invertBy;
Index: de_modules/es-toolkit/compat/invoke.d.ts
===================================================================
--- node_modules/es-toolkit/compat/invoke.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { invoke as default } from '../dist/compat/util/invoke.js';
Index: de_modules/es-toolkit/compat/invoke.js
===================================================================
--- node_modules/es-toolkit/compat/invoke.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/invoke.js').invoke;
Index: de_modules/es-toolkit/compat/invokeMap.d.ts
===================================================================
--- node_modules/es-toolkit/compat/invokeMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { invokeMap as default } from '../dist/compat/array/invokeMap.js';
Index: de_modules/es-toolkit/compat/invokeMap.js
===================================================================
--- node_modules/es-toolkit/compat/invokeMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/invokeMap.js').invokeMap;
Index: de_modules/es-toolkit/compat/isArguments.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isArguments.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isArguments as default } from '../dist/compat/predicate/isArguments.js';
Index: de_modules/es-toolkit/compat/isArguments.js
===================================================================
--- node_modules/es-toolkit/compat/isArguments.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isArguments.js').isArguments;
Index: de_modules/es-toolkit/compat/isArray.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isArray as default } from '../dist/compat/predicate/isArray.js';
Index: de_modules/es-toolkit/compat/isArray.js
===================================================================
--- node_modules/es-toolkit/compat/isArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isArray.js').isArray;
Index: de_modules/es-toolkit/compat/isArrayBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isArrayBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isArrayBuffer as default } from '../dist/compat/predicate/isArrayBuffer.js';
Index: de_modules/es-toolkit/compat/isArrayBuffer.js
===================================================================
--- node_modules/es-toolkit/compat/isArrayBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isArrayBuffer.js').isArrayBuffer;
Index: de_modules/es-toolkit/compat/isArrayLike.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isArrayLike.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isArrayLike as default } from '../dist/compat/predicate/isArrayLike.js';
Index: de_modules/es-toolkit/compat/isArrayLike.js
===================================================================
--- node_modules/es-toolkit/compat/isArrayLike.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isArrayLike.js').isArrayLike;
Index: de_modules/es-toolkit/compat/isArrayLikeObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isArrayLikeObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isArrayLikeObject as default } from '../dist/compat/predicate/isArrayLikeObject.js';
Index: de_modules/es-toolkit/compat/isArrayLikeObject.js
===================================================================
--- node_modules/es-toolkit/compat/isArrayLikeObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isArrayLikeObject.js').isArrayLikeObject;
Index: de_modules/es-toolkit/compat/isBoolean.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isBoolean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isBoolean as default } from '../dist/compat/predicate/isBoolean.js';
Index: de_modules/es-toolkit/compat/isBoolean.js
===================================================================
--- node_modules/es-toolkit/compat/isBoolean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isBoolean.js').isBoolean;
Index: de_modules/es-toolkit/compat/isBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isBuffer as default } from '../dist/compat/predicate/isBuffer.js';
Index: de_modules/es-toolkit/compat/isBuffer.js
===================================================================
--- node_modules/es-toolkit/compat/isBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isBuffer.js').isBuffer;
Index: de_modules/es-toolkit/compat/isDate.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isDate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isDate as default } from '../dist/compat/predicate/isDate.js';
Index: de_modules/es-toolkit/compat/isDate.js
===================================================================
--- node_modules/es-toolkit/compat/isDate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isDate.js').isDate;
Index: de_modules/es-toolkit/compat/isElement.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isElement.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isElement as default } from '../dist/compat/predicate/isElement.js';
Index: de_modules/es-toolkit/compat/isElement.js
===================================================================
--- node_modules/es-toolkit/compat/isElement.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isElement.js').isElement;
Index: de_modules/es-toolkit/compat/isEmpty.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isEmpty.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isEmpty as default } from '../dist/compat/predicate/isEmpty.js';
Index: de_modules/es-toolkit/compat/isEmpty.js
===================================================================
--- node_modules/es-toolkit/compat/isEmpty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isEmpty.js').isEmpty;
Index: de_modules/es-toolkit/compat/isEqual.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isEqual.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isEqual as default } from '../dist/predicate/isEqual.js';
Index: de_modules/es-toolkit/compat/isEqual.js
===================================================================
--- node_modules/es-toolkit/compat/isEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/predicate/isEqual.js').isEqual;
Index: de_modules/es-toolkit/compat/isEqualWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isEqualWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isEqualWith as default } from '../dist/compat/predicate/isEqualWith.js';
Index: de_modules/es-toolkit/compat/isEqualWith.js
===================================================================
--- node_modules/es-toolkit/compat/isEqualWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isEqualWith.js').isEqualWith;
Index: de_modules/es-toolkit/compat/isError.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isError.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isError as default } from '../dist/compat/predicate/isError.js';
Index: de_modules/es-toolkit/compat/isError.js
===================================================================
--- node_modules/es-toolkit/compat/isError.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isError.js').isError;
Index: de_modules/es-toolkit/compat/isFinite.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isFinite.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isFinite as default } from '../dist/compat/predicate/isFinite.js';
Index: de_modules/es-toolkit/compat/isFinite.js
===================================================================
--- node_modules/es-toolkit/compat/isFinite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isFinite.js').isFinite;
Index: de_modules/es-toolkit/compat/isFunction.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isFunction.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isFunction as default } from '../dist/predicate/isFunction.js';
Index: de_modules/es-toolkit/compat/isFunction.js
===================================================================
--- node_modules/es-toolkit/compat/isFunction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/predicate/isFunction.js').isFunction;
Index: de_modules/es-toolkit/compat/isInteger.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isInteger as default } from '../dist/compat/predicate/isInteger.js';
Index: de_modules/es-toolkit/compat/isInteger.js
===================================================================
--- node_modules/es-toolkit/compat/isInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isInteger.js').isInteger;
Index: de_modules/es-toolkit/compat/isLength.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isLength.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isLength as default } from '../dist/predicate/isLength.js';
Index: de_modules/es-toolkit/compat/isLength.js
===================================================================
--- node_modules/es-toolkit/compat/isLength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/predicate/isLength.js').isLength;
Index: de_modules/es-toolkit/compat/isMap.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isMap as default } from '../dist/compat/predicate/isMap.js';
Index: de_modules/es-toolkit/compat/isMap.js
===================================================================
--- node_modules/es-toolkit/compat/isMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isMap.js').isMap;
Index: de_modules/es-toolkit/compat/isMatch.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isMatch.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isMatch as default } from '../dist/compat/predicate/isMatch.js';
Index: de_modules/es-toolkit/compat/isMatch.js
===================================================================
--- node_modules/es-toolkit/compat/isMatch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isMatch.js').isMatch;
Index: de_modules/es-toolkit/compat/isMatchWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isMatchWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isMatchWith as default } from '../dist/compat/predicate/isMatchWith.js';
Index: de_modules/es-toolkit/compat/isMatchWith.js
===================================================================
--- node_modules/es-toolkit/compat/isMatchWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isMatchWith.js').isMatchWith;
Index: de_modules/es-toolkit/compat/isNaN.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isNaN.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isNaN as default } from '../dist/compat/predicate/isNaN.js';
Index: de_modules/es-toolkit/compat/isNaN.js
===================================================================
--- node_modules/es-toolkit/compat/isNaN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isNaN.js').isNaN;
Index: de_modules/es-toolkit/compat/isNative.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isNative.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isNative as default } from '../dist/compat/predicate/isNative.js';
Index: de_modules/es-toolkit/compat/isNative.js
===================================================================
--- node_modules/es-toolkit/compat/isNative.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isNative.js').isNative;
Index: de_modules/es-toolkit/compat/isNil.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isNil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isNil as default } from '../dist/compat/predicate/isNil.js';
Index: de_modules/es-toolkit/compat/isNil.js
===================================================================
--- node_modules/es-toolkit/compat/isNil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isNil.js').isNil;
Index: de_modules/es-toolkit/compat/isNull.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isNull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isNull as default } from '../dist/predicate/isNull.js';
Index: de_modules/es-toolkit/compat/isNull.js
===================================================================
--- node_modules/es-toolkit/compat/isNull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/predicate/isNull.js').isNull;
Index: de_modules/es-toolkit/compat/isNumber.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isNumber as default } from '../dist/compat/predicate/isNumber.js';
Index: de_modules/es-toolkit/compat/isNumber.js
===================================================================
--- node_modules/es-toolkit/compat/isNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isNumber.js').isNumber;
Index: de_modules/es-toolkit/compat/isObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isObject as default } from '../dist/compat/predicate/isObject.js';
Index: de_modules/es-toolkit/compat/isObject.js
===================================================================
--- node_modules/es-toolkit/compat/isObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isObject.js').isObject;
Index: de_modules/es-toolkit/compat/isObjectLike.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isObjectLike.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isObjectLike as default } from '../dist/compat/predicate/isObjectLike.js';
Index: de_modules/es-toolkit/compat/isObjectLike.js
===================================================================
--- node_modules/es-toolkit/compat/isObjectLike.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isObjectLike.js').isObjectLike;
Index: de_modules/es-toolkit/compat/isPlainObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isPlainObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isPlainObject as default } from '../dist/compat/predicate/isPlainObject.js';
Index: de_modules/es-toolkit/compat/isPlainObject.js
===================================================================
--- node_modules/es-toolkit/compat/isPlainObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isPlainObject.js').isPlainObject;
Index: de_modules/es-toolkit/compat/isRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isRegExp as default } from '../dist/compat/predicate/isRegExp.js';
Index: de_modules/es-toolkit/compat/isRegExp.js
===================================================================
--- node_modules/es-toolkit/compat/isRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isRegExp.js').isRegExp;
Index: de_modules/es-toolkit/compat/isSafeInteger.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isSafeInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isSafeInteger as default } from '../dist/compat/predicate/isSafeInteger.js';
Index: de_modules/es-toolkit/compat/isSafeInteger.js
===================================================================
--- node_modules/es-toolkit/compat/isSafeInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isSafeInteger.js').isSafeInteger;
Index: de_modules/es-toolkit/compat/isSet.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isSet as default } from '../dist/compat/predicate/isSet.js';
Index: de_modules/es-toolkit/compat/isSet.js
===================================================================
--- node_modules/es-toolkit/compat/isSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isSet.js').isSet;
Index: de_modules/es-toolkit/compat/isString.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isString as default } from '../dist/compat/predicate/isString.js';
Index: de_modules/es-toolkit/compat/isString.js
===================================================================
--- node_modules/es-toolkit/compat/isString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isString.js').isString;
Index: de_modules/es-toolkit/compat/isSymbol.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isSymbol.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isSymbol as default } from '../dist/compat/predicate/isSymbol.js';
Index: de_modules/es-toolkit/compat/isSymbol.js
===================================================================
--- node_modules/es-toolkit/compat/isSymbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isSymbol.js').isSymbol;
Index: de_modules/es-toolkit/compat/isTypedArray.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isTypedArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isTypedArray as default } from '../dist/compat/predicate/isTypedArray.js';
Index: de_modules/es-toolkit/compat/isTypedArray.js
===================================================================
--- node_modules/es-toolkit/compat/isTypedArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isTypedArray.js').isTypedArray;
Index: de_modules/es-toolkit/compat/isUndefined.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isUndefined.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isUndefined as default } from '../dist/predicate/isUndefined.js';
Index: de_modules/es-toolkit/compat/isUndefined.js
===================================================================
--- node_modules/es-toolkit/compat/isUndefined.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/predicate/isUndefined.js').isUndefined;
Index: de_modules/es-toolkit/compat/isWeakMap.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isWeakMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isWeakMap as default } from '../dist/compat/predicate/isWeakMap.js';
Index: de_modules/es-toolkit/compat/isWeakMap.js
===================================================================
--- node_modules/es-toolkit/compat/isWeakMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isWeakMap.js').isWeakMap;
Index: de_modules/es-toolkit/compat/isWeakSet.d.ts
===================================================================
--- node_modules/es-toolkit/compat/isWeakSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { isWeakSet as default } from '../dist/compat/predicate/isWeakSet.js';
Index: de_modules/es-toolkit/compat/isWeakSet.js
===================================================================
--- node_modules/es-toolkit/compat/isWeakSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/isWeakSet.js').isWeakSet;
Index: de_modules/es-toolkit/compat/iteratee.d.ts
===================================================================
--- node_modules/es-toolkit/compat/iteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { iteratee as default } from '../dist/compat/util/iteratee.js';
Index: de_modules/es-toolkit/compat/iteratee.js
===================================================================
--- node_modules/es-toolkit/compat/iteratee.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/iteratee.js').iteratee;
Index: de_modules/es-toolkit/compat/join.d.ts
===================================================================
--- node_modules/es-toolkit/compat/join.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { join as default } from '../dist/compat/array/join.js';
Index: de_modules/es-toolkit/compat/join.js
===================================================================
--- node_modules/es-toolkit/compat/join.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/join.js').join;
Index: de_modules/es-toolkit/compat/kebabCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/kebabCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { kebabCase as default } from '../dist/compat/string/kebabCase.js';
Index: de_modules/es-toolkit/compat/kebabCase.js
===================================================================
--- node_modules/es-toolkit/compat/kebabCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/kebabCase.js').kebabCase;
Index: de_modules/es-toolkit/compat/keyBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/keyBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { keyBy as default } from '../dist/compat/array/keyBy.js';
Index: de_modules/es-toolkit/compat/keyBy.js
===================================================================
--- node_modules/es-toolkit/compat/keyBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/keyBy.js').keyBy;
Index: de_modules/es-toolkit/compat/keys.d.ts
===================================================================
--- node_modules/es-toolkit/compat/keys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { keys as default } from '../dist/compat/object/keys.js';
Index: de_modules/es-toolkit/compat/keys.js
===================================================================
--- node_modules/es-toolkit/compat/keys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/keys.js').keys;
Index: de_modules/es-toolkit/compat/keysIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/keysIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { keysIn as default } from '../dist/compat/object/keysIn.js';
Index: de_modules/es-toolkit/compat/keysIn.js
===================================================================
--- node_modules/es-toolkit/compat/keysIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/keysIn.js').keysIn;
Index: de_modules/es-toolkit/compat/last.d.ts
===================================================================
--- node_modules/es-toolkit/compat/last.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { last as default } from '../dist/compat/array/last.js';
Index: de_modules/es-toolkit/compat/last.js
===================================================================
--- node_modules/es-toolkit/compat/last.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/last.js').last;
Index: de_modules/es-toolkit/compat/lastIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/lastIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { lastIndexOf as default } from '../dist/compat/array/lastIndexOf.js';
Index: de_modules/es-toolkit/compat/lastIndexOf.js
===================================================================
--- node_modules/es-toolkit/compat/lastIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/lastIndexOf.js').lastIndexOf;
Index: de_modules/es-toolkit/compat/lowerCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/lowerCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { lowerCase as default } from '../dist/compat/string/lowerCase.js';
Index: de_modules/es-toolkit/compat/lowerCase.js
===================================================================
--- node_modules/es-toolkit/compat/lowerCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/lowerCase.js').lowerCase;
Index: de_modules/es-toolkit/compat/lowerFirst.d.ts
===================================================================
--- node_modules/es-toolkit/compat/lowerFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { lowerFirst as default } from '../dist/compat/string/lowerFirst.js';
Index: de_modules/es-toolkit/compat/lowerFirst.js
===================================================================
--- node_modules/es-toolkit/compat/lowerFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/lowerFirst.js').lowerFirst;
Index: de_modules/es-toolkit/compat/lt.d.ts
===================================================================
--- node_modules/es-toolkit/compat/lt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { lt as default } from '../dist/compat/util/lt.js';
Index: de_modules/es-toolkit/compat/lt.js
===================================================================
--- node_modules/es-toolkit/compat/lt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/lt.js').lt;
Index: de_modules/es-toolkit/compat/lte.d.ts
===================================================================
--- node_modules/es-toolkit/compat/lte.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { lte as default } from '../dist/compat/util/lte.js';
Index: de_modules/es-toolkit/compat/lte.js
===================================================================
--- node_modules/es-toolkit/compat/lte.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/lte.js').lte;
Index: de_modules/es-toolkit/compat/map.d.ts
===================================================================
--- node_modules/es-toolkit/compat/map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { map as default } from '../dist/compat/array/map.js';
Index: de_modules/es-toolkit/compat/map.js
===================================================================
--- node_modules/es-toolkit/compat/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/map.js').map;
Index: de_modules/es-toolkit/compat/mapKeys.d.ts
===================================================================
--- node_modules/es-toolkit/compat/mapKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { mapKeys as default } from '../dist/compat/object/mapKeys.js';
Index: de_modules/es-toolkit/compat/mapKeys.js
===================================================================
--- node_modules/es-toolkit/compat/mapKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/mapKeys.js').mapKeys;
Index: de_modules/es-toolkit/compat/mapValues.d.ts
===================================================================
--- node_modules/es-toolkit/compat/mapValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { mapValues as default } from '../dist/compat/object/mapValues.js';
Index: de_modules/es-toolkit/compat/mapValues.js
===================================================================
--- node_modules/es-toolkit/compat/mapValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/mapValues.js').mapValues;
Index: de_modules/es-toolkit/compat/matches.d.ts
===================================================================
--- node_modules/es-toolkit/compat/matches.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { matches as default } from '../dist/compat/predicate/matches.js';
Index: de_modules/es-toolkit/compat/matches.js
===================================================================
--- node_modules/es-toolkit/compat/matches.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/matches.js').matches;
Index: de_modules/es-toolkit/compat/matchesProperty.d.ts
===================================================================
--- node_modules/es-toolkit/compat/matchesProperty.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { matchesProperty as default } from '../dist/compat/predicate/matchesProperty.js';
Index: de_modules/es-toolkit/compat/matchesProperty.js
===================================================================
--- node_modules/es-toolkit/compat/matchesProperty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/predicate/matchesProperty.js').matchesProperty;
Index: de_modules/es-toolkit/compat/max.d.ts
===================================================================
--- node_modules/es-toolkit/compat/max.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { max as default } from '../dist/compat/math/max.js';
Index: de_modules/es-toolkit/compat/max.js
===================================================================
--- node_modules/es-toolkit/compat/max.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/max.js').max;
Index: de_modules/es-toolkit/compat/maxBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/maxBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { maxBy as default } from '../dist/compat/math/maxBy.js';
Index: de_modules/es-toolkit/compat/maxBy.js
===================================================================
--- node_modules/es-toolkit/compat/maxBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/maxBy.js').maxBy;
Index: de_modules/es-toolkit/compat/mean.d.ts
===================================================================
--- node_modules/es-toolkit/compat/mean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { mean as default } from '../dist/compat/math/mean.js';
Index: de_modules/es-toolkit/compat/mean.js
===================================================================
--- node_modules/es-toolkit/compat/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/mean.js').mean;
Index: de_modules/es-toolkit/compat/meanBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/meanBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { meanBy as default } from '../dist/compat/math/meanBy.js';
Index: de_modules/es-toolkit/compat/meanBy.js
===================================================================
--- node_modules/es-toolkit/compat/meanBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/meanBy.js').meanBy;
Index: de_modules/es-toolkit/compat/memoize.d.ts
===================================================================
--- node_modules/es-toolkit/compat/memoize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { memoize as default } from '../dist/compat/function/memoize.js';
Index: de_modules/es-toolkit/compat/memoize.js
===================================================================
--- node_modules/es-toolkit/compat/memoize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/memoize.js').memoize;
Index: de_modules/es-toolkit/compat/merge.d.ts
===================================================================
--- node_modules/es-toolkit/compat/merge.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { merge as default } from '../dist/compat/object/merge.js';
Index: de_modules/es-toolkit/compat/merge.js
===================================================================
--- node_modules/es-toolkit/compat/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/merge.js').merge;
Index: de_modules/es-toolkit/compat/mergeWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/mergeWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { mergeWith as default } from '../dist/compat/object/mergeWith.js';
Index: de_modules/es-toolkit/compat/mergeWith.js
===================================================================
--- node_modules/es-toolkit/compat/mergeWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/mergeWith.js').mergeWith;
Index: de_modules/es-toolkit/compat/method.d.ts
===================================================================
--- node_modules/es-toolkit/compat/method.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { method as default } from '../dist/compat/util/method.js';
Index: de_modules/es-toolkit/compat/method.js
===================================================================
--- node_modules/es-toolkit/compat/method.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/method.js').method;
Index: de_modules/es-toolkit/compat/methodOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/methodOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { methodOf as default } from '../dist/compat/util/methodOf.js';
Index: de_modules/es-toolkit/compat/methodOf.js
===================================================================
--- node_modules/es-toolkit/compat/methodOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/methodOf.js').methodOf;
Index: de_modules/es-toolkit/compat/min.d.ts
===================================================================
--- node_modules/es-toolkit/compat/min.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { min as default } from '../dist/compat/math/min.js';
Index: de_modules/es-toolkit/compat/min.js
===================================================================
--- node_modules/es-toolkit/compat/min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/min.js').min;
Index: de_modules/es-toolkit/compat/minBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/minBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { minBy as default } from '../dist/compat/math/minBy.js';
Index: de_modules/es-toolkit/compat/minBy.js
===================================================================
--- node_modules/es-toolkit/compat/minBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/minBy.js').minBy;
Index: de_modules/es-toolkit/compat/multiply.d.ts
===================================================================
--- node_modules/es-toolkit/compat/multiply.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { multiply as default } from '../dist/compat/math/multiply.js';
Index: de_modules/es-toolkit/compat/multiply.js
===================================================================
--- node_modules/es-toolkit/compat/multiply.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/multiply.js').multiply;
Index: de_modules/es-toolkit/compat/negate.d.ts
===================================================================
--- node_modules/es-toolkit/compat/negate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { negate as default } from '../dist/compat/function/negate.js';
Index: de_modules/es-toolkit/compat/negate.js
===================================================================
--- node_modules/es-toolkit/compat/negate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/negate.js').negate;
Index: de_modules/es-toolkit/compat/noop.d.ts
===================================================================
--- node_modules/es-toolkit/compat/noop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { noop as default } from '../dist/function/noop.js';
Index: de_modules/es-toolkit/compat/noop.js
===================================================================
--- node_modules/es-toolkit/compat/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/function/noop.js').noop;
Index: de_modules/es-toolkit/compat/now.d.ts
===================================================================
--- node_modules/es-toolkit/compat/now.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { now as default } from '../dist/compat/util/now.js';
Index: de_modules/es-toolkit/compat/now.js
===================================================================
--- node_modules/es-toolkit/compat/now.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/now.js').now;
Index: de_modules/es-toolkit/compat/nth.d.ts
===================================================================
--- node_modules/es-toolkit/compat/nth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { nth as default } from '../dist/compat/array/nth.js';
Index: de_modules/es-toolkit/compat/nth.js
===================================================================
--- node_modules/es-toolkit/compat/nth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/nth.js').nth;
Index: de_modules/es-toolkit/compat/nthArg.d.ts
===================================================================
--- node_modules/es-toolkit/compat/nthArg.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { nthArg as default } from '../dist/compat/function/nthArg.js';
Index: de_modules/es-toolkit/compat/nthArg.js
===================================================================
--- node_modules/es-toolkit/compat/nthArg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/nthArg.js').nthArg;
Index: de_modules/es-toolkit/compat/omit.d.ts
===================================================================
--- node_modules/es-toolkit/compat/omit.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { omit as default } from '../dist/compat/object/omit.js';
Index: de_modules/es-toolkit/compat/omit.js
===================================================================
--- node_modules/es-toolkit/compat/omit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/omit.js').omit;
Index: de_modules/es-toolkit/compat/omitBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/omitBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { omitBy as default } from '../dist/compat/object/omitBy.js';
Index: de_modules/es-toolkit/compat/omitBy.js
===================================================================
--- node_modules/es-toolkit/compat/omitBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/omitBy.js').omitBy;
Index: de_modules/es-toolkit/compat/once.d.ts
===================================================================
--- node_modules/es-toolkit/compat/once.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { once as default } from '../dist/function/once.js';
Index: de_modules/es-toolkit/compat/once.js
===================================================================
--- node_modules/es-toolkit/compat/once.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/function/once.js').once;
Index: de_modules/es-toolkit/compat/orderBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/orderBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { orderBy as default } from '../dist/compat/array/orderBy.js';
Index: de_modules/es-toolkit/compat/orderBy.js
===================================================================
--- node_modules/es-toolkit/compat/orderBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/orderBy.js').orderBy;
Index: de_modules/es-toolkit/compat/over.d.ts
===================================================================
--- node_modules/es-toolkit/compat/over.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { over as default } from '../dist/compat/util/over.js';
Index: de_modules/es-toolkit/compat/over.js
===================================================================
--- node_modules/es-toolkit/compat/over.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/over.js').over;
Index: de_modules/es-toolkit/compat/overArgs.d.ts
===================================================================
--- node_modules/es-toolkit/compat/overArgs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { overArgs as default } from '../dist/compat/function/overArgs.js';
Index: de_modules/es-toolkit/compat/overArgs.js
===================================================================
--- node_modules/es-toolkit/compat/overArgs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/overArgs.js').overArgs;
Index: de_modules/es-toolkit/compat/overEvery.d.ts
===================================================================
--- node_modules/es-toolkit/compat/overEvery.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { overEvery as default } from '../dist/compat/util/overEvery.js';
Index: de_modules/es-toolkit/compat/overEvery.js
===================================================================
--- node_modules/es-toolkit/compat/overEvery.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/overEvery.js').overEvery;
Index: de_modules/es-toolkit/compat/overSome.d.ts
===================================================================
--- node_modules/es-toolkit/compat/overSome.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { overSome as default } from '../dist/compat/util/overSome.js';
Index: de_modules/es-toolkit/compat/overSome.js
===================================================================
--- node_modules/es-toolkit/compat/overSome.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/overSome.js').overSome;
Index: de_modules/es-toolkit/compat/pad.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pad.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pad as default } from '../dist/compat/string/pad.js';
Index: de_modules/es-toolkit/compat/pad.js
===================================================================
--- node_modules/es-toolkit/compat/pad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/pad.js').pad;
Index: de_modules/es-toolkit/compat/padEnd.d.ts
===================================================================
--- node_modules/es-toolkit/compat/padEnd.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { padEnd as default } from '../dist/compat/string/padEnd.js';
Index: de_modules/es-toolkit/compat/padEnd.js
===================================================================
--- node_modules/es-toolkit/compat/padEnd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/padEnd.js').padEnd;
Index: de_modules/es-toolkit/compat/padStart.d.ts
===================================================================
--- node_modules/es-toolkit/compat/padStart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { padStart as default } from '../dist/compat/string/padStart.js';
Index: de_modules/es-toolkit/compat/padStart.js
===================================================================
--- node_modules/es-toolkit/compat/padStart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/padStart.js').padStart;
Index: de_modules/es-toolkit/compat/parseInt.d.ts
===================================================================
--- node_modules/es-toolkit/compat/parseInt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { parseInt as default } from '../dist/compat/math/parseInt.js';
Index: de_modules/es-toolkit/compat/parseInt.js
===================================================================
--- node_modules/es-toolkit/compat/parseInt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/parseInt.js').parseInt;
Index: de_modules/es-toolkit/compat/partial.d.ts
===================================================================
--- node_modules/es-toolkit/compat/partial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { partial as default } from '../dist/compat/function/partial.js';
Index: de_modules/es-toolkit/compat/partial.js
===================================================================
--- node_modules/es-toolkit/compat/partial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/partial.js').partial;
Index: de_modules/es-toolkit/compat/partialRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/partialRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { partialRight as default } from '../dist/compat/function/partialRight.js';
Index: de_modules/es-toolkit/compat/partialRight.js
===================================================================
--- node_modules/es-toolkit/compat/partialRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/partialRight.js').partialRight;
Index: de_modules/es-toolkit/compat/partition.d.ts
===================================================================
--- node_modules/es-toolkit/compat/partition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { partition as default } from '../dist/compat/array/partition.js';
Index: de_modules/es-toolkit/compat/partition.js
===================================================================
--- node_modules/es-toolkit/compat/partition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/partition.js').partition;
Index: de_modules/es-toolkit/compat/pick.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pick.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pick as default } from '../dist/compat/object/pick.js';
Index: de_modules/es-toolkit/compat/pick.js
===================================================================
--- node_modules/es-toolkit/compat/pick.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/pick.js').pick;
Index: de_modules/es-toolkit/compat/pickBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pickBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pickBy as default } from '../dist/compat/object/pickBy.js';
Index: de_modules/es-toolkit/compat/pickBy.js
===================================================================
--- node_modules/es-toolkit/compat/pickBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/pickBy.js').pickBy;
Index: de_modules/es-toolkit/compat/property.d.ts
===================================================================
--- node_modules/es-toolkit/compat/property.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { property as default } from '../dist/compat/object/property.js';
Index: de_modules/es-toolkit/compat/property.js
===================================================================
--- node_modules/es-toolkit/compat/property.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/property.js').property;
Index: de_modules/es-toolkit/compat/propertyOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/propertyOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { propertyOf as default } from '../dist/compat/object/propertyOf.js';
Index: de_modules/es-toolkit/compat/propertyOf.js
===================================================================
--- node_modules/es-toolkit/compat/propertyOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/propertyOf.js').propertyOf;
Index: de_modules/es-toolkit/compat/pull.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pull as default } from '../dist/compat/array/pull.js';
Index: de_modules/es-toolkit/compat/pull.js
===================================================================
--- node_modules/es-toolkit/compat/pull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/pull.js').pull;
Index: de_modules/es-toolkit/compat/pullAll.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pullAll.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pullAll as default } from '../dist/compat/array/pullAll.js';
Index: de_modules/es-toolkit/compat/pullAll.js
===================================================================
--- node_modules/es-toolkit/compat/pullAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/pullAll.js').pullAll;
Index: de_modules/es-toolkit/compat/pullAllBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pullAllBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pullAllBy as default } from '../dist/compat/array/pullAllBy.js';
Index: de_modules/es-toolkit/compat/pullAllBy.js
===================================================================
--- node_modules/es-toolkit/compat/pullAllBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/pullAllBy.js').pullAllBy;
Index: de_modules/es-toolkit/compat/pullAllWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pullAllWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pullAllWith as default } from '../dist/compat/array/pullAllWith.js';
Index: de_modules/es-toolkit/compat/pullAllWith.js
===================================================================
--- node_modules/es-toolkit/compat/pullAllWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/pullAllWith.js').pullAllWith;
Index: de_modules/es-toolkit/compat/pullAt.d.ts
===================================================================
--- node_modules/es-toolkit/compat/pullAt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { pullAt as default } from '../dist/compat/array/pullAt.js';
Index: de_modules/es-toolkit/compat/pullAt.js
===================================================================
--- node_modules/es-toolkit/compat/pullAt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/pullAt.js').pullAt;
Index: de_modules/es-toolkit/compat/random.d.ts
===================================================================
--- node_modules/es-toolkit/compat/random.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { random as default } from '../dist/compat/math/random.js';
Index: de_modules/es-toolkit/compat/random.js
===================================================================
--- node_modules/es-toolkit/compat/random.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/random.js').random;
Index: de_modules/es-toolkit/compat/range.d.ts
===================================================================
--- node_modules/es-toolkit/compat/range.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { range as default } from '../dist/compat/math/range.js';
Index: de_modules/es-toolkit/compat/range.js
===================================================================
--- node_modules/es-toolkit/compat/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/range.js').range;
Index: de_modules/es-toolkit/compat/rangeRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/rangeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { rangeRight as default } from '../dist/compat/math/rangeRight.js';
Index: de_modules/es-toolkit/compat/rangeRight.js
===================================================================
--- node_modules/es-toolkit/compat/rangeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/rangeRight.js').rangeRight;
Index: de_modules/es-toolkit/compat/rearg.d.ts
===================================================================
--- node_modules/es-toolkit/compat/rearg.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { rearg as default } from '../dist/compat/function/rearg.js';
Index: de_modules/es-toolkit/compat/rearg.js
===================================================================
--- node_modules/es-toolkit/compat/rearg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/rearg.js').rearg;
Index: de_modules/es-toolkit/compat/reduce.d.ts
===================================================================
--- node_modules/es-toolkit/compat/reduce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { reduce as default } from '../dist/compat/array/reduce.js';
Index: de_modules/es-toolkit/compat/reduce.js
===================================================================
--- node_modules/es-toolkit/compat/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/reduce.js').reduce;
Index: de_modules/es-toolkit/compat/reduceRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/reduceRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { reduceRight as default } from '../dist/compat/array/reduceRight.js';
Index: de_modules/es-toolkit/compat/reduceRight.js
===================================================================
--- node_modules/es-toolkit/compat/reduceRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/reduceRight.js').reduceRight;
Index: de_modules/es-toolkit/compat/reject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/reject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { reject as default } from '../dist/compat/array/reject.js';
Index: de_modules/es-toolkit/compat/reject.js
===================================================================
--- node_modules/es-toolkit/compat/reject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/reject.js').reject;
Index: de_modules/es-toolkit/compat/remove.d.ts
===================================================================
--- node_modules/es-toolkit/compat/remove.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { remove as default } from '../dist/compat/array/remove.js';
Index: de_modules/es-toolkit/compat/remove.js
===================================================================
--- node_modules/es-toolkit/compat/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/remove.js').remove;
Index: de_modules/es-toolkit/compat/repeat.d.ts
===================================================================
--- node_modules/es-toolkit/compat/repeat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { repeat as default } from '../dist/compat/string/repeat.js';
Index: de_modules/es-toolkit/compat/repeat.js
===================================================================
--- node_modules/es-toolkit/compat/repeat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/repeat.js').repeat;
Index: de_modules/es-toolkit/compat/replace.d.ts
===================================================================
--- node_modules/es-toolkit/compat/replace.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { replace as default } from '../dist/compat/string/replace.js';
Index: de_modules/es-toolkit/compat/replace.js
===================================================================
--- node_modules/es-toolkit/compat/replace.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/replace.js').replace;
Index: de_modules/es-toolkit/compat/rest.d.ts
===================================================================
--- node_modules/es-toolkit/compat/rest.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { rest as default } from '../dist/compat/function/rest.js';
Index: de_modules/es-toolkit/compat/rest.js
===================================================================
--- node_modules/es-toolkit/compat/rest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/rest.js').rest;
Index: de_modules/es-toolkit/compat/result.d.ts
===================================================================
--- node_modules/es-toolkit/compat/result.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { result as default } from '../dist/compat/object/result.js';
Index: de_modules/es-toolkit/compat/result.js
===================================================================
--- node_modules/es-toolkit/compat/result.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/result.js').result;
Index: de_modules/es-toolkit/compat/reverse.d.ts
===================================================================
--- node_modules/es-toolkit/compat/reverse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { reverse as default } from '../dist/compat/array/reverse.js';
Index: de_modules/es-toolkit/compat/reverse.js
===================================================================
--- node_modules/es-toolkit/compat/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/reverse.js').reverse;
Index: de_modules/es-toolkit/compat/round.d.ts
===================================================================
--- node_modules/es-toolkit/compat/round.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { round as default } from '../dist/compat/math/round.js';
Index: de_modules/es-toolkit/compat/round.js
===================================================================
--- node_modules/es-toolkit/compat/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/round.js').round;
Index: de_modules/es-toolkit/compat/sample.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sample.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sample as default } from '../dist/compat/array/sample.js';
Index: de_modules/es-toolkit/compat/sample.js
===================================================================
--- node_modules/es-toolkit/compat/sample.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sample.js').sample;
Index: de_modules/es-toolkit/compat/sampleSize.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sampleSize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sampleSize as default } from '../dist/compat/array/sampleSize.js';
Index: de_modules/es-toolkit/compat/sampleSize.js
===================================================================
--- node_modules/es-toolkit/compat/sampleSize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sampleSize.js').sampleSize;
Index: de_modules/es-toolkit/compat/set.d.ts
===================================================================
--- node_modules/es-toolkit/compat/set.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { set as default } from '../dist/compat/object/set.js';
Index: de_modules/es-toolkit/compat/set.js
===================================================================
--- node_modules/es-toolkit/compat/set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/set.js').set;
Index: de_modules/es-toolkit/compat/setWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/setWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { setWith as default } from '../dist/compat/object/setWith.js';
Index: de_modules/es-toolkit/compat/setWith.js
===================================================================
--- node_modules/es-toolkit/compat/setWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/setWith.js').setWith;
Index: de_modules/es-toolkit/compat/shuffle.d.ts
===================================================================
--- node_modules/es-toolkit/compat/shuffle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { shuffle as default } from '../dist/compat/array/shuffle.js';
Index: de_modules/es-toolkit/compat/shuffle.js
===================================================================
--- node_modules/es-toolkit/compat/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/shuffle.js').shuffle;
Index: de_modules/es-toolkit/compat/size.d.ts
===================================================================
--- node_modules/es-toolkit/compat/size.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { size as default } from '../dist/compat/array/size.js';
Index: de_modules/es-toolkit/compat/size.js
===================================================================
--- node_modules/es-toolkit/compat/size.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/size.js').size;
Index: de_modules/es-toolkit/compat/slice.d.ts
===================================================================
--- node_modules/es-toolkit/compat/slice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { slice as default } from '../dist/compat/array/slice.js';
Index: de_modules/es-toolkit/compat/slice.js
===================================================================
--- node_modules/es-toolkit/compat/slice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/slice.js').slice;
Index: de_modules/es-toolkit/compat/snakeCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/snakeCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { snakeCase as default } from '../dist/compat/string/snakeCase.js';
Index: de_modules/es-toolkit/compat/snakeCase.js
===================================================================
--- node_modules/es-toolkit/compat/snakeCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/snakeCase.js').snakeCase;
Index: de_modules/es-toolkit/compat/some.d.ts
===================================================================
--- node_modules/es-toolkit/compat/some.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { some as default } from '../dist/compat/array/some.js';
Index: de_modules/es-toolkit/compat/some.js
===================================================================
--- node_modules/es-toolkit/compat/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/some.js').some;
Index: de_modules/es-toolkit/compat/sortBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortBy as default } from '../dist/compat/array/sortBy.js';
Index: de_modules/es-toolkit/compat/sortBy.js
===================================================================
--- node_modules/es-toolkit/compat/sortBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortBy.js').sortBy;
Index: de_modules/es-toolkit/compat/sortedIndex.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedIndex as default } from '../dist/compat/array/sortedIndex.js';
Index: de_modules/es-toolkit/compat/sortedIndex.js
===================================================================
--- node_modules/es-toolkit/compat/sortedIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedIndex.js').sortedIndex;
Index: de_modules/es-toolkit/compat/sortedIndexBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedIndexBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedIndexBy as default } from '../dist/compat/array/sortedIndexBy.js';
Index: de_modules/es-toolkit/compat/sortedIndexBy.js
===================================================================
--- node_modules/es-toolkit/compat/sortedIndexBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedIndexBy.js').sortedIndexBy;
Index: de_modules/es-toolkit/compat/sortedIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedIndexOf as default } from '../dist/compat/array/sortedIndexOf.js';
Index: de_modules/es-toolkit/compat/sortedIndexOf.js
===================================================================
--- node_modules/es-toolkit/compat/sortedIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedIndexOf.js').sortedIndexOf;
Index: de_modules/es-toolkit/compat/sortedLastIndex.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedLastIndex as default } from '../dist/compat/array/sortedLastIndex.js';
Index: de_modules/es-toolkit/compat/sortedLastIndex.js
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedLastIndex.js').sortedLastIndex;
Index: de_modules/es-toolkit/compat/sortedLastIndexBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndexBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedLastIndexBy as default } from '../dist/compat/array/sortedLastIndexBy.js';
Index: de_modules/es-toolkit/compat/sortedLastIndexBy.js
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndexBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedLastIndexBy.js').sortedLastIndexBy;
Index: de_modules/es-toolkit/compat/sortedLastIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sortedLastIndexOf as default } from '../dist/compat/array/sortedLastIndexOf.js';
Index: de_modules/es-toolkit/compat/sortedLastIndexOf.js
===================================================================
--- node_modules/es-toolkit/compat/sortedLastIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/sortedLastIndexOf.js').sortedLastIndexOf;
Index: de_modules/es-toolkit/compat/split.d.ts
===================================================================
--- node_modules/es-toolkit/compat/split.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { split as default } from '../dist/compat/string/split.js';
Index: de_modules/es-toolkit/compat/split.js
===================================================================
--- node_modules/es-toolkit/compat/split.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/split.js').split;
Index: de_modules/es-toolkit/compat/spread.d.ts
===================================================================
--- node_modules/es-toolkit/compat/spread.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { spread as default } from '../dist/compat/function/spread.js';
Index: de_modules/es-toolkit/compat/spread.js
===================================================================
--- node_modules/es-toolkit/compat/spread.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/spread.js').spread;
Index: de_modules/es-toolkit/compat/startCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/startCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { startCase as default } from '../dist/compat/string/startCase.js';
Index: de_modules/es-toolkit/compat/startCase.js
===================================================================
--- node_modules/es-toolkit/compat/startCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/startCase.js').startCase;
Index: de_modules/es-toolkit/compat/startsWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/startsWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { startsWith as default } from '../dist/compat/string/startsWith.js';
Index: de_modules/es-toolkit/compat/startsWith.js
===================================================================
--- node_modules/es-toolkit/compat/startsWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/startsWith.js').startsWith;
Index: de_modules/es-toolkit/compat/stubArray.d.ts
===================================================================
--- node_modules/es-toolkit/compat/stubArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { stubArray as default } from '../dist/compat/util/stubArray.js';
Index: de_modules/es-toolkit/compat/stubArray.js
===================================================================
--- node_modules/es-toolkit/compat/stubArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/stubArray.js').stubArray;
Index: de_modules/es-toolkit/compat/stubFalse.d.ts
===================================================================
--- node_modules/es-toolkit/compat/stubFalse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { stubFalse as default } from '../dist/compat/util/stubFalse.js';
Index: de_modules/es-toolkit/compat/stubFalse.js
===================================================================
--- node_modules/es-toolkit/compat/stubFalse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/stubFalse.js').stubFalse;
Index: de_modules/es-toolkit/compat/stubObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/stubObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { stubObject as default } from '../dist/compat/util/stubObject.js';
Index: de_modules/es-toolkit/compat/stubObject.js
===================================================================
--- node_modules/es-toolkit/compat/stubObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/stubObject.js').stubObject;
Index: de_modules/es-toolkit/compat/stubString.d.ts
===================================================================
--- node_modules/es-toolkit/compat/stubString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { stubString as default } from '../dist/compat/util/stubString.js';
Index: de_modules/es-toolkit/compat/stubString.js
===================================================================
--- node_modules/es-toolkit/compat/stubString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/stubString.js').stubString;
Index: de_modules/es-toolkit/compat/stubTrue.d.ts
===================================================================
--- node_modules/es-toolkit/compat/stubTrue.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { stubTrue as default } from '../dist/compat/util/stubTrue.js';
Index: de_modules/es-toolkit/compat/stubTrue.js
===================================================================
--- node_modules/es-toolkit/compat/stubTrue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/stubTrue.js').stubTrue;
Index: de_modules/es-toolkit/compat/subtract.d.ts
===================================================================
--- node_modules/es-toolkit/compat/subtract.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { subtract as default } from '../dist/compat/math/subtract.js';
Index: de_modules/es-toolkit/compat/subtract.js
===================================================================
--- node_modules/es-toolkit/compat/subtract.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/subtract.js').subtract;
Index: de_modules/es-toolkit/compat/sum.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sum.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sum as default } from '../dist/compat/math/sum.js';
Index: de_modules/es-toolkit/compat/sum.js
===================================================================
--- node_modules/es-toolkit/compat/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/sum.js').sum;
Index: de_modules/es-toolkit/compat/sumBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/sumBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { sumBy as default } from '../dist/compat/math/sumBy.js';
Index: de_modules/es-toolkit/compat/sumBy.js
===================================================================
--- node_modules/es-toolkit/compat/sumBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/math/sumBy.js').sumBy;
Index: de_modules/es-toolkit/compat/tail.d.ts
===================================================================
--- node_modules/es-toolkit/compat/tail.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { tail as default } from '../dist/compat/array/tail.js';
Index: de_modules/es-toolkit/compat/tail.js
===================================================================
--- node_modules/es-toolkit/compat/tail.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/tail.js').tail;
Index: de_modules/es-toolkit/compat/take.d.ts
===================================================================
--- node_modules/es-toolkit/compat/take.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { take as default } from '../dist/compat/array/take.js';
Index: de_modules/es-toolkit/compat/take.js
===================================================================
--- node_modules/es-toolkit/compat/take.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/take.js').take;
Index: de_modules/es-toolkit/compat/takeRight.d.ts
===================================================================
--- node_modules/es-toolkit/compat/takeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { takeRight as default } from '../dist/compat/array/takeRight.js';
Index: de_modules/es-toolkit/compat/takeRight.js
===================================================================
--- node_modules/es-toolkit/compat/takeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/takeRight.js').takeRight;
Index: de_modules/es-toolkit/compat/takeRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/compat/takeRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { takeRightWhile as default } from '../dist/compat/array/takeRightWhile.js';
Index: de_modules/es-toolkit/compat/takeRightWhile.js
===================================================================
--- node_modules/es-toolkit/compat/takeRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/takeRightWhile.js').takeRightWhile;
Index: de_modules/es-toolkit/compat/takeWhile.d.ts
===================================================================
--- node_modules/es-toolkit/compat/takeWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { takeWhile as default } from '../dist/compat/array/takeWhile.js';
Index: de_modules/es-toolkit/compat/takeWhile.js
===================================================================
--- node_modules/es-toolkit/compat/takeWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/takeWhile.js').takeWhile;
Index: de_modules/es-toolkit/compat/template.d.ts
===================================================================
--- node_modules/es-toolkit/compat/template.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { template as default } from '../dist/compat/string/template.js';
Index: de_modules/es-toolkit/compat/template.js
===================================================================
--- node_modules/es-toolkit/compat/template.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/template.js').template;
Index: de_modules/es-toolkit/compat/templateSettings.d.ts
===================================================================
--- node_modules/es-toolkit/compat/templateSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { templateSettings as default } from '../dist/compat/string/templateSettings.js';
Index: de_modules/es-toolkit/compat/templateSettings.js
===================================================================
--- node_modules/es-toolkit/compat/templateSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/templateSettings.js').templateSettings;
Index: de_modules/es-toolkit/compat/throttle.d.ts
===================================================================
--- node_modules/es-toolkit/compat/throttle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { throttle as default } from '../dist/compat/function/throttle.js';
Index: de_modules/es-toolkit/compat/throttle.js
===================================================================
--- node_modules/es-toolkit/compat/throttle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/throttle.js').throttle;
Index: de_modules/es-toolkit/compat/times.d.ts
===================================================================
--- node_modules/es-toolkit/compat/times.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { times as default } from '../dist/compat/util/times.js';
Index: de_modules/es-toolkit/compat/times.js
===================================================================
--- node_modules/es-toolkit/compat/times.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/times.js').times;
Index: de_modules/es-toolkit/compat/toArray.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toArray as default } from '../dist/compat/util/toArray.js';
Index: de_modules/es-toolkit/compat/toArray.js
===================================================================
--- node_modules/es-toolkit/compat/toArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toArray.js').toArray;
Index: de_modules/es-toolkit/compat/toDefaulted.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toDefaulted.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toDefaulted as default } from '../dist/compat/object/toDefaulted.js';
Index: de_modules/es-toolkit/compat/toDefaulted.js
===================================================================
--- node_modules/es-toolkit/compat/toDefaulted.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/toDefaulted.js').toDefaulted;
Index: de_modules/es-toolkit/compat/toFinite.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toFinite.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toFinite as default } from '../dist/compat/util/toFinite.js';
Index: de_modules/es-toolkit/compat/toFinite.js
===================================================================
--- node_modules/es-toolkit/compat/toFinite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toFinite.js').toFinite;
Index: de_modules/es-toolkit/compat/toInteger.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toInteger as default } from '../dist/compat/util/toInteger.js';
Index: de_modules/es-toolkit/compat/toInteger.js
===================================================================
--- node_modules/es-toolkit/compat/toInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toInteger.js').toInteger;
Index: de_modules/es-toolkit/compat/toLength.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toLength.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toLength as default } from '../dist/compat/util/toLength.js';
Index: de_modules/es-toolkit/compat/toLength.js
===================================================================
--- node_modules/es-toolkit/compat/toLength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toLength.js').toLength;
Index: de_modules/es-toolkit/compat/toLower.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toLower.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toLower as default } from '../dist/compat/string/toLower.js';
Index: de_modules/es-toolkit/compat/toLower.js
===================================================================
--- node_modules/es-toolkit/compat/toLower.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/toLower.js').toLower;
Index: de_modules/es-toolkit/compat/toNumber.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toNumber as default } from '../dist/compat/util/toNumber.js';
Index: de_modules/es-toolkit/compat/toNumber.js
===================================================================
--- node_modules/es-toolkit/compat/toNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toNumber.js').toNumber;
Index: de_modules/es-toolkit/compat/toPairs.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toPairs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toPairs as default } from '../dist/compat/object/toPairs.js';
Index: de_modules/es-toolkit/compat/toPairs.js
===================================================================
--- node_modules/es-toolkit/compat/toPairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/toPairs.js').toPairs;
Index: de_modules/es-toolkit/compat/toPairsIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toPairsIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toPairsIn as default } from '../dist/compat/object/toPairsIn.js';
Index: de_modules/es-toolkit/compat/toPairsIn.js
===================================================================
--- node_modules/es-toolkit/compat/toPairsIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/toPairsIn.js').toPairsIn;
Index: de_modules/es-toolkit/compat/toPath.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toPath.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toPath as default } from '../dist/compat/util/toPath.js';
Index: de_modules/es-toolkit/compat/toPath.js
===================================================================
--- node_modules/es-toolkit/compat/toPath.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toPath.js').toPath;
Index: de_modules/es-toolkit/compat/toPlainObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toPlainObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toPlainObject as default } from '../dist/compat/util/toPlainObject.js';
Index: de_modules/es-toolkit/compat/toPlainObject.js
===================================================================
--- node_modules/es-toolkit/compat/toPlainObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toPlainObject.js').toPlainObject;
Index: de_modules/es-toolkit/compat/toSafeInteger.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toSafeInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toSafeInteger as default } from '../dist/compat/util/toSafeInteger.js';
Index: de_modules/es-toolkit/compat/toSafeInteger.js
===================================================================
--- node_modules/es-toolkit/compat/toSafeInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toSafeInteger.js').toSafeInteger;
Index: de_modules/es-toolkit/compat/toString.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toString as default } from '../dist/compat/util/toString.js';
Index: de_modules/es-toolkit/compat/toString.js
===================================================================
--- node_modules/es-toolkit/compat/toString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/toString.js').toString;
Index: de_modules/es-toolkit/compat/toUpper.d.ts
===================================================================
--- node_modules/es-toolkit/compat/toUpper.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { toUpper as default } from '../dist/compat/string/toUpper.js';
Index: de_modules/es-toolkit/compat/toUpper.js
===================================================================
--- node_modules/es-toolkit/compat/toUpper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/toUpper.js').toUpper;
Index: de_modules/es-toolkit/compat/transform.d.ts
===================================================================
--- node_modules/es-toolkit/compat/transform.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { transform as default } from '../dist/compat/object/transform.js';
Index: de_modules/es-toolkit/compat/transform.js
===================================================================
--- node_modules/es-toolkit/compat/transform.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/transform.js').transform;
Index: de_modules/es-toolkit/compat/trim.d.ts
===================================================================
--- node_modules/es-toolkit/compat/trim.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { trim as default } from '../dist/compat/string/trim.js';
Index: de_modules/es-toolkit/compat/trim.js
===================================================================
--- node_modules/es-toolkit/compat/trim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/trim.js').trim;
Index: de_modules/es-toolkit/compat/trimEnd.d.ts
===================================================================
--- node_modules/es-toolkit/compat/trimEnd.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { trimEnd as default } from '../dist/compat/string/trimEnd.js';
Index: de_modules/es-toolkit/compat/trimEnd.js
===================================================================
--- node_modules/es-toolkit/compat/trimEnd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/trimEnd.js').trimEnd;
Index: de_modules/es-toolkit/compat/trimStart.d.ts
===================================================================
--- node_modules/es-toolkit/compat/trimStart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { trimStart as default } from '../dist/compat/string/trimStart.js';
Index: de_modules/es-toolkit/compat/trimStart.js
===================================================================
--- node_modules/es-toolkit/compat/trimStart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/trimStart.js').trimStart;
Index: de_modules/es-toolkit/compat/truncate.d.ts
===================================================================
--- node_modules/es-toolkit/compat/truncate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { truncate as default } from '../dist/compat/string/truncate.js';
Index: de_modules/es-toolkit/compat/truncate.js
===================================================================
--- node_modules/es-toolkit/compat/truncate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/truncate.js').truncate;
Index: de_modules/es-toolkit/compat/unary.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unary as default } from '../dist/function/unary.js';
Index: de_modules/es-toolkit/compat/unary.js
===================================================================
--- node_modules/es-toolkit/compat/unary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/function/unary.js').unary;
Index: de_modules/es-toolkit/compat/unescape.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unescape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unescape as default } from '../dist/compat/string/unescape.js';
Index: de_modules/es-toolkit/compat/unescape.js
===================================================================
--- node_modules/es-toolkit/compat/unescape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/unescape.js').unescape;
Index: de_modules/es-toolkit/compat/union.d.ts
===================================================================
--- node_modules/es-toolkit/compat/union.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { union as default } from '../dist/compat/array/union.js';
Index: de_modules/es-toolkit/compat/union.js
===================================================================
--- node_modules/es-toolkit/compat/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/union.js').union;
Index: de_modules/es-toolkit/compat/unionBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unionBy as default } from '../dist/compat/array/unionBy.js';
Index: de_modules/es-toolkit/compat/unionBy.js
===================================================================
--- node_modules/es-toolkit/compat/unionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/unionBy.js').unionBy;
Index: de_modules/es-toolkit/compat/unionWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unionWith as default } from '../dist/compat/array/unionWith.js';
Index: de_modules/es-toolkit/compat/unionWith.js
===================================================================
--- node_modules/es-toolkit/compat/unionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/unionWith.js').unionWith;
Index: de_modules/es-toolkit/compat/uniq.d.ts
===================================================================
--- node_modules/es-toolkit/compat/uniq.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { uniq as default } from '../dist/compat/array/uniq.js';
Index: de_modules/es-toolkit/compat/uniq.js
===================================================================
--- node_modules/es-toolkit/compat/uniq.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/uniq.js').uniq;
Index: de_modules/es-toolkit/compat/uniqBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/uniqBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { uniqBy as default } from '../dist/compat/array/uniqBy.js';
Index: de_modules/es-toolkit/compat/uniqBy.js
===================================================================
--- node_modules/es-toolkit/compat/uniqBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/uniqBy.js').uniqBy;
Index: de_modules/es-toolkit/compat/uniqWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/uniqWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { uniqWith as default } from '../dist/compat/array/uniqWith.js';
Index: de_modules/es-toolkit/compat/uniqWith.js
===================================================================
--- node_modules/es-toolkit/compat/uniqWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/uniqWith.js').uniqWith;
Index: de_modules/es-toolkit/compat/uniqueId.d.ts
===================================================================
--- node_modules/es-toolkit/compat/uniqueId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { uniqueId as default } from '../dist/compat/util/uniqueId.js';
Index: de_modules/es-toolkit/compat/uniqueId.js
===================================================================
--- node_modules/es-toolkit/compat/uniqueId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/util/uniqueId.js').uniqueId;
Index: de_modules/es-toolkit/compat/unset.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unset.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unset as default } from '../dist/compat/object/unset.js';
Index: de_modules/es-toolkit/compat/unset.js
===================================================================
--- node_modules/es-toolkit/compat/unset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/unset.js').unset;
Index: de_modules/es-toolkit/compat/unzip.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unzip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unzip as default } from '../dist/compat/array/unzip.js';
Index: de_modules/es-toolkit/compat/unzip.js
===================================================================
--- node_modules/es-toolkit/compat/unzip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/unzip.js').unzip;
Index: de_modules/es-toolkit/compat/unzipWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/unzipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { unzipWith as default } from '../dist/compat/array/unzipWith.js';
Index: de_modules/es-toolkit/compat/unzipWith.js
===================================================================
--- node_modules/es-toolkit/compat/unzipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/unzipWith.js').unzipWith;
Index: de_modules/es-toolkit/compat/update.d.ts
===================================================================
--- node_modules/es-toolkit/compat/update.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { update as default } from '../dist/compat/object/update.js';
Index: de_modules/es-toolkit/compat/update.js
===================================================================
--- node_modules/es-toolkit/compat/update.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/update.js').update;
Index: de_modules/es-toolkit/compat/updateWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/updateWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { updateWith as default } from '../dist/compat/object/updateWith.js';
Index: de_modules/es-toolkit/compat/updateWith.js
===================================================================
--- node_modules/es-toolkit/compat/updateWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/updateWith.js').updateWith;
Index: de_modules/es-toolkit/compat/upperCase.d.ts
===================================================================
--- node_modules/es-toolkit/compat/upperCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { upperCase as default } from '../dist/compat/string/upperCase.js';
Index: de_modules/es-toolkit/compat/upperCase.js
===================================================================
--- node_modules/es-toolkit/compat/upperCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/upperCase.js').upperCase;
Index: de_modules/es-toolkit/compat/upperFirst.d.ts
===================================================================
--- node_modules/es-toolkit/compat/upperFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { upperFirst as default } from '../dist/compat/string/upperFirst.js';
Index: de_modules/es-toolkit/compat/upperFirst.js
===================================================================
--- node_modules/es-toolkit/compat/upperFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/upperFirst.js').upperFirst;
Index: de_modules/es-toolkit/compat/values.d.ts
===================================================================
--- node_modules/es-toolkit/compat/values.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { values as default } from '../dist/compat/object/values.js';
Index: de_modules/es-toolkit/compat/values.js
===================================================================
--- node_modules/es-toolkit/compat/values.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/values.js').values;
Index: de_modules/es-toolkit/compat/valuesIn.d.ts
===================================================================
--- node_modules/es-toolkit/compat/valuesIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { valuesIn as default } from '../dist/compat/object/valuesIn.js';
Index: de_modules/es-toolkit/compat/valuesIn.js
===================================================================
--- node_modules/es-toolkit/compat/valuesIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/object/valuesIn.js').valuesIn;
Index: de_modules/es-toolkit/compat/without.d.ts
===================================================================
--- node_modules/es-toolkit/compat/without.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { without as default } from '../dist/compat/array/without.js';
Index: de_modules/es-toolkit/compat/without.js
===================================================================
--- node_modules/es-toolkit/compat/without.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/without.js').without;
Index: de_modules/es-toolkit/compat/words.d.ts
===================================================================
--- node_modules/es-toolkit/compat/words.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { words as default } from '../dist/compat/string/words.js';
Index: de_modules/es-toolkit/compat/words.js
===================================================================
--- node_modules/es-toolkit/compat/words.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/string/words.js').words;
Index: de_modules/es-toolkit/compat/wrap.d.ts
===================================================================
--- node_modules/es-toolkit/compat/wrap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { wrap as default } from '../dist/compat/function/wrap.js';
Index: de_modules/es-toolkit/compat/wrap.js
===================================================================
--- node_modules/es-toolkit/compat/wrap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/function/wrap.js').wrap;
Index: de_modules/es-toolkit/compat/xor.d.ts
===================================================================
--- node_modules/es-toolkit/compat/xor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { xor as default } from '../dist/compat/array/xor.js';
Index: de_modules/es-toolkit/compat/xor.js
===================================================================
--- node_modules/es-toolkit/compat/xor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/xor.js').xor;
Index: de_modules/es-toolkit/compat/xorBy.d.ts
===================================================================
--- node_modules/es-toolkit/compat/xorBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { xorBy as default } from '../dist/compat/array/xorBy.js';
Index: de_modules/es-toolkit/compat/xorBy.js
===================================================================
--- node_modules/es-toolkit/compat/xorBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/xorBy.js').xorBy;
Index: de_modules/es-toolkit/compat/xorWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/xorWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { xorWith as default } from '../dist/compat/array/xorWith.js';
Index: de_modules/es-toolkit/compat/xorWith.js
===================================================================
--- node_modules/es-toolkit/compat/xorWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/xorWith.js').xorWith;
Index: de_modules/es-toolkit/compat/zip.d.ts
===================================================================
--- node_modules/es-toolkit/compat/zip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { zip as default } from '../dist/compat/array/zip.js';
Index: de_modules/es-toolkit/compat/zip.js
===================================================================
--- node_modules/es-toolkit/compat/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/zip.js').zip;
Index: de_modules/es-toolkit/compat/zipObject.d.ts
===================================================================
--- node_modules/es-toolkit/compat/zipObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { zipObject as default } from '../dist/compat/array/zipObject.js';
Index: de_modules/es-toolkit/compat/zipObject.js
===================================================================
--- node_modules/es-toolkit/compat/zipObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/zipObject.js').zipObject;
Index: de_modules/es-toolkit/compat/zipObjectDeep.d.ts
===================================================================
--- node_modules/es-toolkit/compat/zipObjectDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { zipObjectDeep as default } from '../dist/compat/array/zipObjectDeep.js';
Index: de_modules/es-toolkit/compat/zipObjectDeep.js
===================================================================
--- node_modules/es-toolkit/compat/zipObjectDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/zipObjectDeep.js').zipObjectDeep;
Index: de_modules/es-toolkit/compat/zipWith.d.ts
===================================================================
--- node_modules/es-toolkit/compat/zipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { zipWith as default } from '../dist/compat/array/zipWith.js';
Index: de_modules/es-toolkit/compat/zipWith.js
===================================================================
--- node_modules/es-toolkit/compat/zipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('../dist/compat/array/zipWith.js').zipWith;
Index: de_modules/es-toolkit/dist/_internal/compareValues.js
===================================================================
--- node_modules/es-toolkit/dist/_internal/compareValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function compareValues(a, b, order) {
-    if (a < b) {
-        return order === 'asc' ? -1 : 1;
-    }
-    if (a > b) {
-        return order === 'asc' ? 1 : -1;
-    }
-    return 0;
-}
-
-exports.compareValues = compareValues;
Index: de_modules/es-toolkit/dist/_internal/compareValues.mjs
===================================================================
--- node_modules/es-toolkit/dist/_internal/compareValues.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function compareValues(a, b, order) {
-    if (a < b) {
-        return order === 'asc' ? -1 : 1;
-    }
-    if (a > b) {
-        return order === 'asc' ? 1 : -1;
-    }
-    return 0;
-}
-
-export { compareValues };
Index: de_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.mts
===================================================================
--- node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Performs a `SameValueZero` comparison between two values to determine if they are equivalent.
- *
- * @param {any} value - The value to compare.
- * @param {any} other - The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- *
- * @example
- * eq(1, 1); // true
- * eq(0, -0); // true
- * eq(NaN, NaN); // true
- * eq('a', Object('a')); // false
- */
-declare function isEqualsSameValueZero(value: any, other: any): boolean;
-
-export { isEqualsSameValueZero };
Index: de_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.ts
===================================================================
--- node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Performs a `SameValueZero` comparison between two values to determine if they are equivalent.
- *
- * @param {any} value - The value to compare.
- * @param {any} other - The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- *
- * @example
- * eq(1, 1); // true
- * eq(0, -0); // true
- * eq(NaN, NaN); // true
- * eq('a', Object('a')); // false
- */
-declare function isEqualsSameValueZero(value: any, other: any): boolean;
-
-export { isEqualsSameValueZero };
Index: de_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js
===================================================================
--- node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isEqualsSameValueZero(value, other) {
-    return value === other || (Number.isNaN(value) && Number.isNaN(other));
-}
-
-exports.isEqualsSameValueZero = isEqualsSameValueZero;
Index: de_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.mjs
===================================================================
--- node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isEqualsSameValueZero(value, other) {
-    return value === other || (Number.isNaN(value) && Number.isNaN(other));
-}
-
-export { isEqualsSameValueZero };
Index: de_modules/es-toolkit/dist/_internal/isUnsafeProperty.js
===================================================================
--- node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isUnsafeProperty(key) {
-    return key === '__proto__';
-}
-
-exports.isUnsafeProperty = isUnsafeProperty;
Index: de_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs
===================================================================
--- node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isUnsafeProperty(key) {
-    return key === '__proto__';
-}
-
-export { isUnsafeProperty };
Index: de_modules/es-toolkit/dist/array/at.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/at.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Retrieves elements from an array at the specified indices.
- *
- * This function supports negative indices, which count from the end of the array.
- *
- * @template T
- * @param {readonly T[]} arr - The array to retrieve elements from.
- * @param {number[]} indices - An array of indices specifying the positions of elements to retrieve.
- * @returns {T[]} A new array containing the elements at the specified indices.
- *
- * @example
- * const numbers = [10, 20, 30, 40, 50];
- * const result = at(numbers, [1, 3, 4]);
- * console.log(result); // [20, 40, 50]
- */
-declare function at<T>(arr: readonly T[], indices: number[]): T[];
-
-export { at };
Index: de_modules/es-toolkit/dist/array/at.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/at.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Retrieves elements from an array at the specified indices.
- *
- * This function supports negative indices, which count from the end of the array.
- *
- * @template T
- * @param {readonly T[]} arr - The array to retrieve elements from.
- * @param {number[]} indices - An array of indices specifying the positions of elements to retrieve.
- * @returns {T[]} A new array containing the elements at the specified indices.
- *
- * @example
- * const numbers = [10, 20, 30, 40, 50];
- * const result = at(numbers, [1, 3, 4]);
- * console.log(result); // [20, 40, 50]
- */
-declare function at<T>(arr: readonly T[], indices: number[]): T[];
-
-export { at };
Index: de_modules/es-toolkit/dist/array/at.js
===================================================================
--- node_modules/es-toolkit/dist/array/at.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function at(arr, indices) {
-    const result = new Array(indices.length);
-    const length = arr.length;
-    for (let i = 0; i < indices.length; i++) {
-        let index = indices[i];
-        index = Number.isInteger(index) ? index : Math.trunc(index) || 0;
-        if (index < 0) {
-            index += length;
-        }
-        result[i] = arr[index];
-    }
-    return result;
-}
-
-exports.at = at;
Index: de_modules/es-toolkit/dist/array/at.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/at.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-function at(arr, indices) {
-    const result = new Array(indices.length);
-    const length = arr.length;
-    for (let i = 0; i < indices.length; i++) {
-        let index = indices[i];
-        index = Number.isInteger(index) ? index : Math.trunc(index) || 0;
-        if (index < 0) {
-            index += length;
-        }
-        result[i] = arr[index];
-    }
-    return result;
-}
-
-export { at };
Index: de_modules/es-toolkit/dist/array/chunk.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Splits an array into smaller arrays of a specified length.
- *
- * This function takes an input array and divides it into multiple smaller arrays,
- * each of a specified length. If the input array cannot be evenly divided,
- * the final sub-array will contain the remaining elements.
- *
- * @template T The type of elements in the array.
- * @param {T[]} arr - The array to be chunked into smaller arrays.
- * @param {number} size - The size of each smaller array. Must be a positive integer.
- * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
- * @throws {Error} Throws an error if `size` is not a positive integer.
- *
- * @example
- * // Splits an array of numbers into sub-arrays of length 2
- * chunk([1, 2, 3, 4, 5], 2);
- * // Returns: [[1, 2], [3, 4], [5]]
- *
- * @example
- * // Splits an array of strings into sub-arrays of length 3
- * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
- * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
- */
-declare function chunk<T>(arr: readonly T[], size: number): T[][];
-
-export { chunk };
Index: de_modules/es-toolkit/dist/array/chunk.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Splits an array into smaller arrays of a specified length.
- *
- * This function takes an input array and divides it into multiple smaller arrays,
- * each of a specified length. If the input array cannot be evenly divided,
- * the final sub-array will contain the remaining elements.
- *
- * @template T The type of elements in the array.
- * @param {T[]} arr - The array to be chunked into smaller arrays.
- * @param {number} size - The size of each smaller array. Must be a positive integer.
- * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
- * @throws {Error} Throws an error if `size` is not a positive integer.
- *
- * @example
- * // Splits an array of numbers into sub-arrays of length 2
- * chunk([1, 2, 3, 4, 5], 2);
- * // Returns: [[1, 2], [3, 4], [5]]
- *
- * @example
- * // Splits an array of strings into sub-arrays of length 3
- * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
- * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
- */
-declare function chunk<T>(arr: readonly T[], size: number): T[][];
-
-export { chunk };
Index: de_modules/es-toolkit/dist/array/chunk.js
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function chunk(arr, size) {
-    if (!Number.isInteger(size) || size <= 0) {
-        throw new Error('Size must be an integer greater than zero.');
-    }
-    const chunkLength = Math.ceil(arr.length / size);
-    const result = Array(chunkLength);
-    for (let index = 0; index < chunkLength; index++) {
-        const start = index * size;
-        const end = start + size;
-        result[index] = arr.slice(start, end);
-    }
-    return result;
-}
-
-exports.chunk = chunk;
Index: de_modules/es-toolkit/dist/array/chunk.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-function chunk(arr, size) {
-    if (!Number.isInteger(size) || size <= 0) {
-        throw new Error('Size must be an integer greater than zero.');
-    }
-    const chunkLength = Math.ceil(arr.length / size);
-    const result = Array(chunkLength);
-    for (let index = 0; index < chunkLength; index++) {
-        const start = index * size;
-        const end = start + size;
-        result[index] = arr.slice(start, end);
-    }
-    return result;
-}
-
-export { chunk };
Index: de_modules/es-toolkit/dist/array/compact.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/compact.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-type NotFalsey<T> = Exclude<T, false | null | 0 | 0n | '' | undefined>;
-/**
- * Removes falsey values (false, null, 0, -0, 0n, '', undefined, NaN) from an array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The input array to remove falsey values.
- * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
- *
- * @example
- * compact([0, -0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
- * Returns: [1, 2, 3, 4, 5]
- */
-declare function compact<T>(arr: readonly T[]): Array<NotFalsey<T>>;
-
-export { compact };
Index: de_modules/es-toolkit/dist/array/compact.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/compact.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-type NotFalsey<T> = Exclude<T, false | null | 0 | 0n | '' | undefined>;
-/**
- * Removes falsey values (false, null, 0, -0, 0n, '', undefined, NaN) from an array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The input array to remove falsey values.
- * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
- *
- * @example
- * compact([0, -0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
- * Returns: [1, 2, 3, 4, 5]
- */
-declare function compact<T>(arr: readonly T[]): Array<NotFalsey<T>>;
-
-export { compact };
Index: de_modules/es-toolkit/dist/array/compact.js
===================================================================
--- node_modules/es-toolkit/dist/array/compact.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function compact(arr) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (item) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-exports.compact = compact;
Index: de_modules/es-toolkit/dist/array/compact.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/compact.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function compact(arr) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (item) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-export { compact };
Index: de_modules/es-toolkit/dist/array/countBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Count the occurrences of each item in an array
- * based on a transformation function.
- *
- * This function takes an array and a transformation function
- * that converts each item in the array to a key. It then
- * counts the occurrences of each transformed item and returns
- * an object with the transformed items as keys and the counts
- * as values.
- *
- * @template T - The type of the items in the input array.
- * @template K - The type of keys.
- * @param {T[]} arr - The input array to count occurrences.
- * @param {(item: T, index: number, array: readonly T[]) => K} mapper - The transformation function that maps each item, its index, and the array to a key.
- * @returns {Record<K, number>} An object containing the transformed items as keys and the
- * counts as values.
- *
- * @example
- * const array = ['a', 'b', 'c', 'a', 'b', 'a'];
- * const result = countBy(array, x => x);
- * // result will be { a: 3, b: 2, c: 1 }
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = countBy(array, item => item % 2 === 0 ? 'even' : 'odd');
- * // result will be { odd: 3, even: 2 }
- *
- * @example
- * // Using index parameter
- * const array = ['a', 'b', 'c', 'd'];
- * const result = countBy(array, (item, index) => index < 2 ? 'first' : 'rest');
- * // result will be { first: 2, rest: 2 }
- */
-declare function countBy<T, K extends PropertyKey>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => K): Record<K, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/array/countBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Count the occurrences of each item in an array
- * based on a transformation function.
- *
- * This function takes an array and a transformation function
- * that converts each item in the array to a key. It then
- * counts the occurrences of each transformed item and returns
- * an object with the transformed items as keys and the counts
- * as values.
- *
- * @template T - The type of the items in the input array.
- * @template K - The type of keys.
- * @param {T[]} arr - The input array to count occurrences.
- * @param {(item: T, index: number, array: readonly T[]) => K} mapper - The transformation function that maps each item, its index, and the array to a key.
- * @returns {Record<K, number>} An object containing the transformed items as keys and the
- * counts as values.
- *
- * @example
- * const array = ['a', 'b', 'c', 'a', 'b', 'a'];
- * const result = countBy(array, x => x);
- * // result will be { a: 3, b: 2, c: 1 }
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = countBy(array, item => item % 2 === 0 ? 'even' : 'odd');
- * // result will be { odd: 3, even: 2 }
- *
- * @example
- * // Using index parameter
- * const array = ['a', 'b', 'c', 'd'];
- * const result = countBy(array, (item, index) => index < 2 ? 'first' : 'rest');
- * // result will be { first: 2, rest: 2 }
- */
-declare function countBy<T, K extends PropertyKey>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => K): Record<K, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/array/countBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function countBy(arr, mapper) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = mapper(item, i, arr);
-        result[key] = (result[key] ?? 0) + 1;
-    }
-    return result;
-}
-
-exports.countBy = countBy;
Index: de_modules/es-toolkit/dist/array/countBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function countBy(arr, mapper) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = mapper(item, i, arr);
-        result[key] = (result[key] ?? 0) + 1;
-    }
-    return result;
-}
-
-export { countBy };
Index: de_modules/es-toolkit/dist/array/difference.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/difference.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Computes the difference between two arrays.
- *
- * This function takes two arrays and returns a new array containing the elements
- * that are present in the first array but not in the second array. It effectively
- * filters out any elements from the first array that also appear in the second array.
- *
- * @template T
- * @param {T[]} firstArr - The array from which to derive the difference. This is the primary array
- * from which elements will be compared and filtered.
- * @param {T[]} secondArr - The array containing elements to be excluded from the first array.
- * Each element in this array will be checked against the first array, and if a match is found,
- * that element will be excluded from the result.
- * @returns {T[]} A new array containing the elements that are present in the first array but not
- * in the second array.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [2, 4];
- * const result = difference(array1, array2);
- * // result will be [1, 3, 5] since 2 and 4 are in both arrays and are excluded from the result.
- */
-declare function difference<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
-
-export { difference };
Index: de_modules/es-toolkit/dist/array/difference.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/difference.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Computes the difference between two arrays.
- *
- * This function takes two arrays and returns a new array containing the elements
- * that are present in the first array but not in the second array. It effectively
- * filters out any elements from the first array that also appear in the second array.
- *
- * @template T
- * @param {T[]} firstArr - The array from which to derive the difference. This is the primary array
- * from which elements will be compared and filtered.
- * @param {T[]} secondArr - The array containing elements to be excluded from the first array.
- * Each element in this array will be checked against the first array, and if a match is found,
- * that element will be excluded from the result.
- * @returns {T[]} A new array containing the elements that are present in the first array but not
- * in the second array.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [2, 4];
- * const result = difference(array1, array2);
- * // result will be [1, 3, 5] since 2 and 4 are in both arrays and are excluded from the result.
- */
-declare function difference<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
-
-export { difference };
Index: de_modules/es-toolkit/dist/array/difference.js
===================================================================
--- node_modules/es-toolkit/dist/array/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function difference(firstArr, secondArr) {
-    const secondSet = new Set(secondArr);
-    return firstArr.filter(item => !secondSet.has(item));
-}
-
-exports.difference = difference;
Index: de_modules/es-toolkit/dist/array/difference.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/difference.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-function difference(firstArr, secondArr) {
-    const secondSet = new Set(secondArr);
-    return firstArr.filter(item => !secondSet.has(item));
-}
-
-export { difference };
Index: de_modules/es-toolkit/dist/array/differenceBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Computes the difference between two arrays after mapping their elements through a provided function.
- *
- * This function takes two arrays and a mapper function. It returns a new array containing the elements
- * that are present in the first array but not in the second array, based on the identity calculated
- * by the mapper function.
- *
- * Essentially, it filters out any elements from the first array that, when
- * mapped, match an element in the mapped version of the second array.
- *
- * @template T, U
- * @param {T[]} firstArr - The primary array from which to derive the difference.
- * @param {U[]} secondArr - The array containing elements to be excluded from the first array.
- * @param {(value: T | U) => unknown} mapper - The function to map the elements of both arrays. This function
- * is applied to each element in both arrays, and the comparison is made based on the mapped values.
- * @returns {T[]} A new array containing the elements from the first array that do not have a corresponding
- * mapped identity in the second array.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const mapper = item => item.id;
- * const result = differenceBy(array1, array2, mapper);
- * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are in both arrays and are excluded from the result.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [2, 4];
- * const mapper = item => (typeof item === 'object' ? item.id : item);
- * const result = differenceBy(array1, array2, mapper);
- * // result will be [{ id: 1 }, { id: 3 }] since 2 is present in both arrays after mapping, and is excluded from the result.
- */
-declare function differenceBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (value: T | U) => unknown): T[];
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/array/differenceBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Computes the difference between two arrays after mapping their elements through a provided function.
- *
- * This function takes two arrays and a mapper function. It returns a new array containing the elements
- * that are present in the first array but not in the second array, based on the identity calculated
- * by the mapper function.
- *
- * Essentially, it filters out any elements from the first array that, when
- * mapped, match an element in the mapped version of the second array.
- *
- * @template T, U
- * @param {T[]} firstArr - The primary array from which to derive the difference.
- * @param {U[]} secondArr - The array containing elements to be excluded from the first array.
- * @param {(value: T | U) => unknown} mapper - The function to map the elements of both arrays. This function
- * is applied to each element in both arrays, and the comparison is made based on the mapped values.
- * @returns {T[]} A new array containing the elements from the first array that do not have a corresponding
- * mapped identity in the second array.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const mapper = item => item.id;
- * const result = differenceBy(array1, array2, mapper);
- * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are in both arrays and are excluded from the result.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [2, 4];
- * const mapper = item => (typeof item === 'object' ? item.id : item);
- * const result = differenceBy(array1, array2, mapper);
- * // result will be [{ id: 1 }, { id: 3 }] since 2 is present in both arrays after mapping, and is excluded from the result.
- */
-declare function differenceBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (value: T | U) => unknown): T[];
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/array/differenceBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function differenceBy(firstArr, secondArr, mapper) {
-    const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));
-    return firstArr.filter(item => {
-        return !mappedSecondSet.has(mapper(item));
-    });
-}
-
-exports.differenceBy = differenceBy;
Index: de_modules/es-toolkit/dist/array/differenceBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function differenceBy(firstArr, secondArr, mapper) {
-    const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));
-    return firstArr.filter(item => {
-        return !mappedSecondSet.has(mapper(item));
-    });
-}
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/array/differenceWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Computes the difference between two arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom comparison function. It returns a new array containing
- * the elements that are present in the first array but not in the second array. The comparison to determine
- * if elements are equal is made using the provided custom function.
- *
- * @template T, U
- * @param {T[]} firstArr - The array from which to get the difference.
- * @param {U[]} secondArr - The array containing elements to exclude from the first array.
- * @param {(x: T, y: U) => boolean} areItemsEqual - A function to determine if two items are equal.
- * @returns {T[]} A new array containing the elements from the first array that do not match any elements in the second array
- * according to the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = differenceWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are considered equal and are excluded from the result.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [2, 4];
- * const areItemsEqual = (a, b) => a.id === b;
- * const result = differenceWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 3 }] since the element with id 2 is considered equal to the second array's element and is excluded from the result.
- */
-declare function differenceWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/array/differenceWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Computes the difference between two arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom comparison function. It returns a new array containing
- * the elements that are present in the first array but not in the second array. The comparison to determine
- * if elements are equal is made using the provided custom function.
- *
- * @template T, U
- * @param {T[]} firstArr - The array from which to get the difference.
- * @param {U[]} secondArr - The array containing elements to exclude from the first array.
- * @param {(x: T, y: U) => boolean} areItemsEqual - A function to determine if two items are equal.
- * @returns {T[]} A new array containing the elements from the first array that do not match any elements in the second array
- * according to the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = differenceWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are considered equal and are excluded from the result.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [2, 4];
- * const areItemsEqual = (a, b) => a.id === b;
- * const result = differenceWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 3 }] since the element with id 2 is considered equal to the second array's element and is excluded from the result.
- */
-declare function differenceWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/array/differenceWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function differenceWith(firstArr, secondArr, areItemsEqual) {
-    return firstArr.filter(firstItem => {
-        return secondArr.every(secondItem => {
-            return !areItemsEqual(firstItem, secondItem);
-        });
-    });
-}
-
-exports.differenceWith = differenceWith;
Index: de_modules/es-toolkit/dist/array/differenceWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function differenceWith(firstArr, secondArr, areItemsEqual) {
-    return firstArr.filter(firstItem => {
-        return secondArr.every(secondItem => {
-            return !areItemsEqual(firstItem, secondItem);
-        });
-    });
-}
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/array/drop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/drop.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes a specified number of elements from the beginning of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the start.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
- * @returns {T[]} A new array with the specified number of elements removed from the start.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = drop(array, 2);
- * // result will be [3, 4, 5] since the first two elements are dropped.
- */
-declare function drop<T>(arr: readonly T[], itemsCount: number): T[];
-
-export { drop };
Index: de_modules/es-toolkit/dist/array/drop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/drop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes a specified number of elements from the beginning of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the start.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
- * @returns {T[]} A new array with the specified number of elements removed from the start.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = drop(array, 2);
- * // result will be [3, 4, 5] since the first two elements are dropped.
- */
-declare function drop<T>(arr: readonly T[], itemsCount: number): T[];
-
-export { drop };
Index: de_modules/es-toolkit/dist/array/drop.js
===================================================================
--- node_modules/es-toolkit/dist/array/drop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function drop(arr, itemsCount) {
-    itemsCount = Math.max(itemsCount, 0);
-    return arr.slice(itemsCount);
-}
-
-exports.drop = drop;
Index: de_modules/es-toolkit/dist/array/drop.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/drop.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-function drop(arr, itemsCount) {
-    itemsCount = Math.max(itemsCount, 0);
-    return arr.slice(itemsCount);
-}
-
-export { drop };
Index: de_modules/es-toolkit/dist/array/dropRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes a specified number of elements from the end of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the end.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the end of the array.
- * @returns {T[]} A new array with the specified number of elements removed from the end.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRight(array, 2);
- * // result will be [1, 2, 3] since the last two elements are dropped.
- */
-declare function dropRight<T>(arr: readonly T[], itemsCount: number): T[];
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/array/dropRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes a specified number of elements from the end of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the end.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the end of the array.
- * @returns {T[]} A new array with the specified number of elements removed from the end.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRight(array, 2);
- * // result will be [1, 2, 3] since the last two elements are dropped.
- */
-declare function dropRight<T>(arr: readonly T[], itemsCount: number): T[];
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/array/dropRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function dropRight(arr, itemsCount) {
-    itemsCount = Math.min(-itemsCount, 0);
-    if (itemsCount === 0) {
-        return arr.slice();
-    }
-    return arr.slice(0, itemsCount);
-}
-
-exports.dropRight = dropRight;
Index: de_modules/es-toolkit/dist/array/dropRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function dropRight(arr, itemsCount) {
-    itemsCount = Math.min(-itemsCount, 0);
-    if (itemsCount === 0) {
-        return arr.slice();
-    }
-    return arr.slice(0, itemsCount);
-}
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/array/dropRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Removes elements from the end of an array until the predicate returns false.
- *
- * This function iterates over an array from the end and drops elements until the provided
- * predicate function returns false. It then returns a new array with the remaining elements.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
- * whether to continue dropping elements. The function is called with each element from the end,
- * and dropping continues as long as it returns true.
- * @returns {T[]} A new array with the elements remaining after the predicate returns false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRightWhile(array, x => x > 3);
- * // result will be [1, 2, 3] since elements greater than 3 are dropped from the end.
- */
-declare function dropRightWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/array/dropRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Removes elements from the end of an array until the predicate returns false.
- *
- * This function iterates over an array from the end and drops elements until the provided
- * predicate function returns false. It then returns a new array with the remaining elements.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
- * whether to continue dropping elements. The function is called with each element from the end,
- * and dropping continues as long as it returns true.
- * @returns {T[]} A new array with the elements remaining after the predicate returns false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRightWhile(array, x => x > 3);
- * // result will be [1, 2, 3] since elements greater than 3 are dropped from the end.
- */
-declare function dropRightWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/array/dropRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function dropRightWhile(arr, canContinueDropping) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        if (!canContinueDropping(arr[i], i, arr)) {
-            return arr.slice(0, i + 1);
-        }
-    }
-    return [];
-}
-
-exports.dropRightWhile = dropRightWhile;
Index: de_modules/es-toolkit/dist/array/dropRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function dropRightWhile(arr, canContinueDropping) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        if (!canContinueDropping(arr[i], i, arr)) {
-            return arr.slice(0, i + 1);
-        }
-    }
-    return [];
-}
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/array/dropWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Removes elements from the beginning of an array until the predicate returns false.
- *
- * This function iterates over an array and drops elements from the start until the provided
- * predicate function returns false. It then returns a new array with the remaining elements.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
- * whether to continue dropping elements. The function is called with each element, and dropping
- * continues as long as it returns true.
- * @returns {T[]} A new array with the elements remaining after the predicate returns false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropWhile(array, x => x < 3);
- * // result will be [3, 4, 5] since elements less than 3 are dropped.
- */
-declare function dropWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/array/dropWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Removes elements from the beginning of an array until the predicate returns false.
- *
- * This function iterates over an array and drops elements from the start until the provided
- * predicate function returns false. It then returns a new array with the remaining elements.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to drop elements.
- * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
- * whether to continue dropping elements. The function is called with each element, and dropping
- * continues as long as it returns true.
- * @returns {T[]} A new array with the elements remaining after the predicate returns false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropWhile(array, x => x < 3);
- * // result will be [3, 4, 5] since elements less than 3 are dropped.
- */
-declare function dropWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/array/dropWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function dropWhile(arr, canContinueDropping) {
-    const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));
-    if (dropEndIndex === -1) {
-        return [];
-    }
-    return arr.slice(dropEndIndex);
-}
-
-exports.dropWhile = dropWhile;
Index: de_modules/es-toolkit/dist/array/dropWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function dropWhile(arr, canContinueDropping) {
-    const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));
-    if (dropEndIndex === -1) {
-        return [];
-    }
-    return arr.slice(dropEndIndex);
-}
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/array/fill.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/fill.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-/**
- * Fills the whole array with a specified value.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of the value to fill the array with.
- * @param {unknown[]} array - The array to fill.
- * @param {T} value - The value to fill the array with.
- * @returns {T[]} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T>(array: unknown[], value: T): T[];
-/**
- * Fills elements of an array with a specified value from the start position up to the end of the array.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the array with.
- * @param {Array<T | U>} array - The array to fill.
- * @param {U} value - The value to fill the array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @returns {Array<T | U>} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T, U>(array: Array<T | U>, value: U, start: number): Array<T | U>;
-/**
- * Fills elements of an array with a specified value from the start position up to, but not including, the end position.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the array with.
- * @param {Array<T | U>} array - The array to fill.
- * @param {U} value - The value to fill the array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
- * @returns {Array<T | U>} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T, U>(array: Array<T | U>, value: U, start: number, end: number): Array<T | U>;
-
-export { fill };
Index: de_modules/es-toolkit/dist/array/fill.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/fill.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-/**
- * Fills the whole array with a specified value.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of the value to fill the array with.
- * @param {unknown[]} array - The array to fill.
- * @param {T} value - The value to fill the array with.
- * @returns {T[]} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T>(array: unknown[], value: T): T[];
-/**
- * Fills elements of an array with a specified value from the start position up to the end of the array.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the array with.
- * @param {Array<T | U>} array - The array to fill.
- * @param {U} value - The value to fill the array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @returns {Array<T | U>} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T, U>(array: Array<T | U>, value: U, start: number): Array<T | U>;
-/**
- * Fills elements of an array with a specified value from the start position up to, but not including, the end position.
- *
- * This function mutates the original array and replaces its elements with the provided value, starting from the specified
- * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
- * entire array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the array with.
- * @param {Array<T | U>} array - The array to fill.
- * @param {U} value - The value to fill the array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
- * @returns {Array<T | U>} The array with the filled values.
- *
- * @example
- * const array = [1, 2, 3];
- * const result = fill(array, 'a');
- * // => ['a', 'a', 'a']
- *
- * const result = fill(Array(3), 2);
- * // => [2, 2, 2]
- *
- * const result = fill([4, 6, 8, 10], '*', 1, 3);
- * // => [4, '*', '*', 10]
- *
- * const result = fill(array, '*', -2, -1);
- * // => [1, '*', 3]
- */
-declare function fill<T, U>(array: Array<T | U>, value: U, start: number, end: number): Array<T | U>;
-
-export { fill };
Index: de_modules/es-toolkit/dist/array/fill.js
===================================================================
--- node_modules/es-toolkit/dist/array/fill.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function fill(array, value, start = 0, end = array.length) {
-    const length = array.length;
-    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
-    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
-    for (let i = finalStart; i < finalEnd; i++) {
-        array[i] = value;
-    }
-    return array;
-}
-
-exports.fill = fill;
Index: de_modules/es-toolkit/dist/array/fill.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/fill.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function fill(array, value, start = 0, end = array.length) {
-    const length = array.length;
-    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
-    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
-    for (let i = finalStart; i < finalEnd; i++) {
-        array[i] = value;
-    }
-    return array;
-}
-
-export { fill };
Index: de_modules/es-toolkit/dist/array/filterAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-interface FilterAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Filters an array asynchronously using an async predicate function.
- *
- * Returns a promise that resolves to a new array containing only the elements
- * for which the predicate function returns a truthy value.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to filter.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<boolean>} predicate An async function that tests each element.
- * @param {FilterAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<T[]>} A promise that resolves to the filtered array.
- * @example
- * const users = [{ id: 1, active: true }, { id: 2, active: false }, { id: 3, active: true }];
- * const activeUsers = await filterAsync(users, async (user) => {
- *   return await checkUserStatus(user.id);
- * });
- * // Returns: [{ id: 1, active: true }, { id: 3, active: true }]
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3, 4, 5];
- * const evenNumbers = await filterAsync(
- *   numbers,
- *   async (n) => await isEvenAsync(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function filterAsync<T>(array: readonly T[], predicate: (item: T, index: number, array: readonly T[]) => Promise<boolean>, options?: FilterAsyncOptions): Promise<T[]>;
-
-export { filterAsync };
Index: de_modules/es-toolkit/dist/array/filterAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-interface FilterAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Filters an array asynchronously using an async predicate function.
- *
- * Returns a promise that resolves to a new array containing only the elements
- * for which the predicate function returns a truthy value.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to filter.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<boolean>} predicate An async function that tests each element.
- * @param {FilterAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<T[]>} A promise that resolves to the filtered array.
- * @example
- * const users = [{ id: 1, active: true }, { id: 2, active: false }, { id: 3, active: true }];
- * const activeUsers = await filterAsync(users, async (user) => {
- *   return await checkUserStatus(user.id);
- * });
- * // Returns: [{ id: 1, active: true }, { id: 3, active: true }]
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3, 4, 5];
- * const evenNumbers = await filterAsync(
- *   numbers,
- *   async (n) => await isEvenAsync(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function filterAsync<T>(array: readonly T[], predicate: (item: T, index: number, array: readonly T[]) => Promise<boolean>, options?: FilterAsyncOptions): Promise<T[]>;
-
-export { filterAsync };
Index: de_modules/es-toolkit/dist/array/filterAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const limitAsync = require('./limitAsync.js');
-
-async function filterAsync(array, predicate, options) {
-    if (options?.concurrency != null) {
-        predicate = limitAsync.limitAsync(predicate, options.concurrency);
-    }
-    const results = await Promise.all(array.map(predicate));
-    return array.filter((_, index) => results[index]);
-}
-
-exports.filterAsync = filterAsync;
Index: de_modules/es-toolkit/dist/array/filterAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { limitAsync } from './limitAsync.mjs';
-
-async function filterAsync(array, predicate, options) {
-    if (options?.concurrency != null) {
-        predicate = limitAsync(predicate, options.concurrency);
-    }
-    const results = await Promise.all(array.map(predicate));
-    return array.filter((_, index) => results[index]);
-}
-
-export { filterAsync };
Index: de_modules/es-toolkit/dist/array/flatMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Maps each element in the array using the iteratee function and flattens the result up to the specified depth.
- *
- * @template T - The type of elements within the array.
- * @template U - The type of elements within the returned array from the iteratee function.
- * @template D - The depth to which the array should be flattened.
- * @param {T[]} arr - The array to flatten.
- * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
- * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
- * @returns {Array<FlatArray<U[], D>>} The new array with the mapped and flattened elements.
- *
- * @example
- * const arr = [1, 2, 3];
- *
- * flatMap(arr, (item: number) => [item, item]);
- * // [1, 1, 2, 2, 3, 3]
- *
- * flatMap(arr, (item: number) => [[item, item]], 2);
- * // [1, 1, 2, 2, 3, 3]
- */
-declare function flatMap<T, U, D extends number = 1>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U, depth?: D): Array<FlatArray<U[], D>>;
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/array/flatMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Maps each element in the array using the iteratee function and flattens the result up to the specified depth.
- *
- * @template T - The type of elements within the array.
- * @template U - The type of elements within the returned array from the iteratee function.
- * @template D - The depth to which the array should be flattened.
- * @param {T[]} arr - The array to flatten.
- * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
- * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
- * @returns {Array<FlatArray<U[], D>>} The new array with the mapped and flattened elements.
- *
- * @example
- * const arr = [1, 2, 3];
- *
- * flatMap(arr, (item: number) => [item, item]);
- * // [1, 1, 2, 2, 3, 3]
- *
- * flatMap(arr, (item: number) => [[item, item]], 2);
- * // [1, 1, 2, 2, 3, 3]
- */
-declare function flatMap<T, U, D extends number = 1>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U, depth?: D): Array<FlatArray<U[], D>>;
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/array/flatMap.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('./flatten.js');
-
-function flatMap(arr, iteratee, depth = 1) {
-    return flatten.flatten(arr.map((item, index) => iteratee(item, index, arr)), depth);
-}
-
-exports.flatMap = flatMap;
Index: de_modules/es-toolkit/dist/array/flatMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flatten } from './flatten.mjs';
-
-function flatMap(arr, iteratee, depth = 1) {
-    return flatten(arr.map((item, index) => iteratee(item, index, arr)), depth);
-}
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/array/flatMapAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-interface FlatMapAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Maps each element in an array using an async callback function and flattens the result by one level.
- *
- * This is equivalent to calling `mapAsync` followed by `flat(1)`, but more efficient.
- * Each callback should return an array, and all returned arrays are concatenated into
- * a single output array.
- *
- * @template T - The type of elements in the input array.
- * @template R - The type of elements in the arrays returned by the callback.
- * @param {readonly T[]} array The array to transform.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<R[]>} callback An async function that transforms each element into an array.
- * @param {FlatMapAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<R[]>} A promise that resolves to a flattened array of transformed values.
- * @example
- * const users = [{ id: 1 }, { id: 2 }];
- * const allPosts = await flatMapAsync(users, async (user) => {
- *   return await fetchUserPosts(user.id);
- * });
- * // Returns: [post1, post2, post3, ...] (all posts from all users)
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3];
- * const results = await flatMapAsync(
- *   numbers,
- *   async (n) => await fetchRelatedItems(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function flatMapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R[]>, options?: FlatMapAsyncOptions): Promise<R[]>;
-
-export { flatMapAsync };
Index: de_modules/es-toolkit/dist/array/flatMapAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-interface FlatMapAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Maps each element in an array using an async callback function and flattens the result by one level.
- *
- * This is equivalent to calling `mapAsync` followed by `flat(1)`, but more efficient.
- * Each callback should return an array, and all returned arrays are concatenated into
- * a single output array.
- *
- * @template T - The type of elements in the input array.
- * @template R - The type of elements in the arrays returned by the callback.
- * @param {readonly T[]} array The array to transform.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<R[]>} callback An async function that transforms each element into an array.
- * @param {FlatMapAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<R[]>} A promise that resolves to a flattened array of transformed values.
- * @example
- * const users = [{ id: 1 }, { id: 2 }];
- * const allPosts = await flatMapAsync(users, async (user) => {
- *   return await fetchUserPosts(user.id);
- * });
- * // Returns: [post1, post2, post3, ...] (all posts from all users)
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3];
- * const results = await flatMapAsync(
- *   numbers,
- *   async (n) => await fetchRelatedItems(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function flatMapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R[]>, options?: FlatMapAsyncOptions): Promise<R[]>;
-
-export { flatMapAsync };
Index: de_modules/es-toolkit/dist/array/flatMapAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('./flatten.js');
-const limitAsync = require('./limitAsync.js');
-
-async function flatMapAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync.limitAsync(callback, options.concurrency);
-    }
-    const results = await Promise.all(array.map(callback));
-    return flatten.flatten(results);
-}
-
-exports.flatMapAsync = flatMapAsync;
Index: de_modules/es-toolkit/dist/array/flatMapAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { flatten } from './flatten.mjs';
-import { limitAsync } from './limitAsync.mjs';
-
-async function flatMapAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync(callback, options.concurrency);
-    }
-    const results = await Promise.all(array.map(callback));
-    return flatten(results);
-}
-
-export { flatMapAsync };
Index: de_modules/es-toolkit/dist/array/flatMapDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { ExtractNestedArrayType } from './flattenDeep.mjs';
-
-/**
- * Recursively maps each element in an array using a provided iteratee function and then deeply flattens the resulting array.
- *
- * @template T - The type of elements within the array.
- * @template U - The type of elements within the returned array from the iteratee function.
- * @param {T[]} arr - The array to flatten.
- * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
- * @returns {Array<ExtractNestedArrayType<U>>} A new array that has been flattened.
- *
- * @example
- * const result = flatMapDeep([1, 2, 3], n => [[n, n]]);
- * // [1, 1, 2, 2, 3, 3]
- */
-declare function flatMapDeep<T, U>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U): Array<ExtractNestedArrayType<U>>;
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/array/flatMapDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { ExtractNestedArrayType } from './flattenDeep.js';
-
-/**
- * Recursively maps each element in an array using a provided iteratee function and then deeply flattens the resulting array.
- *
- * @template T - The type of elements within the array.
- * @template U - The type of elements within the returned array from the iteratee function.
- * @param {T[]} arr - The array to flatten.
- * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
- * @returns {Array<ExtractNestedArrayType<U>>} A new array that has been flattened.
- *
- * @example
- * const result = flatMapDeep([1, 2, 3], n => [[n, n]]);
- * // [1, 1, 2, 2, 3, 3]
- */
-declare function flatMapDeep<T, U>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U): Array<ExtractNestedArrayType<U>>;
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/array/flatMapDeep.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flattenDeep = require('./flattenDeep.js');
-
-function flatMapDeep(arr, iteratee) {
-    return flattenDeep.flattenDeep(arr.map((item, index) => iteratee(item, index, arr)));
-}
-
-exports.flatMapDeep = flatMapDeep;
Index: de_modules/es-toolkit/dist/array/flatMapDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flattenDeep } from './flattenDeep.mjs';
-
-function flatMapDeep(arr, iteratee) {
-    return flattenDeep(arr.map((item, index) => iteratee(item, index, arr)));
-}
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/array/flatten.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Flattens an array up to the specified depth.
- *
- * @template T - The type of elements within the array.
- * @template D - The depth to which the array should be flattened.
- * @param {T[]} arr - The array to flatten.
- * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
- * @returns {Array<FlatArray<T[], D>>} A new array that has been flattened.
- *
- * @example
- * const arr = flatten([1, [2, 3], [4, [5, 6]]], 1);
- * // Returns: [1, 2, 3, 4, [5, 6]]
- *
- * const arr = flatten([1, [2, 3], [4, [5, 6]]], 2);
- * // Returns: [1, 2, 3, 4, 5, 6]
- */
-declare function flatten<T, D extends number = 1>(arr: readonly T[], depth?: D): Array<FlatArray<T[], D>>;
-
-export { flatten };
Index: de_modules/es-toolkit/dist/array/flatten.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Flattens an array up to the specified depth.
- *
- * @template T - The type of elements within the array.
- * @template D - The depth to which the array should be flattened.
- * @param {T[]} arr - The array to flatten.
- * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
- * @returns {Array<FlatArray<T[], D>>} A new array that has been flattened.
- *
- * @example
- * const arr = flatten([1, [2, 3], [4, [5, 6]]], 1);
- * // Returns: [1, 2, 3, 4, [5, 6]]
- *
- * const arr = flatten([1, [2, 3], [4, [5, 6]]], 2);
- * // Returns: [1, 2, 3, 4, 5, 6]
- */
-declare function flatten<T, D extends number = 1>(arr: readonly T[], depth?: D): Array<FlatArray<T[], D>>;
-
-export { flatten };
Index: de_modules/es-toolkit/dist/array/flatten.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function flatten(arr, depth = 1) {
-    const result = [];
-    const flooredDepth = Math.floor(depth);
-    const recursive = (arr, currentDepth) => {
-        for (let i = 0; i < arr.length; i++) {
-            const item = arr[i];
-            if (Array.isArray(item) && currentDepth < flooredDepth) {
-                recursive(item, currentDepth + 1);
-            }
-            else {
-                result.push(item);
-            }
-        }
-    };
-    recursive(arr, 0);
-    return result;
-}
-
-exports.flatten = flatten;
Index: de_modules/es-toolkit/dist/array/flatten.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-function flatten(arr, depth = 1) {
-    const result = [];
-    const flooredDepth = Math.floor(depth);
-    const recursive = (arr, currentDepth) => {
-        for (let i = 0; i < arr.length; i++) {
-            const item = arr[i];
-            if (Array.isArray(item) && currentDepth < flooredDepth) {
-                recursive(item, currentDepth + 1);
-            }
-            else {
-                result.push(item);
-            }
-        }
-    };
-    recursive(arr, 0);
-    return result;
-}
-
-export { flatten };
Index: de_modules/es-toolkit/dist/array/flattenDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Utility type for recursively unpacking nested array types to extract the type of the innermost element
- *
- * @example
- * ExtractNestedArrayType<(number | (number | number[])[])[]>
- * // number
- *
- * ExtractNestedArrayType<(boolean | (string | number[])[])[]>
- * // string | number | boolean
- */
-type ExtractNestedArrayType<T> = T extends ReadonlyArray<infer U> ? ExtractNestedArrayType<U> : T;
-/**
- * Flattens all depths of a nested array.
- *
- * @template T - The type of elements within the array.
- * @param {T[]} arr - The array to flatten.
- * @returns {Array<ExtractNestedArrayType<T>>} A new array that has been flattened.
- *
- * @example
- * const arr = flattenDeep([1, [2, [3]], [4, [5, 6]]]);
- * // Returns: [1, 2, 3, 4, 5, 6]
- */
-declare function flattenDeep<T>(arr: readonly T[]): Array<ExtractNestedArrayType<T>>;
-
-export { type ExtractNestedArrayType, flattenDeep };
Index: de_modules/es-toolkit/dist/array/flattenDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Utility type for recursively unpacking nested array types to extract the type of the innermost element
- *
- * @example
- * ExtractNestedArrayType<(number | (number | number[])[])[]>
- * // number
- *
- * ExtractNestedArrayType<(boolean | (string | number[])[])[]>
- * // string | number | boolean
- */
-type ExtractNestedArrayType<T> = T extends ReadonlyArray<infer U> ? ExtractNestedArrayType<U> : T;
-/**
- * Flattens all depths of a nested array.
- *
- * @template T - The type of elements within the array.
- * @param {T[]} arr - The array to flatten.
- * @returns {Array<ExtractNestedArrayType<T>>} A new array that has been flattened.
- *
- * @example
- * const arr = flattenDeep([1, [2, [3]], [4, [5, 6]]]);
- * // Returns: [1, 2, 3, 4, 5, 6]
- */
-declare function flattenDeep<T>(arr: readonly T[]): Array<ExtractNestedArrayType<T>>;
-
-export { type ExtractNestedArrayType, flattenDeep };
Index: de_modules/es-toolkit/dist/array/flattenDeep.js
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('./flatten.js');
-
-function flattenDeep(arr) {
-    return flatten.flatten(arr, Infinity);
-}
-
-exports.flattenDeep = flattenDeep;
Index: de_modules/es-toolkit/dist/array/flattenDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flatten } from './flatten.mjs';
-
-function flattenDeep(arr) {
-    return flatten(arr, Infinity);
-}
-
-export { flattenDeep };
Index: de_modules/es-toolkit/dist/array/forEachAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-interface ForEachAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Executes an async callback function for each element in an array.
- *
- * Unlike the native `forEach`, this function returns a promise that resolves
- * when all async operations complete. It supports optional concurrency limiting.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to iterate over.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<void>} callback An async function to execute for each element.
- * @param {ForEachAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<void>} A promise that resolves when all operations complete.
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * await forEachAsync(users, async (user) => {
- *   await updateUser(user.id);
- * });
- * // All users have been updated
- *
- * @example
- * // With concurrency limit
- * const items = [1, 2, 3, 4, 5];
- * await forEachAsync(
- *   items,
- *   async (item) => await processItem(item),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 items concurrently
- */
-declare function forEachAsync<T>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<void>, options?: ForEachAsyncOptions): Promise<void>;
-
-export { forEachAsync };
Index: de_modules/es-toolkit/dist/array/forEachAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-interface ForEachAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Executes an async callback function for each element in an array.
- *
- * Unlike the native `forEach`, this function returns a promise that resolves
- * when all async operations complete. It supports optional concurrency limiting.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to iterate over.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<void>} callback An async function to execute for each element.
- * @param {ForEachAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<void>} A promise that resolves when all operations complete.
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * await forEachAsync(users, async (user) => {
- *   await updateUser(user.id);
- * });
- * // All users have been updated
- *
- * @example
- * // With concurrency limit
- * const items = [1, 2, 3, 4, 5];
- * await forEachAsync(
- *   items,
- *   async (item) => await processItem(item),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 items concurrently
- */
-declare function forEachAsync<T>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<void>, options?: ForEachAsyncOptions): Promise<void>;
-
-export { forEachAsync };
Index: de_modules/es-toolkit/dist/array/forEachAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const limitAsync = require('./limitAsync.js');
-
-async function forEachAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync.limitAsync(callback, options.concurrency);
-    }
-    await Promise.all(array.map(callback));
-}
-
-exports.forEachAsync = forEachAsync;
Index: de_modules/es-toolkit/dist/array/forEachAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { limitAsync } from './limitAsync.mjs';
-
-async function forEachAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync(callback, options.concurrency);
-    }
-    await Promise.all(array.map(callback));
-}
-
-export { forEachAsync };
Index: de_modules/es-toolkit/dist/array/forEachRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/**
- * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to iterate over.
- * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
- * The callback function receives three arguments:
- *  - 'value': The current element being processed in the array.
- *  - 'index': The index of the current element being processed in the array.
- *  - 'arr': The array 'forEachRight' was called upon.
- *
- * @example
- * const array = [1, 2, 3];
- * const result: number[] = [];
- *
- * // Use the forEachRight function to iterate through the array and add each element to the result array.
- * forEachRight(array, (value) => {
- *  result.push(value);
- * })
- *
- * console.log(result) // Output: [3, 2, 1]
- */
-declare function forEachRight<T>(arr: T[], callback: (value: T, index: number, arr: T[]) => void): void;
-/**
- * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to iterate over.
- * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
- * The callback function receives three arguments:
- *  - 'value': The current element being processed in the array.
- *  - 'index': The index of the current element being processed in the array.
- *  - 'arr': The array 'forEachRight' was called upon.
- *
- * @example
- * const array = [1, 2, 3];
- * const result: number[] = [];
- *
- * // Use the forEachRight function to iterate through the array and add each element to the result array.
- * forEachRight(array, (value) => {
- *  result.push(value);
- * })
- *
- * console.log(result) // Output: [3, 2, 1]
- */
-declare function forEachRight<T>(arr: readonly T[], callback: (value: T, index: number, arr: readonly T[]) => void): void;
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/array/forEachRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/**
- * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to iterate over.
- * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
- * The callback function receives three arguments:
- *  - 'value': The current element being processed in the array.
- *  - 'index': The index of the current element being processed in the array.
- *  - 'arr': The array 'forEachRight' was called upon.
- *
- * @example
- * const array = [1, 2, 3];
- * const result: number[] = [];
- *
- * // Use the forEachRight function to iterate through the array and add each element to the result array.
- * forEachRight(array, (value) => {
- *  result.push(value);
- * })
- *
- * console.log(result) // Output: [3, 2, 1]
- */
-declare function forEachRight<T>(arr: T[], callback: (value: T, index: number, arr: T[]) => void): void;
-/**
- * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to iterate over.
- * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
- * The callback function receives three arguments:
- *  - 'value': The current element being processed in the array.
- *  - 'index': The index of the current element being processed in the array.
- *  - 'arr': The array 'forEachRight' was called upon.
- *
- * @example
- * const array = [1, 2, 3];
- * const result: number[] = [];
- *
- * // Use the forEachRight function to iterate through the array and add each element to the result array.
- * forEachRight(array, (value) => {
- *  result.push(value);
- * })
- *
- * console.log(result) // Output: [3, 2, 1]
- */
-declare function forEachRight<T>(arr: readonly T[], callback: (value: T, index: number, arr: readonly T[]) => void): void;
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/array/forEachRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function forEachRight(arr, callback) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        const element = arr[i];
-        callback(element, i, arr);
-    }
-}
-
-exports.forEachRight = forEachRight;
Index: de_modules/es-toolkit/dist/array/forEachRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function forEachRight(arr, callback) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        const element = arr[i];
-        callback(element, i, arr);
-    }
-}
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/array/groupBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/**
- * Groups the elements of an array based on a provided key-generating function.
- *
- * This function takes an array and a function that generates a key from each element. It returns
- * an object where the keys are the generated keys and the values are arrays of elements that share
- * the same key.
- *
- * @template T - The type of elements in the array.
- * @template K - The type of keys.
- * @param {T[]} arr - The array to group.
- * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
- * @returns {Record<K, T[]>} An object where each key is associated with an array of elements that
- * share that key.
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' }
- * ];
- * const result = groupBy(array, item => item.category);
- * // result will be:
- * // {
- * //   fruit: [
- * //     { category: 'fruit', name: 'apple' },
- * //     { category: 'fruit', name: 'banana' }
- * //   ],
- * //   vegetable: [
- * //     { category: 'vegetable', name: 'carrot' }
- * //   ]
- * // }
- *
- * @example
- * // Using index parameter
- * const items = ['a', 'b', 'c', 'd'];
- * const result = groupBy(items, (item, index) => index % 2 === 0 ? 'even' : 'odd');
- * // result will be: { even: ['a', 'c'], odd: ['b', 'd'] }
- */
-declare function groupBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T[]>;
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/array/groupBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/**
- * Groups the elements of an array based on a provided key-generating function.
- *
- * This function takes an array and a function that generates a key from each element. It returns
- * an object where the keys are the generated keys and the values are arrays of elements that share
- * the same key.
- *
- * @template T - The type of elements in the array.
- * @template K - The type of keys.
- * @param {T[]} arr - The array to group.
- * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
- * @returns {Record<K, T[]>} An object where each key is associated with an array of elements that
- * share that key.
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' }
- * ];
- * const result = groupBy(array, item => item.category);
- * // result will be:
- * // {
- * //   fruit: [
- * //     { category: 'fruit', name: 'apple' },
- * //     { category: 'fruit', name: 'banana' }
- * //   ],
- * //   vegetable: [
- * //     { category: 'vegetable', name: 'carrot' }
- * //   ]
- * // }
- *
- * @example
- * // Using index parameter
- * const items = ['a', 'b', 'c', 'd'];
- * const result = groupBy(items, (item, index) => index % 2 === 0 ? 'even' : 'odd');
- * // result will be: { even: ['a', 'c'], odd: ['b', 'd'] }
- */
-declare function groupBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T[]>;
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/array/groupBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function groupBy(arr, getKeyFromItem) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = getKeyFromItem(item, i, arr);
-        if (!Object.hasOwn(result, key)) {
-            result[key] = [];
-        }
-        result[key].push(item);
-    }
-    return result;
-}
-
-exports.groupBy = groupBy;
Index: de_modules/es-toolkit/dist/array/groupBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function groupBy(arr, getKeyFromItem) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = getKeyFromItem(item, i, arr);
-        if (!Object.hasOwn(result, key)) {
-            result[key] = [];
-        }
-        result[key].push(item);
-    }
-    return result;
-}
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/array/head.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/head.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Returns the first element of an array.
- *
- * This function takes an array and returns the first element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} arr - A non-empty array from which to get the first element.
- * @returns {T} The first element of the array.
- *
- * @example
- * const arr = [1, 2, 3];
- * const firstElement = head(arr);
- * // firstElement will be 1
- */
-declare function head<T>(arr: readonly [T, ...T[]]): T;
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * This function takes an array and returns the first element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to get the first element.
- * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const emptyArr: number[] = [];
- * const noElement = head(emptyArr);
- * // noElement will be undefined
- */
-declare function head<T>(arr: readonly T[]): T | undefined;
-
-export { head };
Index: de_modules/es-toolkit/dist/array/head.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/head.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Returns the first element of an array.
- *
- * This function takes an array and returns the first element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} arr - A non-empty array from which to get the first element.
- * @returns {T} The first element of the array.
- *
- * @example
- * const arr = [1, 2, 3];
- * const firstElement = head(arr);
- * // firstElement will be 1
- */
-declare function head<T>(arr: readonly [T, ...T[]]): T;
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * This function takes an array and returns the first element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to get the first element.
- * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const emptyArr: number[] = [];
- * const noElement = head(emptyArr);
- * // noElement will be undefined
- */
-declare function head<T>(arr: readonly T[]): T | undefined;
-
-export { head };
Index: de_modules/es-toolkit/dist/array/head.js
===================================================================
--- node_modules/es-toolkit/dist/array/head.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function head(arr) {
-    return arr[0];
-}
-
-exports.head = head;
Index: de_modules/es-toolkit/dist/array/head.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/head.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function head(arr) {
-    return arr[0];
-}
-
-export { head };
Index: de_modules/es-toolkit/dist/array/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-export { at } from './at.mjs';
-export { chunk } from './chunk.mjs';
-export { compact } from './compact.mjs';
-export { countBy } from './countBy.mjs';
-export { difference } from './difference.mjs';
-export { differenceBy } from './differenceBy.mjs';
-export { differenceWith } from './differenceWith.mjs';
-export { drop } from './drop.mjs';
-export { dropRight } from './dropRight.mjs';
-export { dropRightWhile } from './dropRightWhile.mjs';
-export { dropWhile } from './dropWhile.mjs';
-export { fill } from './fill.mjs';
-export { filterAsync } from './filterAsync.mjs';
-export { flatMap } from './flatMap.mjs';
-export { flatMapAsync } from './flatMapAsync.mjs';
-export { flatMapDeep } from './flatMapDeep.mjs';
-export { flatten } from './flatten.mjs';
-export { flattenDeep } from './flattenDeep.mjs';
-export { forEachAsync } from './forEachAsync.mjs';
-export { forEachRight } from './forEachRight.mjs';
-export { groupBy } from './groupBy.mjs';
-export { head } from './head.mjs';
-export { initial } from './initial.mjs';
-export { intersection } from './intersection.mjs';
-export { intersectionBy } from './intersectionBy.mjs';
-export { intersectionWith } from './intersectionWith.mjs';
-export { isSubset } from './isSubset.mjs';
-export { isSubsetWith } from './isSubsetWith.mjs';
-export { keyBy } from './keyBy.mjs';
-export { last } from './last.mjs';
-export { limitAsync } from './limitAsync.mjs';
-export { mapAsync } from './mapAsync.mjs';
-export { maxBy } from './maxBy.mjs';
-export { minBy } from './minBy.mjs';
-export { orderBy } from './orderBy.mjs';
-export { partition } from './partition.mjs';
-export { pull } from './pull.mjs';
-export { pullAt } from './pullAt.mjs';
-export { reduceAsync } from './reduceAsync.mjs';
-export { remove } from './remove.mjs';
-export { sample } from './sample.mjs';
-export { sampleSize } from './sampleSize.mjs';
-export { shuffle } from './shuffle.mjs';
-export { sortBy } from './sortBy.mjs';
-export { tail } from './tail.mjs';
-export { take } from './take.mjs';
-export { takeRight } from './takeRight.mjs';
-export { takeRightWhile } from './takeRightWhile.mjs';
-export { takeWhile } from './takeWhile.mjs';
-export { toFilled } from './toFilled.mjs';
-export { union } from './union.mjs';
-export { unionBy } from './unionBy.mjs';
-export { unionWith } from './unionWith.mjs';
-export { uniq } from './uniq.mjs';
-export { uniqBy } from './uniqBy.mjs';
-export { uniqWith } from './uniqWith.mjs';
-export { unzip } from './unzip.mjs';
-export { unzipWith } from './unzipWith.mjs';
-export { windowed } from './windowed.mjs';
-export { without } from './without.mjs';
-export { xor } from './xor.mjs';
-export { xorBy } from './xorBy.mjs';
-export { xorWith } from './xorWith.mjs';
-export { zip } from './zip.mjs';
-export { zipObject } from './zipObject.mjs';
-export { zipWith } from './zipWith.mjs';
Index: de_modules/es-toolkit/dist/array/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-export { at } from './at.js';
-export { chunk } from './chunk.js';
-export { compact } from './compact.js';
-export { countBy } from './countBy.js';
-export { difference } from './difference.js';
-export { differenceBy } from './differenceBy.js';
-export { differenceWith } from './differenceWith.js';
-export { drop } from './drop.js';
-export { dropRight } from './dropRight.js';
-export { dropRightWhile } from './dropRightWhile.js';
-export { dropWhile } from './dropWhile.js';
-export { fill } from './fill.js';
-export { filterAsync } from './filterAsync.js';
-export { flatMap } from './flatMap.js';
-export { flatMapAsync } from './flatMapAsync.js';
-export { flatMapDeep } from './flatMapDeep.js';
-export { flatten } from './flatten.js';
-export { flattenDeep } from './flattenDeep.js';
-export { forEachAsync } from './forEachAsync.js';
-export { forEachRight } from './forEachRight.js';
-export { groupBy } from './groupBy.js';
-export { head } from './head.js';
-export { initial } from './initial.js';
-export { intersection } from './intersection.js';
-export { intersectionBy } from './intersectionBy.js';
-export { intersectionWith } from './intersectionWith.js';
-export { isSubset } from './isSubset.js';
-export { isSubsetWith } from './isSubsetWith.js';
-export { keyBy } from './keyBy.js';
-export { last } from './last.js';
-export { limitAsync } from './limitAsync.js';
-export { mapAsync } from './mapAsync.js';
-export { maxBy } from './maxBy.js';
-export { minBy } from './minBy.js';
-export { orderBy } from './orderBy.js';
-export { partition } from './partition.js';
-export { pull } from './pull.js';
-export { pullAt } from './pullAt.js';
-export { reduceAsync } from './reduceAsync.js';
-export { remove } from './remove.js';
-export { sample } from './sample.js';
-export { sampleSize } from './sampleSize.js';
-export { shuffle } from './shuffle.js';
-export { sortBy } from './sortBy.js';
-export { tail } from './tail.js';
-export { take } from './take.js';
-export { takeRight } from './takeRight.js';
-export { takeRightWhile } from './takeRightWhile.js';
-export { takeWhile } from './takeWhile.js';
-export { toFilled } from './toFilled.js';
-export { union } from './union.js';
-export { unionBy } from './unionBy.js';
-export { unionWith } from './unionWith.js';
-export { uniq } from './uniq.js';
-export { uniqBy } from './uniqBy.js';
-export { uniqWith } from './uniqWith.js';
-export { unzip } from './unzip.js';
-export { unzipWith } from './unzipWith.js';
-export { windowed } from './windowed.js';
-export { without } from './without.js';
-export { xor } from './xor.js';
-export { xorBy } from './xorBy.js';
-export { xorWith } from './xorWith.js';
-export { zip } from './zip.js';
-export { zipObject } from './zipObject.js';
-export { zipWith } from './zipWith.js';
Index: de_modules/es-toolkit/dist/array/index.js
===================================================================
--- node_modules/es-toolkit/dist/array/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const at = require('./at.js');
-const chunk = require('./chunk.js');
-const compact = require('./compact.js');
-const countBy = require('./countBy.js');
-const difference = require('./difference.js');
-const differenceBy = require('./differenceBy.js');
-const differenceWith = require('./differenceWith.js');
-const drop = require('./drop.js');
-const dropRight = require('./dropRight.js');
-const dropRightWhile = require('./dropRightWhile.js');
-const dropWhile = require('./dropWhile.js');
-const fill = require('./fill.js');
-const filterAsync = require('./filterAsync.js');
-const flatMap = require('./flatMap.js');
-const flatMapAsync = require('./flatMapAsync.js');
-const flatMapDeep = require('./flatMapDeep.js');
-const flatten = require('./flatten.js');
-const flattenDeep = require('./flattenDeep.js');
-const forEachAsync = require('./forEachAsync.js');
-const forEachRight = require('./forEachRight.js');
-const groupBy = require('./groupBy.js');
-const head = require('./head.js');
-const initial = require('./initial.js');
-const intersection = require('./intersection.js');
-const intersectionBy = require('./intersectionBy.js');
-const intersectionWith = require('./intersectionWith.js');
-const isSubset = require('./isSubset.js');
-const isSubsetWith = require('./isSubsetWith.js');
-const keyBy = require('./keyBy.js');
-const last = require('./last.js');
-const limitAsync = require('./limitAsync.js');
-const mapAsync = require('./mapAsync.js');
-const maxBy = require('./maxBy.js');
-const minBy = require('./minBy.js');
-const orderBy = require('./orderBy.js');
-const partition = require('./partition.js');
-const pull = require('./pull.js');
-const pullAt = require('./pullAt.js');
-const reduceAsync = require('./reduceAsync.js');
-const remove = require('./remove.js');
-const sample = require('./sample.js');
-const sampleSize = require('./sampleSize.js');
-const shuffle = require('./shuffle.js');
-const sortBy = require('./sortBy.js');
-const tail = require('./tail.js');
-const take = require('./take.js');
-const takeRight = require('./takeRight.js');
-const takeRightWhile = require('./takeRightWhile.js');
-const takeWhile = require('./takeWhile.js');
-const toFilled = require('./toFilled.js');
-const union = require('./union.js');
-const unionBy = require('./unionBy.js');
-const unionWith = require('./unionWith.js');
-const uniq = require('./uniq.js');
-const uniqBy = require('./uniqBy.js');
-const uniqWith = require('./uniqWith.js');
-const unzip = require('./unzip.js');
-const unzipWith = require('./unzipWith.js');
-const windowed = require('./windowed.js');
-const without = require('./without.js');
-const xor = require('./xor.js');
-const xorBy = require('./xorBy.js');
-const xorWith = require('./xorWith.js');
-const zip = require('./zip.js');
-const zipObject = require('./zipObject.js');
-const zipWith = require('./zipWith.js');
-
-
-
-exports.at = at.at;
-exports.chunk = chunk.chunk;
-exports.compact = compact.compact;
-exports.countBy = countBy.countBy;
-exports.difference = difference.difference;
-exports.differenceBy = differenceBy.differenceBy;
-exports.differenceWith = differenceWith.differenceWith;
-exports.drop = drop.drop;
-exports.dropRight = dropRight.dropRight;
-exports.dropRightWhile = dropRightWhile.dropRightWhile;
-exports.dropWhile = dropWhile.dropWhile;
-exports.fill = fill.fill;
-exports.filterAsync = filterAsync.filterAsync;
-exports.flatMap = flatMap.flatMap;
-exports.flatMapAsync = flatMapAsync.flatMapAsync;
-exports.flatMapDeep = flatMapDeep.flatMapDeep;
-exports.flatten = flatten.flatten;
-exports.flattenDeep = flattenDeep.flattenDeep;
-exports.forEachAsync = forEachAsync.forEachAsync;
-exports.forEachRight = forEachRight.forEachRight;
-exports.groupBy = groupBy.groupBy;
-exports.head = head.head;
-exports.initial = initial.initial;
-exports.intersection = intersection.intersection;
-exports.intersectionBy = intersectionBy.intersectionBy;
-exports.intersectionWith = intersectionWith.intersectionWith;
-exports.isSubset = isSubset.isSubset;
-exports.isSubsetWith = isSubsetWith.isSubsetWith;
-exports.keyBy = keyBy.keyBy;
-exports.last = last.last;
-exports.limitAsync = limitAsync.limitAsync;
-exports.mapAsync = mapAsync.mapAsync;
-exports.maxBy = maxBy.maxBy;
-exports.minBy = minBy.minBy;
-exports.orderBy = orderBy.orderBy;
-exports.partition = partition.partition;
-exports.pull = pull.pull;
-exports.pullAt = pullAt.pullAt;
-exports.reduceAsync = reduceAsync.reduceAsync;
-exports.remove = remove.remove;
-exports.sample = sample.sample;
-exports.sampleSize = sampleSize.sampleSize;
-exports.shuffle = shuffle.shuffle;
-exports.sortBy = sortBy.sortBy;
-exports.tail = tail.tail;
-exports.take = take.take;
-exports.takeRight = takeRight.takeRight;
-exports.takeRightWhile = takeRightWhile.takeRightWhile;
-exports.takeWhile = takeWhile.takeWhile;
-exports.toFilled = toFilled.toFilled;
-exports.union = union.union;
-exports.unionBy = unionBy.unionBy;
-exports.unionWith = unionWith.unionWith;
-exports.uniq = uniq.uniq;
-exports.uniqBy = uniqBy.uniqBy;
-exports.uniqWith = uniqWith.uniqWith;
-exports.unzip = unzip.unzip;
-exports.unzipWith = unzipWith.unzipWith;
-exports.windowed = windowed.windowed;
-exports.without = without.without;
-exports.xor = xor.xor;
-exports.xorBy = xorBy.xorBy;
-exports.xorWith = xorWith.xorWith;
-exports.zip = zip.zip;
-exports.zipObject = zipObject.zipObject;
-exports.zipWith = zipWith.zipWith;
Index: de_modules/es-toolkit/dist/array/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-export { at } from './at.mjs';
-export { chunk } from './chunk.mjs';
-export { compact } from './compact.mjs';
-export { countBy } from './countBy.mjs';
-export { difference } from './difference.mjs';
-export { differenceBy } from './differenceBy.mjs';
-export { differenceWith } from './differenceWith.mjs';
-export { drop } from './drop.mjs';
-export { dropRight } from './dropRight.mjs';
-export { dropRightWhile } from './dropRightWhile.mjs';
-export { dropWhile } from './dropWhile.mjs';
-export { fill } from './fill.mjs';
-export { filterAsync } from './filterAsync.mjs';
-export { flatMap } from './flatMap.mjs';
-export { flatMapAsync } from './flatMapAsync.mjs';
-export { flatMapDeep } from './flatMapDeep.mjs';
-export { flatten } from './flatten.mjs';
-export { flattenDeep } from './flattenDeep.mjs';
-export { forEachAsync } from './forEachAsync.mjs';
-export { forEachRight } from './forEachRight.mjs';
-export { groupBy } from './groupBy.mjs';
-export { head } from './head.mjs';
-export { initial } from './initial.mjs';
-export { intersection } from './intersection.mjs';
-export { intersectionBy } from './intersectionBy.mjs';
-export { intersectionWith } from './intersectionWith.mjs';
-export { isSubset } from './isSubset.mjs';
-export { isSubsetWith } from './isSubsetWith.mjs';
-export { keyBy } from './keyBy.mjs';
-export { last } from './last.mjs';
-export { limitAsync } from './limitAsync.mjs';
-export { mapAsync } from './mapAsync.mjs';
-export { maxBy } from './maxBy.mjs';
-export { minBy } from './minBy.mjs';
-export { orderBy } from './orderBy.mjs';
-export { partition } from './partition.mjs';
-export { pull } from './pull.mjs';
-export { pullAt } from './pullAt.mjs';
-export { reduceAsync } from './reduceAsync.mjs';
-export { remove } from './remove.mjs';
-export { sample } from './sample.mjs';
-export { sampleSize } from './sampleSize.mjs';
-export { shuffle } from './shuffle.mjs';
-export { sortBy } from './sortBy.mjs';
-export { tail } from './tail.mjs';
-export { take } from './take.mjs';
-export { takeRight } from './takeRight.mjs';
-export { takeRightWhile } from './takeRightWhile.mjs';
-export { takeWhile } from './takeWhile.mjs';
-export { toFilled } from './toFilled.mjs';
-export { union } from './union.mjs';
-export { unionBy } from './unionBy.mjs';
-export { unionWith } from './unionWith.mjs';
-export { uniq } from './uniq.mjs';
-export { uniqBy } from './uniqBy.mjs';
-export { uniqWith } from './uniqWith.mjs';
-export { unzip } from './unzip.mjs';
-export { unzipWith } from './unzipWith.mjs';
-export { windowed } from './windowed.mjs';
-export { without } from './without.mjs';
-export { xor } from './xor.mjs';
-export { xorBy } from './xorBy.mjs';
-export { xorWith } from './xorWith.mjs';
-export { zip } from './zip.mjs';
-export { zipObject } from './zipObject.mjs';
-export { zipWith } from './zipWith.mjs';
Index: de_modules/es-toolkit/dist/array/initial.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/initial.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Returns an empty array when the input is a tuple containing exactly one element.
- *
- * @template T The type of the single element.
- * @param {[T]} arr - A tuple containing exactly one element.
- * @returns {[]} An empty array since there is only one element.
- *
- * @example
- * const array = [100] as const;
- * const result = initial(array);
- * // result will be []
- */
-declare function initial<T>(arr: readonly [T]): [];
-/**
- * Returns an empty array when the input array is empty.
- *
- * @returns {[]} Always returns an empty array for an empty input.
- *
- * @example
- * const array = [] as const;
- * const result = initial(array);
- * // result will be []
- */
-declare function initial(arr: readonly []): [];
-/**
- * Returns a new array containing all elements except the last one from a tuple with multiple elements.
- *
- * @template T The types of the initial elements.
- * @template U The type of the last element in the tuple.
- * @param {[...T[], U]} arr - A tuple with one or more elements.
- * @returns {T[]} A new array containing all but the last element of the tuple.
- *
- * @example
- * const array = ['apple', 'banana', 'cherry'] as const;
- * const result = initial(array);
- * // result will be ['apple', 'banana']
- */
-declare function initial<T, U>(arr: readonly [...T[], U]): T[];
-/**
- * Returns a new array containing all elements except the last one from the input array.
- * If the input array is empty or has only one element, the function returns an empty array.
- *
- * @template T The type of elements in the array.
- * @param {T[]} arr - The input array.
- * @returns {T[]} A new array containing all but the last element of the input array.
- *
- * @example
- * const arr = [1, 2, 3, 4];
- * const result = initial(arr);
- * // result will be [1, 2, 3]
- */
-declare function initial<T>(arr: readonly T[]): T[];
-
-export { initial };
Index: de_modules/es-toolkit/dist/array/initial.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/initial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Returns an empty array when the input is a tuple containing exactly one element.
- *
- * @template T The type of the single element.
- * @param {[T]} arr - A tuple containing exactly one element.
- * @returns {[]} An empty array since there is only one element.
- *
- * @example
- * const array = [100] as const;
- * const result = initial(array);
- * // result will be []
- */
-declare function initial<T>(arr: readonly [T]): [];
-/**
- * Returns an empty array when the input array is empty.
- *
- * @returns {[]} Always returns an empty array for an empty input.
- *
- * @example
- * const array = [] as const;
- * const result = initial(array);
- * // result will be []
- */
-declare function initial(arr: readonly []): [];
-/**
- * Returns a new array containing all elements except the last one from a tuple with multiple elements.
- *
- * @template T The types of the initial elements.
- * @template U The type of the last element in the tuple.
- * @param {[...T[], U]} arr - A tuple with one or more elements.
- * @returns {T[]} A new array containing all but the last element of the tuple.
- *
- * @example
- * const array = ['apple', 'banana', 'cherry'] as const;
- * const result = initial(array);
- * // result will be ['apple', 'banana']
- */
-declare function initial<T, U>(arr: readonly [...T[], U]): T[];
-/**
- * Returns a new array containing all elements except the last one from the input array.
- * If the input array is empty or has only one element, the function returns an empty array.
- *
- * @template T The type of elements in the array.
- * @param {T[]} arr - The input array.
- * @returns {T[]} A new array containing all but the last element of the input array.
- *
- * @example
- * const arr = [1, 2, 3, 4];
- * const result = initial(arr);
- * // result will be [1, 2, 3]
- */
-declare function initial<T>(arr: readonly T[]): T[];
-
-export { initial };
Index: de_modules/es-toolkit/dist/array/initial.js
===================================================================
--- node_modules/es-toolkit/dist/array/initial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function initial(arr) {
-    return arr.slice(0, -1);
-}
-
-exports.initial = initial;
Index: de_modules/es-toolkit/dist/array/initial.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/initial.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function initial(arr) {
-    return arr.slice(0, -1);
-}
-
-export { initial };
Index: de_modules/es-toolkit/dist/array/intersection.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns the intersection of two arrays.
- *
- * This function takes two arrays and returns a new array containing the elements that are
- * present in both arrays. It effectively filters out any elements from the first array that
- * are not found in the second array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {T[]} secondArr - The second array to compare.
- * @returns {T[]} A new array containing the elements that are present in both arrays.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [3, 4, 5, 6, 7];
- * const result = intersection(array1, array2);
- * // result will be [3, 4, 5] since these elements are in both arrays.
- */
-declare function intersection<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
-
-export { intersection };
Index: de_modules/es-toolkit/dist/array/intersection.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns the intersection of two arrays.
- *
- * This function takes two arrays and returns a new array containing the elements that are
- * present in both arrays. It effectively filters out any elements from the first array that
- * are not found in the second array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {T[]} secondArr - The second array to compare.
- * @returns {T[]} A new array containing the elements that are present in both arrays.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [3, 4, 5, 6, 7];
- * const result = intersection(array1, array2);
- * // result will be [3, 4, 5] since these elements are in both arrays.
- */
-declare function intersection<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
-
-export { intersection };
Index: de_modules/es-toolkit/dist/array/intersection.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function intersection(firstArr, secondArr) {
-    const secondSet = new Set(secondArr);
-    return firstArr.filter(item => secondSet.has(item));
-}
-
-exports.intersection = intersection;
Index: de_modules/es-toolkit/dist/array/intersection.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-function intersection(firstArr, secondArr) {
-    const secondSet = new Set(secondArr);
-    return firstArr.filter(item => secondSet.has(item));
-}
-
-export { intersection };
Index: de_modules/es-toolkit/dist/array/intersectionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Returns the intersection of two arrays based on a mapping function.
- *
- * This function takes two arrays and a mapping function. It returns a new array containing
- * the elements from the first array that, when mapped using the provided function, have matching
- * mapped elements in the second array. It effectively filters out any elements from the first array
- * that do not have corresponding mapped values in the second array.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {U[]} secondArr - The second array to compare.
- * @param {(item: T | U) => unknown} mapper - A function to map the elements of both arrays for comparison.
- * @returns {T[]} A new array containing the elements from the first array that have corresponding mapped values in the second array.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const mapper = item => item.id;
- * const result = intersectionBy(array1, array2, mapper);
- * // result will be [{ id: 2 }] since only this element has a matching id in both arrays.
- *
- * @example
- * const array1 = [
- *   { id: 1, name: 'jane' },
- *   { id: 2, name: 'amy' },
- *   { id: 3, name: 'michael' },
- * ];
- * const array2 = [2, 4];
- * const mapper = item => (typeof item === 'object' ? item.id : item);
- * const result = intersectionBy(array1, array2, mapper);
- * // result will be [{ id: 2, name: 'amy' }] since only this element has a matching id that is equal to seconds array's element.
- */
-declare function intersectionBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (item: T | U) => unknown): T[];
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/array/intersectionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Returns the intersection of two arrays based on a mapping function.
- *
- * This function takes two arrays and a mapping function. It returns a new array containing
- * the elements from the first array that, when mapped using the provided function, have matching
- * mapped elements in the second array. It effectively filters out any elements from the first array
- * that do not have corresponding mapped values in the second array.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {U[]} secondArr - The second array to compare.
- * @param {(item: T | U) => unknown} mapper - A function to map the elements of both arrays for comparison.
- * @returns {T[]} A new array containing the elements from the first array that have corresponding mapped values in the second array.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const mapper = item => item.id;
- * const result = intersectionBy(array1, array2, mapper);
- * // result will be [{ id: 2 }] since only this element has a matching id in both arrays.
- *
- * @example
- * const array1 = [
- *   { id: 1, name: 'jane' },
- *   { id: 2, name: 'amy' },
- *   { id: 3, name: 'michael' },
- * ];
- * const array2 = [2, 4];
- * const mapper = item => (typeof item === 'object' ? item.id : item);
- * const result = intersectionBy(array1, array2, mapper);
- * // result will be [{ id: 2, name: 'amy' }] since only this element has a matching id that is equal to seconds array's element.
- */
-declare function intersectionBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (item: T | U) => unknown): T[];
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/array/intersectionBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function intersectionBy(firstArr, secondArr, mapper) {
-    const result = [];
-    const mappedSecondSet = new Set(secondArr.map(mapper));
-    for (let i = 0; i < firstArr.length; i++) {
-        const item = firstArr[i];
-        const mappedItem = mapper(item);
-        if (mappedSecondSet.has(mappedItem)) {
-            result.push(item);
-            mappedSecondSet.delete(mappedItem);
-        }
-    }
-    return result;
-}
-
-exports.intersectionBy = intersectionBy;
Index: de_modules/es-toolkit/dist/array/intersectionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-function intersectionBy(firstArr, secondArr, mapper) {
-    const result = [];
-    const mappedSecondSet = new Set(secondArr.map(mapper));
-    for (let i = 0; i < firstArr.length; i++) {
-        const item = firstArr[i];
-        const mappedItem = mapper(item);
-        if (mappedSecondSet.has(mappedItem)) {
-            result.push(item);
-            mappedSecondSet.delete(mappedItem);
-        }
-    }
-    return result;
-}
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/array/intersectionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Returns the intersection of two arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom equality function. It returns a new array containing
- * the elements from the first array that have matching elements in the second array, as determined
- * by the custom equality function. It effectively filters out any elements from the first array that
- * do not have corresponding matches in the second array according to the equality function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {U[]} secondArr - The second array to compare.
- * @param {(x: T, y: U) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
- * This function takes two arguments, one from each array, and returns `true` if the elements are considered equal, and `false` otherwise.
- * @returns {T[]} A new array containing the elements from the first array that have corresponding matches in the second array according to the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = intersectionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 2 }] since this element has a matching id in both arrays.
- *
- * @example
- * const array1 = [
- *   { id: 1, name: 'jane' },
- *   { id: 2, name: 'amy' },
- *   { id: 3, name: 'michael' },
- * ];
- * const array2 = [2, 4];
- * const areItemsEqual = (a, b) => a.id === b;
- * const result = intersectionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 2, name: 'amy' }] since this element has a matching id that is equal to seconds array's element.
- */
-declare function intersectionWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/array/intersectionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Returns the intersection of two arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom equality function. It returns a new array containing
- * the elements from the first array that have matching elements in the second array, as determined
- * by the custom equality function. It effectively filters out any elements from the first array that
- * do not have corresponding matches in the second array according to the equality function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @param {T[]} firstArr - The first array to compare.
- * @param {U[]} secondArr - The second array to compare.
- * @param {(x: T, y: U) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
- * This function takes two arguments, one from each array, and returns `true` if the elements are considered equal, and `false` otherwise.
- * @returns {T[]} A new array containing the elements from the first array that have corresponding matches in the second array according to the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const array2 = [{ id: 2 }, { id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = intersectionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 2 }] since this element has a matching id in both arrays.
- *
- * @example
- * const array1 = [
- *   { id: 1, name: 'jane' },
- *   { id: 2, name: 'amy' },
- *   { id: 3, name: 'michael' },
- * ];
- * const array2 = [2, 4];
- * const areItemsEqual = (a, b) => a.id === b;
- * const result = intersectionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 2, name: 'amy' }] since this element has a matching id that is equal to seconds array's element.
- */
-declare function intersectionWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/array/intersectionWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function intersectionWith(firstArr, secondArr, areItemsEqual) {
-    return firstArr.filter(firstItem => {
-        return secondArr.some(secondItem => {
-            return areItemsEqual(firstItem, secondItem);
-        });
-    });
-}
-
-exports.intersectionWith = intersectionWith;
Index: de_modules/es-toolkit/dist/array/intersectionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function intersectionWith(firstArr, secondArr, areItemsEqual) {
-    return firstArr.filter(firstItem => {
-        return secondArr.some(secondItem => {
-            return areItemsEqual(firstItem, secondItem);
-        });
-    });
-}
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/array/isSubset.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the `subset` array is entirely contained within the `superset` array.
- *
- *
- * @template T - The type of elements contained in the arrays.
- * @param {T[]} superset - The array that may contain all elements of the subset.
- * @param {T[]} subset - The array to check against the superset.
- * @returns {boolean} - Returns `true` if all elements of the `subset` are present in the `superset`, otherwise returns `false`.
- *
- * @example
- * ```typescript
- * const superset = [1, 2, 3, 4, 5];
- * const subset = [2, 3, 4];
- * isSubset(superset, subset); // true
- * ```
- *
- * @example
- * ```typescript
- * const superset = ['a', 'b', 'c'];
- * const subset = ['a', 'd'];
- * isSubset(superset, subset); // false
- * ```
- */
-declare function isSubset<T>(superset: readonly T[], subset: readonly T[]): boolean;
-
-export { isSubset };
Index: de_modules/es-toolkit/dist/array/isSubset.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the `subset` array is entirely contained within the `superset` array.
- *
- *
- * @template T - The type of elements contained in the arrays.
- * @param {T[]} superset - The array that may contain all elements of the subset.
- * @param {T[]} subset - The array to check against the superset.
- * @returns {boolean} - Returns `true` if all elements of the `subset` are present in the `superset`, otherwise returns `false`.
- *
- * @example
- * ```typescript
- * const superset = [1, 2, 3, 4, 5];
- * const subset = [2, 3, 4];
- * isSubset(superset, subset); // true
- * ```
- *
- * @example
- * ```typescript
- * const superset = ['a', 'b', 'c'];
- * const subset = ['a', 'd'];
- * isSubset(superset, subset); // false
- * ```
- */
-declare function isSubset<T>(superset: readonly T[], subset: readonly T[]): boolean;
-
-export { isSubset };
Index: de_modules/es-toolkit/dist/array/isSubset.js
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const difference = require('./difference.js');
-
-function isSubset(superset, subset) {
-    return difference.difference(subset, superset).length === 0;
-}
-
-exports.isSubset = isSubset;
Index: de_modules/es-toolkit/dist/array/isSubset.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { difference } from './difference.mjs';
-
-function isSubset(superset, subset) {
-    return difference(subset, superset).length === 0;
-}
-
-export { isSubset };
Index: de_modules/es-toolkit/dist/array/isSubsetWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Checks if the `subset` array is entirely contained within the `superset` array based on a custom equality function.
- *
- * This function takes two arrays and a custom comparison function. It returns a boolean indicating
- * whether all elements in the subset array are present in the superset array, as determined by the provided
- * custom equality function.
- *
- * @template T - The type of elements contained in the arrays.
- * @param {T[]} superset - The array that may contain all elements of the subset.
- * @param {T[]} subset - The array to check against the superset.
- * @param {(x: T, y: T) => boolean} areItemsEqual - A function to determine if two items are equal.
- * @returns {boolean} - Returns `true` if all elements of the subset are present in the superset
- * according to the custom equality function, otherwise returns `false`.
- *
- * @example
- * ```typescript
- * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const subset = [{ id: 2 }, { id: 1 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * isSubsetWith(superset, subset, areItemsEqual); // true
- * ```
- *
- * @example
- * ```typescript
- * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const subset = [{ id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * isSubsetWith(superset, subset, areItemsEqual); // false
- * ```
- */
-declare function isSubsetWith<T>(superset: readonly T[], subset: readonly T[], areItemsEqual: (x: T, y: T) => boolean): boolean;
-
-export { isSubsetWith };
Index: de_modules/es-toolkit/dist/array/isSubsetWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Checks if the `subset` array is entirely contained within the `superset` array based on a custom equality function.
- *
- * This function takes two arrays and a custom comparison function. It returns a boolean indicating
- * whether all elements in the subset array are present in the superset array, as determined by the provided
- * custom equality function.
- *
- * @template T - The type of elements contained in the arrays.
- * @param {T[]} superset - The array that may contain all elements of the subset.
- * @param {T[]} subset - The array to check against the superset.
- * @param {(x: T, y: T) => boolean} areItemsEqual - A function to determine if two items are equal.
- * @returns {boolean} - Returns `true` if all elements of the subset are present in the superset
- * according to the custom equality function, otherwise returns `false`.
- *
- * @example
- * ```typescript
- * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const subset = [{ id: 2 }, { id: 1 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * isSubsetWith(superset, subset, areItemsEqual); // true
- * ```
- *
- * @example
- * ```typescript
- * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const subset = [{ id: 4 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * isSubsetWith(superset, subset, areItemsEqual); // false
- * ```
- */
-declare function isSubsetWith<T>(superset: readonly T[], subset: readonly T[], areItemsEqual: (x: T, y: T) => boolean): boolean;
-
-export { isSubsetWith };
Index: de_modules/es-toolkit/dist/array/isSubsetWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const differenceWith = require('./differenceWith.js');
-
-function isSubsetWith(superset, subset, areItemsEqual) {
-    return differenceWith.differenceWith(subset, superset, areItemsEqual).length === 0;
-}
-
-exports.isSubsetWith = isSubsetWith;
Index: de_modules/es-toolkit/dist/array/isSubsetWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { differenceWith } from './differenceWith.mjs';
-
-function isSubsetWith(superset, subset, areItemsEqual) {
-    return differenceWith(subset, superset, areItemsEqual).length === 0;
-}
-
-export { isSubsetWith };
Index: de_modules/es-toolkit/dist/array/keyBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Maps each element of an array based on a provided key-generating function.
- *
- * This function takes an array and a function that generates a key from each element. It returns
- * an object where the keys are the generated keys and the values are the corresponding elements.
- * If there are multiple elements generating the same key, the last element among them is used
- * as the value.
- *
- * @template T - The type of elements in the array.
- * @template K - The type of keys.
- * @param {T[]} arr - The array of elements to be mapped.
- * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
- * @returns {Record<K, T>} An object where keys are mapped to each element of an array.
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' }
- * ];
- * const result = keyBy(array, item => item.category);
- * // result will be:
- * // {
- * //   fruit: { category: 'fruit', name: 'banana' },
- * //   vegetable: { category: 'vegetable', name: 'carrot' }
- * // }
- *
- * @example
- * // Using index parameter
- * const items = ['a', 'b', 'c'];
- * const result = keyBy(items, (item, index) => index);
- * // result will be: { 0: 'a', 1: 'b', 2: 'c' }
- */
-declare function keyBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/array/keyBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Maps each element of an array based on a provided key-generating function.
- *
- * This function takes an array and a function that generates a key from each element. It returns
- * an object where the keys are the generated keys and the values are the corresponding elements.
- * If there are multiple elements generating the same key, the last element among them is used
- * as the value.
- *
- * @template T - The type of elements in the array.
- * @template K - The type of keys.
- * @param {T[]} arr - The array of elements to be mapped.
- * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
- * @returns {Record<K, T>} An object where keys are mapped to each element of an array.
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' }
- * ];
- * const result = keyBy(array, item => item.category);
- * // result will be:
- * // {
- * //   fruit: { category: 'fruit', name: 'banana' },
- * //   vegetable: { category: 'vegetable', name: 'carrot' }
- * // }
- *
- * @example
- * // Using index parameter
- * const items = ['a', 'b', 'c'];
- * const result = keyBy(items, (item, index) => index);
- * // result will be: { 0: 'a', 1: 'b', 2: 'c' }
- */
-declare function keyBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/array/keyBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function keyBy(arr, getKeyFromItem) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = getKeyFromItem(item, i, arr);
-        result[key] = item;
-    }
-    return result;
-}
-
-exports.keyBy = keyBy;
Index: de_modules/es-toolkit/dist/array/keyBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function keyBy(arr, getKeyFromItem) {
-    const result = {};
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = getKeyFromItem(item, i, arr);
-        result[key] = item;
-    }
-    return result;
-}
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/array/last.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/last.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {[...T[], T]} arr - The array from which to get the last element.
- * @returns {T} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(arr: readonly [...T[], T]): T;
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to get the last element.
- * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(arr: readonly T[]): T | undefined;
-
-export { last };
Index: de_modules/es-toolkit/dist/array/last.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/last.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {[...T[], T]} arr - The array from which to get the last element.
- * @returns {T} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(arr: readonly [...T[], T]): T;
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array from which to get the last element.
- * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(arr: readonly T[]): T | undefined;
-
-export { last };
Index: de_modules/es-toolkit/dist/array/last.js
===================================================================
--- node_modules/es-toolkit/dist/array/last.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function last(arr) {
-    return arr[arr.length - 1];
-}
-
-exports.last = last;
Index: de_modules/es-toolkit/dist/array/last.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/last.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function last(arr) {
-    return arr[arr.length - 1];
-}
-
-export { last };
Index: de_modules/es-toolkit/dist/array/limitAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Wraps an async function to limit the number of concurrent executions.
- *
- * This function creates a wrapper around an async callback that ensures at most
- * `concurrency` number of executions can run simultaneously. Additional calls will
- * wait until a slot becomes available.
- *
- * @template F - The type of the async function to wrap.
- * @param {F} callback The async function to wrap with concurrency control.
- * @param {number} concurrency Maximum number of concurrent executions allowed.
- * @returns {F} A wrapped version of the callback with concurrency limiting.
- * @example
- * const limitedFetch = limitAsync(async (url) => {
- *   return await fetch(url);
- * }, 3);
- *
- * // Only 3 fetches will run concurrently
- * const urls = ['url1', 'url2', 'url3', 'url4', 'url5'];
- * await Promise.all(urls.map(url => limitedFetch(url)));
- *
- * @example
- * const processItem = async (item) => {
- *   // Expensive async operation
- *   return await heavyComputation(item);
- * };
- *
- * const limitedProcess = limitAsync(processItem, 2);
- * const items = [1, 2, 3, 4, 5];
- * // At most 2 items will be processed concurrently
- * await Promise.all(items.map(item => limitedProcess(item)));
- */
-declare function limitAsync<F extends (...args: any[]) => Promise<any>>(callback: F, concurrency: number): F;
-
-export { limitAsync };
Index: de_modules/es-toolkit/dist/array/limitAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Wraps an async function to limit the number of concurrent executions.
- *
- * This function creates a wrapper around an async callback that ensures at most
- * `concurrency` number of executions can run simultaneously. Additional calls will
- * wait until a slot becomes available.
- *
- * @template F - The type of the async function to wrap.
- * @param {F} callback The async function to wrap with concurrency control.
- * @param {number} concurrency Maximum number of concurrent executions allowed.
- * @returns {F} A wrapped version of the callback with concurrency limiting.
- * @example
- * const limitedFetch = limitAsync(async (url) => {
- *   return await fetch(url);
- * }, 3);
- *
- * // Only 3 fetches will run concurrently
- * const urls = ['url1', 'url2', 'url3', 'url4', 'url5'];
- * await Promise.all(urls.map(url => limitedFetch(url)));
- *
- * @example
- * const processItem = async (item) => {
- *   // Expensive async operation
- *   return await heavyComputation(item);
- * };
- *
- * const limitedProcess = limitAsync(processItem, 2);
- * const items = [1, 2, 3, 4, 5];
- * // At most 2 items will be processed concurrently
- * await Promise.all(items.map(item => limitedProcess(item)));
- */
-declare function limitAsync<F extends (...args: any[]) => Promise<any>>(callback: F, concurrency: number): F;
-
-export { limitAsync };
Index: de_modules/es-toolkit/dist/array/limitAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const semaphore = require('../promise/semaphore.js');
-
-function limitAsync(callback, concurrency) {
-    const semaphore$1 = new semaphore.Semaphore(concurrency);
-    return async function (...args) {
-        try {
-            await semaphore$1.acquire();
-            return await callback.apply(this, args);
-        }
-        finally {
-            semaphore$1.release();
-        }
-    };
-}
-
-exports.limitAsync = limitAsync;
Index: de_modules/es-toolkit/dist/array/limitAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { Semaphore } from '../promise/semaphore.mjs';
-
-function limitAsync(callback, concurrency) {
-    const semaphore = new Semaphore(concurrency);
-    return async function (...args) {
-        try {
-            await semaphore.acquire();
-            return await callback.apply(this, args);
-        }
-        finally {
-            semaphore.release();
-        }
-    };
-}
-
-export { limitAsync };
Index: de_modules/es-toolkit/dist/array/mapAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-interface MapAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Transforms each element in an array using an async callback function and returns
- * a promise that resolves to an array of transformed values.
- *
- * @template T - The type of elements in the input array.
- * @template R - The type of elements in the output array.
- * @param {readonly T[]} array The array to transform.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<R>} callback An async function that transforms each element.
- * @param {MapAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<R[]>} A promise that resolves to an array of transformed values.
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const userDetails = await mapAsync(users, async (user) => {
- *   return await fetchUserDetails(user.id);
- * });
- * // Returns: [{ id: 1, name: '...' }, { id: 2, name: '...' }, { id: 3, name: '...' }]
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3, 4, 5];
- * const results = await mapAsync(
- *   numbers,
- *   async (n) => await slowOperation(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function mapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R>, options?: MapAsyncOptions): Promise<R[]>;
-
-export { mapAsync };
Index: de_modules/es-toolkit/dist/array/mapAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-interface MapAsyncOptions {
-    concurrency?: number;
-}
-/**
- * Transforms each element in an array using an async callback function and returns
- * a promise that resolves to an array of transformed values.
- *
- * @template T - The type of elements in the input array.
- * @template R - The type of elements in the output array.
- * @param {readonly T[]} array The array to transform.
- * @param {(item: T, index: number, array: readonly T[]) => Promise<R>} callback An async function that transforms each element.
- * @param {MapAsyncOptions} [options] Optional configuration object.
- * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
- * @returns {Promise<R[]>} A promise that resolves to an array of transformed values.
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const userDetails = await mapAsync(users, async (user) => {
- *   return await fetchUserDetails(user.id);
- * });
- * // Returns: [{ id: 1, name: '...' }, { id: 2, name: '...' }, { id: 3, name: '...' }]
- *
- * @example
- * // With concurrency limit
- * const numbers = [1, 2, 3, 4, 5];
- * const results = await mapAsync(
- *   numbers,
- *   async (n) => await slowOperation(n),
- *   { concurrency: 2 }
- * );
- * // Processes at most 2 operations concurrently
- */
-declare function mapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R>, options?: MapAsyncOptions): Promise<R[]>;
-
-export { mapAsync };
Index: de_modules/es-toolkit/dist/array/mapAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const limitAsync = require('./limitAsync.js');
-
-function mapAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync.limitAsync(callback, options.concurrency);
-    }
-    return Promise.all(array.map(callback));
-}
-
-exports.mapAsync = mapAsync;
Index: de_modules/es-toolkit/dist/array/mapAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { limitAsync } from './limitAsync.mjs';
-
-function mapAsync(array, callback, options) {
-    if (options?.concurrency != null) {
-        callback = limitAsync(callback, options.concurrency);
-    }
-    return Promise.all(array.map(callback));
-}
-
-export { mapAsync };
Index: de_modules/es-toolkit/dist/array/maxBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} items The nonempty array of elements to search.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {T} The element with the maximum value as determined by the `getValue` function.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- */
-declare function maxBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
- * @returns {T | undefined} The element with the maximum value as determined by the `getValue` function,
- * or `undefined` if the array is empty.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- */
-declare function maxBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/array/maxBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} items The nonempty array of elements to search.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {T} The element with the maximum value as determined by the `getValue` function.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- */
-declare function maxBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
- * @returns {T | undefined} The element with the maximum value as determined by the `getValue` function,
- * or `undefined` if the array is empty.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- */
-declare function maxBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/array/maxBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function maxBy(items, getValue) {
-    if (items.length === 0) {
-        return undefined;
-    }
-    let maxElement = items[0];
-    let max = getValue(maxElement, 0, items);
-    for (let i = 1; i < items.length; i++) {
-        const element = items[i];
-        const value = getValue(element, i, items);
-        if (value > max) {
-            max = value;
-            maxElement = element;
-        }
-    }
-    return maxElement;
-}
-
-exports.maxBy = maxBy;
Index: de_modules/es-toolkit/dist/array/maxBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function maxBy(items, getValue) {
-    if (items.length === 0) {
-        return undefined;
-    }
-    let maxElement = items[0];
-    let max = getValue(maxElement, 0, items);
-    for (let i = 1; i < items.length; i++) {
-        const element = items[i];
-        const value = getValue(element, i, items);
-        if (value > max) {
-            max = value;
-            maxElement = element;
-        }
-    }
-    return maxElement;
-}
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/array/minBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} items The nonempty array of elements to search.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {T} The element with the minimum value as determined by the `getValue` function.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- */
-declare function minBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
- * @returns {T | undefined} The element with the minimum value as determined by the `getValue` function,
- * or `undefined` if the array is empty.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- */
-declare function minBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
-
-export { minBy };
Index: de_modules/es-toolkit/dist/array/minBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {[T, ...T[]]} items The nonempty array of elements to search.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {T} The element with the minimum value as determined by the `getValue` function.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- */
-declare function minBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `getValue` function to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
- * @returns {T | undefined} The element with the minimum value as determined by the `getValue` function,
- * or `undefined` if the array is empty.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- */
-declare function minBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
-
-export { minBy };
Index: de_modules/es-toolkit/dist/array/minBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function minBy(items, getValue) {
-    if (items.length === 0) {
-        return undefined;
-    }
-    let minElement = items[0];
-    let min = getValue(minElement, 0, items);
-    for (let i = 1; i < items.length; i++) {
-        const element = items[i];
-        const value = getValue(element, i, items);
-        if (value < min) {
-            min = value;
-            minElement = element;
-        }
-    }
-    return minElement;
-}
-
-exports.minBy = minBy;
Index: de_modules/es-toolkit/dist/array/minBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function minBy(items, getValue) {
-    if (items.length === 0) {
-        return undefined;
-    }
-    let minElement = items[0];
-    let min = getValue(minElement, 0, items);
-    for (let i = 1; i < items.length; i++) {
-        const element = items[i];
-        const value = getValue(element, i, items);
-        if (value < min) {
-            min = value;
-            minElement = element;
-        }
-    }
-    return minElement;
-}
-
-export { minBy };
Index: de_modules/es-toolkit/dist/array/orderBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Sorts an array of objects based on the given `criteria` and their corresponding order directions.
- *
- * - If you provide keys, it sorts the objects by the values of those keys.
- * - If you provide functions, it sorts based on the values returned by those functions.
- *
- * The function returns the array of objects sorted in corresponding order directions.
- * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
- * If the number of orders is less than the number of criteria, it uses the last order for the rest of the criteria.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array of objects to be sorted.
- * @param {Array<((item: T) => unknown) | keyof T>} criteria  - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
- * @param {Array<'asc' | 'desc'>} orders - An array of order directions ('asc' for ascending or 'desc' for descending).
- * @returns {T[]} - The sorted array.
- *
- * @example
- * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
- * const users = [
- *   { user: 'fred', age: 48 },
- *   { user: 'barney', age: 34 },
- *   { user: 'fred', age: 40 },
- *   { user: 'barney', age: 36 },
- * ];
- *
- * const result = orderBy(users, [obj => obj.user, 'age'], ['asc', 'desc']);
- * // result will be:
- * // [
- * //   { user: 'barney', age: 36 },
- * //   { user: 'barney', age: 34 },
- * //   { user: 'fred', age: 48 },
- * //   { user: 'fred', age: 40 },
- * // ]
- */
-declare function orderBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): T[];
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/array/orderBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Sorts an array of objects based on the given `criteria` and their corresponding order directions.
- *
- * - If you provide keys, it sorts the objects by the values of those keys.
- * - If you provide functions, it sorts based on the values returned by those functions.
- *
- * The function returns the array of objects sorted in corresponding order directions.
- * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
- * If the number of orders is less than the number of criteria, it uses the last order for the rest of the criteria.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array of objects to be sorted.
- * @param {Array<((item: T) => unknown) | keyof T>} criteria  - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
- * @param {Array<'asc' | 'desc'>} orders - An array of order directions ('asc' for ascending or 'desc' for descending).
- * @returns {T[]} - The sorted array.
- *
- * @example
- * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
- * const users = [
- *   { user: 'fred', age: 48 },
- *   { user: 'barney', age: 34 },
- *   { user: 'fred', age: 40 },
- *   { user: 'barney', age: 36 },
- * ];
- *
- * const result = orderBy(users, [obj => obj.user, 'age'], ['asc', 'desc']);
- * // result will be:
- * // [
- * //   { user: 'barney', age: 36 },
- * //   { user: 'barney', age: 34 },
- * //   { user: 'fred', age: 48 },
- * //   { user: 'fred', age: 40 },
- * // ]
- */
-declare function orderBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): T[];
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/array/orderBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const compareValues = require('../_internal/compareValues.js');
-
-function orderBy(arr, criteria, orders) {
-    return arr.slice().sort((a, b) => {
-        const ordersLength = orders.length;
-        for (let i = 0; i < criteria.length; i++) {
-            const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];
-            const criterion = criteria[i];
-            const criterionIsFunction = typeof criterion === 'function';
-            const valueA = criterionIsFunction ? criterion(a) : a[criterion];
-            const valueB = criterionIsFunction ? criterion(b) : b[criterion];
-            const result = compareValues.compareValues(valueA, valueB, order);
-            if (result !== 0) {
-                return result;
-            }
-        }
-        return 0;
-    });
-}
-
-exports.orderBy = orderBy;
Index: de_modules/es-toolkit/dist/array/orderBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { compareValues } from '../_internal/compareValues.mjs';
-
-function orderBy(arr, criteria, orders) {
-    return arr.slice().sort((a, b) => {
-        const ordersLength = orders.length;
-        for (let i = 0; i < criteria.length; i++) {
-            const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];
-            const criterion = criteria[i];
-            const criterionIsFunction = typeof criterion === 'function';
-            const valueA = criterionIsFunction ? criterion(a) : a[criterion];
-            const valueB = criterionIsFunction ? criterion(b) : b[criterion];
-            const result = compareValues(valueA, valueB, order);
-            if (result !== 0) {
-                return result;
-            }
-        }
-        return 0;
-    });
-}
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/array/partition.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/partition.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Splits an array into two groups based on a predicate function.
- *
- * This function takes an array and a predicate function. It returns a tuple of two arrays:
- * the first array contains elements for which the predicate function returns true, and
- * the second array contains elements for which the predicate function returns false.
- *
- * @template T - The type of elements in the array.
- * @template {T} U - The type being filtered for.
- * @param {T[]} arr - The array to partition.
- * @param {(value: T, index: number, array: readonly T[]) => value is U} isInTruthy - A type guard that determines whether an
- * element should be placed in the truthy array. The function is called with each element
- * of the array and its index.
- * @returns {[U[], Exclude<T, U>[]]} A tuple containing two arrays: the first array contains elements for
- * which the predicate returned true, and the second array contains elements for which the
- * predicate returned false.
- *
- * @example
- * const array = [1, 2, 3, 4] as const;
- * const isEven = (x: number): x is 2 | 4 => x % 2 === 0;
- * const [even, odd]: [(2 | 4)[], (2 | 4)[]] = partition(array, isEven);
- * // even will be [2, 4], and odd will be [1, 3]
- */
-declare function partition<T, U extends T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => value is U): [truthy: U[], falsy: Array<Exclude<T, U>>];
-/**
- * Splits an array into two groups based on a predicate function.
- *
- * This function takes an array and a predicate function. It returns a tuple of two arrays:
- * the first array contains elements for which the predicate function returns true, and
- * the second array contains elements for which the predicate function returns false.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to partition.
- * @param {(value: T, index: number) => boolean} isInTruthy - A predicate function that determines
- * whether an element should be placed in the truthy array. The function is called with each
- * element of the array and its index.
- * @returns {[T[], T[]]} A tuple containing two arrays: the first array contains elements for
- * which the predicate returned true, and the second array contains elements for which the
- * predicate returned false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const isEven = x => x % 2 === 0;
- * const [even, odd] = partition(array, isEven);
- * // even will be [2, 4], and odd will be [1, 3, 5]
- */
-declare function partition<T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => boolean): [truthy: T[], falsy: T[]];
-
-export { partition };
Index: de_modules/es-toolkit/dist/array/partition.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/partition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Splits an array into two groups based on a predicate function.
- *
- * This function takes an array and a predicate function. It returns a tuple of two arrays:
- * the first array contains elements for which the predicate function returns true, and
- * the second array contains elements for which the predicate function returns false.
- *
- * @template T - The type of elements in the array.
- * @template {T} U - The type being filtered for.
- * @param {T[]} arr - The array to partition.
- * @param {(value: T, index: number, array: readonly T[]) => value is U} isInTruthy - A type guard that determines whether an
- * element should be placed in the truthy array. The function is called with each element
- * of the array and its index.
- * @returns {[U[], Exclude<T, U>[]]} A tuple containing two arrays: the first array contains elements for
- * which the predicate returned true, and the second array contains elements for which the
- * predicate returned false.
- *
- * @example
- * const array = [1, 2, 3, 4] as const;
- * const isEven = (x: number): x is 2 | 4 => x % 2 === 0;
- * const [even, odd]: [(2 | 4)[], (2 | 4)[]] = partition(array, isEven);
- * // even will be [2, 4], and odd will be [1, 3]
- */
-declare function partition<T, U extends T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => value is U): [truthy: U[], falsy: Array<Exclude<T, U>>];
-/**
- * Splits an array into two groups based on a predicate function.
- *
- * This function takes an array and a predicate function. It returns a tuple of two arrays:
- * the first array contains elements for which the predicate function returns true, and
- * the second array contains elements for which the predicate function returns false.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to partition.
- * @param {(value: T, index: number) => boolean} isInTruthy - A predicate function that determines
- * whether an element should be placed in the truthy array. The function is called with each
- * element of the array and its index.
- * @returns {[T[], T[]]} A tuple containing two arrays: the first array contains elements for
- * which the predicate returned true, and the second array contains elements for which the
- * predicate returned false.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const isEven = x => x % 2 === 0;
- * const [even, odd] = partition(array, isEven);
- * // even will be [2, 4], and odd will be [1, 3, 5]
- */
-declare function partition<T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => boolean): [truthy: T[], falsy: T[]];
-
-export { partition };
Index: de_modules/es-toolkit/dist/array/partition.js
===================================================================
--- node_modules/es-toolkit/dist/array/partition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function partition(arr, isInTruthy) {
-    const truthy = [];
-    const falsy = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (isInTruthy(item, i, arr)) {
-            truthy.push(item);
-        }
-        else {
-            falsy.push(item);
-        }
-    }
-    return [truthy, falsy];
-}
-
-exports.partition = partition;
Index: de_modules/es-toolkit/dist/array/partition.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/partition.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-function partition(arr, isInTruthy) {
-    const truthy = [];
-    const falsy = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (isInTruthy(item, i, arr)) {
-            truthy.push(item);
-        }
-        else {
-            falsy.push(item);
-        }
-    }
-    return [truthy, falsy];
-}
-
-export { partition };
Index: de_modules/es-toolkit/dist/array/pull.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/pull.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes all specified values from an array.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `difference`.
- *
- * @template T, U
- * @param {T[]} arr - The array to modify.
- * @param {unknown[]} valuesToRemove - The values to remove from the array.
- * @returns {T[]} The modified array with the specified values removed.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5, 2, 4];
- * pull(numbers, [2, 4]);
- * console.log(numbers); // [1, 3, 5]
- */
-declare function pull<T>(arr: T[], valuesToRemove: readonly unknown[]): T[];
-
-export { pull };
Index: de_modules/es-toolkit/dist/array/pull.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/pull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes all specified values from an array.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `difference`.
- *
- * @template T, U
- * @param {T[]} arr - The array to modify.
- * @param {unknown[]} valuesToRemove - The values to remove from the array.
- * @returns {T[]} The modified array with the specified values removed.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5, 2, 4];
- * pull(numbers, [2, 4]);
- * console.log(numbers); // [1, 3, 5]
- */
-declare function pull<T>(arr: T[], valuesToRemove: readonly unknown[]): T[];
-
-export { pull };
Index: de_modules/es-toolkit/dist/array/pull.js
===================================================================
--- node_modules/es-toolkit/dist/array/pull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function pull(arr, valuesToRemove) {
-    const valuesSet = new Set(valuesToRemove);
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        if (valuesSet.has(arr[i])) {
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return arr;
-}
-
-exports.pull = pull;
Index: de_modules/es-toolkit/dist/array/pull.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/pull.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function pull(arr, valuesToRemove) {
-    const valuesSet = new Set(valuesToRemove);
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        if (valuesSet.has(arr[i])) {
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return arr;
-}
-
-export { pull };
Index: de_modules/es-toolkit/dist/array/pullAt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes elements from an array at specified indices and returns the removed elements.
- *
- * This function supports negative indices, which count from the end of the array.
- *
- * @template T
- * @param {T[]} arr - The array from which elements will be removed.
- * @param {number[]} indicesToRemove - An array of indices specifying the positions of elements to remove.
- * @returns {Array<T | undefined>} An array containing the elements that were removed from the original array.
- *
- * @example
- * const numbers = [10, 20, 30, 40, 50];
- * const removed = pullAt(numbers, [1, 3, 4]);
- * console.log(removed); // [20, 40, 50]
- * console.log(numbers); // [10, 30]
- */
-declare function pullAt<T>(arr: T[], indicesToRemove: number[]): T[];
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/array/pullAt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes elements from an array at specified indices and returns the removed elements.
- *
- * This function supports negative indices, which count from the end of the array.
- *
- * @template T
- * @param {T[]} arr - The array from which elements will be removed.
- * @param {number[]} indicesToRemove - An array of indices specifying the positions of elements to remove.
- * @returns {Array<T | undefined>} An array containing the elements that were removed from the original array.
- *
- * @example
- * const numbers = [10, 20, 30, 40, 50];
- * const removed = pullAt(numbers, [1, 3, 4]);
- * console.log(removed); // [20, 40, 50]
- * console.log(numbers); // [10, 30]
- */
-declare function pullAt<T>(arr: T[], indicesToRemove: number[]): T[];
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/array/pullAt.js
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const at = require('./at.js');
-
-function pullAt(arr, indicesToRemove) {
-    const removed = at.at(arr, indicesToRemove);
-    const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));
-    for (const index of indices) {
-        arr.splice(index, 1);
-    }
-    return removed;
-}
-
-exports.pullAt = pullAt;
Index: de_modules/es-toolkit/dist/array/pullAt.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { at } from './at.mjs';
-
-function pullAt(arr, indicesToRemove) {
-    const removed = at(arr, indicesToRemove);
-    const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));
-    for (const index of indices) {
-        arr.splice(index, 1);
-    }
-    return removed;
-}
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/array/reduceAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/**
- * Reduces an array to a single value using an async reducer function.
- *
- * Applies the reducer function sequentially to each element (left to right),
- * carrying an accumulated result from one call to the next. Unlike other async
- * array methods, reduce must process elements sequentially and does not support
- * concurrency limiting.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of the accumulated result.
- * @param {readonly T[]} array The array to reduce.
- * @param {(accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>} reducer An async function that processes each element.
- * @param {U} initialValue The initial value of the accumulator.
- * @returns {Promise<U>} A promise that resolves to the final accumulated value.
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const sum = await reduceAsync(
- *   numbers,
- *   async (acc, n) => acc + await fetchValue(n),
- *   0
- * );
- * // Returns: sum of all fetched values
- *
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const userMap = await reduceAsync(
- *   users,
- *   async (acc, user) => {
- *     const details = await fetchUserDetails(user.id);
- *     acc[user.id] = details;
- *     return acc;
- *   },
- *   {} as Record<number, any>
- * );
- * // Returns: { 1: {...}, 2: {...}, 3: {...} }
- */
-declare function reduceAsync<T, U>(array: readonly T[], reducer: (accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>, initialValue: U): Promise<U>;
-/**
- * Reduces an array to a single value using an async reducer function.
- *
- * Applies the reducer function sequentially to each element (left to right),
- * carrying an accumulated result from one call to the next. Unlike other async
- * array methods, reduce must process elements sequentially and does not support
- * concurrency limiting.
- *
- * When no initial value is provided, the first element of the array is used as
- * the initial value and the reduction starts from the second element.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to reduce.
- * @param {(accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>} reducer An async function that processes each element.
- * @returns {Promise<T | undefined>} A promise that resolves to the final accumulated value, or undefined if the array is empty.
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const sum = await reduceAsync(
- *   numbers,
- *   async (acc, n) => acc + n
- * );
- * // Returns: 15
- *
- * @example
- * const emptyArray: number[] = [];
- * const result = await reduceAsync(
- *   emptyArray,
- *   async (acc, n) => acc + n
- * );
- * // Returns: undefined
- */
-declare function reduceAsync<T>(array: readonly T[], reducer: (accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>): Promise<T>;
-
-export { reduceAsync };
Index: de_modules/es-toolkit/dist/array/reduceAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/**
- * Reduces an array to a single value using an async reducer function.
- *
- * Applies the reducer function sequentially to each element (left to right),
- * carrying an accumulated result from one call to the next. Unlike other async
- * array methods, reduce must process elements sequentially and does not support
- * concurrency limiting.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of the accumulated result.
- * @param {readonly T[]} array The array to reduce.
- * @param {(accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>} reducer An async function that processes each element.
- * @param {U} initialValue The initial value of the accumulator.
- * @returns {Promise<U>} A promise that resolves to the final accumulated value.
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const sum = await reduceAsync(
- *   numbers,
- *   async (acc, n) => acc + await fetchValue(n),
- *   0
- * );
- * // Returns: sum of all fetched values
- *
- * @example
- * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const userMap = await reduceAsync(
- *   users,
- *   async (acc, user) => {
- *     const details = await fetchUserDetails(user.id);
- *     acc[user.id] = details;
- *     return acc;
- *   },
- *   {} as Record<number, any>
- * );
- * // Returns: { 1: {...}, 2: {...}, 3: {...} }
- */
-declare function reduceAsync<T, U>(array: readonly T[], reducer: (accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>, initialValue: U): Promise<U>;
-/**
- * Reduces an array to a single value using an async reducer function.
- *
- * Applies the reducer function sequentially to each element (left to right),
- * carrying an accumulated result from one call to the next. Unlike other async
- * array methods, reduce must process elements sequentially and does not support
- * concurrency limiting.
- *
- * When no initial value is provided, the first element of the array is used as
- * the initial value and the reduction starts from the second element.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} array The array to reduce.
- * @param {(accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>} reducer An async function that processes each element.
- * @returns {Promise<T | undefined>} A promise that resolves to the final accumulated value, or undefined if the array is empty.
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const sum = await reduceAsync(
- *   numbers,
- *   async (acc, n) => acc + n
- * );
- * // Returns: 15
- *
- * @example
- * const emptyArray: number[] = [];
- * const result = await reduceAsync(
- *   emptyArray,
- *   async (acc, n) => acc + n
- * );
- * // Returns: undefined
- */
-declare function reduceAsync<T>(array: readonly T[], reducer: (accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>): Promise<T>;
-
-export { reduceAsync };
Index: de_modules/es-toolkit/dist/array/reduceAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-async function reduceAsync(array, reducer, initialValue) {
-    let startIndex = 0;
-    if (initialValue == null) {
-        initialValue = array[0];
-        startIndex = 1;
-    }
-    let accumulator = initialValue;
-    for (let i = startIndex; i < array.length; i++) {
-        accumulator = await reducer(accumulator, array[i], i, array);
-    }
-    return accumulator;
-}
-
-exports.reduceAsync = reduceAsync;
Index: de_modules/es-toolkit/dist/array/reduceAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-async function reduceAsync(array, reducer, initialValue) {
-    let startIndex = 0;
-    if (initialValue == null) {
-        initialValue = array[0];
-        startIndex = 1;
-    }
-    let accumulator = initialValue;
-    for (let i = startIndex; i < array.length; i++) {
-        accumulator = await reducer(accumulator, array[i], i, array);
-    }
-    return accumulator;
-}
-
-export { reduceAsync };
Index: de_modules/es-toolkit/dist/array/remove.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/remove.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes elements from an array based on a predicate function.
- *
- * This function changes `arr` in place.
- * If you want to remove elements without modifying the original array, use `filter`.
- *
- * @template T
- * @param {T[]} arr - The array to modify.
- * @param {(value: T, index: number, array: T[]) => boolean} shouldRemoveElement - The function invoked per iteration to determine if an element should be removed.
- * @returns {T[]} The modified array with the specified elements removed.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * remove(numbers, (value) => value % 2 === 0);
- * console.log(numbers); // [1, 3, 5]
- */
-declare function remove<T>(arr: T[], shouldRemoveElement: (value: T, index: number, array: T[]) => boolean): T[];
-
-export { remove };
Index: de_modules/es-toolkit/dist/array/remove.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/remove.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes elements from an array based on a predicate function.
- *
- * This function changes `arr` in place.
- * If you want to remove elements without modifying the original array, use `filter`.
- *
- * @template T
- * @param {T[]} arr - The array to modify.
- * @param {(value: T, index: number, array: T[]) => boolean} shouldRemoveElement - The function invoked per iteration to determine if an element should be removed.
- * @returns {T[]} The modified array with the specified elements removed.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * remove(numbers, (value) => value % 2 === 0);
- * console.log(numbers); // [1, 3, 5]
- */
-declare function remove<T>(arr: T[], shouldRemoveElement: (value: T, index: number, array: T[]) => boolean): T[];
-
-export { remove };
Index: de_modules/es-toolkit/dist/array/remove.js
===================================================================
--- node_modules/es-toolkit/dist/array/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function remove(arr, shouldRemoveElement) {
-    const originalArr = arr.slice();
-    const removed = [];
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        if (shouldRemoveElement(arr[i], i, originalArr)) {
-            removed.push(arr[i]);
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return removed;
-}
-
-exports.remove = remove;
Index: de_modules/es-toolkit/dist/array/remove.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/remove.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-function remove(arr, shouldRemoveElement) {
-    const originalArr = arr.slice();
-    const removed = [];
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        if (shouldRemoveElement(arr[i], i, originalArr)) {
-            removed.push(arr[i]);
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return removed;
-}
-
-export { remove };
Index: de_modules/es-toolkit/dist/array/sample.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sample.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Returns a random element from an array.
- *
- * This function takes an array and returns a single element selected randomly from the array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to sample from.
- * @returns {T} A random element from the array.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const randomElement = sample(array);
- * // randomElement will be one of the elements from the array, selected randomly.
- */
-declare function sample<T>(arr: readonly T[]): T;
-
-export { sample };
Index: de_modules/es-toolkit/dist/array/sample.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sample.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Returns a random element from an array.
- *
- * This function takes an array and returns a single element selected randomly from the array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to sample from.
- * @returns {T} A random element from the array.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const randomElement = sample(array);
- * // randomElement will be one of the elements from the array, selected randomly.
- */
-declare function sample<T>(arr: readonly T[]): T;
-
-export { sample };
Index: de_modules/es-toolkit/dist/array/sample.js
===================================================================
--- node_modules/es-toolkit/dist/array/sample.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function sample(arr) {
-    const randomIndex = Math.floor(Math.random() * arr.length);
-    return arr[randomIndex];
-}
-
-exports.sample = sample;
Index: de_modules/es-toolkit/dist/array/sample.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sample.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-function sample(arr) {
-    const randomIndex = Math.floor(Math.random() * arr.length);
-    return arr[randomIndex];
-}
-
-export { sample };
Index: de_modules/es-toolkit/dist/array/sampleSize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns a sample element array of a specified `size`.
- *
- * This function takes an array and a number, and returns an array containing the sampled elements using Floyd's algorithm.
- *
- * {@link https://www.nowherenearithaca.com/2013/05/robert-floyds-tiny-and-beautiful.html Floyd's algorithm}
- *
- * @template T - The type of elements in the array.
- * @param {T[]} array - The array to sample from.
- * @param {number} size - The size of sample.
- * @returns {T[]} A new array with sample size applied.
- * @throws {Error} Throws an error if `size` is greater than the length of `array`.
- *
- * @example
- * const result = sampleSize([1, 2, 3], 2)
- * // result will be an array containing two of the elements from the array.
- * // [1, 2] or [1, 3] or [2, 3]
- */
-declare function sampleSize<T>(array: readonly T[], size: number): T[];
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/array/sampleSize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns a sample element array of a specified `size`.
- *
- * This function takes an array and a number, and returns an array containing the sampled elements using Floyd's algorithm.
- *
- * {@link https://www.nowherenearithaca.com/2013/05/robert-floyds-tiny-and-beautiful.html Floyd's algorithm}
- *
- * @template T - The type of elements in the array.
- * @param {T[]} array - The array to sample from.
- * @param {number} size - The size of sample.
- * @returns {T[]} A new array with sample size applied.
- * @throws {Error} Throws an error if `size` is greater than the length of `array`.
- *
- * @example
- * const result = sampleSize([1, 2, 3], 2)
- * // result will be an array containing two of the elements from the array.
- * // [1, 2] or [1, 3] or [2, 3]
- */
-declare function sampleSize<T>(array: readonly T[], size: number): T[];
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/array/sampleSize.js
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const randomInt = require('../math/randomInt.js');
-
-function sampleSize(array, size) {
-    if (size > array.length) {
-        throw new Error('Size must be less than or equal to the length of array.');
-    }
-    const result = new Array(size);
-    const selected = new Set();
-    for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {
-        let index = randomInt.randomInt(0, step + 1);
-        if (selected.has(index)) {
-            index = step;
-        }
-        selected.add(index);
-        result[resultIndex] = array[index];
-    }
-    return result;
-}
-
-exports.sampleSize = sampleSize;
Index: de_modules/es-toolkit/dist/array/sampleSize.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { randomInt } from '../math/randomInt.mjs';
-
-function sampleSize(array, size) {
-    if (size > array.length) {
-        throw new Error('Size must be less than or equal to the length of array.');
-    }
-    const result = new Array(size);
-    const selected = new Set();
-    for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {
-        let index = randomInt(0, step + 1);
-        if (selected.has(index)) {
-            index = step;
-        }
-        selected.add(index);
-        result[resultIndex] = array[index];
-    }
-    return result;
-}
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/array/shuffle.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Randomizes the order of elements in an array using the Fisher-Yates algorithm.
- *
- * This function takes an array and returns a new array with its elements shuffled in a random order.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to shuffle.
- * @returns {T[]} A new array with its elements shuffled in random order.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const shuffledArray = shuffle(array);
- * // shuffledArray will be a new array with elements of array in random order, e.g., [3, 1, 4, 5, 2]
- */
-declare function shuffle<T>(arr: readonly T[]): T[];
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/array/shuffle.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Randomizes the order of elements in an array using the Fisher-Yates algorithm.
- *
- * This function takes an array and returns a new array with its elements shuffled in a random order.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to shuffle.
- * @returns {T[]} A new array with its elements shuffled in random order.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const shuffledArray = shuffle(array);
- * // shuffledArray will be a new array with elements of array in random order, e.g., [3, 1, 4, 5, 2]
- */
-declare function shuffle<T>(arr: readonly T[]): T[];
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/array/shuffle.js
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function shuffle(arr) {
-    const result = arr.slice();
-    for (let i = result.length - 1; i >= 1; i--) {
-        const j = Math.floor(Math.random() * (i + 1));
-        [result[i], result[j]] = [result[j], result[i]];
-    }
-    return result;
-}
-
-exports.shuffle = shuffle;
Index: de_modules/es-toolkit/dist/array/shuffle.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function shuffle(arr) {
-    const result = arr.slice();
-    for (let i = result.length - 1; i >= 1; i--) {
-        const j = Math.floor(Math.random() * (i + 1));
-        [result[i], result[j]] = [result[j], result[i]];
-    }
-    return result;
-}
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/array/sortBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Sorts an array of objects based on the given `criteria`.
- *
- * - If you provide keys, it sorts the objects by the values of those keys.
- * - If you provide functions, it sorts based on the values returned by those functions.
- *
- * The function returns the array of objects sorted in ascending order.
- * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
- *
- * @template T - The type of the objects in the array.
- * @param {T[]} arr - The array of objects to be sorted.
- * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
- * @returns {T[]} - The sorted array.
- *
- * @example
- * const users = [
- *  { user: 'foo', age: 24 },
- *  { user: 'bar', age: 7 },
- *  { user: 'foo', age: 8 },
- *  { user: 'bar', age: 29 },
- * ];
- *
- * sortBy(users, ['user', 'age']);
- * sortBy(users, [obj => obj.user, 'age']);
- * // results will be:
- * // [
- * //   { user : 'bar', age: 7 },
- * //   { user : 'bar', age: 29 },
- * //   { user : 'foo', age: 8 },
- * //   { user : 'foo', age: 24 },
- * // ]
- */
-declare function sortBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>): T[];
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/array/sortBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Sorts an array of objects based on the given `criteria`.
- *
- * - If you provide keys, it sorts the objects by the values of those keys.
- * - If you provide functions, it sorts based on the values returned by those functions.
- *
- * The function returns the array of objects sorted in ascending order.
- * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
- *
- * @template T - The type of the objects in the array.
- * @param {T[]} arr - The array of objects to be sorted.
- * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
- * @returns {T[]} - The sorted array.
- *
- * @example
- * const users = [
- *  { user: 'foo', age: 24 },
- *  { user: 'bar', age: 7 },
- *  { user: 'foo', age: 8 },
- *  { user: 'bar', age: 29 },
- * ];
- *
- * sortBy(users, ['user', 'age']);
- * sortBy(users, [obj => obj.user, 'age']);
- * // results will be:
- * // [
- * //   { user : 'bar', age: 7 },
- * //   { user : 'bar', age: 29 },
- * //   { user : 'foo', age: 8 },
- * //   { user : 'foo', age: 24 },
- * // ]
- */
-declare function sortBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>): T[];
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/array/sortBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const orderBy = require('./orderBy.js');
-
-function sortBy(arr, criteria) {
-    return orderBy.orderBy(arr, criteria, ['asc']);
-}
-
-exports.sortBy = sortBy;
Index: de_modules/es-toolkit/dist/array/sortBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { orderBy } from './orderBy.mjs';
-
-function sortBy(arr, criteria) {
-    return orderBy(arr, criteria, ['asc']);
-}
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/array/tail.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/tail.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/**
- * Returns an empty array when the input is a single-element array.
- *
- * @template T - The type of the single element in the array.
- * @param {[T]} arr - The single-element array to process.
- * @returns {[]} An empty array.
- *
- * @example
- * const arr = [1];
- * const result = tail(arr);
- * // result will be []
- */
-declare function tail<T>(arr: readonly [T]): [];
-/**
- * Returns an empty array when the input is an empty array.
- *
- * @template T - The type of elements in the array.
- * @param {[]} arr - The empty array to process.
- * @returns {[]} An empty array.
- *
- * @example
- * const arr = [];
- * const result = tail(arr);
- * // result will be []
- */
-declare function tail(arr: readonly []): [];
-/**
- * Returns a new array with all elements except for the first when the input is a tuple array.
- *
- * @template T - The type of the first element in the tuple array.
- * @template U - The type of the remaining elements in the tuple array.
- * @param {[T, ...U[]]} arr - The tuple array to process.
- * @returns {U[]} A new array containing all elements of the input array except for the first one.
- *
- * @example
- * const arr = [1, 2, 3];
- * const result = tail(arr);
- * // result will be [2, 3]
- */
-declare function tail<T, U>(arr: readonly [T, ...U[]]): U[];
-/**
- * Returns a new array with all elements except for the first.
- *
- * This function takes an array and returns a new array containing all the elements
- * except for the first one. If the input array is empty or has only one element,
- * an empty array is returned.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to get the tail of.
- * @returns {T[]} A new array containing all elements of the input array except for the first one.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const result = tail(arr1);
- * // result will be [2, 3]
- *
- * const arr2 = [1];
- * const result2 = tail(arr2);
- * // result2 will be []
- *
- * const arr3 = [];
- * const result3 = tail(arr3);
- * // result3 will be []
- */
-declare function tail<T>(arr: readonly T[]): T[];
-
-export { tail };
Index: de_modules/es-toolkit/dist/array/tail.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/tail.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/**
- * Returns an empty array when the input is a single-element array.
- *
- * @template T - The type of the single element in the array.
- * @param {[T]} arr - The single-element array to process.
- * @returns {[]} An empty array.
- *
- * @example
- * const arr = [1];
- * const result = tail(arr);
- * // result will be []
- */
-declare function tail<T>(arr: readonly [T]): [];
-/**
- * Returns an empty array when the input is an empty array.
- *
- * @template T - The type of elements in the array.
- * @param {[]} arr - The empty array to process.
- * @returns {[]} An empty array.
- *
- * @example
- * const arr = [];
- * const result = tail(arr);
- * // result will be []
- */
-declare function tail(arr: readonly []): [];
-/**
- * Returns a new array with all elements except for the first when the input is a tuple array.
- *
- * @template T - The type of the first element in the tuple array.
- * @template U - The type of the remaining elements in the tuple array.
- * @param {[T, ...U[]]} arr - The tuple array to process.
- * @returns {U[]} A new array containing all elements of the input array except for the first one.
- *
- * @example
- * const arr = [1, 2, 3];
- * const result = tail(arr);
- * // result will be [2, 3]
- */
-declare function tail<T, U>(arr: readonly [T, ...U[]]): U[];
-/**
- * Returns a new array with all elements except for the first.
- *
- * This function takes an array and returns a new array containing all the elements
- * except for the first one. If the input array is empty or has only one element,
- * an empty array is returned.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to get the tail of.
- * @returns {T[]} A new array containing all elements of the input array except for the first one.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const result = tail(arr1);
- * // result will be [2, 3]
- *
- * const arr2 = [1];
- * const result2 = tail(arr2);
- * // result2 will be []
- *
- * const arr3 = [];
- * const result3 = tail(arr3);
- * // result3 will be []
- */
-declare function tail<T>(arr: readonly T[]): T[];
-
-export { tail };
Index: de_modules/es-toolkit/dist/array/tail.js
===================================================================
--- node_modules/es-toolkit/dist/array/tail.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function tail(arr) {
-    return arr.slice(1);
-}
-
-exports.tail = tail;
Index: de_modules/es-toolkit/dist/array/tail.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/tail.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function tail(arr) {
-    return arr.slice(1);
-}
-
-export { tail };
Index: de_modules/es-toolkit/dist/array/take.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/take.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Returns a new array containing the first `count` elements from the input array `arr`.
- * If `count` is greater than the length of `arr`, the entire array is returned.
- *
- * @template T - Type of elements in the input array.
- *
- * @param {T[]} arr - The array to take elements from.
- * @param {number} count - The number of elements to take.
- * @param {unknown} guard - If truthy, ignores `count` and defaults to 1.
- * @returns {T[]} A new array containing the first `count` elements from `arr`.
- *
- * @example
- * // Returns [1, 2, 3]
- * take([1, 2, 3, 4, 5], 3);
- *
- * @example
- * // Returns ['a', 'b']
- * take(['a', 'b', 'c'], 2);
- *
- * @example
- * // Returns [1, 2, 3]
- * take([1, 2, 3], 5);
- *
- * @example
- * // Returns [[1], [1], [1]]
- * const arr = [1, 2, 3];
- * const result = arr.map((v, i, array) => take(array, i, true));
- */
-declare function take<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
-
-export { take };
Index: de_modules/es-toolkit/dist/array/take.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/take.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Returns a new array containing the first `count` elements from the input array `arr`.
- * If `count` is greater than the length of `arr`, the entire array is returned.
- *
- * @template T - Type of elements in the input array.
- *
- * @param {T[]} arr - The array to take elements from.
- * @param {number} count - The number of elements to take.
- * @param {unknown} guard - If truthy, ignores `count` and defaults to 1.
- * @returns {T[]} A new array containing the first `count` elements from `arr`.
- *
- * @example
- * // Returns [1, 2, 3]
- * take([1, 2, 3, 4, 5], 3);
- *
- * @example
- * // Returns ['a', 'b']
- * take(['a', 'b', 'c'], 2);
- *
- * @example
- * // Returns [1, 2, 3]
- * take([1, 2, 3], 5);
- *
- * @example
- * // Returns [[1], [1], [1]]
- * const arr = [1, 2, 3];
- * const result = arr.map((v, i, array) => take(array, i, true));
- */
-declare function take<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
-
-export { take };
Index: de_modules/es-toolkit/dist/array/take.js
===================================================================
--- node_modules/es-toolkit/dist/array/take.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('../compat/util/toInteger.js');
-
-function take(arr, count, guard) {
-    count = guard || count === undefined ? 1 : toInteger.toInteger(count);
-    return arr.slice(0, count);
-}
-
-exports.take = take;
Index: de_modules/es-toolkit/dist/array/take.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/take.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { toInteger } from '../compat/util/toInteger.mjs';
-
-function take(arr, count, guard) {
-    count = guard || count === undefined ? 1 : toInteger(count);
-    return arr.slice(0, count);
-}
-
-export { take };
Index: de_modules/es-toolkit/dist/array/takeRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Returns a new array containing the last `count` elements from the input array `arr`.
- * If `count` is greater than the length of `arr`, the entire array is returned.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to take elements from.
- * @param {number} [count=1] - The number of elements to take.
- * @returns {T[]} A new array containing the last `count` elements from `arr`.
- *
- * @example
- * // Returns [4, 5]
- * takeRight([1, 2, 3, 4, 5], 2);
- *
- * @example
- * // Returns ['b', 'c']
- * takeRight(['a', 'b', 'c'], 2);
- *
- * @example
- * // Returns [1, 2, 3]
- * takeRight([1, 2, 3], 5);
- */
-declare function takeRight<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/array/takeRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Returns a new array containing the last `count` elements from the input array `arr`.
- * If `count` is greater than the length of `arr`, the entire array is returned.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to take elements from.
- * @param {number} [count=1] - The number of elements to take.
- * @returns {T[]} A new array containing the last `count` elements from `arr`.
- *
- * @example
- * // Returns [4, 5]
- * takeRight([1, 2, 3, 4, 5], 2);
- *
- * @example
- * // Returns ['b', 'c']
- * takeRight(['a', 'b', 'c'], 2);
- *
- * @example
- * // Returns [1, 2, 3]
- * takeRight([1, 2, 3], 5);
- */
-declare function takeRight<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/array/takeRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('../compat/util/toInteger.js');
-
-function takeRight(arr, count, guard) {
-    count = guard || count === undefined ? 1 : toInteger.toInteger(count);
-    if (count <= 0 || arr.length === 0) {
-        return [];
-    }
-    return arr.slice(-count);
-}
-
-exports.takeRight = takeRight;
Index: de_modules/es-toolkit/dist/array/takeRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { toInteger } from '../compat/util/toInteger.mjs';
-
-function takeRight(arr, count, guard) {
-    count = guard || count === undefined ? 1 : toInteger(count);
-    if (count <= 0 || arr.length === 0) {
-        return [];
-    }
-    return arr.slice(-count);
-}
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/array/takeRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Takes elements from the end of the array while the predicate function returns `true`.
- *
- * @template T - Type of elements in the input array.
- *
- * @param {T[]} arr - The array to take elements from.
- * @param {(item: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The function invoked per element with the item, its index, and the array.
- * @returns {T[]} A new array containing the elements taken from the end while the predicate returns `true`.
- *
- * @example
- * // Returns [3, 2, 1]
- * takeRightWhile([5, 4, 3, 2, 1], n => n < 4);
- *
- * @example
- * // Returns []
- * takeRightWhile([1, 2, 3], n => n > 3);
- *
- * @example
- * // Using index parameter
- * takeRightWhile([10, 20, 30, 40], (x, index) => index > 1);
- * // Returns: [30, 40]
- */
-declare function takeRightWhile<T>(arr: readonly T[], shouldContinueTaking: (item: T, index: number, array: readonly T[]) => boolean): T[];
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/array/takeRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Takes elements from the end of the array while the predicate function returns `true`.
- *
- * @template T - Type of elements in the input array.
- *
- * @param {T[]} arr - The array to take elements from.
- * @param {(item: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The function invoked per element with the item, its index, and the array.
- * @returns {T[]} A new array containing the elements taken from the end while the predicate returns `true`.
- *
- * @example
- * // Returns [3, 2, 1]
- * takeRightWhile([5, 4, 3, 2, 1], n => n < 4);
- *
- * @example
- * // Returns []
- * takeRightWhile([1, 2, 3], n => n > 3);
- *
- * @example
- * // Using index parameter
- * takeRightWhile([10, 20, 30, 40], (x, index) => index > 1);
- * // Returns: [30, 40]
- */
-declare function takeRightWhile<T>(arr: readonly T[], shouldContinueTaking: (item: T, index: number, array: readonly T[]) => boolean): T[];
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/array/takeRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function takeRightWhile(arr, shouldContinueTaking) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        if (!shouldContinueTaking(arr[i], i, arr)) {
-            return arr.slice(i + 1);
-        }
-    }
-    return arr.slice();
-}
-
-exports.takeRightWhile = takeRightWhile;
Index: de_modules/es-toolkit/dist/array/takeRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function takeRightWhile(arr, shouldContinueTaking) {
-    for (let i = arr.length - 1; i >= 0; i--) {
-        if (!shouldContinueTaking(arr[i], i, arr)) {
-            return arr.slice(i + 1);
-        }
-    }
-    return arr.slice();
-}
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/array/takeWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Returns a new array containing the leading elements of the provided array
- * that satisfy the provided predicate function. It stops taking elements as soon
- * as an element does not satisfy the predicate.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @param {(element: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The predicate function that is called with each element, its index, and the array. Elements are included in the result as long as this function returns true.
- * @returns {T[]} A new array containing the leading elements that satisfy the predicate.
- *
- * @example
- * // Returns [1, 2]
- * takeWhile([1, 2, 3, 4], x => x < 3);
- *
- * @example
- * // Returns []
- * takeWhile([1, 2, 3, 4], x => x > 3);
- *
- * @example
- * // Using index parameter
- * takeWhile([10, 20, 30, 40], (x, index) => index < 2);
- * // Returns: [10, 20]
- */
-declare function takeWhile<T>(arr: readonly T[], shouldContinueTaking: (element: T, index: number, array: readonly T[]) => boolean): T[];
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/array/takeWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Returns a new array containing the leading elements of the provided array
- * that satisfy the provided predicate function. It stops taking elements as soon
- * as an element does not satisfy the predicate.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @param {(element: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The predicate function that is called with each element, its index, and the array. Elements are included in the result as long as this function returns true.
- * @returns {T[]} A new array containing the leading elements that satisfy the predicate.
- *
- * @example
- * // Returns [1, 2]
- * takeWhile([1, 2, 3, 4], x => x < 3);
- *
- * @example
- * // Returns []
- * takeWhile([1, 2, 3, 4], x => x > 3);
- *
- * @example
- * // Using index parameter
- * takeWhile([10, 20, 30, 40], (x, index) => index < 2);
- * // Returns: [10, 20]
- */
-declare function takeWhile<T>(arr: readonly T[], shouldContinueTaking: (element: T, index: number, array: readonly T[]) => boolean): T[];
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/array/takeWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function takeWhile(arr, shouldContinueTaking) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (!shouldContinueTaking(item, i, arr)) {
-            break;
-        }
-        result.push(item);
-    }
-    return result;
-}
-
-exports.takeWhile = takeWhile;
Index: de_modules/es-toolkit/dist/array/takeWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function takeWhile(arr, shouldContinueTaking) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (!shouldContinueTaking(item, i, arr)) {
-            break;
-        }
-        result.push(item);
-    }
-    return result;
-}
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/array/toFilled.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U): Array<T | U>;
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U, start: number): Array<T | U>;
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U, start: number, end: number): Array<T | U>;
-
-export { toFilled };
Index: de_modules/es-toolkit/dist/array/toFilled.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U): Array<T | U>;
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U, start: number): Array<T | U>;
-/**
- * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
- * This function does not mutate the original array.
- *
- * @template T - The type of elements in the original array.
- * @template U - The type of the value to fill the new array with.
- * @param {Array<T>} arr - The array to base the new array on.
- * @param {U} value - The value to fill the new array with.
- * @param {number} [start=0] - The start position. Defaults to 0.
- * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
- * @returns {Array<T | U>} The new array with the filled values.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * let result = toFilled(array, '*', 2);
- * console.log(result); // [1, 2, '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', 1, 4);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*');
- * console.log(result); // ['*', '*', '*', '*', '*']
- * console.log(array); // [1, 2, 3, 4, 5]
- *
- * result = toFilled(array, '*', -4, -1);
- * console.log(result); // [1, '*', '*', '*', 5]
- * console.log(array); // [1, 2, 3, 4, 5]
- */
-declare function toFilled<T, U>(arr: readonly T[], value: U, start: number, end: number): Array<T | U>;
-
-export { toFilled };
Index: de_modules/es-toolkit/dist/array/toFilled.js
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function toFilled(arr, value, start = 0, end = arr.length) {
-    const length = arr.length;
-    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
-    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
-    const newArr = arr.slice();
-    for (let i = finalStart; i < finalEnd; i++) {
-        newArr[i] = value;
-    }
-    return newArr;
-}
-
-exports.toFilled = toFilled;
Index: de_modules/es-toolkit/dist/array/toFilled.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function toFilled(arr, value, start = 0, end = arr.length) {
-    const length = arr.length;
-    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
-    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
-    const newArr = arr.slice();
-    for (let i = finalStart; i < finalEnd; i++) {
-        newArr[i] = value;
-    }
-    return newArr;
-}
-
-export { toFilled };
Index: de_modules/es-toolkit/dist/array/union.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/union.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates an array of unique values from all given arrays.
- *
- * This function takes two arrays, merges them into a single array, and returns a new array
- * containing only the unique values from the merged array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array to merge and filter for unique values.
- * @param {T[]} arr2 - The second array to merge and filter for unique values.
- * @returns {T[]} A new array of unique values.
- *
- * @example
- * const array1 = [1, 2, 3];
- * const array2 = [3, 4, 5];
- * const result = union(array1, array2);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function union<T>(arr1: readonly T[], arr2: readonly T[]): T[];
-
-export { union };
Index: de_modules/es-toolkit/dist/array/union.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/union.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates an array of unique values from all given arrays.
- *
- * This function takes two arrays, merges them into a single array, and returns a new array
- * containing only the unique values from the merged array.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array to merge and filter for unique values.
- * @param {T[]} arr2 - The second array to merge and filter for unique values.
- * @returns {T[]} A new array of unique values.
- *
- * @example
- * const array1 = [1, 2, 3];
- * const array2 = [3, 4, 5];
- * const result = union(array1, array2);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function union<T>(arr1: readonly T[], arr2: readonly T[]): T[];
-
-export { union };
Index: de_modules/es-toolkit/dist/array/union.js
===================================================================
--- node_modules/es-toolkit/dist/array/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniq = require('./uniq.js');
-
-function union(arr1, arr2) {
-    return uniq.uniq(arr1.concat(arr2));
-}
-
-exports.union = union;
Index: de_modules/es-toolkit/dist/array/union.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/union.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { uniq } from './uniq.mjs';
-
-function union(arr1, arr2) {
-    return uniq(arr1.concat(arr2));
-}
-
-export { union };
Index: de_modules/es-toolkit/dist/array/unionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of unique values, in order, from all given arrays using a provided mapping function to determine equality.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of mapped elements.
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
- * @returns {T[]} A new array containing the union of unique elements from `arr1` and `arr2`, based on the values returned by the mapping function.
- *
- * @example
- * // Custom mapping function for numbers (modulo comparison)
- * const moduloMapper = (x) => x % 3;
- * unionBy([1, 2, 3], [4, 5, 6], moduloMapper);
- * // Returns [1, 2, 3]
- *
- * @example
- * // Custom mapping function for objects with an 'id' property
- * const idMapper = (obj) => obj.id;
- * unionBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
- * // Returns [{ id: 1 }, { id: 2 }, { id: 3 }]
- */
-declare function unionBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/array/unionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of unique values, in order, from all given arrays using a provided mapping function to determine equality.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of mapped elements.
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
- * @returns {T[]} A new array containing the union of unique elements from `arr1` and `arr2`, based on the values returned by the mapping function.
- *
- * @example
- * // Custom mapping function for numbers (modulo comparison)
- * const moduloMapper = (x) => x % 3;
- * unionBy([1, 2, 3], [4, 5, 6], moduloMapper);
- * // Returns [1, 2, 3]
- *
- * @example
- * // Custom mapping function for objects with an 'id' property
- * const idMapper = (obj) => obj.id;
- * unionBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
- * // Returns [{ id: 1 }, { id: 2 }, { id: 3 }]
- */
-declare function unionBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/array/unionBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniqBy = require('./uniqBy.js');
-
-function unionBy(arr1, arr2, mapper) {
-    return uniqBy.uniqBy(arr1.concat(arr2), mapper);
-}
-
-exports.unionBy = unionBy;
Index: de_modules/es-toolkit/dist/array/unionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { uniqBy } from './uniqBy.mjs';
-
-function unionBy(arr1, arr2, mapper) {
-    return uniqBy(arr1.concat(arr2), mapper);
-}
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/array/unionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array of unique values from two given arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom equality function, merges the arrays, and returns
- * a new array containing only the unique values as determined by the custom equality function.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array to merge and filter for unique values.
- * @param {T[]} arr2 - The second array to merge and filter for unique values.
- * @param {(item1: T, item2: T) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
- * It takes two arguments and returns `true` if the elements are considered equal, and `false` otherwise.
- * @returns {T[]} A new array of unique values based on the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }];
- * const array2 = [{ id: 2 }, { id: 3 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = unionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 2 }, { id: 3 }] since { id: 2 } is considered equal in both arrays
- */
-declare function unionWith<T>(arr1: readonly T[], arr2: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/array/unionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array of unique values from two given arrays based on a custom equality function.
- *
- * This function takes two arrays and a custom equality function, merges the arrays, and returns
- * a new array containing only the unique values as determined by the custom equality function.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array to merge and filter for unique values.
- * @param {T[]} arr2 - The second array to merge and filter for unique values.
- * @param {(item1: T, item2: T) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
- * It takes two arguments and returns `true` if the elements are considered equal, and `false` otherwise.
- * @returns {T[]} A new array of unique values based on the custom equality function.
- *
- * @example
- * const array1 = [{ id: 1 }, { id: 2 }];
- * const array2 = [{ id: 2 }, { id: 3 }];
- * const areItemsEqual = (a, b) => a.id === b.id;
- * const result = unionWith(array1, array2, areItemsEqual);
- * // result will be [{ id: 1 }, { id: 2 }, { id: 3 }] since { id: 2 } is considered equal in both arrays
- */
-declare function unionWith<T>(arr1: readonly T[], arr2: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/array/unionWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniqWith = require('./uniqWith.js');
-
-function unionWith(arr1, arr2, areItemsEqual) {
-    return uniqWith.uniqWith(arr1.concat(arr2), areItemsEqual);
-}
-
-exports.unionWith = unionWith;
Index: de_modules/es-toolkit/dist/array/unionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { uniqWith } from './uniqWith.mjs';
-
-function unionWith(arr1, arr2, areItemsEqual) {
-    return uniqWith(arr1.concat(arr2), areItemsEqual);
-}
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/array/uniq.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a duplicate-free version of an array.
- *
- * This function takes an array and returns a new array containing only the unique values
- * from the original array, preserving the order of first occurrence.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @returns {T[]} A new array with only unique values from the original array.
- *
- * @example
- * const array = [1, 2, 2, 3, 4, 4, 5];
- * const result = uniq(array);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function uniq<T>(arr: readonly T[]): T[];
-
-export { uniq };
Index: de_modules/es-toolkit/dist/array/uniq.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a duplicate-free version of an array.
- *
- * This function takes an array and returns a new array containing only the unique values
- * from the original array, preserving the order of first occurrence.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @returns {T[]} A new array with only unique values from the original array.
- *
- * @example
- * const array = [1, 2, 2, 3, 4, 4, 5];
- * const result = uniq(array);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function uniq<T>(arr: readonly T[]): T[];
-
-export { uniq };
Index: de_modules/es-toolkit/dist/array/uniq.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function uniq(arr) {
-    return [...new Set(arr)];
-}
-
-exports.uniq = uniq;
Index: de_modules/es-toolkit/dist/array/uniq.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function uniq(arr) {
-    return [...new Set(arr)];
-}
-
-export { uniq };
Index: de_modules/es-toolkit/dist/array/uniqBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Returns a new array containing only the unique elements from the original array,
- * based on the values returned by the mapper function.
- *
- * When duplicates are found, the first occurrence is kept and the rest are discarded.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of mapped elements.
- * @param {T[]} arr - The array to process.
- * @param {(item: T) => U} mapper - The function used to convert the array elements.
- * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the mapper function.
- *
- * @example
- * ```ts
- * uniqBy([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], Math.floor);
- * // [1.2, 2.1, 3.2, 5.7, 7.19]
- * ```
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' },
- * ];
- * uniqBy(array, item => item.category).length
- * // 2
- * ```
- */
-declare function uniqBy<T, U>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => U): T[];
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/array/uniqBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Returns a new array containing only the unique elements from the original array,
- * based on the values returned by the mapper function.
- *
- * When duplicates are found, the first occurrence is kept and the rest are discarded.
- *
- * @template T - The type of elements in the array.
- * @template U - The type of mapped elements.
- * @param {T[]} arr - The array to process.
- * @param {(item: T) => U} mapper - The function used to convert the array elements.
- * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the mapper function.
- *
- * @example
- * ```ts
- * uniqBy([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], Math.floor);
- * // [1.2, 2.1, 3.2, 5.7, 7.19]
- * ```
- *
- * @example
- * const array = [
- *   { category: 'fruit', name: 'apple' },
- *   { category: 'fruit', name: 'banana' },
- *   { category: 'vegetable', name: 'carrot' },
- * ];
- * uniqBy(array, item => item.category).length
- * // 2
- * ```
- */
-declare function uniqBy<T, U>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => U): T[];
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/array/uniqBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function uniqBy(arr, mapper) {
-    const map = new Map();
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = mapper(item, i, arr);
-        if (!map.has(key)) {
-            map.set(key, item);
-        }
-    }
-    return Array.from(map.values());
-}
-
-exports.uniqBy = uniqBy;
Index: de_modules/es-toolkit/dist/array/uniqBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function uniqBy(arr, mapper) {
-    const map = new Map();
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const key = mapper(item, i, arr);
-        if (!map.has(key)) {
-            map.set(key, item);
-        }
-    }
-    return Array.from(map.values());
-}
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/array/uniqWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns a new array containing only the unique elements from the original array,
- * based on the values returned by the comparator function.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @param {(item1: T, item2: T) => boolean} areItemsEqual - The function used to compare the array elements.
- * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the comparator function.
- *
- * @example
- * ```ts
- * uniqWith([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], (a, b) => Math.abs(a - b) < 1);
- * // [1.2, 3.2, 5.7, 7.19]
- * ```
- */
-declare function uniqWith<T>(arr: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/array/uniqWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns a new array containing only the unique elements from the original array,
- * based on the values returned by the comparator function.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr - The array to process.
- * @param {(item1: T, item2: T) => boolean} areItemsEqual - The function used to compare the array elements.
- * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the comparator function.
- *
- * @example
- * ```ts
- * uniqWith([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], (a, b) => Math.abs(a - b) < 1);
- * // [1.2, 3.2, 5.7, 7.19]
- * ```
- */
-declare function uniqWith<T>(arr: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/array/uniqWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function uniqWith(arr, areItemsEqual) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const isUniq = result.every(v => !areItemsEqual(v, item));
-        if (isUniq) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-exports.uniqWith = uniqWith;
Index: de_modules/es-toolkit/dist/array/uniqWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function uniqWith(arr, areItemsEqual) {
-    const result = [];
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        const isUniq = result.every(v => !areItemsEqual(v, item));
-        if (isUniq) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/array/unzip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Gathers elements in the same position in an internal array
- * from a grouped array of elements and returns them as a new array.
- *
- * @template T - The type of elements in the nested array.
- * @param {Array<[...T]>} zipped - The nested array to unzip.
- * @returns {Unzip<T>} A new array of unzipped elements.
- *
- * @example
- * const zipped = [['a', true, 1],['b', false, 2]];
- * const result = unzip(zipped);
- * // result will be [['a', 'b'], [true, false], [1, 2]]
- */
-declare function unzip<T extends unknown[]>(zipped: ReadonlyArray<[...T]>): Unzip<T>;
-type Unzip<K extends unknown[]> = {
-    [I in keyof K]: Array<K[I]>;
-};
-
-export { unzip };
Index: de_modules/es-toolkit/dist/array/unzip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Gathers elements in the same position in an internal array
- * from a grouped array of elements and returns them as a new array.
- *
- * @template T - The type of elements in the nested array.
- * @param {Array<[...T]>} zipped - The nested array to unzip.
- * @returns {Unzip<T>} A new array of unzipped elements.
- *
- * @example
- * const zipped = [['a', true, 1],['b', false, 2]];
- * const result = unzip(zipped);
- * // result will be [['a', 'b'], [true, false], [1, 2]]
- */
-declare function unzip<T extends unknown[]>(zipped: ReadonlyArray<[...T]>): Unzip<T>;
-type Unzip<K extends unknown[]> = {
-    [I in keyof K]: Array<K[I]>;
-};
-
-export { unzip };
Index: de_modules/es-toolkit/dist/array/unzip.js
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function unzip(zipped) {
-    let maxLen = 0;
-    for (let i = 0; i < zipped.length; i++) {
-        if (zipped[i].length > maxLen) {
-            maxLen = zipped[i].length;
-        }
-    }
-    const result = new Array(maxLen);
-    for (let i = 0; i < maxLen; i++) {
-        result[i] = new Array(zipped.length);
-        for (let j = 0; j < zipped.length; j++) {
-            result[i][j] = zipped[j][i];
-        }
-    }
-    return result;
-}
-
-exports.unzip = unzip;
Index: de_modules/es-toolkit/dist/array/unzip.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function unzip(zipped) {
-    let maxLen = 0;
-    for (let i = 0; i < zipped.length; i++) {
-        if (zipped[i].length > maxLen) {
-            maxLen = zipped[i].length;
-        }
-    }
-    const result = new Array(maxLen);
-    for (let i = 0; i < maxLen; i++) {
-        result[i] = new Array(zipped.length);
-        for (let j = 0; j < zipped.length; j++) {
-            result[i][j] = zipped[j][i];
-        }
-    }
-    return result;
-}
-
-export { unzip };
Index: de_modules/es-toolkit/dist/array/unzipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Unzips an array of arrays, applying an `iteratee` function to regrouped elements.
- *
- * @template T, R
- * @param {T[][]} target - The nested array to unzip. This is an array of arrays,
- * where each inner array contains elements to be unzipped.
- * @param {(...args: T[]) => R} iteratee - A function to transform the unzipped elements.
- * @returns {R[]} A new array of unzipped and transformed elements.
- *
- * @example
- * const nestedArray = [[1, 2], [3, 4], [5, 6]];
- * const result = unzipWith(nestedArray, (item, item2, item3) => item + item2 + item3);
- * // result will be [9, 12]
- */
-declare function unzipWith<T, R>(target: readonly T[][], iteratee: (...args: T[]) => R): R[];
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/array/unzipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Unzips an array of arrays, applying an `iteratee` function to regrouped elements.
- *
- * @template T, R
- * @param {T[][]} target - The nested array to unzip. This is an array of arrays,
- * where each inner array contains elements to be unzipped.
- * @param {(...args: T[]) => R} iteratee - A function to transform the unzipped elements.
- * @returns {R[]} A new array of unzipped and transformed elements.
- *
- * @example
- * const nestedArray = [[1, 2], [3, 4], [5, 6]];
- * const result = unzipWith(nestedArray, (item, item2, item3) => item + item2 + item3);
- * // result will be [9, 12]
- */
-declare function unzipWith<T, R>(target: readonly T[][], iteratee: (...args: T[]) => R): R[];
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/array/unzipWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function unzipWith(target, iteratee) {
-    const maxLength = Math.max(...target.map(innerArray => innerArray.length));
-    const result = new Array(maxLength);
-    for (let i = 0; i < maxLength; i++) {
-        const group = new Array(target.length);
-        for (let j = 0; j < target.length; j++) {
-            group[j] = target[j][i];
-        }
-        result[i] = iteratee(...group);
-    }
-    return result;
-}
-
-exports.unzipWith = unzipWith;
Index: de_modules/es-toolkit/dist/array/unzipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function unzipWith(target, iteratee) {
-    const maxLength = Math.max(...target.map(innerArray => innerArray.length));
-    const result = new Array(maxLength);
-    for (let i = 0; i < maxLength; i++) {
-        const group = new Array(target.length);
-        for (let j = 0; j < target.length; j++) {
-            group[j] = target[j][i];
-        }
-        result[i] = iteratee(...group);
-    }
-    return result;
-}
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/array/windowed.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/**
- * Options for the windowed function.
- *
- * @interface WindowedOptions
- * @property {boolean} [partialWindows=false] - Whether to include partial windows at the end of the array.
- */
-interface WindowedOptions {
-    /**
-     * Whether to include partial windows at the end of the array.
-     *
-     * By default, `windowed` only includes full windows in the result,
-     * ignoring any leftover elements that can't form a full window.
-     *
-     * If `partialWindows` is true, the function will also include these smaller, partial windows at the end of the result.
-     */
-    partialWindows?: boolean;
-}
-/**
- * Creates an array of sub-arrays (windows) from the input array, each of the specified size.
- * The windows can overlap depending on the step size provided.
- *
- * By default, only full windows are included in the result, and any leftover elements that can't form a full window are ignored.
- *
- * If the `partialWindows` option is set to true in the options object, the function will also include partial windows at the end of the result.
- * Partial windows are smaller sub-arrays created when there aren't enough elements left in the input array to form a full window.
- *
- * @template T
- * @param {readonly T[]} arr - The input array to create windows from.
- * @param {number} size - The size of each window. Must be a positive integer.
- * @param {number} [step=1] - The step size between the start of each window. Must be a positive integer.
- * @param {WindowedOptions} [options={}] - Options object to configure the behavior of the function.
- * @param {boolean} [options.partialWindows=false] - Whether to include partial windows at the end of the array.
- * @returns {T[][]} An array of windows (sub-arrays) created from the input array.
- * @throws {Error} If the size or step is not a positive integer.
- *
- * @example
- * windowed([1, 2, 3, 4], 2);
- * // => [[1, 2], [2, 3], [3, 4]]
- *
- * @example
- * windowed([1, 2, 3, 4, 5, 6], 3, 2);
- * // => [[1, 2, 3], [3, 4, 5]]
- *
- * @example
- * windowed([1, 2, 3, 4, 5, 6], 3, 2, { partialWindows: true });
- * // => [[1, 2, 3], [3, 4, 5], [5, 6]]
- */
-declare function windowed<T>(arr: readonly T[], size: number, step?: number, { partialWindows }?: WindowedOptions): T[][];
-
-export { type WindowedOptions, windowed };
Index: de_modules/es-toolkit/dist/array/windowed.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/**
- * Options for the windowed function.
- *
- * @interface WindowedOptions
- * @property {boolean} [partialWindows=false] - Whether to include partial windows at the end of the array.
- */
-interface WindowedOptions {
-    /**
-     * Whether to include partial windows at the end of the array.
-     *
-     * By default, `windowed` only includes full windows in the result,
-     * ignoring any leftover elements that can't form a full window.
-     *
-     * If `partialWindows` is true, the function will also include these smaller, partial windows at the end of the result.
-     */
-    partialWindows?: boolean;
-}
-/**
- * Creates an array of sub-arrays (windows) from the input array, each of the specified size.
- * The windows can overlap depending on the step size provided.
- *
- * By default, only full windows are included in the result, and any leftover elements that can't form a full window are ignored.
- *
- * If the `partialWindows` option is set to true in the options object, the function will also include partial windows at the end of the result.
- * Partial windows are smaller sub-arrays created when there aren't enough elements left in the input array to form a full window.
- *
- * @template T
- * @param {readonly T[]} arr - The input array to create windows from.
- * @param {number} size - The size of each window. Must be a positive integer.
- * @param {number} [step=1] - The step size between the start of each window. Must be a positive integer.
- * @param {WindowedOptions} [options={}] - Options object to configure the behavior of the function.
- * @param {boolean} [options.partialWindows=false] - Whether to include partial windows at the end of the array.
- * @returns {T[][]} An array of windows (sub-arrays) created from the input array.
- * @throws {Error} If the size or step is not a positive integer.
- *
- * @example
- * windowed([1, 2, 3, 4], 2);
- * // => [[1, 2], [2, 3], [3, 4]]
- *
- * @example
- * windowed([1, 2, 3, 4, 5, 6], 3, 2);
- * // => [[1, 2, 3], [3, 4, 5]]
- *
- * @example
- * windowed([1, 2, 3, 4, 5, 6], 3, 2, { partialWindows: true });
- * // => [[1, 2, 3], [3, 4, 5], [5, 6]]
- */
-declare function windowed<T>(arr: readonly T[], size: number, step?: number, { partialWindows }?: WindowedOptions): T[][];
-
-export { type WindowedOptions, windowed };
Index: de_modules/es-toolkit/dist/array/windowed.js
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function windowed(arr, size, step = 1, { partialWindows = false } = {}) {
-    if (size <= 0 || !Number.isInteger(size)) {
-        throw new Error('Size must be a positive integer.');
-    }
-    if (step <= 0 || !Number.isInteger(step)) {
-        throw new Error('Step must be a positive integer.');
-    }
-    const result = [];
-    const end = partialWindows ? arr.length : arr.length - size + 1;
-    for (let i = 0; i < end; i += step) {
-        result.push(arr.slice(i, i + size));
-    }
-    return result;
-}
-
-exports.windowed = windowed;
Index: de_modules/es-toolkit/dist/array/windowed.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-function windowed(arr, size, step = 1, { partialWindows = false } = {}) {
-    if (size <= 0 || !Number.isInteger(size)) {
-        throw new Error('Size must be a positive integer.');
-    }
-    if (step <= 0 || !Number.isInteger(step)) {
-        throw new Error('Step must be a positive integer.');
-    }
-    const result = [];
-    const end = partialWindows ? arr.length : arr.length - size + 1;
-    for (let i = 0; i < end; i += step) {
-        result.push(arr.slice(i, i + size));
-    }
-    return result;
-}
-
-export { windowed };
Index: de_modules/es-toolkit/dist/array/without.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/without.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array that excludes all specified values.
- *
- * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
- *
- * @template T The type of elements in the array.
- * @param {T[]} array - The array to filter.
- * @param {...T[]} values - The values to exclude.
- * @returns {T[]} A new array without the specified values.
- *
- * @example
- * // Removes the specified values from the array
- * without([1, 2, 3, 4, 5], 2, 4);
- * // Returns: [1, 3, 5]
- *
- * @example
- * // Removes specified string values from the array
- * without(['a', 'b', 'c', 'a'], 'a');
- * // Returns: ['b', 'c']
- */
-declare function without<T>(array: readonly T[], ...values: T[]): T[];
-
-export { without };
Index: de_modules/es-toolkit/dist/array/without.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/without.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array that excludes all specified values.
- *
- * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
- *
- * @template T The type of elements in the array.
- * @param {T[]} array - The array to filter.
- * @param {...T[]} values - The values to exclude.
- * @returns {T[]} A new array without the specified values.
- *
- * @example
- * // Removes the specified values from the array
- * without([1, 2, 3, 4, 5], 2, 4);
- * // Returns: [1, 3, 5]
- *
- * @example
- * // Removes specified string values from the array
- * without(['a', 'b', 'c', 'a'], 'a');
- * // Returns: ['b', 'c']
- */
-declare function without<T>(array: readonly T[], ...values: T[]): T[];
-
-export { without };
Index: de_modules/es-toolkit/dist/array/without.js
===================================================================
--- node_modules/es-toolkit/dist/array/without.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const difference = require('./difference.js');
-
-function without(array, ...values) {
-    return difference.difference(array, values);
-}
-
-exports.without = without;
Index: de_modules/es-toolkit/dist/array/without.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/without.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { difference } from './difference.mjs';
-
-function without(array, ...values) {
-    return difference(array, values);
-}
-
-export { without };
Index: de_modules/es-toolkit/dist/array/xor.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xor.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays. The symmetric difference is the set of elements
- * which are in either of the arrays, but not in their intersection.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both.
- *
- * @example
- * // Returns [1, 2, 5, 6]
- * xor([1, 2, 3, 4], [3, 4, 5, 6]);
- *
- * @example
- * // Returns ['a', 'c']
- * xor(['a', 'b'], ['b', 'c']);
- */
-declare function xor<T>(arr1: readonly T[], arr2: readonly T[]): T[];
-
-export { xor };
Index: de_modules/es-toolkit/dist/array/xor.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays. The symmetric difference is the set of elements
- * which are in either of the arrays, but not in their intersection.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both.
- *
- * @example
- * // Returns [1, 2, 5, 6]
- * xor([1, 2, 3, 4], [3, 4, 5, 6]);
- *
- * @example
- * // Returns ['a', 'c']
- * xor(['a', 'b'], ['b', 'c']);
- */
-declare function xor<T>(arr1: readonly T[], arr2: readonly T[]): T[];
-
-export { xor };
Index: de_modules/es-toolkit/dist/array/xor.js
===================================================================
--- node_modules/es-toolkit/dist/array/xor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const difference = require('./difference.js');
-const intersection = require('./intersection.js');
-const union = require('./union.js');
-
-function xor(arr1, arr2) {
-    return difference.difference(union.union(arr1, arr2), intersection.intersection(arr1, arr2));
-}
-
-exports.xor = xor;
Index: de_modules/es-toolkit/dist/array/xor.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xor.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { difference } from './difference.mjs';
-import { intersection } from './intersection.mjs';
-import { union } from './union.mjs';
-
-function xor(arr1, arr2) {
-    return difference(union(arr1, arr2), intersection(arr1, arr2));
-}
-
-export { xor };
Index: de_modules/es-toolkit/dist/array/xorBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays using a custom mapping function.
- * The symmetric difference is the set of elements which are in either of the arrays,
- * but not in their intersection, determined by the result of the mapping function.
- *
- * @template T - Type of elements in the input arrays.
- * @template U - Type of the values returned by the mapping function.
- *
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the values returned by the mapping function.
- *
- * @example
- * // Custom mapping function for objects with an 'id' property
- * const idMapper = obj => obj.id;
- * xorBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
- * // Returns [{ id: 1 }, { id: 3 }]
- */
-declare function xorBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/array/xorBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays using a custom mapping function.
- * The symmetric difference is the set of elements which are in either of the arrays,
- * but not in their intersection, determined by the result of the mapping function.
- *
- * @template T - Type of elements in the input arrays.
- * @template U - Type of the values returned by the mapping function.
- *
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the values returned by the mapping function.
- *
- * @example
- * // Custom mapping function for objects with an 'id' property
- * const idMapper = obj => obj.id;
- * xorBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
- * // Returns [{ id: 1 }, { id: 3 }]
- */
-declare function xorBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/array/xorBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const differenceBy = require('./differenceBy.js');
-const intersectionBy = require('./intersectionBy.js');
-const unionBy = require('./unionBy.js');
-
-function xorBy(arr1, arr2, mapper) {
-    const union = unionBy.unionBy(arr1, arr2, mapper);
-    const intersection = intersectionBy.intersectionBy(arr1, arr2, mapper);
-    return differenceBy.differenceBy(union, intersection, mapper);
-}
-
-exports.xorBy = xorBy;
Index: de_modules/es-toolkit/dist/array/xorBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { differenceBy } from './differenceBy.mjs';
-import { intersectionBy } from './intersectionBy.mjs';
-import { unionBy } from './unionBy.mjs';
-
-function xorBy(arr1, arr2, mapper) {
-    const union = unionBy(arr1, arr2, mapper);
-    const intersection = intersectionBy(arr1, arr2, mapper);
-    return differenceBy(union, intersection, mapper);
-}
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/array/xorWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays using a custom equality function.
- * The symmetric difference is the set of elements which are in either of the arrays,
- * but not in their intersection.
- *
- * @template T - Type of elements in the input arrays.
- *
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item1: T, item2: T) => boolean} areElementsEqual - The custom equality function to compare elements.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the custom equality function.
- *
- * @example
- * // Custom equality function for objects with an 'id' property
- * const areObjectsEqual = (a, b) => a.id === b.id;
- * xorWith([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], areObjectsEqual);
- * // Returns [{ id: 1 }, { id: 3 }]
- */
-declare function xorWith<T>(arr1: readonly T[], arr2: readonly T[], areElementsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/array/xorWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Computes the symmetric difference between two arrays using a custom equality function.
- * The symmetric difference is the set of elements which are in either of the arrays,
- * but not in their intersection.
- *
- * @template T - Type of elements in the input arrays.
- *
- * @param {T[]} arr1 - The first array.
- * @param {T[]} arr2 - The second array.
- * @param {(item1: T, item2: T) => boolean} areElementsEqual - The custom equality function to compare elements.
- * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the custom equality function.
- *
- * @example
- * // Custom equality function for objects with an 'id' property
- * const areObjectsEqual = (a, b) => a.id === b.id;
- * xorWith([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], areObjectsEqual);
- * // Returns [{ id: 1 }, { id: 3 }]
- */
-declare function xorWith<T>(arr1: readonly T[], arr2: readonly T[], areElementsEqual: (item1: T, item2: T) => boolean): T[];
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/array/xorWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const differenceWith = require('./differenceWith.js');
-const intersectionWith = require('./intersectionWith.js');
-const unionWith = require('./unionWith.js');
-
-function xorWith(arr1, arr2, areElementsEqual) {
-    const union = unionWith.unionWith(arr1, arr2, areElementsEqual);
-    const intersection = intersectionWith.intersectionWith(arr1, arr2, areElementsEqual);
-    return differenceWith.differenceWith(union, intersection, areElementsEqual);
-}
-
-exports.xorWith = xorWith;
Index: de_modules/es-toolkit/dist/array/xorWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { differenceWith } from './differenceWith.mjs';
-import { intersectionWith } from './intersectionWith.mjs';
-import { unionWith } from './unionWith.mjs';
-
-function xorWith(arr1, arr2, areElementsEqual) {
-    const union = unionWith(arr1, arr2, areElementsEqual);
-    const intersection = intersectionWith(arr1, arr2, areElementsEqual);
-    return differenceWith(union, intersection, areElementsEqual);
-}
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/array/zip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zip.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,106 +1,0 @@
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {T[]} arr1 - The first array to zip.
- * @returns {Array<[T]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const result = zip(arr1);
- * // result will be [[1], [2], [3]]
- */
-declare function zip<T>(arr1: readonly T[]): Array<[T]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @returns {Array<[T, U]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zip(arr1, arr2);
- * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
- */
-declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @returns {Array<[T, U, V]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-declare function zip<T, U, V>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[]): Array<[T, U, V]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {W[]} arr4 - The fourth array to zip.
- * @returns {Array<[T, U, V, W]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const result = zip(arr1, arr2, arr3, arr4);
- * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
- */
-declare function zip<T, U, V, W>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[]): Array<[T, U, V, W]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {...Array<readonly T[]>} arrs - The arrays to zip together.
- * @returns {T[][]} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-declare function zip<T>(...arrs: Array<readonly T[]>): T[][];
-
-export { zip };
Index: de_modules/es-toolkit/dist/array/zip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,106 +1,0 @@
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {T[]} arr1 - The first array to zip.
- * @returns {Array<[T]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const result = zip(arr1);
- * // result will be [[1], [2], [3]]
- */
-declare function zip<T>(arr1: readonly T[]): Array<[T]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @returns {Array<[T, U]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zip(arr1, arr2);
- * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
- */
-declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @returns {Array<[T, U, V]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-declare function zip<T, U, V>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[]): Array<[T, U, V]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {W[]} arr4 - The fourth array to zip.
- * @returns {Array<[T, U, V, W]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const result = zip(arr1, arr2, arr3, arr4);
- * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
- */
-declare function zip<T, U, V, W>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[]): Array<[T, U, V, W]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {...Array<readonly T[]>} arrs - The arrays to zip together.
- * @returns {T[][]} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-declare function zip<T>(...arrs: Array<readonly T[]>): T[][];
-
-export { zip };
Index: de_modules/es-toolkit/dist/array/zip.js
===================================================================
--- node_modules/es-toolkit/dist/array/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function zip(...arrs) {
-    let rowCount = 0;
-    for (let i = 0; i < arrs.length; i++) {
-        if (arrs[i].length > rowCount) {
-            rowCount = arrs[i].length;
-        }
-    }
-    const columnCount = arrs.length;
-    const result = Array(rowCount);
-    for (let i = 0; i < rowCount; ++i) {
-        const row = Array(columnCount);
-        for (let j = 0; j < columnCount; ++j) {
-            row[j] = arrs[j][i];
-        }
-        result[i] = row;
-    }
-    return result;
-}
-
-exports.zip = zip;
Index: de_modules/es-toolkit/dist/array/zip.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zip.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-function zip(...arrs) {
-    let rowCount = 0;
-    for (let i = 0; i < arrs.length; i++) {
-        if (arrs[i].length > rowCount) {
-            rowCount = arrs[i].length;
-        }
-    }
-    const columnCount = arrs.length;
-    const result = Array(rowCount);
-    for (let i = 0; i < rowCount; ++i) {
-        const row = Array(columnCount);
-        for (let j = 0; j < columnCount; ++j) {
-            row[j] = arrs[j][i];
-        }
-        result[i] = row;
-    }
-    return result;
-}
-
-export { zip };
Index: de_modules/es-toolkit/dist/array/zipObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Combines two arrays, one of property names and one of corresponding values, into a single object.
- *
- * This function takes two arrays: one containing property names and another containing corresponding values.
- * It returns a new object where the property names from the first array are keys, and the corresponding elements
- * from the second array are values. If the `keys` array is longer than the `values` array, the remaining keys will
- * have `undefined` as their values.
- *
- * @template P - The type of elements in the array.
- * @template V - The type of elements in the array.
- * @param {P[]} keys - An array of property names.
- * @param {V[]} values - An array of values corresponding to the property names.
- * @returns {Record<P, V>} - A new object composed of the given property names and values.
- *
- * @example
- * const keys = ['a', 'b', 'c'];
- * const values = [1, 2, 3];
- * const result = zipObject(keys, values);
- * // result will be { a: 1, b: 2, c: 3 }
- *
- * const keys2 = ['a', 'b', 'c'];
- * const values2 = [1, 2];
- * const result2 = zipObject(keys2, values2);
- * // result2 will be { a: 1, b: 2, c: undefined }
- *
- * const keys2 = ['a', 'b'];
- * const values2 = [1, 2, 3];
- * const result2 = zipObject(keys2, values2);
- * // result2 will be { a: 1, b: 2 }
- */
-declare function zipObject<P extends PropertyKey, V>(keys: readonly P[], values: readonly V[]): Record<P, V>;
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/array/zipObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Combines two arrays, one of property names and one of corresponding values, into a single object.
- *
- * This function takes two arrays: one containing property names and another containing corresponding values.
- * It returns a new object where the property names from the first array are keys, and the corresponding elements
- * from the second array are values. If the `keys` array is longer than the `values` array, the remaining keys will
- * have `undefined` as their values.
- *
- * @template P - The type of elements in the array.
- * @template V - The type of elements in the array.
- * @param {P[]} keys - An array of property names.
- * @param {V[]} values - An array of values corresponding to the property names.
- * @returns {Record<P, V>} - A new object composed of the given property names and values.
- *
- * @example
- * const keys = ['a', 'b', 'c'];
- * const values = [1, 2, 3];
- * const result = zipObject(keys, values);
- * // result will be { a: 1, b: 2, c: 3 }
- *
- * const keys2 = ['a', 'b', 'c'];
- * const values2 = [1, 2];
- * const result2 = zipObject(keys2, values2);
- * // result2 will be { a: 1, b: 2, c: undefined }
- *
- * const keys2 = ['a', 'b'];
- * const values2 = [1, 2, 3];
- * const result2 = zipObject(keys2, values2);
- * // result2 will be { a: 1, b: 2 }
- */
-declare function zipObject<P extends PropertyKey, V>(keys: readonly P[], values: readonly V[]): Record<P, V>;
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/array/zipObject.js
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function zipObject(keys, values) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        result[keys[i]] = values[i];
-    }
-    return result;
-}
-
-exports.zipObject = zipObject;
Index: de_modules/es-toolkit/dist/array/zipObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function zipObject(keys, values) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        result[keys[i]] = values[i];
-    }
-    return result;
-}
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/array/zipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-/**
- * Combines multiple arrays into a single array using a custom combiner function.
- *
- * This function takes multiple arrays and a combiner function, and returns a new array where each element
- * is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @template T - The type of elements in the first array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {(item: T, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @example
- * // Example usage with two arrays:
- * const arr1 = [1, 2, 3];
- * const arr2 = [4, 5, 6];
- * const result = zipWith(arr1, arr2, (a, b) => a + b);
- * // result will be [5, 7, 9]
- *
- * @example
- * // Example usage with three arrays:
- * const arr1 = [1, 2];
- * const arr2 = [3, 4];
- * const arr3 = [5, 6];
- * const result = zipWith(arr1, arr2, arr3, (a, b, c) => `${a}${b}${c}`);
- * // result will be [`135`, `246`]
- */
-declare function zipWith<T, R>(arr1: readonly T[], combine: (item: T, index: number) => R): R[];
-/**
- * Combines two arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {(item1: T, item2: U, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, R>(arr1: readonly T[], arr2: readonly U[], combine: (item1: T, item2: U, index: number) => R): R[];
-/**
- * Combines three arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {(item1: T, item2: U, item3: V, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], combine: (item1: T, item2: U, item3: V, index: number) => R): R[];
-/**
- * Combines four arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {W[]} arr4 - The fourth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[], combine: (item1: T, item2: U, item3: V, item4: W, index: number) => R): R[];
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/array/zipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-/**
- * Combines multiple arrays into a single array using a custom combiner function.
- *
- * This function takes multiple arrays and a combiner function, and returns a new array where each element
- * is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @template T - The type of elements in the first array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {(item: T, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @example
- * // Example usage with two arrays:
- * const arr1 = [1, 2, 3];
- * const arr2 = [4, 5, 6];
- * const result = zipWith(arr1, arr2, (a, b) => a + b);
- * // result will be [5, 7, 9]
- *
- * @example
- * // Example usage with three arrays:
- * const arr1 = [1, 2];
- * const arr2 = [3, 4];
- * const arr3 = [5, 6];
- * const result = zipWith(arr1, arr2, arr3, (a, b, c) => `${a}${b}${c}`);
- * // result will be [`135`, `246`]
- */
-declare function zipWith<T, R>(arr1: readonly T[], combine: (item: T, index: number) => R): R[];
-/**
- * Combines two arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {(item1: T, item2: U, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, R>(arr1: readonly T[], arr2: readonly U[], combine: (item1: T, item2: U, index: number) => R): R[];
-/**
- * Combines three arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {(item1: T, item2: U, item3: V, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], combine: (item1: T, item2: U, item3: V, index: number) => R): R[];
-/**
- * Combines four arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template R - The type of elements in the resulting array.
- * @param {T[]} arr1 - The first array to zip.
- * @param {U[]} arr2 - The second array to zip.
- * @param {V[]} arr3 - The third array to zip.
- * @param {W[]} arr4 - The fourth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[], combine: (item1: T, item2: U, item3: V, item4: W, index: number) => R): R[];
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/array/zipWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function zipWith(arr1, ...rest) {
-    const arrs = [arr1, ...rest.slice(0, -1)];
-    const combine = rest[rest.length - 1];
-    const maxIndex = Math.max(...arrs.map(arr => arr.length));
-    const result = Array(maxIndex);
-    for (let i = 0; i < maxIndex; i++) {
-        const elements = arrs.map(arr => arr[i]);
-        result[i] = combine(...elements, i);
-    }
-    return result;
-}
-
-exports.zipWith = zipWith;
Index: de_modules/es-toolkit/dist/array/zipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function zipWith(arr1, ...rest) {
-    const arrs = [arr1, ...rest.slice(0, -1)];
-    const combine = rest[rest.length - 1];
-    const maxIndex = Math.max(...arrs.map(arr => arr.length));
-    const result = Array(maxIndex);
-    for (let i = 0; i < maxIndex; i++) {
-        const elements = arrs.map(arr => arr[i]);
-        result[i] = combine(...elements, i);
-    }
-    return result;
-}
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/browser.global.js
===================================================================
--- node_modules/es-toolkit/dist/browser.global.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)._={})}(this,(function(e){"use strict";function castArray(e){return 0===arguments.length?[]:Array.isArray(e)?e:[e]}function toArray$1(e){return Array.isArray(e)?e:Array.from(e)}function isArrayLike(e){return null!=e&&"function"!=typeof e&&function isLength$1(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function chunk(e,t=1){return 0!==(t=Math.max(Math.floor(t),0))&&isArrayLike(e)?function chunk$1(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Size must be an integer greater than zero.");const n=Math.ceil(e.length/t),r=Array(n);for(let i=0;i<n;i++){const n=i*t,o=n+t;r[i]=e.slice(n,o)}return r}(toArray$1(e),t):[]}function compact(e){return isArrayLike(e)?function compact$1(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];r&&t.push(r)}return t}(Array.from(e)):[]}function flatten$1(e,t=1){const n=[],r=Math.floor(t),recursive=(e,t)=>{for(let i=0;i<e.length;i++){const o=e[i];Array.isArray(o)&&t<r?recursive(o,t+1):n.push(o)}};recursive(e,0);return n}function concat(...e){return flatten$1(e)}function identity$1(e){return e}function isUnsafeProperty(e){return"__proto__"===e}function isDeepKey(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function toKey(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function toString(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(toString).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}function toPath(e){if(Array.isArray(e))return e.map(toKey);if("symbol"==typeof e)return[e];const t=[],n=(e=toString(e)).length;if(0===n)return t;let r=0,i="",o="",s=!1;if(46===e.charCodeAt(0)){t.push("");r++}for(;r<n;){const u=e[r];if(o)if("\\"===u&&r+1<n){r++;i+=e[r]}else u===o?o="":i+=u;else if(s)if('"'===u||"'"===u)o=u;else if("]"===u){s=!1;t.push(i);i=""}else i+=u;else if("["===u){s=!0;if(i){t.push(i);i=""}}else if("."===u){if(i){t.push(i);i=""}}else i+=u;r++}i&&t.push(i);return t}function get(e,t,n){if(null==e)return n;switch(typeof t){case"string":{if(isUnsafeProperty(t))return n;const r=e[t];return void 0===r?isDeepKey(t)?get(e,toPath(t),n):n:r}case"number":case"symbol":{"number"==typeof t&&(t=toKey(t));const r=e[t];return void 0===r?n:r}default:{if(Array.isArray(t))return function getWithPath(e,t,n){if(0===t.length)return n;let r=e;for(let e=0;e<t.length;e++){if(null==r)return n;if(isUnsafeProperty(t[e]))return n;r=r[t[e]]}if(void 0===r)return n;return r}(e,t,n);if(isUnsafeProperty(t=Object.is(t?.valueOf(),-0)?"-0":String(t)))return n;const r=e[t];return void 0===r?n:r}}}function property(e){return function(t){return get(t,e)}}function isObject(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function isPrimitive(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function isEqualsSameValueZero(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function isMatchWith(e,t,n){return"function"!=typeof n?isMatchWith(e,t,(()=>{})):isMatchWithInternal(e,t,(function doesMatch(e,t,r,i,o,s){const u=n(e,t,r,i,o,s);return void 0!==u?Boolean(u):isMatchWithInternal(e,t,doesMatch,s)}),new Map)}function isMatchWithInternal(e,t,n,r){if(t===e)return!0;switch(typeof t){case"object":return function isObjectMatch(e,t,n,r){if(null==t)return!0;if(Array.isArray(t))return isArrayMatch(e,t,n,r);if(t instanceof Map)return function isMapMatch(e,t,n,r){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[i,o]of t.entries()){if(!1===n(e.get(i),o,i,e,t,r))return!1}return!0}(e,t,n,r);if(t instanceof Set)return function isSetMatch(e,t,n,r){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return isArrayMatch([...e],[...t],n,r)}(e,t,n,r);const i=Object.keys(t);if(null==e||isPrimitive(e))return 0===i.length;if(0===i.length)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let o=0;o<i.length;o++){const s=i[o];if(!isPrimitive(e)&&!(s in e))return!1;if(void 0===t[s]&&void 0!==e[s])return!1;if(null===t[s]&&null!==e[s])return!1;if(!n(e[s],t[s],s,e,t,r))return!1}return!0}finally{r?.delete(t)}}(e,t,n,r);case"function":return Object.keys(t).length>0?isMatchWithInternal(e,{...t},n,r):isEqualsSameValueZero(e,t);default:return isObject(e)?"string"!=typeof t||""===t:isEqualsSameValueZero(e,t)}}function isArrayMatch(e,t,n,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const i=new Set;for(let o=0;o<t.length;o++){const s=t[o];let u=!1;for(let a=0;a<e.length;a++){if(i.has(a))continue;let c=!1;n(e[a],s,o,e,t,r)&&(c=!0);if(c){i.add(a);u=!0;break}}if(!u)return!1}return!0}function isMatch(e,t){return isMatchWith(e,t,(()=>{}))}function getSymbols(e){return Object.getOwnPropertySymbols(e).filter((t=>Object.prototype.propertyIsEnumerable.call(e,t)))}function getTag(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const t="[object RegExp]",n="[object String]",r="[object Number]",i="[object Boolean]",o="[object Arguments]",s="[object Symbol]",u="[object Date]",a="[object Map]",c="[object Set]",l="[object Array]",f="[object Function]",p="[object ArrayBuffer]",y="[object Object]",h="[object Error]",g="[object DataView]",d="[object Uint8Array]",m="[object Uint8ClampedArray]",b="[object Uint16Array]",A="[object Uint32Array]",O="[object BigUint64Array]",$="[object Int8Array]",j="[object Int16Array]",w="[object Int32Array]",k="[object BigInt64Array]",I="[object Float32Array]",v="[object Float64Array]";function isTypedArray$1(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function cloneDeepWithImpl(e,f,h,O=new Map,k=void 0){const S=k?.(e,f,h,O);if(void 0!==S)return S;if(isPrimitive(e))return e;if(O.has(e))return O.get(e);if(Array.isArray(e)){const t=new Array(e.length);O.set(e,t);for(let n=0;n<e.length;n++)t[n]=cloneDeepWithImpl(e[n],n,h,O,k);Object.hasOwn(e,"index")&&(t.index=e.index);Object.hasOwn(e,"input")&&(t.input=e.input);return t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const t=new RegExp(e.source,e.flags);t.lastIndex=e.lastIndex;return t}if(e instanceof Map){const t=new Map;O.set(e,t);for(const[n,r]of e)t.set(n,cloneDeepWithImpl(r,n,h,O,k));return t}if(e instanceof Set){const t=new Set;O.set(e,t);for(const n of e)t.add(cloneDeepWithImpl(n,void 0,h,O,k));return t}if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return e.subarray();if(isTypedArray$1(e)){const t=new(Object.getPrototypeOf(e).constructor)(e.length);O.set(e,t);for(let n=0;n<e.length;n++)t[n]=cloneDeepWithImpl(e[n],n,h,O,k);return t}if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);O.set(e,t);copyProperties(t,e,h,O,k);return t}if("undefined"!=typeof File&&e instanceof File){const t=new File([e],e.name,{type:e.type});O.set(e,t);copyProperties(t,e,h,O,k);return t}if("undefined"!=typeof Blob&&e instanceof Blob){const t=new Blob([e],{type:e.type});O.set(e,t);copyProperties(t,e,h,O,k);return t}if(e instanceof Error){const t=new e.constructor;O.set(e,t);t.message=e.message;t.name=e.name;t.stack=e.stack;t.cause=e.cause;copyProperties(t,e,h,O,k);return t}if(e instanceof Boolean){const t=new Boolean(e.valueOf());O.set(e,t);copyProperties(t,e,h,O,k);return t}if(e instanceof Number){const t=new Number(e.valueOf());O.set(e,t);copyProperties(t,e,h,O,k);return t}if(e instanceof String){const t=new String(e.valueOf());O.set(e,t);copyProperties(t,e,h,O,k);return t}if("object"==typeof e&&function isCloneableObject$1(e){switch(getTag(e)){case o:case l:case p:case g:case i:case u:case I:case v:case $:case j:case w:case a:case r:case y:case t:case c:case n:case s:case d:case m:case b:case A:return!0;default:return!1}}(e)){const t=Object.create(Object.getPrototypeOf(e));O.set(e,t);copyProperties(t,e,h,O,k);return t}return e}function copyProperties(e,t,n=e,r,i){const o=[...Object.keys(t),...getSymbols(t)];for(let s=0;s<o.length;s++){const u=o[s],a=Object.getOwnPropertyDescriptor(e,u);(null==a||a.writable)&&(e[u]=cloneDeepWithImpl(t[u],u,n,r,i))}}function cloneDeep$1(e){return cloneDeepWithImpl(e,void 0,e,new Map,void 0)}function matches(e){e=cloneDeep$1(e);return t=>isMatch(t,e)}function cloneDeepWith(e,t){return function cloneDeepWith$1(e,t){return cloneDeepWithImpl(e,void 0,e,new Map,t)}(e,((s,u,a,c)=>{const l=t?.(s,u,a,c);if(void 0!==l)return l;if("object"==typeof e){if(getTag(e)===y&&"function"!=typeof e.constructor){const t={};c.set(e,t);copyProperties(t,e,a,c);return t}switch(Object.prototype.toString.call(e)){case r:case n:case i:{const t=new e.constructor(e?.valueOf());copyProperties(t,e);return t}case o:{const t={};copyProperties(t,e);t.length=e.length;t[Symbol.iterator]=e[Symbol.iterator];return t}default:return}}}))}function cloneDeep(e){return cloneDeepWith(e)}const S=/^(?:0|[1-9]\d*)$/;function isIndex(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return S.test(e)}}function isArguments(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===getTag(e)}function has(e,t){let n;n=Array.isArray(t)?t:"string"==typeof t&&isDeepKey(t)&&null==e?.[t]?toPath(t):[t];if(0===n.length)return!1;let r=e;for(let e=0;e<n.length;e++){const t=n[e];if(null==r||!Object.hasOwn(r,t)){if(!((Array.isArray(r)||isArguments(r))&&isIndex(t)&&t<r.length))return!1}r=r[t]}return!0}function matchesProperty(e,t){switch(typeof e){case"object":Object.is(e?.valueOf(),-0)&&(e="-0");break;case"number":e=toKey(e)}t=cloneDeep(t);return function(n){const r=get(n,e);return void 0===r?has(n,e):void 0===t?void 0===r:isMatch(r,t)}}function iteratee(e){if(null==e)return identity$1;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?matchesProperty(e[0],e[1]):matches(e);case"string":case"symbol":case"number":return property(e)}}function countBy(e,t){if(null==e)return{};const n=isArrayLike(e)?Array.from(e):Object.values(e),r=iteratee(t??void 0),i=Object.create(null);for(let e=0;e<n.length;e++){const t=r(n[e]);i[t]=(i[t]??0)+1}return i}function difference$1(e,t){const n=new Set(t);return e.filter((e=>!n.has(e)))}function isObjectLike(e){return"object"==typeof e&&null!==e}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}function difference(e,...t){if(!isArrayLikeObject(e))return[];const n=toArray$1(e),r=[];for(let e=0;e<t.length;e++){const n=t[e];isArrayLikeObject(n)&&r.push(...Array.from(n))}return difference$1(n,r)}function last$1(e){return e[e.length-1]}function last(e){if(isArrayLike(e))return last$1(toArray$1(e))}function flattenArrayLike(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];if(isArrayLikeObject(r))for(let e=0;e<r.length;e++)t.push(r[e])}return t}function differenceBy(e,...t){if(!isArrayLikeObject(e))return[];const n=last(t),r=flattenArrayLike(t);return isArrayLikeObject(n)?difference$1(Array.from(e),r):function differenceBy$1(e,t,n){const r=new Set(t.map((e=>n(e))));return e.filter((e=>!r.has(n(e))))}(Array.from(e),r,iteratee(n))}function differenceWith(e,...t){if(!isArrayLikeObject(e))return[];const n=last(t),r=flattenArrayLike(t);return"function"==typeof n?function differenceWith$1(e,t,n){return e.filter((e=>t.every((t=>!n(e,t)))))}(Array.from(e),r,n):difference$1(Array.from(e),r)}function isSymbol$1(e){return"symbol"==typeof e||e instanceof Symbol}function toNumber(e){return isSymbol$1(e)?NaN:Number(e)}function toFinite(e){if(!e)return 0===e?e:0;if((e=toNumber(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e==e?e:0}function toInteger(e){const t=toFinite(e),n=t%1;return n?t-n:t}function drop(e,t=1,n){if(!isArrayLike(e))return[];t=n?1:toInteger(t);return function drop$1(e,t){t=Math.max(t,0);return e.slice(t)}(toArray$1(e),t)}function dropRight(e,t=1,n){if(!isArrayLike(e))return[];t=n?1:toInteger(t);return function dropRight$1(e,t){return 0===(t=Math.min(-t,0))?e.slice():e.slice(0,t)}(toArray$1(e),t)}function dropRightWhile$1(e,t){for(let n=e.length-1;n>=0;n--)if(!t(e[n],n,e))return e.slice(0,n+1);return[]}function dropRightWhile(e,t=identity$1){return isArrayLike(e)?function dropRightWhileImpl(e,t){switch(typeof t){case"function":return dropRightWhile$1(e,((e,n,r)=>Boolean(t(e,n,r))));case"object":if(Array.isArray(t)&&2===t.length){return dropRightWhile$1(e,matchesProperty(t[0],t[1]))}return dropRightWhile$1(e,matches(t));case"symbol":case"number":case"string":return dropRightWhile$1(e,property(t))}}(Array.from(e),t):[]}function dropWhile$1(e,t){const n=e.findIndex(((e,n,r)=>!t(e,n,r)));return-1===n?[]:e.slice(n)}function dropWhile(e,t=identity$1){return isArrayLike(e)?function dropWhileImpl(e,t){switch(typeof t){case"function":return dropWhile$1(e,((e,n,r)=>Boolean(t(e,n,r))));case"object":if(Array.isArray(t)&&2===t.length){return dropWhile$1(e,matchesProperty(t[0],t[1]))}return dropWhile$1(e,matches(t));case"number":case"symbol":case"string":return dropWhile$1(e,property(t))}}(toArray$1(e),t):[]}function range$1(e,t,n=1){if(null==t){t=e;e=0}if(!Number.isInteger(n)||0===n)throw new Error("The step value must be a non-zero integer.");const r=Math.max(Math.ceil((t-e)/n),0),i=new Array(r);for(let t=0;t<r;t++)i[t]=e+t*n;return i}function forEach(e,t=identity$1){if(!e)return e;const n=isArrayLike(e)||Array.isArray(e)?range$1(0,e.length):Object.keys(e);for(let r=0;r<n.length;r++){const i=n[r];if(!1===t(e[i],i,e))break}return e}function forEachRight(e,t=identity$1){if(!e)return e;const n=isArrayLike(e)?range$1(0,e.length):Object.keys(e);for(let r=n.length-1;r>=0;r--){const i=n[r];if(!1===t(e[i],i,e))break}return e}function isIterateeCall(e,t,n){return!!isObject(n)&&(!!("number"==typeof t&&isArrayLike(n)&&isIndex(t)&&t<n.length||"string"==typeof t&&t in n)&&isEqualsSameValueZero(n[t],e))}function every(e,t,n){if(!e)return!0;n&&isIterateeCall(e,t,n)&&(t=void 0);t||(t=identity$1);let r;switch(typeof t){case"function":r=t;break;case"object":if(Array.isArray(t)&&2===t.length){r=matchesProperty(t[0],t[1])}else r=matches(t);break;case"symbol":case"number":case"string":r=property(t)}if(!isArrayLike(e)){const t=Object.keys(e);for(let n=0;n<t.length;n++){const i=t[n];if(!r(e[i],i,e))return!1}return!0}for(let t=0;t<e.length;t++)if(!r(e[t],t,e))return!1;return!0}function isString(e){return"string"==typeof e||e instanceof String}function fill(e,t,n=0,r=(e?e.length:0)){if(!isArrayLike(e))return[];if(isString(e))return e;(n=Math.floor(n))||(n=0);(r=Math.floor(r))||(r=0);return function fill$1(e,t,n=0,r=e.length){const i=e.length,o=Math.max(n>=0?n:i+n,0),s=Math.min(r>=0?r:i+r,i);for(let n=o;n<s;n++)e[n]=t;return e}(e,t,n,r)}function filter(e,t=identity$1){if(!e)return[];t=iteratee(t);if(!Array.isArray(e)){const n=[],r=Object.keys(e),i=isArrayLike(e)?e.length:r.length;for(let o=0;o<i;o++){const i=r[o],s=e[i];t(s,i,e)&&n.push(s)}return n}const n=[],r=e.length;for(let i=0;i<r;i++){const r=e[i];t(r,i,e)&&n.push(r)}return n}function find(e,t=identity$1,n=0){if(!e)return;n<0&&(n=Math.max(e.length+n,0));const r=iteratee(t);if(Array.isArray(e))return e.slice(n).find(r);{const t=Object.keys(e);for(let i=n;i<t.length;i++){const n=t[i],o=e[n];if(r(o,n,e))return o}}}function findIndex(e,t,n=0){if(!e)return-1;n<0&&(n=Math.max(e.length+n,0));const r=Array.from(e).slice(n);let i=-1;switch(typeof t){case"function":i=r.findIndex(t);break;case"object":if(Array.isArray(t)&&2===t.length){const e=t[0],n=t[1];i=r.findIndex(matchesProperty(e,n))}else i=r.findIndex(matches(t));break;case"number":case"symbol":case"string":i=r.findIndex(property(t))}return-1===i?-1:i+n}function findLast(e,t=identity$1,n){if(!e)return;const r=Array.isArray(e)?e.length:Object.keys(e).length;n=(n=toInteger(n??r-1))<0?Math.max(r+n,0):Math.min(n,r-1);const i=iteratee(t);if(Array.isArray(e))return e.slice(0,n+1).findLast(i);{const t=Object.keys(e);for(let r=n;r>=0;r--){const n=t[r],o=e[n];if(i(o,n,e))return o}}}function findLastIndex(e,t=identity$1,n=(e?e.length-1:0)){if(!e)return-1;n=n<0?Math.max(e.length+n,0):Math.min(n,e.length-1);const r=toArray$1(e).slice(0,n+1);switch(typeof t){case"function":return r.findLastIndex(t);case"object":if(Array.isArray(t)&&2===t.length){const e=t[0],n=t[1];return r.findLastIndex(matchesProperty(e,n))}return r.findLastIndex(matches(t));case"number":case"symbol":case"string":return r.findLastIndex(property(t))}}function head(e){if(isArrayLike(e))return function head$1(e){return e[0]}(toArray$1(e))}function flatten(e,t=1){const n=[],r=Math.floor(t);if(!isArrayLike(e))return n;const recursive=(e,t)=>{for(let i=0;i<e.length;i++){const o=e[i];t<r&&(Array.isArray(o)||Boolean(o?.[Symbol.isConcatSpreadable])||null!==o&&"object"==typeof o&&"[object Arguments]"===Object.prototype.toString.call(o))?Array.isArray(o)?recursive(o,t+1):recursive(Array.from(o),t+1):n.push(o)}};recursive(Array.from(e),0);return n}function flattenDepth(e,t=1){return flatten(e,t)}function map(e,t){if(!e)return[];const n=isArrayLike(e)||Array.isArray(e)?range$1(0,e.length):Object.keys(e),r=iteratee(t??identity$1),i=new Array(n.length);for(let t=0;t<n.length;t++){const o=n[t],s=e[o];i[t]=r(s,o,e)}return i}function isNil$1(e){return null==e}function flatMap(e,t){if(isNil$1(e))return[];return flattenDepth(isNil$1(t)?map(e):map(e,t),1)}function flatMapDepth(e,t=identity$1,n=1){if(null==e)return[];return flatten(map(e,iteratee(t)),n)}function flatMapDeep(e,t){return flatMapDepth(e,t,1/0)}function flattenDeep(e){return flattenDepth(e,1/0)}function groupBy(e,t){if(null==e)return{};return function groupBy$1(e,t){const n={};for(let r=0;r<e.length;r++){const i=e[r],o=t(i,r,e);Object.hasOwn(n,o)||(n[o]=[]);n[o].push(i)}return n}(isArrayLike(e)?Array.from(e):Object.values(e),iteratee(t??identity$1))}function includes(e,t,n,r){if(null==e)return!1;n=r||!n?0:toInteger(n);if(isString(e)){if(n>e.length||t instanceof RegExp)return!1;n<0&&(n=Math.max(0,e.length+n));return e.includes(t,n)}if(Array.isArray(e))return e.includes(t,n);const i=Object.keys(e);n<0&&(n=Math.max(0,i.length+n));for(let r=n;r<i.length;r++){if(isEqualsSameValueZero(Reflect.get(e,i[r]),t))return!0}return!1}function indexOf(e,t,n){if(!isArrayLike(e))return-1;if(Number.isNaN(t)){(n=n??0)<0&&(n=Math.max(0,e.length+n));for(let t=n;t<e.length;t++)if(Number.isNaN(e[t]))return t;return-1}return Array.from(e).indexOf(t,n)}function initial(e){return isArrayLike(e)?function initial$1(e){return e.slice(0,-1)}(Array.from(e)):[]}function intersection$1(e,t){const n=new Set(t);return e.filter((e=>n.has(e)))}function uniq$1(e){return[...new Set(e)]}function intersection(...e){if(0===e.length)return[];if(!isArrayLikeObject(e[0]))return[];let t=uniq$1(Array.from(e[0]));for(let n=1;n<e.length;n++){const r=e[n];if(!isArrayLikeObject(r))return[];t=intersection$1(t,Array.from(r))}return t}function intersectionBy$1(e,t,n){const r=[],i=new Set(t.map(n));for(let t=0;t<e.length;t++){const o=e[t],s=n(o);if(i.has(s)){r.push(o);i.delete(s)}}return r}function intersectionBy(e,...t){if(!isArrayLikeObject(e))return[];const n=last$1(t);if(void 0===n)return Array.from(e);let r=uniq$1(Array.from(e));const i=isArrayLikeObject(n)?t.length:t.length-1;for(let e=0;e<i;++e){const i=t[e];if(!isArrayLikeObject(i))return[];isArrayLikeObject(n)?r=intersectionBy$1(r,Array.from(i),identity$1):"function"==typeof n?r=intersectionBy$1(r,Array.from(i),(e=>n(e))):"string"==typeof n&&(r=intersectionBy$1(r,Array.from(i),property(n)))}return r}function intersectionWith$1(e,t,n){return e.filter((e=>t.some((t=>n(e,t)))))}function uniq(e){return isArrayLike(e)?uniq$1(Array.from(e)):[]}function intersectionWith(e,...t){if(null==e)return[];const n=last(t);let r=isEqualsSameValueZero,i=uniq;if("function"==typeof n){r=n;i=uniqPreserve0;t.pop()}let o=i(Array.from(e));for(let e=0;e<t.length;++e){const n=t[e];if(null==n)return[];o=intersectionWith$1(o,Array.from(n),r)}return o}function uniqPreserve0(e){const t=[],n=new Set;for(let r=0;r<e.length;r++){const i=e[r];if(!n.has(i)){t.push(i);n.add(i)}}return t}function isBuffer$1(e){return"undefined"!=typeof Buffer&&Buffer.isBuffer(e)}function isPlainObject$1(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function isEqualWith$1(e,t,n){return isEqualWithImpl(e,t,void 0,void 0,void 0,void 0,n)}function isEqualWithImpl(e,t,n,r,i,o,s){const u=s(e,t,n,r,i,o);if(void 0!==u)return u;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return areObjectsEqual(e,t,o,s)}return areObjectsEqual(e,t,o,s)}function areObjectsEqual(e,S,W,x){if(Object.is(e,S))return!0;let E=getTag(e),N=getTag(S);E===o&&(E=y);N===o&&(N=y);if(E!==N)return!1;switch(E){case n:return e.toString()===S.toString();case r:return isEqualsSameValueZero(e.valueOf(),S.valueOf());case i:case u:case s:return Object.is(e.valueOf(),S.valueOf());case t:return e.source===S.source&&e.flags===S.flags;case f:return e===S}const L=(W=W??new Map).get(e),B=W.get(S);if(null!=L&&null!=B)return L===S;W.set(e,S);W.set(S,e);try{switch(E){case a:if(e.size!==S.size)return!1;for(const[t,n]of e.entries())if(!S.has(t)||!isEqualWithImpl(n,S.get(t),t,e,S,W,x))return!1;return!0;case c:{if(e.size!==S.size)return!1;const t=Array.from(e.values()),n=Array.from(S.values());for(let r=0;r<t.length;r++){const i=t[r],o=n.findIndex((t=>isEqualWithImpl(i,t,void 0,e,S,W,x)));if(-1===o)return!1;n.splice(o,1)}return!0}case l:case d:case m:case b:case A:case O:case $:case j:case w:case k:case I:case v:if("undefined"!=typeof Buffer&&Buffer.isBuffer(e)!==Buffer.isBuffer(S))return!1;if(e.length!==S.length)return!1;for(let t=0;t<e.length;t++)if(!isEqualWithImpl(e[t],S[t],t,e,S,W,x))return!1;return!0;case p:return e.byteLength===S.byteLength&&areObjectsEqual(new Uint8Array(e),new Uint8Array(S),W,x);case g:return e.byteLength===S.byteLength&&e.byteOffset===S.byteOffset&&areObjectsEqual(new Uint8Array(e),new Uint8Array(S),W,x);case h:return e.name===S.name&&e.message===S.message;case y:{if(!(areObjectsEqual(e.constructor,S.constructor,W,x)||isPlainObject$1(e)&&isPlainObject$1(S)))return!1;const t=[...Object.keys(e),...getSymbols(e)],n=[...Object.keys(S),...getSymbols(S)];if(t.length!==n.length)return!1;for(let n=0;n<t.length;n++){const r=t[n],i=e[r];if(!Object.hasOwn(S,r))return!1;if(!isEqualWithImpl(i,S[r],r,e,S,W,x))return!1}return!0}default:return!1}}finally{W.delete(e);W.delete(S)}}function noop$1(){}function isEqual(e,t){return isEqualWith$1(e,t,noop$1)}function isFunction$1(e){return"function"==typeof e}function isNull$1(e){return null===e}function isSymbol(e){return"symbol"==typeof e}function isUndefined$1(e){return void 0===e}function invokeMap(e,t,...n){if(isNil$1(e))return[];const r=isArrayLike(e)?Array.from(e):Object.values(e),i=[];for(let e=0;e<r.length;e++){const o=r[e];if(isFunction$1(t)){i.push(t.apply(o,n));continue}const s=get(o,t);let u=o;if(Array.isArray(t)){const e=t.slice(0,-1);e.length>0&&(u=get(o,e))}else if("string"==typeof t&&t.includes(".")){u=get(o,t.split(".").slice(0,-1).join("."))}i.push(null==s?void 0:s.apply(u,n))}return i}function join(e,t){return isArrayLike(e)?Array.from(e).join(t):""}function reduce(e,t=identity$1,n){if(!e)return n;let r,i=0;if(isArrayLike(e)){r=range$1(0,e.length);if(null==n&&e.length>0){n=e[0];i+=1}}else{r=Object.keys(e);if(null==n){n=e[r[0]];i+=1}}for(let o=i;o<r.length;o++){const i=r[o];n=t(n,e[i],i,e)}return n}function keyBy(e,t){if(!isArrayLike(e)&&!isObjectLike(e))return{};const n=iteratee(t??identity$1);return reduce(e,((e,t)=>{e[n(t)]=t;return e}),{})}function lastIndexOf(e,t,n){if(!isArrayLike(e)||0===e.length)return-1;const r=e.length;let i=n??r-1;null!=n&&(i=i<0?Math.max(r+i,0):Math.min(i,r-1));if(Number.isNaN(t))for(let t=i;t>=0;t--)if(Number.isNaN(e[t]))return t;return Array.from(e).lastIndexOf(t,i)}function nth(e,t=0){if(isArrayLikeObject(e)&&0!==e.length){(t=toInteger(t))<0&&(t+=e.length);return e[t]}}function getPriority(e){return"symbol"==typeof e?1:null===e?2:void 0===e?3:e!=e?4:0}const compareValues=(e,t,n)=>{if(e!==t){const r=getPriority(e),i=getPriority(t);if(r===i&&0===r){if(e<t)return"desc"===n?1:-1;if(e>t)return"desc"===n?-1:1}return"desc"===n?i-r:r-i}return 0},W=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,x=/^\w*$/;function isKey(e,t){return!Array.isArray(e)&&(!("number"!=typeof e&&"boolean"!=typeof e&&null!=e&&!isSymbol$1(e))||("string"==typeof e&&(x.test(e)||!W.test(e))||null!=t&&Object.hasOwn(t,e)))}function orderBy(e,t,n,r){if(null==e)return[];n=r?void 0:n;Array.isArray(e)||(e=Object.values(e));Array.isArray(t)||(t=null==t?[null]:[t]);0===t.length&&(t=[null]);Array.isArray(n)||(n=null==n?[]:[n]);n=n.map((e=>String(e)));const getValueByNestedPath=(e,t)=>{let n=e;for(let e=0;e<t.length&&null!=n;++e)n=n[t[e]];return n},i=t.map((e=>{Array.isArray(e)&&1===e.length&&(e=e[0]);return null==e||"function"==typeof e||Array.isArray(e)||isKey(e)?e:{key:e,path:toPath(e)}}));return e.map((e=>({original:e,criteria:i.map((t=>((e,t)=>null==t||null==e?t:"object"==typeof e&&"key"in e?Object.hasOwn(t,e.key)?t[e.key]:getValueByNestedPath(t,e.path):"function"==typeof e?e(t):Array.isArray(e)?getValueByNestedPath(t,e):"object"==typeof t?t[e]:t)(t,e)))}))).slice().sort(((e,t)=>{for(let r=0;r<i.length;r++){const i=compareValues(e.criteria[r],t.criteria[r],n[r]);if(0!==i)return i}return 0})).map((e=>e.original))}function partition(e,t=identity$1){if(!e)return[[],[]];const n=isArrayLike(e)?e:Object.values(e);t=iteratee(t);const r=[],i=[];for(let e=0;e<n.length;e++){const o=n[e];t(o)?r.push(o):i.push(o)}return[r,i]}function pull$1(e,t){const n=new Set(t);let r=0;for(let t=0;t<e.length;t++)n.has(e[t])||(Object.hasOwn(e,t)?e[r++]=e[t]:delete e[r++]);e.length=r;return e}function pull(e,...t){return pull$1(e,t)}function pullAll(e,t=[]){return pull$1(e,Array.from(t))}function pullAllBy(e,t,n){const r=iteratee(n),i=new Set(Array.from(t).map((e=>r(e))));let o=0;for(let t=0;t<e.length;t++){const n=r(e[t]);i.has(n)||(Object.hasOwn(e,t)?e[o++]=e[t]:delete e[o++])}e.length=o;return e}function pullAllWith(e,t,n){if(null==e?.length||null==t?.length)return e;e===t&&(t=function copyArray(e,t){const n=e.length;null==t&&(t=Array(n));for(let r=0;r<n;r++)t[r]=e[r];return t}(t));let r=0;null==n&&(n=(e,t)=>isEqualsSameValueZero(e,t));const i=Array.isArray(t)?t:Array.from(t),o=i.includes(void 0);for(let t=0;t<e.length;t++)if(t in e){i.some((r=>n(e[t],r)))||(e[r++]=e[t])}else o||delete e[r++];e.length=r;return e}function at(e,...t){if(0===t.length)return[];const n=[];for(let e=0;e<t.length;e++){const r=t[e];if(isArrayLike(r)&&!isString(r))for(let e=0;e<r.length;e++)n.push(r[e]);else n.push(r)}const r=[];for(let t=0;t<n.length;t++)r.push(get(e,n[t]));return r}function unset(e,t){if(null==e)return!0;switch(typeof t){case"symbol":case"number":case"object":if(Array.isArray(t))return unsetWithPath(e,t);"number"==typeof t?t=toKey(t):"object"==typeof t&&(t=Object.is(t?.valueOf(),-0)?"-0":String(t));if(isUnsafeProperty(t))return!1;if(void 0===e?.[t])return!0;try{delete e[t];return!0}catch{return!1}case"string":if(void 0===e?.[t]&&isDeepKey(t))return unsetWithPath(e,toPath(t));if(isUnsafeProperty(t))return!1;try{delete e[t];return!0}catch{return!1}}}function unsetWithPath(e,t){const n=1===t.length?e:get(e,t.slice(0,-1)),r=t[t.length-1];if(void 0===n?.[r])return!0;if(isUnsafeProperty(r))return!1;try{delete n[r];return!0}catch{return!1}}function isArray(e){return Array.isArray(e)}function pullAt(e,...t){const n=flattenDepth(t,1);if(!e)return Array(n.length);const r=at(e,n),i=n.map((t=>isIndex(t,e.length)?Number(t):t)).sort(((e,t)=>t-e));for(const t of new Set(i)){if(isIndex(t,e.length)){Array.prototype.splice.call(e,t,1);continue}if(isKey(t,e)){delete e[toKey(t)];continue}const n=isArray(t)?t:toPath(t);unset(e,n)}return r}function reduceRight(e,t=identity$1,n){if(!e)return n;let r,i;if(isArrayLike(e)){r=range$1(0,e.length).reverse();if(null==n&&e.length>0){n=e[e.length-1];i=1}else i=0}else{r=Object.keys(e).reverse();if(null==n){n=e[r[0]];i=1}else i=0}for(let o=i;o<r.length;o++){const i=r[o];n=t(n,e[i],i,e)}return n}function negate$1(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(...t){return!e.apply(this,t)}}function reject(e,t=identity$1){return filter(e,negate$1(iteratee(t)))}function remove(e,t=identity$1){return function remove$1(e,t){const n=e.slice(),r=[];let i=0;for(let o=0;o<e.length;o++)t(e[o],o,n)?r.push(e[o]):Object.hasOwn(e,o)?e[i++]=e[o]:delete e[i++];e.length=i;return r}(e,iteratee(t))}function reverse(e){return null==e?e:e.reverse()}function sample$1(e){return e[Math.floor(Math.random()*e.length)]}function sample(e){if(null!=e)return isArrayLike(e)?sample$1(toArray$1(e)):sample$1(Object.values(e))}function random$1(e,t){if(null==t){t=e;e=0}if(e>=t)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(t-e)+e}function randomInt(e,t){return Math.floor(random$1(e,t))}function clamp(e,t,n){if(void 0===n){n=t;t=void 0}if(void 0!==n){n=toNumber(n);e=Math.min(e,Number.isNaN(n)?0:n)}if(void 0!==t){t=toNumber(t);e=Math.max(e,Number.isNaN(t)?0:t)}return e}function isMap(e){return function isMap$1(e){return e instanceof Map}(e)}function toArray(e){return null==e?[]:isArrayLike(e)||isMap(e)?Array.from(e):"object"==typeof e?Object.values(e):[]}function sampleSize(e,t,n){const r=toArray(e);return function sampleSize$1(e,t){if(t>e.length)throw new Error("Size must be less than or equal to the length of array.");const n=new Array(t),r=new Set;for(let i=e.length-t,o=0;i<e.length;i++,o++){let t=randomInt(0,i+1);r.has(t)&&(t=i);r.add(t);n[o]=e[t]}return n}(r,t=(n?isIterateeCall(e,t,n):void 0===t)?1:clamp(toInteger(t),0,r.length))}function shuffle$1(e){const t=e.slice();for(let e=t.length-1;e>=1;e--){const n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t}function values(e){return null==e?[]:Object.values(e)}function isNil(e){return null==e}function shuffle(e){return isNil(e)?[]:isArray(e)?shuffle$1(e):isArrayLike(e)?shuffle$1(Array.from(e)):isObjectLike(e)?shuffle$1(values(e)):[]}function size(e){return isNil$1(e)?0:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function slice(e,t,n){if(!isArrayLike(e))return[];const r=e.length;if(void 0===n)n=r;else if("number"!=typeof n&&isIterateeCall(e,t,n)){t=0;n=r}t=toInteger(t);n=toInteger(n);t=t<0?Math.max(r+t,0):Math.min(t,r);n=n<0?Math.max(r+n,0):Math.min(n,r);const i=Math.max(n-t,0),o=new Array(i);for(let n=0;n<i;++n)o[n]=e[t+n];return o}function some(e,t,n){if(!e)return!1;null!=n&&(t=void 0);null==t&&(t=identity$1);const r=Array.isArray(e)?e:Object.values(e);switch(typeof t){case"function":if(!Array.isArray(e)){const n=Object.keys(e);for(let r=0;r<n.length;r++){const i=n[r];if(t(e[i],i,e))return!0}return!1}for(let n=0;n<e.length;n++)if(t(e[n],n,e))return!0;return!1;case"object":if(Array.isArray(t)&&2===t.length){const n=matchesProperty(t[0],t[1]);if(Array.isArray(e)){for(let t=0;t<e.length;t++)if(n(e[t]))return!0;return!1}return r.some(n)}{const n=matches(t);if(Array.isArray(e)){for(let t=0;t<e.length;t++)if(n(e[t]))return!0;return!1}return r.some(n)}case"number":case"symbol":case"string":{const n=property(t);if(Array.isArray(e)){for(let t=0;t<e.length;t++)if(n(e[t]))return!0;return!1}return r.some(n)}}}function sortBy(e,...t){const n=t.length;n>1&&isIterateeCall(e,t[0],t[1])?t=[]:n>2&&isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]);return orderBy(e,flatten$1(t),["asc"])}function identity(e){return e}function isNaN(e){return Number.isNaN(e)}const E=4294967294;function sortedIndexBy(e,t,n=identity,r){if(isNil(e)||0===e.length)return 0;let i=0,o=e.length;const s=iteratee(n),u=s(t),a=isNaN(u),c=isNull$1(u),l=isSymbol$1(u),f=isUndefined$1(u);for(;i<o;){let t;const n=Math.floor((i+o)/2),p=s(e[n]),y=!isUndefined$1(p),h=isNull$1(p),g=!isNaN(p),d=isSymbol$1(p);t=a?r||g:f?g&&(r||y):c?g&&y&&(r||!h):l?g&&y&&!h&&(r||!d):!h&&!d&&(r?p<=u:p<u);t?i=n+1:o=n}return Math.min(o,E)}function isNumber(e){return"number"==typeof e||e instanceof Number}const N=2147483647;function sortedIndex(e,t){if(isNil$1(e))return 0;let n=0,r=e.length;if(isNumber(t)&&t==t&&r<=N){for(;n<r;){const i=n+r>>>1,o=e[i];!isNull$1(o)&&!isSymbol(o)&&o<t?n=i+1:r=i}return r}return sortedIndexBy(e,t,(e=>e))}function sortedIndexOf(e,t){if(!e?.length)return-1;const n=sortedIndex(e,t);return n<e.length&&isEqualsSameValueZero(e[n],t)?n:-1}function sortedLastIndexBy(e,t,n){return sortedIndexBy(e,t,n,!0)}const L=2147483647;function sortedLastIndex(e,t){if(isNil$1(e))return 0;let n=e.length;if(!isNumber(t)||Number.isNaN(t)||n>L)return sortedLastIndexBy(e,t,(e=>e));let r=0;for(;r<n;){const i=r+n>>>1,o=e[i];!isNull$1(o)&&!isSymbol(o)&&o<=t?r=i+1:n=i}return n}function sortedLastIndexOf(e,t){if(!e?.length)return-1;const n=sortedLastIndex(e,t)-1;return n>=0&&isEqualsSameValueZero(e[n],t)?n:-1}function tail(e){return isArrayLike(e)?function tail$1(e){return e.slice(1)}(toArray$1(e)):[]}function take(e,t=1,n){return(t=n?1:toInteger(t))<1||!isArrayLike(e)?[]:function take$1(e,t,n){t=void 0===t?1:toInteger(t);return e.slice(0,t)}(toArray$1(e),t)}function takeRight(e,t=1,n){return(t=n?1:toInteger(t))<=0||!isArrayLike(e)?[]:function takeRight$1(e,t,n){return(t=void 0===t?1:toInteger(t))<=0||0===e.length?[]:e.slice(-t)}(toArray$1(e),t)}function takeRightWhile(e,t){if(!isArrayLikeObject(e))return[];const n=toArray$1(e),r=n.findLastIndex(function negate(e){return(...t)=>!e(...t)}(iteratee(t??identity$1)));return n.slice(r+1)}function takeWhile(e,t){if(!isArrayLikeObject(e))return[];const n=toArray$1(e),r=n.findIndex(negate$1(iteratee(t??identity)));return-1===r?n:n.slice(0,r)}function union(...e){return uniq$1(flatMapDepth(e.filter(isArrayLikeObject),(e=>Array.from(e)),1))}function uniqBy$1(e,t){const n=new Map;for(let r=0;r<e.length;r++){const i=e[r],o=t(i,r,e);n.has(o)||n.set(o,i)}return Array.from(n.values())}function ary$1(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function unionBy(...e){const t=last$1(e),n=flattenArrayLike(e);return isArrayLikeObject(t)||null==t?uniq$1(n):uniqBy$1(n,ary$1(iteratee(t),1))}function uniqWith$1(e,t){const n=[];for(let r=0;r<e.length;r++){const i=e[r];n.every((e=>!t(e,i)))&&n.push(i)}return n}function unionWith(...e){const t=last$1(e),n=flattenArrayLike(e);return isArrayLikeObject(t)||null==t?uniq$1(n):uniqWith$1(n,t)}function uniqBy(e,t=identity$1){return isArrayLikeObject(e)?uniqBy$1(Array.from(e),ary$1(iteratee(t),1)):[]}function uniqWith(e,t){return isArrayLike(e)?"function"==typeof t?uniqWith$1(Array.from(e),t):uniq(Array.from(e)):[]}function unzip$1(e){let t=0;for(let n=0;n<e.length;n++)e[n].length>t&&(t=e[n].length);const n=new Array(t);for(let r=0;r<t;r++){n[r]=new Array(e.length);for(let t=0;t<e.length;t++)n[r][t]=e[t][r]}return n}function unzip(e){return isArrayLikeObject(e)&&e.length?unzip$1(e=(e=isArray(e)?e:Array.from(e)).filter((e=>isArrayLikeObject(e)))):[]}function unzipWith(e,t){if(!isArrayLikeObject(e)||!e.length)return[];const n=isArray(e)?unzip$1(e):unzip$1(Array.from(e,(e=>Array.from(e))));if(!t)return n;const r=new Array(n.length);for(let e=0;e<n.length;e++){const i=n[e];r[e]=t(...i)}return r}function without(e,...t){return isArrayLikeObject(e)?function without$1(e,...t){return difference$1(e,t)}(Array.from(e),...t):[]}function xor(...e){const t=new Map;for(let n=0;n<e.length;n++){const r=e[n];if(!isArrayLikeObject(r))continue;const i=new Set(toArray(r));for(const e of i)t.has(e)?t.set(e,t.get(e)+1):t.set(e,1)}const n=[];for(const[e,r]of t)1===r&&n.push(e);return n}function windowed(e,t,n=1,{partialWindows:r=!1}={}){if(!Number.isInteger(t))throw new Error("Size must be a positive integer.");if(n<=0||!Number.isInteger(n))throw new Error("Step must be a positive integer.");const i=[],o=r?e.length:e.length-t+1;for(let r=0;r<o;r+=n)i.push(e.slice(r,r+t));return i}function xorBy(...e){const t=last(e);let n=identity$1;if(!isArrayLikeObject(t)&&null!=t){n=iteratee(t);e=e.slice(0,-1)}const r=e.filter(isArrayLikeObject);return differenceBy(unionBy(...r,n),unionBy(...windowed(r,2).map((([e,t])=>intersectionBy(e,t,n))),n),n)}function xorWith(...e){const t=last(e);let comparator=(e,t)=>e===t;if("function"==typeof t){comparator=t;e=e.slice(0,-1)}const n=e.filter(isArrayLikeObject);return differenceWith(unionWith(...n,comparator),unionWith(...windowed(n,2).map((([e,t])=>intersectionWith(e,t,comparator))),comparator),comparator)}function zip$1(...e){let t=0;for(let n=0;n<e.length;n++)e[n].length>t&&(t=e[n].length);const n=e.length,r=Array(t);for(let i=0;i<t;++i){const t=Array(n);for(let r=0;r<n;++r)t[r]=e[r][i];r[i]=t}return r}function zip(...e){return e.length?zip$1(...e.filter((e=>isArrayLikeObject(e)))):[]}const assignValue=(e,t,n)=>{const r=e[t];Object.hasOwn(e,t)&&isEqualsSameValueZero(r,n)&&(void 0!==n||t in e)||(e[t]=n)};function zipObject(e=[],t=[]){const n={};for(let r=0;r<e.length;r++)assignValue(n,e[r],t[r]);return n}function updateWith(e,t,n,r){if(null==e&&!isObject(e))return e;let i;i=isKey(t,e)?[t]:Array.isArray(t)?t:toPath(t);const o=n(get(e,i));let s=e;for(let t=0;t<i.length&&null!=s;t++){const n=toKey(i[t]);if(isUnsafeProperty(n))continue;let u;if(t===i.length-1)u=o;else{const o=s[n],a=r?.(o,n,e);u=void 0!==a?a:isObject(o)?o:isIndex(i[t+1])?[]:{}}assignValue(s,n,u);s=s[n]}return e}function set(e,t,n){return updateWith(e,t,(()=>n),(()=>{}))}function zipObjectDeep(e,t){const n={};if(!isArrayLike(e))return n;isArrayLike(t)||(t=[]);const r=zip$1(Array.from(e),Array.from(t));for(let e=0;e<r.length;e++){const[t,i]=r[e];null!=t&&set(n,t,i)}return n}function zipWith(...e){let t=e.pop();if(!isFunction$1(t)){e.push(t);t=void 0}if(!e?.length)return[];const n=unzip(e);return null==t?n:n.map((e=>t(...e)))}function after$1(e,t){if("function"!=typeof t)throw new TypeError("Expected a function");e=toInteger(e);return function(...n){if(--e<1)return t.apply(this,n)}}function ary(e,t=e.length,n){n&&(t=e.length);(Number.isNaN(t)||t<0)&&(t=0);return ary$1(e,t)}function attempt(e,...t){try{return e(...t)}catch(e){return e instanceof Error?e:new Error(e)}}function before(e,t){if("function"!=typeof t)throw new TypeError("Expected a function");let n;e=toInteger(e);return function(...r){--e>0&&(n=t.apply(this,r));e<=1&&t&&(t=void 0);return n}}function bind(e,t,...n){const bound=function(...r){const i=[];let o=0;for(let e=0;e<n.length;e++){const t=n[e];t===bind.placeholder?i.push(r[o++]):i.push(t)}for(let e=o;e<r.length;e++)i.push(r[e]);return this instanceof bound?new e(...i):e.apply(t,i)};return bound}const B=Symbol("bind.placeholder");bind.placeholder=B;function bindKey(e,t,...n){const bound=function(...r){const i=[];let o=0;for(let e=0;e<n.length;e++){const t=n[e];t===bindKey.placeholder?i.push(r[o++]):i.push(t)}for(let e=o;e<r.length;e++)i.push(r[e]);return this instanceof bound?new e[t](...i):e[t].apply(e,i)};return bound}const M=Symbol("bindKey.placeholder");bindKey.placeholder=M;function curry(e,t=e.length,n){t=n?e.length:t;t=Number.parseInt(t,10);(Number.isNaN(t)||t<1)&&(t=0);const wrapper=function(...n){const r=n.filter((e=>e===curry.placeholder)),i=n.length-r.length;return i<t?makeCurry(e,t-i,n):this instanceof wrapper?new e(...n):e.apply(this,n)};wrapper.placeholder=P;return wrapper}function makeCurry(e,t,n){function wrapper(...r){const i=r.filter((e=>e===curry.placeholder)),o=r.length-i.length;r=function composeArgs$1(e,t){const n=[];let r=0;for(let i=0;i<t.length;i++){const o=t[i];o===curry.placeholder&&r<e.length?n.push(e[r++]):n.push(o)}for(let t=r;t<e.length;t++)n.push(e[t]);return n}(r,n);return o<t?makeCurry(e,t-o,r):this instanceof wrapper?new e(...r):e.apply(this,r)}wrapper.placeholder=P;return wrapper}const P=Symbol("curry.placeholder");curry.placeholder=P;function curryRight(e,t=e.length,n){t=n?e.length:t;t=Number.parseInt(t,10);(Number.isNaN(t)||t<1)&&(t=0);const wrapper=function(...n){const r=n.filter((e=>e===curryRight.placeholder)),i=n.length-r.length;return i<t?makeCurryRight(e,t-i,n):this instanceof wrapper?new e(...n):e.apply(this,n)};wrapper.placeholder=R;return wrapper}function makeCurryRight(e,t,n){function wrapper(...r){const i=r.filter((e=>e===curryRight.placeholder)),o=r.length-i.length;r=function composeArgs(e,t){const n=t.filter((e=>e===curryRight.placeholder)).length,r=Math.max(e.length-n,0),i=[];let o=0;for(let t=0;t<r;t++)i.push(e[o++]);for(let n=0;n<t.length;n++){const r=t[n];r===curryRight.placeholder&&o<e.length?i.push(e[o++]):i.push(r)}return i}(r,n);return o<t?makeCurryRight(e,t-o,r):this instanceof wrapper?new e(...r):e.apply(this,r)}wrapper.placeholder=R;return wrapper}const R=Symbol("curryRight.placeholder");curryRight.placeholder=R;function debounce$1(e,t,{signal:n,edges:r}={}){let i,o=null;const s=null!=r&&r.includes("leading"),u=null==r||r.includes("trailing"),invoke=()=>{if(null!==o){e.apply(i,o);i=void 0;o=null}};let a=null;const schedule=()=>{null!=a&&clearTimeout(a);a=setTimeout((()=>{a=null;(()=>{u&&invoke();cancel()})()}),t)},cancel=()=>{(()=>{if(null!==a){clearTimeout(a);a=null}})();i=void 0;o=null},debounced=function(...e){if(n?.aborted)return;i=this;o=e;const t=null==a;schedule();s&&t&&invoke()};debounced.schedule=schedule;debounced.cancel=cancel;debounced.flush=()=>{invoke()};n?.addEventListener("abort",cancel,{once:!0});return debounced}function debounce(e,t=0,n={}){"object"!=typeof n&&(n={});const{leading:r=!1,trailing:i=!0,maxWait:o}=n,s=Array(2);r&&(s[0]="leading");i&&(s[1]="trailing");let u,a=null;const c=debounce$1((function(...t){u=e.apply(this,t);a=null}),t,{edges:s}),debounced=function(...t){if(null!=o){null===a&&(a=Date.now());if(Date.now()-a>=o){u=e.apply(this,t);a=Date.now();c.cancel();c.schedule();return u}}c.apply(this,t);return u};debounced.cancel=c.cancel;debounced.flush=()=>{c.flush();return u};return debounced}function defer(e,...t){if("function"!=typeof e)throw new TypeError("Expected a function");return setTimeout(e,1,...t)}function delay(e,t,...n){if("function"!=typeof e)throw new TypeError("Expected a function");return setTimeout(e,toNumber(t)||0,...n)}function flip(e){return function(...t){return e.apply(this,t.reverse())}}function flow$1(...e){return function(...t){let n=e.length?e[0].apply(this,t):t[0];for(let t=1;t<e.length;t++)n=e[t].call(this,n);return n}}function flow(...e){const t=flatten$1(e,1);if(t.some((e=>"function"!=typeof e)))throw new TypeError("Expected a function");return flow$1(...t)}function flowRight(...e){const t=flatten$1(e,1);if(t.some((e=>"function"!=typeof e)))throw new TypeError("Expected a function");return function flowRight$1(...e){return flow$1(...e.reverse())}(...t)}function memoize(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");const memoized=function(...n){const r=t?t.apply(this,n):n[0],i=memoized.cache;if(i.has(r))return i.get(r);const o=e.apply(this,n);memoized.cache=i.set(r,o)||i;return o},n=memoize.Cache||Map;memoized.cache=new n;return memoized}memoize.Cache=Map;function nthArg(e=0){return function(...t){return t.at(toInteger(e))}}function once(e){return function once$1(e){let t,n=!1;return function(...r){if(!n){n=!0;t=e(...r)}return t}}(e)}function overArgs(e,...t){if("function"!=typeof e)throw new TypeError("Expected a function");const n=t.flat();return function(...t){const r=Math.min(t.length,n.length),i=[...t];for(let e=0;e<r;e++){const r=iteratee(n[e]??identity$1);i[e]=r.call(this,t[e])}return e.apply(this,i)}}function partial(e,...t){return function partialImpl(e,t,...n){const partialed=function(...r){let i=0;const o=n.slice().map((e=>e===t?r[i++]:e)),s=r.slice(i);return e.apply(this,o.concat(s))};e.prototype&&(partialed.prototype=Object.create(e.prototype));return partialed}(e,partial.placeholder,...t)}partial.placeholder=Symbol("compat.partial.placeholder");function partialRight(e,...t){return function partialRightImpl(e,t,...n){const partialedRight=function(...r){const i=n.filter((e=>e===t)).length,o=Math.max(r.length-i,0),s=r.slice(0,o);let u=o;const a=n.slice().map((e=>e===t?r[u++]:e));return e.apply(this,s.concat(a))};e.prototype&&(partialedRight.prototype=Object.create(e.prototype));return partialedRight}(e,partialRight.placeholder,...t)}partialRight.placeholder=Symbol("compat.partialRight.placeholder");function rearg(e,...t){const n=flatten(t);return function(...t){const r=n.map((e=>t[e])).slice(0,t.length);for(let e=r.length;e<t.length;e++)r.push(t[e]);return e.apply(this,r)}}function rest(e,t=e.length-1){t=Number.parseInt(t,10);(Number.isNaN(t)||t<0)&&(t=e.length-1);return function rest$1(e,t=e.length-1){return function(...n){const r=n.slice(t),i=n.slice(0,t);for(;i.length<t;)i.push(void 0);return e.apply(this,[...i,r])}}(e,t)}function spread(e,t=0){t=Number.parseInt(t,10);(Number.isNaN(t)||t<0)&&(t=0);return function(...n){const r=n[t],i=n.slice(0,t);r&&i.push(...r);return e.apply(this,i)}}function throttle(e,t=0,n={}){const{leading:r=!0,trailing:i=!0}=n;return debounce(e,t,{leading:r,maxWait:t,trailing:i})}function unary(e){return ary(e,1)}function wrap(e,t){return function(...n){return(isFunction$1(t)?t:identity$1).apply(this,[e,...n])}}function add(e,t){if(void 0===e&&void 0===t)return 0;if(void 0===e||void 0===t)return e??t;if("string"==typeof e||"string"==typeof t){e=toString(e);t=toString(t)}else{e=toNumber(e);t=toNumber(t)}return e+t}function decimalAdjust(e,t,n=0){t=Number(t);Object.is(t,-0)&&(t="-0");if(n=Math.min(Number.parseInt(n,10),292)){const[r,i=0]=t.toString().split("e");let o=Math[e](Number(`${r}e${Number(i)+n}`));Object.is(o,-0)&&(o="-0");const[s,u=0]=o.toString().split("e");return Number(`${s}e${Number(u)-n}`)}return Math[e](Number(t))}function ceil(e,t=0){return decimalAdjust("ceil",e,t)}function divide(e,t){if(void 0===e&&void 0===t)return 1;if(void 0===e||void 0===t)return e??t;if("string"==typeof e||"string"==typeof t){e=toString(e);t=toString(t)}else{e=toNumber(e);t=toNumber(t)}return e/t}function floor(e,t=0){return decimalAdjust("floor",e,t)}function inRange(e,t,n){t||(t=0);null==n||n||(n=0);null!=t&&"number"!=typeof t&&(t=Number(t));if(null==n&&0===t)return!1;null!=n&&"number"!=typeof n&&(n=Number(n));null!=n&&t>n&&([t,n]=[n,t]);return t!==n&&function inRange$1(e,t,n){if(null==n){n=t;t=0}if(t>=n)throw new Error("The maximum value must be greater than the minimum value.");return t<=e&&e<n}(e,t,n)}function max(e){if(!e||0===e.length)return;let t;for(let n=0;n<e.length;n++){const r=e[n];null==r||Number.isNaN(r)||"symbol"==typeof r||(void 0===t||r>t)&&(t=r)}return t}function maxBy(e,t){if(null!=e)return function maxBy$1(e,t){if(0===e.length)return;let n=e[0],r=t(n,0,e);for(let i=1;i<e.length;i++){const o=e[i],s=t(o,i,e);if(s>r){r=s;n=o}}return n}(Array.from(e),iteratee(t??identity$1))}function sumBy$1(e,t){if(!e||!e.length)return 0;null!=t&&(t=iteratee(t));let n;for(let r=0;r<e.length;r++){const i=t?t(e[r]):e[r];void 0!==i&&(void 0===n?n=i:n+=i)}return n}function sum(e){return sumBy$1(e)}function mean(e){const t=e?e.length:0;return 0===t?NaN:sum(e)/t}function meanBy(e,t){return null==e?NaN:function meanBy$1(e,t){return function sumBy(e,t){let n=0;for(let r=0;r<e.length;r++)n+=t(e[r],r);return n}(e,(e=>t(e)))/e.length}(Array.from(e),iteratee(t??identity$1))}function min(e){if(!e||0===e.length)return;let t;for(let n=0;n<e.length;n++){const r=e[n];null==r||Number.isNaN(r)||"symbol"==typeof r||(void 0===t||r<t)&&(t=r)}return t}function minBy(e,t){if(null!=e)return function minBy$1(e,t){if(0===e.length)return;let n=e[0],r=t(n,0,e);for(let i=1;i<e.length;i++){const o=e[i],s=t(o,i,e);if(s<r){r=s;n=o}}return n}(Array.from(e),iteratee(t??identity$1))}function multiply(e,t){if(void 0===e&&void 0===t)return 1;if(void 0===e||void 0===t)return e??t;if("string"==typeof e||"string"==typeof t){e=toString(e);t=toString(t)}else{e=toNumber(e);t=toNumber(t)}return e*t}function parseInt(e,t=0,n){n&&(t=0);return Number.parseInt(e,t)}function random(...e){let t=0,n=1,r=!1;switch(e.length){case 1:"boolean"==typeof e[0]?r=e[0]:n=e[0];break;case 2:if("boolean"==typeof e[1]){n=e[0];r=e[1]}else{t=e[0];n=e[1]}case 3:if("object"==typeof e[2]&&null!=e[2]&&e[2][e[1]]===e[0]){t=0;n=e[0];r=!1}else{t=e[0];n=e[1];r=e[2]}}"number"!=typeof t&&(t=Number(t));"number"!=typeof n&&(t=Number(n));t||(t=0);n||(n=0);t>n&&([t,n]=[n,t]);t=clamp(t,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);n=clamp(n,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return t===n?t:r?random$1(t,n+1):randomInt(t,n+1)}function range(e,t,n){n&&"number"!=typeof n&&isIterateeCall(e,t,n)&&(t=n=void 0);e=toFinite(e);if(void 0===t){t=e;e=0}else t=toFinite(t);n=void 0===n?e<t?1:-1:toFinite(n);const r=Math.max(Math.ceil((t-e)/(n||1)),0),i=new Array(r);for(let t=0;t<r;t++){i[t]=e;e+=n}return i}function rangeRight(e,t,n){n&&"number"!=typeof n&&isIterateeCall(e,t,n)&&(t=n=void 0);e=toFinite(e);if(void 0===t){t=e;e=0}else t=toFinite(t);n=void 0===n?e<t?1:-1:toFinite(n);const r=Math.max(Math.ceil((t-e)/(n||1)),0),i=new Array(r);for(let t=r-1;t>=0;t--){i[t]=e;e+=n}return i}function round(e,t=0){return decimalAdjust("round",e,t)}function subtract(e,t){if(void 0===e&&void 0===t)return 0;if(void 0===e||void 0===t)return e??t;if("string"==typeof e||"string"==typeof t){e=toString(e);t=toString(t)}else{e=toNumber(e);t=toNumber(t)}return e-t}function noop(...e){}function isPrototype(e){const t=e?.constructor;return e===("function"==typeof t?t.prototype:Object.prototype)}function isTypedArray(e){return isTypedArray$1(e)}function times(e,t){if((e=toInteger(e))<1||!Number.isSafeInteger(e))return[];const n=new Array(e);for(let r=0;r<e;r++)n[r]="function"==typeof t?t(r):r;return n}function keys(e){if(isArrayLike(e))return function arrayLikeKeys(e){const t=times(e.length,(e=>`${e}`)),n=new Set(t);if(isBuffer$1(e)){n.add("offset");n.add("parent")}if(isTypedArray(e)){n.add("buffer");n.add("byteLength");n.add("byteOffset")}const r=Object.keys(e).filter((e=>!n.has(e)));if(Array.isArray(e))return[...t,...r];return[...t.filter((t=>Object.hasOwn(e,t))),...r]}(e);const t=Object.keys(Object(e));return isPrototype(e)?t.filter((e=>"constructor"!==e)):t}function assign(e,...t){for(let n=0;n<t.length;n++)assignImpl(e,t[n]);return e}function assignImpl(e,t){const n=keys(t);for(let r=0;r<n.length;r++){const i=n[r];i in e&&isEqualsSameValueZero(e[i],t[i])||(e[i]=t[i])}}function keysIn(e){if(null==e)return[];switch(typeof e){case"object":case"function":return isArrayLike(e)?function arrayLikeKeysIn(e){const t=times(e.length,(e=>`${e}`)),n=new Set(t);if(isBuffer$1(e)){n.add("offset");n.add("parent")}if(isTypedArray(e)){n.add("buffer");n.add("byteLength");n.add("byteOffset")}const r=keysInImpl(e).filter((e=>!n.has(e)));if(Array.isArray(e))return[...t,...r];return[...t.filter((t=>Object.hasOwn(e,t))),...r]}(e):isPrototype(e)?function prototypeKeysIn(e){const t=keysInImpl(e);return t.filter((e=>"constructor"!==e))}(e):keysInImpl(e);default:return keysInImpl(Object(e))}}function keysInImpl(e){const t=[];for(const n in e)t.push(n);return t}function assignIn(e,...t){for(let n=0;n<t.length;n++)assignInImpl(e,t[n]);return e}function assignInImpl(e,t){const n=keysIn(t);for(let r=0;r<n.length;r++){const i=n[r];i in e&&isEqualsSameValueZero(e[i],t[i])||(e[i]=t[i])}}function assignInWith(e,...t){let n=t[t.length-1];"function"==typeof n?t.pop():n=void 0;for(let r=0;r<t.length;r++)assignInWithImpl(e,t[r],n);return e}function assignInWithImpl(e,t,n){const r=keysIn(t);for(let i=0;i<r.length;i++){const o=r[i],s=e[o],u=t[o],a=n?.(s,u,o,e,t)??u;o in e&&isEqualsSameValueZero(s,a)||(e[o]=a)}}function assignWith(e,...t){let n=t[t.length-1];"function"==typeof n?t.pop():n=void 0;for(let r=0;r<t.length;r++)assignWithImpl(e,t[r],n);return e}function assignWithImpl(e,t,n){const r=keys(t);for(let i=0;i<r.length;i++){const o=r[i],s=e[o],u=t[o],a=n?.(s,u,o,e,t)??u;o in e&&isEqualsSameValueZero(s,a)||(e[o]=a)}}function clone$1(e){if(isPrimitive(e))return e;const f=getTag(e);if(!function isCloneableObject(e){switch(getTag(e)){case o:case l:case p:case g:case i:case u:case I:case v:case $:case j:case w:case a:case r:case y:case t:case c:case n:case s:case d:case m:case b:case A:return!0;default:return!1}}(e))return{};if(isArray(e)){const t=Array.from(e);if(e.length>0&&"string"==typeof e[0]&&Object.hasOwn(e,"index")){t.index=e.index;t.input=e.input}return t}if(isTypedArray(e)){const t=e;return new(0,t.constructor)(t.buffer,t.byteOffset,t.length)}if(f===p)return new ArrayBuffer(e.byteLength);if(f===g){const t=e,n=t.buffer,r=t.byteOffset,i=t.byteLength,o=new ArrayBuffer(i),s=new Uint8Array(n,r,i);new Uint8Array(o).set(s);return new DataView(o)}if(f===i||f===r||f===n){const t=new(0,e.constructor)(e.valueOf());f===n?function cloneStringObjectProperties(e,t){const n=t.valueOf().length;for(const r in t)Object.hasOwn(t,r)&&(Number.isNaN(Number(r))||Number(r)>=n)&&(e[r]=t[r])}(t,e):copyOwnProperties(t,e);return t}if(f===u)return new Date(Number(e));if(f===t){const t=e,n=new RegExp(t.source,t.flags);n.lastIndex=t.lastIndex;return n}if(f===s)return Object(Symbol.prototype.valueOf.call(e));if(f===a){const t=e,n=new Map;t.forEach(((e,t)=>{n.set(t,e)}));return n}if(f===c){const t=e,n=new Set;t.forEach((e=>{n.add(e)}));return n}if(f===o){const t=e,n={};copyOwnProperties(n,t);n.length=t.length;n[Symbol.iterator]=t[Symbol.iterator];return n}const h={};!function copyPrototype(e,t){const n=Object.getPrototypeOf(t);if(null!==n){"function"==typeof t.constructor&&Object.setPrototypeOf(e,n)}}(h,e);copyOwnProperties(h,e);!function copySymbolProperties(e,t){const n=Object.getOwnPropertySymbols(t);for(let r=0;r<n.length;r++){const i=n[r];Object.prototype.propertyIsEnumerable.call(t,i)&&(e[i]=t[i])}}(h,e);return h}function copyOwnProperties(e,t){for(const n in t)Object.hasOwn(t,n)&&(e[n]=t[n])}function cloneWith(e,t){if(!t)return clone$1(e);const n=t(e);return void 0!==n?n:clone$1(e)}function create(e,t){const n=isObject(e)?Object.create(e):{};if(null!=t){const e=keys(t);for(let r=0;r<e.length;r++){const i=e[r],o=t[i];assignValue(n,i,o)}}return n}function defaults(e,...t){e=Object(e);const n=Object.prototype;let r=t.length;const i=r>2?t[2]:void 0;i&&isIterateeCall(t[0],t[1],i)&&(r=1);for(let i=0;i<r;i++){if(isNil$1(t[i]))continue;const r=t[i],o=Object.keys(r);for(let t=0;t<o.length;t++){const i=o[t],s=e[i];(void 0===s||!Object.hasOwn(e,i)&&isEqualsSameValueZero(s,n[i]))&&(e[i]=r[i])}}return e}function isPlainObject(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];if(null==t)return!1;return!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function defaultsDeep(e,...t){e=Object(e);for(let n=0;n<t.length;n++){const r=t[n];null!=r&&defaultsDeepRecursive(e,r,new WeakMap)}return e}function defaultsDeepRecursive(e,t,n){for(const r in t){const i=t[r],o=e[r];void 0!==o&&Object.hasOwn(e,r)?n.get(i)!==o&&handleExistingProperty(o,i,n):e[r]=handleMissingProperty(i,n)}}function handleMissingProperty(e,t){if(t.has(e))return t.get(e);if(isPlainObject(e)){const n={};t.set(e,n);defaultsDeepRecursive(n,e,t);return n}return e}function handleExistingProperty(e,t,n){if(isPlainObject(e)&&isPlainObject(t)){n.set(t,e);defaultsDeepRecursive(e,t,n)}else if(Array.isArray(e)&&Array.isArray(t)){n.set(t,e);!function mergeArrays(e,t,n){const r=Math.min(t.length,e.length);for(let i=0;i<r;i++)isPlainObject(e[i])&&isPlainObject(t[i])&&defaultsDeepRecursive(e[i],t[i],n);for(let n=r;n<t.length;n++)e.push(t[n])}(e,t,n)}}function findKey(e,t){if(!isObject(e))return;return function findKey$1(e,t){return Object.keys(e).find((n=>t(e[n],n,e)))}(e,iteratee(t??identity))}function findLastKey(e,t){if(!isObject(e))return;const n=iteratee(t??identity);return Object.keys(e).findLast((t=>n(e[t],t,e)))}function forIn(e,t=identity$1){if(null==e)return e;for(const n in e){if(!1===t(e[n],n,e))break}return e}function forInRight(e,t=identity$1){if(null==e)return e;const n=[];for(const t in e)n.push(t);for(let r=n.length-1;r>=0;r--){const i=n[r];if(!1===t(e[i],i,e))break}return e}function forOwn(e,t=identity$1){if(null==e)return e;const n=Object(e),r=keys(e);for(let e=0;e<r.length;++e){const i=r[e];if(!1===t(n[i],i,n))break}return e}function forOwnRight(e,t=identity$1){if(null==e)return e;const n=Object(e),r=keys(e);for(let e=r.length-1;e>=0;--e){const i=r[e];if(!1===t(n[i],i,n))break}return e}function fromPairs(e){if(!isArrayLike(e))return{};const t={};for(let n=0;n<e.length;n++){const[r,i]=e[n];t[r]=i}return t}function functions(e){return null==e?[]:keys(e).filter((t=>"function"==typeof e[t]))}function functionsIn(e){if(null==e)return[];const t=[];for(const n in e)isFunction$1(e[n])&&t.push(n);return t}function hasIn(e,t){if(null==e)return!1;let n;n=Array.isArray(t)?t:"string"==typeof t&&isDeepKey(t)&&null==e[t]?toPath(t):[t];if(0===n.length)return!1;let r=e;for(let e=0;e<n.length;e++){const t=n[e];if(null==r||!(t in Object(r))){if(!((Array.isArray(r)||isArguments(r))&&isIndex(t)&&t<r.length))return!1}r=r[t]}return!0}function invert(e){return function invert$1(e){const t={},n=Object.keys(e);for(let r=0;r<n.length;r++){const i=n[r];t[e[i]]=i}return t}(e)}function invertBy(e,t){const n={};if(isNil$1(e))return n;null==t&&(t=identity$1);const r=Object.keys(e),i=iteratee(t);for(let t=0;t<r.length;t++){const o=r[t],s=i(e[o]);Array.isArray(n[s])?n[s].push(o):n[s]=[o]}return n}function mapKeys(e,t=identity$1){return null==e?{}:function mapKeys$1(e,t){const n={},r=Object.keys(e);for(let i=0;i<r.length;i++){const o=r[i],s=e[o];n[t(s,o,e)]=s}return n}(e,iteratee(t))}function mapValues(e,t=identity$1){return null==e?{}:function mapValues$1(e,t){const n={},r=Object.keys(e);for(let i=0;i<r.length;i++){const o=r[i],s=e[o];n[o]=t(s,o,e)}return n}(e,iteratee(t))}function mergeWith(e,...t){const n=t.slice(0,-1),r=t[t.length-1];let i=e;for(let e=0;e<n.length;e++){i=mergeWithDeep(i,n[e],r,new Map)}return i}function mergeWithDeep(e,t,n,r){isPrimitive(e)&&(e=Object(e));if(null==t||"object"!=typeof t)return e;if(r.has(t))return function clone(e){if(isPrimitive(e))return e;if(Array.isArray(e)||isTypedArray$1(e)||e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(null==t)return Object.assign(Object.create(t),e);const n=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new n(e);if(e instanceof RegExp){const t=new n(e);t.lastIndex=e.lastIndex;return t}if(e instanceof DataView)return new n(e.buffer.slice(0));if(e instanceof Error){let t;t=e instanceof AggregateError?new n(e.errors,e.message,{cause:e.cause}):new n(e.message,{cause:e.cause});t.stack=e.stack;Object.assign(t,e);return t}if("undefined"!=typeof File&&e instanceof File)return new n([e],e.name,{type:e.type,lastModified:e.lastModified});if("object"==typeof e){const n=Object.create(t);return Object.assign(n,e)}return e}(r.get(t));r.set(t,e);if(Array.isArray(t)){t=t.slice();for(let e=0;e<t.length;e++)t[e]=t[e]??void 0}const i=[...Object.keys(t),...getSymbols(t)];for(let o=0;o<i.length;o++){const s=i[o];if(isUnsafeProperty(s))continue;let u=t[s],a=e[s];isArguments(u)&&(u={...u});isArguments(a)&&(a={...a});"undefined"!=typeof Buffer&&Buffer.isBuffer(u)&&(u=cloneDeep(u));if(Array.isArray(u))if(Array.isArray(a)){const e=[],t=Reflect.ownKeys(a);for(let n=0;n<t.length;n++){const r=t[n];e[r]=a[r]}a=e}else if(isArrayLikeObject(a)){const e=[];for(let t=0;t<a.length;t++)e[t]=a[t];a=e}else a=[];const c=n(a,u,s,e,t,r);void 0!==c?e[s]=c:Array.isArray(u)||isObjectLike(a)&&isObjectLike(u)&&(isPlainObject(a)||isPlainObject(u)||isTypedArray(a)||isTypedArray(u))?e[s]=mergeWithDeep(a,u,n,r):null==a&&isPlainObject(u)?e[s]=mergeWithDeep({},u,n,r):null==a&&isTypedArray(u)?e[s]=cloneDeep(u):void 0!==a&&void 0===u||(e[s]=u)}return e}function merge(e,...t){return mergeWith(e,...t,noop$1)}function getSymbolsIn(e){const t=[];for(;e;){t.push(...getSymbols(e));e=Object.getPrototypeOf(e)}return t}function omit(e,...t){if(null==e)return{};const n=function cloneInOmit(e,t){const n=t.some((e=>Array.isArray(e)||isDeepKey(e)));if(n)return function deepCloneInOmit(e){const t={},n=[...keysIn(e),...getSymbolsIn(e)];for(let r=0;r<n.length;r++){const i=n[r];t[i]=cloneDeepWith(e[i],(e=>{if(!isPlainObject(e))return e}))}return t}(e);return function shallowCloneInOmit(e){const t={},n=[...keysIn(e),...getSymbolsIn(e)];for(let r=0;r<n.length;r++){const i=n[r];t[i]=e[i]}return t}(e)}(e,t=flatten(t));for(let e=0;e<t.length;e++){let r=t[e];switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));for(let e=0;e<r.length;e++){unset(n,r[e])}break;case"string":case"symbol":case"number":unset(n,r)}}return n}function omitBy(e,t){if(null==e)return{};const n={},r=iteratee(t??identity),i=isArrayLike(e)?range$1(0,e.length):[...keysIn(e),...getSymbolsIn(e)];for(let t=0;t<i.length;t++){const o=isSymbol$1(i[t])?i[t]:i[t].toString(),s=e[o];r(s,o,e)||(n[o]=s)}return n}function pick(e,...t){if(isNil(e))return{};const n={};for(let r=0;r<t.length;r++){let i=t[r];switch(typeof i){case"object":Array.isArray(i)||(i=isArrayLike(i)?Array.from(i):[i]);break;case"string":case"symbol":case"number":i=[i]}for(const t of i){const r=get(e,t);(void 0!==r||has(e,t))&&("string"==typeof t&&Object.hasOwn(e,t)?n[t]=r:set(n,t,r))}}return n}function pickBy(e,t){if(null==e)return{};const n=iteratee(t??identity),r={},i=isArrayLike(e)?range$1(0,e.length):[...keysIn(e),...getSymbolsIn(e)];for(let t=0;t<i.length;t++){const o=isSymbol$1(i[t])?i[t]:i[t].toString(),s=e[o];n(s,o,e)&&(r[o]=s)}return r}function propertyOf(e){return function(t){return get(e,t)}}function result(e,t,n){isKey(t,e)?t=[t]:Array.isArray(t)||(t=toPath(toString(t)));const r=Math.max(t.length,1);for(let i=0;i<r;i++){const r=null==e?void 0:e[toKey(t[i])];if(void 0===r)return"function"==typeof n?n.call(e):n;e="function"==typeof r?r.call(e):r}return e}function setWith(e,t,n,r){let i;i="function"==typeof r?r:()=>{};return updateWith(e,t,(()=>n),i)}function toDefaulted(e,...t){return defaults(cloneDeep(e),...t)}function mapToEntries(e){const t=new Array(e.size),n=e.keys(),r=e.values();for(let e=0;e<t.length;e++)t[e]=[n.next().value,r.next().value];return t}function setToEntries(e){const t=new Array(e.size),n=e.values();for(let e=0;e<t.length;e++){const r=n.next().value;t[e]=[r,r]}return t}function toPairs(e){if(null==e)return[];if(e instanceof Set)return setToEntries(e);if(e instanceof Map)return mapToEntries(e);const t=keys(e),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=t[r],o=e[i];n[r]=[i,o]}return n}function toPairsIn(e){if(null==e)return[];if(e instanceof Set)return setToEntries(e);if(e instanceof Map)return mapToEntries(e);const t=keysIn(e),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=t[r],o=e[i];n[r]=[i,o]}return n}function isBuffer(e){return isBuffer$1(e)}function transform(e,t=identity$1,n){const r=Array.isArray(e)||isBuffer(e)||isTypedArray(e);t=iteratee(t);null==n&&(n=r?[]:isObject(e)&&isFunction$1(e.constructor)?Object.create(Object.getPrototypeOf(e)):{});if(null==e)return n;forEach(e,((e,r,i)=>t(n,e,r,i)));return n}function update(e,t,n){return updateWith(e,t,n,(()=>{}))}function valuesIn(e){const t=keysIn(e),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=t[r];n[r]=e[i]}return n}function isFunction(e){return"function"==typeof e}function isLength(e){return Number.isSafeInteger(e)&&e>=0}const D=Function.prototype.toString,z=RegExp(`^${D.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")}$`);function isNative(e){if("function"!=typeof e)return!1;if(null!=globalThis?.["__core-js_shared__"])throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return z.test(D.call(e))}function isNull(e){return null===e}function isUndefined(e){return isUndefined$1(e)}function conformsTo(e,t){if(null==t)return!0;if(null==e)return 0===Object.keys(t).length;const n=Object.keys(t);for(let r=0;r<n.length;r++){const i=n[r],o=t[i],s=e[i];if(void 0===s&&!(i in e))return!1;if("function"==typeof o&&!o(s))return!1}return!0}function conforms(e){e=cloneDeep$1(e);return function(t){return conformsTo(t,e)}}function isArrayBuffer(e){return function isArrayBuffer$1(e){return e instanceof ArrayBuffer}(e)}function isBoolean(e){return"boolean"==typeof e||e instanceof Boolean}function isDate(e){return function isDate$1(e){return e instanceof Date}(e)}function isElement(e){return isObjectLike(e)&&1===e.nodeType&&!isPlainObject(e)}function isEmpty(e){if(null==e)return!0;if(isArrayLike(e))return!!("function"==typeof e.splice||"string"==typeof e||"undefined"!=typeof Buffer&&Buffer.isBuffer(e)||isTypedArray(e)||isArguments(e))&&0===e.length;if("object"==typeof e){if(e instanceof Map||e instanceof Set)return 0===e.size;const t=Object.keys(e);return isPrototype(e)?0===t.filter((e=>"constructor"!==e)).length:0===t.length}return!0}function after(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n>=e)return t(...r)}}function isEqualWith(e,t,n){"function"!=typeof n&&(n=()=>{});return isEqualWith$1(e,t,((...r)=>{const i=n(...r);return void 0!==i?Boolean(i):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?isEqualWith(Array.from(e),Array.from(t),after(2,n)):void 0}))}function isError(e){return"[object Error]"===getTag(e)}function isFinite(e){return Number.isFinite(e)}function isInteger(e){return Number.isInteger(e)}function isRegExp(e){return function isRegExp$1(e){return e instanceof RegExp}(e)}function isSafeInteger(e){return Number.isSafeInteger(e)}function isSet(e){return function isSet$1(e){return e instanceof Set}(e)}function isWeakMap(e){return function isWeakMap$1(e){return e instanceof WeakMap}(e)}function isWeakSet(e){return function isWeakSet$1(e){return e instanceof WeakSet}(e)}function capitalize$1(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function capitalize(e){return capitalize$1(toString(e))}function bindAll(e,...t){if(null==e)return e;if(!isObject(e))return e;if(isArray(e)&&0===t.length)return e;const n=[];for(let e=0;e<t.length;e++){const r=t[e];isArray(r)?n.push(...r):r&&"object"==typeof r&&"length"in r?n.push(...Array.from(r)):n.push(r)}if(0===n.length)return e;for(let t=0;t<n.length;t++){const r=toString(n[t]),i=e[r];isFunction$1(i)&&(e[r]=i.bind(e))}return e}const q=new Map([["Æ","Ae"],["Ð","D"],["Ø","O"],["Þ","Th"],["ß","ss"],["æ","ae"],["ð","d"],["ø","o"],["þ","th"],["Đ","D"],["đ","d"],["Ħ","H"],["ħ","h"],["ı","i"],["Ĳ","IJ"],["ĳ","ij"],["ĸ","k"],["Ŀ","L"],["ŀ","l"],["Ł","L"],["ł","l"],["ŉ","'n"],["Ŋ","N"],["ŋ","n"],["Œ","Oe"],["œ","oe"],["Ŧ","T"],["ŧ","t"],["ſ","s"]]);function deburr(e){return function deburr$1(e){e=e.normalize("NFD");let t="";for(let n=0;n<e.length;n++){const r=e[n];r>="̀"&&r<="ͯ"||r>="︠"&&r<="︣"||(t+=q.get(r)??r)}return t}(toString(e))}const T=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function words$1(e){return Array.from(e.match(T)??[])}function normalizeForCase(e){"string"!=typeof e&&(e=toString(e));return e.replace(/['\u2019]/g,"")}function camelCase(e){return function camelCase$1(e){const t=words$1(e);if(0===t.length)return"";const[n,...r]=t;return`${n.toLowerCase()}${r.map((e=>capitalize$1(e))).join("")}`}(normalizeForCase(deburr(e)))}function endsWith(e,t,n){if(null==e||null==t)return!1;null==n&&(n=e.length);return e.endsWith(t,n)}const C={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function escape(e){return function escape$1(e){return e.replace(/[&<>"']/g,(e=>C[e]))}(toString(e))}function escapeRegExp(e){return function escapeRegExp$1(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}(toString(e))}function kebabCase(e){return function kebabCase$1(e){return words$1(e).map((e=>e.toLowerCase())).join("-")}(normalizeForCase(deburr(e)))}function lowerCase(e){return function lowerCase$1(e){return words$1(e).map((e=>e.toLowerCase())).join(" ")}(normalizeForCase(deburr(e)))}function lowerFirst(e){return function lowerFirst$1(e){return e.substring(0,1).toLowerCase()+e.substring(1)}(toString(e))}function pad(e,t,n){return function pad$1(e,t,n=" "){return e.padStart(Math.floor((t-e.length)/2)+e.length,n).padEnd(t,n)}(toString(e),t,n)}function padEnd(e,t=0,n=" "){return toString(e).padEnd(t,n)}function padStart(e,t=0,n=" "){return toString(e).padStart(t,n)}const F=Number.MAX_SAFE_INTEGER;function repeat(e,t,n){return(t=(n?isIterateeCall(e,t,n):void 0===t)?1:toInteger(t))<1||t>F?"":toString(e).repeat(t)}function replace(e,t,n){return arguments.length<3?toString(e):toString(e).replace(t,n)}function snakeCase(e){return function snakeCase$1(e){return words$1(e).map((e=>e.toLowerCase())).join("_")}(normalizeForCase(deburr(e)))}function split(e,t,n){return toString(e).split(t,n)}function startCase(e){const t=words$1(normalizeForCase(deburr(e)).trim());let n="";for(let e=0;e<t.length;e++){const r=t[e];n&&(n+=" ");r===r.toUpperCase()?n+=r:n+=r[0].toUpperCase()+r.slice(1).toLowerCase()}return n}function startsWith(e,t,n){if(null==e||null==t)return!1;null==n&&(n=0);return e.startsWith(t,n)}const _=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,K=/['\n\r\u2028\u2029\\]/g,U=/($^)/,V=new Map([["\\","\\"],["'","'"],["\n","n"],["\r","r"],["\u2028","u2028"],["\u2029","u2029"]]);function escapeString(e){return`\\${V.get(e)}`}const Z=/<%=([\s\S]+?)%>/g,X={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:Z,variable:"",imports:{_:{escape,template}}};function template(e,t,n){e=toString(e);n&&(t=X);t=defaults({...t},X);const r=new RegExp([t.escape?.source??U.source,t.interpolate?.source??U.source,t.interpolate===Z?_.source:U.source,t.evaluate?.source??U.source,"$"].join("|"),"g");let i=0,o=!1,s="__p += ''";for(const t of e.matchAll(r)){const[n,r,u,a,c]=t,{index:l}=t;s+=` + '${e.slice(i,l).replace(K,escapeString)}'`;r&&(s+=` + _.escape(${r})`);u?s+=` + ((${u}) == null ? '' : ${u})`:a&&(s+=` + ((${a}) == null ? '' : ${a})`);if(c){s+=`;\n${c};\n __p += ''`;o=!0}i=l+n.length}const u=defaults({...t.imports},X.imports),a=Object.keys(u),c=Object.values(u),l=`//# sourceURL=${t.sourceURL?String(t.sourceURL).replace(/[\r\n]/g," "):`es-toolkit.templateSource[${Date.now()}]`}\n`,f=`function(${t.variable||"obj"}) {\n    let __p = '';\n    ${t.variable?"":"if (obj == null) { obj = {}; }"}\n    ${o?"function print() { __p += Array.prototype.join.call(arguments, ''); }":""}\n    ${t.variable?s:`with(obj) {\n${s}\n}`}\n    return __p;\n  }`,p=attempt((()=>new Function(...a,`${l}return ${f}`)(...c)));p.source=f;if(p instanceof Error)throw p;return p}function toLower(e){return toString(e).toLowerCase()}function toUpper(e){return toString(e).toUpperCase()}function trimEnd$1(e,t){if(void 0===t)return e.trimEnd();let n=e.length;switch(typeof t){case"string":if(1!==t.length)throw new Error("The 'chars' parameter should be a single character string.");for(;n>0&&e[n-1]===t;)n--;break;case"object":for(;n>0&&t.includes(e[n-1]);)n--}return e.substring(0,n)}function trimStart$1(e,t){if(void 0===t)return e.trimStart();let n=0;switch(typeof t){case"string":for(;n<e.length&&e[n]===t;)n++;break;case"object":for(;n<e.length&&t.includes(e[n]);)n++}return e.substring(n)}function trim$1(e,t){return void 0===t?e.trim():trimStart$1(trimEnd$1(e,t),t)}function trim(e,t,n){return null==e?"":null!=n||null==t?e.toString().trim():"object"==typeof t&&Array.isArray(t)?trim$1(e,t.flatMap((e=>e.toString().split("")))):trim$1(e,t.toString().split(""))}function trimEnd(e,t,n){return null==e?"":null!=n||null==t?e.toString().trimEnd():trimEnd$1(e,t.toString().split(""))}function trimStart(e,t,n){return null==e?"":null!=n||null==t?e.toString().trimStart():trimStart$1(e,t.toString().split(""))}const G=/[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;function truncate(e,t){e=null!=e?`${e}`:"";let n=30,r="...";if(isObject(t)){n=function parseLength(e){if(null==e)return 30;if(e<=0)return 0;return e}(t.length);r="omission"in t?`${t.omission}`:"..."}let i=e.length;const o=Array.from(r).length,s=Math.max(n-o,0);let u;if(G.test(e)){u=Array.from(e);i=u.length}if(n>=i)return e;if(i<=o)return r;let a=void 0===u?e.slice(0,s):u?.slice(0,s).join("");const c=t?.separator;if(!c){a+=r;return a}const l=c instanceof RegExp?c.source:c,f="u"+(c instanceof RegExp?c.flags.replace("u",""):""),p=new RegExp(`(?<result>.*(?:(?!${l}).))(?:${l})`,f).exec(a);return(p?.groups?p.groups.result:a)+r}const H={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};function unescape(e){return function unescape$1(e){return e.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,(e=>H[e]||"'"))}(toString(e))}function upperCase(e){return function upperCase$1(e){const t=words$1(e);let n="";for(let e=0;e<t.length;e++){n+=t[e].toUpperCase();e<t.length-1&&(n+=" ")}return n}(normalizeForCase(deburr(e)))}function upperFirst(e){return function upperFirst$1(e){return e.substring(0,1).toUpperCase()+e.substring(1)}(toString(e))}const J="\\p{Lu}",Q="\\p{Ll}",Y="(?:[\\p{Lm}\\p{Lo}]\\p{M}*)",ee="\\d",te="(?:['’](?:d|ll|m|re|s|t|ve))?",ne="(?:['’](?:D|LL|M|RE|S|T|VE))?",re="[\\p{Z}\\p{P}\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7]",ie=`(?:${Q}|${Y})`,oe=RegExp([`${J}?${Q}+${te}(?=${re}|${J}|$)`,`${`(?:${J}|${Y})`}+${ne}(?=${re}|${J}${ie}|$)`,`${J}?${ie}+${te}`,`${J}+${ne}`,`${ee}*(?:1ST|2ND|3RD|(?![123])${ee}TH)(?=\\b|[a-z_])`,`${ee}*(?:1st|2nd|3rd|(?![123])${ee}th)(?=\\b|[A-Z_])`,`${ee}+`,"\\p{Emoji_Presentation}","\\p{Extended_Pictographic}"].join("|"),"gu");function words(e,t=oe,n){const r=toString(e);n&&(t=oe);"number"==typeof t&&(t=t.toString());return Array.from(r.match(t)??[]).filter((e=>""!==e))}function cond(e){const t=e.length,n=e.map((e=>{const t=e[0],n=e[1];if(!isFunction$1(n))throw new TypeError("Expected a function");return[iteratee(t),n]}));return function(...e){for(let r=0;r<t;r++){const t=n[r],i=t[0],o=t[1];if(i.apply(this,e))return o.apply(this,e)}}}function constant(e){return()=>e}function defaultTo(e,t){return null==e||Number.isNaN(e)?t:e}function gt(e,t){return"string"==typeof e&&"string"==typeof t?e>t:toNumber(e)>toNumber(t)}function gte(e,t){return"string"==typeof e&&"string"==typeof t?e>=t:toNumber(e)>=toNumber(t)}function invoke(e,t,...n){n=n.flat(1);if(null!=e)switch(typeof t){case"string":return"object"==typeof e&&Object.hasOwn(e,t)?invokeImpl(e,[t],n):invokeImpl(e,toPath(t),n);case"number":case"symbol":return invokeImpl(e,[t],n);default:return Array.isArray(t)?invokeImpl(e,t,n):invokeImpl(e,[t],n)}}function invokeImpl(e,t,n){const r=get(e,t.slice(0,-1),e);if(null==r)return;let i=last(t);const o=i?.valueOf();i="number"==typeof o?toKey(o):String(i);const s=get(r,i);return s?.apply(r,n)}function lt(e,t){return"string"==typeof e&&"string"==typeof t?e<t:toNumber(e)<toNumber(t)}function lte(e,t){return"string"==typeof e&&"string"==typeof t?e<=t:toNumber(e)<=toNumber(t)}function method(e,...t){return function(n){return invoke(n,e,t)}}function methodOf(e,...t){return function(n){return invoke(e,n,t)}}function now(){return Date.now()}function over(...e){1===e.length&&Array.isArray(e[0])&&(e=e[0]);const t=e.map((e=>iteratee(e)));return function(...e){return t.map((t=>t.apply(this,e)))}}function overEvery(...e){return function(...t){for(let n=0;n<e.length;++n){const r=e[n];if(Array.isArray(r)){for(let e=0;e<r.length;++e)if(!iteratee(r[e]).apply(this,t))return!1}else if(!iteratee(r).apply(this,t))return!1}return!0}}function overSome(...e){return function(...t){for(let n=0;n<e.length;++n){const r=e[n];if(Array.isArray(r)){for(let e=0;e<r.length;++e)if(iteratee(r[e]).apply(this,t))return!0}else if(iteratee(r).apply(this,t))return!0}return!1}}function stubArray(){return[]}function stubFalse(){return!1}function stubObject(){return{}}function stubString(){return""}function stubTrue(){return!0}function toLength(e){if(null==e)return 0;return clamp(Math.floor(Number(e)),0,4294967295)}function toPlainObject(e){const t={},n=keysIn(e);for(let r=0;r<n.length;r++){const i=n[r],o=e[i];"__proto__"===i?Object.defineProperty(t,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):t[i]=o}return t}function toSafeInteger(e){return null==e?0:clamp(toInteger(e),-F,F)}let se=0;function uniqueId(e=""){return`${e}${++se}`}const ue=Object.freeze(Object.defineProperty({__proto__:null,add,after:after$1,ary,assign,assignIn,assignInWith,assignWith,at,attempt,before,bind,bindAll,bindKey,camelCase,capitalize,castArray,ceil,chunk,clamp,clone:clone$1,cloneDeep,cloneDeepWith,cloneWith,compact,concat,cond,conforms,conformsTo,constant,countBy,create,curry,curryRight,debounce,deburr,defaultTo,defaults,defaultsDeep,defer,delay,difference,differenceBy,differenceWith,divide,drop,dropRight,dropRightWhile,dropWhile,each:forEach,eachRight:forEachRight,endsWith,eq:isEqualsSameValueZero,escape,escapeRegExp,every,extend:assignIn,extendWith:assignInWith,fill,filter,find,findIndex,findKey,findLast,findLastIndex,findLastKey,first:head,flatMap,flatMapDeep,flatMapDepth,flatten,flattenDeep,flattenDepth,flip,floor,flow,flowRight,forEach,forEachRight,forIn,forInRight,forOwn,forOwnRight,fromPairs,functions,functionsIn,get,groupBy,gt,gte,has,hasIn,head,identity,inRange,includes,indexOf,initial,intersection,intersectionBy,intersectionWith,invert,invertBy,invoke,invokeMap,isArguments,isArray,isArrayBuffer,isArrayLike,isArrayLikeObject,isBoolean,isBuffer,isDate,isElement,isEmpty,isEqual,isEqualWith,isError,isFinite,isFunction,isInteger,isLength,isMap,isMatch,isMatchWith,isNaN,isNative,isNil,isNull,isNumber,isObject,isObjectLike,isPlainObject,isRegExp,isSafeInteger,isSet,isString,isSymbol:isSymbol$1,isTypedArray,isUndefined,isWeakMap,isWeakSet,iteratee,join,kebabCase,keyBy,keys,keysIn,last,lastIndexOf,lowerCase,lowerFirst,lt,lte,map,mapKeys,mapValues,matches,matchesProperty,max,maxBy,mean,meanBy,memoize,merge,mergeWith,method,methodOf,min,minBy,multiply,negate:negate$1,noop,now,nth,nthArg,omit,omitBy,once,orderBy,over,overArgs,overEvery,overSome,pad,padEnd,padStart,parseInt,partial,partialRight,partition,pick,pickBy,property,propertyOf,pull,pullAll,pullAllBy,pullAllWith,pullAt,random,range,rangeRight,rearg,reduce,reduceRight,reject,remove,repeat,replace,rest,result,reverse,round,sample,sampleSize,set,setWith,shuffle,size,slice,snakeCase,some,sortBy,sortedIndex,sortedIndexBy,sortedIndexOf,sortedLastIndex,sortedLastIndexBy,sortedLastIndexOf,split,spread,startCase,startsWith,stubArray,stubFalse,stubObject,stubString,stubTrue,subtract,sum,sumBy:sumBy$1,tail,take,takeRight,takeRightWhile,takeWhile,template,templateSettings:X,throttle,times,toArray,toDefaulted,toFinite,toInteger,toLength,toLower,toNumber,toPairs,toPairsIn,toPath,toPlainObject,toSafeInteger,toString,toUpper,transform,trim,trimEnd,trimStart,truncate,unary,unescape,union,unionBy,unionWith,uniq,uniqBy,uniqWith,uniqueId,unset,unzip,unzipWith,update,updateWith,upperCase,upperFirst,values,valuesIn,without,words,wrap,xor,xorBy,xorWith,zip,zipObject,zipObjectDeep,zipWith},Symbol.toStringTag,{value:"Module"})),toolkit=e=>e;Object.assign(toolkit,ue);toolkit.partial.placeholder=toolkit;toolkit.partialRight.placeholder=toolkit;e.add=add;e.after=after$1;e.ary=ary;e.assign=assign;e.assignIn=assignIn;e.assignInWith=assignInWith;e.assignWith=assignWith;e.at=at;e.attempt=attempt;e.before=before;e.bind=bind;e.bindAll=bindAll;e.bindKey=bindKey;e.camelCase=camelCase;e.capitalize=capitalize;e.castArray=castArray;e.ceil=ceil;e.chunk=chunk;e.clamp=clamp;e.clone=clone$1;e.cloneDeep=cloneDeep;e.cloneDeepWith=cloneDeepWith;e.cloneWith=cloneWith;e.compact=compact;e.concat=concat;e.cond=cond;e.conforms=conforms;e.conformsTo=conformsTo;e.constant=constant;e.countBy=countBy;e.create=create;e.curry=curry;e.curryRight=curryRight;e.debounce=debounce;e.deburr=deburr;e.default=toolkit;e.defaultTo=defaultTo;e.defaults=defaults;e.defaultsDeep=defaultsDeep;e.defer=defer;e.delay=delay;e.difference=difference;e.differenceBy=differenceBy;e.differenceWith=differenceWith;e.divide=divide;e.drop=drop;e.dropRight=dropRight;e.dropRightWhile=dropRightWhile;e.dropWhile=dropWhile;e.each=forEach;e.eachRight=forEachRight;e.endsWith=endsWith;e.eq=isEqualsSameValueZero;e.escape=escape;e.escapeRegExp=escapeRegExp;e.every=every;e.extend=assignIn;e.extendWith=assignInWith;e.fill=fill;e.filter=filter;e.find=find;e.findIndex=findIndex;e.findKey=findKey;e.findLast=findLast;e.findLastIndex=findLastIndex;e.findLastKey=findLastKey;e.first=head;e.flatMap=flatMap;e.flatMapDeep=flatMapDeep;e.flatMapDepth=flatMapDepth;e.flatten=flatten;e.flattenDeep=flattenDeep;e.flattenDepth=flattenDepth;e.flip=flip;e.floor=floor;e.flow=flow;e.flowRight=flowRight;e.forEach=forEach;e.forEachRight=forEachRight;e.forIn=forIn;e.forInRight=forInRight;e.forOwn=forOwn;e.forOwnRight=forOwnRight;e.fromPairs=fromPairs;e.functions=functions;e.functionsIn=functionsIn;e.get=get;e.groupBy=groupBy;e.gt=gt;e.gte=gte;e.has=has;e.hasIn=hasIn;e.head=head;e.identity=identity;e.inRange=inRange;e.includes=includes;e.indexOf=indexOf;e.initial=initial;e.intersection=intersection;e.intersectionBy=intersectionBy;e.intersectionWith=intersectionWith;e.invert=invert;e.invertBy=invertBy;e.invoke=invoke;e.invokeMap=invokeMap;e.isArguments=isArguments;e.isArray=isArray;e.isArrayBuffer=isArrayBuffer;e.isArrayLike=isArrayLike;e.isArrayLikeObject=isArrayLikeObject;e.isBoolean=isBoolean;e.isBuffer=isBuffer;e.isDate=isDate;e.isElement=isElement;e.isEmpty=isEmpty;e.isEqual=isEqual;e.isEqualWith=isEqualWith;e.isError=isError;e.isFinite=isFinite;e.isFunction=isFunction;e.isInteger=isInteger;e.isLength=isLength;e.isMap=isMap;e.isMatch=isMatch;e.isMatchWith=isMatchWith;e.isNaN=isNaN;e.isNative=isNative;e.isNil=isNil;e.isNull=isNull;e.isNumber=isNumber;e.isObject=isObject;e.isObjectLike=isObjectLike;e.isPlainObject=isPlainObject;e.isRegExp=isRegExp;e.isSafeInteger=isSafeInteger;e.isSet=isSet;e.isString=isString;e.isSymbol=isSymbol$1;e.isTypedArray=isTypedArray;e.isUndefined=isUndefined;e.isWeakMap=isWeakMap;e.isWeakSet=isWeakSet;e.iteratee=iteratee;e.join=join;e.kebabCase=kebabCase;e.keyBy=keyBy;e.keys=keys;e.keysIn=keysIn;e.last=last;e.lastIndexOf=lastIndexOf;e.lowerCase=lowerCase;e.lowerFirst=lowerFirst;e.lt=lt;e.lte=lte;e.map=map;e.mapKeys=mapKeys;e.mapValues=mapValues;e.matches=matches;e.matchesProperty=matchesProperty;e.max=max;e.maxBy=maxBy;e.mean=mean;e.meanBy=meanBy;e.memoize=memoize;e.merge=merge;e.mergeWith=mergeWith;e.method=method;e.methodOf=methodOf;e.min=min;e.minBy=minBy;e.multiply=multiply;e.negate=negate$1;e.noop=noop;e.now=now;e.nth=nth;e.nthArg=nthArg;e.omit=omit;e.omitBy=omitBy;e.once=once;e.orderBy=orderBy;e.over=over;e.overArgs=overArgs;e.overEvery=overEvery;e.overSome=overSome;e.pad=pad;e.padEnd=padEnd;e.padStart=padStart;e.parseInt=parseInt;e.partial=partial;e.partialRight=partialRight;e.partition=partition;e.pick=pick;e.pickBy=pickBy;e.property=property;e.propertyOf=propertyOf;e.pull=pull;e.pullAll=pullAll;e.pullAllBy=pullAllBy;e.pullAllWith=pullAllWith;e.pullAt=pullAt;e.random=random;e.range=range;e.rangeRight=rangeRight;e.rearg=rearg;e.reduce=reduce;e.reduceRight=reduceRight;e.reject=reject;e.remove=remove;e.repeat=repeat;e.replace=replace;e.rest=rest;e.result=result;e.reverse=reverse;e.round=round;e.sample=sample;e.sampleSize=sampleSize;e.set=set;e.setWith=setWith;e.shuffle=shuffle;e.size=size;e.slice=slice;e.snakeCase=snakeCase;e.some=some;e.sortBy=sortBy;e.sortedIndex=sortedIndex;e.sortedIndexBy=sortedIndexBy;e.sortedIndexOf=sortedIndexOf;e.sortedLastIndex=sortedLastIndex;e.sortedLastIndexBy=sortedLastIndexBy;e.sortedLastIndexOf=sortedLastIndexOf;e.split=split;e.spread=spread;e.startCase=startCase;e.startsWith=startsWith;e.stubArray=stubArray;e.stubFalse=stubFalse;e.stubObject=stubObject;e.stubString=stubString;e.stubTrue=stubTrue;e.subtract=subtract;e.sum=sum;e.sumBy=sumBy$1;e.tail=tail;e.take=take;e.takeRight=takeRight;e.takeRightWhile=takeRightWhile;e.takeWhile=takeWhile;e.template=template;e.templateSettings=X;e.throttle=throttle;e.times=times;e.toArray=toArray;e.toDefaulted=toDefaulted;e.toFinite=toFinite;e.toInteger=toInteger;e.toLength=toLength;e.toLower=toLower;e.toNumber=toNumber;e.toPairs=toPairs;e.toPairsIn=toPairsIn;e.toPath=toPath;e.toPlainObject=toPlainObject;e.toSafeInteger=toSafeInteger;e.toString=toString;e.toUpper=toUpper;e.transform=transform;e.trim=trim;e.trimEnd=trimEnd;e.trimStart=trimStart;e.truncate=truncate;e.unary=unary;e.unescape=unescape;e.union=union;e.unionBy=unionBy;e.unionWith=unionWith;e.uniq=uniq;e.uniqBy=uniqBy;e.uniqWith=uniqWith;e.uniqueId=uniqueId;e.unset=unset;e.unzip=unzip;e.unzipWith=unzipWith;e.update=update;e.updateWith=updateWith;e.upperCase=upperCase;e.upperFirst=upperFirst;e.values=values;e.valuesIn=valuesIn;e.without=without;e.words=words;e.wrap=wrap;e.xor=xor;e.xorBy=xorBy;e.xorWith=xorWith;e.zip=zip;e.zipObject=zipObject;e.zipObjectDeep=zipObjectDeep;e.zipWith=zipWith;Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
Index: de_modules/es-toolkit/dist/compat/_internal/ArrayIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ArrayIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ArrayIterator<T, R> = (value: T, index: number, collection: T[]) => R;
-
-export type { ArrayIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/ArrayIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ArrayIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ArrayIterator<T, R> = (value: T, index: number, collection: T[]) => R;
-
-export type { ArrayIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/ConformsPredicateObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ConformsPredicateObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type ConformsPredicateObject<T> = {
-    [P in keyof T]: T[P] extends (arg: infer A) => any ? A : any;
-};
-
-export type { ConformsPredicateObject };
Index: de_modules/es-toolkit/dist/compat/_internal/ConformsPredicateObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ConformsPredicateObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type ConformsPredicateObject<T> = {
-    [P in keyof T]: T[P] extends (arg: infer A) => any ? A : any;
-};
-
-export type { ConformsPredicateObject };
Index: de_modules/es-toolkit/dist/compat/_internal/EmptyObjectOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/EmptyObjectOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-type EmptyObject<T> = {
-    [K in keyof T]?: never;
-};
-type EmptyObjectOf<T> = EmptyObject<T> extends T ? EmptyObject<T> : never;
-
-export type { EmptyObjectOf };
Index: de_modules/es-toolkit/dist/compat/_internal/EmptyObjectOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/EmptyObjectOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-type EmptyObject<T> = {
-    [K in keyof T]?: never;
-};
-type EmptyObjectOf<T> = EmptyObject<T> extends T ? EmptyObject<T> : never;
-
-export type { EmptyObjectOf };
Index: de_modules/es-toolkit/dist/compat/_internal/Equals.d.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/Equals.d.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type Equals<T, U> = (<X>() => X extends T ? 1 : 2) extends <X>() => X extends U ? 1 : 2 ? true : false;
-
-export type { Equals };
Index: de_modules/es-toolkit/dist/compat/_internal/Equals.d.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/Equals.d.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type Equals<T, U> = (<X>() => X extends T ? 1 : 2) extends <X>() => X extends U ? 1 : 2 ? true : false;
-
-export type { Equals };
Index: de_modules/es-toolkit/dist/compat/_internal/GetFieldType.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/GetFieldType.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-type GetFieldTypeOfArrayLikeByKey<T extends unknown[], K> = K extends number ? T[K] : K extends `${infer N extends number}` ? T[N] : K extends keyof T ? T[K] : undefined;
-type GetFieldTypeOfStringByKey<T extends string, K> = K extends number ? T[K] : K extends `${infer N extends number}` ? T[N] : K extends keyof T ? T[K] : undefined;
-type GetFieldTypeOfNarrowedByKey<T, K> = T extends unknown[] ? GetFieldTypeOfArrayLikeByKey<T, K> : T extends string ? GetFieldTypeOfStringByKey<T, K> : K extends keyof T ? T[K] : K extends number ? `${K}` extends keyof T ? T[`${K}`] : undefined : K extends `${infer N extends number}` ? N extends keyof T ? T[N] : undefined : undefined;
-type GetFieldTypeOfNarrowedByDotPath<T, P> = P extends `${infer L}.${infer R}` ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, L>, R, 'DotPath'> : GetFieldTypeOfNarrowedByKey<T, P>;
-type GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R> = '' extends R ? GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'> : R extends `.${infer Rc}` ? GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, Rc> : GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, R>;
-type GetFieldTypeOfNarrowedByLKR<T, L, K, R> = '' extends L ? '' extends R ? GetFieldTypeOfNarrowedByKey<T, K> : R extends `.${infer Rc}` ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, Rc> : GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, R> : L extends `${infer Lc}.` ? GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R> : GetFieldTypeOfNarrowedByLcKR<T, L, K, R>;
-type GetFieldTypeOfNarrowed<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = XT extends 'Key' ? GetFieldTypeOfNarrowedByKey<T, X> : XT extends 'DotPath' ? GetFieldTypeOfNarrowedByDotPath<T, X> : X extends `${infer L}['${infer K}']${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : X extends `${infer L}["${infer K}"]${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : X extends `${infer L}[${infer K}]${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : GetFieldTypeOfNarrowedByDotPath<T, X>;
-type GetFieldTypeOfObject<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = Extract<T, unknown[]> extends never ? GetFieldTypeOfNarrowed<T, X, XT> : GetFieldTypeOfNarrowed<Exclude<T, unknown[]>, X, XT> | GetFieldTypeOfNarrowed<Extract<T, unknown[]>, X, XT>;
-type GetFieldTypeOfPrimitive<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = Extract<T, string> extends never ? T extends never ? never : undefined : (Exclude<T, string> extends never ? never : undefined) | GetFieldTypeOfNarrowed<Extract<T, string>, X, XT>;
-type GetFieldType<T, X, XT extends 'DotPath' | 'Key' | 'Path' = 'Path'> = Extract<T, object> extends never ? GetFieldTypeOfPrimitive<T, X, XT> : GetFieldTypeOfPrimitive<Exclude<T, object>, X, XT> | GetFieldTypeOfObject<Extract<T, object>, X, XT>;
-
-export type { GetFieldType };
Index: de_modules/es-toolkit/dist/compat/_internal/GetFieldType.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/GetFieldType.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-type GetFieldTypeOfArrayLikeByKey<T extends unknown[], K> = K extends number ? T[K] : K extends `${infer N extends number}` ? T[N] : K extends keyof T ? T[K] : undefined;
-type GetFieldTypeOfStringByKey<T extends string, K> = K extends number ? T[K] : K extends `${infer N extends number}` ? T[N] : K extends keyof T ? T[K] : undefined;
-type GetFieldTypeOfNarrowedByKey<T, K> = T extends unknown[] ? GetFieldTypeOfArrayLikeByKey<T, K> : T extends string ? GetFieldTypeOfStringByKey<T, K> : K extends keyof T ? T[K] : K extends number ? `${K}` extends keyof T ? T[`${K}`] : undefined : K extends `${infer N extends number}` ? N extends keyof T ? T[N] : undefined : undefined;
-type GetFieldTypeOfNarrowedByDotPath<T, P> = P extends `${infer L}.${infer R}` ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, L>, R, 'DotPath'> : GetFieldTypeOfNarrowedByKey<T, P>;
-type GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R> = '' extends R ? GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'> : R extends `.${infer Rc}` ? GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, Rc> : GetFieldType<GetFieldType<GetFieldTypeOfNarrowedByDotPath<T, Lc>, K, 'Key'>, R>;
-type GetFieldTypeOfNarrowedByLKR<T, L, K, R> = '' extends L ? '' extends R ? GetFieldTypeOfNarrowedByKey<T, K> : R extends `.${infer Rc}` ? GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, Rc> : GetFieldType<GetFieldTypeOfNarrowedByKey<T, K>, R> : L extends `${infer Lc}.` ? GetFieldTypeOfNarrowedByLcKR<T, Lc, K, R> : GetFieldTypeOfNarrowedByLcKR<T, L, K, R>;
-type GetFieldTypeOfNarrowed<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = XT extends 'Key' ? GetFieldTypeOfNarrowedByKey<T, X> : XT extends 'DotPath' ? GetFieldTypeOfNarrowedByDotPath<T, X> : X extends `${infer L}['${infer K}']${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : X extends `${infer L}["${infer K}"]${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : X extends `${infer L}[${infer K}]${infer R}` ? GetFieldTypeOfNarrowedByLKR<T, L, K, R> : GetFieldTypeOfNarrowedByDotPath<T, X>;
-type GetFieldTypeOfObject<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = Extract<T, unknown[]> extends never ? GetFieldTypeOfNarrowed<T, X, XT> : GetFieldTypeOfNarrowed<Exclude<T, unknown[]>, X, XT> | GetFieldTypeOfNarrowed<Extract<T, unknown[]>, X, XT>;
-type GetFieldTypeOfPrimitive<T, X, XT extends 'DotPath' | 'Key' | 'Path'> = Extract<T, string> extends never ? T extends never ? never : undefined : (Exclude<T, string> extends never ? never : undefined) | GetFieldTypeOfNarrowed<Extract<T, string>, X, XT>;
-type GetFieldType<T, X, XT extends 'DotPath' | 'Key' | 'Path' = 'Path'> = Extract<T, object> extends never ? GetFieldTypeOfPrimitive<T, X, XT> : GetFieldTypeOfPrimitive<Exclude<T, object>, X, XT> | GetFieldTypeOfObject<Extract<T, object>, X, XT>;
-
-export type { GetFieldType };
Index: de_modules/es-toolkit/dist/compat/_internal/IsEqualCustomizer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsEqualCustomizer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type IsEqualCustomizer = (value: any, other: any, indexOrKey: PropertyKey | undefined, parent: any, otherParent: any, stack: any) => boolean | undefined;
-
-export type { IsEqualCustomizer };
Index: de_modules/es-toolkit/dist/compat/_internal/IsEqualCustomizer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsEqualCustomizer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type IsEqualCustomizer = (value: any, other: any, indexOrKey: PropertyKey | undefined, parent: any, otherParent: any, stack: any) => boolean | undefined;
-
-export type { IsEqualCustomizer };
Index: de_modules/es-toolkit/dist/compat/_internal/IsMatchWithCustomizer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsMatchWithCustomizer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type IsMatchWithCustomizer = (value: any, other: any, indexOrKey: PropertyKey, object: object, source: object) => boolean | undefined;
-
-export type { IsMatchWithCustomizer };
Index: de_modules/es-toolkit/dist/compat/_internal/IsMatchWithCustomizer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsMatchWithCustomizer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type IsMatchWithCustomizer = (value: any, other: any, indexOrKey: PropertyKey, object: object, source: object) => boolean | undefined;
-
-export type { IsMatchWithCustomizer };
Index: de_modules/es-toolkit/dist/compat/_internal/IsWritable.d.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsWritable.d.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { Equals } from './Equals.d.mjs';
-
-type IsWritable<T> = Equals<{ [K in keyof T]: T[K] }, { -readonly [K in keyof T]: T[K] }>;
-
-export type { IsWritable };
Index: de_modules/es-toolkit/dist/compat/_internal/IsWritable.d.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IsWritable.d.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { Equals } from './Equals.d.js';
-
-type IsWritable<T> = Equals<{ [K in keyof T]: T[K] }, { -readonly [K in keyof T]: T[K] }>;
-
-export type { IsWritable };
Index: de_modules/es-toolkit/dist/compat/_internal/IterateeShorthand.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IterateeShorthand.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.mjs';
-
-type IterateeShorthand<T> = PropertyKey | [PropertyKey, any] | PartialShallow<T>;
-
-export type { IterateeShorthand };
Index: de_modules/es-toolkit/dist/compat/_internal/IterateeShorthand.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/IterateeShorthand.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.js';
-
-type IterateeShorthand<T> = PropertyKey | [PropertyKey, any] | PartialShallow<T>;
-
-export type { IterateeShorthand };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIteratee.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIteratee.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.mjs';
-
-type ListIteratee<T> = ((value: T, index: number, collection: ArrayLike<T>) => unknown) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ListIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIteratee.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.js';
-
-type ListIteratee<T> = ((value: T, index: number, collection: ArrayLike<T>) => unknown) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ListIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.mjs';
-
-type ListIterateeCustom<T, R> = ((value: T, index: number, collection: ArrayLike<T>) => R) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ListIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIterateeCustom.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.js';
-
-type ListIterateeCustom<T, R> = ((value: T, index: number, collection: ArrayLike<T>) => R) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ListIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ListIterator<T, R> = (value: T, index: number, collection: ArrayLike<T>) => R;
-
-export type { ListIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ListIterator<T, R> = (value: T, index: number, collection: ArrayLike<T>) => R;
-
-export type { ListIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIteratorTypeGuard.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIteratorTypeGuard.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ListIteratorTypeGuard<T, S extends T> = (value: T, index: number, collection: ArrayLike<T>) => value is S;
-
-export type { ListIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ListIteratorTypeGuard.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListIteratorTypeGuard.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ListIteratorTypeGuard<T, S extends T> = (value: T, index: number, collection: ArrayLike<T>) => value is S;
-
-export type { ListIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ListOfRecursiveArraysOrValues.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListOfRecursiveArraysOrValues.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { RecursiveArray } from './RecursiveArray.mjs';
-
-interface ListOfRecursiveArraysOrValues<T> extends ArrayLike<T | RecursiveArray<T>> {
-}
-
-export type { ListOfRecursiveArraysOrValues };
Index: de_modules/es-toolkit/dist/compat/_internal/ListOfRecursiveArraysOrValues.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ListOfRecursiveArraysOrValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { RecursiveArray } from './RecursiveArray.js';
-
-interface ListOfRecursiveArraysOrValues<T> extends ArrayLike<T | RecursiveArray<T>> {
-}
-
-export type { ListOfRecursiveArraysOrValues };
Index: de_modules/es-toolkit/dist/compat/_internal/MAX_ARRAY_LENGTH.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MAX_ARRAY_LENGTH.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const MAX_ARRAY_LENGTH = 4_294_967_295;
-
-exports.MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH;
Index: de_modules/es-toolkit/dist/compat/_internal/MAX_ARRAY_LENGTH.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MAX_ARRAY_LENGTH.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-const MAX_ARRAY_LENGTH = 4_294_967_295;
-
-export { MAX_ARRAY_LENGTH };
Index: de_modules/es-toolkit/dist/compat/_internal/MAX_SAFE_INTEGER.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MAX_SAFE_INTEGER.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
-
-exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
Index: de_modules/es-toolkit/dist/compat/_internal/MAX_SAFE_INTEGER.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MAX_SAFE_INTEGER.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
-
-export { MAX_SAFE_INTEGER };
Index: de_modules/es-toolkit/dist/compat/_internal/Many.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/Many.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type Many<T> = T | readonly T[];
-
-export type { Many };
Index: de_modules/es-toolkit/dist/compat/_internal/Many.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/Many.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type Many<T> = T | readonly T[];
-
-export type { Many };
Index: de_modules/es-toolkit/dist/compat/_internal/MemoListIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MemoListIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type MemoListIterator<T, R, A> = (prev: R, curr: T, index: number, list: A) => R;
-
-export type { MemoListIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/MemoListIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MemoListIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type MemoListIterator<T, R, A> = (prev: R, curr: T, index: number, list: A) => R;
-
-export type { MemoListIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/MemoObjectIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MemoObjectIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type MemoObjectIterator<T, R, A> = (prev: R, curr: T, key: string, list: A) => R;
-
-export type { MemoObjectIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/MemoObjectIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MemoObjectIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type MemoObjectIterator<T, R, A> = (prev: R, curr: T, key: string, list: A) => R;
-
-export type { MemoObjectIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/MutableList.d.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MutableList.d.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-interface MutableList<T> {
-  length: number;
-  [k: number]: T;
-}
-
-export type { MutableList };
Index: de_modules/es-toolkit/dist/compat/_internal/MutableList.d.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/MutableList.d.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-interface MutableList<T> {
-  length: number;
-  [k: number]: T;
-}
-
-export type { MutableList };
Index: de_modules/es-toolkit/dist/compat/_internal/ObjectIteratee.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ObjectIteratee.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.mjs';
-import { ObjectIterator } from './ObjectIterator.mjs';
-
-type ObjectIteratee<TObject> = ObjectIterator<TObject, unknown> | IterateeShorthand<TObject[keyof TObject]>;
-type ObjectIterateeCustom<TObject, TResult> = ObjectIterator<TObject, TResult> | IterateeShorthand<TObject[keyof TObject]>;
-
-export type { ObjectIteratee, ObjectIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ObjectIteratee.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ObjectIteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.js';
-import { ObjectIterator } from './ObjectIterator.js';
-
-type ObjectIteratee<TObject> = ObjectIterator<TObject, unknown> | IterateeShorthand<TObject[keyof TObject]>;
-type ObjectIterateeCustom<TObject, TResult> = ObjectIterator<TObject, TResult> | IterateeShorthand<TObject[keyof TObject]>;
-
-export type { ObjectIteratee, ObjectIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ObjectIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ObjectIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-type ObjectIterator<T, R> = (value: T[keyof T], key: string, collection: T) => R;
-type ObjectIteratorTypeGuard<T, U extends T[keyof T]> = (value: T[keyof T], key: string, collection: T) => value is U;
-
-export type { ObjectIterator, ObjectIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ObjectIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ObjectIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-type ObjectIterator<T, R> = (value: T[keyof T], key: string, collection: T) => R;
-type ObjectIteratorTypeGuard<T, U extends T[keyof T]> = (value: T[keyof T], key: string, collection: T) => value is U;
-
-export type { ObjectIterator, ObjectIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/PartialShallow.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/PartialShallow.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type PartialShallow<T> = {
-    [P in keyof T]?: T[P] extends object ? object : T[P];
-};
-
-export type { PartialShallow };
Index: de_modules/es-toolkit/dist/compat/_internal/PartialShallow.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/PartialShallow.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type PartialShallow<T> = {
-    [P in keyof T]?: T[P] extends object ? object : T[P];
-};
-
-export type { PartialShallow };
Index: de_modules/es-toolkit/dist/compat/_internal/PropertyPath.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/PropertyPath.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { Many } from './Many.mjs';
-
-type PropertyPath = Many<PropertyKey>;
-
-export type { PropertyPath };
Index: de_modules/es-toolkit/dist/compat/_internal/PropertyPath.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/PropertyPath.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { Many } from './Many.js';
-
-type PropertyPath = Many<PropertyKey>;
-
-export type { PropertyPath };
Index: de_modules/es-toolkit/dist/compat/_internal/RecursiveArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/RecursiveArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-interface RecursiveArray<T> extends Array<T | RecursiveArray<T>> {
-}
-
-export type { RecursiveArray };
Index: de_modules/es-toolkit/dist/compat/_internal/RecursiveArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/RecursiveArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-interface RecursiveArray<T> extends Array<T | RecursiveArray<T>> {
-}
-
-export type { RecursiveArray };
Index: de_modules/es-toolkit/dist/compat/_internal/RejectReadonly.d.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/RejectReadonly.d.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { IsWritable } from './IsWritable.d.mjs';
-import { MutableList } from './MutableList.d.mjs';
-
-type RejectReadonly<T extends MutableList<unknown>> = IsWritable<T> extends true ? T : never;
-
-export type { RejectReadonly };
Index: de_modules/es-toolkit/dist/compat/_internal/RejectReadonly.d.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/RejectReadonly.d.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { IsWritable } from './IsWritable.d.js';
-import { MutableList } from './MutableList.d.js';
-
-type RejectReadonly<T extends MutableList<unknown>> = IsWritable<T> extends true ? T : never;
-
-export type { RejectReadonly };
Index: de_modules/es-toolkit/dist/compat/_internal/StringIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/StringIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type StringIterator<R> = (char: string, index: number, string: string) => R;
-
-export type { StringIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/StringIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/StringIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type StringIterator<R> = (char: string, index: number, string: string) => R;
-
-export type { StringIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/TupleIterator.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/TupleIterator.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type TupleIterator<T extends readonly unknown[], TResult> = (value: T[number], index: T extends `${infer N extends number}` ? N : never, collection: T) => TResult;
-
-export type { TupleIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/TupleIterator.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/TupleIterator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type TupleIterator<T extends readonly unknown[], TResult> = (value: T[number], index: T extends `${infer N extends number}` ? N : never, collection: T) => TResult;
-
-export type { TupleIterator };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIteratee.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIteratee.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.mjs';
-
-type ValueIteratee<T> = ((value: T) => unknown) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ValueIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIteratee.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PartialShallow } from './PartialShallow.js';
-
-type ValueIteratee<T> = ((value: T) => unknown) | (PropertyKey | [PropertyKey, any] | PartialShallow<T>);
-
-export type { ValueIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIterateeCustom.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIterateeCustom.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.mjs';
-
-type ValueIterateeCustom<T, TResult> = ((value: T) => TResult) | IterateeShorthand<T>;
-
-export type { ValueIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIterateeCustom.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIterateeCustom.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.js';
-
-type ValueIterateeCustom<T, TResult> = ((value: T) => TResult) | IterateeShorthand<T>;
-
-export type { ValueIterateeCustom };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIteratorTypeGuard.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIteratorTypeGuard.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ValueIteratorTypeGuard<T, S extends T> = (value: T) => value is S;
-
-export type { ValueIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueIteratorTypeGuard.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueIteratorTypeGuard.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ValueIteratorTypeGuard<T, S extends T> = (value: T) => value is S;
-
-export type { ValueIteratorTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueKeyIteratee.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueKeyIteratee.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.mjs';
-
-type ValueKeyIteratee<T> = ((value: T, key: string) => unknown) | IterateeShorthand<T>;
-
-export type { ValueKeyIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueKeyIteratee.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueKeyIteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { IterateeShorthand } from './IterateeShorthand.js';
-
-type ValueKeyIteratee<T> = ((value: T, key: string) => unknown) | IterateeShorthand<T>;
-
-export type { ValueKeyIteratee };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueKeyIterateeTypeGuard.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueKeyIterateeTypeGuard.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ValueKeyIterateeTypeGuard<T, S extends T> = (value: T, key: string) => value is S;
-
-export type { ValueKeyIterateeTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/ValueKeyIterateeTypeGuard.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/ValueKeyIterateeTypeGuard.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-type ValueKeyIterateeTypeGuard<T, S extends T> = (value: T, key: string) => value is S;
-
-export type { ValueKeyIterateeTypeGuard };
Index: de_modules/es-toolkit/dist/compat/_internal/assignValue.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/assignValue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-const assignValue = (object, key, value) => {
-    const objValue = object[key];
-    if (!(Object.hasOwn(object, key) && isEqualsSameValueZero.isEqualsSameValueZero(objValue, value)) || (value === undefined && !(key in object))) {
-        object[key] = value;
-    }
-};
-
-exports.assignValue = assignValue;
Index: de_modules/es-toolkit/dist/compat/_internal/assignValue.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-const assignValue = (object, key, value) => {
-    const objValue = object[key];
-    if (!(Object.hasOwn(object, key) && isEqualsSameValueZero(objValue, value)) || (value === undefined && !(key in object))) {
-        object[key] = value;
-    }
-};
-
-export { assignValue };
Index: de_modules/es-toolkit/dist/compat/_internal/compareValues.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/compareValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function getPriority(a) {
-    if (typeof a === 'symbol') {
-        return 1;
-    }
-    if (a === null) {
-        return 2;
-    }
-    if (a === undefined) {
-        return 3;
-    }
-    if (a !== a) {
-        return 4;
-    }
-    return 0;
-}
-const compareValues = (a, b, order) => {
-    if (a !== b) {
-        const aPriority = getPriority(a);
-        const bPriority = getPriority(b);
-        if (aPriority === bPriority && aPriority === 0) {
-            if (a < b) {
-                return order === 'desc' ? 1 : -1;
-            }
-            if (a > b) {
-                return order === 'desc' ? -1 : 1;
-            }
-        }
-        return order === 'desc' ? bPriority - aPriority : aPriority - bPriority;
-    }
-    return 0;
-};
-
-exports.compareValues = compareValues;
Index: de_modules/es-toolkit/dist/compat/_internal/compareValues.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/compareValues.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-function getPriority(a) {
-    if (typeof a === 'symbol') {
-        return 1;
-    }
-    if (a === null) {
-        return 2;
-    }
-    if (a === undefined) {
-        return 3;
-    }
-    if (a !== a) {
-        return 4;
-    }
-    return 0;
-}
-const compareValues = (a, b, order) => {
-    if (a !== b) {
-        const aPriority = getPriority(a);
-        const bPriority = getPriority(b);
-        if (aPriority === bPriority && aPriority === 0) {
-            if (a < b) {
-                return order === 'desc' ? 1 : -1;
-            }
-            if (a > b) {
-                return order === 'desc' ? -1 : 1;
-            }
-        }
-        return order === 'desc' ? bPriority - aPriority : aPriority - bPriority;
-    }
-    return 0;
-};
-
-export { compareValues };
Index: de_modules/es-toolkit/dist/compat/_internal/copyArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/copyArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-function copyArray(source, array) {
-    const length = source.length;
-    if (array == null) {
-        array = Array(length);
-    }
-    for (let i = 0; i < length; i++) {
-        array[i] = source[i];
-    }
-    return array;
-}
-
-module.exports = copyArray;
Index: de_modules/es-toolkit/dist/compat/_internal/copyArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/copyArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function copyArray(source, array) {
-    const length = source.length;
-    if (array == null) {
-        array = Array(length);
-    }
-    for (let i = 0; i < length; i++) {
-        array[i] = source[i];
-    }
-    return array;
-}
-
-export { copyArray as default };
Index: de_modules/es-toolkit/dist/compat/_internal/decimalAdjust.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/decimalAdjust.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function decimalAdjust(type, number, precision = 0) {
-    number = Number(number);
-    if (Object.is(number, -0)) {
-        number = '-0';
-    }
-    precision = Math.min(Number.parseInt(precision, 10), 292);
-    if (precision) {
-        const [magnitude, exponent = 0] = number.toString().split('e');
-        let adjustedValue = Math[type](Number(`${magnitude}e${Number(exponent) + precision}`));
-        if (Object.is(adjustedValue, -0)) {
-            adjustedValue = '-0';
-        }
-        const [newMagnitude, newExponent = 0] = adjustedValue.toString().split('e');
-        return Number(`${newMagnitude}e${Number(newExponent) - precision}`);
-    }
-    return Math[type](Number(number));
-}
-
-exports.decimalAdjust = decimalAdjust;
Index: de_modules/es-toolkit/dist/compat/_internal/decimalAdjust.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/decimalAdjust.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-function decimalAdjust(type, number, precision = 0) {
-    number = Number(number);
-    if (Object.is(number, -0)) {
-        number = '-0';
-    }
-    precision = Math.min(Number.parseInt(precision, 10), 292);
-    if (precision) {
-        const [magnitude, exponent = 0] = number.toString().split('e');
-        let adjustedValue = Math[type](Number(`${magnitude}e${Number(exponent) + precision}`));
-        if (Object.is(adjustedValue, -0)) {
-            adjustedValue = '-0';
-        }
-        const [newMagnitude, newExponent = 0] = adjustedValue.toString().split('e');
-        return Number(`${newMagnitude}e${Number(newExponent) - precision}`);
-    }
-    return Math[type](Number(number));
-}
-
-export { decimalAdjust };
Index: de_modules/es-toolkit/dist/compat/_internal/flattenArrayLike.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/flattenArrayLike.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function flattenArrayLike(values) {
-    const result = [];
-    for (let i = 0; i < values.length; i++) {
-        const arrayLike = values[i];
-        if (!isArrayLikeObject.isArrayLikeObject(arrayLike)) {
-            continue;
-        }
-        for (let j = 0; j < arrayLike.length; j++) {
-            result.push(arrayLike[j]);
-        }
-    }
-    return result;
-}
-
-exports.flattenArrayLike = flattenArrayLike;
Index: de_modules/es-toolkit/dist/compat/_internal/flattenArrayLike.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/flattenArrayLike.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function flattenArrayLike(values) {
-    const result = [];
-    for (let i = 0; i < values.length; i++) {
-        const arrayLike = values[i];
-        if (!isArrayLikeObject(arrayLike)) {
-            continue;
-        }
-        for (let j = 0; j < arrayLike.length; j++) {
-            result.push(arrayLike[j]);
-        }
-    }
-    return result;
-}
-
-export { flattenArrayLike };
Index: de_modules/es-toolkit/dist/compat/_internal/getSymbols.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getSymbols.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function getSymbols(object) {
-    return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));
-}
-
-exports.getSymbols = getSymbols;
Index: de_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function getSymbols(object) {
-    return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));
-}
-
-export { getSymbols };
Index: de_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const getSymbols = require('./getSymbols.js');
-
-function getSymbolsIn(object) {
-    const result = [];
-    while (object) {
-        result.push(...getSymbols.getSymbols(object));
-        object = Object.getPrototypeOf(object);
-    }
-    return result;
-}
-
-exports.getSymbolsIn = getSymbolsIn;
Index: de_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { getSymbols } from './getSymbols.mjs';
-
-function getSymbolsIn(object) {
-    const result = [];
-    while (object) {
-        result.push(...getSymbols(object));
-        object = Object.getPrototypeOf(object);
-    }
-    return result;
-}
-
-export { getSymbolsIn };
Index: de_modules/es-toolkit/dist/compat/_internal/getTag.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getTag.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function getTag(value) {
-    if (value == null) {
-        return value === undefined ? '[object Undefined]' : '[object Null]';
-    }
-    return Object.prototype.toString.call(value);
-}
-
-exports.getTag = getTag;
Index: de_modules/es-toolkit/dist/compat/_internal/getTag.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/getTag.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function getTag(value) {
-    if (value == null) {
-        return value === undefined ? '[object Undefined]' : '[object Null]';
-    }
-    return Object.prototype.toString.call(value);
-}
-
-export { getTag };
Index: de_modules/es-toolkit/dist/compat/_internal/isDeepKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isDeepKey(key) {
-    switch (typeof key) {
-        case 'number':
-        case 'symbol': {
-            return false;
-        }
-        case 'string': {
-            return key.includes('.') || key.includes('[') || key.includes(']');
-        }
-    }
-}
-
-exports.isDeepKey = isDeepKey;
Index: de_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function isDeepKey(key) {
-    switch (typeof key) {
-        case 'number':
-        case 'symbol': {
-            return false;
-        }
-        case 'string': {
-            return key.includes('.') || key.includes('[') || key.includes(']');
-        }
-    }
-}
-
-export { isDeepKey };
Index: de_modules/es-toolkit/dist/compat/_internal/isIndex.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\d*)$/;
-function isIndex(value, length = Number.MAX_SAFE_INTEGER) {
-    switch (typeof value) {
-        case 'number': {
-            return Number.isInteger(value) && value >= 0 && value < length;
-        }
-        case 'symbol': {
-            return false;
-        }
-        case 'string': {
-            return IS_UNSIGNED_INTEGER.test(value);
-        }
-    }
-}
-
-exports.isIndex = isIndex;
Index: de_modules/es-toolkit/dist/compat/_internal/isIndex.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\d*)$/;
-function isIndex(value, length = Number.MAX_SAFE_INTEGER) {
-    switch (typeof value) {
-        case 'number': {
-            return Number.isInteger(value) && value >= 0 && value < length;
-        }
-        case 'symbol': {
-            return false;
-        }
-        case 'string': {
-            return IS_UNSIGNED_INTEGER.test(value);
-        }
-    }
-}
-
-export { isIndex };
Index: de_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isIndex = require('./isIndex.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isObject = require('../predicate/isObject.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function isIterateeCall(value, index, object) {
-    if (!isObject.isObject(object)) {
-        return false;
-    }
-    if ((typeof index === 'number' && isArrayLike.isArrayLike(object) && isIndex.isIndex(index) && index < object.length) ||
-        (typeof index === 'string' && index in object)) {
-        return isEqualsSameValueZero.isEqualsSameValueZero(object[index], value);
-    }
-    return false;
-}
-
-exports.isIterateeCall = isIterateeCall;
Index: de_modules/es-toolkit/dist/compat/_internal/isIterateeCall.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { isIndex } from './isIndex.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function isIterateeCall(value, index, object) {
-    if (!isObject(object)) {
-        return false;
-    }
-    if ((typeof index === 'number' && isArrayLike(object) && isIndex(index) && index < object.length) ||
-        (typeof index === 'string' && index in object)) {
-        return isEqualsSameValueZero(object[index], value);
-    }
-    return false;
-}
-
-export { isIterateeCall };
Index: de_modules/es-toolkit/dist/compat/_internal/isKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isSymbol = require('../predicate/isSymbol.js');
-
-const regexIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
-const regexIsPlainProp = /^\w*$/;
-function isKey(value, object) {
-    if (Array.isArray(value)) {
-        return false;
-    }
-    if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol.isSymbol(value)) {
-        return true;
-    }
-    return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||
-        (object != null && Object.hasOwn(object, value)));
-}
-
-exports.isKey = isKey;
Index: de_modules/es-toolkit/dist/compat/_internal/isKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { isSymbol } from '../predicate/isSymbol.mjs';
-
-const regexIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
-const regexIsPlainProp = /^\w*$/;
-function isKey(value, object) {
-    if (Array.isArray(value)) {
-        return false;
-    }
-    if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol(value)) {
-        return true;
-    }
-    return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||
-        (object != null && Object.hasOwn(object, value)));
-}
-
-export { isKey };
Index: de_modules/es-toolkit/dist/compat/_internal/isPrototype.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isPrototype.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isPrototype(value) {
-    const constructor = value?.constructor;
-    const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;
-    return value === prototype;
-}
-
-exports.isPrototype = isPrototype;
Index: de_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function isPrototype(value) {
-    const constructor = value?.constructor;
-    const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;
-    return value === prototype;
-}
-
-export { isPrototype };
Index: de_modules/es-toolkit/dist/compat/_internal/mapToEntries.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/mapToEntries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function mapToEntries(map) {
-    const arr = new Array(map.size);
-    const keys = map.keys();
-    const values = map.values();
-    for (let i = 0; i < arr.length; i++) {
-        arr[i] = [keys.next().value, values.next().value];
-    }
-    return arr;
-}
-
-exports.mapToEntries = mapToEntries;
Index: de_modules/es-toolkit/dist/compat/_internal/mapToEntries.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/mapToEntries.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function mapToEntries(map) {
-    const arr = new Array(map.size);
-    const keys = map.keys();
-    const values = map.values();
-    for (let i = 0; i < arr.length; i++) {
-        arr[i] = [keys.next().value, values.next().value];
-    }
-    return arr;
-}
-
-export { mapToEntries };
Index: de_modules/es-toolkit/dist/compat/_internal/normalizeForCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/normalizeForCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function normalizeForCase(str) {
-    if (typeof str !== 'string') {
-        str = toString.toString(str);
-    }
-    return str.replace(/['\u2019]/g, '');
-}
-
-exports.normalizeForCase = normalizeForCase;
Index: de_modules/es-toolkit/dist/compat/_internal/normalizeForCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/normalizeForCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function normalizeForCase(str) {
-    if (typeof str !== 'string') {
-        str = toString(str);
-    }
-    return str.replace(/['\u2019]/g, '');
-}
-
-export { normalizeForCase };
Index: de_modules/es-toolkit/dist/compat/_internal/setToEntries.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/setToEntries.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function setToEntries(set) {
-    const arr = new Array(set.size);
-    const values = set.values();
-    for (let i = 0; i < arr.length; i++) {
-        const value = values.next().value;
-        arr[i] = [value, value];
-    }
-    return arr;
-}
-
-exports.setToEntries = setToEntries;
Index: de_modules/es-toolkit/dist/compat/_internal/setToEntries.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/setToEntries.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function setToEntries(set) {
-    const arr = new Array(set.size);
-    const values = set.values();
-    for (let i = 0; i < arr.length; i++) {
-        const value = values.next().value;
-        arr[i] = [value, value];
-    }
-    return arr;
-}
-
-export { setToEntries };
Index: de_modules/es-toolkit/dist/compat/_internal/tags.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/tags.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const regexpTag = '[object RegExp]';
-const stringTag = '[object String]';
-const numberTag = '[object Number]';
-const booleanTag = '[object Boolean]';
-const argumentsTag = '[object Arguments]';
-const symbolTag = '[object Symbol]';
-const dateTag = '[object Date]';
-const mapTag = '[object Map]';
-const setTag = '[object Set]';
-const arrayTag = '[object Array]';
-const functionTag = '[object Function]';
-const arrayBufferTag = '[object ArrayBuffer]';
-const objectTag = '[object Object]';
-const errorTag = '[object Error]';
-const dataViewTag = '[object DataView]';
-const uint8ArrayTag = '[object Uint8Array]';
-const uint8ClampedArrayTag = '[object Uint8ClampedArray]';
-const uint16ArrayTag = '[object Uint16Array]';
-const uint32ArrayTag = '[object Uint32Array]';
-const bigUint64ArrayTag = '[object BigUint64Array]';
-const int8ArrayTag = '[object Int8Array]';
-const int16ArrayTag = '[object Int16Array]';
-const int32ArrayTag = '[object Int32Array]';
-const bigInt64ArrayTag = '[object BigInt64Array]';
-const float32ArrayTag = '[object Float32Array]';
-const float64ArrayTag = '[object Float64Array]';
-
-exports.argumentsTag = argumentsTag;
-exports.arrayBufferTag = arrayBufferTag;
-exports.arrayTag = arrayTag;
-exports.bigInt64ArrayTag = bigInt64ArrayTag;
-exports.bigUint64ArrayTag = bigUint64ArrayTag;
-exports.booleanTag = booleanTag;
-exports.dataViewTag = dataViewTag;
-exports.dateTag = dateTag;
-exports.errorTag = errorTag;
-exports.float32ArrayTag = float32ArrayTag;
-exports.float64ArrayTag = float64ArrayTag;
-exports.functionTag = functionTag;
-exports.int16ArrayTag = int16ArrayTag;
-exports.int32ArrayTag = int32ArrayTag;
-exports.int8ArrayTag = int8ArrayTag;
-exports.mapTag = mapTag;
-exports.numberTag = numberTag;
-exports.objectTag = objectTag;
-exports.regexpTag = regexpTag;
-exports.setTag = setTag;
-exports.stringTag = stringTag;
-exports.symbolTag = symbolTag;
-exports.uint16ArrayTag = uint16ArrayTag;
-exports.uint32ArrayTag = uint32ArrayTag;
-exports.uint8ArrayTag = uint8ArrayTag;
-exports.uint8ClampedArrayTag = uint8ClampedArrayTag;
Index: de_modules/es-toolkit/dist/compat/_internal/tags.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/tags.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-const regexpTag = '[object RegExp]';
-const stringTag = '[object String]';
-const numberTag = '[object Number]';
-const booleanTag = '[object Boolean]';
-const argumentsTag = '[object Arguments]';
-const symbolTag = '[object Symbol]';
-const dateTag = '[object Date]';
-const mapTag = '[object Map]';
-const setTag = '[object Set]';
-const arrayTag = '[object Array]';
-const functionTag = '[object Function]';
-const arrayBufferTag = '[object ArrayBuffer]';
-const objectTag = '[object Object]';
-const errorTag = '[object Error]';
-const dataViewTag = '[object DataView]';
-const uint8ArrayTag = '[object Uint8Array]';
-const uint8ClampedArrayTag = '[object Uint8ClampedArray]';
-const uint16ArrayTag = '[object Uint16Array]';
-const uint32ArrayTag = '[object Uint32Array]';
-const bigUint64ArrayTag = '[object BigUint64Array]';
-const int8ArrayTag = '[object Int8Array]';
-const int16ArrayTag = '[object Int16Array]';
-const int32ArrayTag = '[object Int32Array]';
-const bigInt64ArrayTag = '[object BigInt64Array]';
-const float32ArrayTag = '[object Float32Array]';
-const float64ArrayTag = '[object Float64Array]';
-
-export { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };
Index: de_modules/es-toolkit/dist/compat/_internal/toArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/toArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function toArray(value) {
-    return Array.isArray(value) ? value : Array.from(value);
-}
-
-exports.toArray = toArray;
Index: de_modules/es-toolkit/dist/compat/_internal/toArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/toArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function toArray(value) {
-    return Array.isArray(value) ? value : Array.from(value);
-}
-
-export { toArray };
Index: de_modules/es-toolkit/dist/compat/_internal/toKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/toKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function toKey(value) {
-    if (typeof value === 'string' || typeof value === 'symbol') {
-        return value;
-    }
-    if (Object.is(value?.valueOf?.(), -0)) {
-        return '-0';
-    }
-    return String(value);
-}
-
-exports.toKey = toKey;
Index: de_modules/es-toolkit/dist/compat/_internal/toKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/_internal/toKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function toKey(value) {
-    if (typeof value === 'string' || typeof value === 'symbol') {
-        return value;
-    }
-    if (Object.is(value?.valueOf?.(), -0)) {
-        return '-0';
-    }
-    return String(value);
-}
-
-export { toKey };
Index: de_modules/es-toolkit/dist/compat/array/castArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/castArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Casts value as an array if it's not one.
- *
- * @template T The type of elements in the array.
- * @param {T | T[]} value The value to be cast to an array.
- * @returns {T[]} An array containing the input value if it wasn't an array, or the original array if it was.
- *
- * @example
- * const arr1 = castArray(1);
- * // Returns: [1]
- *
- * const arr2 = castArray([1]);
- * // Returns: [1]
- *
- * const arr3 = castArray({'a': 1});
- * // Returns: [{'a': 1}]
- *
- * const arr4 = castArray(null);
- * // Returns: [null]
- *
- * const arr5 = castArray(undefined);
- * // Returns: [undefined]
- *
- * const arr6 = castArray();
- * // Returns: []
- */
-declare function castArray<T>(value?: T | readonly T[]): T[];
-
-export { castArray };
Index: de_modules/es-toolkit/dist/compat/array/castArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/castArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Casts value as an array if it's not one.
- *
- * @template T The type of elements in the array.
- * @param {T | T[]} value The value to be cast to an array.
- * @returns {T[]} An array containing the input value if it wasn't an array, or the original array if it was.
- *
- * @example
- * const arr1 = castArray(1);
- * // Returns: [1]
- *
- * const arr2 = castArray([1]);
- * // Returns: [1]
- *
- * const arr3 = castArray({'a': 1});
- * // Returns: [{'a': 1}]
- *
- * const arr4 = castArray(null);
- * // Returns: [null]
- *
- * const arr5 = castArray(undefined);
- * // Returns: [undefined]
- *
- * const arr6 = castArray();
- * // Returns: []
- */
-declare function castArray<T>(value?: T | readonly T[]): T[];
-
-export { castArray };
Index: de_modules/es-toolkit/dist/compat/array/castArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/castArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function castArray(value) {
-    if (arguments.length === 0) {
-        return [];
-    }
-    return Array.isArray(value) ? value : [value];
-}
-
-exports.castArray = castArray;
Index: de_modules/es-toolkit/dist/compat/array/castArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/castArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function castArray(value) {
-    if (arguments.length === 0) {
-        return [];
-    }
-    return Array.isArray(value) ? value : [value];
-}
-
-export { castArray };
Index: de_modules/es-toolkit/dist/compat/array/chunk.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/chunk.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Splits an array into smaller arrays of a specified length.
- *
- * This function takes an input array and divides it into multiple smaller arrays,
- * each of a specified length. If the input array cannot be evenly divided,
- * the final sub-array will contain the remaining elements.
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array to be chunked into smaller arrays.
- * @param {number} size - The size of each smaller array. Must be a positive integer.
- * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
- *
- * @example
- * // Splits an array of numbers into sub-arrays of length 2
- * chunk([1, 2, 3, 4, 5], 2);
- * // Returns: [[1, 2], [3, 4], [5]]
- *
- * @example
- * // Splits an array of strings into sub-arrays of length 3
- * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
- * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
- */
-declare function chunk<T>(arr: ArrayLike<T> | null | undefined, size?: number): T[][];
-
-export { chunk };
Index: de_modules/es-toolkit/dist/compat/array/chunk.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/chunk.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Splits an array into smaller arrays of a specified length.
- *
- * This function takes an input array and divides it into multiple smaller arrays,
- * each of a specified length. If the input array cannot be evenly divided,
- * the final sub-array will contain the remaining elements.
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array to be chunked into smaller arrays.
- * @param {number} size - The size of each smaller array. Must be a positive integer.
- * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
- *
- * @example
- * // Splits an array of numbers into sub-arrays of length 2
- * chunk([1, 2, 3, 4, 5], 2);
- * // Returns: [[1, 2], [3, 4], [5]]
- *
- * @example
- * // Splits an array of strings into sub-arrays of length 3
- * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
- * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
- */
-declare function chunk<T>(arr: ArrayLike<T> | null | undefined, size?: number): T[][];
-
-export { chunk };
Index: de_modules/es-toolkit/dist/compat/array/chunk.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/chunk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const chunk$1 = require('../../array/chunk.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function chunk(arr, size = 1) {
-    size = Math.max(Math.floor(size), 0);
-    if (size === 0 || !isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return chunk$1.chunk(toArray.toArray(arr), size);
-}
-
-exports.chunk = chunk;
Index: de_modules/es-toolkit/dist/compat/array/chunk.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/chunk.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { chunk as chunk$1 } from '../../array/chunk.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function chunk(arr, size = 1) {
-    size = Math.max(Math.floor(size), 0);
-    if (size === 0 || !isArrayLike(arr)) {
-        return [];
-    }
-    return chunk$1(toArray(arr), size);
-}
-
-export { chunk };
Index: de_modules/es-toolkit/dist/compat/array/compact.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/compact.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-type Falsey = false | null | 0 | 0n | '' | undefined;
-/**
- * Removes falsey values (false, null, 0, 0n, '', undefined, NaN) from an array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T | Falsey> | null | undefined} arr - The input array to remove falsey values.
- * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
- *
- * @example
- * compact([0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
- * Returns: [1, 2, 3, 4, 5]
- */
-declare function compact<T>(arr: ArrayLike<T | Falsey> | null | undefined): T[];
-
-export { compact };
Index: de_modules/es-toolkit/dist/compat/array/compact.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/compact.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-type Falsey = false | null | 0 | 0n | '' | undefined;
-/**
- * Removes falsey values (false, null, 0, 0n, '', undefined, NaN) from an array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T | Falsey> | null | undefined} arr - The input array to remove falsey values.
- * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
- *
- * @example
- * compact([0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
- * Returns: [1, 2, 3, 4, 5]
- */
-declare function compact<T>(arr: ArrayLike<T | Falsey> | null | undefined): T[];
-
-export { compact };
Index: de_modules/es-toolkit/dist/compat/array/compact.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/compact.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const compact$1 = require('../../array/compact.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function compact(arr) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return compact$1.compact(Array.from(arr));
-}
-
-exports.compact = compact;
Index: de_modules/es-toolkit/dist/compat/array/compact.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/compact.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { compact as compact$1 } from '../../array/compact.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function compact(arr) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return compact$1(Array.from(arr));
-}
-
-export { compact };
Index: de_modules/es-toolkit/dist/compat/array/concat.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/concat.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Concatenates multiple arrays and values into a single array.
- *
- * @template T The type of elements in the array.
- * @param {...(T | T[])} values - The values and/or arrays to concatenate.
- * @returns {T[]} A new array containing all the input values.
- *
- * @example
- * // Concatenate individual values
- * concat(1, 2, 3);
- * // returns [1, 2, 3]
- *
- * @example
- * // Concatenate arrays of values
- * concat([1, 2], [3, 4]);
- * // returns [1, 2, 3, 4]
- *
- * @example
- * // Concatenate a mix of individual values and arrays
- * concat(1, [2, 3], 4);
- * // returns [1, 2, 3, 4]
- *
- * @example
- * // Concatenate nested arrays
- * concat([1, [2, 3]], 4);
- * // returns [1, [2, 3], 4]
- */
-declare function concat<T>(...values: Array<T | readonly T[]>): T[];
-
-export { concat };
Index: de_modules/es-toolkit/dist/compat/array/concat.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/concat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Concatenates multiple arrays and values into a single array.
- *
- * @template T The type of elements in the array.
- * @param {...(T | T[])} values - The values and/or arrays to concatenate.
- * @returns {T[]} A new array containing all the input values.
- *
- * @example
- * // Concatenate individual values
- * concat(1, 2, 3);
- * // returns [1, 2, 3]
- *
- * @example
- * // Concatenate arrays of values
- * concat([1, 2], [3, 4]);
- * // returns [1, 2, 3, 4]
- *
- * @example
- * // Concatenate a mix of individual values and arrays
- * concat(1, [2, 3], 4);
- * // returns [1, 2, 3, 4]
- *
- * @example
- * // Concatenate nested arrays
- * concat([1, [2, 3]], 4);
- * // returns [1, [2, 3], 4]
- */
-declare function concat<T>(...values: Array<T | readonly T[]>): T[];
-
-export { concat };
Index: de_modules/es-toolkit/dist/compat/array/concat.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/concat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('../../array/flatten.js');
-
-function concat(...values) {
-    return flatten.flatten(values);
-}
-
-exports.concat = concat;
Index: de_modules/es-toolkit/dist/compat/array/concat.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/concat.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flatten } from '../../array/flatten.mjs';
-
-function concat(...values) {
-    return flatten(values);
-}
-
-export { concat };
Index: de_modules/es-toolkit/dist/compat/array/countBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/countBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through
- * iteratee. The corresponding value of each key is the number of times the key was returned by iteratee. The
- * iteratee is invoked with one argument: (value).
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @return Returns the composed aggregate object.
- *
- * @example
- * countBy([6.1, 4.2, 6.3], Math.floor); // => { '4': 1, '6': 2 }
- * countBy(['one', 'two', 'three'], 'length'); // => { '3': 2, '5': 1 }
- */
-declare function countBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): Record<string, number>;
-declare function countBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIteratee<T[keyof T]>): Record<string, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/compat/array/countBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/countBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through
- * iteratee. The corresponding value of each key is the number of times the key was returned by iteratee. The
- * iteratee is invoked with one argument: (value).
- *
- * @param collection The collection to iterate over.
- * @param iteratee The function invoked per iteration.
- * @return Returns the composed aggregate object.
- *
- * @example
- * countBy([6.1, 4.2, 6.3], Math.floor); // => { '4': 1, '6': 2 }
- * countBy(['one', 'two', 'three'], 'length'); // => { '3': 2, '5': 1 }
- */
-declare function countBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): Record<string, number>;
-declare function countBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIteratee<T[keyof T]>): Record<string, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/compat/array/countBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/countBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function countBy(collection, iteratee$1) {
-    if (collection == null) {
-        return {};
-    }
-    const array = isArrayLike.isArrayLike(collection) ? Array.from(collection) : Object.values(collection);
-    const mapper = iteratee.iteratee(iteratee$1 ?? undefined);
-    const result = Object.create(null);
-    for (let i = 0; i < array.length; i++) {
-        const item = array[i];
-        const key = mapper(item);
-        result[key] = (result[key] ?? 0) + 1;
-    }
-    return result;
-}
-
-exports.countBy = countBy;
Index: de_modules/es-toolkit/dist/compat/array/countBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/countBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function countBy(collection, iteratee$1) {
-    if (collection == null) {
-        return {};
-    }
-    const array = isArrayLike(collection) ? Array.from(collection) : Object.values(collection);
-    const mapper = iteratee(iteratee$1 ?? undefined);
-    const result = Object.create(null);
-    for (let i = 0; i < array.length; i++) {
-        const item = array[i];
-        const key = mapper(item);
-        result[key] = (result[key] ?? 0) + 1;
-    }
-    return result;
-}
-
-export { countBy };
Index: de_modules/es-toolkit/dist/compat/array/difference.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/difference.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Computes the difference between an array and multiple arrays.
- *
- * @template T
- * @param {ArrayLike<T> | undefined | null} arr - The primary array from which to derive the difference. This is the main array
- * from which elements will be compared and filtered.
- * @param {Array<ArrayLike<T>>} values - Multiple arrays containing elements to be excluded from the primary array.
- * These arrays will be flattened into a single array, and each element in this array will be checked against the primary array.
- * If a match is found, that element will be excluded from the result.
- * @returns {T[]} A new array containing the elements that are present in the primary array but not
- * in the flattened array.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [2, 4];
- * const array3 = [5, 6];
- * const result = difference(array1, array2, array3);
- * // result will be [1, 3] since 2, 4, and 5 are in the other arrays and are excluded from the result.
- *
- * @example
- * const arrayLike1 = { 0: 1, 1: 2, 2: 3, length: 3 };
- * const arrayLike2 = { 0: 2, 1: 4, length: 2 };
- * const result = difference(arrayLike1, arrayLike2);
- * // result will be [1, 3] since 2 is in both array-like objects and is excluded from the result.
- */
-declare function difference<T>(arr: ArrayLike<T> | undefined | null, ...values: Array<ArrayLike<T>>): T[];
-
-export { difference };
Index: de_modules/es-toolkit/dist/compat/array/difference.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/difference.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Computes the difference between an array and multiple arrays.
- *
- * @template T
- * @param {ArrayLike<T> | undefined | null} arr - The primary array from which to derive the difference. This is the main array
- * from which elements will be compared and filtered.
- * @param {Array<ArrayLike<T>>} values - Multiple arrays containing elements to be excluded from the primary array.
- * These arrays will be flattened into a single array, and each element in this array will be checked against the primary array.
- * If a match is found, that element will be excluded from the result.
- * @returns {T[]} A new array containing the elements that are present in the primary array but not
- * in the flattened array.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [2, 4];
- * const array3 = [5, 6];
- * const result = difference(array1, array2, array3);
- * // result will be [1, 3] since 2, 4, and 5 are in the other arrays and are excluded from the result.
- *
- * @example
- * const arrayLike1 = { 0: 1, 1: 2, 2: 3, length: 3 };
- * const arrayLike2 = { 0: 2, 1: 4, length: 2 };
- * const result = difference(arrayLike1, arrayLike2);
- * // result will be [1, 3] since 2 is in both array-like objects and is excluded from the result.
- */
-declare function difference<T>(arr: ArrayLike<T> | undefined | null, ...values: Array<ArrayLike<T>>): T[];
-
-export { difference };
Index: de_modules/es-toolkit/dist/compat/array/difference.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const difference$1 = require('../../array/difference.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function difference(arr, ...values) {
-    if (!isArrayLikeObject.isArrayLikeObject(arr)) {
-        return [];
-    }
-    const arr1 = toArray.toArray(arr);
-    const arr2 = [];
-    for (let i = 0; i < values.length; i++) {
-        const value = values[i];
-        if (isArrayLikeObject.isArrayLikeObject(value)) {
-            arr2.push(...Array.from(value));
-        }
-    }
-    return difference$1.difference(arr1, arr2);
-}
-
-exports.difference = difference;
Index: de_modules/es-toolkit/dist/compat/array/difference.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/difference.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { difference as difference$1 } from '../../array/difference.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function difference(arr, ...values) {
-    if (!isArrayLikeObject(arr)) {
-        return [];
-    }
-    const arr1 = toArray(arr);
-    const arr2 = [];
-    for (let i = 0; i < values.length; i++) {
-        const value = values[i];
-        if (isArrayLikeObject(value)) {
-            arr2.push(...Array.from(value));
-        }
-    }
-    return difference$1(arr1, arr2);
-}
-
-export { difference };
Index: de_modules/es-toolkit/dist/compat/array/differenceBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,108 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values The values to exclude
- * @param {ValueIteratee<T1 | T2>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor)
- * // => [1.2]
- */
-declare function differenceBy<T1, T2>(array: ArrayLike<T1> | null | undefined, values: ArrayLike<T2>, iteratee: ValueIteratee<T1 | T2>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2], [2.3], [1.4], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, iteratee: ValueIteratee<T1 | T2 | T3>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5], [2.3], [1.4], [3.2], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, iteratee: ValueIteratee<T1 | T2 | T3 | T4>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4 | T5>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8], [2.3], [1.4], [3.2], [4.1], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5, T6
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ArrayLike<T6>} values5 The fifth array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8, 5.3], [2.3], [1.4], [3.2], [4.1], [5.8], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5, T6>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, values5: ArrayLike<T6>, iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5, T6, T7
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ArrayLike<T6>} values5 The fifth array of values to exclude
- * @param {...(ArrayLike<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>)[]} values Additional arrays of values to exclude and iteratee
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8, 5.3, 6.7], [2.3], [1.4], [3.2], [4.1], [5.8], [6.2], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5, T6, T7>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, values5: ArrayLike<T6>, ...values: Array<ArrayLike<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array The array to inspect
- * @param {...Array<ArrayLike<T>>} values The arrays of values to exclude
- * @returns {T[]} Returns the new array of filtered values
- * @example
- * differenceBy([2, 1], [2, 3])
- * // => [1]
- */
-declare function differenceBy<T>(array: ArrayLike<T> | null | undefined, ...values: Array<ArrayLike<T>>): T[];
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/compat/array/differenceBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,108 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values The values to exclude
- * @param {ValueIteratee<T1 | T2>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor)
- * // => [1.2]
- */
-declare function differenceBy<T1, T2>(array: ArrayLike<T1> | null | undefined, values: ArrayLike<T2>, iteratee: ValueIteratee<T1 | T2>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2], [2.3], [1.4], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, iteratee: ValueIteratee<T1 | T2 | T3>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5], [2.3], [1.4], [3.2], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, iteratee: ValueIteratee<T1 | T2 | T3 | T4>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4 | T5>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8], [2.3], [1.4], [3.2], [4.1], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5, T6
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ArrayLike<T6>} values5 The fifth array of values to exclude
- * @param {ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>} iteratee The iteratee invoked per element
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8, 5.3], [2.3], [1.4], [3.2], [4.1], [5.8], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5, T6>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, values5: ArrayLike<T6>, iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays using an iteratee function.
- *
- * @template T1, T2, T3, T4, T5, T6, T7
- * @param {ArrayLike<T1> | null | undefined} array The array to inspect
- * @param {ArrayLike<T2>} values1 The first array of values to exclude
- * @param {ArrayLike<T3>} values2 The second array of values to exclude
- * @param {ArrayLike<T4>} values3 The third array of values to exclude
- * @param {ArrayLike<T5>} values4 The fourth array of values to exclude
- * @param {ArrayLike<T6>} values5 The fifth array of values to exclude
- * @param {...(ArrayLike<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>)[]} values Additional arrays of values to exclude and iteratee
- * @returns {T1[]} Returns the new array of filtered values
- * @example
- * differenceBy([2.1, 1.2, 3.5, 4.8, 5.3, 6.7], [2.3], [1.4], [3.2], [4.1], [5.8], [6.2], Math.floor)
- * // => []
- */
-declare function differenceBy<T1, T2, T3, T4, T5, T6, T7>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, values3: ArrayLike<T4>, values4: ArrayLike<T5>, values5: ArrayLike<T6>, ...values: Array<ArrayLike<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>>): T1[];
-/**
- * Creates an array of array values not included in the other given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array The array to inspect
- * @param {...Array<ArrayLike<T>>} values The arrays of values to exclude
- * @returns {T[]} Returns the new array of filtered values
- * @example
- * differenceBy([2, 1], [2, 3])
- * // => [1]
- */
-declare function differenceBy<T>(array: ArrayLike<T> | null | undefined, ...values: Array<ArrayLike<T>>): T[];
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/compat/array/differenceBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last = require('./last.js');
-const difference = require('../../array/difference.js');
-const differenceBy$1 = require('../../array/differenceBy.js');
-const flattenArrayLike = require('../_internal/flattenArrayLike.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function differenceBy(arr, ..._values) {
-    if (!isArrayLikeObject.isArrayLikeObject(arr)) {
-        return [];
-    }
-    const iteratee$1 = last.last(_values);
-    const values = flattenArrayLike.flattenArrayLike(_values);
-    if (isArrayLikeObject.isArrayLikeObject(iteratee$1)) {
-        return difference.difference(Array.from(arr), values);
-    }
-    return differenceBy$1.differenceBy(Array.from(arr), values, iteratee.iteratee(iteratee$1));
-}
-
-exports.differenceBy = differenceBy;
Index: de_modules/es-toolkit/dist/compat/array/differenceBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { last } from './last.mjs';
-import { difference } from '../../array/difference.mjs';
-import { differenceBy as differenceBy$1 } from '../../array/differenceBy.mjs';
-import { flattenArrayLike } from '../_internal/flattenArrayLike.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function differenceBy(arr, ..._values) {
-    if (!isArrayLikeObject(arr)) {
-        return [];
-    }
-    const iteratee$1 = last(_values);
-    const values = flattenArrayLike(_values);
-    if (isArrayLikeObject(iteratee$1)) {
-        return difference(Array.from(arr), values);
-    }
-    return differenceBy$1(Array.from(arr), values, iteratee(iteratee$1));
-}
-
-export { differenceBy };
Index: de_modules/es-toolkit/dist/compat/array/differenceWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-/**
- * Computes the difference between the primary array and another array using a comparator function.
- *
- * @template T1, T2
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values - The array containing elements to compare with the primary array.
- * @param {(a: T1, b: T2) => boolean} comparator - A function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements in `values` based on the comparator.
- *
- * @example
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const values = [{ id: 2 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values, comparator);
- * // result will be [{ id: 1 }, { id: 3 }]
- */
-declare function differenceWith<T1, T2>(array: ArrayLike<T1> | null | undefined, values: ArrayLike<T2>, comparator: (a: T1, b: T2) => boolean): T1[];
-/**
- * Computes the difference between the primary array and two arrays using a comparator function.
- *
- * @template T1, T2, T3
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values1 - The first array containing elements to compare with the primary array.
- * @param {ArrayLike<T3>} values2 - The second array containing elements to compare with the primary array.
- * @param {(a: T1, b: T2 | T3) => boolean} comparator - A function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements in `values1` or `values2` based on the comparator.
- *
- * @example
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const values1 = [{ id: 2 }];
- * const values2 = [{ id: 3 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values1, values2, comparator);
- * // result will be [{ id: 1 }]
- */
-declare function differenceWith<T1, T2, T3>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, comparator: (a: T1, b: T2 | T3) => boolean): T1[];
-/**
- * Computes the difference between the primary array and multiple arrays using a comparator function.
- *
- * @template T1, T2, T3, T4
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values1 - The first array containing elements to compare with the primary array.
- * @param {ArrayLike<T3>} values2 - The second array containing elements to compare with the primary array.
- * @param {...Array<ArrayLike<T4> | ((a: T1, b: T2 | T3 | T4) => boolean)>} values - Additional arrays and an optional comparator function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements
- * in `values1`, `values2`, or subsequent arrays. If a comparator function is provided, it will be used to compare elements;
- * otherwise, [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero) algorithm will be used.
- *
- * @example
- * // Example with comparator function
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }];
- * const values1 = [{ id: 2 }];
- * const values2 = [{ id: 3 }];
- * const values3 = [{ id: 4 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values1, values2, values3, comparator);
- * // result will be [{ id: 1 }]
- *
- * @example
- * // Example without comparator function (behaves like `difference`)
- * const array = [1, 2, 3, 4];
- * const values1 = [2];
- * const values2 = [3];
- * const values3 = [4];
- *
- * const result = differenceWith(array, values1, values2, values3);
- * // result will be [1]
- */
-declare function differenceWith<T1, T2, T3, T4>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, ...values: Array<ArrayLike<T4> | ((a: T1, b: T2 | T3 | T4) => boolean)>): T1[];
-/**
- * Computes the difference between the primary array and one or more arrays without using a comparator function.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The primary array to compare elements against.
- * @param {...Array<ArrayLike<T>>} values - One or more arrays containing elements to compare with the primary array.
- * @returns {T[]} A new array containing the elements from the primary array that do not match any elements in the provided arrays.
- *
- * @example
- * const array = [1, 2, 3];
- * const values1 = [2];
- * const values2 = [3];
- *
- * const result = differenceWith(array, values1, values2);
- * // result will be [1]
- */
-declare function differenceWith<T>(array: ArrayLike<T> | null | undefined, ...values: Array<ArrayLike<T>>): T[];
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/compat/array/differenceWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-/**
- * Computes the difference between the primary array and another array using a comparator function.
- *
- * @template T1, T2
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values - The array containing elements to compare with the primary array.
- * @param {(a: T1, b: T2) => boolean} comparator - A function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements in `values` based on the comparator.
- *
- * @example
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const values = [{ id: 2 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values, comparator);
- * // result will be [{ id: 1 }, { id: 3 }]
- */
-declare function differenceWith<T1, T2>(array: ArrayLike<T1> | null | undefined, values: ArrayLike<T2>, comparator: (a: T1, b: T2) => boolean): T1[];
-/**
- * Computes the difference between the primary array and two arrays using a comparator function.
- *
- * @template T1, T2, T3
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values1 - The first array containing elements to compare with the primary array.
- * @param {ArrayLike<T3>} values2 - The second array containing elements to compare with the primary array.
- * @param {(a: T1, b: T2 | T3) => boolean} comparator - A function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements in `values1` or `values2` based on the comparator.
- *
- * @example
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }];
- * const values1 = [{ id: 2 }];
- * const values2 = [{ id: 3 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values1, values2, comparator);
- * // result will be [{ id: 1 }]
- */
-declare function differenceWith<T1, T2, T3>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, comparator: (a: T1, b: T2 | T3) => boolean): T1[];
-/**
- * Computes the difference between the primary array and multiple arrays using a comparator function.
- *
- * @template T1, T2, T3, T4
- * @param {ArrayLike<T1> | null | undefined} array - The primary array to compare elements against.
- * @param {ArrayLike<T2>} values1 - The first array containing elements to compare with the primary array.
- * @param {ArrayLike<T3>} values2 - The second array containing elements to compare with the primary array.
- * @param {...Array<ArrayLike<T4> | ((a: T1, b: T2 | T3 | T4) => boolean)>} values - Additional arrays and an optional comparator function to determine if two elements are considered equal.
- * @returns {T1[]} A new array containing the elements from the primary array that do not match any elements
- * in `values1`, `values2`, or subsequent arrays. If a comparator function is provided, it will be used to compare elements;
- * otherwise, [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero) algorithm will be used.
- *
- * @example
- * // Example with comparator function
- * const array = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }];
- * const values1 = [{ id: 2 }];
- * const values2 = [{ id: 3 }];
- * const values3 = [{ id: 4 }];
- * const comparator = (a, b) => a.id === b.id;
- *
- * const result = differenceWith(array, values1, values2, values3, comparator);
- * // result will be [{ id: 1 }]
- *
- * @example
- * // Example without comparator function (behaves like `difference`)
- * const array = [1, 2, 3, 4];
- * const values1 = [2];
- * const values2 = [3];
- * const values3 = [4];
- *
- * const result = differenceWith(array, values1, values2, values3);
- * // result will be [1]
- */
-declare function differenceWith<T1, T2, T3, T4>(array: ArrayLike<T1> | null | undefined, values1: ArrayLike<T2>, values2: ArrayLike<T3>, ...values: Array<ArrayLike<T4> | ((a: T1, b: T2 | T3 | T4) => boolean)>): T1[];
-/**
- * Computes the difference between the primary array and one or more arrays without using a comparator function.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The primary array to compare elements against.
- * @param {...Array<ArrayLike<T>>} values - One or more arrays containing elements to compare with the primary array.
- * @returns {T[]} A new array containing the elements from the primary array that do not match any elements in the provided arrays.
- *
- * @example
- * const array = [1, 2, 3];
- * const values1 = [2];
- * const values2 = [3];
- *
- * const result = differenceWith(array, values1, values2);
- * // result will be [1]
- */
-declare function differenceWith<T>(array: ArrayLike<T> | null | undefined, ...values: Array<ArrayLike<T>>): T[];
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/compat/array/differenceWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last = require('./last.js');
-const difference = require('../../array/difference.js');
-const differenceWith$1 = require('../../array/differenceWith.js');
-const flattenArrayLike = require('../_internal/flattenArrayLike.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function differenceWith(array, ...values) {
-    if (!isArrayLikeObject.isArrayLikeObject(array)) {
-        return [];
-    }
-    const comparator = last.last(values);
-    const flattenedValues = flattenArrayLike.flattenArrayLike(values);
-    if (typeof comparator === 'function') {
-        return differenceWith$1.differenceWith(Array.from(array), flattenedValues, comparator);
-    }
-    return difference.difference(Array.from(array), flattenedValues);
-}
-
-exports.differenceWith = differenceWith;
Index: de_modules/es-toolkit/dist/compat/array/differenceWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/differenceWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { last } from './last.mjs';
-import { difference } from '../../array/difference.mjs';
-import { differenceWith as differenceWith$1 } from '../../array/differenceWith.mjs';
-import { flattenArrayLike } from '../_internal/flattenArrayLike.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function differenceWith(array, ...values) {
-    if (!isArrayLikeObject(array)) {
-        return [];
-    }
-    const comparator = last(values);
-    const flattenedValues = flattenArrayLike(values);
-    if (typeof comparator === 'function') {
-        return differenceWith$1(Array.from(array), flattenedValues, comparator);
-    }
-    return difference(Array.from(array), flattenedValues);
-}
-
-export { differenceWith };
Index: de_modules/es-toolkit/dist/compat/array/drop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/drop.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes a specified number of elements from the beginning of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the start.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} collection - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
- * @param {unknown} [guard] - Enables use as an iteratee for methods like `_.map`.
- * @returns {T[]} A new array with the specified number of elements removed from the start.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = drop(array, 2);
- * result will be [3, 4, 5] since the first two elements are dropped.
- */
-declare function drop<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { drop };
Index: de_modules/es-toolkit/dist/compat/array/drop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/drop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes a specified number of elements from the beginning of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the start.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} collection - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
- * @param {unknown} [guard] - Enables use as an iteratee for methods like `_.map`.
- * @returns {T[]} A new array with the specified number of elements removed from the start.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = drop(array, 2);
- * result will be [3, 4, 5] since the first two elements are dropped.
- */
-declare function drop<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { drop };
Index: de_modules/es-toolkit/dist/compat/array/drop.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/drop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const drop$1 = require('../../array/drop.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const toInteger = require('../util/toInteger.js');
-
-function drop(collection, itemsCount = 1, guard) {
-    if (!isArrayLike.isArrayLike(collection)) {
-        return [];
-    }
-    itemsCount = guard ? 1 : toInteger.toInteger(itemsCount);
-    return drop$1.drop(toArray.toArray(collection), itemsCount);
-}
-
-exports.drop = drop;
Index: de_modules/es-toolkit/dist/compat/array/drop.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/drop.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { drop as drop$1 } from '../../array/drop.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function drop(collection, itemsCount = 1, guard) {
-    if (!isArrayLike(collection)) {
-        return [];
-    }
-    itemsCount = guard ? 1 : toInteger(itemsCount);
-    return drop$1(toArray(collection), itemsCount);
-}
-
-export { drop };
Index: de_modules/es-toolkit/dist/compat/array/dropRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes a specified number of elements from the end of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the end.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} collection - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the end of the array.
- * @param {unknown} [guard] - Enables use as an iteratee for methods like `_.map`.
- * @returns {T[]} A new array with the specified number of elements removed from the end.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRight(array, 2);
- * // result will be [1, 2, 3] since the last two elements are dropped.
- */
-declare function dropRight<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/compat/array/dropRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes a specified number of elements from the end of an array and returns the rest.
- *
- * This function takes an array and a number, and returns a new array with the specified number
- * of elements removed from the end.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} collection - The array from which to drop elements.
- * @param {number} itemsCount - The number of elements to drop from the end of the array.
- * @param {unknown} [guard] - Enables use as an iteratee for methods like `_.map`.
- * @returns {T[]} A new array with the specified number of elements removed from the end.
- *
- * @example
- * const array = [1, 2, 3, 4, 5];
- * const result = dropRight(array, 2);
- * // result will be [1, 2, 3] since the last two elements are dropped.
- */
-declare function dropRight<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/compat/array/dropRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const dropRight$1 = require('../../array/dropRight.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const toInteger = require('../util/toInteger.js');
-
-function dropRight(collection, itemsCount = 1, guard) {
-    if (!isArrayLike.isArrayLike(collection)) {
-        return [];
-    }
-    itemsCount = guard ? 1 : toInteger.toInteger(itemsCount);
-    return dropRight$1.dropRight(toArray.toArray(collection), itemsCount);
-}
-
-exports.dropRight = dropRight;
Index: de_modules/es-toolkit/dist/compat/array/dropRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { dropRight as dropRight$1 } from '../../array/dropRight.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function dropRight(collection, itemsCount = 1, guard) {
-    if (!isArrayLike(collection)) {
-        return [];
-    }
-    itemsCount = guard ? 1 : toInteger(itemsCount);
-    return dropRight$1(toArray(collection), itemsCount);
-}
-
-export { dropRight };
Index: de_modules/es-toolkit/dist/compat/array/dropRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRightWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-
-/**
- * Creates a slice of array excluding elements dropped from the end until predicate returns falsey.
- * The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- * @example
- *
- * const users = [
- *   { user: 'barney', active: true },
- *   { user: 'fred', active: false },
- *   { user: 'pebbles', active: false }
- * ];
- *
- * // Using function predicate
- * dropRightWhile(users, user => !user.active);
- * // => [{ user: 'barney', active: true }]
- *
- * // Using matches shorthand
- * dropRightWhile(users, { user: 'pebbles', active: false });
- * // => [{ user: 'barney', active: true }, { user: 'fred', active: false }]
- *
- * // Using matchesProperty shorthand
- * dropRightWhile(users, ['active', false]);
- * // => [{ user: 'barney', active: true }]
- *
- * // Using property shorthand
- * dropRightWhile(users, 'active');
- * // => [{ user: 'barney', active: true }]
- */
-declare function dropRightWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/dropRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-
-/**
- * Creates a slice of array excluding elements dropped from the end until predicate returns falsey.
- * The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- * @example
- *
- * const users = [
- *   { user: 'barney', active: true },
- *   { user: 'fred', active: false },
- *   { user: 'pebbles', active: false }
- * ];
- *
- * // Using function predicate
- * dropRightWhile(users, user => !user.active);
- * // => [{ user: 'barney', active: true }]
- *
- * // Using matches shorthand
- * dropRightWhile(users, { user: 'pebbles', active: false });
- * // => [{ user: 'barney', active: true }, { user: 'fred', active: false }]
- *
- * // Using matchesProperty shorthand
- * dropRightWhile(users, ['active', false]);
- * // => [{ user: 'barney', active: true }]
- *
- * // Using property shorthand
- * dropRightWhile(users, 'active');
- * // => [{ user: 'barney', active: true }]
- */
-declare function dropRightWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/dropRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const dropRightWhile$1 = require('../../array/dropRightWhile.js');
-const identity = require('../../function/identity.js');
-const property = require('../object/property.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function dropRightWhile(arr, predicate = identity.identity) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return dropRightWhileImpl(Array.from(arr), predicate);
-}
-function dropRightWhileImpl(arr, predicate) {
-    switch (typeof predicate) {
-        case 'function': {
-            return dropRightWhile$1.dropRightWhile(arr, (item, index, arr) => Boolean(predicate(item, index, arr)));
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                return dropRightWhile$1.dropRightWhile(arr, matchesProperty.matchesProperty(key, value));
-            }
-            else {
-                return dropRightWhile$1.dropRightWhile(arr, matches.matches(predicate));
-            }
-        }
-        case 'symbol':
-        case 'number':
-        case 'string': {
-            return dropRightWhile$1.dropRightWhile(arr, property.property(predicate));
-        }
-    }
-}
-
-exports.dropRightWhile = dropRightWhile;
Index: de_modules/es-toolkit/dist/compat/array/dropRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropRightWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { dropRightWhile as dropRightWhile$1 } from '../../array/dropRightWhile.mjs';
-import { identity } from '../../function/identity.mjs';
-import { property } from '../object/property.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function dropRightWhile(arr, predicate = identity) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return dropRightWhileImpl(Array.from(arr), predicate);
-}
-function dropRightWhileImpl(arr, predicate) {
-    switch (typeof predicate) {
-        case 'function': {
-            return dropRightWhile$1(arr, (item, index, arr) => Boolean(predicate(item, index, arr)));
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                return dropRightWhile$1(arr, matchesProperty(key, value));
-            }
-            else {
-                return dropRightWhile$1(arr, matches(predicate));
-            }
-        }
-        case 'symbol':
-        case 'number':
-        case 'string': {
-            return dropRightWhile$1(arr, property(predicate));
-        }
-    }
-}
-
-export { dropRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/dropWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-
-/**
- * Creates a slice of array excluding elements dropped from the beginning.
- * Elements are dropped until predicate returns falsey.
- * The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T - The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} arr - The array to query
- * @param {ListIteratee<T>} [predicate=identity] - The function invoked per iteration
- * @returns {T[]} Returns the slice of array
- *
- * @example
- * dropWhile([1, 2, 3], n => n < 3)
- * // => [3]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], { a: 1 })
- * // => [{ a: 1, b: 3 }]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], ['a', 1])
- * // => [{ a: 1, b: 3 }]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], 'a')
- * // => []
- */
-declare function dropWhile<T>(arr: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/compat/array/dropWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-
-/**
- * Creates a slice of array excluding elements dropped from the beginning.
- * Elements are dropped until predicate returns falsey.
- * The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T - The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} arr - The array to query
- * @param {ListIteratee<T>} [predicate=identity] - The function invoked per iteration
- * @returns {T[]} Returns the slice of array
- *
- * @example
- * dropWhile([1, 2, 3], n => n < 3)
- * // => [3]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], { a: 1 })
- * // => [{ a: 1, b: 3 }]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], ['a', 1])
- * // => [{ a: 1, b: 3 }]
- *
- * dropWhile([{ a: 1, b: 2 }, { a: 1, b: 3 }], 'a')
- * // => []
- */
-declare function dropWhile<T>(arr: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/compat/array/dropWhile.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const dropWhile$1 = require('../../array/dropWhile.js');
-const identity = require('../../function/identity.js');
-const toArray = require('../_internal/toArray.js');
-const property = require('../object/property.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function dropWhile(arr, predicate = identity.identity) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return dropWhileImpl(toArray.toArray(arr), predicate);
-}
-function dropWhileImpl(arr, predicate) {
-    switch (typeof predicate) {
-        case 'function': {
-            return dropWhile$1.dropWhile(arr, (item, index, arr) => Boolean(predicate(item, index, arr)));
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                return dropWhile$1.dropWhile(arr, matchesProperty.matchesProperty(key, value));
-            }
-            else {
-                return dropWhile$1.dropWhile(arr, matches.matches(predicate));
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            return dropWhile$1.dropWhile(arr, property.property(predicate));
-        }
-    }
-}
-
-exports.dropWhile = dropWhile;
Index: de_modules/es-toolkit/dist/compat/array/dropWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/dropWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { dropWhile as dropWhile$1 } from '../../array/dropWhile.mjs';
-import { identity } from '../../function/identity.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { property } from '../object/property.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function dropWhile(arr, predicate = identity) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return dropWhileImpl(toArray(arr), predicate);
-}
-function dropWhileImpl(arr, predicate) {
-    switch (typeof predicate) {
-        case 'function': {
-            return dropWhile$1(arr, (item, index, arr) => Boolean(predicate(item, index, arr)));
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                return dropWhile$1(arr, matchesProperty(key, value));
-            }
-            else {
-                return dropWhile$1(arr, matches(predicate));
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            return dropWhile$1(arr, property(predicate));
-        }
-    }
-}
-
-export { dropWhile };
Index: de_modules/es-toolkit/dist/compat/array/every.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/every.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Checks if all elements in a collection pass the predicate check.
- * The predicate is invoked with three arguments: (value, index|key, collection).
- *
- * @template T - The type of elements in the collection
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over
- * @param {ListIterateeCustom<T, boolean>} [predicate=identity] - The function invoked per iteration
- * @returns {boolean} Returns true if all elements pass the predicate check, else false
- *
- * @example
- * // Using a function predicate
- * every([true, 1, null, 'yes'], Boolean)
- * // => false
- *
- * // Using property shorthand
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }]
- * every(users, 'age')
- * // => true
- *
- * // Using matches shorthand
- * every(users, { age: 36 })
- * // => false
- *
- * // Using matchesProperty shorthand
- * every(users, ['age', 36])
- * // => false
- */
-declare function every<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): boolean;
-/**
- * Checks if all elements in an object pass the predicate check.
- * The predicate is invoked with three arguments: (value, key, object).
- *
- * @template T - The type of the object
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ObjectIterateeCustom<T, boolean>} [predicate=identity] - The function invoked per iteration
- * @returns {boolean} Returns true if all elements pass the predicate check, else false
- *
- * @example
- * // Using a function predicate
- * every({ a: true, b: 1, c: null }, Boolean)
- * // => false
- *
- * // Using property shorthand
- * const users = {
- *   barney: { active: true, age: 36 },
- *   fred: { active: true, age: 40 }
- * }
- * every(users, 'active')
- * // => true
- *
- * // Using matches shorthand
- * every(users, { active: true })
- * // => true
- *
- * // Using matchesProperty shorthand
- * every(users, ['age', 36])
- * // => false
- */
-declare function every<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/compat/array/every.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/every.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-
-/**
- * Checks if all elements in a collection pass the predicate check.
- * The predicate is invoked with three arguments: (value, index|key, collection).
- *
- * @template T - The type of elements in the collection
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over
- * @param {ListIterateeCustom<T, boolean>} [predicate=identity] - The function invoked per iteration
- * @returns {boolean} Returns true if all elements pass the predicate check, else false
- *
- * @example
- * // Using a function predicate
- * every([true, 1, null, 'yes'], Boolean)
- * // => false
- *
- * // Using property shorthand
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }]
- * every(users, 'age')
- * // => true
- *
- * // Using matches shorthand
- * every(users, { age: 36 })
- * // => false
- *
- * // Using matchesProperty shorthand
- * every(users, ['age', 36])
- * // => false
- */
-declare function every<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): boolean;
-/**
- * Checks if all elements in an object pass the predicate check.
- * The predicate is invoked with three arguments: (value, key, object).
- *
- * @template T - The type of the object
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ObjectIterateeCustom<T, boolean>} [predicate=identity] - The function invoked per iteration
- * @returns {boolean} Returns true if all elements pass the predicate check, else false
- *
- * @example
- * // Using a function predicate
- * every({ a: true, b: 1, c: null }, Boolean)
- * // => false
- *
- * // Using property shorthand
- * const users = {
- *   barney: { active: true, age: 36 },
- *   fred: { active: true, age: 40 }
- * }
- * every(users, 'active')
- * // => true
- *
- * // Using matches shorthand
- * every(users, { active: true })
- * // => true
- *
- * // Using matchesProperty shorthand
- * every(users, ['age', 36])
- * // => false
- */
-declare function every<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/compat/array/every.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const property = require('../object/property.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function every(source, doesMatch, guard) {
-    if (!source) {
-        return true;
-    }
-    if (guard && isIterateeCall.isIterateeCall(source, doesMatch, guard)) {
-        doesMatch = undefined;
-    }
-    if (!doesMatch) {
-        doesMatch = identity.identity;
-    }
-    let predicate;
-    switch (typeof doesMatch) {
-        case 'function': {
-            predicate = doesMatch;
-            break;
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                predicate = matchesProperty.matchesProperty(key, value);
-            }
-            else {
-                predicate = matches.matches(doesMatch);
-            }
-            break;
-        }
-        case 'symbol':
-        case 'number':
-        case 'string': {
-            predicate = property.property(doesMatch);
-        }
-    }
-    if (!isArrayLike.isArrayLike(source)) {
-        const keys = Object.keys(source);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (!predicate(value, key, source)) {
-                return false;
-            }
-        }
-        return true;
-    }
-    for (let i = 0; i < source.length; i++) {
-        if (!predicate(source[i], i, source)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-exports.every = every;
Index: de_modules/es-toolkit/dist/compat/array/every.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/every.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { property } from '../object/property.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function every(source, doesMatch, guard) {
-    if (!source) {
-        return true;
-    }
-    if (guard && isIterateeCall(source, doesMatch, guard)) {
-        doesMatch = undefined;
-    }
-    if (!doesMatch) {
-        doesMatch = identity;
-    }
-    let predicate;
-    switch (typeof doesMatch) {
-        case 'function': {
-            predicate = doesMatch;
-            break;
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                predicate = matchesProperty(key, value);
-            }
-            else {
-                predicate = matches(doesMatch);
-            }
-            break;
-        }
-        case 'symbol':
-        case 'number':
-        case 'string': {
-            predicate = property(doesMatch);
-        }
-    }
-    if (!isArrayLike(source)) {
-        const keys = Object.keys(source);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (!predicate(value, key, source)) {
-                return false;
-            }
-        }
-        return true;
-    }
-    for (let i = 0; i < source.length; i++) {
-        if (!predicate(source[i], i, source)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-export { every };
Index: de_modules/es-toolkit/dist/compat/array/fill.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/fill.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * Fills an array with a value.
- * @template T
- * @param {any[] | null | undefined} array - The array to fill
- * @param {T} value - The value to fill array with
- * @returns {T[]} Returns the filled array
- * @example
- * fill([1, 2, 3], 'a')
- * // => ['a', 'a', 'a']
- */
-declare function fill<T>(array: any[] | null | undefined, value: T): T[];
-/**
- * Fills an array-like object with a value.
- * @template T, AL
- * @param {RejectReadonly<AL> | null | undefined} array - The array-like object to fill
- * @param {T} value - The value to fill array with
- * @returns {ArrayLike<T>} Returns the filled array-like object
- * @example
- * fill({ length: 3 }, 2)
- * // => { 0: 2, 1: 2, 2: 2, length: 3 }
- */
-declare function fill<T, AL extends MutableList<any>>(array: RejectReadonly<AL> | null | undefined, value: T): ArrayLike<T>;
-/**
- * Fills an array with a value from start up to end.
- * @template T, U
- * @param {U[] | null | undefined} array - The array to fill
- * @param {T} value - The value to fill array with
- * @param {number} [start=0] - The start position
- * @param {number} [end=array.length] - The end position
- * @returns {Array<T | U>} Returns the filled array
- * @example
- * fill([1, 2, 3], 'a', 1, 2)
- * // => [1, 'a', 3]
- */
-declare function fill<T, U>(array: U[] | null | undefined, value: T, start?: number, end?: number): Array<T | U>;
-/**
- * Fills an array-like object with a value from start up to end.
- * @template T, U
- * @param {U extends readonly any[] ? never : U | null | undefined} array - The array-like object to fill
- * @param {T} value - The value to fill array with
- * @param {number} [start=0] - The start position
- * @param {number} [end=array.length] - The end position
- * @returns {ArrayLike<T | U[0]>} Returns the filled array-like object
- * @example
- * fill({ 0: 1, 1: 2, 2: 3, length: 3 }, 'a', 1, 2)
- * // => { 0: 1, 1: 'a', 2: 3, length: 3 }
- */
-declare function fill<T, U extends MutableList<any>>(array: RejectReadonly<U> | null | undefined, value: T, start?: number, end?: number): ArrayLike<T | U[0]>;
-
-export { fill };
Index: de_modules/es-toolkit/dist/compat/array/fill.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/fill.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * Fills an array with a value.
- * @template T
- * @param {any[] | null | undefined} array - The array to fill
- * @param {T} value - The value to fill array with
- * @returns {T[]} Returns the filled array
- * @example
- * fill([1, 2, 3], 'a')
- * // => ['a', 'a', 'a']
- */
-declare function fill<T>(array: any[] | null | undefined, value: T): T[];
-/**
- * Fills an array-like object with a value.
- * @template T, AL
- * @param {RejectReadonly<AL> | null | undefined} array - The array-like object to fill
- * @param {T} value - The value to fill array with
- * @returns {ArrayLike<T>} Returns the filled array-like object
- * @example
- * fill({ length: 3 }, 2)
- * // => { 0: 2, 1: 2, 2: 2, length: 3 }
- */
-declare function fill<T, AL extends MutableList<any>>(array: RejectReadonly<AL> | null | undefined, value: T): ArrayLike<T>;
-/**
- * Fills an array with a value from start up to end.
- * @template T, U
- * @param {U[] | null | undefined} array - The array to fill
- * @param {T} value - The value to fill array with
- * @param {number} [start=0] - The start position
- * @param {number} [end=array.length] - The end position
- * @returns {Array<T | U>} Returns the filled array
- * @example
- * fill([1, 2, 3], 'a', 1, 2)
- * // => [1, 'a', 3]
- */
-declare function fill<T, U>(array: U[] | null | undefined, value: T, start?: number, end?: number): Array<T | U>;
-/**
- * Fills an array-like object with a value from start up to end.
- * @template T, U
- * @param {U extends readonly any[] ? never : U | null | undefined} array - The array-like object to fill
- * @param {T} value - The value to fill array with
- * @param {number} [start=0] - The start position
- * @param {number} [end=array.length] - The end position
- * @returns {ArrayLike<T | U[0]>} Returns the filled array-like object
- * @example
- * fill({ 0: 1, 1: 2, 2: 3, length: 3 }, 'a', 1, 2)
- * // => { 0: 1, 1: 'a', 2: 3, length: 3 }
- */
-declare function fill<T, U extends MutableList<any>>(array: RejectReadonly<U> | null | undefined, value: T, start?: number, end?: number): ArrayLike<T | U[0]>;
-
-export { fill };
Index: de_modules/es-toolkit/dist/compat/array/fill.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/fill.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const fill$1 = require('../../array/fill.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isString = require('../predicate/isString.js');
-
-function fill(array, value, start = 0, end = array ? array.length : 0) {
-    if (!isArrayLike.isArrayLike(array)) {
-        return [];
-    }
-    if (isString.isString(array)) {
-        return array;
-    }
-    start = Math.floor(start);
-    end = Math.floor(end);
-    if (!start) {
-        start = 0;
-    }
-    if (!end) {
-        end = 0;
-    }
-    return fill$1.fill(array, value, start, end);
-}
-
-exports.fill = fill;
Index: de_modules/es-toolkit/dist/compat/array/fill.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/fill.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { fill as fill$1 } from '../../array/fill.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isString } from '../predicate/isString.mjs';
-
-function fill(array, value, start = 0, end = array ? array.length : 0) {
-    if (!isArrayLike(array)) {
-        return [];
-    }
-    if (isString(array)) {
-        return array;
-    }
-    start = Math.floor(start);
-    end = Math.floor(end);
-    if (!start) {
-        start = 0;
-    }
-    if (!end) {
-        end = 0;
-    }
-    return fill$1(array, value, start, end);
-}
-
-export { fill };
Index: de_modules/es-toolkit/dist/compat/array/filter.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/filter.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.mjs';
-import { StringIterator } from '../_internal/StringIterator.mjs';
-
-/**
- * Filters characters in a string based on the predicate function.
- *
- * @param collection - The string to filter
- * @param predicate - The function to test each character
- * @returns An array of characters that pass the predicate test
- *
- * @example
- * filter('123', char => char === '2')
- * // => ['2']
- */
-declare function filter(collection: string | null | undefined, predicate?: StringIterator<boolean>): string[];
-/**
- * Filters elements in an array-like object using a type guard predicate.
- *
- * @param collection - The array-like object to filter
- * @param predicate - The type guard function to test each element
- * @returns An array of elements that are of type U
- *
- * @example
- * filter([1, '2', 3], (x): x is number => typeof x === 'number')
- * // => [1, 3]
- */
-declare function filter<T, U extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, U>): U[];
-/**
- * Filters elements in an array-like object based on the predicate.
- *
- * @param collection - The array-like object to filter
- * @param predicate - The function or shorthand to test each element
- * @returns An array of elements that pass the predicate test
- *
- * @example
- * filter([1, 2, 3], x => x > 1)
- * // => [2, 3]
- *
- * filter([{ a: 1 }, { a: 2 }], { a: 1 })
- * // => [{ a: 1 }]
- */
-declare function filter<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): T[];
-/**
- * Filters values in an object using a type guard predicate.
- *
- * @param collection - The object to filter
- * @param predicate - The type guard function to test each value
- * @returns An array of values that are of type U
- *
- * @example
- * filter({ a: 1, b: '2', c: 3 }, (x): x is number => typeof x === 'number')
- * // => [1, 3]
- */
-declare function filter<T extends object, U extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, U>): U[];
-/**
- * Filters values in an object based on the predicate.
- *
- * @param collection - The object to filter
- * @param predicate - The function or shorthand to test each value
- * @returns An array of values that pass the predicate test
- *
- * @example
- * filter({ a: 1, b: 2 }, x => x > 1)
- * // => [2]
- *
- * filter({ a: { x: 1 }, b: { x: 2 } }, { x: 1 })
- * // => [{ x: 1 }]
- */
-declare function filter<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): Array<T[keyof T]>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/compat/array/filter.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/filter.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.js';
-import { StringIterator } from '../_internal/StringIterator.js';
-
-/**
- * Filters characters in a string based on the predicate function.
- *
- * @param collection - The string to filter
- * @param predicate - The function to test each character
- * @returns An array of characters that pass the predicate test
- *
- * @example
- * filter('123', char => char === '2')
- * // => ['2']
- */
-declare function filter(collection: string | null | undefined, predicate?: StringIterator<boolean>): string[];
-/**
- * Filters elements in an array-like object using a type guard predicate.
- *
- * @param collection - The array-like object to filter
- * @param predicate - The type guard function to test each element
- * @returns An array of elements that are of type U
- *
- * @example
- * filter([1, '2', 3], (x): x is number => typeof x === 'number')
- * // => [1, 3]
- */
-declare function filter<T, U extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, U>): U[];
-/**
- * Filters elements in an array-like object based on the predicate.
- *
- * @param collection - The array-like object to filter
- * @param predicate - The function or shorthand to test each element
- * @returns An array of elements that pass the predicate test
- *
- * @example
- * filter([1, 2, 3], x => x > 1)
- * // => [2, 3]
- *
- * filter([{ a: 1 }, { a: 2 }], { a: 1 })
- * // => [{ a: 1 }]
- */
-declare function filter<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): T[];
-/**
- * Filters values in an object using a type guard predicate.
- *
- * @param collection - The object to filter
- * @param predicate - The type guard function to test each value
- * @returns An array of values that are of type U
- *
- * @example
- * filter({ a: 1, b: '2', c: 3 }, (x): x is number => typeof x === 'number')
- * // => [1, 3]
- */
-declare function filter<T extends object, U extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, U>): U[];
-/**
- * Filters values in an object based on the predicate.
- *
- * @param collection - The object to filter
- * @param predicate - The function or shorthand to test each value
- * @returns An array of values that pass the predicate test
- *
- * @example
- * filter({ a: 1, b: 2 }, x => x > 1)
- * // => [2]
- *
- * filter({ a: { x: 1 }, b: { x: 2 } }, { x: 1 })
- * // => [{ x: 1 }]
- */
-declare function filter<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): Array<T[keyof T]>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/compat/array/filter.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function filter(source, predicate = identity.identity) {
-    if (!source) {
-        return [];
-    }
-    predicate = iteratee.iteratee(predicate);
-    if (!Array.isArray(source)) {
-        const result = [];
-        const keys = Object.keys(source);
-        const length = isArrayLike.isArrayLike(source) ? source.length : keys.length;
-        for (let i = 0; i < length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (predicate(value, key, source)) {
-                result.push(value);
-            }
-        }
-        return result;
-    }
-    const result = [];
-    const length = source.length;
-    for (let i = 0; i < length; i++) {
-        const value = source[i];
-        if (predicate(value, i, source)) {
-            result.push(value);
-        }
-    }
-    return result;
-}
-
-exports.filter = filter;
Index: de_modules/es-toolkit/dist/compat/array/filter.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/filter.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function filter(source, predicate = identity) {
-    if (!source) {
-        return [];
-    }
-    predicate = iteratee(predicate);
-    if (!Array.isArray(source)) {
-        const result = [];
-        const keys = Object.keys(source);
-        const length = isArrayLike(source) ? source.length : keys.length;
-        for (let i = 0; i < length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (predicate(value, key, source)) {
-                result.push(value);
-            }
-        }
-        return result;
-    }
-    const result = [];
-    const length = source.length;
-    for (let i = 0; i < length; i++) {
-        const value = source[i];
-        if (predicate(value, i, source)) {
-            result.push(value);
-        }
-    }
-    return result;
-}
-
-export { filter };
Index: de_modules/es-toolkit/dist/compat/array/find.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/find.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Finds the first element in an array-like object that matches a type guard predicate.
- *
- * @param collection - The array-like object to search
- * @param predicate - The type guard function to test each element
- * @param fromIndex - The index to start searching from
- * @returns The first element that matches the type guard, or undefined if none found
- *
- * @example
- * find([1, '2', 3], (x): x is number => typeof x === 'number')
- * // => 1
- */
-declare function find<T, U extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, U>, fromIndex?: number): U | undefined;
-/**
- * Finds the first element in an array-like object that matches a predicate.
- *
- * @param collection - The array-like object to search
- * @param predicate - The function or shorthand to test each element
- * @param fromIndex - The index to start searching from
- * @returns The first matching element, or undefined if none found
- *
- * @example
- * find([1, 2, 3], x => x > 2)
- * // => 3
- *
- * find([{ a: 1 }, { a: 2 }], { a: 2 })
- * // => { a: 2 }
- */
-declare function find<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): T | undefined;
-/**
- * Finds the first value in an object that matches a type guard predicate.
- *
- * @param collection - The object to search
- * @param predicate - The type guard function to test each value
- * @param fromIndex - The index to start searching from
- * @returns The first value that matches the type guard, or undefined if none found
- *
- * @example
- * find({ a: 1, b: '2', c: 3 }, (x): x is number => typeof x === 'number')
- * // => 1
- */
-declare function find<T extends object, U extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, U>, fromIndex?: number): U | undefined;
-/**
- * Finds the first value in an object that matches a predicate.
- *
- * @param collection - The object to search
- * @param predicate - The function or shorthand to test each value
- * @param fromIndex - The index to start searching from
- * @returns The first matching value, or undefined if none found
- *
- * @example
- * find({ a: 1, b: 2 }, x => x > 1)
- * // => 2
- *
- * find({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { x: 2 }
- */
-declare function find<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>, fromIndex?: number): T[keyof T] | undefined;
-
-export { find };
Index: de_modules/es-toolkit/dist/compat/array/find.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/find.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.js';
-
-/**
- * Finds the first element in an array-like object that matches a type guard predicate.
- *
- * @param collection - The array-like object to search
- * @param predicate - The type guard function to test each element
- * @param fromIndex - The index to start searching from
- * @returns The first element that matches the type guard, or undefined if none found
- *
- * @example
- * find([1, '2', 3], (x): x is number => typeof x === 'number')
- * // => 1
- */
-declare function find<T, U extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, U>, fromIndex?: number): U | undefined;
-/**
- * Finds the first element in an array-like object that matches a predicate.
- *
- * @param collection - The array-like object to search
- * @param predicate - The function or shorthand to test each element
- * @param fromIndex - The index to start searching from
- * @returns The first matching element, or undefined if none found
- *
- * @example
- * find([1, 2, 3], x => x > 2)
- * // => 3
- *
- * find([{ a: 1 }, { a: 2 }], { a: 2 })
- * // => { a: 2 }
- */
-declare function find<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): T | undefined;
-/**
- * Finds the first value in an object that matches a type guard predicate.
- *
- * @param collection - The object to search
- * @param predicate - The type guard function to test each value
- * @param fromIndex - The index to start searching from
- * @returns The first value that matches the type guard, or undefined if none found
- *
- * @example
- * find({ a: 1, b: '2', c: 3 }, (x): x is number => typeof x === 'number')
- * // => 1
- */
-declare function find<T extends object, U extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, U>, fromIndex?: number): U | undefined;
-/**
- * Finds the first value in an object that matches a predicate.
- *
- * @param collection - The object to search
- * @param predicate - The function or shorthand to test each value
- * @param fromIndex - The index to start searching from
- * @returns The first matching value, or undefined if none found
- *
- * @example
- * find({ a: 1, b: 2 }, x => x > 1)
- * // => 2
- *
- * find({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { x: 2 }
- */
-declare function find<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>, fromIndex?: number): T[keyof T] | undefined;
-
-export { find };
Index: de_modules/es-toolkit/dist/compat/array/find.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function find(source, _doesMatch = identity.identity, fromIndex = 0) {
-    if (!source) {
-        return undefined;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(source.length + fromIndex, 0);
-    }
-    const doesMatch = iteratee.iteratee(_doesMatch);
-    if (!Array.isArray(source)) {
-        const keys = Object.keys(source);
-        for (let i = fromIndex; i < keys.length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (doesMatch(value, key, source)) {
-                return value;
-            }
-        }
-        return undefined;
-    }
-    return source.slice(fromIndex).find(doesMatch);
-}
-
-exports.find = find;
Index: de_modules/es-toolkit/dist/compat/array/find.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/find.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function find(source, _doesMatch = identity, fromIndex = 0) {
-    if (!source) {
-        return undefined;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(source.length + fromIndex, 0);
-    }
-    const doesMatch = iteratee(_doesMatch);
-    if (!Array.isArray(source)) {
-        const keys = Object.keys(source);
-        for (let i = fromIndex; i < keys.length; i++) {
-            const key = keys[i];
-            const value = source[key];
-            if (doesMatch(value, key, source)) {
-                return value;
-            }
-        }
-        return undefined;
-    }
-    return source.slice(fromIndex).find(doesMatch);
-}
-
-export { find };
Index: de_modules/es-toolkit/dist/compat/array/findIndex.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findIndex.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-
-/**
- * Finds the index of the first item in an array that has a specific property, where the property name is provided as a PropertyKey.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arr - The array to search through.
- * @param {((item: T, index: number, arr: any) => unknown) | Partial<T> | [keyof T, unknown] | PropertyKey} doesMatch - The criteria to match against the items in the array. This can be a function, a partial object, a key-value pair, or a property name.
- * @param {PropertyKey} propertyToCheck - The property name to check for in the items of the array.
- * @param {number} [fromIndex=0] - The index to start the search from, defaults to 0.
- * @returns {number} - The index of the first item that has the specified property, or `-1` if no match is found.
- *
- * @example
- * // Using a property name
- * const items = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
- * const result = findIndex(items, 'name');
- * console.log(result); // 0
- */
-declare function findIndex<T>(arr: ArrayLike<T> | null | undefined, doesMatch?: ListIterateeCustom<T, boolean>, fromIndex?: number): number;
-
-export { findIndex };
Index: de_modules/es-toolkit/dist/compat/array/findIndex.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-
-/**
- * Finds the index of the first item in an array that has a specific property, where the property name is provided as a PropertyKey.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arr - The array to search through.
- * @param {((item: T, index: number, arr: any) => unknown) | Partial<T> | [keyof T, unknown] | PropertyKey} doesMatch - The criteria to match against the items in the array. This can be a function, a partial object, a key-value pair, or a property name.
- * @param {PropertyKey} propertyToCheck - The property name to check for in the items of the array.
- * @param {number} [fromIndex=0] - The index to start the search from, defaults to 0.
- * @returns {number} - The index of the first item that has the specified property, or `-1` if no match is found.
- *
- * @example
- * // Using a property name
- * const items = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
- * const result = findIndex(items, 'name');
- * console.log(result); // 0
- */
-declare function findIndex<T>(arr: ArrayLike<T> | null | undefined, doesMatch?: ListIterateeCustom<T, boolean>, fromIndex?: number): number;
-
-export { findIndex };
Index: de_modules/es-toolkit/dist/compat/array/findIndex.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const property = require('../object/property.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function findIndex(arr, doesMatch, fromIndex = 0) {
-    if (!arr) {
-        return -1;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(arr.length + fromIndex, 0);
-    }
-    const subArray = Array.from(arr).slice(fromIndex);
-    let index = -1;
-    switch (typeof doesMatch) {
-        case 'function': {
-            index = subArray.findIndex(doesMatch);
-            break;
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                index = subArray.findIndex(matchesProperty.matchesProperty(key, value));
-            }
-            else {
-                index = subArray.findIndex(matches.matches(doesMatch));
-            }
-            break;
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            index = subArray.findIndex(property.property(doesMatch));
-        }
-    }
-    return index === -1 ? -1 : index + fromIndex;
-}
-
-exports.findIndex = findIndex;
Index: de_modules/es-toolkit/dist/compat/array/findIndex.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findIndex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { property } from '../object/property.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function findIndex(arr, doesMatch, fromIndex = 0) {
-    if (!arr) {
-        return -1;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(arr.length + fromIndex, 0);
-    }
-    const subArray = Array.from(arr).slice(fromIndex);
-    let index = -1;
-    switch (typeof doesMatch) {
-        case 'function': {
-            index = subArray.findIndex(doesMatch);
-            break;
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                index = subArray.findIndex(matchesProperty(key, value));
-            }
-            else {
-                index = subArray.findIndex(matches(doesMatch));
-            }
-            break;
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            index = subArray.findIndex(property(doesMatch));
-        }
-    }
-    return index === -1 ? -1 : index + fromIndex;
-}
-
-export { findIndex };
Index: de_modules/es-toolkit/dist/compat/array/findLast.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLast.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Finds the last element in a collection that satisfies the predicate.
- *
- * @template T, S
- * @param {ArrayLike<T> | null | undefined} collection - The collection to search.
- * @param {ListIteratorTypeGuard<T, S>} predicate - The predicate function with type guard.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {S | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }, { user: 'pebbles', age: 18 }];
- * findLast(users, (o): o is { user: string; age: number } => o.age < 40);
- * // => { user: 'pebbles', age: 18 }
- */
-declare function findLast<T, S extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, S>, fromIndex?: number): S | undefined;
-/**
- * Finds the last element in a collection that satisfies the predicate.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to search.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {T | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }, { user: 'pebbles', age: 18 }];
- * findLast(users, o => o.age < 40);
- * // => { user: 'pebbles', age: 18 }
- *
- * findLast(users, { age: 36 });
- * // => { user: 'barney', age: 36 }
- *
- * findLast(users, ['age', 18]);
- * // => { user: 'pebbles', age: 18 }
- *
- * findLast(users, 'age');
- * // => { user: 'fred', age: 40 }
- */
-declare function findLast<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): T | undefined;
-/**
- * Finds the last element in an object that satisfies the predicate with type guard.
- *
- * @template T, S
- * @param {T | null | undefined} collection - The object to search.
- * @param {ObjectIteratorTypeGuard<T, S>} predicate - The predicate function with type guard.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {S | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const obj = { a: 1, b: 'hello', c: 3 };
- * findLast(obj, (value): value is string => typeof value === 'string');
- * // => 'hello'
- */
-declare function findLast<T extends object, S extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, S>, fromIndex?: number): S | undefined;
-/**
- * Finds the last element in an object that satisfies the predicate.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to search.
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {T[keyof T] | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const obj = { a: { id: 1, name: 'Alice' }, b: { id: 2 }, c: { id: 3, name: 'Bob' } };
- * findLast(obj, o => o.id > 1);
- * // => { id: 3, name: 'Bob' }
- *
- * findLast(obj, { name: 'Bob' });
- * // => { id: 3, name: 'Bob' }
- *
- * findLast(obj, 'name');
- * // => { id: 3, name: 'Bob' }
- */
-declare function findLast<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>, fromIndex?: number): T[keyof T] | undefined;
-
-export { findLast };
Index: de_modules/es-toolkit/dist/compat/array/findLast.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLast.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ListIteratorTypeGuard } from '../_internal/ListIteratorTypeGuard.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-import { ObjectIteratorTypeGuard } from '../_internal/ObjectIterator.js';
-
-/**
- * Finds the last element in a collection that satisfies the predicate.
- *
- * @template T, S
- * @param {ArrayLike<T> | null | undefined} collection - The collection to search.
- * @param {ListIteratorTypeGuard<T, S>} predicate - The predicate function with type guard.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {S | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }, { user: 'pebbles', age: 18 }];
- * findLast(users, (o): o is { user: string; age: number } => o.age < 40);
- * // => { user: 'pebbles', age: 18 }
- */
-declare function findLast<T, S extends T>(collection: ArrayLike<T> | null | undefined, predicate: ListIteratorTypeGuard<T, S>, fromIndex?: number): S | undefined;
-/**
- * Finds the last element in a collection that satisfies the predicate.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to search.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {T | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const users = [{ user: 'barney', age: 36 }, { user: 'fred', age: 40 }, { user: 'pebbles', age: 18 }];
- * findLast(users, o => o.age < 40);
- * // => { user: 'pebbles', age: 18 }
- *
- * findLast(users, { age: 36 });
- * // => { user: 'barney', age: 36 }
- *
- * findLast(users, ['age', 18]);
- * // => { user: 'pebbles', age: 18 }
- *
- * findLast(users, 'age');
- * // => { user: 'fred', age: 40 }
- */
-declare function findLast<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): T | undefined;
-/**
- * Finds the last element in an object that satisfies the predicate with type guard.
- *
- * @template T, S
- * @param {T | null | undefined} collection - The object to search.
- * @param {ObjectIteratorTypeGuard<T, S>} predicate - The predicate function with type guard.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {S | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const obj = { a: 1, b: 'hello', c: 3 };
- * findLast(obj, (value): value is string => typeof value === 'string');
- * // => 'hello'
- */
-declare function findLast<T extends object, S extends T[keyof T]>(collection: T | null | undefined, predicate: ObjectIteratorTypeGuard<T, S>, fromIndex?: number): S | undefined;
-/**
- * Finds the last element in an object that satisfies the predicate.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to search.
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {T[keyof T] | undefined} The last element that satisfies the predicate.
- *
- * @example
- * const obj = { a: { id: 1, name: 'Alice' }, b: { id: 2 }, c: { id: 3, name: 'Bob' } };
- * findLast(obj, o => o.id > 1);
- * // => { id: 3, name: 'Bob' }
- *
- * findLast(obj, { name: 'Bob' });
- * // => { id: 3, name: 'Bob' }
- *
- * findLast(obj, 'name');
- * // => { id: 3, name: 'Bob' }
- */
-declare function findLast<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>, fromIndex?: number): T[keyof T] | undefined;
-
-export { findLast };
Index: de_modules/es-toolkit/dist/compat/array/findLast.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLast.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-const toInteger = require('../util/toInteger.js');
-
-function findLast(source, _doesMatch = identity.identity, fromIndex) {
-    if (!source) {
-        return undefined;
-    }
-    const length = Array.isArray(source) ? source.length : Object.keys(source).length;
-    fromIndex = toInteger.toInteger(fromIndex ?? length - 1);
-    if (fromIndex < 0) {
-        fromIndex = Math.max(length + fromIndex, 0);
-    }
-    else {
-        fromIndex = Math.min(fromIndex, length - 1);
-    }
-    const doesMatch = iteratee.iteratee(_doesMatch);
-    if (!Array.isArray(source)) {
-        const keys = Object.keys(source);
-        for (let i = fromIndex; i >= 0; i--) {
-            const key = keys[i];
-            const value = source[key];
-            if (doesMatch(value, key, source)) {
-                return value;
-            }
-        }
-        return undefined;
-    }
-    return source.slice(0, fromIndex + 1).findLast(doesMatch);
-}
-
-exports.findLast = findLast;
Index: de_modules/es-toolkit/dist/compat/array/findLast.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLast.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function findLast(source, _doesMatch = identity, fromIndex) {
-    if (!source) {
-        return undefined;
-    }
-    const length = Array.isArray(source) ? source.length : Object.keys(source).length;
-    fromIndex = toInteger(fromIndex ?? length - 1);
-    if (fromIndex < 0) {
-        fromIndex = Math.max(length + fromIndex, 0);
-    }
-    else {
-        fromIndex = Math.min(fromIndex, length - 1);
-    }
-    const doesMatch = iteratee(_doesMatch);
-    if (!Array.isArray(source)) {
-        const keys = Object.keys(source);
-        for (let i = fromIndex; i >= 0; i--) {
-            const key = keys[i];
-            const value = source[key];
-            if (doesMatch(value, key, source)) {
-                return value;
-            }
-        }
-        return undefined;
-    }
-    return source.slice(0, fromIndex + 1).findLast(doesMatch);
-}
-
-export { findLast };
Index: de_modules/es-toolkit/dist/compat/array/findLastIndex.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLastIndex.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-
-/**
- * Finds the index of the last element in the array that satisfies the predicate.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to search through.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {number} The index of the last matching element, or -1 if not found.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: true },
- *   { user: 'fred', active: false },
- *   { user: 'pebbles', active: false }
- * ];
- *
- * findLastIndex(users, o => o.user === 'pebbles');
- * // => 2
- *
- * findLastIndex(users, { user: 'barney', active: true });
- * // => 0
- *
- * findLastIndex(users, ['active', false]);
- * // => 2
- *
- * findLastIndex(users, 'active');
- * // => 0
- */
-declare function findLastIndex<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): number;
-
-export { findLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/findLastIndex.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLastIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-
-/**
- * Finds the index of the last element in the array that satisfies the predicate.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to search through.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The predicate function, partial object, property-value pair, or property name.
- * @param {number} [fromIndex] - The index to start searching from.
- * @returns {number} The index of the last matching element, or -1 if not found.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: true },
- *   { user: 'fred', active: false },
- *   { user: 'pebbles', active: false }
- * ];
- *
- * findLastIndex(users, o => o.user === 'pebbles');
- * // => 2
- *
- * findLastIndex(users, { user: 'barney', active: true });
- * // => 0
- *
- * findLastIndex(users, ['active', false]);
- * // => 2
- *
- * findLastIndex(users, 'active');
- * // => 0
- */
-declare function findLastIndex<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>, fromIndex?: number): number;
-
-export { findLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/findLastIndex.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const toArray = require('../_internal/toArray.js');
-const property = require('../object/property.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function findLastIndex(arr, doesMatch = identity.identity, fromIndex = arr ? arr.length - 1 : 0) {
-    if (!arr) {
-        return -1;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(arr.length + fromIndex, 0);
-    }
-    else {
-        fromIndex = Math.min(fromIndex, arr.length - 1);
-    }
-    const subArray = toArray.toArray(arr).slice(0, fromIndex + 1);
-    switch (typeof doesMatch) {
-        case 'function': {
-            return subArray.findLastIndex(doesMatch);
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                return subArray.findLastIndex(matchesProperty.matchesProperty(key, value));
-            }
-            else {
-                return subArray.findLastIndex(matches.matches(doesMatch));
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            return subArray.findLastIndex(property.property(doesMatch));
-        }
-    }
-}
-
-exports.findLastIndex = findLastIndex;
Index: de_modules/es-toolkit/dist/compat/array/findLastIndex.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/findLastIndex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { property } from '../object/property.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function findLastIndex(arr, doesMatch = identity, fromIndex = arr ? arr.length - 1 : 0) {
-    if (!arr) {
-        return -1;
-    }
-    if (fromIndex < 0) {
-        fromIndex = Math.max(arr.length + fromIndex, 0);
-    }
-    else {
-        fromIndex = Math.min(fromIndex, arr.length - 1);
-    }
-    const subArray = toArray(arr).slice(0, fromIndex + 1);
-    switch (typeof doesMatch) {
-        case 'function': {
-            return subArray.findLastIndex(doesMatch);
-        }
-        case 'object': {
-            if (Array.isArray(doesMatch) && doesMatch.length === 2) {
-                const key = doesMatch[0];
-                const value = doesMatch[1];
-                return subArray.findLastIndex(matchesProperty(key, value));
-            }
-            else {
-                return subArray.findLastIndex(matches(doesMatch));
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            return subArray.findLastIndex(property(doesMatch));
-        }
-    }
-}
-
-export { findLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/flatMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { Many } from '../_internal/Many.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T
- * @param {Record<string, Many<T>> | Record<number, Many<T>> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: [1, 2], b: [3, 4] };
- * flatMap(obj);
- * // => [1, 2, 3, 4]
- */
-declare function flatMap<T>(collection: Record<string, Many<T>> | Record<number, Many<T>> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * flatMap({ a: 1, b: 2 });
- * // => [1, 2]
- */
-declare function flatMap(collection: object | null | undefined): any[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, Many<R>>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [n, n];
- * }
- *
- * flatMap([1, 2], duplicate);
- * // => [1, 1, 2, 2]
- */
-declare function flatMap<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, Many<R>>): R[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, Many<R>>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMap(obj, (value, key) => [key, value]);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMap<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, Many<R>>): R[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: ['hiking', 'coding'] },
- *   { user: 'fred', hobbies: ['reading'] }
- * ];
- * flatMap(users, 'hobbies');
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMap(collection: object | null | undefined, iteratee: string): any[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @returns {boolean[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', age: 36, active: true },
- *   { user: 'fred', age: 40, active: false }
- * ];
- * flatMap(users, { active: false });
- * // => [false]
- */
-declare function flatMap(collection: object | null | undefined, iteratee: object): boolean[];
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/compat/array/flatMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.js';
-import { Many } from '../_internal/Many.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T
- * @param {Record<string, Many<T>> | Record<number, Many<T>> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: [1, 2], b: [3, 4] };
- * flatMap(obj);
- * // => [1, 2, 3, 4]
- */
-declare function flatMap<T>(collection: Record<string, Many<T>> | Record<number, Many<T>> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * flatMap({ a: 1, b: 2 });
- * // => [1, 2]
- */
-declare function flatMap(collection: object | null | undefined): any[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, Many<R>>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [n, n];
- * }
- *
- * flatMap([1, 2], duplicate);
- * // => [1, 1, 2, 2]
- */
-declare function flatMap<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, Many<R>>): R[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, Many<R>>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMap(obj, (value, key) => [key, value]);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMap<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, Many<R>>): R[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: ['hiking', 'coding'] },
- *   { user: 'fred', hobbies: ['reading'] }
- * ];
- * flatMap(users, 'hobbies');
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMap(collection: object | null | undefined, iteratee: string): any[];
-/**
- * Creates a flattened array of values by running each element in collection through iteratee and flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @returns {boolean[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', age: 36, active: true },
- *   { user: 'fred', age: 40, active: false }
- * ];
- * flatMap(users, { active: false });
- * // => [false]
- */
-declare function flatMap(collection: object | null | undefined, iteratee: object): boolean[];
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/compat/array/flatMap.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flattenDepth = require('./flattenDepth.js');
-const map = require('./map.js');
-const isNil = require('../../predicate/isNil.js');
-
-function flatMap(collection, iteratee) {
-    if (isNil.isNil(collection)) {
-        return [];
-    }
-    const mapped = isNil.isNil(iteratee) ? map.map(collection) : map.map(collection, iteratee);
-    return flattenDepth.flattenDepth(mapped, 1);
-}
-
-exports.flatMap = flatMap;
Index: de_modules/es-toolkit/dist/compat/array/flatMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { flattenDepth } from './flattenDepth.mjs';
-import { map } from './map.mjs';
-import { isNil } from '../../predicate/isNil.mjs';
-
-function flatMap(collection, iteratee) {
-    if (isNil(collection)) {
-        return [];
-    }
-    const mapped = isNil(iteratee) ? map(collection) : map(collection, iteratee);
-    return flattenDepth(mapped, 1);
-}
-
-export { flatMap };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T
- * @param {Record<string, RecursiveArray<T> | T> | Record<number, RecursiveArray<T> | T> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new deeply flattened array.
- *
- * @example
- * const obj = { a: [[1, 2]], b: [[[3]]] };
- * flatMapDeep(obj);
- * // => [1, 2, 3]
- */
-declare function flatMapDeep<T>(collection: Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new deeply flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [[[n, n]]];
- * }
- *
- * flatMapDeep([1, 2], duplicate);
- * // => [1, 1, 2, 2]
- */
-declare function flatMapDeep<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, ListOfRecursiveArraysOrValues<R> | R>): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new deeply flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMapDeep(obj, (value, key) => [[[key, value]]]);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMapDeep<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, ListOfRecursiveArraysOrValues<R> | R>): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @returns {any[]} Returns the new deeply flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: [['hiking', 'coding']] },
- *   { user: 'fred', hobbies: [['reading']] }
- * ];
- * flatMapDeep(users, 'hobbies');
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMapDeep(collection: object | null | undefined, iteratee: string): any[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @returns {boolean[]} Returns the new deeply flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: [true, false] },
- *   { user: 'fred', active: [false] }
- * ];
- * flatMapDeep(users, { active: [false] });
- * // => [false]
- */
-declare function flatMapDeep(collection: object | null | undefined, iteratee: object): boolean[];
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.js';
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T
- * @param {Record<string, RecursiveArray<T> | T> | Record<number, RecursiveArray<T> | T> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new deeply flattened array.
- *
- * @example
- * const obj = { a: [[1, 2]], b: [[[3]]] };
- * flatMapDeep(obj);
- * // => [1, 2, 3]
- */
-declare function flatMapDeep<T>(collection: Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new deeply flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [[[n, n]]];
- * }
- *
- * flatMapDeep([1, 2], duplicate);
- * // => [1, 1, 2, 2]
- */
-declare function flatMapDeep<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, ListOfRecursiveArraysOrValues<R> | R>): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @returns {R[]} Returns the new deeply flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMapDeep(obj, (value, key) => [[[key, value]]]);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMapDeep<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, ListOfRecursiveArraysOrValues<R> | R>): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @returns {any[]} Returns the new deeply flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: [['hiking', 'coding']] },
- *   { user: 'fred', hobbies: [['reading']] }
- * ];
- * flatMapDeep(users, 'hobbies');
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMapDeep(collection: object | null | undefined, iteratee: string): any[];
-/**
- * Creates a flattened array of values by running each element through iteratee and recursively flattening the mapped results.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @returns {boolean[]} Returns the new deeply flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: [true, false] },
- *   { user: 'fred', active: [false] }
- * ];
- * flatMapDeep(users, { active: [false] });
- * // => [false]
- */
-declare function flatMapDeep(collection: object | null | undefined, iteratee: object): boolean[];
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDeep.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatMapDepth = require('./flatMapDepth.js');
-
-function flatMapDeep(collection, iteratee) {
-    return flatMapDepth.flatMapDepth(collection, iteratee, Infinity);
-}
-
-exports.flatMapDeep = flatMapDeep;
Index: de_modules/es-toolkit/dist/compat/array/flatMapDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flatMapDepth } from './flatMapDepth.mjs';
-
-function flatMapDeep(collection, iteratee) {
-    return flatMapDepth(collection, iteratee, Infinity);
-}
-
-export { flatMapDeep };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDepth.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDepth.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T
- * @param {Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: [[1, 2]], b: [[[3]]] };
- * flatMapDepth(obj);
- * // => [1, 2, [3]]
- */
-declare function flatMapDepth<T>(collection: Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [[n, n]];
- * }
- *
- * flatMapDepth([1, 2], duplicate, 2);
- * // => [1, 1, 2, 2]
- */
-declare function flatMapDepth<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, ListOfRecursiveArraysOrValues<R> | R>, depth?: number): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMapDepth(obj, (value, key) => [[key, value]], 2);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMapDepth<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, ListOfRecursiveArraysOrValues<R> | R>, depth?: number): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: [['hiking'], ['coding']] },
- *   { user: 'fred', hobbies: [['reading']] }
- * ];
- * flatMapDepth(users, 'hobbies', 2);
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMapDepth(collection: object | null | undefined, iteratee: string, depth?: number): any[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {boolean[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: [[true], [false]] },
- *   { user: 'fred', active: [[false]] }
- * ];
- * flatMapDepth(users, { active: [[false]] });
- * // => [false]
- */
-declare function flatMapDepth(collection: object | null | undefined, iteratee: object, depth?: number): boolean[];
-
-export { flatMapDepth };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDepth.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDepth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-import { ListIterator } from '../_internal/ListIterator.js';
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T
- * @param {Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined} collection - The collection to iterate over.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: [[1, 2]], b: [[[3]]] };
- * flatMapDepth(obj);
- * // => [1, 2, [3]]
- */
-declare function flatMapDepth<T>(collection: Record<string, ListOfRecursiveArraysOrValues<T> | T> | Record<number, ListOfRecursiveArraysOrValues<T> | T> | null | undefined): T[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T, R
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * function duplicate(n) {
- *   return [[n, n]];
- * }
- *
- * flatMapDepth([1, 2], duplicate, 2);
- * // => [1, 1, 2, 2]
- */
-declare function flatMapDepth<T, R>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, ListOfRecursiveArraysOrValues<R> | R>, depth?: number): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @template T, R
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, RecursiveArray<R> | R>} iteratee - The function invoked per iteration.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {R[]} Returns the new flattened array.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * flatMapDepth(obj, (value, key) => [[key, value]], 2);
- * // => ['a', 1, 'b', 2]
- */
-declare function flatMapDepth<T extends object, R>(collection: T | null | undefined, iteratee: ObjectIterator<T, ListOfRecursiveArraysOrValues<R> | R>, depth?: number): R[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} iteratee - The property name to use as iteratee.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', hobbies: [['hiking'], ['coding']] },
- *   { user: 'fred', hobbies: [['reading']] }
- * ];
- * flatMapDepth(users, 'hobbies', 2);
- * // => ['hiking', 'coding', 'reading']
- */
-declare function flatMapDepth(collection: object | null | undefined, iteratee: string, depth?: number): any[];
-/**
- * Creates a flattened array of values by running each element through iteratee and flattening the mapped results up to depth times.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {object} iteratee - The object properties to match.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {boolean[]} Returns the new flattened array.
- *
- * @example
- * const users = [
- *   { user: 'barney', active: [[true], [false]] },
- *   { user: 'fred', active: [[false]] }
- * ];
- * flatMapDepth(users, { active: [[false]] });
- * // => [false]
- */
-declare function flatMapDepth(collection: object | null | undefined, iteratee: object, depth?: number): boolean[];
-
-export { flatMapDepth };
Index: de_modules/es-toolkit/dist/compat/array/flatMapDepth.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDepth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('./flatten.js');
-const map = require('./map.js');
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function flatMapDepth(collection, iteratee$1 = identity.identity, depth = 1) {
-    if (collection == null) {
-        return [];
-    }
-    const iterateeFn = iteratee.iteratee(iteratee$1);
-    const mapped = map.map(collection, iterateeFn);
-    return flatten.flatten(mapped, depth);
-}
-
-exports.flatMapDepth = flatMapDepth;
Index: de_modules/es-toolkit/dist/compat/array/flatMapDepth.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatMapDepth.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { flatten } from './flatten.mjs';
-import { map } from './map.mjs';
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function flatMapDepth(collection, iteratee$1 = identity, depth = 1) {
-    if (collection == null) {
-        return [];
-    }
-    const iterateeFn = iteratee(iteratee$1);
-    const mapped = map(collection, iterateeFn);
-    return flatten(mapped, depth);
-}
-
-export { flatMapDepth };
Index: de_modules/es-toolkit/dist/compat/array/flatten.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatten.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Flattens array up to depth times.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} value - The array to flatten.
- * @param {number} depth - The maximum recursion depth.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * flatten([1, [2, [3, [4]], 5]], 2);
- * // => [1, 2, 3, [4], 5]
- */
-declare function flatten<T>(value: ArrayLike<T | readonly T[]> | null | undefined): T[];
-
-export { flatten };
Index: de_modules/es-toolkit/dist/compat/array/flatten.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatten.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Flattens array up to depth times.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} value - The array to flatten.
- * @param {number} depth - The maximum recursion depth.
- * @returns {any[]} Returns the new flattened array.
- *
- * @example
- * flatten([1, [2, [3, [4]], 5]], 2);
- * // => [1, 2, 3, [4], 5]
- */
-declare function flatten<T>(value: ArrayLike<T | readonly T[]> | null | undefined): T[];
-
-export { flatten };
Index: de_modules/es-toolkit/dist/compat/array/flatten.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatten.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function flatten(value, depth = 1) {
-    const result = [];
-    const flooredDepth = Math.floor(depth);
-    if (!isArrayLike.isArrayLike(value)) {
-        return result;
-    }
-    const recursive = (arr, currentDepth) => {
-        for (let i = 0; i < arr.length; i++) {
-            const item = arr[i];
-            if (currentDepth < flooredDepth &&
-                (Array.isArray(item) ||
-                    Boolean(item?.[Symbol.isConcatSpreadable]) ||
-                    (item !== null && typeof item === 'object' && Object.prototype.toString.call(item) === '[object Arguments]'))) {
-                if (Array.isArray(item)) {
-                    recursive(item, currentDepth + 1);
-                }
-                else {
-                    recursive(Array.from(item), currentDepth + 1);
-                }
-            }
-            else {
-                result.push(item);
-            }
-        }
-    };
-    recursive(Array.from(value), 0);
-    return result;
-}
-
-exports.flatten = flatten;
Index: de_modules/es-toolkit/dist/compat/array/flatten.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flatten.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function flatten(value, depth = 1) {
-    const result = [];
-    const flooredDepth = Math.floor(depth);
-    if (!isArrayLike(value)) {
-        return result;
-    }
-    const recursive = (arr, currentDepth) => {
-        for (let i = 0; i < arr.length; i++) {
-            const item = arr[i];
-            if (currentDepth < flooredDepth &&
-                (Array.isArray(item) ||
-                    Boolean(item?.[Symbol.isConcatSpreadable]) ||
-                    (item !== null && typeof item === 'object' && Object.prototype.toString.call(item) === '[object Arguments]'))) {
-                if (Array.isArray(item)) {
-                    recursive(item, currentDepth + 1);
-                }
-                else {
-                    recursive(Array.from(item), currentDepth + 1);
-                }
-            }
-            else {
-                result.push(item);
-            }
-        }
-    };
-    recursive(Array.from(value), 0);
-    return result;
-}
-
-export { flatten };
Index: de_modules/es-toolkit/dist/compat/array/flattenDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.mjs';
-
-/**
- * Recursively flattens array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to flatten.
- * @returns {Array<ExtractNestedArrayType<T>>} Returns the new flattened array.
- *
- * @example
- * flattenDeep([1, [2, [3, [4]], 5]]);
- * // => [1, 2, 3, 4, 5]
- */
-declare function flattenDeep<T>(value: ListOfRecursiveArraysOrValues<T> | null | undefined): Array<T extends string ? T : T extends ArrayLike<any> ? never : T>;
-
-export { flattenDeep };
Index: de_modules/es-toolkit/dist/compat/array/flattenDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.js';
-
-/**
- * Recursively flattens array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to flatten.
- * @returns {Array<ExtractNestedArrayType<T>>} Returns the new flattened array.
- *
- * @example
- * flattenDeep([1, [2, [3, [4]], 5]]);
- * // => [1, 2, 3, 4, 5]
- */
-declare function flattenDeep<T>(value: ListOfRecursiveArraysOrValues<T> | null | undefined): Array<T extends string ? T : T extends ArrayLike<any> ? never : T>;
-
-export { flattenDeep };
Index: de_modules/es-toolkit/dist/compat/array/flattenDeep.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flattenDepth = require('./flattenDepth.js');
-
-function flattenDeep(value) {
-    return flattenDepth.flattenDepth(value, Infinity);
-}
-
-exports.flattenDeep = flattenDeep;
Index: de_modules/es-toolkit/dist/compat/array/flattenDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flattenDepth } from './flattenDepth.mjs';
-
-function flattenDeep(value) {
-    return flattenDepth(value, Infinity);
-}
-
-export { flattenDeep };
Index: de_modules/es-toolkit/dist/compat/array/flattenDepth.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDepth.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.mjs';
-
-/**
- * Recursively flattens array up to depth times.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to flatten.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const array = [1, [2, [3, [4]], 5]];
- *
- * flattenDepth(array, 1);
- * // => [1, 2, [3, [4]], 5]
- *
- * flattenDepth(array, 2);
- * // => [1, 2, 3, [4], 5]
- */
-declare function flattenDepth<T>(array: ListOfRecursiveArraysOrValues<T> | null | undefined, depth?: number): T[];
-
-export { flattenDepth };
Index: de_modules/es-toolkit/dist/compat/array/flattenDepth.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDepth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { ListOfRecursiveArraysOrValues } from '../_internal/ListOfRecursiveArraysOrValues.js';
-
-/**
- * Recursively flattens array up to depth times.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to flatten.
- * @param {number} [depth=1] - The maximum recursion depth.
- * @returns {T[]} Returns the new flattened array.
- *
- * @example
- * const array = [1, [2, [3, [4]], 5]];
- *
- * flattenDepth(array, 1);
- * // => [1, 2, [3, [4]], 5]
- *
- * flattenDepth(array, 2);
- * // => [1, 2, 3, [4], 5]
- */
-declare function flattenDepth<T>(array: ListOfRecursiveArraysOrValues<T> | null | undefined, depth?: number): T[];
-
-export { flattenDepth };
Index: de_modules/es-toolkit/dist/compat/array/flattenDepth.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDepth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('./flatten.js');
-
-function flattenDepth(array, depth = 1) {
-    return flatten.flatten(array, depth);
-}
-
-exports.flattenDepth = flattenDepth;
Index: de_modules/es-toolkit/dist/compat/array/flattenDepth.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/flattenDepth.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flatten } from './flatten.mjs';
-
-function flattenDepth(array, depth = 1) {
-    return flatten(array, depth);
-}
-
-export { flattenDepth };
Index: de_modules/es-toolkit/dist/compat/array/forEach.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEach.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.mjs';
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-import { StringIterator } from '../_internal/StringIterator.mjs';
-
-/**
- * Iterates over elements of array and invokes iteratee for each element.
- *
- * @template T
- * @param {T[]} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T[]} Returns array.
- *
- * @example
- * forEach([1, 2], value => console.log(value));
- * // => Logs `1` then `2`.
- */
-declare function forEach<T>(collection: T[], iteratee?: ArrayIterator<T, any>): T[];
-/**
- * Iterates over characters of string and invokes iteratee for each character.
- *
- * @param {string} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {string} Returns string.
- *
- * @example
- * forEach('abc', char => console.log(char));
- * // => Logs 'a', 'b', then 'c'.
- */
-declare function forEach(collection: string, iteratee?: StringIterator<any>): string;
-/**
- * Iterates over elements of collection and invokes iteratee for each element.
- *
- * @template T
- * @param {ArrayLike<T>} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {ArrayLike<T>} Returns collection.
- *
- * @example
- * forEach({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T>(collection: ArrayLike<T>, iteratee?: ListIterator<T, any>): ArrayLike<T>;
-/**
- * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.
- *
- * @template T
- * @param {T} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns object.
- *
- * @example
- * forEach({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T extends object>(collection: T, iteratee?: ObjectIterator<T, any>): T;
-/**
- * Iterates over elements of array and invokes iteratee for each element.
- *
- * @template T, U
- * @param {U & (T[] | null | undefined)} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {U} Returns the array.
- *
- * @example
- * forEach([1, 2], value => console.log(value));
- * // => Logs `1` then `2`.
- */
-declare function forEach<T, U extends T[] | null | undefined>(collection: U & (T[] | null | undefined), iteratee?: ArrayIterator<T, any>): U;
-/**
- * Iterates over characters of string and invokes iteratee for each character.
- *
- * @template T
- * @param {T} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns the string.
- *
- * @example
- * forEach('abc', char => console.log(char));
- * // => Logs 'a', 'b', then 'c'.
- */
-declare function forEach<T extends string | null | undefined>(collection: T, iteratee?: StringIterator<any>): T;
-/**
- * Iterates over elements of collection and invokes iteratee for each element.
- *
- * @template T, L
- * @param {L & (ArrayLike<T> | null | undefined)} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {L} Returns the collection.
- *
- * @example
- * forEach({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T, L extends ArrayLike<T> | null | undefined>(collection: L & (ArrayLike<T> | null | undefined), iteratee?: ListIterator<T, any>): L;
-/**
- * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T | null | undefined} Returns the object.
- *
- * @example
- * forEach({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T extends object>(collection: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
-
-export { forEach };
Index: de_modules/es-toolkit/dist/compat/array/forEach.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEach.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.js';
-import { ListIterator } from '../_internal/ListIterator.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-import { StringIterator } from '../_internal/StringIterator.js';
-
-/**
- * Iterates over elements of array and invokes iteratee for each element.
- *
- * @template T
- * @param {T[]} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T[]} Returns array.
- *
- * @example
- * forEach([1, 2], value => console.log(value));
- * // => Logs `1` then `2`.
- */
-declare function forEach<T>(collection: T[], iteratee?: ArrayIterator<T, any>): T[];
-/**
- * Iterates over characters of string and invokes iteratee for each character.
- *
- * @param {string} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {string} Returns string.
- *
- * @example
- * forEach('abc', char => console.log(char));
- * // => Logs 'a', 'b', then 'c'.
- */
-declare function forEach(collection: string, iteratee?: StringIterator<any>): string;
-/**
- * Iterates over elements of collection and invokes iteratee for each element.
- *
- * @template T
- * @param {ArrayLike<T>} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {ArrayLike<T>} Returns collection.
- *
- * @example
- * forEach({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T>(collection: ArrayLike<T>, iteratee?: ListIterator<T, any>): ArrayLike<T>;
-/**
- * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.
- *
- * @template T
- * @param {T} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns object.
- *
- * @example
- * forEach({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T extends object>(collection: T, iteratee?: ObjectIterator<T, any>): T;
-/**
- * Iterates over elements of array and invokes iteratee for each element.
- *
- * @template T, U
- * @param {U & (T[] | null | undefined)} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {U} Returns the array.
- *
- * @example
- * forEach([1, 2], value => console.log(value));
- * // => Logs `1` then `2`.
- */
-declare function forEach<T, U extends T[] | null | undefined>(collection: U & (T[] | null | undefined), iteratee?: ArrayIterator<T, any>): U;
-/**
- * Iterates over characters of string and invokes iteratee for each character.
- *
- * @template T
- * @param {T} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns the string.
- *
- * @example
- * forEach('abc', char => console.log(char));
- * // => Logs 'a', 'b', then 'c'.
- */
-declare function forEach<T extends string | null | undefined>(collection: T, iteratee?: StringIterator<any>): T;
-/**
- * Iterates over elements of collection and invokes iteratee for each element.
- *
- * @template T, L
- * @param {L & (ArrayLike<T> | null | undefined)} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {L} Returns the collection.
- *
- * @example
- * forEach({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T, L extends ArrayLike<T> | null | undefined>(collection: L & (ArrayLike<T> | null | undefined), iteratee?: ListIterator<T, any>): L;
-/**
- * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T | null | undefined} Returns the object.
- *
- * @example
- * forEach({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'a' then 'b'.
- */
-declare function forEach<T extends object>(collection: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
-
-export { forEach };
Index: de_modules/es-toolkit/dist/compat/array/forEach.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEach.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const range = require('../../math/range.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function forEach(collection, callback = identity.identity) {
-    if (!collection) {
-        return collection;
-    }
-    const keys = isArrayLike.isArrayLike(collection) || Array.isArray(collection) ? range.range(0, collection.length) : Object.keys(collection);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        const result = callback(value, key, collection);
-        if (result === false) {
-            break;
-        }
-    }
-    return collection;
-}
-
-exports.forEach = forEach;
Index: de_modules/es-toolkit/dist/compat/array/forEach.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEach.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { range } from '../../math/range.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function forEach(collection, callback = identity) {
-    if (!collection) {
-        return collection;
-    }
-    const keys = isArrayLike(collection) || Array.isArray(collection) ? range(0, collection.length) : Object.keys(collection);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        const result = callback(value, key, collection);
-        if (result === false) {
-            break;
-        }
-    }
-    return collection;
-}
-
-export { forEach };
Index: de_modules/es-toolkit/dist/compat/array/forEachRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEachRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.mjs';
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-import { StringIterator } from '../_internal/StringIterator.mjs';
-
-/**
- * Iterates over elements of array from right to left and invokes iteratee for each element.
- *
- * @template T
- * @param {T[]} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T[]} Returns array.
- *
- * @example
- * forEachRight([1, 2], value => console.log(value));
- * // => Logs `2` then `1`.
- */
-declare function forEachRight<T>(collection: T[], iteratee?: ArrayIterator<T, any>): T[];
-/**
- * Iterates over characters of string from right to left and invokes iteratee for each character.
- *
- * @param {string} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {string} Returns string.
- *
- * @example
- * forEachRight('abc', char => console.log(char));
- * // => Logs 'c', 'b', then 'a'.
- */
-declare function forEachRight(collection: string, iteratee?: StringIterator<any>): string;
-/**
- * Iterates over elements of collection from right to left and invokes iteratee for each element.
- *
- * @template T
- * @param {ArrayLike<T>} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {ArrayLike<T>} Returns collection.
- *
- * @example
- * forEachRight({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T>(collection: ArrayLike<T>, iteratee?: ListIterator<T, any>): ArrayLike<T>;
-/**
- * Iterates over own enumerable string keyed properties of an object from right to left and invokes iteratee for each property.
- *
- * @template T
- * @param {T} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns object.
- *
- * @example
- * forEachRight({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T extends object>(collection: T, iteratee?: ObjectIterator<T, any>): T;
-/**
- * Iterates over elements of array from right to left and invokes iteratee for each element.
- *
- * @template T, U
- * @param {U & (T[] | null | undefined)} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {U} Returns the array.
- *
- * @example
- * forEachRight([1, 2], value => console.log(value));
- * // => Logs `2` then `1`.
- */
-declare function forEachRight<T, U extends T[] | null | undefined>(collection: U & (T[] | null | undefined), iteratee?: ArrayIterator<T, any>): U;
-/**
- * Iterates over characters of string from right to left and invokes iteratee for each character.
- *
- * @template T
- * @param {T} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns the string.
- *
- * @example
- * forEachRight('abc', char => console.log(char));
- * // => Logs 'c', 'b', then 'a'.
- */
-declare function forEachRight<T extends string | null | undefined>(collection: T, iteratee?: StringIterator<any>): T;
-/**
- * Iterates over elements of collection from right to left and invokes iteratee for each element.
- *
- * @template T, L
- * @param {L & (ArrayLike<T> | null | undefined)} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {L} Returns the collection.
- *
- * @example
- * forEachRight({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T, L extends ArrayLike<T> | null | undefined>(collection: L & (ArrayLike<T> | null | undefined), iteratee?: ListIterator<T, any>): L;
-/**
- * Iterates over own enumerable string keyed properties of an object from right to left and invokes iteratee for each property.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T | null | undefined} Returns the object.
- *
- * @example
- * forEachRight({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T extends object>(collection: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/compat/array/forEachRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEachRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.js';
-import { ListIterator } from '../_internal/ListIterator.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-import { StringIterator } from '../_internal/StringIterator.js';
-
-/**
- * Iterates over elements of array from right to left and invokes iteratee for each element.
- *
- * @template T
- * @param {T[]} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T[]} Returns array.
- *
- * @example
- * forEachRight([1, 2], value => console.log(value));
- * // => Logs `2` then `1`.
- */
-declare function forEachRight<T>(collection: T[], iteratee?: ArrayIterator<T, any>): T[];
-/**
- * Iterates over characters of string from right to left and invokes iteratee for each character.
- *
- * @param {string} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {string} Returns string.
- *
- * @example
- * forEachRight('abc', char => console.log(char));
- * // => Logs 'c', 'b', then 'a'.
- */
-declare function forEachRight(collection: string, iteratee?: StringIterator<any>): string;
-/**
- * Iterates over elements of collection from right to left and invokes iteratee for each element.
- *
- * @template T
- * @param {ArrayLike<T>} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {ArrayLike<T>} Returns collection.
- *
- * @example
- * forEachRight({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T>(collection: ArrayLike<T>, iteratee?: ListIterator<T, any>): ArrayLike<T>;
-/**
- * Iterates over own enumerable string keyed properties of an object from right to left and invokes iteratee for each property.
- *
- * @template T
- * @param {T} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns object.
- *
- * @example
- * forEachRight({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T extends object>(collection: T, iteratee?: ObjectIterator<T, any>): T;
-/**
- * Iterates over elements of array from right to left and invokes iteratee for each element.
- *
- * @template T, U
- * @param {U & (T[] | null | undefined)} collection - The array to iterate over.
- * @param {ArrayIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {U} Returns the array.
- *
- * @example
- * forEachRight([1, 2], value => console.log(value));
- * // => Logs `2` then `1`.
- */
-declare function forEachRight<T, U extends T[] | null | undefined>(collection: U & (T[] | null | undefined), iteratee?: ArrayIterator<T, any>): U;
-/**
- * Iterates over characters of string from right to left and invokes iteratee for each character.
- *
- * @template T
- * @param {T} collection - The string to iterate over.
- * @param {StringIterator<any>} [iteratee] - The function invoked per iteration.
- * @returns {T} Returns the string.
- *
- * @example
- * forEachRight('abc', char => console.log(char));
- * // => Logs 'c', 'b', then 'a'.
- */
-declare function forEachRight<T extends string | null | undefined>(collection: T, iteratee?: StringIterator<any>): T;
-/**
- * Iterates over elements of collection from right to left and invokes iteratee for each element.
- *
- * @template T, L
- * @param {L & (ArrayLike<T> | null | undefined)} collection - The collection to iterate over.
- * @param {ListIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {L} Returns the collection.
- *
- * @example
- * forEachRight({ 0: 'a', 1: 'b', length: 2 }, value => console.log(value));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T, L extends ArrayLike<T> | null | undefined>(collection: L & (ArrayLike<T> | null | undefined), iteratee?: ListIterator<T, any>): L;
-/**
- * Iterates over own enumerable string keyed properties of an object from right to left and invokes iteratee for each property.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterator<T, any>} [iteratee] - The function invoked per iteration.
- * @returns {T | null | undefined} Returns the object.
- *
- * @example
- * forEachRight({ a: 1, b: 2 }, (value, key) => console.log(key));
- * // => Logs 'b' then 'a'.
- */
-declare function forEachRight<T extends object>(collection: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/compat/array/forEachRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEachRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const range = require('../../math/range.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function forEachRight(collection, callback = identity.identity) {
-    if (!collection) {
-        return collection;
-    }
-    const keys = isArrayLike.isArrayLike(collection) ? range.range(0, collection.length) : Object.keys(collection);
-    for (let i = keys.length - 1; i >= 0; i--) {
-        const key = keys[i];
-        const value = collection[key];
-        const result = callback(value, key, collection);
-        if (result === false) {
-            break;
-        }
-    }
-    return collection;
-}
-
-exports.forEachRight = forEachRight;
Index: de_modules/es-toolkit/dist/compat/array/forEachRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/forEachRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { range } from '../../math/range.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function forEachRight(collection, callback = identity) {
-    if (!collection) {
-        return collection;
-    }
-    const keys = isArrayLike(collection) ? range(0, collection.length) : Object.keys(collection);
-    for (let i = keys.length - 1; i >= 0; i--) {
-        const key = keys[i];
-        const value = collection[key];
-        const result = callback(value, key, collection);
-        if (result === false) {
-            break;
-        }
-    }
-    return collection;
-}
-
-export { forEachRight };
Index: de_modules/es-toolkit/dist/compat/array/groupBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/groupBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through iteratee.
- * The order of grouped values is determined by the order they occur in collection.
- *
- * @template T - The type of elements in the array-like collection
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over
- * @param {ValueIteratee<T>} [iteratee=identity] - The iteratee to transform keys
- * @returns {Record<string, T[]>} Returns the composed aggregate object
- *
- * @example
- * groupBy([6.1, 4.2, 6.3], Math.floor)
- * // => { '4': [4.2], '6': [6.1, 6.3] }
- *
- * groupBy(['one', 'two', 'three'], 'length')
- * // => { '3': ['one', 'two'], '5': ['three'] }
- */
-declare function groupBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): Record<string, T[]>;
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through iteratee.
- * The order of grouped values is determined by the order they occur in collection.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ValueIteratee<T[keyof T]>} [iteratee=identity] - The iteratee to transform keys
- * @returns {Record<string, Array<T[keyof T]>>} Returns the composed aggregate object
- *
- * @example
- * groupBy({ a: 6.1, b: 4.2, c: 6.3 }, Math.floor)
- * // => { '4': [4.2], '6': [6.1, 6.3] }
- */
-declare function groupBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIteratee<T[keyof T]>): Record<string, Array<T[keyof T]>>;
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/compat/array/groupBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/groupBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through iteratee.
- * The order of grouped values is determined by the order they occur in collection.
- *
- * @template T - The type of elements in the array-like collection
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over
- * @param {ValueIteratee<T>} [iteratee=identity] - The iteratee to transform keys
- * @returns {Record<string, T[]>} Returns the composed aggregate object
- *
- * @example
- * groupBy([6.1, 4.2, 6.3], Math.floor)
- * // => { '4': [4.2], '6': [6.1, 6.3] }
- *
- * groupBy(['one', 'two', 'three'], 'length')
- * // => { '3': ['one', 'two'], '5': ['three'] }
- */
-declare function groupBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): Record<string, T[]>;
-/**
- * Creates an object composed of keys generated from the results of running each element of collection through iteratee.
- * The order of grouped values is determined by the order they occur in collection.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ValueIteratee<T[keyof T]>} [iteratee=identity] - The iteratee to transform keys
- * @returns {Record<string, Array<T[keyof T]>>} Returns the composed aggregate object
- *
- * @example
- * groupBy({ a: 6.1, b: 4.2, c: 6.3 }, Math.floor)
- * // => { '4': [4.2], '6': [6.1, 6.3] }
- */
-declare function groupBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIteratee<T[keyof T]>): Record<string, Array<T[keyof T]>>;
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/compat/array/groupBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/groupBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const groupBy$1 = require('../../array/groupBy.js');
-const identity = require('../../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function groupBy(source, _getKeyFromItem) {
-    if (source == null) {
-        return {};
-    }
-    const items = isArrayLike.isArrayLike(source) ? Array.from(source) : Object.values(source);
-    const getKeyFromItem = iteratee.iteratee(_getKeyFromItem ?? identity.identity);
-    return groupBy$1.groupBy(items, getKeyFromItem);
-}
-
-exports.groupBy = groupBy;
Index: de_modules/es-toolkit/dist/compat/array/groupBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/groupBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { groupBy as groupBy$1 } from '../../array/groupBy.mjs';
-import { identity } from '../../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function groupBy(source, _getKeyFromItem) {
-    if (source == null) {
-        return {};
-    }
-    const items = isArrayLike(source) ? Array.from(source) : Object.values(source);
-    const getKeyFromItem = iteratee(_getKeyFromItem ?? identity);
-    return groupBy$1(items, getKeyFromItem);
-}
-
-export { groupBy };
Index: de_modules/es-toolkit/dist/compat/array/head.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/head.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * @template T - The type of elements in the array.
- * @param {readonly [T, ...unknown[]]} array - A non-empty tuple with at least one element.
- * @returns {T} The first element of the array.
- *
- * @example
- * const arr = [1, 2, 3] as const;
- * const first = head(arr);
- * // first will be 1
- */
-declare function head<T>(array: readonly [T, ...unknown[]]): T;
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array from which to get the first element.
- * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty/null/undefined.
- *
- * @example
- * const arr = [1, 2, 3];
- * const first = head(arr);
- * // first will be 1
- *
- * const emptyArr: number[] = [];
- * const noElement = head(emptyArr);
- * // noElement will be undefined
- */
-declare function head<T>(array: ArrayLike<T> | null | undefined): T | undefined;
-
-export { head };
Index: de_modules/es-toolkit/dist/compat/array/head.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/head.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * @template T - The type of elements in the array.
- * @param {readonly [T, ...unknown[]]} array - A non-empty tuple with at least one element.
- * @returns {T} The first element of the array.
- *
- * @example
- * const arr = [1, 2, 3] as const;
- * const first = head(arr);
- * // first will be 1
- */
-declare function head<T>(array: readonly [T, ...unknown[]]): T;
-/**
- * Returns the first element of an array or `undefined` if the array is empty.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array from which to get the first element.
- * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty/null/undefined.
- *
- * @example
- * const arr = [1, 2, 3];
- * const first = head(arr);
- * // first will be 1
- *
- * const emptyArr: number[] = [];
- * const noElement = head(emptyArr);
- * // noElement will be undefined
- */
-declare function head<T>(array: ArrayLike<T> | null | undefined): T | undefined;
-
-export { head };
Index: de_modules/es-toolkit/dist/compat/array/head.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/head.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const head$1 = require('../../array/head.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function head(arr) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return undefined;
-    }
-    return head$1.head(toArray.toArray(arr));
-}
-
-exports.head = head;
Index: de_modules/es-toolkit/dist/compat/array/head.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/head.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { head as head$1 } from '../../array/head.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function head(arr) {
-    if (!isArrayLike(arr)) {
-        return undefined;
-    }
-    return head$1(toArray(arr));
-}
-
-export { head };
Index: de_modules/es-toolkit/dist/compat/array/includes.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/includes.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a specified value exists within a given array-like collection.
- *
- * The comparison uses SameValueZero to check for inclusion.
- *
- * @template T The type of elements in the collection
- * @param collection The array-like collection to search in
- * @param target The value to search for in the collection
- * @param [fromIndex=0] The index to start searching from. If negative, it is treated as an offset from the end
- * @returns `true` if the value is found in the collection, `false` otherwise
- *
- * @example
- * includes([1, 2, 3], 2); // true
- * includes([1, 2, 3], 4); // false
- * includes('hello', 'e'); // true
- * includes(null, 1); // false
- * includes([1, 2, 3], 2, 2); // false
- * includes([1, 2, 3], 2, -2); // true
- */
-declare function includes<T>(collection: Record<string, T> | Record<number, T> | null | undefined, target: T, fromIndex?: number): boolean;
-
-export { includes };
Index: de_modules/es-toolkit/dist/compat/array/includes.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/includes.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a specified value exists within a given array-like collection.
- *
- * The comparison uses SameValueZero to check for inclusion.
- *
- * @template T The type of elements in the collection
- * @param collection The array-like collection to search in
- * @param target The value to search for in the collection
- * @param [fromIndex=0] The index to start searching from. If negative, it is treated as an offset from the end
- * @returns `true` if the value is found in the collection, `false` otherwise
- *
- * @example
- * includes([1, 2, 3], 2); // true
- * includes([1, 2, 3], 4); // false
- * includes('hello', 'e'); // true
- * includes(null, 1); // false
- * includes([1, 2, 3], 2, 2); // false
- * includes([1, 2, 3], 2, -2); // true
- */
-declare function includes<T>(collection: Record<string, T> | Record<number, T> | null | undefined, target: T, fromIndex?: number): boolean;
-
-export { includes };
Index: de_modules/es-toolkit/dist/compat/array/includes.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/includes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isString = require('../predicate/isString.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-const toInteger = require('../util/toInteger.js');
-
-function includes(source, target, fromIndex, guard) {
-    if (source == null) {
-        return false;
-    }
-    if (guard || !fromIndex) {
-        fromIndex = 0;
-    }
-    else {
-        fromIndex = toInteger.toInteger(fromIndex);
-    }
-    if (isString.isString(source)) {
-        if (fromIndex > source.length || target instanceof RegExp) {
-            return false;
-        }
-        if (fromIndex < 0) {
-            fromIndex = Math.max(0, source.length + fromIndex);
-        }
-        return source.includes(target, fromIndex);
-    }
-    if (Array.isArray(source)) {
-        return source.includes(target, fromIndex);
-    }
-    const keys = Object.keys(source);
-    if (fromIndex < 0) {
-        fromIndex = Math.max(0, keys.length + fromIndex);
-    }
-    for (let i = fromIndex; i < keys.length; i++) {
-        const value = Reflect.get(source, keys[i]);
-        if (isEqualsSameValueZero.isEqualsSameValueZero(value, target)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-exports.includes = includes;
Index: de_modules/es-toolkit/dist/compat/array/includes.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/includes.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { isString } from '../predicate/isString.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function includes(source, target, fromIndex, guard) {
-    if (source == null) {
-        return false;
-    }
-    if (guard || !fromIndex) {
-        fromIndex = 0;
-    }
-    else {
-        fromIndex = toInteger(fromIndex);
-    }
-    if (isString(source)) {
-        if (fromIndex > source.length || target instanceof RegExp) {
-            return false;
-        }
-        if (fromIndex < 0) {
-            fromIndex = Math.max(0, source.length + fromIndex);
-        }
-        return source.includes(target, fromIndex);
-    }
-    if (Array.isArray(source)) {
-        return source.includes(target, fromIndex);
-    }
-    const keys = Object.keys(source);
-    if (fromIndex < 0) {
-        fromIndex = Math.max(0, keys.length + fromIndex);
-    }
-    for (let i = fromIndex; i < keys.length; i++) {
-        const value = Reflect.get(source, keys[i]);
-        if (isEqualsSameValueZero(value, target)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-export { includes };
Index: de_modules/es-toolkit/dist/compat/array/indexOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/indexOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Finds the index of the first occurrence of a value in an array.
- *
- * This method is similar to `Array.prototype.indexOf`, but it also finds `NaN` values.
- * It uses strict equality (`===`) to compare elements.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to search.
- * @param {T} searchElement - The value to search for.
- * @param {number} [fromIndex] - The index to start the search at.
- * @returns {number} The index (zero-based) of the first occurrence of the value in the array, or `-1` if the value is not found.
- *
- * @example
- * const array = [1, 2, 3, NaN];
- * indexOf(array, 3); // => 2
- * indexOf(array, NaN); // => 3
- */
-declare function indexOf<T>(array: ArrayLike<T> | null | undefined, searchElement: T, fromIndex?: number): number;
-
-export { indexOf };
Index: de_modules/es-toolkit/dist/compat/array/indexOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/indexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Finds the index of the first occurrence of a value in an array.
- *
- * This method is similar to `Array.prototype.indexOf`, but it also finds `NaN` values.
- * It uses strict equality (`===`) to compare elements.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to search.
- * @param {T} searchElement - The value to search for.
- * @param {number} [fromIndex] - The index to start the search at.
- * @returns {number} The index (zero-based) of the first occurrence of the value in the array, or `-1` if the value is not found.
- *
- * @example
- * const array = [1, 2, 3, NaN];
- * indexOf(array, 3); // => 2
- * indexOf(array, NaN); // => 3
- */
-declare function indexOf<T>(array: ArrayLike<T> | null | undefined, searchElement: T, fromIndex?: number): number;
-
-export { indexOf };
Index: de_modules/es-toolkit/dist/compat/array/indexOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/indexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function indexOf(array, searchElement, fromIndex) {
-    if (!isArrayLike.isArrayLike(array)) {
-        return -1;
-    }
-    if (Number.isNaN(searchElement)) {
-        fromIndex = fromIndex ?? 0;
-        if (fromIndex < 0) {
-            fromIndex = Math.max(0, array.length + fromIndex);
-        }
-        for (let i = fromIndex; i < array.length; i++) {
-            if (Number.isNaN(array[i])) {
-                return i;
-            }
-        }
-        return -1;
-    }
-    return Array.from(array).indexOf(searchElement, fromIndex);
-}
-
-exports.indexOf = indexOf;
Index: de_modules/es-toolkit/dist/compat/array/indexOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/indexOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function indexOf(array, searchElement, fromIndex) {
-    if (!isArrayLike(array)) {
-        return -1;
-    }
-    if (Number.isNaN(searchElement)) {
-        fromIndex = fromIndex ?? 0;
-        if (fromIndex < 0) {
-            fromIndex = Math.max(0, array.length + fromIndex);
-        }
-        for (let i = fromIndex; i < array.length; i++) {
-            if (Number.isNaN(array[i])) {
-                return i;
-            }
-        }
-        return -1;
-    }
-    return Array.from(array).indexOf(searchElement, fromIndex);
-}
-
-export { indexOf };
Index: de_modules/es-toolkit/dist/compat/array/initial.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/initial.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Returns a new array containing all elements except the last one from the input array.
- * If the input array is empty or has only one element, the function returns an empty array.
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The input array.
- * @returns {T[]} A new array containing all but the last element of the input array.
- *
- * @example
- * const arr = [1, 2, 3, 4];
- * const result = initial(arr);
- * // result will be [1, 2, 3]
- */
-declare function initial<T>(arr: ArrayLike<T> | null | undefined): T[];
-
-export { initial };
Index: de_modules/es-toolkit/dist/compat/array/initial.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/initial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Returns a new array containing all elements except the last one from the input array.
- * If the input array is empty or has only one element, the function returns an empty array.
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The input array.
- * @returns {T[]} A new array containing all but the last element of the input array.
- *
- * @example
- * const arr = [1, 2, 3, 4];
- * const result = initial(arr);
- * // result will be [1, 2, 3]
- */
-declare function initial<T>(arr: ArrayLike<T> | null | undefined): T[];
-
-export { initial };
Index: de_modules/es-toolkit/dist/compat/array/initial.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/initial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const initial$1 = require('../../array/initial.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function initial(arr) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return initial$1.initial(Array.from(arr));
-}
-
-exports.initial = initial;
Index: de_modules/es-toolkit/dist/compat/array/initial.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/initial.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { initial as initial$1 } from '../../array/initial.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function initial(arr) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return initial$1(Array.from(arr));
-}
-
-export { initial };
Index: de_modules/es-toolkit/dist/compat/array/intersection.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersection.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Returns the intersection of multiple arrays.
- *
- * This function takes multiple arrays and returns a new array containing the elements that are
- * present in all provided arrays. It effectively filters out any elements that are not found
- * in every array.
- *
- * @template T - The type of elements in the arrays.
- * @param {...(ArrayLike<T> | null | undefined)} arrays - The arrays to compare.
- * @returns {T[]} A new array containing the elements that are present in all arrays.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [3, 4, 5, 6, 7];
- * const result = intersection(array1, array2);
- * // result will be [3, 4, 5] since these elements are in both arrays.
- */
-declare function intersection<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { intersection };
Index: de_modules/es-toolkit/dist/compat/array/intersection.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersection.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Returns the intersection of multiple arrays.
- *
- * This function takes multiple arrays and returns a new array containing the elements that are
- * present in all provided arrays. It effectively filters out any elements that are not found
- * in every array.
- *
- * @template T - The type of elements in the arrays.
- * @param {...(ArrayLike<T> | null | undefined)} arrays - The arrays to compare.
- * @returns {T[]} A new array containing the elements that are present in all arrays.
- *
- * @example
- * const array1 = [1, 2, 3, 4, 5];
- * const array2 = [3, 4, 5, 6, 7];
- * const result = intersection(array1, array2);
- * // result will be [3, 4, 5] since these elements are in both arrays.
- */
-declare function intersection<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { intersection };
Index: de_modules/es-toolkit/dist/compat/array/intersection.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const intersection$1 = require('../../array/intersection.js');
-const uniq = require('../../array/uniq.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function intersection(...arrays) {
-    if (arrays.length === 0) {
-        return [];
-    }
-    if (!isArrayLikeObject.isArrayLikeObject(arrays[0])) {
-        return [];
-    }
-    let result = uniq.uniq(Array.from(arrays[0]));
-    for (let i = 1; i < arrays.length; i++) {
-        const array = arrays[i];
-        if (!isArrayLikeObject.isArrayLikeObject(array)) {
-            return [];
-        }
-        result = intersection$1.intersection(result, Array.from(array));
-    }
-    return result;
-}
-
-exports.intersection = intersection;
Index: de_modules/es-toolkit/dist/compat/array/intersection.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersection.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { intersection as intersection$1 } from '../../array/intersection.mjs';
-import { uniq } from '../../array/uniq.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function intersection(...arrays) {
-    if (arrays.length === 0) {
-        return [];
-    }
-    if (!isArrayLikeObject(arrays[0])) {
-        return [];
-    }
-    let result = uniq(Array.from(arrays[0]));
-    for (let i = 1; i < arrays.length; i++) {
-        const array = arrays[i];
-        if (!isArrayLikeObject(array)) {
-            return [];
-        }
-        result = intersection$1(result, Array.from(array));
-    }
-    return result;
-}
-
-export { intersection };
Index: de_modules/es-toolkit/dist/compat/array/intersectionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U
- * @param {ArrayLike<T> | null} array - The array to inspect.
- * @param {ArrayLike<U>} values - The values to compare.
- * @param {ValueIteratee<T | U>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U>(array: ArrayLike<T> | null, values: ArrayLike<U>, iteratee: ValueIteratee<T | U>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U, V
- * @param {ArrayLike<T> | null} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {ValueIteratee<T | U | V>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], [2.5], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U, V>(array: ArrayLike<T> | null, values1: ArrayLike<U>, values2: ArrayLike<V>, iteratee: ValueIteratee<T | U | V>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {...Array<ArrayLike<W> | ValueIteratee<T | U | V | W>>} values - The other arrays to compare, and the iteratee to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], [2.5], [2.6, 1.7], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U, V, W>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, ...values: Array<ArrayLike<W> | ValueIteratee<T | U | V | W>>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null} [array] - The array to inspect.
- * @param {...Array<ArrayLike<T>>} values - The values to compare.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2, 1], [2, 3]);
- * // => [2]
- */
-declare function intersectionBy<T>(array?: ArrayLike<T> | null, ...values: Array<ArrayLike<T>>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T
- * @param {...Array<ArrayLike<T> | ValueIteratee<T>>} values - The arrays to compare and the iteratee to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T>(...values: Array<ArrayLike<T> | ValueIteratee<T>>): T[];
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/compat/array/intersectionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U
- * @param {ArrayLike<T> | null} array - The array to inspect.
- * @param {ArrayLike<U>} values - The values to compare.
- * @param {ValueIteratee<T | U>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U>(array: ArrayLike<T> | null, values: ArrayLike<U>, iteratee: ValueIteratee<T | U>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U, V
- * @param {ArrayLike<T> | null} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {ValueIteratee<T | U | V>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], [2.5], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U, V>(array: ArrayLike<T> | null, values1: ArrayLike<U>, values2: ArrayLike<V>, iteratee: ValueIteratee<T | U | V>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {...Array<ArrayLike<W> | ValueIteratee<T | U | V | W>>} values - The other arrays to compare, and the iteratee to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], [2.5], [2.6, 1.7], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T, U, V, W>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, ...values: Array<ArrayLike<W> | ValueIteratee<T | U | V | W>>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null} [array] - The array to inspect.
- * @param {...Array<ArrayLike<T>>} values - The values to compare.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2, 1], [2, 3]);
- * // => [2]
- */
-declare function intersectionBy<T>(array?: ArrayLike<T> | null, ...values: Array<ArrayLike<T>>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using an iteratee to compute equality.
- *
- * @template T
- * @param {...Array<ArrayLike<T> | ValueIteratee<T>>} values - The arrays to compare and the iteratee to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
- * // => [2.1]
- */
-declare function intersectionBy<T>(...values: Array<ArrayLike<T> | ValueIteratee<T>>): T[];
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/compat/array/intersectionBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const intersectionBy$1 = require('../../array/intersectionBy.js');
-const last = require('../../array/last.js');
-const uniq = require('../../array/uniq.js');
-const identity = require('../../function/identity.js');
-const property = require('../object/property.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function intersectionBy(array, ...values) {
-    if (!isArrayLikeObject.isArrayLikeObject(array)) {
-        return [];
-    }
-    const lastValue = last.last(values);
-    if (lastValue === undefined) {
-        return Array.from(array);
-    }
-    let result = uniq.uniq(Array.from(array));
-    const count = isArrayLikeObject.isArrayLikeObject(lastValue) ? values.length : values.length - 1;
-    for (let i = 0; i < count; ++i) {
-        const value = values[i];
-        if (!isArrayLikeObject.isArrayLikeObject(value)) {
-            return [];
-        }
-        if (isArrayLikeObject.isArrayLikeObject(lastValue)) {
-            result = intersectionBy$1.intersectionBy(result, Array.from(value), identity.identity);
-        }
-        else if (typeof lastValue === 'function') {
-            result = intersectionBy$1.intersectionBy(result, Array.from(value), value => lastValue(value));
-        }
-        else if (typeof lastValue === 'string') {
-            result = intersectionBy$1.intersectionBy(result, Array.from(value), property.property(lastValue));
-        }
-    }
-    return result;
-}
-
-exports.intersectionBy = intersectionBy;
Index: de_modules/es-toolkit/dist/compat/array/intersectionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { intersectionBy as intersectionBy$1 } from '../../array/intersectionBy.mjs';
-import { last } from '../../array/last.mjs';
-import { uniq } from '../../array/uniq.mjs';
-import { identity } from '../../function/identity.mjs';
-import { property } from '../object/property.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function intersectionBy(array, ...values) {
-    if (!isArrayLikeObject(array)) {
-        return [];
-    }
-    const lastValue = last(values);
-    if (lastValue === undefined) {
-        return Array.from(array);
-    }
-    let result = uniq(Array.from(array));
-    const count = isArrayLikeObject(lastValue) ? values.length : values.length - 1;
-    for (let i = 0; i < count; ++i) {
-        const value = values[i];
-        if (!isArrayLikeObject(value)) {
-            return [];
-        }
-        if (isArrayLikeObject(lastValue)) {
-            result = intersectionBy$1(result, Array.from(value), identity);
-        }
-        else if (typeof lastValue === 'function') {
-            result = intersectionBy$1(result, Array.from(value), value => lastValue(value));
-        }
-        else if (typeof lastValue === 'string') {
-            result = intersectionBy$1(result, Array.from(value), property(lastValue));
-        }
-    }
-    return result;
-}
-
-export { intersectionBy };
Index: de_modules/es-toolkit/dist/compat/array/intersectionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values - The values to compare.
- * @param {(a: T, b: T | U) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * intersectionWith(objects, others, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U>(array: ArrayLike<T> | null | undefined, values: ArrayLike<U>, comparator: (a: T, b: T | U) => boolean): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U, V
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {(a: T, b: T | U | V) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others1 = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * const others2 = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }];
- * intersectionWith(objects, others1, others2, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U, V>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, comparator: (a: T, b: T | U | V) => boolean): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {...Array<ArrayLike<W> | (a: T, b: T | U | V | W) => boolean>} values - The other arrays to compare, and the comparator to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others1 = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * const others2 = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }];
- * const others3 = [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }];
- * intersectionWith(objects, others1, others2, others3, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U, V, W>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, ...values: Array<ArrayLike<W> | ((a: T, b: T | U | V | W) => boolean)>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null} [array] - The array to inspect.
- * @param {...Array<ArrayLike<T> | (a: T, b: never) => boolean>} values - The values to compare.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionWith([2, 1], [2, 3]);
- * // => [2]
- */
-declare function intersectionWith<T>(array?: ArrayLike<T> | null, ...values: Array<ArrayLike<T> | ((a: T, b: never) => boolean)>): T[];
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/compat/array/intersectionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values - The values to compare.
- * @param {(a: T, b: T | U) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * intersectionWith(objects, others, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U>(array: ArrayLike<T> | null | undefined, values: ArrayLike<U>, comparator: (a: T, b: T | U) => boolean): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U, V
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {(a: T, b: T | U | V) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others1 = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * const others2 = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }];
- * intersectionWith(objects, others1, others2, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U, V>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, comparator: (a: T, b: T | U | V) => boolean): T[];
-/**
- * Creates an array of unique values that are included in all given arrays, using a comparator function for equality comparisons.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ArrayLike<U>} values1 - The first values to compare.
- * @param {ArrayLike<V>} values2 - The second values to compare.
- * @param {...Array<ArrayLike<W> | (a: T, b: T | U | V | W) => boolean>} values - The other arrays to compare, and the comparator to use.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others1 = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * const others2 = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }];
- * const others3 = [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }];
- * intersectionWith(objects, others1, others2, others3, (a, b) => a.x === b.x && a.y === b.y);
- * // => [{ 'x': 1, 'y': 2 }]
- */
-declare function intersectionWith<T, U, V, W>(array: ArrayLike<T> | null | undefined, values1: ArrayLike<U>, values2: ArrayLike<V>, ...values: Array<ArrayLike<W> | ((a: T, b: T | U | V | W) => boolean)>): T[];
-/**
- * Creates an array of unique values that are included in all given arrays.
- *
- * @template T
- * @param {ArrayLike<T> | null} [array] - The array to inspect.
- * @param {...Array<ArrayLike<T> | (a: T, b: never) => boolean>} values - The values to compare.
- * @returns {T[]} Returns the new array of intersecting values.
- *
- * @example
- * intersectionWith([2, 1], [2, 3]);
- * // => [2]
- */
-declare function intersectionWith<T>(array?: ArrayLike<T> | null, ...values: Array<ArrayLike<T> | ((a: T, b: never) => boolean)>): T[];
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/compat/array/intersectionWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last = require('./last.js');
-const intersectionWith$1 = require('../../array/intersectionWith.js');
-const uniq = require('./uniq.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function intersectionWith(firstArr, ...otherArrs) {
-    if (firstArr == null) {
-        return [];
-    }
-    const _comparator = last.last(otherArrs);
-    let comparator = isEqualsSameValueZero.isEqualsSameValueZero;
-    let uniq$1 = uniq.uniq;
-    if (typeof _comparator === 'function') {
-        comparator = _comparator;
-        uniq$1 = uniqPreserve0;
-        otherArrs.pop();
-    }
-    let result = uniq$1(Array.from(firstArr));
-    for (let i = 0; i < otherArrs.length; ++i) {
-        const otherArr = otherArrs[i];
-        if (otherArr == null) {
-            return [];
-        }
-        result = intersectionWith$1.intersectionWith(result, Array.from(otherArr), comparator);
-    }
-    return result;
-}
-function uniqPreserve0(arr) {
-    const result = [];
-    const added = new Set();
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (added.has(item)) {
-            continue;
-        }
-        result.push(item);
-        added.add(item);
-    }
-    return result;
-}
-
-exports.intersectionWith = intersectionWith;
Index: de_modules/es-toolkit/dist/compat/array/intersectionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/intersectionWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { last } from './last.mjs';
-import { intersectionWith as intersectionWith$1 } from '../../array/intersectionWith.mjs';
-import { uniq } from './uniq.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function intersectionWith(firstArr, ...otherArrs) {
-    if (firstArr == null) {
-        return [];
-    }
-    const _comparator = last(otherArrs);
-    let comparator = isEqualsSameValueZero;
-    let uniq$1 = uniq;
-    if (typeof _comparator === 'function') {
-        comparator = _comparator;
-        uniq$1 = uniqPreserve0;
-        otherArrs.pop();
-    }
-    let result = uniq$1(Array.from(firstArr));
-    for (let i = 0; i < otherArrs.length; ++i) {
-        const otherArr = otherArrs[i];
-        if (otherArr == null) {
-            return [];
-        }
-        result = intersectionWith$1(result, Array.from(otherArr), comparator);
-    }
-    return result;
-}
-function uniqPreserve0(arr) {
-    const result = [];
-    const added = new Set();
-    for (let i = 0; i < arr.length; i++) {
-        const item = arr[i];
-        if (added.has(item)) {
-            continue;
-        }
-        result.push(item);
-        added.add(item);
-    }
-    return result;
-}
-
-export { intersectionWith };
Index: de_modules/es-toolkit/dist/compat/array/invokeMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/invokeMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Invokes the method at path of each element in collection.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} methodName - The name of the method to invoke.
- * @param {...any[]} args - The arguments to invoke each method with.
- * @returns {any[]} Returns the array of results.
- *
- * @example
- * invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
- * // => [[1, 5, 7], [1, 2, 3]]
- *
- * invokeMap([123, 456], 'toString', 2);
- * // => ['1111011', '111001000']
- */
-declare function invokeMap(collection: object | null | undefined, methodName: string, ...args: any[]): any[];
-/**
- * Invokes the method at path of each element in collection.
- *
- * @template R
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {(...args: any[]) => R} method - The method to invoke.
- * @param {...any[]} args - The arguments to invoke each method with.
- * @returns {R[]} Returns the array of results.
- *
- * @example
- * invokeMap([5, 1, 7], Array.prototype.slice, 1);
- * // => [[], [], []]
- */
-declare function invokeMap<R>(collection: object | null | undefined, method: (...args: any[]) => R, ...args: any[]): R[];
-
-export { invokeMap };
Index: de_modules/es-toolkit/dist/compat/array/invokeMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/invokeMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Invokes the method at path of each element in collection.
- *
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {string} methodName - The name of the method to invoke.
- * @param {...any[]} args - The arguments to invoke each method with.
- * @returns {any[]} Returns the array of results.
- *
- * @example
- * invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
- * // => [[1, 5, 7], [1, 2, 3]]
- *
- * invokeMap([123, 456], 'toString', 2);
- * // => ['1111011', '111001000']
- */
-declare function invokeMap(collection: object | null | undefined, methodName: string, ...args: any[]): any[];
-/**
- * Invokes the method at path of each element in collection.
- *
- * @template R
- * @param {object | null | undefined} collection - The collection to iterate over.
- * @param {(...args: any[]) => R} method - The method to invoke.
- * @param {...any[]} args - The arguments to invoke each method with.
- * @returns {R[]} Returns the array of results.
- *
- * @example
- * invokeMap([5, 1, 7], Array.prototype.slice, 1);
- * // => [[], [], []]
- */
-declare function invokeMap<R>(collection: object | null | undefined, method: (...args: any[]) => R, ...args: any[]): R[];
-
-export { invokeMap };
Index: de_modules/es-toolkit/dist/compat/array/invokeMap.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/invokeMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isFunction = require('../../predicate/isFunction.js');
-const isNil = require('../../predicate/isNil.js');
-const get = require('../object/get.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function invokeMap(collection, path, ...args) {
-    if (isNil.isNil(collection)) {
-        return [];
-    }
-    const values = isArrayLike.isArrayLike(collection) ? Array.from(collection) : Object.values(collection);
-    const result = [];
-    for (let i = 0; i < values.length; i++) {
-        const value = values[i];
-        if (isFunction.isFunction(path)) {
-            result.push(path.apply(value, args));
-            continue;
-        }
-        const method = get.get(value, path);
-        let thisContext = value;
-        if (Array.isArray(path)) {
-            const pathExceptLast = path.slice(0, -1);
-            if (pathExceptLast.length > 0) {
-                thisContext = get.get(value, pathExceptLast);
-            }
-        }
-        else if (typeof path === 'string' && path.includes('.')) {
-            const parts = path.split('.');
-            const pathExceptLast = parts.slice(0, -1).join('.');
-            thisContext = get.get(value, pathExceptLast);
-        }
-        result.push(method == null ? undefined : method.apply(thisContext, args));
-    }
-    return result;
-}
-
-exports.invokeMap = invokeMap;
Index: de_modules/es-toolkit/dist/compat/array/invokeMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/invokeMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { isFunction } from '../../predicate/isFunction.mjs';
-import { isNil } from '../../predicate/isNil.mjs';
-import { get } from '../object/get.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function invokeMap(collection, path, ...args) {
-    if (isNil(collection)) {
-        return [];
-    }
-    const values = isArrayLike(collection) ? Array.from(collection) : Object.values(collection);
-    const result = [];
-    for (let i = 0; i < values.length; i++) {
-        const value = values[i];
-        if (isFunction(path)) {
-            result.push(path.apply(value, args));
-            continue;
-        }
-        const method = get(value, path);
-        let thisContext = value;
-        if (Array.isArray(path)) {
-            const pathExceptLast = path.slice(0, -1);
-            if (pathExceptLast.length > 0) {
-                thisContext = get(value, pathExceptLast);
-            }
-        }
-        else if (typeof path === 'string' && path.includes('.')) {
-            const parts = path.split('.');
-            const pathExceptLast = parts.slice(0, -1).join('.');
-            thisContext = get(value, pathExceptLast);
-        }
-        result.push(method == null ? undefined : method.apply(thisContext, args));
-    }
-    return result;
-}
-
-export { invokeMap };
Index: de_modules/es-toolkit/dist/compat/array/join.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/join.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Joins elements of an array into a string.
- *
- * @param {ArrayLike<any> | null | undefined} array - The array to join.
- * @param {string} [separator=','] - The separator used to join the elements, default is common separator `,`.
- * @returns {string} - Returns a string containing all elements of the array joined by the specified separator.
- *
- * @example
- * const arr = ["a", "b", "c"];
- * const result = join(arr, "~");
- * console.log(result); // Output: "a~b~c"
- */
-declare function join(array: ArrayLike<any> | null | undefined, separator?: string): string;
-
-export { join };
Index: de_modules/es-toolkit/dist/compat/array/join.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/join.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Joins elements of an array into a string.
- *
- * @param {ArrayLike<any> | null | undefined} array - The array to join.
- * @param {string} [separator=','] - The separator used to join the elements, default is common separator `,`.
- * @returns {string} - Returns a string containing all elements of the array joined by the specified separator.
- *
- * @example
- * const arr = ["a", "b", "c"];
- * const result = join(arr, "~");
- * console.log(result); // Output: "a~b~c"
- */
-declare function join(array: ArrayLike<any> | null | undefined, separator?: string): string;
-
-export { join };
Index: de_modules/es-toolkit/dist/compat/array/join.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/join.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function join(array, separator) {
-    if (!isArrayLike.isArrayLike(array)) {
-        return '';
-    }
-    return Array.from(array).join(separator);
-}
-
-exports.join = join;
Index: de_modules/es-toolkit/dist/compat/array/join.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/join.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function join(array, separator) {
-    if (!isArrayLike(array)) {
-        return '';
-    }
-    return Array.from(array).join(separator);
-}
-
-export { join };
Index: de_modules/es-toolkit/dist/compat/array/keyBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/keyBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { ValueIterateeCustom } from '../_internal/ValueIterateeCustom.mjs';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection thru iteratee.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ValueIterateeCustom<T, PropertyKey>} [iteratee] - The iteratee to transform keys.
- * @returns {Record<string, T>} Returns the composed aggregate object.
- *
- * @example
- * const array = [
- *   { dir: 'left', code: 97 },
- *   { dir: 'right', code: 100 }
- * ];
- *
- * keyBy(array, o => String.fromCharCode(o.code));
- * // => { a: { dir: 'left', code: 97 }, d: { dir: 'right', code: 100 } }
- *
- * keyBy(array, 'dir');
- * // => { left: { dir: 'left', code: 97 }, right: { dir: 'right', code: 100 } }
- */
-declare function keyBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIterateeCustom<T, PropertyKey>): Record<string, T>;
-/**
- * Creates an object composed of keys generated from the results of running each element of collection thru iteratee.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ValueIterateeCustom<T[keyof T], PropertyKey>} [iteratee] - The iteratee to transform keys.
- * @returns {Record<string, T[keyof T]>} Returns the composed aggregate object.
- *
- * @example
- * const obj = { a: { dir: 'left', code: 97 }, b: { dir: 'right', code: 100 } };
- * keyBy(obj, o => String.fromCharCode(o.code));
- * // => { a: { dir: 'left', code: 97 }, d: { dir: 'right', code: 100 } }
- */
-declare function keyBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIterateeCustom<T[keyof T], PropertyKey>): Record<string, T[keyof T]>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/compat/array/keyBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/keyBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { ValueIterateeCustom } from '../_internal/ValueIterateeCustom.js';
-
-/**
- * Creates an object composed of keys generated from the results of running each element of collection thru iteratee.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ValueIterateeCustom<T, PropertyKey>} [iteratee] - The iteratee to transform keys.
- * @returns {Record<string, T>} Returns the composed aggregate object.
- *
- * @example
- * const array = [
- *   { dir: 'left', code: 97 },
- *   { dir: 'right', code: 100 }
- * ];
- *
- * keyBy(array, o => String.fromCharCode(o.code));
- * // => { a: { dir: 'left', code: 97 }, d: { dir: 'right', code: 100 } }
- *
- * keyBy(array, 'dir');
- * // => { left: { dir: 'left', code: 97 }, right: { dir: 'right', code: 100 } }
- */
-declare function keyBy<T>(collection: ArrayLike<T> | null | undefined, iteratee?: ValueIterateeCustom<T, PropertyKey>): Record<string, T>;
-/**
- * Creates an object composed of keys generated from the results of running each element of collection thru iteratee.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ValueIterateeCustom<T[keyof T], PropertyKey>} [iteratee] - The iteratee to transform keys.
- * @returns {Record<string, T[keyof T]>} Returns the composed aggregate object.
- *
- * @example
- * const obj = { a: { dir: 'left', code: 97 }, b: { dir: 'right', code: 100 } };
- * keyBy(obj, o => String.fromCharCode(o.code));
- * // => { a: { dir: 'left', code: 97 }, d: { dir: 'right', code: 100 } }
- */
-declare function keyBy<T extends object>(collection: T | null | undefined, iteratee?: ValueIterateeCustom<T[keyof T], PropertyKey>): Record<string, T[keyof T]>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/compat/array/keyBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/keyBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const reduce = require('./reduce.js');
-const identity = require('../../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isObjectLike = require('../predicate/isObjectLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function keyBy(collection, iteratee$1) {
-    if (!isArrayLike.isArrayLike(collection) && !isObjectLike.isObjectLike(collection)) {
-        return {};
-    }
-    const keyFn = iteratee.iteratee(iteratee$1 ?? identity.identity);
-    return reduce.reduce(collection, (result, value) => {
-        const key = keyFn(value);
-        result[key] = value;
-        return result;
-    }, {});
-}
-
-exports.keyBy = keyBy;
Index: de_modules/es-toolkit/dist/compat/array/keyBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/keyBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { reduce } from './reduce.mjs';
-import { identity } from '../../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isObjectLike } from '../predicate/isObjectLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function keyBy(collection, iteratee$1) {
-    if (!isArrayLike(collection) && !isObjectLike(collection)) {
-        return {};
-    }
-    const keyFn = iteratee(iteratee$1 ?? identity);
-    return reduce(collection, (result, value) => {
-        const key = keyFn(value);
-        result[key] = value;
-        return result;
-    }, {});
-}
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/compat/array/last.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/last.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array from which to get the last element.
- * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(array: ArrayLike<T> | null | undefined): T | undefined;
-
-export { last };
Index: de_modules/es-toolkit/dist/compat/array/last.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/last.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Returns the last element of an array.
- *
- * This function takes an array and returns the last element of the array.
- * If the array is empty, the function returns `undefined`.
- *
- * Unlike some implementations, this function is optimized for performance
- * by directly accessing the last index of the array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array from which to get the last element.
- * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
- *
- * @example
- * const arr = [1, 2, 3];
- * const lastElement = last(arr);
- * // lastElement will be 3
- *
- * const emptyArr: number[] = [];
- * const noElement = last(emptyArr);
- * // noElement will be undefined
- */
-declare function last<T>(array: ArrayLike<T> | null | undefined): T | undefined;
-
-export { last };
Index: de_modules/es-toolkit/dist/compat/array/last.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/last.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last$1 = require('../../array/last.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function last(array) {
-    if (!isArrayLike.isArrayLike(array)) {
-        return undefined;
-    }
-    return last$1.last(toArray.toArray(array));
-}
-
-exports.last = last;
Index: de_modules/es-toolkit/dist/compat/array/last.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/last.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { last as last$1 } from '../../array/last.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function last(array) {
-    if (!isArrayLike(array)) {
-        return undefined;
-    }
-    return last$1(toArray(array));
-}
-
-export { last };
Index: de_modules/es-toolkit/dist/compat/array/lastIndexOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/lastIndexOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Gets the index at which the last occurrence of value is found in array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {T} value - The value to search for.
- * @param {true | number} [fromIndex] - The index to search from or true to search from the end.
- * @returns {number} Returns the index of the matched value, else -1.
- *
- * @example
- * lastIndexOf([1, 2, 1, 2], 2);
- * // => 3
- *
- * lastIndexOf([1, 2, 1, 2], 2, 2);
- * // => 1
- *
- * lastIndexOf([1, 2, 1, 2], 2, true);
- * // => 3
- */
-declare function lastIndexOf<T>(array: ArrayLike<T> | null | undefined, searchElement: T, fromIndex?: true | number): number;
-
-export { lastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/lastIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/lastIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Gets the index at which the last occurrence of value is found in array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {T} value - The value to search for.
- * @param {true | number} [fromIndex] - The index to search from or true to search from the end.
- * @returns {number} Returns the index of the matched value, else -1.
- *
- * @example
- * lastIndexOf([1, 2, 1, 2], 2);
- * // => 3
- *
- * lastIndexOf([1, 2, 1, 2], 2, 2);
- * // => 1
- *
- * lastIndexOf([1, 2, 1, 2], 2, true);
- * // => 3
- */
-declare function lastIndexOf<T>(array: ArrayLike<T> | null | undefined, searchElement: T, fromIndex?: true | number): number;
-
-export { lastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/lastIndexOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/lastIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function lastIndexOf(array, searchElement, fromIndex) {
-    if (!isArrayLike.isArrayLike(array) || array.length === 0) {
-        return -1;
-    }
-    const length = array.length;
-    let index = fromIndex ?? length - 1;
-    if (fromIndex != null) {
-        index = index < 0 ? Math.max(length + index, 0) : Math.min(index, length - 1);
-    }
-    if (Number.isNaN(searchElement)) {
-        for (let i = index; i >= 0; i--) {
-            if (Number.isNaN(array[i])) {
-                return i;
-            }
-        }
-    }
-    return Array.from(array).lastIndexOf(searchElement, index);
-}
-
-exports.lastIndexOf = lastIndexOf;
Index: de_modules/es-toolkit/dist/compat/array/lastIndexOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/lastIndexOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function lastIndexOf(array, searchElement, fromIndex) {
-    if (!isArrayLike(array) || array.length === 0) {
-        return -1;
-    }
-    const length = array.length;
-    let index = fromIndex ?? length - 1;
-    if (fromIndex != null) {
-        index = index < 0 ? Math.max(length + index, 0) : Math.min(index, length - 1);
-    }
-    if (Number.isNaN(searchElement)) {
-        for (let i = index; i >= 0; i--) {
-            if (Number.isNaN(array[i])) {
-                return i;
-            }
-        }
-    }
-    return Array.from(array).lastIndexOf(searchElement, index);
-}
-
-export { lastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/map.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/map.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.mjs';
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-import { TupleIterator } from '../_internal/TupleIterator.mjs';
-
-/**
- * Maps each element in a tuple to a new tuple of values using an iteratee.
- *
- * @param {T} collection - The tuple to iterate over
- * @param {TupleIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {{ [K in keyof T]: U }} - Returns the new mapped tuple
- *
- * @example
- * // Using a transformation function on a tuple
- * const tuple = [1, 'hello', true] as const;
- * map(tuple, value => String(value)); // => ['1', 'hello', 'true']
- */
-declare function map<T extends readonly [unknown, ...unknown[]], U>(collection: T, iteratee: TupleIterator<T, U>): {
-    [K in keyof T]: U;
-};
-/**
- * Maps each element in an array to a new array using an iteratee.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {ArrayIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an array
- * const array = [1, 2, 3];
- * map(array, x => x * 2); // => [2, 4, 6]
- */
-declare function map<T, U>(collection: T[] | null | undefined, iteratee: ArrayIterator<T, U>): U[];
-/**
- * Maps each element in an array-like object to a new array using an iteratee.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {ListIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an array-like object
- * const arrayLike = { length: 2, 0: 'a', 1: 'b' };
- * map(arrayLike, x => x.toUpperCase()); // => ['A', 'B']
- */
-declare function map<T, U>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, U>): U[];
-/**
- * Maps each value in an object to a new array.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @returns {T[]} - Returns an array of the object's values
- *
- * @example
- * // Converting an object's values to an array
- * const obj = { a: 1, b: 2, c: 3 };
- * map(obj); // => [1, 2, 3]
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined): T[];
-/**
- * Maps each element in an object to a new array using an iteratee.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ObjectIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an object
- * const obj = { a: 1, b: 2 };
- * map(obj, (value, key) => `${key}:${value}`); // => ['a:1', 'b:2']
- */
-declare function map<T extends object, U>(collection: T | null | undefined, iteratee: ObjectIterator<T, U>): U[];
-/**
- * Maps each element in an object to a new array by plucking the specified property.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {K} iteratee - The property to pluck from each element
- * @returns {Array<T[K]>} - Returns the new array of plucked values
- *
- * @example
- * // Plucking a property from each object
- * const users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
- * map(users, 'name'); // => ['John', 'Jane']
- */
-declare function map<T, K extends keyof T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee: K): Array<T[K]>;
-/**
- * Maps each element in an object to a new array by plucking the specified string property.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {string} [iteratee] - The string property to pluck from each element
- * @returns {any[]} - Returns the new array of plucked values
- *
- * @example
- * // Plucking a nested property
- * const users = [{ info: { name: 'John' } }, { info: { name: 'Jane' } }];
- * map(users, 'info.name'); // => ['John', 'Jane']
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee?: string): any[];
-/**
- * Maps each element in an object to a new array by matching against a source object.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {object} [iteratee] - The object to match against
- * @returns {boolean[]} - Returns an array of boolean values indicating matches
- *
- * @example
- * // Matching against a source object
- * const users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
- * map(users, { age: 30 }); // => [true, false]
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee?: object): boolean[];
-
-export { map };
Index: de_modules/es-toolkit/dist/compat/array/map.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.js';
-import { ListIterator } from '../_internal/ListIterator.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-import { TupleIterator } from '../_internal/TupleIterator.js';
-
-/**
- * Maps each element in a tuple to a new tuple of values using an iteratee.
- *
- * @param {T} collection - The tuple to iterate over
- * @param {TupleIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {{ [K in keyof T]: U }} - Returns the new mapped tuple
- *
- * @example
- * // Using a transformation function on a tuple
- * const tuple = [1, 'hello', true] as const;
- * map(tuple, value => String(value)); // => ['1', 'hello', 'true']
- */
-declare function map<T extends readonly [unknown, ...unknown[]], U>(collection: T, iteratee: TupleIterator<T, U>): {
-    [K in keyof T]: U;
-};
-/**
- * Maps each element in an array to a new array using an iteratee.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {ArrayIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an array
- * const array = [1, 2, 3];
- * map(array, x => x * 2); // => [2, 4, 6]
- */
-declare function map<T, U>(collection: T[] | null | undefined, iteratee: ArrayIterator<T, U>): U[];
-/**
- * Maps each element in an array-like object to a new array using an iteratee.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {ListIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an array-like object
- * const arrayLike = { length: 2, 0: 'a', 1: 'b' };
- * map(arrayLike, x => x.toUpperCase()); // => ['A', 'B']
- */
-declare function map<T, U>(collection: ArrayLike<T> | null | undefined, iteratee: ListIterator<T, U>): U[];
-/**
- * Maps each value in an object to a new array.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @returns {T[]} - Returns an array of the object's values
- *
- * @example
- * // Converting an object's values to an array
- * const obj = { a: 1, b: 2, c: 3 };
- * map(obj); // => [1, 2, 3]
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined): T[];
-/**
- * Maps each element in an object to a new array using an iteratee.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {ObjectIterator<T, U>} iteratee - The function invoked per iteration
- * @returns {U[]} - Returns the new mapped array
- *
- * @example
- * // Using a transformation function on an object
- * const obj = { a: 1, b: 2 };
- * map(obj, (value, key) => `${key}:${value}`); // => ['a:1', 'b:2']
- */
-declare function map<T extends object, U>(collection: T | null | undefined, iteratee: ObjectIterator<T, U>): U[];
-/**
- * Maps each element in an object to a new array by plucking the specified property.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {K} iteratee - The property to pluck from each element
- * @returns {Array<T[K]>} - Returns the new array of plucked values
- *
- * @example
- * // Plucking a property from each object
- * const users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
- * map(users, 'name'); // => ['John', 'Jane']
- */
-declare function map<T, K extends keyof T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee: K): Array<T[K]>;
-/**
- * Maps each element in an object to a new array by plucking the specified string property.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {string} [iteratee] - The string property to pluck from each element
- * @returns {any[]} - Returns the new array of plucked values
- *
- * @example
- * // Plucking a nested property
- * const users = [{ info: { name: 'John' } }, { info: { name: 'Jane' } }];
- * map(users, 'info.name'); // => ['John', 'Jane']
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee?: string): any[];
-/**
- * Maps each element in an object to a new array by matching against a source object.
- *
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The object to iterate over
- * @param {object} [iteratee] - The object to match against
- * @returns {boolean[]} - Returns an array of boolean values indicating matches
- *
- * @example
- * // Matching against a source object
- * const users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
- * map(users, { age: 30 }); // => [true, false]
- */
-declare function map<T>(collection: Record<string, T> | Record<number, T> | null | undefined, iteratee?: object): boolean[];
-
-export { map };
Index: de_modules/es-toolkit/dist/compat/array/map.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const range = require('../../math/range.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function map(collection, _iteratee) {
-    if (!collection) {
-        return [];
-    }
-    const keys = isArrayLike.isArrayLike(collection) || Array.isArray(collection) ? range.range(0, collection.length) : Object.keys(collection);
-    const iteratee$1 = iteratee.iteratee(_iteratee ?? identity.identity);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        result[i] = iteratee$1(value, key, collection);
-    }
-    return result;
-}
-
-exports.map = map;
Index: de_modules/es-toolkit/dist/compat/array/map.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/map.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { range } from '../../math/range.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function map(collection, _iteratee) {
-    if (!collection) {
-        return [];
-    }
-    const keys = isArrayLike(collection) || Array.isArray(collection) ? range(0, collection.length) : Object.keys(collection);
-    const iteratee$1 = iteratee(_iteratee ?? identity);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        result[i] = iteratee$1(value, key, collection);
-    }
-    return result;
-}
-
-export { map };
Index: de_modules/es-toolkit/dist/compat/array/nth.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/nth.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Gets the element at index `n` of `array`. If `n` is negative, the nth element from the end is returned.
- *
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=0] - The index of the element to return.
- * @return {T | undefined} Returns the nth element of `array`.
- *
- * @example
- * nth([1, 2, 3], 1); // => 2
- * nth([1, 2, 3], -1); // => 3
- */
-declare function nth<T>(array: ArrayLike<T> | null | undefined, n?: number): T | undefined;
-
-export { nth };
Index: de_modules/es-toolkit/dist/compat/array/nth.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/nth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Gets the element at index `n` of `array`. If `n` is negative, the nth element from the end is returned.
- *
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=0] - The index of the element to return.
- * @return {T | undefined} Returns the nth element of `array`.
- *
- * @example
- * nth([1, 2, 3], 1); // => 2
- * nth([1, 2, 3], -1); // => 3
- */
-declare function nth<T>(array: ArrayLike<T> | null | undefined, n?: number): T | undefined;
-
-export { nth };
Index: de_modules/es-toolkit/dist/compat/array/nth.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/nth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const toInteger = require('../util/toInteger.js');
-
-function nth(array, n = 0) {
-    if (!isArrayLikeObject.isArrayLikeObject(array) || array.length === 0) {
-        return undefined;
-    }
-    n = toInteger.toInteger(n);
-    if (n < 0) {
-        n += array.length;
-    }
-    return array[n];
-}
-
-exports.nth = nth;
Index: de_modules/es-toolkit/dist/compat/array/nth.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/nth.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function nth(array, n = 0) {
-    if (!isArrayLikeObject(array) || array.length === 0) {
-        return undefined;
-    }
-    n = toInteger(n);
-    if (n < 0) {
-        n += array.length;
-    }
-    return array[n];
-}
-
-export { nth };
Index: de_modules/es-toolkit/dist/compat/array/orderBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/orderBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-import { ListIterator } from '../_internal/ListIterator.mjs';
-import { Many } from '../_internal/Many.mjs';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-
-/**
- * Sorts an array of elements based on multiple iteratee functions and their corresponding order directions.
- *
- * @template T The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} collection The array to sort
- * @param {Many<ListIterator<T, unknown>>} iteratees The iteratee functions to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {T[]} Returns the new sorted array
- * @example
- * const users = [
- *   { name: 'fred', age: 48 },
- *   { name: 'barney', age: 34 }
- * ];
- *
- * // Sort by age in ascending order
- * orderBy(users, [(user) => user.age], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T>(collection: ArrayLike<T> | null | undefined, iteratees?: Many<ListIterator<T, unknown>>, orders?: Many<boolean | 'asc' | 'desc'>): T[];
-/**
- * Sorts an array of elements based on multiple property names/paths and their corresponding order directions.
- *
- * @template T The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} collection The array to sort
- * @param {Many<ListIteratee<T>>} iteratees The property names/paths to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {T[]} Returns the new sorted array
- * @example
- * const users = [
- *   { name: 'fred', age: 48 },
- *   { name: 'barney', age: 34 }
- * ];
- *
- * // Sort by name in ascending order
- * orderBy(users, ['name'], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T>(collection: ArrayLike<T> | null | undefined, iteratees?: Many<ListIteratee<T>>, orders?: Many<boolean | 'asc' | 'desc'>): T[];
-/**
- * Sorts an object's values based on multiple iteratee functions and their corresponding order directions.
- *
- * @template T The object type
- * @param {T | null | undefined} collection The object to sort values from
- * @param {Many<ObjectIterator<T, unknown>>} iteratees The iteratee functions to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {Array<T[keyof T]>} Returns the new sorted array
- * @example
- * const obj = {
- *   a: { name: 'fred', age: 48 },
- *   b: { name: 'barney', age: 34 }
- * };
- *
- * // Sort by age in ascending order
- * orderBy(obj, [(user) => user.age], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T extends object>(collection: T | null | undefined, iteratees?: Many<ObjectIterator<T, unknown>>, orders?: Many<boolean | 'asc' | 'desc'>): Array<T[keyof T]>;
-/**
- * Sorts an object's values based on multiple property names/paths and their corresponding order directions.
- *
- * @template T The object type
- * @param {T | null | undefined} collection The object to sort values from
- * @param {Many<ObjectIteratee<T>>} iteratees The property names/paths to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {Array<T[keyof T]>} Returns the new sorted array
- * @example
- * const obj = {
- *   a: { name: 'fred', age: 48 },
- *   b: { name: 'barney', age: 34 }
- * };
- *
- * // Sort by name in ascending order
- * orderBy(obj, ['name'], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T extends object>(collection: T | null | undefined, iteratees?: Many<ObjectIteratee<T>>, orders?: Many<boolean | 'asc' | 'desc'>): Array<T[keyof T]>;
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/compat/array/orderBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/orderBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-import { ListIterator } from '../_internal/ListIterator.js';
-import { Many } from '../_internal/Many.js';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-
-/**
- * Sorts an array of elements based on multiple iteratee functions and their corresponding order directions.
- *
- * @template T The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} collection The array to sort
- * @param {Many<ListIterator<T, unknown>>} iteratees The iteratee functions to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {T[]} Returns the new sorted array
- * @example
- * const users = [
- *   { name: 'fred', age: 48 },
- *   { name: 'barney', age: 34 }
- * ];
- *
- * // Sort by age in ascending order
- * orderBy(users, [(user) => user.age], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T>(collection: ArrayLike<T> | null | undefined, iteratees?: Many<ListIterator<T, unknown>>, orders?: Many<boolean | 'asc' | 'desc'>): T[];
-/**
- * Sorts an array of elements based on multiple property names/paths and their corresponding order directions.
- *
- * @template T The type of elements in the array
- * @param {ArrayLike<T> | null | undefined} collection The array to sort
- * @param {Many<ListIteratee<T>>} iteratees The property names/paths to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {T[]} Returns the new sorted array
- * @example
- * const users = [
- *   { name: 'fred', age: 48 },
- *   { name: 'barney', age: 34 }
- * ];
- *
- * // Sort by name in ascending order
- * orderBy(users, ['name'], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T>(collection: ArrayLike<T> | null | undefined, iteratees?: Many<ListIteratee<T>>, orders?: Many<boolean | 'asc' | 'desc'>): T[];
-/**
- * Sorts an object's values based on multiple iteratee functions and their corresponding order directions.
- *
- * @template T The object type
- * @param {T | null | undefined} collection The object to sort values from
- * @param {Many<ObjectIterator<T, unknown>>} iteratees The iteratee functions to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {Array<T[keyof T]>} Returns the new sorted array
- * @example
- * const obj = {
- *   a: { name: 'fred', age: 48 },
- *   b: { name: 'barney', age: 34 }
- * };
- *
- * // Sort by age in ascending order
- * orderBy(obj, [(user) => user.age], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T extends object>(collection: T | null | undefined, iteratees?: Many<ObjectIterator<T, unknown>>, orders?: Many<boolean | 'asc' | 'desc'>): Array<T[keyof T]>;
-/**
- * Sorts an object's values based on multiple property names/paths and their corresponding order directions.
- *
- * @template T The object type
- * @param {T | null | undefined} collection The object to sort values from
- * @param {Many<ObjectIteratee<T>>} iteratees The property names/paths to sort by
- * @param {Many<boolean | 'asc' | 'desc'>} orders The sort orders
- * @returns {Array<T[keyof T]>} Returns the new sorted array
- * @example
- * const obj = {
- *   a: { name: 'fred', age: 48 },
- *   b: { name: 'barney', age: 34 }
- * };
- *
- * // Sort by name in ascending order
- * orderBy(obj, ['name'], ['asc']);
- * // => [{ name: 'barney', age: 34 }, { name: 'fred', age: 48 }]
- */
-declare function orderBy<T extends object>(collection: T | null | undefined, iteratees?: Many<ObjectIteratee<T>>, orders?: Many<boolean | 'asc' | 'desc'>): Array<T[keyof T]>;
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/compat/array/orderBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/orderBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const compareValues = require('../_internal/compareValues.js');
-const isKey = require('../_internal/isKey.js');
-const toPath = require('../util/toPath.js');
-
-function orderBy(collection, criteria, orders, guard) {
-    if (collection == null) {
-        return [];
-    }
-    orders = guard ? undefined : orders;
-    if (!Array.isArray(collection)) {
-        collection = Object.values(collection);
-    }
-    if (!Array.isArray(criteria)) {
-        criteria = criteria == null ? [null] : [criteria];
-    }
-    if (criteria.length === 0) {
-        criteria = [null];
-    }
-    if (!Array.isArray(orders)) {
-        orders = orders == null ? [] : [orders];
-    }
-    orders = orders.map(order => String(order));
-    const getValueByNestedPath = (object, path) => {
-        let target = object;
-        for (let i = 0; i < path.length && target != null; ++i) {
-            target = target[path[i]];
-        }
-        return target;
-    };
-    const getValueByCriterion = (criterion, object) => {
-        if (object == null || criterion == null) {
-            return object;
-        }
-        if (typeof criterion === 'object' && 'key' in criterion) {
-            if (Object.hasOwn(object, criterion.key)) {
-                return object[criterion.key];
-            }
-            return getValueByNestedPath(object, criterion.path);
-        }
-        if (typeof criterion === 'function') {
-            return criterion(object);
-        }
-        if (Array.isArray(criterion)) {
-            return getValueByNestedPath(object, criterion);
-        }
-        if (typeof object === 'object') {
-            return object[criterion];
-        }
-        return object;
-    };
-    const preparedCriteria = criteria.map((criterion) => {
-        if (Array.isArray(criterion) && criterion.length === 1) {
-            criterion = criterion[0];
-        }
-        if (criterion == null || typeof criterion === 'function' || Array.isArray(criterion) || isKey.isKey(criterion)) {
-            return criterion;
-        }
-        return { key: criterion, path: toPath.toPath(criterion) };
-    });
-    const preparedCollection = collection.map(item => ({
-        original: item,
-        criteria: preparedCriteria.map((criterion) => getValueByCriterion(criterion, item)),
-    }));
-    return preparedCollection
-        .slice()
-        .sort((a, b) => {
-        for (let i = 0; i < preparedCriteria.length; i++) {
-            const comparedResult = compareValues.compareValues(a.criteria[i], b.criteria[i], orders[i]);
-            if (comparedResult !== 0) {
-                return comparedResult;
-            }
-        }
-        return 0;
-    })
-        .map(item => item.original);
-}
-
-exports.orderBy = orderBy;
Index: de_modules/es-toolkit/dist/compat/array/orderBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/orderBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import { compareValues } from '../_internal/compareValues.mjs';
-import { isKey } from '../_internal/isKey.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function orderBy(collection, criteria, orders, guard) {
-    if (collection == null) {
-        return [];
-    }
-    orders = guard ? undefined : orders;
-    if (!Array.isArray(collection)) {
-        collection = Object.values(collection);
-    }
-    if (!Array.isArray(criteria)) {
-        criteria = criteria == null ? [null] : [criteria];
-    }
-    if (criteria.length === 0) {
-        criteria = [null];
-    }
-    if (!Array.isArray(orders)) {
-        orders = orders == null ? [] : [orders];
-    }
-    orders = orders.map(order => String(order));
-    const getValueByNestedPath = (object, path) => {
-        let target = object;
-        for (let i = 0; i < path.length && target != null; ++i) {
-            target = target[path[i]];
-        }
-        return target;
-    };
-    const getValueByCriterion = (criterion, object) => {
-        if (object == null || criterion == null) {
-            return object;
-        }
-        if (typeof criterion === 'object' && 'key' in criterion) {
-            if (Object.hasOwn(object, criterion.key)) {
-                return object[criterion.key];
-            }
-            return getValueByNestedPath(object, criterion.path);
-        }
-        if (typeof criterion === 'function') {
-            return criterion(object);
-        }
-        if (Array.isArray(criterion)) {
-            return getValueByNestedPath(object, criterion);
-        }
-        if (typeof object === 'object') {
-            return object[criterion];
-        }
-        return object;
-    };
-    const preparedCriteria = criteria.map((criterion) => {
-        if (Array.isArray(criterion) && criterion.length === 1) {
-            criterion = criterion[0];
-        }
-        if (criterion == null || typeof criterion === 'function' || Array.isArray(criterion) || isKey(criterion)) {
-            return criterion;
-        }
-        return { key: criterion, path: toPath(criterion) };
-    });
-    const preparedCollection = collection.map(item => ({
-        original: item,
-        criteria: preparedCriteria.map((criterion) => getValueByCriterion(criterion, item)),
-    }));
-    return preparedCollection
-        .slice()
-        .sort((a, b) => {
-        for (let i = 0; i < preparedCriteria.length; i++) {
-            const comparedResult = compareValues(a.criteria[i], b.criteria[i], orders[i]);
-            if (comparedResult !== 0) {
-                return comparedResult;
-            }
-        }
-        return 0;
-    })
-        .map(item => item.original);
-}
-
-export { orderBy };
Index: de_modules/es-toolkit/dist/compat/array/partition.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/partition.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-import { ValueIteratorTypeGuard } from '../_internal/ValueIteratorTypeGuard.mjs';
-
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {(value: T) => value is U} callback - The function invoked per iteration.
- * @returns {[U[], Array<Exclude<T, U>>]} Returns the array of grouped elements.
- *
- * @example
- * partition([1, 2, 3, 4], n => n % 2 === 0);
- * // => [[2, 4], [1, 3]]
- */
-declare function partition<T, U extends T>(collection: ArrayLike<T> | null | undefined, callback: ValueIteratorTypeGuard<T, U>): [U[], Array<Exclude<T, U>>];
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {((value: T) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T>} callback - The function invoked per iteration.
- * @returns {[T[], T[]]} Returns the array of grouped elements.
- *
- * @example
- * partition([1, 2, 3, 4], n => n % 2 === 0);
- * // => [[2, 4], [1, 3]]
- */
-declare function partition<T>(collection: ArrayLike<T> | null | undefined, callback: ValueIteratee<T>): [T[], T[]];
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T
- * @param {T | null | undefined} collection - The collection to iterate over.
- * @param {((value: T[keyof T]) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T[keyof T]>} callback - The function invoked per iteration.
- * @returns {[Array<T[keyof T]>, Array<T[keyof T]>]} Returns the array of grouped elements.
- *
- * @example
- * partition({ a: 1, b: 2, c: 3 }, n => n % 2 === 0);
- * // => [[2], [1, 3]]
- */
-declare function partition<T extends object>(collection: T | null | undefined, callback: ValueIteratee<T[keyof T]>): [Array<T[keyof T]>, Array<T[keyof T]>];
-
-export { partition };
Index: de_modules/es-toolkit/dist/compat/array/partition.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/partition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-import { ValueIteratorTypeGuard } from '../_internal/ValueIteratorTypeGuard.js';
-
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {(value: T) => value is U} callback - The function invoked per iteration.
- * @returns {[U[], Array<Exclude<T, U>>]} Returns the array of grouped elements.
- *
- * @example
- * partition([1, 2, 3, 4], n => n % 2 === 0);
- * // => [[2, 4], [1, 3]]
- */
-declare function partition<T, U extends T>(collection: ArrayLike<T> | null | undefined, callback: ValueIteratorTypeGuard<T, U>): [U[], Array<Exclude<T, U>>];
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {((value: T) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T>} callback - The function invoked per iteration.
- * @returns {[T[], T[]]} Returns the array of grouped elements.
- *
- * @example
- * partition([1, 2, 3, 4], n => n % 2 === 0);
- * // => [[2, 4], [1, 3]]
- */
-declare function partition<T>(collection: ArrayLike<T> | null | undefined, callback: ValueIteratee<T>): [T[], T[]];
-/**
- * Creates an array of elements split into two groups, the first of which contains elements
- * predicate returns truthy for, while the second of which contains elements predicate returns falsey for.
- * The predicate is invoked with one argument: (value).
- *
- * @template T
- * @param {T | null | undefined} collection - The collection to iterate over.
- * @param {((value: T[keyof T]) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T[keyof T]>} callback - The function invoked per iteration.
- * @returns {[Array<T[keyof T]>, Array<T[keyof T]>]} Returns the array of grouped elements.
- *
- * @example
- * partition({ a: 1, b: 2, c: 3 }, n => n % 2 === 0);
- * // => [[2], [1, 3]]
- */
-declare function partition<T extends object>(collection: T | null | undefined, callback: ValueIteratee<T[keyof T]>): [Array<T[keyof T]>, Array<T[keyof T]>];
-
-export { partition };
Index: de_modules/es-toolkit/dist/compat/array/partition.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/partition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const iteratee = require('../util/iteratee.js');
-
-function partition(source, predicate = identity.identity) {
-    if (!source) {
-        return [[], []];
-    }
-    const collection = isArrayLike.isArrayLike(source) ? source : Object.values(source);
-    predicate = iteratee.iteratee(predicate);
-    const matched = [];
-    const unmatched = [];
-    for (let i = 0; i < collection.length; i++) {
-        const value = collection[i];
-        if (predicate(value)) {
-            matched.push(value);
-        }
-        else {
-            unmatched.push(value);
-        }
-    }
-    return [matched, unmatched];
-}
-
-exports.partition = partition;
Index: de_modules/es-toolkit/dist/compat/array/partition.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/partition.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function partition(source, predicate = identity) {
-    if (!source) {
-        return [[], []];
-    }
-    const collection = isArrayLike(source) ? source : Object.values(source);
-    predicate = iteratee(predicate);
-    const matched = [];
-    const unmatched = [];
-    for (let i = 0; i < collection.length; i++) {
-        const value = collection[i];
-        if (predicate(value)) {
-            matched.push(value);
-        }
-        else {
-            unmatched.push(value);
-        }
-    }
-    return [matched, unmatched];
-}
-
-export { partition };
Index: de_modules/es-toolkit/dist/compat/array/pull.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pull.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Removes all provided values from array using SameValueZero for equality comparisons.
- *
- * **Note:** Unlike `_.without`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {...T[]} values - The values to remove.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pull(array, 2, 3);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pull<T>(array: T[], ...values: T[]): T[];
-/**
- * Removes all provided values from array using SameValueZero for equality comparisons.
- *
- * **Note:** Unlike `_.without`, this method mutates `array`.
- *
- * @template L
- * @param {L} array - The array to modify.
- * @param {...L[0][]} values - The values to remove.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pull(array, 2, 3);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pull<L extends ArrayLike<any>>(array: L extends readonly any[] ? never : L, ...values: Array<L[0]>): L;
-
-export { pull };
Index: de_modules/es-toolkit/dist/compat/array/pull.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Removes all provided values from array using SameValueZero for equality comparisons.
- *
- * **Note:** Unlike `_.without`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {...T[]} values - The values to remove.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pull(array, 2, 3);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pull<T>(array: T[], ...values: T[]): T[];
-/**
- * Removes all provided values from array using SameValueZero for equality comparisons.
- *
- * **Note:** Unlike `_.without`, this method mutates `array`.
- *
- * @template L
- * @param {L} array - The array to modify.
- * @param {...L[0][]} values - The values to remove.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pull(array, 2, 3);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pull<L extends ArrayLike<any>>(array: L extends readonly any[] ? never : L, ...values: Array<L[0]>): L;
-
-export { pull };
Index: de_modules/es-toolkit/dist/compat/array/pull.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const pull$1 = require('../../array/pull.js');
-
-function pull(arr, ...valuesToRemove) {
-    return pull$1.pull(arr, valuesToRemove);
-}
-
-exports.pull = pull;
Index: de_modules/es-toolkit/dist/compat/array/pull.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pull.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { pull as pull$1 } from '../../array/pull.mjs';
-
-function pull(arr, ...valuesToRemove) {
-    return pull$1(arr, valuesToRemove);
-}
-
-export { pull };
Index: de_modules/es-toolkit/dist/compat/array/pullAll.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAll.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * This method is like `_.pull` except that it accepts an array of values to remove.
- *
- * **Note:** Unlike `_.difference`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pullAll(array, [2, 3]);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pullAll<T>(array: T[], values?: ArrayLike<T>): T[];
-/**
- * This method is like `_.pull` except that it accepts an array of values to remove.
- *
- * **Note:** Unlike `_.difference`, this method mutates `array`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {List<L[0]>} [values] - The values to remove.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pullAll(array, [2, 3]);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pullAll<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>): L;
-
-export { pullAll };
Index: de_modules/es-toolkit/dist/compat/array/pullAll.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAll.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * This method is like `_.pull` except that it accepts an array of values to remove.
- *
- * **Note:** Unlike `_.difference`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pullAll(array, [2, 3]);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pullAll<T>(array: T[], values?: ArrayLike<T>): T[];
-/**
- * This method is like `_.pull` except that it accepts an array of values to remove.
- *
- * **Note:** Unlike `_.difference`, this method mutates `array`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {List<L[0]>} [values] - The values to remove.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [1, 2, 3, 1, 2, 3];
- *
- * pullAll(array, [2, 3]);
- * console.log(array);
- * // => [1, 1]
- */
-declare function pullAll<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>): L;
-
-export { pullAll };
Index: de_modules/es-toolkit/dist/compat/array/pullAll.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const pull = require('../../array/pull.js');
-
-function pullAll(arr, valuesToRemove = []) {
-    return pull.pull(arr, Array.from(valuesToRemove));
-}
-
-exports.pullAll = pullAll;
Index: de_modules/es-toolkit/dist/compat/array/pullAll.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAll.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { pull } from '../../array/pull.mjs';
-
-function pullAll(arr, valuesToRemove = []) {
-    return pull(arr, Array.from(valuesToRemove));
-}
-
-export { pullAll };
Index: de_modules/es-toolkit/dist/compat/array/pullAllBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @param {((value: T) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<T>(array: T[], values?: ArrayLike<T>, iteratee?: ValueIteratee<T>): T[];
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {ArrayLike<L[0]>} [values] - The values to remove.
- * @param {ValueIteratee<L[0]>} [iteratee] - The iteratee invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>, iteratee?: ValueIteratee<L[0]>): L;
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template T, U
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {((value: T | U) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T | U>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<T, U>(array: T[], values: ArrayLike<U>, iteratee: ValueIteratee<T | U>): T[];
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template L, U
- * @param {L} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {((value: L[0] | U) => unknown) | PropertyKey | [PropertyKey, any] | Partial<L[0] | U>} iteratee - The iteratee invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<L extends ArrayLike<any>, U>(array: L extends readonly any[] ? never : L, values: ArrayLike<U>, iteratee: ValueIteratee<L[0] | U>): L;
-
-export { pullAllBy };
Index: de_modules/es-toolkit/dist/compat/array/pullAllBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @param {((value: T) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<T>(array: T[], values?: ArrayLike<T>, iteratee?: ValueIteratee<T>): T[];
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {ArrayLike<L[0]>} [values] - The values to remove.
- * @param {ValueIteratee<L[0]>} [iteratee] - The iteratee invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>, iteratee?: ValueIteratee<L[0]>): L;
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template T, U
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {((value: T | U) => unknown) | PropertyKey | [PropertyKey, any] | Partial<T | U>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<T, U>(array: T[], values: ArrayLike<U>, iteratee: ValueIteratee<T | U>): T[];
-/**
- * Removes all specified values from an array using an iteratee function.
- *
- * This function changes `arr` in place.
- * If you want to remove values without modifying the original array, use `differenceBy`.
- *
- * @template L, U
- * @param {L} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {((value: L[0] | U) => unknown) | PropertyKey | [PropertyKey, any] | Partial<L[0] | U>} iteratee - The iteratee invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
- *
- * pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
- * console.log(array);
- * // => [{ 'x': 2 }]
- */
-declare function pullAllBy<L extends ArrayLike<any>, U>(array: L extends readonly any[] ? never : L, values: ArrayLike<U>, iteratee: ValueIteratee<L[0] | U>): L;
-
-export { pullAllBy };
Index: de_modules/es-toolkit/dist/compat/array/pullAllBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('../util/iteratee.js');
-
-function pullAllBy(arr, valuesToRemove, _getValue) {
-    const getValue = iteratee.iteratee(_getValue);
-    const valuesSet = new Set(Array.from(valuesToRemove).map(x => getValue(x)));
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        const value = getValue(arr[i]);
-        if (valuesSet.has(value)) {
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return arr;
-}
-
-exports.pullAllBy = pullAllBy;
Index: de_modules/es-toolkit/dist/compat/array/pullAllBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { iteratee } from '../util/iteratee.mjs';
-
-function pullAllBy(arr, valuesToRemove, _getValue) {
-    const getValue = iteratee(_getValue);
-    const valuesSet = new Set(Array.from(valuesToRemove).map(x => getValue(x)));
-    let resultIndex = 0;
-    for (let i = 0; i < arr.length; i++) {
-        const value = getValue(arr[i]);
-        if (valuesSet.has(value)) {
-            continue;
-        }
-        if (!Object.hasOwn(arr, i)) {
-            delete arr[resultIndex++];
-            continue;
-        }
-        arr[resultIndex++] = arr[i];
-    }
-    arr.length = resultIndex;
-    return arr;
-}
-
-export { pullAllBy };
Index: de_modules/es-toolkit/dist/compat/array/pullAllWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<T>(array: T[], values?: ArrayLike<T>, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {List<L[0]>} [values] - The values to remove.
- * @param {Comparator<L[0]>} [comparator] - The comparator invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>, comparator?: (a: L[0], b: L[0]) => boolean): L;
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template T, U
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {(a: T, b: U) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<T, U>(array: T[], values: ArrayLike<U>, comparator: (a: T, b: U) => boolean): T[];
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template L1, L2
- * @param {RejectReadonly<L1>} array - The array to modify.
- * @param {List<L2>} values - The values to remove.
- * @param {Comparator2<L1[0], L2>} comparator - The comparator invoked per element.
- * @returns {L1} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<L1 extends MutableList<any>, L2>(array: RejectReadonly<L1>, values: ArrayLike<L2>, comparator: (a: L1[0], b: L2) => boolean): L1;
-
-export { pullAllWith };
Index: de_modules/es-toolkit/dist/compat/array/pullAllWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<T>} [values] - The values to remove.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<T>(array: T[], values?: ArrayLike<T>, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {List<L[0]>} [values] - The values to remove.
- * @param {Comparator<L[0]>} [comparator] - The comparator invoked per element.
- * @returns {L} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<L extends MutableList<any>>(array: RejectReadonly<L>, values?: ArrayLike<L[0]>, comparator?: (a: L[0], b: L[0]) => boolean): L;
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template T, U
- * @param {T[]} array - The array to modify.
- * @param {ArrayLike<U>} values - The values to remove.
- * @param {(a: T, b: U) => boolean} comparator - The comparator invoked per element.
- * @returns {T[]} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<T, U>(array: T[], values: ArrayLike<U>, comparator: (a: T, b: U) => boolean): T[];
-/**
- * This method is like `_.pullAll` except that it accepts `comparator` which is
- * invoked to compare elements of array to values. The comparator is invoked with
- * two arguments: (arrVal, othVal).
- *
- * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
- *
- * @template L1, L2
- * @param {RejectReadonly<L1>} array - The array to modify.
- * @param {List<L2>} values - The values to remove.
- * @param {Comparator2<L1[0], L2>} comparator - The comparator invoked per element.
- * @returns {L1} Returns `array`.
- *
- * @example
- * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
- *
- * pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
- * console.log(array);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
- */
-declare function pullAllWith<L1 extends MutableList<any>, L2>(array: RejectReadonly<L1>, values: ArrayLike<L2>, comparator: (a: L1[0], b: L2) => boolean): L1;
-
-export { pullAllWith };
Index: de_modules/es-toolkit/dist/compat/array/pullAllWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const copyArray = require('../_internal/copyArray.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function pullAllWith(array, values, comparator) {
-    if (array?.length == null || values?.length == null) {
-        return array;
-    }
-    if (array === values) {
-        values = copyArray(values);
-    }
-    let resultLength = 0;
-    if (comparator == null) {
-        comparator = (a, b) => isEqualsSameValueZero.isEqualsSameValueZero(a, b);
-    }
-    const valuesArray = Array.isArray(values) ? values : Array.from(values);
-    const hasUndefined = valuesArray.includes(undefined);
-    for (let i = 0; i < array.length; i++) {
-        if (i in array) {
-            const shouldRemove = valuesArray.some(value => comparator(array[i], value));
-            if (!shouldRemove) {
-                array[resultLength++] = array[i];
-            }
-            continue;
-        }
-        if (!hasUndefined) {
-            delete array[resultLength++];
-        }
-    }
-    array.length = resultLength;
-    return array;
-}
-
-exports.pullAllWith = pullAllWith;
Index: de_modules/es-toolkit/dist/compat/array/pullAllWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAllWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import copyArray from '../_internal/copyArray.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function pullAllWith(array, values, comparator) {
-    if (array?.length == null || values?.length == null) {
-        return array;
-    }
-    if (array === values) {
-        values = copyArray(values);
-    }
-    let resultLength = 0;
-    if (comparator == null) {
-        comparator = (a, b) => isEqualsSameValueZero(a, b);
-    }
-    const valuesArray = Array.isArray(values) ? values : Array.from(values);
-    const hasUndefined = valuesArray.includes(undefined);
-    for (let i = 0; i < array.length; i++) {
-        if (i in array) {
-            const shouldRemove = valuesArray.some(value => comparator(array[i], value));
-            if (!shouldRemove) {
-                array[resultLength++] = array[i];
-            }
-            continue;
-        }
-        if (!hasUndefined) {
-            delete array[resultLength++];
-        }
-    }
-    array.length = resultLength;
-    return array;
-}
-
-export { pullAllWith };
Index: de_modules/es-toolkit/dist/compat/array/pullAt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
- * Indexes may be specified as an array of indexes or as individual arguments.
- *
- * **Note:** Unlike `_.at`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {...Array<number | number[]>} indexes - The indexes of elements to remove, specified as individual indexes or arrays of indexes.
- * @returns {T[]} Returns the new array of removed elements.
- *
- * @example
- * var array = [5, 10, 15, 20];
- * var evens = pullAt(array, 1, 3);
- *
- * console.log(array);
- * // => [5, 15]
- *
- * console.log(evens);
- * // => [10, 20]
- */
-declare function pullAt<T>(array: T[], ...indexes: Array<Many<number>>): T[];
-/**
- * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
- * Indexes may be specified as an array of indexes or as individual arguments.
- *
- * **Note:** Unlike `_.at`, this method mutates `array`.
- *
- * @template L
- * @param {L} array - The array to modify.
- * @param {...Array<number | number[]>} indexes - The indexes of elements to remove, specified as individual indexes or arrays of indexes.
- * @returns {L} Returns the new array of removed elements.
- *
- * @example
- * var array = [5, 10, 15, 20];
- * var evens = pullAt(array, 1, 3);
- *
- * console.log(array);
- * // => [5, 15]
- *
- * console.log(evens);
- * // => [10, 20]
- */
-declare function pullAt<L extends MutableList<any>>(array: RejectReadonly<L>, ...indexes: Array<Many<number>>): L;
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/compat/array/pullAt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { Many } from '../_internal/Many.js';
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
- * Indexes may be specified as an array of indexes or as individual arguments.
- *
- * **Note:** Unlike `_.at`, this method mutates `array`.
- *
- * @template T
- * @param {T[]} array - The array to modify.
- * @param {...Array<number | number[]>} indexes - The indexes of elements to remove, specified as individual indexes or arrays of indexes.
- * @returns {T[]} Returns the new array of removed elements.
- *
- * @example
- * var array = [5, 10, 15, 20];
- * var evens = pullAt(array, 1, 3);
- *
- * console.log(array);
- * // => [5, 15]
- *
- * console.log(evens);
- * // => [10, 20]
- */
-declare function pullAt<T>(array: T[], ...indexes: Array<Many<number>>): T[];
-/**
- * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
- * Indexes may be specified as an array of indexes or as individual arguments.
- *
- * **Note:** Unlike `_.at`, this method mutates `array`.
- *
- * @template L
- * @param {L} array - The array to modify.
- * @param {...Array<number | number[]>} indexes - The indexes of elements to remove, specified as individual indexes or arrays of indexes.
- * @returns {L} Returns the new array of removed elements.
- *
- * @example
- * var array = [5, 10, 15, 20];
- * var evens = pullAt(array, 1, 3);
- *
- * console.log(array);
- * // => [5, 15]
- *
- * console.log(evens);
- * // => [10, 20]
- */
-declare function pullAt<L extends MutableList<any>>(array: RejectReadonly<L>, ...indexes: Array<Many<number>>): L;
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/compat/array/pullAt.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flattenDepth = require('./flattenDepth.js');
-const isIndex = require('../_internal/isIndex.js');
-const isKey = require('../_internal/isKey.js');
-const toKey = require('../_internal/toKey.js');
-const at = require('../object/at.js');
-const unset = require('../object/unset.js');
-const isArray = require('../predicate/isArray.js');
-const toPath = require('../util/toPath.js');
-
-function pullAt(array, ..._indices) {
-    const indices = flattenDepth.flattenDepth(_indices, 1);
-    if (!array) {
-        return Array(indices.length);
-    }
-    const result = at.at(array, indices);
-    const indicesToPull = indices
-        .map(index => (isIndex.isIndex(index, array.length) ? Number(index) : index))
-        .sort((a, b) => b - a);
-    for (const index of new Set(indicesToPull)) {
-        if (isIndex.isIndex(index, array.length)) {
-            Array.prototype.splice.call(array, index, 1);
-            continue;
-        }
-        if (isKey.isKey(index, array)) {
-            delete array[toKey.toKey(index)];
-            continue;
-        }
-        const path = isArray.isArray(index) ? index : toPath.toPath(index);
-        unset.unset(array, path);
-    }
-    return result;
-}
-
-exports.pullAt = pullAt;
Index: de_modules/es-toolkit/dist/compat/array/pullAt.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/pullAt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { flattenDepth } from './flattenDepth.mjs';
-import { isIndex } from '../_internal/isIndex.mjs';
-import { isKey } from '../_internal/isKey.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { at } from '../object/at.mjs';
-import { unset } from '../object/unset.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function pullAt(array, ..._indices) {
-    const indices = flattenDepth(_indices, 1);
-    if (!array) {
-        return Array(indices.length);
-    }
-    const result = at(array, indices);
-    const indicesToPull = indices
-        .map(index => (isIndex(index, array.length) ? Number(index) : index))
-        .sort((a, b) => b - a);
-    for (const index of new Set(indicesToPull)) {
-        if (isIndex(index, array.length)) {
-            Array.prototype.splice.call(array, index, 1);
-            continue;
-        }
-        if (isKey(index, array)) {
-            delete array[toKey(index)];
-            continue;
-        }
-        const path = isArray(index) ? index : toPath(index);
-        unset(array, path);
-    }
-    return result;
-}
-
-export { pullAt };
Index: de_modules/es-toolkit/dist/compat/array/reduce.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduce.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import { MemoListIterator } from '../_internal/MemoListIterator.mjs';
-import { MemoObjectIterator } from '../_internal/MemoObjectIterator.mjs';
-
-/**
- * Reduces an array to a single value using an iteratee function.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {MemoListIterator<T, U, T[]>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const array = [1, 2, 3];
- * reduce(array, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T, U>(collection: T[] | null | undefined, callback: MemoListIterator<T, U, T[]>, accumulator: U): U;
-/**
- * Reduces an array-like object to a single value using an iteratee function.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {MemoListIterator<T, U, ArrayLike<T>>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const arrayLike = {0: 1, 1: 2, 2: 3, length: 3};
- * reduce(arrayLike, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T, U>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, U, ArrayLike<T>>, accumulator: U): U;
-/**
- * Reduces an object to a single value using an iteratee function.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {MemoObjectIterator<T[keyof T], U, T>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * reduce(obj, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T extends object, U>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], U, T>, accumulator: U): U;
-/**
- * Reduces an array to a single value using an iteratee function.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {MemoListIterator<T, T, T[]>} callback - The function invoked per iteration
- * @returns {T | undefined} Returns the accumulated value
- *
- * @example
- * const array = [1, 2, 3];
- * reduce(array, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T>(collection: T[] | null | undefined, callback: MemoListIterator<T, T, T[]>): T | undefined;
-/**
- * Reduces an array-like object to a single value using an iteratee function.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {MemoListIterator<T, T, ArrayLike<T>>} callback - The function invoked per iteration
- * @returns {T | undefined} Returns the accumulated value
- *
- * @example
- * const arrayLike = {0: 1, 1: 2, 2: 3, length: 3};
- * reduce(arrayLike, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, T, ArrayLike<T>>): T | undefined;
-/**
- * Reduces an object to a single value using an iteratee function.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {MemoObjectIterator<T[keyof T], T[keyof T], T>} callback - The function invoked per iteration
- * @returns {T[keyof T] | undefined} Returns the accumulated value
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * reduce(obj, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T extends object>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], T[keyof T], T>): T[keyof T] | undefined;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/compat/array/reduce.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import { MemoListIterator } from '../_internal/MemoListIterator.js';
-import { MemoObjectIterator } from '../_internal/MemoObjectIterator.js';
-
-/**
- * Reduces an array to a single value using an iteratee function.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {MemoListIterator<T, U, T[]>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const array = [1, 2, 3];
- * reduce(array, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T, U>(collection: T[] | null | undefined, callback: MemoListIterator<T, U, T[]>, accumulator: U): U;
-/**
- * Reduces an array-like object to a single value using an iteratee function.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {MemoListIterator<T, U, ArrayLike<T>>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const arrayLike = {0: 1, 1: 2, 2: 3, length: 3};
- * reduce(arrayLike, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T, U>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, U, ArrayLike<T>>, accumulator: U): U;
-/**
- * Reduces an object to a single value using an iteratee function.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {MemoObjectIterator<T[keyof T], U, T>} callback - The function invoked per iteration
- * @param {U} accumulator - The initial value
- * @returns {U} Returns the accumulated value
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * reduce(obj, (acc, value) => acc + value, 0); // => 6
- */
-declare function reduce<T extends object, U>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], U, T>, accumulator: U): U;
-/**
- * Reduces an array to a single value using an iteratee function.
- *
- * @param {T[] | null | undefined} collection - The array to iterate over
- * @param {MemoListIterator<T, T, T[]>} callback - The function invoked per iteration
- * @returns {T | undefined} Returns the accumulated value
- *
- * @example
- * const array = [1, 2, 3];
- * reduce(array, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T>(collection: T[] | null | undefined, callback: MemoListIterator<T, T, T[]>): T | undefined;
-/**
- * Reduces an array-like object to a single value using an iteratee function.
- *
- * @param {ArrayLike<T> | null | undefined} collection - The array-like object to iterate over
- * @param {MemoListIterator<T, T, ArrayLike<T>>} callback - The function invoked per iteration
- * @returns {T | undefined} Returns the accumulated value
- *
- * @example
- * const arrayLike = {0: 1, 1: 2, 2: 3, length: 3};
- * reduce(arrayLike, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, T, ArrayLike<T>>): T | undefined;
-/**
- * Reduces an object to a single value using an iteratee function.
- *
- * @param {T | null | undefined} collection - The object to iterate over
- * @param {MemoObjectIterator<T[keyof T], T[keyof T], T>} callback - The function invoked per iteration
- * @returns {T[keyof T] | undefined} Returns the accumulated value
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * reduce(obj, (acc, value) => acc + value); // => 6
- */
-declare function reduce<T extends object>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], T[keyof T], T>): T[keyof T] | undefined;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/compat/array/reduce.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const range = require('../../math/range.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function reduce(collection, iteratee = identity.identity, accumulator) {
-    if (!collection) {
-        return accumulator;
-    }
-    let keys;
-    let startIndex = 0;
-    if (isArrayLike.isArrayLike(collection)) {
-        keys = range.range(0, collection.length);
-        if (accumulator == null && collection.length > 0) {
-            accumulator = collection[0];
-            startIndex += 1;
-        }
-    }
-    else {
-        keys = Object.keys(collection);
-        if (accumulator == null) {
-            accumulator = collection[keys[0]];
-            startIndex += 1;
-        }
-    }
-    for (let i = startIndex; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        accumulator = iteratee(accumulator, value, key, collection);
-    }
-    return accumulator;
-}
-
-exports.reduce = reduce;
Index: de_modules/es-toolkit/dist/compat/array/reduce.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduce.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { range } from '../../math/range.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function reduce(collection, iteratee = identity, accumulator) {
-    if (!collection) {
-        return accumulator;
-    }
-    let keys;
-    let startIndex = 0;
-    if (isArrayLike(collection)) {
-        keys = range(0, collection.length);
-        if (accumulator == null && collection.length > 0) {
-            accumulator = collection[0];
-            startIndex += 1;
-        }
-    }
-    else {
-        keys = Object.keys(collection);
-        if (accumulator == null) {
-            accumulator = collection[keys[0]];
-            startIndex += 1;
-        }
-    }
-    for (let i = startIndex; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        accumulator = iteratee(accumulator, value, key, collection);
-    }
-    return accumulator;
-}
-
-export { reduce };
Index: de_modules/es-toolkit/dist/compat/array/reduceRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduceRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,118 +1,0 @@
-import { MemoListIterator } from '../_internal/MemoListIterator.mjs';
-import { MemoObjectIterator } from '../_internal/MemoObjectIterator.mjs';
-
-/**
- * Reduces an array to a single value using an iteratee function, starting from the right.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * @template T, U
- * @param {T[] | null | undefined} collection - The array to iterate over.
- * @param {MemoListIterator<T, U, T[]>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T, U>(collection: T[] | null | undefined, callback: MemoListIterator<T, U, T[]>, accumulator: U): U;
-/**
- * Reduces an array-like collection to a single value using an iteratee function, starting from the right.
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} collection - The array-like collection to iterate over.
- * @param {MemoListIterator<T, U, ArrayLike<T>>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T, U>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, U, ArrayLike<T>>, accumulator: U): U;
-/**
- * Reduces an object to a single value using an iteratee function, starting from the right.
- *
- * @template T, U
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {MemoObjectIterator<T[keyof T], U, T>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight({ a: 1, b: 2, c: 3 }, (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T extends object, U>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], U, T>, accumulator: U): U;
-/**
- * Reduces an array to a single value using an iteratee function, starting from the right.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * @template T
- * @param {T[] | null | undefined} collection - The array to iterate over.
- * @param {MemoListIterator<T, T, T[]>} callback - The function invoked per iteration.
- * @returns {T | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T>(collection: T[] | null | undefined, callback: MemoListIterator<T, T, T[]>): T | undefined;
-/**
- * Reduces an array-like collection to a single value using an iteratee function, starting from the right.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The array-like collection to iterate over.
- * @param {MemoListIterator<T, T, ArrayLike<T>>} callback - The function invoked per iteration.
- * @returns {T | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, T, ArrayLike<T>>): T | undefined;
-/**
- * Reduces an object to a single value using an iteratee function, starting from the right.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {MemoObjectIterator<T[keyof T], T[keyof T], T>} callback - The function invoked per iteration.
- * @returns {T[keyof T] | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight({ a: 1, b: 2, c: 3 }, (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T extends object>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], T[keyof T], T>): T[keyof T] | undefined;
-
-export { reduceRight };
Index: de_modules/es-toolkit/dist/compat/array/reduceRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduceRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,118 +1,0 @@
-import { MemoListIterator } from '../_internal/MemoListIterator.js';
-import { MemoObjectIterator } from '../_internal/MemoObjectIterator.js';
-
-/**
- * Reduces an array to a single value using an iteratee function, starting from the right.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * @template T, U
- * @param {T[] | null | undefined} collection - The array to iterate over.
- * @param {MemoListIterator<T, U, T[]>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T, U>(collection: T[] | null | undefined, callback: MemoListIterator<T, U, T[]>, accumulator: U): U;
-/**
- * Reduces an array-like collection to a single value using an iteratee function, starting from the right.
- *
- * @template T, U
- * @param {ArrayLike<T> | null | undefined} collection - The array-like collection to iterate over.
- * @param {MemoListIterator<T, U, ArrayLike<T>>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T, U>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, U, ArrayLike<T>>, accumulator: U): U;
-/**
- * Reduces an object to a single value using an iteratee function, starting from the right.
- *
- * @template T, U
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {MemoObjectIterator<T[keyof T], U, T>} callback - The function invoked per iteration.
- * @param {U} accumulator - The initial value.
- * @returns {U} Returns the accumulated value.
- *
- * @example
- * reduceRight({ a: 1, b: 2, c: 3 }, (acc, value) => acc + value, 0);
- * // => 6
- */
-declare function reduceRight<T extends object, U>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], U, T>, accumulator: U): U;
-/**
- * Reduces an array to a single value using an iteratee function, starting from the right.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * The `reduceRight()` function goes through each element in an array from right to left and applies a special function (called a "reducer") to them, one by one.
- * This function takes the result of the previous step and the current element to perform a calculation.
- * After going through all the elements, the function gives you one final result.
- *
- * When the `reduceRight()` function starts, there's no previous result to use.
- * If you provide an initial value, it starts with that.
- * If not, it uses the last element of the array and begins with the second to last element for the calculation.
- *
- * @template T
- * @param {T[] | null | undefined} collection - The array to iterate over.
- * @param {MemoListIterator<T, T, T[]>} callback - The function invoked per iteration.
- * @returns {T | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T>(collection: T[] | null | undefined, callback: MemoListIterator<T, T, T[]>): T | undefined;
-/**
- * Reduces an array-like collection to a single value using an iteratee function, starting from the right.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The array-like collection to iterate over.
- * @param {MemoListIterator<T, T, ArrayLike<T>>} callback - The function invoked per iteration.
- * @returns {T | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight([1, 2, 3], (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T>(collection: ArrayLike<T> | null | undefined, callback: MemoListIterator<T, T, ArrayLike<T>>): T | undefined;
-/**
- * Reduces an object to a single value using an iteratee function, starting from the right.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {MemoObjectIterator<T[keyof T], T[keyof T], T>} callback - The function invoked per iteration.
- * @returns {T[keyof T] | undefined} Returns the accumulated value.
- *
- * @example
- * reduceRight({ a: 1, b: 2, c: 3 }, (acc, value) => acc + value);
- * // => 6
- */
-declare function reduceRight<T extends object>(collection: T | null | undefined, callback: MemoObjectIterator<T[keyof T], T[keyof T], T>): T[keyof T] | undefined;
-
-export { reduceRight };
Index: de_modules/es-toolkit/dist/compat/array/reduceRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduceRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const range = require('../../math/range.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function reduceRight(collection, iteratee = identity.identity, accumulator) {
-    if (!collection) {
-        return accumulator;
-    }
-    let keys;
-    let startIndex;
-    if (isArrayLike.isArrayLike(collection)) {
-        keys = range.range(0, collection.length).reverse();
-        if (accumulator == null && collection.length > 0) {
-            accumulator = collection[collection.length - 1];
-            startIndex = 1;
-        }
-        else {
-            startIndex = 0;
-        }
-    }
-    else {
-        keys = Object.keys(collection).reverse();
-        if (accumulator == null) {
-            accumulator = collection[keys[0]];
-            startIndex = 1;
-        }
-        else {
-            startIndex = 0;
-        }
-    }
-    for (let i = startIndex; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        accumulator = iteratee(accumulator, value, key, collection);
-    }
-    return accumulator;
-}
-
-exports.reduceRight = reduceRight;
Index: de_modules/es-toolkit/dist/compat/array/reduceRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reduceRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { range } from '../../math/range.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function reduceRight(collection, iteratee = identity, accumulator) {
-    if (!collection) {
-        return accumulator;
-    }
-    let keys;
-    let startIndex;
-    if (isArrayLike(collection)) {
-        keys = range(0, collection.length).reverse();
-        if (accumulator == null && collection.length > 0) {
-            accumulator = collection[collection.length - 1];
-            startIndex = 1;
-        }
-        else {
-            startIndex = 0;
-        }
-    }
-    else {
-        keys = Object.keys(collection).reverse();
-        if (accumulator == null) {
-            accumulator = collection[keys[0]];
-            startIndex = 1;
-        }
-        else {
-            startIndex = 0;
-        }
-    }
-    for (let i = startIndex; i < keys.length; i++) {
-        const key = keys[i];
-        const value = collection[key];
-        accumulator = iteratee(accumulator, value, key, collection);
-    }
-    return accumulator;
-}
-
-export { reduceRight };
Index: de_modules/es-toolkit/dist/compat/array/reject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-import { StringIterator } from '../_internal/StringIterator.mjs';
-
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @param {string | null | undefined} collection The string to iterate over
- * @param {StringIterator<boolean>} [predicate] The function invoked per iteration
- * @returns {string[]} Returns a new array of characters that do not satisfy the predicate
- * @example
- * reject('abc', char => char === 'b')
- * // => ['a', 'c']
- */
-declare function reject(collection: string | null | undefined, predicate?: StringIterator<boolean>): string[];
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection The array-like to iterate over
- * @param {ListIterateeCustom<T, boolean>} [predicate] The function invoked per iteration
- * @returns {T[]} Returns a new array of elements that do not satisfy the predicate
- * @example
- * reject([1, 2, 3], num => num % 2 === 0)
- * // => [1, 3]
- *
- * reject([{ a: 1 }, { a: 2 }, { b: 1 }], 'a')
- * // => [{ b: 1 }]
- */
-declare function reject<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): T[];
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @template T
- * @param {T | null | undefined} collection The object to iterate over
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] The function invoked per iteration
- * @returns {Array<T[keyof T]>} Returns a new array of elements that do not satisfy the predicate
- * @example
- * reject({ a: 1, b: 2, c: 3 }, value => value % 2 === 0)
- * // => [1, 3]
- *
- * reject({ item1: { a: 0, b: true }, item2: { a: 1, b: true }, item3: { a: 2, b: false }}, { b: false })
- * // => [{ a: 0, b: true }, { a: 1, b: true }]
- */
-declare function reject<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): Array<T[keyof T]>;
-
-export { reject };
Index: de_modules/es-toolkit/dist/compat/array/reject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-import { StringIterator } from '../_internal/StringIterator.js';
-
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @param {string | null | undefined} collection The string to iterate over
- * @param {StringIterator<boolean>} [predicate] The function invoked per iteration
- * @returns {string[]} Returns a new array of characters that do not satisfy the predicate
- * @example
- * reject('abc', char => char === 'b')
- * // => ['a', 'c']
- */
-declare function reject(collection: string | null | undefined, predicate?: StringIterator<boolean>): string[];
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection The array-like to iterate over
- * @param {ListIterateeCustom<T, boolean>} [predicate] The function invoked per iteration
- * @returns {T[]} Returns a new array of elements that do not satisfy the predicate
- * @example
- * reject([1, 2, 3], num => num % 2 === 0)
- * // => [1, 3]
- *
- * reject([{ a: 1 }, { a: 2 }, { b: 1 }], 'a')
- * // => [{ b: 1 }]
- */
-declare function reject<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): T[];
-/**
- * Iterates over the collection and rejects elements based on the given predicate.
- * If a function is provided, it is invoked for each element in the collection.
- *
- * @template T
- * @param {T | null | undefined} collection The object to iterate over
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] The function invoked per iteration
- * @returns {Array<T[keyof T]>} Returns a new array of elements that do not satisfy the predicate
- * @example
- * reject({ a: 1, b: 2, c: 3 }, value => value % 2 === 0)
- * // => [1, 3]
- *
- * reject({ item1: { a: 0, b: true }, item2: { a: 1, b: true }, item3: { a: 2, b: false }}, { b: false })
- * // => [{ a: 0, b: true }, { a: 1, b: true }]
- */
-declare function reject<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): Array<T[keyof T]>;
-
-export { reject };
Index: de_modules/es-toolkit/dist/compat/array/reject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const filter = require('./filter.js');
-const identity = require('../../function/identity.js');
-const negate = require('../function/negate.js');
-const iteratee = require('../util/iteratee.js');
-
-function reject(source, predicate = identity.identity) {
-    return filter.filter(source, negate.negate(iteratee.iteratee(predicate)));
-}
-
-exports.reject = reject;
Index: de_modules/es-toolkit/dist/compat/array/reject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { filter } from './filter.mjs';
-import { identity } from '../../function/identity.mjs';
-import { negate } from '../function/negate.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function reject(source, predicate = identity) {
-    return filter(source, negate(iteratee(predicate)));
-}
-
-export { reject };
Index: de_modules/es-toolkit/dist/compat/array/remove.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/remove.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * Removes all elements from array that predicate returns truthy for and returns an array of the removed elements.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {ListIteratee<L[0]>} [predicate] - The function invoked per iteration.
- * @returns {Array<L[0]>} Returns the new array of removed elements.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * const evens = remove(array, n => n % 2 === 0);
- * console.log(array); // => [1, 3]
- * console.log(evens); // => [2, 4]
- */
-declare function remove<L extends MutableList<any>>(array: RejectReadonly<L>, predicate?: ListIteratee<L[0]>): Array<L[0]>;
-
-export { remove };
Index: de_modules/es-toolkit/dist/compat/array/remove.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/remove.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * Removes all elements from array that predicate returns truthy for and returns an array of the removed elements.
- *
- * @template L
- * @param {RejectReadonly<L>} array - The array to modify.
- * @param {ListIteratee<L[0]>} [predicate] - The function invoked per iteration.
- * @returns {Array<L[0]>} Returns the new array of removed elements.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * const evens = remove(array, n => n % 2 === 0);
- * console.log(array); // => [1, 3]
- * console.log(evens); // => [2, 4]
- */
-declare function remove<L extends MutableList<any>>(array: RejectReadonly<L>, predicate?: ListIteratee<L[0]>): Array<L[0]>;
-
-export { remove };
Index: de_modules/es-toolkit/dist/compat/array/remove.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/remove.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const remove$1 = require('../../array/remove.js');
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function remove(arr, shouldRemoveElement = identity.identity) {
-    return remove$1.remove(arr, iteratee.iteratee(shouldRemoveElement));
-}
-
-exports.remove = remove;
Index: de_modules/es-toolkit/dist/compat/array/remove.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/remove.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { remove as remove$1 } from '../../array/remove.mjs';
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function remove(arr, shouldRemoveElement = identity) {
-    return remove$1(arr, iteratee(shouldRemoveElement));
-}
-
-export { remove };
Index: de_modules/es-toolkit/dist/compat/array/reverse.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reverse.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.mjs';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.mjs';
-
-/**
- * Reverses `array` so that the first element becomes the last, the second element becomes the second to last, and so on.
- *
- * @template L
- * @param {L extends readonly any[] ? never : L} array - The array to reverse.
- * @returns {L} Returns `array`.
- *
- * @example
- * const array = [1, 2, 3];
- * reverse(array);
- * // => [3, 2, 1]
- */
-declare function reverse<L extends MutableList<any>>(array: RejectReadonly<L>): L;
-
-export { reverse };
Index: de_modules/es-toolkit/dist/compat/array/reverse.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reverse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { MutableList } from '../_internal/MutableList.d.js';
-import { RejectReadonly } from '../_internal/RejectReadonly.d.js';
-
-/**
- * Reverses `array` so that the first element becomes the last, the second element becomes the second to last, and so on.
- *
- * @template L
- * @param {L extends readonly any[] ? never : L} array - The array to reverse.
- * @returns {L} Returns `array`.
- *
- * @example
- * const array = [1, 2, 3];
- * reverse(array);
- * // => [3, 2, 1]
- */
-declare function reverse<L extends MutableList<any>>(array: RejectReadonly<L>): L;
-
-export { reverse };
Index: de_modules/es-toolkit/dist/compat/array/reverse.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function reverse(array) {
-    if (array == null) {
-        return array;
-    }
-    return array.reverse();
-}
-
-exports.reverse = reverse;
Index: de_modules/es-toolkit/dist/compat/array/reverse.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/reverse.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function reverse(array) {
-    if (array == null) {
-        return array;
-    }
-    return array.reverse();
-}
-
-export { reverse };
Index: de_modules/es-toolkit/dist/compat/array/sample.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sample.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {readonly [T, ...T[]]} collection - The collection to sample.
- * @returns {T} Returns the random element.
- *
- * @example
- * sample([1, 2, 3, 4]);
- * // => 2
- */
-declare function sample<T>(collection: readonly [T, ...T[]]): T;
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The collection to sample.
- * @returns {T | undefined} Returns the random element.
- *
- * @example
- * sample({ 'a': 1, 'b': 2, 'c': 3 });
- * // => 2
- */
-declare function sample<T>(collection: Record<string, T> | Record<number, T> | null | undefined): T | undefined;
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {T | null | undefined} collection - The collection to sample.
- * @returns {T[keyof T] | undefined} Returns the random element.
- *
- * @example
- * sample({ 'a': 1, 'b': 2, 'c': 3 });
- * // => 2
- */
-declare function sample<T extends object>(collection: T | null | undefined): T[keyof T] | undefined;
-
-export { sample };
Index: de_modules/es-toolkit/dist/compat/array/sample.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sample.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {readonly [T, ...T[]]} collection - The collection to sample.
- * @returns {T} Returns the random element.
- *
- * @example
- * sample([1, 2, 3, 4]);
- * // => 2
- */
-declare function sample<T>(collection: readonly [T, ...T[]]): T;
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The collection to sample.
- * @returns {T | undefined} Returns the random element.
- *
- * @example
- * sample({ 'a': 1, 'b': 2, 'c': 3 });
- * // => 2
- */
-declare function sample<T>(collection: Record<string, T> | Record<number, T> | null | undefined): T | undefined;
-/**
- * Gets a random element from collection.
- *
- * @template T
- * @param {T | null | undefined} collection - The collection to sample.
- * @returns {T[keyof T] | undefined} Returns the random element.
- *
- * @example
- * sample({ 'a': 1, 'b': 2, 'c': 3 });
- * // => 2
- */
-declare function sample<T extends object>(collection: T | null | undefined): T[keyof T] | undefined;
-
-export { sample };
Index: de_modules/es-toolkit/dist/compat/array/sample.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sample.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sample$1 = require('../../array/sample.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function sample(collection) {
-    if (collection == null) {
-        return undefined;
-    }
-    if (isArrayLike.isArrayLike(collection)) {
-        return sample$1.sample(toArray.toArray(collection));
-    }
-    return sample$1.sample(Object.values(collection));
-}
-
-exports.sample = sample;
Index: de_modules/es-toolkit/dist/compat/array/sample.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sample.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { sample as sample$1 } from '../../array/sample.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function sample(collection) {
-    if (collection == null) {
-        return undefined;
-    }
-    if (isArrayLike(collection)) {
-        return sample$1(toArray(collection));
-    }
-    return sample$1(Object.values(collection));
-}
-
-export { sample };
Index: de_modules/es-toolkit/dist/compat/array/sampleSize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sampleSize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Returns a sample element array of a specified size from a collection.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The collection to sample from.
- * @param {number} [n] - The size of sample.
- * @returns {T[]} A new array with sample size applied.
- *
- * @example
- * sampleSize([1, 2, 3], 2);
- * // => [2, 3] (example, actual result will vary)
- */
-declare function sampleSize<T>(collection: Record<string, T> | Record<number, T> | null | undefined, n?: number): T[];
-/**
- * Returns a sample element array of a specified size from an object.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to sample from.
- * @param {number} [n] - The size of sample.
- * @returns {Array<T[keyof T]>} A new array with sample size applied.
- *
- * @example
- * sampleSize({ a: 1, b: 2, c: 3 }, 2);
- * // => [2, 3] (example, actual result will vary)
- */
-declare function sampleSize<T extends object>(collection: T | null | undefined, n?: number): Array<T[keyof T]>;
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/compat/array/sampleSize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sampleSize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Returns a sample element array of a specified size from a collection.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} collection - The collection to sample from.
- * @param {number} [n] - The size of sample.
- * @returns {T[]} A new array with sample size applied.
- *
- * @example
- * sampleSize([1, 2, 3], 2);
- * // => [2, 3] (example, actual result will vary)
- */
-declare function sampleSize<T>(collection: Record<string, T> | Record<number, T> | null | undefined, n?: number): T[];
-/**
- * Returns a sample element array of a specified size from an object.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to sample from.
- * @param {number} [n] - The size of sample.
- * @returns {Array<T[keyof T]>} A new array with sample size applied.
- *
- * @example
- * sampleSize({ a: 1, b: 2, c: 3 }, 2);
- * // => [2, 3] (example, actual result will vary)
- */
-declare function sampleSize<T extends object>(collection: T | null | undefined, n?: number): Array<T[keyof T]>;
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/compat/array/sampleSize.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sampleSize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sampleSize$1 = require('../../array/sampleSize.js');
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const clamp = require('../math/clamp.js');
-const toArray = require('../util/toArray.js');
-const toInteger = require('../util/toInteger.js');
-
-function sampleSize(collection, size, guard) {
-    const arrayCollection = toArray.toArray(collection);
-    if (guard ? isIterateeCall.isIterateeCall(collection, size, guard) : size === undefined) {
-        size = 1;
-    }
-    else {
-        size = clamp.clamp(toInteger.toInteger(size), 0, arrayCollection.length);
-    }
-    return sampleSize$1.sampleSize(arrayCollection, size);
-}
-
-exports.sampleSize = sampleSize;
Index: de_modules/es-toolkit/dist/compat/array/sampleSize.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sampleSize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { sampleSize as sampleSize$1 } from '../../array/sampleSize.mjs';
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { clamp } from '../math/clamp.mjs';
-import { toArray } from '../util/toArray.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function sampleSize(collection, size, guard) {
-    const arrayCollection = toArray(collection);
-    if (guard ? isIterateeCall(collection, size, guard) : size === undefined) {
-        size = 1;
-    }
-    else {
-        size = clamp(toInteger(size), 0, arrayCollection.length);
-    }
-    return sampleSize$1(arrayCollection, size);
-}
-
-export { sampleSize };
Index: de_modules/es-toolkit/dist/compat/array/shuffle.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/shuffle.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Randomizes the order of elements in an `array` using the Fisher-Yates algorithm.
- *
- * This function takes an `array` and returns a new `array` with its elements shuffled in a random order.
- *
- * @template T - The type of elements in the `array`.
- * @param {T[]} array - The `array` to shuffle.
- * @returns {T[]} A new `array` with its elements shuffled in random order.
- */
-declare function shuffle<T>(array: ArrayLike<T> | null | undefined): T[];
-/**
- * Randomizes the order of elements in an `object` using the Fisher-Yates algorithm.
- *
- * This function takes an `object` and returns a new `object` with its values shuffled in a random order.
- *
- * @template T - The type of elements in the `object`.
- * @param {T} object - The `object` to shuffle.
- * @returns {T[]} A new `Array` with the values of the `object` shuffled in a random order.
- */
-declare function shuffle<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/compat/array/shuffle.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/shuffle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Randomizes the order of elements in an `array` using the Fisher-Yates algorithm.
- *
- * This function takes an `array` and returns a new `array` with its elements shuffled in a random order.
- *
- * @template T - The type of elements in the `array`.
- * @param {T[]} array - The `array` to shuffle.
- * @returns {T[]} A new `array` with its elements shuffled in random order.
- */
-declare function shuffle<T>(array: ArrayLike<T> | null | undefined): T[];
-/**
- * Randomizes the order of elements in an `object` using the Fisher-Yates algorithm.
- *
- * This function takes an `object` and returns a new `object` with its values shuffled in a random order.
- *
- * @template T - The type of elements in the `object`.
- * @param {T} object - The `object` to shuffle.
- * @returns {T[]} A new `Array` with the values of the `object` shuffled in a random order.
- */
-declare function shuffle<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/compat/array/shuffle.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const shuffle$1 = require('../../array/shuffle.js');
-const values = require('../object/values.js');
-const isArray = require('../predicate/isArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isNil = require('../predicate/isNil.js');
-const isObjectLike = require('../predicate/isObjectLike.js');
-
-function shuffle(collection) {
-    if (isNil.isNil(collection)) {
-        return [];
-    }
-    if (isArray.isArray(collection)) {
-        return shuffle$1.shuffle(collection);
-    }
-    if (isArrayLike.isArrayLike(collection)) {
-        return shuffle$1.shuffle(Array.from(collection));
-    }
-    if (isObjectLike.isObjectLike(collection)) {
-        return shuffle$1.shuffle(values.values(collection));
-    }
-    return [];
-}
-
-exports.shuffle = shuffle;
Index: de_modules/es-toolkit/dist/compat/array/shuffle.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/shuffle.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { shuffle as shuffle$1 } from '../../array/shuffle.mjs';
-import { values } from '../object/values.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isNil } from '../predicate/isNil.mjs';
-import { isObjectLike } from '../predicate/isObjectLike.mjs';
-
-function shuffle(collection) {
-    if (isNil(collection)) {
-        return [];
-    }
-    if (isArray(collection)) {
-        return shuffle$1(collection);
-    }
-    if (isArrayLike(collection)) {
-        return shuffle$1(Array.from(collection));
-    }
-    if (isObjectLike(collection)) {
-        return shuffle$1(values(collection));
-    }
-    return [];
-}
-
-export { shuffle };
Index: de_modules/es-toolkit/dist/compat/array/size.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/size.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/**
- * Returns the length of an array, string, or object.
- *
- * This function takes an array, string, or object and returns its length.
- * For arrays and strings, it returns the number of elements or characters, respectively.
- * For objects, it returns the number of enumerable properties.
- *
- * @template T - The type of the input value.
- * @param {T[] | object | string | Map<unknown, T> | Set<T> | null | undefined } target - The value whose size is to be determined. It can be an array, string, or object.
- * @returns {number} The size of the input value.
- *
- * @example
- * const arr = [1, 2, 3];
- * const arrSize = size(arr);
- * // arrSize will be 3
- *
- * const str = 'hello';
- * const strSize = size(str);
- * // strSize will be 5
- *
- * const obj = { a: 1, b: 2, c: 3 };
- * const objSize = size(obj);
- * // objSize will be 3
- *
- * const emptyArr = [];
- * const emptyArrSize = size(emptyArr);
- * // emptyArrSize will be 0
- *
- * const emptyStr = '';
- * const emptyStrSize = size(emptyStr);
- * // emptyStrSize will be 0
- *
- * const emptyObj = {};
- * const emptyObjSize = size(emptyObj);
- * // emptyObjSize will be 0
- */
-declare function size(collection: object | string | null | undefined): number;
-
-export { size };
Index: de_modules/es-toolkit/dist/compat/array/size.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/size.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/**
- * Returns the length of an array, string, or object.
- *
- * This function takes an array, string, or object and returns its length.
- * For arrays and strings, it returns the number of elements or characters, respectively.
- * For objects, it returns the number of enumerable properties.
- *
- * @template T - The type of the input value.
- * @param {T[] | object | string | Map<unknown, T> | Set<T> | null | undefined } target - The value whose size is to be determined. It can be an array, string, or object.
- * @returns {number} The size of the input value.
- *
- * @example
- * const arr = [1, 2, 3];
- * const arrSize = size(arr);
- * // arrSize will be 3
- *
- * const str = 'hello';
- * const strSize = size(str);
- * // strSize will be 5
- *
- * const obj = { a: 1, b: 2, c: 3 };
- * const objSize = size(obj);
- * // objSize will be 3
- *
- * const emptyArr = [];
- * const emptyArrSize = size(emptyArr);
- * // emptyArrSize will be 0
- *
- * const emptyStr = '';
- * const emptyStrSize = size(emptyStr);
- * // emptyStrSize will be 0
- *
- * const emptyObj = {};
- * const emptyObjSize = size(emptyObj);
- * // emptyObjSize will be 0
- */
-declare function size(collection: object | string | null | undefined): number;
-
-export { size };
Index: de_modules/es-toolkit/dist/compat/array/size.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/size.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isNil = require('../../predicate/isNil.js');
-
-function size(target) {
-    if (isNil.isNil(target)) {
-        return 0;
-    }
-    if (target instanceof Map || target instanceof Set) {
-        return target.size;
-    }
-    return Object.keys(target).length;
-}
-
-exports.size = size;
Index: de_modules/es-toolkit/dist/compat/array/size.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/size.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { isNil } from '../../predicate/isNil.mjs';
-
-function size(target) {
-    if (isNil(target)) {
-        return 0;
-    }
-    if (target instanceof Map || target instanceof Set) {
-        return target.size;
-    }
-    return Object.keys(target).length;
-}
-
-export { size };
Index: de_modules/es-toolkit/dist/compat/array/slice.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/slice.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Create a slice of `array` from `start` up to, but not including, `end`.
- *
- * It does not return a dense array for sparse arrays unlike the native `Array.prototype.slice`.
- *
- * @template T - The type of the array elements.
- * @param {ArrayLike<T> | null | undefined} array - The array to slice.
- * @param {number} [start=0] - The start position.
- * @param {number} [end=array.length] - The end position.
- * @returns {T[]} - Returns the slice of `array`.
- *
- * @example
- * slice([1, 2, 3], 1, 2); // => [2]
- * slice(new Array(3)); // => [undefined, undefined, undefined]
- */
-declare function slice<T>(array: ArrayLike<T> | null | undefined, start?: number, end?: number): T[];
-
-export { slice };
Index: de_modules/es-toolkit/dist/compat/array/slice.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/slice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Create a slice of `array` from `start` up to, but not including, `end`.
- *
- * It does not return a dense array for sparse arrays unlike the native `Array.prototype.slice`.
- *
- * @template T - The type of the array elements.
- * @param {ArrayLike<T> | null | undefined} array - The array to slice.
- * @param {number} [start=0] - The start position.
- * @param {number} [end=array.length] - The end position.
- * @returns {T[]} - Returns the slice of `array`.
- *
- * @example
- * slice([1, 2, 3], 1, 2); // => [2]
- * slice(new Array(3)); // => [undefined, undefined, undefined]
- */
-declare function slice<T>(array: ArrayLike<T> | null | undefined, start?: number, end?: number): T[];
-
-export { slice };
Index: de_modules/es-toolkit/dist/compat/array/slice.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/slice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const toInteger = require('../util/toInteger.js');
-
-function slice(array, start, end) {
-    if (!isArrayLike.isArrayLike(array)) {
-        return [];
-    }
-    const length = array.length;
-    if (end === undefined) {
-        end = length;
-    }
-    else if (typeof end !== 'number' && isIterateeCall.isIterateeCall(array, start, end)) {
-        start = 0;
-        end = length;
-    }
-    start = toInteger.toInteger(start);
-    end = toInteger.toInteger(end);
-    if (start < 0) {
-        start = Math.max(length + start, 0);
-    }
-    else {
-        start = Math.min(start, length);
-    }
-    if (end < 0) {
-        end = Math.max(length + end, 0);
-    }
-    else {
-        end = Math.min(end, length);
-    }
-    const resultLength = Math.max(end - start, 0);
-    const result = new Array(resultLength);
-    for (let i = 0; i < resultLength; ++i) {
-        result[i] = array[start + i];
-    }
-    return result;
-}
-
-exports.slice = slice;
Index: de_modules/es-toolkit/dist/compat/array/slice.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/slice.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function slice(array, start, end) {
-    if (!isArrayLike(array)) {
-        return [];
-    }
-    const length = array.length;
-    if (end === undefined) {
-        end = length;
-    }
-    else if (typeof end !== 'number' && isIterateeCall(array, start, end)) {
-        start = 0;
-        end = length;
-    }
-    start = toInteger(start);
-    end = toInteger(end);
-    if (start < 0) {
-        start = Math.max(length + start, 0);
-    }
-    else {
-        start = Math.min(start, length);
-    }
-    if (end < 0) {
-        end = Math.max(length + end, 0);
-    }
-    else {
-        end = Math.min(end, length);
-    }
-    const resultLength = Math.max(end - start, 0);
-    const result = new Array(resultLength);
-    for (let i = 0; i < resultLength; ++i) {
-        result[i] = array[start + i];
-    }
-    return result;
-}
-
-export { slice };
Index: de_modules/es-toolkit/dist/compat/array/some.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/some.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.mjs';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Checks if predicate returns truthy for any element of collection.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.
- *
- * @example
- * some([null, 0, 'yes', false], Boolean);
- * // => true
- */
-declare function some<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): boolean;
-/**
- * Checks if predicate returns truthy for any element of collection.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] - The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.
- *
- * @example
- * some({ 'a': 0, 'b': 1, 'c': 0 }, function(n) { return n > 0; });
- * // => true
- */
-declare function some<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/compat/array/some.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/some.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { ListIterateeCustom } from '../_internal/ListIterateeCustom.js';
-import { ObjectIterateeCustom } from '../_internal/ObjectIteratee.js';
-
-/**
- * Checks if predicate returns truthy for any element of collection.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {ListIterateeCustom<T, boolean>} [predicate] - The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.
- *
- * @example
- * some([null, 0, 'yes', false], Boolean);
- * // => true
- */
-declare function some<T>(collection: ArrayLike<T> | null | undefined, predicate?: ListIterateeCustom<T, boolean>): boolean;
-/**
- * Checks if predicate returns truthy for any element of collection.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {ObjectIterateeCustom<T, boolean>} [predicate] - The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.
- *
- * @example
- * some({ 'a': 0, 'b': 1, 'c': 0 }, function(n) { return n > 0; });
- * // => true
- */
-declare function some<T extends object>(collection: T | null | undefined, predicate?: ObjectIterateeCustom<T, boolean>): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/compat/array/some.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const property = require('../object/property.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function some(source, predicate, guard) {
-    if (!source) {
-        return false;
-    }
-    if (guard != null) {
-        predicate = undefined;
-    }
-    if (predicate == null) {
-        predicate = identity.identity;
-    }
-    const values = Array.isArray(source) ? source : Object.values(source);
-    switch (typeof predicate) {
-        case 'function': {
-            if (!Array.isArray(source)) {
-                const keys = Object.keys(source);
-                for (let i = 0; i < keys.length; i++) {
-                    const key = keys[i];
-                    const value = source[key];
-                    if (predicate(value, key, source)) {
-                        return true;
-                    }
-                }
-                return false;
-            }
-            for (let i = 0; i < source.length; i++) {
-                if (predicate(source[i], i, source)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                const matchFunc = matchesProperty.matchesProperty(key, value);
-                if (Array.isArray(source)) {
-                    for (let i = 0; i < source.length; i++) {
-                        if (matchFunc(source[i])) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-                return values.some(matchFunc);
-            }
-            else {
-                const matchFunc = matches.matches(predicate);
-                if (Array.isArray(source)) {
-                    for (let i = 0; i < source.length; i++) {
-                        if (matchFunc(source[i])) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-                return values.some(matchFunc);
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            const propFunc = property.property(predicate);
-            if (Array.isArray(source)) {
-                for (let i = 0; i < source.length; i++) {
-                    if (propFunc(source[i])) {
-                        return true;
-                    }
-                }
-                return false;
-            }
-            return values.some(propFunc);
-        }
-    }
-}
-
-exports.some = some;
Index: de_modules/es-toolkit/dist/compat/array/some.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/some.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { property } from '../object/property.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function some(source, predicate, guard) {
-    if (!source) {
-        return false;
-    }
-    if (guard != null) {
-        predicate = undefined;
-    }
-    if (predicate == null) {
-        predicate = identity;
-    }
-    const values = Array.isArray(source) ? source : Object.values(source);
-    switch (typeof predicate) {
-        case 'function': {
-            if (!Array.isArray(source)) {
-                const keys = Object.keys(source);
-                for (let i = 0; i < keys.length; i++) {
-                    const key = keys[i];
-                    const value = source[key];
-                    if (predicate(value, key, source)) {
-                        return true;
-                    }
-                }
-                return false;
-            }
-            for (let i = 0; i < source.length; i++) {
-                if (predicate(source[i], i, source)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-        case 'object': {
-            if (Array.isArray(predicate) && predicate.length === 2) {
-                const key = predicate[0];
-                const value = predicate[1];
-                const matchFunc = matchesProperty(key, value);
-                if (Array.isArray(source)) {
-                    for (let i = 0; i < source.length; i++) {
-                        if (matchFunc(source[i])) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-                return values.some(matchFunc);
-            }
-            else {
-                const matchFunc = matches(predicate);
-                if (Array.isArray(source)) {
-                    for (let i = 0; i < source.length; i++) {
-                        if (matchFunc(source[i])) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-                return values.some(matchFunc);
-            }
-        }
-        case 'number':
-        case 'symbol':
-        case 'string': {
-            const propFunc = property(predicate);
-            if (Array.isArray(source)) {
-                for (let i = 0; i < source.length; i++) {
-                    if (propFunc(source[i])) {
-                        return true;
-                    }
-                }
-                return false;
-            }
-            return values.some(propFunc);
-        }
-    }
-}
-
-export { some };
Index: de_modules/es-toolkit/dist/compat/array/sortBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-import { Many } from '../_internal/Many.mjs';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Sorts an array of objects based on multiple properties and their corresponding order directions.
- *
- * This function takes an array of objects, an array of criteria to sort by.
- * It returns the ascending sorted array, ordering by each key.
- * If values for a key are equal, it moves to the next key to determine the order.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | object | null | undefined} collection - The array of objects to be sorted.
- * @param {Array<Array<Criterion<T> | Criterion<T>>>} criteria - An array of criteria (property names or property paths or custom key functions) to sort by.
- * @returns {T[]} - The ascending sorted array.
- *
- * @example
- * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
- * const users = [
- *   { user: 'fred', age: 48 },
- *   { user: 'barney', age: 34 },
- *   { user: 'fred', age: 40 },
- *   { user: 'barney', age: 36 },
- * ];
- * const result = sortBy(users, ['user', (item) => item.age])
- * // result will be:
- * // [
- * //   { user: 'barney', age: 34 },
- * //   { user: 'barney', age: 36 },
- * //   { user: 'fred', age: 40 },
- * //   { user: 'fred', age: 48 },
- * // ]
- */
-/**
- * Creates an array of elements, sorted in ascending order by the results of running each element in a collection thru each iteratee.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {...Array<T | readonly T[] | ListIteratee<T>>} iteratees - The iteratees to sort by.
- * @returns {T[]} Returns the new sorted array.
- *
- * @example
- * const users = [
- *   { 'user': 'fred',   'age': 48 },
- *   { 'user': 'barney', 'age': 36 },
- *   { 'user': 'fred',   'age': 42 },
- *   { 'user': 'barney', 'age': 34 }
- * ];
- *
- * sortBy(users, [function(o) { return o.user; }]);
- * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
- */
-declare function sortBy<T>(collection: ArrayLike<T> | null | undefined, ...iteratees: Array<Many<ListIteratee<T>>>): T[];
-/**
- * Creates an array of elements, sorted in ascending order by the results of running each element in a collection thru each iteratee.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {...Array<T[keyof T] | readonly Array<T[keyof T]> | ObjectIteratee<T>>} iteratees - The iteratees to sort by.
- * @returns {Array<T[keyof T]>} Returns the new sorted array.
- *
- * @example
- * const users = {
- *   'a': { 'user': 'fred',   'age': 48 },
- *   'b': { 'user': 'barney', 'age': 36 }
- * };
- *
- * sortBy(users, [function(o) { return o.user; }]);
- * // => [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 48 }]
- */
-declare function sortBy<T extends object>(collection: T | null | undefined, ...iteratees: Array<Many<ObjectIteratee<T>>>): Array<T[keyof T]>;
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/compat/array/sortBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-import { Many } from '../_internal/Many.js';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.js';
-
-/**
- * Sorts an array of objects based on multiple properties and their corresponding order directions.
- *
- * This function takes an array of objects, an array of criteria to sort by.
- * It returns the ascending sorted array, ordering by each key.
- * If values for a key are equal, it moves to the next key to determine the order.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | object | null | undefined} collection - The array of objects to be sorted.
- * @param {Array<Array<Criterion<T> | Criterion<T>>>} criteria - An array of criteria (property names or property paths or custom key functions) to sort by.
- * @returns {T[]} - The ascending sorted array.
- *
- * @example
- * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
- * const users = [
- *   { user: 'fred', age: 48 },
- *   { user: 'barney', age: 34 },
- *   { user: 'fred', age: 40 },
- *   { user: 'barney', age: 36 },
- * ];
- * const result = sortBy(users, ['user', (item) => item.age])
- * // result will be:
- * // [
- * //   { user: 'barney', age: 34 },
- * //   { user: 'barney', age: 36 },
- * //   { user: 'fred', age: 40 },
- * //   { user: 'fred', age: 48 },
- * // ]
- */
-/**
- * Creates an array of elements, sorted in ascending order by the results of running each element in a collection thru each iteratee.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} collection - The collection to iterate over.
- * @param {...Array<T | readonly T[] | ListIteratee<T>>} iteratees - The iteratees to sort by.
- * @returns {T[]} Returns the new sorted array.
- *
- * @example
- * const users = [
- *   { 'user': 'fred',   'age': 48 },
- *   { 'user': 'barney', 'age': 36 },
- *   { 'user': 'fred',   'age': 42 },
- *   { 'user': 'barney', 'age': 34 }
- * ];
- *
- * sortBy(users, [function(o) { return o.user; }]);
- * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
- */
-declare function sortBy<T>(collection: ArrayLike<T> | null | undefined, ...iteratees: Array<Many<ListIteratee<T>>>): T[];
-/**
- * Creates an array of elements, sorted in ascending order by the results of running each element in a collection thru each iteratee.
- *
- * @template T
- * @param {T | null | undefined} collection - The object to iterate over.
- * @param {...Array<T[keyof T] | readonly Array<T[keyof T]> | ObjectIteratee<T>>} iteratees - The iteratees to sort by.
- * @returns {Array<T[keyof T]>} Returns the new sorted array.
- *
- * @example
- * const users = {
- *   'a': { 'user': 'fred',   'age': 48 },
- *   'b': { 'user': 'barney', 'age': 36 }
- * };
- *
- * sortBy(users, [function(o) { return o.user; }]);
- * // => [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 48 }]
- */
-declare function sortBy<T extends object>(collection: T | null | undefined, ...iteratees: Array<Many<ObjectIteratee<T>>>): Array<T[keyof T]>;
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/compat/array/sortBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const orderBy = require('./orderBy.js');
-const flatten = require('../../array/flatten.js');
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-
-function sortBy(collection, ...criteria) {
-    const length = criteria.length;
-    if (length > 1 && isIterateeCall.isIterateeCall(collection, criteria[0], criteria[1])) {
-        criteria = [];
-    }
-    else if (length > 2 && isIterateeCall.isIterateeCall(criteria[0], criteria[1], criteria[2])) {
-        criteria = [criteria[0]];
-    }
-    return orderBy.orderBy(collection, flatten.flatten(criteria), ['asc']);
-}
-
-exports.sortBy = sortBy;
Index: de_modules/es-toolkit/dist/compat/array/sortBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { orderBy } from './orderBy.mjs';
-import { flatten } from '../../array/flatten.mjs';
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-
-function sortBy(collection, ...criteria) {
-    const length = criteria.length;
-    if (length > 1 && isIterateeCall(collection, criteria[0], criteria[1])) {
-        criteria = [];
-    }
-    else if (length > 2 && isIterateeCall(criteria[0], criteria[1], criteria[2])) {
-        criteria = [criteria[0]];
-    }
-    return orderBy(collection, flatten(criteria), ['asc']);
-}
-
-export { sortBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndex.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndex.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Uses a binary search to determine the lowest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([30, 50], 40)
- * // => 1
- */
-declare function sortedIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-/**
- * Uses a binary search to determine the lowest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([30, 50], 40)
- * // => 1
- */
-declare function sortedIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndex.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Uses a binary search to determine the lowest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([30, 50], 40)
- * // => 1
- */
-declare function sortedIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-/**
- * Uses a binary search to determine the lowest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([30, 50], 40)
- * // => 1
- */
-declare function sortedIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndex.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sortedIndexBy = require('./sortedIndexBy.js');
-const isNil = require('../../predicate/isNil.js');
-const isNull = require('../../predicate/isNull.js');
-const isSymbol = require('../../predicate/isSymbol.js');
-const isNumber = require('../predicate/isNumber.js');
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
-function sortedIndex(array, value) {
-    if (isNil.isNil(array)) {
-        return 0;
-    }
-    let low = 0;
-    let high = array.length;
-    if (isNumber.isNumber(value) && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
-        while (low < high) {
-            const mid = (low + high) >>> 1;
-            const compute = array[mid];
-            if (!isNull.isNull(compute) && !isSymbol.isSymbol(compute) && compute < value) {
-                low = mid + 1;
-            }
-            else {
-                high = mid;
-            }
-        }
-        return high;
-    }
-    return sortedIndexBy.sortedIndexBy(array, value, value => value);
-}
-
-exports.sortedIndex = sortedIndex;
Index: de_modules/es-toolkit/dist/compat/array/sortedIndex.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { sortedIndexBy } from './sortedIndexBy.mjs';
-import { isNil } from '../../predicate/isNil.mjs';
-import { isNull } from '../../predicate/isNull.mjs';
-import { isSymbol } from '../../predicate/isSymbol.mjs';
-import { isNumber } from '../predicate/isNumber.mjs';
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
-function sortedIndex(array, value) {
-    if (isNil(array)) {
-        return 0;
-    }
-    let low = 0;
-    let high = array.length;
-    if (isNumber(value) && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
-        while (low < high) {
-            const mid = (low + high) >>> 1;
-            const compute = array[mid];
-            if (!isNull(compute) && !isSymbol(compute) && compute < value) {
-                low = mid + 1;
-            }
-            else {
-                high = mid;
-            }
-        }
-        return high;
-    }
-    return sortedIndexBy(array, value, value => value);
-}
-
-export { sortedIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * This method is like `sortedIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The sorted array to inspect.
- * @param {T} value - The value to evaluate.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- *
- * @example
- * const dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };
- * sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));
- * // => 1
- *
- * @example
- * sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 0
- */
-declare function sortedIndexBy<T>(array: ArrayLike<T> | null | undefined, value: T, iteratee?: ValueIteratee<T>): number;
-
-export { sortedIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * This method is like `sortedIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The sorted array to inspect.
- * @param {T} value - The value to evaluate.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- *
- * @example
- * const dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };
- * sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));
- * // => 1
- *
- * @example
- * sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 0
- */
-declare function sortedIndexBy<T>(array: ArrayLike<T> | null | undefined, value: T, iteratee?: ValueIteratee<T>): number;
-
-export { sortedIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isNull = require('../../predicate/isNull.js');
-const isUndefined = require('../../predicate/isUndefined.js');
-const identity = require('../function/identity.js');
-const isNaN = require('../predicate/isNaN.js');
-const isNil = require('../predicate/isNil.js');
-const isSymbol = require('../predicate/isSymbol.js');
-const iteratee = require('../util/iteratee.js');
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;
-function sortedIndexBy(array, value, iteratee$1 = identity.identity, retHighest) {
-    if (isNil.isNil(array) || array.length === 0) {
-        return 0;
-    }
-    let low = 0;
-    let high = array.length;
-    const iterateeFunction = iteratee.iteratee(iteratee$1);
-    const transformedValue = iterateeFunction(value);
-    const valIsNaN = isNaN.isNaN(transformedValue);
-    const valIsNull = isNull.isNull(transformedValue);
-    const valIsSymbol = isSymbol.isSymbol(transformedValue);
-    const valIsUndefined = isUndefined.isUndefined(transformedValue);
-    while (low < high) {
-        let setLow;
-        const mid = Math.floor((low + high) / 2);
-        const computed = iterateeFunction(array[mid]);
-        const othIsDefined = !isUndefined.isUndefined(computed);
-        const othIsNull = isNull.isNull(computed);
-        const othIsReflexive = !isNaN.isNaN(computed);
-        const othIsSymbol = isSymbol.isSymbol(computed);
-        if (valIsNaN) {
-            setLow = retHighest || othIsReflexive;
-        }
-        else if (valIsUndefined) {
-            setLow = othIsReflexive && (retHighest || othIsDefined);
-        }
-        else if (valIsNull) {
-            setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
-        }
-        else if (valIsSymbol) {
-            setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
-        }
-        else if (othIsNull || othIsSymbol) {
-            setLow = false;
-        }
-        else {
-            setLow = retHighest ? computed <= transformedValue : computed < transformedValue;
-        }
-        if (setLow) {
-            low = mid + 1;
-        }
-        else {
-            high = mid;
-        }
-    }
-    return Math.min(high, MAX_ARRAY_INDEX);
-}
-
-exports.sortedIndexBy = sortedIndexBy;
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import { isNull } from '../../predicate/isNull.mjs';
-import { isUndefined } from '../../predicate/isUndefined.mjs';
-import { identity } from '../function/identity.mjs';
-import { isNaN } from '../predicate/isNaN.mjs';
-import { isNil } from '../predicate/isNil.mjs';
-import { isSymbol } from '../predicate/isSymbol.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;
-function sortedIndexBy(array, value, iteratee$1 = identity, retHighest) {
-    if (isNil(array) || array.length === 0) {
-        return 0;
-    }
-    let low = 0;
-    let high = array.length;
-    const iterateeFunction = iteratee(iteratee$1);
-    const transformedValue = iterateeFunction(value);
-    const valIsNaN = isNaN(transformedValue);
-    const valIsNull = isNull(transformedValue);
-    const valIsSymbol = isSymbol(transformedValue);
-    const valIsUndefined = isUndefined(transformedValue);
-    while (low < high) {
-        let setLow;
-        const mid = Math.floor((low + high) / 2);
-        const computed = iterateeFunction(array[mid]);
-        const othIsDefined = !isUndefined(computed);
-        const othIsNull = isNull(computed);
-        const othIsReflexive = !isNaN(computed);
-        const othIsSymbol = isSymbol(computed);
-        if (valIsNaN) {
-            setLow = retHighest || othIsReflexive;
-        }
-        else if (valIsUndefined) {
-            setLow = othIsReflexive && (retHighest || othIsDefined);
-        }
-        else if (valIsNull) {
-            setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
-        }
-        else if (valIsSymbol) {
-            setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
-        }
-        else if (othIsNull || othIsSymbol) {
-            setLow = false;
-        }
-        else {
-            setLow = retHighest ? computed <= transformedValue : computed < transformedValue;
-        }
-        if (setLow) {
-            low = mid + 1;
-        }
-        else {
-            high = mid;
-        }
-    }
-    return Math.min(high, MAX_ARRAY_INDEX);
-}
-
-export { sortedIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Finds the index of the first occurrence of a value in a sorted array, similar to how `Array#indexOf` works, but specifically for sorted arrays.
- *
- * Make sure to provide a sorted array to this function, as it uses a binary search to quickly find the index.
- *
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to search for.
- * @returns {number} Returns the index of the matched value, else -1.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * sortedIndexOf(numbers, 11); // Return value: 0
- * sortedIndexOf(numbers, 30); // Return value: -1
- *
- * // If the value is duplicated, it returns the first index of the value.
- * const duplicateNumbers = [1, 2, 2, 3, 3, 3, 4];
- * sortedIndexOf(duplicateNumbers, 3); // Return value: 3
- *
- * // If the array is unsorted, it can return the wrong index.
- * const unSortedArray = [55, 33, 22, 11, 44];
- * sortedIndexOf(unSortedArray, 11); // Return value: -1
- *
- * // -0 and 0 are treated the same
- * const mixedZeroArray = [-0, 0];
- * sortedIndexOf(mixedZeroArray, 0); // Return value: 0
- * sortedIndexOf(mixedZeroArray, -0); // Return value: 0
- *
- * // It works with array-like objects
- * const arrayLike = { length: 3, 0: 10, 1: 20, 2: 30 };
- * sortedIndexOf(arrayLike, 20); // Return value: 1
- */
-declare function sortedIndexOf<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * Finds the index of the first occurrence of a value in a sorted array, similar to how `Array#indexOf` works, but specifically for sorted arrays.
- *
- * Make sure to provide a sorted array to this function, as it uses a binary search to quickly find the index.
- *
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to search for.
- * @returns {number} Returns the index of the matched value, else -1.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * sortedIndexOf(numbers, 11); // Return value: 0
- * sortedIndexOf(numbers, 30); // Return value: -1
- *
- * // If the value is duplicated, it returns the first index of the value.
- * const duplicateNumbers = [1, 2, 2, 3, 3, 3, 4];
- * sortedIndexOf(duplicateNumbers, 3); // Return value: 3
- *
- * // If the array is unsorted, it can return the wrong index.
- * const unSortedArray = [55, 33, 22, 11, 44];
- * sortedIndexOf(unSortedArray, 11); // Return value: -1
- *
- * // -0 and 0 are treated the same
- * const mixedZeroArray = [-0, 0];
- * sortedIndexOf(mixedZeroArray, 0); // Return value: 0
- * sortedIndexOf(mixedZeroArray, -0); // Return value: 0
- *
- * // It works with array-like objects
- * const arrayLike = { length: 3, 0: 10, 1: 20, 2: 30 };
- * sortedIndexOf(arrayLike, 20); // Return value: 1
- */
-declare function sortedIndexOf<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sortedIndex = require('./sortedIndex.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function sortedIndexOf(array, value) {
-    if (!array?.length) {
-        return -1;
-    }
-    const index = sortedIndex.sortedIndex(array, value);
-    if (index < array.length && isEqualsSameValueZero.isEqualsSameValueZero(array[index], value)) {
-        return index;
-    }
-    return -1;
-}
-
-exports.sortedIndexOf = sortedIndexOf;
Index: de_modules/es-toolkit/dist/compat/array/sortedIndexOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedIndexOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { sortedIndex } from './sortedIndex.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function sortedIndexOf(array, value) {
-    if (!array?.length) {
-        return -1;
-    }
-    const index = sortedIndex(array, value);
-    if (index < array.length && isEqualsSameValueZero(array[index], value)) {
-        return index;
-    }
-    return -1;
-}
-
-export { sortedIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndex.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndex.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Uses a binary search to determine the highest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([4, 5, 5, 5, 6], 5)
- * // => 4
- */
-declare function sortedLastIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndex.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Uses a binary search to determine the highest index at which `value`
- * should be inserted into `array` in order to maintain its sort order.
- *
- * @category Array
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to evaluate.
- * @returns {number} Returns the index at which `value` should be inserted
- *  into `array`.
- * @example
- * sortedIndex([4, 5, 5, 5, 6], 5)
- * // => 4
- */
-declare function sortedLastIndex<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndex.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sortedLastIndexBy = require('./sortedLastIndexBy.js');
-const isNil = require('../../predicate/isNil.js');
-const isNull = require('../../predicate/isNull.js');
-const isSymbol = require('../../predicate/isSymbol.js');
-const isNumber = require('../predicate/isNumber.js');
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
-function sortedLastIndex(array, value) {
-    if (isNil.isNil(array)) {
-        return 0;
-    }
-    let high = array.length;
-    if (!isNumber.isNumber(value) || Number.isNaN(value) || high > HALF_MAX_ARRAY_LENGTH) {
-        return sortedLastIndexBy.sortedLastIndexBy(array, value, value => value);
-    }
-    let low = 0;
-    while (low < high) {
-        const mid = (low + high) >>> 1;
-        const compute = array[mid];
-        if (!isNull.isNull(compute) && !isSymbol.isSymbol(compute) && compute <= value) {
-            low = mid + 1;
-        }
-        else {
-            high = mid;
-        }
-    }
-    return high;
-}
-
-exports.sortedLastIndex = sortedLastIndex;
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndex.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { sortedLastIndexBy } from './sortedLastIndexBy.mjs';
-import { isNil } from '../../predicate/isNil.mjs';
-import { isNull } from '../../predicate/isNull.mjs';
-import { isSymbol } from '../../predicate/isSymbol.mjs';
-import { isNumber } from '../predicate/isNumber.mjs';
-
-const MAX_ARRAY_LENGTH = 4294967295;
-const HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
-function sortedLastIndex(array, value) {
-    if (isNil(array)) {
-        return 0;
-    }
-    let high = array.length;
-    if (!isNumber(value) || Number.isNaN(value) || high > HALF_MAX_ARRAY_LENGTH) {
-        return sortedLastIndexBy(array, value, value => value);
-    }
-    let low = 0;
-    while (low < high) {
-        const mid = (low + high) >>> 1;
-        const compute = array[mid];
-        if (!isNull(compute) && !isSymbol(compute) && compute <= value) {
-            low = mid + 1;
-        }
-        else {
-            high = mid;
-        }
-    }
-    return high;
-}
-
-export { sortedLastIndex };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * This method is like `sortedLastIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The sorted array to inspect.
- * @param {T} value - The value to evaluate.
- * @param {ValueIteratee<T>} iteratee - The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- *
- * @example
- * sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 1
- */
-declare function sortedLastIndexBy<T>(array: ArrayLike<T> | null | undefined, value: T, iteratee: ValueIteratee<T>): number;
-
-export { sortedLastIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * This method is like `sortedLastIndex` except that it accepts `iteratee`
- * which is invoked for `value` and each element of `array` to compute their
- * sort ranking. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The sorted array to inspect.
- * @param {T} value - The value to evaluate.
- * @param {ValueIteratee<T>} iteratee - The iteratee invoked per element.
- * @returns {number} Returns the index at which `value` should be inserted into `array`.
- *
- * @example
- * sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
- * // => 1
- */
-declare function sortedLastIndexBy<T>(array: ArrayLike<T> | null | undefined, value: T, iteratee: ValueIteratee<T>): number;
-
-export { sortedLastIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sortedIndexBy = require('./sortedIndexBy.js');
-
-function sortedLastIndexBy(array, value, iteratee) {
-    return sortedIndexBy.sortedIndexBy(array, value, iteratee, true);
-}
-
-exports.sortedLastIndexBy = sortedLastIndexBy;
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { sortedIndexBy } from './sortedIndexBy.mjs';
-
-function sortedLastIndexBy(array, value, iteratee) {
-    return sortedIndexBy(array, value, iteratee, true);
-}
-
-export { sortedLastIndexBy };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Finds the index of the last occurrence of a value in a sorted array.
- * This function is similar to `Array#lastIndexOf` but is specifically designed for sorted arrays.
- *
- * Make sure to provide a sorted array to this function, as it uses a binary search to quickly find the index.
- *
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to search for.
- * @returns {number} Returns the index of the last matched value, else -1.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * sortedLastIndexOf(numbers, 3); // Return value: 2
- * sortedLastIndexOf(numbers, 6); // Return value: -1
- *
- * // If the value is duplicated, it returns the last index of the value.
- * const duplicateNumbers = [1, 2, 2, 3, 3, 3, 4];
- * sortedLastIndexOf(duplicateNumbers, 3); // Return value: 5
- *
- * // If the array is unsorted, it can return the wrong index.
- * const unSortedArray = [55, 33, 22, 11, 44];
- * sortedLastIndexOf(unSortedArray, 11); // Return value: -1
- *
- * // -0 and 0 are treated the same
- * const mixedZeroArray = [-0, 0];
- * sortedLastIndexOf(mixedZeroArray, 0); // Return value: 1
- * sortedLastIndexOf(mixedZeroArray, -0); // Return value: 1
- *
- * // It works with array-like objects
- * const arrayLike = { length: 3, 0: 10, 1: 20, 2: 20 };
- * sortedLastIndexOf(arrayLike, 20); // Return value: 2
- */
-declare function sortedLastIndexOf<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedLastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Finds the index of the last occurrence of a value in a sorted array.
- * This function is similar to `Array#lastIndexOf` but is specifically designed for sorted arrays.
- *
- * Make sure to provide a sorted array to this function, as it uses a binary search to quickly find the index.
- *
- * @param {ArrayLike<T> | null | undefined} array The sorted array to inspect.
- * @param {T} value The value to search for.
- * @returns {number} Returns the index of the last matched value, else -1.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * sortedLastIndexOf(numbers, 3); // Return value: 2
- * sortedLastIndexOf(numbers, 6); // Return value: -1
- *
- * // If the value is duplicated, it returns the last index of the value.
- * const duplicateNumbers = [1, 2, 2, 3, 3, 3, 4];
- * sortedLastIndexOf(duplicateNumbers, 3); // Return value: 5
- *
- * // If the array is unsorted, it can return the wrong index.
- * const unSortedArray = [55, 33, 22, 11, 44];
- * sortedLastIndexOf(unSortedArray, 11); // Return value: -1
- *
- * // -0 and 0 are treated the same
- * const mixedZeroArray = [-0, 0];
- * sortedLastIndexOf(mixedZeroArray, 0); // Return value: 1
- * sortedLastIndexOf(mixedZeroArray, -0); // Return value: 1
- *
- * // It works with array-like objects
- * const arrayLike = { length: 3, 0: 10, 1: 20, 2: 20 };
- * sortedLastIndexOf(arrayLike, 20); // Return value: 2
- */
-declare function sortedLastIndexOf<T>(array: ArrayLike<T> | null | undefined, value: T): number;
-
-export { sortedLastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sortedLastIndex = require('./sortedLastIndex.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function sortedLastIndexOf(array, value) {
-    if (!array?.length) {
-        return -1;
-    }
-    const index = sortedLastIndex.sortedLastIndex(array, value) - 1;
-    if (index >= 0 && isEqualsSameValueZero.isEqualsSameValueZero(array[index], value)) {
-        return index;
-    }
-    return -1;
-}
-
-exports.sortedLastIndexOf = sortedLastIndexOf;
Index: de_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/sortedLastIndexOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { sortedLastIndex } from './sortedLastIndex.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function sortedLastIndexOf(array, value) {
-    if (!array?.length) {
-        return -1;
-    }
-    const index = sortedLastIndex(array, value) - 1;
-    if (index >= 0 && isEqualsSameValueZero(array[index], value)) {
-        return index;
-    }
-    return -1;
-}
-
-export { sortedLastIndexOf };
Index: de_modules/es-toolkit/dist/compat/array/tail.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/tail.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Gets all but the first element of array.
- *
- * @template T
- * @param {readonly [unknown, ...T]} array - The array to query.
- * @returns {T} Returns the slice of array.
- *
- * @example
- * tail([1, 2, 3]);
- * // => [2, 3]
- */
-declare function tail<T extends unknown[]>(array: readonly [unknown, ...T]): T;
-/**
- * Gets all but the first element of array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * tail([1, 2, 3]);
- * // => [2, 3]
- */
-declare function tail<T>(array: ArrayLike<T> | null | undefined): T[];
-
-export { tail };
Index: de_modules/es-toolkit/dist/compat/array/tail.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/tail.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Gets all but the first element of array.
- *
- * @template T
- * @param {readonly [unknown, ...T]} array - The array to query.
- * @returns {T} Returns the slice of array.
- *
- * @example
- * tail([1, 2, 3]);
- * // => [2, 3]
- */
-declare function tail<T extends unknown[]>(array: readonly [unknown, ...T]): T;
-/**
- * Gets all but the first element of array.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * tail([1, 2, 3]);
- * // => [2, 3]
- */
-declare function tail<T>(array: ArrayLike<T> | null | undefined): T[];
-
-export { tail };
Index: de_modules/es-toolkit/dist/compat/array/tail.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/tail.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const tail$1 = require('../../array/tail.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function tail(arr) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return tail$1.tail(toArray.toArray(arr));
-}
-
-exports.tail = tail;
Index: de_modules/es-toolkit/dist/compat/array/tail.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/tail.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { tail as tail$1 } from '../../array/tail.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function tail(arr) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return tail$1(toArray(arr));
-}
-
-export { tail };
Index: de_modules/es-toolkit/dist/compat/array/take.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/take.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a slice of array with n elements taken from the beginning.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=1] - The number of elements to take.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * take([1, 2, 3]);
- * // => [1]
- *
- * @example
- * take([1, 2, 3], 2);
- * // => [1, 2]
- *
- * @example
- * take([1, 2, 3], 5);
- * // => [1, 2, 3]
- *
- * @example
- * take([1, 2, 3], 0);
- * // => []
- */
-declare function take<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { take };
Index: de_modules/es-toolkit/dist/compat/array/take.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/take.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a slice of array with n elements taken from the beginning.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=1] - The number of elements to take.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * take([1, 2, 3]);
- * // => [1]
- *
- * @example
- * take([1, 2, 3], 2);
- * // => [1, 2]
- *
- * @example
- * take([1, 2, 3], 5);
- * // => [1, 2, 3]
- *
- * @example
- * take([1, 2, 3], 0);
- * // => []
- */
-declare function take<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { take };
Index: de_modules/es-toolkit/dist/compat/array/take.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/take.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const take$1 = require('../../array/take.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const toInteger = require('../util/toInteger.js');
-
-function take(arr, count = 1, guard) {
-    count = guard ? 1 : toInteger.toInteger(count);
-    if (count < 1 || !isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return take$1.take(toArray.toArray(arr), count);
-}
-
-exports.take = take;
Index: de_modules/es-toolkit/dist/compat/array/take.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/take.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { take as take$1 } from '../../array/take.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function take(arr, count = 1, guard) {
-    count = guard ? 1 : toInteger(count);
-    if (count < 1 || !isArrayLike(arr)) {
-        return [];
-    }
-    return take$1(toArray(arr), count);
-}
-
-export { take };
Index: de_modules/es-toolkit/dist/compat/array/takeRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a slice of array with n elements taken from the end.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=1] - The number of elements to take.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * takeRight([1, 2, 3]);
- * // => [3]
- *
- * @example
- * takeRight([1, 2, 3], 2);
- * // => [2, 3]
- *
- * @example
- * takeRight([1, 2, 3], 5);
- * // => [1, 2, 3]
- *
- * @example
- * takeRight([1, 2, 3], 0);
- * // => []
- */
-declare function takeRight<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/compat/array/takeRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a slice of array with n elements taken from the end.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {number} [n=1] - The number of elements to take.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * takeRight([1, 2, 3]);
- * // => [3]
- *
- * @example
- * takeRight([1, 2, 3], 2);
- * // => [2, 3]
- *
- * @example
- * takeRight([1, 2, 3], 5);
- * // => [1, 2, 3]
- *
- * @example
- * takeRight([1, 2, 3], 0);
- * // => []
- */
-declare function takeRight<T>(array: ArrayLike<T> | null | undefined, n?: number): T[];
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/compat/array/takeRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const takeRight$1 = require('../../array/takeRight.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const toInteger = require('../util/toInteger.js');
-
-function takeRight(arr, count = 1, guard) {
-    count = guard ? 1 : toInteger.toInteger(count);
-    if (count <= 0 || !isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return takeRight$1.takeRight(toArray.toArray(arr), count);
-}
-
-exports.takeRight = takeRight;
Index: de_modules/es-toolkit/dist/compat/array/takeRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { takeRight as takeRight$1 } from '../../array/takeRight.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-
-function takeRight(arr, count = 1, guard) {
-    count = guard ? 1 : toInteger(count);
-    if (count <= 0 || !isArrayLike(arr)) {
-        return [];
-    }
-    return takeRight$1(toArray(arr), count);
-}
-
-export { takeRight };
Index: de_modules/es-toolkit/dist/compat/array/takeRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRightWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-
-/**
- * Creates a slice of array with elements taken from the end. Elements are taken until predicate
- * returns falsey. The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * const users = [
- *   { 'user': 'barney',  'active': true },
- *   { 'user': 'fred',    'active': false },
- *   { 'user': 'pebbles', 'active': false }
- * ];
- *
- * takeRightWhile(users, function(o) { return !o.active; });
- * // => objects for ['fred', 'pebbles']
- *
- * @example
- * takeRightWhile(users, { 'user': 'pebbles', 'active': false });
- * // => objects for ['pebbles']
- *
- * @example
- * takeRightWhile(users, ['active', false]);
- * // => objects for ['fred', 'pebbles']
- *
- * @example
- * takeRightWhile(users, 'active');
- * // => []
- */
-declare function takeRightWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/takeRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRightWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-
-/**
- * Creates a slice of array with elements taken from the end. Elements are taken until predicate
- * returns falsey. The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * const users = [
- *   { 'user': 'barney',  'active': true },
- *   { 'user': 'fred',    'active': false },
- *   { 'user': 'pebbles', 'active': false }
- * ];
- *
- * takeRightWhile(users, function(o) { return !o.active; });
- * // => objects for ['fred', 'pebbles']
- *
- * @example
- * takeRightWhile(users, { 'user': 'pebbles', 'active': false });
- * // => objects for ['pebbles']
- *
- * @example
- * takeRightWhile(users, ['active', false]);
- * // => objects for ['fred', 'pebbles']
- *
- * @example
- * takeRightWhile(users, 'active');
- * // => []
- */
-declare function takeRightWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/takeRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRightWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const negate = require('../../function/negate.js');
-const toArray = require('../_internal/toArray.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function takeRightWhile(_array, predicate) {
-    if (!isArrayLikeObject.isArrayLikeObject(_array)) {
-        return [];
-    }
-    const array = toArray.toArray(_array);
-    const index = array.findLastIndex(negate.negate(iteratee.iteratee(predicate ?? identity.identity)));
-    return array.slice(index + 1);
-}
-
-exports.takeRightWhile = takeRightWhile;
Index: de_modules/es-toolkit/dist/compat/array/takeRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeRightWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { negate } from '../../function/negate.mjs';
-import { toArray } from '../_internal/toArray.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function takeRightWhile(_array, predicate) {
-    if (!isArrayLikeObject(_array)) {
-        return [];
-    }
-    const array = toArray(_array);
-    const index = array.findLastIndex(negate(iteratee(predicate ?? identity)));
-    return array.slice(index + 1);
-}
-
-export { takeRightWhile };
Index: de_modules/es-toolkit/dist/compat/array/takeWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeWhile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-
-/**
- * Creates a slice of array with elements taken from the beginning. Elements are taken until predicate
- * returns falsey. The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * const users = [
- *   { 'user': 'barney',  'active': false },
- *   { 'user': 'fred',    'active': false },
- *   { 'user': 'pebbles', 'active': true }
- * ];
- *
- * takeWhile(users, function(o) { return !o.active; });
- * // => objects for ['barney', 'fred']
- *
- * @example
- * takeWhile(users, { 'user': 'barney', 'active': false });
- * // => objects for ['barney']
- *
- * @example
- * takeWhile(users, ['active', false]);
- * // => objects for ['barney', 'fred']
- *
- * @example
- * takeWhile(users, 'active');
- * // => []
- */
-declare function takeWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/compat/array/takeWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeWhile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-
-/**
- * Creates a slice of array with elements taken from the beginning. Elements are taken until predicate
- * returns falsey. The predicate is invoked with three arguments: (value, index, array).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to query.
- * @param {ListIteratee<T>} [predicate] - The function invoked per iteration.
- * @returns {T[]} Returns the slice of array.
- *
- * @example
- * const users = [
- *   { 'user': 'barney',  'active': false },
- *   { 'user': 'fred',    'active': false },
- *   { 'user': 'pebbles', 'active': true }
- * ];
- *
- * takeWhile(users, function(o) { return !o.active; });
- * // => objects for ['barney', 'fred']
- *
- * @example
- * takeWhile(users, { 'user': 'barney', 'active': false });
- * // => objects for ['barney']
- *
- * @example
- * takeWhile(users, ['active', false]);
- * // => objects for ['barney', 'fred']
- *
- * @example
- * takeWhile(users, 'active');
- * // => []
- */
-declare function takeWhile<T>(array: ArrayLike<T> | null | undefined, predicate?: ListIteratee<T>): T[];
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/compat/array/takeWhile.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeWhile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toArray = require('../_internal/toArray.js');
-const identity = require('../function/identity.js');
-const negate = require('../function/negate.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function takeWhile(array, predicate) {
-    if (!isArrayLikeObject.isArrayLikeObject(array)) {
-        return [];
-    }
-    const _array = toArray.toArray(array);
-    const index = _array.findIndex(negate.negate(iteratee.iteratee(predicate ?? identity.identity)));
-    return index === -1 ? _array : _array.slice(0, index);
-}
-
-exports.takeWhile = takeWhile;
Index: de_modules/es-toolkit/dist/compat/array/takeWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/takeWhile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { toArray } from '../_internal/toArray.mjs';
-import { identity } from '../function/identity.mjs';
-import { negate } from '../function/negate.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function takeWhile(array, predicate) {
-    if (!isArrayLikeObject(array)) {
-        return [];
-    }
-    const _array = toArray(array);
-    const index = _array.findIndex(negate(iteratee(predicate ?? identity)));
-    return index === -1 ? _array : _array.slice(0, index);
-}
-
-export { takeWhile };
Index: de_modules/es-toolkit/dist/compat/array/union.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/union.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * This function takes multiple arrays and returns a new array containing only the unique values
- * from all input arrays, preserving the order of their first occurrence.
- *
- * @template T - The type of elements in the arrays.
- * @param {Array<ArrayLike<T> | null | undefined>} arrays - The arrays to inspect.
- * @returns {T[]} Returns the new array of combined unique values.
- *
- * @example
- * // Returns [2, 1]
- * union([2], [1, 2]);
- *
- * @example
- * // Returns [2, 1, 3]
- * union([2], [1, 2], [2, 3]);
- *
- * @example
- * // Returns [1, 3, 2, [5], [4]] (does not deeply flatten nested arrays)
- * union([1, 3, 2], [1, [5]], [2, [4]]);
- *
- * @example
- * // Returns [0, 2, 1] (ignores non-array values like 3 and { '0': 1 })
- * union([0], 3, { '0': 1 }, null, [2, 1]);
- * @example
- * // Returns [0, 'a', 2, 1] (treats array-like object { 0: 'a', length: 1 } as a valid array)
- * union([0], { 0: 'a', length: 1 }, [2, 1]);
- */
-declare function union<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { union };
Index: de_modules/es-toolkit/dist/compat/array/union.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/union.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * This function takes multiple arrays and returns a new array containing only the unique values
- * from all input arrays, preserving the order of their first occurrence.
- *
- * @template T - The type of elements in the arrays.
- * @param {Array<ArrayLike<T> | null | undefined>} arrays - The arrays to inspect.
- * @returns {T[]} Returns the new array of combined unique values.
- *
- * @example
- * // Returns [2, 1]
- * union([2], [1, 2]);
- *
- * @example
- * // Returns [2, 1, 3]
- * union([2], [1, 2], [2, 3]);
- *
- * @example
- * // Returns [1, 3, 2, [5], [4]] (does not deeply flatten nested arrays)
- * union([1, 3, 2], [1, [5]], [2, [4]]);
- *
- * @example
- * // Returns [0, 2, 1] (ignores non-array values like 3 and { '0': 1 })
- * union([0], 3, { '0': 1 }, null, [2, 1]);
- * @example
- * // Returns [0, 'a', 2, 1] (treats array-like object { 0: 'a', length: 1 } as a valid array)
- * union([0], { 0: 'a', length: 1 }, [2, 1]);
- */
-declare function union<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { union };
Index: de_modules/es-toolkit/dist/compat/array/union.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatMapDepth = require('./flatMapDepth.js');
-const uniq = require('../../array/uniq.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function union(...arrays) {
-    const validArrays = arrays.filter(isArrayLikeObject.isArrayLikeObject);
-    const flattened = flatMapDepth.flatMapDepth(validArrays, v => Array.from(v), 1);
-    return uniq.uniq(flattened);
-}
-
-exports.union = union;
Index: de_modules/es-toolkit/dist/compat/array/union.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/union.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { flatMapDepth } from './flatMapDepth.mjs';
-import { uniq } from '../../array/uniq.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function union(...arrays) {
-    const validArrays = arrays.filter(isArrayLikeObject);
-    const flattened = flatMapDepth(validArrays, v => Array.from(v), 1);
-    return uniq(flattened);
-}
-
-export { union };
Index: de_modules/es-toolkit/dist/compat/array/unionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- *
- * @example
- * unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 1 }, { 'x': 2 }]
- */
-declare function unionBy<T>(arrays: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], Math.floor);
- * // => [2.1, 1.2, 3.4]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays4 - The fourth array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], [4.5], Math.floor);
- * // => [2.1, 1.2, 3.4, 4.5]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, arrays4: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays4 - The fourth array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays5 - The fifth array to inspect.
- * @param {...Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], [4.5], [5.6], Math.floor);
- * // => [2.1, 1.2, 3.4, 4.5, 5.6]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, arrays4: ArrayLike<T> | null | undefined, arrays5: ArrayLike<T> | null | undefined, ...iteratee: Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>): T[];
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/compat/array/unionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- *
- * @example
- * unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 1 }, { 'x': 2 }]
- */
-declare function unionBy<T>(arrays: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], Math.floor);
- * // => [2.1, 1.2, 3.4]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays4 - The fourth array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], [4.5], Math.floor);
- * // => [2.1, 1.2, 3.4, 4.5]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, arrays4: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `union` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays1 - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays4 - The fourth array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays5 - The fifth array to inspect.
- * @param {...Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionBy([2.1], [1.2, 2.3], [3.4], [4.5], [5.6], Math.floor);
- * // => [2.1, 1.2, 3.4, 4.5, 5.6]
- */
-declare function unionBy<T>(arrays1: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, arrays4: ArrayLike<T> | null | undefined, arrays5: ArrayLike<T> | null | undefined, ...iteratee: Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>): T[];
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/compat/array/unionBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last = require('../../array/last.js');
-const uniq = require('../../array/uniq.js');
-const uniqBy = require('../../array/uniqBy.js');
-const ary = require('../../function/ary.js');
-const flattenArrayLike = require('../_internal/flattenArrayLike.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function unionBy(...values) {
-    const lastValue = last.last(values);
-    const flattened = flattenArrayLike.flattenArrayLike(values);
-    if (isArrayLikeObject.isArrayLikeObject(lastValue) || lastValue == null) {
-        return uniq.uniq(flattened);
-    }
-    return uniqBy.uniqBy(flattened, ary.ary(iteratee.iteratee(lastValue), 1));
-}
-
-exports.unionBy = unionBy;
Index: de_modules/es-toolkit/dist/compat/array/unionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { last } from '../../array/last.mjs';
-import { uniq } from '../../array/uniq.mjs';
-import { uniqBy } from '../../array/uniqBy.mjs';
-import { ary } from '../../function/ary.mjs';
-import { flattenArrayLike } from '../_internal/flattenArrayLike.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function unionBy(...values) {
-    const lastValue = last(values);
-    const flattened = flattenArrayLike(values);
-    if (isArrayLikeObject(lastValue) || lastValue == null) {
-        return uniq(flattened);
-    }
-    return uniqBy(flattened, ary(iteratee(lastValue), 1));
-}
-
-export { unionBy };
Index: de_modules/es-toolkit/dist/compat/array/unionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * unionWith(objects, others, isEqual);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionWith([1, 2], [2, 3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<(a: T, b: T) => boolean | ArrayLike<T> | null | undefined>} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionWith([1], [2], [3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...comparator: Array<((a: T, b: T) => boolean) | ArrayLike<T> | null | undefined>): T[];
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/compat/array/unionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * unionWith(objects, others, isEqual);
- * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionWith([1, 2], [2, 3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `union` except that it accepts `comparator` which
- * is invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<(a: T, b: T) => boolean | ArrayLike<T> | null | undefined>} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of combined values.
- *
- * @example
- * unionWith([1], [2], [3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function unionWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...comparator: Array<((a: T, b: T) => boolean) | ArrayLike<T> | null | undefined>): T[];
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/compat/array/unionWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const last = require('../../array/last.js');
-const uniq = require('../../array/uniq.js');
-const uniqWith = require('../../array/uniqWith.js');
-const flattenArrayLike = require('../_internal/flattenArrayLike.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function unionWith(...values) {
-    const lastValue = last.last(values);
-    const flattened = flattenArrayLike.flattenArrayLike(values);
-    if (isArrayLikeObject.isArrayLikeObject(lastValue) || lastValue == null) {
-        return uniq.uniq(flattened);
-    }
-    return uniqWith.uniqWith(flattened, lastValue);
-}
-
-exports.unionWith = unionWith;
Index: de_modules/es-toolkit/dist/compat/array/unionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unionWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { last } from '../../array/last.mjs';
-import { uniq } from '../../array/uniq.mjs';
-import { uniqWith } from '../../array/uniqWith.mjs';
-import { flattenArrayLike } from '../_internal/flattenArrayLike.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function unionWith(...values) {
-    const lastValue = last(values);
-    const flattened = flattenArrayLike(values);
-    if (isArrayLikeObject(lastValue) || lastValue == null) {
-        return uniq(flattened);
-    }
-    return uniqWith(flattened, lastValue);
-}
-
-export { unionWith };
Index: de_modules/es-toolkit/dist/compat/array/uniq.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniq.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a duplicate-free version of an array.
- *
- * This function takes an array and returns a new array containing only the unique values
- * from the original array, preserving the order of first occurrence.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array to process.
- * @returns {T[]} A new array with only unique values from the original array.
- *
- * @example
- * const array = [1, 2, 2, 3, 4, 4, 5];
- * const result = uniq(array);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function uniq<T>(arr: ArrayLike<T> | null | undefined): T[];
-
-export { uniq };
Index: de_modules/es-toolkit/dist/compat/array/uniq.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniq.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a duplicate-free version of an array.
- *
- * This function takes an array and returns a new array containing only the unique values
- * from the original array, preserving the order of first occurrence.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr - The array to process.
- * @returns {T[]} A new array with only unique values from the original array.
- *
- * @example
- * const array = [1, 2, 2, 3, 4, 4, 5];
- * const result = uniq(array);
- * // result will be [1, 2, 3, 4, 5]
- */
-declare function uniq<T>(arr: ArrayLike<T> | null | undefined): T[];
-
-export { uniq };
Index: de_modules/es-toolkit/dist/compat/array/uniq.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniq.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniq$1 = require('../../array/uniq.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function uniq(arr) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return uniq$1.uniq(Array.from(arr));
-}
-
-exports.uniq = uniq;
Index: de_modules/es-toolkit/dist/compat/array/uniq.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniq.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { uniq as uniq$1 } from '../../array/uniq.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function uniq(arr) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return uniq$1(Array.from(arr));
-}
-
-export { uniq };
Index: de_modules/es-toolkit/dist/compat/array/uniqBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates a duplicate-free version of an array, using an optional transform function.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ValueIteratee<T>} iteratee - The transform function or property name to get values from.
- * @returns {T[]} Returns the new duplicate-free array.
- *
- * @example
- * uniqBy([2.1, 1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- */
-declare function uniqBy<T>(array: ArrayLike<T> | null | undefined, iteratee: ValueIteratee<T>): T[];
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/compat/array/uniqBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates a duplicate-free version of an array, using an optional transform function.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} array - The array to inspect.
- * @param {ValueIteratee<T>} iteratee - The transform function or property name to get values from.
- * @returns {T[]} Returns the new duplicate-free array.
- *
- * @example
- * uniqBy([2.1, 1.2, 2.3], Math.floor);
- * // => [2.1, 1.2]
- */
-declare function uniqBy<T>(array: ArrayLike<T> | null | undefined, iteratee: ValueIteratee<T>): T[];
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/compat/array/uniqBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniqBy$1 = require('../../array/uniqBy.js');
-const ary = require('../../function/ary.js');
-const identity = require('../../function/identity.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function uniqBy(array, iteratee$1 = identity.identity) {
-    if (!isArrayLikeObject.isArrayLikeObject(array)) {
-        return [];
-    }
-    return uniqBy$1.uniqBy(Array.from(array), ary.ary(iteratee.iteratee(iteratee$1), 1));
-}
-
-exports.uniqBy = uniqBy;
Index: de_modules/es-toolkit/dist/compat/array/uniqBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { uniqBy as uniqBy$1 } from '../../array/uniqBy.mjs';
-import { ary } from '../../function/ary.mjs';
-import { identity } from '../../function/identity.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function uniqBy(array, iteratee$1 = identity) {
-    if (!isArrayLikeObject(array)) {
-        return [];
-    }
-    return uniqBy$1(Array.from(array), ary(iteratee(iteratee$1), 1));
-}
-
-export { uniqBy };
Index: de_modules/es-toolkit/dist/compat/array/uniqWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-type Comparator<T> = (a: T, b: T) => boolean;
-/**
- * This method is like `uniq`, except that it accepts a `comparator` which is used to determine the equality of elements.
- *
- * It creates a duplicate-free version of an array, in which only the first occurrence of each element is kept.
- * If a `comparator` is provided, it will be invoked with two arguments: `(arrVal, othVal)` to compare elements.
- * If no comparator is provided, shallow equality is used.
- *
- * The order of result values is determined by the order they appear in the input array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr  - The array to process.
- * @param {Comparator<T>} [comparator] - Optional function to compare elements for equality.
- * @returns {T[]} A new array with only unique values based on the comparator.
- *
- * @example
- * const array = [1, 2, 2, 3];
- * const result = uniqWith(array);
- * // result will be [1, 2, 3]
- *
- * const array = [1, 2, 3];
- * const result = uniqWith(array, (a, b) => a % 2 === b % 2)
- * // result will be [1, 2]
- */
-declare function uniqWith<T>(arr: ArrayLike<T> | null | undefined, comparator?: Comparator<T>): T[];
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/compat/array/uniqWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-type Comparator<T> = (a: T, b: T) => boolean;
-/**
- * This method is like `uniq`, except that it accepts a `comparator` which is used to determine the equality of elements.
- *
- * It creates a duplicate-free version of an array, in which only the first occurrence of each element is kept.
- * If a `comparator` is provided, it will be invoked with two arguments: `(arrVal, othVal)` to compare elements.
- * If no comparator is provided, shallow equality is used.
- *
- * The order of result values is determined by the order they appear in the input array.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} arr  - The array to process.
- * @param {Comparator<T>} [comparator] - Optional function to compare elements for equality.
- * @returns {T[]} A new array with only unique values based on the comparator.
- *
- * @example
- * const array = [1, 2, 2, 3];
- * const result = uniqWith(array);
- * // result will be [1, 2, 3]
- *
- * const array = [1, 2, 3];
- * const result = uniqWith(array, (a, b) => a % 2 === b % 2)
- * // result will be [1, 2]
- */
-declare function uniqWith<T>(arr: ArrayLike<T> | null | undefined, comparator?: Comparator<T>): T[];
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/compat/array/uniqWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const uniqWith$1 = require('../../array/uniqWith.js');
-const uniq = require('./uniq.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function uniqWith(arr, comparator) {
-    if (!isArrayLike.isArrayLike(arr)) {
-        return [];
-    }
-    return typeof comparator === 'function' ? uniqWith$1.uniqWith(Array.from(arr), comparator) : uniq.uniq(Array.from(arr));
-}
-
-exports.uniqWith = uniqWith;
Index: de_modules/es-toolkit/dist/compat/array/uniqWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/uniqWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { uniqWith as uniqWith$1 } from '../../array/uniqWith.mjs';
-import { uniq } from './uniq.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function uniqWith(arr, comparator) {
-    if (!isArrayLike(arr)) {
-        return [];
-    }
-    return typeof comparator === 'function' ? uniqWith$1(Array.from(arr), comparator) : uniq(Array.from(arr));
-}
-
-export { uniqWith };
Index: de_modules/es-toolkit/dist/compat/array/unzip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzip.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Gathers elements in the same position in an internal array
- * from a grouped array of elements and returns them as a new array.
- *
- * @template T - The type of elements in the nested array.
- * @param {T[][] | ArrayLike<ArrayLike<T>> | null | undefined} array - The nested array to unzip.
- * @returns {T[][]} A new array of unzipped elements.
- *
- * @example
- * const zipped = [['a', true, 1],['b', false, 2]];
- * const result = unzip(zipped);
- * // result will be [['a', 'b'], [true, false], [1, 2]]
- */
-declare function unzip<T>(array: T[][] | ArrayLike<ArrayLike<T>> | null | undefined): T[][];
-
-export { unzip };
Index: de_modules/es-toolkit/dist/compat/array/unzip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Gathers elements in the same position in an internal array
- * from a grouped array of elements and returns them as a new array.
- *
- * @template T - The type of elements in the nested array.
- * @param {T[][] | ArrayLike<ArrayLike<T>> | null | undefined} array - The nested array to unzip.
- * @returns {T[][]} A new array of unzipped elements.
- *
- * @example
- * const zipped = [['a', true, 1],['b', false, 2]];
- * const result = unzip(zipped);
- * // result will be [['a', 'b'], [true, false], [1, 2]]
- */
-declare function unzip<T>(array: T[][] | ArrayLike<ArrayLike<T>> | null | undefined): T[][];
-
-export { unzip };
Index: de_modules/es-toolkit/dist/compat/array/unzip.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const unzip$1 = require('../../array/unzip.js');
-const isArray = require('../predicate/isArray.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function unzip(array) {
-    if (!isArrayLikeObject.isArrayLikeObject(array) || !array.length) {
-        return [];
-    }
-    array = isArray.isArray(array) ? array : Array.from(array);
-    array = array.filter(item => isArrayLikeObject.isArrayLikeObject(item));
-    return unzip$1.unzip(array);
-}
-
-exports.unzip = unzip;
Index: de_modules/es-toolkit/dist/compat/array/unzip.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzip.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { unzip as unzip$1 } from '../../array/unzip.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function unzip(array) {
-    if (!isArrayLikeObject(array) || !array.length) {
-        return [];
-    }
-    array = isArray(array) ? array : Array.from(array);
-    array = array.filter(item => isArrayLikeObject(item));
-    return unzip$1(array);
-}
-
-export { unzip };
Index: de_modules/es-toolkit/dist/compat/array/unzipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzipWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * This method is like `unzip` except that it accepts an iteratee to specify
- * how regrouped values should be combined. The iteratee is invoked with the
- * elements of each group: (...group).
- *
- * @template T, R
- * @param {ArrayLike<ArrayLike<T>> | null | undefined} array - The array of grouped elements to process.
- * @param {(...values: T[]) => R} iteratee - The function to combine regrouped values.
- * @returns {R[]} Returns the new array of regrouped elements.
- *
- * @example
- * unzipWith([[1, 10, 100], [2, 20, 200]], (a, b) => a + b);
- * // => [3, 30, 300]
- */
-declare function unzipWith<T, R>(array: ArrayLike<ArrayLike<T>> | null | undefined, iteratee: (...values: T[]) => R): R[];
-/**
- * This method is like `unzip` except that it accepts an iteratee to specify
- * how regrouped values should be combined.
- *
- * @template T
- * @param {ArrayLike<ArrayLike<T>> | null | undefined} array - The array of grouped elements to process.
- * @returns {T[][]} Returns the new array of regrouped elements.
- *
- * @example
- * unzipWith([[1, 10, 100], [2, 20, 200]]);
- * // => [[1, 2], [10, 20], [100, 200]]
- */
-declare function unzipWith<T>(array: ArrayLike<ArrayLike<T>> | null | undefined): T[][];
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/compat/array/unzipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * This method is like `unzip` except that it accepts an iteratee to specify
- * how regrouped values should be combined. The iteratee is invoked with the
- * elements of each group: (...group).
- *
- * @template T, R
- * @param {ArrayLike<ArrayLike<T>> | null | undefined} array - The array of grouped elements to process.
- * @param {(...values: T[]) => R} iteratee - The function to combine regrouped values.
- * @returns {R[]} Returns the new array of regrouped elements.
- *
- * @example
- * unzipWith([[1, 10, 100], [2, 20, 200]], (a, b) => a + b);
- * // => [3, 30, 300]
- */
-declare function unzipWith<T, R>(array: ArrayLike<ArrayLike<T>> | null | undefined, iteratee: (...values: T[]) => R): R[];
-/**
- * This method is like `unzip` except that it accepts an iteratee to specify
- * how regrouped values should be combined.
- *
- * @template T
- * @param {ArrayLike<ArrayLike<T>> | null | undefined} array - The array of grouped elements to process.
- * @returns {T[][]} Returns the new array of regrouped elements.
- *
- * @example
- * unzipWith([[1, 10, 100], [2, 20, 200]]);
- * // => [[1, 2], [10, 20], [100, 200]]
- */
-declare function unzipWith<T>(array: ArrayLike<ArrayLike<T>> | null | undefined): T[][];
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/compat/array/unzipWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const unzip = require('../../array/unzip.js');
-const isArray = require('../predicate/isArray.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function unzipWith(array, iteratee) {
-    if (!isArrayLikeObject.isArrayLikeObject(array) || !array.length) {
-        return [];
-    }
-    const unzipped = isArray.isArray(array) ? unzip.unzip(array) : unzip.unzip(Array.from(array, value => Array.from(value)));
-    if (!iteratee) {
-        return unzipped;
-    }
-    const result = new Array(unzipped.length);
-    for (let i = 0; i < unzipped.length; i++) {
-        const value = unzipped[i];
-        result[i] = iteratee(...value);
-    }
-    return result;
-}
-
-exports.unzipWith = unzipWith;
Index: de_modules/es-toolkit/dist/compat/array/unzipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/unzipWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { unzip } from '../../array/unzip.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function unzipWith(array, iteratee) {
-    if (!isArrayLikeObject(array) || !array.length) {
-        return [];
-    }
-    const unzipped = isArray(array) ? unzip(array) : unzip(Array.from(array, value => Array.from(value)));
-    if (!iteratee) {
-        return unzipped;
-    }
-    const result = new Array(unzipped.length);
-    for (let i = 0; i < unzipped.length; i++) {
-        const value = unzipped[i];
-        result[i] = iteratee(...value);
-    }
-    return result;
-}
-
-export { unzipWith };
Index: de_modules/es-toolkit/dist/compat/array/without.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/without.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array that excludes all specified values.
- *
- * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to filter.
- * @param {...T[]} values - The values to exclude.
- * @returns {T[]} A new array without the specified values.
- *
- * @example
- * // Removes the specified values from the array
- * without([1, 2, 3, 4, 5], 2, 4);
- * // Returns: [1, 3, 5]
- *
- * @example
- * // Removes specified string values from the array
- * without(['a', 'b', 'c', 'a'], 'a');
- * // Returns: ['b', 'c']
- */
-declare function without<T>(array: ArrayLike<T> | null | undefined, ...values: T[]): T[];
-
-export { without };
Index: de_modules/es-toolkit/dist/compat/array/without.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/without.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Creates an array that excludes all specified values.
- *
- * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
- *
- * @template T The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} array - The array to filter.
- * @param {...T[]} values - The values to exclude.
- * @returns {T[]} A new array without the specified values.
- *
- * @example
- * // Removes the specified values from the array
- * without([1, 2, 3, 4, 5], 2, 4);
- * // Returns: [1, 3, 5]
- *
- * @example
- * // Removes specified string values from the array
- * without(['a', 'b', 'c', 'a'], 'a');
- * // Returns: ['b', 'c']
- */
-declare function without<T>(array: ArrayLike<T> | null | undefined, ...values: T[]): T[];
-
-export { without };
Index: de_modules/es-toolkit/dist/compat/array/without.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/without.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const without$1 = require('../../array/without.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function without(array, ...values) {
-    if (!isArrayLikeObject.isArrayLikeObject(array)) {
-        return [];
-    }
-    return without$1.without(Array.from(array), ...values);
-}
-
-exports.without = without;
Index: de_modules/es-toolkit/dist/compat/array/without.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/without.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { without as without$1 } from '../../array/without.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function without(array, ...values) {
-    if (!isArrayLikeObject(array)) {
-        return [];
-    }
-    return without$1(Array.from(array), ...values);
-}
-
-export { without };
Index: de_modules/es-toolkit/dist/compat/array/xor.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xor.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Computes the symmetric difference of the provided arrays, returning an array of elements
- * that exist in only one of the arrays.
- *
- * @template T - The type of elements in the arrays.
- * @param {...(ArrayLike<T> | null | undefined)} arrays - The arrays to compare.
- * @returns {T[]} An array containing the elements that are present in only one of the provided `arrays`.
- *
- * @example
- * // Returns [1, 2, 5, 6]
- * xor([1, 2, 3, 4], [3, 4, 5, 6]);
- *
- * @example
- * // Returns ['a', 'c']
- * xor(['a', 'b'], ['b', 'c']);
- *
- * @example
- * // Returns [1, 3, 5]
- * xor([1, 2], [2, 3], [4, 5]);
- */
-declare function xor<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { xor };
Index: de_modules/es-toolkit/dist/compat/array/xor.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Computes the symmetric difference of the provided arrays, returning an array of elements
- * that exist in only one of the arrays.
- *
- * @template T - The type of elements in the arrays.
- * @param {...(ArrayLike<T> | null | undefined)} arrays - The arrays to compare.
- * @returns {T[]} An array containing the elements that are present in only one of the provided `arrays`.
- *
- * @example
- * // Returns [1, 2, 5, 6]
- * xor([1, 2, 3, 4], [3, 4, 5, 6]);
- *
- * @example
- * // Returns ['a', 'c']
- * xor(['a', 'b'], ['b', 'c']);
- *
- * @example
- * // Returns [1, 3, 5]
- * xor([1, 2], [2, 3], [4, 5]);
- */
-declare function xor<T>(...arrays: Array<ArrayLike<T> | null | undefined>): T[];
-
-export { xor };
Index: de_modules/es-toolkit/dist/compat/array/xor.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const toArray = require('../util/toArray.js');
-
-function xor(...arrays) {
-    const itemCounts = new Map();
-    for (let i = 0; i < arrays.length; i++) {
-        const array = arrays[i];
-        if (!isArrayLikeObject.isArrayLikeObject(array)) {
-            continue;
-        }
-        const itemSet = new Set(toArray.toArray(array));
-        for (const item of itemSet) {
-            if (!itemCounts.has(item)) {
-                itemCounts.set(item, 1);
-            }
-            else {
-                itemCounts.set(item, itemCounts.get(item) + 1);
-            }
-        }
-    }
-    const result = [];
-    for (const [item, count] of itemCounts) {
-        if (count === 1) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-exports.xor = xor;
Index: de_modules/es-toolkit/dist/compat/array/xor.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xor.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { toArray } from '../util/toArray.mjs';
-
-function xor(...arrays) {
-    const itemCounts = new Map();
-    for (let i = 0; i < arrays.length; i++) {
-        const array = arrays[i];
-        if (!isArrayLikeObject(array)) {
-            continue;
-        }
-        const itemSet = new Set(toArray(array));
-        for (const item of itemSet) {
-            if (!itemCounts.has(item)) {
-                itemCounts.set(item, 1);
-            }
-            else {
-                itemCounts.set(item, itemCounts.get(item) + 1);
-            }
-        }
-    }
-    const result = [];
-    for (const [item, count] of itemCounts) {
-        if (count === 1) {
-            result.push(item);
-        }
-    }
-    return result;
-}
-
-export { xor };
Index: de_modules/es-toolkit/dist/compat/array/xorBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [1.2, 4.3]
- *
- * @example
- * xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 2 }]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [1.2, 4.3]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([1.2, 2.3], [3.4, 4.5], [5.6, 6.7], Math.floor);
- * // => [1.2, 3.4, 5.6]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...iteratee: Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>): T[];
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/compat/array/xorBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [1.2, 4.3]
- *
- * @example
- * xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
- * // => [{ 'x': 2 }]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ValueIteratee<T>} [iteratee] - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
- * // => [1.2, 4.3]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T[];
-/**
- * This method is like `xor` except that it accepts `iteratee` which is
- * invoked for each element of each `arrays` to generate the criterion by which
- * uniqueness is computed. The iteratee is invoked with one argument: (value).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>} iteratee - The iteratee invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorBy([1.2, 2.3], [3.4, 4.5], [5.6, 6.7], Math.floor);
- * // => [1.2, 3.4, 5.6]
- */
-declare function xorBy<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...iteratee: Array<ValueIteratee<T> | ArrayLike<T> | null | undefined>): T[];
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/compat/array/xorBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const differenceBy = require('./differenceBy.js');
-const intersectionBy = require('./intersectionBy.js');
-const last = require('./last.js');
-const unionBy = require('./unionBy.js');
-const windowed = require('../../array/windowed.js');
-const identity = require('../../function/identity.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function xorBy(...values) {
-    const lastValue = last.last(values);
-    let mapper = identity.identity;
-    if (!isArrayLikeObject.isArrayLikeObject(lastValue) && lastValue != null) {
-        mapper = iteratee.iteratee(lastValue);
-        values = values.slice(0, -1);
-    }
-    const arrays = values.filter(isArrayLikeObject.isArrayLikeObject);
-    const union = unionBy.unionBy(...arrays, mapper);
-    const intersections = windowed.windowed(arrays, 2).map(([arr1, arr2]) => intersectionBy.intersectionBy(arr1, arr2, mapper));
-    return differenceBy.differenceBy(union, unionBy.unionBy(...intersections, mapper), mapper);
-}
-
-exports.xorBy = xorBy;
Index: de_modules/es-toolkit/dist/compat/array/xorBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { differenceBy } from './differenceBy.mjs';
-import { intersectionBy } from './intersectionBy.mjs';
-import { last } from './last.mjs';
-import { unionBy } from './unionBy.mjs';
-import { windowed } from '../../array/windowed.mjs';
-import { identity } from '../../function/identity.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function xorBy(...values) {
-    const lastValue = last(values);
-    let mapper = identity;
-    if (!isArrayLikeObject(lastValue) && lastValue != null) {
-        mapper = iteratee(lastValue);
-        values = values.slice(0, -1);
-    }
-    const arrays = values.filter(isArrayLikeObject);
-    const union = unionBy(...arrays, mapper);
-    const intersections = windowed(arrays, 2).map(([arr1, arr2]) => intersectionBy(arr1, arr2, mapper));
-    return differenceBy(union, unionBy(...intersections, mapper), mapper);
-}
-
-export { xorBy };
Index: de_modules/es-toolkit/dist/compat/array/xorWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * xorWith(objects, others, isEqual);
- * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorWith([1, 2], [2, 3], (a, b) => a === b);
- * // => [1, 3]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<(a: T, b: T) => boolean | ArrayLike<T> | null | undefined>} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorWith([1], [2], [3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...comparator: Array<((a: T, b: T) => boolean) | ArrayLike<T> | null | undefined>): T[];
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/compat/array/xorWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The arrays to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * const objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
- * const others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- * xorWith(objects, others, isEqual);
- * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {(a: T, b: T) => boolean} [comparator] - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorWith([1, 2], [2, 3], (a, b) => a === b);
- * // => [1, 3]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, comparator?: (a: T, b: T) => boolean): T[];
-/**
- * This method is like `xor` except that it accepts `comparator` which is
- * invoked to compare elements of `arrays`. The comparator is invoked
- * with two arguments: (arrVal, othVal).
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} arrays - The first array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays2 - The second array to inspect.
- * @param {ArrayLike<T> | null | undefined} arrays3 - The third array to inspect.
- * @param {...Array<(a: T, b: T) => boolean | ArrayLike<T> | null | undefined>} comparator - The comparator invoked per element.
- * @returns {T[]} Returns the new array of values.
- *
- * @example
- * xorWith([1], [2], [3], (a, b) => a === b);
- * // => [1, 2, 3]
- */
-declare function xorWith<T>(arrays: ArrayLike<T> | null | undefined, arrays2: ArrayLike<T> | null | undefined, arrays3: ArrayLike<T> | null | undefined, ...comparator: Array<((a: T, b: T) => boolean) | ArrayLike<T> | null | undefined>): T[];
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/compat/array/xorWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const differenceWith = require('./differenceWith.js');
-const intersectionWith = require('./intersectionWith.js');
-const last = require('./last.js');
-const unionWith = require('./unionWith.js');
-const windowed = require('../../array/windowed.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function xorWith(...values) {
-    const lastValue = last.last(values);
-    let comparator = (a, b) => a === b;
-    if (typeof lastValue === 'function') {
-        comparator = lastValue;
-        values = values.slice(0, -1);
-    }
-    const arrays = values.filter(isArrayLikeObject.isArrayLikeObject);
-    const union = unionWith.unionWith(...arrays, comparator);
-    const intersections = windowed.windowed(arrays, 2).map(([arr1, arr2]) => intersectionWith.intersectionWith(arr1, arr2, comparator));
-    return differenceWith.differenceWith(union, unionWith.unionWith(...intersections, comparator), comparator);
-}
-
-exports.xorWith = xorWith;
Index: de_modules/es-toolkit/dist/compat/array/xorWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/xorWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { differenceWith } from './differenceWith.mjs';
-import { intersectionWith } from './intersectionWith.mjs';
-import { last } from './last.mjs';
-import { unionWith } from './unionWith.mjs';
-import { windowed } from '../../array/windowed.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function xorWith(...values) {
-    const lastValue = last(values);
-    let comparator = (a, b) => a === b;
-    if (typeof lastValue === 'function') {
-        comparator = lastValue;
-        values = values.slice(0, -1);
-    }
-    const arrays = values.filter(isArrayLikeObject);
-    const union = unionWith(...arrays, comparator);
-    const intersections = windowed(arrays, 2).map(([arr1, arr2]) => intersectionWith(arr1, arr2, comparator));
-    return differenceWith(union, unionWith(...intersections, comparator), comparator);
-}
-
-export { xorWith };
Index: de_modules/es-toolkit/dist/compat/array/zip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zip.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @returns {Array<[T | undefined, U | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zip(arr1, arr2);
- * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @returns {Array<[T | undefined, U | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b']);
- * // => [[1, 'a'], [2, 'b']]
- */
-declare function zip<T, U>(arr1: ArrayLike<T>, arr2: ArrayLike<U>): Array<[T | undefined, U | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b'], [true, false]);
- * // => [[1, 'a', true], [2, 'b', false]]
- */
-declare function zip<T, U, V>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>): Array<[T | undefined, U | undefined, V | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const result = zip(arr1, arr2, arr3, arr4);
- * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1], ['a'], [true], [null]);
- * // => [[1, 'a', true, null]]
- */
-declare function zip<T, U, V, W>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>): Array<[T | undefined, U | undefined, V | undefined, W | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const arr5 = [undefined, undefined, undefined];
- * const result = zip(arr1, arr2, arr3, arr4, arr5);
- * // result will be [[1, 'a', true, null, undefined], [2, 'b', false, null, undefined], [3, 'c', undefined, null, undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V, W, X
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1], ['a'], [true], [null], [undefined]);
- * // => [[1, 'a', true, null, undefined]]
- */
-declare function zip<T, U, V, W, X>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, arr5: ArrayLike<X>): Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {Array<ArrayLike<any> | null | undefined>} arrays - The arrays to zip.
- * @returns {Array<Array<T | undefined>>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const arr5 = [undefined, undefined, undefined];
- * const result = zip(arr1, arr2, arr3, arr4, arr5);
- * // result will be [[1, 'a', true, null, undefined], [2, 'b', false, null, undefined], [3, 'c', undefined, null, undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T
- * @param {...Array<ArrayLike<T> | null | undefined>} arrays - The arrays to process.
- * @returns {Array<Array<T | undefined>>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b'], [true, false]);
- * // => [[1, 'a', true], [2, 'b', false]]
- */
-declare function zip<T>(...arrays: Array<ArrayLike<T> | null | undefined>): Array<Array<T | undefined>>;
-
-export { zip };
Index: de_modules/es-toolkit/dist/compat/array/zip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @returns {Array<[T | undefined, U | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zip(arr1, arr2);
- * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @returns {Array<[T | undefined, U | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b']);
- * // => [[1, 'a'], [2, 'b']]
- */
-declare function zip<T, U>(arr1: ArrayLike<T>, arr2: ArrayLike<U>): Array<[T | undefined, U | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const result = zip(arr1, arr2, arr3);
- * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b'], [true, false]);
- * // => [[1, 'a', true], [2, 'b', false]]
- */
-declare function zip<T, U, V>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>): Array<[T | undefined, U | undefined, V | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const result = zip(arr1, arr2, arr3, arr4);
- * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1], ['a'], [true], [null]);
- * // => [[1, 'a', true, null]]
- */
-declare function zip<T, U, V, W>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>): Array<[T | undefined, U | undefined, V | undefined, W | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T, U, V, W
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const arr5 = [undefined, undefined, undefined];
- * const result = zip(arr1, arr2, arr3, arr4, arr5);
- * // result will be [[1, 'a', true, null, undefined], [2, 'b', false, null, undefined], [3, 'c', undefined, null, undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T, U, V, W, X
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @returns {Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1], ['a'], [true], [null], [undefined]);
- * // => [[1, 'a', true, null, undefined]]
- */
-declare function zip<T, U, V, W, X>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, arr5: ArrayLike<X>): Array<[T | undefined, U | undefined, V | undefined, W | undefined, X | undefined]>;
-/**
- * Combines multiple arrays into a single array of tuples.
- *
- * This function takes multiple arrays and returns a new array where each element is a tuple
- * containing the corresponding elements from the input arrays. If the input arrays are of
- * different lengths, the resulting array will have the length of the longest input array,
- * with undefined values for missing elements.
- *
- * @template T
- * @param {Array<ArrayLike<any> | null | undefined>} arrays - The arrays to zip.
- * @returns {Array<Array<T | undefined>>} A new array of tuples containing the corresponding elements from the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const arr3 = [true, false];
- * const arr4 = [null, null, null];
- * const arr5 = [undefined, undefined, undefined];
- * const result = zip(arr1, arr2, arr3, arr4, arr5);
- * // result will be [[1, 'a', true, null, undefined], [2, 'b', false, null, undefined], [3, 'c', undefined, null, undefined]]
- */
-/**
- * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
- * the second of which contains the second elements of the given arrays, and so on.
- *
- * @template T
- * @param {...Array<ArrayLike<T> | null | undefined>} arrays - The arrays to process.
- * @returns {Array<Array<T | undefined>>} Returns the new array of grouped elements.
- *
- * @example
- * zip([1, 2], ['a', 'b'], [true, false]);
- * // => [[1, 'a', true], [2, 'b', false]]
- */
-declare function zip<T>(...arrays: Array<ArrayLike<T> | null | undefined>): Array<Array<T | undefined>>;
-
-export { zip };
Index: de_modules/es-toolkit/dist/compat/array/zip.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const zip$1 = require('../../array/zip.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-
-function zip(...arrays) {
-    if (!arrays.length) {
-        return [];
-    }
-    return zip$1.zip(...arrays.filter(group => isArrayLikeObject.isArrayLikeObject(group)));
-}
-
-exports.zip = zip;
Index: de_modules/es-toolkit/dist/compat/array/zip.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zip.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { zip as zip$1 } from '../../array/zip.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-
-function zip(...arrays) {
-    if (!arrays.length) {
-        return [];
-    }
-    return zip$1(...arrays.filter(group => isArrayLikeObject(group)));
-}
-
-export { zip };
Index: de_modules/es-toolkit/dist/compat/array/zipObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Combines two arrays, one of property names and one of corresponding values, into a single object.
- *
- * @template T - The type of values in the values array
- * @param {ArrayLike<PropertyKey>} props - An array of property names
- * @param {ArrayLike<T>} values - An array of values corresponding to the property names
- * @returns {Record<string, T>} A new object composed of the given property names and values
- *
- * @example
- * const props = ['a', 'b', 'c'];
- * const values = [1, 2, 3];
- * zipObject(props, values);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function zipObject<T>(props: ArrayLike<PropertyKey>, values: ArrayLike<T>): Record<string, T>;
-/**
- * Creates an object from an array of property names, with undefined values.
- *
- * @param {ArrayLike<PropertyKey>} [props] - An array of property names
- * @returns {Record<string, undefined>} A new object with the given property names and undefined values
- *
- * @example
- * const props = ['a', 'b', 'c'];
- * zipObject(props);
- * // => { a: undefined, b: undefined, c: undefined }
- */
-declare function zipObject(props?: ArrayLike<PropertyKey>): Record<string, undefined>;
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/compat/array/zipObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Combines two arrays, one of property names and one of corresponding values, into a single object.
- *
- * @template T - The type of values in the values array
- * @param {ArrayLike<PropertyKey>} props - An array of property names
- * @param {ArrayLike<T>} values - An array of values corresponding to the property names
- * @returns {Record<string, T>} A new object composed of the given property names and values
- *
- * @example
- * const props = ['a', 'b', 'c'];
- * const values = [1, 2, 3];
- * zipObject(props, values);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function zipObject<T>(props: ArrayLike<PropertyKey>, values: ArrayLike<T>): Record<string, T>;
-/**
- * Creates an object from an array of property names, with undefined values.
- *
- * @param {ArrayLike<PropertyKey>} [props] - An array of property names
- * @returns {Record<string, undefined>} A new object with the given property names and undefined values
- *
- * @example
- * const props = ['a', 'b', 'c'];
- * zipObject(props);
- * // => { a: undefined, b: undefined, c: undefined }
- */
-declare function zipObject(props?: ArrayLike<PropertyKey>): Record<string, undefined>;
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/compat/array/zipObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const assignValue = require('../_internal/assignValue.js');
-
-function zipObject(keys = [], values = []) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        assignValue.assignValue(result, keys[i], values[i]);
-    }
-    return result;
-}
-
-exports.zipObject = zipObject;
Index: de_modules/es-toolkit/dist/compat/array/zipObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { assignValue } from '../_internal/assignValue.mjs';
-
-function zipObject(keys = [], values = []) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        assignValue(result, keys[i], values[i]);
-    }
-    return result;
-}
-
-export { zipObject };
Index: de_modules/es-toolkit/dist/compat/array/zipObjectDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObjectDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Creates a deeply nested object given arrays of paths and values.
- *
- * This function takes two arrays: one containing arrays of property paths, and the other containing corresponding values.
- * It returns a new object where paths from the first array are used as key paths to set values, with corresponding elements from the second array as values.
- * Paths can be dot-separated strings or arrays of property names.
- *
- * If the `keys` array is longer than the `values` array, the remaining keys will have `undefined` as their values.
- *
- * @template P - The type of property paths.
- * @template V - The type of values corresponding to the property paths.
- * @param {ArrayLike<P | P[]>} keys - An array of property paths, each path can be a dot-separated string or an array of property names.
- * @param {ArrayLike<V>} values - An array of values corresponding to the property paths.
- * @returns {Record<P, V>} A new object composed of the given property paths and values.
- *
- * @example
- * const paths = ['a.b.c', 'd.e.f'];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }
- *
- * @example
- * const paths = [['a', 'b', 'c'], ['d', 'e', 'f']];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }
- *
- * @example
- * const paths = ['a.b[0].c', 'a.b[1].d'];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
- */
-declare function zipObjectDeep(keys?: ArrayLike<PropertyPath>, values?: ArrayLike<any>): object;
-
-export { zipObjectDeep };
Index: de_modules/es-toolkit/dist/compat/array/zipObjectDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObjectDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Creates a deeply nested object given arrays of paths and values.
- *
- * This function takes two arrays: one containing arrays of property paths, and the other containing corresponding values.
- * It returns a new object where paths from the first array are used as key paths to set values, with corresponding elements from the second array as values.
- * Paths can be dot-separated strings or arrays of property names.
- *
- * If the `keys` array is longer than the `values` array, the remaining keys will have `undefined` as their values.
- *
- * @template P - The type of property paths.
- * @template V - The type of values corresponding to the property paths.
- * @param {ArrayLike<P | P[]>} keys - An array of property paths, each path can be a dot-separated string or an array of property names.
- * @param {ArrayLike<V>} values - An array of values corresponding to the property paths.
- * @returns {Record<P, V>} A new object composed of the given property paths and values.
- *
- * @example
- * const paths = ['a.b.c', 'd.e.f'];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }
- *
- * @example
- * const paths = [['a', 'b', 'c'], ['d', 'e', 'f']];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }
- *
- * @example
- * const paths = ['a.b[0].c', 'a.b[1].d'];
- * const values = [1, 2];
- * const result = zipObjectDeep(paths, values);
- * // result will be { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
- */
-declare function zipObjectDeep(keys?: ArrayLike<PropertyPath>, values?: ArrayLike<any>): object;
-
-export { zipObjectDeep };
Index: de_modules/es-toolkit/dist/compat/array/zipObjectDeep.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObjectDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const zip = require('../../array/zip.js');
-const set = require('../object/set.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function zipObjectDeep(keys, values) {
-    const result = {};
-    if (!isArrayLike.isArrayLike(keys)) {
-        return result;
-    }
-    if (!isArrayLike.isArrayLike(values)) {
-        values = [];
-    }
-    const zipped = zip.zip(Array.from(keys), Array.from(values));
-    for (let i = 0; i < zipped.length; i++) {
-        const [key, value] = zipped[i];
-        if (key != null) {
-            set.set(result, key, value);
-        }
-    }
-    return result;
-}
-
-exports.zipObjectDeep = zipObjectDeep;
Index: de_modules/es-toolkit/dist/compat/array/zipObjectDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipObjectDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { zip } from '../../array/zip.mjs';
-import { set } from '../object/set.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function zipObjectDeep(keys, values) {
-    const result = {};
-    if (!isArrayLike(keys)) {
-        return result;
-    }
-    if (!isArrayLike(values)) {
-        values = [];
-    }
-    const zipped = zip(Array.from(keys), Array.from(values));
-    for (let i = 0; i < zipped.length; i++) {
-        const [key, value] = zipped[i];
-        if (key != null) {
-            set(result, key, value);
-        }
-    }
-    return result;
-}
-
-export { zipObjectDeep };
Index: de_modules/es-toolkit/dist/compat/array/zipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/**
- * Combines one array into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {(item: T) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, R>(arr1: ArrayLike<T>, combine: (item: T) => R): R[];
-/**
- * Combines two arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {(item1: T, item2: U) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, combine: (item1: T, item2: U) => R): R[];
-/**
- * Combines three arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {(item1: T, item2: U, item3: V) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, combine: (item1: T, item2: U, item3: V) => R): R[];
-/**
- * Combines four arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, combine: (item1: T, item2: U, item3: V, item4: W) => R): R[];
-/**
- * Combines five arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template X - The type of elements in the fifth array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W, item5: X) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, X, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, arr5: ArrayLike<X>, combine: (item1: T, item2: U, item3: V, item4: W, item5: X) => R): R[];
-/**
- * Combines multiple arrays into a single array using a custom combiner function.
- *
- * This function takes one array and a variable number of additional arrays,
- * applying the provided combiner function to the corresponding elements of each array.
- * If the input arrays are of different lengths, the resulting array will have the length
- * of the longest input array, with undefined values for missing elements.
- *
- * @template T - The type of elements in the input arrays.
- * @template R - The type of elements in the resulting array.
- * @param {Array<((...group: T[]) => R) | ArrayLike<T> | null | undefined>} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zipWith(arr1, arr2, (num, char) => `${num}${char}`);
- * // result will be ['1a', '2b', '3c']
- */
-declare function zipWith<T, R>(...combine: Array<((...group: T[]) => R) | ArrayLike<T> | null | undefined>): R[];
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/compat/array/zipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/**
- * Combines one array into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {(item: T) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, R>(arr1: ArrayLike<T>, combine: (item: T) => R): R[];
-/**
- * Combines two arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {(item1: T, item2: U) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, combine: (item1: T, item2: U) => R): R[];
-/**
- * Combines three arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {(item1: T, item2: U, item3: V) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, combine: (item1: T, item2: U, item3: V) => R): R[];
-/**
- * Combines four arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, combine: (item1: T, item2: U, item3: V, item4: W) => R): R[];
-/**
- * Combines five arrays into a single array using a custom combiner function.
- *
- * @template T - The type of elements in the first array.
- * @template U - The type of elements in the second array.
- * @template V - The type of elements in the third array.
- * @template W - The type of elements in the fourth array.
- * @template X - The type of elements in the fifth array.
- * @template R - The type of elements in the resulting array.
- * @param {ArrayLike<T>} arr1 - The first array to zip.
- * @param {ArrayLike<U>} arr2 - The second array to zip.
- * @param {ArrayLike<V>} arr3 - The third array to zip.
- * @param {ArrayLike<W>} arr4 - The fourth array to zip.
- * @param {ArrayLike<X>} arr5 - The fifth array to zip.
- * @param {(item1: T, item2: U, item3: V, item4: W, item5: X) => R} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- */
-declare function zipWith<T, U, V, W, X, R>(arr1: ArrayLike<T>, arr2: ArrayLike<U>, arr3: ArrayLike<V>, arr4: ArrayLike<W>, arr5: ArrayLike<X>, combine: (item1: T, item2: U, item3: V, item4: W, item5: X) => R): R[];
-/**
- * Combines multiple arrays into a single array using a custom combiner function.
- *
- * This function takes one array and a variable number of additional arrays,
- * applying the provided combiner function to the corresponding elements of each array.
- * If the input arrays are of different lengths, the resulting array will have the length
- * of the longest input array, with undefined values for missing elements.
- *
- * @template T - The type of elements in the input arrays.
- * @template R - The type of elements in the resulting array.
- * @param {Array<((...group: T[]) => R) | ArrayLike<T> | null | undefined>} combine - The combiner function that takes corresponding elements from each array and returns a single value.
- * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
- *
- * @example
- * const arr1 = [1, 2, 3];
- * const arr2 = ['a', 'b', 'c'];
- * const result = zipWith(arr1, arr2, (num, char) => `${num}${char}`);
- * // result will be ['1a', '2b', '3c']
- */
-declare function zipWith<T, R>(...combine: Array<((...group: T[]) => R) | ArrayLike<T> | null | undefined>): R[];
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/compat/array/zipWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const unzip = require('./unzip.js');
-const isFunction = require('../../predicate/isFunction.js');
-
-function zipWith(...combine) {
-    let iteratee = combine.pop();
-    if (!isFunction.isFunction(iteratee)) {
-        combine.push(iteratee);
-        iteratee = undefined;
-    }
-    if (!combine?.length) {
-        return [];
-    }
-    const result = unzip.unzip(combine);
-    if (iteratee == null) {
-        return result;
-    }
-    return result.map(group => iteratee(...group));
-}
-
-exports.zipWith = zipWith;
Index: de_modules/es-toolkit/dist/compat/array/zipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/array/zipWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { unzip } from './unzip.mjs';
-import { isFunction } from '../../predicate/isFunction.mjs';
-
-function zipWith(...combine) {
-    let iteratee = combine.pop();
-    if (!isFunction(iteratee)) {
-        combine.push(iteratee);
-        iteratee = undefined;
-    }
-    if (!combine?.length) {
-        return [];
-    }
-    const result = unzip(combine);
-    if (iteratee == null) {
-        return result;
-    }
-    return result.map(group => iteratee(...group));
-}
-
-export { zipWith };
Index: de_modules/es-toolkit/dist/compat/compat.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/compat.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,291 +1,0 @@
-export { castArray } from './array/castArray.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { concat } from './array/concat.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { forEach as each, forEach } from './array/forEach.mjs';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.mjs';
-export { every } from './array/every.mjs';
-export { fill } from './array/fill.mjs';
-export { filter } from './array/filter.mjs';
-export { find } from './array/find.mjs';
-export { findIndex } from './array/findIndex.mjs';
-export { findLast } from './array/findLast.mjs';
-export { findLastIndex } from './array/findLastIndex.mjs';
-export { head as first, head } from './array/head.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatMapDepth } from './array/flatMapDepth.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { flattenDepth } from './array/flattenDepth.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { includes } from './array/includes.mjs';
-export { indexOf } from './array/indexOf.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { invokeMap } from './array/invokeMap.mjs';
-export { join } from './array/join.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { lastIndexOf } from './array/lastIndexOf.mjs';
-export { map } from './array/map.mjs';
-export { nth } from './array/nth.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAll } from './array/pullAll.mjs';
-export { pullAllBy } from './array/pullAllBy.mjs';
-export { pullAllWith } from './array/pullAllWith.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduce } from './array/reduce.mjs';
-export { reduceRight } from './array/reduceRight.mjs';
-export { reject } from './array/reject.mjs';
-export { remove } from './array/remove.mjs';
-export { reverse } from './array/reverse.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { size } from './array/size.mjs';
-export { slice } from './array/slice.mjs';
-export { some } from './array/some.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { sortedIndex } from './array/sortedIndex.mjs';
-export { sortedIndexBy } from './array/sortedIndexBy.mjs';
-export { sortedIndexOf } from './array/sortedIndexOf.mjs';
-export { sortedLastIndex } from './array/sortedLastIndex.mjs';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.mjs';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipObjectDeep } from './array/zipObjectDeep.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { attempt } from './function/attempt.mjs';
-export { before } from './function/before.mjs';
-export { bind } from './function/bind.mjs';
-export { bindKey } from './function/bindKey.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { DebouncedFunc, debounce } from './function/debounce.mjs';
-export { defer } from './function/defer.mjs';
-export { delay } from './function/delay.mjs';
-export { flip } from './function/flip.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { nthArg } from './function/nthArg.mjs';
-export { once } from './function/once.mjs';
-export { overArgs } from './function/overArgs.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rearg } from './function/rearg.mjs';
-export { rest } from './function/rest.mjs';
-export { spread } from './function/spread.mjs';
-export { throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { wrap } from './function/wrap.mjs';
-export { add } from './math/add.mjs';
-export { ceil } from './math/ceil.mjs';
-export { clamp } from './math/clamp.mjs';
-export { divide } from './math/divide.mjs';
-export { floor } from './math/floor.mjs';
-export { inRange } from './math/inRange.mjs';
-export { max } from './math/max.mjs';
-export { maxBy } from './math/maxBy.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { min } from './math/min.mjs';
-export { minBy } from './math/minBy.mjs';
-export { multiply } from './math/multiply.mjs';
-export { parseInt } from './math/parseInt.mjs';
-export { random } from './math/random.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { subtract } from './math/subtract.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { isEqual } from '../predicate/isEqual.mjs';
-export { identity } from './function/identity.mjs';
-export { noop } from './function/noop.mjs';
-export { assign } from './object/assign.mjs';
-export { assignIn, assignIn as extend } from './object/assignIn.mjs';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.mjs';
-export { assignWith } from './object/assignWith.mjs';
-export { at } from './object/at.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { cloneWith } from './object/cloneWith.mjs';
-export { create } from './object/create.mjs';
-export { defaults } from './object/defaults.mjs';
-export { defaultsDeep } from './object/defaultsDeep.mjs';
-export { findKey } from './object/findKey.mjs';
-export { findLastKey } from './object/findLastKey.mjs';
-export { forIn } from './object/forIn.mjs';
-export { forInRight } from './object/forInRight.mjs';
-export { forOwn } from './object/forOwn.mjs';
-export { forOwnRight } from './object/forOwnRight.mjs';
-export { fromPairs } from './object/fromPairs.mjs';
-export { functions } from './object/functions.mjs';
-export { functionsIn } from './object/functionsIn.mjs';
-export { get } from './object/get.mjs';
-export { has } from './object/has.mjs';
-export { hasIn } from './object/hasIn.mjs';
-export { invert } from './object/invert.mjs';
-export { invertBy } from './object/invertBy.mjs';
-export { keys } from './object/keys.mjs';
-export { keysIn } from './object/keysIn.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { property } from './object/property.mjs';
-export { propertyOf } from './object/propertyOf.mjs';
-export { result } from './object/result.mjs';
-export { set } from './object/set.mjs';
-export { setWith } from './object/setWith.mjs';
-export { toDefaulted } from './object/toDefaulted.mjs';
-export { toPairs } from './object/toPairs.mjs';
-export { toPairsIn } from './object/toPairsIn.mjs';
-export { transform } from './object/transform.mjs';
-export { unset } from './object/unset.mjs';
-export { update } from './object/update.mjs';
-export { updateWith } from './object/updateWith.mjs';
-export { values } from './object/values.mjs';
-export { valuesIn } from './object/valuesIn.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMatchWith } from './predicate/isMatchWith.mjs';
-export { isNative } from './predicate/isNative.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { conforms } from './predicate/conforms.mjs';
-export { conformsTo } from './predicate/conformsTo.mjs';
-export { isArguments } from './predicate/isArguments.mjs';
-export { isArray } from './predicate/isArray.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isArrayLike } from './predicate/isArrayLike.mjs';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isElement } from './predicate/isElement.mjs';
-export { isEmpty } from './predicate/isEmpty.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFinite } from './predicate/isFinite.mjs';
-export { isInteger } from './predicate/isInteger.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isMatch } from './predicate/isMatch.mjs';
-export { isNaN } from './predicate/isNaN.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isObject } from './predicate/isObject.mjs';
-export { isObjectLike } from './predicate/isObjectLike.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSafeInteger } from './predicate/isSafeInteger.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { matches } from './predicate/matches.mjs';
-export { matchesProperty } from './predicate/matchesProperty.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { bindAll } from './util/bindAll.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { endsWith } from './string/endsWith.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { padEnd } from './string/padEnd.mjs';
-export { padStart } from './string/padStart.mjs';
-export { repeat } from './string/repeat.mjs';
-export { replace } from './string/replace.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { split } from './string/split.mjs';
-export { startCase } from './string/startCase.mjs';
-export { startsWith } from './string/startsWith.mjs';
-export { template, templateSettings } from './string/template.mjs';
-export { toLower } from './string/toLower.mjs';
-export { toUpper } from './string/toUpper.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { truncate } from './string/truncate.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { cond } from './util/cond.mjs';
-export { constant } from './util/constant.mjs';
-export { defaultTo } from './util/defaultTo.mjs';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.mjs';
-export { gt } from './util/gt.mjs';
-export { gte } from './util/gte.mjs';
-export { invoke } from './util/invoke.mjs';
-export { iteratee } from './util/iteratee.mjs';
-export { lt } from './util/lt.mjs';
-export { lte } from './util/lte.mjs';
-export { method } from './util/method.mjs';
-export { methodOf } from './util/methodOf.mjs';
-export { now } from './util/now.mjs';
-export { over } from './util/over.mjs';
-export { overEvery } from './util/overEvery.mjs';
-export { overSome } from './util/overSome.mjs';
-export { stubArray } from './util/stubArray.mjs';
-export { stubFalse } from './util/stubFalse.mjs';
-export { stubObject } from './util/stubObject.mjs';
-export { stubString } from './util/stubString.mjs';
-export { stubTrue } from './util/stubTrue.mjs';
-export { times } from './util/times.mjs';
-export { toArray } from './util/toArray.mjs';
-export { toFinite } from './util/toFinite.mjs';
-export { toInteger } from './util/toInteger.mjs';
-export { toLength } from './util/toLength.mjs';
-export { toNumber } from './util/toNumber.mjs';
-export { toPath } from './util/toPath.mjs';
-export { toPlainObject } from './util/toPlainObject.mjs';
-export { toSafeInteger } from './util/toSafeInteger.mjs';
-export { toString } from './util/toString.mjs';
-export { uniqueId } from './util/uniqueId.mjs';
Index: de_modules/es-toolkit/dist/compat/compat.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/compat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,291 +1,0 @@
-export { castArray } from './array/castArray.js';
-export { chunk } from './array/chunk.js';
-export { compact } from './array/compact.js';
-export { concat } from './array/concat.js';
-export { countBy } from './array/countBy.js';
-export { difference } from './array/difference.js';
-export { differenceBy } from './array/differenceBy.js';
-export { differenceWith } from './array/differenceWith.js';
-export { drop } from './array/drop.js';
-export { dropRight } from './array/dropRight.js';
-export { dropRightWhile } from './array/dropRightWhile.js';
-export { dropWhile } from './array/dropWhile.js';
-export { forEach as each, forEach } from './array/forEach.js';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.js';
-export { every } from './array/every.js';
-export { fill } from './array/fill.js';
-export { filter } from './array/filter.js';
-export { find } from './array/find.js';
-export { findIndex } from './array/findIndex.js';
-export { findLast } from './array/findLast.js';
-export { findLastIndex } from './array/findLastIndex.js';
-export { head as first, head } from './array/head.js';
-export { flatMap } from './array/flatMap.js';
-export { flatMapDeep } from './array/flatMapDeep.js';
-export { flatMapDepth } from './array/flatMapDepth.js';
-export { flatten } from './array/flatten.js';
-export { flattenDeep } from './array/flattenDeep.js';
-export { flattenDepth } from './array/flattenDepth.js';
-export { groupBy } from './array/groupBy.js';
-export { includes } from './array/includes.js';
-export { indexOf } from './array/indexOf.js';
-export { initial } from './array/initial.js';
-export { intersection } from './array/intersection.js';
-export { intersectionBy } from './array/intersectionBy.js';
-export { intersectionWith } from './array/intersectionWith.js';
-export { invokeMap } from './array/invokeMap.js';
-export { join } from './array/join.js';
-export { keyBy } from './array/keyBy.js';
-export { last } from './array/last.js';
-export { lastIndexOf } from './array/lastIndexOf.js';
-export { map } from './array/map.js';
-export { nth } from './array/nth.js';
-export { orderBy } from './array/orderBy.js';
-export { partition } from './array/partition.js';
-export { pull } from './array/pull.js';
-export { pullAll } from './array/pullAll.js';
-export { pullAllBy } from './array/pullAllBy.js';
-export { pullAllWith } from './array/pullAllWith.js';
-export { pullAt } from './array/pullAt.js';
-export { reduce } from './array/reduce.js';
-export { reduceRight } from './array/reduceRight.js';
-export { reject } from './array/reject.js';
-export { remove } from './array/remove.js';
-export { reverse } from './array/reverse.js';
-export { sample } from './array/sample.js';
-export { sampleSize } from './array/sampleSize.js';
-export { shuffle } from './array/shuffle.js';
-export { size } from './array/size.js';
-export { slice } from './array/slice.js';
-export { some } from './array/some.js';
-export { sortBy } from './array/sortBy.js';
-export { sortedIndex } from './array/sortedIndex.js';
-export { sortedIndexBy } from './array/sortedIndexBy.js';
-export { sortedIndexOf } from './array/sortedIndexOf.js';
-export { sortedLastIndex } from './array/sortedLastIndex.js';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.js';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.js';
-export { tail } from './array/tail.js';
-export { take } from './array/take.js';
-export { takeRight } from './array/takeRight.js';
-export { takeRightWhile } from './array/takeRightWhile.js';
-export { takeWhile } from './array/takeWhile.js';
-export { union } from './array/union.js';
-export { unionBy } from './array/unionBy.js';
-export { unionWith } from './array/unionWith.js';
-export { uniq } from './array/uniq.js';
-export { uniqBy } from './array/uniqBy.js';
-export { uniqWith } from './array/uniqWith.js';
-export { unzip } from './array/unzip.js';
-export { unzipWith } from './array/unzipWith.js';
-export { without } from './array/without.js';
-export { xor } from './array/xor.js';
-export { xorBy } from './array/xorBy.js';
-export { xorWith } from './array/xorWith.js';
-export { zip } from './array/zip.js';
-export { zipObject } from './array/zipObject.js';
-export { zipObjectDeep } from './array/zipObjectDeep.js';
-export { zipWith } from './array/zipWith.js';
-export { after } from './function/after.js';
-export { ary } from './function/ary.js';
-export { attempt } from './function/attempt.js';
-export { before } from './function/before.js';
-export { bind } from './function/bind.js';
-export { bindKey } from './function/bindKey.js';
-export { curry } from './function/curry.js';
-export { curryRight } from './function/curryRight.js';
-export { DebouncedFunc, debounce } from './function/debounce.js';
-export { defer } from './function/defer.js';
-export { delay } from './function/delay.js';
-export { flip } from './function/flip.js';
-export { flow } from './function/flow.js';
-export { flowRight } from './function/flowRight.js';
-export { memoize } from './function/memoize.js';
-export { negate } from './function/negate.js';
-export { nthArg } from './function/nthArg.js';
-export { once } from './function/once.js';
-export { overArgs } from './function/overArgs.js';
-export { partial } from './function/partial.js';
-export { partialRight } from './function/partialRight.js';
-export { rearg } from './function/rearg.js';
-export { rest } from './function/rest.js';
-export { spread } from './function/spread.js';
-export { throttle } from './function/throttle.js';
-export { unary } from './function/unary.js';
-export { wrap } from './function/wrap.js';
-export { add } from './math/add.js';
-export { ceil } from './math/ceil.js';
-export { clamp } from './math/clamp.js';
-export { divide } from './math/divide.js';
-export { floor } from './math/floor.js';
-export { inRange } from './math/inRange.js';
-export { max } from './math/max.js';
-export { maxBy } from './math/maxBy.js';
-export { mean } from './math/mean.js';
-export { meanBy } from './math/meanBy.js';
-export { min } from './math/min.js';
-export { minBy } from './math/minBy.js';
-export { multiply } from './math/multiply.js';
-export { parseInt } from './math/parseInt.js';
-export { random } from './math/random.js';
-export { range } from './math/range.js';
-export { rangeRight } from './math/rangeRight.js';
-export { round } from './math/round.js';
-export { subtract } from './math/subtract.js';
-export { sum } from './math/sum.js';
-export { sumBy } from './math/sumBy.js';
-export { isEqual } from '../predicate/isEqual.js';
-export { identity } from './function/identity.js';
-export { noop } from './function/noop.js';
-export { assign } from './object/assign.js';
-export { assignIn, assignIn as extend } from './object/assignIn.js';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.js';
-export { assignWith } from './object/assignWith.js';
-export { at } from './object/at.js';
-export { clone } from './object/clone.js';
-export { cloneDeep } from './object/cloneDeep.js';
-export { cloneDeepWith } from './object/cloneDeepWith.js';
-export { cloneWith } from './object/cloneWith.js';
-export { create } from './object/create.js';
-export { defaults } from './object/defaults.js';
-export { defaultsDeep } from './object/defaultsDeep.js';
-export { findKey } from './object/findKey.js';
-export { findLastKey } from './object/findLastKey.js';
-export { forIn } from './object/forIn.js';
-export { forInRight } from './object/forInRight.js';
-export { forOwn } from './object/forOwn.js';
-export { forOwnRight } from './object/forOwnRight.js';
-export { fromPairs } from './object/fromPairs.js';
-export { functions } from './object/functions.js';
-export { functionsIn } from './object/functionsIn.js';
-export { get } from './object/get.js';
-export { has } from './object/has.js';
-export { hasIn } from './object/hasIn.js';
-export { invert } from './object/invert.js';
-export { invertBy } from './object/invertBy.js';
-export { keys } from './object/keys.js';
-export { keysIn } from './object/keysIn.js';
-export { mapKeys } from './object/mapKeys.js';
-export { mapValues } from './object/mapValues.js';
-export { merge } from './object/merge.js';
-export { mergeWith } from './object/mergeWith.js';
-export { omit } from './object/omit.js';
-export { omitBy } from './object/omitBy.js';
-export { pick } from './object/pick.js';
-export { pickBy } from './object/pickBy.js';
-export { property } from './object/property.js';
-export { propertyOf } from './object/propertyOf.js';
-export { result } from './object/result.js';
-export { set } from './object/set.js';
-export { setWith } from './object/setWith.js';
-export { toDefaulted } from './object/toDefaulted.js';
-export { toPairs } from './object/toPairs.js';
-export { toPairsIn } from './object/toPairsIn.js';
-export { transform } from './object/transform.js';
-export { unset } from './object/unset.js';
-export { update } from './object/update.js';
-export { updateWith } from './object/updateWith.js';
-export { values } from './object/values.js';
-export { valuesIn } from './object/valuesIn.js';
-export { isFunction } from './predicate/isFunction.js';
-export { isLength } from './predicate/isLength.js';
-export { isMatchWith } from './predicate/isMatchWith.js';
-export { isNative } from './predicate/isNative.js';
-export { isNull } from './predicate/isNull.js';
-export { isUndefined } from './predicate/isUndefined.js';
-export { conforms } from './predicate/conforms.js';
-export { conformsTo } from './predicate/conformsTo.js';
-export { isArguments } from './predicate/isArguments.js';
-export { isArray } from './predicate/isArray.js';
-export { isArrayBuffer } from './predicate/isArrayBuffer.js';
-export { isArrayLike } from './predicate/isArrayLike.js';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.js';
-export { isBoolean } from './predicate/isBoolean.js';
-export { isBuffer } from './predicate/isBuffer.js';
-export { isDate } from './predicate/isDate.js';
-export { isElement } from './predicate/isElement.js';
-export { isEmpty } from './predicate/isEmpty.js';
-export { isEqualWith } from './predicate/isEqualWith.js';
-export { isError } from './predicate/isError.js';
-export { isFinite } from './predicate/isFinite.js';
-export { isInteger } from './predicate/isInteger.js';
-export { isMap } from './predicate/isMap.js';
-export { isMatch } from './predicate/isMatch.js';
-export { isNaN } from './predicate/isNaN.js';
-export { isNil } from './predicate/isNil.js';
-export { isNumber } from './predicate/isNumber.js';
-export { isObject } from './predicate/isObject.js';
-export { isObjectLike } from './predicate/isObjectLike.js';
-export { isPlainObject } from './predicate/isPlainObject.js';
-export { isRegExp } from './predicate/isRegExp.js';
-export { isSafeInteger } from './predicate/isSafeInteger.js';
-export { isSet } from './predicate/isSet.js';
-export { isString } from './predicate/isString.js';
-export { isSymbol } from './predicate/isSymbol.js';
-export { isTypedArray } from './predicate/isTypedArray.js';
-export { isWeakMap } from './predicate/isWeakMap.js';
-export { isWeakSet } from './predicate/isWeakSet.js';
-export { matches } from './predicate/matches.js';
-export { matchesProperty } from './predicate/matchesProperty.js';
-export { capitalize } from './string/capitalize.js';
-export { bindAll } from './util/bindAll.js';
-export { camelCase } from './string/camelCase.js';
-export { deburr } from './string/deburr.js';
-export { endsWith } from './string/endsWith.js';
-export { escape } from './string/escape.js';
-export { escapeRegExp } from './string/escapeRegExp.js';
-export { kebabCase } from './string/kebabCase.js';
-export { lowerCase } from './string/lowerCase.js';
-export { lowerFirst } from './string/lowerFirst.js';
-export { pad } from './string/pad.js';
-export { padEnd } from './string/padEnd.js';
-export { padStart } from './string/padStart.js';
-export { repeat } from './string/repeat.js';
-export { replace } from './string/replace.js';
-export { snakeCase } from './string/snakeCase.js';
-export { split } from './string/split.js';
-export { startCase } from './string/startCase.js';
-export { startsWith } from './string/startsWith.js';
-export { template, templateSettings } from './string/template.js';
-export { toLower } from './string/toLower.js';
-export { toUpper } from './string/toUpper.js';
-export { trim } from './string/trim.js';
-export { trimEnd } from './string/trimEnd.js';
-export { trimStart } from './string/trimStart.js';
-export { truncate } from './string/truncate.js';
-export { unescape } from './string/unescape.js';
-export { upperCase } from './string/upperCase.js';
-export { upperFirst } from './string/upperFirst.js';
-export { words } from './string/words.js';
-export { cond } from './util/cond.js';
-export { constant } from './util/constant.js';
-export { defaultTo } from './util/defaultTo.js';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.js';
-export { gt } from './util/gt.js';
-export { gte } from './util/gte.js';
-export { invoke } from './util/invoke.js';
-export { iteratee } from './util/iteratee.js';
-export { lt } from './util/lt.js';
-export { lte } from './util/lte.js';
-export { method } from './util/method.js';
-export { methodOf } from './util/methodOf.js';
-export { now } from './util/now.js';
-export { over } from './util/over.js';
-export { overEvery } from './util/overEvery.js';
-export { overSome } from './util/overSome.js';
-export { stubArray } from './util/stubArray.js';
-export { stubFalse } from './util/stubFalse.js';
-export { stubObject } from './util/stubObject.js';
-export { stubString } from './util/stubString.js';
-export { stubTrue } from './util/stubTrue.js';
-export { times } from './util/times.js';
-export { toArray } from './util/toArray.js';
-export { toFinite } from './util/toFinite.js';
-export { toInteger } from './util/toInteger.js';
-export { toLength } from './util/toLength.js';
-export { toNumber } from './util/toNumber.js';
-export { toPath } from './util/toPath.js';
-export { toPlainObject } from './util/toPlainObject.js';
-export { toSafeInteger } from './util/toSafeInteger.js';
-export { toString } from './util/toString.js';
-export { uniqueId } from './util/uniqueId.js';
Index: de_modules/es-toolkit/dist/compat/compat.js
===================================================================
--- node_modules/es-toolkit/dist/compat/compat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,595 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const castArray = require('./array/castArray.js');
-const chunk = require('./array/chunk.js');
-const compact = require('./array/compact.js');
-const concat = require('./array/concat.js');
-const countBy = require('./array/countBy.js');
-const difference = require('./array/difference.js');
-const differenceBy = require('./array/differenceBy.js');
-const differenceWith = require('./array/differenceWith.js');
-const drop = require('./array/drop.js');
-const dropRight = require('./array/dropRight.js');
-const dropRightWhile = require('./array/dropRightWhile.js');
-const dropWhile = require('./array/dropWhile.js');
-const forEach = require('./array/forEach.js');
-const forEachRight = require('./array/forEachRight.js');
-const every = require('./array/every.js');
-const fill = require('./array/fill.js');
-const filter = require('./array/filter.js');
-const find = require('./array/find.js');
-const findIndex = require('./array/findIndex.js');
-const findLast = require('./array/findLast.js');
-const findLastIndex = require('./array/findLastIndex.js');
-const head = require('./array/head.js');
-const flatMap = require('./array/flatMap.js');
-const flatMapDeep = require('./array/flatMapDeep.js');
-const flatMapDepth = require('./array/flatMapDepth.js');
-const flatten = require('./array/flatten.js');
-const flattenDeep = require('./array/flattenDeep.js');
-const flattenDepth = require('./array/flattenDepth.js');
-const groupBy = require('./array/groupBy.js');
-const includes = require('./array/includes.js');
-const indexOf = require('./array/indexOf.js');
-const initial = require('./array/initial.js');
-const intersection = require('./array/intersection.js');
-const intersectionBy = require('./array/intersectionBy.js');
-const intersectionWith = require('./array/intersectionWith.js');
-const invokeMap = require('./array/invokeMap.js');
-const join = require('./array/join.js');
-const keyBy = require('./array/keyBy.js');
-const last = require('./array/last.js');
-const lastIndexOf = require('./array/lastIndexOf.js');
-const map = require('./array/map.js');
-const nth = require('./array/nth.js');
-const orderBy = require('./array/orderBy.js');
-const partition = require('./array/partition.js');
-const pull = require('./array/pull.js');
-const pullAll = require('./array/pullAll.js');
-const pullAllBy = require('./array/pullAllBy.js');
-const pullAllWith = require('./array/pullAllWith.js');
-const pullAt = require('./array/pullAt.js');
-const reduce = require('./array/reduce.js');
-const reduceRight = require('./array/reduceRight.js');
-const reject = require('./array/reject.js');
-const remove = require('./array/remove.js');
-const reverse = require('./array/reverse.js');
-const sample = require('./array/sample.js');
-const sampleSize = require('./array/sampleSize.js');
-const shuffle = require('./array/shuffle.js');
-const size = require('./array/size.js');
-const slice = require('./array/slice.js');
-const some = require('./array/some.js');
-const sortBy = require('./array/sortBy.js');
-const sortedIndex = require('./array/sortedIndex.js');
-const sortedIndexBy = require('./array/sortedIndexBy.js');
-const sortedIndexOf = require('./array/sortedIndexOf.js');
-const sortedLastIndex = require('./array/sortedLastIndex.js');
-const sortedLastIndexBy = require('./array/sortedLastIndexBy.js');
-const sortedLastIndexOf = require('./array/sortedLastIndexOf.js');
-const tail = require('./array/tail.js');
-const take = require('./array/take.js');
-const takeRight = require('./array/takeRight.js');
-const takeRightWhile = require('./array/takeRightWhile.js');
-const takeWhile = require('./array/takeWhile.js');
-const union = require('./array/union.js');
-const unionBy = require('./array/unionBy.js');
-const unionWith = require('./array/unionWith.js');
-const uniq = require('./array/uniq.js');
-const uniqBy = require('./array/uniqBy.js');
-const uniqWith = require('./array/uniqWith.js');
-const unzip = require('./array/unzip.js');
-const unzipWith = require('./array/unzipWith.js');
-const without = require('./array/without.js');
-const xor = require('./array/xor.js');
-const xorBy = require('./array/xorBy.js');
-const xorWith = require('./array/xorWith.js');
-const zip = require('./array/zip.js');
-const zipObject = require('./array/zipObject.js');
-const zipObjectDeep = require('./array/zipObjectDeep.js');
-const zipWith = require('./array/zipWith.js');
-const after = require('./function/after.js');
-const ary = require('./function/ary.js');
-const attempt = require('./function/attempt.js');
-const before = require('./function/before.js');
-const bind = require('./function/bind.js');
-const bindKey = require('./function/bindKey.js');
-const curry = require('./function/curry.js');
-const curryRight = require('./function/curryRight.js');
-const debounce = require('./function/debounce.js');
-const defer = require('./function/defer.js');
-const delay = require('./function/delay.js');
-const flip = require('./function/flip.js');
-const flow = require('./function/flow.js');
-const flowRight = require('./function/flowRight.js');
-const memoize = require('./function/memoize.js');
-const negate = require('./function/negate.js');
-const nthArg = require('./function/nthArg.js');
-const once = require('./function/once.js');
-const overArgs = require('./function/overArgs.js');
-const partial = require('./function/partial.js');
-const partialRight = require('./function/partialRight.js');
-const rearg = require('./function/rearg.js');
-const rest = require('./function/rest.js');
-const spread = require('./function/spread.js');
-const throttle = require('./function/throttle.js');
-const unary = require('./function/unary.js');
-const wrap = require('./function/wrap.js');
-const add = require('./math/add.js');
-const ceil = require('./math/ceil.js');
-const clamp = require('./math/clamp.js');
-const divide = require('./math/divide.js');
-const floor = require('./math/floor.js');
-const inRange = require('./math/inRange.js');
-const max = require('./math/max.js');
-const maxBy = require('./math/maxBy.js');
-const mean = require('./math/mean.js');
-const meanBy = require('./math/meanBy.js');
-const min = require('./math/min.js');
-const minBy = require('./math/minBy.js');
-const multiply = require('./math/multiply.js');
-const parseInt = require('./math/parseInt.js');
-const random = require('./math/random.js');
-const range = require('./math/range.js');
-const rangeRight = require('./math/rangeRight.js');
-const round = require('./math/round.js');
-const subtract = require('./math/subtract.js');
-const sum = require('./math/sum.js');
-const sumBy = require('./math/sumBy.js');
-const isEqual = require('../predicate/isEqual.js');
-const identity = require('./function/identity.js');
-const noop = require('./function/noop.js');
-const assign = require('./object/assign.js');
-const assignIn = require('./object/assignIn.js');
-const assignInWith = require('./object/assignInWith.js');
-const assignWith = require('./object/assignWith.js');
-const at = require('./object/at.js');
-const clone = require('./object/clone.js');
-const cloneDeep = require('./object/cloneDeep.js');
-const cloneDeepWith = require('./object/cloneDeepWith.js');
-const cloneWith = require('./object/cloneWith.js');
-const create = require('./object/create.js');
-const defaults = require('./object/defaults.js');
-const defaultsDeep = require('./object/defaultsDeep.js');
-const findKey = require('./object/findKey.js');
-const findLastKey = require('./object/findLastKey.js');
-const forIn = require('./object/forIn.js');
-const forInRight = require('./object/forInRight.js');
-const forOwn = require('./object/forOwn.js');
-const forOwnRight = require('./object/forOwnRight.js');
-const fromPairs = require('./object/fromPairs.js');
-const functions = require('./object/functions.js');
-const functionsIn = require('./object/functionsIn.js');
-const get = require('./object/get.js');
-const has = require('./object/has.js');
-const hasIn = require('./object/hasIn.js');
-const invert = require('./object/invert.js');
-const invertBy = require('./object/invertBy.js');
-const keys = require('./object/keys.js');
-const keysIn = require('./object/keysIn.js');
-const mapKeys = require('./object/mapKeys.js');
-const mapValues = require('./object/mapValues.js');
-const merge = require('./object/merge.js');
-const mergeWith = require('./object/mergeWith.js');
-const omit = require('./object/omit.js');
-const omitBy = require('./object/omitBy.js');
-const pick = require('./object/pick.js');
-const pickBy = require('./object/pickBy.js');
-const property = require('./object/property.js');
-const propertyOf = require('./object/propertyOf.js');
-const result = require('./object/result.js');
-const set = require('./object/set.js');
-const setWith = require('./object/setWith.js');
-const toDefaulted = require('./object/toDefaulted.js');
-const toPairs = require('./object/toPairs.js');
-const toPairsIn = require('./object/toPairsIn.js');
-const transform = require('./object/transform.js');
-const unset = require('./object/unset.js');
-const update = require('./object/update.js');
-const updateWith = require('./object/updateWith.js');
-const values = require('./object/values.js');
-const valuesIn = require('./object/valuesIn.js');
-const isFunction = require('./predicate/isFunction.js');
-const isLength = require('./predicate/isLength.js');
-const isMatchWith = require('./predicate/isMatchWith.js');
-const isNative = require('./predicate/isNative.js');
-const isNull = require('./predicate/isNull.js');
-const isUndefined = require('./predicate/isUndefined.js');
-const conforms = require('./predicate/conforms.js');
-const conformsTo = require('./predicate/conformsTo.js');
-const isArguments = require('./predicate/isArguments.js');
-const isArray = require('./predicate/isArray.js');
-const isArrayBuffer = require('./predicate/isArrayBuffer.js');
-const isArrayLike = require('./predicate/isArrayLike.js');
-const isArrayLikeObject = require('./predicate/isArrayLikeObject.js');
-const isBoolean = require('./predicate/isBoolean.js');
-const isBuffer = require('./predicate/isBuffer.js');
-const isDate = require('./predicate/isDate.js');
-const isElement = require('./predicate/isElement.js');
-const isEmpty = require('./predicate/isEmpty.js');
-const isEqualWith = require('./predicate/isEqualWith.js');
-const isError = require('./predicate/isError.js');
-const isFinite = require('./predicate/isFinite.js');
-const isInteger = require('./predicate/isInteger.js');
-const isMap = require('./predicate/isMap.js');
-const isMatch = require('./predicate/isMatch.js');
-const isNaN = require('./predicate/isNaN.js');
-const isNil = require('./predicate/isNil.js');
-const isNumber = require('./predicate/isNumber.js');
-const isObject = require('./predicate/isObject.js');
-const isObjectLike = require('./predicate/isObjectLike.js');
-const isPlainObject = require('./predicate/isPlainObject.js');
-const isRegExp = require('./predicate/isRegExp.js');
-const isSafeInteger = require('./predicate/isSafeInteger.js');
-const isSet = require('./predicate/isSet.js');
-const isString = require('./predicate/isString.js');
-const isSymbol = require('./predicate/isSymbol.js');
-const isTypedArray = require('./predicate/isTypedArray.js');
-const isWeakMap = require('./predicate/isWeakMap.js');
-const isWeakSet = require('./predicate/isWeakSet.js');
-const matches = require('./predicate/matches.js');
-const matchesProperty = require('./predicate/matchesProperty.js');
-const capitalize = require('./string/capitalize.js');
-const bindAll = require('./util/bindAll.js');
-const camelCase = require('./string/camelCase.js');
-const deburr = require('./string/deburr.js');
-const endsWith = require('./string/endsWith.js');
-const escape = require('./string/escape.js');
-const escapeRegExp = require('./string/escapeRegExp.js');
-const kebabCase = require('./string/kebabCase.js');
-const lowerCase = require('./string/lowerCase.js');
-const lowerFirst = require('./string/lowerFirst.js');
-const pad = require('./string/pad.js');
-const padEnd = require('./string/padEnd.js');
-const padStart = require('./string/padStart.js');
-const repeat = require('./string/repeat.js');
-const replace = require('./string/replace.js');
-const snakeCase = require('./string/snakeCase.js');
-const split = require('./string/split.js');
-const startCase = require('./string/startCase.js');
-const startsWith = require('./string/startsWith.js');
-const template = require('./string/template.js');
-const toLower = require('./string/toLower.js');
-const toUpper = require('./string/toUpper.js');
-const trim = require('./string/trim.js');
-const trimEnd = require('./string/trimEnd.js');
-const trimStart = require('./string/trimStart.js');
-const truncate = require('./string/truncate.js');
-const unescape = require('./string/unescape.js');
-const upperCase = require('./string/upperCase.js');
-const upperFirst = require('./string/upperFirst.js');
-const words = require('./string/words.js');
-const cond = require('./util/cond.js');
-const constant = require('./util/constant.js');
-const defaultTo = require('./util/defaultTo.js');
-const isEqualsSameValueZero = require('../_internal/isEqualsSameValueZero.js');
-const gt = require('./util/gt.js');
-const gte = require('./util/gte.js');
-const invoke = require('./util/invoke.js');
-const iteratee = require('./util/iteratee.js');
-const lt = require('./util/lt.js');
-const lte = require('./util/lte.js');
-const method = require('./util/method.js');
-const methodOf = require('./util/methodOf.js');
-const now = require('./util/now.js');
-const over = require('./util/over.js');
-const overEvery = require('./util/overEvery.js');
-const overSome = require('./util/overSome.js');
-const stubArray = require('./util/stubArray.js');
-const stubFalse = require('./util/stubFalse.js');
-const stubObject = require('./util/stubObject.js');
-const stubString = require('./util/stubString.js');
-const stubTrue = require('./util/stubTrue.js');
-const times = require('./util/times.js');
-const toArray = require('./util/toArray.js');
-const toFinite = require('./util/toFinite.js');
-const toInteger = require('./util/toInteger.js');
-const toLength = require('./util/toLength.js');
-const toNumber = require('./util/toNumber.js');
-const toPath = require('./util/toPath.js');
-const toPlainObject = require('./util/toPlainObject.js');
-const toSafeInteger = require('./util/toSafeInteger.js');
-const toString = require('./util/toString.js');
-const uniqueId = require('./util/uniqueId.js');
-
-
-
-exports.castArray = castArray.castArray;
-exports.chunk = chunk.chunk;
-exports.compact = compact.compact;
-exports.concat = concat.concat;
-exports.countBy = countBy.countBy;
-exports.difference = difference.difference;
-exports.differenceBy = differenceBy.differenceBy;
-exports.differenceWith = differenceWith.differenceWith;
-exports.drop = drop.drop;
-exports.dropRight = dropRight.dropRight;
-exports.dropRightWhile = dropRightWhile.dropRightWhile;
-exports.dropWhile = dropWhile.dropWhile;
-exports.each = forEach.forEach;
-exports.forEach = forEach.forEach;
-exports.eachRight = forEachRight.forEachRight;
-exports.forEachRight = forEachRight.forEachRight;
-exports.every = every.every;
-exports.fill = fill.fill;
-exports.filter = filter.filter;
-exports.find = find.find;
-exports.findIndex = findIndex.findIndex;
-exports.findLast = findLast.findLast;
-exports.findLastIndex = findLastIndex.findLastIndex;
-exports.first = head.head;
-exports.head = head.head;
-exports.flatMap = flatMap.flatMap;
-exports.flatMapDeep = flatMapDeep.flatMapDeep;
-exports.flatMapDepth = flatMapDepth.flatMapDepth;
-exports.flatten = flatten.flatten;
-exports.flattenDeep = flattenDeep.flattenDeep;
-exports.flattenDepth = flattenDepth.flattenDepth;
-exports.groupBy = groupBy.groupBy;
-exports.includes = includes.includes;
-exports.indexOf = indexOf.indexOf;
-exports.initial = initial.initial;
-exports.intersection = intersection.intersection;
-exports.intersectionBy = intersectionBy.intersectionBy;
-exports.intersectionWith = intersectionWith.intersectionWith;
-exports.invokeMap = invokeMap.invokeMap;
-exports.join = join.join;
-exports.keyBy = keyBy.keyBy;
-exports.last = last.last;
-exports.lastIndexOf = lastIndexOf.lastIndexOf;
-exports.map = map.map;
-exports.nth = nth.nth;
-exports.orderBy = orderBy.orderBy;
-exports.partition = partition.partition;
-exports.pull = pull.pull;
-exports.pullAll = pullAll.pullAll;
-exports.pullAllBy = pullAllBy.pullAllBy;
-exports.pullAllWith = pullAllWith.pullAllWith;
-exports.pullAt = pullAt.pullAt;
-exports.reduce = reduce.reduce;
-exports.reduceRight = reduceRight.reduceRight;
-exports.reject = reject.reject;
-exports.remove = remove.remove;
-exports.reverse = reverse.reverse;
-exports.sample = sample.sample;
-exports.sampleSize = sampleSize.sampleSize;
-exports.shuffle = shuffle.shuffle;
-exports.size = size.size;
-exports.slice = slice.slice;
-exports.some = some.some;
-exports.sortBy = sortBy.sortBy;
-exports.sortedIndex = sortedIndex.sortedIndex;
-exports.sortedIndexBy = sortedIndexBy.sortedIndexBy;
-exports.sortedIndexOf = sortedIndexOf.sortedIndexOf;
-exports.sortedLastIndex = sortedLastIndex.sortedLastIndex;
-exports.sortedLastIndexBy = sortedLastIndexBy.sortedLastIndexBy;
-exports.sortedLastIndexOf = sortedLastIndexOf.sortedLastIndexOf;
-exports.tail = tail.tail;
-exports.take = take.take;
-exports.takeRight = takeRight.takeRight;
-exports.takeRightWhile = takeRightWhile.takeRightWhile;
-exports.takeWhile = takeWhile.takeWhile;
-exports.union = union.union;
-exports.unionBy = unionBy.unionBy;
-exports.unionWith = unionWith.unionWith;
-exports.uniq = uniq.uniq;
-exports.uniqBy = uniqBy.uniqBy;
-exports.uniqWith = uniqWith.uniqWith;
-exports.unzip = unzip.unzip;
-exports.unzipWith = unzipWith.unzipWith;
-exports.without = without.without;
-exports.xor = xor.xor;
-exports.xorBy = xorBy.xorBy;
-exports.xorWith = xorWith.xorWith;
-exports.zip = zip.zip;
-exports.zipObject = zipObject.zipObject;
-exports.zipObjectDeep = zipObjectDeep.zipObjectDeep;
-exports.zipWith = zipWith.zipWith;
-exports.after = after.after;
-exports.ary = ary.ary;
-exports.attempt = attempt.attempt;
-exports.before = before.before;
-exports.bind = bind.bind;
-exports.bindKey = bindKey.bindKey;
-exports.curry = curry.curry;
-exports.curryRight = curryRight.curryRight;
-exports.debounce = debounce.debounce;
-exports.defer = defer.defer;
-exports.delay = delay.delay;
-exports.flip = flip.flip;
-exports.flow = flow.flow;
-exports.flowRight = flowRight.flowRight;
-exports.memoize = memoize.memoize;
-exports.negate = negate.negate;
-exports.nthArg = nthArg.nthArg;
-exports.once = once.once;
-exports.overArgs = overArgs.overArgs;
-exports.partial = partial.partial;
-exports.partialRight = partialRight.partialRight;
-exports.rearg = rearg.rearg;
-exports.rest = rest.rest;
-exports.spread = spread.spread;
-exports.throttle = throttle.throttle;
-exports.unary = unary.unary;
-exports.wrap = wrap.wrap;
-exports.add = add.add;
-exports.ceil = ceil.ceil;
-exports.clamp = clamp.clamp;
-exports.divide = divide.divide;
-exports.floor = floor.floor;
-exports.inRange = inRange.inRange;
-exports.max = max.max;
-exports.maxBy = maxBy.maxBy;
-exports.mean = mean.mean;
-exports.meanBy = meanBy.meanBy;
-exports.min = min.min;
-exports.minBy = minBy.minBy;
-exports.multiply = multiply.multiply;
-exports.parseInt = parseInt.parseInt;
-exports.random = random.random;
-exports.range = range.range;
-exports.rangeRight = rangeRight.rangeRight;
-exports.round = round.round;
-exports.subtract = subtract.subtract;
-exports.sum = sum.sum;
-exports.sumBy = sumBy.sumBy;
-exports.isEqual = isEqual.isEqual;
-exports.identity = identity.identity;
-exports.noop = noop.noop;
-exports.assign = assign.assign;
-exports.assignIn = assignIn.assignIn;
-exports.extend = assignIn.assignIn;
-exports.assignInWith = assignInWith.assignInWith;
-exports.extendWith = assignInWith.assignInWith;
-exports.assignWith = assignWith.assignWith;
-exports.at = at.at;
-exports.clone = clone.clone;
-exports.cloneDeep = cloneDeep.cloneDeep;
-exports.cloneDeepWith = cloneDeepWith.cloneDeepWith;
-exports.cloneWith = cloneWith.cloneWith;
-exports.create = create.create;
-exports.defaults = defaults.defaults;
-exports.defaultsDeep = defaultsDeep.defaultsDeep;
-exports.findKey = findKey.findKey;
-exports.findLastKey = findLastKey.findLastKey;
-exports.forIn = forIn.forIn;
-exports.forInRight = forInRight.forInRight;
-exports.forOwn = forOwn.forOwn;
-exports.forOwnRight = forOwnRight.forOwnRight;
-exports.fromPairs = fromPairs.fromPairs;
-exports.functions = functions.functions;
-exports.functionsIn = functionsIn.functionsIn;
-exports.get = get.get;
-exports.has = has.has;
-exports.hasIn = hasIn.hasIn;
-exports.invert = invert.invert;
-exports.invertBy = invertBy.invertBy;
-exports.keys = keys.keys;
-exports.keysIn = keysIn.keysIn;
-exports.mapKeys = mapKeys.mapKeys;
-exports.mapValues = mapValues.mapValues;
-exports.merge = merge.merge;
-exports.mergeWith = mergeWith.mergeWith;
-exports.omit = omit.omit;
-exports.omitBy = omitBy.omitBy;
-exports.pick = pick.pick;
-exports.pickBy = pickBy.pickBy;
-exports.property = property.property;
-exports.propertyOf = propertyOf.propertyOf;
-exports.result = result.result;
-exports.set = set.set;
-exports.setWith = setWith.setWith;
-exports.toDefaulted = toDefaulted.toDefaulted;
-exports.toPairs = toPairs.toPairs;
-exports.toPairsIn = toPairsIn.toPairsIn;
-exports.transform = transform.transform;
-exports.unset = unset.unset;
-exports.update = update.update;
-exports.updateWith = updateWith.updateWith;
-exports.values = values.values;
-exports.valuesIn = valuesIn.valuesIn;
-exports.isFunction = isFunction.isFunction;
-exports.isLength = isLength.isLength;
-exports.isMatchWith = isMatchWith.isMatchWith;
-exports.isNative = isNative.isNative;
-exports.isNull = isNull.isNull;
-exports.isUndefined = isUndefined.isUndefined;
-exports.conforms = conforms.conforms;
-exports.conformsTo = conformsTo.conformsTo;
-exports.isArguments = isArguments.isArguments;
-exports.isArray = isArray.isArray;
-exports.isArrayBuffer = isArrayBuffer.isArrayBuffer;
-exports.isArrayLike = isArrayLike.isArrayLike;
-exports.isArrayLikeObject = isArrayLikeObject.isArrayLikeObject;
-exports.isBoolean = isBoolean.isBoolean;
-exports.isBuffer = isBuffer.isBuffer;
-exports.isDate = isDate.isDate;
-exports.isElement = isElement.isElement;
-exports.isEmpty = isEmpty.isEmpty;
-exports.isEqualWith = isEqualWith.isEqualWith;
-exports.isError = isError.isError;
-exports.isFinite = isFinite.isFinite;
-exports.isInteger = isInteger.isInteger;
-exports.isMap = isMap.isMap;
-exports.isMatch = isMatch.isMatch;
-exports.isNaN = isNaN.isNaN;
-exports.isNil = isNil.isNil;
-exports.isNumber = isNumber.isNumber;
-exports.isObject = isObject.isObject;
-exports.isObjectLike = isObjectLike.isObjectLike;
-exports.isPlainObject = isPlainObject.isPlainObject;
-exports.isRegExp = isRegExp.isRegExp;
-exports.isSafeInteger = isSafeInteger.isSafeInteger;
-exports.isSet = isSet.isSet;
-exports.isString = isString.isString;
-exports.isSymbol = isSymbol.isSymbol;
-exports.isTypedArray = isTypedArray.isTypedArray;
-exports.isWeakMap = isWeakMap.isWeakMap;
-exports.isWeakSet = isWeakSet.isWeakSet;
-exports.matches = matches.matches;
-exports.matchesProperty = matchesProperty.matchesProperty;
-exports.capitalize = capitalize.capitalize;
-exports.bindAll = bindAll.bindAll;
-exports.camelCase = camelCase.camelCase;
-exports.deburr = deburr.deburr;
-exports.endsWith = endsWith.endsWith;
-exports.escape = escape.escape;
-exports.escapeRegExp = escapeRegExp.escapeRegExp;
-exports.kebabCase = kebabCase.kebabCase;
-exports.lowerCase = lowerCase.lowerCase;
-exports.lowerFirst = lowerFirst.lowerFirst;
-exports.pad = pad.pad;
-exports.padEnd = padEnd.padEnd;
-exports.padStart = padStart.padStart;
-exports.repeat = repeat.repeat;
-exports.replace = replace.replace;
-exports.snakeCase = snakeCase.snakeCase;
-exports.split = split.split;
-exports.startCase = startCase.startCase;
-exports.startsWith = startsWith.startsWith;
-exports.template = template.template;
-exports.templateSettings = template.templateSettings;
-exports.toLower = toLower.toLower;
-exports.toUpper = toUpper.toUpper;
-exports.trim = trim.trim;
-exports.trimEnd = trimEnd.trimEnd;
-exports.trimStart = trimStart.trimStart;
-exports.truncate = truncate.truncate;
-exports.unescape = unescape.unescape;
-exports.upperCase = upperCase.upperCase;
-exports.upperFirst = upperFirst.upperFirst;
-exports.words = words.words;
-exports.cond = cond.cond;
-exports.constant = constant.constant;
-exports.defaultTo = defaultTo.defaultTo;
-exports.eq = isEqualsSameValueZero.isEqualsSameValueZero;
-exports.gt = gt.gt;
-exports.gte = gte.gte;
-exports.invoke = invoke.invoke;
-exports.iteratee = iteratee.iteratee;
-exports.lt = lt.lt;
-exports.lte = lte.lte;
-exports.method = method.method;
-exports.methodOf = methodOf.methodOf;
-exports.now = now.now;
-exports.over = over.over;
-exports.overEvery = overEvery.overEvery;
-exports.overSome = overSome.overSome;
-exports.stubArray = stubArray.stubArray;
-exports.stubFalse = stubFalse.stubFalse;
-exports.stubObject = stubObject.stubObject;
-exports.stubString = stubString.stubString;
-exports.stubTrue = stubTrue.stubTrue;
-exports.times = times.times;
-exports.toArray = toArray.toArray;
-exports.toFinite = toFinite.toFinite;
-exports.toInteger = toInteger.toInteger;
-exports.toLength = toLength.toLength;
-exports.toNumber = toNumber.toNumber;
-exports.toPath = toPath.toPath;
-exports.toPlainObject = toPlainObject.toPlainObject;
-exports.toSafeInteger = toSafeInteger.toSafeInteger;
-exports.toString = toString.toString;
-exports.uniqueId = uniqueId.uniqueId;
Index: de_modules/es-toolkit/dist/compat/compat.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/compat.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,291 +1,0 @@
-export { castArray } from './array/castArray.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { concat } from './array/concat.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { forEach as each, forEach } from './array/forEach.mjs';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.mjs';
-export { every } from './array/every.mjs';
-export { fill } from './array/fill.mjs';
-export { filter } from './array/filter.mjs';
-export { find } from './array/find.mjs';
-export { findIndex } from './array/findIndex.mjs';
-export { findLast } from './array/findLast.mjs';
-export { findLastIndex } from './array/findLastIndex.mjs';
-export { head as first, head } from './array/head.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatMapDepth } from './array/flatMapDepth.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { flattenDepth } from './array/flattenDepth.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { includes } from './array/includes.mjs';
-export { indexOf } from './array/indexOf.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { invokeMap } from './array/invokeMap.mjs';
-export { join } from './array/join.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { lastIndexOf } from './array/lastIndexOf.mjs';
-export { map } from './array/map.mjs';
-export { nth } from './array/nth.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAll } from './array/pullAll.mjs';
-export { pullAllBy } from './array/pullAllBy.mjs';
-export { pullAllWith } from './array/pullAllWith.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduce } from './array/reduce.mjs';
-export { reduceRight } from './array/reduceRight.mjs';
-export { reject } from './array/reject.mjs';
-export { remove } from './array/remove.mjs';
-export { reverse } from './array/reverse.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { size } from './array/size.mjs';
-export { slice } from './array/slice.mjs';
-export { some } from './array/some.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { sortedIndex } from './array/sortedIndex.mjs';
-export { sortedIndexBy } from './array/sortedIndexBy.mjs';
-export { sortedIndexOf } from './array/sortedIndexOf.mjs';
-export { sortedLastIndex } from './array/sortedLastIndex.mjs';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.mjs';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipObjectDeep } from './array/zipObjectDeep.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { attempt } from './function/attempt.mjs';
-export { before } from './function/before.mjs';
-export { bind } from './function/bind.mjs';
-export { bindKey } from './function/bindKey.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { debounce } from './function/debounce.mjs';
-export { defer } from './function/defer.mjs';
-export { delay } from './function/delay.mjs';
-export { flip } from './function/flip.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { nthArg } from './function/nthArg.mjs';
-export { once } from './function/once.mjs';
-export { overArgs } from './function/overArgs.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rearg } from './function/rearg.mjs';
-export { rest } from './function/rest.mjs';
-export { spread } from './function/spread.mjs';
-export { throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { wrap } from './function/wrap.mjs';
-export { add } from './math/add.mjs';
-export { ceil } from './math/ceil.mjs';
-export { clamp } from './math/clamp.mjs';
-export { divide } from './math/divide.mjs';
-export { floor } from './math/floor.mjs';
-export { inRange } from './math/inRange.mjs';
-export { max } from './math/max.mjs';
-export { maxBy } from './math/maxBy.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { min } from './math/min.mjs';
-export { minBy } from './math/minBy.mjs';
-export { multiply } from './math/multiply.mjs';
-export { parseInt } from './math/parseInt.mjs';
-export { random } from './math/random.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { subtract } from './math/subtract.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { isEqual } from '../predicate/isEqual.mjs';
-export { identity } from './function/identity.mjs';
-export { noop } from './function/noop.mjs';
-export { assign } from './object/assign.mjs';
-export { assignIn, assignIn as extend } from './object/assignIn.mjs';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.mjs';
-export { assignWith } from './object/assignWith.mjs';
-export { at } from './object/at.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { cloneWith } from './object/cloneWith.mjs';
-export { create } from './object/create.mjs';
-export { defaults } from './object/defaults.mjs';
-export { defaultsDeep } from './object/defaultsDeep.mjs';
-export { findKey } from './object/findKey.mjs';
-export { findLastKey } from './object/findLastKey.mjs';
-export { forIn } from './object/forIn.mjs';
-export { forInRight } from './object/forInRight.mjs';
-export { forOwn } from './object/forOwn.mjs';
-export { forOwnRight } from './object/forOwnRight.mjs';
-export { fromPairs } from './object/fromPairs.mjs';
-export { functions } from './object/functions.mjs';
-export { functionsIn } from './object/functionsIn.mjs';
-export { get } from './object/get.mjs';
-export { has } from './object/has.mjs';
-export { hasIn } from './object/hasIn.mjs';
-export { invert } from './object/invert.mjs';
-export { invertBy } from './object/invertBy.mjs';
-export { keys } from './object/keys.mjs';
-export { keysIn } from './object/keysIn.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { property } from './object/property.mjs';
-export { propertyOf } from './object/propertyOf.mjs';
-export { result } from './object/result.mjs';
-export { set } from './object/set.mjs';
-export { setWith } from './object/setWith.mjs';
-export { toDefaulted } from './object/toDefaulted.mjs';
-export { toPairs } from './object/toPairs.mjs';
-export { toPairsIn } from './object/toPairsIn.mjs';
-export { transform } from './object/transform.mjs';
-export { unset } from './object/unset.mjs';
-export { update } from './object/update.mjs';
-export { updateWith } from './object/updateWith.mjs';
-export { values } from './object/values.mjs';
-export { valuesIn } from './object/valuesIn.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMatchWith } from './predicate/isMatchWith.mjs';
-export { isNative } from './predicate/isNative.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { conforms } from './predicate/conforms.mjs';
-export { conformsTo } from './predicate/conformsTo.mjs';
-export { isArguments } from './predicate/isArguments.mjs';
-export { isArray } from './predicate/isArray.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isArrayLike } from './predicate/isArrayLike.mjs';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isElement } from './predicate/isElement.mjs';
-export { isEmpty } from './predicate/isEmpty.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFinite } from './predicate/isFinite.mjs';
-export { isInteger } from './predicate/isInteger.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isMatch } from './predicate/isMatch.mjs';
-export { isNaN } from './predicate/isNaN.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isObject } from './predicate/isObject.mjs';
-export { isObjectLike } from './predicate/isObjectLike.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSafeInteger } from './predicate/isSafeInteger.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { matches } from './predicate/matches.mjs';
-export { matchesProperty } from './predicate/matchesProperty.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { bindAll } from './util/bindAll.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { endsWith } from './string/endsWith.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { padEnd } from './string/padEnd.mjs';
-export { padStart } from './string/padStart.mjs';
-export { repeat } from './string/repeat.mjs';
-export { replace } from './string/replace.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { split } from './string/split.mjs';
-export { startCase } from './string/startCase.mjs';
-export { startsWith } from './string/startsWith.mjs';
-export { template, templateSettings } from './string/template.mjs';
-export { toLower } from './string/toLower.mjs';
-export { toUpper } from './string/toUpper.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { truncate } from './string/truncate.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { cond } from './util/cond.mjs';
-export { constant } from './util/constant.mjs';
-export { defaultTo } from './util/defaultTo.mjs';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.mjs';
-export { gt } from './util/gt.mjs';
-export { gte } from './util/gte.mjs';
-export { invoke } from './util/invoke.mjs';
-export { iteratee } from './util/iteratee.mjs';
-export { lt } from './util/lt.mjs';
-export { lte } from './util/lte.mjs';
-export { method } from './util/method.mjs';
-export { methodOf } from './util/methodOf.mjs';
-export { now } from './util/now.mjs';
-export { over } from './util/over.mjs';
-export { overEvery } from './util/overEvery.mjs';
-export { overSome } from './util/overSome.mjs';
-export { stubArray } from './util/stubArray.mjs';
-export { stubFalse } from './util/stubFalse.mjs';
-export { stubObject } from './util/stubObject.mjs';
-export { stubString } from './util/stubString.mjs';
-export { stubTrue } from './util/stubTrue.mjs';
-export { times } from './util/times.mjs';
-export { toArray } from './util/toArray.mjs';
-export { toFinite } from './util/toFinite.mjs';
-export { toInteger } from './util/toInteger.mjs';
-export { toLength } from './util/toLength.mjs';
-export { toNumber } from './util/toNumber.mjs';
-export { toPath } from './util/toPath.mjs';
-export { toPlainObject } from './util/toPlainObject.mjs';
-export { toSafeInteger } from './util/toSafeInteger.mjs';
-export { toString } from './util/toString.mjs';
-export { uniqueId } from './util/uniqueId.mjs';
Index: de_modules/es-toolkit/dist/compat/function/after.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/after.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * The opposite of `_.before`; this method creates a function that invokes
- * `func` once it's called `n` or more times.
- *
- * @template TFunc - The type of the function to be invoked.
- * @param {number} n - The number of calls before `func` is invoked.
- * @param {TFunc} func - The function to restrict.
- * @returns {TFunc} Returns the new restricted function.
- * @throws {TypeError} - If `func` is not a function.
- *
- * @example
- * const saves = ['profile', 'settings'];
- * const done = after(saves.length, () => {
- *   console.log('done saving!');
- * });
- *
- * saves.forEach(type => {
- *   asyncSave({ 'type': type, 'complete': done });
- * });
- * // => Logs 'done saving!' after the two async saves have completed.
- */
-declare function after<TFunc extends (...args: any[]) => any>(n: number, func: TFunc): TFunc;
-
-export { after };
Index: de_modules/es-toolkit/dist/compat/function/after.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/after.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * The opposite of `_.before`; this method creates a function that invokes
- * `func` once it's called `n` or more times.
- *
- * @template TFunc - The type of the function to be invoked.
- * @param {number} n - The number of calls before `func` is invoked.
- * @param {TFunc} func - The function to restrict.
- * @returns {TFunc} Returns the new restricted function.
- * @throws {TypeError} - If `func` is not a function.
- *
- * @example
- * const saves = ['profile', 'settings'];
- * const done = after(saves.length, () => {
- *   console.log('done saving!');
- * });
- *
- * saves.forEach(type => {
- *   asyncSave({ 'type': type, 'complete': done });
- * });
- * // => Logs 'done saving!' after the two async saves have completed.
- */
-declare function after<TFunc extends (...args: any[]) => any>(n: number, func: TFunc): TFunc;
-
-export { after };
Index: de_modules/es-toolkit/dist/compat/function/after.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/after.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('../util/toInteger.js');
-
-function after(n, func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    n = toInteger.toInteger(n);
-    return function (...args) {
-        if (--n < 1) {
-            return func.apply(this, args);
-        }
-    };
-}
-
-exports.after = after;
Index: de_modules/es-toolkit/dist/compat/function/after.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/after.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { toInteger } from '../util/toInteger.mjs';
-
-function after(n, func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    n = toInteger(n);
-    return function (...args) {
-        if (--n < 1) {
-            return func.apply(this, args);
-        }
-    };
-}
-
-export { after };
Index: de_modules/es-toolkit/dist/compat/function/ary.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/ary.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Creates a function that invokes func, with up to `n` arguments, ignoring any additional arguments.
- * If `n` is not provided, it defaults to the function's length.
- *
- * @param {Function} func - The function to cap arguments for.
- * @param {number} [n] - The arity cap. Defaults to func.length.
- * @returns {Function} Returns the new capped function.
- *
- * @example
- * function fn(a: number, b: number, c: number) {
- *   return Array.from(arguments);
- * }
- *
- * // Cap at 2 arguments
- * const capped = ary(fn, 2);
- * capped(1, 2, 3); // [1, 2]
- *
- * // Default to function length
- * const defaultCap = ary(fn);
- * defaultCap(1, 2, 3); // [1, 2, 3]
- */
-declare function ary(func: (...args: any[]) => any, n?: number): (...args: any[]) => any;
-
-export { ary };
Index: de_modules/es-toolkit/dist/compat/function/ary.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/ary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Creates a function that invokes func, with up to `n` arguments, ignoring any additional arguments.
- * If `n` is not provided, it defaults to the function's length.
- *
- * @param {Function} func - The function to cap arguments for.
- * @param {number} [n] - The arity cap. Defaults to func.length.
- * @returns {Function} Returns the new capped function.
- *
- * @example
- * function fn(a: number, b: number, c: number) {
- *   return Array.from(arguments);
- * }
- *
- * // Cap at 2 arguments
- * const capped = ary(fn, 2);
- * capped(1, 2, 3); // [1, 2]
- *
- * // Default to function length
- * const defaultCap = ary(fn);
- * defaultCap(1, 2, 3); // [1, 2, 3]
- */
-declare function ary(func: (...args: any[]) => any, n?: number): (...args: any[]) => any;
-
-export { ary };
Index: de_modules/es-toolkit/dist/compat/function/ary.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/ary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const ary$1 = require('../../function/ary.js');
-
-function ary(func, n = func.length, guard) {
-    if (guard) {
-        n = func.length;
-    }
-    if (Number.isNaN(n) || n < 0) {
-        n = 0;
-    }
-    return ary$1.ary(func, n);
-}
-
-exports.ary = ary;
Index: de_modules/es-toolkit/dist/compat/function/ary.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/ary.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { ary as ary$1 } from '../../function/ary.mjs';
-
-function ary(func, n = func.length, guard) {
-    if (guard) {
-        n = func.length;
-    }
-    if (Number.isNaN(n) || n < 0) {
-        n = 0;
-    }
-    return ary$1(func, n);
-}
-
-export { ary };
Index: de_modules/es-toolkit/dist/compat/function/attempt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/attempt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Attempts to execute a function with the provided arguments.
- * If the function throws an error, it catches the error and returns it.
- * If the caught error is not an instance of Error, it wraps it in a new Error.
- *
- * @param {(...args: any[]) => R} func - The function to be executed.
- * @param {...any[]} args - The arguments to pass to the function.
- * @returns {R | Error} The return value of the function if successful, or an Error if an exception is thrown.
- *
- * @template R - The type of the function return value.
- *
- * @example
- * // Example 1: Successful execution
- * const result = attempt((x, y) => x + y, 2, 3);
- * console.log(result); // Output: 5
- *
- * @example
- * // Example 2: Function throws an error
- * const errorResult = attempt(() => {
- *   throw new Error("Something went wrong");
- * });
- * console.log(errorResult); // Output: Error: Something went wrong
- *
- * @example
- * // Example 3: Non-Error thrown
- * const nonErrorResult = attempt(() => {
- *   throw "This is a string error";
- * });
- * console.log(nonErrorResult); // Output: Error: This is a string error
- */
-declare function attempt<R>(func: (...args: any[]) => R, ...args: any[]): R | Error;
-
-export { attempt };
Index: de_modules/es-toolkit/dist/compat/function/attempt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/attempt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Attempts to execute a function with the provided arguments.
- * If the function throws an error, it catches the error and returns it.
- * If the caught error is not an instance of Error, it wraps it in a new Error.
- *
- * @param {(...args: any[]) => R} func - The function to be executed.
- * @param {...any[]} args - The arguments to pass to the function.
- * @returns {R | Error} The return value of the function if successful, or an Error if an exception is thrown.
- *
- * @template R - The type of the function return value.
- *
- * @example
- * // Example 1: Successful execution
- * const result = attempt((x, y) => x + y, 2, 3);
- * console.log(result); // Output: 5
- *
- * @example
- * // Example 2: Function throws an error
- * const errorResult = attempt(() => {
- *   throw new Error("Something went wrong");
- * });
- * console.log(errorResult); // Output: Error: Something went wrong
- *
- * @example
- * // Example 3: Non-Error thrown
- * const nonErrorResult = attempt(() => {
- *   throw "This is a string error";
- * });
- * console.log(nonErrorResult); // Output: Error: This is a string error
- */
-declare function attempt<R>(func: (...args: any[]) => R, ...args: any[]): R | Error;
-
-export { attempt };
Index: de_modules/es-toolkit/dist/compat/function/attempt.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/attempt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function attempt(func, ...args) {
-    try {
-        return func(...args);
-    }
-    catch (e) {
-        return e instanceof Error ? e : new Error(e);
-    }
-}
-
-exports.attempt = attempt;
Index: de_modules/es-toolkit/dist/compat/function/attempt.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/attempt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function attempt(func, ...args) {
-    try {
-        return func(...args);
-    }
-    catch (e) {
-        return e instanceof Error ? e : new Error(e);
-    }
-}
-
-export { attempt };
Index: de_modules/es-toolkit/dist/compat/function/before.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/before.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Creates a function that invokes `func`, with the `this` binding and arguments
- * of the created function, while it's called less than `n` times. Subsequent
- * calls to the created function return the result of the last `func` invocation.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of times the returned function is allowed to call `func` before stopping.
- * - If `n` is 0, `func` will never be called.
- * - If `n` is a positive integer, `func` will be called up to `n-1` times.
- * @param {F} func - The function to be called with the limit applied.
- * @returns {(...args: Parameters<F>) => ReturnType<F> } - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` until the `n-1`-th call.
- * - Returns last result of `func`, if `n` is reached.
- * @throws {TypeError} - If `func` is not a function.
- * @example
- * let count = 0;
- * const before3 = before(3, () => ++count);
- *
- * before3(); // => 1
- * before3(); // => 2
- * before3(); // => 2
- */
-declare function before<F extends (...args: any[]) => any>(n: number, func: F): F;
-
-export { before };
Index: de_modules/es-toolkit/dist/compat/function/before.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/before.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Creates a function that invokes `func`, with the `this` binding and arguments
- * of the created function, while it's called less than `n` times. Subsequent
- * calls to the created function return the result of the last `func` invocation.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of times the returned function is allowed to call `func` before stopping.
- * - If `n` is 0, `func` will never be called.
- * - If `n` is a positive integer, `func` will be called up to `n-1` times.
- * @param {F} func - The function to be called with the limit applied.
- * @returns {(...args: Parameters<F>) => ReturnType<F> } - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` until the `n-1`-th call.
- * - Returns last result of `func`, if `n` is reached.
- * @throws {TypeError} - If `func` is not a function.
- * @example
- * let count = 0;
- * const before3 = before(3, () => ++count);
- *
- * before3(); // => 1
- * before3(); // => 2
- * before3(); // => 2
- */
-declare function before<F extends (...args: any[]) => any>(n: number, func: F): F;
-
-export { before };
Index: de_modules/es-toolkit/dist/compat/function/before.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/before.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('../util/toInteger.js');
-
-function before(n, func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    let result;
-    n = toInteger.toInteger(n);
-    return function (...args) {
-        if (--n > 0) {
-            result = func.apply(this, args);
-        }
-        if (n <= 1 && func) {
-            func = undefined;
-        }
-        return result;
-    };
-}
-
-exports.before = before;
Index: de_modules/es-toolkit/dist/compat/function/before.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/before.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { toInteger } from '../util/toInteger.mjs';
-
-function before(n, func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    let result;
-    n = toInteger(n);
-    return function (...args) {
-        if (--n > 0) {
-            result = func.apply(this, args);
-        }
-        if (n <= 1 && func) {
-            func = undefined;
-        }
-        return result;
-    };
-}
-
-export { before };
Index: de_modules/es-toolkit/dist/compat/function/bind.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bind.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Creates a function that invokes `func` with the `this` binding of `thisArg` and `partials` prepended to the arguments it receives.
- *
- * The `bind.placeholder` value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: Unlike native `Function#bind`, this method doesn't set the `length` property of bound functions.
- *
- * @param {(...args: any[]) => any} func - The function to bind.
- * @param {any} thisObj - The `this` binding of `func`.
- * @param {...any} partialArgs - The arguments to be partially applied.
- * @returns {(...args: any[]) => any} - Returns the new bound function.
- *
- * @example
- * function greet(greeting, punctuation) {
- *   return greeting + ' ' + this.user + punctuation;
- * }
- * const object = { user: 'fred' };
- * let bound = bind(greet, object, 'hi');
- * bound('!');
- * // => 'hi fred!'
- *
- * bound = bind(greet, object, bind.placeholder, '!');
- * bound('hi');
- * // => 'hi fred!'
- */
-declare function bind(func: (...args: any[]) => any, thisObj: any, ...partialArgs: any[]): (...args: any[]) => any;
-declare namespace bind {
-    var placeholder: typeof bindPlaceholder;
-}
-declare const bindPlaceholder: unique symbol;
-
-export { bind };
Index: de_modules/es-toolkit/dist/compat/function/bind.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bind.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Creates a function that invokes `func` with the `this` binding of `thisArg` and `partials` prepended to the arguments it receives.
- *
- * The `bind.placeholder` value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: Unlike native `Function#bind`, this method doesn't set the `length` property of bound functions.
- *
- * @param {(...args: any[]) => any} func - The function to bind.
- * @param {any} thisObj - The `this` binding of `func`.
- * @param {...any} partialArgs - The arguments to be partially applied.
- * @returns {(...args: any[]) => any} - Returns the new bound function.
- *
- * @example
- * function greet(greeting, punctuation) {
- *   return greeting + ' ' + this.user + punctuation;
- * }
- * const object = { user: 'fred' };
- * let bound = bind(greet, object, 'hi');
- * bound('!');
- * // => 'hi fred!'
- *
- * bound = bind(greet, object, bind.placeholder, '!');
- * bound('hi');
- * // => 'hi fred!'
- */
-declare function bind(func: (...args: any[]) => any, thisObj: any, ...partialArgs: any[]): (...args: any[]) => any;
-declare namespace bind {
-    var placeholder: typeof bindPlaceholder;
-}
-declare const bindPlaceholder: unique symbol;
-
-export { bind };
Index: de_modules/es-toolkit/dist/compat/function/bind.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bind.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function bind(func, thisObj, ...partialArgs) {
-    const bound = function (...providedArgs) {
-        const args = [];
-        let startIndex = 0;
-        for (let i = 0; i < partialArgs.length; i++) {
-            const arg = partialArgs[i];
-            if (arg === bind.placeholder) {
-                args.push(providedArgs[startIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        for (let i = startIndex; i < providedArgs.length; i++) {
-            args.push(providedArgs[i]);
-        }
-        if (this instanceof bound) {
-            return new func(...args);
-        }
-        return func.apply(thisObj, args);
-    };
-    return bound;
-}
-const bindPlaceholder = Symbol('bind.placeholder');
-bind.placeholder = bindPlaceholder;
-
-exports.bind = bind;
Index: de_modules/es-toolkit/dist/compat/function/bind.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bind.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-function bind(func, thisObj, ...partialArgs) {
-    const bound = function (...providedArgs) {
-        const args = [];
-        let startIndex = 0;
-        for (let i = 0; i < partialArgs.length; i++) {
-            const arg = partialArgs[i];
-            if (arg === bind.placeholder) {
-                args.push(providedArgs[startIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        for (let i = startIndex; i < providedArgs.length; i++) {
-            args.push(providedArgs[i]);
-        }
-        if (this instanceof bound) {
-            return new func(...args);
-        }
-        return func.apply(thisObj, args);
-    };
-    return bound;
-}
-const bindPlaceholder = Symbol('bind.placeholder');
-bind.placeholder = bindPlaceholder;
-
-export { bind };
Index: de_modules/es-toolkit/dist/compat/function/bindKey.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bindKey.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Creates a function that invokes the method at `object[key]` with `partialArgs` prepended to the arguments it receives.
- *
- * This method differs from `bind` by allowing bound functions to reference methods that may be redefined or don't yet exist.
- *
- * The `bindKey.placeholder` value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * @template T - The type of the object to bind.
- * @template K - The type of the key to bind.
- * @param {T} object - The object to invoke the method on.
- * @param {K} key - The key of the method.
- * @param {...any} partialArgs - The arguments to be partially applied.
- * @returns {T[K] extends (...args: any[]) => any ? (...args: any[]) => ReturnType<T[K]> : never} - Returns the new bound function.
- *
- * @example
- * const object = {
- *   user: 'fred',
- *   greet: function (greeting, punctuation) {
- *     return greeting + ' ' + this.user + punctuation;
- *   },
- * };
- *
- * let bound = bindKey(object, 'greet', 'hi');
- * bound('!');
- * // => 'hi fred!'
- *
- * object.greet = function (greeting, punctuation) {
- *   return greeting + 'ya ' + this.user + punctuation;
- * };
- *
- * bound('!');
- * // => 'hiya fred!'
- *
- * // Bound with placeholders.
- * bound = bindKey(object, 'greet', bindKey.placeholder, '!');
- * bound('hi');
- * // => 'hiya fred!'
- */
-declare function bindKey(object: object, key: string, ...partialArgs: any[]): (...args: any[]) => any;
-declare namespace bindKey {
-    var placeholder: typeof bindKeyPlaceholder;
-}
-declare const bindKeyPlaceholder: unique symbol;
-
-export { bindKey };
Index: de_modules/es-toolkit/dist/compat/function/bindKey.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bindKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Creates a function that invokes the method at `object[key]` with `partialArgs` prepended to the arguments it receives.
- *
- * This method differs from `bind` by allowing bound functions to reference methods that may be redefined or don't yet exist.
- *
- * The `bindKey.placeholder` value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * @template T - The type of the object to bind.
- * @template K - The type of the key to bind.
- * @param {T} object - The object to invoke the method on.
- * @param {K} key - The key of the method.
- * @param {...any} partialArgs - The arguments to be partially applied.
- * @returns {T[K] extends (...args: any[]) => any ? (...args: any[]) => ReturnType<T[K]> : never} - Returns the new bound function.
- *
- * @example
- * const object = {
- *   user: 'fred',
- *   greet: function (greeting, punctuation) {
- *     return greeting + ' ' + this.user + punctuation;
- *   },
- * };
- *
- * let bound = bindKey(object, 'greet', 'hi');
- * bound('!');
- * // => 'hi fred!'
- *
- * object.greet = function (greeting, punctuation) {
- *   return greeting + 'ya ' + this.user + punctuation;
- * };
- *
- * bound('!');
- * // => 'hiya fred!'
- *
- * // Bound with placeholders.
- * bound = bindKey(object, 'greet', bindKey.placeholder, '!');
- * bound('hi');
- * // => 'hiya fred!'
- */
-declare function bindKey(object: object, key: string, ...partialArgs: any[]): (...args: any[]) => any;
-declare namespace bindKey {
-    var placeholder: typeof bindKeyPlaceholder;
-}
-declare const bindKeyPlaceholder: unique symbol;
-
-export { bindKey };
Index: de_modules/es-toolkit/dist/compat/function/bindKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bindKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function bindKey(object, key, ...partialArgs) {
-    const bound = function (...providedArgs) {
-        const args = [];
-        let startIndex = 0;
-        for (let i = 0; i < partialArgs.length; i++) {
-            const arg = partialArgs[i];
-            if (arg === bindKey.placeholder) {
-                args.push(providedArgs[startIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        for (let i = startIndex; i < providedArgs.length; i++) {
-            args.push(providedArgs[i]);
-        }
-        if (this instanceof bound) {
-            return new object[key](...args);
-        }
-        return object[key].apply(object, args);
-    };
-    return bound;
-}
-const bindKeyPlaceholder = Symbol('bindKey.placeholder');
-bindKey.placeholder = bindKeyPlaceholder;
-
-exports.bindKey = bindKey;
Index: de_modules/es-toolkit/dist/compat/function/bindKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/bindKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-function bindKey(object, key, ...partialArgs) {
-    const bound = function (...providedArgs) {
-        const args = [];
-        let startIndex = 0;
-        for (let i = 0; i < partialArgs.length; i++) {
-            const arg = partialArgs[i];
-            if (arg === bindKey.placeholder) {
-                args.push(providedArgs[startIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        for (let i = startIndex; i < providedArgs.length; i++) {
-            args.push(providedArgs[i]);
-        }
-        if (this instanceof bound) {
-            return new object[key](...args);
-        }
-        return object[key].apply(object, args);
-    };
-    return bound;
-}
-const bindKeyPlaceholder = Symbol('bindKey.placeholder');
-bindKey.placeholder = bindKeyPlaceholder;
-
-export { bindKey };
Index: de_modules/es-toolkit/dist/compat/function/curry.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curry.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-type __ = typeof curryPlaceholder;
-interface CurriedFunction1<T1, R> {
-    (): CurriedFunction1<T1, R>;
-    (t1: T1): R;
-}
-interface CurriedFunction2<T1, T2, R> {
-    (): CurriedFunction2<T1, T2, R>;
-    (t1: T1): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2): R;
-}
-interface CurriedFunction3<T1, T2, T3, R> {
-    (): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2): CurriedFunction2<T1, T3, R>;
-    (t1: T1, t2: T2): CurriedFunction1<T3, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: __, t3: T3): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3): R;
-}
-interface CurriedFunction4<T1, T2, T3, T4, R> {
-    (): CurriedFunction4<T1, T2, T3, T4, R>;
-    (t1: T1): CurriedFunction3<T2, T3, T4, R>;
-    (t1: __, t2: T2): CurriedFunction3<T1, T3, T4, R>;
-    (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction3<T1, T2, T4, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction2<T2, T4, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction2<T1, T4, R>;
-    (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
-    (t1: __, t2: __, t3: __, t4: T4): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction2<T1, T3, R>;
-    (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): R;
-}
-interface CurriedFunction5<T1, T2, T3, T4, T5, R> {
-    (): CurriedFunction5<T1, T2, T3, T4, T5, R>;
-    (t1: T1): CurriedFunction4<T2, T3, T4, T5, R>;
-    (t1: __, t2: T2): CurriedFunction4<T1, T3, T4, T5, R>;
-    (t1: T1, t2: T2): CurriedFunction3<T3, T4, T5, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction4<T1, T2, T4, T5, R>;
-    (t1: T1, t2: __, t3: T3): CurriedFunction3<T2, T4, T5, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction3<T1, T4, T5, R>;
-    (t1: T1, t2: T2, t3: T3): CurriedFunction2<T4, T5, R>;
-    (t1: __, t2: __, t3: __, t4: T4): CurriedFunction4<T1, T2, T3, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction3<T2, T3, T5, R>;
-    (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction3<T1, T3, T5, R>;
-    (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction3<T1, T2, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction2<T3, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction2<T2, T5, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction2<T1, T5, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): CurriedFunction1<T5, R>;
-    (t1: __, t2: __, t3: __, t4: __, t5: T5): CurriedFunction4<T1, T2, T3, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: T5): CurriedFunction3<T2, T3, T4, R>;
-    (t1: __, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction3<T1, T3, T4, R>;
-    (t1: __, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction3<T1, T2, T4, R>;
-    (t1: __, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction2<T1, T4, R>;
-    (t1: __, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction2<T1, T3, R>;
-    (t1: __, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4, t5: T5): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
-}
-/**
- * Creates a curried function that accepts a single argument.
- * @param {(t1: T1) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction1<T1, R>} - Returns the new curried function.
- * @example
- * const greet = (name: string) => `Hello ${name}`;
- * const curriedGreet = curry(greet);
- * curriedGreet('John'); // => 'Hello John'
- */
-declare function curry<T1, R>(func: (t1: T1) => R, arity?: number): CurriedFunction1<T1, R>;
-/**
- * Creates a curried function that accepts two arguments.
- * @param {(t1: T1, t2: T2) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction2<T1, T2, R>} - Returns the new curried function.
- * @example
- * const add = (a: number, b: number) => a + b;
- * const curriedAdd = curry(add);
- * curriedAdd(1)(2); // => 3
- * curriedAdd(1, 2); // => 3
- */
-declare function curry<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): CurriedFunction2<T1, T2, R>;
-/**
- * Creates a curried function that accepts three arguments.
- * @param {(t1: T1, t2: T2, t3: T3) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction3<T1, T2, T3, R>} - Returns the new curried function.
- * @example
- * const volume = (l: number, w: number, h: number) => l * w * h;
- * const curriedVolume = curry(volume);
- * curriedVolume(2)(3)(4); // => 24
- * curriedVolume(2, 3)(4); // => 24
- * curriedVolume(2, 3, 4); // => 24
- */
-declare function curry<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): CurriedFunction3<T1, T2, T3, R>;
-/**
- * Creates a curried function that accepts four arguments.
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction4<T1, T2, T3, T4, R>} - Returns the new curried function.
- * @example
- * const fn = (a: number, b: number, c: number, d: number) => a + b + c + d;
- * const curriedFn = curry(fn);
- * curriedFn(1)(2)(3)(4); // => 10
- * curriedFn(1, 2)(3, 4); // => 10
- * curriedFn(1, 2, 3, 4); // => 10
- */
-declare function curry<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): CurriedFunction4<T1, T2, T3, T4, R>;
-/**
- * Creates a curried function that accepts five arguments.
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction5<T1, T2, T3, T4, T5, R>} - Returns the new curried function.
- * @example
- * const fn = (a: number, b: number, c: number, d: number, e: number) => a + b + c + d + e;
- * const curriedFn = curry(fn);
- * curriedFn(1)(2)(3)(4)(5); // => 15
- * curriedFn(1, 2)(3, 4)(5); // => 15
- * curriedFn(1, 2, 3, 4, 5); // => 15
- */
-declare function curry<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): CurriedFunction5<T1, T2, T3, T4, T5, R>;
-/**
- * Creates a curried function that accepts any number of arguments.
- * @param {(...args: any[]) => any} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {(...args: any[]) => any} - Returns the new curried function.
- * @example
- * const sum = (...args: number[]) => args.reduce((a, b) => a + b, 0);
- * const curriedSum = curry(sum);
- * curriedSum(1, 2, 3); // => 6
- * curriedSum(1)(2, 3); // => 6
- * curriedSum(1)(2)(3); // => 6
- */
-declare function curry(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
-declare namespace curry {
-    var placeholder: typeof curryPlaceholder;
-}
-declare const curryPlaceholder: unique symbol;
-
-export { curry };
Index: de_modules/es-toolkit/dist/compat/function/curry.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curry.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-type __ = typeof curryPlaceholder;
-interface CurriedFunction1<T1, R> {
-    (): CurriedFunction1<T1, R>;
-    (t1: T1): R;
-}
-interface CurriedFunction2<T1, T2, R> {
-    (): CurriedFunction2<T1, T2, R>;
-    (t1: T1): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2): R;
-}
-interface CurriedFunction3<T1, T2, T3, R> {
-    (): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2): CurriedFunction2<T1, T3, R>;
-    (t1: T1, t2: T2): CurriedFunction1<T3, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: __, t3: T3): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3): R;
-}
-interface CurriedFunction4<T1, T2, T3, T4, R> {
-    (): CurriedFunction4<T1, T2, T3, T4, R>;
-    (t1: T1): CurriedFunction3<T2, T3, T4, R>;
-    (t1: __, t2: T2): CurriedFunction3<T1, T3, T4, R>;
-    (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction3<T1, T2, T4, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction2<T2, T4, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction2<T1, T4, R>;
-    (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
-    (t1: __, t2: __, t3: __, t4: T4): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction2<T1, T3, R>;
-    (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): R;
-}
-interface CurriedFunction5<T1, T2, T3, T4, T5, R> {
-    (): CurriedFunction5<T1, T2, T3, T4, T5, R>;
-    (t1: T1): CurriedFunction4<T2, T3, T4, T5, R>;
-    (t1: __, t2: T2): CurriedFunction4<T1, T3, T4, T5, R>;
-    (t1: T1, t2: T2): CurriedFunction3<T3, T4, T5, R>;
-    (t1: __, t2: __, t3: T3): CurriedFunction4<T1, T2, T4, T5, R>;
-    (t1: T1, t2: __, t3: T3): CurriedFunction3<T2, T4, T5, R>;
-    (t1: __, t2: T2, t3: T3): CurriedFunction3<T1, T4, T5, R>;
-    (t1: T1, t2: T2, t3: T3): CurriedFunction2<T4, T5, R>;
-    (t1: __, t2: __, t3: __, t4: T4): CurriedFunction4<T1, T2, T3, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction3<T2, T3, T5, R>;
-    (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction3<T1, T3, T5, R>;
-    (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction3<T1, T2, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction2<T3, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction2<T2, T5, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction2<T1, T5, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): CurriedFunction1<T5, R>;
-    (t1: __, t2: __, t3: __, t4: __, t5: T5): CurriedFunction4<T1, T2, T3, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: T5): CurriedFunction3<T2, T3, T4, R>;
-    (t1: __, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction3<T1, T3, T4, R>;
-    (t1: __, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction3<T1, T2, T4, R>;
-    (t1: __, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction3<T1, T2, T3, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction2<T2, T3, R>;
-    (t1: __, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction2<T1, T4, R>;
-    (t1: __, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction2<T1, T3, R>;
-    (t1: __, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction2<T1, T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction1<T2, R>;
-    (t1: __, t2: T2, t3: T3, t4: T4, t5: T5): CurriedFunction1<T1, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
-}
-/**
- * Creates a curried function that accepts a single argument.
- * @param {(t1: T1) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction1<T1, R>} - Returns the new curried function.
- * @example
- * const greet = (name: string) => `Hello ${name}`;
- * const curriedGreet = curry(greet);
- * curriedGreet('John'); // => 'Hello John'
- */
-declare function curry<T1, R>(func: (t1: T1) => R, arity?: number): CurriedFunction1<T1, R>;
-/**
- * Creates a curried function that accepts two arguments.
- * @param {(t1: T1, t2: T2) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction2<T1, T2, R>} - Returns the new curried function.
- * @example
- * const add = (a: number, b: number) => a + b;
- * const curriedAdd = curry(add);
- * curriedAdd(1)(2); // => 3
- * curriedAdd(1, 2); // => 3
- */
-declare function curry<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): CurriedFunction2<T1, T2, R>;
-/**
- * Creates a curried function that accepts three arguments.
- * @param {(t1: T1, t2: T2, t3: T3) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction3<T1, T2, T3, R>} - Returns the new curried function.
- * @example
- * const volume = (l: number, w: number, h: number) => l * w * h;
- * const curriedVolume = curry(volume);
- * curriedVolume(2)(3)(4); // => 24
- * curriedVolume(2, 3)(4); // => 24
- * curriedVolume(2, 3, 4); // => 24
- */
-declare function curry<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): CurriedFunction3<T1, T2, T3, R>;
-/**
- * Creates a curried function that accepts four arguments.
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction4<T1, T2, T3, T4, R>} - Returns the new curried function.
- * @example
- * const fn = (a: number, b: number, c: number, d: number) => a + b + c + d;
- * const curriedFn = curry(fn);
- * curriedFn(1)(2)(3)(4); // => 10
- * curriedFn(1, 2)(3, 4); // => 10
- * curriedFn(1, 2, 3, 4); // => 10
- */
-declare function curry<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): CurriedFunction4<T1, T2, T3, T4, R>;
-/**
- * Creates a curried function that accepts five arguments.
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {CurriedFunction5<T1, T2, T3, T4, T5, R>} - Returns the new curried function.
- * @example
- * const fn = (a: number, b: number, c: number, d: number, e: number) => a + b + c + d + e;
- * const curriedFn = curry(fn);
- * curriedFn(1)(2)(3)(4)(5); // => 15
- * curriedFn(1, 2)(3, 4)(5); // => 15
- * curriedFn(1, 2, 3, 4, 5); // => 15
- */
-declare function curry<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): CurriedFunction5<T1, T2, T3, T4, T5, R>;
-/**
- * Creates a curried function that accepts any number of arguments.
- * @param {(...args: any[]) => any} func - The function to curry.
- * @param {number=func.length} arity - The arity of func.
- * @returns {(...args: any[]) => any} - Returns the new curried function.
- * @example
- * const sum = (...args: number[]) => args.reduce((a, b) => a + b, 0);
- * const curriedSum = curry(sum);
- * curriedSum(1, 2, 3); // => 6
- * curriedSum(1)(2, 3); // => 6
- * curriedSum(1)(2)(3); // => 6
- */
-declare function curry(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
-declare namespace curry {
-    var placeholder: typeof curryPlaceholder;
-}
-declare const curryPlaceholder: unique symbol;
-
-export { curry };
Index: de_modules/es-toolkit/dist/compat/function/curry.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curry.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function curry(func, arity = func.length, guard) {
-    arity = guard ? func.length : arity;
-    arity = Number.parseInt(arity, 10);
-    if (Number.isNaN(arity) || arity < 1) {
-        arity = 0;
-    }
-    const wrapper = function (...partialArgs) {
-        const holders = partialArgs.filter(item => item === curry.placeholder);
-        const length = partialArgs.length - holders.length;
-        if (length < arity) {
-            return makeCurry(func, arity - length, partialArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...partialArgs);
-        }
-        return func.apply(this, partialArgs);
-    };
-    wrapper.placeholder = curryPlaceholder;
-    return wrapper;
-}
-function makeCurry(func, arity, partialArgs) {
-    function wrapper(...providedArgs) {
-        const holders = providedArgs.filter(item => item === curry.placeholder);
-        const length = providedArgs.length - holders.length;
-        providedArgs = composeArgs(providedArgs, partialArgs);
-        if (length < arity) {
-            return makeCurry(func, arity - length, providedArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...providedArgs);
-        }
-        return func.apply(this, providedArgs);
-    }
-    wrapper.placeholder = curryPlaceholder;
-    return wrapper;
-}
-function composeArgs(providedArgs, partialArgs) {
-    const args = [];
-    let startIndex = 0;
-    for (let i = 0; i < partialArgs.length; i++) {
-        const arg = partialArgs[i];
-        if (arg === curry.placeholder && startIndex < providedArgs.length) {
-            args.push(providedArgs[startIndex++]);
-        }
-        else {
-            args.push(arg);
-        }
-    }
-    for (let i = startIndex; i < providedArgs.length; i++) {
-        args.push(providedArgs[i]);
-    }
-    return args;
-}
-const curryPlaceholder = Symbol('curry.placeholder');
-curry.placeholder = curryPlaceholder;
-
-exports.curry = curry;
Index: de_modules/es-toolkit/dist/compat/function/curry.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curry.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-function curry(func, arity = func.length, guard) {
-    arity = guard ? func.length : arity;
-    arity = Number.parseInt(arity, 10);
-    if (Number.isNaN(arity) || arity < 1) {
-        arity = 0;
-    }
-    const wrapper = function (...partialArgs) {
-        const holders = partialArgs.filter(item => item === curry.placeholder);
-        const length = partialArgs.length - holders.length;
-        if (length < arity) {
-            return makeCurry(func, arity - length, partialArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...partialArgs);
-        }
-        return func.apply(this, partialArgs);
-    };
-    wrapper.placeholder = curryPlaceholder;
-    return wrapper;
-}
-function makeCurry(func, arity, partialArgs) {
-    function wrapper(...providedArgs) {
-        const holders = providedArgs.filter(item => item === curry.placeholder);
-        const length = providedArgs.length - holders.length;
-        providedArgs = composeArgs(providedArgs, partialArgs);
-        if (length < arity) {
-            return makeCurry(func, arity - length, providedArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...providedArgs);
-        }
-        return func.apply(this, providedArgs);
-    }
-    wrapper.placeholder = curryPlaceholder;
-    return wrapper;
-}
-function composeArgs(providedArgs, partialArgs) {
-    const args = [];
-    let startIndex = 0;
-    for (let i = 0; i < partialArgs.length; i++) {
-        const arg = partialArgs[i];
-        if (arg === curry.placeholder && startIndex < providedArgs.length) {
-            args.push(providedArgs[startIndex++]);
-        }
-        else {
-            args.push(arg);
-        }
-    }
-    for (let i = startIndex; i < providedArgs.length; i++) {
-        args.push(providedArgs[i]);
-    }
-    return args;
-}
-const curryPlaceholder = Symbol('curry.placeholder');
-curry.placeholder = curryPlaceholder;
-
-export { curry };
Index: de_modules/es-toolkit/dist/compat/function/curryRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curryRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-type __ = typeof curryRightPlaceholder;
-interface RightCurriedFunction1<T1, R> {
-    (): RightCurriedFunction1<T1, R>;
-    (t1: T1): R;
-}
-interface RightCurriedFunction2<T1, T2, R> {
-    (): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2): R;
-}
-interface RightCurriedFunction3<T1, T2, T3, R> {
-    (): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: __): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3): R;
-}
-interface RightCurriedFunction4<T1, T2, T3, T4, R> {
-    (): RightCurriedFunction4<T1, T2, T3, T4, R>;
-    (t4: T4): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3, t4: __): RightCurriedFunction3<T1, T2, T4, R>;
-    (t3: T3, t4: T4): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __, t4: __): RightCurriedFunction3<T1, T3, T4, R>;
-    (t2: T2, t3: T3, t4: __): RightCurriedFunction2<T1, T4, R>;
-    (t2: T2, t3: __, t4: T4): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3, t4: T4): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __, t4: __): RightCurriedFunction3<T2, T3, T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: __): RightCurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: __): RightCurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __): RightCurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): R;
-}
-interface RightCurriedFunction5<T1, T2, T3, T4, T5, R> {
-    (): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
-    (t5: T5): RightCurriedFunction4<T1, T2, T3, T4, R>;
-    (t4: T4, t5: __): RightCurriedFunction4<T1, T2, T3, T5, R>;
-    (t4: T4, t5: T5): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3, t4: __, t5: __): RightCurriedFunction4<T1, T2, T4, T5, R>;
-    (t3: T3, t4: T4, t5: __): RightCurriedFunction3<T1, T2, T5, R>;
-    (t3: T3, t4: __, t5: T5): RightCurriedFunction3<T1, T2, T4, R>;
-    (t3: T3, t4: T4, t5: T5): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction4<T1, T3, T4, T5, R>;
-    (t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction3<T1, T4, T5, R>;
-    (t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction3<T1, T3, T5, R>;
-    (t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction3<T1, T3, T4, R>;
-    (t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T1, T5, R>;
-    (t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T1, T4, R>;
-    (t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: __): RightCurriedFunction4<T2, T3, T4, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction3<T3, T4, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: __): RightCurriedFunction3<T2, T4, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: __): RightCurriedFunction3<T2, T3, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: T5): RightCurriedFunction3<T2, T3, T4, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction2<T4, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction2<T3, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T2, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction1<T5, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
-}
-declare function curryRight<T1, R>(func: (t1: T1) => R, arity?: number): RightCurriedFunction1<T1, R>;
-declare function curryRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): RightCurriedFunction2<T1, T2, R>;
-declare function curryRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): RightCurriedFunction3<T1, T2, T3, R>;
-declare function curryRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): RightCurriedFunction4<T1, T2, T3, T4, R>;
-declare function curryRight<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
-declare function curryRight(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
-declare namespace curryRight {
-    var placeholder: typeof curryRightPlaceholder;
-}
-declare const curryRightPlaceholder: unique symbol;
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/compat/function/curryRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curryRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-type __ = typeof curryRightPlaceholder;
-interface RightCurriedFunction1<T1, R> {
-    (): RightCurriedFunction1<T1, R>;
-    (t1: T1): R;
-}
-interface RightCurriedFunction2<T1, T2, R> {
-    (): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2): R;
-}
-interface RightCurriedFunction3<T1, T2, T3, R> {
-    (): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: __): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3): R;
-}
-interface RightCurriedFunction4<T1, T2, T3, T4, R> {
-    (): RightCurriedFunction4<T1, T2, T3, T4, R>;
-    (t4: T4): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3, t4: __): RightCurriedFunction3<T1, T2, T4, R>;
-    (t3: T3, t4: T4): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __, t4: __): RightCurriedFunction3<T1, T3, T4, R>;
-    (t2: T2, t3: T3, t4: __): RightCurriedFunction2<T1, T4, R>;
-    (t2: T2, t3: __, t4: T4): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3, t4: T4): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __, t4: __): RightCurriedFunction3<T2, T3, T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: __): RightCurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: __): RightCurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __): RightCurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4): R;
-}
-interface RightCurriedFunction5<T1, T2, T3, T4, T5, R> {
-    (): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
-    (t5: T5): RightCurriedFunction4<T1, T2, T3, T4, R>;
-    (t4: T4, t5: __): RightCurriedFunction4<T1, T2, T3, T5, R>;
-    (t4: T4, t5: T5): RightCurriedFunction3<T1, T2, T3, R>;
-    (t3: T3, t4: __, t5: __): RightCurriedFunction4<T1, T2, T4, T5, R>;
-    (t3: T3, t4: T4, t5: __): RightCurriedFunction3<T1, T2, T5, R>;
-    (t3: T3, t4: __, t5: T5): RightCurriedFunction3<T1, T2, T4, R>;
-    (t3: T3, t4: T4, t5: T5): RightCurriedFunction2<T1, T2, R>;
-    (t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction4<T1, T3, T4, T5, R>;
-    (t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction3<T1, T4, T5, R>;
-    (t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction3<T1, T3, T5, R>;
-    (t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction3<T1, T3, T4, R>;
-    (t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T1, T5, R>;
-    (t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T1, T4, R>;
-    (t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T1, T3, R>;
-    (t2: T2, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T1, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: __): RightCurriedFunction4<T2, T3, T4, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction3<T3, T4, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: __): RightCurriedFunction3<T2, T4, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: __): RightCurriedFunction3<T2, T3, T5, R>;
-    (t1: T1, t2: __, t3: __, t4: __, t5: T5): RightCurriedFunction3<T2, T3, T4, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction2<T4, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction2<T3, T5, R>;
-    (t1: T1, t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction2<T3, T4, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T2, T5, R>;
-    (t1: T1, t2: __, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T2, T4, R>;
-    (t1: T1, t2: __, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T2, T3, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction1<T5, R>;
-    (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction1<T4, R>;
-    (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction1<T3, R>;
-    (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T2, R>;
-    (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
-}
-declare function curryRight<T1, R>(func: (t1: T1) => R, arity?: number): RightCurriedFunction1<T1, R>;
-declare function curryRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): RightCurriedFunction2<T1, T2, R>;
-declare function curryRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): RightCurriedFunction3<T1, T2, T3, R>;
-declare function curryRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): RightCurriedFunction4<T1, T2, T3, T4, R>;
-declare function curryRight<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
-declare function curryRight(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
-declare namespace curryRight {
-    var placeholder: typeof curryRightPlaceholder;
-}
-declare const curryRightPlaceholder: unique symbol;
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/compat/function/curryRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curryRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function curryRight(func, arity = func.length, guard) {
-    arity = guard ? func.length : arity;
-    arity = Number.parseInt(arity, 10);
-    if (Number.isNaN(arity) || arity < 1) {
-        arity = 0;
-    }
-    const wrapper = function (...partialArgs) {
-        const holders = partialArgs.filter(item => item === curryRight.placeholder);
-        const length = partialArgs.length - holders.length;
-        if (length < arity) {
-            return makeCurryRight(func, arity - length, partialArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...partialArgs);
-        }
-        return func.apply(this, partialArgs);
-    };
-    wrapper.placeholder = curryRightPlaceholder;
-    return wrapper;
-}
-function makeCurryRight(func, arity, partialArgs) {
-    function wrapper(...providedArgs) {
-        const holders = providedArgs.filter(item => item === curryRight.placeholder);
-        const length = providedArgs.length - holders.length;
-        providedArgs = composeArgs(providedArgs, partialArgs);
-        if (length < arity) {
-            return makeCurryRight(func, arity - length, providedArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...providedArgs);
-        }
-        return func.apply(this, providedArgs);
-    }
-    wrapper.placeholder = curryRightPlaceholder;
-    return wrapper;
-}
-function composeArgs(providedArgs, partialArgs) {
-    const placeholderLength = partialArgs.filter(arg => arg === curryRight.placeholder).length;
-    const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);
-    const args = [];
-    let providedIndex = 0;
-    for (let i = 0; i < rangeLength; i++) {
-        args.push(providedArgs[providedIndex++]);
-    }
-    for (let i = 0; i < partialArgs.length; i++) {
-        const arg = partialArgs[i];
-        if (arg === curryRight.placeholder) {
-            if (providedIndex < providedArgs.length) {
-                args.push(providedArgs[providedIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        else {
-            args.push(arg);
-        }
-    }
-    return args;
-}
-const curryRightPlaceholder = Symbol('curryRight.placeholder');
-curryRight.placeholder = curryRightPlaceholder;
-
-exports.curryRight = curryRight;
Index: de_modules/es-toolkit/dist/compat/function/curryRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/curryRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-function curryRight(func, arity = func.length, guard) {
-    arity = guard ? func.length : arity;
-    arity = Number.parseInt(arity, 10);
-    if (Number.isNaN(arity) || arity < 1) {
-        arity = 0;
-    }
-    const wrapper = function (...partialArgs) {
-        const holders = partialArgs.filter(item => item === curryRight.placeholder);
-        const length = partialArgs.length - holders.length;
-        if (length < arity) {
-            return makeCurryRight(func, arity - length, partialArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...partialArgs);
-        }
-        return func.apply(this, partialArgs);
-    };
-    wrapper.placeholder = curryRightPlaceholder;
-    return wrapper;
-}
-function makeCurryRight(func, arity, partialArgs) {
-    function wrapper(...providedArgs) {
-        const holders = providedArgs.filter(item => item === curryRight.placeholder);
-        const length = providedArgs.length - holders.length;
-        providedArgs = composeArgs(providedArgs, partialArgs);
-        if (length < arity) {
-            return makeCurryRight(func, arity - length, providedArgs);
-        }
-        if (this instanceof wrapper) {
-            return new func(...providedArgs);
-        }
-        return func.apply(this, providedArgs);
-    }
-    wrapper.placeholder = curryRightPlaceholder;
-    return wrapper;
-}
-function composeArgs(providedArgs, partialArgs) {
-    const placeholderLength = partialArgs.filter(arg => arg === curryRight.placeholder).length;
-    const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);
-    const args = [];
-    let providedIndex = 0;
-    for (let i = 0; i < rangeLength; i++) {
-        args.push(providedArgs[providedIndex++]);
-    }
-    for (let i = 0; i < partialArgs.length; i++) {
-        const arg = partialArgs[i];
-        if (arg === curryRight.placeholder) {
-            if (providedIndex < providedArgs.length) {
-                args.push(providedArgs[providedIndex++]);
-            }
-            else {
-                args.push(arg);
-            }
-        }
-        else {
-            args.push(arg);
-        }
-    }
-    return args;
-}
-const curryRightPlaceholder = Symbol('curryRight.placeholder');
-curryRight.placeholder = curryRightPlaceholder;
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/compat/function/debounce.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/debounce.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-interface DebounceSettings {
-    /**
-     * If `true`, the function will be invoked on the leading edge of the timeout.
-     * @default false
-     */
-    leading?: boolean | undefined;
-    /**
-     * The maximum time `func` is allowed to be delayed before it's invoked.
-     * @default Infinity
-     */
-    maxWait?: number | undefined;
-    /**
-     * If `true`, the function will be invoked on the trailing edge of the timeout.
-     * @default true
-     */
-    trailing?: boolean | undefined;
-}
-interface DebounceSettingsLeading extends DebounceSettings {
-    leading: true;
-}
-interface DebouncedFunc<T extends (...args: any[]) => any> {
-    /**
-     * Call the original function, but applying the debounce rules.
-     *
-     * If the debounced function can be run immediately, this calls it and returns its return
-     * value.
-     *
-     * Otherwise, it returns the return value of the last invocation, or undefined if the debounced
-     * function was not invoked yet.
-     */
-    (...args: Parameters<T>): ReturnType<T> | undefined;
-    /**
-     * Throw away any pending invocation of the debounced function.
-     */
-    cancel(): void;
-    /**
-     * If there is a pending invocation of the debounced function, invoke it immediately and return
-     * its return value.
-     *
-     * Otherwise, return the value from the last invocation, or undefined if the debounced function
-     * was never invoked.
-     */
-    flush(): ReturnType<T> | undefined;
-}
-interface DebouncedFuncLeading<T extends (...args: any[]) => any> extends DebouncedFunc<T> {
-    (...args: Parameters<T>): ReturnType<T>;
-    flush(): ReturnType<T>;
-}
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * You can set the debounced function to run at the start (`leading`) or end (`trailing`) of the delay period.
- * If `leading` is true, the function runs immediately on the first call.
- * If `trailing` is true, the function runs after `debounceMs` milliseconds have passed since the last call.
- * If both `leading` and `trailing` are true, the function runs at both the start and end, but it must be called at least twice within `debounceMs` milliseconds for this to happen
- * (since one debounced function call cannot trigger the function twice).
- *
- * You can also set a `maxWait` time, which is the maximum time the function is allowed to be delayed before it is called.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @param {number} options.maxWait - The maximum time `func` is allowed to be delayed before it's invoked.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<T extends (...args: any) => any>(func: T, wait: number | undefined, options: DebounceSettingsLeading): DebouncedFuncLeading<T>;
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * You can set the debounced function to run at the start (`leading`) or end (`trailing`) of the delay period.
- * If `leading` is true, the function runs immediately on the first call.
- * If `trailing` is true, the function runs after `debounceMs` milliseconds have passed since the last call.
- * If both `leading` and `trailing` are true, the function runs at both the start and end, but it must be called at least twice within `debounceMs` milliseconds for this to happen
- * (since one debounced function call cannot trigger the function twice).
- *
- * You can also set a `maxWait` time, which is the maximum time the function is allowed to be delayed before it is called.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @param {number} options.maxWait - The maximum time `func` is allowed to be delayed before it's invoked.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<T extends (...args: any) => any>(func: T, wait?: number, options?: DebounceSettings): DebouncedFunc<T>;
-
-export { type DebouncedFunc, type DebouncedFuncLeading, debounce };
Index: de_modules/es-toolkit/dist/compat/function/debounce.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/debounce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-interface DebounceSettings {
-    /**
-     * If `true`, the function will be invoked on the leading edge of the timeout.
-     * @default false
-     */
-    leading?: boolean | undefined;
-    /**
-     * The maximum time `func` is allowed to be delayed before it's invoked.
-     * @default Infinity
-     */
-    maxWait?: number | undefined;
-    /**
-     * If `true`, the function will be invoked on the trailing edge of the timeout.
-     * @default true
-     */
-    trailing?: boolean | undefined;
-}
-interface DebounceSettingsLeading extends DebounceSettings {
-    leading: true;
-}
-interface DebouncedFunc<T extends (...args: any[]) => any> {
-    /**
-     * Call the original function, but applying the debounce rules.
-     *
-     * If the debounced function can be run immediately, this calls it and returns its return
-     * value.
-     *
-     * Otherwise, it returns the return value of the last invocation, or undefined if the debounced
-     * function was not invoked yet.
-     */
-    (...args: Parameters<T>): ReturnType<T> | undefined;
-    /**
-     * Throw away any pending invocation of the debounced function.
-     */
-    cancel(): void;
-    /**
-     * If there is a pending invocation of the debounced function, invoke it immediately and return
-     * its return value.
-     *
-     * Otherwise, return the value from the last invocation, or undefined if the debounced function
-     * was never invoked.
-     */
-    flush(): ReturnType<T> | undefined;
-}
-interface DebouncedFuncLeading<T extends (...args: any[]) => any> extends DebouncedFunc<T> {
-    (...args: Parameters<T>): ReturnType<T>;
-    flush(): ReturnType<T>;
-}
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * You can set the debounced function to run at the start (`leading`) or end (`trailing`) of the delay period.
- * If `leading` is true, the function runs immediately on the first call.
- * If `trailing` is true, the function runs after `debounceMs` milliseconds have passed since the last call.
- * If both `leading` and `trailing` are true, the function runs at both the start and end, but it must be called at least twice within `debounceMs` milliseconds for this to happen
- * (since one debounced function call cannot trigger the function twice).
- *
- * You can also set a `maxWait` time, which is the maximum time the function is allowed to be delayed before it is called.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @param {number} options.maxWait - The maximum time `func` is allowed to be delayed before it's invoked.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<T extends (...args: any) => any>(func: T, wait: number | undefined, options: DebounceSettingsLeading): DebouncedFuncLeading<T>;
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * You can set the debounced function to run at the start (`leading`) or end (`trailing`) of the delay period.
- * If `leading` is true, the function runs immediately on the first call.
- * If `trailing` is true, the function runs after `debounceMs` milliseconds have passed since the last call.
- * If both `leading` and `trailing` are true, the function runs at both the start and end, but it must be called at least twice within `debounceMs` milliseconds for this to happen
- * (since one debounced function call cannot trigger the function twice).
- *
- * You can also set a `maxWait` time, which is the maximum time the function is allowed to be delayed before it is called.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @param {number} options.maxWait - The maximum time `func` is allowed to be delayed before it's invoked.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<T extends (...args: any) => any>(func: T, wait?: number, options?: DebounceSettings): DebouncedFunc<T>;
-
-export { type DebouncedFunc, type DebouncedFuncLeading, debounce };
Index: de_modules/es-toolkit/dist/compat/function/debounce.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/debounce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const debounce$1 = require('../../function/debounce.js');
-
-function debounce(func, debounceMs = 0, options = {}) {
-    if (typeof options !== 'object') {
-        options = {};
-    }
-    const { leading = false, trailing = true, maxWait } = options;
-    const edges = Array(2);
-    if (leading) {
-        edges[0] = 'leading';
-    }
-    if (trailing) {
-        edges[1] = 'trailing';
-    }
-    let result = undefined;
-    let pendingAt = null;
-    const _debounced = debounce$1.debounce(function (...args) {
-        result = func.apply(this, args);
-        pendingAt = null;
-    }, debounceMs, { edges });
-    const debounced = function (...args) {
-        if (maxWait != null) {
-            if (pendingAt === null) {
-                pendingAt = Date.now();
-            }
-            if (Date.now() - pendingAt >= maxWait) {
-                result = func.apply(this, args);
-                pendingAt = Date.now();
-                _debounced.cancel();
-                _debounced.schedule();
-                return result;
-            }
-        }
-        _debounced.apply(this, args);
-        return result;
-    };
-    const flush = () => {
-        _debounced.flush();
-        return result;
-    };
-    debounced.cancel = _debounced.cancel;
-    debounced.flush = flush;
-    return debounced;
-}
-
-exports.debounce = debounce;
Index: de_modules/es-toolkit/dist/compat/function/debounce.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/debounce.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import { debounce as debounce$1 } from '../../function/debounce.mjs';
-
-function debounce(func, debounceMs = 0, options = {}) {
-    if (typeof options !== 'object') {
-        options = {};
-    }
-    const { leading = false, trailing = true, maxWait } = options;
-    const edges = Array(2);
-    if (leading) {
-        edges[0] = 'leading';
-    }
-    if (trailing) {
-        edges[1] = 'trailing';
-    }
-    let result = undefined;
-    let pendingAt = null;
-    const _debounced = debounce$1(function (...args) {
-        result = func.apply(this, args);
-        pendingAt = null;
-    }, debounceMs, { edges });
-    const debounced = function (...args) {
-        if (maxWait != null) {
-            if (pendingAt === null) {
-                pendingAt = Date.now();
-            }
-            if (Date.now() - pendingAt >= maxWait) {
-                result = func.apply(this, args);
-                pendingAt = Date.now();
-                _debounced.cancel();
-                _debounced.schedule();
-                return result;
-            }
-        }
-        _debounced.apply(this, args);
-        return result;
-    };
-    const flush = () => {
-        _debounced.flush();
-        return result;
-    };
-    debounced.cancel = _debounced.cancel;
-    debounced.flush = flush;
-    return debounced;
-}
-
-export { debounce };
Index: de_modules/es-toolkit/dist/compat/function/defer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/defer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Defers invoking the `func` until the current call stack has cleared. Any additional arguments are provided to func when it's invoked.
- *
- * @param {(...args: any[]) => any} func The function to defer.
- * @param {...any[]} args The arguments to invoke `func` with.
- * @returns {number} Returns the timer id.
- *
- * @example
- * defer(console.log, 'deferred');
- * // => Logs 'deferred' after the current call stack has cleared.
- */
-declare function defer(func: (...args: any[]) => any, ...args: any[]): number;
-
-export { defer };
Index: de_modules/es-toolkit/dist/compat/function/defer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/defer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Defers invoking the `func` until the current call stack has cleared. Any additional arguments are provided to func when it's invoked.
- *
- * @param {(...args: any[]) => any} func The function to defer.
- * @param {...any[]} args The arguments to invoke `func` with.
- * @returns {number} Returns the timer id.
- *
- * @example
- * defer(console.log, 'deferred');
- * // => Logs 'deferred' after the current call stack has cleared.
- */
-declare function defer(func: (...args: any[]) => any, ...args: any[]): number;
-
-export { defer };
Index: de_modules/es-toolkit/dist/compat/function/defer.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/defer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function defer(func, ...args) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return setTimeout(func, 1, ...args);
-}
-
-exports.defer = defer;
Index: de_modules/es-toolkit/dist/compat/function/defer.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/defer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function defer(func, ...args) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return setTimeout(func, 1, ...args);
-}
-
-export { defer };
Index: de_modules/es-toolkit/dist/compat/function/delay.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/delay.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Invokes the specified function after a delay of the given number of milliseconds.
- * Any additional arguments are passed to the function when it is invoked.
- *
- * @param {(...args: any[]) => any} func - The function to delay.
- * @param {number} wait - The number of milliseconds to delay the invocation.
- * @param {...any[]} args - The arguments to pass to the function when it is invoked.
- * @returns {number} Returns the timer id.
- * @throws {TypeError} If the first argument is not a function.
- *
- * @example
- * // Example 1: Delayed function execution
- * const timerId = delay(
- *   (greeting, recipient) => {
- *     console.log(`${greeting}, ${recipient}!`);
- *   },
- *   1000,
- *   'Hello',
- *   'Alice'
- * );
- * // => 'Hello, Alice!' will be logged after one second.
- *
- * // Example 2: Clearing the timeout before execution
- * clearTimeout(timerId);
- * // The function will not be executed because the timeout was cleared.
- */
-declare function delay(func: (...args: any[]) => any, wait: number, ...args: any[]): number;
-
-export { delay };
Index: de_modules/es-toolkit/dist/compat/function/delay.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/delay.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Invokes the specified function after a delay of the given number of milliseconds.
- * Any additional arguments are passed to the function when it is invoked.
- *
- * @param {(...args: any[]) => any} func - The function to delay.
- * @param {number} wait - The number of milliseconds to delay the invocation.
- * @param {...any[]} args - The arguments to pass to the function when it is invoked.
- * @returns {number} Returns the timer id.
- * @throws {TypeError} If the first argument is not a function.
- *
- * @example
- * // Example 1: Delayed function execution
- * const timerId = delay(
- *   (greeting, recipient) => {
- *     console.log(`${greeting}, ${recipient}!`);
- *   },
- *   1000,
- *   'Hello',
- *   'Alice'
- * );
- * // => 'Hello, Alice!' will be logged after one second.
- *
- * // Example 2: Clearing the timeout before execution
- * clearTimeout(timerId);
- * // The function will not be executed because the timeout was cleared.
- */
-declare function delay(func: (...args: any[]) => any, wait: number, ...args: any[]): number;
-
-export { delay };
Index: de_modules/es-toolkit/dist/compat/function/delay.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/delay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-
-function delay(func, wait, ...args) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return setTimeout(func, toNumber.toNumber(wait) || 0, ...args);
-}
-
-exports.delay = delay;
Index: de_modules/es-toolkit/dist/compat/function/delay.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/delay.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-
-function delay(func, wait, ...args) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return setTimeout(func, toNumber(wait) || 0, ...args);
-}
-
-export { delay };
Index: de_modules/es-toolkit/dist/compat/function/flip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flip.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Reverses the order of arguments for a given function.
- *
- * @template T - The type of the function being flipped.
- * @param {T} func - The function whose arguments will be reversed.
- * @returns {T} A new function that takes the reversed arguments and returns the result of calling `func`.
- *
- * @example
- * var flipped = flip(function() {
- *   return Array.prototype.slice.call(arguments);
- * });
- *
- * flipped('a', 'b', 'c', 'd');
- * // => ['d', 'c', 'b', 'a']
- */
-declare function flip<T extends (...args: any) => any>(func: T): T;
-
-export { flip };
Index: de_modules/es-toolkit/dist/compat/function/flip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Reverses the order of arguments for a given function.
- *
- * @template T - The type of the function being flipped.
- * @param {T} func - The function whose arguments will be reversed.
- * @returns {T} A new function that takes the reversed arguments and returns the result of calling `func`.
- *
- * @example
- * var flipped = flip(function() {
- *   return Array.prototype.slice.call(arguments);
- * });
- *
- * flipped('a', 'b', 'c', 'd');
- * // => ['d', 'c', 'b', 'a']
- */
-declare function flip<T extends (...args: any) => any>(func: T): T;
-
-export { flip };
Index: de_modules/es-toolkit/dist/compat/function/flip.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function flip(func) {
-    return function (...args) {
-        return func.apply(this, args.reverse());
-    };
-}
-
-exports.flip = flip;
Index: de_modules/es-toolkit/dist/compat/function/flip.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flip.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function flip(func) {
-    return function (...args) {
-        return func.apply(this, args.reverse());
-    };
-}
-
-export { flip };
Index: de_modules/es-toolkit/dist/compat/function/flow.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flow.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * @template A - The type of the arguments.
- * @template R - The type of the return values.
- * @param {(...args: A) => R} f1 - The first function to invoke.
- * @param {(a: R) => R} f2 - The second function to invoke.
- * @param {(a: R) => R} f3 - The third function to invoke.
- * @param {(a: R) => R} f4 - The fourth function to invoke.
- * @param {(a: R) => R} f5 - The fifth function to invoke.
- * @param {(a: R) => R} f6 - The sixth function to invoke.
- * @param {(a: R) => R} f7 - The seventh function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function square(n) {
- *   return n * n;
- * }
- *
- * var addSquare = flow([add, square]);
- * addSquare(1, 2);
- * // => 9
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6, f7: (a: R6) => R7): (...args: A) => R7;
-/**
- * Creates a new function that executes up to 7 functions in sequence, with additional functions flattened.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => n.toString();
- *
- * const combined = flow(add, square, double, toString);
- * console.log(combined(1, 2)); // "18"
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6, f7: (a: R6) => R7, ...func: Array<Many<(a: any) => any>>): (...args: A) => any;
-/**
- * Creates a new function that executes 6 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6): (...args: A) => R6;
-/**
- * Creates a new function that executes 5 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5): (...args: A) => R5;
-/**
- * Creates a new function that executes 4 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4): (...args: A) => R4;
-/**
- * Creates a new function that executes 3 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3): (...args: A) => R3;
-/**
- * Creates a new function that executes 2 functions in sequence.
- * The return value of the first function is passed as an argument to the second function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const addThenSquare = flow(add, square);
- * console.log(addThenSquare(1, 2)); // 9
- */
-declare function flow<A extends any[], R1, R2>(f1: (...args: A) => R1, f2: (a: R1) => R2): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow(...func: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { flow };
Index: de_modules/es-toolkit/dist/compat/function/flow.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flow.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * @template A - The type of the arguments.
- * @template R - The type of the return values.
- * @param {(...args: A) => R} f1 - The first function to invoke.
- * @param {(a: R) => R} f2 - The second function to invoke.
- * @param {(a: R) => R} f3 - The third function to invoke.
- * @param {(a: R) => R} f4 - The fourth function to invoke.
- * @param {(a: R) => R} f5 - The fifth function to invoke.
- * @param {(a: R) => R} f6 - The sixth function to invoke.
- * @param {(a: R) => R} f7 - The seventh function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function square(n) {
- *   return n * n;
- * }
- *
- * var addSquare = flow([add, square]);
- * addSquare(1, 2);
- * // => 9
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6, f7: (a: R6) => R7): (...args: A) => R7;
-/**
- * Creates a new function that executes up to 7 functions in sequence, with additional functions flattened.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => n.toString();
- *
- * const combined = flow(add, square, double, toString);
- * console.log(combined(1, 2)); // "18"
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6, f7: (a: R6) => R7, ...func: Array<Many<(a: any) => any>>): (...args: A) => any;
-/**
- * Creates a new function that executes 6 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5, R6>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5, f6: (a: R5) => R6): (...args: A) => R6;
-/**
- * Creates a new function that executes 5 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5): (...args: A) => R5;
-/**
- * Creates a new function that executes 4 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3, R4>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4): (...args: A) => R4;
-/**
- * Creates a new function that executes 3 functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3): (...args: A) => R3;
-/**
- * Creates a new function that executes 2 functions in sequence.
- * The return value of the first function is passed as an argument to the second function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const addThenSquare = flow(add, square);
- * console.log(addThenSquare(1, 2)); // 9
- */
-declare function flow<A extends any[], R1, R2>(f1: (...args: A) => R1, f2: (a: R1) => R2): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow(...func: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { flow };
Index: de_modules/es-toolkit/dist/compat/function/flow.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('../../array/flatten.js');
-const flow$1 = require('../../function/flow.js');
-
-function flow(...funcs) {
-    const flattenFuncs = flatten.flatten(funcs, 1);
-    if (flattenFuncs.some(func => typeof func !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    return flow$1.flow(...flattenFuncs);
-}
-
-exports.flow = flow;
Index: de_modules/es-toolkit/dist/compat/function/flow.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flow.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { flatten } from '../../array/flatten.mjs';
-import { flow as flow$1 } from '../../function/flow.mjs';
-
-function flow(...funcs) {
-    const flattenFuncs = flatten(funcs, 1);
-    if (flattenFuncs.some(func => typeof func !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    return flow$1(...flattenFuncs);
-}
-
-export { flow };
Index: de_modules/es-toolkit/dist/compat/function/flowRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flowRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * @template A - The type of the arguments.
- * @template R - The type of the return values.
- * @param {(a: R) => R} f7 - The seventh function to invoke.
- * @param {(a: R) => R} f6 - The sixth function to invoke.
- * @param {(a: R) => R} f5 - The fifth function to invoke.
- * @param {(a: R) => R} f4 - The fourth function to invoke.
- * @param {(a: R) => R} f3 - The third function to invoke.
- * @param {(a: R) => R} f2 - The second function to invoke.
- * @param {(...args: A) => R} f1 - The first function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function square(n) {
- *   return n * n;
- * }
- *
- * var addSquare = flowRight(square, add);
- * addSquare(1, 2);
- * // => 9
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f7: (a: R6) => R7, f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R7;
-/**
- * Creates a new function that executes 6 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- * const append = (s: string) => s + '!';
- * const length = (s: string) => s.length;
- *
- * const combined = flowRight(length, append, toString, double, square, add);
- * console.log(combined(1, 2)); // 7
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5, R6>(f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R6;
-/**
- * Creates a new function that executes 5 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- * const append = (s: string) => s + '!';
- *
- * const combined = flowRight(append, toString, double, square, add);
- * console.log(combined(1, 2)); // '18!'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5>(f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R5;
-/**
- * Creates a new function that executes 4 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- *
- * const combined = flowRight(toString, double, square, add);
- * console.log(combined(1, 2)); // '18'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4>(f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R4;
-/**
- * Creates a new function that executes 3 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flowRight(double, square, add);
- * console.log(combined(1, 2)); // 18
- */
-declare function flowRight<A extends any[], R1, R2, R3>(f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R3;
-/**
- * Creates a new function that executes 2 functions in sequence from right to left.
- * The return value of the first function is passed as an argument to the second function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight<A extends any[], R1, R2>(f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- *
- * // Pass functions as separate arguments
- * const combined1 = flowRight(toString, double, square, add);
- * console.log(combined1(1, 2)); // '18'
- *
- * // Pass functions as arrays
- * const combined2 = flowRight([toString, double], [square, add]);
- * console.log(combined2(1, 2)); // '18'
- */
-declare function flowRight(...func: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/compat/function/flowRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flowRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * @template A - The type of the arguments.
- * @template R - The type of the return values.
- * @param {(a: R) => R} f7 - The seventh function to invoke.
- * @param {(a: R) => R} f6 - The sixth function to invoke.
- * @param {(a: R) => R} f5 - The fifth function to invoke.
- * @param {(a: R) => R} f4 - The fourth function to invoke.
- * @param {(a: R) => R} f3 - The third function to invoke.
- * @param {(a: R) => R} f2 - The second function to invoke.
- * @param {(...args: A) => R} f1 - The first function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function square(n) {
- *   return n * n;
- * }
- *
- * var addSquare = flowRight(square, add);
- * addSquare(1, 2);
- * // => 9
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5, R6, R7>(f7: (a: R6) => R7, f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R7;
-/**
- * Creates a new function that executes 6 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- * const append = (s: string) => s + '!';
- * const length = (s: string) => s.length;
- *
- * const combined = flowRight(length, append, toString, double, square, add);
- * console.log(combined(1, 2)); // 7
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5, R6>(f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R6;
-/**
- * Creates a new function that executes 5 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- * const append = (s: string) => s + '!';
- *
- * const combined = flowRight(append, toString, double, square, add);
- * console.log(combined(1, 2)); // '18!'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5>(f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R5;
-/**
- * Creates a new function that executes 4 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- *
- * const combined = flowRight(toString, double, square, add);
- * console.log(combined(1, 2)); // '18'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4>(f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R4;
-/**
- * Creates a new function that executes 3 functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flowRight(double, square, add);
- * console.log(combined(1, 2)); // 18
- */
-declare function flowRight<A extends any[], R1, R2, R3>(f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R3;
-/**
- * Creates a new function that executes 2 functions in sequence from right to left.
- * The return value of the first function is passed as an argument to the second function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight<A extends any[], R1, R2>(f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence from right to left.
- * The return value of each function is passed as an argument to the next function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toString = (n: number) => String(n);
- *
- * // Pass functions as separate arguments
- * const combined1 = flowRight(toString, double, square, add);
- * console.log(combined1(1, 2)); // '18'
- *
- * // Pass functions as arrays
- * const combined2 = flowRight([toString, double], [square, add]);
- * console.log(combined2(1, 2)); // '18'
- */
-declare function flowRight(...func: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/compat/function/flowRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flowRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('../../array/flatten.js');
-const flowRight$1 = require('../../function/flowRight.js');
-
-function flowRight(...funcs) {
-    const flattenFuncs = flatten.flatten(funcs, 1);
-    if (flattenFuncs.some(func => typeof func !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    return flowRight$1.flowRight(...flattenFuncs);
-}
-
-exports.flowRight = flowRight;
Index: de_modules/es-toolkit/dist/compat/function/flowRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/flowRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { flatten } from '../../array/flatten.mjs';
-import { flowRight as flowRight$1 } from '../../function/flowRight.mjs';
-
-function flowRight(...funcs) {
-    const flattenFuncs = flatten(funcs, 1);
-    if (flattenFuncs.some(func => typeof func !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    return flowRight$1(...flattenFuncs);
-}
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/compat/function/identity.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/identity.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity<T>(value: T): T;
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity(): undefined;
-
-export { identity };
Index: de_modules/es-toolkit/dist/compat/function/identity.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/identity.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity<T>(value: T): T;
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity(): undefined;
-
-export { identity };
Index: de_modules/es-toolkit/dist/compat/function/identity.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function identity(x) {
-    return x;
-}
-
-exports.identity = identity;
Index: de_modules/es-toolkit/dist/compat/function/identity.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/identity.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function identity(x) {
-    return x;
-}
-
-export { identity };
Index: de_modules/es-toolkit/dist/compat/function/memoize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/memoize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-interface MapCache {
-    /**
-     * Removes the value associated with the specified key from the cache.
-     *
-     * @param key - The key of the value to remove
-     * @returns `true` if an element was removed, `false` if the key wasn't found
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.delete('user'); // Returns true
-     * cache.delete('unknown'); // Returns false
-     * ```
-     */
-    delete(key: any): boolean;
-    /**
-     * Retrieves the value associated with the specified key from the cache.
-     *
-     * @param key - The key of the value to retrieve
-     * @returns The cached value or undefined if not found
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.get('user'); // Returns { id: 123, name: 'John' }
-     * cache.get('unknown'); // Returns undefined
-     * ```
-     */
-    get(key: any): any;
-    /**
-     * Checks if the cache contains a value for the specified key.
-     *
-     * @param key - The key to check for existence
-     * @returns `true` if the key exists in the cache, otherwise `false`
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.has('user'); // Returns true
-     * cache.has('unknown'); // Returns false
-     * ```
-     */
-    has(key: any): boolean;
-    /**
-     * Stores a value in the cache with the specified key.
-     * If the key already exists, its value is updated.
-     *
-     * @param key - The key to associate with the value
-     * @param value - The value to store in the cache
-     * @returns The cache instance for method chaining
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' })
-     *      .set('settings', { theme: 'dark' });
-     * ```
-     */
-    set(key: any, value: any): this;
-    /**
-     * Removes all key-value pairs from the cache.
-     * This method is optional as some cache implementations may be immutable.
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.set('settings', { theme: 'dark' });
-     * cache.clear(); // Cache is now empty
-     * ```
-     */
-    clear?(): void;
-}
-/**
- * Constructor interface for creating a new MapCache instance.
- * This defines the shape of a constructor that can create cache objects
- * conforming to the MapCache interface.
- *
- * @example
- * ```typescript
- * class CustomCache implements MapCache {
- *   // Cache implementation
- * }
- *
- * const CacheConstructor: MapCacheConstructor = CustomCache;
- * const cache = new CacheConstructor();
- * ```
- */
-interface MapCacheConstructor {
-    new (): MapCache;
-}
-/**
- * Represents a function that has been memoized.
- * A memoized function maintains the same signature as the original function
- * but adds a cache property to store previously computed results.
- *
- * @template T - The type of the original function being memoized
- */
-interface MemoizedFunction {
-    /**
-     * The cache storing previously computed results
-     */
-    cache: MapCache;
-}
-/**
- * Creates a function that memoizes the result of func. If resolver is provided it determines the cache key for
- * storing the result based on the arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is coerced to a string and used as the cache key. The func is invoked with
- * the this binding of the memoized function.
- *
- * @template T - The type of the original function being memoized
- * @param {T} func The function to have its output memoized.
- * @param {Function} [resolver] The function to resolve the cache key.
- * @return {MemoizedFunction<T>} Returns the new memoizing function.
- */
-declare function memoize<T extends (...args: any) => any>(func: T, resolver?: (...args: Parameters<T>) => any): T & MemoizedFunction;
-declare namespace memoize {
-    var Cache: MapCacheConstructor;
-}
-
-export { memoize };
Index: de_modules/es-toolkit/dist/compat/function/memoize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/memoize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,119 +1,0 @@
-interface MapCache {
-    /**
-     * Removes the value associated with the specified key from the cache.
-     *
-     * @param key - The key of the value to remove
-     * @returns `true` if an element was removed, `false` if the key wasn't found
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.delete('user'); // Returns true
-     * cache.delete('unknown'); // Returns false
-     * ```
-     */
-    delete(key: any): boolean;
-    /**
-     * Retrieves the value associated with the specified key from the cache.
-     *
-     * @param key - The key of the value to retrieve
-     * @returns The cached value or undefined if not found
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.get('user'); // Returns { id: 123, name: 'John' }
-     * cache.get('unknown'); // Returns undefined
-     * ```
-     */
-    get(key: any): any;
-    /**
-     * Checks if the cache contains a value for the specified key.
-     *
-     * @param key - The key to check for existence
-     * @returns `true` if the key exists in the cache, otherwise `false`
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.has('user'); // Returns true
-     * cache.has('unknown'); // Returns false
-     * ```
-     */
-    has(key: any): boolean;
-    /**
-     * Stores a value in the cache with the specified key.
-     * If the key already exists, its value is updated.
-     *
-     * @param key - The key to associate with the value
-     * @param value - The value to store in the cache
-     * @returns The cache instance for method chaining
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' })
-     *      .set('settings', { theme: 'dark' });
-     * ```
-     */
-    set(key: any, value: any): this;
-    /**
-     * Removes all key-value pairs from the cache.
-     * This method is optional as some cache implementations may be immutable.
-     *
-     * @example
-     * ```typescript
-     * cache.set('user', { id: 123, name: 'John' });
-     * cache.set('settings', { theme: 'dark' });
-     * cache.clear(); // Cache is now empty
-     * ```
-     */
-    clear?(): void;
-}
-/**
- * Constructor interface for creating a new MapCache instance.
- * This defines the shape of a constructor that can create cache objects
- * conforming to the MapCache interface.
- *
- * @example
- * ```typescript
- * class CustomCache implements MapCache {
- *   // Cache implementation
- * }
- *
- * const CacheConstructor: MapCacheConstructor = CustomCache;
- * const cache = new CacheConstructor();
- * ```
- */
-interface MapCacheConstructor {
-    new (): MapCache;
-}
-/**
- * Represents a function that has been memoized.
- * A memoized function maintains the same signature as the original function
- * but adds a cache property to store previously computed results.
- *
- * @template T - The type of the original function being memoized
- */
-interface MemoizedFunction {
-    /**
-     * The cache storing previously computed results
-     */
-    cache: MapCache;
-}
-/**
- * Creates a function that memoizes the result of func. If resolver is provided it determines the cache key for
- * storing the result based on the arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is coerced to a string and used as the cache key. The func is invoked with
- * the this binding of the memoized function.
- *
- * @template T - The type of the original function being memoized
- * @param {T} func The function to have its output memoized.
- * @param {Function} [resolver] The function to resolve the cache key.
- * @return {MemoizedFunction<T>} Returns the new memoizing function.
- */
-declare function memoize<T extends (...args: any) => any>(func: T, resolver?: (...args: Parameters<T>) => any): T & MemoizedFunction;
-declare namespace memoize {
-    var Cache: MapCacheConstructor;
-}
-
-export { memoize };
Index: de_modules/es-toolkit/dist/compat/function/memoize.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/memoize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function memoize(func, resolver) {
-    if (typeof func !== 'function' || (resolver != null && typeof resolver !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    const memoized = function (...args) {
-        const key = resolver ? resolver.apply(this, args) : args[0];
-        const cache = memoized.cache;
-        if (cache.has(key)) {
-            return cache.get(key);
-        }
-        const result = func.apply(this, args);
-        memoized.cache = cache.set(key, result) || cache;
-        return result;
-    };
-    const CacheConstructor = memoize.Cache || Map;
-    memoized.cache = new CacheConstructor();
-    return memoized;
-}
-memoize.Cache = Map;
-
-exports.memoize = memoize;
Index: de_modules/es-toolkit/dist/compat/function/memoize.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/memoize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function memoize(func, resolver) {
-    if (typeof func !== 'function' || (resolver != null && typeof resolver !== 'function')) {
-        throw new TypeError('Expected a function');
-    }
-    const memoized = function (...args) {
-        const key = resolver ? resolver.apply(this, args) : args[0];
-        const cache = memoized.cache;
-        if (cache.has(key)) {
-            return cache.get(key);
-        }
-        const result = func.apply(this, args);
-        memoized.cache = cache.set(key, result) || cache;
-        return result;
-    };
-    const CacheConstructor = memoize.Cache || Map;
-    memoized.cache = new CacheConstructor();
-    return memoized;
-}
-memoize.Cache = Map;
-
-export { memoize };
Index: de_modules/es-toolkit/dist/compat/function/negate.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/negate.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a function that negates the result of the predicate function.
- *
- * @template T - The type of the arguments array.
- * @param {(...args: T) => boolean} predicate - The predicate to negate.
- * @returns {(...args: T) => boolean} The new negated function.
- *
- * @example
- * function isEven(n) {
- *   return n % 2 == 0;
- * }
- *
- * filter([1, 2, 3, 4, 5, 6], negate(isEven));
- * // => [1, 3, 5]
- */
-declare function negate<T extends any[]>(predicate: (...args: T) => boolean): (...args: T) => boolean;
-
-export { negate };
Index: de_modules/es-toolkit/dist/compat/function/negate.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/negate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a function that negates the result of the predicate function.
- *
- * @template T - The type of the arguments array.
- * @param {(...args: T) => boolean} predicate - The predicate to negate.
- * @returns {(...args: T) => boolean} The new negated function.
- *
- * @example
- * function isEven(n) {
- *   return n % 2 == 0;
- * }
- *
- * filter([1, 2, 3, 4, 5, 6], negate(isEven));
- * // => [1, 3, 5]
- */
-declare function negate<T extends any[]>(predicate: (...args: T) => boolean): (...args: T) => boolean;
-
-export { negate };
Index: de_modules/es-toolkit/dist/compat/function/negate.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/negate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function negate(func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return function (...args) {
-        return !func.apply(this, args);
-    };
-}
-
-exports.negate = negate;
Index: de_modules/es-toolkit/dist/compat/function/negate.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/negate.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function negate(func) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    return function (...args) {
-        return !func.apply(this, args);
-    };
-}
-
-export { negate };
Index: de_modules/es-toolkit/dist/compat/function/noop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/noop.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * A no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * noop(); // Does nothing
- *
- * @returns {void} This function does not return anything.
- */
-declare function noop(..._: any[]): void;
-
-export { noop };
Index: de_modules/es-toolkit/dist/compat/function/noop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/noop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * A no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * noop(); // Does nothing
- *
- * @returns {void} This function does not return anything.
- */
-declare function noop(..._: any[]): void;
-
-export { noop };
Index: de_modules/es-toolkit/dist/compat/function/noop.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function noop(..._) { }
-
-exports.noop = noop;
Index: de_modules/es-toolkit/dist/compat/function/noop.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/noop.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-function noop(..._) { }
-
-export { noop };
Index: de_modules/es-toolkit/dist/compat/function/nthArg.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/nthArg.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a function that gets the argument at index `n`. If `n` is negative, the nth argument from the end is returned.
- *
- * @param {number} [n=0] - The index of the argument to return.
- * @returns {(...args: any[]) => any} Returns the new function.
- *
- * @example
- * var func = nthArg(1);
- * func('a', 'b', 'c', 'd');
- * // => 'b'
- *
- * var func = nthArg(-2);
- * func('a', 'b', 'c', 'd');
- * // => 'c'
- */
-declare function nthArg(n?: number): (...args: any[]) => any;
-
-export { nthArg };
Index: de_modules/es-toolkit/dist/compat/function/nthArg.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/nthArg.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Creates a function that gets the argument at index `n`. If `n` is negative, the nth argument from the end is returned.
- *
- * @param {number} [n=0] - The index of the argument to return.
- * @returns {(...args: any[]) => any} Returns the new function.
- *
- * @example
- * var func = nthArg(1);
- * func('a', 'b', 'c', 'd');
- * // => 'b'
- *
- * var func = nthArg(-2);
- * func('a', 'b', 'c', 'd');
- * // => 'c'
- */
-declare function nthArg(n?: number): (...args: any[]) => any;
-
-export { nthArg };
Index: de_modules/es-toolkit/dist/compat/function/nthArg.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/nthArg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('../util/toInteger.js');
-
-function nthArg(n = 0) {
-    return function (...args) {
-        return args.at(toInteger.toInteger(n));
-    };
-}
-
-exports.nthArg = nthArg;
Index: de_modules/es-toolkit/dist/compat/function/nthArg.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/nthArg.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { toInteger } from '../util/toInteger.mjs';
-
-function nthArg(n = 0) {
-    return function (...args) {
-        return args.at(toInteger(n));
-    };
-}
-
-export { nthArg };
Index: de_modules/es-toolkit/dist/compat/function/once.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/once.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-declare function once<T extends (...args: any) => any>(func: T): T;
-
-export { once };
Index: de_modules/es-toolkit/dist/compat/function/once.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/once.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-declare function once<T extends (...args: any) => any>(func: T): T;
-
-export { once };
Index: de_modules/es-toolkit/dist/compat/function/once.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/once.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const once$1 = require('../../function/once.js');
-
-function once(func) {
-    return once$1.once(func);
-}
-
-exports.once = once;
Index: de_modules/es-toolkit/dist/compat/function/once.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/once.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { once as once$1 } from '../../function/once.mjs';
-
-function once(func) {
-    return once$1(func);
-}
-
-export { once };
Index: de_modules/es-toolkit/dist/compat/function/overArgs.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/overArgs.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Creates a function that invokes `func` with its arguments transformed by corresponding transform functions.
- *
- * Transform functions can be:
- * - Functions that accept and return a value
- * - Property names (strings) to get a property value from each argument
- * - Objects to check if arguments match the object properties
- * - Arrays of [property, value] to check if argument properties match values
- *
- * If a transform is nullish, the identity function is used instead.
- * Only transforms arguments up to the number of transform functions provided.
- *
- * @param {(...args: any[]) => any} func - The function to wrap
- * @param {Array<Many<(...args: any[]) => any>>} transforms - The functions to transform arguments. Each transform can be:
- *   - A function that accepts and returns a value
- *   - A string to get a property value (e.g. 'name' gets the name property)
- *   - An object to check if arguments match its properties
- *   - An array of [property, value] to check property matches
- * @returns {(...args: any[]) => any} A new function that transforms arguments before passing them to func
- * @throws {TypeError} If func is not a function.
- * @example
- * ```ts
- * function doubled(n: number) {
- *   return n * 2;
- * }
- *
- * function square(n: number) {
- *   return n * n;
- * }
- *
- * const func = overArgs((x, y) => [x, y], [doubled, square]);
- *
- * func(5, 3);
- * // => [10, 9]
- *
- * // With property shorthand
- * const user = { name: 'John', age: 30 };
- * const getUserInfo = overArgs(
- *   (name, age) => `${name} is ${age} years old`,
- *   ['name', 'age']
- * );
- * getUserInfo(user, user);
- * // => "John is 30 years old"
- * ```
- */
-declare function overArgs(func: (...args: any[]) => any, ..._transforms: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { overArgs };
Index: de_modules/es-toolkit/dist/compat/function/overArgs.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/overArgs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Creates a function that invokes `func` with its arguments transformed by corresponding transform functions.
- *
- * Transform functions can be:
- * - Functions that accept and return a value
- * - Property names (strings) to get a property value from each argument
- * - Objects to check if arguments match the object properties
- * - Arrays of [property, value] to check if argument properties match values
- *
- * If a transform is nullish, the identity function is used instead.
- * Only transforms arguments up to the number of transform functions provided.
- *
- * @param {(...args: any[]) => any} func - The function to wrap
- * @param {Array<Many<(...args: any[]) => any>>} transforms - The functions to transform arguments. Each transform can be:
- *   - A function that accepts and returns a value
- *   - A string to get a property value (e.g. 'name' gets the name property)
- *   - An object to check if arguments match its properties
- *   - An array of [property, value] to check property matches
- * @returns {(...args: any[]) => any} A new function that transforms arguments before passing them to func
- * @throws {TypeError} If func is not a function.
- * @example
- * ```ts
- * function doubled(n: number) {
- *   return n * 2;
- * }
- *
- * function square(n: number) {
- *   return n * n;
- * }
- *
- * const func = overArgs((x, y) => [x, y], [doubled, square]);
- *
- * func(5, 3);
- * // => [10, 9]
- *
- * // With property shorthand
- * const user = { name: 'John', age: 30 };
- * const getUserInfo = overArgs(
- *   (name, age) => `${name} is ${age} years old`,
- *   ['name', 'age']
- * );
- * getUserInfo(user, user);
- * // => "John is 30 years old"
- * ```
- */
-declare function overArgs(func: (...args: any[]) => any, ..._transforms: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
-
-export { overArgs };
Index: de_modules/es-toolkit/dist/compat/function/overArgs.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/overArgs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function overArgs(func, ..._transforms) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    const transforms = _transforms.flat();
-    return function (...args) {
-        const length = Math.min(args.length, transforms.length);
-        const transformedArgs = [...args];
-        for (let i = 0; i < length; i++) {
-            const transform = iteratee.iteratee(transforms[i] ?? identity.identity);
-            transformedArgs[i] = transform.call(this, args[i]);
-        }
-        return func.apply(this, transformedArgs);
-    };
-}
-
-exports.overArgs = overArgs;
Index: de_modules/es-toolkit/dist/compat/function/overArgs.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/overArgs.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function overArgs(func, ..._transforms) {
-    if (typeof func !== 'function') {
-        throw new TypeError('Expected a function');
-    }
-    const transforms = _transforms.flat();
-    return function (...args) {
-        const length = Math.min(args.length, transforms.length);
-        const transformedArgs = [...args];
-        for (let i = 0; i < length; i++) {
-            const transform = iteratee(transforms[i] ?? identity);
-            transformedArgs[i] = transform.call(this, args[i]);
-        }
-        return func.apply(this, transformedArgs);
-    };
-}
-
-export { overArgs };
Index: de_modules/es-toolkit/dist/compat/function/partial.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partial.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,204 +1,0 @@
-import { Toolkit } from '../toolkit.mjs';
-
-type __ = Placeholder | Toolkit;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}`;
- * const sayHello = partial(greet, _, 'world');
- * console.log(sayHello('Hello')); // => 'Hello world'
- */
-declare function partial<T1, T2, R>(func: (t1: T1, t2: T2) => R, plc1: __, arg2: T2): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const addToY = partial(calculate, _, 2);
- * console.log(addToY(1, 3)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, arg2: T2): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const addZ = partial(calculate, _, _, 3);
- * console.log(addZ(1, 2)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, plc2: __, arg3: T3): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const withXandZ = partial(calculate, 1, _, 3);
- * console.log(withXandZ(2)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const withYandZ = partial(calculate, _, 2, 3);
- * console.log(withYandZ(1)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, arg2: T2, arg3: T3): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withB = partial(format, _, 'b');
- * console.log(withB('a', 'c', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2): (t1: T1, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withC = partial(format, _, _, 'c');
- * console.log(withC('a', 'b', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, arg3: T3): (t1: T1, t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withAandC = partial(format, 'a', _, 'c');
- * console.log(withAandC('b', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBandC = partial(format, _, 'b', 'c');
- * console.log(withBandC('a', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, arg3: T3): (t1: T1, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withD = partial(format, _, _, _, 'd');
- * console.log(withD('a', 'b', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, plc3: __, arg4: T4): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withAandD = partial(format, 'a', _, _, 'd');
- * console.log(withAandD('b', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, arg4: T4): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBandD = partial(format, _, 'b', _, 'd');
- * console.log(withBandD('a', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, plc3: __, arg4: T4): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withABandD = partial(format, 'a', 'b', _, 'd');
- * console.log(withABandD('c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, arg4: T4): (t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withCandD = partial(format, _, _, 'c', 'd');
- * console.log(withCandD('a', 'b')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, arg3: T3, arg4: T4): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withACandD = partial(format, 'a', _, 'c', 'd');
- * console.log(withACandD('b')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, arg4: T4): (t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBCandD = partial(format, _, 'b', 'c', 'd');
- * console.log(withBCandD('a')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, arg3: T3, arg4: T4): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const sum = (...numbers: number[]) => numbers.reduce((a, b) => a + b, 0);
- * const partialSum = partial(sum);
- * console.log(partialSum(1, 2, 3)); // => 6
- */
-declare function partial<TS extends any[], R>(func: (...ts: TS) => R): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const log = (prefix: string, ...messages: string[]) => console.log(prefix, ...messages);
- * const debugLog = partial(log, '[DEBUG]');
- * debugLog('message 1', 'message 2'); // => '[DEBUG] message 1 message 2'
- */
-declare function partial<TS extends any[], T1, R>(func: (t1: T1, ...ts: TS) => R, arg1: T1): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (prefix: string, separator: string, ...messages: string[]) => `${prefix}${messages.join(separator)}`;
- * const logWithPrefix = partial(format, '[LOG]', ' - ');
- * console.log(logWithPrefix('msg1', 'msg2')); // => '[LOG]msg1 - msg2'
- */
-declare function partial<TS extends any[], T1, T2, R>(func: (t1: T1, t2: T2, ...ts: TS) => R, t1: T1, t2: T2): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (type: string, level: string, message: string, ...tags: string[]) =>
- *   `[${type}][${level}] ${message} ${tags.join(',')}`;
- * const errorLog = partial(format, 'ERROR', 'HIGH', 'Something went wrong');
- * console.log(errorLog('critical', 'urgent')); // => '[ERROR][HIGH] Something went wrong critical,urgent'
- */
-declare function partial<TS extends any[], T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3, ...ts: TS) => R, t1: T1, t2: T2, t3: T3): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string, ...rest: string[]) =>
- *   `${a}-${b}-${c}-${d}:${rest.join(',')}`;
- * const prefixedFormat = partial(format, 'a', 'b', 'c', 'd');
- * console.log(prefixedFormat('e', 'f')); // => 'a-b-c-d:e,f'
- */
-declare function partial<TS extends any[], T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, ...ts: TS) => R, t1: T1, t2: T2, t3: T3, t4: T4): (...ts: TS) => R;
-declare namespace partial {
-    var placeholder: Placeholder;
-}
-type Placeholder = symbol | (((value: any) => any) & {
-    partial: typeof partial;
-});
-
-export { partial };
Index: de_modules/es-toolkit/dist/compat/function/partial.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,204 +1,0 @@
-import { Toolkit } from '../toolkit.js';
-
-type __ = Placeholder | Toolkit;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}`;
- * const sayHello = partial(greet, _, 'world');
- * console.log(sayHello('Hello')); // => 'Hello world'
- */
-declare function partial<T1, T2, R>(func: (t1: T1, t2: T2) => R, plc1: __, arg2: T2): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const addToY = partial(calculate, _, 2);
- * console.log(addToY(1, 3)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, arg2: T2): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const addZ = partial(calculate, _, _, 3);
- * console.log(addZ(1, 2)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, plc2: __, arg3: T3): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const withXandZ = partial(calculate, 1, _, 3);
- * console.log(withXandZ(2)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const calculate = (x: number, y: number, z: number) => x + y + z;
- * const withYandZ = partial(calculate, _, 2, 3);
- * console.log(withYandZ(1)); // => 6
- */
-declare function partial<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, plc1: __, arg2: T2, arg3: T3): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withB = partial(format, _, 'b');
- * console.log(withB('a', 'c', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2): (t1: T1, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withC = partial(format, _, _, 'c');
- * console.log(withC('a', 'b', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, arg3: T3): (t1: T1, t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withAandC = partial(format, 'a', _, 'c');
- * console.log(withAandC('b', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBandC = partial(format, _, 'b', 'c');
- * console.log(withBandC('a', 'd')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, arg3: T3): (t1: T1, t4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withD = partial(format, _, _, _, 'd');
- * console.log(withD('a', 'b', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, plc3: __, arg4: T4): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withAandD = partial(format, 'a', _, _, 'd');
- * console.log(withAandD('b', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, arg4: T4): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBandD = partial(format, _, 'b', _, 'd');
- * console.log(withBandD('a', 'c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, plc3: __, arg4: T4): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withABandD = partial(format, 'a', 'b', _, 'd');
- * console.log(withABandD('c')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, arg4: T4): (t3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withCandD = partial(format, _, _, 'c', 'd');
- * console.log(withCandD('a', 'b')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, plc2: __, arg3: T3, arg4: T4): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withACandD = partial(format, 'a', _, 'c', 'd');
- * console.log(withACandD('b')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, arg4: T4): (t2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string) => `${a}-${b}-${c}-${d}`;
- * const withBCandD = partial(format, _, 'b', 'c', 'd');
- * console.log(withBCandD('a')); // => 'a-b-c-d'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, plc1: __, arg2: T2, arg3: T3, arg4: T4): (t1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const sum = (...numbers: number[]) => numbers.reduce((a, b) => a + b, 0);
- * const partialSum = partial(sum);
- * console.log(partialSum(1, 2, 3)); // => 6
- */
-declare function partial<TS extends any[], R>(func: (...ts: TS) => R): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const log = (prefix: string, ...messages: string[]) => console.log(prefix, ...messages);
- * const debugLog = partial(log, '[DEBUG]');
- * debugLog('message 1', 'message 2'); // => '[DEBUG] message 1 message 2'
- */
-declare function partial<TS extends any[], T1, R>(func: (t1: T1, ...ts: TS) => R, arg1: T1): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (prefix: string, separator: string, ...messages: string[]) => `${prefix}${messages.join(separator)}`;
- * const logWithPrefix = partial(format, '[LOG]', ' - ');
- * console.log(logWithPrefix('msg1', 'msg2')); // => '[LOG]msg1 - msg2'
- */
-declare function partial<TS extends any[], T1, T2, R>(func: (t1: T1, t2: T2, ...ts: TS) => R, t1: T1, t2: T2): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (type: string, level: string, message: string, ...tags: string[]) =>
- *   `[${type}][${level}] ${message} ${tags.join(',')}`;
- * const errorLog = partial(format, 'ERROR', 'HIGH', 'Something went wrong');
- * console.log(errorLog('critical', 'urgent')); // => '[ERROR][HIGH] Something went wrong critical,urgent'
- */
-declare function partial<TS extends any[], T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3, ...ts: TS) => R, t1: T1, t2: T2, t3: T3): (...ts: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * @example
- * const format = (a: string, b: string, c: string, d: string, ...rest: string[]) =>
- *   `${a}-${b}-${c}-${d}:${rest.join(',')}`;
- * const prefixedFormat = partial(format, 'a', 'b', 'c', 'd');
- * console.log(prefixedFormat('e', 'f')); // => 'a-b-c-d:e,f'
- */
-declare function partial<TS extends any[], T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, ...ts: TS) => R, t1: T1, t2: T2, t3: T3, t4: T4): (...ts: TS) => R;
-declare namespace partial {
-    var placeholder: Placeholder;
-}
-type Placeholder = symbol | (((value: any) => any) & {
-    partial: typeof partial;
-});
-
-export { partial };
Index: de_modules/es-toolkit/dist/compat/function/partial.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const partial$1 = require('../../function/partial.js');
-
-function partial(func, ...partialArgs) {
-    return partial$1.partialImpl(func, partial.placeholder, ...partialArgs);
-}
-partial.placeholder = Symbol('compat.partial.placeholder');
-
-exports.partial = partial;
Index: de_modules/es-toolkit/dist/compat/function/partial.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partial.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { partialImpl } from '../../function/partial.mjs';
-
-function partial(func, ...partialArgs) {
-    return partialImpl(func, partial.placeholder, ...partialArgs);
-}
-partial.placeholder = Symbol('compat.partial.placeholder');
-
-export { partial };
Index: de_modules/es-toolkit/dist/compat/function/partialRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partialRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,622 +1,0 @@
-import { Toolkit } from '../toolkit.mjs';
-
-type __ = Placeholder | Toolkit;
-/**
- * Creates a function that invokes the provided function with no arguments.
- *
- * @template R The return type of the function
- * @param {() => R} func The function to partially apply
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = () => 'Hello!';
- * const sayHello = partialRight(greet);
- * sayHello(); // => 'Hello!'
- */
-declare function partialRight<R>(func: () => R): () => R;
-/**
- * Creates a function that invokes the provided function with one argument.
- *
- * @template T The type of the argument
- * @template R The return type of the function
- * @param {(t1: T) => R} func The function to partially apply
- * @returns {(t1: T) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (name: string) => `Hello ${name}!`;
- * const greetPerson = partialRight(greet);
- * greetPerson('Fred'); // => 'Hello Fred!'
- */
-declare function partialRight<T, R>(func: (t1: T) => R): (t1: T) => R;
-/**
- * Creates a function that invokes the provided function with one argument pre-filled.
- *
- * @template T The type of the argument
- * @template R The return type of the function
- * @param {(t1: T) => R} func The function to partially apply
- * @param {T} arg1 The argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (name: string) => `Hello ${name}!`;
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred(); // => 'Hello Fred!'
- */
-declare function partialRight<T, R>(func: (t1: T) => R, arg1: T): () => R;
-/**
- * Creates a function that invokes the provided function with two arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const greetWithParams = partialRight(greet);
- * greetWithParams('Hi', 'Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with one argument pre-filled and a placeholder.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T1} arg1 The argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const hiWithName = partialRight(greet, 'Hi', partialRight.placeholder);
- * hiWithName('Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg1: T1, plc2: __): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T2} arg2 The argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred('Hi'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg2: T2): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with both arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const sayHiToFred = partialRight(greet, 'Hi', 'Fred');
- * sayHiToFred(); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg1: T1, arg2: T2): () => R;
-/**
- * Creates a function that invokes the provided function with no pre-filled arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetWithArgs = partialRight(greet);
- * greetWithArgs('Hi', 'Fred', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiWithNameAndPunc = partialRight(greet, 'Hi', partialRight.placeholder, partialRight.placeholder);
- * hiWithNameAndPunc('Fred', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, plc3: __): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t1: T1, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetFredWithPunc = partialRight(greet, 'Fred', partialRight.placeholder);
- * greetFredWithPunc('Hi', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg2: T2, plc3: __): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first two arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiToFredWithPunc = partialRight(greet, 'Hi', 'Fred', partialRight.placeholder);
- * hiToFredWithPunc('!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, arg2: T2, plc3: __): (t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the third argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetWithExclamation = partialRight(greet, '!');
- * greetWithExclamation('Hi', 'Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg3: T3): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the first and third arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiWithNameAndExclamation = partialRight(greet, 'Hi', partialRight.placeholder, '!');
- * hiWithNameAndExclamation('Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second and third arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetFredWithExclamation = partialRight(greet, 'Fred', '!');
- * greetFredWithExclamation('Hi'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg2: T2, arg3: T3): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with all three arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const sayHiToFredWithExclamation = partialRight(greet, 'Hi', 'Fred', '!');
- * sayHiToFredWithExclamation(); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, arg2: T2, arg3: T3): () => R;
-/**
- * Creates a function that invokes the provided function with no pre-filled arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const formatWithArgs = partialRight(format);
- * formatWithArgs('Hi', 'Fred', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): (t1: T1, t2: T2, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t2: T2, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiWithRest = partialRight(format, 'Hi', partialRight.placeholder, partialRight.placeholder, partialRight.placeholder);
- * hiWithRest('Fred', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, plc4: __): (t2: T2, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredWithRest = partialRight(format, 'Fred', partialRight.placeholder, partialRight.placeholder);
- * greetFredWithRest('Hi', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, plc3: __, plc4: __): (t1: T1, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first two arguments pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredWithRest = partialRight(format, 'Hi', 'Fred', partialRight.placeholder, partialRight.placeholder);
- * hiToFredWithRest('morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, plc4: __): (t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the third argument pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t2: T2, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const atMorningWithPunc = partialRight(format, 'morning', partialRight.placeholder);
- * atMorningWithPunc('Hi', 'Fred', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg3: T3, plc4: __): (t1: T1, t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first and third arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t2: T2, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiAtMorningWithNameAndPunc = partialRight(format, 'Hi', partialRight.placeholder, 'morning', partialRight.placeholder);
- * hiAtMorningWithNameAndPunc('Fred', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, plc4: __): (t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the second and third arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredAtMorningWithPunc = partialRight(format, 'Fred', 'morning', partialRight.placeholder);
- * greetFredAtMorningWithPunc('Hi', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, arg3: T3, plc4: __): (t1: T1, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first three arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredAtMorningWithPunc = partialRight(format, 'Hi', 'Fred', 'morning', partialRight.placeholder);
- * hiToFredAtMorningWithPunc('!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, arg3: T3, plc4: __): (t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the fourth argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const withExclamation = partialRight(format, '!');
- * withExclamation('Hi', 'Fred', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg4: T4): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiWithExclamation = partialRight(format, 'Hi', partialRight.placeholder, partialRight.placeholder, '!');
- * hiWithExclamation('Fred', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, arg4: T4): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the second and fourth arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredWithTime = partialRight(format, 'Fred', partialRight.placeholder, '!');
- * greetFredWithTime('Hi', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, plc3: __, arg4: T4): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first, second and fourth arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredWithTime = partialRight(format, 'Hi', 'Fred', partialRight.placeholder, '!');
- * hiToFredWithTime('morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, arg4: T4): (t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const inMorningWithExclamation = partialRight(format, 'morning', '!');
- * inMorningWithExclamation('Hi', 'Fred'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg3: T3, arg4: T4): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the first, third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiInMorningWithExclamation = partialRight(format, 'Hi', partialRight.placeholder, 'morning', '!');
- * hiInMorningWithExclamation('Fred'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, arg4: T4): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second, third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredInMorningWithExclamation = partialRight(format, 'Fred', 'morning', '!');
- * greetFredInMorningWithExclamation('Hi'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, arg3: T3, arg4: T4): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with all arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const sayHiToFredInMorningWithExclamation = partialRight(format, 'Hi', 'Fred', 'morning', '!');
- * sayHiToFredInMorningWithExclamation(); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: T4): () => R;
-/**
- * Creates a function that invokes the provided function with partially applied arguments appended to the arguments it receives.
- * The partialRight.placeholder value can be used as a placeholder for partially applied arguments.
- *
- * @template F The type of the function to partially apply
- * @param {F} func The function to partially apply arguments to
- * @param {...any[]} args The arguments to be partially applied
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new partially applied function
- *
- * @example
- * function greet(greeting: string, name: string) {
- *   return greeting + ' ' + name;
- * }
- *
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred('Hi'); // => 'Hi Fred'
- *
- * // Using placeholders
- * const sayHelloTo = partialRight(greet, 'Hello', partialRight.placeholder);
- * sayHelloTo('Fred'); // => 'Hello Fred'
- */
-declare function partialRight(func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
-declare namespace partialRight {
-    var placeholder: Placeholder;
-}
-type Placeholder = symbol | (((value: any) => any) & {
-    partialRight: typeof partialRight;
-});
-
-export { partialRight };
Index: de_modules/es-toolkit/dist/compat/function/partialRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partialRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,622 +1,0 @@
-import { Toolkit } from '../toolkit.js';
-
-type __ = Placeholder | Toolkit;
-/**
- * Creates a function that invokes the provided function with no arguments.
- *
- * @template R The return type of the function
- * @param {() => R} func The function to partially apply
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = () => 'Hello!';
- * const sayHello = partialRight(greet);
- * sayHello(); // => 'Hello!'
- */
-declare function partialRight<R>(func: () => R): () => R;
-/**
- * Creates a function that invokes the provided function with one argument.
- *
- * @template T The type of the argument
- * @template R The return type of the function
- * @param {(t1: T) => R} func The function to partially apply
- * @returns {(t1: T) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (name: string) => `Hello ${name}!`;
- * const greetPerson = partialRight(greet);
- * greetPerson('Fred'); // => 'Hello Fred!'
- */
-declare function partialRight<T, R>(func: (t1: T) => R): (t1: T) => R;
-/**
- * Creates a function that invokes the provided function with one argument pre-filled.
- *
- * @template T The type of the argument
- * @template R The return type of the function
- * @param {(t1: T) => R} func The function to partially apply
- * @param {T} arg1 The argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (name: string) => `Hello ${name}!`;
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred(); // => 'Hello Fred!'
- */
-declare function partialRight<T, R>(func: (t1: T) => R, arg1: T): () => R;
-/**
- * Creates a function that invokes the provided function with two arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const greetWithParams = partialRight(greet);
- * greetWithParams('Hi', 'Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with one argument pre-filled and a placeholder.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T1} arg1 The argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const hiWithName = partialRight(greet, 'Hi', partialRight.placeholder);
- * hiWithName('Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg1: T1, plc2: __): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T2} arg2 The argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred('Hi'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg2: T2): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with both arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting} ${name}!`;
- * const sayHiToFred = partialRight(greet, 'Hi', 'Fred');
- * sayHiToFred(); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arg1: T1, arg2: T2): () => R;
-/**
- * Creates a function that invokes the provided function with no pre-filled arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetWithArgs = partialRight(greet);
- * greetWithArgs('Hi', 'Fred', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiWithNameAndPunc = partialRight(greet, 'Hi', partialRight.placeholder, partialRight.placeholder);
- * hiWithNameAndPunc('Fred', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, plc3: __): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t1: T1, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetFredWithPunc = partialRight(greet, 'Fred', partialRight.placeholder);
- * greetFredWithPunc('Hi', '!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg2: T2, plc3: __): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first two arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @returns {(t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiToFredWithPunc = partialRight(greet, 'Hi', 'Fred', partialRight.placeholder);
- * hiToFredWithPunc('!'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, arg2: T2, plc3: __): (t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the third argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetWithExclamation = partialRight(greet, '!');
- * greetWithExclamation('Hi', 'Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg3: T3): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the first and third arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const hiWithNameAndExclamation = partialRight(greet, 'Hi', partialRight.placeholder, '!');
- * hiWithNameAndExclamation('Fred'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, plc2: __, arg3: T3): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second and third arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const greetFredWithExclamation = partialRight(greet, 'Fred', '!');
- * greetFredWithExclamation('Hi'); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg2: T2, arg3: T3): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with all three arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting} ${name}${punctuation}`;
- * const sayHiToFredWithExclamation = partialRight(greet, 'Hi', 'Fred', '!');
- * sayHiToFredWithExclamation(); // => 'Hi Fred!'
- */
-declare function partialRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arg1: T1, arg2: T2, arg3: T3): () => R;
-/**
- * Creates a function that invokes the provided function with no pre-filled arguments.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @returns {(t1: T1, t2: T2, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const formatWithArgs = partialRight(format);
- * formatWithArgs('Hi', 'Fred', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): (t1: T1, t2: T2, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t2: T2, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiWithRest = partialRight(format, 'Hi', partialRight.placeholder, partialRight.placeholder, partialRight.placeholder);
- * hiWithRest('Fred', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, plc4: __): (t2: T2, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the second argument pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredWithRest = partialRight(format, 'Fred', partialRight.placeholder, partialRight.placeholder);
- * greetFredWithRest('Hi', 'morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, plc3: __, plc4: __): (t1: T1, t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first two arguments pre-filled and placeholders for the rest.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t3: T3, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredWithRest = partialRight(format, 'Hi', 'Fred', partialRight.placeholder, partialRight.placeholder);
- * hiToFredWithRest('morning', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, plc4: __): (t3: T3, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the third argument pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t2: T2, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const atMorningWithPunc = partialRight(format, 'morning', partialRight.placeholder);
- * atMorningWithPunc('Hi', 'Fred', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg3: T3, plc4: __): (t1: T1, t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first and third arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t2: T2, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiAtMorningWithNameAndPunc = partialRight(format, 'Hi', partialRight.placeholder, 'morning', partialRight.placeholder);
- * hiAtMorningWithNameAndPunc('Fred', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, plc4: __): (t2: T2, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the second and third arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t1: T1, t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredAtMorningWithPunc = partialRight(format, 'Fred', 'morning', partialRight.placeholder);
- * greetFredAtMorningWithPunc('Hi', '!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, arg3: T3, plc4: __): (t1: T1, t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the first three arguments pre-filled and a placeholder for the fourth.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {__} plc4 The placeholder for the fourth argument
- * @returns {(t4: T4) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredAtMorningWithPunc = partialRight(format, 'Hi', 'Fred', 'morning', partialRight.placeholder);
- * hiToFredAtMorningWithPunc('!'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, arg3: T3, plc4: __): (t4: T4) => R;
-/**
- * Creates a function that invokes the provided function with the fourth argument pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const withExclamation = partialRight(format, '!');
- * withExclamation('Hi', 'Fred', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg4: T4): (t1: T1, t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t2: T2, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiWithExclamation = partialRight(format, 'Hi', partialRight.placeholder, partialRight.placeholder, '!');
- * hiWithExclamation('Fred', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, plc3: __, arg4: T4): (t2: T2, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the second and fourth arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredWithTime = partialRight(format, 'Fred', partialRight.placeholder, '!');
- * greetFredWithTime('Hi', 'morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, plc3: __, arg4: T4): (t1: T1, t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the first, second and fourth arguments pre-filled and a placeholder for the third.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {__} plc3 The placeholder for the third argument
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t3: T3) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiToFredWithTime = partialRight(format, 'Hi', 'Fred', partialRight.placeholder, '!');
- * hiToFredWithTime('morning'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, plc3: __, arg4: T4): (t3: T3) => R;
-/**
- * Creates a function that invokes the provided function with the third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1, t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const inMorningWithExclamation = partialRight(format, 'morning', '!');
- * inMorningWithExclamation('Hi', 'Fred'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg3: T3, arg4: T4): (t1: T1, t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the first, third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {__} plc2 The placeholder for the second argument
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t2: T2) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const hiInMorningWithExclamation = partialRight(format, 'Hi', partialRight.placeholder, 'morning', '!');
- * hiInMorningWithExclamation('Fred'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, plc2: __, arg3: T3, arg4: T4): (t2: T2) => R;
-/**
- * Creates a function that invokes the provided function with the second, third and fourth arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {(t1: T1) => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const greetFredInMorningWithExclamation = partialRight(format, 'Fred', 'morning', '!');
- * greetFredInMorningWithExclamation('Hi'); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg2: T2, arg3: T3, arg4: T4): (t1: T1) => R;
-/**
- * Creates a function that invokes the provided function with all arguments pre-filled.
- *
- * @template T1 The type of the first argument
- * @template T2 The type of the second argument
- * @template T3 The type of the third argument
- * @template T4 The type of the fourth argument
- * @template R The return type of the function
- * @param {(t1: T1, t2: T2, t3: T3, t4: T4) => R} func The function to partially apply
- * @param {T1} arg1 The first argument to pre-fill
- * @param {T2} arg2 The second argument to pre-fill
- * @param {T3} arg3 The third argument to pre-fill
- * @param {T4} arg4 The fourth argument to pre-fill
- * @returns {() => R} Returns the new partially applied function
- *
- * @example
- * const format = (greeting: string, name: string, time: string, punctuation: string) =>
- *   `${greeting} ${name}, it's ${time}${punctuation}`;
- * const sayHiToFredInMorningWithExclamation = partialRight(format, 'Hi', 'Fred', 'morning', '!');
- * sayHiToFredInMorningWithExclamation(); // => 'Hi Fred, it's morning!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: T4): () => R;
-/**
- * Creates a function that invokes the provided function with partially applied arguments appended to the arguments it receives.
- * The partialRight.placeholder value can be used as a placeholder for partially applied arguments.
- *
- * @template F The type of the function to partially apply
- * @param {F} func The function to partially apply arguments to
- * @param {...any[]} args The arguments to be partially applied
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new partially applied function
- *
- * @example
- * function greet(greeting: string, name: string) {
- *   return greeting + ' ' + name;
- * }
- *
- * const greetFred = partialRight(greet, 'Fred');
- * greetFred('Hi'); // => 'Hi Fred'
- *
- * // Using placeholders
- * const sayHelloTo = partialRight(greet, 'Hello', partialRight.placeholder);
- * sayHelloTo('Fred'); // => 'Hello Fred'
- */
-declare function partialRight(func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
-declare namespace partialRight {
-    var placeholder: Placeholder;
-}
-type Placeholder = symbol | (((value: any) => any) & {
-    partialRight: typeof partialRight;
-});
-
-export { partialRight };
Index: de_modules/es-toolkit/dist/compat/function/partialRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partialRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const partialRight$1 = require('../../function/partialRight.js');
-
-function partialRight(func, ...partialArgs) {
-    return partialRight$1.partialRightImpl(func, partialRight.placeholder, ...partialArgs);
-}
-partialRight.placeholder = Symbol('compat.partialRight.placeholder');
-
-exports.partialRight = partialRight;
Index: de_modules/es-toolkit/dist/compat/function/partialRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/partialRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { partialRightImpl } from '../../function/partialRight.mjs';
-
-function partialRight(func, ...partialArgs) {
-    return partialRightImpl(func, partialRight.placeholder, ...partialArgs);
-}
-partialRight.placeholder = Symbol('compat.partialRight.placeholder');
-
-export { partialRight };
Index: de_modules/es-toolkit/dist/compat/function/rearg.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rearg.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Creates a function that invokes `func` with arguments arranged according to the specified `indices`
- * where the argument value at the first index is provided as the first argument,
- * the argument value at the second index is provided as the second argument, and so on.
- *
- * @param {(...args: any[]) => any} func The function to rearrange arguments for.
- * @param {Array<number | number[]>} indices The arranged argument indices.
- * @returns {(...args: any[]) => any} Returns the new function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const rearrangedGreet = rearg(greet, 1, 0);
- * console.log(rearrangedGreet('World', 'Hello')); // Output: "Hello, World!"
- */
-declare function rearg(func: (...args: any[]) => any, ...indices: Array<Many<number>>): (...args: any[]) => any;
-
-export { rearg };
Index: de_modules/es-toolkit/dist/compat/function/rearg.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rearg.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Creates a function that invokes `func` with arguments arranged according to the specified `indices`
- * where the argument value at the first index is provided as the first argument,
- * the argument value at the second index is provided as the second argument, and so on.
- *
- * @param {(...args: any[]) => any} func The function to rearrange arguments for.
- * @param {Array<number | number[]>} indices The arranged argument indices.
- * @returns {(...args: any[]) => any} Returns the new function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const rearrangedGreet = rearg(greet, 1, 0);
- * console.log(rearrangedGreet('World', 'Hello')); // Output: "Hello, World!"
- */
-declare function rearg(func: (...args: any[]) => any, ...indices: Array<Many<number>>): (...args: any[]) => any;
-
-export { rearg };
Index: de_modules/es-toolkit/dist/compat/function/rearg.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rearg.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flatten = require('../array/flatten.js');
-
-function rearg(func, ...indices) {
-    const flattenIndices = flatten.flatten(indices);
-    return function (...args) {
-        const reorderedArgs = flattenIndices.map(i => args[i]).slice(0, args.length);
-        for (let i = reorderedArgs.length; i < args.length; i++) {
-            reorderedArgs.push(args[i]);
-        }
-        return func.apply(this, reorderedArgs);
-    };
-}
-
-exports.rearg = rearg;
Index: de_modules/es-toolkit/dist/compat/function/rearg.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rearg.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { flatten } from '../array/flatten.mjs';
-
-function rearg(func, ...indices) {
-    const flattenIndices = flatten(indices);
-    return function (...args) {
-        const reorderedArgs = flattenIndices.map(i => args[i]).slice(0, args.length);
-        for (let i = reorderedArgs.length; i < args.length; i++) {
-            reorderedArgs.push(args[i]);
-        }
-        return func.apply(this, reorderedArgs);
-    };
-}
-
-export { rearg };
Index: de_modules/es-toolkit/dist/compat/function/rest.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rest.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Creates a function that transforms the arguments of the provided function `func`.
- * The transformed arguments are passed to `func` such that the arguments starting from a specified index
- * are grouped into an array, while the previous arguments are passed as individual elements.
- *
- * @param {(...args: any[]) => any} func - The function whose arguments are to be transformed.
- * @param {number} [start=func.length - 1] - The index from which to start grouping the remaining arguments into an array.
- *                                            Defaults to `func.length - 1`, grouping all arguments after the last parameter.
- * @returns {(...args: any[]) => any} A new function that, when called, returns the result of calling `func` with the transformed arguments.
- *
- * The transformed arguments are:
- * - The first `start` arguments as individual elements.
- * - The remaining arguments from index `start` onward grouped into an array.
- * @example
- * function fn(a, b, c) {
- *   return [a, b, c];
- * }
- *
- * // Using default start index (func.length - 1, which is 2 in this case)
- * const transformedFn = rest(fn);
- * console.log(transformedFn(1, 2, 3, 4)); // [1, 2, [3, 4]]
- *
- * // Using start index 1
- * const transformedFnWithStart = rest(fn, 1);
- * console.log(transformedFnWithStart(1, 2, 3, 4)); // [1, [2, 3, 4]]
- *
- * // With fewer arguments than the start index
- * console.log(transformedFn(1)); // [1, undefined, []]
- */
-declare function rest(func: (...args: any[]) => any, start?: number): (...args: any[]) => any;
-
-export { rest };
Index: de_modules/es-toolkit/dist/compat/function/rest.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rest.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Creates a function that transforms the arguments of the provided function `func`.
- * The transformed arguments are passed to `func` such that the arguments starting from a specified index
- * are grouped into an array, while the previous arguments are passed as individual elements.
- *
- * @param {(...args: any[]) => any} func - The function whose arguments are to be transformed.
- * @param {number} [start=func.length - 1] - The index from which to start grouping the remaining arguments into an array.
- *                                            Defaults to `func.length - 1`, grouping all arguments after the last parameter.
- * @returns {(...args: any[]) => any} A new function that, when called, returns the result of calling `func` with the transformed arguments.
- *
- * The transformed arguments are:
- * - The first `start` arguments as individual elements.
- * - The remaining arguments from index `start` onward grouped into an array.
- * @example
- * function fn(a, b, c) {
- *   return [a, b, c];
- * }
- *
- * // Using default start index (func.length - 1, which is 2 in this case)
- * const transformedFn = rest(fn);
- * console.log(transformedFn(1, 2, 3, 4)); // [1, 2, [3, 4]]
- *
- * // Using start index 1
- * const transformedFnWithStart = rest(fn, 1);
- * console.log(transformedFnWithStart(1, 2, 3, 4)); // [1, [2, 3, 4]]
- *
- * // With fewer arguments than the start index
- * console.log(transformedFn(1)); // [1, undefined, []]
- */
-declare function rest(func: (...args: any[]) => any, start?: number): (...args: any[]) => any;
-
-export { rest };
Index: de_modules/es-toolkit/dist/compat/function/rest.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const rest$1 = require('../../function/rest.js');
-
-function rest(func, start = func.length - 1) {
-    start = Number.parseInt(start, 10);
-    if (Number.isNaN(start) || start < 0) {
-        start = func.length - 1;
-    }
-    return rest$1.rest(func, start);
-}
-
-exports.rest = rest;
Index: de_modules/es-toolkit/dist/compat/function/rest.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/rest.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { rest as rest$1 } from '../../function/rest.mjs';
-
-function rest(func, start = func.length - 1) {
-    start = Number.parseInt(start, 10);
-    if (Number.isNaN(start) || start < 0) {
-        start = func.length - 1;
-    }
-    return rest$1(func, start);
-}
-
-export { rest };
Index: de_modules/es-toolkit/dist/compat/function/spread.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/spread.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/**
- * Creates a new function that spreads elements of an array argument into individual arguments
- * for the original function. The array argument is positioned based on the `argsIndex` parameter.
- *
- * @template F - A function type with any number of parameters and any return type.
- * @param {F} func - The function to be transformed. It can be any function with any number of arguments.
- * @param {number} [argsIndex=0] - The index where the array argument is positioned among the other arguments.
- *   If `argsIndex` is negative or `NaN`, it defaults to `0`. If it's a fractional number, it is rounded to the nearest integer.
- * @returns {(...args: any[]) => ReturnType<F>} - A new function that takes multiple arguments, including an array of arguments at the specified `argsIndex`,
- *   and returns the result of calling the original function with those arguments.
- *
- * @example
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * const spreadAdd = spread(add);
- * console.log(spreadAdd([1, 2])); // Output: 3
- *
- * @example
- * // Example function to spread arguments over
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * // Create a new function that uses `spread` to combine arguments
- * const spreadAdd = spread(add, 1);
- *
- * // Calling `spreadAdd` with an array as the second argument
- * console.log(spreadAdd(1, [2])); // Output: 3
- *
- * @example
- * // Function with default arguments
- * function greet(name, greeting = 'Hello') {
- *   return `${greeting}, ${name}!`;
- * }
- *
- * // Create a new function that uses `spread` to position the argument array at index 0
- * const spreadGreet = spread(greet, 0);
- *
- * // Calling `spreadGreet` with an array of arguments
- * console.log(spreadGreet(['Alice'])); // Output: Hello, Alice!
- * console.log(spreadGreet(['Bob', 'Hi'])); // Output: Hi, Bob!
- */
-declare function spread<R>(func: (...args: any[]) => R, argsIndex?: number): (...args: any[]) => R;
-
-export { spread };
Index: de_modules/es-toolkit/dist/compat/function/spread.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/spread.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/**
- * Creates a new function that spreads elements of an array argument into individual arguments
- * for the original function. The array argument is positioned based on the `argsIndex` parameter.
- *
- * @template F - A function type with any number of parameters and any return type.
- * @param {F} func - The function to be transformed. It can be any function with any number of arguments.
- * @param {number} [argsIndex=0] - The index where the array argument is positioned among the other arguments.
- *   If `argsIndex` is negative or `NaN`, it defaults to `0`. If it's a fractional number, it is rounded to the nearest integer.
- * @returns {(...args: any[]) => ReturnType<F>} - A new function that takes multiple arguments, including an array of arguments at the specified `argsIndex`,
- *   and returns the result of calling the original function with those arguments.
- *
- * @example
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * const spreadAdd = spread(add);
- * console.log(spreadAdd([1, 2])); // Output: 3
- *
- * @example
- * // Example function to spread arguments over
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * // Create a new function that uses `spread` to combine arguments
- * const spreadAdd = spread(add, 1);
- *
- * // Calling `spreadAdd` with an array as the second argument
- * console.log(spreadAdd(1, [2])); // Output: 3
- *
- * @example
- * // Function with default arguments
- * function greet(name, greeting = 'Hello') {
- *   return `${greeting}, ${name}!`;
- * }
- *
- * // Create a new function that uses `spread` to position the argument array at index 0
- * const spreadGreet = spread(greet, 0);
- *
- * // Calling `spreadGreet` with an array of arguments
- * console.log(spreadGreet(['Alice'])); // Output: Hello, Alice!
- * console.log(spreadGreet(['Bob', 'Hi'])); // Output: Hi, Bob!
- */
-declare function spread<R>(func: (...args: any[]) => R, argsIndex?: number): (...args: any[]) => R;
-
-export { spread };
Index: de_modules/es-toolkit/dist/compat/function/spread.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/spread.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function spread(func, argsIndex = 0) {
-    argsIndex = Number.parseInt(argsIndex, 10);
-    if (Number.isNaN(argsIndex) || argsIndex < 0) {
-        argsIndex = 0;
-    }
-    return function (...args) {
-        const array = args[argsIndex];
-        const params = args.slice(0, argsIndex);
-        if (array) {
-            params.push(...array);
-        }
-        return func.apply(this, params);
-    };
-}
-
-exports.spread = spread;
Index: de_modules/es-toolkit/dist/compat/function/spread.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/spread.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-function spread(func, argsIndex = 0) {
-    argsIndex = Number.parseInt(argsIndex, 10);
-    if (Number.isNaN(argsIndex) || argsIndex < 0) {
-        argsIndex = 0;
-    }
-    return function (...args) {
-        const array = args[argsIndex];
-        const params = args.slice(0, argsIndex);
-        if (array) {
-            params.push(...array);
-        }
-        return func.apply(this, params);
-    };
-}
-
-export { spread };
Index: de_modules/es-toolkit/dist/compat/function/throttle.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/throttle.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import { DebouncedFuncLeading, DebouncedFunc } from './debounce.mjs';
-
-interface ThrottleSettings {
-    /**
-     * If `true`, the function will be invoked on the leading edge of the timeout.
-     * @default true
-     */
-    leading?: boolean | undefined;
-    /**
-     * If `true`, the function will be invoked on the trailing edge of the timeout.
-     * @default true
-     */
-    trailing?: boolean | undefined;
-}
-type ThrottleSettingsLeading = (ThrottleSettings & {
-    leading: true;
-}) | Omit<ThrottleSettings, 'leading'>;
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @param {ThrottleOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the throttled function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<T extends (...args: any) => any>(func: T, throttleMs?: number, options?: ThrottleSettingsLeading): DebouncedFuncLeading<T>;
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @param {ThrottleOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the throttled function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<T extends (...args: any) => any>(func: T, throttleMs?: number, options?: ThrottleSettings): DebouncedFunc<T>;
-
-export { throttle };
Index: de_modules/es-toolkit/dist/compat/function/throttle.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/throttle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import { DebouncedFuncLeading, DebouncedFunc } from './debounce.js';
-
-interface ThrottleSettings {
-    /**
-     * If `true`, the function will be invoked on the leading edge of the timeout.
-     * @default true
-     */
-    leading?: boolean | undefined;
-    /**
-     * If `true`, the function will be invoked on the trailing edge of the timeout.
-     * @default true
-     */
-    trailing?: boolean | undefined;
-}
-type ThrottleSettingsLeading = (ThrottleSettings & {
-    leading: true;
-}) | Omit<ThrottleSettings, 'leading'>;
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @param {ThrottleOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the throttled function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<T extends (...args: any) => any>(func: T, throttleMs?: number, options?: ThrottleSettingsLeading): DebouncedFuncLeading<T>;
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @param {ThrottleOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the throttled function.
- * @param {boolean} options.leading - If `true`, the function will be invoked on the leading edge of the timeout.
- * @param {boolean} options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<T extends (...args: any) => any>(func: T, throttleMs?: number, options?: ThrottleSettings): DebouncedFunc<T>;
-
-export { throttle };
Index: de_modules/es-toolkit/dist/compat/function/throttle.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/throttle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const debounce = require('./debounce.js');
-
-function throttle(func, throttleMs = 0, options = {}) {
-    const { leading = true, trailing = true } = options;
-    return debounce.debounce(func, throttleMs, {
-        leading,
-        maxWait: throttleMs,
-        trailing,
-    });
-}
-
-exports.throttle = throttle;
Index: de_modules/es-toolkit/dist/compat/function/throttle.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/throttle.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { debounce } from './debounce.mjs';
-
-function throttle(func, throttleMs = 0, options = {}) {
-    const { leading = true, trailing = true } = options;
-    return debounce(func, throttleMs, {
-        leading,
-        maxWait: throttleMs,
-        trailing,
-    });
-}
-
-export { throttle };
Index: de_modules/es-toolkit/dist/compat/function/unary.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/unary.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that accepts up to one argument, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a, b, c) {
- *   console.log(arguments);
- * }
- *
- * unary(fn)(1, 2, 3); // [Arguments] { '0': 1 }
- */
-declare function unary<T, U>(func: (arg1: T, ...args: any[]) => U): (arg1: T) => U;
-
-export { unary };
Index: de_modules/es-toolkit/dist/compat/function/unary.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/unary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that accepts up to one argument, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a, b, c) {
- *   console.log(arguments);
- * }
- *
- * unary(fn)(1, 2, 3); // [Arguments] { '0': 1 }
- */
-declare function unary<T, U>(func: (arg1: T, ...args: any[]) => U): (arg1: T) => U;
-
-export { unary };
Index: de_modules/es-toolkit/dist/compat/function/unary.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/unary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const ary = require('./ary.js');
-
-function unary(func) {
-    return ary.ary(func, 1);
-}
-
-exports.unary = unary;
Index: de_modules/es-toolkit/dist/compat/function/unary.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/unary.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { ary } from './ary.mjs';
-
-function unary(func) {
-    return ary(func, 1);
-}
-
-export { unary };
Index: de_modules/es-toolkit/dist/compat/function/wrap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/wrap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a new function that wraps the given function `func`.
- * In this process, you can apply additional logic defined in the `wrapper` function before and after the execution of the original function.
- *
- * If a `value` is provided instead of a function, this value is passed as the first argument to the `wrapper` function.
- *
- * @template T - The type of the value being wrapped.
- * @template U - The type of the arguments being passed to the `wrapper` function.
- * @template V - The type of the return value of the `wrapper` function.
- * @param {T} value - The value to be wrapped.
- * @param {(value: T, ...args: U[]) => V} wrapper - The function to wrap the value with.
- * @returns {(...args: U[]) => V} A new function that wraps the value with the `wrapper` function.
- *
- * @example
- * // Wrap a function
- * const greet = (name: string) => `Hi, ${name}`;
- * const wrapped = wrap(greet, (value, name) => `[LOG] ${value(name)}`);
- * wrapped('Bob'); // => "[LOG] Hi, Bob"
- *
- * @example
- * // Wrap a primitive value
- * const wrapped = wrap('value', v => `<p>${v}</p>`);
- * wrapped(); // => "<p>value</p>"
- */
-declare function wrap<T, U, V>(value: T, wrapper: (value: T, ...args: U[]) => V): (...args: U[]) => V;
-
-export { wrap };
Index: de_modules/es-toolkit/dist/compat/function/wrap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/function/wrap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Creates a new function that wraps the given function `func`.
- * In this process, you can apply additional logic defined in the `wrapper` function before and after the execution of the original function.
- *
- * If a `value` is provided instead of a function, this value is passed as the first argument to the `wrapper` function.
- *
- * @template T - The type of the value being wrapped.
- * @template U - The type of the arguments being passed to the `wrapper` function.
- * @template V - The type of the return value of the `wrapper` function.
- * @param {T} value - The value to be wrapped.
- * @param {(value: T, ...args: U[]) => V} wrapper - The function to wrap the value with.
- * @returns {(...args: U[]) => V} A new function that wraps the value with the `wrapper` function.
- *
- * @example
- * // Wrap a function
- * const greet = (name: string) => `Hi, ${name}`;
- * const wrapped = wrap(greet, (value, name) => `[LOG] ${value(name)}`);
- * wrapped('Bob'); // => "[LOG] Hi, Bob"
- *
- * @example
- * // Wrap a primitive value
- * const wrapped = wrap('value', v => `<p>${v}</p>`);
- * wrapped(); // => "<p>value</p>"
- */
-declare function wrap<T, U, V>(value: T, wrapper: (value: T, ...args: U[]) => V): (...args: U[]) => V;
-
-export { wrap };
Index: de_modules/es-toolkit/dist/compat/function/wrap.js
===================================================================
--- node_modules/es-toolkit/dist/compat/function/wrap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isFunction = require('../../predicate/isFunction.js');
-
-function wrap(value, wrapper) {
-    return function (...args) {
-        const wrapFn = isFunction.isFunction(wrapper) ? wrapper : identity.identity;
-        return wrapFn.apply(this, [value, ...args]);
-    };
-}
-
-exports.wrap = wrap;
Index: de_modules/es-toolkit/dist/compat/function/wrap.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/function/wrap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isFunction } from '../../predicate/isFunction.mjs';
-
-function wrap(value, wrapper) {
-    return function (...args) {
-        const wrapFn = isFunction(wrapper) ? wrapper : identity;
-        return wrapFn.apply(this, [value, ...args]);
-    };
-}
-
-export { wrap };
Index: de_modules/es-toolkit/dist/compat/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,292 +1,0 @@
-export { castArray } from './array/castArray.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { concat } from './array/concat.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { forEach as each, forEach } from './array/forEach.mjs';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.mjs';
-export { every } from './array/every.mjs';
-export { fill } from './array/fill.mjs';
-export { filter } from './array/filter.mjs';
-export { find } from './array/find.mjs';
-export { findIndex } from './array/findIndex.mjs';
-export { findLast } from './array/findLast.mjs';
-export { findLastIndex } from './array/findLastIndex.mjs';
-export { head as first, head } from './array/head.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatMapDepth } from './array/flatMapDepth.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { flattenDepth } from './array/flattenDepth.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { includes } from './array/includes.mjs';
-export { indexOf } from './array/indexOf.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { invokeMap } from './array/invokeMap.mjs';
-export { join } from './array/join.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { lastIndexOf } from './array/lastIndexOf.mjs';
-export { map } from './array/map.mjs';
-export { nth } from './array/nth.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAll } from './array/pullAll.mjs';
-export { pullAllBy } from './array/pullAllBy.mjs';
-export { pullAllWith } from './array/pullAllWith.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduce } from './array/reduce.mjs';
-export { reduceRight } from './array/reduceRight.mjs';
-export { reject } from './array/reject.mjs';
-export { remove } from './array/remove.mjs';
-export { reverse } from './array/reverse.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { size } from './array/size.mjs';
-export { slice } from './array/slice.mjs';
-export { some } from './array/some.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { sortedIndex } from './array/sortedIndex.mjs';
-export { sortedIndexBy } from './array/sortedIndexBy.mjs';
-export { sortedIndexOf } from './array/sortedIndexOf.mjs';
-export { sortedLastIndex } from './array/sortedLastIndex.mjs';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.mjs';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipObjectDeep } from './array/zipObjectDeep.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { attempt } from './function/attempt.mjs';
-export { before } from './function/before.mjs';
-export { bind } from './function/bind.mjs';
-export { bindKey } from './function/bindKey.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { DebouncedFunc, debounce } from './function/debounce.mjs';
-export { defer } from './function/defer.mjs';
-export { delay } from './function/delay.mjs';
-export { flip } from './function/flip.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { nthArg } from './function/nthArg.mjs';
-export { once } from './function/once.mjs';
-export { overArgs } from './function/overArgs.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rearg } from './function/rearg.mjs';
-export { rest } from './function/rest.mjs';
-export { spread } from './function/spread.mjs';
-export { throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { wrap } from './function/wrap.mjs';
-export { add } from './math/add.mjs';
-export { ceil } from './math/ceil.mjs';
-export { clamp } from './math/clamp.mjs';
-export { divide } from './math/divide.mjs';
-export { floor } from './math/floor.mjs';
-export { inRange } from './math/inRange.mjs';
-export { max } from './math/max.mjs';
-export { maxBy } from './math/maxBy.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { min } from './math/min.mjs';
-export { minBy } from './math/minBy.mjs';
-export { multiply } from './math/multiply.mjs';
-export { parseInt } from './math/parseInt.mjs';
-export { random } from './math/random.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { subtract } from './math/subtract.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { isEqual } from '../predicate/isEqual.mjs';
-export { identity } from './function/identity.mjs';
-export { noop } from './function/noop.mjs';
-export { assign } from './object/assign.mjs';
-export { assignIn, assignIn as extend } from './object/assignIn.mjs';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.mjs';
-export { assignWith } from './object/assignWith.mjs';
-export { at } from './object/at.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { cloneWith } from './object/cloneWith.mjs';
-export { create } from './object/create.mjs';
-export { defaults } from './object/defaults.mjs';
-export { defaultsDeep } from './object/defaultsDeep.mjs';
-export { findKey } from './object/findKey.mjs';
-export { findLastKey } from './object/findLastKey.mjs';
-export { forIn } from './object/forIn.mjs';
-export { forInRight } from './object/forInRight.mjs';
-export { forOwn } from './object/forOwn.mjs';
-export { forOwnRight } from './object/forOwnRight.mjs';
-export { fromPairs } from './object/fromPairs.mjs';
-export { functions } from './object/functions.mjs';
-export { functionsIn } from './object/functionsIn.mjs';
-export { get } from './object/get.mjs';
-export { has } from './object/has.mjs';
-export { hasIn } from './object/hasIn.mjs';
-export { invert } from './object/invert.mjs';
-export { invertBy } from './object/invertBy.mjs';
-export { keys } from './object/keys.mjs';
-export { keysIn } from './object/keysIn.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { property } from './object/property.mjs';
-export { propertyOf } from './object/propertyOf.mjs';
-export { result } from './object/result.mjs';
-export { set } from './object/set.mjs';
-export { setWith } from './object/setWith.mjs';
-export { toDefaulted } from './object/toDefaulted.mjs';
-export { toPairs } from './object/toPairs.mjs';
-export { toPairsIn } from './object/toPairsIn.mjs';
-export { transform } from './object/transform.mjs';
-export { unset } from './object/unset.mjs';
-export { update } from './object/update.mjs';
-export { updateWith } from './object/updateWith.mjs';
-export { values } from './object/values.mjs';
-export { valuesIn } from './object/valuesIn.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMatchWith } from './predicate/isMatchWith.mjs';
-export { isNative } from './predicate/isNative.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { conforms } from './predicate/conforms.mjs';
-export { conformsTo } from './predicate/conformsTo.mjs';
-export { isArguments } from './predicate/isArguments.mjs';
-export { isArray } from './predicate/isArray.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isArrayLike } from './predicate/isArrayLike.mjs';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isElement } from './predicate/isElement.mjs';
-export { isEmpty } from './predicate/isEmpty.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFinite } from './predicate/isFinite.mjs';
-export { isInteger } from './predicate/isInteger.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isMatch } from './predicate/isMatch.mjs';
-export { isNaN } from './predicate/isNaN.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isObject } from './predicate/isObject.mjs';
-export { isObjectLike } from './predicate/isObjectLike.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSafeInteger } from './predicate/isSafeInteger.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { matches } from './predicate/matches.mjs';
-export { matchesProperty } from './predicate/matchesProperty.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { bindAll } from './util/bindAll.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { endsWith } from './string/endsWith.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { padEnd } from './string/padEnd.mjs';
-export { padStart } from './string/padStart.mjs';
-export { repeat } from './string/repeat.mjs';
-export { replace } from './string/replace.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { split } from './string/split.mjs';
-export { startCase } from './string/startCase.mjs';
-export { startsWith } from './string/startsWith.mjs';
-export { template, templateSettings } from './string/template.mjs';
-export { toLower } from './string/toLower.mjs';
-export { toUpper } from './string/toUpper.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { truncate } from './string/truncate.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { cond } from './util/cond.mjs';
-export { constant } from './util/constant.mjs';
-export { defaultTo } from './util/defaultTo.mjs';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.mjs';
-export { gt } from './util/gt.mjs';
-export { gte } from './util/gte.mjs';
-export { invoke } from './util/invoke.mjs';
-export { iteratee } from './util/iteratee.mjs';
-export { lt } from './util/lt.mjs';
-export { lte } from './util/lte.mjs';
-export { method } from './util/method.mjs';
-export { methodOf } from './util/methodOf.mjs';
-export { now } from './util/now.mjs';
-export { over } from './util/over.mjs';
-export { overEvery } from './util/overEvery.mjs';
-export { overSome } from './util/overSome.mjs';
-export { stubArray } from './util/stubArray.mjs';
-export { stubFalse } from './util/stubFalse.mjs';
-export { stubObject } from './util/stubObject.mjs';
-export { stubString } from './util/stubString.mjs';
-export { stubTrue } from './util/stubTrue.mjs';
-export { times } from './util/times.mjs';
-export { toArray } from './util/toArray.mjs';
-export { toFinite } from './util/toFinite.mjs';
-export { toInteger } from './util/toInteger.mjs';
-export { toLength } from './util/toLength.mjs';
-export { toNumber } from './util/toNumber.mjs';
-export { toPath } from './util/toPath.mjs';
-export { toPlainObject } from './util/toPlainObject.mjs';
-export { toSafeInteger } from './util/toSafeInteger.mjs';
-export { toString } from './util/toString.mjs';
-export { uniqueId } from './util/uniqueId.mjs';
-export { toolkit as default } from './toolkit.mjs';
Index: de_modules/es-toolkit/dist/compat/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,292 +1,0 @@
-export { castArray } from './array/castArray.js';
-export { chunk } from './array/chunk.js';
-export { compact } from './array/compact.js';
-export { concat } from './array/concat.js';
-export { countBy } from './array/countBy.js';
-export { difference } from './array/difference.js';
-export { differenceBy } from './array/differenceBy.js';
-export { differenceWith } from './array/differenceWith.js';
-export { drop } from './array/drop.js';
-export { dropRight } from './array/dropRight.js';
-export { dropRightWhile } from './array/dropRightWhile.js';
-export { dropWhile } from './array/dropWhile.js';
-export { forEach as each, forEach } from './array/forEach.js';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.js';
-export { every } from './array/every.js';
-export { fill } from './array/fill.js';
-export { filter } from './array/filter.js';
-export { find } from './array/find.js';
-export { findIndex } from './array/findIndex.js';
-export { findLast } from './array/findLast.js';
-export { findLastIndex } from './array/findLastIndex.js';
-export { head as first, head } from './array/head.js';
-export { flatMap } from './array/flatMap.js';
-export { flatMapDeep } from './array/flatMapDeep.js';
-export { flatMapDepth } from './array/flatMapDepth.js';
-export { flatten } from './array/flatten.js';
-export { flattenDeep } from './array/flattenDeep.js';
-export { flattenDepth } from './array/flattenDepth.js';
-export { groupBy } from './array/groupBy.js';
-export { includes } from './array/includes.js';
-export { indexOf } from './array/indexOf.js';
-export { initial } from './array/initial.js';
-export { intersection } from './array/intersection.js';
-export { intersectionBy } from './array/intersectionBy.js';
-export { intersectionWith } from './array/intersectionWith.js';
-export { invokeMap } from './array/invokeMap.js';
-export { join } from './array/join.js';
-export { keyBy } from './array/keyBy.js';
-export { last } from './array/last.js';
-export { lastIndexOf } from './array/lastIndexOf.js';
-export { map } from './array/map.js';
-export { nth } from './array/nth.js';
-export { orderBy } from './array/orderBy.js';
-export { partition } from './array/partition.js';
-export { pull } from './array/pull.js';
-export { pullAll } from './array/pullAll.js';
-export { pullAllBy } from './array/pullAllBy.js';
-export { pullAllWith } from './array/pullAllWith.js';
-export { pullAt } from './array/pullAt.js';
-export { reduce } from './array/reduce.js';
-export { reduceRight } from './array/reduceRight.js';
-export { reject } from './array/reject.js';
-export { remove } from './array/remove.js';
-export { reverse } from './array/reverse.js';
-export { sample } from './array/sample.js';
-export { sampleSize } from './array/sampleSize.js';
-export { shuffle } from './array/shuffle.js';
-export { size } from './array/size.js';
-export { slice } from './array/slice.js';
-export { some } from './array/some.js';
-export { sortBy } from './array/sortBy.js';
-export { sortedIndex } from './array/sortedIndex.js';
-export { sortedIndexBy } from './array/sortedIndexBy.js';
-export { sortedIndexOf } from './array/sortedIndexOf.js';
-export { sortedLastIndex } from './array/sortedLastIndex.js';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.js';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.js';
-export { tail } from './array/tail.js';
-export { take } from './array/take.js';
-export { takeRight } from './array/takeRight.js';
-export { takeRightWhile } from './array/takeRightWhile.js';
-export { takeWhile } from './array/takeWhile.js';
-export { union } from './array/union.js';
-export { unionBy } from './array/unionBy.js';
-export { unionWith } from './array/unionWith.js';
-export { uniq } from './array/uniq.js';
-export { uniqBy } from './array/uniqBy.js';
-export { uniqWith } from './array/uniqWith.js';
-export { unzip } from './array/unzip.js';
-export { unzipWith } from './array/unzipWith.js';
-export { without } from './array/without.js';
-export { xor } from './array/xor.js';
-export { xorBy } from './array/xorBy.js';
-export { xorWith } from './array/xorWith.js';
-export { zip } from './array/zip.js';
-export { zipObject } from './array/zipObject.js';
-export { zipObjectDeep } from './array/zipObjectDeep.js';
-export { zipWith } from './array/zipWith.js';
-export { after } from './function/after.js';
-export { ary } from './function/ary.js';
-export { attempt } from './function/attempt.js';
-export { before } from './function/before.js';
-export { bind } from './function/bind.js';
-export { bindKey } from './function/bindKey.js';
-export { curry } from './function/curry.js';
-export { curryRight } from './function/curryRight.js';
-export { DebouncedFunc, debounce } from './function/debounce.js';
-export { defer } from './function/defer.js';
-export { delay } from './function/delay.js';
-export { flip } from './function/flip.js';
-export { flow } from './function/flow.js';
-export { flowRight } from './function/flowRight.js';
-export { memoize } from './function/memoize.js';
-export { negate } from './function/negate.js';
-export { nthArg } from './function/nthArg.js';
-export { once } from './function/once.js';
-export { overArgs } from './function/overArgs.js';
-export { partial } from './function/partial.js';
-export { partialRight } from './function/partialRight.js';
-export { rearg } from './function/rearg.js';
-export { rest } from './function/rest.js';
-export { spread } from './function/spread.js';
-export { throttle } from './function/throttle.js';
-export { unary } from './function/unary.js';
-export { wrap } from './function/wrap.js';
-export { add } from './math/add.js';
-export { ceil } from './math/ceil.js';
-export { clamp } from './math/clamp.js';
-export { divide } from './math/divide.js';
-export { floor } from './math/floor.js';
-export { inRange } from './math/inRange.js';
-export { max } from './math/max.js';
-export { maxBy } from './math/maxBy.js';
-export { mean } from './math/mean.js';
-export { meanBy } from './math/meanBy.js';
-export { min } from './math/min.js';
-export { minBy } from './math/minBy.js';
-export { multiply } from './math/multiply.js';
-export { parseInt } from './math/parseInt.js';
-export { random } from './math/random.js';
-export { range } from './math/range.js';
-export { rangeRight } from './math/rangeRight.js';
-export { round } from './math/round.js';
-export { subtract } from './math/subtract.js';
-export { sum } from './math/sum.js';
-export { sumBy } from './math/sumBy.js';
-export { isEqual } from '../predicate/isEqual.js';
-export { identity } from './function/identity.js';
-export { noop } from './function/noop.js';
-export { assign } from './object/assign.js';
-export { assignIn, assignIn as extend } from './object/assignIn.js';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.js';
-export { assignWith } from './object/assignWith.js';
-export { at } from './object/at.js';
-export { clone } from './object/clone.js';
-export { cloneDeep } from './object/cloneDeep.js';
-export { cloneDeepWith } from './object/cloneDeepWith.js';
-export { cloneWith } from './object/cloneWith.js';
-export { create } from './object/create.js';
-export { defaults } from './object/defaults.js';
-export { defaultsDeep } from './object/defaultsDeep.js';
-export { findKey } from './object/findKey.js';
-export { findLastKey } from './object/findLastKey.js';
-export { forIn } from './object/forIn.js';
-export { forInRight } from './object/forInRight.js';
-export { forOwn } from './object/forOwn.js';
-export { forOwnRight } from './object/forOwnRight.js';
-export { fromPairs } from './object/fromPairs.js';
-export { functions } from './object/functions.js';
-export { functionsIn } from './object/functionsIn.js';
-export { get } from './object/get.js';
-export { has } from './object/has.js';
-export { hasIn } from './object/hasIn.js';
-export { invert } from './object/invert.js';
-export { invertBy } from './object/invertBy.js';
-export { keys } from './object/keys.js';
-export { keysIn } from './object/keysIn.js';
-export { mapKeys } from './object/mapKeys.js';
-export { mapValues } from './object/mapValues.js';
-export { merge } from './object/merge.js';
-export { mergeWith } from './object/mergeWith.js';
-export { omit } from './object/omit.js';
-export { omitBy } from './object/omitBy.js';
-export { pick } from './object/pick.js';
-export { pickBy } from './object/pickBy.js';
-export { property } from './object/property.js';
-export { propertyOf } from './object/propertyOf.js';
-export { result } from './object/result.js';
-export { set } from './object/set.js';
-export { setWith } from './object/setWith.js';
-export { toDefaulted } from './object/toDefaulted.js';
-export { toPairs } from './object/toPairs.js';
-export { toPairsIn } from './object/toPairsIn.js';
-export { transform } from './object/transform.js';
-export { unset } from './object/unset.js';
-export { update } from './object/update.js';
-export { updateWith } from './object/updateWith.js';
-export { values } from './object/values.js';
-export { valuesIn } from './object/valuesIn.js';
-export { isFunction } from './predicate/isFunction.js';
-export { isLength } from './predicate/isLength.js';
-export { isMatchWith } from './predicate/isMatchWith.js';
-export { isNative } from './predicate/isNative.js';
-export { isNull } from './predicate/isNull.js';
-export { isUndefined } from './predicate/isUndefined.js';
-export { conforms } from './predicate/conforms.js';
-export { conformsTo } from './predicate/conformsTo.js';
-export { isArguments } from './predicate/isArguments.js';
-export { isArray } from './predicate/isArray.js';
-export { isArrayBuffer } from './predicate/isArrayBuffer.js';
-export { isArrayLike } from './predicate/isArrayLike.js';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.js';
-export { isBoolean } from './predicate/isBoolean.js';
-export { isBuffer } from './predicate/isBuffer.js';
-export { isDate } from './predicate/isDate.js';
-export { isElement } from './predicate/isElement.js';
-export { isEmpty } from './predicate/isEmpty.js';
-export { isEqualWith } from './predicate/isEqualWith.js';
-export { isError } from './predicate/isError.js';
-export { isFinite } from './predicate/isFinite.js';
-export { isInteger } from './predicate/isInteger.js';
-export { isMap } from './predicate/isMap.js';
-export { isMatch } from './predicate/isMatch.js';
-export { isNaN } from './predicate/isNaN.js';
-export { isNil } from './predicate/isNil.js';
-export { isNumber } from './predicate/isNumber.js';
-export { isObject } from './predicate/isObject.js';
-export { isObjectLike } from './predicate/isObjectLike.js';
-export { isPlainObject } from './predicate/isPlainObject.js';
-export { isRegExp } from './predicate/isRegExp.js';
-export { isSafeInteger } from './predicate/isSafeInteger.js';
-export { isSet } from './predicate/isSet.js';
-export { isString } from './predicate/isString.js';
-export { isSymbol } from './predicate/isSymbol.js';
-export { isTypedArray } from './predicate/isTypedArray.js';
-export { isWeakMap } from './predicate/isWeakMap.js';
-export { isWeakSet } from './predicate/isWeakSet.js';
-export { matches } from './predicate/matches.js';
-export { matchesProperty } from './predicate/matchesProperty.js';
-export { capitalize } from './string/capitalize.js';
-export { bindAll } from './util/bindAll.js';
-export { camelCase } from './string/camelCase.js';
-export { deburr } from './string/deburr.js';
-export { endsWith } from './string/endsWith.js';
-export { escape } from './string/escape.js';
-export { escapeRegExp } from './string/escapeRegExp.js';
-export { kebabCase } from './string/kebabCase.js';
-export { lowerCase } from './string/lowerCase.js';
-export { lowerFirst } from './string/lowerFirst.js';
-export { pad } from './string/pad.js';
-export { padEnd } from './string/padEnd.js';
-export { padStart } from './string/padStart.js';
-export { repeat } from './string/repeat.js';
-export { replace } from './string/replace.js';
-export { snakeCase } from './string/snakeCase.js';
-export { split } from './string/split.js';
-export { startCase } from './string/startCase.js';
-export { startsWith } from './string/startsWith.js';
-export { template, templateSettings } from './string/template.js';
-export { toLower } from './string/toLower.js';
-export { toUpper } from './string/toUpper.js';
-export { trim } from './string/trim.js';
-export { trimEnd } from './string/trimEnd.js';
-export { trimStart } from './string/trimStart.js';
-export { truncate } from './string/truncate.js';
-export { unescape } from './string/unescape.js';
-export { upperCase } from './string/upperCase.js';
-export { upperFirst } from './string/upperFirst.js';
-export { words } from './string/words.js';
-export { cond } from './util/cond.js';
-export { constant } from './util/constant.js';
-export { defaultTo } from './util/defaultTo.js';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.js';
-export { gt } from './util/gt.js';
-export { gte } from './util/gte.js';
-export { invoke } from './util/invoke.js';
-export { iteratee } from './util/iteratee.js';
-export { lt } from './util/lt.js';
-export { lte } from './util/lte.js';
-export { method } from './util/method.js';
-export { methodOf } from './util/methodOf.js';
-export { now } from './util/now.js';
-export { over } from './util/over.js';
-export { overEvery } from './util/overEvery.js';
-export { overSome } from './util/overSome.js';
-export { stubArray } from './util/stubArray.js';
-export { stubFalse } from './util/stubFalse.js';
-export { stubObject } from './util/stubObject.js';
-export { stubString } from './util/stubString.js';
-export { stubTrue } from './util/stubTrue.js';
-export { times } from './util/times.js';
-export { toArray } from './util/toArray.js';
-export { toFinite } from './util/toFinite.js';
-export { toInteger } from './util/toInteger.js';
-export { toLength } from './util/toLength.js';
-export { toNumber } from './util/toNumber.js';
-export { toPath } from './util/toPath.js';
-export { toPlainObject } from './util/toPlainObject.js';
-export { toSafeInteger } from './util/toSafeInteger.js';
-export { toString } from './util/toString.js';
-export { uniqueId } from './util/uniqueId.js';
-export { toolkit as default } from './toolkit.js';
Index: de_modules/es-toolkit/dist/compat/index.js
===================================================================
--- node_modules/es-toolkit/dist/compat/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,597 +1,0 @@
-'use strict';
-
-Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
-
-const castArray = require('./array/castArray.js');
-const chunk = require('./array/chunk.js');
-const compact = require('./array/compact.js');
-const concat = require('./array/concat.js');
-const countBy = require('./array/countBy.js');
-const difference = require('./array/difference.js');
-const differenceBy = require('./array/differenceBy.js');
-const differenceWith = require('./array/differenceWith.js');
-const drop = require('./array/drop.js');
-const dropRight = require('./array/dropRight.js');
-const dropRightWhile = require('./array/dropRightWhile.js');
-const dropWhile = require('./array/dropWhile.js');
-const forEach = require('./array/forEach.js');
-const forEachRight = require('./array/forEachRight.js');
-const every = require('./array/every.js');
-const fill = require('./array/fill.js');
-const filter = require('./array/filter.js');
-const find = require('./array/find.js');
-const findIndex = require('./array/findIndex.js');
-const findLast = require('./array/findLast.js');
-const findLastIndex = require('./array/findLastIndex.js');
-const head = require('./array/head.js');
-const flatMap = require('./array/flatMap.js');
-const flatMapDeep = require('./array/flatMapDeep.js');
-const flatMapDepth = require('./array/flatMapDepth.js');
-const flatten = require('./array/flatten.js');
-const flattenDeep = require('./array/flattenDeep.js');
-const flattenDepth = require('./array/flattenDepth.js');
-const groupBy = require('./array/groupBy.js');
-const includes = require('./array/includes.js');
-const indexOf = require('./array/indexOf.js');
-const initial = require('./array/initial.js');
-const intersection = require('./array/intersection.js');
-const intersectionBy = require('./array/intersectionBy.js');
-const intersectionWith = require('./array/intersectionWith.js');
-const invokeMap = require('./array/invokeMap.js');
-const join = require('./array/join.js');
-const keyBy = require('./array/keyBy.js');
-const last = require('./array/last.js');
-const lastIndexOf = require('./array/lastIndexOf.js');
-const map = require('./array/map.js');
-const nth = require('./array/nth.js');
-const orderBy = require('./array/orderBy.js');
-const partition = require('./array/partition.js');
-const pull = require('./array/pull.js');
-const pullAll = require('./array/pullAll.js');
-const pullAllBy = require('./array/pullAllBy.js');
-const pullAllWith = require('./array/pullAllWith.js');
-const pullAt = require('./array/pullAt.js');
-const reduce = require('./array/reduce.js');
-const reduceRight = require('./array/reduceRight.js');
-const reject = require('./array/reject.js');
-const remove = require('./array/remove.js');
-const reverse = require('./array/reverse.js');
-const sample = require('./array/sample.js');
-const sampleSize = require('./array/sampleSize.js');
-const shuffle = require('./array/shuffle.js');
-const size = require('./array/size.js');
-const slice = require('./array/slice.js');
-const some = require('./array/some.js');
-const sortBy = require('./array/sortBy.js');
-const sortedIndex = require('./array/sortedIndex.js');
-const sortedIndexBy = require('./array/sortedIndexBy.js');
-const sortedIndexOf = require('./array/sortedIndexOf.js');
-const sortedLastIndex = require('./array/sortedLastIndex.js');
-const sortedLastIndexBy = require('./array/sortedLastIndexBy.js');
-const sortedLastIndexOf = require('./array/sortedLastIndexOf.js');
-const tail = require('./array/tail.js');
-const take = require('./array/take.js');
-const takeRight = require('./array/takeRight.js');
-const takeRightWhile = require('./array/takeRightWhile.js');
-const takeWhile = require('./array/takeWhile.js');
-const union = require('./array/union.js');
-const unionBy = require('./array/unionBy.js');
-const unionWith = require('./array/unionWith.js');
-const uniq = require('./array/uniq.js');
-const uniqBy = require('./array/uniqBy.js');
-const uniqWith = require('./array/uniqWith.js');
-const unzip = require('./array/unzip.js');
-const unzipWith = require('./array/unzipWith.js');
-const without = require('./array/without.js');
-const xor = require('./array/xor.js');
-const xorBy = require('./array/xorBy.js');
-const xorWith = require('./array/xorWith.js');
-const zip = require('./array/zip.js');
-const zipObject = require('./array/zipObject.js');
-const zipObjectDeep = require('./array/zipObjectDeep.js');
-const zipWith = require('./array/zipWith.js');
-const after = require('./function/after.js');
-const ary = require('./function/ary.js');
-const attempt = require('./function/attempt.js');
-const before = require('./function/before.js');
-const bind = require('./function/bind.js');
-const bindKey = require('./function/bindKey.js');
-const curry = require('./function/curry.js');
-const curryRight = require('./function/curryRight.js');
-const debounce = require('./function/debounce.js');
-const defer = require('./function/defer.js');
-const delay = require('./function/delay.js');
-const flip = require('./function/flip.js');
-const flow = require('./function/flow.js');
-const flowRight = require('./function/flowRight.js');
-const memoize = require('./function/memoize.js');
-const negate = require('./function/negate.js');
-const nthArg = require('./function/nthArg.js');
-const once = require('./function/once.js');
-const overArgs = require('./function/overArgs.js');
-const partial = require('./function/partial.js');
-const partialRight = require('./function/partialRight.js');
-const rearg = require('./function/rearg.js');
-const rest = require('./function/rest.js');
-const spread = require('./function/spread.js');
-const throttle = require('./function/throttle.js');
-const unary = require('./function/unary.js');
-const wrap = require('./function/wrap.js');
-const add = require('./math/add.js');
-const ceil = require('./math/ceil.js');
-const clamp = require('./math/clamp.js');
-const divide = require('./math/divide.js');
-const floor = require('./math/floor.js');
-const inRange = require('./math/inRange.js');
-const max = require('./math/max.js');
-const maxBy = require('./math/maxBy.js');
-const mean = require('./math/mean.js');
-const meanBy = require('./math/meanBy.js');
-const min = require('./math/min.js');
-const minBy = require('./math/minBy.js');
-const multiply = require('./math/multiply.js');
-const parseInt = require('./math/parseInt.js');
-const random = require('./math/random.js');
-const range = require('./math/range.js');
-const rangeRight = require('./math/rangeRight.js');
-const round = require('./math/round.js');
-const subtract = require('./math/subtract.js');
-const sum = require('./math/sum.js');
-const sumBy = require('./math/sumBy.js');
-const isEqual = require('../predicate/isEqual.js');
-const identity = require('./function/identity.js');
-const noop = require('./function/noop.js');
-const assign = require('./object/assign.js');
-const assignIn = require('./object/assignIn.js');
-const assignInWith = require('./object/assignInWith.js');
-const assignWith = require('./object/assignWith.js');
-const at = require('./object/at.js');
-const clone = require('./object/clone.js');
-const cloneDeep = require('./object/cloneDeep.js');
-const cloneDeepWith = require('./object/cloneDeepWith.js');
-const cloneWith = require('./object/cloneWith.js');
-const create = require('./object/create.js');
-const defaults = require('./object/defaults.js');
-const defaultsDeep = require('./object/defaultsDeep.js');
-const findKey = require('./object/findKey.js');
-const findLastKey = require('./object/findLastKey.js');
-const forIn = require('./object/forIn.js');
-const forInRight = require('./object/forInRight.js');
-const forOwn = require('./object/forOwn.js');
-const forOwnRight = require('./object/forOwnRight.js');
-const fromPairs = require('./object/fromPairs.js');
-const functions = require('./object/functions.js');
-const functionsIn = require('./object/functionsIn.js');
-const get = require('./object/get.js');
-const has = require('./object/has.js');
-const hasIn = require('./object/hasIn.js');
-const invert = require('./object/invert.js');
-const invertBy = require('./object/invertBy.js');
-const keys = require('./object/keys.js');
-const keysIn = require('./object/keysIn.js');
-const mapKeys = require('./object/mapKeys.js');
-const mapValues = require('./object/mapValues.js');
-const merge = require('./object/merge.js');
-const mergeWith = require('./object/mergeWith.js');
-const omit = require('./object/omit.js');
-const omitBy = require('./object/omitBy.js');
-const pick = require('./object/pick.js');
-const pickBy = require('./object/pickBy.js');
-const property = require('./object/property.js');
-const propertyOf = require('./object/propertyOf.js');
-const result = require('./object/result.js');
-const set = require('./object/set.js');
-const setWith = require('./object/setWith.js');
-const toDefaulted = require('./object/toDefaulted.js');
-const toPairs = require('./object/toPairs.js');
-const toPairsIn = require('./object/toPairsIn.js');
-const transform = require('./object/transform.js');
-const unset = require('./object/unset.js');
-const update = require('./object/update.js');
-const updateWith = require('./object/updateWith.js');
-const values = require('./object/values.js');
-const valuesIn = require('./object/valuesIn.js');
-const isFunction = require('./predicate/isFunction.js');
-const isLength = require('./predicate/isLength.js');
-const isMatchWith = require('./predicate/isMatchWith.js');
-const isNative = require('./predicate/isNative.js');
-const isNull = require('./predicate/isNull.js');
-const isUndefined = require('./predicate/isUndefined.js');
-const conforms = require('./predicate/conforms.js');
-const conformsTo = require('./predicate/conformsTo.js');
-const isArguments = require('./predicate/isArguments.js');
-const isArray = require('./predicate/isArray.js');
-const isArrayBuffer = require('./predicate/isArrayBuffer.js');
-const isArrayLike = require('./predicate/isArrayLike.js');
-const isArrayLikeObject = require('./predicate/isArrayLikeObject.js');
-const isBoolean = require('./predicate/isBoolean.js');
-const isBuffer = require('./predicate/isBuffer.js');
-const isDate = require('./predicate/isDate.js');
-const isElement = require('./predicate/isElement.js');
-const isEmpty = require('./predicate/isEmpty.js');
-const isEqualWith = require('./predicate/isEqualWith.js');
-const isError = require('./predicate/isError.js');
-const isFinite = require('./predicate/isFinite.js');
-const isInteger = require('./predicate/isInteger.js');
-const isMap = require('./predicate/isMap.js');
-const isMatch = require('./predicate/isMatch.js');
-const isNaN = require('./predicate/isNaN.js');
-const isNil = require('./predicate/isNil.js');
-const isNumber = require('./predicate/isNumber.js');
-const isObject = require('./predicate/isObject.js');
-const isObjectLike = require('./predicate/isObjectLike.js');
-const isPlainObject = require('./predicate/isPlainObject.js');
-const isRegExp = require('./predicate/isRegExp.js');
-const isSafeInteger = require('./predicate/isSafeInteger.js');
-const isSet = require('./predicate/isSet.js');
-const isString = require('./predicate/isString.js');
-const isSymbol = require('./predicate/isSymbol.js');
-const isTypedArray = require('./predicate/isTypedArray.js');
-const isWeakMap = require('./predicate/isWeakMap.js');
-const isWeakSet = require('./predicate/isWeakSet.js');
-const matches = require('./predicate/matches.js');
-const matchesProperty = require('./predicate/matchesProperty.js');
-const capitalize = require('./string/capitalize.js');
-const bindAll = require('./util/bindAll.js');
-const camelCase = require('./string/camelCase.js');
-const deburr = require('./string/deburr.js');
-const endsWith = require('./string/endsWith.js');
-const escape = require('./string/escape.js');
-const escapeRegExp = require('./string/escapeRegExp.js');
-const kebabCase = require('./string/kebabCase.js');
-const lowerCase = require('./string/lowerCase.js');
-const lowerFirst = require('./string/lowerFirst.js');
-const pad = require('./string/pad.js');
-const padEnd = require('./string/padEnd.js');
-const padStart = require('./string/padStart.js');
-const repeat = require('./string/repeat.js');
-const replace = require('./string/replace.js');
-const snakeCase = require('./string/snakeCase.js');
-const split = require('./string/split.js');
-const startCase = require('./string/startCase.js');
-const startsWith = require('./string/startsWith.js');
-const template = require('./string/template.js');
-const toLower = require('./string/toLower.js');
-const toUpper = require('./string/toUpper.js');
-const trim = require('./string/trim.js');
-const trimEnd = require('./string/trimEnd.js');
-const trimStart = require('./string/trimStart.js');
-const truncate = require('./string/truncate.js');
-const unescape = require('./string/unescape.js');
-const upperCase = require('./string/upperCase.js');
-const upperFirst = require('./string/upperFirst.js');
-const words = require('./string/words.js');
-const cond = require('./util/cond.js');
-const constant = require('./util/constant.js');
-const defaultTo = require('./util/defaultTo.js');
-const isEqualsSameValueZero = require('../_internal/isEqualsSameValueZero.js');
-const gt = require('./util/gt.js');
-const gte = require('./util/gte.js');
-const invoke = require('./util/invoke.js');
-const iteratee = require('./util/iteratee.js');
-const lt = require('./util/lt.js');
-const lte = require('./util/lte.js');
-const method = require('./util/method.js');
-const methodOf = require('./util/methodOf.js');
-const now = require('./util/now.js');
-const over = require('./util/over.js');
-const overEvery = require('./util/overEvery.js');
-const overSome = require('./util/overSome.js');
-const stubArray = require('./util/stubArray.js');
-const stubFalse = require('./util/stubFalse.js');
-const stubObject = require('./util/stubObject.js');
-const stubString = require('./util/stubString.js');
-const stubTrue = require('./util/stubTrue.js');
-const times = require('./util/times.js');
-const toArray = require('./util/toArray.js');
-const toFinite = require('./util/toFinite.js');
-const toInteger = require('./util/toInteger.js');
-const toLength = require('./util/toLength.js');
-const toNumber = require('./util/toNumber.js');
-const toPath = require('./util/toPath.js');
-const toPlainObject = require('./util/toPlainObject.js');
-const toSafeInteger = require('./util/toSafeInteger.js');
-const toString = require('./util/toString.js');
-const uniqueId = require('./util/uniqueId.js');
-const toolkit = require('./toolkit.js');
-
-
-
-exports.castArray = castArray.castArray;
-exports.chunk = chunk.chunk;
-exports.compact = compact.compact;
-exports.concat = concat.concat;
-exports.countBy = countBy.countBy;
-exports.difference = difference.difference;
-exports.differenceBy = differenceBy.differenceBy;
-exports.differenceWith = differenceWith.differenceWith;
-exports.drop = drop.drop;
-exports.dropRight = dropRight.dropRight;
-exports.dropRightWhile = dropRightWhile.dropRightWhile;
-exports.dropWhile = dropWhile.dropWhile;
-exports.each = forEach.forEach;
-exports.forEach = forEach.forEach;
-exports.eachRight = forEachRight.forEachRight;
-exports.forEachRight = forEachRight.forEachRight;
-exports.every = every.every;
-exports.fill = fill.fill;
-exports.filter = filter.filter;
-exports.find = find.find;
-exports.findIndex = findIndex.findIndex;
-exports.findLast = findLast.findLast;
-exports.findLastIndex = findLastIndex.findLastIndex;
-exports.first = head.head;
-exports.head = head.head;
-exports.flatMap = flatMap.flatMap;
-exports.flatMapDeep = flatMapDeep.flatMapDeep;
-exports.flatMapDepth = flatMapDepth.flatMapDepth;
-exports.flatten = flatten.flatten;
-exports.flattenDeep = flattenDeep.flattenDeep;
-exports.flattenDepth = flattenDepth.flattenDepth;
-exports.groupBy = groupBy.groupBy;
-exports.includes = includes.includes;
-exports.indexOf = indexOf.indexOf;
-exports.initial = initial.initial;
-exports.intersection = intersection.intersection;
-exports.intersectionBy = intersectionBy.intersectionBy;
-exports.intersectionWith = intersectionWith.intersectionWith;
-exports.invokeMap = invokeMap.invokeMap;
-exports.join = join.join;
-exports.keyBy = keyBy.keyBy;
-exports.last = last.last;
-exports.lastIndexOf = lastIndexOf.lastIndexOf;
-exports.map = map.map;
-exports.nth = nth.nth;
-exports.orderBy = orderBy.orderBy;
-exports.partition = partition.partition;
-exports.pull = pull.pull;
-exports.pullAll = pullAll.pullAll;
-exports.pullAllBy = pullAllBy.pullAllBy;
-exports.pullAllWith = pullAllWith.pullAllWith;
-exports.pullAt = pullAt.pullAt;
-exports.reduce = reduce.reduce;
-exports.reduceRight = reduceRight.reduceRight;
-exports.reject = reject.reject;
-exports.remove = remove.remove;
-exports.reverse = reverse.reverse;
-exports.sample = sample.sample;
-exports.sampleSize = sampleSize.sampleSize;
-exports.shuffle = shuffle.shuffle;
-exports.size = size.size;
-exports.slice = slice.slice;
-exports.some = some.some;
-exports.sortBy = sortBy.sortBy;
-exports.sortedIndex = sortedIndex.sortedIndex;
-exports.sortedIndexBy = sortedIndexBy.sortedIndexBy;
-exports.sortedIndexOf = sortedIndexOf.sortedIndexOf;
-exports.sortedLastIndex = sortedLastIndex.sortedLastIndex;
-exports.sortedLastIndexBy = sortedLastIndexBy.sortedLastIndexBy;
-exports.sortedLastIndexOf = sortedLastIndexOf.sortedLastIndexOf;
-exports.tail = tail.tail;
-exports.take = take.take;
-exports.takeRight = takeRight.takeRight;
-exports.takeRightWhile = takeRightWhile.takeRightWhile;
-exports.takeWhile = takeWhile.takeWhile;
-exports.union = union.union;
-exports.unionBy = unionBy.unionBy;
-exports.unionWith = unionWith.unionWith;
-exports.uniq = uniq.uniq;
-exports.uniqBy = uniqBy.uniqBy;
-exports.uniqWith = uniqWith.uniqWith;
-exports.unzip = unzip.unzip;
-exports.unzipWith = unzipWith.unzipWith;
-exports.without = without.without;
-exports.xor = xor.xor;
-exports.xorBy = xorBy.xorBy;
-exports.xorWith = xorWith.xorWith;
-exports.zip = zip.zip;
-exports.zipObject = zipObject.zipObject;
-exports.zipObjectDeep = zipObjectDeep.zipObjectDeep;
-exports.zipWith = zipWith.zipWith;
-exports.after = after.after;
-exports.ary = ary.ary;
-exports.attempt = attempt.attempt;
-exports.before = before.before;
-exports.bind = bind.bind;
-exports.bindKey = bindKey.bindKey;
-exports.curry = curry.curry;
-exports.curryRight = curryRight.curryRight;
-exports.debounce = debounce.debounce;
-exports.defer = defer.defer;
-exports.delay = delay.delay;
-exports.flip = flip.flip;
-exports.flow = flow.flow;
-exports.flowRight = flowRight.flowRight;
-exports.memoize = memoize.memoize;
-exports.negate = negate.negate;
-exports.nthArg = nthArg.nthArg;
-exports.once = once.once;
-exports.overArgs = overArgs.overArgs;
-exports.partial = partial.partial;
-exports.partialRight = partialRight.partialRight;
-exports.rearg = rearg.rearg;
-exports.rest = rest.rest;
-exports.spread = spread.spread;
-exports.throttle = throttle.throttle;
-exports.unary = unary.unary;
-exports.wrap = wrap.wrap;
-exports.add = add.add;
-exports.ceil = ceil.ceil;
-exports.clamp = clamp.clamp;
-exports.divide = divide.divide;
-exports.floor = floor.floor;
-exports.inRange = inRange.inRange;
-exports.max = max.max;
-exports.maxBy = maxBy.maxBy;
-exports.mean = mean.mean;
-exports.meanBy = meanBy.meanBy;
-exports.min = min.min;
-exports.minBy = minBy.minBy;
-exports.multiply = multiply.multiply;
-exports.parseInt = parseInt.parseInt;
-exports.random = random.random;
-exports.range = range.range;
-exports.rangeRight = rangeRight.rangeRight;
-exports.round = round.round;
-exports.subtract = subtract.subtract;
-exports.sum = sum.sum;
-exports.sumBy = sumBy.sumBy;
-exports.isEqual = isEqual.isEqual;
-exports.identity = identity.identity;
-exports.noop = noop.noop;
-exports.assign = assign.assign;
-exports.assignIn = assignIn.assignIn;
-exports.extend = assignIn.assignIn;
-exports.assignInWith = assignInWith.assignInWith;
-exports.extendWith = assignInWith.assignInWith;
-exports.assignWith = assignWith.assignWith;
-exports.at = at.at;
-exports.clone = clone.clone;
-exports.cloneDeep = cloneDeep.cloneDeep;
-exports.cloneDeepWith = cloneDeepWith.cloneDeepWith;
-exports.cloneWith = cloneWith.cloneWith;
-exports.create = create.create;
-exports.defaults = defaults.defaults;
-exports.defaultsDeep = defaultsDeep.defaultsDeep;
-exports.findKey = findKey.findKey;
-exports.findLastKey = findLastKey.findLastKey;
-exports.forIn = forIn.forIn;
-exports.forInRight = forInRight.forInRight;
-exports.forOwn = forOwn.forOwn;
-exports.forOwnRight = forOwnRight.forOwnRight;
-exports.fromPairs = fromPairs.fromPairs;
-exports.functions = functions.functions;
-exports.functionsIn = functionsIn.functionsIn;
-exports.get = get.get;
-exports.has = has.has;
-exports.hasIn = hasIn.hasIn;
-exports.invert = invert.invert;
-exports.invertBy = invertBy.invertBy;
-exports.keys = keys.keys;
-exports.keysIn = keysIn.keysIn;
-exports.mapKeys = mapKeys.mapKeys;
-exports.mapValues = mapValues.mapValues;
-exports.merge = merge.merge;
-exports.mergeWith = mergeWith.mergeWith;
-exports.omit = omit.omit;
-exports.omitBy = omitBy.omitBy;
-exports.pick = pick.pick;
-exports.pickBy = pickBy.pickBy;
-exports.property = property.property;
-exports.propertyOf = propertyOf.propertyOf;
-exports.result = result.result;
-exports.set = set.set;
-exports.setWith = setWith.setWith;
-exports.toDefaulted = toDefaulted.toDefaulted;
-exports.toPairs = toPairs.toPairs;
-exports.toPairsIn = toPairsIn.toPairsIn;
-exports.transform = transform.transform;
-exports.unset = unset.unset;
-exports.update = update.update;
-exports.updateWith = updateWith.updateWith;
-exports.values = values.values;
-exports.valuesIn = valuesIn.valuesIn;
-exports.isFunction = isFunction.isFunction;
-exports.isLength = isLength.isLength;
-exports.isMatchWith = isMatchWith.isMatchWith;
-exports.isNative = isNative.isNative;
-exports.isNull = isNull.isNull;
-exports.isUndefined = isUndefined.isUndefined;
-exports.conforms = conforms.conforms;
-exports.conformsTo = conformsTo.conformsTo;
-exports.isArguments = isArguments.isArguments;
-exports.isArray = isArray.isArray;
-exports.isArrayBuffer = isArrayBuffer.isArrayBuffer;
-exports.isArrayLike = isArrayLike.isArrayLike;
-exports.isArrayLikeObject = isArrayLikeObject.isArrayLikeObject;
-exports.isBoolean = isBoolean.isBoolean;
-exports.isBuffer = isBuffer.isBuffer;
-exports.isDate = isDate.isDate;
-exports.isElement = isElement.isElement;
-exports.isEmpty = isEmpty.isEmpty;
-exports.isEqualWith = isEqualWith.isEqualWith;
-exports.isError = isError.isError;
-exports.isFinite = isFinite.isFinite;
-exports.isInteger = isInteger.isInteger;
-exports.isMap = isMap.isMap;
-exports.isMatch = isMatch.isMatch;
-exports.isNaN = isNaN.isNaN;
-exports.isNil = isNil.isNil;
-exports.isNumber = isNumber.isNumber;
-exports.isObject = isObject.isObject;
-exports.isObjectLike = isObjectLike.isObjectLike;
-exports.isPlainObject = isPlainObject.isPlainObject;
-exports.isRegExp = isRegExp.isRegExp;
-exports.isSafeInteger = isSafeInteger.isSafeInteger;
-exports.isSet = isSet.isSet;
-exports.isString = isString.isString;
-exports.isSymbol = isSymbol.isSymbol;
-exports.isTypedArray = isTypedArray.isTypedArray;
-exports.isWeakMap = isWeakMap.isWeakMap;
-exports.isWeakSet = isWeakSet.isWeakSet;
-exports.matches = matches.matches;
-exports.matchesProperty = matchesProperty.matchesProperty;
-exports.capitalize = capitalize.capitalize;
-exports.bindAll = bindAll.bindAll;
-exports.camelCase = camelCase.camelCase;
-exports.deburr = deburr.deburr;
-exports.endsWith = endsWith.endsWith;
-exports.escape = escape.escape;
-exports.escapeRegExp = escapeRegExp.escapeRegExp;
-exports.kebabCase = kebabCase.kebabCase;
-exports.lowerCase = lowerCase.lowerCase;
-exports.lowerFirst = lowerFirst.lowerFirst;
-exports.pad = pad.pad;
-exports.padEnd = padEnd.padEnd;
-exports.padStart = padStart.padStart;
-exports.repeat = repeat.repeat;
-exports.replace = replace.replace;
-exports.snakeCase = snakeCase.snakeCase;
-exports.split = split.split;
-exports.startCase = startCase.startCase;
-exports.startsWith = startsWith.startsWith;
-exports.template = template.template;
-exports.templateSettings = template.templateSettings;
-exports.toLower = toLower.toLower;
-exports.toUpper = toUpper.toUpper;
-exports.trim = trim.trim;
-exports.trimEnd = trimEnd.trimEnd;
-exports.trimStart = trimStart.trimStart;
-exports.truncate = truncate.truncate;
-exports.unescape = unescape.unescape;
-exports.upperCase = upperCase.upperCase;
-exports.upperFirst = upperFirst.upperFirst;
-exports.words = words.words;
-exports.cond = cond.cond;
-exports.constant = constant.constant;
-exports.defaultTo = defaultTo.defaultTo;
-exports.eq = isEqualsSameValueZero.isEqualsSameValueZero;
-exports.gt = gt.gt;
-exports.gte = gte.gte;
-exports.invoke = invoke.invoke;
-exports.iteratee = iteratee.iteratee;
-exports.lt = lt.lt;
-exports.lte = lte.lte;
-exports.method = method.method;
-exports.methodOf = methodOf.methodOf;
-exports.now = now.now;
-exports.over = over.over;
-exports.overEvery = overEvery.overEvery;
-exports.overSome = overSome.overSome;
-exports.stubArray = stubArray.stubArray;
-exports.stubFalse = stubFalse.stubFalse;
-exports.stubObject = stubObject.stubObject;
-exports.stubString = stubString.stubString;
-exports.stubTrue = stubTrue.stubTrue;
-exports.times = times.times;
-exports.toArray = toArray.toArray;
-exports.toFinite = toFinite.toFinite;
-exports.toInteger = toInteger.toInteger;
-exports.toLength = toLength.toLength;
-exports.toNumber = toNumber.toNumber;
-exports.toPath = toPath.toPath;
-exports.toPlainObject = toPlainObject.toPlainObject;
-exports.toSafeInteger = toSafeInteger.toSafeInteger;
-exports.toString = toString.toString;
-exports.uniqueId = uniqueId.uniqueId;
-exports.default = toolkit.toolkit;
Index: de_modules/es-toolkit/dist/compat/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,292 +1,0 @@
-export { castArray } from './array/castArray.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { concat } from './array/concat.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { forEach as each, forEach } from './array/forEach.mjs';
-export { forEachRight as eachRight, forEachRight } from './array/forEachRight.mjs';
-export { every } from './array/every.mjs';
-export { fill } from './array/fill.mjs';
-export { filter } from './array/filter.mjs';
-export { find } from './array/find.mjs';
-export { findIndex } from './array/findIndex.mjs';
-export { findLast } from './array/findLast.mjs';
-export { findLastIndex } from './array/findLastIndex.mjs';
-export { head as first, head } from './array/head.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatMapDepth } from './array/flatMapDepth.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { flattenDepth } from './array/flattenDepth.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { includes } from './array/includes.mjs';
-export { indexOf } from './array/indexOf.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { invokeMap } from './array/invokeMap.mjs';
-export { join } from './array/join.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { lastIndexOf } from './array/lastIndexOf.mjs';
-export { map } from './array/map.mjs';
-export { nth } from './array/nth.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAll } from './array/pullAll.mjs';
-export { pullAllBy } from './array/pullAllBy.mjs';
-export { pullAllWith } from './array/pullAllWith.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduce } from './array/reduce.mjs';
-export { reduceRight } from './array/reduceRight.mjs';
-export { reject } from './array/reject.mjs';
-export { remove } from './array/remove.mjs';
-export { reverse } from './array/reverse.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { size } from './array/size.mjs';
-export { slice } from './array/slice.mjs';
-export { some } from './array/some.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { sortedIndex } from './array/sortedIndex.mjs';
-export { sortedIndexBy } from './array/sortedIndexBy.mjs';
-export { sortedIndexOf } from './array/sortedIndexOf.mjs';
-export { sortedLastIndex } from './array/sortedLastIndex.mjs';
-export { sortedLastIndexBy } from './array/sortedLastIndexBy.mjs';
-export { sortedLastIndexOf } from './array/sortedLastIndexOf.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipObjectDeep } from './array/zipObjectDeep.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { attempt } from './function/attempt.mjs';
-export { before } from './function/before.mjs';
-export { bind } from './function/bind.mjs';
-export { bindKey } from './function/bindKey.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { debounce } from './function/debounce.mjs';
-export { defer } from './function/defer.mjs';
-export { delay } from './function/delay.mjs';
-export { flip } from './function/flip.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { nthArg } from './function/nthArg.mjs';
-export { once } from './function/once.mjs';
-export { overArgs } from './function/overArgs.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rearg } from './function/rearg.mjs';
-export { rest } from './function/rest.mjs';
-export { spread } from './function/spread.mjs';
-export { throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { wrap } from './function/wrap.mjs';
-export { add } from './math/add.mjs';
-export { ceil } from './math/ceil.mjs';
-export { clamp } from './math/clamp.mjs';
-export { divide } from './math/divide.mjs';
-export { floor } from './math/floor.mjs';
-export { inRange } from './math/inRange.mjs';
-export { max } from './math/max.mjs';
-export { maxBy } from './math/maxBy.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { min } from './math/min.mjs';
-export { minBy } from './math/minBy.mjs';
-export { multiply } from './math/multiply.mjs';
-export { parseInt } from './math/parseInt.mjs';
-export { random } from './math/random.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { subtract } from './math/subtract.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { isEqual } from '../predicate/isEqual.mjs';
-export { identity } from './function/identity.mjs';
-export { noop } from './function/noop.mjs';
-export { assign } from './object/assign.mjs';
-export { assignIn, assignIn as extend } from './object/assignIn.mjs';
-export { assignInWith, assignInWith as extendWith } from './object/assignInWith.mjs';
-export { assignWith } from './object/assignWith.mjs';
-export { at } from './object/at.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { cloneWith } from './object/cloneWith.mjs';
-export { create } from './object/create.mjs';
-export { defaults } from './object/defaults.mjs';
-export { defaultsDeep } from './object/defaultsDeep.mjs';
-export { findKey } from './object/findKey.mjs';
-export { findLastKey } from './object/findLastKey.mjs';
-export { forIn } from './object/forIn.mjs';
-export { forInRight } from './object/forInRight.mjs';
-export { forOwn } from './object/forOwn.mjs';
-export { forOwnRight } from './object/forOwnRight.mjs';
-export { fromPairs } from './object/fromPairs.mjs';
-export { functions } from './object/functions.mjs';
-export { functionsIn } from './object/functionsIn.mjs';
-export { get } from './object/get.mjs';
-export { has } from './object/has.mjs';
-export { hasIn } from './object/hasIn.mjs';
-export { invert } from './object/invert.mjs';
-export { invertBy } from './object/invertBy.mjs';
-export { keys } from './object/keys.mjs';
-export { keysIn } from './object/keysIn.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { property } from './object/property.mjs';
-export { propertyOf } from './object/propertyOf.mjs';
-export { result } from './object/result.mjs';
-export { set } from './object/set.mjs';
-export { setWith } from './object/setWith.mjs';
-export { toDefaulted } from './object/toDefaulted.mjs';
-export { toPairs } from './object/toPairs.mjs';
-export { toPairsIn } from './object/toPairsIn.mjs';
-export { transform } from './object/transform.mjs';
-export { unset } from './object/unset.mjs';
-export { update } from './object/update.mjs';
-export { updateWith } from './object/updateWith.mjs';
-export { values } from './object/values.mjs';
-export { valuesIn } from './object/valuesIn.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMatchWith } from './predicate/isMatchWith.mjs';
-export { isNative } from './predicate/isNative.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { conforms } from './predicate/conforms.mjs';
-export { conformsTo } from './predicate/conformsTo.mjs';
-export { isArguments } from './predicate/isArguments.mjs';
-export { isArray } from './predicate/isArray.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isArrayLike } from './predicate/isArrayLike.mjs';
-export { isArrayLikeObject } from './predicate/isArrayLikeObject.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isElement } from './predicate/isElement.mjs';
-export { isEmpty } from './predicate/isEmpty.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFinite } from './predicate/isFinite.mjs';
-export { isInteger } from './predicate/isInteger.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isMatch } from './predicate/isMatch.mjs';
-export { isNaN } from './predicate/isNaN.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isObject } from './predicate/isObject.mjs';
-export { isObjectLike } from './predicate/isObjectLike.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSafeInteger } from './predicate/isSafeInteger.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { matches } from './predicate/matches.mjs';
-export { matchesProperty } from './predicate/matchesProperty.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { bindAll } from './util/bindAll.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { endsWith } from './string/endsWith.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { padEnd } from './string/padEnd.mjs';
-export { padStart } from './string/padStart.mjs';
-export { repeat } from './string/repeat.mjs';
-export { replace } from './string/replace.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { split } from './string/split.mjs';
-export { startCase } from './string/startCase.mjs';
-export { startsWith } from './string/startsWith.mjs';
-export { template, templateSettings } from './string/template.mjs';
-export { toLower } from './string/toLower.mjs';
-export { toUpper } from './string/toUpper.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { truncate } from './string/truncate.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { cond } from './util/cond.mjs';
-export { constant } from './util/constant.mjs';
-export { defaultTo } from './util/defaultTo.mjs';
-export { isEqualsSameValueZero as eq } from '../_internal/isEqualsSameValueZero.mjs';
-export { gt } from './util/gt.mjs';
-export { gte } from './util/gte.mjs';
-export { invoke } from './util/invoke.mjs';
-export { iteratee } from './util/iteratee.mjs';
-export { lt } from './util/lt.mjs';
-export { lte } from './util/lte.mjs';
-export { method } from './util/method.mjs';
-export { methodOf } from './util/methodOf.mjs';
-export { now } from './util/now.mjs';
-export { over } from './util/over.mjs';
-export { overEvery } from './util/overEvery.mjs';
-export { overSome } from './util/overSome.mjs';
-export { stubArray } from './util/stubArray.mjs';
-export { stubFalse } from './util/stubFalse.mjs';
-export { stubObject } from './util/stubObject.mjs';
-export { stubString } from './util/stubString.mjs';
-export { stubTrue } from './util/stubTrue.mjs';
-export { times } from './util/times.mjs';
-export { toArray } from './util/toArray.mjs';
-export { toFinite } from './util/toFinite.mjs';
-export { toInteger } from './util/toInteger.mjs';
-export { toLength } from './util/toLength.mjs';
-export { toNumber } from './util/toNumber.mjs';
-export { toPath } from './util/toPath.mjs';
-export { toPlainObject } from './util/toPlainObject.mjs';
-export { toSafeInteger } from './util/toSafeInteger.mjs';
-export { toString } from './util/toString.mjs';
-export { uniqueId } from './util/uniqueId.mjs';
-export { toolkit as default } from './toolkit.mjs';
Index: de_modules/es-toolkit/dist/compat/math/add.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/add.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Adds two numbers while safely handling `NaN` values.
- *
- * This function takes two numbers and returns their sum. If either of the numbers is `NaN`,
- * the function returns `NaN`.
- *
- * @param {number} value - The first number to add.
- * @param {number} other - The second number to add.
- * @returns {number} The sum of the two numbers, or `NaN` if any input is `NaN`.
- *
- * @example
- * const result1 = add(2, 3);    // result1 will be 5
- * const result2 = add(5, NaN);  // result2 will be NaN
- * const result3 = add(NaN, 10); // result3 will be NaN
- */
-declare function add(value: number, other: number): number;
-
-export { add };
Index: de_modules/es-toolkit/dist/compat/math/add.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/add.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Adds two numbers while safely handling `NaN` values.
- *
- * This function takes two numbers and returns their sum. If either of the numbers is `NaN`,
- * the function returns `NaN`.
- *
- * @param {number} value - The first number to add.
- * @param {number} other - The second number to add.
- * @returns {number} The sum of the two numbers, or `NaN` if any input is `NaN`.
- *
- * @example
- * const result1 = add(2, 3);    // result1 will be 5
- * const result2 = add(5, NaN);  // result2 will be NaN
- * const result3 = add(NaN, 10); // result3 will be NaN
- */
-declare function add(value: number, other: number): number;
-
-export { add };
Index: de_modules/es-toolkit/dist/compat/math/add.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/add.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-const toString = require('../util/toString.js');
-
-function add(value, other) {
-    if (value === undefined && other === undefined) {
-        return 0;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString.toString(value);
-        other = toString.toString(other);
-    }
-    else {
-        value = toNumber.toNumber(value);
-        other = toNumber.toNumber(other);
-    }
-    return value + other;
-}
-
-exports.add = add;
Index: de_modules/es-toolkit/dist/compat/math/add.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/add.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-import { toString } from '../util/toString.mjs';
-
-function add(value, other) {
-    if (value === undefined && other === undefined) {
-        return 0;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString(value);
-        other = toString(other);
-    }
-    else {
-        value = toNumber(value);
-        other = toNumber(other);
-    }
-    return value + other;
-}
-
-export { add };
Index: de_modules/es-toolkit/dist/compat/math/ceil.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/ceil.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded up to precision.
- *
- * @param {number | string} number The number to round up.
- * @param {number | string} precision The precision to round up to.
- * @returns {number} Returns the rounded up number.
- *
- * @example
- * ceil(4.006); // => 5
- * ceil(6.004, 2); // => 6.01
- * ceil(6040, -2); // => 6100
- */
-declare function ceil(number: number, precision?: number): number;
-
-export { ceil };
Index: de_modules/es-toolkit/dist/compat/math/ceil.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/ceil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded up to precision.
- *
- * @param {number | string} number The number to round up.
- * @param {number | string} precision The precision to round up to.
- * @returns {number} Returns the rounded up number.
- *
- * @example
- * ceil(4.006); // => 5
- * ceil(6.004, 2); // => 6.01
- * ceil(6040, -2); // => 6100
- */
-declare function ceil(number: number, precision?: number): number;
-
-export { ceil };
Index: de_modules/es-toolkit/dist/compat/math/ceil.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/ceil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const decimalAdjust = require('../_internal/decimalAdjust.js');
-
-function ceil(number, precision = 0) {
-    return decimalAdjust.decimalAdjust('ceil', number, precision);
-}
-
-exports.ceil = ceil;
Index: de_modules/es-toolkit/dist/compat/math/ceil.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/ceil.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { decimalAdjust } from '../_internal/decimalAdjust.mjs';
-
-function ceil(number, precision = 0) {
-    return decimalAdjust('ceil', number, precision);
-}
-
-export { ceil };
Index: de_modules/es-toolkit/dist/compat/math/clamp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/clamp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Clamps a number within the specified bounds.
- *
- * @param {number} number The number to clamp
- * @param {number} lower The lower bound
- * @param {number} upper The upper bound
- * @returns {number} Returns the clamped number
- * @example
- * clamp(3, 2, 4) // => 3
- * clamp(0, 5, 10) // => 5
- * clamp(15, 5, 10) // => 10
- */
-declare function clamp(number: number, lower: number, upper: number): number;
-/**
- * Clamps a number to an upper bound.
- *
- * @param {number} number The number to clamp
- * @param {number} upper The upper bound
- * @returns {number} Returns the clamped number
- * @example
- * clamp(5, 3) // => 3
- * clamp(2, 3) // => 2
- */
-declare function clamp(number: number, upper: number): number;
-
-export { clamp };
Index: de_modules/es-toolkit/dist/compat/math/clamp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/clamp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Clamps a number within the specified bounds.
- *
- * @param {number} number The number to clamp
- * @param {number} lower The lower bound
- * @param {number} upper The upper bound
- * @returns {number} Returns the clamped number
- * @example
- * clamp(3, 2, 4) // => 3
- * clamp(0, 5, 10) // => 5
- * clamp(15, 5, 10) // => 10
- */
-declare function clamp(number: number, lower: number, upper: number): number;
-/**
- * Clamps a number to an upper bound.
- *
- * @param {number} number The number to clamp
- * @param {number} upper The upper bound
- * @returns {number} Returns the clamped number
- * @example
- * clamp(5, 3) // => 3
- * clamp(2, 3) // => 2
- */
-declare function clamp(number: number, upper: number): number;
-
-export { clamp };
Index: de_modules/es-toolkit/dist/compat/math/clamp.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/clamp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-
-function clamp(value, bound1, bound2) {
-    if (bound2 === undefined) {
-        bound2 = bound1;
-        bound1 = undefined;
-    }
-    if (bound2 !== undefined) {
-        bound2 = toNumber.toNumber(bound2);
-        value = Math.min(value, Number.isNaN(bound2) ? 0 : bound2);
-    }
-    if (bound1 !== undefined) {
-        bound1 = toNumber.toNumber(bound1);
-        value = Math.max(value, Number.isNaN(bound1) ? 0 : bound1);
-    }
-    return value;
-}
-
-exports.clamp = clamp;
Index: de_modules/es-toolkit/dist/compat/math/clamp.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/clamp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-
-function clamp(value, bound1, bound2) {
-    if (bound2 === undefined) {
-        bound2 = bound1;
-        bound1 = undefined;
-    }
-    if (bound2 !== undefined) {
-        bound2 = toNumber(bound2);
-        value = Math.min(value, Number.isNaN(bound2) ? 0 : bound2);
-    }
-    if (bound1 !== undefined) {
-        bound1 = toNumber(bound1);
-        value = Math.max(value, Number.isNaN(bound1) ? 0 : bound1);
-    }
-    return value;
-}
-
-export { clamp };
Index: de_modules/es-toolkit/dist/compat/math/divide.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/divide.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Divide two numbers.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number in a division.
- * @param {number} other The second number in a division.
- * @returns {number} The quotient of value and other.
- *
- * @example
- * divide(6, 3); // => 2
- * divide(2, NaN); // => NaN
- * divide(NaN, 3); // => NaN
- * divide(NaN, NaN); // => NaN
- */
-declare function divide(value: number, other: number): number;
-
-export { divide };
Index: de_modules/es-toolkit/dist/compat/math/divide.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/divide.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Divide two numbers.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number in a division.
- * @param {number} other The second number in a division.
- * @returns {number} The quotient of value and other.
- *
- * @example
- * divide(6, 3); // => 2
- * divide(2, NaN); // => NaN
- * divide(NaN, 3); // => NaN
- * divide(NaN, NaN); // => NaN
- */
-declare function divide(value: number, other: number): number;
-
-export { divide };
Index: de_modules/es-toolkit/dist/compat/math/divide.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/divide.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-const toString = require('../util/toString.js');
-
-function divide(value, other) {
-    if (value === undefined && other === undefined) {
-        return 1;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString.toString(value);
-        other = toString.toString(other);
-    }
-    else {
-        value = toNumber.toNumber(value);
-        other = toNumber.toNumber(other);
-    }
-    return value / other;
-}
-
-exports.divide = divide;
Index: de_modules/es-toolkit/dist/compat/math/divide.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/divide.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-import { toString } from '../util/toString.mjs';
-
-function divide(value, other) {
-    if (value === undefined && other === undefined) {
-        return 1;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString(value);
-        other = toString(other);
-    }
-    else {
-        value = toNumber(value);
-        other = toNumber(other);
-    }
-    return value / other;
-}
-
-export { divide };
Index: de_modules/es-toolkit/dist/compat/math/floor.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/floor.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded down to precision.
- *
- * @param {number | string} number The number to round down.
- * @param {number | string} precision The precision to round down to.
- * @returns {number} Returns the rounded down number.
- *
- * @example
- * floor(4.006); // => 4
- * floor(0.046, 2); // => 0.04
- * floor(4060, -2); // => 4000
- */
-declare function floor(number: number, precision?: number): number;
-
-export { floor };
Index: de_modules/es-toolkit/dist/compat/math/floor.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/floor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded down to precision.
- *
- * @param {number | string} number The number to round down.
- * @param {number | string} precision The precision to round down to.
- * @returns {number} Returns the rounded down number.
- *
- * @example
- * floor(4.006); // => 4
- * floor(0.046, 2); // => 0.04
- * floor(4060, -2); // => 4000
- */
-declare function floor(number: number, precision?: number): number;
-
-export { floor };
Index: de_modules/es-toolkit/dist/compat/math/floor.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/floor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const decimalAdjust = require('../_internal/decimalAdjust.js');
-
-function floor(number, precision = 0) {
-    return decimalAdjust.decimalAdjust('floor', number, precision);
-}
-
-exports.floor = floor;
Index: de_modules/es-toolkit/dist/compat/math/floor.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/floor.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { decimalAdjust } from '../_internal/decimalAdjust.mjs';
-
-function floor(number, precision = 0) {
-    return decimalAdjust('floor', number, precision);
-}
-
-export { floor };
Index: de_modules/es-toolkit/dist/compat/math/inRange.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/inRange.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the value is within a specified range.
- *
- * @param {number} value The value to check.
- * @param {number} minimum The lower bound of the range (inclusive).
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is within the specified range, otherwise `false`.
- * @throws {Error} Throws an error if the `minimum` is greater or equal than the `maximum`.
- *
- * @example
- * const result1 = inRange(3, 5); // result1 will be true.
- * const result2 = inRange(1, 2, 5); // result2 will be false.
- * const result3 = inRange(1, 5, 2); // If the minimum is greater or equal than the maximum, an error is thrown.
- */
-declare function inRange(value: number, minimum: number, maximum?: number): boolean;
-
-export { inRange };
Index: de_modules/es-toolkit/dist/compat/math/inRange.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/inRange.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the value is within a specified range.
- *
- * @param {number} value The value to check.
- * @param {number} minimum The lower bound of the range (inclusive).
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is within the specified range, otherwise `false`.
- * @throws {Error} Throws an error if the `minimum` is greater or equal than the `maximum`.
- *
- * @example
- * const result1 = inRange(3, 5); // result1 will be true.
- * const result2 = inRange(1, 2, 5); // result2 will be false.
- * const result3 = inRange(1, 5, 2); // If the minimum is greater or equal than the maximum, an error is thrown.
- */
-declare function inRange(value: number, minimum: number, maximum?: number): boolean;
-
-export { inRange };
Index: de_modules/es-toolkit/dist/compat/math/inRange.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/inRange.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const inRange$1 = require('../../math/inRange.js');
-
-function inRange(value, minimum, maximum) {
-    if (!minimum) {
-        minimum = 0;
-    }
-    if (maximum != null && !maximum) {
-        maximum = 0;
-    }
-    if (minimum != null && typeof minimum !== 'number') {
-        minimum = Number(minimum);
-    }
-    if (maximum == null && minimum === 0) {
-        return false;
-    }
-    if (maximum != null && typeof maximum !== 'number') {
-        maximum = Number(maximum);
-    }
-    if (maximum != null && minimum > maximum) {
-        [minimum, maximum] = [maximum, minimum];
-    }
-    if (minimum === maximum) {
-        return false;
-    }
-    return inRange$1.inRange(value, minimum, maximum);
-}
-
-exports.inRange = inRange;
Index: de_modules/es-toolkit/dist/compat/math/inRange.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/inRange.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { inRange as inRange$1 } from '../../math/inRange.mjs';
-
-function inRange(value, minimum, maximum) {
-    if (!minimum) {
-        minimum = 0;
-    }
-    if (maximum != null && !maximum) {
-        maximum = 0;
-    }
-    if (minimum != null && typeof minimum !== 'number') {
-        minimum = Number(minimum);
-    }
-    if (maximum == null && minimum === 0) {
-        return false;
-    }
-    if (maximum != null && typeof maximum !== 'number') {
-        maximum = Number(maximum);
-    }
-    if (maximum != null && minimum > maximum) {
-        [minimum, maximum] = [maximum, minimum];
-    }
-    if (minimum === maximum) {
-        return false;
-    }
-    return inRange$1(value, minimum, maximum);
-}
-
-export { inRange };
Index: de_modules/es-toolkit/dist/compat/math/max.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/max.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Finds the element in an array that has the maximum value.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} [items] - The array of elements to search. Defaults to an empty array.
- * @returns {T | undefined} - The element with the maximum value, or undefined if the array is empty.
- */
-declare function max<T>(items: ArrayLike<T> | null | undefined): T | undefined;
-
-export { max };
Index: de_modules/es-toolkit/dist/compat/math/max.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/max.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Finds the element in an array that has the maximum value.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} [items] - The array of elements to search. Defaults to an empty array.
- * @returns {T | undefined} - The element with the maximum value, or undefined if the array is empty.
- */
-declare function max<T>(items: ArrayLike<T> | null | undefined): T | undefined;
-
-export { max };
Index: de_modules/es-toolkit/dist/compat/math/max.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/max.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function max(items) {
-    if (!items || items.length === 0) {
-        return undefined;
-    }
-    let maxResult = undefined;
-    for (let i = 0; i < items.length; i++) {
-        const current = items[i];
-        if (current == null || Number.isNaN(current) || typeof current === 'symbol') {
-            continue;
-        }
-        if (maxResult === undefined || current > maxResult) {
-            maxResult = current;
-        }
-    }
-    return maxResult;
-}
-
-exports.max = max;
Index: de_modules/es-toolkit/dist/compat/math/max.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/max.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function max(items) {
-    if (!items || items.length === 0) {
-        return undefined;
-    }
-    let maxResult = undefined;
-    for (let i = 0; i < items.length; i++) {
-        const current = items[i];
-        if (current == null || Number.isNaN(current) || typeof current === 'symbol') {
-            continue;
-        }
-        if (maxResult === undefined || current > maxResult) {
-            maxResult = current;
-        }
-    }
-    return maxResult;
-}
-
-export { max };
Index: de_modules/es-toolkit/dist/compat/math/maxBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/maxBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `iteratee` to each element.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} items The array of elements to search.
- * @param {ValueIteratee<T>} iteratee
- * The criteria used to determine the maximum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {T | undefined} The element with the maximum value as determined by the `iteratee`.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- * maxBy([{ a: 1 }, { a: 2 }], 'a'); // Returns: { a: 2 }
- * maxBy([{ a: 1 }, { a: 2 }], ['a', 1]); // Returns: { a: 1 }
- * maxBy([{ a: 1 }, { a: 2 }], { a: 1 }); // Returns: { a: 1 }
- */
-declare function maxBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T | undefined;
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/compat/math/maxBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/maxBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Finds the element in an array that has the maximum value when applying
- * the `iteratee` to each element.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} items The array of elements to search.
- * @param {ValueIteratee<T>} iteratee
- * The criteria used to determine the maximum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {T | undefined} The element with the maximum value as determined by the `iteratee`.
- * @example
- * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
- * maxBy([], x => x.a); // Returns: undefined
- * maxBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'john', age: 30 }
- * maxBy([{ a: 1 }, { a: 2 }], 'a'); // Returns: { a: 2 }
- * maxBy([{ a: 1 }, { a: 2 }], ['a', 1]); // Returns: { a: 1 }
- * maxBy([{ a: 1 }, { a: 2 }], { a: 1 }); // Returns: { a: 1 }
- */
-declare function maxBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T | undefined;
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/compat/math/maxBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/maxBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const maxBy$1 = require('../../array/maxBy.js');
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function maxBy(items, iteratee$1) {
-    if (items == null) {
-        return undefined;
-    }
-    return maxBy$1.maxBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));
-}
-
-exports.maxBy = maxBy;
Index: de_modules/es-toolkit/dist/compat/math/maxBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/maxBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { maxBy as maxBy$1 } from '../../array/maxBy.mjs';
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function maxBy(items, iteratee$1) {
-    if (items == null) {
-        return undefined;
-    }
-    return maxBy$1(Array.from(items), iteratee(iteratee$1 ?? identity));
-}
-
-export { maxBy };
Index: de_modules/es-toolkit/dist/compat/math/mean.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/mean.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the average of an array of numbers.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {ArrayLike<any> | null | undefined} nums - An array of numbers to calculate the average.
- * @returns {number} The average of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = mean(numbers);
- * // result will be 3
- */
-declare function mean(nums: ArrayLike<any> | null | undefined): number;
-
-export { mean };
Index: de_modules/es-toolkit/dist/compat/math/mean.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/mean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the average of an array of numbers.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {ArrayLike<any> | null | undefined} nums - An array of numbers to calculate the average.
- * @returns {number} The average of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = mean(numbers);
- * // result will be 3
- */
-declare function mean(nums: ArrayLike<any> | null | undefined): number;
-
-export { mean };
Index: de_modules/es-toolkit/dist/compat/math/mean.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sum = require('./sum.js');
-
-function mean(nums) {
-    const length = nums ? nums.length : 0;
-    return length === 0 ? NaN : sum.sum(nums) / length;
-}
-
-exports.mean = mean;
Index: de_modules/es-toolkit/dist/compat/math/mean.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/mean.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { sum } from './sum.mjs';
-
-function mean(nums) {
-    const length = nums ? nums.length : 0;
-    return length === 0 ? NaN : sum(nums) / length;
-}
-
-export { mean };
Index: de_modules/es-toolkit/dist/compat/math/meanBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/meanBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Calculates the average of an array of numbers when applying
- * the `iteratee` function to each element.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the average.
- * @param {((element: T) => unknown) | PropertyKey | [PropertyKey, any] | PartialShallow<T>} iteratee
- * The criteria used to determine the maximum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {number} The average of all the numbers as determined by the `iteratee` function.
- *
- * @example
- * meanBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: 2
- * meanBy([], x => x.a); // Returns: NaN
- * meanBy([[2], [3], [1]], 0); // Returns: 2
- * meanBy([{ a: 2 }, { a: 3 }, { a: 1 }], 'a'); // Returns: 2
- */
-declare function meanBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): number;
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/compat/math/meanBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/meanBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Calculates the average of an array of numbers when applying
- * the `iteratee` function to each element.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the average.
- * @param {((element: T) => unknown) | PropertyKey | [PropertyKey, any] | PartialShallow<T>} iteratee
- * The criteria used to determine the maximum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {number} The average of all the numbers as determined by the `iteratee` function.
- *
- * @example
- * meanBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: 2
- * meanBy([], x => x.a); // Returns: NaN
- * meanBy([[2], [3], [1]], 0); // Returns: 2
- * meanBy([{ a: 2 }, { a: 3 }, { a: 1 }], 'a'); // Returns: 2
- */
-declare function meanBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): number;
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/compat/math/meanBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/meanBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const meanBy$1 = require('../../math/meanBy.js');
-const iteratee = require('../util/iteratee.js');
-
-function meanBy(items, iteratee$1) {
-    if (items == null) {
-        return NaN;
-    }
-    return meanBy$1.meanBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));
-}
-
-exports.meanBy = meanBy;
Index: de_modules/es-toolkit/dist/compat/math/meanBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/meanBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { meanBy as meanBy$1 } from '../../math/meanBy.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function meanBy(items, iteratee$1) {
-    if (items == null) {
-        return NaN;
-    }
-    return meanBy$1(Array.from(items), iteratee(iteratee$1 ?? identity));
-}
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/compat/math/min.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/min.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Finds the element in an array that has the minimum value.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} [items] - The array of elements to search. Defaults to an empty array.
- * @returns {T | undefined} - The element with the minimum value, or undefined if the array is empty.
- */
-declare function min<T>(items: ArrayLike<T> | null | undefined): T | undefined;
-
-export { min };
Index: de_modules/es-toolkit/dist/compat/math/min.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/min.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Finds the element in an array that has the minimum value.
- *
- * @template T - The type of elements in the array.
- * @param {ArrayLike<T> | null | undefined} [items] - The array of elements to search. Defaults to an empty array.
- * @returns {T | undefined} - The element with the minimum value, or undefined if the array is empty.
- */
-declare function min<T>(items: ArrayLike<T> | null | undefined): T | undefined;
-
-export { min };
Index: de_modules/es-toolkit/dist/compat/math/min.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function min(items) {
-    if (!items || items.length === 0) {
-        return undefined;
-    }
-    let minResult = undefined;
-    for (let i = 0; i < items.length; i++) {
-        const current = items[i];
-        if (current == null || Number.isNaN(current) || typeof current === 'symbol') {
-            continue;
-        }
-        if (minResult === undefined || current < minResult) {
-            minResult = current;
-        }
-    }
-    return minResult;
-}
-
-exports.min = min;
Index: de_modules/es-toolkit/dist/compat/math/min.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/min.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function min(items) {
-    if (!items || items.length === 0) {
-        return undefined;
-    }
-    let minResult = undefined;
-    for (let i = 0; i < items.length; i++) {
-        const current = items[i];
-        if (current == null || Number.isNaN(current) || typeof current === 'symbol') {
-            continue;
-        }
-        if (minResult === undefined || current < minResult) {
-            minResult = current;
-        }
-    }
-    return minResult;
-}
-
-export { min };
Index: de_modules/es-toolkit/dist/compat/math/minBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/minBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `iteratee` to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {((element: T) => number) | keyof T | [keyof T, unknown] | Partial<T>} iteratee
- * The criteria used to determine the minimum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {T | undefined} The element with the minimum value as determined by the `iteratee`.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- * minBy([{ a: 1 }, { a: 2 }], 'a'); // Returns: { a: 1 }
- * minBy([{ a: 1 }, { a: 2 }], ['a', 1]); // Returns: { a: 2 }
- * minBy([{ a: 1 }, { a: 2 }], { a: 1 }); // Returns: { a: 2 }
- */
-declare function minBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T | undefined;
-
-export { minBy };
Index: de_modules/es-toolkit/dist/compat/math/minBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/minBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Finds the element in an array that has the minimum value when applying
- * the `iteratee` to each element.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items The array of elements to search.
- * @param {((element: T) => number) | keyof T | [keyof T, unknown] | Partial<T>} iteratee
- * The criteria used to determine the minimum value.
- *  - If a **function** is provided, it extracts a numeric value from each element.
- *  - If a **string** is provided, it is treated as a key to extract values from the objects.
- *  - If a **[key, value]** pair is provided, it matches elements with the specified key-value pair.
- *  - If an **object** is provided, it matches elements that contain the specified properties.
- * @returns {T | undefined} The element with the minimum value as determined by the `iteratee`.
- * @example
- * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
- * minBy([], x => x.a); // Returns: undefined
- * minBy(
- *   [
- *     { name: 'john', age: 30 },
- *     { name: 'jane', age: 28 },
- *     { name: 'joe', age: 26 },
- *   ],
- *   x => x.age
- * ); // Returns: { name: 'joe', age: 26 }
- * minBy([{ a: 1 }, { a: 2 }], 'a'); // Returns: { a: 1 }
- * minBy([{ a: 1 }, { a: 2 }], ['a', 1]); // Returns: { a: 2 }
- * minBy([{ a: 1 }, { a: 2 }], { a: 1 }); // Returns: { a: 2 }
- */
-declare function minBy<T>(items: ArrayLike<T> | null | undefined, iteratee?: ValueIteratee<T>): T | undefined;
-
-export { minBy };
Index: de_modules/es-toolkit/dist/compat/math/minBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/minBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const minBy$1 = require('../../array/minBy.js');
-const identity = require('../../function/identity.js');
-const iteratee = require('../util/iteratee.js');
-
-function minBy(items, iteratee$1) {
-    if (items == null) {
-        return undefined;
-    }
-    return minBy$1.minBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));
-}
-
-exports.minBy = minBy;
Index: de_modules/es-toolkit/dist/compat/math/minBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/minBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { minBy as minBy$1 } from '../../array/minBy.mjs';
-import { identity } from '../../function/identity.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function minBy(items, iteratee$1) {
-    if (items == null) {
-        return undefined;
-    }
-    return minBy$1(Array.from(items), iteratee(iteratee$1 ?? identity));
-}
-
-export { minBy };
Index: de_modules/es-toolkit/dist/compat/math/multiply.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/multiply.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Multiply two numbers.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number in a multiplication
- * @param {number} other The second number in a multiplication
- * @returns {number} The product of value and other
- *
- * @example
- * multiply(2, 3); // => 6
- * multiply(2, NaN); // => NaN
- * multiply(NaN, 3); // => NaN
- * multiply(NaN, NaN); // => NaN
- */
-declare function multiply(value: number, other: number): number;
-
-export { multiply };
Index: de_modules/es-toolkit/dist/compat/math/multiply.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/multiply.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Multiply two numbers.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number in a multiplication
- * @param {number} other The second number in a multiplication
- * @returns {number} The product of value and other
- *
- * @example
- * multiply(2, 3); // => 6
- * multiply(2, NaN); // => NaN
- * multiply(NaN, 3); // => NaN
- * multiply(NaN, NaN); // => NaN
- */
-declare function multiply(value: number, other: number): number;
-
-export { multiply };
Index: de_modules/es-toolkit/dist/compat/math/multiply.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/multiply.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-const toString = require('../util/toString.js');
-
-function multiply(value, other) {
-    if (value === undefined && other === undefined) {
-        return 1;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString.toString(value);
-        other = toString.toString(other);
-    }
-    else {
-        value = toNumber.toNumber(value);
-        other = toNumber.toNumber(other);
-    }
-    return value * other;
-}
-
-exports.multiply = multiply;
Index: de_modules/es-toolkit/dist/compat/math/multiply.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/multiply.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-import { toString } from '../util/toString.mjs';
-
-function multiply(value, other) {
-    if (value === undefined && other === undefined) {
-        return 1;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString(value);
-        other = toString(other);
-    }
-    else {
-        value = toNumber(value);
-        other = toNumber(other);
-    }
-    return value * other;
-}
-
-export { multiply };
Index: de_modules/es-toolkit/dist/compat/math/parseInt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/parseInt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `string` to an integer of the specified radix. If `radix` is undefined or 0, a `radix` of 10 is used unless `string` is a hexadecimal, in which case a `radix` of 16 is used.
- *
- * @param {string} string The string to convert to an integer.
- * @param {number} radix The radix to use when converting the string to an integer. Defaults to `0`.
- * @param {unknown} guard Enables use as an iteratee for methods like `Array#map`.
- * @returns {number} Returns the converted integer.
- *
- * @example
- * parseInt('08'); // => 8
- * parseInt('0x20'); // => 32
- *
- * parseInt('08', 10); // => 8
- * parseInt('0x20', 16); // => 32
- *
- * ['6', '08', '10'].map(parseInt); // => [6, 8, 10]
- */
-declare function parseInt(string: string, radix?: number): number;
-
-export { parseInt };
Index: de_modules/es-toolkit/dist/compat/math/parseInt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/parseInt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `string` to an integer of the specified radix. If `radix` is undefined or 0, a `radix` of 10 is used unless `string` is a hexadecimal, in which case a `radix` of 16 is used.
- *
- * @param {string} string The string to convert to an integer.
- * @param {number} radix The radix to use when converting the string to an integer. Defaults to `0`.
- * @param {unknown} guard Enables use as an iteratee for methods like `Array#map`.
- * @returns {number} Returns the converted integer.
- *
- * @example
- * parseInt('08'); // => 8
- * parseInt('0x20'); // => 32
- *
- * parseInt('08', 10); // => 8
- * parseInt('0x20', 16); // => 32
- *
- * ['6', '08', '10'].map(parseInt); // => [6, 8, 10]
- */
-declare function parseInt(string: string, radix?: number): number;
-
-export { parseInt };
Index: de_modules/es-toolkit/dist/compat/math/parseInt.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/parseInt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function parseInt(string, radix = 0, guard) {
-    if (guard) {
-        radix = 0;
-    }
-    return Number.parseInt(string, radix);
-}
-
-exports.parseInt = parseInt;
Index: de_modules/es-toolkit/dist/compat/math/parseInt.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/parseInt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function parseInt(string, radix = 0, guard) {
-    if (guard) {
-        radix = 0;
-    }
-    return Number.parseInt(string, radix);
-}
-
-export { parseInt };
Index: de_modules/es-toolkit/dist/compat/math/random.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/random.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/**
- * Generate a random number between 0 and 1.
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between 0 and 1.
- * @example
- * random(); // Returns a random number between 0 and 1
- * random(true); // Returns a random floating point number between 0 and 1
- * random(false); // Returns a random integer between 0 and 1
- */
-declare function random(floating?: boolean): number;
-/**
- * Generate a random number between 0 and max.
- * @param {number} max - The upper bound (exclusive).
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between 0 and max.
- * @example
- * random(5); // Returns a random number between 0 and 5
- * random(10, true); // Returns a random floating point number between 0 and 10
- * random(3, false); // Returns a random integer between 0 and 3
- */
-declare function random(max: number, floating?: boolean): number;
-/**
- * Generate a random number between min and max.
- * @param {number} min - The lower bound (inclusive).
- * @param {number} max - The upper bound (exclusive).
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between min and max.
- * @example
- * random(1, 5); // Returns a random number between 1 and 5
- * random(0, 10, true); // Returns a random floating point number between 0 and 10
- * random(1, 6, false); // Returns a random integer between 1 and 6
- */
-declare function random(min: number, max: number, floating?: boolean): number;
-/**
- * Generate a random number between 0 and min, using guard object for special cases.
- * @param {number} min - The upper bound (exclusive).
- * @param {string | number} index - The index or key to check in the guard object.
- * @param {object} guard - The guard object to validate the parameters.
- * @returns {number} A random number between 0 and min.
- * @example
- * const guard = { 5: 5 };
- * random(5, 5, guard); // Returns a random number between 0 and 5
- */
-declare function random(min: number, index: string | number, guard: object): number;
-
-export { random };
Index: de_modules/es-toolkit/dist/compat/math/random.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/random.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/**
- * Generate a random number between 0 and 1.
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between 0 and 1.
- * @example
- * random(); // Returns a random number between 0 and 1
- * random(true); // Returns a random floating point number between 0 and 1
- * random(false); // Returns a random integer between 0 and 1
- */
-declare function random(floating?: boolean): number;
-/**
- * Generate a random number between 0 and max.
- * @param {number} max - The upper bound (exclusive).
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between 0 and max.
- * @example
- * random(5); // Returns a random number between 0 and 5
- * random(10, true); // Returns a random floating point number between 0 and 10
- * random(3, false); // Returns a random integer between 0 and 3
- */
-declare function random(max: number, floating?: boolean): number;
-/**
- * Generate a random number between min and max.
- * @param {number} min - The lower bound (inclusive).
- * @param {number} max - The upper bound (exclusive).
- * @param {boolean} [floating] - Whether to return a floating point number. Defaults to true.
- * @returns {number} A random number between min and max.
- * @example
- * random(1, 5); // Returns a random number between 1 and 5
- * random(0, 10, true); // Returns a random floating point number between 0 and 10
- * random(1, 6, false); // Returns a random integer between 1 and 6
- */
-declare function random(min: number, max: number, floating?: boolean): number;
-/**
- * Generate a random number between 0 and min, using guard object for special cases.
- * @param {number} min - The upper bound (exclusive).
- * @param {string | number} index - The index or key to check in the guard object.
- * @param {object} guard - The guard object to validate the parameters.
- * @returns {number} A random number between 0 and min.
- * @example
- * const guard = { 5: 5 };
- * random(5, 5, guard); // Returns a random number between 0 and 5
- */
-declare function random(min: number, index: string | number, guard: object): number;
-
-export { random };
Index: de_modules/es-toolkit/dist/compat/math/random.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/random.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const clamp = require('./clamp.js');
-const random$1 = require('../../math/random.js');
-const randomInt = require('../../math/randomInt.js');
-
-function random(...args) {
-    let minimum = 0;
-    let maximum = 1;
-    let floating = false;
-    switch (args.length) {
-        case 1: {
-            if (typeof args[0] === 'boolean') {
-                floating = args[0];
-            }
-            else {
-                maximum = args[0];
-            }
-            break;
-        }
-        case 2: {
-            if (typeof args[1] === 'boolean') {
-                maximum = args[0];
-                floating = args[1];
-            }
-            else {
-                minimum = args[0];
-                maximum = args[1];
-            }
-        }
-        case 3: {
-            if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {
-                minimum = 0;
-                maximum = args[0];
-                floating = false;
-            }
-            else {
-                minimum = args[0];
-                maximum = args[1];
-                floating = args[2];
-            }
-        }
-    }
-    if (typeof minimum !== 'number') {
-        minimum = Number(minimum);
-    }
-    if (typeof maximum !== 'number') {
-        minimum = Number(maximum);
-    }
-    if (!minimum) {
-        minimum = 0;
-    }
-    if (!maximum) {
-        maximum = 0;
-    }
-    if (minimum > maximum) {
-        [minimum, maximum] = [maximum, minimum];
-    }
-    minimum = clamp.clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
-    maximum = clamp.clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
-    if (minimum === maximum) {
-        return minimum;
-    }
-    if (floating) {
-        return random$1.random(minimum, maximum + 1);
-    }
-    else {
-        return randomInt.randomInt(minimum, maximum + 1);
-    }
-}
-
-exports.random = random;
Index: de_modules/es-toolkit/dist/compat/math/random.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/random.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-import { clamp } from './clamp.mjs';
-import { random as random$1 } from '../../math/random.mjs';
-import { randomInt } from '../../math/randomInt.mjs';
-
-function random(...args) {
-    let minimum = 0;
-    let maximum = 1;
-    let floating = false;
-    switch (args.length) {
-        case 1: {
-            if (typeof args[0] === 'boolean') {
-                floating = args[0];
-            }
-            else {
-                maximum = args[0];
-            }
-            break;
-        }
-        case 2: {
-            if (typeof args[1] === 'boolean') {
-                maximum = args[0];
-                floating = args[1];
-            }
-            else {
-                minimum = args[0];
-                maximum = args[1];
-            }
-        }
-        case 3: {
-            if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {
-                minimum = 0;
-                maximum = args[0];
-                floating = false;
-            }
-            else {
-                minimum = args[0];
-                maximum = args[1];
-                floating = args[2];
-            }
-        }
-    }
-    if (typeof minimum !== 'number') {
-        minimum = Number(minimum);
-    }
-    if (typeof maximum !== 'number') {
-        minimum = Number(maximum);
-    }
-    if (!minimum) {
-        minimum = 0;
-    }
-    if (!maximum) {
-        maximum = 0;
-    }
-    if (minimum > maximum) {
-        [minimum, maximum] = [maximum, minimum];
-    }
-    minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
-    maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
-    if (minimum === maximum) {
-        return minimum;
-    }
-    if (floating) {
-        return random$1(minimum, maximum + 1);
-    }
-    else {
-        return randomInt(minimum, maximum + 1);
-    }
-}
-
-export { random };
Index: de_modules/es-toolkit/dist/compat/math/range.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/range.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Creates an array of numbers progressing from `start` up to, but not including, `end`.
- *
- * @param {number} start - The starting number of the range (inclusive)
- * @param {number} end - The end number of the range (exclusive)
- * @param {number} step - The value to increment or decrement by
- * @returns {number[]} An array of numbers from start to end
- * @example
- * range(4)
- * // => [0, 1, 2, 3]
- *
- * range(1, 5)
- * // => [1, 2, 3, 4]
- *
- * range(0, 20, 5)
- * // => [0, 5, 10, 15]
- */
-declare function range(start: number, end?: number, step?: number): number[];
-/**
- * Creates an array of numbers progressing from 0 up to, but not including, `end`.
- * Used internally when range is called as an iteratee.
- *
- * @param {number} end - The end of the range (exclusive)
- * @param {string|number} index - The index argument passed to the iteratee
- * @param {object} guard - The guard object passed to the iteratee
- * @returns {number[]} An array of numbers from 0 to end
- * @example
- * [1, 2, 3].map(range)
- * // => [[0], [0, 1], [0, 1, 2]]
- */
-declare function range(end: number, index: string | number, guard: object): number[];
-
-export { range };
Index: de_modules/es-toolkit/dist/compat/math/range.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/range.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Creates an array of numbers progressing from `start` up to, but not including, `end`.
- *
- * @param {number} start - The starting number of the range (inclusive)
- * @param {number} end - The end number of the range (exclusive)
- * @param {number} step - The value to increment or decrement by
- * @returns {number[]} An array of numbers from start to end
- * @example
- * range(4)
- * // => [0, 1, 2, 3]
- *
- * range(1, 5)
- * // => [1, 2, 3, 4]
- *
- * range(0, 20, 5)
- * // => [0, 5, 10, 15]
- */
-declare function range(start: number, end?: number, step?: number): number[];
-/**
- * Creates an array of numbers progressing from 0 up to, but not including, `end`.
- * Used internally when range is called as an iteratee.
- *
- * @param {number} end - The end of the range (exclusive)
- * @param {string|number} index - The index argument passed to the iteratee
- * @param {object} guard - The guard object passed to the iteratee
- * @returns {number[]} An array of numbers from 0 to end
- * @example
- * [1, 2, 3].map(range)
- * // => [[0], [0, 1], [0, 1, 2]]
- */
-declare function range(end: number, index: string | number, guard: object): number[];
-
-export { range };
Index: de_modules/es-toolkit/dist/compat/math/range.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const toFinite = require('../util/toFinite.js');
-
-function range(start, end, step) {
-    if (step && typeof step !== 'number' && isIterateeCall.isIterateeCall(start, end, step)) {
-        end = step = undefined;
-    }
-    start = toFinite.toFinite(start);
-    if (end === undefined) {
-        end = start;
-        start = 0;
-    }
-    else {
-        end = toFinite.toFinite(end);
-    }
-    step = step === undefined ? (start < end ? 1 : -1) : toFinite.toFinite(step);
-    const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);
-    const result = new Array(length);
-    for (let index = 0; index < length; index++) {
-        result[index] = start;
-        start += step;
-    }
-    return result;
-}
-
-exports.range = range;
Index: de_modules/es-toolkit/dist/compat/math/range.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/range.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { toFinite } from '../util/toFinite.mjs';
-
-function range(start, end, step) {
-    if (step && typeof step !== 'number' && isIterateeCall(start, end, step)) {
-        end = step = undefined;
-    }
-    start = toFinite(start);
-    if (end === undefined) {
-        end = start;
-        start = 0;
-    }
-    else {
-        end = toFinite(end);
-    }
-    step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
-    const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);
-    const result = new Array(length);
-    for (let index = 0; index < length; index++) {
-        result[index] = start;
-        start += step;
-    }
-    return result;
-}
-
-export { range };
Index: de_modules/es-toolkit/dist/compat/math/rangeRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/rangeRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates an array of numbers from `start` to `end` with optional `step`.
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} [end] - The end number of the range (exclusive).
- * @param {number} [step] - The step value for the range.
- * @returns {number[]} An array of numbers from `start` to `end` with the specified `step`.
- * @example
- * // Returns [0, 1, 2, 3]
- * rangeRight(4);
- * @example
- * // Returns [0, 2, 4, 6]
- * rangeRight(0, 8, 2);
- * @example
- * // Returns [5, 4, 3, 2, 1]
- * rangeRight(1, 6);
- */
-declare function rangeRight(start: number, end?: number, step?: number): number[];
-/**
- * Creates an array of numbers from 0 to `end` with step 1.
- * Used when called as an iteratee for methods like `_.map`.
- * @param {number} end - The end number of the range (exclusive).
- * @param {string | number} index - The index parameter (used for iteratee calls).
- * @param {object} guard - The guard parameter (used for iteratee calls).
- * @returns {number[]} An array of numbers from 0 to `end` with step 1.
- * @example
- * // Returns [0, 1, 2, 3]
- * rangeRight(4, 'index', {});
- */
-declare function rangeRight(end: number, index: string | number, guard: object): number[];
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/compat/math/rangeRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/rangeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates an array of numbers from `start` to `end` with optional `step`.
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} [end] - The end number of the range (exclusive).
- * @param {number} [step] - The step value for the range.
- * @returns {number[]} An array of numbers from `start` to `end` with the specified `step`.
- * @example
- * // Returns [0, 1, 2, 3]
- * rangeRight(4);
- * @example
- * // Returns [0, 2, 4, 6]
- * rangeRight(0, 8, 2);
- * @example
- * // Returns [5, 4, 3, 2, 1]
- * rangeRight(1, 6);
- */
-declare function rangeRight(start: number, end?: number, step?: number): number[];
-/**
- * Creates an array of numbers from 0 to `end` with step 1.
- * Used when called as an iteratee for methods like `_.map`.
- * @param {number} end - The end number of the range (exclusive).
- * @param {string | number} index - The index parameter (used for iteratee calls).
- * @param {object} guard - The guard parameter (used for iteratee calls).
- * @returns {number[]} An array of numbers from 0 to `end` with step 1.
- * @example
- * // Returns [0, 1, 2, 3]
- * rangeRight(4, 'index', {});
- */
-declare function rangeRight(end: number, index: string | number, guard: object): number[];
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/compat/math/rangeRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/rangeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const toFinite = require('../util/toFinite.js');
-
-function rangeRight(start, end, step) {
-    if (step && typeof step !== 'number' && isIterateeCall.isIterateeCall(start, end, step)) {
-        end = step = undefined;
-    }
-    start = toFinite.toFinite(start);
-    if (end === undefined) {
-        end = start;
-        start = 0;
-    }
-    else {
-        end = toFinite.toFinite(end);
-    }
-    step = step === undefined ? (start < end ? 1 : -1) : toFinite.toFinite(step);
-    const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);
-    const result = new Array(length);
-    for (let index = length - 1; index >= 0; index--) {
-        result[index] = start;
-        start += step;
-    }
-    return result;
-}
-
-exports.rangeRight = rangeRight;
Index: de_modules/es-toolkit/dist/compat/math/rangeRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/rangeRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { toFinite } from '../util/toFinite.mjs';
-
-function rangeRight(start, end, step) {
-    if (step && typeof step !== 'number' && isIterateeCall(start, end, step)) {
-        end = step = undefined;
-    }
-    start = toFinite(start);
-    if (end === undefined) {
-        end = start;
-        start = 0;
-    }
-    else {
-        end = toFinite(end);
-    }
-    step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
-    const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);
-    const result = new Array(length);
-    for (let index = length - 1; index >= 0; index--) {
-        result[index] = start;
-        start += step;
-    }
-    return result;
-}
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/compat/math/round.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/round.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded to precision.
- *
- * @param {number} number  The number to round.
- * @param {number} precision The precision to round to.
- * @returns {number} Returns the rounded number.
- *
- * @example
- * round(4.006); // => 4
- * round(4.006, 2); // => 4.01
- * round(4060, -2); // => 4100
- */
-declare function round(number: number, precision?: number): number;
-
-export { round };
Index: de_modules/es-toolkit/dist/compat/math/round.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/round.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Computes number rounded to precision.
- *
- * @param {number} number  The number to round.
- * @param {number} precision The precision to round to.
- * @returns {number} Returns the rounded number.
- *
- * @example
- * round(4.006); // => 4
- * round(4.006, 2); // => 4.01
- * round(4060, -2); // => 4100
- */
-declare function round(number: number, precision?: number): number;
-
-export { round };
Index: de_modules/es-toolkit/dist/compat/math/round.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const decimalAdjust = require('../_internal/decimalAdjust.js');
-
-function round(number, precision = 0) {
-    return decimalAdjust.decimalAdjust('round', number, precision);
-}
-
-exports.round = round;
Index: de_modules/es-toolkit/dist/compat/math/round.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/round.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { decimalAdjust } from '../_internal/decimalAdjust.mjs';
-
-function round(number, precision = 0) {
-    return decimalAdjust('round', number, precision);
-}
-
-export { round };
Index: de_modules/es-toolkit/dist/compat/math/subtract.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/subtract.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Subtracts one number from another.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number. (minuend)
- * @param {number} other The second number.(subtrahend)
- * @returns {number} The difference of the two numbers, or `NaN` if any input is `NaN`.
- *
- * @example
- * subtract(6, 3); // => 3
- * subtract(6, NaN); // => NaN
- * subtract(NaN, 3); // => NaN
- */
-declare function subtract(value: number, other: number): number;
-
-export { subtract };
Index: de_modules/es-toolkit/dist/compat/math/subtract.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/subtract.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Subtracts one number from another.
- *
- * If either of the numbers is `NaN`, the function returns `NaN`.
- *
- * @param {number} value The first number. (minuend)
- * @param {number} other The second number.(subtrahend)
- * @returns {number} The difference of the two numbers, or `NaN` if any input is `NaN`.
- *
- * @example
- * subtract(6, 3); // => 3
- * subtract(6, NaN); // => NaN
- * subtract(NaN, 3); // => NaN
- */
-declare function subtract(value: number, other: number): number;
-
-export { subtract };
Index: de_modules/es-toolkit/dist/compat/math/subtract.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/subtract.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('../util/toNumber.js');
-const toString = require('../util/toString.js');
-
-function subtract(value, other) {
-    if (value === undefined && other === undefined) {
-        return 0;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString.toString(value);
-        other = toString.toString(other);
-    }
-    else {
-        value = toNumber.toNumber(value);
-        other = toNumber.toNumber(other);
-    }
-    return value - other;
-}
-
-exports.subtract = subtract;
Index: de_modules/es-toolkit/dist/compat/math/subtract.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/subtract.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { toNumber } from '../util/toNumber.mjs';
-import { toString } from '../util/toString.mjs';
-
-function subtract(value, other) {
-    if (value === undefined && other === undefined) {
-        return 0;
-    }
-    if (value === undefined || other === undefined) {
-        return value ?? other;
-    }
-    if (typeof value === 'string' || typeof other === 'string') {
-        value = toString(value);
-        other = toString(other);
-    }
-    else {
-        value = toNumber(value);
-        other = toNumber(other);
-    }
-    return value - other;
-}
-
-export { subtract };
Index: de_modules/es-toolkit/dist/compat/math/sum.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sum.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Computes the sum of the values that are returned by the `iteratee` function.
- *
- * It does not coerce values to `number`.
- *
- * @param {ArrayLike<any> | null | undefined} array - The array to iterate over.
- * @returns {number} Returns the sum.
- *
- * @example
- * sum([1, 2, 3]); // => 6
- * sum([1n, 2n, 3n]); // => 6n
- * sum(["1", "2"]); // => "12"
- * sum([1, undefined, 2]); // => 3
- * sum(null); // => 0
- * sum(undefined); // => 0
- */
-declare function sum(array: ArrayLike<any> | null | undefined): number;
-
-export { sum };
Index: de_modules/es-toolkit/dist/compat/math/sum.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sum.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Computes the sum of the values that are returned by the `iteratee` function.
- *
- * It does not coerce values to `number`.
- *
- * @param {ArrayLike<any> | null | undefined} array - The array to iterate over.
- * @returns {number} Returns the sum.
- *
- * @example
- * sum([1, 2, 3]); // => 6
- * sum([1n, 2n, 3n]); // => 6n
- * sum(["1", "2"]); // => "12"
- * sum([1, undefined, 2]); // => 3
- * sum(null); // => 0
- * sum(undefined); // => 0
- */
-declare function sum(array: ArrayLike<any> | null | undefined): number;
-
-export { sum };
Index: de_modules/es-toolkit/dist/compat/math/sum.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sumBy = require('./sumBy.js');
-
-function sum(array) {
-    return sumBy.sumBy(array);
-}
-
-exports.sum = sum;
Index: de_modules/es-toolkit/dist/compat/math/sum.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sum.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { sumBy } from './sumBy.mjs';
-
-function sum(array) {
-    return sumBy(array);
-}
-
-export { sum };
Index: de_modules/es-toolkit/dist/compat/math/sumBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sumBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Computes the sum of the values that are returned by the `iteratee` function.
- *
- * It does not coerce values to `number`.
- *
- * @template T - The type of the array elements.
- * @param {ArrayLike<T> | null | undefined} array - The array to iterate over.
- * @param {((value: T) => number) | string} iteratee - The function invoked per iteration.
- * @returns {number} Returns the sum.
- *
- * @example
- * sumBy([1, undefined, 2], value => value); // => 3
- * sumBy(null); // => 0
- * sumBy(undefined); // => 0
- * sumBy([1, 2, 3]); // => 6
- * sumBy([1n, 2n, 3n]); // => 6n
- * sumBy([{ a: "1" }, { a: "2" }], object => object.a); // => "12"
- */
-declare function sumBy<T>(array: ArrayLike<T> | null | undefined, iteratee?: ((value: T) => number) | string): number;
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/compat/math/sumBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sumBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Computes the sum of the values that are returned by the `iteratee` function.
- *
- * It does not coerce values to `number`.
- *
- * @template T - The type of the array elements.
- * @param {ArrayLike<T> | null | undefined} array - The array to iterate over.
- * @param {((value: T) => number) | string} iteratee - The function invoked per iteration.
- * @returns {number} Returns the sum.
- *
- * @example
- * sumBy([1, undefined, 2], value => value); // => 3
- * sumBy(null); // => 0
- * sumBy(undefined); // => 0
- * sumBy([1, 2, 3]); // => 6
- * sumBy([1n, 2n, 3n]); // => 6n
- * sumBy([{ a: "1" }, { a: "2" }], object => object.a); // => "12"
- */
-declare function sumBy<T>(array: ArrayLike<T> | null | undefined, iteratee?: ((value: T) => number) | string): number;
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/compat/math/sumBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sumBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('../util/iteratee.js');
-
-function sumBy(array, iteratee$1) {
-    if (!array || !array.length) {
-        return 0;
-    }
-    if (iteratee$1 != null) {
-        iteratee$1 = iteratee.iteratee(iteratee$1);
-    }
-    let result = undefined;
-    for (let i = 0; i < array.length; i++) {
-        const current = iteratee$1 ? iteratee$1(array[i]) : array[i];
-        if (current !== undefined) {
-            if (result === undefined) {
-                result = current;
-            }
-            else {
-                result += current;
-            }
-        }
-    }
-    return result;
-}
-
-exports.sumBy = sumBy;
Index: de_modules/es-toolkit/dist/compat/math/sumBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/math/sumBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { iteratee } from '../util/iteratee.mjs';
-
-function sumBy(array, iteratee$1) {
-    if (!array || !array.length) {
-        return 0;
-    }
-    if (iteratee$1 != null) {
-        iteratee$1 = iteratee(iteratee$1);
-    }
-    let result = undefined;
-    for (let i = 0; i < array.length; i++) {
-        const current = iteratee$1 ? iteratee$1(array[i]) : array[i];
-        if (current !== undefined) {
-            if (result === undefined) {
-                result = current;
-            }
-            else {
-                result += current;
-            }
-        }
-    }
-    return result;
-}
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/compat/object/assign.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assign.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-/**
- * Assigns properties from one source object to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assign(target, source);
- * // => { a: 1, b: 3, c: 4 }
- */
-declare function assign<T, U>(object: T, source: U): T & U;
-/**
- * Assigns properties from two source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assign(target, source1, source2);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assign<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Assigns properties from three source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assign(target, source1, source2, source3);
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assign<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Assigns properties from four source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assign(target, source1, source2, source3, source4);
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assign<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Assigns properties from a target object to itself.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assign(target);
- * // => { a: 1, b: 2 }
- */
-declare function assign<T>(object: T): T;
-/**
- * Assigns properties from multiple source objects to a target object.
- *
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects whose properties will be assigned to the target object.
- * @returns {any} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assign(target, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assign(object: any, ...otherArgs: any[]): any;
-
-export { assign };
Index: de_modules/es-toolkit/dist/compat/object/assign.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assign.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-/**
- * Assigns properties from one source object to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assign(target, source);
- * // => { a: 1, b: 3, c: 4 }
- */
-declare function assign<T, U>(object: T, source: U): T & U;
-/**
- * Assigns properties from two source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assign(target, source1, source2);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assign<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Assigns properties from three source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assign(target, source1, source2, source3);
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assign<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Assigns properties from four source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assign(target, source1, source2, source3, source4);
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assign<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Assigns properties from a target object to itself.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assign(target);
- * // => { a: 1, b: 2 }
- */
-declare function assign<T>(object: T): T;
-/**
- * Assigns properties from multiple source objects to a target object.
- *
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects whose properties will be assigned to the target object.
- * @returns {any} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assign(target, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assign(object: any, ...otherArgs: any[]): any;
-
-export { assign };
Index: de_modules/es-toolkit/dist/compat/object/assign.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assign.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function assign(object, ...sources) {
-    for (let i = 0; i < sources.length; i++) {
-        assignImpl(object, sources[i]);
-    }
-    return object;
-}
-function assignImpl(object, source) {
-    const keys$1 = keys.keys(source);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        if (!(key in object) || !isEqualsSameValueZero.isEqualsSameValueZero(object[key], source[key])) {
-            object[key] = source[key];
-        }
-    }
-}
-
-exports.assign = assign;
Index: de_modules/es-toolkit/dist/compat/object/assign.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assign.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { keys } from './keys.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function assign(object, ...sources) {
-    for (let i = 0; i < sources.length; i++) {
-        assignImpl(object, sources[i]);
-    }
-    return object;
-}
-function assignImpl(object, source) {
-    const keys$1 = keys(source);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        if (!(key in object) || !isEqualsSameValueZero(object[key], source[key])) {
-            object[key] = source[key];
-        }
-    }
-}
-
-export { assign };
Index: de_modules/es-toolkit/dist/compat/object/assignIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/**
- * Assigns own and inherited properties from one source object to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignIn(target, source);
- * // => { a: 1, b: 3, c: 4 }
- */
-declare function assignIn<T, U>(object: T, source: U): T & U;
-/**
- * Assigns own and inherited properties from two source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignIn(target, source1, source2);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignIn<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Assigns own and inherited properties from three source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignIn(target, source1, source2, source3);
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignIn<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Assigns own and inherited properties from four source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignIn(target, source1, source2, source3, source4);
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignIn<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignIn(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignIn<T>(object: T): T;
-/**
- * Assigns own and inherited properties from multiple source objects to a target object.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects whose properties will be assigned to the target object.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignIn(target, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignIn<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignIn };
Index: de_modules/es-toolkit/dist/compat/object/assignIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/**
- * Assigns own and inherited properties from one source object to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignIn(target, source);
- * // => { a: 1, b: 3, c: 4 }
- */
-declare function assignIn<T, U>(object: T, source: U): T & U;
-/**
- * Assigns own and inherited properties from two source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignIn(target, source1, source2);
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignIn<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Assigns own and inherited properties from three source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignIn(target, source1, source2, source3);
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignIn<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Assigns own and inherited properties from four source objects to a target object.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignIn(target, source1, source2, source3, source4);
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignIn<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignIn(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignIn<T>(object: T): T;
-/**
- * Assigns own and inherited properties from multiple source objects to a target object.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects whose properties will be assigned to the target object.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignIn(target, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignIn<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignIn };
Index: de_modules/es-toolkit/dist/compat/object/assignIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function assignIn(object, ...sources) {
-    for (let i = 0; i < sources.length; i++) {
-        assignInImpl(object, sources[i]);
-    }
-    return object;
-}
-function assignInImpl(object, source) {
-    const keys = keysIn.keysIn(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        if (!(key in object) || !isEqualsSameValueZero.isEqualsSameValueZero(object[key], source[key])) {
-            object[key] = source[key];
-        }
-    }
-}
-
-exports.assignIn = assignIn;
Index: de_modules/es-toolkit/dist/compat/object/assignIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function assignIn(object, ...sources) {
-    for (let i = 0; i < sources.length; i++) {
-        assignInImpl(object, sources[i]);
-    }
-    return object;
-}
-function assignInImpl(object, source) {
-    const keys = keysIn(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        if (!(key in object) || !isEqualsSameValueZero(object[key], source[key])) {
-            object[key] = source[key];
-        }
-    }
-}
-
-export { assignIn };
Index: de_modules/es-toolkit/dist/compat/object/assignInWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignInWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
-/**
- * Assigns own and inherited properties from one source object to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignInWith(target, source, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 4 }
- */
-declare function assignInWith<T, U>(object: T, source: U, customizer: AssignCustomizer): T & U;
-/**
- * Assigns own and inherited properties from two source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignInWith(target, source1, source2, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignInWith<T, U, V>(object: T, source1: U, source2: V, customizer: AssignCustomizer): T & U & V;
-/**
- * Assigns own and inherited properties from three source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignInWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignInWith<T, U, V, W>(object: T, source1: U, source2: V, source3: W, customizer: AssignCustomizer): T & U & V & W;
-/**
- * Assigns own and inherited properties from four source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignInWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignInWith<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X, customizer: AssignCustomizer): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignInWith(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignInWith<T>(object: T): T;
-/**
- * Assigns own and inherited properties from multiple source objects to a target object using a customizer function.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects and customizer function.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignInWith(target, { b: 2 }, { c: 3 }, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignInWith<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignInWith };
Index: de_modules/es-toolkit/dist/compat/object/assignInWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignInWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
-/**
- * Assigns own and inherited properties from one source object to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignInWith(target, source, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 4 }
- */
-declare function assignInWith<T, U>(object: T, source: U, customizer: AssignCustomizer): T & U;
-/**
- * Assigns own and inherited properties from two source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignInWith(target, source1, source2, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignInWith<T, U, V>(object: T, source1: U, source2: V, customizer: AssignCustomizer): T & U & V;
-/**
- * Assigns own and inherited properties from three source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignInWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignInWith<T, U, V, W>(object: T, source1: U, source2: V, source3: W, customizer: AssignCustomizer): T & U & V & W;
-/**
- * Assigns own and inherited properties from four source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignInWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignInWith<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X, customizer: AssignCustomizer): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignInWith(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignInWith<T>(object: T): T;
-/**
- * Assigns own and inherited properties from multiple source objects to a target object using a customizer function.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects and customizer function.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignInWith(target, { b: 2 }, { c: 3 }, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignInWith<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignInWith };
Index: de_modules/es-toolkit/dist/compat/object/assignInWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignInWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function assignInWith(object, ...sources) {
-    let getValueToAssign = sources[sources.length - 1];
-    if (typeof getValueToAssign === 'function') {
-        sources.pop();
-    }
-    else {
-        getValueToAssign = undefined;
-    }
-    for (let i = 0; i < sources.length; i++) {
-        assignInWithImpl(object, sources[i], getValueToAssign);
-    }
-    return object;
-}
-function assignInWithImpl(object, source, getValueToAssign) {
-    const keys = keysIn.keysIn(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const objValue = object[key];
-        const srcValue = source[key];
-        const newValue = getValueToAssign?.(objValue, srcValue, key, object, source) ?? srcValue;
-        if (!(key in object) || !isEqualsSameValueZero.isEqualsSameValueZero(objValue, newValue)) {
-            object[key] = newValue;
-        }
-    }
-}
-
-exports.assignInWith = assignInWith;
Index: de_modules/es-toolkit/dist/compat/object/assignInWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignInWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function assignInWith(object, ...sources) {
-    let getValueToAssign = sources[sources.length - 1];
-    if (typeof getValueToAssign === 'function') {
-        sources.pop();
-    }
-    else {
-        getValueToAssign = undefined;
-    }
-    for (let i = 0; i < sources.length; i++) {
-        assignInWithImpl(object, sources[i], getValueToAssign);
-    }
-    return object;
-}
-function assignInWithImpl(object, source, getValueToAssign) {
-    const keys = keysIn(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const objValue = object[key];
-        const srcValue = source[key];
-        const newValue = getValueToAssign?.(objValue, srcValue, key, object, source) ?? srcValue;
-        if (!(key in object) || !isEqualsSameValueZero(objValue, newValue)) {
-            object[key] = newValue;
-        }
-    }
-}
-
-export { assignInWith };
Index: de_modules/es-toolkit/dist/compat/object/assignWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
-/**
- * Assigns own properties from one source object to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignWith(target, source, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 4 }
- */
-declare function assignWith<T, U>(object: T, source: U, customizer: AssignCustomizer): T & U;
-/**
- * Assigns own properties from two source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignWith(target, source1, source2, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignWith<T, U, V>(object: T, source1: U, source2: V, customizer: AssignCustomizer): T & U & V;
-/**
- * Assigns own properties from three source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignWith<T, U, V, W>(object: T, source1: U, source2: V, source3: W, customizer: AssignCustomizer): T & U & V & W;
-/**
- * Assigns own properties from four source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignWith<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X, customizer: AssignCustomizer): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignWith(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignWith<T>(object: T): T;
-/**
- * Assigns own properties from multiple source objects to a target object using a customizer function.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects and customizer function.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignWith(target, { b: 2 }, { c: 3 }, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignWith<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignWith };
Index: de_modules/es-toolkit/dist/compat/object/assignWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
-/**
- * Assigns own properties from one source object to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source - The source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U} The updated target object with properties from the source object assigned.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- * const result = assignWith(target, source, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 4 }
- */
-declare function assignWith<T, U>(object: T, source: U, customizer: AssignCustomizer): T & U;
-/**
- * Assigns own properties from two source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const result = assignWith(target, source1, source2, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignWith<T, U, V>(object: T, source1: U, source2: V, customizer: AssignCustomizer): T & U & V;
-/**
- * Assigns own properties from three source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const result = assignWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function assignWith<T, U, V, W>(object: T, source1: U, source2: V, source3: W, customizer: AssignCustomizer): T & U & V & W;
-/**
- * Assigns own properties from four source objects to a target object using a customizer function.
- *
- * @template T - The type of the target object.
- * @template U - The type of the first source object.
- * @template V - The type of the second source object.
- * @template W - The type of the third source object.
- * @template X - The type of the fourth source object.
- * @param {T} object - The target object to which properties will be assigned.
- * @param {U} source1 - The first source object whose properties will be assigned to the target object.
- * @param {V} source2 - The second source object whose properties will be assigned to the target object.
- * @param {W} source3 - The third source object whose properties will be assigned to the target object.
- * @param {X} source4 - The fourth source object whose properties will be assigned to the target object.
- * @param {AssignCustomizer} customizer - The function to customize assigned values.
- * @returns {T & U & V & W & X} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- * const result = assignWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function assignWith<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X, customizer: AssignCustomizer): T & U & V & W & X;
-/**
- * Returns the target object as-is.
- *
- * @template T - The type of the target object.
- * @param {T} object - The target object.
- * @returns {T} The target object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const result = assignWith(target);
- * // => { a: 1, b: 2 }
- */
-declare function assignWith<T>(object: T): T;
-/**
- * Assigns own properties from multiple source objects to a target object using a customizer function.
- *
- * @template R - The type of the result.
- * @param {any} object - The target object to which properties will be assigned.
- * @param {...any[]} otherArgs - The source objects and customizer function.
- * @returns {R} The updated target object with properties from the source objects assigned.
- *
- * @example
- * const target = { a: 1 };
- * const result = assignWith(target, { b: 2 }, { c: 3 }, (objValue, srcValue) => {
- *   return objValue === undefined ? srcValue : objValue;
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function assignWith<R>(object: any, ...otherArgs: any[]): R;
-
-export { assignWith };
Index: de_modules/es-toolkit/dist/compat/object/assignWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function assignWith(object, ...sources) {
-    let getValueToAssign = sources[sources.length - 1];
-    if (typeof getValueToAssign === 'function') {
-        sources.pop();
-    }
-    else {
-        getValueToAssign = undefined;
-    }
-    for (let i = 0; i < sources.length; i++) {
-        assignWithImpl(object, sources[i], getValueToAssign);
-    }
-    return object;
-}
-function assignWithImpl(object, source, getValueToAssign) {
-    const keys$1 = keys.keys(source);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        const objValue = object[key];
-        const srcValue = source[key];
-        const newValue = getValueToAssign?.(objValue, srcValue, key, object, source) ?? srcValue;
-        if (!(key in object) || !isEqualsSameValueZero.isEqualsSameValueZero(objValue, newValue)) {
-            object[key] = newValue;
-        }
-    }
-}
-
-exports.assignWith = assignWith;
Index: de_modules/es-toolkit/dist/compat/object/assignWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/assignWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { keys } from './keys.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function assignWith(object, ...sources) {
-    let getValueToAssign = sources[sources.length - 1];
-    if (typeof getValueToAssign === 'function') {
-        sources.pop();
-    }
-    else {
-        getValueToAssign = undefined;
-    }
-    for (let i = 0; i < sources.length; i++) {
-        assignWithImpl(object, sources[i], getValueToAssign);
-    }
-    return object;
-}
-function assignWithImpl(object, source, getValueToAssign) {
-    const keys$1 = keys(source);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        const objValue = object[key];
-        const srcValue = source[key];
-        const newValue = getValueToAssign?.(objValue, srcValue, key, object, source) ?? srcValue;
-        if (!(key in object) || !isEqualsSameValueZero(objValue, newValue)) {
-            object[key] = newValue;
-        }
-    }
-}
-
-export { assignWith };
Index: de_modules/es-toolkit/dist/compat/object/at.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/at.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-type PropertyName = string | number | symbol;
-type Many<T> = T | readonly T[];
-type PropertyPath = Many<PropertyName>;
-/**
- * Gets values at given paths from a dictionary or numeric dictionary.
- *
- * @template T - The type of the values in the dictionary.
- * @param {Record<string, T> | Record<number, T> | null | undefined} object - The dictionary to query.
- * @param {...PropertyPath[]} props - The property paths to get values for.
- * @returns {T[]} Returns an array of the picked values.
- *
- * @example
- * const object = { 'a': 1, 'b': 2, 'c': 3 };
- * at(object, 'a', 'c');
- * // => [1, 3]
- */
-declare function at<T>(object: Record<string, T> | Record<number, T> | null | undefined, ...props: PropertyPath[]): T[];
-/**
- * Gets values at given keys from an object.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object - The object to query.
- * @param {...Array<Many<keyof T>>} props - The property keys to get values for.
- * @returns {Array<T[keyof T]>} Returns an array of the picked values.
- *
- * @example
- * const object = { 'a': 1, 'b': 2, 'c': 3 };
- * at(object, 'a', 'c');
- * // => [1, 3]
- */
-declare function at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
-
-export { at };
Index: de_modules/es-toolkit/dist/compat/object/at.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/at.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-type PropertyName = string | number | symbol;
-type Many<T> = T | readonly T[];
-type PropertyPath = Many<PropertyName>;
-/**
- * Gets values at given paths from a dictionary or numeric dictionary.
- *
- * @template T - The type of the values in the dictionary.
- * @param {Record<string, T> | Record<number, T> | null | undefined} object - The dictionary to query.
- * @param {...PropertyPath[]} props - The property paths to get values for.
- * @returns {T[]} Returns an array of the picked values.
- *
- * @example
- * const object = { 'a': 1, 'b': 2, 'c': 3 };
- * at(object, 'a', 'c');
- * // => [1, 3]
- */
-declare function at<T>(object: Record<string, T> | Record<number, T> | null | undefined, ...props: PropertyPath[]): T[];
-/**
- * Gets values at given keys from an object.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object - The object to query.
- * @param {...Array<Many<keyof T>>} props - The property keys to get values for.
- * @returns {Array<T[keyof T]>} Returns an array of the picked values.
- *
- * @example
- * const object = { 'a': 1, 'b': 2, 'c': 3 };
- * at(object, 'a', 'c');
- * // => [1, 3]
- */
-declare function at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
-
-export { at };
Index: de_modules/es-toolkit/dist/compat/object/at.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/at.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isString = require('../predicate/isString.js');
-
-function at(object, ...paths) {
-    if (paths.length === 0) {
-        return [];
-    }
-    const allPaths = [];
-    for (let i = 0; i < paths.length; i++) {
-        const path = paths[i];
-        if (!isArrayLike.isArrayLike(path) || isString.isString(path)) {
-            allPaths.push(path);
-            continue;
-        }
-        for (let j = 0; j < path.length; j++) {
-            allPaths.push(path[j]);
-        }
-    }
-    const result = [];
-    for (let i = 0; i < allPaths.length; i++) {
-        result.push(get.get(object, allPaths[i]));
-    }
-    return result;
-}
-
-exports.at = at;
Index: de_modules/es-toolkit/dist/compat/object/at.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/at.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { get } from './get.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isString } from '../predicate/isString.mjs';
-
-function at(object, ...paths) {
-    if (paths.length === 0) {
-        return [];
-    }
-    const allPaths = [];
-    for (let i = 0; i < paths.length; i++) {
-        const path = paths[i];
-        if (!isArrayLike(path) || isString(path)) {
-            allPaths.push(path);
-            continue;
-        }
-        for (let j = 0; j < path.length; j++) {
-            allPaths.push(path[j]);
-        }
-    }
-    const result = [];
-    for (let i = 0; i < allPaths.length; i++) {
-        result.push(get(object, allPaths[i]));
-    }
-    return result;
-}
-
-export { at };
Index: de_modules/es-toolkit/dist/compat/object/clone.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/clone.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a shallow clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A shallow clone of the given object.
- *
- * @example
- * // Clone a primitive objs
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- */
-declare function clone<T>(obj: T): T;
-
-export { clone };
Index: de_modules/es-toolkit/dist/compat/object/clone.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/clone.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a shallow clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A shallow clone of the given object.
- *
- * @example
- * // Clone a primitive objs
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- */
-declare function clone<T>(obj: T): T;
-
-export { clone };
Index: de_modules/es-toolkit/dist/compat/object/clone.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/clone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,164 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPrimitive = require('../../predicate/isPrimitive.js');
-const getTag = require('../_internal/getTag.js');
-const tags = require('../_internal/tags.js');
-const isArray = require('../predicate/isArray.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-
-function clone(obj) {
-    if (isPrimitive.isPrimitive(obj)) {
-        return obj;
-    }
-    const tag = getTag.getTag(obj);
-    if (!isCloneableObject(obj)) {
-        return {};
-    }
-    if (isArray.isArray(obj)) {
-        const result = Array.from(obj);
-        if (obj.length > 0 && typeof obj[0] === 'string' && Object.hasOwn(obj, 'index')) {
-            result.index = obj.index;
-            result.input = obj.input;
-        }
-        return result;
-    }
-    if (isTypedArray.isTypedArray(obj)) {
-        const typedArray = obj;
-        const Ctor = typedArray.constructor;
-        return new Ctor(typedArray.buffer, typedArray.byteOffset, typedArray.length);
-    }
-    if (tag === tags.arrayBufferTag) {
-        return new ArrayBuffer(obj.byteLength);
-    }
-    if (tag === tags.dataViewTag) {
-        const dataView = obj;
-        const buffer = dataView.buffer;
-        const byteOffset = dataView.byteOffset;
-        const byteLength = dataView.byteLength;
-        const clonedBuffer = new ArrayBuffer(byteLength);
-        const srcView = new Uint8Array(buffer, byteOffset, byteLength);
-        const destView = new Uint8Array(clonedBuffer);
-        destView.set(srcView);
-        return new DataView(clonedBuffer);
-    }
-    if (tag === tags.booleanTag || tag === tags.numberTag || tag === tags.stringTag) {
-        const Ctor = obj.constructor;
-        const clone = new Ctor(obj.valueOf());
-        if (tag === tags.stringTag) {
-            cloneStringObjectProperties(clone, obj);
-        }
-        else {
-            copyOwnProperties(clone, obj);
-        }
-        return clone;
-    }
-    if (tag === tags.dateTag) {
-        return new Date(Number(obj));
-    }
-    if (tag === tags.regexpTag) {
-        const regExp = obj;
-        const clone = new RegExp(regExp.source, regExp.flags);
-        clone.lastIndex = regExp.lastIndex;
-        return clone;
-    }
-    if (tag === tags.symbolTag) {
-        return Object(Symbol.prototype.valueOf.call(obj));
-    }
-    if (tag === tags.mapTag) {
-        const map = obj;
-        const result = new Map();
-        map.forEach((obj, key) => {
-            result.set(key, obj);
-        });
-        return result;
-    }
-    if (tag === tags.setTag) {
-        const set = obj;
-        const result = new Set();
-        set.forEach(obj => {
-            result.add(obj);
-        });
-        return result;
-    }
-    if (tag === tags.argumentsTag) {
-        const args = obj;
-        const result = {};
-        copyOwnProperties(result, args);
-        result.length = args.length;
-        result[Symbol.iterator] = args[Symbol.iterator];
-        return result;
-    }
-    const result = {};
-    copyPrototype(result, obj);
-    copyOwnProperties(result, obj);
-    copySymbolProperties(result, obj);
-    return result;
-}
-function isCloneableObject(object) {
-    switch (getTag.getTag(object)) {
-        case tags.argumentsTag:
-        case tags.arrayTag:
-        case tags.arrayBufferTag:
-        case tags.dataViewTag:
-        case tags.booleanTag:
-        case tags.dateTag:
-        case tags.float32ArrayTag:
-        case tags.float64ArrayTag:
-        case tags.int8ArrayTag:
-        case tags.int16ArrayTag:
-        case tags.int32ArrayTag:
-        case tags.mapTag:
-        case tags.numberTag:
-        case tags.objectTag:
-        case tags.regexpTag:
-        case tags.setTag:
-        case tags.stringTag:
-        case tags.symbolTag:
-        case tags.uint8ArrayTag:
-        case tags.uint8ClampedArrayTag:
-        case tags.uint16ArrayTag:
-        case tags.uint32ArrayTag: {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-function copyOwnProperties(target, source) {
-    for (const key in source) {
-        if (Object.hasOwn(source, key)) {
-            target[key] = source[key];
-        }
-    }
-}
-function copySymbolProperties(target, source) {
-    const symbols = Object.getOwnPropertySymbols(source);
-    for (let i = 0; i < symbols.length; i++) {
-        const symbol = symbols[i];
-        if (Object.prototype.propertyIsEnumerable.call(source, symbol)) {
-            target[symbol] = source[symbol];
-        }
-    }
-}
-function cloneStringObjectProperties(target, source) {
-    const stringLength = source.valueOf().length;
-    for (const key in source) {
-        if (Object.hasOwn(source, key) && (Number.isNaN(Number(key)) || Number(key) >= stringLength)) {
-            target[key] = source[key];
-        }
-    }
-}
-function copyPrototype(target, source) {
-    const proto = Object.getPrototypeOf(source);
-    if (proto !== null) {
-        const Ctor = source.constructor;
-        if (typeof Ctor === 'function') {
-            Object.setPrototypeOf(target, proto);
-        }
-    }
-}
-
-exports.clone = clone;
Index: de_modules/es-toolkit/dist/compat/object/clone.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/clone.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,160 +1,0 @@
-import { isPrimitive } from '../../predicate/isPrimitive.mjs';
-import { getTag } from '../_internal/getTag.mjs';
-import { arrayBufferTag, dataViewTag, booleanTag, numberTag, stringTag, dateTag, regexpTag, symbolTag, mapTag, setTag, argumentsTag, uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, objectTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, arrayTag } from '../_internal/tags.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-
-function clone(obj) {
-    if (isPrimitive(obj)) {
-        return obj;
-    }
-    const tag = getTag(obj);
-    if (!isCloneableObject(obj)) {
-        return {};
-    }
-    if (isArray(obj)) {
-        const result = Array.from(obj);
-        if (obj.length > 0 && typeof obj[0] === 'string' && Object.hasOwn(obj, 'index')) {
-            result.index = obj.index;
-            result.input = obj.input;
-        }
-        return result;
-    }
-    if (isTypedArray(obj)) {
-        const typedArray = obj;
-        const Ctor = typedArray.constructor;
-        return new Ctor(typedArray.buffer, typedArray.byteOffset, typedArray.length);
-    }
-    if (tag === arrayBufferTag) {
-        return new ArrayBuffer(obj.byteLength);
-    }
-    if (tag === dataViewTag) {
-        const dataView = obj;
-        const buffer = dataView.buffer;
-        const byteOffset = dataView.byteOffset;
-        const byteLength = dataView.byteLength;
-        const clonedBuffer = new ArrayBuffer(byteLength);
-        const srcView = new Uint8Array(buffer, byteOffset, byteLength);
-        const destView = new Uint8Array(clonedBuffer);
-        destView.set(srcView);
-        return new DataView(clonedBuffer);
-    }
-    if (tag === booleanTag || tag === numberTag || tag === stringTag) {
-        const Ctor = obj.constructor;
-        const clone = new Ctor(obj.valueOf());
-        if (tag === stringTag) {
-            cloneStringObjectProperties(clone, obj);
-        }
-        else {
-            copyOwnProperties(clone, obj);
-        }
-        return clone;
-    }
-    if (tag === dateTag) {
-        return new Date(Number(obj));
-    }
-    if (tag === regexpTag) {
-        const regExp = obj;
-        const clone = new RegExp(regExp.source, regExp.flags);
-        clone.lastIndex = regExp.lastIndex;
-        return clone;
-    }
-    if (tag === symbolTag) {
-        return Object(Symbol.prototype.valueOf.call(obj));
-    }
-    if (tag === mapTag) {
-        const map = obj;
-        const result = new Map();
-        map.forEach((obj, key) => {
-            result.set(key, obj);
-        });
-        return result;
-    }
-    if (tag === setTag) {
-        const set = obj;
-        const result = new Set();
-        set.forEach(obj => {
-            result.add(obj);
-        });
-        return result;
-    }
-    if (tag === argumentsTag) {
-        const args = obj;
-        const result = {};
-        copyOwnProperties(result, args);
-        result.length = args.length;
-        result[Symbol.iterator] = args[Symbol.iterator];
-        return result;
-    }
-    const result = {};
-    copyPrototype(result, obj);
-    copyOwnProperties(result, obj);
-    copySymbolProperties(result, obj);
-    return result;
-}
-function isCloneableObject(object) {
-    switch (getTag(object)) {
-        case argumentsTag:
-        case arrayTag:
-        case arrayBufferTag:
-        case dataViewTag:
-        case booleanTag:
-        case dateTag:
-        case float32ArrayTag:
-        case float64ArrayTag:
-        case int8ArrayTag:
-        case int16ArrayTag:
-        case int32ArrayTag:
-        case mapTag:
-        case numberTag:
-        case objectTag:
-        case regexpTag:
-        case setTag:
-        case stringTag:
-        case symbolTag:
-        case uint8ArrayTag:
-        case uint8ClampedArrayTag:
-        case uint16ArrayTag:
-        case uint32ArrayTag: {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-function copyOwnProperties(target, source) {
-    for (const key in source) {
-        if (Object.hasOwn(source, key)) {
-            target[key] = source[key];
-        }
-    }
-}
-function copySymbolProperties(target, source) {
-    const symbols = Object.getOwnPropertySymbols(source);
-    for (let i = 0; i < symbols.length; i++) {
-        const symbol = symbols[i];
-        if (Object.prototype.propertyIsEnumerable.call(source, symbol)) {
-            target[symbol] = source[symbol];
-        }
-    }
-}
-function cloneStringObjectProperties(target, source) {
-    const stringLength = source.valueOf().length;
-    for (const key in source) {
-        if (Object.hasOwn(source, key) && (Number.isNaN(Number(key)) || Number(key) >= stringLength)) {
-            target[key] = source[key];
-        }
-    }
-}
-function copyPrototype(target, source) {
-    const proto = Object.getPrototypeOf(source);
-    if (proto !== null) {
-        const Ctor = source.constructor;
-        if (typeof Ctor === 'function') {
-            Object.setPrototypeOf(target, proto);
-        }
-    }
-}
-
-export { clone };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Creates a deep clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an array with nested objects
- * const arr = [1, { a: 1 }, [1, 2, 3]];
- * const clonedArr = clone(arr);
- * arr[1].a = 2;
- * console.log(arr); // [2, { a: 2 }, [1, 2, 3]]
- * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an object with nested objects
- * const obj = { a: 1, b: { c: 1 } };
- * const clonedObj = clone(obj);
- * obj.b.c = 2;
- * console.log(obj); // { a: 1, b: { c: 2 } }
- * console.log(clonedObj); // { a: 1, b: { c: 1 } }
- * console.log(clonedObj === obj); // false
- */
-declare function cloneDeep<T>(obj: T): T;
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Creates a deep clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an array with nested objects
- * const arr = [1, { a: 1 }, [1, 2, 3]];
- * const clonedArr = clone(arr);
- * arr[1].a = 2;
- * console.log(arr); // [2, { a: 2 }, [1, 2, 3]]
- * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an object with nested objects
- * const obj = { a: 1, b: { c: 1 } };
- * const clonedObj = clone(obj);
- * obj.b.c = 2;
- * console.log(obj); // { a: 1, b: { c: 2 } }
- * console.log(clonedObj); // { a: 1, b: { c: 1 } }
- * console.log(clonedObj === obj); // false
- */
-declare function cloneDeep<T>(obj: T): T;
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeep.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeepWith = require('./cloneDeepWith.js');
-
-function cloneDeep(obj) {
-    return cloneDeepWith.cloneDeepWith(obj);
-}
-
-exports.cloneDeep = cloneDeep;
Index: de_modules/es-toolkit/dist/compat/object/cloneDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { cloneDeepWith } from './cloneDeepWith.mjs';
-
-function cloneDeep(obj) {
-    return cloneDeepWith(obj);
-}
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeepWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeepWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-type CloneDeepWithCustomizer<TObject> = (value: any, key: number | string | undefined, object: TObject | undefined, stack: any) => any;
-/**
- * Creates a deep clone of the given value using a customizer function.
- *
- * @template T - The type of the value.
- * @param {T} value - The value to clone.
- * @param {CloneDeepWithCustomizer<T>} customizer - A function to customize the cloning process.
- * @returns {any} - A deep clone of the given value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const clonedObj = cloneDeepWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2;
- *   }
- * });
- * // => { a: 2, b: 4 }
- */
-declare function cloneDeepWith<T>(value: T, customizer: CloneDeepWithCustomizer<T>): any;
-/**
- * Creates a deep clone of the given value.
- *
- * @template T - The type of the value.
- * @param {T} value - The value to clone.
- * @returns {T} - A deep clone of the given value.
- *
- * @example
- * const obj = { a: 1, b: { c: 2 } };
- * const clonedObj = cloneDeepWith(obj);
- * // => { a: 1, b: { c: 2 } }
- */
-declare function cloneDeepWith<T>(value: T): T;
-
-export { cloneDeepWith };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeepWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeepWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-type CloneDeepWithCustomizer<TObject> = (value: any, key: number | string | undefined, object: TObject | undefined, stack: any) => any;
-/**
- * Creates a deep clone of the given value using a customizer function.
- *
- * @template T - The type of the value.
- * @param {T} value - The value to clone.
- * @param {CloneDeepWithCustomizer<T>} customizer - A function to customize the cloning process.
- * @returns {any} - A deep clone of the given value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const clonedObj = cloneDeepWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2;
- *   }
- * });
- * // => { a: 2, b: 4 }
- */
-declare function cloneDeepWith<T>(value: T, customizer: CloneDeepWithCustomizer<T>): any;
-/**
- * Creates a deep clone of the given value.
- *
- * @template T - The type of the value.
- * @param {T} value - The value to clone.
- * @returns {T} - A deep clone of the given value.
- *
- * @example
- * const obj = { a: 1, b: { c: 2 } };
- * const clonedObj = cloneDeepWith(obj);
- * // => { a: 1, b: { c: 2 } }
- */
-declare function cloneDeepWith<T>(value: T): T;
-
-export { cloneDeepWith };
Index: de_modules/es-toolkit/dist/compat/object/cloneDeepWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeepWith$1 = require('../../object/cloneDeepWith.js');
-const getTag = require('../_internal/getTag.js');
-const tags = require('../_internal/tags.js');
-
-function cloneDeepWith(obj, customizer) {
-    return cloneDeepWith$1.cloneDeepWith(obj, (value, key, object, stack) => {
-        const cloned = customizer?.(value, key, object, stack);
-        if (cloned !== undefined) {
-            return cloned;
-        }
-        if (typeof obj !== 'object') {
-            return undefined;
-        }
-        if (getTag.getTag(obj) === tags.objectTag && typeof obj.constructor !== 'function') {
-            const result = {};
-            stack.set(obj, result);
-            cloneDeepWith$1.copyProperties(result, obj, object, stack);
-            return result;
-        }
-        switch (Object.prototype.toString.call(obj)) {
-            case tags.numberTag:
-            case tags.stringTag:
-            case tags.booleanTag: {
-                const result = new obj.constructor(obj?.valueOf());
-                cloneDeepWith$1.copyProperties(result, obj);
-                return result;
-            }
-            case tags.argumentsTag: {
-                const result = {};
-                cloneDeepWith$1.copyProperties(result, obj);
-                result.length = obj.length;
-                result[Symbol.iterator] = obj[Symbol.iterator];
-                return result;
-            }
-            default: {
-                return undefined;
-            }
-        }
-    });
-}
-
-exports.cloneDeepWith = cloneDeepWith;
Index: de_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { cloneDeepWith as cloneDeepWith$1, copyProperties } from '../../object/cloneDeepWith.mjs';
-import { getTag } from '../_internal/getTag.mjs';
-import { objectTag, argumentsTag, booleanTag, stringTag, numberTag } from '../_internal/tags.mjs';
-
-function cloneDeepWith(obj, customizer) {
-    return cloneDeepWith$1(obj, (value, key, object, stack) => {
-        const cloned = customizer?.(value, key, object, stack);
-        if (cloned !== undefined) {
-            return cloned;
-        }
-        if (typeof obj !== 'object') {
-            return undefined;
-        }
-        if (getTag(obj) === objectTag && typeof obj.constructor !== 'function') {
-            const result = {};
-            stack.set(obj, result);
-            copyProperties(result, obj, object, stack);
-            return result;
-        }
-        switch (Object.prototype.toString.call(obj)) {
-            case numberTag:
-            case stringTag:
-            case booleanTag: {
-                const result = new obj.constructor(obj?.valueOf());
-                copyProperties(result, obj);
-                return result;
-            }
-            case argumentsTag: {
-                const result = {};
-                copyProperties(result, obj);
-                result.length = obj.length;
-                result[Symbol.iterator] = obj[Symbol.iterator];
-                return result;
-            }
-            default: {
-                return undefined;
-            }
-        }
-    });
-}
-
-export { cloneDeepWith };
Index: de_modules/es-toolkit/dist/compat/object/cloneWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-type CloneWithCustomizer<T, R> = (value: T, key: number | string | undefined, object: any, stack: any) => R;
-/**
- * Creates a shallow clone of a value with customizer that returns a specific result type.
- *
- * @template T - The type of the value to clone.
- * @template R - The result type extending primitive types or objects.
- * @param {T} value - The value to clone.
- * @param {CloneWithCustomizer<T, R>} customizer - The function to customize cloning.
- * @returns {R} Returns the cloned value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj, (value) => {
- *   if (typeof value === 'object') {
- *     return JSON.parse(JSON.stringify(value));
- *   }
- * });
- * // => { a: 1, b: 2 }
- */
-declare function cloneWith<T, R extends object | string | number | boolean | null>(value: T, customizer: CloneWithCustomizer<T, R>): R;
-/**
- * Creates a shallow clone of a value with optional customizer.
- *
- * @template T - The type of the value to clone.
- * @template R - The result type.
- * @param {T} value - The value to clone.
- * @param {CloneWithCustomizer<T, R | undefined>} customizer - The function to customize cloning.
- * @returns {R | T} Returns the cloned value or the customized result.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2;
- *   }
- * });
- * // => { a: 2, b: 4 }
- */
-declare function cloneWith<T, R>(value: T, customizer: CloneWithCustomizer<T, R | undefined>): R | T;
-/**
- * Creates a shallow clone of a value.
- *
- * @template T - The type of the value to clone.
- * @param {T} value - The value to clone.
- * @returns {T} Returns the cloned value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj);
- * // => { a: 1, b: 2 }
- */
-declare function cloneWith<T>(value: T): T;
-
-export { cloneWith };
Index: de_modules/es-toolkit/dist/compat/object/cloneWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-type CloneWithCustomizer<T, R> = (value: T, key: number | string | undefined, object: any, stack: any) => R;
-/**
- * Creates a shallow clone of a value with customizer that returns a specific result type.
- *
- * @template T - The type of the value to clone.
- * @template R - The result type extending primitive types or objects.
- * @param {T} value - The value to clone.
- * @param {CloneWithCustomizer<T, R>} customizer - The function to customize cloning.
- * @returns {R} Returns the cloned value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj, (value) => {
- *   if (typeof value === 'object') {
- *     return JSON.parse(JSON.stringify(value));
- *   }
- * });
- * // => { a: 1, b: 2 }
- */
-declare function cloneWith<T, R extends object | string | number | boolean | null>(value: T, customizer: CloneWithCustomizer<T, R>): R;
-/**
- * Creates a shallow clone of a value with optional customizer.
- *
- * @template T - The type of the value to clone.
- * @template R - The result type.
- * @param {T} value - The value to clone.
- * @param {CloneWithCustomizer<T, R | undefined>} customizer - The function to customize cloning.
- * @returns {R | T} Returns the cloned value or the customized result.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2;
- *   }
- * });
- * // => { a: 2, b: 4 }
- */
-declare function cloneWith<T, R>(value: T, customizer: CloneWithCustomizer<T, R | undefined>): R | T;
-/**
- * Creates a shallow clone of a value.
- *
- * @template T - The type of the value to clone.
- * @param {T} value - The value to clone.
- * @returns {T} Returns the cloned value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * const cloned = cloneWith(obj);
- * // => { a: 1, b: 2 }
- */
-declare function cloneWith<T>(value: T): T;
-
-export { cloneWith };
Index: de_modules/es-toolkit/dist/compat/object/cloneWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const clone = require('./clone.js');
-
-function cloneWith(value, customizer) {
-    if (!customizer) {
-        return clone.clone(value);
-    }
-    const result = customizer(value);
-    if (result !== undefined) {
-        return result;
-    }
-    return clone.clone(value);
-}
-
-exports.cloneWith = cloneWith;
Index: de_modules/es-toolkit/dist/compat/object/cloneWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/cloneWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { clone } from './clone.mjs';
-
-function cloneWith(value, customizer) {
-    if (!customizer) {
-        return clone(value);
-    }
-    const result = customizer(value);
-    if (result !== undefined) {
-        return result;
-    }
-    return clone(value);
-}
-
-export { cloneWith };
Index: de_modules/es-toolkit/dist/compat/object/create.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/create.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Creates an object that inherits from the prototype object.
- *
- * If `properties` are provided, they will be added to the new object.
- * Only string-keyed enumerable properties directly owned by the `properties` object are copied.
- * Inherited properties or those with `Symbol` keys are not copied.
- *
- * @template T - The prototype object type.
- * @template U - The properties object type.
- * @param {T} prototype - The object to inherit from.
- * @param {U} properties - The properties to assign to the created object.
- * @returns {T & U} The new object.
- */
-declare function create<T extends object, U extends object>(prototype: T, properties?: U): T & U;
-
-export { create };
Index: de_modules/es-toolkit/dist/compat/object/create.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/create.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Creates an object that inherits from the prototype object.
- *
- * If `properties` are provided, they will be added to the new object.
- * Only string-keyed enumerable properties directly owned by the `properties` object are copied.
- * Inherited properties or those with `Symbol` keys are not copied.
- *
- * @template T - The prototype object type.
- * @template U - The properties object type.
- * @param {T} prototype - The object to inherit from.
- * @param {U} properties - The properties to assign to the created object.
- * @returns {T & U} The new object.
- */
-declare function create<T extends object, U extends object>(prototype: T, properties?: U): T & U;
-
-export { create };
Index: de_modules/es-toolkit/dist/compat/object/create.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/create.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const assignValue = require('../_internal/assignValue.js');
-const isObject = require('../predicate/isObject.js');
-
-function create(prototype, properties) {
-    const proto = isObject.isObject(prototype) ? Object.create(prototype) : {};
-    if (properties != null) {
-        const propsKeys = keys.keys(properties);
-        for (let i = 0; i < propsKeys.length; i++) {
-            const key = propsKeys[i];
-            const propsValue = properties[key];
-            assignValue.assignValue(proto, key, propsValue);
-        }
-    }
-    return proto;
-}
-
-exports.create = create;
Index: de_modules/es-toolkit/dist/compat/object/create.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/create.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { keys } from './keys.mjs';
-import { assignValue } from '../_internal/assignValue.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-
-function create(prototype, properties) {
-    const proto = isObject(prototype) ? Object.create(prototype) : {};
-    if (properties != null) {
-        const propsKeys = keys(properties);
-        for (let i = 0; i < propsKeys.length; i++) {
-            const key = propsKeys[i];
-            const propsValue = properties[key];
-            assignValue(proto, key, propsValue);
-        }
-    }
-    return proto;
-}
-
-export { create };
Index: de_modules/es-toolkit/dist/compat/object/defaults.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaults.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S} source - The object that specifies the default values to apply.
- * @returns {NonNullable<S & T>} The `object` that has been updated with default values from `source`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- * defaults({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function defaults<T, S>(object: T, source: S): NonNullable<S & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @returns {NonNullable<S2 & S1 & T>} The `object` that has been updated with default values from `source1` and `source2`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- */
-declare function defaults<T, S1, S2>(object: T, source1: S1, source2: S2): NonNullable<S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @returns {NonNullable<S3 & S2 & S1 & T>} The `object` that has been updated with default values from `source1`, `source2`, and `source3`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }); // { a: 1, b: 2, c: 3, d: 4 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- */
-declare function defaults<T, S1, S2, S3>(object: T, source1: S1, source2: S2, source3: S3): NonNullable<S3 & S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @template S4 - The type of the fourth object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @param {S4} source4 - The fourth object that specifies the default values to apply.
- * @returns {NonNullable<S4 & S3 & S2 & S1 & T>} The `object` that has been updated with default values from `source1`, `source2`, `source3`, and `source4`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }, { e: 5 }); // { a: 1, b: 2, c: 3, d: 4, e: 5 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }); // { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function defaults<T, S1, S2, S3, S4>(object: T, source1: S1, source2: S2, source3: S3, source4: S4): NonNullable<S4 & S3 & S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @param {T} object - The target object that will receive default values.
- * @returns {NonNullable<T>} The `object` that has been updated with default values.
- *
- * @example
- * defaults({ a: 1 }); // { a: 1 }
- * defaults({ a: undefined }); // { a: undefined }
- */
-declare function defaults<T>(object: T): NonNullable<T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @param {any} object - The target object that will receive default values.
- * @param {...any[]} sources - The objects that specify the default values to apply.
- * @returns {any} The `object` that has been updated with default values from `sources`.
- *
- * @example
- * defaults({}, { a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- * defaults({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function defaults(object: any, ...sources: any[]): any;
-
-export { defaults };
Index: de_modules/es-toolkit/dist/compat/object/defaults.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaults.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S} source - The object that specifies the default values to apply.
- * @returns {NonNullable<S & T>} The `object` that has been updated with default values from `source`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- * defaults({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function defaults<T, S>(object: T, source: S): NonNullable<S & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @returns {NonNullable<S2 & S1 & T>} The `object` that has been updated with default values from `source1` and `source2`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- */
-declare function defaults<T, S1, S2>(object: T, source1: S1, source2: S2): NonNullable<S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @returns {NonNullable<S3 & S2 & S1 & T>} The `object` that has been updated with default values from `source1`, `source2`, and `source3`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }); // { a: 1, b: 2, c: 3, d: 4 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- */
-declare function defaults<T, S1, S2, S3>(object: T, source1: S1, source2: S2, source3: S3): NonNullable<S3 & S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @template S4 - The type of the fourth object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @param {S4} source4 - The fourth object that specifies the default values to apply.
- * @returns {NonNullable<S4 & S3 & S2 & S1 & T>} The `object` that has been updated with default values from `source1`, `source2`, `source3`, and `source4`.
- *
- * @example
- * defaults({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }, { e: 5 }); // { a: 1, b: 2, c: 3, d: 4, e: 5 }
- * defaults({ a: undefined }, { a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }); // { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function defaults<T, S1, S2, S3, S4>(object: T, source1: S1, source2: S2, source3: S3, source4: S4): NonNullable<S4 & S3 & S2 & S1 & T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @template T - The type of the object being processed.
- * @param {T} object - The target object that will receive default values.
- * @returns {NonNullable<T>} The `object` that has been updated with default values.
- *
- * @example
- * defaults({ a: 1 }); // { a: 1 }
- * defaults({ a: undefined }); // { a: undefined }
- */
-declare function defaults<T>(object: T): NonNullable<T>;
-/**
- * Assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * @param {any} object - The target object that will receive default values.
- * @param {...any[]} sources - The objects that specify the default values to apply.
- * @returns {any} The `object` that has been updated with default values from `sources`.
- *
- * @example
- * defaults({}, { a: 1 }, { b: 2 }); // { a: 1, b: 2 }
- * defaults({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function defaults(object: any, ...sources: any[]): any;
-
-export { defaults };
Index: de_modules/es-toolkit/dist/compat/object/defaults.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaults.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isNil = require('../../predicate/isNil.js');
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function defaults(object, ...sources) {
-    object = Object(object);
-    const objectProto = Object.prototype;
-    let length = sources.length;
-    const guard = length > 2 ? sources[2] : undefined;
-    if (guard && isIterateeCall.isIterateeCall(sources[0], sources[1], guard)) {
-        length = 1;
-    }
-    for (let i = 0; i < length; i++) {
-        if (isNil.isNil(sources[i])) {
-            continue;
-        }
-        const source = sources[i];
-        const keys = Object.keys(source);
-        for (let j = 0; j < keys.length; j++) {
-            const key = keys[j];
-            const value = object[key];
-            if (value === undefined ||
-                (!Object.hasOwn(object, key) && isEqualsSameValueZero.isEqualsSameValueZero(value, objectProto[key]))) {
-                object[key] = source[key];
-            }
-        }
-    }
-    return object;
-}
-
-exports.defaults = defaults;
Index: de_modules/es-toolkit/dist/compat/object/defaults.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaults.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { isNil } from '../../predicate/isNil.mjs';
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function defaults(object, ...sources) {
-    object = Object(object);
-    const objectProto = Object.prototype;
-    let length = sources.length;
-    const guard = length > 2 ? sources[2] : undefined;
-    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
-        length = 1;
-    }
-    for (let i = 0; i < length; i++) {
-        if (isNil(sources[i])) {
-            continue;
-        }
-        const source = sources[i];
-        const keys = Object.keys(source);
-        for (let j = 0; j < keys.length; j++) {
-            const key = keys[j];
-            const value = object[key];
-            if (value === undefined ||
-                (!Object.hasOwn(object, key) && isEqualsSameValueZero(value, objectProto[key]))) {
-                object[key] = source[key];
-            }
-        }
-    }
-    return object;
-}
-
-export { defaults };
Index: de_modules/es-toolkit/dist/compat/object/defaultsDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaultsDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Recursively assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * Similar to `defaults` but recursively applies default values to nested objects.
- * Source objects are applied in order from left to right, and once a property has been assigned a value,
- * any subsequent values for that property will be ignored.
- *
- * Note: This function modifies the first argument, `object`.
- *
- * @template T - The type of the object being processed.
- * @param {any} target - The target object that will receive default values.
- * @param {any[]} sources - One or more source objects that specify default values to apply.
- * @returns {any} The `object` that has been updated with default values from all sources, recursively merging nested objects.
- *
- * @example
- * defaultsDeep({ a: { b: 2 } }, { a: { b: 3, c: 3 }, d: 4 }); // { a: { b: 2, c: 3 }, d: 4 }
- * defaultsDeep({ a: { b: undefined } }, { a: { b: 1 } }); // { a: { b: 1 } }
- * defaultsDeep({ a: null }, { a: { b: 1 } }); // { a: null }
- */
-declare function defaultsDeep(target: any, ...sources: any[]): any;
-
-export { defaultsDeep };
Index: de_modules/es-toolkit/dist/compat/object/defaultsDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaultsDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Recursively assigns default values to an `object`, ensuring that certain properties do not remain `undefined`.
- * It sets default values for properties that are either `undefined` or inherited from `Object.prototype`.
- *
- * Similar to `defaults` but recursively applies default values to nested objects.
- * Source objects are applied in order from left to right, and once a property has been assigned a value,
- * any subsequent values for that property will be ignored.
- *
- * Note: This function modifies the first argument, `object`.
- *
- * @template T - The type of the object being processed.
- * @param {any} target - The target object that will receive default values.
- * @param {any[]} sources - One or more source objects that specify default values to apply.
- * @returns {any} The `object` that has been updated with default values from all sources, recursively merging nested objects.
- *
- * @example
- * defaultsDeep({ a: { b: 2 } }, { a: { b: 3, c: 3 }, d: 4 }); // { a: { b: 2, c: 3 }, d: 4 }
- * defaultsDeep({ a: { b: undefined } }, { a: { b: 1 } }); // { a: { b: 1 } }
- * defaultsDeep({ a: null }, { a: { b: 1 } }); // { a: null }
- */
-declare function defaultsDeep(target: any, ...sources: any[]): any;
-
-export { defaultsDeep };
Index: de_modules/es-toolkit/dist/compat/object/defaultsDeep.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaultsDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function defaultsDeep(target, ...sources) {
-    target = Object(target);
-    for (let i = 0; i < sources.length; i++) {
-        const source = sources[i];
-        if (source != null) {
-            defaultsDeepRecursive(target, source, new WeakMap());
-        }
-    }
-    return target;
-}
-function defaultsDeepRecursive(target, source, stack) {
-    for (const key in source) {
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        if (targetValue === undefined || !Object.hasOwn(target, key)) {
-            target[key] = handleMissingProperty(sourceValue, stack);
-            continue;
-        }
-        if (stack.get(sourceValue) === targetValue) {
-            continue;
-        }
-        handleExistingProperty(targetValue, sourceValue, stack);
-    }
-}
-function handleMissingProperty(sourceValue, stack) {
-    if (stack.has(sourceValue)) {
-        return stack.get(sourceValue);
-    }
-    if (isPlainObject.isPlainObject(sourceValue)) {
-        const newObj = {};
-        stack.set(sourceValue, newObj);
-        defaultsDeepRecursive(newObj, sourceValue, stack);
-        return newObj;
-    }
-    return sourceValue;
-}
-function handleExistingProperty(targetValue, sourceValue, stack) {
-    if (isPlainObject.isPlainObject(targetValue) && isPlainObject.isPlainObject(sourceValue)) {
-        stack.set(sourceValue, targetValue);
-        defaultsDeepRecursive(targetValue, sourceValue, stack);
-        return;
-    }
-    if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
-        stack.set(sourceValue, targetValue);
-        mergeArrays(targetValue, sourceValue, stack);
-    }
-}
-function mergeArrays(targetArray, sourceArray, stack) {
-    const minLength = Math.min(sourceArray.length, targetArray.length);
-    for (let i = 0; i < minLength; i++) {
-        if (isPlainObject.isPlainObject(targetArray[i]) && isPlainObject.isPlainObject(sourceArray[i])) {
-            defaultsDeepRecursive(targetArray[i], sourceArray[i], stack);
-        }
-    }
-    for (let i = minLength; i < sourceArray.length; i++) {
-        targetArray.push(sourceArray[i]);
-    }
-}
-
-exports.defaultsDeep = defaultsDeep;
Index: de_modules/es-toolkit/dist/compat/object/defaultsDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/defaultsDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function defaultsDeep(target, ...sources) {
-    target = Object(target);
-    for (let i = 0; i < sources.length; i++) {
-        const source = sources[i];
-        if (source != null) {
-            defaultsDeepRecursive(target, source, new WeakMap());
-        }
-    }
-    return target;
-}
-function defaultsDeepRecursive(target, source, stack) {
-    for (const key in source) {
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        if (targetValue === undefined || !Object.hasOwn(target, key)) {
-            target[key] = handleMissingProperty(sourceValue, stack);
-            continue;
-        }
-        if (stack.get(sourceValue) === targetValue) {
-            continue;
-        }
-        handleExistingProperty(targetValue, sourceValue, stack);
-    }
-}
-function handleMissingProperty(sourceValue, stack) {
-    if (stack.has(sourceValue)) {
-        return stack.get(sourceValue);
-    }
-    if (isPlainObject(sourceValue)) {
-        const newObj = {};
-        stack.set(sourceValue, newObj);
-        defaultsDeepRecursive(newObj, sourceValue, stack);
-        return newObj;
-    }
-    return sourceValue;
-}
-function handleExistingProperty(targetValue, sourceValue, stack) {
-    if (isPlainObject(targetValue) && isPlainObject(sourceValue)) {
-        stack.set(sourceValue, targetValue);
-        defaultsDeepRecursive(targetValue, sourceValue, stack);
-        return;
-    }
-    if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
-        stack.set(sourceValue, targetValue);
-        mergeArrays(targetValue, sourceValue, stack);
-    }
-}
-function mergeArrays(targetArray, sourceArray, stack) {
-    const minLength = Math.min(sourceArray.length, targetArray.length);
-    for (let i = 0; i < minLength; i++) {
-        if (isPlainObject(targetArray[i]) && isPlainObject(sourceArray[i])) {
-            defaultsDeepRecursive(targetArray[i], sourceArray[i], stack);
-        }
-    }
-    for (let i = minLength; i < sourceArray.length; i++) {
-        targetArray.push(sourceArray[i]);
-    }
-}
-
-export { defaultsDeep };
Index: de_modules/es-toolkit/dist/compat/object/findKey.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findKey.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ObjectIteratee } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Finds the key of the first element that matches the given predicate.
- *
- * This function determines the type of the predicate and delegates the search
- * to the appropriate helper function. It supports predicates as functions, objects,
- * arrays, or strings.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} obj - The object to inspect.
- * @param {ObjectIteratee<T>} predicate - The predicate to match.
- * @returns {string | undefined} Returns the key of the matched element, else `undefined`.
- */
-declare function findKey<T>(obj: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/compat/object/findKey.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ObjectIteratee } from '../_internal/ObjectIteratee.js';
-
-/**
- * Finds the key of the first element that matches the given predicate.
- *
- * This function determines the type of the predicate and delegates the search
- * to the appropriate helper function. It supports predicates as functions, objects,
- * arrays, or strings.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} obj - The object to inspect.
- * @param {ObjectIteratee<T>} predicate - The predicate to match.
- * @returns {string | undefined} Returns the key of the matched element, else `undefined`.
- */
-declare function findKey<T>(obj: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/compat/object/findKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const findKey$1 = require('../../object/findKey.js');
-const identity = require('../function/identity.js');
-const isObject = require('../predicate/isObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function findKey(obj, predicate) {
-    if (!isObject.isObject(obj)) {
-        return undefined;
-    }
-    const iteratee$1 = iteratee.iteratee(predicate ?? identity.identity);
-    return findKey$1.findKey(obj, iteratee$1);
-}
-
-exports.findKey = findKey;
Index: de_modules/es-toolkit/dist/compat/object/findKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { findKey as findKey$1 } from '../../object/findKey.mjs';
-import { identity } from '../function/identity.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function findKey(obj, predicate) {
-    if (!isObject(obj)) {
-        return undefined;
-    }
-    const iteratee$1 = iteratee(predicate ?? identity);
-    return findKey$1(obj, iteratee$1);
-}
-
-export { findKey };
Index: de_modules/es-toolkit/dist/compat/object/findLastKey.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findLastKey.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ObjectIteratee } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Finds the key of the last element that matches the given predicate.
- *
- * This function determines the type of the predicate and delegates the search
- * to the appropriate helper function. It supports predicates as functions, objects,
- * arrays, or strings.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} obj - The object to inspect.
- * @param {ObjectIteratee<T>} predicate - The predicate to match.
- * @returns {string | undefined} Returns the key of the matched element, else `undefined`.
- */
-declare function findLastKey<T>(obj: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
-
-export { findLastKey };
Index: de_modules/es-toolkit/dist/compat/object/findLastKey.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findLastKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ObjectIteratee } from '../_internal/ObjectIteratee.js';
-
-/**
- * Finds the key of the last element that matches the given predicate.
- *
- * This function determines the type of the predicate and delegates the search
- * to the appropriate helper function. It supports predicates as functions, objects,
- * arrays, or strings.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} obj - The object to inspect.
- * @param {ObjectIteratee<T>} predicate - The predicate to match.
- * @returns {string | undefined} Returns the key of the matched element, else `undefined`.
- */
-declare function findLastKey<T>(obj: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
-
-export { findLastKey };
Index: de_modules/es-toolkit/dist/compat/object/findLastKey.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findLastKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../function/identity.js');
-const isObject = require('../predicate/isObject.js');
-const iteratee = require('../util/iteratee.js');
-
-function findLastKey(obj, predicate) {
-    if (!isObject.isObject(obj)) {
-        return undefined;
-    }
-    const iteratee$1 = iteratee.iteratee(predicate ?? identity.identity);
-    const keys = Object.keys(obj);
-    return keys.findLast(key => iteratee$1(obj[key], key, obj));
-}
-
-exports.findLastKey = findLastKey;
Index: de_modules/es-toolkit/dist/compat/object/findLastKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/findLastKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { identity } from '../function/identity.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function findLastKey(obj, predicate) {
-    if (!isObject(obj)) {
-        return undefined;
-    }
-    const iteratee$1 = iteratee(predicate ?? identity);
-    const keys = Object.keys(obj);
-    return keys.findLast(key => iteratee$1(obj[key], key, obj));
-}
-
-export { findLastKey };
Index: de_modules/es-toolkit/dist/compat/object/forIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Iterates over an object and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'a' 1, 'b' 2
- *
- * // Early termination
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'a' 1
- */
-declare function forIn<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T | null | undefined} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'a' 1, 'b' 2
- *
- * // Early termination
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'a' 1
- */
-declare function forIn<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forIn };
Index: de_modules/es-toolkit/dist/compat/object/forIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Iterates over an object and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'a' 1, 'b' 2
- *
- * // Early termination
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'a' 1
- */
-declare function forIn<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T | null | undefined} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'a' 1, 'b' 2
- *
- * // Early termination
- * forIn(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'a' 1
- */
-declare function forIn<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forIn };
Index: de_modules/es-toolkit/dist/compat/object/forIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-
-function forIn(object, iteratee = identity.identity) {
-    if (object == null) {
-        return object;
-    }
-    for (const key in object) {
-        const result = iteratee(object[key], key, object);
-        if (result === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-exports.forIn = forIn;
Index: de_modules/es-toolkit/dist/compat/object/forIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-
-function forIn(object, iteratee = identity) {
-    if (object == null) {
-        return object;
-    }
-    for (const key in object) {
-        const result = iteratee(object[key], key, object);
-        if (result === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-export { forIn };
Index: de_modules/es-toolkit/dist/compat/object/forInRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forInRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Iterates over an object in reverse order and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties in reverse order.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, collection: T) => any} iteratee - The function invoked per iteration
- * @returns {T} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'b' 2, 'a' 1
- *
- * // Early termination
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'b' 2
- */
-declare function forInRight<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object in reverse order and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties in reverse order.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T | null | undefined} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'b' 2, 'a' 1
- *
- * // Early termination
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'b' 2
- */
-declare function forInRight<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forInRight };
Index: de_modules/es-toolkit/dist/compat/object/forInRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forInRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Iterates over an object in reverse order and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties in reverse order.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, collection: T) => any} iteratee - The function invoked per iteration
- * @returns {T} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'b' 2, 'a' 1
- *
- * // Early termination
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'b' 2
- */
-declare function forInRight<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object in reverse order and invokes the `iteratee` function for each property.
- *
- * Iterates over string keyed properties including inherited properties in reverse order.
- *
- * The iteration is terminated early if the `iteratee` function returns `false`.
- *
- * @template T - The type of the object
- * @param {T | null | undefined} object - The object to iterate over
- * @param {(value: T[keyof T], key: string, obj: T) => any} iteratee - The function invoked per iteration
- * @returns {T | null | undefined} Returns the object
- *
- * @example
- * // Iterate over all properties including inherited ones
- * const obj = { a: 1, b: 2 };
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- * });
- * // Output: 'b' 2, 'a' 1
- *
- * // Early termination
- * forInRight(obj, (value, key) => {
- *   console.log(key, value);
- *   return key !== 'a'; // stop after 'a'
- * });
- * // Output: 'b' 2
- */
-declare function forInRight<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forInRight };
Index: de_modules/es-toolkit/dist/compat/object/forInRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forInRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-
-function forInRight(object, iteratee = identity.identity) {
-    if (object == null) {
-        return object;
-    }
-    const keys = [];
-    for (const key in object) {
-        keys.push(key);
-    }
-    for (let i = keys.length - 1; i >= 0; i--) {
-        const key = keys[i];
-        const result = iteratee(object[key], key, object);
-        if (result === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-exports.forInRight = forInRight;
Index: de_modules/es-toolkit/dist/compat/object/forInRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forInRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-
-function forInRight(object, iteratee = identity) {
-    if (object == null) {
-        return object;
-    }
-    const keys = [];
-    for (const key in object) {
-        keys.push(key);
-    }
-    for (let i = keys.length - 1; i >= 0; i--) {
-        const key = keys[i];
-        const result = iteratee(object[key], key, object);
-        if (result === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-export { forInRight };
Index: de_modules/es-toolkit/dist/compat/object/forOwn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Iterates over an object's properties and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwn(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'a' then 'b' (iteration order is not guaranteed).
- */
-declare function forOwn<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object's properties and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T | null | undefined} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwn(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'a' then 'b' (iteration order is not guaranteed).
- */
-declare function forOwn<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forOwn };
Index: de_modules/es-toolkit/dist/compat/object/forOwn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Iterates over an object's properties and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwn(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'a' then 'b' (iteration order is not guaranteed).
- */
-declare function forOwn<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object's properties and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T | null | undefined} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwn(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'a' then 'b' (iteration order is not guaranteed).
- */
-declare function forOwn<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forOwn };
Index: de_modules/es-toolkit/dist/compat/object/forOwn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const identity = require('../../function/identity.js');
-
-function forOwn(object, iteratee = identity.identity) {
-    if (object == null) {
-        return object;
-    }
-    const iterable = Object(object);
-    const keys$1 = keys.keys(object);
-    for (let i = 0; i < keys$1.length; ++i) {
-        const key = keys$1[i];
-        if (iteratee(iterable[key], key, iterable) === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-exports.forOwn = forOwn;
Index: de_modules/es-toolkit/dist/compat/object/forOwn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { keys } from './keys.mjs';
-import { identity } from '../../function/identity.mjs';
-
-function forOwn(object, iteratee = identity) {
-    if (object == null) {
-        return object;
-    }
-    const iterable = Object(object);
-    const keys$1 = keys(object);
-    for (let i = 0; i < keys$1.length; ++i) {
-        const key = keys$1[i];
-        if (iteratee(iterable[key], key, iterable) === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-export { forOwn };
Index: de_modules/es-toolkit/dist/compat/object/forOwnRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwnRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Iterates over an object's properties in reverse order and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwnRight(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'b' then 'a' (iteration order is not guaranteed).
- */
-declare function forOwnRight<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object's properties in reverse order and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T | null | undefined} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwnRight(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'b' then 'a' (iteration order is not guaranteed).
- */
-declare function forOwnRight<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forOwnRight };
Index: de_modules/es-toolkit/dist/compat/object/forOwnRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwnRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/**
- * Iterates over an object's properties in reverse order and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwnRight(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'b' then 'a' (iteration order is not guaranteed).
- */
-declare function forOwnRight<T>(object: T, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T;
-/**
- * Iterates over an object's properties in reverse order and calls the `iteratee` function for each property.
- *
- * It only iterates over the object's own properties, not including inherited properties or properties with `Symbol` keys.
- *
- * The `iteratee` function can terminate the iteration early by returning `false`.
- *
- * @template T - The type of the object.
- * @param {T | null | undefined} object The object to iterate over.
- * @param {(value: T[keyof T], key: string, collection: T) => any} [iteratee=identity] The function invoked per iteration. If not provided, the identity function will be used.
- * @return {T | null | undefined} Returns object.
- *
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * forOwnRight(new Foo(), function(value, key) {
- *   console.log(key);
- * });
- * // => Logs 'b' then 'a' (iteration order is not guaranteed).
- */
-declare function forOwnRight<T>(object: T | null | undefined, iteratee?: (value: T[keyof T], key: string, collection: T) => any): T | null | undefined;
-
-export { forOwnRight };
Index: de_modules/es-toolkit/dist/compat/object/forOwnRight.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwnRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const identity = require('../../function/identity.js');
-
-function forOwnRight(object, iteratee = identity.identity) {
-    if (object == null) {
-        return object;
-    }
-    const iterable = Object(object);
-    const keys$1 = keys.keys(object);
-    for (let i = keys$1.length - 1; i >= 0; --i) {
-        const key = keys$1[i];
-        if (iteratee(iterable[key], key, iterable) === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-exports.forOwnRight = forOwnRight;
Index: de_modules/es-toolkit/dist/compat/object/forOwnRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/forOwnRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { keys } from './keys.mjs';
-import { identity } from '../../function/identity.mjs';
-
-function forOwnRight(object, iteratee = identity) {
-    if (object == null) {
-        return object;
-    }
-    const iterable = Object(object);
-    const keys$1 = keys(object);
-    for (let i = keys$1.length - 1; i >= 0; --i) {
-        const key = keys$1[i];
-        if (iteratee(iterable[key], key, iterable) === false) {
-            break;
-        }
-    }
-    return object;
-}
-
-export { forOwnRight };
Index: de_modules/es-toolkit/dist/compat/object/fromPairs.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/fromPairs.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-type PropertyName = string | number | symbol;
-/**
- * Converts an array of key-value pairs into an object.
- *
- * @template T - The type of the values.
- * @param {ArrayLike<[PropertyName, T]> | null | undefined} pairs - An array of key-value pairs.
- * @returns {Record<string, T>} - An object where keys are strings and values are of type T.
- *
- * @example
- * const pairs = [['a', 1], ['b', 2]];
- * const result = fromPairs(pairs);
- * // => { a: 1, b: 2 }
- */
-declare function fromPairs<T>(pairs: ArrayLike<[PropertyName, T]> | null | undefined): Record<string, T>;
-/**
- * Converts an array of key-value pairs into an object.
- *
- * @param {ArrayLike<any[]> | null | undefined} pairs - An array of key-value pairs.
- * @returns {Record<string, any>} - An object where keys are strings and values can be any type.
- *
- * @example
- * const pairs = [['a', 1], ['b', 'hello']];
- * const result = fromPairs(pairs);
- * // => { a: 1, b: 'hello' }
- */
-declare function fromPairs(pairs: ArrayLike<any[]> | null | undefined): Record<string, any>;
-
-export { fromPairs };
Index: de_modules/es-toolkit/dist/compat/object/fromPairs.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/fromPairs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-type PropertyName = string | number | symbol;
-/**
- * Converts an array of key-value pairs into an object.
- *
- * @template T - The type of the values.
- * @param {ArrayLike<[PropertyName, T]> | null | undefined} pairs - An array of key-value pairs.
- * @returns {Record<string, T>} - An object where keys are strings and values are of type T.
- *
- * @example
- * const pairs = [['a', 1], ['b', 2]];
- * const result = fromPairs(pairs);
- * // => { a: 1, b: 2 }
- */
-declare function fromPairs<T>(pairs: ArrayLike<[PropertyName, T]> | null | undefined): Record<string, T>;
-/**
- * Converts an array of key-value pairs into an object.
- *
- * @param {ArrayLike<any[]> | null | undefined} pairs - An array of key-value pairs.
- * @returns {Record<string, any>} - An object where keys are strings and values can be any type.
- *
- * @example
- * const pairs = [['a', 1], ['b', 'hello']];
- * const result = fromPairs(pairs);
- * // => { a: 1, b: 'hello' }
- */
-declare function fromPairs(pairs: ArrayLike<any[]> | null | undefined): Record<string, any>;
-
-export { fromPairs };
Index: de_modules/es-toolkit/dist/compat/object/fromPairs.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/fromPairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-
-function fromPairs(pairs) {
-    if (!isArrayLike.isArrayLike(pairs)) {
-        return {};
-    }
-    const result = {};
-    for (let i = 0; i < pairs.length; i++) {
-        const [key, value] = pairs[i];
-        result[key] = value;
-    }
-    return result;
-}
-
-exports.fromPairs = fromPairs;
Index: de_modules/es-toolkit/dist/compat/object/fromPairs.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/fromPairs.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-
-function fromPairs(pairs) {
-    if (!isArrayLike(pairs)) {
-        return {};
-    }
-    const result = {};
-    for (let i = 0; i < pairs.length; i++) {
-        const [key, value] = pairs[i];
-        result[key] = value;
-    }
-    return result;
-}
-
-export { fromPairs };
Index: de_modules/es-toolkit/dist/compat/object/functions.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functions.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates an array of property names from an object where the property values are functions.
- *
- * @param {any} object - The object to inspect.
- * @returns {string[]} - An array of function property names.
- *
- * @example
- * function Foo() {
- *   this.a = () => 'a';
- *   this.b = () => 'b';
- * }
- *
- * Foo.prototype.c = () => 'c';
- *
- * functions(new Foo);
- * // => ['a', 'b']
- */
-declare function functions(object: any): string[];
-
-export { functions };
Index: de_modules/es-toolkit/dist/compat/object/functions.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functions.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates an array of property names from an object where the property values are functions.
- *
- * @param {any} object - The object to inspect.
- * @returns {string[]} - An array of function property names.
- *
- * @example
- * function Foo() {
- *   this.a = () => 'a';
- *   this.b = () => 'b';
- * }
- *
- * Foo.prototype.c = () => 'c';
- *
- * functions(new Foo);
- * // => ['a', 'b']
- */
-declare function functions(object: any): string[];
-
-export { functions };
Index: de_modules/es-toolkit/dist/compat/object/functions.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-
-function functions(object) {
-    if (object == null) {
-        return [];
-    }
-    return keys.keys(object).filter(key => typeof object[key] === 'function');
-}
-
-exports.functions = functions;
Index: de_modules/es-toolkit/dist/compat/object/functions.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functions.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { keys } from './keys.mjs';
-
-function functions(object) {
-    if (object == null) {
-        return [];
-    }
-    return keys(object).filter(key => typeof object[key] === 'function');
-}
-
-export { functions };
Index: de_modules/es-toolkit/dist/compat/object/functionsIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functionsIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Returns an array of property names whose values are functions, including inherited properties.
- *
- * @param {*} object The object to inspect.
- * @returns {Array} Returns the function names.
- * @example
- *
- * function Foo() {
- *   this.a = function() { return 'a'; };
- *   this.b = function() { return 'b'; };
- * }
- *
- * Foo.prototype.c = function() { return 'c'; };
- *
- * functionsIn(new Foo);
- * // => ['a', 'b', 'c']
- */
-declare function functionsIn<T extends {}>(object: any): string[];
-
-export { functionsIn };
Index: de_modules/es-toolkit/dist/compat/object/functionsIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functionsIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Returns an array of property names whose values are functions, including inherited properties.
- *
- * @param {*} object The object to inspect.
- * @returns {Array} Returns the function names.
- * @example
- *
- * function Foo() {
- *   this.a = function() { return 'a'; };
- *   this.b = function() { return 'b'; };
- * }
- *
- * Foo.prototype.c = function() { return 'c'; };
- *
- * functionsIn(new Foo);
- * // => ['a', 'b', 'c']
- */
-declare function functionsIn<T extends {}>(object: any): string[];
-
-export { functionsIn };
Index: de_modules/es-toolkit/dist/compat/object/functionsIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functionsIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isFunction = require('../../predicate/isFunction.js');
-
-function functionsIn(object) {
-    if (object == null) {
-        return [];
-    }
-    const result = [];
-    for (const key in object) {
-        if (isFunction.isFunction(object[key])) {
-            result.push(key);
-        }
-    }
-    return result;
-}
-
-exports.functionsIn = functionsIn;
Index: de_modules/es-toolkit/dist/compat/object/functionsIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/functionsIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { isFunction } from '../../predicate/isFunction.mjs';
-
-function functionsIn(object) {
-    if (object == null) {
-        return [];
-    }
-    const result = [];
-    for (const key in object) {
-        if (isFunction(object[key])) {
-            result.push(key);
-        }
-    }
-    return result;
-}
-
-export { functionsIn };
Index: de_modules/es-toolkit/dist/compat/object/get.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/get.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,327 +1,0 @@
-import { GetFieldType } from '../_internal/GetFieldType.mjs';
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @param {TObject} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @returns {TObject[TKey]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @param {TObject | null | undefined} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @returns {TObject[TKey] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject>(object: TObject | null | undefined, path: TKey | [TKey]): TObject[TKey] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<TObject[TKey], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c', 'default');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject, TDefault>(object: TObject | null | undefined, path: TKey | [TKey], defaultValue: TDefault): Exclude<TObject[TKey], undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b']);
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject, path: [TKey1, TKey2]): TObject[TKey1][TKey2];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @returns {NonNullable<TObject[TKey1]>[TKey2] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b']);
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>>(object: TObject | null | undefined, path: [TKey1, TKey2]): NonNullable<TObject[TKey1]>[TKey2] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<TObject[TKey1]>[TKey2], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b'], 'default');
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2], defaultValue: TDefault): Exclude<NonNullable<TObject[TKey1]>[TKey2], undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2][TKey3]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c']);
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @returns {NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c']);
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3]): NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c'], 'default');
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3], undefined> | TDefault;
-/**
- * Gets the value at path of object.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2][TKey3][TKey4]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd']);
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4];
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @returns {NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd']);
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TKey4 extends keyof NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4]): NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd'], 'default');
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TKey4 extends keyof NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4], undefined> | TDefault;
-/**
- * Gets the value at path of object.
- *
- * @template T
- * @param {Record<number, T>} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @returns {T} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1);
- * // => 'b'
- */
-declare function get<T>(object: Record<number, T>, path: number): T;
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @template T
- * @param {Record<number, T> | null | undefined} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @returns {T | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1);
- * // => 'b'
- */
-declare function get<T>(object: Record<number, T> | null | undefined, path: number): T | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template T
- * @template TDefault
- * @param {Record<number, T> | null | undefined} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {T | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1, 'default');
- * // => 'b'
- */
-declare function get<T, TDefault>(object: Record<number, T> | null | undefined, path: number, defaultValue: TDefault): T | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TDefault
- * @param {null | undefined} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {TDefault} Returns the default value.
- *
- * @example
- * get(null, 'a.b.c', 'default');
- * // => 'default'
- */
-declare function get<TDefault>(object: null | undefined, path: PropertyPath, defaultValue: TDefault): TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @param {null | undefined} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @returns {undefined} Returns undefined.
- *
- * @example
- * get(null, 'a.b.c');
- * // => undefined
- */
-declare function get(object: null | undefined, path: PropertyPath): undefined;
-/**
- * Gets the value at path of object using type-safe path.
- *
- * @template TObject
- * @template TPath
- * @param {TObject} data - The object to query.
- * @param {TPath} path - The path of the property to get.
- * @returns {string extends TPath ? any : GetFieldType<TObject, TPath>} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.c');
- * // => 1
- */
-declare function get<TObject, TPath extends string>(data: TObject, path: TPath): string extends TPath ? any : GetFieldType<TObject, TPath>;
-/**
- * Gets the value at path of object using type-safe path. If the resolved value is undefined, the defaultValue is returned.
- *
- * @template TObject
- * @template TPath
- * @template TDefault
- * @param {TObject} data - The object to query.
- * @param {TPath} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<GetFieldType<TObject, TPath>, null | undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.d', 'default');
- * // => 'default'
- */
-declare function get<TObject, TPath extends string, TDefault = GetFieldType<TObject, TPath>>(data: TObject, path: TPath, defaultValue: TDefault): Exclude<GetFieldType<TObject, TPath>, null | undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned.
- *
- * @param {any} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {any} [defaultValue] - The value returned if the resolved value is undefined.
- * @returns {any} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.c', 'default');
- * // => 1
- */
-declare function get(object: any, path: PropertyPath, defaultValue?: any): any;
-
-export { get };
Index: de_modules/es-toolkit/dist/compat/object/get.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/get.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,327 +1,0 @@
-import { GetFieldType } from '../_internal/GetFieldType.js';
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @param {TObject} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @returns {TObject[TKey]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @param {TObject | null | undefined} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @returns {TObject[TKey] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject>(object: TObject | null | undefined, path: TKey | [TKey]): TObject[TKey] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {TKey | [TKey]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<TObject[TKey], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * get(object, 'a[0].b.c', 'default');
- * // => 3
- */
-declare function get<TObject extends object, TKey extends keyof TObject, TDefault>(object: TObject | null | undefined, path: TKey | [TKey], defaultValue: TDefault): Exclude<TObject[TKey], undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b']);
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject, path: [TKey1, TKey2]): TObject[TKey1][TKey2];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @returns {NonNullable<TObject[TKey1]>[TKey2] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b']);
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>>(object: TObject | null | undefined, path: [TKey1, TKey2]): NonNullable<TObject[TKey1]>[TKey2] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<TObject[TKey1]>[TKey2], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': 2 } };
- * get(object, ['a', 'b'], 'default');
- * // => 2
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2], defaultValue: TDefault): Exclude<NonNullable<TObject[TKey1]>[TKey2], undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2][TKey3]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c']);
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3];
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @returns {NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c']);
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3]): NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': 3 } } };
- * get(object, ['a', 'b', 'c'], 'default');
- * // => 3
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3], undefined> | TDefault;
-/**
- * Gets the value at path of object.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @param {TObject} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @returns {TObject[TKey1][TKey2][TKey3][TKey4]} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd']);
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4];
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @returns {NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4] | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd']);
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TKey4 extends keyof NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4]): NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4] | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TObject
- * @template TKey1
- * @template TKey2
- * @template TKey3
- * @template TKey4
- * @template TDefault
- * @param {TObject | null | undefined} object - The object to query.
- * @param {[TKey1, TKey2, TKey3, TKey4]} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4], undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 'a': { 'b': { 'c': { 'd': 4 } } } };
- * get(object, ['a', 'b', 'c', 'd'], 'default');
- * // => 4
- */
-declare function get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof NonNullable<TObject[TKey1]>, TKey3 extends keyof NonNullable<NonNullable<TObject[TKey1]>[TKey2]>, TKey4 extends keyof NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>, TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<NonNullable<NonNullable<NonNullable<TObject[TKey1]>[TKey2]>[TKey3]>[TKey4], undefined> | TDefault;
-/**
- * Gets the value at path of object.
- *
- * @template T
- * @param {Record<number, T>} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @returns {T} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1);
- * // => 'b'
- */
-declare function get<T>(object: Record<number, T>, path: number): T;
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @template T
- * @param {Record<number, T> | null | undefined} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @returns {T | undefined} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1);
- * // => 'b'
- */
-declare function get<T>(object: Record<number, T> | null | undefined, path: number): T | undefined;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template T
- * @template TDefault
- * @param {Record<number, T> | null | undefined} object - The object to query.
- * @param {number} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {T | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { 0: 'a', 1: 'b', 2: 'c' };
- * get(object, 1, 'default');
- * // => 'b'
- */
-declare function get<T, TDefault>(object: Record<number, T> | null | undefined, path: number, defaultValue: TDefault): T | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
- *
- * @template TDefault
- * @param {null | undefined} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {TDefault} Returns the default value.
- *
- * @example
- * get(null, 'a.b.c', 'default');
- * // => 'default'
- */
-declare function get<TDefault>(object: null | undefined, path: PropertyPath, defaultValue: TDefault): TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, undefined is returned.
- *
- * @param {null | undefined} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @returns {undefined} Returns undefined.
- *
- * @example
- * get(null, 'a.b.c');
- * // => undefined
- */
-declare function get(object: null | undefined, path: PropertyPath): undefined;
-/**
- * Gets the value at path of object using type-safe path.
- *
- * @template TObject
- * @template TPath
- * @param {TObject} data - The object to query.
- * @param {TPath} path - The path of the property to get.
- * @returns {string extends TPath ? any : GetFieldType<TObject, TPath>} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.c');
- * // => 1
- */
-declare function get<TObject, TPath extends string>(data: TObject, path: TPath): string extends TPath ? any : GetFieldType<TObject, TPath>;
-/**
- * Gets the value at path of object using type-safe path. If the resolved value is undefined, the defaultValue is returned.
- *
- * @template TObject
- * @template TPath
- * @template TDefault
- * @param {TObject} data - The object to query.
- * @param {TPath} path - The path of the property to get.
- * @param {TDefault} defaultValue - The value returned if the resolved value is undefined.
- * @returns {Exclude<GetFieldType<TObject, TPath>, null | undefined> | TDefault} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.d', 'default');
- * // => 'default'
- */
-declare function get<TObject, TPath extends string, TDefault = GetFieldType<TObject, TPath>>(data: TObject, path: TPath, defaultValue: TDefault): Exclude<GetFieldType<TObject, TPath>, null | undefined> | TDefault;
-/**
- * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned.
- *
- * @param {any} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {any} [defaultValue] - The value returned if the resolved value is undefined.
- * @returns {any} Returns the resolved value.
- *
- * @example
- * const object = { a: { b: { c: 1 } } };
- * get(object, 'a.b.c', 'default');
- * // => 1
- */
-declare function get(object: any, path: PropertyPath, defaultValue?: any): any;
-
-export { get };
Index: de_modules/es-toolkit/dist/compat/object/get.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/get.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');
-const isDeepKey = require('../_internal/isDeepKey.js');
-const toKey = require('../_internal/toKey.js');
-const toPath = require('../util/toPath.js');
-
-function get(object, path, defaultValue) {
-    if (object == null) {
-        return defaultValue;
-    }
-    switch (typeof path) {
-        case 'string': {
-            if (isUnsafeProperty.isUnsafeProperty(path)) {
-                return defaultValue;
-            }
-            const result = object[path];
-            if (result === undefined) {
-                if (isDeepKey.isDeepKey(path)) {
-                    return get(object, toPath.toPath(path), defaultValue);
-                }
-                else {
-                    return defaultValue;
-                }
-            }
-            return result;
-        }
-        case 'number':
-        case 'symbol': {
-            if (typeof path === 'number') {
-                path = toKey.toKey(path);
-            }
-            const result = object[path];
-            if (result === undefined) {
-                return defaultValue;
-            }
-            return result;
-        }
-        default: {
-            if (Array.isArray(path)) {
-                return getWithPath(object, path, defaultValue);
-            }
-            if (Object.is(path?.valueOf(), -0)) {
-                path = '-0';
-            }
-            else {
-                path = String(path);
-            }
-            if (isUnsafeProperty.isUnsafeProperty(path)) {
-                return defaultValue;
-            }
-            const result = object[path];
-            if (result === undefined) {
-                return defaultValue;
-            }
-            return result;
-        }
-    }
-}
-function getWithPath(object, path, defaultValue) {
-    if (path.length === 0) {
-        return defaultValue;
-    }
-    let current = object;
-    for (let index = 0; index < path.length; index++) {
-        if (current == null) {
-            return defaultValue;
-        }
-        if (isUnsafeProperty.isUnsafeProperty(path[index])) {
-            return defaultValue;
-        }
-        current = current[path[index]];
-    }
-    if (current === undefined) {
-        return defaultValue;
-    }
-    return current;
-}
-
-exports.get = get;
Index: de_modules/es-toolkit/dist/compat/object/get.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/get.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';
-import { isDeepKey } from '../_internal/isDeepKey.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function get(object, path, defaultValue) {
-    if (object == null) {
-        return defaultValue;
-    }
-    switch (typeof path) {
-        case 'string': {
-            if (isUnsafeProperty(path)) {
-                return defaultValue;
-            }
-            const result = object[path];
-            if (result === undefined) {
-                if (isDeepKey(path)) {
-                    return get(object, toPath(path), defaultValue);
-                }
-                else {
-                    return defaultValue;
-                }
-            }
-            return result;
-        }
-        case 'number':
-        case 'symbol': {
-            if (typeof path === 'number') {
-                path = toKey(path);
-            }
-            const result = object[path];
-            if (result === undefined) {
-                return defaultValue;
-            }
-            return result;
-        }
-        default: {
-            if (Array.isArray(path)) {
-                return getWithPath(object, path, defaultValue);
-            }
-            if (Object.is(path?.valueOf(), -0)) {
-                path = '-0';
-            }
-            else {
-                path = String(path);
-            }
-            if (isUnsafeProperty(path)) {
-                return defaultValue;
-            }
-            const result = object[path];
-            if (result === undefined) {
-                return defaultValue;
-            }
-            return result;
-        }
-    }
-}
-function getWithPath(object, path, defaultValue) {
-    if (path.length === 0) {
-        return defaultValue;
-    }
-    let current = object;
-    for (let index = 0; index < path.length; index++) {
-        if (current == null) {
-            return defaultValue;
-        }
-        if (isUnsafeProperty(path[index])) {
-            return defaultValue;
-        }
-        current = current[path[index]];
-    }
-    if (current === undefined) {
-        return defaultValue;
-    }
-    return current;
-}
-
-export { get };
Index: de_modules/es-toolkit/dist/compat/object/has.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/has.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Checks if a given path exists within an object.
- *
- * @template T
- * @template K
- * @param {T} object - The object to query.
- * @param {K} path - The path to check.
- * @returns {object is T & { [P in K]: P extends keyof T ? T[P] : Record<string, unknown> extends T ? T[keyof T] : unknown } & { [key: symbol]: unknown }} Returns a type guard indicating if the path exists in the object.
- *
- * @example
- * const obj = { a: 1, b: { c: 2 } };
- *
- * if (has(obj, 'a')) {
- *   console.log(obj.a); // TypeScript knows obj.a exists
- * }
- *
- * if (has(obj, 'b')) {
- *   console.log(obj.b.c); // TypeScript knows obj.b exists
- * }
- */
-declare function has<T, K extends PropertyKey>(object: T, path: K): object is T & {
-    [P in K]: P extends keyof T ? T[P] : Record<string, unknown> extends T ? T[keyof T] : unknown;
-} & {
-    [key: symbol]: unknown;
-};
-/**
- * Checks if a given path exists within an object.
- *
- * @template T
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path to check. This can be a single property key,
- *        an array of property keys, or a string representing a deep path.
- * @returns {boolean} Returns `true` if the path exists in the object, `false` otherwise.
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- *
- * has(obj, 'a'); // true
- * has(obj, ['a', 'b']); // true
- * has(obj, ['a', 'b', 'c']); // true
- * has(obj, 'a.b.c'); // true
- * has(obj, 'a.b.d'); // false
- * has(obj, ['a', 'b', 'c', 'd']); // false
- * has([], 0); // false
- * has([1, 2, 3], 2); // true
- * has([1, 2, 3], 5); // false
- */
-declare function has<T>(object: T, path: PropertyPath): boolean;
-
-export { has };
Index: de_modules/es-toolkit/dist/compat/object/has.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/has.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Checks if a given path exists within an object.
- *
- * @template T
- * @template K
- * @param {T} object - The object to query.
- * @param {K} path - The path to check.
- * @returns {object is T & { [P in K]: P extends keyof T ? T[P] : Record<string, unknown> extends T ? T[keyof T] : unknown } & { [key: symbol]: unknown }} Returns a type guard indicating if the path exists in the object.
- *
- * @example
- * const obj = { a: 1, b: { c: 2 } };
- *
- * if (has(obj, 'a')) {
- *   console.log(obj.a); // TypeScript knows obj.a exists
- * }
- *
- * if (has(obj, 'b')) {
- *   console.log(obj.b.c); // TypeScript knows obj.b exists
- * }
- */
-declare function has<T, K extends PropertyKey>(object: T, path: K): object is T & {
-    [P in K]: P extends keyof T ? T[P] : Record<string, unknown> extends T ? T[keyof T] : unknown;
-} & {
-    [key: symbol]: unknown;
-};
-/**
- * Checks if a given path exists within an object.
- *
- * @template T
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path to check. This can be a single property key,
- *        an array of property keys, or a string representing a deep path.
- * @returns {boolean} Returns `true` if the path exists in the object, `false` otherwise.
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- *
- * has(obj, 'a'); // true
- * has(obj, ['a', 'b']); // true
- * has(obj, ['a', 'b', 'c']); // true
- * has(obj, 'a.b.c'); // true
- * has(obj, 'a.b.d'); // false
- * has(obj, ['a', 'b', 'c', 'd']); // false
- * has([], 0); // false
- * has([1, 2, 3], 2); // true
- * has([1, 2, 3], 5); // false
- */
-declare function has<T>(object: T, path: PropertyPath): boolean;
-
-export { has };
Index: de_modules/es-toolkit/dist/compat/object/has.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/has.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isDeepKey = require('../_internal/isDeepKey.js');
-const isIndex = require('../_internal/isIndex.js');
-const isArguments = require('../predicate/isArguments.js');
-const toPath = require('../util/toPath.js');
-
-function has(object, path) {
-    let resolvedPath;
-    if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else if (typeof path === 'string' && isDeepKey.isDeepKey(path) && object?.[path] == null) {
-        resolvedPath = toPath.toPath(path);
-    }
-    else {
-        resolvedPath = [path];
-    }
-    if (resolvedPath.length === 0) {
-        return false;
-    }
-    let current = object;
-    for (let i = 0; i < resolvedPath.length; i++) {
-        const key = resolvedPath[i];
-        if (current == null || !Object.hasOwn(current, key)) {
-            const isSparseIndex = (Array.isArray(current) || isArguments.isArguments(current)) && isIndex.isIndex(key) && key < current.length;
-            if (!isSparseIndex) {
-                return false;
-            }
-        }
-        current = current[key];
-    }
-    return true;
-}
-
-exports.has = has;
Index: de_modules/es-toolkit/dist/compat/object/has.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/has.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { isDeepKey } from '../_internal/isDeepKey.mjs';
-import { isIndex } from '../_internal/isIndex.mjs';
-import { isArguments } from '../predicate/isArguments.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function has(object, path) {
-    let resolvedPath;
-    if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else if (typeof path === 'string' && isDeepKey(path) && object?.[path] == null) {
-        resolvedPath = toPath(path);
-    }
-    else {
-        resolvedPath = [path];
-    }
-    if (resolvedPath.length === 0) {
-        return false;
-    }
-    let current = object;
-    for (let i = 0; i < resolvedPath.length; i++) {
-        const key = resolvedPath[i];
-        if (current == null || !Object.hasOwn(current, key)) {
-            const isSparseIndex = (Array.isArray(current) || isArguments(current)) && isIndex(key) && key < current.length;
-            if (!isSparseIndex) {
-                return false;
-            }
-        }
-        current = current[key];
-    }
-    return true;
-}
-
-export { has };
Index: de_modules/es-toolkit/dist/compat/object/hasIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/hasIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Checks if a given path exists in an object, **including inherited properties**.
- *
- * You can provide the path as a single property key, an array of property keys,
- * or a string representing a deep path.
- *
- * Unlike `has`, which only checks for own properties, `hasIn` also checks for properties
- * in the prototype chain.
- *
- * If the path is an index and the object is an array or an arguments object, the function will verify
- * if the index is valid and within the bounds of the array or arguments object, even if the array or
- * arguments object is sparse (i.e., not all indexes are defined).
- *
- * @template T
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path to check. This can be a single property key,
- *        an array of property keys, or a string representing a deep path.
- * @returns {boolean} Returns `true` if the path exists (own or inherited), `false` otherwise.
- *
- * @example
- *
- * const obj = { a: { b: { c: 3 } } };
- *
- * hasIn(obj, 'a'); // true
- * hasIn(obj, ['a', 'b']); // true
- * hasIn(obj, ['a', 'b', 'c']); // true
- * hasIn(obj, 'a.b.c'); // true
- * hasIn(obj, 'a.b.d'); // false
- * hasIn(obj, ['a', 'b', 'c', 'd']); // false
- *
- * // Example with inherited properties:
- * function Rectangle() {}
- * Rectangle.prototype.area = function() {};
- *
- * const rect = new Rectangle();
- * hasIn(rect, 'area'); // true
- * has(rect, 'area'); // false - has only checks own properties
- */
-declare function hasIn<T>(object: T, path: PropertyPath): boolean;
-
-export { hasIn };
Index: de_modules/es-toolkit/dist/compat/object/hasIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/hasIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Checks if a given path exists in an object, **including inherited properties**.
- *
- * You can provide the path as a single property key, an array of property keys,
- * or a string representing a deep path.
- *
- * Unlike `has`, which only checks for own properties, `hasIn` also checks for properties
- * in the prototype chain.
- *
- * If the path is an index and the object is an array or an arguments object, the function will verify
- * if the index is valid and within the bounds of the array or arguments object, even if the array or
- * arguments object is sparse (i.e., not all indexes are defined).
- *
- * @template T
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path to check. This can be a single property key,
- *        an array of property keys, or a string representing a deep path.
- * @returns {boolean} Returns `true` if the path exists (own or inherited), `false` otherwise.
- *
- * @example
- *
- * const obj = { a: { b: { c: 3 } } };
- *
- * hasIn(obj, 'a'); // true
- * hasIn(obj, ['a', 'b']); // true
- * hasIn(obj, ['a', 'b', 'c']); // true
- * hasIn(obj, 'a.b.c'); // true
- * hasIn(obj, 'a.b.d'); // false
- * hasIn(obj, ['a', 'b', 'c', 'd']); // false
- *
- * // Example with inherited properties:
- * function Rectangle() {}
- * Rectangle.prototype.area = function() {};
- *
- * const rect = new Rectangle();
- * hasIn(rect, 'area'); // true
- * has(rect, 'area'); // false - has only checks own properties
- */
-declare function hasIn<T>(object: T, path: PropertyPath): boolean;
-
-export { hasIn };
Index: de_modules/es-toolkit/dist/compat/object/hasIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/hasIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isDeepKey = require('../_internal/isDeepKey.js');
-const isIndex = require('../_internal/isIndex.js');
-const isArguments = require('../predicate/isArguments.js');
-const toPath = require('../util/toPath.js');
-
-function hasIn(object, path) {
-    if (object == null) {
-        return false;
-    }
-    let resolvedPath;
-    if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else if (typeof path === 'string' && isDeepKey.isDeepKey(path) && object[path] == null) {
-        resolvedPath = toPath.toPath(path);
-    }
-    else {
-        resolvedPath = [path];
-    }
-    if (resolvedPath.length === 0) {
-        return false;
-    }
-    let current = object;
-    for (let i = 0; i < resolvedPath.length; i++) {
-        const key = resolvedPath[i];
-        if (current == null || !(key in Object(current))) {
-            const isSparseIndex = (Array.isArray(current) || isArguments.isArguments(current)) && isIndex.isIndex(key) && key < current.length;
-            if (!isSparseIndex) {
-                return false;
-            }
-        }
-        current = current[key];
-    }
-    return true;
-}
-
-exports.hasIn = hasIn;
Index: de_modules/es-toolkit/dist/compat/object/hasIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/hasIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { isDeepKey } from '../_internal/isDeepKey.mjs';
-import { isIndex } from '../_internal/isIndex.mjs';
-import { isArguments } from '../predicate/isArguments.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function hasIn(object, path) {
-    if (object == null) {
-        return false;
-    }
-    let resolvedPath;
-    if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else if (typeof path === 'string' && isDeepKey(path) && object[path] == null) {
-        resolvedPath = toPath(path);
-    }
-    else {
-        resolvedPath = [path];
-    }
-    if (resolvedPath.length === 0) {
-        return false;
-    }
-    let current = object;
-    for (let i = 0; i < resolvedPath.length; i++) {
-        const key = resolvedPath[i];
-        if (current == null || !(key in Object(current))) {
-            const isSparseIndex = (Array.isArray(current) || isArguments(current)) && isIndex(key) && key < current.length;
-            if (!isSparseIndex) {
-                return false;
-            }
-        }
-        current = current[key];
-    }
-    return true;
-}
-
-export { hasIn };
Index: de_modules/es-toolkit/dist/compat/object/invert.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invert.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Inverts the keys and values of an object.
- *
- * @param {object} object - The object to invert.
- * @returns {Record<string, string>} - Returns the new inverted object.
- *
- * @example
- * invert({ a: 1, b: 2, c: 3 });
- * // => { '1': 'a', '2': 'b', '3': 'c' }
- */
-declare function invert(object: object): Record<string, string>;
-
-export { invert };
Index: de_modules/es-toolkit/dist/compat/object/invert.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invert.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Inverts the keys and values of an object.
- *
- * @param {object} object - The object to invert.
- * @returns {Record<string, string>} - Returns the new inverted object.
- *
- * @example
- * invert({ a: 1, b: 2, c: 3 });
- * // => { '1': 'a', '2': 'b', '3': 'c' }
- */
-declare function invert(object: object): Record<string, string>;
-
-export { invert };
Index: de_modules/es-toolkit/dist/compat/object/invert.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invert.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const invert$1 = require('../../object/invert.js');
-
-function invert(obj) {
-    return invert$1.invert(obj);
-}
-
-exports.invert = invert;
Index: de_modules/es-toolkit/dist/compat/object/invert.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invert.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { invert as invert$1 } from '../../object/invert.mjs';
-
-function invert(obj) {
-    return invert$1(obj);
-}
-
-export { invert };
Index: de_modules/es-toolkit/dist/compat/object/invertBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invertBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.mjs';
-
-/**
- * Creates a new object that reverses the keys and values of the given object, similar to the invert.
- * The values of the new object are arrays of keys that correspond to the value returned by the `iteratee` function.
- *
- * @param {Record<string|number, T>} object - The object to iterate over
- * @param {ValueIteratee<T>} [iteratee] - Optional function to transform values into keys
- * @returns {Record<string, string[]>} An object with transformed values as keys and arrays of original keys as values
- *
- * @example
- * const obj = { a: 1, b: 2, c: 1 };
- * invertBy(obj); // => { '1': ['a', 'c'], '2': ['b'] }
- *
- * @example
- * const obj = { a: 1, b: 2, c: 1 };
- * invertBy(obj, value => `group${value}`); // => { 'group1': ['a', 'c'], 'group2': ['b'] }
- */
-declare function invertBy<T>(object: Record<string, T> | Record<number, T> | null | undefined, interatee?: ValueIteratee<T>): Record<string, string[]>;
-/**
- * Creates a new object that reverses the keys and values of the given object, similar to the invert.
- * The values of the new object are arrays of keys that correspond to the value returned by the `iteratee` function.
- *
- * @param {T} object - The object to iterate over
- * @param {ValueIteratee<T[keyof T]>} [iteratee] - Optional function to transform values into keys
- * @returns {Record<string, string[]>} An object with transformed values as keys and arrays of original keys as values
- *
- * @example
- * const obj = { foo: { id: 1 }, bar: { id: 2 }, baz: { id: 1 } };
- * invertBy(obj, value => String(value.id)); // => { '1': ['foo', 'baz'], '2': ['bar'] }
- */
-declare function invertBy<T extends object>(object: T | null | undefined, interatee?: ValueIteratee<T[keyof T]>): Record<string, string[]>;
-
-export { invertBy };
Index: de_modules/es-toolkit/dist/compat/object/invertBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invertBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { ValueIteratee } from '../_internal/ValueIteratee.js';
-
-/**
- * Creates a new object that reverses the keys and values of the given object, similar to the invert.
- * The values of the new object are arrays of keys that correspond to the value returned by the `iteratee` function.
- *
- * @param {Record<string|number, T>} object - The object to iterate over
- * @param {ValueIteratee<T>} [iteratee] - Optional function to transform values into keys
- * @returns {Record<string, string[]>} An object with transformed values as keys and arrays of original keys as values
- *
- * @example
- * const obj = { a: 1, b: 2, c: 1 };
- * invertBy(obj); // => { '1': ['a', 'c'], '2': ['b'] }
- *
- * @example
- * const obj = { a: 1, b: 2, c: 1 };
- * invertBy(obj, value => `group${value}`); // => { 'group1': ['a', 'c'], 'group2': ['b'] }
- */
-declare function invertBy<T>(object: Record<string, T> | Record<number, T> | null | undefined, interatee?: ValueIteratee<T>): Record<string, string[]>;
-/**
- * Creates a new object that reverses the keys and values of the given object, similar to the invert.
- * The values of the new object are arrays of keys that correspond to the value returned by the `iteratee` function.
- *
- * @param {T} object - The object to iterate over
- * @param {ValueIteratee<T[keyof T]>} [iteratee] - Optional function to transform values into keys
- * @returns {Record<string, string[]>} An object with transformed values as keys and arrays of original keys as values
- *
- * @example
- * const obj = { foo: { id: 1 }, bar: { id: 2 }, baz: { id: 1 } };
- * invertBy(obj, value => String(value.id)); // => { '1': ['foo', 'baz'], '2': ['bar'] }
- */
-declare function invertBy<T extends object>(object: T | null | undefined, interatee?: ValueIteratee<T[keyof T]>): Record<string, string[]>;
-
-export { invertBy };
Index: de_modules/es-toolkit/dist/compat/object/invertBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invertBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isNil = require('../../predicate/isNil.js');
-const iteratee = require('../util/iteratee.js');
-
-function invertBy(object, iteratee$1) {
-    const result = {};
-    if (isNil.isNil(object)) {
-        return result;
-    }
-    if (iteratee$1 == null) {
-        iteratee$1 = identity.identity;
-    }
-    const keys = Object.keys(object);
-    const getString = iteratee.iteratee(iteratee$1);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        const valueStr = getString(value);
-        if (Array.isArray(result[valueStr])) {
-            result[valueStr].push(key);
-        }
-        else {
-            result[valueStr] = [key];
-        }
-    }
-    return result;
-}
-
-exports.invertBy = invertBy;
Index: de_modules/es-toolkit/dist/compat/object/invertBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/invertBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isNil } from '../../predicate/isNil.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function invertBy(object, iteratee$1) {
-    const result = {};
-    if (isNil(object)) {
-        return result;
-    }
-    if (iteratee$1 == null) {
-        iteratee$1 = identity;
-    }
-    const keys = Object.keys(object);
-    const getString = iteratee(iteratee$1);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        const valueStr = getString(value);
-        if (Array.isArray(result[valueStr])) {
-            result[valueStr].push(key);
-        }
-        else {
-            result[valueStr] = [key];
-        }
-    }
-    return result;
-}
-
-export { invertBy };
Index: de_modules/es-toolkit/dist/compat/object/keys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * Non-object values are coerced to objects.
- *
- * @param {object} object The object to query.
- * @returns {string[]} Returns the array of property names.
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- * Foo.prototype.c = 3;
- * keys(new Foo); // ['a', 'b'] (iteration order is not guaranteed)
- *
- * keys('hi'); // ['0', '1']
- * keys([1, 2, 3]); // ['0', '1', '2']
- * keys({ a: 1, b: 2 }); // ['a', 'b']
- */
-declare function keys(object?: any): string[];
-
-export { keys };
Index: de_modules/es-toolkit/dist/compat/object/keys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * Non-object values are coerced to objects.
- *
- * @param {object} object The object to query.
- * @returns {string[]} Returns the array of property names.
- * @example
- * function Foo() {
- *   this.a = 1;
- *   this.b = 2;
- * }
- * Foo.prototype.c = 3;
- * keys(new Foo); // ['a', 'b'] (iteration order is not guaranteed)
- *
- * keys('hi'); // ['0', '1']
- * keys([1, 2, 3]); // ['0', '1', '2']
- * keys({ a: 1, b: 2 }); // ['a', 'b']
- */
-declare function keys(object?: any): string[];
-
-export { keys };
Index: de_modules/es-toolkit/dist/compat/object/keys.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isBuffer = require('../../predicate/isBuffer.js');
-const isPrototype = require('../_internal/isPrototype.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-const times = require('../util/times.js');
-
-function keys(object) {
-    if (isArrayLike.isArrayLike(object)) {
-        return arrayLikeKeys(object);
-    }
-    const result = Object.keys(Object(object));
-    if (!isPrototype.isPrototype(object)) {
-        return result;
-    }
-    return result.filter(key => key !== 'constructor');
-}
-function arrayLikeKeys(object) {
-    const indices = times.times(object.length, index => `${index}`);
-    const filteredKeys = new Set(indices);
-    if (isBuffer.isBuffer(object)) {
-        filteredKeys.add('offset');
-        filteredKeys.add('parent');
-    }
-    if (isTypedArray.isTypedArray(object)) {
-        filteredKeys.add('buffer');
-        filteredKeys.add('byteLength');
-        filteredKeys.add('byteOffset');
-    }
-    const inheritedKeys = Object.keys(object).filter(key => !filteredKeys.has(key));
-    if (Array.isArray(object)) {
-        return [...indices, ...inheritedKeys];
-    }
-    return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];
-}
-
-exports.keys = keys;
Index: de_modules/es-toolkit/dist/compat/object/keys.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { isBuffer } from '../../predicate/isBuffer.mjs';
-import { isPrototype } from '../_internal/isPrototype.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-import { times } from '../util/times.mjs';
-
-function keys(object) {
-    if (isArrayLike(object)) {
-        return arrayLikeKeys(object);
-    }
-    const result = Object.keys(Object(object));
-    if (!isPrototype(object)) {
-        return result;
-    }
-    return result.filter(key => key !== 'constructor');
-}
-function arrayLikeKeys(object) {
-    const indices = times(object.length, index => `${index}`);
-    const filteredKeys = new Set(indices);
-    if (isBuffer(object)) {
-        filteredKeys.add('offset');
-        filteredKeys.add('parent');
-    }
-    if (isTypedArray(object)) {
-        filteredKeys.add('buffer');
-        filteredKeys.add('byteLength');
-        filteredKeys.add('byteOffset');
-    }
-    const inheritedKeys = Object.keys(object).filter(key => !filteredKeys.has(key));
-    if (Array.isArray(object)) {
-        return [...indices, ...inheritedKeys];
-    }
-    return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];
-}
-
-export { keys };
Index: de_modules/es-toolkit/dist/compat/object/keysIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keysIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * This function retrieves the names of string-keyed properties from an object, including those inherited from its prototype.
- *
- * - If the value is not an object, it is converted to an object.
- * - Array-like objects are treated like arrays.
- * - Sparse arrays with some missing indices are treated like dense arrays.
- * - If the value is `null` or `undefined`, an empty array is returned.
- * - When handling prototype objects, the `constructor` property is excluded from the results.
- *
- * @param {any} [object] - The object to inspect for keys.
- * @returns {string[]} An array of string keys from the object.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * console.log(keysIn(obj)); // ['a', 'b']
- *
- * const arr = [1, 2, 3];
- * console.log(keysIn(arr)); // ['0', '1', '2']
- *
- * function Foo() {}
- * Foo.prototype.a = 1;
- * console.log(keysIn(new Foo())); // ['a']
- */
-declare function keysIn(object?: any): string[];
-
-export { keysIn };
Index: de_modules/es-toolkit/dist/compat/object/keysIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keysIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * This function retrieves the names of string-keyed properties from an object, including those inherited from its prototype.
- *
- * - If the value is not an object, it is converted to an object.
- * - Array-like objects are treated like arrays.
- * - Sparse arrays with some missing indices are treated like dense arrays.
- * - If the value is `null` or `undefined`, an empty array is returned.
- * - When handling prototype objects, the `constructor` property is excluded from the results.
- *
- * @param {any} [object] - The object to inspect for keys.
- * @returns {string[]} An array of string keys from the object.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * console.log(keysIn(obj)); // ['a', 'b']
- *
- * const arr = [1, 2, 3];
- * console.log(keysIn(arr)); // ['0', '1', '2']
- *
- * function Foo() {}
- * Foo.prototype.a = 1;
- * console.log(keysIn(new Foo())); // ['a']
- */
-declare function keysIn(object?: any): string[];
-
-export { keysIn };
Index: de_modules/es-toolkit/dist/compat/object/keysIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keysIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isBuffer = require('../../predicate/isBuffer.js');
-const isPrototype = require('../_internal/isPrototype.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-const times = require('../util/times.js');
-
-function keysIn(object) {
-    if (object == null) {
-        return [];
-    }
-    switch (typeof object) {
-        case 'object':
-        case 'function': {
-            if (isArrayLike.isArrayLike(object)) {
-                return arrayLikeKeysIn(object);
-            }
-            if (isPrototype.isPrototype(object)) {
-                return prototypeKeysIn(object);
-            }
-            return keysInImpl(object);
-        }
-        default: {
-            return keysInImpl(Object(object));
-        }
-    }
-}
-function keysInImpl(object) {
-    const result = [];
-    for (const key in object) {
-        result.push(key);
-    }
-    return result;
-}
-function prototypeKeysIn(object) {
-    const keys = keysInImpl(object);
-    return keys.filter(key => key !== 'constructor');
-}
-function arrayLikeKeysIn(object) {
-    const indices = times.times(object.length, index => `${index}`);
-    const filteredKeys = new Set(indices);
-    if (isBuffer.isBuffer(object)) {
-        filteredKeys.add('offset');
-        filteredKeys.add('parent');
-    }
-    if (isTypedArray.isTypedArray(object)) {
-        filteredKeys.add('buffer');
-        filteredKeys.add('byteLength');
-        filteredKeys.add('byteOffset');
-    }
-    const inheritedKeys = keysInImpl(object).filter(key => !filteredKeys.has(key));
-    if (Array.isArray(object)) {
-        return [...indices, ...inheritedKeys];
-    }
-    return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];
-}
-
-exports.keysIn = keysIn;
Index: de_modules/es-toolkit/dist/compat/object/keysIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/keysIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-import { isBuffer } from '../../predicate/isBuffer.mjs';
-import { isPrototype } from '../_internal/isPrototype.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-import { times } from '../util/times.mjs';
-
-function keysIn(object) {
-    if (object == null) {
-        return [];
-    }
-    switch (typeof object) {
-        case 'object':
-        case 'function': {
-            if (isArrayLike(object)) {
-                return arrayLikeKeysIn(object);
-            }
-            if (isPrototype(object)) {
-                return prototypeKeysIn(object);
-            }
-            return keysInImpl(object);
-        }
-        default: {
-            return keysInImpl(Object(object));
-        }
-    }
-}
-function keysInImpl(object) {
-    const result = [];
-    for (const key in object) {
-        result.push(key);
-    }
-    return result;
-}
-function prototypeKeysIn(object) {
-    const keys = keysInImpl(object);
-    return keys.filter(key => key !== 'constructor');
-}
-function arrayLikeKeysIn(object) {
-    const indices = times(object.length, index => `${index}`);
-    const filteredKeys = new Set(indices);
-    if (isBuffer(object)) {
-        filteredKeys.add('offset');
-        filteredKeys.add('parent');
-    }
-    if (isTypedArray(object)) {
-        filteredKeys.add('buffer');
-        filteredKeys.add('byteLength');
-        filteredKeys.add('byteOffset');
-    }
-    const inheritedKeys = keysInImpl(object).filter(key => !filteredKeys.has(key));
-    if (Array.isArray(object)) {
-        return [...indices, ...inheritedKeys];
-    }
-    return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];
-}
-
-export { keysIn };
Index: de_modules/es-toolkit/dist/compat/object/mapKeys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapKeys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.mjs';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.mjs';
-
-/**
- * Creates an object with the same values as `object` and keys generated by running each own enumerable string keyed property through `iteratee`.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} object - The object to iterate over.
- * @param {ValueIteratee<T>} [iteratee] - The function invoked per iteration.
- * @returns {Record<string, T>} - Returns the new mapped object.
- *
- * @example
- * mapKeys([1, 2, 3], (value, index) => `key${index}`);
- * // => { 'key0': 1, 'key1': 2, 'key2': 3 }
- */
-declare function mapKeys<T>(object: ArrayLike<T> | null | undefined, iteratee?: ListIteratee<T>): Record<string, T>;
-/**
- * Creates an object with the same values as `object` and keys generated by running each own enumerable string keyed property through `iteratee`.
- *
- * @template T
- * @param {T | null | undefined} object - The object to iterate over.
- * @param {ValueIteratee<T[keyof T]>} [iteratee] - The function invoked per iteration.
- * @returns {Record<string, T[keyof T]>} - Returns the new mapped object.
- *
- * @example
- * mapKeys({ a: 1, b: 2 }, (value, key) => key + value);
- * // => { 'a1': 1, 'b2': 2 }
- */
-declare function mapKeys<T extends object>(object: T | null | undefined, iteratee?: ObjectIteratee<T>): Record<string, T[keyof T]>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/compat/object/mapKeys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { ListIteratee } from '../_internal/ListIteratee.js';
-import { ObjectIteratee } from '../_internal/ObjectIteratee.js';
-
-/**
- * Creates an object with the same values as `object` and keys generated by running each own enumerable string keyed property through `iteratee`.
- *
- * @template T
- * @param {ArrayLike<T> | null | undefined} object - The object to iterate over.
- * @param {ValueIteratee<T>} [iteratee] - The function invoked per iteration.
- * @returns {Record<string, T>} - Returns the new mapped object.
- *
- * @example
- * mapKeys([1, 2, 3], (value, index) => `key${index}`);
- * // => { 'key0': 1, 'key1': 2, 'key2': 3 }
- */
-declare function mapKeys<T>(object: ArrayLike<T> | null | undefined, iteratee?: ListIteratee<T>): Record<string, T>;
-/**
- * Creates an object with the same values as `object` and keys generated by running each own enumerable string keyed property through `iteratee`.
- *
- * @template T
- * @param {T | null | undefined} object - The object to iterate over.
- * @param {ValueIteratee<T[keyof T]>} [iteratee] - The function invoked per iteration.
- * @returns {Record<string, T[keyof T]>} - Returns the new mapped object.
- *
- * @example
- * mapKeys({ a: 1, b: 2 }, (value, key) => key + value);
- * // => { 'a1': 1, 'b2': 2 }
- */
-declare function mapKeys<T extends object>(object: T | null | undefined, iteratee?: ObjectIteratee<T>): Record<string, T[keyof T]>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/compat/object/mapKeys.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const mapKeys$1 = require('../../object/mapKeys.js');
-const iteratee = require('../util/iteratee.js');
-
-function mapKeys(object, getNewKey = identity.identity) {
-    if (object == null) {
-        return {};
-    }
-    return mapKeys$1.mapKeys(object, iteratee.iteratee(getNewKey));
-}
-
-exports.mapKeys = mapKeys;
Index: de_modules/es-toolkit/dist/compat/object/mapKeys.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapKeys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { mapKeys as mapKeys$1 } from '../../object/mapKeys.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function mapKeys(object, getNewKey = identity) {
-    if (object == null) {
-        return {};
-    }
-    return mapKeys$1(object, iteratee(getNewKey));
-}
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/compat/object/mapValues.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapValues.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,130 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.mjs';
-import { ObjectIterator } from '../_internal/ObjectIterator.mjs';
-import { StringIterator } from '../_internal/StringIterator.mjs';
-
-/**
- * Creates a new object by mapping each character in a string to a value.
- * @param obj - The string to iterate over
- * @param callback - The function invoked per character
- * @returns A new object with numeric keys and mapped values
- * @example
- * mapValues('abc', (char) => char.toUpperCase())
- * // => { '0': 'A', '1': 'B', '2': 'C' }
- */
-declare function mapValues<T>(obj: string | null | undefined, callback: StringIterator<T>): Record<number, T>;
-/**
- * Creates a new object by mapping each element in an array to a value.
- * @param array - The array to iterate over
- * @param callback - The function invoked per element
- * @returns A new object with numeric keys and mapped values
- * @example
- * mapValues([1, 2], (num) => num * 2)
- * // => { '0': 2, '1': 4 }
- */
-declare function mapValues<T, U>(array: T[], callback: ArrayIterator<T, U>): Record<number, U>;
-/**
- * Creates a new object by mapping each property value in an object to a new value.
- * @param obj - The object to iterate over
- * @param callback - The function invoked per property
- * @returns A new object with the same keys and mapped values
- * @example
- * mapValues({ a: 1, b: 2 }, (num) => num * 2)
- * // => { a: 2, b: 4 }
- */
-declare function mapValues<T extends object, U>(obj: T | null | undefined, callback: ObjectIterator<T, U>): {
-    [P in keyof T]: U;
-};
-/**
- * Creates a new object by checking each value against a matcher object.
- * @param obj - The object to iterate over
- * @param iteratee - The object to match against
- * @returns A new object with boolean values indicating matches
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { a: false, b: true }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: object): Record<string, boolean>;
-/**
- * Creates a new object by checking each value against a matcher object.
- * @param obj - The object to iterate over
- * @param iteratee - The object to match against
- * @returns A new object with boolean values indicating matches
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { a: false, b: true }
- */
-declare function mapValues<T extends object>(obj: T | null | undefined, iteratee: object): {
-    [P in keyof T]: boolean;
-};
-/**
- * Creates a new object by extracting a property from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The property key to extract
- * @returns A new object with extracted property values
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, 'x')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T, K extends keyof T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: K): Record<string, T[K]>;
-/**
- * Creates a new object by extracting values at a path from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The path to extract
- * @returns A new object with extracted values
- * @example
- * mapValues({ a: { x: { y: 1 } }, b: { x: { y: 2 } } }, 'x.y')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: string): Record<string, any>;
-/**
- * Creates a new object by extracting values at a path from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The path to extract
- * @returns A new object with extracted values
- * @example
- * mapValues({ a: { x: { y: 1 } }, b: { x: { y: 2 } } }, 'x.y')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T extends object>(obj: T | null | undefined, iteratee: string): {
-    [P in keyof T]: any;
-};
-/**
- * Creates a new object from a string using identity function.
- * @param obj - The string to convert
- * @returns A new object with characters as values
- * @example
- * mapValues('abc')
- * // => { '0': 'a', '1': 'b', '2': 'c' }
- */
-declare function mapValues(obj: string | null | undefined): Record<number, string>;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined): Record<string, T>;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T extends object>(obj: T): T;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values, or empty object if input is null/undefined
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- * mapValues(null)
- * // => {}
- */
-declare function mapValues<T extends object>(obj: T | null | undefined): Partial<T>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/compat/object/mapValues.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,130 +1,0 @@
-import { ArrayIterator } from '../_internal/ArrayIterator.js';
-import { ObjectIterator } from '../_internal/ObjectIterator.js';
-import { StringIterator } from '../_internal/StringIterator.js';
-
-/**
- * Creates a new object by mapping each character in a string to a value.
- * @param obj - The string to iterate over
- * @param callback - The function invoked per character
- * @returns A new object with numeric keys and mapped values
- * @example
- * mapValues('abc', (char) => char.toUpperCase())
- * // => { '0': 'A', '1': 'B', '2': 'C' }
- */
-declare function mapValues<T>(obj: string | null | undefined, callback: StringIterator<T>): Record<number, T>;
-/**
- * Creates a new object by mapping each element in an array to a value.
- * @param array - The array to iterate over
- * @param callback - The function invoked per element
- * @returns A new object with numeric keys and mapped values
- * @example
- * mapValues([1, 2], (num) => num * 2)
- * // => { '0': 2, '1': 4 }
- */
-declare function mapValues<T, U>(array: T[], callback: ArrayIterator<T, U>): Record<number, U>;
-/**
- * Creates a new object by mapping each property value in an object to a new value.
- * @param obj - The object to iterate over
- * @param callback - The function invoked per property
- * @returns A new object with the same keys and mapped values
- * @example
- * mapValues({ a: 1, b: 2 }, (num) => num * 2)
- * // => { a: 2, b: 4 }
- */
-declare function mapValues<T extends object, U>(obj: T | null | undefined, callback: ObjectIterator<T, U>): {
-    [P in keyof T]: U;
-};
-/**
- * Creates a new object by checking each value against a matcher object.
- * @param obj - The object to iterate over
- * @param iteratee - The object to match against
- * @returns A new object with boolean values indicating matches
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { a: false, b: true }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: object): Record<string, boolean>;
-/**
- * Creates a new object by checking each value against a matcher object.
- * @param obj - The object to iterate over
- * @param iteratee - The object to match against
- * @returns A new object with boolean values indicating matches
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, { x: 2 })
- * // => { a: false, b: true }
- */
-declare function mapValues<T extends object>(obj: T | null | undefined, iteratee: object): {
-    [P in keyof T]: boolean;
-};
-/**
- * Creates a new object by extracting a property from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The property key to extract
- * @returns A new object with extracted property values
- * @example
- * mapValues({ a: { x: 1 }, b: { x: 2 } }, 'x')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T, K extends keyof T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: K): Record<string, T[K]>;
-/**
- * Creates a new object by extracting values at a path from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The path to extract
- * @returns A new object with extracted values
- * @example
- * mapValues({ a: { x: { y: 1 } }, b: { x: { y: 2 } } }, 'x.y')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined, iteratee: string): Record<string, any>;
-/**
- * Creates a new object by extracting values at a path from each value.
- * @param obj - The object to iterate over
- * @param iteratee - The path to extract
- * @returns A new object with extracted values
- * @example
- * mapValues({ a: { x: { y: 1 } }, b: { x: { y: 2 } } }, 'x.y')
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T extends object>(obj: T | null | undefined, iteratee: string): {
-    [P in keyof T]: any;
-};
-/**
- * Creates a new object from a string using identity function.
- * @param obj - The string to convert
- * @returns A new object with characters as values
- * @example
- * mapValues('abc')
- * // => { '0': 'a', '1': 'b', '2': 'c' }
- */
-declare function mapValues(obj: string | null | undefined): Record<number, string>;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T>(obj: Record<string, T> | Record<number, T> | null | undefined): Record<string, T>;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- */
-declare function mapValues<T extends object>(obj: T): T;
-/**
- * Creates a new object using identity function.
- * @param obj - The object to clone
- * @returns A new object with the same values, or empty object if input is null/undefined
- * @example
- * mapValues({ a: 1, b: 2 })
- * // => { a: 1, b: 2 }
- * mapValues(null)
- * // => {}
- */
-declare function mapValues<T extends object>(obj: T | null | undefined): Partial<T>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/compat/object/mapValues.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const mapValues$1 = require('../../object/mapValues.js');
-const iteratee = require('../util/iteratee.js');
-
-function mapValues(object, getNewValue = identity.identity) {
-    if (object == null) {
-        return {};
-    }
-    return mapValues$1.mapValues(object, iteratee.iteratee(getNewValue));
-}
-
-exports.mapValues = mapValues;
Index: de_modules/es-toolkit/dist/compat/object/mapValues.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mapValues.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { mapValues as mapValues$1 } from '../../object/mapValues.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function mapValues(object, getNewValue = identity) {
-    if (object == null) {
-        return {};
-    }
-    return mapValues$1(object, iteratee(getNewValue));
-}
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/compat/object/merge.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/merge.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @param {T} object - The destination object.
- * @param {U} source - The source object.
- * @returns {T & U} - Returns `object`.
- *
- * @example
- * const object = { a: [{ b: 2 }, { d: 4 }] };
- * const other = { a: [{ c: 3 }, { e: 5 }] };
- * merge(object, other);
- * // => { a: [{ b: 2, c: 3 }, { d: 4, e: 5 }] }
- */
-declare function merge<T, U>(object: T, source: U): T & U;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @returns {T & U & V} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function merge<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @template W
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @param {W} source3 - The third source object.
- * @returns {T & U & V & W} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function merge<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @template W
- * @template X
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @param {W} source3 - The third source object.
- * @param {X} source4 - The fourth source object.
- * @returns {T & U & V & W & X} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }, { e: 5 });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function merge<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @param {any} object - The destination object.
- * @param {...any[]} otherArgs - The source objects.
- * @returns {any} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function merge(object: any, ...otherArgs: any[]): any;
-
-export { merge };
Index: de_modules/es-toolkit/dist/compat/object/merge.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/merge.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @param {T} object - The destination object.
- * @param {U} source - The source object.
- * @returns {T & U} - Returns `object`.
- *
- * @example
- * const object = { a: [{ b: 2 }, { d: 4 }] };
- * const other = { a: [{ c: 3 }, { e: 5 }] };
- * merge(object, other);
- * // => { a: [{ b: 2, c: 3 }, { d: 4, e: 5 }] }
- */
-declare function merge<T, U>(object: T, source: U): T & U;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @returns {T & U & V} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function merge<T, U, V>(object: T, source1: U, source2: V): T & U & V;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @template W
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @param {W} source3 - The third source object.
- * @returns {T & U & V & W} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function merge<T, U, V, W>(object: T, source1: U, source2: V, source3: W): T & U & V & W;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @template T
- * @template U
- * @template V
- * @template W
- * @template X
- * @param {T} object - The destination object.
- * @param {U} source1 - The first source object.
- * @param {V} source2 - The second source object.
- * @param {W} source3 - The third source object.
- * @param {X} source4 - The fourth source object.
- * @returns {T & U & V & W & X} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }, { e: 5 });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function merge<T, U, V, W, X>(object: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;
-/**
- * Recursively merges own and inherited enumerable string keyed properties of source objects into the destination object.
- *
- * @param {any} object - The destination object.
- * @param {...any[]} otherArgs - The source objects.
- * @returns {any} - Returns `object`.
- *
- * @example
- * merge({ a: 1 }, { b: 2 }, { c: 3 });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function merge(object: any, ...otherArgs: any[]): any;
-
-export { merge };
Index: de_modules/es-toolkit/dist/compat/object/merge.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const mergeWith = require('./mergeWith.js');
-const noop = require('../../function/noop.js');
-
-function merge(object, ...sources) {
-    return mergeWith.mergeWith(object, ...sources, noop.noop);
-}
-
-exports.merge = merge;
Index: de_modules/es-toolkit/dist/compat/object/merge.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/merge.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { mergeWith } from './mergeWith.mjs';
-import { noop } from '../../function/noop.mjs';
-
-function merge(object, ...sources) {
-    return mergeWith(object, ...sources, noop);
-}
-
-export { merge };
Index: de_modules/es-toolkit/dist/compat/object/mergeWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mergeWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-type MergeWithCustomizer = (objValue: any, srcValue: any, key: string, object: any, source: any, stack: any) => any;
-/**
- * Merges the properties of a source object into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource
- * @param {TObject} object - The target object into which the source object properties will be merged.
- * @param {TSource} source - The source object whose properties will be merged into the target object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource} Returns the updated target object with properties from the source object merged in.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 5, c: 4 }
- */
-declare function mergeWith<TObject, TSource>(object: TObject, source: TSource, customizer: MergeWithCustomizer): TObject & TSource;
-/**
- * Merges the properties of two source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- *
- * const result = mergeWith(target, source1, source2, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function mergeWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2;
-/**
- * Merges the properties of three source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @template TSource3
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {TSource3} source3 - The third source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2 & TSource3} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- *
- * const result = mergeWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function mergeWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3;
-/**
- * Merges the properties of four source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @template TSource3
- * @template TSource4
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {TSource3} source3 - The third source object.
- * @param {TSource4} source4 - The fourth source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2 & TSource3 & TSource4} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- *
- * const result = mergeWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function mergeWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
-/**
- * Merges the properties of one or more source objects into the target object.
- *
- * @param {any} object - The target object into which the source object properties will be merged.
- * @param {...any} otherArgs - Additional source objects to merge into the target object, including the custom `merge` function.
- * @returns {any} The updated target object with properties from the source object(s) merged in.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- */
-declare function mergeWith(object: any, ...otherArgs: any[]): any;
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/compat/object/mergeWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mergeWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-type MergeWithCustomizer = (objValue: any, srcValue: any, key: string, object: any, source: any, stack: any) => any;
-/**
- * Merges the properties of a source object into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource
- * @param {TObject} object - The target object into which the source object properties will be merged.
- * @param {TSource} source - The source object whose properties will be merged into the target object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource} Returns the updated target object with properties from the source object merged in.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 5, c: 4 }
- */
-declare function mergeWith<TObject, TSource>(object: TObject, source: TSource, customizer: MergeWithCustomizer): TObject & TSource;
-/**
- * Merges the properties of two source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- *
- * const result = mergeWith(target, source1, source2, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3 }
- */
-declare function mergeWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2;
-/**
- * Merges the properties of three source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @template TSource3
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {TSource3} source3 - The third source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2 & TSource3} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- *
- * const result = mergeWith(target, source1, source2, source3, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3, d: 4 }
- */
-declare function mergeWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3;
-/**
- * Merges the properties of four source objects into the target object using a customizer function.
- *
- * @template TObject
- * @template TSource1
- * @template TSource2
- * @template TSource3
- * @template TSource4
- * @param {TObject} object - The target object into which the source objects properties will be merged.
- * @param {TSource1} source1 - The first source object.
- * @param {TSource2} source2 - The second source object.
- * @param {TSource3} source3 - The third source object.
- * @param {TSource4} source4 - The fourth source object.
- * @param {MergeWithCustomizer} customizer - The function to customize assigned values.
- * @returns {TObject & TSource1 & TSource2 & TSource3 & TSource4} Returns the updated target object with properties from the source objects merged in.
- *
- * @example
- * const target = { a: 1 };
- * const source1 = { b: 2 };
- * const source2 = { c: 3 };
- * const source3 = { d: 4 };
- * const source4 = { e: 5 };
- *
- * const result = mergeWith(target, source1, source2, source3, source4, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- *   }
- * });
- * // => { a: 1, b: 2, c: 3, d: 4, e: 5 }
- */
-declare function mergeWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
-/**
- * Merges the properties of one or more source objects into the target object.
- *
- * @param {any} object - The target object into which the source object properties will be merged.
- * @param {...any} otherArgs - Additional source objects to merge into the target object, including the custom `merge` function.
- * @returns {any} The updated target object with properties from the source object(s) merged in.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (typeof objValue === 'number' && typeof srcValue === 'number') {
- *     return objValue + srcValue;
- */
-declare function mergeWith(object: any, ...otherArgs: any[]): any;
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/compat/object/mergeWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mergeWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,109 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeep = require('./cloneDeep.js');
-const isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');
-const clone = require('../../object/clone.js');
-const isPrimitive = require('../../predicate/isPrimitive.js');
-const getSymbols = require('../_internal/getSymbols.js');
-const isArguments = require('../predicate/isArguments.js');
-const isArrayLikeObject = require('../predicate/isArrayLikeObject.js');
-const isObjectLike = require('../predicate/isObjectLike.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-
-function mergeWith(object, ...otherArgs) {
-    const sources = otherArgs.slice(0, -1);
-    const merge = otherArgs[otherArgs.length - 1];
-    let result = object;
-    for (let i = 0; i < sources.length; i++) {
-        const source = sources[i];
-        result = mergeWithDeep(result, source, merge, new Map());
-    }
-    return result;
-}
-function mergeWithDeep(target, source, merge, stack) {
-    if (isPrimitive.isPrimitive(target)) {
-        target = Object(target);
-    }
-    if (source == null || typeof source !== 'object') {
-        return target;
-    }
-    if (stack.has(source)) {
-        return clone.clone(stack.get(source));
-    }
-    stack.set(source, target);
-    if (Array.isArray(source)) {
-        source = source.slice();
-        for (let i = 0; i < source.length; i++) {
-            source[i] = source[i] ?? undefined;
-        }
-    }
-    const sourceKeys = [...Object.keys(source), ...getSymbols.getSymbols(source)];
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty.isUnsafeProperty(key)) {
-            continue;
-        }
-        let sourceValue = source[key];
-        let targetValue = target[key];
-        if (isArguments.isArguments(sourceValue)) {
-            sourceValue = { ...sourceValue };
-        }
-        if (isArguments.isArguments(targetValue)) {
-            targetValue = { ...targetValue };
-        }
-        if (typeof Buffer !== 'undefined' && Buffer.isBuffer(sourceValue)) {
-            sourceValue = cloneDeep.cloneDeep(sourceValue);
-        }
-        if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                const cloned = [];
-                const targetKeys = Reflect.ownKeys(targetValue);
-                for (let i = 0; i < targetKeys.length; i++) {
-                    const targetKey = targetKeys[i];
-                    cloned[targetKey] = targetValue[targetKey];
-                }
-                targetValue = cloned;
-            }
-            else if (isArrayLikeObject.isArrayLikeObject(targetValue)) {
-                const cloned = [];
-                for (let i = 0; i < targetValue.length; i++) {
-                    cloned[i] = targetValue[i];
-                }
-                targetValue = cloned;
-            }
-            else {
-                targetValue = [];
-            }
-        }
-        const merged = merge(targetValue, sourceValue, key, target, source, stack);
-        if (merged !== undefined) {
-            target[key] = merged;
-        }
-        else if (Array.isArray(sourceValue)) {
-            target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);
-        }
-        else if (isObjectLike.isObjectLike(targetValue) &&
-            isObjectLike.isObjectLike(sourceValue) &&
-            (isPlainObject.isPlainObject(targetValue) ||
-                isPlainObject.isPlainObject(sourceValue) ||
-                isTypedArray.isTypedArray(targetValue) ||
-                isTypedArray.isTypedArray(sourceValue))) {
-            target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);
-        }
-        else if (targetValue == null && isPlainObject.isPlainObject(sourceValue)) {
-            target[key] = mergeWithDeep({}, sourceValue, merge, stack);
-        }
-        else if (targetValue == null && isTypedArray.isTypedArray(sourceValue)) {
-            target[key] = cloneDeep.cloneDeep(sourceValue);
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-
-exports.mergeWith = mergeWith;
Index: de_modules/es-toolkit/dist/compat/object/mergeWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/mergeWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,105 +1,0 @@
-import { cloneDeep } from './cloneDeep.mjs';
-import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';
-import { clone } from '../../object/clone.mjs';
-import { isPrimitive } from '../../predicate/isPrimitive.mjs';
-import { getSymbols } from '../_internal/getSymbols.mjs';
-import { isArguments } from '../predicate/isArguments.mjs';
-import { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';
-import { isObjectLike } from '../predicate/isObjectLike.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-
-function mergeWith(object, ...otherArgs) {
-    const sources = otherArgs.slice(0, -1);
-    const merge = otherArgs[otherArgs.length - 1];
-    let result = object;
-    for (let i = 0; i < sources.length; i++) {
-        const source = sources[i];
-        result = mergeWithDeep(result, source, merge, new Map());
-    }
-    return result;
-}
-function mergeWithDeep(target, source, merge, stack) {
-    if (isPrimitive(target)) {
-        target = Object(target);
-    }
-    if (source == null || typeof source !== 'object') {
-        return target;
-    }
-    if (stack.has(source)) {
-        return clone(stack.get(source));
-    }
-    stack.set(source, target);
-    if (Array.isArray(source)) {
-        source = source.slice();
-        for (let i = 0; i < source.length; i++) {
-            source[i] = source[i] ?? undefined;
-        }
-    }
-    const sourceKeys = [...Object.keys(source), ...getSymbols(source)];
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty(key)) {
-            continue;
-        }
-        let sourceValue = source[key];
-        let targetValue = target[key];
-        if (isArguments(sourceValue)) {
-            sourceValue = { ...sourceValue };
-        }
-        if (isArguments(targetValue)) {
-            targetValue = { ...targetValue };
-        }
-        if (typeof Buffer !== 'undefined' && Buffer.isBuffer(sourceValue)) {
-            sourceValue = cloneDeep(sourceValue);
-        }
-        if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                const cloned = [];
-                const targetKeys = Reflect.ownKeys(targetValue);
-                for (let i = 0; i < targetKeys.length; i++) {
-                    const targetKey = targetKeys[i];
-                    cloned[targetKey] = targetValue[targetKey];
-                }
-                targetValue = cloned;
-            }
-            else if (isArrayLikeObject(targetValue)) {
-                const cloned = [];
-                for (let i = 0; i < targetValue.length; i++) {
-                    cloned[i] = targetValue[i];
-                }
-                targetValue = cloned;
-            }
-            else {
-                targetValue = [];
-            }
-        }
-        const merged = merge(targetValue, sourceValue, key, target, source, stack);
-        if (merged !== undefined) {
-            target[key] = merged;
-        }
-        else if (Array.isArray(sourceValue)) {
-            target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);
-        }
-        else if (isObjectLike(targetValue) &&
-            isObjectLike(sourceValue) &&
-            (isPlainObject(targetValue) ||
-                isPlainObject(sourceValue) ||
-                isTypedArray(targetValue) ||
-                isTypedArray(sourceValue))) {
-            target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);
-        }
-        else if (targetValue == null && isPlainObject(sourceValue)) {
-            target[key] = mergeWithDeep({}, sourceValue, merge, stack);
-        }
-        else if (targetValue == null && isTypedArray(sourceValue)) {
-            target[key] = cloneDeep(sourceValue);
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/compat/object/omit.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omit.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @template K - The type of keys to omit.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...K} paths - The keys to be omitted from the object.
- * @returns {Pick<T, Exclude<keyof T, K[number]>>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', 'c');
- * // => { b: 2 }
- */
-declare function omit<T extends object, K extends PropertyKey[]>(object: T | null | undefined, ...paths: K): Pick<T, Exclude<keyof T, K[number]>>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @template K - The type of keys to omit.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...Array<Many<K>>} paths - The keys to be omitted from the object.
- * @returns {Omit<T, K>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', ['b', 'c']);
- * // => {}
- */
-declare function omit<T extends object, K extends keyof T>(object: T | null | undefined, ...paths: Array<Many<K>>): Omit<T, K>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...Array<Many<PropertyKey>>} paths - The keys to be omitted from the object.
- * @returns {Partial<T>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', 'b');
- * // => { c: 3 }
- */
-declare function omit<T extends object>(object: T | null | undefined, ...paths: Array<Many<PropertyKey>>): Partial<T>;
-
-export { omit };
Index: de_modules/es-toolkit/dist/compat/object/omit.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omit.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @template K - The type of keys to omit.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...K} paths - The keys to be omitted from the object.
- * @returns {Pick<T, Exclude<keyof T, K[number]>>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', 'c');
- * // => { b: 2 }
- */
-declare function omit<T extends object, K extends PropertyKey[]>(object: T | null | undefined, ...paths: K): Pick<T, Exclude<keyof T, K[number]>>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @template K - The type of keys to omit.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...Array<Many<K>>} paths - The keys to be omitted from the object.
- * @returns {Omit<T, K>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', ['b', 'c']);
- * // => {}
- */
-declare function omit<T extends object, K extends keyof T>(object: T | null | undefined, ...paths: Array<Many<K>>): Omit<T, K>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The object to omit keys from.
- * @param {...Array<Many<PropertyKey>>} paths - The keys to be omitted from the object.
- * @returns {Partial<T>} A new object with the specified keys omitted.
- *
- * @example
- * omit({ a: 1, b: 2, c: 3 }, 'a', 'b');
- * // => { c: 3 }
- */
-declare function omit<T extends object>(object: T | null | undefined, ...paths: Array<Many<PropertyKey>>): Partial<T>;
-
-export { omit };
Index: de_modules/es-toolkit/dist/compat/object/omit.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeepWith = require('./cloneDeepWith.js');
-const keysIn = require('./keysIn.js');
-const unset = require('./unset.js');
-const getSymbolsIn = require('../_internal/getSymbolsIn.js');
-const isDeepKey = require('../_internal/isDeepKey.js');
-const flatten = require('../array/flatten.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function omit(obj, ...keysArr) {
-    if (obj == null) {
-        return {};
-    }
-    keysArr = flatten.flatten(keysArr);
-    const result = cloneInOmit(obj, keysArr);
-    for (let i = 0; i < keysArr.length; i++) {
-        let keys = keysArr[i];
-        switch (typeof keys) {
-            case 'object': {
-                if (!Array.isArray(keys)) {
-                    keys = Array.from(keys);
-                }
-                for (let j = 0; j < keys.length; j++) {
-                    const key = keys[j];
-                    unset.unset(result, key);
-                }
-                break;
-            }
-            case 'string':
-            case 'symbol':
-            case 'number': {
-                unset.unset(result, keys);
-                break;
-            }
-        }
-    }
-    return result;
-}
-function cloneInOmit(obj, keys) {
-    const hasDeepKey = keys.some(key => Array.isArray(key) || isDeepKey.isDeepKey(key));
-    if (hasDeepKey) {
-        return deepCloneInOmit(obj);
-    }
-    return shallowCloneInOmit(obj);
-}
-function shallowCloneInOmit(obj) {
-    const result = {};
-    const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];
-    for (let i = 0; i < keysToCopy.length; i++) {
-        const key = keysToCopy[i];
-        result[key] = obj[key];
-    }
-    return result;
-}
-function deepCloneInOmit(obj) {
-    const result = {};
-    const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];
-    for (let i = 0; i < keysToCopy.length; i++) {
-        const key = keysToCopy[i];
-        result[key] = cloneDeepWith.cloneDeepWith(obj[key], valueToClone => {
-            if (isPlainObject.isPlainObject(valueToClone)) {
-                return undefined;
-            }
-            return valueToClone;
-        });
-    }
-    return result;
-}
-
-exports.omit = omit;
Index: de_modules/es-toolkit/dist/compat/object/omit.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omit.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-import { cloneDeepWith } from './cloneDeepWith.mjs';
-import { keysIn } from './keysIn.mjs';
-import { unset } from './unset.mjs';
-import { getSymbolsIn } from '../_internal/getSymbolsIn.mjs';
-import { isDeepKey } from '../_internal/isDeepKey.mjs';
-import { flatten } from '../array/flatten.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function omit(obj, ...keysArr) {
-    if (obj == null) {
-        return {};
-    }
-    keysArr = flatten(keysArr);
-    const result = cloneInOmit(obj, keysArr);
-    for (let i = 0; i < keysArr.length; i++) {
-        let keys = keysArr[i];
-        switch (typeof keys) {
-            case 'object': {
-                if (!Array.isArray(keys)) {
-                    keys = Array.from(keys);
-                }
-                for (let j = 0; j < keys.length; j++) {
-                    const key = keys[j];
-                    unset(result, key);
-                }
-                break;
-            }
-            case 'string':
-            case 'symbol':
-            case 'number': {
-                unset(result, keys);
-                break;
-            }
-        }
-    }
-    return result;
-}
-function cloneInOmit(obj, keys) {
-    const hasDeepKey = keys.some(key => Array.isArray(key) || isDeepKey(key));
-    if (hasDeepKey) {
-        return deepCloneInOmit(obj);
-    }
-    return shallowCloneInOmit(obj);
-}
-function shallowCloneInOmit(obj) {
-    const result = {};
-    const keysToCopy = [...keysIn(obj), ...getSymbolsIn(obj)];
-    for (let i = 0; i < keysToCopy.length; i++) {
-        const key = keysToCopy[i];
-        result[key] = obj[key];
-    }
-    return result;
-}
-function deepCloneInOmit(obj) {
-    const result = {};
-    const keysToCopy = [...keysIn(obj), ...getSymbolsIn(obj)];
-    for (let i = 0; i < keysToCopy.length; i++) {
-        const key = keysToCopy[i];
-        result[key] = cloneDeepWith(obj[key], valueToClone => {
-            if (isPlainObject(valueToClone)) {
-                return undefined;
-            }
-            return valueToClone;
-        });
-    }
-    return result;
-}
-
-export { omit };
Index: de_modules/es-toolkit/dist/compat/object/omitBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omitBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { ValueKeyIteratee } from '../_internal/ValueKeyIteratee.mjs';
-
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} predicate - The function invoked per property.
- * @returns {Record<string, T>} Returns the new object.
- *
- * @example
- * omitBy({ 'a': 1, 'b': '2', 'c': 3 }, isString);
- * // => { 'a': 1, 'c': 3 }
- */
-declare function omitBy<T>(object: Record<string, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<string, T>;
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} predicate - The function invoked per property.
- * @returns {Record<number, T>} Returns the new object.
- *
- * @example
- * omitBy({ 0: 1, 1: '2', 2: 3 }, isString);
- * // => { 0: 1, 2: 3 }
- */
-declare function omitBy<T>(object: Record<number, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<number, T>;
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {T | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T[keyof T]>} predicate - The function invoked per property.
- * @returns {Partial<T>} Returns the new object.
- *
- * @example
- * omitBy({ 'a': 1, 'b': '2', 'c': 3 }, isString);
- * // => { 'a': 1, 'c': 3 }
- */
-declare function omitBy<T extends object>(object: T | null | undefined, predicate: ValueKeyIteratee<T[keyof T]>): Partial<T>;
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/compat/object/omitBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omitBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { ValueKeyIteratee } from '../_internal/ValueKeyIteratee.js';
-
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} predicate - The function invoked per property.
- * @returns {Record<string, T>} Returns the new object.
- *
- * @example
- * omitBy({ 'a': 1, 'b': '2', 'c': 3 }, isString);
- * // => { 'a': 1, 'c': 3 }
- */
-declare function omitBy<T>(object: Record<string, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<string, T>;
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} predicate - The function invoked per property.
- * @returns {Record<number, T>} Returns the new object.
- *
- * @example
- * omitBy({ 0: 1, 1: '2', 2: 3 }, isString);
- * // => { 0: 1, 2: 3 }
- */
-declare function omitBy<T>(object: Record<number, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<number, T>;
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * @template T
- * @param {T | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T[keyof T]>} predicate - The function invoked per property.
- * @returns {Partial<T>} Returns the new object.
- *
- * @example
- * omitBy({ 'a': 1, 'b': '2', 'c': 3 }, isString);
- * // => { 'a': 1, 'c': 3 }
- */
-declare function omitBy<T extends object>(object: T | null | undefined, predicate: ValueKeyIteratee<T[keyof T]>): Partial<T>;
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/compat/object/omitBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omitBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-const range = require('../../math/range.js');
-const getSymbolsIn = require('../_internal/getSymbolsIn.js');
-const identity = require('../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isSymbol = require('../predicate/isSymbol.js');
-const iteratee = require('../util/iteratee.js');
-
-function omitBy(object, shouldOmit) {
-    if (object == null) {
-        return {};
-    }
-    const result = {};
-    const predicate = iteratee.iteratee(shouldOmit ?? identity.identity);
-    const keys = isArrayLike.isArrayLike(object)
-        ? range.range(0, object.length)
-        : [...keysIn.keysIn(object), ...getSymbolsIn.getSymbolsIn(object)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = (isSymbol.isSymbol(keys[i]) ? keys[i] : keys[i].toString());
-        const value = object[key];
-        if (!predicate(value, key, object)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-exports.omitBy = omitBy;
Index: de_modules/es-toolkit/dist/compat/object/omitBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/omitBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-import { range } from '../../math/range.mjs';
-import { getSymbolsIn } from '../_internal/getSymbolsIn.mjs';
-import { identity } from '../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isSymbol } from '../predicate/isSymbol.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function omitBy(object, shouldOmit) {
-    if (object == null) {
-        return {};
-    }
-    const result = {};
-    const predicate = iteratee(shouldOmit ?? identity);
-    const keys = isArrayLike(object)
-        ? range(0, object.length)
-        : [...keysIn(object), ...getSymbolsIn(object)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = (isSymbol(keys[i]) ? keys[i] : keys[i].toString());
-        const value = object[key];
-        if (!predicate(value, key, object)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/compat/object/pick.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pick.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Creates a new object composed of the picked object properties.
- *
- * @template T - The type of object.
- * @template U - The type of keys to pick.
- * @param {T} object - The object to pick keys from.
- * @param {...Array<Many<U>>} props - An array of keys to be picked from the object.
- * @returns {Pick<T, U>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T extends object, U extends keyof T>(object: T, ...props: Array<Many<U>>): Pick<T, U>;
-/**
- * Creates a new object composed of the picked object properties.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The object to pick keys from.
- * @param {...Array<Many<PropertyPath>>} props - An array of keys to be picked from the object.
- * @returns {Partial<T>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T>(object: T | null | undefined, ...props: Array<Many<PropertyPath>>): Partial<T>;
-
-export { pick };
Index: de_modules/es-toolkit/dist/compat/object/pick.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pick.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { Many } from '../_internal/Many.js';
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Creates a new object composed of the picked object properties.
- *
- * @template T - The type of object.
- * @template U - The type of keys to pick.
- * @param {T} object - The object to pick keys from.
- * @param {...Array<Many<U>>} props - An array of keys to be picked from the object.
- * @returns {Pick<T, U>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T extends object, U extends keyof T>(object: T, ...props: Array<Many<U>>): Pick<T, U>;
-/**
- * Creates a new object composed of the picked object properties.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The object to pick keys from.
- * @param {...Array<Many<PropertyPath>>} props - An array of keys to be picked from the object.
- * @returns {Partial<T>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T>(object: T | null | undefined, ...props: Array<Many<PropertyPath>>): Partial<T>;
-
-export { pick };
Index: de_modules/es-toolkit/dist/compat/object/pick.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pick.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-const has = require('./has.js');
-const set = require('./set.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isNil = require('../predicate/isNil.js');
-
-function pick(obj, ...keysArr) {
-    if (isNil.isNil(obj)) {
-        return {};
-    }
-    const result = {};
-    for (let i = 0; i < keysArr.length; i++) {
-        let keys = keysArr[i];
-        switch (typeof keys) {
-            case 'object': {
-                if (!Array.isArray(keys)) {
-                    if (isArrayLike.isArrayLike(keys)) {
-                        keys = Array.from(keys);
-                    }
-                    else {
-                        keys = [keys];
-                    }
-                }
-                break;
-            }
-            case 'string':
-            case 'symbol':
-            case 'number': {
-                keys = [keys];
-                break;
-            }
-        }
-        for (const key of keys) {
-            const value = get.get(obj, key);
-            if (value === undefined && !has.has(obj, key)) {
-                continue;
-            }
-            if (typeof key === 'string' && Object.hasOwn(obj, key)) {
-                result[key] = value;
-            }
-            else {
-                set.set(result, key, value);
-            }
-        }
-    }
-    return result;
-}
-
-exports.pick = pick;
Index: de_modules/es-toolkit/dist/compat/object/pick.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pick.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import { get } from './get.mjs';
-import { has } from './has.mjs';
-import { set } from './set.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isNil } from '../predicate/isNil.mjs';
-
-function pick(obj, ...keysArr) {
-    if (isNil(obj)) {
-        return {};
-    }
-    const result = {};
-    for (let i = 0; i < keysArr.length; i++) {
-        let keys = keysArr[i];
-        switch (typeof keys) {
-            case 'object': {
-                if (!Array.isArray(keys)) {
-                    if (isArrayLike(keys)) {
-                        keys = Array.from(keys);
-                    }
-                    else {
-                        keys = [keys];
-                    }
-                }
-                break;
-            }
-            case 'string':
-            case 'symbol':
-            case 'number': {
-                keys = [keys];
-                break;
-            }
-        }
-        for (const key of keys) {
-            const value = get(obj, key);
-            if (value === undefined && !has(obj, key)) {
-                continue;
-            }
-            if (typeof key === 'string' && Object.hasOwn(obj, key)) {
-                result[key] = value;
-            }
-            else {
-                set(result, key, value);
-            }
-        }
-    }
-    return result;
-}
-
-export { pick };
Index: de_modules/es-toolkit/dist/compat/object/pickBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pickBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import { ValueKeyIteratee } from '../_internal/ValueKeyIteratee.mjs';
-import { ValueKeyIterateeTypeGuard } from '../_internal/ValueKeyIterateeTypeGuard.mjs';
-
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @template S - The type of filtered values.
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIterateeTypeGuard<T, S>} predicate - The function invoked per property.
- * @returns {Record<string, S>} Returns the new filtered object.
- *
- * @example
- * const users = {
- *   'fred': { 'user': 'fred', 'age': 40 },
- *   'pebbles': { 'user': 'pebbles', 'age': 1 }
- * };
- * pickBy(users, ({ age }) => age < 40);
- * // => { 'pebbles': { 'user': 'pebbles', 'age': 1 } }
- */
-declare function pickBy<T, S extends T>(object: Record<string, T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Record<string, S>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @template S - The type of filtered values.
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIterateeTypeGuard<T, S>} predicate - The function invoked per property.
- * @returns {Record<number, S>} Returns the new filtered object.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * pickBy(array, (value) => value % 2 === 0);
- * // => { 1: 2, 3: 4 }
- */
-declare function pickBy<T, S extends T>(object: Record<number, T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Record<number, S>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} [predicate] - The function invoked per property.
- * @returns {Record<string, T>} Returns the new filtered object.
- *
- * @example
- * const object = { 'a': 1, 'b': '2', 'c': 3 };
- * pickBy(object, (value) => typeof value === 'string');
- * // => { 'b': '2' }
- */
-declare function pickBy<T>(object: Record<string, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<string, T>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} [predicate] - The function invoked per property.
- * @returns {Record<number, T>} Returns the new filtered object.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * pickBy(array, (value) => value > 2);
- * // => { 2: 3, 3: 4 }
- */
-declare function pickBy<T>(object: Record<number, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<number, T>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T[keyof T]>} [predicate] - The function invoked per property.
- * @returns {Partial<T>} Returns the new filtered object.
- *
- * @example
- * const object = { 'a': 1, 'b': '2', 'c': 3 };
- * pickBy(object, (value) => typeof value === 'string');
- * // => { 'b': '2' }
- */
-declare function pickBy<T extends object>(object: T | null | undefined, predicate?: ValueKeyIteratee<T[keyof T]>): Partial<T>;
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/compat/object/pickBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pickBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import { ValueKeyIteratee } from '../_internal/ValueKeyIteratee.js';
-import { ValueKeyIterateeTypeGuard } from '../_internal/ValueKeyIterateeTypeGuard.js';
-
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @template S - The type of filtered values.
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIterateeTypeGuard<T, S>} predicate - The function invoked per property.
- * @returns {Record<string, S>} Returns the new filtered object.
- *
- * @example
- * const users = {
- *   'fred': { 'user': 'fred', 'age': 40 },
- *   'pebbles': { 'user': 'pebbles', 'age': 1 }
- * };
- * pickBy(users, ({ age }) => age < 40);
- * // => { 'pebbles': { 'user': 'pebbles', 'age': 1 } }
- */
-declare function pickBy<T, S extends T>(object: Record<string, T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Record<string, S>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @template S - The type of filtered values.
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIterateeTypeGuard<T, S>} predicate - The function invoked per property.
- * @returns {Record<number, S>} Returns the new filtered object.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * pickBy(array, (value) => value % 2 === 0);
- * // => { 1: 2, 3: 4 }
- */
-declare function pickBy<T, S extends T>(object: Record<number, T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Record<number, S>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @param {Record<string, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} [predicate] - The function invoked per property.
- * @returns {Record<string, T>} Returns the new filtered object.
- *
- * @example
- * const object = { 'a': 1, 'b': '2', 'c': 3 };
- * pickBy(object, (value) => typeof value === 'string');
- * // => { 'b': '2' }
- */
-declare function pickBy<T>(object: Record<string, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<string, T>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object values.
- * @param {Record<number, T> | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T>} [predicate] - The function invoked per property.
- * @returns {Record<number, T>} Returns the new filtered object.
- *
- * @example
- * const array = [1, 2, 3, 4];
- * pickBy(array, (value) => value > 2);
- * // => { 2: 3, 3: 4 }
- */
-declare function pickBy<T>(object: Record<number, T> | null | undefined, predicate?: ValueKeyIteratee<T>): Record<number, T>;
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * @template T - The type of object.
- * @param {T | null | undefined} object - The source object.
- * @param {ValueKeyIteratee<T[keyof T]>} [predicate] - The function invoked per property.
- * @returns {Partial<T>} Returns the new filtered object.
- *
- * @example
- * const object = { 'a': 1, 'b': '2', 'c': 3 };
- * pickBy(object, (value) => typeof value === 'string');
- * // => { 'b': '2' }
- */
-declare function pickBy<T extends object>(object: T | null | undefined, predicate?: ValueKeyIteratee<T[keyof T]>): Partial<T>;
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/compat/object/pickBy.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pickBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-const range = require('../../math/range.js');
-const getSymbolsIn = require('../_internal/getSymbolsIn.js');
-const identity = require('../function/identity.js');
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isSymbol = require('../predicate/isSymbol.js');
-const iteratee = require('../util/iteratee.js');
-
-function pickBy(obj, shouldPick) {
-    if (obj == null) {
-        return {};
-    }
-    const predicate = iteratee.iteratee(shouldPick ?? identity.identity);
-    const result = {};
-    const keys = isArrayLike.isArrayLike(obj) ? range.range(0, obj.length) : [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = (isSymbol.isSymbol(keys[i]) ? keys[i] : keys[i].toString());
-        const value = obj[key];
-        if (predicate(value, key, obj)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-exports.pickBy = pickBy;
Index: de_modules/es-toolkit/dist/compat/object/pickBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/pickBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-import { range } from '../../math/range.mjs';
-import { getSymbolsIn } from '../_internal/getSymbolsIn.mjs';
-import { identity } from '../function/identity.mjs';
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isSymbol } from '../predicate/isSymbol.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function pickBy(obj, shouldPick) {
-    if (obj == null) {
-        return {};
-    }
-    const predicate = iteratee(shouldPick ?? identity);
-    const result = {};
-    const keys = isArrayLike(obj) ? range(0, obj.length) : [...keysIn(obj), ...getSymbolsIn(obj)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = (isSymbol(keys[i]) ? keys[i] : keys[i].toString());
-        const value = obj[key];
-        if (predicate(value, key, obj)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/compat/object/property.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/property.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-declare function property<T, R>(path: PropertyPath): (obj: T) => R;
-
-export { property };
Index: de_modules/es-toolkit/dist/compat/object/property.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/property.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-declare function property<T, R>(path: PropertyPath): (obj: T) => R;
-
-export { property };
Index: de_modules/es-toolkit/dist/compat/object/property.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/property.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-
-function property(path) {
-    return function (object) {
-        return get.get(object, path);
-    };
-}
-
-exports.property = property;
Index: de_modules/es-toolkit/dist/compat/object/property.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/property.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { get } from './get.mjs';
-
-function property(path) {
-    return function (object) {
-        return get(object, path);
-    };
-}
-
-export { property };
Index: de_modules/es-toolkit/dist/compat/object/propertyOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/propertyOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-declare function propertyOf<T extends {}>(object: T): (path: PropertyPath) => any;
-
-export { propertyOf };
Index: de_modules/es-toolkit/dist/compat/object/propertyOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/propertyOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-declare function propertyOf<T extends {}>(object: T): (path: PropertyPath) => any;
-
-export { propertyOf };
Index: de_modules/es-toolkit/dist/compat/object/propertyOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/propertyOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-
-function propertyOf(object) {
-    return function (path) {
-        return get.get(object, path);
-    };
-}
-
-exports.propertyOf = propertyOf;
Index: de_modules/es-toolkit/dist/compat/object/propertyOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/propertyOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { get } from './get.mjs';
-
-function propertyOf(object) {
-    return function (path) {
-        return get(object, path);
-    };
-}
-
-export { propertyOf };
Index: de_modules/es-toolkit/dist/compat/object/result.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/result.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Retrieves the value at a given path of an object.
- * If the resolved value is a function, it is invoked with the object as its `this` context.
- * If the value is `undefined`, the `defaultValue` is returned.
- *
- * @template T - The type of object.
- * @template R - The type of the value to return.
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {R | ((...args: any[]) => R)} [defaultValue] - The value returned if the resolved value is `undefined`.
- * @returns {R} - Returns the resolved value.
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- * result(obj, 'a.b.c');
- * // => 3
- *
- * @example
- * const obj = { a: () => 5 };
- * result(obj, 'a');
- * // => 5 (calls the function `a` and returns its result)
- *
- * @example
- * const obj = { a: { b: null } };
- * result(obj, 'a.b.c', 'default');
- * // => 'default'
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- * result(obj, 'a.b.d', () => 'default');
- * // => 'default'
- */
-declare function result<R>(object: any, path: PropertyPath, defaultValue?: R | ((...args: any[]) => R)): R;
-
-export { result };
Index: de_modules/es-toolkit/dist/compat/object/result.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/result.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Retrieves the value at a given path of an object.
- * If the resolved value is a function, it is invoked with the object as its `this` context.
- * If the value is `undefined`, the `defaultValue` is returned.
- *
- * @template T - The type of object.
- * @template R - The type of the value to return.
- * @param {T} object - The object to query.
- * @param {PropertyPath} path - The path of the property to get.
- * @param {R | ((...args: any[]) => R)} [defaultValue] - The value returned if the resolved value is `undefined`.
- * @returns {R} - Returns the resolved value.
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- * result(obj, 'a.b.c');
- * // => 3
- *
- * @example
- * const obj = { a: () => 5 };
- * result(obj, 'a');
- * // => 5 (calls the function `a` and returns its result)
- *
- * @example
- * const obj = { a: { b: null } };
- * result(obj, 'a.b.c', 'default');
- * // => 'default'
- *
- * @example
- * const obj = { a: { b: { c: 3 } } };
- * result(obj, 'a.b.d', () => 'default');
- * // => 'default'
- */
-declare function result<R>(object: any, path: PropertyPath, defaultValue?: R | ((...args: any[]) => R)): R;
-
-export { result };
Index: de_modules/es-toolkit/dist/compat/object/result.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/result.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isKey = require('../_internal/isKey.js');
-const toKey = require('../_internal/toKey.js');
-const toPath = require('../util/toPath.js');
-const toString = require('../util/toString.js');
-
-function result(object, path, defaultValue) {
-    if (isKey.isKey(path, object)) {
-        path = [path];
-    }
-    else if (!Array.isArray(path)) {
-        path = toPath.toPath(toString.toString(path));
-    }
-    const pathLength = Math.max(path.length, 1);
-    for (let index = 0; index < pathLength; index++) {
-        const value = object == null ? undefined : object[toKey.toKey(path[index])];
-        if (value === undefined) {
-            return typeof defaultValue === 'function' ? defaultValue.call(object) : defaultValue;
-        }
-        object = typeof value === 'function' ? value.call(object) : value;
-    }
-    return object;
-}
-
-exports.result = result;
Index: de_modules/es-toolkit/dist/compat/object/result.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/result.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { isKey } from '../_internal/isKey.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { toPath } from '../util/toPath.mjs';
-import { toString } from '../util/toString.mjs';
-
-function result(object, path, defaultValue) {
-    if (isKey(path, object)) {
-        path = [path];
-    }
-    else if (!Array.isArray(path)) {
-        path = toPath(toString(path));
-    }
-    const pathLength = Math.max(path.length, 1);
-    for (let index = 0; index < pathLength; index++) {
-        const value = object == null ? undefined : object[toKey(path[index])];
-        if (value === undefined) {
-            return typeof defaultValue === 'function' ? defaultValue.call(object) : defaultValue;
-        }
-        object = typeof value === 'function' ? value.call(object) : value;
-    }
-    return object;
-}
-
-export { result };
Index: de_modules/es-toolkit/dist/compat/object/set.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/set.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @returns {T} - The modified object.
- *
- * @example
- * // Set a value in a nested object
- * const obj = { a: { b: { c: 3 } } };
- * set(obj, 'a.b.c', 4);
- * console.log(obj.a.b.c); // 4
- *
- * @example
- * // Set a value in an array
- * const arr = [1, 2, 3];
- * set(arr, 1, 4);
- * console.log(arr[1]); // 4
- *
- * @example
- * // Create non-existent path and set value
- * const obj = {};
- * set(obj, 'a.b.c', 4);
- * console.log(obj); // { a: { b: { c: 4 } } }
- */
-declare function set<T extends object>(object: T, path: PropertyPath, value: any): T;
-/**
- * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.
- *
- * @template R - The return type.
- * @param {object} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @returns {R} - The modified object.
- *
- * @example
- * // Set a value in a nested object
- * const obj = { a: { b: { c: 3 } } };
- * set(obj, 'a.b.c', 4);
- * console.log(obj.a.b.c); // 4
- *
- * @example
- * // Set a value in an array
- * const arr = [1, 2, 3];
- * set(arr, 1, 4);
- * console.log(arr[1]); // 4
- *
- * @example
- * // Create non-existent path and set value
- * const obj = {};
- * set(obj, 'a.b.c', 4);
- * console.log(obj); // { a: { b: { c: 4 } } }
- */
-declare function set<R>(object: object, path: PropertyPath, value: any): R;
-
-export { set };
Index: de_modules/es-toolkit/dist/compat/object/set.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/set.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @returns {T} - The modified object.
- *
- * @example
- * // Set a value in a nested object
- * const obj = { a: { b: { c: 3 } } };
- * set(obj, 'a.b.c', 4);
- * console.log(obj.a.b.c); // 4
- *
- * @example
- * // Set a value in an array
- * const arr = [1, 2, 3];
- * set(arr, 1, 4);
- * console.log(arr[1]); // 4
- *
- * @example
- * // Create non-existent path and set value
- * const obj = {};
- * set(obj, 'a.b.c', 4);
- * console.log(obj); // { a: { b: { c: 4 } } }
- */
-declare function set<T extends object>(object: T, path: PropertyPath, value: any): T;
-/**
- * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.
- *
- * @template R - The return type.
- * @param {object} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @returns {R} - The modified object.
- *
- * @example
- * // Set a value in a nested object
- * const obj = { a: { b: { c: 3 } } };
- * set(obj, 'a.b.c', 4);
- * console.log(obj.a.b.c); // 4
- *
- * @example
- * // Set a value in an array
- * const arr = [1, 2, 3];
- * set(arr, 1, 4);
- * console.log(arr[1]); // 4
- *
- * @example
- * // Create non-existent path and set value
- * const obj = {};
- * set(obj, 'a.b.c', 4);
- * console.log(obj); // { a: { b: { c: 4 } } }
- */
-declare function set<R>(object: object, path: PropertyPath, value: any): R;
-
-export { set };
Index: de_modules/es-toolkit/dist/compat/object/set.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const updateWith = require('./updateWith.js');
-
-function set(obj, path, value) {
-    return updateWith.updateWith(obj, path, () => value, () => undefined);
-}
-
-exports.set = set;
Index: de_modules/es-toolkit/dist/compat/object/set.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/set.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { updateWith } from './updateWith.mjs';
-
-function set(obj, path, value) {
-    return updateWith(obj, path, () => value, () => undefined);
-}
-
-export { set };
Index: de_modules/es-toolkit/dist/compat/object/setWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/setWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Sets the value at the specified path of the given object using a customizer function.
- * If any part of the path does not exist, it will be created based on the customizer's result.
- *
- * The customizer is invoked to produce the objects of the path. If the customizer returns
- * a value, that value is used for the current path segment. If the customizer returns
- * `undefined`, the method will create an appropriate object based on the path - an array
- * if the next path segment is a valid array index, or an object otherwise.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @param {(nsValue: any, key: string, nsObject: T) => any} [customizer] - The function to customize assigned values.
- * @returns {T} - The modified object.
- *
- * @example
- * // Set a value with a customizer that creates arrays for numeric path segments
- * const object = {};
- * setWith(object, '[0][1]', 'a', (value) => Array.isArray(value) ? value : []);
- * // => { '0': ['a'] }
- */
-declare function setWith<T extends object>(object: T, path: PropertyPath, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): T;
-/**
- * Sets the value at the specified path of the given object using a customizer function.
- * If any part of the path does not exist, it will be created based on the customizer's result.
- *
- * The customizer is invoked to produce the objects of the path. If the customizer returns
- * a value, that value is used for the current path segment. If the customizer returns
- * `undefined`, the method will create an appropriate object based on the path - an array
- * if the next path segment is a valid array index, or an object otherwise.
- *
- * @template T - The type of the object.
- * @template R - The type of the return value.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @param {(nsValue: any, key: string, nsObject: T) => any} [customizer] - The function to customize assigned values.
- * @returns {R} - The modified object.
- *
- * @example
- * // Set a value with a customizer that creates arrays for numeric path segments
- * const object = {};
- * setWith(object, '[0][1]', 'a', (value) => Array.isArray(value) ? value : []);
- * // => { '0': ['a'] }
- */
-declare function setWith<T extends object, R>(object: T, path: PropertyPath, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): R;
-
-export { setWith };
Index: de_modules/es-toolkit/dist/compat/object/setWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/setWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Sets the value at the specified path of the given object using a customizer function.
- * If any part of the path does not exist, it will be created based on the customizer's result.
- *
- * The customizer is invoked to produce the objects of the path. If the customizer returns
- * a value, that value is used for the current path segment. If the customizer returns
- * `undefined`, the method will create an appropriate object based on the path - an array
- * if the next path segment is a valid array index, or an object otherwise.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @param {(nsValue: any, key: string, nsObject: T) => any} [customizer] - The function to customize assigned values.
- * @returns {T} - The modified object.
- *
- * @example
- * // Set a value with a customizer that creates arrays for numeric path segments
- * const object = {};
- * setWith(object, '[0][1]', 'a', (value) => Array.isArray(value) ? value : []);
- * // => { '0': ['a'] }
- */
-declare function setWith<T extends object>(object: T, path: PropertyPath, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): T;
-/**
- * Sets the value at the specified path of the given object using a customizer function.
- * If any part of the path does not exist, it will be created based on the customizer's result.
- *
- * The customizer is invoked to produce the objects of the path. If the customizer returns
- * a value, that value is used for the current path segment. If the customizer returns
- * `undefined`, the method will create an appropriate object based on the path - an array
- * if the next path segment is a valid array index, or an object otherwise.
- *
- * @template T - The type of the object.
- * @template R - The type of the return value.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to set.
- * @param {any} value - The value to set.
- * @param {(nsValue: any, key: string, nsObject: T) => any} [customizer] - The function to customize assigned values.
- * @returns {R} - The modified object.
- *
- * @example
- * // Set a value with a customizer that creates arrays for numeric path segments
- * const object = {};
- * setWith(object, '[0][1]', 'a', (value) => Array.isArray(value) ? value : []);
- * // => { '0': ['a'] }
- */
-declare function setWith<T extends object, R>(object: T, path: PropertyPath, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): R;
-
-export { setWith };
Index: de_modules/es-toolkit/dist/compat/object/setWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/setWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const updateWith = require('./updateWith.js');
-
-function setWith(obj, path, value, customizer) {
-    let customizerFn;
-    if (typeof customizer === 'function') {
-        customizerFn = customizer;
-    }
-    else {
-        customizerFn = () => undefined;
-    }
-    return updateWith.updateWith(obj, path, () => value, customizerFn);
-}
-
-exports.setWith = setWith;
Index: de_modules/es-toolkit/dist/compat/object/setWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/setWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { updateWith } from './updateWith.mjs';
-
-function setWith(obj, path, value, customizer) {
-    let customizerFn;
-    if (typeof customizer === 'function') {
-        customizerFn = customizer;
-    }
-    else {
-        customizerFn = () => undefined;
-    }
-    return updateWith(obj, path, () => value, customizerFn);
-}
-
-export { setWith };
Index: de_modules/es-toolkit/dist/compat/object/toDefaulted.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toDefaulted.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @param {T} object - The target object.
- * @returns {T} The cloned object.
- */
-declare function toDefaulted<T extends object>(object: T): T;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S} source - The object that specifies the default values to apply.
- * @returns {NonNullable<T & S>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S extends object>(object: T, source: S): NonNullable<T & S>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object>(object: T, source1: S1, source2: S2): NonNullable<T & S1 & S2>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2 & S3>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object, S3 extends object>(object: T, source1: S1, source2: S2, source3: S3): NonNullable<T & S1 & S2 & S3>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @template S4 - The type of the fourth object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @param {S4} source4 - The fourth object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2 & S3 & S4>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object, S3 extends object, S4 extends object>(object: T, source1: S1, source2: S2, source3: S3, source4: S4): NonNullable<T & S1 & S2 & S3 & S4>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the objects that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S[]} sources - The objects that specifies the default values to apply.
- * @returns {object} A new object that combines the target and default values, ensuring no properties are left undefined.
- *
- * @example
- * toDefaulted({ a: 1 }, { a: 2, b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * toDefaulted({ a: 1, b: 2 }, { b: 3 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * toDefaulted({ a: null }, { a: 1 }); // { a: null }
- * toDefaulted({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function toDefaulted<T extends object, S extends object>(object: T, ...sources: S[]): object;
-
-export { toDefaulted };
Index: de_modules/es-toolkit/dist/compat/object/toDefaulted.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toDefaulted.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @param {T} object - The target object.
- * @returns {T} The cloned object.
- */
-declare function toDefaulted<T extends object>(object: T): T;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S} source - The object that specifies the default values to apply.
- * @returns {NonNullable<T & S>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S extends object>(object: T, source: S): NonNullable<T & S>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object>(object: T, source1: S1, source2: S2): NonNullable<T & S1 & S2>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2 & S3>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object, S3 extends object>(object: T, source1: S1, source2: S2, source3: S3): NonNullable<T & S1 & S2 & S3>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S1 - The type of the first object that provides default values.
- * @template S2 - The type of the second object that provides default values.
- * @template S3 - The type of the third object that provides default values.
- * @template S4 - The type of the fourth object that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S1} source1 - The first object that specifies the default values to apply.
- * @param {S2} source2 - The second object that specifies the default values to apply.
- * @param {S3} source3 - The third object that specifies the default values to apply.
- * @param {S4} source4 - The fourth object that specifies the default values to apply.
- * @returns {NonNullable<T & S1 & S2 & S3 & S4>} A new object that combines the target and default values, ensuring no properties are left undefined.
- */
-declare function toDefaulted<T extends object, S1 extends object, S2 extends object, S3 extends object, S4 extends object>(object: T, source1: S1, source2: S2, source3: S3, source4: S4): NonNullable<T & S1 & S2 & S3 & S4>;
-/**
- * Creates a new object based on the provided `object`, applying default values from the `sources` to ensure that no properties are left `undefined`.
- * It assigns default values to properties that are either `undefined` or come from `Object.prototype`.
- *
- * You can provide multiple source objects to set these default values,
- * and they will be applied in the order they are given, from left to right.
- * Once a property has been set, any later values for that property will be ignored.
- *
- * Note: This function creates a new object. If you want to modify the `object`, use the `defaults` function instead.
- *
- * @template T - The type of the object being processed.
- * @template S - The type of the objects that provides default values.
- * @param {T} object - The target object that will receive default values.
- * @param {S[]} sources - The objects that specifies the default values to apply.
- * @returns {object} A new object that combines the target and default values, ensuring no properties are left undefined.
- *
- * @example
- * toDefaulted({ a: 1 }, { a: 2, b: 2 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * toDefaulted({ a: 1, b: 2 }, { b: 3 }, { c: 3 }); // { a: 1, b: 2, c: 3 }
- * toDefaulted({ a: null }, { a: 1 }); // { a: null }
- * toDefaulted({ a: undefined }, { a: 1 }); // { a: 1 }
- */
-declare function toDefaulted<T extends object, S extends object>(object: T, ...sources: S[]): object;
-
-export { toDefaulted };
Index: de_modules/es-toolkit/dist/compat/object/toDefaulted.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toDefaulted.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeep = require('./cloneDeep.js');
-const defaults = require('./defaults.js');
-
-function toDefaulted(object, ...sources) {
-    const cloned = cloneDeep.cloneDeep(object);
-    return defaults.defaults(cloned, ...sources);
-}
-
-exports.toDefaulted = toDefaulted;
Index: de_modules/es-toolkit/dist/compat/object/toDefaulted.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toDefaulted.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { cloneDeep } from './cloneDeep.mjs';
-import { defaults } from './defaults.mjs';
-
-function toDefaulted(object, ...sources) {
-    const cloned = cloneDeep(object);
-    return defaults(cloned, ...sources);
-}
-
-export { toDefaulted };
Index: de_modules/es-toolkit/dist/compat/object/toPairs.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairs.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of key-value pairs from an object.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T>} object - The object to query.
- * @returns {Array<[string, T]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairs(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairs<T>(object?: Record<string, T> | Record<number, T>): Array<[string, T]>;
-/**
- * Creates an array of key-value pairs from an object.
- *
- * @param {object} object - The object to query.
- * @returns {Array<[string, any]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairs(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairs(object?: object): Array<[string, any]>;
-
-export { toPairs };
Index: de_modules/es-toolkit/dist/compat/object/toPairs.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairs.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of key-value pairs from an object.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T>} object - The object to query.
- * @returns {Array<[string, T]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairs(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairs<T>(object?: Record<string, T> | Record<number, T>): Array<[string, T]>;
-/**
- * Creates an array of key-value pairs from an object.
- *
- * @param {object} object - The object to query.
- * @returns {Array<[string, any]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairs(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairs(object?: object): Array<[string, any]>;
-
-export { toPairs };
Index: de_modules/es-toolkit/dist/compat/object/toPairs.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keys = require('./keys.js');
-const mapToEntries = require('../_internal/mapToEntries.js');
-const setToEntries = require('../_internal/setToEntries.js');
-
-function toPairs(object) {
-    if (object == null) {
-        return [];
-    }
-    if (object instanceof Set) {
-        return setToEntries.setToEntries(object);
-    }
-    if (object instanceof Map) {
-        return mapToEntries.mapToEntries(object);
-    }
-    const keys$1 = keys.keys(object);
-    const result = new Array(keys$1.length);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        const value = object[key];
-        result[i] = [key, value];
-    }
-    return result;
-}
-
-exports.toPairs = toPairs;
Index: de_modules/es-toolkit/dist/compat/object/toPairs.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairs.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { keys } from './keys.mjs';
-import { mapToEntries } from '../_internal/mapToEntries.mjs';
-import { setToEntries } from '../_internal/setToEntries.mjs';
-
-function toPairs(object) {
-    if (object == null) {
-        return [];
-    }
-    if (object instanceof Set) {
-        return setToEntries(object);
-    }
-    if (object instanceof Map) {
-        return mapToEntries(object);
-    }
-    const keys$1 = keys(object);
-    const result = new Array(keys$1.length);
-    for (let i = 0; i < keys$1.length; i++) {
-        const key = keys$1[i];
-        const value = object[key];
-        result[i] = [key, value];
-    }
-    return result;
-}
-
-export { toPairs };
Index: de_modules/es-toolkit/dist/compat/object/toPairsIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairsIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of key-value pairs from an object, including inherited properties.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T>} object - The object to query.
- * @returns {Array<[string, T]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairsIn(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairsIn<T>(object?: Record<string, T> | Record<number, T>): Array<[string, T]>;
-/**
- * Creates an array of key-value pairs from an object, including inherited properties.
- *
- * @param {object} object - The object to query.
- * @returns {Array<[string, any]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairsIn(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairsIn(object?: object): Array<[string, any]>;
-
-export { toPairsIn };
Index: de_modules/es-toolkit/dist/compat/object/toPairsIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairsIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Creates an array of key-value pairs from an object, including inherited properties.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T>} object - The object to query.
- * @returns {Array<[string, T]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairsIn(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairsIn<T>(object?: Record<string, T> | Record<number, T>): Array<[string, T]>;
-/**
- * Creates an array of key-value pairs from an object, including inherited properties.
- *
- * @param {object} object - The object to query.
- * @returns {Array<[string, any]>} Returns the array of key-value pairs.
- *
- * @example
- * const object = { a: 1, b: 2 };
- * toPairsIn(object); // [['a', 1], ['b', 2]]
- */
-declare function toPairsIn(object?: object): Array<[string, any]>;
-
-export { toPairsIn };
Index: de_modules/es-toolkit/dist/compat/object/toPairsIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairsIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-const mapToEntries = require('../_internal/mapToEntries.js');
-const setToEntries = require('../_internal/setToEntries.js');
-
-function toPairsIn(object) {
-    if (object == null) {
-        return [];
-    }
-    if (object instanceof Set) {
-        return setToEntries.setToEntries(object);
-    }
-    if (object instanceof Map) {
-        return mapToEntries.mapToEntries(object);
-    }
-    const keys = keysIn.keysIn(object);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[i] = [key, value];
-    }
-    return result;
-}
-
-exports.toPairsIn = toPairsIn;
Index: de_modules/es-toolkit/dist/compat/object/toPairsIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/toPairsIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-import { mapToEntries } from '../_internal/mapToEntries.mjs';
-import { setToEntries } from '../_internal/setToEntries.mjs';
-
-function toPairsIn(object) {
-    if (object == null) {
-        return [];
-    }
-    if (object instanceof Set) {
-        return setToEntries(object);
-    }
-    if (object instanceof Map) {
-        return mapToEntries(object);
-    }
-    const keys = keysIn(object);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[i] = [key, value];
-    }
-    return result;
-}
-
-export { toPairsIn };
Index: de_modules/es-toolkit/dist/compat/object/transform.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/transform.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {readonly T[]} object - The array to iterate over.
- * @param {(acc: R, curr: T, index: number, arr: T[]) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const array = [2, 3, 4];
- * transform(array, (acc, value) => { acc.push(value * 2); }, []);
- * // => [4, 6, 8]
- */
-declare function transform<T, R>(object: readonly T[], iteratee: (acc: R, curr: T, index: number, arr: T[]) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {Record<string, T>} object - The object to iterate over.
- * @param {(acc: R, curr: T, key: string, dict: Record<string, T>) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const obj = { 'a': 1, 'b': 2, 'c': 1 };
- * transform(obj, (result, value, key) => { (result[value] || (result[value] = [])).push(key) }, {});
- * // => { '1': ['a', 'c'], '2': ['b'] }
- */
-declare function transform<T, R>(object: Record<string, T>, iteratee: (acc: R, curr: T, key: string, dict: Record<string, T>) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {T} object - The object to iterate over.
- * @param {(acc: R, curr: T[keyof T], key: keyof T, dict: Record<keyof T, T[keyof T]>) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const obj = { x: 1, y: 2, z: 3 };
- * transform(obj, (acc, value, key) => { acc[key] = value * 2; }, {});
- * // => { x: 2, y: 4, z: 6 }
- */
-declare function transform<T extends object, R>(object: T, iteratee: (acc: R, curr: T[keyof T], key: keyof T, dict: Record<keyof T, T[keyof T]>) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @param {any[]} object - The array to iterate over.
- * @returns {any[]} Returns the accumulated value.
- *
- * @example
- * const array = [1, 2, 3];
- * transform(array);
- * // => [1, 2, 3]
- */
-declare function transform(object: any[]): any[];
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @param {object} object - The object to iterate over.
- * @returns {Record<string, any>} Returns the accumulated value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * transform(obj);
- * // => { a: 1, b: 2 }
- */
-declare function transform(object: object): Record<string, any>;
-
-export { transform };
Index: de_modules/es-toolkit/dist/compat/object/transform.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/transform.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {readonly T[]} object - The array to iterate over.
- * @param {(acc: R, curr: T, index: number, arr: T[]) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const array = [2, 3, 4];
- * transform(array, (acc, value) => { acc.push(value * 2); }, []);
- * // => [4, 6, 8]
- */
-declare function transform<T, R>(object: readonly T[], iteratee: (acc: R, curr: T, index: number, arr: T[]) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {Record<string, T>} object - The object to iterate over.
- * @param {(acc: R, curr: T, key: string, dict: Record<string, T>) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const obj = { 'a': 1, 'b': 2, 'c': 1 };
- * transform(obj, (result, value, key) => { (result[value] || (result[value] = [])).push(key) }, {});
- * // => { '1': ['a', 'c'], '2': ['b'] }
- */
-declare function transform<T, R>(object: Record<string, T>, iteratee: (acc: R, curr: T, key: string, dict: Record<string, T>) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @template T - The type of object.
- * @template R - The type of accumulator.
- * @param {T} object - The object to iterate over.
- * @param {(acc: R, curr: T[keyof T], key: keyof T, dict: Record<keyof T, T[keyof T]>) => void} iteratee - The function invoked per iteration.
- * @param {R} [accumulator] - The initial value.
- * @returns {R} Returns the accumulated value.
- *
- * @example
- * const obj = { x: 1, y: 2, z: 3 };
- * transform(obj, (acc, value, key) => { acc[key] = value * 2; }, {});
- * // => { x: 2, y: 4, z: 6 }
- */
-declare function transform<T extends object, R>(object: T, iteratee: (acc: R, curr: T[keyof T], key: keyof T, dict: Record<keyof T, T[keyof T]>) => void, accumulator?: R): R;
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @param {any[]} object - The array to iterate over.
- * @returns {any[]} Returns the accumulated value.
- *
- * @example
- * const array = [1, 2, 3];
- * transform(array);
- * // => [1, 2, 3]
- */
-declare function transform(object: any[]): any[];
-/**
- * Traverses object values and creates a new object by accumulating them in the desired form.
- *
- * @param {object} object - The object to iterate over.
- * @returns {Record<string, any>} Returns the accumulated value.
- *
- * @example
- * const obj = { a: 1, b: 2 };
- * transform(obj);
- * // => { a: 1, b: 2 }
- */
-declare function transform(object: object): Record<string, any>;
-
-export { transform };
Index: de_modules/es-toolkit/dist/compat/object/transform.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/transform.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const isFunction = require('../../predicate/isFunction.js');
-const forEach = require('../array/forEach.js');
-const isBuffer = require('../predicate/isBuffer.js');
-const isObject = require('../predicate/isObject.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-const iteratee = require('../util/iteratee.js');
-
-function transform(object, iteratee$1 = identity.identity, accumulator) {
-    const isArrayOrBufferOrTypedArray = Array.isArray(object) || isBuffer.isBuffer(object) || isTypedArray.isTypedArray(object);
-    iteratee$1 = iteratee.iteratee(iteratee$1);
-    if (accumulator == null) {
-        if (isArrayOrBufferOrTypedArray) {
-            accumulator = [];
-        }
-        else if (isObject.isObject(object) && isFunction.isFunction(object.constructor)) {
-            accumulator = Object.create(Object.getPrototypeOf(object));
-        }
-        else {
-            accumulator = {};
-        }
-    }
-    if (object == null) {
-        return accumulator;
-    }
-    forEach.forEach(object, (value, key, object) => iteratee$1(accumulator, value, key, object));
-    return accumulator;
-}
-
-exports.transform = transform;
Index: de_modules/es-toolkit/dist/compat/object/transform.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/transform.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { isFunction } from '../../predicate/isFunction.mjs';
-import { forEach } from '../array/forEach.mjs';
-import { isBuffer } from '../predicate/isBuffer.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-import { iteratee } from '../util/iteratee.mjs';
-
-function transform(object, iteratee$1 = identity, accumulator) {
-    const isArrayOrBufferOrTypedArray = Array.isArray(object) || isBuffer(object) || isTypedArray(object);
-    iteratee$1 = iteratee(iteratee$1);
-    if (accumulator == null) {
-        if (isArrayOrBufferOrTypedArray) {
-            accumulator = [];
-        }
-        else if (isObject(object) && isFunction(object.constructor)) {
-            accumulator = Object.create(Object.getPrototypeOf(object));
-        }
-        else {
-            accumulator = {};
-        }
-    }
-    if (object == null) {
-        return accumulator;
-    }
-    forEach(object, (value, key, object) => iteratee$1(accumulator, value, key, object));
-    return accumulator;
-}
-
-export { transform };
Index: de_modules/es-toolkit/dist/compat/object/unset.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/unset.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes the property at the given path of the object.
- *
- * @param {unknown} obj - The object to modify.
- * @param {PropertyKey | readonly PropertyKey[]} path - The path of the property to unset.
- * @returns {boolean} - Returns true if the property is deleted, else false.
- *
- * @example
- * const obj = { a: { b: { c: 42 } } };
- * unset(obj, 'a.b.c'); // true
- * console.log(obj); // { a: { b: {} } }
- *
- * @example
- * const obj = { a: { b: { c: 42 } } };
- * unset(obj, ['a', 'b', 'c']); // true
- * console.log(obj); // { a: { b: {} } }
- */
-declare function unset(obj: any, path: PropertyKey | readonly PropertyKey[]): boolean;
-
-export { unset };
Index: de_modules/es-toolkit/dist/compat/object/unset.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/unset.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Removes the property at the given path of the object.
- *
- * @param {unknown} obj - The object to modify.
- * @param {PropertyKey | readonly PropertyKey[]} path - The path of the property to unset.
- * @returns {boolean} - Returns true if the property is deleted, else false.
- *
- * @example
- * const obj = { a: { b: { c: 42 } } };
- * unset(obj, 'a.b.c'); // true
- * console.log(obj); // { a: { b: {} } }
- *
- * @example
- * const obj = { a: { b: { c: 42 } } };
- * unset(obj, ['a', 'b', 'c']); // true
- * console.log(obj); // { a: { b: {} } }
- */
-declare function unset(obj: any, path: PropertyKey | readonly PropertyKey[]): boolean;
-
-export { unset };
Index: de_modules/es-toolkit/dist/compat/object/unset.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/unset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-const isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');
-const isDeepKey = require('../_internal/isDeepKey.js');
-const toKey = require('../_internal/toKey.js');
-const toPath = require('../util/toPath.js');
-
-function unset(obj, path) {
-    if (obj == null) {
-        return true;
-    }
-    switch (typeof path) {
-        case 'symbol':
-        case 'number':
-        case 'object': {
-            if (Array.isArray(path)) {
-                return unsetWithPath(obj, path);
-            }
-            if (typeof path === 'number') {
-                path = toKey.toKey(path);
-            }
-            else if (typeof path === 'object') {
-                if (Object.is(path?.valueOf(), -0)) {
-                    path = '-0';
-                }
-                else {
-                    path = String(path);
-                }
-            }
-            if (isUnsafeProperty.isUnsafeProperty(path)) {
-                return false;
-            }
-            if (obj?.[path] === undefined) {
-                return true;
-            }
-            try {
-                delete obj[path];
-                return true;
-            }
-            catch {
-                return false;
-            }
-        }
-        case 'string': {
-            if (obj?.[path] === undefined && isDeepKey.isDeepKey(path)) {
-                return unsetWithPath(obj, toPath.toPath(path));
-            }
-            if (isUnsafeProperty.isUnsafeProperty(path)) {
-                return false;
-            }
-            try {
-                delete obj[path];
-                return true;
-            }
-            catch {
-                return false;
-            }
-        }
-    }
-}
-function unsetWithPath(obj, path) {
-    const parent = path.length === 1 ? obj : get.get(obj, path.slice(0, -1));
-    const lastKey = path[path.length - 1];
-    if (parent?.[lastKey] === undefined) {
-        return true;
-    }
-    if (isUnsafeProperty.isUnsafeProperty(lastKey)) {
-        return false;
-    }
-    try {
-        delete parent[lastKey];
-        return true;
-    }
-    catch {
-        return false;
-    }
-}
-
-exports.unset = unset;
Index: de_modules/es-toolkit/dist/compat/object/unset.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/unset.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import { get } from './get.mjs';
-import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';
-import { isDeepKey } from '../_internal/isDeepKey.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function unset(obj, path) {
-    if (obj == null) {
-        return true;
-    }
-    switch (typeof path) {
-        case 'symbol':
-        case 'number':
-        case 'object': {
-            if (Array.isArray(path)) {
-                return unsetWithPath(obj, path);
-            }
-            if (typeof path === 'number') {
-                path = toKey(path);
-            }
-            else if (typeof path === 'object') {
-                if (Object.is(path?.valueOf(), -0)) {
-                    path = '-0';
-                }
-                else {
-                    path = String(path);
-                }
-            }
-            if (isUnsafeProperty(path)) {
-                return false;
-            }
-            if (obj?.[path] === undefined) {
-                return true;
-            }
-            try {
-                delete obj[path];
-                return true;
-            }
-            catch {
-                return false;
-            }
-        }
-        case 'string': {
-            if (obj?.[path] === undefined && isDeepKey(path)) {
-                return unsetWithPath(obj, toPath(path));
-            }
-            if (isUnsafeProperty(path)) {
-                return false;
-            }
-            try {
-                delete obj[path];
-                return true;
-            }
-            catch {
-                return false;
-            }
-        }
-    }
-}
-function unsetWithPath(obj, path) {
-    const parent = path.length === 1 ? obj : get(obj, path.slice(0, -1));
-    const lastKey = path[path.length - 1];
-    if (parent?.[lastKey] === undefined) {
-        return true;
-    }
-    if (isUnsafeProperty(lastKey)) {
-        return false;
-    }
-    try {
-        delete parent[lastKey];
-        return true;
-    }
-    catch {
-        return false;
-    }
-}
-
-export { unset };
Index: de_modules/es-toolkit/dist/compat/object/update.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/update.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Updates the value at the specified path of the given object using an updater function.
- * If any part of the path does not exist, it will be created.
- *
- * @param {object} obj - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(value: any) => any} updater - The function to produce the updated value.
- * @returns {any} - The modified object.
- */
-declare function update(obj: object, path: PropertyPath, updater: (value: any) => any): any;
-
-export { update };
Index: de_modules/es-toolkit/dist/compat/object/update.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/update.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Updates the value at the specified path of the given object using an updater function.
- * If any part of the path does not exist, it will be created.
- *
- * @param {object} obj - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(value: any) => any} updater - The function to produce the updated value.
- * @returns {any} - The modified object.
- */
-declare function update(obj: object, path: PropertyPath, updater: (value: any) => any): any;
-
-export { update };
Index: de_modules/es-toolkit/dist/compat/object/update.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/update.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const updateWith = require('./updateWith.js');
-
-function update(obj, path, updater) {
-    return updateWith.updateWith(obj, path, updater, () => undefined);
-}
-
-exports.update = update;
Index: de_modules/es-toolkit/dist/compat/object/update.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/update.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { updateWith } from './updateWith.mjs';
-
-function update(obj, path, updater) {
-    return updateWith(obj, path, updater, () => undefined);
-}
-
-export { update };
Index: de_modules/es-toolkit/dist/compat/object/updateWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/updateWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Updates the value at the specified path of the given object using an updater function and a customizer.
- * If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(oldValue: any) => any} updater - The function to produce the updated value.
- * @param {(value: any, key: string, object: T) => any} customizer - The function to customize the update process.
- * @returns {T} - The modified object.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * updateWith(object, 'a[0].b.c', (n) => n * n);
- * // => { 'a': [{ 'b': { 'c': 9 } }] }
- */
-declare function updateWith<T extends object>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: (value: any, key: string, object: T) => any): T;
-/**
- * Updates the value at the specified path of the given object using an updater function and a customizer.
- * If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @template R - The type of the return value.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(oldValue: any) => any} updater - The function to produce the updated value.
- * @param {(value: any, key: string, object: T) => any} customizer - The function to customize the update process.
- * @returns {R} - The modified object.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * updateWith(object, 'a[0].b.c', (n) => n * n);
- * // => { 'a': [{ 'b': { 'c': 9 } }] }
- */
-declare function updateWith<T extends object, R>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: (value: any, key: string, object: T) => any): R;
-
-export { updateWith };
Index: de_modules/es-toolkit/dist/compat/object/updateWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/updateWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Updates the value at the specified path of the given object using an updater function and a customizer.
- * If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(oldValue: any) => any} updater - The function to produce the updated value.
- * @param {(value: any, key: string, object: T) => any} customizer - The function to customize the update process.
- * @returns {T} - The modified object.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * updateWith(object, 'a[0].b.c', (n) => n * n);
- * // => { 'a': [{ 'b': { 'c': 9 } }] }
- */
-declare function updateWith<T extends object>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: (value: any, key: string, object: T) => any): T;
-/**
- * Updates the value at the specified path of the given object using an updater function and a customizer.
- * If any part of the path does not exist, it will be created.
- *
- * @template T - The type of the object.
- * @template R - The type of the return value.
- * @param {T} object - The object to modify.
- * @param {PropertyPath} path - The path of the property to update.
- * @param {(oldValue: any) => any} updater - The function to produce the updated value.
- * @param {(value: any, key: string, object: T) => any} customizer - The function to customize the update process.
- * @returns {R} - The modified object.
- *
- * @example
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
- * updateWith(object, 'a[0].b.c', (n) => n * n);
- * // => { 'a': [{ 'b': { 'c': 9 } }] }
- */
-declare function updateWith<T extends object, R>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: (value: any, key: string, object: T) => any): R;
-
-export { updateWith };
Index: de_modules/es-toolkit/dist/compat/object/updateWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/updateWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const get = require('./get.js');
-const isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');
-const assignValue = require('../_internal/assignValue.js');
-const isIndex = require('../_internal/isIndex.js');
-const isKey = require('../_internal/isKey.js');
-const toKey = require('../_internal/toKey.js');
-const isObject = require('../predicate/isObject.js');
-const toPath = require('../util/toPath.js');
-
-function updateWith(obj, path, updater, customizer) {
-    if (obj == null && !isObject.isObject(obj)) {
-        return obj;
-    }
-    let resolvedPath;
-    if (isKey.isKey(path, obj)) {
-        resolvedPath = [path];
-    }
-    else if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else {
-        resolvedPath = toPath.toPath(path);
-    }
-    const updateValue = updater(get.get(obj, resolvedPath));
-    let current = obj;
-    for (let i = 0; i < resolvedPath.length && current != null; i++) {
-        const key = toKey.toKey(resolvedPath[i]);
-        if (isUnsafeProperty.isUnsafeProperty(key)) {
-            continue;
-        }
-        let newValue;
-        if (i === resolvedPath.length - 1) {
-            newValue = updateValue;
-        }
-        else {
-            const objValue = current[key];
-            const customizerResult = customizer?.(objValue, key, obj);
-            newValue =
-                customizerResult !== undefined
-                    ? customizerResult
-                    : isObject.isObject(objValue)
-                        ? objValue
-                        : isIndex.isIndex(resolvedPath[i + 1])
-                            ? []
-                            : {};
-        }
-        assignValue.assignValue(current, key, newValue);
-        current = current[key];
-    }
-    return obj;
-}
-
-exports.updateWith = updateWith;
Index: de_modules/es-toolkit/dist/compat/object/updateWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/updateWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import { get } from './get.mjs';
-import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';
-import { assignValue } from '../_internal/assignValue.mjs';
-import { isIndex } from '../_internal/isIndex.mjs';
-import { isKey } from '../_internal/isKey.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { toPath } from '../util/toPath.mjs';
-
-function updateWith(obj, path, updater, customizer) {
-    if (obj == null && !isObject(obj)) {
-        return obj;
-    }
-    let resolvedPath;
-    if (isKey(path, obj)) {
-        resolvedPath = [path];
-    }
-    else if (Array.isArray(path)) {
-        resolvedPath = path;
-    }
-    else {
-        resolvedPath = toPath(path);
-    }
-    const updateValue = updater(get(obj, resolvedPath));
-    let current = obj;
-    for (let i = 0; i < resolvedPath.length && current != null; i++) {
-        const key = toKey(resolvedPath[i]);
-        if (isUnsafeProperty(key)) {
-            continue;
-        }
-        let newValue;
-        if (i === resolvedPath.length - 1) {
-            newValue = updateValue;
-        }
-        else {
-            const objValue = current[key];
-            const customizerResult = customizer?.(objValue, key, obj);
-            newValue =
-                customizerResult !== undefined
-                    ? customizerResult
-                    : isObject(objValue)
-                        ? objValue
-                        : isIndex(resolvedPath[i + 1])
-                            ? []
-                            : {};
-        }
-        assignValue(current, key, newValue);
-        current = current[key];
-    }
-    return obj;
-}
-
-export { updateWith };
Index: de_modules/es-toolkit/dist/compat/object/values.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/values.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined} object - The object to query.
- * @returns {T[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values<T>(object: Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined): T[];
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @template T
- * @param {T | null | undefined} object - The object to query.
- * @returns {Array<T[keyof T]>} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @param {any} object - The object to query.
- * @returns {any[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values(object: any): any[];
-
-export { values };
Index: de_modules/es-toolkit/dist/compat/object/values.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/values.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined} object - The object to query.
- * @returns {T[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values<T>(object: Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined): T[];
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @template T
- * @param {T | null | undefined} object - The object to query.
- * @returns {Array<T[keyof T]>} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-/**
- * Creates an array of the own enumerable property values of `object`.
- *
- * @param {any} object - The object to query.
- * @returns {any[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * values(obj); // => [1, 2, 3]
- */
-declare function values(object: any): any[];
-
-export { values };
Index: de_modules/es-toolkit/dist/compat/object/values.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/values.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function values(object) {
-    if (object == null) {
-        return [];
-    }
-    return Object.values(object);
-}
-
-exports.values = values;
Index: de_modules/es-toolkit/dist/compat/object/values.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/values.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function values(object) {
-    if (object == null) {
-        return [];
-    }
-    return Object.values(object);
-}
-
-export { values };
Index: de_modules/es-toolkit/dist/compat/object/valuesIn.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/valuesIn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Retrieves the values from an object, including those inherited from its prototype.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined} object - The object to query.
- * @returns {T[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * valuesIn(obj); // => [1, 2, 3]
- */
-declare function valuesIn<T>(object: Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined): T[];
-/**
- * Retrieves the values from an object, including those inherited from its prototype.
- *
- * @template T
- * @param {T | null | undefined} object - The object to query.
- * @returns {Array<T[keyof T]>} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * valuesIn(obj); // => [1, 2, 3]
- */
-declare function valuesIn<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-
-export { valuesIn };
Index: de_modules/es-toolkit/dist/compat/object/valuesIn.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/object/valuesIn.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Retrieves the values from an object, including those inherited from its prototype.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined} object - The object to query.
- * @returns {T[]} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * valuesIn(obj); // => [1, 2, 3]
- */
-declare function valuesIn<T>(object: Record<string, T> | Record<number, T> | ArrayLike<T> | null | undefined): T[];
-/**
- * Retrieves the values from an object, including those inherited from its prototype.
- *
- * @template T
- * @param {T | null | undefined} object - The object to query.
- * @returns {Array<T[keyof T]>} Returns an array of property values.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * valuesIn(obj); // => [1, 2, 3]
- */
-declare function valuesIn<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
-
-export { valuesIn };
Index: de_modules/es-toolkit/dist/compat/object/valuesIn.js
===================================================================
--- node_modules/es-toolkit/dist/compat/object/valuesIn.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('./keysIn.js');
-
-function valuesIn(object) {
-    const keys = keysIn.keysIn(object);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        result[i] = object[key];
-    }
-    return result;
-}
-
-exports.valuesIn = valuesIn;
Index: de_modules/es-toolkit/dist/compat/object/valuesIn.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/object/valuesIn.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { keysIn } from './keysIn.mjs';
-
-function valuesIn(object) {
-    const keys = keysIn(object);
-    const result = new Array(keys.length);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        result[i] = object[key];
-    }
-    return result;
-}
-
-export { valuesIn };
Index: de_modules/es-toolkit/dist/compat/predicate/conforms.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conforms.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { ConformsPredicateObject } from '../_internal/ConformsPredicateObject.mjs';
-
-/**
- * Creates a function that invokes the predicate properties of `source` with the corresponding property values of a given object, returning `true` if all predicates return truthy, else `false`.
- *
- * Note: The created function is equivalent to `conformsTo` with source partially applied.
- *
- * @param {Record<PropertyKey, (value: any) => boolean>} source The object of property predicates to conform to.
- * @returns {(object: Record<PropertyKey, any>) => boolean} Returns the new spec function.
- *
- * @example
- * const isPositive = (n) => n > 0;
- * const isEven = (n) => n % 2 === 0;
- * const predicates = { a: isPositive, b: isEven };
- * const conform = conforms(predicates);
- *
- * console.log(conform({ a: 2, b: 4 })); // true
- * console.log(conform({ a: -1, b: 4 })); // false
- * console.log(conform({ a: 2, b: 3 })); // false
- * console.log(conform({ a: 0, b: 2 })); // false
- */
-declare function conforms<T>(source: ConformsPredicateObject<T>): (value: T) => boolean;
-
-export { conforms };
Index: de_modules/es-toolkit/dist/compat/predicate/conforms.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conforms.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { ConformsPredicateObject } from '../_internal/ConformsPredicateObject.js';
-
-/**
- * Creates a function that invokes the predicate properties of `source` with the corresponding property values of a given object, returning `true` if all predicates return truthy, else `false`.
- *
- * Note: The created function is equivalent to `conformsTo` with source partially applied.
- *
- * @param {Record<PropertyKey, (value: any) => boolean>} source The object of property predicates to conform to.
- * @returns {(object: Record<PropertyKey, any>) => boolean} Returns the new spec function.
- *
- * @example
- * const isPositive = (n) => n > 0;
- * const isEven = (n) => n % 2 === 0;
- * const predicates = { a: isPositive, b: isEven };
- * const conform = conforms(predicates);
- *
- * console.log(conform({ a: 2, b: 4 })); // true
- * console.log(conform({ a: -1, b: 4 })); // false
- * console.log(conform({ a: 2, b: 3 })); // false
- * console.log(conform({ a: 0, b: 2 })); // false
- */
-declare function conforms<T>(source: ConformsPredicateObject<T>): (value: T) => boolean;
-
-export { conforms };
Index: de_modules/es-toolkit/dist/compat/predicate/conforms.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conforms.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const conformsTo = require('./conformsTo.js');
-const cloneDeep = require('../../object/cloneDeep.js');
-
-function conforms(source) {
-    source = cloneDeep.cloneDeep(source);
-    return function (object) {
-        return conformsTo.conformsTo(object, source);
-    };
-}
-
-exports.conforms = conforms;
Index: de_modules/es-toolkit/dist/compat/predicate/conforms.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conforms.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { conformsTo } from './conformsTo.mjs';
-import { cloneDeep } from '../../object/cloneDeep.mjs';
-
-function conforms(source) {
-    source = cloneDeep(source);
-    return function (object) {
-        return conformsTo(object, source);
-    };
-}
-
-export { conforms };
Index: de_modules/es-toolkit/dist/compat/predicate/conformsTo.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conformsTo.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { ConformsPredicateObject } from '../_internal/ConformsPredicateObject.mjs';
-
-/**
- * Checks if `object` conforms to `source` by invoking the predicate properties of `source` with the corresponding property values of `object`.
- *
- * Note: This method is equivalent to `conforms` when source is partially applied.
- *
- * @template T - The type of the target object.
- * @param {T} target The object to inspect.
- * @param {ConformsPredicateObject<T>} source The object of property predicates to conform to.
- * @returns {boolean} Returns `true` if `object` conforms, else `false`.
- *
- * @example
- *
- * const object = { 'a': 1, 'b': 2 };
- * const source = {
- *   'a': (n) => n > 0,
- *   'b': (n) => n > 1
- * };
- *
- * console.log(conformsTo(object, source)); // => true
- *
- * const source2 = {
- *   'a': (n) => n > 1,
- *   'b': (n) => n > 1
- * };
- *
- * console.log(conformsTo(object, source2)); // => false
- */
-declare function conformsTo<T>(target: T, source: ConformsPredicateObject<T>): boolean;
-
-export { conformsTo };
Index: de_modules/es-toolkit/dist/compat/predicate/conformsTo.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conformsTo.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { ConformsPredicateObject } from '../_internal/ConformsPredicateObject.js';
-
-/**
- * Checks if `object` conforms to `source` by invoking the predicate properties of `source` with the corresponding property values of `object`.
- *
- * Note: This method is equivalent to `conforms` when source is partially applied.
- *
- * @template T - The type of the target object.
- * @param {T} target The object to inspect.
- * @param {ConformsPredicateObject<T>} source The object of property predicates to conform to.
- * @returns {boolean} Returns `true` if `object` conforms, else `false`.
- *
- * @example
- *
- * const object = { 'a': 1, 'b': 2 };
- * const source = {
- *   'a': (n) => n > 0,
- *   'b': (n) => n > 1
- * };
- *
- * console.log(conformsTo(object, source)); // => true
- *
- * const source2 = {
- *   'a': (n) => n > 1,
- *   'b': (n) => n > 1
- * };
- *
- * console.log(conformsTo(object, source2)); // => false
- */
-declare function conformsTo<T>(target: T, source: ConformsPredicateObject<T>): boolean;
-
-export { conformsTo };
Index: de_modules/es-toolkit/dist/compat/predicate/conformsTo.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conformsTo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function conformsTo(target, source) {
-    if (source == null) {
-        return true;
-    }
-    if (target == null) {
-        return Object.keys(source).length === 0;
-    }
-    const keys = Object.keys(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const predicate = source[key];
-        const value = target[key];
-        if (value === undefined && !(key in target)) {
-            return false;
-        }
-        if (typeof predicate === 'function' && !predicate(value)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-exports.conformsTo = conformsTo;
Index: de_modules/es-toolkit/dist/compat/predicate/conformsTo.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/conformsTo.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-function conformsTo(target, source) {
-    if (source == null) {
-        return true;
-    }
-    if (target == null) {
-        return Object.keys(source).length === 0;
-    }
-    const keys = Object.keys(source);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const predicate = source[key];
-        const value = target[key];
-        if (value === undefined && !(key in target)) {
-            return false;
-        }
-        if (typeof predicate === 'function' && !predicate(value)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-export { conformsTo };
Index: de_modules/es-toolkit/dist/compat/predicate/isArguments.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArguments.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is an arguments object.
- *
- * This function tests whether the provided value is an arguments object or not.
- * It returns `true` if the value is an arguments object, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an arguments object.
- *
- * @param {any} value - The value to test if it is an arguments object.
- * @returns {value is IArguments} `true` if the value is an arguments, `false` otherwise.
- *
- * @example
- * const args = (function() { return arguments; })();
- * const strictArgs = (function() { 'use strict'; return arguments; })();
- * const value = [1, 2, 3];
- *
- * console.log(isArguments(args)); // true
- * console.log(isArguments(strictArgs)); // true
- * console.log(isArguments(value)); // false
- */
-declare function isArguments(value?: any): value is IArguments;
-
-export { isArguments };
Index: de_modules/es-toolkit/dist/compat/predicate/isArguments.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArguments.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is an arguments object.
- *
- * This function tests whether the provided value is an arguments object or not.
- * It returns `true` if the value is an arguments object, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an arguments object.
- *
- * @param {any} value - The value to test if it is an arguments object.
- * @returns {value is IArguments} `true` if the value is an arguments, `false` otherwise.
- *
- * @example
- * const args = (function() { return arguments; })();
- * const strictArgs = (function() { 'use strict'; return arguments; })();
- * const value = [1, 2, 3];
- *
- * console.log(isArguments(args)); // true
- * console.log(isArguments(strictArgs)); // true
- * console.log(isArguments(value)); // false
- */
-declare function isArguments(value?: any): value is IArguments;
-
-export { isArguments };
Index: de_modules/es-toolkit/dist/compat/predicate/isArguments.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArguments.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const getTag = require('../_internal/getTag.js');
-
-function isArguments(value) {
-    return value !== null && typeof value === 'object' && getTag.getTag(value) === '[object Arguments]';
-}
-
-exports.isArguments = isArguments;
Index: de_modules/es-toolkit/dist/compat/predicate/isArguments.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { getTag } from '../_internal/getTag.mjs';
-
-function isArguments(value) {
-    return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';
-}
-
-export { isArguments };
Index: de_modules/es-toolkit/dist/compat/predicate/isArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Checks if the given value is an array.
- *
- * This function tests whether the provided value is an array or not.
- * It returns `true` if the value is an array, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an array.
- *
- * @param {any} value - The value to test if it is an array.
- * @returns {value is any[]} `true` if the value is an array, `false` otherwise.
- *
- * @example
- * const value1 = [1, 2, 3];
- * const value2 = 'abc';
- * const value3 = () => {};
- *
- * console.log(isArray(value1)); // true
- * console.log(isArray(value2)); // false
- * console.log(isArray(value3)); // false
- */
-declare function isArray(value?: any): value is any[];
-/**
- * Checks if the given value is an array with generic type support.
- *
- * This function tests whether the provided value is an array or not.
- * It returns `true` if the value is an array, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an array.
- *
- * @template T - The type of elements in the array.
- * @param {any} value - The value to test if it is an array.
- * @returns {value is any[]} `true` if the value is an array, `false` otherwise.
- *
- * @example
- * const value1 = [1, 2, 3];
- * const value2 = 'abc';
- * const value3 = () => {};
- *
- * console.log(isArray<number>(value1)); // true
- * console.log(isArray<string>(value2)); // false
- * console.log(isArray<Function>(value3)); // false
- */
-declare function isArray<T>(value?: any): value is any[];
-
-export { isArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Checks if the given value is an array.
- *
- * This function tests whether the provided value is an array or not.
- * It returns `true` if the value is an array, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an array.
- *
- * @param {any} value - The value to test if it is an array.
- * @returns {value is any[]} `true` if the value is an array, `false` otherwise.
- *
- * @example
- * const value1 = [1, 2, 3];
- * const value2 = 'abc';
- * const value3 = () => {};
- *
- * console.log(isArray(value1)); // true
- * console.log(isArray(value2)); // false
- * console.log(isArray(value3)); // false
- */
-declare function isArray(value?: any): value is any[];
-/**
- * Checks if the given value is an array with generic type support.
- *
- * This function tests whether the provided value is an array or not.
- * It returns `true` if the value is an array, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an array.
- *
- * @template T - The type of elements in the array.
- * @param {any} value - The value to test if it is an array.
- * @returns {value is any[]} `true` if the value is an array, `false` otherwise.
- *
- * @example
- * const value1 = [1, 2, 3];
- * const value2 = 'abc';
- * const value3 = () => {};
- *
- * console.log(isArray<number>(value1)); // true
- * console.log(isArray<string>(value2)); // false
- * console.log(isArray<Function>(value3)); // false
- */
-declare function isArray<T>(value?: any): value is any[];
-
-export { isArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isArray(value) {
-    return Array.isArray(value);
-}
-
-exports.isArray = isArray;
Index: de_modules/es-toolkit/dist/compat/predicate/isArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isArray(value) {
-    return Array.isArray(value);
-}
-
-export { isArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `ArrayBuffer`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `ArrayBuffer`.
- *
- * @param {any} value The value to check if it is a `ArrayBuffer`.
- * @returns {value is ArrayBuffer} Returns `true` if `value` is a `ArrayBuffer`, else `false`.
- *
- * @example
- * const value1 = new ArrayBuffer();
- * const value2 = new Array();
- * const value3 = new Map();
- *
- * console.log(isArrayBuffer(value1)); // true
- * console.log(isArrayBuffer(value2)); // false
- * console.log(isArrayBuffer(value3)); // false
- */
-declare function isArrayBuffer(value?: any): value is ArrayBuffer;
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `ArrayBuffer`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `ArrayBuffer`.
- *
- * @param {any} value The value to check if it is a `ArrayBuffer`.
- * @returns {value is ArrayBuffer} Returns `true` if `value` is a `ArrayBuffer`, else `false`.
- *
- * @example
- * const value1 = new ArrayBuffer();
- * const value2 = new Array();
- * const value3 = new Map();
- *
- * console.log(isArrayBuffer(value1)); // true
- * console.log(isArrayBuffer(value2)); // false
- * console.log(isArrayBuffer(value3)); // false
- */
-declare function isArrayBuffer(value?: any): value is ArrayBuffer;
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayBuffer$1 = require('../../predicate/isArrayBuffer.js');
-
-function isArrayBuffer(value) {
-    return isArrayBuffer$1.isArrayBuffer(value);
-}
-
-exports.isArrayBuffer = isArrayBuffer;
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayBuffer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isArrayBuffer as isArrayBuffer$1 } from '../../predicate/isArrayBuffer.mjs';
-
-function isArrayBuffer(value) {
-    return isArrayBuffer$1(value);
-}
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLike.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLike.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if `value` is array-like. This overload is for compatibility with lodash type checking.
- *
- * @param {T} t The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-declare function isArrayLike<T extends {
-    __lodashAnyHack: any;
-}>(t: T): boolean;
-/**
- * Checks if `value` is array-like. Functions, null, and undefined are never array-like.
- *
- * @param {((...args: any[]) => any) | null | undefined} value The value to check.
- * @returns {value is never} Returns `false` for functions, null, and undefined.
- */
-declare function isArrayLike(value: ((...args: any[]) => any) | null | undefined): value is never;
-/**
- * Checks if `value` is array-like.
- *
- * @param {any} value The value to check.
- * @returns {value is { length: number }} Returns `true` if `value` is array-like, else `false`.
- */
-declare function isArrayLike(value: any): value is {
-    length: number;
-};
-
-export { isArrayLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLike.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLike.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if `value` is array-like. This overload is for compatibility with lodash type checking.
- *
- * @param {T} t The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-declare function isArrayLike<T extends {
-    __lodashAnyHack: any;
-}>(t: T): boolean;
-/**
- * Checks if `value` is array-like. Functions, null, and undefined are never array-like.
- *
- * @param {((...args: any[]) => any) | null | undefined} value The value to check.
- * @returns {value is never} Returns `false` for functions, null, and undefined.
- */
-declare function isArrayLike(value: ((...args: any[]) => any) | null | undefined): value is never;
-/**
- * Checks if `value` is array-like.
- *
- * @param {any} value The value to check.
- * @returns {value is { length: number }} Returns `true` if `value` is array-like, else `false`.
- */
-declare function isArrayLike(value: any): value is {
-    length: number;
-};
-
-export { isArrayLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLike.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isLength = require('../../predicate/isLength.js');
-
-function isArrayLike(value) {
-    return value != null && typeof value !== 'function' && isLength.isLength(value.length);
-}
-
-exports.isArrayLike = isArrayLike;
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isLength } from '../../predicate/isLength.mjs';
-
-function isArrayLike(value) {
-    return value != null && typeof value !== 'function' && isLength(value.length);
-}
-
-export { isArrayLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-declare function isArrayLikeObject<T extends {
-    __lodashAnyHack: any;
-}>(value: T): boolean;
-declare function isArrayLikeObject(value: ((...args: any[]) => any) | Function | string | boolean | number | null | undefined): value is never;
-declare function isArrayLikeObject(value: any): value is object & {
-    length: number;
-};
-
-export { isArrayLikeObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-declare function isArrayLikeObject<T extends {
-    __lodashAnyHack: any;
-}>(value: T): boolean;
-declare function isArrayLikeObject(value: ((...args: any[]) => any) | Function | string | boolean | number | null | undefined): value is never;
-declare function isArrayLikeObject(value: any): value is object & {
-    length: number;
-};
-
-export { isArrayLikeObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('./isArrayLike.js');
-const isObjectLike = require('./isObjectLike.js');
-
-function isArrayLikeObject(value) {
-    return isObjectLike.isObjectLike(value) && isArrayLike.isArrayLike(value);
-}
-
-exports.isArrayLikeObject = isArrayLikeObject;
Index: de_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { isArrayLike } from './isArrayLike.mjs';
-import { isObjectLike } from './isObjectLike.mjs';
-
-function isArrayLikeObject(value) {
-    return isObjectLike(value) && isArrayLike(value);
-}
-
-export { isArrayLikeObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isBoolean.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBoolean.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is boolean.
- *
- * This function tests whether the provided value is strictly `boolean`.
- * It returns `true` if the value is `boolean`, and `false` otherwise.
- *
- *  This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `boolean`.
- *
- * @param {any} value - The Value to test if it is boolean.
- * @returns {value is boolean} True if the value is boolean, false otherwise.
- *
- * @example
- *
- * const value1 = true;
- * const value2 = 0;
- * const value3 = 'abc';
- *
- * console.log(isBoolean(value1)); // true
- * console.log(isBoolean(value2)); // false
- * console.log(isBoolean(value3)); // false
- *
- */
-declare function isBoolean(value?: any): value is boolean;
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/compat/predicate/isBoolean.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBoolean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is boolean.
- *
- * This function tests whether the provided value is strictly `boolean`.
- * It returns `true` if the value is `boolean`, and `false` otherwise.
- *
- *  This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `boolean`.
- *
- * @param {any} value - The Value to test if it is boolean.
- * @returns {value is boolean} True if the value is boolean, false otherwise.
- *
- * @example
- *
- * const value1 = true;
- * const value2 = 0;
- * const value3 = 'abc';
- *
- * console.log(isBoolean(value1)); // true
- * console.log(isBoolean(value2)); // false
- * console.log(isBoolean(value3)); // false
- *
- */
-declare function isBoolean(value?: any): value is boolean;
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/compat/predicate/isBoolean.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBoolean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isBoolean(value) {
-    return typeof value === 'boolean' || value instanceof Boolean;
-}
-
-exports.isBoolean = isBoolean;
Index: de_modules/es-toolkit/dist/compat/predicate/isBoolean.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBoolean.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isBoolean(value) {
-    return typeof value === 'boolean' || value instanceof Boolean;
-}
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/compat/predicate/isBuffer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBuffer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a Buffer instance.
- *
- * This function tests whether the provided value is an instance of Buffer.
- * It returns `true` if the value is a Buffer, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.
- *
- * @param {any} x - The value to check if it is a Buffer.
- * @returns {boolean} Returns `true` if `x` is a Buffer, else `false`.
- *
- * @example
- * const buffer = Buffer.from("test");
- * console.log(isBuffer(buffer)); // true
- *
- * const notBuffer = "not a buffer";
- * console.log(isBuffer(notBuffer)); // false
- */
-declare function isBuffer(x?: any): boolean;
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a Buffer instance.
- *
- * This function tests whether the provided value is an instance of Buffer.
- * It returns `true` if the value is a Buffer, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.
- *
- * @param {any} x - The value to check if it is a Buffer.
- * @returns {boolean} Returns `true` if `x` is a Buffer, else `false`.
- *
- * @example
- * const buffer = Buffer.from("test");
- * console.log(isBuffer(buffer)); // true
- *
- * const notBuffer = "not a buffer";
- * console.log(isBuffer(notBuffer)); // false
- */
-declare function isBuffer(x?: any): boolean;
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isBuffer.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isBuffer$1 = require('../../predicate/isBuffer.js');
-
-function isBuffer(x) {
-    return isBuffer$1.isBuffer(x);
-}
-
-exports.isBuffer = isBuffer;
Index: de_modules/es-toolkit/dist/compat/predicate/isBuffer.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isBuffer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isBuffer as isBuffer$1 } from '../../predicate/isBuffer.mjs';
-
-function isBuffer(x) {
-    return isBuffer$1(x);
-}
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/compat/predicate/isDate.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isDate.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a Date object.
- *
- * @param {any} value The value to check.
- * @returns {value is Date} Returns `true` if `value` is a Date object, `false` otherwise.
- *
- * @example
- * const value1 = new Date();
- * const value2 = '2024-01-01';
- *
- * console.log(isDate(value1)); // true
- * console.log(isDate(value2)); // false
- */
-declare function isDate(value?: any): value is Date;
-
-export { isDate };
Index: de_modules/es-toolkit/dist/compat/predicate/isDate.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isDate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a Date object.
- *
- * @param {any} value The value to check.
- * @returns {value is Date} Returns `true` if `value` is a Date object, `false` otherwise.
- *
- * @example
- * const value1 = new Date();
- * const value2 = '2024-01-01';
- *
- * console.log(isDate(value1)); // true
- * console.log(isDate(value2)); // false
- */
-declare function isDate(value?: any): value is Date;
-
-export { isDate };
Index: de_modules/es-toolkit/dist/compat/predicate/isDate.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isDate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isDate$1 = require('../../predicate/isDate.js');
-
-function isDate(value) {
-    return isDate$1.isDate(value);
-}
-
-exports.isDate = isDate;
Index: de_modules/es-toolkit/dist/compat/predicate/isDate.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isDate.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isDate as isDate$1 } from '../../predicate/isDate.mjs';
-
-function isDate(value) {
-    return isDate$1(value);
-}
-
-export { isDate };
Index: de_modules/es-toolkit/dist/compat/predicate/isElement.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isElement.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Checks if `value` is likely a DOM element.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
- *
- * @example
- * console.log(isElement(document.body)); // true
- * console.log(isElement('<body>')); // false
- */
-declare function isElement(value?: any): boolean;
-
-export { isElement };
Index: de_modules/es-toolkit/dist/compat/predicate/isElement.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isElement.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Checks if `value` is likely a DOM element.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
- *
- * @example
- * console.log(isElement(document.body)); // true
- * console.log(isElement('<body>')); // false
- */
-declare function isElement(value?: any): boolean;
-
-export { isElement };
Index: de_modules/es-toolkit/dist/compat/predicate/isElement.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isElement.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isObjectLike = require('./isObjectLike.js');
-const isPlainObject = require('./isPlainObject.js');
-
-function isElement(value) {
-    return isObjectLike.isObjectLike(value) && value.nodeType === 1 && !isPlainObject.isPlainObject(value);
-}
-
-exports.isElement = isElement;
Index: de_modules/es-toolkit/dist/compat/predicate/isElement.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isElement.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { isObjectLike } from './isObjectLike.mjs';
-import { isPlainObject } from './isPlainObject.mjs';
-
-function isElement(value) {
-    return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
-}
-
-export { isElement };
Index: de_modules/es-toolkit/dist/compat/predicate/isEmpty.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEmpty.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { EmptyObjectOf } from '../_internal/EmptyObjectOf.mjs';
-
-declare function isEmpty<T extends {
-    __trapAny: any;
-}>(value?: T): boolean;
-declare function isEmpty(value: string): value is '';
-declare function isEmpty(value: Map<any, any> | Set<any> | ArrayLike<any> | null | undefined): boolean;
-declare function isEmpty(value: object): boolean;
-declare function isEmpty<T extends object>(value: T | null | undefined): value is EmptyObjectOf<T> | null | undefined;
-declare function isEmpty(value?: any): boolean;
-
-export { isEmpty };
Index: de_modules/es-toolkit/dist/compat/predicate/isEmpty.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEmpty.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { EmptyObjectOf } from '../_internal/EmptyObjectOf.js';
-
-declare function isEmpty<T extends {
-    __trapAny: any;
-}>(value?: T): boolean;
-declare function isEmpty(value: string): value is '';
-declare function isEmpty(value: Map<any, any> | Set<any> | ArrayLike<any> | null | undefined): boolean;
-declare function isEmpty(value: object): boolean;
-declare function isEmpty<T extends object>(value: T | null | undefined): value is EmptyObjectOf<T> | null | undefined;
-declare function isEmpty(value?: any): boolean;
-
-export { isEmpty };
Index: de_modules/es-toolkit/dist/compat/predicate/isEmpty.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEmpty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArguments = require('./isArguments.js');
-const isArrayLike = require('./isArrayLike.js');
-const isTypedArray = require('./isTypedArray.js');
-const isPrototype = require('../_internal/isPrototype.js');
-
-function isEmpty(value) {
-    if (value == null) {
-        return true;
-    }
-    if (isArrayLike.isArrayLike(value)) {
-        if (typeof value.splice !== 'function' &&
-            typeof value !== 'string' &&
-            (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&
-            !isTypedArray.isTypedArray(value) &&
-            !isArguments.isArguments(value)) {
-            return false;
-        }
-        return value.length === 0;
-    }
-    if (typeof value === 'object') {
-        if (value instanceof Map || value instanceof Set) {
-            return value.size === 0;
-        }
-        const keys = Object.keys(value);
-        if (isPrototype.isPrototype(value)) {
-            return keys.filter(x => x !== 'constructor').length === 0;
-        }
-        return keys.length === 0;
-    }
-    return true;
-}
-
-exports.isEmpty = isEmpty;
Index: de_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { isArguments } from './isArguments.mjs';
-import { isArrayLike } from './isArrayLike.mjs';
-import { isTypedArray } from './isTypedArray.mjs';
-import { isPrototype } from '../_internal/isPrototype.mjs';
-
-function isEmpty(value) {
-    if (value == null) {
-        return true;
-    }
-    if (isArrayLike(value)) {
-        if (typeof value.splice !== 'function' &&
-            typeof value !== 'string' &&
-            (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&
-            !isTypedArray(value) &&
-            !isArguments(value)) {
-            return false;
-        }
-        return value.length === 0;
-    }
-    if (typeof value === 'object') {
-        if (value instanceof Map || value instanceof Set) {
-            return value.size === 0;
-        }
-        const keys = Object.keys(value);
-        if (isPrototype(value)) {
-            return keys.filter(x => x !== 'constructor').length === 0;
-        }
-        return keys.length === 0;
-    }
-    return true;
-}
-
-export { isEmpty };
Index: de_modules/es-toolkit/dist/compat/predicate/isEqualWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEqualWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { IsEqualCustomizer } from '../_internal/IsEqualCustomizer.mjs';
-
-/**
- * Compares two values for equality using a custom comparison function.
- *
- * The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.
- *
- * This function also uses the custom equality function to compare values inside objects,
- * arrays, maps, sets, and other complex structures, ensuring a deep comparison.
- *
- * This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.
- *
- * The custom comparison function can take up to six parameters:
- * - `x`: The value from the first object `a`.
- * - `y`: The value from the second object `b`.
- * - `property`: The property key used to get `x` and `y`.
- * - `xParent`: The parent of the first value `x`.
- * - `yParent`: The parent of the second value `y`.
- * - `stack`: An internal stack (Map) to handle circular references.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @param {(x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void} [areValuesEqual=noop] - A function to customize the comparison.
- *   If it returns a boolean, that result will be used. If it returns undefined,
- *   the default equality comparison will be used.
- * @returns {boolean} `true` if the values are equal according to the customizer, otherwise `false`.
- *
- * @example
- * const customizer = (a, b) => {
- *   if (typeof a === 'string' && typeof b === 'string') {
- *     return a.toLowerCase() === b.toLowerCase();
- *   }
- * };
- * isEqualWith('Hello', 'hello', customizer); // true
- * isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true
- * isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true
- */
-declare function isEqualWith(a: any, b: any, areValuesEqual?: IsEqualCustomizer): boolean;
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/compat/predicate/isEqualWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEqualWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { IsEqualCustomizer } from '../_internal/IsEqualCustomizer.js';
-
-/**
- * Compares two values for equality using a custom comparison function.
- *
- * The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.
- *
- * This function also uses the custom equality function to compare values inside objects,
- * arrays, maps, sets, and other complex structures, ensuring a deep comparison.
- *
- * This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.
- *
- * The custom comparison function can take up to six parameters:
- * - `x`: The value from the first object `a`.
- * - `y`: The value from the second object `b`.
- * - `property`: The property key used to get `x` and `y`.
- * - `xParent`: The parent of the first value `x`.
- * - `yParent`: The parent of the second value `y`.
- * - `stack`: An internal stack (Map) to handle circular references.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @param {(x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void} [areValuesEqual=noop] - A function to customize the comparison.
- *   If it returns a boolean, that result will be used. If it returns undefined,
- *   the default equality comparison will be used.
- * @returns {boolean} `true` if the values are equal according to the customizer, otherwise `false`.
- *
- * @example
- * const customizer = (a, b) => {
- *   if (typeof a === 'string' && typeof b === 'string') {
- *     return a.toLowerCase() === b.toLowerCase();
- *   }
- * };
- * isEqualWith('Hello', 'hello', customizer); // true
- * isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true
- * isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true
- */
-declare function isEqualWith(a: any, b: any, areValuesEqual?: IsEqualCustomizer): boolean;
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/compat/predicate/isEqualWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEqualWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const after = require('../../function/after.js');
-const isEqualWith$1 = require('../../predicate/isEqualWith.js');
-
-function isEqualWith(a, b, areValuesEqual) {
-    if (typeof areValuesEqual !== 'function') {
-        areValuesEqual = () => undefined;
-    }
-    return isEqualWith$1.isEqualWith(a, b, (...args) => {
-        const result = areValuesEqual(...args);
-        if (result !== undefined) {
-            return Boolean(result);
-        }
-        if (a instanceof Map && b instanceof Map) {
-            return isEqualWith(Array.from(a), Array.from(b), after.after(2, areValuesEqual));
-        }
-        if (a instanceof Set && b instanceof Set) {
-            return isEqualWith(Array.from(a), Array.from(b), after.after(2, areValuesEqual));
-        }
-    });
-}
-
-exports.isEqualWith = isEqualWith;
Index: de_modules/es-toolkit/dist/compat/predicate/isEqualWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isEqualWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { after } from '../../function/after.mjs';
-import { isEqualWith as isEqualWith$1 } from '../../predicate/isEqualWith.mjs';
-
-function isEqualWith(a, b, areValuesEqual) {
-    if (typeof areValuesEqual !== 'function') {
-        areValuesEqual = () => undefined;
-    }
-    return isEqualWith$1(a, b, (...args) => {
-        const result = areValuesEqual(...args);
-        if (result !== undefined) {
-            return Boolean(result);
-        }
-        if (a instanceof Map && b instanceof Map) {
-            return isEqualWith(Array.from(a), Array.from(b), after(2, areValuesEqual));
-        }
-        if (a instanceof Set && b instanceof Set) {
-            return isEqualWith(Array.from(a), Array.from(b), after(2, areValuesEqual));
-        }
-    });
-}
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/compat/predicate/isError.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isError.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is an Error object.
- *
- * @param {any} value The value to check.
- * @returns {value is Error} Returns `true` if `value` is an Error object, `false` otherwise.
- *
- * @example
- * ```typescript
- * console.log(isError(new Error())); // true
- * console.log(isError('Error')); // false
- * console.log(isError({ name: 'Error', message: '' })); // false
- * ```
- */
-declare function isError(value: any): value is Error;
-
-export { isError };
Index: de_modules/es-toolkit/dist/compat/predicate/isError.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isError.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is an Error object.
- *
- * @param {any} value The value to check.
- * @returns {value is Error} Returns `true` if `value` is an Error object, `false` otherwise.
- *
- * @example
- * ```typescript
- * console.log(isError(new Error())); // true
- * console.log(isError('Error')); // false
- * console.log(isError({ name: 'Error', message: '' })); // false
- * ```
- */
-declare function isError(value: any): value is Error;
-
-export { isError };
Index: de_modules/es-toolkit/dist/compat/predicate/isError.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isError.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const getTag = require('../_internal/getTag.js');
-
-function isError(value) {
-    return getTag.getTag(value) === '[object Error]';
-}
-
-exports.isError = isError;
Index: de_modules/es-toolkit/dist/compat/predicate/isError.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isError.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { getTag } from '../_internal/getTag.mjs';
-
-function isError(value) {
-    return getTag(value) === '[object Error]';
-}
-
-export { isError };
Index: de_modules/es-toolkit/dist/compat/predicate/isFinite.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFinite.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if `value` is a finite number.
- *
- * Acts as a type guard for `number` values — returning `true` only when `value`
- * is of type `number` and finite (not `Infinity`, `-Infinity`, or `NaN`).
- *
- * @param {unknown} value The value to check.
- * @returns {value is number} Returns `true` if `value` is a finite number, `false` otherwise.
- *
- * @example
- * ```typescript
- * const value1 = 100;
- * const value2 = Infinity;
- * const value3 = '100';
- *
- * console.log(isFinite(value1)); // true
- * console.log(isFinite(value2)); // false
- * console.log(isFinite(value3)); // false
- *
- * if (isFinite(value1)) {
- *   console.log(value1.toFixed(2));
- * }
- * ```
- */
-declare function isFinite(value: unknown): value is number;
-
-export { isFinite };
Index: de_modules/es-toolkit/dist/compat/predicate/isFinite.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFinite.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if `value` is a finite number.
- *
- * Acts as a type guard for `number` values — returning `true` only when `value`
- * is of type `number` and finite (not `Infinity`, `-Infinity`, or `NaN`).
- *
- * @param {unknown} value The value to check.
- * @returns {value is number} Returns `true` if `value` is a finite number, `false` otherwise.
- *
- * @example
- * ```typescript
- * const value1 = 100;
- * const value2 = Infinity;
- * const value3 = '100';
- *
- * console.log(isFinite(value1)); // true
- * console.log(isFinite(value2)); // false
- * console.log(isFinite(value3)); // false
- *
- * if (isFinite(value1)) {
- *   console.log(value1.toFixed(2));
- * }
- * ```
- */
-declare function isFinite(value: unknown): value is number;
-
-export { isFinite };
Index: de_modules/es-toolkit/dist/compat/predicate/isFinite.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFinite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isFinite(value) {
-    return Number.isFinite(value);
-}
-
-exports.isFinite = isFinite;
Index: de_modules/es-toolkit/dist/compat/predicate/isFinite.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFinite.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isFinite(value) {
-    return Number.isFinite(value);
-}
-
-export { isFinite };
Index: de_modules/es-toolkit/dist/compat/predicate/isFunction.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFunction.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a function.
- *
- * @param {any} value The value to check.
- * @returns {value is (...args: any[]) => any} Returns `true` if `value` is a function, else `false`.
- *
- * @example
- * isFunction(Array.prototype.slice); // true
- * isFunction(async function () {}); // true
- * isFunction(function* () {}); // true
- * isFunction(Proxy); // true
- * isFunction(Int8Array); // true
- */
-declare function isFunction(value: any): value is (...args: any[]) => any;
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/compat/predicate/isFunction.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFunction.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a function.
- *
- * @param {any} value The value to check.
- * @returns {value is (...args: any[]) => any} Returns `true` if `value` is a function, else `false`.
- *
- * @example
- * isFunction(Array.prototype.slice); // true
- * isFunction(async function () {}); // true
- * isFunction(function* () {}); // true
- * isFunction(Proxy); // true
- * isFunction(Int8Array); // true
- */
-declare function isFunction(value: any): value is (...args: any[]) => any;
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/compat/predicate/isFunction.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFunction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isFunction(value) {
-    return typeof value === 'function';
-}
-
-exports.isFunction = isFunction;
Index: de_modules/es-toolkit/dist/compat/predicate/isFunction.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isFunction.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isFunction(value) {
-    return typeof value === 'function';
-}
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/compat/predicate/isInteger.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isInteger.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if `value` is an integer.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {any} value - The value to check
- * @returns {boolean} `true` if `value` is integer, otherwise `false`.
- *
- * @example
- * isInteger(3); // Returns: true
- * isInteger(Infinity); // Returns: false
- * isInteger('3'); // Returns: false
- * isInteger([]); // Returns: false
- */
-declare function isInteger(value?: any): boolean;
-
-export { isInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isInteger.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if `value` is an integer.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {any} value - The value to check
- * @returns {boolean} `true` if `value` is integer, otherwise `false`.
- *
- * @example
- * isInteger(3); // Returns: true
- * isInteger(Infinity); // Returns: false
- * isInteger('3'); // Returns: false
- * isInteger([]); // Returns: false
- */
-declare function isInteger(value?: any): boolean;
-
-export { isInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isInteger.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isInteger(value) {
-    return Number.isInteger(value);
-}
-
-exports.isInteger = isInteger;
Index: de_modules/es-toolkit/dist/compat/predicate/isInteger.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isInteger.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isInteger(value) {
-    return Number.isInteger(value);
-}
-
-export { isInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isLength.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isLength.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Checks if a given value is a valid length.
- *
- * A valid length is of type `number`, is a non-negative integer, and is less than or equal to
- * JavaScript's maximum safe integer (`Number.MAX_SAFE_INTEGER`).
- * It returns `true` if the value is a valid length, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the
- * argument to a valid length (`number`).
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- *
- * @example
- * isLength(0); // true
- * isLength(42); // true
- * isLength(-1); // false
- * isLength(1.5); // false
- * isLength(Number.MAX_SAFE_INTEGER); // true
- * isLength(Number.MAX_SAFE_INTEGER + 1); // false
- */
-declare function isLength(value?: any): boolean;
-
-export { isLength };
Index: de_modules/es-toolkit/dist/compat/predicate/isLength.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isLength.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Checks if a given value is a valid length.
- *
- * A valid length is of type `number`, is a non-negative integer, and is less than or equal to
- * JavaScript's maximum safe integer (`Number.MAX_SAFE_INTEGER`).
- * It returns `true` if the value is a valid length, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the
- * argument to a valid length (`number`).
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- *
- * @example
- * isLength(0); // true
- * isLength(42); // true
- * isLength(-1); // false
- * isLength(1.5); // false
- * isLength(Number.MAX_SAFE_INTEGER); // true
- * isLength(Number.MAX_SAFE_INTEGER + 1); // false
- */
-declare function isLength(value?: any): boolean;
-
-export { isLength };
Index: de_modules/es-toolkit/dist/compat/predicate/isLength.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isLength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isLength(value) {
-    return Number.isSafeInteger(value) && value >= 0;
-}
-
-exports.isLength = isLength;
Index: de_modules/es-toolkit/dist/compat/predicate/isLength.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isLength.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isLength(value) {
-    return Number.isSafeInteger(value) && value >= 0;
-}
-
-export { isLength };
Index: de_modules/es-toolkit/dist/compat/predicate/isMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Map`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Map`.
- *
- * @param {unknown} value The value to check if it is a `Map`.
- * @returns {value is Map<any, any>} Returns `true` if `value` is a `Map`, else `false`.
- *
- * @example
- * const value1 = new Map();
- * const value2 = new Set();
- * const value3 = new WeakMap();
- *
- * console.log(isMap(value1)); // true
- * console.log(isMap(value2)); // false
- * console.log(isMap(value3)); // false
- */
-declare function isMap(value?: any): value is Map<any, any>;
-
-export { isMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Map`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Map`.
- *
- * @param {unknown} value The value to check if it is a `Map`.
- * @returns {value is Map<any, any>} Returns `true` if `value` is a `Map`, else `false`.
- *
- * @example
- * const value1 = new Map();
- * const value2 = new Set();
- * const value3 = new WeakMap();
- *
- * console.log(isMap(value1)); // true
- * console.log(isMap(value2)); // false
- * console.log(isMap(value3)); // false
- */
-declare function isMap(value?: any): value is Map<any, any>;
-
-export { isMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isMap.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isMap$1 = require('../../predicate/isMap.js');
-
-function isMap(value) {
-    return isMap$1.isMap(value);
-}
-
-exports.isMap = isMap;
Index: de_modules/es-toolkit/dist/compat/predicate/isMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isMap as isMap$1 } from '../../predicate/isMap.mjs';
-
-function isMap(value) {
-    return isMap$1(value);
-}
-
-export { isMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatch.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatch.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks if the target matches the source by comparing their structures and values.
- * This function supports deep comparison for objects, arrays, maps, and sets.
- *
- * @param {object} target - The target value to match against.
- * @param {object} source - The source value to match with.
- * @returns {boolean} - Returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * // Basic usage
- * isMatch({ a: 1, b: 2 }, { a: 1 }); // true
- *
- * @example
- * // Matching arrays
- * isMatch([1, 2, 3], [1, 2, 3]); // true
- *
- * @example
- * // Matching maps
- * const targetMap = new Map([['key1', 'value1'], ['key2', 'value2']]);
- * const sourceMap = new Map([['key1', 'value1']]);
- * isMatch(targetMap, sourceMap); // true
- *
- * @example
- * // Matching sets
- * const targetSet = new Set([1, 2, 3]);
- * const sourceSet = new Set([1, 2]);
- * isMatch(targetSet, sourceSet); // true
- */
-declare function isMatch(target: object, source: object): boolean;
-
-export { isMatch };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatch.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatch.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks if the target matches the source by comparing their structures and values.
- * This function supports deep comparison for objects, arrays, maps, and sets.
- *
- * @param {object} target - The target value to match against.
- * @param {object} source - The source value to match with.
- * @returns {boolean} - Returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * // Basic usage
- * isMatch({ a: 1, b: 2 }, { a: 1 }); // true
- *
- * @example
- * // Matching arrays
- * isMatch([1, 2, 3], [1, 2, 3]); // true
- *
- * @example
- * // Matching maps
- * const targetMap = new Map([['key1', 'value1'], ['key2', 'value2']]);
- * const sourceMap = new Map([['key1', 'value1']]);
- * isMatch(targetMap, sourceMap); // true
- *
- * @example
- * // Matching sets
- * const targetSet = new Set([1, 2, 3]);
- * const sourceSet = new Set([1, 2]);
- * isMatch(targetSet, sourceSet); // true
- */
-declare function isMatch(target: object, source: object): boolean;
-
-export { isMatch };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatch.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatch.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isMatchWith = require('./isMatchWith.js');
-
-function isMatch(target, source) {
-    return isMatchWith.isMatchWith(target, source, () => undefined);
-}
-
-exports.isMatch = isMatch;
Index: de_modules/es-toolkit/dist/compat/predicate/isMatch.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatch.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isMatchWith } from './isMatchWith.mjs';
-
-function isMatch(target, source) {
-    return isMatchWith(target, source, () => undefined);
-}
-
-export { isMatch };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatchWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatchWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { IsMatchWithCustomizer } from '../_internal/IsMatchWithCustomizer.mjs';
-
-/**
- * Performs a deep comparison between a target value and a source pattern to determine if they match,
- * using a custom comparison function for fine-grained control over the matching logic.
- *
- * @param {object} target - The value to be tested for matching
- * @param {object} source - The pattern/template to match against
- * @param {IsMatchWithCustomizer} compare - Custom comparison function for fine-grained control
- * @returns {boolean} `true` if the target matches the source pattern, `false` otherwise
- *
- * @example
- * // Basic matching with custom comparator
- * const caseInsensitiveCompare = (objVal, srcVal) => {
- *   if (typeof objVal === 'string' && typeof srcVal === 'string') {
- *     return objVal.toLowerCase() === srcVal.toLowerCase();
- *   }
- *   return undefined;
- * };
- *
- * isMatchWith(
- *   { name: 'JOHN', age: 30 },
- *   { name: 'john' },
- *   caseInsensitiveCompare
- * ); // true
- */
-declare function isMatchWith(target: object, source: object, compare: IsMatchWithCustomizer): boolean;
-
-export { isMatchWith };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatchWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatchWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { IsMatchWithCustomizer } from '../_internal/IsMatchWithCustomizer.js';
-
-/**
- * Performs a deep comparison between a target value and a source pattern to determine if they match,
- * using a custom comparison function for fine-grained control over the matching logic.
- *
- * @param {object} target - The value to be tested for matching
- * @param {object} source - The pattern/template to match against
- * @param {IsMatchWithCustomizer} compare - Custom comparison function for fine-grained control
- * @returns {boolean} `true` if the target matches the source pattern, `false` otherwise
- *
- * @example
- * // Basic matching with custom comparator
- * const caseInsensitiveCompare = (objVal, srcVal) => {
- *   if (typeof objVal === 'string' && typeof srcVal === 'string') {
- *     return objVal.toLowerCase() === srcVal.toLowerCase();
- *   }
- *   return undefined;
- * };
- *
- * isMatchWith(
- *   { name: 'JOHN', age: 30 },
- *   { name: 'john' },
- *   caseInsensitiveCompare
- * ); // true
- */
-declare function isMatchWith(target: object, source: object, compare: IsMatchWithCustomizer): boolean;
-
-export { isMatchWith };
Index: de_modules/es-toolkit/dist/compat/predicate/isMatchWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isObject = require('./isObject.js');
-const isPrimitive = require('../../predicate/isPrimitive.js');
-const isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');
-
-function isMatchWith(target, source, compare) {
-    if (typeof compare !== 'function') {
-        return isMatchWith(target, source, () => undefined);
-    }
-    return isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {
-        const isEqual = compare(objValue, srcValue, key, object, source, stack);
-        if (isEqual !== undefined) {
-            return Boolean(isEqual);
-        }
-        return isMatchWithInternal(objValue, srcValue, doesMatch, stack);
-    }, new Map());
-}
-function isMatchWithInternal(target, source, compare, stack) {
-    if (source === target) {
-        return true;
-    }
-    switch (typeof source) {
-        case 'object': {
-            return isObjectMatch(target, source, compare, stack);
-        }
-        case 'function': {
-            const sourceKeys = Object.keys(source);
-            if (sourceKeys.length > 0) {
-                return isMatchWithInternal(target, { ...source }, compare, stack);
-            }
-            return isEqualsSameValueZero.isEqualsSameValueZero(target, source);
-        }
-        default: {
-            if (!isObject.isObject(target)) {
-                return isEqualsSameValueZero.isEqualsSameValueZero(target, source);
-            }
-            if (typeof source === 'string') {
-                return source === '';
-            }
-            return true;
-        }
-    }
-}
-function isObjectMatch(target, source, compare, stack) {
-    if (source == null) {
-        return true;
-    }
-    if (Array.isArray(source)) {
-        return isArrayMatch(target, source, compare, stack);
-    }
-    if (source instanceof Map) {
-        return isMapMatch(target, source, compare, stack);
-    }
-    if (source instanceof Set) {
-        return isSetMatch(target, source, compare, stack);
-    }
-    const keys = Object.keys(source);
-    if (target == null || isPrimitive.isPrimitive(target)) {
-        return keys.length === 0;
-    }
-    if (keys.length === 0) {
-        return true;
-    }
-    if (stack?.has(source)) {
-        return stack.get(source) === target;
-    }
-    stack?.set(source, target);
-    try {
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            if (!isPrimitive.isPrimitive(target) && !(key in target)) {
-                return false;
-            }
-            if (source[key] === undefined && target[key] !== undefined) {
-                return false;
-            }
-            if (source[key] === null && target[key] !== null) {
-                return false;
-            }
-            const isEqual = compare(target[key], source[key], key, target, source, stack);
-            if (!isEqual) {
-                return false;
-            }
-        }
-        return true;
-    }
-    finally {
-        stack?.delete(source);
-    }
-}
-function isMapMatch(target, source, compare, stack) {
-    if (source.size === 0) {
-        return true;
-    }
-    if (!(target instanceof Map)) {
-        return false;
-    }
-    for (const [key, sourceValue] of source.entries()) {
-        const targetValue = target.get(key);
-        const isEqual = compare(targetValue, sourceValue, key, target, source, stack);
-        if (isEqual === false) {
-            return false;
-        }
-    }
-    return true;
-}
-function isArrayMatch(target, source, compare, stack) {
-    if (source.length === 0) {
-        return true;
-    }
-    if (!Array.isArray(target)) {
-        return false;
-    }
-    const countedIndex = new Set();
-    for (let i = 0; i < source.length; i++) {
-        const sourceItem = source[i];
-        let found = false;
-        for (let j = 0; j < target.length; j++) {
-            if (countedIndex.has(j)) {
-                continue;
-            }
-            const targetItem = target[j];
-            let matches = false;
-            const isEqual = compare(targetItem, sourceItem, i, target, source, stack);
-            if (isEqual) {
-                matches = true;
-            }
-            if (matches) {
-                countedIndex.add(j);
-                found = true;
-                break;
-            }
-        }
-        if (!found) {
-            return false;
-        }
-    }
-    return true;
-}
-function isSetMatch(target, source, compare, stack) {
-    if (source.size === 0) {
-        return true;
-    }
-    if (!(target instanceof Set)) {
-        return false;
-    }
-    return isArrayMatch([...target], [...source], compare, stack);
-}
-
-exports.isMatchWith = isMatchWith;
-exports.isSetMatch = isSetMatch;
Index: de_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,149 +1,0 @@
-import { isObject } from './isObject.mjs';
-import { isPrimitive } from '../../predicate/isPrimitive.mjs';
-import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';
-
-function isMatchWith(target, source, compare) {
-    if (typeof compare !== 'function') {
-        return isMatchWith(target, source, () => undefined);
-    }
-    return isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {
-        const isEqual = compare(objValue, srcValue, key, object, source, stack);
-        if (isEqual !== undefined) {
-            return Boolean(isEqual);
-        }
-        return isMatchWithInternal(objValue, srcValue, doesMatch, stack);
-    }, new Map());
-}
-function isMatchWithInternal(target, source, compare, stack) {
-    if (source === target) {
-        return true;
-    }
-    switch (typeof source) {
-        case 'object': {
-            return isObjectMatch(target, source, compare, stack);
-        }
-        case 'function': {
-            const sourceKeys = Object.keys(source);
-            if (sourceKeys.length > 0) {
-                return isMatchWithInternal(target, { ...source }, compare, stack);
-            }
-            return isEqualsSameValueZero(target, source);
-        }
-        default: {
-            if (!isObject(target)) {
-                return isEqualsSameValueZero(target, source);
-            }
-            if (typeof source === 'string') {
-                return source === '';
-            }
-            return true;
-        }
-    }
-}
-function isObjectMatch(target, source, compare, stack) {
-    if (source == null) {
-        return true;
-    }
-    if (Array.isArray(source)) {
-        return isArrayMatch(target, source, compare, stack);
-    }
-    if (source instanceof Map) {
-        return isMapMatch(target, source, compare, stack);
-    }
-    if (source instanceof Set) {
-        return isSetMatch(target, source, compare, stack);
-    }
-    const keys = Object.keys(source);
-    if (target == null || isPrimitive(target)) {
-        return keys.length === 0;
-    }
-    if (keys.length === 0) {
-        return true;
-    }
-    if (stack?.has(source)) {
-        return stack.get(source) === target;
-    }
-    stack?.set(source, target);
-    try {
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            if (!isPrimitive(target) && !(key in target)) {
-                return false;
-            }
-            if (source[key] === undefined && target[key] !== undefined) {
-                return false;
-            }
-            if (source[key] === null && target[key] !== null) {
-                return false;
-            }
-            const isEqual = compare(target[key], source[key], key, target, source, stack);
-            if (!isEqual) {
-                return false;
-            }
-        }
-        return true;
-    }
-    finally {
-        stack?.delete(source);
-    }
-}
-function isMapMatch(target, source, compare, stack) {
-    if (source.size === 0) {
-        return true;
-    }
-    if (!(target instanceof Map)) {
-        return false;
-    }
-    for (const [key, sourceValue] of source.entries()) {
-        const targetValue = target.get(key);
-        const isEqual = compare(targetValue, sourceValue, key, target, source, stack);
-        if (isEqual === false) {
-            return false;
-        }
-    }
-    return true;
-}
-function isArrayMatch(target, source, compare, stack) {
-    if (source.length === 0) {
-        return true;
-    }
-    if (!Array.isArray(target)) {
-        return false;
-    }
-    const countedIndex = new Set();
-    for (let i = 0; i < source.length; i++) {
-        const sourceItem = source[i];
-        let found = false;
-        for (let j = 0; j < target.length; j++) {
-            if (countedIndex.has(j)) {
-                continue;
-            }
-            const targetItem = target[j];
-            let matches = false;
-            const isEqual = compare(targetItem, sourceItem, i, target, source, stack);
-            if (isEqual) {
-                matches = true;
-            }
-            if (matches) {
-                countedIndex.add(j);
-                found = true;
-                break;
-            }
-        }
-        if (!found) {
-            return false;
-        }
-    }
-    return true;
-}
-function isSetMatch(target, source, compare, stack) {
-    if (source.size === 0) {
-        return true;
-    }
-    if (!(target instanceof Set)) {
-        return false;
-    }
-    return isArrayMatch([...target], [...source], compare, stack);
-}
-
-export { isMatchWith, isSetMatch };
Index: de_modules/es-toolkit/dist/compat/predicate/isNaN.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNaN.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if the value is NaN.
- *
- * @param {any} value - The value to check.
- * @returns {boolean} `true` if the value is NaN, `false` otherwise.
- *
- * @example
- * isNaN(NaN); // true
- * isNaN(0); // false
- * isNaN('NaN'); // false
- * isNaN(undefined); // false
- */
-declare function isNaN(value?: any): boolean;
-
-export { isNaN };
Index: de_modules/es-toolkit/dist/compat/predicate/isNaN.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNaN.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if the value is NaN.
- *
- * @param {any} value - The value to check.
- * @returns {boolean} `true` if the value is NaN, `false` otherwise.
- *
- * @example
- * isNaN(NaN); // true
- * isNaN(0); // false
- * isNaN('NaN'); // false
- * isNaN(undefined); // false
- */
-declare function isNaN(value?: any): boolean;
-
-export { isNaN };
Index: de_modules/es-toolkit/dist/compat/predicate/isNaN.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNaN.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNaN(value) {
-    return Number.isNaN(value);
-}
-
-exports.isNaN = isNaN;
Index: de_modules/es-toolkit/dist/compat/predicate/isNaN.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNaN.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNaN(value) {
-    return Number.isNaN(value);
-}
-
-export { isNaN };
Index: de_modules/es-toolkit/dist/compat/predicate/isNative.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNative.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Checks if a given value is a native function.
- *
- * This function tests whether the provided value is a native function implemented by the JavaScript engine.
- * It returns `true` if the value is a native function, and `false` otherwise.
- *
- * @param {any} value - The value to test for native function.
- * @returns {value is (...args: any[]) => any} `true` if the value is a native function, `false` otherwise.
- *
- * @example
- * const value1 = Array.prototype.push;
- * const value2 = () => {};
- * const result1 = isNative(value1); // true
- * const result2 = isNative(value2); // false
- */
-declare function isNative(value: any): value is (...args: any[]) => any;
-
-export { isNative };
Index: de_modules/es-toolkit/dist/compat/predicate/isNative.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNative.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Checks if a given value is a native function.
- *
- * This function tests whether the provided value is a native function implemented by the JavaScript engine.
- * It returns `true` if the value is a native function, and `false` otherwise.
- *
- * @param {any} value - The value to test for native function.
- * @returns {value is (...args: any[]) => any} `true` if the value is a native function, `false` otherwise.
- *
- * @example
- * const value1 = Array.prototype.push;
- * const value2 = () => {};
- * const result1 = isNative(value1); // true
- * const result2 = isNative(value2); // false
- */
-declare function isNative(value: any): value is (...args: any[]) => any;
-
-export { isNative };
Index: de_modules/es-toolkit/dist/compat/predicate/isNative.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNative.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const functionToString = Function.prototype.toString;
-const REGEXP_SYNTAX_CHARS = /[\\^$.*+?()[\]{}|]/g;
-const IS_NATIVE_FUNCTION_REGEXP = RegExp(`^${functionToString
-    .call(Object.prototype.hasOwnProperty)
-    .replace(REGEXP_SYNTAX_CHARS, '\\$&')
-    .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?')}$`);
-function isNative(value) {
-    if (typeof value !== 'function') {
-        return false;
-    }
-    if (globalThis?.['__core-js_shared__'] != null) {
-        throw new Error('Unsupported core-js use. Try https://npms.io/search?q=ponyfill.');
-    }
-    return IS_NATIVE_FUNCTION_REGEXP.test(functionToString.call(value));
-}
-
-exports.isNative = isNative;
Index: de_modules/es-toolkit/dist/compat/predicate/isNative.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNative.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-const functionToString = Function.prototype.toString;
-const REGEXP_SYNTAX_CHARS = /[\\^$.*+?()[\]{}|]/g;
-const IS_NATIVE_FUNCTION_REGEXP = RegExp(`^${functionToString
-    .call(Object.prototype.hasOwnProperty)
-    .replace(REGEXP_SYNTAX_CHARS, '\\$&')
-    .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?')}$`);
-function isNative(value) {
-    if (typeof value !== 'function') {
-        return false;
-    }
-    if (globalThis?.['__core-js_shared__'] != null) {
-        throw new Error('Unsupported core-js use. Try https://npms.io/search?q=ponyfill.');
-    }
-    return IS_NATIVE_FUNCTION_REGEXP.test(functionToString.call(value));
-}
-
-export { isNative };
Index: de_modules/es-toolkit/dist/compat/predicate/isNil.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNil.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a given value is null or undefined.
- *
- * This function tests whether the provided value is either `null` or `undefined`.
- * It returns `true` if the value is `null` or `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null` or `undefined`.
- *
- * @param {any} x - The value to test for null or undefined.
- * @returns {x is null | undefined} `true` if the value is null or undefined, `false` otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- * const result1 = isNil(value1); // true
- * const result2 = isNil(value2); // true
- * const result3 = isNil(value3); // false
- */
-declare function isNil(x: any): x is null | undefined;
-
-export { isNil };
Index: de_modules/es-toolkit/dist/compat/predicate/isNil.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a given value is null or undefined.
- *
- * This function tests whether the provided value is either `null` or `undefined`.
- * It returns `true` if the value is `null` or `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null` or `undefined`.
- *
- * @param {any} x - The value to test for null or undefined.
- * @returns {x is null | undefined} `true` if the value is null or undefined, `false` otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- * const result1 = isNil(value1); // true
- * const result2 = isNil(value2); // true
- * const result3 = isNil(value3); // false
- */
-declare function isNil(x: any): x is null | undefined;
-
-export { isNil };
Index: de_modules/es-toolkit/dist/compat/predicate/isNil.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNil(x) {
-    return x == null;
-}
-
-exports.isNil = isNil;
Index: de_modules/es-toolkit/dist/compat/predicate/isNil.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNil.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNil(x) {
-    return x == null;
-}
-
-export { isNil };
Index: de_modules/es-toolkit/dist/compat/predicate/isNull.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNull.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Checks if `value` is `null`.
- *
- * @param {any} value - The value to check.
- * @returns {value is null} Returns `true` if `value` is `null`, else `false`.
- *
- * @example
- * isNull(null); // true
- * isNull(undefined); // false
- * isNull(0); // false
- */
-declare function isNull(value: any): value is null;
-
-export { isNull };
Index: de_modules/es-toolkit/dist/compat/predicate/isNull.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Checks if `value` is `null`.
- *
- * @param {any} value - The value to check.
- * @returns {value is null} Returns `true` if `value` is `null`, else `false`.
- *
- * @example
- * isNull(null); // true
- * isNull(undefined); // false
- * isNull(0); // false
- */
-declare function isNull(value: any): value is null;
-
-export { isNull };
Index: de_modules/es-toolkit/dist/compat/predicate/isNull.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNull(value) {
-    return value === null;
-}
-
-exports.isNull = isNull;
Index: de_modules/es-toolkit/dist/compat/predicate/isNull.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNull.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNull(value) {
-    return value === null;
-}
-
-export { isNull };
Index: de_modules/es-toolkit/dist/compat/predicate/isNumber.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNumber.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is a number.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {any} value The value to check if it is a number.
- * @returns {value is number} Returns `true` if `value` is a number, else `false`.
- *
- * @example
- * const value1 = 123;
- * const value2 = 'abc';
- * const value3 = true;
- *
- * console.log(isNumber(value1)); // true
- * console.log(isNumber(value2)); // false
- * console.log(isNumber(value3)); // false
- */
-declare function isNumber(value?: any): value is number;
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/compat/predicate/isNumber.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is a number.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {any} value The value to check if it is a number.
- * @returns {value is number} Returns `true` if `value` is a number, else `false`.
- *
- * @example
- * const value1 = 123;
- * const value2 = 'abc';
- * const value3 = true;
- *
- * console.log(isNumber(value1)); // true
- * console.log(isNumber(value2)); // false
- * console.log(isNumber(value3)); // false
- */
-declare function isNumber(value?: any): value is number;
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/compat/predicate/isNumber.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNumber(value) {
-    return typeof value === 'number' || value instanceof Number;
-}
-
-exports.isNumber = isNumber;
Index: de_modules/es-toolkit/dist/compat/predicate/isNumber.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isNumber.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNumber(value) {
-    return typeof value === 'number' || value instanceof Number;
-}
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/compat/predicate/isObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the given value is an object. An object is a value that is
- * not a primitive type (string, number, boolean, symbol, null, or undefined).
- *
- * This function tests whether the provided value is an object or not.
- * It returns `true` if the value is an object, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an object value.
- *
- * @param {any} value - The value to check if it is an object.
- * @returns {value is object} `true` if the value is an object, `false` otherwise.
- *
- * @example
- * const value1 = {};
- * const value2 = [1, 2, 3];
- * const value3 = () => {};
- * const value4 = null;
- *
- * console.log(isObject(value1)); // true
- * console.log(isObject(value2)); // true
- * console.log(isObject(value3)); // true
- * console.log(isObject(value4)); // false
- */
-declare function isObject(value?: any): value is object;
-
-export { isObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the given value is an object. An object is a value that is
- * not a primitive type (string, number, boolean, symbol, null, or undefined).
- *
- * This function tests whether the provided value is an object or not.
- * It returns `true` if the value is an object, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an object value.
- *
- * @param {any} value - The value to check if it is an object.
- * @returns {value is object} `true` if the value is an object, `false` otherwise.
- *
- * @example
- * const value1 = {};
- * const value2 = [1, 2, 3];
- * const value3 = () => {};
- * const value4 = null;
- *
- * console.log(isObject(value1)); // true
- * console.log(isObject(value2)); // true
- * console.log(isObject(value3)); // true
- * console.log(isObject(value4)); // false
- */
-declare function isObject(value?: any): value is object;
-
-export { isObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isObject(value) {
-    return value !== null && (typeof value === 'object' || typeof value === 'function');
-}
-
-exports.isObject = isObject;
Index: de_modules/es-toolkit/dist/compat/predicate/isObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isObject(value) {
-    return value !== null && (typeof value === 'object' || typeof value === 'function');
-}
-
-export { isObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isObjectLike.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObjectLike.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the given value is object-like.
- *
- * A value is object-like if its type is object and it is not null.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an object-like value.
- *
- * @param {any} value - The value to test if it is an object-like.
- * @returns {boolean} `true` if the value is an object-like, `false` otherwise.
- *
- * @example
- * const value1 = { a: 1 };
- * const value2 = [1, 2, 3];
- * const value3 = 'abc';
- * const value4 = () => {};
- * const value5 = null;
- *
- * console.log(isObjectLike(value1)); // true
- * console.log(isObjectLike(value2)); // true
- * console.log(isObjectLike(value3)); // false
- * console.log(isObjectLike(value4)); // false
- * console.log(isObjectLike(value5)); // false
- */
-declare function isObjectLike(value?: any): boolean;
-
-export { isObjectLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isObjectLike.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObjectLike.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Checks if the given value is object-like.
- *
- * A value is object-like if its type is object and it is not null.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an object-like value.
- *
- * @param {any} value - The value to test if it is an object-like.
- * @returns {boolean} `true` if the value is an object-like, `false` otherwise.
- *
- * @example
- * const value1 = { a: 1 };
- * const value2 = [1, 2, 3];
- * const value3 = 'abc';
- * const value4 = () => {};
- * const value5 = null;
- *
- * console.log(isObjectLike(value1)); // true
- * console.log(isObjectLike(value2)); // true
- * console.log(isObjectLike(value3)); // false
- * console.log(isObjectLike(value4)); // false
- * console.log(isObjectLike(value5)); // false
- */
-declare function isObjectLike(value?: any): boolean;
-
-export { isObjectLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isObjectLike.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isObjectLike(value) {
-    return typeof value === 'object' && value !== null;
-}
-
-exports.isObjectLike = isObjectLike;
Index: de_modules/es-toolkit/dist/compat/predicate/isObjectLike.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isObjectLike.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isObjectLike(value) {
-    return typeof value === 'object' && value !== null;
-}
-
-export { isObjectLike };
Index: de_modules/es-toolkit/dist/compat/predicate/isPlainObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isPlainObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if a given value is a plain object.
- *
- * A plain object is an object created by the `{}` literal, `new Object()`, or
- * `Object.create(null)`.
- *
- * This function also handles objects with custom
- * `Symbol.toStringTag` properties.
- *
- * `Symbol.toStringTag` is a built-in symbol that a constructor can use to customize the
- * default string description of objects.
- *
- * @param {any} [object] - The value to check.
- * @returns {boolean} - True if the value is a plain object, otherwise false.
- *
- * @example
- * console.log(isPlainObject({})); // true
- * console.log(isPlainObject([])); // false
- * console.log(isPlainObject(null)); // false
- * console.log(isPlainObject(Object.create(null))); // true
- * console.log(isPlainObject(new Map())); // false
- */
-declare function isPlainObject(object?: any): boolean;
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isPlainObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isPlainObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if a given value is a plain object.
- *
- * A plain object is an object created by the `{}` literal, `new Object()`, or
- * `Object.create(null)`.
- *
- * This function also handles objects with custom
- * `Symbol.toStringTag` properties.
- *
- * `Symbol.toStringTag` is a built-in symbol that a constructor can use to customize the
- * default string description of objects.
- *
- * @param {any} [object] - The value to check.
- * @returns {boolean} - True if the value is a plain object, otherwise false.
- *
- * @example
- * console.log(isPlainObject({})); // true
- * console.log(isPlainObject([])); // false
- * console.log(isPlainObject(null)); // false
- * console.log(isPlainObject(Object.create(null))); // true
- * console.log(isPlainObject(new Map())); // false
- */
-declare function isPlainObject(object?: any): boolean;
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isPlainObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isPlainObject(object) {
-    if (typeof object !== 'object') {
-        return false;
-    }
-    if (object == null) {
-        return false;
-    }
-    if (Object.getPrototypeOf(object) === null) {
-        return true;
-    }
-    if (Object.prototype.toString.call(object) !== '[object Object]') {
-        const tag = object[Symbol.toStringTag];
-        if (tag == null) {
-            return false;
-        }
-        const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;
-        if (isTagReadonly) {
-            return false;
-        }
-        return object.toString() === `[object ${tag}]`;
-    }
-    let proto = object;
-    while (Object.getPrototypeOf(proto) !== null) {
-        proto = Object.getPrototypeOf(proto);
-    }
-    return Object.getPrototypeOf(object) === proto;
-}
-
-exports.isPlainObject = isPlainObject;
Index: de_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-function isPlainObject(object) {
-    if (typeof object !== 'object') {
-        return false;
-    }
-    if (object == null) {
-        return false;
-    }
-    if (Object.getPrototypeOf(object) === null) {
-        return true;
-    }
-    if (Object.prototype.toString.call(object) !== '[object Object]') {
-        const tag = object[Symbol.toStringTag];
-        if (tag == null) {
-            return false;
-        }
-        const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;
-        if (isTagReadonly) {
-            return false;
-        }
-        return object.toString() === `[object ${tag}]`;
-    }
-    let proto = object;
-    while (Object.getPrototypeOf(proto) !== null) {
-        proto = Object.getPrototypeOf(proto);
-    }
-    return Object.getPrototypeOf(object) === proto;
-}
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/compat/predicate/isRegExp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isRegExp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a RegExp.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a RegExp, `false` otherwise.
- *
- * @example
- * const value1 = /abc/;
- * const value2 = '/abc/';
- *
- * console.log(isRegExp(value1)); // true
- * console.log(isRegExp(value2)); // false
- */
-declare function isRegExp(value?: any): value is RegExp;
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/compat/predicate/isRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a RegExp.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a RegExp, `false` otherwise.
- *
- * @example
- * const value1 = /abc/;
- * const value2 = '/abc/';
- *
- * console.log(isRegExp(value1)); // true
- * console.log(isRegExp(value2)); // false
- */
-declare function isRegExp(value?: any): value is RegExp;
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/compat/predicate/isRegExp.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isRegExp$1 = require('../../predicate/isRegExp.js');
-
-function isRegExp(value) {
-    return isRegExp$1.isRegExp(value);
-}
-
-exports.isRegExp = isRegExp;
Index: de_modules/es-toolkit/dist/compat/predicate/isRegExp.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isRegExp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isRegExp as isRegExp$1 } from '../../predicate/isRegExp.mjs';
-
-function isRegExp(value) {
-    return isRegExp$1(value);
-}
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/compat/predicate/isSafeInteger.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSafeInteger.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if `value` is a safe integer (between -(2^53 – 1) and (2^53 – 1), inclusive).
- *
- * A safe integer is an integer that can be precisely represented as a `number` in JavaScript,
- * without any other integer being rounded to it.
- *
- * This function also serves as a type predicate in TypeScript,
- * narrowing the type of the argument to `number`.
- *
- * @param {unknown} value - The value to check
- * @returns {value is number} `true` if `value` is an integer and between the safe values, otherwise `false`
- *
- * @example
- * isSafeInteger(3); // Returns: true
- * isSafeInteger(Number.MIN_SAFE_INTEGER - 1); // Returns: false
- * isSafeInteger(1n); // Returns: false
- * isSafeInteger('1'); // Returns: false
- */
-declare function isSafeInteger(value: unknown): value is number;
-
-export { isSafeInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isSafeInteger.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSafeInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if `value` is a safe integer (between -(2^53 – 1) and (2^53 – 1), inclusive).
- *
- * A safe integer is an integer that can be precisely represented as a `number` in JavaScript,
- * without any other integer being rounded to it.
- *
- * This function also serves as a type predicate in TypeScript,
- * narrowing the type of the argument to `number`.
- *
- * @param {unknown} value - The value to check
- * @returns {value is number} `true` if `value` is an integer and between the safe values, otherwise `false`
- *
- * @example
- * isSafeInteger(3); // Returns: true
- * isSafeInteger(Number.MIN_SAFE_INTEGER - 1); // Returns: false
- * isSafeInteger(1n); // Returns: false
- * isSafeInteger('1'); // Returns: false
- */
-declare function isSafeInteger(value: unknown): value is number;
-
-export { isSafeInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isSafeInteger.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSafeInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isSafeInteger(value) {
-    return Number.isSafeInteger(value);
-}
-
-exports.isSafeInteger = isSafeInteger;
Index: de_modules/es-toolkit/dist/compat/predicate/isSafeInteger.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSafeInteger.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isSafeInteger(value) {
-    return Number.isSafeInteger(value);
-}
-
-export { isSafeInteger };
Index: de_modules/es-toolkit/dist/compat/predicate/isSet.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSet.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Set`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Set`.
- *
- * @param {unknown} value The value to check if it is a `Set`.
- * @returns {value is Set<any>} Returns `true` if `value` is a `Set`, else `false`.
- *
- * @example
- * const value1 = new Set();
- * const value2 = new Map();
- * const value3 = new WeakSet();
- *
- * console.log(isSet(value1)); // true
- * console.log(isSet(value2)); // false
- * console.log(isSet(value3)); // false
- */
-declare function isSet(value?: any): value is Set<any>;
-
-export { isSet };
Index: de_modules/es-toolkit/dist/compat/predicate/isSet.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Set`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Set`.
- *
- * @param {unknown} value The value to check if it is a `Set`.
- * @returns {value is Set<any>} Returns `true` if `value` is a `Set`, else `false`.
- *
- * @example
- * const value1 = new Set();
- * const value2 = new Map();
- * const value3 = new WeakSet();
- *
- * console.log(isSet(value1)); // true
- * console.log(isSet(value2)); // false
- * console.log(isSet(value3)); // false
- */
-declare function isSet(value?: any): value is Set<any>;
-
-export { isSet };
Index: de_modules/es-toolkit/dist/compat/predicate/isSet.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isSet$1 = require('../../predicate/isSet.js');
-
-function isSet(value) {
-    return isSet$1.isSet(value);
-}
-
-exports.isSet = isSet;
Index: de_modules/es-toolkit/dist/compat/predicate/isSet.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSet.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isSet as isSet$1 } from '../../predicate/isSet.mjs';
-
-function isSet(value) {
-    return isSet$1(value);
-}
-
-export { isSet };
Index: de_modules/es-toolkit/dist/compat/predicate/isString.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isString.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is string.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check if it is string.
- * @returns {value is string} Returns `true` if `value` is a string, else `false`.
- *
- * @example
- * const value1 = 'abc';
- * const value2 = 123;
- * const value3 = true;
- *
- * console.log(isString(value1)); // true
- * console.log(isString(value2)); // false
- * console.log(isString(value3)); // false
- */
-declare function isString(value?: any): value is string;
-
-export { isString };
Index: de_modules/es-toolkit/dist/compat/predicate/isString.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is string.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check if it is string.
- * @returns {value is string} Returns `true` if `value` is a string, else `false`.
- *
- * @example
- * const value1 = 'abc';
- * const value2 = 123;
- * const value3 = true;
- *
- * console.log(isString(value1)); // true
- * console.log(isString(value2)); // false
- * console.log(isString(value3)); // false
- */
-declare function isString(value?: any): value is string;
-
-export { isString };
Index: de_modules/es-toolkit/dist/compat/predicate/isString.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isString(value) {
-    return typeof value === 'string' || value instanceof String;
-}
-
-exports.isString = isString;
Index: de_modules/es-toolkit/dist/compat/predicate/isString.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isString.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isString(value) {
-    return typeof value === 'string' || value instanceof String;
-}
-
-export { isString };
Index: de_modules/es-toolkit/dist/compat/predicate/isSymbol.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSymbol.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Check whether a value is a symbol.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `symbol`.
- *
- * @param {unknown} value The value to check.
- * @returns {value is symbol} Returns `true` if `value` is a symbol, else `false`.
- * @example
- * isSymbol(Symbol.iterator);
- * // => true
- *
- * isSymbol('abc');
- * // => false
- */
-declare function isSymbol(value: any): value is symbol;
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/compat/predicate/isSymbol.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSymbol.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Check whether a value is a symbol.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `symbol`.
- *
- * @param {unknown} value The value to check.
- * @returns {value is symbol} Returns `true` if `value` is a symbol, else `false`.
- * @example
- * isSymbol(Symbol.iterator);
- * // => true
- *
- * isSymbol('abc');
- * // => false
- */
-declare function isSymbol(value: any): value is symbol;
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/compat/predicate/isSymbol.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSymbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isSymbol(value) {
-    return typeof value === 'symbol' || value instanceof Symbol;
-}
-
-exports.isSymbol = isSymbol;
Index: de_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isSymbol(value) {
-    return typeof value === 'symbol' || value instanceof Symbol;
-}
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/compat/predicate/isTypedArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isTypedArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Checks if a value is a TypedArray.
- * @param {any} x The value to check.
- * @returns {boolean} Returns true if `x` is a TypedArray, false otherwise.
- *
- * @example
- * const arr = new Uint8Array([1, 2, 3]);
- * isTypedArray(arr); // true
- *
- * const regularArray = [1, 2, 3];
- * isTypedArray(regularArray); // false
- *
- * const buffer = new ArrayBuffer(16);
- * isTypedArray(buffer); // false
- */
-declare function isTypedArray(x: any): boolean;
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isTypedArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isTypedArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Checks if a value is a TypedArray.
- * @param {any} x The value to check.
- * @returns {boolean} Returns true if `x` is a TypedArray, false otherwise.
- *
- * @example
- * const arr = new Uint8Array([1, 2, 3]);
- * isTypedArray(arr); // true
- *
- * const regularArray = [1, 2, 3];
- * isTypedArray(regularArray); // false
- *
- * const buffer = new ArrayBuffer(16);
- * isTypedArray(buffer); // false
- */
-declare function isTypedArray(x: any): boolean;
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isTypedArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isTypedArray$1 = require('../../predicate/isTypedArray.js');
-
-function isTypedArray(x) {
-    return isTypedArray$1.isTypedArray(x);
-}
-
-exports.isTypedArray = isTypedArray;
Index: de_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';
-
-function isTypedArray(x) {
-    return isTypedArray$1(x);
-}
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/compat/predicate/isUndefined.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isUndefined.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is undefined.
- *
- * This function tests whether the provided value is strictly equal to `undefined`.
- * It returns `true` if the value is `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `undefined`.
- *
- * @param {any} x - The value to test if it is undefined.
- * @returns {x is undefined} true if the value is undefined, false otherwise.
- *
- * @example
- * const value1 = undefined;
- * const value2 = null;
- * const value3 = 42;
- *
- * console.log(isUndefined(value1)); // true
- * console.log(isUndefined(value2)); // false
- * console.log(isUndefined(value3)); // false
- */
-declare function isUndefined(x: any): x is undefined;
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/compat/predicate/isUndefined.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isUndefined.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is undefined.
- *
- * This function tests whether the provided value is strictly equal to `undefined`.
- * It returns `true` if the value is `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `undefined`.
- *
- * @param {any} x - The value to test if it is undefined.
- * @returns {x is undefined} true if the value is undefined, false otherwise.
- *
- * @example
- * const value1 = undefined;
- * const value2 = null;
- * const value3 = 42;
- *
- * console.log(isUndefined(value1)); // true
- * console.log(isUndefined(value2)); // false
- * console.log(isUndefined(value3)); // false
- */
-declare function isUndefined(x: any): x is undefined;
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/compat/predicate/isUndefined.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isUndefined.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isUndefined$1 = require('../../predicate/isUndefined.js');
-
-function isUndefined(x) {
-    return isUndefined$1.isUndefined(x);
-}
-
-exports.isUndefined = isUndefined;
Index: de_modules/es-toolkit/dist/compat/predicate/isUndefined.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isUndefined.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isUndefined as isUndefined$1 } from '../../predicate/isUndefined.mjs';
-
-function isUndefined(x) {
-    return isUndefined$1(x);
-}
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakMap`.
- *
- * This function tests whether the provided value is an instance of `WeakMap`.
- * It returns `true` if the value is a `WeakMap`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakMap`.
- *
- * @param {unknown} value - The value to test if it is a `WeakMap`.
- * @returns {value is WeakMap<WeakKey, any>} true if the value is a `WeakMap`, false otherwise.
- *
- * @example
- * const value1 = new WeakMap();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakMap(value1)); // true
- * console.log(isWeakMap(value2)); // false
- * console.log(isWeakMap(value3)); // false
- */
-declare function isWeakMap(value?: any): value is WeakMap<object, any>;
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakMap`.
- *
- * This function tests whether the provided value is an instance of `WeakMap`.
- * It returns `true` if the value is a `WeakMap`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakMap`.
- *
- * @param {unknown} value - The value to test if it is a `WeakMap`.
- * @returns {value is WeakMap<WeakKey, any>} true if the value is a `WeakMap`, false otherwise.
- *
- * @example
- * const value1 = new WeakMap();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakMap(value1)); // true
- * console.log(isWeakMap(value2)); // false
- * console.log(isWeakMap(value3)); // false
- */
-declare function isWeakMap(value?: any): value is WeakMap<object, any>;
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakMap.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isWeakMap$1 = require('../../predicate/isWeakMap.js');
-
-function isWeakMap(value) {
-    return isWeakMap$1.isWeakMap(value);
-}
-
-exports.isWeakMap = isWeakMap;
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isWeakMap as isWeakMap$1 } from '../../predicate/isWeakMap.mjs';
-
-function isWeakMap(value) {
-    return isWeakMap$1(value);
-}
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakSet.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakSet.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakSet`.
- *
- * This function tests whether the provided value is an instance of `WeakSet`.
- * It returns `true` if the value is a `WeakSet`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakSet`.
- *
- * @param {unknown} value - The value to test if it is a `WeakSet`.
- * @returns {value is WeakSet<WeakKey>} true if the value is a `WeakSet`, false otherwise.
- *
- * @example
- * const value1 = new WeakSet();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakSet(value1)); // true
- * console.log(isWeakSet(value2)); // false
- * console.log(isWeakSet(value3)); // false
- */
-declare function isWeakSet(value?: any): value is WeakSet<object>;
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakSet.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakSet`.
- *
- * This function tests whether the provided value is an instance of `WeakSet`.
- * It returns `true` if the value is a `WeakSet`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakSet`.
- *
- * @param {unknown} value - The value to test if it is a `WeakSet`.
- * @returns {value is WeakSet<WeakKey>} true if the value is a `WeakSet`, false otherwise.
- *
- * @example
- * const value1 = new WeakSet();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakSet(value1)); // true
- * console.log(isWeakSet(value2)); // false
- * console.log(isWeakSet(value3)); // false
- */
-declare function isWeakSet(value?: any): value is WeakSet<object>;
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakSet.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isWeakSet$1 = require('../../predicate/isWeakSet.js');
-
-function isWeakSet(value) {
-    return isWeakSet$1.isWeakSet(value);
-}
-
-exports.isWeakSet = isWeakSet;
Index: de_modules/es-toolkit/dist/compat/predicate/isWeakSet.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/isWeakSet.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isWeakSet as isWeakSet$1 } from '../../predicate/isWeakSet.mjs';
-
-function isWeakSet(value) {
-    return isWeakSet$1(value);
-}
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/compat/predicate/matches.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matches.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Creates a function that performs a deep comparison between a given target and the source object.
- *
- * @template T
- * @param {T} source - The source object to create the matcher from.
- * @returns {(value: any) => boolean} Returns a function that takes a target object and returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * const matcher = matches({ a: 1, b: 2 });
- * matcher({ a: 1, b: 2, c: 3 }); // true
- * matcher({ a: 1, c: 3 }); // false
- */
-declare function matches<T>(source: T): (value: any) => boolean;
-/**
- * Creates a function that performs a deep comparison between a given target and the source object.
- *
- * @template T
- * @template V
- * @param {T} source - The source object to create the matcher from.
- * @returns {(value: V) => boolean} Returns a function that takes a target object and returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * const matcher = matches<{ a: number }, { a: number; b?: number }>({ a: 1 });
- * matcher({ a: 1, b: 2 }); // true
- * matcher({ a: 2 }); // false
- */
-declare function matches<T, V>(source: T): (value: V) => boolean;
-
-export { matches };
Index: de_modules/es-toolkit/dist/compat/predicate/matches.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matches.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Creates a function that performs a deep comparison between a given target and the source object.
- *
- * @template T
- * @param {T} source - The source object to create the matcher from.
- * @returns {(value: any) => boolean} Returns a function that takes a target object and returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * const matcher = matches({ a: 1, b: 2 });
- * matcher({ a: 1, b: 2, c: 3 }); // true
- * matcher({ a: 1, c: 3 }); // false
- */
-declare function matches<T>(source: T): (value: any) => boolean;
-/**
- * Creates a function that performs a deep comparison between a given target and the source object.
- *
- * @template T
- * @template V
- * @param {T} source - The source object to create the matcher from.
- * @returns {(value: V) => boolean} Returns a function that takes a target object and returns `true` if the target matches the source, otherwise `false`.
- *
- * @example
- * const matcher = matches<{ a: number }, { a: number; b?: number }>({ a: 1 });
- * matcher({ a: 1, b: 2 }); // true
- * matcher({ a: 2 }); // false
- */
-declare function matches<T, V>(source: T): (value: V) => boolean;
-
-export { matches };
Index: de_modules/es-toolkit/dist/compat/predicate/matches.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matches.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isMatch = require('./isMatch.js');
-const cloneDeep = require('../../object/cloneDeep.js');
-
-function matches(source) {
-    source = cloneDeep.cloneDeep(source);
-    return (target) => {
-        return isMatch.isMatch(target, source);
-    };
-}
-
-exports.matches = matches;
Index: de_modules/es-toolkit/dist/compat/predicate/matches.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matches.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { isMatch } from './isMatch.mjs';
-import { cloneDeep } from '../../object/cloneDeep.mjs';
-
-function matches(source) {
-    source = cloneDeep(source);
-    return (target) => {
-        return isMatch(target, source);
-    };
-}
-
-export { matches };
Index: de_modules/es-toolkit/dist/compat/predicate/matchesProperty.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matchesProperty.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.mjs';
-
-/**
- * Creates a function that checks if a given target object matches a specific property value.
- *
- * @template T
- * @template V
- * @param {PropertyPath} path - The property path to check within the target object.
- * @param {T} srcValue - The value to compare against the property value in the target object.
- * @returns {(value: any) => boolean} Returns a function that takes a target object and returns
- *     `true` if the property value at the given path in the target object matches the provided value,
- *     otherwise returns `false`.
- *
- * @example
- * const checkName = matchesProperty('name', 'Alice');
- * console.log(checkName({ name: 'Alice' })); // true
- * console.log(checkName({ name: 'Bob' })); // false
- */
-declare function matchesProperty<T>(path: PropertyPath, srcValue: T): (value: any) => boolean;
-/**
- * Creates a function that checks if a given target object matches a specific property value.
- *
- * @template T
- * @template V
- * @param {PropertyPath} path - The property path to check within the target object.
- * @param {T} srcValue - The value to compare against the property value in the target object.
- * @returns {(value: V) => boolean} Returns a function that takes a target object and returns
- *     `true` if the property value at the given path in the target object matches the provided value,
- *     otherwise returns `false`.
- *
- * @example
- * const checkNested = matchesProperty(['address', 'city'], 'New York');
- * console.log(checkNested({ address: { city: 'New York' } })); // true
- * console.log(checkNested({ address: { city: 'Los Angeles' } })); // false
- */
-declare function matchesProperty<T, V>(path: PropertyPath, srcValue: T): (value: V) => boolean;
-
-export { matchesProperty };
Index: de_modules/es-toolkit/dist/compat/predicate/matchesProperty.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matchesProperty.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { PropertyPath } from '../_internal/PropertyPath.js';
-
-/**
- * Creates a function that checks if a given target object matches a specific property value.
- *
- * @template T
- * @template V
- * @param {PropertyPath} path - The property path to check within the target object.
- * @param {T} srcValue - The value to compare against the property value in the target object.
- * @returns {(value: any) => boolean} Returns a function that takes a target object and returns
- *     `true` if the property value at the given path in the target object matches the provided value,
- *     otherwise returns `false`.
- *
- * @example
- * const checkName = matchesProperty('name', 'Alice');
- * console.log(checkName({ name: 'Alice' })); // true
- * console.log(checkName({ name: 'Bob' })); // false
- */
-declare function matchesProperty<T>(path: PropertyPath, srcValue: T): (value: any) => boolean;
-/**
- * Creates a function that checks if a given target object matches a specific property value.
- *
- * @template T
- * @template V
- * @param {PropertyPath} path - The property path to check within the target object.
- * @param {T} srcValue - The value to compare against the property value in the target object.
- * @returns {(value: V) => boolean} Returns a function that takes a target object and returns
- *     `true` if the property value at the given path in the target object matches the provided value,
- *     otherwise returns `false`.
- *
- * @example
- * const checkNested = matchesProperty(['address', 'city'], 'New York');
- * console.log(checkNested({ address: { city: 'New York' } })); // true
- * console.log(checkNested({ address: { city: 'Los Angeles' } })); // false
- */
-declare function matchesProperty<T, V>(path: PropertyPath, srcValue: T): (value: V) => boolean;
-
-export { matchesProperty };
Index: de_modules/es-toolkit/dist/compat/predicate/matchesProperty.js
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isMatch = require('./isMatch.js');
-const toKey = require('../_internal/toKey.js');
-const cloneDeep = require('../object/cloneDeep.js');
-const get = require('../object/get.js');
-const has = require('../object/has.js');
-
-function matchesProperty(property, source) {
-    switch (typeof property) {
-        case 'object': {
-            if (Object.is(property?.valueOf(), -0)) {
-                property = '-0';
-            }
-            break;
-        }
-        case 'number': {
-            property = toKey.toKey(property);
-            break;
-        }
-    }
-    source = cloneDeep.cloneDeep(source);
-    return function (target) {
-        const result = get.get(target, property);
-        if (result === undefined) {
-            return has.has(target, property);
-        }
-        if (source === undefined) {
-            return result === undefined;
-        }
-        return isMatch.isMatch(result, source);
-    };
-}
-
-exports.matchesProperty = matchesProperty;
Index: de_modules/es-toolkit/dist/compat/predicate/matchesProperty.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/predicate/matchesProperty.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { isMatch } from './isMatch.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { cloneDeep } from '../object/cloneDeep.mjs';
-import { get } from '../object/get.mjs';
-import { has } from '../object/has.mjs';
-
-function matchesProperty(property, source) {
-    switch (typeof property) {
-        case 'object': {
-            if (Object.is(property?.valueOf(), -0)) {
-                property = '-0';
-            }
-            break;
-        }
-        case 'number': {
-            property = toKey(property);
-            break;
-        }
-    }
-    source = cloneDeep(source);
-    return function (target) {
-        const result = get(target, property);
-        if (result === undefined) {
-            return has(target, property);
-        }
-        if (source === undefined) {
-            return result === undefined;
-        }
-        return isMatch(result, source);
-    };
-}
-
-export { matchesProperty };
Index: de_modules/es-toolkit/dist/compat/string/camelCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/camelCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Converts a string to camel case.
- *
- * Camel case is the naming convention in which the first word is written in lowercase and
- * each subsequent word begins with a capital letter, concatenated without any separator characters.
- *
- * @param {string | object} str - The string that is to be changed to camel case.
- * @returns {string} - The converted string to camel case.
- *
- * @example
- * const convertedStr1 = camelCase('camelCase') // returns 'camelCase'
- * const convertedStr2 = camelCase('some whitespace') // returns 'someWhitespace'
- * const convertedStr3 = camelCase('hyphen-text') // returns 'hyphenText'
- * const convertedStr4 = camelCase('HTTPRequest') // returns 'httpRequest'
- */
-declare function camelCase(str?: string): string;
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/compat/string/camelCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/camelCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Converts a string to camel case.
- *
- * Camel case is the naming convention in which the first word is written in lowercase and
- * each subsequent word begins with a capital letter, concatenated without any separator characters.
- *
- * @param {string | object} str - The string that is to be changed to camel case.
- * @returns {string} - The converted string to camel case.
- *
- * @example
- * const convertedStr1 = camelCase('camelCase') // returns 'camelCase'
- * const convertedStr2 = camelCase('some whitespace') // returns 'someWhitespace'
- * const convertedStr3 = camelCase('hyphen-text') // returns 'hyphenText'
- * const convertedStr4 = camelCase('HTTPRequest') // returns 'httpRequest'
- */
-declare function camelCase(str?: string): string;
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/compat/string/camelCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/camelCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const camelCase$1 = require('../../string/camelCase.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function camelCase(str) {
-    return camelCase$1.camelCase(normalizeForCase.normalizeForCase(deburr.deburr(str)));
-}
-
-exports.camelCase = camelCase;
Index: de_modules/es-toolkit/dist/compat/string/camelCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/camelCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { camelCase as camelCase$1 } from '../../string/camelCase.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function camelCase(str) {
-    return camelCase$1(normalizeForCase(deburr(str)));
-}
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/compat/string/capitalize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/capitalize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case and the remaining to lower case.
- *
- * @param {string} string - The string to capitalize.
- * @returns {string} - The capitalized string.
- *
- * @example
- * const convertedStr1 = capitalize('fred') // returns 'Fred'
- * const convertedStr2 = capitalize('FRED') // returns 'Fred'
- * const convertedStr3 = capitalize('') // returns ''
- */
-declare function capitalize<T extends string>(str?: T): string extends T ? string : Capitalize<Lowercase<T>>;
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/compat/string/capitalize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/capitalize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case and the remaining to lower case.
- *
- * @param {string} string - The string to capitalize.
- * @returns {string} - The capitalized string.
- *
- * @example
- * const convertedStr1 = capitalize('fred') // returns 'Fred'
- * const convertedStr2 = capitalize('FRED') // returns 'Fred'
- * const convertedStr3 = capitalize('') // returns ''
- */
-declare function capitalize<T extends string>(str?: T): string extends T ? string : Capitalize<Lowercase<T>>;
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/compat/string/capitalize.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/capitalize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const capitalize$1 = require('../../string/capitalize.js');
-const toString = require('../util/toString.js');
-
-function capitalize(str) {
-    return capitalize$1.capitalize(toString.toString(str));
-}
-
-exports.capitalize = capitalize;
Index: de_modules/es-toolkit/dist/compat/string/capitalize.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/capitalize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { capitalize as capitalize$1 } from '../../string/capitalize.mjs';
-import { toString } from '../util/toString.mjs';
-
-function capitalize(str) {
-    return capitalize$1(toString(str));
-}
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/compat/string/deburr.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/deburr.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Converts a string by replacing special characters and diacritical marks with their ASCII equivalents.
- * For example, "Crème brûlée" becomes "Creme brulee".
- *
- * @param {string} str - The input string to be deburred.
- * @returns {string} - The deburred string with special characters replaced by their ASCII equivalents.
- *
- * @example
- * // Basic usage:
- * deburr('Æthelred') // returns 'Aethelred'
- *
- * @example
- * // Handling diacritical marks:
- * deburr('München') // returns 'Munchen'
- *
- * @example
- * // Special characters:
- * deburr('Crème brûlée') // returns 'Creme brulee'
- */
-declare function deburr(str?: string): string;
-
-export { deburr };
Index: de_modules/es-toolkit/dist/compat/string/deburr.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/deburr.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Converts a string by replacing special characters and diacritical marks with their ASCII equivalents.
- * For example, "Crème brûlée" becomes "Creme brulee".
- *
- * @param {string} str - The input string to be deburred.
- * @returns {string} - The deburred string with special characters replaced by their ASCII equivalents.
- *
- * @example
- * // Basic usage:
- * deburr('Æthelred') // returns 'Aethelred'
- *
- * @example
- * // Handling diacritical marks:
- * deburr('München') // returns 'Munchen'
- *
- * @example
- * // Special characters:
- * deburr('Crème brûlée') // returns 'Creme brulee'
- */
-declare function deburr(str?: string): string;
-
-export { deburr };
Index: de_modules/es-toolkit/dist/compat/string/deburr.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/deburr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr$1 = require('../../string/deburr.js');
-const toString = require('../util/toString.js');
-
-function deburr(str) {
-    return deburr$1.deburr(toString.toString(str));
-}
-
-exports.deburr = deburr;
Index: de_modules/es-toolkit/dist/compat/string/deburr.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/deburr.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { deburr as deburr$1 } from '../../string/deburr.mjs';
-import { toString } from '../util/toString.mjs';
-
-function deburr(str) {
-    return deburr$1(toString(str));
-}
-
-export { deburr };
Index: de_modules/es-toolkit/dist/compat/string/endsWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/endsWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a string contains another string at the end of the string.
- *
- * Checks if one string endsWith another string. Optional position parameter to offset searching before a certain index.
- *
- * @param {string} str - The string that might contain the target string.
- * @param {string} target - The string to search for.
- * @param {number} position - An optional position from the start to search up to this index
- * @returns {boolean} - True if the str string ends with the target string.
- *
- * @example
- * const isPrefix = endsWith('fooBar', 'foo') // returns true
- * const isPrefix = endsWith('fooBar', 'bar') // returns false
- * const isPrefix = endsWith('fooBar', 'abc') // returns false
- * const isPrefix = endsWith('fooBar', 'foo', 3) // returns true
- * const isPrefix = endsWith('fooBar', 'abc', 5) // returns false
- */
-declare function endsWith(str?: string, target?: string, position?: number): boolean;
-
-export { endsWith };
Index: de_modules/es-toolkit/dist/compat/string/endsWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/endsWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a string contains another string at the end of the string.
- *
- * Checks if one string endsWith another string. Optional position parameter to offset searching before a certain index.
- *
- * @param {string} str - The string that might contain the target string.
- * @param {string} target - The string to search for.
- * @param {number} position - An optional position from the start to search up to this index
- * @returns {boolean} - True if the str string ends with the target string.
- *
- * @example
- * const isPrefix = endsWith('fooBar', 'foo') // returns true
- * const isPrefix = endsWith('fooBar', 'bar') // returns false
- * const isPrefix = endsWith('fooBar', 'abc') // returns false
- * const isPrefix = endsWith('fooBar', 'foo', 3) // returns true
- * const isPrefix = endsWith('fooBar', 'abc', 5) // returns false
- */
-declare function endsWith(str?: string, target?: string, position?: number): boolean;
-
-export { endsWith };
Index: de_modules/es-toolkit/dist/compat/string/endsWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/endsWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function endsWith(str, target, position) {
-    if (str == null || target == null) {
-        return false;
-    }
-    if (position == null) {
-        position = str.length;
-    }
-    return str.endsWith(target, position);
-}
-
-exports.endsWith = endsWith;
Index: de_modules/es-toolkit/dist/compat/string/endsWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/endsWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function endsWith(str, target, position) {
-    if (str == null || target == null) {
-        return false;
-    }
-    if (position == null) {
-        position = str.length;
-    }
-    return str.endsWith(target, position);
-}
-
-export { endsWith };
Index: de_modules/es-toolkit/dist/compat/string/escape.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escape.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the characters "&", "<", ">", '"', and "'" in `str` to their corresponding HTML entities.
- * For example, "<" becomes "&lt;".
- *
- * @param {string} str  The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * escape('This is a <div> element.'); // returns 'This is a &lt;div&gt; element.'
- * escape('This is a "quote"'); // returns 'This is a &quot;quote&quot;'
- * escape("This is a 'quote'"); // returns 'This is a &#39;quote&#39;'
- * escape('This is a & symbol'); // returns 'This is a &amp; symbol'
- */
-declare function escape(string?: string): string;
-
-export { escape };
Index: de_modules/es-toolkit/dist/compat/string/escape.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the characters "&", "<", ">", '"', and "'" in `str` to their corresponding HTML entities.
- * For example, "<" becomes "&lt;".
- *
- * @param {string} str  The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * escape('This is a <div> element.'); // returns 'This is a &lt;div&gt; element.'
- * escape('This is a "quote"'); // returns 'This is a &quot;quote&quot;'
- * escape("This is a 'quote'"); // returns 'This is a &#39;quote&#39;'
- * escape('This is a & symbol'); // returns 'This is a &amp; symbol'
- */
-declare function escape(string?: string): string;
-
-export { escape };
Index: de_modules/es-toolkit/dist/compat/string/escape.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const escape$1 = require('../../string/escape.js');
-const toString = require('../util/toString.js');
-
-function escape(string) {
-    return escape$1.escape(toString.toString(string));
-}
-
-exports.escape = escape;
Index: de_modules/es-toolkit/dist/compat/string/escape.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escape.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { escape as escape$1 } from '../../string/escape.mjs';
-import { toString } from '../util/toString.mjs';
-
-function escape(string) {
-    return escape$1(toString(string));
-}
-
-export { escape };
Index: de_modules/es-toolkit/dist/compat/string/escapeRegExp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escapeRegExp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Escapes the RegExp special characters "^", "$", "\\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", and "|" in `str`.
- *
- * @param {string} str The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * import { escapeRegExp } from 'es-toolkit/string';
- *
- * escapeRegExp('[es-toolkit](https://es-toolkit.dev/)'); // returns '\[es-toolkit\]\(https://es-toolkit\.dev/\)'
- */
-declare function escapeRegExp(str?: string): string;
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/compat/string/escapeRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escapeRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Escapes the RegExp special characters "^", "$", "\\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", and "|" in `str`.
- *
- * @param {string} str The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * import { escapeRegExp } from 'es-toolkit/string';
- *
- * escapeRegExp('[es-toolkit](https://es-toolkit.dev/)'); // returns '\[es-toolkit\]\(https://es-toolkit\.dev/\)'
- */
-declare function escapeRegExp(str?: string): string;
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/compat/string/escapeRegExp.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escapeRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const escapeRegExp$1 = require('../../string/escapeRegExp.js');
-const toString = require('../util/toString.js');
-
-function escapeRegExp(str) {
-    return escapeRegExp$1.escapeRegExp(toString.toString(str));
-}
-
-exports.escapeRegExp = escapeRegExp;
Index: de_modules/es-toolkit/dist/compat/string/escapeRegExp.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/escapeRegExp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { escapeRegExp as escapeRegExp$1 } from '../../string/escapeRegExp.mjs';
-import { toString } from '../util/toString.mjs';
-
-function escapeRegExp(str) {
-    return escapeRegExp$1(toString(str));
-}
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/compat/string/kebabCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/kebabCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to kebab case.
- *
- * Kebab case is the naming convention in which each word is written in lowercase and separated by a dash (-) character.
- *
- * @param {string | object} str - The string that is to be changed to kebab case.
- * @returns {string} - The converted string to kebab case.
- *
- * @example
- * const convertedStr1 = kebabCase('camelCase') // returns 'camel-case'
- * const convertedStr2 = kebabCase('some whitespace') // returns 'some-whitespace'
- * const convertedStr3 = kebabCase('hyphen-text') // returns 'hyphen-text'
- * const convertedStr4 = kebabCase('HTTPRequest') // returns 'http-request'
- */
-declare function kebabCase(str?: string): string;
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/compat/string/kebabCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/kebabCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to kebab case.
- *
- * Kebab case is the naming convention in which each word is written in lowercase and separated by a dash (-) character.
- *
- * @param {string | object} str - The string that is to be changed to kebab case.
- * @returns {string} - The converted string to kebab case.
- *
- * @example
- * const convertedStr1 = kebabCase('camelCase') // returns 'camel-case'
- * const convertedStr2 = kebabCase('some whitespace') // returns 'some-whitespace'
- * const convertedStr3 = kebabCase('hyphen-text') // returns 'hyphen-text'
- * const convertedStr4 = kebabCase('HTTPRequest') // returns 'http-request'
- */
-declare function kebabCase(str?: string): string;
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/compat/string/kebabCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/kebabCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const kebabCase$1 = require('../../string/kebabCase.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function kebabCase(str) {
-    return kebabCase$1.kebabCase(normalizeForCase.normalizeForCase(deburr.deburr(str)));
-}
-
-exports.kebabCase = kebabCase;
Index: de_modules/es-toolkit/dist/compat/string/kebabCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/kebabCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { kebabCase as kebabCase$1 } from '../../string/kebabCase.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function kebabCase(str) {
-    return kebabCase$1(normalizeForCase(deburr(str)));
-}
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/compat/string/lowerCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to lower case.
- *
- * Lower case is the naming convention in which each word is written in lowercase and separated by an space ( ) character.
- *
- * @param {string | object} str - The string that is to be changed to lower case.
- * @returns {string} - The converted string to lower case.
- *
- * @example
- * const convertedStr1 = lowerCase('camelCase') // returns 'camel case'
- * const convertedStr2 = lowerCase('some whitespace') // returns 'some whitespace'
- * const convertedStr3 = lowerCase('hyphen-text') // returns 'hyphen text'
- * const convertedStr4 = lowerCase('HTTPRequest') // returns 'http request'
- */
-declare function lowerCase(str?: string): string;
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/compat/string/lowerCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to lower case.
- *
- * Lower case is the naming convention in which each word is written in lowercase and separated by an space ( ) character.
- *
- * @param {string | object} str - The string that is to be changed to lower case.
- * @returns {string} - The converted string to lower case.
- *
- * @example
- * const convertedStr1 = lowerCase('camelCase') // returns 'camel case'
- * const convertedStr2 = lowerCase('some whitespace') // returns 'some whitespace'
- * const convertedStr3 = lowerCase('hyphen-text') // returns 'hyphen text'
- * const convertedStr4 = lowerCase('HTTPRequest') // returns 'http request'
- */
-declare function lowerCase(str?: string): string;
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/compat/string/lowerCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const lowerCase$1 = require('../../string/lowerCase.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function lowerCase(str) {
-    return lowerCase$1.lowerCase(normalizeForCase.normalizeForCase(deburr.deburr(str)));
-}
-
-exports.lowerCase = lowerCase;
Index: de_modules/es-toolkit/dist/compat/string/lowerCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { lowerCase as lowerCase$1 } from '../../string/lowerCase.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function lowerCase(str) {
-    return lowerCase$1(normalizeForCase(deburr(str)));
-}
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/compat/string/lowerFirst.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerFirst.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to lower case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = lowerCase('fred') // returns 'fred'
- * const convertedStr2 = lowerCase('Fred') // returns 'fred'
- * const convertedStr3 = lowerCase('FRED') // returns 'fRED'
- */
-declare function lowerFirst<T extends string = string>(str?: T): Uncapitalize<T>;
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/compat/string/lowerFirst.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to lower case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = lowerCase('fred') // returns 'fred'
- * const convertedStr2 = lowerCase('Fred') // returns 'fred'
- * const convertedStr3 = lowerCase('FRED') // returns 'fRED'
- */
-declare function lowerFirst<T extends string = string>(str?: T): Uncapitalize<T>;
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/compat/string/lowerFirst.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const lowerFirst$1 = require('../../string/lowerFirst.js');
-const toString = require('../util/toString.js');
-
-function lowerFirst(str) {
-    return lowerFirst$1.lowerFirst(toString.toString(str));
-}
-
-exports.lowerFirst = lowerFirst;
Index: de_modules/es-toolkit/dist/compat/string/lowerFirst.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/lowerFirst.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { lowerFirst as lowerFirst$1 } from '../../string/lowerFirst.mjs';
-import { toString } from '../util/toString.mjs';
-
-function lowerFirst(str) {
-    return lowerFirst$1(toString(str));
-}
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/compat/string/pad.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/pad.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length.
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string, the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = pad('abc', 8);         // result will be '  abc   '
- * const result2 = pad('abc', 8, '_-');   // result will be '_-abc_-_'
- * const result3 = pad('abc', 3);         // result will be 'abc'
- * const result4 = pad('abc', 2);         // result will be 'abc'
- *
- */
-declare function pad(str?: string, length?: number, chars?: string): string;
-
-export { pad };
Index: de_modules/es-toolkit/dist/compat/string/pad.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/pad.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length.
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string, the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = pad('abc', 8);         // result will be '  abc   '
- * const result2 = pad('abc', 8, '_-');   // result will be '_-abc_-_'
- * const result3 = pad('abc', 3);         // result will be 'abc'
- * const result4 = pad('abc', 2);         // result will be 'abc'
- *
- */
-declare function pad(str?: string, length?: number, chars?: string): string;
-
-export { pad };
Index: de_modules/es-toolkit/dist/compat/string/pad.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/pad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const pad$1 = require('../../string/pad.js');
-const toString = require('../util/toString.js');
-
-function pad(str, length, chars) {
-    return pad$1.pad(toString.toString(str), length, chars);
-}
-
-exports.pad = pad;
Index: de_modules/es-toolkit/dist/compat/string/pad.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/pad.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { pad as pad$1 } from '../../string/pad.mjs';
-import { toString } from '../util/toString.mjs';
-
-function pad(str, length, chars) {
-    return pad$1(toString(str), length, chars);
-}
-
-export { pad };
Index: de_modules/es-toolkit/dist/compat/string/padEnd.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padEnd.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Pads the end of a string with a given character until it reaches the specified length.
- *
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = padEnd('abc', 6);          // result will be 'abc   '
- * const result2 = padEnd('abc', 6, '_-');    // result will be 'abc_-_'
- * const result3 = padEnd('abc', 3);          // result will be 'abc'
- * const result4 = padEnd('abc', 2);          // result will be 'abc'
- */
-declare function padEnd(str?: string, length?: number, chars?: string): string;
-
-export { padEnd };
Index: de_modules/es-toolkit/dist/compat/string/padEnd.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padEnd.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Pads the end of a string with a given character until it reaches the specified length.
- *
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = padEnd('abc', 6);          // result will be 'abc   '
- * const result2 = padEnd('abc', 6, '_-');    // result will be 'abc_-_'
- * const result3 = padEnd('abc', 3);          // result will be 'abc'
- * const result4 = padEnd('abc', 2);          // result will be 'abc'
- */
-declare function padEnd(str?: string, length?: number, chars?: string): string;
-
-export { padEnd };
Index: de_modules/es-toolkit/dist/compat/string/padEnd.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padEnd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function padEnd(str, length = 0, chars = ' ') {
-    return toString.toString(str).padEnd(length, chars);
-}
-
-exports.padEnd = padEnd;
Index: de_modules/es-toolkit/dist/compat/string/padEnd.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padEnd.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function padEnd(str, length = 0, chars = ' ') {
-    return toString(str).padEnd(length, chars);
-}
-
-export { padEnd };
Index: de_modules/es-toolkit/dist/compat/string/padStart.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padStart.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Pads the start of a string with a given character until it reaches the specified length.
- *
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = padStart('abc', 6);          // result will be '   abc'
- * const result2 = padStart('abc', 6, '_-');    // result will be '_-_abc'
- * const result3 = padStart('abc', 3);          // result will be 'abc'
- * const result4 = padStart('abc', 2);          // result will be 'abc'
- */
-declare function padStart(str?: string, length?: number, chars?: string): string;
-
-export { padStart };
Index: de_modules/es-toolkit/dist/compat/string/padStart.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padStart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Pads the start of a string with a given character until it reaches the specified length.
- *
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = padStart('abc', 6);          // result will be '   abc'
- * const result2 = padStart('abc', 6, '_-');    // result will be '_-_abc'
- * const result3 = padStart('abc', 3);          // result will be 'abc'
- * const result4 = padStart('abc', 2);          // result will be 'abc'
- */
-declare function padStart(str?: string, length?: number, chars?: string): string;
-
-export { padStart };
Index: de_modules/es-toolkit/dist/compat/string/padStart.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padStart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function padStart(str, length = 0, chars = ' ') {
-    return toString.toString(str).padStart(length, chars);
-}
-
-exports.padStart = padStart;
Index: de_modules/es-toolkit/dist/compat/string/padStart.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/padStart.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function padStart(str, length = 0, chars = ' ') {
-    return toString(str).padStart(length, chars);
-}
-
-export { padStart };
Index: de_modules/es-toolkit/dist/compat/string/repeat.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/repeat.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Repeats the given string n times.
- *
- * If n is less than 1, an empty string is returned, or if the string is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to repeat.
- * @param {number} n - The number of times to repeat the string.
- * @returns {string} - The repeated string, or an empty string if n is less than 1.
- *
- * @example
- * repeat('abc', 0); // ''
- * repeat('abc', 2); // 'abcabc'
- */
-declare function repeat(str?: string, n?: number): string;
-
-export { repeat };
Index: de_modules/es-toolkit/dist/compat/string/repeat.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/repeat.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Repeats the given string n times.
- *
- * If n is less than 1, an empty string is returned, or if the string is an empty string,
- * the original string is returned unchanged.
- *
- * @param {string} str - The string to repeat.
- * @param {number} n - The number of times to repeat the string.
- * @returns {string} - The repeated string, or an empty string if n is less than 1.
- *
- * @example
- * repeat('abc', 0); // ''
- * repeat('abc', 2); // 'abcabc'
- */
-declare function repeat(str?: string, n?: number): string;
-
-export { repeat };
Index: de_modules/es-toolkit/dist/compat/string/repeat.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/repeat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isIterateeCall = require('../_internal/isIterateeCall.js');
-const MAX_SAFE_INTEGER = require('../_internal/MAX_SAFE_INTEGER.js');
-const toInteger = require('../util/toInteger.js');
-const toString = require('../util/toString.js');
-
-function repeat(str, n, guard) {
-    if (guard ? isIterateeCall.isIterateeCall(str, n, guard) : n === undefined) {
-        n = 1;
-    }
-    else {
-        n = toInteger.toInteger(n);
-    }
-    if (n < 1 || n > MAX_SAFE_INTEGER.MAX_SAFE_INTEGER) {
-        return '';
-    }
-    return toString.toString(str).repeat(n);
-}
-
-exports.repeat = repeat;
Index: de_modules/es-toolkit/dist/compat/string/repeat.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/repeat.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
-import { MAX_SAFE_INTEGER } from '../_internal/MAX_SAFE_INTEGER.mjs';
-import { toInteger } from '../util/toInteger.mjs';
-import { toString } from '../util/toString.mjs';
-
-function repeat(str, n, guard) {
-    if (guard ? isIterateeCall(str, n, guard) : n === undefined) {
-        n = 1;
-    }
-    else {
-        n = toInteger(n);
-    }
-    if (n < 1 || n > MAX_SAFE_INTEGER) {
-        return '';
-    }
-    return toString(str).repeat(n);
-}
-
-export { repeat };
Index: de_modules/es-toolkit/dist/compat/string/replace.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/replace.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type ReplaceFunction = (match: string, ...args: any[]) => string;
-declare function replace(string: string, pattern: RegExp | string, replacement: ReplaceFunction | string): string;
-declare function replace(pattern: RegExp | string, replacement: ReplaceFunction | string): string;
-
-export { replace };
Index: de_modules/es-toolkit/dist/compat/string/replace.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/replace.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-type ReplaceFunction = (match: string, ...args: any[]) => string;
-declare function replace(string: string, pattern: RegExp | string, replacement: ReplaceFunction | string): string;
-declare function replace(pattern: RegExp | string, replacement: ReplaceFunction | string): string;
-
-export { replace };
Index: de_modules/es-toolkit/dist/compat/string/replace.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/replace.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function replace(target, pattern, replacement) {
-    if (arguments.length < 3) {
-        return toString.toString(target);
-    }
-    return toString.toString(target).replace(pattern, replacement);
-}
-
-exports.replace = replace;
Index: de_modules/es-toolkit/dist/compat/string/replace.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/replace.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function replace(target, pattern, replacement) {
-    if (arguments.length < 3) {
-        return toString(target);
-    }
-    return toString(target).replace(pattern, replacement);
-}
-
-export { replace };
Index: de_modules/es-toolkit/dist/compat/string/snakeCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/snakeCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to snake case.
- *
- * Snake case is the naming convention in which each word is written in lowercase and separated by an underscore (_) character.
- *
- * @param {string | object} str - The string that is to be changed to snake case.
- * @returns {string} - The converted string to snake case.
- *
- * @example
- * const convertedStr1 = snakeCase('camelCase') // returns 'camel_case'
- * const convertedStr2 = snakeCase('some whitespace') // returns 'some_whitespace'
- * const convertedStr3 = snakeCase('hyphen-text') // returns 'hyphen_text'
- * const convertedStr4 = snakeCase('HTTPRequest') // returns 'http_request'
- */
-declare function snakeCase(str?: string): string;
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/compat/string/snakeCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/snakeCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to snake case.
- *
- * Snake case is the naming convention in which each word is written in lowercase and separated by an underscore (_) character.
- *
- * @param {string | object} str - The string that is to be changed to snake case.
- * @returns {string} - The converted string to snake case.
- *
- * @example
- * const convertedStr1 = snakeCase('camelCase') // returns 'camel_case'
- * const convertedStr2 = snakeCase('some whitespace') // returns 'some_whitespace'
- * const convertedStr3 = snakeCase('hyphen-text') // returns 'hyphen_text'
- * const convertedStr4 = snakeCase('HTTPRequest') // returns 'http_request'
- */
-declare function snakeCase(str?: string): string;
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/compat/string/snakeCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/snakeCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const snakeCase$1 = require('../../string/snakeCase.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function snakeCase(str) {
-    return snakeCase$1.snakeCase(normalizeForCase.normalizeForCase(deburr.deburr(str)));
-}
-
-exports.snakeCase = snakeCase;
Index: de_modules/es-toolkit/dist/compat/string/snakeCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/snakeCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { snakeCase as snakeCase$1 } from '../../string/snakeCase.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function snakeCase(str) {
-    return snakeCase$1(normalizeForCase(deburr(str)));
-}
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/compat/string/split.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/split.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Splits the input string by the specified `separator`
- * and returns a new array containing the split segments.
- *
- * @param {string | null | undefined} [string=''] The string to split.
- * @param {RegExp|string} [separator] The separator pattern to split by.
- * @param {number} [limit] The length to truncate results to.
- * @returns {Array} Returns the string segments.
- *
- * @example
- * split('a-b-c', '-');
- * // => ['a', 'b', 'c']
- *
- * split('a-b-c', '-', 2);
- * // => ['a', 'b']
- */
-declare function split(string: string | null | undefined, separator?: RegExp | string, limit?: number): string[];
-/**
- * Splits the input string by the specified `separator`
- * and returns a new array containing the split segments.
- *
- * @param {string | null | undefined} [string=''] The string to split.
- * @param {RegExp|string} [separator] The separator pattern to split by.
- * @param {number} [limit] The length to truncate results to.
- * @returns {Array} Returns the string segments.
- *
- * @example
- * split('a-b-c', '-');
- * // => ['a', 'b', 'c']
- *
- * split('a-b-c', '-', 2);
- * // => ['a', 'b']
- */
-declare function split(string: string | null | undefined, index: string | number, guard: object): string[];
-
-export { split };
Index: de_modules/es-toolkit/dist/compat/string/split.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/split.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/**
- * Splits the input string by the specified `separator`
- * and returns a new array containing the split segments.
- *
- * @param {string | null | undefined} [string=''] The string to split.
- * @param {RegExp|string} [separator] The separator pattern to split by.
- * @param {number} [limit] The length to truncate results to.
- * @returns {Array} Returns the string segments.
- *
- * @example
- * split('a-b-c', '-');
- * // => ['a', 'b', 'c']
- *
- * split('a-b-c', '-', 2);
- * // => ['a', 'b']
- */
-declare function split(string: string | null | undefined, separator?: RegExp | string, limit?: number): string[];
-/**
- * Splits the input string by the specified `separator`
- * and returns a new array containing the split segments.
- *
- * @param {string | null | undefined} [string=''] The string to split.
- * @param {RegExp|string} [separator] The separator pattern to split by.
- * @param {number} [limit] The length to truncate results to.
- * @returns {Array} Returns the string segments.
- *
- * @example
- * split('a-b-c', '-');
- * // => ['a', 'b', 'c']
- *
- * split('a-b-c', '-', 2);
- * // => ['a', 'b']
- */
-declare function split(string: string | null | undefined, index: string | number, guard: object): string[];
-
-export { split };
Index: de_modules/es-toolkit/dist/compat/string/split.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/split.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function split(string, separator, limit) {
-    return toString.toString(string).split(separator, limit);
-}
-
-exports.split = split;
Index: de_modules/es-toolkit/dist/compat/string/split.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/split.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function split(string, separator, limit) {
-    return toString(string).split(separator, limit);
-}
-
-export { split };
Index: de_modules/es-toolkit/dist/compat/string/startCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the first character of each word in a string to uppercase and the remaining characters to lowercase.
- *
- * Start case is the naming convention in which each word is written with an initial capital letter.
- * @param {string | object} str - The string to convert.
- * @returns {string} The converted string.
- *
- * @example
- * const result1 = startCase('hello world');  // result will be 'Hello World'
- * const result2 = startCase('HELLO WORLD');  // result will be 'HELLO WORLD'
- * const result3 = startCase('hello-world');  // result will be 'Hello World'
- * const result4 = startCase('hello_world');  // result will be 'Hello World'
- */
-declare function startCase(str?: string): string;
-
-export { startCase };
Index: de_modules/es-toolkit/dist/compat/string/startCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the first character of each word in a string to uppercase and the remaining characters to lowercase.
- *
- * Start case is the naming convention in which each word is written with an initial capital letter.
- * @param {string | object} str - The string to convert.
- * @returns {string} The converted string.
- *
- * @example
- * const result1 = startCase('hello world');  // result will be 'Hello World'
- * const result2 = startCase('HELLO WORLD');  // result will be 'HELLO WORLD'
- * const result3 = startCase('hello-world');  // result will be 'Hello World'
- * const result4 = startCase('hello_world');  // result will be 'Hello World'
- */
-declare function startCase(str?: string): string;
-
-export { startCase };
Index: de_modules/es-toolkit/dist/compat/string/startCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const words = require('../../string/words.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function startCase(str) {
-    const words$1 = words.words(normalizeForCase.normalizeForCase(deburr.deburr(str)).trim());
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        const word = words$1[i];
-        if (result) {
-            result += ' ';
-        }
-        if (word === word.toUpperCase()) {
-            result += word;
-        }
-        else {
-            result += word[0].toUpperCase() + word.slice(1).toLowerCase();
-        }
-    }
-    return result;
-}
-
-exports.startCase = startCase;
Index: de_modules/es-toolkit/dist/compat/string/startCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { words } from '../../string/words.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function startCase(str) {
-    const words$1 = words(normalizeForCase(deburr(str)).trim());
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        const word = words$1[i];
-        if (result) {
-            result += ' ';
-        }
-        if (word === word.toUpperCase()) {
-            result += word;
-        }
-        else {
-            result += word[0].toUpperCase() + word.slice(1).toLowerCase();
-        }
-    }
-    return result;
-}
-
-export { startCase };
Index: de_modules/es-toolkit/dist/compat/string/startsWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startsWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a string contains another string at the beginning of the string.
- *
- * Checks if one string startsWith another string. Optional position parameter to start searching from a certain index.
- *
- * @param {string} str - The string that might contain the target string.
- * @param {string} target - The string to search for.
- * @param {number} position - An optional offset to start searching in the str string
- * @returns {boolean} - True if the str string starts with the target string.
- *
- * @example
- * const isPrefix = startsWith('fooBar', 'foo') // returns true
- * const isPrefix = startsWith('fooBar', 'bar') // returns false
- * const isPrefix = startsWith('fooBar', 'abc') // returns false
- * const isPrefix = startsWith('fooBar', 'Bar', 2) // returns true
- * const isPrefix = startsWith('fooBar', 'Bar', 5) // returns false
- */
-declare function startsWith(str?: string, target?: string, position?: number): boolean;
-
-export { startsWith };
Index: de_modules/es-toolkit/dist/compat/string/startsWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startsWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a string contains another string at the beginning of the string.
- *
- * Checks if one string startsWith another string. Optional position parameter to start searching from a certain index.
- *
- * @param {string} str - The string that might contain the target string.
- * @param {string} target - The string to search for.
- * @param {number} position - An optional offset to start searching in the str string
- * @returns {boolean} - True if the str string starts with the target string.
- *
- * @example
- * const isPrefix = startsWith('fooBar', 'foo') // returns true
- * const isPrefix = startsWith('fooBar', 'bar') // returns false
- * const isPrefix = startsWith('fooBar', 'abc') // returns false
- * const isPrefix = startsWith('fooBar', 'Bar', 2) // returns true
- * const isPrefix = startsWith('fooBar', 'Bar', 5) // returns false
- */
-declare function startsWith(str?: string, target?: string, position?: number): boolean;
-
-export { startsWith };
Index: de_modules/es-toolkit/dist/compat/string/startsWith.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startsWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function startsWith(str, target, position) {
-    if (str == null || target == null) {
-        return false;
-    }
-    if (position == null) {
-        position = 0;
-    }
-    return str.startsWith(target, position);
-}
-
-exports.startsWith = startsWith;
Index: de_modules/es-toolkit/dist/compat/string/startsWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/startsWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function startsWith(str, target, position) {
-    if (str == null || target == null) {
-        return false;
-    }
-    if (position == null) {
-        position = 0;
-    }
-    return str.startsWith(target, position);
-}
-
-export { startsWith };
Index: de_modules/es-toolkit/dist/compat/string/template.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/template.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { escape } from './escape.mjs';
-
-declare const templateSettings: {
-    escape: RegExp;
-    evaluate: RegExp;
-    interpolate: RegExp;
-    variable: string;
-    imports: {
-        _: {
-            escape: typeof escape;
-            template: typeof template;
-        };
-    };
-};
-interface TemplateOptions {
-    escape?: RegExp | null | undefined;
-    evaluate?: RegExp | null | undefined;
-    interpolate?: RegExp | null | undefined;
-    variable?: string | undefined;
-    imports?: Record<string, any> | undefined;
-    sourceURL?: string;
-}
-interface TemplateExecutor {
-    (data?: object): string;
-    source: string;
-}
-declare function template(string?: string, options?: TemplateOptions): TemplateExecutor;
-
-export { template, templateSettings };
Index: de_modules/es-toolkit/dist/compat/string/template.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/template.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { escape } from './escape.js';
-
-declare const templateSettings: {
-    escape: RegExp;
-    evaluate: RegExp;
-    interpolate: RegExp;
-    variable: string;
-    imports: {
-        _: {
-            escape: typeof escape;
-            template: typeof template;
-        };
-    };
-};
-interface TemplateOptions {
-    escape?: RegExp | null | undefined;
-    evaluate?: RegExp | null | undefined;
-    interpolate?: RegExp | null | undefined;
-    variable?: string | undefined;
-    imports?: Record<string, any> | undefined;
-    sourceURL?: string;
-}
-interface TemplateExecutor {
-    (data?: object): string;
-    source: string;
-}
-declare function template(string?: string, options?: TemplateOptions): TemplateExecutor;
-
-export { template, templateSettings };
Index: de_modules/es-toolkit/dist/compat/string/template.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/template.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const escape = require('./escape.js');
-const attempt = require('../function/attempt.js');
-const defaults = require('../object/defaults.js');
-const toString = require('../util/toString.js');
-
-const esTemplateRegExp = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
-const unEscapedRegExp = /['\n\r\u2028\u2029\\]/g;
-const noMatchExp = /($^)/;
-const escapeMap = new Map([
-    ['\\', '\\'],
-    ["'", "'"],
-    ['\n', 'n'],
-    ['\r', 'r'],
-    ['\u2028', 'u2028'],
-    ['\u2029', 'u2029'],
-]);
-function escapeString(match) {
-    return `\\${escapeMap.get(match)}`;
-}
-const defaultInterpolateRegExp = /<%=([\s\S]+?)%>/g;
-const templateSettings = {
-    escape: /<%-([\s\S]+?)%>/g,
-    evaluate: /<%([\s\S]+?)%>/g,
-    interpolate: defaultInterpolateRegExp,
-    variable: '',
-    imports: {
-        _: {
-            escape: escape.escape,
-            template,
-        },
-    },
-};
-function template(string, options, guard) {
-    string = toString.toString(string);
-    if (guard) {
-        options = templateSettings;
-    }
-    options = defaults.defaults({ ...options }, templateSettings);
-    const delimitersRegExp = new RegExp([
-        options.escape?.source ?? noMatchExp.source,
-        options.interpolate?.source ?? noMatchExp.source,
-        options.interpolate === defaultInterpolateRegExp ? esTemplateRegExp.source : noMatchExp.source,
-        options.evaluate?.source ?? noMatchExp.source,
-        '$',
-    ].join('|'), 'g');
-    let lastIndex = 0;
-    let isEvaluated = false;
-    let source = `__p += ''`;
-    for (const match of string.matchAll(delimitersRegExp)) {
-        const [fullMatch, escapeValue, interpolateValue, esTemplateValue, evaluateValue] = match;
-        const { index } = match;
-        source += ` + '${string.slice(lastIndex, index).replace(unEscapedRegExp, escapeString)}'`;
-        if (escapeValue) {
-            source += ` + _.escape(${escapeValue})`;
-        }
-        if (interpolateValue) {
-            source += ` + ((${interpolateValue}) == null ? '' : ${interpolateValue})`;
-        }
-        else if (esTemplateValue) {
-            source += ` + ((${esTemplateValue}) == null ? '' : ${esTemplateValue})`;
-        }
-        if (evaluateValue) {
-            source += `;\n${evaluateValue};\n __p += ''`;
-            isEvaluated = true;
-        }
-        lastIndex = index + fullMatch.length;
-    }
-    const imports = defaults.defaults({ ...options.imports }, templateSettings.imports);
-    const importsKeys = Object.keys(imports);
-    const importValues = Object.values(imports);
-    const sourceURL = `//# sourceURL=${options.sourceURL ? String(options.sourceURL).replace(/[\r\n]/g, ' ') : `es-toolkit.templateSource[${Date.now()}]`}\n`;
-    const compiledFunction = `function(${options.variable || 'obj'}) {
-    let __p = '';
-    ${options.variable ? '' : 'if (obj == null) { obj = {}; }'}
-    ${isEvaluated ? `function print() { __p += Array.prototype.join.call(arguments, ''); }` : ''}
-    ${options.variable ? source : `with(obj) {\n${source}\n}`}
-    return __p;
-  }`;
-    const result = attempt.attempt(() => new Function(...importsKeys, `${sourceURL}return ${compiledFunction}`)(...importValues));
-    result.source = compiledFunction;
-    if (result instanceof Error) {
-        throw result;
-    }
-    return result;
-}
-
-exports.template = template;
-exports.templateSettings = templateSettings;
Index: de_modules/es-toolkit/dist/compat/string/template.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/template.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-import { escape } from './escape.mjs';
-import { attempt } from '../function/attempt.mjs';
-import { defaults } from '../object/defaults.mjs';
-import { toString } from '../util/toString.mjs';
-
-const esTemplateRegExp = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
-const unEscapedRegExp = /['\n\r\u2028\u2029\\]/g;
-const noMatchExp = /($^)/;
-const escapeMap = new Map([
-    ['\\', '\\'],
-    ["'", "'"],
-    ['\n', 'n'],
-    ['\r', 'r'],
-    ['\u2028', 'u2028'],
-    ['\u2029', 'u2029'],
-]);
-function escapeString(match) {
-    return `\\${escapeMap.get(match)}`;
-}
-const defaultInterpolateRegExp = /<%=([\s\S]+?)%>/g;
-const templateSettings = {
-    escape: /<%-([\s\S]+?)%>/g,
-    evaluate: /<%([\s\S]+?)%>/g,
-    interpolate: defaultInterpolateRegExp,
-    variable: '',
-    imports: {
-        _: {
-            escape,
-            template,
-        },
-    },
-};
-function template(string, options, guard) {
-    string = toString(string);
-    if (guard) {
-        options = templateSettings;
-    }
-    options = defaults({ ...options }, templateSettings);
-    const delimitersRegExp = new RegExp([
-        options.escape?.source ?? noMatchExp.source,
-        options.interpolate?.source ?? noMatchExp.source,
-        options.interpolate === defaultInterpolateRegExp ? esTemplateRegExp.source : noMatchExp.source,
-        options.evaluate?.source ?? noMatchExp.source,
-        '$',
-    ].join('|'), 'g');
-    let lastIndex = 0;
-    let isEvaluated = false;
-    let source = `__p += ''`;
-    for (const match of string.matchAll(delimitersRegExp)) {
-        const [fullMatch, escapeValue, interpolateValue, esTemplateValue, evaluateValue] = match;
-        const { index } = match;
-        source += ` + '${string.slice(lastIndex, index).replace(unEscapedRegExp, escapeString)}'`;
-        if (escapeValue) {
-            source += ` + _.escape(${escapeValue})`;
-        }
-        if (interpolateValue) {
-            source += ` + ((${interpolateValue}) == null ? '' : ${interpolateValue})`;
-        }
-        else if (esTemplateValue) {
-            source += ` + ((${esTemplateValue}) == null ? '' : ${esTemplateValue})`;
-        }
-        if (evaluateValue) {
-            source += `;\n${evaluateValue};\n __p += ''`;
-            isEvaluated = true;
-        }
-        lastIndex = index + fullMatch.length;
-    }
-    const imports = defaults({ ...options.imports }, templateSettings.imports);
-    const importsKeys = Object.keys(imports);
-    const importValues = Object.values(imports);
-    const sourceURL = `//# sourceURL=${options.sourceURL ? String(options.sourceURL).replace(/[\r\n]/g, ' ') : `es-toolkit.templateSource[${Date.now()}]`}\n`;
-    const compiledFunction = `function(${options.variable || 'obj'}) {
-    let __p = '';
-    ${options.variable ? '' : 'if (obj == null) { obj = {}; }'}
-    ${isEvaluated ? `function print() { __p += Array.prototype.join.call(arguments, ''); }` : ''}
-    ${options.variable ? source : `with(obj) {\n${source}\n}`}
-    return __p;
-  }`;
-    const result = attempt(() => new Function(...importsKeys, `${sourceURL}return ${compiledFunction}`)(...importValues));
-    result.source = compiledFunction;
-    if (result instanceof Error) {
-        throw result;
-    }
-    return result;
-}
-
-export { template, templateSettings };
Index: de_modules/es-toolkit/dist/compat/string/toLower.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toLower.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts the given value to a string and transforms it to lower case.
- * The function can handle various input types by first converting them to strings.
- *
- * @param {unknown} [value=''] The value to convert.
- * @returns {string} Returns the lower cased string.
- * @example
- *
- * toLower('--FOO-BAR--');
- * // => '--foo-bar--'
- *
- * toLower(null);
- * // => ''
- *
- * toLower([1, 2, 3]);
- * // => '1,2,3'
- */
-declare function toLower<T extends string = string>(value?: T): Lowercase<T>;
-
-export { toLower };
Index: de_modules/es-toolkit/dist/compat/string/toLower.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toLower.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts the given value to a string and transforms it to lower case.
- * The function can handle various input types by first converting them to strings.
- *
- * @param {unknown} [value=''] The value to convert.
- * @returns {string} Returns the lower cased string.
- * @example
- *
- * toLower('--FOO-BAR--');
- * // => '--foo-bar--'
- *
- * toLower(null);
- * // => ''
- *
- * toLower([1, 2, 3]);
- * // => '1,2,3'
- */
-declare function toLower<T extends string = string>(value?: T): Lowercase<T>;
-
-export { toLower };
Index: de_modules/es-toolkit/dist/compat/string/toLower.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toLower.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function toLower(value) {
-    return toString.toString(value).toLowerCase();
-}
-
-exports.toLower = toLower;
Index: de_modules/es-toolkit/dist/compat/string/toLower.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toLower.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function toLower(value) {
-    return toString(value).toLowerCase();
-}
-
-export { toLower };
Index: de_modules/es-toolkit/dist/compat/string/toUpper.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toUpper.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `string`, as a whole, to upper case just like
- * [String#toUpperCase](https://mdn.io/toUpperCase).
- *
- * @param {unknown} [value=''] The value to convert.
- * @returns {string} Returns the upper cased string.
- * @example
- *
- * toUpper('--foo-bar--');
- * // => '--FOO-BAR--'
- *
- * toUpper(null);
- * // => ''
- *
- * toUpper([1, 2, 3]);
- * // => '1,2,3'
- */
-declare function toUpper<T extends string = string>(value?: T): Uppercase<T>;
-
-export { toUpper };
Index: de_modules/es-toolkit/dist/compat/string/toUpper.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toUpper.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `string`, as a whole, to upper case just like
- * [String#toUpperCase](https://mdn.io/toUpperCase).
- *
- * @param {unknown} [value=''] The value to convert.
- * @returns {string} Returns the upper cased string.
- * @example
- *
- * toUpper('--foo-bar--');
- * // => '--FOO-BAR--'
- *
- * toUpper(null);
- * // => ''
- *
- * toUpper([1, 2, 3]);
- * // => '1,2,3'
- */
-declare function toUpper<T extends string = string>(value?: T): Uppercase<T>;
-
-export { toUpper };
Index: de_modules/es-toolkit/dist/compat/string/toUpper.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toUpper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-function toUpper(value) {
-    return toString.toString(value).toUpperCase();
-}
-
-exports.toUpper = toUpper;
Index: de_modules/es-toolkit/dist/compat/string/toUpper.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/toUpper.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-function toUpper(value) {
-    return toString(value).toUpperCase();
-}
-
-export { toUpper };
Index: de_modules/es-toolkit/dist/compat/string/trim.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trim.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which leading and trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
- * @returns {string} - The resulting string after the specified leading and trailing characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(string?: string, chars?: string): string;
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which leading and trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
- * @returns {string} - The resulting string after the specified leading and trailing characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(string: string, index: string | number, guard: object): string;
-
-export { trim };
Index: de_modules/es-toolkit/dist/compat/string/trim.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trim.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which leading and trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
- * @returns {string} - The resulting string after the specified leading and trailing characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(string?: string, chars?: string): string;
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which leading and trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
- * @returns {string} - The resulting string after the specified leading and trailing characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(string: string, index: string | number, guard: object): string;
-
-export { trim };
Index: de_modules/es-toolkit/dist/compat/string/trim.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const trim$1 = require('../../string/trim.js');
-
-function trim(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trim();
-    }
-    switch (typeof chars) {
-        case 'object': {
-            if (Array.isArray(chars)) {
-                return trim$1.trim(str, chars.flatMap(x => x.toString().split('')));
-            }
-            else {
-                return trim$1.trim(str, chars.toString().split(''));
-            }
-        }
-        default: {
-            return trim$1.trim(str, chars.toString().split(''));
-        }
-    }
-}
-
-exports.trim = trim;
Index: de_modules/es-toolkit/dist/compat/string/trim.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trim.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { trim as trim$1 } from '../../string/trim.mjs';
-
-function trim(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trim();
-    }
-    switch (typeof chars) {
-        case 'object': {
-            if (Array.isArray(chars)) {
-                return trim$1(str, chars.flatMap(x => x.toString().split('')));
-            }
-            else {
-                return trim$1(str, chars.toString().split(''));
-            }
-        }
-        default: {
-            return trim$1(str, chars.toString().split(''));
-        }
-    }
-}
-
-export { trim };
Index: de_modules/es-toolkit/dist/compat/string/trimEnd.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimEnd.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string} chars - The characters to trim from the end of the string.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimEnd('  abc  ');
- * // => '  abc'
- *
- * trimEnd('-_-abc-_-', '_-');
- * // => '-_-abc'
- */
-declare function trimEnd(string?: string, chars?: string): string;
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string | number} index - The index parameter (used with guard).
- * @param {object} guard - Enables use as an iteratee for methods like `map`.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimEnd('  abc  ', 0, {});
- * // => '  abc'
- */
-declare function trimEnd(string: string, index: string | number, guard: object): string;
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/compat/string/trimEnd.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimEnd.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string} chars - The characters to trim from the end of the string.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimEnd('  abc  ');
- * // => '  abc'
- *
- * trimEnd('-_-abc-_-', '_-');
- * // => '-_-abc'
- */
-declare function trimEnd(string?: string, chars?: string): string;
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string | number} index - The index parameter (used with guard).
- * @param {object} guard - Enables use as an iteratee for methods like `map`.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimEnd('  abc  ', 0, {});
- * // => '  abc'
- */
-declare function trimEnd(string: string, index: string | number, guard: object): string;
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/compat/string/trimEnd.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimEnd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const trimEnd$1 = require('../../string/trimEnd.js');
-
-function trimEnd(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trimEnd();
-    }
-    return trimEnd$1.trimEnd(str, chars.toString().split(''));
-}
-
-exports.trimEnd = trimEnd;
Index: de_modules/es-toolkit/dist/compat/string/trimEnd.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimEnd.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { trimEnd as trimEnd$1 } from '../../string/trimEnd.mjs';
-
-function trimEnd(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trimEnd();
-    }
-    return trimEnd$1(str, chars.toString().split(''));
-}
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/compat/string/trimStart.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimStart.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string} chars - The characters to trim from the start of the string.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimStart('  abc  ');
- * // => 'abc  '
- *
- * trimStart('-_-abc-_-', '_-');
- * // => 'abc-_-'
- */
-declare function trimStart(string?: string, chars?: string): string;
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string | number} index - The index parameter (used with guard).
- * @param {object} guard - Enables use as an iteratee for methods like `map`.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimStart('  abc  ', 0, {});
- * // => 'abc  '
- */
-declare function trimStart(string: string, index: string | number, guard: object): string;
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/compat/string/trimStart.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimStart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string} chars - The characters to trim from the start of the string.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimStart('  abc  ');
- * // => 'abc  '
- *
- * trimStart('-_-abc-_-', '_-');
- * // => 'abc-_-'
- */
-declare function trimStart(string?: string, chars?: string): string;
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * @param {string} string - The string to trim.
- * @param {string | number} index - The index parameter (used with guard).
- * @param {object} guard - Enables use as an iteratee for methods like `map`.
- * @returns {string} Returns the trimmed string.
- *
- * @example
- * trimStart('  abc  ', 0, {});
- * // => 'abc  '
- */
-declare function trimStart(string: string, index: string | number, guard: object): string;
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/compat/string/trimStart.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimStart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const trimStart$1 = require('../../string/trimStart.js');
-
-function trimStart(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trimStart();
-    }
-    return trimStart$1.trimStart(str, chars.toString().split(''));
-}
-
-exports.trimStart = trimStart;
Index: de_modules/es-toolkit/dist/compat/string/trimStart.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/trimStart.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { trimStart as trimStart$1 } from '../../string/trimStart.mjs';
-
-function trimStart(str, chars, guard) {
-    if (str == null) {
-        return '';
-    }
-    if (guard != null || chars == null) {
-        return str.toString().trimStart();
-    }
-    return trimStart$1(str, chars.toString().split(''));
-}
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/compat/string/truncate.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/truncate.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-type TruncateOptions = {
-    length?: number;
-    separator?: string | RegExp;
-    omission?: string;
-};
-/**
- * This regex might more completely detect unicode, but it is slower and this project
- * desires to mimic the behavior of lodash.
- */
-/**
- * Truncates `string` if it's longer than the given maximum string length.
- * The last characters of the truncated string are replaced with the omission
- * string which defaults to "...".
- *
- * @param {string} [string=''] The string to truncate.
- * @param {Object} [options={}] The options object.
- * @param {number} [options.length=30] The maximum string length.
- * @param {string} [options.omission='...'] The string to indicate text is omitted.
- * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
- *
- * @example
- * const test = 'hi-diddly-ho there, neighborino';
- * const truncatedStr1 = truncate(test) // returns 'hi-diddly-ho there, neighbo...'
- * const truncatedStr2 = truncate(test, { length: 24, separator: ' ' }) // returns 'hi-diddly-ho there,...'
- * const truncatedStr3 = truncate(test, { length: 24, separator: /,? +/ }) // returns 'hi-diddly-ho there...'
- * const truncatedStr4 = truncate(test, { omission: ' [...]' }) // returns 'hi-diddly-ho there, neig [...]'
- * const truncatedStr5 = truncate('ABC', { length: 3 }) // returns 'ABC'
- * const truncatedStr6 = truncate('ABC', { length: 2 }) // returns '...'
- * const truncatedStr7 = truncate('¥§✈✉🤓', { length: 5 }) // returns '¥§✈✉🤓'
- * const truncatedStr8 = truncate('¥§✈✉🤓', { length: 4, omission: '…' }) // returns '¥§✈…'
- */
-declare function truncate(string?: string, options?: TruncateOptions): string;
-
-export { truncate };
Index: de_modules/es-toolkit/dist/compat/string/truncate.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/truncate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-type TruncateOptions = {
-    length?: number;
-    separator?: string | RegExp;
-    omission?: string;
-};
-/**
- * This regex might more completely detect unicode, but it is slower and this project
- * desires to mimic the behavior of lodash.
- */
-/**
- * Truncates `string` if it's longer than the given maximum string length.
- * The last characters of the truncated string are replaced with the omission
- * string which defaults to "...".
- *
- * @param {string} [string=''] The string to truncate.
- * @param {Object} [options={}] The options object.
- * @param {number} [options.length=30] The maximum string length.
- * @param {string} [options.omission='...'] The string to indicate text is omitted.
- * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
- *
- * @example
- * const test = 'hi-diddly-ho there, neighborino';
- * const truncatedStr1 = truncate(test) // returns 'hi-diddly-ho there, neighbo...'
- * const truncatedStr2 = truncate(test, { length: 24, separator: ' ' }) // returns 'hi-diddly-ho there,...'
- * const truncatedStr3 = truncate(test, { length: 24, separator: /,? +/ }) // returns 'hi-diddly-ho there...'
- * const truncatedStr4 = truncate(test, { omission: ' [...]' }) // returns 'hi-diddly-ho there, neig [...]'
- * const truncatedStr5 = truncate('ABC', { length: 3 }) // returns 'ABC'
- * const truncatedStr6 = truncate('ABC', { length: 2 }) // returns '...'
- * const truncatedStr7 = truncate('¥§✈✉🤓', { length: 5 }) // returns '¥§✈✉🤓'
- * const truncatedStr8 = truncate('¥§✈✉🤓', { length: 4, omission: '…' }) // returns '¥§✈…'
- */
-declare function truncate(string?: string, options?: TruncateOptions): string;
-
-export { truncate };
Index: de_modules/es-toolkit/dist/compat/string/truncate.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/truncate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isObject = require('../predicate/isObject.js');
-
-const regexMultiByte = /[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;
-function truncate(string, options) {
-    string = string != null ? `${string}` : '';
-    let length = 30;
-    let omission = '...';
-    if (isObject.isObject(options)) {
-        length = parseLength(options.length);
-        omission = 'omission' in options ? `${options.omission}` : '...';
-    }
-    let i = string.length;
-    const lengthOmission = Array.from(omission).length;
-    const lengthBase = Math.max(length - lengthOmission, 0);
-    let strArray = undefined;
-    const unicode = regexMultiByte.test(string);
-    if (unicode) {
-        strArray = Array.from(string);
-        i = strArray.length;
-    }
-    if (length >= i) {
-        return string;
-    }
-    if (i <= lengthOmission) {
-        return omission;
-    }
-    let base = strArray === undefined ? string.slice(0, lengthBase) : strArray?.slice(0, lengthBase).join('');
-    const separator = options?.separator;
-    if (!separator) {
-        base += omission;
-        return base;
-    }
-    const search = separator instanceof RegExp ? separator.source : separator;
-    const flags = 'u' + (separator instanceof RegExp ? separator.flags.replace('u', '') : '');
-    const withoutSeparator = new RegExp(`(?<result>.*(?:(?!${search}).))(?:${search})`, flags).exec(base);
-    return (!withoutSeparator?.groups ? base : withoutSeparator.groups.result) + omission;
-}
-function parseLength(length) {
-    if (length == null) {
-        return 30;
-    }
-    if (length <= 0) {
-        return 0;
-    }
-    return length;
-}
-
-exports.truncate = truncate;
Index: de_modules/es-toolkit/dist/compat/string/truncate.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/truncate.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-import { isObject } from '../predicate/isObject.mjs';
-
-const regexMultiByte = /[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;
-function truncate(string, options) {
-    string = string != null ? `${string}` : '';
-    let length = 30;
-    let omission = '...';
-    if (isObject(options)) {
-        length = parseLength(options.length);
-        omission = 'omission' in options ? `${options.omission}` : '...';
-    }
-    let i = string.length;
-    const lengthOmission = Array.from(omission).length;
-    const lengthBase = Math.max(length - lengthOmission, 0);
-    let strArray = undefined;
-    const unicode = regexMultiByte.test(string);
-    if (unicode) {
-        strArray = Array.from(string);
-        i = strArray.length;
-    }
-    if (length >= i) {
-        return string;
-    }
-    if (i <= lengthOmission) {
-        return omission;
-    }
-    let base = strArray === undefined ? string.slice(0, lengthBase) : strArray?.slice(0, lengthBase).join('');
-    const separator = options?.separator;
-    if (!separator) {
-        base += omission;
-        return base;
-    }
-    const search = separator instanceof RegExp ? separator.source : separator;
-    const flags = 'u' + (separator instanceof RegExp ? separator.flags.replace('u', '') : '');
-    const withoutSeparator = new RegExp(`(?<result>.*(?:(?!${search}).))(?:${search})`, flags).exec(base);
-    return (!withoutSeparator?.groups ? base : withoutSeparator.groups.result) + omission;
-}
-function parseLength(length) {
-    if (length == null) {
-        return 30;
-    }
-    if (length <= 0) {
-        return 0;
-    }
-    return length;
-}
-
-export { truncate };
Index: de_modules/es-toolkit/dist/compat/string/unescape.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/unescape.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the HTML entities `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `str` to their corresponding characters.
- * It is the inverse of `escape`.
- *
- * @param {string} str The string to unescape.
- * @returns {string} Returns the unescaped string.
- *
- * @example
- * unescape('This is a &lt;div&gt; element.'); // returns 'This is a <div> element.'
- * unescape('This is a &quot;quote&quot;'); // returns 'This is a "quote"'
- * unescape('This is a &#39;quote&#39;'); // returns 'This is a 'quote''
- * unescape('This is a &amp; symbol'); // returns 'This is a & symbol'
- */
-declare function unescape(str?: string): string;
-
-export { unescape };
Index: de_modules/es-toolkit/dist/compat/string/unescape.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/unescape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the HTML entities `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `str` to their corresponding characters.
- * It is the inverse of `escape`.
- *
- * @param {string} str The string to unescape.
- * @returns {string} Returns the unescaped string.
- *
- * @example
- * unescape('This is a &lt;div&gt; element.'); // returns 'This is a <div> element.'
- * unescape('This is a &quot;quote&quot;'); // returns 'This is a "quote"'
- * unescape('This is a &#39;quote&#39;'); // returns 'This is a 'quote''
- * unescape('This is a &amp; symbol'); // returns 'This is a & symbol'
- */
-declare function unescape(str?: string): string;
-
-export { unescape };
Index: de_modules/es-toolkit/dist/compat/string/unescape.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/unescape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const unescape$1 = require('../../string/unescape.js');
-const toString = require('../util/toString.js');
-
-function unescape(str) {
-    return unescape$1.unescape(toString.toString(str));
-}
-
-exports.unescape = unescape;
Index: de_modules/es-toolkit/dist/compat/string/unescape.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/unescape.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { unescape as unescape$1 } from '../../string/unescape.mjs';
-import { toString } from '../util/toString.mjs';
-
-function unescape(str) {
-    return unescape$1(toString(str));
-}
-
-export { unescape };
Index: de_modules/es-toolkit/dist/compat/string/upperCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to upper case.
- *
- * Upper case is the naming convention in which each word is written in uppercase and separated by an space ( ) character.
- *
- * @param {string | object} str - The string that is to be changed to upper case.
- * @returns {string} - The converted string to upper case.
- *
- * @example
- * const convertedStr1 = upperCase('camelCase') // returns 'CAMEL CASE'
- * const convertedStr2 = upperCase('some whitespace') // returns 'SOME WHITESPACE'
- * const convertedStr3 = upperCase('hyphen-text') // returns 'HYPHEN TEXT'
- * const convertedStr4 = upperCase('HTTPRequest') // returns 'HTTP REQUEST'
- */
-declare function upperCase(str?: string): string;
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/compat/string/upperCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to upper case.
- *
- * Upper case is the naming convention in which each word is written in uppercase and separated by an space ( ) character.
- *
- * @param {string | object} str - The string that is to be changed to upper case.
- * @returns {string} - The converted string to upper case.
- *
- * @example
- * const convertedStr1 = upperCase('camelCase') // returns 'CAMEL CASE'
- * const convertedStr2 = upperCase('some whitespace') // returns 'SOME WHITESPACE'
- * const convertedStr3 = upperCase('hyphen-text') // returns 'HYPHEN TEXT'
- * const convertedStr4 = upperCase('HTTPRequest') // returns 'HTTP REQUEST'
- */
-declare function upperCase(str?: string): string;
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/compat/string/upperCase.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburr = require('./deburr.js');
-const upperCase$1 = require('../../string/upperCase.js');
-const normalizeForCase = require('../_internal/normalizeForCase.js');
-
-function upperCase(str) {
-    return upperCase$1.upperCase(normalizeForCase.normalizeForCase(deburr.deburr(str)));
-}
-
-exports.upperCase = upperCase;
Index: de_modules/es-toolkit/dist/compat/string/upperCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { deburr } from './deburr.mjs';
-import { upperCase as upperCase$1 } from '../../string/upperCase.mjs';
-import { normalizeForCase } from '../_internal/normalizeForCase.mjs';
-
-function upperCase(str) {
-    return upperCase$1(normalizeForCase(deburr(str)));
-}
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/compat/string/upperFirst.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperFirst.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = upperFirst('fred') // returns 'Fred'
- * const convertedStr2 = upperFirst('Fred') // returns 'Fred'
- * const convertedStr3 = upperFirst('FRED') // returns 'FRED'
- */
-declare function upperFirst<T extends string = string>(str?: T): Capitalize<T>;
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/compat/string/upperFirst.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = upperFirst('fred') // returns 'Fred'
- * const convertedStr2 = upperFirst('Fred') // returns 'Fred'
- * const convertedStr3 = upperFirst('FRED') // returns 'FRED'
- */
-declare function upperFirst<T extends string = string>(str?: T): Capitalize<T>;
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/compat/string/upperFirst.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const upperFirst$1 = require('../../string/upperFirst.js');
-const toString = require('../util/toString.js');
-
-function upperFirst(str) {
-    return upperFirst$1.upperFirst(toString.toString(str));
-}
-
-exports.upperFirst = upperFirst;
Index: de_modules/es-toolkit/dist/compat/string/upperFirst.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/upperFirst.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { upperFirst as upperFirst$1 } from '../../string/upperFirst.mjs';
-import { toString } from '../util/toString.mjs';
-
-function upperFirst(str) {
-    return upperFirst$1(toString(str));
-}
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/compat/string/words.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/words.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Splits `string` into an array of its words.
- *
- * @param {string | object} str - The string or object that is to be split into words.
- * @param {RegExp | string} [pattern] - The pattern to match words.
- * @returns {string[]} - Returns the words of `string`.
- *
- * @example
- * const wordsArray1 = words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- */
-declare function words(string?: string, pattern?: string | RegExp): string[];
-/**
- * Splits `string` into an array of its words.
- *
- * @param {string | object} str - The string or object that is to be split into words.
- * @param {RegExp | string} [pattern] - The pattern to match words.
- * @returns {string[]} - Returns the words of `string`.
- *
- * @example
- * const wordsArray1 = words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- */
-declare function words(string: string, index: string | number, guard: object): string[];
-
-export { words };
Index: de_modules/es-toolkit/dist/compat/string/words.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/string/words.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Splits `string` into an array of its words.
- *
- * @param {string | object} str - The string or object that is to be split into words.
- * @param {RegExp | string} [pattern] - The pattern to match words.
- * @returns {string[]} - Returns the words of `string`.
- *
- * @example
- * const wordsArray1 = words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- */
-declare function words(string?: string, pattern?: string | RegExp): string[];
-/**
- * Splits `string` into an array of its words.
- *
- * @param {string | object} str - The string or object that is to be split into words.
- * @param {RegExp | string} [pattern] - The pattern to match words.
- * @returns {string[]} - Returns the words of `string`.
- *
- * @example
- * const wordsArray1 = words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- */
-declare function words(string: string, index: string | number, guard: object): string[];
-
-export { words };
Index: de_modules/es-toolkit/dist/compat/string/words.js
===================================================================
--- node_modules/es-toolkit/dist/compat/string/words.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('../util/toString.js');
-
-const rNonCharLatin = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7';
-const rUnicodeUpper = '\\p{Lu}';
-const rUnicodeLower = '\\p{Ll}';
-const rMisc = '(?:[\\p{Lm}\\p{Lo}]\\p{M}*)';
-const rNumber = '\\d';
-const rUnicodeOptContrLower = "(?:['\u2019](?:d|ll|m|re|s|t|ve))?";
-const rUnicodeOptContrUpper = "(?:['\u2019](?:D|LL|M|RE|S|T|VE))?";
-const rUnicodeBreak = `[\\p{Z}\\p{P}${rNonCharLatin}]`;
-const rUnicodeMiscUpper = `(?:${rUnicodeUpper}|${rMisc})`;
-const rUnicodeMiscLower = `(?:${rUnicodeLower}|${rMisc})`;
-const rUnicodeWord = RegExp([
-    `${rUnicodeUpper}?${rUnicodeLower}+${rUnicodeOptContrLower}(?=${rUnicodeBreak}|${rUnicodeUpper}|$)`,
-    `${rUnicodeMiscUpper}+${rUnicodeOptContrUpper}(?=${rUnicodeBreak}|${rUnicodeUpper}${rUnicodeMiscLower}|$)`,
-    `${rUnicodeUpper}?${rUnicodeMiscLower}+${rUnicodeOptContrLower}`,
-    `${rUnicodeUpper}+${rUnicodeOptContrUpper}`,
-    `${rNumber}*(?:1ST|2ND|3RD|(?![123])${rNumber}TH)(?=\\b|[a-z_])`,
-    `${rNumber}*(?:1st|2nd|3rd|(?![123])${rNumber}th)(?=\\b|[A-Z_])`,
-    `${rNumber}+`,
-    '\\p{Emoji_Presentation}',
-    '\\p{Extended_Pictographic}',
-].join('|'), 'gu');
-function words(str, pattern = rUnicodeWord, guard) {
-    const input = toString.toString(str);
-    if (guard) {
-        pattern = rUnicodeWord;
-    }
-    if (typeof pattern === 'number') {
-        pattern = pattern.toString();
-    }
-    const words = Array.from(input.match(pattern) ?? []);
-    return words.filter(x => x !== '');
-}
-
-exports.words = words;
Index: de_modules/es-toolkit/dist/compat/string/words.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/string/words.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { toString } from '../util/toString.mjs';
-
-const rNonCharLatin = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7';
-const rUnicodeUpper = '\\p{Lu}';
-const rUnicodeLower = '\\p{Ll}';
-const rMisc = '(?:[\\p{Lm}\\p{Lo}]\\p{M}*)';
-const rNumber = '\\d';
-const rUnicodeOptContrLower = "(?:['\u2019](?:d|ll|m|re|s|t|ve))?";
-const rUnicodeOptContrUpper = "(?:['\u2019](?:D|LL|M|RE|S|T|VE))?";
-const rUnicodeBreak = `[\\p{Z}\\p{P}${rNonCharLatin}]`;
-const rUnicodeMiscUpper = `(?:${rUnicodeUpper}|${rMisc})`;
-const rUnicodeMiscLower = `(?:${rUnicodeLower}|${rMisc})`;
-const rUnicodeWord = RegExp([
-    `${rUnicodeUpper}?${rUnicodeLower}+${rUnicodeOptContrLower}(?=${rUnicodeBreak}|${rUnicodeUpper}|$)`,
-    `${rUnicodeMiscUpper}+${rUnicodeOptContrUpper}(?=${rUnicodeBreak}|${rUnicodeUpper}${rUnicodeMiscLower}|$)`,
-    `${rUnicodeUpper}?${rUnicodeMiscLower}+${rUnicodeOptContrLower}`,
-    `${rUnicodeUpper}+${rUnicodeOptContrUpper}`,
-    `${rNumber}*(?:1ST|2ND|3RD|(?![123])${rNumber}TH)(?=\\b|[a-z_])`,
-    `${rNumber}*(?:1st|2nd|3rd|(?![123])${rNumber}th)(?=\\b|[A-Z_])`,
-    `${rNumber}+`,
-    '\\p{Emoji_Presentation}',
-    '\\p{Extended_Pictographic}',
-].join('|'), 'gu');
-function words(str, pattern = rUnicodeWord, guard) {
-    const input = toString(str);
-    if (guard) {
-        pattern = rUnicodeWord;
-    }
-    if (typeof pattern === 'number') {
-        pattern = pattern.toString();
-    }
-    const words = Array.from(input.match(pattern) ?? []);
-    return words.filter(x => x !== '');
-}
-
-export { words };
Index: de_modules/es-toolkit/dist/compat/toolkit.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/toolkit.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import * as compat from './compat.mjs';
-
-type ToolkitFn = (value: any) => any;
-type Compat = typeof compat;
-interface Toolkit extends ToolkitFn, Compat {
-}
-declare const toolkit: Toolkit;
-
-export { type Toolkit, toolkit };
Index: de_modules/es-toolkit/dist/compat/toolkit.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/toolkit.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import * as compat from './compat.js';
-
-type ToolkitFn = (value: any) => any;
-type Compat = typeof compat;
-interface Toolkit extends ToolkitFn, Compat {
-}
-declare const toolkit: Toolkit;
-
-export { type Toolkit, toolkit };
Index: de_modules/es-toolkit/dist/compat/toolkit.js
===================================================================
--- node_modules/es-toolkit/dist/compat/toolkit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const compat = require('./compat.js');
-
-const toolkit = ((value) => {
-    return value;
-});
-Object.assign(toolkit, compat);
-toolkit.partial.placeholder = toolkit;
-toolkit.partialRight.placeholder = toolkit;
-
-exports.toolkit = toolkit;
Index: de_modules/es-toolkit/dist/compat/toolkit.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/toolkit.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import * as compat from './compat.mjs';
-
-const toolkit = ((value) => {
-    return value;
-});
-Object.assign(toolkit, compat);
-toolkit.partial.placeholder = toolkit;
-toolkit.partialRight.placeholder = toolkit;
-
-export { toolkit };
Index: de_modules/es-toolkit/dist/compat/util/bindAll.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/bindAll.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { Many } from '../_internal/Many.mjs';
-
-/**
- * Binds methods of an object to the object itself, overwriting the existing method.
- * Method names may be specified as individual arguments or as arrays of method names.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to bind methods to.
- * @param {Array<Many<string>>} [methodNames] - The method names to bind, specified individually or in arrays.
- * @returns {T} - Returns the object.
- *
- * @example
- * const view = {
- *   'label': 'docs',
- *   'click': function() {
- *     console.log('clicked ' + this.label);
- *   }
- * };
- *
- * bindAll(view, ['click']);
- * jQuery(element).on('click', view.click);
- * // => Logs 'clicked docs' when clicked.
- *
- * @example
- * // Using individual method names
- * bindAll(view, 'click');
- * // => Same as above
- */
-declare function bindAll<T>(object: T, ...methodNames: Array<Many<string>>): T;
-
-export { bindAll };
Index: de_modules/es-toolkit/dist/compat/util/bindAll.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/bindAll.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { Many } from '../_internal/Many.js';
-
-/**
- * Binds methods of an object to the object itself, overwriting the existing method.
- * Method names may be specified as individual arguments or as arrays of method names.
- *
- * @template T - The type of the object.
- * @param {T} object - The object to bind methods to.
- * @param {Array<Many<string>>} [methodNames] - The method names to bind, specified individually or in arrays.
- * @returns {T} - Returns the object.
- *
- * @example
- * const view = {
- *   'label': 'docs',
- *   'click': function() {
- *     console.log('clicked ' + this.label);
- *   }
- * };
- *
- * bindAll(view, ['click']);
- * jQuery(element).on('click', view.click);
- * // => Logs 'clicked docs' when clicked.
- *
- * @example
- * // Using individual method names
- * bindAll(view, 'click');
- * // => Same as above
- */
-declare function bindAll<T>(object: T, ...methodNames: Array<Many<string>>): T;
-
-export { bindAll };
Index: de_modules/es-toolkit/dist/compat/util/bindAll.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/bindAll.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isFunction = require('../../predicate/isFunction.js');
-const isArray = require('../predicate/isArray.js');
-const isObject = require('../predicate/isObject.js');
-const toString = require('./toString.js');
-
-function bindAll(object, ...methodNames) {
-    if (object == null) {
-        return object;
-    }
-    if (!isObject.isObject(object)) {
-        return object;
-    }
-    if (isArray.isArray(object) && methodNames.length === 0) {
-        return object;
-    }
-    const methods = [];
-    for (let i = 0; i < methodNames.length; i++) {
-        const name = methodNames[i];
-        if (isArray.isArray(name)) {
-            methods.push(...name);
-        }
-        else if (name && typeof name === 'object' && 'length' in name) {
-            methods.push(...Array.from(name));
-        }
-        else {
-            methods.push(name);
-        }
-    }
-    if (methods.length === 0) {
-        return object;
-    }
-    for (let i = 0; i < methods.length; i++) {
-        const key = methods[i];
-        const stringKey = toString.toString(key);
-        const func = object[stringKey];
-        if (isFunction.isFunction(func)) {
-            object[stringKey] = func.bind(object);
-        }
-    }
-    return object;
-}
-
-exports.bindAll = bindAll;
Index: de_modules/es-toolkit/dist/compat/util/bindAll.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/bindAll.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { isFunction } from '../../predicate/isFunction.mjs';
-import { isArray } from '../predicate/isArray.mjs';
-import { isObject } from '../predicate/isObject.mjs';
-import { toString } from './toString.mjs';
-
-function bindAll(object, ...methodNames) {
-    if (object == null) {
-        return object;
-    }
-    if (!isObject(object)) {
-        return object;
-    }
-    if (isArray(object) && methodNames.length === 0) {
-        return object;
-    }
-    const methods = [];
-    for (let i = 0; i < methodNames.length; i++) {
-        const name = methodNames[i];
-        if (isArray(name)) {
-            methods.push(...name);
-        }
-        else if (name && typeof name === 'object' && 'length' in name) {
-            methods.push(...Array.from(name));
-        }
-        else {
-            methods.push(name);
-        }
-    }
-    if (methods.length === 0) {
-        return object;
-    }
-    for (let i = 0; i < methods.length; i++) {
-        const key = methods[i];
-        const stringKey = toString(key);
-        const func = object[stringKey];
-        if (isFunction(func)) {
-            object[stringKey] = func.bind(object);
-        }
-    }
-    return object;
-}
-
-export { bindAll };
Index: de_modules/es-toolkit/dist/compat/util/cond.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/cond.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Creates a function that checks conditions one by one and runs the matching function.
- *
- * Each pair consists of a condition (predicate) and a function to run.
- * The function goes through each condition in order until it finds one that's true.
- * When it finds a true condition, it runs the corresponding function and returns its result.
- * If none of the conditions are true, it returns undefined.
- *
- * @param {Array<Array>} pairs - Array of pairs. Each pair consists of a predicate function and a function to run.
- * @returns {(...args: any[]) => unknown} A new composite function that checks conditions and runs the matching function.
- * @example
- *
- * const func = cond([
- *   [matches({ a: 1 }), constant('matches A')],
- *   [conforms({ b: isNumber }), constant('matches B')],
- *   [stubTrue, constant('no match')]
- * ]);
- *
- * func({ a: 1, b: 2 });
- * // => 'matches A'
- *
- * func({ a: 0, b: 1 });
- * // => 'matches B'
- *
- * func({ a: '1', b: '2' });
- * // => 'no match'
- */
-declare function cond<R>(pairs: Array<[truthy: () => boolean, falsey: () => R]>): () => R;
-/**
- * Creates a function that checks conditions one by one and runs the matching function.
- *
- * Each pair consists of a condition (predicate) and a function to run.
- * The function goes through each condition in order until it finds one that's true.
- * When it finds a true condition, it runs the corresponding function and returns its result.
- * If none of the conditions are true, it returns undefined.
- *
- * @param {Array<Array>} pairs - Array of pairs. Each pair consists of a predicate function and a function to run.
- * @returns {(...args: any[]) => unknown} A new composite function that checks conditions and runs the matching function.
- * @example
- *
- * const func = cond([
- *   [matches({ a: 1 }), constant('matches A')],
- *   [conforms({ b: isNumber }), constant('matches B')],
- *   [stubTrue, constant('no match')]
- * ]);
- *
- * func({ a: 1, b: 2 });
- * // => 'matches A'
- *
- * func({ a: 0, b: 1 });
- * // => 'matches B'
- *
- * func({ a: '1', b: '2' });
- * // => 'no match'
- */
-declare function cond<T, R>(pairs: Array<[truthy: (val: T) => boolean, falsey: (val: T) => R]>): (val: T) => R;
-
-export { cond };
Index: de_modules/es-toolkit/dist/compat/util/cond.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/cond.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/**
- * Creates a function that checks conditions one by one and runs the matching function.
- *
- * Each pair consists of a condition (predicate) and a function to run.
- * The function goes through each condition in order until it finds one that's true.
- * When it finds a true condition, it runs the corresponding function and returns its result.
- * If none of the conditions are true, it returns undefined.
- *
- * @param {Array<Array>} pairs - Array of pairs. Each pair consists of a predicate function and a function to run.
- * @returns {(...args: any[]) => unknown} A new composite function that checks conditions and runs the matching function.
- * @example
- *
- * const func = cond([
- *   [matches({ a: 1 }), constant('matches A')],
- *   [conforms({ b: isNumber }), constant('matches B')],
- *   [stubTrue, constant('no match')]
- * ]);
- *
- * func({ a: 1, b: 2 });
- * // => 'matches A'
- *
- * func({ a: 0, b: 1 });
- * // => 'matches B'
- *
- * func({ a: '1', b: '2' });
- * // => 'no match'
- */
-declare function cond<R>(pairs: Array<[truthy: () => boolean, falsey: () => R]>): () => R;
-/**
- * Creates a function that checks conditions one by one and runs the matching function.
- *
- * Each pair consists of a condition (predicate) and a function to run.
- * The function goes through each condition in order until it finds one that's true.
- * When it finds a true condition, it runs the corresponding function and returns its result.
- * If none of the conditions are true, it returns undefined.
- *
- * @param {Array<Array>} pairs - Array of pairs. Each pair consists of a predicate function and a function to run.
- * @returns {(...args: any[]) => unknown} A new composite function that checks conditions and runs the matching function.
- * @example
- *
- * const func = cond([
- *   [matches({ a: 1 }), constant('matches A')],
- *   [conforms({ b: isNumber }), constant('matches B')],
- *   [stubTrue, constant('no match')]
- * ]);
- *
- * func({ a: 1, b: 2 });
- * // => 'matches A'
- *
- * func({ a: 0, b: 1 });
- * // => 'matches B'
- *
- * func({ a: '1', b: '2' });
- * // => 'no match'
- */
-declare function cond<T, R>(pairs: Array<[truthy: (val: T) => boolean, falsey: (val: T) => R]>): (val: T) => R;
-
-export { cond };
Index: de_modules/es-toolkit/dist/compat/util/cond.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/cond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('./iteratee.js');
-const isFunction = require('../../predicate/isFunction.js');
-
-function cond(pairs) {
-    const length = pairs.length;
-    const processedPairs = pairs.map(pair => {
-        const predicate = pair[0];
-        const func = pair[1];
-        if (!isFunction.isFunction(func)) {
-            throw new TypeError('Expected a function');
-        }
-        return [iteratee.iteratee(predicate), func];
-    });
-    return function (...args) {
-        for (let i = 0; i < length; i++) {
-            const pair = processedPairs[i];
-            const predicate = pair[0];
-            const func = pair[1];
-            if (predicate.apply(this, args)) {
-                return func.apply(this, args);
-            }
-        }
-    };
-}
-
-exports.cond = cond;
Index: de_modules/es-toolkit/dist/compat/util/cond.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/cond.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { iteratee } from './iteratee.mjs';
-import { isFunction } from '../../predicate/isFunction.mjs';
-
-function cond(pairs) {
-    const length = pairs.length;
-    const processedPairs = pairs.map(pair => {
-        const predicate = pair[0];
-        const func = pair[1];
-        if (!isFunction(func)) {
-            throw new TypeError('Expected a function');
-        }
-        return [iteratee(predicate), func];
-    });
-    return function (...args) {
-        for (let i = 0; i < length; i++) {
-            const pair = processedPairs[i];
-            const predicate = pair[0];
-            const func = pair[1];
-            if (predicate.apply(this, args)) {
-                return func.apply(this, args);
-            }
-        }
-    };
-}
-
-export { cond };
Index: de_modules/es-toolkit/dist/compat/util/constant.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/constant.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Creates a new function that always returns `value`.
- *
- * @template T - The type of the value to return.
- * @param {T} value - The value to return from the new function.
- * @returns {() => T} Returns the new constant function.
- */
-declare function constant<T>(value: T): () => T;
-
-export { constant };
Index: de_modules/es-toolkit/dist/compat/util/constant.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/constant.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Creates a new function that always returns `value`.
- *
- * @template T - The type of the value to return.
- * @param {T} value - The value to return from the new function.
- * @returns {() => T} Returns the new constant function.
- */
-declare function constant<T>(value: T): () => T;
-
-export { constant };
Index: de_modules/es-toolkit/dist/compat/util/constant.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function constant(value) {
-    return () => value;
-}
-
-exports.constant = constant;
Index: de_modules/es-toolkit/dist/compat/util/constant.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/constant.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function constant(value) {
-    return () => value;
-}
-
-export { constant };
Index: de_modules/es-toolkit/dist/compat/util/defaultTo.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/defaultTo.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns the default value for `null`, `undefined`, and `NaN`.
- *
- * @template T - The type of the value parameter
- * @param {T | null | undefined} value - The value to check.
- * @param {T} defaultValue - The default value to return if the first value is null, undefined, or NaN.
- * @returns {T} Returns either the first value or the default value.
- */
-declare function defaultTo<T>(value: T | null | undefined, defaultValue: T): T;
-/**
- * Returns the default value for `null`, `undefined`, and `NaN`.
- *
- * @template T - The type of the value parameter
- * @template D - The type of the defaultValue parameter
- * @param {T | null | undefined} value - The value to check.
- * @param {D} defaultValue - The default value to return if the first value is null, undefined, or NaN.
- * @returns {T | D} Returns either the first value or the default value.
- */
-declare function defaultTo<T, D>(value: T | null | undefined, defaultValue: D): T | D;
-
-export { defaultTo };
Index: de_modules/es-toolkit/dist/compat/util/defaultTo.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/defaultTo.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Returns the default value for `null`, `undefined`, and `NaN`.
- *
- * @template T - The type of the value parameter
- * @param {T | null | undefined} value - The value to check.
- * @param {T} defaultValue - The default value to return if the first value is null, undefined, or NaN.
- * @returns {T} Returns either the first value or the default value.
- */
-declare function defaultTo<T>(value: T | null | undefined, defaultValue: T): T;
-/**
- * Returns the default value for `null`, `undefined`, and `NaN`.
- *
- * @template T - The type of the value parameter
- * @template D - The type of the defaultValue parameter
- * @param {T | null | undefined} value - The value to check.
- * @param {D} defaultValue - The default value to return if the first value is null, undefined, or NaN.
- * @returns {T | D} Returns either the first value or the default value.
- */
-declare function defaultTo<T, D>(value: T | null | undefined, defaultValue: D): T | D;
-
-export { defaultTo };
Index: de_modules/es-toolkit/dist/compat/util/defaultTo.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/defaultTo.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function defaultTo(value, defaultValue) {
-    if (value == null || Number.isNaN(value)) {
-        return defaultValue;
-    }
-    return value;
-}
-
-exports.defaultTo = defaultTo;
Index: de_modules/es-toolkit/dist/compat/util/defaultTo.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/defaultTo.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function defaultTo(value, defaultValue) {
-    if (value == null || Number.isNaN(value)) {
-        return defaultValue;
-    }
-    return value;
-}
-
-export { defaultTo };
Index: de_modules/es-toolkit/dist/compat/util/gt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is greater than other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is greater than other, else `false`.
- *
- * @example
- * gt(3, 1); // true
- * gt(3, 3); // false
- * gt(1, 3); // false
- */
-declare function gt(value: any, other: any): boolean;
-
-export { gt };
Index: de_modules/es-toolkit/dist/compat/util/gt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is greater than other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is greater than other, else `false`.
- *
- * @example
- * gt(3, 1); // true
- * gt(3, 3); // false
- * gt(1, 3); // false
- */
-declare function gt(value: any, other: any): boolean;
-
-export { gt };
Index: de_modules/es-toolkit/dist/compat/util/gt.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('./toNumber.js');
-
-function gt(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value > other;
-    }
-    return toNumber.toNumber(value) > toNumber.toNumber(other);
-}
-
-exports.gt = gt;
Index: de_modules/es-toolkit/dist/compat/util/gt.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toNumber } from './toNumber.mjs';
-
-function gt(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value > other;
-    }
-    return toNumber(value) > toNumber(other);
-}
-
-export { gt };
Index: de_modules/es-toolkit/dist/compat/util/gte.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gte.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is greater than or equal to other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is greater than or equal to other, else `false`.
- *
- * @example
- * gte(3, 1); // => true
- * gte(3, 3); // => true
- * gte(1, 3); // => false
- */
-declare function gte(value: any, other: any): boolean;
-
-export { gte };
Index: de_modules/es-toolkit/dist/compat/util/gte.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gte.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is greater than or equal to other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is greater than or equal to other, else `false`.
- *
- * @example
- * gte(3, 1); // => true
- * gte(3, 3); // => true
- * gte(1, 3); // => false
- */
-declare function gte(value: any, other: any): boolean;
-
-export { gte };
Index: de_modules/es-toolkit/dist/compat/util/gte.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gte.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('./toNumber.js');
-
-function gte(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value >= other;
-    }
-    return toNumber.toNumber(value) >= toNumber.toNumber(other);
-}
-
-exports.gte = gte;
Index: de_modules/es-toolkit/dist/compat/util/gte.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/gte.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toNumber } from './toNumber.mjs';
-
-function gte(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value >= other;
-    }
-    return toNumber(value) >= toNumber(other);
-}
-
-export { gte };
Index: de_modules/es-toolkit/dist/compat/util/invoke.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/invoke.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Invokes the method at `path` of `object` with the given arguments.
- *
- * @param {any} object - The object to query.
- * @param {PropertyKey | PropertyKey[]} path - The path of the method to invoke.
- * @param {any[]} args - The arguments to invoke the method with.
- * @returns {any} - Returns the result of the invoked method.
- *
- * @example
- * const object = {
- *   a: {
- *     b: function (x, y) {
- *       return x + y;
- *     }
- *   }
- * };
- *
- * invoke(object, 'a.b', [1, 2]); // => 3
- * invoke(object, ['a', 'b'], [1, 2]); // => 3
- */
-declare function invoke(object: any, path: PropertyKey | readonly PropertyKey[], ...args: any[]): any;
-
-export { invoke };
Index: de_modules/es-toolkit/dist/compat/util/invoke.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/invoke.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Invokes the method at `path` of `object` with the given arguments.
- *
- * @param {any} object - The object to query.
- * @param {PropertyKey | PropertyKey[]} path - The path of the method to invoke.
- * @param {any[]} args - The arguments to invoke the method with.
- * @returns {any} - Returns the result of the invoked method.
- *
- * @example
- * const object = {
- *   a: {
- *     b: function (x, y) {
- *       return x + y;
- *     }
- *   }
- * };
- *
- * invoke(object, 'a.b', [1, 2]); // => 3
- * invoke(object, ['a', 'b'], [1, 2]); // => 3
- */
-declare function invoke(object: any, path: PropertyKey | readonly PropertyKey[], ...args: any[]): any;
-
-export { invoke };
Index: de_modules/es-toolkit/dist/compat/util/invoke.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/invoke.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toPath = require('./toPath.js');
-const toKey = require('../_internal/toKey.js');
-const last = require('../array/last.js');
-const get = require('../object/get.js');
-
-function invoke(object, path, ...args) {
-    args = args.flat(1);
-    if (object == null) {
-        return;
-    }
-    switch (typeof path) {
-        case 'string': {
-            if (typeof object === 'object' && Object.hasOwn(object, path)) {
-                return invokeImpl(object, [path], args);
-            }
-            return invokeImpl(object, toPath.toPath(path), args);
-        }
-        case 'number':
-        case 'symbol': {
-            return invokeImpl(object, [path], args);
-        }
-        default: {
-            if (Array.isArray(path)) {
-                return invokeImpl(object, path, args);
-            }
-            else {
-                return invokeImpl(object, [path], args);
-            }
-        }
-    }
-}
-function invokeImpl(object, path, args) {
-    const parent = get.get(object, path.slice(0, -1), object);
-    if (parent == null) {
-        return undefined;
-    }
-    let lastKey = last.last(path);
-    const lastValue = lastKey?.valueOf();
-    if (typeof lastValue === 'number') {
-        lastKey = toKey.toKey(lastValue);
-    }
-    else {
-        lastKey = String(lastKey);
-    }
-    const func = get.get(parent, lastKey);
-    return func?.apply(parent, args);
-}
-
-exports.invoke = invoke;
Index: de_modules/es-toolkit/dist/compat/util/invoke.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/invoke.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import { toPath } from './toPath.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-import { last } from '../array/last.mjs';
-import { get } from '../object/get.mjs';
-
-function invoke(object, path, ...args) {
-    args = args.flat(1);
-    if (object == null) {
-        return;
-    }
-    switch (typeof path) {
-        case 'string': {
-            if (typeof object === 'object' && Object.hasOwn(object, path)) {
-                return invokeImpl(object, [path], args);
-            }
-            return invokeImpl(object, toPath(path), args);
-        }
-        case 'number':
-        case 'symbol': {
-            return invokeImpl(object, [path], args);
-        }
-        default: {
-            if (Array.isArray(path)) {
-                return invokeImpl(object, path, args);
-            }
-            else {
-                return invokeImpl(object, [path], args);
-            }
-        }
-    }
-}
-function invokeImpl(object, path, args) {
-    const parent = get(object, path.slice(0, -1), object);
-    if (parent == null) {
-        return undefined;
-    }
-    let lastKey = last(path);
-    const lastValue = lastKey?.valueOf();
-    if (typeof lastValue === 'number') {
-        lastKey = toKey(lastValue);
-    }
-    else {
-        lastKey = String(lastKey);
-    }
-    const func = get(parent, lastKey);
-    return func?.apply(parent, args);
-}
-
-export { invoke };
Index: de_modules/es-toolkit/dist/compat/util/iteratee.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/iteratee.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Returns the provided function as-is when it is a function type.
- *
- * @template F - The function type
- * @param {F} func - The function to return
- * @returns {F} Returns the provided function unchanged
- *
- * @example
- * const fn = (x: number) => x * 2;
- * const iterateeFn = iteratee(fn);
- * iterateeFn(4); // => 8
- */
-declare function iteratee<F extends (...args: any[]) => any>(func: F): F;
-/**
- * Creates an iteratee function based on the provided property key or object.
- * If given a property key, returns a function that gets that property from objects.
- * If given an object, returns a function that matches objects against the provided one.
- *
- * @param {PropertyKey | object} func - The value to convert to an iteratee
- * @returns {Function} Returns the iteratee function
- *
- * @example
- * // With property key
- * const getLength = iteratee('length');
- * getLength([1,2,3]); // => 3
- *
- * // With object
- * const matchObj = iteratee({ x: 1, y: 2 });
- * matchObj({ x: 1, y: 2, z: 3 }); // => true
- */
-declare function iteratee(func: PropertyKey | object): (...args: any[]) => any;
-
-export { iteratee };
Index: de_modules/es-toolkit/dist/compat/util/iteratee.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/iteratee.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Returns the provided function as-is when it is a function type.
- *
- * @template F - The function type
- * @param {F} func - The function to return
- * @returns {F} Returns the provided function unchanged
- *
- * @example
- * const fn = (x: number) => x * 2;
- * const iterateeFn = iteratee(fn);
- * iterateeFn(4); // => 8
- */
-declare function iteratee<F extends (...args: any[]) => any>(func: F): F;
-/**
- * Creates an iteratee function based on the provided property key or object.
- * If given a property key, returns a function that gets that property from objects.
- * If given an object, returns a function that matches objects against the provided one.
- *
- * @param {PropertyKey | object} func - The value to convert to an iteratee
- * @returns {Function} Returns the iteratee function
- *
- * @example
- * // With property key
- * const getLength = iteratee('length');
- * getLength([1,2,3]); // => 3
- *
- * // With object
- * const matchObj = iteratee({ x: 1, y: 2 });
- * matchObj({ x: 1, y: 2, z: 3 }); // => true
- */
-declare function iteratee(func: PropertyKey | object): (...args: any[]) => any;
-
-export { iteratee };
Index: de_modules/es-toolkit/dist/compat/util/iteratee.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/iteratee.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const identity = require('../../function/identity.js');
-const property = require('../object/property.js');
-const matches = require('../predicate/matches.js');
-const matchesProperty = require('../predicate/matchesProperty.js');
-
-function iteratee(value) {
-    if (value == null) {
-        return identity.identity;
-    }
-    switch (typeof value) {
-        case 'function': {
-            return value;
-        }
-        case 'object': {
-            if (Array.isArray(value) && value.length === 2) {
-                return matchesProperty.matchesProperty(value[0], value[1]);
-            }
-            return matches.matches(value);
-        }
-        case 'string':
-        case 'symbol':
-        case 'number': {
-            return property.property(value);
-        }
-    }
-}
-
-exports.iteratee = iteratee;
Index: de_modules/es-toolkit/dist/compat/util/iteratee.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/iteratee.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { identity } from '../../function/identity.mjs';
-import { property } from '../object/property.mjs';
-import { matches } from '../predicate/matches.mjs';
-import { matchesProperty } from '../predicate/matchesProperty.mjs';
-
-function iteratee(value) {
-    if (value == null) {
-        return identity;
-    }
-    switch (typeof value) {
-        case 'function': {
-            return value;
-        }
-        case 'object': {
-            if (Array.isArray(value) && value.length === 2) {
-                return matchesProperty(value[0], value[1]);
-            }
-            return matches(value);
-        }
-        case 'string':
-        case 'symbol':
-        case 'number': {
-            return property(value);
-        }
-    }
-}
-
-export { iteratee };
Index: de_modules/es-toolkit/dist/compat/util/lt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is less than other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is less than other, else `false`.
- *
- * @example
- * lt(1, 3); // true
- * lt(3, 3); // false
- * lt(3, 1); // false
- */
-declare function lt(value: any, other: any): boolean;
-
-export { lt };
Index: de_modules/es-toolkit/dist/compat/util/lt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is less than other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is less than other, else `false`.
- *
- * @example
- * lt(1, 3); // true
- * lt(3, 3); // false
- * lt(3, 1); // false
- */
-declare function lt(value: any, other: any): boolean;
-
-export { lt };
Index: de_modules/es-toolkit/dist/compat/util/lt.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('./toNumber.js');
-
-function lt(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value < other;
-    }
-    return toNumber.toNumber(value) < toNumber.toNumber(other);
-}
-
-exports.lt = lt;
Index: de_modules/es-toolkit/dist/compat/util/lt.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toNumber } from './toNumber.mjs';
-
-function lt(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value < other;
-    }
-    return toNumber(value) < toNumber(other);
-}
-
-export { lt };
Index: de_modules/es-toolkit/dist/compat/util/lte.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lte.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is less than or equal to other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is less than or equal to other, else `false`.
- *
- * @example
- * lte(1, 3); // => true
- * lte(3, 3); // => true
- * lte(3, 1); // => false
- */
-declare function lte(value: any, other: any): boolean;
-
-export { lte };
Index: de_modules/es-toolkit/dist/compat/util/lte.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lte.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if value is less than or equal to other.
- *
- * @param {any} value The value to compare.
- * @param {any} other The other value to compare.
- * @returns {boolean} Returns `true` if value is less than or equal to other, else `false`.
- *
- * @example
- * lte(1, 3); // => true
- * lte(3, 3); // => true
- * lte(3, 1); // => false
- */
-declare function lte(value: any, other: any): boolean;
-
-export { lte };
Index: de_modules/es-toolkit/dist/compat/util/lte.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lte.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('./toNumber.js');
-
-function lte(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value <= other;
-    }
-    return toNumber.toNumber(value) <= toNumber.toNumber(other);
-}
-
-exports.lte = lte;
Index: de_modules/es-toolkit/dist/compat/util/lte.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/lte.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { toNumber } from './toNumber.mjs';
-
-function lte(value, other) {
-    if (typeof value === 'string' && typeof other === 'string') {
-        return value <= other;
-    }
-    return toNumber(value) <= toNumber(other);
-}
-
-export { lte };
Index: de_modules/es-toolkit/dist/compat/util/method.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/method.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a function that invokes the method at `path` of a given object with the provided arguments.
- *
- * @param {PropertyKey | PropertyKey[]} path - The path of the method to invoke.
- * @param {...any} args - The arguments to invoke the method with.
- * @returns {(object?: unknown) => any} - Returns a new function that takes an object and invokes the method at `path` with `args`.
- *
- * @example
- * const object = {
- *   a: {
- *     b: function (x, y) {
- *       return x + y;
- *     }
- *   }
- * };
- *
- * const add = method('a.b', 1, 2);
- * console.log(add(object)); // => 3
- */
-declare function method(path: PropertyKey | readonly PropertyKey[], ...args: any[]): (object: any) => any;
-
-export { method };
Index: de_modules/es-toolkit/dist/compat/util/method.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/method.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a function that invokes the method at `path` of a given object with the provided arguments.
- *
- * @param {PropertyKey | PropertyKey[]} path - The path of the method to invoke.
- * @param {...any} args - The arguments to invoke the method with.
- * @returns {(object?: unknown) => any} - Returns a new function that takes an object and invokes the method at `path` with `args`.
- *
- * @example
- * const object = {
- *   a: {
- *     b: function (x, y) {
- *       return x + y;
- *     }
- *   }
- * };
- *
- * const add = method('a.b', 1, 2);
- * console.log(add(object)); // => 3
- */
-declare function method(path: PropertyKey | readonly PropertyKey[], ...args: any[]): (object: any) => any;
-
-export { method };
Index: de_modules/es-toolkit/dist/compat/util/method.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/method.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const invoke = require('./invoke.js');
-
-function method(path, ...args) {
-    return function (object) {
-        return invoke.invoke(object, path, args);
-    };
-}
-
-exports.method = method;
Index: de_modules/es-toolkit/dist/compat/util/method.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/method.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { invoke } from './invoke.mjs';
-
-function method(path, ...args) {
-    return function (object) {
-        return invoke(object, path, args);
-    };
-}
-
-export { method };
Index: de_modules/es-toolkit/dist/compat/util/methodOf.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/methodOf.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a function that invokes the method at a given path of `object` with the provided arguments.
- *
- * @param {object} object - The object to query.
- * @param {...any} args - The arguments to invoke the method with.
- * @returns {(path: PropertyKey | PropertyKey[]) => any} - Returns a new function that takes a path and invokes the method at `path` with `args`.
- *
- * @example
- * const object = {
- *  a: {
- *   b: function (x, y) {
- *    return x + y;
- *    }
- *   }
- * };
- *
- * const add = methodOf(object, 1, 2);
- * console.log(add('a.b')); // => 3
- */
-declare function methodOf(object: object, ...args: any[]): (path: PropertyKey | readonly PropertyKey[]) => any;
-
-export { methodOf };
Index: de_modules/es-toolkit/dist/compat/util/methodOf.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/methodOf.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a function that invokes the method at a given path of `object` with the provided arguments.
- *
- * @param {object} object - The object to query.
- * @param {...any} args - The arguments to invoke the method with.
- * @returns {(path: PropertyKey | PropertyKey[]) => any} - Returns a new function that takes a path and invokes the method at `path` with `args`.
- *
- * @example
- * const object = {
- *  a: {
- *   b: function (x, y) {
- *    return x + y;
- *    }
- *   }
- * };
- *
- * const add = methodOf(object, 1, 2);
- * console.log(add('a.b')); // => 3
- */
-declare function methodOf(object: object, ...args: any[]): (path: PropertyKey | readonly PropertyKey[]) => any;
-
-export { methodOf };
Index: de_modules/es-toolkit/dist/compat/util/methodOf.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/methodOf.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const invoke = require('./invoke.js');
-
-function methodOf(object, ...args) {
-    return function (path) {
-        return invoke.invoke(object, path, args);
-    };
-}
-
-exports.methodOf = methodOf;
Index: de_modules/es-toolkit/dist/compat/util/methodOf.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/methodOf.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { invoke } from './invoke.mjs';
-
-function methodOf(object, ...args) {
-    return function (path) {
-        return invoke(object, path, args);
-    };
-}
-
-export { methodOf };
Index: de_modules/es-toolkit/dist/compat/util/now.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/now.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.
- *
- * @returns {number} The current time in milliseconds.
- *
- * @example
- * const currentTime = now();
- * console.log(currentTime); // Outputs the current time in milliseconds
- *
- * @example
- * const startTime = now();
- * // Some time-consuming operation
- * const endTime = now();
- * console.log(`Operation took ${endTime - startTime} milliseconds`);
- */
-declare function now(): number;
-
-export { now };
Index: de_modules/es-toolkit/dist/compat/util/now.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/now.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.
- *
- * @returns {number} The current time in milliseconds.
- *
- * @example
- * const currentTime = now();
- * console.log(currentTime); // Outputs the current time in milliseconds
- *
- * @example
- * const startTime = now();
- * // Some time-consuming operation
- * const endTime = now();
- * console.log(`Operation took ${endTime - startTime} milliseconds`);
- */
-declare function now(): number;
-
-export { now };
Index: de_modules/es-toolkit/dist/compat/util/now.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/now.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function now() {
-    return Date.now();
-}
-
-exports.now = now;
Index: de_modules/es-toolkit/dist/compat/util/now.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/now.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function now() {
-    return Date.now();
-}
-
-export { now };
Index: de_modules/es-toolkit/dist/compat/util/over.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/over.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Creates a function that invokes given functions and returns their results as an array.
- *
- * @param {Array<Iteratee | Iteratee[]>} iteratees - The iteratees to invoke.
- * @returns {(...args: any[]) => unknown[]} Returns the new function.
- *
- * @example
- * const func = over([Math.max, Math.min]);
- * const func2 = over(Math.max, Math.min); // same as above
- * func(1, 2, 3, 4);
- * // => [4, 1]
- * func2(1, 2, 3, 4);
- * // => [4, 1]
- *
- * const func = over(['a', 'b']);
- * func({ a: 1, b: 2 });
- * // => [1, 2]
- *
- * const func = over([{ a: 1 }, { b: 2 }]);
- * func({ a: 1, b: 2 });
- * // => [true, false]
- *
- * const func = over([['a', 1], ['b', 2]]);
- * func({ a: 1, b: 2 });
- * // => [true, true]
- */
-declare function over<T>(...iteratees: Array<((...args: any[]) => T) | ReadonlyArray<(...args: any[]) => T>>): (...args: any[]) => T[];
-
-export { over };
Index: de_modules/es-toolkit/dist/compat/util/over.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/over.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Creates a function that invokes given functions and returns their results as an array.
- *
- * @param {Array<Iteratee | Iteratee[]>} iteratees - The iteratees to invoke.
- * @returns {(...args: any[]) => unknown[]} Returns the new function.
- *
- * @example
- * const func = over([Math.max, Math.min]);
- * const func2 = over(Math.max, Math.min); // same as above
- * func(1, 2, 3, 4);
- * // => [4, 1]
- * func2(1, 2, 3, 4);
- * // => [4, 1]
- *
- * const func = over(['a', 'b']);
- * func({ a: 1, b: 2 });
- * // => [1, 2]
- *
- * const func = over([{ a: 1 }, { b: 2 }]);
- * func({ a: 1, b: 2 });
- * // => [true, false]
- *
- * const func = over([['a', 1], ['b', 2]]);
- * func({ a: 1, b: 2 });
- * // => [true, true]
- */
-declare function over<T>(...iteratees: Array<((...args: any[]) => T) | ReadonlyArray<(...args: any[]) => T>>): (...args: any[]) => T[];
-
-export { over };
Index: de_modules/es-toolkit/dist/compat/util/over.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/over.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('./iteratee.js');
-
-function over(...iteratees) {
-    if (iteratees.length === 1 && Array.isArray(iteratees[0])) {
-        iteratees = iteratees[0];
-    }
-    const funcs = iteratees.map(item => iteratee.iteratee(item));
-    return function (...args) {
-        return funcs.map(func => func.apply(this, args));
-    };
-}
-
-exports.over = over;
Index: de_modules/es-toolkit/dist/compat/util/over.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/over.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { iteratee } from './iteratee.mjs';
-
-function over(...iteratees) {
-    if (iteratees.length === 1 && Array.isArray(iteratees[0])) {
-        iteratees = iteratees[0];
-    }
-    const funcs = iteratees.map(item => iteratee(item));
-    return function (...args) {
-        return funcs.map(func => func.apply(this, args));
-    };
-}
-
-export { over };
Index: de_modules/es-toolkit/dist/compat/util/overEvery.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overEvery.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/**
- * Creates a predicate function that checks if a value satisfies all of the given predicates.
- *
- * @template T - The type of the value to be checked.
- * @template U - The first possible type that the value could match.
- * @template V - The second possible type that the value could match.
- *
- * @param {(value: T) => value is U} predicate1 - A function that checks if the value matches type `U`.
- * @param {(value: T) => value is V} predicate2 - A function that checks if the value matches type `V`.
- *
- * @returns {(value: T) => value is U & V} A function that takes a value and returns `true` if all predicates return truthy.
- *
- * @example
- * const func = overEvery(
- *   (value) => typeof value === 'string',
- *   (value) => value === 'hello'
- * );
- *
- * func("hello"); // true
- * func("world"); // false
- * func(42); // false
- */
-declare function overEvery<T, U extends T, V extends T>(predicate1: (value: T) => value is U, predicate2: (value: T) => value is V): (value: T) => value is U & V;
-/**
- * Creates a function that checks if all of the given predicates return truthy for the provided values.
- *
- * @template T - The type of the values to be checked.
- *
- * @param {...Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>} predicates -
- *   A list of predicates or arrays of predicates. Each predicate is a function that takes one or more values of
- *   type `T` and returns a boolean indicating whether the condition is satisfied for those values.
- *
- * @returns {(...values: T[]) => boolean} A function that takes a list of values and returns `true` if all of the
- *   predicates return truthy for the provided values, and `false` otherwise.
- *
- * @example
- * const func = overEvery(
- *   (value) => typeof value === 'string',
- *   (value) => value.length > 3
- * );
- *
- * func("hello"); // true
- * func("hi"); // false
- * func(42); // false
- *
- * @example
- * const func = overEvery([
- *   (value) => value.a > 0,
- *   (value) => value.b > 0
- * ]);
- *
- * func({ a: 1, b: 2 }); // true
- * func({ a: 0, b: 2 }); // false
- *
- * @example
- * const func = overEvery(
- *   (a, b) => typeof a === 'string' && typeof b === 'string',
- *   (a, b) => a.length > 3 && b.length > 3
- * );
- *
- * func("hello", "world"); // true
- * func("hi", "world"); // false
- * func(1, 10); // false
- */
-declare function overEvery<T>(...predicates: Array<((...args: T[]) => boolean) | ReadonlyArray<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
-
-export { overEvery };
Index: de_modules/es-toolkit/dist/compat/util/overEvery.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overEvery.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/**
- * Creates a predicate function that checks if a value satisfies all of the given predicates.
- *
- * @template T - The type of the value to be checked.
- * @template U - The first possible type that the value could match.
- * @template V - The second possible type that the value could match.
- *
- * @param {(value: T) => value is U} predicate1 - A function that checks if the value matches type `U`.
- * @param {(value: T) => value is V} predicate2 - A function that checks if the value matches type `V`.
- *
- * @returns {(value: T) => value is U & V} A function that takes a value and returns `true` if all predicates return truthy.
- *
- * @example
- * const func = overEvery(
- *   (value) => typeof value === 'string',
- *   (value) => value === 'hello'
- * );
- *
- * func("hello"); // true
- * func("world"); // false
- * func(42); // false
- */
-declare function overEvery<T, U extends T, V extends T>(predicate1: (value: T) => value is U, predicate2: (value: T) => value is V): (value: T) => value is U & V;
-/**
- * Creates a function that checks if all of the given predicates return truthy for the provided values.
- *
- * @template T - The type of the values to be checked.
- *
- * @param {...Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>} predicates -
- *   A list of predicates or arrays of predicates. Each predicate is a function that takes one or more values of
- *   type `T` and returns a boolean indicating whether the condition is satisfied for those values.
- *
- * @returns {(...values: T[]) => boolean} A function that takes a list of values and returns `true` if all of the
- *   predicates return truthy for the provided values, and `false` otherwise.
- *
- * @example
- * const func = overEvery(
- *   (value) => typeof value === 'string',
- *   (value) => value.length > 3
- * );
- *
- * func("hello"); // true
- * func("hi"); // false
- * func(42); // false
- *
- * @example
- * const func = overEvery([
- *   (value) => value.a > 0,
- *   (value) => value.b > 0
- * ]);
- *
- * func({ a: 1, b: 2 }); // true
- * func({ a: 0, b: 2 }); // false
- *
- * @example
- * const func = overEvery(
- *   (a, b) => typeof a === 'string' && typeof b === 'string',
- *   (a, b) => a.length > 3 && b.length > 3
- * );
- *
- * func("hello", "world"); // true
- * func("hi", "world"); // false
- * func(1, 10); // false
- */
-declare function overEvery<T>(...predicates: Array<((...args: T[]) => boolean) | ReadonlyArray<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
-
-export { overEvery };
Index: de_modules/es-toolkit/dist/compat/util/overEvery.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overEvery.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('./iteratee.js');
-
-function overEvery(...predicates) {
-    return function (...values) {
-        for (let i = 0; i < predicates.length; ++i) {
-            const predicate = predicates[i];
-            if (!Array.isArray(predicate)) {
-                if (!iteratee.iteratee(predicate).apply(this, values)) {
-                    return false;
-                }
-                continue;
-            }
-            for (let j = 0; j < predicate.length; ++j) {
-                if (!iteratee.iteratee(predicate[j]).apply(this, values)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    };
-}
-
-exports.overEvery = overEvery;
Index: de_modules/es-toolkit/dist/compat/util/overEvery.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overEvery.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { iteratee } from './iteratee.mjs';
-
-function overEvery(...predicates) {
-    return function (...values) {
-        for (let i = 0; i < predicates.length; ++i) {
-            const predicate = predicates[i];
-            if (!Array.isArray(predicate)) {
-                if (!iteratee(predicate).apply(this, values)) {
-                    return false;
-                }
-                continue;
-            }
-            for (let j = 0; j < predicate.length; ++j) {
-                if (!iteratee(predicate[j]).apply(this, values)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    };
-}
-
-export { overEvery };
Index: de_modules/es-toolkit/dist/compat/util/overSome.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overSome.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-/**
- * Creates a predicate function that checks if a value satisfies at least one of the given predicates.
- *
- * @template T - The type of the value to be checked.
- * @template U - The first possible type that the value could match.
- * @template V - The second possible type that the value could match.
- *
- * @param {(value: T) => value is U} predicate1 - A function that checks if the value matches type `U`.
- * @param {(value: T) => value is V} predicate2 - A function that checks if the value matches type `V`.
- *
- * @returns {(value: T) => value is U | V} A function that takes a value and returns `true` if any predicates return truthy.
- *
- * @example
- * const func = overSome(
- *   (value) => typeof value === 'string',
- *   (value) => typeof value === 'number'
- * );
- *
- * func("hello"); // true
- * func(42); // true
- * func([]); // false
- */
-declare function overSome<T, U extends T, V extends T>(predicate1: (value: T) => value is U, predicate2: (value: T) => value is V): (value: T) => value is U | V;
-/**
- * Creates a function that checks if any of the given predicates return truthy for the provided values.
- *
- * @template T - The type of the values to be checked.
- *
- * @param {...Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>} predicates -
- *   A list of predicates or arrays of predicates. Each predicate is a function that takes one or more values of
- *   type `T` and returns a boolean indicating whether the condition is satisfied for those values.
- *
- * @returns {(...values: T[]) => boolean} A function that takes a list of values and returns `true` if any of the
- *   predicates return truthy for the provided values, and `false` otherwise.
- *
- * @example
- * const func = overSome(
- *   (value) => typeof value === 'string',
- *   (value) => typeof value === 'number',
- *   (value) => typeof value === 'symbol'
- * );
- *
- * func("hello"); // true
- * func(42); // true
- * func(Symbol()); // true
- * func([]); // false
- *
- * @example
- * const func = overSome([
- *   (value) => value.a > 0,
- *   (value) => value.b > 0
- * ]);
- *
- * func({ a: 0, b: 2 }); // true
- * func({ a: 0, b: 0 }); // false
- *
- * @example
- * const func = overSome(
- *   (a, b) => typeof a === 'string' && typeof b === 'string',
- *   (a, b) => a > 0 && b > 0
- * );
- *
- * func("hello", "world"); // true
- * func(1, 10); // true
- * func(0, 2); // false
- */
-declare function overSome<T>(...predicates: Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>): (...values: T[]) => boolean;
-
-export { overSome };
Index: de_modules/es-toolkit/dist/compat/util/overSome.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overSome.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-/**
- * Creates a predicate function that checks if a value satisfies at least one of the given predicates.
- *
- * @template T - The type of the value to be checked.
- * @template U - The first possible type that the value could match.
- * @template V - The second possible type that the value could match.
- *
- * @param {(value: T) => value is U} predicate1 - A function that checks if the value matches type `U`.
- * @param {(value: T) => value is V} predicate2 - A function that checks if the value matches type `V`.
- *
- * @returns {(value: T) => value is U | V} A function that takes a value and returns `true` if any predicates return truthy.
- *
- * @example
- * const func = overSome(
- *   (value) => typeof value === 'string',
- *   (value) => typeof value === 'number'
- * );
- *
- * func("hello"); // true
- * func(42); // true
- * func([]); // false
- */
-declare function overSome<T, U extends T, V extends T>(predicate1: (value: T) => value is U, predicate2: (value: T) => value is V): (value: T) => value is U | V;
-/**
- * Creates a function that checks if any of the given predicates return truthy for the provided values.
- *
- * @template T - The type of the values to be checked.
- *
- * @param {...Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>} predicates -
- *   A list of predicates or arrays of predicates. Each predicate is a function that takes one or more values of
- *   type `T` and returns a boolean indicating whether the condition is satisfied for those values.
- *
- * @returns {(...values: T[]) => boolean} A function that takes a list of values and returns `true` if any of the
- *   predicates return truthy for the provided values, and `false` otherwise.
- *
- * @example
- * const func = overSome(
- *   (value) => typeof value === 'string',
- *   (value) => typeof value === 'number',
- *   (value) => typeof value === 'symbol'
- * );
- *
- * func("hello"); // true
- * func(42); // true
- * func(Symbol()); // true
- * func([]); // false
- *
- * @example
- * const func = overSome([
- *   (value) => value.a > 0,
- *   (value) => value.b > 0
- * ]);
- *
- * func({ a: 0, b: 2 }); // true
- * func({ a: 0, b: 0 }); // false
- *
- * @example
- * const func = overSome(
- *   (a, b) => typeof a === 'string' && typeof b === 'string',
- *   (a, b) => a > 0 && b > 0
- * );
- *
- * func("hello", "world"); // true
- * func(1, 10); // true
- * func(0, 2); // false
- */
-declare function overSome<T>(...predicates: Array<((...values: T[]) => boolean) | ReadonlyArray<(...values: T[]) => boolean>>): (...values: T[]) => boolean;
-
-export { overSome };
Index: de_modules/es-toolkit/dist/compat/util/overSome.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overSome.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const iteratee = require('./iteratee.js');
-
-function overSome(...predicates) {
-    return function (...values) {
-        for (let i = 0; i < predicates.length; ++i) {
-            const predicate = predicates[i];
-            if (!Array.isArray(predicate)) {
-                if (iteratee.iteratee(predicate).apply(this, values)) {
-                    return true;
-                }
-                continue;
-            }
-            for (let j = 0; j < predicate.length; ++j) {
-                if (iteratee.iteratee(predicate[j]).apply(this, values)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    };
-}
-
-exports.overSome = overSome;
Index: de_modules/es-toolkit/dist/compat/util/overSome.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/overSome.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { iteratee } from './iteratee.mjs';
-
-function overSome(...predicates) {
-    return function (...values) {
-        for (let i = 0; i < predicates.length; ++i) {
-            const predicate = predicates[i];
-            if (!Array.isArray(predicate)) {
-                if (iteratee(predicate).apply(this, values)) {
-                    return true;
-                }
-                continue;
-            }
-            for (let j = 0; j < predicate.length; ++j) {
-                if (iteratee(predicate[j]).apply(this, values)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    };
-}
-
-export { overSome };
Index: de_modules/es-toolkit/dist/compat/util/stubArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns a new empty array.
- *
- * @returns {Array} A new empty array.
- * @example
- * stubArray() // Returns []
- */
-declare function stubArray(): any[];
-
-export { stubArray };
Index: de_modules/es-toolkit/dist/compat/util/stubArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns a new empty array.
- *
- * @returns {Array} A new empty array.
- * @example
- * stubArray() // Returns []
- */
-declare function stubArray(): any[];
-
-export { stubArray };
Index: de_modules/es-toolkit/dist/compat/util/stubArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function stubArray() {
-    return [];
-}
-
-exports.stubArray = stubArray;
Index: de_modules/es-toolkit/dist/compat/util/stubArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function stubArray() {
-    return [];
-}
-
-export { stubArray };
Index: de_modules/es-toolkit/dist/compat/util/stubFalse.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubFalse.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns false.
- *
- * @returns {boolean} false.
- * @example
- * stubFalse() // Returns false
- */
-declare function stubFalse(): false;
-/**
- * Returns false.
- *
- * @returns {boolean} false.
- * @example
- * stubFalse() // Returns false
- */
-declare function stubFalse(): false;
-
-export { stubFalse };
Index: de_modules/es-toolkit/dist/compat/util/stubFalse.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubFalse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns false.
- *
- * @returns {boolean} false.
- * @example
- * stubFalse() // Returns false
- */
-declare function stubFalse(): false;
-/**
- * Returns false.
- *
- * @returns {boolean} false.
- * @example
- * stubFalse() // Returns false
- */
-declare function stubFalse(): false;
-
-export { stubFalse };
Index: de_modules/es-toolkit/dist/compat/util/stubFalse.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubFalse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function stubFalse() {
-    return false;
-}
-
-exports.stubFalse = stubFalse;
Index: de_modules/es-toolkit/dist/compat/util/stubFalse.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubFalse.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function stubFalse() {
-    return false;
-}
-
-export { stubFalse };
Index: de_modules/es-toolkit/dist/compat/util/stubObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns an empty object.
- *
- * @returns {Object} An empty object.
- * @example
- * stubObject() // Returns {}
- */
-declare function stubObject(): any;
-
-export { stubObject };
Index: de_modules/es-toolkit/dist/compat/util/stubObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns an empty object.
- *
- * @returns {Object} An empty object.
- * @example
- * stubObject() // Returns {}
- */
-declare function stubObject(): any;
-
-export { stubObject };
Index: de_modules/es-toolkit/dist/compat/util/stubObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function stubObject() {
-    return {};
-}
-
-exports.stubObject = stubObject;
Index: de_modules/es-toolkit/dist/compat/util/stubObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function stubObject() {
-    return {};
-}
-
-export { stubObject };
Index: de_modules/es-toolkit/dist/compat/util/stubString.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubString.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns an empty string.
- *
- * @returns {string} An empty string.
- * @example
- * stubString() // Returns ''
- */
-declare function stubString(): string;
-
-export { stubString };
Index: de_modules/es-toolkit/dist/compat/util/stubString.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-/**
- * Returns an empty string.
- *
- * @returns {string} An empty string.
- * @example
- * stubString() // Returns ''
- */
-declare function stubString(): string;
-
-export { stubString };
Index: de_modules/es-toolkit/dist/compat/util/stubString.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function stubString() {
-    return '';
-}
-
-exports.stubString = stubString;
Index: de_modules/es-toolkit/dist/compat/util/stubString.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubString.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function stubString() {
-    return '';
-}
-
-export { stubString };
Index: de_modules/es-toolkit/dist/compat/util/stubTrue.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubTrue.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns true.
- *
- * @returns {boolean} true.
- * @example
- * stubTrue() // Returns true
- */
-declare function stubTrue(): true;
-/**
- * Returns true.
- *
- * @returns {boolean} true.
- * @example
- * stubTrue() // Returns true
- */
-declare function stubTrue(): true;
-
-export { stubTrue };
Index: de_modules/es-toolkit/dist/compat/util/stubTrue.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubTrue.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Returns true.
- *
- * @returns {boolean} true.
- * @example
- * stubTrue() // Returns true
- */
-declare function stubTrue(): true;
-/**
- * Returns true.
- *
- * @returns {boolean} true.
- * @example
- * stubTrue() // Returns true
- */
-declare function stubTrue(): true;
-
-export { stubTrue };
Index: de_modules/es-toolkit/dist/compat/util/stubTrue.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubTrue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function stubTrue() {
-    return true;
-}
-
-exports.stubTrue = stubTrue;
Index: de_modules/es-toolkit/dist/compat/util/stubTrue.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/stubTrue.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function stubTrue() {
-    return true;
-}
-
-export { stubTrue };
Index: de_modules/es-toolkit/dist/compat/util/times.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/times.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Invokes the iteratee function n times, returning an array of the results.
- *
- * @template T The return type of the iteratee function.
- * @param {number} n - The number of times to invoke iteratee.
- * @param {(num: number) => T} iteratee - The function to invoke for each index.
- * @returns {T[]} An array containing the results of invoking iteratee n times.
- * @example
- * times(3, (i) => i * 2); // => [0, 2, 4]
- * times(2, () => 'es-toolkit'); // => ['es-toolkit', 'es-toolkit']
- */
-declare function times<T>(n: number, iteratee: (num: number) => T): T[];
-/**
- * Invokes the default iteratee function n times, returning an array of indices.
- *
- * @param {number} n - The number of times to invoke the default iteratee.
- * @returns {number[]} An array containing indices from 0 to n-1.
- * @example
- * times(3); // => [0, 1, 2]
- */
-declare function times(n: number): number[];
-
-export { times };
Index: de_modules/es-toolkit/dist/compat/util/times.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/times.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Invokes the iteratee function n times, returning an array of the results.
- *
- * @template T The return type of the iteratee function.
- * @param {number} n - The number of times to invoke iteratee.
- * @param {(num: number) => T} iteratee - The function to invoke for each index.
- * @returns {T[]} An array containing the results of invoking iteratee n times.
- * @example
- * times(3, (i) => i * 2); // => [0, 2, 4]
- * times(2, () => 'es-toolkit'); // => ['es-toolkit', 'es-toolkit']
- */
-declare function times<T>(n: number, iteratee: (num: number) => T): T[];
-/**
- * Invokes the default iteratee function n times, returning an array of indices.
- *
- * @param {number} n - The number of times to invoke the default iteratee.
- * @returns {number[]} An array containing indices from 0 to n-1.
- * @example
- * times(3); // => [0, 1, 2]
- */
-declare function times(n: number): number[];
-
-export { times };
Index: de_modules/es-toolkit/dist/compat/util/times.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/times.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('./toInteger.js');
-
-function times(n, getValue) {
-    n = toInteger.toInteger(n);
-    if (n < 1 || !Number.isSafeInteger(n)) {
-        return [];
-    }
-    const result = new Array(n);
-    for (let i = 0; i < n; i++) {
-        result[i] = typeof getValue === 'function' ? getValue(i) : i;
-    }
-    return result;
-}
-
-exports.times = times;
Index: de_modules/es-toolkit/dist/compat/util/times.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/times.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { toInteger } from './toInteger.mjs';
-
-function times(n, getValue) {
-    n = toInteger(n);
-    if (n < 1 || !Number.isSafeInteger(n)) {
-        return [];
-    }
-    const result = new Array(n);
-    for (let i = 0; i < n; i++) {
-        result[i] = typeof getValue === 'function' ? getValue(i) : i;
-    }
-    return result;
-}
-
-export { times };
Index: de_modules/es-toolkit/dist/compat/util/toArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Converts a record or null/undefined to an array of its values.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} value - The record or null/undefined to convert.
- * @returns {T[]} Returns an array of the record's values or an empty array if null/undefined.
- *
- * @example
- * toArray({ 'a': 1, 'b': 2 }) // => returns [1, 2]
- * toArray(null) // => returns []
- */
-declare function toArray<T>(value: Record<string, T> | Record<number, T> | null | undefined): T[];
-/**
- * Converts a value to an array of its values.
- *
- * @template T
- * @param {T} value - The value to convert.
- * @returns {Array<T[keyof T]>} Returns an array of the value's values.
- *
- * @example
- * toArray({ x: 10, y: 20 }) // => returns [10, 20]
- * toArray('abc') // => returns ['a', 'b', 'c']
- */
-declare function toArray<T>(value: T): Array<T[keyof T]>;
-/**
- * Converts an undefined value to an empty array.
- *
- * @returns {any[]} Returns an empty array.
- *
- * @example
- * toArray() // => returns []
- */
-declare function toArray(): any[];
-
-export { toArray };
Index: de_modules/es-toolkit/dist/compat/util/toArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Converts a record or null/undefined to an array of its values.
- *
- * @template T
- * @param {Record<string, T> | Record<number, T> | null | undefined} value - The record or null/undefined to convert.
- * @returns {T[]} Returns an array of the record's values or an empty array if null/undefined.
- *
- * @example
- * toArray({ 'a': 1, 'b': 2 }) // => returns [1, 2]
- * toArray(null) // => returns []
- */
-declare function toArray<T>(value: Record<string, T> | Record<number, T> | null | undefined): T[];
-/**
- * Converts a value to an array of its values.
- *
- * @template T
- * @param {T} value - The value to convert.
- * @returns {Array<T[keyof T]>} Returns an array of the value's values.
- *
- * @example
- * toArray({ x: 10, y: 20 }) // => returns [10, 20]
- * toArray('abc') // => returns ['a', 'b', 'c']
- */
-declare function toArray<T>(value: T): Array<T[keyof T]>;
-/**
- * Converts an undefined value to an empty array.
- *
- * @returns {any[]} Returns an empty array.
- *
- * @example
- * toArray() // => returns []
- */
-declare function toArray(): any[];
-
-export { toArray };
Index: de_modules/es-toolkit/dist/compat/util/toArray.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayLike = require('../predicate/isArrayLike.js');
-const isMap = require('../predicate/isMap.js');
-
-function toArray(value) {
-    if (value == null) {
-        return [];
-    }
-    if (isArrayLike.isArrayLike(value) || isMap.isMap(value)) {
-        return Array.from(value);
-    }
-    if (typeof value === 'object') {
-        return Object.values(value);
-    }
-    return [];
-}
-
-exports.toArray = toArray;
Index: de_modules/es-toolkit/dist/compat/util/toArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { isArrayLike } from '../predicate/isArrayLike.mjs';
-import { isMap } from '../predicate/isMap.mjs';
-
-function toArray(value) {
-    if (value == null) {
-        return [];
-    }
-    if (isArrayLike(value) || isMap(value)) {
-        return Array.from(value);
-    }
-    if (typeof value === 'object') {
-        return Object.values(value);
-    }
-    return [];
-}
-
-export { toArray };
Index: de_modules/es-toolkit/dist/compat/util/toFinite.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toFinite.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts `value` to a finite number.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toFinite(3.2); // => 3.2
- * toFinite(Number.MIN_VALUE); // => 5e-324
- * toFinite(Infinity); // => 1.7976931348623157e+308
- * toFinite('3.2'); // => 3.2
- * toFinite(Symbol.iterator); // => 0
- * toFinite(NaN); // => 0
- */
-declare function toFinite(value: any): number;
-
-export { toFinite };
Index: de_modules/es-toolkit/dist/compat/util/toFinite.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toFinite.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts `value` to a finite number.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toFinite(3.2); // => 3.2
- * toFinite(Number.MIN_VALUE); // => 5e-324
- * toFinite(Infinity); // => 1.7976931348623157e+308
- * toFinite('3.2'); // => 3.2
- * toFinite(Symbol.iterator); // => 0
- * toFinite(NaN); // => 0
- */
-declare function toFinite(value: any): number;
-
-export { toFinite };
Index: de_modules/es-toolkit/dist/compat/util/toFinite.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toFinite.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toNumber = require('./toNumber.js');
-
-function toFinite(value) {
-    if (!value) {
-        return value === 0 ? value : 0;
-    }
-    value = toNumber.toNumber(value);
-    if (value === Infinity || value === -Infinity) {
-        const sign = value < 0 ? -1 : 1;
-        return sign * Number.MAX_VALUE;
-    }
-    return value === value ? value : 0;
-}
-
-exports.toFinite = toFinite;
Index: de_modules/es-toolkit/dist/compat/util/toFinite.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toFinite.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { toNumber } from './toNumber.mjs';
-
-function toFinite(value) {
-    if (!value) {
-        return value === 0 ? value : 0;
-    }
-    value = toNumber(value);
-    if (value === Infinity || value === -Infinity) {
-        const sign = value < 0 ? -1 : 1;
-        return sign * Number.MAX_VALUE;
-    }
-    return value === value ? value : 0;
-}
-
-export { toFinite };
Index: de_modules/es-toolkit/dist/compat/util/toInteger.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toInteger.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `value` to an integer.
- *
- * This function first converts `value` to a finite number. If the result has any decimal places,
- * they are removed by rounding down to the nearest whole number.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toInteger(3.2); // => 3
- * toInteger(Number.MIN_VALUE); // => 0
- * toInteger(Infinity); // => 1.7976931348623157e+308
- * toInteger('3.2'); // => 3
- * toInteger(Symbol.iterator); // => 0
- * toInteger(NaN); // => 0
- */
-declare function toInteger(value: any): number;
-
-export { toInteger };
Index: de_modules/es-toolkit/dist/compat/util/toInteger.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `value` to an integer.
- *
- * This function first converts `value` to a finite number. If the result has any decimal places,
- * they are removed by rounding down to the nearest whole number.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toInteger(3.2); // => 3
- * toInteger(Number.MIN_VALUE); // => 0
- * toInteger(Infinity); // => 1.7976931348623157e+308
- * toInteger('3.2'); // => 3
- * toInteger(Symbol.iterator); // => 0
- * toInteger(NaN); // => 0
- */
-declare function toInteger(value: any): number;
-
-export { toInteger };
Index: de_modules/es-toolkit/dist/compat/util/toInteger.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toFinite = require('./toFinite.js');
-
-function toInteger(value) {
-    const finite = toFinite.toFinite(value);
-    const remainder = finite % 1;
-    return remainder ? finite - remainder : finite;
-}
-
-exports.toInteger = toInteger;
Index: de_modules/es-toolkit/dist/compat/util/toInteger.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toInteger.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { toFinite } from './toFinite.mjs';
-
-function toInteger(value) {
-    const finite = toFinite(value);
-    const remainder = finite % 1;
-    return remainder ? finite - remainder : finite;
-}
-
-export { toInteger };
Index: de_modules/es-toolkit/dist/compat/util/toLength.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toLength.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Converts the value to a valid index. A valid index is an integer that is greater than or equal to `0` and less than or equal to `2^32 - 1`.
- *
- * It converts the given value to a number and floors it to an integer. If the value is less than `0`, it returns `0`. If the value exceeds `2^32 - 1`, it returns `2^32 - 1`.
- *
- * @param {unknown} value - The value to convert to a valid index.
- * @returns {number} The converted value.
- *
- * @example
- * toLength(3.2)  // => 3
- * toLength(-1)   // => 0
- * toLength(1.9)  // => 1
- * toLength('42') // => 42
- * toLength(null) // => 0
- */
-declare function toLength(value: any): number;
-
-export { toLength };
Index: de_modules/es-toolkit/dist/compat/util/toLength.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toLength.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Converts the value to a valid index. A valid index is an integer that is greater than or equal to `0` and less than or equal to `2^32 - 1`.
- *
- * It converts the given value to a number and floors it to an integer. If the value is less than `0`, it returns `0`. If the value exceeds `2^32 - 1`, it returns `2^32 - 1`.
- *
- * @param {unknown} value - The value to convert to a valid index.
- * @returns {number} The converted value.
- *
- * @example
- * toLength(3.2)  // => 3
- * toLength(-1)   // => 0
- * toLength(1.9)  // => 1
- * toLength('42') // => 42
- * toLength(null) // => 0
- */
-declare function toLength(value: any): number;
-
-export { toLength };
Index: de_modules/es-toolkit/dist/compat/util/toLength.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toLength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const MAX_ARRAY_LENGTH = require('../_internal/MAX_ARRAY_LENGTH.js');
-const clamp = require('../math/clamp.js');
-
-function toLength(value) {
-    if (value == null) {
-        return 0;
-    }
-    const length = Math.floor(Number(value));
-    return clamp.clamp(length, 0, MAX_ARRAY_LENGTH.MAX_ARRAY_LENGTH);
-}
-
-exports.toLength = toLength;
Index: de_modules/es-toolkit/dist/compat/util/toLength.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toLength.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { MAX_ARRAY_LENGTH } from '../_internal/MAX_ARRAY_LENGTH.mjs';
-import { clamp } from '../math/clamp.mjs';
-
-function toLength(value) {
-    if (value == null) {
-        return 0;
-    }
-    const length = Math.floor(Number(value));
-    return clamp(length, 0, MAX_ARRAY_LENGTH);
-}
-
-export { toLength };
Index: de_modules/es-toolkit/dist/compat/util/toNumber.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toNumber.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts `value` to a number.
- *
- * Unlike `Number()`, this function returns `NaN` for symbols.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toNumber(3.2); // => 3.2
- * toNumber(Number.MIN_VALUE); // => 5e-324
- * toNumber(Infinity); // => Infinity
- * toNumber('3.2'); // => 3.2
- * toNumber(Symbol.iterator); // => NaN
- * toNumber(NaN); // => NaN
- */
-declare function toNumber(value: any): number;
-
-export { toNumber };
Index: de_modules/es-toolkit/dist/compat/util/toNumber.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts `value` to a number.
- *
- * Unlike `Number()`, this function returns `NaN` for symbols.
- *
- * @param {unknown} value - The value to convert.
- * @returns {number} Returns the number.
- *
- * @example
- * toNumber(3.2); // => 3.2
- * toNumber(Number.MIN_VALUE); // => 5e-324
- * toNumber(Infinity); // => Infinity
- * toNumber('3.2'); // => 3.2
- * toNumber(Symbol.iterator); // => NaN
- * toNumber(NaN); // => NaN
- */
-declare function toNumber(value: any): number;
-
-export { toNumber };
Index: de_modules/es-toolkit/dist/compat/util/toNumber.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isSymbol = require('../predicate/isSymbol.js');
-
-function toNumber(value) {
-    if (isSymbol.isSymbol(value)) {
-        return NaN;
-    }
-    return Number(value);
-}
-
-exports.toNumber = toNumber;
Index: de_modules/es-toolkit/dist/compat/util/toNumber.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toNumber.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { isSymbol } from '../predicate/isSymbol.mjs';
-
-function toNumber(value) {
-    if (isSymbol(value)) {
-        return NaN;
-    }
-    return Number(value);
-}
-
-export { toNumber };
Index: de_modules/es-toolkit/dist/compat/util/toPath.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPath.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts a deep key string into an array of path segments.
- *
- * This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.
- *
- * @param {any} deepKey - The deep key string to convert.
- * @returns {string[]} An array of strings, each representing a segment of the path.
- *
- * Examples:
- *
- * toPath('a.b.c') // Returns ['a', 'b', 'c']
- * toPath('a[b][c]') // Returns ['a', 'b', 'c']
- * toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']
- * toPath('a["b.c"].d') // Returns ['a', 'b.c', 'd']
- * toPath('') // Returns []
- * toPath('.a[b].c.d[e]["f.g"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']
- */
-declare function toPath(deepKey: any): string[];
-
-export { toPath };
Index: de_modules/es-toolkit/dist/compat/util/toPath.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPath.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts a deep key string into an array of path segments.
- *
- * This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.
- *
- * @param {any} deepKey - The deep key string to convert.
- * @returns {string[]} An array of strings, each representing a segment of the path.
- *
- * Examples:
- *
- * toPath('a.b.c') // Returns ['a', 'b', 'c']
- * toPath('a[b][c]') // Returns ['a', 'b', 'c']
- * toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']
- * toPath('a["b.c"].d') // Returns ['a', 'b.c', 'd']
- * toPath('') // Returns []
- * toPath('.a[b].c.d[e]["f.g"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']
- */
-declare function toPath(deepKey: any): string[];
-
-export { toPath };
Index: de_modules/es-toolkit/dist/compat/util/toPath.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPath.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toString = require('./toString.js');
-const toKey = require('../_internal/toKey.js');
-
-function toPath(deepKey) {
-    if (Array.isArray(deepKey)) {
-        return deepKey.map(toKey.toKey);
-    }
-    if (typeof deepKey === 'symbol') {
-        return [deepKey];
-    }
-    deepKey = toString.toString(deepKey);
-    const result = [];
-    const length = deepKey.length;
-    if (length === 0) {
-        return result;
-    }
-    let index = 0;
-    let key = '';
-    let quoteChar = '';
-    let bracket = false;
-    if (deepKey.charCodeAt(0) === 46) {
-        result.push('');
-        index++;
-    }
-    while (index < length) {
-        const char = deepKey[index];
-        if (quoteChar) {
-            if (char === '\\' && index + 1 < length) {
-                index++;
-                key += deepKey[index];
-            }
-            else if (char === quoteChar) {
-                quoteChar = '';
-            }
-            else {
-                key += char;
-            }
-        }
-        else if (bracket) {
-            if (char === '"' || char === "'") {
-                quoteChar = char;
-            }
-            else if (char === ']') {
-                bracket = false;
-                result.push(key);
-                key = '';
-            }
-            else {
-                key += char;
-            }
-        }
-        else {
-            if (char === '[') {
-                bracket = true;
-                if (key) {
-                    result.push(key);
-                    key = '';
-                }
-            }
-            else if (char === '.') {
-                if (key) {
-                    result.push(key);
-                    key = '';
-                }
-            }
-            else {
-                key += char;
-            }
-        }
-        index++;
-    }
-    if (key) {
-        result.push(key);
-    }
-    return result;
-}
-
-exports.toPath = toPath;
Index: de_modules/es-toolkit/dist/compat/util/toPath.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPath.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import { toString } from './toString.mjs';
-import { toKey } from '../_internal/toKey.mjs';
-
-function toPath(deepKey) {
-    if (Array.isArray(deepKey)) {
-        return deepKey.map(toKey);
-    }
-    if (typeof deepKey === 'symbol') {
-        return [deepKey];
-    }
-    deepKey = toString(deepKey);
-    const result = [];
-    const length = deepKey.length;
-    if (length === 0) {
-        return result;
-    }
-    let index = 0;
-    let key = '';
-    let quoteChar = '';
-    let bracket = false;
-    if (deepKey.charCodeAt(0) === 46) {
-        result.push('');
-        index++;
-    }
-    while (index < length) {
-        const char = deepKey[index];
-        if (quoteChar) {
-            if (char === '\\' && index + 1 < length) {
-                index++;
-                key += deepKey[index];
-            }
-            else if (char === quoteChar) {
-                quoteChar = '';
-            }
-            else {
-                key += char;
-            }
-        }
-        else if (bracket) {
-            if (char === '"' || char === "'") {
-                quoteChar = char;
-            }
-            else if (char === ']') {
-                bracket = false;
-                result.push(key);
-                key = '';
-            }
-            else {
-                key += char;
-            }
-        }
-        else {
-            if (char === '[') {
-                bracket = true;
-                if (key) {
-                    result.push(key);
-                    key = '';
-                }
-            }
-            else if (char === '.') {
-                if (key) {
-                    result.push(key);
-                    key = '';
-                }
-            }
-            else {
-                key += char;
-            }
-        }
-        index++;
-    }
-    if (key) {
-        result.push(key);
-    }
-    return result;
-}
-
-export { toPath };
Index: de_modules/es-toolkit/dist/compat/util/toPlainObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPlainObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts value to a plain object flattening inherited enumerable string keyed properties of value to own properties of the plain object.
- *
- * @param {any} value The value to convert.
- * @returns {any} Returns the converted plain object.
- *
- * @example
- * function Foo() {
- *   this.b = 2;
- * }
- * Foo.prototype.c = 3;
- * toPlainObject(new Foo()); // { b: 2, c: 3 }
- */
-declare function toPlainObject(value?: any): any;
-
-export { toPlainObject };
Index: de_modules/es-toolkit/dist/compat/util/toPlainObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPlainObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts value to a plain object flattening inherited enumerable string keyed properties of value to own properties of the plain object.
- *
- * @param {any} value The value to convert.
- * @returns {any} Returns the converted plain object.
- *
- * @example
- * function Foo() {
- *   this.b = 2;
- * }
- * Foo.prototype.c = 3;
- * toPlainObject(new Foo()); // { b: 2, c: 3 }
- */
-declare function toPlainObject(value?: any): any;
-
-export { toPlainObject };
Index: de_modules/es-toolkit/dist/compat/util/toPlainObject.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPlainObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const keysIn = require('../object/keysIn.js');
-
-function toPlainObject(value) {
-    const plainObject = {};
-    const valueKeys = keysIn.keysIn(value);
-    for (let i = 0; i < valueKeys.length; i++) {
-        const key = valueKeys[i];
-        const objValue = value[key];
-        if (key === '__proto__') {
-            Object.defineProperty(plainObject, key, {
-                configurable: true,
-                enumerable: true,
-                value: objValue,
-                writable: true,
-            });
-        }
-        else {
-            plainObject[key] = objValue;
-        }
-    }
-    return plainObject;
-}
-
-exports.toPlainObject = toPlainObject;
Index: de_modules/es-toolkit/dist/compat/util/toPlainObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toPlainObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { keysIn } from '../object/keysIn.mjs';
-
-function toPlainObject(value) {
-    const plainObject = {};
-    const valueKeys = keysIn(value);
-    for (let i = 0; i < valueKeys.length; i++) {
-        const key = valueKeys[i];
-        const objValue = value[key];
-        if (key === '__proto__') {
-            Object.defineProperty(plainObject, key, {
-                configurable: true,
-                enumerable: true,
-                value: objValue,
-                writable: true,
-            });
-        }
-        else {
-            plainObject[key] = objValue;
-        }
-    }
-    return plainObject;
-}
-
-export { toPlainObject };
Index: de_modules/es-toolkit/dist/compat/util/toSafeInteger.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toSafeInteger.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `value` to a safe integer.
- *
- * A safe integer can be compared and represented correctly.
- *
- * @param {any} value - The value to convert.
- * @returns {number} Returns the value converted to a safe integer.
- *
- * @example
- * toSafeInteger(3.2); // => 3
- * toSafeInteger(Number.MAX_VALUE); // => 9007199254740991
- * toSafeInteger(Infinity); // => 9007199254740991
- * toSafeInteger('3.2'); // => 3
- * toSafeInteger(NaN); // => 0
- * toSafeInteger(null); // => 0
- * toSafeInteger(-Infinity); // => -9007199254740991
- */
-declare function toSafeInteger(value: any): number;
-
-export { toSafeInteger };
Index: de_modules/es-toolkit/dist/compat/util/toSafeInteger.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toSafeInteger.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Converts `value` to a safe integer.
- *
- * A safe integer can be compared and represented correctly.
- *
- * @param {any} value - The value to convert.
- * @returns {number} Returns the value converted to a safe integer.
- *
- * @example
- * toSafeInteger(3.2); // => 3
- * toSafeInteger(Number.MAX_VALUE); // => 9007199254740991
- * toSafeInteger(Infinity); // => 9007199254740991
- * toSafeInteger('3.2'); // => 3
- * toSafeInteger(NaN); // => 0
- * toSafeInteger(null); // => 0
- * toSafeInteger(-Infinity); // => -9007199254740991
- */
-declare function toSafeInteger(value: any): number;
-
-export { toSafeInteger };
Index: de_modules/es-toolkit/dist/compat/util/toSafeInteger.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toSafeInteger.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const toInteger = require('./toInteger.js');
-const MAX_SAFE_INTEGER = require('../_internal/MAX_SAFE_INTEGER.js');
-const clamp = require('../math/clamp.js');
-
-function toSafeInteger(value) {
-    if (value == null) {
-        return 0;
-    }
-    return clamp.clamp(toInteger.toInteger(value), -MAX_SAFE_INTEGER.MAX_SAFE_INTEGER, MAX_SAFE_INTEGER.MAX_SAFE_INTEGER);
-}
-
-exports.toSafeInteger = toSafeInteger;
Index: de_modules/es-toolkit/dist/compat/util/toSafeInteger.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toSafeInteger.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { toInteger } from './toInteger.mjs';
-import { MAX_SAFE_INTEGER } from '../_internal/MAX_SAFE_INTEGER.mjs';
-import { clamp } from '../math/clamp.mjs';
-
-function toSafeInteger(value) {
-    if (value == null) {
-        return 0;
-    }
-    return clamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
-}
-
-export { toSafeInteger };
Index: de_modules/es-toolkit/dist/compat/util/toString.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toString.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts `value` to a string.
- *
- * An empty string is returned for `null` and `undefined` values.
- * The sign of `-0` is preserved.
- *
- * @param {any} value - The value to convert.
- * @returns {string} Returns the converted string.
- *
- * @example
- * toString(null) // returns ''
- * toString(undefined) // returns ''
- * toString(-0) // returns '-0'
- * toString([1, 2, -0]) // returns '1,2,-0'
- * toString([Symbol('a'), Symbol('b')]) // returns 'Symbol(a),Symbol(b)'
- */
-declare function toString(value: any): string;
-
-export { toString };
Index: de_modules/es-toolkit/dist/compat/util/toString.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts `value` to a string.
- *
- * An empty string is returned for `null` and `undefined` values.
- * The sign of `-0` is preserved.
- *
- * @param {any} value - The value to convert.
- * @returns {string} Returns the converted string.
- *
- * @example
- * toString(null) // returns ''
- * toString(undefined) // returns ''
- * toString(-0) // returns '-0'
- * toString([1, 2, -0]) // returns '1,2,-0'
- * toString([Symbol('a'), Symbol('b')]) // returns 'Symbol(a),Symbol(b)'
- */
-declare function toString(value: any): string;
-
-export { toString };
Index: de_modules/es-toolkit/dist/compat/util/toString.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function toString(value) {
-    if (value == null) {
-        return '';
-    }
-    if (typeof value === 'string') {
-        return value;
-    }
-    if (Array.isArray(value)) {
-        return value.map(toString).join(',');
-    }
-    const result = String(value);
-    if (result === '0' && Object.is(Number(value), -0)) {
-        return '-0';
-    }
-    return result;
-}
-
-exports.toString = toString;
Index: de_modules/es-toolkit/dist/compat/util/toString.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/toString.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-function toString(value) {
-    if (value == null) {
-        return '';
-    }
-    if (typeof value === 'string') {
-        return value;
-    }
-    if (Array.isArray(value)) {
-        return value.map(toString).join(',');
-    }
-    const result = String(value);
-    if (result === '0' && Object.is(Number(value), -0)) {
-        return '-0';
-    }
-    return result;
-}
-
-export { toString };
Index: de_modules/es-toolkit/dist/compat/util/uniqueId.d.mts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/uniqueId.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Generates a unique identifier, optionally prefixed with a given string.
- *
- * @param {string} [prefix] - An optional string to prefix the unique identifier.
- *                            If not provided or not a string, only the unique
- *                            numeric identifier is returned.
- * @returns {string} A string containing the unique identifier, with the optional
- *                   prefix if provided.
- *
- * @example
- * // Generate a unique ID with a prefix
- * uniqueId('user_');  // => 'user_1'
- *
- * @example
- * // Generate a unique ID without a prefix
- * uniqueId();  // => '2'
- *
- * @example
- * // Subsequent calls increment the internal counter
- * uniqueId('item_');  // => 'item_3'
- * uniqueId();         // => '4'
- */
-declare function uniqueId(prefix?: string): string;
-
-export { uniqueId };
Index: de_modules/es-toolkit/dist/compat/util/uniqueId.d.ts
===================================================================
--- node_modules/es-toolkit/dist/compat/util/uniqueId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Generates a unique identifier, optionally prefixed with a given string.
- *
- * @param {string} [prefix] - An optional string to prefix the unique identifier.
- *                            If not provided or not a string, only the unique
- *                            numeric identifier is returned.
- * @returns {string} A string containing the unique identifier, with the optional
- *                   prefix if provided.
- *
- * @example
- * // Generate a unique ID with a prefix
- * uniqueId('user_');  // => 'user_1'
- *
- * @example
- * // Generate a unique ID without a prefix
- * uniqueId();  // => '2'
- *
- * @example
- * // Subsequent calls increment the internal counter
- * uniqueId('item_');  // => 'item_3'
- * uniqueId();         // => '4'
- */
-declare function uniqueId(prefix?: string): string;
-
-export { uniqueId };
Index: de_modules/es-toolkit/dist/compat/util/uniqueId.js
===================================================================
--- node_modules/es-toolkit/dist/compat/util/uniqueId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-let idCounter = 0;
-function uniqueId(prefix = '') {
-    const id = ++idCounter;
-    return `${prefix}${id}`;
-}
-
-exports.uniqueId = uniqueId;
Index: de_modules/es-toolkit/dist/compat/util/uniqueId.mjs
===================================================================
--- node_modules/es-toolkit/dist/compat/util/uniqueId.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-let idCounter = 0;
-function uniqueId(prefix = '') {
-    const id = ++idCounter;
-    return `${prefix}${id}`;
-}
-
-export { uniqueId };
Index: de_modules/es-toolkit/dist/error/AbortError.d.mts
===================================================================
--- node_modules/es-toolkit/dist/error/AbortError.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
- * An error class representing an aborted operation.
- * @augments Error
- */
-declare class AbortError extends Error {
-    constructor(message?: string);
-}
-
-export { AbortError };
Index: de_modules/es-toolkit/dist/error/AbortError.d.ts
===================================================================
--- node_modules/es-toolkit/dist/error/AbortError.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
- * An error class representing an aborted operation.
- * @augments Error
- */
-declare class AbortError extends Error {
-    constructor(message?: string);
-}
-
-export { AbortError };
Index: de_modules/es-toolkit/dist/error/AbortError.js
===================================================================
--- node_modules/es-toolkit/dist/error/AbortError.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-class AbortError extends Error {
-    constructor(message = 'The operation was aborted') {
-        super(message);
-        this.name = 'AbortError';
-    }
-}
-
-exports.AbortError = AbortError;
Index: de_modules/es-toolkit/dist/error/AbortError.mjs
===================================================================
--- node_modules/es-toolkit/dist/error/AbortError.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-class AbortError extends Error {
-    constructor(message = 'The operation was aborted') {
-        super(message);
-        this.name = 'AbortError';
-    }
-}
-
-export { AbortError };
Index: de_modules/es-toolkit/dist/error/TimeoutError.d.mts
===================================================================
--- node_modules/es-toolkit/dist/error/TimeoutError.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
- * An error class representing an timeout operation.
- * @augments Error
- */
-declare class TimeoutError extends Error {
-    constructor(message?: string);
-}
-
-export { TimeoutError };
Index: de_modules/es-toolkit/dist/error/TimeoutError.d.ts
===================================================================
--- node_modules/es-toolkit/dist/error/TimeoutError.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
- * An error class representing an timeout operation.
- * @augments Error
- */
-declare class TimeoutError extends Error {
-    constructor(message?: string);
-}
-
-export { TimeoutError };
Index: de_modules/es-toolkit/dist/error/TimeoutError.js
===================================================================
--- node_modules/es-toolkit/dist/error/TimeoutError.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-class TimeoutError extends Error {
-    constructor(message = 'The operation was timed out') {
-        super(message);
-        this.name = 'TimeoutError';
-    }
-}
-
-exports.TimeoutError = TimeoutError;
Index: de_modules/es-toolkit/dist/error/TimeoutError.mjs
===================================================================
--- node_modules/es-toolkit/dist/error/TimeoutError.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-class TimeoutError extends Error {
-    constructor(message = 'The operation was timed out') {
-        super(message);
-        this.name = 'TimeoutError';
-    }
-}
-
-export { TimeoutError };
Index: de_modules/es-toolkit/dist/error/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/error/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export { AbortError } from './AbortError.mjs';
-export { TimeoutError } from './TimeoutError.mjs';
Index: de_modules/es-toolkit/dist/error/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/error/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export { AbortError } from './AbortError.js';
-export { TimeoutError } from './TimeoutError.js';
Index: de_modules/es-toolkit/dist/error/index.js
===================================================================
--- node_modules/es-toolkit/dist/error/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const AbortError = require('./AbortError.js');
-const TimeoutError = require('./TimeoutError.js');
-
-
-
-exports.AbortError = AbortError.AbortError;
-exports.TimeoutError = TimeoutError.TimeoutError;
Index: de_modules/es-toolkit/dist/error/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/error/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export { AbortError } from './AbortError.mjs';
-export { TimeoutError } from './TimeoutError.mjs';
Index: de_modules/es-toolkit/dist/function/after.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/after.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a function that only executes starting from the `n`-th call.
- * The provided function will be invoked starting from the `n`-th call.
- *
- * This is particularly useful for scenarios involving events or asynchronous operations
- * where an action should occur only after a certain number of invocations.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of calls required for `func` to execute.
- * @param {F} func - The function to be invoked.
- * @returns {(...args: Parameters<F>) => ReturnType<F> | undefined} - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` starting from the `n`-th call.
- * - Returns `undefined` if fewer than `n` calls have been made.
- * @throws {Error} - Throws an error if `n` is negative.
- * @example
- *
- * const afterFn = after(3, () => {
- *  console.log("called")
- * });
- *
- * // Will not log anything.
- * afterFn()
- * // Will not log anything.
- * afterFn()
- * // Will log 'called'.
- * afterFn()
- */
-declare function after<F extends (...args: any[]) => any>(n: number, func: F): (...args: Parameters<F>) => ReturnType<F> | undefined;
-
-export { after };
Index: de_modules/es-toolkit/dist/function/after.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/after.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a function that only executes starting from the `n`-th call.
- * The provided function will be invoked starting from the `n`-th call.
- *
- * This is particularly useful for scenarios involving events or asynchronous operations
- * where an action should occur only after a certain number of invocations.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of calls required for `func` to execute.
- * @param {F} func - The function to be invoked.
- * @returns {(...args: Parameters<F>) => ReturnType<F> | undefined} - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` starting from the `n`-th call.
- * - Returns `undefined` if fewer than `n` calls have been made.
- * @throws {Error} - Throws an error if `n` is negative.
- * @example
- *
- * const afterFn = after(3, () => {
- *  console.log("called")
- * });
- *
- * // Will not log anything.
- * afterFn()
- * // Will not log anything.
- * afterFn()
- * // Will log 'called'.
- * afterFn()
- */
-declare function after<F extends (...args: any[]) => any>(n: number, func: F): (...args: Parameters<F>) => ReturnType<F> | undefined;
-
-export { after };
Index: de_modules/es-toolkit/dist/function/after.js
===================================================================
--- node_modules/es-toolkit/dist/function/after.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function after(n, func) {
-    if (!Number.isInteger(n) || n < 0) {
-        throw new Error(`n must be a non-negative integer.`);
-    }
-    let counter = 0;
-    return (...args) => {
-        if (++counter >= n) {
-            return func(...args);
-        }
-        return undefined;
-    };
-}
-
-exports.after = after;
Index: de_modules/es-toolkit/dist/function/after.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/after.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function after(n, func) {
-    if (!Number.isInteger(n) || n < 0) {
-        throw new Error(`n must be a non-negative integer.`);
-    }
-    let counter = 0;
-    return (...args) => {
-        if (++counter >= n) {
-            return func(...args);
-        }
-        return undefined;
-    };
-}
-
-export { after };
Index: de_modules/es-toolkit/dist/function/ary.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/ary.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a function that invokes func, with up to n arguments, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @param {number} n - The arity cap.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a: number, b: number, c: number) {
- *   return Array.from(arguments);
- * }
- *
- * ary(fn, 0)(1, 2, 3) // []
- * ary(fn, 1)(1, 2, 3) // [1]
- * ary(fn, 2)(1, 2, 3) // [1, 2]
- * ary(fn, 3)(1, 2, 3) // [1, 2, 3]
- */
-declare function ary<F extends (...args: any[]) => any>(func: F, n: number): (...args: any[]) => ReturnType<F>;
-
-export { ary };
Index: de_modules/es-toolkit/dist/function/ary.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/ary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a function that invokes func, with up to n arguments, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @param {number} n - The arity cap.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a: number, b: number, c: number) {
- *   return Array.from(arguments);
- * }
- *
- * ary(fn, 0)(1, 2, 3) // []
- * ary(fn, 1)(1, 2, 3) // [1]
- * ary(fn, 2)(1, 2, 3) // [1, 2]
- * ary(fn, 3)(1, 2, 3) // [1, 2, 3]
- */
-declare function ary<F extends (...args: any[]) => any>(func: F, n: number): (...args: any[]) => ReturnType<F>;
-
-export { ary };
Index: de_modules/es-toolkit/dist/function/ary.js
===================================================================
--- node_modules/es-toolkit/dist/function/ary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function ary(func, n) {
-    return function (...args) {
-        return func.apply(this, args.slice(0, n));
-    };
-}
-
-exports.ary = ary;
Index: de_modules/es-toolkit/dist/function/ary.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/ary.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function ary(func, n) {
-    return function (...args) {
-        return func.apply(this, args.slice(0, n));
-    };
-}
-
-export { ary };
Index: de_modules/es-toolkit/dist/function/asyncNoop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/asyncNoop.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * An asynchronous no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * asyncNoop(); // Does nothing
- *
- * @returns {Promise<void>} This function returns a Promise that resolves to undefined.
- */
-declare function asyncNoop(): Promise<void>;
-
-export { asyncNoop };
Index: de_modules/es-toolkit/dist/function/asyncNoop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/asyncNoop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * An asynchronous no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * asyncNoop(); // Does nothing
- *
- * @returns {Promise<void>} This function returns a Promise that resolves to undefined.
- */
-declare function asyncNoop(): Promise<void>;
-
-export { asyncNoop };
Index: de_modules/es-toolkit/dist/function/asyncNoop.js
===================================================================
--- node_modules/es-toolkit/dist/function/asyncNoop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-async function asyncNoop() { }
-
-exports.asyncNoop = asyncNoop;
Index: de_modules/es-toolkit/dist/function/asyncNoop.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/asyncNoop.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-async function asyncNoop() { }
-
-export { asyncNoop };
Index: de_modules/es-toolkit/dist/function/before.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/before.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a function that limits the number of times the given function (`func`) can be called.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of times the returned function is allowed to call `func` before stopping.
- * - If `n` is 0, `func` will never be called.
- * - If `n` is a positive integer, `func` will be called up to `n-1` times.
- * @param {F} func - The function to be called with the limit applied.
- * @returns {(...args: Parameters<F>) => ReturnType<F> | undefined} - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` until the `n-1`-th call.
- * - Returns `undefined` if the number of calls reaches or exceeds `n`, stopping further calls.
- * @throws {Error} - Throw an error if `n` is negative.
- * @example
- *
- * const beforeFn = before(3, () => {
- *  console.log("called");
- * })
- *
- * // Will log 'called'.
- * beforeFn();
- *
- * // Will log 'called'.
- * beforeFn();
- *
- * // Will not log anything.
- * beforeFn();
- */
-declare function before<F extends (...args: any[]) => any>(n: number, func: F): (...args: Parameters<F>) => ReturnType<F> | undefined;
-
-export { before };
Index: de_modules/es-toolkit/dist/function/before.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/before.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a function that limits the number of times the given function (`func`) can be called.
- *
- * @template F - The type of the function to be invoked.
- * @param {number} n - The number of times the returned function is allowed to call `func` before stopping.
- * - If `n` is 0, `func` will never be called.
- * - If `n` is a positive integer, `func` will be called up to `n-1` times.
- * @param {F} func - The function to be called with the limit applied.
- * @returns {(...args: Parameters<F>) => ReturnType<F> | undefined} - A new function that:
- * - Tracks the number of calls.
- * - Invokes `func` until the `n-1`-th call.
- * - Returns `undefined` if the number of calls reaches or exceeds `n`, stopping further calls.
- * @throws {Error} - Throw an error if `n` is negative.
- * @example
- *
- * const beforeFn = before(3, () => {
- *  console.log("called");
- * })
- *
- * // Will log 'called'.
- * beforeFn();
- *
- * // Will log 'called'.
- * beforeFn();
- *
- * // Will not log anything.
- * beforeFn();
- */
-declare function before<F extends (...args: any[]) => any>(n: number, func: F): (...args: Parameters<F>) => ReturnType<F> | undefined;
-
-export { before };
Index: de_modules/es-toolkit/dist/function/before.js
===================================================================
--- node_modules/es-toolkit/dist/function/before.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function before(n, func) {
-    if (!Number.isInteger(n) || n < 0) {
-        throw new Error('n must be a non-negative integer.');
-    }
-    let counter = 0;
-    return (...args) => {
-        if (++counter < n) {
-            return func(...args);
-        }
-        return undefined;
-    };
-}
-
-exports.before = before;
Index: de_modules/es-toolkit/dist/function/before.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/before.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function before(n, func) {
-    if (!Number.isInteger(n) || n < 0) {
-        throw new Error('n must be a non-negative integer.');
-    }
-    let counter = 0;
-    return (...args) => {
-        if (++counter < n) {
-            return func(...args);
-        }
-        return undefined;
-    };
-}
-
-export { before };
Index: de_modules/es-toolkit/dist/function/curry.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/curry.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {() => R} func - The function to curry.
- * @returns {() => R} A curried function.
- *
- * @example
- * function noArgFunc() {
- *   return 42;
- * }
- * const curriedNoArgFunc = curry(noArgFunc);
- * console.log(curriedNoArgFunc()); // 42
- */
-declare function curry<R>(func: () => R): () => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p: P) => R} func - The function to curry.
- * @returns {(p: P) => R} A curried function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- * const curriedOneArgFunc = curry(oneArgFunc);
- * console.log(curriedOneArgFunc(5)); // 10
- */
-declare function curry<P, R>(func: (p: P) => R): (p: P) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => R} A curried function.
- *
- * @example
- * function twoArgFunc(a: number, b: number) {
- *   return a + b;
- * }
- * const curriedTwoArgFunc = curry(twoArgFunc);
- * const add5 = curriedTwoArgFunc(5);
- * console.log(add5(10)); // 15
- */
-declare function curry<P1, P2, R>(func: (p1: P1, p2: P2) => R): (p1: P1) => (p2: P2) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => R} A curried function.
- *
- * @example
- * function threeArgFunc(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- * const curriedThreeArgFunc = curry(threeArgFunc);
- * const add1 = curriedThreeArgFunc(1);
- * const add3 = add1(2);
- * console.log(add3(3)); // 6
- */
-declare function curry<P1, P2, P3, R>(func: (p1: P1, p2: P2, p3: P3) => R): (p1: P1) => (p2: P2) => (p3: P3) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => R} A curried function.
- *
- * @example
- * function fourArgFunc(a: number, b: number, c: number, d: number) {
- *   return a + b + c + d;
- * }
- * const curriedFourArgFunc = curry(fourArgFunc);
- * const add1 = curriedFourArgFunc(1);
- * const add3 = add1(2);
- * const add6 = add3(3);
- * console.log(add6(4)); // 10
- */
-declare function curry<P1, P2, P3, P4, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4) => R): (p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => (p5: P5) => R} A curried function.
- *
- * @example
- * function fiveArgFunc(a: number, b: number, c: number, d: number, e: number) {
- *   return a + b + c + d + e;
- * }
- * const curriedFiveArgFunc = curry(fiveArgFunc);
- * const add1 = curriedFiveArgFunc(1);
- * const add3 = add1(2);
- * const add6 = add3(3);
- * const add10 = add6(4);
- * console.log(add10(5)); // 15
- */
-declare function curry<P1, P2, P3, P4, P5, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R): (p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => (p5: P5) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(...args: any[]) => any} func - The function to curry.
- * @returns {(...args: any[]) => any} A curried function that can be called with a single argument at a time.
- *
- * @example
- * function sum(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- *
- * const curriedSum = curry(sum);
- *
- * // The parameter `a` should be given the value `10`.
- * const add10 = curriedSum(10);
- *
- * // The parameter `b` should be given the value `15`.
- * const add25 = add10(15);
- *
- * // The parameter `c` should be given the value `5`. The function 'sum' has received all its arguments and will now return a value.
- * const result = add25(5);
- */
-declare function curry(func: (...args: any[]) => any): (...args: any[]) => any;
-
-export { curry };
Index: de_modules/es-toolkit/dist/function/curry.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/curry.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {() => R} func - The function to curry.
- * @returns {() => R} A curried function.
- *
- * @example
- * function noArgFunc() {
- *   return 42;
- * }
- * const curriedNoArgFunc = curry(noArgFunc);
- * console.log(curriedNoArgFunc()); // 42
- */
-declare function curry<R>(func: () => R): () => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p: P) => R} func - The function to curry.
- * @returns {(p: P) => R} A curried function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- * const curriedOneArgFunc = curry(oneArgFunc);
- * console.log(curriedOneArgFunc(5)); // 10
- */
-declare function curry<P, R>(func: (p: P) => R): (p: P) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => R} A curried function.
- *
- * @example
- * function twoArgFunc(a: number, b: number) {
- *   return a + b;
- * }
- * const curriedTwoArgFunc = curry(twoArgFunc);
- * const add5 = curriedTwoArgFunc(5);
- * console.log(add5(10)); // 15
- */
-declare function curry<P1, P2, R>(func: (p1: P1, p2: P2) => R): (p1: P1) => (p2: P2) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => R} A curried function.
- *
- * @example
- * function threeArgFunc(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- * const curriedThreeArgFunc = curry(threeArgFunc);
- * const add1 = curriedThreeArgFunc(1);
- * const add3 = add1(2);
- * console.log(add3(3)); // 6
- */
-declare function curry<P1, P2, P3, R>(func: (p1: P1, p2: P2, p3: P3) => R): (p1: P1) => (p2: P2) => (p3: P3) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => R} A curried function.
- *
- * @example
- * function fourArgFunc(a: number, b: number, c: number, d: number) {
- *   return a + b + c + d;
- * }
- * const curriedFourArgFunc = curry(fourArgFunc);
- * const add1 = curriedFourArgFunc(1);
- * const add3 = add1(2);
- * const add6 = add3(3);
- * console.log(add6(4)); // 10
- */
-declare function curry<P1, P2, P3, P4, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4) => R): (p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R} func - The function to curry.
- * @returns {(p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => (p5: P5) => R} A curried function.
- *
- * @example
- * function fiveArgFunc(a: number, b: number, c: number, d: number, e: number) {
- *   return a + b + c + d + e;
- * }
- * const curriedFiveArgFunc = curry(fiveArgFunc);
- * const add1 = curriedFiveArgFunc(1);
- * const add3 = add1(2);
- * const add6 = add3(3);
- * const add10 = add6(4);
- * console.log(add10(5)); // 15
- */
-declare function curry<P1, P2, P3, P4, P5, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R): (p1: P1) => (p2: P2) => (p3: P3) => (p4: P4) => (p5: P5) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * @param {(...args: any[]) => any} func - The function to curry.
- * @returns {(...args: any[]) => any} A curried function that can be called with a single argument at a time.
- *
- * @example
- * function sum(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- *
- * const curriedSum = curry(sum);
- *
- * // The parameter `a` should be given the value `10`.
- * const add10 = curriedSum(10);
- *
- * // The parameter `b` should be given the value `15`.
- * const add25 = add10(15);
- *
- * // The parameter `c` should be given the value `5`. The function 'sum' has received all its arguments and will now return a value.
- * const result = add25(5);
- */
-declare function curry(func: (...args: any[]) => any): (...args: any[]) => any;
-
-export { curry };
Index: de_modules/es-toolkit/dist/function/curry.js
===================================================================
--- node_modules/es-toolkit/dist/function/curry.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function curry(func) {
-    if (func.length === 0 || func.length === 1) {
-        return func;
-    }
-    return function (arg) {
-        return makeCurry(func, func.length, [arg]);
-    };
-}
-function makeCurry(origin, argsLength, args) {
-    if (args.length === argsLength) {
-        return origin(...args);
-    }
-    else {
-        const next = function (arg) {
-            return makeCurry(origin, argsLength, [...args, arg]);
-        };
-        return next;
-    }
-}
-
-exports.curry = curry;
Index: de_modules/es-toolkit/dist/function/curry.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/curry.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function curry(func) {
-    if (func.length === 0 || func.length === 1) {
-        return func;
-    }
-    return function (arg) {
-        return makeCurry(func, func.length, [arg]);
-    };
-}
-function makeCurry(origin, argsLength, args) {
-    if (args.length === argsLength) {
-        return origin(...args);
-    }
-    else {
-        const next = function (arg) {
-            return makeCurry(origin, argsLength, [...args, arg]);
-        };
-        return next;
-    }
-}
-
-export { curry };
Index: de_modules/es-toolkit/dist/function/curryRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/curryRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {() => R} func - The function to curry.
- * @returns {() => R} A curried function.
- *
- * @example
- * function noArgFunc() {
- *  return 42;
- * }
- * const curriedNoArgFunc = curryRight(noArgFunc);
- * console.log(curriedNoArgFunc()); // 42
- */
-declare function curryRight<R>(func: () => R): () => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p: P) => R} func - The function to curry.
- * @returns {(p: P) => R} A curried function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- * const curriedOneArgFunc = curryRight(oneArgFunc);
- * console.log(curriedOneArgFunc(5)); // 10
- */
-declare function curryRight<P, R>(func: (p: P) => R): (p: P) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2) => R} func - The function to curry.
- * @returns {(p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function twoArgFunc(a: number, b: number) {
- *  return [a, b];
- * }
- * const curriedTwoArgFunc = curryRight(twoArgFunc);
- * const func = curriedTwoArgFunc(1);
- * console.log(func(2)); // [2, 1]
- */
-declare function curryRight<P1, P2, R>(func: (p1: P1, p2: P2) => R): (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3) => R} func - The function to curry.
- * @returns {(p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function threeArgFunc(a: number, b: number, c: number) {
- *   return [a, b, c];
- * }
- * const curriedThreeArgFunc = curryRight(threeArgFunc);
- * const func = curriedThreeArgFunc(1);
- * const func2 = func(2);
- * console.log(func2(3)); // [3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, R>(func: (p1: P1, p2: P2, p3: P3) => R): (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4) => R} func - The function to curry.
- * @returns {(p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function fourArgFunc(a: number, b: number, c: number, d: number) {
- *  return [a, b, c, d];
- * }
- * const curriedFourArgFunc = curryRight(fourArgFunc);
- * const func = curriedFourArgFunc(1);
- * const func2 = func(2);
- * const func3 = func2(3);
- * console.log(func3(4)); // [4, 3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, P4, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4) => R): (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R} func - The function to curry.
- * @returns {(p5: P5) => (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function fiveArgFunc(a: number, b: number, c: number, d: number, e: number) {
- *   return [a, b, c, d, e];
- * }
- * const curriedFiveArgFunc = curryRight(fiveArgFunc);
- * const func = curriedFiveArgFunc(1);
- * const func2 = func(2);
- * const func3 = func2(3);
- * const func4 = func3(4);
- * console.log(func4(5)); // [5, 4, 3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, P4, P5, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R): (p5: P5) => (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(...args: any[]) => any} func - The function to curry.
- * @returns {(...args: any[]) => any} A curried function.
- *
- * @example
- * function sum(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- *
- * const curriedSum = curryRight(sum);
- *
- * // The parameter `c` should be given the value `10`.
- * const add10 = curriedSum(10);
- *
- * // The parameter `b` should be given the value `15`.
- * const add25 = add10(15);
- *
- * // The parameter `a` should be given the value `5`. The function 'sum' has received all its arguments and will now return a value.
- * const result = add25(5); // 30
- */
-declare function curryRight(func: (...args: any[]) => any): (...args: any[]) => any;
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/function/curryRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/curryRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {() => R} func - The function to curry.
- * @returns {() => R} A curried function.
- *
- * @example
- * function noArgFunc() {
- *  return 42;
- * }
- * const curriedNoArgFunc = curryRight(noArgFunc);
- * console.log(curriedNoArgFunc()); // 42
- */
-declare function curryRight<R>(func: () => R): () => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p: P) => R} func - The function to curry.
- * @returns {(p: P) => R} A curried function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- * const curriedOneArgFunc = curryRight(oneArgFunc);
- * console.log(curriedOneArgFunc(5)); // 10
- */
-declare function curryRight<P, R>(func: (p: P) => R): (p: P) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2) => R} func - The function to curry.
- * @returns {(p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function twoArgFunc(a: number, b: number) {
- *  return [a, b];
- * }
- * const curriedTwoArgFunc = curryRight(twoArgFunc);
- * const func = curriedTwoArgFunc(1);
- * console.log(func(2)); // [2, 1]
- */
-declare function curryRight<P1, P2, R>(func: (p1: P1, p2: P2) => R): (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3) => R} func - The function to curry.
- * @returns {(p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function threeArgFunc(a: number, b: number, c: number) {
- *   return [a, b, c];
- * }
- * const curriedThreeArgFunc = curryRight(threeArgFunc);
- * const func = curriedThreeArgFunc(1);
- * const func2 = func(2);
- * console.log(func2(3)); // [3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, R>(func: (p1: P1, p2: P2, p3: P3) => R): (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4) => R} func - The function to curry.
- * @returns {(p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function fourArgFunc(a: number, b: number, c: number, d: number) {
- *  return [a, b, c, d];
- * }
- * const curriedFourArgFunc = curryRight(fourArgFunc);
- * const func = curriedFourArgFunc(1);
- * const func2 = func(2);
- * const func3 = func2(3);
- * console.log(func3(4)); // [4, 3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, P4, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4) => R): (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R} func - The function to curry.
- * @returns {(p5: P5) => (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R} A curried function.
- *
- * @example
- * function fiveArgFunc(a: number, b: number, c: number, d: number, e: number) {
- *   return [a, b, c, d, e];
- * }
- * const curriedFiveArgFunc = curryRight(fiveArgFunc);
- * const func = curriedFiveArgFunc(1);
- * const func2 = func(2);
- * const func3 = func2(3);
- * const func4 = func3(4);
- * console.log(func4(5)); // [5, 4, 3, 2, 1]
- */
-declare function curryRight<P1, P2, P3, P4, P5, R>(func: (p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => R): (p5: P5) => (p4: P4) => (p3: P3) => (p2: P2) => (p1: P1) => R;
-/**
- * Curries a function, allowing it to be called with a single argument at a time and returning a new function that takes the next argument.
- * This process continues until all arguments have been provided, at which point the original function is called with all accumulated arguments.
- *
- * Unlike `curry`, this function curries the function from right to left.
- *
- * @param {(...args: any[]) => any} func - The function to curry.
- * @returns {(...args: any[]) => any} A curried function.
- *
- * @example
- * function sum(a: number, b: number, c: number) {
- *   return a + b + c;
- * }
- *
- * const curriedSum = curryRight(sum);
- *
- * // The parameter `c` should be given the value `10`.
- * const add10 = curriedSum(10);
- *
- * // The parameter `b` should be given the value `15`.
- * const add25 = add10(15);
- *
- * // The parameter `a` should be given the value `5`. The function 'sum' has received all its arguments and will now return a value.
- * const result = add25(5); // 30
- */
-declare function curryRight(func: (...args: any[]) => any): (...args: any[]) => any;
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/function/curryRight.js
===================================================================
--- node_modules/es-toolkit/dist/function/curryRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function curryRight(func) {
-    if (func.length === 0 || func.length === 1) {
-        return func;
-    }
-    return function (arg) {
-        return makeCurryRight(func, func.length, [arg]);
-    };
-}
-function makeCurryRight(origin, argsLength, args) {
-    if (args.length === argsLength) {
-        return origin(...args);
-    }
-    else {
-        const next = function (arg) {
-            return makeCurryRight(origin, argsLength, [arg, ...args]);
-        };
-        return next;
-    }
-}
-
-exports.curryRight = curryRight;
Index: de_modules/es-toolkit/dist/function/curryRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/curryRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function curryRight(func) {
-    if (func.length === 0 || func.length === 1) {
-        return func;
-    }
-    return function (arg) {
-        return makeCurryRight(func, func.length, [arg]);
-    };
-}
-function makeCurryRight(origin, argsLength, args) {
-    if (args.length === argsLength) {
-        return origin(...args);
-    }
-    else {
-        const next = function (arg) {
-            return makeCurryRight(origin, argsLength, [arg, ...args]);
-        };
-        return next;
-    }
-}
-
-export { curryRight };
Index: de_modules/es-toolkit/dist/function/debounce.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/debounce.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-interface DebounceOptions {
-    /**
-     * An optional AbortSignal to cancel the debounced function.
-     */
-    signal?: AbortSignal;
-    /**
-     * An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
-     * If `edges` includes "leading", the function will be invoked at the start of the delay period.
-     * If `edges` includes "trailing", the function will be invoked at the end of the delay period.
-     * If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
-     * @default ["trailing"]
-     */
-    edges?: Array<'leading' | 'trailing'>;
-}
-interface DebouncedFunction<F extends (...args: any[]) => void> {
-    (...args: Parameters<F>): void;
-    /**
-     * Schedules the execution of the debounced function after the specified debounce delay.
-     * This method resets any existing timer, ensuring that the function is only invoked
-     * after the delay has elapsed since the last call to the debounced function.
-     * It is typically called internally whenever the debounced function is invoked.
-     *
-     * @returns {void}
-     */
-    schedule: () => void;
-    /**
-     * Cancels any pending execution of the debounced function.
-     * This method clears the active timer and resets any stored context or arguments.
-     */
-    cancel: () => void;
-    /**
-     * Immediately invokes the debounced function if there is a pending execution.
-     * This method executes the function right away if there is a pending execution.
-     */
-    flush: () => void;
-}
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<F extends (...args: any[]) => void>(func: F, debounceMs: number, { signal, edges }?: DebounceOptions): DebouncedFunction<F>;
-
-export { type DebounceOptions, type DebouncedFunction, debounce };
Index: de_modules/es-toolkit/dist/function/debounce.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/debounce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-interface DebounceOptions {
-    /**
-     * An optional AbortSignal to cancel the debounced function.
-     */
-    signal?: AbortSignal;
-    /**
-     * An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
-     * If `edges` includes "leading", the function will be invoked at the start of the delay period.
-     * If `edges` includes "trailing", the function will be invoked at the end of the delay period.
-     * If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
-     * @default ["trailing"]
-     */
-    edges?: Array<'leading' | 'trailing'>;
-}
-interface DebouncedFunction<F extends (...args: any[]) => void> {
-    (...args: Parameters<F>): void;
-    /**
-     * Schedules the execution of the debounced function after the specified debounce delay.
-     * This method resets any existing timer, ensuring that the function is only invoked
-     * after the delay has elapsed since the last call to the debounced function.
-     * It is typically called internally whenever the debounced function is invoked.
-     *
-     * @returns {void}
-     */
-    schedule: () => void;
-    /**
-     * Cancels any pending execution of the debounced function.
-     * This method clears the active timer and resets any stored context or arguments.
-     */
-    cancel: () => void;
-    /**
-     * Immediately invokes the debounced function if there is a pending execution.
-     * This method executes the function right away if there is a pending execution.
-     */
-    flush: () => void;
-}
-/**
- * Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds
- * have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`
- * method to cancel any pending execution.
- *
- * @template F - The type of function.
- * @param {F} func - The function to debounce.
- * @param {number} debounceMs - The number of milliseconds to delay.
- * @param {DebounceOptions} options - The options object
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the debounced function.
- * @returns A new debounced function with a `cancel` method.
- *
- * @example
- * const debouncedFunction = debounce(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' after 1 second if not called again in that time
- * debouncedFunction();
- *
- * // Will not log anything as the previous call is canceled
- * debouncedFunction.cancel();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const signal = controller.signal;
- * const debouncedWithSignal = debounce(() => {
- *  console.log('Function executed');
- * }, 1000, { signal });
- *
- * debouncedWithSignal();
- *
- * // Will cancel the debounced function call
- * controller.abort();
- */
-declare function debounce<F extends (...args: any[]) => void>(func: F, debounceMs: number, { signal, edges }?: DebounceOptions): DebouncedFunction<F>;
-
-export { type DebounceOptions, type DebouncedFunction, debounce };
Index: de_modules/es-toolkit/dist/function/debounce.js
===================================================================
--- node_modules/es-toolkit/dist/function/debounce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function debounce(func, debounceMs, { signal, edges } = {}) {
-    let pendingThis = undefined;
-    let pendingArgs = null;
-    const leading = edges != null && edges.includes('leading');
-    const trailing = edges == null || edges.includes('trailing');
-    const invoke = () => {
-        if (pendingArgs !== null) {
-            func.apply(pendingThis, pendingArgs);
-            pendingThis = undefined;
-            pendingArgs = null;
-        }
-    };
-    const onTimerEnd = () => {
-        if (trailing) {
-            invoke();
-        }
-        cancel();
-    };
-    let timeoutId = null;
-    const schedule = () => {
-        if (timeoutId != null) {
-            clearTimeout(timeoutId);
-        }
-        timeoutId = setTimeout(() => {
-            timeoutId = null;
-            onTimerEnd();
-        }, debounceMs);
-    };
-    const cancelTimer = () => {
-        if (timeoutId !== null) {
-            clearTimeout(timeoutId);
-            timeoutId = null;
-        }
-    };
-    const cancel = () => {
-        cancelTimer();
-        pendingThis = undefined;
-        pendingArgs = null;
-    };
-    const flush = () => {
-        invoke();
-    };
-    const debounced = function (...args) {
-        if (signal?.aborted) {
-            return;
-        }
-        pendingThis = this;
-        pendingArgs = args;
-        const isFirstCall = timeoutId == null;
-        schedule();
-        if (leading && isFirstCall) {
-            invoke();
-        }
-    };
-    debounced.schedule = schedule;
-    debounced.cancel = cancel;
-    debounced.flush = flush;
-    signal?.addEventListener('abort', cancel, { once: true });
-    return debounced;
-}
-
-exports.debounce = debounce;
Index: de_modules/es-toolkit/dist/function/debounce.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/debounce.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-function debounce(func, debounceMs, { signal, edges } = {}) {
-    let pendingThis = undefined;
-    let pendingArgs = null;
-    const leading = edges != null && edges.includes('leading');
-    const trailing = edges == null || edges.includes('trailing');
-    const invoke = () => {
-        if (pendingArgs !== null) {
-            func.apply(pendingThis, pendingArgs);
-            pendingThis = undefined;
-            pendingArgs = null;
-        }
-    };
-    const onTimerEnd = () => {
-        if (trailing) {
-            invoke();
-        }
-        cancel();
-    };
-    let timeoutId = null;
-    const schedule = () => {
-        if (timeoutId != null) {
-            clearTimeout(timeoutId);
-        }
-        timeoutId = setTimeout(() => {
-            timeoutId = null;
-            onTimerEnd();
-        }, debounceMs);
-    };
-    const cancelTimer = () => {
-        if (timeoutId !== null) {
-            clearTimeout(timeoutId);
-            timeoutId = null;
-        }
-    };
-    const cancel = () => {
-        cancelTimer();
-        pendingThis = undefined;
-        pendingArgs = null;
-    };
-    const flush = () => {
-        invoke();
-    };
-    const debounced = function (...args) {
-        if (signal?.aborted) {
-            return;
-        }
-        pendingThis = this;
-        pendingArgs = args;
-        const isFirstCall = timeoutId == null;
-        schedule();
-        if (leading && isFirstCall) {
-            invoke();
-        }
-    };
-    debounced.schedule = schedule;
-    debounced.cancel = cancel;
-    debounced.flush = flush;
-    signal?.addEventListener('abort', cancel, { once: true });
-    return debounced;
-}
-
-export { debounce };
Index: de_modules/es-toolkit/dist/function/flow.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/flow.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {() => R} f The function to invoke.
- * @returns {() => R} Returns the new composite function.
- *
- * @example
- * function noArgFunc() {
- *  return 42;
- * }
- *
- * const combined = flow(noArgFunc);
- * console.log(combined()); // 42
- */
-declare function flow<R>(f: () => R): () => R;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R} f1 The function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- *
- * const combined = flow(oneArgFunc);
- * console.log(combined(5)); // 10
- */
-declare function flow<A extends any[], R>(f1: (...args: A) => R): (...args: A) => R;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @returns {(...args: A) => R2} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flow(add, square);
- * console.log(combined(1, 2)); // 9
- */
-declare function flow<A extends any[], R1, R2>(f1: (...args: A) => R1, f2: (a: R1) => R2): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @returns {(...args: A) => R3} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3): (...args: A) => R3;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @returns {(...args: A) => R4} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- *
- * const combined = flow(add, square, double, toStr);
- * console.log(combined(1, 2)); // '18'
- */
-declare function flow<A extends any[], R1, R2, R3, R4>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4): (...args: A) => R4;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R4) => R5} f5 The function to invoke.
- * @returns {(...args: A) => R5} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- * const split = (s: string) => s.split('');
- *
- * const combined = flow(add, square, double, toStr, split);
- * console.log(combined(1, 2)); // ['1', '8']
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5): (...args: A) => R5;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {Array<(...args: any[]) => any>} funcs The functions to invoke.
- * @returns {(...args: any[]) => any} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flow(add, square);
- * console.log(combined(1, 2)); // 9
- */
-declare function flow(...funcs: Array<(...args: any[]) => any>): (...args: any[]) => any;
-
-export { flow };
Index: de_modules/es-toolkit/dist/function/flow.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/flow.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {() => R} f The function to invoke.
- * @returns {() => R} Returns the new composite function.
- *
- * @example
- * function noArgFunc() {
- *  return 42;
- * }
- *
- * const combined = flow(noArgFunc);
- * console.log(combined()); // 42
- */
-declare function flow<R>(f: () => R): () => R;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R} f1 The function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *   return a * 2;
- * }
- *
- * const combined = flow(oneArgFunc);
- * console.log(combined(5)); // 10
- */
-declare function flow<A extends any[], R>(f1: (...args: A) => R): (...args: A) => R;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @returns {(...args: A) => R2} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flow(add, square);
- * console.log(combined(1, 2)); // 9
- */
-declare function flow<A extends any[], R1, R2>(f1: (...args: A) => R1, f2: (a: R1) => R2): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @returns {(...args: A) => R3} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flow(add, square, double);
- * console.log(combined(1, 2)); // 18
- */
-declare function flow<A extends any[], R1, R2, R3>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3): (...args: A) => R3;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @returns {(...args: A) => R4} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- *
- * const combined = flow(add, square, double, toStr);
- * console.log(combined(1, 2)); // '18'
- */
-declare function flow<A extends any[], R1, R2, R3, R4>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4): (...args: A) => R4;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R4) => R5} f5 The function to invoke.
- * @returns {(...args: A) => R5} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- * const split = (s: string) => s.split('');
- *
- * const combined = flow(add, square, double, toStr, split);
- * console.log(combined(1, 2)); // ['1', '8']
- */
-declare function flow<A extends any[], R1, R2, R3, R4, R5>(f1: (...args: A) => R1, f2: (a: R1) => R2, f3: (a: R2) => R3, f4: (a: R3) => R4, f5: (a: R4) => R5): (...args: A) => R5;
-/**
- * Creates a new function that executes the given functions in sequence. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * @param {Array<(...args: any[]) => any>} funcs The functions to invoke.
- * @returns {(...args: any[]) => any} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flow(add, square);
- * console.log(combined(1, 2)); // 9
- */
-declare function flow(...funcs: Array<(...args: any[]) => any>): (...args: any[]) => any;
-
-export { flow };
Index: de_modules/es-toolkit/dist/function/flow.js
===================================================================
--- node_modules/es-toolkit/dist/function/flow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function flow(...funcs) {
-    return function (...args) {
-        let result = funcs.length ? funcs[0].apply(this, args) : args[0];
-        for (let i = 1; i < funcs.length; i++) {
-            result = funcs[i].call(this, result);
-        }
-        return result;
-    };
-}
-
-exports.flow = flow;
Index: de_modules/es-toolkit/dist/function/flow.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/flow.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function flow(...funcs) {
-    return function (...args) {
-        let result = funcs.length ? funcs[0].apply(this, args) : args[0];
-        for (let i = 1; i < funcs.length; i++) {
-            result = funcs[i].call(this, result);
-        }
-        return result;
-    };
-}
-
-export { flow };
Index: de_modules/es-toolkit/dist/function/flowRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/flowRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {() => R} f The function to invoke.
- * @returns {() => R} Returns the new composite function.
- *
- * @example
- * function noArgFunc() {
- *   return 42;
- * }
- * const combined = flowRight(noArgFunc);
- * console.log(combined()); // 42
- */
-declare function flowRight<R>(f: () => R): () => R;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(...args: A) => R} f1 The function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *  return a * 2;
- * }
- * const combined = flowRight(oneArgFunc);
- * console.log(combined(5)); // 10
- */
-declare function flowRight<A extends any[], R>(f1: (...args: A) => R): (...args: A) => R;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R2} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight<A extends any[], R1, R2>(f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R3} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flowRight(double, square, add);
- * console.log(combined(1, 2)); // 18
- */
-declare function flowRight<A extends any[], R1, R2, R3>(f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R3;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R4} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- *
- * const combined = flowRight(toStr, double, square, add);
- * console.log(combined(1, 2));  // '18'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4>(f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R4;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R4) => R5} f5 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R5} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- * const split = (s: string) => s.split('');
- *
- * const combined = flowRight(split, toStr, double, square, add);
- * console.log(combined(1, 2)); // ['1', '8']
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5>(f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R5;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(...args: any[]) => any} funcs The functions to invoke.
- * @returns {(...args: any[]) => any} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight(...funcs: Array<(...args: any[]) => any>): (...args: any[]) => any;
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/function/flowRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/flowRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {() => R} f The function to invoke.
- * @returns {() => R} Returns the new composite function.
- *
- * @example
- * function noArgFunc() {
- *   return 42;
- * }
- * const combined = flowRight(noArgFunc);
- * console.log(combined()); // 42
- */
-declare function flowRight<R>(f: () => R): () => R;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(...args: A) => R} f1 The function to invoke.
- * @returns {(...args: A) => R} Returns the new composite function.
- *
- * @example
- * function oneArgFunc(a: number) {
- *  return a * 2;
- * }
- * const combined = flowRight(oneArgFunc);
- * console.log(combined(5)); // 10
- */
-declare function flowRight<A extends any[], R>(f1: (...args: A) => R): (...args: A) => R;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R2} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight<A extends any[], R1, R2>(f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R2;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R3} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- *
- * const combined = flowRight(double, square, add);
- * console.log(combined(1, 2)); // 18
- */
-declare function flowRight<A extends any[], R1, R2, R3>(f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R3;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R4} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- *
- * const combined = flowRight(toStr, double, square, add);
- * console.log(combined(1, 2));  // '18'
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4>(f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R4;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(a: R4) => R5} f5 The function to invoke.
- * @param {(a: R3) => R4} f4 The function to invoke.
- * @param {(a: R2) => R3} f3 The function to invoke.
- * @param {(a: R1) => R2} f2 The function to invoke.
- * @param {(...args: A) => R1} f1 The function to invoke.
- * @returns {(...args: A) => R5} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- * const double = (n: number) => n * 2;
- * const toStr = (n: number) => n.toString();
- * const split = (s: string) => s.split('');
- *
- * const combined = flowRight(split, toStr, double, square, add);
- * console.log(combined(1, 2)); // ['1', '8']
- */
-declare function flowRight<A extends any[], R1, R2, R3, R4, R5>(f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R5;
-/**
- * Creates a new function that executes the given functions in sequence from right to left. The return value of the previous function is passed as an argument to the next function.
- *
- * The `this` context of the returned function is also passed to the functions provided as parameters.
- *
- * This method is like `flow` except that it creates a function that invokes the given functions from right to left.
- *
- * @param {(...args: any[]) => any} funcs The functions to invoke.
- * @returns {(...args: any[]) => any} Returns the new composite function.
- *
- * @example
- * const add = (x: number, y: number) => x + y;
- * const square = (n: number) => n * n;
- *
- * const combined = flowRight(square, add);
- * console.log(combined(1, 2)); // 9
- */
-declare function flowRight(...funcs: Array<(...args: any[]) => any>): (...args: any[]) => any;
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/function/flowRight.js
===================================================================
--- node_modules/es-toolkit/dist/function/flowRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const flow = require('./flow.js');
-
-function flowRight(...funcs) {
-    return flow.flow(...funcs.reverse());
-}
-
-exports.flowRight = flowRight;
Index: de_modules/es-toolkit/dist/function/flowRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/flowRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { flow } from './flow.mjs';
-
-function flowRight(...funcs) {
-    return flow(...funcs.reverse());
-}
-
-export { flowRight };
Index: de_modules/es-toolkit/dist/function/identity.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/identity.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity<T>(x: T): T;
-
-export { identity };
Index: de_modules/es-toolkit/dist/function/identity.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/identity.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Returns the input value unchanged.
- *
- * @template T - The type of the input value.
- * @param {T} x - The value to be returned.
- * @returns {T} The input value.
- *
- * @example
- * // Returns 5
- * identity(5);
- *
- * @example
- * // Returns 'hello'
- * identity('hello');
- *
- * @example
- * // Returns { key: 'value' }
- * identity({ key: 'value' });
- */
-declare function identity<T>(x: T): T;
-
-export { identity };
Index: de_modules/es-toolkit/dist/function/identity.js
===================================================================
--- node_modules/es-toolkit/dist/function/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function identity(x) {
-    return x;
-}
-
-exports.identity = identity;
Index: de_modules/es-toolkit/dist/function/identity.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/identity.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function identity(x) {
-    return x;
-}
-
-export { identity };
Index: de_modules/es-toolkit/dist/function/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { after } from './after.mjs';
-export { ary } from './ary.mjs';
-export { asyncNoop } from './asyncNoop.mjs';
-export { before } from './before.mjs';
-export { curry } from './curry.mjs';
-export { curryRight } from './curryRight.mjs';
-export { DebounceOptions, DebouncedFunction, debounce } from './debounce.mjs';
-export { flow } from './flow.mjs';
-export { flowRight } from './flowRight.mjs';
-export { identity } from './identity.mjs';
-export { MemoizeCache, memoize } from './memoize.mjs';
-export { negate } from './negate.mjs';
-export { noop } from './noop.mjs';
-export { once } from './once.mjs';
-export { partial } from './partial.mjs';
-export { partialRight } from './partialRight.mjs';
-export { rest } from './rest.mjs';
-export { retry } from './retry.mjs';
-export { spread } from './spread.mjs';
-export { ThrottleOptions, ThrottledFunction, throttle } from './throttle.mjs';
-export { unary } from './unary.mjs';
Index: de_modules/es-toolkit/dist/function/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { after } from './after.js';
-export { ary } from './ary.js';
-export { asyncNoop } from './asyncNoop.js';
-export { before } from './before.js';
-export { curry } from './curry.js';
-export { curryRight } from './curryRight.js';
-export { DebounceOptions, DebouncedFunction, debounce } from './debounce.js';
-export { flow } from './flow.js';
-export { flowRight } from './flowRight.js';
-export { identity } from './identity.js';
-export { MemoizeCache, memoize } from './memoize.js';
-export { negate } from './negate.js';
-export { noop } from './noop.js';
-export { once } from './once.js';
-export { partial } from './partial.js';
-export { partialRight } from './partialRight.js';
-export { rest } from './rest.js';
-export { retry } from './retry.js';
-export { spread } from './spread.js';
-export { ThrottleOptions, ThrottledFunction, throttle } from './throttle.js';
-export { unary } from './unary.js';
Index: de_modules/es-toolkit/dist/function/index.js
===================================================================
--- node_modules/es-toolkit/dist/function/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const after = require('./after.js');
-const ary = require('./ary.js');
-const asyncNoop = require('./asyncNoop.js');
-const before = require('./before.js');
-const curry = require('./curry.js');
-const curryRight = require('./curryRight.js');
-const debounce = require('./debounce.js');
-const flow = require('./flow.js');
-const flowRight = require('./flowRight.js');
-const identity = require('./identity.js');
-const memoize = require('./memoize.js');
-const negate = require('./negate.js');
-const noop = require('./noop.js');
-const once = require('./once.js');
-const partial = require('./partial.js');
-const partialRight = require('./partialRight.js');
-const rest = require('./rest.js');
-const retry = require('./retry.js');
-const spread = require('./spread.js');
-const throttle = require('./throttle.js');
-const unary = require('./unary.js');
-
-
-
-exports.after = after.after;
-exports.ary = ary.ary;
-exports.asyncNoop = asyncNoop.asyncNoop;
-exports.before = before.before;
-exports.curry = curry.curry;
-exports.curryRight = curryRight.curryRight;
-exports.debounce = debounce.debounce;
-exports.flow = flow.flow;
-exports.flowRight = flowRight.flowRight;
-exports.identity = identity.identity;
-exports.memoize = memoize.memoize;
-exports.negate = negate.negate;
-exports.noop = noop.noop;
-exports.once = once.once;
-exports.partial = partial.partial;
-exports.partialRight = partialRight.partialRight;
-exports.rest = rest.rest;
-exports.retry = retry.retry;
-exports.spread = spread.spread;
-exports.throttle = throttle.throttle;
-exports.unary = unary.unary;
Index: de_modules/es-toolkit/dist/function/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { after } from './after.mjs';
-export { ary } from './ary.mjs';
-export { asyncNoop } from './asyncNoop.mjs';
-export { before } from './before.mjs';
-export { curry } from './curry.mjs';
-export { curryRight } from './curryRight.mjs';
-export { debounce } from './debounce.mjs';
-export { flow } from './flow.mjs';
-export { flowRight } from './flowRight.mjs';
-export { identity } from './identity.mjs';
-export { memoize } from './memoize.mjs';
-export { negate } from './negate.mjs';
-export { noop } from './noop.mjs';
-export { once } from './once.mjs';
-export { partial } from './partial.mjs';
-export { partialRight } from './partialRight.mjs';
-export { rest } from './rest.mjs';
-export { retry } from './retry.mjs';
-export { spread } from './spread.mjs';
-export { throttle } from './throttle.mjs';
-export { unary } from './unary.mjs';
Index: de_modules/es-toolkit/dist/function/memoize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/memoize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-/**
- * Creates a memoized version of the provided function. The memoized function caches
- * results based on the argument it receives, so if the same argument is passed again,
- * it returns the cached result instead of recomputing it.
- *
- * This function works with functions that take zero or just one argument. If your function
- * originally takes multiple arguments, you should refactor it to take a single object or array
- * that combines those arguments.
- *
- * If the argument is not primitive (e.g., arrays or objects), provide a
- * `getCacheKey` function to generate a unique cache key for proper caching.
- *
- * @template F - The type of the function to be memoized.
- * @param {F} fn - The function to be memoized. It should accept a single argument and return a value.
- * @param {MemoizeOptions<Parameters<F>[0], ReturnType<F>>} [options={}] - Optional configuration for the memoization.
- * @param {MemoizeCache<any, V>} [options.cache] - The cache object used to store results. Defaults to a new `Map`.
- * @param {(args: A) => unknown} [options.getCacheKey] - An optional function to generate a unique cache key for each argument.
- *
- * @returns The memoized function with an additional `cache` property that exposes the internal cache.
- *
- * @example
- * // Example using the default cache
- * const add = (x: number) => x + 10;
- * const memoizedAdd = memoize(add);
- *
- * console.log(memoizedAdd(5)); // 15
- * console.log(memoizedAdd(5)); // 15 (cached result)
- * console.log(memoizedAdd.cache.size); // 1
- *
- * @example
- * // Example using a custom resolver
- * const sum = (arr: number[]) => arr.reduce((x, y) => x + y, 0);
- * const memoizedSum = memoize(sum, { getCacheKey: (arr: number[]) => arr.join(',') });
- * console.log(memoizedSum([1, 2])); // 3
- * console.log(memoizedSum([1, 2])); // 3 (cached result)
- * console.log(memoizedSum.cache.size); // 1
- *
- * @example
- * // Example using a custom cache implementation
- * class CustomCache<K, T> implements MemoizeCache<K, T> {
- *   private cache = new Map<K, T>();
- *
- *   set(key: K, value: T): void {
- *     this.cache.set(key, value);
- *   }
- *
- *   get(key: K): T | undefined {
- *     return this.cache.get(key);
- *   }
- *
- *   has(key: K): boolean {
- *     return this.cache.has(key);
- *   }
- *
- *   delete(key: K): boolean {
- *     return this.cache.delete(key);
- *   }
- *
- *   clear(): void {
- *     this.cache.clear();
- *   }
- *
- *   get size(): number {
- *     return this.cache.size;
- *   }
- * }
- * const customCache = new CustomCache<string, number>();
- * const memoizedSumWithCustomCache = memoize(sum, { cache: customCache });
- * console.log(memoizedSumWithCustomCache([1, 2])); // 3
- * console.log(memoizedSumWithCustomCache([1, 2])); // 3 (cached result)
- * console.log(memoizedAddWithCustomCache.cache.size); // 1
- */
-declare function memoize<F extends (...args: any) => any>(fn: F, options?: {
-    cache?: MemoizeCache<any, ReturnType<F>>;
-    getCacheKey?: (args: Parameters<F>[0]) => unknown;
-}): F & {
-    cache: MemoizeCache<any, ReturnType<F>>;
-};
-/**
- * Represents a cache for memoization, allowing storage and retrieval of computed values.
- *
- * @template K - The type of keys used to store values in the cache.
- * @template V - The type of values stored in the cache.
- */
-interface MemoizeCache<K, V> {
-    /**
-     * Stores a value in the cache with the specified key.
-     *
-     * @param key - The key to associate with the value.
-     * @param value - The value to store in the cache.
-     */
-    set(key: K, value: V): void;
-    /**
-     * Retrieves a value from the cache by its key.
-     *
-     * @param key - The key of the value to retrieve.
-     * @returns The value associated with the key, or undefined if the key does not exist.
-     */
-    get(key: K): V | undefined;
-    /**
-     * Checks if a value exists in the cache for the specified key.
-     *
-     * @param key - The key to check for existence in the cache.
-     * @returns True if the cache contains the key, false otherwise.
-     */
-    has(key: K): boolean;
-    /**
-     * Deletes a value from the cache by its key.
-     *
-     * @param key - The key of the value to delete.
-     * @returns True if the value was successfully deleted, false otherwise.
-     */
-    delete(key: K): boolean | void;
-    /**
-     * Clears all values from the cache.
-     */
-    clear(): void;
-    /**
-     * The number of entries in the cache.
-     */
-    size: number;
-}
-
-export { type MemoizeCache, memoize };
Index: de_modules/es-toolkit/dist/function/memoize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/memoize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-/**
- * Creates a memoized version of the provided function. The memoized function caches
- * results based on the argument it receives, so if the same argument is passed again,
- * it returns the cached result instead of recomputing it.
- *
- * This function works with functions that take zero or just one argument. If your function
- * originally takes multiple arguments, you should refactor it to take a single object or array
- * that combines those arguments.
- *
- * If the argument is not primitive (e.g., arrays or objects), provide a
- * `getCacheKey` function to generate a unique cache key for proper caching.
- *
- * @template F - The type of the function to be memoized.
- * @param {F} fn - The function to be memoized. It should accept a single argument and return a value.
- * @param {MemoizeOptions<Parameters<F>[0], ReturnType<F>>} [options={}] - Optional configuration for the memoization.
- * @param {MemoizeCache<any, V>} [options.cache] - The cache object used to store results. Defaults to a new `Map`.
- * @param {(args: A) => unknown} [options.getCacheKey] - An optional function to generate a unique cache key for each argument.
- *
- * @returns The memoized function with an additional `cache` property that exposes the internal cache.
- *
- * @example
- * // Example using the default cache
- * const add = (x: number) => x + 10;
- * const memoizedAdd = memoize(add);
- *
- * console.log(memoizedAdd(5)); // 15
- * console.log(memoizedAdd(5)); // 15 (cached result)
- * console.log(memoizedAdd.cache.size); // 1
- *
- * @example
- * // Example using a custom resolver
- * const sum = (arr: number[]) => arr.reduce((x, y) => x + y, 0);
- * const memoizedSum = memoize(sum, { getCacheKey: (arr: number[]) => arr.join(',') });
- * console.log(memoizedSum([1, 2])); // 3
- * console.log(memoizedSum([1, 2])); // 3 (cached result)
- * console.log(memoizedSum.cache.size); // 1
- *
- * @example
- * // Example using a custom cache implementation
- * class CustomCache<K, T> implements MemoizeCache<K, T> {
- *   private cache = new Map<K, T>();
- *
- *   set(key: K, value: T): void {
- *     this.cache.set(key, value);
- *   }
- *
- *   get(key: K): T | undefined {
- *     return this.cache.get(key);
- *   }
- *
- *   has(key: K): boolean {
- *     return this.cache.has(key);
- *   }
- *
- *   delete(key: K): boolean {
- *     return this.cache.delete(key);
- *   }
- *
- *   clear(): void {
- *     this.cache.clear();
- *   }
- *
- *   get size(): number {
- *     return this.cache.size;
- *   }
- * }
- * const customCache = new CustomCache<string, number>();
- * const memoizedSumWithCustomCache = memoize(sum, { cache: customCache });
- * console.log(memoizedSumWithCustomCache([1, 2])); // 3
- * console.log(memoizedSumWithCustomCache([1, 2])); // 3 (cached result)
- * console.log(memoizedAddWithCustomCache.cache.size); // 1
- */
-declare function memoize<F extends (...args: any) => any>(fn: F, options?: {
-    cache?: MemoizeCache<any, ReturnType<F>>;
-    getCacheKey?: (args: Parameters<F>[0]) => unknown;
-}): F & {
-    cache: MemoizeCache<any, ReturnType<F>>;
-};
-/**
- * Represents a cache for memoization, allowing storage and retrieval of computed values.
- *
- * @template K - The type of keys used to store values in the cache.
- * @template V - The type of values stored in the cache.
- */
-interface MemoizeCache<K, V> {
-    /**
-     * Stores a value in the cache with the specified key.
-     *
-     * @param key - The key to associate with the value.
-     * @param value - The value to store in the cache.
-     */
-    set(key: K, value: V): void;
-    /**
-     * Retrieves a value from the cache by its key.
-     *
-     * @param key - The key of the value to retrieve.
-     * @returns The value associated with the key, or undefined if the key does not exist.
-     */
-    get(key: K): V | undefined;
-    /**
-     * Checks if a value exists in the cache for the specified key.
-     *
-     * @param key - The key to check for existence in the cache.
-     * @returns True if the cache contains the key, false otherwise.
-     */
-    has(key: K): boolean;
-    /**
-     * Deletes a value from the cache by its key.
-     *
-     * @param key - The key of the value to delete.
-     * @returns True if the value was successfully deleted, false otherwise.
-     */
-    delete(key: K): boolean | void;
-    /**
-     * Clears all values from the cache.
-     */
-    clear(): void;
-    /**
-     * The number of entries in the cache.
-     */
-    size: number;
-}
-
-export { type MemoizeCache, memoize };
Index: de_modules/es-toolkit/dist/function/memoize.js
===================================================================
--- node_modules/es-toolkit/dist/function/memoize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function memoize(fn, options = {}) {
-    const { cache = new Map(), getCacheKey } = options;
-    const memoizedFn = function (arg) {
-        const key = getCacheKey ? getCacheKey(arg) : arg;
-        if (cache.has(key)) {
-            return cache.get(key);
-        }
-        const result = fn.call(this, arg);
-        cache.set(key, result);
-        return result;
-    };
-    memoizedFn.cache = cache;
-    return memoizedFn;
-}
-
-exports.memoize = memoize;
Index: de_modules/es-toolkit/dist/function/memoize.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/memoize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-function memoize(fn, options = {}) {
-    const { cache = new Map(), getCacheKey } = options;
-    const memoizedFn = function (arg) {
-        const key = getCacheKey ? getCacheKey(arg) : arg;
-        if (cache.has(key)) {
-            return cache.get(key);
-        }
-        const result = fn.call(this, arg);
-        cache.set(key, result);
-        return result;
-    };
-    memoizedFn.cache = cache;
-    return memoizedFn;
-}
-
-export { memoize };
Index: de_modules/es-toolkit/dist/function/negate.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/negate.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Creates a function that negates the result of the predicate function.
- *
- * @template F - The type of the function to negate.
- * @param {F} func - The function to negate.
- * @returns {F} The new negated function, which negates the boolean result of `func`.
- *
- * @example
- * const array = [1, 2, 3, 4, 5, 6];
- * const isEven = (n: number) => n % 2 === 0;
- * const result = array.filter(negate(isEven));
- * // result will be [1, 3, 5]
- */
-declare function negate<F extends (...args: any[]) => boolean>(func: F): F;
-
-export { negate };
Index: de_modules/es-toolkit/dist/function/negate.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/negate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Creates a function that negates the result of the predicate function.
- *
- * @template F - The type of the function to negate.
- * @param {F} func - The function to negate.
- * @returns {F} The new negated function, which negates the boolean result of `func`.
- *
- * @example
- * const array = [1, 2, 3, 4, 5, 6];
- * const isEven = (n: number) => n % 2 === 0;
- * const result = array.filter(negate(isEven));
- * // result will be [1, 3, 5]
- */
-declare function negate<F extends (...args: any[]) => boolean>(func: F): F;
-
-export { negate };
Index: de_modules/es-toolkit/dist/function/negate.js
===================================================================
--- node_modules/es-toolkit/dist/function/negate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function negate(func) {
-    return ((...args) => !func(...args));
-}
-
-exports.negate = negate;
Index: de_modules/es-toolkit/dist/function/negate.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/negate.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function negate(func) {
-    return ((...args) => !func(...args));
-}
-
-export { negate };
Index: de_modules/es-toolkit/dist/function/noop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/noop.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * A no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * noop(); // Does nothing
- *
- * @returns {void} This function does not return anything.
- */
-declare function noop(): void;
-
-export { noop };
Index: de_modules/es-toolkit/dist/function/noop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/noop.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * A no-operation function that does nothing.
- * This can be used as a placeholder or default function.
- *
- * @example
- * noop(); // Does nothing
- *
- * @returns {void} This function does not return anything.
- */
-declare function noop(): void;
-
-export { noop };
Index: de_modules/es-toolkit/dist/function/noop.js
===================================================================
--- node_modules/es-toolkit/dist/function/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function noop() { }
-
-exports.noop = noop;
Index: de_modules/es-toolkit/dist/function/noop.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/noop.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-function noop() { }
-
-export { noop };
Index: de_modules/es-toolkit/dist/function/once.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/once.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that is restricted to invoking func once. Repeat calls to the function return the value of the first invocation.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to restrict.
- * @returns {F} Returns the new restricted function.
- *
- * @example
- * const initialize = once(createApplication);
- *
- * initialize();
- * initialize();
- * // => `createApplication` is invoked once
- */
-declare function once<F extends (...args: any[]) => any>(func: F): F;
-
-export { once };
Index: de_modules/es-toolkit/dist/function/once.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/once.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that is restricted to invoking func once. Repeat calls to the function return the value of the first invocation.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to restrict.
- * @returns {F} Returns the new restricted function.
- *
- * @example
- * const initialize = once(createApplication);
- *
- * initialize();
- * initialize();
- * // => `createApplication` is invoked once
- */
-declare function once<F extends (...args: any[]) => any>(func: F): F;
-
-export { once };
Index: de_modules/es-toolkit/dist/function/once.js
===================================================================
--- node_modules/es-toolkit/dist/function/once.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function once(func) {
-    let called = false;
-    let cache;
-    return function (...args) {
-        if (!called) {
-            called = true;
-            cache = func(...args);
-        }
-        return cache;
-    };
-}
-
-exports.once = once;
Index: de_modules/es-toolkit/dist/function/once.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/once.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function once(func) {
-    let called = false;
-    let cache;
-    return function (...args) {
-        if (!called) {
-            called = true;
-            cache = func(...args);
-        }
-        return cache;
-    };
-}
-
-export { once };
Index: de_modules/es-toolkit/dist/function/partial.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/partial.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,551 +1,0 @@
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(): R} A new function that takes no arguments and returns the result of the original function.
- *
- * @example
- * const addOne = (x: number) => x + 1;
- * const addOneToFive = partial(addOne, 5);
- * console.log(addOneToFive()); // => 6
- */
-declare function partial<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number) => x * y;
- * const double = partial(multiply, 2);
- * console.log(double(5)); // => 10
- */
-declare function partial<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2): R} func The function to partially apply.
- * @param {Placeholder} placeholder The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg1: T1): R} A new function that takes the first argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithHello = partial(greet, partial.placeholder, 'John');
- * console.log(greetWithHello('Hello')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, placeholder: Placeholder, arg2: T2): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2, arg3: T3): R} A new function that takes the second and third arguments and returns the result of the original function.
- *
- * @example
- * const sumThree = (a: number, b: number, c: number) => a + b + c;
- * const addFive = partial(sumThree, 5);
- * console.log(addFive(3, 2)); // => 10
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1): (arg2: T2, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, partial.placeholder, 'John');
- * console.log(greetWithPlaceholder('Hello')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: Placeholder, arg2: T2): (arg1: T1, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number) => x * y * z;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2);
- * console.log(multiplyWithPlaceholders(3, 4)); // => 24
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder);
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The first argument to apply.
- * @param {T2} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder);
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, plc1: Placeholder, arg2: T2, arg3: T3): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const double = partial(multiply, 2);
- * console.log(double(5, 4, 3)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1): (arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholders(4, 5)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg3: T3, arg4: T4): R} A new function that takes the third and fourth arguments and returns the result of the original function.
- *
- * @example
- * const sumFour = (a: number, b: number, c: number, d: number) => a + b + c + d;
- * const addOneAndTwo = partial(sumFour, 1, 2);
- * console.log(addOneAndTwo(3, 4)); // => 10
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2): (arg3: T3, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg2: T2, arg4: T4): R} A new function that takes the second and fourth arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder, '!');
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholder = partial(multiply, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholder(4)); // => 24
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: T3): (arg1: T1, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: Placeholder, arg4: T4): (arg1: T1, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholders(4, 5)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg4: T4): R} A new function that takes the fourth argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3): (arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg3: T3): R} A new function that takes the third argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: T4): (arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: T4): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1): R} A new function that takes the first argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: T3, arg4: T4): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template R The return type of the function.
- * @param {function(...args: TS): R} func The function to partially apply.
- * @returns {function(...args: TS): R} A new function that takes the same arguments as the original function.
- *
- * @example
- * const add = (...numbers: number[]) => numbers.reduce((sum, n) => sum + n, 0);
- * const addFive = partial(add, 5);
- * console.log(addFive(1, 2, 3)); // => 11
- */
-declare function partial<TS extends any[], R>(func: (...args: TS) => R): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, ...args: TS): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, ...names: string[]) => `${greeting}, ${names.join(', ')}!`;
- * const greetHello = partial(greet, 'Hello');
- * console.log(greetHello('Alice', 'Bob')); // => 'Hello, Alice, Bob!'
- */
-declare function partial<TS extends any[], T1, R>(func: (arg1: T1, ...args: TS) => R, arg1: T1): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, ...args: TS): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', '!');
- * console.log(greetWithHello('John')); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, R>(func: (arg1: T1, arg2: T2, ...args: TS) => R, t1: T1, arg2: T2): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(t1: T1, arg2: T2, arg3: T3, ...args: TS): R} func The function to partially apply.
- * @param {T1} t1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', 'John', '!');
- * console.log(greetWithHello()); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, T3, R>(func: (t1: T1, arg2: T2, arg3: T3, ...args: TS) => R, t1: T1, arg2: T2, arg3: T3): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(t1: T1, arg2: T2, arg3: T3, arg4: T4, ...args: TS): R} func The function to partially apply.
- * @param {T1} t1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', 'John', '!');
- * console.log(greetWithHello()); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, T3, T4, R>(func: (t1: T1, arg2: T2, arg3: T3, arg4: T4, ...args: TS) => R, t1: T1, arg2: T2, arg3: T3, arg4: T4): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template F The type of the function to partially apply.
- * @param {F} func The function to partially apply.
- * @param {...any[]} partialArgs The arguments to be partially applied.
- * @returns {function(...args: any[]): ReturnType<F>} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const add = (...numbers: number[]) => numbers.reduce((sum, n) => sum + n, 0);
- * const addFive = partial(add, 5);
- * console.log(addFive(1, 2, 3)); // => 11
- */
-declare function partial<F extends (...args: any[]) => any>(func: F, ...partialArgs: any[]): (...args: any[]) => ReturnType<F>;
-declare namespace partial {
-    var placeholder: typeof placeholderSymbol;
-}
-declare const placeholderSymbol: unique symbol;
-type Placeholder = typeof placeholderSymbol;
-
-export { partial };
Index: de_modules/es-toolkit/dist/function/partial.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/partial.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,551 +1,0 @@
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(): R} A new function that takes no arguments and returns the result of the original function.
- *
- * @example
- * const addOne = (x: number) => x + 1;
- * const addOneToFive = partial(addOne, 5);
- * console.log(addOneToFive()); // => 6
- */
-declare function partial<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number) => x * y;
- * const double = partial(multiply, 2);
- * console.log(double(5)); // => 10
- */
-declare function partial<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2): R} func The function to partially apply.
- * @param {Placeholder} placeholder The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg1: T1): R} A new function that takes the first argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithHello = partial(greet, partial.placeholder, 'John');
- * console.log(greetWithHello('Hello')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, placeholder: Placeholder, arg2: T2): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2, arg3: T3): R} A new function that takes the second and third arguments and returns the result of the original function.
- *
- * @example
- * const sumThree = (a: number, b: number, c: number) => a + b + c;
- * const addFive = partial(sumThree, 5);
- * console.log(addFive(3, 2)); // => 10
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1): (arg2: T2, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, partial.placeholder, 'John');
- * console.log(greetWithPlaceholder('Hello')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: Placeholder, arg2: T2): (arg1: T1, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number) => x * y * z;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2);
- * console.log(multiplyWithPlaceholders(3, 4)); // => 24
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder);
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3): R} func The function to partially apply.
- * @param {Placeholder} arg1 The first argument to apply.
- * @param {T2} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder);
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, plc1: Placeholder, arg2: T2, arg3: T3): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const double = partial(multiply, 2);
- * console.log(double(5, 4, 3)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1): (arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholders(4, 5)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(arg3: T3, arg4: T4): R} A new function that takes the third and fourth arguments and returns the result of the original function.
- *
- * @example
- * const sumFour = (a: number, b: number, c: number, d: number) => a + b + c + d;
- * const addOneAndTwo = partial(sumFour, 1, 2);
- * console.log(addOneAndTwo(3, 4)); // => 10
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2): (arg3: T3, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg2: T2, arg4: T4): R} A new function that takes the second and fourth arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithPlaceholder = partial(greet, 'Hello', partial.placeholder, '!');
- * console.log(greetWithPlaceholder('John')); // => 'Hello, John!'
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholder = partial(multiply, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholder(4)); // => 24
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: T3): (arg1: T1, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg3: T3): R} A new function that takes the first and third arguments and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: Placeholder, arg4: T4): (arg1: T1, arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1, arg2: T2): R} A new function that takes the first and second arguments and returns the result of the original function.
- *
- * @example
- * const multiply = (x: number, y: number, z: number, w: number) => x * y * z * w;
- * const multiplyWithPlaceholders = partial(multiply, partial.placeholder, partial.placeholder, 2, 3);
- * console.log(multiplyWithPlaceholders(4, 5)); // => 120
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: Placeholder, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(arg4: T4): R} A new function that takes the fourth argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3): (arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg3: T3): R} A new function that takes the third argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: T4): (arg3: T3) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg2: T2): R} A new function that takes the second argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: T4): (arg2: T2) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, arg3: T3, arg4: T4): R} func The function to partially apply.
- * @param {Placeholder} arg1 The placeholder for the first argument.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(arg1: T1): R} A new function that takes the first argument and returns the result of the original function.
- */
-declare function partial<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: Placeholder, arg2: T2, arg3: T3, arg4: T4): (arg1: T1) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template R The return type of the function.
- * @param {function(...args: TS): R} func The function to partially apply.
- * @returns {function(...args: TS): R} A new function that takes the same arguments as the original function.
- *
- * @example
- * const add = (...numbers: number[]) => numbers.reduce((sum, n) => sum + n, 0);
- * const addFive = partial(add, 5);
- * console.log(addFive(1, 2, 3)); // => 11
- */
-declare function partial<TS extends any[], R>(func: (...args: TS) => R): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, ...args: TS): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, ...names: string[]) => `${greeting}, ${names.join(', ')}!`;
- * const greetHello = partial(greet, 'Hello');
- * console.log(greetHello('Alice', 'Bob')); // => 'Hello, Alice, Bob!'
- */
-declare function partial<TS extends any[], T1, R>(func: (arg1: T1, ...args: TS) => R, arg1: T1): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {function(arg1: T1, arg2: T2, ...args: TS): R} func The function to partially apply.
- * @param {T1} arg1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', '!');
- * console.log(greetWithHello('John')); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, R>(func: (arg1: T1, arg2: T2, ...args: TS) => R, t1: T1, arg2: T2): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {function(t1: T1, arg2: T2, arg3: T3, ...args: TS): R} func The function to partially apply.
- * @param {T1} t1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', 'John', '!');
- * console.log(greetWithHello()); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, T3, R>(func: (t1: T1, arg2: T2, arg3: T3, ...args: TS) => R, t1: T1, arg2: T2, arg3: T3): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template TS The types of the arguments.
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {function(t1: T1, arg2: T2, arg3: T3, arg4: T4, ...args: TS): R} func The function to partially apply.
- * @param {T1} t1 The first argument to apply.
- * @param {T2} arg2 The second argument to apply.
- * @param {T3} arg3 The third argument to apply.
- * @param {T4} arg4 The fourth argument to apply.
- * @returns {function(...args: TS): R} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const greet = (greeting: string, name: string, punctuation: string) => `${greeting}, ${name}${punctuation}`;
- * const greetWithHello = partial(greet, 'Hello', 'John', '!');
- * console.log(greetWithHello()); // => 'Hello, John!'
- */
-declare function partial<TS extends any[], T1, T2, T3, T4, R>(func: (t1: T1, arg2: T2, arg3: T3, arg4: T4, ...args: TS) => R, t1: T1, arg2: T2, arg3: T3, arg4: T4): (...args: TS) => R;
-/**
- * Creates a function that invokes `func` with `partialArgs` prepended to the arguments it receives. This method is like `bind` except it does not alter the `this` binding.
- *
- * The partial.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template F The type of the function to partially apply.
- * @param {F} func The function to partially apply.
- * @param {...any[]} partialArgs The arguments to be partially applied.
- * @returns {function(...args: any[]): ReturnType<F>} A new function that takes the remaining arguments and returns the result of the original function.
- *
- * @example
- * const add = (...numbers: number[]) => numbers.reduce((sum, n) => sum + n, 0);
- * const addFive = partial(add, 5);
- * console.log(addFive(1, 2, 3)); // => 11
- */
-declare function partial<F extends (...args: any[]) => any>(func: F, ...partialArgs: any[]): (...args: any[]) => ReturnType<F>;
-declare namespace partial {
-    var placeholder: typeof placeholderSymbol;
-}
-declare const placeholderSymbol: unique symbol;
-type Placeholder = typeof placeholderSymbol;
-
-export { partial };
Index: de_modules/es-toolkit/dist/function/partial.js
===================================================================
--- node_modules/es-toolkit/dist/function/partial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function partial(func, ...partialArgs) {
-    return partialImpl(func, placeholderSymbol, ...partialArgs);
-}
-function partialImpl(func, placeholder, ...partialArgs) {
-    const partialed = function (...providedArgs) {
-        let providedArgsIndex = 0;
-        const substitutedArgs = partialArgs
-            .slice()
-            .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
-        const remainingArgs = providedArgs.slice(providedArgsIndex);
-        return func.apply(this, substitutedArgs.concat(remainingArgs));
-    };
-    if (func.prototype) {
-        partialed.prototype = Object.create(func.prototype);
-    }
-    return partialed;
-}
-const placeholderSymbol = Symbol('partial.placeholder');
-partial.placeholder = placeholderSymbol;
-
-exports.partial = partial;
-exports.partialImpl = partialImpl;
Index: de_modules/es-toolkit/dist/function/partial.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/partial.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function partial(func, ...partialArgs) {
-    return partialImpl(func, placeholderSymbol, ...partialArgs);
-}
-function partialImpl(func, placeholder, ...partialArgs) {
-    const partialed = function (...providedArgs) {
-        let providedArgsIndex = 0;
-        const substitutedArgs = partialArgs
-            .slice()
-            .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
-        const remainingArgs = providedArgs.slice(providedArgsIndex);
-        return func.apply(this, substitutedArgs.concat(remainingArgs));
-    };
-    if (func.prototype) {
-        partialed.prototype = Object.create(func.prototype);
-    }
-    return partialed;
-}
-const placeholderSymbol = Symbol('partial.placeholder');
-partial.placeholder = placeholderSymbol;
-
-export { partial, partialImpl };
Index: de_modules/es-toolkit/dist/function/partialRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/partialRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,628 +1,0 @@
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template R The return type of the function.
- * @param {() => R} func The function to invoke.
- * @returns {() => R} Returns the new function.
- * @example
- * const getValue = () => 42;
- * const getValueFunc = partialRight(getValue);
- * console.log(getValueFunc()); // => 42
- */
-declare function partialRight<R>(func: () => R): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const addOne = (num: number) => num + 1;
- * const addOneFunc = partialRight(addOne, 1);
- * console.log(addOneFunc()); // => 2
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const multiplyBy = (factor: number) => (num: number) => num * factor;
- * const double = partialRight(multiplyBy(2));
- * console.log(double(5)); // => 10
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const greet = (name: string) => `Hello, ${name}!`;
- * const greetJohn = partialRight(greet, 'John');
- * console.log(greetJohn()); // => 'Hello, John!'
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const subtract = (a: number, b: number) => a - b;
- * const subtractFive = partialRight(subtract);
- * console.log(subtractFive(10, 5)); // => 5
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @returns {(arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const concat = (a: string, b: string) => a + b;
- * const concatWithHello = partialRight(concat, 'Hello', partialRight.placeholder);
- * console.log(concatWithHello(' World!')); // => 'Hello World!'
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1, arg2: Placeholder): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const divide = (a: number, b: number) => a / b;
- * const divideByTwo = partialRight(divide, 2);
- * console.log(divideByTwo(10)); // => 5
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg2: T2): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const multiply = (a: number, b: number) => a * b;
- * const multiplyByThreeAndFour = partialRight(multiply, 3, 4);
- * console.log(multiplyByThreeAndFour()); // => 12
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1, arg2: T2): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const sumThree = (a: number, b: number, c: number) => a + b + c;
- * const sumWithFive = partialRight(sumThree);
- * console.log(sumWithFive(1, 2, 5)); // => 8
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R): (arg1: T1, arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg2: T2, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const formatDate = (day: number, month: number, year: number) => `${day}/${month}/${year}`;
- * const formatDateWithDay = partialRight(formatDate, 1, partialRight.placeholder, partialRight.placeholder);
- * console.log(formatDateWithDay(12, 2023)); // => '1/12/2023'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder): (arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg1: T1, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const createUser = (name: string, age: number, country: string) => `${name}, ${age} years old from ${country}`;
- * const createUserFromUSA = partialRight(createUser, 'USA', partialRight.placeholder);
- * console.log(createUserFromUSA('John', 30)); // => 'John, 30 years old from USA'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg2: T2, arg3: Placeholder): (arg1: T1, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const logMessage = (level: string, message: string, timestamp: string) => `[${level}] ${message} at ${timestamp}`;
- * const logError = partialRight(logMessage, 'ERROR', '2023-10-01');
- * console.log(logError('Something went wrong!')); // => '[ERROR] Something went wrong! at 2023-10-01'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: T2, arg3: Placeholder): (arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const calculateArea = (length: number, width: number) => length * width;
- * const calculateAreaWithWidth = partialRight(calculateArea, 5);
- * console.log(calculateAreaWithWidth(10)); // => 50
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg3: T3): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const formatCurrency = (amount: number, currency: string) => `${amount} ${currency}`;
- * const formatUSD = partialRight(formatCurrency, 100, partialRight.placeholder);
- * console.log(formatUSD('USD')); // => '100 USD'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const createProfile = (name: string, age: number, country: string) => `${name}, ${age} from ${country}`;
- * const createProfileFromCanada = partialRight(createProfile, 'Canada', 'John');
- * console.log(createProfileFromCanada(30)); // => 'John, 30 from Canada'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg2: T2, arg3: T3): (arg1: T1) => R;
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: T2, arg3: T3): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} Returns a new function that takes four arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg2: T2, arg3: T3, arg4: T4) => R} Returns a new function that takes the second, third, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder, arg4: Placeholder): (arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg3: T3, arg4: T4) => R} Returns a new function that takes the first, third, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: Placeholder, arg4: Placeholder): (arg1: T1, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg3: T3, arg4: T4) => R} Returns a new function that takes the third and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: Placeholder): (arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg2: T2, arg4: T4) => R} Returns a new function that takes the first, second, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg3: T3, arg4: Placeholder): (arg1: T1, arg2: T2, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with the first argument, a placeholder for the second argument,
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg2: T2, arg4: T4) => R} Returns a new function that takes the second and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: Placeholder): (arg2: T2, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg4: T4) => R} Returns a new function that takes the first and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: T3, arg4: Placeholder): (arg1: T1, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg4: T4) => R} Returns a new function that takes the fourth argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: Placeholder): (arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2, arg3: T3) => R} Returns a new function that takes the first, second, and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg4: T4): (arg1: T1, arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg2: T2, arg3: T3) => R} Returns a new function that takes the second and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder, arg4: T4): (arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg3: T3) => R} Returns a new function that takes the first and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: Placeholder, arg4: T4): (arg1: T1, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg3: T3) => R} Returns a new function that takes the third argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: T4): (arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2) => R} Returns a new function that takes the first and second arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg2: T2) => R} Returns a new function that takes the second argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: T4): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns a new function that takes the first argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: T3, arg4: T4): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const concatenate = (a: string, b: string, c: string, d: string) => a + b + c + d;
- * const concatenateHelloWorld = partialRight(concatenate, 'Hello', ' ', 'World', '!');
- * console.log(concatenateHelloWorld()); // => 'Hello World!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: T4): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template F The type of the function to partially apply.
- * @param {F} func The function to partially apply arguments to.
- * @param {...any[]} args The arguments to be partially applied.
- * @returns {function(...args: any[]): ReturnType<F>} Returns the new partially applied function.
- * @example
- * const log = (...messages: string[]) => console.log(...messages);
- * const logError = partialRight(log, 'Error:');
- * logError('Something went wrong!'); // => 'Error: Something went wrong!'
- */
-declare function partialRight(func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
-declare namespace partialRight {
-    var placeholder: typeof placeholderSymbol;
-}
-declare const placeholderSymbol: unique symbol;
-type Placeholder = typeof placeholderSymbol;
-
-export { partialRight };
Index: de_modules/es-toolkit/dist/function/partialRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/partialRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,628 +1,0 @@
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template R The return type of the function.
- * @param {() => R} func The function to invoke.
- * @returns {() => R} Returns the new function.
- * @example
- * const getValue = () => 42;
- * const getValueFunc = partialRight(getValue);
- * console.log(getValueFunc()); // => 42
- */
-declare function partialRight<R>(func: () => R): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const addOne = (num: number) => num + 1;
- * const addOneFunc = partialRight(addOne, 1);
- * console.log(addOneFunc()); // => 2
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const multiplyBy = (factor: number) => (num: number) => num * factor;
- * const double = partialRight(multiplyBy(2));
- * console.log(double(5)); // => 10
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template R The return type of the function.
- * @param {(arg1: T1) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const greet = (name: string) => `Hello, ${name}!`;
- * const greetJohn = partialRight(greet, 'John');
- * console.log(greetJohn()); // => 'Hello, John!'
- */
-declare function partialRight<T1, R>(func: (arg1: T1) => R, arg1: T1): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const subtract = (a: number, b: number) => a - b;
- * const subtractFive = partialRight(subtract);
- * console.log(subtractFive(10, 5)); // => 5
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @returns {(arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const concat = (a: string, b: string) => a + b;
- * const concatWithHello = partialRight(concat, 'Hello', partialRight.placeholder);
- * console.log(concatWithHello(' World!')); // => 'Hello World!'
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1, arg2: Placeholder): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const divide = (a: number, b: number) => a / b;
- * const divideByTwo = partialRight(divide, 2);
- * console.log(divideByTwo(10)); // => 5
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg2: T2): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const multiply = (a: number, b: number) => a * b;
- * const multiplyByThreeAndFour = partialRight(multiply, 3, 4);
- * console.log(multiplyByThreeAndFour()); // => 12
- */
-declare function partialRight<T1, T2, R>(func: (arg1: T1, arg2: T2) => R, arg1: T1, arg2: T2): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const sumThree = (a: number, b: number, c: number) => a + b + c;
- * const sumWithFive = partialRight(sumThree);
- * console.log(sumWithFive(1, 2, 5)); // => 8
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R): (arg1: T1, arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg2: T2, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const formatDate = (day: number, month: number, year: number) => `${day}/${month}/${year}`;
- * const formatDateWithDay = partialRight(formatDate, 1, partialRight.placeholder, partialRight.placeholder);
- * console.log(formatDateWithDay(12, 2023)); // => '1/12/2023'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder): (arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg1: T1, arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const createUser = (name: string, age: number, country: string) => `${name}, ${age} years old from ${country}`;
- * const createUserFromUSA = partialRight(createUser, 'USA', partialRight.placeholder);
- * console.log(createUserFromUSA('John', 30)); // => 'John, 30 years old from USA'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg2: T2, arg3: Placeholder): (arg1: T1, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @returns {(arg3: T3) => R} Returns the new partially applied function.
- * @example
- * const logMessage = (level: string, message: string, timestamp: string) => `[${level}] ${message} at ${timestamp}`;
- * const logError = partialRight(logMessage, 'ERROR', '2023-10-01');
- * console.log(logError('Something went wrong!')); // => '[ERROR] Something went wrong! at 2023-10-01'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: T2, arg3: Placeholder): (arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const calculateArea = (length: number, width: number) => length * width;
- * const calculateAreaWithWidth = partialRight(calculateArea, 5);
- * console.log(calculateAreaWithWidth(10)); // => 50
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg3: T3): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg2: T2) => R} Returns the new partially applied function.
- * @example
- * const formatCurrency = (amount: number, currency: string) => `${amount} ${currency}`;
- * const formatUSD = partialRight(formatCurrency, 100, partialRight.placeholder);
- * console.log(formatUSD('USD')); // => '100 USD'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: Placeholder, arg3: T3): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns the new partially applied function.
- * @example
- * const createProfile = (name: string, age: number, country: string) => `${name}, ${age} from ${country}`;
- * const createProfileFromCanada = partialRight(createProfile, 'Canada', 'John');
- * console.log(createProfileFromCanada(30)); // => 'John, 30 from Canada'
- */
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg2: T2, arg3: T3): (arg1: T1) => R;
-declare function partialRight<T1, T2, T3, R>(func: (arg1: T1, arg2: T2, arg3: T3) => R, arg1: T1, arg2: T2, arg3: T3): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @returns {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} Returns a new function that takes four arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg2: T2, arg3: T3, arg4: T4) => R} Returns a new function that takes the second, third, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder, arg4: Placeholder): (arg2: T2, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg3: T3, arg4: T4) => R} Returns a new function that takes the first, third, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: Placeholder, arg4: Placeholder): (arg1: T1, arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg3: T3, arg4: T4) => R} Returns a new function that takes the third and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: Placeholder): (arg3: T3, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg2: T2, arg4: T4) => R} Returns a new function that takes the first, second, and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg3: T3, arg4: Placeholder): (arg1: T1, arg2: T2, arg4: T4) => R;
-/**
- * Creates a function that invokes `func` with the first argument, a placeholder for the second argument,
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg2: T2, arg4: T4) => R} Returns a new function that takes the second and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: Placeholder): (arg2: T2, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg1: T1, arg4: T4) => R} Returns a new function that takes the first and fourth arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: T3, arg4: Placeholder): (arg1: T1, arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {Placeholder} arg4 The placeholder for the fourth argument.
- * @returns {(arg4: T4) => R} Returns a new function that takes the fourth argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: Placeholder): (arg4: T4) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2, arg3: T3) => R} Returns a new function that takes the first, second, and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg4: T4): (arg1: T1, arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg2: T2, arg3: T3) => R} Returns a new function that takes the second and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: Placeholder, arg4: T4): (arg2: T2, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg3: T3) => R} Returns a new function that takes the first and third arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: Placeholder, arg4: T4): (arg1: T1, arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {Placeholder} arg3 The placeholder for the third argument.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg3: T3) => R} Returns a new function that takes the third argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: Placeholder, arg4: T4): (arg3: T3) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1, arg2: T2) => R} Returns a new function that takes the first and second arguments.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg3: T3, arg4: T4): (arg1: T1, arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {Placeholder} arg2 The placeholder for the second argument.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg2: T2) => R} Returns a new function that takes the second argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: Placeholder, arg3: T3, arg4: T4): (arg2: T2) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {(arg1: T1) => R} Returns a new function that takes the first argument.
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg2: T2, arg3: T3, arg4: T4): (arg1: T1) => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template T1 The type of the first argument.
- * @template T2 The type of the second argument.
- * @template T3 The type of the third argument.
- * @template T4 The type of the fourth argument.
- * @template R The return type of the function.
- * @param {(arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R} func The function to partially apply arguments to.
- * @param {T1} arg1 The first argument to be partially applied.
- * @param {T2} arg2 The second argument to be partially applied.
- * @param {T3} arg3 The third argument to be partially applied.
- * @param {T4} arg4 The fourth argument to be partially applied.
- * @returns {() => R} Returns the new partially applied function.
- * @example
- * const concatenate = (a: string, b: string, c: string, d: string) => a + b + c + d;
- * const concatenateHelloWorld = partialRight(concatenate, 'Hello', ' ', 'World', '!');
- * console.log(concatenateHelloWorld()); // => 'Hello World!'
- */
-declare function partialRight<T1, T2, T3, T4, R>(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R, arg1: T1, arg2: T2, arg3: T3, arg4: T4): () => R;
-/**
- * This method is like `partial` except that partially applied arguments are appended to the arguments it receives.
- *
- * The partialRight.placeholder value, which defaults to a `symbol`, may be used as a placeholder for partially applied arguments.
- *
- * Note: This method doesn't set the `length` property of partially applied functions.
- *
- * @template F The type of the function to partially apply.
- * @param {F} func The function to partially apply arguments to.
- * @param {...any[]} args The arguments to be partially applied.
- * @returns {function(...args: any[]): ReturnType<F>} Returns the new partially applied function.
- * @example
- * const log = (...messages: string[]) => console.log(...messages);
- * const logError = partialRight(log, 'Error:');
- * logError('Something went wrong!'); // => 'Error: Something went wrong!'
- */
-declare function partialRight(func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
-declare namespace partialRight {
-    var placeholder: typeof placeholderSymbol;
-}
-declare const placeholderSymbol: unique symbol;
-type Placeholder = typeof placeholderSymbol;
-
-export { partialRight };
Index: de_modules/es-toolkit/dist/function/partialRight.js
===================================================================
--- node_modules/es-toolkit/dist/function/partialRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function partialRight(func, ...partialArgs) {
-    return partialRightImpl(func, placeholderSymbol, ...partialArgs);
-}
-function partialRightImpl(func, placeholder, ...partialArgs) {
-    const partialedRight = function (...providedArgs) {
-        const placeholderLength = partialArgs.filter(arg => arg === placeholder).length;
-        const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);
-        const remainingArgs = providedArgs.slice(0, rangeLength);
-        let providedArgsIndex = rangeLength;
-        const substitutedArgs = partialArgs
-            .slice()
-            .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
-        return func.apply(this, remainingArgs.concat(substitutedArgs));
-    };
-    if (func.prototype) {
-        partialedRight.prototype = Object.create(func.prototype);
-    }
-    return partialedRight;
-}
-const placeholderSymbol = Symbol('partialRight.placeholder');
-partialRight.placeholder = placeholderSymbol;
-
-exports.partialRight = partialRight;
-exports.partialRightImpl = partialRightImpl;
Index: de_modules/es-toolkit/dist/function/partialRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/partialRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-function partialRight(func, ...partialArgs) {
-    return partialRightImpl(func, placeholderSymbol, ...partialArgs);
-}
-function partialRightImpl(func, placeholder, ...partialArgs) {
-    const partialedRight = function (...providedArgs) {
-        const placeholderLength = partialArgs.filter(arg => arg === placeholder).length;
-        const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);
-        const remainingArgs = providedArgs.slice(0, rangeLength);
-        let providedArgsIndex = rangeLength;
-        const substitutedArgs = partialArgs
-            .slice()
-            .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
-        return func.apply(this, remainingArgs.concat(substitutedArgs));
-    };
-    if (func.prototype) {
-        partialedRight.prototype = Object.create(func.prototype);
-    }
-    return partialedRight;
-}
-const placeholderSymbol = Symbol('partialRight.placeholder');
-partialRight.placeholder = placeholderSymbol;
-
-export { partialRight, partialRightImpl };
Index: de_modules/es-toolkit/dist/function/rest.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/rest.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Creates a function that transforms the arguments of the provided function `func`.
- * The transformed arguments are passed to `func` such that the arguments starting from a specified index
- * are grouped into an array, while the previous arguments are passed as individual elements.
- *
- * @template F - The type of the function being transformed.
- * @param {F} func - The function whose arguments are to be transformed.
- * @param {number} [startIndex=func.length - 1] - The index from which to start grouping the remaining arguments into an array.
- *                                            Defaults to `func.length - 1`, grouping all arguments after the last parameter.
- * @returns {(...args: any[]) => ReturnType<F>} A new function that, when called, returns the result of calling `func` with the transformed arguments.
- *
- * The transformed arguments are:
- * - The first `start` arguments as individual elements.
- * - The remaining arguments from index `start` onward grouped into an array.
- * @example
- * function fn(a, b, c) {
- *   return [a, b, c];
- * }
- *
- * // Using default start index (func.length - 1, which is 2 in this case)
- * const transformedFn = rest(fn);
- * console.log(transformedFn(1, 2, 3, 4)); // [1, 2, [3, 4]]
- *
- * // Using start index 1
- * const transformedFnWithStart = rest(fn, 1);
- * console.log(transformedFnWithStart(1, 2, 3, 4)); // [1, [2, 3, 4]]
- *
- * // With fewer arguments than the start index
- * console.log(transformedFn(1)); // [1, undefined, []]
- */
-declare function rest<F extends (...args: any[]) => any>(func: F, startIndex?: number): (...args: any[]) => ReturnType<F>;
-
-export { rest };
Index: de_modules/es-toolkit/dist/function/rest.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/rest.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Creates a function that transforms the arguments of the provided function `func`.
- * The transformed arguments are passed to `func` such that the arguments starting from a specified index
- * are grouped into an array, while the previous arguments are passed as individual elements.
- *
- * @template F - The type of the function being transformed.
- * @param {F} func - The function whose arguments are to be transformed.
- * @param {number} [startIndex=func.length - 1] - The index from which to start grouping the remaining arguments into an array.
- *                                            Defaults to `func.length - 1`, grouping all arguments after the last parameter.
- * @returns {(...args: any[]) => ReturnType<F>} A new function that, when called, returns the result of calling `func` with the transformed arguments.
- *
- * The transformed arguments are:
- * - The first `start` arguments as individual elements.
- * - The remaining arguments from index `start` onward grouped into an array.
- * @example
- * function fn(a, b, c) {
- *   return [a, b, c];
- * }
- *
- * // Using default start index (func.length - 1, which is 2 in this case)
- * const transformedFn = rest(fn);
- * console.log(transformedFn(1, 2, 3, 4)); // [1, 2, [3, 4]]
- *
- * // Using start index 1
- * const transformedFnWithStart = rest(fn, 1);
- * console.log(transformedFnWithStart(1, 2, 3, 4)); // [1, [2, 3, 4]]
- *
- * // With fewer arguments than the start index
- * console.log(transformedFn(1)); // [1, undefined, []]
- */
-declare function rest<F extends (...args: any[]) => any>(func: F, startIndex?: number): (...args: any[]) => ReturnType<F>;
-
-export { rest };
Index: de_modules/es-toolkit/dist/function/rest.js
===================================================================
--- node_modules/es-toolkit/dist/function/rest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function rest(func, startIndex = func.length - 1) {
-    return function (...args) {
-        const rest = args.slice(startIndex);
-        const params = args.slice(0, startIndex);
-        while (params.length < startIndex) {
-            params.push(undefined);
-        }
-        return func.apply(this, [...params, rest]);
-    };
-}
-
-exports.rest = rest;
Index: de_modules/es-toolkit/dist/function/rest.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/rest.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function rest(func, startIndex = func.length - 1) {
-    return function (...args) {
-        const rest = args.slice(startIndex);
-        const params = args.slice(0, startIndex);
-        while (params.length < startIndex) {
-            params.push(undefined);
-        }
-        return func.apply(this, [...params, rest]);
-    };
-}
-
-export { rest };
Index: de_modules/es-toolkit/dist/function/retry.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/retry.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-interface RetryOptions {
-    /**
-     * Delay between retries. Can be a static number (milliseconds) or a function
-     * that computes delay dynamically based on the current attempt.
-     *
-     * @default 0
-     * @example
-     * delay: (attempts) => attempt * 50
-     */
-    delay?: number | ((attempts: number) => number);
-    /**
-     * The number of retries to attempt.
-     * @default Number.POSITIVE_INFINITY
-     */
-    retries?: number;
-    /**
-     * An AbortSignal to cancel the retry operation.
-     */
-    signal?: AbortSignal;
-    /**
-     * A function that determines whether to retry based on the error and attempt number.
-     * If not provided, all errors will trigger a retry.
-     *
-     * @param {unknown} error - The error that occurred.
-     * @param {number} attempt - The current attempt number (0-indexed).
-     * @returns {boolean} Whether to retry.
-     *
-     * @example
-     * shouldRetry: (error, attempt) => error.status >= 500
-     */
-    shouldRetry?: (error: unknown, attempt: number) => boolean;
-}
-/**
- * Retries a function that returns a promise until it resolves successfully.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Basic usage with default retry options
- * retry(() => fetchData()).then(data => console.log(data));
- */
-declare function retry<T>(func: () => Promise<T>): Promise<T>;
-/**
- * Retries a function that returns a promise a specified number of times.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry. It should return a promise.
- * @param {number} retries - The number of retries to attempt. Default is Infinity.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Retry a function up to 3 times
- * retry(() => fetchData(), 3).then(data => console.log(data));
- */
-declare function retry<T>(func: () => Promise<T>, retries: number): Promise<T>;
-/**
- * Retries a function that returns a promise with specified options.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry. It should return a promise.
- * @param {RetryOptions} options - Options to configure the retry behavior.
- * @param {number | ((attempts: number) => number)} [options.delay=0] - Delay(milliseconds) between retries.
- * @param {number} [options.retries=Infinity] - The number of retries to attempt.
- * @param {AbortSignal} [options.signal] - An AbortSignal to cancel the retry operation.
- * @param {(error: unknown, attempt: number) => boolean} [options.shouldRetry] - A function that determines whether to retry.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Retry a function with a delay of 1000ms between attempts
- * retry(() => fetchData(), { delay: 1000, times: 5 }).then(data => console.log(data));
- *
- * @example
- * // Retry a function with a fixed delay
- * retry(() => fetchData(), { delay: 1000, retries: 5 });
- *
- * // Retry a function with a delay increasing linearly by 50ms per attempt
- * retry(() => fetchData(), { delay: (attempts) => attempt * 50, retries: 5 });
- *
- * @example
- * // Retry a function with exponential backoff + jitter (max delay 10 seconds)
- * retry(() => fetchData(), {
- *   delay: (attempts) => Math.min(Math.random() * 100 * 2 ** attempts, 10000),
- *   retries: 5
- * });
- */
-declare function retry<T>(func: () => Promise<T>, options: RetryOptions): Promise<T>;
-
-export { retry };
Index: de_modules/es-toolkit/dist/function/retry.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/retry.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-interface RetryOptions {
-    /**
-     * Delay between retries. Can be a static number (milliseconds) or a function
-     * that computes delay dynamically based on the current attempt.
-     *
-     * @default 0
-     * @example
-     * delay: (attempts) => attempt * 50
-     */
-    delay?: number | ((attempts: number) => number);
-    /**
-     * The number of retries to attempt.
-     * @default Number.POSITIVE_INFINITY
-     */
-    retries?: number;
-    /**
-     * An AbortSignal to cancel the retry operation.
-     */
-    signal?: AbortSignal;
-    /**
-     * A function that determines whether to retry based on the error and attempt number.
-     * If not provided, all errors will trigger a retry.
-     *
-     * @param {unknown} error - The error that occurred.
-     * @param {number} attempt - The current attempt number (0-indexed).
-     * @returns {boolean} Whether to retry.
-     *
-     * @example
-     * shouldRetry: (error, attempt) => error.status >= 500
-     */
-    shouldRetry?: (error: unknown, attempt: number) => boolean;
-}
-/**
- * Retries a function that returns a promise until it resolves successfully.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Basic usage with default retry options
- * retry(() => fetchData()).then(data => console.log(data));
- */
-declare function retry<T>(func: () => Promise<T>): Promise<T>;
-/**
- * Retries a function that returns a promise a specified number of times.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry. It should return a promise.
- * @param {number} retries - The number of retries to attempt. Default is Infinity.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Retry a function up to 3 times
- * retry(() => fetchData(), 3).then(data => console.log(data));
- */
-declare function retry<T>(func: () => Promise<T>, retries: number): Promise<T>;
-/**
- * Retries a function that returns a promise with specified options.
- *
- * @template T
- * @param {() => Promise<T>} func - The function to retry. It should return a promise.
- * @param {RetryOptions} options - Options to configure the retry behavior.
- * @param {number | ((attempts: number) => number)} [options.delay=0] - Delay(milliseconds) between retries.
- * @param {number} [options.retries=Infinity] - The number of retries to attempt.
- * @param {AbortSignal} [options.signal] - An AbortSignal to cancel the retry operation.
- * @param {(error: unknown, attempt: number) => boolean} [options.shouldRetry] - A function that determines whether to retry.
- * @returns {Promise<T>} A promise that resolves with the value of the successful function call.
- *
- * @example
- * // Retry a function with a delay of 1000ms between attempts
- * retry(() => fetchData(), { delay: 1000, times: 5 }).then(data => console.log(data));
- *
- * @example
- * // Retry a function with a fixed delay
- * retry(() => fetchData(), { delay: 1000, retries: 5 });
- *
- * // Retry a function with a delay increasing linearly by 50ms per attempt
- * retry(() => fetchData(), { delay: (attempts) => attempt * 50, retries: 5 });
- *
- * @example
- * // Retry a function with exponential backoff + jitter (max delay 10 seconds)
- * retry(() => fetchData(), {
- *   delay: (attempts) => Math.min(Math.random() * 100 * 2 ** attempts, 10000),
- *   retries: 5
- * });
- */
-declare function retry<T>(func: () => Promise<T>, options: RetryOptions): Promise<T>;
-
-export { retry };
Index: de_modules/es-toolkit/dist/function/retry.js
===================================================================
--- node_modules/es-toolkit/dist/function/retry.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const delay = require('../promise/delay.js');
-
-const DEFAULT_DELAY = 0;
-const DEFAULT_RETRIES = Number.POSITIVE_INFINITY;
-const DEFAULT_SHOULD_RETRY = () => true;
-async function retry(func, _options) {
-    let delay$1;
-    let retries;
-    let signal;
-    let shouldRetry;
-    if (typeof _options === 'number') {
-        delay$1 = DEFAULT_DELAY;
-        retries = _options;
-        signal = undefined;
-        shouldRetry = DEFAULT_SHOULD_RETRY;
-    }
-    else {
-        delay$1 = _options?.delay ?? DEFAULT_DELAY;
-        retries = _options?.retries ?? DEFAULT_RETRIES;
-        signal = _options?.signal;
-        shouldRetry = _options?.shouldRetry ?? DEFAULT_SHOULD_RETRY;
-    }
-    let error;
-    for (let attempts = 0; attempts < retries; attempts++) {
-        if (signal?.aborted) {
-            throw error ?? new Error(`The retry operation was aborted due to an abort signal.`);
-        }
-        try {
-            return await func();
-        }
-        catch (err) {
-            error = err;
-            if (!shouldRetry(err, attempts)) {
-                throw err;
-            }
-            const currentDelay = typeof delay$1 === 'function' ? delay$1(attempts) : delay$1;
-            await delay.delay(currentDelay);
-        }
-    }
-    throw error;
-}
-
-exports.retry = retry;
Index: de_modules/es-toolkit/dist/function/retry.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/retry.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { delay } from '../promise/delay.mjs';
-
-const DEFAULT_DELAY = 0;
-const DEFAULT_RETRIES = Number.POSITIVE_INFINITY;
-const DEFAULT_SHOULD_RETRY = () => true;
-async function retry(func, _options) {
-    let delay$1;
-    let retries;
-    let signal;
-    let shouldRetry;
-    if (typeof _options === 'number') {
-        delay$1 = DEFAULT_DELAY;
-        retries = _options;
-        signal = undefined;
-        shouldRetry = DEFAULT_SHOULD_RETRY;
-    }
-    else {
-        delay$1 = _options?.delay ?? DEFAULT_DELAY;
-        retries = _options?.retries ?? DEFAULT_RETRIES;
-        signal = _options?.signal;
-        shouldRetry = _options?.shouldRetry ?? DEFAULT_SHOULD_RETRY;
-    }
-    let error;
-    for (let attempts = 0; attempts < retries; attempts++) {
-        if (signal?.aborted) {
-            throw error ?? new Error(`The retry operation was aborted due to an abort signal.`);
-        }
-        try {
-            return await func();
-        }
-        catch (err) {
-            error = err;
-            if (!shouldRetry(err, attempts)) {
-                throw err;
-            }
-            const currentDelay = typeof delay$1 === 'function' ? delay$1(attempts) : delay$1;
-            await delay(currentDelay);
-        }
-    }
-    throw error;
-}
-
-export { retry };
Index: de_modules/es-toolkit/dist/function/spread.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/spread.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Creates a new function that spreads elements of an array argument into individual arguments
- * for the original function.
- *
- * @template F - A function type with any number of parameters and any return type.
- * @param {F} func - The function to be transformed. It can be any function with any number of arguments.
- * @returns {(argsArr: Parameters<F>) => ReturnType<F>} - A new function that takes an array of arguments and returns the result of calling the original function with those arguments.
- *
- * @example
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * const spreadAdd = spread(add);
- * console.log(spreadAdd([1, 2])); // Output: 3
- */
-declare function spread<F extends (...args: any[]) => any>(func: F): (argsArr: Parameters<F>) => ReturnType<F>;
-
-export { spread };
Index: de_modules/es-toolkit/dist/function/spread.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/spread.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Creates a new function that spreads elements of an array argument into individual arguments
- * for the original function.
- *
- * @template F - A function type with any number of parameters and any return type.
- * @param {F} func - The function to be transformed. It can be any function with any number of arguments.
- * @returns {(argsArr: Parameters<F>) => ReturnType<F>} - A new function that takes an array of arguments and returns the result of calling the original function with those arguments.
- *
- * @example
- * function add(a, b) {
- *   return a + b;
- * }
- *
- * const spreadAdd = spread(add);
- * console.log(spreadAdd([1, 2])); // Output: 3
- */
-declare function spread<F extends (...args: any[]) => any>(func: F): (argsArr: Parameters<F>) => ReturnType<F>;
-
-export { spread };
Index: de_modules/es-toolkit/dist/function/spread.js
===================================================================
--- node_modules/es-toolkit/dist/function/spread.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function spread(func) {
-    return function (argsArr) {
-        return func.apply(this, argsArr);
-    };
-}
-
-exports.spread = spread;
Index: de_modules/es-toolkit/dist/function/spread.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/spread.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function spread(func) {
-    return function (argsArr) {
-        return func.apply(this, argsArr);
-    };
-}
-
-export { spread };
Index: de_modules/es-toolkit/dist/function/throttle.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/throttle.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-interface ThrottleOptions {
-    /**
-     * An optional AbortSignal to cancel the throttled function.
-     */
-    signal?: AbortSignal;
-    /**
-     * An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
-     * If `edges` includes "leading", the function will be invoked at the start of the delay period.
-     * If `edges` includes "trailing", the function will be invoked at the end of the delay period.
-     * If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
-     * @default ["leading", "trailing"]
-     */
-    edges?: Array<'leading' | 'trailing'>;
-}
-interface ThrottledFunction<F extends (...args: any[]) => void> {
-    (...args: Parameters<F>): void;
-    cancel: () => void;
-    flush: () => void;
-}
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<F extends (...args: any[]) => void>(func: F, throttleMs: number, { signal, edges }?: ThrottleOptions): ThrottledFunction<F>;
-
-export { type ThrottleOptions, type ThrottledFunction, throttle };
Index: de_modules/es-toolkit/dist/function/throttle.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/throttle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-interface ThrottleOptions {
-    /**
-     * An optional AbortSignal to cancel the throttled function.
-     */
-    signal?: AbortSignal;
-    /**
-     * An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
-     * If `edges` includes "leading", the function will be invoked at the start of the delay period.
-     * If `edges` includes "trailing", the function will be invoked at the end of the delay period.
-     * If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
-     * @default ["leading", "trailing"]
-     */
-    edges?: Array<'leading' | 'trailing'>;
-}
-interface ThrottledFunction<F extends (...args: any[]) => void> {
-    (...args: Parameters<F>): void;
-    cancel: () => void;
-    flush: () => void;
-}
-/**
- * Creates a throttled function that only invokes the provided function at most once
- * per every `throttleMs` milliseconds. Subsequent calls to the throttled function
- * within the wait time will not trigger the execution of the original function.
- *
- * @template F - The type of function.
- * @param {F} func - The function to throttle.
- * @param {number} throttleMs - The number of milliseconds to throttle executions to.
- * @returns {(...args: Parameters<F>) => void} A new throttled function that accepts the same parameters as the original function.
- *
- * @example
- * const throttledFunction = throttle(() => {
- *   console.log('Function executed');
- * }, 1000);
- *
- * // Will log 'Function executed' immediately
- * throttledFunction();
- *
- * // Will not log anything as it is within the throttle time
- * throttledFunction();
- *
- * // After 1 second
- * setTimeout(() => {
- *   throttledFunction(); // Will log 'Function executed'
- * }, 1000);
- */
-declare function throttle<F extends (...args: any[]) => void>(func: F, throttleMs: number, { signal, edges }?: ThrottleOptions): ThrottledFunction<F>;
-
-export { type ThrottleOptions, type ThrottledFunction, throttle };
Index: de_modules/es-toolkit/dist/function/throttle.js
===================================================================
--- node_modules/es-toolkit/dist/function/throttle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const debounce = require('./debounce.js');
-
-function throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {
-    let pendingAt = null;
-    const debounced = debounce.debounce(function (...args) {
-        pendingAt = Date.now();
-        func.apply(this, args);
-    }, throttleMs, { signal, edges });
-    const throttled = function (...args) {
-        if (pendingAt == null) {
-            pendingAt = Date.now();
-        }
-        if (Date.now() - pendingAt >= throttleMs) {
-            pendingAt = Date.now();
-            func.apply(this, args);
-            debounced.cancel();
-            debounced.schedule();
-            return;
-        }
-        debounced.apply(this, args);
-    };
-    throttled.cancel = debounced.cancel;
-    throttled.flush = debounced.flush;
-    return throttled;
-}
-
-exports.throttle = throttle;
Index: de_modules/es-toolkit/dist/function/throttle.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/throttle.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { debounce } from './debounce.mjs';
-
-function throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {
-    let pendingAt = null;
-    const debounced = debounce(function (...args) {
-        pendingAt = Date.now();
-        func.apply(this, args);
-    }, throttleMs, { signal, edges });
-    const throttled = function (...args) {
-        if (pendingAt == null) {
-            pendingAt = Date.now();
-        }
-        if (Date.now() - pendingAt >= throttleMs) {
-            pendingAt = Date.now();
-            func.apply(this, args);
-            debounced.cancel();
-            debounced.schedule();
-            return;
-        }
-        debounced.apply(this, args);
-    };
-    throttled.cancel = debounced.cancel;
-    throttled.flush = debounced.flush;
-    return throttled;
-}
-
-export { throttle };
Index: de_modules/es-toolkit/dist/function/unary.d.mts
===================================================================
--- node_modules/es-toolkit/dist/function/unary.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that accepts up to one argument, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a, b, c) {
- *   console.log(arguments);
- * }
- *
- * unary(fn)(1, 2, 3); // [Arguments] { '0': 1 }
- */
-declare function unary<F extends (...args: any[]) => any>(func: F): (...args: any[]) => ReturnType<F>;
-
-export { unary };
Index: de_modules/es-toolkit/dist/function/unary.d.ts
===================================================================
--- node_modules/es-toolkit/dist/function/unary.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Creates a function that accepts up to one argument, ignoring any additional arguments.
- *
- * @template F - The type of the function.
- * @param {F} func - The function to cap arguments for.
- * @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
- *
- * @example
- * function fn(a, b, c) {
- *   console.log(arguments);
- * }
- *
- * unary(fn)(1, 2, 3); // [Arguments] { '0': 1 }
- */
-declare function unary<F extends (...args: any[]) => any>(func: F): (...args: any[]) => ReturnType<F>;
-
-export { unary };
Index: de_modules/es-toolkit/dist/function/unary.js
===================================================================
--- node_modules/es-toolkit/dist/function/unary.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const ary = require('./ary.js');
-
-function unary(func) {
-    return ary.ary(func, 1);
-}
-
-exports.unary = unary;
Index: de_modules/es-toolkit/dist/function/unary.mjs
===================================================================
--- node_modules/es-toolkit/dist/function/unary.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { ary } from './ary.mjs';
-
-function unary(func) {
-    return ary(func, 1);
-}
-
-export { unary };
Index: de_modules/es-toolkit/dist/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-export { at } from './array/at.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { fill } from './array/fill.mjs';
-export { filterAsync } from './array/filterAsync.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapAsync } from './array/flatMapAsync.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { forEachAsync } from './array/forEachAsync.mjs';
-export { forEachRight } from './array/forEachRight.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { head } from './array/head.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { isSubset } from './array/isSubset.mjs';
-export { isSubsetWith } from './array/isSubsetWith.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { limitAsync } from './array/limitAsync.mjs';
-export { mapAsync } from './array/mapAsync.mjs';
-export { maxBy } from './array/maxBy.mjs';
-export { minBy } from './array/minBy.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduceAsync } from './array/reduceAsync.mjs';
-export { remove } from './array/remove.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { toFilled } from './array/toFilled.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { windowed } from './array/windowed.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { AbortError } from './error/AbortError.mjs';
-export { TimeoutError } from './error/TimeoutError.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { asyncNoop } from './function/asyncNoop.mjs';
-export { before } from './function/before.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { DebounceOptions, DebouncedFunction, debounce } from './function/debounce.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { identity } from './function/identity.mjs';
-export { MemoizeCache, memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { noop } from './function/noop.mjs';
-export { once } from './function/once.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rest } from './function/rest.mjs';
-export { retry } from './function/retry.mjs';
-export { spread } from './function/spread.mjs';
-export { ThrottleOptions, ThrottledFunction, throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { clamp } from './math/clamp.mjs';
-export { inRange } from './math/inRange.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { median } from './math/median.mjs';
-export { medianBy } from './math/medianBy.mjs';
-export { random } from './math/random.mjs';
-export { randomInt } from './math/randomInt.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { findKey } from './object/findKey.mjs';
-export { flattenObject } from './object/flattenObject.mjs';
-export { invert } from './object/invert.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { toCamelCaseKeys } from './object/toCamelCaseKeys.mjs';
-export { toMerged } from './object/toMerged.mjs';
-export { toSnakeCaseKeys } from './object/toSnakeCaseKeys.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isBlob } from './predicate/isBlob.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBrowser } from './predicate/isBrowser.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isEmptyObject } from './predicate/isEmptyObject.mjs';
-export { isEqual } from './predicate/isEqual.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFile } from './predicate/isFile.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isJSON } from './predicate/isJSON.mjs';
-export { isJSONArray, isJSONObject, isJSONValue } from './predicate/isJSONValue.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNode } from './predicate/isNode.mjs';
-export { isNotNil } from './predicate/isNotNil.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isPrimitive } from './predicate/isPrimitive.mjs';
-export { isPromise } from './predicate/isPromise.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { delay } from './promise/delay.mjs';
-export { Mutex } from './promise/mutex.mjs';
-export { Semaphore } from './promise/semaphore.mjs';
-export { timeout } from './promise/timeout.mjs';
-export { withTimeout } from './promise/withTimeout.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { constantCase } from './string/constantCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { pascalCase } from './string/pascalCase.mjs';
-export { reverseString } from './string/reverseString.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { startCase } from './string/startCase.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { attempt } from './util/attempt.mjs';
-export { attemptAsync } from './util/attemptAsync.mjs';
-export { invariant as assert, invariant } from './util/invariant.mjs';
Index: de_modules/es-toolkit/dist/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-export { at } from './array/at.js';
-export { chunk } from './array/chunk.js';
-export { compact } from './array/compact.js';
-export { countBy } from './array/countBy.js';
-export { difference } from './array/difference.js';
-export { differenceBy } from './array/differenceBy.js';
-export { differenceWith } from './array/differenceWith.js';
-export { drop } from './array/drop.js';
-export { dropRight } from './array/dropRight.js';
-export { dropRightWhile } from './array/dropRightWhile.js';
-export { dropWhile } from './array/dropWhile.js';
-export { fill } from './array/fill.js';
-export { filterAsync } from './array/filterAsync.js';
-export { flatMap } from './array/flatMap.js';
-export { flatMapAsync } from './array/flatMapAsync.js';
-export { flatMapDeep } from './array/flatMapDeep.js';
-export { flatten } from './array/flatten.js';
-export { flattenDeep } from './array/flattenDeep.js';
-export { forEachAsync } from './array/forEachAsync.js';
-export { forEachRight } from './array/forEachRight.js';
-export { groupBy } from './array/groupBy.js';
-export { head } from './array/head.js';
-export { initial } from './array/initial.js';
-export { intersection } from './array/intersection.js';
-export { intersectionBy } from './array/intersectionBy.js';
-export { intersectionWith } from './array/intersectionWith.js';
-export { isSubset } from './array/isSubset.js';
-export { isSubsetWith } from './array/isSubsetWith.js';
-export { keyBy } from './array/keyBy.js';
-export { last } from './array/last.js';
-export { limitAsync } from './array/limitAsync.js';
-export { mapAsync } from './array/mapAsync.js';
-export { maxBy } from './array/maxBy.js';
-export { minBy } from './array/minBy.js';
-export { orderBy } from './array/orderBy.js';
-export { partition } from './array/partition.js';
-export { pull } from './array/pull.js';
-export { pullAt } from './array/pullAt.js';
-export { reduceAsync } from './array/reduceAsync.js';
-export { remove } from './array/remove.js';
-export { sample } from './array/sample.js';
-export { sampleSize } from './array/sampleSize.js';
-export { shuffle } from './array/shuffle.js';
-export { sortBy } from './array/sortBy.js';
-export { tail } from './array/tail.js';
-export { take } from './array/take.js';
-export { takeRight } from './array/takeRight.js';
-export { takeRightWhile } from './array/takeRightWhile.js';
-export { takeWhile } from './array/takeWhile.js';
-export { toFilled } from './array/toFilled.js';
-export { union } from './array/union.js';
-export { unionBy } from './array/unionBy.js';
-export { unionWith } from './array/unionWith.js';
-export { uniq } from './array/uniq.js';
-export { uniqBy } from './array/uniqBy.js';
-export { uniqWith } from './array/uniqWith.js';
-export { unzip } from './array/unzip.js';
-export { unzipWith } from './array/unzipWith.js';
-export { windowed } from './array/windowed.js';
-export { without } from './array/without.js';
-export { xor } from './array/xor.js';
-export { xorBy } from './array/xorBy.js';
-export { xorWith } from './array/xorWith.js';
-export { zip } from './array/zip.js';
-export { zipObject } from './array/zipObject.js';
-export { zipWith } from './array/zipWith.js';
-export { AbortError } from './error/AbortError.js';
-export { TimeoutError } from './error/TimeoutError.js';
-export { after } from './function/after.js';
-export { ary } from './function/ary.js';
-export { asyncNoop } from './function/asyncNoop.js';
-export { before } from './function/before.js';
-export { curry } from './function/curry.js';
-export { curryRight } from './function/curryRight.js';
-export { DebounceOptions, DebouncedFunction, debounce } from './function/debounce.js';
-export { flow } from './function/flow.js';
-export { flowRight } from './function/flowRight.js';
-export { identity } from './function/identity.js';
-export { MemoizeCache, memoize } from './function/memoize.js';
-export { negate } from './function/negate.js';
-export { noop } from './function/noop.js';
-export { once } from './function/once.js';
-export { partial } from './function/partial.js';
-export { partialRight } from './function/partialRight.js';
-export { rest } from './function/rest.js';
-export { retry } from './function/retry.js';
-export { spread } from './function/spread.js';
-export { ThrottleOptions, ThrottledFunction, throttle } from './function/throttle.js';
-export { unary } from './function/unary.js';
-export { clamp } from './math/clamp.js';
-export { inRange } from './math/inRange.js';
-export { mean } from './math/mean.js';
-export { meanBy } from './math/meanBy.js';
-export { median } from './math/median.js';
-export { medianBy } from './math/medianBy.js';
-export { random } from './math/random.js';
-export { randomInt } from './math/randomInt.js';
-export { range } from './math/range.js';
-export { rangeRight } from './math/rangeRight.js';
-export { round } from './math/round.js';
-export { sum } from './math/sum.js';
-export { sumBy } from './math/sumBy.js';
-export { clone } from './object/clone.js';
-export { cloneDeep } from './object/cloneDeep.js';
-export { cloneDeepWith } from './object/cloneDeepWith.js';
-export { findKey } from './object/findKey.js';
-export { flattenObject } from './object/flattenObject.js';
-export { invert } from './object/invert.js';
-export { mapKeys } from './object/mapKeys.js';
-export { mapValues } from './object/mapValues.js';
-export { merge } from './object/merge.js';
-export { mergeWith } from './object/mergeWith.js';
-export { omit } from './object/omit.js';
-export { omitBy } from './object/omitBy.js';
-export { pick } from './object/pick.js';
-export { pickBy } from './object/pickBy.js';
-export { toCamelCaseKeys } from './object/toCamelCaseKeys.js';
-export { toMerged } from './object/toMerged.js';
-export { toSnakeCaseKeys } from './object/toSnakeCaseKeys.js';
-export { isArrayBuffer } from './predicate/isArrayBuffer.js';
-export { isBlob } from './predicate/isBlob.js';
-export { isBoolean } from './predicate/isBoolean.js';
-export { isBrowser } from './predicate/isBrowser.js';
-export { isBuffer } from './predicate/isBuffer.js';
-export { isDate } from './predicate/isDate.js';
-export { isEmptyObject } from './predicate/isEmptyObject.js';
-export { isEqual } from './predicate/isEqual.js';
-export { isEqualWith } from './predicate/isEqualWith.js';
-export { isError } from './predicate/isError.js';
-export { isFile } from './predicate/isFile.js';
-export { isFunction } from './predicate/isFunction.js';
-export { isJSON } from './predicate/isJSON.js';
-export { isJSONArray, isJSONObject, isJSONValue } from './predicate/isJSONValue.js';
-export { isLength } from './predicate/isLength.js';
-export { isMap } from './predicate/isMap.js';
-export { isNil } from './predicate/isNil.js';
-export { isNode } from './predicate/isNode.js';
-export { isNotNil } from './predicate/isNotNil.js';
-export { isNull } from './predicate/isNull.js';
-export { isNumber } from './predicate/isNumber.js';
-export { isPlainObject } from './predicate/isPlainObject.js';
-export { isPrimitive } from './predicate/isPrimitive.js';
-export { isPromise } from './predicate/isPromise.js';
-export { isRegExp } from './predicate/isRegExp.js';
-export { isSet } from './predicate/isSet.js';
-export { isString } from './predicate/isString.js';
-export { isSymbol } from './predicate/isSymbol.js';
-export { isTypedArray } from './predicate/isTypedArray.js';
-export { isUndefined } from './predicate/isUndefined.js';
-export { isWeakMap } from './predicate/isWeakMap.js';
-export { isWeakSet } from './predicate/isWeakSet.js';
-export { delay } from './promise/delay.js';
-export { Mutex } from './promise/mutex.js';
-export { Semaphore } from './promise/semaphore.js';
-export { timeout } from './promise/timeout.js';
-export { withTimeout } from './promise/withTimeout.js';
-export { camelCase } from './string/camelCase.js';
-export { capitalize } from './string/capitalize.js';
-export { constantCase } from './string/constantCase.js';
-export { deburr } from './string/deburr.js';
-export { escape } from './string/escape.js';
-export { escapeRegExp } from './string/escapeRegExp.js';
-export { kebabCase } from './string/kebabCase.js';
-export { lowerCase } from './string/lowerCase.js';
-export { lowerFirst } from './string/lowerFirst.js';
-export { pad } from './string/pad.js';
-export { pascalCase } from './string/pascalCase.js';
-export { reverseString } from './string/reverseString.js';
-export { snakeCase } from './string/snakeCase.js';
-export { startCase } from './string/startCase.js';
-export { trim } from './string/trim.js';
-export { trimEnd } from './string/trimEnd.js';
-export { trimStart } from './string/trimStart.js';
-export { unescape } from './string/unescape.js';
-export { upperCase } from './string/upperCase.js';
-export { upperFirst } from './string/upperFirst.js';
-export { words } from './string/words.js';
-export { attempt } from './util/attempt.js';
-export { attemptAsync } from './util/attemptAsync.js';
-export { invariant as assert, invariant } from './util/invariant.js';
Index: de_modules/es-toolkit/dist/index.js
===================================================================
--- node_modules/es-toolkit/dist/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,370 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const at = require('./array/at.js');
-const chunk = require('./array/chunk.js');
-const compact = require('./array/compact.js');
-const countBy = require('./array/countBy.js');
-const difference = require('./array/difference.js');
-const differenceBy = require('./array/differenceBy.js');
-const differenceWith = require('./array/differenceWith.js');
-const drop = require('./array/drop.js');
-const dropRight = require('./array/dropRight.js');
-const dropRightWhile = require('./array/dropRightWhile.js');
-const dropWhile = require('./array/dropWhile.js');
-const fill = require('./array/fill.js');
-const filterAsync = require('./array/filterAsync.js');
-const flatMap = require('./array/flatMap.js');
-const flatMapAsync = require('./array/flatMapAsync.js');
-const flatMapDeep = require('./array/flatMapDeep.js');
-const flatten = require('./array/flatten.js');
-const flattenDeep = require('./array/flattenDeep.js');
-const forEachAsync = require('./array/forEachAsync.js');
-const forEachRight = require('./array/forEachRight.js');
-const groupBy = require('./array/groupBy.js');
-const head = require('./array/head.js');
-const initial = require('./array/initial.js');
-const intersection = require('./array/intersection.js');
-const intersectionBy = require('./array/intersectionBy.js');
-const intersectionWith = require('./array/intersectionWith.js');
-const isSubset = require('./array/isSubset.js');
-const isSubsetWith = require('./array/isSubsetWith.js');
-const keyBy = require('./array/keyBy.js');
-const last = require('./array/last.js');
-const limitAsync = require('./array/limitAsync.js');
-const mapAsync = require('./array/mapAsync.js');
-const maxBy = require('./array/maxBy.js');
-const minBy = require('./array/minBy.js');
-const orderBy = require('./array/orderBy.js');
-const partition = require('./array/partition.js');
-const pull = require('./array/pull.js');
-const pullAt = require('./array/pullAt.js');
-const reduceAsync = require('./array/reduceAsync.js');
-const remove = require('./array/remove.js');
-const sample = require('./array/sample.js');
-const sampleSize = require('./array/sampleSize.js');
-const shuffle = require('./array/shuffle.js');
-const sortBy = require('./array/sortBy.js');
-const tail = require('./array/tail.js');
-const take = require('./array/take.js');
-const takeRight = require('./array/takeRight.js');
-const takeRightWhile = require('./array/takeRightWhile.js');
-const takeWhile = require('./array/takeWhile.js');
-const toFilled = require('./array/toFilled.js');
-const union = require('./array/union.js');
-const unionBy = require('./array/unionBy.js');
-const unionWith = require('./array/unionWith.js');
-const uniq = require('./array/uniq.js');
-const uniqBy = require('./array/uniqBy.js');
-const uniqWith = require('./array/uniqWith.js');
-const unzip = require('./array/unzip.js');
-const unzipWith = require('./array/unzipWith.js');
-const windowed = require('./array/windowed.js');
-const without = require('./array/without.js');
-const xor = require('./array/xor.js');
-const xorBy = require('./array/xorBy.js');
-const xorWith = require('./array/xorWith.js');
-const zip = require('./array/zip.js');
-const zipObject = require('./array/zipObject.js');
-const zipWith = require('./array/zipWith.js');
-const AbortError = require('./error/AbortError.js');
-const TimeoutError = require('./error/TimeoutError.js');
-const after = require('./function/after.js');
-const ary = require('./function/ary.js');
-const asyncNoop = require('./function/asyncNoop.js');
-const before = require('./function/before.js');
-const curry = require('./function/curry.js');
-const curryRight = require('./function/curryRight.js');
-const debounce = require('./function/debounce.js');
-const flow = require('./function/flow.js');
-const flowRight = require('./function/flowRight.js');
-const identity = require('./function/identity.js');
-const memoize = require('./function/memoize.js');
-const negate = require('./function/negate.js');
-const noop = require('./function/noop.js');
-const once = require('./function/once.js');
-const partial = require('./function/partial.js');
-const partialRight = require('./function/partialRight.js');
-const rest = require('./function/rest.js');
-const retry = require('./function/retry.js');
-const spread = require('./function/spread.js');
-const throttle = require('./function/throttle.js');
-const unary = require('./function/unary.js');
-const clamp = require('./math/clamp.js');
-const inRange = require('./math/inRange.js');
-const mean = require('./math/mean.js');
-const meanBy = require('./math/meanBy.js');
-const median = require('./math/median.js');
-const medianBy = require('./math/medianBy.js');
-const random = require('./math/random.js');
-const randomInt = require('./math/randomInt.js');
-const range = require('./math/range.js');
-const rangeRight = require('./math/rangeRight.js');
-const round = require('./math/round.js');
-const sum = require('./math/sum.js');
-const sumBy = require('./math/sumBy.js');
-const clone = require('./object/clone.js');
-const cloneDeep = require('./object/cloneDeep.js');
-const cloneDeepWith = require('./object/cloneDeepWith.js');
-const findKey = require('./object/findKey.js');
-const flattenObject = require('./object/flattenObject.js');
-const invert = require('./object/invert.js');
-const mapKeys = require('./object/mapKeys.js');
-const mapValues = require('./object/mapValues.js');
-const merge = require('./object/merge.js');
-const mergeWith = require('./object/mergeWith.js');
-const omit = require('./object/omit.js');
-const omitBy = require('./object/omitBy.js');
-const pick = require('./object/pick.js');
-const pickBy = require('./object/pickBy.js');
-const toCamelCaseKeys = require('./object/toCamelCaseKeys.js');
-const toMerged = require('./object/toMerged.js');
-const toSnakeCaseKeys = require('./object/toSnakeCaseKeys.js');
-const isArrayBuffer = require('./predicate/isArrayBuffer.js');
-const isBlob = require('./predicate/isBlob.js');
-const isBoolean = require('./predicate/isBoolean.js');
-const isBrowser = require('./predicate/isBrowser.js');
-const isBuffer = require('./predicate/isBuffer.js');
-const isDate = require('./predicate/isDate.js');
-const isEmptyObject = require('./predicate/isEmptyObject.js');
-const isEqual = require('./predicate/isEqual.js');
-const isEqualWith = require('./predicate/isEqualWith.js');
-const isError = require('./predicate/isError.js');
-const isFile = require('./predicate/isFile.js');
-const isFunction = require('./predicate/isFunction.js');
-const isJSON = require('./predicate/isJSON.js');
-const isJSONValue = require('./predicate/isJSONValue.js');
-const isLength = require('./predicate/isLength.js');
-const isMap = require('./predicate/isMap.js');
-const isNil = require('./predicate/isNil.js');
-const isNode = require('./predicate/isNode.js');
-const isNotNil = require('./predicate/isNotNil.js');
-const isNull = require('./predicate/isNull.js');
-const isNumber = require('./predicate/isNumber.js');
-const isPlainObject = require('./predicate/isPlainObject.js');
-const isPrimitive = require('./predicate/isPrimitive.js');
-const isPromise = require('./predicate/isPromise.js');
-const isRegExp = require('./predicate/isRegExp.js');
-const isSet = require('./predicate/isSet.js');
-const isString = require('./predicate/isString.js');
-const isSymbol = require('./predicate/isSymbol.js');
-const isTypedArray = require('./predicate/isTypedArray.js');
-const isUndefined = require('./predicate/isUndefined.js');
-const isWeakMap = require('./predicate/isWeakMap.js');
-const isWeakSet = require('./predicate/isWeakSet.js');
-const delay = require('./promise/delay.js');
-const mutex = require('./promise/mutex.js');
-const semaphore = require('./promise/semaphore.js');
-const timeout = require('./promise/timeout.js');
-const withTimeout = require('./promise/withTimeout.js');
-const camelCase = require('./string/camelCase.js');
-const capitalize = require('./string/capitalize.js');
-const constantCase = require('./string/constantCase.js');
-const deburr = require('./string/deburr.js');
-const escape = require('./string/escape.js');
-const escapeRegExp = require('./string/escapeRegExp.js');
-const kebabCase = require('./string/kebabCase.js');
-const lowerCase = require('./string/lowerCase.js');
-const lowerFirst = require('./string/lowerFirst.js');
-const pad = require('./string/pad.js');
-const pascalCase = require('./string/pascalCase.js');
-const reverseString = require('./string/reverseString.js');
-const snakeCase = require('./string/snakeCase.js');
-const startCase = require('./string/startCase.js');
-const trim = require('./string/trim.js');
-const trimEnd = require('./string/trimEnd.js');
-const trimStart = require('./string/trimStart.js');
-const unescape = require('./string/unescape.js');
-const upperCase = require('./string/upperCase.js');
-const upperFirst = require('./string/upperFirst.js');
-const words = require('./string/words.js');
-const attempt = require('./util/attempt.js');
-const attemptAsync = require('./util/attemptAsync.js');
-const invariant = require('./util/invariant.js');
-
-
-
-exports.at = at.at;
-exports.chunk = chunk.chunk;
-exports.compact = compact.compact;
-exports.countBy = countBy.countBy;
-exports.difference = difference.difference;
-exports.differenceBy = differenceBy.differenceBy;
-exports.differenceWith = differenceWith.differenceWith;
-exports.drop = drop.drop;
-exports.dropRight = dropRight.dropRight;
-exports.dropRightWhile = dropRightWhile.dropRightWhile;
-exports.dropWhile = dropWhile.dropWhile;
-exports.fill = fill.fill;
-exports.filterAsync = filterAsync.filterAsync;
-exports.flatMap = flatMap.flatMap;
-exports.flatMapAsync = flatMapAsync.flatMapAsync;
-exports.flatMapDeep = flatMapDeep.flatMapDeep;
-exports.flatten = flatten.flatten;
-exports.flattenDeep = flattenDeep.flattenDeep;
-exports.forEachAsync = forEachAsync.forEachAsync;
-exports.forEachRight = forEachRight.forEachRight;
-exports.groupBy = groupBy.groupBy;
-exports.head = head.head;
-exports.initial = initial.initial;
-exports.intersection = intersection.intersection;
-exports.intersectionBy = intersectionBy.intersectionBy;
-exports.intersectionWith = intersectionWith.intersectionWith;
-exports.isSubset = isSubset.isSubset;
-exports.isSubsetWith = isSubsetWith.isSubsetWith;
-exports.keyBy = keyBy.keyBy;
-exports.last = last.last;
-exports.limitAsync = limitAsync.limitAsync;
-exports.mapAsync = mapAsync.mapAsync;
-exports.maxBy = maxBy.maxBy;
-exports.minBy = minBy.minBy;
-exports.orderBy = orderBy.orderBy;
-exports.partition = partition.partition;
-exports.pull = pull.pull;
-exports.pullAt = pullAt.pullAt;
-exports.reduceAsync = reduceAsync.reduceAsync;
-exports.remove = remove.remove;
-exports.sample = sample.sample;
-exports.sampleSize = sampleSize.sampleSize;
-exports.shuffle = shuffle.shuffle;
-exports.sortBy = sortBy.sortBy;
-exports.tail = tail.tail;
-exports.take = take.take;
-exports.takeRight = takeRight.takeRight;
-exports.takeRightWhile = takeRightWhile.takeRightWhile;
-exports.takeWhile = takeWhile.takeWhile;
-exports.toFilled = toFilled.toFilled;
-exports.union = union.union;
-exports.unionBy = unionBy.unionBy;
-exports.unionWith = unionWith.unionWith;
-exports.uniq = uniq.uniq;
-exports.uniqBy = uniqBy.uniqBy;
-exports.uniqWith = uniqWith.uniqWith;
-exports.unzip = unzip.unzip;
-exports.unzipWith = unzipWith.unzipWith;
-exports.windowed = windowed.windowed;
-exports.without = without.without;
-exports.xor = xor.xor;
-exports.xorBy = xorBy.xorBy;
-exports.xorWith = xorWith.xorWith;
-exports.zip = zip.zip;
-exports.zipObject = zipObject.zipObject;
-exports.zipWith = zipWith.zipWith;
-exports.AbortError = AbortError.AbortError;
-exports.TimeoutError = TimeoutError.TimeoutError;
-exports.after = after.after;
-exports.ary = ary.ary;
-exports.asyncNoop = asyncNoop.asyncNoop;
-exports.before = before.before;
-exports.curry = curry.curry;
-exports.curryRight = curryRight.curryRight;
-exports.debounce = debounce.debounce;
-exports.flow = flow.flow;
-exports.flowRight = flowRight.flowRight;
-exports.identity = identity.identity;
-exports.memoize = memoize.memoize;
-exports.negate = negate.negate;
-exports.noop = noop.noop;
-exports.once = once.once;
-exports.partial = partial.partial;
-exports.partialRight = partialRight.partialRight;
-exports.rest = rest.rest;
-exports.retry = retry.retry;
-exports.spread = spread.spread;
-exports.throttle = throttle.throttle;
-exports.unary = unary.unary;
-exports.clamp = clamp.clamp;
-exports.inRange = inRange.inRange;
-exports.mean = mean.mean;
-exports.meanBy = meanBy.meanBy;
-exports.median = median.median;
-exports.medianBy = medianBy.medianBy;
-exports.random = random.random;
-exports.randomInt = randomInt.randomInt;
-exports.range = range.range;
-exports.rangeRight = rangeRight.rangeRight;
-exports.round = round.round;
-exports.sum = sum.sum;
-exports.sumBy = sumBy.sumBy;
-exports.clone = clone.clone;
-exports.cloneDeep = cloneDeep.cloneDeep;
-exports.cloneDeepWith = cloneDeepWith.cloneDeepWith;
-exports.findKey = findKey.findKey;
-exports.flattenObject = flattenObject.flattenObject;
-exports.invert = invert.invert;
-exports.mapKeys = mapKeys.mapKeys;
-exports.mapValues = mapValues.mapValues;
-exports.merge = merge.merge;
-exports.mergeWith = mergeWith.mergeWith;
-exports.omit = omit.omit;
-exports.omitBy = omitBy.omitBy;
-exports.pick = pick.pick;
-exports.pickBy = pickBy.pickBy;
-exports.toCamelCaseKeys = toCamelCaseKeys.toCamelCaseKeys;
-exports.toMerged = toMerged.toMerged;
-exports.toSnakeCaseKeys = toSnakeCaseKeys.toSnakeCaseKeys;
-exports.isArrayBuffer = isArrayBuffer.isArrayBuffer;
-exports.isBlob = isBlob.isBlob;
-exports.isBoolean = isBoolean.isBoolean;
-exports.isBrowser = isBrowser.isBrowser;
-exports.isBuffer = isBuffer.isBuffer;
-exports.isDate = isDate.isDate;
-exports.isEmptyObject = isEmptyObject.isEmptyObject;
-exports.isEqual = isEqual.isEqual;
-exports.isEqualWith = isEqualWith.isEqualWith;
-exports.isError = isError.isError;
-exports.isFile = isFile.isFile;
-exports.isFunction = isFunction.isFunction;
-exports.isJSON = isJSON.isJSON;
-exports.isJSONArray = isJSONValue.isJSONArray;
-exports.isJSONObject = isJSONValue.isJSONObject;
-exports.isJSONValue = isJSONValue.isJSONValue;
-exports.isLength = isLength.isLength;
-exports.isMap = isMap.isMap;
-exports.isNil = isNil.isNil;
-exports.isNode = isNode.isNode;
-exports.isNotNil = isNotNil.isNotNil;
-exports.isNull = isNull.isNull;
-exports.isNumber = isNumber.isNumber;
-exports.isPlainObject = isPlainObject.isPlainObject;
-exports.isPrimitive = isPrimitive.isPrimitive;
-exports.isPromise = isPromise.isPromise;
-exports.isRegExp = isRegExp.isRegExp;
-exports.isSet = isSet.isSet;
-exports.isString = isString.isString;
-exports.isSymbol = isSymbol.isSymbol;
-exports.isTypedArray = isTypedArray.isTypedArray;
-exports.isUndefined = isUndefined.isUndefined;
-exports.isWeakMap = isWeakMap.isWeakMap;
-exports.isWeakSet = isWeakSet.isWeakSet;
-exports.delay = delay.delay;
-exports.Mutex = mutex.Mutex;
-exports.Semaphore = semaphore.Semaphore;
-exports.timeout = timeout.timeout;
-exports.withTimeout = withTimeout.withTimeout;
-exports.camelCase = camelCase.camelCase;
-exports.capitalize = capitalize.capitalize;
-exports.constantCase = constantCase.constantCase;
-exports.deburr = deburr.deburr;
-exports.escape = escape.escape;
-exports.escapeRegExp = escapeRegExp.escapeRegExp;
-exports.kebabCase = kebabCase.kebabCase;
-exports.lowerCase = lowerCase.lowerCase;
-exports.lowerFirst = lowerFirst.lowerFirst;
-exports.pad = pad.pad;
-exports.pascalCase = pascalCase.pascalCase;
-exports.reverseString = reverseString.reverseString;
-exports.snakeCase = snakeCase.snakeCase;
-exports.startCase = startCase.startCase;
-exports.trim = trim.trim;
-exports.trimEnd = trimEnd.trimEnd;
-exports.trimStart = trimStart.trimStart;
-exports.unescape = unescape.unescape;
-exports.upperCase = upperCase.upperCase;
-exports.upperFirst = upperFirst.upperFirst;
-exports.words = words.words;
-exports.attempt = attempt.attempt;
-exports.attemptAsync = attemptAsync.attemptAsync;
-exports.assert = invariant.invariant;
-exports.invariant = invariant.invariant;
Index: de_modules/es-toolkit/dist/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-export { at } from './array/at.mjs';
-export { chunk } from './array/chunk.mjs';
-export { compact } from './array/compact.mjs';
-export { countBy } from './array/countBy.mjs';
-export { difference } from './array/difference.mjs';
-export { differenceBy } from './array/differenceBy.mjs';
-export { differenceWith } from './array/differenceWith.mjs';
-export { drop } from './array/drop.mjs';
-export { dropRight } from './array/dropRight.mjs';
-export { dropRightWhile } from './array/dropRightWhile.mjs';
-export { dropWhile } from './array/dropWhile.mjs';
-export { fill } from './array/fill.mjs';
-export { filterAsync } from './array/filterAsync.mjs';
-export { flatMap } from './array/flatMap.mjs';
-export { flatMapAsync } from './array/flatMapAsync.mjs';
-export { flatMapDeep } from './array/flatMapDeep.mjs';
-export { flatten } from './array/flatten.mjs';
-export { flattenDeep } from './array/flattenDeep.mjs';
-export { forEachAsync } from './array/forEachAsync.mjs';
-export { forEachRight } from './array/forEachRight.mjs';
-export { groupBy } from './array/groupBy.mjs';
-export { head } from './array/head.mjs';
-export { initial } from './array/initial.mjs';
-export { intersection } from './array/intersection.mjs';
-export { intersectionBy } from './array/intersectionBy.mjs';
-export { intersectionWith } from './array/intersectionWith.mjs';
-export { isSubset } from './array/isSubset.mjs';
-export { isSubsetWith } from './array/isSubsetWith.mjs';
-export { keyBy } from './array/keyBy.mjs';
-export { last } from './array/last.mjs';
-export { limitAsync } from './array/limitAsync.mjs';
-export { mapAsync } from './array/mapAsync.mjs';
-export { maxBy } from './array/maxBy.mjs';
-export { minBy } from './array/minBy.mjs';
-export { orderBy } from './array/orderBy.mjs';
-export { partition } from './array/partition.mjs';
-export { pull } from './array/pull.mjs';
-export { pullAt } from './array/pullAt.mjs';
-export { reduceAsync } from './array/reduceAsync.mjs';
-export { remove } from './array/remove.mjs';
-export { sample } from './array/sample.mjs';
-export { sampleSize } from './array/sampleSize.mjs';
-export { shuffle } from './array/shuffle.mjs';
-export { sortBy } from './array/sortBy.mjs';
-export { tail } from './array/tail.mjs';
-export { take } from './array/take.mjs';
-export { takeRight } from './array/takeRight.mjs';
-export { takeRightWhile } from './array/takeRightWhile.mjs';
-export { takeWhile } from './array/takeWhile.mjs';
-export { toFilled } from './array/toFilled.mjs';
-export { union } from './array/union.mjs';
-export { unionBy } from './array/unionBy.mjs';
-export { unionWith } from './array/unionWith.mjs';
-export { uniq } from './array/uniq.mjs';
-export { uniqBy } from './array/uniqBy.mjs';
-export { uniqWith } from './array/uniqWith.mjs';
-export { unzip } from './array/unzip.mjs';
-export { unzipWith } from './array/unzipWith.mjs';
-export { windowed } from './array/windowed.mjs';
-export { without } from './array/without.mjs';
-export { xor } from './array/xor.mjs';
-export { xorBy } from './array/xorBy.mjs';
-export { xorWith } from './array/xorWith.mjs';
-export { zip } from './array/zip.mjs';
-export { zipObject } from './array/zipObject.mjs';
-export { zipWith } from './array/zipWith.mjs';
-export { AbortError } from './error/AbortError.mjs';
-export { TimeoutError } from './error/TimeoutError.mjs';
-export { after } from './function/after.mjs';
-export { ary } from './function/ary.mjs';
-export { asyncNoop } from './function/asyncNoop.mjs';
-export { before } from './function/before.mjs';
-export { curry } from './function/curry.mjs';
-export { curryRight } from './function/curryRight.mjs';
-export { debounce } from './function/debounce.mjs';
-export { flow } from './function/flow.mjs';
-export { flowRight } from './function/flowRight.mjs';
-export { identity } from './function/identity.mjs';
-export { memoize } from './function/memoize.mjs';
-export { negate } from './function/negate.mjs';
-export { noop } from './function/noop.mjs';
-export { once } from './function/once.mjs';
-export { partial } from './function/partial.mjs';
-export { partialRight } from './function/partialRight.mjs';
-export { rest } from './function/rest.mjs';
-export { retry } from './function/retry.mjs';
-export { spread } from './function/spread.mjs';
-export { throttle } from './function/throttle.mjs';
-export { unary } from './function/unary.mjs';
-export { clamp } from './math/clamp.mjs';
-export { inRange } from './math/inRange.mjs';
-export { mean } from './math/mean.mjs';
-export { meanBy } from './math/meanBy.mjs';
-export { median } from './math/median.mjs';
-export { medianBy } from './math/medianBy.mjs';
-export { random } from './math/random.mjs';
-export { randomInt } from './math/randomInt.mjs';
-export { range } from './math/range.mjs';
-export { rangeRight } from './math/rangeRight.mjs';
-export { round } from './math/round.mjs';
-export { sum } from './math/sum.mjs';
-export { sumBy } from './math/sumBy.mjs';
-export { clone } from './object/clone.mjs';
-export { cloneDeep } from './object/cloneDeep.mjs';
-export { cloneDeepWith } from './object/cloneDeepWith.mjs';
-export { findKey } from './object/findKey.mjs';
-export { flattenObject } from './object/flattenObject.mjs';
-export { invert } from './object/invert.mjs';
-export { mapKeys } from './object/mapKeys.mjs';
-export { mapValues } from './object/mapValues.mjs';
-export { merge } from './object/merge.mjs';
-export { mergeWith } from './object/mergeWith.mjs';
-export { omit } from './object/omit.mjs';
-export { omitBy } from './object/omitBy.mjs';
-export { pick } from './object/pick.mjs';
-export { pickBy } from './object/pickBy.mjs';
-export { toCamelCaseKeys } from './object/toCamelCaseKeys.mjs';
-export { toMerged } from './object/toMerged.mjs';
-export { toSnakeCaseKeys } from './object/toSnakeCaseKeys.mjs';
-export { isArrayBuffer } from './predicate/isArrayBuffer.mjs';
-export { isBlob } from './predicate/isBlob.mjs';
-export { isBoolean } from './predicate/isBoolean.mjs';
-export { isBrowser } from './predicate/isBrowser.mjs';
-export { isBuffer } from './predicate/isBuffer.mjs';
-export { isDate } from './predicate/isDate.mjs';
-export { isEmptyObject } from './predicate/isEmptyObject.mjs';
-export { isEqual } from './predicate/isEqual.mjs';
-export { isEqualWith } from './predicate/isEqualWith.mjs';
-export { isError } from './predicate/isError.mjs';
-export { isFile } from './predicate/isFile.mjs';
-export { isFunction } from './predicate/isFunction.mjs';
-export { isJSON } from './predicate/isJSON.mjs';
-export { isJSONArray, isJSONObject, isJSONValue } from './predicate/isJSONValue.mjs';
-export { isLength } from './predicate/isLength.mjs';
-export { isMap } from './predicate/isMap.mjs';
-export { isNil } from './predicate/isNil.mjs';
-export { isNode } from './predicate/isNode.mjs';
-export { isNotNil } from './predicate/isNotNil.mjs';
-export { isNull } from './predicate/isNull.mjs';
-export { isNumber } from './predicate/isNumber.mjs';
-export { isPlainObject } from './predicate/isPlainObject.mjs';
-export { isPrimitive } from './predicate/isPrimitive.mjs';
-export { isPromise } from './predicate/isPromise.mjs';
-export { isRegExp } from './predicate/isRegExp.mjs';
-export { isSet } from './predicate/isSet.mjs';
-export { isString } from './predicate/isString.mjs';
-export { isSymbol } from './predicate/isSymbol.mjs';
-export { isTypedArray } from './predicate/isTypedArray.mjs';
-export { isUndefined } from './predicate/isUndefined.mjs';
-export { isWeakMap } from './predicate/isWeakMap.mjs';
-export { isWeakSet } from './predicate/isWeakSet.mjs';
-export { delay } from './promise/delay.mjs';
-export { Mutex } from './promise/mutex.mjs';
-export { Semaphore } from './promise/semaphore.mjs';
-export { timeout } from './promise/timeout.mjs';
-export { withTimeout } from './promise/withTimeout.mjs';
-export { camelCase } from './string/camelCase.mjs';
-export { capitalize } from './string/capitalize.mjs';
-export { constantCase } from './string/constantCase.mjs';
-export { deburr } from './string/deburr.mjs';
-export { escape } from './string/escape.mjs';
-export { escapeRegExp } from './string/escapeRegExp.mjs';
-export { kebabCase } from './string/kebabCase.mjs';
-export { lowerCase } from './string/lowerCase.mjs';
-export { lowerFirst } from './string/lowerFirst.mjs';
-export { pad } from './string/pad.mjs';
-export { pascalCase } from './string/pascalCase.mjs';
-export { reverseString } from './string/reverseString.mjs';
-export { snakeCase } from './string/snakeCase.mjs';
-export { startCase } from './string/startCase.mjs';
-export { trim } from './string/trim.mjs';
-export { trimEnd } from './string/trimEnd.mjs';
-export { trimStart } from './string/trimStart.mjs';
-export { unescape } from './string/unescape.mjs';
-export { upperCase } from './string/upperCase.mjs';
-export { upperFirst } from './string/upperFirst.mjs';
-export { words } from './string/words.mjs';
-export { attempt } from './util/attempt.mjs';
-export { attemptAsync } from './util/attemptAsync.mjs';
-export { invariant as assert, invariant } from './util/invariant.mjs';
Index: de_modules/es-toolkit/dist/map/every.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/every.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Tests whether all entries in a Map satisfy the provided predicate function.
- *
- * This function iterates through all entries of the Map and checks if the predicate function
- * returns true for every entry. It returns true if the predicate is satisfied for all entries,
- * and false otherwise.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to test.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {boolean} true if all entries satisfy the predicate, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 10],
- *   ['b', 20],
- *   ['c', 30]
- * ]);
- * const result = every(map, (value) => value > 5);
- * // result will be: true
- *
- * const result2 = every(map, (value) => value > 15);
- * // result2 will be: false
- */
-declare function every<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/map/every.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/every.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Tests whether all entries in a Map satisfy the provided predicate function.
- *
- * This function iterates through all entries of the Map and checks if the predicate function
- * returns true for every entry. It returns true if the predicate is satisfied for all entries,
- * and false otherwise.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to test.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {boolean} true if all entries satisfy the predicate, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 10],
- *   ['b', 20],
- *   ['c', 30]
- * ]);
- * const result = every(map, (value) => value > 5);
- * // result will be: true
- *
- * const result2 = every(map, (value) => value > 15);
- * // result2 will be: false
- */
-declare function every<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/map/every.js
===================================================================
--- node_modules/es-toolkit/dist/map/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function every(map, doesMatch) {
-    for (const [key, value] of map) {
-        if (!doesMatch(value, key, map)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-exports.every = every;
Index: de_modules/es-toolkit/dist/map/every.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/every.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function every(map, doesMatch) {
-    for (const [key, value] of map) {
-        if (!doesMatch(value, key, map)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-export { every };
Index: de_modules/es-toolkit/dist/map/filter.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/filter.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Filters a Map based on a predicate function.
- *
- * This function takes a Map and a predicate function, and returns a new Map containing
- * only the entries for which the predicate function returns true.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to filter.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} callback - A predicate function that tests each entry.
- * @returns {Map<K, V>} A new Map containing only the entries that satisfy the predicate.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3],
- *   ['d', 4]
- * ]);
- * const result = filter(map, (value) => value > 2);
- * // result will be:
- * // Map(2) {
- * //   'c' => 3,
- * //   'd' => 4
- * // }
- */
-declare function filter<K, V>(map: Map<K, V>, callback: (value: V, key: K, map: Map<K, V>) => boolean): Map<K, V>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/map/filter.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/filter.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Filters a Map based on a predicate function.
- *
- * This function takes a Map and a predicate function, and returns a new Map containing
- * only the entries for which the predicate function returns true.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to filter.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} callback - A predicate function that tests each entry.
- * @returns {Map<K, V>} A new Map containing only the entries that satisfy the predicate.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3],
- *   ['d', 4]
- * ]);
- * const result = filter(map, (value) => value > 2);
- * // result will be:
- * // Map(2) {
- * //   'c' => 3,
- * //   'd' => 4
- * // }
- */
-declare function filter<K, V>(map: Map<K, V>, callback: (value: V, key: K, map: Map<K, V>) => boolean): Map<K, V>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/map/filter.js
===================================================================
--- node_modules/es-toolkit/dist/map/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function filter(map, callback) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        if (callback(value, key, map)) {
-            result.set(key, value);
-        }
-    }
-    return result;
-}
-
-exports.filter = filter;
Index: de_modules/es-toolkit/dist/map/filter.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/filter.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function filter(map, callback) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        if (callback(value, key, map)) {
-            result.set(key, value);
-        }
-    }
-    return result;
-}
-
-export { filter };
Index: de_modules/es-toolkit/dist/map/findKey.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/findKey.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Finds the first key in a Map for which the predicate function returns true.
- *
- * This function iterates through the entries of the Map and returns the key of the first
- * entry for which the predicate function returns true. If no entry satisfies the predicate,
- * it returns undefined.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {K | undefined} The key of the first entry that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const map = new Map([
- *   ['apple', { color: 'red', quantity: 10 }],
- *   ['banana', { color: 'yellow', quantity: 5 }],
- *   ['grape', { color: 'purple', quantity: 15 }]
- * ]);
- * const result = findKey(map, (value) => value.quantity > 10);
- * // result will be: 'grape'
- */
-declare function findKey<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): K | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/map/findKey.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/findKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Finds the first key in a Map for which the predicate function returns true.
- *
- * This function iterates through the entries of the Map and returns the key of the first
- * entry for which the predicate function returns true. If no entry satisfies the predicate,
- * it returns undefined.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {K | undefined} The key of the first entry that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const map = new Map([
- *   ['apple', { color: 'red', quantity: 10 }],
- *   ['banana', { color: 'yellow', quantity: 5 }],
- *   ['grape', { color: 'purple', quantity: 15 }]
- * ]);
- * const result = findKey(map, (value) => value.quantity > 10);
- * // result will be: 'grape'
- */
-declare function findKey<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): K | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/map/findKey.js
===================================================================
--- node_modules/es-toolkit/dist/map/findKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function findKey(map, doesMatch) {
-    let result = undefined;
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            result = key;
-            break;
-        }
-    }
-    return result;
-}
-
-exports.findKey = findKey;
Index: de_modules/es-toolkit/dist/map/findKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/findKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function findKey(map, doesMatch) {
-    let result = undefined;
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            result = key;
-            break;
-        }
-    }
-    return result;
-}
-
-export { findKey };
Index: de_modules/es-toolkit/dist/map/findValue.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/findValue.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Finds the first value in a Map for which the predicate function returns true.
- *
- * This function iterates through the entries of the Map and returns the value of the first
- * entry for which the predicate function returns true. If no entry satisfies the predicate,
- * it returns undefined.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {V | undefined} The value of the first entry that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const map = new Map([
- *   ['apple', { color: 'red', quantity: 10 }],
- *   ['banana', { color: 'yellow', quantity: 5 }],
- *   ['grape', { color: 'purple', quantity: 15 }]
- * ]);
- * const result = findValue(map, (value) => value.quantity > 10);
- * // result will be: { color: 'purple', quantity: 15 }
- */
-declare function findValue<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): V | undefined;
-
-export { findValue };
Index: de_modules/es-toolkit/dist/map/findValue.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/findValue.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Finds the first value in a Map for which the predicate function returns true.
- *
- * This function iterates through the entries of the Map and returns the value of the first
- * entry for which the predicate function returns true. If no entry satisfies the predicate,
- * it returns undefined.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {V | undefined} The value of the first entry that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const map = new Map([
- *   ['apple', { color: 'red', quantity: 10 }],
- *   ['banana', { color: 'yellow', quantity: 5 }],
- *   ['grape', { color: 'purple', quantity: 15 }]
- * ]);
- * const result = findValue(map, (value) => value.quantity > 10);
- * // result will be: { color: 'purple', quantity: 15 }
- */
-declare function findValue<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): V | undefined;
-
-export { findValue };
Index: de_modules/es-toolkit/dist/map/findValue.js
===================================================================
--- node_modules/es-toolkit/dist/map/findValue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function findValue(map, doesMatch) {
-    let result = undefined;
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            result = value;
-            break;
-        }
-    }
-    return result;
-}
-
-exports.findValue = findValue;
Index: de_modules/es-toolkit/dist/map/findValue.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/findValue.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function findValue(map, doesMatch) {
-    let result = undefined;
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            result = value;
-            break;
-        }
-    }
-    return result;
-}
-
-export { findValue };
Index: de_modules/es-toolkit/dist/map/hasValue.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/hasValue.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Checks if a Map contains a specific value.
- *
- * This function iterates through all values in the Map and checks if any value
- * is equal to the search element using SameValueZero comparison (similar to
- * Array.prototype.includes). This means that NaN is considered equal to NaN.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {V} searchElement - The value to search for.
- * @returns {boolean} true if the Map contains the value, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = hasValue(map, 2);
- * // result will be: true
- *
- * const result2 = hasValue(map, 5);
- * // result2 will be: false
- */
-declare function hasValue<K, V>(map: Map<K, V>, searchElement: V): boolean;
-
-export { hasValue };
Index: de_modules/es-toolkit/dist/map/hasValue.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/hasValue.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Checks if a Map contains a specific value.
- *
- * This function iterates through all values in the Map and checks if any value
- * is equal to the search element using SameValueZero comparison (similar to
- * Array.prototype.includes). This means that NaN is considered equal to NaN.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to search.
- * @param {V} searchElement - The value to search for.
- * @returns {boolean} true if the Map contains the value, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = hasValue(map, 2);
- * // result will be: true
- *
- * const result2 = hasValue(map, 5);
- * // result2 will be: false
- */
-declare function hasValue<K, V>(map: Map<K, V>, searchElement: V): boolean;
-
-export { hasValue };
Index: de_modules/es-toolkit/dist/map/hasValue.js
===================================================================
--- node_modules/es-toolkit/dist/map/hasValue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isEqualsSameValueZero = require('../_internal/isEqualsSameValueZero.js');
-
-function hasValue(map, searchElement) {
-    for (const value of map.values()) {
-        if (isEqualsSameValueZero.isEqualsSameValueZero(value, searchElement)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-exports.hasValue = hasValue;
Index: de_modules/es-toolkit/dist/map/hasValue.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/hasValue.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { isEqualsSameValueZero } from '../_internal/isEqualsSameValueZero.mjs';
-
-function hasValue(map, searchElement) {
-    for (const value of map.values()) {
-        if (isEqualsSameValueZero(value, searchElement)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-export { hasValue };
Index: de_modules/es-toolkit/dist/map/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export { every } from './every.mjs';
-export { filter } from './filter.mjs';
-export { findKey } from './findKey.mjs';
-export { findValue } from './findValue.mjs';
-export { hasValue } from './hasValue.mjs';
-export { mapKeys } from './mapKeys.mjs';
-export { mapValues } from './mapValues.mjs';
-export { reduce } from './reduce.mjs';
-export { some } from './some.mjs';
Index: de_modules/es-toolkit/dist/map/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export { every } from './every.js';
-export { filter } from './filter.js';
-export { findKey } from './findKey.js';
-export { findValue } from './findValue.js';
-export { hasValue } from './hasValue.js';
-export { mapKeys } from './mapKeys.js';
-export { mapValues } from './mapValues.js';
-export { reduce } from './reduce.js';
-export { some } from './some.js';
Index: de_modules/es-toolkit/dist/map/index.js
===================================================================
--- node_modules/es-toolkit/dist/map/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const every = require('./every.js');
-const filter = require('./filter.js');
-const findKey = require('./findKey.js');
-const findValue = require('./findValue.js');
-const hasValue = require('./hasValue.js');
-const mapKeys = require('./mapKeys.js');
-const mapValues = require('./mapValues.js');
-const reduce = require('./reduce.js');
-const some = require('./some.js');
-
-
-
-exports.every = every.every;
-exports.filter = filter.filter;
-exports.findKey = findKey.findKey;
-exports.findValue = findValue.findValue;
-exports.hasValue = hasValue.hasValue;
-exports.mapKeys = mapKeys.mapKeys;
-exports.mapValues = mapValues.mapValues;
-exports.reduce = reduce.reduce;
-exports.some = some.some;
Index: de_modules/es-toolkit/dist/map/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export { every } from './every.mjs';
-export { filter } from './filter.mjs';
-export { findKey } from './findKey.mjs';
-export { findValue } from './findValue.mjs';
-export { hasValue } from './hasValue.mjs';
-export { mapKeys } from './mapKeys.mjs';
-export { mapValues } from './mapValues.mjs';
-export { reduce } from './reduce.mjs';
-export { some } from './some.mjs';
Index: de_modules/es-toolkit/dist/map/mapKeys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/mapKeys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Creates a new Map with the same values but with keys transformed by the provided function.
- *
- * This function takes a Map and a function that generates a new key from each value-key pair.
- * It returns a new Map where the keys are the result of applying the function to each entry,
- * while the values remain the same.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to transform.
- * @param {(value: V, key: K, object: Map<K, V>) => K} getNewKey - A function that generates a new key from a value-key pair.
- * @returns {Map<K, V>} A new Map with transformed keys and the same values.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = mapKeys(map, (value, key) => key.toUpperCase());
- * // result will be:
- * // Map(3) {
- * //   'A' => 1,
- * //   'B' => 2,
- * //   'C' => 3
- * // }
- */
-declare function mapKeys<K, V>(map: Map<K, V>, getNewKey: (value: V, key: K, object: Map<K, V>) => K): Map<K, V>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/map/mapKeys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/mapKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Creates a new Map with the same values but with keys transformed by the provided function.
- *
- * This function takes a Map and a function that generates a new key from each value-key pair.
- * It returns a new Map where the keys are the result of applying the function to each entry,
- * while the values remain the same.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to transform.
- * @param {(value: V, key: K, object: Map<K, V>) => K} getNewKey - A function that generates a new key from a value-key pair.
- * @returns {Map<K, V>} A new Map with transformed keys and the same values.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = mapKeys(map, (value, key) => key.toUpperCase());
- * // result will be:
- * // Map(3) {
- * //   'A' => 1,
- * //   'B' => 2,
- * //   'C' => 3
- * // }
- */
-declare function mapKeys<K, V>(map: Map<K, V>, getNewKey: (value: V, key: K, object: Map<K, V>) => K): Map<K, V>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/map/mapKeys.js
===================================================================
--- node_modules/es-toolkit/dist/map/mapKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function mapKeys(map, getNewKey) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        const newKey = getNewKey(value, key, map);
-        result.set(newKey, value);
-    }
-    return result;
-}
-
-exports.mapKeys = mapKeys;
Index: de_modules/es-toolkit/dist/map/mapKeys.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/mapKeys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function mapKeys(map, getNewKey) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        const newKey = getNewKey(value, key, map);
-        result.set(newKey, value);
-    }
-    return result;
-}
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/map/mapValues.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/mapValues.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Creates a new Map with the same keys but with values transformed by the provided function.
- *
- * This function takes a Map and a function that generates a new value from each value-key pair.
- * It returns a new Map where the values are the result of applying the function to each entry,
- * while the keys remain the same.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to transform.
- * @param {(value: V, key: K, object: Map<K, V>) => V} getNewValue - A function that generates a new value from a value-key pair.
- * @returns {Map<K, V>} A new Map with the same keys and transformed values.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = mapValues(map, (value) => value * 2);
- * // result will be:
- * // Map(3) {
- * //   'a' => 2,
- * //   'b' => 4,
- * //   'c' => 6
- * // }
- */
-declare function mapValues<K, V, R>(map: Map<K, V>, getNewValue: (value: V, key: K, object: Map<K, V>) => R): Map<K, R>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/map/mapValues.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/mapValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Creates a new Map with the same keys but with values transformed by the provided function.
- *
- * This function takes a Map and a function that generates a new value from each value-key pair.
- * It returns a new Map where the values are the result of applying the function to each entry,
- * while the keys remain the same.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to transform.
- * @param {(value: V, key: K, object: Map<K, V>) => V} getNewValue - A function that generates a new value from a value-key pair.
- * @returns {Map<K, V>} A new Map with the same keys and transformed values.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = mapValues(map, (value) => value * 2);
- * // result will be:
- * // Map(3) {
- * //   'a' => 2,
- * //   'b' => 4,
- * //   'c' => 6
- * // }
- */
-declare function mapValues<K, V, R>(map: Map<K, V>, getNewValue: (value: V, key: K, object: Map<K, V>) => R): Map<K, R>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/map/mapValues.js
===================================================================
--- node_modules/es-toolkit/dist/map/mapValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function mapValues(map, getNewValue) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        const newValue = getNewValue(value, key, map);
-        result.set(key, newValue);
-    }
-    return result;
-}
-
-exports.mapValues = mapValues;
Index: de_modules/es-toolkit/dist/map/mapValues.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/mapValues.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function mapValues(map, getNewValue) {
-    const result = new Map();
-    for (const [key, value] of map) {
-        const newValue = getNewValue(value, key, map);
-        result.set(key, newValue);
-    }
-    return result;
-}
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/map/reduce.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/reduce.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Reduces a Map to a single value by iterating through its entries and applying a callback function.
- *
- * This function iterates through all entries of the Map and applies the callback function to each entry,
- * accumulating the result. If an initial value is provided, it is used as the starting accumulator value.
- * If no initial value is provided and the Map is empty, a TypeError is thrown.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to reduce.
- * @param {(accumulator: V, value: V, key: K, map: Map<K, V>) => V} callback - A function that processes each entry and updates the accumulator.
- * @param {V} [initialValue] - The initial value for the accumulator. If not provided, the first value in the Map is used.
- * @returns {V} The final accumulated value.
- * @throws {TypeError} If the Map is empty and no initial value is provided.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = reduce(map, (acc, value) => acc + value, 0);
- * // result will be: 6
- *
- * @example
- * const map = new Map([
- *   ['a', 10],
- *   ['b', 20]
- * ]);
- * const result = reduce(map, (acc, value) => acc + value);
- * // result will be: 30 (starts with first value 10)
- */
-declare function reduce<K, V, A = V>(map: Map<K, V>, callback: (accumulator: A, value: V, key: K, map: Map<K, V>) => A, initialValue?: A): A;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/map/reduce.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/reduce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Reduces a Map to a single value by iterating through its entries and applying a callback function.
- *
- * This function iterates through all entries of the Map and applies the callback function to each entry,
- * accumulating the result. If an initial value is provided, it is used as the starting accumulator value.
- * If no initial value is provided and the Map is empty, a TypeError is thrown.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to reduce.
- * @param {(accumulator: V, value: V, key: K, map: Map<K, V>) => V} callback - A function that processes each entry and updates the accumulator.
- * @param {V} [initialValue] - The initial value for the accumulator. If not provided, the first value in the Map is used.
- * @returns {V} The final accumulated value.
- * @throws {TypeError} If the Map is empty and no initial value is provided.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = reduce(map, (acc, value) => acc + value, 0);
- * // result will be: 6
- *
- * @example
- * const map = new Map([
- *   ['a', 10],
- *   ['b', 20]
- * ]);
- * const result = reduce(map, (acc, value) => acc + value);
- * // result will be: 30 (starts with first value 10)
- */
-declare function reduce<K, V, A = V>(map: Map<K, V>, callback: (accumulator: A, value: V, key: K, map: Map<K, V>) => A, initialValue?: A): A;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/map/reduce.js
===================================================================
--- node_modules/es-toolkit/dist/map/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function reduce(map, callback, initialValue) {
-    if (initialValue == null && map.size === 0) {
-        throw new TypeError('Reduce of empty map with no initial value');
-    }
-    let accumulator = initialValue;
-    for (const [key, value] of map) {
-        if (accumulator == null) {
-            accumulator = value;
-        }
-        else {
-            accumulator = callback(accumulator, value, key, map);
-        }
-    }
-    return accumulator;
-}
-
-exports.reduce = reduce;
Index: de_modules/es-toolkit/dist/map/reduce.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/reduce.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-function reduce(map, callback, initialValue) {
-    if (initialValue == null && map.size === 0) {
-        throw new TypeError('Reduce of empty map with no initial value');
-    }
-    let accumulator = initialValue;
-    for (const [key, value] of map) {
-        if (accumulator == null) {
-            accumulator = value;
-        }
-        else {
-            accumulator = callback(accumulator, value, key, map);
-        }
-    }
-    return accumulator;
-}
-
-export { reduce };
Index: de_modules/es-toolkit/dist/map/some.d.mts
===================================================================
--- node_modules/es-toolkit/dist/map/some.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Tests whether at least one entry in a Map satisfies the provided predicate function.
- *
- * This function iterates through the entries of the Map and checks if the predicate function
- * returns true for at least one entry. It returns true if any entry satisfies the predicate,
- * and false otherwise.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to test.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {boolean} true if at least one entry satisfies the predicate, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = some(map, (value) => value > 2);
- * // result will be: true
- *
- * const result2 = some(map, (value) => value > 5);
- * // result2 will be: false
- */
-declare function some<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/map/some.d.ts
===================================================================
--- node_modules/es-toolkit/dist/map/some.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Tests whether at least one entry in a Map satisfies the provided predicate function.
- *
- * This function iterates through the entries of the Map and checks if the predicate function
- * returns true for at least one entry. It returns true if any entry satisfies the predicate,
- * and false otherwise.
- *
- * @template K - The type of keys in the Map.
- * @template V - The type of values in the Map.
- * @param {Map<K, V>} map - The Map to test.
- * @param {(value: V, key: K, map: Map<K, V>) => boolean} doesMatch - A predicate function that tests each entry.
- * @returns {boolean} true if at least one entry satisfies the predicate, false otherwise.
- *
- * @example
- * const map = new Map([
- *   ['a', 1],
- *   ['b', 2],
- *   ['c', 3]
- * ]);
- * const result = some(map, (value) => value > 2);
- * // result will be: true
- *
- * const result2 = some(map, (value) => value > 5);
- * // result2 will be: false
- */
-declare function some<K, V>(map: Map<K, V>, doesMatch: (value: V, key: K, map: Map<K, V>) => boolean): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/map/some.js
===================================================================
--- node_modules/es-toolkit/dist/map/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function some(map, doesMatch) {
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-exports.some = some;
Index: de_modules/es-toolkit/dist/map/some.mjs
===================================================================
--- node_modules/es-toolkit/dist/map/some.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function some(map, doesMatch) {
-    for (const [key, value] of map) {
-        if (doesMatch(value, key, map)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-export { some };
Index: de_modules/es-toolkit/dist/math/clamp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/clamp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Clamps a number within the inclusive upper bound.
- *
- * This function takes a number and a maximum bound, and returns the number clamped within the specified upper bound.
- * If only one bound is provided, it returns the minimum of the value and the bound.
- *
- * @param {number} value - The number to clamp.
- * @param {number} maximum - The maximum bound to clamp the number.
- * @returns {number} The clamped number within the specified upper bound.
- *
- * @example
- * const result1 = clamp(10, 5); // result1 will be 5, as 10 is clamped to the bound 5
- */
-declare function clamp(value: number, maximum: number): number;
-/**
- * Clamps a number within the inclusive lower and upper bounds.
- *
- * This function takes a number and two bounds, and returns the number clamped within the specified bounds.
- *
- * @param {number} value - The number to clamp.
- * @param {number} minimum - The minimum bound to clamp the number.
- * @param {number} maximum - The maximum bound to clamp the number.
- * @returns {number} The clamped number within the specified bounds.
- *
- * @example
- * const result2 = clamp(10, 5, 15); // result2 will be 10, as it is within the bounds 5 and 15
- * const result3 = clamp(2, 5, 15); // result3 will be 5, as 2 is clamped to the lower bound 5
- * const result4 = clamp(20, 5, 15); // result4 will be 15, as 20 is clamped to the upper bound 15
- */
-declare function clamp(value: number, minimum: number, maximum: number): number;
-
-export { clamp };
Index: de_modules/es-toolkit/dist/math/clamp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/clamp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Clamps a number within the inclusive upper bound.
- *
- * This function takes a number and a maximum bound, and returns the number clamped within the specified upper bound.
- * If only one bound is provided, it returns the minimum of the value and the bound.
- *
- * @param {number} value - The number to clamp.
- * @param {number} maximum - The maximum bound to clamp the number.
- * @returns {number} The clamped number within the specified upper bound.
- *
- * @example
- * const result1 = clamp(10, 5); // result1 will be 5, as 10 is clamped to the bound 5
- */
-declare function clamp(value: number, maximum: number): number;
-/**
- * Clamps a number within the inclusive lower and upper bounds.
- *
- * This function takes a number and two bounds, and returns the number clamped within the specified bounds.
- *
- * @param {number} value - The number to clamp.
- * @param {number} minimum - The minimum bound to clamp the number.
- * @param {number} maximum - The maximum bound to clamp the number.
- * @returns {number} The clamped number within the specified bounds.
- *
- * @example
- * const result2 = clamp(10, 5, 15); // result2 will be 10, as it is within the bounds 5 and 15
- * const result3 = clamp(2, 5, 15); // result3 will be 5, as 2 is clamped to the lower bound 5
- * const result4 = clamp(20, 5, 15); // result4 will be 15, as 20 is clamped to the upper bound 15
- */
-declare function clamp(value: number, minimum: number, maximum: number): number;
-
-export { clamp };
Index: de_modules/es-toolkit/dist/math/clamp.js
===================================================================
--- node_modules/es-toolkit/dist/math/clamp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function clamp(value, bound1, bound2) {
-    if (bound2 == null) {
-        return Math.min(value, bound1);
-    }
-    return Math.min(Math.max(value, bound1), bound2);
-}
-
-exports.clamp = clamp;
Index: de_modules/es-toolkit/dist/math/clamp.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/clamp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function clamp(value, bound1, bound2) {
-    if (bound2 == null) {
-        return Math.min(value, bound1);
-    }
-    return Math.min(Math.max(value, bound1), bound2);
-}
-
-export { clamp };
Index: de_modules/es-toolkit/dist/math/inRange.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/inRange.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if the value is less than the maximum.
- *
- * @param {number} value The value to check.
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is less than the maximum, otherwise `false`.
- *
- * @example
- * const result = inRange(3, 5); // result will be true.
- * const result2 = inRange(5, 5); // result2 will be false.
- */
-declare function inRange(value: number, maximum: number): boolean;
-/**
- * Checks if the value is within the range defined by minimum (inclusive) and maximum (exclusive).
- *
- * @param {number} value The value to check.
- * @param {number} minimum The lower bound of the range (inclusive).
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is within the specified range, otherwise `false`.
- *
- * @example
- * const result = inRange(3, 2, 5); // result will be true.
- * const result2 = inRange(1, 2, 5); // result2 will be false.
- */
-declare function inRange(value: number, minimum: number, maximum: number): boolean;
-
-export { inRange };
Index: de_modules/es-toolkit/dist/math/inRange.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/inRange.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Checks if the value is less than the maximum.
- *
- * @param {number} value The value to check.
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is less than the maximum, otherwise `false`.
- *
- * @example
- * const result = inRange(3, 5); // result will be true.
- * const result2 = inRange(5, 5); // result2 will be false.
- */
-declare function inRange(value: number, maximum: number): boolean;
-/**
- * Checks if the value is within the range defined by minimum (inclusive) and maximum (exclusive).
- *
- * @param {number} value The value to check.
- * @param {number} minimum The lower bound of the range (inclusive).
- * @param {number} maximum The upper bound of the range (exclusive).
- * @returns {boolean} `true` if the value is within the specified range, otherwise `false`.
- *
- * @example
- * const result = inRange(3, 2, 5); // result will be true.
- * const result2 = inRange(1, 2, 5); // result2 will be false.
- */
-declare function inRange(value: number, minimum: number, maximum: number): boolean;
-
-export { inRange };
Index: de_modules/es-toolkit/dist/math/inRange.js
===================================================================
--- node_modules/es-toolkit/dist/math/inRange.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function inRange(value, minimum, maximum) {
-    if (maximum == null) {
-        maximum = minimum;
-        minimum = 0;
-    }
-    if (minimum >= maximum) {
-        throw new Error('The maximum value must be greater than the minimum value.');
-    }
-    return minimum <= value && value < maximum;
-}
-
-exports.inRange = inRange;
Index: de_modules/es-toolkit/dist/math/inRange.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/inRange.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function inRange(value, minimum, maximum) {
-    if (maximum == null) {
-        maximum = minimum;
-        minimum = 0;
-    }
-    if (minimum >= maximum) {
-        throw new Error('The maximum value must be greater than the minimum value.');
-    }
-    return minimum <= value && value < maximum;
-}
-
-export { inRange };
Index: de_modules/es-toolkit/dist/math/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export { clamp } from './clamp.mjs';
-export { inRange } from './inRange.mjs';
-export { mean } from './mean.mjs';
-export { meanBy } from './meanBy.mjs';
-export { median } from './median.mjs';
-export { medianBy } from './medianBy.mjs';
-export { random } from './random.mjs';
-export { randomInt } from './randomInt.mjs';
-export { range } from './range.mjs';
-export { rangeRight } from './rangeRight.mjs';
-export { round } from './round.mjs';
-export { sum } from './sum.mjs';
-export { sumBy } from './sumBy.mjs';
Index: de_modules/es-toolkit/dist/math/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export { clamp } from './clamp.js';
-export { inRange } from './inRange.js';
-export { mean } from './mean.js';
-export { meanBy } from './meanBy.js';
-export { median } from './median.js';
-export { medianBy } from './medianBy.js';
-export { random } from './random.js';
-export { randomInt } from './randomInt.js';
-export { range } from './range.js';
-export { rangeRight } from './rangeRight.js';
-export { round } from './round.js';
-export { sum } from './sum.js';
-export { sumBy } from './sumBy.js';
Index: de_modules/es-toolkit/dist/math/index.js
===================================================================
--- node_modules/es-toolkit/dist/math/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const clamp = require('./clamp.js');
-const inRange = require('./inRange.js');
-const mean = require('./mean.js');
-const meanBy = require('./meanBy.js');
-const median = require('./median.js');
-const medianBy = require('./medianBy.js');
-const random = require('./random.js');
-const randomInt = require('./randomInt.js');
-const range = require('./range.js');
-const rangeRight = require('./rangeRight.js');
-const round = require('./round.js');
-const sum = require('./sum.js');
-const sumBy = require('./sumBy.js');
-
-
-
-exports.clamp = clamp.clamp;
-exports.inRange = inRange.inRange;
-exports.mean = mean.mean;
-exports.meanBy = meanBy.meanBy;
-exports.median = median.median;
-exports.medianBy = medianBy.medianBy;
-exports.random = random.random;
-exports.randomInt = randomInt.randomInt;
-exports.range = range.range;
-exports.rangeRight = rangeRight.rangeRight;
-exports.round = round.round;
-exports.sum = sum.sum;
-exports.sumBy = sumBy.sumBy;
Index: de_modules/es-toolkit/dist/math/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export { clamp } from './clamp.mjs';
-export { inRange } from './inRange.mjs';
-export { mean } from './mean.mjs';
-export { meanBy } from './meanBy.mjs';
-export { median } from './median.mjs';
-export { medianBy } from './medianBy.mjs';
-export { random } from './random.mjs';
-export { randomInt } from './randomInt.mjs';
-export { range } from './range.mjs';
-export { rangeRight } from './rangeRight.mjs';
-export { round } from './round.mjs';
-export { sum } from './sum.mjs';
-export { sumBy } from './sumBy.mjs';
Index: de_modules/es-toolkit/dist/math/mean.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/mean.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the average of an array of numbers.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {number[]} nums - An array of numbers to calculate the average.
- * @returns {number} The average of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = mean(numbers);
- * // result will be 3
- */
-declare function mean(nums: readonly number[]): number;
-
-export { mean };
Index: de_modules/es-toolkit/dist/math/mean.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/mean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the average of an array of numbers.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {number[]} nums - An array of numbers to calculate the average.
- * @returns {number} The average of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = mean(numbers);
- * // result will be 3
- */
-declare function mean(nums: readonly number[]): number;
-
-export { mean };
Index: de_modules/es-toolkit/dist/math/mean.js
===================================================================
--- node_modules/es-toolkit/dist/math/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sum = require('./sum.js');
-
-function mean(nums) {
-    return sum.sum(nums) / nums.length;
-}
-
-exports.mean = mean;
Index: de_modules/es-toolkit/dist/math/mean.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/mean.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { sum } from './sum.mjs';
-
-function mean(nums) {
-    return sum(nums) / nums.length;
-}
-
-export { mean };
Index: de_modules/es-toolkit/dist/math/meanBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/meanBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Calculates the average of an array of numbers when applying
- * the `getValue` function to each element.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the average.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {number} The average of all the numbers as determined by the `getValue` function.
- *
- * @example
- * meanBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: 2
- * meanBy([], x => x.a); // Returns: NaN
- */
-declare function meanBy<T>(items: readonly T[], getValue: (element: T) => number): number;
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/math/meanBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/meanBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Calculates the average of an array of numbers when applying
- * the `getValue` function to each element.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the average.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {number} The average of all the numbers as determined by the `getValue` function.
- *
- * @example
- * meanBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: 2
- * meanBy([], x => x.a); // Returns: NaN
- */
-declare function meanBy<T>(items: readonly T[], getValue: (element: T) => number): number;
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/math/meanBy.js
===================================================================
--- node_modules/es-toolkit/dist/math/meanBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const sumBy = require('./sumBy.js');
-
-function meanBy(items, getValue) {
-    return sumBy.sumBy(items, item => getValue(item)) / items.length;
-}
-
-exports.meanBy = meanBy;
Index: de_modules/es-toolkit/dist/math/meanBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/meanBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { sumBy } from './sumBy.mjs';
-
-function meanBy(items, getValue) {
-    return sumBy(items, item => getValue(item)) / items.length;
-}
-
-export { meanBy };
Index: de_modules/es-toolkit/dist/math/median.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/median.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Calculates the median of an array of numbers.
- *
- * The median is the middle value of a sorted array.
- * If the array has an odd number of elements, the median is the middle value.
- * If the array has an even number of elements, it returns the average of the two middle values.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {number[]} nums - An array of numbers to calculate the median.
- * @returns {number} The median of all the numbers in the array.
- *
- * @example
- * const arrayWithOddNumberOfElements = [1, 2, 3, 4, 5];
- * const result = median(arrayWithOddNumberOfElements);
- * // result will be 3
- *
- * @example
- * const arrayWithEvenNumberOfElements = [1, 2, 3, 4];
- * const result = median(arrayWithEvenNumberOfElements);
- * // result will be 2.5
- */
-declare function median(nums: readonly number[]): number;
-
-export { median };
Index: de_modules/es-toolkit/dist/math/median.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/median.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Calculates the median of an array of numbers.
- *
- * The median is the middle value of a sorted array.
- * If the array has an odd number of elements, the median is the middle value.
- * If the array has an even number of elements, it returns the average of the two middle values.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @param {number[]} nums - An array of numbers to calculate the median.
- * @returns {number} The median of all the numbers in the array.
- *
- * @example
- * const arrayWithOddNumberOfElements = [1, 2, 3, 4, 5];
- * const result = median(arrayWithOddNumberOfElements);
- * // result will be 3
- *
- * @example
- * const arrayWithEvenNumberOfElements = [1, 2, 3, 4];
- * const result = median(arrayWithEvenNumberOfElements);
- * // result will be 2.5
- */
-declare function median(nums: readonly number[]): number;
-
-export { median };
Index: de_modules/es-toolkit/dist/math/median.js
===================================================================
--- node_modules/es-toolkit/dist/math/median.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function median(nums) {
-    if (nums.length === 0) {
-        return NaN;
-    }
-    const sorted = nums.slice().sort((a, b) => a - b);
-    const middleIndex = Math.floor(sorted.length / 2);
-    if (sorted.length % 2 === 0) {
-        return (sorted[middleIndex - 1] + sorted[middleIndex]) / 2;
-    }
-    else {
-        return sorted[middleIndex];
-    }
-}
-
-exports.median = median;
Index: de_modules/es-toolkit/dist/math/median.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/median.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-function median(nums) {
-    if (nums.length === 0) {
-        return NaN;
-    }
-    const sorted = nums.slice().sort((a, b) => a - b);
-    const middleIndex = Math.floor(sorted.length / 2);
-    if (sorted.length % 2 === 0) {
-        return (sorted[middleIndex - 1] + sorted[middleIndex]) / 2;
-    }
-    else {
-        return sorted[middleIndex];
-    }
-}
-
-export { median };
Index: de_modules/es-toolkit/dist/math/medianBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/medianBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Calculates the median of an array of elements when applying
- * the `getValue` function to each element.
- *
- * The median is the middle value of a sorted array.
- * If the array has an odd number of elements, the median is the middle value.
- * If the array has an even number of elements, it returns the average of the two middle values.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the median.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {number} The median of all the numbers as determined by the `getValue` function.
- *
- * @example
- * medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }, { a: 5 }], x => x.a); // Returns: 3
- * medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }], x => x.a); // Returns: 2.5
- * medianBy([], x => x.a); // Returns: NaN
- */
-declare function medianBy<T>(items: readonly T[], getValue: (element: T) => number): number;
-
-export { medianBy };
Index: de_modules/es-toolkit/dist/math/medianBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/medianBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Calculates the median of an array of elements when applying
- * the `getValue` function to each element.
- *
- * The median is the middle value of a sorted array.
- * If the array has an odd number of elements, the median is the middle value.
- * If the array has an even number of elements, it returns the average of the two middle values.
- *
- * If the array is empty, this function returns `NaN`.
- *
- * @template T - The type of elements in the array.
- * @param {T[]} items An array to calculate the median.
- * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
- * @returns {number} The median of all the numbers as determined by the `getValue` function.
- *
- * @example
- * medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }, { a: 5 }], x => x.a); // Returns: 3
- * medianBy([{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }], x => x.a); // Returns: 2.5
- * medianBy([], x => x.a); // Returns: NaN
- */
-declare function medianBy<T>(items: readonly T[], getValue: (element: T) => number): number;
-
-export { medianBy };
Index: de_modules/es-toolkit/dist/math/medianBy.js
===================================================================
--- node_modules/es-toolkit/dist/math/medianBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const median = require('./median.js');
-
-function medianBy(items, getValue) {
-    const nums = items.map(x => getValue(x));
-    return median.median(nums);
-}
-
-exports.medianBy = medianBy;
Index: de_modules/es-toolkit/dist/math/medianBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/medianBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { median } from './median.mjs';
-
-function medianBy(items, getValue) {
-    const nums = items.map(x => getValue(x));
-    return median(nums);
-}
-
-export { medianBy };
Index: de_modules/es-toolkit/dist/math/random.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/random.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Generate a random number within the given range.
- *
- * If only one argument is provided, a number between `0` and the given number is returned.
- *
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random number between 0 (inclusive) and maximum (exclusive). The number can be an integer or a decimal.
- * @throws {Error} Throws an error if `maximum` is not greater than `0`.
- *
- * @example
- * const result1 = random(5); // Returns a random number between 0 and 5.
- * const result2 = random(0); // If the `maximum` is less than or equal to 0, an error is thrown.
- */
-declare function random(maximum: number): number;
-/**
- * Generate a random number within the given range.
- *
- * @param {number} minimum - The lower bound (inclusive).
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random number between minimum (inclusive) and maximum (exclusive). The number can be an integer or a decimal.
- * @throws {Error} Throws an error if `maximum` is not greater than `minimum`.
- *
- * @example
- * const result1 = random(0, 5); // Returns a random number between 0 and 5.
- * const result2 = random(5, 0); // If the minimum is greater than the maximum, an error is thrown.
- * const result3 = random(5, 5); // If the minimum is equal to the maximum, an error is thrown.
- */
-declare function random(minimum: number, maximum: number): number;
-
-export { random };
Index: de_modules/es-toolkit/dist/math/random.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/random.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Generate a random number within the given range.
- *
- * If only one argument is provided, a number between `0` and the given number is returned.
- *
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random number between 0 (inclusive) and maximum (exclusive). The number can be an integer or a decimal.
- * @throws {Error} Throws an error if `maximum` is not greater than `0`.
- *
- * @example
- * const result1 = random(5); // Returns a random number between 0 and 5.
- * const result2 = random(0); // If the `maximum` is less than or equal to 0, an error is thrown.
- */
-declare function random(maximum: number): number;
-/**
- * Generate a random number within the given range.
- *
- * @param {number} minimum - The lower bound (inclusive).
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random number between minimum (inclusive) and maximum (exclusive). The number can be an integer or a decimal.
- * @throws {Error} Throws an error if `maximum` is not greater than `minimum`.
- *
- * @example
- * const result1 = random(0, 5); // Returns a random number between 0 and 5.
- * const result2 = random(5, 0); // If the minimum is greater than the maximum, an error is thrown.
- * const result3 = random(5, 5); // If the minimum is equal to the maximum, an error is thrown.
- */
-declare function random(minimum: number, maximum: number): number;
-
-export { random };
Index: de_modules/es-toolkit/dist/math/random.js
===================================================================
--- node_modules/es-toolkit/dist/math/random.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function random(minimum, maximum) {
-    if (maximum == null) {
-        maximum = minimum;
-        minimum = 0;
-    }
-    if (minimum >= maximum) {
-        throw new Error('Invalid input: The maximum value must be greater than the minimum value.');
-    }
-    return Math.random() * (maximum - minimum) + minimum;
-}
-
-exports.random = random;
Index: de_modules/es-toolkit/dist/math/random.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/random.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function random(minimum, maximum) {
-    if (maximum == null) {
-        maximum = minimum;
-        minimum = 0;
-    }
-    if (minimum >= maximum) {
-        throw new Error('Invalid input: The maximum value must be greater than the minimum value.');
-    }
-    return Math.random() * (maximum - minimum) + minimum;
-}
-
-export { random };
Index: de_modules/es-toolkit/dist/math/randomInt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/randomInt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Generates a random integer between 0 (inclusive) and the given maximum (exclusive).
- *
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random integer between 0 (inclusive) and maximum (exclusive).
- * @throws {Error} Throws an error if `maximum` is not greater than `0`.
- *
- * @example
- * const result = randomInt(5); // result will be a random integer between 0 (inclusive) and 5 (exclusive)
- */
-declare function randomInt(maximum: number): number;
-/**
- * Generates a random integer between minimum (inclusive) and maximum (exclusive).
- *
- * @param {number} minimum - The lower bound (inclusive).
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random integer between minimum (inclusive) and maximum (exclusive).
- * @throws {Error} Throws an error if `maximum` is not greater than `minimum`.
- *
- * @example
- * const result = randomInt(0, 5); // result will be a random integer between 0 (inclusive) and 5 (exclusive)
- * const result2 = randomInt(5, 0); // This will throw an error
- */
-declare function randomInt(minimum: number, maximum: number): number;
-
-export { randomInt };
Index: de_modules/es-toolkit/dist/math/randomInt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/randomInt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Generates a random integer between 0 (inclusive) and the given maximum (exclusive).
- *
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random integer between 0 (inclusive) and maximum (exclusive).
- * @throws {Error} Throws an error if `maximum` is not greater than `0`.
- *
- * @example
- * const result = randomInt(5); // result will be a random integer between 0 (inclusive) and 5 (exclusive)
- */
-declare function randomInt(maximum: number): number;
-/**
- * Generates a random integer between minimum (inclusive) and maximum (exclusive).
- *
- * @param {number} minimum - The lower bound (inclusive).
- * @param {number} maximum - The upper bound (exclusive).
- * @returns {number} A random integer between minimum (inclusive) and maximum (exclusive).
- * @throws {Error} Throws an error if `maximum` is not greater than `minimum`.
- *
- * @example
- * const result = randomInt(0, 5); // result will be a random integer between 0 (inclusive) and 5 (exclusive)
- * const result2 = randomInt(5, 0); // This will throw an error
- */
-declare function randomInt(minimum: number, maximum: number): number;
-
-export { randomInt };
Index: de_modules/es-toolkit/dist/math/randomInt.js
===================================================================
--- node_modules/es-toolkit/dist/math/randomInt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const random = require('./random.js');
-
-function randomInt(minimum, maximum) {
-    return Math.floor(random.random(minimum, maximum));
-}
-
-exports.randomInt = randomInt;
Index: de_modules/es-toolkit/dist/math/randomInt.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/randomInt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { random } from './random.mjs';
-
-function randomInt(minimum, maximum) {
-    return Math.floor(random(minimum, maximum));
-}
-
-export { randomInt };
Index: de_modules/es-toolkit/dist/math/range.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/range.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Returns an array of numbers from `0` (inclusive) to `end` (exclusive), incrementing by `1`.
- *
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `0` (inclusive) to `end` (exclusive) with a step of `1`.
- *
- * @example
- * // Returns [0, 1, 2, 3]
- * range(4);
- */
-declare function range(end: number): number[];
-/**
- * Returns an array of numbers from `start` (inclusive) to `end` (exclusive), incrementing by `1`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `start` (inclusive) to `end` (exclusive) with a step of `1`.
- *
- * @example
- * // Returns [1, 2, 3]
- * range(1, 4);
- */
-declare function range(start: number, end: number): number[];
-/**
- * Returns an array of numbers from `start` (inclusive) to `end` (exclusive), incrementing by `step`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @param {number} step - The step value for the range.
- * @returns {number[]} An array of numbers from `start` (inclusive) to `end` (exclusive) with the specified `step`.
- *
- * @example
- * // Returns [0, 5, 10, 15]
- * range(0, 20, 5);
- */
-declare function range(start: number, end: number, step: number): number[];
-
-export { range };
Index: de_modules/es-toolkit/dist/math/range.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/range.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Returns an array of numbers from `0` (inclusive) to `end` (exclusive), incrementing by `1`.
- *
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `0` (inclusive) to `end` (exclusive) with a step of `1`.
- *
- * @example
- * // Returns [0, 1, 2, 3]
- * range(4);
- */
-declare function range(end: number): number[];
-/**
- * Returns an array of numbers from `start` (inclusive) to `end` (exclusive), incrementing by `1`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `start` (inclusive) to `end` (exclusive) with a step of `1`.
- *
- * @example
- * // Returns [1, 2, 3]
- * range(1, 4);
- */
-declare function range(start: number, end: number): number[];
-/**
- * Returns an array of numbers from `start` (inclusive) to `end` (exclusive), incrementing by `step`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @param {number} step - The step value for the range.
- * @returns {number[]} An array of numbers from `start` (inclusive) to `end` (exclusive) with the specified `step`.
- *
- * @example
- * // Returns [0, 5, 10, 15]
- * range(0, 20, 5);
- */
-declare function range(start: number, end: number, step: number): number[];
-
-export { range };
Index: de_modules/es-toolkit/dist/math/range.js
===================================================================
--- node_modules/es-toolkit/dist/math/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function range(start, end, step = 1) {
-    if (end == null) {
-        end = start;
-        start = 0;
-    }
-    if (!Number.isInteger(step) || step === 0) {
-        throw new Error(`The step value must be a non-zero integer.`);
-    }
-    const length = Math.max(Math.ceil((end - start) / step), 0);
-    const result = new Array(length);
-    for (let i = 0; i < length; i++) {
-        result[i] = start + i * step;
-    }
-    return result;
-}
-
-exports.range = range;
Index: de_modules/es-toolkit/dist/math/range.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/range.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-function range(start, end, step = 1) {
-    if (end == null) {
-        end = start;
-        start = 0;
-    }
-    if (!Number.isInteger(step) || step === 0) {
-        throw new Error(`The step value must be a non-zero integer.`);
-    }
-    const length = Math.max(Math.ceil((end - start) / step), 0);
-    const result = new Array(length);
-    for (let i = 0; i < length; i++) {
-        result[i] = start + i * step;
-    }
-    return result;
-}
-
-export { range };
Index: de_modules/es-toolkit/dist/math/rangeRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/rangeRight.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Returns an array of numbers from `end` (exclusive) to `0` (inclusive), decrementing by `1`.
- *
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `end` (exclusive) to `0` (inclusive) with a step of `1`.
- *
- * @example
- * // Returns [3, 2, 1, 0]
- * rangeRight(4);
- */
-declare function rangeRight(end: number): number[];
-/**
- * Returns an array of numbers from `end` (exclusive) to `start` (inclusive), decrementing by `1`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `end` (exclusive) to `start` (inclusive) with a step of `1`.
- *
- * @example
- * // Returns [3, 2, 1]
- * rangeRight(1, 4);
- */
-declare function rangeRight(start: number, end: number): number[];
-/**
- * Returns an array of numbers from `end` (exclusive) to `start` (inclusive), decrementing by `step`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @param {number} step - The step value for the range.
- * @returns {number[]} An array of numbers from `end` (exclusive) to `start` (inclusive) with the specified `step`.
- *
- * @example
- * // Returns [15, 10, 5, 0]
- * rangeRight(0, 20, 5);
- */
-declare function rangeRight(start: number, end: number, step: number): number[];
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/math/rangeRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/rangeRight.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Returns an array of numbers from `end` (exclusive) to `0` (inclusive), decrementing by `1`.
- *
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `end` (exclusive) to `0` (inclusive) with a step of `1`.
- *
- * @example
- * // Returns [3, 2, 1, 0]
- * rangeRight(4);
- */
-declare function rangeRight(end: number): number[];
-/**
- * Returns an array of numbers from `end` (exclusive) to `start` (inclusive), decrementing by `1`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @returns {number[]} An array of numbers from `end` (exclusive) to `start` (inclusive) with a step of `1`.
- *
- * @example
- * // Returns [3, 2, 1]
- * rangeRight(1, 4);
- */
-declare function rangeRight(start: number, end: number): number[];
-/**
- * Returns an array of numbers from `end` (exclusive) to `start` (inclusive), decrementing by `step`.
- *
- * @param {number} start - The starting number of the range (inclusive).
- * @param {number} end - The end number of the range (exclusive).
- * @param {number} step - The step value for the range.
- * @returns {number[]} An array of numbers from `end` (exclusive) to `start` (inclusive) with the specified `step`.
- *
- * @example
- * // Returns [15, 10, 5, 0]
- * rangeRight(0, 20, 5);
- */
-declare function rangeRight(start: number, end: number, step: number): number[];
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/math/rangeRight.js
===================================================================
--- node_modules/es-toolkit/dist/math/rangeRight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function rangeRight(start, end, step = 1) {
-    if (end == null) {
-        end = start;
-        start = 0;
-    }
-    if (!Number.isInteger(step) || step === 0) {
-        throw new Error(`The step value must be a non-zero integer.`);
-    }
-    const length = Math.max(Math.ceil((end - start) / step), 0);
-    const result = new Array(length);
-    for (let i = 0; i < length; i++) {
-        result[i] = start + (length - i - 1) * step;
-    }
-    return result;
-}
-
-exports.rangeRight = rangeRight;
Index: de_modules/es-toolkit/dist/math/rangeRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/rangeRight.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-function rangeRight(start, end, step = 1) {
-    if (end == null) {
-        end = start;
-        start = 0;
-    }
-    if (!Number.isInteger(step) || step === 0) {
-        throw new Error(`The step value must be a non-zero integer.`);
-    }
-    const length = Math.max(Math.ceil((end - start) / step), 0);
-    const result = new Array(length);
-    for (let i = 0; i < length; i++) {
-        result[i] = start + (length - i - 1) * step;
-    }
-    return result;
-}
-
-export { rangeRight };
Index: de_modules/es-toolkit/dist/math/round.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/round.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Rounds a number to a specified precision.
- *
- * This function takes a number and an optional precision value, and returns the number rounded
- * to the specified number of decimal places.
- *
- * @param {number} value - The number to round.
- * @param {number} [precision=0] - The number of decimal places to round to. Defaults to 0.
- * @returns {number} The rounded number.
- * @throws {Error} Throws an error if `Precision` is not integer.
- *
- * @example
- * const result1 = round(1.2345); // result1 will be 1
- * const result2 = round(1.2345, 2); // result2 will be 1.23
- * const result3 = round(1.2345, 3); // result3 will be 1.235
- * const result4 = round(1.2345, 3.1); // This will throw an error
- */
-declare function round(value: number, precision?: number): number;
-
-export { round };
Index: de_modules/es-toolkit/dist/math/round.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/round.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Rounds a number to a specified precision.
- *
- * This function takes a number and an optional precision value, and returns the number rounded
- * to the specified number of decimal places.
- *
- * @param {number} value - The number to round.
- * @param {number} [precision=0] - The number of decimal places to round to. Defaults to 0.
- * @returns {number} The rounded number.
- * @throws {Error} Throws an error if `Precision` is not integer.
- *
- * @example
- * const result1 = round(1.2345); // result1 will be 1
- * const result2 = round(1.2345, 2); // result2 will be 1.23
- * const result3 = round(1.2345, 3); // result3 will be 1.235
- * const result4 = round(1.2345, 3.1); // This will throw an error
- */
-declare function round(value: number, precision?: number): number;
-
-export { round };
Index: de_modules/es-toolkit/dist/math/round.js
===================================================================
--- node_modules/es-toolkit/dist/math/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function round(value, precision = 0) {
-    if (!Number.isInteger(precision)) {
-        throw new Error('Precision must be an integer.');
-    }
-    const multiplier = Math.pow(10, precision);
-    return Math.round(value * multiplier) / multiplier;
-}
-
-exports.round = round;
Index: de_modules/es-toolkit/dist/math/round.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/round.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function round(value, precision = 0) {
-    if (!Number.isInteger(precision)) {
-        throw new Error('Precision must be an integer.');
-    }
-    const multiplier = Math.pow(10, precision);
-    return Math.round(value * multiplier) / multiplier;
-}
-
-export { round };
Index: de_modules/es-toolkit/dist/math/sum.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/sum.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the sum of an array of numbers.
- *
- * This function takes an array of numbers and returns the sum of all the elements in the array.
- *
- * @param {number[]} nums - An array of numbers to be summed.
- * @returns {number} The sum of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = sum(numbers);
- * // result will be 15
- */
-declare function sum(nums: readonly number[]): number;
-
-export { sum };
Index: de_modules/es-toolkit/dist/math/sum.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/sum.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Calculates the sum of an array of numbers.
- *
- * This function takes an array of numbers and returns the sum of all the elements in the array.
- *
- * @param {number[]} nums - An array of numbers to be summed.
- * @returns {number} The sum of all the numbers in the array.
- *
- * @example
- * const numbers = [1, 2, 3, 4, 5];
- * const result = sum(numbers);
- * // result will be 15
- */
-declare function sum(nums: readonly number[]): number;
-
-export { sum };
Index: de_modules/es-toolkit/dist/math/sum.js
===================================================================
--- node_modules/es-toolkit/dist/math/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function sum(nums) {
-    let result = 0;
-    for (let i = 0; i < nums.length; i++) {
-        result += nums[i];
-    }
-    return result;
-}
-
-exports.sum = sum;
Index: de_modules/es-toolkit/dist/math/sum.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/sum.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function sum(nums) {
-    let result = 0;
-    for (let i = 0; i < nums.length; i++) {
-        result += nums[i];
-    }
-    return result;
-}
-
-export { sum };
Index: de_modules/es-toolkit/dist/math/sumBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/math/sumBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Calculates the sum of an array of numbers when applying
- * the `getValue` function to each element.
- *
- * If the array is empty, this function returns `0`.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} items - An array to calculate the sum.
- * @param {(element: T, index: number) => number} getValue - A function that selects a numeric value from each element.
- *   It receives the element and its zero‑based index in the array.
- * @returns {number} The sum of all the numbers as determined by the `getValue` function.
- *
- * @example
- * sumBy([{ a: 1 }, { a: 2 }, { a: 3 }], (x, i) => x.a * i); // Returns: 8
- * sumBy([], () => 1); // Returns: 0
- */
-declare function sumBy<T>(items: readonly T[], getValue: (element: T, index: number) => number): number;
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/math/sumBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/math/sumBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Calculates the sum of an array of numbers when applying
- * the `getValue` function to each element.
- *
- * If the array is empty, this function returns `0`.
- *
- * @template T - The type of elements in the array.
- * @param {readonly T[]} items - An array to calculate the sum.
- * @param {(element: T, index: number) => number} getValue - A function that selects a numeric value from each element.
- *   It receives the element and its zero‑based index in the array.
- * @returns {number} The sum of all the numbers as determined by the `getValue` function.
- *
- * @example
- * sumBy([{ a: 1 }, { a: 2 }, { a: 3 }], (x, i) => x.a * i); // Returns: 8
- * sumBy([], () => 1); // Returns: 0
- */
-declare function sumBy<T>(items: readonly T[], getValue: (element: T, index: number) => number): number;
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/math/sumBy.js
===================================================================
--- node_modules/es-toolkit/dist/math/sumBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function sumBy(items, getValue) {
-    let result = 0;
-    for (let i = 0; i < items.length; i++) {
-        result += getValue(items[i], i);
-    }
-    return result;
-}
-
-exports.sumBy = sumBy;
Index: de_modules/es-toolkit/dist/math/sumBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/math/sumBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-function sumBy(items, getValue) {
-    let result = 0;
-    for (let i = 0; i < items.length; i++) {
-        result += getValue(items[i], i);
-    }
-    return result;
-}
-
-export { sumBy };
Index: de_modules/es-toolkit/dist/object/clone.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/clone.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a shallow clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A shallow clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- */
-declare function clone<T>(obj: T): T;
-
-export { clone };
Index: de_modules/es-toolkit/dist/object/clone.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/clone.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Creates a shallow clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A shallow clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = clone(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = clone(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = clone(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- */
-declare function clone<T>(obj: T): T;
-
-export { clone };
Index: de_modules/es-toolkit/dist/object/clone.js
===================================================================
--- node_modules/es-toolkit/dist/object/clone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPrimitive = require('../predicate/isPrimitive.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-
-function clone(obj) {
-    if (isPrimitive.isPrimitive(obj)) {
-        return obj;
-    }
-    if (Array.isArray(obj) ||
-        isTypedArray.isTypedArray(obj) ||
-        obj instanceof ArrayBuffer ||
-        (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {
-        return obj.slice(0);
-    }
-    const prototype = Object.getPrototypeOf(obj);
-    if (prototype == null) {
-        return Object.assign(Object.create(prototype), obj);
-    }
-    const Constructor = prototype.constructor;
-    if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {
-        return new Constructor(obj);
-    }
-    if (obj instanceof RegExp) {
-        const newRegExp = new Constructor(obj);
-        newRegExp.lastIndex = obj.lastIndex;
-        return newRegExp;
-    }
-    if (obj instanceof DataView) {
-        return new Constructor(obj.buffer.slice(0));
-    }
-    if (obj instanceof Error) {
-        let newError;
-        if (obj instanceof AggregateError) {
-            newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });
-        }
-        else {
-            newError = new Constructor(obj.message, { cause: obj.cause });
-        }
-        newError.stack = obj.stack;
-        Object.assign(newError, obj);
-        return newError;
-    }
-    if (typeof File !== 'undefined' && obj instanceof File) {
-        const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });
-        return newFile;
-    }
-    if (typeof obj === 'object') {
-        const newObject = Object.create(prototype);
-        return Object.assign(newObject, obj);
-    }
-    return obj;
-}
-
-exports.clone = clone;
Index: de_modules/es-toolkit/dist/object/clone.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/clone.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import { isPrimitive } from '../predicate/isPrimitive.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-
-function clone(obj) {
-    if (isPrimitive(obj)) {
-        return obj;
-    }
-    if (Array.isArray(obj) ||
-        isTypedArray(obj) ||
-        obj instanceof ArrayBuffer ||
-        (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {
-        return obj.slice(0);
-    }
-    const prototype = Object.getPrototypeOf(obj);
-    if (prototype == null) {
-        return Object.assign(Object.create(prototype), obj);
-    }
-    const Constructor = prototype.constructor;
-    if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {
-        return new Constructor(obj);
-    }
-    if (obj instanceof RegExp) {
-        const newRegExp = new Constructor(obj);
-        newRegExp.lastIndex = obj.lastIndex;
-        return newRegExp;
-    }
-    if (obj instanceof DataView) {
-        return new Constructor(obj.buffer.slice(0));
-    }
-    if (obj instanceof Error) {
-        let newError;
-        if (obj instanceof AggregateError) {
-            newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });
-        }
-        else {
-            newError = new Constructor(obj.message, { cause: obj.cause });
-        }
-        newError.stack = obj.stack;
-        Object.assign(newError, obj);
-        return newError;
-    }
-    if (typeof File !== 'undefined' && obj instanceof File) {
-        const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });
-        return newFile;
-    }
-    if (typeof obj === 'object') {
-        const newObject = Object.create(prototype);
-        return Object.assign(newObject, obj);
-    }
-    return obj;
-}
-
-export { clone };
Index: de_modules/es-toolkit/dist/object/cloneDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeep.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Creates a deep clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = cloneDeep(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = cloneDeep(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an array with nested objects
- * const arr = [1, { a: 1 }, [1, 2, 3]];
- * const clonedArr = cloneDeep(arr);
- * arr[1].a = 2;
- * console.log(arr); // [1, { a: 2 }, [1, 2, 3]]
- * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = cloneDeep(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an object with nested objects
- * const obj = { a: 1, b: { c: 1 } };
- * const clonedObj = cloneDeep(obj);
- * obj.b.c = 2;
- * console.log(obj); // { a: 1, b: { c: 2 } }
- * console.log(clonedObj); // { a: 1, b: { c: 1 } }
- * console.log(clonedObj === obj); // false
- */
-declare function cloneDeep<T>(obj: T): T;
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/object/cloneDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeep.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * Creates a deep clone of the given object.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive values
- * const num = 29;
- * const clonedNum = cloneDeep(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an array
- * const arr = [1, 2, 3];
- * const clonedArr = cloneDeep(arr);
- * console.log(clonedArr); // [1, 2, 3]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an array with nested objects
- * const arr = [1, { a: 1 }, [1, 2, 3]];
- * const clonedArr = cloneDeep(arr);
- * arr[1].a = 2;
- * console.log(arr); // [1, { a: 2 }, [1, 2, 3]]
- * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]
- * console.log(clonedArr === arr); // false
- *
- * @example
- * // Clone an object
- * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };
- * const clonedObj = cloneDeep(obj);
- * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an object with nested objects
- * const obj = { a: 1, b: { c: 1 } };
- * const clonedObj = cloneDeep(obj);
- * obj.b.c = 2;
- * console.log(obj); // { a: 1, b: { c: 2 } }
- * console.log(clonedObj); // { a: 1, b: { c: 1 } }
- * console.log(clonedObj === obj); // false
- */
-declare function cloneDeep<T>(obj: T): T;
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/object/cloneDeep.js
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeep.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const cloneDeepWith = require('./cloneDeepWith.js');
-
-function cloneDeep(obj) {
-    return cloneDeepWith.cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);
-}
-
-exports.cloneDeep = cloneDeep;
Index: de_modules/es-toolkit/dist/object/cloneDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeep.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { cloneDeepWithImpl } from './cloneDeepWith.mjs';
-
-function cloneDeep(obj) {
-    return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);
-}
-
-export { cloneDeep };
Index: de_modules/es-toolkit/dist/object/cloneDeepWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeepWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/**
- * Deeply clones the given object.
- *
- * You can customize the deep cloning process using the `cloneValue` function.
- * The function takes the current value `value`, the property name `key`, and the entire object `obj` as arguments.
- * If the function returns a value, that value is used;
- * if it returns `undefined`, the default cloning method is used.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @param {Function} [cloneValue] - A function to customize the cloning process.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive value
- * const num = 29;
- * const clonedNum = cloneDeepWith(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an object with a customizer
- * const obj = { a: 1, b: 2 };
- * const clonedObj = cloneDeepWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2; // Double the number
- *   }
- * });
- * console.log(clonedObj); // { a: 2, b: 4 }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an array with a customizer
- * const arr = [1, 2, 3];
- * const clonedArr = cloneDeepWith(arr, (value) => {
- *   return value + 1; // Increment each value
- * });
- * console.log(clonedArr); // [2, 3, 4]
- * console.log(clonedArr === arr); // false
- */
-declare function cloneDeepWith<T>(obj: T, cloneValue: (value: any, key: PropertyKey | undefined, obj: T, stack: Map<any, any>) => any): T;
-
-export { cloneDeepWith };
Index: de_modules/es-toolkit/dist/object/cloneDeepWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeepWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/**
- * Deeply clones the given object.
- *
- * You can customize the deep cloning process using the `cloneValue` function.
- * The function takes the current value `value`, the property name `key`, and the entire object `obj` as arguments.
- * If the function returns a value, that value is used;
- * if it returns `undefined`, the default cloning method is used.
- *
- * @template T - The type of the object.
- * @param {T} obj - The object to clone.
- * @param {Function} [cloneValue] - A function to customize the cloning process.
- * @returns {T} - A deep clone of the given object.
- *
- * @example
- * // Clone a primitive value
- * const num = 29;
- * const clonedNum = cloneDeepWith(num);
- * console.log(clonedNum); // 29
- * console.log(clonedNum === num); // true
- *
- * @example
- * // Clone an object with a customizer
- * const obj = { a: 1, b: 2 };
- * const clonedObj = cloneDeepWith(obj, (value) => {
- *   if (typeof value === 'number') {
- *     return value * 2; // Double the number
- *   }
- * });
- * console.log(clonedObj); // { a: 2, b: 4 }
- * console.log(clonedObj === obj); // false
- *
- * @example
- * // Clone an array with a customizer
- * const arr = [1, 2, 3];
- * const clonedArr = cloneDeepWith(arr, (value) => {
- *   return value + 1; // Increment each value
- * });
- * console.log(clonedArr); // [2, 3, 4]
- * console.log(clonedArr === arr); // false
- */
-declare function cloneDeepWith<T>(obj: T, cloneValue: (value: any, key: PropertyKey | undefined, obj: T, stack: Map<any, any>) => any): T;
-
-export { cloneDeepWith };
Index: de_modules/es-toolkit/dist/object/cloneDeepWith.js
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeepWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,178 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const getSymbols = require('../compat/_internal/getSymbols.js');
-const getTag = require('../compat/_internal/getTag.js');
-const tags = require('../compat/_internal/tags.js');
-const isPrimitive = require('../predicate/isPrimitive.js');
-const isTypedArray = require('../predicate/isTypedArray.js');
-
-function cloneDeepWith(obj, cloneValue) {
-    return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);
-}
-function cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {
-    const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);
-    if (cloned !== undefined) {
-        return cloned;
-    }
-    if (isPrimitive.isPrimitive(valueToClone)) {
-        return valueToClone;
-    }
-    if (stack.has(valueToClone)) {
-        return stack.get(valueToClone);
-    }
-    if (Array.isArray(valueToClone)) {
-        const result = new Array(valueToClone.length);
-        stack.set(valueToClone, result);
-        for (let i = 0; i < valueToClone.length; i++) {
-            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);
-        }
-        if (Object.hasOwn(valueToClone, 'index')) {
-            result.index = valueToClone.index;
-        }
-        if (Object.hasOwn(valueToClone, 'input')) {
-            result.input = valueToClone.input;
-        }
-        return result;
-    }
-    if (valueToClone instanceof Date) {
-        return new Date(valueToClone.getTime());
-    }
-    if (valueToClone instanceof RegExp) {
-        const result = new RegExp(valueToClone.source, valueToClone.flags);
-        result.lastIndex = valueToClone.lastIndex;
-        return result;
-    }
-    if (valueToClone instanceof Map) {
-        const result = new Map();
-        stack.set(valueToClone, result);
-        for (const [key, value] of valueToClone) {
-            result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));
-        }
-        return result;
-    }
-    if (valueToClone instanceof Set) {
-        const result = new Set();
-        stack.set(valueToClone, result);
-        for (const value of valueToClone) {
-            result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));
-        }
-        return result;
-    }
-    if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {
-        return valueToClone.subarray();
-    }
-    if (isTypedArray.isTypedArray(valueToClone)) {
-        const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);
-        stack.set(valueToClone, result);
-        for (let i = 0; i < valueToClone.length; i++) {
-            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);
-        }
-        return result;
-    }
-    if (valueToClone instanceof ArrayBuffer ||
-        (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {
-        return valueToClone.slice(0);
-    }
-    if (valueToClone instanceof DataView) {
-        const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof File !== 'undefined' && valueToClone instanceof File) {
-        const result = new File([valueToClone], valueToClone.name, {
-            type: valueToClone.type,
-        });
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {
-        const result = new Blob([valueToClone], { type: valueToClone.type });
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Error) {
-        const result = new valueToClone.constructor();
-        stack.set(valueToClone, result);
-        result.message = valueToClone.message;
-        result.name = valueToClone.name;
-        result.stack = valueToClone.stack;
-        result.cause = valueToClone.cause;
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Boolean) {
-        const result = new Boolean(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Number) {
-        const result = new Number(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof String) {
-        const result = new String(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {
-        const result = Object.create(Object.getPrototypeOf(valueToClone));
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    return valueToClone;
-}
-function copyProperties(target, source, objectToClone = target, stack, cloneValue) {
-    const keys = [...Object.keys(source), ...getSymbols.getSymbols(source)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const descriptor = Object.getOwnPropertyDescriptor(target, key);
-        if (descriptor == null || descriptor.writable) {
-            target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);
-        }
-    }
-}
-function isCloneableObject(object) {
-    switch (getTag.getTag(object)) {
-        case tags.argumentsTag:
-        case tags.arrayTag:
-        case tags.arrayBufferTag:
-        case tags.dataViewTag:
-        case tags.booleanTag:
-        case tags.dateTag:
-        case tags.float32ArrayTag:
-        case tags.float64ArrayTag:
-        case tags.int8ArrayTag:
-        case tags.int16ArrayTag:
-        case tags.int32ArrayTag:
-        case tags.mapTag:
-        case tags.numberTag:
-        case tags.objectTag:
-        case tags.regexpTag:
-        case tags.setTag:
-        case tags.stringTag:
-        case tags.symbolTag:
-        case tags.uint8ArrayTag:
-        case tags.uint8ClampedArrayTag:
-        case tags.uint16ArrayTag:
-        case tags.uint32ArrayTag: {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-
-exports.cloneDeepWith = cloneDeepWith;
-exports.cloneDeepWithImpl = cloneDeepWithImpl;
-exports.copyProperties = copyProperties;
Index: de_modules/es-toolkit/dist/object/cloneDeepWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/cloneDeepWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,172 +1,0 @@
-import { getSymbols } from '../compat/_internal/getSymbols.mjs';
-import { getTag } from '../compat/_internal/getTag.mjs';
-import { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';
-import { isPrimitive } from '../predicate/isPrimitive.mjs';
-import { isTypedArray } from '../predicate/isTypedArray.mjs';
-
-function cloneDeepWith(obj, cloneValue) {
-    return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);
-}
-function cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {
-    const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);
-    if (cloned !== undefined) {
-        return cloned;
-    }
-    if (isPrimitive(valueToClone)) {
-        return valueToClone;
-    }
-    if (stack.has(valueToClone)) {
-        return stack.get(valueToClone);
-    }
-    if (Array.isArray(valueToClone)) {
-        const result = new Array(valueToClone.length);
-        stack.set(valueToClone, result);
-        for (let i = 0; i < valueToClone.length; i++) {
-            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);
-        }
-        if (Object.hasOwn(valueToClone, 'index')) {
-            result.index = valueToClone.index;
-        }
-        if (Object.hasOwn(valueToClone, 'input')) {
-            result.input = valueToClone.input;
-        }
-        return result;
-    }
-    if (valueToClone instanceof Date) {
-        return new Date(valueToClone.getTime());
-    }
-    if (valueToClone instanceof RegExp) {
-        const result = new RegExp(valueToClone.source, valueToClone.flags);
-        result.lastIndex = valueToClone.lastIndex;
-        return result;
-    }
-    if (valueToClone instanceof Map) {
-        const result = new Map();
-        stack.set(valueToClone, result);
-        for (const [key, value] of valueToClone) {
-            result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));
-        }
-        return result;
-    }
-    if (valueToClone instanceof Set) {
-        const result = new Set();
-        stack.set(valueToClone, result);
-        for (const value of valueToClone) {
-            result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));
-        }
-        return result;
-    }
-    if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {
-        return valueToClone.subarray();
-    }
-    if (isTypedArray(valueToClone)) {
-        const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);
-        stack.set(valueToClone, result);
-        for (let i = 0; i < valueToClone.length; i++) {
-            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);
-        }
-        return result;
-    }
-    if (valueToClone instanceof ArrayBuffer ||
-        (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {
-        return valueToClone.slice(0);
-    }
-    if (valueToClone instanceof DataView) {
-        const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof File !== 'undefined' && valueToClone instanceof File) {
-        const result = new File([valueToClone], valueToClone.name, {
-            type: valueToClone.type,
-        });
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {
-        const result = new Blob([valueToClone], { type: valueToClone.type });
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Error) {
-        const result = new valueToClone.constructor();
-        stack.set(valueToClone, result);
-        result.message = valueToClone.message;
-        result.name = valueToClone.name;
-        result.stack = valueToClone.stack;
-        result.cause = valueToClone.cause;
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Boolean) {
-        const result = new Boolean(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof Number) {
-        const result = new Number(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (valueToClone instanceof String) {
-        const result = new String(valueToClone.valueOf());
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {
-        const result = Object.create(Object.getPrototypeOf(valueToClone));
-        stack.set(valueToClone, result);
-        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
-        return result;
-    }
-    return valueToClone;
-}
-function copyProperties(target, source, objectToClone = target, stack, cloneValue) {
-    const keys = [...Object.keys(source), ...getSymbols(source)];
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const descriptor = Object.getOwnPropertyDescriptor(target, key);
-        if (descriptor == null || descriptor.writable) {
-            target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);
-        }
-    }
-}
-function isCloneableObject(object) {
-    switch (getTag(object)) {
-        case argumentsTag:
-        case arrayTag:
-        case arrayBufferTag:
-        case dataViewTag:
-        case booleanTag:
-        case dateTag:
-        case float32ArrayTag:
-        case float64ArrayTag:
-        case int8ArrayTag:
-        case int16ArrayTag:
-        case int32ArrayTag:
-        case mapTag:
-        case numberTag:
-        case objectTag:
-        case regexpTag:
-        case setTag:
-        case stringTag:
-        case symbolTag:
-        case uint8ArrayTag:
-        case uint8ClampedArrayTag:
-        case uint16ArrayTag:
-        case uint32ArrayTag: {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-
-export { cloneDeepWith, cloneDeepWithImpl, copyProperties };
Index: de_modules/es-toolkit/dist/object/findKey.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/findKey.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Finds the key of the first element in the object that satisfies the provided testing function.
- *
- * @param {T} obj - The object to search.
- * @param {(value: T[keyof T], key: keyof T, obj: T) => boolean} predicate - The function to execute on each value in the object. It takes three arguments:
- *   - value: The current value being processed in the object.
- *   - key: The key of the current value being processed in the object.
- *   - obj: The object that findKey was called upon.
- * @returns {keyof T | undefined} The key of the first element in the object that passes the test, or undefined if no element passes.
- *
- * @example
- * const users = {
- *   'barney':  { 'age': 36, 'active': true },
- *   'fred':    { 'age': 40, 'active': false },
- *   'pebbles': { 'age': 1,  'active': true }
- * };
- * findKey(users, function(o) { return o.age < 40; }); => 'barney'
- */
-declare function findKey<T extends Record<any, any>>(obj: T, predicate: (value: T[keyof T], key: keyof T, obj: T) => boolean): keyof T | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/object/findKey.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/findKey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Finds the key of the first element in the object that satisfies the provided testing function.
- *
- * @param {T} obj - The object to search.
- * @param {(value: T[keyof T], key: keyof T, obj: T) => boolean} predicate - The function to execute on each value in the object. It takes three arguments:
- *   - value: The current value being processed in the object.
- *   - key: The key of the current value being processed in the object.
- *   - obj: The object that findKey was called upon.
- * @returns {keyof T | undefined} The key of the first element in the object that passes the test, or undefined if no element passes.
- *
- * @example
- * const users = {
- *   'barney':  { 'age': 36, 'active': true },
- *   'fred':    { 'age': 40, 'active': false },
- *   'pebbles': { 'age': 1,  'active': true }
- * };
- * findKey(users, function(o) { return o.age < 40; }); => 'barney'
- */
-declare function findKey<T extends Record<any, any>>(obj: T, predicate: (value: T[keyof T], key: keyof T, obj: T) => boolean): keyof T | undefined;
-
-export { findKey };
Index: de_modules/es-toolkit/dist/object/findKey.js
===================================================================
--- node_modules/es-toolkit/dist/object/findKey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function findKey(obj, predicate) {
-    const keys = Object.keys(obj);
-    return keys.find(key => predicate(obj[key], key, obj));
-}
-
-exports.findKey = findKey;
Index: de_modules/es-toolkit/dist/object/findKey.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/findKey.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-function findKey(obj, predicate) {
-    const keys = Object.keys(obj);
-    return keys.find(key => predicate(obj[key], key, obj));
-}
-
-export { findKey };
Index: de_modules/es-toolkit/dist/object/flattenObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/flattenObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-interface FlattenObjectOptions {
-    /**
-     * The delimiter to use between nested keys.
-     * @default '.'
-     */
-    delimiter?: string;
-}
-/**
- * Flattens a nested object into a single level object with delimiter-separated keys.
- *
- * @param {object} object - The object to flatten.
- * @param {string} [options.delimiter='.'] - The delimiter to use between nested keys.
- * @returns {Record<string, any>} - The flattened object.
- *
- * @example
- * const nestedObject = {
- *   a: {
- *     b: {
- *       c: 1
- *     }
- *   },
- *   d: [2, 3]
- * };
- *
- * const flattened = flattenObject(nestedObject);
- * console.log(flattened);
- * // Output:
- * // {
- * //   'a.b.c': 1,
- * //   'd.0': 2,
- * //   'd.1': 3
- * // }
- */
-declare function flattenObject(object: object, { delimiter }?: FlattenObjectOptions): Record<string, any>;
-
-export { flattenObject };
Index: de_modules/es-toolkit/dist/object/flattenObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/flattenObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-interface FlattenObjectOptions {
-    /**
-     * The delimiter to use between nested keys.
-     * @default '.'
-     */
-    delimiter?: string;
-}
-/**
- * Flattens a nested object into a single level object with delimiter-separated keys.
- *
- * @param {object} object - The object to flatten.
- * @param {string} [options.delimiter='.'] - The delimiter to use between nested keys.
- * @returns {Record<string, any>} - The flattened object.
- *
- * @example
- * const nestedObject = {
- *   a: {
- *     b: {
- *       c: 1
- *     }
- *   },
- *   d: [2, 3]
- * };
- *
- * const flattened = flattenObject(nestedObject);
- * console.log(flattened);
- * // Output:
- * // {
- * //   'a.b.c': 1,
- * //   'd.0': 2,
- * //   'd.1': 3
- * // }
- */
-declare function flattenObject(object: object, { delimiter }?: FlattenObjectOptions): Record<string, any>;
-
-export { flattenObject };
Index: de_modules/es-toolkit/dist/object/flattenObject.js
===================================================================
--- node_modules/es-toolkit/dist/object/flattenObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function flattenObject(object, { delimiter = '.' } = {}) {
-    return flattenObjectImpl(object, '', delimiter);
-}
-function flattenObjectImpl(object, prefix, delimiter) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        const prefixedKey = prefix ? `${prefix}${delimiter}${key}` : key;
-        if (isPlainObject.isPlainObject(value) && Object.keys(value).length > 0) {
-            Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
-            continue;
-        }
-        if (Array.isArray(value) && value.length > 0) {
-            Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
-            continue;
-        }
-        result[prefixedKey] = value;
-    }
-    return result;
-}
-
-exports.flattenObject = flattenObject;
Index: de_modules/es-toolkit/dist/object/flattenObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/flattenObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function flattenObject(object, { delimiter = '.' } = {}) {
-    return flattenObjectImpl(object, '', delimiter);
-}
-function flattenObjectImpl(object, prefix, delimiter) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        const prefixedKey = prefix ? `${prefix}${delimiter}${key}` : key;
-        if (isPlainObject(value) && Object.keys(value).length > 0) {
-            Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
-            continue;
-        }
-        if (Array.isArray(value) && value.length > 0) {
-            Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
-            continue;
-        }
-        result[prefixedKey] = value;
-    }
-    return result;
-}
-
-export { flattenObject };
Index: de_modules/es-toolkit/dist/object/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-export { clone } from './clone.mjs';
-export { cloneDeep } from './cloneDeep.mjs';
-export { cloneDeepWith } from './cloneDeepWith.mjs';
-export { findKey } from './findKey.mjs';
-export { flattenObject } from './flattenObject.mjs';
-export { invert } from './invert.mjs';
-export { mapKeys } from './mapKeys.mjs';
-export { mapValues } from './mapValues.mjs';
-export { merge } from './merge.mjs';
-export { mergeWith } from './mergeWith.mjs';
-export { omit } from './omit.mjs';
-export { omitBy } from './omitBy.mjs';
-export { pick } from './pick.mjs';
-export { pickBy } from './pickBy.mjs';
-export { toCamelCaseKeys } from './toCamelCaseKeys.mjs';
-export { toMerged } from './toMerged.mjs';
-export { toSnakeCaseKeys } from './toSnakeCaseKeys.mjs';
Index: de_modules/es-toolkit/dist/object/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-export { clone } from './clone.js';
-export { cloneDeep } from './cloneDeep.js';
-export { cloneDeepWith } from './cloneDeepWith.js';
-export { findKey } from './findKey.js';
-export { flattenObject } from './flattenObject.js';
-export { invert } from './invert.js';
-export { mapKeys } from './mapKeys.js';
-export { mapValues } from './mapValues.js';
-export { merge } from './merge.js';
-export { mergeWith } from './mergeWith.js';
-export { omit } from './omit.js';
-export { omitBy } from './omitBy.js';
-export { pick } from './pick.js';
-export { pickBy } from './pickBy.js';
-export { toCamelCaseKeys } from './toCamelCaseKeys.js';
-export { toMerged } from './toMerged.js';
-export { toSnakeCaseKeys } from './toSnakeCaseKeys.js';
Index: de_modules/es-toolkit/dist/object/index.js
===================================================================
--- node_modules/es-toolkit/dist/object/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const clone = require('./clone.js');
-const cloneDeep = require('./cloneDeep.js');
-const cloneDeepWith = require('./cloneDeepWith.js');
-const findKey = require('./findKey.js');
-const flattenObject = require('./flattenObject.js');
-const invert = require('./invert.js');
-const mapKeys = require('./mapKeys.js');
-const mapValues = require('./mapValues.js');
-const merge = require('./merge.js');
-const mergeWith = require('./mergeWith.js');
-const omit = require('./omit.js');
-const omitBy = require('./omitBy.js');
-const pick = require('./pick.js');
-const pickBy = require('./pickBy.js');
-const toCamelCaseKeys = require('./toCamelCaseKeys.js');
-const toMerged = require('./toMerged.js');
-const toSnakeCaseKeys = require('./toSnakeCaseKeys.js');
-
-
-
-exports.clone = clone.clone;
-exports.cloneDeep = cloneDeep.cloneDeep;
-exports.cloneDeepWith = cloneDeepWith.cloneDeepWith;
-exports.findKey = findKey.findKey;
-exports.flattenObject = flattenObject.flattenObject;
-exports.invert = invert.invert;
-exports.mapKeys = mapKeys.mapKeys;
-exports.mapValues = mapValues.mapValues;
-exports.merge = merge.merge;
-exports.mergeWith = mergeWith.mergeWith;
-exports.omit = omit.omit;
-exports.omitBy = omitBy.omitBy;
-exports.pick = pick.pick;
-exports.pickBy = pickBy.pickBy;
-exports.toCamelCaseKeys = toCamelCaseKeys.toCamelCaseKeys;
-exports.toMerged = toMerged.toMerged;
-exports.toSnakeCaseKeys = toSnakeCaseKeys.toSnakeCaseKeys;
Index: de_modules/es-toolkit/dist/object/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-export { clone } from './clone.mjs';
-export { cloneDeep } from './cloneDeep.mjs';
-export { cloneDeepWith } from './cloneDeepWith.mjs';
-export { findKey } from './findKey.mjs';
-export { flattenObject } from './flattenObject.mjs';
-export { invert } from './invert.mjs';
-export { mapKeys } from './mapKeys.mjs';
-export { mapValues } from './mapValues.mjs';
-export { merge } from './merge.mjs';
-export { mergeWith } from './mergeWith.mjs';
-export { omit } from './omit.mjs';
-export { omitBy } from './omitBy.mjs';
-export { pick } from './pick.mjs';
-export { pickBy } from './pickBy.mjs';
-export { toCamelCaseKeys } from './toCamelCaseKeys.mjs';
-export { toMerged } from './toMerged.mjs';
-export { toSnakeCaseKeys } from './toSnakeCaseKeys.mjs';
Index: de_modules/es-toolkit/dist/object/invert.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/invert.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Inverts the keys and values of an object. The keys of the input object become the values of the output object and vice versa.
- *
- * This function takes an object and creates a new object by inverting its keys and values. If the input object has duplicate values,
- * the key of the last occurrence will be used as the value for the new key in the output object. It effectively creates a reverse mapping
- * of the input object's key-value pairs.
- *
- * @template K - Type of the keys in the input object (string, number, symbol)
- * @template V - Type of the values in the input object (string, number, symbol)
- * @param {Record<K, V>} obj - The input object whose keys and values are to be inverted
- * @returns {Record<V, K>} - A new object with keys and values inverted
- *
- * @example
- * invert({ a: 1, b: 2, c: 3 }); // { 1: 'a', 2: 'b', 3: 'c' }
- * invert({ 1: 'a', 2: 'b', 3: 'c' }); // { a: '1', b: '2', c: '3' }
- * invert({ a: 1, 2: 'b', c: 3, 4: 'd' }); // { 1: 'a', b: '2', 3: 'c', d: '4' }
- * invert({ a: Symbol('sym1'), b: Symbol('sym2') }); // { [Symbol('sym1')]: 'a', [Symbol('sym2')]: 'b' }
- */
-declare function invert<K extends PropertyKey, V extends PropertyKey>(obj: Record<K, V>): Record<V, K>;
-
-export { invert };
Index: de_modules/es-toolkit/dist/object/invert.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/invert.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Inverts the keys and values of an object. The keys of the input object become the values of the output object and vice versa.
- *
- * This function takes an object and creates a new object by inverting its keys and values. If the input object has duplicate values,
- * the key of the last occurrence will be used as the value for the new key in the output object. It effectively creates a reverse mapping
- * of the input object's key-value pairs.
- *
- * @template K - Type of the keys in the input object (string, number, symbol)
- * @template V - Type of the values in the input object (string, number, symbol)
- * @param {Record<K, V>} obj - The input object whose keys and values are to be inverted
- * @returns {Record<V, K>} - A new object with keys and values inverted
- *
- * @example
- * invert({ a: 1, b: 2, c: 3 }); // { 1: 'a', 2: 'b', 3: 'c' }
- * invert({ 1: 'a', 2: 'b', 3: 'c' }); // { a: '1', b: '2', c: '3' }
- * invert({ a: 1, 2: 'b', c: 3, 4: 'd' }); // { 1: 'a', b: '2', 3: 'c', d: '4' }
- * invert({ a: Symbol('sym1'), b: Symbol('sym2') }); // { [Symbol('sym1')]: 'a', [Symbol('sym2')]: 'b' }
- */
-declare function invert<K extends PropertyKey, V extends PropertyKey>(obj: Record<K, V>): Record<V, K>;
-
-export { invert };
Index: de_modules/es-toolkit/dist/object/invert.js
===================================================================
--- node_modules/es-toolkit/dist/object/invert.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function invert(obj) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        result[value] = key;
-    }
-    return result;
-}
-
-exports.invert = invert;
Index: de_modules/es-toolkit/dist/object/invert.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/invert.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function invert(obj) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        result[value] = key;
-    }
-    return result;
-}
-
-export { invert };
Index: de_modules/es-toolkit/dist/object/mapKeys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/mapKeys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates a new object with the same values as the given object, but with keys generated
- * by running each own enumerable property of the object through the iteratee function.
- *
- * @template T - The type of the object.
- * @template K - The type of the new keys generated by the iteratee function.
- *
- * @param {T} object - The object to iterate over.
- * @param {(value: T[keyof T], key: keyof T, object: T) => K} getNewKey - The function invoked per own enumerable property.
- * @returns {Record<K, T[keyof T]>} - Returns the new mapped object.
- *
- * @example
- * // Example usage:
- * const obj = { a: 1, b: 2 };
- * const result = mapKeys(obj, (value, key) => key + value);
- * console.log(result); // { a1: 1, b2: 2 }
- */
-declare function mapKeys<T extends Record<PropertyKey, any>, K extends PropertyKey>(object: T, getNewKey: (value: T[keyof T], key: keyof T, object: T) => K): Record<K, T[keyof T]>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/object/mapKeys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/mapKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates a new object with the same values as the given object, but with keys generated
- * by running each own enumerable property of the object through the iteratee function.
- *
- * @template T - The type of the object.
- * @template K - The type of the new keys generated by the iteratee function.
- *
- * @param {T} object - The object to iterate over.
- * @param {(value: T[keyof T], key: keyof T, object: T) => K} getNewKey - The function invoked per own enumerable property.
- * @returns {Record<K, T[keyof T]>} - Returns the new mapped object.
- *
- * @example
- * // Example usage:
- * const obj = { a: 1, b: 2 };
- * const result = mapKeys(obj, (value, key) => key + value);
- * console.log(result); // { a1: 1, b2: 2 }
- */
-declare function mapKeys<T extends Record<PropertyKey, any>, K extends PropertyKey>(object: T, getNewKey: (value: T[keyof T], key: keyof T, object: T) => K): Record<K, T[keyof T]>;
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/object/mapKeys.js
===================================================================
--- node_modules/es-toolkit/dist/object/mapKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function mapKeys(object, getNewKey) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[getNewKey(value, key, object)] = value;
-    }
-    return result;
-}
-
-exports.mapKeys = mapKeys;
Index: de_modules/es-toolkit/dist/object/mapKeys.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/mapKeys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function mapKeys(object, getNewKey) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[getNewKey(value, key, object)] = value;
-    }
-    return result;
-}
-
-export { mapKeys };
Index: de_modules/es-toolkit/dist/object/mapValues.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/mapValues.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a new object with the same keys as the given object, but with values generated
- * by running each own enumerable property of the object through the iteratee function.
- *
- * @template T - The type of the object.
- * @template K - The type of the keys in the object.
- * @template V - The type of the new values generated by the iteratee function.
- *
- * @param {T} object - The object to iterate over.
- * @param {(value: T[K], key: K, object: T) => V} getNewValue - The function invoked per own enumerable property.
- * @returns {Record<K, V>} - Returns the new mapped object.
- *
- * @example
- * // Example usage:
- * const obj = { a: 1, b: 2 };
- * const result = mapValues(obj, (value) => value * 2);
- * console.log(result); // { a: 2, b: 4 }
- */
-declare function mapValues<T extends object, K extends keyof T, V>(object: T, getNewValue: (value: T[K], key: K, object: T) => V): Record<K, V>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/object/mapValues.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/mapValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a new object with the same keys as the given object, but with values generated
- * by running each own enumerable property of the object through the iteratee function.
- *
- * @template T - The type of the object.
- * @template K - The type of the keys in the object.
- * @template V - The type of the new values generated by the iteratee function.
- *
- * @param {T} object - The object to iterate over.
- * @param {(value: T[K], key: K, object: T) => V} getNewValue - The function invoked per own enumerable property.
- * @returns {Record<K, V>} - Returns the new mapped object.
- *
- * @example
- * // Example usage:
- * const obj = { a: 1, b: 2 };
- * const result = mapValues(obj, (value) => value * 2);
- * console.log(result); // { a: 2, b: 4 }
- */
-declare function mapValues<T extends object, K extends keyof T, V>(object: T, getNewValue: (value: T[K], key: K, object: T) => V): Record<K, V>;
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/object/mapValues.js
===================================================================
--- node_modules/es-toolkit/dist/object/mapValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function mapValues(object, getNewValue) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[key] = getNewValue(value, key, object);
-    }
-    return result;
-}
-
-exports.mapValues = mapValues;
Index: de_modules/es-toolkit/dist/object/mapValues.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/mapValues.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function mapValues(object, getNewValue) {
-    const result = {};
-    const keys = Object.keys(object);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = object[key];
-        result[key] = getNewValue(value, key, object);
-    }
-    return result;
-}
-
-export { mapValues };
Index: de_modules/es-toolkit/dist/object/merge.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/merge.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/**
- * Merges the properties of the source object into the target object.
- *
- * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
- * If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
- * If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function mutates the target object.
- *
- * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
- * @param {S} source - The source object whose properties will be merged into the target object.
- * @returns {T & S} The updated target object with properties from the source object merged in.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: { x: 1, y: 2 } };
- * const source = { b: { y: 3, z: 4 }, c: 5 };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
- *
- * @example
- * const target = { a: [1, 2], b: { x: 1 } };
- * const source = { a: [3], b: { y: 2 } };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
- *
- * @example
- * const target = { a: null };
- * const source = { a: [1, 2, 3] };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: [1, 2, 3] }
- */
-declare function merge<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S): T & S;
-
-export { merge };
Index: de_modules/es-toolkit/dist/object/merge.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/merge.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/**
- * Merges the properties of the source object into the target object.
- *
- * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
- * If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
- * If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function mutates the target object.
- *
- * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
- * @param {S} source - The source object whose properties will be merged into the target object.
- * @returns {T & S} The updated target object with properties from the source object merged in.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: { x: 1, y: 2 } };
- * const source = { b: { y: 3, z: 4 }, c: 5 };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
- *
- * @example
- * const target = { a: [1, 2], b: { x: 1 } };
- * const source = { a: [3], b: { y: 2 } };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
- *
- * @example
- * const target = { a: null };
- * const source = { a: [1, 2, 3] };
- *
- * const result = merge(target, source);
- * console.log(result);
- * // Output: { a: [1, 2, 3] }
- */
-declare function merge<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S): T & S;
-
-export { merge };
Index: de_modules/es-toolkit/dist/object/merge.js
===================================================================
--- node_modules/es-toolkit/dist/object/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isUnsafeProperty = require('../_internal/isUnsafeProperty.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function merge(target, source) {
-    const sourceKeys = Object.keys(source);
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty.isUnsafeProperty(key)) {
-            continue;
-        }
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        if (isMergeableValue(sourceValue) && isMergeableValue(targetValue)) {
-            target[key] = merge(targetValue, sourceValue);
-        }
-        else if (Array.isArray(sourceValue)) {
-            target[key] = merge([], sourceValue);
-        }
-        else if (isPlainObject.isPlainObject(sourceValue)) {
-            target[key] = merge({}, sourceValue);
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-function isMergeableValue(value) {
-    return isPlainObject.isPlainObject(value) || Array.isArray(value);
-}
-
-exports.merge = merge;
Index: de_modules/es-toolkit/dist/object/merge.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/merge.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function merge(target, source) {
-    const sourceKeys = Object.keys(source);
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty(key)) {
-            continue;
-        }
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        if (isMergeableValue(sourceValue) && isMergeableValue(targetValue)) {
-            target[key] = merge(targetValue, sourceValue);
-        }
-        else if (Array.isArray(sourceValue)) {
-            target[key] = merge([], sourceValue);
-        }
-        else if (isPlainObject(sourceValue)) {
-            target[key] = merge({}, sourceValue);
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-function isMergeableValue(value) {
-    return isPlainObject(value) || Array.isArray(value);
-}
-
-export { merge };
Index: de_modules/es-toolkit/dist/object/mergeWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/mergeWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/**
- * Merges the properties of the source object into the target object.
- *
- * You can provide a custom `merge` function to control how properties are merged. It should return the value to be set in the target object.
- *
- * If it returns `undefined`, a default deep merge will be applied for arrays and objects:
- *
- * - If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
- * - If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function mutates the target object.
- *
- * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
- * @param {S} source - The source object whose properties will be merged into the target object.
- * @param {(targetValue: any, sourceValue: any, key: string, target: T, source: S) => any} merge - A custom merge function that defines how properties should be combined. It receives the following arguments:
- *   - `targetValue`: The current value of the property in the target object.
- *   - `sourceValue`: The value of the property in the source object.
- *   - `key`: The key of the property being merged.
- *   - `target`: The target object.
- *   - `source`: The source object.
- *
- * @returns {T & S} The updated target object with properties from the source object merged in.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * mergeWith(target, source, (targetValue, sourceValue) => {
- *   if (typeof targetValue === 'number' && typeof sourceValue === 'number') {
- *     return targetValue + sourceValue;
- *   }
- * });
- * // Returns { a: 1, b: 5, c: 4 }
- * @example
- * const target = { a: [1], b: [2] };
- * const source = { a: [3], b: [4] };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (Array.isArray(objValue)) {
- *     return objValue.concat(srcValue);
- *   }
- * });
- *
- * expect(result).toEqual({ a: [1, 3], b: [2, 4] });
- */
-declare function mergeWith<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S, merge: (targetValue: any, sourceValue: any, key: string, target: T, source: S) => any): T & S;
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/object/mergeWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/mergeWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/**
- * Merges the properties of the source object into the target object.
- *
- * You can provide a custom `merge` function to control how properties are merged. It should return the value to be set in the target object.
- *
- * If it returns `undefined`, a default deep merge will be applied for arrays and objects:
- *
- * - If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
- * - If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function mutates the target object.
- *
- * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
- * @param {S} source - The source object whose properties will be merged into the target object.
- * @param {(targetValue: any, sourceValue: any, key: string, target: T, source: S) => any} merge - A custom merge function that defines how properties should be combined. It receives the following arguments:
- *   - `targetValue`: The current value of the property in the target object.
- *   - `sourceValue`: The value of the property in the source object.
- *   - `key`: The key of the property being merged.
- *   - `target`: The target object.
- *   - `source`: The source object.
- *
- * @returns {T & S} The updated target object with properties from the source object merged in.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: 2 };
- * const source = { b: 3, c: 4 };
- *
- * mergeWith(target, source, (targetValue, sourceValue) => {
- *   if (typeof targetValue === 'number' && typeof sourceValue === 'number') {
- *     return targetValue + sourceValue;
- *   }
- * });
- * // Returns { a: 1, b: 5, c: 4 }
- * @example
- * const target = { a: [1], b: [2] };
- * const source = { a: [3], b: [4] };
- *
- * const result = mergeWith(target, source, (objValue, srcValue) => {
- *   if (Array.isArray(objValue)) {
- *     return objValue.concat(srcValue);
- *   }
- * });
- *
- * expect(result).toEqual({ a: [1, 3], b: [2, 4] });
- */
-declare function mergeWith<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S, merge: (targetValue: any, sourceValue: any, key: string, target: T, source: S) => any): T & S;
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/object/mergeWith.js
===================================================================
--- node_modules/es-toolkit/dist/object/mergeWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isUnsafeProperty = require('../_internal/isUnsafeProperty.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function mergeWith(target, source, merge) {
-    const sourceKeys = Object.keys(source);
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty.isUnsafeProperty(key)) {
-            continue;
-        }
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        const merged = merge(targetValue, sourceValue, key, target, source);
-        if (merged !== undefined) {
-            target[key] = merged;
-        }
-        else if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                target[key] = mergeWith(targetValue, sourceValue, merge);
-            }
-            else {
-                target[key] = mergeWith([], sourceValue, merge);
-            }
-        }
-        else if (isPlainObject.isPlainObject(sourceValue)) {
-            if (isPlainObject.isPlainObject(targetValue)) {
-                target[key] = mergeWith(targetValue, sourceValue, merge);
-            }
-            else {
-                target[key] = mergeWith({}, sourceValue, merge);
-            }
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-
-exports.mergeWith = mergeWith;
Index: de_modules/es-toolkit/dist/object/mergeWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/mergeWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function mergeWith(target, source, merge) {
-    const sourceKeys = Object.keys(source);
-    for (let i = 0; i < sourceKeys.length; i++) {
-        const key = sourceKeys[i];
-        if (isUnsafeProperty(key)) {
-            continue;
-        }
-        const sourceValue = source[key];
-        const targetValue = target[key];
-        const merged = merge(targetValue, sourceValue, key, target, source);
-        if (merged !== undefined) {
-            target[key] = merged;
-        }
-        else if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                target[key] = mergeWith(targetValue, sourceValue, merge);
-            }
-            else {
-                target[key] = mergeWith([], sourceValue, merge);
-            }
-        }
-        else if (isPlainObject(sourceValue)) {
-            if (isPlainObject(targetValue)) {
-                target[key] = mergeWith(targetValue, sourceValue, merge);
-            }
-            else {
-                target[key] = mergeWith({}, sourceValue, merge);
-            }
-        }
-        else if (targetValue === undefined || sourceValue !== undefined) {
-            target[key] = sourceValue;
-        }
-    }
-    return target;
-}
-
-export { mergeWith };
Index: de_modules/es-toolkit/dist/object/omit.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/omit.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Creates a new object with specified keys omitted.
- *
- * This function takes an object and an array of keys, and returns a new object that
- * excludes the properties corresponding to the specified keys.
- *
- * @template T - The type of object.
- * @template K - The type of keys in object.
- * @param {T} obj - The object to omit keys from.
- * @param {K[]} keys - An array of keys to be omitted from the object.
- * @returns {Omit<T, K>} A new object with the specified keys omitted.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = omit(obj, ['b', 'c']);
- * // result will be { a: 1 }
- */
-declare function omit<T extends Record<PropertyKey, any>, K extends keyof T>(obj: T, keys: readonly K[]): Omit<T, K>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * This overload supports dynamic key arrays determined at runtime,
- * useful when working with keys from Object.keys() or similar operations.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to omit keys from.
- * @param {PropertyKey[]} keys - An array of keys to be omitted from the object. Supports dynamic arrays.
- * @returns {Partial<T>} A new object with the specified keys omitted.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const keysToOmit = Object.keys({ b: true, c: true }); // string[]
- * const result = omit(obj, keysToOmit);
- * // result will be { a: 1 }
- */
-declare function omit<T extends Record<PropertyKey, any>>(obj: T, keys: readonly PropertyKey[]): Partial<T>;
-
-export { omit };
Index: de_modules/es-toolkit/dist/object/omit.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/omit.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Creates a new object with specified keys omitted.
- *
- * This function takes an object and an array of keys, and returns a new object that
- * excludes the properties corresponding to the specified keys.
- *
- * @template T - The type of object.
- * @template K - The type of keys in object.
- * @param {T} obj - The object to omit keys from.
- * @param {K[]} keys - An array of keys to be omitted from the object.
- * @returns {Omit<T, K>} A new object with the specified keys omitted.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = omit(obj, ['b', 'c']);
- * // result will be { a: 1 }
- */
-declare function omit<T extends Record<PropertyKey, any>, K extends keyof T>(obj: T, keys: readonly K[]): Omit<T, K>;
-/**
- * Creates a new object with specified keys omitted.
- *
- * This overload supports dynamic key arrays determined at runtime,
- * useful when working with keys from Object.keys() or similar operations.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to omit keys from.
- * @param {PropertyKey[]} keys - An array of keys to be omitted from the object. Supports dynamic arrays.
- * @returns {Partial<T>} A new object with the specified keys omitted.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const keysToOmit = Object.keys({ b: true, c: true }); // string[]
- * const result = omit(obj, keysToOmit);
- * // result will be { a: 1 }
- */
-declare function omit<T extends Record<PropertyKey, any>>(obj: T, keys: readonly PropertyKey[]): Partial<T>;
-
-export { omit };
Index: de_modules/es-toolkit/dist/object/omit.js
===================================================================
--- node_modules/es-toolkit/dist/object/omit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function omit(obj, keys) {
-    const result = { ...obj };
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        delete result[key];
-    }
-    return result;
-}
-
-exports.omit = omit;
Index: de_modules/es-toolkit/dist/object/omit.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/omit.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function omit(obj, keys) {
-    const result = { ...obj };
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        delete result[key];
-    }
-    return result;
-}
-
-export { omit };
Index: de_modules/es-toolkit/dist/object/omitBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/omitBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * This function takes an object and a predicate function, and returns a new object that
- * includes only the properties for which the predicate function returns false.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to omit properties from.
- * @param {(value: T[string], key: keyof T) => boolean} shouldOmit - A predicate function that determines
- * whether a property should be omitted. It takes the property's key and value as arguments and returns `true`
- * if the property should be omitted, and `false` otherwise.
- * @returns {Partial<T>} A new object with the properties that do not satisfy the predicate function.
- *
- * @example
- * const obj = { a: 1, b: 'omit', c: 3 };
- * const shouldOmit = (value) => typeof value === 'string';
- * const result = omitBy(obj, shouldOmit);
- * // result will be { a: 1, c: 3 }
- */
-declare function omitBy<T extends Record<string, any>>(obj: T, shouldOmit: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/object/omitBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/omitBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a new object composed of the properties that do not satisfy the predicate function.
- *
- * This function takes an object and a predicate function, and returns a new object that
- * includes only the properties for which the predicate function returns false.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to omit properties from.
- * @param {(value: T[string], key: keyof T) => boolean} shouldOmit - A predicate function that determines
- * whether a property should be omitted. It takes the property's key and value as arguments and returns `true`
- * if the property should be omitted, and `false` otherwise.
- * @returns {Partial<T>} A new object with the properties that do not satisfy the predicate function.
- *
- * @example
- * const obj = { a: 1, b: 'omit', c: 3 };
- * const shouldOmit = (value) => typeof value === 'string';
- * const result = omitBy(obj, shouldOmit);
- * // result will be { a: 1, c: 3 }
- */
-declare function omitBy<T extends Record<string, any>>(obj: T, shouldOmit: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/object/omitBy.js
===================================================================
--- node_modules/es-toolkit/dist/object/omitBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function omitBy(obj, shouldOmit) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (!shouldOmit(value, key)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-exports.omitBy = omitBy;
Index: de_modules/es-toolkit/dist/object/omitBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/omitBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function omitBy(obj, shouldOmit) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (!shouldOmit(value, key)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-export { omitBy };
Index: de_modules/es-toolkit/dist/object/pick.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/pick.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates a new object composed of the picked object properties.
- *
- * This function takes an object and an array of keys, and returns a new object that
- * includes only the properties corresponding to the specified keys.
- *
- * @template T - The type of object.
- * @template K - The type of keys in object.
- * @param {T} obj - The object to pick keys from.
- * @param {K[]} keys - An array of keys to be picked from the object.
- * @returns {Pick<T, K>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: readonly K[]): Pick<T, K>;
-
-export { pick };
Index: de_modules/es-toolkit/dist/object/pick.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/pick.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Creates a new object composed of the picked object properties.
- *
- * This function takes an object and an array of keys, and returns a new object that
- * includes only the properties corresponding to the specified keys.
- *
- * @template T - The type of object.
- * @template K - The type of keys in object.
- * @param {T} obj - The object to pick keys from.
- * @param {K[]} keys - An array of keys to be picked from the object.
- * @returns {Pick<T, K>} A new object with the specified keys picked.
- *
- * @example
- * const obj = { a: 1, b: 2, c: 3 };
- * const result = pick(obj, ['a', 'c']);
- * // result will be { a: 1, c: 3 }
- */
-declare function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: readonly K[]): Pick<T, K>;
-
-export { pick };
Index: de_modules/es-toolkit/dist/object/pick.js
===================================================================
--- node_modules/es-toolkit/dist/object/pick.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function pick(obj, keys) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        if (Object.hasOwn(obj, key)) {
-            result[key] = obj[key];
-        }
-    }
-    return result;
-}
-
-exports.pick = pick;
Index: de_modules/es-toolkit/dist/object/pick.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/pick.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function pick(obj, keys) {
-    const result = {};
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        if (Object.hasOwn(obj, key)) {
-            result[key] = obj[key];
-        }
-    }
-    return result;
-}
-
-export { pick };
Index: de_modules/es-toolkit/dist/object/pickBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/pickBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * This function takes an object and a predicate function, and returns a new object that
- * includes only the properties for which the predicate function returns true.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to pick properties from.
- * @param {(value: T[keyof T], key: keyof T) => boolean} shouldPick - A predicate function that determines
- * whether a property should be picked. It takes the property's key and value as arguments and returns `true`
- * if the property should be picked, and `false` otherwise.
- * @returns {Partial<T>} A new object with the properties that satisfy the predicate function.
- *
- * @example
- * const obj = { a: 1, b: 'pick', c: 3 };
- * const shouldPick = (value) => typeof value === 'string';
- * const result = pickBy(obj, shouldPick);
- * // result will be { b: 'pick' }
- */
-declare function pickBy<T extends Record<string, any>>(obj: T, shouldPick: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/object/pickBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/pickBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Creates a new object composed of the properties that satisfy the predicate function.
- *
- * This function takes an object and a predicate function, and returns a new object that
- * includes only the properties for which the predicate function returns true.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to pick properties from.
- * @param {(value: T[keyof T], key: keyof T) => boolean} shouldPick - A predicate function that determines
- * whether a property should be picked. It takes the property's key and value as arguments and returns `true`
- * if the property should be picked, and `false` otherwise.
- * @returns {Partial<T>} A new object with the properties that satisfy the predicate function.
- *
- * @example
- * const obj = { a: 1, b: 'pick', c: 3 };
- * const shouldPick = (value) => typeof value === 'string';
- * const result = pickBy(obj, shouldPick);
- * // result will be { b: 'pick' }
- */
-declare function pickBy<T extends Record<string, any>>(obj: T, shouldPick: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/object/pickBy.js
===================================================================
--- node_modules/es-toolkit/dist/object/pickBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function pickBy(obj, shouldPick) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (shouldPick(value, key)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-exports.pickBy = pickBy;
Index: de_modules/es-toolkit/dist/object/pickBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/pickBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function pickBy(obj, shouldPick) {
-    const result = {};
-    const keys = Object.keys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (shouldPick(value, key)) {
-            result[key] = value;
-        }
-    }
-    return result;
-}
-
-export { pickBy };
Index: de_modules/es-toolkit/dist/object/toCamelCaseKeys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/toCamelCaseKeys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-type SnakeToCamel<S extends string> = S extends `${infer H}_${infer T}` ? `${Lowercase<H>}${Capitalize<SnakeToCamel<T>>}` : Lowercase<S>;
-type PascalToCamel<S extends string> = S extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : S;
-/** If it's snake_case, apply the snake_case rule; for uppercase keys, lowercase the entire string; otherwise, just lowercase the first letter (including PascalCase → camelCase). */
-type AnyToCamel<S extends string> = S extends `${string}_${string}` ? SnakeToCamel<S> : S extends Uppercase<S> ? Lowercase<S> : PascalToCamel<S>;
-type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
-type ToCamelCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToCamelCaseKeys<T[number]>> : T extends Record<string, any> ? {
-    [K in keyof T as AnyToCamel<Extract<K, string>>]: ToCamelCaseKeys<T[K]>;
-} : T;
-/**
- * Creates a new object composed of the properties with keys converted to camelCase.
- *
- * This function takes an object and returns a new object that includes the same properties,
- * but with all keys converted to camelCase format.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to convert keys from.
- * @returns {ToCamelCaseKeys<T>} A new object with all keys converted to camelCase.
- *
- * @example
- * // Example with objects
- * const obj = { user_id: 1, first_name: 'John' };
- * const result = toCamelCaseKeys(obj);
- * // result will be { userId: 1, firstName: 'John' }
- *
- * // Example with arrays of objects
- * const arr = [
- *   { user_id: 1, first_name: 'John' },
- *   { user_id: 2, first_name: 'Jane' }
- * ];
- * const arrResult = toCamelCaseKeys(arr);
- * // arrResult will be [{ userId: 1, firstName: 'John' }, { userId: 2, firstName: 'Jane' }]
- *
- * // Example with nested objects
- * const nested = {
- *   user_data: {
- *     user_id: 1,
- *     user_address: {
- *       street_name: 'Main St',
- *       zip_code: '12345'
- *     }
- *   }
- * };
- * const nestedResult = toCamelCaseKeys(nested);
- * // nestedResult will be:
- * // {
- * //   userData: {
- * //     userId: 1,
- * //     userAddress: {
- * //       streetName: 'Main St',
- * //       zipCode: '12345'
- * //     }
- * //   }
- * // }
- */
-declare function toCamelCaseKeys<T>(obj: T): ToCamelCaseKeys<T>;
-
-export { toCamelCaseKeys };
Index: de_modules/es-toolkit/dist/object/toCamelCaseKeys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/toCamelCaseKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-type SnakeToCamel<S extends string> = S extends `${infer H}_${infer T}` ? `${Lowercase<H>}${Capitalize<SnakeToCamel<T>>}` : Lowercase<S>;
-type PascalToCamel<S extends string> = S extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : S;
-/** If it's snake_case, apply the snake_case rule; for uppercase keys, lowercase the entire string; otherwise, just lowercase the first letter (including PascalCase → camelCase). */
-type AnyToCamel<S extends string> = S extends `${string}_${string}` ? SnakeToCamel<S> : S extends Uppercase<S> ? Lowercase<S> : PascalToCamel<S>;
-type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
-type ToCamelCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToCamelCaseKeys<T[number]>> : T extends Record<string, any> ? {
-    [K in keyof T as AnyToCamel<Extract<K, string>>]: ToCamelCaseKeys<T[K]>;
-} : T;
-/**
- * Creates a new object composed of the properties with keys converted to camelCase.
- *
- * This function takes an object and returns a new object that includes the same properties,
- * but with all keys converted to camelCase format.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to convert keys from.
- * @returns {ToCamelCaseKeys<T>} A new object with all keys converted to camelCase.
- *
- * @example
- * // Example with objects
- * const obj = { user_id: 1, first_name: 'John' };
- * const result = toCamelCaseKeys(obj);
- * // result will be { userId: 1, firstName: 'John' }
- *
- * // Example with arrays of objects
- * const arr = [
- *   { user_id: 1, first_name: 'John' },
- *   { user_id: 2, first_name: 'Jane' }
- * ];
- * const arrResult = toCamelCaseKeys(arr);
- * // arrResult will be [{ userId: 1, firstName: 'John' }, { userId: 2, firstName: 'Jane' }]
- *
- * // Example with nested objects
- * const nested = {
- *   user_data: {
- *     user_id: 1,
- *     user_address: {
- *       street_name: 'Main St',
- *       zip_code: '12345'
- *     }
- *   }
- * };
- * const nestedResult = toCamelCaseKeys(nested);
- * // nestedResult will be:
- * // {
- * //   userData: {
- * //     userId: 1,
- * //     userAddress: {
- * //       streetName: 'Main St',
- * //       zipCode: '12345'
- * //     }
- * //   }
- * // }
- */
-declare function toCamelCaseKeys<T>(obj: T): ToCamelCaseKeys<T>;
-
-export { toCamelCaseKeys };
Index: de_modules/es-toolkit/dist/object/toCamelCaseKeys.js
===================================================================
--- node_modules/es-toolkit/dist/object/toCamelCaseKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArray = require('../compat/predicate/isArray.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-const camelCase = require('../string/camelCase.js');
-
-function toCamelCaseKeys(obj) {
-    if (isArray.isArray(obj)) {
-        return obj.map(item => toCamelCaseKeys(item));
-    }
-    if (isPlainObject.isPlainObject(obj)) {
-        const result = {};
-        const keys = Object.keys(obj);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const camelKey = camelCase.camelCase(key);
-            const convertedValue = toCamelCaseKeys(obj[key]);
-            result[camelKey] = convertedValue;
-        }
-        return result;
-    }
-    return obj;
-}
-
-exports.toCamelCaseKeys = toCamelCaseKeys;
Index: de_modules/es-toolkit/dist/object/toCamelCaseKeys.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/toCamelCaseKeys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { isArray } from '../compat/predicate/isArray.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-import { camelCase } from '../string/camelCase.mjs';
-
-function toCamelCaseKeys(obj) {
-    if (isArray(obj)) {
-        return obj.map(item => toCamelCaseKeys(item));
-    }
-    if (isPlainObject(obj)) {
-        const result = {};
-        const keys = Object.keys(obj);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const camelKey = camelCase(key);
-            const convertedValue = toCamelCaseKeys(obj[key]);
-            result[camelKey] = convertedValue;
-        }
-        return result;
-    }
-    return obj;
-}
-
-export { toCamelCaseKeys };
Index: de_modules/es-toolkit/dist/object/toMerged.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/toMerged.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Merges the properties of the source object into a deep clone of the target object.
- * Unlike `merge`, This function does not modify the original target object.
- *
- * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
- *
- * - If a property in the source object is an array or object and the corresponding property in the target object is also an array or object, they will be merged.
- * - If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function does not mutate the target object.
- *
- * @param {T} target - The target object to be cloned and merged into. This object is not modified directly.
- * @param {S} source - The source object whose properties will be merged into the cloned target object.
- * @returns {T & S} A new object with properties from the source object merged into a deep clone of the target object.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: { x: 1, y: 2 } };
- * const source = { b: { y: 3, z: 4 }, c: 5 };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
- *
- * @example
- * const target = { a: [1, 2], b: { x: 1 } };
- * const source = { a: [3], b: { y: 2 } };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
- *
- * @example
- * const target = { a: null };
- * const source = { a: [1, 2, 3] };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: [1, 2, 3] }
- */
-declare function toMerged<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S): T & S;
-
-export { toMerged };
Index: de_modules/es-toolkit/dist/object/toMerged.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/toMerged.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Merges the properties of the source object into a deep clone of the target object.
- * Unlike `merge`, This function does not modify the original target object.
- *
- * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
- *
- * - If a property in the source object is an array or object and the corresponding property in the target object is also an array or object, they will be merged.
- * - If a property in the source object is undefined, it will not overwrite a defined property in the target object.
- *
- * Note that this function does not mutate the target object.
- *
- * @param {T} target - The target object to be cloned and merged into. This object is not modified directly.
- * @param {S} source - The source object whose properties will be merged into the cloned target object.
- * @returns {T & S} A new object with properties from the source object merged into a deep clone of the target object.
- *
- * @template T - Type of the target object.
- * @template S - Type of the source object.
- *
- * @example
- * const target = { a: 1, b: { x: 1, y: 2 } };
- * const source = { b: { y: 3, z: 4 }, c: 5 };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
- *
- * @example
- * const target = { a: [1, 2], b: { x: 1 } };
- * const source = { a: [3], b: { y: 2 } };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
- *
- * @example
- * const target = { a: null };
- * const source = { a: [1, 2, 3] };
- *
- * const result = toMerged(target, source);
- * console.log(result);
- * // Output: { a: [1, 2, 3] }
- */
-declare function toMerged<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S): T & S;
-
-export { toMerged };
Index: de_modules/es-toolkit/dist/object/toMerged.js
===================================================================
--- node_modules/es-toolkit/dist/object/toMerged.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const clone = require('./clone.js');
-const mergeWith = require('./mergeWith.js');
-const isPlainObject = require('../predicate/isPlainObject.js');
-
-function toMerged(target, source) {
-    return mergeWith.mergeWith(clone.clone(target), source, function mergeRecursively(targetValue, sourceValue) {
-        if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                return mergeWith.mergeWith(clone.clone(targetValue), sourceValue, mergeRecursively);
-            }
-            else {
-                return mergeWith.mergeWith([], sourceValue, mergeRecursively);
-            }
-        }
-        else if (isPlainObject.isPlainObject(sourceValue)) {
-            if (isPlainObject.isPlainObject(targetValue)) {
-                return mergeWith.mergeWith(clone.clone(targetValue), sourceValue, mergeRecursively);
-            }
-            else {
-                return mergeWith.mergeWith({}, sourceValue, mergeRecursively);
-            }
-        }
-    });
-}
-
-exports.toMerged = toMerged;
Index: de_modules/es-toolkit/dist/object/toMerged.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/toMerged.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { clone } from './clone.mjs';
-import { mergeWith } from './mergeWith.mjs';
-import { isPlainObject } from '../predicate/isPlainObject.mjs';
-
-function toMerged(target, source) {
-    return mergeWith(clone(target), source, function mergeRecursively(targetValue, sourceValue) {
-        if (Array.isArray(sourceValue)) {
-            if (Array.isArray(targetValue)) {
-                return mergeWith(clone(targetValue), sourceValue, mergeRecursively);
-            }
-            else {
-                return mergeWith([], sourceValue, mergeRecursively);
-            }
-        }
-        else if (isPlainObject(sourceValue)) {
-            if (isPlainObject(targetValue)) {
-                return mergeWith(clone(targetValue), sourceValue, mergeRecursively);
-            }
-            else {
-                return mergeWith({}, sourceValue, mergeRecursively);
-            }
-        }
-    });
-}
-
-export { toMerged };
Index: de_modules/es-toolkit/dist/object/toSnakeCaseKeys.d.mts
===================================================================
--- node_modules/es-toolkit/dist/object/toSnakeCaseKeys.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-type SnakeCase<S extends string> = S extends Uppercase<S> ? Lowercase<S> : S extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize<P2> ? `${Lowercase<P1>}${SnakeCase<P2>}` : `${Lowercase<P1>}_${SnakeCase<Uncapitalize<P2>>}` : Lowercase<S>;
-type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
-type ToSnakeCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToSnakeCaseKeys<T[number]>> : T extends Record<string, any> ? {
-    [K in keyof T as SnakeCase<string & K>]: ToSnakeCaseKeys<T[K]>;
-} : T;
-/**
- * Creates a new object composed of the properties with keys converted to snake_case.
- *
- * This function takes an object and returns a new object that includes the same properties,
- * but with all keys converted to snake_case format.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to convert keys from.
- * @returns {ToSnakeCaseKeys<T>} A new object with all keys converted to snake_case.
- *
- * @example
- * // Example with objects
- * const obj = { userId: 1, firstName: 'John' };
- * const result = toSnakeCaseKeys(obj);
- * // result will be { user_id: 1, first_name: 'John' }
- *
- * // Example with arrays of objects
- * const arr = [
- *   { userId: 1, firstName: 'John' },
- *   { userId: 2, firstName: 'Jane' }
- * ];
- * const arrResult = toSnakeCaseKeys(arr);
- * // arrResult will be [{ user_id: 1, first_name: 'John' }, { user_id: 2, first_name: 'Jane' }]
- *
- * // Example with nested objects
- * const nested = {
- *   userData: {
- *     userId: 1,
- *     userAddress: {
- *       streetName: 'Main St',
- *       zipCode: '12345'
- *     }
- *   }
- * };
- * const nestedResult = toSnakeCaseKeys(nested);
- * // nestedResult will be:
- * // {
- * //   user_data: {
- * //     user_id: 1,
- * //     user_address: {
- * //       street_name: 'Main St',
- * //       zip_code: '12345'
- * //     }
- * //   }
- * // }
- */
-declare function toSnakeCaseKeys<T>(obj: T): ToSnakeCaseKeys<T>;
-
-export { type ToSnakeCaseKeys, toSnakeCaseKeys };
Index: de_modules/es-toolkit/dist/object/toSnakeCaseKeys.d.ts
===================================================================
--- node_modules/es-toolkit/dist/object/toSnakeCaseKeys.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-type SnakeCase<S extends string> = S extends Uppercase<S> ? Lowercase<S> : S extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize<P2> ? `${Lowercase<P1>}${SnakeCase<P2>}` : `${Lowercase<P1>}_${SnakeCase<Uncapitalize<P2>>}` : Lowercase<S>;
-type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
-type ToSnakeCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToSnakeCaseKeys<T[number]>> : T extends Record<string, any> ? {
-    [K in keyof T as SnakeCase<string & K>]: ToSnakeCaseKeys<T[K]>;
-} : T;
-/**
- * Creates a new object composed of the properties with keys converted to snake_case.
- *
- * This function takes an object and returns a new object that includes the same properties,
- * but with all keys converted to snake_case format.
- *
- * @template T - The type of object.
- * @param {T} obj - The object to convert keys from.
- * @returns {ToSnakeCaseKeys<T>} A new object with all keys converted to snake_case.
- *
- * @example
- * // Example with objects
- * const obj = { userId: 1, firstName: 'John' };
- * const result = toSnakeCaseKeys(obj);
- * // result will be { user_id: 1, first_name: 'John' }
- *
- * // Example with arrays of objects
- * const arr = [
- *   { userId: 1, firstName: 'John' },
- *   { userId: 2, firstName: 'Jane' }
- * ];
- * const arrResult = toSnakeCaseKeys(arr);
- * // arrResult will be [{ user_id: 1, first_name: 'John' }, { user_id: 2, first_name: 'Jane' }]
- *
- * // Example with nested objects
- * const nested = {
- *   userData: {
- *     userId: 1,
- *     userAddress: {
- *       streetName: 'Main St',
- *       zipCode: '12345'
- *     }
- *   }
- * };
- * const nestedResult = toSnakeCaseKeys(nested);
- * // nestedResult will be:
- * // {
- * //   user_data: {
- * //     user_id: 1,
- * //     user_address: {
- * //       street_name: 'Main St',
- * //       zip_code: '12345'
- * //     }
- * //   }
- * // }
- */
-declare function toSnakeCaseKeys<T>(obj: T): ToSnakeCaseKeys<T>;
-
-export { type ToSnakeCaseKeys, toSnakeCaseKeys };
Index: de_modules/es-toolkit/dist/object/toSnakeCaseKeys.js
===================================================================
--- node_modules/es-toolkit/dist/object/toSnakeCaseKeys.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArray = require('../compat/predicate/isArray.js');
-const isPlainObject = require('../compat/predicate/isPlainObject.js');
-const snakeCase = require('../string/snakeCase.js');
-
-function toSnakeCaseKeys(obj) {
-    if (isArray.isArray(obj)) {
-        return obj.map(item => toSnakeCaseKeys(item));
-    }
-    if (isPlainObject.isPlainObject(obj)) {
-        const result = {};
-        const keys = Object.keys(obj);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const snakeKey = snakeCase.snakeCase(key);
-            const convertedValue = toSnakeCaseKeys(obj[key]);
-            result[snakeKey] = convertedValue;
-        }
-        return result;
-    }
-    return obj;
-}
-
-exports.toSnakeCaseKeys = toSnakeCaseKeys;
Index: de_modules/es-toolkit/dist/object/toSnakeCaseKeys.mjs
===================================================================
--- node_modules/es-toolkit/dist/object/toSnakeCaseKeys.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { isArray } from '../compat/predicate/isArray.mjs';
-import { isPlainObject } from '../compat/predicate/isPlainObject.mjs';
-import { snakeCase } from '../string/snakeCase.mjs';
-
-function toSnakeCaseKeys(obj) {
-    if (isArray(obj)) {
-        return obj.map(item => toSnakeCaseKeys(item));
-    }
-    if (isPlainObject(obj)) {
-        const result = {};
-        const keys = Object.keys(obj);
-        for (let i = 0; i < keys.length; i++) {
-            const key = keys[i];
-            const snakeKey = snakeCase(key);
-            const convertedValue = toSnakeCaseKeys(obj[key]);
-            result[snakeKey] = convertedValue;
-        }
-        return result;
-    }
-    return obj;
-}
-
-export { toSnakeCaseKeys };
Index: de_modules/es-toolkit/dist/predicate/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-export { isArrayBuffer } from './isArrayBuffer.mjs';
-export { isBlob } from './isBlob.mjs';
-export { isBoolean } from './isBoolean.mjs';
-export { isBrowser } from './isBrowser.mjs';
-export { isBuffer } from './isBuffer.mjs';
-export { isDate } from './isDate.mjs';
-export { isEmptyObject } from './isEmptyObject.mjs';
-export { isEqual } from './isEqual.mjs';
-export { isEqualWith } from './isEqualWith.mjs';
-export { isError } from './isError.mjs';
-export { isFile } from './isFile.mjs';
-export { isFunction } from './isFunction.mjs';
-export { isJSON } from './isJSON.mjs';
-export { isJSONArray, isJSONObject, isJSONValue } from './isJSONValue.mjs';
-export { isLength } from './isLength.mjs';
-export { isMap } from './isMap.mjs';
-export { isNil } from './isNil.mjs';
-export { isNode } from './isNode.mjs';
-export { isNotNil } from './isNotNil.mjs';
-export { isNull } from './isNull.mjs';
-export { isNumber } from './isNumber.mjs';
-export { isPlainObject } from './isPlainObject.mjs';
-export { isPrimitive } from './isPrimitive.mjs';
-export { isPromise } from './isPromise.mjs';
-export { isRegExp } from './isRegExp.mjs';
-export { isSet } from './isSet.mjs';
-export { isString } from './isString.mjs';
-export { isSymbol } from './isSymbol.mjs';
-export { isTypedArray } from './isTypedArray.mjs';
-export { isUndefined } from './isUndefined.mjs';
-export { isWeakMap } from './isWeakMap.mjs';
-export { isWeakSet } from './isWeakSet.mjs';
Index: de_modules/es-toolkit/dist/predicate/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-export { isArrayBuffer } from './isArrayBuffer.js';
-export { isBlob } from './isBlob.js';
-export { isBoolean } from './isBoolean.js';
-export { isBrowser } from './isBrowser.js';
-export { isBuffer } from './isBuffer.js';
-export { isDate } from './isDate.js';
-export { isEmptyObject } from './isEmptyObject.js';
-export { isEqual } from './isEqual.js';
-export { isEqualWith } from './isEqualWith.js';
-export { isError } from './isError.js';
-export { isFile } from './isFile.js';
-export { isFunction } from './isFunction.js';
-export { isJSON } from './isJSON.js';
-export { isJSONArray, isJSONObject, isJSONValue } from './isJSONValue.js';
-export { isLength } from './isLength.js';
-export { isMap } from './isMap.js';
-export { isNil } from './isNil.js';
-export { isNode } from './isNode.js';
-export { isNotNil } from './isNotNil.js';
-export { isNull } from './isNull.js';
-export { isNumber } from './isNumber.js';
-export { isPlainObject } from './isPlainObject.js';
-export { isPrimitive } from './isPrimitive.js';
-export { isPromise } from './isPromise.js';
-export { isRegExp } from './isRegExp.js';
-export { isSet } from './isSet.js';
-export { isString } from './isString.js';
-export { isSymbol } from './isSymbol.js';
-export { isTypedArray } from './isTypedArray.js';
-export { isUndefined } from './isUndefined.js';
-export { isWeakMap } from './isWeakMap.js';
-export { isWeakSet } from './isWeakSet.js';
Index: de_modules/es-toolkit/dist/predicate/index.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isArrayBuffer = require('./isArrayBuffer.js');
-const isBlob = require('./isBlob.js');
-const isBoolean = require('./isBoolean.js');
-const isBrowser = require('./isBrowser.js');
-const isBuffer = require('./isBuffer.js');
-const isDate = require('./isDate.js');
-const isEmptyObject = require('./isEmptyObject.js');
-const isEqual = require('./isEqual.js');
-const isEqualWith = require('./isEqualWith.js');
-const isError = require('./isError.js');
-const isFile = require('./isFile.js');
-const isFunction = require('./isFunction.js');
-const isJSON = require('./isJSON.js');
-const isJSONValue = require('./isJSONValue.js');
-const isLength = require('./isLength.js');
-const isMap = require('./isMap.js');
-const isNil = require('./isNil.js');
-const isNode = require('./isNode.js');
-const isNotNil = require('./isNotNil.js');
-const isNull = require('./isNull.js');
-const isNumber = require('./isNumber.js');
-const isPlainObject = require('./isPlainObject.js');
-const isPrimitive = require('./isPrimitive.js');
-const isPromise = require('./isPromise.js');
-const isRegExp = require('./isRegExp.js');
-const isSet = require('./isSet.js');
-const isString = require('./isString.js');
-const isSymbol = require('./isSymbol.js');
-const isTypedArray = require('./isTypedArray.js');
-const isUndefined = require('./isUndefined.js');
-const isWeakMap = require('./isWeakMap.js');
-const isWeakSet = require('./isWeakSet.js');
-
-
-
-exports.isArrayBuffer = isArrayBuffer.isArrayBuffer;
-exports.isBlob = isBlob.isBlob;
-exports.isBoolean = isBoolean.isBoolean;
-exports.isBrowser = isBrowser.isBrowser;
-exports.isBuffer = isBuffer.isBuffer;
-exports.isDate = isDate.isDate;
-exports.isEmptyObject = isEmptyObject.isEmptyObject;
-exports.isEqual = isEqual.isEqual;
-exports.isEqualWith = isEqualWith.isEqualWith;
-exports.isError = isError.isError;
-exports.isFile = isFile.isFile;
-exports.isFunction = isFunction.isFunction;
-exports.isJSON = isJSON.isJSON;
-exports.isJSONArray = isJSONValue.isJSONArray;
-exports.isJSONObject = isJSONValue.isJSONObject;
-exports.isJSONValue = isJSONValue.isJSONValue;
-exports.isLength = isLength.isLength;
-exports.isMap = isMap.isMap;
-exports.isNil = isNil.isNil;
-exports.isNode = isNode.isNode;
-exports.isNotNil = isNotNil.isNotNil;
-exports.isNull = isNull.isNull;
-exports.isNumber = isNumber.isNumber;
-exports.isPlainObject = isPlainObject.isPlainObject;
-exports.isPrimitive = isPrimitive.isPrimitive;
-exports.isPromise = isPromise.isPromise;
-exports.isRegExp = isRegExp.isRegExp;
-exports.isSet = isSet.isSet;
-exports.isString = isString.isString;
-exports.isSymbol = isSymbol.isSymbol;
-exports.isTypedArray = isTypedArray.isTypedArray;
-exports.isUndefined = isUndefined.isUndefined;
-exports.isWeakMap = isWeakMap.isWeakMap;
-exports.isWeakSet = isWeakSet.isWeakSet;
Index: de_modules/es-toolkit/dist/predicate/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-export { isArrayBuffer } from './isArrayBuffer.mjs';
-export { isBlob } from './isBlob.mjs';
-export { isBoolean } from './isBoolean.mjs';
-export { isBrowser } from './isBrowser.mjs';
-export { isBuffer } from './isBuffer.mjs';
-export { isDate } from './isDate.mjs';
-export { isEmptyObject } from './isEmptyObject.mjs';
-export { isEqual } from './isEqual.mjs';
-export { isEqualWith } from './isEqualWith.mjs';
-export { isError } from './isError.mjs';
-export { isFile } from './isFile.mjs';
-export { isFunction } from './isFunction.mjs';
-export { isJSON } from './isJSON.mjs';
-export { isJSONArray, isJSONObject, isJSONValue } from './isJSONValue.mjs';
-export { isLength } from './isLength.mjs';
-export { isMap } from './isMap.mjs';
-export { isNil } from './isNil.mjs';
-export { isNode } from './isNode.mjs';
-export { isNotNil } from './isNotNil.mjs';
-export { isNull } from './isNull.mjs';
-export { isNumber } from './isNumber.mjs';
-export { isPlainObject } from './isPlainObject.mjs';
-export { isPrimitive } from './isPrimitive.mjs';
-export { isPromise } from './isPromise.mjs';
-export { isRegExp } from './isRegExp.mjs';
-export { isSet } from './isSet.mjs';
-export { isString } from './isString.mjs';
-export { isSymbol } from './isSymbol.mjs';
-export { isTypedArray } from './isTypedArray.mjs';
-export { isUndefined } from './isUndefined.mjs';
-export { isWeakMap } from './isWeakMap.mjs';
-export { isWeakSet } from './isWeakSet.mjs';
Index: de_modules/es-toolkit/dist/predicate/isArrayBuffer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isArrayBuffer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `ArrayBuffer`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `ArrayBuffer`.
- *
- * @param {unknown} value The value to check if it is a `ArrayBuffer`.
- * @returns {value is ArrayBuffer} Returns `true` if `value` is a `ArrayBuffer`, else `false`.
- *
- * @example
- * const value1 = new ArrayBuffer();
- * const value2 = new Array();
- * const value3 = new Map();
- *
- * console.log(isArrayBuffer(value1)); // true
- * console.log(isArrayBuffer(value2)); // false
- * console.log(isArrayBuffer(value3)); // false
- */
-declare function isArrayBuffer(value: unknown): value is ArrayBuffer;
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/predicate/isArrayBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isArrayBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `ArrayBuffer`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `ArrayBuffer`.
- *
- * @param {unknown} value The value to check if it is a `ArrayBuffer`.
- * @returns {value is ArrayBuffer} Returns `true` if `value` is a `ArrayBuffer`, else `false`.
- *
- * @example
- * const value1 = new ArrayBuffer();
- * const value2 = new Array();
- * const value3 = new Map();
- *
- * console.log(isArrayBuffer(value1)); // true
- * console.log(isArrayBuffer(value2)); // false
- * console.log(isArrayBuffer(value3)); // false
- */
-declare function isArrayBuffer(value: unknown): value is ArrayBuffer;
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/predicate/isArrayBuffer.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isArrayBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isArrayBuffer(value) {
-    return value instanceof ArrayBuffer;
-}
-
-exports.isArrayBuffer = isArrayBuffer;
Index: de_modules/es-toolkit/dist/predicate/isArrayBuffer.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isArrayBuffer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isArrayBuffer(value) {
-    return value instanceof ArrayBuffer;
-}
-
-export { isArrayBuffer };
Index: de_modules/es-toolkit/dist/predicate/isBlob.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBlob.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Checks if the given value is a Blob.
- *
- * This function tests whether the provided value is an instance of `Blob`.
- * It returns `true` if the value is an instance of `Blob`, and `false` otherwise.
- *
- * @param {unknown} x - The value to test if it is a Blob.
- * @returns {x is Blob} True if the value is a Blob, false otherwise.
- *
- * @example
- * const value1 = new Blob();
- * const value2 = {};
- *
- * console.log(isBlob(value1)); // true
- * console.log(isBlob(value2)); // false
- */
-declare function isBlob(x: unknown): x is Blob;
-
-export { isBlob };
Index: de_modules/es-toolkit/dist/predicate/isBlob.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBlob.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Checks if the given value is a Blob.
- *
- * This function tests whether the provided value is an instance of `Blob`.
- * It returns `true` if the value is an instance of `Blob`, and `false` otherwise.
- *
- * @param {unknown} x - The value to test if it is a Blob.
- * @returns {x is Blob} True if the value is a Blob, false otherwise.
- *
- * @example
- * const value1 = new Blob();
- * const value2 = {};
- *
- * console.log(isBlob(value1)); // true
- * console.log(isBlob(value2)); // false
- */
-declare function isBlob(x: unknown): x is Blob;
-
-export { isBlob };
Index: de_modules/es-toolkit/dist/predicate/isBlob.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBlob.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isBlob(x) {
-    if (typeof Blob === 'undefined') {
-        return false;
-    }
-    return x instanceof Blob;
-}
-
-exports.isBlob = isBlob;
Index: de_modules/es-toolkit/dist/predicate/isBlob.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBlob.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function isBlob(x) {
-    if (typeof Blob === 'undefined') {
-        return false;
-    }
-    return x instanceof Blob;
-}
-
-export { isBlob };
Index: de_modules/es-toolkit/dist/predicate/isBoolean.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBoolean.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is boolean.
- *
- * This function tests whether the provided value is strictly `boolean`.
- * It returns `true` if the value is `boolean`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `boolean`.
- *
- * @param {unknown} x - The Value to test if it is boolean.
- * @returns {x is boolean} True if the value is boolean, false otherwise.
- *
- * @example
- *
- * const value1 = true;
- * const value2 = 0;
- * const value3 = 'abc';
- *
- * console.log(isBoolean(value1)); // true
- * console.log(isBoolean(value2)); // false
- * console.log(isBoolean(value3)); // false
- *
- */
-declare function isBoolean(x: unknown): x is boolean;
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/predicate/isBoolean.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBoolean.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is boolean.
- *
- * This function tests whether the provided value is strictly `boolean`.
- * It returns `true` if the value is `boolean`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `boolean`.
- *
- * @param {unknown} x - The Value to test if it is boolean.
- * @returns {x is boolean} True if the value is boolean, false otherwise.
- *
- * @example
- *
- * const value1 = true;
- * const value2 = 0;
- * const value3 = 'abc';
- *
- * console.log(isBoolean(value1)); // true
- * console.log(isBoolean(value2)); // false
- * console.log(isBoolean(value3)); // false
- *
- */
-declare function isBoolean(x: unknown): x is boolean;
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/predicate/isBoolean.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBoolean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isBoolean(x) {
-    return typeof x === 'boolean';
-}
-
-exports.isBoolean = isBoolean;
Index: de_modules/es-toolkit/dist/predicate/isBoolean.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBoolean.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isBoolean(x) {
-    return typeof x === 'boolean';
-}
-
-export { isBoolean };
Index: de_modules/es-toolkit/dist/predicate/isBrowser.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBrowser.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the current environment is a browser.
- *
- * This function checks for the existence of the `window.document` property,
- * which only exists in browser environments.
- *
- * @returns {boolean} `true` if the current environment is a browser, otherwise `false`.
- *
- * @example
- * if (isBrowser()) {
- *   console.log("This is running in a browser");
- *   document.getElementById('app').innerHTML = 'Hello World';
- * }
- */
-declare function isBrowser(): boolean;
-
-export { isBrowser };
Index: de_modules/es-toolkit/dist/predicate/isBrowser.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBrowser.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the current environment is a browser.
- *
- * This function checks for the existence of the `window.document` property,
- * which only exists in browser environments.
- *
- * @returns {boolean} `true` if the current environment is a browser, otherwise `false`.
- *
- * @example
- * if (isBrowser()) {
- *   console.log("This is running in a browser");
- *   document.getElementById('app').innerHTML = 'Hello World';
- * }
- */
-declare function isBrowser(): boolean;
-
-export { isBrowser };
Index: de_modules/es-toolkit/dist/predicate/isBrowser.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBrowser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isBrowser() {
-    return typeof window !== 'undefined' && window?.document != null;
-}
-
-exports.isBrowser = isBrowser;
Index: de_modules/es-toolkit/dist/predicate/isBrowser.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBrowser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isBrowser() {
-    return typeof window !== 'undefined' && window?.document != null;
-}
-
-export { isBrowser };
Index: de_modules/es-toolkit/dist/predicate/isBuffer.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBuffer.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a Buffer instance.
- *
- * This function tests whether the provided value is an instance of Buffer.
- * It returns `true` if the value is a Buffer, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.
- *
- * @param {unknown} x - The value to check if it is a Buffer.
- * @returns {boolean} Returns `true` if `x` is a Buffer, else `false`.
- *
- * @example
- * const buffer = Buffer.from("test");
- * console.log(isBuffer(buffer)); // true
- *
- * const notBuffer = "not a buffer";
- * console.log(isBuffer(notBuffer)); // false
- */
-declare function isBuffer(x: unknown): boolean;
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/predicate/isBuffer.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBuffer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a Buffer instance.
- *
- * This function tests whether the provided value is an instance of Buffer.
- * It returns `true` if the value is a Buffer, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.
- *
- * @param {unknown} x - The value to check if it is a Buffer.
- * @returns {boolean} Returns `true` if `x` is a Buffer, else `false`.
- *
- * @example
- * const buffer = Buffer.from("test");
- * console.log(isBuffer(buffer)); // true
- *
- * const notBuffer = "not a buffer";
- * console.log(isBuffer(notBuffer)); // false
- */
-declare function isBuffer(x: unknown): boolean;
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/predicate/isBuffer.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBuffer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isBuffer(x) {
-    return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);
-}
-
-exports.isBuffer = isBuffer;
Index: de_modules/es-toolkit/dist/predicate/isBuffer.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isBuffer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isBuffer(x) {
-    return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);
-}
-
-export { isBuffer };
Index: de_modules/es-toolkit/dist/predicate/isDate.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isDate.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a Date object.
- *
- * @param {unknown} value The value to check.
- * @returns {value is Date} Returns `true` if `value` is a Date object, `false` otherwise.
- *
- * @example
- * const value1 = new Date();
- * const value2 = '2024-01-01';
- *
- * console.log(isDate(value1)); // true
- * console.log(isDate(value2)); // false
- */
-declare function isDate(value: unknown): value is Date;
-
-export { isDate };
Index: de_modules/es-toolkit/dist/predicate/isDate.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isDate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a Date object.
- *
- * @param {unknown} value The value to check.
- * @returns {value is Date} Returns `true` if `value` is a Date object, `false` otherwise.
- *
- * @example
- * const value1 = new Date();
- * const value2 = '2024-01-01';
- *
- * console.log(isDate(value1)); // true
- * console.log(isDate(value2)); // false
- */
-declare function isDate(value: unknown): value is Date;
-
-export { isDate };
Index: de_modules/es-toolkit/dist/predicate/isDate.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isDate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isDate(value) {
-    return value instanceof Date;
-}
-
-exports.isDate = isDate;
Index: de_modules/es-toolkit/dist/predicate/isDate.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isDate.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isDate(value) {
-    return value instanceof Date;
-}
-
-export { isDate };
Index: de_modules/es-toolkit/dist/predicate/isEmptyObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEmptyObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if a value is an empty plain object.
- *
- * @param {unknown} value - The value to check.
- * @returns {value is Record<PropertyKey, never>} - True if the value is an empty plain object, otherwise false.
- *
- * @example
- * isEmptyObject({}); // true
- * isEmptyObject({ a: 1 }); // false
- * isEmptyObject([]); // false
- * isEmptyObject(null); // false
- */
-declare function isEmptyObject(value: unknown): value is Record<PropertyKey, never>;
-
-export { isEmptyObject };
Index: de_modules/es-toolkit/dist/predicate/isEmptyObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEmptyObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Checks if a value is an empty plain object.
- *
- * @param {unknown} value - The value to check.
- * @returns {value is Record<PropertyKey, never>} - True if the value is an empty plain object, otherwise false.
- *
- * @example
- * isEmptyObject({}); // true
- * isEmptyObject({ a: 1 }); // false
- * isEmptyObject([]); // false
- * isEmptyObject(null); // false
- */
-declare function isEmptyObject(value: unknown): value is Record<PropertyKey, never>;
-
-export { isEmptyObject };
Index: de_modules/es-toolkit/dist/predicate/isEmptyObject.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEmptyObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPlainObject = require('./isPlainObject.js');
-
-function isEmptyObject(value) {
-    return isPlainObject.isPlainObject(value) && Object.keys(value).length === 0;
-}
-
-exports.isEmptyObject = isEmptyObject;
Index: de_modules/es-toolkit/dist/predicate/isEmptyObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEmptyObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isPlainObject } from './isPlainObject.mjs';
-
-function isEmptyObject(value) {
-    return isPlainObject(value) && Object.keys(value).length === 0;
-}
-
-export { isEmptyObject };
Index: de_modules/es-toolkit/dist/predicate/isEqual.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqual.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if two values are equal, including support for `Date`, `RegExp`, and deep object comparison.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @returns {boolean} `true` if the values are equal, otherwise `false`.
- *
- * @example
- * isEqual(1, 1); // true
- * isEqual({ a: 1 }, { a: 1 }); // true
- * isEqual(/abc/g, /abc/g); // true
- * isEqual(new Date('2020-01-01'), new Date('2020-01-01')); // true
- * isEqual([1, 2, 3], [1, 2, 3]); // true
- */
-declare function isEqual(a: any, b: any): boolean;
-
-export { isEqual };
Index: de_modules/es-toolkit/dist/predicate/isEqual.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqual.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if two values are equal, including support for `Date`, `RegExp`, and deep object comparison.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @returns {boolean} `true` if the values are equal, otherwise `false`.
- *
- * @example
- * isEqual(1, 1); // true
- * isEqual({ a: 1 }, { a: 1 }); // true
- * isEqual(/abc/g, /abc/g); // true
- * isEqual(new Date('2020-01-01'), new Date('2020-01-01')); // true
- * isEqual([1, 2, 3], [1, 2, 3]); // true
- */
-declare function isEqual(a: any, b: any): boolean;
-
-export { isEqual };
Index: de_modules/es-toolkit/dist/predicate/isEqual.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isEqualWith = require('./isEqualWith.js');
-const noop = require('../function/noop.js');
-
-function isEqual(a, b) {
-    return isEqualWith.isEqualWith(a, b, noop.noop);
-}
-
-exports.isEqual = isEqual;
Index: de_modules/es-toolkit/dist/predicate/isEqual.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqual.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { isEqualWith } from './isEqualWith.mjs';
-import { noop } from '../function/noop.mjs';
-
-function isEqual(a, b) {
-    return isEqualWith(a, b, noop);
-}
-
-export { isEqual };
Index: de_modules/es-toolkit/dist/predicate/isEqualWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqualWith.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Compares two values for equality using a custom comparison function.
- *
- * The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.
- *
- * This function also uses the custom equality function to compare values inside objects,
- * arrays, maps, sets, and other complex structures, ensuring a deep comparison.
- *
- * This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.
- *
- * The custom comparison function can take up to six parameters:
- * - `x`: The value from the first object `a`.
- * - `y`: The value from the second object `b`.
- * - `property`: The property key used to get `x` and `y`.
- * - `xParent`: The parent of the first value `x`.
- * - `yParent`: The parent of the second value `y`.
- * - `stack`: An internal stack (Map) to handle circular references.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @param {(x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void} areValuesEqual - A function to customize the comparison.
- *   If it returns a boolean, that result will be used. If it returns undefined,
- *   the default equality comparison will be used.
- * @returns {boolean} `true` if the values are equal according to the customizer, otherwise `false`.
- *
- * @example
- * const customizer = (a, b) => {
- *   if (typeof a === 'string' && typeof b === 'string') {
- *     return a.toLowerCase() === b.toLowerCase();
- *   }
- * };
- * isEqualWith('Hello', 'hello', customizer); // true
- * isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true
- * isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true
- */
-declare function isEqualWith(a: any, b: any, areValuesEqual: (x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void): boolean;
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/predicate/isEqualWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqualWith.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/**
- * Compares two values for equality using a custom comparison function.
- *
- * The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.
- *
- * This function also uses the custom equality function to compare values inside objects,
- * arrays, maps, sets, and other complex structures, ensuring a deep comparison.
- *
- * This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.
- *
- * The custom comparison function can take up to six parameters:
- * - `x`: The value from the first object `a`.
- * - `y`: The value from the second object `b`.
- * - `property`: The property key used to get `x` and `y`.
- * - `xParent`: The parent of the first value `x`.
- * - `yParent`: The parent of the second value `y`.
- * - `stack`: An internal stack (Map) to handle circular references.
- *
- * @param {unknown} a - The first value to compare.
- * @param {unknown} b - The second value to compare.
- * @param {(x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void} areValuesEqual - A function to customize the comparison.
- *   If it returns a boolean, that result will be used. If it returns undefined,
- *   the default equality comparison will be used.
- * @returns {boolean} `true` if the values are equal according to the customizer, otherwise `false`.
- *
- * @example
- * const customizer = (a, b) => {
- *   if (typeof a === 'string' && typeof b === 'string') {
- *     return a.toLowerCase() === b.toLowerCase();
- *   }
- * };
- * isEqualWith('Hello', 'hello', customizer); // true
- * isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true
- * isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true
- */
-declare function isEqualWith(a: any, b: any, areValuesEqual: (x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void): boolean;
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/predicate/isEqualWith.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqualWith.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,189 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPlainObject = require('./isPlainObject.js');
-const getSymbols = require('../compat/_internal/getSymbols.js');
-const getTag = require('../compat/_internal/getTag.js');
-const tags = require('../compat/_internal/tags.js');
-const isEqualsSameValueZero = require('../_internal/isEqualsSameValueZero.js');
-
-function isEqualWith(a, b, areValuesEqual) {
-    return isEqualWithImpl(a, b, undefined, undefined, undefined, undefined, areValuesEqual);
-}
-function isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {
-    const result = areValuesEqual(a, b, property, aParent, bParent, stack);
-    if (result !== undefined) {
-        return result;
-    }
-    if (typeof a === typeof b) {
-        switch (typeof a) {
-            case 'bigint':
-            case 'string':
-            case 'boolean':
-            case 'symbol':
-            case 'undefined': {
-                return a === b;
-            }
-            case 'number': {
-                return a === b || Object.is(a, b);
-            }
-            case 'function': {
-                return a === b;
-            }
-            case 'object': {
-                return areObjectsEqual(a, b, stack, areValuesEqual);
-            }
-        }
-    }
-    return areObjectsEqual(a, b, stack, areValuesEqual);
-}
-function areObjectsEqual(a, b, stack, areValuesEqual) {
-    if (Object.is(a, b)) {
-        return true;
-    }
-    let aTag = getTag.getTag(a);
-    let bTag = getTag.getTag(b);
-    if (aTag === tags.argumentsTag) {
-        aTag = tags.objectTag;
-    }
-    if (bTag === tags.argumentsTag) {
-        bTag = tags.objectTag;
-    }
-    if (aTag !== bTag) {
-        return false;
-    }
-    switch (aTag) {
-        case tags.stringTag:
-            return a.toString() === b.toString();
-        case tags.numberTag: {
-            const x = a.valueOf();
-            const y = b.valueOf();
-            return isEqualsSameValueZero.isEqualsSameValueZero(x, y);
-        }
-        case tags.booleanTag:
-        case tags.dateTag:
-        case tags.symbolTag:
-            return Object.is(a.valueOf(), b.valueOf());
-        case tags.regexpTag: {
-            return a.source === b.source && a.flags === b.flags;
-        }
-        case tags.functionTag: {
-            return a === b;
-        }
-    }
-    stack = stack ?? new Map();
-    const aStack = stack.get(a);
-    const bStack = stack.get(b);
-    if (aStack != null && bStack != null) {
-        return aStack === b;
-    }
-    stack.set(a, b);
-    stack.set(b, a);
-    try {
-        switch (aTag) {
-            case tags.mapTag: {
-                if (a.size !== b.size) {
-                    return false;
-                }
-                for (const [key, value] of a.entries()) {
-                    if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            case tags.setTag: {
-                if (a.size !== b.size) {
-                    return false;
-                }
-                const aValues = Array.from(a.values());
-                const bValues = Array.from(b.values());
-                for (let i = 0; i < aValues.length; i++) {
-                    const aValue = aValues[i];
-                    const index = bValues.findIndex(bValue => {
-                        return isEqualWithImpl(aValue, bValue, undefined, a, b, stack, areValuesEqual);
-                    });
-                    if (index === -1) {
-                        return false;
-                    }
-                    bValues.splice(index, 1);
-                }
-                return true;
-            }
-            case tags.arrayTag:
-            case tags.uint8ArrayTag:
-            case tags.uint8ClampedArrayTag:
-            case tags.uint16ArrayTag:
-            case tags.uint32ArrayTag:
-            case tags.bigUint64ArrayTag:
-            case tags.int8ArrayTag:
-            case tags.int16ArrayTag:
-            case tags.int32ArrayTag:
-            case tags.bigInt64ArrayTag:
-            case tags.float32ArrayTag:
-            case tags.float64ArrayTag: {
-                if (typeof Buffer !== 'undefined' && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {
-                    return false;
-                }
-                if (a.length !== b.length) {
-                    return false;
-                }
-                for (let i = 0; i < a.length; i++) {
-                    if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            case tags.arrayBufferTag: {
-                if (a.byteLength !== b.byteLength) {
-                    return false;
-                }
-                return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
-            }
-            case tags.dataViewTag: {
-                if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {
-                    return false;
-                }
-                return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
-            }
-            case tags.errorTag: {
-                return a.name === b.name && a.message === b.message;
-            }
-            case tags.objectTag: {
-                const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) ||
-                    (isPlainObject.isPlainObject(a) && isPlainObject.isPlainObject(b));
-                if (!areEqualInstances) {
-                    return false;
-                }
-                const aKeys = [...Object.keys(a), ...getSymbols.getSymbols(a)];
-                const bKeys = [...Object.keys(b), ...getSymbols.getSymbols(b)];
-                if (aKeys.length !== bKeys.length) {
-                    return false;
-                }
-                for (let i = 0; i < aKeys.length; i++) {
-                    const propKey = aKeys[i];
-                    const aProp = a[propKey];
-                    if (!Object.hasOwn(b, propKey)) {
-                        return false;
-                    }
-                    const bProp = b[propKey];
-                    if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            default: {
-                return false;
-            }
-        }
-    }
-    finally {
-        stack.delete(a);
-        stack.delete(b);
-    }
-}
-
-exports.isEqualWith = isEqualWith;
Index: de_modules/es-toolkit/dist/predicate/isEqualWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isEqualWith.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,185 +1,0 @@
-import { isPlainObject } from './isPlainObject.mjs';
-import { getSymbols } from '../compat/_internal/getSymbols.mjs';
-import { getTag } from '../compat/_internal/getTag.mjs';
-import { functionTag, regexpTag, symbolTag, dateTag, booleanTag, numberTag, stringTag, objectTag, errorTag, dataViewTag, arrayBufferTag, float64ArrayTag, float32ArrayTag, bigInt64ArrayTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, bigUint64ArrayTag, uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, arrayTag, setTag, mapTag, argumentsTag } from '../compat/_internal/tags.mjs';
-import { isEqualsSameValueZero } from '../_internal/isEqualsSameValueZero.mjs';
-
-function isEqualWith(a, b, areValuesEqual) {
-    return isEqualWithImpl(a, b, undefined, undefined, undefined, undefined, areValuesEqual);
-}
-function isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {
-    const result = areValuesEqual(a, b, property, aParent, bParent, stack);
-    if (result !== undefined) {
-        return result;
-    }
-    if (typeof a === typeof b) {
-        switch (typeof a) {
-            case 'bigint':
-            case 'string':
-            case 'boolean':
-            case 'symbol':
-            case 'undefined': {
-                return a === b;
-            }
-            case 'number': {
-                return a === b || Object.is(a, b);
-            }
-            case 'function': {
-                return a === b;
-            }
-            case 'object': {
-                return areObjectsEqual(a, b, stack, areValuesEqual);
-            }
-        }
-    }
-    return areObjectsEqual(a, b, stack, areValuesEqual);
-}
-function areObjectsEqual(a, b, stack, areValuesEqual) {
-    if (Object.is(a, b)) {
-        return true;
-    }
-    let aTag = getTag(a);
-    let bTag = getTag(b);
-    if (aTag === argumentsTag) {
-        aTag = objectTag;
-    }
-    if (bTag === argumentsTag) {
-        bTag = objectTag;
-    }
-    if (aTag !== bTag) {
-        return false;
-    }
-    switch (aTag) {
-        case stringTag:
-            return a.toString() === b.toString();
-        case numberTag: {
-            const x = a.valueOf();
-            const y = b.valueOf();
-            return isEqualsSameValueZero(x, y);
-        }
-        case booleanTag:
-        case dateTag:
-        case symbolTag:
-            return Object.is(a.valueOf(), b.valueOf());
-        case regexpTag: {
-            return a.source === b.source && a.flags === b.flags;
-        }
-        case functionTag: {
-            return a === b;
-        }
-    }
-    stack = stack ?? new Map();
-    const aStack = stack.get(a);
-    const bStack = stack.get(b);
-    if (aStack != null && bStack != null) {
-        return aStack === b;
-    }
-    stack.set(a, b);
-    stack.set(b, a);
-    try {
-        switch (aTag) {
-            case mapTag: {
-                if (a.size !== b.size) {
-                    return false;
-                }
-                for (const [key, value] of a.entries()) {
-                    if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            case setTag: {
-                if (a.size !== b.size) {
-                    return false;
-                }
-                const aValues = Array.from(a.values());
-                const bValues = Array.from(b.values());
-                for (let i = 0; i < aValues.length; i++) {
-                    const aValue = aValues[i];
-                    const index = bValues.findIndex(bValue => {
-                        return isEqualWithImpl(aValue, bValue, undefined, a, b, stack, areValuesEqual);
-                    });
-                    if (index === -1) {
-                        return false;
-                    }
-                    bValues.splice(index, 1);
-                }
-                return true;
-            }
-            case arrayTag:
-            case uint8ArrayTag:
-            case uint8ClampedArrayTag:
-            case uint16ArrayTag:
-            case uint32ArrayTag:
-            case bigUint64ArrayTag:
-            case int8ArrayTag:
-            case int16ArrayTag:
-            case int32ArrayTag:
-            case bigInt64ArrayTag:
-            case float32ArrayTag:
-            case float64ArrayTag: {
-                if (typeof Buffer !== 'undefined' && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {
-                    return false;
-                }
-                if (a.length !== b.length) {
-                    return false;
-                }
-                for (let i = 0; i < a.length; i++) {
-                    if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            case arrayBufferTag: {
-                if (a.byteLength !== b.byteLength) {
-                    return false;
-                }
-                return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
-            }
-            case dataViewTag: {
-                if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {
-                    return false;
-                }
-                return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
-            }
-            case errorTag: {
-                return a.name === b.name && a.message === b.message;
-            }
-            case objectTag: {
-                const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) ||
-                    (isPlainObject(a) && isPlainObject(b));
-                if (!areEqualInstances) {
-                    return false;
-                }
-                const aKeys = [...Object.keys(a), ...getSymbols(a)];
-                const bKeys = [...Object.keys(b), ...getSymbols(b)];
-                if (aKeys.length !== bKeys.length) {
-                    return false;
-                }
-                for (let i = 0; i < aKeys.length; i++) {
-                    const propKey = aKeys[i];
-                    const aProp = a[propKey];
-                    if (!Object.hasOwn(b, propKey)) {
-                        return false;
-                    }
-                    const bProp = b[propKey];
-                    if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {
-                        return false;
-                    }
-                }
-                return true;
-            }
-            default: {
-                return false;
-            }
-        }
-    }
-    finally {
-        stack.delete(a);
-        stack.delete(b);
-    }
-}
-
-export { isEqualWith };
Index: de_modules/es-toolkit/dist/predicate/isError.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isError.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is an Error object.
- *
- * @param {unknown} value The value to check.
- * @returns {value is Error} Returns `true` if `value` is an Error object, `false` otherwise.
- *
- * @example
- * ```typescript
- * console.log(isError(new Error())); // true
- * console.log(isError('Error')); // false
- * console.log(isError({ name: 'Error', message: '' })); // false
- * ```
- */
-declare function isError(value: unknown): value is Error;
-
-export { isError };
Index: de_modules/es-toolkit/dist/predicate/isError.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isError.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is an Error object.
- *
- * @param {unknown} value The value to check.
- * @returns {value is Error} Returns `true` if `value` is an Error object, `false` otherwise.
- *
- * @example
- * ```typescript
- * console.log(isError(new Error())); // true
- * console.log(isError('Error')); // false
- * console.log(isError({ name: 'Error', message: '' })); // false
- * ```
- */
-declare function isError(value: unknown): value is Error;
-
-export { isError };
Index: de_modules/es-toolkit/dist/predicate/isError.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isError.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isError(value) {
-    return value instanceof Error;
-}
-
-exports.isError = isError;
Index: de_modules/es-toolkit/dist/predicate/isError.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isError.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isError(value) {
-    return value instanceof Error;
-}
-
-export { isError };
Index: de_modules/es-toolkit/dist/predicate/isFile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFile.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a File.
- *
- * This function tests whether the provided value is an instance of `File`.
- * It returns `true` if the value is an instance of `File`, and `false` otherwise.
- *
- * @param {unknown} x - The value to test if it is a File.
- * @returns {x is File} True if the value is a File, false otherwise.
- *
- * @example
- * const value1 = new File(["content"], "example.txt");
- * const value2 = {};
- * const value3 = new Blob(["content"], { type: "text/plain" });
- *
- * console.log(isFile(value1)); // true
- * console.log(isFile(value2)); // false
- * console.log(isFile(value3)); // false
- */
-declare function isFile(x: unknown): x is File;
-
-export { isFile };
Index: de_modules/es-toolkit/dist/predicate/isFile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFile.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Checks if the given value is a File.
- *
- * This function tests whether the provided value is an instance of `File`.
- * It returns `true` if the value is an instance of `File`, and `false` otherwise.
- *
- * @param {unknown} x - The value to test if it is a File.
- * @returns {x is File} True if the value is a File, false otherwise.
- *
- * @example
- * const value1 = new File(["content"], "example.txt");
- * const value2 = {};
- * const value3 = new Blob(["content"], { type: "text/plain" });
- *
- * console.log(isFile(value1)); // true
- * console.log(isFile(value2)); // false
- * console.log(isFile(value3)); // false
- */
-declare function isFile(x: unknown): x is File;
-
-export { isFile };
Index: de_modules/es-toolkit/dist/predicate/isFile.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isBlob = require('./isBlob.js');
-
-function isFile(x) {
-    if (typeof File === 'undefined') {
-        return false;
-    }
-    return isBlob.isBlob(x) && x instanceof File;
-}
-
-exports.isFile = isFile;
Index: de_modules/es-toolkit/dist/predicate/isFile.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFile.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { isBlob } from './isBlob.mjs';
-
-function isFile(x) {
-    if (typeof File === 'undefined') {
-        return false;
-    }
-    return isBlob(x) && x instanceof File;
-}
-
-export { isFile };
Index: de_modules/es-toolkit/dist/predicate/isFunction.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFunction.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a function.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- *
- * @example
- * isFunction(Array.prototype.slice); // true
- * isFunction(async function () {}); // true
- * isFunction(function* () {}); // true
- * isFunction(Proxy); // true
- * isFunction(Int8Array); // true
- */
-declare function isFunction(value: any): value is (...args: any[]) => any;
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/predicate/isFunction.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFunction.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a function.
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- *
- * @example
- * isFunction(Array.prototype.slice); // true
- * isFunction(async function () {}); // true
- * isFunction(function* () {}); // true
- * isFunction(Proxy); // true
- * isFunction(Int8Array); // true
- */
-declare function isFunction(value: any): value is (...args: any[]) => any;
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/predicate/isFunction.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFunction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isFunction(value) {
-    return typeof value === 'function';
-}
-
-exports.isFunction = isFunction;
Index: de_modules/es-toolkit/dist/predicate/isFunction.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isFunction.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isFunction(value) {
-    return typeof value === 'function';
-}
-
-export { isFunction };
Index: de_modules/es-toolkit/dist/predicate/isJSON.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSON.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks if a given value is a valid JSON string.
- *
- * A valid JSON string is one that can be successfully parsed using `JSON.parse()`. According to JSON
- * specifications, valid JSON can represent:
- * - Objects (with string keys and valid JSON values)
- * - Arrays (containing valid JSON values)
- * - Strings
- * - Numbers
- * - Booleans
- * - null
- *
- * String values like `"null"`, `"true"`, `"false"`, and numeric strings (e.g., `"42"`) are considered
- * valid JSON and will return true.
- *
- * This function serves as a type guard in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid JSON string, else `false`.
- *
- * @example
- * isJSON('{"name":"John","age":30}'); // true
- * isJSON('[1,2,3]'); // true
- * isJSON('true'); // true
- * isJSON('invalid json'); // false
- * isJSON({ name: 'John' }); // false (not a string)
- * isJSON(null); // false (not a string)
- */
-declare function isJSON(value: unknown): value is string;
-
-export { isJSON };
Index: de_modules/es-toolkit/dist/predicate/isJSON.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSON.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks if a given value is a valid JSON string.
- *
- * A valid JSON string is one that can be successfully parsed using `JSON.parse()`. According to JSON
- * specifications, valid JSON can represent:
- * - Objects (with string keys and valid JSON values)
- * - Arrays (containing valid JSON values)
- * - Strings
- * - Numbers
- * - Booleans
- * - null
- *
- * String values like `"null"`, `"true"`, `"false"`, and numeric strings (e.g., `"42"`) are considered
- * valid JSON and will return true.
- *
- * This function serves as a type guard in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid JSON string, else `false`.
- *
- * @example
- * isJSON('{"name":"John","age":30}'); // true
- * isJSON('[1,2,3]'); // true
- * isJSON('true'); // true
- * isJSON('invalid json'); // false
- * isJSON({ name: 'John' }); // false (not a string)
- * isJSON(null); // false (not a string)
- */
-declare function isJSON(value: unknown): value is string;
-
-export { isJSON };
Index: de_modules/es-toolkit/dist/predicate/isJSON.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSON.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isJSON(value) {
-    if (typeof value !== 'string') {
-        return false;
-    }
-    try {
-        JSON.parse(value);
-        return true;
-    }
-    catch {
-        return false;
-    }
-}
-
-exports.isJSON = isJSON;
Index: de_modules/es-toolkit/dist/predicate/isJSON.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSON.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function isJSON(value) {
-    if (typeof value !== 'string') {
-        return false;
-    }
-    try {
-        JSON.parse(value);
-        return true;
-    }
-    catch {
-        return false;
-    }
-}
-
-export { isJSON };
Index: de_modules/es-toolkit/dist/predicate/isJSONValue.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSONValue.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/**
- * Checks if a given value is a valid JSON value.
- *
- * A valid JSON value can be:
- * - null
- * - a JSON object (an object with string keys and valid JSON values)
- * - a JSON array (an array of valid JSON values)
- * - a string
- * - a number
- * - a boolean
- *
- * @param {unknown} value - The value to check.
- * @returns {boolean} - True if the value is a valid JSON value, otherwise false.
- *
- * @example
- * console.log(isJSONValue(null)); // true
- * console.log(isJSONValue({ key: "value" })); // true
- * console.log(isJSONValue([1, 2, 3])); // true
- * console.log(isJSONValue("Hello")); // true
- * console.log(isJSONValue(42)); // true
- * console.log(isJSONValue(true)); // true
- * console.log(isJSONValue(undefined)); // false
- * console.log(isJSONValue(() => {})); // false
- */
-declare function isJSONValue(value: unknown): value is Record<string, any> | any[] | string | number | boolean | null;
-/**
- * Checks if a given value is a valid JSON array.
- *
- * A valid JSON array is defined as an array where all items are valid JSON values.
- *
- * @param {unknown} value - The value to check.
- * @returns {value is any[]} - True if the value is a valid JSON array, otherwise false.
- *
- * @example
- * console.log(isJSONArray([1, 2, 3])); // true
- * console.log(isJSONArray(["string", null, true])); // true
- * console.log(isJSONArray([1, 2, () => {}])); // false
- * console.log(isJSONArray("not an array")); // false
- */
-declare function isJSONArray(value: unknown): value is any[];
-/**
- * Checks if a value is a JSON object.
- *
- * A valid JSON object is defined as an object with string keys and valid JSON values.
- *
- * @param {unknown} obj The value to check.
- * @returns {obj is Record<string, any>} True if `obj` is a JSON object, false otherwise.
- *
- * @example
- * isJSONObject({ nested: { boolean: true, array: [1, 2, 3], string: 'test', null: null } }); // true
- * isJSONObject({ regexp: /test/ }); // false
- * isJSONObject(123); // false
- */
-declare function isJSONObject(obj: unknown): obj is Record<string, any>;
-
-export { isJSONArray, isJSONObject, isJSONValue };
Index: de_modules/es-toolkit/dist/predicate/isJSONValue.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSONValue.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/**
- * Checks if a given value is a valid JSON value.
- *
- * A valid JSON value can be:
- * - null
- * - a JSON object (an object with string keys and valid JSON values)
- * - a JSON array (an array of valid JSON values)
- * - a string
- * - a number
- * - a boolean
- *
- * @param {unknown} value - The value to check.
- * @returns {boolean} - True if the value is a valid JSON value, otherwise false.
- *
- * @example
- * console.log(isJSONValue(null)); // true
- * console.log(isJSONValue({ key: "value" })); // true
- * console.log(isJSONValue([1, 2, 3])); // true
- * console.log(isJSONValue("Hello")); // true
- * console.log(isJSONValue(42)); // true
- * console.log(isJSONValue(true)); // true
- * console.log(isJSONValue(undefined)); // false
- * console.log(isJSONValue(() => {})); // false
- */
-declare function isJSONValue(value: unknown): value is Record<string, any> | any[] | string | number | boolean | null;
-/**
- * Checks if a given value is a valid JSON array.
- *
- * A valid JSON array is defined as an array where all items are valid JSON values.
- *
- * @param {unknown} value - The value to check.
- * @returns {value is any[]} - True if the value is a valid JSON array, otherwise false.
- *
- * @example
- * console.log(isJSONArray([1, 2, 3])); // true
- * console.log(isJSONArray(["string", null, true])); // true
- * console.log(isJSONArray([1, 2, () => {}])); // false
- * console.log(isJSONArray("not an array")); // false
- */
-declare function isJSONArray(value: unknown): value is any[];
-/**
- * Checks if a value is a JSON object.
- *
- * A valid JSON object is defined as an object with string keys and valid JSON values.
- *
- * @param {unknown} obj The value to check.
- * @returns {obj is Record<string, any>} True if `obj` is a JSON object, false otherwise.
- *
- * @example
- * isJSONObject({ nested: { boolean: true, array: [1, 2, 3], string: 'test', null: null } }); // true
- * isJSONObject({ regexp: /test/ }); // false
- * isJSONObject(123); // false
- */
-declare function isJSONObject(obj: unknown): obj is Record<string, any>;
-
-export { isJSONArray, isJSONObject, isJSONValue };
Index: de_modules/es-toolkit/dist/predicate/isJSONValue.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSONValue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const isPlainObject = require('./isPlainObject.js');
-
-function isJSONValue(value) {
-    switch (typeof value) {
-        case 'object': {
-            return value === null || isJSONArray(value) || isJSONObject(value);
-        }
-        case 'string':
-        case 'number':
-        case 'boolean': {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-function isJSONArray(value) {
-    if (!Array.isArray(value)) {
-        return false;
-    }
-    return value.every(item => isJSONValue(item));
-}
-function isJSONObject(obj) {
-    if (!isPlainObject.isPlainObject(obj)) {
-        return false;
-    }
-    const keys = Reflect.ownKeys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (typeof key !== 'string') {
-            return false;
-        }
-        if (!isJSONValue(value)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-exports.isJSONArray = isJSONArray;
-exports.isJSONObject = isJSONObject;
-exports.isJSONValue = isJSONValue;
Index: de_modules/es-toolkit/dist/predicate/isJSONValue.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isJSONValue.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { isPlainObject } from './isPlainObject.mjs';
-
-function isJSONValue(value) {
-    switch (typeof value) {
-        case 'object': {
-            return value === null || isJSONArray(value) || isJSONObject(value);
-        }
-        case 'string':
-        case 'number':
-        case 'boolean': {
-            return true;
-        }
-        default: {
-            return false;
-        }
-    }
-}
-function isJSONArray(value) {
-    if (!Array.isArray(value)) {
-        return false;
-    }
-    return value.every(item => isJSONValue(item));
-}
-function isJSONObject(obj) {
-    if (!isPlainObject(obj)) {
-        return false;
-    }
-    const keys = Reflect.ownKeys(obj);
-    for (let i = 0; i < keys.length; i++) {
-        const key = keys[i];
-        const value = obj[key];
-        if (typeof key !== 'string') {
-            return false;
-        }
-        if (!isJSONValue(value)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-export { isJSONArray, isJSONObject, isJSONValue };
Index: de_modules/es-toolkit/dist/predicate/isLength.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isLength.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Checks if a given value is a valid length.
- *
- * A valid length is of type `number`, is a non-negative integer, and is less than or equal to
- * JavaScript's maximum safe integer (`Number.MAX_SAFE_INTEGER`).
- * It returns `true` if the value is a valid length, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the
- * argument to a valid length (`number`).
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- *
- * @example
- * isLength(0); // true
- * isLength(42); // true
- * isLength(-1); // false
- * isLength(1.5); // false
- * isLength(Number.MAX_SAFE_INTEGER); // true
- * isLength(Number.MAX_SAFE_INTEGER + 1); // false
- */
-declare function isLength(value?: any): boolean;
-
-export { isLength };
Index: de_modules/es-toolkit/dist/predicate/isLength.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isLength.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Checks if a given value is a valid length.
- *
- * A valid length is of type `number`, is a non-negative integer, and is less than or equal to
- * JavaScript's maximum safe integer (`Number.MAX_SAFE_INTEGER`).
- * It returns `true` if the value is a valid length, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the
- * argument to a valid length (`number`).
- *
- * @param {any} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- *
- * @example
- * isLength(0); // true
- * isLength(42); // true
- * isLength(-1); // false
- * isLength(1.5); // false
- * isLength(Number.MAX_SAFE_INTEGER); // true
- * isLength(Number.MAX_SAFE_INTEGER + 1); // false
- */
-declare function isLength(value?: any): boolean;
-
-export { isLength };
Index: de_modules/es-toolkit/dist/predicate/isLength.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isLength.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isLength(value) {
-    return Number.isSafeInteger(value) && value >= 0;
-}
-
-exports.isLength = isLength;
Index: de_modules/es-toolkit/dist/predicate/isLength.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isLength.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isLength(value) {
-    return Number.isSafeInteger(value) && value >= 0;
-}
-
-export { isLength };
Index: de_modules/es-toolkit/dist/predicate/isMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Map`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Map`.
- *
- * @param {unknown} value The value to check if it is a `Map`.
- * @returns {value is Map<any, any>} Returns `true` if `value` is a `Map`, else `false`.
- *
- * @example
- * const value1 = new Map();
- * const value2 = new Set();
- * const value3 = new WeakMap();
- *
- * console.log(isMap(value1)); // true
- * console.log(isMap(value2)); // false
- * console.log(isMap(value3)); // false
- */
-declare function isMap(value: unknown): value is Map<any, any>;
-
-export { isMap };
Index: de_modules/es-toolkit/dist/predicate/isMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Map`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Map`.
- *
- * @param {unknown} value The value to check if it is a `Map`.
- * @returns {value is Map<any, any>} Returns `true` if `value` is a `Map`, else `false`.
- *
- * @example
- * const value1 = new Map();
- * const value2 = new Set();
- * const value3 = new WeakMap();
- *
- * console.log(isMap(value1)); // true
- * console.log(isMap(value2)); // false
- * console.log(isMap(value3)); // false
- */
-declare function isMap(value: unknown): value is Map<any, any>;
-
-export { isMap };
Index: de_modules/es-toolkit/dist/predicate/isMap.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isMap(value) {
-    return value instanceof Map;
-}
-
-exports.isMap = isMap;
Index: de_modules/es-toolkit/dist/predicate/isMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isMap(value) {
-    return value instanceof Map;
-}
-
-export { isMap };
Index: de_modules/es-toolkit/dist/predicate/isNil.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNil.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a given value is null or undefined.
- *
- * This function tests whether the provided value is either `null` or `undefined`.
- * It returns `true` if the value is `null` or `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null` or `undefined`.
- *
- * @param {unknown} x - The value to test for null or undefined.
- * @returns {boolean} `true` if the value is null or undefined, `false` otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- * const result1 = isNil(value1); // true
- * const result2 = isNil(value2); // true
- * const result3 = isNil(value3); // false
- */
-declare function isNil(x: unknown): x is null | undefined;
-
-export { isNil };
Index: de_modules/es-toolkit/dist/predicate/isNil.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Checks if a given value is null or undefined.
- *
- * This function tests whether the provided value is either `null` or `undefined`.
- * It returns `true` if the value is `null` or `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null` or `undefined`.
- *
- * @param {unknown} x - The value to test for null or undefined.
- * @returns {boolean} `true` if the value is null or undefined, `false` otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- * const result1 = isNil(value1); // true
- * const result2 = isNil(value2); // true
- * const result3 = isNil(value3); // false
- */
-declare function isNil(x: unknown): x is null | undefined;
-
-export { isNil };
Index: de_modules/es-toolkit/dist/predicate/isNil.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNil(x) {
-    return x == null;
-}
-
-exports.isNil = isNil;
Index: de_modules/es-toolkit/dist/predicate/isNil.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNil.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNil(x) {
-    return x == null;
-}
-
-export { isNil };
Index: de_modules/es-toolkit/dist/predicate/isNode.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNode.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the current environment is Node.js.
- *
- * This function checks for the existence of the `process.versions.node` property,
- * which only exists in Node.js environments.
- *
- * @returns {boolean} `true` if the current environment is Node.js, otherwise `false`.
- *
- * @example
- * if (isNode()) {
- *   console.log('This is running in Node.js');
- *   const fs = import('node:fs');
- * }
- */
-declare function isNode(): boolean;
-
-export { isNode };
Index: de_modules/es-toolkit/dist/predicate/isNode.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNode.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Checks if the current environment is Node.js.
- *
- * This function checks for the existence of the `process.versions.node` property,
- * which only exists in Node.js environments.
- *
- * @returns {boolean} `true` if the current environment is Node.js, otherwise `false`.
- *
- * @example
- * if (isNode()) {
- *   console.log('This is running in Node.js');
- *   const fs = import('node:fs');
- * }
- */
-declare function isNode(): boolean;
-
-export { isNode };
Index: de_modules/es-toolkit/dist/predicate/isNode.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNode() {
-    return typeof process !== 'undefined' && process?.versions?.node != null;
-}
-
-exports.isNode = isNode;
Index: de_modules/es-toolkit/dist/predicate/isNode.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNode.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNode() {
-    return typeof process !== 'undefined' && process?.versions?.node != null;
-}
-
-export { isNode };
Index: de_modules/es-toolkit/dist/predicate/isNotNil.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNotNil.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Checks if the given value is not null nor undefined.
- *
- * The main use of this function is to be used with TypeScript as a type predicate.
- *
- * @template T - The type of value.
- * @param {T | null | undefined} x - The value to test if it is not null nor undefined.
- * @returns {x is T} True if the value is not null nor undefined, false otherwise.
- *
- * @example
- * // Here the type of `arr` is (number | undefined)[]
- * const arr = [1, undefined, 3];
- * // Here the type of `result` is number[]
- * const result = arr.filter(isNotNil);
- * // result will be [1, 3]
- */
-declare function isNotNil<T>(x: T | null | undefined): x is T;
-
-export { isNotNil };
Index: de_modules/es-toolkit/dist/predicate/isNotNil.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNotNil.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Checks if the given value is not null nor undefined.
- *
- * The main use of this function is to be used with TypeScript as a type predicate.
- *
- * @template T - The type of value.
- * @param {T | null | undefined} x - The value to test if it is not null nor undefined.
- * @returns {x is T} True if the value is not null nor undefined, false otherwise.
- *
- * @example
- * // Here the type of `arr` is (number | undefined)[]
- * const arr = [1, undefined, 3];
- * // Here the type of `result` is number[]
- * const result = arr.filter(isNotNil);
- * // result will be [1, 3]
- */
-declare function isNotNil<T>(x: T | null | undefined): x is T;
-
-export { isNotNil };
Index: de_modules/es-toolkit/dist/predicate/isNotNil.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNotNil.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNotNil(x) {
-    return x != null;
-}
-
-exports.isNotNil = isNotNil;
Index: de_modules/es-toolkit/dist/predicate/isNotNil.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNotNil.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNotNil(x) {
-    return x != null;
-}
-
-export { isNotNil };
Index: de_modules/es-toolkit/dist/predicate/isNull.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNull.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is null.
- *
- * This function tests whether the provided value is strictly equal to `null`.
- * It returns `true` if the value is `null`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null`.
- *
- * @param {unknown} x - The value to test if it is null.
- * @returns {x is null} True if the value is null, false otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- *
- * console.log(isNull(value1)); // true
- * console.log(isNull(value2)); // false
- * console.log(isNull(value3)); // false
- */
-declare function isNull(x: unknown): x is null;
-
-export { isNull };
Index: de_modules/es-toolkit/dist/predicate/isNull.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNull.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is null.
- *
- * This function tests whether the provided value is strictly equal to `null`.
- * It returns `true` if the value is `null`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `null`.
- *
- * @param {unknown} x - The value to test if it is null.
- * @returns {x is null} True if the value is null, false otherwise.
- *
- * @example
- * const value1 = null;
- * const value2 = undefined;
- * const value3 = 42;
- *
- * console.log(isNull(value1)); // true
- * console.log(isNull(value2)); // false
- * console.log(isNull(value3)); // false
- */
-declare function isNull(x: unknown): x is null;
-
-export { isNull };
Index: de_modules/es-toolkit/dist/predicate/isNull.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNull.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNull(x) {
-    return x === null;
-}
-
-exports.isNull = isNull;
Index: de_modules/es-toolkit/dist/predicate/isNull.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNull.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNull(x) {
-    return x === null;
-}
-
-export { isNull };
Index: de_modules/es-toolkit/dist/predicate/isNumber.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNumber.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is a number.
- *
- * This function tests whether the provided value is strictly a `number`.
- * It returns `true` if the value is a `number`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {unknown} x - The value to test if it is a number.
- * @returns {x is number} True if the value is a number, false otherwise.
- *
- * @example
- *
- * const value1 = 123;
- * const value2 = 'abc';
- * const value3 = true;
- *
- * console.log(isNumber(value1)); // true
- * console.log(isNumber(value2)); // false
- * console.log(isNumber(value3)); // false
- *
- */
-declare function isNumber(x: unknown): x is number;
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/predicate/isNumber.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**
- * Checks if the given value is a number.
- *
- * This function tests whether the provided value is strictly a `number`.
- * It returns `true` if the value is a `number`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
- *
- * @param {unknown} x - The value to test if it is a number.
- * @returns {x is number} True if the value is a number, false otherwise.
- *
- * @example
- *
- * const value1 = 123;
- * const value2 = 'abc';
- * const value3 = true;
- *
- * console.log(isNumber(value1)); // true
- * console.log(isNumber(value2)); // false
- * console.log(isNumber(value3)); // false
- *
- */
-declare function isNumber(x: unknown): x is number;
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/predicate/isNumber.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isNumber(x) {
-    return typeof x === 'number' || x instanceof Number;
-}
-
-exports.isNumber = isNumber;
Index: de_modules/es-toolkit/dist/predicate/isNumber.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isNumber.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isNumber(x) {
-    return typeof x === 'number' || x instanceof Number;
-}
-
-export { isNumber };
Index: de_modules/es-toolkit/dist/predicate/isPlainObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPlainObject.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Checks if a given value is a plain object.
- *
- * @param {object} value - The value to check.
- * @returns {value is Record<PropertyKey, any>} - True if the value is a plain object, otherwise false.
- *
- * @example
- * ```typescript
- * // ✅👇 True
- *
- * isPlainObject({ });                       // ✅
- * isPlainObject({ key: 'value' });          // ✅
- * isPlainObject({ key: new Date() });       // ✅
- * isPlainObject(new Object());              // ✅
- * isPlainObject(Object.create(null));       // ✅
- * isPlainObject({ nested: { key: true} });  // ✅
- * isPlainObject(new Proxy({}, {}));         // ✅
- * isPlainObject({ [Symbol('tag')]: 'A' });  // ✅
- *
- * // ✅👇 (cross-realms, node context, workers, ...)
- * const runInNewContext = await import('node:vm').then(
- *     (mod) => mod.runInNewContext
- * );
- * isPlainObject(runInNewContext('({})'));   // ✅
- *
- * // ❌👇 False
- *
- * class Test { };
- * isPlainObject(new Test())           // ❌
- * isPlainObject(10);                  // ❌
- * isPlainObject(null);                // ❌
- * isPlainObject('hello');             // ❌
- * isPlainObject([]);                  // ❌
- * isPlainObject(new Date());          // ❌
- * isPlainObject(new Uint8Array([1])); // ❌
- * isPlainObject(Buffer.from('ABC'));  // ❌
- * isPlainObject(Promise.resolve({})); // ❌
- * isPlainObject(Object.create({}));   // ❌
- * isPlainObject(new (class Cls {}));  // ❌
- * isPlainObject(globalThis);          // ❌,
- * ```
- */
-declare function isPlainObject(value: unknown): value is Record<PropertyKey, any>;
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/predicate/isPlainObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPlainObject.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**
- * Checks if a given value is a plain object.
- *
- * @param {object} value - The value to check.
- * @returns {value is Record<PropertyKey, any>} - True if the value is a plain object, otherwise false.
- *
- * @example
- * ```typescript
- * // ✅👇 True
- *
- * isPlainObject({ });                       // ✅
- * isPlainObject({ key: 'value' });          // ✅
- * isPlainObject({ key: new Date() });       // ✅
- * isPlainObject(new Object());              // ✅
- * isPlainObject(Object.create(null));       // ✅
- * isPlainObject({ nested: { key: true} });  // ✅
- * isPlainObject(new Proxy({}, {}));         // ✅
- * isPlainObject({ [Symbol('tag')]: 'A' });  // ✅
- *
- * // ✅👇 (cross-realms, node context, workers, ...)
- * const runInNewContext = await import('node:vm').then(
- *     (mod) => mod.runInNewContext
- * );
- * isPlainObject(runInNewContext('({})'));   // ✅
- *
- * // ❌👇 False
- *
- * class Test { };
- * isPlainObject(new Test())           // ❌
- * isPlainObject(10);                  // ❌
- * isPlainObject(null);                // ❌
- * isPlainObject('hello');             // ❌
- * isPlainObject([]);                  // ❌
- * isPlainObject(new Date());          // ❌
- * isPlainObject(new Uint8Array([1])); // ❌
- * isPlainObject(Buffer.from('ABC'));  // ❌
- * isPlainObject(Promise.resolve({})); // ❌
- * isPlainObject(Object.create({}));   // ❌
- * isPlainObject(new (class Cls {}));  // ❌
- * isPlainObject(globalThis);          // ❌,
- * ```
- */
-declare function isPlainObject(value: unknown): value is Record<PropertyKey, any>;
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/predicate/isPlainObject.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPlainObject.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isPlainObject(value) {
-    if (!value || typeof value !== 'object') {
-        return false;
-    }
-    const proto = Object.getPrototypeOf(value);
-    const hasObjectPrototype = proto === null ||
-        proto === Object.prototype ||
-        Object.getPrototypeOf(proto) === null;
-    if (!hasObjectPrototype) {
-        return false;
-    }
-    return Object.prototype.toString.call(value) === '[object Object]';
-}
-
-exports.isPlainObject = isPlainObject;
Index: de_modules/es-toolkit/dist/predicate/isPlainObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPlainObject.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-function isPlainObject(value) {
-    if (!value || typeof value !== 'object') {
-        return false;
-    }
-    const proto = Object.getPrototypeOf(value);
-    const hasObjectPrototype = proto === null ||
-        proto === Object.prototype ||
-        Object.getPrototypeOf(proto) === null;
-    if (!hasObjectPrototype) {
-        return false;
-    }
-    return Object.prototype.toString.call(value) === '[object Object]';
-}
-
-export { isPlainObject };
Index: de_modules/es-toolkit/dist/predicate/isPrimitive.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPrimitive.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks whether a value is a JavaScript primitive.
- * JavaScript primitives include null, undefined, strings, numbers, booleans, symbols, and bigints.
- *
- * @param {unknown} value The value to check.
- * @returns {value is
- *     null
- *   | undefined
- *   | string
- *   | number
- *   | boolean
- *   | symbol
- *   | bigint} Returns true if `value` is a primitive, false otherwise.
- *
- * @example
- * isPrimitive(null); // true
- * isPrimitive(undefined); // true
- * isPrimitive('123'); // true
- * isPrimitive(false); // true
- * isPrimitive(true); // true
- * isPrimitive(Symbol('a')); // true
- * isPrimitive(123n); // true
- * isPrimitive({}); // false
- * isPrimitive(new Date()); // false
- * isPrimitive(new Map()); // false
- * isPrimitive(new Set()); // false
- * isPrimitive([1, 2, 3]); // false
- */
-declare function isPrimitive(value: unknown): value is null | undefined | string | number | boolean | symbol | bigint;
-
-export { isPrimitive };
Index: de_modules/es-toolkit/dist/predicate/isPrimitive.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPrimitive.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Checks whether a value is a JavaScript primitive.
- * JavaScript primitives include null, undefined, strings, numbers, booleans, symbols, and bigints.
- *
- * @param {unknown} value The value to check.
- * @returns {value is
- *     null
- *   | undefined
- *   | string
- *   | number
- *   | boolean
- *   | symbol
- *   | bigint} Returns true if `value` is a primitive, false otherwise.
- *
- * @example
- * isPrimitive(null); // true
- * isPrimitive(undefined); // true
- * isPrimitive('123'); // true
- * isPrimitive(false); // true
- * isPrimitive(true); // true
- * isPrimitive(Symbol('a')); // true
- * isPrimitive(123n); // true
- * isPrimitive({}); // false
- * isPrimitive(new Date()); // false
- * isPrimitive(new Map()); // false
- * isPrimitive(new Set()); // false
- * isPrimitive([1, 2, 3]); // false
- */
-declare function isPrimitive(value: unknown): value is null | undefined | string | number | boolean | symbol | bigint;
-
-export { isPrimitive };
Index: de_modules/es-toolkit/dist/predicate/isPrimitive.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPrimitive.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isPrimitive(value) {
-    return value == null || (typeof value !== 'object' && typeof value !== 'function');
-}
-
-exports.isPrimitive = isPrimitive;
Index: de_modules/es-toolkit/dist/predicate/isPrimitive.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPrimitive.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isPrimitive(value) {
-    return value == null || (typeof value !== 'object' && typeof value !== 'function');
-}
-
-export { isPrimitive };
Index: de_modules/es-toolkit/dist/predicate/isPromise.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPromise.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Promise`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Promise`.
- *
- * @param {unknown} value The value to check if it is a `Promise`.
- * @returns {value is Promise<any>} Returns `true` if `value` is a `Promise`, else `false`.
- *
- * @example
- * const value1 = new Promise((resolve) => resolve());
- * const value2 = {};
- * const value3 = 123;
- *
- * console.log(isPromise(value1)); // true
- * console.log(isPromise(value2)); // false
- * console.log(isPromise(value3)); // false
- */
-declare function isPromise(value: unknown): value is Promise<any>;
-
-export { isPromise };
Index: de_modules/es-toolkit/dist/predicate/isPromise.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPromise.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Promise`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Promise`.
- *
- * @param {unknown} value The value to check if it is a `Promise`.
- * @returns {value is Promise<any>} Returns `true` if `value` is a `Promise`, else `false`.
- *
- * @example
- * const value1 = new Promise((resolve) => resolve());
- * const value2 = {};
- * const value3 = 123;
- *
- * console.log(isPromise(value1)); // true
- * console.log(isPromise(value2)); // false
- * console.log(isPromise(value3)); // false
- */
-declare function isPromise(value: unknown): value is Promise<any>;
-
-export { isPromise };
Index: de_modules/es-toolkit/dist/predicate/isPromise.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPromise.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isPromise(value) {
-    return value instanceof Promise;
-}
-
-exports.isPromise = isPromise;
Index: de_modules/es-toolkit/dist/predicate/isPromise.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isPromise.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isPromise(value) {
-    return value instanceof Promise;
-}
-
-export { isPromise };
Index: de_modules/es-toolkit/dist/predicate/isRegExp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isRegExp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a RegExp.
- *
- * @param {unknown} value The value to check.
- * @returns {value is RegExp} Returns `true` if `value` is a RegExp, `false` otherwise.
- *
- * @example
- * const value1 = /abc/;
- * const value2 = '/abc/';
- *
- * console.log(isRegExp(value1)); // true
- * console.log(isRegExp(value2)); // false
- */
-declare function isRegExp(value: unknown): value is RegExp;
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/predicate/isRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Checks if `value` is a RegExp.
- *
- * @param {unknown} value The value to check.
- * @returns {value is RegExp} Returns `true` if `value` is a RegExp, `false` otherwise.
- *
- * @example
- * const value1 = /abc/;
- * const value2 = '/abc/';
- *
- * console.log(isRegExp(value1)); // true
- * console.log(isRegExp(value2)); // false
- */
-declare function isRegExp(value: unknown): value is RegExp;
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/predicate/isRegExp.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isRegExp(value) {
-    return value instanceof RegExp;
-}
-
-exports.isRegExp = isRegExp;
Index: de_modules/es-toolkit/dist/predicate/isRegExp.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isRegExp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isRegExp(value) {
-    return value instanceof RegExp;
-}
-
-export { isRegExp };
Index: de_modules/es-toolkit/dist/predicate/isSet.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSet.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Set`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Set`.
- *
- * @param {unknown} value The value to check if it is a `Set`.
- * @returns {value is Set<any>} Returns `true` if `value` is a `Set`, else `false`.
- *
- * @example
- * const value1 = new Set();
- * const value2 = new Map();
- * const value3 = new WeakSet();
- *
- * console.log(isSet(value1)); // true
- * console.log(isSet(value2)); // false
- * console.log(isSet(value3)); // false
- */
-declare function isSet(value: unknown): value is Set<any>;
-
-export { isSet };
Index: de_modules/es-toolkit/dist/predicate/isSet.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is `Set`.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Set`.
- *
- * @param {unknown} value The value to check if it is a `Set`.
- * @returns {value is Set<any>} Returns `true` if `value` is a `Set`, else `false`.
- *
- * @example
- * const value1 = new Set();
- * const value2 = new Map();
- * const value3 = new WeakSet();
- *
- * console.log(isSet(value1)); // true
- * console.log(isSet(value2)); // false
- * console.log(isSet(value3)); // false
- */
-declare function isSet(value: unknown): value is Set<any>;
-
-export { isSet };
Index: de_modules/es-toolkit/dist/predicate/isSet.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isSet(value) {
-    return value instanceof Set;
-}
-
-exports.isSet = isSet;
Index: de_modules/es-toolkit/dist/predicate/isSet.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSet.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isSet(value) {
-    return value instanceof Set;
-}
-
-export { isSet };
Index: de_modules/es-toolkit/dist/predicate/isString.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isString.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is string.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check if it is string.
- * @returns {value is string} Returns `true` if `value` is a string, else `false`.
- *
- * @example
- * const value1 = 'abc';
- * const value2 = 123;
- * const value3 = true;
- *
- * console.log(isString(value1)); // true
- * console.log(isString(value2)); // false
- * console.log(isString(value3)); // false
- */
-declare function isString(value: unknown): value is string;
-
-export { isString };
Index: de_modules/es-toolkit/dist/predicate/isString.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Checks if a given value is string.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `string`.
- *
- * @param {unknown} value The value to check if it is string.
- * @returns {value is string} Returns `true` if `value` is a string, else `false`.
- *
- * @example
- * const value1 = 'abc';
- * const value2 = 123;
- * const value3 = true;
- *
- * console.log(isString(value1)); // true
- * console.log(isString(value2)); // false
- * console.log(isString(value3)); // false
- */
-declare function isString(value: unknown): value is string;
-
-export { isString };
Index: de_modules/es-toolkit/dist/predicate/isString.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isString(value) {
-    return typeof value === 'string';
-}
-
-exports.isString = isString;
Index: de_modules/es-toolkit/dist/predicate/isString.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isString.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isString(value) {
-    return typeof value === 'string';
-}
-
-export { isString };
Index: de_modules/es-toolkit/dist/predicate/isSymbol.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSymbol.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Check whether a value is a symbol.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `symbol`.
- *
- * @param {unknown} value The value to check.
- * @returns {value is symbol} Returns `true` if `value` is a symbol, else `false`.
- *
- * @example
- * import { isSymbol } from 'es-toolkit/predicate';
- *
- * isSymbol(Symbol('a')); // true
- * isSymbol(Symbol.for('a')); // true
- * isSymbol(Symbol.iterator); // true
- *
- * isSymbol(null); // false
- * isSymbol(undefined); // false
- * isSymbol('123'); // false
- * isSymbol(false); // false
- * isSymbol(123n); // false
- * isSymbol({}); // false
- * isSymbol([1, 2, 3]); // false
- */
-declare function isSymbol(value: unknown): value is symbol;
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/predicate/isSymbol.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSymbol.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Check whether a value is a symbol.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `symbol`.
- *
- * @param {unknown} value The value to check.
- * @returns {value is symbol} Returns `true` if `value` is a symbol, else `false`.
- *
- * @example
- * import { isSymbol } from 'es-toolkit/predicate';
- *
- * isSymbol(Symbol('a')); // true
- * isSymbol(Symbol.for('a')); // true
- * isSymbol(Symbol.iterator); // true
- *
- * isSymbol(null); // false
- * isSymbol(undefined); // false
- * isSymbol('123'); // false
- * isSymbol(false); // false
- * isSymbol(123n); // false
- * isSymbol({}); // false
- * isSymbol([1, 2, 3]); // false
- */
-declare function isSymbol(value: unknown): value is symbol;
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/predicate/isSymbol.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSymbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isSymbol(value) {
-    return typeof value === 'symbol';
-}
-
-exports.isSymbol = isSymbol;
Index: de_modules/es-toolkit/dist/predicate/isSymbol.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isSymbol.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isSymbol(value) {
-    return typeof value === 'symbol';
-}
-
-export { isSymbol };
Index: de_modules/es-toolkit/dist/predicate/isTypedArray.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isTypedArray.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Checks if a value is a TypedArray.
- * @param {unknown} x The value to check.
- * @returns {x is
- *     Uint8Array
- *   | Uint8ClampedArray
- *   | Uint16Array
- *   | Uint32Array
- *   | BigUint64Array
- *   | Int8Array
- *   | Int16Array
- *   | Int32Array
- *   | BigInt64Array
- *   | Float32Array
- *   | Float64Array} Returns true if `x` is a TypedArray, false otherwise.
- *
- * @example
- * const arr = new Uint8Array([1, 2, 3]);
- * isTypedArray(arr); // true
- *
- * const regularArray = [1, 2, 3];
- * isTypedArray(regularArray); // false
- *
- * const buffer = new ArrayBuffer(16);
- * isTypedArray(buffer); // false
- */
-declare function isTypedArray(x: unknown): x is Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array;
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/predicate/isTypedArray.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isTypedArray.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * Checks if a value is a TypedArray.
- * @param {unknown} x The value to check.
- * @returns {x is
- *     Uint8Array
- *   | Uint8ClampedArray
- *   | Uint16Array
- *   | Uint32Array
- *   | BigUint64Array
- *   | Int8Array
- *   | Int16Array
- *   | Int32Array
- *   | BigInt64Array
- *   | Float32Array
- *   | Float64Array} Returns true if `x` is a TypedArray, false otherwise.
- *
- * @example
- * const arr = new Uint8Array([1, 2, 3]);
- * isTypedArray(arr); // true
- *
- * const regularArray = [1, 2, 3];
- * isTypedArray(regularArray); // false
- *
- * const buffer = new ArrayBuffer(16);
- * isTypedArray(buffer); // false
- */
-declare function isTypedArray(x: unknown): x is Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array;
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/predicate/isTypedArray.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isTypedArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isTypedArray(x) {
-    return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
-
-exports.isTypedArray = isTypedArray;
Index: de_modules/es-toolkit/dist/predicate/isTypedArray.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isTypedArray.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isTypedArray(x) {
-    return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
-
-export { isTypedArray };
Index: de_modules/es-toolkit/dist/predicate/isUndefined.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isUndefined.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is undefined.
- *
- * This function tests whether the provided value is strictly equal to `undefined`.
- * It returns `true` if the value is `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `undefined`.
- *
- * @param {unknown} x - The value to test if it is undefined.
- * @returns {x is undefined} true if the value is undefined, false otherwise.
- *
- * @example
- * const value1 = undefined;
- * const value2 = null;
- * const value3 = 42;
- *
- * console.log(isUndefined(value1)); // true
- * console.log(isUndefined(value2)); // false
- * console.log(isUndefined(value3)); // false
- */
-declare function isUndefined(x: any): x is undefined;
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/predicate/isUndefined.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isUndefined.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is undefined.
- *
- * This function tests whether the provided value is strictly equal to `undefined`.
- * It returns `true` if the value is `undefined`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `undefined`.
- *
- * @param {unknown} x - The value to test if it is undefined.
- * @returns {x is undefined} true if the value is undefined, false otherwise.
- *
- * @example
- * const value1 = undefined;
- * const value2 = null;
- * const value3 = 42;
- *
- * console.log(isUndefined(value1)); // true
- * console.log(isUndefined(value2)); // false
- * console.log(isUndefined(value3)); // false
- */
-declare function isUndefined(x: any): x is undefined;
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/predicate/isUndefined.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isUndefined.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isUndefined(x) {
-    return x === undefined;
-}
-
-exports.isUndefined = isUndefined;
Index: de_modules/es-toolkit/dist/predicate/isUndefined.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isUndefined.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isUndefined(x) {
-    return x === undefined;
-}
-
-export { isUndefined };
Index: de_modules/es-toolkit/dist/predicate/isWeakMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakMap.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakMap`.
- *
- * This function tests whether the provided value is an instance of `WeakMap`.
- * It returns `true` if the value is a `WeakMap`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakMap`.
- *
- * @param {unknown} value - The value to test if it is a `WeakMap`.
- * @returns {value is WeakMap<WeakKey, any>} true if the value is a `WeakMap`, false otherwise.
- *
- * @example
- * const value1 = new WeakMap();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakMap(value1)); // true
- * console.log(isWeakMap(value2)); // false
- * console.log(isWeakMap(value3)); // false
- */
-declare function isWeakMap(value: unknown): value is WeakMap<WeakKey, any>;
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/predicate/isWeakMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakMap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakMap`.
- *
- * This function tests whether the provided value is an instance of `WeakMap`.
- * It returns `true` if the value is a `WeakMap`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakMap`.
- *
- * @param {unknown} value - The value to test if it is a `WeakMap`.
- * @returns {value is WeakMap<WeakKey, any>} true if the value is a `WeakMap`, false otherwise.
- *
- * @example
- * const value1 = new WeakMap();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakMap(value1)); // true
- * console.log(isWeakMap(value2)); // false
- * console.log(isWeakMap(value3)); // false
- */
-declare function isWeakMap(value: unknown): value is WeakMap<WeakKey, any>;
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/predicate/isWeakMap.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakMap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isWeakMap(value) {
-    return value instanceof WeakMap;
-}
-
-exports.isWeakMap = isWeakMap;
Index: de_modules/es-toolkit/dist/predicate/isWeakMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakMap.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isWeakMap(value) {
-    return value instanceof WeakMap;
-}
-
-export { isWeakMap };
Index: de_modules/es-toolkit/dist/predicate/isWeakSet.d.mts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakSet.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakSet`.
- *
- * This function tests whether the provided value is an instance of `WeakSet`.
- * It returns `true` if the value is a `WeakSet`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakSet`.
- *
- * @param {unknown} value - The value to test if it is a `WeakSet`.
- * @returns {value is WeakSet<WeakKey>} true if the value is a `WeakSet`, false otherwise.
- *
- * @example
- * const value1 = new WeakSet();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakSet(value1)); // true
- * console.log(isWeakSet(value2)); // false
- * console.log(isWeakSet(value3)); // false
- */
-declare function isWeakSet(value: unknown): value is WeakSet<WeakKey>;
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/predicate/isWeakSet.d.ts
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakSet.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Checks if the given value is a `WeakSet`.
- *
- * This function tests whether the provided value is an instance of `WeakSet`.
- * It returns `true` if the value is a `WeakSet`, and `false` otherwise.
- *
- * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `WeakSet`.
- *
- * @param {unknown} value - The value to test if it is a `WeakSet`.
- * @returns {value is WeakSet<WeakKey>} true if the value is a `WeakSet`, false otherwise.
- *
- * @example
- * const value1 = new WeakSet();
- * const value2 = new Map();
- * const value3 = new Set();
- *
- * console.log(isWeakSet(value1)); // true
- * console.log(isWeakSet(value2)); // false
- * console.log(isWeakSet(value3)); // false
- */
-declare function isWeakSet(value: unknown): value is WeakSet<WeakKey>;
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/predicate/isWeakSet.js
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakSet.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function isWeakSet(value) {
-    return value instanceof WeakSet;
-}
-
-exports.isWeakSet = isWeakSet;
Index: de_modules/es-toolkit/dist/predicate/isWeakSet.mjs
===================================================================
--- node_modules/es-toolkit/dist/predicate/isWeakSet.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function isWeakSet(value) {
-    return value instanceof WeakSet;
-}
-
-export { isWeakSet };
Index: de_modules/es-toolkit/dist/promise/delay.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/delay.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-interface DelayOptions {
-    signal?: AbortSignal;
-}
-/**
- * Delays the execution of code for a specified number of milliseconds.
- *
- * This function returns a Promise that resolves after the specified delay, allowing you to use it
- * with async/await to pause execution.
- *
- * @param {number} ms - The number of milliseconds to delay.
- * @param {DelayOptions} options - The options object.
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the delay.
- * @returns {Promise<void>} A Promise that resolves after the specified delay.
- *
- * @example
- * async function foo() {
- *   console.log('Start');
- *   await delay(1000); // Delays execution for 1 second
- *   console.log('End');
- * }
- *
- * foo();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const { signal } = controller;
- *
- * setTimeout(() => controller.abort(), 50); // Will cancel the delay after 50ms
- * try {
- *   await delay(100, { signal });
- *  } catch (error) {
- *   console.error(error); // Will log 'AbortError'
- *  }
- * }
- */
-declare function delay(ms: number, { signal }?: DelayOptions): Promise<void>;
-
-export { delay };
Index: de_modules/es-toolkit/dist/promise/delay.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/delay.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-interface DelayOptions {
-    signal?: AbortSignal;
-}
-/**
- * Delays the execution of code for a specified number of milliseconds.
- *
- * This function returns a Promise that resolves after the specified delay, allowing you to use it
- * with async/await to pause execution.
- *
- * @param {number} ms - The number of milliseconds to delay.
- * @param {DelayOptions} options - The options object.
- * @param {AbortSignal} options.signal - An optional AbortSignal to cancel the delay.
- * @returns {Promise<void>} A Promise that resolves after the specified delay.
- *
- * @example
- * async function foo() {
- *   console.log('Start');
- *   await delay(1000); // Delays execution for 1 second
- *   console.log('End');
- * }
- *
- * foo();
- *
- * // With AbortSignal
- * const controller = new AbortController();
- * const { signal } = controller;
- *
- * setTimeout(() => controller.abort(), 50); // Will cancel the delay after 50ms
- * try {
- *   await delay(100, { signal });
- *  } catch (error) {
- *   console.error(error); // Will log 'AbortError'
- *  }
- * }
- */
-declare function delay(ms: number, { signal }?: DelayOptions): Promise<void>;
-
-export { delay };
Index: de_modules/es-toolkit/dist/promise/delay.js
===================================================================
--- node_modules/es-toolkit/dist/promise/delay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const AbortError = require('../error/AbortError.js');
-
-function delay(ms, { signal } = {}) {
-    return new Promise((resolve, reject) => {
-        const abortError = () => {
-            reject(new AbortError.AbortError());
-        };
-        const abortHandler = () => {
-            clearTimeout(timeoutId);
-            abortError();
-        };
-        if (signal?.aborted) {
-            return abortError();
-        }
-        const timeoutId = setTimeout(() => {
-            signal?.removeEventListener('abort', abortHandler);
-            resolve();
-        }, ms);
-        signal?.addEventListener('abort', abortHandler, { once: true });
-    });
-}
-
-exports.delay = delay;
Index: de_modules/es-toolkit/dist/promise/delay.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/delay.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { AbortError } from '../error/AbortError.mjs';
-
-function delay(ms, { signal } = {}) {
-    return new Promise((resolve, reject) => {
-        const abortError = () => {
-            reject(new AbortError());
-        };
-        const abortHandler = () => {
-            clearTimeout(timeoutId);
-            abortError();
-        };
-        if (signal?.aborted) {
-            return abortError();
-        }
-        const timeoutId = setTimeout(() => {
-            signal?.removeEventListener('abort', abortHandler);
-            resolve();
-        }, ms);
-        signal?.addEventListener('abort', abortHandler, { once: true });
-    });
-}
-
-export { delay };
Index: de_modules/es-toolkit/dist/promise/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export { delay } from './delay.mjs';
-export { Mutex } from './mutex.mjs';
-export { Semaphore } from './semaphore.mjs';
-export { timeout } from './timeout.mjs';
-export { withTimeout } from './withTimeout.mjs';
Index: de_modules/es-toolkit/dist/promise/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export { delay } from './delay.js';
-export { Mutex } from './mutex.js';
-export { Semaphore } from './semaphore.js';
-export { timeout } from './timeout.js';
-export { withTimeout } from './withTimeout.js';
Index: de_modules/es-toolkit/dist/promise/index.js
===================================================================
--- node_modules/es-toolkit/dist/promise/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const delay = require('./delay.js');
-const mutex = require('./mutex.js');
-const semaphore = require('./semaphore.js');
-const timeout = require('./timeout.js');
-const withTimeout = require('./withTimeout.js');
-
-
-
-exports.delay = delay.delay;
-exports.Mutex = mutex.Mutex;
-exports.Semaphore = semaphore.Semaphore;
-exports.timeout = timeout.timeout;
-exports.withTimeout = withTimeout.withTimeout;
Index: de_modules/es-toolkit/dist/promise/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-export { delay } from './delay.mjs';
-export { Mutex } from './mutex.mjs';
-export { Semaphore } from './semaphore.mjs';
-export { timeout } from './timeout.mjs';
-export { withTimeout } from './withTimeout.mjs';
Index: de_modules/es-toolkit/dist/promise/mutex.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/mutex.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/**
- * A Mutex (mutual exclusion lock) for async functions.
- * It allows only one async task to access a critical section at a time.
- *
- * @example
- * const mutex = new Mutex();
- *
- * async function criticalSection() {
- *   await mutex.acquire();
- *   try {
- *     // This code section cannot be executed simultaneously
- *   } finally {
- *     mutex.release();
- *   }
- * }
- *
- * criticalSection();
- * criticalSection(); // This call will wait until the first call releases the mutex.
- */
-declare class Mutex {
-    private semaphore;
-    /**
-     * Checks if the mutex is currently locked.
-     * @returns {boolean} True if the mutex is locked, false otherwise.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * console.log(mutex.isLocked); // false
-     * await mutex.acquire();
-     * console.log(mutex.isLocked); // true
-     * mutex.release();
-     * console.log(mutex.isLocked); // false
-     */
-    get isLocked(): boolean;
-    /**
-     * Acquires the mutex, blocking if necessary until it is available.
-     * @returns {Promise<void>} A promise that resolves when the mutex is acquired.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * await mutex.acquire();
-     * try {
-     *   // This code section cannot be executed simultaneously
-     * } finally {
-     *   mutex.release();
-     * }
-     */
-    acquire(): Promise<void>;
-    /**
-     * Releases the mutex, allowing another waiting task to proceed.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * await mutex.acquire();
-     * try {
-     *   // This code section cannot be executed simultaneously
-     * } finally {
-     *   mutex.release(); // Allows another waiting task to proceed.
-     * }
-     */
-    release(): void;
-}
-
-export { Mutex };
Index: de_modules/es-toolkit/dist/promise/mutex.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/mutex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/**
- * A Mutex (mutual exclusion lock) for async functions.
- * It allows only one async task to access a critical section at a time.
- *
- * @example
- * const mutex = new Mutex();
- *
- * async function criticalSection() {
- *   await mutex.acquire();
- *   try {
- *     // This code section cannot be executed simultaneously
- *   } finally {
- *     mutex.release();
- *   }
- * }
- *
- * criticalSection();
- * criticalSection(); // This call will wait until the first call releases the mutex.
- */
-declare class Mutex {
-    private semaphore;
-    /**
-     * Checks if the mutex is currently locked.
-     * @returns {boolean} True if the mutex is locked, false otherwise.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * console.log(mutex.isLocked); // false
-     * await mutex.acquire();
-     * console.log(mutex.isLocked); // true
-     * mutex.release();
-     * console.log(mutex.isLocked); // false
-     */
-    get isLocked(): boolean;
-    /**
-     * Acquires the mutex, blocking if necessary until it is available.
-     * @returns {Promise<void>} A promise that resolves when the mutex is acquired.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * await mutex.acquire();
-     * try {
-     *   // This code section cannot be executed simultaneously
-     * } finally {
-     *   mutex.release();
-     * }
-     */
-    acquire(): Promise<void>;
-    /**
-     * Releases the mutex, allowing another waiting task to proceed.
-     *
-     * @example
-     * const mutex = new Mutex();
-     * await mutex.acquire();
-     * try {
-     *   // This code section cannot be executed simultaneously
-     * } finally {
-     *   mutex.release(); // Allows another waiting task to proceed.
-     * }
-     */
-    release(): void;
-}
-
-export { Mutex };
Index: de_modules/es-toolkit/dist/promise/mutex.js
===================================================================
--- node_modules/es-toolkit/dist/promise/mutex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const semaphore = require('./semaphore.js');
-
-class Mutex {
-    semaphore = new semaphore.Semaphore(1);
-    get isLocked() {
-        return this.semaphore.available === 0;
-    }
-    async acquire() {
-        return this.semaphore.acquire();
-    }
-    release() {
-        this.semaphore.release();
-    }
-}
-
-exports.Mutex = Mutex;
Index: de_modules/es-toolkit/dist/promise/mutex.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/mutex.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { Semaphore } from './semaphore.mjs';
-
-class Mutex {
-    semaphore = new Semaphore(1);
-    get isLocked() {
-        return this.semaphore.available === 0;
-    }
-    async acquire() {
-        return this.semaphore.acquire();
-    }
-    release() {
-        this.semaphore.release();
-    }
-}
-
-export { Mutex };
Index: de_modules/es-toolkit/dist/promise/semaphore.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/semaphore.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/**
- * A counting semaphore for async functions that manages available permits.
- * Semaphores are mainly used to limit the number of concurrent async tasks.
- *
- * Each `acquire` operation takes a permit or waits until one is available.
- * Each `release` operation adds a permit, potentially allowing a waiting task to proceed.
- *
- * The semaphore ensures fairness by maintaining a FIFO (First In, First Out) order for acquirers.
- *
- * @example
- * const sema = new Semaphore(2);
- *
- * async function task() {
- *   await sema.acquire();
- *   try {
- *     // This code can only be executed by two tasks at the same time
- *   } finally {
- *     sema.release();
- *   }
- * }
- *
- * task();
- * task();
- * task(); // This task will wait until one of the previous tasks releases the semaphore.
- */
-declare class Semaphore {
-    /**
-     * The maximum number of concurrent operations allowed.
-     * @type {number}
-     */
-    capacity: number;
-    /**
-     * The number of available permits.
-     * @type {number}
-     */
-    available: number;
-    private deferredTasks;
-    /**
-     * Creates an instance of Semaphore.
-     * @param {number} capacity - The maximum number of concurrent operations allowed.
-     *
-     * @example
-     * const sema = new Semaphore(3); // Allows up to 3 concurrent operations.
-     */
-    constructor(capacity: number);
-    /**
-     * Acquires a semaphore, blocking if necessary until one is available.
-     * @returns {Promise<void>} A promise that resolves when the semaphore is acquired.
-     *
-     * @example
-     * const sema = new Semaphore(1);
-     *
-     * async function criticalSection() {
-     *   await sema.acquire();
-     *   try {
-     *     // This code section cannot be executed simultaneously
-     *   } finally {
-     *     sema.release();
-     *   }
-     * }
-     */
-    acquire(): Promise<void>;
-    /**
-     * Releases a semaphore, allowing one more operation to proceed.
-     *
-     * @example
-     * const sema = new Semaphore(1);
-     *
-     * async function task() {
-     *   await sema.acquire();
-     *   try {
-     *     // This code can only be executed by two tasks at the same time
-     *   } finally {
-     *     sema.release(); // Allows another waiting task to proceed.
-     *   }
-     * }
-     */
-    release(): void;
-}
-
-export { Semaphore };
Index: de_modules/es-toolkit/dist/promise/semaphore.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/semaphore.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/**
- * A counting semaphore for async functions that manages available permits.
- * Semaphores are mainly used to limit the number of concurrent async tasks.
- *
- * Each `acquire` operation takes a permit or waits until one is available.
- * Each `release` operation adds a permit, potentially allowing a waiting task to proceed.
- *
- * The semaphore ensures fairness by maintaining a FIFO (First In, First Out) order for acquirers.
- *
- * @example
- * const sema = new Semaphore(2);
- *
- * async function task() {
- *   await sema.acquire();
- *   try {
- *     // This code can only be executed by two tasks at the same time
- *   } finally {
- *     sema.release();
- *   }
- * }
- *
- * task();
- * task();
- * task(); // This task will wait until one of the previous tasks releases the semaphore.
- */
-declare class Semaphore {
-    /**
-     * The maximum number of concurrent operations allowed.
-     * @type {number}
-     */
-    capacity: number;
-    /**
-     * The number of available permits.
-     * @type {number}
-     */
-    available: number;
-    private deferredTasks;
-    /**
-     * Creates an instance of Semaphore.
-     * @param {number} capacity - The maximum number of concurrent operations allowed.
-     *
-     * @example
-     * const sema = new Semaphore(3); // Allows up to 3 concurrent operations.
-     */
-    constructor(capacity: number);
-    /**
-     * Acquires a semaphore, blocking if necessary until one is available.
-     * @returns {Promise<void>} A promise that resolves when the semaphore is acquired.
-     *
-     * @example
-     * const sema = new Semaphore(1);
-     *
-     * async function criticalSection() {
-     *   await sema.acquire();
-     *   try {
-     *     // This code section cannot be executed simultaneously
-     *   } finally {
-     *     sema.release();
-     *   }
-     * }
-     */
-    acquire(): Promise<void>;
-    /**
-     * Releases a semaphore, allowing one more operation to proceed.
-     *
-     * @example
-     * const sema = new Semaphore(1);
-     *
-     * async function task() {
-     *   await sema.acquire();
-     *   try {
-     *     // This code can only be executed by two tasks at the same time
-     *   } finally {
-     *     sema.release(); // Allows another waiting task to proceed.
-     *   }
-     * }
-     */
-    release(): void;
-}
-
-export { Semaphore };
Index: de_modules/es-toolkit/dist/promise/semaphore.js
===================================================================
--- node_modules/es-toolkit/dist/promise/semaphore.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-class Semaphore {
-    capacity;
-    available;
-    deferredTasks = [];
-    constructor(capacity) {
-        this.capacity = capacity;
-        this.available = capacity;
-    }
-    async acquire() {
-        if (this.available > 0) {
-            this.available--;
-            return;
-        }
-        return new Promise(resolve => {
-            this.deferredTasks.push(resolve);
-        });
-    }
-    release() {
-        const deferredTask = this.deferredTasks.shift();
-        if (deferredTask != null) {
-            deferredTask();
-            return;
-        }
-        if (this.available < this.capacity) {
-            this.available++;
-        }
-    }
-}
-
-exports.Semaphore = Semaphore;
Index: de_modules/es-toolkit/dist/promise/semaphore.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/semaphore.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-class Semaphore {
-    capacity;
-    available;
-    deferredTasks = [];
-    constructor(capacity) {
-        this.capacity = capacity;
-        this.available = capacity;
-    }
-    async acquire() {
-        if (this.available > 0) {
-            this.available--;
-            return;
-        }
-        return new Promise(resolve => {
-            this.deferredTasks.push(resolve);
-        });
-    }
-    release() {
-        const deferredTask = this.deferredTasks.shift();
-        if (deferredTask != null) {
-            deferredTask();
-            return;
-        }
-        if (this.available < this.capacity) {
-            this.available++;
-        }
-    }
-}
-
-export { Semaphore };
Index: de_modules/es-toolkit/dist/promise/timeout.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/timeout.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Returns a promise that rejects with a `TimeoutError` after a specified delay.
- *
- * @param {number} ms - The delay duration in milliseconds.
- * @returns {Promise<never>} A promise that rejects with a `TimeoutError` after the specified delay.
- * @throws {TimeoutError} Throws a `TimeoutError` after the specified delay.
- *
- * @example
- * try {
- *   await timeout(1000); // Timeout exception after 1 second
- * } catch (error) {
- *   console.error(error); // Will log 'The operation was timed out'
- * }
- */
-declare function timeout(ms: number): Promise<never>;
-
-export { timeout };
Index: de_modules/es-toolkit/dist/promise/timeout.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/timeout.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Returns a promise that rejects with a `TimeoutError` after a specified delay.
- *
- * @param {number} ms - The delay duration in milliseconds.
- * @returns {Promise<never>} A promise that rejects with a `TimeoutError` after the specified delay.
- * @throws {TimeoutError} Throws a `TimeoutError` after the specified delay.
- *
- * @example
- * try {
- *   await timeout(1000); // Timeout exception after 1 second
- * } catch (error) {
- *   console.error(error); // Will log 'The operation was timed out'
- * }
- */
-declare function timeout(ms: number): Promise<never>;
-
-export { timeout };
Index: de_modules/es-toolkit/dist/promise/timeout.js
===================================================================
--- node_modules/es-toolkit/dist/promise/timeout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const delay = require('./delay.js');
-const TimeoutError = require('../error/TimeoutError.js');
-
-async function timeout(ms) {
-    await delay.delay(ms);
-    throw new TimeoutError.TimeoutError();
-}
-
-exports.timeout = timeout;
Index: de_modules/es-toolkit/dist/promise/timeout.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/timeout.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { delay } from './delay.mjs';
-import { TimeoutError } from '../error/TimeoutError.mjs';
-
-async function timeout(ms) {
-    await delay(ms);
-    throw new TimeoutError();
-}
-
-export { timeout };
Index: de_modules/es-toolkit/dist/promise/withTimeout.d.mts
===================================================================
--- node_modules/es-toolkit/dist/promise/withTimeout.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Executes an async function and enforces a timeout.
- *
- * If the promise does not resolve within the specified time,
- * the timeout will trigger and the returned promise will be rejected.
- *
- *
- * @template T
- * @param {() => Promise<T>} run - A function that returns a promise to be executed.
- * @param {number} ms - The timeout duration in milliseconds.
- * @returns {Promise<T>} A promise that resolves with the result of the `run` function or rejects if the timeout is reached.
- *
- * @example
- * async function fetchData() {
- *   const response = await fetch('https://example.com/data');
- *   return response.json();
- * }
- *
- * try {
- *   const data = await withTimeout(fetchData, 1000);
- *   console.log(data); // Logs the fetched data if `fetchData` is resolved within 1 second.
- * } catch (error) {
- *   console.error(error); // Will log 'TimeoutError' if `fetchData` is not resolved within 1 second.
- * }
- */
-declare function withTimeout<T>(run: () => Promise<T>, ms: number): Promise<T>;
-
-export { withTimeout };
Index: de_modules/es-toolkit/dist/promise/withTimeout.d.ts
===================================================================
--- node_modules/es-toolkit/dist/promise/withTimeout.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Executes an async function and enforces a timeout.
- *
- * If the promise does not resolve within the specified time,
- * the timeout will trigger and the returned promise will be rejected.
- *
- *
- * @template T
- * @param {() => Promise<T>} run - A function that returns a promise to be executed.
- * @param {number} ms - The timeout duration in milliseconds.
- * @returns {Promise<T>} A promise that resolves with the result of the `run` function or rejects if the timeout is reached.
- *
- * @example
- * async function fetchData() {
- *   const response = await fetch('https://example.com/data');
- *   return response.json();
- * }
- *
- * try {
- *   const data = await withTimeout(fetchData, 1000);
- *   console.log(data); // Logs the fetched data if `fetchData` is resolved within 1 second.
- * } catch (error) {
- *   console.error(error); // Will log 'TimeoutError' if `fetchData` is not resolved within 1 second.
- * }
- */
-declare function withTimeout<T>(run: () => Promise<T>, ms: number): Promise<T>;
-
-export { withTimeout };
Index: de_modules/es-toolkit/dist/promise/withTimeout.js
===================================================================
--- node_modules/es-toolkit/dist/promise/withTimeout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const timeout = require('./timeout.js');
-
-async function withTimeout(run, ms) {
-    return Promise.race([run(), timeout.timeout(ms)]);
-}
-
-exports.withTimeout = withTimeout;
Index: de_modules/es-toolkit/dist/promise/withTimeout.mjs
===================================================================
--- node_modules/es-toolkit/dist/promise/withTimeout.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { timeout } from './timeout.mjs';
-
-async function withTimeout(run, ms) {
-    return Promise.race([run(), timeout(ms)]);
-}
-
-export { withTimeout };
Index: de_modules/es-toolkit/dist/set/countBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/countBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Counts the occurrences of items in a Set based on a transformation function.
- *
- * This function takes a Set and a function that generates a key from each value.
- * It returns a Map with the generated keys and their counts as values.
- * The count is incremented for each element for which the transformation produces the same key.
- *
- * @template T - The type of elements in the Set.
- * @template K - The type of keys produced by the transformation function.
- * @param {Set<T>} set - The Set to count occurrences from.
- * @param {(value: T, value2: T, set: Set<T>) => K} mapper - The function to produce a key for counting.
- * @returns {Map<K, number>} A Map containing the mapped keys and their counts.
- *
- * @example
- * const set = new Set([1, 2, 3, 4, 5]);
- * const result = countBy(set, (value) => value % 2 === 0 ? 'even' : 'odd');
- * // result will be Map(2) { 'odd' => 3, 'even' => 2 }
- *
- * @example
- * const set = new Set(['apple', 'banana', 'cherry']);
- * const result = countBy(set, (value) => value.length);
- * // result will be Map(2) { 5 => 1, 6 => 2 }
- */
-declare function countBy<T, K>(set: Set<T>, mapper: (value: T, value2: T, set: Set<T>) => K): Map<K, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/set/countBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/countBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/**
- * Counts the occurrences of items in a Set based on a transformation function.
- *
- * This function takes a Set and a function that generates a key from each value.
- * It returns a Map with the generated keys and their counts as values.
- * The count is incremented for each element for which the transformation produces the same key.
- *
- * @template T - The type of elements in the Set.
- * @template K - The type of keys produced by the transformation function.
- * @param {Set<T>} set - The Set to count occurrences from.
- * @param {(value: T, value2: T, set: Set<T>) => K} mapper - The function to produce a key for counting.
- * @returns {Map<K, number>} A Map containing the mapped keys and their counts.
- *
- * @example
- * const set = new Set([1, 2, 3, 4, 5]);
- * const result = countBy(set, (value) => value % 2 === 0 ? 'even' : 'odd');
- * // result will be Map(2) { 'odd' => 3, 'even' => 2 }
- *
- * @example
- * const set = new Set(['apple', 'banana', 'cherry']);
- * const result = countBy(set, (value) => value.length);
- * // result will be Map(2) { 5 => 1, 6 => 2 }
- */
-declare function countBy<T, K>(set: Set<T>, mapper: (value: T, value2: T, set: Set<T>) => K): Map<K, number>;
-
-export { countBy };
Index: de_modules/es-toolkit/dist/set/countBy.js
===================================================================
--- node_modules/es-toolkit/dist/set/countBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function countBy(set, mapper) {
-    const result = new Map();
-    for (const value of set) {
-        const mappedKey = mapper(value, value, set);
-        result.set(mappedKey, (result.get(mappedKey) ?? 0) + 1);
-    }
-    return result;
-}
-
-exports.countBy = countBy;
Index: de_modules/es-toolkit/dist/set/countBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/countBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function countBy(set, mapper) {
-    const result = new Map();
-    for (const value of set) {
-        const mappedKey = mapper(value, value, set);
-        result.set(mappedKey, (result.get(mappedKey) ?? 0) + 1);
-    }
-    return result;
-}
-
-export { countBy };
Index: de_modules/es-toolkit/dist/set/every.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/every.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Tests whether all elements in a Set satisfy the provided predicate function.
- *
- * This function iterates through all elements of the Set and checks if the predicate function
- * returns true for every element. It returns true if the predicate is satisfied for all elements,
- * and false otherwise.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to test.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {boolean} true if all elements satisfy the predicate, false otherwise.
- *
- * @example
- * const set = new Set([10, 20, 30]);
- * const result = every(set, (value) => value > 5);
- * // result will be: true
- *
- * const result2 = every(set, (value) => value > 15);
- * // result2 will be: false
- */
-declare function every<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/set/every.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/every.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Tests whether all elements in a Set satisfy the provided predicate function.
- *
- * This function iterates through all elements of the Set and checks if the predicate function
- * returns true for every element. It returns true if the predicate is satisfied for all elements,
- * and false otherwise.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to test.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {boolean} true if all elements satisfy the predicate, false otherwise.
- *
- * @example
- * const set = new Set([10, 20, 30]);
- * const result = every(set, (value) => value > 5);
- * // result will be: true
- *
- * const result2 = every(set, (value) => value > 15);
- * // result2 will be: false
- */
-declare function every<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): boolean;
-
-export { every };
Index: de_modules/es-toolkit/dist/set/every.js
===================================================================
--- node_modules/es-toolkit/dist/set/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function every(set, doesMatch) {
-    for (const value of set) {
-        if (!doesMatch(value, value, set)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-exports.every = every;
Index: de_modules/es-toolkit/dist/set/every.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/every.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function every(set, doesMatch) {
-    for (const value of set) {
-        if (!doesMatch(value, value, set)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-export { every };
Index: de_modules/es-toolkit/dist/set/filter.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/filter.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Filters a Set based on a predicate function.
- *
- * This function takes a Set and a predicate function, and returns a new Set containing
- * only the elements for which the predicate function returns true.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to filter.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} callback - A predicate function that tests each element.
- * @returns {Set<T>} A new Set containing only the elements that satisfy the predicate.
- *
- * @example
- * const set = new Set([1, 2, 3, 4, 5]);
- * const result = filter(set, (value) => value > 2);
- * // result will be:
- * // Set(3) { 3, 4, 5 }
- */
-declare function filter<T>(set: Set<T>, callback: (value: T, value2: T, set: Set<T>) => boolean): Set<T>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/set/filter.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/filter.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Filters a Set based on a predicate function.
- *
- * This function takes a Set and a predicate function, and returns a new Set containing
- * only the elements for which the predicate function returns true.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to filter.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} callback - A predicate function that tests each element.
- * @returns {Set<T>} A new Set containing only the elements that satisfy the predicate.
- *
- * @example
- * const set = new Set([1, 2, 3, 4, 5]);
- * const result = filter(set, (value) => value > 2);
- * // result will be:
- * // Set(3) { 3, 4, 5 }
- */
-declare function filter<T>(set: Set<T>, callback: (value: T, value2: T, set: Set<T>) => boolean): Set<T>;
-
-export { filter };
Index: de_modules/es-toolkit/dist/set/filter.js
===================================================================
--- node_modules/es-toolkit/dist/set/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function filter(set, callback) {
-    const result = new Set();
-    for (const value of set) {
-        if (callback(value, value, set)) {
-            result.add(value);
-        }
-    }
-    return result;
-}
-
-exports.filter = filter;
Index: de_modules/es-toolkit/dist/set/filter.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/filter.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function filter(set, callback) {
-    const result = new Set();
-    for (const value of set) {
-        if (callback(value, value, set)) {
-            result.add(value);
-        }
-    }
-    return result;
-}
-
-export { filter };
Index: de_modules/es-toolkit/dist/set/find.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/find.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Finds the first element in a Set for which the predicate function returns true.
- *
- * This function iterates through the elements of the Set and returns the first
- * element for which the predicate function returns true. If no element satisfies the predicate,
- * it returns undefined.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to search.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {T | undefined} The first element that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const set = new Set([
- *   { name: 'apple', quantity: 10 },
- *   { name: 'banana', quantity: 5 },
- *   { name: 'grape', quantity: 15 }
- * ]);
- * const result = find(set, (value) => value.quantity > 10);
- * // result will be: { name: 'grape', quantity: 15 }
- */
-declare function find<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): T | undefined;
-
-export { find };
Index: de_modules/es-toolkit/dist/set/find.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/find.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * Finds the first element in a Set for which the predicate function returns true.
- *
- * This function iterates through the elements of the Set and returns the first
- * element for which the predicate function returns true. If no element satisfies the predicate,
- * it returns undefined.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to search.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {T | undefined} The first element that satisfies the predicate, or undefined if none found.
- *
- * @example
- * const set = new Set([
- *   { name: 'apple', quantity: 10 },
- *   { name: 'banana', quantity: 5 },
- *   { name: 'grape', quantity: 15 }
- * ]);
- * const result = find(set, (value) => value.quantity > 10);
- * // result will be: { name: 'grape', quantity: 15 }
- */
-declare function find<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): T | undefined;
-
-export { find };
Index: de_modules/es-toolkit/dist/set/find.js
===================================================================
--- node_modules/es-toolkit/dist/set/find.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function find(set, doesMatch) {
-    for (const value of set) {
-        if (doesMatch(value, value, set)) {
-            return value;
-        }
-    }
-    return undefined;
-}
-
-exports.find = find;
Index: de_modules/es-toolkit/dist/set/find.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/find.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function find(set, doesMatch) {
-    for (const value of set) {
-        if (doesMatch(value, value, set)) {
-            return value;
-        }
-    }
-    return undefined;
-}
-
-export { find };
Index: de_modules/es-toolkit/dist/set/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export { countBy } from './countBy.mjs';
-export { every } from './every.mjs';
-export { filter } from './filter.mjs';
-export { find } from './find.mjs';
-export { keyBy } from './keyBy.mjs';
-export { map } from './map.mjs';
-export { reduce } from './reduce.mjs';
-export { some } from './some.mjs';
Index: de_modules/es-toolkit/dist/set/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export { countBy } from './countBy.js';
-export { every } from './every.js';
-export { filter } from './filter.js';
-export { find } from './find.js';
-export { keyBy } from './keyBy.js';
-export { map } from './map.js';
-export { reduce } from './reduce.js';
-export { some } from './some.js';
Index: de_modules/es-toolkit/dist/set/index.js
===================================================================
--- node_modules/es-toolkit/dist/set/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const countBy = require('./countBy.js');
-const every = require('./every.js');
-const filter = require('./filter.js');
-const find = require('./find.js');
-const keyBy = require('./keyBy.js');
-const map = require('./map.js');
-const reduce = require('./reduce.js');
-const some = require('./some.js');
-
-
-
-exports.countBy = countBy.countBy;
-exports.every = every.every;
-exports.filter = filter.filter;
-exports.find = find.find;
-exports.keyBy = keyBy.keyBy;
-exports.map = map.map;
-exports.reduce = reduce.reduce;
-exports.some = some.some;
Index: de_modules/es-toolkit/dist/set/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-export { countBy } from './countBy.mjs';
-export { every } from './every.mjs';
-export { filter } from './filter.mjs';
-export { find } from './find.mjs';
-export { keyBy } from './keyBy.mjs';
-export { map } from './map.mjs';
-export { reduce } from './reduce.mjs';
-export { some } from './some.mjs';
Index: de_modules/es-toolkit/dist/set/keyBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/keyBy.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Maps each element of a Set based on a provided key-generating function.
- *
- * This function takes a Set and a function that generates a key from each value.
- * It returns a new Map where the keys are generated by the key function and the values are
- * the corresponding values from the original set. If multiple elements produce the same key,
- * the last value encountered will be used.
- *
- * @template T - The type of elements in the Set.
- * @template K - The type of keys to produce in the returned Map.
- * @param {Set<T>} set - The set of elements to be mapped.
- * @param {(value: T, value2: T, set: Set<T>) => K} getKeyFromValue - A function that generates a key from a value.
- * @returns {Map<K, T>} A Map where the generated keys are mapped to each element's value.
- *
- * @example
- * const set = new Set([
- *   { type: 'fruit', name: 'apple' },
- *   { type: 'fruit', name: 'banana' },
- *   { type: 'vegetable', name: 'carrot' }
- * ]);
- * const result = keyBy(set, item => item.type);
- * // result will be:
- * // Map(2) {
- * //   'fruit' => { type: 'fruit', name: 'banana' },
- * //   'vegetable' => { type: 'vegetable', name: 'carrot' }
- * // }
- */
-declare function keyBy<T, K>(set: Set<T>, getKeyFromValue: (value: T, value2: T, set: Set<T>) => K): Map<K, T>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/set/keyBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/keyBy.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Maps each element of a Set based on a provided key-generating function.
- *
- * This function takes a Set and a function that generates a key from each value.
- * It returns a new Map where the keys are generated by the key function and the values are
- * the corresponding values from the original set. If multiple elements produce the same key,
- * the last value encountered will be used.
- *
- * @template T - The type of elements in the Set.
- * @template K - The type of keys to produce in the returned Map.
- * @param {Set<T>} set - The set of elements to be mapped.
- * @param {(value: T, value2: T, set: Set<T>) => K} getKeyFromValue - A function that generates a key from a value.
- * @returns {Map<K, T>} A Map where the generated keys are mapped to each element's value.
- *
- * @example
- * const set = new Set([
- *   { type: 'fruit', name: 'apple' },
- *   { type: 'fruit', name: 'banana' },
- *   { type: 'vegetable', name: 'carrot' }
- * ]);
- * const result = keyBy(set, item => item.type);
- * // result will be:
- * // Map(2) {
- * //   'fruit' => { type: 'fruit', name: 'banana' },
- * //   'vegetable' => { type: 'vegetable', name: 'carrot' }
- * // }
- */
-declare function keyBy<T, K>(set: Set<T>, getKeyFromValue: (value: T, value2: T, set: Set<T>) => K): Map<K, T>;
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/set/keyBy.js
===================================================================
--- node_modules/es-toolkit/dist/set/keyBy.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function keyBy(set, getKeyFromValue) {
-    const result = new Map();
-    for (const value of set) {
-        const newKey = getKeyFromValue(value, value, set);
-        result.set(newKey, value);
-    }
-    return result;
-}
-
-exports.keyBy = keyBy;
Index: de_modules/es-toolkit/dist/set/keyBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/keyBy.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function keyBy(set, getKeyFromValue) {
-    const result = new Map();
-    for (const value of set) {
-        const newKey = getKeyFromValue(value, value, set);
-        result.set(newKey, value);
-    }
-    return result;
-}
-
-export { keyBy };
Index: de_modules/es-toolkit/dist/set/map.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/map.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a new Set with elements transformed by the provided function.
- *
- * This function takes a Set and a function that generates a new value from each element.
- * It returns a new Set where the elements are the result of applying the function to each element.
- *
- * @template T - The type of elements in the input Set.
- * @template U - The type of elements in the output Set.
- * @param {Set<T>} set - The Set to transform.
- * @param {(value: T, value2: T, set: Set<T>) => U} getNewValue - A function that generates a new value from an element.
- * @returns {Set<U>} A new Set with transformed elements.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = map(set, (value) => value * 2);
- * // result will be:
- * // Set(3) { 2, 4, 6 }
- */
-declare function map<T, U>(set: Set<T>, getNewValue: (value: T, value2: T, set: Set<T>) => U): Set<U>;
-
-export { map };
Index: de_modules/es-toolkit/dist/set/map.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Creates a new Set with elements transformed by the provided function.
- *
- * This function takes a Set and a function that generates a new value from each element.
- * It returns a new Set where the elements are the result of applying the function to each element.
- *
- * @template T - The type of elements in the input Set.
- * @template U - The type of elements in the output Set.
- * @param {Set<T>} set - The Set to transform.
- * @param {(value: T, value2: T, set: Set<T>) => U} getNewValue - A function that generates a new value from an element.
- * @returns {Set<U>} A new Set with transformed elements.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = map(set, (value) => value * 2);
- * // result will be:
- * // Set(3) { 2, 4, 6 }
- */
-declare function map<T, U>(set: Set<T>, getNewValue: (value: T, value2: T, set: Set<T>) => U): Set<U>;
-
-export { map };
Index: de_modules/es-toolkit/dist/set/map.js
===================================================================
--- node_modules/es-toolkit/dist/set/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function map(set, getNewValue) {
-    const result = new Set();
-    for (const value of set) {
-        const newValue = getNewValue(value, value, set);
-        result.add(newValue);
-    }
-    return result;
-}
-
-exports.map = map;
Index: de_modules/es-toolkit/dist/set/map.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/map.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function map(set, getNewValue) {
-    const result = new Set();
-    for (const value of set) {
-        const newValue = getNewValue(value, value, set);
-        result.add(newValue);
-    }
-    return result;
-}
-
-export { map };
Index: de_modules/es-toolkit/dist/set/reduce.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/reduce.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Reduces a Set to a single value by iterating through its elements and applying a callback function.
- *
- * This function iterates through all elements of the Set and applies the callback function to each element,
- * accumulating the result. If an initial value is provided, it is used as the starting accumulator value.
- * If no initial value is provided and the Set is empty, a TypeError is thrown.
- *
- * @template T - The type of elements in the Set.
- * @template A - The type of the accumulator.
- * @param {Set<T>} set - The Set to reduce.
- * @param {(accumulator: A, value: T, value2: T, set: Set<T>) => A} callback - A function that processes each element and updates the accumulator.
- * @param {A} [initialValue] - The initial value for the accumulator. If not provided, the first element in the Set is used.
- * @returns {A} The final accumulated value.
- * @throws {TypeError} If the Set is empty and no initial value is provided.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = reduce(set, (acc, value) => acc + value, 0);
- * // result will be: 6
- *
- * @example
- * const set = new Set([10, 20]);
- * const result = reduce(set, (acc, value) => acc + value);
- * // result will be: 30 (starts with first value 10)
- */
-declare function reduce<T, A = T>(set: Set<T>, callback: (accumulator: A, value: T, value2: T, set: Set<T>) => A, initialValue?: A): A;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/set/reduce.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/reduce.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/**
- * Reduces a Set to a single value by iterating through its elements and applying a callback function.
- *
- * This function iterates through all elements of the Set and applies the callback function to each element,
- * accumulating the result. If an initial value is provided, it is used as the starting accumulator value.
- * If no initial value is provided and the Set is empty, a TypeError is thrown.
- *
- * @template T - The type of elements in the Set.
- * @template A - The type of the accumulator.
- * @param {Set<T>} set - The Set to reduce.
- * @param {(accumulator: A, value: T, value2: T, set: Set<T>) => A} callback - A function that processes each element and updates the accumulator.
- * @param {A} [initialValue] - The initial value for the accumulator. If not provided, the first element in the Set is used.
- * @returns {A} The final accumulated value.
- * @throws {TypeError} If the Set is empty and no initial value is provided.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = reduce(set, (acc, value) => acc + value, 0);
- * // result will be: 6
- *
- * @example
- * const set = new Set([10, 20]);
- * const result = reduce(set, (acc, value) => acc + value);
- * // result will be: 30 (starts with first value 10)
- */
-declare function reduce<T, A = T>(set: Set<T>, callback: (accumulator: A, value: T, value2: T, set: Set<T>) => A, initialValue?: A): A;
-
-export { reduce };
Index: de_modules/es-toolkit/dist/set/reduce.js
===================================================================
--- node_modules/es-toolkit/dist/set/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function reduce(set, callback, initialValue) {
-    if (initialValue == null && set.size === 0) {
-        throw new TypeError('Reduce of empty set with no initial value');
-    }
-    let accumulator = initialValue;
-    for (const value of set) {
-        if (accumulator == null) {
-            accumulator = value;
-        }
-        else {
-            accumulator = callback(accumulator, value, value, set);
-        }
-    }
-    return accumulator;
-}
-
-exports.reduce = reduce;
Index: de_modules/es-toolkit/dist/set/reduce.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/reduce.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-function reduce(set, callback, initialValue) {
-    if (initialValue == null && set.size === 0) {
-        throw new TypeError('Reduce of empty set with no initial value');
-    }
-    let accumulator = initialValue;
-    for (const value of set) {
-        if (accumulator == null) {
-            accumulator = value;
-        }
-        else {
-            accumulator = callback(accumulator, value, value, set);
-        }
-    }
-    return accumulator;
-}
-
-export { reduce };
Index: de_modules/es-toolkit/dist/set/some.d.mts
===================================================================
--- node_modules/es-toolkit/dist/set/some.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Tests whether at least one element in a Set satisfies the provided predicate function.
- *
- * This function iterates through the elements of the Set and checks if the predicate function
- * returns true for at least one element. It returns true if any element satisfies the predicate,
- * and false otherwise.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to test.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {boolean} true if at least one element satisfies the predicate, false otherwise.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = some(set, (value) => value > 2);
- * // result will be: true
- *
- * const result2 = some(set, (value) => value > 5);
- * // result2 will be: false
- */
-declare function some<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/set/some.d.ts
===================================================================
--- node_modules/es-toolkit/dist/set/some.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/**
- * Tests whether at least one element in a Set satisfies the provided predicate function.
- *
- * This function iterates through the elements of the Set and checks if the predicate function
- * returns true for at least one element. It returns true if any element satisfies the predicate,
- * and false otherwise.
- *
- * @template T - The type of elements in the Set.
- * @param {Set<T>} set - The Set to test.
- * @param {(value: T, value2: T, set: Set<T>) => boolean} doesMatch - A predicate function that tests each element.
- * @returns {boolean} true if at least one element satisfies the predicate, false otherwise.
- *
- * @example
- * const set = new Set([1, 2, 3]);
- * const result = some(set, (value) => value > 2);
- * // result will be: true
- *
- * const result2 = some(set, (value) => value > 5);
- * // result2 will be: false
- */
-declare function some<T>(set: Set<T>, doesMatch: (value: T, value2: T, set: Set<T>) => boolean): boolean;
-
-export { some };
Index: de_modules/es-toolkit/dist/set/some.js
===================================================================
--- node_modules/es-toolkit/dist/set/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function some(set, doesMatch) {
-    for (const value of set) {
-        if (doesMatch(value, value, set)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-exports.some = some;
Index: de_modules/es-toolkit/dist/set/some.mjs
===================================================================
--- node_modules/es-toolkit/dist/set/some.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function some(set, doesMatch) {
-    for (const value of set) {
-        if (doesMatch(value, value, set)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-export { some };
Index: de_modules/es-toolkit/dist/string/camelCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/camelCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts a string to camel case.
- *
- * Camel case is the naming convention in which the first word is written in lowercase and
- * each subsequent word begins with a capital letter, concatenated without any separator characters.
- *
- * @param {string} str - The string that is to be changed to camel case.
- * @returns {string} - The converted string to camel case.
- *
- * @example
- * const convertedStr1 = camelCase('camelCase') // returns 'camelCase'
- * const convertedStr2 = camelCase('some whitespace') // returns 'someWhitespace'
- * const convertedStr3 = camelCase('hyphen-text') // returns 'hyphenText'
- * const convertedStr4 = camelCase('HTTPRequest') // returns 'httpRequest'
- * const convertedStr5 = camelCase('Keep unicode 😅') // returns 'keepUnicode😅'
- */
-declare function camelCase(str: string): string;
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/string/camelCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/camelCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Converts a string to camel case.
- *
- * Camel case is the naming convention in which the first word is written in lowercase and
- * each subsequent word begins with a capital letter, concatenated without any separator characters.
- *
- * @param {string} str - The string that is to be changed to camel case.
- * @returns {string} - The converted string to camel case.
- *
- * @example
- * const convertedStr1 = camelCase('camelCase') // returns 'camelCase'
- * const convertedStr2 = camelCase('some whitespace') // returns 'someWhitespace'
- * const convertedStr3 = camelCase('hyphen-text') // returns 'hyphenText'
- * const convertedStr4 = camelCase('HTTPRequest') // returns 'httpRequest'
- * const convertedStr5 = camelCase('Keep unicode 😅') // returns 'keepUnicode😅'
- */
-declare function camelCase(str: string): string;
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/string/camelCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/camelCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const capitalize = require('./capitalize.js');
-const words = require('./words.js');
-
-function camelCase(str) {
-    const words$1 = words.words(str);
-    if (words$1.length === 0) {
-        return '';
-    }
-    const [first, ...rest] = words$1;
-    return `${first.toLowerCase()}${rest.map(word => capitalize.capitalize(word)).join('')}`;
-}
-
-exports.camelCase = camelCase;
Index: de_modules/es-toolkit/dist/string/camelCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/camelCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { capitalize } from './capitalize.mjs';
-import { words } from './words.mjs';
-
-function camelCase(str) {
-    const words$1 = words(str);
-    if (words$1.length === 0) {
-        return '';
-    }
-    const [first, ...rest] = words$1;
-    return `${first.toLowerCase()}${rest.map(word => capitalize(word)).join('')}`;
-}
-
-export { camelCase };
Index: de_modules/es-toolkit/dist/string/capitalize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/capitalize.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Converts the first character of string to upper case and the remaining to lower case.
- *
- * @template T - Literal type of the string.
- * @param {T} str - The string to be converted to uppercase.
- * @returns {Capitalize<T>} - The capitalized string.
- *
- * @example
- * const result = capitalize('fred') // returns 'Fred'
- * const result2 = capitalize('FRED') // returns 'Fred'
- */
-declare function capitalize<T extends string>(str: T): Capitalize<T>;
-type Capitalize<T extends string> = T extends `${infer F}${infer R}` ? `${Uppercase<F>}${Lowercase<R>}` : T;
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/string/capitalize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/capitalize.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Converts the first character of string to upper case and the remaining to lower case.
- *
- * @template T - Literal type of the string.
- * @param {T} str - The string to be converted to uppercase.
- * @returns {Capitalize<T>} - The capitalized string.
- *
- * @example
- * const result = capitalize('fred') // returns 'Fred'
- * const result2 = capitalize('FRED') // returns 'Fred'
- */
-declare function capitalize<T extends string>(str: T): Capitalize<T>;
-type Capitalize<T extends string> = T extends `${infer F}${infer R}` ? `${Uppercase<F>}${Lowercase<R>}` : T;
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/string/capitalize.js
===================================================================
--- node_modules/es-toolkit/dist/string/capitalize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function capitalize(str) {
-    return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase());
-}
-
-exports.capitalize = capitalize;
Index: de_modules/es-toolkit/dist/string/capitalize.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/capitalize.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function capitalize(str) {
-    return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase());
-}
-
-export { capitalize };
Index: de_modules/es-toolkit/dist/string/constantCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/constantCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to constant case.
- *
- * Constant case is a naming convention where each word is written in uppercase letters and separated by an underscore (`_`). For example, `CONSTANT_CASE`.
- *
- * @param {string} str - The string that is to be changed to constant case.
- * @returns {string} - The converted string to constant case.
- *
- * @example
- * const convertedStr1 = constantCase('camelCase') // returns 'CAMEL_CASE'
- * const convertedStr2 = constantCase('some whitespace') // returns 'SOME_WHITESPACE'
- * const convertedStr3 = constantCase('hyphen-text') // returns 'HYPHEN_TEXT'
- * const convertedStr4 = constantCase('HTTPRequest') // returns 'HTTP_REQUEST'
- */
-declare function constantCase(str: string): string;
-
-export { constantCase };
Index: de_modules/es-toolkit/dist/string/constantCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/constantCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to constant case.
- *
- * Constant case is a naming convention where each word is written in uppercase letters and separated by an underscore (`_`). For example, `CONSTANT_CASE`.
- *
- * @param {string} str - The string that is to be changed to constant case.
- * @returns {string} - The converted string to constant case.
- *
- * @example
- * const convertedStr1 = constantCase('camelCase') // returns 'CAMEL_CASE'
- * const convertedStr2 = constantCase('some whitespace') // returns 'SOME_WHITESPACE'
- * const convertedStr3 = constantCase('hyphen-text') // returns 'HYPHEN_TEXT'
- * const convertedStr4 = constantCase('HTTPRequest') // returns 'HTTP_REQUEST'
- */
-declare function constantCase(str: string): string;
-
-export { constantCase };
Index: de_modules/es-toolkit/dist/string/constantCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/constantCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function constantCase(str) {
-    const words$1 = words.words(str);
-    return words$1.map(word => word.toUpperCase()).join('_');
-}
-
-exports.constantCase = constantCase;
Index: de_modules/es-toolkit/dist/string/constantCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/constantCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { words } from './words.mjs';
-
-function constantCase(str) {
-    const words$1 = words(str);
-    return words$1.map(word => word.toUpperCase()).join('_');
-}
-
-export { constantCase };
Index: de_modules/es-toolkit/dist/string/deburr.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/deburr.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Converts a string by replacing special characters and diacritical marks with their ASCII equivalents.
- * For example, "Crème brûlée" becomes "Creme brulee".
- *
- * @param {string} str - The input string to be deburred.
- * @returns {string} - The deburred string with special characters replaced by their ASCII equivalents.
- *
- * @example
- * // Basic usage:
- * deburr('Æthelred') // returns 'Aethelred'
- *
- * @example
- * // Handling diacritical marks:
- * deburr('München') // returns 'Munchen'
- *
- * @example
- * // Special characters:
- * deburr('Crème brûlée') // returns 'Creme brulee'
- */
-declare function deburr(str: string): string;
-
-export { deburr };
Index: de_modules/es-toolkit/dist/string/deburr.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/deburr.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**
- * Converts a string by replacing special characters and diacritical marks with their ASCII equivalents.
- * For example, "Crème brûlée" becomes "Creme brulee".
- *
- * @param {string} str - The input string to be deburred.
- * @returns {string} - The deburred string with special characters replaced by their ASCII equivalents.
- *
- * @example
- * // Basic usage:
- * deburr('Æthelred') // returns 'Aethelred'
- *
- * @example
- * // Handling diacritical marks:
- * deburr('München') // returns 'Munchen'
- *
- * @example
- * // Special characters:
- * deburr('Crème brûlée') // returns 'Creme brulee'
- */
-declare function deburr(str: string): string;
-
-export { deburr };
Index: de_modules/es-toolkit/dist/string/deburr.js
===================================================================
--- node_modules/es-toolkit/dist/string/deburr.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const deburrMap = new Map([
-    ['Æ', 'Ae'],
-    ['Ð', 'D'],
-    ['Ø', 'O'],
-    ['Þ', 'Th'],
-    ['ß', 'ss'],
-    ['æ', 'ae'],
-    ['ð', 'd'],
-    ['ø', 'o'],
-    ['þ', 'th'],
-    ['Đ', 'D'],
-    ['đ', 'd'],
-    ['Ħ', 'H'],
-    ['ħ', 'h'],
-    ['ı', 'i'],
-    ['Ĳ', 'IJ'],
-    ['ĳ', 'ij'],
-    ['ĸ', 'k'],
-    ['Ŀ', 'L'],
-    ['ŀ', 'l'],
-    ['Ł', 'L'],
-    ['ł', 'l'],
-    ['ŉ', "'n"],
-    ['Ŋ', 'N'],
-    ['ŋ', 'n'],
-    ['Œ', 'Oe'],
-    ['œ', 'oe'],
-    ['Ŧ', 'T'],
-    ['ŧ', 't'],
-    ['ſ', 's'],
-]);
-function deburr(str) {
-    str = str.normalize('NFD');
-    let result = '';
-    for (let i = 0; i < str.length; i++) {
-        const char = str[i];
-        if ((char >= '\u0300' && char <= '\u036f') || (char >= '\ufe20' && char <= '\ufe23')) {
-            continue;
-        }
-        result += deburrMap.get(char) ?? char;
-    }
-    return result;
-}
-
-exports.deburr = deburr;
Index: de_modules/es-toolkit/dist/string/deburr.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/deburr.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-const deburrMap = new Map([
-    ['Æ', 'Ae'],
-    ['Ð', 'D'],
-    ['Ø', 'O'],
-    ['Þ', 'Th'],
-    ['ß', 'ss'],
-    ['æ', 'ae'],
-    ['ð', 'd'],
-    ['ø', 'o'],
-    ['þ', 'th'],
-    ['Đ', 'D'],
-    ['đ', 'd'],
-    ['Ħ', 'H'],
-    ['ħ', 'h'],
-    ['ı', 'i'],
-    ['Ĳ', 'IJ'],
-    ['ĳ', 'ij'],
-    ['ĸ', 'k'],
-    ['Ŀ', 'L'],
-    ['ŀ', 'l'],
-    ['Ł', 'L'],
-    ['ł', 'l'],
-    ['ŉ', "'n"],
-    ['Ŋ', 'N'],
-    ['ŋ', 'n'],
-    ['Œ', 'Oe'],
-    ['œ', 'oe'],
-    ['Ŧ', 'T'],
-    ['ŧ', 't'],
-    ['ſ', 's'],
-]);
-function deburr(str) {
-    str = str.normalize('NFD');
-    let result = '';
-    for (let i = 0; i < str.length; i++) {
-        const char = str[i];
-        if ((char >= '\u0300' && char <= '\u036f') || (char >= '\ufe20' && char <= '\ufe23')) {
-            continue;
-        }
-        result += deburrMap.get(char) ?? char;
-    }
-    return result;
-}
-
-export { deburr };
Index: de_modules/es-toolkit/dist/string/escape.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/escape.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the characters "&", "<", ">", '"', and "'" in `str` to their corresponding HTML entities.
- * For example, "<" becomes "&lt;".
- *
- * @param {string} str  The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * escape('This is a <div> element.'); // returns 'This is a &lt;div&gt; element.'
- * escape('This is a "quote"'); // returns 'This is a &quot;quote&quot;'
- * escape("This is a 'quote'"); // returns 'This is a &#39;quote&#39;'
- * escape('This is a & symbol'); // returns 'This is a &amp; symbol'
- */
-declare function escape(str: string): string;
-
-export { escape };
Index: de_modules/es-toolkit/dist/string/escape.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/escape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the characters "&", "<", ">", '"', and "'" in `str` to their corresponding HTML entities.
- * For example, "<" becomes "&lt;".
- *
- * @param {string} str  The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * escape('This is a <div> element.'); // returns 'This is a &lt;div&gt; element.'
- * escape('This is a "quote"'); // returns 'This is a &quot;quote&quot;'
- * escape("This is a 'quote'"); // returns 'This is a &#39;quote&#39;'
- * escape('This is a & symbol'); // returns 'This is a &amp; symbol'
- */
-declare function escape(str: string): string;
-
-export { escape };
Index: de_modules/es-toolkit/dist/string/escape.js
===================================================================
--- node_modules/es-toolkit/dist/string/escape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const htmlEscapes = {
-    '&': '&amp;',
-    '<': '&lt;',
-    '>': '&gt;',
-    '"': '&quot;',
-    "'": '&#39;',
-};
-function escape(str) {
-    return str.replace(/[&<>"']/g, match => htmlEscapes[match]);
-}
-
-exports.escape = escape;
Index: de_modules/es-toolkit/dist/string/escape.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/escape.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-const htmlEscapes = {
-    '&': '&amp;',
-    '<': '&lt;',
-    '>': '&gt;',
-    '"': '&quot;',
-    "'": '&#39;',
-};
-function escape(str) {
-    return str.replace(/[&<>"']/g, match => htmlEscapes[match]);
-}
-
-export { escape };
Index: de_modules/es-toolkit/dist/string/escapeRegExp.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/escapeRegExp.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Escapes the RegExp special characters "^", "$", "\\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", and "|" in `str`.
- *
- * @param {string} str The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * import { escapeRegExp } from 'es-toolkit/string';
- *
- * escapeRegExp('[es-toolkit](https://es-toolkit.dev/)'); // returns '\[es-toolkit\]\(https://es-toolkit\.dev/\)'
- */
-declare function escapeRegExp(str: string): string;
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/string/escapeRegExp.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/escapeRegExp.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Escapes the RegExp special characters "^", "$", "\\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", and "|" in `str`.
- *
- * @param {string} str The string to escape.
- * @returns {string} Returns the escaped string.
- *
- * @example
- * import { escapeRegExp } from 'es-toolkit/string';
- *
- * escapeRegExp('[es-toolkit](https://es-toolkit.dev/)'); // returns '\[es-toolkit\]\(https://es-toolkit\.dev/\)'
- */
-declare function escapeRegExp(str: string): string;
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/string/escapeRegExp.js
===================================================================
--- node_modules/es-toolkit/dist/string/escapeRegExp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function escapeRegExp(str) {
-    return str.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
-}
-
-exports.escapeRegExp = escapeRegExp;
Index: de_modules/es-toolkit/dist/string/escapeRegExp.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/escapeRegExp.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function escapeRegExp(str) {
-    return str.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
-}
-
-export { escapeRegExp };
Index: de_modules/es-toolkit/dist/string/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { camelCase } from './camelCase.mjs';
-export { capitalize } from './capitalize.mjs';
-export { constantCase } from './constantCase.mjs';
-export { deburr } from './deburr.mjs';
-export { escape } from './escape.mjs';
-export { escapeRegExp } from './escapeRegExp.mjs';
-export { kebabCase } from './kebabCase.mjs';
-export { lowerCase } from './lowerCase.mjs';
-export { lowerFirst } from './lowerFirst.mjs';
-export { pad } from './pad.mjs';
-export { pascalCase } from './pascalCase.mjs';
-export { reverseString } from './reverseString.mjs';
-export { snakeCase } from './snakeCase.mjs';
-export { startCase } from './startCase.mjs';
-export { trim } from './trim.mjs';
-export { trimEnd } from './trimEnd.mjs';
-export { trimStart } from './trimStart.mjs';
-export { unescape } from './unescape.mjs';
-export { upperCase } from './upperCase.mjs';
-export { upperFirst } from './upperFirst.mjs';
-export { words } from './words.mjs';
Index: de_modules/es-toolkit/dist/string/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { camelCase } from './camelCase.js';
-export { capitalize } from './capitalize.js';
-export { constantCase } from './constantCase.js';
-export { deburr } from './deburr.js';
-export { escape } from './escape.js';
-export { escapeRegExp } from './escapeRegExp.js';
-export { kebabCase } from './kebabCase.js';
-export { lowerCase } from './lowerCase.js';
-export { lowerFirst } from './lowerFirst.js';
-export { pad } from './pad.js';
-export { pascalCase } from './pascalCase.js';
-export { reverseString } from './reverseString.js';
-export { snakeCase } from './snakeCase.js';
-export { startCase } from './startCase.js';
-export { trim } from './trim.js';
-export { trimEnd } from './trimEnd.js';
-export { trimStart } from './trimStart.js';
-export { unescape } from './unescape.js';
-export { upperCase } from './upperCase.js';
-export { upperFirst } from './upperFirst.js';
-export { words } from './words.js';
Index: de_modules/es-toolkit/dist/string/index.js
===================================================================
--- node_modules/es-toolkit/dist/string/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const camelCase = require('./camelCase.js');
-const capitalize = require('./capitalize.js');
-const constantCase = require('./constantCase.js');
-const deburr = require('./deburr.js');
-const escape = require('./escape.js');
-const escapeRegExp = require('./escapeRegExp.js');
-const kebabCase = require('./kebabCase.js');
-const lowerCase = require('./lowerCase.js');
-const lowerFirst = require('./lowerFirst.js');
-const pad = require('./pad.js');
-const pascalCase = require('./pascalCase.js');
-const reverseString = require('./reverseString.js');
-const snakeCase = require('./snakeCase.js');
-const startCase = require('./startCase.js');
-const trim = require('./trim.js');
-const trimEnd = require('./trimEnd.js');
-const trimStart = require('./trimStart.js');
-const unescape = require('./unescape.js');
-const upperCase = require('./upperCase.js');
-const upperFirst = require('./upperFirst.js');
-const words = require('./words.js');
-
-
-
-exports.camelCase = camelCase.camelCase;
-exports.capitalize = capitalize.capitalize;
-exports.constantCase = constantCase.constantCase;
-exports.deburr = deburr.deburr;
-exports.escape = escape.escape;
-exports.escapeRegExp = escapeRegExp.escapeRegExp;
-exports.kebabCase = kebabCase.kebabCase;
-exports.lowerCase = lowerCase.lowerCase;
-exports.lowerFirst = lowerFirst.lowerFirst;
-exports.pad = pad.pad;
-exports.pascalCase = pascalCase.pascalCase;
-exports.reverseString = reverseString.reverseString;
-exports.snakeCase = snakeCase.snakeCase;
-exports.startCase = startCase.startCase;
-exports.trim = trim.trim;
-exports.trimEnd = trimEnd.trimEnd;
-exports.trimStart = trimStart.trimStart;
-exports.unescape = unescape.unescape;
-exports.upperCase = upperCase.upperCase;
-exports.upperFirst = upperFirst.upperFirst;
-exports.words = words.words;
Index: de_modules/es-toolkit/dist/string/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-export { camelCase } from './camelCase.mjs';
-export { capitalize } from './capitalize.mjs';
-export { constantCase } from './constantCase.mjs';
-export { deburr } from './deburr.mjs';
-export { escape } from './escape.mjs';
-export { escapeRegExp } from './escapeRegExp.mjs';
-export { kebabCase } from './kebabCase.mjs';
-export { lowerCase } from './lowerCase.mjs';
-export { lowerFirst } from './lowerFirst.mjs';
-export { pad } from './pad.mjs';
-export { pascalCase } from './pascalCase.mjs';
-export { reverseString } from './reverseString.mjs';
-export { snakeCase } from './snakeCase.mjs';
-export { startCase } from './startCase.mjs';
-export { trim } from './trim.mjs';
-export { trimEnd } from './trimEnd.mjs';
-export { trimStart } from './trimStart.mjs';
-export { unescape } from './unescape.mjs';
-export { upperCase } from './upperCase.mjs';
-export { upperFirst } from './upperFirst.mjs';
-export { words } from './words.mjs';
Index: de_modules/es-toolkit/dist/string/kebabCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/kebabCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to kebab case.
- *
- * Kebab case is the naming convention in which each word is written in lowercase and separated by a dash (-) character.
- *
- * @param {string} str - The string that is to be changed to kebab case.
- * @returns {string} - The converted string to kebab case.
- *
- * @example
- * const convertedStr1 = kebabCase('camelCase') // returns 'camel-case'
- * const convertedStr2 = kebabCase('some whitespace') // returns 'some-whitespace'
- * const convertedStr3 = kebabCase('hyphen-text') // returns 'hyphen-text'
- * const convertedStr4 = kebabCase('HTTPRequest') // returns 'http-request'
- */
-declare function kebabCase(str: string): string;
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/string/kebabCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/kebabCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to kebab case.
- *
- * Kebab case is the naming convention in which each word is written in lowercase and separated by a dash (-) character.
- *
- * @param {string} str - The string that is to be changed to kebab case.
- * @returns {string} - The converted string to kebab case.
- *
- * @example
- * const convertedStr1 = kebabCase('camelCase') // returns 'camel-case'
- * const convertedStr2 = kebabCase('some whitespace') // returns 'some-whitespace'
- * const convertedStr3 = kebabCase('hyphen-text') // returns 'hyphen-text'
- * const convertedStr4 = kebabCase('HTTPRequest') // returns 'http-request'
- */
-declare function kebabCase(str: string): string;
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/string/kebabCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/kebabCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function kebabCase(str) {
-    const words$1 = words.words(str);
-    return words$1.map(word => word.toLowerCase()).join('-');
-}
-
-exports.kebabCase = kebabCase;
Index: de_modules/es-toolkit/dist/string/kebabCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/kebabCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { words } from './words.mjs';
-
-function kebabCase(str) {
-    const words$1 = words(str);
-    return words$1.map(word => word.toLowerCase()).join('-');
-}
-
-export { kebabCase };
Index: de_modules/es-toolkit/dist/string/lowerCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/lowerCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to lower case.
- *
- * Lower case is the naming convention in which each word is written in lowercase and separated by an space ( ) character.
- *
- * @param {string} str - The string that is to be changed to lower case.
- * @returns {string} - The converted string to lower case.
- *
- * @example
- * const convertedStr1 = lowerCase('camelCase') // returns 'camel case'
- * const convertedStr2 = lowerCase('some whitespace') // returns 'some whitespace'
- * const convertedStr3 = lowerCase('hyphen-text') // returns 'hyphen text'
- * const convertedStr4 = lowerCase('HTTPRequest') // returns 'http request'
- */
-declare function lowerCase(str: string): string;
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/string/lowerCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/lowerCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to lower case.
- *
- * Lower case is the naming convention in which each word is written in lowercase and separated by an space ( ) character.
- *
- * @param {string} str - The string that is to be changed to lower case.
- * @returns {string} - The converted string to lower case.
- *
- * @example
- * const convertedStr1 = lowerCase('camelCase') // returns 'camel case'
- * const convertedStr2 = lowerCase('some whitespace') // returns 'some whitespace'
- * const convertedStr3 = lowerCase('hyphen-text') // returns 'hyphen text'
- * const convertedStr4 = lowerCase('HTTPRequest') // returns 'http request'
- */
-declare function lowerCase(str: string): string;
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/string/lowerCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/lowerCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function lowerCase(str) {
-    const words$1 = words.words(str);
-    return words$1.map(word => word.toLowerCase()).join(' ');
-}
-
-exports.lowerCase = lowerCase;
Index: de_modules/es-toolkit/dist/string/lowerCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/lowerCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { words } from './words.mjs';
-
-function lowerCase(str) {
-    const words$1 = words(str);
-    return words$1.map(word => word.toLowerCase()).join(' ');
-}
-
-export { lowerCase };
Index: de_modules/es-toolkit/dist/string/lowerFirst.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/lowerFirst.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to lower case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = lowerCase('fred') // returns 'fred'
- * const convertedStr2 = lowerCase('Fred') // returns 'fred'
- * const convertedStr3 = lowerCase('FRED') // returns 'fRED'
- */
-declare function lowerFirst(str: string): string;
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/string/lowerFirst.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/lowerFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to lower case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = lowerCase('fred') // returns 'fred'
- * const convertedStr2 = lowerCase('Fred') // returns 'fred'
- * const convertedStr3 = lowerCase('FRED') // returns 'fRED'
- */
-declare function lowerFirst(str: string): string;
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/string/lowerFirst.js
===================================================================
--- node_modules/es-toolkit/dist/string/lowerFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function lowerFirst(str) {
-    return str.substring(0, 1).toLowerCase() + str.substring(1);
-}
-
-exports.lowerFirst = lowerFirst;
Index: de_modules/es-toolkit/dist/string/lowerFirst.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/lowerFirst.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function lowerFirst(str) {
-    return str.substring(0, 1).toLowerCase() + str.substring(1);
-}
-
-export { lowerFirst };
Index: de_modules/es-toolkit/dist/string/pad.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/pad.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length.
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string, the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = pad('abc', 8);         // result will be '  abc   '
- * const result2 = pad('abc', 8, '_-');   // result will be '_-abc_-_'
- * const result3 = pad('abc', 3);         // result will be 'abc'
- * const result4 = pad('abc', 2);         // result will be 'abc'
- *
- */
-declare function pad(str: string, length: number, chars?: string): string;
-
-export { pad };
Index: de_modules/es-toolkit/dist/string/pad.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/pad.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length.
- * If the length is less than or equal to the original string's length, or if the padding character is an empty string, the original string is returned unchanged.
- *
- * @param {string} str - The string to pad.
- * @param {number} [length] - The length of the resulting string once padded.
- * @param {string} [chars] - The character(s) to use for padding.
- * @returns {string} - The padded string, or the original string if padding is not required.
- *
- * @example
- * const result1 = pad('abc', 8);         // result will be '  abc   '
- * const result2 = pad('abc', 8, '_-');   // result will be '_-abc_-_'
- * const result3 = pad('abc', 3);         // result will be 'abc'
- * const result4 = pad('abc', 2);         // result will be 'abc'
- *
- */
-declare function pad(str: string, length: number, chars?: string): string;
-
-export { pad };
Index: de_modules/es-toolkit/dist/string/pad.js
===================================================================
--- node_modules/es-toolkit/dist/string/pad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function pad(str, length, chars = ' ') {
-    return str.padStart(Math.floor((length - str.length) / 2) + str.length, chars).padEnd(length, chars);
-}
-
-exports.pad = pad;
Index: de_modules/es-toolkit/dist/string/pad.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/pad.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function pad(str, length, chars = ' ') {
-    return str.padStart(Math.floor((length - str.length) / 2) + str.length, chars).padEnd(length, chars);
-}
-
-export { pad };
Index: de_modules/es-toolkit/dist/string/pascalCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/pascalCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to Pascal case.
- *
- * Pascal case is the naming convention in which each word is capitalized and concatenated without any separator characters.
- *
- * @param {string} str - The string that is to be changed to pascal case.
- * @returns {string} - The converted string to Pascal case.
- *
- * @example
- * const convertedStr1 = pascalCase('pascalCase') // returns 'PascalCase'
- * const convertedStr2 = pascalCase('some whitespace') // returns 'SomeWhitespace'
- * const convertedStr3 = pascalCase('hyphen-text') // returns 'HyphenText'
- * const convertedStr4 = pascalCase('HTTPRequest') // returns 'HttpRequest'
- */
-declare function pascalCase(str: string): string;
-
-export { pascalCase };
Index: de_modules/es-toolkit/dist/string/pascalCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/pascalCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to Pascal case.
- *
- * Pascal case is the naming convention in which each word is capitalized and concatenated without any separator characters.
- *
- * @param {string} str - The string that is to be changed to pascal case.
- * @returns {string} - The converted string to Pascal case.
- *
- * @example
- * const convertedStr1 = pascalCase('pascalCase') // returns 'PascalCase'
- * const convertedStr2 = pascalCase('some whitespace') // returns 'SomeWhitespace'
- * const convertedStr3 = pascalCase('hyphen-text') // returns 'HyphenText'
- * const convertedStr4 = pascalCase('HTTPRequest') // returns 'HttpRequest'
- */
-declare function pascalCase(str: string): string;
-
-export { pascalCase };
Index: de_modules/es-toolkit/dist/string/pascalCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/pascalCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const capitalize = require('./capitalize.js');
-const words = require('./words.js');
-
-function pascalCase(str) {
-    const words$1 = words.words(str);
-    return words$1.map(word => capitalize.capitalize(word)).join('');
-}
-
-exports.pascalCase = pascalCase;
Index: de_modules/es-toolkit/dist/string/pascalCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/pascalCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { capitalize } from './capitalize.mjs';
-import { words } from './words.mjs';
-
-function pascalCase(str) {
-    const words$1 = words(str);
-    return words$1.map(word => capitalize(word)).join('');
-}
-
-export { pascalCase };
Index: de_modules/es-toolkit/dist/string/reverseString.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/reverseString.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Reverses a given string.
- *
- * This function takes a string as input and returns a new string that is the reverse of the input.
- *
- * @param {string} value - The string that is to be reversed.
- * @returns {string} - The reversed string.
- *
- * @example
- * const reversedStr1 = reverseString('hello') // returns 'olleh'
- * const reversedStr2 = reverseString('PascalCase') // returns 'esaClacsaP'
- * const reversedStr3 = reverseString('foo 😄 bar') // returns 'rab 😄 oof'
- */
-declare function reverseString(value: string): string;
-
-export { reverseString };
Index: de_modules/es-toolkit/dist/string/reverseString.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/reverseString.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Reverses a given string.
- *
- * This function takes a string as input and returns a new string that is the reverse of the input.
- *
- * @param {string} value - The string that is to be reversed.
- * @returns {string} - The reversed string.
- *
- * @example
- * const reversedStr1 = reverseString('hello') // returns 'olleh'
- * const reversedStr2 = reverseString('PascalCase') // returns 'esaClacsaP'
- * const reversedStr3 = reverseString('foo 😄 bar') // returns 'rab 😄 oof'
- */
-declare function reverseString(value: string): string;
-
-export { reverseString };
Index: de_modules/es-toolkit/dist/string/reverseString.js
===================================================================
--- node_modules/es-toolkit/dist/string/reverseString.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function reverseString(value) {
-    return [...value].reverse().join('');
-}
-
-exports.reverseString = reverseString;
Index: de_modules/es-toolkit/dist/string/reverseString.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/reverseString.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function reverseString(value) {
-    return [...value].reverse().join('');
-}
-
-export { reverseString };
Index: de_modules/es-toolkit/dist/string/snakeCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/snakeCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to snake case.
- *
- * Snake case is the naming convention in which each word is written in lowercase and separated by an underscore (_) character.
- *
- * @param {string} str - The string that is to be changed to snake case.
- * @returns {string} - The converted string to snake case.
- *
- * @example
- * const convertedStr1 = snakeCase('camelCase') // returns 'camel_case'
- * const convertedStr2 = snakeCase('some whitespace') // returns 'some_whitespace'
- * const convertedStr3 = snakeCase('hyphen-text') // returns 'hyphen_text'
- * const convertedStr4 = snakeCase('HTTPRequest') // returns 'http_request'
- */
-declare function snakeCase(str: string): string;
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/string/snakeCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/snakeCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to snake case.
- *
- * Snake case is the naming convention in which each word is written in lowercase and separated by an underscore (_) character.
- *
- * @param {string} str - The string that is to be changed to snake case.
- * @returns {string} - The converted string to snake case.
- *
- * @example
- * const convertedStr1 = snakeCase('camelCase') // returns 'camel_case'
- * const convertedStr2 = snakeCase('some whitespace') // returns 'some_whitespace'
- * const convertedStr3 = snakeCase('hyphen-text') // returns 'hyphen_text'
- * const convertedStr4 = snakeCase('HTTPRequest') // returns 'http_request'
- */
-declare function snakeCase(str: string): string;
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/string/snakeCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/snakeCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function snakeCase(str) {
-    const words$1 = words.words(str);
-    return words$1.map(word => word.toLowerCase()).join('_');
-}
-
-exports.snakeCase = snakeCase;
Index: de_modules/es-toolkit/dist/string/snakeCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/snakeCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { words } from './words.mjs';
-
-function snakeCase(str) {
-    const words$1 = words(str);
-    return words$1.map(word => word.toLowerCase()).join('_');
-}
-
-export { snakeCase };
Index: de_modules/es-toolkit/dist/string/startCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/startCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the first character of each word in a string to uppercase and the remaining characters to lowercase.
- *
- * Start case is the naming convention in which each word is written with an initial capital letter.
- * @param {string} str - The string to convert.
- * @returns {string} The converted string.
- *
- * @example
- * const result1 = startCase('hello world');  // result will be 'Hello World'
- * const result2 = startCase('HELLO WORLD');  // result will be 'Hello World'
- * const result3 = startCase('hello-world');  // result will be 'Hello World'
- * const result4 = startCase('hello_world');  // result will be 'Hello World'
- */
-declare function startCase(str: string): string;
-
-export { startCase };
Index: de_modules/es-toolkit/dist/string/startCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/startCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the first character of each word in a string to uppercase and the remaining characters to lowercase.
- *
- * Start case is the naming convention in which each word is written with an initial capital letter.
- * @param {string} str - The string to convert.
- * @returns {string} The converted string.
- *
- * @example
- * const result1 = startCase('hello world');  // result will be 'Hello World'
- * const result2 = startCase('HELLO WORLD');  // result will be 'Hello World'
- * const result3 = startCase('hello-world');  // result will be 'Hello World'
- * const result4 = startCase('hello_world');  // result will be 'Hello World'
- */
-declare function startCase(str: string): string;
-
-export { startCase };
Index: de_modules/es-toolkit/dist/string/startCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/startCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function startCase(str) {
-    const words$1 = words.words(str.trim());
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        const word = words$1[i];
-        if (result) {
-            result += ' ';
-        }
-        result += word[0].toUpperCase() + word.slice(1).toLowerCase();
-    }
-    return result;
-}
-
-exports.startCase = startCase;
Index: de_modules/es-toolkit/dist/string/startCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/startCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { words } from './words.mjs';
-
-function startCase(str) {
-    const words$1 = words(str.trim());
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        const word = words$1[i];
-        if (result) {
-            result += ' ';
-        }
-        result += word[0].toUpperCase() + word.slice(1).toLowerCase();
-    }
-    return result;
-}
-
-export { startCase };
Index: de_modules/es-toolkit/dist/string/trim.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/trim.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the string. Can be a single character or an array of characters.
- * @returns {string} - The resulting string after the specified characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(str: string, chars?: string | string[]): string;
-
-export { trim };
Index: de_modules/es-toolkit/dist/string/trim.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/trim.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Removes leading and trailing whitespace or specified characters from a string.
- *
- * @param {string} str - The string from which characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the string. Can be a single character or an array of characters.
- * @returns {string} - The resulting string after the specified characters have been removed.
- *
- * @example
- * trim("  hello  "); // "hello"
- * trim("--hello--", "-"); // "hello"
- * trim("##hello##", ["#", "o"]); // "hell"
- */
-declare function trim(str: string, chars?: string | string[]): string;
-
-export { trim };
Index: de_modules/es-toolkit/dist/string/trim.js
===================================================================
--- node_modules/es-toolkit/dist/string/trim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const trimEnd = require('./trimEnd.js');
-const trimStart = require('./trimStart.js');
-
-function trim(str, chars) {
-    if (chars === undefined) {
-        return str.trim();
-    }
-    return trimStart.trimStart(trimEnd.trimEnd(str, chars), chars);
-}
-
-exports.trim = trim;
Index: de_modules/es-toolkit/dist/string/trim.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/trim.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { trimEnd } from './trimEnd.mjs';
-import { trimStart } from './trimStart.mjs';
-
-function trim(str, chars) {
-    if (chars === undefined) {
-        return str.trim();
-    }
-    return trimStart(trimEnd(str, chars), chars);
-}
-
-export { trim };
Index: de_modules/es-toolkit/dist/string/trimEnd.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/trimEnd.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * If `chars` is a string, it should be a single character. To trim a string with multiple characters,
- * provide an array instead.
- *
- * @param {string} str - The string from which trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string.
- * @returns {string} - The resulting string after the specified trailing character has been removed.
- *
- * @example
- * const trimmedStr1 = trimEnd('hello---', '-') // returns 'hello'
- * const trimmedStr2 = trimEnd('123000', '0') // returns '123'
- * const trimmedStr3 = trimEnd('abcabcabc', 'c') // returns 'abcabcab'
- * const trimmedStr4 = trimEnd('trimmedxxx', 'x') // returns 'trimmed'
- */
-declare function trimEnd(str: string, chars?: string | string[]): string;
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/string/trimEnd.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/trimEnd.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes trailing whitespace or specified characters from a string.
- *
- * If `chars` is a string, it should be a single character. To trim a string with multiple characters,
- * provide an array instead.
- *
- * @param {string} str - The string from which trailing characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the end of the string.
- * @returns {string} - The resulting string after the specified trailing character has been removed.
- *
- * @example
- * const trimmedStr1 = trimEnd('hello---', '-') // returns 'hello'
- * const trimmedStr2 = trimEnd('123000', '0') // returns '123'
- * const trimmedStr3 = trimEnd('abcabcabc', 'c') // returns 'abcabcab'
- * const trimmedStr4 = trimEnd('trimmedxxx', 'x') // returns 'trimmed'
- */
-declare function trimEnd(str: string, chars?: string | string[]): string;
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/string/trimEnd.js
===================================================================
--- node_modules/es-toolkit/dist/string/trimEnd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function trimEnd(str, chars) {
-    if (chars === undefined) {
-        return str.trimEnd();
-    }
-    let endIndex = str.length;
-    switch (typeof chars) {
-        case 'string': {
-            if (chars.length !== 1) {
-                throw new Error(`The 'chars' parameter should be a single character string.`);
-            }
-            while (endIndex > 0 && str[endIndex - 1] === chars) {
-                endIndex--;
-            }
-            break;
-        }
-        case 'object': {
-            while (endIndex > 0 && chars.includes(str[endIndex - 1])) {
-                endIndex--;
-            }
-        }
-    }
-    return str.substring(0, endIndex);
-}
-
-exports.trimEnd = trimEnd;
Index: de_modules/es-toolkit/dist/string/trimEnd.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/trimEnd.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-function trimEnd(str, chars) {
-    if (chars === undefined) {
-        return str.trimEnd();
-    }
-    let endIndex = str.length;
-    switch (typeof chars) {
-        case 'string': {
-            if (chars.length !== 1) {
-                throw new Error(`The 'chars' parameter should be a single character string.`);
-            }
-            while (endIndex > 0 && str[endIndex - 1] === chars) {
-                endIndex--;
-            }
-            break;
-        }
-        case 'object': {
-            while (endIndex > 0 && chars.includes(str[endIndex - 1])) {
-                endIndex--;
-            }
-        }
-    }
-    return str.substring(0, endIndex);
-}
-
-export { trimEnd };
Index: de_modules/es-toolkit/dist/string/trimStart.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/trimStart.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * If `chars` is a string, it should be a single character. To trim a string with multiple characters,
- * provide an array instead.
- *
- * @param {string} str - The string from which leading characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the start of the string.
- * @returns {string} - The resulting string after the specified leading character has been removed.
- *
- * @example
- * const trimmedStr1 = trimStart('---hello', '-') // returns 'hello'
- * const trimmedStr2 = trimStart('000123', '0') // returns '123'
- * const trimmedStr3 = trimStart('abcabcabc', 'a') // returns 'bcabcabc'
- * const trimmedStr4 = trimStart('xxxtrimmed', 'x') // returns 'trimmed'
- */
-declare function trimStart(str: string, chars?: string | string[]): string;
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/string/trimStart.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/trimStart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * Removes leading whitespace or specified characters from a string.
- *
- * If `chars` is a string, it should be a single character. To trim a string with multiple characters,
- * provide an array instead.
- *
- * @param {string} str - The string from which leading characters will be trimmed.
- * @param {string | string[]} chars - The character(s) to remove from the start of the string.
- * @returns {string} - The resulting string after the specified leading character has been removed.
- *
- * @example
- * const trimmedStr1 = trimStart('---hello', '-') // returns 'hello'
- * const trimmedStr2 = trimStart('000123', '0') // returns '123'
- * const trimmedStr3 = trimStart('abcabcabc', 'a') // returns 'bcabcabc'
- * const trimmedStr4 = trimStart('xxxtrimmed', 'x') // returns 'trimmed'
- */
-declare function trimStart(str: string, chars?: string | string[]): string;
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/string/trimStart.js
===================================================================
--- node_modules/es-toolkit/dist/string/trimStart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function trimStart(str, chars) {
-    if (chars === undefined) {
-        return str.trimStart();
-    }
-    let startIndex = 0;
-    switch (typeof chars) {
-        case 'string': {
-            while (startIndex < str.length && str[startIndex] === chars) {
-                startIndex++;
-            }
-            break;
-        }
-        case 'object': {
-            while (startIndex < str.length && chars.includes(str[startIndex])) {
-                startIndex++;
-            }
-        }
-    }
-    return str.substring(startIndex);
-}
-
-exports.trimStart = trimStart;
Index: de_modules/es-toolkit/dist/string/trimStart.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/trimStart.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-function trimStart(str, chars) {
-    if (chars === undefined) {
-        return str.trimStart();
-    }
-    let startIndex = 0;
-    switch (typeof chars) {
-        case 'string': {
-            while (startIndex < str.length && str[startIndex] === chars) {
-                startIndex++;
-            }
-            break;
-        }
-        case 'object': {
-            while (startIndex < str.length && chars.includes(str[startIndex])) {
-                startIndex++;
-            }
-        }
-    }
-    return str.substring(startIndex);
-}
-
-export { trimStart };
Index: de_modules/es-toolkit/dist/string/unescape.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/unescape.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the HTML entities `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `str` to their corresponding characters.
- * It is the inverse of `escape`.
- *
- * @param {string} str The string to unescape.
- * @returns {string} Returns the unescaped string.
- *
- * @example
- * unescape('This is a &lt;div&gt; element.'); // returns 'This is a <div> element.'
- * unescape('This is a &quot;quote&quot;'); // returns 'This is a "quote"'
- * unescape('This is a &#39;quote&#39;'); // returns 'This is a 'quote''
- * unescape('This is a &amp; symbol'); // returns 'This is a & symbol'
- */
-declare function unescape(str: string): string;
-
-export { unescape };
Index: de_modules/es-toolkit/dist/string/unescape.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/unescape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * Converts the HTML entities `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `str` to their corresponding characters.
- * It is the inverse of `escape`.
- *
- * @param {string} str The string to unescape.
- * @returns {string} Returns the unescaped string.
- *
- * @example
- * unescape('This is a &lt;div&gt; element.'); // returns 'This is a <div> element.'
- * unescape('This is a &quot;quote&quot;'); // returns 'This is a "quote"'
- * unescape('This is a &#39;quote&#39;'); // returns 'This is a 'quote''
- * unescape('This is a &amp; symbol'); // returns 'This is a & symbol'
- */
-declare function unescape(str: string): string;
-
-export { unescape };
Index: de_modules/es-toolkit/dist/string/unescape.js
===================================================================
--- node_modules/es-toolkit/dist/string/unescape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const htmlUnescapes = {
-    '&amp;': '&',
-    '&lt;': '<',
-    '&gt;': '>',
-    '&quot;': '"',
-    '&#39;': "'",
-};
-function unescape(str) {
-    return str.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g, match => htmlUnescapes[match] || "'");
-}
-
-exports.unescape = unescape;
Index: de_modules/es-toolkit/dist/string/unescape.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/unescape.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-const htmlUnescapes = {
-    '&amp;': '&',
-    '&lt;': '<',
-    '&gt;': '>',
-    '&quot;': '"',
-    '&#39;': "'",
-};
-function unescape(str) {
-    return str.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g, match => htmlUnescapes[match] || "'");
-}
-
-export { unescape };
Index: de_modules/es-toolkit/dist/string/upperCase.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/upperCase.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to upper case.
- *
- * Upper case is the naming convention in which each word is written in uppercase and separated by an space ( ) character.
- *
- * @param {string} str - The string that is to be changed to upper case.
- * @returns {string} - The converted string to upper case.
- *
- * @example
- * const convertedStr1 = upperCase('camelCase') // returns 'CAMEL CASE'
- * const convertedStr2 = upperCase('some whitespace') // returns 'SOME WHITESPACE'
- * const convertedStr3 = upperCase('hyphen-text') // returns 'HYPHEN TEXT'
- * const convertedStr4 = upperCase('HTTPRequest') // returns 'HTTP REQUEST'
- */
-declare function upperCase(str: string): string;
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/string/upperCase.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/upperCase.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * Converts a string to upper case.
- *
- * Upper case is the naming convention in which each word is written in uppercase and separated by an space ( ) character.
- *
- * @param {string} str - The string that is to be changed to upper case.
- * @returns {string} - The converted string to upper case.
- *
- * @example
- * const convertedStr1 = upperCase('camelCase') // returns 'CAMEL CASE'
- * const convertedStr2 = upperCase('some whitespace') // returns 'SOME WHITESPACE'
- * const convertedStr3 = upperCase('hyphen-text') // returns 'HYPHEN TEXT'
- * const convertedStr4 = upperCase('HTTPRequest') // returns 'HTTP REQUEST'
- */
-declare function upperCase(str: string): string;
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/string/upperCase.js
===================================================================
--- node_modules/es-toolkit/dist/string/upperCase.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const words = require('./words.js');
-
-function upperCase(str) {
-    const words$1 = words.words(str);
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        result += words$1[i].toUpperCase();
-        if (i < words$1.length - 1) {
-            result += ' ';
-        }
-    }
-    return result;
-}
-
-exports.upperCase = upperCase;
Index: de_modules/es-toolkit/dist/string/upperCase.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/upperCase.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { words } from './words.mjs';
-
-function upperCase(str) {
-    const words$1 = words(str);
-    let result = '';
-    for (let i = 0; i < words$1.length; i++) {
-        result += words$1[i].toUpperCase();
-        if (i < words$1.length - 1) {
-            result += ' ';
-        }
-    }
-    return result;
-}
-
-export { upperCase };
Index: de_modules/es-toolkit/dist/string/upperFirst.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/upperFirst.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = upperFirst('fred') // returns 'Fred'
- * const convertedStr2 = upperFirst('Fred') // returns 'Fred'
- * const convertedStr3 = upperFirst('FRED') // returns 'FRED'
- */
-declare function upperFirst(str: string): string;
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/string/upperFirst.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/upperFirst.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Converts the first character of string to upper case.
- *
- * @param {string} str - The string that is to be changed
- * @returns {string} - The converted string.
- *
- * @example
- * const convertedStr1 = upperFirst('fred') // returns 'Fred'
- * const convertedStr2 = upperFirst('Fred') // returns 'Fred'
- * const convertedStr3 = upperFirst('FRED') // returns 'FRED'
- */
-declare function upperFirst(str: string): string;
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/string/upperFirst.js
===================================================================
--- node_modules/es-toolkit/dist/string/upperFirst.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function upperFirst(str) {
-    return str.substring(0, 1).toUpperCase() + str.substring(1);
-}
-
-exports.upperFirst = upperFirst;
Index: de_modules/es-toolkit/dist/string/upperFirst.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/upperFirst.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-function upperFirst(str) {
-    return str.substring(0, 1).toUpperCase() + str.substring(1);
-}
-
-export { upperFirst };
Index: de_modules/es-toolkit/dist/string/words.d.mts
===================================================================
--- node_modules/es-toolkit/dist/string/words.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Splits `string` into an array of its words, treating spaces and punctuation marks as separators.
- *
- * @param {string} str The string to inspect.
- * @param {RegExp | string} [pattern] The pattern to match words.
- * @returns {string[]} Returns the words of `string`.
- *
- * @example
- * words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- * words('camelCaseHTTPRequest🚀');
- * // => ['camel', 'Case', 'HTTP', 'Request', '🚀']
- *
- * words('Lunedì 18 Set')
- * // => ['Lunedì', '18', 'Set']
- */
-declare function words(str: string): string[];
-
-export { words };
Index: de_modules/es-toolkit/dist/string/words.d.ts
===================================================================
--- node_modules/es-toolkit/dist/string/words.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/**
- * Splits `string` into an array of its words, treating spaces and punctuation marks as separators.
- *
- * @param {string} str The string to inspect.
- * @param {RegExp | string} [pattern] The pattern to match words.
- * @returns {string[]} Returns the words of `string`.
- *
- * @example
- * words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- * words('camelCaseHTTPRequest🚀');
- * // => ['camel', 'Case', 'HTTP', 'Request', '🚀']
- *
- * words('Lunedì 18 Set')
- * // => ['Lunedì', '18', 'Set']
- */
-declare function words(str: string): string[];
-
-export { words };
Index: de_modules/es-toolkit/dist/string/words.js
===================================================================
--- node_modules/es-toolkit/dist/string/words.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const CASE_SPLIT_PATTERN = /\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;
-function words(str) {
-    return Array.from(str.match(CASE_SPLIT_PATTERN) ?? []);
-}
-
-exports.CASE_SPLIT_PATTERN = CASE_SPLIT_PATTERN;
-exports.words = words;
Index: de_modules/es-toolkit/dist/string/words.mjs
===================================================================
--- node_modules/es-toolkit/dist/string/words.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-const CASE_SPLIT_PATTERN = /\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;
-function words(str) {
-    return Array.from(str.match(CASE_SPLIT_PATTERN) ?? []);
-}
-
-export { CASE_SPLIT_PATTERN, words };
Index: de_modules/es-toolkit/dist/util/attempt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/util/attempt.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/**
- * Attempt to execute a function and return the result or error.
- * Returns a tuple where:
- * - On success: [null, Result] - First element is null, second is the result
- * - On error: [Error, null] - First element is the caught error, second is null
- *
- * @template {unknown} T - The type of the result of the function.
- * @template {unknown} E - The type of the error that can be thrown by the function.
- * @param {() => T} func - The function to execute.
- * @returns {[null, T] | [E, null]} A tuple containing either [null, result] or [error, null].
- *
- * @example
- * // Successful execution
- * const [error, result] = attempt(() => 42);
- * // [null, 42]
- *
- * // Failed execution
- * const [error, result] = attempt(() => {
- *   throw new Error('Something went wrong');
- * });
- * // [Error, null]
- *
- * // With type parameter
- * const [error, names] = attempt<string[]>(() => ['Alice', 'Bob']);
- * // [null, ['Alice', 'Bob']]
- *
- * @note
- * Important: This function is not suitable for async functions (functions that return a `Promise`).
- * When passing an async function, it will return `[null, Promise<Result>]`, but won't catch any
- * errors if the Promise is rejected later.
- *
- * For handling async functions, use the `attemptAsync` function instead:
- * ```
- * const [error, data] = await attemptAsync(async () => {
- *   const response = await fetch('https://api.example.com/data');
- *   return response.json();
- * });
- * ```
- */
-declare function attempt<T, E>(func: () => T): [null, T] | [E, null];
-
-export { attempt };
Index: de_modules/es-toolkit/dist/util/attempt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/util/attempt.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/**
- * Attempt to execute a function and return the result or error.
- * Returns a tuple where:
- * - On success: [null, Result] - First element is null, second is the result
- * - On error: [Error, null] - First element is the caught error, second is null
- *
- * @template {unknown} T - The type of the result of the function.
- * @template {unknown} E - The type of the error that can be thrown by the function.
- * @param {() => T} func - The function to execute.
- * @returns {[null, T] | [E, null]} A tuple containing either [null, result] or [error, null].
- *
- * @example
- * // Successful execution
- * const [error, result] = attempt(() => 42);
- * // [null, 42]
- *
- * // Failed execution
- * const [error, result] = attempt(() => {
- *   throw new Error('Something went wrong');
- * });
- * // [Error, null]
- *
- * // With type parameter
- * const [error, names] = attempt<string[]>(() => ['Alice', 'Bob']);
- * // [null, ['Alice', 'Bob']]
- *
- * @note
- * Important: This function is not suitable for async functions (functions that return a `Promise`).
- * When passing an async function, it will return `[null, Promise<Result>]`, but won't catch any
- * errors if the Promise is rejected later.
- *
- * For handling async functions, use the `attemptAsync` function instead:
- * ```
- * const [error, data] = await attemptAsync(async () => {
- *   const response = await fetch('https://api.example.com/data');
- *   return response.json();
- * });
- * ```
- */
-declare function attempt<T, E>(func: () => T): [null, T] | [E, null];
-
-export { attempt };
Index: de_modules/es-toolkit/dist/util/attempt.js
===================================================================
--- node_modules/es-toolkit/dist/util/attempt.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function attempt(func) {
-    try {
-        return [null, func()];
-    }
-    catch (error) {
-        return [error, null];
-    }
-}
-
-exports.attempt = attempt;
Index: de_modules/es-toolkit/dist/util/attempt.mjs
===================================================================
--- node_modules/es-toolkit/dist/util/attempt.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-function attempt(func) {
-    try {
-        return [null, func()];
-    }
-    catch (error) {
-        return [error, null];
-    }
-}
-
-export { attempt };
Index: de_modules/es-toolkit/dist/util/attemptAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/util/attemptAsync.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Attempt to execute an async function and return the result or error.
- * Returns a Promise that resolves to a tuple where:
- * - On success: [null, Result] - First element is null, second is the result
- * - On error: [Error, null] - First element is the caught error, second is null
- *
- * @template {unknown} T - The type of the result of the async function.
- * @template {unknown} E - The type of the error that can be thrown by the async function.
- * @param {() => Promise<T>} func - The async function to execute.
- * @returns {Promise<[null, T] | [E, null]>} A Promise that resolves to a tuple containing either [null, result] or [error, null].
- *
- * @example
- * // Successful execution
- * const [error, data] = await attemptAsync(async () => {
- *   const response = await fetch('https://api.example.com/data');
- *   return response.json();
- * });
- * // If successful: [null, { ... data ... }]
- *
- * // Failed execution
- * const [error, data] = await attemptAsync(async () => {
- *   throw new Error('Network error');
- * });
- * // [Error, null]
- *
- * // With type parameter
- * const [error, users] = await attemptAsync<User[]>(async () => {
- *   const response = await fetch('https://api.example.com/users');
- *   return response.json();
- * });
- * // users is typed as User[]
- */
-declare function attemptAsync<T, E>(func: () => Promise<T>): Promise<[null, T] | [E, null]>;
-
-export { attemptAsync };
Index: de_modules/es-toolkit/dist/util/attemptAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/util/attemptAsync.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * Attempt to execute an async function and return the result or error.
- * Returns a Promise that resolves to a tuple where:
- * - On success: [null, Result] - First element is null, second is the result
- * - On error: [Error, null] - First element is the caught error, second is null
- *
- * @template {unknown} T - The type of the result of the async function.
- * @template {unknown} E - The type of the error that can be thrown by the async function.
- * @param {() => Promise<T>} func - The async function to execute.
- * @returns {Promise<[null, T] | [E, null]>} A Promise that resolves to a tuple containing either [null, result] or [error, null].
- *
- * @example
- * // Successful execution
- * const [error, data] = await attemptAsync(async () => {
- *   const response = await fetch('https://api.example.com/data');
- *   return response.json();
- * });
- * // If successful: [null, { ... data ... }]
- *
- * // Failed execution
- * const [error, data] = await attemptAsync(async () => {
- *   throw new Error('Network error');
- * });
- * // [Error, null]
- *
- * // With type parameter
- * const [error, users] = await attemptAsync<User[]>(async () => {
- *   const response = await fetch('https://api.example.com/users');
- *   return response.json();
- * });
- * // users is typed as User[]
- */
-declare function attemptAsync<T, E>(func: () => Promise<T>): Promise<[null, T] | [E, null]>;
-
-export { attemptAsync };
Index: de_modules/es-toolkit/dist/util/attemptAsync.js
===================================================================
--- node_modules/es-toolkit/dist/util/attemptAsync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-async function attemptAsync(func) {
-    try {
-        const result = await func();
-        return [null, result];
-    }
-    catch (error) {
-        return [error, null];
-    }
-}
-
-exports.attemptAsync = attemptAsync;
Index: de_modules/es-toolkit/dist/util/attemptAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/util/attemptAsync.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-async function attemptAsync(func) {
-    try {
-        const result = await func();
-        return [null, result];
-    }
-    catch (error) {
-        return [error, null];
-    }
-}
-
-export { attemptAsync };
Index: de_modules/es-toolkit/dist/util/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/util/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export { attempt } from './attempt.mjs';
-export { attemptAsync } from './attemptAsync.mjs';
-export { invariant as assert, invariant } from './invariant.mjs';
Index: de_modules/es-toolkit/dist/util/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/util/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export { attempt } from './attempt.js';
-export { attemptAsync } from './attemptAsync.js';
-export { invariant as assert, invariant } from './invariant.js';
Index: de_modules/es-toolkit/dist/util/index.js
===================================================================
--- node_modules/es-toolkit/dist/util/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-const attempt = require('./attempt.js');
-const attemptAsync = require('./attemptAsync.js');
-const invariant = require('./invariant.js');
-
-
-
-exports.attempt = attempt.attempt;
-exports.attemptAsync = attemptAsync.attemptAsync;
-exports.assert = invariant.invariant;
-exports.invariant = invariant.invariant;
Index: de_modules/es-toolkit/dist/util/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/util/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export { attempt } from './attempt.mjs';
-export { attemptAsync } from './attemptAsync.mjs';
-export { invariant as assert, invariant } from './invariant.mjs';
Index: de_modules/es-toolkit/dist/util/invariant.d.mts
===================================================================
--- node_modules/es-toolkit/dist/util/invariant.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-/**
- * Asserts that a given condition is true. If the condition is false, an error is thrown with the provided message.
- *
- * @param {unknown} condition - The condition to evaluate.
- * @param {string} message - The error message to throw if the condition is false.
- * @returns {void} Returns void if the condition is true.
- * @throws {Error} Throws an error if the condition is false.
- *
- * @example
- * // This call will succeed without any errors
- * invariant(true, 'This should not throw');
- *
- * // This call will fail and throw an error with the message 'This should throw'
- * invariant(false, 'This should throw');
- */
-declare function invariant(condition: unknown, message: string): asserts condition;
-/**
- * Asserts that a given condition is true. If the condition is false, an error is thrown with the provided error.
- *
- * @param {unknown} condition - The condition to evaluate.
- * @param {Error} error - The error to throw if the condition is false.
- * @returns {void} Returns void if the condition is true.
- * @throws {Error} Throws an error if the condition is false.
- *
- * @example
- * // This call will succeed without any errors
- * invariant(true, new Error('This should not throw'));
- *
- * class CustomError extends Error {
- *   constructor(message: string) {
- *     super(message);
- *   }
- * }
- *
- * // This call will fail and throw an error with the message 'This should throw'
- * invariant(false, new CustomError('This should throw'));
- */
-declare function invariant(condition: unknown, error: Error): asserts condition;
-
-export { invariant };
Index: de_modules/es-toolkit/dist/util/invariant.d.ts
===================================================================
--- node_modules/es-toolkit/dist/util/invariant.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-/**
- * Asserts that a given condition is true. If the condition is false, an error is thrown with the provided message.
- *
- * @param {unknown} condition - The condition to evaluate.
- * @param {string} message - The error message to throw if the condition is false.
- * @returns {void} Returns void if the condition is true.
- * @throws {Error} Throws an error if the condition is false.
- *
- * @example
- * // This call will succeed without any errors
- * invariant(true, 'This should not throw');
- *
- * // This call will fail and throw an error with the message 'This should throw'
- * invariant(false, 'This should throw');
- */
-declare function invariant(condition: unknown, message: string): asserts condition;
-/**
- * Asserts that a given condition is true. If the condition is false, an error is thrown with the provided error.
- *
- * @param {unknown} condition - The condition to evaluate.
- * @param {Error} error - The error to throw if the condition is false.
- * @returns {void} Returns void if the condition is true.
- * @throws {Error} Throws an error if the condition is false.
- *
- * @example
- * // This call will succeed without any errors
- * invariant(true, new Error('This should not throw'));
- *
- * class CustomError extends Error {
- *   constructor(message: string) {
- *     super(message);
- *   }
- * }
- *
- * // This call will fail and throw an error with the message 'This should throw'
- * invariant(false, new CustomError('This should throw'));
- */
-declare function invariant(condition: unknown, error: Error): asserts condition;
-
-export { invariant };
Index: de_modules/es-toolkit/dist/util/invariant.js
===================================================================
--- node_modules/es-toolkit/dist/util/invariant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-'use strict';
-
-Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-
-function invariant(condition, message) {
-    if (condition) {
-        return;
-    }
-    if (typeof message === 'string') {
-        throw new Error(message);
-    }
-    throw message;
-}
-
-exports.invariant = invariant;
Index: de_modules/es-toolkit/dist/util/invariant.mjs
===================================================================
--- node_modules/es-toolkit/dist/util/invariant.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function invariant(condition, message) {
-    if (condition) {
-        return;
-    }
-    if (typeof message === 'string') {
-        throw new Error(message);
-    }
-    throw message;
-}
-
-export { invariant };
Index: de_modules/es-toolkit/error.d.ts
===================================================================
--- node_modules/es-toolkit/error.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/error';
Index: de_modules/es-toolkit/error.js
===================================================================
--- node_modules/es-toolkit/error.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/error');
Index: de_modules/es-toolkit/function.d.ts
===================================================================
--- node_modules/es-toolkit/function.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/function';
Index: de_modules/es-toolkit/function.js
===================================================================
--- node_modules/es-toolkit/function.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/function');
Index: de_modules/es-toolkit/map.d.ts
===================================================================
--- node_modules/es-toolkit/map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/map';
Index: de_modules/es-toolkit/map.js
===================================================================
--- node_modules/es-toolkit/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/map');
Index: de_modules/es-toolkit/math.d.ts
===================================================================
--- node_modules/es-toolkit/math.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/math';
Index: de_modules/es-toolkit/math.js
===================================================================
--- node_modules/es-toolkit/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/math');
Index: de_modules/es-toolkit/object.d.ts
===================================================================
--- node_modules/es-toolkit/object.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/object';
Index: de_modules/es-toolkit/object.js
===================================================================
--- node_modules/es-toolkit/object.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/object');
Index: de_modules/es-toolkit/package.json
===================================================================
--- node_modules/es-toolkit/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,346 +1,0 @@
-{
-  "name": "es-toolkit",
-  "version": "1.44.0",
-  "description": "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.",
-  "homepage": "https://es-toolkit.dev",
-  "bugs": "https://github.com/toss/es-toolkit/issues",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/toss/es-toolkit.git"
-  },
-  "license": "MIT",
-  "sideEffects": false,
-  "packageManager": "yarn@4.10.2",
-  "exports": {
-    ".": {
-      "import": {
-        "types": "./dist/index.d.mts",
-        "default": "./dist/index.mjs"
-      },
-      "require": {
-        "types": "./dist/index.d.ts",
-        "default": "./dist/index.js"
-      }
-    },
-    "./array": {
-      "import": {
-        "types": "./dist/array/index.d.mts",
-        "default": "./dist/array/index.mjs"
-      },
-      "require": {
-        "types": "./dist/array/index.d.ts",
-        "default": "./dist/array/index.js"
-      }
-    },
-    "./compat": {
-      "import": {
-        "types": "./dist/compat/index.d.mts",
-        "default": "./dist/compat/index.mjs"
-      },
-      "require": {
-        "types": "./dist/compat/index.d.ts",
-        "default": "./dist/compat/index.js"
-      }
-    },
-    "./compat/*": {
-      "default": {
-        "types": "./compat/*.d.ts",
-        "default": "./compat/*.js"
-      }
-    },
-    "./error": {
-      "import": {
-        "types": "./dist/error/index.d.mts",
-        "default": "./dist/error/index.mjs"
-      },
-      "require": {
-        "types": "./dist/error/index.d.ts",
-        "default": "./dist/error/index.js"
-      }
-    },
-    "./function": {
-      "import": {
-        "types": "./dist/function/index.d.mts",
-        "default": "./dist/function/index.mjs"
-      },
-      "require": {
-        "types": "./dist/function/index.d.ts",
-        "default": "./dist/function/index.js"
-      }
-    },
-    "./math": {
-      "import": {
-        "types": "./dist/math/index.d.mts",
-        "default": "./dist/math/index.mjs"
-      },
-      "require": {
-        "types": "./dist/math/index.d.ts",
-        "default": "./dist/math/index.js"
-      }
-    },
-    "./object": {
-      "import": {
-        "types": "./dist/object/index.d.mts",
-        "default": "./dist/object/index.mjs"
-      },
-      "require": {
-        "types": "./dist/object/index.d.ts",
-        "default": "./dist/object/index.js"
-      }
-    },
-    "./predicate": {
-      "import": {
-        "types": "./dist/predicate/index.d.mts",
-        "default": "./dist/predicate/index.mjs"
-      },
-      "require": {
-        "types": "./dist/predicate/index.d.ts",
-        "default": "./dist/predicate/index.js"
-      }
-    },
-    "./promise": {
-      "import": {
-        "types": "./dist/promise/index.d.mts",
-        "default": "./dist/promise/index.mjs"
-      },
-      "require": {
-        "types": "./dist/promise/index.d.ts",
-        "default": "./dist/promise/index.js"
-      }
-    },
-    "./string": {
-      "import": {
-        "types": "./dist/string/index.d.mts",
-        "default": "./dist/string/index.mjs"
-      },
-      "require": {
-        "types": "./dist/string/index.d.ts",
-        "default": "./dist/string/index.js"
-      }
-    },
-    "./util": {
-      "import": {
-        "types": "./dist/util/index.d.mts",
-        "default": "./dist/util/index.mjs"
-      },
-      "require": {
-        "types": "./dist/util/index.d.ts",
-        "default": "./dist/util/index.js"
-      }
-    },
-    "./package.json": "./package.json"
-  },
-  "files": [
-    "dist",
-    "compat",
-    "*.d.ts",
-    "array.js",
-    "compat.js",
-    "error.js",
-    "function.js",
-    "map.js",
-    "math.js",
-    "object.js",
-    "predicate.js",
-    "promise.js",
-    "set.js",
-    "string.js",
-    "util.js"
-  ],
-  "workspaces": [
-    "docs",
-    "benchmarks"
-  ],
-  "scripts": {
-    "bench": "vitest bench",
-    "build": "rollup -c rollup.config.mjs && ./.scripts/postbuild.sh",
-    "format": "prettier --write .",
-    "gen:bundle-size": "node ./.scripts/generate-bundle-size.mjs",
-    "lint": "eslint --config eslint.config.mjs",
-    "packlint": "packlint sort -R",
-    "prepack": "yarn build",
-    "test": "vitest --coverage --typecheck",
-    "transform": "jscodeshift -t ./.scripts/tests/transform-lodash-test.ts $0 && prettier --write $0",
-    "typecheck": "tsc --noEmit"
-  },
-  "devDependencies": {
-    "@arethetypeswrong/cli": "^0.15.3",
-    "@changesets/changelog-github": "^0.5.0",
-    "@changesets/cli": "^2.27.1",
-    "@eslint/js": "^9.9.0",
-    "@rollup/plugin-terser": "^0.4.4",
-    "@rollup/plugin-typescript": "^12.1.0",
-    "@trivago/prettier-plugin-sort-imports": "^4.3.0",
-    "@types/broken-link-checker": "^0",
-    "@types/eslint": "^9",
-    "@types/jscodeshift": "^0.12.0",
-    "@types/lodash": "^4.17.20",
-    "@types/node": "^22.7.4",
-    "@types/tar": "^6.1.13",
-    "@typescript-eslint/parser": "^8.26.1",
-    "@vitest/coverage-istanbul": "^2.1.2",
-    "@vitest/eslint-plugin": "^1.3.4",
-    "@vue/compiler-sfc": "^3.5.10",
-    "broken-link-checker": "^0.7.8",
-    "eslint": "^9.22.0",
-    "eslint-config-prettier": "^9.1.0",
-    "eslint-plugin-no-for-of-array": "^0.0.1",
-    "eslint-plugin-prettier": "^5.2.1",
-    "eslint-plugin-vue": "^9.28.0",
-    "execa": "^9.3.0",
-    "globals": "^15.9.0",
-    "happy-dom": "^16.7.3",
-    "jscodeshift": "^17.0.0",
-    "packlint": "^0.2.4",
-    "prettier": "^3.2.5",
-    "prettier-plugin-sort-re-exports": "^0.1.0",
-    "rollup": "^4.19.0",
-    "rollup-plugin-dts": "^6.1.1",
-    "tar": "^6",
-    "tslib": "^2.6.3",
-    "tsx": "^4.19.0",
-    "typescript": "^5.8.2",
-    "typescript-eslint": "^8.6.0",
-    "vercel": "^41.4.1",
-    "vitest": "^2.1.2"
-  },
-  "publishConfig": {
-    "access": "public",
-    "main": "./dist/index.js",
-    "browser": "./dist/browser.global.js",
-    "module": "./dist/index.mjs",
-    "exports": {
-      ".": {
-        "import": {
-          "types": "./dist/index.d.mts",
-          "default": "./dist/index.mjs"
-        },
-        "require": {
-          "types": "./dist/index.d.ts",
-          "default": "./dist/index.js"
-        }
-      },
-      "./array": {
-        "import": {
-          "types": "./dist/array/index.d.mts",
-          "default": "./dist/array/index.mjs"
-        },
-        "require": {
-          "types": "./dist/array/index.d.ts",
-          "default": "./dist/array/index.js"
-        }
-      },
-      "./compat": {
-        "import": {
-          "types": "./dist/compat/index.d.mts",
-          "default": "./dist/compat/index.mjs"
-        },
-        "require": {
-          "types": "./dist/compat/index.d.ts",
-          "default": "./dist/compat/index.js"
-        }
-      },
-      "./compat/*": {
-        "default": {
-          "types": "./compat/*.d.ts",
-          "default": "./compat/*.js"
-        }
-      },
-      "./error": {
-        "import": {
-          "types": "./dist/error/index.d.mts",
-          "default": "./dist/error/index.mjs"
-        },
-        "require": {
-          "types": "./dist/error/index.d.ts",
-          "default": "./dist/error/index.js"
-        }
-      },
-      "./function": {
-        "import": {
-          "types": "./dist/function/index.d.mts",
-          "default": "./dist/function/index.mjs"
-        },
-        "require": {
-          "types": "./dist/function/index.d.ts",
-          "default": "./dist/function/index.js"
-        }
-      },
-      "./math": {
-        "import": {
-          "types": "./dist/math/index.d.mts",
-          "default": "./dist/math/index.mjs"
-        },
-        "require": {
-          "types": "./dist/math/index.d.ts",
-          "default": "./dist/math/index.js"
-        }
-      },
-      "./object": {
-        "import": {
-          "types": "./dist/object/index.d.mts",
-          "default": "./dist/object/index.mjs"
-        },
-        "require": {
-          "types": "./dist/object/index.d.ts",
-          "default": "./dist/object/index.js"
-        }
-      },
-      "./predicate": {
-        "import": {
-          "types": "./dist/predicate/index.d.mts",
-          "default": "./dist/predicate/index.mjs"
-        },
-        "require": {
-          "types": "./dist/predicate/index.d.ts",
-          "default": "./dist/predicate/index.js"
-        }
-      },
-      "./promise": {
-        "import": {
-          "types": "./dist/promise/index.d.mts",
-          "default": "./dist/promise/index.mjs"
-        },
-        "require": {
-          "types": "./dist/promise/index.d.ts",
-          "default": "./dist/promise/index.js"
-        }
-      },
-      "./string": {
-        "import": {
-          "types": "./dist/string/index.d.mts",
-          "default": "./dist/string/index.mjs"
-        },
-        "require": {
-          "types": "./dist/string/index.d.ts",
-          "default": "./dist/string/index.js"
-        }
-      },
-      "./util": {
-        "import": {
-          "types": "./dist/util/index.d.mts",
-          "default": "./dist/util/index.mjs"
-        },
-        "require": {
-          "types": "./dist/util/index.d.ts",
-          "default": "./dist/util/index.js"
-        }
-      },
-      "./package.json": "./package.json"
-    },
-    "types": "./dist/index.d.ts"
-  },
-  "dependenciesMeta": {
-    "@trivago/prettier-plugin-sort-imports@4.3.0": {
-      "unplugged": true
-    },
-    "prettier-plugin-sort-re-exports@0.0.1": {
-      "unplugged": true
-    }
-  },
-  "react-native": "./dist/index.js",
-  "main": "./dist/index.js",
-  "browser": "./dist/browser.global.js",
-  "module": "./dist/index.mjs",
-  "types": "./dist/index.d.ts"
-}
Index: de_modules/es-toolkit/predicate.d.ts
===================================================================
--- node_modules/es-toolkit/predicate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/predicate';
Index: de_modules/es-toolkit/predicate.js
===================================================================
--- node_modules/es-toolkit/predicate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/predicate');
Index: de_modules/es-toolkit/promise.d.ts
===================================================================
--- node_modules/es-toolkit/promise.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/promise';
Index: de_modules/es-toolkit/promise.js
===================================================================
--- node_modules/es-toolkit/promise.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/promise');
Index: de_modules/es-toolkit/set.d.ts
===================================================================
--- node_modules/es-toolkit/set.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/set';
Index: de_modules/es-toolkit/set.js
===================================================================
--- node_modules/es-toolkit/set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/set');
Index: de_modules/es-toolkit/src/compat/_internal/Equals.d.ts
===================================================================
--- node_modules/es-toolkit/src/compat/_internal/Equals.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export type Equals<T, U> = (<X>() => X extends T ? 1 : 2) extends <X>() => X extends U ? 1 : 2 ? true : false;
Index: de_modules/es-toolkit/src/compat/_internal/IsWritable.d.ts
===================================================================
--- node_modules/es-toolkit/src/compat/_internal/IsWritable.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import type { Equals } from './Equals.d.ts';
-
-export type IsWritable<T> = Equals<{ [K in keyof T]: T[K] }, { -readonly [K in keyof T]: T[K] }>;
Index: de_modules/es-toolkit/src/compat/_internal/MutableList.d.ts
===================================================================
--- node_modules/es-toolkit/src/compat/_internal/MutableList.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export interface MutableList<T> {
-  length: number;
-  [k: number]: T;
-}
Index: de_modules/es-toolkit/src/compat/_internal/RejectReadonly.d.ts
===================================================================
--- node_modules/es-toolkit/src/compat/_internal/RejectReadonly.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { IsWritable } from './IsWritable.d.ts';
-import { MutableList } from './MutableList.d.ts';
-
-export type RejectReadonly<T extends MutableList<unknown>> = IsWritable<T> extends true ? T : never;
Index: de_modules/es-toolkit/string.d.ts
===================================================================
--- node_modules/es-toolkit/string.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/string';
Index: de_modules/es-toolkit/string.js
===================================================================
--- node_modules/es-toolkit/string.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/string');
Index: de_modules/es-toolkit/util.d.ts
===================================================================
--- node_modules/es-toolkit/util.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './dist/util';
Index: de_modules/es-toolkit/util.js
===================================================================
--- node_modules/es-toolkit/util.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-module.exports = require('./dist/util');
Index: de_modules/escalade/dist/index.js
===================================================================
--- node_modules/escalade/dist/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-const { dirname, resolve } = require('path');
-const { readdir, stat } = require('fs');
-const { promisify } = require('util');
-
-const toStats = promisify(stat);
-const toRead = promisify(readdir);
-
-module.exports = async function (start, callback) {
-	let dir = resolve('.', start);
-	let tmp, stats = await toStats(dir);
-
-	if (!stats.isDirectory()) {
-		dir = dirname(dir);
-	}
-
-	while (true) {
-		tmp = await callback(dir, await toRead(dir));
-		if (tmp) return resolve(dir, tmp);
-		dir = dirname(tmp = dir);
-		if (tmp === dir) break;
-	}
-}
Index: de_modules/escalade/dist/index.mjs
===================================================================
--- node_modules/escalade/dist/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { dirname, resolve } from 'path';
-import { readdir, stat } from 'fs';
-import { promisify } from 'util';
-
-const toStats = promisify(stat);
-const toRead = promisify(readdir);
-
-export default async function (start, callback) {
-	let dir = resolve('.', start);
-	let tmp, stats = await toStats(dir);
-
-	if (!stats.isDirectory()) {
-		dir = dirname(dir);
-	}
-
-	while (true) {
-		tmp = await callback(dir, await toRead(dir));
-		if (tmp) return resolve(dir, tmp);
-		dir = dirname(tmp = dir);
-		if (tmp === dir) break;
-	}
-}
Index: de_modules/escalade/index.d.mts
===================================================================
--- node_modules/escalade/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-type Promisable<T> = T | Promise<T>;
-
-export type Callback = (
-	directory: string,
-	files: string[],
-) => Promisable<string | false | void>;
-
-export default function (
-	directory: string,
-	callback: Callback,
-): Promise<string | void>;
Index: de_modules/escalade/index.d.ts
===================================================================
--- node_modules/escalade/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-type Promisable<T> = T | Promise<T>;
-
-declare namespace escalade {
-	export type Callback = (
-		directory: string,
-		files: string[],
-	) => Promisable<string | false | void>;
-}
-
-declare function escalade(
-	directory: string,
-	callback: escalade.Callback,
-): Promise<string | void>;
-
-export = escalade;
Index: de_modules/escalade/license
===================================================================
--- node_modules/escalade/license	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-MIT License
-
-Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/escalade/package.json
===================================================================
--- node_modules/escalade/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-{
-  "name": "escalade",
-  "version": "3.2.0",
-  "repository": "lukeed/escalade",
-  "description": "A tiny (183B to 210B) and fast utility to ascend parent directories",
-  "module": "dist/index.mjs",
-  "main": "dist/index.js",
-  "types": "index.d.ts",
-  "license": "MIT",
-  "author": {
-    "name": "Luke Edwards",
-    "email": "luke.edwards05@gmail.com",
-    "url": "https://lukeed.com"
-  },
-  "exports": {
-    ".": [
-      {
-        "import": {
-          "types": "./index.d.mts",
-          "default": "./dist/index.mjs"
-        },
-        "require": {
-          "types": "./index.d.ts",
-          "default": "./dist/index.js"
-        }
-      },
-      "./dist/index.js"
-    ],
-    "./sync": [
-      {
-        "import": {
-          "types": "./sync/index.d.mts",
-          "default": "./sync/index.mjs"
-        },
-        "require": {
-          "types": "./sync/index.d.ts",
-          "default": "./sync/index.js"
-        }
-      },
-      "./sync/index.js"
-    ]
-  },
-  "files": [
-    "*.d.mts",
-    "*.d.ts",
-    "dist",
-    "sync"
-  ],
-  "modes": {
-    "sync": "src/sync.js",
-    "default": "src/async.js"
-  },
-  "engines": {
-    "node": ">=6"
-  },
-  "scripts": {
-    "build": "bundt",
-    "pretest": "npm run build",
-    "test": "uvu -r esm test -i fixtures"
-  },
-  "keywords": [
-    "find",
-    "parent",
-    "parents",
-    "directory",
-    "search",
-    "walk"
-  ],
-  "devDependencies": {
-    "bundt": "1.1.1",
-    "esm": "3.2.25",
-    "uvu": "0.3.3"
-  }
-}
Index: de_modules/escalade/readme.md
===================================================================
--- node_modules/escalade/readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,211 +1,0 @@
-# escalade [![CI](https://github.com/lukeed/escalade/workflows/CI/badge.svg)](https://github.com/lukeed/escalade/actions) [![licenses](https://licenses.dev/b/npm/escalade)](https://licenses.dev/npm/escalade) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/escalade)](https://codecov.io/gh/lukeed/escalade)
-
-> A tiny (183B to 210B) and [fast](#benchmarks) utility to ascend parent directories
-
-With [escalade](https://en.wikipedia.org/wiki/Escalade), you can scale parent directories until you've found what you're looking for.<br>Given an input file or directory, `escalade` will continue executing your callback function until either:
-
-1) the callback returns a truthy value
-2) `escalade` has reached the system root directory (eg, `/`)
-
-> **Important:**<br>Please note that `escalade` only deals with direct ancestry – it will not dive into parents' sibling directories.
-
----
-
-**Notice:** As of v3.1.0, `escalade` now includes [Deno support](http://deno.land/x/escalade)! Please see [Deno Usage](#deno) below.
-
----
-
-## Install
-
-```
-$ npm install --save escalade
-```
-
-
-## Modes
-
-There are two "versions" of `escalade` available:
-
-#### "async"
-> **Node.js:** >= 8.x<br>
-> **Size (gzip):** 210 bytes<br>
-> **Availability:** [CommonJS](https://unpkg.com/escalade/dist/index.js), [ES Module](https://unpkg.com/escalade/dist/index.mjs)
-
-This is the primary/default mode. It makes use of `async`/`await` and [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original).
-
-#### "sync"
-> **Node.js:** >= 6.x<br>
-> **Size (gzip):** 183 bytes<br>
-> **Availability:** [CommonJS](https://unpkg.com/escalade/sync/index.js), [ES Module](https://unpkg.com/escalade/sync/index.mjs)
-
-This is the opt-in mode, ideal for scenarios where `async` usage cannot be supported.
-
-
-## Usage
-
-***Example Structure***
-
-```
-/Users/lukeed
-  └── oss
-    ├── license
-    └── escalade
-      ├── package.json
-      └── test
-        └── fixtures
-          ├── index.js
-          └── foobar
-            └── demo.js
-```
-
-***Example Usage***
-
-```js
-//~> demo.js
-import { join } from 'path';
-import escalade from 'escalade';
-
-const input = join(__dirname, 'demo.js');
-// or: const input = __dirname;
-
-const pkg = await escalade(input, (dir, names) => {
-  console.log('~> dir:', dir);
-  console.log('~> names:', names);
-  console.log('---');
-
-  if (names.includes('package.json')) {
-    // will be resolved into absolute
-    return 'package.json';
-  }
-});
-
-//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar
-//~> names: ['demo.js']
-//---
-//~> dir: /Users/lukeed/oss/escalade/test/fixtures
-//~> names: ['index.js', 'foobar']
-//---
-//~> dir: /Users/lukeed/oss/escalade/test
-//~> names: ['fixtures']
-//---
-//~> dir: /Users/lukeed/oss/escalade
-//~> names: ['package.json', 'test']
-//---
-
-console.log(pkg);
-//=> /Users/lukeed/oss/escalade/package.json
-
-// Now search for "missing123.txt"
-// (Assume it doesn't exist anywhere!)
-const missing = await escalade(input, (dir, names) => {
-  console.log('~> dir:', dir);
-  return names.includes('missing123.txt') && 'missing123.txt';
-});
-
-//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar
-//~> dir: /Users/lukeed/oss/escalade/test/fixtures
-//~> dir: /Users/lukeed/oss/escalade/test
-//~> dir: /Users/lukeed/oss/escalade
-//~> dir: /Users/lukeed/oss
-//~> dir: /Users/lukeed
-//~> dir: /Users
-//~> dir: /
-
-console.log(missing);
-//=> undefined
-```
-
-> **Note:** To run the above example with "sync" mode, import from `escalade/sync` and remove the `await` keyword.
-
-
-## API
-
-### escalade(input, callback)
-Returns: `string|void` or `Promise<string|void>`
-
-When your `callback` locates a file, `escalade` will resolve/return with an absolute path.<br>
-If your `callback` was never satisfied, then `escalade` will resolve/return with nothing (undefined).
-
-> **Important:**<br>The `sync` and `async` versions share the same API.<br>The **only** difference is that `sync` is not Promise-based.
-
-#### input
-Type: `string`
-
-The path from which to start ascending.
-
-This may be a file or a directory path.<br>However, when `input` is a file, `escalade` will begin with its parent directory.
-
-> **Important:** Unless given an absolute path, `input` will be resolved from `process.cwd()` location.
-
-#### callback
-Type: `Function`
-
-The callback to execute for each ancestry level. It always is given two arguments:
-
-1) `dir` - an absolute path of the current parent directory
-2) `names` - a list (`string[]`) of contents _relative to_ the `dir` parent
-
-> **Note:** The `names` list can contain names of files _and_ directories.
-
-When your callback returns a _falsey_ value, then `escalade` will continue with `dir`'s parent directory, re-invoking your callback with new argument values.
-
-When your callback returns a string, then `escalade` stops iteration immediately.<br>
-If the string is an absolute path, then it's left as is. Otherwise, the string is resolved into an absolute path _from_ the `dir` that housed the satisfying condition.
-
-> **Important:** Your `callback` can be a `Promise/AsyncFunction` when using the "async" version of `escalade`.
-
-## Benchmarks
-
-> Running on Node.js v10.13.0
-
-```
-# Load Time
-  find-up         3.891ms
-  escalade        0.485ms
-  escalade/sync   0.309ms
-
-# Levels: 6 (target = "foo.txt"):
-  find-up          x 24,856 ops/sec ±6.46% (55 runs sampled)
-  escalade         x 73,084 ops/sec ±4.23% (73 runs sampled)
-  find-up.sync     x  3,663 ops/sec ±1.12% (83 runs sampled)
-  escalade/sync    x  9,360 ops/sec ±0.62% (88 runs sampled)
-
-# Levels: 12 (target = "package.json"):
-  find-up          x 29,300 ops/sec ±10.68% (70 runs sampled)
-  escalade         x 73,685 ops/sec ± 5.66% (66 runs sampled)
-  find-up.sync     x  1,707 ops/sec ± 0.58% (91 runs sampled)
-  escalade/sync    x  4,667 ops/sec ± 0.68% (94 runs sampled)
-
-# Levels: 18 (target = "missing123.txt"):
-  find-up          x 21,818 ops/sec ±17.37% (14 runs sampled)
-  escalade         x 67,101 ops/sec ±21.60% (20 runs sampled)
-  find-up.sync     x  1,037 ops/sec ± 2.86% (88 runs sampled)
-  escalade/sync    x  1,248 ops/sec ± 0.50% (93 runs sampled)
-```
-
-## Deno
-
-As of v3.1.0, `escalade` is available on the Deno registry.
-
-Please note that the [API](#api) is identical and that there are still [two modes](#modes) from which to choose:
-
-```ts
-// Choose "async" mode
-import escalade from 'https://deno.land/escalade/async.ts';
-
-// Choose "sync" mode
-import escalade from 'https://deno.land/escalade/sync.ts';
-```
-
-> **Important:** The `allow-read` permission is required!
-
-
-## Related
-
-- [premove](https://github.com/lukeed/premove) - A tiny (247B) utility to remove items recursively
-- [totalist](https://github.com/lukeed/totalist) - A tiny (195B to 224B) utility to recursively list all (total) files in a directory
-- [mk-dirs](https://github.com/lukeed/mk-dirs) - A tiny (420B) utility to make a directory and its parents, recursively
-
-## License
-
-MIT © [Luke Edwards](https://lukeed.com)
Index: de_modules/escalade/sync/index.d.mts
===================================================================
--- node_modules/escalade/sync/index.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export type Callback = (
-	directory: string,
-	files: string[],
-) => string | false | void;
-
-export default function (
-	directory: string,
-	callback: Callback,
-): string | void;
Index: de_modules/escalade/sync/index.d.ts
===================================================================
--- node_modules/escalade/sync/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-declare namespace escalade {
-	export type Callback = (
-		directory: string,
-		files: string[],
-	) => string | false | void;
-}
-
-declare function escalade(
-	directory: string,
-	callback: escalade.Callback,
-): string | void;
-
-export = escalade;
Index: de_modules/escalade/sync/index.js
===================================================================
--- node_modules/escalade/sync/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-const { dirname, resolve } = require('path');
-const { readdirSync, statSync } = require('fs');
-
-module.exports = function (start, callback) {
-	let dir = resolve('.', start);
-	let tmp, stats = statSync(dir);
-
-	if (!stats.isDirectory()) {
-		dir = dirname(dir);
-	}
-
-	while (true) {
-		tmp = callback(dir, readdirSync(dir));
-		if (tmp) return resolve(dir, tmp);
-		dir = dirname(tmp = dir);
-		if (tmp === dir) break;
-	}
-}
Index: de_modules/escalade/sync/index.mjs
===================================================================
--- node_modules/escalade/sync/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { dirname, resolve } from 'path';
-import { readdirSync, statSync } from 'fs';
-
-export default function (start, callback) {
-	let dir = resolve('.', start);
-	let tmp, stats = statSync(dir);
-
-	if (!stats.isDirectory()) {
-		dir = dirname(dir);
-	}
-
-	while (true) {
-		tmp = callback(dir, readdirSync(dir));
-		if (tmp) return resolve(dir, tmp);
-		dir = dirname(tmp = dir);
-		if (tmp === dir) break;
-	}
-}
Index: de_modules/eventemitter3/LICENSE
===================================================================
--- node_modules/eventemitter3/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Arnout Kazemier
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/eventemitter3/README.md
===================================================================
--- node_modules/eventemitter3/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-# EventEmitter3
-
-[![Version npm](https://img.shields.io/npm/v/eventemitter3.svg?style=flat-square)](https://www.npmjs.com/package/eventemitter3)[![CI](https://img.shields.io/github/actions/workflow/status/primus/eventemitter3/ci.yml?branch=master&label=CI&style=flat-square)](https://github.com/primus/eventemitter3/actions?query=workflow%3ACI+branch%3Amaster)[![Coverage Status](https://img.shields.io/coveralls/primus/eventemitter3/master.svg?style=flat-square)](https://coveralls.io/r/primus/eventemitter3?branch=master)
-
-EventEmitter3 is a high performance EventEmitter. It has been micro-optimized
-for various of code paths making this, one of, if not the fastest EventEmitter
-available for Node.js and browsers. The module is API compatible with the
-EventEmitter that ships by default with Node.js but there are some slight
-differences:
-
-- Domain support has been removed.
-- We do not `throw` an error when you emit an `error` event and nobody is
-  listening.
-- The `newListener` and `removeListener` events have been removed as they
-  are useful only in some uncommon use-cases.
-- The `setMaxListeners`, `getMaxListeners`, `prependListener` and
-  `prependOnceListener` methods are not available.
-- Support for custom context for events so there is no need to use `fn.bind`.
-- The `removeListener` method removes all matching listeners, not only the
-  first.
-
-It's a drop in replacement for existing EventEmitters, but just faster. Free
-performance, who wouldn't want that? The EventEmitter is written in EcmaScript 3
-so it will work in the oldest browsers and node versions that you need to
-support.
-
-## Installation
-
-```bash
-$ npm install --save eventemitter3
-```
-
-## CDN
-
-Recommended CDN:
-
-```text
-https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js
-```
-
-## Usage
-
-After installation the only thing you need to do is require the module:
-
-```js
-var EventEmitter = require('eventemitter3');
-```
-
-And you're ready to create your own EventEmitter instances. For the API
-documentation, please follow the official Node.js documentation:
-
-http://nodejs.org/api/events.html
-
-### Contextual emits
-
-We've upgraded the API of the `EventEmitter.on`, `EventEmitter.once` and
-`EventEmitter.removeListener` to accept an extra argument which is the `context`
-or `this` value that should be set for the emitted events. This means you no
-longer have the overhead of an event that required `fn.bind` in order to get a
-custom `this` value.
-
-```js
-var EE = new EventEmitter()
-  , context = { foo: 'bar' };
-
-function emitted() {
-  console.log(this === context); // true
-}
-
-EE.once('event-name', emitted, context);
-EE.on('another-event', emitted, context);
-EE.removeListener('another-event', emitted, context);
-```
-
-### Tests and benchmarks
-
-To run tests run `npm test`. To run the benchmarks run `npm run benchmark`.
-
-Tests and benchmarks are not included in the npm package. If you want to play
-with them you have to clone the GitHub repository. Note that you will have to
-run an additional `npm i` in the benchmarks folder before `npm run benchmark`.
-
-## License
-
-[MIT](LICENSE)
Index: de_modules/eventemitter3/dist/eventemitter3.esm.js
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,355 +1,0 @@
-function getDefaultExportFromCjs (x) {
-	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
-}
-
-var eventemitter3 = {exports: {}};
-
-var hasRequiredEventemitter3;
-
-function requireEventemitter3 () {
-	if (hasRequiredEventemitter3) return eventemitter3.exports;
-	hasRequiredEventemitter3 = 1;
-	(function (module) {
-
-		var has = Object.prototype.hasOwnProperty
-		  , prefix = '~';
-
-		/**
-		 * Constructor to create a storage for our `EE` objects.
-		 * An `Events` instance is a plain object whose properties are event names.
-		 *
-		 * @constructor
-		 * @private
-		 */
-		function Events() {}
-
-		//
-		// We try to not inherit from `Object.prototype`. In some engines creating an
-		// instance in this way is faster than calling `Object.create(null)` directly.
-		// If `Object.create(null)` is not supported we prefix the event names with a
-		// character to make sure that the built-in object properties are not
-		// overridden or used as an attack vector.
-		//
-		if (Object.create) {
-		  Events.prototype = Object.create(null);
-
-		  //
-		  // This hack is needed because the `__proto__` property is still inherited in
-		  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
-		  //
-		  if (!new Events().__proto__) prefix = false;
-		}
-
-		/**
-		 * Representation of a single event listener.
-		 *
-		 * @param {Function} fn The listener function.
-		 * @param {*} context The context to invoke the listener with.
-		 * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
-		 * @constructor
-		 * @private
-		 */
-		function EE(fn, context, once) {
-		  this.fn = fn;
-		  this.context = context;
-		  this.once = once || false;
-		}
-
-		/**
-		 * Add a listener for a given event.
-		 *
-		 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
-		 * @param {(String|Symbol)} event The event name.
-		 * @param {Function} fn The listener function.
-		 * @param {*} context The context to invoke the listener with.
-		 * @param {Boolean} once Specify if the listener is a one-time listener.
-		 * @returns {EventEmitter}
-		 * @private
-		 */
-		function addListener(emitter, event, fn, context, once) {
-		  if (typeof fn !== 'function') {
-		    throw new TypeError('The listener must be a function');
-		  }
-
-		  var listener = new EE(fn, context || emitter, once)
-		    , evt = prefix ? prefix + event : event;
-
-		  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
-		  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
-		  else emitter._events[evt] = [emitter._events[evt], listener];
-
-		  return emitter;
-		}
-
-		/**
-		 * Clear event by name.
-		 *
-		 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
-		 * @param {(String|Symbol)} evt The Event name.
-		 * @private
-		 */
-		function clearEvent(emitter, evt) {
-		  if (--emitter._eventsCount === 0) emitter._events = new Events();
-		  else delete emitter._events[evt];
-		}
-
-		/**
-		 * Minimal `EventEmitter` interface that is molded against the Node.js
-		 * `EventEmitter` interface.
-		 *
-		 * @constructor
-		 * @public
-		 */
-		function EventEmitter() {
-		  this._events = new Events();
-		  this._eventsCount = 0;
-		}
-
-		/**
-		 * Return an array listing the events for which the emitter has registered
-		 * listeners.
-		 *
-		 * @returns {Array}
-		 * @public
-		 */
-		EventEmitter.prototype.eventNames = function eventNames() {
-		  var names = []
-		    , events
-		    , name;
-
-		  if (this._eventsCount === 0) return names;
-
-		  for (name in (events = this._events)) {
-		    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
-		  }
-
-		  if (Object.getOwnPropertySymbols) {
-		    return names.concat(Object.getOwnPropertySymbols(events));
-		  }
-
-		  return names;
-		};
-
-		/**
-		 * Return the listeners registered for a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @returns {Array} The registered listeners.
-		 * @public
-		 */
-		EventEmitter.prototype.listeners = function listeners(event) {
-		  var evt = prefix ? prefix + event : event
-		    , handlers = this._events[evt];
-
-		  if (!handlers) return [];
-		  if (handlers.fn) return [handlers.fn];
-
-		  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
-		    ee[i] = handlers[i].fn;
-		  }
-
-		  return ee;
-		};
-
-		/**
-		 * Return the number of listeners listening to a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @returns {Number} The number of listeners.
-		 * @public
-		 */
-		EventEmitter.prototype.listenerCount = function listenerCount(event) {
-		  var evt = prefix ? prefix + event : event
-		    , listeners = this._events[evt];
-
-		  if (!listeners) return 0;
-		  if (listeners.fn) return 1;
-		  return listeners.length;
-		};
-
-		/**
-		 * Calls each of the listeners registered for a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @returns {Boolean} `true` if the event had listeners, else `false`.
-		 * @public
-		 */
-		EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
-		  var evt = prefix ? prefix + event : event;
-
-		  if (!this._events[evt]) return false;
-
-		  var listeners = this._events[evt]
-		    , len = arguments.length
-		    , args
-		    , i;
-
-		  if (listeners.fn) {
-		    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
-
-		    switch (len) {
-		      case 1: return listeners.fn.call(listeners.context), true;
-		      case 2: return listeners.fn.call(listeners.context, a1), true;
-		      case 3: return listeners.fn.call(listeners.context, a1, a2), true;
-		      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
-		      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
-		      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
-		    }
-
-		    for (i = 1, args = new Array(len -1); i < len; i++) {
-		      args[i - 1] = arguments[i];
-		    }
-
-		    listeners.fn.apply(listeners.context, args);
-		  } else {
-		    var length = listeners.length
-		      , j;
-
-		    for (i = 0; i < length; i++) {
-		      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
-
-		      switch (len) {
-		        case 1: listeners[i].fn.call(listeners[i].context); break;
-		        case 2: listeners[i].fn.call(listeners[i].context, a1); break;
-		        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
-		        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
-		        default:
-		          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
-		            args[j - 1] = arguments[j];
-		          }
-
-		          listeners[i].fn.apply(listeners[i].context, args);
-		      }
-		    }
-		  }
-
-		  return true;
-		};
-
-		/**
-		 * Add a listener for a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @param {Function} fn The listener function.
-		 * @param {*} [context=this] The context to invoke the listener with.
-		 * @returns {EventEmitter} `this`.
-		 * @public
-		 */
-		EventEmitter.prototype.on = function on(event, fn, context) {
-		  return addListener(this, event, fn, context, false);
-		};
-
-		/**
-		 * Add a one-time listener for a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @param {Function} fn The listener function.
-		 * @param {*} [context=this] The context to invoke the listener with.
-		 * @returns {EventEmitter} `this`.
-		 * @public
-		 */
-		EventEmitter.prototype.once = function once(event, fn, context) {
-		  return addListener(this, event, fn, context, true);
-		};
-
-		/**
-		 * Remove the listeners of a given event.
-		 *
-		 * @param {(String|Symbol)} event The event name.
-		 * @param {Function} fn Only remove the listeners that match this function.
-		 * @param {*} context Only remove the listeners that have this context.
-		 * @param {Boolean} once Only remove one-time listeners.
-		 * @returns {EventEmitter} `this`.
-		 * @public
-		 */
-		EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
-		  var evt = prefix ? prefix + event : event;
-
-		  if (!this._events[evt]) return this;
-		  if (!fn) {
-		    clearEvent(this, evt);
-		    return this;
-		  }
-
-		  var listeners = this._events[evt];
-
-		  if (listeners.fn) {
-		    if (
-		      listeners.fn === fn &&
-		      (!once || listeners.once) &&
-		      (!context || listeners.context === context)
-		    ) {
-		      clearEvent(this, evt);
-		    }
-		  } else {
-		    for (var i = 0, events = [], length = listeners.length; i < length; i++) {
-		      if (
-		        listeners[i].fn !== fn ||
-		        (once && !listeners[i].once) ||
-		        (context && listeners[i].context !== context)
-		      ) {
-		        events.push(listeners[i]);
-		      }
-		    }
-
-		    //
-		    // Reset the array, or remove it completely if we have no more listeners.
-		    //
-		    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
-		    else clearEvent(this, evt);
-		  }
-
-		  return this;
-		};
-
-		/**
-		 * Remove all listeners, or those of the specified event.
-		 *
-		 * @param {(String|Symbol)} [event] The event name.
-		 * @returns {EventEmitter} `this`.
-		 * @public
-		 */
-		EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
-		  var evt;
-
-		  if (event) {
-		    evt = prefix ? prefix + event : event;
-		    if (this._events[evt]) clearEvent(this, evt);
-		  } else {
-		    this._events = new Events();
-		    this._eventsCount = 0;
-		  }
-
-		  return this;
-		};
-
-		//
-		// Alias methods names because people roll like that.
-		//
-		EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
-		EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-		//
-		// Expose the prefix.
-		//
-		EventEmitter.prefixed = prefix;
-
-		//
-		// Allow `EventEmitter` to be imported as module namespace.
-		//
-		EventEmitter.EventEmitter = EventEmitter;
-
-		//
-		// Expose the module.
-		//
-		{
-		  module.exports = EventEmitter;
-		} 
-	} (eventemitter3));
-	return eventemitter3.exports;
-}
-
-var eventemitter3Exports = requireEventemitter3();
-var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
-
-export { EventEmitter, EventEmitter as default };
Index: de_modules/eventemitter3/dist/eventemitter3.esm.min.js
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.esm.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,n={exports:{}};var r=(t||(t=1,function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),f=n?n+t:t;return e._events[f]?e._events[f].fn?e._events[f]=[e._events[f],c]:e._events[f].push(c):(e._events[f]=c,e._eventsCount++),e}function i(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,i=new Array(s);o<s;o++)i[o]=r[o].fn;return i},c.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,s,i){var c=n?n+e:e;if(!this._events[c])return!1;var f,a,u=this._events[c],l=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),l){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,o),!0;case 5:return u.fn.call(u.context,t,r,o,s),!0;case 6:return u.fn.call(u.context,t,r,o,s,i),!0}for(a=1,f=new Array(l-1);a<l;a++)f[a-1]=arguments[a];u.fn.apply(u.context,f)}else{var p,v=u.length;for(a=0;a<v;a++)switch(u[a].once&&this.removeListener(e,u[a].fn,void 0,!0),l){case 1:u[a].fn.call(u[a].context);break;case 2:u[a].fn.call(u[a].context,t);break;case 3:u[a].fn.call(u[a].context,t,r);break;case 4:u[a].fn.call(u[a].context,t,r,o);break;default:if(!f)for(p=1,f=new Array(l-1);p<l;p++)f[p-1]=arguments[p];u[a].fn.apply(u[a].context,f)}}return!0},c.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,r,o){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return i(this,s),this;var c=this._events[s];if(c.fn)c.fn!==t||o&&!c.once||r&&c.context!==r||i(this,s);else{for(var f=0,a=[],u=c.length;f<u;f++)(c[f].fn!==t||o&&!c[f].once||r&&c[f].context!==r)&&a.push(c[f]);a.length?this._events[s]=1===a.length?a[0]:a:i(this,s)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,e.exports=c}(n)),n.exports),o=e(r);export{o as EventEmitter,o as default};//# sourceMappingURL=eventemitter3.esm.min.js.map
Index: de_modules/eventemitter3/dist/eventemitter3.esm.min.js.map
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.esm.min.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"file":"eventemitter3.esm.min.js","sources":["../index.js"],"sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n"],"names":["has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module"],"mappings":"oJAEA,IAAIA,EAAMC,OAAOC,UAAUC,eACvBC,EAAS,IASb,SAASC,IAAS,CA4BlB,SAASC,EAAGC,EAAIC,EAASC,GACvBC,KAAKH,GAAKA,EACVG,KAAKF,QAAUA,EACfE,KAAKD,KAAOA,IAAQ,CACtB,CAaA,SAASE,EAAYC,EAASC,EAAON,EAAIC,EAASC,GAChD,GAAkB,mBAAPF,EACT,MAAM,IAAIO,UAAU,mCAGtB,IAAIC,EAAW,IAAIT,EAAGC,EAAIC,GAAWI,EAASH,GAC1CO,EAAMZ,EAASA,EAASS,EAAQA,EAMpC,OAJKD,EAAQK,QAAQD,GACXJ,EAAQK,QAAQD,GAAKT,GAC1BK,EAAQK,QAAQD,GAAO,CAACJ,EAAQK,QAAQD,GAAMD,GADhBH,EAAQK,QAAQD,GAAKE,KAAKH,IADlCH,EAAQK,QAAQD,GAAOD,EAAUH,EAAQO,gBAI7DP,CACT,CASA,SAASQ,EAAWR,EAASI,GACI,MAAzBJ,EAAQO,aAAoBP,EAAQK,QAAU,IAAIZ,SAC5CO,EAAQK,QAAQD,EAC9B,CASA,SAASK,IACPX,KAAKO,QAAU,IAAIZ,EACnBK,KAAKS,aAAe,CACtB,CAzEIlB,OAAOqB,SACTjB,EAAOH,UAAYD,OAAOqB,OAAO,OAM5B,IAAIjB,GAASkB,YAAWnB,GAAS,IA2ExCiB,EAAanB,UAAUsB,WAAa,WAClC,IACIC,EACAC,EAFAC,EAAQ,GAIZ,GAA0B,IAAtBjB,KAAKS,aAAoB,OAAOQ,EAEpC,IAAKD,KAASD,EAASf,KAAKO,QACtBjB,EAAI4B,KAAKH,EAAQC,IAAOC,EAAMT,KAAKd,EAASsB,EAAKG,MAAM,GAAKH,GAGlE,OAAIzB,OAAO6B,sBACFH,EAAMI,OAAO9B,OAAO6B,sBAAsBL,IAG5CE,CACT,EASAN,EAAanB,UAAU8B,UAAY,SAAmBnB,GACpD,IAAIG,EAAMZ,EAASA,EAASS,EAAQA,EAChCoB,EAAWvB,KAAKO,QAAQD,GAE5B,IAAKiB,EAAU,MAAO,GACtB,GAAIA,EAAS1B,GAAI,MAAO,CAAC0B,EAAS1B,IAElC,IAAK,IAAI2B,EAAI,EAAGC,EAAIF,EAASG,OAAQC,EAAK,IAAIC,MAAMH,GAAID,EAAIC,EAAGD,IAC7DG,EAAGH,GAAKD,EAASC,GAAG3B,GAGtB,OAAO8B,CACT,EASAhB,EAAanB,UAAUqC,cAAgB,SAAuB1B,GAC5D,IAAIG,EAAMZ,EAASA,EAASS,EAAQA,EAChCmB,EAAYtB,KAAKO,QAAQD,GAE7B,OAAKgB,EACDA,EAAUzB,GAAW,EAClByB,EAAUI,OAFM,CAGzB,EASAf,EAAanB,UAAUsC,KAAO,SAAc3B,EAAO4B,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAI7B,EAAMZ,EAASA,EAASS,EAAQA,EAEpC,IAAKH,KAAKO,QAAQD,GAAM,OAAO,EAE/B,IAEI8B,EACAZ,EAHAF,EAAYtB,KAAKO,QAAQD,GACzB+B,EAAMC,UAAUZ,OAIpB,GAAIJ,EAAUzB,GAAI,CAGhB,OAFIyB,EAAUvB,MAAMC,KAAKuC,eAAepC,EAAOmB,EAAUzB,QAAI2C,GAAW,GAEhEH,GACN,KAAK,EAAG,OAAOf,EAAUzB,GAAGqB,KAAKI,EAAUxB,UAAU,EACrD,KAAK,EAAG,OAAOwB,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,IAAK,EACzD,KAAK,EAAG,OAAOT,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOV,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOX,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOZ,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKX,EAAI,EAAGY,EAAO,IAAIR,MAAMS,EAAK,GAAIb,EAAIa,EAAKb,IAC7CY,EAAKZ,EAAI,GAAKc,UAAUd,GAG1BF,EAAUzB,GAAG4C,MAAMnB,EAAUxB,QAASsC,EAC1C,KAAS,CACL,IACIM,EADAhB,EAASJ,EAAUI,OAGvB,IAAKF,EAAI,EAAGA,EAAIE,EAAQF,IAGtB,OAFIF,EAAUE,GAAGzB,MAAMC,KAAKuC,eAAepC,EAAOmB,EAAUE,GAAG3B,QAAI2C,GAAW,GAEtEH,GACN,KAAK,EAAGf,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,SAAU,MACpD,KAAK,EAAGwB,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,GAAK,MACxD,KAAK,EAAGT,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,EAAIC,GAAK,MAC5D,KAAK,EAAGV,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKG,EAAM,IAAKM,EAAI,EAAGN,EAAO,IAAIR,MAAMS,EAAK,GAAIK,EAAIL,EAAKK,IACxDN,EAAKM,EAAI,GAAKJ,UAAUI,GAG1BpB,EAAUE,GAAG3B,GAAG4C,MAAMnB,EAAUE,GAAG1B,QAASsC,GAGtD,CAEE,OAAO,CACT,EAWAzB,EAAanB,UAAUmD,GAAK,SAAYxC,EAAON,EAAIC,GACjD,OAAOG,EAAYD,KAAMG,EAAON,EAAIC,GAAS,EAC/C,EAWAa,EAAanB,UAAUO,KAAO,SAAcI,EAAON,EAAIC,GACrD,OAAOG,EAAYD,KAAMG,EAAON,EAAIC,GAAS,EAC/C,EAYAa,EAAanB,UAAU+C,eAAiB,SAAwBpC,EAAON,EAAIC,EAASC,GAClF,IAAIO,EAAMZ,EAASA,EAASS,EAAQA,EAEpC,IAAKH,KAAKO,QAAQD,GAAM,OAAON,KAC/B,IAAKH,EAEH,OADAa,EAAWV,KAAMM,GACVN,KAGT,IAAIsB,EAAYtB,KAAKO,QAAQD,GAE7B,GAAIgB,EAAUzB,GAEVyB,EAAUzB,KAAOA,GACfE,IAAQuB,EAAUvB,MAClBD,GAAWwB,EAAUxB,UAAYA,GAEnCY,EAAWV,KAAMM,OAEd,CACL,IAAK,IAAIkB,EAAI,EAAGT,EAAS,GAAIW,EAASJ,EAAUI,OAAQF,EAAIE,EAAQF,KAEhEF,EAAUE,GAAG3B,KAAOA,GACnBE,IAASuB,EAAUE,GAAGzB,MACtBD,GAAWwB,EAAUE,GAAG1B,UAAYA,IAErCiB,EAAOP,KAAKc,EAAUE,IAOtBT,EAAOW,OAAQ1B,KAAKO,QAAQD,GAAyB,IAAlBS,EAAOW,OAAeX,EAAO,GAAKA,EACpEL,EAAWV,KAAMM,EAC1B,CAEE,OAAON,IACT,EASAW,EAAanB,UAAUoD,mBAAqB,SAA4BzC,GACtE,IAAIG,EAUJ,OARIH,GACFG,EAAMZ,EAASA,EAASS,EAAQA,EAC5BH,KAAKO,QAAQD,IAAMI,EAAWV,KAAMM,KAExCN,KAAKO,QAAU,IAAIZ,EACnBK,KAAKS,aAAe,GAGfT,IACT,EAKAW,EAAanB,UAAUqD,IAAMlC,EAAanB,UAAU+C,eACpD5B,EAAanB,UAAUS,YAAcU,EAAanB,UAAUmD,GAK5DhC,EAAamC,SAAWpD,EAKxBiB,EAAaA,aAAeA,EAM1BoC,UAAiBpC"}
Index: de_modules/eventemitter3/dist/eventemitter3.umd.js
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.umd.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,363 +1,0 @@
-(function (global, factory) {
-	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
-	typeof define === 'function' && define.amd ? define(factory) :
-	(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventEmitter3 = factory());
-})(this, (function () { 'use strict';
-
-	function getDefaultExportFromCjs (x) {
-		return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
-	}
-
-	var eventemitter3 = {exports: {}};
-
-	var hasRequiredEventemitter3;
-
-	function requireEventemitter3 () {
-		if (hasRequiredEventemitter3) return eventemitter3.exports;
-		hasRequiredEventemitter3 = 1;
-		(function (module) {
-
-			var has = Object.prototype.hasOwnProperty
-			  , prefix = '~';
-
-			/**
-			 * Constructor to create a storage for our `EE` objects.
-			 * An `Events` instance is a plain object whose properties are event names.
-			 *
-			 * @constructor
-			 * @private
-			 */
-			function Events() {}
-
-			//
-			// We try to not inherit from `Object.prototype`. In some engines creating an
-			// instance in this way is faster than calling `Object.create(null)` directly.
-			// If `Object.create(null)` is not supported we prefix the event names with a
-			// character to make sure that the built-in object properties are not
-			// overridden or used as an attack vector.
-			//
-			if (Object.create) {
-			  Events.prototype = Object.create(null);
-
-			  //
-			  // This hack is needed because the `__proto__` property is still inherited in
-			  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
-			  //
-			  if (!new Events().__proto__) prefix = false;
-			}
-
-			/**
-			 * Representation of a single event listener.
-			 *
-			 * @param {Function} fn The listener function.
-			 * @param {*} context The context to invoke the listener with.
-			 * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
-			 * @constructor
-			 * @private
-			 */
-			function EE(fn, context, once) {
-			  this.fn = fn;
-			  this.context = context;
-			  this.once = once || false;
-			}
-
-			/**
-			 * Add a listener for a given event.
-			 *
-			 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
-			 * @param {(String|Symbol)} event The event name.
-			 * @param {Function} fn The listener function.
-			 * @param {*} context The context to invoke the listener with.
-			 * @param {Boolean} once Specify if the listener is a one-time listener.
-			 * @returns {EventEmitter}
-			 * @private
-			 */
-			function addListener(emitter, event, fn, context, once) {
-			  if (typeof fn !== 'function') {
-			    throw new TypeError('The listener must be a function');
-			  }
-
-			  var listener = new EE(fn, context || emitter, once)
-			    , evt = prefix ? prefix + event : event;
-
-			  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
-			  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
-			  else emitter._events[evt] = [emitter._events[evt], listener];
-
-			  return emitter;
-			}
-
-			/**
-			 * Clear event by name.
-			 *
-			 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
-			 * @param {(String|Symbol)} evt The Event name.
-			 * @private
-			 */
-			function clearEvent(emitter, evt) {
-			  if (--emitter._eventsCount === 0) emitter._events = new Events();
-			  else delete emitter._events[evt];
-			}
-
-			/**
-			 * Minimal `EventEmitter` interface that is molded against the Node.js
-			 * `EventEmitter` interface.
-			 *
-			 * @constructor
-			 * @public
-			 */
-			function EventEmitter() {
-			  this._events = new Events();
-			  this._eventsCount = 0;
-			}
-
-			/**
-			 * Return an array listing the events for which the emitter has registered
-			 * listeners.
-			 *
-			 * @returns {Array}
-			 * @public
-			 */
-			EventEmitter.prototype.eventNames = function eventNames() {
-			  var names = []
-			    , events
-			    , name;
-
-			  if (this._eventsCount === 0) return names;
-
-			  for (name in (events = this._events)) {
-			    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
-			  }
-
-			  if (Object.getOwnPropertySymbols) {
-			    return names.concat(Object.getOwnPropertySymbols(events));
-			  }
-
-			  return names;
-			};
-
-			/**
-			 * Return the listeners registered for a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @returns {Array} The registered listeners.
-			 * @public
-			 */
-			EventEmitter.prototype.listeners = function listeners(event) {
-			  var evt = prefix ? prefix + event : event
-			    , handlers = this._events[evt];
-
-			  if (!handlers) return [];
-			  if (handlers.fn) return [handlers.fn];
-
-			  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
-			    ee[i] = handlers[i].fn;
-			  }
-
-			  return ee;
-			};
-
-			/**
-			 * Return the number of listeners listening to a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @returns {Number} The number of listeners.
-			 * @public
-			 */
-			EventEmitter.prototype.listenerCount = function listenerCount(event) {
-			  var evt = prefix ? prefix + event : event
-			    , listeners = this._events[evt];
-
-			  if (!listeners) return 0;
-			  if (listeners.fn) return 1;
-			  return listeners.length;
-			};
-
-			/**
-			 * Calls each of the listeners registered for a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @returns {Boolean} `true` if the event had listeners, else `false`.
-			 * @public
-			 */
-			EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
-			  var evt = prefix ? prefix + event : event;
-
-			  if (!this._events[evt]) return false;
-
-			  var listeners = this._events[evt]
-			    , len = arguments.length
-			    , args
-			    , i;
-
-			  if (listeners.fn) {
-			    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
-
-			    switch (len) {
-			      case 1: return listeners.fn.call(listeners.context), true;
-			      case 2: return listeners.fn.call(listeners.context, a1), true;
-			      case 3: return listeners.fn.call(listeners.context, a1, a2), true;
-			      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
-			      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
-			      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
-			    }
-
-			    for (i = 1, args = new Array(len -1); i < len; i++) {
-			      args[i - 1] = arguments[i];
-			    }
-
-			    listeners.fn.apply(listeners.context, args);
-			  } else {
-			    var length = listeners.length
-			      , j;
-
-			    for (i = 0; i < length; i++) {
-			      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
-
-			      switch (len) {
-			        case 1: listeners[i].fn.call(listeners[i].context); break;
-			        case 2: listeners[i].fn.call(listeners[i].context, a1); break;
-			        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
-			        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
-			        default:
-			          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
-			            args[j - 1] = arguments[j];
-			          }
-
-			          listeners[i].fn.apply(listeners[i].context, args);
-			      }
-			    }
-			  }
-
-			  return true;
-			};
-
-			/**
-			 * Add a listener for a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @param {Function} fn The listener function.
-			 * @param {*} [context=this] The context to invoke the listener with.
-			 * @returns {EventEmitter} `this`.
-			 * @public
-			 */
-			EventEmitter.prototype.on = function on(event, fn, context) {
-			  return addListener(this, event, fn, context, false);
-			};
-
-			/**
-			 * Add a one-time listener for a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @param {Function} fn The listener function.
-			 * @param {*} [context=this] The context to invoke the listener with.
-			 * @returns {EventEmitter} `this`.
-			 * @public
-			 */
-			EventEmitter.prototype.once = function once(event, fn, context) {
-			  return addListener(this, event, fn, context, true);
-			};
-
-			/**
-			 * Remove the listeners of a given event.
-			 *
-			 * @param {(String|Symbol)} event The event name.
-			 * @param {Function} fn Only remove the listeners that match this function.
-			 * @param {*} context Only remove the listeners that have this context.
-			 * @param {Boolean} once Only remove one-time listeners.
-			 * @returns {EventEmitter} `this`.
-			 * @public
-			 */
-			EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
-			  var evt = prefix ? prefix + event : event;
-
-			  if (!this._events[evt]) return this;
-			  if (!fn) {
-			    clearEvent(this, evt);
-			    return this;
-			  }
-
-			  var listeners = this._events[evt];
-
-			  if (listeners.fn) {
-			    if (
-			      listeners.fn === fn &&
-			      (!once || listeners.once) &&
-			      (!context || listeners.context === context)
-			    ) {
-			      clearEvent(this, evt);
-			    }
-			  } else {
-			    for (var i = 0, events = [], length = listeners.length; i < length; i++) {
-			      if (
-			        listeners[i].fn !== fn ||
-			        (once && !listeners[i].once) ||
-			        (context && listeners[i].context !== context)
-			      ) {
-			        events.push(listeners[i]);
-			      }
-			    }
-
-			    //
-			    // Reset the array, or remove it completely if we have no more listeners.
-			    //
-			    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
-			    else clearEvent(this, evt);
-			  }
-
-			  return this;
-			};
-
-			/**
-			 * Remove all listeners, or those of the specified event.
-			 *
-			 * @param {(String|Symbol)} [event] The event name.
-			 * @returns {EventEmitter} `this`.
-			 * @public
-			 */
-			EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
-			  var evt;
-
-			  if (event) {
-			    evt = prefix ? prefix + event : event;
-			    if (this._events[evt]) clearEvent(this, evt);
-			  } else {
-			    this._events = new Events();
-			    this._eventsCount = 0;
-			  }
-
-			  return this;
-			};
-
-			//
-			// Alias methods names because people roll like that.
-			//
-			EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
-			EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-			//
-			// Expose the prefix.
-			//
-			EventEmitter.prefixed = prefix;
-
-			//
-			// Allow `EventEmitter` to be imported as module namespace.
-			//
-			EventEmitter.EventEmitter = EventEmitter;
-
-			//
-			// Expose the module.
-			//
-			{
-			  module.exports = EventEmitter;
-			} 
-		} (eventemitter3));
-		return eventemitter3.exports;
-	}
-
-	var eventemitter3Exports = requireEventemitter3();
-	var index = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
-
-	return index;
-
-}));
Index: de_modules/eventemitter3/dist/eventemitter3.umd.min.js
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.umd.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).EventEmitter3=t()}(this,function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,n={exports:{}};var r=(t||(t=1,function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),f=n?n+t:t;return e._events[f]?e._events[f].fn?e._events[f]=[e._events[f],c]:e._events[f].push(c):(e._events[f]=c,e._eventsCount++),e}function i(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,i=new Array(s);o<s;o++)i[o]=r[o].fn;return i},c.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,s,i){var c=n?n+e:e;if(!this._events[c])return!1;var f,u,a=this._events[c],l=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),l){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,o),!0;case 5:return a.fn.call(a.context,t,r,o,s),!0;case 6:return a.fn.call(a.context,t,r,o,s,i),!0}for(u=1,f=new Array(l-1);u<l;u++)f[u-1]=arguments[u];a.fn.apply(a.context,f)}else{var p,v=a.length;for(u=0;u<v;u++)switch(a[u].once&&this.removeListener(e,a[u].fn,void 0,!0),l){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,t);break;case 3:a[u].fn.call(a[u].context,t,r);break;case 4:a[u].fn.call(a[u].context,t,r,o);break;default:if(!f)for(p=1,f=new Array(l-1);p<l;p++)f[p-1]=arguments[p];a[u].fn.apply(a[u].context,f)}}return!0},c.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,r,o){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return i(this,s),this;var c=this._events[s];if(c.fn)c.fn!==t||o&&!c.once||r&&c.context!==r||i(this,s);else{for(var f=0,u=[],a=c.length;f<a;f++)(c[f].fn!==t||o&&!c[f].once||r&&c[f].context!==r)&&u.push(c[f]);u.length?this._events[s]=1===u.length?u[0]:u:i(this,s)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,e.exports=c}(n)),n.exports);return e(r)});//# sourceMappingURL=eventemitter3.umd.min.js.map
Index: de_modules/eventemitter3/dist/eventemitter3.umd.min.js.map
===================================================================
--- node_modules/eventemitter3/dist/eventemitter3.umd.min.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"file":"eventemitter3.umd.min.js","sources":["../index.js?commonjs-entry","../index.js"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireEventemitter3 } from \"/home/luigi/eventemitter3/index.js\";\nvar eventemitter3Exports = requireEventemitter3();\nexport { eventemitter3Exports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n"],"names":["eventemitter3Exports","has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module","getDefaultExportFromCjs"],"mappings":"sWAEA,IAAIA,uBCAJ,IAAIC,EAAMC,OAAOC,UAAUC,eACvBC,EAAS,IASb,SAASC,IAAS,CA4BlB,SAASC,EAAGC,EAAIC,EAASC,GACvBC,KAAKH,GAAKA,EACVG,KAAKF,QAAUA,EACfE,KAAKD,KAAOA,IAAQ,CACtB,CAaA,SAASE,EAAYC,EAASC,EAAON,EAAIC,EAASC,GAChD,GAAkB,mBAAPF,EACT,MAAM,IAAIO,UAAU,mCAGtB,IAAIC,EAAW,IAAIT,EAAGC,EAAIC,GAAWI,EAASH,GAC1CO,EAAMZ,EAASA,EAASS,EAAQA,EAMpC,OAJKD,EAAQK,QAAQD,GACXJ,EAAQK,QAAQD,GAAKT,GAC1BK,EAAQK,QAAQD,GAAO,CAACJ,EAAQK,QAAQD,GAAMD,GADhBH,EAAQK,QAAQD,GAAKE,KAAKH,IADlCH,EAAQK,QAAQD,GAAOD,EAAUH,EAAQO,gBAI7DP,CACT,CASA,SAASQ,EAAWR,EAASI,GACI,MAAzBJ,EAAQO,aAAoBP,EAAQK,QAAU,IAAIZ,SAC5CO,EAAQK,QAAQD,EAC9B,CASA,SAASK,IACPX,KAAKO,QAAU,IAAIZ,EACnBK,KAAKS,aAAe,CACtB,CAzEIlB,OAAOqB,SACTjB,EAAOH,UAAYD,OAAOqB,OAAO,OAM5B,IAAIjB,GAASkB,YAAWnB,GAAS,IA2ExCiB,EAAanB,UAAUsB,WAAa,WAClC,IACIC,EACAC,EAFAC,EAAQ,GAIZ,GAA0B,IAAtBjB,KAAKS,aAAoB,OAAOQ,EAEpC,IAAKD,KAASD,EAASf,KAAKO,QACtBjB,EAAI4B,KAAKH,EAAQC,IAAOC,EAAMT,KAAKd,EAASsB,EAAKG,MAAM,GAAKH,GAGlE,OAAIzB,OAAO6B,sBACFH,EAAMI,OAAO9B,OAAO6B,sBAAsBL,IAG5CE,CACT,EASAN,EAAanB,UAAU8B,UAAY,SAAmBnB,GACpD,IAAIG,EAAMZ,EAASA,EAASS,EAAQA,EAChCoB,EAAWvB,KAAKO,QAAQD,GAE5B,IAAKiB,EAAU,MAAO,GACtB,GAAIA,EAAS1B,GAAI,MAAO,CAAC0B,EAAS1B,IAElC,IAAK,IAAI2B,EAAI,EAAGC,EAAIF,EAASG,OAAQC,EAAK,IAAIC,MAAMH,GAAID,EAAIC,EAAGD,IAC7DG,EAAGH,GAAKD,EAASC,GAAG3B,GAGtB,OAAO8B,CACT,EASAhB,EAAanB,UAAUqC,cAAgB,SAAuB1B,GAC5D,IAAIG,EAAMZ,EAASA,EAASS,EAAQA,EAChCmB,EAAYtB,KAAKO,QAAQD,GAE7B,OAAKgB,EACDA,EAAUzB,GAAW,EAClByB,EAAUI,OAFM,CAGzB,EASAf,EAAanB,UAAUsC,KAAO,SAAc3B,EAAO4B,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAI7B,EAAMZ,EAASA,EAASS,EAAQA,EAEpC,IAAKH,KAAKO,QAAQD,GAAM,OAAO,EAE/B,IAEI8B,EACAZ,EAHAF,EAAYtB,KAAKO,QAAQD,GACzB+B,EAAMC,UAAUZ,OAIpB,GAAIJ,EAAUzB,GAAI,CAGhB,OAFIyB,EAAUvB,MAAMC,KAAKuC,eAAepC,EAAOmB,EAAUzB,QAAI2C,GAAW,GAEhEH,GACN,KAAK,EAAG,OAAOf,EAAUzB,GAAGqB,KAAKI,EAAUxB,UAAU,EACrD,KAAK,EAAG,OAAOwB,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,IAAK,EACzD,KAAK,EAAG,OAAOT,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOV,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOX,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOZ,EAAUzB,GAAGqB,KAAKI,EAAUxB,QAASiC,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKX,EAAI,EAAGY,EAAO,IAAIR,MAAMS,EAAK,GAAIb,EAAIa,EAAKb,IAC7CY,EAAKZ,EAAI,GAAKc,UAAUd,GAG1BF,EAAUzB,GAAG4C,MAAMnB,EAAUxB,QAASsC,EAC1C,KAAS,CACL,IACIM,EADAhB,EAASJ,EAAUI,OAGvB,IAAKF,EAAI,EAAGA,EAAIE,EAAQF,IAGtB,OAFIF,EAAUE,GAAGzB,MAAMC,KAAKuC,eAAepC,EAAOmB,EAAUE,GAAG3B,QAAI2C,GAAW,GAEtEH,GACN,KAAK,EAAGf,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,SAAU,MACpD,KAAK,EAAGwB,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,GAAK,MACxD,KAAK,EAAGT,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,EAAIC,GAAK,MAC5D,KAAK,EAAGV,EAAUE,GAAG3B,GAAGqB,KAAKI,EAAUE,GAAG1B,QAASiC,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKG,EAAM,IAAKM,EAAI,EAAGN,EAAO,IAAIR,MAAMS,EAAK,GAAIK,EAAIL,EAAKK,IACxDN,EAAKM,EAAI,GAAKJ,UAAUI,GAG1BpB,EAAUE,GAAG3B,GAAG4C,MAAMnB,EAAUE,GAAG1B,QAASsC,GAGtD,CAEE,OAAO,CACT,EAWAzB,EAAanB,UAAUmD,GAAK,SAAYxC,EAAON,EAAIC,GACjD,OAAOG,EAAYD,KAAMG,EAAON,EAAIC,GAAS,EAC/C,EAWAa,EAAanB,UAAUO,KAAO,SAAcI,EAAON,EAAIC,GACrD,OAAOG,EAAYD,KAAMG,EAAON,EAAIC,GAAS,EAC/C,EAYAa,EAAanB,UAAU+C,eAAiB,SAAwBpC,EAAON,EAAIC,EAASC,GAClF,IAAIO,EAAMZ,EAASA,EAASS,EAAQA,EAEpC,IAAKH,KAAKO,QAAQD,GAAM,OAAON,KAC/B,IAAKH,EAEH,OADAa,EAAWV,KAAMM,GACVN,KAGT,IAAIsB,EAAYtB,KAAKO,QAAQD,GAE7B,GAAIgB,EAAUzB,GAEVyB,EAAUzB,KAAOA,GACfE,IAAQuB,EAAUvB,MAClBD,GAAWwB,EAAUxB,UAAYA,GAEnCY,EAAWV,KAAMM,OAEd,CACL,IAAK,IAAIkB,EAAI,EAAGT,EAAS,GAAIW,EAASJ,EAAUI,OAAQF,EAAIE,EAAQF,KAEhEF,EAAUE,GAAG3B,KAAOA,GACnBE,IAASuB,EAAUE,GAAGzB,MACtBD,GAAWwB,EAAUE,GAAG1B,UAAYA,IAErCiB,EAAOP,KAAKc,EAAUE,IAOtBT,EAAOW,OAAQ1B,KAAKO,QAAQD,GAAyB,IAAlBS,EAAOW,OAAeX,EAAO,GAAKA,EACpEL,EAAWV,KAAMM,EAC1B,CAEE,OAAON,IACT,EASAW,EAAanB,UAAUoD,mBAAqB,SAA4BzC,GACtE,IAAIG,EAUJ,OARIH,GACFG,EAAMZ,EAASA,EAASS,EAAQA,EAC5BH,KAAKO,QAAQD,IAAMI,EAAWV,KAAMM,KAExCN,KAAKO,QAAU,IAAIZ,EACnBK,KAAKS,aAAe,GAGfT,IACT,EAKAW,EAAanB,UAAUqD,IAAMlC,EAAanB,UAAU+C,eACpD5B,EAAanB,UAAUS,YAAcU,EAAanB,UAAUmD,GAK5DhC,EAAamC,SAAWpD,EAKxBiB,EAAaA,aAAeA,EAM1BoC,UAAiBpC,kBD1UsD,OAA7CqC,EAAwB3D,EAAqB"}
Index: de_modules/eventemitter3/index.d.ts
===================================================================
--- node_modules/eventemitter3/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,135 +1,0 @@
-/**
- * Minimal `EventEmitter` interface that is molded against the Node.js
- * `EventEmitter` interface.
- */
-declare class EventEmitter<
-  EventTypes extends EventEmitter.ValidEventTypes = string | symbol,
-  Context extends any = any
-> {
-  static prefixed: string | boolean;
-
-  /**
-   * Return an array listing the events for which the emitter has registered
-   * listeners.
-   */
-  eventNames(): Array<EventEmitter.EventNames<EventTypes>>;
-
-  /**
-   * Return the listeners registered for a given event.
-   */
-  listeners<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T
-  ): Array<EventEmitter.EventListener<EventTypes, T>>;
-
-  /**
-   * Return the number of listeners listening to a given event.
-   */
-  listenerCount(event: EventEmitter.EventNames<EventTypes>): number;
-
-  /**
-   * Calls each of the listeners registered for a given event.
-   */
-  emit<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    ...args: EventEmitter.EventArgs<EventTypes, T>
-  ): boolean;
-
-  /**
-   * Add a listener for a given event.
-   */
-  on<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    fn: EventEmitter.EventListener<EventTypes, T>,
-    context?: Context
-  ): this;
-  addListener<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    fn: EventEmitter.EventListener<EventTypes, T>,
-    context?: Context
-  ): this;
-
-  /**
-   * Add a one-time listener for a given event.
-   */
-  once<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    fn: EventEmitter.EventListener<EventTypes, T>,
-    context?: Context
-  ): this;
-
-  /**
-   * Remove the listeners of a given event.
-   */
-  removeListener<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    fn?: EventEmitter.EventListener<EventTypes, T>,
-    context?: Context,
-    once?: boolean
-  ): this;
-  off<T extends EventEmitter.EventNames<EventTypes>>(
-    event: T,
-    fn?: EventEmitter.EventListener<EventTypes, T>,
-    context?: Context,
-    once?: boolean
-  ): this;
-
-  /**
-   * Remove all listeners, or those of the specified event.
-   */
-  removeAllListeners(event?: EventEmitter.EventNames<EventTypes>): this;
-}
-
-declare namespace EventEmitter {
-  export interface ListenerFn<Args extends any[] = any[]> {
-    (...args: Args): void;
-  }
-
-  export interface EventEmitterStatic {
-    new <
-      EventTypes extends ValidEventTypes = string | symbol,
-      Context = any
-    >(): EventEmitter<EventTypes, Context>;
-  }
-
-  /**
-   * `object` should be in either of the following forms:
-   * ```
-   * interface EventTypes {
-   *   'event-with-parameters': any[]
-   *   'event-with-example-handler': (...args: any[]) => void
-   * }
-   * ```
-   */
-  export type ValidEventTypes = string | symbol | object;
-
-  export type EventNames<T extends ValidEventTypes> = T extends string | symbol
-    ? T
-    : keyof T;
-
-  export type ArgumentMap<T extends object> = {
-    [K in keyof T]: T[K] extends (...args: any[]) => void
-      ? Parameters<T[K]>
-      : T[K] extends any[]
-      ? T[K]
-      : any[];
-  };
-
-  export type EventListener<
-    T extends ValidEventTypes,
-    K extends EventNames<T>
-  > = T extends string | symbol
-    ? (...args: any[]) => void
-    : (
-        ...args: ArgumentMap<Exclude<T, string | symbol>>[Extract<K, keyof T>]
-      ) => void;
-
-  export type EventArgs<
-    T extends ValidEventTypes,
-    K extends EventNames<T>
-  > = Parameters<EventListener<T, K>>;
-
-  export const EventEmitter: EventEmitterStatic;
-}
-
-export { EventEmitter }
-export default EventEmitter;
Index: de_modules/eventemitter3/index.js
===================================================================
--- node_modules/eventemitter3/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,336 +1,0 @@
-'use strict';
-
-var has = Object.prototype.hasOwnProperty
-  , prefix = '~';
-
-/**
- * Constructor to create a storage for our `EE` objects.
- * An `Events` instance is a plain object whose properties are event names.
- *
- * @constructor
- * @private
- */
-function Events() {}
-
-//
-// We try to not inherit from `Object.prototype`. In some engines creating an
-// instance in this way is faster than calling `Object.create(null)` directly.
-// If `Object.create(null)` is not supported we prefix the event names with a
-// character to make sure that the built-in object properties are not
-// overridden or used as an attack vector.
-//
-if (Object.create) {
-  Events.prototype = Object.create(null);
-
-  //
-  // This hack is needed because the `__proto__` property is still inherited in
-  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
-  //
-  if (!new Events().__proto__) prefix = false;
-}
-
-/**
- * Representation of a single event listener.
- *
- * @param {Function} fn The listener function.
- * @param {*} context The context to invoke the listener with.
- * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
- * @constructor
- * @private
- */
-function EE(fn, context, once) {
-  this.fn = fn;
-  this.context = context;
-  this.once = once || false;
-}
-
-/**
- * Add a listener for a given event.
- *
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} context The context to invoke the listener with.
- * @param {Boolean} once Specify if the listener is a one-time listener.
- * @returns {EventEmitter}
- * @private
- */
-function addListener(emitter, event, fn, context, once) {
-  if (typeof fn !== 'function') {
-    throw new TypeError('The listener must be a function');
-  }
-
-  var listener = new EE(fn, context || emitter, once)
-    , evt = prefix ? prefix + event : event;
-
-  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
-  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
-  else emitter._events[evt] = [emitter._events[evt], listener];
-
-  return emitter;
-}
-
-/**
- * Clear event by name.
- *
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
- * @param {(String|Symbol)} evt The Event name.
- * @private
- */
-function clearEvent(emitter, evt) {
-  if (--emitter._eventsCount === 0) emitter._events = new Events();
-  else delete emitter._events[evt];
-}
-
-/**
- * Minimal `EventEmitter` interface that is molded against the Node.js
- * `EventEmitter` interface.
- *
- * @constructor
- * @public
- */
-function EventEmitter() {
-  this._events = new Events();
-  this._eventsCount = 0;
-}
-
-/**
- * Return an array listing the events for which the emitter has registered
- * listeners.
- *
- * @returns {Array}
- * @public
- */
-EventEmitter.prototype.eventNames = function eventNames() {
-  var names = []
-    , events
-    , name;
-
-  if (this._eventsCount === 0) return names;
-
-  for (name in (events = this._events)) {
-    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
-  }
-
-  if (Object.getOwnPropertySymbols) {
-    return names.concat(Object.getOwnPropertySymbols(events));
-  }
-
-  return names;
-};
-
-/**
- * Return the listeners registered for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Array} The registered listeners.
- * @public
- */
-EventEmitter.prototype.listeners = function listeners(event) {
-  var evt = prefix ? prefix + event : event
-    , handlers = this._events[evt];
-
-  if (!handlers) return [];
-  if (handlers.fn) return [handlers.fn];
-
-  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
-    ee[i] = handlers[i].fn;
-  }
-
-  return ee;
-};
-
-/**
- * Return the number of listeners listening to a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Number} The number of listeners.
- * @public
- */
-EventEmitter.prototype.listenerCount = function listenerCount(event) {
-  var evt = prefix ? prefix + event : event
-    , listeners = this._events[evt];
-
-  if (!listeners) return 0;
-  if (listeners.fn) return 1;
-  return listeners.length;
-};
-
-/**
- * Calls each of the listeners registered for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Boolean} `true` if the event had listeners, else `false`.
- * @public
- */
-EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
-  var evt = prefix ? prefix + event : event;
-
-  if (!this._events[evt]) return false;
-
-  var listeners = this._events[evt]
-    , len = arguments.length
-    , args
-    , i;
-
-  if (listeners.fn) {
-    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
-
-    switch (len) {
-      case 1: return listeners.fn.call(listeners.context), true;
-      case 2: return listeners.fn.call(listeners.context, a1), true;
-      case 3: return listeners.fn.call(listeners.context, a1, a2), true;
-      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
-      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
-      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
-    }
-
-    for (i = 1, args = new Array(len -1); i < len; i++) {
-      args[i - 1] = arguments[i];
-    }
-
-    listeners.fn.apply(listeners.context, args);
-  } else {
-    var length = listeners.length
-      , j;
-
-    for (i = 0; i < length; i++) {
-      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
-
-      switch (len) {
-        case 1: listeners[i].fn.call(listeners[i].context); break;
-        case 2: listeners[i].fn.call(listeners[i].context, a1); break;
-        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
-        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
-        default:
-          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
-            args[j - 1] = arguments[j];
-          }
-
-          listeners[i].fn.apply(listeners[i].context, args);
-      }
-    }
-  }
-
-  return true;
-};
-
-/**
- * Add a listener for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} [context=this] The context to invoke the listener with.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.on = function on(event, fn, context) {
-  return addListener(this, event, fn, context, false);
-};
-
-/**
- * Add a one-time listener for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} [context=this] The context to invoke the listener with.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.once = function once(event, fn, context) {
-  return addListener(this, event, fn, context, true);
-};
-
-/**
- * Remove the listeners of a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn Only remove the listeners that match this function.
- * @param {*} context Only remove the listeners that have this context.
- * @param {Boolean} once Only remove one-time listeners.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
-  var evt = prefix ? prefix + event : event;
-
-  if (!this._events[evt]) return this;
-  if (!fn) {
-    clearEvent(this, evt);
-    return this;
-  }
-
-  var listeners = this._events[evt];
-
-  if (listeners.fn) {
-    if (
-      listeners.fn === fn &&
-      (!once || listeners.once) &&
-      (!context || listeners.context === context)
-    ) {
-      clearEvent(this, evt);
-    }
-  } else {
-    for (var i = 0, events = [], length = listeners.length; i < length; i++) {
-      if (
-        listeners[i].fn !== fn ||
-        (once && !listeners[i].once) ||
-        (context && listeners[i].context !== context)
-      ) {
-        events.push(listeners[i]);
-      }
-    }
-
-    //
-    // Reset the array, or remove it completely if we have no more listeners.
-    //
-    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
-    else clearEvent(this, evt);
-  }
-
-  return this;
-};
-
-/**
- * Remove all listeners, or those of the specified event.
- *
- * @param {(String|Symbol)} [event] The event name.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
-  var evt;
-
-  if (event) {
-    evt = prefix ? prefix + event : event;
-    if (this._events[evt]) clearEvent(this, evt);
-  } else {
-    this._events = new Events();
-    this._eventsCount = 0;
-  }
-
-  return this;
-};
-
-//
-// Alias methods names because people roll like that.
-//
-EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
-EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-//
-// Expose the prefix.
-//
-EventEmitter.prefixed = prefix;
-
-//
-// Allow `EventEmitter` to be imported as module namespace.
-//
-EventEmitter.EventEmitter = EventEmitter;
-
-//
-// Expose the module.
-//
-if ('undefined' !== typeof module) {
-  module.exports = EventEmitter;
-}
Index: de_modules/eventemitter3/index.mjs
===================================================================
--- node_modules/eventemitter3/index.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import EventEmitter from './index.js'
-
-export { EventEmitter }
-export default EventEmitter
Index: de_modules/eventemitter3/package.json
===================================================================
--- node_modules/eventemitter3/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-{
-  "name": "eventemitter3",
-  "version": "5.0.4",
-  "description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.",
-  "exports": {
-    ".": {
-      "types": "./index.d.ts",
-      "import": "./index.mjs",
-      "require": "./index.js"
-    },
-    "./package.json": "./package.json"
-  },
-  "main": "index.js",
-  "types": "index.d.ts",
-  "scripts": {
-    "rollup": "rm -rf dist && rollup -c",
-    "benchmark": "find benchmarks/run -name '*.js' -exec benchmarks/start.sh {} \\;",
-    "test": "c8 --reporter=lcov --reporter=text mocha test/test.js",
-    "test-esm": "mocha test/test.mjs",
-    "prepublishOnly": "npm run rollup"
-  },
-  "files": [
-    "index.js",
-    "index.mjs",
-    "index.d.ts",
-    "dist"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/primus/eventemitter3.git"
-  },
-  "keywords": [
-    "EventEmitter",
-    "EventEmitter2",
-    "EventEmitter3",
-    "Events",
-    "addEventListener",
-    "addListener",
-    "emit",
-    "emits",
-    "emitter",
-    "event",
-    "once",
-    "pub/sub",
-    "publish",
-    "reactor",
-    "subscribe"
-  ],
-  "author": "Arnout Kazemier",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/primus/eventemitter3/issues"
-  },
-  "devDependencies": {
-    "@rollup/plugin-commonjs": "^29.0.0",
-    "@rollup/plugin-terser": "^0.4.0",
-    "assume": "^2.2.0",
-    "c8": "^10.1.3",
-    "mocha": "^11.7.5",
-    "rollup": "^4.5.2"
-  }
-}
Index: de_modules/fraction.js/CHANGELOG.md
===================================================================
--- node_modules/fraction.js/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-# CHANGELOG
-
-v5.2.2
-    - Improved documentation and removed unecessary check
-
-v5.2.1:
-  - 2bb7b05: Added negative sign check
-
-v5.2:
-  - 6f9d124: Implemented log and improved simplify
-  - b773e7a: Added named export to TS definition
-  - 70304f9: Fixed merge conflict
-  - 3b940d3: Implemented other comparing functions
-  - 10acdfc: Update README.md
-  - ba41d00: Update README.md
-  - 73ded97: Update README.md
-  - acabc39: Fixed param parsing
-
-v5.0.5:
-  - 2c9d4c2: Improved roundTo() and param parser
-
-v5.0.4:
-  - 39e61e7: Fixed bignum param passing
-
-v5.0.3:
-  - 7d9a3ec: Upgraded bundler for code quality
-
-v5.0.2:
-  - c64b1d6: fixed esm export
-
-v5.0.1:
-  - e440f9c: Fixed CJS export
-  - 9bbdd29: Fixed CJS export
-
-v5.0.0:
-  - ac7cd06: Fixed readme
-  - 33cc9e5: Added crude build
-  - 1adcc76: Release breaking v5.0. Fraction.js now builds on BigInt. The API stays the same as v4, except that the object attributes `n`, `d`, and `s`, are not Number but BigInt and may break code that directly accesses these attributes.
Index: de_modules/fraction.js/LICENSE
===================================================================
--- node_modules/fraction.js/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2025 Robert Eisele
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/fraction.js/README.md
===================================================================
--- node_modules/fraction.js/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,520 +1,0 @@
-# Fraction.js - ℚ in JavaScript
-
-[![NPM Package](https://img.shields.io/npm/v/fraction.js.svg?style=flat)](https://npmjs.org/package/fraction.js "View this project on npm")
-[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)
-
-Do you find the limitations of floating-point arithmetic frustrating, especially when rational and irrational numbers like π or √2 are stored within the same finite precision? This can lead to avoidable inaccuracies such as:
-
-```javascript
-1 / 98 * 98 // Results in 0.9999999999999999
-```
-
-For applications requiring higher precision or where working with fractions is preferable, consider incorporating *Fraction.js* into your project.
-
-The library effectively addresses precision issues, as demonstrated below:
-
-```javascript
-Fraction(1).div(98).mul(98) // Returns 1
-```
-
-*Fraction.js* uses a `BigInt` representation for both the numerator and denominator, ensuring minimal performance overhead while maximizing accuracy. Its design is optimized for precision, making it an ideal choice as a foundational library for other math tools, such as [Polynomial.js](https://github.com/rawify/Polynomial.js) and [Math.js](https://github.com/josdejong/mathjs).
-
-## Convert Decimal to Fraction
-
-One of the core features of *Fraction.js* is its ability to seamlessly convert decimal numbers into fractions.
-
-```javascript
-let x = new Fraction(1.88);
-let res = x.toFraction(true); // Returns "1 22/25" as a string
-```
-
-This is particularly useful when you need precise fraction representations instead of dealing with the limitations of floating-point arithmetic. What if you allow some error tolerance?
-
-```javascript
-let x = new Fraction(0.33333);
-let res = x.simplify(0.001) // Error < 0.001
-       .toFraction(); // Returns "1/3" as a string
-```
-
-## Precision
-
-As native `BigInt` support in JavaScript becomes more common, libraries like *Fraction.js* use it to handle calculations with higher precision. This improves the speed and accuracy of math operations with large numbers, providing a better solution for tasks that need more precision than floating-point numbers can offer.
-
-## Examples / Motivation
-
-A simple example of using *Fraction.js* might look like this:
-
-```javascript
-var f = new Fraction("9.4'31'"); // 9.4313131313131...
-f.mul([-4, 3]).mod("4.'8'"); // 4.88888888888888...
-```
-
-The result can then be displayed as:
-
-```javascript
-console.log(f.toFraction()); // -4154 / 1485
-```
-
-Additionally, you can access the internal attributes of the fraction, such as the sign (s), numerator (n), and denominator (d). Keep in mind that these values are stored as `BigInt`:
-
-```javascript
-Number(f.s) * Number(f.n) / Number(f.d) = -1 * 4154 / 1485 = -2.797306...
-```
-
-If you attempted to calculate this manually using floating-point arithmetic, you'd get something like:
-
-```javascript
-(9.4313131 * (-4 / 3)) % 4.888888 = -2.797308133...
-```
-
-While the result is reasonably close, it’s not as accurate as the fraction-based approach that *Fraction.js* provides, especially when dealing with repeating decimals or complex operations. This highlights the value of precision that the library brings.
-
-### Laplace Probability
-
-Here's a straightforward example of using *Fraction.js* to calculate probabilities. Let's determine the probability of rolling a specific outcome on a fair die:
-
-- **P({3})**: The probability of rolling a 3.
-- **P({1, 4})**: The probability of rolling either 1 or 4.
-- **P({2, 4, 6})**: The probability of rolling 2, 4, or 6.
-
-#### P({3}):
-
-```javascript
-var p = new Fraction([3].length, 6).toString(); // "0.1(6)"
-```
-
-#### P({1, 4}):
-
-```javascript
-var p = new Fraction([1, 4].length, 6).toString(); // "0.(3)"
-```
-
-#### P({2, 4, 6}):
-
-```javascript
-var p = new Fraction([2, 4, 6].length, 6).toString(); // "0.5"
-```
-
-### Convert degrees/minutes/seconds to precise rational representation:
-
-57+45/60+17/3600
-
-```javascript
-var deg = 57; // 57°
-var min = 45; // 45 Minutes
-var sec = 17; // 17 Seconds
-
-new Fraction(deg).add(min, 60).add(sec, 3600).toString() // -> 57.7547(2)
-```
-
-
-### Rational approximation of irrational numbers
-
-To approximate a number like *sqrt(5) - 2* with a numerator and denominator, you can reformat the equation as follows: *pow(n / d + 2, 2) = 5*.
-
-Then the following algorithm will generate the rational number besides the binary representation.
-
-```javascript
-var x = "/", s = "";
-
-var a = new Fraction(0),
-    b = new Fraction(1);
-for (var n = 0; n <= 10; n++) {
-
-  var c = a.add(b).div(2);
-
-  console.log(n + "\t" + a + "\t" + b + "\t" + c + "\t" + x);
-
-  if (c.add(2).pow(2).valueOf() < 5) {
-    a = c;
-    x = "1";
-  } else {
-    b = c;
-    x = "0";
-  }
-  s+= x;
-}
-console.log(s)
-```
-
-The result is
-
-```
-n   a[n]        b[n]        c[n]            x[n]
-0   0/1         1/1         1/2             /
-1   0/1         1/2         1/4             0
-2   0/1         1/4         1/8             0
-3   1/8         1/4         3/16            1
-4   3/16        1/4         7/32            1
-5   7/32        1/4         15/64           1
-6   15/64       1/4         31/128          1
-7   15/64       31/128      61/256          0
-8   15/64       61/256      121/512         0
-9   15/64       121/512     241/1024        0
-10  241/1024    121/512     483/2048        1
-```
-
-Thus the approximation after 11 iterations of the bisection method is *483 / 2048* and the binary representation is 0.00111100011 (see [WolframAlpha](http://www.wolframalpha.com/input/?i=sqrt%285%29-2+binary))
-
-I published another example on how to approximate PI with fraction.js on my [blog](https://raw.org/article/rational-numbers-in-javascript/) (Still not the best idea to approximate irrational numbers, but it illustrates the capabilities of Fraction.js perfectly).
-
-
-### Get the exact fractional part of a number
-
-```javascript
-var f = new Fraction("-6.(3416)");
-console.log(f.mod(1).abs().toFraction()); // = 3416/9999
-```
-
-### Mathematical correct modulo
-
-The behaviour on negative congruences is different to most modulo implementations in computer science. Even the *mod()* function of Fraction.js behaves in the typical way. To solve the problem of having the mathematical correct modulo with Fraction.js you could come up with this:
-
-```javascript
-var a = -1;
-var b = 10.99;
-
-console.log(new Fraction(a)
-  .mod(b)); // Not correct, usual Modulo
-
-console.log(new Fraction(a)
-  .mod(b).add(b).mod(b)); // Correct! Mathematical Modulo
-```
-
-fmod() imprecision circumvented
----
-It turns out that Fraction.js outperforms almost any fmod() implementation, including JavaScript itself, [php.js](http://phpjs.org/functions/fmod/), C++, Python, Java and even Wolframalpha due to the fact that numbers like 0.05, 0.1, ... are infinite decimal in base 2.
-
-The equation *fmod(4.55, 0.05)* gives *0.04999999999999957*, wolframalpha says *1/20*. The correct answer should be **zero**, as 0.05 divides 4.55 without any remainder.
-
-
-## Parser
-
-Any function (see below) as well as the constructor of the *Fraction* class parses its input and reduce it to the smallest term.
-
-You can pass either Arrays, Objects, Integers, Doubles or Strings.
-
-### Arrays / Objects
-
-```javascript
-new Fraction(numerator, denominator);
-new Fraction([numerator, denominator]);
-new Fraction({n: numerator, d: denominator});
-```
-
-### Integers
-
-```javascript
-new Fraction(123);
-```
-
-### Doubles
-
-```javascript
-new Fraction(55.4);
-```
-
-**Note:** If you pass a double as it is, Fraction.js will perform a number analysis based on Farey Sequences. If you concern performance, cache Fraction.js objects and pass arrays/objects.
-
-The method is really precise, but too large exact numbers, like 1234567.9991829 will result in a wrong approximation. If you want to keep the number as it is, convert it to a string, as the string parser will not perform any further observations. If you have problems with the approximation, in the file `examples/approx.js` is a different approximation algorithm, which might work better in some more specific use-cases.
-
-
-### Strings
-
-```javascript
-new Fraction("123.45");
-new Fraction("123/45"); // A rational number represented as two decimals, separated by a slash
-new Fraction("123:45"); // A rational number represented as two decimals, separated by a colon
-new Fraction("4 123/45"); // A rational number represented as a whole number and a fraction
-new Fraction("123.'456'"); // Note the quotes, see below!
-new Fraction("123.(456)"); // Note the brackets, see below!
-new Fraction("123.45'6'"); // Note the quotes, see below!
-new Fraction("123.45(6)"); // Note the brackets, see below!
-```
-
-### Two arguments
-
-```javascript
-new Fraction(3, 2); // 3/2 = 1.5
-```
-
-### Repeating decimal places
-
-*Fraction.js* can easily handle repeating decimal places. For example *1/3* is *0.3333...*. There is only one repeating digit. As you can see in the examples above, you can pass a number like *1/3* as "0.'3'" or "0.(3)", which are synonym. There are no tests to parse something like 0.166666666 to 1/6! If you really want to handle this number, wrap around brackets on your own with the function below for example: 0.1(66666666)
-
-Assume you want to divide 123.32 / 33.6(567). [WolframAlpha](http://www.wolframalpha.com/input/?i=123.32+%2F+%2812453%2F370%29) states that you'll get a period of 1776 digits. *Fraction.js* comes to the same result. Give it a try:
-
-```javascript
-var f = new Fraction("123.32");
-console.log("Bam: " + f.div("33.6(567)"));
-```
-
-To automatically make a number like "0.123123123" to something more Fraction.js friendly like "0.(123)", I hacked this little brute force algorithm in a 10 minutes. Improvements are welcome...
-
-```javascript
-function formatDecimal(str) {
-
-  var comma, pre, offset, pad, times, repeat;
-
-  if (-1 === (comma = str.indexOf(".")))
-    return str;
-
-  pre = str.substr(0, comma + 1);
-  str = str.substr(comma + 1);
-
-  for (var i = 0; i < str.length; i++) {
-
-    offset = str.substr(0, i);
-
-    for (var j = 0; j < 5; j++) {
-
-      pad = str.substr(i, j + 1);
-
-      times = Math.ceil((str.length - offset.length) / pad.length);
-
-      repeat = new Array(times + 1).join(pad); // Silly String.repeat hack
-
-      if (0 === (offset + repeat).indexOf(str)) {
-        return pre + offset + "(" + pad + ")";
-      }
-    }
-  }
-  return null;
-}
-
-var f, x = formatDecimal("13.0123123123"); // = 13.0(123)
-if (x !== null) {
-  f = new Fraction(x);
-}
-```
-
-## Attributes
-
-
-The Fraction object allows direct access to the numerator, denominator and sign attributes. It is ensured that only the sign-attribute holds sign information so that a sign comparison is only necessary against this attribute.
-
-```javascript
-var f = new Fraction('-1/2');
-console.log(f.n); // Numerator: 1
-console.log(f.d); // Denominator: 2
-console.log(f.s); // Sign: -1
-```
-
-
-## Functions
-
-### Fraction abs()
-
-Returns the actual number without any sign information
-
-### Fraction neg()
-
-Returns the actual number with flipped sign in order to get the additive inverse
-
-### Fraction add(n)
-
-Returns the sum of the actual number and the parameter n
-
-### Fraction sub(n)
-
-Returns the difference of the actual number and the parameter n
-
-### Fraction mul(n)
-
-Returns the product of the actual number and the parameter n
-
-### Fraction div(n)
-
-Returns the quotient of the actual number and the parameter n
-
-### Fraction pow(exp)
-
-Returns the power of the actual number, raised to an possible rational exponent. If the result becomes non-rational the function returns `null`.
-
-### Fraction log(base)
-
-Returns the logarithm of the actual number to a given rational base. If the result becomes non-rational the function returns `null`.
-
-### Fraction mod(n)
-
-Returns the modulus (rest of the division) of the actual object and n (this % n). It's a much more precise [fmod()](#fmod-impreciseness-circumvented) if you like. Please note that *mod()* is just like the modulo operator of most programming languages. If you want a mathematical correct modulo, see [here](#mathematical-correct-modulo).
-
-### Fraction mod()
-
-Returns the modulus (rest of the division) of the actual object (numerator mod denominator)
-
-### Fraction gcd(n)
-
-Returns the fractional greatest common divisor
-
-### Fraction lcm(n)
-
-Returns the fractional least common multiple
-
-### Fraction ceil([places=0-16])
-
-Returns the ceiling of a rational number with Math.ceil
-
-### Fraction floor([places=0-16])
-
-Returns the floor of a rational number with Math.floor
-
-### Fraction round([places=0-16])
-
-Returns the rational number rounded with Math.round
-
-### Fraction roundTo(multiple)
-
-Rounds a fraction to the closest multiple of another fraction. 
-
-### Fraction inverse()
-
-Returns the multiplicative inverse of the actual number (n / d becomes d / n) in order to get the reciprocal
-
-### Fraction simplify([eps=0.001])
-
-Simplifies the rational number under a certain error threshold. Ex. `0.333` will be `1/3` with `eps=0.001`
-
-### boolean equals(n)
-
-Check if two rational numbers are equal
-
-### boolean lt(n)
-
-Check if this rational number is less than another
-
-### boolean lte(n)
-
-Check if this rational number is less than or equal another
-
-### boolean gt(n)
-
-Check if this rational number is greater than another
-
-### boolean gte(n)
-
-Check if this rational number is greater than or equal another
-
-### int compare(n)
-
-Compare two numbers.
-```
-result < 0: n is greater than actual number
-result > 0: n is smaller than actual number
-result = 0: n is equal to the actual number
-```
-
-### boolean divisible(n)
-
-Check if two numbers are divisible (n divides this)
-
-### double valueOf()
-
-Returns a decimal representation of the fraction
-
-### String toString([decimalPlaces=15])
-
-Generates an exact string representation of the given object. For repeating decimal places, digits within repeating cycles are enclosed in parentheses, e.g., `1/3 = "0.(3)"`. For other numbers, the string will include up to the specified `decimalPlaces` significant digits, including any trailing zeros if truncation occurs. For example, `1/2` will be represented as `"0.5"`, without additional trailing zeros.
-
-**Note:** Since both `valueOf()` and `toString()` are provided, `toString()` will only be invoked implicitly when the object is used in a string context. For instance, when using the plus operator like `"123" + new Fraction`, `valueOf()` will be called first, as JavaScript attempts to combine primitives before concatenating them, with the string type taking precedence. However, `alert(new Fraction)` or `String(new Fraction)` will behave as expected. To ensure specific behavior, explicitly call either `toString()` or `valueOf()`.
-
-### String toLatex(showMixed=false)
-
-Generates an exact LaTeX representation of the actual object. You can see a [live demo](https://raw.org/article/rational-numbers-in-javascript/) on my blog.
-
-The optional boolean parameter indicates if you want to show the a mixed fraction. "1 1/3" instead of "4/3"
-
-### String toFraction(showMixed=false)
-
-Gets a string representation of the fraction
-
-The optional boolean parameter indicates if you want to showa mixed fraction. "1 1/3" instead of "4/3"
-
-### Array toContinued()
-
-Gets an array of the fraction represented as a continued fraction. The first element always contains the whole part.
-
-```javascript
-var f = new Fraction('88/33');
-var c = f.toContinued(); // [2, 1, 2]
-```
-
-### Fraction clone()
-
-Creates a copy of the actual Fraction object
-
-
-## Exceptions
-
-If a really hard error occurs (parsing error, division by zero), *Fraction.js* throws exceptions! Please make sure you handle them correctly.
-
-
-## Installation
-
-You can install `Fraction.js` via npm:
-
-```bash
-npm install fraction.js
-```
-
-Or with yarn:
-
-```bash
-yarn add fraction.js
-```
-
-Alternatively, download or clone the repository:
-
-```bash
-git clone https://github.com/rawify/Fraction.js
-```
-
-## Usage
-
-Include the `fraction.min.js` file in your project:
-
-```html
-<script src="path/to/fraction.min.js"></script>
-<script>
-  var x = new Fraction("13/4");
-</script>
-```
-
-Or in a Node.js project:
-
-```javascript
-const Fraction = require('fraction.js');
-```
-
-or 
-
-```javascript
-import Fraction from 'fraction.js';
-```
-
-
-## Coding Style
-
-As every library I publish, Fraction.js is also built to be as small as possible after compressing it with Google Closure Compiler in advanced mode. Thus the coding style orientates a little on maxing-out the compression rate. Please make sure you keep this style if you plan to extend the library.
-
-## Building the library
-
-After cloning the Git repository run:
-
-```bash
-npm install
-npm run build
-```
-
-## Run a test
-
-Testing the source against the shipped test suite is as easy as
-
-```bash
-npm run test
-```
-
-## Copyright and Licensing
-
-Copyright (c) 2025, [Robert Eisele](https://raw.org/)
-Licensed under the MIT license.
Index: de_modules/fraction.js/dist/fraction.js
===================================================================
--- node_modules/fraction.js/dist/fraction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1045 +1,0 @@
-'use strict';
-
-/**
- *
- * This class offers the possibility to calculate fractions.
- * You can pass a fraction in different formats. Either as array, as double, as string or as an integer.
- *
- * Array/Object form
- * [ 0 => <numerator>, 1 => <denominator> ]
- * { n => <numerator>, d => <denominator> }
- *
- * Integer form
- * - Single integer value as BigInt or Number
- *
- * Double form
- * - Single double value as Number
- *
- * String form
- * 123.456 - a simple double
- * 123/456 - a string fraction
- * 123.'456' - a double with repeating decimal places
- * 123.(456) - synonym
- * 123.45'6' - a double with repeating last place
- * 123.45(6) - synonym
- *
- * Example:
- * let f = new Fraction("9.4'31'");
- * f.mul([-4, 3]).div(4.9);
- *
- */
-
-// Set Identity function to downgrade BigInt to Number if needed
-if (typeof BigInt === 'undefined') BigInt = function (n) { if (isNaN(n)) throw new Error(""); return n; };
-
-const C_ZERO = BigInt(0);
-const C_ONE = BigInt(1);
-const C_TWO = BigInt(2);
-const C_THREE = BigInt(3);
-const C_FIVE = BigInt(5);
-const C_TEN = BigInt(10);
-const MAX_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
-
-// Maximum search depth for cyclic rational numbers. 2000 should be more than enough.
-// Example: 1/7 = 0.(142857) has 6 repeating decimal places.
-// If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits
-const MAX_CYCLE_LEN = 2000;
-
-// Parsed data to avoid calling "new" all the time
-const P = {
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE
-};
-
-function assign(n, s) {
-
-  try {
-    n = BigInt(n);
-  } catch (e) {
-    throw InvalidParameter();
-  }
-  return n * s;
-}
-
-function ifloor(x) {
-  return typeof x === 'bigint' ? x : Math.floor(x);
-}
-
-// Creates a new Fraction internally without the need of the bulky constructor
-function newFraction(n, d) {
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  const f = Object.create(Fraction.prototype);
-  f["s"] = n < C_ZERO ? -C_ONE : C_ONE;
-
-  n = n < C_ZERO ? -n : n;
-
-  const a = gcd(n, d);
-
-  f["n"] = n / a;
-  f["d"] = d / a;
-  return f;
-}
-
-const FACTORSTEPS = [C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO * C_THREE, C_TWO, C_TWO * C_THREE]; // repeats
-function factorize(n) {
-
-  const factors = Object.create(null);
-  if (n <= C_ONE) {
-    factors[n] = C_ONE;
-    return factors;
-  }
-
-  const add = (p) => { factors[p] = (factors[p] || C_ZERO) + C_ONE; };
-
-  while (n % C_TWO === C_ZERO) { add(C_TWO); n /= C_TWO; }
-  while (n % C_THREE === C_ZERO) { add(C_THREE); n /= C_THREE; }
-  while (n % C_FIVE === C_ZERO) { add(C_FIVE); n /= C_FIVE; }
-
-  // 30-wheel trial division: test only residues coprime to 2*3*5
-  // Residue step pattern after 5: 7,11,13,17,19,23,29,31, ...
-  for (let si = 0, p = C_TWO + C_FIVE; p * p <= n;) {
-    while (n % p === C_ZERO) { add(p); n /= p; }
-    p += FACTORSTEPS[si];
-    si = (si + 1) & 7; // fast modulo 8
-  }
-  if (n > C_ONE) add(n);
-  return factors;
-}
-
-const parse = function (p1, p2) {
-
-  let n = C_ZERO, d = C_ONE, s = C_ONE;
-
-  if (p1 === undefined || p1 === null) { // No argument
-    /* void */
-  } else if (p2 !== undefined) { // Two arguments
-
-    if (typeof p1 === "bigint") {
-      n = p1;
-    } else if (isNaN(p1)) {
-      throw InvalidParameter();
-    } else if (p1 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      n = BigInt(p1);
-    }
-
-    if (typeof p2 === "bigint") {
-      d = p2;
-    } else if (isNaN(p2)) {
-      throw InvalidParameter();
-    } else if (p2 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      d = BigInt(p2);
-    }
-
-    s = n * d;
-
-  } else if (typeof p1 === "object") {
-    if ("d" in p1 && "n" in p1) {
-      n = BigInt(p1["n"]);
-      d = BigInt(p1["d"]);
-      if ("s" in p1)
-        n *= BigInt(p1["s"]);
-    } else if (0 in p1) {
-      n = BigInt(p1[0]);
-      if (1 in p1)
-        d = BigInt(p1[1]);
-    } else if (typeof p1 === "bigint") {
-      n = p1;
-    } else {
-      throw InvalidParameter();
-    }
-    s = n * d;
-  } else if (typeof p1 === "number") {
-
-    if (isNaN(p1)) {
-      throw InvalidParameter();
-    }
-
-    if (p1 < 0) {
-      s = -C_ONE;
-      p1 = -p1;
-    }
-
-    if (p1 % 1 === 0) {
-      n = BigInt(p1);
-    } else {
-
-      let z = 1;
-
-      let A = 0, B = 1;
-      let C = 1, D = 1;
-
-      let N = 10000000;
-
-      if (p1 >= 1) {
-        z = 10 ** Math.floor(1 + Math.log10(p1));
-        p1 /= z;
-      }
-
-      // Using Farey Sequences
-
-      while (B <= N && D <= N) {
-        let M = (A + C) / (B + D);
-
-        if (p1 === M) {
-          if (B + D <= N) {
-            n = A + C;
-            d = B + D;
-          } else if (D > B) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-          break;
-
-        } else {
-
-          if (p1 > M) {
-            A += C;
-            B += D;
-          } else {
-            C += A;
-            D += B;
-          }
-
-          if (B > N) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-        }
-      }
-      n = BigInt(n) * BigInt(z);
-      d = BigInt(d);
-    }
-
-  } else if (typeof p1 === "string") {
-
-    let ndx = 0;
-
-    let v = C_ZERO, w = C_ZERO, x = C_ZERO, y = C_ONE, z = C_ONE;
-
-    let match = p1.replace(/_/g, '').match(/\d+|./g);
-
-    if (match === null)
-      throw InvalidParameter();
-
-    if (match[ndx] === '-') {// Check for minus sign at the beginning
-      s = -C_ONE;
-      ndx++;
-    } else if (match[ndx] === '+') {// Check for plus sign at the beginning
-      ndx++;
-    }
-
-    if (match.length === ndx + 1) { // Check if it's just a simple number "1234"
-      w = assign(match[ndx++], s);
-    } else if (match[ndx + 1] === '.' || match[ndx] === '.') { // Check if it's a decimal number
-
-      if (match[ndx] !== '.') { // Handle 0.5 and .5
-        v = assign(match[ndx++], s);
-      }
-      ndx++;
-
-      // Check for decimal places
-      if (ndx + 1 === match.length || match[ndx + 1] === '(' && match[ndx + 3] === ')' || match[ndx + 1] === "'" && match[ndx + 3] === "'") {
-        w = assign(match[ndx], s);
-        y = C_TEN ** BigInt(match[ndx].length);
-        ndx++;
-      }
-
-      // Check for repeating places
-      if (match[ndx] === '(' && match[ndx + 2] === ')' || match[ndx] === "'" && match[ndx + 2] === "'") {
-        x = assign(match[ndx + 1], s);
-        z = C_TEN ** BigInt(match[ndx + 1].length) - C_ONE;
-        ndx += 3;
-      }
-
-    } else if (match[ndx + 1] === '/' || match[ndx + 1] === ':') { // Check for a simple fraction "123/456" or "123:456"
-      w = assign(match[ndx], s);
-      y = assign(match[ndx + 2], C_ONE);
-      ndx += 3;
-    } else if (match[ndx + 3] === '/' && match[ndx + 1] === ' ') { // Check for a complex fraction "123 1/2"
-      v = assign(match[ndx], s);
-      w = assign(match[ndx + 2], s);
-      y = assign(match[ndx + 4], C_ONE);
-      ndx += 5;
-    }
-
-    if (match.length <= ndx) { // Check for more tokens on the stack
-      d = y * z;
-      s = /* void */
-        n = x + d * v + z * w;
-    } else {
-      throw InvalidParameter();
-    }
-
-  } else if (typeof p1 === "bigint") {
-    n = p1;
-    s = p1;
-    d = C_ONE;
-  } else {
-    throw InvalidParameter();
-  }
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  P["s"] = s < C_ZERO ? -C_ONE : C_ONE;
-  P["n"] = n < C_ZERO ? -n : n;
-  P["d"] = d < C_ZERO ? -d : d;
-};
-
-function modpow(b, e, m) {
-
-  let r = C_ONE;
-  for (; e > C_ZERO; b = (b * b) % m, e >>= C_ONE) {
-
-    if (e & C_ONE) {
-      r = (r * b) % m;
-    }
-  }
-  return r;
-}
-
-function cycleLen(n, d) {
-
-  for (; d % C_TWO === C_ZERO;
-    d /= C_TWO) {
-  }
-
-  for (; d % C_FIVE === C_ZERO;
-    d /= C_FIVE) {
-  }
-
-  if (d === C_ONE) // Catch non-cyclic numbers
-    return C_ZERO;
-
-  // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem:
-  // 10^(d-1) % d == 1
-  // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone,
-  // as we want to translate the numbers to strings.
-
-  let rem = C_TEN % d;
-  let t = 1;
-
-  for (; rem !== C_ONE; t++) {
-    rem = rem * C_TEN % d;
-
-    if (t > MAX_CYCLE_LEN)
-      return C_ZERO; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1`
-  }
-  return BigInt(t);
-}
-
-function cycleStart(n, d, len) {
-
-  let rem1 = C_ONE;
-  let rem2 = modpow(C_TEN, len, d);
-
-  for (let t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE)
-    // Solve 10^s == 10^(s+t) (mod d)
-
-    if (rem1 === rem2)
-      return BigInt(t);
-
-    rem1 = rem1 * C_TEN % d;
-    rem2 = rem2 * C_TEN % d;
-  }
-  return 0;
-}
-
-function gcd(a, b) {
-
-  if (!a)
-    return b;
-  if (!b)
-    return a;
-
-  while (1) {
-    a %= b;
-    if (!a)
-      return b;
-    b %= a;
-    if (!b)
-      return a;
-  }
-}
-
-/**
- * Module constructor
- *
- * @constructor
- * @param {number|Fraction=} a
- * @param {number=} b
- */
-function Fraction(a, b) {
-
-  parse(a, b);
-
-  if (this instanceof Fraction) {
-    a = gcd(P["d"], P["n"]); // Abuse a
-    this["s"] = P["s"];
-    this["n"] = P["n"] / a;
-    this["d"] = P["d"] / a;
-  } else {
-    return newFraction(P['s'] * P['n'], P['d']);
-  }
-}
-
-const DivisionByZero = function () { return new Error("Division by Zero"); };
-const InvalidParameter = function () { return new Error("Invalid argument"); };
-const NonIntegerParameter = function () { return new Error("Parameters must be integer"); };
-
-Fraction.prototype = {
-
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE,
-
-  /**
-   * Calculates the absolute value
-   *
-   * Ex: new Fraction(-4).abs() => 4
-   **/
-  "abs": function () {
-
-    return newFraction(this["n"], this["d"]);
-  },
-
-  /**
-   * Inverts the sign of the current fraction
-   *
-   * Ex: new Fraction(-4).neg() => 4
-   **/
-  "neg": function () {
-
-    return newFraction(-this["s"] * this["n"], this["d"]);
-  },
-
-  /**
-   * Adds two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30
-   **/
-  "add": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Subtracts two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30
-   **/
-  "sub": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Multiplies two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111
-   **/
-  "mul": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Divides two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").inverse().div(3)
-   **/
-  "div": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["d"],
-      this["d"] * P["n"]
-    );
-  },
-
-  /**
-   * Clones the actual object
-   *
-   * Ex: new Fraction("-17.(345)").clone()
-   **/
-  "clone": function () {
-    return newFraction(this['s'] * this['n'], this['d']);
-  },
-
-  /**
-   * Calculates the modulo of two rational numbers - a more precise fmod
-   *
-   * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)
-   * Ex: new Fraction(20, 10).mod().equals(0) ? "is Integer"
-   **/
-  "mod": function (a, b) {
-
-    if (a === undefined) {
-      return newFraction(this["s"] * this["n"] % this["d"], C_ONE);
-    }
-
-    parse(a, b);
-    if (C_ZERO === P["n"] * this["d"]) {
-      throw DivisionByZero();
-    }
-
-    /**
-     * I derived the rational modulo similar to the modulo for integers
-     *
-     * https://raw.org/book/analysis/rational-numbers/
-     *
-     *    n1/d1 = (n2/d2) * q + r, where 0 ≤ r < n2/d2
-     * => d2 * n1 = n2 * d1 * q + d1 * d2 * r
-     * => r = (d2 * n1 - n2 * d1 * q) / (d1 * d2)
-     *      = (d2 * n1 - n2 * d1 * floor((d2 * n1) / (n2 * d1))) / (d1 * d2)
-     *      = ((d2 * n1) % (n2 * d1)) / (d1 * d2)
-     */
-    return newFraction(
-      this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]),
-      P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional gcd of two rational numbers
-   *
-   * Ex: new Fraction(5,8).gcd(3,7) => 1/56
-   */
-  "gcd": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d)
-
-    return newFraction(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional lcm of two rational numbers
-   *
-   * Ex: new Fraction(5,8).lcm(3,7) => 15
-   */
-  "lcm": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d)
-
-    if (P["n"] === C_ZERO && this["n"] === C_ZERO) {
-      return newFraction(C_ZERO, C_ONE);
-    }
-    return newFraction(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]));
-  },
-
-  /**
-   * Gets the inverse of the fraction, means numerator and denominator are exchanged
-   *
-   * Ex: new Fraction([-3, 4]).inverse() => -4 / 3
-   **/
-  "inverse": function () {
-    return newFraction(this["s"] * this["d"], this["n"]);
-  },
-
-  /**
-   * Calculates the fraction to some integer exponent
-   *
-   * Ex: new Fraction(-1,2).pow(-3) => -8
-   */
-  "pow": function (a, b) {
-
-    parse(a, b);
-
-    // Trivial case when exp is an integer
-
-    if (P['d'] === C_ONE) {
-
-      if (P['s'] < C_ZERO) {
-        return newFraction((this['s'] * this["d"]) ** P['n'], this["n"] ** P['n']);
-      } else {
-        return newFraction((this['s'] * this["n"]) ** P['n'], this["d"] ** P['n']);
-      }
-    }
-
-    // Negative roots become complex
-    //     (-a/b)^(c/d) = x
-    // ⇔ (-1)^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(pi) + i*sin(pi))^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(c*pi/d) + i*sin(c*pi/d)) * (a/b)^(c/d) = x       # DeMoivre's formula
-    // From which follows that only for c=0 the root is non-complex
-    if (this['s'] < C_ZERO) return null;
-
-    // Now prime factor n and d
-    let N = factorize(this['n']);
-    let D = factorize(this['d']);
-
-    // Exponentiate and take root for n and d individually
-    let n = C_ONE;
-    let d = C_ONE;
-    for (let k in N) {
-      if (k === '1') continue;
-      if (k === '0') {
-        n = C_ZERO;
-        break;
-      }
-      N[k] *= P['n'];
-
-      if (N[k] % P['d'] === C_ZERO) {
-        N[k] /= P['d'];
-      } else return null;
-      n *= BigInt(k) ** N[k];
-    }
-
-    for (let k in D) {
-      if (k === '1') continue;
-      D[k] *= P['n'];
-
-      if (D[k] % P['d'] === C_ZERO) {
-        D[k] /= P['d'];
-      } else return null;
-      d *= BigInt(k) ** D[k];
-    }
-
-    if (P['s'] < C_ZERO) {
-      return newFraction(d, n);
-    }
-    return newFraction(n, d);
-  },
-
-  /**
-   * Calculates the logarithm of a fraction to a given rational base
-   *
-   * Ex: new Fraction(27, 8).log(9, 4) => 3/2
-   */
-  "log": function (a, b) {
-
-    parse(a, b);
-
-    if (this['s'] <= C_ZERO || P['s'] <= C_ZERO) return null;
-
-    const allPrimes = Object.create(null);
-
-    const baseFactors = factorize(P['n']);
-    const T1 = factorize(P['d']);
-
-    const numberFactors = factorize(this['n']);
-    const T2 = factorize(this['d']);
-
-    for (const prime in T1) {
-      baseFactors[prime] = (baseFactors[prime] || C_ZERO) - T1[prime];
-    }
-    for (const prime in T2) {
-      numberFactors[prime] = (numberFactors[prime] || C_ZERO) - T2[prime];
-    }
-
-    for (const prime in baseFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-    for (const prime in numberFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-
-    let retN = null;
-    let retD = null;
-
-    // Iterate over all unique primes to determine if a consistent ratio exists
-    for (const prime in allPrimes) {
-
-      const baseExponent = baseFactors[prime] || C_ZERO;
-      const numberExponent = numberFactors[prime] || C_ZERO;
-
-      if (baseExponent === C_ZERO) {
-        if (numberExponent !== C_ZERO) {
-          return null; // Logarithm cannot be expressed as a rational number
-        }
-        continue; // Skip this prime since both exponents are zero
-      }
-
-      // Calculate the ratio of exponents for this prime
-      let curN = numberExponent;
-      let curD = baseExponent;
-
-      // Simplify the current ratio
-      const gcdValue = gcd(curN, curD);
-      curN /= gcdValue;
-      curD /= gcdValue;
-
-      // Check if this is the first ratio; otherwise, ensure ratios are consistent
-      if (retN === null && retD === null) {
-        retN = curN;
-        retD = curD;
-      } else if (curN * retD !== retN * curD) {
-        return null; // Ratios do not match, logarithm cannot be rational
-      }
-    }
-
-    return retN !== null && retD !== null
-      ? newFraction(retN, retD)
-      : null;
-  },
-
-  /**
-   * Check if two rational numbers are the same
-   *
-   * Ex: new Fraction(19.6).equals([98, 5]);
-   **/
-  "equals": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] < P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] <= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] > P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] >= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Compare two rational numbers
-   * < 0 iff this < that
-   * > 0 iff this > that
-   * = 0 iff this = that
-   *
-   * Ex: new Fraction(19.6).compare([98, 5]);
-   **/
-  "compare": function (a, b) {
-
-    parse(a, b);
-    let t = this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"];
-
-    return (C_ZERO < t) - (t < C_ZERO);
-  },
-
-  /**
-   * Calculates the ceil of a rational number
-   *
-   * Ex: new Fraction('4.(3)').ceil() => (5 / 1)
-   **/
-  "ceil": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] >= C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Calculates the floor of a rational number
-   *
-   * Ex: new Fraction('4.(3)').floor() => (4 / 1)
-   **/
-  "floor": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) -
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] < C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Rounds a rational numbers
-   *
-   * Ex: new Fraction('4.(3)').round() => (4 / 1)
-   **/
-  "round": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    /* Derivation:
-
-    s >= 0:
-      round(n / d) = ifloor(n / d) + (n % d) / d >= 0.5 ? 1 : 0
-                   = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    s < 0:
-      round(n / d) =-ifloor(n / d) - (n % d) / d > 0.5 ? 1 : 0
-                   =-ifloor(n / d) - 2(n % d) > d ? 1 : 0
-
-    =>:
-
-    round(s * n / d) = s * ifloor(n / d) + s * (C + 2(n % d) > d ? 1 : 0)
-        where C = s >= 0 ? 1 : 0, to fix the >= for the positve case.
-    */
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      this["s"] * ((this["s"] >= C_ZERO ? C_ONE : C_ZERO) + C_TWO * (places * this["n"] % this["d"]) > this["d"] ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-    * Rounds a rational number to a multiple of another rational number
-    *
-    * Ex: new Fraction('0.9').roundTo("1/8") => 7 / 8
-    **/
-  "roundTo": function (a, b) {
-
-    /*
-    k * x/y ≤ a/b < (k+1) * x/y
-    ⇔ k ≤ a/b / (x/y) < (k+1)
-    ⇔ k = floor(a/b * y/x)
-    ⇔ k = floor((a * y) / (b * x))
-    */
-
-    parse(a, b);
-
-    const n = this['n'] * P['d'];
-    const d = this['d'] * P['n'];
-    const r = n % d;
-
-    // round(n / d) = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    let k = ifloor(n / d);
-    if (r + r >= d) {
-      k++;
-    }
-    return newFraction(this['s'] * k * P['n'], P['d']);
-  },
-
-  /**
-   * Check if two rational numbers are divisible
-   *
-   * Ex: new Fraction(19.6).divisible(1.5);
-   */
-  "divisible": function (a, b) {
-
-    parse(a, b);
-    if (P['n'] === C_ZERO) return false;
-    return (this['n'] * P['d']) % (P['n'] * this['d']) === C_ZERO;
-  },
-
-  /**
-   * Returns a decimal representation of the fraction
-   *
-   * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183
-   **/
-  'valueOf': function () {
-    //if (this['n'] <= MAX_INTEGER && this['d'] <= MAX_INTEGER) {
-    return Number(this['s'] * this['n']) / Number(this['d']);
-    //}
-  },
-
-  /**
-   * Creates a string representation of a fraction with all digits
-   *
-   * Ex: new Fraction("100.'91823'").toString() => "100.(91823)"
-   **/
-  'toString': function (dec = 15) {
-
-    let N = this["n"];
-    let D = this["d"];
-
-    let cycLen = cycleLen(N, D); // Cycle length
-    let cycOff = cycleStart(N, D, cycLen); // Cycle start
-
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    // Append integer part
-    str += ifloor(N / D);
-
-    N %= D;
-    N *= C_TEN;
-
-    if (N)
-      str += ".";
-
-    if (cycLen) {
-
-      for (let i = cycOff; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += "(";
-      for (let i = cycLen; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += ")";
-    } else {
-      for (let i = dec; N && i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-    }
-    return str;
-  },
-
-  /**
-   * Returns a string-fraction representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toFraction() => "4 1/3"
-   **/
-  'toFraction': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        str += " ";
-        n %= d;
-      }
-
-      str += n;
-      str += '/';
-      str += d;
-    }
-    return str;
-  },
-
-  /**
-   * Returns a latex representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}"
-   **/
-  'toLatex': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        n %= d;
-      }
-
-      str += "\\frac{";
-      str += n;
-      str += '}{';
-      str += d;
-      str += '}';
-    }
-    return str;
-  },
-
-  /**
-   * Returns an array of continued fraction elements
-   *
-   * Ex: new Fraction("7/8").toContinued() => [0,1,7]
-   */
-  'toContinued': function () {
-
-    let a = this['n'];
-    let b = this['d'];
-    const res = [];
-
-    while (b) {
-      res.push(ifloor(a / b));
-      const t = a % b;
-      a = b;
-      b = t;
-    }
-    return res;
-  },
-
-  "simplify": function (eps = 1e-3) {
-
-    // Continued fractions give best approximations for a max denominator,
-    // generally outperforming mediants in denominator–accuracy trade-offs.
-    // Semiconvergents can further reduce the denominator within tolerance.
-
-    const ieps = BigInt(Math.ceil(1 / eps));
-
-    const thisABS = this['abs']();
-    const cont = thisABS['toContinued']();
-
-    for (let i = 1; i < cont.length; i++) {
-
-      let s = newFraction(cont[i - 1], C_ONE);
-      for (let k = i - 2; k >= 0; k--) {
-        s = s['inverse']()['add'](cont[k]);
-      }
-
-      let t = s['sub'](thisABS);
-      if (t['n'] * ieps < t['d']) { // More robust than Math.abs(t.valueOf()) < eps
-        return s['mul'](this['s']);
-      }
-    }
-    return this;
-  }
-};
-
-Object.defineProperty(Fraction, "__esModule", { 'value': true });
-Fraction['default'] = Fraction;
-Fraction['Fraction'] = Fraction;
-module['exports'] = Fraction;
Index: de_modules/fraction.js/dist/fraction.min.js
===================================================================
--- node_modules/fraction.js/dist/fraction.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/*
-Fraction.js v5.3.4 8/22/2025
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2025, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-'use strict';(function(F){function D(){return Error("Parameters must be integer")}function x(){return Error("Invalid argument")}function C(){return Error("Division by Zero")}function q(a,b){var d=g,c=h;let f=h;if(void 0!==a&&null!==a)if(void 0!==b){if("bigint"===typeof a)d=a;else{if(isNaN(a))throw x();if(0!==a%1)throw D();d=BigInt(a)}if("bigint"===typeof b)c=b;else{if(isNaN(b))throw x();if(0!==b%1)throw D();c=BigInt(b)}f=d*c}else if("object"===typeof a){if("d"in a&&"n"in a)d=BigInt(a.n),c=BigInt(a.d),
-"s"in a&&(d*=BigInt(a.s));else if(0 in a)d=BigInt(a[0]),1 in a&&(c=BigInt(a[1]));else if("bigint"===typeof a)d=a;else throw x();f=d*c}else if("number"===typeof a){if(isNaN(a))throw x();0>a&&(f=-h,a=-a);if(0===a%1)d=BigInt(a);else{b=1;var k=0,l=1,m=1;let r=1;1<=a&&(b=10**Math.floor(1+Math.log10(a)),a/=b);for(;1E7>=l&&1E7>=r;)if(c=(k+m)/(l+r),a===c){1E7>=l+r?(d=k+m,c=l+r):r>l?(d=m,c=r):(d=k,c=l);break}else a>c?(k+=m,l+=r):(m+=k,r+=l),1E7<l?(d=m,c=r):(d=k,c=l);d=BigInt(d)*BigInt(b);c=BigInt(c)}}else if("string"===
-typeof a){c=0;k=b=d=g;l=m=h;a=a.replace(/_/g,"").match(/\d+|./g);if(null===a)throw x();"-"===a[c]?(f=-h,c++):"+"===a[c]&&c++;if(a.length===c+1)b=w(a[c++],f);else if("."===a[c+1]||"."===a[c]){"."!==a[c]&&(d=w(a[c++],f));c++;if(c+1===a.length||"("===a[c+1]&&")"===a[c+3]||"'"===a[c+1]&&"'"===a[c+3])b=w(a[c],f),m=t**BigInt(a[c].length),c++;if("("===a[c]&&")"===a[c+2]||"'"===a[c]&&"'"===a[c+2])k=w(a[c+1],f),l=t**BigInt(a[c+1].length)-h,c+=3}else"/"===a[c+1]||":"===a[c+1]?(b=w(a[c],f),m=w(a[c+2],h),c+=
-3):"/"===a[c+3]&&" "===a[c+1]&&(d=w(a[c],f),b=w(a[c+2],f),m=w(a[c+4],h),c+=5);if(a.length<=c)c=m*l,f=d=k+c*d+l*b;else throw x();}else if("bigint"===typeof a)f=d=a,c=h;else throw x();if(c===g)throw C();e.s=f<g?-h:h;e.n=d<g?-d:d;e.d=c<g?-c:c}function w(a,b){try{a=BigInt(a)}catch(d){throw x();}return a*b}function u(a){return"bigint"===typeof a?a:Math.floor(a)}function n(a,b){if(b===g)throw C();const d=Object.create(v.prototype);d.s=a<g?-h:h;a=a<g?-a:a;const c=y(a,b);d.n=a/c;d.d=b/c;return d}function A(a){const b=
-Object.create(null);if(a<=h)return b[a]=h,b;for(;a%p===g;)b[p]=(b[p]||g)+h,a/=p;for(;a%B===g;)b[B]=(b[B]||g)+h,a/=B;for(;a%z===g;)b[z]=(b[z]||g)+h,a/=z;for(let d=0,c=p+z;c*c<=a;){for(;a%c===g;)b[c]=(b[c]||g)+h,a/=c;c+=G[d];d=d+1&7}a>h&&(b[a]=(b[a]||g)+h);return b}function y(a,b){if(!a)return b;if(!b)return a;for(;;){a%=b;if(!a)return b;b%=a;if(!b)return a}}function v(a,b){q(a,b);if(this instanceof v)a=y(e.d,e.n),this.s=e.s,this.n=e.n/a,this.d=e.d/a;else return n(e.s*e.n,e.d)}"undefined"===typeof BigInt&&
-(BigInt=function(a){if(isNaN(a))throw Error("");return a});const g=BigInt(0),h=BigInt(1),p=BigInt(2),B=BigInt(3),z=BigInt(5),t=BigInt(10),e={s:h,n:g,d:h},G=[p*p,p,p*p,p,p*p,p*B,p,p*B];v.prototype={s:h,n:g,d:h,abs:function(){return n(this.n,this.d)},neg:function(){return n(-this.s*this.n,this.d)},add:function(a,b){q(a,b);return n(this.s*this.n*e.d+e.s*this.d*e.n,this.d*e.d)},sub:function(a,b){q(a,b);return n(this.s*this.n*e.d-e.s*this.d*e.n,this.d*e.d)},mul:function(a,b){q(a,b);return n(this.s*e.s*
-this.n*e.n,this.d*e.d)},div:function(a,b){q(a,b);return n(this.s*e.s*this.n*e.d,this.d*e.n)},clone:function(){return n(this.s*this.n,this.d)},mod:function(a,b){if(void 0===a)return n(this.s*this.n%this.d,h);q(a,b);if(g===e.n*this.d)throw C();return n(this.s*e.d*this.n%(e.n*this.d),e.d*this.d)},gcd:function(a,b){q(a,b);return n(y(e.n,this.n)*y(e.d,this.d),e.d*this.d)},lcm:function(a,b){q(a,b);return e.n===g&&this.n===g?n(g,h):n(e.n*this.n,y(e.n,this.n)*y(e.d,this.d))},inverse:function(){return n(this.s*
-this.d,this.n)},pow:function(a,b){q(a,b);if(e.d===h)return e.s<g?n((this.s*this.d)**e.n,this.n**e.n):n((this.s*this.n)**e.n,this.d**e.n);if(this.s<g)return null;a=A(this.n);b=A(this.d);let d=h,c=h;for(let f in a)if("1"!==f){if("0"===f){d=g;break}a[f]*=e.n;if(a[f]%e.d===g)a[f]/=e.d;else return null;d*=BigInt(f)**a[f]}for(let f in b)if("1"!==f){b[f]*=e.n;if(b[f]%e.d===g)b[f]/=e.d;else return null;c*=BigInt(f)**b[f]}return e.s<g?n(c,d):n(d,c)},log:function(a,b){q(a,b);if(this.s<=g||e.s<=g)return null;
-var d=Object.create(null);a=A(e.n);const c=A(e.d);b=A(this.n);const f=A(this.d);for(var k in c)a[k]=(a[k]||g)-c[k];for(var l in f)b[l]=(b[l]||g)-f[l];for(var m in a)"1"!==m&&(d[m]=!0);for(var r in b)"1"!==r&&(d[r]=!0);l=k=null;for(const E in d)if(m=a[E]||g,d=b[E]||g,m===g){if(d!==g)return null}else if(r=y(d,m),d/=r,m/=r,null===k&&null===l)k=d,l=m;else if(d*l!==k*m)return null;return null!==k&&null!==l?n(k,l):null},equals:function(a,b){q(a,b);return this.s*this.n*e.d===e.s*e.n*this.d},lt:function(a,
-b){q(a,b);return this.s*this.n*e.d<e.s*e.n*this.d},lte:function(a,b){q(a,b);return this.s*this.n*e.d<=e.s*e.n*this.d},gt:function(a,b){q(a,b);return this.s*this.n*e.d>e.s*e.n*this.d},gte:function(a,b){q(a,b);return this.s*this.n*e.d>=e.s*e.n*this.d},compare:function(a,b){q(a,b);a=this.s*this.n*e.d-e.s*e.n*this.d;return(g<a)-(a<g)},ceil:function(a){a=t**BigInt(a||0);return n(u(this.s*a*this.n/this.d)+(a*this.n%this.d>g&&this.s>=g?h:g),a)},floor:function(a){a=t**BigInt(a||0);return n(u(this.s*a*this.n/
-this.d)-(a*this.n%this.d>g&&this.s<g?h:g),a)},round:function(a){a=t**BigInt(a||0);return n(u(this.s*a*this.n/this.d)+this.s*((this.s>=g?h:g)+a*this.n%this.d*p>this.d?h:g),a)},roundTo:function(a,b){q(a,b);var d=this.n*e.d;a=this.d*e.n;b=d%a;d=u(d/a);b+b>=a&&d++;return n(this.s*d*e.n,e.d)},divisible:function(a,b){q(a,b);return e.n===g?!1:this.n*e.d%(e.n*this.d)===g},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(a=15){let b=this.n,d=this.d;var c;a:{for(c=d;c%p===g;c/=
-p);for(;c%z===g;c/=z);if(c===h)c=g;else{for(var f=t%c,k=1;f!==h;k++)if(f=f*t%c,2E3<k){c=g;break a}c=BigInt(k)}}a:{f=h;k=t;var l=c;let m=h;for(;l>g;k=k*k%d,l>>=h)l&h&&(m=m*k%d);k=m;for(l=0;300>l;l++){if(f===k){f=BigInt(l);break a}f=f*t%d;k=k*t%d}f=0}k=f;f=this.s<g?"-":"";f+=u(b/d);(b=b%d*t)&&(f+=".");if(c){for(a=k;a--;)f+=u(b/d),b%=d,b*=t;f+="(";for(a=c;a--;)f+=u(b/d),b%=d,b*=t;f+=")"}else for(;b&&a--;)f+=u(b/d),b%=d,b*=t;return f},toFraction:function(a=!1){let b=this.n,d=this.d,c=this.s<g?"-":"";
-if(d===h)c+=b;else{const f=u(b/d);a&&f>g&&(c+=f,c+=" ",b%=d);c=c+b+"/"+d}return c},toLatex:function(a=!1){let b=this.n,d=this.d,c=this.s<g?"-":"";if(d===h)c+=b;else{const f=u(b/d);a&&f>g&&(c+=f,b%=d);c=c+"\\frac{"+b+"}{"+d;c+="}"}return c},toContinued:function(){let a=this.n,b=this.d;const d=[];for(;b;){d.push(u(a/b));const c=a%b;a=b;b=c}return d},simplify:function(a=.001){a=BigInt(Math.ceil(1/a));const b=this.abs(),d=b.toContinued();for(let f=1;f<d.length;f++){let k=n(d[f-1],h);for(var c=f-2;0<=
-c;c--)k=k.inverse().add(d[c]);c=k.sub(b);if(c.n*a<c.d)return k.mul(this.s)}return this}};"function"===typeof define&&define.amd?define([],function(){return v}):"object"===typeof exports?(Object.defineProperty(v,"__esModule",{value:!0}),v["default"]=v,v.Fraction=v,module.exports=v):F.Fraction=v})(this);
Index: de_modules/fraction.js/dist/fraction.mjs
===================================================================
--- node_modules/fraction.js/dist/fraction.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1043 +1,0 @@
-'use strict';
-
-/**
- *
- * This class offers the possibility to calculate fractions.
- * You can pass a fraction in different formats. Either as array, as double, as string or as an integer.
- *
- * Array/Object form
- * [ 0 => <numerator>, 1 => <denominator> ]
- * { n => <numerator>, d => <denominator> }
- *
- * Integer form
- * - Single integer value as BigInt or Number
- *
- * Double form
- * - Single double value as Number
- *
- * String form
- * 123.456 - a simple double
- * 123/456 - a string fraction
- * 123.'456' - a double with repeating decimal places
- * 123.(456) - synonym
- * 123.45'6' - a double with repeating last place
- * 123.45(6) - synonym
- *
- * Example:
- * let f = new Fraction("9.4'31'");
- * f.mul([-4, 3]).div(4.9);
- *
- */
-
-// Set Identity function to downgrade BigInt to Number if needed
-if (typeof BigInt === 'undefined') BigInt = function (n) { if (isNaN(n)) throw new Error(""); return n; };
-
-const C_ZERO = BigInt(0);
-const C_ONE = BigInt(1);
-const C_TWO = BigInt(2);
-const C_THREE = BigInt(3);
-const C_FIVE = BigInt(5);
-const C_TEN = BigInt(10);
-const MAX_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
-
-// Maximum search depth for cyclic rational numbers. 2000 should be more than enough.
-// Example: 1/7 = 0.(142857) has 6 repeating decimal places.
-// If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits
-const MAX_CYCLE_LEN = 2000;
-
-// Parsed data to avoid calling "new" all the time
-const P = {
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE
-};
-
-function assign(n, s) {
-
-  try {
-    n = BigInt(n);
-  } catch (e) {
-    throw InvalidParameter();
-  }
-  return n * s;
-}
-
-function ifloor(x) {
-  return typeof x === 'bigint' ? x : Math.floor(x);
-}
-
-// Creates a new Fraction internally without the need of the bulky constructor
-function newFraction(n, d) {
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  const f = Object.create(Fraction.prototype);
-  f["s"] = n < C_ZERO ? -C_ONE : C_ONE;
-
-  n = n < C_ZERO ? -n : n;
-
-  const a = gcd(n, d);
-
-  f["n"] = n / a;
-  f["d"] = d / a;
-  return f;
-}
-
-const FACTORSTEPS = [C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO * C_THREE, C_TWO, C_TWO * C_THREE]; // repeats
-function factorize(n) {
-
-  const factors = Object.create(null);
-  if (n <= C_ONE) {
-    factors[n] = C_ONE;
-    return factors;
-  }
-
-  const add = (p) => { factors[p] = (factors[p] || C_ZERO) + C_ONE; };
-
-  while (n % C_TWO === C_ZERO) { add(C_TWO); n /= C_TWO; }
-  while (n % C_THREE === C_ZERO) { add(C_THREE); n /= C_THREE; }
-  while (n % C_FIVE === C_ZERO) { add(C_FIVE); n /= C_FIVE; }
-
-  // 30-wheel trial division: test only residues coprime to 2*3*5
-  // Residue step pattern after 5: 7,11,13,17,19,23,29,31, ...
-  for (let si = 0, p = C_TWO + C_FIVE; p * p <= n;) {
-    while (n % p === C_ZERO) { add(p); n /= p; }
-    p += FACTORSTEPS[si];
-    si = (si + 1) & 7; // fast modulo 8
-  }
-  if (n > C_ONE) add(n);
-  return factors;
-}
-
-const parse = function (p1, p2) {
-
-  let n = C_ZERO, d = C_ONE, s = C_ONE;
-
-  if (p1 === undefined || p1 === null) { // No argument
-    /* void */
-  } else if (p2 !== undefined) { // Two arguments
-
-    if (typeof p1 === "bigint") {
-      n = p1;
-    } else if (isNaN(p1)) {
-      throw InvalidParameter();
-    } else if (p1 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      n = BigInt(p1);
-    }
-
-    if (typeof p2 === "bigint") {
-      d = p2;
-    } else if (isNaN(p2)) {
-      throw InvalidParameter();
-    } else if (p2 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      d = BigInt(p2);
-    }
-
-    s = n * d;
-
-  } else if (typeof p1 === "object") {
-    if ("d" in p1 && "n" in p1) {
-      n = BigInt(p1["n"]);
-      d = BigInt(p1["d"]);
-      if ("s" in p1)
-        n *= BigInt(p1["s"]);
-    } else if (0 in p1) {
-      n = BigInt(p1[0]);
-      if (1 in p1)
-        d = BigInt(p1[1]);
-    } else if (typeof p1 === "bigint") {
-      n = p1;
-    } else {
-      throw InvalidParameter();
-    }
-    s = n * d;
-  } else if (typeof p1 === "number") {
-
-    if (isNaN(p1)) {
-      throw InvalidParameter();
-    }
-
-    if (p1 < 0) {
-      s = -C_ONE;
-      p1 = -p1;
-    }
-
-    if (p1 % 1 === 0) {
-      n = BigInt(p1);
-    } else {
-
-      let z = 1;
-
-      let A = 0, B = 1;
-      let C = 1, D = 1;
-
-      let N = 10000000;
-
-      if (p1 >= 1) {
-        z = 10 ** Math.floor(1 + Math.log10(p1));
-        p1 /= z;
-      }
-
-      // Using Farey Sequences
-
-      while (B <= N && D <= N) {
-        let M = (A + C) / (B + D);
-
-        if (p1 === M) {
-          if (B + D <= N) {
-            n = A + C;
-            d = B + D;
-          } else if (D > B) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-          break;
-
-        } else {
-
-          if (p1 > M) {
-            A += C;
-            B += D;
-          } else {
-            C += A;
-            D += B;
-          }
-
-          if (B > N) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-        }
-      }
-      n = BigInt(n) * BigInt(z);
-      d = BigInt(d);
-    }
-
-  } else if (typeof p1 === "string") {
-
-    let ndx = 0;
-
-    let v = C_ZERO, w = C_ZERO, x = C_ZERO, y = C_ONE, z = C_ONE;
-
-    let match = p1.replace(/_/g, '').match(/\d+|./g);
-
-    if (match === null)
-      throw InvalidParameter();
-
-    if (match[ndx] === '-') {// Check for minus sign at the beginning
-      s = -C_ONE;
-      ndx++;
-    } else if (match[ndx] === '+') {// Check for plus sign at the beginning
-      ndx++;
-    }
-
-    if (match.length === ndx + 1) { // Check if it's just a simple number "1234"
-      w = assign(match[ndx++], s);
-    } else if (match[ndx + 1] === '.' || match[ndx] === '.') { // Check if it's a decimal number
-
-      if (match[ndx] !== '.') { // Handle 0.5 and .5
-        v = assign(match[ndx++], s);
-      }
-      ndx++;
-
-      // Check for decimal places
-      if (ndx + 1 === match.length || match[ndx + 1] === '(' && match[ndx + 3] === ')' || match[ndx + 1] === "'" && match[ndx + 3] === "'") {
-        w = assign(match[ndx], s);
-        y = C_TEN ** BigInt(match[ndx].length);
-        ndx++;
-      }
-
-      // Check for repeating places
-      if (match[ndx] === '(' && match[ndx + 2] === ')' || match[ndx] === "'" && match[ndx + 2] === "'") {
-        x = assign(match[ndx + 1], s);
-        z = C_TEN ** BigInt(match[ndx + 1].length) - C_ONE;
-        ndx += 3;
-      }
-
-    } else if (match[ndx + 1] === '/' || match[ndx + 1] === ':') { // Check for a simple fraction "123/456" or "123:456"
-      w = assign(match[ndx], s);
-      y = assign(match[ndx + 2], C_ONE);
-      ndx += 3;
-    } else if (match[ndx + 3] === '/' && match[ndx + 1] === ' ') { // Check for a complex fraction "123 1/2"
-      v = assign(match[ndx], s);
-      w = assign(match[ndx + 2], s);
-      y = assign(match[ndx + 4], C_ONE);
-      ndx += 5;
-    }
-
-    if (match.length <= ndx) { // Check for more tokens on the stack
-      d = y * z;
-      s = /* void */
-        n = x + d * v + z * w;
-    } else {
-      throw InvalidParameter();
-    }
-
-  } else if (typeof p1 === "bigint") {
-    n = p1;
-    s = p1;
-    d = C_ONE;
-  } else {
-    throw InvalidParameter();
-  }
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  P["s"] = s < C_ZERO ? -C_ONE : C_ONE;
-  P["n"] = n < C_ZERO ? -n : n;
-  P["d"] = d < C_ZERO ? -d : d;
-};
-
-function modpow(b, e, m) {
-
-  let r = C_ONE;
-  for (; e > C_ZERO; b = (b * b) % m, e >>= C_ONE) {
-
-    if (e & C_ONE) {
-      r = (r * b) % m;
-    }
-  }
-  return r;
-}
-
-function cycleLen(n, d) {
-
-  for (; d % C_TWO === C_ZERO;
-    d /= C_TWO) {
-  }
-
-  for (; d % C_FIVE === C_ZERO;
-    d /= C_FIVE) {
-  }
-
-  if (d === C_ONE) // Catch non-cyclic numbers
-    return C_ZERO;
-
-  // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem:
-  // 10^(d-1) % d == 1
-  // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone,
-  // as we want to translate the numbers to strings.
-
-  let rem = C_TEN % d;
-  let t = 1;
-
-  for (; rem !== C_ONE; t++) {
-    rem = rem * C_TEN % d;
-
-    if (t > MAX_CYCLE_LEN)
-      return C_ZERO; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1`
-  }
-  return BigInt(t);
-}
-
-function cycleStart(n, d, len) {
-
-  let rem1 = C_ONE;
-  let rem2 = modpow(C_TEN, len, d);
-
-  for (let t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE)
-    // Solve 10^s == 10^(s+t) (mod d)
-
-    if (rem1 === rem2)
-      return BigInt(t);
-
-    rem1 = rem1 * C_TEN % d;
-    rem2 = rem2 * C_TEN % d;
-  }
-  return 0;
-}
-
-function gcd(a, b) {
-
-  if (!a)
-    return b;
-  if (!b)
-    return a;
-
-  while (1) {
-    a %= b;
-    if (!a)
-      return b;
-    b %= a;
-    if (!b)
-      return a;
-  }
-}
-
-/**
- * Module constructor
- *
- * @constructor
- * @param {number|Fraction=} a
- * @param {number=} b
- */
-function Fraction(a, b) {
-
-  parse(a, b);
-
-  if (this instanceof Fraction) {
-    a = gcd(P["d"], P["n"]); // Abuse a
-    this["s"] = P["s"];
-    this["n"] = P["n"] / a;
-    this["d"] = P["d"] / a;
-  } else {
-    return newFraction(P['s'] * P['n'], P['d']);
-  }
-}
-
-const DivisionByZero = function () { return new Error("Division by Zero"); };
-const InvalidParameter = function () { return new Error("Invalid argument"); };
-const NonIntegerParameter = function () { return new Error("Parameters must be integer"); };
-
-Fraction.prototype = {
-
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE,
-
-  /**
-   * Calculates the absolute value
-   *
-   * Ex: new Fraction(-4).abs() => 4
-   **/
-  "abs": function () {
-
-    return newFraction(this["n"], this["d"]);
-  },
-
-  /**
-   * Inverts the sign of the current fraction
-   *
-   * Ex: new Fraction(-4).neg() => 4
-   **/
-  "neg": function () {
-
-    return newFraction(-this["s"] * this["n"], this["d"]);
-  },
-
-  /**
-   * Adds two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30
-   **/
-  "add": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Subtracts two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30
-   **/
-  "sub": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Multiplies two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111
-   **/
-  "mul": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Divides two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").inverse().div(3)
-   **/
-  "div": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["d"],
-      this["d"] * P["n"]
-    );
-  },
-
-  /**
-   * Clones the actual object
-   *
-   * Ex: new Fraction("-17.(345)").clone()
-   **/
-  "clone": function () {
-    return newFraction(this['s'] * this['n'], this['d']);
-  },
-
-  /**
-   * Calculates the modulo of two rational numbers - a more precise fmod
-   *
-   * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)
-   * Ex: new Fraction(20, 10).mod().equals(0) ? "is Integer"
-   **/
-  "mod": function (a, b) {
-
-    if (a === undefined) {
-      return newFraction(this["s"] * this["n"] % this["d"], C_ONE);
-    }
-
-    parse(a, b);
-    if (C_ZERO === P["n"] * this["d"]) {
-      throw DivisionByZero();
-    }
-
-    /**
-     * I derived the rational modulo similar to the modulo for integers
-     *
-     * https://raw.org/book/analysis/rational-numbers/
-     *
-     *    n1/d1 = (n2/d2) * q + r, where 0 ≤ r < n2/d2
-     * => d2 * n1 = n2 * d1 * q + d1 * d2 * r
-     * => r = (d2 * n1 - n2 * d1 * q) / (d1 * d2)
-     *      = (d2 * n1 - n2 * d1 * floor((d2 * n1) / (n2 * d1))) / (d1 * d2)
-     *      = ((d2 * n1) % (n2 * d1)) / (d1 * d2)
-     */
-    return newFraction(
-      this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]),
-      P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional gcd of two rational numbers
-   *
-   * Ex: new Fraction(5,8).gcd(3,7) => 1/56
-   */
-  "gcd": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d)
-
-    return newFraction(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional lcm of two rational numbers
-   *
-   * Ex: new Fraction(5,8).lcm(3,7) => 15
-   */
-  "lcm": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d)
-
-    if (P["n"] === C_ZERO && this["n"] === C_ZERO) {
-      return newFraction(C_ZERO, C_ONE);
-    }
-    return newFraction(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]));
-  },
-
-  /**
-   * Gets the inverse of the fraction, means numerator and denominator are exchanged
-   *
-   * Ex: new Fraction([-3, 4]).inverse() => -4 / 3
-   **/
-  "inverse": function () {
-    return newFraction(this["s"] * this["d"], this["n"]);
-  },
-
-  /**
-   * Calculates the fraction to some integer exponent
-   *
-   * Ex: new Fraction(-1,2).pow(-3) => -8
-   */
-  "pow": function (a, b) {
-
-    parse(a, b);
-
-    // Trivial case when exp is an integer
-
-    if (P['d'] === C_ONE) {
-
-      if (P['s'] < C_ZERO) {
-        return newFraction((this['s'] * this["d"]) ** P['n'], this["n"] ** P['n']);
-      } else {
-        return newFraction((this['s'] * this["n"]) ** P['n'], this["d"] ** P['n']);
-      }
-    }
-
-    // Negative roots become complex
-    //     (-a/b)^(c/d) = x
-    // ⇔ (-1)^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(pi) + i*sin(pi))^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(c*pi/d) + i*sin(c*pi/d)) * (a/b)^(c/d) = x       # DeMoivre's formula
-    // From which follows that only for c=0 the root is non-complex
-    if (this['s'] < C_ZERO) return null;
-
-    // Now prime factor n and d
-    let N = factorize(this['n']);
-    let D = factorize(this['d']);
-
-    // Exponentiate and take root for n and d individually
-    let n = C_ONE;
-    let d = C_ONE;
-    for (let k in N) {
-      if (k === '1') continue;
-      if (k === '0') {
-        n = C_ZERO;
-        break;
-      }
-      N[k] *= P['n'];
-
-      if (N[k] % P['d'] === C_ZERO) {
-        N[k] /= P['d'];
-      } else return null;
-      n *= BigInt(k) ** N[k];
-    }
-
-    for (let k in D) {
-      if (k === '1') continue;
-      D[k] *= P['n'];
-
-      if (D[k] % P['d'] === C_ZERO) {
-        D[k] /= P['d'];
-      } else return null;
-      d *= BigInt(k) ** D[k];
-    }
-
-    if (P['s'] < C_ZERO) {
-      return newFraction(d, n);
-    }
-    return newFraction(n, d);
-  },
-
-  /**
-   * Calculates the logarithm of a fraction to a given rational base
-   *
-   * Ex: new Fraction(27, 8).log(9, 4) => 3/2
-   */
-  "log": function (a, b) {
-
-    parse(a, b);
-
-    if (this['s'] <= C_ZERO || P['s'] <= C_ZERO) return null;
-
-    const allPrimes = Object.create(null);
-
-    const baseFactors = factorize(P['n']);
-    const T1 = factorize(P['d']);
-
-    const numberFactors = factorize(this['n']);
-    const T2 = factorize(this['d']);
-
-    for (const prime in T1) {
-      baseFactors[prime] = (baseFactors[prime] || C_ZERO) - T1[prime];
-    }
-    for (const prime in T2) {
-      numberFactors[prime] = (numberFactors[prime] || C_ZERO) - T2[prime];
-    }
-
-    for (const prime in baseFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-    for (const prime in numberFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-
-    let retN = null;
-    let retD = null;
-
-    // Iterate over all unique primes to determine if a consistent ratio exists
-    for (const prime in allPrimes) {
-
-      const baseExponent = baseFactors[prime] || C_ZERO;
-      const numberExponent = numberFactors[prime] || C_ZERO;
-
-      if (baseExponent === C_ZERO) {
-        if (numberExponent !== C_ZERO) {
-          return null; // Logarithm cannot be expressed as a rational number
-        }
-        continue; // Skip this prime since both exponents are zero
-      }
-
-      // Calculate the ratio of exponents for this prime
-      let curN = numberExponent;
-      let curD = baseExponent;
-
-      // Simplify the current ratio
-      const gcdValue = gcd(curN, curD);
-      curN /= gcdValue;
-      curD /= gcdValue;
-
-      // Check if this is the first ratio; otherwise, ensure ratios are consistent
-      if (retN === null && retD === null) {
-        retN = curN;
-        retD = curD;
-      } else if (curN * retD !== retN * curD) {
-        return null; // Ratios do not match, logarithm cannot be rational
-      }
-    }
-
-    return retN !== null && retD !== null
-      ? newFraction(retN, retD)
-      : null;
-  },
-
-  /**
-   * Check if two rational numbers are the same
-   *
-   * Ex: new Fraction(19.6).equals([98, 5]);
-   **/
-  "equals": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] < P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] <= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] > P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] >= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Compare two rational numbers
-   * < 0 iff this < that
-   * > 0 iff this > that
-   * = 0 iff this = that
-   *
-   * Ex: new Fraction(19.6).compare([98, 5]);
-   **/
-  "compare": function (a, b) {
-
-    parse(a, b);
-    let t = this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"];
-
-    return (C_ZERO < t) - (t < C_ZERO);
-  },
-
-  /**
-   * Calculates the ceil of a rational number
-   *
-   * Ex: new Fraction('4.(3)').ceil() => (5 / 1)
-   **/
-  "ceil": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] >= C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Calculates the floor of a rational number
-   *
-   * Ex: new Fraction('4.(3)').floor() => (4 / 1)
-   **/
-  "floor": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) -
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] < C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Rounds a rational numbers
-   *
-   * Ex: new Fraction('4.(3)').round() => (4 / 1)
-   **/
-  "round": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    /* Derivation:
-
-    s >= 0:
-      round(n / d) = ifloor(n / d) + (n % d) / d >= 0.5 ? 1 : 0
-                   = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    s < 0:
-      round(n / d) =-ifloor(n / d) - (n % d) / d > 0.5 ? 1 : 0
-                   =-ifloor(n / d) - 2(n % d) > d ? 1 : 0
-
-    =>:
-
-    round(s * n / d) = s * ifloor(n / d) + s * (C + 2(n % d) > d ? 1 : 0)
-        where C = s >= 0 ? 1 : 0, to fix the >= for the positve case.
-    */
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      this["s"] * ((this["s"] >= C_ZERO ? C_ONE : C_ZERO) + C_TWO * (places * this["n"] % this["d"]) > this["d"] ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-    * Rounds a rational number to a multiple of another rational number
-    *
-    * Ex: new Fraction('0.9').roundTo("1/8") => 7 / 8
-    **/
-  "roundTo": function (a, b) {
-
-    /*
-    k * x/y ≤ a/b < (k+1) * x/y
-    ⇔ k ≤ a/b / (x/y) < (k+1)
-    ⇔ k = floor(a/b * y/x)
-    ⇔ k = floor((a * y) / (b * x))
-    */
-
-    parse(a, b);
-
-    const n = this['n'] * P['d'];
-    const d = this['d'] * P['n'];
-    const r = n % d;
-
-    // round(n / d) = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    let k = ifloor(n / d);
-    if (r + r >= d) {
-      k++;
-    }
-    return newFraction(this['s'] * k * P['n'], P['d']);
-  },
-
-  /**
-   * Check if two rational numbers are divisible
-   *
-   * Ex: new Fraction(19.6).divisible(1.5);
-   */
-  "divisible": function (a, b) {
-
-    parse(a, b);
-    if (P['n'] === C_ZERO) return false;
-    return (this['n'] * P['d']) % (P['n'] * this['d']) === C_ZERO;
-  },
-
-  /**
-   * Returns a decimal representation of the fraction
-   *
-   * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183
-   **/
-  'valueOf': function () {
-    //if (this['n'] <= MAX_INTEGER && this['d'] <= MAX_INTEGER) {
-    return Number(this['s'] * this['n']) / Number(this['d']);
-    //}
-  },
-
-  /**
-   * Creates a string representation of a fraction with all digits
-   *
-   * Ex: new Fraction("100.'91823'").toString() => "100.(91823)"
-   **/
-  'toString': function (dec = 15) {
-
-    let N = this["n"];
-    let D = this["d"];
-
-    let cycLen = cycleLen(N, D); // Cycle length
-    let cycOff = cycleStart(N, D, cycLen); // Cycle start
-
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    // Append integer part
-    str += ifloor(N / D);
-
-    N %= D;
-    N *= C_TEN;
-
-    if (N)
-      str += ".";
-
-    if (cycLen) {
-
-      for (let i = cycOff; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += "(";
-      for (let i = cycLen; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += ")";
-    } else {
-      for (let i = dec; N && i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-    }
-    return str;
-  },
-
-  /**
-   * Returns a string-fraction representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toFraction() => "4 1/3"
-   **/
-  'toFraction': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        str += " ";
-        n %= d;
-      }
-
-      str += n;
-      str += '/';
-      str += d;
-    }
-    return str;
-  },
-
-  /**
-   * Returns a latex representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}"
-   **/
-  'toLatex': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        n %= d;
-      }
-
-      str += "\\frac{";
-      str += n;
-      str += '}{';
-      str += d;
-      str += '}';
-    }
-    return str;
-  },
-
-  /**
-   * Returns an array of continued fraction elements
-   *
-   * Ex: new Fraction("7/8").toContinued() => [0,1,7]
-   */
-  'toContinued': function () {
-
-    let a = this['n'];
-    let b = this['d'];
-    const res = [];
-
-    while (b) {
-      res.push(ifloor(a / b));
-      const t = a % b;
-      a = b;
-      b = t;
-    }
-    return res;
-  },
-
-  "simplify": function (eps = 1e-3) {
-
-    // Continued fractions give best approximations for a max denominator,
-    // generally outperforming mediants in denominator–accuracy trade-offs.
-    // Semiconvergents can further reduce the denominator within tolerance.
-
-    const ieps = BigInt(Math.ceil(1 / eps));
-
-    const thisABS = this['abs']();
-    const cont = thisABS['toContinued']();
-
-    for (let i = 1; i < cont.length; i++) {
-
-      let s = newFraction(cont[i - 1], C_ONE);
-      for (let k = i - 2; k >= 0; k--) {
-        s = s['inverse']()['add'](cont[k]);
-      }
-
-      let t = s['sub'](thisABS);
-      if (t['n'] * ieps < t['d']) { // More robust than Math.abs(t.valueOf()) < eps
-        return s['mul'](this['s']);
-      }
-    }
-    return this;
-  }
-};
-export {
-  Fraction as default, Fraction
-};
Index: de_modules/fraction.js/examples/angles.js
===================================================================
--- node_modules/fraction.js/examples/angles.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-
-// This example generates a list of angles with human readable radians
-
-var Fraction = require('fraction.js');
-
-var tab = [];
-for (var d = 1; d <= 360; d++) {
-
-   var pi = Fraction(2, 360).mul(d);
-   var tau = Fraction(1, 360).mul(d);
-
-   if (pi.d <= 6n && pi.d != 5n)
-      tab.push([
-         d,
-         pi.toFraction() + "pi",
-         tau.toFraction() + "tau"]);
-}
-
-console.table(tab);
Index: de_modules/fraction.js/examples/approx.js
===================================================================
--- node_modules/fraction.js/examples/approx.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
-
-// Another rational approximation, not using Farey Sequences but Binary Search using the mediant
-function approximate(p, precision) {
-
-  var num1 = Math.floor(p);
-  var den1 = 1;
-
-  var num2 = num1 + 1;
-  var den2 = 1;
-
-  if (p !== num1) {
-
-    while (den1 <= precision && den2 <= precision) {
-
-      var m = (num1 + num2) / (den1 + den2);
-
-      if (p === m) {
-
-        if (den1 + den2 <= precision) {
-          den1 += den2;
-          num1 += num2;
-          den2 = precision + 1;
-        } else if (den1 > den2) {
-          den2 = precision + 1;
-        } else {
-          den1 = precision + 1;
-        }
-        break;
-
-      } else if (p < m) {
-        num2 += num1;
-        den2 += den1;
-      } else {
-        num1 += num2;
-        den1 += den2;
-      }
-    }
-  }
-
-  if (den1 > precision) {
-    den1 = den2;
-    num1 = num2;
-  }
-  return new Fraction(num1, den1);
-}
-
Index: de_modules/fraction.js/examples/egyptian.js
===================================================================
--- node_modules/fraction.js/examples/egyptian.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
-
-// Based on http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fractions/egyptian.html
-function egyptian(a, b) {
-
-  var res = [];
-
-  do {
-    var t = Math.ceil(b / a);
-    var x = new Fraction(a, b).sub(1, t);
-    res.push(t);
-    a = Number(x.n);
-    b = Number(x.d);
-  } while (a !== 0n);
-  return res;
-}
-console.log("1 / " + egyptian(521, 1050).join(" + 1 / "));
Index: de_modules/fraction.js/examples/hesse-convergence.js
===================================================================
--- node_modules/fraction.js/examples/hesse-convergence.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
-
-/*
-We have the polynom f(x) = 1/3x_1^2 + x_2^2 + x_1 * x_2 + 3
-
-The gradient of f(x):
-
-grad(x) = | x_1^2+x_2 |
-          | 2x_2+x_1  |
-
-And thus the Hesse-Matrix H:
-| 2x_1  1 |
-|  1    2 |
-
-The inverse Hesse-Matrix H^-1 is
-| -2 / (1-4x_1)    1 / (1 - 4x_1)     |
-| 1 / (1 - 4x_1)   -2x_1 / (1 - 4x_1) |
-
-We now want to find lim ->oo x[n], with the starting element of (3 2)^T
-
-*/
-
-// Get the Hesse Matrix
-function H(x) {
-
-  var z = Fraction(1).sub(Fraction(4).mul(x[0]));
-
-  return [
-    Fraction(-2).div(z),
-    Fraction(1).div(z),
-    Fraction(1).div(z),
-    Fraction(-2).mul(x[0]).div(z),
-  ];
-}
-
-// Get the gradient of f(x)
-function grad(x) {
-
-  return [
-    Fraction(x[0]).mul(x[0]).add(x[1]),
-    Fraction(2).mul(x[1]).add(x[0])
-  ];
-}
-
-// A simple matrix multiplication helper
-function matrMult(m, v) {
-
-  return [
-    Fraction(m[0]).mul(v[0]).add(Fraction(m[1]).mul(v[1])),
-    Fraction(m[2]).mul(v[0]).add(Fraction(m[3]).mul(v[1]))
-  ];
-}
-
-// A simple vector subtraction helper
-function vecSub(a, b) {
-
-  return [
-    Fraction(a[0]).sub(b[0]),
-    Fraction(a[1]).sub(b[1])
-  ];
-}
-
-// Main function, gets a vector and the actual index
-function run(V, j) {
-
-  var t = H(V);
-  //console.log("H(X)");
-  for (var i in t) {
-
-    //	console.log(t[i].toFraction());
-  }
-
-  var s = grad(V);
-  //console.log("vf(X)");
-  for (var i in s) {
-
-    //	console.log(s[i].toFraction());
-  }
-
-  //console.log("multiplication");
-  var r = matrMult(t, s);
-  for (var i in r) {
-
-    //	console.log(r[i].toFraction());
-  }
-
-  var R = (vecSub(V, r));
-
-  console.log("X" + j);
-  console.log(R[0].toFraction(), "= " + R[0].valueOf());
-  console.log(R[1].toFraction(), "= " + R[1].valueOf());
-  console.log("\n");
-
-  return R;
-}
-
-
-// Set the starting vector
-var v = [3, 2];
-
-for (var i = 0; i < 15; i++) {
-
-  v = run(v, i);
-}
Index: de_modules/fraction.js/examples/integrate.js
===================================================================
--- node_modules/fraction.js/examples/integrate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
-
-// NOTE: This is a nice example, but a stable version of this is served with Polynomial.js: 
-// https://github.com/rawify/Polynomial.js
-
-function integrate(poly) {
-
-    poly = poly.replace(/\s+/g, "");
-
-    var regex = /(\([+-]?[0-9/]+\)|[+-]?[0-9/]+)x(?:\^(\([+-]?[0-9/]+\)|[+-]?[0-9]+))?/g;
-    var arr;
-    var res = {};
-    while (null !== (arr = regex.exec(poly))) {
-
-        var a = (arr[1] || "1").replace("(", "").replace(")", "").split("/");
-        var b = (arr[2] || "1").replace("(", "").replace(")", "").split("/");
-
-        var exp = new Fraction(b).add(1);
-        var key = "" + exp;
-
-        if (res[key] !== undefined) {
-            res[key] = { x: new Fraction(a).div(exp).add(res[key].x), e: exp };
-        } else {
-            res[key] = { x: new Fraction(a).div(exp), e: exp };
-        }
-    }
-
-    var str = "";
-    var c = 0;
-    for (var i in res) {
-        if (res[i].x.s !== -1n && c > 0) {
-            str += "+";
-        } else if (res[i].x.s === -1n) {
-            str += "-";
-        }
-        if (res[i].x.n !== res[i].x.d) {
-            if (res[i].x.d !== 1n) {
-                str += res[i].x.n + "/" + res[i].x.d;
-            } else {
-                str += res[i].x.n;
-            }
-        }
-        str += "x";
-        if (res[i].e.n !== res[i].e.d) {
-            str += "^";
-            if (res[i].e.d !== 1n) {
-                str += "(" + res[i].e.n + "/" + res[i].e.d + ")";
-            } else {
-                str += res[i].e.n;
-            }
-        }
-        c++;
-    }
-    return str;
-}
-
-var poly = "-2/3x^3-2x^2+3x+8x^3-1/3x^(4/8)";
-
-console.log("f(x): " + poly);
-console.log("F(x): " + integrate(poly));
Index: de_modules/fraction.js/examples/ratio-chain.js
===================================================================
--- node_modules/fraction.js/examples/ratio-chain.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/*
-Given the ratio a : b : c = 2 : 3 : 4 
-What is c, given a = 40?
-
-A general ratio chain is a_1 : a_2 : a_3 : ... : a_n = r_1 : r2 : r_3 : ... : r_n.
-Now each term can be expressed as a_i = r_i * x for some unknown proportional constant x.
-If a_k is known it follows that x = a_k / r_k. Substituting x into the first equation yields
-a_i = r_i / r_k * a_k.
-
-Given an array r and a given value a_k, the following function calculates all a_i:
-*/
-
-function calculateRatios(r, a_k, k) {    
-    const x = Fraction(a_k).div(r[k]);
-    return r.map(r_i => x.mul(r_i));
-}
-
-// Example usage:
-const r = [2, 3, 4]; // Ratio array representing a : b : c = 2 : 3 : 4
-const a_k = 40; // Given value of a (corresponding to r[0])
-const k = 0; // Index of the known value (a corresponds to r[0])
-
-const result = calculateRatios(r, a_k, k);
-console.log(result); // Output: [40, 60, 80]
Index: de_modules/fraction.js/examples/rational-pow.js
===================================================================
--- node_modules/fraction.js/examples/rational-pow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
- 
-// Calculates (a/b)^(c/d) if result is rational
-// Derivation: https://raw.org/book/analysis/rational-numbers/
-function root(a, b, c, d) {
-
-  // Initial estimate
-  let x = Fraction(100 * (Math.floor(Math.pow(a / b, c / d)) || 1), 100);
-  const abc = Fraction(a, b).pow(c);
-
-  for (let i = 0; i < 30; i++) {
-    const n = abc.mul(x.pow(1 - d)).sub(x).div(d).add(x)
-
-    if (x.n === n.n && x.d === n.d) {
-      return n;
-    }
-    x = n;
-  }
-  return null;
-}
-
-root(18, 2, 1, 2); // 3/1
Index: de_modules/fraction.js/examples/tape-measure.js
===================================================================
--- node_modules/fraction.js/examples/tape-measure.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-const Fraction = require('fraction.js');
-
-function closestTapeMeasure(frac) {
-
-    // A tape measure is usually divided in parts of 1/16
-
-    return Fraction(frac).roundTo("1/16");
-}
-console.log(closestTapeMeasure("1/3")); // 5/16
Index: de_modules/fraction.js/examples/toFraction.js
===================================================================
--- node_modules/fraction.js/examples/toFraction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-
-const Fraction = require('fraction.js');
-
-function toFraction(frac) {
-
-  var map = {
-    '1:4': "¼",
-    '1:2': "½",
-    '3:4': "¾",
-    '1:7': "⅐",
-    '1:9': "⅑",
-    '1:10': "⅒",
-    '1:3': "⅓",
-    '2:3': "⅔",
-    '1:5': "⅕",
-    '2:5': "⅖",
-    '3:5': "⅗",
-    '4:5': "⅘",
-    '1:6': "⅙",
-    '5:6': "⅚",
-    '1:8': "⅛",
-    '3:8': "⅜",
-    '5:8': "⅝",
-    '7:8': "⅞"
-  };
-  return map[frac.n + ":" + frac.d] || frac.toFraction(false);
-}
-console.log(toFraction(Fraction(0.25))); // ¼
Index: de_modules/fraction.js/examples/valueOfPi.js
===================================================================
--- node_modules/fraction.js/examples/valueOfPi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/*
-Fraction.js v5.0.0 10/1/2024
-https://raw.org/article/rational-numbers-in-javascript/
-
-Copyright (c) 2024, Robert Eisele (https://raw.org/)
-Licensed under the MIT license.
-*/
-
-var Fraction = require("fraction.js")
-
-function valueOfPi(val) {
-
-  let minLen = Infinity, minI = 0, min = null;
-  const choose = [val, val * Math.PI, val / Math.PI];
-  for (let i = 0; i < choose.length; i++) {
-    let el = new Fraction(choose[i]).simplify(1e-13);
-    let len = Math.log(Number(el.n) + 1) + Math.log(Number(el.d));
-    if (len < minLen) {
-      minLen = len;
-      minI = i;
-      min = el;
-    }
-  }
-
-  if (minI == 2) {
-    return min.toFraction().replace(/(\d+)(\/\d+)?/, (_, p, q) =>
-      (p == "1" ? "" : p) + "π" + (q || ""));
-  }
-
-  if (minI == 1) {
-    return min.toFraction().replace(/(\d+)(\/\d+)?/, (_, p, q) =>
-      p + (!q ? "/π" : "/(" + q.slice(1) + "π)"));
-  }
-  return min.toFraction();
-}
-
-console.log(valueOfPi(-3)); // -3
-console.log(valueOfPi(4 * Math.PI)); // 4π
-console.log(valueOfPi(3.14)); // 157/50
-console.log(valueOfPi(3 / 2 * Math.PI)); // 3π/2
-console.log(valueOfPi(Math.PI / 2)); // π/2
-console.log(valueOfPi(-1 / (2 * Math.PI))); // -1/(2π)
Index: de_modules/fraction.js/fraction.d.mts
===================================================================
--- node_modules/fraction.js/fraction.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-/**
- * Interface representing a fraction with numerator and denominator.
- */
-export interface NumeratorDenominator {
-    n: number | bigint;
-    d: number | bigint;
-}
-
-/**
- * Type for handling multiple types of input for Fraction operations.
- */
-export type FractionInput =
-    | Fraction
-    | number
-    | bigint
-    | string
-    | [number | bigint | string, number | bigint | string]
-    | NumeratorDenominator;
-
-/**
- * Function signature for Fraction operations like add, sub, mul, etc.
- */
-export type FractionParam = {
-    (numerator: number | bigint, denominator: number | bigint): Fraction;
-    (num: FractionInput): Fraction;
-};
-
-/**
- * Fraction class representing a rational number with numerator and denominator.
- */
-declare class Fraction {
-    constructor();
-    constructor(num: FractionInput);
-    constructor(numerator: number | bigint, denominator: number | bigint);
-
-    s: bigint;
-    n: bigint;
-    d: bigint;
-
-    abs(): Fraction;
-    neg(): Fraction;
-
-    add: FractionParam;
-    sub: FractionParam;
-    mul: FractionParam;
-    div: FractionParam;
-    pow: FractionParam;
-    log: FractionParam;
-    gcd: FractionParam;
-    lcm: FractionParam;
-
-    mod(): Fraction;
-    mod(num: FractionInput): Fraction;
-
-    ceil(places?: number): Fraction;
-    floor(places?: number): Fraction;
-    round(places?: number): Fraction;
-    roundTo: FractionParam;
-
-    inverse(): Fraction;
-    simplify(eps?: number): Fraction;
-
-    equals(num: FractionInput): boolean;
-    lt(num: FractionInput): boolean;
-    lte(num: FractionInput): boolean;
-    gt(num: FractionInput): boolean;
-    gte(num: FractionInput): boolean;
-    compare(num: FractionInput): number;
-    divisible(num: FractionInput): boolean;
-
-    valueOf(): number;
-    toString(decimalPlaces?: number): string;
-    toLatex(showMixed?: boolean): string;
-    toFraction(showMixed?: boolean): string;
-    toContinued(): bigint[];
-    clone(): Fraction;
-}
-
-export { Fraction as default, Fraction };
Index: de_modules/fraction.js/fraction.d.ts
===================================================================
--- node_modules/fraction.js/fraction.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-declare class Fraction {
-  constructor();
-  constructor(num: Fraction.FractionInput);
-  constructor(numerator: number | bigint, denominator: number | bigint);
-
-  s: bigint;
-  n: bigint;
-  d: bigint;
-
-  abs(): Fraction;
-  neg(): Fraction;
-
-  add: Fraction.FractionParam;
-  sub: Fraction.FractionParam;
-  mul: Fraction.FractionParam;
-  div: Fraction.FractionParam;
-  pow: Fraction.FractionParam;
-  log: Fraction.FractionParam;
-  gcd: Fraction.FractionParam;
-  lcm: Fraction.FractionParam;
-
-  mod(): Fraction;
-  mod(num: Fraction.FractionInput): Fraction;
-
-  ceil(places?: number): Fraction;
-  floor(places?: number): Fraction;
-  round(places?: number): Fraction;
-  roundTo: Fraction.FractionParam;
-
-  inverse(): Fraction;
-  simplify(eps?: number): Fraction;
-
-  equals(num: Fraction.FractionInput): boolean;
-  lt(num: Fraction.FractionInput): boolean;
-  lte(num: Fraction.FractionInput): boolean;
-  gt(num: Fraction.FractionInput): boolean;
-  gte(num: Fraction.FractionInput): boolean;
-  compare(num: Fraction.FractionInput): number;
-  divisible(num: Fraction.FractionInput): boolean;
-
-  valueOf(): number;
-  toString(decimalPlaces?: number): string;
-  toLatex(showMixed?: boolean): string;
-  toFraction(showMixed?: boolean): string;
-  toContinued(): bigint[];
-  clone(): Fraction;
-
-  static default: typeof Fraction;
-  static Fraction: typeof Fraction;
-}
-
-declare namespace Fraction {
-  interface NumeratorDenominator { n: number | bigint; d: number | bigint; }
-  type FractionInput =
-    | Fraction
-    | number
-    | bigint
-    | string
-    | [number | bigint | string, number | bigint | string]
-    | NumeratorDenominator;
-
-  type FractionParam = {
-    (numerator: number | bigint, denominator: number | bigint): Fraction;
-    (num: FractionInput): Fraction;
-  };
-}
-
-/**
- * Export matches CJS runtime:
- *   module.exports = Fraction;
- *   module.exports.default  = Fraction;
- *   module.exports.Fraction = Fraction;
- */
-declare const FractionExport: typeof Fraction & {
-  default: typeof Fraction;
-  Fraction: typeof Fraction;
-};
-
-export = FractionExport;
Index: de_modules/fraction.js/package.json
===================================================================
--- node_modules/fraction.js/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-{
-  "name": "fraction.js",
-  "title": "Fraction.js",
-  "version": "5.3.4",
-  "description": "The RAW rational numbers library",
-  "homepage": "https://raw.org/article/rational-numbers-in-javascript/",
-  "bugs": "https://github.com/rawify/Fraction.js/issues",
-  "keywords": [
-    "math",
-    "numbers",
-    "parser",
-    "ratio",
-    "fraction",
-    "fractions",
-    "rational",
-    "rationals",
-    "rational numbers",
-    "bigint",
-    "arbitrary precision",
-    "mixed numbers",
-    "decimal",
-    "numerator",
-    "denominator",
-    "simplification"
-  ],
-  "private": false,
-  "main": "./dist/fraction.js",
-  "module": "./dist/fraction.mjs",
-  "browser": "./dist/fraction.min.js",
-  "unpkg": "./dist/fraction.min.js",
-  "types": "./fraction.d.mts",
-  "exports": {
-    ".": {
-      "types": {
-        "import": "./fraction.d.mts",
-        "require": "./fraction.d.ts"
-      },
-      "import": "./dist/fraction.mjs",
-      "require": "./dist/fraction.js",
-      "browser": "./dist/fraction.min.js"
-    },
-    "./package.json": "./package.json"
-  },
-  "typesVersions": {
-    "<4.7": {
-      "*": [
-        "fraction.d.ts"
-      ]
-    }
-  },
-  "sideEffects": false,
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/rawify/Fraction.js.git"
-  },
-  "funding": {
-    "type": "github",
-    "url": "https://github.com/sponsors/rawify"
-  },
-  "author": {
-    "name": "Robert Eisele",
-    "email": "robert@raw.org",
-    "url": "https://raw.org/"
-  },
-  "license": "MIT",
-  "engines": {
-    "node": "*"
-  },
-  "directories": {
-    "example": "examples",
-    "test": "tests"
-  },
-  "scripts": {
-    "build": "crude-build Fraction",
-    "test": "mocha tests/*.js"
-  },
-  "devDependencies": {
-    "crude-build": "^0.1.2",
-    "mocha": "*"
-  }
-}
Index: de_modules/fraction.js/src/fraction.js
===================================================================
--- node_modules/fraction.js/src/fraction.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1046 +1,0 @@
-/**
- * @license Fraction.js v5.3.4 8/22/2025
- * https://raw.org/article/rational-numbers-in-javascript/
- *
- * Copyright (c) 2025, Robert Eisele (https://raw.org/)
- * Licensed under the MIT license.
- **/
-
-/**
- *
- * This class offers the possibility to calculate fractions.
- * You can pass a fraction in different formats. Either as array, as double, as string or as an integer.
- *
- * Array/Object form
- * [ 0 => <numerator>, 1 => <denominator> ]
- * { n => <numerator>, d => <denominator> }
- *
- * Integer form
- * - Single integer value as BigInt or Number
- *
- * Double form
- * - Single double value as Number
- *
- * String form
- * 123.456 - a simple double
- * 123/456 - a string fraction
- * 123.'456' - a double with repeating decimal places
- * 123.(456) - synonym
- * 123.45'6' - a double with repeating last place
- * 123.45(6) - synonym
- *
- * Example:
- * let f = new Fraction("9.4'31'");
- * f.mul([-4, 3]).div(4.9);
- *
- */
-
-// Set Identity function to downgrade BigInt to Number if needed
-if (typeof BigInt === 'undefined') BigInt = function (n) { if (isNaN(n)) throw new Error(""); return n; };
-
-const C_ZERO = BigInt(0);
-const C_ONE = BigInt(1);
-const C_TWO = BigInt(2);
-const C_THREE = BigInt(3);
-const C_FIVE = BigInt(5);
-const C_TEN = BigInt(10);
-const MAX_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
-
-// Maximum search depth for cyclic rational numbers. 2000 should be more than enough.
-// Example: 1/7 = 0.(142857) has 6 repeating decimal places.
-// If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits
-const MAX_CYCLE_LEN = 2000;
-
-// Parsed data to avoid calling "new" all the time
-const P = {
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE
-};
-
-function assign(n, s) {
-
-  try {
-    n = BigInt(n);
-  } catch (e) {
-    throw InvalidParameter();
-  }
-  return n * s;
-}
-
-function ifloor(x) {
-  return typeof x === 'bigint' ? x : Math.floor(x);
-}
-
-// Creates a new Fraction internally without the need of the bulky constructor
-function newFraction(n, d) {
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  const f = Object.create(Fraction.prototype);
-  f["s"] = n < C_ZERO ? -C_ONE : C_ONE;
-
-  n = n < C_ZERO ? -n : n;
-
-  const a = gcd(n, d);
-
-  f["n"] = n / a;
-  f["d"] = d / a;
-  return f;
-}
-
-const FACTORSTEPS = [C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO, C_TWO * C_TWO, C_TWO * C_THREE, C_TWO, C_TWO * C_THREE]; // repeats
-function factorize(n) {
-
-  const factors = Object.create(null);
-  if (n <= C_ONE) {
-    factors[n] = C_ONE;
-    return factors;
-  }
-
-  const add = (p) => { factors[p] = (factors[p] || C_ZERO) + C_ONE; };
-
-  while (n % C_TWO === C_ZERO) { add(C_TWO); n /= C_TWO; }
-  while (n % C_THREE === C_ZERO) { add(C_THREE); n /= C_THREE; }
-  while (n % C_FIVE === C_ZERO) { add(C_FIVE); n /= C_FIVE; }
-
-  // 30-wheel trial division: test only residues coprime to 2*3*5
-  // Residue step pattern after 5: 7,11,13,17,19,23,29,31, ...
-  for (let si = 0, p = C_TWO + C_FIVE; p * p <= n;) {
-    while (n % p === C_ZERO) { add(p); n /= p; }
-    p += FACTORSTEPS[si];
-    si = (si + 1) & 7; // fast modulo 8
-  }
-  if (n > C_ONE) add(n);
-  return factors;
-}
-
-const parse = function (p1, p2) {
-
-  let n = C_ZERO, d = C_ONE, s = C_ONE;
-
-  if (p1 === undefined || p1 === null) { // No argument
-    /* void */
-  } else if (p2 !== undefined) { // Two arguments
-
-    if (typeof p1 === "bigint") {
-      n = p1;
-    } else if (isNaN(p1)) {
-      throw InvalidParameter();
-    } else if (p1 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      n = BigInt(p1);
-    }
-
-    if (typeof p2 === "bigint") {
-      d = p2;
-    } else if (isNaN(p2)) {
-      throw InvalidParameter();
-    } else if (p2 % 1 !== 0) {
-      throw NonIntegerParameter();
-    } else {
-      d = BigInt(p2);
-    }
-
-    s = n * d;
-
-  } else if (typeof p1 === "object") {
-    if ("d" in p1 && "n" in p1) {
-      n = BigInt(p1["n"]);
-      d = BigInt(p1["d"]);
-      if ("s" in p1)
-        n *= BigInt(p1["s"]);
-    } else if (0 in p1) {
-      n = BigInt(p1[0]);
-      if (1 in p1)
-        d = BigInt(p1[1]);
-    } else if (typeof p1 === "bigint") {
-      n = p1;
-    } else {
-      throw InvalidParameter();
-    }
-    s = n * d;
-  } else if (typeof p1 === "number") {
-
-    if (isNaN(p1)) {
-      throw InvalidParameter();
-    }
-
-    if (p1 < 0) {
-      s = -C_ONE;
-      p1 = -p1;
-    }
-
-    if (p1 % 1 === 0) {
-      n = BigInt(p1);
-    } else {
-
-      let z = 1;
-
-      let A = 0, B = 1;
-      let C = 1, D = 1;
-
-      let N = 10000000;
-
-      if (p1 >= 1) {
-        z = 10 ** Math.floor(1 + Math.log10(p1));
-        p1 /= z;
-      }
-
-      // Using Farey Sequences
-
-      while (B <= N && D <= N) {
-        let M = (A + C) / (B + D);
-
-        if (p1 === M) {
-          if (B + D <= N) {
-            n = A + C;
-            d = B + D;
-          } else if (D > B) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-          break;
-
-        } else {
-
-          if (p1 > M) {
-            A += C;
-            B += D;
-          } else {
-            C += A;
-            D += B;
-          }
-
-          if (B > N) {
-            n = C;
-            d = D;
-          } else {
-            n = A;
-            d = B;
-          }
-        }
-      }
-      n = BigInt(n) * BigInt(z);
-      d = BigInt(d);
-    }
-
-  } else if (typeof p1 === "string") {
-
-    let ndx = 0;
-
-    let v = C_ZERO, w = C_ZERO, x = C_ZERO, y = C_ONE, z = C_ONE;
-
-    let match = p1.replace(/_/g, '').match(/\d+|./g);
-
-    if (match === null)
-      throw InvalidParameter();
-
-    if (match[ndx] === '-') {// Check for minus sign at the beginning
-      s = -C_ONE;
-      ndx++;
-    } else if (match[ndx] === '+') {// Check for plus sign at the beginning
-      ndx++;
-    }
-
-    if (match.length === ndx + 1) { // Check if it's just a simple number "1234"
-      w = assign(match[ndx++], s);
-    } else if (match[ndx + 1] === '.' || match[ndx] === '.') { // Check if it's a decimal number
-
-      if (match[ndx] !== '.') { // Handle 0.5 and .5
-        v = assign(match[ndx++], s);
-      }
-      ndx++;
-
-      // Check for decimal places
-      if (ndx + 1 === match.length || match[ndx + 1] === '(' && match[ndx + 3] === ')' || match[ndx + 1] === "'" && match[ndx + 3] === "'") {
-        w = assign(match[ndx], s);
-        y = C_TEN ** BigInt(match[ndx].length);
-        ndx++;
-      }
-
-      // Check for repeating places
-      if (match[ndx] === '(' && match[ndx + 2] === ')' || match[ndx] === "'" && match[ndx + 2] === "'") {
-        x = assign(match[ndx + 1], s);
-        z = C_TEN ** BigInt(match[ndx + 1].length) - C_ONE;
-        ndx += 3;
-      }
-
-    } else if (match[ndx + 1] === '/' || match[ndx + 1] === ':') { // Check for a simple fraction "123/456" or "123:456"
-      w = assign(match[ndx], s);
-      y = assign(match[ndx + 2], C_ONE);
-      ndx += 3;
-    } else if (match[ndx + 3] === '/' && match[ndx + 1] === ' ') { // Check for a complex fraction "123 1/2"
-      v = assign(match[ndx], s);
-      w = assign(match[ndx + 2], s);
-      y = assign(match[ndx + 4], C_ONE);
-      ndx += 5;
-    }
-
-    if (match.length <= ndx) { // Check for more tokens on the stack
-      d = y * z;
-      s = /* void */
-        n = x + d * v + z * w;
-    } else {
-      throw InvalidParameter();
-    }
-
-  } else if (typeof p1 === "bigint") {
-    n = p1;
-    s = p1;
-    d = C_ONE;
-  } else {
-    throw InvalidParameter();
-  }
-
-  if (d === C_ZERO) {
-    throw DivisionByZero();
-  }
-
-  P["s"] = s < C_ZERO ? -C_ONE : C_ONE;
-  P["n"] = n < C_ZERO ? -n : n;
-  P["d"] = d < C_ZERO ? -d : d;
-};
-
-function modpow(b, e, m) {
-
-  let r = C_ONE;
-  for (; e > C_ZERO; b = (b * b) % m, e >>= C_ONE) {
-
-    if (e & C_ONE) {
-      r = (r * b) % m;
-    }
-  }
-  return r;
-}
-
-function cycleLen(n, d) {
-
-  for (; d % C_TWO === C_ZERO;
-    d /= C_TWO) {
-  }
-
-  for (; d % C_FIVE === C_ZERO;
-    d /= C_FIVE) {
-  }
-
-  if (d === C_ONE) // Catch non-cyclic numbers
-    return C_ZERO;
-
-  // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem:
-  // 10^(d-1) % d == 1
-  // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone,
-  // as we want to translate the numbers to strings.
-
-  let rem = C_TEN % d;
-  let t = 1;
-
-  for (; rem !== C_ONE; t++) {
-    rem = rem * C_TEN % d;
-
-    if (t > MAX_CYCLE_LEN)
-      return C_ZERO; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1`
-  }
-  return BigInt(t);
-}
-
-function cycleStart(n, d, len) {
-
-  let rem1 = C_ONE;
-  let rem2 = modpow(C_TEN, len, d);
-
-  for (let t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE)
-    // Solve 10^s == 10^(s+t) (mod d)
-
-    if (rem1 === rem2)
-      return BigInt(t);
-
-    rem1 = rem1 * C_TEN % d;
-    rem2 = rem2 * C_TEN % d;
-  }
-  return 0;
-}
-
-function gcd(a, b) {
-
-  if (!a)
-    return b;
-  if (!b)
-    return a;
-
-  while (1) {
-    a %= b;
-    if (!a)
-      return b;
-    b %= a;
-    if (!b)
-      return a;
-  }
-}
-
-/**
- * Module constructor
- *
- * @constructor
- * @param {number|Fraction=} a
- * @param {number=} b
- */
-function Fraction(a, b) {
-
-  parse(a, b);
-
-  if (this instanceof Fraction) {
-    a = gcd(P["d"], P["n"]); // Abuse a
-    this["s"] = P["s"];
-    this["n"] = P["n"] / a;
-    this["d"] = P["d"] / a;
-  } else {
-    return newFraction(P['s'] * P['n'], P['d']);
-  }
-}
-
-const DivisionByZero = function () { return new Error("Division by Zero"); };
-const InvalidParameter = function () { return new Error("Invalid argument"); };
-const NonIntegerParameter = function () { return new Error("Parameters must be integer"); };
-
-Fraction.prototype = {
-
-  "s": C_ONE,
-  "n": C_ZERO,
-  "d": C_ONE,
-
-  /**
-   * Calculates the absolute value
-   *
-   * Ex: new Fraction(-4).abs() => 4
-   **/
-  "abs": function () {
-
-    return newFraction(this["n"], this["d"]);
-  },
-
-  /**
-   * Inverts the sign of the current fraction
-   *
-   * Ex: new Fraction(-4).neg() => 4
-   **/
-  "neg": function () {
-
-    return newFraction(-this["s"] * this["n"], this["d"]);
-  },
-
-  /**
-   * Adds two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30
-   **/
-  "add": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Subtracts two rational numbers
-   *
-   * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30
-   **/
-  "sub": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Multiplies two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111
-   **/
-  "mul": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["n"],
-      this["d"] * P["d"]
-    );
-  },
-
-  /**
-   * Divides two rational numbers
-   *
-   * Ex: new Fraction("-17.(345)").inverse().div(3)
-   **/
-  "div": function (a, b) {
-
-    parse(a, b);
-    return newFraction(
-      this["s"] * P["s"] * this["n"] * P["d"],
-      this["d"] * P["n"]
-    );
-  },
-
-  /**
-   * Clones the actual object
-   *
-   * Ex: new Fraction("-17.(345)").clone()
-   **/
-  "clone": function () {
-    return newFraction(this['s'] * this['n'], this['d']);
-  },
-
-  /**
-   * Calculates the modulo of two rational numbers - a more precise fmod
-   *
-   * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)
-   * Ex: new Fraction(20, 10).mod().equals(0) ? "is Integer"
-   **/
-  "mod": function (a, b) {
-
-    if (a === undefined) {
-      return newFraction(this["s"] * this["n"] % this["d"], C_ONE);
-    }
-
-    parse(a, b);
-    if (C_ZERO === P["n"] * this["d"]) {
-      throw DivisionByZero();
-    }
-
-    /**
-     * I derived the rational modulo similar to the modulo for integers
-     *
-     * https://raw.org/book/analysis/rational-numbers/
-     *
-     *    n1/d1 = (n2/d2) * q + r, where 0 ≤ r < n2/d2
-     * => d2 * n1 = n2 * d1 * q + d1 * d2 * r
-     * => r = (d2 * n1 - n2 * d1 * q) / (d1 * d2)
-     *      = (d2 * n1 - n2 * d1 * floor((d2 * n1) / (n2 * d1))) / (d1 * d2)
-     *      = ((d2 * n1) % (n2 * d1)) / (d1 * d2)
-     */
-    return newFraction(
-      this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]),
-      P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional gcd of two rational numbers
-   *
-   * Ex: new Fraction(5,8).gcd(3,7) => 1/56
-   */
-  "gcd": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d)
-
-    return newFraction(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]);
-  },
-
-  /**
-   * Calculates the fractional lcm of two rational numbers
-   *
-   * Ex: new Fraction(5,8).lcm(3,7) => 15
-   */
-  "lcm": function (a, b) {
-
-    parse(a, b);
-
-    // https://raw.org/book/analysis/rational-numbers/
-    // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d)
-
-    if (P["n"] === C_ZERO && this["n"] === C_ZERO) {
-      return newFraction(C_ZERO, C_ONE);
-    }
-    return newFraction(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]));
-  },
-
-  /**
-   * Gets the inverse of the fraction, means numerator and denominator are exchanged
-   *
-   * Ex: new Fraction([-3, 4]).inverse() => -4 / 3
-   **/
-  "inverse": function () {
-    return newFraction(this["s"] * this["d"], this["n"]);
-  },
-
-  /**
-   * Calculates the fraction to some integer exponent
-   *
-   * Ex: new Fraction(-1,2).pow(-3) => -8
-   */
-  "pow": function (a, b) {
-
-    parse(a, b);
-
-    // Trivial case when exp is an integer
-
-    if (P['d'] === C_ONE) {
-
-      if (P['s'] < C_ZERO) {
-        return newFraction((this['s'] * this["d"]) ** P['n'], this["n"] ** P['n']);
-      } else {
-        return newFraction((this['s'] * this["n"]) ** P['n'], this["d"] ** P['n']);
-      }
-    }
-
-    // Negative roots become complex
-    //     (-a/b)^(c/d) = x
-    // ⇔ (-1)^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(pi) + i*sin(pi))^(c/d) * (a/b)^(c/d) = x
-    // ⇔ (cos(c*pi/d) + i*sin(c*pi/d)) * (a/b)^(c/d) = x       # DeMoivre's formula
-    // From which follows that only for c=0 the root is non-complex
-    if (this['s'] < C_ZERO) return null;
-
-    // Now prime factor n and d
-    let N = factorize(this['n']);
-    let D = factorize(this['d']);
-
-    // Exponentiate and take root for n and d individually
-    let n = C_ONE;
-    let d = C_ONE;
-    for (let k in N) {
-      if (k === '1') continue;
-      if (k === '0') {
-        n = C_ZERO;
-        break;
-      }
-      N[k] *= P['n'];
-
-      if (N[k] % P['d'] === C_ZERO) {
-        N[k] /= P['d'];
-      } else return null;
-      n *= BigInt(k) ** N[k];
-    }
-
-    for (let k in D) {
-      if (k === '1') continue;
-      D[k] *= P['n'];
-
-      if (D[k] % P['d'] === C_ZERO) {
-        D[k] /= P['d'];
-      } else return null;
-      d *= BigInt(k) ** D[k];
-    }
-
-    if (P['s'] < C_ZERO) {
-      return newFraction(d, n);
-    }
-    return newFraction(n, d);
-  },
-
-  /**
-   * Calculates the logarithm of a fraction to a given rational base
-   *
-   * Ex: new Fraction(27, 8).log(9, 4) => 3/2
-   */
-  "log": function (a, b) {
-
-    parse(a, b);
-
-    if (this['s'] <= C_ZERO || P['s'] <= C_ZERO) return null;
-
-    const allPrimes = Object.create(null);
-
-    const baseFactors = factorize(P['n']);
-    const T1 = factorize(P['d']);
-
-    const numberFactors = factorize(this['n']);
-    const T2 = factorize(this['d']);
-
-    for (const prime in T1) {
-      baseFactors[prime] = (baseFactors[prime] || C_ZERO) - T1[prime];
-    }
-    for (const prime in T2) {
-      numberFactors[prime] = (numberFactors[prime] || C_ZERO) - T2[prime];
-    }
-
-    for (const prime in baseFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-    for (const prime in numberFactors) {
-      if (prime === '1') continue;
-      allPrimes[prime] = true;
-    }
-
-    let retN = null;
-    let retD = null;
-
-    // Iterate over all unique primes to determine if a consistent ratio exists
-    for (const prime in allPrimes) {
-
-      const baseExponent = baseFactors[prime] || C_ZERO;
-      const numberExponent = numberFactors[prime] || C_ZERO;
-
-      if (baseExponent === C_ZERO) {
-        if (numberExponent !== C_ZERO) {
-          return null; // Logarithm cannot be expressed as a rational number
-        }
-        continue; // Skip this prime since both exponents are zero
-      }
-
-      // Calculate the ratio of exponents for this prime
-      let curN = numberExponent;
-      let curD = baseExponent;
-
-      // Simplify the current ratio
-      const gcdValue = gcd(curN, curD);
-      curN /= gcdValue;
-      curD /= gcdValue;
-
-      // Check if this is the first ratio; otherwise, ensure ratios are consistent
-      if (retN === null && retD === null) {
-        retN = curN;
-        retD = curD;
-      } else if (curN * retD !== retN * curD) {
-        return null; // Ratios do not match, logarithm cannot be rational
-      }
-    }
-
-    return retN !== null && retD !== null
-      ? newFraction(retN, retD)
-      : null;
-  },
-
-  /**
-   * Check if two rational numbers are the same
-   *
-   * Ex: new Fraction(19.6).equals([98, 5]);
-   **/
-  "equals": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] < P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is less than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "lte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] <= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gt": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] > P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Check if this rational number is greater than or equal another
-   *
-   * Ex: new Fraction(19.6).lt([98, 5]);
-   **/
-  "gte": function (a, b) {
-
-    parse(a, b);
-    return this["s"] * this["n"] * P["d"] >= P["s"] * P["n"] * this["d"];
-  },
-
-  /**
-   * Compare two rational numbers
-   * < 0 iff this < that
-   * > 0 iff this > that
-   * = 0 iff this = that
-   *
-   * Ex: new Fraction(19.6).compare([98, 5]);
-   **/
-  "compare": function (a, b) {
-
-    parse(a, b);
-    let t = this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"];
-
-    return (C_ZERO < t) - (t < C_ZERO);
-  },
-
-  /**
-   * Calculates the ceil of a rational number
-   *
-   * Ex: new Fraction('4.(3)').ceil() => (5 / 1)
-   **/
-  "ceil": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] >= C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Calculates the floor of a rational number
-   *
-   * Ex: new Fraction('4.(3)').floor() => (4 / 1)
-   **/
-  "floor": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) -
-      (places * this["n"] % this["d"] > C_ZERO && this["s"] < C_ZERO ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-   * Rounds a rational numbers
-   *
-   * Ex: new Fraction('4.(3)').round() => (4 / 1)
-   **/
-  "round": function (places) {
-
-    places = C_TEN ** BigInt(places || 0);
-
-    /* Derivation:
-
-    s >= 0:
-      round(n / d) = ifloor(n / d) + (n % d) / d >= 0.5 ? 1 : 0
-                   = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    s < 0:
-      round(n / d) =-ifloor(n / d) - (n % d) / d > 0.5 ? 1 : 0
-                   =-ifloor(n / d) - 2(n % d) > d ? 1 : 0
-
-    =>:
-
-    round(s * n / d) = s * ifloor(n / d) + s * (C + 2(n % d) > d ? 1 : 0)
-        where C = s >= 0 ? 1 : 0, to fix the >= for the positve case.
-    */
-
-    return newFraction(ifloor(this["s"] * places * this["n"] / this["d"]) +
-      this["s"] * ((this["s"] >= C_ZERO ? C_ONE : C_ZERO) + C_TWO * (places * this["n"] % this["d"]) > this["d"] ? C_ONE : C_ZERO),
-      places);
-  },
-
-  /**
-    * Rounds a rational number to a multiple of another rational number
-    *
-    * Ex: new Fraction('0.9').roundTo("1/8") => 7 / 8
-    **/
-  "roundTo": function (a, b) {
-
-    /*
-    k * x/y ≤ a/b < (k+1) * x/y
-    ⇔ k ≤ a/b / (x/y) < (k+1)
-    ⇔ k = floor(a/b * y/x)
-    ⇔ k = floor((a * y) / (b * x))
-    */
-
-    parse(a, b);
-
-    const n = this['n'] * P['d'];
-    const d = this['d'] * P['n'];
-    const r = n % d;
-
-    // round(n / d) = ifloor(n / d) + 2(n % d) >= d ? 1 : 0
-    let k = ifloor(n / d);
-    if (r + r >= d) {
-      k++;
-    }
-    return newFraction(this['s'] * k * P['n'], P['d']);
-  },
-
-  /**
-   * Check if two rational numbers are divisible
-   *
-   * Ex: new Fraction(19.6).divisible(1.5);
-   */
-  "divisible": function (a, b) {
-
-    parse(a, b);
-    if (P['n'] === C_ZERO) return false;
-    return (this['n'] * P['d']) % (P['n'] * this['d']) === C_ZERO;
-  },
-
-  /**
-   * Returns a decimal representation of the fraction
-   *
-   * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183
-   **/
-  'valueOf': function () {
-    //if (this['n'] <= MAX_INTEGER && this['d'] <= MAX_INTEGER) {
-    return Number(this['s'] * this['n']) / Number(this['d']);
-    //}
-  },
-
-  /**
-   * Creates a string representation of a fraction with all digits
-   *
-   * Ex: new Fraction("100.'91823'").toString() => "100.(91823)"
-   **/
-  'toString': function (dec = 15) {
-
-    let N = this["n"];
-    let D = this["d"];
-
-    let cycLen = cycleLen(N, D); // Cycle length
-    let cycOff = cycleStart(N, D, cycLen); // Cycle start
-
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    // Append integer part
-    str += ifloor(N / D);
-
-    N %= D;
-    N *= C_TEN;
-
-    if (N)
-      str += ".";
-
-    if (cycLen) {
-
-      for (let i = cycOff; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += "(";
-      for (let i = cycLen; i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-      str += ")";
-    } else {
-      for (let i = dec; N && i--;) {
-        str += ifloor(N / D);
-        N %= D;
-        N *= C_TEN;
-      }
-    }
-    return str;
-  },
-
-  /**
-   * Returns a string-fraction representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toFraction() => "4 1/3"
-   **/
-  'toFraction': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        str += " ";
-        n %= d;
-      }
-
-      str += n;
-      str += '/';
-      str += d;
-    }
-    return str;
-  },
-
-  /**
-   * Returns a latex representation of a Fraction object
-   *
-   * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}"
-   **/
-  'toLatex': function (showMixed = false) {
-
-    let n = this["n"];
-    let d = this["d"];
-    let str = this['s'] < C_ZERO ? "-" : "";
-
-    if (d === C_ONE) {
-      str += n;
-    } else {
-      const whole = ifloor(n / d);
-      if (showMixed && whole > C_ZERO) {
-        str += whole;
-        n %= d;
-      }
-
-      str += "\\frac{";
-      str += n;
-      str += '}{';
-      str += d;
-      str += '}';
-    }
-    return str;
-  },
-
-  /**
-   * Returns an array of continued fraction elements
-   *
-   * Ex: new Fraction("7/8").toContinued() => [0,1,7]
-   */
-  'toContinued': function () {
-
-    let a = this['n'];
-    let b = this['d'];
-    const res = [];
-
-    while (b) {
-      res.push(ifloor(a / b));
-      const t = a % b;
-      a = b;
-      b = t;
-    }
-    return res;
-  },
-
-  "simplify": function (eps = 1e-3) {
-
-    // Continued fractions give best approximations for a max denominator,
-    // generally outperforming mediants in denominator–accuracy trade-offs.
-    // Semiconvergents can further reduce the denominator within tolerance.
-
-    const ieps = BigInt(Math.ceil(1 / eps));
-
-    const thisABS = this['abs']();
-    const cont = thisABS['toContinued']();
-
-    for (let i = 1; i < cont.length; i++) {
-
-      let s = newFraction(cont[i - 1], C_ONE);
-      for (let k = i - 2; k >= 0; k--) {
-        s = s['inverse']()['add'](cont[k]);
-      }
-
-      let t = s['sub'](thisABS);
-      if (t['n'] * ieps < t['d']) { // More robust than Math.abs(t.valueOf()) < eps
-        return s['mul'](this['s']);
-      }
-    }
-    return this;
-  }
-};
Index: de_modules/fraction.js/tests/fraction.test.js
===================================================================
--- node_modules/fraction.js/tests/fraction.test.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1806 +1,0 @@
-const Fraction = require('fraction.js');
-const assert = require('assert');
-
-var DivisionByZero = function () { return new Error("Division by Zero"); };
-var InvalidParameter = function () { return new Error("Invalid argument"); };
-var NonIntegerParameter = function () { return new Error("Parameters must be integer"); };
-
-var tests = [{
-  set: "",
-  expectError: InvalidParameter()
-}, {
-  set: "foo",
-  expectError: InvalidParameter()
-}, {
-  set: " 123",
-  expectError: InvalidParameter()
-}, {
-  set: 0,
-  expect: 0
-}, {
-  set: .2,
-  expect: "0.2"
-}, {
-  set: .333,
-  expect: "0.333"
-}, {
-  set: 1.1,
-  expect: "1.1"
-}, {
-  set: 1.2,
-  expect: "1.2"
-}, {
-  set: 1.3,
-  expect: "1.3"
-}, {
-  set: 1.4,
-  expect: "1.4"
-}, {
-  set: 1.5,
-  expect: "1.5"
-}, {
-  set: 2.555,
-  expect: "2.555"
-}, {
-  set: 1e12,
-  expect: "1000000000000"
-}, {
-  set: " - ",
-  expectError: InvalidParameter()
-}, {
-  set: ".5",
-  expect: "0.5"
-}, {
-  set: "2_000_000",
-  expect: "2000000"
-}, {
-  set: "-.5",
-  expect: "-0.5"
-}, {
-  set: "123",
-  expect: "123"
-}, {
-  set: "-123",
-  expect: "-123"
-}, {
-  set: "123.4",
-  expect: "123.4"
-}, {
-  set: "-123.4",
-  expect: "-123.4"
-}, {
-  set: "123.",
-  expect: "123"
-}, {
-  set: "-123.",
-  expect: "-123"
-}, {
-  set: "123.4(56)",
-  expect: "123.4(56)"
-}, {
-  set: "-123.4(56)",
-  expect: "-123.4(56)"
-}, {
-  set: "123.(4)",
-  expect: "123.(4)"
-}, {
-  set: "-123.(4)",
-  expect: "-123.(4)"
-}, {
-  set: "0/0",
-  expectError: DivisionByZero()
-}, {
-  set: "9/0",
-  expectError: DivisionByZero()
-}, {
-  label: "0/1+0/1",
-  set: "0/1",
-  param: "0/1",
-  expect: "0"
-}, {
-  label: "1/9+0/1",
-  set: "1/9",
-  param: "0/1",
-  expect: "0.(1)"
-}, {
-  set: "123/456",
-  expect: "0.269(736842105263157894)"
-}, {
-  set: "-123/456",
-  expect: "-0.269(736842105263157894)"
-}, {
-  set: "19 123/456",
-  expect: "19.269(736842105263157894)"
-}, {
-  set: "-19 123/456",
-  expect: "-19.269(736842105263157894)"
-}, {
-  set: "123.(22)123",
-  expectError: InvalidParameter()
-}, {
-  set: "+33.3(3)",
-  expect: "33.(3)"
-}, {
-  set: "3.'09009'",
-  expect: "3.(09009)"
-}, {
-  set: "123.(((",
-  expectError: InvalidParameter()
-}, {
-  set: "123.((",
-  expectError: InvalidParameter()
-}, {
-  set: "123.()",
-  expectError: InvalidParameter()
-}, {
-  set: null,
-  expect: "0" // I would say it's just fine
-}, {
-  set: [22, 7],
-  expect: '3.(142857)' // We got Pi! - almost ;o
-}, {
-  set: "355/113",
-  expect: "3.(1415929203539823008849557522123893805309734513274336283185840707964601769911504424778761061946902654867256637168)" // Yay, a better PI
-}, {
-  set: "3 1/7",
-  expect: '3.(142857)'
-}, {
-  set: [36, -36],
-  expect: "-1"
-}, {
-  set: [1n, 3n],
-  expect: "0.(3)"
-}, {
-  set: 1n,
-  set2: 3n,
-  expect: "0.(3)"
-}, {
-  set: { n: 1n, d: 3n },
-  expect: "0.(3)"
-}, {
-  set: { n: 1n, d: 3n },
-  expect: "0.(3)"
-}, {
-  set: [1n, 3n],
-  expect: "0.(3)"
-}, {
-  set: "9/12",
-  expect: "0.75"
-}, {
-  set: "0.09(33)",
-  expect: "0.09(3)"
-}, {
-  set: 1 / 2,
-  expect: "0.5"
-}, {
-  set: 1 / 3,
-  expect: "0.(3)"
-}, {
-  set: "0.'3'",
-  expect: "0.(3)"
-}, {
-  set: "0.00002",
-  expect: "0.00002"
-}, {
-  set: 7 / 8,
-  expect: "0.875"
-}, {
-  set: 0.003,
-  expect: "0.003"
-}, {
-  set: 4,
-  expect: "4"
-}, {
-  set: -99,
-  expect: "-99"
-}, {
-  set: "-92332.1192",
-  expect: "-92332.1192"
-}, {
-  set: '88.92933(12111)',
-  expect: "88.92933(12111)"
-}, {
-  set: '-192322.823(123)',
-  expect: "-192322.8(231)"
-}, {
-  label: "-99.12 % 0.09(34)",
-  set: '-99.12',
-  fn: "mod",
-  param: "0.09(34)",
-  expect: "-0.07(95)"
-}, {
-  label: "0.4 / 0.1",
-  set: .4,
-  fn: "div",
-  param: ".1",
-  expect: "4"
-}, {
-  label: "1 / -.1",
-  set: 1,
-  fn: "div",
-  param: "-.1",
-  expect: "-10"
-}, {
-  label: "1 - (-1)",
-  set: 1,
-  fn: "sub",
-  param: "-1",
-  expect: "2"
-}, {
-  label: "1 + (-1)",
-  set: 1,
-  fn: "add",
-  param: "-1",
-  expect: "0"
-}, {
-  label: "-187 % 12",
-  set: '-187',
-  fn: "mod",
-  param: "12",
-  expect: "-7"
-}, {
-  label: "Negate by 99 * -1",
-  set: '99',
-  fn: "mul",
-  param: "-1",
-  expect: "-99"
-}, {
-  label: "0.5050000000000000000000000",
-  set: "0.5050000000000000000000000",
-  expect: "101/200",
-  fn: "toFraction",
-  param: true
-}, {
-  label: "0.505000000(0000000000)",
-  set: "0.505000000(0000000000)",
-  expect: "101/200",
-  fn: "toFraction",
-  param: true
-}, {
-  set: [20, -5],
-  expect: "-4",
-  fn: "toFraction",
-  param: true
-}, {
-  set: [-10, -7],
-  expect: "1 3/7",
-  fn: "toFraction",
-  param: true
-}, {
-  set: [21, -6],
-  expect: "-3 1/2",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "10/78",
-  expect: "5/39",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "0/91",
-  expect: "0",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "-0/287",
-  expect: "0",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "-5/20",
-  expect: "-1/4",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "42/9",
-  expect: "4 2/3",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "71/23",
-  expect: "3 2/23",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "6/3",
-  expect: "2",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "28/4",
-  expect: "7",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "105/35",
-  expect: "3",
-  fn: "toFraction",
-  param: true
-}, {
-  set: "4/6",
-  expect: "2/3",
-  fn: "toFraction",
-  param: true
-}, {
-  label: "99.(9) + 66",
-  set: '99.(999999)',
-  fn: "add",
-  param: "66",
-  expect: "166"
-}, {
-  label: "123.32 / 33.'9821'",
-  set: '123.32',
-  fn: "div",
-  param: "33.'9821'",
-  expect: "3.628958880242975"
-}, {
-  label: "-82.124 / 66.(3)",
-  set: '-82.124',
-  fn: "div",
-  param: "66.(3)",
-  expect: "-1.238(050251256281407035175879396984924623115577889447236180904522613065326633165829145728643216080402010)"
-}, {
-  label: "100 - .91",
-  set: '100',
-  fn: "sub",
-  param: ".91",
-  expect: "99.09"
-}, {
-  label: "381.(33411) % 11.119(356)",
-  set: '381.(33411)',
-  fn: "mod",
-  param: "11.119(356)",
-  expect: "3.275(997225017295217)"
-}, {
-  label: "13/26 mod 1",
-  set: '13/26',
-  fn: "mod",
-  param: "1.000",
-  expect: "0.5"
-}, {
-  label: "381.(33411) % 1", // Extract fraction part of a number
-  set: '381.(33411)',
-  fn: "mod",
-  param: "1",
-  expect: "0.(33411)"
-}, {
-  label: "-222/3",
-  set: {
-    n: 3,
-    d: 222,
-    s: -1
-  },
-  fn: "inverse",
-  param: null,
-  expect: "-74"
-}, {
-  label: "inverse",
-  set: 1 / 2,
-  fn: "inverse",
-  param: null,
-  expect: "2"
-}, {
-  label: "abs(-222/3)",
-  set: {
-    n: -222,
-    d: 3
-  },
-  fn: "abs",
-  param: null,
-  expect: "74"
-}, {
-  label: "9 % -2",
-  set: 9,
-  fn: "mod",
-  param: "-2",
-  expect: "1"
-}, {
-  label: "-9 % 2",
-  set: '-9',
-  fn: "mod",
-  param: "-2",
-  expect: "-1"
-}, {
-  label: "1 / 195312500",
-  set: '1',
-  fn: "div",
-  param: "195312500",
-  expect: "0.00000000512"
-}, {
-  label: "10 / 0",
-  set: 10,
-  fn: "div",
-  param: 0,
-  expectError: DivisionByZero()
-}, {
-  label: "-3 / 4",
-  set: [-3, 4],
-  fn: "inverse",
-  param: null,
-  expect: "-1.(3)"
-}, {
-  label: "-19.6",
-  set: [-98, 5],
-  fn: "equals",
-  param: '-19.6',
-  expect: "true" // actually, we get a real bool but we call toString() in the test below
-}, {
-  label: "-19.6",
-  set: [98, -5],
-  fn: "equals",
-  param: '-19.6',
-  expect: "true"
-}, {
-  label: "99/88",
-  set: [99, 88],
-  fn: "equals",
-  param: [88, 99],
-  expect: "false"
-}, {
-  label: "99/88",
-  set: [99, -88],
-  fn: "equals",
-  param: [9, 8],
-  expect: "false"
-}, {
-  label: "12.5",
-  set: 12.5,
-  fn: "add",
-  param: 0,
-  expect: "12.5"
-}, {
-  label: "0/1 -> 1/0",
-  set: 0,
-  fn: "inverse",
-  param: null,
-  expectError: DivisionByZero()
-}, {
-  label: "abs(-100.25)",
-  set: -100.25,
-  fn: "abs",
-  param: null,
-  expect: "100.25"
-}, {
-  label: "0.022222222",
-  set: '0.0(22222222)',
-  fn: "abs",
-  param: null,
-  expect: "0.0(2)"
-}, {
-  label: "1.5 | 100.5",
-  set: 100.5,
-  fn: "divisible",
-  param: '1.5',
-  expect: "true"
-}, {
-  label: "1.5 | 100.6",
-  set: 100.6,
-  fn: "divisible",
-  param: 1.6,
-  expect: "false"
-}, {
-  label: "(1/6) | (2/3)", // == 4
-  set: [2, 3],
-  fn: "divisible",
-  param: [1, 6],
-  expect: "true"
-}, {
-  label: "(1/6) | (2/5)",
-  set: [2, 5],
-  fn: "divisible",
-  param: [1, 6],
-  expect: "false"
-}, {
-  label: "0 | (2/5)",
-  set: [2, 5],
-  fn: "divisible",
-  param: 0,
-  expect: "false"
-}, {
-  label: "6 | 0",
-  set: 0,
-  fn: "divisible",
-  param: 6,
-  expect: "true"
-}, {
-  label: "fmod(4.55, 0.05)", // http://phpjs.org/functions/fmod/ (comment section)
-  set: 4.55,
-  fn: "mod",
-  param: 0.05,
-  expect: "0"
-}, {
-  label: "fmod(99.12, 0.4)",
-  set: 99.12,
-  fn: "mod",
-  param: "0.4",
-  expect: "0.32"
-}, {
-  label: "fmod(fmod(1.0,0.1))", // http://stackoverflow.com/questions/4218961/why-fmod1-0-0-1-1
-  set: 1.0,
-  fn: "mod",
-  param: 0.1,
-  expect: "0"
-}, {
-  label: "bignum",
-  set: [5385020324, 1673196525],
-  fn: "add",
-  param: 0,
-  expect: "3.21(840276592733181776121606516006839065124164060763872313206005492988936251824931324190982287630557922656455433410609073551596098372245902196097377144624418820138297860736950789447760776337973807350574075570710380240599651018280712721418065340531352107607323652551812465663589637206543923464101146157950573080469432602963360804254598843372567965379918536467197121390148715495330113717514444395585868193217769203770011415724163065662594535928766646225254382476081224230369471990147720394052336440275597631903998844367669243157195775313960803259497565595290726533154854597848271290188102679689703515252041298615534717298077104242133182771222884293284077911887845930112722413166618308629346454087334421161315763550250022184333666363549254920906556389124702491239037207539024741878423396797336762338781453063321417070239253574830368476888869943116813489676593728283053898883754853602746993512910863832926021645903191198654921901657666901979730085800889408373591978384009612977172541043856160291750546158945674358246709841810124486123947693472528578195558946669459524487119048971249805817042322628538808374587079661786890216019304725725509141850506771761314768448972244907094819599867385572056456428511886850828834945135927771544947477105237234460548500123140047759781236696030073335228807028510891749551057667897081007863078128255137273847732859712937785356684266362554153643129279150277938809369688357439064129062782986595074359241811119587401724970711375341877428295519559485099934689381452068220139292962014728066686607540019843156200674036183526020650801913421377683054893985032630879985)"
-}, {
-  label: "ceil(0.4)",
-  set: 0.4,
-  fn: "ceil",
-  param: null,
-  expect: "1"
-},
-
-
-{
-  label: "1 < 2",
-  set: 1,
-  fn: "lt",
-  param: 2,
-  expect: "true"
-}, {
-  label: "2 < 2",
-  set: 2,
-  fn: "lt",
-  param: 2,
-  expect: "false"
-}, {
-  label: "3 > 2",
-  set: 3,
-  fn: "gt",
-  param: 2,
-  expect: "true"
-}, {
-  label: "2 > 2",
-  set: 2,
-  fn: "gt",
-  param: 2,
-  expect: "false"
-}, {
-  label: "1 <= 2",
-  set: 1,
-  fn: "lte",
-  param: 2,
-  expect: "true"
-}, {
-  label: "2 <= 2",
-  set: 2,
-  fn: "lte",
-  param: 2,
-  expect: "true"
-}, {
-  label: "3 <= 2",
-  set: 3,
-  fn: "lte",
-  param: 2,
-  expect: "false"
-}, {
-  label: "3 >= 2",
-  set: 3,
-  fn: "gte",
-  param: 2,
-  expect: "true"
-}, {
-  label: "2 >= 2",
-  set: 2,
-  fn: "gte",
-  param: 2,
-  expect: "true"
-}, {
-  label: "ceil(0.5)",
-  set: 0.5,
-  fn: "ceil",
-  param: null,
-  expect: "1"
-}, {
-  label: "ceil(0.23, 2)",
-  set: 0.23,
-  fn: "ceil",
-  param: 2,
-  expect: "0.23"
-}, {
-  label: "ceil(0.6)",
-  set: 0.6,
-  fn: "ceil",
-  param: null,
-  expect: "1"
-}, {
-  label: "ceil(-0.4)",
-  set: -0.4,
-  fn: "ceil",
-  param: null,
-  expect: "0"
-}, {
-  label: "ceil(-0.5)",
-  set: -0.5,
-  fn: "ceil",
-  param: null,
-  expect: "0"
-}, {
-  label: "ceil(-0.6)",
-  set: -0.6,
-  fn: "ceil",
-  param: null,
-  expect: "0"
-}, {
-  label: "floor(0.4)",
-  set: 0.4,
-  fn: "floor",
-  param: null,
-  expect: "0"
-}, {
-  label: "floor(0.4, 1)",
-  set: 0.4,
-  fn: "floor",
-  param: 1,
-  expect: "0.4"
-}, {
-  label: "floor(0.5)",
-  set: 0.5,
-  fn: "floor",
-  param: null,
-  expect: "0"
-}, {
-  label: "floor(0.6)",
-  set: 0.6,
-  fn: "floor",
-  param: null,
-  expect: "0"
-}, {
-  label: "floor(-0.4)",
-  set: -0.4,
-  fn: "floor",
-  param: null,
-  expect: "-1"
-}, {
-  label: "floor(-0.5)",
-  set: -0.5,
-  fn: "floor",
-  param: null,
-  expect: "-1"
-}, {
-  label: "floor(-0.6)",
-  set: -0.6,
-  fn: "floor",
-  param: null,
-  expect: "-1"
-}, {
-  label: "floor(10.4)",
-  set: 10.4,
-  fn: "floor",
-  param: null,
-  expect: "10"
-}, {
-  label: "floor(10.4, 1)",
-  set: 10.4,
-  fn: "floor",
-  param: 1,
-  expect: "10.4"
-}, {
-  label: "floor(10.5)",
-  set: 10.5,
-  fn: "floor",
-  param: null,
-  expect: "10"
-}, {
-  label: "floor(10.6)",
-  set: 10.6,
-  fn: "floor",
-  param: null,
-  expect: "10"
-}, {
-  label: "floor(-10.4)",
-  set: -10.4,
-  fn: "floor",
-  param: null,
-  expect: "-11"
-}, {
-  label: "floor(-10.5)",
-  set: -10.5,
-  fn: "floor",
-  param: null,
-  expect: "-11"
-}, {
-  label: "floor(-10.6)",
-  set: -10.6,
-  fn: "floor",
-  param: null,
-  expect: "-11"
-}, {
-  label: "floor(-10.543,3)",
-  set: -10.543,
-  fn: "floor",
-  param: 3,
-  expect: "-10.543"
-}, {
-  label: "floor(10.543,3)",
-  set: 10.543,
-  fn: "floor",
-  param: 3,
-  expect: "10.543"
-}, {
-  label: "round(-10.543,3)",
-  set: -10.543,
-  fn: "round",
-  param: 3,
-  expect: "-10.543"
-}, {
-  label: "round(10.543,3)",
-  set: 10.543,
-  fn: "round",
-  param: 3,
-  expect: "10.543"
-}, {
-  label: "round(10.4)",
-  set: 10.4,
-  fn: "round",
-  param: null,
-  expect: "10"
-}, {
-  label: "round(10.5)",
-  set: 10.5,
-  fn: "round",
-  param: null,
-  expect: "11"
-}, {
-  label: "round(10.5, 1)",
-  set: 10.5,
-  fn: "round",
-  param: 1,
-  expect: "10.5"
-}, {
-  label: "round(10.6)",
-  set: 10.6,
-  fn: "round",
-  param: null,
-  expect: "11"
-}, {
-  label: "round(-10.4)",
-  set: -10.4,
-  fn: "round",
-  param: null,
-  expect: "-10"
-}, {
-  label: "round(-10.5)",
-  set: -10.5,
-  fn: "round",
-  param: null,
-  expect: "-10"
-}, {
-  label: "round(-10.6)",
-  set: -10.6,
-  fn: "round",
-  param: null,
-  expect: "-11"
-}, {
-  label: "round(-0.4)",
-  set: -0.4,
-  fn: "round",
-  param: null,
-  expect: "0"
-}, {
-  label: "round(-0.5)",
-  set: -0.5,
-  fn: "round",
-  param: null,
-  expect: "0"
-}, {
-  label: "round(-0.6)",
-  set: -0.6,
-  fn: "round",
-  param: null,
-  expect: "-1"
-}, {
-  label: "round(-0)",
-  set: -0,
-  fn: "round",
-  param: null,
-  expect: "0"
-}, {
-  label: "round(big fraction)",
-  set: [
-    '409652136432929109317120'.repeat(100),
-    '63723676445298091081155'.repeat(100)
-  ],
-  fn: "round",
-  param: null,
-  expect: "6428570341270001560623330590225448467479093479780591305451264291405695842465355472558570608574213642"
-}, {
-  label: "round(big numerator)",
-  set: ['409652136432929109317'.repeat(100), 10],
-  fn: "round",
-  param: null,
-  expect: '409652136432929109317'.repeat(99) + '40965213643292910932'
-}, {
-  label: "17402216385200408/5539306332998545",
-  set: [17402216385200408, 5539306332998545],
-  fn: "add",
-  param: 0,
-  expect: "3.141587653589870"
-}, {
-  label: "17402216385200401/553930633299855",
-  set: [17402216385200401, 553930633299855],
-  fn: "add",
-  param: 0,
-  expect: "31.415876535898660"
-}, {
-  label: "1283191/418183",
-  set: [1283191, 418183],
-  fn: "add",
-  param: 0,
-  expect: "3.068491545567371"
-}, {
-  label: "1.001",
-  set: "1.001",
-  fn: "add",
-  param: 0,
-  expect: "1.001"
-}, {
-  label: "99+1",
-  set: [99, 1],
-  fn: "add",
-  param: 1,
-  expect: "100"
-}, {
-  label: "gcd(5/8, 3/7)",
-  set: [5, 8],
-  fn: "gcd",
-  param: [3, 7],
-  expect: "0.017(857142)" // == 1/56
-}, {
-  label: "gcd(52, 39)",
-  set: 52,
-  fn: "gcd",
-  param: 39,
-  expect: "13"
-}, {
-  label: "gcd(51357, 3819)",
-  set: 51357,
-  fn: "gcd",
-  param: 3819,
-  expect: "57"
-}, {
-  label: "gcd(841, 299)",
-  set: 841,
-  fn: "gcd",
-  param: 299,
-  expect: "1"
-}, {
-  label: "gcd(2/3, 7/5)",
-  set: [2, 3],
-  fn: "gcd",
-  param: [7, 5],
-  expect: "0.0(6)" // == 1/15
-}, {
-  label: "lcm(-3, 3)",
-  set: -3,
-  fn: "lcm",
-  param: 3,
-  expect: "3"
-}, {
-  label: "lcm(3,-3)",
-  set: 3,
-  fn: "lcm",
-  param: -3,
-  expect: "3"
-}, {
-  label: "lcm(0,3)",
-  set: 0,
-  fn: "lcm",
-  param: 3,
-  expect: "0"
-}, {
-  label: "lcm(3, 0)",
-  set: 3,
-  fn: "lcm",
-  param: 0,
-  expect: "0"
-}, {
-  label: "lcm(0, 0)",
-  set: 0,
-  fn: "lcm",
-  param: 0,
-  expect: "0"
-}, {
-  label: "lcm(200, 333)",
-  set: 200,
-  fn: "lcm",
-  param: 333, expect: "66600"
-},
-{
-  label: "1 + -1",
-  set: 1,
-  fn: "add",
-  param: -1,
-  expect: "0"
-}, {
-  label: "3/10+3/14",
-  set: "3/10",
-  fn: "add",
-  param: "3/14",
-  expect: "0.5(142857)"
-}, {
-  label: "3/10-3/14",
-  set: "3/10",
-  fn: "sub",
-  param: "3/14",
-  expect: "0.0(857142)"
-}, {
-  label: "3/10*3/14",
-  set: "3/10",
-  fn: "mul",
-  param: "3/14",
-  expect: "0.06(428571)"
-}, {
-  label: "3/10 / 3/14",
-  set: "3/10",
-  fn: "div",
-  param: "3/14",
-  expect: "1.4"
-}, {
-  label: "1-2",
-  set: "1",
-  fn: "sub",
-  param: "2",
-  expect: "-1"
-}, {
-  label: "1--1",
-  set: "1",
-  fn: "sub",
-  param: "-1",
-  expect: "2"
-}, {
-  label: "0/1*1/3",
-  set: "0/1",
-  fn: "mul",
-  param: "1/3",
-  expect: "0"
-}, {
-  label: "3/10 * 8/12",
-  set: "3/10",
-  fn: "mul",
-  param: "8/12",
-  expect: "0.2"
-}, {
-  label: ".5+5",
-  set: ".5",
-  fn: "add",
-  param: 5, expect: "5.5"
-},
-{
-  label: "10/12-5/60",
-  set: "10/12",
-  fn: "sub",
-  param: "5/60",
-  expect: "0.75"
-}, {
-  label: "10/15 / 3/4",
-  set: "10/15",
-  fn: "div",
-  param: "3/4",
-  expect: "0.(8)"
-}, {
-  label: "1/4 + 3/8",
-  set: "1/4",
-  fn: "add",
-  param: "3/8",
-  expect: "0.625"
-}, {
-  label: "2-1/3",
-  set: "2",
-  fn: "sub",
-  param: "1/3",
-  expect: "1.(6)"
-}, {
-  label: "5*6",
-  set: "5",
-  fn: "mul",
-  param: 6,
-  expect: "30"
-}, {
-  label: "1/2-1/5",
-  set: "1/2",
-  fn: "sub",
-  param: "1/5",
-  expect: "0.3"
-}, {
-  label: "1/2-5",
-  set: "1/2",
-  fn: "add",
-  param: -5,
-  expect: "-4.5"
-}, {
-  label: "1*-1",
-  set: "1",
-  fn: "mul",
-  param: -1,
-  expect: "-1"
-}, {
-  label: "5/10",
-  set: 5.0,
-  fn: "div",
-  param: 10,
-  expect: "0.5"
-}, {
-  label: "1/-1",
-  set: "1",
-  fn: "div",
-  param: -1,
-  expect: "-1"
-}, {
-  label: "4/5 + 13/2",
-  set: "4/5",
-  fn: "add",
-  param: "13/2",
-  expect: "7.3"
-}, {
-  label: "4/5 + 61/2",
-  set: "4/5",
-  fn: "add",
-  param: "61/2",
-  expect: "31.3"
-}, {
-  label: "0.8 + 6.5",
-  set: "0.8",
-  fn: "add",
-  param: "6.5",
-  expect: "7.3"
-}, {
-  label: "2/7 inverse",
-  set: "2/7",
-  fn: "inverse",
-  param: null,
-  expect: "3.5"
-}, {
-  label: "neg 1/3",
-  set: "1/3",
-  fn: "neg",
-  param: null,
-  expect: "-0.(3)"
-}, {
-  label: "1/2+1/3",
-  set: "1/2",
-  fn: "add",
-  param: "1/3",
-  expect: "0.8(3)"
-}, {
-  label: "1/2+3",
-  set: ".5",
-  fn: "add",
-  param: 3,
-  expect: "3.5"
-}, {
-  label: "1/2+3.14",
-  set: "1/2",
-  fn: "add",
-  param: "3.14",
-  expect: "3.64"
-}, {
-  label: "3.5 < 4.1",
-  set: 3.5,
-  fn: "compare",
-  param: 4.1,
-  expect: "-1"
-}, {
-  label: "3.5 > 4.1",
-  set: 4.1,
-  fn: "compare",
-  param: 3.1,
-  expect: "1"
-}, {
-  label: "-3.5 > -4.1",
-  set: -3.5,
-  fn: "compare",
-  param: -4.1,
-  expect: "1"
-}, {
-  label: "-3.5 > -4.1",
-  set: -4.1,
-  fn: "compare",
-  param: -3.5,
-  expect: "-1"
-}, {
-  label: "4.3 == 4.3",
-  set: 4.3,
-  fn: "compare",
-  param: 4.3,
-  expect: "0"
-}, {
-  label: "-4.3 == -4.3",
-  set: -4.3,
-  fn: "compare",
-  param: -4.3,
-  expect: "0"
-}, {
-  label: "-4.3 < 4.3",
-  set: -4.3,
-  fn: "compare",
-  param: 4.3,
-  expect: "-1"
-}, {
-  label: "4.3 == -4.3",
-  set: 4.3,
-  fn: "compare",
-  param: -4.3,
-  expect: "1"
-}, {
-  label: "2^0.5",
-  set: 2,
-  fn: "pow",
-  param: 0.5,
-  expect: "null"
-}, {
-  label: "(-8/27)^(1/3)",
-  set: [-8, 27],
-  fn: "pow",
-  param: [1, 3],
-  expect: "null"
-}, {
-  label: "(-8/27)^(2/3)",
-  set: [-8, 27],
-  fn: "pow",
-  param: [2, 3],
-  expect: "null"
-}, {
-  label: "(-32/243)^(5/3)",
-  set: [-32, 243],
-  fn: "pow",
-  param: [5, 3],
-  expect: "null"
-}, {
-  label: "sqrt(0)",
-  set: 0,
-  fn: "pow",
-  param: 0.5,
-  expect: "0"
-}, {
-  label: "27^(2/3)",
-  set: 27,
-  fn: "pow",
-  param: "2/3",
-  expect: "9"
-}, {
-  label: "(243/1024)^(2/5)",
-  set: "243/1024",
-  fn: "pow",
-  param: "2/5",
-  expect: "0.5625"
-}, {
-  label: "-0.5^-3",
-  set: -0.5,
-  fn: "pow",
-  param: -3,
-  expect: "-8"
-}, {
-  label: "",
-  set: -3,
-  fn: "pow",
-  param: -3,
-  expect: "-0.(037)"
-}, {
-  label: "-3",
-  set: -3,
-  fn: "pow",
-  param: 2,
-  expect: "9"
-}, {
-  label: "-3",
-  set: -3,
-  fn: "pow",
-  param: 3,
-  expect: "-27"
-}, {
-  label: "0^0",
-  set: 0,
-  fn: "pow",
-  param: 0,
-  expect: "1"
-}, {
-  label: "2/3^7",
-  set: [2, 3],
-  fn: "pow",
-  param: 7,
-  expect: "0.(058527663465935070873342478280749885688157293095564700502972107910379515317786922725194330132601737540009144947416552354823959762231367169638774577046181984453589391860996799268404206675811614083219021490626428898033836305441243712848651120256)"
-}, {
-  label: "-0.6^4",
-  set: -0.6,
-  fn: "pow",
-  param: 4,
-  expect: "0.1296"
-}, {
-  label: "8128371:12394 - 8128371/12394",
-  set: "8128371:12394",
-  fn: "sub",
-  param: "8128371/12394",
-  expect: "0"
-}, {
-  label: "3/4 + 1/4",
-  set: "3/4",
-  fn: "add",
-  param: "1/4",
-  expect: "1"
-}, {
-  label: "1/10 + 2/10",
-  set: "1/10",
-  fn: "add",
-  param: "2/10",
-  expect: "0.3"
-}, {
-  label: "5/10 + 2/10",
-  set: "5/10",
-  fn: "add",
-  param: "2/10",
-  expect: "0.7"
-}, {
-  label: "18/10 + 2/10",
-  set: "18/10",
-  fn: "add",
-  param: "2/10",
-  expect: "2"
-}, {
-  label: "1/3 + 1/6",
-  set: "1/3",
-  fn: "add",
-  param: "1/6",
-  expect: "0.5"
-}, {
-  label: "1/3 + 2/6",
-  set: "1/3",
-  fn: "add",
-  param: "2/6",
-  expect: "0.(6)"
-}, {
-  label: "3/4 / 1/4",
-  set: "3/4",
-  fn: "div",
-  param: "1/4",
-  expect: "3"
-}, {
-  label: "1/10 / 2/10",
-  set: "1/10",
-  fn: "div",
-  param: "2/10",
-  expect: "0.5"
-}, {
-  label: "5/10 / 2/10",
-  set: "5/10",
-  fn: "div",
-  param: "2/10",
-  expect: "2.5"
-}, {
-  label: "18/10 / 2/10",
-  set: "18/10",
-  fn: "div",
-  param: "2/10",
-  expect: "9"
-}, {
-  label: "1/3 / 1/6",
-  set: "1/3",
-  fn: "div",
-  param: "1/6",
-  expect: "2"
-}, {
-  label: "1/3 / 2/6",
-  set: "1/3",
-  fn: "div",
-  param: "2/6",
-  expect: "1"
-}, {
-  label: "3/4 * 1/4",
-  set: "3/4",
-  fn: "mul",
-  param: "1/4",
-  expect: "0.1875"
-}, {
-  label: "1/10 * 2/10",
-  set: "1/10",
-  fn: "mul",
-  param: "2/10",
-  expect: "0.02"
-}, {
-  label: "5/10 * 2/10",
-  set: "5/10",
-  fn: "mul",
-  param: "2/10",
-  expect: "0.1"
-}, {
-  label: "18/10 * 2/10",
-  set: "18/10",
-  fn: "mul",
-  param: "2/10",
-  expect: "0.36"
-}, {
-  label: "1/3 * 1/6",
-  set: "1/3",
-  fn: "mul",
-  param: "1/6",
-  expect: "0.0(5)"
-}, {
-  label: "1/3 * 2/6",
-  set: "1/3",
-  fn: "mul",
-  param: "2/6",
-  expect: "0.(1)"
-}, {
-  label: "5/4 - 1/4",
-  set: "5/4",
-  fn: "sub",
-  param: "1/4",
-  expect: "1"
-}, {
-  label: "5/10 - 2/10",
-  set: "5/10",
-  fn: "sub",
-  param: "2/10",
-  expect: "0.3"
-}, {
-  label: "9/10 - 2/10",
-  set: "9/10",
-  fn: "sub",
-  param: "2/10",
-  expect: "0.7"
-}, {
-  label: "22/10 - 2/10",
-  set: "22/10",
-  fn: "sub",
-  param: "2/10",
-  expect: "2"
-}, {
-  label: "2/3 - 1/6",
-  set: "2/3",
-  fn: "sub",
-  param: "1/6",
-  expect: "0.5"
-}, {
-  label: "3/3 - 2/6",
-  set: "3/3",
-  fn: "sub",
-  param: "2/6",
-  expect: "0.(6)"
-}, {
-  label: "0.006999999999999999",
-  set: 0.006999999999999999,
-  fn: "add",
-  param: 0,
-  expect: "0.007"
-}, {
-  label: "1/7 - 1",
-  set: 1 / 7,
-  fn: "add",
-  param: -1,
-  expect: "-0.(857142)"
-}, {
-  label: "0.0065 + 0.0005",
-  set: 0.0065,
-  fn: "add",
-  param: 0.0005,
-  expect: "0.007"
-}, {
-  label: "6.5/.5",
-  set: 6.5,
-  fn: "div",
-  param: .5,
-  expect: "13"
-}, {
-  label: "0.999999999999999999999999999",
-  set: 0.999999999999999999999999999,
-  fn: "sub",
-  param: 1,
-  expect: "0"
-}, {
-  label: "0.5833333333333334",
-  set: 0.5833333333333334,
-  fn: "add",
-  param: 0,
-  expect: "0.58(3)"
-}, {
-  label: "1.75/3",
-  set: 1.75 / 3,
-  fn: "add",
-  param: 0,
-  expect: "0.58(3)"
-}, {
-  label: "3.3333333333333",
-  set: 3.3333333333333,
-  fn: "add",
-  param: 0,
-  expect: "3.(3)"
-}, {
-  label: "4.285714285714285714285714",
-  set: 4.285714285714285714285714,
-  fn: "add",
-  param: 0,
-  expect: "4.(285714)"
-}, {
-  label: "-4",
-  set: -4,
-  fn: "neg",
-  param: 0,
-  expect: "4"
-}, {
-  label: "4",
-  set: 4,
-  fn: "neg",
-  param: 0,
-  expect: "-4"
-}, {
-  label: "0",
-  set: 0,
-  fn: "neg",
-  param: 0,
-  expect: "0"
-}, {
-  label: "6869570742453802/5329686054127205",
-  set: "6869570742453802/5329686054127205",
-  fn: "neg",
-  param: 0,
-  expect: "-1.288925965373540"
-}, {
-  label: "686970702/53212205",
-  set: "686970702/53212205",
-  fn: "neg",
-  param: 0,
-  expect: "-12.910021338149772"
-}, {
-  label: "1/3000000000000000",
-  set: "1/3000000000000000",
-  fn: "add",
-  param: 0,
-  expect: "0.000000000000000(3)"
-}, {
-  label: "toString(15) .0000000000000003",
-  set: ".0000000000000003",
-  fn: "toString",
-  param: 15,
-  expect: "0.000000000000000"
-}, {
-  label: "toString(16) .0000000000000003",
-  set: ".0000000000000003",
-  fn: "toString",
-  param: 16,
-  expect: "0.0000000000000003"
-}, {
-  label: "12 / 4.3",
-  set: 12,
-  set2: 4.3,
-  fn: "toString",
-  param: null,
-  expectError: NonIntegerParameter()
-}, {
-  label: "12.5 / 4",
-  set: 12.5,
-  set2: 4,
-  fn: "toString",
-  param: null,
-  expectError: NonIntegerParameter()
-}, {
-  label: "0.9 round to multiple of 1/8",
-  set: .9,
-  fn: "roundTo",
-  param: "1/8",
-  expect: "0.875"
-}, {
-  label: "1/3 round to multiple of 1/16",
-  set: 1 / 3,
-  fn: "roundTo",
-  param: "1/16",
-  expect: "0.3125"
-}, {
-  label: "1/3 round to multiple of 1/16",
-  set: -1 / 3,
-  fn: "roundTo",
-  param: "1/16",
-  expect: "-0.3125"
-}, {
-  label: "1/2 round to multiple of 1/4",
-  set: 1 / 2,
-  fn: "roundTo",
-  param: "1/4",
-  expect: "0.5"
-}, {
-  label: "1/4 round to multiple of 1/2",
-  set: 1 / 4,
-  fn: "roundTo",
-  param: "1/2",
-  expect: "0.5"
-}, {
-  label: "10/3 round to multiple of 1/2",
-  set: "10/3",
-  fn: "roundTo",
-  param: "1/2",
-  expect: "3.5"
-}, {
-  label: "-10/3 round to multiple of 1/2",
-  set: "-10/3",
-  fn: "roundTo",
-  param: "1/2",
-  expect: "-3.5"
-}, {
-  label: "log_2(8)",
-  set: "8",
-  fn: "log",
-  param: "2",
-  expect: "3" // because 2^3 = 8
-}, {
-  label: "log_2(3)",
-  set: "3",
-  fn: "log",
-  param: "2",
-  expect: 'null' // because 2^(p/q) != 3
-}, {
-  label: "log_10(1000)",
-  set: "1000",
-  fn: "log",
-  param: "10",
-  expect: "3" // because 10^3 = 1000
-}, {
-  label: "log_27(81)",
-  set: "81",
-  fn: "log",
-  param: "27",
-  expect: "1.(3)" // because 27^(4/3) = 81
-}, {
-  label: "log_27(9)",
-  set: "9",
-  fn: "log",
-  param: "27",
-  expect: "0.(6)" // because 27^(2/3) = 9
-}, {
-  label: "log_9/4(27/8)",
-  set: "27/8",
-  fn: "log",
-  param: "9/4",
-  expect: "1.5" // because (9/4)^(3/2) = 27/8
-}];
-
-describe('Fraction', function () {
-  for (var i = 0; i < tests.length; i++) {
-
-    (function (i) {
-      var action;
-
-      if (tests[i].fn) {
-        action = function () {
-          var x = Fraction(tests[i].set, tests[i].set2)[tests[i].fn](tests[i].param);
-          if (x === null) return "null";
-          return x.toString();
-        };
-      } else {
-        action = function () {
-          var x = new Fraction(tests[i].set, tests[i].set2);
-          if (x === null) return "null";
-          return x.toString();
-        };
-      }
-
-      it(String(tests[i].label || tests[i].set), function () {
-        if (tests[i].expectError) {
-          assert.throws(action, tests[i].expectError);
-        } else {
-          assert.equal(action(), tests[i].expect);
-        }
-      });
-
-    })(i);
-  }
-});
-
-describe('JSON', function () {
-
-  it("Should be possible to stringify the object", function () {
-
-    if (typeof Fraction(1).n !== 'number') {
-      return;
-    }
-    assert.equal('{"s":1,"n":14623,"d":330}', JSON.stringify(new Fraction("44.3(12)")));
-    assert.equal('{"s":-1,"n":2,"d":1}', JSON.stringify(new Fraction(-1 / 2).inverse()));
-  });
-});
-
-describe('Arguments', function () {
-
-  it("Should be possible to use different kind of params", function () {
-
-    // String
-    var fraction = new Fraction("0.1");
-    assert.equal("1/10", fraction.n + "/" + fraction.d);
-
-    var fraction = new Fraction("6234/6460");
-    assert.equal("3117/3230", fraction.n + "/" + fraction.d);
-
-    // Two params
-    var fraction = new Fraction(1, 2);
-    assert.equal("1/2", fraction.n + "/" + fraction.d);
-
-    // Object
-    var fraction = new Fraction({ n: 1, d: 3 });
-    assert.equal("1/3", fraction.n + "/" + fraction.d);
-
-    // Array
-    var fraction = new Fraction([1, 4]);
-    assert.equal("1/4", fraction.n + "/" + fraction.d);
-  });
-});
-
-describe('fractions', function () {
-
-  it("Should pass 0.08 = 2/25", function () {
-
-    var fraction = new Fraction("0.08");
-    assert.equal("2/25", fraction.n + "/" + fraction.d);
-  });
-
-  it("Should pass 0.200 = 1/5", function () {
-
-    var fraction = new Fraction("0.200");
-    assert.equal("1/5", fraction.n + "/" + fraction.d);
-  });
-
-  it("Should pass 0.125 = 1/8", function () {
-
-    var fraction = new Fraction("0.125");
-    assert.equal("1/8", fraction.n + "/" + fraction.d);
-  });
-
-  it("Should pass 8.36 = 209/25", function () {
-
-    var fraction = new Fraction(8.36);
-    assert.equal("209/25", fraction.n + "/" + fraction.d);
-  });
-
-});
-
-describe('constructors', function () {
-
-  it("Should pass 0.08 = 2/25", function () {
-
-    var tmp = new Fraction({ d: 4, n: 2, s: -1 });
-    assert.equal("-1/2", tmp.s * tmp.n + "/" + tmp.d);
-
-    var tmp = new Fraction(-88.3);
-    assert.equal("-883/10", tmp.s * tmp.n + "/" + tmp.d);
-
-    var tmp = new Fraction(-88.3).clone();
-    assert.equal("-883/10", tmp.s * tmp.n + "/" + tmp.d);
-
-    var tmp = new Fraction("123.'3'");
-    assert.equal("370/3", tmp.s * tmp.n + "/" + tmp.d);
-
-    var tmp = new Fraction("123.'3'").clone();
-    assert.equal("370/3", tmp.s * tmp.n + "/" + tmp.d);
-
-    var tmp = new Fraction([-1023461776, 334639305]);
-    tmp = tmp.add([4, 25]);
-    assert.equal("-4849597436/1673196525", tmp.s * tmp.n + "/" + tmp.d);
-  });
-});
-
-describe('Latex Output', function () {
-
-  it("Should pass 123.'3' = \\frac{370}{3}", function () {
-
-    var tmp = new Fraction("123.'3'");
-    assert.equal("\\frac{370}{3}", tmp.toLatex());
-  });
-
-  it("Should pass 1.'3' = \\frac{4}{3}", function () {
-
-    var tmp = new Fraction("1.'3'");
-    assert.equal("\\frac{4}{3}", tmp.toLatex());
-  });
-
-  it("Should pass -1.0000000000 = -1", function () {
-
-    var tmp = new Fraction("-1.0000000000");
-    assert.equal('-1', tmp.toLatex());
-  });
-
-  it("Should pass -0.0000000000 = 0", function () {
-
-    var tmp = new Fraction("-0.0000000000");
-    assert.equal('0', tmp.toLatex());
-  });
-});
-
-describe('Fraction Output', function () {
-
-  it("Should pass 123.'3' = 123 1/3", function () {
-
-    var tmp = new Fraction("123.'3'");
-    assert.equal('370/3', tmp.toFraction());
-  });
-
-  it("Should pass 1.'3' = 1 1/3", function () {
-
-    var tmp = new Fraction("1.'3'");
-    assert.equal('4/3', tmp.toFraction());
-  });
-
-  it("Should pass -1.0000000000 = -1", function () {
-
-    var tmp = new Fraction("-1.0000000000");
-    assert.equal('-1', tmp.toFraction());
-  });
-
-  it("Should pass -0.0000000000 = 0", function () {
-
-    var tmp = new Fraction("-0.0000000000");
-    assert.equal('0', tmp.toFraction());
-  });
-
-  it("Should pass 1/-99/293 = -1/29007", function () {
-
-    var tmp = new Fraction(-99).inverse().div(293);
-    assert.equal('-1/29007', tmp.toFraction());
-  });
-
-  it('Should work with large calculations', function () {
-    var x = Fraction(1123875);
-    var y = Fraction(1238750184);
-    var z = Fraction(1657134);
-    var r = Fraction(77344464613500, 92063);
-    assert.equal(x.mul(y).div(z).toFraction(), r.toFraction());
-  });
-});
-
-describe('Fraction toContinued', function () {
-
-  it("Should pass 415/93", function () {
-
-    var tmp = new Fraction(415, 93);
-    assert.equal('4,2,6,7', tmp.toContinued().toString());
-  });
-
-  it("Should pass 0/2", function () {
-
-    var tmp = new Fraction(0, 2);
-    assert.equal('0', tmp.toContinued().toString());
-  });
-
-  it("Should pass 1/7", function () {
-
-    var tmp = new Fraction(1, 7);
-    assert.equal('0,7', tmp.toContinued().toString());
-  });
-
-  it("Should pass 23/88", function () {
-
-    var tmp = new Fraction('23/88');
-    assert.equal('0,3,1,4,1,3', tmp.toContinued().toString());
-  });
-
-  it("Should pass 1/99", function () {
-
-    var tmp = new Fraction('1/99');
-    assert.equal('0,99', tmp.toContinued().toString());
-  });
-
-  it("Should pass 1768/99", function () {
-
-    var tmp = new Fraction('1768/99');
-    assert.equal('17,1,6,14', tmp.toContinued().toString());
-  });
-
-  it("Should pass 1768/99", function () {
-
-    var tmp = new Fraction('7/8');
-    assert.equal('0,1,7', tmp.toContinued().toString());
-  });
-
-});
-
-
-describe('Fraction simplify', function () {
-
-  it("Should pass 415/93", function () {
-
-    var tmp = new Fraction(415, 93);
-    assert.equal('9/2', tmp.simplify(0.1).toFraction());
-    assert.equal('58/13', tmp.simplify(0.01).toFraction());
-    assert.equal('415/93', tmp.simplify(0.0001).toFraction());
-  });
-
-});
Index: de_modules/iconv-lite/.github/dependabot.yml
===================================================================
--- node_modules/iconv-lite/.github/dependabot.yml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-# Please see the documentation for all configuration options:
-# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-updates:
-  - package-ecosystem: "npm"
-    directory: "/"
-    schedule:
-      interval: "daily"
-    allow:
-      - dependency-type: production
Index: de_modules/iconv-lite/.idea/codeStyles/Project.xml
===================================================================
--- node_modules/iconv-lite/.idea/codeStyles/Project.xml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-<component name="ProjectCodeStyleConfiguration">
-  <code_scheme name="Project" version="173">
-    <HTMLCodeStyleSettings>
-      <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
-      <option name="HTML_ENFORCE_QUOTES" value="true" />
-    </HTMLCodeStyleSettings>
-    <JSCodeStyleSettings version="0">
-      <option name="FORCE_SEMICOLON_STYLE" value="true" />
-      <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
-      <option name="FORCE_QUOTE_STYlE" value="true" />
-      <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
-      <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
-      <option name="SPACES_WITHIN_IMPORTS" value="true" />
-    </JSCodeStyleSettings>
-    <TypeScriptCodeStyleSettings version="0">
-      <option name="FORCE_SEMICOLON_STYLE" value="true" />
-      <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
-      <option name="FORCE_QUOTE_STYlE" value="true" />
-      <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
-      <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
-      <option name="SPACES_WITHIN_IMPORTS" value="true" />
-    </TypeScriptCodeStyleSettings>
-    <VueCodeStyleSettings>
-      <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
-      <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
-    </VueCodeStyleSettings>
-    <codeStyleSettings language="HTML">
-      <option name="SOFT_MARGINS" value="100" />
-      <indentOptions>
-        <option name="CONTINUATION_INDENT_SIZE" value="4" />
-      </indentOptions>
-    </codeStyleSettings>
-    <codeStyleSettings language="JavaScript">
-      <option name="SOFT_MARGINS" value="100" />
-    </codeStyleSettings>
-    <codeStyleSettings language="TypeScript">
-      <option name="SOFT_MARGINS" value="100" />
-    </codeStyleSettings>
-    <codeStyleSettings language="Vue">
-      <option name="SOFT_MARGINS" value="100" />
-      <indentOptions>
-        <option name="INDENT_SIZE" value="4" />
-        <option name="TAB_SIZE" value="4" />
-      </indentOptions>
-    </codeStyleSettings>
-  </code_scheme>
-</component>
Index: de_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml
===================================================================
--- node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-<component name="ProjectCodeStyleConfiguration">
-  <state>
-    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
-  </state>
-</component>
Index: de_modules/iconv-lite/.idea/iconv-lite.iml
===================================================================
--- node_modules/iconv-lite/.idea/iconv-lite.iml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="WEB_MODULE" version="4">
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/temp" />
-      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
-      <excludeFolder url="file://$MODULE_DIR$/tmp" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
Index: de_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml
===================================================================
--- node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<component name="InspectionProjectProfileManager">
-  <profile version="1.0">
-    <option name="myName" value="Project Default" />
-    <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
-  </profile>
-</component>
Index: de_modules/iconv-lite/.idea/modules.xml
===================================================================
--- node_modules/iconv-lite/.idea/modules.xml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/iconv-lite.iml" filepath="$PROJECT_DIR$/.idea/iconv-lite.iml" />
-    </modules>
-  </component>
-</project>
Index: de_modules/iconv-lite/.idea/vcs.xml
===================================================================
--- node_modules/iconv-lite/.idea/vcs.xml	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$" vcs="Git" />
-  </component>
-</project>
Index: de_modules/iconv-lite/Changelog.md
===================================================================
--- node_modules/iconv-lite/Changelog.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,212 +1,0 @@
-## 0.6.3 / 2021-05-23
-  * Fix HKSCS encoding to prefer Big5 codes if both Big5 and HKSCS codes are possible (#264)
-
-
-## 0.6.2 / 2020-07-08
-  * Support Uint8Array-s decoding without conversion to Buffers, plus fix an edge case.
-
-
-## 0.6.1 / 2020-06-28
-  * Support Uint8Array-s directly when decoding (#246, by @gyzerok)
-  * Unify package.json version ranges to be strictly semver-compatible (#241)
-  * Fix minor issue in UTF-32 decoder's endianness detection code.
-
-
-## 0.6.0 / 2020-06-08
-  * Updated 'gb18030' encoding to :2005 edition (see https://github.com/whatwg/encoding/issues/22).
-  * Removed `iconv.extendNodeEncodings()` mechanism. It was deprecated 5 years ago and didn't work 
-    in recent Node versions.
-  * Reworked Streaming API behavior in browser environments to fix #204. Streaming API will be 
-    excluded by default in browser packs, saving ~100Kb bundle size, unless enabled explicitly using 
-    `iconv.enableStreamingAPI(require('stream'))`.
-  * Updates to development environment & tests:
-    * Added ./test/webpack private package to test complex new use cases that need custom environment. 
-      It's tested as a separate job in Travis CI.
-    * Updated generation code for the new EUC-KR index file format from Encoding Standard.
-    * Removed Buffer() constructor in tests (#197 by @gabrielschulhof).
-
-
-## 0.5.2 / 2020-06-08
-  * Added `iconv.getEncoder()` and `iconv.getDecoder()` methods to typescript definitions (#229).
-  * Fixed semver version to 6.1.2 to support Node 8.x (by @tanandara).
-  * Capped iconv version to 2.x as 3.x has dropped support for older Node versions.
-  * Switched from instanbul to c8 for code coverage.
-
-
-## 0.5.1 / 2020-01-18
-
-  * Added cp720 encoding (#221, by @kr-deps)
-  * (minor) Changed Changelog.md formatting to use h2. 
-
-
-## 0.5.0 / 2019-06-26
-
-  * Added UTF-32 encoding, both little-endian and big-endian variants (UTF-32LE, UTF32-BE). If endianness
-    is not provided for decoding, it's deduced automatically from the stream using a heuristic similar to
-    what we use in UTF-16. (great work in #216 by @kshetline)
-  * Several minor updates to README (#217 by @oldj, plus some more)
-  * Added Node versions 10 and 12 to Travis test harness.
-
-
-## 0.4.24 / 2018-08-22
-
-  * Added MIK encoding (#196, by @Ivan-Kalatchev)
-
-
-## 0.4.23 / 2018-05-07
-
-  * Fix deprecation warning in Node v10 due to the last usage of `new Buffer` (#185, by @felixbuenemann)
-  * Switched from NodeBuffer to Buffer in typings (#155 by @felixfbecker, #186 by @larssn)
-
-
-## 0.4.22 / 2018-05-05
-
-  * Use older semver style for dependencies to be compatible with Node version 0.10 (#182, by @dougwilson)
-  * Fix tests to accomodate fixes in Node v10 (#182, by @dougwilson)
-
-
-## 0.4.21 / 2018-04-06
-
-  * Fix encoding canonicalization (#156)
-  * Fix the paths in the "browser" field in package.json (#174 by @LMLB)
-  * Removed "contributors" section in package.json - see Git history instead.
-
-
-## 0.4.20 / 2018-04-06
-
-  * Updated `new Buffer()` usages with recommended replacements as it's being deprecated in Node v10 (#176, #178 by @ChALkeR)
-
-
-## 0.4.19 / 2017-09-09
-
-  * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147)
-  * Re-generated windows1255 codec, because it was updated in iconv project
-  * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8
-
-
-## 0.4.18 / 2017-06-13
-
-  * Fixed CESU-8 regression in Node v8.
-
-
-## 0.4.17 / 2017-04-22
-
- * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn)
-
-
-## 0.4.16 / 2017-04-22
-
- * Added support for React Native (#150)
- * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex)
- * Fixed typo in Readme (#138 by @jiangzhuo)
- * Fixed build for Node v6.10+ by making correct version comparison
- * Added a warning if iconv-lite is loaded not as utf-8 (see #142)
-
-
-## 0.4.15 / 2016-11-21
-
- * Fixed typescript type definition (#137)
-
-
-## 0.4.14 / 2016-11-20
-
- * Preparation for v1.0
- * Added Node v6 and latest Node versions to Travis CI test rig
- * Deprecated Node v0.8 support
- * Typescript typings (@larssn)
- * Fix encoding of Euro character in GB 18030 (inspired by @lygstate)
- * Add ms prefix to dbcs windows encodings (@rokoroku)
-
-
-## 0.4.13 / 2015-10-01
-
- * Fix silly mistake in deprecation notice.
-
-
-## 0.4.12 / 2015-09-26
-
- * Node v4 support:
-   * Added CESU-8 decoding (#106)
-   * Added deprecation notice for `extendNodeEncodings`
-   * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol)
-
-
-## 0.4.11 / 2015-07-03
-
- * Added CESU-8 encoding.
-
-
-## 0.4.10 / 2015-05-26
-
- * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not
-   just spaces. This should minimize the importance of "default" endianness.
-
-
-## 0.4.9 / 2015-05-24
-
- * Streamlined BOM handling: strip BOM by default, add BOM when encoding if 
-   addBOM: true. Added docs to Readme.
- * UTF16 now uses UTF16-LE by default.
- * Fixed minor issue with big5 encoding.
- * Added io.js testing on Travis; updated node-iconv version to test against.
-   Now we just skip testing SBCS encodings that node-iconv doesn't support.
- * (internal refactoring) Updated codec interface to use classes.
- * Use strict mode in all files.
-
-
-## 0.4.8 / 2015-04-14
- 
- * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94)
-
-
-## 0.4.7 / 2015-02-05
-
- * stop official support of Node.js v0.8. Should still work, but no guarantees.
-   reason: Packages needed for testing are hard to get on Travis CI.
- * work in environment where Object.prototype is monkey patched with enumerable 
-   props (#89).
-
-
-## 0.4.6 / 2015-01-12
- 
- * fix rare aliases of single-byte encodings (thanks @mscdex)
- * double the timeout for dbcs tests to make them less flaky on travis
-
-
-## 0.4.5 / 2014-11-20
-
- * fix windows-31j and x-sjis encoding support (@nleush)
- * minor fix: undefined variable reference when internal error happens
-
-
-## 0.4.4 / 2014-07-16
-
- * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3)
- * fixed streaming base64 encoding
-
-
-## 0.4.3 / 2014-06-14
-
- * added encodings UTF-16BE and UTF-16 with BOM
-
-
-## 0.4.2 / 2014-06-12
-
- * don't throw exception if `extendNodeEncodings()` is called more than once
-
-
-## 0.4.1 / 2014-06-11
-
- * codepage 808 added
-
-
-## 0.4.0 / 2014-06-10
-
- * code is rewritten from scratch
- * all widespread encodings are supported
- * streaming interface added
- * browserify compatibility added
- * (optional) extend core primitive encodings to make usage even simpler
- * moved from vows to mocha as the testing framework
-
-
Index: de_modules/iconv-lite/LICENSE
===================================================================
--- node_modules/iconv-lite/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-Copyright (c) 2011 Alexander Shtuchkin
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Index: de_modules/iconv-lite/README.md
===================================================================
--- node_modules/iconv-lite/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,130 +1,0 @@
-## iconv-lite: Pure JS character encoding conversion
-
- * No need for native code compilation. Quick to install, works on Windows and in sandboxed environments like [Cloud9](http://c9.io).
- * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser), 
-   [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others.
- * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison).
- * Intuitive encode/decode API, including Streaming support.
- * In-browser usage via [browserify](https://github.com/substack/node-browserify) or [webpack](https://webpack.js.org/) (~180kb gzip compressed with Buffer shim included).
- * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included.
- * React Native is supported (need to install `stream` module to enable Streaming API).
- * License: MIT.
-
-[![NPM Stats](https://nodei.co/npm/iconv-lite.png)](https://npmjs.org/package/iconv-lite/)  
-[![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite)
-[![npm](https://img.shields.io/npm/v/iconv-lite.svg)](https://npmjs.org/package/iconv-lite/)
-[![npm downloads](https://img.shields.io/npm/dm/iconv-lite.svg)](https://npmjs.org/package/iconv-lite/)
-[![npm bundle size](https://img.shields.io/bundlephobia/min/iconv-lite.svg)](https://npmjs.org/package/iconv-lite/)
-
-## Usage
-### Basic API
-```javascript
-var iconv = require('iconv-lite');
-
-// Convert from an encoded buffer to a js string.
-str = iconv.decode(Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251');
-
-// Convert from a js string to an encoded buffer.
-buf = iconv.encode("Sample input string", 'win1251');
-
-// Check if encoding is supported
-iconv.encodingExists("us-ascii")
-```
-
-### Streaming API
-```javascript
-
-// Decode stream (from binary data stream to js strings)
-http.createServer(function(req, res) {
-    var converterStream = iconv.decodeStream('win1251');
-    req.pipe(converterStream);
-
-    converterStream.on('data', function(str) {
-        console.log(str); // Do something with decoded strings, chunk-by-chunk.
-    });
-});
-
-// Convert encoding streaming example
-fs.createReadStream('file-in-win1251.txt')
-    .pipe(iconv.decodeStream('win1251'))
-    .pipe(iconv.encodeStream('ucs2'))
-    .pipe(fs.createWriteStream('file-in-ucs2.txt'));
-
-// Sugar: all encode/decode streams have .collect(cb) method to accumulate data.
-http.createServer(function(req, res) {
-    req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) {
-        assert(typeof body == 'string');
-        console.log(body); // full request body string
-    });
-});
-```
-
-## Supported encodings
-
- *  All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex.
- *  Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap, utf32, utf32-le, and utf32-be.
- *  All widespread singlebyte encodings: Windows 125x family, ISO-8859 family, 
-    IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library. 
-    Aliases like 'latin1', 'us-ascii' also supported.
- *  All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP.
-
-See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings).
-
-Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors!
-
-Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors!
-
-
-## Encoding/decoding speed
-
-Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0). 
-Note: your results may vary, so please always check on your hardware.
-
-    operation             iconv@2.1.4   iconv-lite@0.4.7
-    ----------------------------------------------------------
-    encode('win1251')     ~96 Mb/s      ~320 Mb/s
-    decode('win1251')     ~95 Mb/s      ~246 Mb/s
-
-## BOM handling
-
- * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options
-   (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`).
-   A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found.
- * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module.
- * Encoding: No BOM added, unless overridden by `addBOM: true` option.
-
-## UTF-16 Encodings
-
-This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be
-smart about endianness in the following ways:
- * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be 
-   overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`.
- * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override.
-
-## UTF-32 Encodings
-
-This library supports UTF-32LE, UTF-32BE and UTF-32 encodings. Like the UTF-16 encoding above, UTF-32 defaults to UTF-32LE, but uses BOM and 'spaces heuristics' to determine input endianness. 
- * The default of UTF-32LE can be overridden with the `defaultEncoding: 'utf-32be'` option. Strips BOM unless `stripBOM: false`.
- * Encoding: uses UTF-32LE and writes BOM by default. Use `addBOM: false` to override. (`defaultEncoding: 'utf-32be'` can also be used here to change encoding.)
-
-## Other notes
-
-When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding).  
-Untranslatable characters are set to � or ?. No transliteration is currently supported.  
-Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77).  
-
-## Testing
-
-```bash
-$ git clone git@github.com:ashtuchkin/iconv-lite.git
-$ cd iconv-lite
-$ npm install
-$ npm test
-    
-$ # To view performance:
-$ node test/performance.js
-
-$ # To view test coverage:
-$ npm run coverage
-$ open coverage/lcov-report/index.html
-```
Index: de_modules/iconv-lite/encodings/dbcs-codec.js
===================================================================
--- node_modules/iconv-lite/encodings/dbcs-codec.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,597 +1,0 @@
-"use strict";
-var Buffer = require("safer-buffer").Buffer;
-
-// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
-// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
-// To save memory and loading time, we read table files only when requested.
-
-exports._dbcs = DBCSCodec;
-
-var UNASSIGNED = -1,
-    GB18030_CODE = -2,
-    SEQ_START  = -10,
-    NODE_START = -1000,
-    UNASSIGNED_NODE = new Array(0x100),
-    DEF_CHAR = -1;
-
-for (var i = 0; i < 0x100; i++)
-    UNASSIGNED_NODE[i] = UNASSIGNED;
-
-
-// Class DBCSCodec reads and initializes mapping tables.
-function DBCSCodec(codecOptions, iconv) {
-    this.encodingName = codecOptions.encodingName;
-    if (!codecOptions)
-        throw new Error("DBCS codec is called without the data.")
-    if (!codecOptions.table)
-        throw new Error("Encoding '" + this.encodingName + "' has no data.");
-
-    // Load tables.
-    var mappingTable = codecOptions.table();
-
-
-    // Decode tables: MBCS -> Unicode.
-
-    // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
-    // Trie root is decodeTables[0].
-    // Values: >=  0 -> unicode character code. can be > 0xFFFF
-    //         == UNASSIGNED -> unknown/unassigned sequence.
-    //         == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
-    //         <= NODE_START -> index of the next node in our trie to process next byte.
-    //         <= SEQ_START  -> index of the start of a character code sequence, in decodeTableSeq.
-    this.decodeTables = [];
-    this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
-
-    // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. 
-    this.decodeTableSeq = [];
-
-    // Actual mapping tables consist of chunks. Use them to fill up decode tables.
-    for (var i = 0; i < mappingTable.length; i++)
-        this._addDecodeChunk(mappingTable[i]);
-
-    // Load & create GB18030 tables when needed.
-    if (typeof codecOptions.gb18030 === 'function') {
-        this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
-
-        // Add GB18030 common decode nodes.
-        var commonThirdByteNodeIdx = this.decodeTables.length;
-        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
-
-        var commonFourthByteNodeIdx = this.decodeTables.length;
-        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
-
-        // Fill out the tree
-        var firstByteNode = this.decodeTables[0];
-        for (var i = 0x81; i <= 0xFE; i++) {
-            var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i]];
-            for (var j = 0x30; j <= 0x39; j++) {
-                if (secondByteNode[j] === UNASSIGNED) {
-                    secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
-                } else if (secondByteNode[j] > NODE_START) {
-                    throw new Error("gb18030 decode tables conflict at byte 2");
-                }
-
-                var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
-                for (var k = 0x81; k <= 0xFE; k++) {
-                    if (thirdByteNode[k] === UNASSIGNED) {
-                        thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;
-                    } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
-                        continue;
-                    } else if (thirdByteNode[k] > NODE_START) {
-                        throw new Error("gb18030 decode tables conflict at byte 3");
-                    }
-
-                    var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];
-                    for (var l = 0x30; l <= 0x39; l++) {
-                        if (fourthByteNode[l] === UNASSIGNED)
-                            fourthByteNode[l] = GB18030_CODE;
-                    }
-                }
-            }
-        }
-    }
-
-    this.defaultCharUnicode = iconv.defaultCharUnicode;
-
-    
-    // Encode tables: Unicode -> DBCS.
-
-    // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
-    // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
-    // Values: >=  0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
-    //         == UNASSIGNED -> no conversion found. Output a default char.
-    //         <= SEQ_START  -> it's an index in encodeTableSeq, see below. The character starts a sequence.
-    this.encodeTable = [];
-    
-    // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
-    // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
-    // means end of sequence (needed when one sequence is a strict subsequence of another).
-    // Objects are kept separately from encodeTable to increase performance.
-    this.encodeTableSeq = [];
-
-    // Some chars can be decoded, but need not be encoded.
-    var skipEncodeChars = {};
-    if (codecOptions.encodeSkipVals)
-        for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
-            var val = codecOptions.encodeSkipVals[i];
-            if (typeof val === 'number')
-                skipEncodeChars[val] = true;
-            else
-                for (var j = val.from; j <= val.to; j++)
-                    skipEncodeChars[j] = true;
-        }
-        
-    // Use decode trie to recursively fill out encode tables.
-    this._fillEncodeTable(0, 0, skipEncodeChars);
-
-    // Add more encoding pairs when needed.
-    if (codecOptions.encodeAdd) {
-        for (var uChar in codecOptions.encodeAdd)
-            if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
-                this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
-    }
-
-    this.defCharSB  = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
-    if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
-    if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
-}
-
-DBCSCodec.prototype.encoder = DBCSEncoder;
-DBCSCodec.prototype.decoder = DBCSDecoder;
-
-// Decoder helpers
-DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
-    var bytes = [];
-    for (; addr > 0; addr >>>= 8)
-        bytes.push(addr & 0xFF);
-    if (bytes.length == 0)
-        bytes.push(0);
-
-    var node = this.decodeTables[0];
-    for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
-        var val = node[bytes[i]];
-
-        if (val == UNASSIGNED) { // Create new node.
-            node[bytes[i]] = NODE_START - this.decodeTables.length;
-            this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
-        }
-        else if (val <= NODE_START) { // Existing node.
-            node = this.decodeTables[NODE_START - val];
-        }
-        else
-            throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
-    }
-    return node;
-}
-
-
-DBCSCodec.prototype._addDecodeChunk = function(chunk) {
-    // First element of chunk is the hex mbcs code where we start.
-    var curAddr = parseInt(chunk[0], 16);
-
-    // Choose the decoding node where we'll write our chars.
-    var writeTable = this._getDecodeTrieNode(curAddr);
-    curAddr = curAddr & 0xFF;
-
-    // Write all other elements of the chunk to the table.
-    for (var k = 1; k < chunk.length; k++) {
-        var part = chunk[k];
-        if (typeof part === "string") { // String, write as-is.
-            for (var l = 0; l < part.length;) {
-                var code = part.charCodeAt(l++);
-                if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
-                    var codeTrail = part.charCodeAt(l++);
-                    if (0xDC00 <= codeTrail && codeTrail < 0xE000)
-                        writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
-                    else
-                        throw new Error("Incorrect surrogate pair in "  + this.encodingName + " at chunk " + chunk[0]);
-                }
-                else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
-                    var len = 0xFFF - code + 2;
-                    var seq = [];
-                    for (var m = 0; m < len; m++)
-                        seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
-
-                    writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
-                    this.decodeTableSeq.push(seq);
-                }
-                else
-                    writeTable[curAddr++] = code; // Basic char
-            }
-        } 
-        else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
-            var charCode = writeTable[curAddr - 1] + 1;
-            for (var l = 0; l < part; l++)
-                writeTable[curAddr++] = charCode++;
-        }
-        else
-            throw new Error("Incorrect type '" + typeof part + "' given in "  + this.encodingName + " at chunk " + chunk[0]);
-    }
-    if (curAddr > 0xFF)
-        throw new Error("Incorrect chunk in "  + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
-}
-
-// Encoder helpers
-DBCSCodec.prototype._getEncodeBucket = function(uCode) {
-    var high = uCode >> 8; // This could be > 0xFF because of astral characters.
-    if (this.encodeTable[high] === undefined)
-        this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
-    return this.encodeTable[high];
-}
-
-DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
-    var bucket = this._getEncodeBucket(uCode);
-    var low = uCode & 0xFF;
-    if (bucket[low] <= SEQ_START)
-        this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
-    else if (bucket[low] == UNASSIGNED)
-        bucket[low] = dbcsCode;
-}
-
-DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
-    
-    // Get the root of character tree according to first character of the sequence.
-    var uCode = seq[0];
-    var bucket = this._getEncodeBucket(uCode);
-    var low = uCode & 0xFF;
-
-    var node;
-    if (bucket[low] <= SEQ_START) {
-        // There's already a sequence with  - use it.
-        node = this.encodeTableSeq[SEQ_START-bucket[low]];
-    }
-    else {
-        // There was no sequence object - allocate a new one.
-        node = {};
-        if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
-        bucket[low] = SEQ_START - this.encodeTableSeq.length;
-        this.encodeTableSeq.push(node);
-    }
-
-    // Traverse the character tree, allocating new nodes as needed.
-    for (var j = 1; j < seq.length-1; j++) {
-        var oldVal = node[uCode];
-        if (typeof oldVal === 'object')
-            node = oldVal;
-        else {
-            node = node[uCode] = {}
-            if (oldVal !== undefined)
-                node[DEF_CHAR] = oldVal
-        }
-    }
-
-    // Set the leaf to given dbcsCode.
-    uCode = seq[seq.length-1];
-    node[uCode] = dbcsCode;
-}
-
-DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
-    var node = this.decodeTables[nodeIdx];
-    var hasValues = false;
-    var subNodeEmpty = {};
-    for (var i = 0; i < 0x100; i++) {
-        var uCode = node[i];
-        var mbCode = prefix + i;
-        if (skipEncodeChars[mbCode])
-            continue;
-
-        if (uCode >= 0) {
-            this._setEncodeChar(uCode, mbCode);
-            hasValues = true;
-        } else if (uCode <= NODE_START) {
-            var subNodeIdx = NODE_START - uCode;
-            if (!subNodeEmpty[subNodeIdx]) {  // Skip empty subtrees (they are too large in gb18030).
-                var newPrefix = (mbCode << 8) >>> 0;  // NOTE: '>>> 0' keeps 32-bit num positive.
-                if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars))
-                    hasValues = true;
-                else
-                    subNodeEmpty[subNodeIdx] = true;
-            }
-        } else if (uCode <= SEQ_START) {
-            this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
-            hasValues = true;
-        }
-    }
-    return hasValues;
-}
-
-
-
-// == Encoder ==================================================================
-
-function DBCSEncoder(options, codec) {
-    // Encoder state
-    this.leadSurrogate = -1;
-    this.seqObj = undefined;
-    
-    // Static data
-    this.encodeTable = codec.encodeTable;
-    this.encodeTableSeq = codec.encodeTableSeq;
-    this.defaultCharSingleByte = codec.defCharSB;
-    this.gb18030 = codec.gb18030;
-}
-
-DBCSEncoder.prototype.write = function(str) {
-    var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),
-        leadSurrogate = this.leadSurrogate,
-        seqObj = this.seqObj, nextChar = -1,
-        i = 0, j = 0;
-
-    while (true) {
-        // 0. Get next character.
-        if (nextChar === -1) {
-            if (i == str.length) break;
-            var uCode = str.charCodeAt(i++);
-        }
-        else {
-            var uCode = nextChar;
-            nextChar = -1;    
-        }
-
-        // 1. Handle surrogates.
-        if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
-            if (uCode < 0xDC00) { // We've got lead surrogate.
-                if (leadSurrogate === -1) {
-                    leadSurrogate = uCode;
-                    continue;
-                } else {
-                    leadSurrogate = uCode;
-                    // Double lead surrogate found.
-                    uCode = UNASSIGNED;
-                }
-            } else { // We've got trail surrogate.
-                if (leadSurrogate !== -1) {
-                    uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
-                    leadSurrogate = -1;
-                } else {
-                    // Incomplete surrogate pair - only trail surrogate found.
-                    uCode = UNASSIGNED;
-                }
-                
-            }
-        }
-        else if (leadSurrogate !== -1) {
-            // Incomplete surrogate pair - only lead surrogate found.
-            nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
-            leadSurrogate = -1;
-        }
-
-        // 2. Convert uCode character.
-        var dbcsCode = UNASSIGNED;
-        if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
-            var resCode = seqObj[uCode];
-            if (typeof resCode === 'object') { // Sequence continues.
-                seqObj = resCode;
-                continue;
-
-            } else if (typeof resCode == 'number') { // Sequence finished. Write it.
-                dbcsCode = resCode;
-
-            } else if (resCode == undefined) { // Current character is not part of the sequence.
-
-                // Try default character for this sequence
-                resCode = seqObj[DEF_CHAR];
-                if (resCode !== undefined) {
-                    dbcsCode = resCode; // Found. Write it.
-                    nextChar = uCode; // Current character will be written too in the next iteration.
-
-                } else {
-                    // TODO: What if we have no default? (resCode == undefined)
-                    // Then, we should write first char of the sequence as-is and try the rest recursively.
-                    // Didn't do it for now because no encoding has this situation yet.
-                    // Currently, just skip the sequence and write current char.
-                }
-            }
-            seqObj = undefined;
-        }
-        else if (uCode >= 0) {  // Regular character
-            var subtable = this.encodeTable[uCode >> 8];
-            if (subtable !== undefined)
-                dbcsCode = subtable[uCode & 0xFF];
-            
-            if (dbcsCode <= SEQ_START) { // Sequence start
-                seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
-                continue;
-            }
-
-            if (dbcsCode == UNASSIGNED && this.gb18030) {
-                // Use GB18030 algorithm to find character(s) to write.
-                var idx = findIdx(this.gb18030.uChars, uCode);
-                if (idx != -1) {
-                    var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
-                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
-                    newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
-                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
-                    newBuf[j++] = 0x30 + dbcsCode;
-                    continue;
-                }
-            }
-        }
-
-        // 3. Write dbcsCode character.
-        if (dbcsCode === UNASSIGNED)
-            dbcsCode = this.defaultCharSingleByte;
-        
-        if (dbcsCode < 0x100) {
-            newBuf[j++] = dbcsCode;
-        }
-        else if (dbcsCode < 0x10000) {
-            newBuf[j++] = dbcsCode >> 8;   // high byte
-            newBuf[j++] = dbcsCode & 0xFF; // low byte
-        }
-        else if (dbcsCode < 0x1000000) {
-            newBuf[j++] = dbcsCode >> 16;
-            newBuf[j++] = (dbcsCode >> 8) & 0xFF;
-            newBuf[j++] = dbcsCode & 0xFF;
-        } else {
-            newBuf[j++] = dbcsCode >>> 24;
-            newBuf[j++] = (dbcsCode >>> 16) & 0xFF;
-            newBuf[j++] = (dbcsCode >>> 8) & 0xFF;
-            newBuf[j++] = dbcsCode & 0xFF;
-        }
-    }
-
-    this.seqObj = seqObj;
-    this.leadSurrogate = leadSurrogate;
-    return newBuf.slice(0, j);
-}
-
-DBCSEncoder.prototype.end = function() {
-    if (this.leadSurrogate === -1 && this.seqObj === undefined)
-        return; // All clean. Most often case.
-
-    var newBuf = Buffer.alloc(10), j = 0;
-
-    if (this.seqObj) { // We're in the sequence.
-        var dbcsCode = this.seqObj[DEF_CHAR];
-        if (dbcsCode !== undefined) { // Write beginning of the sequence.
-            if (dbcsCode < 0x100) {
-                newBuf[j++] = dbcsCode;
-            }
-            else {
-                newBuf[j++] = dbcsCode >> 8;   // high byte
-                newBuf[j++] = dbcsCode & 0xFF; // low byte
-            }
-        } else {
-            // See todo above.
-        }
-        this.seqObj = undefined;
-    }
-
-    if (this.leadSurrogate !== -1) {
-        // Incomplete surrogate pair - only lead surrogate found.
-        newBuf[j++] = this.defaultCharSingleByte;
-        this.leadSurrogate = -1;
-    }
-    
-    return newBuf.slice(0, j);
-}
-
-// Export for testing
-DBCSEncoder.prototype.findIdx = findIdx;
-
-
-// == Decoder ==================================================================
-
-function DBCSDecoder(options, codec) {
-    // Decoder state
-    this.nodeIdx = 0;
-    this.prevBytes = [];
-
-    // Static data
-    this.decodeTables = codec.decodeTables;
-    this.decodeTableSeq = codec.decodeTableSeq;
-    this.defaultCharUnicode = codec.defaultCharUnicode;
-    this.gb18030 = codec.gb18030;
-}
-
-DBCSDecoder.prototype.write = function(buf) {
-    var newBuf = Buffer.alloc(buf.length*2),
-        nodeIdx = this.nodeIdx, 
-        prevBytes = this.prevBytes, prevOffset = this.prevBytes.length,
-        seqStart = -this.prevBytes.length, // idx of the start of current parsed sequence.
-        uCode;
-
-    for (var i = 0, j = 0; i < buf.length; i++) {
-        var curByte = (i >= 0) ? buf[i] : prevBytes[i + prevOffset];
-
-        // Lookup in current trie node.
-        var uCode = this.decodeTables[nodeIdx][curByte];
-
-        if (uCode >= 0) { 
-            // Normal character, just use it.
-        }
-        else if (uCode === UNASSIGNED) { // Unknown char.
-            // TODO: Callback with seq.
-            uCode = this.defaultCharUnicode.charCodeAt(0);
-            i = seqStart; // Skip one byte ('i' will be incremented by the for loop) and try to parse again.
-        }
-        else if (uCode === GB18030_CODE) {
-            if (i >= 3) {
-                var ptr = (buf[i-3]-0x81)*12600 + (buf[i-2]-0x30)*1260 + (buf[i-1]-0x81)*10 + (curByte-0x30);
-            } else {
-                var ptr = (prevBytes[i-3+prevOffset]-0x81)*12600 + 
-                          (((i-2 >= 0) ? buf[i-2] : prevBytes[i-2+prevOffset])-0x30)*1260 + 
-                          (((i-1 >= 0) ? buf[i-1] : prevBytes[i-1+prevOffset])-0x81)*10 + 
-                          (curByte-0x30);
-            }
-            var idx = findIdx(this.gb18030.gbChars, ptr);
-            uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
-        }
-        else if (uCode <= NODE_START) { // Go to next trie node.
-            nodeIdx = NODE_START - uCode;
-            continue;
-        }
-        else if (uCode <= SEQ_START) { // Output a sequence of chars.
-            var seq = this.decodeTableSeq[SEQ_START - uCode];
-            for (var k = 0; k < seq.length - 1; k++) {
-                uCode = seq[k];
-                newBuf[j++] = uCode & 0xFF;
-                newBuf[j++] = uCode >> 8;
-            }
-            uCode = seq[seq.length-1];
-        }
-        else
-            throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
-
-        // Write the character to buffer, handling higher planes using surrogate pair.
-        if (uCode >= 0x10000) { 
-            uCode -= 0x10000;
-            var uCodeLead = 0xD800 | (uCode >> 10);
-            newBuf[j++] = uCodeLead & 0xFF;
-            newBuf[j++] = uCodeLead >> 8;
-
-            uCode = 0xDC00 | (uCode & 0x3FF);
-        }
-        newBuf[j++] = uCode & 0xFF;
-        newBuf[j++] = uCode >> 8;
-
-        // Reset trie node.
-        nodeIdx = 0; seqStart = i+1;
-    }
-
-    this.nodeIdx = nodeIdx;
-    this.prevBytes = (seqStart >= 0)
-        ? Array.prototype.slice.call(buf, seqStart)
-        : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
-
-    return newBuf.slice(0, j).toString('ucs2');
-}
-
-DBCSDecoder.prototype.end = function() {
-    var ret = '';
-
-    // Try to parse all remaining chars.
-    while (this.prevBytes.length > 0) {
-        // Skip 1 character in the buffer.
-        ret += this.defaultCharUnicode;
-        var bytesArr = this.prevBytes.slice(1);
-
-        // Parse remaining as usual.
-        this.prevBytes = [];
-        this.nodeIdx = 0;
-        if (bytesArr.length > 0)
-            ret += this.write(bytesArr);
-    }
-
-    this.prevBytes = [];
-    this.nodeIdx = 0;
-    return ret;
-}
-
-// Binary search for GB18030. Returns largest i such that table[i] <= val.
-function findIdx(table, val) {
-    if (table[0] > val)
-        return -1;
-
-    var l = 0, r = table.length;
-    while (l < r-1) { // always table[l] <= val < table[r]
-        var mid = l + ((r-l+1) >> 1);
-        if (table[mid] <= val)
-            l = mid;
-        else
-            r = mid;
-    }
-    return l;
-}
-
Index: de_modules/iconv-lite/encodings/dbcs-data.js
===================================================================
--- node_modules/iconv-lite/encodings/dbcs-data.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,188 +1,0 @@
-"use strict";
-
-// Description of supported double byte encodings and aliases.
-// Tables are not require()-d until they are needed to speed up library load.
-// require()-s are direct to support Browserify.
-
-module.exports = {
-    
-    // == Japanese/ShiftJIS ====================================================
-    // All japanese encodings are based on JIS X set of standards:
-    // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
-    // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. 
-    //              Has several variations in 1978, 1983, 1990 and 1997.
-    // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
-    // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
-    //              2 planes, first is superset of 0208, second - revised 0212.
-    //              Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
-
-    // Byte encodings are:
-    //  * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
-    //               encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
-    //               Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
-    //  * EUC-JP:    Up to 3 bytes per character. Used mostly on *nixes.
-    //               0x00-0x7F       - lower part of 0201
-    //               0x8E, 0xA1-0xDF - upper part of 0201
-    //               (0xA1-0xFE)x2   - 0208 plane (94x94).
-    //               0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
-    //  * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
-    //               Used as-is in ISO2022 family.
-    //  * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, 
-    //                0201-1976 Roman, 0208-1978, 0208-1983.
-    //  * ISO2022-JP-1: Adds esc seq for 0212-1990.
-    //  * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
-    //  * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
-    //  * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
-    //
-    // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
-    //
-    // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
-
-    'shiftjis': {
-        type: '_dbcs',
-        table: function() { return require('./tables/shiftjis.json') },
-        encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
-        encodeSkipVals: [{from: 0xED40, to: 0xF940}],
-    },
-    'csshiftjis': 'shiftjis',
-    'mskanji': 'shiftjis',
-    'sjis': 'shiftjis',
-    'windows31j': 'shiftjis',
-    'ms31j': 'shiftjis',
-    'xsjis': 'shiftjis',
-    'windows932': 'shiftjis',
-    'ms932': 'shiftjis',
-    '932': 'shiftjis',
-    'cp932': 'shiftjis',
-
-    'eucjp': {
-        type: '_dbcs',
-        table: function() { return require('./tables/eucjp.json') },
-        encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
-    },
-
-    // TODO: KDDI extension to Shift_JIS
-    // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
-    // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
-
-
-    // == Chinese/GBK ==========================================================
-    // http://en.wikipedia.org/wiki/GBK
-    // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
-
-    // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
-    'gb2312': 'cp936',
-    'gb231280': 'cp936',
-    'gb23121980': 'cp936',
-    'csgb2312': 'cp936',
-    'csiso58gb231280': 'cp936',
-    'euccn': 'cp936',
-
-    // Microsoft's CP936 is a subset and approximation of GBK.
-    'windows936': 'cp936',
-    'ms936': 'cp936',
-    '936': 'cp936',
-    'cp936': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp936.json') },
-    },
-
-    // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
-    'gbk': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },
-    },
-    'xgbk': 'gbk',
-    'isoir58': 'gbk',
-
-    // GB18030 is an algorithmic extension of GBK.
-    // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
-    // http://icu-project.org/docs/papers/gb18030.html
-    // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
-    // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
-    'gb18030': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },
-        gb18030: function() { return require('./tables/gb18030-ranges.json') },
-        encodeSkipVals: [0x80],
-        encodeAdd: {'€': 0xA2E3},
-    },
-
-    'chinese': 'gb18030',
-
-
-    // == Korean ===============================================================
-    // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
-    'windows949': 'cp949',
-    'ms949': 'cp949',
-    '949': 'cp949',
-    'cp949': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp949.json') },
-    },
-
-    'cseuckr': 'cp949',
-    'csksc56011987': 'cp949',
-    'euckr': 'cp949',
-    'isoir149': 'cp949',
-    'korean': 'cp949',
-    'ksc56011987': 'cp949',
-    'ksc56011989': 'cp949',
-    'ksc5601': 'cp949',
-
-
-    // == Big5/Taiwan/Hong Kong ================================================
-    // There are lots of tables for Big5 and cp950. Please see the following links for history:
-    // http://moztw.org/docs/big5/  http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
-    // Variations, in roughly number of defined chars:
-    //  * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
-    //  * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
-    //  * Big5-2003 (Taiwan standard) almost superset of cp950.
-    //  * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
-    //  * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. 
-    //    many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
-    //    Plus, it has 4 combining sequences.
-    //    Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
-    //    because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
-    //    Implementations are not consistent within browsers; sometimes labeled as just big5.
-    //    MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
-    //    Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
-    //    In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
-    //    Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
-    //                   http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
-    // 
-    // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
-    // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
-
-    'windows950': 'cp950',
-    'ms950': 'cp950',
-    '950': 'cp950',
-    'cp950': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp950.json') },
-    },
-
-    // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
-    'big5': 'big5hkscs',
-    'big5hkscs': {
-        type: '_dbcs',
-        table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) },
-        encodeSkipVals: [
-            // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
-            // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
-            // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
-            0x8e69, 0x8e6f, 0x8e7e, 0x8eab, 0x8eb4, 0x8ecd, 0x8ed0, 0x8f57, 0x8f69, 0x8f6e, 0x8fcb, 0x8ffe,
-            0x906d, 0x907a, 0x90c4, 0x90dc, 0x90f1, 0x91bf, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92d1, 0x9447, 0x94ca,
-            0x95d9, 0x96fc, 0x9975, 0x9b76, 0x9b78, 0x9b7b, 0x9bc6, 0x9bde, 0x9bec, 0x9bf6, 0x9c42, 0x9c53, 0x9c62,
-            0x9c68, 0x9c6b, 0x9c77, 0x9cbc, 0x9cbd, 0x9cd0, 0x9d57, 0x9d5a, 0x9dc4, 0x9def, 0x9dfb, 0x9ea9, 0x9eef,
-            0x9efd, 0x9f60, 0x9fcb, 0xa077, 0xa0dc, 0xa0df, 0x8fcc, 0x92c8, 0x9644, 0x96ed,
-
-            // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
-            0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa2cc, 0xa2ce,
-        ],
-    },
-
-    'cnbig5': 'big5hkscs',
-    'csbig5': 'big5hkscs',
-    'xxbig5': 'big5hkscs',
-};
Index: de_modules/iconv-lite/encodings/index.js
===================================================================
--- node_modules/iconv-lite/encodings/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-// Update this array if you add/rename/remove files in this directory.
-// We support Browserify by skipping automatic module discovery and requiring modules directly.
-var modules = [
-    require("./internal"),
-    require("./utf32"),
-    require("./utf16"),
-    require("./utf7"),
-    require("./sbcs-codec"),
-    require("./sbcs-data"),
-    require("./sbcs-data-generated"),
-    require("./dbcs-codec"),
-    require("./dbcs-data"),
-];
-
-// Put all encoding/alias/codec definitions to single object and export it.
-for (var i = 0; i < modules.length; i++) {
-    var module = modules[i];
-    for (var enc in module)
-        if (Object.prototype.hasOwnProperty.call(module, enc))
-            exports[enc] = module[enc];
-}
Index: de_modules/iconv-lite/encodings/internal.js
===================================================================
--- node_modules/iconv-lite/encodings/internal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,198 +1,0 @@
-"use strict";
-var Buffer = require("safer-buffer").Buffer;
-
-// Export Node.js internal encodings.
-
-module.exports = {
-    // Encodings
-    utf8:   { type: "_internal", bomAware: true},
-    cesu8:  { type: "_internal", bomAware: true},
-    unicode11utf8: "utf8",
-
-    ucs2:   { type: "_internal", bomAware: true},
-    utf16le: "ucs2",
-
-    binary: { type: "_internal" },
-    base64: { type: "_internal" },
-    hex:    { type: "_internal" },
-
-    // Codec.
-    _internal: InternalCodec,
-};
-
-//------------------------------------------------------------------------------
-
-function InternalCodec(codecOptions, iconv) {
-    this.enc = codecOptions.encodingName;
-    this.bomAware = codecOptions.bomAware;
-
-    if (this.enc === "base64")
-        this.encoder = InternalEncoderBase64;
-    else if (this.enc === "cesu8") {
-        this.enc = "utf8"; // Use utf8 for decoding.
-        this.encoder = InternalEncoderCesu8;
-
-        // Add decoder for versions of Node not supporting CESU-8
-        if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {
-            this.decoder = InternalDecoderCesu8;
-            this.defaultCharUnicode = iconv.defaultCharUnicode;
-        }
-    }
-}
-
-InternalCodec.prototype.encoder = InternalEncoder;
-InternalCodec.prototype.decoder = InternalDecoder;
-
-//------------------------------------------------------------------------------
-
-// We use node.js internal decoder. Its signature is the same as ours.
-var StringDecoder = require('string_decoder').StringDecoder;
-
-if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
-    StringDecoder.prototype.end = function() {};
-
-
-function InternalDecoder(options, codec) {
-    this.decoder = new StringDecoder(codec.enc);
-}
-
-InternalDecoder.prototype.write = function(buf) {
-    if (!Buffer.isBuffer(buf)) {
-        buf = Buffer.from(buf);
-    }
-
-    return this.decoder.write(buf);
-}
-
-InternalDecoder.prototype.end = function() {
-    return this.decoder.end();
-}
-
-
-//------------------------------------------------------------------------------
-// Encoder is mostly trivial
-
-function InternalEncoder(options, codec) {
-    this.enc = codec.enc;
-}
-
-InternalEncoder.prototype.write = function(str) {
-    return Buffer.from(str, this.enc);
-}
-
-InternalEncoder.prototype.end = function() {
-}
-
-
-//------------------------------------------------------------------------------
-// Except base64 encoder, which must keep its state.
-
-function InternalEncoderBase64(options, codec) {
-    this.prevStr = '';
-}
-
-InternalEncoderBase64.prototype.write = function(str) {
-    str = this.prevStr + str;
-    var completeQuads = str.length - (str.length % 4);
-    this.prevStr = str.slice(completeQuads);
-    str = str.slice(0, completeQuads);
-
-    return Buffer.from(str, "base64");
-}
-
-InternalEncoderBase64.prototype.end = function() {
-    return Buffer.from(this.prevStr, "base64");
-}
-
-
-//------------------------------------------------------------------------------
-// CESU-8 encoder is also special.
-
-function InternalEncoderCesu8(options, codec) {
-}
-
-InternalEncoderCesu8.prototype.write = function(str) {
-    var buf = Buffer.alloc(str.length * 3), bufIdx = 0;
-    for (var i = 0; i < str.length; i++) {
-        var charCode = str.charCodeAt(i);
-        // Naive implementation, but it works because CESU-8 is especially easy
-        // to convert from UTF-16 (which all JS strings are encoded in).
-        if (charCode < 0x80)
-            buf[bufIdx++] = charCode;
-        else if (charCode < 0x800) {
-            buf[bufIdx++] = 0xC0 + (charCode >>> 6);
-            buf[bufIdx++] = 0x80 + (charCode & 0x3f);
-        }
-        else { // charCode will always be < 0x10000 in javascript.
-            buf[bufIdx++] = 0xE0 + (charCode >>> 12);
-            buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
-            buf[bufIdx++] = 0x80 + (charCode & 0x3f);
-        }
-    }
-    return buf.slice(0, bufIdx);
-}
-
-InternalEncoderCesu8.prototype.end = function() {
-}
-
-//------------------------------------------------------------------------------
-// CESU-8 decoder is not implemented in Node v4.0+
-
-function InternalDecoderCesu8(options, codec) {
-    this.acc = 0;
-    this.contBytes = 0;
-    this.accBytes = 0;
-    this.defaultCharUnicode = codec.defaultCharUnicode;
-}
-
-InternalDecoderCesu8.prototype.write = function(buf) {
-    var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, 
-        res = '';
-    for (var i = 0; i < buf.length; i++) {
-        var curByte = buf[i];
-        if ((curByte & 0xC0) !== 0x80) { // Leading byte
-            if (contBytes > 0) { // Previous code is invalid
-                res += this.defaultCharUnicode;
-                contBytes = 0;
-            }
-
-            if (curByte < 0x80) { // Single-byte code
-                res += String.fromCharCode(curByte);
-            } else if (curByte < 0xE0) { // Two-byte code
-                acc = curByte & 0x1F;
-                contBytes = 1; accBytes = 1;
-            } else if (curByte < 0xF0) { // Three-byte code
-                acc = curByte & 0x0F;
-                contBytes = 2; accBytes = 1;
-            } else { // Four or more are not supported for CESU-8.
-                res += this.defaultCharUnicode;
-            }
-        } else { // Continuation byte
-            if (contBytes > 0) { // We're waiting for it.
-                acc = (acc << 6) | (curByte & 0x3f);
-                contBytes--; accBytes++;
-                if (contBytes === 0) {
-                    // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
-                    if (accBytes === 2 && acc < 0x80 && acc > 0)
-                        res += this.defaultCharUnicode;
-                    else if (accBytes === 3 && acc < 0x800)
-                        res += this.defaultCharUnicode;
-                    else
-                        // Actually add character.
-                        res += String.fromCharCode(acc);
-                }
-            } else { // Unexpected continuation byte
-                res += this.defaultCharUnicode;
-            }
-        }
-    }
-    this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
-    return res;
-}
-
-InternalDecoderCesu8.prototype.end = function() {
-    var res = 0;
-    if (this.contBytes > 0)
-        res += this.defaultCharUnicode;
-    return res;
-}
Index: de_modules/iconv-lite/encodings/sbcs-codec.js
===================================================================
--- node_modules/iconv-lite/encodings/sbcs-codec.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-"use strict";
-var Buffer = require("safer-buffer").Buffer;
-
-// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
-// correspond to encoded bytes (if 128 - then lower half is ASCII). 
-
-exports._sbcs = SBCSCodec;
-function SBCSCodec(codecOptions, iconv) {
-    if (!codecOptions)
-        throw new Error("SBCS codec is called without the data.")
-    
-    // Prepare char buffer for decoding.
-    if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
-        throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
-    
-    if (codecOptions.chars.length === 128) {
-        var asciiString = "";
-        for (var i = 0; i < 128; i++)
-            asciiString += String.fromCharCode(i);
-        codecOptions.chars = asciiString + codecOptions.chars;
-    }
-
-    this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');
-    
-    // Encoding buffer.
-    var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
-
-    for (var i = 0; i < codecOptions.chars.length; i++)
-        encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
-
-    this.encodeBuf = encodeBuf;
-}
-
-SBCSCodec.prototype.encoder = SBCSEncoder;
-SBCSCodec.prototype.decoder = SBCSDecoder;
-
-
-function SBCSEncoder(options, codec) {
-    this.encodeBuf = codec.encodeBuf;
-}
-
-SBCSEncoder.prototype.write = function(str) {
-    var buf = Buffer.alloc(str.length);
-    for (var i = 0; i < str.length; i++)
-        buf[i] = this.encodeBuf[str.charCodeAt(i)];
-    
-    return buf;
-}
-
-SBCSEncoder.prototype.end = function() {
-}
-
-
-function SBCSDecoder(options, codec) {
-    this.decodeBuf = codec.decodeBuf;
-}
-
-SBCSDecoder.prototype.write = function(buf) {
-    // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
-    var decodeBuf = this.decodeBuf;
-    var newBuf = Buffer.alloc(buf.length*2);
-    var idx1 = 0, idx2 = 0;
-    for (var i = 0; i < buf.length; i++) {
-        idx1 = buf[i]*2; idx2 = i*2;
-        newBuf[idx2] = decodeBuf[idx1];
-        newBuf[idx2+1] = decodeBuf[idx1+1];
-    }
-    return newBuf.toString('ucs2');
-}
-
-SBCSDecoder.prototype.end = function() {
-}
Index: de_modules/iconv-lite/encodings/sbcs-data-generated.js
===================================================================
--- node_modules/iconv-lite/encodings/sbcs-data-generated.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,473 +1,0 @@
-"use strict";
-
-// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.
-module.exports = {
-  "437": "cp437",
-  "737": "cp737",
-  "775": "cp775",
-  "850": "cp850",
-  "852": "cp852",
-  "855": "cp855",
-  "856": "cp856",
-  "857": "cp857",
-  "858": "cp858",
-  "860": "cp860",
-  "861": "cp861",
-  "862": "cp862",
-  "863": "cp863",
-  "864": "cp864",
-  "865": "cp865",
-  "866": "cp866",
-  "869": "cp869",
-  "874": "windows874",
-  "922": "cp922",
-  "1046": "cp1046",
-  "1124": "cp1124",
-  "1125": "cp1125",
-  "1129": "cp1129",
-  "1133": "cp1133",
-  "1161": "cp1161",
-  "1162": "cp1162",
-  "1163": "cp1163",
-  "1250": "windows1250",
-  "1251": "windows1251",
-  "1252": "windows1252",
-  "1253": "windows1253",
-  "1254": "windows1254",
-  "1255": "windows1255",
-  "1256": "windows1256",
-  "1257": "windows1257",
-  "1258": "windows1258",
-  "28591": "iso88591",
-  "28592": "iso88592",
-  "28593": "iso88593",
-  "28594": "iso88594",
-  "28595": "iso88595",
-  "28596": "iso88596",
-  "28597": "iso88597",
-  "28598": "iso88598",
-  "28599": "iso88599",
-  "28600": "iso885910",
-  "28601": "iso885911",
-  "28603": "iso885913",
-  "28604": "iso885914",
-  "28605": "iso885915",
-  "28606": "iso885916",
-  "windows874": {
-    "type": "_sbcs",
-    "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
-  },
-  "win874": "windows874",
-  "cp874": "windows874",
-  "windows1250": {
-    "type": "_sbcs",
-    "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
-  },
-  "win1250": "windows1250",
-  "cp1250": "windows1250",
-  "windows1251": {
-    "type": "_sbcs",
-    "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
-  },
-  "win1251": "windows1251",
-  "cp1251": "windows1251",
-  "windows1252": {
-    "type": "_sbcs",
-    "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  },
-  "win1252": "windows1252",
-  "cp1252": "windows1252",
-  "windows1253": {
-    "type": "_sbcs",
-    "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
-  },
-  "win1253": "windows1253",
-  "cp1253": "windows1253",
-  "windows1254": {
-    "type": "_sbcs",
-    "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
-  },
-  "win1254": "windows1254",
-  "cp1254": "windows1254",
-  "windows1255": {
-    "type": "_sbcs",
-    "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
-  },
-  "win1255": "windows1255",
-  "cp1255": "windows1255",
-  "windows1256": {
-    "type": "_sbcs",
-    "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"
-  },
-  "win1256": "windows1256",
-  "cp1256": "windows1256",
-  "windows1257": {
-    "type": "_sbcs",
-    "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
-  },
-  "win1257": "windows1257",
-  "cp1257": "windows1257",
-  "windows1258": {
-    "type": "_sbcs",
-    "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
-  },
-  "win1258": "windows1258",
-  "cp1258": "windows1258",
-  "iso88591": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  },
-  "cp28591": "iso88591",
-  "iso88592": {
-    "type": "_sbcs",
-    "chars": "
- Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
-  },
-  "cp28592": "iso88592",
-  "iso88593": {
-    "type": "_sbcs",
-    "chars": "
- Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"
-  },
-  "cp28593": "iso88593",
-  "iso88594": {
-    "type": "_sbcs",
-    "chars": "
- ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"
-  },
-  "cp28594": "iso88594",
-  "iso88595": {
-    "type": "_sbcs",
-    "chars": "
- ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"
-  },
-  "cp28595": "iso88595",
-  "iso88596": {
-    "type": "_sbcs",
-    "chars": "
- ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"
-  },
-  "cp28596": "iso88596",
-  "iso88597": {
-    "type": "_sbcs",
-    "chars": "
- ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
-  },
-  "cp28597": "iso88597",
-  "iso88598": {
-    "type": "_sbcs",
-    "chars": "
- �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
-  },
-  "cp28598": "iso88598",
-  "iso88599": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
-  },
-  "cp28599": "iso88599",
-  "iso885910": {
-    "type": "_sbcs",
-    "chars": "
- ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"
-  },
-  "cp28600": "iso885910",
-  "iso885911": {
-    "type": "_sbcs",
-    "chars": "
- กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
-  },
-  "cp28601": "iso885911",
-  "iso885913": {
-    "type": "_sbcs",
-    "chars": "
- ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"
-  },
-  "cp28603": "iso885913",
-  "iso885914": {
-    "type": "_sbcs",
-    "chars": "
- Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"
-  },
-  "cp28604": "iso885914",
-  "iso885915": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  },
-  "cp28605": "iso885915",
-  "iso885916": {
-    "type": "_sbcs",
-    "chars": "
- ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"
-  },
-  "cp28606": "iso885916",
-  "cp437": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm437": "cp437",
-  "csibm437": "cp437",
-  "cp737": {
-    "type": "_sbcs",
-    "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
-  },
-  "ibm737": "cp737",
-  "csibm737": "cp737",
-  "cp775": {
-    "type": "_sbcs",
-    "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "
-  },
-  "ibm775": "cp775",
-  "csibm775": "cp775",
-  "cp850": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "
-  },
-  "ibm850": "cp850",
-  "csibm850": "cp850",
-  "cp852": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "
-  },
-  "ibm852": "cp852",
-  "csibm852": "cp852",
-  "cp855": {
-    "type": "_sbcs",
-    "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "
-  },
-  "ibm855": "cp855",
-  "csibm855": "cp855",
-  "cp856": {
-    "type": "_sbcs",
-    "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "
-  },
-  "ibm856": "cp856",
-  "csibm856": "cp856",
-  "cp857": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "
-  },
-  "ibm857": "cp857",
-  "csibm857": "cp857",
-  "cp858": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "
-  },
-  "ibm858": "cp858",
-  "csibm858": "cp858",
-  "cp860": {
-    "type": "_sbcs",
-    "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñÑªº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm860": "cp860",
-  "csibm860": "cp860",
-  "cp861": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm861": "cp861",
-  "csibm861": "cp861",
-  "cp862": {
-    "type": "_sbcs",
-    "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm862": "cp862",
-  "csibm862": "cp862",
-  "cp863": {
-    "type": "_sbcs",
-    "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm863": "cp863",
-  "csibm863": "cp863",
-  "cp864": {
-    "type": "_sbcs",
-    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"
-  },
-  "ibm864": "cp864",
-  "csibm864": "cp864",
-  "cp865": {
-    "type": "_sbcs",
-    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-  },
-  "ibm865": "cp865",
-  "csibm865": "cp865",
-  "cp866": {
-    "type": "_sbcs",
-    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
-  },
-  "ibm866": "cp866",
-  "csibm866": "cp866",
-  "cp869": {
-    "type": "_sbcs",
-    "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "
-  },
-  "ibm869": "cp869",
-  "csibm869": "cp869",
-  "cp922": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"
-  },
-  "ibm922": "cp922",
-  "csibm922": "cp922",
-  "cp1046": {
-    "type": "_sbcs",
-    "chars": "ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"
-  },
-  "ibm1046": "cp1046",
-  "csibm1046": "cp1046",
-  "cp1124": {
-    "type": "_sbcs",
-    "chars": "
- ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"
-  },
-  "ibm1124": "cp1124",
-  "csibm1124": "cp1124",
-  "cp1125": {
-    "type": "_sbcs",
-    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "
-  },
-  "ibm1125": "cp1125",
-  "csibm1125": "cp1125",
-  "cp1129": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
-  },
-  "ibm1129": "cp1129",
-  "csibm1129": "cp1129",
-  "cp1133": {
-    "type": "_sbcs",
-    "chars": "
- ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"
-  },
-  "ibm1133": "cp1133",
-  "csibm1133": "cp1133",
-  "cp1161": {
-    "type": "_sbcs",
-    "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "
-  },
-  "ibm1161": "cp1161",
-  "csibm1161": "cp1161",
-  "cp1162": {
-    "type": "_sbcs",
-    "chars": "€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
-  },
-  "ibm1162": "cp1162",
-  "csibm1162": "cp1162",
-  "cp1163": {
-    "type": "_sbcs",
-    "chars": "
- ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
-  },
-  "ibm1163": "cp1163",
-  "csibm1163": "cp1163",
-  "maccroatian": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"
-  },
-  "maccyrillic": {
-    "type": "_sbcs",
-    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
-  },
-  "macgreek": {
-    "type": "_sbcs",
-    "chars": "Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
-  },
-  "maciceland": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
-  },
-  "macroman": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
-  },
-  "macromania": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
-  },
-  "macthai": {
-    "type": "_sbcs",
-    "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู﻿​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"
-  },
-  "macturkish": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
-  },
-  "macukraine": {
-    "type": "_sbcs",
-    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
-  },
-  "koi8r": {
-    "type": "_sbcs",
-    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
-  },
-  "koi8u": {
-    "type": "_sbcs",
-    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
-  },
-  "koi8ru": {
-    "type": "_sbcs",
-    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
-  },
-  "koi8t": {
-    "type": "_sbcs",
-    "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
-  },
-  "armscii8": {
-    "type": "_sbcs",
-    "chars": "
- �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"
-  },
-  "rk1048": {
-    "type": "_sbcs",
-    "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
-  },
-  "tcvn": {
-    "type": "_sbcs",
-    "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"
-  },
-  "georgianacademy": {
-    "type": "_sbcs",
-    "chars": "‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  },
-  "georgianps": {
-    "type": "_sbcs",
-    "chars": "‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  },
-  "pt154": {
-    "type": "_sbcs",
-    "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
-  },
-  "viscii": {
-    "type": "_sbcs",
-    "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"
-  },
-  "iso646cn": {
-    "type": "_sbcs",
-    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
-  },
-  "iso646jp": {
-    "type": "_sbcs",
-    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
-  },
-  "hproman8": {
-    "type": "_sbcs",
-    "chars": "
- ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"
-  },
-  "macintosh": {
-    "type": "_sbcs",
-    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
-  },
-  "ascii": {
-    "type": "_sbcs",
-    "chars": "��������������������������������������������������������������������������������������������������������������������������������"
-  },
-  "tis620": {
-    "type": "_sbcs",
-    "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
-  }
-}
Index: de_modules/iconv-lite/encodings/sbcs-data.js
===================================================================
--- node_modules/iconv-lite/encodings/sbcs-data.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,179 +1,0 @@
-"use strict";
-
-// Manually added data to be used by sbcs codec in addition to generated one.
-
-module.exports = {
-    // Not supported by iconv, not sure why.
-    "10029": "maccenteuro",
-    "maccenteuro": {
-        "type": "_sbcs",
-        "chars": "ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"
-    },
-
-    "808": "cp808",
-    "ibm808": "cp808",
-    "cp808": {
-        "type": "_sbcs",
-        "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "
-    },
-
-    "mik": {
-        "type": "_sbcs",
-        "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
-    },
-
-    "cp720": {
-        "type": "_sbcs",
-        "chars": "\x80\x81éâ\x84à\x86çêëèïî\x8d\x8e\x8f\x90\u0651\u0652ô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡\u064b\u064c\u064d\u064e\u064f\u0650≈°∙·√ⁿ²■\u00a0"
-    },
-
-    // Aliases of generated encodings.
-    "ascii8bit": "ascii",
-    "usascii": "ascii",
-    "ansix34": "ascii",
-    "ansix341968": "ascii",
-    "ansix341986": "ascii",
-    "csascii": "ascii",
-    "cp367": "ascii",
-    "ibm367": "ascii",
-    "isoir6": "ascii",
-    "iso646us": "ascii",
-    "iso646irv": "ascii",
-    "us": "ascii",
-
-    "latin1": "iso88591",
-    "latin2": "iso88592",
-    "latin3": "iso88593",
-    "latin4": "iso88594",
-    "latin5": "iso88599",
-    "latin6": "iso885910",
-    "latin7": "iso885913",
-    "latin8": "iso885914",
-    "latin9": "iso885915",
-    "latin10": "iso885916",
-
-    "csisolatin1": "iso88591",
-    "csisolatin2": "iso88592",
-    "csisolatin3": "iso88593",
-    "csisolatin4": "iso88594",
-    "csisolatincyrillic": "iso88595",
-    "csisolatinarabic": "iso88596",
-    "csisolatingreek" : "iso88597",
-    "csisolatinhebrew": "iso88598",
-    "csisolatin5": "iso88599",
-    "csisolatin6": "iso885910",
-
-    "l1": "iso88591",
-    "l2": "iso88592",
-    "l3": "iso88593",
-    "l4": "iso88594",
-    "l5": "iso88599",
-    "l6": "iso885910",
-    "l7": "iso885913",
-    "l8": "iso885914",
-    "l9": "iso885915",
-    "l10": "iso885916",
-
-    "isoir14": "iso646jp",
-    "isoir57": "iso646cn",
-    "isoir100": "iso88591",
-    "isoir101": "iso88592",
-    "isoir109": "iso88593",
-    "isoir110": "iso88594",
-    "isoir144": "iso88595",
-    "isoir127": "iso88596",
-    "isoir126": "iso88597",
-    "isoir138": "iso88598",
-    "isoir148": "iso88599",
-    "isoir157": "iso885910",
-    "isoir166": "tis620",
-    "isoir179": "iso885913",
-    "isoir199": "iso885914",
-    "isoir203": "iso885915",
-    "isoir226": "iso885916",
-
-    "cp819": "iso88591",
-    "ibm819": "iso88591",
-
-    "cyrillic": "iso88595",
-
-    "arabic": "iso88596",
-    "arabic8": "iso88596",
-    "ecma114": "iso88596",
-    "asmo708": "iso88596",
-
-    "greek" : "iso88597",
-    "greek8" : "iso88597",
-    "ecma118" : "iso88597",
-    "elot928" : "iso88597",
-
-    "hebrew": "iso88598",
-    "hebrew8": "iso88598",
-
-    "turkish": "iso88599",
-    "turkish8": "iso88599",
-
-    "thai": "iso885911",
-    "thai8": "iso885911",
-
-    "celtic": "iso885914",
-    "celtic8": "iso885914",
-    "isoceltic": "iso885914",
-
-    "tis6200": "tis620",
-    "tis62025291": "tis620",
-    "tis62025330": "tis620",
-
-    "10000": "macroman",
-    "10006": "macgreek",
-    "10007": "maccyrillic",
-    "10079": "maciceland",
-    "10081": "macturkish",
-
-    "cspc8codepage437": "cp437",
-    "cspc775baltic": "cp775",
-    "cspc850multilingual": "cp850",
-    "cspcp852": "cp852",
-    "cspc862latinhebrew": "cp862",
-    "cpgr": "cp869",
-
-    "msee": "cp1250",
-    "mscyrl": "cp1251",
-    "msansi": "cp1252",
-    "msgreek": "cp1253",
-    "msturk": "cp1254",
-    "mshebr": "cp1255",
-    "msarab": "cp1256",
-    "winbaltrim": "cp1257",
-
-    "cp20866": "koi8r",
-    "20866": "koi8r",
-    "ibm878": "koi8r",
-    "cskoi8r": "koi8r",
-
-    "cp21866": "koi8u",
-    "21866": "koi8u",
-    "ibm1168": "koi8u",
-
-    "strk10482002": "rk1048",
-
-    "tcvn5712": "tcvn",
-    "tcvn57121": "tcvn",
-
-    "gb198880": "iso646cn",
-    "cn": "iso646cn",
-
-    "csiso14jisc6220ro": "iso646jp",
-    "jisc62201969ro": "iso646jp",
-    "jp": "iso646jp",
-
-    "cshproman8": "hproman8",
-    "r8": "hproman8",
-    "roman8": "hproman8",
-    "xroman8": "hproman8",
-    "ibm1051": "hproman8",
-
-    "mac": "macintosh",
-    "csmacintosh": "macintosh",
-};
-
Index: de_modules/iconv-lite/encodings/tables/big5-added.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/big5-added.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-[
-["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],
-["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],
-["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],
-["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],
-["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],
-["8940","𪎩𡅅"],
-["8943","攊"],
-["8946","丽滝鵎釟"],
-["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],
-["89a1","琑糼緍楆竉刧"],
-["89ab","醌碸酞肼"],
-["89b0","贋胶𠧧"],
-["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],
-["89c1","溚舾甙"],
-["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],
-["8a40","𧶄唥"],
-["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],
-["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],
-["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],
-["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],
-["8aac","䠋𠆩㿺塳𢶍"],
-["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],
-["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],
-["8ac9","𪘁𠸉𢫏𢳉"],
-["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],
-["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],
-["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],
-["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],
-["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],
-["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],
-["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],
-["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],
-["8ca1","𣏹椙橃𣱣泿"],
-["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],
-["8cc9","顨杫䉶圽"],
-["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],
-["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],
-["8d40","𠮟"],
-["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],
-["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],
-["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],
-["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],
-["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],
-["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],
-["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],
-["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],
-["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],
-["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],
-["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],
-["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],
-["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],
-["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],
-["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],
-["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],
-["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],
-["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],
-["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],
-["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],
-["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],
-["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],
-["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],
-["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],
-["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],
-["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],
-["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],
-["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],
-["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],
-["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],
-["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],
-["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],
-["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],
-["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],
-["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],
-["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],
-["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],
-["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],
-["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],
-["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],
-["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],
-["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],
-["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],
-["9fae","酙隁酜"],
-["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],
-["9fc1","𤤙盖鮝个𠳔莾衂"],
-["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],
-["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],
-["9fe7","毺蠘罸"],
-["9feb","嘠𪙊蹷齓"],
-["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],
-["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],
-["a055","𡠻𦸅"],
-["a058","詾𢔛"],
-["a05b","惽癧髗鵄鍮鮏蟵"],
-["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],
-["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],
-["a0a1","嵗𨯂迚𨸹"],
-["a0a6","僙𡵆礆匲阸𠼻䁥"],
-["a0ae","矾"],
-["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],
-["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],
-["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],
-["a3c0","␀",31,"␡"],
-["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー［］✽ぁ",23],
-["c740","す",58,"ァアィイ"],
-["c7a1","ゥ",81,"А",5,"ЁЖ",4],
-["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],
-["c8a1","龰冈龱𧘇"],
-["c8cd","￢￤＇＂㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],
-["c8f5","ʃɐɛɔɵœøŋʊɪ"],
-["f9fe","￭"],
-["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],
-["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],
-["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],
-["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],
-["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],
-["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],
-["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],
-["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],
-["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],
-["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]
-]
Index: de_modules/iconv-lite/encodings/tables/cp936.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/cp936.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,264 +1,0 @@
-[
-["0","\u0000",127,"€"],
-["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],
-["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],
-["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],
-["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],
-["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],
-["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],
-["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],
-["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],
-["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],
-["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],
-["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],
-["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],
-["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],
-["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],
-["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],
-["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],
-["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],
-["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],
-["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],
-["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],
-["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],
-["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],
-["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],
-["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],
-["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],
-["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],
-["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],
-["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],
-["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],
-["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],
-["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],
-["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],
-["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],
-["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],
-["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],
-["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],
-["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],
-["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],
-["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],
-["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],
-["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],
-["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],
-["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],
-["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],
-["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],
-["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],
-["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],
-["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],
-["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],
-["9980","檧檨檪檭",114,"欥欦欨",6],
-["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],
-["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],
-["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],
-["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],
-["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],
-["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],
-["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],
-["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],
-["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],
-["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],
-["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],
-["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],
-["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],
-["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],
-["a1a1","　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],
-["a2a1","ⅰ",9],
-["a2b1","⒈",19,"⑴",19,"①",9],
-["a2e5","㈠",9],
-["a2f1","Ⅰ",11],
-["a3a1","！＂＃￥％",88,"￣"],
-["a4a1","ぁ",82],
-["a5a1","ァ",85],
-["a6a1","Α",16,"Σ",6],
-["a6c1","α",16,"σ",6],
-["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],
-["a6ee","︻︼︷︸︱"],
-["a6f4","︳︴"],
-["a7a1","А",5,"ЁЖ",25],
-["a7d1","а",5,"ёж",25],
-["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],
-["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],
-["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],
-["a8bd","ńň"],
-["a8c0","ɡ"],
-["a8c5","ㄅ",36],
-["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤"],
-["a959","℡㈱"],
-["a95c","‐"],
-["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],
-["a980","﹢",4,"﹨﹩﹪﹫"],
-["a996","〇"],
-["a9a4","─",75],
-["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],
-["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],
-["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],
-["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],
-["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],
-["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],
-["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],
-["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],
-["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],
-["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],
-["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],
-["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],
-["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],
-["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],
-["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],
-["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],
-["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],
-["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],
-["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],
-["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],
-["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],
-["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],
-["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],
-["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],
-["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],
-["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],
-["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],
-["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],
-["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],
-["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],
-["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],
-["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],
-["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],
-["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],
-["bb40","籃",9,"籎",36,"籵",5,"籾",9],
-["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],
-["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],
-["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],
-["bd40","紷",54,"絯",7],
-["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],
-["be40","継",12,"綧",6,"綯",42],
-["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],
-["bf40","緻",62],
-["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],
-["c040","繞",35,"纃",23,"纜纝纞"],
-["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],
-["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],
-["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],
-["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],
-["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],
-["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],
-["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],
-["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],
-["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],
-["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],
-["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],
-["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],
-["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],
-["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],
-["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],
-["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],
-["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],
-["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],
-["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],
-["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],
-["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],
-["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],
-["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],
-["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],
-["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],
-["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],
-["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],
-["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],
-["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],
-["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],
-["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],
-["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],
-["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],
-["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],
-["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],
-["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],
-["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],
-["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],
-["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],
-["d440","訞",31,"訿",8,"詉",21],
-["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],
-["d540","誁",7,"誋",7,"誔",46],
-["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],
-["d640","諤",34,"謈",27],
-["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],
-["d740","譆",31,"譧",4,"譭",25],
-["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],
-["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],
-["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],
-["d940","貮",62],
-["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],
-["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],
-["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],
-["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],
-["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],
-["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],
-["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],
-["dd40","軥",62],
-["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],
-["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],
-["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],
-["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],
-["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],
-["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],
-["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],
-["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],
-["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],
-["e240","釦",62],
-["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],
-["e340","鉆",45,"鉵",16],
-["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],
-["e440","銨",5,"銯",24,"鋉",31],
-["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],
-["e540","錊",51,"錿",10],
-["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],
-["e640","鍬",34,"鎐",27],
-["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],
-["e740","鏎",7,"鏗",54],
-["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],
-["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],
-["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],
-["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],
-["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],
-["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],
-["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],
-["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],
-["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],
-["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],
-["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],
-["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],
-["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],
-["ee40","頏",62],
-["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],
-["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],
-["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],
-["f040","餈",4,"餎餏餑",28,"餯",26],
-["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],
-["f140","馌馎馚",10,"馦馧馩",47],
-["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],
-["f240","駺",62],
-["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],
-["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],
-["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],
-["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],
-["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],
-["f540","魼",62],
-["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],
-["f640","鯜",62],
-["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],
-["f740","鰼",62],
-["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],
-["f840","鳣",62],
-["f880","鴢",32],
-["f940","鵃",62],
-["f980","鶂",32],
-["fa40","鶣",62],
-["fa80","鷢",32],
-["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],
-["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],
-["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],
-["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],
-["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],
-["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],
-["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]
-]
Index: de_modules/iconv-lite/encodings/tables/cp949.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/cp949.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,273 +1,0 @@
-[
-["0","\u0000",127],
-["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],
-["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],
-["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],
-["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],
-["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],
-["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],
-["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],
-["8361","긝",18,"긲긳긵긶긹긻긼"],
-["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],
-["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],
-["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],
-["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],
-["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],
-["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],
-["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],
-["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],
-["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],
-["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],
-["8741","놞",9,"놩",15],
-["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],
-["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],
-["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],
-["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],
-["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],
-["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],
-["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],
-["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],
-["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],
-["8a61","둧",4,"둭",18,"뒁뒂"],
-["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],
-["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],
-["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],
-["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],
-["8c41","똀",15,"똒똓똕똖똗똙",4],
-["8c61","똞",6,"똦",5,"똭",6,"똵",5],
-["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],
-["8d41","뛃",16,"뛕",8],
-["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],
-["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],
-["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],
-["8e61","럂",4,"럈럊",19],
-["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],
-["8f41","뢅",7,"뢎",17],
-["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],
-["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],
-["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],
-["9061","륾",5,"릆릈릋릌릏",15],
-["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],
-["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],
-["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],
-["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],
-["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],
-["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],
-["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],
-["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],
-["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],
-["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],
-["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],
-["9461","봞",5,"봥",6,"봭",12],
-["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],
-["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],
-["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],
-["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],
-["9641","뺸",23,"뻒뻓"],
-["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],
-["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],
-["9741","뾃",16,"뾕",8],
-["9761","뾞",17,"뾱",7],
-["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],
-["9841","쁀",16,"쁒",5,"쁙쁚쁛"],
-["9861","쁝쁞쁟쁡",6,"쁪",15],
-["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],
-["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],
-["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],
-["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],
-["9a41","숤숥숦숧숪숬숮숰숳숵",16],
-["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],
-["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],
-["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],
-["9b61","쌳",17,"썆",7],
-["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],
-["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],
-["9c61","쏿",8,"쐉",6,"쐑",9],
-["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],
-["9d41","쒪",13,"쒹쒺쒻쒽",8],
-["9d61","쓆",25],
-["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],
-["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],
-["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],
-["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],
-["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],
-["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],
-["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],
-["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],
-["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],
-["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],
-["a141","좥좦좧좩",18,"좾좿죀죁"],
-["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],
-["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢"],
-["a241","줐줒",5,"줙",18],
-["a261","줭",6,"줵",18],
-["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],
-["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],
-["a361","즑",6,"즚즜즞",16],
-["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛！",58,"￦］",32,"￣"],
-["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],
-["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],
-["a481","쨦쨧쨨쨪",28,"ㄱ",93],
-["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],
-["a561","쩫",17,"쩾",5,"쪅쪆"],
-["a581","쪇",16,"쪙",14,"ⅰ",9],
-["a5b0","Ⅰ",9],
-["a5c1","Α",16,"Σ",6],
-["a5e1","α",16,"σ",6],
-["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],
-["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],
-["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],
-["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],
-["a761","쬪",22,"쭂쭃쭄"],
-["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],
-["a841","쭭",10,"쭺",14],
-["a861","쮉",18,"쮝",6],
-["a881","쮤",19,"쮹",11,"ÆÐªĦ"],
-["a8a6","Ĳ"],
-["a8a8","ĿŁØŒºÞŦŊ"],
-["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],
-["a941","쯅",14,"쯕",10],
-["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],
-["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],
-["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],
-["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],
-["aa81","챳챴챶",29,"ぁ",82],
-["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],
-["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],
-["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],
-["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],
-["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],
-["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],
-["acd1","а",5,"ёж",25],
-["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],
-["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],
-["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],
-["ae41","췆",5,"췍췎췏췑",16],
-["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],
-["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],
-["af41","츬츭츮츯츲츴츶",19],
-["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],
-["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],
-["b041","캚",5,"캢캦",5,"캮",12],
-["b061","캻",5,"컂",19],
-["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],
-["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],
-["b161","켥",6,"켮켲",5,"켹",11],
-["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],
-["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],
-["b261","쾎",18,"쾢",5,"쾩"],
-["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],
-["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],
-["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],
-["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],
-["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],
-["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],
-["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],
-["b541","킕",14,"킦킧킩킪킫킭",5],
-["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],
-["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],
-["b641","턅",7,"턎",17],
-["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],
-["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],
-["b741","텮",13,"텽",6,"톅톆톇톉톊"],
-["b761","톋",20,"톢톣톥톦톧"],
-["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],
-["b841","퇐",7,"퇙",17],
-["b861","퇫",8,"퇵퇶퇷퇹",13],
-["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],
-["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],
-["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],
-["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],
-["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],
-["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],
-["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],
-["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],
-["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],
-["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],
-["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],
-["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],
-["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],
-["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],
-["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],
-["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],
-["be41","퐸",7,"푁푂푃푅",14],
-["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],
-["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],
-["bf41","풞",10,"풪",14],
-["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],
-["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],
-["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],
-["c061","픞",25],
-["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],
-["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],
-["c161","햌햍햎햏햑",19,"햦햧"],
-["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],
-["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],
-["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],
-["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],
-["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],
-["c361","홢",4,"홨홪",5,"홲홳홵",11],
-["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],
-["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],
-["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],
-["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],
-["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],
-["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],
-["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],
-["c641","힍힎힏힑",6,"힚힜힞",5],
-["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],
-["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],
-["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],
-["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],
-["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],
-["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],
-["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],
-["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],
-["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],
-["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],
-["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],
-["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],
-["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],
-["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],
-["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],
-["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],
-["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],
-["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],
-["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],
-["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],
-["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],
-["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],
-["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],
-["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],
-["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],
-["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],
-["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],
-["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],
-["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],
-["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],
-["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],
-["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],
-["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],
-["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],
-["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],
-["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],
-["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],
-["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],
-["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],
-["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],
-["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],
-["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],
-["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],
-["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],
-["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],
-["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],
-["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],
-["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],
-["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],
-["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],
-["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],
-["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],
-["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],
-["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],
-["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]
-]
Index: de_modules/iconv-lite/encodings/tables/cp950.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/cp950.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-[
-["0","\u0000",127],
-["a140","　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],
-["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢",4,"～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／"],
-["a240","＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],
-["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳０",9,"Ⅰ",9,"〡",8,"十卄卅Ａ",25,"ａ",21],
-["a340","ｗｘｙｚΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],
-["a3a1","ㄐ",25,"˙ˉˊˇˋ"],
-["a3e1","€"],
-["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],
-["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],
-["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],
-["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],
-["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],
-["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],
-["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],
-["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],
-["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],
-["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],
-["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],
-["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],
-["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],
-["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],
-["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],
-["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],
-["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],
-["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],
-["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],
-["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],
-["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],
-["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],
-["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],
-["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],
-["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],
-["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],
-["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],
-["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],
-["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],
-["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],
-["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],
-["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],
-["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],
-["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],
-["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],
-["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],
-["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],
-["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],
-["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],
-["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],
-["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],
-["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],
-["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],
-["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],
-["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],
-["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],
-["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],
-["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],
-["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],
-["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],
-["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],
-["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],
-["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],
-["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],
-["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],
-["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],
-["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],
-["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],
-["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],
-["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],
-["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],
-["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],
-["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],
-["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],
-["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],
-["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],
-["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],
-["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],
-["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],
-["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],
-["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],
-["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],
-["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],
-["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],
-["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],
-["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],
-["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],
-["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],
-["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],
-["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],
-["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],
-["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],
-["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],
-["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],
-["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],
-["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],
-["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],
-["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],
-["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],
-["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],
-["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],
-["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],
-["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],
-["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],
-["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],
-["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],
-["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],
-["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],
-["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],
-["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],
-["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],
-["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],
-["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],
-["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],
-["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],
-["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],
-["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],
-["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],
-["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],
-["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],
-["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],
-["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],
-["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],
-["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],
-["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],
-["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],
-["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],
-["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],
-["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],
-["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],
-["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],
-["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],
-["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],
-["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],
-["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],
-["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],
-["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],
-["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],
-["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],
-["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],
-["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],
-["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],
-["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],
-["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],
-["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],
-["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],
-["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],
-["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],
-["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],
-["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],
-["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],
-["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],
-["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],
-["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],
-["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],
-["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],
-["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],
-["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],
-["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],
-["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],
-["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],
-["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],
-["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],
-["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],
-["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],
-["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],
-["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],
-["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],
-["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],
-["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],
-["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],
-["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],
-["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],
-["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],
-["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],
-["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],
-["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]
-]
Index: de_modules/iconv-lite/encodings/tables/eucjp.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/eucjp.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,182 +1,0 @@
-[
-["0","\u0000",127],
-["8ea1","｡",62],
-["a1a1","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇"],
-["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],
-["a2ba","∈∋⊆⊇⊂⊃∪∩"],
-["a2ca","∧∨￢⇒⇔∀∃"],
-["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],
-["a2f2","Å‰♯♭♪†‡¶"],
-["a2fe","◯"],
-["a3b0","０",9],
-["a3c1","Ａ",25],
-["a3e1","ａ",25],
-["a4a1","ぁ",82],
-["a5a1","ァ",85],
-["a6a1","Α",16,"Σ",6],
-["a6c1","α",16,"σ",6],
-["a7a1","А",5,"ЁЖ",25],
-["a7d1","а",5,"ёж",25],
-["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],
-["ada1","①",19,"Ⅰ",9],
-["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],
-["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],
-["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],
-["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],
-["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],
-["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],
-["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],
-["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],
-["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],
-["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],
-["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],
-["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],
-["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],
-["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],
-["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],
-["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],
-["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],
-["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],
-["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],
-["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],
-["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],
-["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],
-["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],
-["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],
-["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],
-["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],
-["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],
-["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],
-["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],
-["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],
-["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],
-["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],
-["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],
-["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],
-["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],
-["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],
-["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],
-["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],
-["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],
-["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],
-["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],
-["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],
-["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],
-["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],
-["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],
-["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],
-["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],
-["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],
-["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],
-["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],
-["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],
-["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],
-["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],
-["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],
-["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],
-["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],
-["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],
-["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],
-["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],
-["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],
-["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],
-["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],
-["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],
-["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],
-["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],
-["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],
-["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],
-["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],
-["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],
-["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],
-["f4a1","堯槇遙瑤凜熙"],
-["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],
-["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],
-["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],
-["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],
-["fcf1","ⅰ",9,"￢￤＇＂"],
-["8fa2af","˘ˇ¸˙˝¯˛˚～΄΅"],
-["8fa2c2","¡¦¿"],
-["8fa2eb","ºª©®™¤№"],
-["8fa6e1","ΆΈΉΊΪ"],
-["8fa6e7","Ό"],
-["8fa6e9","ΎΫ"],
-["8fa6ec","Ώ"],
-["8fa6f1","άέήίϊΐόςύϋΰώ"],
-["8fa7c2","Ђ",10,"ЎЏ"],
-["8fa7f2","ђ",10,"ўџ"],
-["8fa9a1","ÆĐ"],
-["8fa9a4","Ħ"],
-["8fa9a6","Ĳ"],
-["8fa9a8","ŁĿ"],
-["8fa9ab","ŊØŒ"],
-["8fa9af","ŦÞ"],
-["8fa9c1","æđðħıĳĸłŀŉŋøœßŧþ"],
-["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],
-["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],
-["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],
-["8fabbd","ġĥíìïîǐ"],
-["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],
-["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],
-["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],
-["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],
-["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],
-["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],
-["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],
-["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],
-["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],
-["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],
-["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],
-["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],
-["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],
-["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],
-["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],
-["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],
-["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],
-["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],
-["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],
-["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],
-["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],
-["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],
-["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],
-["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],
-["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],
-["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],
-["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],
-["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],
-["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],
-["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],
-["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],
-["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],
-["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],
-["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],
-["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],
-["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],
-["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],
-["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],
-["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],
-["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],
-["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],
-["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],
-["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],
-["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],
-["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],
-["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],
-["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],
-["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],
-["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],
-["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],
-["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],
-["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],
-["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],
-["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],
-["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],
-["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],
-["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],
-["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],
-["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],
-["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],
-["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],
-["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],
-["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]
-]
Index: de_modules/iconv-lite/encodings/tables/gb18030-ranges.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/gb18030-ranges.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}
Index: de_modules/iconv-lite/encodings/tables/gbk-added.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/gbk-added.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-[
-["a140","",62],
-["a180","",32],
-["a240","",62],
-["a280","",32],
-["a2ab","",5],
-["a2e3","€"],
-["a2ef",""],
-["a2fd",""],
-["a340","",62],
-["a380","",31,"　"],
-["a440","",62],
-["a480","",32],
-["a4f4","",10],
-["a540","",62],
-["a580","",32],
-["a5f7","",7],
-["a640","",62],
-["a680","",32],
-["a6b9","",7],
-["a6d9","",6],
-["a6ec",""],
-["a6f3",""],
-["a6f6","",8],
-["a740","",62],
-["a780","",32],
-["a7c2","",14],
-["a7f2","",12],
-["a896","",10],
-["a8bc","ḿ"],
-["a8bf","ǹ"],
-["a8c1",""],
-["a8ea","",20],
-["a958",""],
-["a95b",""],
-["a95d",""],
-["a989","〾⿰",11],
-["a997","",12],
-["a9f0","",14],
-["aaa1","",93],
-["aba1","",93],
-["aca1","",93],
-["ada1","",93],
-["aea1","",93],
-["afa1","",93],
-["d7fa","",4],
-["f8a1","",93],
-["f9a1","",93],
-["faa1","",93],
-["fba1","",93],
-["fca1","",93],
-["fda1","",93],
-["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],
-["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93],
-["8135f437",""]
-]
Index: de_modules/iconv-lite/encodings/tables/shiftjis.json
===================================================================
--- node_modules/iconv-lite/encodings/tables/shiftjis.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-[
-["0","\u0000",128],
-["a1","｡",62],
-["8140","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×"],
-["8180","÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],
-["81b8","∈∋⊆⊇⊂⊃∪∩"],
-["81c8","∧∨￢⇒⇔∀∃"],
-["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],
-["81f0","Å‰♯♭♪†‡¶"],
-["81fc","◯"],
-["824f","０",9],
-["8260","Ａ",25],
-["8281","ａ",25],
-["829f","ぁ",82],
-["8340","ァ",62],
-["8380","ム",22],
-["839f","Α",16,"Σ",6],
-["83bf","α",16,"σ",6],
-["8440","А",5,"ЁЖ",25],
-["8470","а",5,"ёж",7],
-["8480","о",17],
-["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],
-["8740","①",19,"Ⅰ",9],
-["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],
-["877e","㍻"],
-["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],
-["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],
-["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],
-["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],
-["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],
-["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],
-["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],
-["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],
-["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],
-["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],
-["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],
-["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],
-["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],
-["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],
-["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],
-["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],
-["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],
-["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],
-["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],
-["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],
-["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],
-["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],
-["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],
-["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],
-["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],
-["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],
-["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],
-["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],
-["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],
-["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],
-["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],
-["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],
-["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],
-["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],
-["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],
-["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],
-["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],
-["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],
-["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],
-["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],
-["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],
-["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],
-["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],
-["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],
-["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],
-["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],
-["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],
-["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],
-["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],
-["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],
-["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],
-["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],
-["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],
-["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],
-["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],
-["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],
-["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],
-["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],
-["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],
-["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],
-["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],
-["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],
-["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],
-["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],
-["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],
-["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],
-["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],
-["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],
-["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],
-["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],
-["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],
-["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],
-["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],
-["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],
-["eeef","ⅰ",9,"￢￤＇＂"],
-["f040","",62],
-["f080","",124],
-["f140","",62],
-["f180","",124],
-["f240","",62],
-["f280","",124],
-["f340","",62],
-["f380","",124],
-["f440","",62],
-["f480","",124],
-["f540","",62],
-["f580","",124],
-["f640","",62],
-["f680","",124],
-["f740","",62],
-["f780","",124],
-["f840","",62],
-["f880","",124],
-["f940",""],
-["fa40","ⅰ",9,"Ⅰ",9,"￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],
-["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],
-["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],
-["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],
-["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]
-]
Index: de_modules/iconv-lite/encodings/utf16.js
===================================================================
--- node_modules/iconv-lite/encodings/utf16.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,197 +1,0 @@
-"use strict";
-var Buffer = require("safer-buffer").Buffer;
-
-// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
-
-// == UTF16-BE codec. ==========================================================
-
-exports.utf16be = Utf16BECodec;
-function Utf16BECodec() {
-}
-
-Utf16BECodec.prototype.encoder = Utf16BEEncoder;
-Utf16BECodec.prototype.decoder = Utf16BEDecoder;
-Utf16BECodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf16BEEncoder() {
-}
-
-Utf16BEEncoder.prototype.write = function(str) {
-    var buf = Buffer.from(str, 'ucs2');
-    for (var i = 0; i < buf.length; i += 2) {
-        var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
-    }
-    return buf;
-}
-
-Utf16BEEncoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf16BEDecoder() {
-    this.overflowByte = -1;
-}
-
-Utf16BEDecoder.prototype.write = function(buf) {
-    if (buf.length == 0)
-        return '';
-
-    var buf2 = Buffer.alloc(buf.length + 1),
-        i = 0, j = 0;
-
-    if (this.overflowByte !== -1) {
-        buf2[0] = buf[0];
-        buf2[1] = this.overflowByte;
-        i = 1; j = 2;
-    }
-
-    for (; i < buf.length-1; i += 2, j+= 2) {
-        buf2[j] = buf[i+1];
-        buf2[j+1] = buf[i];
-    }
-
-    this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
-
-    return buf2.slice(0, j).toString('ucs2');
-}
-
-Utf16BEDecoder.prototype.end = function() {
-    this.overflowByte = -1;
-}
-
-
-// == UTF-16 codec =============================================================
-// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
-// Defaults to UTF-16LE, as it's prevalent and default in Node.
-// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
-// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
-
-// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
-
-exports.utf16 = Utf16Codec;
-function Utf16Codec(codecOptions, iconv) {
-    this.iconv = iconv;
-}
-
-Utf16Codec.prototype.encoder = Utf16Encoder;
-Utf16Codec.prototype.decoder = Utf16Decoder;
-
-
-// -- Encoding (pass-through)
-
-function Utf16Encoder(options, codec) {
-    options = options || {};
-    if (options.addBOM === undefined)
-        options.addBOM = true;
-    this.encoder = codec.iconv.getEncoder('utf-16le', options);
-}
-
-Utf16Encoder.prototype.write = function(str) {
-    return this.encoder.write(str);
-}
-
-Utf16Encoder.prototype.end = function() {
-    return this.encoder.end();
-}
-
-
-// -- Decoding
-
-function Utf16Decoder(options, codec) {
-    this.decoder = null;
-    this.initialBufs = [];
-    this.initialBufsLen = 0;
-
-    this.options = options || {};
-    this.iconv = codec.iconv;
-}
-
-Utf16Decoder.prototype.write = function(buf) {
-    if (!this.decoder) {
-        // Codec is not chosen yet. Accumulate initial bytes.
-        this.initialBufs.push(buf);
-        this.initialBufsLen += buf.length;
-        
-        if (this.initialBufsLen < 16) // We need more bytes to use space heuristic (see below)
-            return '';
-
-        // We have enough bytes -> detect endianness.
-        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
-        this.decoder = this.iconv.getDecoder(encoding, this.options);
-
-        var resStr = '';
-        for (var i = 0; i < this.initialBufs.length; i++)
-            resStr += this.decoder.write(this.initialBufs[i]);
-
-        this.initialBufs.length = this.initialBufsLen = 0;
-        return resStr;
-    }
-
-    return this.decoder.write(buf);
-}
-
-Utf16Decoder.prototype.end = function() {
-    if (!this.decoder) {
-        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
-        this.decoder = this.iconv.getDecoder(encoding, this.options);
-
-        var resStr = '';
-        for (var i = 0; i < this.initialBufs.length; i++)
-            resStr += this.decoder.write(this.initialBufs[i]);
-
-        var trail = this.decoder.end();
-        if (trail)
-            resStr += trail;
-
-        this.initialBufs.length = this.initialBufsLen = 0;
-        return resStr;
-    }
-    return this.decoder.end();
-}
-
-function detectEncoding(bufs, defaultEncoding) {
-    var b = [];
-    var charsProcessed = 0;
-    var asciiCharsLE = 0, asciiCharsBE = 0; // Number of ASCII chars when decoded as LE or BE.
-
-    outer_loop:
-    for (var i = 0; i < bufs.length; i++) {
-        var buf = bufs[i];
-        for (var j = 0; j < buf.length; j++) {
-            b.push(buf[j]);
-            if (b.length === 2) {
-                if (charsProcessed === 0) {
-                    // Check BOM first.
-                    if (b[0] === 0xFF && b[1] === 0xFE) return 'utf-16le';
-                    if (b[0] === 0xFE && b[1] === 0xFF) return 'utf-16be';
-                }
-
-                if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;
-                if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;
-
-                b.length = 0;
-                charsProcessed++;
-
-                if (charsProcessed >= 100) {
-                    break outer_loop;
-                }
-            }
-        }
-    }
-
-    // Make decisions.
-    // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
-    // So, we count ASCII as if it was LE or BE, and decide from that.
-    if (asciiCharsBE > asciiCharsLE) return 'utf-16be';
-    if (asciiCharsBE < asciiCharsLE) return 'utf-16le';
-
-    // Couldn't decide (likely all zeros or not enough data).
-    return defaultEncoding || 'utf-16le';
-}
-
-
Index: de_modules/iconv-lite/encodings/utf32.js
===================================================================
--- node_modules/iconv-lite/encodings/utf32.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,319 +1,0 @@
-'use strict';
-
-var Buffer = require('safer-buffer').Buffer;
-
-// == UTF32-LE/BE codec. ==========================================================
-
-exports._utf32 = Utf32Codec;
-
-function Utf32Codec(codecOptions, iconv) {
-    this.iconv = iconv;
-    this.bomAware = true;
-    this.isLE = codecOptions.isLE;
-}
-
-exports.utf32le = { type: '_utf32', isLE: true };
-exports.utf32be = { type: '_utf32', isLE: false };
-
-// Aliases
-exports.ucs4le = 'utf32le';
-exports.ucs4be = 'utf32be';
-
-Utf32Codec.prototype.encoder = Utf32Encoder;
-Utf32Codec.prototype.decoder = Utf32Decoder;
-
-// -- Encoding
-
-function Utf32Encoder(options, codec) {
-    this.isLE = codec.isLE;
-    this.highSurrogate = 0;
-}
-
-Utf32Encoder.prototype.write = function(str) {
-    var src = Buffer.from(str, 'ucs2');
-    var dst = Buffer.alloc(src.length * 2);
-    var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
-    var offset = 0;
-
-    for (var i = 0; i < src.length; i += 2) {
-        var code = src.readUInt16LE(i);
-        var isHighSurrogate = (0xD800 <= code && code < 0xDC00);
-        var isLowSurrogate = (0xDC00 <= code && code < 0xE000);
-
-        if (this.highSurrogate) {
-            if (isHighSurrogate || !isLowSurrogate) {
-                // There shouldn't be two high surrogates in a row, nor a high surrogate which isn't followed by a low
-                // surrogate. If this happens, keep the pending high surrogate as a stand-alone semi-invalid character
-                // (technically wrong, but expected by some applications, like Windows file names).
-                write32.call(dst, this.highSurrogate, offset);
-                offset += 4;
-            }
-            else {
-                // Create 32-bit value from high and low surrogates;
-                var codepoint = (((this.highSurrogate - 0xD800) << 10) | (code - 0xDC00)) + 0x10000;
-
-                write32.call(dst, codepoint, offset);
-                offset += 4;
-                this.highSurrogate = 0;
-
-                continue;
-            }
-        }
-
-        if (isHighSurrogate)
-            this.highSurrogate = code;
-        else {
-            // Even if the current character is a low surrogate, with no previous high surrogate, we'll
-            // encode it as a semi-invalid stand-alone character for the same reasons expressed above for
-            // unpaired high surrogates.
-            write32.call(dst, code, offset);
-            offset += 4;
-            this.highSurrogate = 0;
-        }
-    }
-
-    if (offset < dst.length)
-        dst = dst.slice(0, offset);
-
-    return dst;
-};
-
-Utf32Encoder.prototype.end = function() {
-    // Treat any leftover high surrogate as a semi-valid independent character.
-    if (!this.highSurrogate)
-        return;
-
-    var buf = Buffer.alloc(4);
-
-    if (this.isLE)
-        buf.writeUInt32LE(this.highSurrogate, 0);
-    else
-        buf.writeUInt32BE(this.highSurrogate, 0);
-
-    this.highSurrogate = 0;
-
-    return buf;
-};
-
-// -- Decoding
-
-function Utf32Decoder(options, codec) {
-    this.isLE = codec.isLE;
-    this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
-    this.overflow = [];
-}
-
-Utf32Decoder.prototype.write = function(src) {
-    if (src.length === 0)
-        return '';
-
-    var i = 0;
-    var codepoint = 0;
-    var dst = Buffer.alloc(src.length + 4);
-    var offset = 0;
-    var isLE = this.isLE;
-    var overflow = this.overflow;
-    var badChar = this.badChar;
-
-    if (overflow.length > 0) {
-        for (; i < src.length && overflow.length < 4; i++)
-            overflow.push(src[i]);
-        
-        if (overflow.length === 4) {
-            // NOTE: codepoint is a signed int32 and can be negative.
-            // NOTE: We copied this block from below to help V8 optimize it (it works with array, not buffer).
-            if (isLE) {
-                codepoint = overflow[i] | (overflow[i+1] << 8) | (overflow[i+2] << 16) | (overflow[i+3] << 24);
-            } else {
-                codepoint = overflow[i+3] | (overflow[i+2] << 8) | (overflow[i+1] << 16) | (overflow[i] << 24);
-            }
-            overflow.length = 0;
-
-            offset = _writeCodepoint(dst, offset, codepoint, badChar);
-        }
-    }
-
-    // Main loop. Should be as optimized as possible.
-    for (; i < src.length - 3; i += 4) {
-        // NOTE: codepoint is a signed int32 and can be negative.
-        if (isLE) {
-            codepoint = src[i] | (src[i+1] << 8) | (src[i+2] << 16) | (src[i+3] << 24);
-        } else {
-            codepoint = src[i+3] | (src[i+2] << 8) | (src[i+1] << 16) | (src[i] << 24);
-        }
-        offset = _writeCodepoint(dst, offset, codepoint, badChar);
-    }
-
-    // Keep overflowing bytes.
-    for (; i < src.length; i++) {
-        overflow.push(src[i]);
-    }
-
-    return dst.slice(0, offset).toString('ucs2');
-};
-
-function _writeCodepoint(dst, offset, codepoint, badChar) {
-    // NOTE: codepoint is signed int32 and can be negative. We keep it that way to help V8 with optimizations.
-    if (codepoint < 0 || codepoint > 0x10FFFF) {
-        // Not a valid Unicode codepoint
-        codepoint = badChar;
-    } 
-
-    // Ephemeral Planes: Write high surrogate.
-    if (codepoint >= 0x10000) {
-        codepoint -= 0x10000;
-
-        var high = 0xD800 | (codepoint >> 10);
-        dst[offset++] = high & 0xff;
-        dst[offset++] = high >> 8;
-
-        // Low surrogate is written below.
-        var codepoint = 0xDC00 | (codepoint & 0x3FF);
-    }
-
-    // Write BMP char or low surrogate.
-    dst[offset++] = codepoint & 0xff;
-    dst[offset++] = codepoint >> 8;
-
-    return offset;
-};
-
-Utf32Decoder.prototype.end = function() {
-    this.overflow.length = 0;
-};
-
-// == UTF-32 Auto codec =============================================================
-// Decoder chooses automatically from UTF-32LE and UTF-32BE using BOM and space-based heuristic.
-// Defaults to UTF-32LE. http://en.wikipedia.org/wiki/UTF-32
-// Encoder/decoder default can be changed: iconv.decode(buf, 'utf32', {defaultEncoding: 'utf-32be'});
-
-// Encoder prepends BOM (which can be overridden with (addBOM: false}).
-
-exports.utf32 = Utf32AutoCodec;
-exports.ucs4 = 'utf32';
-
-function Utf32AutoCodec(options, iconv) {
-    this.iconv = iconv;
-}
-
-Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
-Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
-
-// -- Encoding
-
-function Utf32AutoEncoder(options, codec) {
-    options = options || {};
-
-    if (options.addBOM === undefined)
-        options.addBOM = true;
-
-    this.encoder = codec.iconv.getEncoder(options.defaultEncoding || 'utf-32le', options);
-}
-
-Utf32AutoEncoder.prototype.write = function(str) {
-    return this.encoder.write(str);
-};
-
-Utf32AutoEncoder.prototype.end = function() {
-    return this.encoder.end();
-};
-
-// -- Decoding
-
-function Utf32AutoDecoder(options, codec) {
-    this.decoder = null;
-    this.initialBufs = [];
-    this.initialBufsLen = 0;
-    this.options = options || {};
-    this.iconv = codec.iconv;
-}
-
-Utf32AutoDecoder.prototype.write = function(buf) {
-    if (!this.decoder) { 
-        // Codec is not chosen yet. Accumulate initial bytes.
-        this.initialBufs.push(buf);
-        this.initialBufsLen += buf.length;
-
-        if (this.initialBufsLen < 32) // We need more bytes to use space heuristic (see below)
-            return '';
-
-        // We have enough bytes -> detect endianness.
-        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
-        this.decoder = this.iconv.getDecoder(encoding, this.options);
-
-        var resStr = '';
-        for (var i = 0; i < this.initialBufs.length; i++)
-            resStr += this.decoder.write(this.initialBufs[i]);
-
-        this.initialBufs.length = this.initialBufsLen = 0;
-        return resStr;
-    }
-
-    return this.decoder.write(buf);
-};
-
-Utf32AutoDecoder.prototype.end = function() {
-    if (!this.decoder) {
-        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
-        this.decoder = this.iconv.getDecoder(encoding, this.options);
-
-        var resStr = '';
-        for (var i = 0; i < this.initialBufs.length; i++)
-            resStr += this.decoder.write(this.initialBufs[i]);
-
-        var trail = this.decoder.end();
-        if (trail)
-            resStr += trail;
-
-        this.initialBufs.length = this.initialBufsLen = 0;
-        return resStr;
-    }
-
-    return this.decoder.end();
-};
-
-function detectEncoding(bufs, defaultEncoding) {
-    var b = [];
-    var charsProcessed = 0;
-    var invalidLE = 0, invalidBE = 0;   // Number of invalid chars when decoded as LE or BE.
-    var bmpCharsLE = 0, bmpCharsBE = 0; // Number of BMP chars when decoded as LE or BE.
-
-    outer_loop:
-    for (var i = 0; i < bufs.length; i++) {
-        var buf = bufs[i];
-        for (var j = 0; j < buf.length; j++) {
-            b.push(buf[j]);
-            if (b.length === 4) {
-                if (charsProcessed === 0) {
-                    // Check BOM first.
-                    if (b[0] === 0xFF && b[1] === 0xFE && b[2] === 0 && b[3] === 0) {
-                        return 'utf-32le';
-                    }
-                    if (b[0] === 0 && b[1] === 0 && b[2] === 0xFE && b[3] === 0xFF) {
-                        return 'utf-32be';
-                    }
-                }
-
-                if (b[0] !== 0 || b[1] > 0x10) invalidBE++;
-                if (b[3] !== 0 || b[2] > 0x10) invalidLE++;
-
-                if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;
-                if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;
-
-                b.length = 0;
-                charsProcessed++;
-
-                if (charsProcessed >= 100) {
-                    break outer_loop;
-                }
-            }
-        }
-    }
-
-    // Make decisions.
-    if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE)  return 'utf-32be';
-    if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE)  return 'utf-32le';
-
-    // Couldn't decide (likely all zeros or not enough data).
-    return defaultEncoding || 'utf-32le';
-}
Index: de_modules/iconv-lite/encodings/utf7.js
===================================================================
--- node_modules/iconv-lite/encodings/utf7.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,290 +1,0 @@
-"use strict";
-var Buffer = require("safer-buffer").Buffer;
-
-// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
-// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
-
-exports.utf7 = Utf7Codec;
-exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
-function Utf7Codec(codecOptions, iconv) {
-    this.iconv = iconv;
-};
-
-Utf7Codec.prototype.encoder = Utf7Encoder;
-Utf7Codec.prototype.decoder = Utf7Decoder;
-Utf7Codec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
-
-function Utf7Encoder(options, codec) {
-    this.iconv = codec.iconv;
-}
-
-Utf7Encoder.prototype.write = function(str) {
-    // Naive implementation.
-    // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
-    return Buffer.from(str.replace(nonDirectChars, function(chunk) {
-        return "+" + (chunk === '+' ? '' : 
-            this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) 
-            + "-";
-    }.bind(this)));
-}
-
-Utf7Encoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf7Decoder(options, codec) {
-    this.iconv = codec.iconv;
-    this.inBase64 = false;
-    this.base64Accum = '';
-}
-
-var base64Regex = /[A-Za-z0-9\/+]/;
-var base64Chars = [];
-for (var i = 0; i < 256; i++)
-    base64Chars[i] = base64Regex.test(String.fromCharCode(i));
-
-var plusChar = '+'.charCodeAt(0), 
-    minusChar = '-'.charCodeAt(0),
-    andChar = '&'.charCodeAt(0);
-
-Utf7Decoder.prototype.write = function(buf) {
-    var res = "", lastI = 0,
-        inBase64 = this.inBase64,
-        base64Accum = this.base64Accum;
-
-    // The decoder is more involved as we must handle chunks in stream.
-
-    for (var i = 0; i < buf.length; i++) {
-        if (!inBase64) { // We're in direct mode.
-            // Write direct chars until '+'
-            if (buf[i] == plusChar) {
-                res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
-                lastI = i+1;
-                inBase64 = true;
-            }
-        } else { // We decode base64.
-            if (!base64Chars[buf[i]]) { // Base64 ended.
-                if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
-                    res += "+";
-                } else {
-                    var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), "ascii");
-                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
-                }
-
-                if (buf[i] != minusChar) // Minus is absorbed after base64.
-                    i--;
-
-                lastI = i+1;
-                inBase64 = false;
-                base64Accum = '';
-            }
-        }
-    }
-
-    if (!inBase64) {
-        res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
-    } else {
-        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
-
-        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
-        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
-        b64str = b64str.slice(0, canBeDecoded);
-
-        res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
-    }
-
-    this.inBase64 = inBase64;
-    this.base64Accum = base64Accum;
-
-    return res;
-}
-
-Utf7Decoder.prototype.end = function() {
-    var res = "";
-    if (this.inBase64 && this.base64Accum.length > 0)
-        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
-
-    this.inBase64 = false;
-    this.base64Accum = '';
-    return res;
-}
-
-
-// UTF-7-IMAP codec.
-// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
-// Differences:
-//  * Base64 part is started by "&" instead of "+"
-//  * Direct characters are 0x20-0x7E, except "&" (0x26)
-//  * In Base64, "," is used instead of "/"
-//  * Base64 must not be used to represent direct characters.
-//  * No implicit shift back from Base64 (should always end with '-')
-//  * String must end in non-shifted position.
-//  * "-&" while in base64 is not allowed.
-
-
-exports.utf7imap = Utf7IMAPCodec;
-function Utf7IMAPCodec(codecOptions, iconv) {
-    this.iconv = iconv;
-};
-
-Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
-Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
-Utf7IMAPCodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf7IMAPEncoder(options, codec) {
-    this.iconv = codec.iconv;
-    this.inBase64 = false;
-    this.base64Accum = Buffer.alloc(6);
-    this.base64AccumIdx = 0;
-}
-
-Utf7IMAPEncoder.prototype.write = function(str) {
-    var inBase64 = this.inBase64,
-        base64Accum = this.base64Accum,
-        base64AccumIdx = this.base64AccumIdx,
-        buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;
-
-    for (var i = 0; i < str.length; i++) {
-        var uChar = str.charCodeAt(i);
-        if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
-            if (inBase64) {
-                if (base64AccumIdx > 0) {
-                    bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
-                    base64AccumIdx = 0;
-                }
-
-                buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
-                inBase64 = false;
-            }
-
-            if (!inBase64) {
-                buf[bufIdx++] = uChar; // Write direct character
-
-                if (uChar === andChar)  // Ampersand -> '&-'
-                    buf[bufIdx++] = minusChar;
-            }
-
-        } else { // Non-direct character
-            if (!inBase64) {
-                buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
-                inBase64 = true;
-            }
-            if (inBase64) {
-                base64Accum[base64AccumIdx++] = uChar >> 8;
-                base64Accum[base64AccumIdx++] = uChar & 0xFF;
-
-                if (base64AccumIdx == base64Accum.length) {
-                    bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
-                    base64AccumIdx = 0;
-                }
-            }
-        }
-    }
-
-    this.inBase64 = inBase64;
-    this.base64AccumIdx = base64AccumIdx;
-
-    return buf.slice(0, bufIdx);
-}
-
-Utf7IMAPEncoder.prototype.end = function() {
-    var buf = Buffer.alloc(10), bufIdx = 0;
-    if (this.inBase64) {
-        if (this.base64AccumIdx > 0) {
-            bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
-            this.base64AccumIdx = 0;
-        }
-
-        buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
-        this.inBase64 = false;
-    }
-
-    return buf.slice(0, bufIdx);
-}
-
-
-// -- Decoding
-
-function Utf7IMAPDecoder(options, codec) {
-    this.iconv = codec.iconv;
-    this.inBase64 = false;
-    this.base64Accum = '';
-}
-
-var base64IMAPChars = base64Chars.slice();
-base64IMAPChars[','.charCodeAt(0)] = true;
-
-Utf7IMAPDecoder.prototype.write = function(buf) {
-    var res = "", lastI = 0,
-        inBase64 = this.inBase64,
-        base64Accum = this.base64Accum;
-
-    // The decoder is more involved as we must handle chunks in stream.
-    // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
-
-    for (var i = 0; i < buf.length; i++) {
-        if (!inBase64) { // We're in direct mode.
-            // Write direct chars until '&'
-            if (buf[i] == andChar) {
-                res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
-                lastI = i+1;
-                inBase64 = true;
-            }
-        } else { // We decode base64.
-            if (!base64IMAPChars[buf[i]]) { // Base64 ended.
-                if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
-                    res += "&";
-                } else {
-                    var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), "ascii").replace(/,/g, '/');
-                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
-                }
-
-                if (buf[i] != minusChar) // Minus may be absorbed after base64.
-                    i--;
-
-                lastI = i+1;
-                inBase64 = false;
-                base64Accum = '';
-            }
-        }
-    }
-
-    if (!inBase64) {
-        res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
-    } else {
-        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, '/');
-
-        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
-        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
-        b64str = b64str.slice(0, canBeDecoded);
-
-        res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
-    }
-
-    this.inBase64 = inBase64;
-    this.base64Accum = base64Accum;
-
-    return res;
-}
-
-Utf7IMAPDecoder.prototype.end = function() {
-    var res = "";
-    if (this.inBase64 && this.base64Accum.length > 0)
-        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
-
-    this.inBase64 = false;
-    this.base64Accum = '';
-    return res;
-}
-
-
Index: de_modules/iconv-lite/lib/bom-handling.js
===================================================================
--- node_modules/iconv-lite/lib/bom-handling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-"use strict";
-
-var BOMChar = '\uFEFF';
-
-exports.PrependBOM = PrependBOMWrapper
-function PrependBOMWrapper(encoder, options) {
-    this.encoder = encoder;
-    this.addBOM = true;
-}
-
-PrependBOMWrapper.prototype.write = function(str) {
-    if (this.addBOM) {
-        str = BOMChar + str;
-        this.addBOM = false;
-    }
-
-    return this.encoder.write(str);
-}
-
-PrependBOMWrapper.prototype.end = function() {
-    return this.encoder.end();
-}
-
-
-//------------------------------------------------------------------------------
-
-exports.StripBOM = StripBOMWrapper;
-function StripBOMWrapper(decoder, options) {
-    this.decoder = decoder;
-    this.pass = false;
-    this.options = options || {};
-}
-
-StripBOMWrapper.prototype.write = function(buf) {
-    var res = this.decoder.write(buf);
-    if (this.pass || !res)
-        return res;
-
-    if (res[0] === BOMChar) {
-        res = res.slice(1);
-        if (typeof this.options.stripBOM === 'function')
-            this.options.stripBOM();
-    }
-
-    this.pass = true;
-    return res;
-}
-
-StripBOMWrapper.prototype.end = function() {
-    return this.decoder.end();
-}
-
Index: de_modules/iconv-lite/lib/index.d.ts
===================================================================
--- node_modules/iconv-lite/lib/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/*---------------------------------------------------------------------------------------------
- *  Copyright (c) Microsoft Corporation. All rights reserved.
- *  Licensed under the MIT License.
- *  REQUIREMENT: This definition is dependent on the @types/node definition.
- *  Install with `npm install @types/node --save-dev`
- *--------------------------------------------------------------------------------------------*/
-
-declare module 'iconv-lite' {
-	// Basic API
-	export function decode(buffer: Buffer, encoding: string, options?: Options): string;
-
-	export function encode(content: string, encoding: string, options?: Options): Buffer;
-
-	export function encodingExists(encoding: string): boolean;
-
-	// Stream API
-	export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-
-	export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-
-	// Low-level stream APIs
-	export function getEncoder(encoding: string, options?: Options): EncoderStream;
-
-	export function getDecoder(encoding: string, options?: Options): DecoderStream;
-}
-
-export interface Options {
-    stripBOM?: boolean;
-    addBOM?: boolean;
-    defaultEncoding?: string;
-}
-
-export interface EncoderStream {
-	write(str: string): Buffer;
-	end(): Buffer | undefined;
-}
-
-export interface DecoderStream {
-	write(buf: Buffer): string;
-	end(): string | undefined;
-}
Index: de_modules/iconv-lite/lib/index.js
===================================================================
--- node_modules/iconv-lite/lib/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-"use strict";
-
-var Buffer = require("safer-buffer").Buffer;
-
-var bomHandling = require("./bom-handling"),
-    iconv = module.exports;
-
-// All codecs and aliases are kept here, keyed by encoding name/alias.
-// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
-iconv.encodings = null;
-
-// Characters emitted in case of error.
-iconv.defaultCharUnicode = '�';
-iconv.defaultCharSingleByte = '?';
-
-// Public API.
-iconv.encode = function encode(str, encoding, options) {
-    str = "" + (str || ""); // Ensure string.
-
-    var encoder = iconv.getEncoder(encoding, options);
-
-    var res = encoder.write(str);
-    var trail = encoder.end();
-    
-    return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
-}
-
-iconv.decode = function decode(buf, encoding, options) {
-    if (typeof buf === 'string') {
-        if (!iconv.skipDecodeWarning) {
-            console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
-            iconv.skipDecodeWarning = true;
-        }
-
-        buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
-    }
-
-    var decoder = iconv.getDecoder(encoding, options);
-
-    var res = decoder.write(buf);
-    var trail = decoder.end();
-
-    return trail ? (res + trail) : res;
-}
-
-iconv.encodingExists = function encodingExists(enc) {
-    try {
-        iconv.getCodec(enc);
-        return true;
-    } catch (e) {
-        return false;
-    }
-}
-
-// Legacy aliases to convert functions
-iconv.toEncoding = iconv.encode;
-iconv.fromEncoding = iconv.decode;
-
-// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
-iconv._codecDataCache = {};
-iconv.getCodec = function getCodec(encoding) {
-    if (!iconv.encodings)
-        iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
-    
-    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
-    var enc = iconv._canonicalizeEncoding(encoding);
-
-    // Traverse iconv.encodings to find actual codec.
-    var codecOptions = {};
-    while (true) {
-        var codec = iconv._codecDataCache[enc];
-        if (codec)
-            return codec;
-
-        var codecDef = iconv.encodings[enc];
-
-        switch (typeof codecDef) {
-            case "string": // Direct alias to other encoding.
-                enc = codecDef;
-                break;
-
-            case "object": // Alias with options. Can be layered.
-                for (var key in codecDef)
-                    codecOptions[key] = codecDef[key];
-
-                if (!codecOptions.encodingName)
-                    codecOptions.encodingName = enc;
-                
-                enc = codecDef.type;
-                break;
-
-            case "function": // Codec itself.
-                if (!codecOptions.encodingName)
-                    codecOptions.encodingName = enc;
-
-                // The codec function must load all tables and return object with .encoder and .decoder methods.
-                // It'll be called only once (for each different options object).
-                codec = new codecDef(codecOptions, iconv);
-
-                iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
-                return codec;
-
-            default:
-                throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
-        }
-    }
-}
-
-iconv._canonicalizeEncoding = function(encoding) {
-    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
-    return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
-}
-
-iconv.getEncoder = function getEncoder(encoding, options) {
-    var codec = iconv.getCodec(encoding),
-        encoder = new codec.encoder(options, codec);
-
-    if (codec.bomAware && options && options.addBOM)
-        encoder = new bomHandling.PrependBOM(encoder, options);
-
-    return encoder;
-}
-
-iconv.getDecoder = function getDecoder(encoding, options) {
-    var codec = iconv.getCodec(encoding),
-        decoder = new codec.decoder(options, codec);
-
-    if (codec.bomAware && !(options && options.stripBOM === false))
-        decoder = new bomHandling.StripBOM(decoder, options);
-
-    return decoder;
-}
-
-// Streaming API
-// NOTE: Streaming API naturally depends on 'stream' module from Node.js. Unfortunately in browser environments this module can add
-// up to 100Kb to the output bundle. To avoid unnecessary code bloat, we don't enable Streaming API in browser by default.
-// If you would like to enable it explicitly, please add the following code to your app:
-// > iconv.enableStreamingAPI(require('stream'));
-iconv.enableStreamingAPI = function enableStreamingAPI(stream_module) {
-    if (iconv.supportsStreams)
-        return;
-
-    // Dependency-inject stream module to create IconvLite stream classes.
-    var streams = require("./streams")(stream_module);
-
-    // Not public API yet, but expose the stream classes.
-    iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
-    iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
-
-    // Streaming API.
-    iconv.encodeStream = function encodeStream(encoding, options) {
-        return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
-    }
-
-    iconv.decodeStream = function decodeStream(encoding, options) {
-        return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
-    }
-
-    iconv.supportsStreams = true;
-}
-
-// Enable Streaming API automatically if 'stream' module is available and non-empty (the majority of environments).
-var stream_module;
-try {
-    stream_module = require("stream");
-} catch (e) {}
-
-if (stream_module && stream_module.Transform) {
-    iconv.enableStreamingAPI(stream_module);
-
-} else {
-    // In rare cases where 'stream' module is not available by default, throw a helpful exception.
-    iconv.encodeStream = iconv.decodeStream = function() {
-        throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
-    };
-}
-
-if ("Ā" != "\u0100") {
-    console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
-}
Index: de_modules/iconv-lite/lib/streams.js
===================================================================
--- node_modules/iconv-lite/lib/streams.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,109 +1,0 @@
-"use strict";
-
-var Buffer = require("safer-buffer").Buffer;
-
-// NOTE: Due to 'stream' module being pretty large (~100Kb, significant in browser environments), 
-// we opt to dependency-inject it instead of creating a hard dependency.
-module.exports = function(stream_module) {
-    var Transform = stream_module.Transform;
-
-    // == Encoder stream =======================================================
-
-    function IconvLiteEncoderStream(conv, options) {
-        this.conv = conv;
-        options = options || {};
-        options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
-        Transform.call(this, options);
-    }
-
-    IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
-        constructor: { value: IconvLiteEncoderStream }
-    });
-
-    IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
-        if (typeof chunk != 'string')
-            return done(new Error("Iconv encoding stream needs strings as its input."));
-        try {
-            var res = this.conv.write(chunk);
-            if (res && res.length) this.push(res);
-            done();
-        }
-        catch (e) {
-            done(e);
-        }
-    }
-
-    IconvLiteEncoderStream.prototype._flush = function(done) {
-        try {
-            var res = this.conv.end();
-            if (res && res.length) this.push(res);
-            done();
-        }
-        catch (e) {
-            done(e);
-        }
-    }
-
-    IconvLiteEncoderStream.prototype.collect = function(cb) {
-        var chunks = [];
-        this.on('error', cb);
-        this.on('data', function(chunk) { chunks.push(chunk); });
-        this.on('end', function() {
-            cb(null, Buffer.concat(chunks));
-        });
-        return this;
-    }
-
-
-    // == Decoder stream =======================================================
-
-    function IconvLiteDecoderStream(conv, options) {
-        this.conv = conv;
-        options = options || {};
-        options.encoding = this.encoding = 'utf8'; // We output strings.
-        Transform.call(this, options);
-    }
-
-    IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
-        constructor: { value: IconvLiteDecoderStream }
-    });
-
-    IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
-        if (!Buffer.isBuffer(chunk) && !(chunk instanceof Uint8Array))
-            return done(new Error("Iconv decoding stream needs buffers as its input."));
-        try {
-            var res = this.conv.write(chunk);
-            if (res && res.length) this.push(res, this.encoding);
-            done();
-        }
-        catch (e) {
-            done(e);
-        }
-    }
-
-    IconvLiteDecoderStream.prototype._flush = function(done) {
-        try {
-            var res = this.conv.end();
-            if (res && res.length) this.push(res, this.encoding);                
-            done();
-        }
-        catch (e) {
-            done(e);
-        }
-    }
-
-    IconvLiteDecoderStream.prototype.collect = function(cb) {
-        var res = '';
-        this.on('error', cb);
-        this.on('data', function(chunk) { res += chunk; });
-        this.on('end', function() {
-            cb(null, res);
-        });
-        return this;
-    }
-
-    return {
-        IconvLiteEncoderStream: IconvLiteEncoderStream,
-        IconvLiteDecoderStream: IconvLiteDecoderStream,
-    };
-};
Index: de_modules/iconv-lite/package.json
===================================================================
--- node_modules/iconv-lite/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-{
-    "name": "iconv-lite",
-    "description": "Convert character encodings in pure javascript.",
-    "version": "0.6.3",
-    "license": "MIT",
-    "keywords": [
-        "iconv",
-        "convert",
-        "charset",
-        "icu"
-    ],
-    "author": "Alexander Shtuchkin <ashtuchkin@gmail.com>",
-    "main": "./lib/index.js",
-    "typings": "./lib/index.d.ts",
-    "homepage": "https://github.com/ashtuchkin/iconv-lite",
-    "bugs": "https://github.com/ashtuchkin/iconv-lite/issues",
-    "repository": {
-        "type": "git",
-        "url": "git://github.com/ashtuchkin/iconv-lite.git"
-    },
-    "engines": {
-        "node": ">=0.10.0"
-    },
-    "scripts": {
-        "coverage": "c8 _mocha --grep .",
-        "test": "mocha --reporter spec --grep ."
-    },
-    "browser": {
-        "stream": false
-    },
-    "devDependencies": {
-        "async": "^3.2.0",
-        "c8": "^7.2.0",
-        "errto": "^0.2.1",
-        "iconv": "^2.3.5",
-        "mocha": "^3.5.3",
-        "request": "^2.88.2",
-        "semver": "^6.3.0",
-        "unorm": "^1.6.0"
-    },
-    "dependencies": {
-        "safer-buffer": ">= 2.1.2 < 3.0.0"
-    }
-}
Index: de_modules/immer/LICENSE
===================================================================
--- node_modules/immer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2017 Michel Weststrate
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/immer/dist/cjs/immer.cjs.development.js
===================================================================
--- node_modules/immer/dist/cjs/immer.cjs.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1346 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/immer.ts
-var immer_exports = {};
-__export(immer_exports, {
-  Immer: () => Immer2,
-  applyPatches: () => applyPatches,
-  castDraft: () => castDraft,
-  castImmutable: () => castImmutable,
-  createDraft: () => createDraft,
-  current: () => current,
-  enableMapSet: () => enableMapSet,
-  enablePatches: () => enablePatches,
-  finishDraft: () => finishDraft,
-  freeze: () => freeze,
-  immerable: () => DRAFTABLE,
-  isDraft: () => isDraft,
-  isDraftable: () => isDraftable,
-  nothing: () => NOTHING,
-  original: () => original,
-  produce: () => produce,
-  produceWithPatches: () => produceWithPatches,
-  setAutoFreeze: () => setAutoFreeze,
-  setUseStrictIteration: () => setUseStrictIteration,
-  setUseStrictShallowCopy: () => setUseStrictShallowCopy
-});
-module.exports = __toCommonJS(immer_exports);
-
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = typeof e === "function" ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var getPrototypeOf = Object.getPrototypeOf;
-function isDraft(value) {
-  return !!value && !!value[DRAFT_STATE];
-}
-function isDraftable(value) {
-  if (!value)
-    return false;
-  return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);
-}
-var objectCtorString = Object.prototype.constructor.toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || typeof value !== "object")
-    return false;
-  const proto = Object.getPrototypeOf(value);
-  if (proto === null || proto === Object.prototype)
-    return true;
-  const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
-  if (Ctor === Object)
-    return true;
-  if (typeof Ctor !== "function")
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-function has(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);
-}
-function get(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];
-}
-function set(thing, propOrOldValue, value) {
-  const t = getArchtype(thing);
-  if (t === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (t === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-}
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function isMap(target) {
-  return target instanceof Map;
-}
-function isSet(target) {
-  return target instanceof Set;
-}
-function latest(state) {
-  return state.copy_ || state.base_;
-}
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (Array.isArray(base))
-    return Array.prototype.slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = Object.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc.writable === false) {
-        desc.writable = true;
-        desc.configurable = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          configurable: true,
-          writable: true,
-          // could live with !!desc.set as well here...
-          enumerable: desc.enumerable,
-          value: base[key]
-        };
-    }
-    return Object.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return { ...base };
-    }
-    const obj = Object.create(proto);
-    return Object.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    Object.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  Object.freeze(obj);
-  if (deep)
-    Object.values(obj).forEach((value) => freeze(value, true));
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  value: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || typeof obj !== "object")
-    return true;
-  return Object.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-function getCurrentScope() {
-  return currentScope;
-}
-function createScope(parent_, immer_) {
-  return {
-    drafts_: [],
-    parent_,
-    immer_,
-    // Whenever the modified draft contains a draft from another scope, we
-    // need to prevent auto-freezing so the unowned draft can be finalized.
-    canAutoFreeze_: true,
-    unfinalizedDrafts_: 0
-  };
-}
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    getPlugin("Patches");
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-function enterScope(immer2) {
-  return currentScope = createScope(currentScope, immer2);
-}
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-      if (!scope.parent_)
-        maybeFreeze(scope, result);
-    }
-    if (scope.patches_) {
-      getPlugin("Patches").generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope.patches_,
-        scope.inversePatches_
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft, []);
-  }
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value, path) {
-  if (isFrozen(value))
-    return value;
-  const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    each(
-      value,
-      (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),
-      useStrictIteration
-    );
-    return value;
-  }
-  if (state.scope_ !== rootScope)
-    return value;
-  if (!state.modified_) {
-    maybeFreeze(rootScope, state.base_, true);
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    state.finalized_ = true;
-    state.scope_.unfinalizedDrafts_--;
-    const result = state.copy_;
-    let resultEach = result;
-    let isSet2 = false;
-    if (state.type_ === 3 /* Set */) {
-      resultEach = new Set(result);
-      result.clear();
-      isSet2 = true;
-    }
-    each(
-      resultEach,
-      (key, childValue) => finalizeProperty(
-        rootScope,
-        state,
-        result,
-        key,
-        childValue,
-        path,
-        isSet2
-      ),
-      useStrictIteration
-    );
-    maybeFreeze(rootScope, result, false);
-    if (path && rootScope.patches_) {
-      getPlugin("Patches").generatePatches_(
-        state,
-        path,
-        rootScope.patches_,
-        rootScope.inversePatches_
-      );
-    }
-  }
-  return state.copy_;
-}
-function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
-  if (childValue == null) {
-    return;
-  }
-  if (typeof childValue !== "object" && !targetIsSet) {
-    return;
-  }
-  const childIsFrozen = isFrozen(childValue);
-  if (childIsFrozen && !targetIsSet) {
-    return;
-  }
-  if (process.env.NODE_ENV !== "production" && childValue === targetObject)
-    die(5);
-  if (isDraft(childValue)) {
-    const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.
-    !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;
-    const res = finalize(rootScope, childValue, path);
-    set(targetObject, prop, res);
-    if (isDraft(res)) {
-      rootScope.canAutoFreeze_ = false;
-    } else
-      return;
-  } else if (targetIsSet) {
-    targetObject.add(childValue);
-  }
-  if (isDraftable(childValue) && !childIsFrozen) {
-    if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-      return;
-    }
-    if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {
-      return;
-    }
-    finalize(rootScope, childValue);
-    if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))
-      maybeFreeze(rootScope, childValue);
-  }
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const isArray = Array.isArray(base);
-  const state = {
-    type_: isArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    assigned_: {},
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (isArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return proxy;
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    const source = latest(state);
-    if (!has(source, prop)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      return state.copy_[prop] = createProxy(value, state);
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc?.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2?.[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_[prop] = false;
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_[prop] = true;
-    return true;
-  },
-  deleteProperty(state, prop) {
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_[prop] = false;
-      prepareCopy(state);
-      markChanged(state);
-    } else {
-      delete state.assigned_[prop];
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      writable: true,
-      configurable: state.type_ !== 1 /* Array */ || prop !== "length",
-      enumerable: desc.enumerable,
-      value: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-each(objectTraps, (key, fn) => {
-  arrayTraps[key] = function() {
-    arguments[0] = arguments[0][0];
-    return fn.apply(this, arguments);
-  };
-});
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? `value` in desc ? desc.value : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    desc.get?.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = true;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (typeof base === "function" && typeof recipe !== "function") {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (typeof recipe !== "function")
-        die(6);
-      if (patchListener !== void 0 && typeof patchListener !== "function")
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || typeof base !== "object") {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin("Patches").generateReplacementPatches_(base, result, p, ip);
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (typeof base === "function") {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (typeof config?.autoFreeze === "boolean")
-      this.setAutoFreeze(config.autoFreeze);
-    if (typeof config?.useStrictShallowCopy === "boolean")
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (typeof config?.useStrictIteration === "boolean")
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin("Patches").applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(value, parent) {
-  const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = parent ? parent.scope_ : getCurrentScope();
-  scope.drafts_.push(draft);
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, patches, inversePatches) {
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(state, basePath, patches, inversePatches);
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    for (let i = 0; i < base_.length; i++) {
-      if (assigned_[i] && copy_[i] !== base_[i]) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copy_[i])
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(base_[i])
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key);
-      const value = get(copy_, key);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(op === REMOVE ? { op, path } : { op, path, value });
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {
-    patches.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === "constructor"))
-          die(errorOffset + 3);
-        if (typeof base === "function" && p === "prototype")
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (typeof base !== "object")
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (Array.isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin("Patches", {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(value, state);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    return new DraftMap(target, parent);
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    return new DraftSet(target, parent);
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(value, state);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  loadPlugin("MapSet", { proxyMap_, proxySet_ });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-function castDraft(value) {
-  return value;
-}
-function castImmutable(value) {
-  return value;
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  immerable,
-  isDraft,
-  isDraftable,
-  nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-});
-//# sourceMappingURL=immer.cjs.development.js.map
Index: de_modules/immer/dist/cjs/immer.cjs.development.js.map
===================================================================
--- node_modules/immer/dist/cjs/immer.cjs.development.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/immer.ts","../../src/utils/env.ts","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/patches.ts","../../src/plugins/mapset.ts"],"sourcesContent":["import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,eAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACjB3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,OAAO,MAAM,aAAa,EAAE,MAAM,MAAM,IAAW,IAAI;AACnE,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACjCO,IAAM,iBAAiB,OAAO;AAI9B,SAAS,QAAQ,OAAqB;AAC5C,SAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AACtC;AAIO,SAAS,YAAY,OAAqB;AAChD,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,MAAM,QAAQ,KAAK,KACnB,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,CAAC,MAAM,cAAc,SAAS,KAC/B,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,OAAO,UAAU,YAAY,SAAS;AAC/D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,OAAO,UAAU;AAAU,WAAO;AAChD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,MAAI,UAAU,QAAQ,UAAU,OAAO;AAAW,WAAO;AAEzD,QAAM,OACL,OAAO,eAAe,KAAK,OAAO,aAAa,KAAK,MAAM;AAC3D,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,OAAO,SAAS;AAAY,WAAO;AAEvC,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,OAAO,KAAK,GAAG;AAC5D,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,MAAM,QAAQ,KAAK,oBAEnB,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,SAAS,IAAI,OAAY,MAA4B;AAC3D,SAAO,YAAY,KAAK,oBACrB,MAAM,IAAI,IAAI,IACd,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI;AACpD;AAGO,SAAS,IAAI,OAA2B,MAAwB;AAEtE,SAAO,YAAY,KAAK,oBAAqB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAC1E;AAGO,SAAS,IAAI,OAAY,gBAA6B,OAAY;AACxE,QAAM,IAAI,YAAY,KAAK;AAC3B,MAAI;AAAoB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WAC9C,mBAAoB;AAC5B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAEO,SAAS,OAAO,OAAwB;AAC9C,SAAO,MAAM,SAAS,MAAM;AAC7B;AAGO,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,MAAM,UAAU,MAAM,KAAK,IAAI;AAE/D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,OAAO,0BAA0B,IAAI;AACzD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,aAAa,OAAO;AAC5B,aAAK,WAAW;AAChB,aAAK,eAAe;AAAA,MACrB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,cAAc;AAAA,UACd,UAAU;AAAA;AAAA,UACV,YAAY,KAAK;AAAA,UACjB,OAAO,KAAK,GAAG;AAAA,QAChB;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EACvD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,EAAC,GAAG,KAAI;AAAA,IAChB;AACA,UAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,WAAO,OAAO,OAAO,KAAK,IAAI;AAAA,EAC/B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,WAAO,iBAAiB,KAAK;AAAA,MAC5B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,SAAO,OAAO,GAAG;AACjB,MAAI;AAGH,WAAO,OAAO,GAAG,EAAE,QAAQ,WAAS,OAAO,OAAO,IAAI,CAAC;AACxD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,OAAO;AACR;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,OAAO,QAAQ;AAAU,WAAO;AACpD,SAAO,OAAO,SAAS,GAAG;AAC3B;;;ACnOA,IAAM,UAoBF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;AC5BA,IAAI;AAEG,SAAS,kBAAkB;AACjC,SAAO;AACR;AAEA,SAAS,YACR,SACA,QACa;AACb,SAAO;AAAA,IACN,SAAS,CAAC;AAAA,IACV;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACrB;AACD;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,cAAU,SAAS;AACnB,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,SAAS,WAAWC,QAAc;AACxC,SAAQ,eAAe,YAAY,cAAcA,MAAK;AACvD;AAEA,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;AC1DO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AACtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAC/B,UAAI,CAAC,MAAM;AAAS,oBAAY,OAAO,MAAM;AAAA,IAC9C;AACA,QAAI,MAAM,UAAU;AACnB,gBAAU,SAAS,EAAE;AAAA,QACpB,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,WAAW,CAAC,CAAC;AAAA,EACvC;AACA,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY,MAAkB;AAEtE,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,qBAAqB,UAAU,OAAO,yBAAyB;AAErE,QAAM,QAAoB,MAAM,WAAW;AAE3C,MAAI,CAAC,OAAO;AACX;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL,iBAAiB,WAAW,OAAO,OAAO,KAAK,YAAY,IAAI;AAAA,MAChE;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,WAAW;AAAW,WAAO;AAEvC,MAAI,CAAC,MAAM,WAAW;AACrB,gBAAY,WAAW,MAAM,OAAO,IAAI;AACxC,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AACtB,UAAM,aAAa;AACnB,UAAM,OAAO;AACb,UAAM,SAAS,MAAM;AAKrB,QAAI,aAAa;AACjB,QAAIC,SAAQ;AACZ,QAAI,MAAM,uBAAwB;AACjC,mBAAa,IAAI,IAAI,MAAM;AAC3B,aAAO,MAAM;AACb,MAAAA,SAAQ;AAAA,IACT;AACA;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAA;AAAA,MACD;AAAA,MACD;AAAA,IACD;AAEA,gBAAY,WAAW,QAAQ,KAAK;AAEpC,QAAI,QAAQ,UAAU,UAAU;AAC/B,gBAAU,SAAS,EAAE;AAAA,QACpB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,IACD;AAAA,EACD;AACA,SAAO,MAAM;AACd;AAEA,SAAS,iBACR,WACA,aACA,cACA,MACA,YACA,UACA,aACC;AACD,MAAI,cAAc,MAAM;AACvB;AAAA,EACD;AAEA,MAAI,OAAO,eAAe,YAAY,CAAC,aAAa;AACnD;AAAA,EACD;AACA,QAAM,gBAAgB,SAAS,UAAU;AACzC,MAAI,iBAAiB,CAAC,aAAa;AAClC;AAAA,EACD;AAEA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe;AAC3D,QAAI,CAAC;AACN,MAAI,QAAQ,UAAU,GAAG;AACxB,UAAM,OACL,YACA,eACA,YAAa;AAAA,IACb,CAAC,IAAK,YAA8C,WAAY,IAAI,IACjE,SAAU,OAAO,IAAI,IACrB;AAEJ,UAAM,MAAM,SAAS,WAAW,YAAY,IAAI;AAChD,QAAI,cAAc,MAAM,GAAG;AAG3B,QAAI,QAAQ,GAAG,GAAG;AACjB,gBAAU,iBAAiB;AAAA,IAC5B;AAAO;AAAA,EACR,WAAW,aAAa;AACvB,iBAAa,IAAI,UAAU;AAAA,EAC5B;AAEA,MAAI,YAAY,UAAU,KAAK,CAAC,eAAe;AAC9C,QAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE;AAAA,IACD;AACA,QACC,eACA,YAAY,SACZ,YAAY,MAAM,IAAI,MAAM,cAC5B,eACC;AAED;AAAA,IACD;AACA,aAAS,WAAW,UAAU;AAI9B,SACE,CAAC,eAAe,CAAC,YAAY,OAAO,YACrC,OAAO,SAAS,aACf,MAAM,YAAY,IAChB,aAAa,IAAI,IAAI,IACrB,OAAO,UAAU,qBAAqB,KAAK,cAAc,IAAI;AAEhE,kBAAY,WAAW,UAAU;AAAA,EACnC;AACD;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;;;ACzJO,SAAS,iBACf,MACA,QACyB;AACzB,QAAM,UAAU,MAAM,QAAQ,IAAI;AAClC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA,IAEZ,WAAW,CAAC;AAAA;AAAA,IAEZ,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA,EACZ;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,SAAS;AACZ,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO;AACR;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,IAAI,GAAG;AAEvB,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AACjB,aAAQ,MAAM,MAAO,IAAW,IAAI,YAAY,OAAO,KAAK;AAAA,IAC7D;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,MAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,WAAU,WAAW;AAC5D,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAU,IAAI,IAAI;AACxB,eAAO;AAAA,MACR;AACA,UAAI,GAAG,OAAOA,QAAO,MAAM,UAAU,UAAa,IAAI,MAAM,OAAO,IAAI;AACtE,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAU,IAAI,IAAI;AACxB,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AAEnC,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAU,IAAI,IAAI;AACxB,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,aAAO,MAAM,UAAU,IAAI;AAAA,IAC5B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,UAAU;AAAA,MACV,cAAc,MAAM,2BAA4B,SAAS;AAAA,MACzD,YAAY,KAAK;AAAA,MACjB,OAAO,MAAM,IAAI;AAAA,IAClB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AACrD,KAAK,aAAa,CAAC,KAAK,OAAO;AAE9B,aAAW,GAAG,IAAI,WAAW;AAC5B,cAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC;AAC7B,WAAO,GAAG,MAAM,MAAM,SAAS;AAAA,EAChC;AACD,CAAC;AACD,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AAC7E,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,WAAW,OACV,KAAK;AAAA;AAAA;AAAA,IAGL,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,MAC5B;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAIzB;AACF,MAAI,CAAC,MAAM,OAAO;AACjB,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;AChQO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAkC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,OAAO,SAAS,cAAc,OAAO,WAAW,YAAY;AAC/D,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,OAAO,WAAW;AAAY,YAAI,CAAC;AACvC,UAAI,kBAAkB,UAAa,OAAO,kBAAkB;AAC3D,YAAI,CAAC;AAEN,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,OAAO,SAAS,UAAU;AAC7C,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,SAAS,EAAE,4BAA4B,MAAM,QAAQ,GAAG,EAAE;AACpE,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,OAAO,SAAS,YAAY;AAC/B,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA5FC,QAAI,OAAO,QAAQ,eAAe;AACjC,WAAK,cAAc,OAAQ,UAAU;AACtC,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,OAAO,QAAQ,uBAAuB;AACzC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EAwFA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,SAAS,EAAE;AAC9C,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,OACA,QACyB;AAEzB,QAAM,QAAiB,MAAM,KAAK,IAC/B,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,MAAM,KAAK,IACX,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AACvD,QAAM,QAAQ,KAAK,KAAK;AACxB,SAAO;AACR;;;AC7NO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACpBO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,SACA,gBACO;AACP,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO,qBAAqB,OAAO,UAAU,SAAS,cAAc;AAAA,MACrE;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAGA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,UAAI,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG;AAC1C,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,MAAK,IAAI;AACvB,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAM,QAAQ,IAAI,OAAQ,GAAG;AAC7B,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ,KAAK,OAAO,SAAS,EAAC,IAAI,KAAI,IAAI,EAAC,IAAI,MAAM,MAAK,CAAC;AAC3D,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,SACA,gBACO;AACP,YAAQ,KAAK;AAAA,MACZ,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,mBAAe,KAAK;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,OAAO,SAAS,cAAc,MAAM;AACvC,cAAI,cAAc,CAAC;AACpB,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,OAAO,SAAS;AAAU,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAClE;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,MAAM,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AAC1D,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,WAAW;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACzSO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAtIC,aAsIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AAAA,MACvB;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA3FC,aA2FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,aAAW,UAAU,EAAC,WAAW,UAAS,CAAC;AAC5C;;;AXrRA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,SAAS,UAAa,OAAoB;AAChD,SAAO;AACR;AAOO,SAAS,cAAiB,OAAwB;AACxD,SAAO;AACR;","names":["Immer","immer","isSet","current","Immer","base","Immer"]}
Index: de_modules/immer/dist/cjs/immer.cjs.production.js
===================================================================
--- node_modules/immer/dist/cjs/immer.cjs.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-"use strict";var ae=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var Ae=Object.prototype.hasOwnProperty;var De=(e,t)=>{for(var r in t)ae(e,r,{get:t[r],enumerable:!0})},Oe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Te(t))!Ae.call(e,o)&&o!==r&&ae(e,o,{get:()=>t[o],enumerable:!(n=Ie(t,o))||n.enumerable});return e};var Me=e=>Oe(ae({},"__esModule",{value:!0}),e);var He={};De(He,{Immer:()=>J,applyPatches:()=>ke,castDraft:()=>We,castImmutable:()=>Be,createDraft:()=>Ke,current:()=>ne,enableMapSet:()=>ge,enablePatches:()=>be,finishDraft:()=>Ue,freeze:()=>K,immerable:()=>j,isDraft:()=>M,isDraftable:()=>T,nothing:()=>z,original:()=>de,produce:()=>Ne,produceWithPatches:()=>ze,setAutoFreeze:()=>Ce,setUseStrictIteration:()=>Re,setUseStrictShallowCopy:()=>ve});module.exports=Me(He);var z=Symbol.for("immer-nothing"),j=Symbol.for("immer-draftable"),u=Symbol.for("immer-state");function h(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var C=Object.getPrototypeOf;function M(e){return!!e&&!!e[u]}function T(e){return e?pe(e)||Array.isArray(e)||!!e[j]||!!e.constructor?.[j]||N(e)||k(e):!1}var _e=Object.prototype.constructor.toString(),le=new WeakMap;function pe(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=le.get(r);return n===void 0&&(n=Function.toString.call(r),le.set(r,n)),n===_e}function de(e){return M(e)||h(15,e),e[u].t}function _(e,t,r=!0){v(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function v(e){let t=e[u];return t?t.o:Array.isArray(e)?1:N(e)?2:k(e)?3:0}function R(e,t){return v(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Q(e,t){return v(e)===2?e.get(t):e[t]}function Y(e,t,r){let n=v(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function he(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function N(e){return e instanceof Map}function k(e){return e instanceof Set}function I(e){return e.e||e.t}function G(e,t){if(N(e))return new Map(e);if(k(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=pe(e);if(t===!0||t==="class_only"&&!r){let n=Object.getOwnPropertyDescriptors(e);delete n[u];let o=Reflect.ownKeys(n);for(let c=0;c<o.length;c++){let y=o[c],s=n[y];s.writable===!1&&(s.writable=!0,s.configurable=!0),(s.get||s.set)&&(n[y]={configurable:!0,writable:!0,enumerable:s.enumerable,value:e[y]})}return Object.create(C(e),n)}else{let n=C(e);if(n!==null&&r)return{...e};let o=Object.create(n);return Object.assign(o,e)}}function K(e,t=!1){return H(e)||M(e)||!T(e)||(v(e)>1&&Object.defineProperties(e,{set:X,add:X,clear:X,delete:X}),Object.freeze(e),t&&Object.values(e).forEach(r=>K(r,!0))),e}function we(){h(2)}var X={value:we};function H(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var oe={};function w(e){let t=oe[e];return t||h(0,e),t}function Z(e,t){oe[e]||(oe[e]=t)}var L;function U(){return L}function Ee(e,t){return{a:[],i:e,f:t,P:!0,d:0}}function ie(e,t){t&&(w("Patches"),e.u=[],e.h=[],e.I=t)}function q(e){ee(e),e.a.forEach(Fe),e.a=null}function ee(e){e===L&&(L=e.i)}function se(e){return L=Ee(L,e)}function Fe(e){let t=e[u];t.o===0||t.o===1?t.x():t.m=!0}function ce(e,t){t.d=t.a.length;let r=t.a[0];return e!==void 0&&e!==r?(r[u].s&&(q(t),h(4)),T(e)&&(e=te(t,e),t.i||re(t,e)),t.u&&w("Patches").T(r[u].t,e,t.u,t.h)):e=te(t,r,[]),q(t),t.u&&t.I(t.u,t.h),e!==z?e:void 0}function te(e,t,r){if(H(t))return t;let n=e.f.shouldUseStrictIteration(),o=t[u];if(!o)return _(t,(c,y)=>me(e,o,t,c,y,r),n),t;if(o.n!==e)return t;if(!o.s)return re(e,o.t,!0),o.t;if(!o.c){o.c=!0,o.n.d--;let c=o.e,y=c,s=!1;o.o===3&&(y=new Set(c),c.clear(),s=!0),_(y,(g,a)=>me(e,o,c,g,a,r,s),n),re(e,c,!1),r&&e.u&&w("Patches").g(o,r,e.u,e.h)}return o.e}function me(e,t,r,n,o,c,y){if(o==null||typeof o!="object"&&!y)return;let s=H(o);if(!(s&&!y)){if(M(o)){let g=c&&t&&t.o!==3&&!R(t.r,n)?c.concat(n):void 0,a=te(e,o,g);if(Y(r,n,a),M(a))e.P=!1;else return}else y&&r.add(o);if(T(o)&&!s){if(!e.f.y&&e.d<1||t&&t.t&&t.t[n]===o&&s)return;te(e,o),(!t||!t.n.i)&&typeof n!="symbol"&&(N(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&re(e,o)}}}function re(e,t,r=!1){!e.i&&e.f.y&&e.P&&K(t,r)}function Se(e,t){let r=Array.isArray(e),n={o:r?1:0,n:t?t.n:U(),s:!1,c:!1,r:{},i:t,t:e,p:null,e:null,x:null,l:!1},o=n,c=ye;r&&(o=[n],c=V);let{revoke:y,proxy:s}=Proxy.revocable(o,c);return n.p=s,n.x=y,s}var ye={get(e,t){if(t===u)return e;let r=I(e);if(!R(r,t))return je(e,r,t);let n=r[t];return e.c||!T(n)?n:n===fe(e.t,t)?(ue(e),e.e[t]=W(n,e)):n},has(e,t){return t in I(e)},ownKeys(e){return Reflect.ownKeys(I(e))},set(e,t,r){let n=Pe(I(e),t);if(n?.set)return n.set.call(e.p,r),!0;if(!e.s){let o=fe(I(e),t),c=o?.[u];if(c&&c.t===r)return e.e[t]=r,e.r[t]=!1,!0;if(he(r,o)&&(r!==void 0||R(e.t,t)))return!0;ue(e),E(e)}return e.e[t]===r&&(r!==void 0||t in e.e)||Number.isNaN(r)&&Number.isNaN(e.e[t])||(e.e[t]=r,e.r[t]=!0),!0},deleteProperty(e,t){return fe(e.t,t)!==void 0||t in e.t?(e.r[t]=!1,ue(e),E(e)):delete e.r[t],e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let r=I(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.o!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){h(11)},getPrototypeOf(e){return C(e.t)},setPrototypeOf(){h(12)}},V={};_(ye,(e,t)=>{V[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});V.deleteProperty=function(e,t){return V.set.call(this,e,t,void 0)};V.set=function(e,t,r){return ye.set.call(this,e[0],t,r,e[0])};function fe(e,t){let r=e[u];return(r?I(r):e)[t]}function je(e,t,r){let n=Pe(t,r);return n?"value"in n?n.value:n.get?.call(e.p):void 0}function Pe(e,t){if(!(t in e))return;let r=C(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=C(r)}}function E(e){e.s||(e.s=!0,e.i&&E(e.i))}function ue(e){e.e||(e.e=G(e.t,e.n.f.S))}var J=class{constructor(t){this.y=!0;this.S=!1;this.b=!0;this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){let c=r;r=t;let y=this;return function(g=c,...a){return y.produce(g,i=>r.call(this,i,...a))}}typeof r!="function"&&h(6),n!==void 0&&typeof n!="function"&&h(7);let o;if(T(t)){let c=se(this),y=W(t,void 0),s=!0;try{o=r(y),s=!1}finally{s?q(c):ee(c)}return ie(c,n),ce(o,c)}else if(!t||typeof t!="object"){if(o=r(t),o===void 0&&(o=t),o===z&&(o=void 0),this.y&&K(o,!0),n){let c=[],y=[];w("Patches").T(t,o,c,y),n(c,y)}return o}else h(1,t)};this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(y,...s)=>this.produceWithPatches(y,g=>t(g,...s));let n,o;return[this.produce(t,r,(y,s)=>{n=y,o=s}),n,o]};typeof t?.autoFreeze=="boolean"&&this.setAutoFreeze(t.autoFreeze),typeof t?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),typeof t?.useStrictIteration=="boolean"&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){T(t)||h(8),M(t)&&(t=ne(t));let r=se(this),n=W(t,void 0);return n[u].l=!0,ee(r),n}finishDraft(t,r){let n=t&&t[u];(!n||!n.l)&&h(9);let{n:o}=n;return ie(o,r),ce(void 0,o)}setAutoFreeze(t){this.y=t}setUseStrictShallowCopy(t){this.S=t}setUseStrictIteration(t){this.b=t}shouldUseStrictIteration(){return this.b}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){let c=r[n];if(c.path.length===0&&c.op==="replace"){t=c.value;break}}n>-1&&(r=r.slice(n+1));let o=w("Patches").A;return M(t)?o(t,r):this.produce(t,c=>o(c,r))}};function W(e,t){let r=N(e)?w("MapSet").D(e,t):k(e)?w("MapSet").R(e,t):Se(e,t);return(t?t.n:U()).a.push(r),r}function ne(e){return M(e)||h(10,e),xe(e)}function xe(e){if(!T(e)||H(e))return e;let t=e[u],r,n=!0;if(t){if(!t.s)return t.t;t.c=!0,r=G(e,t.n.f.S),n=t.n.f.shouldUseStrictIteration()}else r=G(e,!0);return _(r,(o,c)=>{Y(r,o,xe(c))},n),t&&(t.c=!1),r}function be(){let t="replace",r="add",n="remove";function o(f,S,m,x){switch(f.o){case 0:case 2:return y(f,S,m,x);case 1:return c(f,S,m,x);case 3:return s(f,S,m,x)}}function c(f,S,m,x){let{t:A,r:P}=f,b=f.e;b.length<A.length&&([A,b]=[b,A],[m,x]=[x,m]);for(let l=0;l<A.length;l++)if(P[l]&&b[l]!==A[l]){let d=S.concat([l]);m.push({op:t,path:d,value:p(b[l])}),x.push({op:t,path:d,value:p(A[l])})}for(let l=A.length;l<b.length;l++){let d=S.concat([l]);m.push({op:r,path:d,value:p(b[l])})}for(let l=b.length-1;A.length<=l;--l){let d=S.concat([l]);x.push({op:n,path:d})}}function y(f,S,m,x){let{t:A,e:P}=f;_(f.r,(b,l)=>{let d=Q(A,b),B=Q(P,b),F=l?R(A,b)?t:r:n;if(d===B&&F===t)return;let O=S.concat(b);m.push(F===n?{op:F,path:O}:{op:F,path:O,value:B}),x.push(F===r?{op:n,path:O}:F===n?{op:r,path:O,value:p(d)}:{op:t,path:O,value:p(d)})})}function s(f,S,m,x){let{t:A,e:P}=f,b=0;A.forEach(l=>{if(!P.has(l)){let d=S.concat([b]);m.push({op:n,path:d,value:l}),x.unshift({op:r,path:d,value:l})}b++}),b=0,P.forEach(l=>{if(!A.has(l)){let d=S.concat([b]);m.push({op:r,path:d,value:l}),x.unshift({op:n,path:d,value:l})}b++})}function g(f,S,m,x){m.push({op:t,path:[],value:S===z?void 0:S}),x.push({op:t,path:[],value:f})}function a(f,S){return S.forEach(m=>{let{path:x,op:A}=m,P=f;for(let B=0;B<x.length-1;B++){let F=v(P),O=x[B];typeof O!="string"&&typeof O!="number"&&(O=""+O),(F===0||F===1)&&(O==="__proto__"||O==="constructor")&&h(16+3),typeof P=="function"&&O==="prototype"&&h(16+3),P=Q(P,O),typeof P!="object"&&h(16+2,x.join("/"))}let b=v(P),l=i(m.value),d=x[x.length-1];switch(A){case t:switch(b){case 2:return P.set(d,l);case 3:h(16);default:return P[d]=l}case r:switch(b){case 1:return d==="-"?P.push(l):P.splice(d,0,l);case 2:return P.set(d,l);case 3:return P.add(l);default:return P[d]=l}case n:switch(b){case 1:return P.splice(d,1);case 2:return P.delete(d);case 3:return P.delete(m.value);default:return delete P[d]}default:h(16+1,A)}}),f}function i(f){if(!T(f))return f;if(Array.isArray(f))return f.map(i);if(N(f))return new Map(Array.from(f.entries()).map(([m,x])=>[m,i(x)]));if(k(f))return new Set(Array.from(f).map(i));let S=Object.create(C(f));for(let m in f)S[m]=i(f[m]);return R(f,j)&&(S[j]=f[j]),S}function p(f){return M(f)?i(f):f}Z("Patches",{A:a,g:o,T:g})}function ge(){class e extends Map{constructor(a,i){super();this[u]={o:2,i,n:i?i.n:U(),s:!1,c:!1,e:void 0,r:void 0,t:a,p:this,l:!1,m:!1}}get size(){return I(this[u]).size}has(a){return I(this[u]).has(a)}set(a,i){let p=this[u];return y(p),(!I(p).has(a)||I(p).get(a)!==i)&&(r(p),E(p),p.r.set(a,!0),p.e.set(a,i),p.r.set(a,!0)),this}delete(a){if(!this.has(a))return!1;let i=this[u];return y(i),r(i),E(i),i.t.has(a)?i.r.set(a,!1):i.r.delete(a),i.e.delete(a),!0}clear(){let a=this[u];y(a),I(a).size&&(r(a),E(a),a.r=new Map,_(a.t,i=>{a.r.set(i,!1)}),a.e.clear())}forEach(a,i){let p=this[u];I(p).forEach((f,S,m)=>{a.call(i,this.get(S),S,this)})}get(a){let i=this[u];y(i);let p=I(i).get(a);if(i.c||!T(p)||p!==i.t.get(a))return p;let f=W(p,i);return r(i),i.e.set(a,f),f}keys(){return I(this[u]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let i=a.next();return i.done?i:{done:!1,value:this.get(i.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let i=a.next();if(i.done)return i;let p=this.get(i.value);return{done:!1,value:[i.value,p]}}}}[(u,Symbol.iterator)](){return this.entries()}}function t(s,g){return new e(s,g)}function r(s){s.e||(s.r=new Map,s.e=new Map(s.t))}class n extends Set{constructor(a,i){super();this[u]={o:3,i,n:i?i.n:U(),s:!1,c:!1,e:void 0,t:a,p:this,a:new Map,m:!1,l:!1}}get size(){return I(this[u]).size}has(a){let i=this[u];return y(i),i.e?!!(i.e.has(a)||i.a.has(a)&&i.e.has(i.a.get(a))):i.t.has(a)}add(a){let i=this[u];return y(i),this.has(a)||(c(i),E(i),i.e.add(a)),this}delete(a){if(!this.has(a))return!1;let i=this[u];return y(i),c(i),E(i),i.e.delete(a)||(i.a.has(a)?i.e.delete(i.a.get(a)):!1)}clear(){let a=this[u];y(a),I(a).size&&(c(a),E(a),a.e.clear())}values(){let a=this[u];return y(a),c(a),a.e.values()}entries(){let a=this[u];return y(a),c(a),a.e.entries()}keys(){return this.values()}[(u,Symbol.iterator)](){return this.values()}forEach(a,i){let p=this.values(),f=p.next();for(;!f.done;)a.call(i,f.value,f.value,this),f=p.next()}}function o(s,g){return new n(s,g)}function c(s){s.e||(s.e=new Set,s.t.forEach(g=>{if(T(g)){let a=W(g,s);s.a.set(g,a),s.e.add(a)}else s.e.add(g)}))}function y(s){s.m&&h(3,JSON.stringify(I(s)))}Z("MapSet",{D:t,R:o})}var D=new J,Ne=D.produce,ze=D.produceWithPatches.bind(D),Ce=D.setAutoFreeze.bind(D),ve=D.setUseStrictShallowCopy.bind(D),Re=D.setUseStrictIteration.bind(D),ke=D.applyPatches.bind(D),Ke=D.createDraft.bind(D),Ue=D.finishDraft.bind(D);function We(e){return e}function Be(e){return e}0&&(module.exports={Immer,applyPatches,castDraft,castImmutable,createDraft,current,enableMapSet,enablePatches,finishDraft,freeze,immerable,isDraft,isDraftable,nothing,original,produce,produceWithPatches,setAutoFreeze,setUseStrictIteration,setUseStrictShallowCopy});
-//# sourceMappingURL=immer.cjs.production.js.map
Index: de_modules/immer/dist/cjs/immer.cjs.production.js.map
===================================================================
--- node_modules/immer/dist/cjs/immer.cjs.production.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/immer.ts","../../src/utils/env.ts","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/patches.ts","../../src/plugins/mapset.ts"],"sourcesContent":["import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n"],"mappings":"ubAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,WAAAE,EAAA,iBAAAC,GAAA,cAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,YAAAC,GAAA,iBAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,WAAAC,EAAA,cAAAC,EAAA,YAAAC,EAAA,gBAAAC,EAAA,YAAAC,EAAA,aAAAC,GAAA,YAAAC,GAAA,uBAAAC,GAAA,kBAAAC,GAAA,0BAAAC,GAAA,4BAAAC,KAAA,eAAAC,GAAAtB,ICKO,IAAMuB,EAAyB,OAAO,IAAI,eAAe,EAUnDC,EAA2B,OAAO,IAAI,iBAAiB,EAEvDC,EAA6B,OAAO,IAAI,aAAa,ECqB3D,SAASC,EAAIC,KAAkBC,EAAoB,CAMzD,MAAM,IAAI,MACT,8BAA8BD,0CAC/B,CACD,CCjCO,IAAME,EAAiB,OAAO,eAI9B,SAASC,EAAQC,EAAqB,CAC5C,MAAO,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMC,CAAW,CACtC,CAIO,SAASC,EAAYF,EAAqB,CAChD,OAAKA,EAEJG,GAAcH,CAAK,GACnB,MAAM,QAAQA,CAAK,GACnB,CAAC,CAACA,EAAMI,CAAS,GACjB,CAAC,CAACJ,EAAM,cAAcI,CAAS,GAC/BC,EAAML,CAAK,GACXM,EAAMN,CAAK,EAPO,EASpB,CAEA,IAAMO,GAAmB,OAAO,UAAU,YAAY,SAAS,EACzDC,GAAoB,IAAI,QAEvB,SAASL,GAAcH,EAAqB,CAClD,GAAI,CAACA,GAAS,OAAOA,GAAU,SAAU,MAAO,GAChD,IAAMS,EAAQ,OAAO,eAAeT,CAAK,EACzC,GAAIS,IAAU,MAAQA,IAAU,OAAO,UAAW,MAAO,GAEzD,IAAMC,EACL,OAAO,eAAe,KAAKD,EAAO,aAAa,GAAKA,EAAM,YAC3D,GAAIC,IAAS,OAAQ,MAAO,GAE5B,GAAI,OAAOA,GAAS,WAAY,MAAO,GAEvC,IAAIC,EAAaH,GAAkB,IAAIE,CAAI,EAC3C,OAAIC,IAAe,SAClBA,EAAa,SAAS,SAAS,KAAKD,CAAI,EACxCF,GAAkB,IAAIE,EAAMC,CAAU,GAGhCA,IAAeJ,EACvB,CAKO,SAASK,GAASZ,EAA0B,CAClD,OAAKD,EAAQC,CAAK,GAAGa,EAAI,GAAIb,CAAK,EAC3BA,EAAMC,CAAW,EAAEa,CAC3B,CAgBO,SAASC,EAAKC,EAAUC,EAAWC,EAAkB,GAAM,CAC7DC,EAAYH,CAAG,IAAM,GAGXE,EAAS,QAAQ,QAAQF,CAAG,EAAI,OAAO,KAAKA,CAAG,GACvD,QAAQI,GAAO,CACnBH,EAAKG,EAAKJ,EAAII,CAAG,EAAGJ,CAAG,CACxB,CAAC,EAEDA,EAAI,QAAQ,CAACK,EAAYC,IAAeL,EAAKK,EAAOD,EAAOL,CAAG,CAAC,CAEjE,CAGO,SAASG,EAAYI,EAAsB,CACjD,IAAMC,EAAgCD,EAAMtB,CAAW,EACvD,OAAOuB,EACJA,EAAMC,EACN,MAAM,QAAQF,CAAK,IAEnBlB,EAAMkB,CAAK,IAEXjB,EAAMiB,CAAK,KAGf,CAGO,SAASG,EAAIH,EAAYI,EAA4B,CAC3D,OAAOR,EAAYI,CAAK,IAAM,EAC3BA,EAAM,IAAII,CAAI,EACd,OAAO,UAAU,eAAe,KAAKJ,EAAOI,CAAI,CACpD,CAGO,SAASC,EAAIL,EAA2BI,EAAwB,CAEtE,OAAOR,EAAYI,CAAK,IAAM,EAAeA,EAAM,IAAII,CAAI,EAAIJ,EAAMI,CAAI,CAC1E,CAGO,SAASE,EAAIN,EAAYO,EAA6B9B,EAAY,CACxE,IAAM+B,EAAIZ,EAAYI,CAAK,EACvBQ,IAAM,EAAcR,EAAM,IAAIO,EAAgB9B,CAAK,EAC9C+B,IAAM,EACdR,EAAM,IAAIvB,CAAK,EACTuB,EAAMO,CAAc,EAAI9B,CAChC,CAGO,SAASgC,GAAGC,EAAQC,EAAiB,CAE3C,OAAID,IAAMC,EACFD,IAAM,GAAK,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,CAE1B,CAGO,SAAS7B,EAAM8B,EAA+B,CACpD,OAAOA,aAAkB,GAC1B,CAGO,SAAS7B,EAAM6B,EAA+B,CACpD,OAAOA,aAAkB,GAC1B,CAEO,SAASC,EAAOZ,EAAwB,CAC9C,OAAOA,EAAMa,GAASb,EAAMV,CAC7B,CAGO,SAASwB,EAAYC,EAAWrB,EAAoB,CAC1D,GAAIb,EAAMkC,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAIjC,EAAMiC,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI,MAAM,QAAQA,CAAI,EAAG,OAAO,MAAM,UAAU,MAAM,KAAKA,CAAI,EAE/D,IAAMC,EAAUrC,GAAcoC,CAAI,EAElC,GAAIrB,IAAW,IAASA,IAAW,cAAgB,CAACsB,EAAU,CAE7D,IAAMC,EAAc,OAAO,0BAA0BF,CAAI,EACzD,OAAOE,EAAYxC,CAAkB,EACrC,IAAIyC,EAAO,QAAQ,QAAQD,CAAW,EACtC,QAASE,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAAK,CACrC,IAAMvB,EAAWsB,EAAKC,CAAC,EACjBC,EAAOH,EAAYrB,CAAG,EACxBwB,EAAK,WAAa,KACrBA,EAAK,SAAW,GAChBA,EAAK,aAAe,KAKjBA,EAAK,KAAOA,EAAK,OACpBH,EAAYrB,CAAG,EAAI,CAClB,aAAc,GACd,SAAU,GACV,WAAYwB,EAAK,WACjB,MAAOL,EAAKnB,CAAG,CAChB,GAEF,OAAO,OAAO,OAAOtB,EAAeyC,CAAI,EAAGE,CAAW,MAChD,CAEN,IAAMhC,EAAQX,EAAeyC,CAAI,EACjC,GAAI9B,IAAU,MAAQ+B,EACrB,MAAO,CAAC,GAAGD,CAAI,EAEhB,IAAMvB,EAAM,OAAO,OAAOP,CAAK,EAC/B,OAAO,OAAO,OAAOO,EAAKuB,CAAI,EAEhC,CAUO,SAASM,EAAU7B,EAAU8B,EAAgB,GAAU,CAC7D,OAAIC,EAAS/B,CAAG,GAAKjB,EAAQiB,CAAG,GAAK,CAACd,EAAYc,CAAG,IACjDG,EAAYH,CAAG,EAAI,GACtB,OAAO,iBAAiBA,EAAK,CAC5B,IAAKgC,EACL,IAAKA,EACL,MAAOA,EACP,OAAQA,CACT,CAAC,EAEF,OAAO,OAAOhC,CAAG,EACb8B,GAGH,OAAO,OAAO9B,CAAG,EAAE,QAAQhB,GAAS6C,EAAO7C,EAAO,EAAI,CAAC,GACjDgB,CACR,CAEA,SAASiC,IAA8B,CACtCpC,EAAI,CAAC,CACN,CAEA,IAAMmC,EAA2B,CAChC,MAAOC,EACR,EAEO,SAASF,EAAS/B,EAAmB,CAE3C,OAAIA,IAAQ,MAAQ,OAAOA,GAAQ,SAAiB,GAC7C,OAAO,SAASA,CAAG,CAC3B,CCnOA,IAAMkC,GAoBF,CAAC,EAIE,SAASC,EACfC,EACiC,CACjC,IAAMC,EAASH,GAAQE,CAAS,EAChC,OAAKC,GACJC,EAAI,EAAGF,CAAS,EAGVC,CACR,CAEO,SAASE,EACfH,EACAI,EACO,CACFN,GAAQE,CAAS,IAAGF,GAAQE,CAAS,EAAII,EAC/C,CC5BA,IAAIC,EAEG,SAASC,GAAkB,CACjC,OAAOD,CACR,CAEA,SAASE,GACRC,EACAC,EACa,CACb,MAAO,CACNC,EAAS,CAAC,EACVF,IACAC,IAGAE,EAAgB,GAChBC,EAAoB,CACrB,CACD,CAEO,SAASC,GACfC,EACAC,EACC,CACGA,IACHC,EAAU,SAAS,EACnBF,EAAMG,EAAW,CAAC,EAClBH,EAAMI,EAAkB,CAAC,EACzBJ,EAAMK,EAAiBJ,EAEzB,CAEO,SAASK,EAAYN,EAAmB,CAC9CO,GAAWP,CAAK,EAChBA,EAAMJ,EAAQ,QAAQY,EAAW,EAEjCR,EAAMJ,EAAU,IACjB,CAEO,SAASW,GAAWP,EAAmB,CACzCA,IAAUT,IACbA,EAAeS,EAAMN,EAEvB,CAEO,SAASe,GAAWC,EAAc,CACxC,OAAQnB,EAAeE,GAAYF,EAAcmB,CAAK,CACvD,CAEA,SAASF,GAAYG,EAAgB,CACpC,IAAMC,EAAoBD,EAAME,CAAW,EACvCD,EAAME,IAAU,GAAmBF,EAAME,IAAU,EACtDF,EAAMG,EAAQ,EACVH,EAAMI,EAAW,EACvB,CC1DO,SAASC,GAAcC,EAAaC,EAAmB,CAC7DA,EAAMC,EAAqBD,EAAME,EAAQ,OACzC,IAAMC,EAAYH,EAAME,EAAS,CAAC,EAElC,OADmBH,IAAW,QAAaA,IAAWI,GAEjDA,EAAUC,CAAW,EAAEC,IAC1BC,EAAYN,CAAK,EACjBO,EAAI,CAAC,GAEFC,EAAYT,CAAM,IAErBA,EAASU,GAAST,EAAOD,CAAM,EAC1BC,EAAMU,GAASC,GAAYX,EAAOD,CAAM,GAE1CC,EAAMY,GACTC,EAAU,SAAS,EAAEC,EACpBX,EAAUC,CAAW,EAAEW,EACvBhB,EACAC,EAAMY,EACNZ,EAAMgB,CACP,GAIDjB,EAASU,GAAST,EAAOG,EAAW,CAAC,CAAC,EAEvCG,EAAYN,CAAK,EACbA,EAAMY,GACTZ,EAAMiB,EAAgBjB,EAAMY,EAAUZ,EAAMgB,CAAgB,EAEtDjB,IAAWmB,EAAUnB,EAAS,MACtC,CAEA,SAASU,GAASU,EAAuBC,EAAYC,EAAkB,CAEtE,GAAIC,EAASF,CAAK,EAAG,OAAOA,EAE5B,IAAMG,EAAqBJ,EAAUK,EAAO,yBAAyB,EAE/DC,EAAoBL,EAAMhB,CAAW,EAE3C,GAAI,CAACqB,EACJ,OAAAC,EACCN,EACA,CAACO,EAAKC,IACLC,GAAiBV,EAAWM,EAAOL,EAAOO,EAAKC,EAAYP,CAAI,EAChEE,CACD,EACOH,EAGR,GAAIK,EAAMK,IAAWX,EAAW,OAAOC,EAEvC,GAAI,CAACK,EAAMpB,EACV,OAAAM,GAAYQ,EAAWM,EAAMV,EAAO,EAAI,EACjCU,EAAMV,EAGd,GAAI,CAACU,EAAMM,EAAY,CACtBN,EAAMM,EAAa,GACnBN,EAAMK,EAAO7B,IACb,IAAMF,EAAS0B,EAAMO,EAKjBC,EAAalC,EACbmC,EAAQ,GACRT,EAAMU,IAAU,IACnBF,EAAa,IAAI,IAAIlC,CAAM,EAC3BA,EAAO,MAAM,EACbmC,EAAQ,IAETR,EACCO,EACA,CAACN,EAAKC,IACLC,GACCV,EACAM,EACA1B,EACA4B,EACAC,EACAP,EACAa,CACD,EACDX,CACD,EAEAZ,GAAYQ,EAAWpB,EAAQ,EAAK,EAEhCsB,GAAQF,EAAUP,GACrBC,EAAU,SAAS,EAAEuB,EACpBX,EACAJ,EACAF,EAAUP,EACVO,EAAUH,CACX,EAGF,OAAOS,EAAMO,CACd,CAEA,SAASH,GACRV,EACAkB,EACAC,EACAC,EACAX,EACAY,EACAC,EACC,CAKD,GAJIb,GAAc,MAId,OAAOA,GAAe,UAAY,CAACa,EACtC,OAED,IAAMC,EAAgBpB,EAASM,CAAU,EACzC,GAAI,EAAAc,GAAiB,CAACD,GAMtB,IAAIE,EAAQf,CAAU,EAAG,CACxB,IAAMP,EACLmB,GACAH,GACAA,EAAaF,IAAU,GACvB,CAACS,EAAKP,EAA8CQ,EAAYN,CAAI,EACjEC,EAAU,OAAOD,CAAI,EACrB,OAEEO,EAAMrC,GAASU,EAAWS,EAAYP,CAAI,EAIhD,GAHA0B,EAAIT,EAAcC,EAAMO,CAAG,EAGvBH,EAAQG,CAAG,EACd3B,EAAU6B,EAAiB,OACrB,aACGP,GACVH,EAAa,IAAIV,CAAU,EAG5B,GAAIpB,EAAYoB,CAAU,GAAK,CAACc,EAAe,CAS9C,GARI,CAACvB,EAAUK,EAAOyB,GAAe9B,EAAUlB,EAAqB,GASnEoC,GACAA,EAAYtB,GACZsB,EAAYtB,EAAMwB,CAAI,IAAMX,GAC5Bc,EAGA,OAEDjC,GAASU,EAAWS,CAAU,GAK5B,CAACS,GAAe,CAACA,EAAYP,EAAOpB,IACrC,OAAO6B,GAAS,WACfW,EAAMZ,CAAY,EAChBA,EAAa,IAAIC,CAAI,EACrB,OAAO,UAAU,qBAAqB,KAAKD,EAAcC,CAAI,IAEhE5B,GAAYQ,EAAWS,CAAU,GAEpC,CAEA,SAASjB,GAAYX,EAAmBoB,EAAY+B,EAAO,GAAO,CAE7D,CAACnD,EAAMU,GAAWV,EAAMwB,EAAOyB,GAAejD,EAAMgD,GACvDI,EAAOhC,EAAO+B,CAAI,CAEpB,CCzJO,SAASE,GACfC,EACAC,EACyB,CACzB,IAAMC,EAAU,MAAM,QAAQF,CAAI,EAC5BG,EAAoB,CACzBC,EAAOF,MAEPG,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EAEjDC,EAAW,GAEXC,EAAY,GAEZC,EAAW,CAAC,EAEZC,EAAST,EAETU,EAAOX,EAEPY,EAAQ,KAERC,EAAO,KAEPC,EAAS,KACTC,EAAW,EACZ,EAQIC,EAAYb,EACZc,EAA2CC,GAC3ChB,IACHc,EAAS,CAACb,CAAK,EACfc,EAAQE,GAGT,GAAM,CAAC,OAAAC,EAAQ,MAAAC,CAAK,EAAI,MAAM,UAAUL,EAAQC,CAAK,EACrD,OAAAd,EAAMS,EAASS,EACflB,EAAMW,EAAUM,EACTC,CACR,CAKO,IAAMH,GAAwC,CACpD,IAAIf,EAAOmB,EAAM,CAChB,GAAIA,IAASC,EAAa,OAAOpB,EAEjC,IAAMqB,EAASC,EAAOtB,CAAK,EAC3B,GAAI,CAACuB,EAAIF,EAAQF,CAAI,EAEpB,OAAOK,GAAkBxB,EAAOqB,EAAQF,CAAI,EAE7C,IAAMM,EAAQJ,EAAOF,CAAI,EACzB,OAAInB,EAAMK,GAAc,CAACqB,EAAYD,CAAK,EAClCA,EAIJA,IAAUE,GAAK3B,EAAMQ,EAAOW,CAAI,GACnCS,GAAY5B,CAAK,EACTA,EAAMU,EAAOS,CAAW,EAAIU,EAAYJ,EAAOzB,CAAK,GAEtDyB,CACR,EACA,IAAIzB,EAAOmB,EAAM,CAChB,OAAOA,KAAQG,EAAOtB,CAAK,CAC5B,EACA,QAAQA,EAAO,CACd,OAAO,QAAQ,QAAQsB,EAAOtB,CAAK,CAAC,CACrC,EACA,IACCA,EACAmB,EACAM,EACC,CACD,IAAMK,EAAOC,GAAuBT,EAAOtB,CAAK,EAAGmB,CAAI,EACvD,GAAIW,GAAM,IAGT,OAAAA,EAAK,IAAI,KAAK9B,EAAMS,EAAQgB,CAAK,EAC1B,GAER,GAAI,CAACzB,EAAMI,EAAW,CAGrB,IAAM4B,EAAUL,GAAKL,EAAOtB,CAAK,EAAGmB,CAAI,EAElCc,EAAiCD,IAAUZ,CAAW,EAC5D,GAAIa,GAAgBA,EAAazB,IAAUiB,EAC1C,OAAAzB,EAAMU,EAAOS,CAAI,EAAIM,EACrBzB,EAAMM,EAAUa,CAAI,EAAI,GACjB,GAER,GAAIe,GAAGT,EAAOO,CAAO,IAAMP,IAAU,QAAaF,EAAIvB,EAAMQ,EAAOW,CAAI,GACtE,MAAO,GACRS,GAAY5B,CAAK,EACjBmC,EAAYnC,CAAK,EAGlB,OACEA,EAAMU,EAAOS,CAAI,IAAMM,IAEtBA,IAAU,QAAaN,KAAQnB,EAAMU,IAEtC,OAAO,MAAMe,CAAK,GAAK,OAAO,MAAMzB,EAAMU,EAAOS,CAAI,CAAC,IAKxDnB,EAAMU,EAAOS,CAAI,EAAIM,EACrBzB,EAAMM,EAAUa,CAAI,EAAI,IACjB,EACR,EACA,eAAenB,EAAOmB,EAAc,CAEnC,OAAIQ,GAAK3B,EAAMQ,EAAOW,CAAI,IAAM,QAAaA,KAAQnB,EAAMQ,GAC1DR,EAAMM,EAAUa,CAAI,EAAI,GACxBS,GAAY5B,CAAK,EACjBmC,EAAYnC,CAAK,GAGjB,OAAOA,EAAMM,EAAUa,CAAI,EAExBnB,EAAMU,GACT,OAAOV,EAAMU,EAAMS,CAAI,EAEjB,EACR,EAGA,yBAAyBnB,EAAOmB,EAAM,CACrC,IAAMiB,EAAQd,EAAOtB,CAAK,EACpB8B,EAAO,QAAQ,yBAAyBM,EAAOjB,CAAI,EACzD,OAAKW,GACE,CACN,SAAU,GACV,aAAc9B,EAAMC,IAAU,GAAkBkB,IAAS,SACzD,WAAYW,EAAK,WACjB,MAAOM,EAAMjB,CAAI,CAClB,CACD,EACA,gBAAiB,CAChBkB,EAAI,EAAE,CACP,EACA,eAAerC,EAAO,CACrB,OAAOsC,EAAetC,EAAMQ,CAAK,CAClC,EACA,gBAAiB,CAChB6B,EAAI,EAAE,CACP,CACD,EAMMrB,EAA8C,CAAC,EACrDuB,EAAKxB,GAAa,CAACyB,EAAKC,IAAO,CAE9BzB,EAAWwB,CAAG,EAAI,UAAW,CAC5B,iBAAU,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,EACtBC,EAAG,MAAM,KAAM,SAAS,CAChC,CACD,CAAC,EACDzB,EAAW,eAAiB,SAAShB,EAAOmB,EAAM,CAIjD,OAAOH,EAAW,IAAK,KAAK,KAAMhB,EAAOmB,EAAM,MAAS,CACzD,EACAH,EAAW,IAAM,SAAShB,EAAOmB,EAAMM,EAAO,CAO7C,OAAOV,GAAY,IAAK,KAAK,KAAMf,EAAM,CAAC,EAAGmB,EAAMM,EAAOzB,EAAM,CAAC,CAAC,CACnE,EAGA,SAAS2B,GAAKe,EAAgBvB,EAAmB,CAChD,IAAMnB,EAAQ0C,EAAMtB,CAAW,EAE/B,OADepB,EAAQsB,EAAOtB,CAAK,EAAI0C,GACzBvB,CAAI,CACnB,CAEA,SAASK,GAAkBxB,EAAmBqB,EAAaF,EAAmB,CAC7E,IAAMW,EAAOC,GAAuBV,EAAQF,CAAI,EAChD,OAAOW,EACJ,UAAWA,EACVA,EAAK,MAGLA,EAAK,KAAK,KAAK9B,EAAMS,CAAM,EAC5B,MACJ,CAEA,SAASsB,GACRV,EACAF,EACiC,CAEjC,GAAI,EAAEA,KAAQE,GAAS,OACvB,IAAIsB,EAAQL,EAAejB,CAAM,EACjC,KAAOsB,GAAO,CACb,IAAMb,EAAO,OAAO,yBAAyBa,EAAOxB,CAAI,EACxD,GAAIW,EAAM,OAAOA,EACjBa,EAAQL,EAAeK,CAAK,EAG9B,CAEO,SAASR,EAAYnC,EAAmB,CACzCA,EAAMI,IACVJ,EAAMI,EAAY,GACdJ,EAAMO,GACT4B,EAAYnC,EAAMO,CAAO,EAG5B,CAEO,SAASqB,GAAY5B,EAIzB,CACGA,EAAMU,IACVV,EAAMU,EAAQkC,EACb5C,EAAMQ,EACNR,EAAME,EAAO2C,EAAOC,CACrB,EAEF,CChQO,IAAMC,EAAN,KAAoC,CAK1C,YAAYC,EAIT,CARH,KAAAC,EAAuB,GACvB,KAAAC,EAAoC,GACpC,KAAAC,EAA+B,GAkC/B,aAAoB,CAACC,EAAWC,EAAcC,IAAwB,CAErE,GAAI,OAAOF,GAAS,YAAc,OAAOC,GAAW,WAAY,CAC/D,IAAME,EAAcF,EACpBA,EAASD,EAET,IAAMI,EAAO,KACb,OAAO,SAENJ,EAAOG,KACJE,EACF,CACD,OAAOD,EAAK,QAAQJ,EAAOM,GAAmBL,EAAO,KAAK,KAAMK,EAAO,GAAGD,CAAI,CAAC,CAChF,EAGG,OAAOJ,GAAW,YAAYM,EAAI,CAAC,EACnCL,IAAkB,QAAa,OAAOA,GAAkB,YAC3DK,EAAI,CAAC,EAEN,IAAIC,EAGJ,GAAIC,EAAYT,CAAI,EAAG,CACtB,IAAMU,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYb,EAAM,MAAS,EACrCc,EAAW,GACf,GAAI,CACHN,EAASP,EAAOW,CAAK,EACrBE,EAAW,EACZ,QAAE,CAEGA,EAAUC,EAAYL,CAAK,EAC1BM,GAAWN,CAAK,CACtB,CACA,OAAAO,GAAkBP,EAAOR,CAAa,EAC/BgB,GAAcV,EAAQE,CAAK,UACxB,CAACV,GAAQ,OAAOA,GAAS,SAAU,CAK7C,GAJAQ,EAASP,EAAOD,CAAI,EAChBQ,IAAW,SAAWA,EAASR,GAC/BQ,IAAWW,IAASX,EAAS,QAC7B,KAAKX,GAAauB,EAAOZ,EAAQ,EAAI,EACrCN,EAAe,CAClB,IAAMmB,EAAa,CAAC,EACdC,EAAc,CAAC,EACrBC,EAAU,SAAS,EAAEC,EAA4BxB,EAAMQ,EAAQa,EAAGC,CAAE,EACpEpB,EAAcmB,EAAGC,CAAE,EAEpB,OAAOd,OACDD,EAAI,EAAGP,CAAI,CACnB,EAEA,wBAA0C,CAACA,EAAWC,IAAsB,CAE3E,GAAI,OAAOD,GAAS,WACnB,MAAO,CAACyB,KAAepB,IACtB,KAAK,mBAAmBoB,EAAQnB,GAAeN,EAAKM,EAAO,GAAGD,CAAI,CAAC,EAGrE,IAAIqB,EAAkBC,EAKtB,MAAO,CAJQ,KAAK,QAAQ3B,EAAMC,EAAQ,CAACoB,EAAYC,IAAgB,CACtEI,EAAUL,EACVM,EAAiBL,CAClB,CAAC,EACeI,EAAUC,CAAe,CAC1C,EA5FK,OAAO/B,GAAQ,YAAe,WACjC,KAAK,cAAcA,EAAQ,UAAU,EAClC,OAAOA,GAAQ,sBAAyB,WAC3C,KAAK,wBAAwBA,EAAQ,oBAAoB,EACtD,OAAOA,GAAQ,oBAAuB,WACzC,KAAK,sBAAsBA,EAAQ,kBAAkB,CACvD,CAwFA,YAAiCI,EAAmB,CAC9CS,EAAYT,CAAI,GAAGO,EAAI,CAAC,EACzBqB,EAAQ5B,CAAI,IAAGA,EAAO6B,GAAQ7B,CAAI,GACtC,IAAMU,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYb,EAAM,MAAS,EACzC,OAAAY,EAAMkB,CAAW,EAAEC,EAAY,GAC/Bf,GAAWN,CAAK,EACTE,CACR,CAEA,YACCN,EACAJ,EACuC,CACvC,IAAMuB,EAAoBnB,GAAUA,EAAcwB,CAAW,GACzD,CAACL,GAAS,CAACA,EAAMM,IAAWxB,EAAI,CAAC,EACrC,GAAM,CAACyB,EAAQtB,CAAK,EAAIe,EACxB,OAAAR,GAAkBP,EAAOR,CAAa,EAC/BgB,GAAc,OAAWR,CAAK,CACtC,CAOA,cAAcuB,EAAgB,CAC7B,KAAKpC,EAAcoC,CACpB,CAOA,wBAAwBA,EAAmB,CAC1C,KAAKnC,EAAwBmC,CAC9B,CAQA,sBAAsBA,EAAgB,CACrC,KAAKlC,EAAsBkC,CAC5B,CAEA,0BAAoC,CACnC,OAAO,KAAKlC,CACb,CAEA,aAAkCC,EAAS0B,EAA8B,CAGxE,IAAIQ,EACJ,IAAKA,EAAIR,EAAQ,OAAS,EAAGQ,GAAK,EAAGA,IAAK,CACzC,IAAMC,EAAQT,EAAQQ,CAAC,EACvB,GAAIC,EAAM,KAAK,SAAW,GAAKA,EAAM,KAAO,UAAW,CACtDnC,EAAOmC,EAAM,MACb,OAKED,EAAI,KACPR,EAAUA,EAAQ,MAAMQ,EAAI,CAAC,GAG9B,IAAME,EAAmBb,EAAU,SAAS,EAAEc,EAC9C,OAAIT,EAAQ5B,CAAI,EAERoC,EAAiBpC,EAAM0B,CAAO,EAG/B,KAAK,QAAQ1B,EAAOM,GAC1B8B,EAAiB9B,EAAOoB,CAAO,CAChC,CACD,CACD,EAEO,SAASb,EACfoB,EACAK,EACyB,CAEzB,IAAMhC,EAAiBiC,EAAMN,CAAK,EAC/BV,EAAU,QAAQ,EAAEiB,EAAUP,EAAOK,CAAM,EAC3CG,EAAMR,CAAK,EACXV,EAAU,QAAQ,EAAEmB,EAAUT,EAAOK,CAAM,EAC3CK,GAAiBV,EAAOK,CAAM,EAGjC,OADcA,EAASA,EAAON,EAASY,EAAgB,GACjDC,EAAQ,KAAKvC,CAAK,EACjBA,CACR,CC7NO,SAASwC,GAAQC,EAAiB,CACxC,OAAKC,EAAQD,CAAK,GAAGE,EAAI,GAAIF,CAAK,EAC3BG,GAAYH,CAAK,CACzB,CAEA,SAASG,GAAYH,EAAiB,CACrC,GAAI,CAACI,EAAYJ,CAAK,GAAKK,EAASL,CAAK,EAAG,OAAOA,EACnD,IAAMM,EAAgCN,EAAMO,CAAW,EACnDC,EACAC,EAAS,GACb,GAAIH,EAAO,CACV,GAAI,CAACA,EAAMI,EAAW,OAAOJ,EAAMK,EAEnCL,EAAMM,EAAa,GACnBJ,EAAOK,EAAYb,EAAOM,EAAMQ,EAAOC,EAAOC,CAAqB,EACnEP,EAASH,EAAMQ,EAAOC,EAAO,yBAAyB,OAEtDP,EAAOK,EAAYb,EAAO,EAAI,EAG/B,OAAAiB,EACCT,EACA,CAACU,EAAKC,IAAe,CACpBC,EAAIZ,EAAMU,EAAKf,GAAYgB,CAAU,CAAC,CACvC,EACAV,CACD,EACIH,IACHA,EAAMM,EAAa,IAEbJ,CACR,CCpBO,SAASa,IAAgB,CAe/B,IAAMC,EAAU,UACVC,EAAM,MACNC,EAAS,SAEf,SAASC,EACRC,EACAC,EACAC,EACAC,EACO,CACP,OAAQH,EAAMI,EAAO,CACpB,OACA,OACC,OAAOC,EACNL,EACAC,EACAC,EACAC,CACD,EACD,OACC,OAAOG,EAAqBN,EAAOC,EAAUC,EAASC,CAAc,EACrE,OACC,OAAOI,EACLP,EACDC,EACAC,EACAC,CACD,CACF,CACD,CAEA,SAASG,EACRN,EACAC,EACAC,EACAC,EACC,CACD,GAAI,CAACK,IAAOC,GAAS,EAAIT,EACrBU,EAAQV,EAAMU,EAGdA,EAAM,OAASF,EAAM,SAEvB,CAACA,EAAOE,CAAK,EAAI,CAACA,EAAOF,CAAK,EAC9B,CAACN,EAASC,CAAc,EAAI,CAACA,EAAgBD,CAAO,GAItD,QAASS,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IACjC,GAAIF,EAAUE,CAAC,GAAKD,EAAMC,CAAC,IAAMH,EAAMG,CAAC,EAAG,CAC1C,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIN,EACJ,KAAAgB,EAGA,MAAOC,EAAwBH,EAAMC,CAAC,CAAC,CACxC,CAAC,EACDR,EAAe,KAAK,CACnB,GAAIP,EACJ,KAAAgB,EACA,MAAOC,EAAwBL,EAAMG,CAAC,CAAC,CACxC,CAAC,EAKH,QAASA,EAAIH,EAAM,OAAQG,EAAID,EAAM,OAAQC,IAAK,CACjD,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIL,EACJ,KAAAe,EAGA,MAAOC,EAAwBH,EAAMC,CAAC,CAAC,CACxC,CAAC,EAEF,QAASA,EAAID,EAAM,OAAS,EAAGF,EAAM,QAAUG,EAAG,EAAEA,EAAG,CACtD,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCR,EAAe,KAAK,CACnB,GAAIL,EACJ,KAAAc,CACD,CAAC,EAEH,CAGA,SAASP,EACRL,EACAC,EACAC,EACAC,EACC,CACD,GAAM,CAACK,IAAOE,GAAK,EAAIV,EACvBc,EAAKd,EAAMS,EAAY,CAACM,EAAKC,IAAkB,CAC9C,IAAMC,EAAYC,EAAIV,EAAOO,CAAG,EAC1BI,EAAQD,EAAIR,EAAQK,CAAG,EACvBK,EAAMJ,EAAyBK,EAAIb,EAAOO,CAAG,EAAInB,EAAUC,EAArCC,EAC5B,GAAImB,IAAcE,GAASC,IAAOxB,EAAS,OAC3C,IAAMgB,EAAOX,EAAS,OAAOc,CAAU,EACvCb,EAAQ,KAAKkB,IAAOtB,EAAS,CAAC,GAAAsB,EAAI,KAAAR,CAAI,EAAI,CAAC,GAAAQ,EAAI,KAAAR,EAAM,MAAAO,CAAK,CAAC,EAC3DhB,EAAe,KACdiB,IAAOvB,EACJ,CAAC,GAAIC,EAAQ,KAAAc,CAAI,EACjBQ,IAAOtB,EACP,CAAC,GAAID,EAAK,KAAAe,EAAM,MAAOC,EAAwBI,CAAS,CAAC,EACzD,CAAC,GAAIrB,EAAS,KAAAgB,EAAM,MAAOC,EAAwBI,CAAS,CAAC,CACjE,CACD,CAAC,CACF,CAEA,SAASV,EACRP,EACAC,EACAC,EACAC,EACC,CACD,GAAI,CAACK,IAAOE,GAAK,EAAIV,EAEjBW,EAAI,EACRH,EAAM,QAASW,GAAe,CAC7B,GAAI,CAACT,EAAO,IAAIS,CAAK,EAAG,CACvB,IAAMP,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIJ,EACJ,KAAAc,EACA,MAAAO,CACD,CAAC,EACDhB,EAAe,QAAQ,CACtB,GAAIN,EACJ,KAAAe,EACA,MAAAO,CACD,CAAC,EAEFR,GACD,CAAC,EACDA,EAAI,EACJD,EAAO,QAASS,GAAe,CAC9B,GAAI,CAACX,EAAM,IAAIW,CAAK,EAAG,CACtB,IAAMP,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIL,EACJ,KAAAe,EACA,MAAAO,CACD,CAAC,EACDhB,EAAe,QAAQ,CACtB,GAAIL,EACJ,KAAAc,EACA,MAAAO,CACD,CAAC,EAEFR,GACD,CAAC,CACF,CAEA,SAASW,EACRC,EACAC,EACAtB,EACAC,EACO,CACPD,EAAQ,KAAK,CACZ,GAAIN,EACJ,KAAM,CAAC,EACP,MAAO4B,IAAgBC,EAAU,OAAYD,CAC9C,CAAC,EACDrB,EAAe,KAAK,CACnB,GAAIP,EACJ,KAAM,CAAC,EACP,MAAO2B,CACR,CAAC,CACF,CAEA,SAASG,EAAiBC,EAAUzB,EAA8B,CACjE,OAAAA,EAAQ,QAAQ0B,GAAS,CACxB,GAAM,CAAC,KAAAhB,EAAM,GAAAQ,CAAE,EAAIQ,EAEfC,EAAYF,EAChB,QAAShB,EAAI,EAAGA,EAAIC,EAAK,OAAS,EAAGD,IAAK,CACzC,IAAMmB,EAAaC,EAAYF,CAAI,EAC/BG,EAAIpB,EAAKD,CAAC,EACV,OAAOqB,GAAM,UAAY,OAAOA,GAAM,WACzCA,EAAI,GAAKA,IAKRF,IAAe,GAAmBA,IAAe,KACjDE,IAAM,aAAeA,IAAM,gBAE5BC,EAAI,GAAc,CAAC,EAChB,OAAOJ,GAAS,YAAcG,IAAM,aACvCC,EAAI,GAAc,CAAC,EACpBJ,EAAOX,EAAIW,EAAMG,CAAC,EACd,OAAOH,GAAS,UAAUI,EAAI,GAAc,EAAGrB,EAAK,KAAK,GAAG,CAAC,EAGlE,IAAMsB,EAAOH,EAAYF,CAAI,EACvBV,EAAQgB,EAAoBP,EAAM,KAAK,EACvCb,EAAMH,EAAKA,EAAK,OAAS,CAAC,EAChC,OAAQQ,EAAI,CACX,KAAKxB,EACJ,OAAQsC,EAAM,CACb,OACC,OAAOL,EAAK,IAAId,EAAKI,CAAK,EAE3B,OACCc,EAAI,EAAW,EAChB,QAKC,OAAQJ,EAAKd,CAAG,EAAII,CACtB,CACD,KAAKtB,EACJ,OAAQqC,EAAM,CACb,OACC,OAAOnB,IAAQ,IACZc,EAAK,KAAKV,CAAK,EACfU,EAAK,OAAOd,EAAY,EAAGI,CAAK,EACpC,OACC,OAAOU,EAAK,IAAId,EAAKI,CAAK,EAC3B,OACC,OAAOU,EAAK,IAAIV,CAAK,EACtB,QACC,OAAQU,EAAKd,CAAG,EAAII,CACtB,CACD,KAAKrB,EACJ,OAAQoC,EAAM,CACb,OACC,OAAOL,EAAK,OAAOd,EAAY,CAAC,EACjC,OACC,OAAOc,EAAK,OAAOd,CAAG,EACvB,OACC,OAAOc,EAAK,OAAOD,EAAM,KAAK,EAC/B,QACC,OAAO,OAAOC,EAAKd,CAAG,CACxB,CACD,QACCkB,EAAI,GAAc,EAAGb,CAAE,CACzB,CACD,CAAC,EAEMO,CACR,CAMA,SAASQ,EAAoBC,EAAU,CACtC,GAAI,CAACC,EAAYD,CAAG,EAAG,OAAOA,EAC9B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,EAAI,IAAID,CAAmB,EAC1D,GAAIG,EAAMF,CAAG,EACZ,OAAO,IAAI,IACV,MAAM,KAAKA,EAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACG,EAAGC,CAAC,IAAM,CAACD,EAAGJ,EAAoBK,CAAC,CAAC,CAAC,CACtE,EACD,GAAIC,EAAML,CAAG,EAAG,OAAO,IAAI,IAAI,MAAM,KAAKA,CAAG,EAAE,IAAID,CAAmB,CAAC,EACvE,IAAMO,EAAS,OAAO,OAAOC,EAAeP,CAAG,CAAC,EAChD,QAAWrB,KAAOqB,EAAKM,EAAO3B,CAAG,EAAIoB,EAAoBC,EAAIrB,CAAG,CAAC,EACjE,OAAIM,EAAIe,EAAKQ,CAAS,IAAGF,EAAOE,CAAS,EAAIR,EAAIQ,CAAS,GACnDF,CACR,CAEA,SAAS7B,EAA2BuB,EAAW,CAC9C,OAAIS,EAAQT,CAAG,EACPD,EAAoBC,CAAG,EACjBA,CACf,CAEAU,EAAW,UAAW,CACrBpB,IACA3B,IACAuB,GACD,CAAC,CACF,CCzSO,SAASyB,IAAe,CAC9B,MAAMC,UAAiB,GAAI,CAG1B,YAAYC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EACAC,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPC,EAAW,OACXC,EAAOX,EACPY,EAAQ,KACRC,EAAW,GACXC,EAAU,EACX,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKb,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIc,EAAmB,CACtB,OAAOD,EAAO,KAAKb,CAAW,CAAC,EAAE,IAAIc,CAAG,CACzC,CAEA,IAAIA,EAAUC,EAAY,CACzB,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,GACjB,CAACH,EAAOG,CAAK,EAAE,IAAIF,CAAG,GAAKD,EAAOG,CAAK,EAAE,IAAIF,CAAG,IAAMC,KACzDG,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMR,EAAW,IAAIM,EAAK,EAAI,EAC9BE,EAAMT,EAAO,IAAIO,EAAKC,CAAK,EAC3BC,EAAMR,EAAW,IAAIM,EAAK,EAAI,GAExB,IACR,CAEA,OAAOA,EAAmB,CACzB,GAAI,CAAC,KAAK,IAAIA,CAAG,EAChB,MAAO,GAGR,IAAME,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACbA,EAAMP,EAAM,IAAIK,CAAG,EACtBE,EAAMR,EAAW,IAAIM,EAAK,EAAK,EAE/BE,EAAMR,EAAW,OAAOM,CAAG,EAE5BE,EAAMT,EAAO,OAAOO,CAAG,EAChB,EACR,CAEA,OAAQ,CACP,IAAME,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMR,EAAY,IAAI,IACtBY,EAAKJ,EAAMP,EAAOK,GAAO,CACxBE,EAAMR,EAAW,IAAIM,EAAK,EAAK,CAChC,CAAC,EACDE,EAAMT,EAAO,MAAM,EAErB,CAEA,QAAQc,EAA+CC,EAAe,CACrE,IAAMN,EAAkB,KAAKhB,CAAW,EACxCa,EAAOG,CAAK,EAAE,QAAQ,CAACO,EAAaT,EAAUU,IAAc,CAC3DH,EAAG,KAAKC,EAAS,KAAK,IAAIR,CAAG,EAAGA,EAAK,IAAI,CAC1C,CAAC,CACF,CAEA,IAAIA,EAAe,CAClB,IAAME,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACrB,IAAMD,EAAQF,EAAOG,CAAK,EAAE,IAAIF,CAAG,EAInC,GAHIE,EAAMV,GAAc,CAACmB,EAAYV,CAAK,GAGtCA,IAAUC,EAAMP,EAAM,IAAIK,CAAG,EAChC,OAAOC,EAGR,IAAMW,EAAQC,EAAYZ,EAAOC,CAAK,EACtC,OAAAE,EAAeF,CAAK,EACpBA,EAAMT,EAAO,IAAIO,EAAKY,CAAK,EACpBA,CACR,CAEA,MAA8B,CAC7B,OAAOb,EAAO,KAAKb,CAAW,CAAC,EAAE,KAAK,CACvC,CAEA,QAAgC,CAC/B,IAAM4B,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,OAAO,EACrC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,OAAIC,EAAE,KAAaA,EAEZ,CACN,KAAM,GACN,MAHa,KAAK,IAAIA,EAAE,KAAK,CAI9B,CACD,CACD,CACD,CAEA,SAAwC,CACvC,IAAMD,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,QAAQ,EACtC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,GAAIC,EAAE,KAAM,OAAOA,EACnB,IAAMd,EAAQ,KAAK,IAAIc,EAAE,KAAK,EAC9B,MAAO,CACN,KAAM,GACN,MAAO,CAACA,EAAE,MAAOd,CAAK,CACvB,CACD,CACD,CACD,CAEA,EAtICf,EAsIA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,QAAQ,CACrB,CACD,CAEA,SAAS8B,EAA4BhC,EAAWC,EAAwB,CAEvE,OAAO,IAAIF,EAASC,EAAQC,CAAM,CACnC,CAEA,SAASmB,EAAeF,EAAiB,CACnCA,EAAMT,IACVS,EAAMR,EAAY,IAAI,IACtBQ,EAAMT,EAAQ,IAAI,IAAIS,EAAMP,CAAK,EAEnC,CAEA,MAAMsB,UAAiB,GAAI,CAE1B,YAAYjC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EACAC,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPE,EAAOX,EACPY,EAAQ,KACRsB,EAAS,IAAI,IACbpB,EAAU,GACVD,EAAW,EACZ,CACD,CAEA,IAAI,MAAe,CAClB,OAAOE,EAAO,KAAKb,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIe,EAAqB,CACxB,IAAMC,EAAkB,KAAKhB,CAAW,EAGxC,OAFAiB,EAAgBD,CAAK,EAEhBA,EAAMT,EAGP,GAAAS,EAAMT,EAAM,IAAIQ,CAAK,GACrBC,EAAMgB,EAAQ,IAAIjB,CAAK,GAAKC,EAAMT,EAAM,IAAIS,EAAMgB,EAAQ,IAAIjB,CAAK,CAAC,GAHhEC,EAAMP,EAAM,IAAIM,CAAK,CAM9B,CAEA,IAAIA,EAAiB,CACpB,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EAChB,KAAK,IAAID,CAAK,IAClBkB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAO,IAAIQ,CAAK,GAEhB,IACR,CAEA,OAAOA,EAAiB,CACvB,GAAI,CAAC,KAAK,IAAIA,CAAK,EAClB,MAAO,GAGR,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EAEhBA,EAAMT,EAAO,OAAOQ,CAAK,IACxBC,EAAMgB,EAAQ,IAAIjB,CAAK,EACrBC,EAAMT,EAAO,OAAOS,EAAMgB,EAAQ,IAAIjB,CAAK,CAAC,EACjB,GAEhC,CAEA,OAAQ,CACP,IAAMC,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBiB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAO,MAAM,EAErB,CAEA,QAAgC,CAC/B,IAAMS,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACbA,EAAMT,EAAO,OAAO,CAC5B,CAEA,SAAwC,CACvC,IAAMS,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACbA,EAAMT,EAAO,QAAQ,CAC7B,CAEA,MAA8B,CAC7B,OAAO,KAAK,OAAO,CACpB,CAEA,EA3FCP,EA2FA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,OAAO,CACpB,CAEA,QAAQqB,EAASC,EAAe,CAC/B,IAAMM,EAAW,KAAK,OAAO,EACzBM,EAASN,EAAS,KAAK,EAC3B,KAAO,CAACM,EAAO,MACdb,EAAG,KAAKC,EAASY,EAAO,MAAOA,EAAO,MAAO,IAAI,EACjDA,EAASN,EAAS,KAAK,CAEzB,CACD,CACA,SAASO,EAA4BrC,EAAWC,EAAwB,CAEvE,OAAO,IAAIgC,EAASjC,EAAQC,CAAM,CACnC,CAEA,SAASkC,EAAejB,EAAiB,CACnCA,EAAMT,IAEVS,EAAMT,EAAQ,IAAI,IAClBS,EAAMP,EAAM,QAAQM,GAAS,CAC5B,GAAIU,EAAYV,CAAK,EAAG,CACvB,IAAMW,EAAQC,EAAYZ,EAAOC,CAAK,EACtCA,EAAMgB,EAAQ,IAAIjB,EAAOW,CAAK,EAC9BV,EAAMT,EAAO,IAAImB,CAAK,OAEtBV,EAAMT,EAAO,IAAIQ,CAAK,CAExB,CAAC,EAEH,CAEA,SAASE,EAAgBD,EAA+C,CACnEA,EAAMJ,GAAUwB,EAAI,EAAG,KAAK,UAAUvB,EAAOG,CAAK,CAAC,CAAC,CACzD,CAEAqB,EAAW,SAAU,CAACP,IAAWK,GAAS,CAAC,CAC5C,CXrRA,IAAMG,EAAQ,IAAIC,EAqBLC,GAAoCF,EAAM,QAM1CG,GAA0DH,EAAM,mBAAmB,KAC/FA,CACD,EAOaI,GAAgCJ,EAAM,cAAc,KAAKA,CAAK,EAO9DK,GAA0CL,EAAM,wBAAwB,KACpFA,CACD,EAQaM,GAAwCN,EAAM,sBAAsB,KAChFA,CACD,EAOaO,GAA+BP,EAAM,aAAa,KAAKA,CAAK,EAM5DQ,GAA8BR,EAAM,YAAY,KAAKA,CAAK,EAU1DS,GAA8BT,EAAM,YAAY,KAAKA,CAAK,EAQhE,SAASU,GAAaC,EAAoB,CAChD,OAAOA,CACR,CAOO,SAASC,GAAiBD,EAAwB,CACxD,OAAOA,CACR","names":["immer_exports","__export","Immer","applyPatches","castDraft","castImmutable","createDraft","current","enableMapSet","enablePatches","finishDraft","freeze","DRAFTABLE","isDraft","isDraftable","NOTHING","original","produce","produceWithPatches","setAutoFreeze","setUseStrictIteration","setUseStrictShallowCopy","__toCommonJS","NOTHING","DRAFTABLE","DRAFT_STATE","die","error","args","getPrototypeOf","isDraft","value","DRAFT_STATE","isDraftable","isPlainObject","DRAFTABLE","isMap","isSet","objectCtorString","cachedCtorStrings","proto","Ctor","ctorString","original","die","base_","each","obj","iter","strict","getArchtype","key","entry","index","thing","state","type_","has","prop","get","set","propOrOldValue","t","is","x","y","target","latest","copy_","shallowCopy","base","isPlain","descriptors","keys","i","desc","freeze","deep","isFrozen","dontMutateMethodOverride","dontMutateFrozenCollections","plugins","getPlugin","pluginKey","plugin","die","loadPlugin","implementation","currentScope","getCurrentScope","createScope","parent_","immer_","drafts_","canAutoFreeze_","unfinalizedDrafts_","usePatchesInScope","scope","patchListener","getPlugin","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","revokeDraft","enterScope","immer","draft","state","DRAFT_STATE","type_","revoke_","revoked_","processResult","result","scope","unfinalizedDrafts_","drafts_","baseDraft","DRAFT_STATE","modified_","revokeScope","die","isDraftable","finalize","parent_","maybeFreeze","patches_","getPlugin","generateReplacementPatches_","base_","inversePatches_","patchListener_","NOTHING","rootScope","value","path","isFrozen","useStrictIteration","immer_","state","each","key","childValue","finalizeProperty","scope_","finalized_","copy_","resultEach","isSet","type_","generatePatches_","parentState","targetObject","prop","rootPath","targetIsSet","childIsFrozen","isDraft","has","assigned_","res","set","canAutoFreeze_","autoFreeze_","isMap","deep","freeze","createProxyProxy","base","parent","isArray","state","type_","scope_","getCurrentScope","modified_","finalized_","assigned_","parent_","base_","draft_","copy_","revoke_","isManual_","target","traps","objectTraps","arrayTraps","revoke","proxy","prop","DRAFT_STATE","source","latest","has","readPropFromProto","value","isDraftable","peek","prepareCopy","createProxy","desc","getDescriptorFromProto","current","currentState","is","markChanged","owner","die","getPrototypeOf","each","key","fn","draft","proto","shallowCopy","immer_","useStrictShallowCopy_","Immer","config","autoFreeze_","useStrictShallowCopy_","useStrictIteration_","base","recipe","patchListener","defaultBase","self","args","draft","die","result","isDraftable","scope","enterScope","proxy","createProxy","hasError","revokeScope","leaveScope","usePatchesInScope","processResult","NOTHING","freeze","p","ip","getPlugin","generateReplacementPatches_","state","patches","inversePatches","isDraft","current","DRAFT_STATE","isManual_","scope_","value","i","patch","applyPatchesImpl","applyPatches_","parent","isMap","proxyMap_","isSet","proxySet_","createProxyProxy","getCurrentScope","drafts_","current","value","isDraft","die","currentImpl","isDraftable","isFrozen","state","DRAFT_STATE","copy","strict","modified_","base_","finalized_","shallowCopy","scope_","immer_","useStrictShallowCopy_","each","key","childValue","set","enablePatches","REPLACE","ADD","REMOVE","generatePatches_","state","basePath","patches","inversePatches","type_","generatePatchesFromAssigned","generateArrayPatches","generateSetPatches","base_","assigned_","copy_","i","path","clonePatchValueIfNeeded","each","key","assignedValue","origValue","get","value","op","has","generateReplacementPatches_","baseValue","replacement","NOTHING","applyPatches_","draft","patch","base","parentType","getArchtype","p","die","type","deepClonePatchValue","obj","isDraftable","isMap","k","v","isSet","cloned","getPrototypeOf","DRAFTABLE","isDraft","loadPlugin","enableMapSet","DraftMap","target","parent","DRAFT_STATE","type_","parent_","scope_","getCurrentScope","modified_","finalized_","copy_","assigned_","base_","draft_","isManual_","revoked_","latest","key","value","state","assertUnrevoked","prepareMapCopy","markChanged","each","cb","thisArg","_value","_map","isDraftable","draft","createProxy","iterator","r","proxyMap_","DraftSet","drafts_","prepareSetCopy","result","proxySet_","die","loadPlugin","immer","Immer","produce","produceWithPatches","setAutoFreeze","setUseStrictShallowCopy","setUseStrictIteration","applyPatches","createDraft","finishDraft","castDraft","value","castImmutable"]}
Index: de_modules/immer/dist/cjs/index.js
===================================================================
--- node_modules/immer/dist/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-
-'use strict'
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./immer.cjs.production.js')
-} else {
-  module.exports = require('./immer.cjs.development.js')
-}
Index: de_modules/immer/dist/cjs/index.js.flow
===================================================================
--- node_modules/immer/dist/cjs/index.js.flow	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-// @flow
-
-export interface Patch {
-	op: "replace" | "remove" | "add";
-	path: (string | number)[];
-	value?: any;
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-type Base = {...} | Array<any>
-interface IProduce {
-	/**
-	 * Immer takes a state, and runs a function against it.
-	 * That function can freely mutate the state, as it will create copies-on-write.
-	 * This means that the original state will stay unchanged, and once the function finishes, the modified state is returned.
-	 *
-	 * If the first argument is a function, this is interpreted as the recipe, and will create a curried function that will execute the recipe
-	 * any time it is called with the current state.
-	 *
-	 * @param currentState - the state to start with
-	 * @param recipe - function that receives a proxy of the current state as first argument and which can be freely modified
-	 * @param initialState - if a curried function is created and this argument was given, it will be used as fallback if the curried function is called with a state of undefined
-	 * @returns The next state: a new state, or the current state if nothing was modified
-	 */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void,
-		patchListener?: PatchListener
-	): S;
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-}
-
-interface IProduceWithPatches {
-        /**
-         * Like `produce`, but instead of just returning the new state,
-         * a tuple is returned with [nextState, patches, inversePatches]
-         *
-         * Like produce, this function supports currying
-         */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void
-	): [S, Patch[], Patch[]];
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-}
-
-declare export var produce: IProduce
-
-declare export var produceWithPatches: IProduceWithPatches
-
-declare export var nothing: typeof undefined
-
-declare export var immerable: Symbol
-
-/**
- * Automatically freezes any state trees generated by immer.
- * This protects against accidental modifications of the state tree outside of an immer function.
- * This comes with a performance impact, so it is recommended to disable this option in production.
- * By default it is turned on during local development, and turned off in production.
- */
-declare export function setAutoFreeze(autoFreeze: boolean): void
-
-/**
- * Pass false to disable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare export function setUseStrictShallowCopy(useStrictShallowCopy: boolean): void
-
-declare export function applyPatches<S>(state: S, patches: Patch[]): S
-
-declare export function original<S>(value: S): S
-
-declare export function current<S>(value: S): S
-
-declare export function isDraft(value: any): boolean
-
-/**
- * Creates a mutable draft from an (immutable) object / array.
- * The draft can be modified until `finishDraft` is called
- */
-declare export function createDraft<T>(base: T): T
-
-/**
- * Given a draft that was created using `createDraft`,
- * finalizes the draft into a new immutable object.
- * Optionally a patch-listener can be provided to gather the patches that are needed to construct the object.
- */
-declare export function finishDraft<T>(base: T, listener?: PatchListener): T
-
-declare export function enableMapSet(): void
-declare export function enablePatches(): void
-
-declare export function freeze<T>(obj: T, freeze?: boolean): T
Index: de_modules/immer/dist/immer.d.ts
===================================================================
--- node_modules/immer/dist/immer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,279 +1,0 @@
-/**
- * The sentinel value returned by producers to replace the draft with undefined.
- */
-declare const NOTHING: unique symbol;
-/**
- * To let Immer treat your class instances as plain immutable objects
- * (albeit with a custom prototype), you must define either an instance property
- * or a static property on each of your custom classes.
- *
- * Otherwise, your class instance will never be drafted, which means it won't be
- * safe to mutate in a produce callback.
- */
-declare const DRAFTABLE: unique symbol;
-
-type AnyFunc = (...args: any[]) => any;
-type PrimitiveType = number | string | boolean;
-/** Object types that should never be mapped */
-type AtomicObject = Function | Promise<any> | Date | RegExp;
-/**
- * If the lib "ES2015.Collection" is not included in tsconfig.json,
- * types like ReadonlyArray, WeakMap etc. fall back to `any` (specified nowhere)
- * or `{}` (from the node types), in both cases entering an infinite recursion in
- * pattern matching type mappings
- * This type can be used to cast these types to `void` in these cases.
- */
-type IfAvailable<T, Fallback = void> = true | false extends (T extends never ? true : false) ? Fallback : keyof T extends never ? Fallback : T;
-/**
- * These should also never be mapped but must be tested after regular Map and
- * Set
- */
-type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>;
-type WritableDraft<T> = {
-    -readonly [K in keyof T]: Draft<T[K]>;
-};
-/** Convert a readonly type into a mutable type, if possible */
-type Draft<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? Map<Draft<K>, Draft<V>> : T extends ReadonlySet<infer V> ? Set<Draft<V>> : T extends WeakReferences ? T : T extends object ? WritableDraft<T> : T;
-/** Convert a mutable type into a readonly type */
-type Immutable<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Immutable<K>, Immutable<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Immutable<V>> : T extends WeakReferences ? T : T extends object ? {
-    readonly [K in keyof T]: Immutable<T[K]>;
-} : T;
-interface Patch {
-    op: "replace" | "remove" | "add";
-    path: (string | number)[];
-    value?: any;
-}
-type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void;
-/**
- * Utility types
- */
-type PatchesTuple<T> = readonly [T, Patch[], Patch[]];
-type ValidRecipeReturnType<State> = State | void | undefined | (State extends undefined ? typeof NOTHING : never);
-type ReturnTypeWithPatchesIfNeeded<State, UsePatches extends boolean> = UsePatches extends true ? PatchesTuple<State> : State;
-/**
- * Core Producer inference
- */
-type InferRecipeFromCurried<Curried> = Curried extends (base: infer State, ...rest: infer Args) => any ? ReturnType<Curried> extends State ? (draft: Draft<State>, ...rest: Args) => ValidRecipeReturnType<Draft<State>> : never : never;
-type InferInitialStateFromCurried<Curried> = Curried extends (base: infer State, ...rest: any[]) => any ? State : never;
-type InferCurriedFromRecipe<Recipe, UsePatches extends boolean> = Recipe extends (draft: infer DraftState, ...args: infer RestArgs) => any ? ReturnType<Recipe> extends ValidRecipeReturnType<DraftState> ? (base: Immutable<DraftState>, ...args: RestArgs) => ReturnTypeWithPatchesIfNeeded<DraftState, UsePatches> : never : never;
-type InferCurriedFromInitialStateAndRecipe<State, Recipe, UsePatches extends boolean> = Recipe extends (draft: Draft<State>, ...rest: infer RestArgs) => ValidRecipeReturnType<State> ? (base?: State | undefined, ...args: RestArgs) => ReturnTypeWithPatchesIfNeeded<State, UsePatches> : never;
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-interface IProduce {
-    /** Curried producer that infers the recipe from the curried output function (e.g. when passing to setState) */
-    <Curried>(recipe: InferRecipeFromCurried<Curried>, initialState?: InferInitialStateFromCurried<Curried>): Curried;
-    /** Curried producer that infers curried from the recipe  */
-    <Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, false>;
-    /** Curried producer that infers curried from the State generic, which is explicitly passed in.  */
-    <State>(recipe: (state: Draft<State>, initialState: State) => ValidRecipeReturnType<State>): (state?: State) => State;
-    <State, Args extends any[]>(recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>, initialState: State): (state?: State, ...args: Args) => State;
-    <State>(recipe: (state: Draft<State>) => ValidRecipeReturnType<State>): (state: State) => State;
-    <State, Args extends any[]>(recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>): (state: State, ...args: Args) => State;
-    /** Curried producer with initial state, infers recipe from initial state */
-    <State, Recipe extends Function>(recipe: Recipe, initialState: State): InferCurriedFromInitialStateAndRecipe<State, Recipe, false>;
-    /** Normal producer */
-    <Base, D = Draft<Base>>(// By using a default inferred D, rather than Draft<Base> in the recipe, we can override it.
-    base: Base, recipe: (draft: D) => ValidRecipeReturnType<D>, listener?: PatchListener): Base;
-}
-/**
- * Like `produce`, but instead of just returning the new state,
- * a tuple is returned with [nextState, patches, inversePatches]
- *
- * Like produce, this function supports currying
- */
-interface IProduceWithPatches {
-    <Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, true>;
-    <State, Recipe extends Function>(recipe: Recipe, initialState: State): InferCurriedFromInitialStateAndRecipe<State, Recipe, true>;
-    <Base, D = Draft<Base>>(base: Base, recipe: (draft: D) => ValidRecipeReturnType<D>, listener?: PatchListener): PatchesTuple<Base>;
-}
-/**
- * The type for `recipe function`
- */
-type Producer<T> = (draft: Draft<T>) => ValidRecipeReturnType<Draft<T>>;
-
-type Objectish = AnyObject | AnyArray | AnyMap | AnySet;
-type AnyObject = {
-    [key: string]: any;
-};
-type AnyArray = Array<any>;
-type AnySet = Set<any>;
-type AnyMap = Map<any, any>;
-
-/** Returns true if the given value is an Immer draft */
-declare function isDraft(value: any): boolean;
-/** Returns true if the given value can be drafted by Immer */
-declare function isDraftable(value: any): boolean;
-/** Get the underlying object that is represented by the given draft */
-declare function original<T>(value: T): T | undefined;
-/**
- * Freezes draftable objects. Returns the original object.
- * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.
- *
- * @param obj
- * @param deep
- */
-declare function freeze<T>(obj: T, deep?: boolean): T;
-
-interface ProducersFns {
-    produce: IProduce;
-    produceWithPatches: IProduceWithPatches;
-}
-type StrictMode = boolean | "class_only";
-declare class Immer implements ProducersFns {
-    autoFreeze_: boolean;
-    useStrictShallowCopy_: StrictMode;
-    useStrictIteration_: boolean;
-    constructor(config?: {
-        autoFreeze?: boolean;
-        useStrictShallowCopy?: StrictMode;
-        useStrictIteration?: boolean;
-    });
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    produce: IProduce;
-    produceWithPatches: IProduceWithPatches;
-    createDraft<T extends Objectish>(base: T): Draft<T>;
-    finishDraft<D extends Draft<any>>(draft: D, patchListener?: PatchListener): D extends Draft<infer T> ? T : never;
-    /**
-     * Pass true to automatically freeze all copies created by Immer.
-     *
-     * By default, auto-freezing is enabled.
-     */
-    setAutoFreeze(value: boolean): void;
-    /**
-     * Pass true to enable strict shallow copy.
-     *
-     * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-     */
-    setUseStrictShallowCopy(value: StrictMode): void;
-    /**
-     * Pass false to use faster iteration that skips non-enumerable properties
-     * but still handles symbols for compatibility.
-     *
-     * By default, strict iteration is enabled (includes all own properties).
-     */
-    setUseStrictIteration(value: boolean): void;
-    shouldUseStrictIteration(): boolean;
-    applyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T;
-}
-
-/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */
-declare function current<T>(value: T): T;
-
-declare function enablePatches(): void;
-
-declare function enableMapSet(): void;
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-declare const produce: IProduce;
-/**
- * Like `produce`, but `produceWithPatches` always returns a tuple
- * [nextState, patches, inversePatches] (instead of just the next state)
- */
-declare const produceWithPatches: IProduceWithPatches;
-/**
- * Pass true to automatically freeze all copies created by Immer.
- *
- * Always freeze by default, even in production mode
- */
-declare const setAutoFreeze: (value: boolean) => void;
-/**
- * Pass true to enable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare const setUseStrictShallowCopy: (value: StrictMode) => void;
-/**
- * Pass false to use loose iteration that only processes enumerable string properties.
- * This skips symbols and non-enumerable properties for maximum performance.
- *
- * By default, strict iteration is enabled (includes all own properties).
- */
-declare const setUseStrictIteration: (value: boolean) => void;
-/**
- * Apply an array of Immer patches to the first argument.
- *
- * This function is a producer, which means copy-on-write is in effect.
- */
-declare const applyPatches: <T extends Objectish>(base: T, patches: readonly Patch[]) => T;
-/**
- * Create an Immer draft from the given base state, which may be a draft itself.
- * The draft can be modified until you finalize it with the `finishDraft` function.
- */
-declare const createDraft: <T extends Objectish>(base: T) => Draft<T>;
-/**
- * Finalize an Immer draft from a `createDraft` call, returning the base state
- * (if no changes were made) or a modified copy. The draft must *not* be
- * mutated afterwards.
- *
- * Pass a function as the 2nd argument to generate Immer patches based on the
- * changes that were made.
- */
-declare const finishDraft: <D extends unknown>(draft: D, patchListener?: PatchListener | undefined) => D extends Draft<infer T> ? T : never;
-/**
- * This function is actually a no-op, but can be used to cast an immutable type
- * to an draft type and make TypeScript happy
- *
- * @param value
- */
-declare function castDraft<T>(value: T): Draft<T>;
-/**
- * This function is actually a no-op, but can be used to cast a mutable type
- * to an immutable type and make TypeScript happy
- * @param value
- */
-declare function castImmutable<T>(value: T): Immutable<T>;
-
-export { Draft, Immer, Immutable, Objectish, Patch, PatchListener, Producer, StrictMode, WritableDraft, applyPatches, castDraft, castImmutable, createDraft, current, enableMapSet, enablePatches, finishDraft, freeze, DRAFTABLE as immerable, isDraft, isDraftable, NOTHING as nothing, original, produce, produceWithPatches, setAutoFreeze, setUseStrictIteration, setUseStrictShallowCopy };
Index: de_modules/immer/dist/immer.legacy-esm.js
===================================================================
--- node_modules/immer/dist/immer.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1319 +1,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = typeof e === "function" ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var getPrototypeOf = Object.getPrototypeOf;
-function isDraft(value) {
-  return !!value && !!value[DRAFT_STATE];
-}
-function isDraftable(value) {
-  var _a;
-  if (!value)
-    return false;
-  return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!((_a = value.constructor) == null ? void 0 : _a[DRAFTABLE]) || isMap(value) || isSet(value);
-}
-var objectCtorString = Object.prototype.constructor.toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || typeof value !== "object")
-    return false;
-  const proto = Object.getPrototypeOf(value);
-  if (proto === null || proto === Object.prototype)
-    return true;
-  const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
-  if (Ctor === Object)
-    return true;
-  if (typeof Ctor !== "function")
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-function has(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);
-}
-function get(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];
-}
-function set(thing, propOrOldValue, value) {
-  const t = getArchtype(thing);
-  if (t === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (t === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-}
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function isMap(target) {
-  return target instanceof Map;
-}
-function isSet(target) {
-  return target instanceof Set;
-}
-function latest(state) {
-  return state.copy_ || state.base_;
-}
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (Array.isArray(base))
-    return Array.prototype.slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = Object.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc.writable === false) {
-        desc.writable = true;
-        desc.configurable = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          configurable: true,
-          writable: true,
-          // could live with !!desc.set as well here...
-          enumerable: desc.enumerable,
-          value: base[key]
-        };
-    }
-    return Object.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return __spreadValues({}, base);
-    }
-    const obj = Object.create(proto);
-    return Object.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    Object.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  Object.freeze(obj);
-  if (deep)
-    Object.values(obj).forEach((value) => freeze(value, true));
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  value: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || typeof obj !== "object")
-    return true;
-  return Object.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-function getCurrentScope() {
-  return currentScope;
-}
-function createScope(parent_, immer_) {
-  return {
-    drafts_: [],
-    parent_,
-    immer_,
-    // Whenever the modified draft contains a draft from another scope, we
-    // need to prevent auto-freezing so the unowned draft can be finalized.
-    canAutoFreeze_: true,
-    unfinalizedDrafts_: 0
-  };
-}
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    getPlugin("Patches");
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-function enterScope(immer2) {
-  return currentScope = createScope(currentScope, immer2);
-}
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-      if (!scope.parent_)
-        maybeFreeze(scope, result);
-    }
-    if (scope.patches_) {
-      getPlugin("Patches").generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope.patches_,
-        scope.inversePatches_
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft, []);
-  }
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value, path) {
-  if (isFrozen(value))
-    return value;
-  const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    each(
-      value,
-      (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),
-      useStrictIteration
-    );
-    return value;
-  }
-  if (state.scope_ !== rootScope)
-    return value;
-  if (!state.modified_) {
-    maybeFreeze(rootScope, state.base_, true);
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    state.finalized_ = true;
-    state.scope_.unfinalizedDrafts_--;
-    const result = state.copy_;
-    let resultEach = result;
-    let isSet2 = false;
-    if (state.type_ === 3 /* Set */) {
-      resultEach = new Set(result);
-      result.clear();
-      isSet2 = true;
-    }
-    each(
-      resultEach,
-      (key, childValue) => finalizeProperty(
-        rootScope,
-        state,
-        result,
-        key,
-        childValue,
-        path,
-        isSet2
-      ),
-      useStrictIteration
-    );
-    maybeFreeze(rootScope, result, false);
-    if (path && rootScope.patches_) {
-      getPlugin("Patches").generatePatches_(
-        state,
-        path,
-        rootScope.patches_,
-        rootScope.inversePatches_
-      );
-    }
-  }
-  return state.copy_;
-}
-function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
-  if (childValue == null) {
-    return;
-  }
-  if (typeof childValue !== "object" && !targetIsSet) {
-    return;
-  }
-  const childIsFrozen = isFrozen(childValue);
-  if (childIsFrozen && !targetIsSet) {
-    return;
-  }
-  if (process.env.NODE_ENV !== "production" && childValue === targetObject)
-    die(5);
-  if (isDraft(childValue)) {
-    const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.
-    !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;
-    const res = finalize(rootScope, childValue, path);
-    set(targetObject, prop, res);
-    if (isDraft(res)) {
-      rootScope.canAutoFreeze_ = false;
-    } else
-      return;
-  } else if (targetIsSet) {
-    targetObject.add(childValue);
-  }
-  if (isDraftable(childValue) && !childIsFrozen) {
-    if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-      return;
-    }
-    if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {
-      return;
-    }
-    finalize(rootScope, childValue);
-    if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))
-      maybeFreeze(rootScope, childValue);
-  }
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const isArray = Array.isArray(base);
-  const state = {
-    type_: isArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    assigned_: {},
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (isArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return proxy;
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    const source = latest(state);
-    if (!has(source, prop)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      return state.copy_[prop] = createProxy(value, state);
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc == null ? void 0 : desc.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2 == null ? void 0 : current2[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_[prop] = false;
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_[prop] = true;
-    return true;
-  },
-  deleteProperty(state, prop) {
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_[prop] = false;
-      prepareCopy(state);
-      markChanged(state);
-    } else {
-      delete state.assigned_[prop];
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      writable: true,
-      configurable: state.type_ !== 1 /* Array */ || prop !== "length",
-      enumerable: desc.enumerable,
-      value: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-each(objectTraps, (key, fn) => {
-  arrayTraps[key] = function() {
-    arguments[0] = arguments[0][0];
-    return fn.apply(this, arguments);
-  };
-});
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  var _a;
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? `value` in desc ? desc.value : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    (_a = desc.get) == null ? void 0 : _a.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = true;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (typeof base === "function" && typeof recipe !== "function") {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (typeof recipe !== "function")
-        die(6);
-      if (patchListener !== void 0 && typeof patchListener !== "function")
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || typeof base !== "object") {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin("Patches").generateReplacementPatches_(base, result, p, ip);
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (typeof base === "function") {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (typeof (config == null ? void 0 : config.autoFreeze) === "boolean")
-      this.setAutoFreeze(config.autoFreeze);
-    if (typeof (config == null ? void 0 : config.useStrictShallowCopy) === "boolean")
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (typeof (config == null ? void 0 : config.useStrictIteration) === "boolean")
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin("Patches").applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(value, parent) {
-  const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = parent ? parent.scope_ : getCurrentScope();
-  scope.drafts_.push(draft);
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, patches, inversePatches) {
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(state, basePath, patches, inversePatches);
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    for (let i = 0; i < base_.length; i++) {
-      if (assigned_[i] && copy_[i] !== base_[i]) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copy_[i])
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(base_[i])
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key);
-      const value = get(copy_, key);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(op === REMOVE ? { op, path } : { op, path, value });
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {
-    patches.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === "constructor"))
-          die(errorOffset + 3);
-        if (typeof base === "function" && p === "prototype")
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (typeof base !== "object")
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (Array.isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin("Patches", {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(value, state);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    return new DraftMap(target, parent);
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    return new DraftSet(target, parent);
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(value, state);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  loadPlugin("MapSet", { proxyMap_, proxySet_ });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-function castDraft(value) {
-  return value;
-}
-function castImmutable(value) {
-  return value;
-}
-export {
-  Immer2 as Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  DRAFTABLE as immerable,
-  isDraft,
-  isDraftable,
-  NOTHING as nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-};
-//# sourceMappingURL=immer.legacy-esm.js.map
Index: de_modules/immer/dist/immer.legacy-esm.js.map
===================================================================
--- node_modules/immer/dist/immer.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n"],"mappings":";;;;;;;;;;;;;;;;;;AAKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACjB3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,OAAO,MAAM,aAAa,EAAE,MAAM,MAAM,IAAW,IAAI;AACnE,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACjCO,IAAM,iBAAiB,OAAO;AAI9B,SAAS,QAAQ,OAAqB;AAC5C,SAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AACtC;AAIO,SAAS,YAAY,OAAqB;AAxBjD;AAyBC,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,MAAM,QAAQ,KAAK,KACnB,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,GAAC,WAAM,gBAAN,mBAAoB,eACtB,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,OAAO,UAAU,YAAY,SAAS;AAC/D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,OAAO,UAAU;AAAU,WAAO;AAChD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,MAAI,UAAU,QAAQ,UAAU,OAAO;AAAW,WAAO;AAEzD,QAAM,OACL,OAAO,eAAe,KAAK,OAAO,aAAa,KAAK,MAAM;AAC3D,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,OAAO,SAAS;AAAY,WAAO;AAEvC,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,OAAO,KAAK,GAAG;AAC5D,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,MAAM,QAAQ,KAAK,oBAEnB,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,SAAS,IAAI,OAAY,MAA4B;AAC3D,SAAO,YAAY,KAAK,oBACrB,MAAM,IAAI,IAAI,IACd,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI;AACpD;AAGO,SAAS,IAAI,OAA2B,MAAwB;AAEtE,SAAO,YAAY,KAAK,oBAAqB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAC1E;AAGO,SAAS,IAAI,OAAY,gBAA6B,OAAY;AACxE,QAAM,IAAI,YAAY,KAAK;AAC3B,MAAI;AAAoB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WAC9C,mBAAoB;AAC5B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAEO,SAAS,OAAO,OAAwB;AAC9C,SAAO,MAAM,SAAS,MAAM;AAC7B;AAGO,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,MAAM,UAAU,MAAM,KAAK,IAAI;AAE/D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,OAAO,0BAA0B,IAAI;AACzD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,aAAa,OAAO;AAC5B,aAAK,WAAW;AAChB,aAAK,eAAe;AAAA,MACrB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,cAAc;AAAA,UACd,UAAU;AAAA;AAAA,UACV,YAAY,KAAK;AAAA,UACjB,OAAO,KAAK,GAAG;AAAA,QAChB;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EACvD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,mBAAI;AAAA,IACZ;AACA,UAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,WAAO,OAAO,OAAO,KAAK,IAAI;AAAA,EAC/B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,WAAO,iBAAiB,KAAK;AAAA,MAC5B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,SAAO,OAAO,GAAG;AACjB,MAAI;AAGH,WAAO,OAAO,GAAG,EAAE,QAAQ,WAAS,OAAO,OAAO,IAAI,CAAC;AACxD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,OAAO;AACR;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,OAAO,QAAQ;AAAU,WAAO;AACpD,SAAO,OAAO,SAAS,GAAG;AAC3B;;;ACnOA,IAAM,UAoBF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;AC5BA,IAAI;AAEG,SAAS,kBAAkB;AACjC,SAAO;AACR;AAEA,SAAS,YACR,SACA,QACa;AACb,SAAO;AAAA,IACN,SAAS,CAAC;AAAA,IACV;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACrB;AACD;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,cAAU,SAAS;AACnB,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,SAAS,WAAWA,QAAc;AACxC,SAAQ,eAAe,YAAY,cAAcA,MAAK;AACvD;AAEA,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;AC1DO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AACtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAC/B,UAAI,CAAC,MAAM;AAAS,oBAAY,OAAO,MAAM;AAAA,IAC9C;AACA,QAAI,MAAM,UAAU;AACnB,gBAAU,SAAS,EAAE;AAAA,QACpB,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,WAAW,CAAC,CAAC;AAAA,EACvC;AACA,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY,MAAkB;AAEtE,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,qBAAqB,UAAU,OAAO,yBAAyB;AAErE,QAAM,QAAoB,MAAM,WAAW;AAE3C,MAAI,CAAC,OAAO;AACX;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL,iBAAiB,WAAW,OAAO,OAAO,KAAK,YAAY,IAAI;AAAA,MAChE;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,WAAW;AAAW,WAAO;AAEvC,MAAI,CAAC,MAAM,WAAW;AACrB,gBAAY,WAAW,MAAM,OAAO,IAAI;AACxC,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AACtB,UAAM,aAAa;AACnB,UAAM,OAAO;AACb,UAAM,SAAS,MAAM;AAKrB,QAAI,aAAa;AACjB,QAAIC,SAAQ;AACZ,QAAI,MAAM,uBAAwB;AACjC,mBAAa,IAAI,IAAI,MAAM;AAC3B,aAAO,MAAM;AACb,MAAAA,SAAQ;AAAA,IACT;AACA;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAA;AAAA,MACD;AAAA,MACD;AAAA,IACD;AAEA,gBAAY,WAAW,QAAQ,KAAK;AAEpC,QAAI,QAAQ,UAAU,UAAU;AAC/B,gBAAU,SAAS,EAAE;AAAA,QACpB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,IACD;AAAA,EACD;AACA,SAAO,MAAM;AACd;AAEA,SAAS,iBACR,WACA,aACA,cACA,MACA,YACA,UACA,aACC;AACD,MAAI,cAAc,MAAM;AACvB;AAAA,EACD;AAEA,MAAI,OAAO,eAAe,YAAY,CAAC,aAAa;AACnD;AAAA,EACD;AACA,QAAM,gBAAgB,SAAS,UAAU;AACzC,MAAI,iBAAiB,CAAC,aAAa;AAClC;AAAA,EACD;AAEA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe;AAC3D,QAAI,CAAC;AACN,MAAI,QAAQ,UAAU,GAAG;AACxB,UAAM,OACL,YACA,eACA,YAAa;AAAA,IACb,CAAC,IAAK,YAA8C,WAAY,IAAI,IACjE,SAAU,OAAO,IAAI,IACrB;AAEJ,UAAM,MAAM,SAAS,WAAW,YAAY,IAAI;AAChD,QAAI,cAAc,MAAM,GAAG;AAG3B,QAAI,QAAQ,GAAG,GAAG;AACjB,gBAAU,iBAAiB;AAAA,IAC5B;AAAO;AAAA,EACR,WAAW,aAAa;AACvB,iBAAa,IAAI,UAAU;AAAA,EAC5B;AAEA,MAAI,YAAY,UAAU,KAAK,CAAC,eAAe;AAC9C,QAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE;AAAA,IACD;AACA,QACC,eACA,YAAY,SACZ,YAAY,MAAM,IAAI,MAAM,cAC5B,eACC;AAED;AAAA,IACD;AACA,aAAS,WAAW,UAAU;AAI9B,SACE,CAAC,eAAe,CAAC,YAAY,OAAO,YACrC,OAAO,SAAS,aACf,MAAM,YAAY,IAChB,aAAa,IAAI,IAAI,IACrB,OAAO,UAAU,qBAAqB,KAAK,cAAc,IAAI;AAEhE,kBAAY,WAAW,UAAU;AAAA,EACnC;AACD;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;;;ACzJO,SAAS,iBACf,MACA,QACyB;AACzB,QAAM,UAAU,MAAM,QAAQ,IAAI;AAClC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA,IAEZ,WAAW,CAAC;AAAA;AAAA,IAEZ,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA,EACZ;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,SAAS;AACZ,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO;AACR;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,IAAI,GAAG;AAEvB,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AACjB,aAAQ,MAAM,MAAO,IAAW,IAAI,YAAY,OAAO,KAAK;AAAA,IAC7D;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,6BAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,YAAA,gBAAAA,SAAU;AACjD,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAU,IAAI,IAAI;AACxB,eAAO;AAAA,MACR;AACA,UAAI,GAAG,OAAOA,QAAO,MAAM,UAAU,UAAa,IAAI,MAAM,OAAO,IAAI;AACtE,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAU,IAAI,IAAI;AACxB,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AAEnC,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAU,IAAI,IAAI;AACxB,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,aAAO,MAAM,UAAU,IAAI;AAAA,IAC5B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,UAAU;AAAA,MACV,cAAc,MAAM,2BAA4B,SAAS;AAAA,MACzD,YAAY,KAAK;AAAA,MACjB,OAAO,MAAM,IAAI;AAAA,IAClB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AACrD,KAAK,aAAa,CAAC,KAAK,OAAO;AAE9B,aAAW,GAAG,IAAI,WAAW;AAC5B,cAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC;AAC7B,WAAO,GAAG,MAAM,MAAM,SAAS;AAAA,EAChC;AACD,CAAC;AACD,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AArP9E;AAsPC,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,WAAW,OACV,KAAK;AAAA;AAAA;AAAA,KAGL,UAAK,QAAL,mBAAU,KAAK,MAAM;AAAA,MACtB;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAIzB;AACF,MAAI,CAAC,MAAM,OAAO;AACjB,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;AChQO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAkC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,OAAO,SAAS,cAAc,OAAO,WAAW,YAAY;AAC/D,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,OAAO,WAAW;AAAY,YAAI,CAAC;AACvC,UAAI,kBAAkB,UAAa,OAAO,kBAAkB;AAC3D,YAAI,CAAC;AAEN,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,OAAO,SAAS,UAAU;AAC7C,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,SAAS,EAAE,4BAA4B,MAAM,QAAQ,GAAG,EAAE;AACpE,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,OAAO,SAAS,YAAY;AAC/B,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA5FC,QAAI,QAAO,iCAAQ,gBAAe;AACjC,WAAK,cAAc,OAAQ,UAAU;AACtC,QAAI,QAAO,iCAAQ,0BAAyB;AAC3C,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,QAAO,iCAAQ,wBAAuB;AACzC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EAwFA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,SAAS,EAAE;AAC9C,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,OACA,QACyB;AAEzB,QAAM,QAAiB,MAAM,KAAK,IAC/B,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,MAAM,KAAK,IACX,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AACvD,QAAM,QAAQ,KAAK,KAAK;AACxB,SAAO;AACR;;;AC7NO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACpBO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,SACA,gBACO;AACP,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO,qBAAqB,OAAO,UAAU,SAAS,cAAc;AAAA,MACrE;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAGA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,UAAI,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG;AAC1C,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,MAAK,IAAI;AACvB,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAM,QAAQ,IAAI,OAAQ,GAAG;AAC7B,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ,KAAK,OAAO,SAAS,EAAC,IAAI,KAAI,IAAI,EAAC,IAAI,MAAM,MAAK,CAAC;AAC3D,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,SACA,gBACO;AACP,YAAQ,KAAK;AAAA,MACZ,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,mBAAe,KAAK;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,OAAO,SAAS,cAAc,MAAM;AACvC,cAAI,cAAc,CAAC;AACpB,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,OAAO,SAAS;AAAU,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAClE;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,MAAM,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AAC1D,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,WAAW;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACzSO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAtIC,aAsIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AAAA,MACvB;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA3FC,aA2FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,aAAW,UAAU,EAAC,WAAW,UAAS,CAAC;AAC5C;;;ACrRA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,SAAS,UAAa,OAAoB;AAChD,SAAO;AACR;AAOO,SAAS,cAAiB,OAAwB;AACxD,SAAO;AACR;","names":["immer","isSet","current","Immer","base","Immer"]}
Index: de_modules/immer/dist/immer.mjs
===================================================================
--- node_modules/immer/dist/immer.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1300 +1,0 @@
-// src/utils/env.ts
-var NOTHING = Symbol.for("immer-nothing");
-var DRAFTABLE = Symbol.for("immer-draftable");
-var DRAFT_STATE = Symbol.for("immer-state");
-
-// src/utils/errors.ts
-var errors = process.env.NODE_ENV !== "production" ? [
-  // All error codes, starting by 0:
-  function(plugin) {
-    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`;
-  },
-  function(thing) {
-    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;
-  },
-  "This object has been frozen and should not be mutated",
-  function(data) {
-    return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + data;
-  },
-  "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-  "Immer forbids circular references",
-  "The first or second argument to `produce` must be a function",
-  "The third argument to `produce` must be a function or undefined",
-  "First argument to `createDraft` must be a plain object, an array, or an immerable object",
-  "First argument to `finishDraft` must be a draft returned by `createDraft`",
-  function(thing) {
-    return `'current' expects a draft, got: ${thing}`;
-  },
-  "Object.defineProperty() cannot be used on an Immer draft",
-  "Object.setPrototypeOf() cannot be used on an Immer draft",
-  "Immer only supports deleting array indices",
-  "Immer only supports setting array indices and the 'length' property",
-  function(thing) {
-    return `'original' expects a draft, got: ${thing}`;
-  }
-  // Note: if more errors are added, the errorOffset in Patches.ts should be increased
-  // See Patches.ts for additional errors
-] : [];
-function die(error, ...args) {
-  if (process.env.NODE_ENV !== "production") {
-    const e = errors[error];
-    const msg = typeof e === "function" ? e.apply(null, args) : e;
-    throw new Error(`[Immer] ${msg}`);
-  }
-  throw new Error(
-    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-  );
-}
-
-// src/utils/common.ts
-var getPrototypeOf = Object.getPrototypeOf;
-function isDraft(value) {
-  return !!value && !!value[DRAFT_STATE];
-}
-function isDraftable(value) {
-  if (!value)
-    return false;
-  return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);
-}
-var objectCtorString = Object.prototype.constructor.toString();
-var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
-function isPlainObject(value) {
-  if (!value || typeof value !== "object")
-    return false;
-  const proto = Object.getPrototypeOf(value);
-  if (proto === null || proto === Object.prototype)
-    return true;
-  const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
-  if (Ctor === Object)
-    return true;
-  if (typeof Ctor !== "function")
-    return false;
-  let ctorString = cachedCtorStrings.get(Ctor);
-  if (ctorString === void 0) {
-    ctorString = Function.toString.call(Ctor);
-    cachedCtorStrings.set(Ctor, ctorString);
-  }
-  return ctorString === objectCtorString;
-}
-function original(value) {
-  if (!isDraft(value))
-    die(15, value);
-  return value[DRAFT_STATE].base_;
-}
-function each(obj, iter, strict = true) {
-  if (getArchtype(obj) === 0 /* Object */) {
-    const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj);
-    keys.forEach((key) => {
-      iter(key, obj[key], obj);
-    });
-  } else {
-    obj.forEach((entry, index) => iter(index, entry, obj));
-  }
-}
-function getArchtype(thing) {
-  const state = thing[DRAFT_STATE];
-  return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;
-}
-function has(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);
-}
-function get(thing, prop) {
-  return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];
-}
-function set(thing, propOrOldValue, value) {
-  const t = getArchtype(thing);
-  if (t === 2 /* Map */)
-    thing.set(propOrOldValue, value);
-  else if (t === 3 /* Set */) {
-    thing.add(value);
-  } else
-    thing[propOrOldValue] = value;
-}
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function isMap(target) {
-  return target instanceof Map;
-}
-function isSet(target) {
-  return target instanceof Set;
-}
-function latest(state) {
-  return state.copy_ || state.base_;
-}
-function shallowCopy(base, strict) {
-  if (isMap(base)) {
-    return new Map(base);
-  }
-  if (isSet(base)) {
-    return new Set(base);
-  }
-  if (Array.isArray(base))
-    return Array.prototype.slice.call(base);
-  const isPlain = isPlainObject(base);
-  if (strict === true || strict === "class_only" && !isPlain) {
-    const descriptors = Object.getOwnPropertyDescriptors(base);
-    delete descriptors[DRAFT_STATE];
-    let keys = Reflect.ownKeys(descriptors);
-    for (let i = 0; i < keys.length; i++) {
-      const key = keys[i];
-      const desc = descriptors[key];
-      if (desc.writable === false) {
-        desc.writable = true;
-        desc.configurable = true;
-      }
-      if (desc.get || desc.set)
-        descriptors[key] = {
-          configurable: true,
-          writable: true,
-          // could live with !!desc.set as well here...
-          enumerable: desc.enumerable,
-          value: base[key]
-        };
-    }
-    return Object.create(getPrototypeOf(base), descriptors);
-  } else {
-    const proto = getPrototypeOf(base);
-    if (proto !== null && isPlain) {
-      return { ...base };
-    }
-    const obj = Object.create(proto);
-    return Object.assign(obj, base);
-  }
-}
-function freeze(obj, deep = false) {
-  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))
-    return obj;
-  if (getArchtype(obj) > 1) {
-    Object.defineProperties(obj, {
-      set: dontMutateMethodOverride,
-      add: dontMutateMethodOverride,
-      clear: dontMutateMethodOverride,
-      delete: dontMutateMethodOverride
-    });
-  }
-  Object.freeze(obj);
-  if (deep)
-    Object.values(obj).forEach((value) => freeze(value, true));
-  return obj;
-}
-function dontMutateFrozenCollections() {
-  die(2);
-}
-var dontMutateMethodOverride = {
-  value: dontMutateFrozenCollections
-};
-function isFrozen(obj) {
-  if (obj === null || typeof obj !== "object")
-    return true;
-  return Object.isFrozen(obj);
-}
-
-// src/utils/plugins.ts
-var plugins = {};
-function getPlugin(pluginKey) {
-  const plugin = plugins[pluginKey];
-  if (!plugin) {
-    die(0, pluginKey);
-  }
-  return plugin;
-}
-function loadPlugin(pluginKey, implementation) {
-  if (!plugins[pluginKey])
-    plugins[pluginKey] = implementation;
-}
-
-// src/core/scope.ts
-var currentScope;
-function getCurrentScope() {
-  return currentScope;
-}
-function createScope(parent_, immer_) {
-  return {
-    drafts_: [],
-    parent_,
-    immer_,
-    // Whenever the modified draft contains a draft from another scope, we
-    // need to prevent auto-freezing so the unowned draft can be finalized.
-    canAutoFreeze_: true,
-    unfinalizedDrafts_: 0
-  };
-}
-function usePatchesInScope(scope, patchListener) {
-  if (patchListener) {
-    getPlugin("Patches");
-    scope.patches_ = [];
-    scope.inversePatches_ = [];
-    scope.patchListener_ = patchListener;
-  }
-}
-function revokeScope(scope) {
-  leaveScope(scope);
-  scope.drafts_.forEach(revokeDraft);
-  scope.drafts_ = null;
-}
-function leaveScope(scope) {
-  if (scope === currentScope) {
-    currentScope = scope.parent_;
-  }
-}
-function enterScope(immer2) {
-  return currentScope = createScope(currentScope, immer2);
-}
-function revokeDraft(draft) {
-  const state = draft[DRAFT_STATE];
-  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)
-    state.revoke_();
-  else
-    state.revoked_ = true;
-}
-
-// src/core/finalize.ts
-function processResult(result, scope) {
-  scope.unfinalizedDrafts_ = scope.drafts_.length;
-  const baseDraft = scope.drafts_[0];
-  const isReplaced = result !== void 0 && result !== baseDraft;
-  if (isReplaced) {
-    if (baseDraft[DRAFT_STATE].modified_) {
-      revokeScope(scope);
-      die(4);
-    }
-    if (isDraftable(result)) {
-      result = finalize(scope, result);
-      if (!scope.parent_)
-        maybeFreeze(scope, result);
-    }
-    if (scope.patches_) {
-      getPlugin("Patches").generateReplacementPatches_(
-        baseDraft[DRAFT_STATE].base_,
-        result,
-        scope.patches_,
-        scope.inversePatches_
-      );
-    }
-  } else {
-    result = finalize(scope, baseDraft, []);
-  }
-  revokeScope(scope);
-  if (scope.patches_) {
-    scope.patchListener_(scope.patches_, scope.inversePatches_);
-  }
-  return result !== NOTHING ? result : void 0;
-}
-function finalize(rootScope, value, path) {
-  if (isFrozen(value))
-    return value;
-  const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();
-  const state = value[DRAFT_STATE];
-  if (!state) {
-    each(
-      value,
-      (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),
-      useStrictIteration
-    );
-    return value;
-  }
-  if (state.scope_ !== rootScope)
-    return value;
-  if (!state.modified_) {
-    maybeFreeze(rootScope, state.base_, true);
-    return state.base_;
-  }
-  if (!state.finalized_) {
-    state.finalized_ = true;
-    state.scope_.unfinalizedDrafts_--;
-    const result = state.copy_;
-    let resultEach = result;
-    let isSet2 = false;
-    if (state.type_ === 3 /* Set */) {
-      resultEach = new Set(result);
-      result.clear();
-      isSet2 = true;
-    }
-    each(
-      resultEach,
-      (key, childValue) => finalizeProperty(
-        rootScope,
-        state,
-        result,
-        key,
-        childValue,
-        path,
-        isSet2
-      ),
-      useStrictIteration
-    );
-    maybeFreeze(rootScope, result, false);
-    if (path && rootScope.patches_) {
-      getPlugin("Patches").generatePatches_(
-        state,
-        path,
-        rootScope.patches_,
-        rootScope.inversePatches_
-      );
-    }
-  }
-  return state.copy_;
-}
-function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
-  if (childValue == null) {
-    return;
-  }
-  if (typeof childValue !== "object" && !targetIsSet) {
-    return;
-  }
-  const childIsFrozen = isFrozen(childValue);
-  if (childIsFrozen && !targetIsSet) {
-    return;
-  }
-  if (process.env.NODE_ENV !== "production" && childValue === targetObject)
-    die(5);
-  if (isDraft(childValue)) {
-    const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.
-    !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;
-    const res = finalize(rootScope, childValue, path);
-    set(targetObject, prop, res);
-    if (isDraft(res)) {
-      rootScope.canAutoFreeze_ = false;
-    } else
-      return;
-  } else if (targetIsSet) {
-    targetObject.add(childValue);
-  }
-  if (isDraftable(childValue) && !childIsFrozen) {
-    if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-      return;
-    }
-    if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {
-      return;
-    }
-    finalize(rootScope, childValue);
-    if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))
-      maybeFreeze(rootScope, childValue);
-  }
-}
-function maybeFreeze(scope, value, deep = false) {
-  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-    freeze(value, deep);
-  }
-}
-
-// src/core/proxy.ts
-function createProxyProxy(base, parent) {
-  const isArray = Array.isArray(base);
-  const state = {
-    type_: isArray ? 1 /* Array */ : 0 /* Object */,
-    // Track which produce call this is associated with.
-    scope_: parent ? parent.scope_ : getCurrentScope(),
-    // True for both shallow and deep changes.
-    modified_: false,
-    // Used during finalization.
-    finalized_: false,
-    // Track which properties have been assigned (true) or deleted (false).
-    assigned_: {},
-    // The parent draft state.
-    parent_: parent,
-    // The base state.
-    base_: base,
-    // The base proxy.
-    draft_: null,
-    // set below
-    // The base copy with any updated values.
-    copy_: null,
-    // Called by the `produce` function.
-    revoke_: null,
-    isManual_: false
-  };
-  let target = state;
-  let traps = objectTraps;
-  if (isArray) {
-    target = [state];
-    traps = arrayTraps;
-  }
-  const { revoke, proxy } = Proxy.revocable(target, traps);
-  state.draft_ = proxy;
-  state.revoke_ = revoke;
-  return proxy;
-}
-var objectTraps = {
-  get(state, prop) {
-    if (prop === DRAFT_STATE)
-      return state;
-    const source = latest(state);
-    if (!has(source, prop)) {
-      return readPropFromProto(state, source, prop);
-    }
-    const value = source[prop];
-    if (state.finalized_ || !isDraftable(value)) {
-      return value;
-    }
-    if (value === peek(state.base_, prop)) {
-      prepareCopy(state);
-      return state.copy_[prop] = createProxy(value, state);
-    }
-    return value;
-  },
-  has(state, prop) {
-    return prop in latest(state);
-  },
-  ownKeys(state) {
-    return Reflect.ownKeys(latest(state));
-  },
-  set(state, prop, value) {
-    const desc = getDescriptorFromProto(latest(state), prop);
-    if (desc?.set) {
-      desc.set.call(state.draft_, value);
-      return true;
-    }
-    if (!state.modified_) {
-      const current2 = peek(latest(state), prop);
-      const currentState = current2?.[DRAFT_STATE];
-      if (currentState && currentState.base_ === value) {
-        state.copy_[prop] = value;
-        state.assigned_[prop] = false;
-        return true;
-      }
-      if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))
-        return true;
-      prepareCopy(state);
-      markChanged(state);
-    }
-    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
-    (value !== void 0 || prop in state.copy_) || // special case: NaN
-    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
-      return true;
-    state.copy_[prop] = value;
-    state.assigned_[prop] = true;
-    return true;
-  },
-  deleteProperty(state, prop) {
-    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {
-      state.assigned_[prop] = false;
-      prepareCopy(state);
-      markChanged(state);
-    } else {
-      delete state.assigned_[prop];
-    }
-    if (state.copy_) {
-      delete state.copy_[prop];
-    }
-    return true;
-  },
-  // Note: We never coerce `desc.value` into an Immer draft, because we can't make
-  // the same guarantee in ES5 mode.
-  getOwnPropertyDescriptor(state, prop) {
-    const owner = latest(state);
-    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);
-    if (!desc)
-      return desc;
-    return {
-      writable: true,
-      configurable: state.type_ !== 1 /* Array */ || prop !== "length",
-      enumerable: desc.enumerable,
-      value: owner[prop]
-    };
-  },
-  defineProperty() {
-    die(11);
-  },
-  getPrototypeOf(state) {
-    return getPrototypeOf(state.base_);
-  },
-  setPrototypeOf() {
-    die(12);
-  }
-};
-var arrayTraps = {};
-each(objectTraps, (key, fn) => {
-  arrayTraps[key] = function() {
-    arguments[0] = arguments[0][0];
-    return fn.apply(this, arguments);
-  };
-});
-arrayTraps.deleteProperty = function(state, prop) {
-  if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop)))
-    die(13);
-  return arrayTraps.set.call(this, state, prop, void 0);
-};
-arrayTraps.set = function(state, prop, value) {
-  if (process.env.NODE_ENV !== "production" && prop !== "length" && isNaN(parseInt(prop)))
-    die(14);
-  return objectTraps.set.call(this, state[0], prop, value, state[0]);
-};
-function peek(draft, prop) {
-  const state = draft[DRAFT_STATE];
-  const source = state ? latest(state) : draft;
-  return source[prop];
-}
-function readPropFromProto(state, source, prop) {
-  const desc = getDescriptorFromProto(source, prop);
-  return desc ? `value` in desc ? desc.value : (
-    // This is a very special case, if the prop is a getter defined by the
-    // prototype, we should invoke it with the draft as context!
-    desc.get?.call(state.draft_)
-  ) : void 0;
-}
-function getDescriptorFromProto(source, prop) {
-  if (!(prop in source))
-    return void 0;
-  let proto = getPrototypeOf(source);
-  while (proto) {
-    const desc = Object.getOwnPropertyDescriptor(proto, prop);
-    if (desc)
-      return desc;
-    proto = getPrototypeOf(proto);
-  }
-  return void 0;
-}
-function markChanged(state) {
-  if (!state.modified_) {
-    state.modified_ = true;
-    if (state.parent_) {
-      markChanged(state.parent_);
-    }
-  }
-}
-function prepareCopy(state) {
-  if (!state.copy_) {
-    state.copy_ = shallowCopy(
-      state.base_,
-      state.scope_.immer_.useStrictShallowCopy_
-    );
-  }
-}
-
-// src/core/immerClass.ts
-var Immer2 = class {
-  constructor(config) {
-    this.autoFreeze_ = true;
-    this.useStrictShallowCopy_ = false;
-    this.useStrictIteration_ = true;
-    /**
-     * The `produce` function takes a value and a "recipe function" (whose
-     * return value often depends on the base state). The recipe function is
-     * free to mutate its first argument however it wants. All mutations are
-     * only ever applied to a __copy__ of the base state.
-     *
-     * Pass only a function to create a "curried producer" which relieves you
-     * from passing the recipe function every time.
-     *
-     * Only plain objects and arrays are made mutable. All other objects are
-     * considered uncopyable.
-     *
-     * Note: This function is __bound__ to its `Immer` instance.
-     *
-     * @param {any} base - the initial state
-     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-     * @param {Function} patchListener - optional function that will be called with all the patches produced here
-     * @returns {any} a new state, or the initial state if nothing was modified
-     */
-    this.produce = (base, recipe, patchListener) => {
-      if (typeof base === "function" && typeof recipe !== "function") {
-        const defaultBase = recipe;
-        recipe = base;
-        const self = this;
-        return function curriedProduce(base2 = defaultBase, ...args) {
-          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));
-        };
-      }
-      if (typeof recipe !== "function")
-        die(6);
-      if (patchListener !== void 0 && typeof patchListener !== "function")
-        die(7);
-      let result;
-      if (isDraftable(base)) {
-        const scope = enterScope(this);
-        const proxy = createProxy(base, void 0);
-        let hasError = true;
-        try {
-          result = recipe(proxy);
-          hasError = false;
-        } finally {
-          if (hasError)
-            revokeScope(scope);
-          else
-            leaveScope(scope);
-        }
-        usePatchesInScope(scope, patchListener);
-        return processResult(result, scope);
-      } else if (!base || typeof base !== "object") {
-        result = recipe(base);
-        if (result === void 0)
-          result = base;
-        if (result === NOTHING)
-          result = void 0;
-        if (this.autoFreeze_)
-          freeze(result, true);
-        if (patchListener) {
-          const p = [];
-          const ip = [];
-          getPlugin("Patches").generateReplacementPatches_(base, result, p, ip);
-          patchListener(p, ip);
-        }
-        return result;
-      } else
-        die(1, base);
-    };
-    this.produceWithPatches = (base, recipe) => {
-      if (typeof base === "function") {
-        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));
-      }
-      let patches, inversePatches;
-      const result = this.produce(base, recipe, (p, ip) => {
-        patches = p;
-        inversePatches = ip;
-      });
-      return [result, patches, inversePatches];
-    };
-    if (typeof config?.autoFreeze === "boolean")
-      this.setAutoFreeze(config.autoFreeze);
-    if (typeof config?.useStrictShallowCopy === "boolean")
-      this.setUseStrictShallowCopy(config.useStrictShallowCopy);
-    if (typeof config?.useStrictIteration === "boolean")
-      this.setUseStrictIteration(config.useStrictIteration);
-  }
-  createDraft(base) {
-    if (!isDraftable(base))
-      die(8);
-    if (isDraft(base))
-      base = current(base);
-    const scope = enterScope(this);
-    const proxy = createProxy(base, void 0);
-    proxy[DRAFT_STATE].isManual_ = true;
-    leaveScope(scope);
-    return proxy;
-  }
-  finishDraft(draft, patchListener) {
-    const state = draft && draft[DRAFT_STATE];
-    if (!state || !state.isManual_)
-      die(9);
-    const { scope_: scope } = state;
-    usePatchesInScope(scope, patchListener);
-    return processResult(void 0, scope);
-  }
-  /**
-   * Pass true to automatically freeze all copies created by Immer.
-   *
-   * By default, auto-freezing is enabled.
-   */
-  setAutoFreeze(value) {
-    this.autoFreeze_ = value;
-  }
-  /**
-   * Pass true to enable strict shallow copy.
-   *
-   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-   */
-  setUseStrictShallowCopy(value) {
-    this.useStrictShallowCopy_ = value;
-  }
-  /**
-   * Pass false to use faster iteration that skips non-enumerable properties
-   * but still handles symbols for compatibility.
-   *
-   * By default, strict iteration is enabled (includes all own properties).
-   */
-  setUseStrictIteration(value) {
-    this.useStrictIteration_ = value;
-  }
-  shouldUseStrictIteration() {
-    return this.useStrictIteration_;
-  }
-  applyPatches(base, patches) {
-    let i;
-    for (i = patches.length - 1; i >= 0; i--) {
-      const patch = patches[i];
-      if (patch.path.length === 0 && patch.op === "replace") {
-        base = patch.value;
-        break;
-      }
-    }
-    if (i > -1) {
-      patches = patches.slice(i + 1);
-    }
-    const applyPatchesImpl = getPlugin("Patches").applyPatches_;
-    if (isDraft(base)) {
-      return applyPatchesImpl(base, patches);
-    }
-    return this.produce(
-      base,
-      (draft) => applyPatchesImpl(draft, patches)
-    );
-  }
-};
-function createProxy(value, parent) {
-  const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent);
-  const scope = parent ? parent.scope_ : getCurrentScope();
-  scope.drafts_.push(draft);
-  return draft;
-}
-
-// src/core/current.ts
-function current(value) {
-  if (!isDraft(value))
-    die(10, value);
-  return currentImpl(value);
-}
-function currentImpl(value) {
-  if (!isDraftable(value) || isFrozen(value))
-    return value;
-  const state = value[DRAFT_STATE];
-  let copy;
-  let strict = true;
-  if (state) {
-    if (!state.modified_)
-      return state.base_;
-    state.finalized_ = true;
-    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
-    strict = state.scope_.immer_.shouldUseStrictIteration();
-  } else {
-    copy = shallowCopy(value, true);
-  }
-  each(
-    copy,
-    (key, childValue) => {
-      set(copy, key, currentImpl(childValue));
-    },
-    strict
-  );
-  if (state) {
-    state.finalized_ = false;
-  }
-  return copy;
-}
-
-// src/plugins/patches.ts
-function enablePatches() {
-  const errorOffset = 16;
-  if (process.env.NODE_ENV !== "production") {
-    errors.push(
-      'Sets cannot have "replace" patches.',
-      function(op) {
-        return "Unsupported patch operation: " + op;
-      },
-      function(path) {
-        return "Cannot apply patch, path doesn't resolve: " + path;
-      },
-      "Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-    );
-  }
-  const REPLACE = "replace";
-  const ADD = "add";
-  const REMOVE = "remove";
-  function generatePatches_(state, basePath, patches, inversePatches) {
-    switch (state.type_) {
-      case 0 /* Object */:
-      case 2 /* Map */:
-        return generatePatchesFromAssigned(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-      case 1 /* Array */:
-        return generateArrayPatches(state, basePath, patches, inversePatches);
-      case 3 /* Set */:
-        return generateSetPatches(
-          state,
-          basePath,
-          patches,
-          inversePatches
-        );
-    }
-  }
-  function generateArrayPatches(state, basePath, patches, inversePatches) {
-    let { base_, assigned_ } = state;
-    let copy_ = state.copy_;
-    if (copy_.length < base_.length) {
-      ;
-      [base_, copy_] = [copy_, base_];
-      [patches, inversePatches] = [inversePatches, patches];
-    }
-    for (let i = 0; i < base_.length; i++) {
-      if (assigned_[i] && copy_[i] !== base_[i]) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REPLACE,
-          path,
-          // Need to maybe clone it, as it can in fact be the original value
-          // due to the base/copy inversion at the start of this function
-          value: clonePatchValueIfNeeded(copy_[i])
-        });
-        inversePatches.push({
-          op: REPLACE,
-          path,
-          value: clonePatchValueIfNeeded(base_[i])
-        });
-      }
-    }
-    for (let i = base_.length; i < copy_.length; i++) {
-      const path = basePath.concat([i]);
-      patches.push({
-        op: ADD,
-        path,
-        // Need to maybe clone it, as it can in fact be the original value
-        // due to the base/copy inversion at the start of this function
-        value: clonePatchValueIfNeeded(copy_[i])
-      });
-    }
-    for (let i = copy_.length - 1; base_.length <= i; --i) {
-      const path = basePath.concat([i]);
-      inversePatches.push({
-        op: REMOVE,
-        path
-      });
-    }
-  }
-  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {
-    const { base_, copy_ } = state;
-    each(state.assigned_, (key, assignedValue) => {
-      const origValue = get(base_, key);
-      const value = get(copy_, key);
-      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;
-      if (origValue === value && op === REPLACE)
-        return;
-      const path = basePath.concat(key);
-      patches.push(op === REMOVE ? { op, path } : { op, path, value });
-      inversePatches.push(
-        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }
-      );
-    });
-  }
-  function generateSetPatches(state, basePath, patches, inversePatches) {
-    let { base_, copy_ } = state;
-    let i = 0;
-    base_.forEach((value) => {
-      if (!copy_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: REMOVE,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: ADD,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-    i = 0;
-    copy_.forEach((value) => {
-      if (!base_.has(value)) {
-        const path = basePath.concat([i]);
-        patches.push({
-          op: ADD,
-          path,
-          value
-        });
-        inversePatches.unshift({
-          op: REMOVE,
-          path,
-          value
-        });
-      }
-      i++;
-    });
-  }
-  function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {
-    patches.push({
-      op: REPLACE,
-      path: [],
-      value: replacement === NOTHING ? void 0 : replacement
-    });
-    inversePatches.push({
-      op: REPLACE,
-      path: [],
-      value: baseValue
-    });
-  }
-  function applyPatches_(draft, patches) {
-    patches.forEach((patch) => {
-      const { path, op } = patch;
-      let base = draft;
-      for (let i = 0; i < path.length - 1; i++) {
-        const parentType = getArchtype(base);
-        let p = path[i];
-        if (typeof p !== "string" && typeof p !== "number") {
-          p = "" + p;
-        }
-        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === "__proto__" || p === "constructor"))
-          die(errorOffset + 3);
-        if (typeof base === "function" && p === "prototype")
-          die(errorOffset + 3);
-        base = get(base, p);
-        if (typeof base !== "object")
-          die(errorOffset + 2, path.join("/"));
-      }
-      const type = getArchtype(base);
-      const value = deepClonePatchValue(patch.value);
-      const key = path[path.length - 1];
-      switch (op) {
-        case REPLACE:
-          switch (type) {
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              die(errorOffset);
-            default:
-              return base[key] = value;
-          }
-        case ADD:
-          switch (type) {
-            case 1 /* Array */:
-              return key === "-" ? base.push(value) : base.splice(key, 0, value);
-            case 2 /* Map */:
-              return base.set(key, value);
-            case 3 /* Set */:
-              return base.add(value);
-            default:
-              return base[key] = value;
-          }
-        case REMOVE:
-          switch (type) {
-            case 1 /* Array */:
-              return base.splice(key, 1);
-            case 2 /* Map */:
-              return base.delete(key);
-            case 3 /* Set */:
-              return base.delete(patch.value);
-            default:
-              return delete base[key];
-          }
-        default:
-          die(errorOffset + 1, op);
-      }
-    });
-    return draft;
-  }
-  function deepClonePatchValue(obj) {
-    if (!isDraftable(obj))
-      return obj;
-    if (Array.isArray(obj))
-      return obj.map(deepClonePatchValue);
-    if (isMap(obj))
-      return new Map(
-        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-      );
-    if (isSet(obj))
-      return new Set(Array.from(obj).map(deepClonePatchValue));
-    const cloned = Object.create(getPrototypeOf(obj));
-    for (const key in obj)
-      cloned[key] = deepClonePatchValue(obj[key]);
-    if (has(obj, DRAFTABLE))
-      cloned[DRAFTABLE] = obj[DRAFTABLE];
-    return cloned;
-  }
-  function clonePatchValueIfNeeded(obj) {
-    if (isDraft(obj)) {
-      return deepClonePatchValue(obj);
-    } else
-      return obj;
-  }
-  loadPlugin("Patches", {
-    applyPatches_,
-    generatePatches_,
-    generateReplacementPatches_
-  });
-}
-
-// src/plugins/mapset.ts
-function enableMapSet() {
-  class DraftMap extends Map {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 2 /* Map */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        assigned_: void 0,
-        base_: target,
-        draft_: this,
-        isManual_: false,
-        revoked_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(key) {
-      return latest(this[DRAFT_STATE]).has(key);
-    }
-    set(key, value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!latest(state).has(key) || latest(state).get(key) !== value) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_.set(key, true);
-        state.copy_.set(key, value);
-        state.assigned_.set(key, true);
-      }
-      return this;
-    }
-    delete(key) {
-      if (!this.has(key)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareMapCopy(state);
-      markChanged(state);
-      if (state.base_.has(key)) {
-        state.assigned_.set(key, false);
-      } else {
-        state.assigned_.delete(key);
-      }
-      state.copy_.delete(key);
-      return true;
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareMapCopy(state);
-        markChanged(state);
-        state.assigned_ = /* @__PURE__ */ new Map();
-        each(state.base_, (key) => {
-          state.assigned_.set(key, false);
-        });
-        state.copy_.clear();
-      }
-    }
-    forEach(cb, thisArg) {
-      const state = this[DRAFT_STATE];
-      latest(state).forEach((_value, key, _map) => {
-        cb.call(thisArg, this.get(key), key, this);
-      });
-    }
-    get(key) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      const value = latest(state).get(key);
-      if (state.finalized_ || !isDraftable(value)) {
-        return value;
-      }
-      if (value !== state.base_.get(key)) {
-        return value;
-      }
-      const draft = createProxy(value, state);
-      prepareMapCopy(state);
-      state.copy_.set(key, draft);
-      return draft;
-    }
-    keys() {
-      return latest(this[DRAFT_STATE]).keys();
-    }
-    values() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.values(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value
-          };
-        }
-      };
-    }
-    entries() {
-      const iterator = this.keys();
-      return {
-        [Symbol.iterator]: () => this.entries(),
-        next: () => {
-          const r = iterator.next();
-          if (r.done)
-            return r;
-          const value = this.get(r.value);
-          return {
-            done: false,
-            value: [r.value, value]
-          };
-        }
-      };
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.entries();
-    }
-  }
-  function proxyMap_(target, parent) {
-    return new DraftMap(target, parent);
-  }
-  function prepareMapCopy(state) {
-    if (!state.copy_) {
-      state.assigned_ = /* @__PURE__ */ new Map();
-      state.copy_ = new Map(state.base_);
-    }
-  }
-  class DraftSet extends Set {
-    constructor(target, parent) {
-      super();
-      this[DRAFT_STATE] = {
-        type_: 3 /* Set */,
-        parent_: parent,
-        scope_: parent ? parent.scope_ : getCurrentScope(),
-        modified_: false,
-        finalized_: false,
-        copy_: void 0,
-        base_: target,
-        draft_: this,
-        drafts_: /* @__PURE__ */ new Map(),
-        revoked_: false,
-        isManual_: false
-      };
-    }
-    get size() {
-      return latest(this[DRAFT_STATE]).size;
-    }
-    has(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!state.copy_) {
-        return state.base_.has(value);
-      }
-      if (state.copy_.has(value))
-        return true;
-      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-        return true;
-      return false;
-    }
-    add(value) {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (!this.has(value)) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.add(value);
-      }
-      return this;
-    }
-    delete(value) {
-      if (!this.has(value)) {
-        return false;
-      }
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      markChanged(state);
-      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (
-        /* istanbul ignore next */
-        false
-      ));
-    }
-    clear() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      if (latest(state).size) {
-        prepareSetCopy(state);
-        markChanged(state);
-        state.copy_.clear();
-      }
-    }
-    values() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.values();
-    }
-    entries() {
-      const state = this[DRAFT_STATE];
-      assertUnrevoked(state);
-      prepareSetCopy(state);
-      return state.copy_.entries();
-    }
-    keys() {
-      return this.values();
-    }
-    [(DRAFT_STATE, Symbol.iterator)]() {
-      return this.values();
-    }
-    forEach(cb, thisArg) {
-      const iterator = this.values();
-      let result = iterator.next();
-      while (!result.done) {
-        cb.call(thisArg, result.value, result.value, this);
-        result = iterator.next();
-      }
-    }
-  }
-  function proxySet_(target, parent) {
-    return new DraftSet(target, parent);
-  }
-  function prepareSetCopy(state) {
-    if (!state.copy_) {
-      state.copy_ = /* @__PURE__ */ new Set();
-      state.base_.forEach((value) => {
-        if (isDraftable(value)) {
-          const draft = createProxy(value, state);
-          state.drafts_.set(value, draft);
-          state.copy_.add(draft);
-        } else {
-          state.copy_.add(value);
-        }
-      });
-    }
-  }
-  function assertUnrevoked(state) {
-    if (state.revoked_)
-      die(3, JSON.stringify(latest(state)));
-  }
-  loadPlugin("MapSet", { proxyMap_, proxySet_ });
-}
-
-// src/immer.ts
-var immer = new Immer2();
-var produce = immer.produce;
-var produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-  immer
-);
-var setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);
-var setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-  immer
-);
-var setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-  immer
-);
-var applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);
-var createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);
-var finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);
-function castDraft(value) {
-  return value;
-}
-function castImmutable(value) {
-  return value;
-}
-export {
-  Immer2 as Immer,
-  applyPatches,
-  castDraft,
-  castImmutable,
-  createDraft,
-  current,
-  enableMapSet,
-  enablePatches,
-  finishDraft,
-  freeze,
-  DRAFTABLE as immerable,
-  isDraft,
-  isDraftable,
-  NOTHING as nothing,
-  original,
-  produce,
-  produceWithPatches,
-  setAutoFreeze,
-  setUseStrictIteration,
-  setUseStrictShallowCopy
-};
-//# sourceMappingURL=immer.mjs.map
Index: de_modules/immer/dist/immer.mjs.map
===================================================================
--- node_modules/immer/dist/immer.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n"],"mappings":";AAKO,IAAM,UAAyB,OAAO,IAAI,eAAe;AAUzD,IAAM,YAA2B,OAAO,IAAI,iBAAiB;AAE7D,IAAM,cAA6B,OAAO,IAAI,aAAa;;;ACjB3D,IAAM,SACZ,QAAQ,IAAI,aAAa,eACtB;AAAA;AAAA,EAEA,SAAS,QAAgB;AACxB,WAAO,mBAAmB,yFAAyF;AAAA,EACpH;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,sJAAsJ;AAAA,EAC9J;AAAA,EACA;AAAA,EACA,SAAS,MAAW;AACnB,WACC,yHACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,mCAAmC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,OAAe;AACvB,WAAO,oCAAoC;AAAA,EAC5C;AAAA;AAAA;AAGA,IACA,CAAC;AAEE,SAAS,IAAI,UAAkB,MAAoB;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,IAAI,OAAO,KAAK;AACtB,UAAM,MAAM,OAAO,MAAM,aAAa,EAAE,MAAM,MAAM,IAAW,IAAI;AACnE,UAAM,IAAI,MAAM,WAAW,KAAK;AAAA,EACjC;AACA,QAAM,IAAI;AAAA,IACT,8BAA8B;AAAA,EAC/B;AACD;;;ACjCO,IAAM,iBAAiB,OAAO;AAI9B,SAAS,QAAQ,OAAqB;AAC5C,SAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,WAAW;AACtC;AAIO,SAAS,YAAY,OAAqB;AAChD,MAAI,CAAC;AAAO,WAAO;AACnB,SACC,cAAc,KAAK,KACnB,MAAM,QAAQ,KAAK,KACnB,CAAC,CAAC,MAAM,SAAS,KACjB,CAAC,CAAC,MAAM,cAAc,SAAS,KAC/B,MAAM,KAAK,KACX,MAAM,KAAK;AAEb;AAEA,IAAM,mBAAmB,OAAO,UAAU,YAAY,SAAS;AAC/D,IAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,cAAc,OAAqB;AAClD,MAAI,CAAC,SAAS,OAAO,UAAU;AAAU,WAAO;AAChD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,MAAI,UAAU,QAAQ,UAAU,OAAO;AAAW,WAAO;AAEzD,QAAM,OACL,OAAO,eAAe,KAAK,OAAO,aAAa,KAAK,MAAM;AAC3D,MAAI,SAAS;AAAQ,WAAO;AAE5B,MAAI,OAAO,SAAS;AAAY,WAAO;AAEvC,MAAI,aAAa,kBAAkB,IAAI,IAAI;AAC3C,MAAI,eAAe,QAAW;AAC7B,iBAAa,SAAS,SAAS,KAAK,IAAI;AACxC,sBAAkB,IAAI,MAAM,UAAU;AAAA,EACvC;AAEA,SAAO,eAAe;AACvB;AAKO,SAAS,SAAS,OAA0B;AAClD,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,MAAM,WAAW,EAAE;AAC3B;AAgBO,SAAS,KAAK,KAAU,MAAW,SAAkB,MAAM;AACjE,MAAI,YAAY,GAAG,sBAAuB;AAGzC,UAAM,OAAO,SAAS,QAAQ,QAAQ,GAAG,IAAI,OAAO,KAAK,GAAG;AAC5D,SAAK,QAAQ,SAAO;AACnB,WAAK,KAAK,IAAI,GAAG,GAAG,GAAG;AAAA,IACxB,CAAC;AAAA,EACF,OAAO;AACN,QAAI,QAAQ,CAAC,OAAY,UAAe,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,EAChE;AACD;AAGO,SAAS,YAAY,OAAsB;AACjD,QAAM,QAAgC,MAAM,WAAW;AACvD,SAAO,QACJ,MAAM,QACN,MAAM,QAAQ,KAAK,oBAEnB,MAAM,KAAK,kBAEX,MAAM,KAAK;AAGf;AAGO,SAAS,IAAI,OAAY,MAA4B;AAC3D,SAAO,YAAY,KAAK,oBACrB,MAAM,IAAI,IAAI,IACd,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI;AACpD;AAGO,SAAS,IAAI,OAA2B,MAAwB;AAEtE,SAAO,YAAY,KAAK,oBAAqB,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI;AAC1E;AAGO,SAAS,IAAI,OAAY,gBAA6B,OAAY;AACxE,QAAM,IAAI,YAAY,KAAK;AAC3B,MAAI;AAAoB,UAAM,IAAI,gBAAgB,KAAK;AAAA,WAC9C,mBAAoB;AAC5B,UAAM,IAAI,KAAK;AAAA,EAChB;AAAO,UAAM,cAAc,IAAI;AAChC;AAGO,SAAS,GAAG,GAAQ,GAAiB;AAE3C,MAAI,MAAM,GAAG;AACZ,WAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EACjC,OAAO;AACN,WAAO,MAAM,KAAK,MAAM;AAAA,EACzB;AACD;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAGO,SAAS,MAAM,QAA+B;AACpD,SAAO,kBAAkB;AAC1B;AAEO,SAAS,OAAO,OAAwB;AAC9C,SAAO,MAAM,SAAS,MAAM;AAC7B;AAGO,SAAS,YAAY,MAAW,QAAoB;AAC1D,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,IAAI,GAAG;AAChB,WAAO,IAAI,IAAI,IAAI;AAAA,EACpB;AACA,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,MAAM,UAAU,MAAM,KAAK,IAAI;AAE/D,QAAM,UAAU,cAAc,IAAI;AAElC,MAAI,WAAW,QAAS,WAAW,gBAAgB,CAAC,SAAU;AAE7D,UAAM,cAAc,OAAO,0BAA0B,IAAI;AACzD,WAAO,YAAY,WAAkB;AACrC,QAAI,OAAO,QAAQ,QAAQ,WAAW;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAM,MAAW,KAAK,CAAC;AACvB,YAAM,OAAO,YAAY,GAAG;AAC5B,UAAI,KAAK,aAAa,OAAO;AAC5B,aAAK,WAAW;AAChB,aAAK,eAAe;AAAA,MACrB;AAIA,UAAI,KAAK,OAAO,KAAK;AACpB,oBAAY,GAAG,IAAI;AAAA,UAClB,cAAc;AAAA,UACd,UAAU;AAAA;AAAA,UACV,YAAY,KAAK;AAAA,UACjB,OAAO,KAAK,GAAG;AAAA,QAChB;AAAA,IACF;AACA,WAAO,OAAO,OAAO,eAAe,IAAI,GAAG,WAAW;AAAA,EACvD,OAAO;AAEN,UAAM,QAAQ,eAAe,IAAI;AACjC,QAAI,UAAU,QAAQ,SAAS;AAC9B,aAAO,EAAC,GAAG,KAAI;AAAA,IAChB;AACA,UAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,WAAO,OAAO,OAAO,KAAK,IAAI;AAAA,EAC/B;AACD;AAUO,SAAS,OAAU,KAAU,OAAgB,OAAU;AAC7D,MAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG;AAAG,WAAO;AAC/D,MAAI,YAAY,GAAG,IAAI,GAAoB;AAC1C,WAAO,iBAAiB,KAAK;AAAA,MAC5B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACT,CAAC;AAAA,EACF;AACA,SAAO,OAAO,GAAG;AACjB,MAAI;AAGH,WAAO,OAAO,GAAG,EAAE,QAAQ,WAAS,OAAO,OAAO,IAAI,CAAC;AACxD,SAAO;AACR;AAEA,SAAS,8BAA8B;AACtC,MAAI,CAAC;AACN;AAEA,IAAM,2BAA2B;AAAA,EAChC,OAAO;AACR;AAEO,SAAS,SAAS,KAAmB;AAE3C,MAAI,QAAQ,QAAQ,OAAO,QAAQ;AAAU,WAAO;AACpD,SAAO,OAAO,SAAS,GAAG;AAC3B;;;ACnOA,IAAM,UAoBF,CAAC;AAIE,SAAS,UACf,WACiC;AACjC,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,QAAQ;AACZ,QAAI,GAAG,SAAS;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,SAAS,WACf,WACA,gBACO;AACP,MAAI,CAAC,QAAQ,SAAS;AAAG,YAAQ,SAAS,IAAI;AAC/C;;;AC5BA,IAAI;AAEG,SAAS,kBAAkB;AACjC,SAAO;AACR;AAEA,SAAS,YACR,SACA,QACa;AACb,SAAO;AAAA,IACN,SAAS,CAAC;AAAA,IACV;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACrB;AACD;AAEO,SAAS,kBACf,OACA,eACC;AACD,MAAI,eAAe;AAClB,cAAU,SAAS;AACnB,UAAM,WAAW,CAAC;AAClB,UAAM,kBAAkB,CAAC;AACzB,UAAM,iBAAiB;AAAA,EACxB;AACD;AAEO,SAAS,YAAY,OAAmB;AAC9C,aAAW,KAAK;AAChB,QAAM,QAAQ,QAAQ,WAAW;AAEjC,QAAM,UAAU;AACjB;AAEO,SAAS,WAAW,OAAmB;AAC7C,MAAI,UAAU,cAAc;AAC3B,mBAAe,MAAM;AAAA,EACtB;AACD;AAEO,SAAS,WAAWA,QAAc;AACxC,SAAQ,eAAe,YAAY,cAAcA,MAAK;AACvD;AAEA,SAAS,YAAY,OAAgB;AACpC,QAAM,QAAoB,MAAM,WAAW;AAC3C,MAAI,MAAM,4BAA6B,MAAM;AAC5C,UAAM,QAAQ;AAAA;AACV,UAAM,WAAW;AACvB;;;AC1DO,SAAS,cAAc,QAAa,OAAmB;AAC7D,QAAM,qBAAqB,MAAM,QAAQ;AACzC,QAAM,YAAY,MAAM,QAAS,CAAC;AAClC,QAAM,aAAa,WAAW,UAAa,WAAW;AACtD,MAAI,YAAY;AACf,QAAI,UAAU,WAAW,EAAE,WAAW;AACrC,kBAAY,KAAK;AACjB,UAAI,CAAC;AAAA,IACN;AACA,QAAI,YAAY,MAAM,GAAG;AAExB,eAAS,SAAS,OAAO,MAAM;AAC/B,UAAI,CAAC,MAAM;AAAS,oBAAY,OAAO,MAAM;AAAA,IAC9C;AACA,QAAI,MAAM,UAAU;AACnB,gBAAU,SAAS,EAAE;AAAA,QACpB,UAAU,WAAW,EAAE;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD,OAAO;AAEN,aAAS,SAAS,OAAO,WAAW,CAAC,CAAC;AAAA,EACvC;AACA,cAAY,KAAK;AACjB,MAAI,MAAM,UAAU;AACnB,UAAM,eAAgB,MAAM,UAAU,MAAM,eAAgB;AAAA,EAC7D;AACA,SAAO,WAAW,UAAU,SAAS;AACtC;AAEA,SAAS,SAAS,WAAuB,OAAY,MAAkB;AAEtE,MAAI,SAAS,KAAK;AAAG,WAAO;AAE5B,QAAM,qBAAqB,UAAU,OAAO,yBAAyB;AAErE,QAAM,QAAoB,MAAM,WAAW;AAE3C,MAAI,CAAC,OAAO;AACX;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL,iBAAiB,WAAW,OAAO,OAAO,KAAK,YAAY,IAAI;AAAA,MAChE;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,WAAW;AAAW,WAAO;AAEvC,MAAI,CAAC,MAAM,WAAW;AACrB,gBAAY,WAAW,MAAM,OAAO,IAAI;AACxC,WAAO,MAAM;AAAA,EACd;AAEA,MAAI,CAAC,MAAM,YAAY;AACtB,UAAM,aAAa;AACnB,UAAM,OAAO;AACb,UAAM,SAAS,MAAM;AAKrB,QAAI,aAAa;AACjB,QAAIC,SAAQ;AACZ,QAAI,MAAM,uBAAwB;AACjC,mBAAa,IAAI,IAAI,MAAM;AAC3B,aAAO,MAAM;AACb,MAAAA,SAAQ;AAAA,IACT;AACA;AAAA,MACC;AAAA,MACA,CAAC,KAAK,eACL;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAA;AAAA,MACD;AAAA,MACD;AAAA,IACD;AAEA,gBAAY,WAAW,QAAQ,KAAK;AAEpC,QAAI,QAAQ,UAAU,UAAU;AAC/B,gBAAU,SAAS,EAAE;AAAA,QACpB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,IACD;AAAA,EACD;AACA,SAAO,MAAM;AACd;AAEA,SAAS,iBACR,WACA,aACA,cACA,MACA,YACA,UACA,aACC;AACD,MAAI,cAAc,MAAM;AACvB;AAAA,EACD;AAEA,MAAI,OAAO,eAAe,YAAY,CAAC,aAAa;AACnD;AAAA,EACD;AACA,QAAM,gBAAgB,SAAS,UAAU;AACzC,MAAI,iBAAiB,CAAC,aAAa;AAClC;AAAA,EACD;AAEA,MAAI,QAAQ,IAAI,aAAa,gBAAgB,eAAe;AAC3D,QAAI,CAAC;AACN,MAAI,QAAQ,UAAU,GAAG;AACxB,UAAM,OACL,YACA,eACA,YAAa;AAAA,IACb,CAAC,IAAK,YAA8C,WAAY,IAAI,IACjE,SAAU,OAAO,IAAI,IACrB;AAEJ,UAAM,MAAM,SAAS,WAAW,YAAY,IAAI;AAChD,QAAI,cAAc,MAAM,GAAG;AAG3B,QAAI,QAAQ,GAAG,GAAG;AACjB,gBAAU,iBAAiB;AAAA,IAC5B;AAAO;AAAA,EACR,WAAW,aAAa;AACvB,iBAAa,IAAI,UAAU;AAAA,EAC5B;AAEA,MAAI,YAAY,UAAU,KAAK,CAAC,eAAe;AAC9C,QAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAAG;AAMtE;AAAA,IACD;AACA,QACC,eACA,YAAY,SACZ,YAAY,MAAM,IAAI,MAAM,cAC5B,eACC;AAED;AAAA,IACD;AACA,aAAS,WAAW,UAAU;AAI9B,SACE,CAAC,eAAe,CAAC,YAAY,OAAO,YACrC,OAAO,SAAS,aACf,MAAM,YAAY,IAChB,aAAa,IAAI,IAAI,IACrB,OAAO,UAAU,qBAAqB,KAAK,cAAc,IAAI;AAEhE,kBAAY,WAAW,UAAU;AAAA,EACnC;AACD;AAEA,SAAS,YAAY,OAAmB,OAAY,OAAO,OAAO;AAEjE,MAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBAAgB;AACvE,WAAO,OAAO,IAAI;AAAA,EACnB;AACD;;;ACzJO,SAAS,iBACf,MACA,QACyB;AACzB,QAAM,UAAU,MAAM,QAAQ,IAAI;AAClC,QAAM,QAAoB;AAAA,IACzB,OAAO;AAAA;AAAA,IAEP,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA;AAAA,IAEjD,WAAW;AAAA;AAAA,IAEX,YAAY;AAAA;AAAA,IAEZ,WAAW,CAAC;AAAA;AAAA,IAEZ,SAAS;AAAA;AAAA,IAET,OAAO;AAAA;AAAA,IAEP,QAAQ;AAAA;AAAA;AAAA,IAER,OAAO;AAAA;AAAA,IAEP,SAAS;AAAA,IACT,WAAW;AAAA,EACZ;AAQA,MAAI,SAAY;AAChB,MAAI,QAA2C;AAC/C,MAAI,SAAS;AACZ,aAAS,CAAC,KAAK;AACf,YAAQ;AAAA,EACT;AAEA,QAAM,EAAC,QAAQ,MAAK,IAAI,MAAM,UAAU,QAAQ,KAAK;AACrD,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,SAAO;AACR;AAKO,IAAM,cAAwC;AAAA,EACpD,IAAI,OAAO,MAAM;AAChB,QAAI,SAAS;AAAa,aAAO;AAEjC,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,CAAC,IAAI,QAAQ,IAAI,GAAG;AAEvB,aAAO,kBAAkB,OAAO,QAAQ,IAAI;AAAA,IAC7C;AACA,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,aAAO;AAAA,IACR;AAGA,QAAI,UAAU,KAAK,MAAM,OAAO,IAAI,GAAG;AACtC,kBAAY,KAAK;AACjB,aAAQ,MAAM,MAAO,IAAW,IAAI,YAAY,OAAO,KAAK;AAAA,IAC7D;AACA,WAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,MAAM;AAChB,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,QAAQ,OAAO;AACd,WAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,IACC,OACA,MACA,OACC;AACD,UAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;AACvD,QAAI,MAAM,KAAK;AAGd,WAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;AACjC,aAAO;AAAA,IACR;AACA,QAAI,CAAC,MAAM,WAAW;AAGrB,YAAMC,WAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAExC,YAAM,eAAiCA,WAAU,WAAW;AAC5D,UAAI,gBAAgB,aAAa,UAAU,OAAO;AACjD,cAAM,MAAO,IAAI,IAAI;AACrB,cAAM,UAAU,IAAI,IAAI;AACxB,eAAO;AAAA,MACR;AACA,UAAI,GAAG,OAAOA,QAAO,MAAM,UAAU,UAAa,IAAI,MAAM,OAAO,IAAI;AACtE,eAAO;AACR,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB;AAEA,QACE,MAAM,MAAO,IAAI,MAAM;AAAA,KAEtB,UAAU,UAAa,QAAQ,MAAM;AAAA,IAEtC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAO,IAAI,CAAC;AAEvD,aAAO;AAGR,UAAM,MAAO,IAAI,IAAI;AACrB,UAAM,UAAU,IAAI,IAAI;AACxB,WAAO;AAAA,EACR;AAAA,EACA,eAAe,OAAO,MAAc;AAEnC,QAAI,KAAK,MAAM,OAAO,IAAI,MAAM,UAAa,QAAQ,MAAM,OAAO;AACjE,YAAM,UAAU,IAAI,IAAI;AACxB,kBAAY,KAAK;AACjB,kBAAY,KAAK;AAAA,IAClB,OAAO;AAEN,aAAO,MAAM,UAAU,IAAI;AAAA,IAC5B;AACA,QAAI,MAAM,OAAO;AAChB,aAAO,MAAM,MAAM,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA,EAGA,yBAAyB,OAAO,MAAM;AACrC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;AACzD,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO;AAAA,MACN,UAAU;AAAA,MACV,cAAc,MAAM,2BAA4B,SAAS;AAAA,MACzD,YAAY,KAAK;AAAA,MACjB,OAAO,MAAM,IAAI;AAAA,IAClB;AAAA,EACD;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AAAA,EACA,eAAe,OAAO;AACrB,WAAO,eAAe,MAAM,KAAK;AAAA,EAClC;AAAA,EACA,iBAAiB;AAChB,QAAI,EAAE;AAAA,EACP;AACD;AAMA,IAAM,aAA8C,CAAC;AACrD,KAAK,aAAa,CAAC,KAAK,OAAO;AAE9B,aAAW,GAAG,IAAI,WAAW;AAC5B,cAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC;AAC7B,WAAO,GAAG,MAAM,MAAM,SAAS;AAAA,EAChC;AACD,CAAC;AACD,WAAW,iBAAiB,SAAS,OAAO,MAAM;AACjD,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,IAAW,CAAC;AACvE,QAAI,EAAE;AAEP,SAAO,WAAW,IAAK,KAAK,MAAM,OAAO,MAAM,MAAS;AACzD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;AAC7C,MACC,QAAQ,IAAI,aAAa,gBACzB,SAAS,YACT,MAAM,SAAS,IAAW,CAAC;AAE3B,QAAI,EAAE;AACP,SAAO,YAAY,IAAK,KAAK,MAAM,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;AACnE;AAGA,SAAS,KAAK,OAAgB,MAAmB;AAChD,QAAM,QAAQ,MAAM,WAAW;AAC/B,QAAM,SAAS,QAAQ,OAAO,KAAK,IAAI;AACvC,SAAO,OAAO,IAAI;AACnB;AAEA,SAAS,kBAAkB,OAAmB,QAAa,MAAmB;AAC7E,QAAM,OAAO,uBAAuB,QAAQ,IAAI;AAChD,SAAO,OACJ,WAAW,OACV,KAAK;AAAA;AAAA;AAAA,IAGL,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,MAC5B;AACJ;AAEA,SAAS,uBACR,QACA,MACiC;AAEjC,MAAI,EAAE,QAAQ;AAAS,WAAO;AAC9B,MAAI,QAAQ,eAAe,MAAM;AACjC,SAAO,OAAO;AACb,UAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AACxD,QAAI;AAAM,aAAO;AACjB,YAAQ,eAAe,KAAK;AAAA,EAC7B;AACA,SAAO;AACR;AAEO,SAAS,YAAY,OAAmB;AAC9C,MAAI,CAAC,MAAM,WAAW;AACrB,UAAM,YAAY;AAClB,QAAI,MAAM,SAAS;AAClB,kBAAY,MAAM,OAAO;AAAA,IAC1B;AAAA,EACD;AACD;AAEO,SAAS,YAAY,OAIzB;AACF,MAAI,CAAC,MAAM,OAAO;AACjB,UAAM,QAAQ;AAAA,MACb,MAAM;AAAA,MACN,MAAM,OAAO,OAAO;AAAA,IACrB;AAAA,EACD;AACD;;;AChQO,IAAMC,SAAN,MAAoC;AAAA,EAK1C,YAAY,QAIT;AARH,uBAAuB;AACvB,iCAAoC;AACpC,+BAA+B;AAkC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoB,CAAC,MAAW,QAAc,kBAAwB;AAErE,UAAI,OAAO,SAAS,cAAc,OAAO,WAAW,YAAY;AAC/D,cAAM,cAAc;AACpB,iBAAS;AAET,cAAM,OAAO;AACb,eAAO,SAAS,eAEfC,QAAO,gBACJ,MACF;AACD,iBAAO,KAAK,QAAQA,OAAM,CAAC,UAAmB,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;AAAA,QAChF;AAAA,MACD;AAEA,UAAI,OAAO,WAAW;AAAY,YAAI,CAAC;AACvC,UAAI,kBAAkB,UAAa,OAAO,kBAAkB;AAC3D,YAAI,CAAC;AAEN,UAAI;AAGJ,UAAI,YAAY,IAAI,GAAG;AACtB,cAAM,QAAQ,WAAW,IAAI;AAC7B,cAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,YAAI,WAAW;AACf,YAAI;AACH,mBAAS,OAAO,KAAK;AACrB,qBAAW;AAAA,QACZ,UAAE;AAED,cAAI;AAAU,wBAAY,KAAK;AAAA;AAC1B,uBAAW,KAAK;AAAA,QACtB;AACA,0BAAkB,OAAO,aAAa;AACtC,eAAO,cAAc,QAAQ,KAAK;AAAA,MACnC,WAAW,CAAC,QAAQ,OAAO,SAAS,UAAU;AAC7C,iBAAS,OAAO,IAAI;AACpB,YAAI,WAAW;AAAW,mBAAS;AACnC,YAAI,WAAW;AAAS,mBAAS;AACjC,YAAI,KAAK;AAAa,iBAAO,QAAQ,IAAI;AACzC,YAAI,eAAe;AAClB,gBAAM,IAAa,CAAC;AACpB,gBAAM,KAAc,CAAC;AACrB,oBAAU,SAAS,EAAE,4BAA4B,MAAM,QAAQ,GAAG,EAAE;AACpE,wBAAc,GAAG,EAAE;AAAA,QACpB;AACA,eAAO;AAAA,MACR;AAAO,YAAI,GAAG,IAAI;AAAA,IACnB;AAEA,8BAA0C,CAAC,MAAW,WAAsB;AAE3E,UAAI,OAAO,SAAS,YAAY;AAC/B,eAAO,CAAC,UAAe,SACtB,KAAK,mBAAmB,OAAO,CAAC,UAAe,KAAK,OAAO,GAAG,IAAI,CAAC;AAAA,MACrE;AAEA,UAAI,SAAkB;AACtB,YAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAY,OAAgB;AACtE,kBAAU;AACV,yBAAiB;AAAA,MAClB,CAAC;AACD,aAAO,CAAC,QAAQ,SAAU,cAAe;AAAA,IAC1C;AA5FC,QAAI,OAAO,QAAQ,eAAe;AACjC,WAAK,cAAc,OAAQ,UAAU;AACtC,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,WAAK,wBAAwB,OAAQ,oBAAoB;AAC1D,QAAI,OAAO,QAAQ,uBAAuB;AACzC,WAAK,sBAAsB,OAAQ,kBAAkB;AAAA,EACvD;AAAA,EAwFA,YAAiC,MAAmB;AACnD,QAAI,CAAC,YAAY,IAAI;AAAG,UAAI,CAAC;AAC7B,QAAI,QAAQ,IAAI;AAAG,aAAO,QAAQ,IAAI;AACtC,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,YAAY,MAAM,MAAS;AACzC,UAAM,WAAW,EAAE,YAAY;AAC/B,eAAW,KAAK;AAChB,WAAO;AAAA,EACR;AAAA,EAEA,YACC,OACA,eACuC;AACvC,UAAM,QAAoB,SAAU,MAAc,WAAW;AAC7D,QAAI,CAAC,SAAS,CAAC,MAAM;AAAW,UAAI,CAAC;AACrC,UAAM,EAAC,QAAQ,MAAK,IAAI;AACxB,sBAAkB,OAAO,aAAa;AACtC,WAAO,cAAc,QAAW,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAgB;AAC7B,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwB,OAAmB;AAC1C,SAAK,wBAAwB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,OAAgB;AACrC,SAAK,sBAAsB;AAAA,EAC5B;AAAA,EAEA,2BAAoC;AACnC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,aAAkC,MAAS,SAA8B;AAGxE,QAAI;AACJ,SAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;AACtD,eAAO,MAAM;AACb;AAAA,MACD;AAAA,IACD;AAGA,QAAI,IAAI,IAAI;AACX,gBAAU,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC9B;AAEA,UAAM,mBAAmB,UAAU,SAAS,EAAE;AAC9C,QAAI,QAAQ,IAAI,GAAG;AAElB,aAAO,iBAAiB,MAAM,OAAO;AAAA,IACtC;AAEA,WAAO,KAAK;AAAA,MAAQ;AAAA,MAAM,CAAC,UAC1B,iBAAiB,OAAO,OAAO;AAAA,IAChC;AAAA,EACD;AACD;AAEO,SAAS,YACf,OACA,QACyB;AAEzB,QAAM,QAAiB,MAAM,KAAK,IAC/B,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,MAAM,KAAK,IACX,UAAU,QAAQ,EAAE,UAAU,OAAO,MAAM,IAC3C,iBAAiB,OAAO,MAAM;AAEjC,QAAM,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AACvD,QAAM,QAAQ,KAAK,KAAK;AACxB,SAAO;AACR;;;AC7NO,SAAS,QAAQ,OAAiB;AACxC,MAAI,CAAC,QAAQ,KAAK;AAAG,QAAI,IAAI,KAAK;AAClC,SAAO,YAAY,KAAK;AACzB;AAEA,SAAS,YAAY,OAAiB;AACrC,MAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK;AAAG,WAAO;AACnD,QAAM,QAAgC,MAAM,WAAW;AACvD,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACV,QAAI,CAAC,MAAM;AAAW,aAAO,MAAM;AAEnC,UAAM,aAAa;AACnB,WAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;AACnE,aAAS,MAAM,OAAO,OAAO,yBAAyB;AAAA,EACvD,OAAO;AACN,WAAO,YAAY,OAAO,IAAI;AAAA,EAC/B;AAEA;AAAA,IACC;AAAA,IACA,CAAC,KAAK,eAAe;AACpB,UAAI,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AACA,MAAI,OAAO;AACV,UAAM,aAAa;AAAA,EACpB;AACA,SAAO;AACR;;;ACpBO,SAAS,gBAAgB;AAC/B,QAAM,cAAc;AACpB,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,IAAY;AACpB,eAAO,kCAAkC;AAAA,MAC1C;AAAA,MACA,SAAS,MAAc;AACtB,eAAO,+CAA+C;AAAA,MACvD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,QAAM,UAAU;AAChB,QAAM,MAAM;AACZ,QAAM,SAAS;AAEf,WAAS,iBACR,OACA,UACA,SACA,gBACO;AACP,YAAQ,MAAM,OAAO;AAAA,MACpB;AAAA,MACA;AACC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACC,eAAO,qBAAqB,OAAO,UAAU,SAAS,cAAc;AAAA,MACrE;AACC,eAAO;AAAA,UACL;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,IACF;AAAA,EACD;AAEA,WAAS,qBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,UAAS,IAAI;AACzB,QAAI,QAAQ,MAAM;AAGlB,QAAI,MAAM,SAAS,MAAM,QAAQ;AAEhC;AAAC,OAAC,OAAO,KAAK,IAAI,CAAC,OAAO,KAAK;AAC9B,OAAC,SAAS,cAAc,IAAI,CAAC,gBAAgB,OAAO;AAAA,IACtD;AAGA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,UAAI,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG;AAC1C,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA;AAAA;AAAA,UAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AACD,uBAAe,KAAK;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,QACxC,CAAC;AAAA,MACF;AAAA,IACD;AAGA,aAAS,IAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,KAAK;AACjD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,cAAQ,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ;AAAA;AAAA;AAAA,QAGA,OAAO,wBAAwB,MAAM,CAAC,CAAC;AAAA,MACxC,CAAC;AAAA,IACF;AACA,aAAS,IAAI,MAAM,SAAS,GAAG,MAAM,UAAU,GAAG,EAAE,GAAG;AACtD,YAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,qBAAe,KAAK;AAAA,QACnB,IAAI;AAAA,QACJ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAGA,WAAS,4BACR,OACA,UACA,SACA,gBACC;AACD,UAAM,EAAC,OAAO,MAAK,IAAI;AACvB,SAAK,MAAM,WAAY,CAAC,KAAK,kBAAkB;AAC9C,YAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAM,QAAQ,IAAI,OAAQ,GAAG;AAC7B,YAAM,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,UAAU;AACjE,UAAI,cAAc,SAAS,OAAO;AAAS;AAC3C,YAAM,OAAO,SAAS,OAAO,GAAU;AACvC,cAAQ,KAAK,OAAO,SAAS,EAAC,IAAI,KAAI,IAAI,EAAC,IAAI,MAAM,MAAK,CAAC;AAC3D,qBAAe;AAAA,QACd,OAAO,MACJ,EAAC,IAAI,QAAQ,KAAI,IACjB,OAAO,SACP,EAAC,IAAI,KAAK,MAAM,OAAO,wBAAwB,SAAS,EAAC,IACzD,EAAC,IAAI,SAAS,MAAM,OAAO,wBAAwB,SAAS,EAAC;AAAA,MACjE;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,mBACR,OACA,UACA,SACA,gBACC;AACD,QAAI,EAAC,OAAO,MAAK,IAAI;AAErB,QAAI,IAAI;AACR,UAAM,QAAQ,CAAC,UAAe;AAC7B,UAAI,CAAC,MAAO,IAAI,KAAK,GAAG;AACvB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AACD,QAAI;AACJ,UAAO,QAAQ,CAAC,UAAe;AAC9B,UAAI,CAAC,MAAM,IAAI,KAAK,GAAG;AACtB,cAAM,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAQ,KAAK;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AACD,uBAAe,QAAQ;AAAA,UACtB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,WAAS,4BACR,WACA,aACA,SACA,gBACO;AACP,YAAQ,KAAK;AAAA,MACZ,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO,gBAAgB,UAAU,SAAY;AAAA,IAC9C,CAAC;AACD,mBAAe,KAAK;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,WAAS,cAAiB,OAAU,SAA8B;AACjE,YAAQ,QAAQ,WAAS;AACxB,YAAM,EAAC,MAAM,GAAE,IAAI;AAEnB,UAAI,OAAY;AAChB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACzC,cAAM,aAAa,YAAY,IAAI;AACnC,YAAI,IAAI,KAAK,CAAC;AACd,YAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACnD,cAAI,KAAK;AAAA,QACV;AAGA,aACE,iCAAkC,kCAClC,MAAM,eAAe,MAAM;AAE5B,cAAI,cAAc,CAAC;AACpB,YAAI,OAAO,SAAS,cAAc,MAAM;AACvC,cAAI,cAAc,CAAC;AACpB,eAAO,IAAI,MAAM,CAAC;AAClB,YAAI,OAAO,SAAS;AAAU,cAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,MAClE;AAEA,YAAM,OAAO,YAAY,IAAI;AAC7B,YAAM,QAAQ,oBAAoB,MAAM,KAAK;AAC7C,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,cAAQ,IAAI;AAAA,QACX,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAE3B;AACC,kBAAI,WAAW;AAAA,YAChB;AAKC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,QAAQ,MACZ,KAAK,KAAK,KAAK,IACf,KAAK,OAAO,KAAY,GAAG,KAAK;AAAA,YACpC;AACC,qBAAO,KAAK,IAAI,KAAK,KAAK;AAAA,YAC3B;AACC,qBAAO,KAAK,IAAI,KAAK;AAAA,YACtB;AACC,qBAAQ,KAAK,GAAG,IAAI;AAAA,UACtB;AAAA,QACD,KAAK;AACJ,kBAAQ,MAAM;AAAA,YACb;AACC,qBAAO,KAAK,OAAO,KAAY,CAAC;AAAA,YACjC;AACC,qBAAO,KAAK,OAAO,GAAG;AAAA,YACvB;AACC,qBAAO,KAAK,OAAO,MAAM,KAAK;AAAA,YAC/B;AACC,qBAAO,OAAO,KAAK,GAAG;AAAA,UACxB;AAAA,QACD;AACC,cAAI,cAAc,GAAG,EAAE;AAAA,MACzB;AAAA,IACD,CAAC;AAED,WAAO;AAAA,EACR;AAMA,WAAS,oBAAoB,KAAU;AACtC,QAAI,CAAC,YAAY,GAAG;AAAG,aAAO;AAC9B,QAAI,MAAM,QAAQ,GAAG;AAAG,aAAO,IAAI,IAAI,mBAAmB;AAC1D,QAAI,MAAM,GAAG;AACZ,aAAO,IAAI;AAAA,QACV,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAAA,MACtE;AACD,QAAI,MAAM,GAAG;AAAG,aAAO,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,mBAAmB,CAAC;AACvE,UAAM,SAAS,OAAO,OAAO,eAAe,GAAG,CAAC;AAChD,eAAW,OAAO;AAAK,aAAO,GAAG,IAAI,oBAAoB,IAAI,GAAG,CAAC;AACjE,QAAI,IAAI,KAAK,SAAS;AAAG,aAAO,SAAS,IAAI,IAAI,SAAS;AAC1D,WAAO;AAAA,EACR;AAEA,WAAS,wBAA2B,KAAW;AAC9C,QAAI,QAAQ,GAAG,GAAG;AACjB,aAAO,oBAAoB,GAAG;AAAA,IAC/B;AAAO,aAAO;AAAA,EACf;AAEA,aAAW,WAAW;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;;;ACzSO,SAAS,eAAe;AAC9B,QAAM,iBAAiB,IAAI;AAAA,IAG1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,KAAmB;AACtB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,IAAI,GAAG;AAAA,IACzC;AAAA,IAEA,IAAI,KAAU,OAAY;AACzB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,GAAG,MAAM,OAAO;AAChE,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,UAAW,IAAI,KAAK,IAAI;AAC9B,cAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,cAAM,UAAW,IAAI,KAAK,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAmB;AACzB,UAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,UAAI,MAAM,MAAM,IAAI,GAAG,GAAG;AACzB,cAAM,UAAW,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AACN,cAAM,UAAW,OAAO,GAAG;AAAA,MAC5B;AACA,YAAM,MAAO,OAAO,GAAG;AACvB,aAAO;AAAA,IACR;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,YAAY,oBAAI,IAAI;AAC1B,aAAK,MAAM,OAAO,SAAO;AACxB,gBAAM,UAAW,IAAI,KAAK,KAAK;AAAA,QAChC,CAAC;AACD,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,QAAQ,IAA+C,SAAe;AACrE,YAAM,QAAkB,KAAK,WAAW;AACxC,aAAO,KAAK,EAAE,QAAQ,CAAC,QAAa,KAAU,SAAc;AAC3D,WAAG,KAAK,SAAS,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI;AAAA,MAC1C,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,KAAe;AAClB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,YAAM,QAAQ,OAAO,KAAK,EAAE,IAAI,GAAG;AACnC,UAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GAAG;AAC5C,eAAO;AAAA,MACR;AACA,UAAI,UAAU,MAAM,MAAM,IAAI,GAAG,GAAG;AACnC,eAAO;AAAA,MACR;AAEA,YAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,qBAAe,KAAK;AACpB,YAAM,MAAO,IAAI,KAAK,KAAK;AAC3B,aAAO;AAAA,IACR;AAAA,IAEA,OAA8B;AAC7B,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK;AAAA,IACvC;AAAA,IAEA,SAAgC;AAC/B,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAO;AAAA,QACrC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAwC;AACvC,YAAM,WAAW,KAAK,KAAK;AAC3B,aAAO;AAAA,QACN,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAQ;AAAA,QACtC,MAAM,MAAM;AACX,gBAAM,IAAI,SAAS,KAAK;AAExB,cAAI,EAAE;AAAM,mBAAO;AACnB,gBAAM,QAAQ,KAAK,IAAI,EAAE,KAAK;AAC9B,iBAAO;AAAA,YACN,MAAM;AAAA,YACN,OAAO,CAAC,EAAE,OAAO,KAAK;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,EAtIC,aAsIA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACD;AAEA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AACjB,YAAM,YAAY,oBAAI,IAAI;AAC1B,YAAM,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAClC;AAAA,EACD;AAEA,QAAM,iBAAiB,IAAI;AAAA,IAE1B,YAAY,QAAgB,QAAqB;AAChD,YAAM;AACN,WAAK,WAAW,IAAI;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,SAAS,OAAO,SAAS,gBAAgB;AAAA,QACjD,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS,oBAAI,IAAI;AAAA,QACjB,UAAU;AAAA,QACV,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IAEA,IAAI,OAAe;AAClB,aAAO,OAAO,KAAK,WAAW,CAAC,EAAE;AAAA,IAClC;AAAA,IAEA,IAAI,OAAqB;AACxB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AAErB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,MAAM,MAAM,IAAI,KAAK;AAAA,MAC7B;AACA,UAAI,MAAM,MAAM,IAAI,KAAK;AAAG,eAAO;AACnC,UAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC;AACvE,eAAO;AACR,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAiB;AACpB,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,IAAI,KAAK;AAAA,MACvB;AACA,aAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAiB;AACvB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,kBAAY,KAAK;AACjB,aACC,MAAM,MAAO,OAAO,KAAK,MACxB,MAAM,QAAQ,IAAI,KAAK,IACrB,MAAM,MAAO,OAAO,MAAM,QAAQ,IAAI,KAAK,CAAC;AAAA;AAAA,QACjB;AAAA;AAAA,IAEhC;AAAA,IAEA,QAAQ;AACP,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,UAAI,OAAO,KAAK,EAAE,MAAM;AACvB,uBAAe,KAAK;AACpB,oBAAY,KAAK;AACjB,cAAM,MAAO,MAAM;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,SAAgC;AAC/B,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,OAAO;AAAA,IAC5B;AAAA,IAEA,UAAwC;AACvC,YAAM,QAAkB,KAAK,WAAW;AACxC,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,aAAO,MAAM,MAAO,QAAQ;AAAA,IAC7B;AAAA,IAEA,OAA8B;AAC7B,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,EA3FC,aA2FA,OAAO,SAAQ,IAAI;AACnB,aAAO,KAAK,OAAO;AAAA,IACpB;AAAA,IAEA,QAAQ,IAAS,SAAe;AAC/B,YAAM,WAAW,KAAK,OAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,aAAO,CAAC,OAAO,MAAM;AACpB,WAAG,KAAK,SAAS,OAAO,OAAO,OAAO,OAAO,IAAI;AACjD,iBAAS,SAAS,KAAK;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AACA,WAAS,UAA4B,QAAW,QAAwB;AAEvE,WAAO,IAAI,SAAS,QAAQ,MAAM;AAAA,EACnC;AAEA,WAAS,eAAe,OAAiB;AACxC,QAAI,CAAC,MAAM,OAAO;AAEjB,YAAM,QAAQ,oBAAI,IAAI;AACtB,YAAM,MAAM,QAAQ,WAAS;AAC5B,YAAI,YAAY,KAAK,GAAG;AACvB,gBAAM,QAAQ,YAAY,OAAO,KAAK;AACtC,gBAAM,QAAQ,IAAI,OAAO,KAAK;AAC9B,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB,OAAO;AACN,gBAAM,MAAO,IAAI,KAAK;AAAA,QACvB;AAAA,MACD,CAAC;AAAA,IACF;AAAA,EACD;AAEA,WAAS,gBAAgB,OAA+C;AACvE,QAAI,MAAM;AAAU,UAAI,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,CAAC;AAAA,EACzD;AAEA,aAAW,UAAU,EAAC,WAAW,UAAS,CAAC;AAC5C;;;ACrRA,IAAM,QAAQ,IAAIC,OAAM;AAqBjB,IAAM,UAAoC,MAAM;AAMhD,IAAM,qBAA0D,sBAAM,mBAAmB;AAAA,EAC/F;AACD;AAOO,IAAM,gBAAgC,sBAAM,cAAc,KAAK,KAAK;AAOpE,IAAM,0BAA0C,sBAAM,wBAAwB;AAAA,EACpF;AACD;AAQO,IAAM,wBAAwC,sBAAM,sBAAsB;AAAA,EAChF;AACD;AAOO,IAAM,eAA+B,sBAAM,aAAa,KAAK,KAAK;AAMlE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAUhE,IAAM,cAA8B,sBAAM,YAAY,KAAK,KAAK;AAQhE,SAAS,UAAa,OAAoB;AAChD,SAAO;AACR;AAOO,SAAS,cAAiB,OAAwB;AACxD,SAAO;AACR;","names":["immer","isSet","current","Immer","base","Immer"]}
Index: de_modules/immer/dist/immer.production.mjs
===================================================================
--- node_modules/immer/dist/immer.production.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-var R=Symbol.for("immer-nothing"),N=Symbol.for("immer-draftable"),u=Symbol.for("immer-state");function h(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var z=Object.getPrototypeOf;function M(e){return!!e&&!!e[u]}function A(e){return e?le(e)||Array.isArray(e)||!!e[N]||!!e.constructor?.[N]||j(e)||k(e):!1}var Pe=Object.prototype.constructor.toString(),ye=new WeakMap;function le(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=ye.get(r);return n===void 0&&(n=Function.toString.call(r),ye.set(r,n)),n===Pe}function xe(e){return M(e)||h(15,e),e[u].t}function _(e,t,r=!0){C(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function C(e){let t=e[u];return t?t.o:Array.isArray(e)?1:j(e)?2:k(e)?3:0}function v(e,t){return C(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function X(e,t){return C(e)===2?e.get(t):e[t]}function Q(e,t,r){let n=C(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function pe(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function j(e){return e instanceof Map}function k(e){return e instanceof Set}function I(e){return e.e||e.t}function G(e,t){if(j(e))return new Map(e);if(k(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=le(e);if(t===!0||t==="class_only"&&!r){let n=Object.getOwnPropertyDescriptors(e);delete n[u];let i=Reflect.ownKeys(n);for(let c=0;c<i.length;c++){let y=i[c],s=n[y];s.writable===!1&&(s.writable=!0,s.configurable=!0),(s.get||s.set)&&(n[y]={configurable:!0,writable:!0,enumerable:s.enumerable,value:e[y]})}return Object.create(z(e),n)}else{let n=z(e);if(n!==null&&r)return{...e};let i=Object.create(n);return Object.assign(i,e)}}function B(e,t=!1){return H(e)||M(e)||!A(e)||(C(e)>1&&Object.defineProperties(e,{set:J,add:J,clear:J,delete:J}),Object.freeze(e),t&&Object.values(e).forEach(r=>B(r,!0))),e}function be(){h(2)}var J={value:be};function H(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var ne={};function w(e){let t=ne[e];return t||h(0,e),t}function Y(e,t){ne[e]||(ne[e]=t)}var L;function K(){return L}function ge(e,t){return{a:[],i:e,f:t,P:!0,d:0}}function ae(e,t){t&&(w("Patches"),e.u=[],e.h=[],e.I=t)}function q(e){Z(e),e.a.forEach(Ie),e.a=null}function Z(e){e===L&&(L=e.i)}function oe(e){return L=ge(L,e)}function Ie(e){let t=e[u];t.o===0||t.o===1?t.x():t.m=!0}function ie(e,t){t.d=t.a.length;let r=t.a[0];return e!==void 0&&e!==r?(r[u].s&&(q(t),h(4)),A(e)&&(e=ee(t,e),t.i||te(t,e)),t.u&&w("Patches").T(r[u].t,e,t.u,t.h)):e=ee(t,r,[]),q(t),t.u&&t.I(t.u,t.h),e!==R?e:void 0}function ee(e,t,r){if(H(t))return t;let n=e.f.shouldUseStrictIteration(),i=t[u];if(!i)return _(t,(c,y)=>de(e,i,t,c,y,r),n),t;if(i.n!==e)return t;if(!i.s)return te(e,i.t,!0),i.t;if(!i.c){i.c=!0,i.n.d--;let c=i.e,y=c,s=!1;i.o===3&&(y=new Set(c),c.clear(),s=!0),_(y,(g,a)=>de(e,i,c,g,a,r,s),n),te(e,c,!1),r&&e.u&&w("Patches").g(i,r,e.u,e.h)}return i.e}function de(e,t,r,n,i,c,y){if(i==null||typeof i!="object"&&!y)return;let s=H(i);if(!(s&&!y)){if(M(i)){let g=c&&t&&t.o!==3&&!v(t.r,n)?c.concat(n):void 0,a=ee(e,i,g);if(Q(r,n,a),M(a))e.P=!1;else return}else y&&r.add(i);if(A(i)&&!s){if(!e.f.y&&e.d<1||t&&t.t&&t.t[n]===i&&s)return;ee(e,i),(!t||!t.n.i)&&typeof n!="symbol"&&(j(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&te(e,i)}}}function te(e,t,r=!1){!e.i&&e.f.y&&e.P&&B(t,r)}function he(e,t){let r=Array.isArray(e),n={o:r?1:0,n:t?t.n:K(),s:!1,c:!1,r:{},i:t,t:e,p:null,e:null,x:null,l:!1},i=n,c=fe;r&&(i=[n],c=V);let{revoke:y,proxy:s}=Proxy.revocable(i,c);return n.p=s,n.x=y,s}var fe={get(e,t){if(t===u)return e;let r=I(e);if(!v(r,t))return Te(e,r,t);let n=r[t];return e.c||!A(n)?n:n===se(e.t,t)?(ce(e),e.e[t]=U(n,e)):n},has(e,t){return t in I(e)},ownKeys(e){return Reflect.ownKeys(I(e))},set(e,t,r){let n=me(I(e),t);if(n?.set)return n.set.call(e.p,r),!0;if(!e.s){let i=se(I(e),t),c=i?.[u];if(c&&c.t===r)return e.e[t]=r,e.r[t]=!1,!0;if(pe(r,i)&&(r!==void 0||v(e.t,t)))return!0;ce(e),E(e)}return e.e[t]===r&&(r!==void 0||t in e.e)||Number.isNaN(r)&&Number.isNaN(e.e[t])||(e.e[t]=r,e.r[t]=!0),!0},deleteProperty(e,t){return se(e.t,t)!==void 0||t in e.t?(e.r[t]=!1,ce(e),E(e)):delete e.r[t],e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let r=I(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.o!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){h(11)},getPrototypeOf(e){return z(e.t)},setPrototypeOf(){h(12)}},V={};_(fe,(e,t)=>{V[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});V.deleteProperty=function(e,t){return V.set.call(this,e,t,void 0)};V.set=function(e,t,r){return fe.set.call(this,e[0],t,r,e[0])};function se(e,t){let r=e[u];return(r?I(r):e)[t]}function Te(e,t,r){let n=me(t,r);return n?"value"in n?n.value:n.get?.call(e.p):void 0}function me(e,t){if(!(t in e))return;let r=z(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=z(r)}}function E(e){e.s||(e.s=!0,e.i&&E(e.i))}function ce(e){e.e||(e.e=G(e.t,e.n.f.S))}var re=class{constructor(t){this.y=!0;this.S=!1;this.b=!0;this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){let c=r;r=t;let y=this;return function(g=c,...a){return y.produce(g,o=>r.call(this,o,...a))}}typeof r!="function"&&h(6),n!==void 0&&typeof n!="function"&&h(7);let i;if(A(t)){let c=oe(this),y=U(t,void 0),s=!0;try{i=r(y),s=!1}finally{s?q(c):Z(c)}return ae(c,n),ie(i,c)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===R&&(i=void 0),this.y&&B(i,!0),n){let c=[],y=[];w("Patches").T(t,i,c,y),n(c,y)}return i}else h(1,t)};this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(y,...s)=>this.produceWithPatches(y,g=>t(g,...s));let n,i;return[this.produce(t,r,(y,s)=>{n=y,i=s}),n,i]};typeof t?.autoFreeze=="boolean"&&this.setAutoFreeze(t.autoFreeze),typeof t?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),typeof t?.useStrictIteration=="boolean"&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){A(t)||h(8),M(t)&&(t=ue(t));let r=oe(this),n=U(t,void 0);return n[u].l=!0,Z(r),n}finishDraft(t,r){let n=t&&t[u];(!n||!n.l)&&h(9);let{n:i}=n;return ae(i,r),ie(void 0,i)}setAutoFreeze(t){this.y=t}setUseStrictShallowCopy(t){this.S=t}setUseStrictIteration(t){this.b=t}shouldUseStrictIteration(){return this.b}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){let c=r[n];if(c.path.length===0&&c.op==="replace"){t=c.value;break}}n>-1&&(r=r.slice(n+1));let i=w("Patches").A;return M(t)?i(t,r):this.produce(t,c=>i(c,r))}};function U(e,t){let r=j(e)?w("MapSet").D(e,t):k(e)?w("MapSet").R(e,t):he(e,t);return(t?t.n:K()).a.push(r),r}function ue(e){return M(e)||h(10,e),Se(e)}function Se(e){if(!A(e)||H(e))return e;let t=e[u],r,n=!0;if(t){if(!t.s)return t.t;t.c=!0,r=G(e,t.n.f.S),n=t.n.f.shouldUseStrictIteration()}else r=G(e,!0);return _(r,(i,c)=>{Q(r,i,Se(c))},n),t&&(t.c=!1),r}function Ae(){let t="replace",r="add",n="remove";function i(f,S,m,x){switch(f.o){case 0:case 2:return y(f,S,m,x);case 1:return c(f,S,m,x);case 3:return s(f,S,m,x)}}function c(f,S,m,x){let{t:T,r:P}=f,b=f.e;b.length<T.length&&([T,b]=[b,T],[m,x]=[x,m]);for(let l=0;l<T.length;l++)if(P[l]&&b[l]!==T[l]){let d=S.concat([l]);m.push({op:t,path:d,value:p(b[l])}),x.push({op:t,path:d,value:p(T[l])})}for(let l=T.length;l<b.length;l++){let d=S.concat([l]);m.push({op:r,path:d,value:p(b[l])})}for(let l=b.length-1;T.length<=l;--l){let d=S.concat([l]);x.push({op:n,path:d})}}function y(f,S,m,x){let{t:T,e:P}=f;_(f.r,(b,l)=>{let d=X(T,b),W=X(P,b),F=l?v(T,b)?t:r:n;if(d===W&&F===t)return;let O=S.concat(b);m.push(F===n?{op:F,path:O}:{op:F,path:O,value:W}),x.push(F===r?{op:n,path:O}:F===n?{op:r,path:O,value:p(d)}:{op:t,path:O,value:p(d)})})}function s(f,S,m,x){let{t:T,e:P}=f,b=0;T.forEach(l=>{if(!P.has(l)){let d=S.concat([b]);m.push({op:n,path:d,value:l}),x.unshift({op:r,path:d,value:l})}b++}),b=0,P.forEach(l=>{if(!T.has(l)){let d=S.concat([b]);m.push({op:r,path:d,value:l}),x.unshift({op:n,path:d,value:l})}b++})}function g(f,S,m,x){m.push({op:t,path:[],value:S===R?void 0:S}),x.push({op:t,path:[],value:f})}function a(f,S){return S.forEach(m=>{let{path:x,op:T}=m,P=f;for(let W=0;W<x.length-1;W++){let F=C(P),O=x[W];typeof O!="string"&&typeof O!="number"&&(O=""+O),(F===0||F===1)&&(O==="__proto__"||O==="constructor")&&h(16+3),typeof P=="function"&&O==="prototype"&&h(16+3),P=X(P,O),typeof P!="object"&&h(16+2,x.join("/"))}let b=C(P),l=o(m.value),d=x[x.length-1];switch(T){case t:switch(b){case 2:return P.set(d,l);case 3:h(16);default:return P[d]=l}case r:switch(b){case 1:return d==="-"?P.push(l):P.splice(d,0,l);case 2:return P.set(d,l);case 3:return P.add(l);default:return P[d]=l}case n:switch(b){case 1:return P.splice(d,1);case 2:return P.delete(d);case 3:return P.delete(m.value);default:return delete P[d]}default:h(16+1,T)}}),f}function o(f){if(!A(f))return f;if(Array.isArray(f))return f.map(o);if(j(f))return new Map(Array.from(f.entries()).map(([m,x])=>[m,o(x)]));if(k(f))return new Set(Array.from(f).map(o));let S=Object.create(z(f));for(let m in f)S[m]=o(f[m]);return v(f,N)&&(S[N]=f[N]),S}function p(f){return M(f)?o(f):f}Y("Patches",{A:a,g:i,T:g})}function De(){class e extends Map{constructor(a,o){super();this[u]={o:2,i:o,n:o?o.n:K(),s:!1,c:!1,e:void 0,r:void 0,t:a,p:this,l:!1,m:!1}}get size(){return I(this[u]).size}has(a){return I(this[u]).has(a)}set(a,o){let p=this[u];return y(p),(!I(p).has(a)||I(p).get(a)!==o)&&(r(p),E(p),p.r.set(a,!0),p.e.set(a,o),p.r.set(a,!0)),this}delete(a){if(!this.has(a))return!1;let o=this[u];return y(o),r(o),E(o),o.t.has(a)?o.r.set(a,!1):o.r.delete(a),o.e.delete(a),!0}clear(){let a=this[u];y(a),I(a).size&&(r(a),E(a),a.r=new Map,_(a.t,o=>{a.r.set(o,!1)}),a.e.clear())}forEach(a,o){let p=this[u];I(p).forEach((f,S,m)=>{a.call(o,this.get(S),S,this)})}get(a){let o=this[u];y(o);let p=I(o).get(a);if(o.c||!A(p)||p!==o.t.get(a))return p;let f=U(p,o);return r(o),o.e.set(a,f),f}keys(){return I(this[u]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let o=a.next();return o.done?o:{done:!1,value:this.get(o.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let o=a.next();if(o.done)return o;let p=this.get(o.value);return{done:!1,value:[o.value,p]}}}}[(u,Symbol.iterator)](){return this.entries()}}function t(s,g){return new e(s,g)}function r(s){s.e||(s.r=new Map,s.e=new Map(s.t))}class n extends Set{constructor(a,o){super();this[u]={o:3,i:o,n:o?o.n:K(),s:!1,c:!1,e:void 0,t:a,p:this,a:new Map,m:!1,l:!1}}get size(){return I(this[u]).size}has(a){let o=this[u];return y(o),o.e?!!(o.e.has(a)||o.a.has(a)&&o.e.has(o.a.get(a))):o.t.has(a)}add(a){let o=this[u];return y(o),this.has(a)||(c(o),E(o),o.e.add(a)),this}delete(a){if(!this.has(a))return!1;let o=this[u];return y(o),c(o),E(o),o.e.delete(a)||(o.a.has(a)?o.e.delete(o.a.get(a)):!1)}clear(){let a=this[u];y(a),I(a).size&&(c(a),E(a),a.e.clear())}values(){let a=this[u];return y(a),c(a),a.e.values()}entries(){let a=this[u];return y(a),c(a),a.e.entries()}keys(){return this.values()}[(u,Symbol.iterator)](){return this.values()}forEach(a,o){let p=this.values(),f=p.next();for(;!f.done;)a.call(o,f.value,f.value,this),f=p.next()}}function i(s,g){return new n(s,g)}function c(s){s.e||(s.e=new Set,s.t.forEach(g=>{if(A(g)){let a=U(g,s);s.a.set(g,a),s.e.add(a)}else s.e.add(g)}))}function y(s){s.m&&h(3,JSON.stringify(I(s)))}Y("MapSet",{D:t,R:i})}var D=new re,Xt=D.produce,Qt=D.produceWithPatches.bind(D),Yt=D.setAutoFreeze.bind(D),Zt=D.setUseStrictShallowCopy.bind(D),er=D.setUseStrictIteration.bind(D),tr=D.applyPatches.bind(D),rr=D.createDraft.bind(D),nr=D.finishDraft.bind(D);function ar(e){return e}function or(e){return e}export{re as Immer,tr as applyPatches,ar as castDraft,or as castImmutable,rr as createDraft,ue as current,De as enableMapSet,Ae as enablePatches,nr as finishDraft,B as freeze,N as immerable,M as isDraft,A as isDraftable,R as nothing,xe as original,Xt as produce,Qt as produceWithPatches,Yt as setAutoFreeze,er as setUseStrictIteration,Zt as setUseStrictShallowCopy};
-//# sourceMappingURL=immer.production.mjs.map
Index: de_modules/immer/dist/immer.production.mjs.map
===================================================================
--- node_modules/immer/dist/immer.production.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/env.ts","../src/utils/errors.ts","../src/utils/common.ts","../src/utils/plugins.ts","../src/core/scope.ts","../src/core/finalize.ts","../src/core/proxy.ts","../src/core/immerClass.ts","../src/core/current.ts","../src/plugins/patches.ts","../src/plugins/mapset.ts","../src/immer.ts"],"sourcesContent":["// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n *               When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n"],"mappings":"AAKO,IAAMA,EAAyB,OAAO,IAAI,eAAe,EAUnDC,EAA2B,OAAO,IAAI,iBAAiB,EAEvDC,EAA6B,OAAO,IAAI,aAAa,ECqB3D,SAASC,EAAIC,KAAkBC,EAAoB,CAMzD,MAAM,IAAI,MACT,8BAA8BD,0CAC/B,CACD,CCjCO,IAAME,EAAiB,OAAO,eAI9B,SAASC,EAAQC,EAAqB,CAC5C,MAAO,CAAC,CAACA,GAAS,CAAC,CAACA,EAAMC,CAAW,CACtC,CAIO,SAASC,EAAYF,EAAqB,CAChD,OAAKA,EAEJG,GAAcH,CAAK,GACnB,MAAM,QAAQA,CAAK,GACnB,CAAC,CAACA,EAAMI,CAAS,GACjB,CAAC,CAACJ,EAAM,cAAcI,CAAS,GAC/BC,EAAML,CAAK,GACXM,EAAMN,CAAK,EAPO,EASpB,CAEA,IAAMO,GAAmB,OAAO,UAAU,YAAY,SAAS,EACzDC,GAAoB,IAAI,QAEvB,SAASL,GAAcH,EAAqB,CAClD,GAAI,CAACA,GAAS,OAAOA,GAAU,SAAU,MAAO,GAChD,IAAMS,EAAQ,OAAO,eAAeT,CAAK,EACzC,GAAIS,IAAU,MAAQA,IAAU,OAAO,UAAW,MAAO,GAEzD,IAAMC,EACL,OAAO,eAAe,KAAKD,EAAO,aAAa,GAAKA,EAAM,YAC3D,GAAIC,IAAS,OAAQ,MAAO,GAE5B,GAAI,OAAOA,GAAS,WAAY,MAAO,GAEvC,IAAIC,EAAaH,GAAkB,IAAIE,CAAI,EAC3C,OAAIC,IAAe,SAClBA,EAAa,SAAS,SAAS,KAAKD,CAAI,EACxCF,GAAkB,IAAIE,EAAMC,CAAU,GAGhCA,IAAeJ,EACvB,CAKO,SAASK,GAASZ,EAA0B,CAClD,OAAKD,EAAQC,CAAK,GAAGa,EAAI,GAAIb,CAAK,EAC3BA,EAAMC,CAAW,EAAEa,CAC3B,CAgBO,SAASC,EAAKC,EAAUC,EAAWC,EAAkB,GAAM,CAC7DC,EAAYH,CAAG,IAAM,GAGXE,EAAS,QAAQ,QAAQF,CAAG,EAAI,OAAO,KAAKA,CAAG,GACvD,QAAQI,GAAO,CACnBH,EAAKG,EAAKJ,EAAII,CAAG,EAAGJ,CAAG,CACxB,CAAC,EAEDA,EAAI,QAAQ,CAACK,EAAYC,IAAeL,EAAKK,EAAOD,EAAOL,CAAG,CAAC,CAEjE,CAGO,SAASG,EAAYI,EAAsB,CACjD,IAAMC,EAAgCD,EAAMtB,CAAW,EACvD,OAAOuB,EACJA,EAAMC,EACN,MAAM,QAAQF,CAAK,IAEnBlB,EAAMkB,CAAK,IAEXjB,EAAMiB,CAAK,KAGf,CAGO,SAASG,EAAIH,EAAYI,EAA4B,CAC3D,OAAOR,EAAYI,CAAK,IAAM,EAC3BA,EAAM,IAAII,CAAI,EACd,OAAO,UAAU,eAAe,KAAKJ,EAAOI,CAAI,CACpD,CAGO,SAASC,EAAIL,EAA2BI,EAAwB,CAEtE,OAAOR,EAAYI,CAAK,IAAM,EAAeA,EAAM,IAAII,CAAI,EAAIJ,EAAMI,CAAI,CAC1E,CAGO,SAASE,EAAIN,EAAYO,EAA6B9B,EAAY,CACxE,IAAM+B,EAAIZ,EAAYI,CAAK,EACvBQ,IAAM,EAAcR,EAAM,IAAIO,EAAgB9B,CAAK,EAC9C+B,IAAM,EACdR,EAAM,IAAIvB,CAAK,EACTuB,EAAMO,CAAc,EAAI9B,CAChC,CAGO,SAASgC,GAAGC,EAAQC,EAAiB,CAE3C,OAAID,IAAMC,EACFD,IAAM,GAAK,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,CAE1B,CAGO,SAAS7B,EAAM8B,EAA+B,CACpD,OAAOA,aAAkB,GAC1B,CAGO,SAAS7B,EAAM6B,EAA+B,CACpD,OAAOA,aAAkB,GAC1B,CAEO,SAASC,EAAOZ,EAAwB,CAC9C,OAAOA,EAAMa,GAASb,EAAMV,CAC7B,CAGO,SAASwB,EAAYC,EAAWrB,EAAoB,CAC1D,GAAIb,EAAMkC,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAIjC,EAAMiC,CAAI,EACb,OAAO,IAAI,IAAIA,CAAI,EAEpB,GAAI,MAAM,QAAQA,CAAI,EAAG,OAAO,MAAM,UAAU,MAAM,KAAKA,CAAI,EAE/D,IAAMC,EAAUrC,GAAcoC,CAAI,EAElC,GAAIrB,IAAW,IAASA,IAAW,cAAgB,CAACsB,EAAU,CAE7D,IAAMC,EAAc,OAAO,0BAA0BF,CAAI,EACzD,OAAOE,EAAYxC,CAAkB,EACrC,IAAIyC,EAAO,QAAQ,QAAQD,CAAW,EACtC,QAASE,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAAK,CACrC,IAAMvB,EAAWsB,EAAKC,CAAC,EACjBC,EAAOH,EAAYrB,CAAG,EACxBwB,EAAK,WAAa,KACrBA,EAAK,SAAW,GAChBA,EAAK,aAAe,KAKjBA,EAAK,KAAOA,EAAK,OACpBH,EAAYrB,CAAG,EAAI,CAClB,aAAc,GACd,SAAU,GACV,WAAYwB,EAAK,WACjB,MAAOL,EAAKnB,CAAG,CAChB,GAEF,OAAO,OAAO,OAAOtB,EAAeyC,CAAI,EAAGE,CAAW,MAChD,CAEN,IAAMhC,EAAQX,EAAeyC,CAAI,EACjC,GAAI9B,IAAU,MAAQ+B,EACrB,MAAO,CAAC,GAAGD,CAAI,EAEhB,IAAMvB,EAAM,OAAO,OAAOP,CAAK,EAC/B,OAAO,OAAO,OAAOO,EAAKuB,CAAI,EAEhC,CAUO,SAASM,EAAU7B,EAAU8B,EAAgB,GAAU,CAC7D,OAAIC,EAAS/B,CAAG,GAAKjB,EAAQiB,CAAG,GAAK,CAACd,EAAYc,CAAG,IACjDG,EAAYH,CAAG,EAAI,GACtB,OAAO,iBAAiBA,EAAK,CAC5B,IAAKgC,EACL,IAAKA,EACL,MAAOA,EACP,OAAQA,CACT,CAAC,EAEF,OAAO,OAAOhC,CAAG,EACb8B,GAGH,OAAO,OAAO9B,CAAG,EAAE,QAAQhB,GAAS6C,EAAO7C,EAAO,EAAI,CAAC,GACjDgB,CACR,CAEA,SAASiC,IAA8B,CACtCpC,EAAI,CAAC,CACN,CAEA,IAAMmC,EAA2B,CAChC,MAAOC,EACR,EAEO,SAASF,EAAS/B,EAAmB,CAE3C,OAAIA,IAAQ,MAAQ,OAAOA,GAAQ,SAAiB,GAC7C,OAAO,SAASA,CAAG,CAC3B,CCnOA,IAAMkC,GAoBF,CAAC,EAIE,SAASC,EACfC,EACiC,CACjC,IAAMC,EAASH,GAAQE,CAAS,EAChC,OAAKC,GACJC,EAAI,EAAGF,CAAS,EAGVC,CACR,CAEO,SAASE,EACfH,EACAI,EACO,CACFN,GAAQE,CAAS,IAAGF,GAAQE,CAAS,EAAII,EAC/C,CC5BA,IAAIC,EAEG,SAASC,GAAkB,CACjC,OAAOD,CACR,CAEA,SAASE,GACRC,EACAC,EACa,CACb,MAAO,CACNC,EAAS,CAAC,EACVF,IACAC,IAGAE,EAAgB,GAChBC,EAAoB,CACrB,CACD,CAEO,SAASC,GACfC,EACAC,EACC,CACGA,IACHC,EAAU,SAAS,EACnBF,EAAMG,EAAW,CAAC,EAClBH,EAAMI,EAAkB,CAAC,EACzBJ,EAAMK,EAAiBJ,EAEzB,CAEO,SAASK,EAAYN,EAAmB,CAC9CO,EAAWP,CAAK,EAChBA,EAAMJ,EAAQ,QAAQY,EAAW,EAEjCR,EAAMJ,EAAU,IACjB,CAEO,SAASW,EAAWP,EAAmB,CACzCA,IAAUT,IACbA,EAAeS,EAAMN,EAEvB,CAEO,SAASe,GAAWC,EAAc,CACxC,OAAQnB,EAAeE,GAAYF,EAAcmB,CAAK,CACvD,CAEA,SAASF,GAAYG,EAAgB,CACpC,IAAMC,EAAoBD,EAAME,CAAW,EACvCD,EAAME,IAAU,GAAmBF,EAAME,IAAU,EACtDF,EAAMG,EAAQ,EACVH,EAAMI,EAAW,EACvB,CC1DO,SAASC,GAAcC,EAAaC,EAAmB,CAC7DA,EAAMC,EAAqBD,EAAME,EAAQ,OACzC,IAAMC,EAAYH,EAAME,EAAS,CAAC,EAElC,OADmBH,IAAW,QAAaA,IAAWI,GAEjDA,EAAUC,CAAW,EAAEC,IAC1BC,EAAYN,CAAK,EACjBO,EAAI,CAAC,GAEFC,EAAYT,CAAM,IAErBA,EAASU,GAAST,EAAOD,CAAM,EAC1BC,EAAMU,GAASC,GAAYX,EAAOD,CAAM,GAE1CC,EAAMY,GACTC,EAAU,SAAS,EAAEC,EACpBX,EAAUC,CAAW,EAAEW,EACvBhB,EACAC,EAAMY,EACNZ,EAAMgB,CACP,GAIDjB,EAASU,GAAST,EAAOG,EAAW,CAAC,CAAC,EAEvCG,EAAYN,CAAK,EACbA,EAAMY,GACTZ,EAAMiB,EAAgBjB,EAAMY,EAAUZ,EAAMgB,CAAgB,EAEtDjB,IAAWmB,EAAUnB,EAAS,MACtC,CAEA,SAASU,GAASU,EAAuBC,EAAYC,EAAkB,CAEtE,GAAIC,EAASF,CAAK,EAAG,OAAOA,EAE5B,IAAMG,EAAqBJ,EAAUK,EAAO,yBAAyB,EAE/DC,EAAoBL,EAAMhB,CAAW,EAE3C,GAAI,CAACqB,EACJ,OAAAC,EACCN,EACA,CAACO,EAAKC,IACLC,GAAiBV,EAAWM,EAAOL,EAAOO,EAAKC,EAAYP,CAAI,EAChEE,CACD,EACOH,EAGR,GAAIK,EAAMK,IAAWX,EAAW,OAAOC,EAEvC,GAAI,CAACK,EAAMpB,EACV,OAAAM,GAAYQ,EAAWM,EAAMV,EAAO,EAAI,EACjCU,EAAMV,EAGd,GAAI,CAACU,EAAMM,EAAY,CACtBN,EAAMM,EAAa,GACnBN,EAAMK,EAAO7B,IACb,IAAMF,EAAS0B,EAAMO,EAKjBC,EAAalC,EACbmC,EAAQ,GACRT,EAAMU,IAAU,IACnBF,EAAa,IAAI,IAAIlC,CAAM,EAC3BA,EAAO,MAAM,EACbmC,EAAQ,IAETR,EACCO,EACA,CAACN,EAAKC,IACLC,GACCV,EACAM,EACA1B,EACA4B,EACAC,EACAP,EACAa,CACD,EACDX,CACD,EAEAZ,GAAYQ,EAAWpB,EAAQ,EAAK,EAEhCsB,GAAQF,EAAUP,GACrBC,EAAU,SAAS,EAAEuB,EACpBX,EACAJ,EACAF,EAAUP,EACVO,EAAUH,CACX,EAGF,OAAOS,EAAMO,CACd,CAEA,SAASH,GACRV,EACAkB,EACAC,EACAC,EACAX,EACAY,EACAC,EACC,CAKD,GAJIb,GAAc,MAId,OAAOA,GAAe,UAAY,CAACa,EACtC,OAED,IAAMC,EAAgBpB,EAASM,CAAU,EACzC,GAAI,EAAAc,GAAiB,CAACD,GAMtB,IAAIE,EAAQf,CAAU,EAAG,CACxB,IAAMP,EACLmB,GACAH,GACAA,EAAaF,IAAU,GACvB,CAACS,EAAKP,EAA8CQ,EAAYN,CAAI,EACjEC,EAAU,OAAOD,CAAI,EACrB,OAEEO,EAAMrC,GAASU,EAAWS,EAAYP,CAAI,EAIhD,GAHA0B,EAAIT,EAAcC,EAAMO,CAAG,EAGvBH,EAAQG,CAAG,EACd3B,EAAU6B,EAAiB,OACrB,aACGP,GACVH,EAAa,IAAIV,CAAU,EAG5B,GAAIpB,EAAYoB,CAAU,GAAK,CAACc,EAAe,CAS9C,GARI,CAACvB,EAAUK,EAAOyB,GAAe9B,EAAUlB,EAAqB,GASnEoC,GACAA,EAAYtB,GACZsB,EAAYtB,EAAMwB,CAAI,IAAMX,GAC5Bc,EAGA,OAEDjC,GAASU,EAAWS,CAAU,GAK5B,CAACS,GAAe,CAACA,EAAYP,EAAOpB,IACrC,OAAO6B,GAAS,WACfW,EAAMZ,CAAY,EAChBA,EAAa,IAAIC,CAAI,EACrB,OAAO,UAAU,qBAAqB,KAAKD,EAAcC,CAAI,IAEhE5B,GAAYQ,EAAWS,CAAU,GAEpC,CAEA,SAASjB,GAAYX,EAAmBoB,EAAY+B,EAAO,GAAO,CAE7D,CAACnD,EAAMU,GAAWV,EAAMwB,EAAOyB,GAAejD,EAAMgD,GACvDI,EAAOhC,EAAO+B,CAAI,CAEpB,CCzJO,SAASE,GACfC,EACAC,EACyB,CACzB,IAAMC,EAAU,MAAM,QAAQF,CAAI,EAC5BG,EAAoB,CACzBC,EAAOF,MAEPG,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EAEjDC,EAAW,GAEXC,EAAY,GAEZC,EAAW,CAAC,EAEZC,EAAST,EAETU,EAAOX,EAEPY,EAAQ,KAERC,EAAO,KAEPC,EAAS,KACTC,EAAW,EACZ,EAQIC,EAAYb,EACZc,EAA2CC,GAC3ChB,IACHc,EAAS,CAACb,CAAK,EACfc,EAAQE,GAGT,GAAM,CAAC,OAAAC,EAAQ,MAAAC,CAAK,EAAI,MAAM,UAAUL,EAAQC,CAAK,EACrD,OAAAd,EAAMS,EAASS,EACflB,EAAMW,EAAUM,EACTC,CACR,CAKO,IAAMH,GAAwC,CACpD,IAAIf,EAAOmB,EAAM,CAChB,GAAIA,IAASC,EAAa,OAAOpB,EAEjC,IAAMqB,EAASC,EAAOtB,CAAK,EAC3B,GAAI,CAACuB,EAAIF,EAAQF,CAAI,EAEpB,OAAOK,GAAkBxB,EAAOqB,EAAQF,CAAI,EAE7C,IAAMM,EAAQJ,EAAOF,CAAI,EACzB,OAAInB,EAAMK,GAAc,CAACqB,EAAYD,CAAK,EAClCA,EAIJA,IAAUE,GAAK3B,EAAMQ,EAAOW,CAAI,GACnCS,GAAY5B,CAAK,EACTA,EAAMU,EAAOS,CAAW,EAAIU,EAAYJ,EAAOzB,CAAK,GAEtDyB,CACR,EACA,IAAIzB,EAAOmB,EAAM,CAChB,OAAOA,KAAQG,EAAOtB,CAAK,CAC5B,EACA,QAAQA,EAAO,CACd,OAAO,QAAQ,QAAQsB,EAAOtB,CAAK,CAAC,CACrC,EACA,IACCA,EACAmB,EACAM,EACC,CACD,IAAMK,EAAOC,GAAuBT,EAAOtB,CAAK,EAAGmB,CAAI,EACvD,GAAIW,GAAM,IAGT,OAAAA,EAAK,IAAI,KAAK9B,EAAMS,EAAQgB,CAAK,EAC1B,GAER,GAAI,CAACzB,EAAMI,EAAW,CAGrB,IAAM4B,EAAUL,GAAKL,EAAOtB,CAAK,EAAGmB,CAAI,EAElCc,EAAiCD,IAAUZ,CAAW,EAC5D,GAAIa,GAAgBA,EAAazB,IAAUiB,EAC1C,OAAAzB,EAAMU,EAAOS,CAAI,EAAIM,EACrBzB,EAAMM,EAAUa,CAAI,EAAI,GACjB,GAER,GAAIe,GAAGT,EAAOO,CAAO,IAAMP,IAAU,QAAaF,EAAIvB,EAAMQ,EAAOW,CAAI,GACtE,MAAO,GACRS,GAAY5B,CAAK,EACjBmC,EAAYnC,CAAK,EAGlB,OACEA,EAAMU,EAAOS,CAAI,IAAMM,IAEtBA,IAAU,QAAaN,KAAQnB,EAAMU,IAEtC,OAAO,MAAMe,CAAK,GAAK,OAAO,MAAMzB,EAAMU,EAAOS,CAAI,CAAC,IAKxDnB,EAAMU,EAAOS,CAAI,EAAIM,EACrBzB,EAAMM,EAAUa,CAAI,EAAI,IACjB,EACR,EACA,eAAenB,EAAOmB,EAAc,CAEnC,OAAIQ,GAAK3B,EAAMQ,EAAOW,CAAI,IAAM,QAAaA,KAAQnB,EAAMQ,GAC1DR,EAAMM,EAAUa,CAAI,EAAI,GACxBS,GAAY5B,CAAK,EACjBmC,EAAYnC,CAAK,GAGjB,OAAOA,EAAMM,EAAUa,CAAI,EAExBnB,EAAMU,GACT,OAAOV,EAAMU,EAAMS,CAAI,EAEjB,EACR,EAGA,yBAAyBnB,EAAOmB,EAAM,CACrC,IAAMiB,EAAQd,EAAOtB,CAAK,EACpB8B,EAAO,QAAQ,yBAAyBM,EAAOjB,CAAI,EACzD,OAAKW,GACE,CACN,SAAU,GACV,aAAc9B,EAAMC,IAAU,GAAkBkB,IAAS,SACzD,WAAYW,EAAK,WACjB,MAAOM,EAAMjB,CAAI,CAClB,CACD,EACA,gBAAiB,CAChBkB,EAAI,EAAE,CACP,EACA,eAAerC,EAAO,CACrB,OAAOsC,EAAetC,EAAMQ,CAAK,CAClC,EACA,gBAAiB,CAChB6B,EAAI,EAAE,CACP,CACD,EAMMrB,EAA8C,CAAC,EACrDuB,EAAKxB,GAAa,CAACyB,EAAKC,IAAO,CAE9BzB,EAAWwB,CAAG,EAAI,UAAW,CAC5B,iBAAU,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,EACtBC,EAAG,MAAM,KAAM,SAAS,CAChC,CACD,CAAC,EACDzB,EAAW,eAAiB,SAAShB,EAAOmB,EAAM,CAIjD,OAAOH,EAAW,IAAK,KAAK,KAAMhB,EAAOmB,EAAM,MAAS,CACzD,EACAH,EAAW,IAAM,SAAShB,EAAOmB,EAAMM,EAAO,CAO7C,OAAOV,GAAY,IAAK,KAAK,KAAMf,EAAM,CAAC,EAAGmB,EAAMM,EAAOzB,EAAM,CAAC,CAAC,CACnE,EAGA,SAAS2B,GAAKe,EAAgBvB,EAAmB,CAChD,IAAMnB,EAAQ0C,EAAMtB,CAAW,EAE/B,OADepB,EAAQsB,EAAOtB,CAAK,EAAI0C,GACzBvB,CAAI,CACnB,CAEA,SAASK,GAAkBxB,EAAmBqB,EAAaF,EAAmB,CAC7E,IAAMW,EAAOC,GAAuBV,EAAQF,CAAI,EAChD,OAAOW,EACJ,UAAWA,EACVA,EAAK,MAGLA,EAAK,KAAK,KAAK9B,EAAMS,CAAM,EAC5B,MACJ,CAEA,SAASsB,GACRV,EACAF,EACiC,CAEjC,GAAI,EAAEA,KAAQE,GAAS,OACvB,IAAIsB,EAAQL,EAAejB,CAAM,EACjC,KAAOsB,GAAO,CACb,IAAMb,EAAO,OAAO,yBAAyBa,EAAOxB,CAAI,EACxD,GAAIW,EAAM,OAAOA,EACjBa,EAAQL,EAAeK,CAAK,EAG9B,CAEO,SAASR,EAAYnC,EAAmB,CACzCA,EAAMI,IACVJ,EAAMI,EAAY,GACdJ,EAAMO,GACT4B,EAAYnC,EAAMO,CAAO,EAG5B,CAEO,SAASqB,GAAY5B,EAIzB,CACGA,EAAMU,IACVV,EAAMU,EAAQkC,EACb5C,EAAMQ,EACNR,EAAME,EAAO2C,EAAOC,CACrB,EAEF,CChQO,IAAMC,GAAN,KAAoC,CAK1C,YAAYC,EAIT,CARH,KAAAC,EAAuB,GACvB,KAAAC,EAAoC,GACpC,KAAAC,EAA+B,GAkC/B,aAAoB,CAACC,EAAWC,EAAcC,IAAwB,CAErE,GAAI,OAAOF,GAAS,YAAc,OAAOC,GAAW,WAAY,CAC/D,IAAME,EAAcF,EACpBA,EAASD,EAET,IAAMI,EAAO,KACb,OAAO,SAENJ,EAAOG,KACJE,EACF,CACD,OAAOD,EAAK,QAAQJ,EAAOM,GAAmBL,EAAO,KAAK,KAAMK,EAAO,GAAGD,CAAI,CAAC,CAChF,EAGG,OAAOJ,GAAW,YAAYM,EAAI,CAAC,EACnCL,IAAkB,QAAa,OAAOA,GAAkB,YAC3DK,EAAI,CAAC,EAEN,IAAIC,EAGJ,GAAIC,EAAYT,CAAI,EAAG,CACtB,IAAMU,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYb,EAAM,MAAS,EACrCc,EAAW,GACf,GAAI,CACHN,EAASP,EAAOW,CAAK,EACrBE,EAAW,EACZ,QAAE,CAEGA,EAAUC,EAAYL,CAAK,EAC1BM,EAAWN,CAAK,CACtB,CACA,OAAAO,GAAkBP,EAAOR,CAAa,EAC/BgB,GAAcV,EAAQE,CAAK,UACxB,CAACV,GAAQ,OAAOA,GAAS,SAAU,CAK7C,GAJAQ,EAASP,EAAOD,CAAI,EAChBQ,IAAW,SAAWA,EAASR,GAC/BQ,IAAWW,IAASX,EAAS,QAC7B,KAAKX,GAAauB,EAAOZ,EAAQ,EAAI,EACrCN,EAAe,CAClB,IAAMmB,EAAa,CAAC,EACdC,EAAc,CAAC,EACrBC,EAAU,SAAS,EAAEC,EAA4BxB,EAAMQ,EAAQa,EAAGC,CAAE,EACpEpB,EAAcmB,EAAGC,CAAE,EAEpB,OAAOd,OACDD,EAAI,EAAGP,CAAI,CACnB,EAEA,wBAA0C,CAACA,EAAWC,IAAsB,CAE3E,GAAI,OAAOD,GAAS,WACnB,MAAO,CAACyB,KAAepB,IACtB,KAAK,mBAAmBoB,EAAQnB,GAAeN,EAAKM,EAAO,GAAGD,CAAI,CAAC,EAGrE,IAAIqB,EAAkBC,EAKtB,MAAO,CAJQ,KAAK,QAAQ3B,EAAMC,EAAQ,CAACoB,EAAYC,IAAgB,CACtEI,EAAUL,EACVM,EAAiBL,CAClB,CAAC,EACeI,EAAUC,CAAe,CAC1C,EA5FK,OAAO/B,GAAQ,YAAe,WACjC,KAAK,cAAcA,EAAQ,UAAU,EAClC,OAAOA,GAAQ,sBAAyB,WAC3C,KAAK,wBAAwBA,EAAQ,oBAAoB,EACtD,OAAOA,GAAQ,oBAAuB,WACzC,KAAK,sBAAsBA,EAAQ,kBAAkB,CACvD,CAwFA,YAAiCI,EAAmB,CAC9CS,EAAYT,CAAI,GAAGO,EAAI,CAAC,EACzBqB,EAAQ5B,CAAI,IAAGA,EAAO6B,GAAQ7B,CAAI,GACtC,IAAMU,EAAQC,GAAW,IAAI,EACvBC,EAAQC,EAAYb,EAAM,MAAS,EACzC,OAAAY,EAAMkB,CAAW,EAAEC,EAAY,GAC/Bf,EAAWN,CAAK,EACTE,CACR,CAEA,YACCN,EACAJ,EACuC,CACvC,IAAMuB,EAAoBnB,GAAUA,EAAcwB,CAAW,GACzD,CAACL,GAAS,CAACA,EAAMM,IAAWxB,EAAI,CAAC,EACrC,GAAM,CAACyB,EAAQtB,CAAK,EAAIe,EACxB,OAAAR,GAAkBP,EAAOR,CAAa,EAC/BgB,GAAc,OAAWR,CAAK,CACtC,CAOA,cAAcuB,EAAgB,CAC7B,KAAKpC,EAAcoC,CACpB,CAOA,wBAAwBA,EAAmB,CAC1C,KAAKnC,EAAwBmC,CAC9B,CAQA,sBAAsBA,EAAgB,CACrC,KAAKlC,EAAsBkC,CAC5B,CAEA,0BAAoC,CACnC,OAAO,KAAKlC,CACb,CAEA,aAAkCC,EAAS0B,EAA8B,CAGxE,IAAIQ,EACJ,IAAKA,EAAIR,EAAQ,OAAS,EAAGQ,GAAK,EAAGA,IAAK,CACzC,IAAMC,EAAQT,EAAQQ,CAAC,EACvB,GAAIC,EAAM,KAAK,SAAW,GAAKA,EAAM,KAAO,UAAW,CACtDnC,EAAOmC,EAAM,MACb,OAKED,EAAI,KACPR,EAAUA,EAAQ,MAAMQ,EAAI,CAAC,GAG9B,IAAME,EAAmBb,EAAU,SAAS,EAAEc,EAC9C,OAAIT,EAAQ5B,CAAI,EAERoC,EAAiBpC,EAAM0B,CAAO,EAG/B,KAAK,QAAQ1B,EAAOM,GAC1B8B,EAAiB9B,EAAOoB,CAAO,CAChC,CACD,CACD,EAEO,SAASb,EACfoB,EACAK,EACyB,CAEzB,IAAMhC,EAAiBiC,EAAMN,CAAK,EAC/BV,EAAU,QAAQ,EAAEiB,EAAUP,EAAOK,CAAM,EAC3CG,EAAMR,CAAK,EACXV,EAAU,QAAQ,EAAEmB,EAAUT,EAAOK,CAAM,EAC3CK,GAAiBV,EAAOK,CAAM,EAGjC,OADcA,EAASA,EAAON,EAASY,EAAgB,GACjDC,EAAQ,KAAKvC,CAAK,EACjBA,CACR,CC7NO,SAASwC,GAAQC,EAAiB,CACxC,OAAKC,EAAQD,CAAK,GAAGE,EAAI,GAAIF,CAAK,EAC3BG,GAAYH,CAAK,CACzB,CAEA,SAASG,GAAYH,EAAiB,CACrC,GAAI,CAACI,EAAYJ,CAAK,GAAKK,EAASL,CAAK,EAAG,OAAOA,EACnD,IAAMM,EAAgCN,EAAMO,CAAW,EACnDC,EACAC,EAAS,GACb,GAAIH,EAAO,CACV,GAAI,CAACA,EAAMI,EAAW,OAAOJ,EAAMK,EAEnCL,EAAMM,EAAa,GACnBJ,EAAOK,EAAYb,EAAOM,EAAMQ,EAAOC,EAAOC,CAAqB,EACnEP,EAASH,EAAMQ,EAAOC,EAAO,yBAAyB,OAEtDP,EAAOK,EAAYb,EAAO,EAAI,EAG/B,OAAAiB,EACCT,EACA,CAACU,EAAKC,IAAe,CACpBC,EAAIZ,EAAMU,EAAKf,GAAYgB,CAAU,CAAC,CACvC,EACAV,CACD,EACIH,IACHA,EAAMM,EAAa,IAEbJ,CACR,CCpBO,SAASa,IAAgB,CAe/B,IAAMC,EAAU,UACVC,EAAM,MACNC,EAAS,SAEf,SAASC,EACRC,EACAC,EACAC,EACAC,EACO,CACP,OAAQH,EAAMI,EAAO,CACpB,OACA,OACC,OAAOC,EACNL,EACAC,EACAC,EACAC,CACD,EACD,OACC,OAAOG,EAAqBN,EAAOC,EAAUC,EAASC,CAAc,EACrE,OACC,OAAOI,EACLP,EACDC,EACAC,EACAC,CACD,CACF,CACD,CAEA,SAASG,EACRN,EACAC,EACAC,EACAC,EACC,CACD,GAAI,CAACK,IAAOC,GAAS,EAAIT,EACrBU,EAAQV,EAAMU,EAGdA,EAAM,OAASF,EAAM,SAEvB,CAACA,EAAOE,CAAK,EAAI,CAACA,EAAOF,CAAK,EAC9B,CAACN,EAASC,CAAc,EAAI,CAACA,EAAgBD,CAAO,GAItD,QAASS,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IACjC,GAAIF,EAAUE,CAAC,GAAKD,EAAMC,CAAC,IAAMH,EAAMG,CAAC,EAAG,CAC1C,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIN,EACJ,KAAAgB,EAGA,MAAOC,EAAwBH,EAAMC,CAAC,CAAC,CACxC,CAAC,EACDR,EAAe,KAAK,CACnB,GAAIP,EACJ,KAAAgB,EACA,MAAOC,EAAwBL,EAAMG,CAAC,CAAC,CACxC,CAAC,EAKH,QAASA,EAAIH,EAAM,OAAQG,EAAID,EAAM,OAAQC,IAAK,CACjD,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIL,EACJ,KAAAe,EAGA,MAAOC,EAAwBH,EAAMC,CAAC,CAAC,CACxC,CAAC,EAEF,QAASA,EAAID,EAAM,OAAS,EAAGF,EAAM,QAAUG,EAAG,EAAEA,EAAG,CACtD,IAAMC,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCR,EAAe,KAAK,CACnB,GAAIL,EACJ,KAAAc,CACD,CAAC,EAEH,CAGA,SAASP,EACRL,EACAC,EACAC,EACAC,EACC,CACD,GAAM,CAACK,IAAOE,GAAK,EAAIV,EACvBc,EAAKd,EAAMS,EAAY,CAACM,EAAKC,IAAkB,CAC9C,IAAMC,EAAYC,EAAIV,EAAOO,CAAG,EAC1BI,EAAQD,EAAIR,EAAQK,CAAG,EACvBK,EAAMJ,EAAyBK,EAAIb,EAAOO,CAAG,EAAInB,EAAUC,EAArCC,EAC5B,GAAImB,IAAcE,GAASC,IAAOxB,EAAS,OAC3C,IAAMgB,EAAOX,EAAS,OAAOc,CAAU,EACvCb,EAAQ,KAAKkB,IAAOtB,EAAS,CAAC,GAAAsB,EAAI,KAAAR,CAAI,EAAI,CAAC,GAAAQ,EAAI,KAAAR,EAAM,MAAAO,CAAK,CAAC,EAC3DhB,EAAe,KACdiB,IAAOvB,EACJ,CAAC,GAAIC,EAAQ,KAAAc,CAAI,EACjBQ,IAAOtB,EACP,CAAC,GAAID,EAAK,KAAAe,EAAM,MAAOC,EAAwBI,CAAS,CAAC,EACzD,CAAC,GAAIrB,EAAS,KAAAgB,EAAM,MAAOC,EAAwBI,CAAS,CAAC,CACjE,CACD,CAAC,CACF,CAEA,SAASV,EACRP,EACAC,EACAC,EACAC,EACC,CACD,GAAI,CAACK,IAAOE,GAAK,EAAIV,EAEjBW,EAAI,EACRH,EAAM,QAASW,GAAe,CAC7B,GAAI,CAACT,EAAO,IAAIS,CAAK,EAAG,CACvB,IAAMP,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIJ,EACJ,KAAAc,EACA,MAAAO,CACD,CAAC,EACDhB,EAAe,QAAQ,CACtB,GAAIN,EACJ,KAAAe,EACA,MAAAO,CACD,CAAC,EAEFR,GACD,CAAC,EACDA,EAAI,EACJD,EAAO,QAASS,GAAe,CAC9B,GAAI,CAACX,EAAM,IAAIW,CAAK,EAAG,CACtB,IAAMP,EAAOX,EAAS,OAAO,CAACU,CAAC,CAAC,EAChCT,EAAQ,KAAK,CACZ,GAAIL,EACJ,KAAAe,EACA,MAAAO,CACD,CAAC,EACDhB,EAAe,QAAQ,CACtB,GAAIL,EACJ,KAAAc,EACA,MAAAO,CACD,CAAC,EAEFR,GACD,CAAC,CACF,CAEA,SAASW,EACRC,EACAC,EACAtB,EACAC,EACO,CACPD,EAAQ,KAAK,CACZ,GAAIN,EACJ,KAAM,CAAC,EACP,MAAO4B,IAAgBC,EAAU,OAAYD,CAC9C,CAAC,EACDrB,EAAe,KAAK,CACnB,GAAIP,EACJ,KAAM,CAAC,EACP,MAAO2B,CACR,CAAC,CACF,CAEA,SAASG,EAAiBC,EAAUzB,EAA8B,CACjE,OAAAA,EAAQ,QAAQ0B,GAAS,CACxB,GAAM,CAAC,KAAAhB,EAAM,GAAAQ,CAAE,EAAIQ,EAEfC,EAAYF,EAChB,QAAShB,EAAI,EAAGA,EAAIC,EAAK,OAAS,EAAGD,IAAK,CACzC,IAAMmB,EAAaC,EAAYF,CAAI,EAC/BG,EAAIpB,EAAKD,CAAC,EACV,OAAOqB,GAAM,UAAY,OAAOA,GAAM,WACzCA,EAAI,GAAKA,IAKRF,IAAe,GAAmBA,IAAe,KACjDE,IAAM,aAAeA,IAAM,gBAE5BC,EAAI,GAAc,CAAC,EAChB,OAAOJ,GAAS,YAAcG,IAAM,aACvCC,EAAI,GAAc,CAAC,EACpBJ,EAAOX,EAAIW,EAAMG,CAAC,EACd,OAAOH,GAAS,UAAUI,EAAI,GAAc,EAAGrB,EAAK,KAAK,GAAG,CAAC,EAGlE,IAAMsB,EAAOH,EAAYF,CAAI,EACvBV,EAAQgB,EAAoBP,EAAM,KAAK,EACvCb,EAAMH,EAAKA,EAAK,OAAS,CAAC,EAChC,OAAQQ,EAAI,CACX,KAAKxB,EACJ,OAAQsC,EAAM,CACb,OACC,OAAOL,EAAK,IAAId,EAAKI,CAAK,EAE3B,OACCc,EAAI,EAAW,EAChB,QAKC,OAAQJ,EAAKd,CAAG,EAAII,CACtB,CACD,KAAKtB,EACJ,OAAQqC,EAAM,CACb,OACC,OAAOnB,IAAQ,IACZc,EAAK,KAAKV,CAAK,EACfU,EAAK,OAAOd,EAAY,EAAGI,CAAK,EACpC,OACC,OAAOU,EAAK,IAAId,EAAKI,CAAK,EAC3B,OACC,OAAOU,EAAK,IAAIV,CAAK,EACtB,QACC,OAAQU,EAAKd,CAAG,EAAII,CACtB,CACD,KAAKrB,EACJ,OAAQoC,EAAM,CACb,OACC,OAAOL,EAAK,OAAOd,EAAY,CAAC,EACjC,OACC,OAAOc,EAAK,OAAOd,CAAG,EACvB,OACC,OAAOc,EAAK,OAAOD,EAAM,KAAK,EAC/B,QACC,OAAO,OAAOC,EAAKd,CAAG,CACxB,CACD,QACCkB,EAAI,GAAc,EAAGb,CAAE,CACzB,CACD,CAAC,EAEMO,CACR,CAMA,SAASQ,EAAoBC,EAAU,CACtC,GAAI,CAACC,EAAYD,CAAG,EAAG,OAAOA,EAC9B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,EAAI,IAAID,CAAmB,EAC1D,GAAIG,EAAMF,CAAG,EACZ,OAAO,IAAI,IACV,MAAM,KAAKA,EAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACG,EAAGC,CAAC,IAAM,CAACD,EAAGJ,EAAoBK,CAAC,CAAC,CAAC,CACtE,EACD,GAAIC,EAAML,CAAG,EAAG,OAAO,IAAI,IAAI,MAAM,KAAKA,CAAG,EAAE,IAAID,CAAmB,CAAC,EACvE,IAAMO,EAAS,OAAO,OAAOC,EAAeP,CAAG,CAAC,EAChD,QAAWrB,KAAOqB,EAAKM,EAAO3B,CAAG,EAAIoB,EAAoBC,EAAIrB,CAAG,CAAC,EACjE,OAAIM,EAAIe,EAAKQ,CAAS,IAAGF,EAAOE,CAAS,EAAIR,EAAIQ,CAAS,GACnDF,CACR,CAEA,SAAS7B,EAA2BuB,EAAW,CAC9C,OAAIS,EAAQT,CAAG,EACPD,EAAoBC,CAAG,EACjBA,CACf,CAEAU,EAAW,UAAW,CACrBpB,IACA3B,IACAuB,GACD,CAAC,CACF,CCzSO,SAASyB,IAAe,CAC9B,MAAMC,UAAiB,GAAI,CAG1B,YAAYC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPC,EAAW,OACXC,EAAOX,EACPY,EAAQ,KACRC,EAAW,GACXC,EAAU,EACX,CACD,CAEA,IAAI,MAAe,CAClB,OAAOC,EAAO,KAAKb,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIc,EAAmB,CACtB,OAAOD,EAAO,KAAKb,CAAW,CAAC,EAAE,IAAIc,CAAG,CACzC,CAEA,IAAIA,EAAUC,EAAY,CACzB,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,GACjB,CAACH,EAAOG,CAAK,EAAE,IAAIF,CAAG,GAAKD,EAAOG,CAAK,EAAE,IAAIF,CAAG,IAAMC,KACzDG,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMR,EAAW,IAAIM,EAAK,EAAI,EAC9BE,EAAMT,EAAO,IAAIO,EAAKC,CAAK,EAC3BC,EAAMR,EAAW,IAAIM,EAAK,EAAI,GAExB,IACR,CAEA,OAAOA,EAAmB,CACzB,GAAI,CAAC,KAAK,IAAIA,CAAG,EAChB,MAAO,GAGR,IAAME,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACbA,EAAMP,EAAM,IAAIK,CAAG,EACtBE,EAAMR,EAAW,IAAIM,EAAK,EAAK,EAE/BE,EAAMR,EAAW,OAAOM,CAAG,EAE5BE,EAAMT,EAAO,OAAOO,CAAG,EAChB,EACR,CAEA,OAAQ,CACP,IAAME,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBE,EAAeF,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMR,EAAY,IAAI,IACtBY,EAAKJ,EAAMP,EAAOK,GAAO,CACxBE,EAAMR,EAAW,IAAIM,EAAK,EAAK,CAChC,CAAC,EACDE,EAAMT,EAAO,MAAM,EAErB,CAEA,QAAQc,EAA+CC,EAAe,CACrE,IAAMN,EAAkB,KAAKhB,CAAW,EACxCa,EAAOG,CAAK,EAAE,QAAQ,CAACO,EAAaT,EAAUU,IAAc,CAC3DH,EAAG,KAAKC,EAAS,KAAK,IAAIR,CAAG,EAAGA,EAAK,IAAI,CAC1C,CAAC,CACF,CAEA,IAAIA,EAAe,CAClB,IAAME,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACrB,IAAMD,EAAQF,EAAOG,CAAK,EAAE,IAAIF,CAAG,EAInC,GAHIE,EAAMV,GAAc,CAACmB,EAAYV,CAAK,GAGtCA,IAAUC,EAAMP,EAAM,IAAIK,CAAG,EAChC,OAAOC,EAGR,IAAMW,EAAQC,EAAYZ,EAAOC,CAAK,EACtC,OAAAE,EAAeF,CAAK,EACpBA,EAAMT,EAAO,IAAIO,EAAKY,CAAK,EACpBA,CACR,CAEA,MAA8B,CAC7B,OAAOb,EAAO,KAAKb,CAAW,CAAC,EAAE,KAAK,CACvC,CAEA,QAAgC,CAC/B,IAAM4B,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,OAAO,EACrC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,OAAIC,EAAE,KAAaA,EAEZ,CACN,KAAM,GACN,MAHa,KAAK,IAAIA,EAAE,KAAK,CAI9B,CACD,CACD,CACD,CAEA,SAAwC,CACvC,IAAMD,EAAW,KAAK,KAAK,EAC3B,MAAO,CACN,CAAC,OAAO,QAAQ,EAAG,IAAM,KAAK,QAAQ,EACtC,KAAM,IAAM,CACX,IAAMC,EAAID,EAAS,KAAK,EAExB,GAAIC,EAAE,KAAM,OAAOA,EACnB,IAAMd,EAAQ,KAAK,IAAIc,EAAE,KAAK,EAC9B,MAAO,CACN,KAAM,GACN,MAAO,CAACA,EAAE,MAAOd,CAAK,CACvB,CACD,CACD,CACD,CAEA,EAtICf,EAsIA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,QAAQ,CACrB,CACD,CAEA,SAAS8B,EAA4BhC,EAAWC,EAAwB,CAEvE,OAAO,IAAIF,EAASC,EAAQC,CAAM,CACnC,CAEA,SAASmB,EAAeF,EAAiB,CACnCA,EAAMT,IACVS,EAAMR,EAAY,IAAI,IACtBQ,EAAMT,EAAQ,IAAI,IAAIS,EAAMP,CAAK,EAEnC,CAEA,MAAMsB,UAAiB,GAAI,CAE1B,YAAYjC,EAAgBC,EAAqB,CAChD,MAAM,EACN,KAAKC,CAAW,EAAI,CACnBC,IACAC,EAASH,EACTI,EAAQJ,EAASA,EAAOI,EAASC,EAAgB,EACjDC,EAAW,GACXC,EAAY,GACZC,EAAO,OACPE,EAAOX,EACPY,EAAQ,KACRsB,EAAS,IAAI,IACbpB,EAAU,GACVD,EAAW,EACZ,CACD,CAEA,IAAI,MAAe,CAClB,OAAOE,EAAO,KAAKb,CAAW,CAAC,EAAE,IAClC,CAEA,IAAIe,EAAqB,CACxB,IAAMC,EAAkB,KAAKhB,CAAW,EAGxC,OAFAiB,EAAgBD,CAAK,EAEhBA,EAAMT,EAGP,GAAAS,EAAMT,EAAM,IAAIQ,CAAK,GACrBC,EAAMgB,EAAQ,IAAIjB,CAAK,GAAKC,EAAMT,EAAM,IAAIS,EAAMgB,EAAQ,IAAIjB,CAAK,CAAC,GAHhEC,EAAMP,EAAM,IAAIM,CAAK,CAM9B,CAEA,IAAIA,EAAiB,CACpB,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EAChB,KAAK,IAAID,CAAK,IAClBkB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAO,IAAIQ,CAAK,GAEhB,IACR,CAEA,OAAOA,EAAiB,CACvB,GAAI,CAAC,KAAK,IAAIA,CAAK,EAClB,MAAO,GAGR,IAAMC,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EAEhBA,EAAMT,EAAO,OAAOQ,CAAK,IACxBC,EAAMgB,EAAQ,IAAIjB,CAAK,EACrBC,EAAMT,EAAO,OAAOS,EAAMgB,EAAQ,IAAIjB,CAAK,CAAC,EACjB,GAEhC,CAEA,OAAQ,CACP,IAAMC,EAAkB,KAAKhB,CAAW,EACxCiB,EAAgBD,CAAK,EACjBH,EAAOG,CAAK,EAAE,OACjBiB,EAAejB,CAAK,EACpBG,EAAYH,CAAK,EACjBA,EAAMT,EAAO,MAAM,EAErB,CAEA,QAAgC,CAC/B,IAAMS,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACbA,EAAMT,EAAO,OAAO,CAC5B,CAEA,SAAwC,CACvC,IAAMS,EAAkB,KAAKhB,CAAW,EACxC,OAAAiB,EAAgBD,CAAK,EACrBiB,EAAejB,CAAK,EACbA,EAAMT,EAAO,QAAQ,CAC7B,CAEA,MAA8B,CAC7B,OAAO,KAAK,OAAO,CACpB,CAEA,EA3FCP,EA2FA,OAAO,SAAQ,GAAI,CACnB,OAAO,KAAK,OAAO,CACpB,CAEA,QAAQqB,EAASC,EAAe,CAC/B,IAAMM,EAAW,KAAK,OAAO,EACzBM,EAASN,EAAS,KAAK,EAC3B,KAAO,CAACM,EAAO,MACdb,EAAG,KAAKC,EAASY,EAAO,MAAOA,EAAO,MAAO,IAAI,EACjDA,EAASN,EAAS,KAAK,CAEzB,CACD,CACA,SAASO,EAA4BrC,EAAWC,EAAwB,CAEvE,OAAO,IAAIgC,EAASjC,EAAQC,CAAM,CACnC,CAEA,SAASkC,EAAejB,EAAiB,CACnCA,EAAMT,IAEVS,EAAMT,EAAQ,IAAI,IAClBS,EAAMP,EAAM,QAAQM,GAAS,CAC5B,GAAIU,EAAYV,CAAK,EAAG,CACvB,IAAMW,EAAQC,EAAYZ,EAAOC,CAAK,EACtCA,EAAMgB,EAAQ,IAAIjB,EAAOW,CAAK,EAC9BV,EAAMT,EAAO,IAAImB,CAAK,OAEtBV,EAAMT,EAAO,IAAIQ,CAAK,CAExB,CAAC,EAEH,CAEA,SAASE,EAAgBD,EAA+C,CACnEA,EAAMJ,GAAUwB,EAAI,EAAG,KAAK,UAAUvB,EAAOG,CAAK,CAAC,CAAC,CACzD,CAEAqB,EAAW,SAAU,CAACP,IAAWK,GAAS,CAAC,CAC5C,CCrRA,IAAMG,EAAQ,IAAIC,GAqBLC,GAAoCF,EAAM,QAM1CG,GAA0DH,EAAM,mBAAmB,KAC/FA,CACD,EAOaI,GAAgCJ,EAAM,cAAc,KAAKA,CAAK,EAO9DK,GAA0CL,EAAM,wBAAwB,KACpFA,CACD,EAQaM,GAAwCN,EAAM,sBAAsB,KAChFA,CACD,EAOaO,GAA+BP,EAAM,aAAa,KAAKA,CAAK,EAM5DQ,GAA8BR,EAAM,YAAY,KAAKA,CAAK,EAU1DS,GAA8BT,EAAM,YAAY,KAAKA,CAAK,EAQhE,SAASU,GAAaC,EAAoB,CAChD,OAAOA,CACR,CAOO,SAASC,GAAiBD,EAAwB,CACxD,OAAOA,CACR","names":["NOTHING","DRAFTABLE","DRAFT_STATE","die","error","args","getPrototypeOf","isDraft","value","DRAFT_STATE","isDraftable","isPlainObject","DRAFTABLE","isMap","isSet","objectCtorString","cachedCtorStrings","proto","Ctor","ctorString","original","die","base_","each","obj","iter","strict","getArchtype","key","entry","index","thing","state","type_","has","prop","get","set","propOrOldValue","t","is","x","y","target","latest","copy_","shallowCopy","base","isPlain","descriptors","keys","i","desc","freeze","deep","isFrozen","dontMutateMethodOverride","dontMutateFrozenCollections","plugins","getPlugin","pluginKey","plugin","die","loadPlugin","implementation","currentScope","getCurrentScope","createScope","parent_","immer_","drafts_","canAutoFreeze_","unfinalizedDrafts_","usePatchesInScope","scope","patchListener","getPlugin","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","revokeDraft","enterScope","immer","draft","state","DRAFT_STATE","type_","revoke_","revoked_","processResult","result","scope","unfinalizedDrafts_","drafts_","baseDraft","DRAFT_STATE","modified_","revokeScope","die","isDraftable","finalize","parent_","maybeFreeze","patches_","getPlugin","generateReplacementPatches_","base_","inversePatches_","patchListener_","NOTHING","rootScope","value","path","isFrozen","useStrictIteration","immer_","state","each","key","childValue","finalizeProperty","scope_","finalized_","copy_","resultEach","isSet","type_","generatePatches_","parentState","targetObject","prop","rootPath","targetIsSet","childIsFrozen","isDraft","has","assigned_","res","set","canAutoFreeze_","autoFreeze_","isMap","deep","freeze","createProxyProxy","base","parent","isArray","state","type_","scope_","getCurrentScope","modified_","finalized_","assigned_","parent_","base_","draft_","copy_","revoke_","isManual_","target","traps","objectTraps","arrayTraps","revoke","proxy","prop","DRAFT_STATE","source","latest","has","readPropFromProto","value","isDraftable","peek","prepareCopy","createProxy","desc","getDescriptorFromProto","current","currentState","is","markChanged","owner","die","getPrototypeOf","each","key","fn","draft","proto","shallowCopy","immer_","useStrictShallowCopy_","Immer","config","autoFreeze_","useStrictShallowCopy_","useStrictIteration_","base","recipe","patchListener","defaultBase","self","args","draft","die","result","isDraftable","scope","enterScope","proxy","createProxy","hasError","revokeScope","leaveScope","usePatchesInScope","processResult","NOTHING","freeze","p","ip","getPlugin","generateReplacementPatches_","state","patches","inversePatches","isDraft","current","DRAFT_STATE","isManual_","scope_","value","i","patch","applyPatchesImpl","applyPatches_","parent","isMap","proxyMap_","isSet","proxySet_","createProxyProxy","getCurrentScope","drafts_","current","value","isDraft","die","currentImpl","isDraftable","isFrozen","state","DRAFT_STATE","copy","strict","modified_","base_","finalized_","shallowCopy","scope_","immer_","useStrictShallowCopy_","each","key","childValue","set","enablePatches","REPLACE","ADD","REMOVE","generatePatches_","state","basePath","patches","inversePatches","type_","generatePatchesFromAssigned","generateArrayPatches","generateSetPatches","base_","assigned_","copy_","i","path","clonePatchValueIfNeeded","each","key","assignedValue","origValue","get","value","op","has","generateReplacementPatches_","baseValue","replacement","NOTHING","applyPatches_","draft","patch","base","parentType","getArchtype","p","die","type","deepClonePatchValue","obj","isDraftable","isMap","k","v","isSet","cloned","getPrototypeOf","DRAFTABLE","isDraft","loadPlugin","enableMapSet","DraftMap","target","parent","DRAFT_STATE","type_","parent_","scope_","getCurrentScope","modified_","finalized_","copy_","assigned_","base_","draft_","isManual_","revoked_","latest","key","value","state","assertUnrevoked","prepareMapCopy","markChanged","each","cb","thisArg","_value","_map","isDraftable","draft","createProxy","iterator","r","proxyMap_","DraftSet","drafts_","prepareSetCopy","result","proxySet_","die","loadPlugin","immer","Immer","produce","produceWithPatches","setAutoFreeze","setUseStrictShallowCopy","setUseStrictIteration","applyPatches","createDraft","finishDraft","castDraft","value","castImmutable"]}
Index: de_modules/immer/package.json
===================================================================
--- node_modules/immer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-{
-  "name": "immer",
-  "version": "10.2.0",
-  "description": "Create your next immutable state by mutating the current one",
-  "main": "./dist/cjs/index.js",
-  "module": "./dist/immer.legacy-esm.js",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "react-native": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/immer.legacy-esm.js"
-      },
-      "import": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/immer.mjs"
-      },
-      "require": {
-        "types": "./dist/immer.d.ts",
-        "default": "./dist/cjs/index.js"
-      }
-    }
-  },
-  "jsnext:main": "dist/immer.mjs",
-  "source": "src/immer.ts",
-  "types": "./dist/immer.d.ts",
-  "sideEffects": false,
-  "scripts": {
-    "pretest": "yarn build",
-    "test": "vitest run && yarn test:build && yarn test:flow",
-    "test:perf": "cd __performance_tests__ && node add-data.mjs && node todo.mjs && node incremental.mjs && node large-obj.mjs",
-    "test:flow": "yarn flow check __tests__/flow",
-    "test:build": "vitest run --config vitest.config.build.ts",
-    "test:src": "vitest run",
-    "watch": "vitest",
-    "coverage": "vitest run --coverage",
-    "coveralls": "vitest run --coverage && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls && rm -rf ./coverage",
-    "build": "tsup",
-    "publish-docs": "cd website && GIT_USER=mweststrate USE_SSH=true yarn docusaurus deploy",
-    "start": "cd website && yarn start",
-    "test:size": "yarn build && yarn import-size --report . produce enableMapSet enablePatches",
-    "test:sizequick": "yarn build && yarn import-size . produce"
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "pretty-quick --staged"
-    }
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/immerjs/immer.git"
-  },
-  "keywords": [
-    "immutable",
-    "mutable",
-    "copy-on-write"
-  ],
-  "author": "Michel Weststrate <info@michel.codes>",
-  "license": "MIT",
-  "funding": {
-    "type": "opencollective",
-    "url": "https://opencollective.com/immer"
-  },
-  "bugs": {
-    "url": "https://github.com/immerjs/immer/issues"
-  },
-  "homepage": "https://github.com/immerjs/immer#readme",
-  "files": [
-    "dist",
-    "compat",
-    "src"
-  ],
-  "devDependencies": {
-    "@babel/core": "^7.21.3",
-    "@types/node": "^24.3.1",
-    "@vitest/coverage-v8": "2.1.9",
-    "coveralls": "^3.0.0",
-    "cpx2": "^3.0.0",
-    "deep-freeze": "^0.0.1",
-    "flow-bin": "^0.123.0",
-    "husky": "^1.2.0",
-    "immutable": "^3.8.2",
-    "import-size": "^1.0.2",
-    "lodash": "^4.17.4",
-    "lodash.clonedeep": "^4.5.0",
-    "prettier": "1.19.1",
-    "pretty-quick": "^1.8.0",
-    "redux": "^4.0.5",
-    "rimraf": "^2.6.2",
-    "seamless-immutable": "^7.1.3",
-    "semantic-release": "^17.0.2",
-    "tsup": "^6.7.0",
-    "typescript": "^5.0.2",
-    "vite": "^5.4.0",
-    "vitest": "^2.0.0"
-  }
-}
Index: de_modules/immer/readme.md
===================================================================
--- node_modules/immer/readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<img src="images/immer-logo.svg" height="200px" align="right"/>
-
-# Immer
-
-[![npm](https://img.shields.io/npm/v/immer.svg)](https://www.npmjs.com/package/immer) [![Build Status](https://github.com/immerjs/immer/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/immerjs/immer/actions?query=branch%3Amain) [![Coverage Status](https://coveralls.io/repos/github/immerjs/immer/badge.svg?branch=main)](https://coveralls.io/github/immerjs/immer?branch=main) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![OpenCollective](https://opencollective.com/immer/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/immer/sponsors/badge.svg)](#sponsors) [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/immerjs/immer)
-
-_Create the next immutable state tree by simply modifying the current tree_
-
-Winner of the "Breakthrough of the year" [React open source award](https://osawards.com/react/) and "Most impactful contribution" [JavaScript open source award](https://osawards.com/javascript/) in 2019
-
-## Contribute using one-click online setup
-
-You can use Gitpod (a free online VS Code like IDE) for contributing online. With a single click it will launch a workspace and automatically:
-
-- clone the immer repo.
-- install the dependencies.
-- run `yarn run start`.
-
-so that you can start coding straight away.
-
-[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
-
-## Documentation
-
-The documentation of this package is hosted at https://immerjs.github.io/immer/
-
-## Support
-
-Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!
-
-## Release notes
-
-https://github.com/immerjs/immer/releases
Index: de_modules/immer/src/core/current.ts
===================================================================
--- node_modules/immer/src/core/current.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {
-	die,
-	isDraft,
-	shallowCopy,
-	each,
-	DRAFT_STATE,
-	set,
-	ImmerState,
-	isDraftable,
-	isFrozen
-} from "../internal"
-
-/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */
-export function current<T>(value: T): T
-export function current(value: any): any {
-	if (!isDraft(value)) die(10, value)
-	return currentImpl(value)
-}
-
-function currentImpl(value: any): any {
-	if (!isDraftable(value) || isFrozen(value)) return value
-	const state: ImmerState | undefined = value[DRAFT_STATE]
-	let copy: any
-	let strict = true // Default to strict for compatibility
-	if (state) {
-		if (!state.modified_) return state.base_
-		// Optimization: avoid generating new drafts during copying
-		state.finalized_ = true
-		copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)
-		strict = state.scope_.immer_.shouldUseStrictIteration()
-	} else {
-		copy = shallowCopy(value, true)
-	}
-	// recurse
-	each(
-		copy,
-		(key, childValue) => {
-			set(copy, key, currentImpl(childValue))
-		},
-		strict
-	)
-	if (state) {
-		state.finalized_ = false
-	}
-	return copy
-}
Index: de_modules/immer/src/core/finalize.ts
===================================================================
--- node_modules/immer/src/core/finalize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,205 +1,0 @@
-import {
-	ImmerScope,
-	DRAFT_STATE,
-	isDraftable,
-	NOTHING,
-	PatchPath,
-	each,
-	has,
-	freeze,
-	ImmerState,
-	isDraft,
-	SetState,
-	set,
-	ArchType,
-	getPlugin,
-	die,
-	revokeScope,
-	isFrozen,
-	isMap
-} from "../internal"
-
-export function processResult(result: any, scope: ImmerScope) {
-	scope.unfinalizedDrafts_ = scope.drafts_.length
-	const baseDraft = scope.drafts_![0]
-	const isReplaced = result !== undefined && result !== baseDraft
-	if (isReplaced) {
-		if (baseDraft[DRAFT_STATE].modified_) {
-			revokeScope(scope)
-			die(4)
-		}
-		if (isDraftable(result)) {
-			// Finalize the result in case it contains (or is) a subset of the draft.
-			result = finalize(scope, result)
-			if (!scope.parent_) maybeFreeze(scope, result)
-		}
-		if (scope.patches_) {
-			getPlugin("Patches").generateReplacementPatches_(
-				baseDraft[DRAFT_STATE].base_,
-				result,
-				scope.patches_,
-				scope.inversePatches_!
-			)
-		}
-	} else {
-		// Finalize the base draft.
-		result = finalize(scope, baseDraft, [])
-	}
-	revokeScope(scope)
-	if (scope.patches_) {
-		scope.patchListener_!(scope.patches_, scope.inversePatches_!)
-	}
-	return result !== NOTHING ? result : undefined
-}
-
-function finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {
-	// Don't recurse in tho recursive data structures
-	if (isFrozen(value)) return value
-
-	const useStrictIteration = rootScope.immer_.shouldUseStrictIteration()
-
-	const state: ImmerState = value[DRAFT_STATE]
-	// A plain object, might need freezing, might contain drafts
-	if (!state) {
-		each(
-			value,
-			(key, childValue) =>
-				finalizeProperty(rootScope, state, value, key, childValue, path),
-			useStrictIteration
-		)
-		return value
-	}
-	// Never finalize drafts owned by another scope.
-	if (state.scope_ !== rootScope) return value
-	// Unmodified draft, return the (frozen) original
-	if (!state.modified_) {
-		maybeFreeze(rootScope, state.base_, true)
-		return state.base_
-	}
-	// Not finalized yet, let's do that now
-	if (!state.finalized_) {
-		state.finalized_ = true
-		state.scope_.unfinalizedDrafts_--
-		const result = state.copy_
-		// Finalize all children of the copy
-		// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628
-		// To preserve insertion order in all cases we then clear the set
-		// And we let finalizeProperty know it needs to re-add non-draft children back to the target
-		let resultEach = result
-		let isSet = false
-		if (state.type_ === ArchType.Set) {
-			resultEach = new Set(result)
-			result.clear()
-			isSet = true
-		}
-		each(
-			resultEach,
-			(key, childValue) =>
-				finalizeProperty(
-					rootScope,
-					state,
-					result,
-					key,
-					childValue,
-					path,
-					isSet
-				),
-			useStrictIteration
-		)
-		// everything inside is frozen, we can freeze here
-		maybeFreeze(rootScope, result, false)
-		// first time finalizing, let's create those patches
-		if (path && rootScope.patches_) {
-			getPlugin("Patches").generatePatches_(
-				state,
-				path,
-				rootScope.patches_,
-				rootScope.inversePatches_!
-			)
-		}
-	}
-	return state.copy_
-}
-
-function finalizeProperty(
-	rootScope: ImmerScope,
-	parentState: undefined | ImmerState,
-	targetObject: any,
-	prop: string | number,
-	childValue: any,
-	rootPath?: PatchPath,
-	targetIsSet?: boolean
-) {
-	if (childValue == null) {
-		return
-	}
-
-	if (typeof childValue !== "object" && !targetIsSet) {
-		return
-	}
-	const childIsFrozen = isFrozen(childValue)
-	if (childIsFrozen && !targetIsSet) {
-		return
-	}
-
-	if (process.env.NODE_ENV !== "production" && childValue === targetObject)
-		die(5)
-	if (isDraft(childValue)) {
-		const path =
-			rootPath &&
-			parentState &&
-			parentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.
-			!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.
-				? rootPath!.concat(prop)
-				: undefined
-		// Drafts owned by `scope` are finalized here.
-		const res = finalize(rootScope, childValue, path)
-		set(targetObject, prop, res)
-		// Drafts from another scope must prevented to be frozen
-		// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze
-		if (isDraft(res)) {
-			rootScope.canAutoFreeze_ = false
-		} else return
-	} else if (targetIsSet) {
-		targetObject.add(childValue)
-	}
-	// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.
-	if (isDraftable(childValue) && !childIsFrozen) {
-		if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
-			// optimization: if an object is not a draft, and we don't have to
-			// deepfreeze everything, and we are sure that no drafts are left in the remaining object
-			// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.
-			// This benefits especially adding large data tree's without further processing.
-			// See add-data.js perf test
-			return
-		}
-		if (
-			parentState &&
-			parentState.base_ &&
-			parentState.base_[prop] === childValue &&
-			childIsFrozen
-		) {
-			// Object is unchanged from base - no need to process further
-			return
-		}
-		finalize(rootScope, childValue)
-		// Immer deep freezes plain objects, so if there is no parent state, we freeze as well
-		// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere
-		// with other frameworks.
-		if (
-			(!parentState || !parentState.scope_.parent_) &&
-			typeof prop !== "symbol" &&
-			(isMap(targetObject)
-				? targetObject.has(prop)
-				: Object.prototype.propertyIsEnumerable.call(targetObject, prop))
-		)
-			maybeFreeze(rootScope, childValue)
-	}
-}
-
-function maybeFreeze(scope: ImmerScope, value: any, deep = false) {
-	// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects
-	if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {
-		freeze(value, deep)
-	}
-}
Index: de_modules/immer/src/core/immerClass.ts
===================================================================
--- node_modules/immer/src/core/immerClass.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,236 +1,0 @@
-import {
-	IProduceWithPatches,
-	IProduce,
-	ImmerState,
-	Drafted,
-	isDraftable,
-	processResult,
-	Patch,
-	Objectish,
-	DRAFT_STATE,
-	Draft,
-	PatchListener,
-	isDraft,
-	isMap,
-	isSet,
-	createProxyProxy,
-	getPlugin,
-	die,
-	enterScope,
-	revokeScope,
-	leaveScope,
-	usePatchesInScope,
-	getCurrentScope,
-	NOTHING,
-	freeze,
-	current
-} from "../internal"
-
-interface ProducersFns {
-	produce: IProduce
-	produceWithPatches: IProduceWithPatches
-}
-
-export type StrictMode = boolean | "class_only"
-
-export class Immer implements ProducersFns {
-	autoFreeze_: boolean = true
-	useStrictShallowCopy_: StrictMode = false
-	useStrictIteration_: boolean = true
-
-	constructor(config?: {
-		autoFreeze?: boolean
-		useStrictShallowCopy?: StrictMode
-		useStrictIteration?: boolean
-	}) {
-		if (typeof config?.autoFreeze === "boolean")
-			this.setAutoFreeze(config!.autoFreeze)
-		if (typeof config?.useStrictShallowCopy === "boolean")
-			this.setUseStrictShallowCopy(config!.useStrictShallowCopy)
-		if (typeof config?.useStrictIteration === "boolean")
-			this.setUseStrictIteration(config!.useStrictIteration)
-	}
-
-	/**
-	 * The `produce` function takes a value and a "recipe function" (whose
-	 * return value often depends on the base state). The recipe function is
-	 * free to mutate its first argument however it wants. All mutations are
-	 * only ever applied to a __copy__ of the base state.
-	 *
-	 * Pass only a function to create a "curried producer" which relieves you
-	 * from passing the recipe function every time.
-	 *
-	 * Only plain objects and arrays are made mutable. All other objects are
-	 * considered uncopyable.
-	 *
-	 * Note: This function is __bound__ to its `Immer` instance.
-	 *
-	 * @param {any} base - the initial state
-	 * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified
-	 * @param {Function} patchListener - optional function that will be called with all the patches produced here
-	 * @returns {any} a new state, or the initial state if nothing was modified
-	 */
-	produce: IProduce = (base: any, recipe?: any, patchListener?: any) => {
-		// curried invocation
-		if (typeof base === "function" && typeof recipe !== "function") {
-			const defaultBase = recipe
-			recipe = base
-
-			const self = this
-			return function curriedProduce(
-				this: any,
-				base = defaultBase,
-				...args: any[]
-			) {
-				return self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore
-			}
-		}
-
-		if (typeof recipe !== "function") die(6)
-		if (patchListener !== undefined && typeof patchListener !== "function")
-			die(7)
-
-		let result
-
-		// Only plain objects, arrays, and "immerable classes" are drafted.
-		if (isDraftable(base)) {
-			const scope = enterScope(this)
-			const proxy = createProxy(base, undefined)
-			let hasError = true
-			try {
-				result = recipe(proxy)
-				hasError = false
-			} finally {
-				// finally instead of catch + rethrow better preserves original stack
-				if (hasError) revokeScope(scope)
-				else leaveScope(scope)
-			}
-			usePatchesInScope(scope, patchListener)
-			return processResult(result, scope)
-		} else if (!base || typeof base !== "object") {
-			result = recipe(base)
-			if (result === undefined) result = base
-			if (result === NOTHING) result = undefined
-			if (this.autoFreeze_) freeze(result, true)
-			if (patchListener) {
-				const p: Patch[] = []
-				const ip: Patch[] = []
-				getPlugin("Patches").generateReplacementPatches_(base, result, p, ip)
-				patchListener(p, ip)
-			}
-			return result
-		} else die(1, base)
-	}
-
-	produceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {
-		// curried invocation
-		if (typeof base === "function") {
-			return (state: any, ...args: any[]) =>
-				this.produceWithPatches(state, (draft: any) => base(draft, ...args))
-		}
-
-		let patches: Patch[], inversePatches: Patch[]
-		const result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {
-			patches = p
-			inversePatches = ip
-		})
-		return [result, patches!, inversePatches!]
-	}
-
-	createDraft<T extends Objectish>(base: T): Draft<T> {
-		if (!isDraftable(base)) die(8)
-		if (isDraft(base)) base = current(base)
-		const scope = enterScope(this)
-		const proxy = createProxy(base, undefined)
-		proxy[DRAFT_STATE].isManual_ = true
-		leaveScope(scope)
-		return proxy as any
-	}
-
-	finishDraft<D extends Draft<any>>(
-		draft: D,
-		patchListener?: PatchListener
-	): D extends Draft<infer T> ? T : never {
-		const state: ImmerState = draft && (draft as any)[DRAFT_STATE]
-		if (!state || !state.isManual_) die(9)
-		const {scope_: scope} = state
-		usePatchesInScope(scope, patchListener)
-		return processResult(undefined, scope)
-	}
-
-	/**
-	 * Pass true to automatically freeze all copies created by Immer.
-	 *
-	 * By default, auto-freezing is enabled.
-	 */
-	setAutoFreeze(value: boolean) {
-		this.autoFreeze_ = value
-	}
-
-	/**
-	 * Pass true to enable strict shallow copy.
-	 *
-	 * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
-	 */
-	setUseStrictShallowCopy(value: StrictMode) {
-		this.useStrictShallowCopy_ = value
-	}
-
-	/**
-	 * Pass false to use faster iteration that skips non-enumerable properties
-	 * but still handles symbols for compatibility.
-	 *
-	 * By default, strict iteration is enabled (includes all own properties).
-	 */
-	setUseStrictIteration(value: boolean) {
-		this.useStrictIteration_ = value
-	}
-
-	shouldUseStrictIteration(): boolean {
-		return this.useStrictIteration_
-	}
-
-	applyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {
-		// If a patch replaces the entire state, take that replacement as base
-		// before applying patches
-		let i: number
-		for (i = patches.length - 1; i >= 0; i--) {
-			const patch = patches[i]
-			if (patch.path.length === 0 && patch.op === "replace") {
-				base = patch.value
-				break
-			}
-		}
-		// If there was a patch that replaced the entire state, start from the
-		// patch after that.
-		if (i > -1) {
-			patches = patches.slice(i + 1)
-		}
-
-		const applyPatchesImpl = getPlugin("Patches").applyPatches_
-		if (isDraft(base)) {
-			// N.B: never hits if some patch a replacement, patches are never drafts
-			return applyPatchesImpl(base, patches)
-		}
-		// Otherwise, produce a copy of the base state.
-		return this.produce(base, (draft: Drafted) =>
-			applyPatchesImpl(draft, patches)
-		)
-	}
-}
-
-export function createProxy<T extends Objectish>(
-	value: T,
-	parent?: ImmerState
-): Drafted<T, ImmerState> {
-	// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft
-	const draft: Drafted = isMap(value)
-		? getPlugin("MapSet").proxyMap_(value, parent)
-		: isSet(value)
-		? getPlugin("MapSet").proxySet_(value, parent)
-		: createProxyProxy(value, parent)
-
-	const scope = parent ? parent.scope_ : getCurrentScope()
-	scope.drafts_.push(draft)
-	return draft
-}
Index: de_modules/immer/src/core/proxy.ts
===================================================================
--- node_modules/immer/src/core/proxy.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,292 +1,0 @@
-import {
-	each,
-	has,
-	is,
-	isDraftable,
-	shallowCopy,
-	latest,
-	ImmerBaseState,
-	ImmerState,
-	Drafted,
-	AnyObject,
-	AnyArray,
-	Objectish,
-	getCurrentScope,
-	getPrototypeOf,
-	DRAFT_STATE,
-	die,
-	createProxy,
-	ArchType,
-	ImmerScope
-} from "../internal"
-
-interface ProxyBaseState extends ImmerBaseState {
-	assigned_: {
-		[property: string]: boolean
-	}
-	parent_?: ImmerState
-	revoke_(): void
-}
-
-export interface ProxyObjectState extends ProxyBaseState {
-	type_: ArchType.Object
-	base_: any
-	copy_: any
-	draft_: Drafted<AnyObject, ProxyObjectState>
-}
-
-export interface ProxyArrayState extends ProxyBaseState {
-	type_: ArchType.Array
-	base_: AnyArray
-	copy_: AnyArray | null
-	draft_: Drafted<AnyArray, ProxyArrayState>
-}
-
-type ProxyState = ProxyObjectState | ProxyArrayState
-
-/**
- * Returns a new draft of the `base` object.
- *
- * The second argument is the parent draft-state (used internally).
- */
-export function createProxyProxy<T extends Objectish>(
-	base: T,
-	parent?: ImmerState
-): Drafted<T, ProxyState> {
-	const isArray = Array.isArray(base)
-	const state: ProxyState = {
-		type_: isArray ? ArchType.Array : (ArchType.Object as any),
-		// Track which produce call this is associated with.
-		scope_: parent ? parent.scope_ : getCurrentScope()!,
-		// True for both shallow and deep changes.
-		modified_: false,
-		// Used during finalization.
-		finalized_: false,
-		// Track which properties have been assigned (true) or deleted (false).
-		assigned_: {},
-		// The parent draft state.
-		parent_: parent,
-		// The base state.
-		base_: base,
-		// The base proxy.
-		draft_: null as any, // set below
-		// The base copy with any updated values.
-		copy_: null,
-		// Called by the `produce` function.
-		revoke_: null as any,
-		isManual_: false
-	}
-
-	// the traps must target something, a bit like the 'real' base.
-	// but also, we need to be able to determine from the target what the relevant state is
-	// (to avoid creating traps per instance to capture the state in closure,
-	// and to avoid creating weird hidden properties as well)
-	// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)
-	// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb
-	let target: T = state as any
-	let traps: ProxyHandler<object | Array<any>> = objectTraps
-	if (isArray) {
-		target = [state] as any
-		traps = arrayTraps
-	}
-
-	const {revoke, proxy} = Proxy.revocable(target, traps)
-	state.draft_ = proxy as any
-	state.revoke_ = revoke
-	return proxy as any
-}
-
-/**
- * Object drafts
- */
-export const objectTraps: ProxyHandler<ProxyState> = {
-	get(state, prop) {
-		if (prop === DRAFT_STATE) return state
-
-		const source = latest(state)
-		if (!has(source, prop)) {
-			// non-existing or non-own property...
-			return readPropFromProto(state, source, prop)
-		}
-		const value = source[prop]
-		if (state.finalized_ || !isDraftable(value)) {
-			return value
-		}
-		// Check for existing draft in modified state.
-		// Assigned values are never drafted. This catches any drafts we created, too.
-		if (value === peek(state.base_, prop)) {
-			prepareCopy(state)
-			return (state.copy_![prop as any] = createProxy(value, state))
-		}
-		return value
-	},
-	has(state, prop) {
-		return prop in latest(state)
-	},
-	ownKeys(state) {
-		return Reflect.ownKeys(latest(state))
-	},
-	set(
-		state: ProxyObjectState,
-		prop: string /* strictly not, but helps TS */,
-		value
-	) {
-		const desc = getDescriptorFromProto(latest(state), prop)
-		if (desc?.set) {
-			// special case: if this write is captured by a setter, we have
-			// to trigger it with the correct context
-			desc.set.call(state.draft_, value)
-			return true
-		}
-		if (!state.modified_) {
-			// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)
-			// from setting an existing property with value undefined to undefined (which is not a change)
-			const current = peek(latest(state), prop)
-			// special case, if we assigning the original value to a draft, we can ignore the assignment
-			const currentState: ProxyObjectState = current?.[DRAFT_STATE]
-			if (currentState && currentState.base_ === value) {
-				state.copy_![prop] = value
-				state.assigned_[prop] = false
-				return true
-			}
-			if (is(value, current) && (value !== undefined || has(state.base_, prop)))
-				return true
-			prepareCopy(state)
-			markChanged(state)
-		}
-
-		if (
-			(state.copy_![prop] === value &&
-				// special case: handle new props with value 'undefined'
-				(value !== undefined || prop in state.copy_)) ||
-			// special case: NaN
-			(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))
-		)
-			return true
-
-		// @ts-ignore
-		state.copy_![prop] = value
-		state.assigned_[prop] = true
-		return true
-	},
-	deleteProperty(state, prop: string) {
-		// The `undefined` check is a fast path for pre-existing keys.
-		if (peek(state.base_, prop) !== undefined || prop in state.base_) {
-			state.assigned_[prop] = false
-			prepareCopy(state)
-			markChanged(state)
-		} else {
-			// if an originally not assigned property was deleted
-			delete state.assigned_[prop]
-		}
-		if (state.copy_) {
-			delete state.copy_[prop]
-		}
-		return true
-	},
-	// Note: We never coerce `desc.value` into an Immer draft, because we can't make
-	// the same guarantee in ES5 mode.
-	getOwnPropertyDescriptor(state, prop) {
-		const owner = latest(state)
-		const desc = Reflect.getOwnPropertyDescriptor(owner, prop)
-		if (!desc) return desc
-		return {
-			writable: true,
-			configurable: state.type_ !== ArchType.Array || prop !== "length",
-			enumerable: desc.enumerable,
-			value: owner[prop]
-		}
-	},
-	defineProperty() {
-		die(11)
-	},
-	getPrototypeOf(state) {
-		return getPrototypeOf(state.base_)
-	},
-	setPrototypeOf() {
-		die(12)
-	}
-}
-
-/**
- * Array drafts
- */
-
-const arrayTraps: ProxyHandler<[ProxyArrayState]> = {}
-each(objectTraps, (key, fn) => {
-	// @ts-ignore
-	arrayTraps[key] = function() {
-		arguments[0] = arguments[0][0]
-		return fn.apply(this, arguments)
-	}
-})
-arrayTraps.deleteProperty = function(state, prop) {
-	if (process.env.NODE_ENV !== "production" && isNaN(parseInt(prop as any)))
-		die(13)
-	// @ts-ignore
-	return arrayTraps.set!.call(this, state, prop, undefined)
-}
-arrayTraps.set = function(state, prop, value) {
-	if (
-		process.env.NODE_ENV !== "production" &&
-		prop !== "length" &&
-		isNaN(parseInt(prop as any))
-	)
-		die(14)
-	return objectTraps.set!.call(this, state[0], prop, value, state[0])
-}
-
-// Access a property without creating an Immer draft.
-function peek(draft: Drafted, prop: PropertyKey) {
-	const state = draft[DRAFT_STATE]
-	const source = state ? latest(state) : draft
-	return source[prop]
-}
-
-function readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {
-	const desc = getDescriptorFromProto(source, prop)
-	return desc
-		? `value` in desc
-			? desc.value
-			: // This is a very special case, if the prop is a getter defined by the
-			  // prototype, we should invoke it with the draft as context!
-			  desc.get?.call(state.draft_)
-		: undefined
-}
-
-function getDescriptorFromProto(
-	source: any,
-	prop: PropertyKey
-): PropertyDescriptor | undefined {
-	// 'in' checks proto!
-	if (!(prop in source)) return undefined
-	let proto = getPrototypeOf(source)
-	while (proto) {
-		const desc = Object.getOwnPropertyDescriptor(proto, prop)
-		if (desc) return desc
-		proto = getPrototypeOf(proto)
-	}
-	return undefined
-}
-
-export function markChanged(state: ImmerState) {
-	if (!state.modified_) {
-		state.modified_ = true
-		if (state.parent_) {
-			markChanged(state.parent_)
-		}
-	}
-}
-
-export function prepareCopy(state: {
-	base_: any
-	copy_: any
-	scope_: ImmerScope
-}) {
-	if (!state.copy_) {
-		state.copy_ = shallowCopy(
-			state.base_,
-			state.scope_.immer_.useStrictShallowCopy_
-		)
-	}
-}
Index: de_modules/immer/src/core/scope.ts
===================================================================
--- node_modules/immer/src/core/scope.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-import {
-	Patch,
-	PatchListener,
-	Drafted,
-	Immer,
-	DRAFT_STATE,
-	ImmerState,
-	ArchType,
-	getPlugin
-} from "../internal"
-
-/** Each scope represents a `produce` call. */
-
-export interface ImmerScope {
-	patches_?: Patch[]
-	inversePatches_?: Patch[]
-	canAutoFreeze_: boolean
-	drafts_: any[]
-	parent_?: ImmerScope
-	patchListener_?: PatchListener
-	immer_: Immer
-	unfinalizedDrafts_: number
-}
-
-let currentScope: ImmerScope | undefined
-
-export function getCurrentScope() {
-	return currentScope!
-}
-
-function createScope(
-	parent_: ImmerScope | undefined,
-	immer_: Immer
-): ImmerScope {
-	return {
-		drafts_: [],
-		parent_,
-		immer_,
-		// Whenever the modified draft contains a draft from another scope, we
-		// need to prevent auto-freezing so the unowned draft can be finalized.
-		canAutoFreeze_: true,
-		unfinalizedDrafts_: 0
-	}
-}
-
-export function usePatchesInScope(
-	scope: ImmerScope,
-	patchListener?: PatchListener
-) {
-	if (patchListener) {
-		getPlugin("Patches") // assert we have the plugin
-		scope.patches_ = []
-		scope.inversePatches_ = []
-		scope.patchListener_ = patchListener
-	}
-}
-
-export function revokeScope(scope: ImmerScope) {
-	leaveScope(scope)
-	scope.drafts_.forEach(revokeDraft)
-	// @ts-ignore
-	scope.drafts_ = null
-}
-
-export function leaveScope(scope: ImmerScope) {
-	if (scope === currentScope) {
-		currentScope = scope.parent_
-	}
-}
-
-export function enterScope(immer: Immer) {
-	return (currentScope = createScope(currentScope, immer))
-}
-
-function revokeDraft(draft: Drafted) {
-	const state: ImmerState = draft[DRAFT_STATE]
-	if (state.type_ === ArchType.Object || state.type_ === ArchType.Array)
-		state.revoke_()
-	else state.revoked_ = true
-}
Index: de_modules/immer/src/immer.ts
===================================================================
--- node_modules/immer/src/immer.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,129 +1,0 @@
-import {
-	IProduce,
-	IProduceWithPatches,
-	Immer,
-	Draft,
-	Immutable
-} from "./internal"
-
-export {
-	Draft,
-	WritableDraft,
-	Immutable,
-	Patch,
-	PatchListener,
-	Producer,
-	original,
-	current,
-	isDraft,
-	isDraftable,
-	NOTHING as nothing,
-	DRAFTABLE as immerable,
-	freeze,
-	Objectish,
-	StrictMode
-} from "./internal"
-
-const immer = new Immer()
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-export const produce: IProduce = /* @__PURE__ */ immer.produce
-
-/**
- * Like `produce`, but `produceWithPatches` always returns a tuple
- * [nextState, patches, inversePatches] (instead of just the next state)
- */
-export const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(
-	immer
-)
-
-/**
- * Pass true to automatically freeze all copies created by Immer.
- *
- * Always freeze by default, even in production mode
- */
-export const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)
-
-/**
- * Pass true to enable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-export const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(
-	immer
-)
-
-/**
- * Pass false to use loose iteration that only processes enumerable string properties.
- * This skips symbols and non-enumerable properties for maximum performance.
- *
- * By default, strict iteration is enabled (includes all own properties).
- */
-export const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(
-	immer
-)
-
-/**
- * Apply an array of Immer patches to the first argument.
- *
- * This function is a producer, which means copy-on-write is in effect.
- */
-export const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)
-
-/**
- * Create an Immer draft from the given base state, which may be a draft itself.
- * The draft can be modified until you finalize it with the `finishDraft` function.
- */
-export const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)
-
-/**
- * Finalize an Immer draft from a `createDraft` call, returning the base state
- * (if no changes were made) or a modified copy. The draft must *not* be
- * mutated afterwards.
- *
- * Pass a function as the 2nd argument to generate Immer patches based on the
- * changes that were made.
- */
-export const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)
-
-/**
- * This function is actually a no-op, but can be used to cast an immutable type
- * to an draft type and make TypeScript happy
- *
- * @param value
- */
-export function castDraft<T>(value: T): Draft<T> {
-	return value as any
-}
-
-/**
- * This function is actually a no-op, but can be used to cast a mutable type
- * to an immutable type and make TypeScript happy
- * @param value
- */
-export function castImmutable<T>(value: T): Immutable<T> {
-	return value as any
-}
-
-export {Immer}
-
-export {enablePatches} from "./plugins/patches"
-export {enableMapSet} from "./plugins/mapset"
Index: de_modules/immer/src/internal.ts
===================================================================
--- node_modules/immer/src/internal.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export * from "./utils/env"
-export * from "./utils/errors"
-export * from "./types/types-external"
-export * from "./types/types-internal"
-export * from "./utils/common"
-export * from "./utils/plugins"
-export * from "./core/scope"
-export * from "./core/finalize"
-export * from "./core/proxy"
-export * from "./core/immerClass"
-export * from "./core/current"
Index: de_modules/immer/src/plugins/mapset.ts
===================================================================
--- node_modules/immer/src/plugins/mapset.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,304 +1,0 @@
-// types only!
-import {
-	ImmerState,
-	AnyMap,
-	AnySet,
-	MapState,
-	SetState,
-	DRAFT_STATE,
-	getCurrentScope,
-	latest,
-	isDraftable,
-	createProxy,
-	loadPlugin,
-	markChanged,
-	die,
-	ArchType,
-	each
-} from "../internal"
-
-export function enableMapSet() {
-	class DraftMap extends Map {
-		[DRAFT_STATE]: MapState
-
-		constructor(target: AnyMap, parent?: ImmerState) {
-			super()
-			this[DRAFT_STATE] = {
-				type_: ArchType.Map,
-				parent_: parent,
-				scope_: parent ? parent.scope_ : getCurrentScope()!,
-				modified_: false,
-				finalized_: false,
-				copy_: undefined,
-				assigned_: undefined,
-				base_: target,
-				draft_: this as any,
-				isManual_: false,
-				revoked_: false
-			}
-		}
-
-		get size(): number {
-			return latest(this[DRAFT_STATE]).size
-		}
-
-		has(key: any): boolean {
-			return latest(this[DRAFT_STATE]).has(key)
-		}
-
-		set(key: any, value: any) {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (!latest(state).has(key) || latest(state).get(key) !== value) {
-				prepareMapCopy(state)
-				markChanged(state)
-				state.assigned_!.set(key, true)
-				state.copy_!.set(key, value)
-				state.assigned_!.set(key, true)
-			}
-			return this
-		}
-
-		delete(key: any): boolean {
-			if (!this.has(key)) {
-				return false
-			}
-
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareMapCopy(state)
-			markChanged(state)
-			if (state.base_.has(key)) {
-				state.assigned_!.set(key, false)
-			} else {
-				state.assigned_!.delete(key)
-			}
-			state.copy_!.delete(key)
-			return true
-		}
-
-		clear() {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (latest(state).size) {
-				prepareMapCopy(state)
-				markChanged(state)
-				state.assigned_ = new Map()
-				each(state.base_, key => {
-					state.assigned_!.set(key, false)
-				})
-				state.copy_!.clear()
-			}
-		}
-
-		forEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {
-			const state: MapState = this[DRAFT_STATE]
-			latest(state).forEach((_value: any, key: any, _map: any) => {
-				cb.call(thisArg, this.get(key), key, this)
-			})
-		}
-
-		get(key: any): any {
-			const state: MapState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			const value = latest(state).get(key)
-			if (state.finalized_ || !isDraftable(value)) {
-				return value
-			}
-			if (value !== state.base_.get(key)) {
-				return value // either already drafted or reassigned
-			}
-			// despite what it looks, this creates a draft only once, see above condition
-			const draft = createProxy(value, state)
-			prepareMapCopy(state)
-			state.copy_!.set(key, draft)
-			return draft
-		}
-
-		keys(): IterableIterator<any> {
-			return latest(this[DRAFT_STATE]).keys()
-		}
-
-		values(): IterableIterator<any> {
-			const iterator = this.keys()
-			return {
-				[Symbol.iterator]: () => this.values(),
-				next: () => {
-					const r = iterator.next()
-					/* istanbul ignore next */
-					if (r.done) return r
-					const value = this.get(r.value)
-					return {
-						done: false,
-						value
-					}
-				}
-			} as any
-		}
-
-		entries(): IterableIterator<[any, any]> {
-			const iterator = this.keys()
-			return {
-				[Symbol.iterator]: () => this.entries(),
-				next: () => {
-					const r = iterator.next()
-					/* istanbul ignore next */
-					if (r.done) return r
-					const value = this.get(r.value)
-					return {
-						done: false,
-						value: [r.value, value]
-					}
-				}
-			} as any
-		}
-
-		[Symbol.iterator]() {
-			return this.entries()
-		}
-	}
-
-	function proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {
-		// @ts-ignore
-		return new DraftMap(target, parent)
-	}
-
-	function prepareMapCopy(state: MapState) {
-		if (!state.copy_) {
-			state.assigned_ = new Map()
-			state.copy_ = new Map(state.base_)
-		}
-	}
-
-	class DraftSet extends Set {
-		[DRAFT_STATE]: SetState
-		constructor(target: AnySet, parent?: ImmerState) {
-			super()
-			this[DRAFT_STATE] = {
-				type_: ArchType.Set,
-				parent_: parent,
-				scope_: parent ? parent.scope_ : getCurrentScope()!,
-				modified_: false,
-				finalized_: false,
-				copy_: undefined,
-				base_: target,
-				draft_: this,
-				drafts_: new Map(),
-				revoked_: false,
-				isManual_: false
-			}
-		}
-
-		get size(): number {
-			return latest(this[DRAFT_STATE]).size
-		}
-
-		has(value: any): boolean {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			// bit of trickery here, to be able to recognize both the value, and the draft of its value
-			if (!state.copy_) {
-				return state.base_.has(value)
-			}
-			if (state.copy_.has(value)) return true
-			if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))
-				return true
-			return false
-		}
-
-		add(value: any): any {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (!this.has(value)) {
-				prepareSetCopy(state)
-				markChanged(state)
-				state.copy_!.add(value)
-			}
-			return this
-		}
-
-		delete(value: any): any {
-			if (!this.has(value)) {
-				return false
-			}
-
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			markChanged(state)
-			return (
-				state.copy_!.delete(value) ||
-				(state.drafts_.has(value)
-					? state.copy_!.delete(state.drafts_.get(value))
-					: /* istanbul ignore next */ false)
-			)
-		}
-
-		clear() {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			if (latest(state).size) {
-				prepareSetCopy(state)
-				markChanged(state)
-				state.copy_!.clear()
-			}
-		}
-
-		values(): IterableIterator<any> {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			return state.copy_!.values()
-		}
-
-		entries(): IterableIterator<[any, any]> {
-			const state: SetState = this[DRAFT_STATE]
-			assertUnrevoked(state)
-			prepareSetCopy(state)
-			return state.copy_!.entries()
-		}
-
-		keys(): IterableIterator<any> {
-			return this.values()
-		}
-
-		[Symbol.iterator]() {
-			return this.values()
-		}
-
-		forEach(cb: any, thisArg?: any) {
-			const iterator = this.values()
-			let result = iterator.next()
-			while (!result.done) {
-				cb.call(thisArg, result.value, result.value, this)
-				result = iterator.next()
-			}
-		}
-	}
-	function proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {
-		// @ts-ignore
-		return new DraftSet(target, parent)
-	}
-
-	function prepareSetCopy(state: SetState) {
-		if (!state.copy_) {
-			// create drafts for all entries to preserve insertion order
-			state.copy_ = new Set()
-			state.base_.forEach(value => {
-				if (isDraftable(value)) {
-					const draft = createProxy(value, state)
-					state.drafts_.set(value, draft)
-					state.copy_!.add(draft)
-				} else {
-					state.copy_!.add(value)
-				}
-			})
-		}
-	}
-
-	function assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {
-		if (state.revoked_) die(3, JSON.stringify(latest(state)))
-	}
-
-	loadPlugin("MapSet", {proxyMap_, proxySet_})
-}
Index: de_modules/immer/src/plugins/patches.ts
===================================================================
--- node_modules/immer/src/plugins/patches.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,317 +1,0 @@
-import {immerable} from "../immer"
-import {
-	ImmerState,
-	Patch,
-	SetState,
-	ProxyArrayState,
-	MapState,
-	ProxyObjectState,
-	PatchPath,
-	get,
-	each,
-	has,
-	getArchtype,
-	getPrototypeOf,
-	isSet,
-	isMap,
-	loadPlugin,
-	ArchType,
-	die,
-	isDraft,
-	isDraftable,
-	NOTHING,
-	errors
-} from "../internal"
-
-export function enablePatches() {
-	const errorOffset = 16
-	if (process.env.NODE_ENV !== "production") {
-		errors.push(
-			'Sets cannot have "replace" patches.',
-			function(op: string) {
-				return "Unsupported patch operation: " + op
-			},
-			function(path: string) {
-				return "Cannot apply patch, path doesn't resolve: " + path
-			},
-			"Patching reserved attributes like __proto__, prototype and constructor is not allowed"
-		)
-	}
-
-	const REPLACE = "replace"
-	const ADD = "add"
-	const REMOVE = "remove"
-
-	function generatePatches_(
-		state: ImmerState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	): void {
-		switch (state.type_) {
-			case ArchType.Object:
-			case ArchType.Map:
-				return generatePatchesFromAssigned(
-					state,
-					basePath,
-					patches,
-					inversePatches
-				)
-			case ArchType.Array:
-				return generateArrayPatches(state, basePath, patches, inversePatches)
-			case ArchType.Set:
-				return generateSetPatches(
-					(state as any) as SetState,
-					basePath,
-					patches,
-					inversePatches
-				)
-		}
-	}
-
-	function generateArrayPatches(
-		state: ProxyArrayState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		let {base_, assigned_} = state
-		let copy_ = state.copy_!
-
-		// Reduce complexity by ensuring `base` is never longer.
-		if (copy_.length < base_.length) {
-			// @ts-ignore
-			;[base_, copy_] = [copy_, base_]
-			;[patches, inversePatches] = [inversePatches, patches]
-		}
-
-		// Process replaced indices.
-		for (let i = 0; i < base_.length; i++) {
-			if (assigned_[i] && copy_[i] !== base_[i]) {
-				const path = basePath.concat([i])
-				patches.push({
-					op: REPLACE,
-					path,
-					// Need to maybe clone it, as it can in fact be the original value
-					// due to the base/copy inversion at the start of this function
-					value: clonePatchValueIfNeeded(copy_[i])
-				})
-				inversePatches.push({
-					op: REPLACE,
-					path,
-					value: clonePatchValueIfNeeded(base_[i])
-				})
-			}
-		}
-
-		// Process added indices.
-		for (let i = base_.length; i < copy_.length; i++) {
-			const path = basePath.concat([i])
-			patches.push({
-				op: ADD,
-				path,
-				// Need to maybe clone it, as it can in fact be the original value
-				// due to the base/copy inversion at the start of this function
-				value: clonePatchValueIfNeeded(copy_[i])
-			})
-		}
-		for (let i = copy_.length - 1; base_.length <= i; --i) {
-			const path = basePath.concat([i])
-			inversePatches.push({
-				op: REMOVE,
-				path
-			})
-		}
-	}
-
-	// This is used for both Map objects and normal objects.
-	function generatePatchesFromAssigned(
-		state: MapState | ProxyObjectState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		const {base_, copy_} = state
-		each(state.assigned_!, (key, assignedValue) => {
-			const origValue = get(base_, key)
-			const value = get(copy_!, key)
-			const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD
-			if (origValue === value && op === REPLACE) return
-			const path = basePath.concat(key as any)
-			patches.push(op === REMOVE ? {op, path} : {op, path, value})
-			inversePatches.push(
-				op === ADD
-					? {op: REMOVE, path}
-					: op === REMOVE
-					? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}
-					: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}
-			)
-		})
-	}
-
-	function generateSetPatches(
-		state: SetState,
-		basePath: PatchPath,
-		patches: Patch[],
-		inversePatches: Patch[]
-	) {
-		let {base_, copy_} = state
-
-		let i = 0
-		base_.forEach((value: any) => {
-			if (!copy_!.has(value)) {
-				const path = basePath.concat([i])
-				patches.push({
-					op: REMOVE,
-					path,
-					value
-				})
-				inversePatches.unshift({
-					op: ADD,
-					path,
-					value
-				})
-			}
-			i++
-		})
-		i = 0
-		copy_!.forEach((value: any) => {
-			if (!base_.has(value)) {
-				const path = basePath.concat([i])
-				patches.push({
-					op: ADD,
-					path,
-					value
-				})
-				inversePatches.unshift({
-					op: REMOVE,
-					path,
-					value
-				})
-			}
-			i++
-		})
-	}
-
-	function generateReplacementPatches_(
-		baseValue: any,
-		replacement: any,
-		patches: Patch[],
-		inversePatches: Patch[]
-	): void {
-		patches.push({
-			op: REPLACE,
-			path: [],
-			value: replacement === NOTHING ? undefined : replacement
-		})
-		inversePatches.push({
-			op: REPLACE,
-			path: [],
-			value: baseValue
-		})
-	}
-
-	function applyPatches_<T>(draft: T, patches: readonly Patch[]): T {
-		patches.forEach(patch => {
-			const {path, op} = patch
-
-			let base: any = draft
-			for (let i = 0; i < path.length - 1; i++) {
-				const parentType = getArchtype(base)
-				let p = path[i]
-				if (typeof p !== "string" && typeof p !== "number") {
-					p = "" + p
-				}
-
-				// See #738, avoid prototype pollution
-				if (
-					(parentType === ArchType.Object || parentType === ArchType.Array) &&
-					(p === "__proto__" || p === "constructor")
-				)
-					die(errorOffset + 3)
-				if (typeof base === "function" && p === "prototype")
-					die(errorOffset + 3)
-				base = get(base, p)
-				if (typeof base !== "object") die(errorOffset + 2, path.join("/"))
-			}
-
-			const type = getArchtype(base)
-			const value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411
-			const key = path[path.length - 1]
-			switch (op) {
-				case REPLACE:
-					switch (type) {
-						case ArchType.Map:
-							return base.set(key, value)
-						/* istanbul ignore next */
-						case ArchType.Set:
-							die(errorOffset)
-						default:
-							// if value is an object, then it's assigned by reference
-							// in the following add or remove ops, the value field inside the patch will also be modifyed
-							// so we use value from the cloned patch
-							// @ts-ignore
-							return (base[key] = value)
-					}
-				case ADD:
-					switch (type) {
-						case ArchType.Array:
-							return key === "-"
-								? base.push(value)
-								: base.splice(key as any, 0, value)
-						case ArchType.Map:
-							return base.set(key, value)
-						case ArchType.Set:
-							return base.add(value)
-						default:
-							return (base[key] = value)
-					}
-				case REMOVE:
-					switch (type) {
-						case ArchType.Array:
-							return base.splice(key as any, 1)
-						case ArchType.Map:
-							return base.delete(key)
-						case ArchType.Set:
-							return base.delete(patch.value)
-						default:
-							return delete base[key]
-					}
-				default:
-					die(errorOffset + 1, op)
-			}
-		})
-
-		return draft
-	}
-
-	// optimize: this is quite a performance hit, can we detect intelligently when it is needed?
-	// E.g. auto-draft when new objects from outside are assigned and modified?
-	// (See failing test when deepClone just returns obj)
-	function deepClonePatchValue<T>(obj: T): T
-	function deepClonePatchValue(obj: any) {
-		if (!isDraftable(obj)) return obj
-		if (Array.isArray(obj)) return obj.map(deepClonePatchValue)
-		if (isMap(obj))
-			return new Map(
-				Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])
-			)
-		if (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))
-		const cloned = Object.create(getPrototypeOf(obj))
-		for (const key in obj) cloned[key] = deepClonePatchValue(obj[key])
-		if (has(obj, immerable)) cloned[immerable] = obj[immerable]
-		return cloned
-	}
-
-	function clonePatchValueIfNeeded<T>(obj: T): T {
-		if (isDraft(obj)) {
-			return deepClonePatchValue(obj)
-		} else return obj
-	}
-
-	loadPlugin("Patches", {
-		applyPatches_,
-		generatePatches_,
-		generateReplacementPatches_
-	})
-}
Index: de_modules/immer/src/types/globals.d.ts
===================================================================
--- node_modules/immer/src/types/globals.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-declare const __DEV__: boolean
Index: de_modules/immer/src/types/index.js.flow
===================================================================
--- node_modules/immer/src/types/index.js.flow	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-// @flow
-
-export interface Patch {
-	op: "replace" | "remove" | "add";
-	path: (string | number)[];
-	value?: any;
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-type Base = {...} | Array<any>
-interface IProduce {
-	/**
-	 * Immer takes a state, and runs a function against it.
-	 * That function can freely mutate the state, as it will create copies-on-write.
-	 * This means that the original state will stay unchanged, and once the function finishes, the modified state is returned.
-	 *
-	 * If the first argument is a function, this is interpreted as the recipe, and will create a curried function that will execute the recipe
-	 * any time it is called with the current state.
-	 *
-	 * @param currentState - the state to start with
-	 * @param recipe - function that receives a proxy of the current state as first argument and which can be freely modified
-	 * @param initialState - if a curried function is created and this argument was given, it will be used as fallback if the curried function is called with a state of undefined
-	 * @returns The next state: a new state, or the current state if nothing was modified
-	 */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void,
-		patchListener?: PatchListener
-	): S;
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S;
-}
-
-interface IProduceWithPatches {
-        /**
-         * Like `produce`, but instead of just returning the new state,
-         * a tuple is returned with [nextState, patches, inversePatches]
-         *
-         * Like produce, this function supports currying
-         */
-	<S: Base>(
-		currentState: S,
-		recipe: (draftState: S) => S | void
-	): [S, Patch[], Patch[]];
-	// curried invocations with initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void,
-		initialState: S
-	): (currentState: S | void, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-	// curried invocations without initial state
-	<S: Base, A = void, B = void, C = void>(
-		recipe: (draftState: S, a: A, b: B, c: C, ...extraArgs: any[]) => S | void
-	): (currentState: S, a: A, b: B, c: C, ...extraArgs: any[]) => [S, Patch[], Patch[]];
-}
-
-declare export var produce: IProduce
-
-declare export var produceWithPatches: IProduceWithPatches
-
-declare export var nothing: typeof undefined
-
-declare export var immerable: Symbol
-
-/**
- * Automatically freezes any state trees generated by immer.
- * This protects against accidental modifications of the state tree outside of an immer function.
- * This comes with a performance impact, so it is recommended to disable this option in production.
- * By default it is turned on during local development, and turned off in production.
- */
-declare export function setAutoFreeze(autoFreeze: boolean): void
-
-/**
- * Pass false to disable strict shallow copy.
- *
- * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.
- */
-declare export function setUseStrictShallowCopy(useStrictShallowCopy: boolean): void
-
-declare export function applyPatches<S>(state: S, patches: Patch[]): S
-
-declare export function original<S>(value: S): S
-
-declare export function current<S>(value: S): S
-
-declare export function isDraft(value: any): boolean
-
-/**
- * Creates a mutable draft from an (immutable) object / array.
- * The draft can be modified until `finishDraft` is called
- */
-declare export function createDraft<T>(base: T): T
-
-/**
- * Given a draft that was created using `createDraft`,
- * finalizes the draft into a new immutable object.
- * Optionally a patch-listener can be provided to gather the patches that are needed to construct the object.
- */
-declare export function finishDraft<T>(base: T, listener?: PatchListener): T
-
-declare export function enableMapSet(): void
-declare export function enablePatches(): void
-
-declare export function freeze<T>(obj: T, freeze?: boolean): T
Index: de_modules/immer/src/types/types-external.ts
===================================================================
--- node_modules/immer/src/types/types-external.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,239 +1,0 @@
-import {NOTHING} from "../internal"
-
-type AnyFunc = (...args: any[]) => any
-
-type PrimitiveType = number | string | boolean
-
-/** Object types that should never be mapped */
-type AtomicObject = Function | Promise<any> | Date | RegExp
-
-/**
- * If the lib "ES2015.Collection" is not included in tsconfig.json,
- * types like ReadonlyArray, WeakMap etc. fall back to `any` (specified nowhere)
- * or `{}` (from the node types), in both cases entering an infinite recursion in
- * pattern matching type mappings
- * This type can be used to cast these types to `void` in these cases.
- */
-export type IfAvailable<T, Fallback = void> =
-	// fallback if any
-	true | false extends (T extends never
-	? true
-	: false)
-		? Fallback // fallback if empty type
-		: keyof T extends never
-		? Fallback // original type
-		: T
-
-/**
- * These should also never be mapped but must be tested after regular Map and
- * Set
- */
-type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>
-
-export type WritableDraft<T> = {-readonly [K in keyof T]: Draft<T[K]>}
-
-/** Convert a readonly type into a mutable type, if possible */
-export type Draft<T> = T extends PrimitiveType
-	? T
-	: T extends AtomicObject
-	? T
-	: T extends ReadonlyMap<infer K, infer V> // Map extends ReadonlyMap
-	? Map<Draft<K>, Draft<V>>
-	: T extends ReadonlySet<infer V> // Set extends ReadonlySet
-	? Set<Draft<V>>
-	: T extends WeakReferences
-	? T
-	: T extends object
-	? WritableDraft<T>
-	: T
-
-/** Convert a mutable type into a readonly type */
-export type Immutable<T> = T extends PrimitiveType
-	? T
-	: T extends AtomicObject
-	? T
-	: T extends ReadonlyMap<infer K, infer V> // Map extends ReadonlyMap
-	? ReadonlyMap<Immutable<K>, Immutable<V>>
-	: T extends ReadonlySet<infer V> // Set extends ReadonlySet
-	? ReadonlySet<Immutable<V>>
-	: T extends WeakReferences
-	? T
-	: T extends object
-	? {readonly [K in keyof T]: Immutable<T[K]>}
-	: T
-
-export interface Patch {
-	op: "replace" | "remove" | "add"
-	path: (string | number)[]
-	value?: any
-}
-
-export type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void
-
-/** Converts `nothing` into `undefined` */
-type FromNothing<T> = T extends typeof NOTHING ? undefined : T
-
-/** The inferred return type of `produce` */
-export type Produced<Base, Return> = Return extends void
-	? Base
-	: FromNothing<Return>
-
-/**
- * Utility types
- */
-type PatchesTuple<T> = readonly [T, Patch[], Patch[]]
-
-type ValidRecipeReturnType<State> =
-	| State
-	| void
-	| undefined
-	| (State extends undefined ? typeof NOTHING : never)
-
-type ReturnTypeWithPatchesIfNeeded<
-	State,
-	UsePatches extends boolean
-> = UsePatches extends true ? PatchesTuple<State> : State
-
-/**
- * Core Producer inference
- */
-type InferRecipeFromCurried<Curried> = Curried extends (
-	base: infer State,
-	...rest: infer Args
-) => any // extra assertion to make sure this is a proper curried function (state, args) => state
-	? ReturnType<Curried> extends State
-		? (
-				draft: Draft<State>,
-				...rest: Args
-		  ) => ValidRecipeReturnType<Draft<State>>
-		: never
-	: never
-
-type InferInitialStateFromCurried<Curried> = Curried extends (
-	base: infer State,
-	...rest: any[]
-) => any // extra assertion to make sure this is a proper curried function (state, args) => state
-	? State
-	: never
-
-type InferCurriedFromRecipe<
-	Recipe,
-	UsePatches extends boolean
-> = Recipe extends (draft: infer DraftState, ...args: infer RestArgs) => any // verify return type
-	? ReturnType<Recipe> extends ValidRecipeReturnType<DraftState>
-		? (
-				base: Immutable<DraftState>,
-				...args: RestArgs
-		  ) => ReturnTypeWithPatchesIfNeeded<DraftState, UsePatches> // N.b. we return mutable draftstate, in case the recipe's first arg isn't read only, and that isn't expected as output either
-		: never // incorrect return type
-	: never // not a function
-
-type InferCurriedFromInitialStateAndRecipe<
-	State,
-	Recipe,
-	UsePatches extends boolean
-> = Recipe extends (
-	draft: Draft<State>,
-	...rest: infer RestArgs
-) => ValidRecipeReturnType<State>
-	? (
-			base?: State | undefined,
-			...args: RestArgs
-	  ) => ReturnTypeWithPatchesIfNeeded<State, UsePatches>
-	: never // recipe doesn't match initial state
-
-/**
- * The `produce` function takes a value and a "recipe function" (whose
- * return value often depends on the base state). The recipe function is
- * free to mutate its first argument however it wants. All mutations are
- * only ever applied to a __copy__ of the base state.
- *
- * Pass only a function to create a "curried producer" which relieves you
- * from passing the recipe function every time.
- *
- * Only plain objects and arrays are made mutable. All other objects are
- * considered uncopyable.
- *
- * Note: This function is __bound__ to its `Immer` instance.
- *
- * @param {any} base - the initial state
- * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
- * @param {Function} patchListener - optional function that will be called with all the patches produced here
- * @returns {any} a new state, or the initial state if nothing was modified
- */
-export interface IProduce {
-	/** Curried producer that infers the recipe from the curried output function (e.g. when passing to setState) */
-	<Curried>(
-		recipe: InferRecipeFromCurried<Curried>,
-		initialState?: InferInitialStateFromCurried<Curried>
-	): Curried
-
-	/** Curried producer that infers curried from the recipe  */
-	<Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<
-		Recipe,
-		false
-	>
-
-	/** Curried producer that infers curried from the State generic, which is explicitly passed in.  */
-	<State>(
-		recipe: (
-			state: Draft<State>,
-			initialState: State
-		) => ValidRecipeReturnType<State>
-	): (state?: State) => State
-	<State, Args extends any[]>(
-		recipe: (
-			state: Draft<State>,
-			...args: Args
-		) => ValidRecipeReturnType<State>,
-		initialState: State
-	): (state?: State, ...args: Args) => State
-	<State>(recipe: (state: Draft<State>) => ValidRecipeReturnType<State>): (
-		state: State
-	) => State
-	<State, Args extends any[]>(
-		recipe: (state: Draft<State>, ...args: Args) => ValidRecipeReturnType<State>
-	): (state: State, ...args: Args) => State
-
-	/** Curried producer with initial state, infers recipe from initial state */
-	<State, Recipe extends Function>(
-		recipe: Recipe,
-		initialState: State
-	): InferCurriedFromInitialStateAndRecipe<State, Recipe, false>
-
-	/** Normal producer */
-	<Base, D = Draft<Base>>( // By using a default inferred D, rather than Draft<Base> in the recipe, we can override it.
-		base: Base,
-		recipe: (draft: D) => ValidRecipeReturnType<D>,
-		listener?: PatchListener
-	): Base
-}
-
-/**
- * Like `produce`, but instead of just returning the new state,
- * a tuple is returned with [nextState, patches, inversePatches]
- *
- * Like produce, this function supports currying
- */
-export interface IProduceWithPatches {
-	// Types copied from IProduce, wrapped with PatchesTuple
-	<Recipe extends AnyFunc>(recipe: Recipe): InferCurriedFromRecipe<Recipe, true>
-	<State, Recipe extends Function>(
-		recipe: Recipe,
-		initialState: State
-	): InferCurriedFromInitialStateAndRecipe<State, Recipe, true>
-	<Base, D = Draft<Base>>(
-		base: Base,
-		recipe: (draft: D) => ValidRecipeReturnType<D>,
-		listener?: PatchListener
-	): PatchesTuple<Base>
-}
-
-/**
- * The type for `recipe function`
- */
-export type Producer<T> = (draft: Draft<T>) => ValidRecipeReturnType<Draft<T>>
-
-// Fixes #507: bili doesn't export the types of this file if there is no actual source in it..
-// hopefully it get's tree-shaken away for everyone :)
-export function never_used() {}
Index: de_modules/immer/src/types/types-internal.ts
===================================================================
--- node_modules/immer/src/types/types-internal.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import {
-	SetState,
-	ImmerScope,
-	ProxyObjectState,
-	ProxyArrayState,
-	MapState,
-	DRAFT_STATE
-} from "../internal"
-
-export type Objectish = AnyObject | AnyArray | AnyMap | AnySet
-export type ObjectishNoSet = AnyObject | AnyArray | AnyMap
-
-export type AnyObject = {[key: string]: any}
-export type AnyArray = Array<any>
-export type AnySet = Set<any>
-export type AnyMap = Map<any, any>
-
-export const enum ArchType {
-	Object,
-	Array,
-	Map,
-	Set
-}
-
-export interface ImmerBaseState {
-	parent_?: ImmerState
-	scope_: ImmerScope
-	modified_: boolean
-	finalized_: boolean
-	isManual_: boolean
-}
-
-export type ImmerState =
-	| ProxyObjectState
-	| ProxyArrayState
-	| MapState
-	| SetState
-
-// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)
-export type Drafted<Base = any, T extends ImmerState = ImmerState> = {
-	[DRAFT_STATE]: T
-} & Base
Index: de_modules/immer/src/utils/common.ts
===================================================================
--- node_modules/immer/src/utils/common.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,240 +1,0 @@
-import {
-	DRAFT_STATE,
-	DRAFTABLE,
-	Objectish,
-	Drafted,
-	AnyObject,
-	AnyMap,
-	AnySet,
-	ImmerState,
-	ArchType,
-	die,
-	StrictMode
-} from "../internal"
-
-export const getPrototypeOf = Object.getPrototypeOf
-
-/** Returns true if the given value is an Immer draft */
-/*#__PURE__*/
-export function isDraft(value: any): boolean {
-	return !!value && !!value[DRAFT_STATE]
-}
-
-/** Returns true if the given value can be drafted by Immer */
-/*#__PURE__*/
-export function isDraftable(value: any): boolean {
-	if (!value) return false
-	return (
-		isPlainObject(value) ||
-		Array.isArray(value) ||
-		!!value[DRAFTABLE] ||
-		!!value.constructor?.[DRAFTABLE] ||
-		isMap(value) ||
-		isSet(value)
-	)
-}
-
-const objectCtorString = Object.prototype.constructor.toString()
-const cachedCtorStrings = new WeakMap()
-/*#__PURE__*/
-export function isPlainObject(value: any): boolean {
-	if (!value || typeof value !== "object") return false
-	const proto = Object.getPrototypeOf(value)
-	if (proto === null || proto === Object.prototype) return true
-
-	const Ctor =
-		Object.hasOwnProperty.call(proto, "constructor") && proto.constructor
-	if (Ctor === Object) return true
-
-	if (typeof Ctor !== "function") return false
-
-	let ctorString = cachedCtorStrings.get(Ctor)
-	if (ctorString === undefined) {
-		ctorString = Function.toString.call(Ctor)
-		cachedCtorStrings.set(Ctor, ctorString)
-	}
-
-	return ctorString === objectCtorString
-}
-
-/** Get the underlying object that is represented by the given draft */
-/*#__PURE__*/
-export function original<T>(value: T): T | undefined
-export function original(value: Drafted<any>): any {
-	if (!isDraft(value)) die(15, value)
-	return value[DRAFT_STATE].base_
-}
-
-/**
- * Each iterates a map, set or array.
- * Or, if any other kind of object, all of its own properties.
- *
- * @param obj The object to iterate over
- * @param iter The iterator function
- * @param strict When true (default), includes symbols and non-enumerable properties.
- *               When false, uses looseiteration over only enumerable string properties.
- */
-export function each<T extends Objectish>(
-	obj: T,
-	iter: (key: string | number, value: any, source: T) => void,
-	strict?: boolean
-): void
-export function each(obj: any, iter: any, strict: boolean = true) {
-	if (getArchtype(obj) === ArchType.Object) {
-		// If strict, we do a full iteration including symbols and non-enumerable properties
-		// Otherwise, we only iterate enumerable string properties for performance
-		const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)
-		keys.forEach(key => {
-			iter(key, obj[key], obj)
-		})
-	} else {
-		obj.forEach((entry: any, index: any) => iter(index, entry, obj))
-	}
-}
-
-/*#__PURE__*/
-export function getArchtype(thing: any): ArchType {
-	const state: undefined | ImmerState = thing[DRAFT_STATE]
-	return state
-		? state.type_
-		: Array.isArray(thing)
-		? ArchType.Array
-		: isMap(thing)
-		? ArchType.Map
-		: isSet(thing)
-		? ArchType.Set
-		: ArchType.Object
-}
-
-/*#__PURE__*/
-export function has(thing: any, prop: PropertyKey): boolean {
-	return getArchtype(thing) === ArchType.Map
-		? thing.has(prop)
-		: Object.prototype.hasOwnProperty.call(thing, prop)
-}
-
-/*#__PURE__*/
-export function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {
-	// @ts-ignore
-	return getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]
-}
-
-/*#__PURE__*/
-export function set(thing: any, propOrOldValue: PropertyKey, value: any) {
-	const t = getArchtype(thing)
-	if (t === ArchType.Map) thing.set(propOrOldValue, value)
-	else if (t === ArchType.Set) {
-		thing.add(value)
-	} else thing[propOrOldValue] = value
-}
-
-/*#__PURE__*/
-export function is(x: any, y: any): boolean {
-	// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
-	if (x === y) {
-		return x !== 0 || 1 / x === 1 / y
-	} else {
-		return x !== x && y !== y
-	}
-}
-
-/*#__PURE__*/
-export function isMap(target: any): target is AnyMap {
-	return target instanceof Map
-}
-
-/*#__PURE__*/
-export function isSet(target: any): target is AnySet {
-	return target instanceof Set
-}
-/*#__PURE__*/
-export function latest(state: ImmerState): any {
-	return state.copy_ || state.base_
-}
-
-/*#__PURE__*/
-export function shallowCopy(base: any, strict: StrictMode) {
-	if (isMap(base)) {
-		return new Map(base)
-	}
-	if (isSet(base)) {
-		return new Set(base)
-	}
-	if (Array.isArray(base)) return Array.prototype.slice.call(base)
-
-	const isPlain = isPlainObject(base)
-
-	if (strict === true || (strict === "class_only" && !isPlain)) {
-		// Perform a strict copy
-		const descriptors = Object.getOwnPropertyDescriptors(base)
-		delete descriptors[DRAFT_STATE as any]
-		let keys = Reflect.ownKeys(descriptors)
-		for (let i = 0; i < keys.length; i++) {
-			const key: any = keys[i]
-			const desc = descriptors[key]
-			if (desc.writable === false) {
-				desc.writable = true
-				desc.configurable = true
-			}
-			// like object.assign, we will read any _own_, get/set accessors. This helps in dealing
-			// with libraries that trap values, like mobx or vue
-			// unlike object.assign, non-enumerables will be copied as well
-			if (desc.get || desc.set)
-				descriptors[key] = {
-					configurable: true,
-					writable: true, // could live with !!desc.set as well here...
-					enumerable: desc.enumerable,
-					value: base[key]
-				}
-		}
-		return Object.create(getPrototypeOf(base), descriptors)
-	} else {
-		// perform a sloppy copy
-		const proto = getPrototypeOf(base)
-		if (proto !== null && isPlain) {
-			return {...base} // assumption: better inner class optimization than the assign below
-		}
-		const obj = Object.create(proto)
-		return Object.assign(obj, base)
-	}
-}
-
-/**
- * Freezes draftable objects. Returns the original object.
- * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.
- *
- * @param obj
- * @param deep
- */
-export function freeze<T>(obj: T, deep?: boolean): T
-export function freeze<T>(obj: any, deep: boolean = false): T {
-	if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj
-	if (getArchtype(obj) > 1 /* Map or Set */) {
-		Object.defineProperties(obj, {
-			set: dontMutateMethodOverride,
-			add: dontMutateMethodOverride,
-			clear: dontMutateMethodOverride,
-			delete: dontMutateMethodOverride
-		})
-	}
-	Object.freeze(obj)
-	if (deep)
-		// See #590, don't recurse into non-enumerable / Symbol properties when freezing
-		// So use Object.values (only string-like, enumerables) instead of each()
-		Object.values(obj).forEach(value => freeze(value, true))
-	return obj
-}
-
-function dontMutateFrozenCollections() {
-	die(2)
-}
-
-const dontMutateMethodOverride = {
-	value: dontMutateFrozenCollections
-}
-
-export function isFrozen(obj: any): boolean {
-	// Fast path: primitives and null/undefined are always "frozen"
-	if (obj === null || typeof obj !== "object") return true
-	return Object.isFrozen(obj)
-}
Index: de_modules/immer/src/utils/env.ts
===================================================================
--- node_modules/immer/src/utils/env.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-// Should be no imports here!
-
-/**
- * The sentinel value returned by producers to replace the draft with undefined.
- */
-export const NOTHING: unique symbol = Symbol.for("immer-nothing")
-
-/**
- * To let Immer treat your class instances as plain immutable objects
- * (albeit with a custom prototype), you must define either an instance property
- * or a static property on each of your custom classes.
- *
- * Otherwise, your class instance will never be drafted, which means it won't be
- * safe to mutate in a produce callback.
- */
-export const DRAFTABLE: unique symbol = Symbol.for("immer-draftable")
-
-export const DRAFT_STATE: unique symbol = Symbol.for("immer-state")
Index: de_modules/immer/src/utils/errors.ts
===================================================================
--- node_modules/immer/src/utils/errors.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-export const errors =
-	process.env.NODE_ENV !== "production"
-		? [
-				// All error codes, starting by 0:
-				function(plugin: string) {
-					return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \`enable${plugin}()\` when initializing your application.`
-				},
-				function(thing: string) {
-					return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`
-				},
-				"This object has been frozen and should not be mutated",
-				function(data: any) {
-					return (
-						"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " +
-						data
-					)
-				},
-				"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
-				"Immer forbids circular references",
-				"The first or second argument to `produce` must be a function",
-				"The third argument to `produce` must be a function or undefined",
-				"First argument to `createDraft` must be a plain object, an array, or an immerable object",
-				"First argument to `finishDraft` must be a draft returned by `createDraft`",
-				function(thing: string) {
-					return `'current' expects a draft, got: ${thing}`
-				},
-				"Object.defineProperty() cannot be used on an Immer draft",
-				"Object.setPrototypeOf() cannot be used on an Immer draft",
-				"Immer only supports deleting array indices",
-				"Immer only supports setting array indices and the 'length' property",
-				function(thing: string) {
-					return `'original' expects a draft, got: ${thing}`
-				}
-				// Note: if more errors are added, the errorOffset in Patches.ts should be increased
-				// See Patches.ts for additional errors
-		  ]
-		: []
-
-export function die(error: number, ...args: any[]): never {
-	if (process.env.NODE_ENV !== "production") {
-		const e = errors[error]
-		const msg = typeof e === "function" ? e.apply(null, args as any) : e
-		throw new Error(`[Immer] ${msg}`)
-	}
-	throw new Error(
-		`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`
-	)
-}
Index: de_modules/immer/src/utils/plugins.ts
===================================================================
--- node_modules/immer/src/utils/plugins.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-import {
-	ImmerState,
-	Patch,
-	Drafted,
-	ImmerBaseState,
-	AnyMap,
-	AnySet,
-	ArchType,
-	die
-} from "../internal"
-
-/** Plugin utilities */
-const plugins: {
-	Patches?: {
-		generatePatches_(
-			state: ImmerState,
-			basePath: PatchPath,
-			patches: Patch[],
-			inversePatches: Patch[]
-		): void
-		generateReplacementPatches_(
-			base: any,
-			replacement: any,
-			patches: Patch[],
-			inversePatches: Patch[]
-		): void
-		applyPatches_<T>(draft: T, patches: readonly Patch[]): T
-	}
-	MapSet?: {
-		proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T
-		proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T
-	}
-} = {}
-
-type Plugins = typeof plugins
-
-export function getPlugin<K extends keyof Plugins>(
-	pluginKey: K
-): Exclude<Plugins[K], undefined> {
-	const plugin = plugins[pluginKey]
-	if (!plugin) {
-		die(0, pluginKey)
-	}
-	// @ts-ignore
-	return plugin
-}
-
-export function loadPlugin<K extends keyof Plugins>(
-	pluginKey: K,
-	implementation: Plugins[K]
-): void {
-	if (!plugins[pluginKey]) plugins[pluginKey] = implementation
-}
-/** Map / Set plugin */
-
-export interface MapState extends ImmerBaseState {
-	type_: ArchType.Map
-	copy_: AnyMap | undefined
-	assigned_: Map<any, boolean> | undefined
-	base_: AnyMap
-	revoked_: boolean
-	draft_: Drafted<AnyMap, MapState>
-}
-
-export interface SetState extends ImmerBaseState {
-	type_: ArchType.Set
-	copy_: AnySet | undefined
-	base_: AnySet
-	drafts_: Map<any, Drafted> // maps the original value to the draft value in the new set
-	revoked_: boolean
-	draft_: Drafted<AnySet, SetState>
-}
-
-/** Patches plugin */
-
-export type PatchPath = (string | number)[]
Index: de_modules/internmap/LICENSE
===================================================================
--- node_modules/internmap/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/internmap/README.md
===================================================================
--- node_modules/internmap/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-# InternMap
-
-*For live examples, see https://observablehq.com/@mbostock/internmap.*
-
-If you use dates as keys in a JavaScript Map (or as values in a Set), you may be surprised that it won’t work as you expect.
-
-```js
-dateMap = new Map([
-  [new Date(Date.UTC(2001, 0, 1)), "red"],
-  [new Date(Date.UTC(2001, 0, 1)), "green"] // distinct key!
-])
-```
-```js
-dateMap.get(new Date(Date.UTC(2001, 0, 1))) // undefined!
-```
-
-That’s because Map uses the [SameValueZero algorithm](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness) to determine key equality: for two dates to be considered the same, they must be the same instance (the same object), not just the same moment in time. This is true of the equality operator, too.
-
-```js
-{
-  const date1 = new Date(Date.UTC(2001, 0, 1));
-  const date2 = new Date(Date.UTC(2001, 0, 1));
-  return date1 === date2; // false!
-}
-```
-
-You can avoid this issue by using primitive values such as numbers or strings as keys instead. But it’s tedious and easy to forget to coerce types. (You’ll also need to do the inverse type conversion when pulling keys out of the map, say when using *map*.keys or *map*.entries, or when iterating over the map. The inverse above is new Date(*key*). Also, if you forget to coerce your key to a number when using *map*.get, it’s easy not to notice because the map won’t throw an error; it’ll simply return undefined.)
-
-```js
-numberMap = new Map([[978307200000, "red"]])
-numberMap.get(978307200000) // "red"
-numberMap.get(new Date(978307200000)) // undefined; oops!
-```
-
-Wouldn’t it be easier if Map and Set “just worked” with dates? Or with any object that supports [*object*.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)?
-
-Enter **InternMap**. [*Interning*](https://en.wikipedia.org/wiki/String_interning) refers to storing only one copy of each distinct key. An InternMap considers two Date instances representing the same moment to be equal, storing only the first instance.
-
-```js
-map = new InternMap([
-  [new Date(Date.UTC(2001, 0, 1)), "red"],
-  [new Date(Date.UTC(2001, 0, 1)), "green"] // replaces previous entry
-])
-```
-```js
-map.get(new Date(Date.UTC(2001, 0, 1))) // "green"
-```
-```js
-[...map.keys()] // [2001-01-01]
-```
-
-InternMap extends Map, so you can simply drop it in whenever you’d prefer this behavior to the SameValueZero algorithm. Because InternMap calls *object*.valueOf only for non-primitive keys, note that you can pass primitive keys, too.
-
-```js
-map.get(978307200000) // "green"; this works too!
-```
-
-InternMap keeps only the first distinct key according to its associated primitive value. Avoid adding keys to the map with inconsistent types.
-
-```js
-map2 = new InternMap([
-  [978307200000, "red"], // danger!
-  [new Date(Date.UTC(2001, 0, 1)), "blue"]
-])
-```
-```js
-map2.get(new Date(Date.UTC(2001, 0, 1))) // "blue"; this still works…
-```
-```js
-[...map2.keys()] // [978307200000]; but the key isn’t a Date
-```
-
-While InternMap uses *object*.valueOf by default to compute the intern key, you can pass a key function as a second argument to the constructor to change the behavior. For example, if you use JSON.stringify, you can use arrays as compound keys (assuming that the array elements can be serialized to JSON).
-
-```js
-map3 = new InternMap([
-  [["foo", "bar"], 1],
-  [["foo", "baz"], 2],
-  [["goo", "bee"], 3]
-], JSON.stringify)
-```
-```js
-map3.get(["foo", "baz"]) // 2
-```
-
-There’s an **InternSet** class, too.
-
-```js
-set = new InternSet([
-  new Date(Date.UTC(2000, 0, 1)),
-  new Date(Date.UTC(2001, 0, 1)),
-  new Date(Date.UTC(2001, 0, 1))
-])
-```
Index: de_modules/internmap/dist/internmap.js
===================================================================
--- node_modules/internmap/dist/internmap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-// https://github.com/mbostock/internmap/ v2.0.3 Copyright 2021 Mike Bostock
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.internmap = {}));
-}(this, (function (exports) { 'use strict';
-
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(key);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
-
-exports.InternMap = InternMap;
-exports.InternSet = InternSet;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
Index: de_modules/internmap/dist/internmap.min.js
===================================================================
--- node_modules/internmap/dist/internmap.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-// https://github.com/mbostock/internmap/ v2.0.3 Copyright 2021 Mike Bostock
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).internmap={})}(this,(function(e){"use strict";class InternMap extends Map{constructor(e,t=r){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,n]of e)this.set(t,n)}get(e){return super.get(t(this,e))}has(e){return super.has(t(this,e))}set(e,t){return super.set(n(this,e),t)}delete(e){return super.delete(s(this,e))}}class InternSet extends Set{constructor(e,t=r){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const t of e)this.add(t)}has(e){return super.has(t(this,e))}add(e){return super.add(n(this,e))}delete(e){return super.delete(s(this,e))}}function t({_intern:e,_key:t},n){const s=t(n);return e.has(s)?e.get(s):n}function n({_intern:e,_key:t},n){const s=t(n);return e.has(s)?e.get(s):(e.set(s,n),n)}function s({_intern:e,_key:t},n){const s=t(n);return e.has(s)&&(n=e.get(s),e.delete(s)),n}function r(e){return null!==e&&"object"==typeof e?e.valueOf():e}e.InternMap=InternMap,e.InternSet=InternSet,Object.defineProperty(e,"__esModule",{value:!0})}));
Index: de_modules/internmap/package.json
===================================================================
--- node_modules/internmap/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-{
-  "name": "internmap",
-  "version": "2.0.3",
-  "description": "Map and Set with automatic key interning",
-  "homepage": "https://github.com/mbostock/internmap/",
-  "license": "ISC",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "https://bost.ocks.org/mike"
-  },
-  "type": "module",
-  "main": "src/index.js",
-  "module": "src/index.js",
-  "jsdelivr": "dist/internmap.min.js",
-  "unpkg": "dist/internmap.min.js",
-  "exports": {
-    "umd": "./dist/internmap.min.js",
-    "default": "./src/index.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mbostock/internmap.git"
-  },
-  "files": [
-    "dist/**/*.js",
-    "src/**/*.js"
-  ],
-  "scripts": {
-    "test": "mocha 'test/**/*-test.js' && eslint src test",
-    "prepublishOnly": "rm -rf dist && yarn test && rollup -c",
-    "postpublish": "git push && git push --tags"
-  },
-  "sideEffects": false,
-  "devDependencies": {
-    "eslint": "^7.32.0",
-    "mocha": "^9.1.1",
-    "rollup": "^2.56.3",
-    "rollup-plugin-terser": "^7.0.2"
-  },
-  "engines": {
-    "node": ">=12"
-  }
-}
Index: de_modules/internmap/src/index.js
===================================================================
--- node_modules/internmap/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-export class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-
-export class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-
-function intern_get({_intern, _key}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-
-function intern_set({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-
-function intern_delete({_intern, _key}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(key);
-    _intern.delete(key);
-  }
-  return value;
-}
-
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
Index: de_modules/nanoid/LICENSE
===================================================================
--- node_modules/nanoid/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-The MIT License (MIT)
-
-Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/nanoid/README.md
===================================================================
--- node_modules/nanoid/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-# Nano ID
-
-<img src="https://ai.github.io/nanoid/logo.svg" align="right"
-     alt="Nano ID logo by Anton Lovchikov" width="180" height="94">
-
-**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md)
-
-A tiny, secure, URL-friendly, unique string ID generator for JavaScript.
-
-> “An amazing level of senseless perfectionism,
-> which is simply impossible not to respect.”
-
-* **Small.** 130 bytes (minified and gzipped). No dependencies.
-  [Size Limit] controls the size.
-* **Fast.** It is 2 times faster than UUID.
-* **Safe.** It uses hardware random generator. Can be used in clusters.
-* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`).
-  So ID size was reduced from 36 to 21 symbols.
-* **Portable.** Nano ID was ported
-  to [20 programming languages](#other-programming-languages).
-
-```js
-import { nanoid } from 'nanoid'
-model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
-```
-
-Supports modern browsers, IE [with Babel], Node.js and React Native.
-
-[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/
-[with Babel]:  https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/
-[Size Limit]:  https://github.com/ai/size-limit
-
-<a href="https://evilmartians.com/?utm_source=nanoid">
-  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
-       alt="Sponsored by Evil Martians" width="236" height="54">
-</a>
-
-## Docs
-Read full docs **[here](https://github.com/ai/nanoid#readme)**.
Index: de_modules/nanoid/async/index.browser.cjs
===================================================================
--- node_modules/nanoid/async/index.browser.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes))
-
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  // First, a bitmask is necessary to generate the ID. The bitmask makes bytes
-  // values closer to the alphabet size. The bitmask calculates the closest
-  // `2^31 - 1` number, which exceeds the alphabet size.
-  // For example, the bitmask for the alphabet size 30 is 31 (00011111).
-  // `Math.clz32` is not used, because it is not available in browsers.
-  let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
-  // Though, the bitmask solution is not perfect since the bytes exceeding
-  // the alphabet size are refused. Therefore, to reliably generate the ID,
-  // the random bytes redundancy has to be satisfied.
-
-  // Note: every hardware random generator call is performance expensive,
-  // because the system call for entropy collection takes a lot of time.
-  // So, to avoid additional system calls, extra bytes are requested in advance.
-
-  // Next, a step determines how many random bytes to generate.
-  // The number of random bytes gets decided upon the ID size, mask,
-  // alphabet size, and magic number 1.6 (using 1.6 peaks at performance
-  // according to benchmarks).
-
-  // `-~f => Math.ceil(f)` if f is a float
-  // `-~i => i + 1` if i is an integer
-  let step = -~((1.6 * mask * defaultSize) / alphabet.length)
-
-  return async (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = crypto.getRandomValues(new Uint8Array(step))
-      // A compact alternative for `for (var i = 0; i < step; i++)`.
-      let i = step | 0
-      while (i--) {
-        // Adding `|| ''` refuses a random byte that exceeds the alphabet size.
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-
-let nanoid = async (size = 21) => {
-  let id = ''
-  let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))
-
-  // A compact alternative for `for (var i = 0; i < step; i++)`.
-  while (size--) {
-    // It is incorrect to use bytes exceeding the alphabet size.
-    // The following mask reduces the random byte in the 0-255 value
-    // range to the 0-63 value range. Therefore, adding hacks, such
-    // as empty string fallback or magic numbers, is unneccessary because
-    // the bitmask trims bytes down to the alphabet size.
-    let byte = bytes[size] & 63
-    if (byte < 36) {
-      // `0-9a-z`
-      id += byte.toString(36)
-    } else if (byte < 62) {
-      // `A-Z`
-      id += (byte - 26).toString(36).toUpperCase()
-    } else if (byte < 63) {
-      id += '_'
-    } else {
-      id += '-'
-    }
-  }
-  return id
-}
-
-module.exports = { nanoid, customAlphabet, random }
Index: de_modules/nanoid/async/index.browser.js
===================================================================
--- node_modules/nanoid/async/index.browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes))
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
-  let step = -~((1.6 * mask * defaultSize) / alphabet.length)
-  return async (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = crypto.getRandomValues(new Uint8Array(step))
-      let i = step | 0
-      while (i--) {
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-let nanoid = async (size = 21) => {
-  let id = ''
-  let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))
-  while (size--) {
-    let byte = bytes[size] & 63
-    if (byte < 36) {
-      id += byte.toString(36)
-    } else if (byte < 62) {
-      id += (byte - 26).toString(36).toUpperCase()
-    } else if (byte < 63) {
-      id += '_'
-    } else {
-      id += '-'
-    }
-  }
-  return id
-}
-export { nanoid, customAlphabet, random }
Index: de_modules/nanoid/async/index.cjs
===================================================================
--- node_modules/nanoid/async/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-let crypto = require('crypto')
-
-let { urlAlphabet } = require('../url-alphabet/index.cjs')
-
-// `crypto.randomFill()` is a little faster than `crypto.randomBytes()`,
-// because it is possible to use in combination with `Buffer.allocUnsafe()`.
-let random = bytes =>
-  new Promise((resolve, reject) => {
-    // `Buffer.allocUnsafe()` is faster because it doesn’t flush the memory.
-    // Memory flushing is unnecessary since the buffer allocation itself resets
-    // the memory with the new bytes.
-    crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => {
-      if (err) {
-        reject(err)
-      } else {
-        resolve(buf)
-      }
-    })
-  })
-
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  // First, a bitmask is necessary to generate the ID. The bitmask makes bytes
-  // values closer to the alphabet size. The bitmask calculates the closest
-  // `2^31 - 1` number, which exceeds the alphabet size.
-  // For example, the bitmask for the alphabet size 30 is 31 (00011111).
-  let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
-  // Though, the bitmask solution is not perfect since the bytes exceeding
-  // the alphabet size are refused. Therefore, to reliably generate the ID,
-  // the random bytes redundancy has to be satisfied.
-
-  // Note: every hardware random generator call is performance expensive,
-  // because the system call for entropy collection takes a lot of time.
-  // So, to avoid additional system calls, extra bytes are requested in advance.
-
-  // Next, a step determines how many random bytes to generate.
-  // The number of random bytes gets decided upon the ID size, mask,
-  // alphabet size, and magic number 1.6 (using 1.6 peaks at performance
-  // according to benchmarks).
-  let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
-
-  let tick = (id, size = defaultSize) =>
-    random(step).then(bytes => {
-      // A compact alternative for `for (var i = 0; i < step; i++)`.
-      let i = step
-      while (i--) {
-        // Adding `|| ''` refuses a random byte that exceeds the alphabet size.
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length >= size) return id
-      }
-      return tick(id, size)
-    })
-
-  return size => tick('', size)
-}
-
-let nanoid = (size = 21) =>
-  random((size |= 0)).then(bytes => {
-    let id = ''
-    // A compact alternative for `for (var i = 0; i < step; i++)`.
-    while (size--) {
-      // It is incorrect to use bytes exceeding the alphabet size.
-      // The following mask reduces the random byte in the 0-255 value
-      // range to the 0-63 value range. Therefore, adding hacks, such
-      // as empty string fallback or magic numbers, is unneccessary because
-      // the bitmask trims bytes down to the alphabet size.
-      id += urlAlphabet[bytes[size] & 63]
-    }
-    return id
-  })
-
-module.exports = { nanoid, customAlphabet, random }
Index: de_modules/nanoid/async/index.d.ts
===================================================================
--- node_modules/nanoid/async/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/**
- * Generate secure URL-friendly unique ID. The non-blocking version.
- *
- * By default, the ID will have 21 symbols to have a collision probability
- * similar to UUID v4.
- *
- * ```js
- * import { nanoid } from 'nanoid/async'
- * nanoid().then(id => {
- *   model.id = id
- * })
- * ```
- *
- * @param size Size of the ID. The default size is 21.
- * @returns A promise with a random string.
- */
-export function nanoid(size?: number): Promise<string>
-
-/**
- * A low-level function.
- * Generate secure unique ID with custom alphabet. The non-blocking version.
- *
- * Alphabet must contain 256 symbols or less. Otherwise, the generator
- * will not be secure.
- *
- * @param alphabet Alphabet used to generate the ID.
- * @param defaultSize Size of the ID. The default size is 21.
- * @returns A function that returns a promise with a random string.
- *
- * ```js
- * import { customAlphabet } from 'nanoid/async'
- * const nanoid = customAlphabet('0123456789абвгдеё', 5)
- * nanoid().then(id => {
- *   model.id = id //=> "8ё56а"
- * })
- * ```
- */
-export function customAlphabet(
-  alphabet: string,
-  defaultSize?: number
-): (size?: number) => Promise<string>
-
-/**
- * Generate an array of random bytes collected from hardware noise.
- *
- * ```js
- * import { random } from 'nanoid/async'
- * random(5).then(bytes => {
- *   bytes //=> [10, 67, 212, 67, 89]
- * })
- * ```
- *
- * @param bytes Size of the array.
- * @returns A promise with a random bytes array.
- */
-export function random(bytes: number): Promise<Uint8Array>
Index: de_modules/nanoid/async/index.js
===================================================================
--- node_modules/nanoid/async/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import crypto from 'crypto'
-import { urlAlphabet } from '../url-alphabet/index.js'
-let random = bytes =>
-  new Promise((resolve, reject) => {
-    crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => {
-      if (err) {
-        reject(err)
-      } else {
-        resolve(buf)
-      }
-    })
-  })
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
-  let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
-  let tick = (id, size = defaultSize) =>
-    random(step).then(bytes => {
-      let i = step
-      while (i--) {
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length >= size) return id
-      }
-      return tick(id, size)
-    })
-  return size => tick('', size)
-}
-let nanoid = (size = 21) =>
-  random((size |= 0)).then(bytes => {
-    let id = ''
-    while (size--) {
-      id += urlAlphabet[bytes[size] & 63]
-    }
-    return id
-  })
-export { nanoid, customAlphabet, random }
Index: de_modules/nanoid/async/index.native.js
===================================================================
--- node_modules/nanoid/async/index.native.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { getRandomBytesAsync } from 'expo-random'
-import { urlAlphabet } from '../url-alphabet/index.js'
-let random = getRandomBytesAsync
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
-  let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
-  let tick = (id, size = defaultSize) =>
-    random(step).then(bytes => {
-      let i = step
-      while (i--) {
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length >= size) return id
-      }
-      return tick(id, size)
-    })
-  return size => tick('', size)
-}
-let nanoid = (size = 21) =>
-  random((size |= 0)).then(bytes => {
-    let id = ''
-    while (size--) {
-      id += urlAlphabet[bytes[size] & 63]
-    }
-    return id
-  })
-export { nanoid, customAlphabet, random }
Index: de_modules/nanoid/async/package.json
===================================================================
--- node_modules/nanoid/async/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-{
-  "type": "module",
-  "main": "index.cjs",
-  "module": "index.js",
-  "react-native": {
-    "./index.js": "./index.native.js"
-  },
-  "browser": {
-    "./index.js": "./index.browser.js",
-    "./index.cjs": "./index.browser.cjs"
-  }
-}
Index: de_modules/nanoid/bin/nanoid.cjs
===================================================================
--- node_modules/nanoid/bin/nanoid.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-#!/usr/bin/env node
-
-let { nanoid, customAlphabet } = require('..')
-
-function print(msg) {
-  process.stdout.write(msg + '\n')
-}
-
-function error(msg) {
-  process.stderr.write(msg + '\n')
-  process.exit(1)
-}
-
-if (process.argv.includes('--help') || process.argv.includes('-h')) {
-  print(`
-  Usage
-    $ nanoid [options]
-
-  Options
-    -s, --size       Generated ID size
-    -a, --alphabet   Alphabet to use
-    -h, --help       Show this help
-
-  Examples
-    $ nanoid --s 15
-    S9sBF77U6sDB8Yg
-
-    $ nanoid --size 10 --alphabet abc
-    bcabababca`)
-  process.exit()
-}
-
-let alphabet, size
-for (let i = 2; i < process.argv.length; i++) {
-  let arg = process.argv[i]
-  if (arg === '--size' || arg === '-s') {
-    size = Number(process.argv[i + 1])
-    i += 1
-    if (Number.isNaN(size) || size <= 0) {
-      error('Size must be positive integer')
-    }
-  } else if (arg === '--alphabet' || arg === '-a') {
-    alphabet = process.argv[i + 1]
-    i += 1
-  } else {
-    error('Unknown argument ' + arg)
-  }
-}
-
-if (alphabet) {
-  let customNanoid = customAlphabet(alphabet, size)
-  print(customNanoid())
-} else {
-  print(nanoid(size))
-}
Index: de_modules/nanoid/index.browser.cjs
===================================================================
--- node_modules/nanoid/index.browser.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-// This file replaces `index.js` in bundlers like webpack or Rollup,
-// according to `browser` config in `package.json`.
-
-let { urlAlphabet } = require('./url-alphabet/index.cjs')
-
-let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))
-
-let customRandom = (alphabet, defaultSize, getRandom) => {
-  // First, a bitmask is necessary to generate the ID. The bitmask makes bytes
-  // values closer to the alphabet size. The bitmask calculates the closest
-  // `2^31 - 1` number, which exceeds the alphabet size.
-  // For example, the bitmask for the alphabet size 30 is 31 (00011111).
-  // `Math.clz32` is not used, because it is not available in browsers.
-  let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
-  // Though, the bitmask solution is not perfect since the bytes exceeding
-  // the alphabet size are refused. Therefore, to reliably generate the ID,
-  // the random bytes redundancy has to be satisfied.
-
-  // Note: every hardware random generator call is performance expensive,
-  // because the system call for entropy collection takes a lot of time.
-  // So, to avoid additional system calls, extra bytes are requested in advance.
-
-  // Next, a step determines how many random bytes to generate.
-  // The number of random bytes gets decided upon the ID size, mask,
-  // alphabet size, and magic number 1.6 (using 1.6 peaks at performance
-  // according to benchmarks).
-
-  // `-~f => Math.ceil(f)` if f is a float
-  // `-~i => i + 1` if i is an integer
-  let step = -~((1.6 * mask * defaultSize) / alphabet.length)
-
-  return (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = getRandom(step)
-      // A compact alternative for `for (var i = 0; i < step; i++)`.
-      let j = step | 0
-      while (j--) {
-        // Adding `|| ''` refuses a random byte that exceeds the alphabet size.
-        id += alphabet[bytes[j] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-
-let customAlphabet = (alphabet, size = 21) =>
-  customRandom(alphabet, size, random)
-
-let nanoid = (size = 21) =>
-  crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
-    // It is incorrect to use bytes exceeding the alphabet size.
-    // The following mask reduces the random byte in the 0-255 value
-    // range to the 0-63 value range. Therefore, adding hacks, such
-    // as empty string fallback or magic numbers, is unneccessary because
-    // the bitmask trims bytes down to the alphabet size.
-    byte &= 63
-    if (byte < 36) {
-      // `0-9a-z`
-      id += byte.toString(36)
-    } else if (byte < 62) {
-      // `A-Z`
-      id += (byte - 26).toString(36).toUpperCase()
-    } else if (byte > 62) {
-      id += '-'
-    } else {
-      id += '_'
-    }
-    return id
-  }, '')
-
-module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random }
Index: de_modules/nanoid/index.browser.js
===================================================================
--- node_modules/nanoid/index.browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { urlAlphabet } from './url-alphabet/index.js'
-let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))
-let customRandom = (alphabet, defaultSize, getRandom) => {
-  let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
-  let step = -~((1.6 * mask * defaultSize) / alphabet.length)
-  return (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = getRandom(step)
-      let j = step | 0
-      while (j--) {
-        id += alphabet[bytes[j] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-let customAlphabet = (alphabet, size = 21) =>
-  customRandom(alphabet, size, random)
-let nanoid = (size = 21) =>
-  crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
-    byte &= 63
-    if (byte < 36) {
-      id += byte.toString(36)
-    } else if (byte < 62) {
-      id += (byte - 26).toString(36).toUpperCase()
-    } else if (byte > 62) {
-      id += '-'
-    } else {
-      id += '_'
-    }
-    return id
-  }, '')
-export { nanoid, customAlphabet, customRandom, urlAlphabet, random }
Index: de_modules/nanoid/index.cjs
===================================================================
--- node_modules/nanoid/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-let crypto = require('crypto')
-
-let { urlAlphabet } = require('./url-alphabet/index.cjs')
-
-// It is best to make fewer, larger requests to the crypto module to
-// avoid system call overhead. So, random numbers are generated in a
-// pool. The pool is a Buffer that is larger than the initial random
-// request size by this multiplier. The pool is enlarged if subsequent
-// requests exceed the maximum buffer size.
-const POOL_SIZE_MULTIPLIER = 128
-let pool, poolOffset
-
-let fillPool = bytes => {
-  if (!pool || pool.length < bytes) {
-    pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)
-    crypto.randomFillSync(pool)
-    poolOffset = 0
-  } else if (poolOffset + bytes > pool.length) {
-    crypto.randomFillSync(pool)
-    poolOffset = 0
-  }
-  poolOffset += bytes
-}
-
-let random = bytes => {
-  // `|=` convert `bytes` to number to prevent `valueOf` abusing and pool pollution
-  fillPool((bytes |= 0))
-  return pool.subarray(poolOffset - bytes, poolOffset)
-}
-
-let customRandom = (alphabet, defaultSize, getRandom) => {
-  // First, a bitmask is necessary to generate the ID. The bitmask makes bytes
-  // values closer to the alphabet size. The bitmask calculates the closest
-  // `2^31 - 1` number, which exceeds the alphabet size.
-  // For example, the bitmask for the alphabet size 30 is 31 (00011111).
-  let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
-  // Though, the bitmask solution is not perfect since the bytes exceeding
-  // the alphabet size are refused. Therefore, to reliably generate the ID,
-  // the random bytes redundancy has to be satisfied.
-
-  // Note: every hardware random generator call is performance expensive,
-  // because the system call for entropy collection takes a lot of time.
-  // So, to avoid additional system calls, extra bytes are requested in advance.
-
-  // Next, a step determines how many random bytes to generate.
-  // The number of random bytes gets decided upon the ID size, mask,
-  // alphabet size, and magic number 1.6 (using 1.6 peaks at performance
-  // according to benchmarks).
-  let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
-
-  return (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = getRandom(step)
-      // A compact alternative for `for (let i = 0; i < step; i++)`.
-      let i = step
-      while (i--) {
-        // Adding `|| ''` refuses a random byte that exceeds the alphabet size.
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-
-let customAlphabet = (alphabet, size = 21) =>
-  customRandom(alphabet, size, random)
-
-let nanoid = (size = 21) => {
-  // `|=` convert `size` to number to prevent `valueOf` abusing and pool pollution
-  fillPool((size |= 0))
-  let id = ''
-  // We are reading directly from the random pool to avoid creating new array
-  for (let i = poolOffset - size; i < poolOffset; i++) {
-    // It is incorrect to use bytes exceeding the alphabet size.
-    // The following mask reduces the random byte in the 0-255 value
-    // range to the 0-63 value range. Therefore, adding hacks, such
-    // as empty string fallback or magic numbers, is unneccessary because
-    // the bitmask trims bytes down to the alphabet size.
-    id += urlAlphabet[pool[i] & 63]
-  }
-  return id
-}
-
-module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random }
Index: de_modules/nanoid/index.d.cts
===================================================================
--- node_modules/nanoid/index.d.cts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-/**
- * Generate secure URL-friendly unique ID.
- *
- * By default, the ID will have 21 symbols to have a collision probability
- * similar to UUID v4.
- *
- * ```js
- * import { nanoid } from 'nanoid'
- * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
- * ```
- *
- * @param size Size of the ID. The default size is 21.
- * @returns A random string.
- */
-export function nanoid(size?: number): string
-
-/**
- * Generate secure unique ID with custom alphabet.
- *
- * Alphabet must contain 256 symbols or less. Otherwise, the generator
- * will not be secure.
- *
- * @param alphabet Alphabet used to generate the ID.
- * @param defaultSize Size of the ID. The default size is 21.
- * @returns A random string generator.
- *
- * ```js
- * const { customAlphabet } = require('nanoid')
- * const nanoid = customAlphabet('0123456789абвгдеё', 5)
- * nanoid() //=> "8ё56а"
- * ```
- */
-export function customAlphabet(
-  alphabet: string,
-  defaultSize?: number
-): (size?: number) => string
-
-/**
- * Generate unique ID with custom random generator and alphabet.
- *
- * Alphabet must contain 256 symbols or less. Otherwise, the generator
- * will not be secure.
- *
- * ```js
- * import { customRandom } from 'nanoid/format'
- *
- * const nanoid = customRandom('abcdef', 5, size => {
- *   const random = []
- *   for (let i = 0; i < size; i++) {
- *     random.push(randomByte())
- *   }
- *   return random
- * })
- *
- * nanoid() //=> "fbaef"
- * ```
- *
- * @param alphabet Alphabet used to generate a random string.
- * @param size Size of the random string.
- * @param random A random bytes generator.
- * @returns A random string generator.
- */
-export function customRandom(
-  alphabet: string,
-  size: number,
-  random: (bytes: number) => Uint8Array
-): () => string
-
-/**
- * URL safe symbols.
- *
- * ```js
- * import { urlAlphabet } from 'nanoid'
- * const nanoid = customAlphabet(urlAlphabet, 10)
- * nanoid() //=> "Uakgb_J5m9"
- * ```
- */
-export const urlAlphabet: string
-
-/**
- * Generate an array of random bytes collected from hardware noise.
- *
- * ```js
- * import { customRandom, random } from 'nanoid'
- * const nanoid = customRandom("abcdef", 5, random)
- * ```
- *
- * @param bytes Size of the array.
- * @returns An array of random bytes.
- */
-export function random(bytes: number): Uint8Array
Index: de_modules/nanoid/index.d.ts
===================================================================
--- node_modules/nanoid/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-/**
- * Generate secure URL-friendly unique ID.
- *
- * By default, the ID will have 21 symbols to have a collision probability
- * similar to UUID v4.
- *
- * ```js
- * import { nanoid } from 'nanoid'
- * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
- * ```
- *
- * @param size Size of the ID. The default size is 21.
- * @returns A random string.
- */
-export function nanoid(size?: number): string
-
-/**
- * Generate secure unique ID with custom alphabet.
- *
- * Alphabet must contain 256 symbols or less. Otherwise, the generator
- * will not be secure.
- *
- * @param alphabet Alphabet used to generate the ID.
- * @param defaultSize Size of the ID. The default size is 21.
- * @returns A random string generator.
- *
- * ```js
- * const { customAlphabet } = require('nanoid')
- * const nanoid = customAlphabet('0123456789абвгдеё', 5)
- * nanoid() //=> "8ё56а"
- * ```
- */
-export function customAlphabet(
-  alphabet: string,
-  defaultSize?: number
-): (size?: number) => string
-
-/**
- * Generate unique ID with custom random generator and alphabet.
- *
- * Alphabet must contain 256 symbols or less. Otherwise, the generator
- * will not be secure.
- *
- * ```js
- * import { customRandom } from 'nanoid/format'
- *
- * const nanoid = customRandom('abcdef', 5, size => {
- *   const random = []
- *   for (let i = 0; i < size; i++) {
- *     random.push(randomByte())
- *   }
- *   return random
- * })
- *
- * nanoid() //=> "fbaef"
- * ```
- *
- * @param alphabet Alphabet used to generate a random string.
- * @param size Size of the random string.
- * @param random A random bytes generator.
- * @returns A random string generator.
- */
-export function customRandom(
-  alphabet: string,
-  size: number,
-  random: (bytes: number) => Uint8Array
-): () => string
-
-/**
- * URL safe symbols.
- *
- * ```js
- * import { urlAlphabet } from 'nanoid'
- * const nanoid = customAlphabet(urlAlphabet, 10)
- * nanoid() //=> "Uakgb_J5m9"
- * ```
- */
-export const urlAlphabet: string
-
-/**
- * Generate an array of random bytes collected from hardware noise.
- *
- * ```js
- * import { customRandom, random } from 'nanoid'
- * const nanoid = customRandom("abcdef", 5, random)
- * ```
- *
- * @param bytes Size of the array.
- * @returns An array of random bytes.
- */
-export function random(bytes: number): Uint8Array
Index: de_modules/nanoid/index.js
===================================================================
--- node_modules/nanoid/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import crypto from 'crypto'
-import { urlAlphabet } from './url-alphabet/index.js'
-const POOL_SIZE_MULTIPLIER = 128
-let pool, poolOffset
-let fillPool = bytes => {
-  if (!pool || pool.length < bytes) {
-    pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)
-    crypto.randomFillSync(pool)
-    poolOffset = 0
-  } else if (poolOffset + bytes > pool.length) {
-    crypto.randomFillSync(pool)
-    poolOffset = 0
-  }
-  poolOffset += bytes
-}
-let random = bytes => {
-  fillPool((bytes |= 0))
-  return pool.subarray(poolOffset - bytes, poolOffset)
-}
-let customRandom = (alphabet, defaultSize, getRandom) => {
-  let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
-  let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
-  return (size = defaultSize) => {
-    let id = ''
-    while (true) {
-      let bytes = getRandom(step)
-      let i = step
-      while (i--) {
-        id += alphabet[bytes[i] & mask] || ''
-        if (id.length === size) return id
-      }
-    }
-  }
-}
-let customAlphabet = (alphabet, size = 21) =>
-  customRandom(alphabet, size, random)
-let nanoid = (size = 21) => {
-  fillPool((size |= 0))
-  let id = ''
-  for (let i = poolOffset - size; i < poolOffset; i++) {
-    id += urlAlphabet[pool[i] & 63]
-  }
-  return id
-}
-export { nanoid, customAlphabet, customRandom, urlAlphabet, random }
Index: de_modules/nanoid/nanoid.js
===================================================================
--- node_modules/nanoid/nanoid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?"_":"-"),"");
Index: de_modules/nanoid/non-secure/index.cjs
===================================================================
--- node_modules/nanoid/non-secure/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-// This alphabet uses `A-Za-z0-9_-` symbols.
-// The order of characters is optimized for better gzip and brotli compression.
-// References to the same file (works both for gzip and brotli):
-// `'use`, `andom`, and `rict'`
-// References to the brotli default dictionary:
-// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`
-let urlAlphabet =
-  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
-
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  return (size = defaultSize) => {
-    let id = ''
-    // A compact alternative for `for (var i = 0; i < step; i++)`.
-    let i = size | 0
-    while (i--) {
-      // `| 0` is more compact and faster than `Math.floor()`.
-      id += alphabet[(Math.random() * alphabet.length) | 0]
-    }
-    return id
-  }
-}
-
-let nanoid = (size = 21) => {
-  let id = ''
-  // A compact alternative for `for (var i = 0; i < step; i++)`.
-  let i = size | 0
-  while (i--) {
-    // `| 0` is more compact and faster than `Math.floor()`.
-    id += urlAlphabet[(Math.random() * 64) | 0]
-  }
-  return id
-}
-
-module.exports = { nanoid, customAlphabet }
Index: de_modules/nanoid/non-secure/index.d.ts
===================================================================
--- node_modules/nanoid/non-secure/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/**
- * Generate URL-friendly unique ID. This method uses the non-secure
- * predictable random generator with bigger collision probability.
- *
- * ```js
- * import { nanoid } from 'nanoid/non-secure'
- * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
- * ```
- *
- * @param size Size of the ID. The default size is 21.
- * @returns A random string.
- */
-export function nanoid(size?: number): string
-
-/**
- * Generate a unique ID based on a custom alphabet.
- * This method uses the non-secure predictable random generator
- * with bigger collision probability.
- *
- * @param alphabet Alphabet used to generate the ID.
- * @param defaultSize Size of the ID. The default size is 21.
- * @returns A random string generator.
- *
- * ```js
- * import { customAlphabet } from 'nanoid/non-secure'
- * const nanoid = customAlphabet('0123456789абвгдеё', 5)
- * model.id = //=> "8ё56а"
- * ```
- */
-export function customAlphabet(
-  alphabet: string,
-  defaultSize?: number
-): (size?: number) => string
Index: de_modules/nanoid/non-secure/index.js
===================================================================
--- node_modules/nanoid/non-secure/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-let urlAlphabet =
-  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
-let customAlphabet = (alphabet, defaultSize = 21) => {
-  return (size = defaultSize) => {
-    let id = ''
-    let i = size | 0
-    while (i--) {
-      id += alphabet[(Math.random() * alphabet.length) | 0]
-    }
-    return id
-  }
-}
-let nanoid = (size = 21) => {
-  let id = ''
-  let i = size | 0
-  while (i--) {
-    id += urlAlphabet[(Math.random() * 64) | 0]
-  }
-  return id
-}
-export { nanoid, customAlphabet }
Index: de_modules/nanoid/non-secure/package.json
===================================================================
--- node_modules/nanoid/non-secure/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "type": "module",
-  "main": "index.cjs",
-  "module": "index.js",
-  "react-native": "index.js"
-}
Index: de_modules/nanoid/package.json
===================================================================
--- node_modules/nanoid/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-{
-  "name": "nanoid",
-  "version": "3.3.11",
-  "description": "A tiny (116 bytes), secure URL-friendly unique string ID generator",
-  "keywords": [
-    "uuid",
-    "random",
-    "id",
-    "url"
-  ],
-  "engines": {
-    "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-  },
-  "funding": [
-    {
-      "type": "github",
-      "url": "https://github.com/sponsors/ai"
-    }
-  ],
-  "author": "Andrey Sitnik <andrey@sitnik.ru>",
-  "license": "MIT",
-  "repository": "ai/nanoid",
-  "browser": {
-    "./index.js": "./index.browser.js",
-    "./async/index.js": "./async/index.browser.js",
-    "./async/index.cjs": "./async/index.browser.cjs",
-    "./index.cjs": "./index.browser.cjs"
-  },
-  "react-native": "index.js",
-  "bin": "./bin/nanoid.cjs",
-  "sideEffects": false,
-  "types": "./index.d.ts",
-  "type": "module",
-  "main": "index.cjs",
-  "module": "index.js",
-  "exports": {
-    ".": {
-      "react-native": "./index.browser.js",
-      "browser": "./index.browser.js",
-      "require": {
-        "types": "./index.d.cts",
-        "default": "./index.cjs"
-      },
-      "import": {
-        "types": "./index.d.ts",
-        "default": "./index.js"
-      },
-      "default": "./index.js"
-    },
-    "./package.json": "./package.json",
-    "./async/package.json": "./async/package.json",
-    "./async": {
-      "browser": "./async/index.browser.js",
-      "require": {
-        "types": "./index.d.cts",
-        "default": "./async/index.cjs"
-      },
-      "import": {
-        "types": "./index.d.ts",
-        "default": "./async/index.js"
-      },
-      "default": "./async/index.js"
-    },
-    "./non-secure/package.json": "./non-secure/package.json",
-    "./non-secure": {
-      "require": {
-        "types": "./index.d.cts",
-        "default": "./non-secure/index.cjs"
-      },
-      "import": {
-        "types": "./index.d.ts",
-        "default": "./non-secure/index.js"
-      },
-      "default": "./non-secure/index.js"
-    },
-    "./url-alphabet/package.json": "./url-alphabet/package.json",
-    "./url-alphabet": {
-      "require": {
-        "types": "./index.d.cts",
-        "default": "./url-alphabet/index.cjs"
-      },
-      "import": {
-        "types": "./index.d.ts",
-        "default": "./url-alphabet/index.js"
-      },
-      "default": "./url-alphabet/index.js"
-    }
-  }
-}
Index: de_modules/nanoid/url-alphabet/index.cjs
===================================================================
--- node_modules/nanoid/url-alphabet/index.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-// This alphabet uses `A-Za-z0-9_-` symbols.
-// The order of characters is optimized for better gzip and brotli compression.
-// Same as in non-secure/index.js
-let urlAlphabet =
-  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
-
-module.exports = { urlAlphabet }
Index: de_modules/nanoid/url-alphabet/index.js
===================================================================
--- node_modules/nanoid/url-alphabet/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-let urlAlphabet =
-  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
-export { urlAlphabet }
Index: de_modules/nanoid/url-alphabet/package.json
===================================================================
--- node_modules/nanoid/url-alphabet/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-{
-  "type": "module",
-  "main": "index.cjs",
-  "module": "index.js",
-  "react-native": "index.js"
-}
Index: de_modules/node-releases/LICENSE
===================================================================
--- node_modules/node-releases/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License
-
-Copyright (c) 2017 Sergey Rubanov (https://github.com/chicoxyzzy)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
Index: de_modules/node-releases/README.md
===================================================================
--- node_modules/node-releases/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# Node.js releases data
-
-All data is located in `data` directory.
-
-`data/processed` contains `envs.json` with node.js releases data preprocessed to be used by [Browserslist](https://github.com/ai/browserslist) and other projects. Each version in this file contains only necessary info: version, release date, LTS flag/name, and security flag.
-
-`data/release-schedule` contains `release-schedule.json` with node.js releases date and end of life date.
-
-## Installation
-```bash
-npm install node-releases
-```
Index: de_modules/node-releases/data/processed/envs.json
===================================================================
--- node_modules/node-releases/data/processed/envs.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.16.0","date":"2024-07-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.17.0","date":"2024-08-21","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.18.0","date":"2024-10-03","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.19.0","date":"2025-03-13","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.6.0","date":"2024-08-06","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.7.0","date":"2024-08-21","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.8.0","date":"2024-09-03","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.9.0","date":"2024-09-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.10.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.11.0","date":"2024-10-29","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.12.0","date":"2024-12-02","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.13.0","date":"2025-01-06","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.14.0","date":"2025-02-11","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.15.0","date":"2025-04-22","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.16.0","date":"2025-05-20","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.17.0","date":"2025-06-24","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.18.0","date":"2025-07-31","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.19.0","date":"2025-08-28","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.20.0","date":"2025-09-24","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.21.0","date":"2025-10-20","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"23.0.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.9.202.26"},{"name":"nodejs","version":"23.1.0","date":"2024-10-24","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.2.0","date":"2024-11-11","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.3.0","date":"2024-11-20","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.4.0","date":"2024-12-10","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.5.0","date":"2024-12-19","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.6.0","date":"2025-01-07","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.7.0","date":"2025-01-30","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.8.0","date":"2025-02-13","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.9.0","date":"2025-02-26","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.10.0","date":"2025-03-13","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.11.0","date":"2025-04-01","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"24.0.0","date":"2025-05-06","lts":false,"security":false,"v8":"13.6.233.8"},{"name":"nodejs","version":"24.1.0","date":"2025-05-20","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.2.0","date":"2025-06-09","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.3.0","date":"2025-06-24","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.4.0","date":"2025-07-09","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.5.0","date":"2025-07-31","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.6.0","date":"2025-08-14","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.7.0","date":"2025-08-27","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.8.0","date":"2025-09-10","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.9.0","date":"2025-09-25","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.10.0","date":"2025-10-08","lts":false,"security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"24.11.0","date":"2025-10-28","lts":"Krypton","security":false,"v8":"13.6.233.10"},{"name":"nodejs","version":"25.0.0","date":"2025-10-15","lts":false,"security":false,"v8":"14.1.146.11"},{"name":"nodejs","version":"25.1.0","date":"2025-10-28","lts":false,"security":false,"v8":"14.1.146.11"}]
Index: de_modules/node-releases/data/release-schedule/release-schedule.json
===================================================================
--- node_modules/node-releases/data/release-schedule/release-schedule.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":"Jod"},"v23":{"start":"2024-10-16","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-05-06","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":"Krypton"},"v25":{"start":"2025-10-15","maintenance":"2026-04-01","end":"2026-06-01"},"v26":{"start":"2026-04-22","lts":"2026-10-28","maintenance":"2027-10-20","end":"2029-04-30","codename":""}}
Index: de_modules/node-releases/package.json
===================================================================
--- node_modules/node-releases/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-{
-  "name": "node-releases",
-  "version": "2.0.27",
-  "description": "Node.js releases data",
-  "type": "module",
-  "scripts": {
-    "build": "node scripts/build.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/chicoxyzzy/node-releases.git"
-  },
-  "keywords": [
-    "nodejs",
-    "releases"
-  ],
-  "author": "Sergey Rubanov <chi187@gmail.com>",
-  "license": "MIT",
-  "devDependencies": {
-    "semver": "^7.3.5"
-  }
-}
Index: de_modules/picocolors/LICENSE
===================================================================
--- node_modules/picocolors/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-ISC License
-
-Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Index: de_modules/picocolors/README.md
===================================================================
--- node_modules/picocolors/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-# picocolors
-
-The tiniest and the fastest library for terminal output formatting with ANSI colors.
-
-```javascript
-import pc from "picocolors"
-
-console.log(
-  pc.green(`How are ${pc.italic(`you`)} doing?`)
-)
-```
-
-- **No dependencies.**
-- **14 times** smaller and **2 times** faster than chalk.
-- Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist.
-- Node.js v6+ & browsers support. Support for both CJS and ESM projects.
-- TypeScript type declarations included.
-- [`NO_COLOR`](https://no-color.org/) friendly.
-
-## Docs
-Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub.
Index: de_modules/picocolors/package.json
===================================================================
--- node_modules/picocolors/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-{
-  "name": "picocolors",
-  "version": "1.1.1",
-  "main": "./picocolors.js",
-  "types": "./picocolors.d.ts",
-  "browser": {
-    "./picocolors.js": "./picocolors.browser.js"
-  },
-  "sideEffects": false,
-  "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors",
-  "files": [
-    "picocolors.*",
-    "types.d.ts"
-  ],
-  "keywords": [
-    "terminal",
-    "colors",
-    "formatting",
-    "cli",
-    "console"
-  ],
-  "author": "Alexey Raspopov",
-  "repository": "alexeyraspopov/picocolors",
-  "license": "ISC"
-}
Index: de_modules/picocolors/picocolors.browser.js
===================================================================
--- node_modules/picocolors/picocolors.browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-var x=String;
-var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};
-module.exports=create();
-module.exports.createColors = create;
Index: de_modules/picocolors/picocolors.d.ts
===================================================================
--- node_modules/picocolors/picocolors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { Colors } from "./types"
-
-declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors }
-
-export = picocolors
Index: de_modules/picocolors/picocolors.js
===================================================================
--- node_modules/picocolors/picocolors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-let p = process || {}, argv = p.argv || [], env = p.env || {}
-let isColorSupported =
-	!(!!env.NO_COLOR || argv.includes("--no-color")) &&
-	(!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI)
-
-let formatter = (open, close, replace = open) =>
-	input => {
-		let string = "" + input, index = string.indexOf(close, open.length)
-		return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close
-	}
-
-let replaceClose = (string, close, replace, index) => {
-	let result = "", cursor = 0
-	do {
-		result += string.substring(cursor, index) + replace
-		cursor = index + close.length
-		index = string.indexOf(close, cursor)
-	} while (~index)
-	return result + string.substring(cursor)
-}
-
-let createColors = (enabled = isColorSupported) => {
-	let f = enabled ? formatter : () => String
-	return {
-		isColorSupported: enabled,
-		reset: f("\x1b[0m", "\x1b[0m"),
-		bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
-		dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
-		italic: f("\x1b[3m", "\x1b[23m"),
-		underline: f("\x1b[4m", "\x1b[24m"),
-		inverse: f("\x1b[7m", "\x1b[27m"),
-		hidden: f("\x1b[8m", "\x1b[28m"),
-		strikethrough: f("\x1b[9m", "\x1b[29m"),
-
-		black: f("\x1b[30m", "\x1b[39m"),
-		red: f("\x1b[31m", "\x1b[39m"),
-		green: f("\x1b[32m", "\x1b[39m"),
-		yellow: f("\x1b[33m", "\x1b[39m"),
-		blue: f("\x1b[34m", "\x1b[39m"),
-		magenta: f("\x1b[35m", "\x1b[39m"),
-		cyan: f("\x1b[36m", "\x1b[39m"),
-		white: f("\x1b[37m", "\x1b[39m"),
-		gray: f("\x1b[90m", "\x1b[39m"),
-
-		bgBlack: f("\x1b[40m", "\x1b[49m"),
-		bgRed: f("\x1b[41m", "\x1b[49m"),
-		bgGreen: f("\x1b[42m", "\x1b[49m"),
-		bgYellow: f("\x1b[43m", "\x1b[49m"),
-		bgBlue: f("\x1b[44m", "\x1b[49m"),
-		bgMagenta: f("\x1b[45m", "\x1b[49m"),
-		bgCyan: f("\x1b[46m", "\x1b[49m"),
-		bgWhite: f("\x1b[47m", "\x1b[49m"),
-
-		blackBright: f("\x1b[90m", "\x1b[39m"),
-		redBright: f("\x1b[91m", "\x1b[39m"),
-		greenBright: f("\x1b[92m", "\x1b[39m"),
-		yellowBright: f("\x1b[93m", "\x1b[39m"),
-		blueBright: f("\x1b[94m", "\x1b[39m"),
-		magentaBright: f("\x1b[95m", "\x1b[39m"),
-		cyanBright: f("\x1b[96m", "\x1b[39m"),
-		whiteBright: f("\x1b[97m", "\x1b[39m"),
-
-		bgBlackBright: f("\x1b[100m", "\x1b[49m"),
-		bgRedBright: f("\x1b[101m", "\x1b[49m"),
-		bgGreenBright: f("\x1b[102m", "\x1b[49m"),
-		bgYellowBright: f("\x1b[103m", "\x1b[49m"),
-		bgBlueBright: f("\x1b[104m", "\x1b[49m"),
-		bgMagentaBright: f("\x1b[105m", "\x1b[49m"),
-		bgCyanBright: f("\x1b[106m", "\x1b[49m"),
-		bgWhiteBright: f("\x1b[107m", "\x1b[49m"),
-	}
-}
-
-module.exports = createColors()
-module.exports.createColors = createColors
Index: de_modules/picocolors/types.d.ts
===================================================================
--- node_modules/picocolors/types.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-export type Formatter = (input: string | number | null | undefined) => string
-
-export interface Colors {
-	isColorSupported: boolean
-
-	reset: Formatter
-	bold: Formatter
-	dim: Formatter
-	italic: Formatter
-	underline: Formatter
-	inverse: Formatter
-	hidden: Formatter
-	strikethrough: Formatter
-
-	black: Formatter
-	red: Formatter
-	green: Formatter
-	yellow: Formatter
-	blue: Formatter
-	magenta: Formatter
-	cyan: Formatter
-	white: Formatter
-	gray: Formatter
-
-	bgBlack: Formatter
-	bgRed: Formatter
-	bgGreen: Formatter
-	bgYellow: Formatter
-	bgBlue: Formatter
-	bgMagenta: Formatter
-	bgCyan: Formatter
-	bgWhite: Formatter
-
-	blackBright: Formatter
-	redBright: Formatter
-	greenBright: Formatter
-	yellowBright: Formatter
-	blueBright: Formatter
-	magentaBright: Formatter
-	cyanBright: Formatter
-	whiteBright: Formatter
-
-	bgBlackBright: Formatter
-	bgRedBright: Formatter
-	bgGreenBright: Formatter
-	bgYellowBright: Formatter
-	bgBlueBright: Formatter
-	bgMagentaBright: Formatter
-	bgCyanBright: Formatter
-	bgWhiteBright: Formatter
-}
Index: de_modules/postcss-value-parser/LICENSE
===================================================================
--- node_modules/postcss-value-parser/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-Copyright (c) Bogdan Chadkin <trysound@yandex.ru>
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/postcss-value-parser/README.md
===================================================================
--- node_modules/postcss-value-parser/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,263 +1,0 @@
-# postcss-value-parser
-
-[![Travis CI](https://travis-ci.org/TrySound/postcss-value-parser.svg)](https://travis-ci.org/TrySound/postcss-value-parser)
-
-Transforms CSS declaration values and at-rule parameters into a tree of nodes, and provides a simple traversal API.
-
-## Usage
-
-```js
-var valueParser = require('postcss-value-parser');
-var cssBackgroundValue = 'url(foo.png) no-repeat 40px 73%';
-var parsedValue = valueParser(cssBackgroundValue);
-// parsedValue exposes an API described below,
-// e.g. parsedValue.walk(..), parsedValue.toString(), etc.
-```
-
-For example, parsing the value `rgba(233, 45, 66, .5)` will return the following:
-
-```js
-{
-  nodes: [
-    {
-      type: 'function',
-      value: 'rgba',
-      before: '',
-      after: '',
-      nodes: [
-        { type: 'word', value: '233' },
-        { type: 'div', value: ',', before: '', after: ' ' },
-        { type: 'word', value: '45' },
-        { type: 'div', value: ',', before: '', after: ' ' },
-        { type: 'word', value: '66' },
-        { type: 'div', value: ',', before: ' ', after: '' },
-        { type: 'word', value: '.5' }
-      ]
-    }
-  ]
-}
-```
-
-If you wanted to convert each `rgba()` value in `sourceCSS` to a hex value, you could do so like this:
-
-```js
-var valueParser = require('postcss-value-parser');
-
-var parsed = valueParser(sourceCSS);
-
-// walk() will visit all the of the nodes in the tree,
-// invoking the callback for each.
-parsed.walk(function (node) {
-
-  // Since we only want to transform rgba() values,
-  // we can ignore anything else.
-  if (node.type !== 'function' && node.value !== 'rgba') return;
-
-  // We can make an array of the rgba() arguments to feed to a
-  // convertToHex() function
-  var color = node.nodes.filter(function (node) {
-    return node.type === 'word';
-  }).map(function (node) {
-    return Number(node.value);
-  }); // [233, 45, 66, .5]
-
-  // Now we will transform the existing rgba() function node
-  // into a word node with the hex value
-  node.type = 'word';
-  node.value = convertToHex(color);
-})
-
-parsed.toString(); // #E92D42
-```
-
-## Nodes
-
-Each node is an object with these common properties:
-
-- **type**: The type of node (`word`, `string`, `div`, `space`, `comment`, or `function`).
-  Each type is documented below.
-- **value**: Each node has a `value` property; but what exactly `value` means
-  is specific to the node type. Details are documented for each type below.
-- **sourceIndex**: The starting index of the node within the original source
-  string. For example, given the source string `10px 20px`, the `word` node
-  whose value is `20px` will have a `sourceIndex` of `5`.
-
-### word
-
-The catch-all node type that includes keywords (e.g. `no-repeat`),
-quantities (e.g. `20px`, `75%`, `1.5`), and hex colors (e.g. `#e6e6e6`).
-
-Node-specific properties:
-
-- **value**: The "word" itself.
-
-### string
-
-A quoted string value, e.g. `"something"` in `content: "something";`.
-
-Node-specific properties:
-
-- **value**: The text content of the string.
-- **quote**: The quotation mark surrounding the string, either `"` or `'`.
-- **unclosed**: `true` if the string was not closed properly. e.g. `"unclosed string  `.
-
-### div
-
-A divider, for example
-
-- `,` in `animation-duration: 1s, 2s, 3s`
-- `/` in `border-radius: 10px / 23px`
-- `:` in `(min-width: 700px)`
-
-Node-specific properties:
-
-- **value**: The divider character. Either `,`, `/`, or `:` (see examples above).
-- **before**: Whitespace before the divider.
-- **after**: Whitespace after the divider.
-
-### space
-
-Whitespace used as a separator, e.g. ` ` occurring twice in `border: 1px solid black;`.
-
-Node-specific properties:
-
-- **value**: The whitespace itself.
-
-### comment
-
-A CSS comment starts with `/*` and ends with `*/`
-
-Node-specific properties:
-
-- **value**: The comment value without `/*` and `*/`
-- **unclosed**: `true` if the comment was not closed properly. e.g. `/* comment without an end  `.
-
-### function
-
-A CSS function, e.g. `rgb(0,0,0)` or `url(foo.bar)`.
-
-Function nodes have nodes nested within them: the function arguments.
-
-Additional properties:
-
-- **value**: The name of the function, e.g. `rgb` in `rgb(0,0,0)`.
-- **before**: Whitespace after the opening parenthesis and before the first argument,
-  e.g. `  ` in `rgb(  0,0,0)`.
-- **after**: Whitespace before the closing parenthesis and after the last argument,
-  e.g. `  ` in `rgb(0,0,0  )`.
-- **nodes**: More nodes representing the arguments to the function.
-- **unclosed**: `true` if the parentheses was not closed properly. e.g. `( unclosed-function  `.
-
-Media features surrounded by parentheses are considered functions with an
-empty value. For example, `(min-width: 700px)` parses to these nodes:
-
-```js
-[
-  {
-    type: 'function', value: '', before: '', after: '',
-    nodes: [
-      { type: 'word', value: 'min-width' },
-      { type: 'div', value: ':', before: '', after: ' ' },
-      { type: 'word', value: '700px' }
-    ]
-  }
-]
-```
-
-`url()` functions can be parsed a little bit differently depending on
-whether the first character in the argument is a quotation mark.
-
-`url( /gfx/img/bg.jpg )` parses to:
-
-```js
-{ type: 'function', sourceIndex: 0, value: 'url', before: ' ', after: ' ', nodes: [
-    { type: 'word', sourceIndex: 5, value: '/gfx/img/bg.jpg' }
-] }
-```
-
-`url( "/gfx/img/bg.jpg" )`, on the other hand, parses to:
-
-```js
-{ type: 'function', sourceIndex: 0, value: 'url', before: ' ', after: ' ', nodes: [
-     type: 'string', sourceIndex: 5, quote: '"', value: '/gfx/img/bg.jpg' },
-] }
-```
-
-### unicode-range
-
-The unicode-range CSS descriptor sets the specific range of characters to be 
-used from a font defined by @font-face and made available 
-for use on the current page (`unicode-range: U+0025-00FF`).
-
-Node-specific properties:
-
-- **value**: The "unicode-range" itself.
-
-## API
-
-```
-var valueParser = require('postcss-value-parser');
-```
-
-### valueParser.unit(quantity)
-
-Parses `quantity`, distinguishing the number from the unit. Returns an object like the following:
-
-```js
-// Given 2rem
-{
-  number: '2',
-  unit: 'rem'
-}
-```
-
-If the `quantity` argument cannot be parsed as a number, returns `false`.
-
-*This function does not parse complete values*: you cannot pass it `1px solid black` and expect `px` as
-the unit. Instead, you should pass it single quantities only. Parse `1px solid black`, then pass it
-the stringified `1px` node (a `word` node) to parse the number and unit.
-
-### valueParser.stringify(nodes[, custom])
-
-Stringifies a node or array of nodes.
-
-The `custom` function is called for each `node`; return a string to override the default behaviour.
-
-### valueParser.walk(nodes, callback[, bubble])
-
-Walks each provided node, recursively walking all descendent nodes within functions.
-
-Returning `false` in the `callback` will prevent traversal of descendent nodes (within functions).
-You can use this feature to for shallow iteration, walking over only the *immediate* children.
-*Note: This only applies if `bubble` is `false` (which is the default).*
-
-By default, the tree is walked from the outermost node inwards.
-To reverse the direction, pass `true` for the `bubble` argument.
-
-The `callback` is invoked with three arguments: `callback(node, index, nodes)`.
-
-- `node`: The current node.
-- `index`: The index of the current node.
-- `nodes`: The complete nodes array passed to `walk()`.
-
-Returns the `valueParser` instance.
-
-### var parsed = valueParser(value)
-
-Returns the parsed node tree.
-
-### parsed.nodes
-
-The array of nodes.
-
-### parsed.toString()
-
-Stringifies the node tree.
-
-### parsed.walk(callback[, bubble])
-
-Walks each node inside `parsed.nodes`. See the documentation for `valueParser.walk()` above.
-
-# License
-
-MIT © [Bogdan Chadkin](mailto:trysound@yandex.ru)
Index: de_modules/postcss-value-parser/lib/index.d.ts
===================================================================
--- node_modules/postcss-value-parser/lib/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-declare namespace postcssValueParser {
-  interface BaseNode {
-    /**
-     * The offset, inclusive, inside the CSS value at which the node starts.
-     */
-    sourceIndex: number;
-
-    /**
-     * The offset, exclusive, inside the CSS value at which the node ends.
-     */
-    sourceEndIndex: number;
-
-    /**
-     * The node's characteristic value
-     */
-    value: string;
-  }
-
-  interface ClosableNode {
-    /**
-     * Whether the parsed CSS value ended before the node was properly closed
-     */
-    unclosed?: true;
-  }
-
-  interface AdjacentAwareNode {
-    /**
-     * The token at the start of the node
-     */
-    before: string;
-
-    /**
-     * The token at the end of the node
-     */
-    after: string;
-  }
-
-  interface CommentNode extends BaseNode, ClosableNode {
-    type: "comment";
-  }
-
-  interface DivNode extends BaseNode, AdjacentAwareNode {
-    type: "div";
-  }
-
-  interface FunctionNode extends BaseNode, ClosableNode, AdjacentAwareNode {
-    type: "function";
-
-    /**
-     * Nodes inside the function
-     */
-    nodes: Node[];
-  }
-
-  interface SpaceNode extends BaseNode {
-    type: "space";
-  }
-
-  interface StringNode extends BaseNode, ClosableNode {
-    type: "string";
-
-    /**
-     * The quote type delimiting the string
-     */
-    quote: '"' | "'";
-  }
-
-  interface UnicodeRangeNode extends BaseNode {
-    type: "unicode-range";
-  }
-
-  interface WordNode extends BaseNode {
-    type: "word";
-  }
-
-  /**
-   * Any node parsed from a CSS value
-   */
-  type Node =
-    | CommentNode
-    | DivNode
-    | FunctionNode
-    | SpaceNode
-    | StringNode
-    | UnicodeRangeNode
-    | WordNode;
-
-  interface CustomStringifierCallback {
-    /**
-     * @param node The node to stringify
-     * @returns The serialized CSS representation of the node
-     */
-    (nodes: Node): string | undefined;
-  }
-
-  interface WalkCallback {
-    /**
-     * @param node  The currently visited node
-     * @param index The index of the node in the series of parsed nodes
-     * @param nodes The series of parsed nodes
-     * @returns Returning `false` will prevent traversal of descendant nodes (only applies if `bubble` was set to `true` in the `walk()` call)
-     */
-    (node: Node, index: number, nodes: Node[]): void | boolean;
-  }
-
-  /**
-   * A CSS dimension, decomposed into its numeric and unit parts
-   */
-  interface Dimension {
-    number: string;
-    unit: string;
-  }
-
-  /**
-   * A wrapper around a parsed CSS value that allows for inspecting and walking nodes
-   */
-  interface ParsedValue {
-    /**
-     * The series of parsed nodes
-     */
-    nodes: Node[];
-
-    /**
-     * Walk all parsed nodes, applying a callback
-     *
-     * @param callback A visitor callback that will be executed for each node
-     * @param bubble   When set to `true`, walking will be done inside-out instead of outside-in
-     */
-    walk(callback: WalkCallback, bubble?: boolean): this;
-  }
-
-  interface ValueParser {
-    /**
-     * Decompose a CSS dimension into its numeric and unit part
-     *
-     * @param value The dimension to decompose
-     * @returns An object representing `number` and `unit` part of the dimension or `false` if the decomposing fails
-     */
-    unit(value: string): Dimension | false;
-
-    /**
-     * Serialize a series of nodes into a CSS value
-     *
-     * @param nodes  The nodes to stringify
-     * @param custom A custom stringifier callback
-     * @returns The generated CSS value
-     */
-    stringify(nodes: Node | Node[], custom?: CustomStringifierCallback): string;
-
-    /**
-     * Walk a series of nodes, applying a callback
-     *
-     * @param nodes    The nodes to walk
-     * @param callback A visitor callback that will be executed for each node
-     * @param bubble   When set to `true`, walking will be done inside-out instead of outside-in
-     */
-    walk(nodes: Node[], callback: WalkCallback, bubble?: boolean): void;
-
-    /**
-     * Parse a CSS value into a series of nodes to operate on
-     *
-     * @param value The value to parse
-     */
-    new (value: string): ParsedValue;
-
-    /**
-     * Parse a CSS value into a series of nodes to operate on
-     *
-     * @param value The value to parse
-     */
-    (value: string): ParsedValue;
-  }
-}
-
-declare const postcssValueParser: postcssValueParser.ValueParser;
-
-export = postcssValueParser;
Index: de_modules/postcss-value-parser/lib/index.js
===================================================================
--- node_modules/postcss-value-parser/lib/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-var parse = require("./parse");
-var walk = require("./walk");
-var stringify = require("./stringify");
-
-function ValueParser(value) {
-  if (this instanceof ValueParser) {
-    this.nodes = parse(value);
-    return this;
-  }
-  return new ValueParser(value);
-}
-
-ValueParser.prototype.toString = function() {
-  return Array.isArray(this.nodes) ? stringify(this.nodes) : "";
-};
-
-ValueParser.prototype.walk = function(cb, bubble) {
-  walk(this.nodes, cb, bubble);
-  return this;
-};
-
-ValueParser.unit = require("./unit");
-
-ValueParser.walk = walk;
-
-ValueParser.stringify = stringify;
-
-module.exports = ValueParser;
Index: de_modules/postcss-value-parser/lib/parse.js
===================================================================
--- node_modules/postcss-value-parser/lib/parse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,321 +1,0 @@
-var openParentheses = "(".charCodeAt(0);
-var closeParentheses = ")".charCodeAt(0);
-var singleQuote = "'".charCodeAt(0);
-var doubleQuote = '"'.charCodeAt(0);
-var backslash = "\\".charCodeAt(0);
-var slash = "/".charCodeAt(0);
-var comma = ",".charCodeAt(0);
-var colon = ":".charCodeAt(0);
-var star = "*".charCodeAt(0);
-var uLower = "u".charCodeAt(0);
-var uUpper = "U".charCodeAt(0);
-var plus = "+".charCodeAt(0);
-var isUnicodeRange = /^[a-f0-9?-]+$/i;
-
-module.exports = function(input) {
-  var tokens = [];
-  var value = input;
-
-  var next,
-    quote,
-    prev,
-    token,
-    escape,
-    escapePos,
-    whitespacePos,
-    parenthesesOpenPos;
-  var pos = 0;
-  var code = value.charCodeAt(pos);
-  var max = value.length;
-  var stack = [{ nodes: tokens }];
-  var balanced = 0;
-  var parent;
-
-  var name = "";
-  var before = "";
-  var after = "";
-
-  while (pos < max) {
-    // Whitespaces
-    if (code <= 32) {
-      next = pos;
-      do {
-        next += 1;
-        code = value.charCodeAt(next);
-      } while (code <= 32);
-      token = value.slice(pos, next);
-
-      prev = tokens[tokens.length - 1];
-      if (code === closeParentheses && balanced) {
-        after = token;
-      } else if (prev && prev.type === "div") {
-        prev.after = token;
-        prev.sourceEndIndex += token.length;
-      } else if (
-        code === comma ||
-        code === colon ||
-        (code === slash &&
-          value.charCodeAt(next + 1) !== star &&
-          (!parent ||
-            (parent && parent.type === "function" && parent.value !== "calc")))
-      ) {
-        before = token;
-      } else {
-        tokens.push({
-          type: "space",
-          sourceIndex: pos,
-          sourceEndIndex: next,
-          value: token
-        });
-      }
-
-      pos = next;
-
-      // Quotes
-    } else if (code === singleQuote || code === doubleQuote) {
-      next = pos;
-      quote = code === singleQuote ? "'" : '"';
-      token = {
-        type: "string",
-        sourceIndex: pos,
-        quote: quote
-      };
-      do {
-        escape = false;
-        next = value.indexOf(quote, next + 1);
-        if (~next) {
-          escapePos = next;
-          while (value.charCodeAt(escapePos - 1) === backslash) {
-            escapePos -= 1;
-            escape = !escape;
-          }
-        } else {
-          value += quote;
-          next = value.length - 1;
-          token.unclosed = true;
-        }
-      } while (escape);
-      token.value = value.slice(pos + 1, next);
-      token.sourceEndIndex = token.unclosed ? next : next + 1;
-      tokens.push(token);
-      pos = next + 1;
-      code = value.charCodeAt(pos);
-
-      // Comments
-    } else if (code === slash && value.charCodeAt(pos + 1) === star) {
-      next = value.indexOf("*/", pos);
-
-      token = {
-        type: "comment",
-        sourceIndex: pos,
-        sourceEndIndex: next + 2
-      };
-
-      if (next === -1) {
-        token.unclosed = true;
-        next = value.length;
-        token.sourceEndIndex = next;
-      }
-
-      token.value = value.slice(pos + 2, next);
-      tokens.push(token);
-
-      pos = next + 2;
-      code = value.charCodeAt(pos);
-
-      // Operation within calc
-    } else if (
-      (code === slash || code === star) &&
-      parent &&
-      parent.type === "function" &&
-      parent.value === "calc"
-    ) {
-      token = value[pos];
-      tokens.push({
-        type: "word",
-        sourceIndex: pos - before.length,
-        sourceEndIndex: pos + token.length,
-        value: token
-      });
-      pos += 1;
-      code = value.charCodeAt(pos);
-
-      // Dividers
-    } else if (code === slash || code === comma || code === colon) {
-      token = value[pos];
-
-      tokens.push({
-        type: "div",
-        sourceIndex: pos - before.length,
-        sourceEndIndex: pos + token.length,
-        value: token,
-        before: before,
-        after: ""
-      });
-      before = "";
-
-      pos += 1;
-      code = value.charCodeAt(pos);
-
-      // Open parentheses
-    } else if (openParentheses === code) {
-      // Whitespaces after open parentheses
-      next = pos;
-      do {
-        next += 1;
-        code = value.charCodeAt(next);
-      } while (code <= 32);
-      parenthesesOpenPos = pos;
-      token = {
-        type: "function",
-        sourceIndex: pos - name.length,
-        value: name,
-        before: value.slice(parenthesesOpenPos + 1, next)
-      };
-      pos = next;
-
-      if (name === "url" && code !== singleQuote && code !== doubleQuote) {
-        next -= 1;
-        do {
-          escape = false;
-          next = value.indexOf(")", next + 1);
-          if (~next) {
-            escapePos = next;
-            while (value.charCodeAt(escapePos - 1) === backslash) {
-              escapePos -= 1;
-              escape = !escape;
-            }
-          } else {
-            value += ")";
-            next = value.length - 1;
-            token.unclosed = true;
-          }
-        } while (escape);
-        // Whitespaces before closed
-        whitespacePos = next;
-        do {
-          whitespacePos -= 1;
-          code = value.charCodeAt(whitespacePos);
-        } while (code <= 32);
-        if (parenthesesOpenPos < whitespacePos) {
-          if (pos !== whitespacePos + 1) {
-            token.nodes = [
-              {
-                type: "word",
-                sourceIndex: pos,
-                sourceEndIndex: whitespacePos + 1,
-                value: value.slice(pos, whitespacePos + 1)
-              }
-            ];
-          } else {
-            token.nodes = [];
-          }
-          if (token.unclosed && whitespacePos + 1 !== next) {
-            token.after = "";
-            token.nodes.push({
-              type: "space",
-              sourceIndex: whitespacePos + 1,
-              sourceEndIndex: next,
-              value: value.slice(whitespacePos + 1, next)
-            });
-          } else {
-            token.after = value.slice(whitespacePos + 1, next);
-            token.sourceEndIndex = next;
-          }
-        } else {
-          token.after = "";
-          token.nodes = [];
-        }
-        pos = next + 1;
-        token.sourceEndIndex = token.unclosed ? next : pos;
-        code = value.charCodeAt(pos);
-        tokens.push(token);
-      } else {
-        balanced += 1;
-        token.after = "";
-        token.sourceEndIndex = pos + 1;
-        tokens.push(token);
-        stack.push(token);
-        tokens = token.nodes = [];
-        parent = token;
-      }
-      name = "";
-
-      // Close parentheses
-    } else if (closeParentheses === code && balanced) {
-      pos += 1;
-      code = value.charCodeAt(pos);
-
-      parent.after = after;
-      parent.sourceEndIndex += after.length;
-      after = "";
-      balanced -= 1;
-      stack[stack.length - 1].sourceEndIndex = pos;
-      stack.pop();
-      parent = stack[balanced];
-      tokens = parent.nodes;
-
-      // Words
-    } else {
-      next = pos;
-      do {
-        if (code === backslash) {
-          next += 1;
-        }
-        next += 1;
-        code = value.charCodeAt(next);
-      } while (
-        next < max &&
-        !(
-          code <= 32 ||
-          code === singleQuote ||
-          code === doubleQuote ||
-          code === comma ||
-          code === colon ||
-          code === slash ||
-          code === openParentheses ||
-          (code === star &&
-            parent &&
-            parent.type === "function" &&
-            parent.value === "calc") ||
-          (code === slash &&
-            parent.type === "function" &&
-            parent.value === "calc") ||
-          (code === closeParentheses && balanced)
-        )
-      );
-      token = value.slice(pos, next);
-
-      if (openParentheses === code) {
-        name = token;
-      } else if (
-        (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&
-        plus === token.charCodeAt(1) &&
-        isUnicodeRange.test(token.slice(2))
-      ) {
-        tokens.push({
-          type: "unicode-range",
-          sourceIndex: pos,
-          sourceEndIndex: next,
-          value: token
-        });
-      } else {
-        tokens.push({
-          type: "word",
-          sourceIndex: pos,
-          sourceEndIndex: next,
-          value: token
-        });
-      }
-
-      pos = next;
-    }
-  }
-
-  for (pos = stack.length - 1; pos; pos -= 1) {
-    stack[pos].unclosed = true;
-    stack[pos].sourceEndIndex = value.length;
-  }
-
-  return stack[0].nodes;
-};
Index: de_modules/postcss-value-parser/lib/stringify.js
===================================================================
--- node_modules/postcss-value-parser/lib/stringify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-function stringifyNode(node, custom) {
-  var type = node.type;
-  var value = node.value;
-  var buf;
-  var customResult;
-
-  if (custom && (customResult = custom(node)) !== undefined) {
-    return customResult;
-  } else if (type === "word" || type === "space") {
-    return value;
-  } else if (type === "string") {
-    buf = node.quote || "";
-    return buf + value + (node.unclosed ? "" : buf);
-  } else if (type === "comment") {
-    return "/*" + value + (node.unclosed ? "" : "*/");
-  } else if (type === "div") {
-    return (node.before || "") + value + (node.after || "");
-  } else if (Array.isArray(node.nodes)) {
-    buf = stringify(node.nodes, custom);
-    if (type !== "function") {
-      return buf;
-    }
-    return (
-      value +
-      "(" +
-      (node.before || "") +
-      buf +
-      (node.after || "") +
-      (node.unclosed ? "" : ")")
-    );
-  }
-  return value;
-}
-
-function stringify(nodes, custom) {
-  var result, i;
-
-  if (Array.isArray(nodes)) {
-    result = "";
-    for (i = nodes.length - 1; ~i; i -= 1) {
-      result = stringifyNode(nodes[i], custom) + result;
-    }
-    return result;
-  }
-  return stringifyNode(nodes, custom);
-}
-
-module.exports = stringify;
Index: de_modules/postcss-value-parser/lib/unit.js
===================================================================
--- node_modules/postcss-value-parser/lib/unit.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,120 +1,0 @@
-var minus = "-".charCodeAt(0);
-var plus = "+".charCodeAt(0);
-var dot = ".".charCodeAt(0);
-var exp = "e".charCodeAt(0);
-var EXP = "E".charCodeAt(0);
-
-// Check if three code points would start a number
-// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number
-function likeNumber(value) {
-  var code = value.charCodeAt(0);
-  var nextCode;
-
-  if (code === plus || code === minus) {
-    nextCode = value.charCodeAt(1);
-
-    if (nextCode >= 48 && nextCode <= 57) {
-      return true;
-    }
-
-    var nextNextCode = value.charCodeAt(2);
-
-    if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
-      return true;
-    }
-
-    return false;
-  }
-
-  if (code === dot) {
-    nextCode = value.charCodeAt(1);
-
-    if (nextCode >= 48 && nextCode <= 57) {
-      return true;
-    }
-
-    return false;
-  }
-
-  if (code >= 48 && code <= 57) {
-    return true;
-  }
-
-  return false;
-}
-
-// Consume a number
-// https://www.w3.org/TR/css-syntax-3/#consume-number
-module.exports = function(value) {
-  var pos = 0;
-  var length = value.length;
-  var code;
-  var nextCode;
-  var nextNextCode;
-
-  if (length === 0 || !likeNumber(value)) {
-    return false;
-  }
-
-  code = value.charCodeAt(pos);
-
-  if (code === plus || code === minus) {
-    pos++;
-  }
-
-  while (pos < length) {
-    code = value.charCodeAt(pos);
-
-    if (code < 48 || code > 57) {
-      break;
-    }
-
-    pos += 1;
-  }
-
-  code = value.charCodeAt(pos);
-  nextCode = value.charCodeAt(pos + 1);
-
-  if (code === dot && nextCode >= 48 && nextCode <= 57) {
-    pos += 2;
-
-    while (pos < length) {
-      code = value.charCodeAt(pos);
-
-      if (code < 48 || code > 57) {
-        break;
-      }
-
-      pos += 1;
-    }
-  }
-
-  code = value.charCodeAt(pos);
-  nextCode = value.charCodeAt(pos + 1);
-  nextNextCode = value.charCodeAt(pos + 2);
-
-  if (
-    (code === exp || code === EXP) &&
-    ((nextCode >= 48 && nextCode <= 57) ||
-      ((nextCode === plus || nextCode === minus) &&
-        nextNextCode >= 48 &&
-        nextNextCode <= 57))
-  ) {
-    pos += nextCode === plus || nextCode === minus ? 3 : 2;
-
-    while (pos < length) {
-      code = value.charCodeAt(pos);
-
-      if (code < 48 || code > 57) {
-        break;
-      }
-
-      pos += 1;
-    }
-  }
-
-  return {
-    number: value.slice(0, pos),
-    unit: value.slice(pos)
-  };
-};
Index: de_modules/postcss-value-parser/lib/walk.js
===================================================================
--- node_modules/postcss-value-parser/lib/walk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-module.exports = function walk(nodes, cb, bubble) {
-  var i, max, node, result;
-
-  for (i = 0, max = nodes.length; i < max; i += 1) {
-    node = nodes[i];
-    if (!bubble) {
-      result = cb(node, i, nodes);
-    }
-
-    if (
-      result !== false &&
-      node.type === "function" &&
-      Array.isArray(node.nodes)
-    ) {
-      walk(node.nodes, cb, bubble);
-    }
-
-    if (bubble) {
-      cb(node, i, nodes);
-    }
-  }
-};
Index: de_modules/postcss-value-parser/package.json
===================================================================
--- node_modules/postcss-value-parser/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-{
-  "name": "postcss-value-parser",
-  "version": "4.2.0",
-  "description": "Transforms css values and at-rule params into the tree",
-  "main": "lib/index.js",
-  "files": [
-    "lib"
-  ],
-  "devDependencies": {
-    "eslint": "^5.16.0",
-    "husky": "^2.3.0",
-    "lint-staged": "^8.1.7",
-    "prettier": "^1.17.1",
-    "tap-spec": "^5.0.0",
-    "tape": "^4.10.2"
-  },
-  "scripts": {
-    "lint:prettier": "prettier \"**/*.js\" \"**/*.ts\" --list-different",
-    "lint:js": "eslint . --cache",
-    "lint": "yarn lint:js && yarn lint:prettier",
-    "pretest": "yarn lint",
-    "test": "tape test/*.js | tap-spec"
-  },
-  "eslintConfig": {
-    "env": {
-      "es6": true,
-      "node": true
-    },
-    "extends": "eslint:recommended"
-  },
-  "lint-staged": {
-    "*.js": [
-      "eslint",
-      "prettier --write",
-      "git add"
-    ]
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "lint-staged"
-    }
-  },
-  "author": "Bogdan Chadkin <trysound@yandex.ru>",
-  "license": "MIT",
-  "homepage": "https://github.com/TrySound/postcss-value-parser",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/TrySound/postcss-value-parser.git"
-  },
-  "keywords": [
-    "postcss",
-    "value",
-    "parser"
-  ],
-  "bugs": {
-    "url": "https://github.com/TrySound/postcss-value-parser/issues"
-  }
-}
Index: de_modules/postcss/LICENSE
===================================================================
--- node_modules/postcss/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-The MIT License (MIT)
-
-Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/postcss/README.md
===================================================================
--- node_modules/postcss/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-# PostCSS
-
-<img align="right" width="95" height="95"
-     alt="Philosopher’s stone, logo of PostCSS"
-     src="https://postcss.org/logo.svg">
-
-PostCSS is a tool for transforming styles with JS plugins.
-These plugins can lint your CSS, support variables and mixins,
-transpile future CSS syntax, inline images, and more.
-
-PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba,
-and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some of the most popular CSS tools.
-
----
-
-<img src="https://cdn.evilmartians.com/badges/logo-no-label.svg" alt="" width="22" height="16" />  Built by
- <b><a href="https://evilmartians.com/devtools?utm_source=postcss&utm_campaign=devtools-button&utm_medium=github">Evil Martians</a></b>, go-to agency for <b>developer tools</b>.
-
----
-
-[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree
-[Evil Martians]:        https://evilmartians.com/?utm_source=postcss
-[Autoprefixer]:         https://github.com/postcss/autoprefixer
-[Stylelint]:            https://stylelint.io/
-[plugins]:              https://github.com/postcss/postcss#plugins
-
-
-## Docs
-Read full docs **[here](https://postcss.org/)**.
Index: de_modules/postcss/lib/at-rule.d.ts
===================================================================
--- node_modules/postcss/lib/at-rule.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-import Container, {
-  ContainerProps,
-  ContainerWithChildren
-} from './container.js'
-
-declare namespace AtRule {
-  export interface AtRuleRaws extends Record<string, unknown> {
-    /**
-     * The space symbols after the last child of the node to the end of the node.
-     */
-    after?: string
-
-    /**
-     * The space between the at-rule name and its parameters.
-     */
-    afterName?: string
-
-    /**
-     * The space symbols before the node. It also stores `*`
-     * and `_` symbols before the declaration (IE hack).
-     */
-    before?: string
-
-    /**
-     * The symbols between the last parameter and `{` for rules.
-     */
-    between?: string
-
-    /**
-     * The rule’s selector with comments.
-     */
-    params?: {
-      raw: string
-      value: string
-    }
-
-    /**
-     * Contains `true` if the last child has an (optional) semicolon.
-     */
-    semicolon?: boolean
-  }
-
-  export interface AtRuleProps extends ContainerProps {
-    /** Name of the at-rule. */
-    name: string
-    /** Parameters following the name of the at-rule. */
-    params?: number | string
-    /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
-    raws?: AtRuleRaws
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { AtRule_ as default }
-}
-
-/**
- * Represents an at-rule.
- *
- * ```js
- * Once (root, { AtRule }) {
- *   let media = new AtRule({ name: 'media', params: 'print' })
- *   media.append(…)
- *   root.append(media)
- * }
- * ```
- *
- * If it’s followed in the CSS by a `{}` block, this node will have
- * a nodes property representing its children.
- *
- * ```js
- * const root = postcss.parse('@charset "UTF-8"; @media print {}')
- *
- * const charset = root.first
- * charset.type  //=> 'atrule'
- * charset.nodes //=> undefined
- *
- * const media = root.last
- * media.nodes   //=> []
- * ```
- */
-declare class AtRule_ extends Container {
-  /**
-   * An array containing the layer’s children.
-   *
-   * ```js
-   * const root = postcss.parse('@layer example { a { color: black } }')
-   * const layer = root.first
-   * layer.nodes.length           //=> 1
-   * layer.nodes[0].selector      //=> 'a'
-   * ```
-   *
-   * Can be `undefinded` if the at-rule has no body.
-   *
-   * ```js
-   * const root = postcss.parse('@layer a, b, c;')
-   * const layer = root.first
-   * layer.nodes //=> undefined
-   * ```
-   */
-  nodes: Container['nodes'] | undefined
-  parent: ContainerWithChildren | undefined
-
-  raws: AtRule.AtRuleRaws
-  type: 'atrule'
-  /**
-   * The at-rule’s name immediately follows the `@`.
-   *
-   * ```js
-   * const root  = postcss.parse('@media print {}')
-   * const media = root.first
-   * media.name //=> 'media'
-   * ```
-   */
-  get name(): string
-  set name(value: string)
-
-  /**
-   * The at-rule’s parameters, the values that follow the at-rule’s name
-   * but precede any `{}` block.
-   *
-   * ```js
-   * const root  = postcss.parse('@media print, screen {}')
-   * const media = root.first
-   * media.params //=> 'print, screen'
-   * ```
-   */
-  get params(): string
-
-  set params(value: string)
-
-  constructor(defaults?: AtRule.AtRuleProps)
-  assign(overrides: AtRule.AtRuleProps | object): this
-  clone(overrides?: Partial<AtRule.AtRuleProps>): this
-  cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): this
-  cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): this
-}
-
-declare class AtRule extends AtRule_ {}
-
-export = AtRule
Index: de_modules/postcss/lib/at-rule.js
===================================================================
--- node_modules/postcss/lib/at-rule.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-
-class AtRule extends Container {
-  constructor(defaults) {
-    super(defaults)
-    this.type = 'atrule'
-  }
-
-  append(...children) {
-    if (!this.proxyOf.nodes) this.nodes = []
-    return super.append(...children)
-  }
-
-  prepend(...children) {
-    if (!this.proxyOf.nodes) this.nodes = []
-    return super.prepend(...children)
-  }
-}
-
-module.exports = AtRule
-AtRule.default = AtRule
-
-Container.registerAtRule(AtRule)
Index: de_modules/postcss/lib/comment.d.ts
===================================================================
--- node_modules/postcss/lib/comment.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-import Container from './container.js'
-import Node, { NodeProps } from './node.js'
-
-declare namespace Comment {
-  export interface CommentRaws extends Record<string, unknown> {
-    /**
-     * The space symbols before the node.
-     */
-    before?: string
-
-    /**
-     * The space symbols between `/*` and the comment’s text.
-     */
-    left?: string
-
-    /**
-     * The space symbols between the comment’s text.
-     */
-    right?: string
-  }
-
-  export interface CommentProps extends NodeProps {
-    /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
-    raws?: CommentRaws
-    /** Content of the comment. */
-    text: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Comment_ as default }
-}
-
-/**
- * It represents a class that handles
- * [CSS comments](https://developer.mozilla.org/en-US/docs/Web/CSS/Comments)
- *
- * ```js
- * Once (root, { Comment }) {
- *   const note = new Comment({ text: 'Note: …' })
- *   root.append(note)
- * }
- * ```
- *
- * Remember that CSS comments inside selectors, at-rule parameters,
- * or declaration values will be stored in the `raws` properties
- * explained above.
- */
-declare class Comment_ extends Node {
-  parent: Container | undefined
-  raws: Comment.CommentRaws
-  type: 'comment'
-  /**
-   * The comment's text.
-   */
-  get text(): string
-
-  set text(value: string)
-
-  constructor(defaults?: Comment.CommentProps)
-  assign(overrides: Comment.CommentProps | object): this
-  clone(overrides?: Partial<Comment.CommentProps>): this
-  cloneAfter(overrides?: Partial<Comment.CommentProps>): this
-  cloneBefore(overrides?: Partial<Comment.CommentProps>): this
-}
-
-declare class Comment extends Comment_ {}
-
-export = Comment
Index: de_modules/postcss/lib/comment.js
===================================================================
--- node_modules/postcss/lib/comment.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-'use strict'
-
-let Node = require('./node')
-
-class Comment extends Node {
-  constructor(defaults) {
-    super(defaults)
-    this.type = 'comment'
-  }
-}
-
-module.exports = Comment
-Comment.default = Comment
Index: de_modules/postcss/lib/container.d.ts
===================================================================
--- node_modules/postcss/lib/container.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,483 +1,0 @@
-import AtRule from './at-rule.js'
-import Comment from './comment.js'
-import Declaration from './declaration.js'
-import Node, { ChildNode, ChildProps, NodeProps } from './node.js'
-import { Root } from './postcss.js'
-import Rule from './rule.js'
-
-declare namespace Container {
-  export type ContainerWithChildren<Child extends Node = ChildNode> = {
-    nodes: Child[]
-  } & (
-    | AtRule
-    | Root
-    | Rule
-  )
-
-  export interface ValueOptions {
-    /**
-     * String that’s used to narrow down values and speed up the regexp search.
-     */
-    fast?: string
-
-    /**
-     * An array of property names.
-     */
-    props?: readonly string[]
-  }
-
-  export interface ContainerProps extends NodeProps {
-    nodes?: readonly (ChildProps | Node)[]
-  }
-
-  /**
-   * All types that can be passed into container methods to create or add a new
-   * child node.
-   */
-  export type NewChild =
-    | ChildProps
-    | Node
-    | readonly ChildProps[]
-    | readonly Node[]
-    | readonly string[]
-    | string
-    | undefined
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Container_ as default }
-}
-
-/**
- * The `Root`, `AtRule`, and `Rule` container nodes
- * inherit some common methods to help work with their children.
- *
- * Note that all containers can store any content. If you write a rule inside
- * a rule, PostCSS will parse it.
- */
-declare abstract class Container_<Child extends Node = ChildNode> extends Node {
-  /**
-   * An array containing the container’s children.
-   *
-   * ```js
-   * const root = postcss.parse('a { color: black }')
-   * root.nodes.length           //=> 1
-   * root.nodes[0].selector      //=> 'a'
-   * root.nodes[0].nodes[0].prop //=> 'color'
-   * ```
-   */
-  nodes: Child[] | undefined
-
-  /**
-   * The container’s first child.
-   *
-   * ```js
-   * rule.first === rules.nodes[0]
-   * ```
-   */
-  get first(): Child | undefined
-
-  /**
-   * The container’s last child.
-   *
-   * ```js
-   * rule.last === rule.nodes[rule.nodes.length - 1]
-   * ```
-   */
-  get last(): Child | undefined
-  /**
-   * Inserts new nodes to the end of the container.
-   *
-   * ```js
-   * const decl1 = new Declaration({ prop: 'color', value: 'black' })
-   * const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
-   * rule.append(decl1, decl2)
-   *
-   * root.append({ name: 'charset', params: '"UTF-8"' })  // at-rule
-   * root.append({ selector: 'a' })                       // rule
-   * rule.append({ prop: 'color', value: 'black' })       // declaration
-   * rule.append({ text: 'Comment' })                     // comment
-   *
-   * root.append('a {}')
-   * root.first.append('color: black; z-index: 1')
-   * ```
-   *
-   * @param nodes New nodes.
-   * @return This node for methods chain.
-   */
-  append(...nodes: Container.NewChild[]): this
-  assign(overrides: Container.ContainerProps | object): this
-  clone(overrides?: Partial<Container.ContainerProps>): this
-
-  cloneAfter(overrides?: Partial<Container.ContainerProps>): this
-
-  cloneBefore(overrides?: Partial<Container.ContainerProps>): this
-  /**
-   * Iterates through the container’s immediate children,
-   * calling `callback` for each child.
-   *
-   * Returning `false` in the callback will break iteration.
-   *
-   * This method only iterates through the container’s immediate children.
-   * If you need to recursively iterate through all the container’s descendant
-   * nodes, use `Container#walk`.
-   *
-   * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe
-   * if you are mutating the array of child nodes during iteration.
-   * PostCSS will adjust the current index to match the mutations.
-   *
-   * ```js
-   * const root = postcss.parse('a { color: black; z-index: 1 }')
-   * const rule = root.first
-   *
-   * for (const decl of rule.nodes) {
-   *   decl.cloneBefore({ prop: '-webkit-' + decl.prop })
-   *   // Cycle will be infinite, because cloneBefore moves the current node
-   *   // to the next index
-   * }
-   *
-   * rule.each(decl => {
-   *   decl.cloneBefore({ prop: '-webkit-' + decl.prop })
-   *   // Will be executed only for color and z-index
-   * })
-   * ```
-   *
-   * @param callback Iterator receives each node and index.
-   * @return Returns `false` if iteration was broke.
-   */
-  each(
-    callback: (node: Child, index: number) => false | void
-  ): false | undefined
-
-  /**
-   * Returns `true` if callback returns `true`
-   * for all of the container’s children.
-   *
-   * ```js
-   * const noPrefixes = rule.every(i => i.prop[0] !== '-')
-   * ```
-   *
-   * @param condition Iterator returns true or false.
-   * @return Is every child pass condition.
-   */
-  every(
-    condition: (node: Child, index: number, nodes: Child[]) => boolean
-  ): boolean
-  /**
-   * Returns a `child`’s index within the `Container#nodes` array.
-   *
-   * ```js
-   * rule.index( rule.nodes[2] ) //=> 2
-   * ```
-   *
-   * @param child Child of the current container.
-   * @return Child index.
-   */
-  index(child: Child | number): number
-
-  /**
-   * Insert new node after old node within the container.
-   *
-   * @param oldNode Child or child’s index.
-   * @param newNode New node.
-   * @return This node for methods chain.
-   */
-  insertAfter(oldNode: Child | number, newNode: Container.NewChild): this
-
-  /**
-   * Traverses the container’s descendant nodes, calling callback
-   * for each comment node.
-   *
-   * Like `Container#each`, this method is safe
-   * to use if you are mutating arrays during iteration.
-   *
-   * ```js
-   * root.walkComments(comment => {
-   *   comment.remove()
-   * })
-   * ```
-   *
-   * @param callback Iterator receives each node and index.
-   * @return Returns `false` if iteration was broke.
-   */
-
-  /**
-   * Insert new node before old node within the container.
-   *
-   * ```js
-   * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }))
-   * ```
-   *
-   * @param oldNode Child or child’s index.
-   * @param newNode New node.
-   * @return This node for methods chain.
-   */
-  insertBefore(oldNode: Child | number, newNode: Container.NewChild): this
-  /**
-   * Inserts new nodes to the start of the container.
-   *
-   * ```js
-   * const decl1 = new Declaration({ prop: 'color', value: 'black' })
-   * const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
-   * rule.prepend(decl1, decl2)
-   *
-   * root.append({ name: 'charset', params: '"UTF-8"' })  // at-rule
-   * root.append({ selector: 'a' })                       // rule
-   * rule.append({ prop: 'color', value: 'black' })       // declaration
-   * rule.append({ text: 'Comment' })                     // comment
-   *
-   * root.append('a {}')
-   * root.first.append('color: black; z-index: 1')
-   * ```
-   *
-   * @param nodes New nodes.
-   * @return This node for methods chain.
-   */
-  prepend(...nodes: Container.NewChild[]): this
-
-  /**
-   * Add child to the end of the node.
-   *
-   * ```js
-   * rule.push(new Declaration({ prop: 'color', value: 'black' }))
-   * ```
-   *
-   * @param child New node.
-   * @return This node for methods chain.
-   */
-  push(child: Child): this
-
-  /**
-   * Removes all children from the container
-   * and cleans their parent properties.
-   *
-   * ```js
-   * rule.removeAll()
-   * rule.nodes.length //=> 0
-   * ```
-   *
-   * @return This node for methods chain.
-   */
-  removeAll(): this
-
-  /**
-   * Removes node from the container and cleans the parent properties
-   * from the node and its children.
-   *
-   * ```js
-   * rule.nodes.length  //=> 5
-   * rule.removeChild(decl)
-   * rule.nodes.length  //=> 4
-   * decl.parent        //=> undefined
-   * ```
-   *
-   * @param child Child or child’s index.
-   * @return This node for methods chain.
-   */
-  removeChild(child: Child | number): this
-
-  replaceValues(
-    pattern: RegExp | string,
-    replaced: { (substring: string, ...args: any[]): string } | string
-  ): this
-  /**
-   * Passes all declaration values within the container that match pattern
-   * through callback, replacing those values with the returned result
-   * of callback.
-   *
-   * This method is useful if you are using a custom unit or function
-   * and need to iterate through all values.
-   *
-   * ```js
-   * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => {
-   *   return 15 * parseInt(string) + 'px'
-   * })
-   * ```
-   *
-   * @param pattern      Replace pattern.
-   * @param {object} options             Options to speed up the search.
-   * @param replaced   String to replace pattern or callback
-   *                                     that returns a new value. The callback
-   *                                     will receive the same arguments
-   *                                     as those passed to a function parameter
-   *                                     of `String#replace`.
-   * @return This node for methods chain.
-   */
-  replaceValues(
-    pattern: RegExp | string,
-    options: Container.ValueOptions,
-    replaced: { (substring: string, ...args: any[]): string } | string
-  ): this
-
-  /**
-   * Returns `true` if callback returns `true` for (at least) one
-   * of the container’s children.
-   *
-   * ```js
-   * const hasPrefix = rule.some(i => i.prop[0] === '-')
-   * ```
-   *
-   * @param condition Iterator returns true or false.
-   * @return Is some child pass condition.
-   */
-  some(
-    condition: (node: Child, index: number, nodes: Child[]) => boolean
-  ): boolean
-
-  /**
-   * Traverses the container’s descendant nodes, calling callback
-   * for each node.
-   *
-   * Like container.each(), this method is safe to use
-   * if you are mutating arrays during iteration.
-   *
-   * If you only need to iterate through the container’s immediate children,
-   * use `Container#each`.
-   *
-   * ```js
-   * root.walk(node => {
-   *   // Traverses all descendant nodes.
-   * })
-   * ```
-   *
-   * @param callback Iterator receives each node and index.
-   * @return  Returns `false` if iteration was broke.
-   */
-  walk(
-    callback: (node: ChildNode, index: number) => false | void
-  ): false | undefined
-
-  /**
-   * Traverses the container’s descendant nodes, calling callback
-   * for each at-rule node.
-   *
-   * If you pass a filter, iteration will only happen over at-rules
-   * that have matching names.
-   *
-   * Like `Container#each`, this method is safe
-   * to use if you are mutating arrays during iteration.
-   *
-   * ```js
-   * root.walkAtRules(rule => {
-   *   if (isOld(rule.name)) rule.remove()
-   * })
-   *
-   * let first = false
-   * root.walkAtRules('charset', rule => {
-   *   if (!first) {
-   *     first = true
-   *   } else {
-   *     rule.remove()
-   *   }
-   * })
-   * ```
-   *
-   * @param name     String or regular expression to filter at-rules by name.
-   * @param callback Iterator receives each node and index.
-   * @return Returns `false` if iteration was broke.
-   */
-  walkAtRules(
-    nameFilter: RegExp | string,
-    callback: (atRule: AtRule, index: number) => false | void
-  ): false | undefined
-  walkAtRules(
-    callback: (atRule: AtRule, index: number) => false | void
-  ): false | undefined
-
-  walkComments(
-    callback: (comment: Comment, indexed: number) => false | void
-  ): false | undefined
-  walkComments(
-    callback: (comment: Comment, indexed: number) => false | void
-  ): false | undefined
-
-  /**
-   * Traverses the container’s descendant nodes, calling callback
-   * for each declaration node.
-   *
-   * If you pass a filter, iteration will only happen over declarations
-   * with matching properties.
-   *
-   * ```js
-   * root.walkDecls(decl => {
-   *   checkPropertySupport(decl.prop)
-   * })
-   *
-   * root.walkDecls('border-radius', decl => {
-   *   decl.remove()
-   * })
-   *
-   * root.walkDecls(/^background/, decl => {
-   *   decl.value = takeFirstColorFromGradient(decl.value)
-   * })
-   * ```
-   *
-   * Like `Container#each`, this method is safe
-   * to use if you are mutating arrays during iteration.
-   *
-   * @param prop     String or regular expression to filter declarations
-   *                 by property name.
-   * @param callback Iterator receives each node and index.
-   * @return Returns `false` if iteration was broke.
-   */
-  walkDecls(
-    propFilter: RegExp | string,
-    callback: (decl: Declaration, index: number) => false | void
-  ): false | undefined
-  walkDecls(
-    callback: (decl: Declaration, index: number) => false | void
-  ): false | undefined
-  /**
-   * Traverses the container’s descendant nodes, calling callback
-   * for each rule node.
-   *
-   * If you pass a filter, iteration will only happen over rules
-   * with matching selectors.
-   *
-   * Like `Container#each`, this method is safe
-   * to use if you are mutating arrays during iteration.
-   *
-   * ```js
-   * const selectors = []
-   * root.walkRules(rule => {
-   *   selectors.push(rule.selector)
-   * })
-   * console.log(`Your CSS uses ${ selectors.length } selectors`)
-   * ```
-   *
-   * @param selector String or regular expression to filter rules by selector.
-   * @param callback Iterator receives each node and index.
-   * @return Returns `false` if iteration was broke.
-   */
-  walkRules(
-    selectorFilter: RegExp | string,
-    callback: (rule: Rule, index: number) => false | void
-  ): false | undefined
-  walkRules(
-    callback: (rule: Rule, index: number) => false | void
-  ): false | undefined
-  /**
-   * An internal method that converts a {@link NewChild} into a list of actual
-   * child nodes that can then be added to this container.
-   *
-   * This ensures that the nodes' parent is set to this container, that they use
-   * the correct prototype chain, and that they're marked as dirty.
-   *
-   * @param mnodes The new node or nodes to add.
-   * @param sample A node from whose raws the new node's `before` raw should be
-   *               taken.
-   * @param type   This should be set to `'prepend'` if the new nodes will be
-   *               inserted at the beginning of the container.
-   * @hidden
-   */
-  protected normalize(
-    nodes: Container.NewChild,
-    sample: Node | undefined,
-    type?: 'prepend' | false
-  ): Child[]
-}
-
-declare class Container<
-  Child extends Node = ChildNode
-> extends Container_<Child> {}
-
-export = Container
Index: de_modules/postcss/lib/container.js
===================================================================
--- node_modules/postcss/lib/container.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,447 +1,0 @@
-'use strict'
-
-let Comment = require('./comment')
-let Declaration = require('./declaration')
-let Node = require('./node')
-let { isClean, my } = require('./symbols')
-
-let AtRule, parse, Root, Rule
-
-function cleanSource(nodes) {
-  return nodes.map(i => {
-    if (i.nodes) i.nodes = cleanSource(i.nodes)
-    delete i.source
-    return i
-  })
-}
-
-function markTreeDirty(node) {
-  node[isClean] = false
-  if (node.proxyOf.nodes) {
-    for (let i of node.proxyOf.nodes) {
-      markTreeDirty(i)
-    }
-  }
-}
-
-class Container extends Node {
-  get first() {
-    if (!this.proxyOf.nodes) return undefined
-    return this.proxyOf.nodes[0]
-  }
-
-  get last() {
-    if (!this.proxyOf.nodes) return undefined
-    return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]
-  }
-
-  append(...children) {
-    for (let child of children) {
-      let nodes = this.normalize(child, this.last)
-      for (let node of nodes) this.proxyOf.nodes.push(node)
-    }
-
-    this.markDirty()
-
-    return this
-  }
-
-  cleanRaws(keepBetween) {
-    super.cleanRaws(keepBetween)
-    if (this.nodes) {
-      for (let node of this.nodes) node.cleanRaws(keepBetween)
-    }
-  }
-
-  each(callback) {
-    if (!this.proxyOf.nodes) return undefined
-    let iterator = this.getIterator()
-
-    let index, result
-    while (this.indexes[iterator] < this.proxyOf.nodes.length) {
-      index = this.indexes[iterator]
-      result = callback(this.proxyOf.nodes[index], index)
-      if (result === false) break
-
-      this.indexes[iterator] += 1
-    }
-
-    delete this.indexes[iterator]
-    return result
-  }
-
-  every(condition) {
-    return this.nodes.every(condition)
-  }
-
-  getIterator() {
-    if (!this.lastEach) this.lastEach = 0
-    if (!this.indexes) this.indexes = {}
-
-    this.lastEach += 1
-    let iterator = this.lastEach
-    this.indexes[iterator] = 0
-
-    return iterator
-  }
-
-  getProxyProcessor() {
-    return {
-      get(node, prop) {
-        if (prop === 'proxyOf') {
-          return node
-        } else if (!node[prop]) {
-          return node[prop]
-        } else if (
-          prop === 'each' ||
-          (typeof prop === 'string' && prop.startsWith('walk'))
-        ) {
-          return (...args) => {
-            return node[prop](
-              ...args.map(i => {
-                if (typeof i === 'function') {
-                  return (child, index) => i(child.toProxy(), index)
-                } else {
-                  return i
-                }
-              })
-            )
-          }
-        } else if (prop === 'every' || prop === 'some') {
-          return cb => {
-            return node[prop]((child, ...other) =>
-              cb(child.toProxy(), ...other)
-            )
-          }
-        } else if (prop === 'root') {
-          return () => node.root().toProxy()
-        } else if (prop === 'nodes') {
-          return node.nodes.map(i => i.toProxy())
-        } else if (prop === 'first' || prop === 'last') {
-          return node[prop].toProxy()
-        } else {
-          return node[prop]
-        }
-      },
-
-      set(node, prop, value) {
-        if (node[prop] === value) return true
-        node[prop] = value
-        if (prop === 'name' || prop === 'params' || prop === 'selector') {
-          node.markDirty()
-        }
-        return true
-      }
-    }
-  }
-
-  index(child) {
-    if (typeof child === 'number') return child
-    if (child.proxyOf) child = child.proxyOf
-    return this.proxyOf.nodes.indexOf(child)
-  }
-
-  insertAfter(exist, add) {
-    let existIndex = this.index(exist)
-    let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()
-    existIndex = this.index(exist)
-    for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)
-
-    let index
-    for (let id in this.indexes) {
-      index = this.indexes[id]
-      if (existIndex < index) {
-        this.indexes[id] = index + nodes.length
-      }
-    }
-
-    this.markDirty()
-
-    return this
-  }
-
-  insertBefore(exist, add) {
-    let existIndex = this.index(exist)
-    let type = existIndex === 0 ? 'prepend' : false
-    let nodes = this.normalize(
-      add,
-      this.proxyOf.nodes[existIndex],
-      type
-    ).reverse()
-    existIndex = this.index(exist)
-    for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)
-
-    let index
-    for (let id in this.indexes) {
-      index = this.indexes[id]
-      if (existIndex <= index) {
-        this.indexes[id] = index + nodes.length
-      }
-    }
-
-    this.markDirty()
-
-    return this
-  }
-
-  normalize(nodes, sample) {
-    if (typeof nodes === 'string') {
-      nodes = cleanSource(parse(nodes).nodes)
-    } else if (typeof nodes === 'undefined') {
-      nodes = []
-    } else if (Array.isArray(nodes)) {
-      nodes = nodes.slice(0)
-      for (let i of nodes) {
-        if (i.parent) i.parent.removeChild(i, 'ignore')
-      }
-    } else if (nodes.type === 'root' && this.type !== 'document') {
-      nodes = nodes.nodes.slice(0)
-      for (let i of nodes) {
-        if (i.parent) i.parent.removeChild(i, 'ignore')
-      }
-    } else if (nodes.type) {
-      nodes = [nodes]
-    } else if (nodes.prop) {
-      if (typeof nodes.value === 'undefined') {
-        throw new Error('Value field is missed in node creation')
-      } else if (typeof nodes.value !== 'string') {
-        nodes.value = String(nodes.value)
-      }
-      nodes = [new Declaration(nodes)]
-    } else if (nodes.selector || nodes.selectors) {
-      nodes = [new Rule(nodes)]
-    } else if (nodes.name) {
-      nodes = [new AtRule(nodes)]
-    } else if (nodes.text) {
-      nodes = [new Comment(nodes)]
-    } else {
-      throw new Error('Unknown node type in node creation')
-    }
-
-    let processed = nodes.map(i => {
-      /* c8 ignore next */
-      if (!i[my]) Container.rebuild(i)
-      i = i.proxyOf
-      if (i.parent) i.parent.removeChild(i)
-      if (i[isClean]) markTreeDirty(i)
-
-      if (!i.raws) i.raws = {}
-      if (typeof i.raws.before === 'undefined') {
-        if (sample && typeof sample.raws.before !== 'undefined') {
-          i.raws.before = sample.raws.before.replace(/\S/g, '')
-        }
-      }
-      i.parent = this.proxyOf
-      return i
-    })
-
-    return processed
-  }
-
-  prepend(...children) {
-    children = children.reverse()
-    for (let child of children) {
-      let nodes = this.normalize(child, this.first, 'prepend').reverse()
-      for (let node of nodes) this.proxyOf.nodes.unshift(node)
-      for (let id in this.indexes) {
-        this.indexes[id] = this.indexes[id] + nodes.length
-      }
-    }
-
-    this.markDirty()
-
-    return this
-  }
-
-  push(child) {
-    child.parent = this
-    this.proxyOf.nodes.push(child)
-    return this
-  }
-
-  removeAll() {
-    for (let node of this.proxyOf.nodes) node.parent = undefined
-    this.proxyOf.nodes = []
-
-    this.markDirty()
-
-    return this
-  }
-
-  removeChild(child) {
-    child = this.index(child)
-    this.proxyOf.nodes[child].parent = undefined
-    this.proxyOf.nodes.splice(child, 1)
-
-    let index
-    for (let id in this.indexes) {
-      index = this.indexes[id]
-      if (index >= child) {
-        this.indexes[id] = index - 1
-      }
-    }
-
-    this.markDirty()
-
-    return this
-  }
-
-  replaceValues(pattern, opts, callback) {
-    if (!callback) {
-      callback = opts
-      opts = {}
-    }
-
-    this.walkDecls(decl => {
-      if (opts.props && !opts.props.includes(decl.prop)) return
-      if (opts.fast && !decl.value.includes(opts.fast)) return
-
-      decl.value = decl.value.replace(pattern, callback)
-    })
-
-    this.markDirty()
-
-    return this
-  }
-
-  some(condition) {
-    return this.nodes.some(condition)
-  }
-
-  walk(callback) {
-    return this.each((child, i) => {
-      let result
-      try {
-        result = callback(child, i)
-      } catch (e) {
-        throw child.addToError(e)
-      }
-      if (result !== false && child.walk) {
-        result = child.walk(callback)
-      }
-
-      return result
-    })
-  }
-
-  walkAtRules(name, callback) {
-    if (!callback) {
-      callback = name
-      return this.walk((child, i) => {
-        if (child.type === 'atrule') {
-          return callback(child, i)
-        }
-      })
-    }
-    if (name instanceof RegExp) {
-      return this.walk((child, i) => {
-        if (child.type === 'atrule' && name.test(child.name)) {
-          return callback(child, i)
-        }
-      })
-    }
-    return this.walk((child, i) => {
-      if (child.type === 'atrule' && child.name === name) {
-        return callback(child, i)
-      }
-    })
-  }
-
-  walkComments(callback) {
-    return this.walk((child, i) => {
-      if (child.type === 'comment') {
-        return callback(child, i)
-      }
-    })
-  }
-
-  walkDecls(prop, callback) {
-    if (!callback) {
-      callback = prop
-      return this.walk((child, i) => {
-        if (child.type === 'decl') {
-          return callback(child, i)
-        }
-      })
-    }
-    if (prop instanceof RegExp) {
-      return this.walk((child, i) => {
-        if (child.type === 'decl' && prop.test(child.prop)) {
-          return callback(child, i)
-        }
-      })
-    }
-    return this.walk((child, i) => {
-      if (child.type === 'decl' && child.prop === prop) {
-        return callback(child, i)
-      }
-    })
-  }
-
-  walkRules(selector, callback) {
-    if (!callback) {
-      callback = selector
-
-      return this.walk((child, i) => {
-        if (child.type === 'rule') {
-          return callback(child, i)
-        }
-      })
-    }
-    if (selector instanceof RegExp) {
-      return this.walk((child, i) => {
-        if (child.type === 'rule' && selector.test(child.selector)) {
-          return callback(child, i)
-        }
-      })
-    }
-    return this.walk((child, i) => {
-      if (child.type === 'rule' && child.selector === selector) {
-        return callback(child, i)
-      }
-    })
-  }
-}
-
-Container.registerParse = dependant => {
-  parse = dependant
-}
-
-Container.registerRule = dependant => {
-  Rule = dependant
-}
-
-Container.registerAtRule = dependant => {
-  AtRule = dependant
-}
-
-Container.registerRoot = dependant => {
-  Root = dependant
-}
-
-module.exports = Container
-Container.default = Container
-
-/* c8 ignore start */
-Container.rebuild = node => {
-  if (node.type === 'atrule') {
-    Object.setPrototypeOf(node, AtRule.prototype)
-  } else if (node.type === 'rule') {
-    Object.setPrototypeOf(node, Rule.prototype)
-  } else if (node.type === 'decl') {
-    Object.setPrototypeOf(node, Declaration.prototype)
-  } else if (node.type === 'comment') {
-    Object.setPrototypeOf(node, Comment.prototype)
-  } else if (node.type === 'root') {
-    Object.setPrototypeOf(node, Root.prototype)
-  }
-
-  node[my] = true
-
-  if (node.nodes) {
-    node.nodes.forEach(child => {
-      Container.rebuild(child)
-    })
-  }
-}
-/* c8 ignore stop */
Index: de_modules/postcss/lib/css-syntax-error.d.ts
===================================================================
--- node_modules/postcss/lib/css-syntax-error.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,248 +1,0 @@
-import { FilePosition } from './input.js'
-
-declare namespace CssSyntaxError {
-  /**
-   * A position that is part of a range.
-   */
-  export interface RangePosition {
-    /**
-     * The column number in the input.
-     */
-    column: number
-
-    /**
-     * The line number in the input.
-     */
-    line: number
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { CssSyntaxError_ as default }
-}
-
-/**
- * The CSS parser throws this error for broken CSS.
- *
- * Custom parsers can throw this error for broken custom syntax using
- * the `Node#error` method.
- *
- * PostCSS will use the input source map to detect the original error location.
- * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,
- * PostCSS will show the original position in the Sass file.
- *
- * If you need the position in the PostCSS input
- * (e.g., to debug the previous compiler), use `error.input.file`.
- *
- * ```js
- * // Raising error from plugin
- * throw node.error('Unknown variable', { plugin: 'postcss-vars' })
- * ```
- *
- * ```js
- * // Catching and checking syntax error
- * try {
- *   postcss.parse('a{')
- * } catch (error) {
- *   if (error.name === 'CssSyntaxError') {
- *     error //=> CssSyntaxError
- *   }
- * }
- * ```
- */
-declare class CssSyntaxError_ extends Error {
-  /**
-   * Source column of the error.
-   *
-   * ```js
-   * error.column       //=> 1
-   * error.input.column //=> 4
-   * ```
-   *
-   * PostCSS will use the input source map to detect the original location.
-   * If you need the position in the PostCSS input, use `error.input.column`.
-   */
-  column?: number
-
-  /**
-   * Source column of the error's end, exclusive. Provided if the error pertains
-   * to a range.
-   *
-   * ```js
-   * error.endColumn       //=> 1
-   * error.input.endColumn //=> 4
-   * ```
-   *
-   * PostCSS will use the input source map to detect the original location.
-   * If you need the position in the PostCSS input, use `error.input.endColumn`.
-   */
-  endColumn?: number
-
-  /**
-   * Source line of the error's end, exclusive. Provided if the error pertains
-   * to a range.
-   *
-   * ```js
-   * error.endLine       //=> 3
-   * error.input.endLine //=> 4
-   * ```
-   *
-   * PostCSS will use the input source map to detect the original location.
-   * If you need the position in the PostCSS input, use `error.input.endLine`.
-   */
-  endLine?: number
-
-  /**
-   * Absolute path to the broken file.
-   *
-   * ```js
-   * error.file       //=> 'a.sass'
-   * error.input.file //=> 'a.css'
-   * ```
-   *
-   * PostCSS will use the input source map to detect the original location.
-   * If you need the position in the PostCSS input, use `error.input.file`.
-   */
-  file?: string
-
-  /**
-   * Input object with PostCSS internal information
-   * about input file. If input has source map
-   * from previous tool, PostCSS will use origin
-   * (for example, Sass) source. You can use this
-   * object to get PostCSS input source.
-   *
-   * ```js
-   * error.input.file //=> 'a.css'
-   * error.file       //=> 'a.sass'
-   * ```
-   */
-  input?: FilePosition
-
-  /**
-   * Source line of the error.
-   *
-   * ```js
-   * error.line       //=> 2
-   * error.input.line //=> 4
-   * ```
-   *
-   * PostCSS will use the input source map to detect the original location.
-   * If you need the position in the PostCSS input, use `error.input.line`.
-   */
-  line?: number
-
-  /**
-   * Full error text in the GNU error format
-   * with plugin, file, line and column.
-   *
-   * ```js
-   * error.message //=> 'a.css:1:1: Unclosed block'
-   * ```
-   */
-  message: string
-
-  /**
-   * Always equal to `'CssSyntaxError'`. You should always check error type
-   * by `error.name === 'CssSyntaxError'`
-   * instead of `error instanceof CssSyntaxError`,
-   * because npm could have several PostCSS versions.
-   *
-   * ```js
-   * if (error.name === 'CssSyntaxError') {
-   *   error //=> CssSyntaxError
-   * }
-   * ```
-   */
-  name: 'CssSyntaxError'
-
-  /**
-   * Plugin name, if error came from plugin.
-   *
-   * ```js
-   * error.plugin //=> 'postcss-vars'
-   * ```
-   */
-  plugin?: string
-
-  /**
-   * Error message.
-   *
-   * ```js
-   * error.message //=> 'Unclosed block'
-   * ```
-   */
-  reason: string
-
-  /**
-   * Source code of the broken file.
-   *
-   * ```js
-   * error.source       //=> 'a { b {} }'
-   * error.input.source //=> 'a b { }'
-   * ```
-   */
-  source?: string
-
-  stack: string
-
-  /**
-   * Instantiates a CSS syntax error. Can be instantiated for a single position
-   * or for a range.
-   * @param message        Error message.
-   * @param lineOrStartPos If for a single position, the line number, or if for
-   *                       a range, the inclusive start position of the error.
-   * @param columnOrEndPos If for a single position, the column number, or if for
-   *                       a range, the exclusive end position of the error.
-   * @param source         Source code of the broken file.
-   * @param file           Absolute path to the broken file.
-   * @param plugin         PostCSS plugin name, if error came from plugin.
-   */
-  constructor(
-    message: string,
-    lineOrStartPos?: CssSyntaxError.RangePosition | number,
-    columnOrEndPos?: CssSyntaxError.RangePosition | number,
-    source?: string,
-    file?: string,
-    plugin?: string
-  )
-
-  /**
-   * Returns a few lines of CSS source that caused the error.
-   *
-   * If the CSS has an input source map without `sourceContent`,
-   * this method will return an empty string.
-   *
-   * ```js
-   * error.showSourceCode() //=> "  4 | }
-   *                        //      5 | a {
-   *                        //    > 6 |   bad
-   *                        //        |   ^
-   *                        //      7 | }
-   *                        //      8 | b {"
-   * ```
-   *
-   * @param color Whether arrow will be colored red by terminal
-   *              color codes. By default, PostCSS will detect
-   *              color support by `process.stdout.isTTY`
-   *              and `process.env.NODE_DISABLE_COLORS`.
-   * @return Few lines of CSS source that caused the error.
-   */
-  showSourceCode(color?: boolean): string
-
-  /**
-   * Returns error position, message and source code of the broken part.
-   *
-   * ```js
-   * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block
-   *                  //    > 1 | a {
-   *                  //        | ^"
-   * ```
-   *
-   * @return Error position, message and source code.
-   */
-  toString(): string
-}
-
-declare class CssSyntaxError extends CssSyntaxError_ {}
-
-export = CssSyntaxError
Index: de_modules/postcss/lib/css-syntax-error.js
===================================================================
--- node_modules/postcss/lib/css-syntax-error.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,133 +1,0 @@
-'use strict'
-
-let pico = require('picocolors')
-
-let terminalHighlight = require('./terminal-highlight')
-
-class CssSyntaxError extends Error {
-  constructor(message, line, column, source, file, plugin) {
-    super(message)
-    this.name = 'CssSyntaxError'
-    this.reason = message
-
-    if (file) {
-      this.file = file
-    }
-    if (source) {
-      this.source = source
-    }
-    if (plugin) {
-      this.plugin = plugin
-    }
-    if (typeof line !== 'undefined' && typeof column !== 'undefined') {
-      if (typeof line === 'number') {
-        this.line = line
-        this.column = column
-      } else {
-        this.line = line.line
-        this.column = line.column
-        this.endLine = column.line
-        this.endColumn = column.column
-      }
-    }
-
-    this.setMessage()
-
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, CssSyntaxError)
-    }
-  }
-
-  setMessage() {
-    this.message = this.plugin ? this.plugin + ': ' : ''
-    this.message += this.file ? this.file : '<css input>'
-    if (typeof this.line !== 'undefined') {
-      this.message += ':' + this.line + ':' + this.column
-    }
-    this.message += ': ' + this.reason
-  }
-
-  showSourceCode(color) {
-    if (!this.source) return ''
-
-    let css = this.source
-    if (color == null) color = pico.isColorSupported
-
-    let aside = text => text
-    let mark = text => text
-    let highlight = text => text
-    if (color) {
-      let { bold, gray, red } = pico.createColors(true)
-      mark = text => bold(red(text))
-      aside = text => gray(text)
-      if (terminalHighlight) {
-        highlight = text => terminalHighlight(text)
-      }
-    }
-
-    let lines = css.split(/\r?\n/)
-    let start = Math.max(this.line - 3, 0)
-    let end = Math.min(this.line + 2, lines.length)
-    let maxWidth = String(end).length
-
-    return lines
-      .slice(start, end)
-      .map((line, index) => {
-        let number = start + 1 + index
-        let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '
-        if (number === this.line) {
-          if (line.length > 160) {
-            let padding = 20
-            let subLineStart = Math.max(0, this.column - padding)
-            let subLineEnd = Math.max(
-              this.column + padding,
-              this.endColumn + padding
-            )
-            let subLine = line.slice(subLineStart, subLineEnd)
-
-            let spacing =
-              aside(gutter.replace(/\d/g, ' ')) +
-              line
-                .slice(0, Math.min(this.column - 1, padding - 1))
-                .replace(/[^\t]/g, ' ')
-
-            return (
-              mark('>') +
-              aside(gutter) +
-              highlight(subLine) +
-              '\n ' +
-              spacing +
-              mark('^')
-            )
-          }
-
-          let spacing =
-            aside(gutter.replace(/\d/g, ' ')) +
-            line.slice(0, this.column - 1).replace(/[^\t]/g, ' ')
-
-          return (
-            mark('>') +
-            aside(gutter) +
-            highlight(line) +
-            '\n ' +
-            spacing +
-            mark('^')
-          )
-        }
-
-        return ' ' + aside(gutter) + highlight(line)
-      })
-      .join('\n')
-  }
-
-  toString() {
-    let code = this.showSourceCode()
-    if (code) {
-      code = '\n\n' + code + '\n'
-    }
-    return this.name + ': ' + this.message + code
-  }
-}
-
-module.exports = CssSyntaxError
-CssSyntaxError.default = CssSyntaxError
Index: de_modules/postcss/lib/declaration.d.ts
===================================================================
--- node_modules/postcss/lib/declaration.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,151 +1,0 @@
-import { ContainerWithChildren } from './container.js'
-import Node from './node.js'
-
-declare namespace Declaration {
-  export interface DeclarationRaws extends Record<string, unknown> {
-    /**
-     * The space symbols before the node. It also stores `*`
-     * and `_` symbols before the declaration (IE hack).
-     */
-    before?: string
-
-    /**
-     * The symbols between the property and value for declarations.
-     */
-    between?: string
-
-    /**
-     * The content of the important statement, if it is not just `!important`.
-     */
-    important?: string
-
-    /**
-     * Declaration value with comments.
-     */
-    value?: {
-      raw: string
-      value: string
-    }
-  }
-
-  export interface DeclarationProps {
-    /** Whether the declaration has an `!important` annotation. */
-    important?: boolean
-    /** Name of the declaration. */
-    prop: string
-    /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
-    raws?: DeclarationRaws
-    /** Value of the declaration. */
-    value: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Declaration_ as default }
-}
-
-/**
- * It represents a class that handles
- * [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations)
- *
- * ```js
- * Once (root, { Declaration }) {
- *   const color = new Declaration({ prop: 'color', value: 'black' })
- *   root.append(color)
- * }
- * ```
- *
- * ```js
- * const root = postcss.parse('a { color: black }')
- * const decl = root.first?.first
- *
- * decl.type       //=> 'decl'
- * decl.toString() //=> ' color: black'
- * ```
- */
-declare class Declaration_ extends Node {
-  parent: ContainerWithChildren | undefined
-  raws: Declaration.DeclarationRaws
-
-  type: 'decl'
-
-  /**
-   * It represents a specificity of the declaration.
-   *
-   * If true, the CSS declaration will have an
-   * [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important)
-   * specifier.
-   *
-   * ```js
-   * const root = postcss.parse('a { color: black !important; color: red }')
-   *
-   * root.first.first.important //=> true
-   * root.first.last.important  //=> undefined
-   * ```
-   */
-  get important(): boolean
-  set important(value: boolean)
-
-  /**
-   * The property name for a CSS declaration.
-   *
-   * ```js
-   * const root = postcss.parse('a { color: black }')
-   * const decl = root.first.first
-   *
-   * decl.prop //=> 'color'
-   * ```
-   */
-  get prop(): string
-
-  set prop(value: string)
-
-  /**
-   * The property value for a CSS declaration.
-   *
-   * Any CSS comments inside the value string will be filtered out.
-   * CSS comments present in the source value will be available in
-   * the `raws` property.
-   *
-   * Assigning new `value` would ignore the comments in `raws`
-   * property while compiling node to string.
-   *
-   * ```js
-   * const root = postcss.parse('a { color: black }')
-   * const decl = root.first.first
-   *
-   * decl.value //=> 'black'
-   * ```
-   */
-  get value(): string
-  set value(value: string)
-
-  /**
-   * It represents a getter that returns `true` if a declaration starts with
-   * `--` or `$`, which are used to declare variables in CSS and SASS/SCSS.
-   *
-   * ```js
-   * const root = postcss.parse(':root { --one: 1 }')
-   * const one = root.first.first
-   *
-   * one.variable //=> true
-   * ```
-   *
-   * ```js
-   * const root = postcss.parse('$one: 1')
-   * const one = root.first
-   *
-   * one.variable //=> true
-   * ```
-   */
-  get variable(): boolean
-  constructor(defaults?: Declaration.DeclarationProps)
-
-  assign(overrides: Declaration.DeclarationProps | object): this
-  clone(overrides?: Partial<Declaration.DeclarationProps>): this
-  cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): this
-  cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): this
-}
-
-declare class Declaration extends Declaration_ {}
-
-export = Declaration
Index: de_modules/postcss/lib/declaration.js
===================================================================
--- node_modules/postcss/lib/declaration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-'use strict'
-
-let Node = require('./node')
-
-class Declaration extends Node {
-  get variable() {
-    return this.prop.startsWith('--') || this.prop[0] === '$'
-  }
-
-  constructor(defaults) {
-    if (
-      defaults &&
-      typeof defaults.value !== 'undefined' &&
-      typeof defaults.value !== 'string'
-    ) {
-      defaults = { ...defaults, value: String(defaults.value) }
-    }
-    super(defaults)
-    this.type = 'decl'
-  }
-}
-
-module.exports = Declaration
-Declaration.default = Declaration
Index: de_modules/postcss/lib/document.d.ts
===================================================================
--- node_modules/postcss/lib/document.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-import Container, { ContainerProps } from './container.js'
-import { ProcessOptions } from './postcss.js'
-import Result from './result.js'
-import Root from './root.js'
-
-declare namespace Document {
-  export interface DocumentProps extends ContainerProps {
-    nodes?: readonly Root[]
-
-    /**
-     * Information to generate byte-to-byte equal node string as it was
-     * in the origin input.
-     *
-     * Every parser saves its own properties.
-     */
-    raws?: Record<string, any>
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Document_ as default }
-}
-
-/**
- * Represents a file and contains all its parsed nodes.
- *
- * **Experimental:** some aspects of this node could change within minor
- * or patch version releases.
- *
- * ```js
- * const document = htmlParser(
- *   '<html><style>a{color:black}</style><style>b{z-index:2}</style>'
- * )
- * document.type         //=> 'document'
- * document.nodes.length //=> 2
- * ```
- */
-declare class Document_ extends Container<Root> {
-  nodes: Root[]
-  parent: undefined
-  type: 'document'
-
-  constructor(defaults?: Document.DocumentProps)
-
-  assign(overrides: Document.DocumentProps | object): this
-  clone(overrides?: Partial<Document.DocumentProps>): this
-  cloneAfter(overrides?: Partial<Document.DocumentProps>): this
-  cloneBefore(overrides?: Partial<Document.DocumentProps>): this
-
-  /**
-   * Returns a `Result` instance representing the document’s CSS roots.
-   *
-   * ```js
-   * const root1 = postcss.parse(css1, { from: 'a.css' })
-   * const root2 = postcss.parse(css2, { from: 'b.css' })
-   * const document = postcss.document()
-   * document.append(root1)
-   * document.append(root2)
-   * const result = document.toResult({ to: 'all.css', map: true })
-   * ```
-   *
-   * @param opts Options.
-   * @return Result with current document’s CSS.
-   */
-  toResult(options?: ProcessOptions): Result
-}
-
-declare class Document extends Document_ {}
-
-export = Document
Index: de_modules/postcss/lib/document.js
===================================================================
--- node_modules/postcss/lib/document.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-
-let LazyResult, Processor
-
-class Document extends Container {
-  constructor(defaults) {
-    // type needs to be passed to super, otherwise child roots won't be normalized correctly
-    super({ type: 'document', ...defaults })
-
-    if (!this.nodes) {
-      this.nodes = []
-    }
-  }
-
-  toResult(opts = {}) {
-    let lazy = new LazyResult(new Processor(), this, opts)
-
-    return lazy.stringify()
-  }
-}
-
-Document.registerLazyResult = dependant => {
-  LazyResult = dependant
-}
-
-Document.registerProcessor = dependant => {
-  Processor = dependant
-}
-
-module.exports = Document
-Document.default = Document
Index: de_modules/postcss/lib/fromJSON.d.ts
===================================================================
--- node_modules/postcss/lib/fromJSON.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { JSONHydrator } from './postcss.js'
-
-interface FromJSON extends JSONHydrator {
-  default: FromJSON
-}
-
-declare const fromJSON: FromJSON
-
-export = fromJSON
Index: de_modules/postcss/lib/fromJSON.js
===================================================================
--- node_modules/postcss/lib/fromJSON.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-'use strict'
-
-let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Declaration = require('./declaration')
-let Input = require('./input')
-let PreviousMap = require('./previous-map')
-let Root = require('./root')
-let Rule = require('./rule')
-
-function fromJSON(json, inputs) {
-  if (Array.isArray(json)) return json.map(n => fromJSON(n))
-
-  let { inputs: ownInputs, ...defaults } = json
-  if (ownInputs) {
-    inputs = []
-    for (let input of ownInputs) {
-      let inputHydrated = { ...input, __proto__: Input.prototype }
-      if (inputHydrated.map) {
-        inputHydrated.map = {
-          ...inputHydrated.map,
-          __proto__: PreviousMap.prototype
-        }
-      }
-      inputs.push(inputHydrated)
-    }
-  }
-  if (defaults.nodes) {
-    defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))
-  }
-  if (defaults.source) {
-    let { inputId, ...source } = defaults.source
-    defaults.source = source
-    if (inputId != null) {
-      defaults.source.input = inputs[inputId]
-    }
-  }
-  if (defaults.type === 'root') {
-    return new Root(defaults)
-  } else if (defaults.type === 'decl') {
-    return new Declaration(defaults)
-  } else if (defaults.type === 'rule') {
-    return new Rule(defaults)
-  } else if (defaults.type === 'comment') {
-    return new Comment(defaults)
-  } else if (defaults.type === 'atrule') {
-    return new AtRule(defaults)
-  } else {
-    throw new Error('Unknown node type: ' + json.type)
-  }
-}
-
-module.exports = fromJSON
-fromJSON.default = fromJSON
Index: de_modules/postcss/lib/input.d.ts
===================================================================
--- node_modules/postcss/lib/input.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,227 +1,0 @@
-import { CssSyntaxError, ProcessOptions } from './postcss.js'
-import PreviousMap from './previous-map.js'
-
-declare namespace Input {
-  export interface FilePosition {
-    /**
-     * Column of inclusive start position in source file.
-     */
-    column: number
-
-    /**
-     * Column of exclusive end position in source file.
-     */
-    endColumn?: number
-
-    /**
-     * Line of exclusive end position in source file.
-     */
-    endLine?: number
-
-    /**
-     * Offset of exclusive end position in source file.
-     */
-    endOffset?: number
-
-    /**
-     * Absolute path to the source file.
-     */
-    file?: string
-
-    /**
-     * Line of inclusive start position in source file.
-     */
-    line: number
-
-    /**
-     * Offset of inclusive start position in source file.
-     */
-    offset: number
-
-    /**
-     * Source code.
-     */
-    source?: string
-
-    /**
-     * URL for the source file.
-     */
-    url: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Input_ as default }
-}
-
-/**
- * Represents the source CSS.
- *
- * ```js
- * const root  = postcss.parse(css, { from: file })
- * const input = root.source.input
- * ```
- */
-declare class Input_ {
-  /**
-   * Input CSS source.
-   *
-   * ```js
-   * const input = postcss.parse('a{}', { from: file }).input
-   * input.css //=> "a{}"
-   * ```
-   */
-  css: string
-
-  /**
-   * Input source with support for non-CSS documents.
-   *
-   * ```js
-   * const input = postcss.parse('a{}', { from: file, document: '<style>a {}</style>' }).input
-   * input.document //=> "<style>a {}</style>"
-   * input.css //=> "a{}"
-   * ```
-   */
-  document: string
-
-  /**
-   * The absolute path to the CSS source file defined
-   * with the `from` option.
-   *
-   * ```js
-   * const root = postcss.parse(css, { from: 'a.css' })
-   * root.source.input.file //=> '/home/ai/a.css'
-   * ```
-   */
-  file?: string
-
-  /**
-   * The flag to indicate whether or not the source code has Unicode BOM.
-   */
-  hasBOM: boolean
-
-  /**
-   * The unique ID of the CSS source. It will be created if `from` option
-   * is not provided (because PostCSS does not know the file path).
-   *
-   * ```js
-   * const root = postcss.parse(css)
-   * root.source.input.file //=> undefined
-   * root.source.input.id   //=> "<input css 8LZeVF>"
-   * ```
-   */
-  id?: string
-
-  /**
-   * The input source map passed from a compilation step before PostCSS
-   * (for example, from Sass compiler).
-   *
-   * ```js
-   * root.source.input.map.consumer().sources //=> ['a.sass']
-   * ```
-   */
-  map: PreviousMap
-
-  /**
-   * The CSS source identifier. Contains `Input#file` if the user
-   * set the `from` option, or `Input#id` if they did not.
-   *
-   * ```js
-   * const root = postcss.parse(css, { from: 'a.css' })
-   * root.source.input.from //=> "/home/ai/a.css"
-   *
-   * const root = postcss.parse(css)
-   * root.source.input.from //=> "<input css 1>"
-   * ```
-   */
-  get from(): string
-
-  /**
-   * @param css  Input CSS source.
-   * @param opts Process options.
-   */
-  constructor(css: string, opts?: ProcessOptions)
-
-  /**
-   * Returns `CssSyntaxError` with information about the error and its position.
-   */
-  error(
-    message: string,
-    start:
-      | {
-          column: number
-          line: number
-        }
-      | {
-          offset: number
-        },
-    end:
-      | {
-          column: number
-          line: number
-        }
-      | {
-          offset: number
-        },
-    opts?: { plugin?: CssSyntaxError['plugin'] }
-  ): CssSyntaxError
-  error(
-    message: string,
-    line: number,
-    column: number,
-    opts?: { plugin?: CssSyntaxError['plugin'] }
-  ): CssSyntaxError
-  error(
-    message: string,
-    offset: number,
-    opts?: { plugin?: CssSyntaxError['plugin'] }
-  ): CssSyntaxError
-
-  /**
-   * Converts source line and column to offset.
-   *
-   * @param line   Source line.
-   * @param column Source column.
-   * @return Source offset.
-   */
-  fromLineAndColumn(line: number, column: number): number
-
-  /**
-   * Converts source offset to line and column.
-   *
-   * @param offset Source offset.
-   */
-  fromOffset(offset: number): { col: number; line: number } | null
-
-  /**
-   * Reads the input source map and returns a symbol position
-   * in the input source (e.g., in a Sass file that was compiled
-   * to CSS before being passed to PostCSS). Optionally takes an
-   * end position, exclusive.
-   *
-   * ```js
-   * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 }
-   * root.source.input.origin(1, 1, 1, 4)
-   * //=> { file: 'a.css', line: 3, column: 1, endLine: 3, endColumn: 4 }
-   * ```
-   *
-   * @param line      Line for inclusive start position in input CSS.
-   * @param column    Column for inclusive start position in input CSS.
-   * @param endLine   Line for exclusive end position in input CSS.
-   * @param endColumn Column for exclusive end position in input CSS.
-   *
-   * @return Position in input source.
-   */
-  origin(
-    line: number,
-    column: number,
-    endLine?: number,
-    endColumn?: number
-  ): false | Input.FilePosition
-
-  /** Converts this to a JSON-friendly object representation. */
-  toJSON(): object
-}
-
-declare class Input extends Input_ {}
-
-export = Input
Index: de_modules/postcss/lib/input.js
===================================================================
--- node_modules/postcss/lib/input.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,265 +1,0 @@
-'use strict'
-
-let { nanoid } = require('nanoid/non-secure')
-let { isAbsolute, resolve } = require('path')
-let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
-let { fileURLToPath, pathToFileURL } = require('url')
-
-let CssSyntaxError = require('./css-syntax-error')
-let PreviousMap = require('./previous-map')
-let terminalHighlight = require('./terminal-highlight')
-
-let lineToIndexCache = Symbol('lineToIndexCache')
-
-let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
-let pathAvailable = Boolean(resolve && isAbsolute)
-
-function getLineToIndex(input) {
-  if (input[lineToIndexCache]) return input[lineToIndexCache]
-  let lines = input.css.split('\n')
-  let lineToIndex = new Array(lines.length)
-  let prevIndex = 0
-
-  for (let i = 0, l = lines.length; i < l; i++) {
-    lineToIndex[i] = prevIndex
-    prevIndex += lines[i].length + 1
-  }
-
-  input[lineToIndexCache] = lineToIndex
-  return lineToIndex
-}
-
-class Input {
-  get from() {
-    return this.file || this.id
-  }
-
-  constructor(css, opts = {}) {
-    if (
-      css === null ||
-      typeof css === 'undefined' ||
-      (typeof css === 'object' && !css.toString)
-    ) {
-      throw new Error(`PostCSS received ${css} instead of CSS string`)
-    }
-
-    this.css = css.toString()
-
-    if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') {
-      this.hasBOM = true
-      this.css = this.css.slice(1)
-    } else {
-      this.hasBOM = false
-    }
-
-    this.document = this.css
-    if (opts.document) this.document = opts.document.toString()
-
-    if (opts.from) {
-      if (
-        !pathAvailable ||
-        /^\w+:\/\//.test(opts.from) ||
-        isAbsolute(opts.from)
-      ) {
-        this.file = opts.from
-      } else {
-        this.file = resolve(opts.from)
-      }
-    }
-
-    if (pathAvailable && sourceMapAvailable) {
-      let map = new PreviousMap(this.css, opts)
-      if (map.text) {
-        this.map = map
-        let file = map.consumer().file
-        if (!this.file && file) this.file = this.mapResolve(file)
-      }
-    }
-
-    if (!this.file) {
-      this.id = '<input css ' + nanoid(6) + '>'
-    }
-    if (this.map) this.map.file = this.from
-  }
-
-  error(message, line, column, opts = {}) {
-    let endColumn, endLine, endOffset, offset, result
-
-    if (line && typeof line === 'object') {
-      let start = line
-      let end = column
-      if (typeof start.offset === 'number') {
-        offset = start.offset
-        let pos = this.fromOffset(offset)
-        line = pos.line
-        column = pos.col
-      } else {
-        line = start.line
-        column = start.column
-        offset = this.fromLineAndColumn(line, column)
-      }
-      if (typeof end.offset === 'number') {
-        endOffset = end.offset
-        let pos = this.fromOffset(endOffset)
-        endLine = pos.line
-        endColumn = pos.col
-      } else {
-        endLine = end.line
-        endColumn = end.column
-        endOffset = this.fromLineAndColumn(end.line, end.column)
-      }
-    } else if (!column) {
-      offset = line
-      let pos = this.fromOffset(offset)
-      line = pos.line
-      column = pos.col
-    } else {
-      offset = this.fromLineAndColumn(line, column)
-    }
-
-    let origin = this.origin(line, column, endLine, endColumn)
-    if (origin) {
-      result = new CssSyntaxError(
-        message,
-        origin.endLine === undefined
-          ? origin.line
-          : { column: origin.column, line: origin.line },
-        origin.endLine === undefined
-          ? origin.column
-          : { column: origin.endColumn, line: origin.endLine },
-        origin.source,
-        origin.file,
-        opts.plugin
-      )
-    } else {
-      result = new CssSyntaxError(
-        message,
-        endLine === undefined ? line : { column, line },
-        endLine === undefined ? column : { column: endColumn, line: endLine },
-        this.css,
-        this.file,
-        opts.plugin
-      )
-    }
-
-    result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }
-    if (this.file) {
-      if (pathToFileURL) {
-        result.input.url = pathToFileURL(this.file).toString()
-      }
-      result.input.file = this.file
-    }
-
-    return result
-  }
-
-  fromLineAndColumn(line, column) {
-    let lineToIndex = getLineToIndex(this)
-    let index = lineToIndex[line - 1]
-    return index + column - 1
-  }
-
-  fromOffset(offset) {
-    let lineToIndex = getLineToIndex(this)
-    let lastLine = lineToIndex[lineToIndex.length - 1]
-
-    let min = 0
-    if (offset >= lastLine) {
-      min = lineToIndex.length - 1
-    } else {
-      let max = lineToIndex.length - 2
-      let mid
-      while (min < max) {
-        mid = min + ((max - min) >> 1)
-        if (offset < lineToIndex[mid]) {
-          max = mid - 1
-        } else if (offset >= lineToIndex[mid + 1]) {
-          min = mid + 1
-        } else {
-          min = mid
-          break
-        }
-      }
-    }
-    return {
-      col: offset - lineToIndex[min] + 1,
-      line: min + 1
-    }
-  }
-
-  mapResolve(file) {
-    if (/^\w+:\/\//.test(file)) {
-      return file
-    }
-    return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)
-  }
-
-  origin(line, column, endLine, endColumn) {
-    if (!this.map) return false
-    let consumer = this.map.consumer()
-
-    let from = consumer.originalPositionFor({ column, line })
-    if (!from.source) return false
-
-    let to
-    if (typeof endLine === 'number') {
-      to = consumer.originalPositionFor({ column: endColumn, line: endLine })
-    }
-
-    let fromUrl
-
-    if (isAbsolute(from.source)) {
-      fromUrl = pathToFileURL(from.source)
-    } else {
-      fromUrl = new URL(
-        from.source,
-        this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)
-      )
-    }
-
-    let result = {
-      column: from.column,
-      endColumn: to && to.column,
-      endLine: to && to.line,
-      line: from.line,
-      url: fromUrl.toString()
-    }
-
-    if (fromUrl.protocol === 'file:') {
-      if (fileURLToPath) {
-        result.file = fileURLToPath(fromUrl)
-      } else {
-        /* c8 ignore next 2 */
-        throw new Error(`file: protocol is not available in this PostCSS build`)
-      }
-    }
-
-    let source = consumer.sourceContentFor(from.source)
-    if (source) result.source = source
-
-    return result
-  }
-
-  toJSON() {
-    let json = {}
-    for (let name of ['hasBOM', 'css', 'file', 'id']) {
-      if (this[name] != null) {
-        json[name] = this[name]
-      }
-    }
-    if (this.map) {
-      json.map = { ...this.map }
-      if (json.map.consumerCache) {
-        json.map.consumerCache = undefined
-      }
-    }
-    return json
-  }
-}
-
-module.exports = Input
-Input.default = Input
-
-if (terminalHighlight && terminalHighlight.registerInput) {
-  terminalHighlight.registerInput(Input)
-}
Index: de_modules/postcss/lib/lazy-result.d.ts
===================================================================
--- node_modules/postcss/lib/lazy-result.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,190 +1,0 @@
-import Document from './document.js'
-import { SourceMap } from './postcss.js'
-import Processor from './processor.js'
-import Result, { Message, ResultOptions } from './result.js'
-import Root from './root.js'
-import Warning from './warning.js'
-
-declare namespace LazyResult {
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { LazyResult_ as default }
-}
-
-/**
- * A Promise proxy for the result of PostCSS transformations.
- *
- * A `LazyResult` instance is returned by `Processor#process`.
- *
- * ```js
- * const lazy = postcss([autoprefixer]).process(css)
- * ```
- */
-declare class LazyResult_<RootNode = Document | Root>
-  implements PromiseLike<Result<RootNode>>
-{
-  /**
-   * Processes input CSS through synchronous and asynchronous plugins
-   * and calls onRejected for each error thrown in any plugin.
-   *
-   * It implements standard Promise API.
-   *
-   * ```js
-   * postcss([autoprefixer]).process(css).then(result => {
-   *   console.log(result.css)
-   * }).catch(error => {
-   *   console.error(error)
-   * })
-   * ```
-   */
-  catch: Promise<Result<RootNode>>['catch']
-
-  /**
-   * Processes input CSS through synchronous and asynchronous plugins
-   * and calls onFinally on any error or when all plugins will finish work.
-   *
-   * It implements standard Promise API.
-   *
-   * ```js
-   * postcss([autoprefixer]).process(css).finally(() => {
-   *   console.log('processing ended')
-   * })
-   * ```
-   */
-  finally: Promise<Result<RootNode>>['finally']
-
-  /**
-   * Processes input CSS through synchronous and asynchronous plugins
-   * and calls `onFulfilled` with a Result instance. If a plugin throws
-   * an error, the `onRejected` callback will be executed.
-   *
-   * It implements standard Promise API.
-   *
-   * ```js
-   * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => {
-   *   console.log(result.css)
-   * })
-   * ```
-   */
-  then: Promise<Result<RootNode>>['then']
-
-  /**
-   * An alias for the `css` property. Use it with syntaxes
-   * that generate non-CSS output.
-   *
-   * This property will only work with synchronous plugins.
-   * If the processor contains any asynchronous plugins
-   * it will throw an error.
-   *
-   * PostCSS runners should always use `LazyResult#then`.
-   */
-  get content(): string
-
-  /**
-   * Processes input CSS through synchronous plugins, converts `Root`
-   * to a CSS string and returns `Result#css`.
-   *
-   * This property will only work with synchronous plugins.
-   * If the processor contains any asynchronous plugins
-   * it will throw an error.
-   *
-   * PostCSS runners should always use `LazyResult#then`.
-   */
-  get css(): string
-
-  /**
-   * Processes input CSS through synchronous plugins
-   * and returns `Result#map`.
-   *
-   * This property will only work with synchronous plugins.
-   * If the processor contains any asynchronous plugins
-   * it will throw an error.
-   *
-   * PostCSS runners should always use `LazyResult#then`.
-   */
-  get map(): SourceMap
-
-  /**
-   * Processes input CSS through synchronous plugins
-   * and returns `Result#messages`.
-   *
-   * This property will only work with synchronous plugins. If the processor
-   * contains any asynchronous plugins it will throw an error.
-   *
-   * PostCSS runners should always use `LazyResult#then`.
-   */
-  get messages(): Message[]
-
-  /**
-   * Options from the `Processor#process` call.
-   */
-  get opts(): ResultOptions
-
-  /**
-   * Returns a `Processor` instance, which will be used
-   * for CSS transformations.
-   */
-  get processor(): Processor
-
-  /**
-   * Processes input CSS through synchronous plugins
-   * and returns `Result#root`.
-   *
-   * This property will only work with synchronous plugins. If the processor
-   * contains any asynchronous plugins it will throw an error.
-   *
-   * PostCSS runners should always use `LazyResult#then`.
-   */
-  get root(): RootNode
-
-  /**
-   * Returns the default string description of an object.
-   * Required to implement the Promise interface.
-   */
-  get [Symbol.toStringTag](): string
-
-  /**
-   * @param processor Processor used for this transformation.
-   * @param css       CSS to parse and transform.
-   * @param opts      Options from the `Processor#process` or `Root#toResult`.
-   */
-  constructor(processor: Processor, css: string, opts: ResultOptions)
-
-  /**
-   * Run plugin in async way and return `Result`.
-   *
-   * @return Result with output content.
-   */
-  async(): Promise<Result<RootNode>>
-
-  /**
-   * Run plugin in sync way and return `Result`.
-   *
-   * @return Result with output content.
-   */
-  sync(): Result<RootNode>
-
-  /**
-   * Alias for the `LazyResult#css` property.
-   *
-   * ```js
-   * lazy + '' === lazy.css
-   * ```
-   *
-   * @return Output CSS.
-   */
-  toString(): string
-
-  /**
-   * Processes input CSS through synchronous plugins
-   * and calls `Result#warnings`.
-   *
-   * @return Warnings from plugins.
-   */
-  warnings(): Warning[]
-}
-
-declare class LazyResult<
-  RootNode = Document | Root
-> extends LazyResult_<RootNode> {}
-
-export = LazyResult
Index: de_modules/postcss/lib/lazy-result.js
===================================================================
--- node_modules/postcss/lib/lazy-result.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,550 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-let Document = require('./document')
-let MapGenerator = require('./map-generator')
-let parse = require('./parse')
-let Result = require('./result')
-let Root = require('./root')
-let stringify = require('./stringify')
-let { isClean, my } = require('./symbols')
-let warnOnce = require('./warn-once')
-
-const TYPE_TO_CLASS_NAME = {
-  atrule: 'AtRule',
-  comment: 'Comment',
-  decl: 'Declaration',
-  document: 'Document',
-  root: 'Root',
-  rule: 'Rule'
-}
-
-const PLUGIN_PROPS = {
-  AtRule: true,
-  AtRuleExit: true,
-  Comment: true,
-  CommentExit: true,
-  Declaration: true,
-  DeclarationExit: true,
-  Document: true,
-  DocumentExit: true,
-  Once: true,
-  OnceExit: true,
-  postcssPlugin: true,
-  prepare: true,
-  Root: true,
-  RootExit: true,
-  Rule: true,
-  RuleExit: true
-}
-
-const NOT_VISITORS = {
-  Once: true,
-  postcssPlugin: true,
-  prepare: true
-}
-
-const CHILDREN = 0
-
-function isPromise(obj) {
-  return typeof obj === 'object' && typeof obj.then === 'function'
-}
-
-function getEvents(node) {
-  let key = false
-  let type = TYPE_TO_CLASS_NAME[node.type]
-  if (node.type === 'decl') {
-    key = node.prop.toLowerCase()
-  } else if (node.type === 'atrule') {
-    key = node.name.toLowerCase()
-  }
-
-  if (key && node.append) {
-    return [
-      type,
-      type + '-' + key,
-      CHILDREN,
-      type + 'Exit',
-      type + 'Exit-' + key
-    ]
-  } else if (key) {
-    return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]
-  } else if (node.append) {
-    return [type, CHILDREN, type + 'Exit']
-  } else {
-    return [type, type + 'Exit']
-  }
-}
-
-function toStack(node) {
-  let events
-  if (node.type === 'document') {
-    events = ['Document', CHILDREN, 'DocumentExit']
-  } else if (node.type === 'root') {
-    events = ['Root', CHILDREN, 'RootExit']
-  } else {
-    events = getEvents(node)
-  }
-
-  return {
-    eventIndex: 0,
-    events,
-    iterator: 0,
-    node,
-    visitorIndex: 0,
-    visitors: []
-  }
-}
-
-function cleanMarks(node) {
-  node[isClean] = false
-  if (node.nodes) node.nodes.forEach(i => cleanMarks(i))
-  return node
-}
-
-let postcss = {}
-
-class LazyResult {
-  get content() {
-    return this.stringify().content
-  }
-
-  get css() {
-    return this.stringify().css
-  }
-
-  get map() {
-    return this.stringify().map
-  }
-
-  get messages() {
-    return this.sync().messages
-  }
-
-  get opts() {
-    return this.result.opts
-  }
-
-  get processor() {
-    return this.result.processor
-  }
-
-  get root() {
-    return this.sync().root
-  }
-
-  get [Symbol.toStringTag]() {
-    return 'LazyResult'
-  }
-
-  constructor(processor, css, opts) {
-    this.stringified = false
-    this.processed = false
-
-    let root
-    if (
-      typeof css === 'object' &&
-      css !== null &&
-      (css.type === 'root' || css.type === 'document')
-    ) {
-      root = cleanMarks(css)
-    } else if (css instanceof LazyResult || css instanceof Result) {
-      root = cleanMarks(css.root)
-      if (css.map) {
-        if (typeof opts.map === 'undefined') opts.map = {}
-        if (!opts.map.inline) opts.map.inline = false
-        opts.map.prev = css.map
-      }
-    } else {
-      let parser = parse
-      if (opts.syntax) parser = opts.syntax.parse
-      if (opts.parser) parser = opts.parser
-      if (parser.parse) parser = parser.parse
-
-      try {
-        root = parser(css, opts)
-      } catch (error) {
-        this.processed = true
-        this.error = error
-      }
-
-      if (root && !root[my]) {
-        /* c8 ignore next 2 */
-        Container.rebuild(root)
-      }
-    }
-
-    this.result = new Result(processor, root, opts)
-    this.helpers = { ...postcss, postcss, result: this.result }
-    this.plugins = this.processor.plugins.map(plugin => {
-      if (typeof plugin === 'object' && plugin.prepare) {
-        return { ...plugin, ...plugin.prepare(this.result) }
-      } else {
-        return plugin
-      }
-    })
-  }
-
-  async() {
-    if (this.error) return Promise.reject(this.error)
-    if (this.processed) return Promise.resolve(this.result)
-    if (!this.processing) {
-      this.processing = this.runAsync()
-    }
-    return this.processing
-  }
-
-  catch(onRejected) {
-    return this.async().catch(onRejected)
-  }
-
-  finally(onFinally) {
-    return this.async().then(onFinally, onFinally)
-  }
-
-  getAsyncError() {
-    throw new Error('Use process(css).then(cb) to work with async plugins')
-  }
-
-  handleError(error, node) {
-    let plugin = this.result.lastPlugin
-    try {
-      if (node) node.addToError(error)
-      this.error = error
-      if (error.name === 'CssSyntaxError' && !error.plugin) {
-        error.plugin = plugin.postcssPlugin
-        error.setMessage()
-      } else if (plugin.postcssVersion) {
-        if (process.env.NODE_ENV !== 'production') {
-          let pluginName = plugin.postcssPlugin
-          let pluginVer = plugin.postcssVersion
-          let runtimeVer = this.result.processor.version
-          let a = pluginVer.split('.')
-          let b = runtimeVer.split('.')
-
-          if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {
-            // eslint-disable-next-line no-console
-            console.error(
-              'Unknown error from PostCSS plugin. Your current PostCSS ' +
-                'version is ' +
-                runtimeVer +
-                ', but ' +
-                pluginName +
-                ' uses ' +
-                pluginVer +
-                '. Perhaps this is the source of the error below.'
-            )
-          }
-        }
-      }
-    } catch (err) {
-      /* c8 ignore next 3 */
-      // eslint-disable-next-line no-console
-      if (console && console.error) console.error(err)
-    }
-    return error
-  }
-
-  prepareVisitors() {
-    this.listeners = {}
-    let add = (plugin, type, cb) => {
-      if (!this.listeners[type]) this.listeners[type] = []
-      this.listeners[type].push([plugin, cb])
-    }
-    for (let plugin of this.plugins) {
-      if (typeof plugin === 'object') {
-        for (let event in plugin) {
-          if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {
-            throw new Error(
-              `Unknown event ${event} in ${plugin.postcssPlugin}. ` +
-                `Try to update PostCSS (${this.processor.version} now).`
-            )
-          }
-          if (!NOT_VISITORS[event]) {
-            if (typeof plugin[event] === 'object') {
-              for (let filter in plugin[event]) {
-                if (filter === '*') {
-                  add(plugin, event, plugin[event][filter])
-                } else {
-                  add(
-                    plugin,
-                    event + '-' + filter.toLowerCase(),
-                    plugin[event][filter]
-                  )
-                }
-              }
-            } else if (typeof plugin[event] === 'function') {
-              add(plugin, event, plugin[event])
-            }
-          }
-        }
-      }
-    }
-    this.hasListener = Object.keys(this.listeners).length > 0
-  }
-
-  async runAsync() {
-    this.plugin = 0
-    for (let i = 0; i < this.plugins.length; i++) {
-      let plugin = this.plugins[i]
-      let promise = this.runOnRoot(plugin)
-      if (isPromise(promise)) {
-        try {
-          await promise
-        } catch (error) {
-          throw this.handleError(error)
-        }
-      }
-    }
-
-    this.prepareVisitors()
-    if (this.hasListener) {
-      let root = this.result.root
-      while (!root[isClean]) {
-        root[isClean] = true
-        let stack = [toStack(root)]
-        while (stack.length > 0) {
-          let promise = this.visitTick(stack)
-          if (isPromise(promise)) {
-            try {
-              await promise
-            } catch (e) {
-              let node = stack[stack.length - 1].node
-              throw this.handleError(e, node)
-            }
-          }
-        }
-      }
-
-      if (this.listeners.OnceExit) {
-        for (let [plugin, visitor] of this.listeners.OnceExit) {
-          this.result.lastPlugin = plugin
-          try {
-            if (root.type === 'document') {
-              let roots = root.nodes.map(subRoot =>
-                visitor(subRoot, this.helpers)
-              )
-
-              await Promise.all(roots)
-            } else {
-              await visitor(root, this.helpers)
-            }
-          } catch (e) {
-            throw this.handleError(e)
-          }
-        }
-      }
-    }
-
-    this.processed = true
-    return this.stringify()
-  }
-
-  runOnRoot(plugin) {
-    this.result.lastPlugin = plugin
-    try {
-      if (typeof plugin === 'object' && plugin.Once) {
-        if (this.result.root.type === 'document') {
-          let roots = this.result.root.nodes.map(root =>
-            plugin.Once(root, this.helpers)
-          )
-
-          if (isPromise(roots[0])) {
-            return Promise.all(roots)
-          }
-
-          return roots
-        }
-
-        return plugin.Once(this.result.root, this.helpers)
-      } else if (typeof plugin === 'function') {
-        return plugin(this.result.root, this.result)
-      }
-    } catch (error) {
-      throw this.handleError(error)
-    }
-  }
-
-  stringify() {
-    if (this.error) throw this.error
-    if (this.stringified) return this.result
-    this.stringified = true
-
-    this.sync()
-
-    let opts = this.result.opts
-    let str = stringify
-    if (opts.syntax) str = opts.syntax.stringify
-    if (opts.stringifier) str = opts.stringifier
-    if (str.stringify) str = str.stringify
-
-    let map = new MapGenerator(str, this.result.root, this.result.opts)
-    let data = map.generate()
-    this.result.css = data[0]
-    this.result.map = data[1]
-
-    return this.result
-  }
-
-  sync() {
-    if (this.error) throw this.error
-    if (this.processed) return this.result
-    this.processed = true
-
-    if (this.processing) {
-      throw this.getAsyncError()
-    }
-
-    for (let plugin of this.plugins) {
-      let promise = this.runOnRoot(plugin)
-      if (isPromise(promise)) {
-        throw this.getAsyncError()
-      }
-    }
-
-    this.prepareVisitors()
-    if (this.hasListener) {
-      let root = this.result.root
-      while (!root[isClean]) {
-        root[isClean] = true
-        this.walkSync(root)
-      }
-      if (this.listeners.OnceExit) {
-        if (root.type === 'document') {
-          for (let subRoot of root.nodes) {
-            this.visitSync(this.listeners.OnceExit, subRoot)
-          }
-        } else {
-          this.visitSync(this.listeners.OnceExit, root)
-        }
-      }
-    }
-
-    return this.result
-  }
-
-  then(onFulfilled, onRejected) {
-    if (process.env.NODE_ENV !== 'production') {
-      if (!('from' in this.opts)) {
-        warnOnce(
-          'Without `from` option PostCSS could generate wrong source map ' +
-            'and will not find Browserslist config. Set it to CSS file path ' +
-            'or to `undefined` to prevent this warning.'
-        )
-      }
-    }
-    return this.async().then(onFulfilled, onRejected)
-  }
-
-  toString() {
-    return this.css
-  }
-
-  visitSync(visitors, node) {
-    for (let [plugin, visitor] of visitors) {
-      this.result.lastPlugin = plugin
-      let promise
-      try {
-        promise = visitor(node, this.helpers)
-      } catch (e) {
-        throw this.handleError(e, node.proxyOf)
-      }
-      if (node.type !== 'root' && node.type !== 'document' && !node.parent) {
-        return true
-      }
-      if (isPromise(promise)) {
-        throw this.getAsyncError()
-      }
-    }
-  }
-
-  visitTick(stack) {
-    let visit = stack[stack.length - 1]
-    let { node, visitors } = visit
-
-    if (node.type !== 'root' && node.type !== 'document' && !node.parent) {
-      stack.pop()
-      return
-    }
-
-    if (visitors.length > 0 && visit.visitorIndex < visitors.length) {
-      let [plugin, visitor] = visitors[visit.visitorIndex]
-      visit.visitorIndex += 1
-      if (visit.visitorIndex === visitors.length) {
-        visit.visitors = []
-        visit.visitorIndex = 0
-      }
-      this.result.lastPlugin = plugin
-      try {
-        return visitor(node.toProxy(), this.helpers)
-      } catch (e) {
-        throw this.handleError(e, node)
-      }
-    }
-
-    if (visit.iterator !== 0) {
-      let iterator = visit.iterator
-      let child
-      while ((child = node.nodes[node.indexes[iterator]])) {
-        node.indexes[iterator] += 1
-        if (!child[isClean]) {
-          child[isClean] = true
-          stack.push(toStack(child))
-          return
-        }
-      }
-      visit.iterator = 0
-      delete node.indexes[iterator]
-    }
-
-    let events = visit.events
-    while (visit.eventIndex < events.length) {
-      let event = events[visit.eventIndex]
-      visit.eventIndex += 1
-      if (event === CHILDREN) {
-        if (node.nodes && node.nodes.length) {
-          node[isClean] = true
-          visit.iterator = node.getIterator()
-        }
-        return
-      } else if (this.listeners[event]) {
-        visit.visitors = this.listeners[event]
-        return
-      }
-    }
-    stack.pop()
-  }
-
-  walkSync(node) {
-    node[isClean] = true
-    let events = getEvents(node)
-    for (let event of events) {
-      if (event === CHILDREN) {
-        if (node.nodes) {
-          node.each(child => {
-            if (!child[isClean]) this.walkSync(child)
-          })
-        }
-      } else {
-        let visitors = this.listeners[event]
-        if (visitors) {
-          if (this.visitSync(visitors, node.toProxy())) return
-        }
-      }
-    }
-  }
-
-  warnings() {
-    return this.sync().warnings()
-  }
-}
-
-LazyResult.registerPostcss = dependant => {
-  postcss = dependant
-}
-
-module.exports = LazyResult
-LazyResult.default = LazyResult
-
-Root.registerLazyResult(LazyResult)
-Document.registerLazyResult(LazyResult)
Index: de_modules/postcss/lib/list.d.ts
===================================================================
--- node_modules/postcss/lib/list.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-declare namespace list {
-  type List = {
-    /**
-     * Safely splits comma-separated values (such as those for `transition-*`
-     * and `background` properties).
-     *
-     * ```js
-     * Once (root, { list }) {
-     *   list.comma('black, linear-gradient(white, black)')
-     *   //=> ['black', 'linear-gradient(white, black)']
-     * }
-     * ```
-     *
-     * @param str Comma-separated values.
-     * @return Split values.
-     */
-    comma(str: string): string[]
-
-    default: List
-
-    /**
-     * Safely splits space-separated values (such as those for `background`,
-     * `border-radius`, and other shorthand properties).
-     *
-     * ```js
-     * Once (root, { list }) {
-     *   list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)']
-     * }
-     * ```
-     *
-     * @param str Space-separated values.
-     * @return Split values.
-     */
-    space(str: string): string[]
-
-    /**
-     * Safely splits values.
-     *
-     * ```js
-     * Once (root, { list }) {
-     *   list.split('1px calc(10% + 1px)', [' ', '\n', '\t']) //=> ['1px', 'calc(10% + 1px)']
-     * }
-     * ```
-     *
-     * @param string separated values.
-     * @param separators array of separators.
-     * @param last boolean indicator.
-     * @return Split values.
-     */
-    split(
-      string: string,
-      separators: readonly string[],
-      last: boolean
-    ): string[]
-  }
-}
-
-declare const list: list.List
-
-export = list
Index: de_modules/postcss/lib/list.js
===================================================================
--- node_modules/postcss/lib/list.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-'use strict'
-
-let list = {
-  comma(string) {
-    return list.split(string, [','], true)
-  },
-
-  space(string) {
-    let spaces = [' ', '\n', '\t']
-    return list.split(string, spaces)
-  },
-
-  split(string, separators, last) {
-    let array = []
-    let current = ''
-    let split = false
-
-    let func = 0
-    let inQuote = false
-    let prevQuote = ''
-    let escape = false
-
-    for (let letter of string) {
-      if (escape) {
-        escape = false
-      } else if (letter === '\\') {
-        escape = true
-      } else if (inQuote) {
-        if (letter === prevQuote) {
-          inQuote = false
-        }
-      } else if (letter === '"' || letter === "'") {
-        inQuote = true
-        prevQuote = letter
-      } else if (letter === '(') {
-        func += 1
-      } else if (letter === ')') {
-        if (func > 0) func -= 1
-      } else if (func === 0) {
-        if (separators.includes(letter)) split = true
-      }
-
-      if (split) {
-        if (current !== '') array.push(current.trim())
-        current = ''
-        split = false
-      } else {
-        current += letter
-      }
-    }
-
-    if (last || current !== '') array.push(current.trim())
-    return array
-  }
-}
-
-module.exports = list
-list.default = list
Index: de_modules/postcss/lib/map-generator.js
===================================================================
--- node_modules/postcss/lib/map-generator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,368 +1,0 @@
-'use strict'
-
-let { dirname, relative, resolve, sep } = require('path')
-let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
-let { pathToFileURL } = require('url')
-
-let Input = require('./input')
-
-let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
-let pathAvailable = Boolean(dirname && resolve && relative && sep)
-
-class MapGenerator {
-  constructor(stringify, root, opts, cssString) {
-    this.stringify = stringify
-    this.mapOpts = opts.map || {}
-    this.root = root
-    this.opts = opts
-    this.css = cssString
-    this.originalCSS = cssString
-    this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute
-
-    this.memoizedFileURLs = new Map()
-    this.memoizedPaths = new Map()
-    this.memoizedURLs = new Map()
-  }
-
-  addAnnotation() {
-    let content
-
-    if (this.isInline()) {
-      content =
-        'data:application/json;base64,' + this.toBase64(this.map.toString())
-    } else if (typeof this.mapOpts.annotation === 'string') {
-      content = this.mapOpts.annotation
-    } else if (typeof this.mapOpts.annotation === 'function') {
-      content = this.mapOpts.annotation(this.opts.to, this.root)
-    } else {
-      content = this.outputFile() + '.map'
-    }
-    let eol = '\n'
-    if (this.css.includes('\r\n')) eol = '\r\n'
-
-    this.css += eol + '/*# sourceMappingURL=' + content + ' */'
-  }
-
-  applyPrevMaps() {
-    for (let prev of this.previous()) {
-      let from = this.toUrl(this.path(prev.file))
-      let root = prev.root || dirname(prev.file)
-      let map
-
-      if (this.mapOpts.sourcesContent === false) {
-        map = new SourceMapConsumer(prev.text)
-        if (map.sourcesContent) {
-          map.sourcesContent = null
-        }
-      } else {
-        map = prev.consumer()
-      }
-
-      this.map.applySourceMap(map, from, this.toUrl(this.path(root)))
-    }
-  }
-
-  clearAnnotation() {
-    if (this.mapOpts.annotation === false) return
-
-    if (this.root) {
-      let node
-      for (let i = this.root.nodes.length - 1; i >= 0; i--) {
-        node = this.root.nodes[i]
-        if (node.type !== 'comment') continue
-        if (node.text.startsWith('# sourceMappingURL=')) {
-          this.root.removeChild(i)
-        }
-      }
-    } else if (this.css) {
-      this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, '')
-    }
-  }
-
-  generate() {
-    this.clearAnnotation()
-    if (pathAvailable && sourceMapAvailable && this.isMap()) {
-      return this.generateMap()
-    } else {
-      let result = ''
-      this.stringify(this.root, i => {
-        result += i
-      })
-      return [result]
-    }
-  }
-
-  generateMap() {
-    if (this.root) {
-      this.generateString()
-    } else if (this.previous().length === 1) {
-      let prev = this.previous()[0].consumer()
-      prev.file = this.outputFile()
-      this.map = SourceMapGenerator.fromSourceMap(prev, {
-        ignoreInvalidMapping: true
-      })
-    } else {
-      this.map = new SourceMapGenerator({
-        file: this.outputFile(),
-        ignoreInvalidMapping: true
-      })
-      this.map.addMapping({
-        generated: { column: 0, line: 1 },
-        original: { column: 0, line: 1 },
-        source: this.opts.from
-          ? this.toUrl(this.path(this.opts.from))
-          : '<no source>'
-      })
-    }
-
-    if (this.isSourcesContent()) this.setSourcesContent()
-    if (this.root && this.previous().length > 0) this.applyPrevMaps()
-    if (this.isAnnotation()) this.addAnnotation()
-
-    if (this.isInline()) {
-      return [this.css]
-    } else {
-      return [this.css, this.map]
-    }
-  }
-
-  generateString() {
-    this.css = ''
-    this.map = new SourceMapGenerator({
-      file: this.outputFile(),
-      ignoreInvalidMapping: true
-    })
-
-    let line = 1
-    let column = 1
-
-    let noSource = '<no source>'
-    let mapping = {
-      generated: { column: 0, line: 0 },
-      original: { column: 0, line: 0 },
-      source: ''
-    }
-
-    let last, lines
-    this.stringify(this.root, (str, node, type) => {
-      this.css += str
-
-      if (node && type !== 'end') {
-        mapping.generated.line = line
-        mapping.generated.column = column - 1
-        if (node.source && node.source.start) {
-          mapping.source = this.sourcePath(node)
-          mapping.original.line = node.source.start.line
-          mapping.original.column = node.source.start.column - 1
-          this.map.addMapping(mapping)
-        } else {
-          mapping.source = noSource
-          mapping.original.line = 1
-          mapping.original.column = 0
-          this.map.addMapping(mapping)
-        }
-      }
-
-      lines = str.match(/\n/g)
-      if (lines) {
-        line += lines.length
-        last = str.lastIndexOf('\n')
-        column = str.length - last
-      } else {
-        column += str.length
-      }
-
-      if (node && type !== 'start') {
-        let p = node.parent || { raws: {} }
-        let childless =
-          node.type === 'decl' || (node.type === 'atrule' && !node.nodes)
-        if (!childless || node !== p.last || p.raws.semicolon) {
-          if (node.source && node.source.end) {
-            mapping.source = this.sourcePath(node)
-            mapping.original.line = node.source.end.line
-            mapping.original.column = node.source.end.column - 1
-            mapping.generated.line = line
-            mapping.generated.column = column - 2
-            this.map.addMapping(mapping)
-          } else {
-            mapping.source = noSource
-            mapping.original.line = 1
-            mapping.original.column = 0
-            mapping.generated.line = line
-            mapping.generated.column = column - 1
-            this.map.addMapping(mapping)
-          }
-        }
-      }
-    })
-  }
-
-  isAnnotation() {
-    if (this.isInline()) {
-      return true
-    }
-    if (typeof this.mapOpts.annotation !== 'undefined') {
-      return this.mapOpts.annotation
-    }
-    if (this.previous().length) {
-      return this.previous().some(i => i.annotation)
-    }
-    return true
-  }
-
-  isInline() {
-    if (typeof this.mapOpts.inline !== 'undefined') {
-      return this.mapOpts.inline
-    }
-
-    let annotation = this.mapOpts.annotation
-    if (typeof annotation !== 'undefined' && annotation !== true) {
-      return false
-    }
-
-    if (this.previous().length) {
-      return this.previous().some(i => i.inline)
-    }
-    return true
-  }
-
-  isMap() {
-    if (typeof this.opts.map !== 'undefined') {
-      return !!this.opts.map
-    }
-    return this.previous().length > 0
-  }
-
-  isSourcesContent() {
-    if (typeof this.mapOpts.sourcesContent !== 'undefined') {
-      return this.mapOpts.sourcesContent
-    }
-    if (this.previous().length) {
-      return this.previous().some(i => i.withContent())
-    }
-    return true
-  }
-
-  outputFile() {
-    if (this.opts.to) {
-      return this.path(this.opts.to)
-    } else if (this.opts.from) {
-      return this.path(this.opts.from)
-    } else {
-      return 'to.css'
-    }
-  }
-
-  path(file) {
-    if (this.mapOpts.absolute) return file
-    if (file.charCodeAt(0) === 60 /* `<` */) return file
-    if (/^\w+:\/\//.test(file)) return file
-    let cached = this.memoizedPaths.get(file)
-    if (cached) return cached
-
-    let from = this.opts.to ? dirname(this.opts.to) : '.'
-
-    if (typeof this.mapOpts.annotation === 'string') {
-      from = dirname(resolve(from, this.mapOpts.annotation))
-    }
-
-    let path = relative(from, file)
-    this.memoizedPaths.set(file, path)
-
-    return path
-  }
-
-  previous() {
-    if (!this.previousMaps) {
-      this.previousMaps = []
-      if (this.root) {
-        this.root.walk(node => {
-          if (node.source && node.source.input.map) {
-            let map = node.source.input.map
-            if (!this.previousMaps.includes(map)) {
-              this.previousMaps.push(map)
-            }
-          }
-        })
-      } else {
-        let input = new Input(this.originalCSS, this.opts)
-        if (input.map) this.previousMaps.push(input.map)
-      }
-    }
-
-    return this.previousMaps
-  }
-
-  setSourcesContent() {
-    let already = {}
-    if (this.root) {
-      this.root.walk(node => {
-        if (node.source) {
-          let from = node.source.input.from
-          if (from && !already[from]) {
-            already[from] = true
-            let fromUrl = this.usesFileUrls
-              ? this.toFileUrl(from)
-              : this.toUrl(this.path(from))
-            this.map.setSourceContent(fromUrl, node.source.input.css)
-          }
-        }
-      })
-    } else if (this.css) {
-      let from = this.opts.from
-        ? this.toUrl(this.path(this.opts.from))
-        : '<no source>'
-      this.map.setSourceContent(from, this.css)
-    }
-  }
-
-  sourcePath(node) {
-    if (this.mapOpts.from) {
-      return this.toUrl(this.mapOpts.from)
-    } else if (this.usesFileUrls) {
-      return this.toFileUrl(node.source.input.from)
-    } else {
-      return this.toUrl(this.path(node.source.input.from))
-    }
-  }
-
-  toBase64(str) {
-    if (Buffer) {
-      return Buffer.from(str).toString('base64')
-    } else {
-      return window.btoa(unescape(encodeURIComponent(str)))
-    }
-  }
-
-  toFileUrl(path) {
-    let cached = this.memoizedFileURLs.get(path)
-    if (cached) return cached
-
-    if (pathToFileURL) {
-      let fileURL = pathToFileURL(path).toString()
-      this.memoizedFileURLs.set(path, fileURL)
-
-      return fileURL
-    } else {
-      throw new Error(
-        '`map.absolute` option is not available in this PostCSS build'
-      )
-    }
-  }
-
-  toUrl(path) {
-    let cached = this.memoizedURLs.get(path)
-    if (cached) return cached
-
-    if (sep === '\\') {
-      path = path.replace(/\\/g, '/')
-    }
-
-    let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)
-    this.memoizedURLs.set(path, url)
-
-    return url
-  }
-}
-
-module.exports = MapGenerator
Index: de_modules/postcss/lib/no-work-result.d.ts
===================================================================
--- node_modules/postcss/lib/no-work-result.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import LazyResult from './lazy-result.js'
-import { SourceMap } from './postcss.js'
-import Processor from './processor.js'
-import Result, { Message, ResultOptions } from './result.js'
-import Root from './root.js'
-import Warning from './warning.js'
-
-declare namespace NoWorkResult {
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { NoWorkResult_ as default }
-}
-
-/**
- * A Promise proxy for the result of PostCSS transformations.
- * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root`
- * are accessed. See the example below for details.
- * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined.
- *
- * ```js
- * const noWorkResult = postcss().process(css) // No plugins are defined.
- *                                             // CSS is not parsed
- * let root = noWorkResult.root // now css is parsed because we accessed the root
- * ```
- */
-declare class NoWorkResult_ implements LazyResult<Root> {
-  catch: Promise<Result<Root>>['catch']
-  finally: Promise<Result<Root>>['finally']
-  then: Promise<Result<Root>>['then']
-  get content(): string
-  get css(): string
-  get map(): SourceMap
-  get messages(): Message[]
-  get opts(): ResultOptions
-  get processor(): Processor
-  get root(): Root
-  get [Symbol.toStringTag](): string
-  constructor(processor: Processor, css: string, opts: ResultOptions)
-  async(): Promise<Result<Root>>
-  sync(): Result<Root>
-  toString(): string
-  warnings(): Warning[]
-}
-
-declare class NoWorkResult extends NoWorkResult_ {}
-
-export = NoWorkResult
Index: de_modules/postcss/lib/no-work-result.js
===================================================================
--- node_modules/postcss/lib/no-work-result.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,138 +1,0 @@
-'use strict'
-
-let MapGenerator = require('./map-generator')
-let parse = require('./parse')
-const Result = require('./result')
-let stringify = require('./stringify')
-let warnOnce = require('./warn-once')
-
-class NoWorkResult {
-  get content() {
-    return this.result.css
-  }
-
-  get css() {
-    return this.result.css
-  }
-
-  get map() {
-    return this.result.map
-  }
-
-  get messages() {
-    return []
-  }
-
-  get opts() {
-    return this.result.opts
-  }
-
-  get processor() {
-    return this.result.processor
-  }
-
-  get root() {
-    if (this._root) {
-      return this._root
-    }
-
-    let root
-    let parser = parse
-
-    try {
-      root = parser(this._css, this._opts)
-    } catch (error) {
-      this.error = error
-    }
-
-    if (this.error) {
-      throw this.error
-    } else {
-      this._root = root
-      return root
-    }
-  }
-
-  get [Symbol.toStringTag]() {
-    return 'NoWorkResult'
-  }
-
-  constructor(processor, css, opts) {
-    css = css.toString()
-    this.stringified = false
-
-    this._processor = processor
-    this._css = css
-    this._opts = opts
-    this._map = undefined
-    let root
-
-    let str = stringify
-    this.result = new Result(this._processor, root, this._opts)
-    this.result.css = css
-
-    let self = this
-    Object.defineProperty(this.result, 'root', {
-      get() {
-        return self.root
-      }
-    })
-
-    let map = new MapGenerator(str, root, this._opts, css)
-    if (map.isMap()) {
-      let [generatedCSS, generatedMap] = map.generate()
-      if (generatedCSS) {
-        this.result.css = generatedCSS
-      }
-      if (generatedMap) {
-        this.result.map = generatedMap
-      }
-    } else {
-      map.clearAnnotation()
-      this.result.css = map.css
-    }
-  }
-
-  async() {
-    if (this.error) return Promise.reject(this.error)
-    return Promise.resolve(this.result)
-  }
-
-  catch(onRejected) {
-    return this.async().catch(onRejected)
-  }
-
-  finally(onFinally) {
-    return this.async().then(onFinally, onFinally)
-  }
-
-  sync() {
-    if (this.error) throw this.error
-    return this.result
-  }
-
-  then(onFulfilled, onRejected) {
-    if (process.env.NODE_ENV !== 'production') {
-      if (!('from' in this._opts)) {
-        warnOnce(
-          'Without `from` option PostCSS could generate wrong source map ' +
-            'and will not find Browserslist config. Set it to CSS file path ' +
-            'or to `undefined` to prevent this warning.'
-        )
-      }
-    }
-
-    return this.async().then(onFulfilled, onRejected)
-  }
-
-  toString() {
-    return this._css
-  }
-
-  warnings() {
-    return []
-  }
-}
-
-module.exports = NoWorkResult
-NoWorkResult.default = NoWorkResult
Index: de_modules/postcss/lib/node.d.ts
===================================================================
--- node_modules/postcss/lib/node.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,556 +1,0 @@
-import AtRule = require('./at-rule.js')
-import { AtRuleProps } from './at-rule.js'
-import Comment, { CommentProps } from './comment.js'
-import Container, { NewChild } from './container.js'
-import CssSyntaxError from './css-syntax-error.js'
-import Declaration, { DeclarationProps } from './declaration.js'
-import Document from './document.js'
-import Input from './input.js'
-import { Stringifier, Syntax } from './postcss.js'
-import Result from './result.js'
-import Root from './root.js'
-import Rule, { RuleProps } from './rule.js'
-import Warning, { WarningOptions } from './warning.js'
-
-declare namespace Node {
-  export type ChildNode = AtRule.default | Comment | Declaration | Rule
-
-  export type AnyNode =
-    | AtRule.default
-    | Comment
-    | Declaration
-    | Document
-    | Root
-    | Rule
-
-  export type ChildProps =
-    | AtRuleProps
-    | CommentProps
-    | DeclarationProps
-    | RuleProps
-
-  export interface Position {
-    /**
-     * Source line in file. In contrast to `offset` it starts from 1.
-     */
-    column: number
-
-    /**
-     * Source column in file.
-     */
-    line: number
-
-    /**
-     * Source offset in file. It starts from 0.
-     */
-    offset: number
-  }
-
-  export interface Range {
-    /**
-     * End position, exclusive.
-     */
-    end: Position
-
-    /**
-     * Start position, inclusive.
-     */
-    start: Position
-  }
-
-  /**
-   * Source represents an interface for the {@link Node.source} property.
-   */
-  export interface Source {
-    /**
-     * The inclusive ending position for the source
-     * code of a node.
-     *
-     * However, `end.offset` of a non `Root` node is the exclusive position.
-     * See https://github.com/postcss/postcss/pull/1879 for details.
-     *
-     * ```js
-     * const root = postcss.parse('a { color: black }')
-     * const a = root.first
-     * const color = a.first
-     *
-     * // The offset of `Root` node is the inclusive position
-     * css.source.end   // { line: 1, column: 19, offset: 18 }
-     *
-     * // The offset of non `Root` node is the exclusive position
-     * a.source.end     // { line: 1, column: 18, offset: 18 }
-     * color.source.end // { line: 1, column: 16, offset: 16 }
-     * ```
-     */
-    end?: Position
-
-    /**
-     * The source file from where a node has originated.
-     */
-    input: Input
-
-    /**
-     * The inclusive starting position for the source
-     * code of a node.
-     */
-    start?: Position
-  }
-
-  /**
-   * Interface represents an interface for an object received
-   * as parameter by Node class constructor.
-   */
-  export interface NodeProps {
-    source?: Source
-  }
-
-  export interface NodeErrorOptions {
-    /**
-     * An ending index inside a node's string that should be highlighted as
-     * source of error.
-     */
-    endIndex?: number
-    /**
-     * An index inside a node's string that should be highlighted as source
-     * of error.
-     */
-    index?: number
-    /**
-     * Plugin name that created this error. PostCSS will set it automatically.
-     */
-    plugin?: string
-    /**
-     * A word inside a node's string, that should be highlighted as source
-     * of error.
-     */
-    word?: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-shadow
-  class Node extends Node_ {}
-  export { Node as default }
-}
-
-/**
- * It represents an abstract class that handles common
- * methods for other CSS abstract syntax tree nodes.
- *
- * Any node that represents CSS selector or value should
- * not extend the `Node` class.
- */
-declare abstract class Node_ {
-  /**
-   * It represents parent of the current node.
-   *
-   * ```js
-   * root.nodes[0].parent === root //=> true
-   * ```
-   */
-  parent: Container | Document | undefined
-
-  /**
-   * It represents unnecessary whitespace and characters present
-   * in the css source code.
-   *
-   * Information to generate byte-to-byte equal node string as it was
-   * in the origin input.
-   *
-   * The properties of the raws object are decided by parser,
-   * the default parser uses the following properties:
-   *
-   * * `before`: the space symbols before the node. It also stores `*`
-   *   and `_` symbols before the declaration (IE hack).
-   * * `after`: the space symbols after the last child of the node
-   *   to the end of the node.
-   * * `between`: the symbols between the property and value
-   *   for declarations, selector and `{` for rules, or last parameter
-   *   and `{` for at-rules.
-   * * `semicolon`: contains true if the last child has
-   *   an (optional) semicolon.
-   * * `afterName`: the space between the at-rule name and its parameters.
-   * * `left`: the space symbols between `/*` and the comment’s text.
-   * * `right`: the space symbols between the comment’s text
-   *   and <code>*&#47;</code>.
-   * - `important`: the content of the important statement,
-   *   if it is not just `!important`.
-   *
-   * PostCSS filters out the comments inside selectors, declaration values
-   * and at-rule parameters but it stores the origin content in raws.
-   *
-   * ```js
-   * const root = postcss.parse('a {\n  color:black\n}')
-   * root.first.first.raws //=> { before: '\n  ', between: ':' }
-   * ```
-   */
-  raws: any
-
-  /**
-   * It represents information related to origin of a node and is required
-   * for generating source maps.
-   *
-   * The nodes that are created manually using the public APIs
-   * provided by PostCSS will have `source` undefined and
-   * will be absent in the source map.
-   *
-   * For this reason, the plugin developer should consider
-   * duplicating nodes as the duplicate node will have the
-   * same source as the original node by default or assign
-   * source to a node created manually.
-   *
-   * ```js
-   * decl.source.input.from //=> '/home/ai/source.css'
-   * decl.source.start      //=> { line: 10, column: 2 }
-   * decl.source.end        //=> { line: 10, column: 12 }
-   * ```
-   *
-   * ```js
-   * // Incorrect method, source not specified!
-   * const prefixed = postcss.decl({
-   *   prop: '-moz-' + decl.prop,
-   *   value: decl.value
-   * })
-   *
-   * // Correct method, source is inherited when duplicating.
-   * const prefixed = decl.clone({
-   *   prop: '-moz-' + decl.prop
-   * })
-   * ```
-   *
-   * ```js
-   * if (atrule.name === 'add-link') {
-   *   const rule = postcss.rule({
-   *     selector: 'a',
-   *     source: atrule.source
-   *   })
-   *
-   *  atrule.parent.insertBefore(atrule, rule)
-   * }
-   * ```
-   */
-  source?: Node.Source
-
-  /**
-   * It represents type of a node in
-   * an abstract syntax tree.
-   *
-   * A type of node helps in identification of a node
-   * and perform operation based on it's type.
-   *
-   * ```js
-   * const declaration = new Declaration({
-   *   prop: 'color',
-   *   value: 'black'
-   * })
-   *
-   * declaration.type //=> 'decl'
-   * ```
-   */
-  type: string
-
-  constructor(defaults?: object)
-
-  /**
-   * Insert new node after current node to current node’s parent.
-   *
-   * Just alias for `node.parent.insertAfter(node, add)`.
-   *
-   * ```js
-   * decl.after('color: black')
-   * ```
-   *
-   * @param newNode New node.
-   * @return This node for methods chain.
-   */
-  after(
-    newNode: Node | Node.ChildProps | readonly Node[] | string | undefined
-  ): this
-
-  /**
-   * It assigns properties to an existing node instance.
-   *
-   * ```js
-   * decl.assign({ prop: 'word-wrap', value: 'break-word' })
-   * ```
-   *
-   * @param overrides New properties to override the node.
-   *
-   * @return `this` for method chaining.
-   */
-  assign(overrides: object): this
-
-  /**
-   * Insert new node before current node to current node’s parent.
-   *
-   * Just alias for `node.parent.insertBefore(node, add)`.
-   *
-   * ```js
-   * decl.before('content: ""')
-   * ```
-   *
-   * @param newNode New node.
-   * @return This node for methods chain.
-   */
-  before(
-    newNode: Node | Node.ChildProps | readonly Node[] | string | undefined
-  ): this
-
-  /**
-   * Clear the code style properties for the node and its children.
-   *
-   * ```js
-   * node.raws.before  //=> ' '
-   * node.cleanRaws()
-   * node.raws.before  //=> undefined
-   * ```
-   *
-   * @param keepBetween Keep the `raws.between` symbols.
-   */
-  cleanRaws(keepBetween?: boolean): void
-
-  /**
-   * It creates clone of an existing node, which includes all the properties
-   * and their values, that includes `raws` but not `type`.
-   *
-   * ```js
-   * decl.raws.before    //=> "\n  "
-   * const cloned = decl.clone({ prop: '-moz-' + decl.prop })
-   * cloned.raws.before  //=> "\n  "
-   * cloned.toString()   //=> -moz-transform: scale(0)
-   * ```
-   *
-   * @param overrides New properties to override in the clone.
-   *
-   * @return Duplicate of the node instance.
-   */
-  clone(overrides?: object): this
-
-  /**
-   * Shortcut to clone the node and insert the resulting cloned node
-   * after the current node.
-   *
-   * @param overrides New properties to override in the clone.
-   * @return New node.
-   */
-  cloneAfter(overrides?: object): this
-
-  /**
-   * Shortcut to clone the node and insert the resulting cloned node
-   * before the current node.
-   *
-   * ```js
-   * decl.cloneBefore({ prop: '-moz-' + decl.prop })
-   * ```
-   *
-   * @param overrides Mew properties to override in the clone.
-   *
-   * @return New node
-   */
-  cloneBefore(overrides?: object): this
-
-  /**
-   * It creates an instance of the class `CssSyntaxError` and parameters passed
-   * to this method are assigned to the error instance.
-   *
-   * The error instance will have description for the
-   * error, original position of the node in the
-   * source, showing line and column number.
-   *
-   * If any previous map is present, it would be used
-   * to get original position of the source.
-   *
-   * The Previous Map here is referred to the source map
-   * generated by previous compilation, example: Less,
-   * Stylus and Sass.
-   *
-   * This method returns the error instance instead of
-   * throwing it.
-   *
-   * ```js
-   * if (!variables[name]) {
-   *   throw decl.error(`Unknown variable ${name}`, { word: name })
-   *   // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black
-   *   //   color: $black
-   *   // a
-   *   //          ^
-   *   //   background: white
-   * }
-   * ```
-   *
-   * @param message Description for the error instance.
-   * @param options Options for the error instance.
-   *
-   * @return Error instance is returned.
-   */
-  error(message: string, options?: Node.NodeErrorOptions): CssSyntaxError
-
-  /**
-   * Returns the next child of the node’s parent.
-   * Returns `undefined` if the current node is the last child.
-   *
-   * ```js
-   * if (comment.text === 'delete next') {
-   *   const next = comment.next()
-   *   if (next) {
-   *     next.remove()
-   *   }
-   * }
-   * ```
-   *
-   * @return Next node.
-   */
-  next(): Node.ChildNode | undefined
-
-  /**
-   * Get the position for a word or an index inside the node.
-   *
-   * @param opts Options.
-   * @return Position.
-   */
-  positionBy(opts?: Pick<WarningOptions, 'index' | 'word'>): Node.Position
-
-  /**
-   * Convert string index to line/column.
-   *
-   * @param index The symbol number in the node’s string.
-   * @return Symbol position in file.
-   */
-  positionInside(index: number): Node.Position
-
-  /**
-   * Returns the previous child of the node’s parent.
-   * Returns `undefined` if the current node is the first child.
-   *
-   * ```js
-   * const annotation = decl.prev()
-   * if (annotation.type === 'comment') {
-   *   readAnnotation(annotation.text)
-   * }
-   * ```
-   *
-   * @return Previous node.
-   */
-  prev(): Node.ChildNode | undefined
-
-  /**
-   * Get the range for a word or start and end index inside the node.
-   * The start index is inclusive; the end index is exclusive.
-   *
-   * @param opts Options.
-   * @return Range.
-   */
-  rangeBy(
-    opts?: Pick<WarningOptions, 'end' | 'endIndex' | 'index' | 'start' | 'word'>
-  ): Node.Range
-
-  /**
-   * Returns a `raws` value. If the node is missing
-   * the code style property (because the node was manually built or cloned),
-   * PostCSS will try to autodetect the code style property by looking
-   * at other nodes in the tree.
-   *
-   * ```js
-   * const root = postcss.parse('a { background: white }')
-   * root.nodes[0].append({ prop: 'color', value: 'black' })
-   * root.nodes[0].nodes[1].raws.before   //=> undefined
-   * root.nodes[0].nodes[1].raw('before') //=> ' '
-   * ```
-   *
-   * @param prop        Name of code style property.
-   * @param defaultType Name of default value, it can be missed
-   *                    if the value is the same as prop.
-   * @return {string} Code style value.
-   */
-  raw(prop: string, defaultType?: string): string
-
-  /**
-   * It removes the node from its parent and deletes its parent property.
-   *
-   * ```js
-   * if (decl.prop.match(/^-webkit-/)) {
-   *   decl.remove()
-   * }
-   * ```
-   *
-   * @return `this` for method chaining.
-   */
-  remove(): this
-
-  /**
-   * Inserts node(s) before the current node and removes the current node.
-   *
-   * ```js
-   * AtRule: {
-   *   mixin: atrule => {
-   *     atrule.replaceWith(mixinRules[atrule.params])
-   *   }
-   * }
-   * ```
-   *
-   * @param nodes Mode(s) to replace current one.
-   * @return Current node to methods chain.
-   */
-  replaceWith(...nodes: NewChild[]): this
-
-  /**
-   * Finds the Root instance of the node’s tree.
-   *
-   * ```js
-   * root.nodes[0].nodes[0].root() === root
-   * ```
-   *
-   * @return Root parent.
-   */
-  root(): Root
-
-  /**
-   * Fix circular links on `JSON.stringify()`.
-   *
-   * @return Cleaned object.
-   */
-  toJSON(): object
-
-  /**
-   * It compiles the node to browser readable cascading style sheets string
-   * depending on it's type.
-   *
-   * ```js
-   * new Rule({ selector: 'a' }).toString() //=> "a {}"
-   * ```
-   *
-   * @param stringifier A syntax to use in string generation.
-   * @return CSS string of this node.
-   */
-  toString(stringifier?: Stringifier | Syntax): string
-
-  /**
-   * It is a wrapper for {@link Result#warn}, providing convenient
-   * way of generating warnings.
-   *
-   * ```js
-   *   Declaration: {
-   *     bad: (decl, { result }) => {
-   *       decl.warn(result, 'Deprecated property: bad')
-   *     }
-   *   }
-   * ```
-   *
-   * @param result The `Result` instance that will receive the warning.
-   * @param message Description for the warning.
-   * @param options Options for the warning.
-   *
-   * @return `Warning` instance is returned
-   */
-  warn(result: Result, message: string, options?: WarningOptions): Warning
-
-  /**
-   * If this node isn't already dirty, marks it and its ancestors as such. This
-   * indicates to the LazyResult processor that the {@link Root} has been
-   * modified by the current plugin and may need to be processed again by other
-   * plugins.
-   */
-  protected markDirty(): void
-}
-
-declare class Node extends Node_ {}
-
-export = Node
Index: de_modules/postcss/lib/node.js
===================================================================
--- node_modules/postcss/lib/node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,449 +1,0 @@
-'use strict'
-
-let CssSyntaxError = require('./css-syntax-error')
-let Stringifier = require('./stringifier')
-let stringify = require('./stringify')
-let { isClean, my } = require('./symbols')
-
-function cloneNode(obj, parent) {
-  let cloned = new obj.constructor()
-
-  for (let i in obj) {
-    if (!Object.prototype.hasOwnProperty.call(obj, i)) {
-      /* c8 ignore next 2 */
-      continue
-    }
-    if (i === 'proxyCache') continue
-    let value = obj[i]
-    let type = typeof value
-
-    if (i === 'parent' && type === 'object') {
-      if (parent) cloned[i] = parent
-    } else if (i === 'source') {
-      cloned[i] = value
-    } else if (Array.isArray(value)) {
-      cloned[i] = value.map(j => cloneNode(j, cloned))
-    } else {
-      if (type === 'object' && value !== null) value = cloneNode(value)
-      cloned[i] = value
-    }
-  }
-
-  return cloned
-}
-
-function sourceOffset(inputCSS, position) {
-  // Not all custom syntaxes support `offset` in `source.start` and `source.end`
-  if (position && typeof position.offset !== 'undefined') {
-    return position.offset
-  }
-
-  let column = 1
-  let line = 1
-  let offset = 0
-
-  for (let i = 0; i < inputCSS.length; i++) {
-    if (line === position.line && column === position.column) {
-      offset = i
-      break
-    }
-
-    if (inputCSS[i] === '\n') {
-      column = 1
-      line += 1
-    } else {
-      column += 1
-    }
-  }
-
-  return offset
-}
-
-class Node {
-  get proxyOf() {
-    return this
-  }
-
-  constructor(defaults = {}) {
-    this.raws = {}
-    this[isClean] = false
-    this[my] = true
-
-    for (let name in defaults) {
-      if (name === 'nodes') {
-        this.nodes = []
-        for (let node of defaults[name]) {
-          if (typeof node.clone === 'function') {
-            this.append(node.clone())
-          } else {
-            this.append(node)
-          }
-        }
-      } else {
-        this[name] = defaults[name]
-      }
-    }
-  }
-
-  addToError(error) {
-    error.postcssNode = this
-    if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) {
-      let s = this.source
-      error.stack = error.stack.replace(
-        /\n\s{4}at /,
-        `$&${s.input.from}:${s.start.line}:${s.start.column}$&`
-      )
-    }
-    return error
-  }
-
-  after(add) {
-    this.parent.insertAfter(this, add)
-    return this
-  }
-
-  assign(overrides = {}) {
-    for (let name in overrides) {
-      this[name] = overrides[name]
-    }
-    return this
-  }
-
-  before(add) {
-    this.parent.insertBefore(this, add)
-    return this
-  }
-
-  cleanRaws(keepBetween) {
-    delete this.raws.before
-    delete this.raws.after
-    if (!keepBetween) delete this.raws.between
-  }
-
-  clone(overrides = {}) {
-    let cloned = cloneNode(this)
-    for (let name in overrides) {
-      cloned[name] = overrides[name]
-    }
-    return cloned
-  }
-
-  cloneAfter(overrides = {}) {
-    let cloned = this.clone(overrides)
-    this.parent.insertAfter(this, cloned)
-    return cloned
-  }
-
-  cloneBefore(overrides = {}) {
-    let cloned = this.clone(overrides)
-    this.parent.insertBefore(this, cloned)
-    return cloned
-  }
-
-  error(message, opts = {}) {
-    if (this.source) {
-      let { end, start } = this.rangeBy(opts)
-      return this.source.input.error(
-        message,
-        { column: start.column, line: start.line },
-        { column: end.column, line: end.line },
-        opts
-      )
-    }
-    return new CssSyntaxError(message)
-  }
-
-  getProxyProcessor() {
-    return {
-      get(node, prop) {
-        if (prop === 'proxyOf') {
-          return node
-        } else if (prop === 'root') {
-          return () => node.root().toProxy()
-        } else {
-          return node[prop]
-        }
-      },
-
-      set(node, prop, value) {
-        if (node[prop] === value) return true
-        node[prop] = value
-        if (
-          prop === 'prop' ||
-          prop === 'value' ||
-          prop === 'name' ||
-          prop === 'params' ||
-          prop === 'important' ||
-          /* c8 ignore next */
-          prop === 'text'
-        ) {
-          node.markDirty()
-        }
-        return true
-      }
-    }
-  }
-
-  /* c8 ignore next 3 */
-  markClean() {
-    this[isClean] = true
-  }
-
-  markDirty() {
-    if (this[isClean]) {
-      this[isClean] = false
-      let next = this
-      while ((next = next.parent)) {
-        next[isClean] = false
-      }
-    }
-  }
-
-  next() {
-    if (!this.parent) return undefined
-    let index = this.parent.index(this)
-    return this.parent.nodes[index + 1]
-  }
-
-  positionBy(opts = {}) {
-    let pos = this.source.start
-    if (opts.index) {
-      pos = this.positionInside(opts.index)
-    } else if (opts.word) {
-      let inputString =
-        'document' in this.source.input
-          ? this.source.input.document
-          : this.source.input.css
-      let stringRepresentation = inputString.slice(
-        sourceOffset(inputString, this.source.start),
-        sourceOffset(inputString, this.source.end)
-      )
-      let index = stringRepresentation.indexOf(opts.word)
-      if (index !== -1) pos = this.positionInside(index)
-    }
-    return pos
-  }
-
-  positionInside(index) {
-    let column = this.source.start.column
-    let line = this.source.start.line
-    let inputString =
-      'document' in this.source.input
-        ? this.source.input.document
-        : this.source.input.css
-    let offset = sourceOffset(inputString, this.source.start)
-    let end = offset + index
-
-    for (let i = offset; i < end; i++) {
-      if (inputString[i] === '\n') {
-        column = 1
-        line += 1
-      } else {
-        column += 1
-      }
-    }
-
-    return { column, line, offset: end }
-  }
-
-  prev() {
-    if (!this.parent) return undefined
-    let index = this.parent.index(this)
-    return this.parent.nodes[index - 1]
-  }
-
-  rangeBy(opts = {}) {
-    let inputString =
-      'document' in this.source.input
-        ? this.source.input.document
-        : this.source.input.css
-    let start = {
-      column: this.source.start.column,
-      line: this.source.start.line,
-      offset: sourceOffset(inputString, this.source.start)
-    }
-    let end = this.source.end
-      ? {
-          column: this.source.end.column + 1,
-          line: this.source.end.line,
-          offset:
-            typeof this.source.end.offset === 'number'
-              ? // `source.end.offset` is exclusive, so we don't need to add 1
-                this.source.end.offset
-              : // Since line/column in this.source.end is inclusive,
-                // the `sourceOffset(... , this.source.end)` returns an inclusive offset.
-                // So, we add 1 to convert it to exclusive.
-                sourceOffset(inputString, this.source.end) + 1
-        }
-      : {
-          column: start.column + 1,
-          line: start.line,
-          offset: start.offset + 1
-        }
-
-    if (opts.word) {
-      let stringRepresentation = inputString.slice(
-        sourceOffset(inputString, this.source.start),
-        sourceOffset(inputString, this.source.end)
-      )
-      let index = stringRepresentation.indexOf(opts.word)
-      if (index !== -1) {
-        start = this.positionInside(index)
-        end = this.positionInside(index + opts.word.length)
-      }
-    } else {
-      if (opts.start) {
-        start = {
-          column: opts.start.column,
-          line: opts.start.line,
-          offset: sourceOffset(inputString, opts.start)
-        }
-      } else if (opts.index) {
-        start = this.positionInside(opts.index)
-      }
-
-      if (opts.end) {
-        end = {
-          column: opts.end.column,
-          line: opts.end.line,
-          offset: sourceOffset(inputString, opts.end)
-        }
-      } else if (typeof opts.endIndex === 'number') {
-        end = this.positionInside(opts.endIndex)
-      } else if (opts.index) {
-        end = this.positionInside(opts.index + 1)
-      }
-    }
-
-    if (
-      end.line < start.line ||
-      (end.line === start.line && end.column <= start.column)
-    ) {
-      end = {
-        column: start.column + 1,
-        line: start.line,
-        offset: start.offset + 1
-      }
-    }
-
-    return { end, start }
-  }
-
-  raw(prop, defaultType) {
-    let str = new Stringifier()
-    return str.raw(this, prop, defaultType)
-  }
-
-  remove() {
-    if (this.parent) {
-      this.parent.removeChild(this)
-    }
-    this.parent = undefined
-    return this
-  }
-
-  replaceWith(...nodes) {
-    if (this.parent) {
-      let bookmark = this
-      let foundSelf = false
-      for (let node of nodes) {
-        if (node === this) {
-          foundSelf = true
-        } else if (foundSelf) {
-          this.parent.insertAfter(bookmark, node)
-          bookmark = node
-        } else {
-          this.parent.insertBefore(bookmark, node)
-        }
-      }
-
-      if (!foundSelf) {
-        this.remove()
-      }
-    }
-
-    return this
-  }
-
-  root() {
-    let result = this
-    while (result.parent && result.parent.type !== 'document') {
-      result = result.parent
-    }
-    return result
-  }
-
-  toJSON(_, inputs) {
-    let fixed = {}
-    let emitInputs = inputs == null
-    inputs = inputs || new Map()
-    let inputsNextIndex = 0
-
-    for (let name in this) {
-      if (!Object.prototype.hasOwnProperty.call(this, name)) {
-        /* c8 ignore next 2 */
-        continue
-      }
-      if (name === 'parent' || name === 'proxyCache') continue
-      let value = this[name]
-
-      if (Array.isArray(value)) {
-        fixed[name] = value.map(i => {
-          if (typeof i === 'object' && i.toJSON) {
-            return i.toJSON(null, inputs)
-          } else {
-            return i
-          }
-        })
-      } else if (typeof value === 'object' && value.toJSON) {
-        fixed[name] = value.toJSON(null, inputs)
-      } else if (name === 'source') {
-        if (value == null) continue
-        let inputId = inputs.get(value.input)
-        if (inputId == null) {
-          inputId = inputsNextIndex
-          inputs.set(value.input, inputsNextIndex)
-          inputsNextIndex++
-        }
-        fixed[name] = {
-          end: value.end,
-          inputId,
-          start: value.start
-        }
-      } else {
-        fixed[name] = value
-      }
-    }
-
-    if (emitInputs) {
-      fixed.inputs = [...inputs.keys()].map(input => input.toJSON())
-    }
-
-    return fixed
-  }
-
-  toProxy() {
-    if (!this.proxyCache) {
-      this.proxyCache = new Proxy(this, this.getProxyProcessor())
-    }
-    return this.proxyCache
-  }
-
-  toString(stringifier = stringify) {
-    if (stringifier.stringify) stringifier = stringifier.stringify
-    let result = ''
-    stringifier(this, i => {
-      result += i
-    })
-    return result
-  }
-
-  warn(result, text, opts = {}) {
-    let data = { node: this }
-    for (let i in opts) data[i] = opts[i]
-    return result.warn(text, data)
-  }
-}
-
-module.exports = Node
-Node.default = Node
Index: de_modules/postcss/lib/parse.d.ts
===================================================================
--- node_modules/postcss/lib/parse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { Parser } from './postcss.js'
-
-interface Parse extends Parser {
-  default: Parse
-}
-
-declare const parse: Parse
-
-export = parse
Index: de_modules/postcss/lib/parse.js
===================================================================
--- node_modules/postcss/lib/parse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-let Input = require('./input')
-let Parser = require('./parser')
-
-function parse(css, opts) {
-  let input = new Input(css, opts)
-  let parser = new Parser(input)
-  try {
-    parser.parse()
-  } catch (e) {
-    if (process.env.NODE_ENV !== 'production') {
-      if (e.name === 'CssSyntaxError' && opts && opts.from) {
-        if (/\.scss$/i.test(opts.from)) {
-          e.message +=
-            '\nYou tried to parse SCSS with ' +
-            'the standard CSS parser; ' +
-            'try again with the postcss-scss parser'
-        } else if (/\.sass/i.test(opts.from)) {
-          e.message +=
-            '\nYou tried to parse Sass with ' +
-            'the standard CSS parser; ' +
-            'try again with the postcss-sass parser'
-        } else if (/\.less$/i.test(opts.from)) {
-          e.message +=
-            '\nYou tried to parse Less with ' +
-            'the standard CSS parser; ' +
-            'try again with the postcss-less parser'
-        }
-      }
-    }
-    throw e
-  }
-
-  return parser.root
-}
-
-module.exports = parse
-parse.default = parse
-
-Container.registerParse(parse)
Index: de_modules/postcss/lib/parser.js
===================================================================
--- node_modules/postcss/lib/parser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,611 +1,0 @@
-'use strict'
-
-let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Declaration = require('./declaration')
-let Root = require('./root')
-let Rule = require('./rule')
-let tokenizer = require('./tokenize')
-
-const SAFE_COMMENT_NEIGHBOR = {
-  empty: true,
-  space: true
-}
-
-function findLastWithPosition(tokens) {
-  for (let i = tokens.length - 1; i >= 0; i--) {
-    let token = tokens[i]
-    let pos = token[3] || token[2]
-    if (pos) return pos
-  }
-}
-
-class Parser {
-  constructor(input) {
-    this.input = input
-
-    this.root = new Root()
-    this.current = this.root
-    this.spaces = ''
-    this.semicolon = false
-
-    this.createTokenizer()
-    this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }
-  }
-
-  atrule(token) {
-    let node = new AtRule()
-    node.name = token[1].slice(1)
-    if (node.name === '') {
-      this.unnamedAtrule(node, token)
-    }
-    this.init(node, token[2])
-
-    let type
-    let prev
-    let shift
-    let last = false
-    let open = false
-    let params = []
-    let brackets = []
-
-    while (!this.tokenizer.endOfFile()) {
-      token = this.tokenizer.nextToken()
-      type = token[0]
-
-      if (type === '(' || type === '[') {
-        brackets.push(type === '(' ? ')' : ']')
-      } else if (type === '{' && brackets.length > 0) {
-        brackets.push('}')
-      } else if (type === brackets[brackets.length - 1]) {
-        brackets.pop()
-      }
-
-      if (brackets.length === 0) {
-        if (type === ';') {
-          node.source.end = this.getPosition(token[2])
-          node.source.end.offset++
-          this.semicolon = true
-          break
-        } else if (type === '{') {
-          open = true
-          break
-        } else if (type === '}') {
-          if (params.length > 0) {
-            shift = params.length - 1
-            prev = params[shift]
-            while (prev && prev[0] === 'space') {
-              prev = params[--shift]
-            }
-            if (prev) {
-              node.source.end = this.getPosition(prev[3] || prev[2])
-              node.source.end.offset++
-            }
-          }
-          this.end(token)
-          break
-        } else {
-          params.push(token)
-        }
-      } else {
-        params.push(token)
-      }
-
-      if (this.tokenizer.endOfFile()) {
-        last = true
-        break
-      }
-    }
-
-    node.raws.between = this.spacesAndCommentsFromEnd(params)
-    if (params.length) {
-      node.raws.afterName = this.spacesAndCommentsFromStart(params)
-      this.raw(node, 'params', params)
-      if (last) {
-        token = params[params.length - 1]
-        node.source.end = this.getPosition(token[3] || token[2])
-        node.source.end.offset++
-        this.spaces = node.raws.between
-        node.raws.between = ''
-      }
-    } else {
-      node.raws.afterName = ''
-      node.params = ''
-    }
-
-    if (open) {
-      node.nodes = []
-      this.current = node
-    }
-  }
-
-  checkMissedSemicolon(tokens) {
-    let colon = this.colon(tokens)
-    if (colon === false) return
-
-    let founded = 0
-    let token
-    for (let j = colon - 1; j >= 0; j--) {
-      token = tokens[j]
-      if (token[0] !== 'space') {
-        founded += 1
-        if (founded === 2) break
-      }
-    }
-    // If the token is a word, e.g. `!important`, `red` or any other valid property's value.
-    // Then we need to return the colon after that word token. [3] is the "end" colon of that word.
-    // And because we need it after that one we do +1 to get the next one.
-    throw this.input.error(
-      'Missed semicolon',
-      token[0] === 'word' ? token[3] + 1 : token[2]
-    )
-  }
-
-  colon(tokens) {
-    let brackets = 0
-    let prev, token, type
-    for (let [i, element] of tokens.entries()) {
-      token = element
-      type = token[0]
-
-      if (type === '(') {
-        brackets += 1
-      }
-      if (type === ')') {
-        brackets -= 1
-      }
-      if (brackets === 0 && type === ':') {
-        if (!prev) {
-          this.doubleColon(token)
-        } else if (prev[0] === 'word' && prev[1] === 'progid') {
-          continue
-        } else {
-          return i
-        }
-      }
-
-      prev = token
-    }
-    return false
-  }
-
-  comment(token) {
-    let node = new Comment()
-    this.init(node, token[2])
-    node.source.end = this.getPosition(token[3] || token[2])
-    node.source.end.offset++
-
-    let text = token[1].slice(2, -2)
-    if (/^\s*$/.test(text)) {
-      node.text = ''
-      node.raws.left = text
-      node.raws.right = ''
-    } else {
-      let match = text.match(/^(\s*)([^]*\S)(\s*)$/)
-      node.text = match[2]
-      node.raws.left = match[1]
-      node.raws.right = match[3]
-    }
-  }
-
-  createTokenizer() {
-    this.tokenizer = tokenizer(this.input)
-  }
-
-  decl(tokens, customProperty) {
-    let node = new Declaration()
-    this.init(node, tokens[0][2])
-
-    let last = tokens[tokens.length - 1]
-    if (last[0] === ';') {
-      this.semicolon = true
-      tokens.pop()
-    }
-
-    node.source.end = this.getPosition(
-      last[3] || last[2] || findLastWithPosition(tokens)
-    )
-    node.source.end.offset++
-
-    while (tokens[0][0] !== 'word') {
-      if (tokens.length === 1) this.unknownWord(tokens)
-      node.raws.before += tokens.shift()[1]
-    }
-    node.source.start = this.getPosition(tokens[0][2])
-
-    node.prop = ''
-    while (tokens.length) {
-      let type = tokens[0][0]
-      if (type === ':' || type === 'space' || type === 'comment') {
-        break
-      }
-      node.prop += tokens.shift()[1]
-    }
-
-    node.raws.between = ''
-
-    let token
-    while (tokens.length) {
-      token = tokens.shift()
-
-      if (token[0] === ':') {
-        node.raws.between += token[1]
-        break
-      } else {
-        if (token[0] === 'word' && /\w/.test(token[1])) {
-          this.unknownWord([token])
-        }
-        node.raws.between += token[1]
-      }
-    }
-
-    if (node.prop[0] === '_' || node.prop[0] === '*') {
-      node.raws.before += node.prop[0]
-      node.prop = node.prop.slice(1)
-    }
-
-    let firstSpaces = []
-    let next
-    while (tokens.length) {
-      next = tokens[0][0]
-      if (next !== 'space' && next !== 'comment') break
-      firstSpaces.push(tokens.shift())
-    }
-
-    this.precheckMissedSemicolon(tokens)
-
-    for (let i = tokens.length - 1; i >= 0; i--) {
-      token = tokens[i]
-      if (token[1].toLowerCase() === '!important') {
-        node.important = true
-        let string = this.stringFrom(tokens, i)
-        string = this.spacesFromEnd(tokens) + string
-        if (string !== ' !important') node.raws.important = string
-        break
-      } else if (token[1].toLowerCase() === 'important') {
-        let cache = tokens.slice(0)
-        let str = ''
-        for (let j = i; j > 0; j--) {
-          let type = cache[j][0]
-          if (str.trim().startsWith('!') && type !== 'space') {
-            break
-          }
-          str = cache.pop()[1] + str
-        }
-        if (str.trim().startsWith('!')) {
-          node.important = true
-          node.raws.important = str
-          tokens = cache
-        }
-      }
-
-      if (token[0] !== 'space' && token[0] !== 'comment') {
-        break
-      }
-    }
-
-    let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')
-
-    if (hasWord) {
-      node.raws.between += firstSpaces.map(i => i[1]).join('')
-      firstSpaces = []
-    }
-    this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)
-
-    if (node.value.includes(':') && !customProperty) {
-      this.checkMissedSemicolon(tokens)
-    }
-  }
-
-  doubleColon(token) {
-    throw this.input.error(
-      'Double colon',
-      { offset: token[2] },
-      { offset: token[2] + token[1].length }
-    )
-  }
-
-  emptyRule(token) {
-    let node = new Rule()
-    this.init(node, token[2])
-    node.selector = ''
-    node.raws.between = ''
-    this.current = node
-  }
-
-  end(token) {
-    if (this.current.nodes && this.current.nodes.length) {
-      this.current.raws.semicolon = this.semicolon
-    }
-    this.semicolon = false
-
-    this.current.raws.after = (this.current.raws.after || '') + this.spaces
-    this.spaces = ''
-
-    if (this.current.parent) {
-      this.current.source.end = this.getPosition(token[2])
-      this.current.source.end.offset++
-      this.current = this.current.parent
-    } else {
-      this.unexpectedClose(token)
-    }
-  }
-
-  endFile() {
-    if (this.current.parent) this.unclosedBlock()
-    if (this.current.nodes && this.current.nodes.length) {
-      this.current.raws.semicolon = this.semicolon
-    }
-    this.current.raws.after = (this.current.raws.after || '') + this.spaces
-    this.root.source.end = this.getPosition(this.tokenizer.position())
-  }
-
-  freeSemicolon(token) {
-    this.spaces += token[1]
-    if (this.current.nodes) {
-      let prev = this.current.nodes[this.current.nodes.length - 1]
-      if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {
-        prev.raws.ownSemicolon = this.spaces
-        this.spaces = ''
-        prev.source.end = this.getPosition(token[2])
-        prev.source.end.offset += prev.raws.ownSemicolon.length
-      }
-    }
-  }
-
-  // Helpers
-
-  getPosition(offset) {
-    let pos = this.input.fromOffset(offset)
-    return {
-      column: pos.col,
-      line: pos.line,
-      offset
-    }
-  }
-
-  init(node, offset) {
-    this.current.push(node)
-    node.source = {
-      input: this.input,
-      start: this.getPosition(offset)
-    }
-    node.raws.before = this.spaces
-    this.spaces = ''
-    if (node.type !== 'comment') this.semicolon = false
-  }
-
-  other(start) {
-    let end = false
-    let type = null
-    let colon = false
-    let bracket = null
-    let brackets = []
-    let customProperty = start[1].startsWith('--')
-
-    let tokens = []
-    let token = start
-    while (token) {
-      type = token[0]
-      tokens.push(token)
-
-      if (type === '(' || type === '[') {
-        if (!bracket) bracket = token
-        brackets.push(type === '(' ? ')' : ']')
-      } else if (customProperty && colon && type === '{') {
-        if (!bracket) bracket = token
-        brackets.push('}')
-      } else if (brackets.length === 0) {
-        if (type === ';') {
-          if (colon) {
-            this.decl(tokens, customProperty)
-            return
-          } else {
-            break
-          }
-        } else if (type === '{') {
-          this.rule(tokens)
-          return
-        } else if (type === '}') {
-          this.tokenizer.back(tokens.pop())
-          end = true
-          break
-        } else if (type === ':') {
-          colon = true
-        }
-      } else if (type === brackets[brackets.length - 1]) {
-        brackets.pop()
-        if (brackets.length === 0) bracket = null
-      }
-
-      token = this.tokenizer.nextToken()
-    }
-
-    if (this.tokenizer.endOfFile()) end = true
-    if (brackets.length > 0) this.unclosedBracket(bracket)
-
-    if (end && colon) {
-      if (!customProperty) {
-        while (tokens.length) {
-          token = tokens[tokens.length - 1][0]
-          if (token !== 'space' && token !== 'comment') break
-          this.tokenizer.back(tokens.pop())
-        }
-      }
-      this.decl(tokens, customProperty)
-    } else {
-      this.unknownWord(tokens)
-    }
-  }
-
-  parse() {
-    let token
-    while (!this.tokenizer.endOfFile()) {
-      token = this.tokenizer.nextToken()
-
-      switch (token[0]) {
-        case 'space':
-          this.spaces += token[1]
-          break
-
-        case ';':
-          this.freeSemicolon(token)
-          break
-
-        case '}':
-          this.end(token)
-          break
-
-        case 'comment':
-          this.comment(token)
-          break
-
-        case 'at-word':
-          this.atrule(token)
-          break
-
-        case '{':
-          this.emptyRule(token)
-          break
-
-        default:
-          this.other(token)
-          break
-      }
-    }
-    this.endFile()
-  }
-
-  precheckMissedSemicolon(/* tokens */) {
-    // Hook for Safe Parser
-  }
-
-  raw(node, prop, tokens, customProperty) {
-    let token, type
-    let length = tokens.length
-    let value = ''
-    let clean = true
-    let next, prev
-
-    for (let i = 0; i < length; i += 1) {
-      token = tokens[i]
-      type = token[0]
-      if (type === 'space' && i === length - 1 && !customProperty) {
-        clean = false
-      } else if (type === 'comment') {
-        prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'
-        next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'
-        if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {
-          if (value.slice(-1) === ',') {
-            clean = false
-          } else {
-            value += token[1]
-          }
-        } else {
-          clean = false
-        }
-      } else {
-        value += token[1]
-      }
-    }
-    if (!clean) {
-      let raw = tokens.reduce((all, i) => all + i[1], '')
-      node.raws[prop] = { raw, value }
-    }
-    node[prop] = value
-  }
-
-  rule(tokens) {
-    tokens.pop()
-
-    let node = new Rule()
-    this.init(node, tokens[0][2])
-
-    node.raws.between = this.spacesAndCommentsFromEnd(tokens)
-    this.raw(node, 'selector', tokens)
-    this.current = node
-  }
-
-  spacesAndCommentsFromEnd(tokens) {
-    let lastTokenType
-    let spaces = ''
-    while (tokens.length) {
-      lastTokenType = tokens[tokens.length - 1][0]
-      if (lastTokenType !== 'space' && lastTokenType !== 'comment') break
-      spaces = tokens.pop()[1] + spaces
-    }
-    return spaces
-  }
-
-  // Errors
-
-  spacesAndCommentsFromStart(tokens) {
-    let next
-    let spaces = ''
-    while (tokens.length) {
-      next = tokens[0][0]
-      if (next !== 'space' && next !== 'comment') break
-      spaces += tokens.shift()[1]
-    }
-    return spaces
-  }
-
-  spacesFromEnd(tokens) {
-    let lastTokenType
-    let spaces = ''
-    while (tokens.length) {
-      lastTokenType = tokens[tokens.length - 1][0]
-      if (lastTokenType !== 'space') break
-      spaces = tokens.pop()[1] + spaces
-    }
-    return spaces
-  }
-
-  stringFrom(tokens, from) {
-    let result = ''
-    for (let i = from; i < tokens.length; i++) {
-      result += tokens[i][1]
-    }
-    tokens.splice(from, tokens.length - from)
-    return result
-  }
-
-  unclosedBlock() {
-    let pos = this.current.source.start
-    throw this.input.error('Unclosed block', pos.line, pos.column)
-  }
-
-  unclosedBracket(bracket) {
-    throw this.input.error(
-      'Unclosed bracket',
-      { offset: bracket[2] },
-      { offset: bracket[2] + 1 }
-    )
-  }
-
-  unexpectedClose(token) {
-    throw this.input.error(
-      'Unexpected }',
-      { offset: token[2] },
-      { offset: token[2] + 1 }
-    )
-  }
-
-  unknownWord(tokens) {
-    throw this.input.error(
-      'Unknown word ' + tokens[0][1],
-      { offset: tokens[0][2] },
-      { offset: tokens[0][2] + tokens[0][1].length }
-    )
-  }
-
-  unnamedAtrule(node, token) {
-    throw this.input.error(
-      'At-rule without name',
-      { offset: token[2] },
-      { offset: token[2] + token[1].length }
-    )
-  }
-}
-
-module.exports = Parser
Index: de_modules/postcss/lib/postcss.d.mts
===================================================================
--- node_modules/postcss/lib/postcss.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-export {
-  // Type-only exports
-  AcceptedPlugin,
-
-  AnyNode,
-  atRule,
-  AtRule,
-  AtRuleProps,
-  Builder,
-  ChildNode,
-  ChildProps,
-  comment,
-  Comment,
-  CommentProps,
-  Container,
-  ContainerProps,
-  CssSyntaxError,
-  decl,
-  Declaration,
-  DeclarationProps,
-  // postcss function / namespace
-  default,
-  document,
-  Document,
-  DocumentProps,
-  FilePosition,
-  fromJSON,
-  Helpers,
-  Input,
-
-  JSONHydrator,
-  // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here.
-  type LazyResult,
-  list,
-  Message,
-  Node,
-  NodeErrorOptions,
-  NodeProps,
-  OldPlugin,
-  parse,
-  Parser,
-  // @ts-expect-error This value exists, but it’s untyped.
-  plugin,
-  Plugin,
-  PluginCreator,
-  Position,
-  Postcss,
-  ProcessOptions,
-  Processor,
-  Result,
-  root,
-  Root,
-  RootProps,
-  rule,
-  Rule,
-  RuleProps,
-  Source,
-  SourceMap,
-  SourceMapOptions,
-  Stringifier,
-  // Value exports from postcss.mjs
-  stringify,
-  Syntax,
-  TransformCallback,
-  Transformer,
-  Warning,
-
-  WarningOptions
-} from './postcss.js'
Index: de_modules/postcss/lib/postcss.d.ts
===================================================================
--- node_modules/postcss/lib/postcss.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,458 +1,0 @@
-import { RawSourceMap, SourceMapGenerator } from 'source-map-js'
-
-import AtRule, { AtRuleProps } from './at-rule.js'
-import Comment, { CommentProps } from './comment.js'
-import Container, { ContainerProps, NewChild } from './container.js'
-import CssSyntaxError from './css-syntax-error.js'
-import Declaration, { DeclarationProps } from './declaration.js'
-import Document, { DocumentProps } from './document.js'
-import Input, { FilePosition } from './input.js'
-import LazyResult from './lazy-result.js'
-import list from './list.js'
-import Node, {
-  AnyNode,
-  ChildNode,
-  ChildProps,
-  NodeErrorOptions,
-  NodeProps,
-  Position,
-  Source
-} from './node.js'
-import Processor from './processor.js'
-import Result, { Message } from './result.js'
-import Root, { RootProps } from './root.js'
-import Rule, { RuleProps } from './rule.js'
-import Warning, { WarningOptions } from './warning.js'
-
-type DocumentProcessor = (
-  document: Document,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type RootProcessor = (
-  root: Root,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type DeclarationProcessor = (
-  decl: Declaration,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type RuleProcessor = (
-  rule: Rule,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type AtRuleProcessor = (
-  atRule: AtRule,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type CommentProcessor = (
-  comment: Comment,
-  helper: postcss.Helpers
-) => Promise<void> | void
-
-interface Processors {
-  /**
-   * Will be called on all`AtRule` nodes.
-   *
-   * Will be called again on node or children changes.
-   */
-  AtRule?: { [name: string]: AtRuleProcessor } | AtRuleProcessor
-
-  /**
-   * Will be called on all `AtRule` nodes, when all children will be processed.
-   *
-   * Will be called again on node or children changes.
-   */
-  AtRuleExit?: { [name: string]: AtRuleProcessor } | AtRuleProcessor
-
-  /**
-   * Will be called on all `Comment` nodes.
-   *
-   * Will be called again on node or children changes.
-   */
-  Comment?: CommentProcessor
-
-  /**
-   * Will be called on all `Comment` nodes after listeners
-   * for `Comment` event.
-   *
-   * Will be called again on node or children changes.
-   */
-  CommentExit?: CommentProcessor
-
-  /**
-   * Will be called on all `Declaration` nodes after listeners
-   * for `Declaration` event.
-   *
-   * Will be called again on node or children changes.
-   */
-  Declaration?: { [prop: string]: DeclarationProcessor } | DeclarationProcessor
-
-  /**
-   * Will be called on all `Declaration` nodes.
-   *
-   * Will be called again on node or children changes.
-   */
-  DeclarationExit?:
-    | { [prop: string]: DeclarationProcessor }
-    | DeclarationProcessor
-
-  /**
-   * Will be called on `Document` node.
-   *
-   * Will be called again on children changes.
-   */
-  Document?: DocumentProcessor
-
-  /**
-   * Will be called on `Document` node, when all children will be processed.
-   *
-   * Will be called again on children changes.
-   */
-  DocumentExit?: DocumentProcessor
-
-  /**
-   * Will be called on `Root` node once.
-   */
-  Once?: RootProcessor
-
-  /**
-   * Will be called on `Root` node once, when all children will be processed.
-   */
-  OnceExit?: RootProcessor
-
-  /**
-   * Will be called on `Root` node.
-   *
-   * Will be called again on children changes.
-   */
-  Root?: RootProcessor
-
-  /**
-   * Will be called on `Root` node, when all children will be processed.
-   *
-   * Will be called again on children changes.
-   */
-  RootExit?: RootProcessor
-
-  /**
-   * Will be called on all `Rule` nodes.
-   *
-   * Will be called again on node or children changes.
-   */
-  Rule?: RuleProcessor
-
-  /**
-   * Will be called on all `Rule` nodes, when all children will be processed.
-   *
-   * Will be called again on node or children changes.
-   */
-  RuleExit?: RuleProcessor
-}
-
-declare namespace postcss {
-  export {
-    AnyNode,
-    AtRule,
-    AtRuleProps,
-    ChildNode,
-    ChildProps,
-    Comment,
-    CommentProps,
-    Container,
-    ContainerProps,
-    CssSyntaxError,
-    Declaration,
-    DeclarationProps,
-    Document,
-    DocumentProps,
-    FilePosition,
-    Input,
-    LazyResult,
-    list,
-    Message,
-    NewChild,
-    Node,
-    NodeErrorOptions,
-    NodeProps,
-    Position,
-    Processor,
-    Result,
-    Root,
-    RootProps,
-    Rule,
-    RuleProps,
-    Source,
-    Warning,
-    WarningOptions
-  }
-
-  export type SourceMap = {
-    toJSON(): RawSourceMap
-  } & SourceMapGenerator
-
-  export type Helpers = { postcss: Postcss; result: Result } & Postcss
-
-  export interface Plugin extends Processors {
-    postcssPlugin: string
-    prepare?: (result: Result) => Processors
-  }
-
-  export interface PluginCreator<PluginOptions> {
-    (opts?: PluginOptions): Plugin | Processor
-    postcss: true
-  }
-
-  export interface Transformer extends TransformCallback {
-    postcssPlugin: string
-    postcssVersion: string
-  }
-
-  export interface TransformCallback {
-    (root: Root, result: Result): Promise<void> | void
-  }
-
-  export interface OldPlugin<T> extends Transformer {
-    (opts?: T): Transformer
-    postcss: Transformer
-  }
-
-  export type AcceptedPlugin =
-    | {
-        postcss: Processor | TransformCallback
-      }
-    | OldPlugin<any>
-    | Plugin
-    | PluginCreator<any>
-    | Processor
-    | TransformCallback
-
-  export interface Parser<RootNode = Document | Root> {
-    (
-      css: { toString(): string } | string,
-      opts?: Pick<ProcessOptions, 'document' | 'from' | 'map'>
-    ): RootNode
-  }
-
-  export interface Builder {
-    (part: string, node?: AnyNode, type?: 'end' | 'start'): void
-  }
-
-  export interface Stringifier {
-    (node: AnyNode, builder: Builder): void
-  }
-
-  export interface JSONHydrator {
-    (data: object): Node
-    (data: object[]): Node[]
-  }
-
-  export interface Syntax<RootNode = Document | Root> {
-    /**
-     * Function to generate AST by string.
-     */
-    parse?: Parser<RootNode>
-
-    /**
-     * Class to generate string by AST.
-     */
-    stringify?: Stringifier
-  }
-
-  export interface SourceMapOptions {
-    /**
-     * Use absolute path in generated source map.
-     */
-    absolute?: boolean
-
-    /**
-     * Indicates that PostCSS should add annotation comments to the CSS.
-     * By default, PostCSS will always add a comment with a path
-     * to the source map. PostCSS will not add annotations to CSS files
-     * that do not contain any comments.
-     *
-     * By default, PostCSS presumes that you want to save the source map as
-     * `opts.to + '.map'` and will use this path in the annotation comment.
-     * A different path can be set by providing a string value for annotation.
-     *
-     * If you have set `inline: true`, annotation cannot be disabled.
-     */
-    annotation?: ((file: string, root: Root) => string) | boolean | string
-
-    /**
-     * Override `from` in map’s sources.
-     */
-    from?: string
-
-    /**
-     * Indicates that the source map should be embedded in the output CSS
-     * as a Base64-encoded comment. By default, it is `true`.
-     * But if all previous maps are external, not inline, PostCSS will not embed
-     * the map even if you do not set this option.
-     *
-     * If you have an inline source map, the result.map property will be empty,
-     * as the source map will be contained within the text of `result.css`.
-     */
-    inline?: boolean
-
-    /**
-     * Source map content from a previous processing step (e.g., Sass).
-     *
-     * PostCSS will try to read the previous source map
-     * automatically (based on comments within the source CSS), but you can use
-     * this option to identify it manually.
-     *
-     * If desired, you can omit the previous map with prev: `false`.
-     */
-    prev?: ((file: string) => string) | boolean | object | string
-
-    /**
-     * Indicates that PostCSS should set the origin content (e.g., Sass source)
-     * of the source map. By default, it is true. But if all previous maps do not
-     * contain sources content, PostCSS will also leave it out even if you
-     * do not set this option.
-     */
-    sourcesContent?: boolean
-  }
-
-  export interface ProcessOptions<RootNode = Document | Root> {
-    /**
-     * Input file if it is not simple CSS file, but HTML with <style> or JS with CSS-in-JS blocks.
-     */
-    document?: string
-
-    /**
-     * The path of the CSS source file. You should always set `from`,
-     * because it is used in source map generation and syntax error messages.
-     */
-    from?: string | undefined
-
-    /**
-     * Source map options
-     */
-    map?: boolean | SourceMapOptions
-
-    /**
-     * Function to generate AST by string.
-     */
-    parser?: Parser<RootNode> | Syntax<RootNode>
-
-    /**
-     * Class to generate string by AST.
-     */
-    stringifier?: Stringifier | Syntax<RootNode>
-
-    /**
-     * Object with parse and stringify.
-     */
-    syntax?: Syntax<RootNode>
-
-    /**
-     * The path where you'll put the output CSS file. You should always set `to`
-     * to generate correct source maps.
-     */
-    to?: string
-  }
-
-  export type Postcss = typeof postcss
-
-  /**
-   * Default function to convert a node tree into a CSS string.
-   */
-  export let stringify: Stringifier
-
-  /**
-   * Parses source css and returns a new `Root` or `Document` node,
-   * which contains the source CSS nodes.
-   *
-   * ```js
-   * // Simple CSS concatenation with source map support
-   * const root1 = postcss.parse(css1, { from: file1 })
-   * const root2 = postcss.parse(css2, { from: file2 })
-   * root1.append(root2).toResult().css
-   * ```
-   */
-  export let parse: Parser<Root>
-
-  /**
-   * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes.
-   *
-   * ```js
-   * const json = root.toJSON()
-   * // save to file, send by network, etc
-   * const root2  = postcss.fromJSON(json)
-   * ```
-   */
-  export let fromJSON: JSONHydrator
-
-  /**
-   * Creates a new `Comment` node.
-   *
-   * @param defaults Properties for the new node.
-   * @return New comment node
-   */
-  export function comment(defaults?: CommentProps): Comment
-
-  /**
-   * Creates a new `AtRule` node.
-   *
-   * @param defaults Properties for the new node.
-   * @return New at-rule node.
-   */
-  export function atRule(defaults?: AtRuleProps): AtRule
-
-  /**
-   * Creates a new `Declaration` node.
-   *
-   * @param defaults Properties for the new node.
-   * @return New declaration node.
-   */
-  export function decl(defaults?: DeclarationProps): Declaration
-
-  /**
-   * Creates a new `Rule` node.
-   *
-   * @param default Properties for the new node.
-   * @return New rule node.
-   */
-  export function rule(defaults?: RuleProps): Rule
-
-  /**
-   * Creates a new `Root` node.
-   *
-   * @param defaults Properties for the new node.
-   * @return New root node.
-   */
-  export function root(defaults?: RootProps): Root
-
-  /**
-   * Creates a new `Document` node.
-   *
-   * @param defaults Properties for the new node.
-   * @return New document node.
-   */
-  export function document(defaults?: DocumentProps): Document
-
-  export { postcss as default }
-}
-
-/**
- * Create a new `Processor` instance that will apply `plugins`
- * as CSS processors.
- *
- * ```js
- * let postcss = require('postcss')
- *
- * postcss(plugins).process(css, { from, to }).then(result => {
- *   console.log(result.css)
- * })
- * ```
- *
- * @param plugins PostCSS plugins.
- * @return Processor to process multiple CSS.
- */
-declare function postcss(
-  plugins?: readonly postcss.AcceptedPlugin[]
-): Processor
-declare function postcss(...plugins: postcss.AcceptedPlugin[]): Processor
-
-export = postcss
Index: de_modules/postcss/lib/postcss.js
===================================================================
--- node_modules/postcss/lib/postcss.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,101 +1,0 @@
-'use strict'
-
-let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Container = require('./container')
-let CssSyntaxError = require('./css-syntax-error')
-let Declaration = require('./declaration')
-let Document = require('./document')
-let fromJSON = require('./fromJSON')
-let Input = require('./input')
-let LazyResult = require('./lazy-result')
-let list = require('./list')
-let Node = require('./node')
-let parse = require('./parse')
-let Processor = require('./processor')
-let Result = require('./result.js')
-let Root = require('./root')
-let Rule = require('./rule')
-let stringify = require('./stringify')
-let Warning = require('./warning')
-
-function postcss(...plugins) {
-  if (plugins.length === 1 && Array.isArray(plugins[0])) {
-    plugins = plugins[0]
-  }
-  return new Processor(plugins)
-}
-
-postcss.plugin = function plugin(name, initializer) {
-  let warningPrinted = false
-  function creator(...args) {
-    // eslint-disable-next-line no-console
-    if (console && console.warn && !warningPrinted) {
-      warningPrinted = true
-      // eslint-disable-next-line no-console
-      console.warn(
-        name +
-          ': postcss.plugin was deprecated. Migration guide:\n' +
-          'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
-      )
-      if (process.env.LANG && process.env.LANG.startsWith('cn')) {
-        /* c8 ignore next 7 */
-        // eslint-disable-next-line no-console
-        console.warn(
-          name +
-            ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
-            'https://www.w3ctech.com/topic/2226'
-        )
-      }
-    }
-    let transformer = initializer(...args)
-    transformer.postcssPlugin = name
-    transformer.postcssVersion = new Processor().version
-    return transformer
-  }
-
-  let cache
-  Object.defineProperty(creator, 'postcss', {
-    get() {
-      if (!cache) cache = creator()
-      return cache
-    }
-  })
-
-  creator.process = function (css, processOpts, pluginOpts) {
-    return postcss([creator(pluginOpts)]).process(css, processOpts)
-  }
-
-  return creator
-}
-
-postcss.stringify = stringify
-postcss.parse = parse
-postcss.fromJSON = fromJSON
-postcss.list = list
-
-postcss.comment = defaults => new Comment(defaults)
-postcss.atRule = defaults => new AtRule(defaults)
-postcss.decl = defaults => new Declaration(defaults)
-postcss.rule = defaults => new Rule(defaults)
-postcss.root = defaults => new Root(defaults)
-postcss.document = defaults => new Document(defaults)
-
-postcss.CssSyntaxError = CssSyntaxError
-postcss.Declaration = Declaration
-postcss.Container = Container
-postcss.Processor = Processor
-postcss.Document = Document
-postcss.Comment = Comment
-postcss.Warning = Warning
-postcss.AtRule = AtRule
-postcss.Result = Result
-postcss.Input = Input
-postcss.Rule = Rule
-postcss.Root = Root
-postcss.Node = Node
-
-LazyResult.registerPostcss(postcss)
-
-module.exports = postcss
-postcss.default = postcss
Index: de_modules/postcss/lib/postcss.mjs
===================================================================
--- node_modules/postcss/lib/postcss.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import postcss from './postcss.js'
-
-export default postcss
-
-export const stringify = postcss.stringify
-export const fromJSON = postcss.fromJSON
-export const plugin = postcss.plugin
-export const parse = postcss.parse
-export const list = postcss.list
-
-export const document = postcss.document
-export const comment = postcss.comment
-export const atRule = postcss.atRule
-export const rule = postcss.rule
-export const decl = postcss.decl
-export const root = postcss.root
-
-export const CssSyntaxError = postcss.CssSyntaxError
-export const Declaration = postcss.Declaration
-export const Container = postcss.Container
-export const Processor = postcss.Processor
-export const Document = postcss.Document
-export const Comment = postcss.Comment
-export const Warning = postcss.Warning
-export const AtRule = postcss.AtRule
-export const Result = postcss.Result
-export const Input = postcss.Input
-export const Rule = postcss.Rule
-export const Root = postcss.Root
-export const Node = postcss.Node
Index: de_modules/postcss/lib/previous-map.d.ts
===================================================================
--- node_modules/postcss/lib/previous-map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import { SourceMapConsumer } from 'source-map-js'
-
-import { ProcessOptions } from './postcss.js'
-
-declare namespace PreviousMap {
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { PreviousMap_ as default }
-}
-
-/**
- * Source map information from input CSS.
- * For example, source map after Sass compiler.
- *
- * This class will automatically find source map in input CSS or in file system
- * near input file (according `from` option).
- *
- * ```js
- * const root = parse(css, { from: 'a.sass.css' })
- * root.input.map //=> PreviousMap
- * ```
- */
-declare class PreviousMap_ {
-  /**
-   * `sourceMappingURL` content.
-   */
-  annotation?: string
-
-  /**
-   * The CSS source identifier. Contains `Input#file` if the user
-   * set the `from` option, or `Input#id` if they did not.
-   */
-  file?: string
-
-  /**
-   * Was source map inlined by data-uri to input CSS.
-   */
-  inline: boolean
-
-  /**
-   * Path to source map file.
-   */
-  mapFile?: string
-
-  /**
-   * The directory with source map file, if source map is in separated file.
-   */
-  root?: string
-
-  /**
-   * Source map file content.
-   */
-  text?: string
-
-  /**
-   * @param css  Input CSS source.
-   * @param opts Process options.
-   */
-  constructor(css: string, opts?: ProcessOptions)
-
-  /**
-   * Create a instance of `SourceMapGenerator` class
-   * from the `source-map` library to work with source map information.
-   *
-   * It is lazy method, so it will create object only on first call
-   * and then it will use cache.
-   *
-   * @return Object with source map information.
-   */
-  consumer(): SourceMapConsumer
-
-  /**
-   * Does source map contains `sourcesContent` with input source text.
-   *
-   * @return Is `sourcesContent` present.
-   */
-  withContent(): boolean
-}
-
-declare class PreviousMap extends PreviousMap_ {}
-
-export = PreviousMap
Index: de_modules/postcss/lib/previous-map.js
===================================================================
--- node_modules/postcss/lib/previous-map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-'use strict'
-
-let { existsSync, readFileSync } = require('fs')
-let { dirname, join } = require('path')
-let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
-
-function fromBase64(str) {
-  if (Buffer) {
-    return Buffer.from(str, 'base64').toString()
-  } else {
-    /* c8 ignore next 2 */
-    return window.atob(str)
-  }
-}
-
-class PreviousMap {
-  constructor(css, opts) {
-    if (opts.map === false) return
-    this.loadAnnotation(css)
-    this.inline = this.startWith(this.annotation, 'data:')
-
-    let prev = opts.map ? opts.map.prev : undefined
-    let text = this.loadMap(opts.from, prev)
-    if (!this.mapFile && opts.from) {
-      this.mapFile = opts.from
-    }
-    if (this.mapFile) this.root = dirname(this.mapFile)
-    if (text) this.text = text
-  }
-
-  consumer() {
-    if (!this.consumerCache) {
-      this.consumerCache = new SourceMapConsumer(this.text)
-    }
-    return this.consumerCache
-  }
-
-  decodeInline(text) {
-    let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/
-    let baseUri = /^data:application\/json;base64,/
-    let charsetUri = /^data:application\/json;charset=utf-?8,/
-    let uri = /^data:application\/json,/
-
-    let uriMatch = text.match(charsetUri) || text.match(uri)
-    if (uriMatch) {
-      return decodeURIComponent(text.substr(uriMatch[0].length))
-    }
-
-    let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)
-    if (baseUriMatch) {
-      return fromBase64(text.substr(baseUriMatch[0].length))
-    }
-
-    let encoding = text.match(/data:application\/json;([^,]+),/)[1]
-    throw new Error('Unsupported source map encoding ' + encoding)
-  }
-
-  getAnnotationURL(sourceMapString) {
-    return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim()
-  }
-
-  isMap(map) {
-    if (typeof map !== 'object') return false
-    return (
-      typeof map.mappings === 'string' ||
-      typeof map._mappings === 'string' ||
-      Array.isArray(map.sections)
-    )
-  }
-
-  loadAnnotation(css) {
-    let comments = css.match(/\/\*\s*# sourceMappingURL=/g)
-    if (!comments) return
-
-    // sourceMappingURLs from comments, strings, etc.
-    let start = css.lastIndexOf(comments.pop())
-    let end = css.indexOf('*/', start)
-
-    if (start > -1 && end > -1) {
-      // Locate the last sourceMappingURL to avoid pickin
-      this.annotation = this.getAnnotationURL(css.substring(start, end))
-    }
-  }
-
-  loadFile(path) {
-    this.root = dirname(path)
-    if (existsSync(path)) {
-      this.mapFile = path
-      return readFileSync(path, 'utf-8').toString().trim()
-    }
-  }
-
-  loadMap(file, prev) {
-    if (prev === false) return false
-
-    if (prev) {
-      if (typeof prev === 'string') {
-        return prev
-      } else if (typeof prev === 'function') {
-        let prevPath = prev(file)
-        if (prevPath) {
-          let map = this.loadFile(prevPath)
-          if (!map) {
-            throw new Error(
-              'Unable to load previous source map: ' + prevPath.toString()
-            )
-          }
-          return map
-        }
-      } else if (prev instanceof SourceMapConsumer) {
-        return SourceMapGenerator.fromSourceMap(prev).toString()
-      } else if (prev instanceof SourceMapGenerator) {
-        return prev.toString()
-      } else if (this.isMap(prev)) {
-        return JSON.stringify(prev)
-      } else {
-        throw new Error(
-          'Unsupported previous source map format: ' + prev.toString()
-        )
-      }
-    } else if (this.inline) {
-      return this.decodeInline(this.annotation)
-    } else if (this.annotation) {
-      let map = this.annotation
-      if (file) map = join(dirname(file), map)
-      return this.loadFile(map)
-    }
-  }
-
-  startWith(string, start) {
-    if (!string) return false
-    return string.substr(0, start.length) === start
-  }
-
-  withContent() {
-    return !!(
-      this.consumer().sourcesContent &&
-      this.consumer().sourcesContent.length > 0
-    )
-  }
-}
-
-module.exports = PreviousMap
-PreviousMap.default = PreviousMap
Index: de_modules/postcss/lib/processor.d.ts
===================================================================
--- node_modules/postcss/lib/processor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,115 +1,0 @@
-import Document from './document.js'
-import LazyResult from './lazy-result.js'
-import NoWorkResult from './no-work-result.js'
-import {
-  AcceptedPlugin,
-  Plugin,
-  ProcessOptions,
-  TransformCallback,
-  Transformer
-} from './postcss.js'
-import Result from './result.js'
-import Root from './root.js'
-
-declare namespace Processor {
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Processor_ as default }
-}
-
-/**
- * Contains plugins to process CSS. Create one `Processor` instance,
- * initialize its plugins, and then use that instance on numerous CSS files.
- *
- * ```js
- * const processor = postcss([autoprefixer, postcssNested])
- * processor.process(css1).then(result => console.log(result.css))
- * processor.process(css2).then(result => console.log(result.css))
- * ```
- */
-declare class Processor_ {
-  /**
-   * Plugins added to this processor.
-   *
-   * ```js
-   * const processor = postcss([autoprefixer, postcssNested])
-   * processor.plugins.length //=> 2
-   * ```
-   */
-  plugins: (Plugin | TransformCallback | Transformer)[]
-
-  /**
-   * Current PostCSS version.
-   *
-   * ```js
-   * if (result.processor.version.split('.')[0] !== '6') {
-   *   throw new Error('This plugin works only with PostCSS 6')
-   * }
-   * ```
-   */
-  version: string
-
-  /**
-   * @param plugins PostCSS plugins
-   */
-  constructor(plugins?: readonly AcceptedPlugin[])
-
-  /**
-   * Parses source CSS and returns a `LazyResult` Promise proxy.
-   * Because some plugins can be asynchronous it doesn’t make
-   * any transformations. Transformations will be applied
-   * in the `LazyResult` methods.
-   *
-   * ```js
-   * processor.process(css, { from: 'a.css', to: 'a.out.css' })
-   *   .then(result => {
-   *      console.log(result.css)
-   *   })
-   * ```
-   *
-   * @param css String with input CSS or any object with a `toString()` method,
-   *            like a Buffer. Optionally, send a `Result` instance
-   *            and the processor will take the `Root` from it.
-   * @param opts Options.
-   * @return Promise proxy.
-   */
-  process(
-    css: { toString(): string } | LazyResult | Result | Root | string
-  ): LazyResult | NoWorkResult
-  process<RootNode extends Document | Root = Root>(
-    css: { toString(): string } | LazyResult | Result | Root | string,
-    options: ProcessOptions<RootNode>
-  ): LazyResult<RootNode>
-
-  /**
-   * Adds a plugin to be used as a CSS processor.
-   *
-   * PostCSS plugin can be in 4 formats:
-   * * A plugin in `Plugin` format.
-   * * A plugin creator function with `pluginCreator.postcss = true`.
-   *   PostCSS will call this function without argument to get plugin.
-   * * A function. PostCSS will pass the function a {@link Root}
-   *   as the first argument and current `Result` instance
-   *   as the second.
-   * * Another `Processor` instance. PostCSS will copy plugins
-   *   from that instance into this one.
-   *
-   * Plugins can also be added by passing them as arguments when creating
-   * a `postcss` instance (see [`postcss(plugins)`]).
-   *
-   * Asynchronous plugins should return a `Promise` instance.
-   *
-   * ```js
-   * const processor = postcss()
-   *   .use(autoprefixer)
-   *   .use(postcssNested)
-   * ```
-   *
-   * @param plugin PostCSS plugin or `Processor` with plugins.
-   * @return Current processor to make methods chain.
-   */
-  use(plugin: AcceptedPlugin): this
-}
-
-declare class Processor extends Processor_ {}
-
-export = Processor
Index: de_modules/postcss/lib/processor.js
===================================================================
--- node_modules/postcss/lib/processor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-'use strict'
-
-let Document = require('./document')
-let LazyResult = require('./lazy-result')
-let NoWorkResult = require('./no-work-result')
-let Root = require('./root')
-
-class Processor {
-  constructor(plugins = []) {
-    this.version = '8.5.6'
-    this.plugins = this.normalize(plugins)
-  }
-
-  normalize(plugins) {
-    let normalized = []
-    for (let i of plugins) {
-      if (i.postcss === true) {
-        i = i()
-      } else if (i.postcss) {
-        i = i.postcss
-      }
-
-      if (typeof i === 'object' && Array.isArray(i.plugins)) {
-        normalized = normalized.concat(i.plugins)
-      } else if (typeof i === 'object' && i.postcssPlugin) {
-        normalized.push(i)
-      } else if (typeof i === 'function') {
-        normalized.push(i)
-      } else if (typeof i === 'object' && (i.parse || i.stringify)) {
-        if (process.env.NODE_ENV !== 'production') {
-          throw new Error(
-            'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +
-              'one of the syntax/parser/stringifier options as outlined ' +
-              'in your PostCSS runner documentation.'
-          )
-        }
-      } else {
-        throw new Error(i + ' is not a PostCSS plugin')
-      }
-    }
-    return normalized
-  }
-
-  process(css, opts = {}) {
-    if (
-      !this.plugins.length &&
-      !opts.parser &&
-      !opts.stringifier &&
-      !opts.syntax
-    ) {
-      return new NoWorkResult(this, css, opts)
-    } else {
-      return new LazyResult(this, css, opts)
-    }
-  }
-
-  use(plugin) {
-    this.plugins = this.plugins.concat(this.normalize([plugin]))
-    return this
-  }
-}
-
-module.exports = Processor
-Processor.default = Processor
-
-Root.registerProcessor(Processor)
-Document.registerProcessor(Processor)
Index: de_modules/postcss/lib/result.d.ts
===================================================================
--- node_modules/postcss/lib/result.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,205 +1,0 @@
-import {
-  Document,
-  Node,
-  Plugin,
-  ProcessOptions,
-  Root,
-  SourceMap,
-  TransformCallback,
-  Warning,
-  WarningOptions
-} from './postcss.js'
-import Processor from './processor.js'
-
-declare namespace Result {
-  export interface Message {
-    [others: string]: any
-
-    /**
-     * Source PostCSS plugin name.
-     */
-    plugin?: string
-
-    /**
-     * Message type.
-     */
-    type: string
-  }
-
-  export interface ResultOptions extends ProcessOptions {
-    /**
-     * The CSS node that was the source of the warning.
-     */
-    node?: Node
-
-    /**
-     * Name of plugin that created this warning. `Result#warn` will fill it
-     * automatically with `Plugin#postcssPlugin` value.
-     */
-    plugin?: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Result_ as default }
-}
-
-/**
- * Provides the result of the PostCSS transformations.
- *
- * A Result instance is returned by `LazyResult#then`
- * or `Root#toResult` methods.
- *
- * ```js
- * postcss([autoprefixer]).process(css).then(result => {
- *  console.log(result.css)
- * })
- * ```
- *
- * ```js
- * const result2 = postcss.parse(css).toResult()
- * ```
- */
-declare class Result_<RootNode = Document | Root> {
-  /**
-   * A CSS string representing of `Result#root`.
-   *
-   * ```js
-   * postcss.parse('a{}').toResult().css //=> "a{}"
-   * ```
-   */
-  css: string
-
-  /**
-   * Last runned PostCSS plugin.
-   */
-  lastPlugin: Plugin | TransformCallback
-
-  /**
-   * An instance of `SourceMapGenerator` class from the `source-map` library,
-   * representing changes to the `Result#root` instance.
-   *
-   * ```js
-   * result.map.toJSON() //=> { version: 3, file: 'a.css', … }
-   * ```
-   *
-   * ```js
-   * if (result.map) {
-   *   fs.writeFileSync(result.opts.to + '.map', result.map.toString())
-   * }
-   * ```
-   */
-  map: SourceMap
-
-  /**
-   * Contains messages from plugins (e.g., warnings or custom messages).
-   * Each message should have type and plugin properties.
-   *
-   * ```js
-   * AtRule: {
-   *   import: (atRule, { result }) {
-   *     const importedFile = parseImport(atRule)
-   *     result.messages.push({
-   *       type: 'dependency',
-   *       plugin: 'postcss-import',
-   *       file: importedFile,
-   *       parent: result.opts.from
-   *     })
-   *   }
-   * }
-   * ```
-   */
-  messages: Result.Message[]
-
-  /**
-   * Options from the `Processor#process` or `Root#toResult` call
-   * that produced this Result instance.]
-   *
-   * ```js
-   * root.toResult(opts).opts === opts
-   * ```
-   */
-  opts: Result.ResultOptions
-
-  /**
-   * The Processor instance used for this transformation.
-   *
-   * ```js
-   * for (const plugin of result.processor.plugins) {
-   *   if (plugin.postcssPlugin === 'postcss-bad') {
-   *     throw 'postcss-good is incompatible with postcss-bad'
-   *   }
-   * })
-   * ```
-   */
-  processor: Processor
-
-  /**
-   * Root node after all transformations.
-   *
-   * ```js
-   * root.toResult().root === root
-   * ```
-   */
-  root: RootNode
-
-  /**
-   * An alias for the `Result#css` property.
-   * Use it with syntaxes that generate non-CSS output.
-   *
-   * ```js
-   * result.css === result.content
-   * ```
-   */
-  get content(): string
-
-  /**
-   * @param processor Processor used for this transformation.
-   * @param root      Root node after all transformations.
-   * @param opts      Options from the `Processor#process` or `Root#toResult`.
-   */
-  constructor(processor: Processor, root: RootNode, opts: Result.ResultOptions)
-
-  /**
-   * Returns for `Result#css` content.
-   *
-   * ```js
-   * result + '' === result.css
-   * ```
-   *
-   * @return String representing of `Result#root`.
-   */
-  toString(): string
-
-  /**
-   * Creates an instance of `Warning` and adds it to `Result#messages`.
-   *
-   * ```js
-   * if (decl.important) {
-   *   result.warn('Avoid !important', { node: decl, word: '!important' })
-   * }
-   * ```
-   *
-   * @param text Warning message.
-   * @param opts Warning options.
-   * @return Created warning.
-   */
-  warn(message: string, options?: WarningOptions): Warning
-
-  /**
-   * Returns warnings from plugins. Filters `Warning` instances
-   * from `Result#messages`.
-   *
-   * ```js
-   * result.warnings().forEach(warn => {
-   *   console.warn(warn.toString())
-   * })
-   * ```
-   *
-   * @return Warnings from plugins.
-   */
-  warnings(): Warning[]
-}
-
-declare class Result<RootNode = Document | Root> extends Result_<RootNode> {}
-
-export = Result
Index: de_modules/postcss/lib/result.js
===================================================================
--- node_modules/postcss/lib/result.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-'use strict'
-
-let Warning = require('./warning')
-
-class Result {
-  get content() {
-    return this.css
-  }
-
-  constructor(processor, root, opts) {
-    this.processor = processor
-    this.messages = []
-    this.root = root
-    this.opts = opts
-    this.css = ''
-    this.map = undefined
-  }
-
-  toString() {
-    return this.css
-  }
-
-  warn(text, opts = {}) {
-    if (!opts.plugin) {
-      if (this.lastPlugin && this.lastPlugin.postcssPlugin) {
-        opts.plugin = this.lastPlugin.postcssPlugin
-      }
-    }
-
-    let warning = new Warning(text, opts)
-    this.messages.push(warning)
-
-    return warning
-  }
-
-  warnings() {
-    return this.messages.filter(i => i.type === 'warning')
-  }
-}
-
-module.exports = Result
-Result.default = Result
Index: de_modules/postcss/lib/root.d.ts
===================================================================
--- node_modules/postcss/lib/root.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-import Container, { ContainerProps } from './container.js'
-import Document from './document.js'
-import { ProcessOptions } from './postcss.js'
-import Result from './result.js'
-
-declare namespace Root {
-  export interface RootRaws extends Record<string, any> {
-    /**
-     * The space symbols after the last child to the end of file.
-     */
-    after?: string
-
-    /**
-     * Non-CSS code after `Root`, when `Root` is inside `Document`.
-     *
-     * **Experimental:** some aspects of this node could change within minor
-     * or patch version releases.
-     */
-    codeAfter?: string
-
-    /**
-     * Non-CSS code before `Root`, when `Root` is inside `Document`.
-     *
-     * **Experimental:** some aspects of this node could change within minor
-     * or patch version releases.
-     */
-    codeBefore?: string
-
-    /**
-     * Is the last child has an (optional) semicolon.
-     */
-    semicolon?: boolean
-  }
-
-  export interface RootProps extends ContainerProps {
-    /**
-     * Information used to generate byte-to-byte equal node string
-     * as it was in the origin input.
-     * */
-    raws?: RootRaws
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Root_ as default }
-}
-
-/**
- * Represents a CSS file and contains all its parsed nodes.
- *
- * ```js
- * const root = postcss.parse('a{color:black} b{z-index:2}')
- * root.type         //=> 'root'
- * root.nodes.length //=> 2
- * ```
- */
-declare class Root_ extends Container {
-  nodes: NonNullable<Container['nodes']>
-  parent: Document | undefined
-  raws: Root.RootRaws
-  type: 'root'
-
-  constructor(defaults?: Root.RootProps)
-
-  assign(overrides: object | Root.RootProps): this
-  clone(overrides?: Partial<Root.RootProps>): this
-  cloneAfter(overrides?: Partial<Root.RootProps>): this
-  cloneBefore(overrides?: Partial<Root.RootProps>): this
-
-  /**
-   * Returns a `Result` instance representing the root’s CSS.
-   *
-   * ```js
-   * const root1 = postcss.parse(css1, { from: 'a.css' })
-   * const root2 = postcss.parse(css2, { from: 'b.css' })
-   * root1.append(root2)
-   * const result = root1.toResult({ to: 'all.css', map: true })
-   * ```
-   *
-   * @param options Options.
-   * @return Result with current root’s CSS.
-   */
-  toResult(options?: ProcessOptions): Result
-}
-
-declare class Root extends Root_ {}
-
-export = Root
Index: de_modules/postcss/lib/root.js
===================================================================
--- node_modules/postcss/lib/root.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-
-let LazyResult, Processor
-
-class Root extends Container {
-  constructor(defaults) {
-    super(defaults)
-    this.type = 'root'
-    if (!this.nodes) this.nodes = []
-  }
-
-  normalize(child, sample, type) {
-    let nodes = super.normalize(child)
-
-    if (sample) {
-      if (type === 'prepend') {
-        if (this.nodes.length > 1) {
-          sample.raws.before = this.nodes[1].raws.before
-        } else {
-          delete sample.raws.before
-        }
-      } else if (this.first !== sample) {
-        for (let node of nodes) {
-          node.raws.before = sample.raws.before
-        }
-      }
-    }
-
-    return nodes
-  }
-
-  removeChild(child, ignore) {
-    let index = this.index(child)
-
-    if (!ignore && index === 0 && this.nodes.length > 1) {
-      this.nodes[1].raws.before = this.nodes[index].raws.before
-    }
-
-    return super.removeChild(child)
-  }
-
-  toResult(opts = {}) {
-    let lazy = new LazyResult(new Processor(), this, opts)
-    return lazy.stringify()
-  }
-}
-
-Root.registerLazyResult = dependant => {
-  LazyResult = dependant
-}
-
-Root.registerProcessor = dependant => {
-  Processor = dependant
-}
-
-module.exports = Root
-Root.default = Root
-
-Container.registerRoot(Root)
Index: de_modules/postcss/lib/rule.d.ts
===================================================================
--- node_modules/postcss/lib/rule.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,126 +1,0 @@
-import Container, {
-  ContainerProps,
-  ContainerWithChildren
-} from './container.js'
-
-declare namespace Rule {
-  export interface RuleRaws extends Record<string, unknown> {
-    /**
-     * The space symbols after the last child of the node to the end of the node.
-     */
-    after?: string
-
-    /**
-     * The space symbols before the node. It also stores `*`
-     * and `_` symbols before the declaration (IE hack).
-     */
-    before?: string
-
-    /**
-     * The symbols between the selector and `{` for rules.
-     */
-    between?: string
-
-    /**
-     * Contains the text of the semicolon after this rule.
-     */
-    ownSemicolon?: string
-
-    /**
-     * The rule’s selector with comments.
-     */
-    selector?: {
-      raw: string
-      value: string
-    }
-
-    /**
-     * Contains `true` if the last child has an (optional) semicolon.
-     */
-    semicolon?: boolean
-  }
-
-  export type RuleProps = {
-    /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
-    raws?: RuleRaws
-  } & (
-      | {
-          /** Selector or selectors of the rule. */
-          selector: string
-          selectors?: never
-        }
-      | {
-          selector?: never
-          /** Selectors of the rule represented as an array of strings. */
-          selectors: readonly string[]
-        }
-    ) & ContainerProps
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Rule_ as default }
-}
-
-/**
- * Represents a CSS rule: a selector followed by a declaration block.
- *
- * ```js
- * Once (root, { Rule }) {
- *   let a = new Rule({ selector: 'a' })
- *   a.append(…)
- *   root.append(a)
- * }
- * ```
- *
- * ```js
- * const root = postcss.parse('a{}')
- * const rule = root.first
- * rule.type       //=> 'rule'
- * rule.toString() //=> 'a{}'
- * ```
- */
-declare class Rule_ extends Container {
-  nodes: NonNullable<Container['nodes']>
-  parent: ContainerWithChildren | undefined
-  raws: Rule.RuleRaws
-  type: 'rule'
-  /**
-   * The rule’s full selector represented as a string.
-   *
-   * ```js
-   * const root = postcss.parse('a, b { }')
-   * const rule = root.first
-   * rule.selector //=> 'a, b'
-   * ```
-   */
-  get selector(): string
-
-  set selector(value: string)
-  /**
-   * An array containing the rule’s individual selectors.
-   * Groups of selectors are split at commas.
-   *
-   * ```js
-   * const root = postcss.parse('a, b { }')
-   * const rule = root.first
-   *
-   * rule.selector  //=> 'a, b'
-   * rule.selectors //=> ['a', 'b']
-   *
-   * rule.selectors = ['a', 'strong']
-   * rule.selector //=> 'a, strong'
-   * ```
-   */
-  get selectors(): string[]
-
-  set selectors(values: string[])
-
-  constructor(defaults?: Rule.RuleProps)
-  assign(overrides: object | Rule.RuleProps): this
-  clone(overrides?: Partial<Rule.RuleProps>): this
-  cloneAfter(overrides?: Partial<Rule.RuleProps>): this
-  cloneBefore(overrides?: Partial<Rule.RuleProps>): this
-}
-
-declare class Rule extends Rule_ {}
-
-export = Rule
Index: de_modules/postcss/lib/rule.js
===================================================================
--- node_modules/postcss/lib/rule.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-'use strict'
-
-let Container = require('./container')
-let list = require('./list')
-
-class Rule extends Container {
-  get selectors() {
-    return list.comma(this.selector)
-  }
-
-  set selectors(values) {
-    let match = this.selector ? this.selector.match(/,\s*/) : null
-    let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')
-    this.selector = values.join(sep)
-  }
-
-  constructor(defaults) {
-    super(defaults)
-    this.type = 'rule'
-    if (!this.nodes) this.nodes = []
-  }
-}
-
-module.exports = Rule
-Rule.default = Rule
-
-Container.registerRule(Rule)
Index: de_modules/postcss/lib/stringifier.d.ts
===================================================================
--- node_modules/postcss/lib/stringifier.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import {
-  AnyNode,
-  AtRule,
-  Builder,
-  Comment,
-  Container,
-  Declaration,
-  Document,
-  Root,
-  Rule
-} from './postcss.js'
-
-declare namespace Stringifier {
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Stringifier_ as default }
-}
-
-declare class Stringifier_ {
-  builder: Builder
-  constructor(builder: Builder)
-  atrule(node: AtRule, semicolon?: boolean): void
-  beforeAfter(node: AnyNode, detect: 'after' | 'before'): string
-  block(node: AnyNode, start: string): void
-  body(node: Container): void
-  comment(node: Comment): void
-  decl(node: Declaration, semicolon?: boolean): void
-  document(node: Document): void
-  raw(node: AnyNode, own: null | string, detect?: string): boolean | string
-  rawBeforeClose(root: Root): string | undefined
-  rawBeforeComment(root: Root, node: Comment): string | undefined
-  rawBeforeDecl(root: Root, node: Declaration): string | undefined
-  rawBeforeOpen(root: Root): string | undefined
-  rawBeforeRule(root: Root): string | undefined
-  rawColon(root: Root): string | undefined
-  rawEmptyBody(root: Root): string | undefined
-  rawIndent(root: Root): string | undefined
-  rawSemicolon(root: Root): boolean | undefined
-  rawValue(node: AnyNode, prop: string): number | string
-  root(node: Root): void
-  rule(node: Rule): void
-  stringify(node: AnyNode, semicolon?: boolean): void
-}
-
-declare class Stringifier extends Stringifier_ {}
-
-export = Stringifier
Index: de_modules/postcss/lib/stringifier.js
===================================================================
--- node_modules/postcss/lib/stringifier.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,353 +1,0 @@
-'use strict'
-
-const DEFAULT_RAW = {
-  after: '\n',
-  beforeClose: '\n',
-  beforeComment: '\n',
-  beforeDecl: '\n',
-  beforeOpen: ' ',
-  beforeRule: '\n',
-  colon: ': ',
-  commentLeft: ' ',
-  commentRight: ' ',
-  emptyBody: '',
-  indent: '    ',
-  semicolon: false
-}
-
-function capitalize(str) {
-  return str[0].toUpperCase() + str.slice(1)
-}
-
-class Stringifier {
-  constructor(builder) {
-    this.builder = builder
-  }
-
-  atrule(node, semicolon) {
-    let name = '@' + node.name
-    let params = node.params ? this.rawValue(node, 'params') : ''
-
-    if (typeof node.raws.afterName !== 'undefined') {
-      name += node.raws.afterName
-    } else if (params) {
-      name += ' '
-    }
-
-    if (node.nodes) {
-      this.block(node, name + params)
-    } else {
-      let end = (node.raws.between || '') + (semicolon ? ';' : '')
-      this.builder(name + params + end, node)
-    }
-  }
-
-  beforeAfter(node, detect) {
-    let value
-    if (node.type === 'decl') {
-      value = this.raw(node, null, 'beforeDecl')
-    } else if (node.type === 'comment') {
-      value = this.raw(node, null, 'beforeComment')
-    } else if (detect === 'before') {
-      value = this.raw(node, null, 'beforeRule')
-    } else {
-      value = this.raw(node, null, 'beforeClose')
-    }
-
-    let buf = node.parent
-    let depth = 0
-    while (buf && buf.type !== 'root') {
-      depth += 1
-      buf = buf.parent
-    }
-
-    if (value.includes('\n')) {
-      let indent = this.raw(node, null, 'indent')
-      if (indent.length) {
-        for (let step = 0; step < depth; step++) value += indent
-      }
-    }
-
-    return value
-  }
-
-  block(node, start) {
-    let between = this.raw(node, 'between', 'beforeOpen')
-    this.builder(start + between + '{', node, 'start')
-
-    let after
-    if (node.nodes && node.nodes.length) {
-      this.body(node)
-      after = this.raw(node, 'after')
-    } else {
-      after = this.raw(node, 'after', 'emptyBody')
-    }
-
-    if (after) this.builder(after)
-    this.builder('}', node, 'end')
-  }
-
-  body(node) {
-    let last = node.nodes.length - 1
-    while (last > 0) {
-      if (node.nodes[last].type !== 'comment') break
-      last -= 1
-    }
-
-    let semicolon = this.raw(node, 'semicolon')
-    for (let i = 0; i < node.nodes.length; i++) {
-      let child = node.nodes[i]
-      let before = this.raw(child, 'before')
-      if (before) this.builder(before)
-      this.stringify(child, last !== i || semicolon)
-    }
-  }
-
-  comment(node) {
-    let left = this.raw(node, 'left', 'commentLeft')
-    let right = this.raw(node, 'right', 'commentRight')
-    this.builder('/*' + left + node.text + right + '*/', node)
-  }
-
-  decl(node, semicolon) {
-    let between = this.raw(node, 'between', 'colon')
-    let string = node.prop + between + this.rawValue(node, 'value')
-
-    if (node.important) {
-      string += node.raws.important || ' !important'
-    }
-
-    if (semicolon) string += ';'
-    this.builder(string, node)
-  }
-
-  document(node) {
-    this.body(node)
-  }
-
-  raw(node, own, detect) {
-    let value
-    if (!detect) detect = own
-
-    // Already had
-    if (own) {
-      value = node.raws[own]
-      if (typeof value !== 'undefined') return value
-    }
-
-    let parent = node.parent
-
-    if (detect === 'before') {
-      // Hack for first rule in CSS
-      if (!parent || (parent.type === 'root' && parent.first === node)) {
-        return ''
-      }
-
-      // `root` nodes in `document` should use only their own raws
-      if (parent && parent.type === 'document') {
-        return ''
-      }
-    }
-
-    // Floating child without parent
-    if (!parent) return DEFAULT_RAW[detect]
-
-    // Detect style by other nodes
-    let root = node.root()
-    if (!root.rawCache) root.rawCache = {}
-    if (typeof root.rawCache[detect] !== 'undefined') {
-      return root.rawCache[detect]
-    }
-
-    if (detect === 'before' || detect === 'after') {
-      return this.beforeAfter(node, detect)
-    } else {
-      let method = 'raw' + capitalize(detect)
-      if (this[method]) {
-        value = this[method](root, node)
-      } else {
-        root.walk(i => {
-          value = i.raws[own]
-          if (typeof value !== 'undefined') return false
-        })
-      }
-    }
-
-    if (typeof value === 'undefined') value = DEFAULT_RAW[detect]
-
-    root.rawCache[detect] = value
-    return value
-  }
-
-  rawBeforeClose(root) {
-    let value
-    root.walk(i => {
-      if (i.nodes && i.nodes.length > 0) {
-        if (typeof i.raws.after !== 'undefined') {
-          value = i.raws.after
-          if (value.includes('\n')) {
-            value = value.replace(/[^\n]+$/, '')
-          }
-          return false
-        }
-      }
-    })
-    if (value) value = value.replace(/\S/g, '')
-    return value
-  }
-
-  rawBeforeComment(root, node) {
-    let value
-    root.walkComments(i => {
-      if (typeof i.raws.before !== 'undefined') {
-        value = i.raws.before
-        if (value.includes('\n')) {
-          value = value.replace(/[^\n]+$/, '')
-        }
-        return false
-      }
-    })
-    if (typeof value === 'undefined') {
-      value = this.raw(node, null, 'beforeDecl')
-    } else if (value) {
-      value = value.replace(/\S/g, '')
-    }
-    return value
-  }
-
-  rawBeforeDecl(root, node) {
-    let value
-    root.walkDecls(i => {
-      if (typeof i.raws.before !== 'undefined') {
-        value = i.raws.before
-        if (value.includes('\n')) {
-          value = value.replace(/[^\n]+$/, '')
-        }
-        return false
-      }
-    })
-    if (typeof value === 'undefined') {
-      value = this.raw(node, null, 'beforeRule')
-    } else if (value) {
-      value = value.replace(/\S/g, '')
-    }
-    return value
-  }
-
-  rawBeforeOpen(root) {
-    let value
-    root.walk(i => {
-      if (i.type !== 'decl') {
-        value = i.raws.between
-        if (typeof value !== 'undefined') return false
-      }
-    })
-    return value
-  }
-
-  rawBeforeRule(root) {
-    let value
-    root.walk(i => {
-      if (i.nodes && (i.parent !== root || root.first !== i)) {
-        if (typeof i.raws.before !== 'undefined') {
-          value = i.raws.before
-          if (value.includes('\n')) {
-            value = value.replace(/[^\n]+$/, '')
-          }
-          return false
-        }
-      }
-    })
-    if (value) value = value.replace(/\S/g, '')
-    return value
-  }
-
-  rawColon(root) {
-    let value
-    root.walkDecls(i => {
-      if (typeof i.raws.between !== 'undefined') {
-        value = i.raws.between.replace(/[^\s:]/g, '')
-        return false
-      }
-    })
-    return value
-  }
-
-  rawEmptyBody(root) {
-    let value
-    root.walk(i => {
-      if (i.nodes && i.nodes.length === 0) {
-        value = i.raws.after
-        if (typeof value !== 'undefined') return false
-      }
-    })
-    return value
-  }
-
-  rawIndent(root) {
-    if (root.raws.indent) return root.raws.indent
-    let value
-    root.walk(i => {
-      let p = i.parent
-      if (p && p !== root && p.parent && p.parent === root) {
-        if (typeof i.raws.before !== 'undefined') {
-          let parts = i.raws.before.split('\n')
-          value = parts[parts.length - 1]
-          value = value.replace(/\S/g, '')
-          return false
-        }
-      }
-    })
-    return value
-  }
-
-  rawSemicolon(root) {
-    let value
-    root.walk(i => {
-      if (i.nodes && i.nodes.length && i.last.type === 'decl') {
-        value = i.raws.semicolon
-        if (typeof value !== 'undefined') return false
-      }
-    })
-    return value
-  }
-
-  rawValue(node, prop) {
-    let value = node[prop]
-    let raw = node.raws[prop]
-    if (raw && raw.value === value) {
-      return raw.raw
-    }
-
-    return value
-  }
-
-  root(node) {
-    this.body(node)
-    if (node.raws.after) this.builder(node.raws.after)
-  }
-
-  rule(node) {
-    this.block(node, this.rawValue(node, 'selector'))
-    if (node.raws.ownSemicolon) {
-      this.builder(node.raws.ownSemicolon, node, 'end')
-    }
-  }
-
-  stringify(node, semicolon) {
-    /* c8 ignore start */
-    if (!this[node.type]) {
-      throw new Error(
-        'Unknown AST node type ' +
-          node.type +
-          '. ' +
-          'Maybe you need to change PostCSS stringifier.'
-      )
-    }
-    /* c8 ignore stop */
-    this[node.type](node, semicolon)
-  }
-}
-
-module.exports = Stringifier
-Stringifier.default = Stringifier
Index: de_modules/postcss/lib/stringify.d.ts
===================================================================
--- node_modules/postcss/lib/stringify.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { Stringifier } from './postcss.js'
-
-interface Stringify extends Stringifier {
-  default: Stringify
-}
-
-declare const stringify: Stringify
-
-export = stringify
Index: de_modules/postcss/lib/stringify.js
===================================================================
--- node_modules/postcss/lib/stringify.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-'use strict'
-
-let Stringifier = require('./stringifier')
-
-function stringify(node, builder) {
-  let str = new Stringifier(builder)
-  str.stringify(node)
-}
-
-module.exports = stringify
-stringify.default = stringify
Index: de_modules/postcss/lib/symbols.js
===================================================================
--- node_modules/postcss/lib/symbols.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-'use strict'
-
-module.exports.isClean = Symbol('isClean')
-
-module.exports.my = Symbol('my')
Index: de_modules/postcss/lib/terminal-highlight.js
===================================================================
--- node_modules/postcss/lib/terminal-highlight.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-'use strict'
-
-let pico = require('picocolors')
-
-let tokenizer = require('./tokenize')
-
-let Input
-
-function registerInput(dependant) {
-  Input = dependant
-}
-
-const HIGHLIGHT_THEME = {
-  ';': pico.yellow,
-  ':': pico.yellow,
-  '(': pico.cyan,
-  ')': pico.cyan,
-  '[': pico.yellow,
-  ']': pico.yellow,
-  '{': pico.yellow,
-  '}': pico.yellow,
-  'at-word': pico.cyan,
-  'brackets': pico.cyan,
-  'call': pico.cyan,
-  'class': pico.yellow,
-  'comment': pico.gray,
-  'hash': pico.magenta,
-  'string': pico.green
-}
-
-function getTokenType([type, value], processor) {
-  if (type === 'word') {
-    if (value[0] === '.') {
-      return 'class'
-    }
-    if (value[0] === '#') {
-      return 'hash'
-    }
-  }
-
-  if (!processor.endOfFile()) {
-    let next = processor.nextToken()
-    processor.back(next)
-    if (next[0] === 'brackets' || next[0] === '(') return 'call'
-  }
-
-  return type
-}
-
-function terminalHighlight(css) {
-  let processor = tokenizer(new Input(css), { ignoreErrors: true })
-  let result = ''
-  while (!processor.endOfFile()) {
-    let token = processor.nextToken()
-    let color = HIGHLIGHT_THEME[getTokenType(token, processor)]
-    if (color) {
-      result += token[1]
-        .split(/\r?\n/)
-        .map(i => color(i))
-        .join('\n')
-    } else {
-      result += token[1]
-    }
-  }
-  return result
-}
-
-terminalHighlight.registerInput = registerInput
-
-module.exports = terminalHighlight
Index: de_modules/postcss/lib/tokenize.js
===================================================================
--- node_modules/postcss/lib/tokenize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,266 +1,0 @@
-'use strict'
-
-const SINGLE_QUOTE = "'".charCodeAt(0)
-const DOUBLE_QUOTE = '"'.charCodeAt(0)
-const BACKSLASH = '\\'.charCodeAt(0)
-const SLASH = '/'.charCodeAt(0)
-const NEWLINE = '\n'.charCodeAt(0)
-const SPACE = ' '.charCodeAt(0)
-const FEED = '\f'.charCodeAt(0)
-const TAB = '\t'.charCodeAt(0)
-const CR = '\r'.charCodeAt(0)
-const OPEN_SQUARE = '['.charCodeAt(0)
-const CLOSE_SQUARE = ']'.charCodeAt(0)
-const OPEN_PARENTHESES = '('.charCodeAt(0)
-const CLOSE_PARENTHESES = ')'.charCodeAt(0)
-const OPEN_CURLY = '{'.charCodeAt(0)
-const CLOSE_CURLY = '}'.charCodeAt(0)
-const SEMICOLON = ';'.charCodeAt(0)
-const ASTERISK = '*'.charCodeAt(0)
-const COLON = ':'.charCodeAt(0)
-const AT = '@'.charCodeAt(0)
-
-const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g
-const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g
-const RE_BAD_BRACKET = /.[\r\n"'(/\\]/
-const RE_HEX_ESCAPE = /[\da-f]/i
-
-module.exports = function tokenizer(input, options = {}) {
-  let css = input.css.valueOf()
-  let ignore = options.ignoreErrors
-
-  let code, content, escape, next, quote
-  let currentToken, escaped, escapePos, n, prev
-
-  let length = css.length
-  let pos = 0
-  let buffer = []
-  let returned = []
-
-  function position() {
-    return pos
-  }
-
-  function unclosed(what) {
-    throw input.error('Unclosed ' + what, pos)
-  }
-
-  function endOfFile() {
-    return returned.length === 0 && pos >= length
-  }
-
-  function nextToken(opts) {
-    if (returned.length) return returned.pop()
-    if (pos >= length) return
-
-    let ignoreUnclosed = opts ? opts.ignoreUnclosed : false
-
-    code = css.charCodeAt(pos)
-
-    switch (code) {
-      case NEWLINE:
-      case SPACE:
-      case TAB:
-      case CR:
-      case FEED: {
-        next = pos
-        do {
-          next += 1
-          code = css.charCodeAt(next)
-        } while (
-          code === SPACE ||
-          code === NEWLINE ||
-          code === TAB ||
-          code === CR ||
-          code === FEED
-        )
-
-        currentToken = ['space', css.slice(pos, next)]
-        pos = next - 1
-        break
-      }
-
-      case OPEN_SQUARE:
-      case CLOSE_SQUARE:
-      case OPEN_CURLY:
-      case CLOSE_CURLY:
-      case COLON:
-      case SEMICOLON:
-      case CLOSE_PARENTHESES: {
-        let controlChar = String.fromCharCode(code)
-        currentToken = [controlChar, controlChar, pos]
-        break
-      }
-
-      case OPEN_PARENTHESES: {
-        prev = buffer.length ? buffer.pop()[1] : ''
-        n = css.charCodeAt(pos + 1)
-        if (
-          prev === 'url' &&
-          n !== SINGLE_QUOTE &&
-          n !== DOUBLE_QUOTE &&
-          n !== SPACE &&
-          n !== NEWLINE &&
-          n !== TAB &&
-          n !== FEED &&
-          n !== CR
-        ) {
-          next = pos
-          do {
-            escaped = false
-            next = css.indexOf(')', next + 1)
-            if (next === -1) {
-              if (ignore || ignoreUnclosed) {
-                next = pos
-                break
-              } else {
-                unclosed('bracket')
-              }
-            }
-            escapePos = next
-            while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
-              escapePos -= 1
-              escaped = !escaped
-            }
-          } while (escaped)
-
-          currentToken = ['brackets', css.slice(pos, next + 1), pos, next]
-
-          pos = next
-        } else {
-          next = css.indexOf(')', pos + 1)
-          content = css.slice(pos, next + 1)
-
-          if (next === -1 || RE_BAD_BRACKET.test(content)) {
-            currentToken = ['(', '(', pos]
-          } else {
-            currentToken = ['brackets', content, pos, next]
-            pos = next
-          }
-        }
-
-        break
-      }
-
-      case SINGLE_QUOTE:
-      case DOUBLE_QUOTE: {
-        quote = code === SINGLE_QUOTE ? "'" : '"'
-        next = pos
-        do {
-          escaped = false
-          next = css.indexOf(quote, next + 1)
-          if (next === -1) {
-            if (ignore || ignoreUnclosed) {
-              next = pos + 1
-              break
-            } else {
-              unclosed('string')
-            }
-          }
-          escapePos = next
-          while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
-            escapePos -= 1
-            escaped = !escaped
-          }
-        } while (escaped)
-
-        currentToken = ['string', css.slice(pos, next + 1), pos, next]
-        pos = next
-        break
-      }
-
-      case AT: {
-        RE_AT_END.lastIndex = pos + 1
-        RE_AT_END.test(css)
-        if (RE_AT_END.lastIndex === 0) {
-          next = css.length - 1
-        } else {
-          next = RE_AT_END.lastIndex - 2
-        }
-
-        currentToken = ['at-word', css.slice(pos, next + 1), pos, next]
-
-        pos = next
-        break
-      }
-
-      case BACKSLASH: {
-        next = pos
-        escape = true
-        while (css.charCodeAt(next + 1) === BACKSLASH) {
-          next += 1
-          escape = !escape
-        }
-        code = css.charCodeAt(next + 1)
-        if (
-          escape &&
-          code !== SLASH &&
-          code !== SPACE &&
-          code !== NEWLINE &&
-          code !== TAB &&
-          code !== CR &&
-          code !== FEED
-        ) {
-          next += 1
-          if (RE_HEX_ESCAPE.test(css.charAt(next))) {
-            while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {
-              next += 1
-            }
-            if (css.charCodeAt(next + 1) === SPACE) {
-              next += 1
-            }
-          }
-        }
-
-        currentToken = ['word', css.slice(pos, next + 1), pos, next]
-
-        pos = next
-        break
-      }
-
-      default: {
-        if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {
-          next = css.indexOf('*/', pos + 2) + 1
-          if (next === 0) {
-            if (ignore || ignoreUnclosed) {
-              next = css.length
-            } else {
-              unclosed('comment')
-            }
-          }
-
-          currentToken = ['comment', css.slice(pos, next + 1), pos, next]
-          pos = next
-        } else {
-          RE_WORD_END.lastIndex = pos + 1
-          RE_WORD_END.test(css)
-          if (RE_WORD_END.lastIndex === 0) {
-            next = css.length - 1
-          } else {
-            next = RE_WORD_END.lastIndex - 2
-          }
-
-          currentToken = ['word', css.slice(pos, next + 1), pos, next]
-          buffer.push(currentToken)
-          pos = next
-        }
-
-        break
-      }
-    }
-
-    pos++
-    return currentToken
-  }
-
-  function back(token) {
-    returned.push(token)
-  }
-
-  return {
-    back,
-    endOfFile,
-    nextToken,
-    position
-  }
-}
Index: de_modules/postcss/lib/warn-once.js
===================================================================
--- node_modules/postcss/lib/warn-once.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/* eslint-disable no-console */
-'use strict'
-
-let printed = {}
-
-module.exports = function warnOnce(message) {
-  if (printed[message]) return
-  printed[message] = true
-
-  if (typeof console !== 'undefined' && console.warn) {
-    console.warn(message)
-  }
-}
Index: de_modules/postcss/lib/warning.d.ts
===================================================================
--- node_modules/postcss/lib/warning.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,147 +1,0 @@
-import { RangePosition } from './css-syntax-error.js'
-import Node from './node.js'
-
-declare namespace Warning {
-  export interface WarningOptions {
-    /**
-     * End position, exclusive, in CSS node string that caused the warning.
-     */
-    end?: RangePosition
-
-    /**
-     * End index, exclusive, in CSS node string that caused the warning.
-     */
-    endIndex?: number
-
-    /**
-     * Start index, inclusive, in CSS node string that caused the warning.
-     */
-    index?: number
-
-    /**
-     * CSS node that caused the warning.
-     */
-    node?: Node
-
-    /**
-     * Name of the plugin that created this warning. `Result#warn` fills
-     * this property automatically.
-     */
-    plugin?: string
-
-    /**
-     * Start position, inclusive, in CSS node string that caused the warning.
-     */
-    start?: RangePosition
-
-    /**
-     * Word in CSS source that caused the warning.
-     */
-    word?: string
-  }
-
-  // eslint-disable-next-line @typescript-eslint/no-use-before-define
-  export { Warning_ as default }
-}
-
-/**
- * Represents a plugin’s warning. It can be created using `Node#warn`.
- *
- * ```js
- * if (decl.important) {
- *   decl.warn(result, 'Avoid !important', { word: '!important' })
- * }
- * ```
- */
-declare class Warning_ {
-  /**
-   * Column for inclusive start position in the input file with this warning’s source.
-   *
-   * ```js
-   * warning.column //=> 6
-   * ```
-   */
-  column: number
-
-  /**
-   * Column for exclusive end position in the input file with this warning’s source.
-   *
-   * ```js
-   * warning.endColumn //=> 4
-   * ```
-   */
-  endColumn?: number
-
-  /**
-   * Line for exclusive end position in the input file with this warning’s source.
-   *
-   * ```js
-   * warning.endLine //=> 6
-   * ```
-   */
-  endLine?: number
-
-  /**
-   * Line for inclusive start position in the input file with this warning’s source.
-   *
-   * ```js
-   * warning.line //=> 5
-   * ```
-   */
-  line: number
-
-  /**
-   * Contains the CSS node that caused the warning.
-   *
-   * ```js
-   * warning.node.toString() //=> 'color: white !important'
-   * ```
-   */
-  node: Node
-
-  /**
-   * The name of the plugin that created this warning.
-   * When you call `Node#warn` it will fill this property automatically.
-   *
-   * ```js
-   * warning.plugin //=> 'postcss-important'
-   * ```
-   */
-  plugin: string
-
-  /**
-   * The warning message.
-   *
-   * ```js
-   * warning.text //=> 'Try to avoid !important'
-   * ```
-   */
-  text: string
-
-  /**
-   * Type to filter warnings from `Result#messages`.
-   * Always equal to `"warning"`.
-   */
-  type: 'warning'
-
-  /**
-   * @param text Warning message.
-   * @param opts Warning options.
-   */
-  constructor(text: string, opts?: Warning.WarningOptions)
-
-  /**
-   * Returns a warning position and message.
-   *
-   * ```js
-   * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'
-   * ```
-   *
-   * @return Warning position and message.
-   */
-  toString(): string
-}
-
-declare class Warning extends Warning_ {}
-
-export = Warning
Index: de_modules/postcss/lib/warning.js
===================================================================
--- node_modules/postcss/lib/warning.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-'use strict'
-
-class Warning {
-  constructor(text, opts = {}) {
-    this.type = 'warning'
-    this.text = text
-
-    if (opts.node && opts.node.source) {
-      let range = opts.node.rangeBy(opts)
-      this.line = range.start.line
-      this.column = range.start.column
-      this.endLine = range.end.line
-      this.endColumn = range.end.column
-    }
-
-    for (let opt in opts) this[opt] = opts[opt]
-  }
-
-  toString() {
-    if (this.node) {
-      return this.node.error(this.text, {
-        index: this.index,
-        plugin: this.plugin,
-        word: this.word
-      }).message
-    }
-
-    if (this.plugin) {
-      return this.plugin + ': ' + this.text
-    }
-
-    return this.text
-  }
-}
-
-module.exports = Warning
-Warning.default = Warning
Index: de_modules/postcss/package.json
===================================================================
--- node_modules/postcss/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-{
-  "name": "postcss",
-  "version": "8.5.6",
-  "description": "Tool for transforming styles with JS plugins",
-  "engines": {
-    "node": "^10 || ^12 || >=14"
-  },
-  "exports": {
-    ".": {
-      "import": "./lib/postcss.mjs",
-      "require": "./lib/postcss.js"
-    },
-    "./lib/at-rule": "./lib/at-rule.js",
-    "./lib/comment": "./lib/comment.js",
-    "./lib/container": "./lib/container.js",
-    "./lib/css-syntax-error": "./lib/css-syntax-error.js",
-    "./lib/declaration": "./lib/declaration.js",
-    "./lib/fromJSON": "./lib/fromJSON.js",
-    "./lib/input": "./lib/input.js",
-    "./lib/lazy-result": "./lib/lazy-result.js",
-    "./lib/no-work-result": "./lib/no-work-result.js",
-    "./lib/list": "./lib/list.js",
-    "./lib/map-generator": "./lib/map-generator.js",
-    "./lib/node": "./lib/node.js",
-    "./lib/parse": "./lib/parse.js",
-    "./lib/parser": "./lib/parser.js",
-    "./lib/postcss": "./lib/postcss.js",
-    "./lib/previous-map": "./lib/previous-map.js",
-    "./lib/processor": "./lib/processor.js",
-    "./lib/result": "./lib/result.js",
-    "./lib/root": "./lib/root.js",
-    "./lib/rule": "./lib/rule.js",
-    "./lib/stringifier": "./lib/stringifier.js",
-    "./lib/stringify": "./lib/stringify.js",
-    "./lib/symbols": "./lib/symbols.js",
-    "./lib/terminal-highlight": "./lib/terminal-highlight.js",
-    "./lib/tokenize": "./lib/tokenize.js",
-    "./lib/warn-once": "./lib/warn-once.js",
-    "./lib/warning": "./lib/warning.js",
-    "./package.json": "./package.json"
-  },
-  "main": "./lib/postcss.js",
-  "types": "./lib/postcss.d.ts",
-  "keywords": [
-    "css",
-    "postcss",
-    "rework",
-    "preprocessor",
-    "parser",
-    "source map",
-    "transform",
-    "manipulation",
-    "transpiler"
-  ],
-  "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"
-    }
-  ],
-  "author": "Andrey Sitnik <andrey@sitnik.ru>",
-  "license": "MIT",
-  "homepage": "https://postcss.org/",
-  "repository": "postcss/postcss",
-  "bugs": {
-    "url": "https://github.com/postcss/postcss/issues"
-  },
-  "dependencies": {
-    "nanoid": "^3.3.11",
-    "picocolors": "^1.1.1",
-    "source-map-js": "^1.2.1"
-  },
-  "browser": {
-    "./lib/terminal-highlight": false,
-    "source-map-js": false,
-    "path": false,
-    "url": false,
-    "fs": false
-  }
-}
Index: de_modules/react-dom/LICENSE
===================================================================
--- node_modules/react-dom/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Meta Platforms, Inc. and affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/react-dom/README.md
===================================================================
--- node_modules/react-dom/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-# `react-dom`
-
-This package serves as the entry point to the DOM and server renderers for React. It is intended to be paired with the generic React package, which is shipped as `react` to npm.
-
-## Installation
-
-```sh
-npm install react react-dom
-```
-
-## Usage
-
-### In the browser
-
-```js
-import { createRoot } from 'react-dom/client';
-
-function App() {
-  return <div>Hello World</div>;
-}
-
-const root = createRoot(document.getElementById('root'));
-root.render(<App />);
-```
-
-### On the server
-
-```js
-import { renderToPipeableStream } from 'react-dom/server';
-
-function App() {
-  return <div>Hello World</div>;
-}
-
-function handleRequest(res) {
-  // ... in your server handler ...
-  const stream = renderToPipeableStream(<App />, {
-    onShellReady() {
-      res.statusCode = 200;
-      res.setHeader('Content-type', 'text/html');
-      stream.pipe(res);
-    },
-    // ...
-  });
-}
-```
-
-## API
-
-### `react-dom`
-
-See https://react.dev/reference/react-dom
-
-### `react-dom/client`
-
-See https://react.dev/reference/react-dom/client
-
-### `react-dom/server`
-
-See https://react.dev/reference/react-dom/server
Index: de_modules/react-dom/cjs/react-dom-client.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-client.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28121 +1,0 @@
-/**
- * @license React
- * react-dom-client.development.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.
- */
-
-/*
- Modernizr 3.0.0pre (Custom Build) | MIT
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function findHook(fiber, id) {
-      for (fiber = fiber.memoizedState; null !== fiber && 0 < id; )
-        (fiber = fiber.next), id--;
-      return fiber;
-    }
-    function copyWithSetImpl(obj, path, index, value) {
-      if (index >= path.length) return value;
-      var key = path[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);
-      return updated;
-    }
-    function copyWithRename(obj, oldPath, newPath) {
-      if (oldPath.length !== newPath.length)
-        console.warn("copyWithRename() expects paths of the same length");
-      else {
-        for (var i = 0; i < newPath.length - 1; i++)
-          if (oldPath[i] !== newPath[i]) {
-            console.warn(
-              "copyWithRename() expects paths to be the same except for the deepest key"
-            );
-            return;
-          }
-        return copyWithRenameImpl(obj, oldPath, newPath, 0);
-      }
-    }
-    function copyWithRenameImpl(obj, oldPath, newPath, index) {
-      var oldKey = oldPath[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      index + 1 === oldPath.length
-        ? ((updated[newPath[index]] = updated[oldKey]),
-          isArrayImpl(updated)
-            ? updated.splice(oldKey, 1)
-            : delete updated[oldKey])
-        : (updated[oldKey] = copyWithRenameImpl(
-            obj[oldKey],
-            oldPath,
-            newPath,
-            index + 1
-          ));
-      return updated;
-    }
-    function copyWithDeleteImpl(obj, path, index) {
-      var key = path[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      if (index + 1 === path.length)
-        return (
-          isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key],
-          updated
-        );
-      updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);
-      return updated;
-    }
-    function shouldSuspendImpl() {
-      return !1;
-    }
-    function shouldErrorImpl() {
-      return null;
-    }
-    function warnInvalidHookAccess() {
-      console.error(
-        "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-      );
-    }
-    function warnInvalidContextAccess() {
-      console.error(
-        "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-      );
-    }
-    function noop() {}
-    function warnForMissingKey() {}
-    function setToSortedString(set) {
-      var array = [];
-      set.forEach(function (value) {
-        array.push(value);
-      });
-      return array.sort().join(", ");
-    }
-    function createFiber(tag, pendingProps, key, mode) {
-      return new FiberNode(tag, pendingProps, key, mode);
-    }
-    function scheduleRoot(root, element) {
-      root.context === emptyContextObject &&
-        (updateContainerImpl(root.current, 2, element, root, null, null),
-        flushSyncWork$1());
-    }
-    function scheduleRefresh(root, update) {
-      if (null !== resolveFamily) {
-        var staleFamilies = update.staleFamilies;
-        update = update.updatedFamilies;
-        flushPendingEffects();
-        scheduleFibersWithFamiliesRecursively(
-          root.current,
-          update,
-          staleFamilies
-        );
-        flushSyncWork$1();
-      }
-    }
-    function setRefreshHandler(handler) {
-      resolveFamily = handler;
-    }
-    function isValidContainer(node) {
-      return !(
-        !node ||
-        (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)
-      );
-    }
-    function getNearestMountedFiber(fiber) {
-      var node = fiber,
-        nearestMounted = fiber;
-      if (fiber.alternate) for (; node.return; ) node = node.return;
-      else {
-        fiber = node;
-        do
-          (node = fiber),
-            0 !== (node.flags & 4098) && (nearestMounted = node.return),
-            (fiber = node.return);
-        while (fiber);
-      }
-      return 3 === node.tag ? nearestMounted : null;
-    }
-    function getSuspenseInstanceFromFiber(fiber) {
-      if (13 === fiber.tag) {
-        var suspenseState = fiber.memoizedState;
-        null === suspenseState &&
-          ((fiber = fiber.alternate),
-          null !== fiber && (suspenseState = fiber.memoizedState));
-        if (null !== suspenseState) return suspenseState.dehydrated;
-      }
-      return null;
-    }
-    function getActivityInstanceFromFiber(fiber) {
-      if (31 === fiber.tag) {
-        var activityState = fiber.memoizedState;
-        null === activityState &&
-          ((fiber = fiber.alternate),
-          null !== fiber && (activityState = fiber.memoizedState));
-        if (null !== activityState) return activityState.dehydrated;
-      }
-      return null;
-    }
-    function assertIsMounted(fiber) {
-      if (getNearestMountedFiber(fiber) !== fiber)
-        throw Error("Unable to find node on an unmounted component.");
-    }
-    function findCurrentFiberUsingSlowPath(fiber) {
-      var alternate = fiber.alternate;
-      if (!alternate) {
-        alternate = getNearestMountedFiber(fiber);
-        if (null === alternate)
-          throw Error("Unable to find node on an unmounted component.");
-        return alternate !== fiber ? null : fiber;
-      }
-      for (var a = fiber, b = alternate; ; ) {
-        var parentA = a.return;
-        if (null === parentA) break;
-        var parentB = parentA.alternate;
-        if (null === parentB) {
-          b = parentA.return;
-          if (null !== b) {
-            a = b;
-            continue;
-          }
-          break;
-        }
-        if (parentA.child === parentB.child) {
-          for (parentB = parentA.child; parentB; ) {
-            if (parentB === a) return assertIsMounted(parentA), fiber;
-            if (parentB === b) return assertIsMounted(parentA), alternate;
-            parentB = parentB.sibling;
-          }
-          throw Error("Unable to find node on an unmounted component.");
-        }
-        if (a.return !== b.return) (a = parentA), (b = parentB);
-        else {
-          for (var didFindChild = !1, _child = parentA.child; _child; ) {
-            if (_child === a) {
-              didFindChild = !0;
-              a = parentA;
-              b = parentB;
-              break;
-            }
-            if (_child === b) {
-              didFindChild = !0;
-              b = parentA;
-              a = parentB;
-              break;
-            }
-            _child = _child.sibling;
-          }
-          if (!didFindChild) {
-            for (_child = parentB.child; _child; ) {
-              if (_child === a) {
-                didFindChild = !0;
-                a = parentB;
-                b = parentA;
-                break;
-              }
-              if (_child === b) {
-                didFindChild = !0;
-                b = parentB;
-                a = parentA;
-                break;
-              }
-              _child = _child.sibling;
-            }
-            if (!didFindChild)
-              throw Error(
-                "Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."
-              );
-          }
-        }
-        if (a.alternate !== b)
-          throw Error(
-            "Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."
-          );
-      }
-      if (3 !== a.tag)
-        throw Error("Unable to find node on an unmounted component.");
-      return a.stateNode.current === a ? fiber : alternate;
-    }
-    function findCurrentHostFiberImpl(node) {
-      var tag = node.tag;
-      if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;
-      for (node = node.child; null !== node; ) {
-        tag = findCurrentHostFiberImpl(node);
-        if (null !== tag) return tag;
-        node = node.sibling;
-      }
-      return null;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function getComponentNameFromOwner(owner) {
-      return "number" === typeof owner.tag
-        ? getComponentNameFromFiber(owner)
-        : "string" === typeof owner.name
-          ? owner.name
-          : null;
-    }
-    function getComponentNameFromFiber(fiber) {
-      var type = fiber.type;
-      switch (fiber.tag) {
-        case 31:
-          return "Activity";
-        case 24:
-          return "Cache";
-        case 9:
-          return (type._context.displayName || "Context") + ".Consumer";
-        case 10:
-          return type.displayName || "Context";
-        case 18:
-          return "DehydratedFragment";
-        case 11:
-          return (
-            (fiber = type.render),
-            (fiber = fiber.displayName || fiber.name || ""),
-            type.displayName ||
-              ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef")
-          );
-        case 7:
-          return "Fragment";
-        case 26:
-        case 27:
-        case 5:
-          return type;
-        case 4:
-          return "Portal";
-        case 3:
-          return "Root";
-        case 6:
-          return "Text";
-        case 16:
-          return getComponentNameFromType(type);
-        case 8:
-          return type === REACT_STRICT_MODE_TYPE ? "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 14:
-        case 15:
-          if ("function" === typeof type)
-            return type.displayName || type.name || null;
-          if ("string" === typeof type) return type;
-          break;
-        case 29:
-          type = fiber._debugInfo;
-          if (null != type)
-            for (var i = type.length - 1; 0 <= i; i--)
-              if ("string" === typeof type[i].name) return type[i].name;
-          if (null !== fiber.return)
-            return getComponentNameFromFiber(fiber.return);
-      }
-      return null;
-    }
-    function createCursor(defaultValue) {
-      return { current: defaultValue };
-    }
-    function pop(cursor, fiber) {
-      0 > index$jscomp$0
-        ? console.error("Unexpected pop.")
-        : (fiber !== fiberStack[index$jscomp$0] &&
-            console.error("Unexpected Fiber popped."),
-          (cursor.current = valueStack[index$jscomp$0]),
-          (valueStack[index$jscomp$0] = null),
-          (fiberStack[index$jscomp$0] = null),
-          index$jscomp$0--);
-    }
-    function push(cursor, value, fiber) {
-      index$jscomp$0++;
-      valueStack[index$jscomp$0] = cursor.current;
-      fiberStack[index$jscomp$0] = fiber;
-      cursor.current = value;
-    }
-    function requiredContext(c) {
-      null === c &&
-        console.error(
-          "Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."
-        );
-      return c;
-    }
-    function pushHostContainer(fiber, nextRootInstance) {
-      push(rootInstanceStackCursor, nextRootInstance, fiber);
-      push(contextFiberStackCursor, fiber, fiber);
-      push(contextStackCursor, null, fiber);
-      var nextRootContext = nextRootInstance.nodeType;
-      switch (nextRootContext) {
-        case 9:
-        case 11:
-          nextRootContext = 9 === nextRootContext ? "#document" : "#fragment";
-          nextRootInstance = (nextRootInstance =
-            nextRootInstance.documentElement)
-            ? (nextRootInstance = nextRootInstance.namespaceURI)
-              ? getOwnHostContext(nextRootInstance)
-              : HostContextNamespaceNone
-            : HostContextNamespaceNone;
-          break;
-        default:
-          if (
-            ((nextRootContext = nextRootInstance.tagName),
-            (nextRootInstance = nextRootInstance.namespaceURI))
-          )
-            (nextRootInstance = getOwnHostContext(nextRootInstance)),
-              (nextRootInstance = getChildHostContextProd(
-                nextRootInstance,
-                nextRootContext
-              ));
-          else
-            switch (nextRootContext) {
-              case "svg":
-                nextRootInstance = HostContextNamespaceSvg;
-                break;
-              case "math":
-                nextRootInstance = HostContextNamespaceMath;
-                break;
-              default:
-                nextRootInstance = HostContextNamespaceNone;
-            }
-      }
-      nextRootContext = nextRootContext.toLowerCase();
-      nextRootContext = updatedAncestorInfoDev(null, nextRootContext);
-      nextRootContext = {
-        context: nextRootInstance,
-        ancestorInfo: nextRootContext
-      };
-      pop(contextStackCursor, fiber);
-      push(contextStackCursor, nextRootContext, fiber);
-    }
-    function popHostContainer(fiber) {
-      pop(contextStackCursor, fiber);
-      pop(contextFiberStackCursor, fiber);
-      pop(rootInstanceStackCursor, fiber);
-    }
-    function getHostContext() {
-      return requiredContext(contextStackCursor.current);
-    }
-    function pushHostContext(fiber) {
-      null !== fiber.memoizedState &&
-        push(hostTransitionProviderCursor, fiber, fiber);
-      var context = requiredContext(contextStackCursor.current);
-      var type = fiber.type;
-      var nextContext = getChildHostContextProd(context.context, type);
-      type = updatedAncestorInfoDev(context.ancestorInfo, type);
-      nextContext = { context: nextContext, ancestorInfo: type };
-      context !== nextContext &&
-        (push(contextFiberStackCursor, fiber, fiber),
-        push(contextStackCursor, nextContext, fiber));
-    }
-    function popHostContext(fiber) {
-      contextFiberStackCursor.current === fiber &&
-        (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber));
-      hostTransitionProviderCursor.current === fiber &&
-        (pop(hostTransitionProviderCursor, fiber),
-        (HostTransitionContext._currentValue = NotPendingTransition));
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeFiber(fiber, childFiber) {
-      switch (fiber.tag) {
-        case 26:
-        case 27:
-        case 5:
-          return describeBuiltInComponentFrame(fiber.type);
-        case 16:
-          return describeBuiltInComponentFrame("Lazy");
-        case 13:
-          return fiber.child !== childFiber && null !== childFiber
-            ? describeBuiltInComponentFrame("Suspense Fallback")
-            : describeBuiltInComponentFrame("Suspense");
-        case 19:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case 0:
-        case 15:
-          return describeNativeComponentFrame(fiber.type, !1);
-        case 11:
-          return describeNativeComponentFrame(fiber.type.render, !1);
-        case 1:
-          return describeNativeComponentFrame(fiber.type, !0);
-        case 31:
-          return describeBuiltInComponentFrame("Activity");
-        default:
-          return "";
-      }
-    }
-    function getStackByFiberInDevAndProd(workInProgress) {
-      try {
-        var info = "",
-          previous = null;
-        do {
-          info += describeFiber(workInProgress, previous);
-          var debugInfo = workInProgress._debugInfo;
-          if (debugInfo)
-            for (var i = debugInfo.length - 1; 0 <= i; i--) {
-              var entry = debugInfo[i];
-              if ("string" === typeof entry.name) {
-                var JSCompiler_temp_const = info;
-                a: {
-                  var name = entry.name,
-                    env = entry.env,
-                    location = entry.debugLocation;
-                  if (null != location) {
-                    var childStack = formatOwnerStack(location),
-                      idx = childStack.lastIndexOf("\n"),
-                      lastLine =
-                        -1 === idx ? childStack : childStack.slice(idx + 1);
-                    if (-1 !== lastLine.indexOf(name)) {
-                      var JSCompiler_inline_result = "\n" + lastLine;
-                      break a;
-                    }
-                  }
-                  JSCompiler_inline_result = describeBuiltInComponentFrame(
-                    name + (env ? " [" + env + "]" : "")
-                  );
-                }
-                info = JSCompiler_temp_const + JSCompiler_inline_result;
-              }
-            }
-          previous = workInProgress;
-          workInProgress = workInProgress.return;
-        } while (workInProgress);
-        return info;
-      } catch (x) {
-        return "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-    }
-    function describeFunctionComponentFrameWithoutLineNumber(fn) {
-      return (fn = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(fn)
-        : "";
-    }
-    function getCurrentFiberOwnerNameInDevOrNull() {
-      if (null === current) return null;
-      var owner = current._debugOwner;
-      return null != owner ? getComponentNameFromOwner(owner) : null;
-    }
-    function getCurrentFiberStackInDev() {
-      if (null === current) return "";
-      var workInProgress = current;
-      try {
-        var info = "";
-        6 === workInProgress.tag && (workInProgress = workInProgress.return);
-        switch (workInProgress.tag) {
-          case 26:
-          case 27:
-          case 5:
-            info += describeBuiltInComponentFrame(workInProgress.type);
-            break;
-          case 13:
-            info += describeBuiltInComponentFrame("Suspense");
-            break;
-          case 19:
-            info += describeBuiltInComponentFrame("SuspenseList");
-            break;
-          case 31:
-            info += describeBuiltInComponentFrame("Activity");
-            break;
-          case 30:
-          case 0:
-          case 15:
-          case 1:
-            workInProgress._debugOwner ||
-              "" !== info ||
-              (info += describeFunctionComponentFrameWithoutLineNumber(
-                workInProgress.type
-              ));
-            break;
-          case 11:
-            workInProgress._debugOwner ||
-              "" !== info ||
-              (info += describeFunctionComponentFrameWithoutLineNumber(
-                workInProgress.type.render
-              ));
-        }
-        for (; workInProgress; )
-          if ("number" === typeof workInProgress.tag) {
-            var fiber = workInProgress;
-            workInProgress = fiber._debugOwner;
-            var debugStack = fiber._debugStack;
-            if (workInProgress && debugStack) {
-              var formattedStack = formatOwnerStack(debugStack);
-              "" !== formattedStack && (info += "\n" + formattedStack);
-            }
-          } else if (null != workInProgress.debugStack) {
-            var ownerStack = workInProgress.debugStack;
-            (workInProgress = workInProgress.owner) &&
-              ownerStack &&
-              (info += "\n" + formatOwnerStack(ownerStack));
-          } else break;
-        var JSCompiler_inline_result = info;
-      } catch (x) {
-        JSCompiler_inline_result =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result;
-    }
-    function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) {
-      var previousFiber = current;
-      setCurrentFiber(fiber);
-      try {
-        return null !== fiber && fiber._debugTask
-          ? fiber._debugTask.run(
-              callback.bind(null, arg0, arg1, arg2, arg3, arg4)
-            )
-          : callback(arg0, arg1, arg2, arg3, arg4);
-      } finally {
-        setCurrentFiber(previousFiber);
-      }
-      throw Error(
-        "runWithFiberInDEV should never be called in production. This is a bug in React."
-      );
-    }
-    function setCurrentFiber(fiber) {
-      ReactSharedInternals.getCurrentStack =
-        null === fiber ? null : getCurrentFiberStackInDev;
-      isRendering = !1;
-      current = fiber;
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkFormFieldValueStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function injectInternals(internals) {
-      if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;
-      var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;
-      if (hook.isDisabled) return !0;
-      if (!hook.supportsFiber)
-        return (
-          console.error(
-            "The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"
-          ),
-          !0
-        );
-      try {
-        (rendererID = hook.inject(internals)), (injectedHook = hook);
-      } catch (err) {
-        console.error("React instrumentation encountered an error: %o.", err);
-      }
-      return hook.checkDCE ? !0 : !1;
-    }
-    function setIsStrictModeForDevtools(newIsStrictMode) {
-      "function" === typeof log$1 &&
-        unstable_setDisableYieldValue(newIsStrictMode);
-      if (injectedHook && "function" === typeof injectedHook.setStrictMode)
-        try {
-          injectedHook.setStrictMode(rendererID, newIsStrictMode);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function getHighestPriorityLanes(lanes) {
-      var pendingSyncLanes = lanes & 42;
-      if (0 !== pendingSyncLanes) return pendingSyncLanes;
-      switch (lanes & -lanes) {
-        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:
-          return 64;
-        case 128:
-          return 128;
-        case 256:
-        case 512:
-        case 1024:
-        case 2048:
-        case 4096:
-        case 8192:
-        case 16384:
-        case 32768:
-        case 65536:
-        case 131072:
-          return lanes & 261888;
-        case 262144:
-        case 524288:
-        case 1048576:
-        case 2097152:
-          return lanes & 3932160;
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          return lanes & 62914560;
-        case 67108864:
-          return 67108864;
-        case 134217728:
-          return 134217728;
-        case 268435456:
-          return 268435456;
-        case 536870912:
-          return 536870912;
-        case 1073741824:
-          return 0;
-        default:
-          return (
-            console.error(
-              "Should have found matching lanes. This is a bug in React."
-            ),
-            lanes
-          );
-      }
-    }
-    function getNextLanes(root, wipLanes, rootHasPendingCommit) {
-      var pendingLanes = root.pendingLanes;
-      if (0 === pendingLanes) return 0;
-      var nextLanes = 0,
-        suspendedLanes = root.suspendedLanes,
-        pingedLanes = root.pingedLanes;
-      root = root.warmLanes;
-      var nonIdlePendingLanes = pendingLanes & 134217727;
-      0 !== nonIdlePendingLanes
-        ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),
-          0 !== pendingLanes
-            ? (nextLanes = getHighestPriorityLanes(pendingLanes))
-            : ((pingedLanes &= nonIdlePendingLanes),
-              0 !== pingedLanes
-                ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-                : rootHasPendingCommit ||
-                  ((rootHasPendingCommit = nonIdlePendingLanes & ~root),
-                  0 !== rootHasPendingCommit &&
-                    (nextLanes =
-                      getHighestPriorityLanes(rootHasPendingCommit)))))
-        : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),
-          0 !== nonIdlePendingLanes
-            ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
-            : 0 !== pingedLanes
-              ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-              : rootHasPendingCommit ||
-                ((rootHasPendingCommit = pendingLanes & ~root),
-                0 !== rootHasPendingCommit &&
-                  (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));
-      return 0 === nextLanes
-        ? 0
-        : 0 !== wipLanes &&
-            wipLanes !== nextLanes &&
-            0 === (wipLanes & suspendedLanes) &&
-            ((suspendedLanes = nextLanes & -nextLanes),
-            (rootHasPendingCommit = wipLanes & -wipLanes),
-            suspendedLanes >= rootHasPendingCommit ||
-              (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))
-          ? wipLanes
-          : nextLanes;
-    }
-    function checkIfRootIsPrerendering(root, renderLanes) {
-      return (
-        0 ===
-        (root.pendingLanes &
-          ~(root.suspendedLanes & ~root.pingedLanes) &
-          renderLanes)
-      );
-    }
-    function computeExpirationTime(lane, currentTime) {
-      switch (lane) {
-        case 1:
-        case 2:
-        case 4:
-        case 8:
-        case 64:
-          return currentTime + 250;
-        case 16:
-        case 32:
-        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 currentTime + 5e3;
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          return -1;
-        case 67108864:
-        case 134217728:
-        case 268435456:
-        case 536870912:
-        case 1073741824:
-          return -1;
-        default:
-          return (
-            console.error(
-              "Should have found matching lanes. This is a bug in React."
-            ),
-            -1
-          );
-      }
-    }
-    function claimNextRetryLane() {
-      var lane = nextRetryLane;
-      nextRetryLane <<= 1;
-      0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);
-      return lane;
-    }
-    function createLaneMap(initial) {
-      for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);
-      return laneMap;
-    }
-    function markRootUpdated$1(root, updateLane) {
-      root.pendingLanes |= updateLane;
-      268435456 !== updateLane &&
-        ((root.suspendedLanes = 0),
-        (root.pingedLanes = 0),
-        (root.warmLanes = 0));
-    }
-    function markRootFinished(
-      root,
-      finishedLanes,
-      remainingLanes,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes
-    ) {
-      var previouslyPendingLanes = root.pendingLanes;
-      root.pendingLanes = remainingLanes;
-      root.suspendedLanes = 0;
-      root.pingedLanes = 0;
-      root.warmLanes = 0;
-      root.expiredLanes &= remainingLanes;
-      root.entangledLanes &= remainingLanes;
-      root.errorRecoveryDisabledLanes &= remainingLanes;
-      root.shellSuspendCounter = 0;
-      var entanglements = root.entanglements,
-        expirationTimes = root.expirationTimes,
-        hiddenUpdates = root.hiddenUpdates;
-      for (
-        remainingLanes = previouslyPendingLanes & ~remainingLanes;
-        0 < remainingLanes;
-
-      ) {
-        var index = 31 - clz32(remainingLanes),
-          lane = 1 << index;
-        entanglements[index] = 0;
-        expirationTimes[index] = -1;
-        var hiddenUpdatesForLane = hiddenUpdates[index];
-        if (null !== hiddenUpdatesForLane)
-          for (
-            hiddenUpdates[index] = null, index = 0;
-            index < hiddenUpdatesForLane.length;
-            index++
-          ) {
-            var update = hiddenUpdatesForLane[index];
-            null !== update && (update.lane &= -536870913);
-          }
-        remainingLanes &= ~lane;
-      }
-      0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
-      0 !== suspendedRetryLanes &&
-        0 === updatedLanes &&
-        0 !== root.tag &&
-        (root.suspendedLanes |=
-          suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
-    }
-    function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {
-      root.pendingLanes |= spawnedLane;
-      root.suspendedLanes &= ~spawnedLane;
-      var spawnedLaneIndex = 31 - clz32(spawnedLane);
-      root.entangledLanes |= spawnedLane;
-      root.entanglements[spawnedLaneIndex] =
-        root.entanglements[spawnedLaneIndex] |
-        1073741824 |
-        (entangledLanes & 261930);
-    }
-    function markRootEntangled(root, entangledLanes) {
-      var rootEntangledLanes = (root.entangledLanes |= entangledLanes);
-      for (root = root.entanglements; rootEntangledLanes; ) {
-        var index = 31 - clz32(rootEntangledLanes),
-          lane = 1 << index;
-        (lane & entangledLanes) | (root[index] & entangledLanes) &&
-          (root[index] |= entangledLanes);
-        rootEntangledLanes &= ~lane;
-      }
-    }
-    function getBumpedLaneForHydration(root, renderLanes) {
-      var renderLane = renderLanes & -renderLanes;
-      renderLane =
-        0 !== (renderLane & 42)
-          ? 1
-          : getBumpedLaneForHydrationByLane(renderLane);
-      return 0 !== (renderLane & (root.suspendedLanes | renderLanes))
-        ? 0
-        : renderLane;
-    }
-    function getBumpedLaneForHydrationByLane(lane) {
-      switch (lane) {
-        case 2:
-          lane = 1;
-          break;
-        case 8:
-          lane = 4;
-          break;
-        case 32:
-          lane = 16;
-          break;
-        case 256:
-        case 512:
-        case 1024:
-        case 2048:
-        case 4096:
-        case 8192:
-        case 16384:
-        case 32768:
-        case 65536:
-        case 131072:
-        case 262144:
-        case 524288:
-        case 1048576:
-        case 2097152:
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          lane = 128;
-          break;
-        case 268435456:
-          lane = 134217728;
-          break;
-        default:
-          lane = 0;
-      }
-      return lane;
-    }
-    function addFiberToLanesMap(root, fiber, lanes) {
-      if (isDevToolsPresent)
-        for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {
-          var index = 31 - clz32(lanes),
-            lane = 1 << index;
-          root[index].add(fiber);
-          lanes &= ~lane;
-        }
-    }
-    function movePendingFibersToMemoized(root, lanes) {
-      if (isDevToolsPresent)
-        for (
-          var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,
-            memoizedUpdaters = root.memoizedUpdaters;
-          0 < lanes;
-
-        ) {
-          var index = 31 - clz32(lanes);
-          root = 1 << index;
-          index = pendingUpdatersLaneMap[index];
-          0 < index.size &&
-            (index.forEach(function (fiber) {
-              var alternate = fiber.alternate;
-              (null !== alternate && memoizedUpdaters.has(alternate)) ||
-                memoizedUpdaters.add(fiber);
-            }),
-            index.clear());
-          lanes &= ~root;
-        }
-    }
-    function lanesToEventPriority(lanes) {
-      lanes &= -lanes;
-      return 0 !== DiscreteEventPriority && DiscreteEventPriority < lanes
-        ? 0 !== ContinuousEventPriority && ContinuousEventPriority < lanes
-          ? 0 !== (lanes & 134217727)
-            ? DefaultEventPriority
-            : IdleEventPriority
-          : ContinuousEventPriority
-        : DiscreteEventPriority;
-    }
-    function resolveUpdatePriority() {
-      var updatePriority = ReactDOMSharedInternals.p;
-      if (0 !== updatePriority) return updatePriority;
-      updatePriority = window.event;
-      return void 0 === updatePriority
-        ? DefaultEventPriority
-        : getEventPriority(updatePriority.type);
-    }
-    function runWithPriority(priority, fn) {
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        return (ReactDOMSharedInternals.p = priority), fn();
-      } finally {
-        ReactDOMSharedInternals.p = previousPriority;
-      }
-    }
-    function detachDeletedInstance(node) {
-      delete node[internalInstanceKey];
-      delete node[internalPropsKey];
-      delete node[internalEventHandlersKey];
-      delete node[internalEventHandlerListenersKey];
-      delete node[internalEventHandlesSetKey];
-    }
-    function getClosestInstanceFromNode(targetNode) {
-      var targetInst = targetNode[internalInstanceKey];
-      if (targetInst) return targetInst;
-      for (var parentNode = targetNode.parentNode; parentNode; ) {
-        if (
-          (targetInst =
-            parentNode[internalContainerInstanceKey] ||
-            parentNode[internalInstanceKey])
-        ) {
-          parentNode = targetInst.alternate;
-          if (
-            null !== targetInst.child ||
-            (null !== parentNode && null !== parentNode.child)
-          )
-            for (
-              targetNode = getParentHydrationBoundary(targetNode);
-              null !== targetNode;
-
-            ) {
-              if ((parentNode = targetNode[internalInstanceKey]))
-                return parentNode;
-              targetNode = getParentHydrationBoundary(targetNode);
-            }
-          return targetInst;
-        }
-        targetNode = parentNode;
-        parentNode = targetNode.parentNode;
-      }
-      return null;
-    }
-    function getInstanceFromNode(node) {
-      if (
-        (node = node[internalInstanceKey] || node[internalContainerInstanceKey])
-      ) {
-        var tag = node.tag;
-        if (
-          5 === tag ||
-          6 === tag ||
-          13 === tag ||
-          31 === tag ||
-          26 === tag ||
-          27 === tag ||
-          3 === tag
-        )
-          return node;
-      }
-      return null;
-    }
-    function getNodeFromInstance(inst) {
-      var tag = inst.tag;
-      if (5 === tag || 26 === tag || 27 === tag || 6 === tag)
-        return inst.stateNode;
-      throw Error("getNodeFromInstance: Invalid argument.");
-    }
-    function getResourcesFromRoot(root) {
-      var resources = root[internalRootNodeResourcesKey];
-      resources ||
-        (resources = root[internalRootNodeResourcesKey] =
-          { hoistableStyles: new Map(), hoistableScripts: new Map() });
-      return resources;
-    }
-    function markNodeAsHoistable(node) {
-      node[internalHoistableMarker] = !0;
-    }
-    function registerTwoPhaseEvent(registrationName, dependencies) {
-      registerDirectEvent(registrationName, dependencies);
-      registerDirectEvent(registrationName + "Capture", dependencies);
-    }
-    function registerDirectEvent(registrationName, dependencies) {
-      registrationNameDependencies[registrationName] &&
-        console.error(
-          "EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",
-          registrationName
-        );
-      registrationNameDependencies[registrationName] = dependencies;
-      var lowerCasedName = registrationName.toLowerCase();
-      possibleRegistrationNames[lowerCasedName] = registrationName;
-      "onDoubleClick" === registrationName &&
-        (possibleRegistrationNames.ondblclick = registrationName);
-      for (
-        registrationName = 0;
-        registrationName < dependencies.length;
-        registrationName++
-      )
-        allNativeEvents.add(dependencies[registrationName]);
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function getValueForAttributeOnCustomComponent(node, name, expected) {
-      if (isAttributeNameSafe(name)) {
-        if (!node.hasAttribute(name)) {
-          switch (typeof expected) {
-            case "symbol":
-            case "object":
-              return expected;
-            case "function":
-              return expected;
-            case "boolean":
-              if (!1 === expected) return expected;
-          }
-          return void 0 === expected ? void 0 : null;
-        }
-        node = node.getAttribute(name);
-        if ("" === node && !0 === expected) return !0;
-        checkAttributeStringCoercion(expected, name);
-        return node === "" + expected ? expected : node;
-      }
-    }
-    function setValueForAttribute(node, name, value) {
-      if (isAttributeNameSafe(name))
-        if (null === value) node.removeAttribute(name);
-        else {
-          switch (typeof value) {
-            case "undefined":
-            case "function":
-            case "symbol":
-              node.removeAttribute(name);
-              return;
-            case "boolean":
-              var prefix = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix && "aria-" !== prefix) {
-                node.removeAttribute(name);
-                return;
-              }
-          }
-          checkAttributeStringCoercion(value, name);
-          node.setAttribute(name, "" + value);
-        }
-    }
-    function setValueForKnownAttribute(node, name, value) {
-      if (null === value) node.removeAttribute(name);
-      else {
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            node.removeAttribute(name);
-            return;
-        }
-        checkAttributeStringCoercion(value, name);
-        node.setAttribute(name, "" + value);
-      }
-    }
-    function setValueForNamespacedAttribute(node, namespace, name, value) {
-      if (null === value) node.removeAttribute(name);
-      else {
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            node.removeAttribute(name);
-            return;
-        }
-        checkAttributeStringCoercion(value, name);
-        node.setAttributeNS(namespace, name, "" + value);
-      }
-    }
-    function getToStringValue(value) {
-      switch (typeof value) {
-        case "bigint":
-        case "boolean":
-        case "number":
-        case "string":
-        case "undefined":
-          return value;
-        case "object":
-          return checkFormFieldValueStringCoercion(value), value;
-        default:
-          return "";
-      }
-    }
-    function isCheckable(elem) {
-      var type = elem.type;
-      return (
-        (elem = elem.nodeName) &&
-        "input" === elem.toLowerCase() &&
-        ("checkbox" === type || "radio" === type)
-      );
-    }
-    function trackValueOnNode(node, valueField, currentValue) {
-      var descriptor = Object.getOwnPropertyDescriptor(
-        node.constructor.prototype,
-        valueField
-      );
-      if (
-        !node.hasOwnProperty(valueField) &&
-        "undefined" !== typeof descriptor &&
-        "function" === typeof descriptor.get &&
-        "function" === typeof descriptor.set
-      ) {
-        var get = descriptor.get,
-          set = descriptor.set;
-        Object.defineProperty(node, valueField, {
-          configurable: !0,
-          get: function () {
-            return get.call(this);
-          },
-          set: function (value) {
-            checkFormFieldValueStringCoercion(value);
-            currentValue = "" + value;
-            set.call(this, value);
-          }
-        });
-        Object.defineProperty(node, valueField, {
-          enumerable: descriptor.enumerable
-        });
-        return {
-          getValue: function () {
-            return currentValue;
-          },
-          setValue: function (value) {
-            checkFormFieldValueStringCoercion(value);
-            currentValue = "" + value;
-          },
-          stopTracking: function () {
-            node._valueTracker = null;
-            delete node[valueField];
-          }
-        };
-      }
-    }
-    function track(node) {
-      if (!node._valueTracker) {
-        var valueField = isCheckable(node) ? "checked" : "value";
-        node._valueTracker = trackValueOnNode(
-          node,
-          valueField,
-          "" + node[valueField]
-        );
-      }
-    }
-    function updateValueIfChanged(node) {
-      if (!node) return !1;
-      var tracker = node._valueTracker;
-      if (!tracker) return !0;
-      var lastValue = tracker.getValue();
-      var value = "";
-      node &&
-        (value = isCheckable(node)
-          ? node.checked
-            ? "true"
-            : "false"
-          : node.value);
-      node = value;
-      return node !== lastValue ? (tracker.setValue(node), !0) : !1;
-    }
-    function getActiveElement(doc) {
-      doc = doc || ("undefined" !== typeof document ? document : void 0);
-      if ("undefined" === typeof doc) return null;
-      try {
-        return doc.activeElement || doc.body;
-      } catch (e) {
-        return doc.body;
-      }
-    }
-    function escapeSelectorAttributeValueInsideDoubleQuotes(value) {
-      return value.replace(
-        escapeSelectorAttributeValueInsideDoubleQuotesRegex,
-        function (ch) {
-          return "\\" + ch.charCodeAt(0).toString(16) + " ";
-        }
-      );
-    }
-    function validateInputProps(element, props) {
-      void 0 === props.checked ||
-        void 0 === props.defaultChecked ||
-        didWarnCheckedDefaultChecked ||
-        (console.error(
-          "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component",
-          props.type
-        ),
-        (didWarnCheckedDefaultChecked = !0));
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValueDefaultValue$1 ||
-        (console.error(
-          "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component",
-          props.type
-        ),
-        (didWarnValueDefaultValue$1 = !0));
-    }
-    function updateInput(
-      element,
-      value,
-      defaultValue,
-      lastDefaultValue,
-      checked,
-      defaultChecked,
-      type,
-      name
-    ) {
-      element.name = "";
-      null != type &&
-      "function" !== typeof type &&
-      "symbol" !== typeof type &&
-      "boolean" !== typeof type
-        ? (checkAttributeStringCoercion(type, "type"), (element.type = type))
-        : element.removeAttribute("type");
-      if (null != value)
-        if ("number" === type) {
-          if ((0 === value && "" === element.value) || element.value != value)
-            element.value = "" + getToStringValue(value);
-        } else
-          element.value !== "" + getToStringValue(value) &&
-            (element.value = "" + getToStringValue(value));
-      else
-        ("submit" !== type && "reset" !== type) ||
-          element.removeAttribute("value");
-      null != value
-        ? setDefaultValue(element, type, getToStringValue(value))
-        : null != defaultValue
-          ? setDefaultValue(element, type, getToStringValue(defaultValue))
-          : null != lastDefaultValue && element.removeAttribute("value");
-      null == checked &&
-        null != defaultChecked &&
-        (element.defaultChecked = !!defaultChecked);
-      null != checked &&
-        (element.checked =
-          checked &&
-          "function" !== typeof checked &&
-          "symbol" !== typeof checked);
-      null != name &&
-      "function" !== typeof name &&
-      "symbol" !== typeof name &&
-      "boolean" !== typeof name
-        ? (checkAttributeStringCoercion(name, "name"),
-          (element.name = "" + getToStringValue(name)))
-        : element.removeAttribute("name");
-    }
-    function initInput(
-      element,
-      value,
-      defaultValue,
-      checked,
-      defaultChecked,
-      type,
-      name,
-      isHydrating
-    ) {
-      null != type &&
-        "function" !== typeof type &&
-        "symbol" !== typeof type &&
-        "boolean" !== typeof type &&
-        (checkAttributeStringCoercion(type, "type"), (element.type = type));
-      if (null != value || null != defaultValue) {
-        if (
-          !(
-            ("submit" !== type && "reset" !== type) ||
-            (void 0 !== value && null !== value)
-          )
-        ) {
-          track(element);
-          return;
-        }
-        defaultValue =
-          null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-        value = null != value ? "" + getToStringValue(value) : defaultValue;
-        isHydrating || value === element.value || (element.value = value);
-        element.defaultValue = value;
-      }
-      checked = null != checked ? checked : defaultChecked;
-      checked =
-        "function" !== typeof checked &&
-        "symbol" !== typeof checked &&
-        !!checked;
-      element.checked = isHydrating ? element.checked : !!checked;
-      element.defaultChecked = !!checked;
-      null != name &&
-        "function" !== typeof name &&
-        "symbol" !== typeof name &&
-        "boolean" !== typeof name &&
-        (checkAttributeStringCoercion(name, "name"), (element.name = name));
-      track(element);
-    }
-    function setDefaultValue(node, type, value) {
-      ("number" === type && getActiveElement(node.ownerDocument) === node) ||
-        node.defaultValue === "" + value ||
-        (node.defaultValue = "" + value);
-    }
-    function validateOptionProps(element, props) {
-      null == props.value &&
-        ("object" === typeof props.children && null !== props.children
-          ? React.Children.forEach(props.children, function (child) {
-              null == child ||
-                "string" === typeof child ||
-                "number" === typeof child ||
-                "bigint" === typeof child ||
-                didWarnInvalidChild ||
-                ((didWarnInvalidChild = !0),
-                console.error(
-                  "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-                ));
-            })
-          : null == props.dangerouslySetInnerHTML ||
-            didWarnInvalidInnerHTML ||
-            ((didWarnInvalidInnerHTML = !0),
-            console.error(
-              "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-            )));
-      null == props.selected ||
-        didWarnSelectedSetOnOption ||
-        (console.error(
-          "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-        ),
-        (didWarnSelectedSetOnOption = !0));
-    }
-    function getDeclarationErrorAddendum() {
-      var ownerName = getCurrentFiberOwnerNameInDevOrNull();
-      return ownerName
-        ? "\n\nCheck the render method of `" + ownerName + "`."
-        : "";
-    }
-    function updateOptions(node, multiple, propValue, setDefaultSelected) {
-      node = node.options;
-      if (multiple) {
-        multiple = {};
-        for (var i = 0; i < propValue.length; i++)
-          multiple["$" + propValue[i]] = !0;
-        for (propValue = 0; propValue < node.length; propValue++)
-          (i = multiple.hasOwnProperty("$" + node[propValue].value)),
-            node[propValue].selected !== i && (node[propValue].selected = i),
-            i && setDefaultSelected && (node[propValue].defaultSelected = !0);
-      } else {
-        propValue = "" + getToStringValue(propValue);
-        multiple = null;
-        for (i = 0; i < node.length; i++) {
-          if (node[i].value === propValue) {
-            node[i].selected = !0;
-            setDefaultSelected && (node[i].defaultSelected = !0);
-            return;
-          }
-          null !== multiple || node[i].disabled || (multiple = node[i]);
-        }
-        null !== multiple && (multiple.selected = !0);
-      }
-    }
-    function validateSelectProps(element, props) {
-      for (element = 0; element < valuePropNames.length; element++) {
-        var propName = valuePropNames[element];
-        if (null != props[propName]) {
-          var propNameIsArray = isArrayImpl(props[propName]);
-          props.multiple && !propNameIsArray
-            ? console.error(
-                "The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",
-                propName,
-                getDeclarationErrorAddendum()
-              )
-            : !props.multiple &&
-              propNameIsArray &&
-              console.error(
-                "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",
-                propName,
-                getDeclarationErrorAddendum()
-              );
-        }
-      }
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValueDefaultValue ||
-        (console.error(
-          "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-        ),
-        (didWarnValueDefaultValue = !0));
-    }
-    function validateTextareaProps(element, props) {
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValDefaultVal ||
-        (console.error(
-          "%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component"
-        ),
-        (didWarnValDefaultVal = !0));
-      null != props.children &&
-        null == props.value &&
-        console.error(
-          "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-        );
-    }
-    function updateTextarea(element, value, defaultValue) {
-      if (
-        null != value &&
-        ((value = "" + getToStringValue(value)),
-        value !== element.value && (element.value = value),
-        null == defaultValue)
-      ) {
-        element.defaultValue !== value && (element.defaultValue = value);
-        return;
-      }
-      element.defaultValue =
-        null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-    }
-    function initTextarea(element, value, defaultValue, children) {
-      if (null == value) {
-        if (null != children) {
-          if (null != defaultValue)
-            throw Error(
-              "If you supply `defaultValue` on a <textarea>, do not pass children."
-            );
-          if (isArrayImpl(children)) {
-            if (1 < children.length)
-              throw Error("<textarea> can only have at most one child.");
-            children = children[0];
-          }
-          defaultValue = children;
-        }
-        null == defaultValue && (defaultValue = "");
-        value = defaultValue;
-      }
-      defaultValue = getToStringValue(value);
-      element.defaultValue = defaultValue;
-      children = element.textContent;
-      children === defaultValue &&
-        "" !== children &&
-        null !== children &&
-        (element.value = children);
-      track(element);
-    }
-    function findNotableNode(node, indent) {
-      return void 0 === node.serverProps &&
-        0 === node.serverTail.length &&
-        1 === node.children.length &&
-        3 < node.distanceFromLeaf &&
-        node.distanceFromLeaf > 15 - indent
-        ? findNotableNode(node.children[0], indent)
-        : node;
-    }
-    function indentation(indent) {
-      return "  " + "  ".repeat(indent);
-    }
-    function added(indent) {
-      return "+ " + "  ".repeat(indent);
-    }
-    function removed(indent) {
-      return "- " + "  ".repeat(indent);
-    }
-    function describeFiberType(fiber) {
-      switch (fiber.tag) {
-        case 26:
-        case 27:
-        case 5:
-          return fiber.type;
-        case 16:
-          return "Lazy";
-        case 31:
-          return "Activity";
-        case 13:
-          return "Suspense";
-        case 19:
-          return "SuspenseList";
-        case 0:
-        case 15:
-          return (fiber = fiber.type), fiber.displayName || fiber.name || null;
-        case 11:
-          return (
-            (fiber = fiber.type.render), fiber.displayName || fiber.name || null
-          );
-        case 1:
-          return (fiber = fiber.type), fiber.displayName || fiber.name || null;
-        default:
-          return null;
-      }
-    }
-    function describeTextNode(content, maxLength) {
-      return needsEscaping.test(content)
-        ? ((content = JSON.stringify(content)),
-          content.length > maxLength - 2
-            ? 8 > maxLength
-              ? '{"..."}'
-              : "{" + content.slice(0, maxLength - 7) + '..."}'
-            : "{" + content + "}")
-        : content.length > maxLength
-          ? 5 > maxLength
-            ? '{"..."}'
-            : content.slice(0, maxLength - 3) + "..."
-          : content;
-    }
-    function describeTextDiff(clientText, serverProps, indent) {
-      var maxLength = 120 - 2 * indent;
-      if (null === serverProps)
-        return added(indent) + describeTextNode(clientText, maxLength) + "\n";
-      if ("string" === typeof serverProps) {
-        for (
-          var firstDiff = 0;
-          firstDiff < serverProps.length &&
-          firstDiff < clientText.length &&
-          serverProps.charCodeAt(firstDiff) ===
-            clientText.charCodeAt(firstDiff);
-          firstDiff++
-        );
-        firstDiff > maxLength - 8 &&
-          10 < firstDiff &&
-          ((clientText = "..." + clientText.slice(firstDiff - 8)),
-          (serverProps = "..." + serverProps.slice(firstDiff - 8)));
-        return (
-          added(indent) +
-          describeTextNode(clientText, maxLength) +
-          "\n" +
-          removed(indent) +
-          describeTextNode(serverProps, maxLength) +
-          "\n"
-        );
-      }
-      return (
-        indentation(indent) + describeTextNode(clientText, maxLength) + "\n"
-      );
-    }
-    function objectName(object) {
-      return Object.prototype.toString
-        .call(object)
-        .replace(/^\[object (.*)\]$/, function (m, p0) {
-          return p0;
-        });
-    }
-    function describeValue(value, maxLength) {
-      switch (typeof value) {
-        case "string":
-          return (
-            (value = JSON.stringify(value)),
-            value.length > maxLength
-              ? 5 > maxLength
-                ? '"..."'
-                : value.slice(0, maxLength - 4) + '..."'
-              : value
-          );
-        case "object":
-          if (null === value) return "null";
-          if (isArrayImpl(value)) return "[...]";
-          if (value.$$typeof === REACT_ELEMENT_TYPE)
-            return (maxLength = getComponentNameFromType(value.type))
-              ? "<" + maxLength + ">"
-              : "<...>";
-          var name = objectName(value);
-          if ("Object" === name) {
-            name = "";
-            maxLength -= 2;
-            for (var propName in value)
-              if (value.hasOwnProperty(propName)) {
-                var jsonPropName = JSON.stringify(propName);
-                jsonPropName !== '"' + propName + '"' &&
-                  (propName = jsonPropName);
-                maxLength -= propName.length - 2;
-                jsonPropName = describeValue(
-                  value[propName],
-                  15 > maxLength ? maxLength : 15
-                );
-                maxLength -= jsonPropName.length;
-                if (0 > maxLength) {
-                  name += "" === name ? "..." : ", ...";
-                  break;
-                }
-                name +=
-                  ("" === name ? "" : ",") + propName + ":" + jsonPropName;
-              }
-            return "{" + name + "}";
-          }
-          return name;
-        case "function":
-          return (maxLength = value.displayName || value.name)
-            ? "function " + maxLength
-            : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describePropValue(value, maxLength) {
-      return "string" !== typeof value || needsEscaping.test(value)
-        ? "{" + describeValue(value, maxLength - 2) + "}"
-        : value.length > maxLength - 2
-          ? 5 > maxLength
-            ? '"..."'
-            : '"' + value.slice(0, maxLength - 5) + '..."'
-          : '"' + value + '"';
-    }
-    function describeExpandedElement(type, props, rowPrefix) {
-      var remainingRowLength = 120 - rowPrefix.length - type.length,
-        properties = [],
-        propName;
-      for (propName in props)
-        if (props.hasOwnProperty(propName) && "children" !== propName) {
-          var propValue = describePropValue(
-            props[propName],
-            120 - rowPrefix.length - propName.length - 1
-          );
-          remainingRowLength -= propName.length + propValue.length + 2;
-          properties.push(propName + "=" + propValue);
-        }
-      return 0 === properties.length
-        ? rowPrefix + "<" + type + ">\n"
-        : 0 < remainingRowLength
-          ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n"
-          : rowPrefix +
-            "<" +
-            type +
-            "\n" +
-            rowPrefix +
-            "  " +
-            properties.join("\n" + rowPrefix + "  ") +
-            "\n" +
-            rowPrefix +
-            ">\n";
-    }
-    function describePropertiesDiff(clientObject, serverObject, indent) {
-      var properties = "",
-        remainingServerProperties = assign({}, serverObject),
-        propName;
-      for (propName in clientObject)
-        if (clientObject.hasOwnProperty(propName)) {
-          delete remainingServerProperties[propName];
-          var maxLength = 120 - 2 * indent - propName.length - 2,
-            clientPropValue = describeValue(clientObject[propName], maxLength);
-          serverObject.hasOwnProperty(propName)
-            ? ((maxLength = describeValue(serverObject[propName], maxLength)),
-              (properties +=
-                added(indent) + propName + ": " + clientPropValue + "\n"),
-              (properties +=
-                removed(indent) + propName + ": " + maxLength + "\n"))
-            : (properties +=
-                added(indent) + propName + ": " + clientPropValue + "\n");
-        }
-      for (var _propName in remainingServerProperties)
-        remainingServerProperties.hasOwnProperty(_propName) &&
-          ((clientObject = describeValue(
-            remainingServerProperties[_propName],
-            120 - 2 * indent - _propName.length - 2
-          )),
-          (properties +=
-            removed(indent) + _propName + ": " + clientObject + "\n"));
-      return properties;
-    }
-    function describeElementDiff(type, clientProps, serverProps, indent) {
-      var content = "",
-        serverPropNames = new Map();
-      for (propName$jscomp$0 in serverProps)
-        serverProps.hasOwnProperty(propName$jscomp$0) &&
-          serverPropNames.set(
-            propName$jscomp$0.toLowerCase(),
-            propName$jscomp$0
-          );
-      if (1 === serverPropNames.size && serverPropNames.has("children"))
-        content += describeExpandedElement(
-          type,
-          clientProps,
-          indentation(indent)
-        );
-      else {
-        for (var _propName2 in clientProps)
-          if (
-            clientProps.hasOwnProperty(_propName2) &&
-            "children" !== _propName2
-          ) {
-            var maxLength$jscomp$0 =
-                120 - 2 * (indent + 1) - _propName2.length - 1,
-              serverPropName = serverPropNames.get(_propName2.toLowerCase());
-            if (void 0 !== serverPropName) {
-              serverPropNames.delete(_propName2.toLowerCase());
-              var propName$jscomp$0 = clientProps[_propName2];
-              serverPropName = serverProps[serverPropName];
-              var clientPropValue = describePropValue(
-                propName$jscomp$0,
-                maxLength$jscomp$0
-              );
-              maxLength$jscomp$0 = describePropValue(
-                serverPropName,
-                maxLength$jscomp$0
-              );
-              "object" === typeof propName$jscomp$0 &&
-              null !== propName$jscomp$0 &&
-              "object" === typeof serverPropName &&
-              null !== serverPropName &&
-              "Object" === objectName(propName$jscomp$0) &&
-              "Object" === objectName(serverPropName) &&
-              (2 < Object.keys(propName$jscomp$0).length ||
-                2 < Object.keys(serverPropName).length ||
-                -1 < clientPropValue.indexOf("...") ||
-                -1 < maxLength$jscomp$0.indexOf("..."))
-                ? (content +=
-                    indentation(indent + 1) +
-                    _propName2 +
-                    "={{\n" +
-                    describePropertiesDiff(
-                      propName$jscomp$0,
-                      serverPropName,
-                      indent + 2
-                    ) +
-                    indentation(indent + 1) +
-                    "}}\n")
-                : ((content +=
-                    added(indent + 1) +
-                    _propName2 +
-                    "=" +
-                    clientPropValue +
-                    "\n"),
-                  (content +=
-                    removed(indent + 1) +
-                    _propName2 +
-                    "=" +
-                    maxLength$jscomp$0 +
-                    "\n"));
-            } else
-              content +=
-                indentation(indent + 1) +
-                _propName2 +
-                "=" +
-                describePropValue(clientProps[_propName2], maxLength$jscomp$0) +
-                "\n";
-          }
-        serverPropNames.forEach(function (propName) {
-          if ("children" !== propName) {
-            var maxLength = 120 - 2 * (indent + 1) - propName.length - 1;
-            content +=
-              removed(indent + 1) +
-              propName +
-              "=" +
-              describePropValue(serverProps[propName], maxLength) +
-              "\n";
-          }
-        });
-        content =
-          "" === content
-            ? indentation(indent) + "<" + type + ">\n"
-            : indentation(indent) +
-              "<" +
-              type +
-              "\n" +
-              content +
-              indentation(indent) +
-              ">\n";
-      }
-      type = serverProps.children;
-      clientProps = clientProps.children;
-      if (
-        "string" === typeof type ||
-        "number" === typeof type ||
-        "bigint" === typeof type
-      ) {
-        serverPropNames = "";
-        if (
-          "string" === typeof clientProps ||
-          "number" === typeof clientProps ||
-          "bigint" === typeof clientProps
-        )
-          serverPropNames = "" + clientProps;
-        content += describeTextDiff(serverPropNames, "" + type, indent + 1);
-      } else if (
-        "string" === typeof clientProps ||
-        "number" === typeof clientProps ||
-        "bigint" === typeof clientProps
-      )
-        content =
-          null == type
-            ? content + describeTextDiff("" + clientProps, null, indent + 1)
-            : content + describeTextDiff("" + clientProps, void 0, indent + 1);
-      return content;
-    }
-    function describeSiblingFiber(fiber, indent) {
-      var type = describeFiberType(fiber);
-      if (null === type) {
-        type = "";
-        for (fiber = fiber.child; fiber; )
-          (type += describeSiblingFiber(fiber, indent)),
-            (fiber = fiber.sibling);
-        return type;
-      }
-      return indentation(indent) + "<" + type + ">\n";
-    }
-    function describeNode(node, indent) {
-      var skipToNode = findNotableNode(node, indent);
-      if (
-        skipToNode !== node &&
-        (1 !== node.children.length || node.children[0] !== skipToNode)
-      )
-        return (
-          indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1)
-        );
-      skipToNode = "";
-      var debugInfo = node.fiber._debugInfo;
-      if (debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var serverComponentName = debugInfo[i].name;
-          "string" === typeof serverComponentName &&
-            ((skipToNode +=
-              indentation(indent) + "<" + serverComponentName + ">\n"),
-            indent++);
-        }
-      debugInfo = "";
-      i = node.fiber.pendingProps;
-      if (6 === node.fiber.tag)
-        (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++;
-      else if (
-        ((serverComponentName = describeFiberType(node.fiber)),
-        null !== serverComponentName)
-      )
-        if (void 0 === node.serverProps) {
-          debugInfo = indent;
-          var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2,
-            content = "";
-          for (propName in i)
-            if (i.hasOwnProperty(propName) && "children" !== propName) {
-              var propValue = describePropValue(i[propName], 15);
-              maxLength -= propName.length + propValue.length + 2;
-              if (0 > maxLength) {
-                content += " ...";
-                break;
-              }
-              content += " " + propName + "=" + propValue;
-            }
-          debugInfo =
-            indentation(debugInfo) +
-            "<" +
-            serverComponentName +
-            content +
-            ">\n";
-          indent++;
-        } else
-          null === node.serverProps
-            ? ((debugInfo = describeExpandedElement(
-                serverComponentName,
-                i,
-                added(indent)
-              )),
-              indent++)
-            : "string" === typeof node.serverProps
-              ? console.error(
-                  "Should not have matched a non HostText fiber to a Text node. This is a bug in React."
-                )
-              : ((debugInfo = describeElementDiff(
-                  serverComponentName,
-                  i,
-                  node.serverProps,
-                  indent
-                )),
-                indent++);
-      var propName = "";
-      i = node.fiber.child;
-      for (
-        serverComponentName = 0;
-        i && serverComponentName < node.children.length;
-
-      )
-        (maxLength = node.children[serverComponentName]),
-          maxLength.fiber === i
-            ? ((propName += describeNode(maxLength, indent)),
-              serverComponentName++)
-            : (propName += describeSiblingFiber(i, indent)),
-          (i = i.sibling);
-      i &&
-        0 < node.children.length &&
-        (propName += indentation(indent) + "...\n");
-      i = node.serverTail;
-      null === node.serverProps && indent--;
-      for (node = 0; node < i.length; node++)
-        (serverComponentName = i[node]),
-          (propName =
-            "string" === typeof serverComponentName
-              ? propName +
-                (removed(indent) +
-                  describeTextNode(serverComponentName, 120 - 2 * indent) +
-                  "\n")
-              : propName +
-                describeExpandedElement(
-                  serverComponentName.type,
-                  serverComponentName.props,
-                  removed(indent)
-                ));
-      return skipToNode + debugInfo + propName;
-    }
-    function describeDiff(rootNode) {
-      try {
-        return "\n\n" + describeNode(rootNode, 0);
-      } catch (x) {
-        return "";
-      }
-    }
-    function describeAncestors(ancestor, child, props) {
-      for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; )
-        fiber === ancestor && (distanceFromLeaf = 0),
-          (node = {
-            fiber: fiber,
-            children: null !== node ? [node] : [],
-            serverProps:
-              fiber === child ? props : fiber === ancestor ? null : void 0,
-            serverTail: [],
-            distanceFromLeaf: distanceFromLeaf
-          }),
-          distanceFromLeaf++,
-          (fiber = fiber.return);
-      return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : "";
-    }
-    function updatedAncestorInfoDev(oldInfo, tag) {
-      var ancestorInfo = assign({}, oldInfo || emptyAncestorInfoDev),
-        info = { tag: tag };
-      -1 !== inScopeTags.indexOf(tag) &&
-        ((ancestorInfo.aTagInScope = null),
-        (ancestorInfo.buttonTagInScope = null),
-        (ancestorInfo.nobrTagInScope = null));
-      -1 !== buttonScopeTags.indexOf(tag) &&
-        (ancestorInfo.pTagInButtonScope = null);
-      -1 !== specialTags.indexOf(tag) &&
-        "address" !== tag &&
-        "div" !== tag &&
-        "p" !== tag &&
-        ((ancestorInfo.listItemTagAutoclosing = null),
-        (ancestorInfo.dlItemTagAutoclosing = null));
-      ancestorInfo.current = info;
-      "form" === tag && (ancestorInfo.formTag = info);
-      "a" === tag && (ancestorInfo.aTagInScope = info);
-      "button" === tag && (ancestorInfo.buttonTagInScope = info);
-      "nobr" === tag && (ancestorInfo.nobrTagInScope = info);
-      "p" === tag && (ancestorInfo.pTagInButtonScope = info);
-      "li" === tag && (ancestorInfo.listItemTagAutoclosing = info);
-      if ("dd" === tag || "dt" === tag)
-        ancestorInfo.dlItemTagAutoclosing = info;
-      "#document" === tag || "html" === tag
-        ? (ancestorInfo.containerTagInScope = null)
-        : ancestorInfo.containerTagInScope ||
-          (ancestorInfo.containerTagInScope = info);
-      null !== oldInfo ||
-      ("#document" !== tag && "html" !== tag && "body" !== tag)
-        ? !0 === ancestorInfo.implicitRootScope &&
-          (ancestorInfo.implicitRootScope = !1)
-        : (ancestorInfo.implicitRootScope = !0);
-      return ancestorInfo;
-    }
-    function isTagValidWithParent(tag, parentTag, implicitRootScope) {
-      switch (parentTag) {
-        case "select":
-          return (
-            "hr" === tag ||
-            "option" === tag ||
-            "optgroup" === tag ||
-            "script" === tag ||
-            "template" === tag ||
-            "#text" === tag
-          );
-        case "optgroup":
-          return "option" === tag || "#text" === tag;
-        case "option":
-          return "#text" === tag;
-        case "tr":
-          return (
-            "th" === tag ||
-            "td" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "tbody":
-        case "thead":
-        case "tfoot":
-          return (
-            "tr" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "colgroup":
-          return "col" === tag || "template" === tag;
-        case "table":
-          return (
-            "caption" === tag ||
-            "colgroup" === tag ||
-            "tbody" === tag ||
-            "tfoot" === tag ||
-            "thead" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "head":
-          return (
-            "base" === tag ||
-            "basefont" === tag ||
-            "bgsound" === tag ||
-            "link" === tag ||
-            "meta" === tag ||
-            "title" === tag ||
-            "noscript" === tag ||
-            "noframes" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "html":
-          if (implicitRootScope) break;
-          return "head" === tag || "body" === tag || "frameset" === tag;
-        case "frameset":
-          return "frame" === tag;
-        case "#document":
-          if (!implicitRootScope) return "html" === tag;
-      }
-      switch (tag) {
-        case "h1":
-        case "h2":
-        case "h3":
-        case "h4":
-        case "h5":
-        case "h6":
-          return (
-            "h1" !== parentTag &&
-            "h2" !== parentTag &&
-            "h3" !== parentTag &&
-            "h4" !== parentTag &&
-            "h5" !== parentTag &&
-            "h6" !== parentTag
-          );
-        case "rp":
-        case "rt":
-          return -1 === impliedEndTags.indexOf(parentTag);
-        case "caption":
-        case "col":
-        case "colgroup":
-        case "frameset":
-        case "frame":
-        case "tbody":
-        case "td":
-        case "tfoot":
-        case "th":
-        case "thead":
-        case "tr":
-          return null == parentTag;
-        case "head":
-          return implicitRootScope || null === parentTag;
-        case "html":
-          return (
-            (implicitRootScope && "#document" === parentTag) ||
-            null === parentTag
-          );
-        case "body":
-          return (
-            (implicitRootScope &&
-              ("#document" === parentTag || "html" === parentTag)) ||
-            null === parentTag
-          );
-      }
-      return !0;
-    }
-    function findInvalidAncestorForTag(tag, ancestorInfo) {
-      switch (tag) {
-        case "address":
-        case "article":
-        case "aside":
-        case "blockquote":
-        case "center":
-        case "details":
-        case "dialog":
-        case "dir":
-        case "div":
-        case "dl":
-        case "fieldset":
-        case "figcaption":
-        case "figure":
-        case "footer":
-        case "header":
-        case "hgroup":
-        case "main":
-        case "menu":
-        case "nav":
-        case "ol":
-        case "p":
-        case "section":
-        case "summary":
-        case "ul":
-        case "pre":
-        case "listing":
-        case "table":
-        case "hr":
-        case "xmp":
-        case "h1":
-        case "h2":
-        case "h3":
-        case "h4":
-        case "h5":
-        case "h6":
-          return ancestorInfo.pTagInButtonScope;
-        case "form":
-          return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;
-        case "li":
-          return ancestorInfo.listItemTagAutoclosing;
-        case "dd":
-        case "dt":
-          return ancestorInfo.dlItemTagAutoclosing;
-        case "button":
-          return ancestorInfo.buttonTagInScope;
-        case "a":
-          return ancestorInfo.aTagInScope;
-        case "nobr":
-          return ancestorInfo.nobrTagInScope;
-      }
-      return null;
-    }
-    function findAncestor(parent, tagName) {
-      for (; parent; ) {
-        switch (parent.tag) {
-          case 5:
-          case 26:
-          case 27:
-            if (parent.type === tagName) return parent;
-        }
-        parent = parent.return;
-      }
-      return null;
-    }
-    function validateDOMNesting(childTag, ancestorInfo) {
-      ancestorInfo = ancestorInfo || emptyAncestorInfoDev;
-      var parentInfo = ancestorInfo.current;
-      ancestorInfo = (parentInfo = isTagValidWithParent(
-        childTag,
-        parentInfo && parentInfo.tag,
-        ancestorInfo.implicitRootScope
-      )
-        ? null
-        : parentInfo)
-        ? null
-        : findInvalidAncestorForTag(childTag, ancestorInfo);
-      ancestorInfo = parentInfo || ancestorInfo;
-      if (!ancestorInfo) return !0;
-      var ancestorTag = ancestorInfo.tag;
-      ancestorInfo = String(!!parentInfo) + "|" + childTag + "|" + ancestorTag;
-      if (didWarn[ancestorInfo]) return !1;
-      didWarn[ancestorInfo] = !0;
-      var ancestor = (ancestorInfo = current)
-          ? findAncestor(ancestorInfo.return, ancestorTag)
-          : null,
-        ancestorDescription =
-          null !== ancestorInfo && null !== ancestor
-            ? describeAncestors(ancestor, ancestorInfo, null)
-            : "",
-        tagDisplayName = "<" + childTag + ">";
-      parentInfo
-        ? ((parentInfo = ""),
-          "table" === ancestorTag &&
-            "tr" === childTag &&
-            (parentInfo +=
-              " Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),
-          console.error(
-            "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s",
-            tagDisplayName,
-            ancestorTag,
-            parentInfo,
-            ancestorDescription
-          ))
-        : console.error(
-            "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s",
-            tagDisplayName,
-            ancestorTag,
-            ancestorDescription
-          );
-      ancestorInfo &&
-        ((childTag = ancestorInfo.return),
-        null === ancestor ||
-          null === childTag ||
-          (ancestor === childTag &&
-            childTag._debugOwner === ancestorInfo._debugOwner) ||
-          runWithFiberInDEV(ancestor, function () {
-            console.error(
-              "<%s> cannot contain a nested %s.\nSee this log for the ancestor stack trace.",
-              ancestorTag,
-              tagDisplayName
-            );
-          }));
-      return !1;
-    }
-    function validateTextNesting(childText, parentTag, implicitRootScope) {
-      if (implicitRootScope || isTagValidWithParent("#text", parentTag, !1))
-        return !0;
-      implicitRootScope = "#text|" + parentTag;
-      if (didWarn[implicitRootScope]) return !1;
-      didWarn[implicitRootScope] = !0;
-      var ancestor = (implicitRootScope = current)
-        ? findAncestor(implicitRootScope, parentTag)
-        : null;
-      implicitRootScope =
-        null !== implicitRootScope && null !== ancestor
-          ? describeAncestors(
-              ancestor,
-              implicitRootScope,
-              6 !== implicitRootScope.tag ? { children: null } : null
-            )
-          : "";
-      /\S/.test(childText)
-        ? console.error(
-            "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s",
-            parentTag,
-            implicitRootScope
-          )
-        : console.error(
-            "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s",
-            parentTag,
-            implicitRootScope
-          );
-      return !1;
-    }
-    function setTextContent(node, text) {
-      if (text) {
-        var firstChild = node.firstChild;
-        if (
-          firstChild &&
-          firstChild === node.lastChild &&
-          3 === firstChild.nodeType
-        ) {
-          firstChild.nodeValue = text;
-          return;
-        }
-      }
-      node.textContent = text;
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function setValueForStyle(style, styleName, value) {
-      var isCustomProperty = 0 === styleName.indexOf("--");
-      isCustomProperty ||
-        (-1 < styleName.indexOf("-")
-          ? (warnedStyleNames.hasOwnProperty(styleName) &&
-              warnedStyleNames[styleName]) ||
-            ((warnedStyleNames[styleName] = !0),
-            console.error(
-              "Unsupported style property %s. Did you mean %s?",
-              styleName,
-              camelize(styleName.replace(msPattern, "ms-"))
-            ))
-          : badVendoredStyleNamePattern.test(styleName)
-            ? (warnedStyleNames.hasOwnProperty(styleName) &&
-                warnedStyleNames[styleName]) ||
-              ((warnedStyleNames[styleName] = !0),
-              console.error(
-                "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                styleName,
-                styleName.charAt(0).toUpperCase() + styleName.slice(1)
-              ))
-            : !badStyleValueWithSemicolonPattern.test(value) ||
-              (warnedStyleValues.hasOwnProperty(value) &&
-                warnedStyleValues[value]) ||
-              ((warnedStyleValues[value] = !0),
-              console.error(
-                'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                styleName,
-                value.replace(badStyleValueWithSemicolonPattern, "")
-              )),
-        "number" === typeof value &&
-          (isNaN(value)
-            ? warnedForNaNValue ||
-              ((warnedForNaNValue = !0),
-              console.error(
-                "`NaN` is an invalid value for the `%s` css style property.",
-                styleName
-              ))
-            : isFinite(value) ||
-              warnedForInfinityValue ||
-              ((warnedForInfinityValue = !0),
-              console.error(
-                "`Infinity` is an invalid value for the `%s` css style property.",
-                styleName
-              ))));
-      null == value || "boolean" === typeof value || "" === value
-        ? isCustomProperty
-          ? style.setProperty(styleName, "")
-          : "float" === styleName
-            ? (style.cssFloat = "")
-            : (style[styleName] = "")
-        : isCustomProperty
-          ? style.setProperty(styleName, value)
-          : "number" !== typeof value ||
-              0 === value ||
-              unitlessNumbers.has(styleName)
-            ? "float" === styleName
-              ? (style.cssFloat = value)
-              : (checkCSSPropertyStringCoercion(value, styleName),
-                (style[styleName] = ("" + value).trim()))
-            : (style[styleName] = value + "px");
-    }
-    function setValueForStyles(node, styles, prevStyles) {
-      if (null != styles && "object" !== typeof styles)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      styles && Object.freeze(styles);
-      node = node.style;
-      if (null != prevStyles) {
-        if (styles) {
-          var expandedUpdates = {};
-          if (prevStyles)
-            for (var key in prevStyles)
-              if (prevStyles.hasOwnProperty(key) && !styles.hasOwnProperty(key))
-                for (
-                  var longhands = shorthandToLonghand[key] || [key], i = 0;
-                  i < longhands.length;
-                  i++
-                )
-                  expandedUpdates[longhands[i]] = key;
-          for (var _key in styles)
-            if (
-              styles.hasOwnProperty(_key) &&
-              (!prevStyles || prevStyles[_key] !== styles[_key])
-            )
-              for (
-                key = shorthandToLonghand[_key] || [_key], longhands = 0;
-                longhands < key.length;
-                longhands++
-              )
-                expandedUpdates[key[longhands]] = _key;
-          _key = {};
-          for (var key$jscomp$0 in styles)
-            for (
-              key = shorthandToLonghand[key$jscomp$0] || [key$jscomp$0],
-                longhands = 0;
-              longhands < key.length;
-              longhands++
-            )
-              _key[key[longhands]] = key$jscomp$0;
-          key$jscomp$0 = {};
-          for (var _key2 in expandedUpdates)
-            if (
-              ((key = expandedUpdates[_key2]),
-              (longhands = _key[_key2]) &&
-                key !== longhands &&
-                ((i = key + "," + longhands), !key$jscomp$0[i]))
-            ) {
-              key$jscomp$0[i] = !0;
-              i = console;
-              var value = styles[key];
-              i.error.call(
-                i,
-                "%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.",
-                null == value || "boolean" === typeof value || "" === value
-                  ? "Removing"
-                  : "Updating",
-                key,
-                longhands
-              );
-            }
-        }
-        for (var styleName in prevStyles)
-          !prevStyles.hasOwnProperty(styleName) ||
-            (null != styles && styles.hasOwnProperty(styleName)) ||
-            (0 === styleName.indexOf("--")
-              ? node.setProperty(styleName, "")
-              : "float" === styleName
-                ? (node.cssFloat = "")
-                : (node[styleName] = ""));
-        for (var _styleName in styles)
-          (_key2 = styles[_styleName]),
-            styles.hasOwnProperty(_styleName) &&
-              prevStyles[_styleName] !== _key2 &&
-              setValueForStyle(node, _styleName, _key2);
-      } else
-        for (expandedUpdates in styles)
-          styles.hasOwnProperty(expandedUpdates) &&
-            setValueForStyle(node, expandedUpdates, styles[expandedUpdates]);
-    }
-    function isCustomElement(tagName) {
-      if (-1 === tagName.indexOf("-")) return !1;
-      switch (tagName) {
-        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;
-      }
-    }
-    function getAttributeAlias(name) {
-      return aliases.get(name) || name;
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function noop$1() {}
-    function getEventTarget(nativeEvent) {
-      nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;
-      nativeEvent.correspondingUseElement &&
-        (nativeEvent = nativeEvent.correspondingUseElement);
-      return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;
-    }
-    function restoreStateOfTarget(target) {
-      var internalInstance = getInstanceFromNode(target);
-      if (internalInstance && (target = internalInstance.stateNode)) {
-        var props = target[internalPropsKey] || null;
-        a: switch (
-          ((target = internalInstance.stateNode), internalInstance.type)
-        ) {
-          case "input":
-            updateInput(
-              target,
-              props.value,
-              props.defaultValue,
-              props.defaultValue,
-              props.checked,
-              props.defaultChecked,
-              props.type,
-              props.name
-            );
-            internalInstance = props.name;
-            if ("radio" === props.type && null != internalInstance) {
-              for (props = target; props.parentNode; ) props = props.parentNode;
-              checkAttributeStringCoercion(internalInstance, "name");
-              props = props.querySelectorAll(
-                'input[name="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(
-                    "" + internalInstance
-                  ) +
-                  '"][type="radio"]'
-              );
-              for (
-                internalInstance = 0;
-                internalInstance < props.length;
-                internalInstance++
-              ) {
-                var otherNode = props[internalInstance];
-                if (otherNode !== target && otherNode.form === target.form) {
-                  var otherProps = otherNode[internalPropsKey] || null;
-                  if (!otherProps)
-                    throw Error(
-                      "ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."
-                    );
-                  updateInput(
-                    otherNode,
-                    otherProps.value,
-                    otherProps.defaultValue,
-                    otherProps.defaultValue,
-                    otherProps.checked,
-                    otherProps.defaultChecked,
-                    otherProps.type,
-                    otherProps.name
-                  );
-                }
-              }
-              for (
-                internalInstance = 0;
-                internalInstance < props.length;
-                internalInstance++
-              )
-                (otherNode = props[internalInstance]),
-                  otherNode.form === target.form &&
-                    updateValueIfChanged(otherNode);
-            }
-            break a;
-          case "textarea":
-            updateTextarea(target, props.value, props.defaultValue);
-            break a;
-          case "select":
-            (internalInstance = props.value),
-              null != internalInstance &&
-                updateOptions(target, !!props.multiple, internalInstance, !1);
-        }
-      }
-    }
-    function batchedUpdates$1(fn, a, b) {
-      if (isInsideEventHandler) return fn(a, b);
-      isInsideEventHandler = !0;
-      try {
-        var JSCompiler_inline_result = fn(a);
-        return JSCompiler_inline_result;
-      } finally {
-        if (
-          ((isInsideEventHandler = !1),
-          null !== restoreTarget || null !== restoreQueue)
-        )
-          if (
-            (flushSyncWork$1(),
-            restoreTarget &&
-              ((a = restoreTarget),
-              (fn = restoreQueue),
-              (restoreQueue = restoreTarget = null),
-              restoreStateOfTarget(a),
-              fn))
-          )
-            for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);
-      }
-    }
-    function getListener(inst, registrationName) {
-      var stateNode = inst.stateNode;
-      if (null === stateNode) return null;
-      var props = stateNode[internalPropsKey] || null;
-      if (null === props) return null;
-      stateNode = props[registrationName];
-      a: switch (registrationName) {
-        case "onClick":
-        case "onClickCapture":
-        case "onDoubleClick":
-        case "onDoubleClickCapture":
-        case "onMouseDown":
-        case "onMouseDownCapture":
-        case "onMouseMove":
-        case "onMouseMoveCapture":
-        case "onMouseUp":
-        case "onMouseUpCapture":
-        case "onMouseEnter":
-          (props = !props.disabled) ||
-            ((inst = inst.type),
-            (props = !(
-              "button" === inst ||
-              "input" === inst ||
-              "select" === inst ||
-              "textarea" === inst
-            )));
-          inst = !props;
-          break a;
-        default:
-          inst = !1;
-      }
-      if (inst) return null;
-      if (stateNode && "function" !== typeof stateNode)
-        throw Error(
-          "Expected `" +
-            registrationName +
-            "` listener to be a function, instead got a value of `" +
-            typeof stateNode +
-            "` type."
-        );
-      return stateNode;
-    }
-    function getData() {
-      if (fallbackText) return fallbackText;
-      var start,
-        startValue = startText,
-        startLength = startValue.length,
-        end,
-        endValue = "value" in root ? root.value : root.textContent,
-        endLength = endValue.length;
-      for (
-        start = 0;
-        start < startLength && startValue[start] === endValue[start];
-        start++
-      );
-      var minEnd = startLength - start;
-      for (
-        end = 1;
-        end <= minEnd &&
-        startValue[startLength - end] === endValue[endLength - end];
-        end++
-      );
-      return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));
-    }
-    function getEventCharCode(nativeEvent) {
-      var keyCode = nativeEvent.keyCode;
-      "charCode" in nativeEvent
-        ? ((nativeEvent = nativeEvent.charCode),
-          0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))
-        : (nativeEvent = keyCode);
-      10 === nativeEvent && (nativeEvent = 13);
-      return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;
-    }
-    function functionThatReturnsTrue() {
-      return !0;
-    }
-    function functionThatReturnsFalse() {
-      return !1;
-    }
-    function createSyntheticEvent(Interface) {
-      function SyntheticBaseEvent(
-        reactName,
-        reactEventType,
-        targetInst,
-        nativeEvent,
-        nativeEventTarget
-      ) {
-        this._reactName = reactName;
-        this._targetInst = targetInst;
-        this.type = reactEventType;
-        this.nativeEvent = nativeEvent;
-        this.target = nativeEventTarget;
-        this.currentTarget = null;
-        for (var propName in Interface)
-          Interface.hasOwnProperty(propName) &&
-            ((reactName = Interface[propName]),
-            (this[propName] = reactName
-              ? reactName(nativeEvent)
-              : nativeEvent[propName]));
-        this.isDefaultPrevented = (
-          null != nativeEvent.defaultPrevented
-            ? nativeEvent.defaultPrevented
-            : !1 === nativeEvent.returnValue
-        )
-          ? functionThatReturnsTrue
-          : functionThatReturnsFalse;
-        this.isPropagationStopped = functionThatReturnsFalse;
-        return this;
-      }
-      assign(SyntheticBaseEvent.prototype, {
-        preventDefault: function () {
-          this.defaultPrevented = !0;
-          var event = this.nativeEvent;
-          event &&
-            (event.preventDefault
-              ? event.preventDefault()
-              : "unknown" !== typeof event.returnValue &&
-                (event.returnValue = !1),
-            (this.isDefaultPrevented = functionThatReturnsTrue));
-        },
-        stopPropagation: function () {
-          var event = this.nativeEvent;
-          event &&
-            (event.stopPropagation
-              ? event.stopPropagation()
-              : "unknown" !== typeof event.cancelBubble &&
-                (event.cancelBubble = !0),
-            (this.isPropagationStopped = functionThatReturnsTrue));
-        },
-        persist: function () {},
-        isPersistent: functionThatReturnsTrue
-      });
-      return SyntheticBaseEvent;
-    }
-    function modifierStateGetter(keyArg) {
-      var nativeEvent = this.nativeEvent;
-      return nativeEvent.getModifierState
-        ? nativeEvent.getModifierState(keyArg)
-        : (keyArg = modifierKeyToProp[keyArg])
-          ? !!nativeEvent[keyArg]
-          : !1;
-    }
-    function getEventModifierState() {
-      return modifierStateGetter;
-    }
-    function isFallbackCompositionEnd(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "keyup":
-          return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);
-        case "keydown":
-          return nativeEvent.keyCode !== START_KEYCODE;
-        case "keypress":
-        case "mousedown":
-        case "focusout":
-          return !0;
-        default:
-          return !1;
-      }
-    }
-    function getDataFromCustomEvent(nativeEvent) {
-      nativeEvent = nativeEvent.detail;
-      return "object" === typeof nativeEvent && "data" in nativeEvent
-        ? nativeEvent.data
-        : null;
-    }
-    function getNativeBeforeInputChars(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "compositionend":
-          return getDataFromCustomEvent(nativeEvent);
-        case "keypress":
-          if (nativeEvent.which !== SPACEBAR_CODE) return null;
-          hasSpaceKeypress = !0;
-          return SPACEBAR_CHAR;
-        case "textInput":
-          return (
-            (domEventName = nativeEvent.data),
-            domEventName === SPACEBAR_CHAR && hasSpaceKeypress
-              ? null
-              : domEventName
-          );
-        default:
-          return null;
-      }
-    }
-    function getFallbackBeforeInputChars(domEventName, nativeEvent) {
-      if (isComposing)
-        return "compositionend" === domEventName ||
-          (!canUseCompositionEvent &&
-            isFallbackCompositionEnd(domEventName, nativeEvent))
-          ? ((domEventName = getData()),
-            (fallbackText = startText = root = null),
-            (isComposing = !1),
-            domEventName)
-          : null;
-      switch (domEventName) {
-        case "paste":
-          return null;
-        case "keypress":
-          if (
-            !(
-              nativeEvent.ctrlKey ||
-              nativeEvent.altKey ||
-              nativeEvent.metaKey
-            ) ||
-            (nativeEvent.ctrlKey && nativeEvent.altKey)
-          ) {
-            if (nativeEvent.char && 1 < nativeEvent.char.length)
-              return nativeEvent.char;
-            if (nativeEvent.which)
-              return String.fromCharCode(nativeEvent.which);
-          }
-          return null;
-        case "compositionend":
-          return useFallbackCompositionData && "ko" !== nativeEvent.locale
-            ? null
-            : nativeEvent.data;
-        default:
-          return null;
-      }
-    }
-    function isTextInputElement(elem) {
-      var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-      return "input" === nodeName
-        ? !!supportedInputTypes[elem.type]
-        : "textarea" === nodeName
-          ? !0
-          : !1;
-    }
-    function isEventSupported(eventNameSuffix) {
-      if (!canUseDOM) return !1;
-      eventNameSuffix = "on" + eventNameSuffix;
-      var isSupported = eventNameSuffix in document;
-      isSupported ||
-        ((isSupported = document.createElement("div")),
-        isSupported.setAttribute(eventNameSuffix, "return;"),
-        (isSupported = "function" === typeof isSupported[eventNameSuffix]));
-      return isSupported;
-    }
-    function createAndAccumulateChangeEvent(
-      dispatchQueue,
-      inst,
-      nativeEvent,
-      target
-    ) {
-      restoreTarget
-        ? restoreQueue
-          ? restoreQueue.push(target)
-          : (restoreQueue = [target])
-        : (restoreTarget = target);
-      inst = accumulateTwoPhaseListeners(inst, "onChange");
-      0 < inst.length &&
-        ((nativeEvent = new SyntheticEvent(
-          "onChange",
-          "change",
-          null,
-          nativeEvent,
-          target
-        )),
-        dispatchQueue.push({ event: nativeEvent, listeners: inst }));
-    }
-    function runEventInBatch(dispatchQueue) {
-      processDispatchQueue(dispatchQueue, 0);
-    }
-    function getInstIfValueChanged(targetInst) {
-      var targetNode = getNodeFromInstance(targetInst);
-      if (updateValueIfChanged(targetNode)) return targetInst;
-    }
-    function getTargetInstForChangeEvent(domEventName, targetInst) {
-      if ("change" === domEventName) return targetInst;
-    }
-    function stopWatchingForValueChange() {
-      activeElement$1 &&
-        (activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
-        (activeElementInst$1 = activeElement$1 = null));
-    }
-    function handlePropertyChange(nativeEvent) {
-      if (
-        "value" === nativeEvent.propertyName &&
-        getInstIfValueChanged(activeElementInst$1)
-      ) {
-        var dispatchQueue = [];
-        createAndAccumulateChangeEvent(
-          dispatchQueue,
-          activeElementInst$1,
-          nativeEvent,
-          getEventTarget(nativeEvent)
-        );
-        batchedUpdates$1(runEventInBatch, dispatchQueue);
-      }
-    }
-    function handleEventsForInputEventPolyfill(
-      domEventName,
-      target,
-      targetInst
-    ) {
-      "focusin" === domEventName
-        ? (stopWatchingForValueChange(),
-          (activeElement$1 = target),
-          (activeElementInst$1 = targetInst),
-          activeElement$1.attachEvent("onpropertychange", handlePropertyChange))
-        : "focusout" === domEventName && stopWatchingForValueChange();
-    }
-    function getTargetInstForInputEventPolyfill(domEventName) {
-      if (
-        "selectionchange" === domEventName ||
-        "keyup" === domEventName ||
-        "keydown" === domEventName
-      )
-        return getInstIfValueChanged(activeElementInst$1);
-    }
-    function getTargetInstForClickEvent(domEventName, targetInst) {
-      if ("click" === domEventName) return getInstIfValueChanged(targetInst);
-    }
-    function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {
-      if ("input" === domEventName || "change" === domEventName)
-        return getInstIfValueChanged(targetInst);
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function shallowEqual(objA, objB) {
-      if (objectIs(objA, objB)) return !0;
-      if (
-        "object" !== typeof objA ||
-        null === objA ||
-        "object" !== typeof objB ||
-        null === objB
-      )
-        return !1;
-      var keysA = Object.keys(objA),
-        keysB = Object.keys(objB);
-      if (keysA.length !== keysB.length) return !1;
-      for (keysB = 0; keysB < keysA.length; keysB++) {
-        var currentKey = keysA[keysB];
-        if (
-          !hasOwnProperty.call(objB, currentKey) ||
-          !objectIs(objA[currentKey], objB[currentKey])
-        )
-          return !1;
-      }
-      return !0;
-    }
-    function getLeafNode(node) {
-      for (; node && node.firstChild; ) node = node.firstChild;
-      return node;
-    }
-    function getNodeForCharacterOffset(root, offset) {
-      var node = getLeafNode(root);
-      root = 0;
-      for (var nodeEnd; node; ) {
-        if (3 === node.nodeType) {
-          nodeEnd = root + node.textContent.length;
-          if (root <= offset && nodeEnd >= offset)
-            return { node: node, offset: offset - root };
-          root = nodeEnd;
-        }
-        a: {
-          for (; node; ) {
-            if (node.nextSibling) {
-              node = node.nextSibling;
-              break a;
-            }
-            node = node.parentNode;
-          }
-          node = void 0;
-        }
-        node = getLeafNode(node);
-      }
-    }
-    function containsNode(outerNode, innerNode) {
-      return outerNode && innerNode
-        ? outerNode === innerNode
-          ? !0
-          : outerNode && 3 === outerNode.nodeType
-            ? !1
-            : innerNode && 3 === innerNode.nodeType
-              ? containsNode(outerNode, innerNode.parentNode)
-              : "contains" in outerNode
-                ? outerNode.contains(innerNode)
-                : outerNode.compareDocumentPosition
-                  ? !!(outerNode.compareDocumentPosition(innerNode) & 16)
-                  : !1
-        : !1;
-    }
-    function getActiveElementDeep(containerInfo) {
-      containerInfo =
-        null != containerInfo &&
-        null != containerInfo.ownerDocument &&
-        null != containerInfo.ownerDocument.defaultView
-          ? containerInfo.ownerDocument.defaultView
-          : window;
-      for (
-        var element = getActiveElement(containerInfo.document);
-        element instanceof containerInfo.HTMLIFrameElement;
-
-      ) {
-        try {
-          var JSCompiler_inline_result =
-            "string" === typeof element.contentWindow.location.href;
-        } catch (err) {
-          JSCompiler_inline_result = !1;
-        }
-        if (JSCompiler_inline_result) containerInfo = element.contentWindow;
-        else break;
-        element = getActiveElement(containerInfo.document);
-      }
-      return element;
-    }
-    function hasSelectionCapabilities(elem) {
-      var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-      return (
-        nodeName &&
-        (("input" === nodeName &&
-          ("text" === elem.type ||
-            "search" === elem.type ||
-            "tel" === elem.type ||
-            "url" === elem.type ||
-            "password" === elem.type)) ||
-          "textarea" === nodeName ||
-          "true" === elem.contentEditable)
-      );
-    }
-    function constructSelectEvent(
-      dispatchQueue,
-      nativeEvent,
-      nativeEventTarget
-    ) {
-      var doc =
-        nativeEventTarget.window === nativeEventTarget
-          ? nativeEventTarget.document
-          : 9 === nativeEventTarget.nodeType
-            ? nativeEventTarget
-            : nativeEventTarget.ownerDocument;
-      mouseDown ||
-        null == activeElement ||
-        activeElement !== getActiveElement(doc) ||
-        ((doc = activeElement),
-        "selectionStart" in doc && hasSelectionCapabilities(doc)
-          ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })
-          : ((doc = (
-              (doc.ownerDocument && doc.ownerDocument.defaultView) ||
-              window
-            ).getSelection()),
-            (doc = {
-              anchorNode: doc.anchorNode,
-              anchorOffset: doc.anchorOffset,
-              focusNode: doc.focusNode,
-              focusOffset: doc.focusOffset
-            })),
-        (lastSelection && shallowEqual(lastSelection, doc)) ||
-          ((lastSelection = doc),
-          (doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect")),
-          0 < doc.length &&
-            ((nativeEvent = new SyntheticEvent(
-              "onSelect",
-              "select",
-              null,
-              nativeEvent,
-              nativeEventTarget
-            )),
-            dispatchQueue.push({ event: nativeEvent, listeners: doc }),
-            (nativeEvent.target = activeElement))));
-    }
-    function makePrefixMap(styleProp, eventName) {
-      var prefixes = {};
-      prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
-      prefixes["Webkit" + styleProp] = "webkit" + eventName;
-      prefixes["Moz" + styleProp] = "moz" + eventName;
-      return prefixes;
-    }
-    function getVendorPrefixedEventName(eventName) {
-      if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];
-      if (!vendorPrefixes[eventName]) return eventName;
-      var prefixMap = vendorPrefixes[eventName],
-        styleProp;
-      for (styleProp in prefixMap)
-        if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)
-          return (prefixedEventNames[eventName] = prefixMap[styleProp]);
-      return eventName;
-    }
-    function registerSimpleEvent(domEventName, reactName) {
-      topLevelEventsToReactNames.set(domEventName, reactName);
-      registerTwoPhaseEvent(reactName, [domEventName]);
-    }
-    function getArrayKind(array) {
-      for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) {
-        var value = array[i];
-        if ("object" === typeof value && null !== value)
-          if (
-            isArrayImpl(value) &&
-            2 === value.length &&
-            "string" === typeof value[0]
-          ) {
-            if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY)
-              return COMPLEX_ARRAY;
-            kind = ENTRIES_ARRAY;
-          } else return COMPLEX_ARRAY;
-        else {
-          if (
-            "function" === typeof value ||
-            ("string" === typeof value && 50 < value.length) ||
-            (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY)
-          )
-            return COMPLEX_ARRAY;
-          kind = PRIMITIVE_ARRAY;
-        }
-      }
-      return kind;
-    }
-    function addObjectToProperties(object, properties, indent, prefix) {
-      for (var key in object)
-        hasOwnProperty.call(object, key) &&
-          "_" !== key[0] &&
-          addValueToProperties(key, object[key], properties, indent, prefix);
-    }
-    function addValueToProperties(
-      propertyName,
-      value,
-      properties,
-      indent,
-      prefix
-    ) {
-      switch (typeof value) {
-        case "object":
-          if (null === value) {
-            value = "null";
-            break;
-          } else {
-            if (value.$$typeof === REACT_ELEMENT_TYPE) {
-              var typeName = getComponentNameFromType(value.type) || "\u2026",
-                key = value.key;
-              value = value.props;
-              var propsKeys = Object.keys(value),
-                propsLength = propsKeys.length;
-              if (null == key && 0 === propsLength) {
-                value = "<" + typeName + " />";
-                break;
-              }
-              if (
-                3 > indent ||
-                (1 === propsLength &&
-                  "children" === propsKeys[0] &&
-                  null == key)
-              ) {
-                value = "<" + typeName + " \u2026 />";
-                break;
-              }
-              properties.push([
-                prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-                "<" + typeName
-              ]);
-              null !== key &&
-                addValueToProperties(
-                  "key",
-                  key,
-                  properties,
-                  indent + 1,
-                  prefix
-                );
-              propertyName = !1;
-              for (var propKey in value)
-                "children" === propKey
-                  ? null != value.children &&
-                    (!isArrayImpl(value.children) ||
-                      0 < value.children.length) &&
-                    (propertyName = !0)
-                  : hasOwnProperty.call(value, propKey) &&
-                    "_" !== propKey[0] &&
-                    addValueToProperties(
-                      propKey,
-                      value[propKey],
-                      properties,
-                      indent + 1,
-                      prefix
-                    );
-              properties.push([
-                "",
-                propertyName ? ">\u2026</" + typeName + ">" : "/>"
-              ]);
-              return;
-            }
-            typeName = Object.prototype.toString.call(value);
-            typeName = typeName.slice(8, typeName.length - 1);
-            if ("Array" === typeName)
-              if (
-                ((propKey = getArrayKind(value)),
-                propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY)
-              ) {
-                value = JSON.stringify(value);
-                break;
-              } else if (propKey === ENTRIES_ARRAY) {
-                properties.push([
-                  prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-                  ""
-                ]);
-                for (
-                  propertyName = 0;
-                  propertyName < value.length;
-                  propertyName++
-                )
-                  (typeName = value[propertyName]),
-                    addValueToProperties(
-                      typeName[0],
-                      typeName[1],
-                      properties,
-                      indent + 1,
-                      prefix
-                    );
-                return;
-              }
-            if ("Promise" === typeName) {
-              if ("fulfilled" === value.status) {
-                if (
-                  ((typeName = properties.length),
-                  addValueToProperties(
-                    propertyName,
-                    value.value,
-                    properties,
-                    indent,
-                    prefix
-                  ),
-                  properties.length > typeName)
-                ) {
-                  properties = properties[typeName];
-                  properties[1] =
-                    "Promise<" + (properties[1] || "Object") + ">";
-                  return;
-                }
-              } else if (
-                "rejected" === value.status &&
-                ((typeName = properties.length),
-                addValueToProperties(
-                  propertyName,
-                  value.reason,
-                  properties,
-                  indent,
-                  prefix
-                ),
-                properties.length > typeName)
-              ) {
-                properties = properties[typeName];
-                properties[1] = "Rejected Promise<" + properties[1] + ">";
-                return;
-              }
-              properties.push([
-                "\u00a0\u00a0".repeat(indent) + propertyName,
-                "Promise"
-              ]);
-              return;
-            }
-            "Object" === typeName &&
-              (propKey = Object.getPrototypeOf(value)) &&
-              "function" === typeof propKey.constructor &&
-              (typeName = propKey.constructor.name);
-            properties.push([
-              prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-              "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName
-            ]);
-            3 > indent &&
-              addObjectToProperties(value, properties, indent + 1, prefix);
-            return;
-          }
-        case "function":
-          value = "" === value.name ? "() => {}" : value.name + "() {}";
-          break;
-        case "string":
-          value =
-            value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value);
-          break;
-        case "undefined":
-          value = "undefined";
-          break;
-        case "boolean":
-          value = value ? "true" : "false";
-          break;
-        default:
-          value = String(value);
-      }
-      properties.push([
-        prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-        value
-      ]);
-    }
-    function addObjectDiffToProperties(prev, next, properties, indent) {
-      var isDeeplyEqual = !0;
-      for (key in prev)
-        key in next ||
-          (properties.push([
-            REMOVED + "\u00a0\u00a0".repeat(indent) + key,
-            "\u2026"
-          ]),
-          (isDeeplyEqual = !1));
-      for (var _key in next)
-        if (_key in prev) {
-          var key = prev[_key];
-          var nextValue = next[_key];
-          if (key !== nextValue) {
-            if (0 === indent && "children" === _key)
-              (isDeeplyEqual = "\u00a0\u00a0".repeat(indent) + _key),
-                properties.push(
-                  [REMOVED + isDeeplyEqual, "\u2026"],
-                  [ADDED + isDeeplyEqual, "\u2026"]
-                );
-            else {
-              if (!(3 <= indent))
-                if (
-                  "object" === typeof key &&
-                  "object" === typeof nextValue &&
-                  null !== key &&
-                  null !== nextValue &&
-                  key.$$typeof === nextValue.$$typeof
-                )
-                  if (nextValue.$$typeof === REACT_ELEMENT_TYPE) {
-                    if (
-                      key.type === nextValue.type &&
-                      key.key === nextValue.key
-                    ) {
-                      key =
-                        getComponentNameFromType(nextValue.type) || "\u2026";
-                      isDeeplyEqual = "\u00a0\u00a0".repeat(indent) + _key;
-                      key = "<" + key + " \u2026 />";
-                      properties.push(
-                        [REMOVED + isDeeplyEqual, key],
-                        [ADDED + isDeeplyEqual, key]
-                      );
-                      isDeeplyEqual = !1;
-                      continue;
-                    }
-                  } else {
-                    var prevKind = Object.prototype.toString.call(key),
-                      nextKind = Object.prototype.toString.call(nextValue);
-                    if (
-                      prevKind === nextKind &&
-                      ("[object Object]" === nextKind ||
-                        "[object Array]" === nextKind)
-                    ) {
-                      prevKind = [
-                        UNCHANGED + "\u00a0\u00a0".repeat(indent) + _key,
-                        "[object Array]" === nextKind ? "Array" : ""
-                      ];
-                      properties.push(prevKind);
-                      nextKind = properties.length;
-                      addObjectDiffToProperties(
-                        key,
-                        nextValue,
-                        properties,
-                        indent + 1
-                      )
-                        ? nextKind === properties.length &&
-                          (prevKind[1] =
-                            "Referentially unequal but deeply equal objects. Consider memoization.")
-                        : (isDeeplyEqual = !1);
-                      continue;
-                    }
-                  }
-                else if (
-                  "function" === typeof key &&
-                  "function" === typeof nextValue &&
-                  key.name === nextValue.name &&
-                  key.length === nextValue.length &&
-                  ((prevKind = Function.prototype.toString.call(key)),
-                  (nextKind = Function.prototype.toString.call(nextValue)),
-                  prevKind === nextKind)
-                ) {
-                  key =
-                    "" === nextValue.name
-                      ? "() => {}"
-                      : nextValue.name + "() {}";
-                  properties.push([
-                    UNCHANGED + "\u00a0\u00a0".repeat(indent) + _key,
-                    key +
-                      " Referentially unequal function closure. Consider memoization."
-                  ]);
-                  continue;
-                }
-              addValueToProperties(_key, key, properties, indent, REMOVED);
-              addValueToProperties(_key, nextValue, properties, indent, ADDED);
-            }
-            isDeeplyEqual = !1;
-          }
-        } else
-          properties.push([
-            ADDED + "\u00a0\u00a0".repeat(indent) + _key,
-            "\u2026"
-          ]),
-            (isDeeplyEqual = !1);
-      return isDeeplyEqual;
-    }
-    function setCurrentTrackFromLanes(lanes) {
-      currentTrack =
-        lanes & 63
-          ? "Blocking"
-          : lanes & 64
-            ? "Gesture"
-            : lanes & 4194176
-              ? "Transition"
-              : lanes & 62914560
-                ? "Suspense"
-                : lanes & 2080374784
-                  ? "Idle"
-                  : "Other";
-    }
-    function logComponentTrigger(fiber, startTime, endTime, trigger) {
-      supportsUserTiming &&
-        ((reusableComponentOptions.start = startTime),
-        (reusableComponentOptions.end = endTime),
-        (reusableComponentDevToolDetails.color = "warning"),
-        (reusableComponentDevToolDetails.tooltipText = trigger),
-        (reusableComponentDevToolDetails.properties = null),
-        (fiber = fiber._debugTask)
-          ? fiber.run(
-              performance.measure.bind(
-                performance,
-                trigger,
-                reusableComponentOptions
-              )
-            )
-          : performance.measure(trigger, reusableComponentOptions));
-    }
-    function logComponentReappeared(fiber, startTime, endTime) {
-      logComponentTrigger(fiber, startTime, endTime, "Reconnect");
-    }
-    function logComponentRender(
-      fiber,
-      startTime,
-      endTime,
-      wasHydrated,
-      committedLanes
-    ) {
-      var name = getComponentNameFromFiber(fiber);
-      if (null !== name && supportsUserTiming) {
-        var alternate = fiber.alternate,
-          selfTime = fiber.actualDuration;
-        if (null === alternate || alternate.child !== fiber.child)
-          for (var child = fiber.child; null !== child; child = child.sibling)
-            selfTime -= child.actualDuration;
-        wasHydrated =
-          0.5 > selfTime
-            ? wasHydrated
-              ? "tertiary-light"
-              : "primary-light"
-            : 10 > selfTime
-              ? wasHydrated
-                ? "tertiary"
-                : "primary"
-              : 100 > selfTime
-                ? wasHydrated
-                  ? "tertiary-dark"
-                  : "primary-dark"
-                : "error";
-        var props = fiber.memoizedProps;
-        selfTime = fiber._debugTask;
-        null !== props &&
-        null !== alternate &&
-        alternate.memoizedProps !== props
-          ? ((child = [resuableChangedPropsEntry]),
-            (props = addObjectDiffToProperties(
-              alternate.memoizedProps,
-              props,
-              child,
-              0
-            )),
-            1 < child.length &&
-              (props &&
-              !alreadyWarnedForDeepEquality &&
-              0 === (alternate.lanes & committedLanes) &&
-              100 < fiber.actualDuration
-                ? ((alreadyWarnedForDeepEquality = !0),
-                  (child[0] = reusableDeeplyEqualPropsEntry),
-                  (reusableComponentDevToolDetails.color = "warning"),
-                  (reusableComponentDevToolDetails.tooltipText =
-                    DEEP_EQUALITY_WARNING))
-                : ((reusableComponentDevToolDetails.color = wasHydrated),
-                  (reusableComponentDevToolDetails.tooltipText = name)),
-              (reusableComponentDevToolDetails.properties = child),
-              (reusableComponentOptions.start = startTime),
-              (reusableComponentOptions.end = endTime),
-              null != selfTime
-                ? selfTime.run(
-                    performance.measure.bind(
-                      performance,
-                      "\u200b" + name,
-                      reusableComponentOptions
-                    )
-                  )
-                : performance.measure(
-                    "\u200b" + name,
-                    reusableComponentOptions
-                  )))
-          : null != selfTime
-            ? selfTime.run(
-                console.timeStamp.bind(
-                  console,
-                  name,
-                  startTime,
-                  endTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  wasHydrated
-                )
-              )
-            : console.timeStamp(
-                name,
-                startTime,
-                endTime,
-                COMPONENTS_TRACK,
-                void 0,
-                wasHydrated
-              );
-      }
-    }
-    function logComponentErrored(fiber, startTime, endTime, errors) {
-      if (supportsUserTiming) {
-        var name = getComponentNameFromFiber(fiber);
-        if (null !== name) {
-          for (
-            var debugTask = null, properties = [], i = 0;
-            i < errors.length;
-            i++
-          ) {
-            var capturedValue = errors[i];
-            null == debugTask &&
-              null !== capturedValue.source &&
-              (debugTask = capturedValue.source._debugTask);
-            capturedValue = capturedValue.value;
-            properties.push([
-              "Error",
-              "object" === typeof capturedValue &&
-              null !== capturedValue &&
-              "string" === typeof capturedValue.message
-                ? String(capturedValue.message)
-                : String(capturedValue)
-            ]);
-          }
-          null !== fiber.key &&
-            addValueToProperties("key", fiber.key, properties, 0, "");
-          null !== fiber.memoizedProps &&
-            addObjectToProperties(fiber.memoizedProps, properties, 0, "");
-          null == debugTask && (debugTask = fiber._debugTask);
-          fiber = {
-            start: startTime,
-            end: endTime,
-            detail: {
-              devtools: {
-                color: "error",
-                track: COMPONENTS_TRACK,
-                tooltipText:
-                  13 === fiber.tag
-                    ? "Hydration failed"
-                    : "Error boundary caught an error",
-                properties: properties
-              }
-            }
-          };
-          debugTask
-            ? debugTask.run(
-                performance.measure.bind(performance, "\u200b" + name, fiber)
-              )
-            : performance.measure("\u200b" + name, fiber);
-        }
-      }
-    }
-    function logComponentEffect(fiber, startTime, endTime, selfTime, errors) {
-      if (null !== errors) {
-        if (supportsUserTiming) {
-          var name = getComponentNameFromFiber(fiber);
-          if (null !== name) {
-            selfTime = [];
-            for (var i = 0; i < errors.length; i++) {
-              var error = errors[i].value;
-              selfTime.push([
-                "Error",
-                "object" === typeof error &&
-                null !== error &&
-                "string" === typeof error.message
-                  ? String(error.message)
-                  : String(error)
-              ]);
-            }
-            null !== fiber.key &&
-              addValueToProperties("key", fiber.key, selfTime, 0, "");
-            null !== fiber.memoizedProps &&
-              addObjectToProperties(fiber.memoizedProps, selfTime, 0, "");
-            startTime = {
-              start: startTime,
-              end: endTime,
-              detail: {
-                devtools: {
-                  color: "error",
-                  track: COMPONENTS_TRACK,
-                  tooltipText: "A lifecycle or effect errored",
-                  properties: selfTime
-                }
-              }
-            };
-            (fiber = fiber._debugTask)
-              ? fiber.run(
-                  performance.measure.bind(
-                    performance,
-                    "\u200b" + name,
-                    startTime
-                  )
-                )
-              : performance.measure("\u200b" + name, startTime);
-          }
-        }
-      } else
-        (name = getComponentNameFromFiber(fiber)),
-          null !== name &&
-            supportsUserTiming &&
-            ((errors =
-              1 > selfTime
-                ? "secondary-light"
-                : 100 > selfTime
-                  ? "secondary"
-                  : 500 > selfTime
-                    ? "secondary-dark"
-                    : "error"),
-            (fiber = fiber._debugTask)
-              ? fiber.run(
-                  console.timeStamp.bind(
-                    console,
-                    name,
-                    startTime,
-                    endTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    errors
-                  )
-                )
-              : console.timeStamp(
-                  name,
-                  startTime,
-                  endTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  errors
-                ));
-    }
-    function logRenderPhase(startTime, endTime, lanes, debugTask) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        var color =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark";
-        lanes =
-          (lanes & 536870912) === lanes
-            ? "Prepared"
-            : (lanes & 201326741) === lanes
-              ? "Hydrated"
-              : "Render";
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                lanes,
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                color
-              )
-            )
-          : console.timeStamp(
-              lanes,
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              color
-            );
-      }
-    }
-    function logSuspendedRenderPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        ((lanes =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"),
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Prewarm",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                lanes
-              )
-            )
-          : console.timeStamp(
-              "Prewarm",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              lanes
-            ));
-    }
-    function logSuspendedWithDelayPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        ((lanes =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"),
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Suspended",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                lanes
-              )
-            )
-          : console.timeStamp(
-              "Suspended",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              lanes
-            ));
-    }
-    function logRecoveredRenderPhase(
-      startTime,
-      endTime,
-      lanes,
-      recoverableErrors,
-      hydrationFailed,
-      debugTask
-    ) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        lanes = [];
-        for (var i = 0; i < recoverableErrors.length; i++) {
-          var error = recoverableErrors[i].value;
-          lanes.push([
-            "Recoverable Error",
-            "object" === typeof error &&
-            null !== error &&
-            "string" === typeof error.message
-              ? String(error.message)
-              : String(error)
-          ]);
-        }
-        startTime = {
-          start: startTime,
-          end: endTime,
-          detail: {
-            devtools: {
-              color: "primary-dark",
-              track: currentTrack,
-              trackGroup: LANES_TRACK_GROUP,
-              tooltipText: hydrationFailed
-                ? "Hydration Failed"
-                : "Recovered after Error",
-              properties: lanes
-            }
-          }
-        };
-        debugTask
-          ? debugTask.run(
-              performance.measure.bind(performance, "Recovered", startTime)
-            )
-          : performance.measure("Recovered", startTime);
-      }
-    }
-    function logErroredRenderPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Errored",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "error"
-              )
-            )
-          : console.timeStamp(
-              "Errored",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "error"
-            ));
-    }
-    function logSuspendedCommitPhase(startTime, endTime, reason, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                reason,
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "secondary-light"
-              )
-            )
-          : console.timeStamp(
-              reason,
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "secondary-light"
-            ));
-    }
-    function logCommitErrored(startTime, endTime, errors, passive, debugTask) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        for (var properties = [], i = 0; i < errors.length; i++) {
-          var error = errors[i].value;
-          properties.push([
-            "Error",
-            "object" === typeof error &&
-            null !== error &&
-            "string" === typeof error.message
-              ? String(error.message)
-              : String(error)
-          ]);
-        }
-        startTime = {
-          start: startTime,
-          end: endTime,
-          detail: {
-            devtools: {
-              color: "error",
-              track: currentTrack,
-              trackGroup: LANES_TRACK_GROUP,
-              tooltipText: passive
-                ? "Remaining Effects Errored"
-                : "Commit Errored",
-              properties: properties
-            }
-          }
-        };
-        debugTask
-          ? debugTask.run(
-              performance.measure.bind(performance, "Errored", startTime)
-            )
-          : performance.measure("Errored", startTime);
-      }
-    }
-    function logAnimatingPhase(startTime, endTime, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Animating",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "secondary-dark"
-              )
-            )
-          : console.timeStamp(
-              "Animating",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "secondary-dark"
-            ));
-    }
-    function finishQueueingConcurrentUpdates() {
-      for (
-        var endIndex = concurrentQueuesIndex,
-          i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);
-        i < endIndex;
-
-      ) {
-        var fiber = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var queue = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var update = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var lane = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        if (null !== queue && null !== update) {
-          var pending = queue.pending;
-          null === pending
-            ? (update.next = update)
-            : ((update.next = pending.next), (pending.next = update));
-          queue.pending = update;
-        }
-        0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);
-      }
-    }
-    function enqueueUpdate$1(fiber, queue, update, lane) {
-      concurrentQueues[concurrentQueuesIndex++] = fiber;
-      concurrentQueues[concurrentQueuesIndex++] = queue;
-      concurrentQueues[concurrentQueuesIndex++] = update;
-      concurrentQueues[concurrentQueuesIndex++] = lane;
-      concurrentlyUpdatedLanes |= lane;
-      fiber.lanes |= lane;
-      fiber = fiber.alternate;
-      null !== fiber && (fiber.lanes |= lane);
-    }
-    function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {
-      enqueueUpdate$1(fiber, queue, update, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function enqueueConcurrentRenderForLane(fiber, lane) {
-      enqueueUpdate$1(fiber, null, null, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {
-      sourceFiber.lanes |= lane;
-      var alternate = sourceFiber.alternate;
-      null !== alternate && (alternate.lanes |= lane);
-      for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )
-        (parent.childLanes |= lane),
-          (alternate = parent.alternate),
-          null !== alternate && (alternate.childLanes |= lane),
-          22 === parent.tag &&
-            ((sourceFiber = parent.stateNode),
-            null === sourceFiber ||
-              sourceFiber._visibility & OffscreenVisible ||
-              (isHidden = !0)),
-          (sourceFiber = parent),
-          (parent = parent.return);
-      return 3 === sourceFiber.tag
-        ? ((parent = sourceFiber.stateNode),
-          isHidden &&
-            null !== update &&
-            ((isHidden = 31 - clz32(lane)),
-            (sourceFiber = parent.hiddenUpdates),
-            (alternate = sourceFiber[isHidden]),
-            null === alternate
-              ? (sourceFiber[isHidden] = [update])
-              : alternate.push(update),
-            (update.lane = lane | 536870912)),
-          parent)
-        : null;
-    }
-    function getRootForUpdatedFiber(sourceFiber) {
-      if (nestedUpdateCount > NESTED_UPDATE_LIMIT)
-        throw (
-          ((nestedPassiveUpdateCount = nestedUpdateCount = 0),
-          (rootWithPassiveNestedUpdates = rootWithNestedUpdates = null),
-          Error(
-            "Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops."
-          ))
-        );
-      nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT &&
-        ((nestedPassiveUpdateCount = 0),
-        (rootWithPassiveNestedUpdates = null),
-        console.error(
-          "Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."
-        ));
-      null === sourceFiber.alternate &&
-        0 !== (sourceFiber.flags & 4098) &&
-        warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);
-      for (var node = sourceFiber, parent = node.return; null !== parent; )
-        null === node.alternate &&
-          0 !== (node.flags & 4098) &&
-          warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber),
-          (node = parent),
-          (parent = node.return);
-      return 3 === node.tag ? node.stateNode : null;
-    }
-    function resolveFunctionForHotReloading(type) {
-      if (null === resolveFamily) return type;
-      var family = resolveFamily(type);
-      return void 0 === family ? type : family.current;
-    }
-    function resolveForwardRefForHotReloading(type) {
-      if (null === resolveFamily) return type;
-      var family = resolveFamily(type);
-      return void 0 === family
-        ? null !== type &&
-          void 0 !== type &&
-          "function" === typeof type.render &&
-          ((family = resolveFunctionForHotReloading(type.render)),
-          type.render !== family)
-          ? ((family = { $$typeof: REACT_FORWARD_REF_TYPE, render: family }),
-            void 0 !== type.displayName &&
-              (family.displayName = type.displayName),
-            family)
-          : type
-        : family.current;
-    }
-    function isCompatibleFamilyForHotReloading(fiber, element) {
-      if (null === resolveFamily) return !1;
-      var prevType = fiber.elementType;
-      element = element.type;
-      var needsCompareFamilies = !1,
-        $$typeofNextType =
-          "object" === typeof element && null !== element
-            ? element.$$typeof
-            : null;
-      switch (fiber.tag) {
-        case 1:
-          "function" === typeof element && (needsCompareFamilies = !0);
-          break;
-        case 0:
-          "function" === typeof element
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        case 11:
-          $$typeofNextType === REACT_FORWARD_REF_TYPE
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        case 14:
-        case 15:
-          $$typeofNextType === REACT_MEMO_TYPE
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        default:
-          return !1;
-      }
-      return needsCompareFamilies &&
-        ((fiber = resolveFamily(prevType)),
-        void 0 !== fiber && fiber === resolveFamily(element))
-        ? !0
-        : !1;
-    }
-    function markFailedErrorBoundaryForHotReloading(fiber) {
-      null !== resolveFamily &&
-        "function" === typeof WeakSet &&
-        (null === failedBoundaries && (failedBoundaries = new WeakSet()),
-        failedBoundaries.add(fiber));
-    }
-    function scheduleFibersWithFamiliesRecursively(
-      fiber,
-      updatedFamilies,
-      staleFamilies
-    ) {
-      do {
-        var _fiber = fiber,
-          alternate = _fiber.alternate,
-          child = _fiber.child,
-          sibling = _fiber.sibling,
-          tag = _fiber.tag;
-        _fiber = _fiber.type;
-        var candidateType = null;
-        switch (tag) {
-          case 0:
-          case 15:
-          case 1:
-            candidateType = _fiber;
-            break;
-          case 11:
-            candidateType = _fiber.render;
-        }
-        if (null === resolveFamily)
-          throw Error("Expected resolveFamily to be set during hot reload.");
-        var needsRender = !1;
-        _fiber = !1;
-        null !== candidateType &&
-          ((candidateType = resolveFamily(candidateType)),
-          void 0 !== candidateType &&
-            (staleFamilies.has(candidateType)
-              ? (_fiber = !0)
-              : updatedFamilies.has(candidateType) &&
-                (1 === tag ? (_fiber = !0) : (needsRender = !0))));
-        null !== failedBoundaries &&
-          (failedBoundaries.has(fiber) ||
-            (null !== alternate && failedBoundaries.has(alternate))) &&
-          (_fiber = !0);
-        _fiber && (fiber._debugNeedsRemount = !0);
-        if (_fiber || needsRender)
-          (alternate = enqueueConcurrentRenderForLane(fiber, 2)),
-            null !== alternate && scheduleUpdateOnFiber(alternate, fiber, 2);
-        null === child ||
-          _fiber ||
-          scheduleFibersWithFamiliesRecursively(
-            child,
-            updatedFamilies,
-            staleFamilies
-          );
-        if (null === sibling) break;
-        fiber = sibling;
-      } while (1);
-    }
-    function FiberNode(tag, pendingProps, key, mode) {
-      this.tag = tag;
-      this.key = key;
-      this.sibling =
-        this.child =
-        this.return =
-        this.stateNode =
-        this.type =
-        this.elementType =
-          null;
-      this.index = 0;
-      this.refCleanup = this.ref = null;
-      this.pendingProps = pendingProps;
-      this.dependencies =
-        this.memoizedState =
-        this.updateQueue =
-        this.memoizedProps =
-          null;
-      this.mode = mode;
-      this.subtreeFlags = this.flags = 0;
-      this.deletions = null;
-      this.childLanes = this.lanes = 0;
-      this.alternate = null;
-      this.actualDuration = -0;
-      this.actualStartTime = -1.1;
-      this.treeBaseDuration = this.selfBaseDuration = -0;
-      this._debugTask =
-        this._debugStack =
-        this._debugOwner =
-        this._debugInfo =
-          null;
-      this._debugNeedsRemount = !1;
-      this._debugHookTypes = null;
-      hasBadMapPolyfill ||
-        "function" !== typeof Object.preventExtensions ||
-        Object.preventExtensions(this);
-    }
-    function shouldConstruct(Component) {
-      Component = Component.prototype;
-      return !(!Component || !Component.isReactComponent);
-    }
-    function createWorkInProgress(current, pendingProps) {
-      var workInProgress = current.alternate;
-      null === workInProgress
-        ? ((workInProgress = createFiber(
-            current.tag,
-            pendingProps,
-            current.key,
-            current.mode
-          )),
-          (workInProgress.elementType = current.elementType),
-          (workInProgress.type = current.type),
-          (workInProgress.stateNode = current.stateNode),
-          (workInProgress._debugOwner = current._debugOwner),
-          (workInProgress._debugStack = current._debugStack),
-          (workInProgress._debugTask = current._debugTask),
-          (workInProgress._debugHookTypes = current._debugHookTypes),
-          (workInProgress.alternate = current),
-          (current.alternate = workInProgress))
-        : ((workInProgress.pendingProps = pendingProps),
-          (workInProgress.type = current.type),
-          (workInProgress.flags = 0),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.deletions = null),
-          (workInProgress.actualDuration = -0),
-          (workInProgress.actualStartTime = -1.1));
-      workInProgress.flags = current.flags & 65011712;
-      workInProgress.childLanes = current.childLanes;
-      workInProgress.lanes = current.lanes;
-      workInProgress.child = current.child;
-      workInProgress.memoizedProps = current.memoizedProps;
-      workInProgress.memoizedState = current.memoizedState;
-      workInProgress.updateQueue = current.updateQueue;
-      pendingProps = current.dependencies;
-      workInProgress.dependencies =
-        null === pendingProps
-          ? null
-          : {
-              lanes: pendingProps.lanes,
-              firstContext: pendingProps.firstContext,
-              _debugThenableState: pendingProps._debugThenableState
-            };
-      workInProgress.sibling = current.sibling;
-      workInProgress.index = current.index;
-      workInProgress.ref = current.ref;
-      workInProgress.refCleanup = current.refCleanup;
-      workInProgress.selfBaseDuration = current.selfBaseDuration;
-      workInProgress.treeBaseDuration = current.treeBaseDuration;
-      workInProgress._debugInfo = current._debugInfo;
-      workInProgress._debugNeedsRemount = current._debugNeedsRemount;
-      switch (workInProgress.tag) {
-        case 0:
-        case 15:
-          workInProgress.type = resolveFunctionForHotReloading(current.type);
-          break;
-        case 1:
-          workInProgress.type = resolveFunctionForHotReloading(current.type);
-          break;
-        case 11:
-          workInProgress.type = resolveForwardRefForHotReloading(current.type);
-      }
-      return workInProgress;
-    }
-    function resetWorkInProgress(workInProgress, renderLanes) {
-      workInProgress.flags &= 65011714;
-      var current = workInProgress.alternate;
-      null === current
-        ? ((workInProgress.childLanes = 0),
-          (workInProgress.lanes = renderLanes),
-          (workInProgress.child = null),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.memoizedProps = null),
-          (workInProgress.memoizedState = null),
-          (workInProgress.updateQueue = null),
-          (workInProgress.dependencies = null),
-          (workInProgress.stateNode = null),
-          (workInProgress.selfBaseDuration = 0),
-          (workInProgress.treeBaseDuration = 0))
-        : ((workInProgress.childLanes = current.childLanes),
-          (workInProgress.lanes = current.lanes),
-          (workInProgress.child = current.child),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.deletions = null),
-          (workInProgress.memoizedProps = current.memoizedProps),
-          (workInProgress.memoizedState = current.memoizedState),
-          (workInProgress.updateQueue = current.updateQueue),
-          (workInProgress.type = current.type),
-          (renderLanes = current.dependencies),
-          (workInProgress.dependencies =
-            null === renderLanes
-              ? null
-              : {
-                  lanes: renderLanes.lanes,
-                  firstContext: renderLanes.firstContext,
-                  _debugThenableState: renderLanes._debugThenableState
-                }),
-          (workInProgress.selfBaseDuration = current.selfBaseDuration),
-          (workInProgress.treeBaseDuration = current.treeBaseDuration));
-      return workInProgress;
-    }
-    function createFiberFromTypeAndProps(
-      type,
-      key,
-      pendingProps,
-      owner,
-      mode,
-      lanes
-    ) {
-      var fiberTag = 0,
-        resolvedType = type;
-      if ("function" === typeof type)
-        shouldConstruct(type) && (fiberTag = 1),
-          (resolvedType = resolveFunctionForHotReloading(resolvedType));
-      else if ("string" === typeof type)
-        (fiberTag = getHostContext()),
-          (fiberTag = isHostHoistableType(type, pendingProps, fiberTag)
-            ? 26
-            : "html" === type || "head" === type || "body" === type
-              ? 27
-              : 5);
-      else
-        a: switch (type) {
-          case REACT_ACTIVITY_TYPE:
-            return (
-              (key = createFiber(31, pendingProps, key, mode)),
-              (key.elementType = REACT_ACTIVITY_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          case REACT_FRAGMENT_TYPE:
-            return createFiberFromFragment(
-              pendingProps.children,
-              mode,
-              lanes,
-              key
-            );
-          case REACT_STRICT_MODE_TYPE:
-            fiberTag = 8;
-            mode |= StrictLegacyMode;
-            mode |= StrictEffectsMode;
-            break;
-          case REACT_PROFILER_TYPE:
-            return (
-              (type = pendingProps),
-              (owner = mode),
-              "string" !== typeof type.id &&
-                console.error(
-                  'Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.',
-                  typeof type.id
-                ),
-              (key = createFiber(12, type, key, owner | ProfileMode)),
-              (key.elementType = REACT_PROFILER_TYPE),
-              (key.lanes = lanes),
-              (key.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),
-              key
-            );
-          case REACT_SUSPENSE_TYPE:
-            return (
-              (key = createFiber(13, pendingProps, key, mode)),
-              (key.elementType = REACT_SUSPENSE_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          case REACT_SUSPENSE_LIST_TYPE:
-            return (
-              (key = createFiber(19, pendingProps, key, mode)),
-              (key.elementType = REACT_SUSPENSE_LIST_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          default:
-            if ("object" === typeof type && null !== type)
-              switch (type.$$typeof) {
-                case REACT_CONTEXT_TYPE:
-                  fiberTag = 10;
-                  break a;
-                case REACT_CONSUMER_TYPE:
-                  fiberTag = 9;
-                  break a;
-                case REACT_FORWARD_REF_TYPE:
-                  fiberTag = 11;
-                  resolvedType = resolveForwardRefForHotReloading(resolvedType);
-                  break a;
-                case REACT_MEMO_TYPE:
-                  fiberTag = 14;
-                  break a;
-                case REACT_LAZY_TYPE:
-                  fiberTag = 16;
-                  resolvedType = null;
-                  break a;
-              }
-            resolvedType = "";
-            if (
-              void 0 === type ||
-              ("object" === typeof type &&
-                null !== type &&
-                0 === Object.keys(type).length)
-            )
-              resolvedType +=
-                " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-            null === type
-              ? (pendingProps = "null")
-              : isArrayImpl(type)
-                ? (pendingProps = "array")
-                : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
-                  ? ((pendingProps =
-                      "<" +
-                      (getComponentNameFromType(type.type) || "Unknown") +
-                      " />"),
-                    (resolvedType =
-                      " Did you accidentally export a JSX literal instead of a component?"))
-                  : (pendingProps = typeof type);
-            (fiberTag = owner ? getComponentNameFromOwner(owner) : null) &&
-              (resolvedType +=
-                "\n\nCheck the render method of `" + fiberTag + "`.");
-            fiberTag = 29;
-            pendingProps = Error(
-              "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-                (pendingProps + "." + resolvedType)
-            );
-            resolvedType = null;
-        }
-      key = createFiber(fiberTag, pendingProps, key, mode);
-      key.elementType = type;
-      key.type = resolvedType;
-      key.lanes = lanes;
-      key._debugOwner = owner;
-      return key;
-    }
-    function createFiberFromElement(element, mode, lanes) {
-      mode = createFiberFromTypeAndProps(
-        element.type,
-        element.key,
-        element.props,
-        element._owner,
-        mode,
-        lanes
-      );
-      mode._debugOwner = element._owner;
-      mode._debugStack = element._debugStack;
-      mode._debugTask = element._debugTask;
-      return mode;
-    }
-    function createFiberFromFragment(elements, mode, lanes, key) {
-      elements = createFiber(7, elements, key, mode);
-      elements.lanes = lanes;
-      return elements;
-    }
-    function createFiberFromText(content, mode, lanes) {
-      content = createFiber(6, content, null, mode);
-      content.lanes = lanes;
-      return content;
-    }
-    function createFiberFromDehydratedFragment(dehydratedNode) {
-      var fiber = createFiber(18, null, null, NoMode);
-      fiber.stateNode = dehydratedNode;
-      return fiber;
-    }
-    function createFiberFromPortal(portal, mode, lanes) {
-      mode = createFiber(
-        4,
-        null !== portal.children ? portal.children : [],
-        portal.key,
-        mode
-      );
-      mode.lanes = lanes;
-      mode.stateNode = {
-        containerInfo: portal.containerInfo,
-        pendingChildren: null,
-        implementation: portal.implementation
-      };
-      return mode;
-    }
-    function createCapturedValueAtFiber(value, source) {
-      if ("object" === typeof value && null !== value) {
-        var existing = CapturedStacks.get(value);
-        if (void 0 !== existing) return existing;
-        source = {
-          value: value,
-          source: source,
-          stack: getStackByFiberInDevAndProd(source)
-        };
-        CapturedStacks.set(value, source);
-        return source;
-      }
-      return {
-        value: value,
-        source: source,
-        stack: getStackByFiberInDevAndProd(source)
-      };
-    }
-    function pushTreeFork(workInProgress, totalChildren) {
-      warnIfNotHydrating();
-      forkStack[forkStackIndex++] = treeForkCount;
-      forkStack[forkStackIndex++] = treeForkProvider;
-      treeForkProvider = workInProgress;
-      treeForkCount = totalChildren;
-    }
-    function pushTreeId(workInProgress, totalChildren, index) {
-      warnIfNotHydrating();
-      idStack[idStackIndex++] = treeContextId;
-      idStack[idStackIndex++] = treeContextOverflow;
-      idStack[idStackIndex++] = treeContextProvider;
-      treeContextProvider = workInProgress;
-      var baseIdWithLeadingBit = treeContextId;
-      workInProgress = treeContextOverflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        treeContextId =
-          (1 << (32 - clz32(totalChildren) + baseLength)) |
-          (index << baseLength) |
-          baseIdWithLeadingBit;
-        treeContextOverflow = length + workInProgress;
-      } else
-        (treeContextId =
-          (1 << length) | (index << baseLength) | baseIdWithLeadingBit),
-          (treeContextOverflow = workInProgress);
-    }
-    function pushMaterializedTreeId(workInProgress) {
-      warnIfNotHydrating();
-      null !== workInProgress.return &&
-        (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));
-    }
-    function popTreeContext(workInProgress) {
-      for (; workInProgress === treeForkProvider; )
-        (treeForkProvider = forkStack[--forkStackIndex]),
-          (forkStack[forkStackIndex] = null),
-          (treeForkCount = forkStack[--forkStackIndex]),
-          (forkStack[forkStackIndex] = null);
-      for (; workInProgress === treeContextProvider; )
-        (treeContextProvider = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null),
-          (treeContextOverflow = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null),
-          (treeContextId = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null);
-    }
-    function getSuspendedTreeContext() {
-      warnIfNotHydrating();
-      return null !== treeContextProvider
-        ? { id: treeContextId, overflow: treeContextOverflow }
-        : null;
-    }
-    function restoreSuspendedTreeContext(workInProgress, suspendedContext) {
-      warnIfNotHydrating();
-      idStack[idStackIndex++] = treeContextId;
-      idStack[idStackIndex++] = treeContextOverflow;
-      idStack[idStackIndex++] = treeContextProvider;
-      treeContextId = suspendedContext.id;
-      treeContextOverflow = suspendedContext.overflow;
-      treeContextProvider = workInProgress;
-    }
-    function warnIfNotHydrating() {
-      isHydrating ||
-        console.error(
-          "Expected to be hydrating. This is a bug in React. Please file an issue."
-        );
-    }
-    function buildHydrationDiffNode(fiber, distanceFromLeaf) {
-      if (null === fiber.return) {
-        if (null === hydrationDiffRootDEV)
-          hydrationDiffRootDEV = {
-            fiber: fiber,
-            children: [],
-            serverProps: void 0,
-            serverTail: [],
-            distanceFromLeaf: distanceFromLeaf
-          };
-        else {
-          if (hydrationDiffRootDEV.fiber !== fiber)
-            throw Error(
-              "Saw multiple hydration diff roots in a pass. This is a bug in React."
-            );
-          hydrationDiffRootDEV.distanceFromLeaf > distanceFromLeaf &&
-            (hydrationDiffRootDEV.distanceFromLeaf = distanceFromLeaf);
-        }
-        return hydrationDiffRootDEV;
-      }
-      var siblings = buildHydrationDiffNode(
-        fiber.return,
-        distanceFromLeaf + 1
-      ).children;
-      if (0 < siblings.length && siblings[siblings.length - 1].fiber === fiber)
-        return (
-          (siblings = siblings[siblings.length - 1]),
-          siblings.distanceFromLeaf > distanceFromLeaf &&
-            (siblings.distanceFromLeaf = distanceFromLeaf),
-          siblings
-        );
-      distanceFromLeaf = {
-        fiber: fiber,
-        children: [],
-        serverProps: void 0,
-        serverTail: [],
-        distanceFromLeaf: distanceFromLeaf
-      };
-      siblings.push(distanceFromLeaf);
-      return distanceFromLeaf;
-    }
-    function warnIfHydrating() {
-      isHydrating &&
-        console.error(
-          "We should not be hydrating here. This is a bug in React. Please file a bug."
-        );
-    }
-    function warnNonHydratedInstance(fiber, rejectedCandidate) {
-      didSuspendOrErrorDEV ||
-        ((fiber = buildHydrationDiffNode(fiber, 0)),
-        (fiber.serverProps = null),
-        null !== rejectedCandidate &&
-          ((rejectedCandidate =
-            describeHydratableInstanceForDevWarnings(rejectedCandidate)),
-          fiber.serverTail.push(rejectedCandidate)));
-    }
-    function throwOnHydrationMismatch(fiber) {
-      var fromText =
-          1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1,
-        diff = "",
-        diffRoot = hydrationDiffRootDEV;
-      null !== diffRoot &&
-        ((hydrationDiffRootDEV = null), (diff = describeDiff(diffRoot)));
-      queueHydrationError(
-        createCapturedValueAtFiber(
-          Error(
-            "Hydration failed because the server rendered " +
-              (fromText ? "text" : "HTML") +
-              " didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\nhttps://react.dev/link/hydration-mismatch" +
-              diff
-          ),
-          fiber
-        )
-      );
-      throw HydrationMismatchException;
-    }
-    function prepareToHydrateHostInstance(fiber) {
-      var didHydrate = fiber.stateNode;
-      var type = fiber.type,
-        props = fiber.memoizedProps;
-      didHydrate[internalInstanceKey] = fiber;
-      didHydrate[internalPropsKey] = props;
-      validatePropertiesInDevelopment(type, props);
-      switch (type) {
-        case "dialog":
-          listenToNonDelegatedEvent("cancel", didHydrate);
-          listenToNonDelegatedEvent("close", didHydrate);
-          break;
-        case "iframe":
-        case "object":
-        case "embed":
-          listenToNonDelegatedEvent("load", didHydrate);
-          break;
-        case "video":
-        case "audio":
-          for (type = 0; type < mediaEventTypes.length; type++)
-            listenToNonDelegatedEvent(mediaEventTypes[type], didHydrate);
-          break;
-        case "source":
-          listenToNonDelegatedEvent("error", didHydrate);
-          break;
-        case "img":
-        case "image":
-        case "link":
-          listenToNonDelegatedEvent("error", didHydrate);
-          listenToNonDelegatedEvent("load", didHydrate);
-          break;
-        case "details":
-          listenToNonDelegatedEvent("toggle", didHydrate);
-          break;
-        case "input":
-          checkControlledValueProps("input", props);
-          listenToNonDelegatedEvent("invalid", didHydrate);
-          validateInputProps(didHydrate, props);
-          initInput(
-            didHydrate,
-            props.value,
-            props.defaultValue,
-            props.checked,
-            props.defaultChecked,
-            props.type,
-            props.name,
-            !0
-          );
-          break;
-        case "option":
-          validateOptionProps(didHydrate, props);
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          listenToNonDelegatedEvent("invalid", didHydrate);
-          validateSelectProps(didHydrate, props);
-          break;
-        case "textarea":
-          checkControlledValueProps("textarea", props),
-            listenToNonDelegatedEvent("invalid", didHydrate),
-            validateTextareaProps(didHydrate, props),
-            initTextarea(
-              didHydrate,
-              props.value,
-              props.defaultValue,
-              props.children
-            );
-      }
-      type = props.children;
-      ("string" !== typeof type &&
-        "number" !== typeof type &&
-        "bigint" !== typeof type) ||
-      didHydrate.textContent === "" + type ||
-      !0 === props.suppressHydrationWarning ||
-      checkForUnmatchedText(didHydrate.textContent, type)
-        ? (null != props.popover &&
-            (listenToNonDelegatedEvent("beforetoggle", didHydrate),
-            listenToNonDelegatedEvent("toggle", didHydrate)),
-          null != props.onScroll &&
-            listenToNonDelegatedEvent("scroll", didHydrate),
-          null != props.onScrollEnd &&
-            listenToNonDelegatedEvent("scrollend", didHydrate),
-          null != props.onClick && (didHydrate.onclick = noop$1),
-          (didHydrate = !0))
-        : (didHydrate = !1);
-      didHydrate || throwOnHydrationMismatch(fiber, !0);
-    }
-    function popToNextHostParent(fiber) {
-      for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
-        switch (hydrationParentFiber.tag) {
-          case 5:
-          case 31:
-          case 13:
-            rootOrSingletonContext = !1;
-            return;
-          case 27:
-          case 3:
-            rootOrSingletonContext = !0;
-            return;
-          default:
-            hydrationParentFiber = hydrationParentFiber.return;
-        }
-    }
-    function popHydrationState(fiber) {
-      if (fiber !== hydrationParentFiber) return !1;
-      if (!isHydrating)
-        return popToNextHostParent(fiber), (isHydrating = !0), !1;
-      var tag = fiber.tag,
-        JSCompiler_temp;
-      if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
-        if ((JSCompiler_temp = 5 === tag))
-          (JSCompiler_temp = fiber.type),
-            (JSCompiler_temp =
-              !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) ||
-              shouldSetTextContent(fiber.type, fiber.memoizedProps));
-        JSCompiler_temp = !JSCompiler_temp;
-      }
-      if (JSCompiler_temp && nextHydratableInstance) {
-        for (JSCompiler_temp = nextHydratableInstance; JSCompiler_temp; ) {
-          var diffNode = buildHydrationDiffNode(fiber, 0),
-            description =
-              describeHydratableInstanceForDevWarnings(JSCompiler_temp);
-          diffNode.serverTail.push(description);
-          JSCompiler_temp =
-            "Suspense" === description.type
-              ? getNextHydratableInstanceAfterHydrationBoundary(JSCompiler_temp)
-              : getNextHydratable(JSCompiler_temp.nextSibling);
-        }
-        throwOnHydrationMismatch(fiber);
-      }
-      popToNextHostParent(fiber);
-      if (13 === tag) {
-        fiber = fiber.memoizedState;
-        fiber = null !== fiber ? fiber.dehydrated : null;
-        if (!fiber)
-          throw Error(
-            "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-          );
-        nextHydratableInstance =
-          getNextHydratableInstanceAfterHydrationBoundary(fiber);
-      } else if (31 === tag) {
-        fiber = fiber.memoizedState;
-        fiber = null !== fiber ? fiber.dehydrated : null;
-        if (!fiber)
-          throw Error(
-            "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-          );
-        nextHydratableInstance =
-          getNextHydratableInstanceAfterHydrationBoundary(fiber);
-      } else
-        27 === tag
-          ? ((tag = nextHydratableInstance),
-            isSingletonScope(fiber.type)
-              ? ((fiber = previousHydratableOnEnteringScopedSingleton),
-                (previousHydratableOnEnteringScopedSingleton = null),
-                (nextHydratableInstance = fiber))
-              : (nextHydratableInstance = tag))
-          : (nextHydratableInstance = hydrationParentFiber
-              ? getNextHydratable(fiber.stateNode.nextSibling)
-              : null);
-      return !0;
-    }
-    function resetHydrationState() {
-      nextHydratableInstance = hydrationParentFiber = null;
-      didSuspendOrErrorDEV = isHydrating = !1;
-    }
-    function upgradeHydrationErrorsToRecoverable() {
-      var queuedErrors = hydrationErrors;
-      null !== queuedErrors &&
-        (null === workInProgressRootRecoverableErrors
-          ? (workInProgressRootRecoverableErrors = queuedErrors)
-          : workInProgressRootRecoverableErrors.push.apply(
-              workInProgressRootRecoverableErrors,
-              queuedErrors
-            ),
-        (hydrationErrors = null));
-      return queuedErrors;
-    }
-    function queueHydrationError(error) {
-      null === hydrationErrors
-        ? (hydrationErrors = [error])
-        : hydrationErrors.push(error);
-    }
-    function emitPendingHydrationWarnings() {
-      var diffRoot = hydrationDiffRootDEV;
-      if (null !== diffRoot) {
-        hydrationDiffRootDEV = null;
-        for (var diff = describeDiff(diffRoot); 0 < diffRoot.children.length; )
-          diffRoot = diffRoot.children[0];
-        runWithFiberInDEV(diffRoot.fiber, function () {
-          console.error(
-            "A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s",
-            "https://react.dev/link/hydration-mismatch",
-            diff
-          );
-        });
-      }
-    }
-    function resetContextDependencies() {
-      lastContextDependency = currentlyRenderingFiber$1 = null;
-      isDisallowedContextReadInDEV = !1;
-    }
-    function pushProvider(providerFiber, context, nextValue) {
-      push(valueCursor, context._currentValue, providerFiber);
-      context._currentValue = nextValue;
-      push(rendererCursorDEV, context._currentRenderer, providerFiber);
-      void 0 !== context._currentRenderer &&
-        null !== context._currentRenderer &&
-        context._currentRenderer !== rendererSigil &&
-        console.error(
-          "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-        );
-      context._currentRenderer = rendererSigil;
-    }
-    function popProvider(context, providerFiber) {
-      context._currentValue = valueCursor.current;
-      var currentRenderer = rendererCursorDEV.current;
-      pop(rendererCursorDEV, providerFiber);
-      context._currentRenderer = currentRenderer;
-      pop(valueCursor, providerFiber);
-    }
-    function scheduleContextWorkOnParentPath(
-      parent,
-      renderLanes,
-      propagationRoot
-    ) {
-      for (; null !== parent; ) {
-        var alternate = parent.alternate;
-        (parent.childLanes & renderLanes) !== renderLanes
-          ? ((parent.childLanes |= renderLanes),
-            null !== alternate && (alternate.childLanes |= renderLanes))
-          : null !== alternate &&
-            (alternate.childLanes & renderLanes) !== renderLanes &&
-            (alternate.childLanes |= renderLanes);
-        if (parent === propagationRoot) break;
-        parent = parent.return;
-      }
-      parent !== propagationRoot &&
-        console.error(
-          "Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue."
-        );
-    }
-    function propagateContextChanges(
-      workInProgress,
-      contexts,
-      renderLanes,
-      forcePropagateEntireTree
-    ) {
-      var fiber = workInProgress.child;
-      null !== fiber && (fiber.return = workInProgress);
-      for (; null !== fiber; ) {
-        var list = fiber.dependencies;
-        if (null !== list) {
-          var nextFiber = fiber.child;
-          list = list.firstContext;
-          a: for (; null !== list; ) {
-            var dependency = list;
-            list = fiber;
-            for (var i = 0; i < contexts.length; i++)
-              if (dependency.context === contexts[i]) {
-                list.lanes |= renderLanes;
-                dependency = list.alternate;
-                null !== dependency && (dependency.lanes |= renderLanes);
-                scheduleContextWorkOnParentPath(
-                  list.return,
-                  renderLanes,
-                  workInProgress
-                );
-                forcePropagateEntireTree || (nextFiber = null);
-                break a;
-              }
-            list = dependency.next;
-          }
-        } else if (18 === fiber.tag) {
-          nextFiber = fiber.return;
-          if (null === nextFiber)
-            throw Error(
-              "We just came from a parent so we must have had a parent. This is a bug in React."
-            );
-          nextFiber.lanes |= renderLanes;
-          list = nextFiber.alternate;
-          null !== list && (list.lanes |= renderLanes);
-          scheduleContextWorkOnParentPath(
-            nextFiber,
-            renderLanes,
-            workInProgress
-          );
-          nextFiber = null;
-        } else nextFiber = fiber.child;
-        if (null !== nextFiber) nextFiber.return = fiber;
-        else
-          for (nextFiber = fiber; null !== nextFiber; ) {
-            if (nextFiber === workInProgress) {
-              nextFiber = null;
-              break;
-            }
-            fiber = nextFiber.sibling;
-            if (null !== fiber) {
-              fiber.return = nextFiber.return;
-              nextFiber = fiber;
-              break;
-            }
-            nextFiber = nextFiber.return;
-          }
-        fiber = nextFiber;
-      }
-    }
-    function propagateParentContextChanges(
-      current,
-      workInProgress,
-      renderLanes,
-      forcePropagateEntireTree
-    ) {
-      current = null;
-      for (
-        var parent = workInProgress, isInsidePropagationBailout = !1;
-        null !== parent;
-
-      ) {
-        if (!isInsidePropagationBailout)
-          if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;
-          else if (0 !== (parent.flags & 262144)) break;
-        if (10 === parent.tag) {
-          var currentParent = parent.alternate;
-          if (null === currentParent)
-            throw Error("Should have a current fiber. This is a bug in React.");
-          currentParent = currentParent.memoizedProps;
-          if (null !== currentParent) {
-            var context = parent.type;
-            objectIs(parent.pendingProps.value, currentParent.value) ||
-              (null !== current
-                ? current.push(context)
-                : (current = [context]));
-          }
-        } else if (parent === hostTransitionProviderCursor.current) {
-          currentParent = parent.alternate;
-          if (null === currentParent)
-            throw Error("Should have a current fiber. This is a bug in React.");
-          currentParent.memoizedState.memoizedState !==
-            parent.memoizedState.memoizedState &&
-            (null !== current
-              ? current.push(HostTransitionContext)
-              : (current = [HostTransitionContext]));
-        }
-        parent = parent.return;
-      }
-      null !== current &&
-        propagateContextChanges(
-          workInProgress,
-          current,
-          renderLanes,
-          forcePropagateEntireTree
-        );
-      workInProgress.flags |= 262144;
-    }
-    function checkIfContextChanged(currentDependencies) {
-      for (
-        currentDependencies = currentDependencies.firstContext;
-        null !== currentDependencies;
-
-      ) {
-        if (
-          !objectIs(
-            currentDependencies.context._currentValue,
-            currentDependencies.memoizedValue
-          )
-        )
-          return !0;
-        currentDependencies = currentDependencies.next;
-      }
-      return !1;
-    }
-    function prepareToReadContext(workInProgress) {
-      currentlyRenderingFiber$1 = workInProgress;
-      lastContextDependency = null;
-      workInProgress = workInProgress.dependencies;
-      null !== workInProgress && (workInProgress.firstContext = null);
-    }
-    function readContext(context) {
-      isDisallowedContextReadInDEV &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return readContextForConsumer(currentlyRenderingFiber$1, context);
-    }
-    function readContextDuringReconciliation(consumer, context) {
-      null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);
-      return readContextForConsumer(consumer, context);
-    }
-    function readContextForConsumer(consumer, context) {
-      var value = context._currentValue;
-      context = { context: context, memoizedValue: value, next: null };
-      if (null === lastContextDependency) {
-        if (null === consumer)
-          throw Error(
-            "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-          );
-        lastContextDependency = context;
-        consumer.dependencies = {
-          lanes: 0,
-          firstContext: context,
-          _debugThenableState: null
-        };
-        consumer.flags |= 524288;
-      } else lastContextDependency = lastContextDependency.next = context;
-      return value;
-    }
-    function createCache() {
-      return {
-        controller: new AbortControllerLocal(),
-        data: new Map(),
-        refCount: 0
-      };
-    }
-    function retainCache(cache) {
-      cache.controller.signal.aborted &&
-        console.warn(
-          "A cache instance was retained after it was already freed. This likely indicates a bug in React."
-        );
-      cache.refCount++;
-    }
-    function releaseCache(cache) {
-      cache.refCount--;
-      0 > cache.refCount &&
-        console.warn(
-          "A cache instance was released after it was already freed. This likely indicates a bug in React."
-        );
-      0 === cache.refCount &&
-        scheduleCallback$2(NormalPriority, function () {
-          cache.controller.abort();
-        });
-    }
-    function startUpdateTimerByLane(lane, method, fiber) {
-      if (0 !== (lane & 127))
-        0 > blockingUpdateTime &&
-          ((blockingUpdateTime = now()),
-          (blockingUpdateTask = createTask(method)),
-          (blockingUpdateMethodName = method),
-          null != fiber &&
-            (blockingUpdateComponentName = getComponentNameFromFiber(fiber)),
-          (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-            ((componentEffectSpawnedUpdate = !0),
-            (blockingUpdateType = SPAWNED_UPDATE)),
-          (lane = resolveEventTimeStamp()),
-          (method = resolveEventType()),
-          lane !== blockingEventRepeatTime || method !== blockingEventType
-            ? (blockingEventRepeatTime = -1.1)
-            : null !== method && (blockingUpdateType = SPAWNED_UPDATE),
-          (blockingEventTime = lane),
-          (blockingEventType = method));
-      else if (
-        0 !== (lane & 4194048) &&
-        0 > transitionUpdateTime &&
-        ((transitionUpdateTime = now()),
-        (transitionUpdateTask = createTask(method)),
-        (transitionUpdateMethodName = method),
-        null != fiber &&
-          (transitionUpdateComponentName = getComponentNameFromFiber(fiber)),
-        0 > transitionStartTime)
-      ) {
-        lane = resolveEventTimeStamp();
-        method = resolveEventType();
-        if (
-          lane !== transitionEventRepeatTime ||
-          method !== transitionEventType
-        )
-          transitionEventRepeatTime = -1.1;
-        transitionEventTime = lane;
-        transitionEventType = method;
-      }
-    }
-    function startHostActionTimer(fiber) {
-      if (0 > blockingUpdateTime) {
-        blockingUpdateTime = now();
-        blockingUpdateTask = null != fiber._debugTask ? fiber._debugTask : null;
-        (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-          (blockingUpdateType = SPAWNED_UPDATE);
-        var newEventTime = resolveEventTimeStamp(),
-          newEventType = resolveEventType();
-        newEventTime !== blockingEventRepeatTime ||
-        newEventType !== blockingEventType
-          ? (blockingEventRepeatTime = -1.1)
-          : null !== newEventType && (blockingUpdateType = SPAWNED_UPDATE);
-        blockingEventTime = newEventTime;
-        blockingEventType = newEventType;
-      }
-      if (
-        0 > transitionUpdateTime &&
-        ((transitionUpdateTime = now()),
-        (transitionUpdateTask =
-          null != fiber._debugTask ? fiber._debugTask : null),
-        0 > transitionStartTime)
-      ) {
-        fiber = resolveEventTimeStamp();
-        newEventTime = resolveEventType();
-        if (
-          fiber !== transitionEventRepeatTime ||
-          newEventTime !== transitionEventType
-        )
-          transitionEventRepeatTime = -1.1;
-        transitionEventTime = fiber;
-        transitionEventType = newEventTime;
-      }
-    }
-    function pushNestedEffectDurations() {
-      var prevEffectDuration = profilerEffectDuration;
-      profilerEffectDuration = 0;
-      return prevEffectDuration;
-    }
-    function popNestedEffectDurations(prevEffectDuration) {
-      var elapsedTime = profilerEffectDuration;
-      profilerEffectDuration = prevEffectDuration;
-      return elapsedTime;
-    }
-    function bubbleNestedEffectDurations(prevEffectDuration) {
-      var elapsedTime = profilerEffectDuration;
-      profilerEffectDuration += prevEffectDuration;
-      return elapsedTime;
-    }
-    function resetComponentEffectTimers() {
-      componentEffectEndTime = componentEffectStartTime = -1.1;
-    }
-    function pushComponentEffectStart() {
-      var prevEffectStart = componentEffectStartTime;
-      componentEffectStartTime = -1.1;
-      return prevEffectStart;
-    }
-    function popComponentEffectStart(prevEffectStart) {
-      0 <= prevEffectStart && (componentEffectStartTime = prevEffectStart);
-    }
-    function pushComponentEffectDuration() {
-      var prevEffectDuration = componentEffectDuration;
-      componentEffectDuration = -0;
-      return prevEffectDuration;
-    }
-    function popComponentEffectDuration(prevEffectDuration) {
-      0 <= prevEffectDuration && (componentEffectDuration = prevEffectDuration);
-    }
-    function pushComponentEffectErrors() {
-      var prevErrors = componentEffectErrors;
-      componentEffectErrors = null;
-      return prevErrors;
-    }
-    function pushComponentEffectDidSpawnUpdate() {
-      var prev = componentEffectSpawnedUpdate;
-      componentEffectSpawnedUpdate = !1;
-      return prev;
-    }
-    function startProfilerTimer(fiber) {
-      profilerStartTime = now();
-      0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime);
-    }
-    function stopProfilerTimerIfRunningAndRecordDuration(fiber) {
-      if (0 <= profilerStartTime) {
-        var elapsedTime = now() - profilerStartTime;
-        fiber.actualDuration += elapsedTime;
-        fiber.selfBaseDuration = elapsedTime;
-        profilerStartTime = -1;
-      }
-    }
-    function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {
-      if (0 <= profilerStartTime) {
-        var elapsedTime = now() - profilerStartTime;
-        fiber.actualDuration += elapsedTime;
-        profilerStartTime = -1;
-      }
-    }
-    function recordEffectDuration() {
-      if (0 <= profilerStartTime) {
-        var endTime = now(),
-          elapsedTime = endTime - profilerStartTime;
-        profilerStartTime = -1;
-        profilerEffectDuration += elapsedTime;
-        componentEffectDuration += elapsedTime;
-        componentEffectEndTime = endTime;
-      }
-    }
-    function recordEffectError(errorInfo) {
-      null === componentEffectErrors && (componentEffectErrors = []);
-      componentEffectErrors.push(errorInfo);
-      null === commitErrors && (commitErrors = []);
-      commitErrors.push(errorInfo);
-    }
-    function startEffectTimer() {
-      profilerStartTime = now();
-      0 > componentEffectStartTime &&
-        (componentEffectStartTime = profilerStartTime);
-    }
-    function transferActualDuration(fiber) {
-      for (var child = fiber.child; child; )
-        (fiber.actualDuration += child.actualDuration), (child = child.sibling);
-    }
-    function entangleAsyncAction(transition, thenable) {
-      if (null === currentEntangledListeners) {
-        var entangledListeners = (currentEntangledListeners = []);
-        currentEntangledPendingCount = 0;
-        currentEntangledLane = requestTransitionLane();
-        currentEntangledActionThenable = {
-          status: "pending",
-          value: void 0,
-          then: function (resolve) {
-            entangledListeners.push(resolve);
-          }
-        };
-      }
-      currentEntangledPendingCount++;
-      thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);
-      return thenable;
-    }
-    function pingEngtangledActionScope() {
-      if (
-        0 === --currentEntangledPendingCount &&
-        (-1 < transitionUpdateTime || (transitionStartTime = -1.1),
-        null !== currentEntangledListeners)
-      ) {
-        null !== currentEntangledActionThenable &&
-          (currentEntangledActionThenable.status = "fulfilled");
-        var listeners = currentEntangledListeners;
-        currentEntangledListeners = null;
-        currentEntangledLane = 0;
-        currentEntangledActionThenable = null;
-        for (var i = 0; i < listeners.length; i++) (0, listeners[i])();
-      }
-    }
-    function chainThenableValue(thenable, result) {
-      var listeners = [],
-        thenableWithOverride = {
-          status: "pending",
-          value: null,
-          reason: null,
-          then: function (resolve) {
-            listeners.push(resolve);
-          }
-        };
-      thenable.then(
-        function () {
-          thenableWithOverride.status = "fulfilled";
-          thenableWithOverride.value = result;
-          for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);
-        },
-        function (error) {
-          thenableWithOverride.status = "rejected";
-          thenableWithOverride.reason = error;
-          for (error = 0; error < listeners.length; error++)
-            (0, listeners[error])(void 0);
-        }
-      );
-      return thenableWithOverride;
-    }
-    function peekCacheFromPool() {
-      var cacheResumedFromPreviousRender = resumedCache.current;
-      return null !== cacheResumedFromPreviousRender
-        ? cacheResumedFromPreviousRender
-        : workInProgressRoot.pooledCache;
-    }
-    function pushTransition(offscreenWorkInProgress, prevCachePool) {
-      null === prevCachePool
-        ? push(resumedCache, resumedCache.current, offscreenWorkInProgress)
-        : push(resumedCache, prevCachePool.pool, offscreenWorkInProgress);
-    }
-    function getSuspendedCache() {
-      var cacheFromPool = peekCacheFromPool();
-      return null === cacheFromPool
-        ? null
-        : { parent: CacheContext._currentValue, pool: cacheFromPool };
-    }
-    function createThenableState() {
-      return { didWarnAboutUncachedPromise: !1, thenables: [] };
-    }
-    function isThenableResolved(thenable) {
-      thenable = thenable.status;
-      return "fulfilled" === thenable || "rejected" === thenable;
-    }
-    function trackUsedThenable(thenableState, thenable, index) {
-      null !== ReactSharedInternals.actQueue &&
-        (ReactSharedInternals.didUsePromise = !0);
-      var trackedThenables = thenableState.thenables;
-      index = trackedThenables[index];
-      void 0 === index
-        ? trackedThenables.push(thenable)
-        : index !== thenable &&
-          (thenableState.didWarnAboutUncachedPromise ||
-            ((thenableState.didWarnAboutUncachedPromise = !0),
-            console.error(
-              "A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework."
-            )),
-          thenable.then(noop$1, noop$1),
-          (thenable = index));
-      if (void 0 === thenable._debugInfo) {
-        thenableState = performance.now();
-        trackedThenables = thenable.displayName;
-        var ioInfo = {
-          name:
-            "string" === typeof trackedThenables ? trackedThenables : "Promise",
-          start: thenableState,
-          end: thenableState,
-          value: thenable
-        };
-        thenable._debugInfo = [{ awaited: ioInfo }];
-        "fulfilled" !== thenable.status &&
-          "rejected" !== thenable.status &&
-          ((thenableState = function () {
-            ioInfo.end = performance.now();
-          }),
-          thenable.then(thenableState, thenableState));
-      }
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw (
-            ((thenableState = thenable.reason),
-            checkIfUseWrappedInAsyncCatch(thenableState),
-            thenableState)
-          );
-        default:
-          if ("string" === typeof thenable.status)
-            thenable.then(noop$1, noop$1);
-          else {
-            thenableState = workInProgressRoot;
-            if (
-              null !== thenableState &&
-              100 < thenableState.shellSuspendCounter
-            )
-              throw Error(
-                "An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
-              );
-            thenableState = thenable;
-            thenableState.status = "pending";
-            thenableState.then(
-              function (fulfilledValue) {
-                if ("pending" === thenable.status) {
-                  var fulfilledThenable = thenable;
-                  fulfilledThenable.status = "fulfilled";
-                  fulfilledThenable.value = fulfilledValue;
-                }
-              },
-              function (error) {
-                if ("pending" === thenable.status) {
-                  var rejectedThenable = thenable;
-                  rejectedThenable.status = "rejected";
-                  rejectedThenable.reason = error;
-                }
-              }
-            );
-          }
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw (
-                ((thenableState = thenable.reason),
-                checkIfUseWrappedInAsyncCatch(thenableState),
-                thenableState)
-              );
-          }
-          suspendedThenable = thenable;
-          needsToResetSuspendedThenableDEV = !0;
-          throw SuspenseException;
-      }
-    }
-    function resolveLazy(lazyType) {
-      try {
-        return callLazyInitInDEV(lazyType);
-      } catch (x) {
-        if (null !== x && "object" === typeof x && "function" === typeof x.then)
-          throw (
-            ((suspendedThenable = x),
-            (needsToResetSuspendedThenableDEV = !0),
-            SuspenseException)
-          );
-        throw x;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      needsToResetSuspendedThenableDEV = !1;
-      return thenable;
-    }
-    function checkIfUseWrappedInAsyncCatch(rejectedReason) {
-      if (
-        rejectedReason === SuspenseException ||
-        rejectedReason === SuspenseActionException
-      )
-        throw Error(
-          "Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
-        );
-    }
-    function pushDebugInfo(debugInfo) {
-      var previousDebugInfo = currentDebugInfo;
-      null != debugInfo &&
-        (currentDebugInfo =
-          null === previousDebugInfo
-            ? debugInfo
-            : previousDebugInfo.concat(debugInfo));
-      return previousDebugInfo;
-    }
-    function getCurrentDebugTask() {
-      var debugInfo = currentDebugInfo;
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--)
-          if (null != debugInfo[i].name) {
-            var debugTask = debugInfo[i].debugTask;
-            if (null != debugTask) return debugTask;
-          }
-      return null;
-    }
-    function validateFragmentProps(element, fiber, returnFiber) {
-      for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) {
-        var key = keys[i];
-        if ("children" !== key && "key" !== key) {
-          null === fiber &&
-            ((fiber = createFiberFromElement(element, returnFiber.mode, 0)),
-            (fiber._debugInfo = currentDebugInfo),
-            (fiber.return = returnFiber));
-          runWithFiberInDEV(
-            fiber,
-            function (erroredKey) {
-              console.error(
-                "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",
-                erroredKey
-              );
-            },
-            key
-          );
-          break;
-        }
-      }
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter$1;
-      thenableIndexCounter$1 += 1;
-      null === thenableState$1 && (thenableState$1 = createThenableState());
-      return trackUsedThenable(thenableState$1, thenable, index);
-    }
-    function coerceRef(workInProgress, element) {
-      element = element.props.ref;
-      workInProgress.ref = void 0 !== element ? element : null;
-    }
-    function throwOnInvalidObjectTypeImpl(returnFiber, newChild) {
-      if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)
-        throw Error(
-          'A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.'
-        );
-      returnFiber = Object.prototype.toString.call(newChild);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === returnFiber
-            ? "object with keys {" + Object.keys(newChild).join(", ") + "}"
-            : returnFiber) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    function throwOnInvalidObjectType(returnFiber, newChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            throwOnInvalidObjectTypeImpl.bind(null, returnFiber, newChild)
-          )
-        : throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    function warnOnFunctionTypeImpl(returnFiber, invalidChild) {
-      var parentName = getComponentNameFromFiber(returnFiber) || "Component";
-      ownerHasFunctionTypeWarning[parentName] ||
-        ((ownerHasFunctionTypeWarning[parentName] = !0),
-        (invalidChild =
-          invalidChild.displayName || invalidChild.name || "Component"),
-        3 === returnFiber.tag
-          ? console.error(
-              "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  root.render(%s)",
-              invalidChild,
-              invalidChild,
-              invalidChild
-            )
-          : console.error(
-              "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  <%s>{%s}</%s>",
-              invalidChild,
-              invalidChild,
-              parentName,
-              invalidChild,
-              parentName
-            ));
-    }
-    function warnOnFunctionType(returnFiber, invalidChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            warnOnFunctionTypeImpl.bind(null, returnFiber, invalidChild)
-          )
-        : warnOnFunctionTypeImpl(returnFiber, invalidChild);
-    }
-    function warnOnSymbolTypeImpl(returnFiber, invalidChild) {
-      var parentName = getComponentNameFromFiber(returnFiber) || "Component";
-      ownerHasSymbolTypeWarning[parentName] ||
-        ((ownerHasSymbolTypeWarning[parentName] = !0),
-        (invalidChild = String(invalidChild)),
-        3 === returnFiber.tag
-          ? console.error(
-              "Symbols are not valid as a React child.\n  root.render(%s)",
-              invalidChild
-            )
-          : console.error(
-              "Symbols are not valid as a React child.\n  <%s>%s</%s>",
-              parentName,
-              invalidChild,
-              parentName
-            ));
-    }
-    function warnOnSymbolType(returnFiber, invalidChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            warnOnSymbolTypeImpl.bind(null, returnFiber, invalidChild)
-          )
-        : warnOnSymbolTypeImpl(returnFiber, invalidChild);
-    }
-    function createChildReconciler(shouldTrackSideEffects) {
-      function deleteChild(returnFiber, childToDelete) {
-        if (shouldTrackSideEffects) {
-          var deletions = returnFiber.deletions;
-          null === deletions
-            ? ((returnFiber.deletions = [childToDelete]),
-              (returnFiber.flags |= 16))
-            : deletions.push(childToDelete);
-        }
-      }
-      function deleteRemainingChildren(returnFiber, currentFirstChild) {
-        if (!shouldTrackSideEffects) return null;
-        for (; null !== currentFirstChild; )
-          deleteChild(returnFiber, currentFirstChild),
-            (currentFirstChild = currentFirstChild.sibling);
-        return null;
-      }
-      function mapRemainingChildren(currentFirstChild) {
-        for (var existingChildren = new Map(); null !== currentFirstChild; )
-          null !== currentFirstChild.key
-            ? existingChildren.set(currentFirstChild.key, currentFirstChild)
-            : existingChildren.set(currentFirstChild.index, currentFirstChild),
-            (currentFirstChild = currentFirstChild.sibling);
-        return existingChildren;
-      }
-      function useFiber(fiber, pendingProps) {
-        fiber = createWorkInProgress(fiber, pendingProps);
-        fiber.index = 0;
-        fiber.sibling = null;
-        return fiber;
-      }
-      function placeChild(newFiber, lastPlacedIndex, newIndex) {
-        newFiber.index = newIndex;
-        if (!shouldTrackSideEffects)
-          return (newFiber.flags |= 1048576), lastPlacedIndex;
-        newIndex = newFiber.alternate;
-        if (null !== newIndex)
-          return (
-            (newIndex = newIndex.index),
-            newIndex < lastPlacedIndex
-              ? ((newFiber.flags |= 67108866), lastPlacedIndex)
-              : newIndex
-          );
-        newFiber.flags |= 67108866;
-        return lastPlacedIndex;
-      }
-      function placeSingleChild(newFiber) {
-        shouldTrackSideEffects &&
-          null === newFiber.alternate &&
-          (newFiber.flags |= 67108866);
-        return newFiber;
-      }
-      function updateTextNode(returnFiber, current, textContent, lanes) {
-        if (null === current || 6 !== current.tag)
-          return (
-            (current = createFiberFromText(
-              textContent,
-              returnFiber.mode,
-              lanes
-            )),
-            (current.return = returnFiber),
-            (current._debugOwner = returnFiber),
-            (current._debugTask = returnFiber._debugTask),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, textContent);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updateElement(returnFiber, current, element, lanes) {
-        var elementType = element.type;
-        if (elementType === REACT_FRAGMENT_TYPE)
-          return (
-            (current = updateFragment(
-              returnFiber,
-              current,
-              element.props.children,
-              lanes,
-              element.key
-            )),
-            validateFragmentProps(element, current, returnFiber),
-            current
-          );
-        if (
-          null !== current &&
-          (current.elementType === elementType ||
-            isCompatibleFamilyForHotReloading(current, element) ||
-            ("object" === typeof elementType &&
-              null !== elementType &&
-              elementType.$$typeof === REACT_LAZY_TYPE &&
-              resolveLazy(elementType) === current.type))
-        )
-          return (
-            (current = useFiber(current, element.props)),
-            coerceRef(current, element),
-            (current.return = returnFiber),
-            (current._debugOwner = element._owner),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = createFiberFromElement(element, returnFiber.mode, lanes);
-        coerceRef(current, element);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updatePortal(returnFiber, current, portal, lanes) {
-        if (
-          null === current ||
-          4 !== current.tag ||
-          current.stateNode.containerInfo !== portal.containerInfo ||
-          current.stateNode.implementation !== portal.implementation
-        )
-          return (
-            (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),
-            (current.return = returnFiber),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, portal.children || []);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updateFragment(returnFiber, current, fragment, lanes, key) {
-        if (null === current || 7 !== current.tag)
-          return (
-            (current = createFiberFromFragment(
-              fragment,
-              returnFiber.mode,
-              lanes,
-              key
-            )),
-            (current.return = returnFiber),
-            (current._debugOwner = returnFiber),
-            (current._debugTask = returnFiber._debugTask),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, fragment);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function createChild(returnFiber, newChild, lanes) {
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (newChild = createFiberFromText(
-              "" + newChild,
-              returnFiber.mode,
-              lanes
-            )),
-            (newChild.return = returnFiber),
-            (newChild._debugOwner = returnFiber),
-            (newChild._debugTask = returnFiber._debugTask),
-            (newChild._debugInfo = currentDebugInfo),
-            newChild
-          );
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return (
-                (lanes = createFiberFromElement(
-                  newChild,
-                  returnFiber.mode,
-                  lanes
-                )),
-                coerceRef(lanes, newChild),
-                (lanes.return = returnFiber),
-                (returnFiber = pushDebugInfo(newChild._debugInfo)),
-                (lanes._debugInfo = currentDebugInfo),
-                (currentDebugInfo = returnFiber),
-                lanes
-              );
-            case REACT_PORTAL_TYPE:
-              return (
-                (newChild = createFiberFromPortal(
-                  newChild,
-                  returnFiber.mode,
-                  lanes
-                )),
-                (newChild.return = returnFiber),
-                (newChild._debugInfo = currentDebugInfo),
-                newChild
-              );
-            case REACT_LAZY_TYPE:
-              var _prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-              newChild = resolveLazy(newChild);
-              returnFiber = createChild(returnFiber, newChild, lanes);
-              currentDebugInfo = _prevDebugInfo;
-              return returnFiber;
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild))
-            return (
-              (lanes = createFiberFromFragment(
-                newChild,
-                returnFiber.mode,
-                lanes,
-                null
-              )),
-              (lanes.return = returnFiber),
-              (lanes._debugOwner = returnFiber),
-              (lanes._debugTask = returnFiber._debugTask),
-              (returnFiber = pushDebugInfo(newChild._debugInfo)),
-              (lanes._debugInfo = currentDebugInfo),
-              (currentDebugInfo = returnFiber),
-              lanes
-            );
-          if ("function" === typeof newChild.then)
-            return (
-              (_prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = createChild(
-                returnFiber,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = _prevDebugInfo),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return createChild(
-              returnFiber,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function updateSlot(returnFiber, oldFiber, newChild, lanes) {
-        var key = null !== oldFiber ? oldFiber.key : null;
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return null !== key
-            ? null
-            : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return newChild.key === key
-                ? ((key = pushDebugInfo(newChild._debugInfo)),
-                  (returnFiber = updateElement(
-                    returnFiber,
-                    oldFiber,
-                    newChild,
-                    lanes
-                  )),
-                  (currentDebugInfo = key),
-                  returnFiber)
-                : null;
-            case REACT_PORTAL_TYPE:
-              return newChild.key === key
-                ? updatePortal(returnFiber, oldFiber, newChild, lanes)
-                : null;
-            case REACT_LAZY_TYPE:
-              return (
-                (key = pushDebugInfo(newChild._debugInfo)),
-                (newChild = resolveLazy(newChild)),
-                (returnFiber = updateSlot(
-                  returnFiber,
-                  oldFiber,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = key),
-                returnFiber
-              );
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild)) {
-            if (null !== key) return null;
-            key = pushDebugInfo(newChild._debugInfo);
-            returnFiber = updateFragment(
-              returnFiber,
-              oldFiber,
-              newChild,
-              lanes,
-              null
-            );
-            currentDebugInfo = key;
-            return returnFiber;
-          }
-          if ("function" === typeof newChild.then)
-            return (
-              (key = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateSlot(
-                returnFiber,
-                oldFiber,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = key),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return updateSlot(
-              returnFiber,
-              oldFiber,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function updateFromMap(
-        existingChildren,
-        returnFiber,
-        newIdx,
-        newChild,
-        lanes
-      ) {
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (existingChildren = existingChildren.get(newIdx) || null),
-            updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
-          );
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return (
-                (newIdx =
-                  existingChildren.get(
-                    null === newChild.key ? newIdx : newChild.key
-                  ) || null),
-                (existingChildren = pushDebugInfo(newChild._debugInfo)),
-                (returnFiber = updateElement(
-                  returnFiber,
-                  newIdx,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = existingChildren),
-                returnFiber
-              );
-            case REACT_PORTAL_TYPE:
-              return (
-                (existingChildren =
-                  existingChildren.get(
-                    null === newChild.key ? newIdx : newChild.key
-                  ) || null),
-                updatePortal(returnFiber, existingChildren, newChild, lanes)
-              );
-            case REACT_LAZY_TYPE:
-              var _prevDebugInfo7 = pushDebugInfo(newChild._debugInfo);
-              newChild = resolveLazy(newChild);
-              returnFiber = updateFromMap(
-                existingChildren,
-                returnFiber,
-                newIdx,
-                newChild,
-                lanes
-              );
-              currentDebugInfo = _prevDebugInfo7;
-              return returnFiber;
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild))
-            return (
-              (newIdx = existingChildren.get(newIdx) || null),
-              (existingChildren = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateFragment(
-                returnFiber,
-                newIdx,
-                newChild,
-                lanes,
-                null
-              )),
-              (currentDebugInfo = existingChildren),
-              returnFiber
-            );
-          if ("function" === typeof newChild.then)
-            return (
-              (_prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateFromMap(
-                existingChildren,
-                returnFiber,
-                newIdx,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = _prevDebugInfo7),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return updateFromMap(
-              existingChildren,
-              returnFiber,
-              newIdx,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys) {
-        if ("object" !== typeof child || null === child) return knownKeys;
-        switch (child.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-          case REACT_PORTAL_TYPE:
-            warnForMissingKey(returnFiber, workInProgress, child);
-            var key = child.key;
-            if ("string" !== typeof key) break;
-            if (null === knownKeys) {
-              knownKeys = new Set();
-              knownKeys.add(key);
-              break;
-            }
-            if (!knownKeys.has(key)) {
-              knownKeys.add(key);
-              break;
-            }
-            runWithFiberInDEV(workInProgress, function () {
-              console.error(
-                "Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.",
-                key
-              );
-            });
-            break;
-          case REACT_LAZY_TYPE:
-            (child = resolveLazy(child)),
-              warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys);
-        }
-        return knownKeys;
-      }
-      function reconcileChildrenArray(
-        returnFiber,
-        currentFirstChild,
-        newChildren,
-        lanes
-      ) {
-        for (
-          var knownKeys = null,
-            resultingFirstChild = null,
-            previousNewFiber = null,
-            oldFiber = currentFirstChild,
-            newIdx = (currentFirstChild = 0),
-            nextOldFiber = null;
-          null !== oldFiber && newIdx < newChildren.length;
-          newIdx++
-        ) {
-          oldFiber.index > newIdx
-            ? ((nextOldFiber = oldFiber), (oldFiber = null))
-            : (nextOldFiber = oldFiber.sibling);
-          var newFiber = updateSlot(
-            returnFiber,
-            oldFiber,
-            newChildren[newIdx],
-            lanes
-          );
-          if (null === newFiber) {
-            null === oldFiber && (oldFiber = nextOldFiber);
-            break;
-          }
-          knownKeys = warnOnInvalidKey(
-            returnFiber,
-            newFiber,
-            newChildren[newIdx],
-            knownKeys
-          );
-          shouldTrackSideEffects &&
-            oldFiber &&
-            null === newFiber.alternate &&
-            deleteChild(returnFiber, oldFiber);
-          currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-          null === previousNewFiber
-            ? (resultingFirstChild = newFiber)
-            : (previousNewFiber.sibling = newFiber);
-          previousNewFiber = newFiber;
-          oldFiber = nextOldFiber;
-        }
-        if (newIdx === newChildren.length)
-          return (
-            deleteRemainingChildren(returnFiber, oldFiber),
-            isHydrating && pushTreeFork(returnFiber, newIdx),
-            resultingFirstChild
-          );
-        if (null === oldFiber) {
-          for (; newIdx < newChildren.length; newIdx++)
-            (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
-              null !== oldFiber &&
-                ((knownKeys = warnOnInvalidKey(
-                  returnFiber,
-                  oldFiber,
-                  newChildren[newIdx],
-                  knownKeys
-                )),
-                (currentFirstChild = placeChild(
-                  oldFiber,
-                  currentFirstChild,
-                  newIdx
-                )),
-                null === previousNewFiber
-                  ? (resultingFirstChild = oldFiber)
-                  : (previousNewFiber.sibling = oldFiber),
-                (previousNewFiber = oldFiber));
-          isHydrating && pushTreeFork(returnFiber, newIdx);
-          return resultingFirstChild;
-        }
-        for (
-          oldFiber = mapRemainingChildren(oldFiber);
-          newIdx < newChildren.length;
-          newIdx++
-        )
-          (nextOldFiber = updateFromMap(
-            oldFiber,
-            returnFiber,
-            newIdx,
-            newChildren[newIdx],
-            lanes
-          )),
-            null !== nextOldFiber &&
-              ((knownKeys = warnOnInvalidKey(
-                returnFiber,
-                nextOldFiber,
-                newChildren[newIdx],
-                knownKeys
-              )),
-              shouldTrackSideEffects &&
-                null !== nextOldFiber.alternate &&
-                oldFiber.delete(
-                  null === nextOldFiber.key ? newIdx : nextOldFiber.key
-                ),
-              (currentFirstChild = placeChild(
-                nextOldFiber,
-                currentFirstChild,
-                newIdx
-              )),
-              null === previousNewFiber
-                ? (resultingFirstChild = nextOldFiber)
-                : (previousNewFiber.sibling = nextOldFiber),
-              (previousNewFiber = nextOldFiber));
-        shouldTrackSideEffects &&
-          oldFiber.forEach(function (child) {
-            return deleteChild(returnFiber, child);
-          });
-        isHydrating && pushTreeFork(returnFiber, newIdx);
-        return resultingFirstChild;
-      }
-      function reconcileChildrenIterator(
-        returnFiber,
-        currentFirstChild,
-        newChildren,
-        lanes
-      ) {
-        if (null == newChildren)
-          throw Error("An iterable object provided no iterator.");
-        for (
-          var resultingFirstChild = null,
-            previousNewFiber = null,
-            oldFiber = currentFirstChild,
-            newIdx = (currentFirstChild = 0),
-            nextOldFiber = null,
-            knownKeys = null,
-            step = newChildren.next();
-          null !== oldFiber && !step.done;
-          newIdx++, step = newChildren.next()
-        ) {
-          oldFiber.index > newIdx
-            ? ((nextOldFiber = oldFiber), (oldFiber = null))
-            : (nextOldFiber = oldFiber.sibling);
-          var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);
-          if (null === newFiber) {
-            null === oldFiber && (oldFiber = nextOldFiber);
-            break;
-          }
-          knownKeys = warnOnInvalidKey(
-            returnFiber,
-            newFiber,
-            step.value,
-            knownKeys
-          );
-          shouldTrackSideEffects &&
-            oldFiber &&
-            null === newFiber.alternate &&
-            deleteChild(returnFiber, oldFiber);
-          currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-          null === previousNewFiber
-            ? (resultingFirstChild = newFiber)
-            : (previousNewFiber.sibling = newFiber);
-          previousNewFiber = newFiber;
-          oldFiber = nextOldFiber;
-        }
-        if (step.done)
-          return (
-            deleteRemainingChildren(returnFiber, oldFiber),
-            isHydrating && pushTreeFork(returnFiber, newIdx),
-            resultingFirstChild
-          );
-        if (null === oldFiber) {
-          for (; !step.done; newIdx++, step = newChildren.next())
-            (oldFiber = createChild(returnFiber, step.value, lanes)),
-              null !== oldFiber &&
-                ((knownKeys = warnOnInvalidKey(
-                  returnFiber,
-                  oldFiber,
-                  step.value,
-                  knownKeys
-                )),
-                (currentFirstChild = placeChild(
-                  oldFiber,
-                  currentFirstChild,
-                  newIdx
-                )),
-                null === previousNewFiber
-                  ? (resultingFirstChild = oldFiber)
-                  : (previousNewFiber.sibling = oldFiber),
-                (previousNewFiber = oldFiber));
-          isHydrating && pushTreeFork(returnFiber, newIdx);
-          return resultingFirstChild;
-        }
-        for (
-          oldFiber = mapRemainingChildren(oldFiber);
-          !step.done;
-          newIdx++, step = newChildren.next()
-        )
-          (nextOldFiber = updateFromMap(
-            oldFiber,
-            returnFiber,
-            newIdx,
-            step.value,
-            lanes
-          )),
-            null !== nextOldFiber &&
-              ((knownKeys = warnOnInvalidKey(
-                returnFiber,
-                nextOldFiber,
-                step.value,
-                knownKeys
-              )),
-              shouldTrackSideEffects &&
-                null !== nextOldFiber.alternate &&
-                oldFiber.delete(
-                  null === nextOldFiber.key ? newIdx : nextOldFiber.key
-                ),
-              (currentFirstChild = placeChild(
-                nextOldFiber,
-                currentFirstChild,
-                newIdx
-              )),
-              null === previousNewFiber
-                ? (resultingFirstChild = nextOldFiber)
-                : (previousNewFiber.sibling = nextOldFiber),
-              (previousNewFiber = nextOldFiber));
-        shouldTrackSideEffects &&
-          oldFiber.forEach(function (child) {
-            return deleteChild(returnFiber, child);
-          });
-        isHydrating && pushTreeFork(returnFiber, newIdx);
-        return resultingFirstChild;
-      }
-      function reconcileChildFibersImpl(
-        returnFiber,
-        currentFirstChild,
-        newChild,
-        lanes
-      ) {
-        "object" === typeof newChild &&
-          null !== newChild &&
-          newChild.type === REACT_FRAGMENT_TYPE &&
-          null === newChild.key &&
-          (validateFragmentProps(newChild, null, returnFiber),
-          (newChild = newChild.props.children));
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-              a: {
-                for (var key = newChild.key; null !== currentFirstChild; ) {
-                  if (currentFirstChild.key === key) {
-                    key = newChild.type;
-                    if (key === REACT_FRAGMENT_TYPE) {
-                      if (7 === currentFirstChild.tag) {
-                        deleteRemainingChildren(
-                          returnFiber,
-                          currentFirstChild.sibling
-                        );
-                        lanes = useFiber(
-                          currentFirstChild,
-                          newChild.props.children
-                        );
-                        lanes.return = returnFiber;
-                        lanes._debugOwner = newChild._owner;
-                        lanes._debugInfo = currentDebugInfo;
-                        validateFragmentProps(newChild, lanes, returnFiber);
-                        returnFiber = lanes;
-                        break a;
-                      }
-                    } else if (
-                      currentFirstChild.elementType === key ||
-                      isCompatibleFamilyForHotReloading(
-                        currentFirstChild,
-                        newChild
-                      ) ||
-                      ("object" === typeof key &&
-                        null !== key &&
-                        key.$$typeof === REACT_LAZY_TYPE &&
-                        resolveLazy(key) === currentFirstChild.type)
-                    ) {
-                      deleteRemainingChildren(
-                        returnFiber,
-                        currentFirstChild.sibling
-                      );
-                      lanes = useFiber(currentFirstChild, newChild.props);
-                      coerceRef(lanes, newChild);
-                      lanes.return = returnFiber;
-                      lanes._debugOwner = newChild._owner;
-                      lanes._debugInfo = currentDebugInfo;
-                      returnFiber = lanes;
-                      break a;
-                    }
-                    deleteRemainingChildren(returnFiber, currentFirstChild);
-                    break;
-                  } else deleteChild(returnFiber, currentFirstChild);
-                  currentFirstChild = currentFirstChild.sibling;
-                }
-                newChild.type === REACT_FRAGMENT_TYPE
-                  ? ((lanes = createFiberFromFragment(
-                      newChild.props.children,
-                      returnFiber.mode,
-                      lanes,
-                      newChild.key
-                    )),
-                    (lanes.return = returnFiber),
-                    (lanes._debugOwner = returnFiber),
-                    (lanes._debugTask = returnFiber._debugTask),
-                    (lanes._debugInfo = currentDebugInfo),
-                    validateFragmentProps(newChild, lanes, returnFiber),
-                    (returnFiber = lanes))
-                  : ((lanes = createFiberFromElement(
-                      newChild,
-                      returnFiber.mode,
-                      lanes
-                    )),
-                    coerceRef(lanes, newChild),
-                    (lanes.return = returnFiber),
-                    (lanes._debugInfo = currentDebugInfo),
-                    (returnFiber = lanes));
-              }
-              returnFiber = placeSingleChild(returnFiber);
-              currentDebugInfo = prevDebugInfo;
-              return returnFiber;
-            case REACT_PORTAL_TYPE:
-              a: {
-                prevDebugInfo = newChild;
-                for (
-                  newChild = prevDebugInfo.key;
-                  null !== currentFirstChild;
-
-                ) {
-                  if (currentFirstChild.key === newChild)
-                    if (
-                      4 === currentFirstChild.tag &&
-                      currentFirstChild.stateNode.containerInfo ===
-                        prevDebugInfo.containerInfo &&
-                      currentFirstChild.stateNode.implementation ===
-                        prevDebugInfo.implementation
-                    ) {
-                      deleteRemainingChildren(
-                        returnFiber,
-                        currentFirstChild.sibling
-                      );
-                      lanes = useFiber(
-                        currentFirstChild,
-                        prevDebugInfo.children || []
-                      );
-                      lanes.return = returnFiber;
-                      returnFiber = lanes;
-                      break a;
-                    } else {
-                      deleteRemainingChildren(returnFiber, currentFirstChild);
-                      break;
-                    }
-                  else deleteChild(returnFiber, currentFirstChild);
-                  currentFirstChild = currentFirstChild.sibling;
-                }
-                lanes = createFiberFromPortal(
-                  prevDebugInfo,
-                  returnFiber.mode,
-                  lanes
-                );
-                lanes.return = returnFiber;
-                returnFiber = lanes;
-              }
-              return placeSingleChild(returnFiber);
-            case REACT_LAZY_TYPE:
-              return (
-                (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-                (newChild = resolveLazy(newChild)),
-                (returnFiber = reconcileChildFibersImpl(
-                  returnFiber,
-                  currentFirstChild,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = prevDebugInfo),
-                returnFiber
-              );
-          }
-          if (isArrayImpl(newChild))
-            return (
-              (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = reconcileChildrenArray(
-                returnFiber,
-                currentFirstChild,
-                newChild,
-                lanes
-              )),
-              (currentDebugInfo = prevDebugInfo),
-              returnFiber
-            );
-          if (getIteratorFn(newChild)) {
-            prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-            key = getIteratorFn(newChild);
-            if ("function" !== typeof key)
-              throw Error(
-                "An object is not an iterable. This error is likely caused by a bug in React. Please file an issue."
-              );
-            var newChildren = key.call(newChild);
-            if (newChildren === newChild) {
-              if (
-                0 !== returnFiber.tag ||
-                "[object GeneratorFunction]" !==
-                  Object.prototype.toString.call(returnFiber.type) ||
-                "[object Generator]" !==
-                  Object.prototype.toString.call(newChildren)
-              )
-                didWarnAboutGenerators ||
-                  console.error(
-                    "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-                  ),
-                  (didWarnAboutGenerators = !0);
-            } else
-              newChild.entries !== key ||
-                didWarnAboutMaps ||
-                (console.error(
-                  "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-                ),
-                (didWarnAboutMaps = !0));
-            returnFiber = reconcileChildrenIterator(
-              returnFiber,
-              currentFirstChild,
-              newChildren,
-              lanes
-            );
-            currentDebugInfo = prevDebugInfo;
-            return returnFiber;
-          }
-          if ("function" === typeof newChild.then)
-            return (
-              (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = reconcileChildFibersImpl(
-                returnFiber,
-                currentFirstChild,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = prevDebugInfo),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return reconcileChildFibersImpl(
-              returnFiber,
-              currentFirstChild,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (prevDebugInfo = "" + newChild),
-            null !== currentFirstChild && 6 === currentFirstChild.tag
-              ? (deleteRemainingChildren(
-                  returnFiber,
-                  currentFirstChild.sibling
-                ),
-                (lanes = useFiber(currentFirstChild, prevDebugInfo)),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes))
-              : (deleteRemainingChildren(returnFiber, currentFirstChild),
-                (lanes = createFiberFromText(
-                  prevDebugInfo,
-                  returnFiber.mode,
-                  lanes
-                )),
-                (lanes.return = returnFiber),
-                (lanes._debugOwner = returnFiber),
-                (lanes._debugTask = returnFiber._debugTask),
-                (lanes._debugInfo = currentDebugInfo),
-                (returnFiber = lanes)),
-            placeSingleChild(returnFiber)
-          );
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return deleteRemainingChildren(returnFiber, currentFirstChild);
-      }
-      return function (returnFiber, currentFirstChild, newChild, lanes) {
-        var prevDebugInfo = currentDebugInfo;
-        currentDebugInfo = null;
-        try {
-          thenableIndexCounter$1 = 0;
-          var firstChildFiber = reconcileChildFibersImpl(
-            returnFiber,
-            currentFirstChild,
-            newChild,
-            lanes
-          );
-          thenableState$1 = null;
-          return firstChildFiber;
-        } catch (x) {
-          if (x === SuspenseException || x === SuspenseActionException) throw x;
-          var fiber = createFiber(29, x, null, returnFiber.mode);
-          fiber.lanes = lanes;
-          fiber.return = returnFiber;
-          var debugInfo = (fiber._debugInfo = currentDebugInfo);
-          fiber._debugOwner = returnFiber._debugOwner;
-          fiber._debugTask = returnFiber._debugTask;
-          if (null != debugInfo)
-            for (var i = debugInfo.length - 1; 0 <= i; i--)
-              if ("string" === typeof debugInfo[i].stack) {
-                fiber._debugOwner = debugInfo[i];
-                fiber._debugTask = debugInfo[i].debugTask;
-                break;
-              }
-          return fiber;
-        } finally {
-          currentDebugInfo = prevDebugInfo;
-        }
-      };
-    }
-    function validateSuspenseListNestedChild(childSlot, index) {
-      var isAnArray = isArrayImpl(childSlot);
-      childSlot = !isAnArray && "function" === typeof getIteratorFn(childSlot);
-      return isAnArray || childSlot
-        ? ((isAnArray = isAnArray ? "array" : "iterable"),
-          console.error(
-            "A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>",
-            isAnArray,
-            index,
-            isAnArray
-          ),
-          !1)
-        : !0;
-    }
-    function initializeUpdateQueue(fiber) {
-      fiber.updateQueue = {
-        baseState: fiber.memoizedState,
-        firstBaseUpdate: null,
-        lastBaseUpdate: null,
-        shared: { pending: null, lanes: 0, hiddenCallbacks: null },
-        callbacks: null
-      };
-    }
-    function cloneUpdateQueue(current, workInProgress) {
-      current = current.updateQueue;
-      workInProgress.updateQueue === current &&
-        (workInProgress.updateQueue = {
-          baseState: current.baseState,
-          firstBaseUpdate: current.firstBaseUpdate,
-          lastBaseUpdate: current.lastBaseUpdate,
-          shared: current.shared,
-          callbacks: null
-        });
-    }
-    function createUpdate(lane) {
-      return {
-        lane: lane,
-        tag: UpdateState,
-        payload: null,
-        callback: null,
-        next: null
-      };
-    }
-    function enqueueUpdate(fiber, update, lane) {
-      var updateQueue = fiber.updateQueue;
-      if (null === updateQueue) return null;
-      updateQueue = updateQueue.shared;
-      if (
-        currentlyProcessingQueue === updateQueue &&
-        !didWarnUpdateInsideUpdate
-      ) {
-        var componentName = getComponentNameFromFiber(fiber);
-        console.error(
-          "An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\n\nPlease update the following component: %s",
-          componentName
-        );
-        didWarnUpdateInsideUpdate = !0;
-      }
-      if ((executionContext & RenderContext) !== NoContext)
-        return (
-          (componentName = updateQueue.pending),
-          null === componentName
-            ? (update.next = update)
-            : ((update.next = componentName.next),
-              (componentName.next = update)),
-          (updateQueue.pending = update),
-          (update = getRootForUpdatedFiber(fiber)),
-          markUpdateLaneFromFiberToRoot(fiber, null, lane),
-          update
-        );
-      enqueueUpdate$1(fiber, updateQueue, update, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function entangleTransitions(root, fiber, lane) {
-      fiber = fiber.updateQueue;
-      if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {
-        var queueLanes = fiber.lanes;
-        queueLanes &= root.pendingLanes;
-        lane |= queueLanes;
-        fiber.lanes = lane;
-        markRootEntangled(root, lane);
-      }
-    }
-    function enqueueCapturedUpdate(workInProgress, capturedUpdate) {
-      var queue = workInProgress.updateQueue,
-        current = workInProgress.alternate;
-      if (
-        null !== current &&
-        ((current = current.updateQueue), queue === current)
-      ) {
-        var newFirst = null,
-          newLast = null;
-        queue = queue.firstBaseUpdate;
-        if (null !== queue) {
-          do {
-            var clone = {
-              lane: queue.lane,
-              tag: queue.tag,
-              payload: queue.payload,
-              callback: null,
-              next: null
-            };
-            null === newLast
-              ? (newFirst = newLast = clone)
-              : (newLast = newLast.next = clone);
-            queue = queue.next;
-          } while (null !== queue);
-          null === newLast
-            ? (newFirst = newLast = capturedUpdate)
-            : (newLast = newLast.next = capturedUpdate);
-        } else newFirst = newLast = capturedUpdate;
-        queue = {
-          baseState: current.baseState,
-          firstBaseUpdate: newFirst,
-          lastBaseUpdate: newLast,
-          shared: current.shared,
-          callbacks: current.callbacks
-        };
-        workInProgress.updateQueue = queue;
-        return;
-      }
-      workInProgress = queue.lastBaseUpdate;
-      null === workInProgress
-        ? (queue.firstBaseUpdate = capturedUpdate)
-        : (workInProgress.next = capturedUpdate);
-      queue.lastBaseUpdate = capturedUpdate;
-    }
-    function suspendIfUpdateReadFromEntangledAsyncAction() {
-      if (didReadFromEntangledAsyncAction) {
-        var entangledActionThenable = currentEntangledActionThenable;
-        if (null !== entangledActionThenable) throw entangledActionThenable;
-      }
-    }
-    function processUpdateQueue(
-      workInProgress,
-      props,
-      instance$jscomp$0,
-      renderLanes
-    ) {
-      didReadFromEntangledAsyncAction = !1;
-      var queue = workInProgress.updateQueue;
-      hasForceUpdate = !1;
-      currentlyProcessingQueue = queue.shared;
-      var firstBaseUpdate = queue.firstBaseUpdate,
-        lastBaseUpdate = queue.lastBaseUpdate,
-        pendingQueue = queue.shared.pending;
-      if (null !== pendingQueue) {
-        queue.shared.pending = null;
-        var lastPendingUpdate = pendingQueue,
-          firstPendingUpdate = lastPendingUpdate.next;
-        lastPendingUpdate.next = null;
-        null === lastBaseUpdate
-          ? (firstBaseUpdate = firstPendingUpdate)
-          : (lastBaseUpdate.next = firstPendingUpdate);
-        lastBaseUpdate = lastPendingUpdate;
-        var current = workInProgress.alternate;
-        null !== current &&
-          ((current = current.updateQueue),
-          (pendingQueue = current.lastBaseUpdate),
-          pendingQueue !== lastBaseUpdate &&
-            (null === pendingQueue
-              ? (current.firstBaseUpdate = firstPendingUpdate)
-              : (pendingQueue.next = firstPendingUpdate),
-            (current.lastBaseUpdate = lastPendingUpdate)));
-      }
-      if (null !== firstBaseUpdate) {
-        var newState = queue.baseState;
-        lastBaseUpdate = 0;
-        current = firstPendingUpdate = lastPendingUpdate = null;
-        pendingQueue = firstBaseUpdate;
-        do {
-          var updateLane = pendingQueue.lane & -536870913,
-            isHiddenUpdate = updateLane !== pendingQueue.lane;
-          if (
-            isHiddenUpdate
-              ? (workInProgressRootRenderLanes & updateLane) === updateLane
-              : (renderLanes & updateLane) === updateLane
-          ) {
-            0 !== updateLane &&
-              updateLane === currentEntangledLane &&
-              (didReadFromEntangledAsyncAction = !0);
-            null !== current &&
-              (current = current.next =
-                {
-                  lane: 0,
-                  tag: pendingQueue.tag,
-                  payload: pendingQueue.payload,
-                  callback: null,
-                  next: null
-                });
-            a: {
-              updateLane = workInProgress;
-              var partialState = pendingQueue;
-              var nextProps = props,
-                instance = instance$jscomp$0;
-              switch (partialState.tag) {
-                case ReplaceState:
-                  partialState = partialState.payload;
-                  if ("function" === typeof partialState) {
-                    isDisallowedContextReadInDEV = !0;
-                    var nextState = partialState.call(
-                      instance,
-                      newState,
-                      nextProps
-                    );
-                    if (updateLane.mode & StrictLegacyMode) {
-                      setIsStrictModeForDevtools(!0);
-                      try {
-                        partialState.call(instance, newState, nextProps);
-                      } finally {
-                        setIsStrictModeForDevtools(!1);
-                      }
-                    }
-                    isDisallowedContextReadInDEV = !1;
-                    newState = nextState;
-                    break a;
-                  }
-                  newState = partialState;
-                  break a;
-                case CaptureUpdate:
-                  updateLane.flags = (updateLane.flags & -65537) | 128;
-                case UpdateState:
-                  nextState = partialState.payload;
-                  if ("function" === typeof nextState) {
-                    isDisallowedContextReadInDEV = !0;
-                    partialState = nextState.call(
-                      instance,
-                      newState,
-                      nextProps
-                    );
-                    if (updateLane.mode & StrictLegacyMode) {
-                      setIsStrictModeForDevtools(!0);
-                      try {
-                        nextState.call(instance, newState, nextProps);
-                      } finally {
-                        setIsStrictModeForDevtools(!1);
-                      }
-                    }
-                    isDisallowedContextReadInDEV = !1;
-                  } else partialState = nextState;
-                  if (null === partialState || void 0 === partialState) break a;
-                  newState = assign({}, newState, partialState);
-                  break a;
-                case ForceUpdate:
-                  hasForceUpdate = !0;
-              }
-            }
-            updateLane = pendingQueue.callback;
-            null !== updateLane &&
-              ((workInProgress.flags |= 64),
-              isHiddenUpdate && (workInProgress.flags |= 8192),
-              (isHiddenUpdate = queue.callbacks),
-              null === isHiddenUpdate
-                ? (queue.callbacks = [updateLane])
-                : isHiddenUpdate.push(updateLane));
-          } else
-            (isHiddenUpdate = {
-              lane: updateLane,
-              tag: pendingQueue.tag,
-              payload: pendingQueue.payload,
-              callback: pendingQueue.callback,
-              next: null
-            }),
-              null === current
-                ? ((firstPendingUpdate = current = isHiddenUpdate),
-                  (lastPendingUpdate = newState))
-                : (current = current.next = isHiddenUpdate),
-              (lastBaseUpdate |= updateLane);
-          pendingQueue = pendingQueue.next;
-          if (null === pendingQueue)
-            if (((pendingQueue = queue.shared.pending), null === pendingQueue))
-              break;
-            else
-              (isHiddenUpdate = pendingQueue),
-                (pendingQueue = isHiddenUpdate.next),
-                (isHiddenUpdate.next = null),
-                (queue.lastBaseUpdate = isHiddenUpdate),
-                (queue.shared.pending = null);
-        } while (1);
-        null === current && (lastPendingUpdate = newState);
-        queue.baseState = lastPendingUpdate;
-        queue.firstBaseUpdate = firstPendingUpdate;
-        queue.lastBaseUpdate = current;
-        null === firstBaseUpdate && (queue.shared.lanes = 0);
-        workInProgressRootSkippedLanes |= lastBaseUpdate;
-        workInProgress.lanes = lastBaseUpdate;
-        workInProgress.memoizedState = newState;
-      }
-      currentlyProcessingQueue = null;
-    }
-    function callCallback(callback, context) {
-      if ("function" !== typeof callback)
-        throw Error(
-          "Invalid argument passed as callback. Expected a function. Instead received: " +
-            callback
-        );
-      callback.call(context);
-    }
-    function commitHiddenCallbacks(updateQueue, context) {
-      var hiddenCallbacks = updateQueue.shared.hiddenCallbacks;
-      if (null !== hiddenCallbacks)
-        for (
-          updateQueue.shared.hiddenCallbacks = null, updateQueue = 0;
-          updateQueue < hiddenCallbacks.length;
-          updateQueue++
-        )
-          callCallback(hiddenCallbacks[updateQueue], context);
-    }
-    function commitCallbacks(updateQueue, context) {
-      var callbacks = updateQueue.callbacks;
-      if (null !== callbacks)
-        for (
-          updateQueue.callbacks = null, updateQueue = 0;
-          updateQueue < callbacks.length;
-          updateQueue++
-        )
-          callCallback(callbacks[updateQueue], context);
-    }
-    function pushHiddenContext(fiber, context) {
-      var prevEntangledRenderLanes = entangledRenderLanes;
-      push(prevEntangledRenderLanesCursor, prevEntangledRenderLanes, fiber);
-      push(currentTreeHiddenStackCursor, context, fiber);
-      entangledRenderLanes = prevEntangledRenderLanes | context.baseLanes;
-    }
-    function reuseHiddenContextOnStack(fiber) {
-      push(prevEntangledRenderLanesCursor, entangledRenderLanes, fiber);
-      push(
-        currentTreeHiddenStackCursor,
-        currentTreeHiddenStackCursor.current,
-        fiber
-      );
-    }
-    function popHiddenContext(fiber) {
-      entangledRenderLanes = prevEntangledRenderLanesCursor.current;
-      pop(currentTreeHiddenStackCursor, fiber);
-      pop(prevEntangledRenderLanesCursor, fiber);
-    }
-    function pushPrimaryTreeSuspenseHandler(handler) {
-      var current = handler.alternate;
-      push(
-        suspenseStackCursor,
-        suspenseStackCursor.current & SubtreeSuspenseContextMask,
-        handler
-      );
-      push(suspenseHandlerStackCursor, handler, handler);
-      null === shellBoundary &&
-        (null === current || null !== currentTreeHiddenStackCursor.current
-          ? (shellBoundary = handler)
-          : null !== current.memoizedState && (shellBoundary = handler));
-    }
-    function pushDehydratedActivitySuspenseHandler(fiber) {
-      push(suspenseStackCursor, suspenseStackCursor.current, fiber);
-      push(suspenseHandlerStackCursor, fiber, fiber);
-      null === shellBoundary && (shellBoundary = fiber);
-    }
-    function pushOffscreenSuspenseHandler(fiber) {
-      22 === fiber.tag
-        ? (push(suspenseStackCursor, suspenseStackCursor.current, fiber),
-          push(suspenseHandlerStackCursor, fiber, fiber),
-          null === shellBoundary && (shellBoundary = fiber))
-        : reuseSuspenseHandlerOnStack(fiber);
-    }
-    function reuseSuspenseHandlerOnStack(fiber) {
-      push(suspenseStackCursor, suspenseStackCursor.current, fiber);
-      push(
-        suspenseHandlerStackCursor,
-        suspenseHandlerStackCursor.current,
-        fiber
-      );
-    }
-    function popSuspenseHandler(fiber) {
-      pop(suspenseHandlerStackCursor, fiber);
-      shellBoundary === fiber && (shellBoundary = null);
-      pop(suspenseStackCursor, fiber);
-    }
-    function findFirstSuspended(row) {
-      for (var node = row; null !== node; ) {
-        if (13 === node.tag) {
-          var state = node.memoizedState;
-          if (
-            null !== state &&
-            ((state = state.dehydrated),
-            null === state ||
-              isSuspenseInstancePending(state) ||
-              isSuspenseInstanceFallback(state))
-          )
-            return node;
-        } else if (
-          19 === node.tag &&
-          ("forwards" === node.memoizedProps.revealOrder ||
-            "backwards" === node.memoizedProps.revealOrder ||
-            "unstable_legacy-backwards" === node.memoizedProps.revealOrder ||
-            "together" === node.memoizedProps.revealOrder)
-        ) {
-          if (0 !== (node.flags & 128)) return node;
-        } else if (null !== node.child) {
-          node.child.return = node;
-          node = node.child;
-          continue;
-        }
-        if (node === row) break;
-        for (; null === node.sibling; ) {
-          if (null === node.return || node.return === row) return null;
-          node = node.return;
-        }
-        node.sibling.return = node.return;
-        node = node.sibling;
-      }
-      return null;
-    }
-    function mountHookTypesDev() {
-      var hookName = currentHookNameInDev;
-      null === hookTypesDev
-        ? (hookTypesDev = [hookName])
-        : hookTypesDev.push(hookName);
-    }
-    function updateHookTypesDev() {
-      var hookName = currentHookNameInDev;
-      if (
-        null !== hookTypesDev &&
-        (hookTypesUpdateIndexDev++,
-        hookTypesDev[hookTypesUpdateIndexDev] !== hookName)
-      ) {
-        var componentName = getComponentNameFromFiber(currentlyRenderingFiber);
-        if (
-          !didWarnAboutMismatchedHooksForComponent.has(componentName) &&
-          (didWarnAboutMismatchedHooksForComponent.add(componentName),
-          null !== hookTypesDev)
-        ) {
-          for (var table = "", i = 0; i <= hookTypesUpdateIndexDev; i++) {
-            var oldHookName = hookTypesDev[i],
-              newHookName =
-                i === hookTypesUpdateIndexDev ? hookName : oldHookName;
-            for (
-              oldHookName = i + 1 + ". " + oldHookName;
-              30 > oldHookName.length;
-
-            )
-              oldHookName += " ";
-            oldHookName += newHookName + "\n";
-            table += oldHookName;
-          }
-          console.error(
-            "React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\n\n   Previous render            Next render\n   ------------------------------------------------------\n%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
-            componentName,
-            table
-          );
-        }
-      }
-    }
-    function checkDepsAreArrayDev(deps) {
-      void 0 === deps ||
-        null === deps ||
-        isArrayImpl(deps) ||
-        console.error(
-          "%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.",
-          currentHookNameInDev,
-          typeof deps
-        );
-    }
-    function warnOnUseFormStateInDev() {
-      var componentName = getComponentNameFromFiber(currentlyRenderingFiber);
-      didWarnAboutUseFormState.has(componentName) ||
-        (didWarnAboutUseFormState.add(componentName),
-        console.error(
-          "ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.",
-          componentName
-        ));
-    }
-    function throwInvalidHookError() {
-      throw Error(
-        "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-      );
-    }
-    function areHookInputsEqual(nextDeps, prevDeps) {
-      if (ignorePreviousDependencies) return !1;
-      if (null === prevDeps)
-        return (
-          console.error(
-            "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-            currentHookNameInDev
-          ),
-          !1
-        );
-      nextDeps.length !== prevDeps.length &&
-        console.error(
-          "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-          currentHookNameInDev,
-          "[" + prevDeps.join(", ") + "]",
-          "[" + nextDeps.join(", ") + "]"
-        );
-      for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)
-        if (!objectIs(nextDeps[i], prevDeps[i])) return !1;
-      return !0;
-    }
-    function renderWithHooks(
-      current,
-      workInProgress,
-      Component,
-      props,
-      secondArg,
-      nextRenderLanes
-    ) {
-      renderLanes = nextRenderLanes;
-      currentlyRenderingFiber = workInProgress;
-      hookTypesDev = null !== current ? current._debugHookTypes : null;
-      hookTypesUpdateIndexDev = -1;
-      ignorePreviousDependencies =
-        null !== current && current.type !== workInProgress.type;
-      if (
-        "[object AsyncFunction]" ===
-          Object.prototype.toString.call(Component) ||
-        "[object AsyncGeneratorFunction]" ===
-          Object.prototype.toString.call(Component)
-      )
-        (nextRenderLanes = getComponentNameFromFiber(currentlyRenderingFiber)),
-          didWarnAboutAsyncClientComponent.has(nextRenderLanes) ||
-            (didWarnAboutAsyncClientComponent.add(nextRenderLanes),
-            console.error(
-              "%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.",
-              null === nextRenderLanes
-                ? "An unknown Component"
-                : "<" + nextRenderLanes + ">"
-            ));
-      workInProgress.memoizedState = null;
-      workInProgress.updateQueue = null;
-      workInProgress.lanes = 0;
-      ReactSharedInternals.H =
-        null !== current && null !== current.memoizedState
-          ? HooksDispatcherOnUpdateInDEV
-          : null !== hookTypesDev
-            ? HooksDispatcherOnMountWithHookTypesInDEV
-            : HooksDispatcherOnMountInDEV;
-      shouldDoubleInvokeUserFnsInHooksDEV = nextRenderLanes =
-        (workInProgress.mode & StrictLegacyMode) !== NoMode;
-      var children = callComponentInDEV(Component, props, secondArg);
-      shouldDoubleInvokeUserFnsInHooksDEV = !1;
-      didScheduleRenderPhaseUpdateDuringThisPass &&
-        (children = renderWithHooksAgain(
-          workInProgress,
-          Component,
-          props,
-          secondArg
-        ));
-      if (nextRenderLanes) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          children = renderWithHooksAgain(
-            workInProgress,
-            Component,
-            props,
-            secondArg
-          );
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      finishRenderingHooks(current, workInProgress);
-      return children;
-    }
-    function finishRenderingHooks(current, workInProgress) {
-      workInProgress._debugHookTypes = hookTypesDev;
-      null === workInProgress.dependencies
-        ? null !== thenableState &&
-          (workInProgress.dependencies = {
-            lanes: 0,
-            firstContext: null,
-            _debugThenableState: thenableState
-          })
-        : (workInProgress.dependencies._debugThenableState = thenableState);
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      var didRenderTooFewHooks =
-        null !== currentHook && null !== currentHook.next;
-      renderLanes = 0;
-      hookTypesDev =
-        currentHookNameInDev =
-        workInProgressHook =
-        currentHook =
-        currentlyRenderingFiber =
-          null;
-      hookTypesUpdateIndexDev = -1;
-      null !== current &&
-        (current.flags & 65011712) !== (workInProgress.flags & 65011712) &&
-        console.error(
-          "Internal React error: Expected static flag was missing. Please notify the React team."
-        );
-      didScheduleRenderPhaseUpdate = !1;
-      thenableIndexCounter = 0;
-      thenableState = null;
-      if (didRenderTooFewHooks)
-        throw Error(
-          "Rendered fewer hooks than expected. This may be caused by an accidental early return statement."
-        );
-      null === current ||
-        didReceiveUpdate ||
-        ((current = current.dependencies),
-        null !== current &&
-          checkIfContextChanged(current) &&
-          (didReceiveUpdate = !0));
-      needsToResetSuspendedThenableDEV
-        ? ((needsToResetSuspendedThenableDEV = !1), (current = !0))
-        : (current = !1);
-      current &&
-        ((workInProgress =
-          getComponentNameFromFiber(workInProgress) || "Unknown"),
-        didWarnAboutUseWrappedInTryCatch.has(workInProgress) ||
-          didWarnAboutAsyncClientComponent.has(workInProgress) ||
-          (didWarnAboutUseWrappedInTryCatch.add(workInProgress),
-          console.error(
-            "`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary."
-          )));
-    }
-    function renderWithHooksAgain(workInProgress, Component, props, secondArg) {
-      currentlyRenderingFiber = workInProgress;
-      var numberOfReRenders = 0;
-      do {
-        didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);
-        thenableIndexCounter = 0;
-        didScheduleRenderPhaseUpdateDuringThisPass = !1;
-        if (numberOfReRenders >= RE_RENDER_LIMIT)
-          throw Error(
-            "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-          );
-        numberOfReRenders += 1;
-        ignorePreviousDependencies = !1;
-        workInProgressHook = currentHook = null;
-        if (null != workInProgress.updateQueue) {
-          var children = workInProgress.updateQueue;
-          children.lastEffect = null;
-          children.events = null;
-          children.stores = null;
-          null != children.memoCache && (children.memoCache.index = 0);
-        }
-        hookTypesUpdateIndexDev = -1;
-        ReactSharedInternals.H = HooksDispatcherOnRerenderInDEV;
-        children = callComponentInDEV(Component, props, secondArg);
-      } while (didScheduleRenderPhaseUpdateDuringThisPass);
-      return children;
-    }
-    function TransitionAwareHostComponent() {
-      var dispatcher = ReactSharedInternals.H,
-        maybeThenable = dispatcher.useState()[0];
-      maybeThenable =
-        "function" === typeof maybeThenable.then
-          ? useThenable(maybeThenable)
-          : maybeThenable;
-      dispatcher = dispatcher.useState()[0];
-      (null !== currentHook ? currentHook.memoizedState : null) !==
-        dispatcher && (currentlyRenderingFiber.flags |= 1024);
-      return maybeThenable;
-    }
-    function checkDidRenderIdHook() {
-      var didRenderIdHook = 0 !== localIdCounter;
-      localIdCounter = 0;
-      return didRenderIdHook;
-    }
-    function bailoutHooks(current, workInProgress, lanes) {
-      workInProgress.updateQueue = current.updateQueue;
-      workInProgress.flags =
-        (workInProgress.mode & StrictEffectsMode) !== NoMode
-          ? workInProgress.flags & -402655237
-          : workInProgress.flags & -2053;
-      current.lanes &= ~lanes;
-    }
-    function resetHooksOnUnwind(workInProgress) {
-      if (didScheduleRenderPhaseUpdate) {
-        for (
-          workInProgress = workInProgress.memoizedState;
-          null !== workInProgress;
-
-        ) {
-          var queue = workInProgress.queue;
-          null !== queue && (queue.pending = null);
-          workInProgress = workInProgress.next;
-        }
-        didScheduleRenderPhaseUpdate = !1;
-      }
-      renderLanes = 0;
-      hookTypesDev =
-        workInProgressHook =
-        currentHook =
-        currentlyRenderingFiber =
-          null;
-      hookTypesUpdateIndexDev = -1;
-      currentHookNameInDev = null;
-      didScheduleRenderPhaseUpdateDuringThisPass = !1;
-      thenableIndexCounter = localIdCounter = 0;
-      thenableState = null;
-    }
-    function mountWorkInProgressHook() {
-      var hook = {
-        memoizedState: null,
-        baseState: null,
-        baseQueue: null,
-        queue: null,
-        next: null
-      };
-      null === workInProgressHook
-        ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)
-        : (workInProgressHook = workInProgressHook.next = hook);
-      return workInProgressHook;
-    }
-    function updateWorkInProgressHook() {
-      if (null === currentHook) {
-        var nextCurrentHook = currentlyRenderingFiber.alternate;
-        nextCurrentHook =
-          null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;
-      } else nextCurrentHook = currentHook.next;
-      var nextWorkInProgressHook =
-        null === workInProgressHook
-          ? currentlyRenderingFiber.memoizedState
-          : workInProgressHook.next;
-      if (null !== nextWorkInProgressHook)
-        (workInProgressHook = nextWorkInProgressHook),
-          (currentHook = nextCurrentHook);
-      else {
-        if (null === nextCurrentHook) {
-          if (null === currentlyRenderingFiber.alternate)
-            throw Error(
-              "Update hook called on initial render. This is likely a bug in React. Please file an issue."
-            );
-          throw Error("Rendered more hooks than during the previous render.");
-        }
-        currentHook = nextCurrentHook;
-        nextCurrentHook = {
-          memoizedState: currentHook.memoizedState,
-          baseState: currentHook.baseState,
-          baseQueue: currentHook.baseQueue,
-          queue: currentHook.queue,
-          next: null
-        };
-        null === workInProgressHook
-          ? (currentlyRenderingFiber.memoizedState = workInProgressHook =
-              nextCurrentHook)
-          : (workInProgressHook = workInProgressHook.next = nextCurrentHook);
-      }
-      return workInProgressHook;
-    }
-    function createFunctionComponentUpdateQueue() {
-      return { lastEffect: null, events: null, stores: null, memoCache: null };
-    }
-    function useThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = createThenableState());
-      thenable = trackUsedThenable(thenableState, thenable, index);
-      index = currentlyRenderingFiber;
-      null ===
-        (null === workInProgressHook
-          ? index.memoizedState
-          : workInProgressHook.next) &&
-        ((index = index.alternate),
-        (ReactSharedInternals.H =
-          null !== index && null !== index.memoizedState
-            ? HooksDispatcherOnUpdateInDEV
-            : HooksDispatcherOnMountInDEV));
-      return thenable;
-    }
-    function use(usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return useThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    }
-    function useMemoCache(size) {
-      var memoCache = null,
-        updateQueue = currentlyRenderingFiber.updateQueue;
-      null !== updateQueue && (memoCache = updateQueue.memoCache);
-      if (null == memoCache) {
-        var current = currentlyRenderingFiber.alternate;
-        null !== current &&
-          ((current = current.updateQueue),
-          null !== current &&
-            ((current = current.memoCache),
-            null != current &&
-              (memoCache = {
-                data: current.data.map(function (array) {
-                  return array.slice();
-                }),
-                index: 0
-              })));
-      }
-      null == memoCache && (memoCache = { data: [], index: 0 });
-      null === updateQueue &&
-        ((updateQueue = createFunctionComponentUpdateQueue()),
-        (currentlyRenderingFiber.updateQueue = updateQueue));
-      updateQueue.memoCache = memoCache;
-      updateQueue = memoCache.data[memoCache.index];
-      if (void 0 === updateQueue || ignorePreviousDependencies)
-        for (
-          updateQueue = memoCache.data[memoCache.index] = Array(size),
-            current = 0;
-          current < size;
-          current++
-        )
-          updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;
-      else
-        updateQueue.length !== size &&
-          console.error(
-            "Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.",
-            updateQueue.length,
-            size
-          );
-      memoCache.index++;
-      return updateQueue;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function mountReducer(reducer, initialArg, init) {
-      var hook = mountWorkInProgressHook();
-      if (void 0 !== init) {
-        var initialState = init(initialArg);
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            init(initialArg);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      } else initialState = initialArg;
-      hook.memoizedState = hook.baseState = initialState;
-      reducer = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: reducer,
-        lastRenderedState: initialState
-      };
-      hook.queue = reducer;
-      reducer = reducer.dispatch = dispatchReducerAction.bind(
-        null,
-        currentlyRenderingFiber,
-        reducer
-      );
-      return [hook.memoizedState, reducer];
-    }
-    function updateReducer(reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateReducerImpl(hook, currentHook, reducer);
-    }
-    function updateReducerImpl(hook, current, reducer) {
-      var queue = hook.queue;
-      if (null === queue)
-        throw Error(
-          "Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)"
-        );
-      queue.lastRenderedReducer = reducer;
-      var baseQueue = hook.baseQueue,
-        pendingQueue = queue.pending;
-      if (null !== pendingQueue) {
-        if (null !== baseQueue) {
-          var baseFirst = baseQueue.next;
-          baseQueue.next = pendingQueue.next;
-          pendingQueue.next = baseFirst;
-        }
-        current.baseQueue !== baseQueue &&
-          console.error(
-            "Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."
-          );
-        current.baseQueue = baseQueue = pendingQueue;
-        queue.pending = null;
-      }
-      pendingQueue = hook.baseState;
-      if (null === baseQueue) hook.memoizedState = pendingQueue;
-      else {
-        current = baseQueue.next;
-        var newBaseQueueFirst = (baseFirst = null),
-          newBaseQueueLast = null,
-          update = current,
-          didReadFromEntangledAsyncAction = !1;
-        do {
-          var updateLane = update.lane & -536870913;
-          if (
-            updateLane !== update.lane
-              ? (workInProgressRootRenderLanes & updateLane) === updateLane
-              : (renderLanes & updateLane) === updateLane
-          ) {
-            var revertLane = update.revertLane;
-            if (0 === revertLane)
-              null !== newBaseQueueLast &&
-                (newBaseQueueLast = newBaseQueueLast.next =
-                  {
-                    lane: 0,
-                    revertLane: 0,
-                    gesture: null,
-                    action: update.action,
-                    hasEagerState: update.hasEagerState,
-                    eagerState: update.eagerState,
-                    next: null
-                  }),
-                updateLane === currentEntangledLane &&
-                  (didReadFromEntangledAsyncAction = !0);
-            else if ((renderLanes & revertLane) === revertLane) {
-              update = update.next;
-              revertLane === currentEntangledLane &&
-                (didReadFromEntangledAsyncAction = !0);
-              continue;
-            } else
-              (updateLane = {
-                lane: 0,
-                revertLane: update.revertLane,
-                gesture: null,
-                action: update.action,
-                hasEagerState: update.hasEagerState,
-                eagerState: update.eagerState,
-                next: null
-              }),
-                null === newBaseQueueLast
-                  ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),
-                    (baseFirst = pendingQueue))
-                  : (newBaseQueueLast = newBaseQueueLast.next = updateLane),
-                (currentlyRenderingFiber.lanes |= revertLane),
-                (workInProgressRootSkippedLanes |= revertLane);
-            updateLane = update.action;
-            shouldDoubleInvokeUserFnsInHooksDEV &&
-              reducer(pendingQueue, updateLane);
-            pendingQueue = update.hasEagerState
-              ? update.eagerState
-              : reducer(pendingQueue, updateLane);
-          } else
-            (revertLane = {
-              lane: updateLane,
-              revertLane: update.revertLane,
-              gesture: update.gesture,
-              action: update.action,
-              hasEagerState: update.hasEagerState,
-              eagerState: update.eagerState,
-              next: null
-            }),
-              null === newBaseQueueLast
-                ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),
-                  (baseFirst = pendingQueue))
-                : (newBaseQueueLast = newBaseQueueLast.next = revertLane),
-              (currentlyRenderingFiber.lanes |= updateLane),
-              (workInProgressRootSkippedLanes |= updateLane);
-          update = update.next;
-        } while (null !== update && update !== current);
-        null === newBaseQueueLast
-          ? (baseFirst = pendingQueue)
-          : (newBaseQueueLast.next = newBaseQueueFirst);
-        if (
-          !objectIs(pendingQueue, hook.memoizedState) &&
-          ((didReceiveUpdate = !0),
-          didReadFromEntangledAsyncAction &&
-            ((reducer = currentEntangledActionThenable), null !== reducer))
-        )
-          throw reducer;
-        hook.memoizedState = pendingQueue;
-        hook.baseState = baseFirst;
-        hook.baseQueue = newBaseQueueLast;
-        queue.lastRenderedState = pendingQueue;
-      }
-      null === baseQueue && (queue.lanes = 0);
-      return [hook.memoizedState, queue.dispatch];
-    }
-    function rerenderReducer(reducer) {
-      var hook = updateWorkInProgressHook(),
-        queue = hook.queue;
-      if (null === queue)
-        throw Error(
-          "Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)"
-        );
-      queue.lastRenderedReducer = reducer;
-      var dispatch = queue.dispatch,
-        lastRenderPhaseUpdate = queue.pending,
-        newState = hook.memoizedState;
-      if (null !== lastRenderPhaseUpdate) {
-        queue.pending = null;
-        var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);
-        do
-          (newState = reducer(newState, update.action)), (update = update.next);
-        while (update !== lastRenderPhaseUpdate);
-        objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);
-        hook.memoizedState = newState;
-        null === hook.baseQueue && (hook.baseState = newState);
-        queue.lastRenderedState = newState;
-      }
-      return [newState, dispatch];
-    }
-    function mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
-      var fiber = currentlyRenderingFiber,
-        hook = mountWorkInProgressHook();
-      if (isHydrating) {
-        if (void 0 === getServerSnapshot)
-          throw Error(
-            "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-          );
-        var nextSnapshot = getServerSnapshot();
-        didWarnUncachedGetSnapshot ||
-          nextSnapshot === getServerSnapshot() ||
-          (console.error(
-            "The result of getServerSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      } else {
-        nextSnapshot = getSnapshot();
-        didWarnUncachedGetSnapshot ||
-          ((getServerSnapshot = getSnapshot()),
-          objectIs(nextSnapshot, getServerSnapshot) ||
-            (console.error(
-              "The result of getSnapshot should be cached to avoid an infinite loop"
-            ),
-            (didWarnUncachedGetSnapshot = !0)));
-        if (null === workInProgressRoot)
-          throw Error(
-            "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-          );
-        0 !== (workInProgressRootRenderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);
-      }
-      hook.memoizedState = nextSnapshot;
-      getServerSnapshot = { value: nextSnapshot, getSnapshot: getSnapshot };
-      hook.queue = getServerSnapshot;
-      mountEffect(
-        subscribeToStore.bind(null, fiber, getServerSnapshot, subscribe),
-        [subscribe]
-      );
-      fiber.flags |= 2048;
-      pushSimpleEffect(
-        HasEffect | Passive,
-        { destroy: void 0 },
-        updateStoreInstance.bind(
-          null,
-          fiber,
-          getServerSnapshot,
-          nextSnapshot,
-          getSnapshot
-        ),
-        null
-      );
-      return nextSnapshot;
-    }
-    function updateSyncExternalStore(
-      subscribe,
-      getSnapshot,
-      getServerSnapshot
-    ) {
-      var fiber = currentlyRenderingFiber,
-        hook = updateWorkInProgressHook(),
-        isHydrating$jscomp$0 = isHydrating;
-      if (isHydrating$jscomp$0) {
-        if (void 0 === getServerSnapshot)
-          throw Error(
-            "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-          );
-        getServerSnapshot = getServerSnapshot();
-      } else if (
-        ((getServerSnapshot = getSnapshot()), !didWarnUncachedGetSnapshot)
-      ) {
-        var cachedSnapshot = getSnapshot();
-        objectIs(getServerSnapshot, cachedSnapshot) ||
-          (console.error(
-            "The result of getSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      }
-      if (
-        (cachedSnapshot = !objectIs(
-          (currentHook || hook).memoizedState,
-          getServerSnapshot
-        ))
-      )
-        (hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0);
-      hook = hook.queue;
-      var create = subscribeToStore.bind(null, fiber, hook, subscribe);
-      updateEffectImpl(2048, Passive, create, [subscribe]);
-      if (
-        hook.getSnapshot !== getSnapshot ||
-        cachedSnapshot ||
-        (null !== workInProgressHook &&
-          workInProgressHook.memoizedState.tag & HasEffect)
-      ) {
-        fiber.flags |= 2048;
-        pushSimpleEffect(
-          HasEffect | Passive,
-          { destroy: void 0 },
-          updateStoreInstance.bind(
-            null,
-            fiber,
-            hook,
-            getServerSnapshot,
-            getSnapshot
-          ),
-          null
-        );
-        if (null === workInProgressRoot)
-          throw Error(
-            "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-          );
-        isHydrating$jscomp$0 ||
-          0 !== (renderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-      }
-      return getServerSnapshot;
-    }
-    function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {
-      fiber.flags |= 16384;
-      fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };
-      getSnapshot = currentlyRenderingFiber.updateQueue;
-      null === getSnapshot
-        ? ((getSnapshot = createFunctionComponentUpdateQueue()),
-          (currentlyRenderingFiber.updateQueue = getSnapshot),
-          (getSnapshot.stores = [fiber]))
-        : ((renderedSnapshot = getSnapshot.stores),
-          null === renderedSnapshot
-            ? (getSnapshot.stores = [fiber])
-            : renderedSnapshot.push(fiber));
-    }
-    function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {
-      inst.value = nextSnapshot;
-      inst.getSnapshot = getSnapshot;
-      checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);
-    }
-    function subscribeToStore(fiber, inst, subscribe) {
-      return subscribe(function () {
-        checkIfSnapshotChanged(inst) &&
-          (startUpdateTimerByLane(2, "updateSyncExternalStore()", fiber),
-          forceStoreRerender(fiber));
-      });
-    }
-    function checkIfSnapshotChanged(inst) {
-      var latestGetSnapshot = inst.getSnapshot;
-      inst = inst.value;
-      try {
-        var nextValue = latestGetSnapshot();
-        return !objectIs(inst, nextValue);
-      } catch (error) {
-        return !0;
-      }
-    }
-    function forceStoreRerender(fiber) {
-      var root = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-    }
-    function mountStateImpl(initialState) {
-      var hook = mountWorkInProgressHook();
-      if ("function" === typeof initialState) {
-        var initialStateInitializer = initialState;
-        initialState = initialStateInitializer();
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            initialStateInitializer();
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      }
-      hook.memoizedState = hook.baseState = initialState;
-      hook.queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: basicStateReducer,
-        lastRenderedState: initialState
-      };
-      return hook;
-    }
-    function mountState(initialState) {
-      initialState = mountStateImpl(initialState);
-      var queue = initialState.queue,
-        dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);
-      queue.dispatch = dispatch;
-      return [initialState.memoizedState, dispatch];
-    }
-    function mountOptimistic(passthrough) {
-      var hook = mountWorkInProgressHook();
-      hook.memoizedState = hook.baseState = passthrough;
-      var queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: null,
-        lastRenderedState: null
-      };
-      hook.queue = queue;
-      hook = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !0,
-        queue
-      );
-      queue.dispatch = hook;
-      return [passthrough, hook];
-    }
-    function updateOptimistic(passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    }
-    function updateOptimisticImpl(hook, current, passthrough, reducer) {
-      hook.baseState = passthrough;
-      return updateReducerImpl(
-        hook,
-        currentHook,
-        "function" === typeof reducer ? reducer : basicStateReducer
-      );
-    }
-    function rerenderOptimistic(passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      if (null !== currentHook)
-        return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-      hook.baseState = passthrough;
-      return [passthrough, hook.queue.dispatch];
-    }
-    function dispatchActionState(
-      fiber,
-      actionQueue,
-      setPendingState,
-      setState,
-      payload
-    ) {
-      if (isRenderPhaseUpdate(fiber))
-        throw Error("Cannot update form state while rendering.");
-      fiber = actionQueue.action;
-      if (null !== fiber) {
-        var actionNode = {
-          payload: payload,
-          action: fiber,
-          next: null,
-          isTransition: !0,
-          status: "pending",
-          value: null,
-          reason: null,
-          listeners: [],
-          then: function (listener) {
-            actionNode.listeners.push(listener);
-          }
-        };
-        null !== ReactSharedInternals.T
-          ? setPendingState(!0)
-          : (actionNode.isTransition = !1);
-        setState(actionNode);
-        setPendingState = actionQueue.pending;
-        null === setPendingState
-          ? ((actionNode.next = actionQueue.pending = actionNode),
-            runActionStateAction(actionQueue, actionNode))
-          : ((actionNode.next = setPendingState.next),
-            (actionQueue.pending = setPendingState.next = actionNode));
-      }
-    }
-    function runActionStateAction(actionQueue, node) {
-      var action = node.action,
-        payload = node.payload,
-        prevState = actionQueue.state;
-      if (node.isTransition) {
-        var prevTransition = ReactSharedInternals.T,
-          currentTransition = {};
-        currentTransition._updatedFibers = new Set();
-        ReactSharedInternals.T = currentTransition;
-        try {
-          var returnValue = action(prevState, payload),
-            onStartTransitionFinish = ReactSharedInternals.S;
-          null !== onStartTransitionFinish &&
-            onStartTransitionFinish(currentTransition, returnValue);
-          handleActionReturnValue(actionQueue, node, returnValue);
-        } catch (error) {
-          onActionError(actionQueue, node, error);
-        } finally {
-          null !== prevTransition &&
-            null !== currentTransition.types &&
-            (null !== prevTransition.types &&
-              prevTransition.types !== currentTransition.types &&
-              console.error(
-                "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
-              ),
-            (prevTransition.types = currentTransition.types)),
-            (ReactSharedInternals.T = prevTransition),
-            null === prevTransition &&
-              currentTransition._updatedFibers &&
-              ((actionQueue = currentTransition._updatedFibers.size),
-              currentTransition._updatedFibers.clear(),
-              10 < actionQueue &&
-                console.warn(
-                  "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
-                ));
-        }
-      } else
-        try {
-          (currentTransition = action(prevState, payload)),
-            handleActionReturnValue(actionQueue, node, currentTransition);
-        } catch (error$4) {
-          onActionError(actionQueue, node, error$4);
-        }
-    }
-    function handleActionReturnValue(actionQueue, node, returnValue) {
-      null !== returnValue &&
-      "object" === typeof returnValue &&
-      "function" === typeof returnValue.then
-        ? (ReactSharedInternals.asyncTransitions++,
-          returnValue.then(releaseAsyncTransition, releaseAsyncTransition),
-          returnValue.then(
-            function (nextState) {
-              onActionSuccess(actionQueue, node, nextState);
-            },
-            function (error) {
-              return onActionError(actionQueue, node, error);
-            }
-          ),
-          node.isTransition ||
-            console.error(
-              "An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop."
-            ))
-        : onActionSuccess(actionQueue, node, returnValue);
-    }
-    function onActionSuccess(actionQueue, actionNode, nextState) {
-      actionNode.status = "fulfilled";
-      actionNode.value = nextState;
-      notifyActionListeners(actionNode);
-      actionQueue.state = nextState;
-      actionNode = actionQueue.pending;
-      null !== actionNode &&
-        ((nextState = actionNode.next),
-        nextState === actionNode
-          ? (actionQueue.pending = null)
-          : ((nextState = nextState.next),
-            (actionNode.next = nextState),
-            runActionStateAction(actionQueue, nextState)));
-    }
-    function onActionError(actionQueue, actionNode, error) {
-      var last = actionQueue.pending;
-      actionQueue.pending = null;
-      if (null !== last) {
-        last = last.next;
-        do
-          (actionNode.status = "rejected"),
-            (actionNode.reason = error),
-            notifyActionListeners(actionNode),
-            (actionNode = actionNode.next);
-        while (actionNode !== last);
-      }
-      actionQueue.action = null;
-    }
-    function notifyActionListeners(actionNode) {
-      actionNode = actionNode.listeners;
-      for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();
-    }
-    function actionStateReducer(oldState, newState) {
-      return newState;
-    }
-    function mountActionState(action, initialStateProp) {
-      if (isHydrating) {
-        var ssrFormState = workInProgressRoot.formState;
-        if (null !== ssrFormState) {
-          a: {
-            var isMatching = currentlyRenderingFiber;
-            if (isHydrating) {
-              if (nextHydratableInstance) {
-                b: {
-                  var markerInstance = nextHydratableInstance;
-                  for (
-                    var inRootOrSingleton = rootOrSingletonContext;
-                    8 !== markerInstance.nodeType;
-
-                  ) {
-                    if (!inRootOrSingleton) {
-                      markerInstance = null;
-                      break b;
-                    }
-                    markerInstance = getNextHydratable(
-                      markerInstance.nextSibling
-                    );
-                    if (null === markerInstance) {
-                      markerInstance = null;
-                      break b;
-                    }
-                  }
-                  inRootOrSingleton = markerInstance.data;
-                  markerInstance =
-                    inRootOrSingleton === FORM_STATE_IS_MATCHING ||
-                    inRootOrSingleton === FORM_STATE_IS_NOT_MATCHING
-                      ? markerInstance
-                      : null;
-                }
-                if (markerInstance) {
-                  nextHydratableInstance = getNextHydratable(
-                    markerInstance.nextSibling
-                  );
-                  isMatching = markerInstance.data === FORM_STATE_IS_MATCHING;
-                  break a;
-                }
-              }
-              throwOnHydrationMismatch(isMatching);
-            }
-            isMatching = !1;
-          }
-          isMatching && (initialStateProp = ssrFormState[0]);
-        }
-      }
-      ssrFormState = mountWorkInProgressHook();
-      ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;
-      isMatching = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: actionStateReducer,
-        lastRenderedState: initialStateProp
-      };
-      ssrFormState.queue = isMatching;
-      ssrFormState = dispatchSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        isMatching
-      );
-      isMatching.dispatch = ssrFormState;
-      isMatching = mountStateImpl(!1);
-      inRootOrSingleton = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !1,
-        isMatching.queue
-      );
-      isMatching = mountWorkInProgressHook();
-      markerInstance = {
-        state: initialStateProp,
-        dispatch: null,
-        action: action,
-        pending: null
-      };
-      isMatching.queue = markerInstance;
-      ssrFormState = dispatchActionState.bind(
-        null,
-        currentlyRenderingFiber,
-        markerInstance,
-        inRootOrSingleton,
-        ssrFormState
-      );
-      markerInstance.dispatch = ssrFormState;
-      isMatching.memoizedState = action;
-      return [initialStateProp, ssrFormState, !1];
-    }
-    function updateActionState(action) {
-      var stateHook = updateWorkInProgressHook();
-      return updateActionStateImpl(stateHook, currentHook, action);
-    }
-    function updateActionStateImpl(stateHook, currentStateHook, action) {
-      currentStateHook = updateReducerImpl(
-        stateHook,
-        currentStateHook,
-        actionStateReducer
-      )[0];
-      stateHook = updateReducer(basicStateReducer)[0];
-      if (
-        "object" === typeof currentStateHook &&
-        null !== currentStateHook &&
-        "function" === typeof currentStateHook.then
-      )
-        try {
-          var state = useThenable(currentStateHook);
-        } catch (x) {
-          if (x === SuspenseException) throw SuspenseActionException;
-          throw x;
-        }
-      else state = currentStateHook;
-      currentStateHook = updateWorkInProgressHook();
-      var actionQueue = currentStateHook.queue,
-        dispatch = actionQueue.dispatch;
-      action !== currentStateHook.memoizedState &&
-        ((currentlyRenderingFiber.flags |= 2048),
-        pushSimpleEffect(
-          HasEffect | Passive,
-          { destroy: void 0 },
-          actionStateActionEffect.bind(null, actionQueue, action),
-          null
-        ));
-      return [state, dispatch, stateHook];
-    }
-    function actionStateActionEffect(actionQueue, action) {
-      actionQueue.action = action;
-    }
-    function rerenderActionState(action) {
-      var stateHook = updateWorkInProgressHook(),
-        currentStateHook = currentHook;
-      if (null !== currentStateHook)
-        return updateActionStateImpl(stateHook, currentStateHook, action);
-      updateWorkInProgressHook();
-      stateHook = stateHook.memoizedState;
-      currentStateHook = updateWorkInProgressHook();
-      var dispatch = currentStateHook.queue.dispatch;
-      currentStateHook.memoizedState = action;
-      return [stateHook, dispatch, !1];
-    }
-    function pushSimpleEffect(tag, inst, create, deps) {
-      tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };
-      inst = currentlyRenderingFiber.updateQueue;
-      null === inst &&
-        ((inst = createFunctionComponentUpdateQueue()),
-        (currentlyRenderingFiber.updateQueue = inst));
-      create = inst.lastEffect;
-      null === create
-        ? (inst.lastEffect = tag.next = tag)
-        : ((deps = create.next),
-          (create.next = tag),
-          (tag.next = deps),
-          (inst.lastEffect = tag));
-      return tag;
-    }
-    function mountRef(initialValue) {
-      var hook = mountWorkInProgressHook();
-      initialValue = { current: initialValue };
-      return (hook.memoizedState = initialValue);
-    }
-    function mountEffectImpl(fiberFlags, hookFlags, create, deps) {
-      var hook = mountWorkInProgressHook();
-      currentlyRenderingFiber.flags |= fiberFlags;
-      hook.memoizedState = pushSimpleEffect(
-        HasEffect | hookFlags,
-        { destroy: void 0 },
-        create,
-        void 0 === deps ? null : deps
-      );
-    }
-    function updateEffectImpl(fiberFlags, hookFlags, create, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var inst = hook.memoizedState.inst;
-      null !== currentHook &&
-      null !== deps &&
-      areHookInputsEqual(deps, currentHook.memoizedState.deps)
-        ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))
-        : ((currentlyRenderingFiber.flags |= fiberFlags),
-          (hook.memoizedState = pushSimpleEffect(
-            HasEffect | hookFlags,
-            inst,
-            create,
-            deps
-          )));
-    }
-    function mountEffect(create, deps) {
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode
-        ? mountEffectImpl(276826112, Passive, create, deps)
-        : mountEffectImpl(8390656, Passive, create, deps);
-    }
-    function useEffectEventImpl(payload) {
-      currentlyRenderingFiber.flags |= 4;
-      var componentUpdateQueue = currentlyRenderingFiber.updateQueue;
-      if (null === componentUpdateQueue)
-        (componentUpdateQueue = createFunctionComponentUpdateQueue()),
-          (currentlyRenderingFiber.updateQueue = componentUpdateQueue),
-          (componentUpdateQueue.events = [payload]);
-      else {
-        var events = componentUpdateQueue.events;
-        null === events
-          ? (componentUpdateQueue.events = [payload])
-          : events.push(payload);
-      }
-    }
-    function mountEvent(callback) {
-      var hook = mountWorkInProgressHook(),
-        ref = { impl: callback };
-      hook.memoizedState = ref;
-      return function () {
-        if ((executionContext & RenderContext) !== NoContext)
-          throw Error(
-            "A function wrapped in useEffectEvent can't be called during rendering."
-          );
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-    function updateEvent(callback) {
-      var ref = updateWorkInProgressHook().memoizedState;
-      useEffectEventImpl({ ref: ref, nextImpl: callback });
-      return function () {
-        if ((executionContext & RenderContext) !== NoContext)
-          throw Error(
-            "A function wrapped in useEffectEvent can't be called during rendering."
-          );
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-    function mountLayoutEffect(create, deps) {
-      var fiberFlags = 4194308;
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
-        (fiberFlags |= 134217728);
-      return mountEffectImpl(fiberFlags, Layout, create, deps);
-    }
-    function imperativeHandleEffect(create, ref) {
-      if ("function" === typeof ref) {
-        create = create();
-        var refCleanup = ref(create);
-        return function () {
-          "function" === typeof refCleanup ? refCleanup() : ref(null);
-        };
-      }
-      if (null !== ref && void 0 !== ref)
-        return (
-          ref.hasOwnProperty("current") ||
-            console.error(
-              "Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.",
-              "an object with keys {" + Object.keys(ref).join(", ") + "}"
-            ),
-          (create = create()),
-          (ref.current = create),
-          function () {
-            ref.current = null;
-          }
-        );
-    }
-    function mountImperativeHandle(ref, create, deps) {
-      "function" !== typeof create &&
-        console.error(
-          "Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",
-          null !== create ? typeof create : "null"
-        );
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      var fiberFlags = 4194308;
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
-        (fiberFlags |= 134217728);
-      mountEffectImpl(
-        fiberFlags,
-        Layout,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    }
-    function updateImperativeHandle(ref, create, deps) {
-      "function" !== typeof create &&
-        console.error(
-          "Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",
-          null !== create ? typeof create : "null"
-        );
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      updateEffectImpl(
-        4,
-        Layout,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    }
-    function mountCallback(callback, deps) {
-      mountWorkInProgressHook().memoizedState = [
-        callback,
-        void 0 === deps ? null : deps
-      ];
-      return callback;
-    }
-    function updateCallback(callback, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var prevState = hook.memoizedState;
-      if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-        return prevState[0];
-      hook.memoizedState = [callback, deps];
-      return callback;
-    }
-    function mountMemo(nextCreate, deps) {
-      var hook = mountWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var nextValue = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [nextValue, deps];
-      return nextValue;
-    }
-    function updateMemo(nextCreate, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var prevState = hook.memoizedState;
-      if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-        return prevState[0];
-      prevState = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [prevState, deps];
-      return prevState;
-    }
-    function mountDeferredValue(value, initialValue) {
-      var hook = mountWorkInProgressHook();
-      return mountDeferredValueImpl(hook, value, initialValue);
-    }
-    function updateDeferredValue(value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return updateDeferredValueImpl(
-        hook,
-        currentHook.memoizedState,
-        value,
-        initialValue
-      );
-    }
-    function rerenderDeferredValue(value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return null === currentHook
-        ? mountDeferredValueImpl(hook, value, initialValue)
-        : updateDeferredValueImpl(
-            hook,
-            currentHook.memoizedState,
-            value,
-            initialValue
-          );
-    }
-    function mountDeferredValueImpl(hook, value, initialValue) {
-      if (
-        void 0 === initialValue ||
-        (0 !== (renderLanes & 1073741824) &&
-          0 === (workInProgressRootRenderLanes & 261930))
-      )
-        return (hook.memoizedState = value);
-      hook.memoizedState = initialValue;
-      hook = requestDeferredLane();
-      currentlyRenderingFiber.lanes |= hook;
-      workInProgressRootSkippedLanes |= hook;
-      return initialValue;
-    }
-    function updateDeferredValueImpl(hook, prevValue, value, initialValue) {
-      if (objectIs(value, prevValue)) return value;
-      if (null !== currentTreeHiddenStackCursor.current)
-        return (
-          (hook = mountDeferredValueImpl(hook, value, initialValue)),
-          objectIs(hook, prevValue) || (didReceiveUpdate = !0),
-          hook
-        );
-      if (
-        0 === (renderLanes & 42) ||
-        (0 !== (renderLanes & 1073741824) &&
-          0 === (workInProgressRootRenderLanes & 261930))
-      )
-        return (didReceiveUpdate = !0), (hook.memoizedState = value);
-      hook = requestDeferredLane();
-      currentlyRenderingFiber.lanes |= hook;
-      workInProgressRootSkippedLanes |= hook;
-      return prevValue;
-    }
-    function releaseAsyncTransition() {
-      ReactSharedInternals.asyncTransitions--;
-    }
-    function startTransition(
-      fiber,
-      queue,
-      pendingState,
-      finishedState,
-      callback
-    ) {
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p =
-        0 !== previousPriority && previousPriority < ContinuousEventPriority
-          ? previousPriority
-          : ContinuousEventPriority;
-      var prevTransition = ReactSharedInternals.T,
-        currentTransition = {};
-      currentTransition._updatedFibers = new Set();
-      ReactSharedInternals.T = currentTransition;
-      dispatchOptimisticSetState(fiber, !1, queue, pendingState);
-      try {
-        var returnValue = callback(),
-          onStartTransitionFinish = ReactSharedInternals.S;
-        null !== onStartTransitionFinish &&
-          onStartTransitionFinish(currentTransition, returnValue);
-        if (
-          null !== returnValue &&
-          "object" === typeof returnValue &&
-          "function" === typeof returnValue.then
-        ) {
-          ReactSharedInternals.asyncTransitions++;
-          returnValue.then(releaseAsyncTransition, releaseAsyncTransition);
-          var thenableForFinishedState = chainThenableValue(
-            returnValue,
-            finishedState
-          );
-          dispatchSetStateInternal(
-            fiber,
-            queue,
-            thenableForFinishedState,
-            requestUpdateLane(fiber)
-          );
-        } else
-          dispatchSetStateInternal(
-            fiber,
-            queue,
-            finishedState,
-            requestUpdateLane(fiber)
-          );
-      } catch (error) {
-        dispatchSetStateInternal(
-          fiber,
-          queue,
-          { then: function () {}, status: "rejected", reason: error },
-          requestUpdateLane(fiber)
-        );
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          null !== prevTransition &&
-            null !== currentTransition.types &&
-            (null !== prevTransition.types &&
-              prevTransition.types !== currentTransition.types &&
-              console.error(
-                "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
-              ),
-            (prevTransition.types = currentTransition.types)),
-          (ReactSharedInternals.T = prevTransition),
-          null === prevTransition &&
-            currentTransition._updatedFibers &&
-            ((fiber = currentTransition._updatedFibers.size),
-            currentTransition._updatedFibers.clear(),
-            10 < fiber &&
-              console.warn(
-                "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
-              ));
-      }
-    }
-    function startHostTransition(formFiber, pendingState, action, formData) {
-      if (5 !== formFiber.tag)
-        throw Error(
-          "Expected the form instance to be a HostComponent. This is a bug in React."
-        );
-      var queue = ensureFormComponentIsStateful(formFiber).queue;
-      startHostActionTimer(formFiber);
-      startTransition(
-        formFiber,
-        queue,
-        pendingState,
-        NotPendingTransition,
-        null === action
-          ? noop
-          : function () {
-              requestFormReset$1(formFiber);
-              return action(formData);
-            }
-      );
-    }
-    function ensureFormComponentIsStateful(formFiber) {
-      var existingStateHook = formFiber.memoizedState;
-      if (null !== existingStateHook) return existingStateHook;
-      existingStateHook = {
-        memoizedState: NotPendingTransition,
-        baseState: NotPendingTransition,
-        baseQueue: null,
-        queue: {
-          pending: null,
-          lanes: 0,
-          dispatch: null,
-          lastRenderedReducer: basicStateReducer,
-          lastRenderedState: NotPendingTransition
-        },
-        next: null
-      };
-      var initialResetState = {};
-      existingStateHook.next = {
-        memoizedState: initialResetState,
-        baseState: initialResetState,
-        baseQueue: null,
-        queue: {
-          pending: null,
-          lanes: 0,
-          dispatch: null,
-          lastRenderedReducer: basicStateReducer,
-          lastRenderedState: initialResetState
-        },
-        next: null
-      };
-      formFiber.memoizedState = existingStateHook;
-      formFiber = formFiber.alternate;
-      null !== formFiber && (formFiber.memoizedState = existingStateHook);
-      return existingStateHook;
-    }
-    function requestFormReset$1(formFiber) {
-      null === ReactSharedInternals.T &&
-        console.error(
-          "requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition."
-        );
-      var stateHook = ensureFormComponentIsStateful(formFiber);
-      null === stateHook.next &&
-        (stateHook = formFiber.alternate.memoizedState);
-      dispatchSetStateInternal(
-        formFiber,
-        stateHook.next.queue,
-        {},
-        requestUpdateLane(formFiber)
-      );
-    }
-    function mountTransition() {
-      var stateHook = mountStateImpl(!1);
-      stateHook = startTransition.bind(
-        null,
-        currentlyRenderingFiber,
-        stateHook.queue,
-        !0,
-        !1
-      );
-      mountWorkInProgressHook().memoizedState = stateHook;
-      return [!1, stateHook];
-    }
-    function updateTransition() {
-      var booleanOrThenable = updateReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    }
-    function rerenderTransition() {
-      var booleanOrThenable = rerenderReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    }
-    function useHostTransitionStatus() {
-      return readContext(HostTransitionContext);
-    }
-    function mountId() {
-      var hook = mountWorkInProgressHook(),
-        identifierPrefix = workInProgressRoot.identifierPrefix;
-      if (isHydrating) {
-        var treeId = treeContextOverflow;
-        var idWithLeadingBit = treeContextId;
-        treeId =
-          (
-            idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))
-          ).toString(32) + treeId;
-        identifierPrefix = "_" + identifierPrefix + "R_" + treeId;
-        treeId = localIdCounter++;
-        0 < treeId && (identifierPrefix += "H" + treeId.toString(32));
-        identifierPrefix += "_";
-      } else
-        (treeId = globalClientIdCounter++),
-          (identifierPrefix =
-            "_" + identifierPrefix + "r_" + treeId.toString(32) + "_");
-      return (hook.memoizedState = identifierPrefix);
-    }
-    function mountRefresh() {
-      return (mountWorkInProgressHook().memoizedState = refreshCache.bind(
-        null,
-        currentlyRenderingFiber
-      ));
-    }
-    function refreshCache(fiber, seedKey) {
-      for (var provider = fiber.return; null !== provider; ) {
-        switch (provider.tag) {
-          case 24:
-          case 3:
-            var lane = requestUpdateLane(provider),
-              refreshUpdate = createUpdate(lane),
-              root = enqueueUpdate(provider, refreshUpdate, lane);
-            null !== root &&
-              (startUpdateTimerByLane(lane, "refresh()", fiber),
-              scheduleUpdateOnFiber(root, provider, lane),
-              entangleTransitions(root, provider, lane));
-            fiber = createCache();
-            null !== seedKey &&
-              void 0 !== seedKey &&
-              null !== root &&
-              console.error(
-                "The seed argument is not enabled outside experimental channels."
-              );
-            refreshUpdate.payload = { cache: fiber };
-            return;
-        }
-        provider = provider.return;
-      }
-    }
-    function dispatchReducerAction(fiber, queue, action) {
-      var args = arguments;
-      "function" === typeof args[3] &&
-        console.error(
-          "State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
-        );
-      args = requestUpdateLane(fiber);
-      var update = {
-        lane: args,
-        revertLane: 0,
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      isRenderPhaseUpdate(fiber)
-        ? enqueueRenderPhaseUpdate(queue, update)
-        : ((update = enqueueConcurrentHookUpdate(fiber, queue, update, args)),
-          null !== update &&
-            (startUpdateTimerByLane(args, "dispatch()", fiber),
-            scheduleUpdateOnFiber(update, fiber, args),
-            entangleTransitionUpdate(update, queue, args)));
-    }
-    function dispatchSetState(fiber, queue, action) {
-      var args = arguments;
-      "function" === typeof args[3] &&
-        console.error(
-          "State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
-        );
-      args = requestUpdateLane(fiber);
-      dispatchSetStateInternal(fiber, queue, action, args) &&
-        startUpdateTimerByLane(args, "setState()", fiber);
-    }
-    function dispatchSetStateInternal(fiber, queue, action, lane) {
-      var update = {
-        lane: lane,
-        revertLane: 0,
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);
-      else {
-        var alternate = fiber.alternate;
-        if (
-          0 === fiber.lanes &&
-          (null === alternate || 0 === alternate.lanes) &&
-          ((alternate = queue.lastRenderedReducer), null !== alternate)
-        ) {
-          var prevDispatcher = ReactSharedInternals.H;
-          ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-          try {
-            var currentState = queue.lastRenderedState,
-              eagerState = alternate(currentState, action);
-            update.hasEagerState = !0;
-            update.eagerState = eagerState;
-            if (objectIs(eagerState, currentState))
-              return (
-                enqueueUpdate$1(fiber, queue, update, 0),
-                null === workInProgressRoot &&
-                  finishQueueingConcurrentUpdates(),
-                !1
-              );
-          } catch (error) {
-          } finally {
-            ReactSharedInternals.H = prevDispatcher;
-          }
-        }
-        action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);
-        if (null !== action)
-          return (
-            scheduleUpdateOnFiber(action, fiber, lane),
-            entangleTransitionUpdate(action, queue, lane),
-            !0
-          );
-      }
-      return !1;
-    }
-    function dispatchOptimisticSetState(
-      fiber,
-      throwIfDuringRender,
-      queue,
-      action
-    ) {
-      null === ReactSharedInternals.T &&
-        0 === currentEntangledLane &&
-        console.error(
-          "An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition."
-        );
-      action = {
-        lane: 2,
-        revertLane: requestTransitionLane(),
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      if (isRenderPhaseUpdate(fiber)) {
-        if (throwIfDuringRender)
-          throw Error("Cannot update optimistic state while rendering.");
-        console.error("Cannot call startTransition while rendering.");
-      } else
-        (throwIfDuringRender = enqueueConcurrentHookUpdate(
-          fiber,
-          queue,
-          action,
-          2
-        )),
-          null !== throwIfDuringRender &&
-            (startUpdateTimerByLane(2, "setOptimistic()", fiber),
-            scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2));
-    }
-    function isRenderPhaseUpdate(fiber) {
-      var alternate = fiber.alternate;
-      return (
-        fiber === currentlyRenderingFiber ||
-        (null !== alternate && alternate === currentlyRenderingFiber)
-      );
-    }
-    function enqueueRenderPhaseUpdate(queue, update) {
-      didScheduleRenderPhaseUpdateDuringThisPass =
-        didScheduleRenderPhaseUpdate = !0;
-      var pending = queue.pending;
-      null === pending
-        ? (update.next = update)
-        : ((update.next = pending.next), (pending.next = update));
-      queue.pending = update;
-    }
-    function entangleTransitionUpdate(root, queue, lane) {
-      if (0 !== (lane & 4194048)) {
-        var queueLanes = queue.lanes;
-        queueLanes &= root.pendingLanes;
-        lane |= queueLanes;
-        queue.lanes = lane;
-        markRootEntangled(root, lane);
-      }
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function applyDerivedStateFromProps(
-      workInProgress,
-      ctor,
-      getDerivedStateFromProps,
-      nextProps
-    ) {
-      var prevState = workInProgress.memoizedState,
-        partialState = getDerivedStateFromProps(nextProps, prevState);
-      if (workInProgress.mode & StrictLegacyMode) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          partialState = getDerivedStateFromProps(nextProps, prevState);
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      void 0 === partialState &&
-        ((ctor = getComponentNameFromType(ctor) || "Component"),
-        didWarnAboutUndefinedDerivedState.has(ctor) ||
-          (didWarnAboutUndefinedDerivedState.add(ctor),
-          console.error(
-            "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-            ctor
-          )));
-      prevState =
-        null === partialState || void 0 === partialState
-          ? prevState
-          : assign({}, prevState, partialState);
-      workInProgress.memoizedState = prevState;
-      0 === workInProgress.lanes &&
-        (workInProgress.updateQueue.baseState = prevState);
-    }
-    function checkShouldComponentUpdate(
-      workInProgress,
-      ctor,
-      oldProps,
-      newProps,
-      oldState,
-      newState,
-      nextContext
-    ) {
-      var instance = workInProgress.stateNode;
-      if ("function" === typeof instance.shouldComponentUpdate) {
-        oldProps = instance.shouldComponentUpdate(
-          newProps,
-          newState,
-          nextContext
-        );
-        if (workInProgress.mode & StrictLegacyMode) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            oldProps = instance.shouldComponentUpdate(
-              newProps,
-              newState,
-              nextContext
-            );
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        void 0 === oldProps &&
-          console.error(
-            "%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",
-            getComponentNameFromType(ctor) || "Component"
-          );
-        return oldProps;
-      }
-      return ctor.prototype && ctor.prototype.isPureReactComponent
-        ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)
-        : !0;
-    }
-    function callComponentWillReceiveProps(
-      workInProgress,
-      instance,
-      newProps,
-      nextContext
-    ) {
-      var oldState = instance.state;
-      "function" === typeof instance.componentWillReceiveProps &&
-        instance.componentWillReceiveProps(newProps, nextContext);
-      "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-        instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);
-      instance.state !== oldState &&
-        ((workInProgress =
-          getComponentNameFromFiber(workInProgress) || "Component"),
-        didWarnAboutStateAssignmentForComponent.has(workInProgress) ||
-          (didWarnAboutStateAssignmentForComponent.add(workInProgress),
-          console.error(
-            "%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-            workInProgress
-          )),
-        classComponentUpdater.enqueueReplaceState(
-          instance,
-          instance.state,
-          null
-        ));
-    }
-    function resolveClassComponentProps(Component, baseProps) {
-      var newProps = baseProps;
-      if ("ref" in baseProps) {
-        newProps = {};
-        for (var propName in baseProps)
-          "ref" !== propName && (newProps[propName] = baseProps[propName]);
-      }
-      if ((Component = Component.defaultProps)) {
-        newProps === baseProps && (newProps = assign({}, newProps));
-        for (var _propName in Component)
-          void 0 === newProps[_propName] &&
-            (newProps[_propName] = Component[_propName]);
-      }
-      return newProps;
-    }
-    function defaultOnUncaughtError(error) {
-      reportGlobalError(error);
-      console.warn(
-        "%s\n\n%s\n",
-        componentName
-          ? "An error occurred in the <" + componentName + "> component."
-          : "An error occurred in one of your React components.",
-        "Consider adding an error boundary to your tree to customize error handling behavior.\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries."
-      );
-    }
-    function defaultOnCaughtError(error) {
-      var componentNameMessage = componentName
-          ? "The above error occurred in the <" + componentName + "> component."
-          : "The above error occurred in one of your React components.",
-        recreateMessage =
-          "React will try to recreate this component tree from scratch using the error boundary you provided, " +
-          ((errorBoundaryName || "Anonymous") + ".");
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [
-          "%o\n\n%s\n\n%s\n",
-          error,
-          componentNameMessage,
-          recreateMessage
-        ].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              badgeFormat + " " + error[0],
-              badgeStyle,
-              pad + JSCompiler_inline_result + pad,
-              resetStyle
-            )
-          : error.splice(
-              0,
-              0,
-              badgeFormat,
-              badgeStyle,
-              pad + JSCompiler_inline_result + pad,
-              resetStyle
-            );
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else
-        console.error(
-          "%o\n\n%s\n\n%s\n",
-          error,
-          componentNameMessage,
-          recreateMessage
-        );
-    }
-    function defaultOnRecoverableError(error) {
-      reportGlobalError(error);
-    }
-    function logUncaughtError(root, errorInfo) {
-      try {
-        componentName = errorInfo.source
-          ? getComponentNameFromFiber(errorInfo.source)
-          : null;
-        errorBoundaryName = null;
-        var error = errorInfo.value;
-        if (null !== ReactSharedInternals.actQueue)
-          ReactSharedInternals.thrownErrors.push(error);
-        else {
-          var onUncaughtError = root.onUncaughtError;
-          onUncaughtError(error, { componentStack: errorInfo.stack });
-        }
-      } catch (e$5) {
-        setTimeout(function () {
-          throw e$5;
-        });
-      }
-    }
-    function logCaughtError(root, boundary, errorInfo) {
-      try {
-        componentName = errorInfo.source
-          ? getComponentNameFromFiber(errorInfo.source)
-          : null;
-        errorBoundaryName = getComponentNameFromFiber(boundary);
-        var onCaughtError = root.onCaughtError;
-        onCaughtError(errorInfo.value, {
-          componentStack: errorInfo.stack,
-          errorBoundary: 1 === boundary.tag ? boundary.stateNode : null
-        });
-      } catch (e$6) {
-        setTimeout(function () {
-          throw e$6;
-        });
-      }
-    }
-    function createRootErrorUpdate(root, errorInfo, lane) {
-      lane = createUpdate(lane);
-      lane.tag = CaptureUpdate;
-      lane.payload = { element: null };
-      lane.callback = function () {
-        runWithFiberInDEV(errorInfo.source, logUncaughtError, root, errorInfo);
-      };
-      return lane;
-    }
-    function createClassErrorUpdate(lane) {
-      lane = createUpdate(lane);
-      lane.tag = CaptureUpdate;
-      return lane;
-    }
-    function initializeClassErrorUpdate(update, root, fiber, errorInfo) {
-      var getDerivedStateFromError = fiber.type.getDerivedStateFromError;
-      if ("function" === typeof getDerivedStateFromError) {
-        var error = errorInfo.value;
-        update.payload = function () {
-          return getDerivedStateFromError(error);
-        };
-        update.callback = function () {
-          markFailedErrorBoundaryForHotReloading(fiber);
-          runWithFiberInDEV(
-            errorInfo.source,
-            logCaughtError,
-            root,
-            fiber,
-            errorInfo
-          );
-        };
-      }
-      var inst = fiber.stateNode;
-      null !== inst &&
-        "function" === typeof inst.componentDidCatch &&
-        (update.callback = function () {
-          markFailedErrorBoundaryForHotReloading(fiber);
-          runWithFiberInDEV(
-            errorInfo.source,
-            logCaughtError,
-            root,
-            fiber,
-            errorInfo
-          );
-          "function" !== typeof getDerivedStateFromError &&
-            (null === legacyErrorBoundariesThatAlreadyFailed
-              ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))
-              : legacyErrorBoundariesThatAlreadyFailed.add(this));
-          callComponentDidCatchInDEV(this, errorInfo);
-          "function" === typeof getDerivedStateFromError ||
-            (0 === (fiber.lanes & 2) &&
-              console.error(
-                "%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.",
-                getComponentNameFromFiber(fiber) || "Unknown"
-              ));
-        });
-    }
-    function throwException(
-      root,
-      returnFiber,
-      sourceFiber,
-      value,
-      rootRenderLanes
-    ) {
-      sourceFiber.flags |= 32768;
-      isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes);
-      if (
-        null !== value &&
-        "object" === typeof value &&
-        "function" === typeof value.then
-      ) {
-        returnFiber = sourceFiber.alternate;
-        null !== returnFiber &&
-          propagateParentContextChanges(
-            returnFiber,
-            sourceFiber,
-            rootRenderLanes,
-            !0
-          );
-        isHydrating && (didSuspendOrErrorDEV = !0);
-        sourceFiber = suspenseHandlerStackCursor.current;
-        if (null !== sourceFiber) {
-          switch (sourceFiber.tag) {
-            case 31:
-            case 13:
-              return (
-                null === shellBoundary
-                  ? renderDidSuspendDelayIfPossible()
-                  : null === sourceFiber.alternate &&
-                    workInProgressRootExitStatus === RootInProgress &&
-                    (workInProgressRootExitStatus = RootSuspended),
-                (sourceFiber.flags &= -257),
-                (sourceFiber.flags |= 65536),
-                (sourceFiber.lanes = rootRenderLanes),
-                value === noopSuspenseyCommitThenable
-                  ? (sourceFiber.flags |= 16384)
-                  : ((returnFiber = sourceFiber.updateQueue),
-                    null === returnFiber
-                      ? (sourceFiber.updateQueue = new Set([value]))
-                      : returnFiber.add(value),
-                    attachPingListener(root, value, rootRenderLanes)),
-                !1
-              );
-            case 22:
-              return (
-                (sourceFiber.flags |= 65536),
-                value === noopSuspenseyCommitThenable
-                  ? (sourceFiber.flags |= 16384)
-                  : ((returnFiber = sourceFiber.updateQueue),
-                    null === returnFiber
-                      ? ((returnFiber = {
-                          transitions: null,
-                          markerInstances: null,
-                          retryQueue: new Set([value])
-                        }),
-                        (sourceFiber.updateQueue = returnFiber))
-                      : ((sourceFiber = returnFiber.retryQueue),
-                        null === sourceFiber
-                          ? (returnFiber.retryQueue = new Set([value]))
-                          : sourceFiber.add(value)),
-                    attachPingListener(root, value, rootRenderLanes)),
-                !1
-              );
-          }
-          throw Error(
-            "Unexpected Suspense handler tag (" +
-              sourceFiber.tag +
-              "). This is a bug in React."
-          );
-        }
-        attachPingListener(root, value, rootRenderLanes);
-        renderDidSuspendDelayIfPossible();
-        return !1;
-      }
-      if (isHydrating)
-        return (
-          (didSuspendOrErrorDEV = !0),
-          (returnFiber = suspenseHandlerStackCursor.current),
-          null !== returnFiber
-            ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),
-              (returnFiber.flags |= 65536),
-              (returnFiber.lanes = rootRenderLanes),
-              value !== HydrationMismatchException &&
-                queueHydrationError(
-                  createCapturedValueAtFiber(
-                    Error(
-                      "There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.",
-                      { cause: value }
-                    ),
-                    sourceFiber
-                  )
-                ))
-            : (value !== HydrationMismatchException &&
-                queueHydrationError(
-                  createCapturedValueAtFiber(
-                    Error(
-                      "There was an error while hydrating but React was able to recover by instead client rendering the entire root.",
-                      { cause: value }
-                    ),
-                    sourceFiber
-                  )
-                ),
-              (root = root.current.alternate),
-              (root.flags |= 65536),
-              (rootRenderLanes &= -rootRenderLanes),
-              (root.lanes |= rootRenderLanes),
-              (value = createCapturedValueAtFiber(value, sourceFiber)),
-              (rootRenderLanes = createRootErrorUpdate(
-                root.stateNode,
-                value,
-                rootRenderLanes
-              )),
-              enqueueCapturedUpdate(root, rootRenderLanes),
-              workInProgressRootExitStatus !== RootSuspendedWithDelay &&
-                (workInProgressRootExitStatus = RootErrored)),
-          !1
-        );
-      var error = createCapturedValueAtFiber(
-        Error(
-          "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.",
-          { cause: value }
-        ),
-        sourceFiber
-      );
-      null === workInProgressRootConcurrentErrors
-        ? (workInProgressRootConcurrentErrors = [error])
-        : workInProgressRootConcurrentErrors.push(error);
-      workInProgressRootExitStatus !== RootSuspendedWithDelay &&
-        (workInProgressRootExitStatus = RootErrored);
-      if (null === returnFiber) return !0;
-      value = createCapturedValueAtFiber(value, sourceFiber);
-      sourceFiber = returnFiber;
-      do {
-        switch (sourceFiber.tag) {
-          case 3:
-            return (
-              (sourceFiber.flags |= 65536),
-              (root = rootRenderLanes & -rootRenderLanes),
-              (sourceFiber.lanes |= root),
-              (root = createRootErrorUpdate(
-                sourceFiber.stateNode,
-                value,
-                root
-              )),
-              enqueueCapturedUpdate(sourceFiber, root),
-              !1
-            );
-          case 1:
-            if (
-              ((returnFiber = sourceFiber.type),
-              (error = sourceFiber.stateNode),
-              0 === (sourceFiber.flags & 128) &&
-                ("function" === typeof returnFiber.getDerivedStateFromError ||
-                  (null !== error &&
-                    "function" === typeof error.componentDidCatch &&
-                    (null === legacyErrorBoundariesThatAlreadyFailed ||
-                      !legacyErrorBoundariesThatAlreadyFailed.has(error)))))
-            )
-              return (
-                (sourceFiber.flags |= 65536),
-                (rootRenderLanes &= -rootRenderLanes),
-                (sourceFiber.lanes |= rootRenderLanes),
-                (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),
-                initializeClassErrorUpdate(
-                  rootRenderLanes,
-                  root,
-                  sourceFiber,
-                  value
-                ),
-                enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
-                !1
-              );
-        }
-        sourceFiber = sourceFiber.return;
-      } while (null !== sourceFiber);
-      return !1;
-    }
-    function reconcileChildren(
-      current,
-      workInProgress,
-      nextChildren,
-      renderLanes
-    ) {
-      workInProgress.child =
-        null === current
-          ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)
-          : reconcileChildFibers(
-              workInProgress,
-              current.child,
-              nextChildren,
-              renderLanes
-            );
-    }
-    function updateForwardRef(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      Component = Component.render;
-      var ref = workInProgress.ref;
-      if ("ref" in nextProps) {
-        var propsWithoutRef = {};
-        for (var key in nextProps)
-          "ref" !== key && (propsWithoutRef[key] = nextProps[key]);
-      } else propsWithoutRef = nextProps;
-      prepareToReadContext(workInProgress);
-      nextProps = renderWithHooks(
-        current,
-        workInProgress,
-        Component,
-        propsWithoutRef,
-        ref,
-        renderLanes
-      );
-      key = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && key && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, nextProps, renderLanes);
-      return workInProgress.child;
-    }
-    function updateMemoComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (null === current) {
-        var type = Component.type;
-        if (
-          "function" === typeof type &&
-          !shouldConstruct(type) &&
-          void 0 === type.defaultProps &&
-          null === Component.compare
-        )
-          return (
-            (Component = resolveFunctionForHotReloading(type)),
-            (workInProgress.tag = 15),
-            (workInProgress.type = Component),
-            validateFunctionComponentInDev(workInProgress, type),
-            updateSimpleMemoComponent(
-              current,
-              workInProgress,
-              Component,
-              nextProps,
-              renderLanes
-            )
-          );
-        current = createFiberFromTypeAndProps(
-          Component.type,
-          null,
-          nextProps,
-          workInProgress,
-          workInProgress.mode,
-          renderLanes
-        );
-        current.ref = workInProgress.ref;
-        current.return = workInProgress;
-        return (workInProgress.child = current);
-      }
-      type = current.child;
-      if (!checkScheduledUpdateOrContext(current, renderLanes)) {
-        var prevProps = type.memoizedProps;
-        Component = Component.compare;
-        Component = null !== Component ? Component : shallowEqual;
-        if (
-          Component(prevProps, nextProps) &&
-          current.ref === workInProgress.ref
-        )
-          return bailoutOnAlreadyFinishedWork(
-            current,
-            workInProgress,
-            renderLanes
-          );
-      }
-      workInProgress.flags |= 1;
-      current = createWorkInProgress(type, nextProps);
-      current.ref = workInProgress.ref;
-      current.return = workInProgress;
-      return (workInProgress.child = current);
-    }
-    function updateSimpleMemoComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (null !== current) {
-        var prevProps = current.memoizedProps;
-        if (
-          shallowEqual(prevProps, nextProps) &&
-          current.ref === workInProgress.ref &&
-          workInProgress.type === current.type
-        )
-          if (
-            ((didReceiveUpdate = !1),
-            (workInProgress.pendingProps = nextProps = prevProps),
-            checkScheduledUpdateOrContext(current, renderLanes))
-          )
-            0 !== (current.flags & 131072) && (didReceiveUpdate = !0);
-          else
-            return (
-              (workInProgress.lanes = current.lanes),
-              bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-            );
-      }
-      return updateFunctionComponent(
-        current,
-        workInProgress,
-        Component,
-        nextProps,
-        renderLanes
-      );
-    }
-    function updateOffscreenComponent(
-      current,
-      workInProgress,
-      renderLanes,
-      nextProps
-    ) {
-      var nextChildren = nextProps.children,
-        prevState = null !== current ? current.memoizedState : null;
-      null === current &&
-        null === workInProgress.stateNode &&
-        (workInProgress.stateNode = {
-          _visibility: OffscreenVisible,
-          _pendingMarkers: null,
-          _retryCache: null,
-          _transitions: null
-        });
-      if ("hidden" === nextProps.mode) {
-        if (0 !== (workInProgress.flags & 128)) {
-          prevState =
-            null !== prevState
-              ? prevState.baseLanes | renderLanes
-              : renderLanes;
-          if (null !== current) {
-            nextProps = workInProgress.child = current.child;
-            for (nextChildren = 0; null !== nextProps; )
-              (nextChildren =
-                nextChildren | nextProps.lanes | nextProps.childLanes),
-                (nextProps = nextProps.sibling);
-            nextProps = nextChildren & ~prevState;
-          } else (nextProps = 0), (workInProgress.child = null);
-          return deferHiddenOffscreenComponent(
-            current,
-            workInProgress,
-            prevState,
-            renderLanes,
-            nextProps
-          );
-        }
-        if (0 !== (renderLanes & 536870912))
-          (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),
-            null !== current &&
-              pushTransition(
-                workInProgress,
-                null !== prevState ? prevState.cachePool : null
-              ),
-            null !== prevState
-              ? pushHiddenContext(workInProgress, prevState)
-              : reuseHiddenContextOnStack(workInProgress),
-            pushOffscreenSuspenseHandler(workInProgress);
-        else
-          return (
-            (nextProps = workInProgress.lanes = 536870912),
-            deferHiddenOffscreenComponent(
-              current,
-              workInProgress,
-              null !== prevState
-                ? prevState.baseLanes | renderLanes
-                : renderLanes,
-              renderLanes,
-              nextProps
-            )
-          );
-      } else
-        null !== prevState
-          ? (pushTransition(workInProgress, prevState.cachePool),
-            pushHiddenContext(workInProgress, prevState),
-            reuseSuspenseHandlerOnStack(workInProgress),
-            (workInProgress.memoizedState = null))
-          : (null !== current && pushTransition(workInProgress, null),
-            reuseHiddenContextOnStack(workInProgress),
-            reuseSuspenseHandlerOnStack(workInProgress));
-      reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-      return workInProgress.child;
-    }
-    function bailoutOffscreenComponent(current, workInProgress) {
-      (null !== current && 22 === current.tag) ||
-        null !== workInProgress.stateNode ||
-        (workInProgress.stateNode = {
-          _visibility: OffscreenVisible,
-          _pendingMarkers: null,
-          _retryCache: null,
-          _transitions: null
-        });
-      return workInProgress.sibling;
-    }
-    function deferHiddenOffscreenComponent(
-      current,
-      workInProgress,
-      nextBaseLanes,
-      renderLanes,
-      remainingChildLanes
-    ) {
-      var JSCompiler_inline_result = peekCacheFromPool();
-      JSCompiler_inline_result =
-        null === JSCompiler_inline_result
-          ? null
-          : {
-              parent: CacheContext._currentValue,
-              pool: JSCompiler_inline_result
-            };
-      workInProgress.memoizedState = {
-        baseLanes: nextBaseLanes,
-        cachePool: JSCompiler_inline_result
-      };
-      null !== current && pushTransition(workInProgress, null);
-      reuseHiddenContextOnStack(workInProgress);
-      pushOffscreenSuspenseHandler(workInProgress);
-      null !== current &&
-        propagateParentContextChanges(current, workInProgress, renderLanes, !0);
-      workInProgress.childLanes = remainingChildLanes;
-      return null;
-    }
-    function mountActivityChildren(workInProgress, nextProps) {
-      var hiddenProp = nextProps.hidden;
-      void 0 !== hiddenProp &&
-        console.error(
-          '<Activity> doesn\'t accept a hidden prop. Use mode="hidden" instead.\n- <Activity %s>\n+ <Activity %s>',
-          !0 === hiddenProp
-            ? "hidden"
-            : !1 === hiddenProp
-              ? "hidden={false}"
-              : "hidden={...}",
-          hiddenProp ? 'mode="hidden"' : 'mode="visible"'
-        );
-      nextProps = mountWorkInProgressOffscreenFiber(
-        { mode: nextProps.mode, children: nextProps.children },
-        workInProgress.mode
-      );
-      nextProps.ref = workInProgress.ref;
-      workInProgress.child = nextProps;
-      nextProps.return = workInProgress;
-      return nextProps;
-    }
-    function retryActivityComponentWithoutHydrating(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-      current = mountActivityChildren(
-        workInProgress,
-        workInProgress.pendingProps
-      );
-      current.flags |= 2;
-      popSuspenseHandler(workInProgress);
-      workInProgress.memoizedState = null;
-      return current;
-    }
-    function updateActivityComponent(current, workInProgress, renderLanes) {
-      var nextProps = workInProgress.pendingProps,
-        didSuspend = 0 !== (workInProgress.flags & 128);
-      workInProgress.flags &= -129;
-      if (null === current) {
-        if (isHydrating) {
-          if ("hidden" === nextProps.mode)
-            return (
-              (current = mountActivityChildren(workInProgress, nextProps)),
-              (workInProgress.lanes = 536870912),
-              bailoutOffscreenComponent(null, current)
-            );
-          pushDehydratedActivitySuspenseHandler(workInProgress);
-          (current = nextHydratableInstance)
-            ? ((renderLanes = canHydrateHydrationBoundary(
-                current,
-                rootOrSingletonContext
-              )),
-              (renderLanes =
-                null !== renderLanes && renderLanes.data === ACTIVITY_START_DATA
-                  ? renderLanes
-                  : null),
-              null !== renderLanes &&
-                ((nextProps = {
-                  dehydrated: renderLanes,
-                  treeContext: getSuspendedTreeContext(),
-                  retryLane: 536870912,
-                  hydrationErrors: null
-                }),
-                (workInProgress.memoizedState = nextProps),
-                (nextProps = createFiberFromDehydratedFragment(renderLanes)),
-                (nextProps.return = workInProgress),
-                (workInProgress.child = nextProps),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null)))
-            : (renderLanes = null);
-          if (null === renderLanes)
-            throw (
-              (warnNonHydratedInstance(workInProgress, current),
-              throwOnHydrationMismatch(workInProgress))
-            );
-          workInProgress.lanes = 536870912;
-          return null;
-        }
-        return mountActivityChildren(workInProgress, nextProps);
-      }
-      var prevState = current.memoizedState;
-      if (null !== prevState) {
-        var activityInstance = prevState.dehydrated;
-        pushDehydratedActivitySuspenseHandler(workInProgress);
-        if (didSuspend)
-          if (workInProgress.flags & 256)
-            (workInProgress.flags &= -257),
-              (workInProgress = retryActivityComponentWithoutHydrating(
-                current,
-                workInProgress,
-                renderLanes
-              ));
-          else if (null !== workInProgress.memoizedState)
-            (workInProgress.child = current.child),
-              (workInProgress.flags |= 128),
-              (workInProgress = null);
-          else
-            throw Error(
-              "Client rendering an Activity suspended it again. This is a bug in React."
-            );
-        else if (
-          (warnIfHydrating(),
-          0 !== (renderLanes & 536870912) &&
-            markRenderDerivedCause(workInProgress),
-          didReceiveUpdate ||
-            propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-          (didSuspend = 0 !== (renderLanes & current.childLanes)),
-          didReceiveUpdate || didSuspend)
-        ) {
-          nextProps = workInProgressRoot;
-          if (
-            null !== nextProps &&
-            ((activityInstance = getBumpedLaneForHydration(
-              nextProps,
-              renderLanes
-            )),
-            0 !== activityInstance && activityInstance !== prevState.retryLane)
-          )
-            throw (
-              ((prevState.retryLane = activityInstance),
-              enqueueConcurrentRenderForLane(current, activityInstance),
-              scheduleUpdateOnFiber(nextProps, current, activityInstance),
-              SelectiveHydrationException)
-            );
-          renderDidSuspendDelayIfPossible();
-          workInProgress = retryActivityComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        } else
-          (current = prevState.treeContext),
-            (nextHydratableInstance = getNextHydratable(
-              activityInstance.nextSibling
-            )),
-            (hydrationParentFiber = workInProgress),
-            (isHydrating = !0),
-            (hydrationErrors = null),
-            (didSuspendOrErrorDEV = !1),
-            (hydrationDiffRootDEV = null),
-            (rootOrSingletonContext = !1),
-            null !== current &&
-              restoreSuspendedTreeContext(workInProgress, current),
-            (workInProgress = mountActivityChildren(workInProgress, nextProps)),
-            (workInProgress.flags |= 4096);
-        return workInProgress;
-      }
-      prevState = current.child;
-      nextProps = { mode: nextProps.mode, children: nextProps.children };
-      0 !== (renderLanes & 536870912) &&
-        0 !== (renderLanes & current.lanes) &&
-        markRenderDerivedCause(workInProgress);
-      current = createWorkInProgress(prevState, nextProps);
-      current.ref = workInProgress.ref;
-      workInProgress.child = current;
-      current.return = workInProgress;
-      return current;
-    }
-    function markRef(current, workInProgress) {
-      var ref = workInProgress.ref;
-      if (null === ref)
-        null !== current &&
-          null !== current.ref &&
-          (workInProgress.flags |= 4194816);
-      else {
-        if ("function" !== typeof ref && "object" !== typeof ref)
-          throw Error(
-            "Expected ref to be a function, an object returned by React.createRef(), or undefined/null."
-          );
-        if (null === current || current.ref !== ref)
-          workInProgress.flags |= 4194816;
-      }
-    }
-    function updateFunctionComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (
-        Component.prototype &&
-        "function" === typeof Component.prototype.render
-      ) {
-        var componentName = getComponentNameFromType(Component) || "Unknown";
-        didWarnAboutBadClass[componentName] ||
-          (console.error(
-            "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-            componentName,
-            componentName
-          ),
-          (didWarnAboutBadClass[componentName] = !0));
-      }
-      workInProgress.mode & StrictLegacyMode &&
-        ReactStrictModeWarnings.recordLegacyContextWarning(
-          workInProgress,
-          null
-        );
-      null === current &&
-        (validateFunctionComponentInDev(workInProgress, workInProgress.type),
-        Component.contextTypes &&
-          ((componentName = getComponentNameFromType(Component) || "Unknown"),
-          didWarnAboutContextTypes[componentName] ||
-            ((didWarnAboutContextTypes[componentName] = !0),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-              componentName
-            ))));
-      prepareToReadContext(workInProgress);
-      Component = renderWithHooks(
-        current,
-        workInProgress,
-        Component,
-        nextProps,
-        void 0,
-        renderLanes
-      );
-      nextProps = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && nextProps && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, Component, renderLanes);
-      return workInProgress.child;
-    }
-    function replayFunctionComponent(
-      current,
-      workInProgress,
-      nextProps,
-      Component,
-      secondArg,
-      renderLanes
-    ) {
-      prepareToReadContext(workInProgress);
-      hookTypesUpdateIndexDev = -1;
-      ignorePreviousDependencies =
-        null !== current && current.type !== workInProgress.type;
-      workInProgress.updateQueue = null;
-      nextProps = renderWithHooksAgain(
-        workInProgress,
-        Component,
-        nextProps,
-        secondArg
-      );
-      finishRenderingHooks(current, workInProgress);
-      Component = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && Component && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, nextProps, renderLanes);
-      return workInProgress.child;
-    }
-    function updateClassComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      switch (shouldErrorImpl(workInProgress)) {
-        case !1:
-          var _instance = workInProgress.stateNode,
-            state = new workInProgress.type(
-              workInProgress.memoizedProps,
-              _instance.context
-            ).state;
-          _instance.updater.enqueueSetState(_instance, state, null);
-          break;
-        case !0:
-          workInProgress.flags |= 128;
-          workInProgress.flags |= 65536;
-          _instance = Error("Simulated error coming from DevTools");
-          var lane = renderLanes & -renderLanes;
-          workInProgress.lanes |= lane;
-          state = workInProgressRoot;
-          if (null === state)
-            throw Error(
-              "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-            );
-          lane = createClassErrorUpdate(lane);
-          initializeClassErrorUpdate(
-            lane,
-            state,
-            workInProgress,
-            createCapturedValueAtFiber(_instance, workInProgress)
-          );
-          enqueueCapturedUpdate(workInProgress, lane);
-      }
-      prepareToReadContext(workInProgress);
-      if (null === workInProgress.stateNode) {
-        state = emptyContextObject;
-        _instance = Component.contextType;
-        "contextType" in Component &&
-          null !== _instance &&
-          (void 0 === _instance || _instance.$$typeof !== REACT_CONTEXT_TYPE) &&
-          !didWarnAboutInvalidateContextType.has(Component) &&
-          (didWarnAboutInvalidateContextType.add(Component),
-          (lane =
-            void 0 === _instance
-              ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-              : "object" !== typeof _instance
-                ? " However, it is set to a " + typeof _instance + "."
-                : _instance.$$typeof === REACT_CONSUMER_TYPE
-                  ? " Did you accidentally pass the Context.Consumer instead?"
-                  : " However, it is set to an object with keys {" +
-                    Object.keys(_instance).join(", ") +
-                    "}."),
-          console.error(
-            "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-            getComponentNameFromType(Component) || "Component",
-            lane
-          ));
-        "object" === typeof _instance &&
-          null !== _instance &&
-          (state = readContext(_instance));
-        _instance = new Component(nextProps, state);
-        if (workInProgress.mode & StrictLegacyMode) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            _instance = new Component(nextProps, state);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        state = workInProgress.memoizedState =
-          null !== _instance.state && void 0 !== _instance.state
-            ? _instance.state
-            : null;
-        _instance.updater = classComponentUpdater;
-        workInProgress.stateNode = _instance;
-        _instance._reactInternals = workInProgress;
-        _instance._reactInternalInstance = fakeInternalInstance;
-        "function" === typeof Component.getDerivedStateFromProps &&
-          null === state &&
-          ((state = getComponentNameFromType(Component) || "Component"),
-          didWarnAboutUninitializedState.has(state) ||
-            (didWarnAboutUninitializedState.add(state),
-            console.error(
-              "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-              state,
-              null === _instance.state ? "null" : "undefined",
-              state
-            )));
-        if (
-          "function" === typeof Component.getDerivedStateFromProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate
-        ) {
-          var foundWillUpdateName = (lane = state = null);
-          "function" === typeof _instance.componentWillMount &&
-          !0 !== _instance.componentWillMount.__suppressDeprecationWarning
-            ? (state = "componentWillMount")
-            : "function" === typeof _instance.UNSAFE_componentWillMount &&
-              (state = "UNSAFE_componentWillMount");
-          "function" === typeof _instance.componentWillReceiveProps &&
-          !0 !==
-            _instance.componentWillReceiveProps.__suppressDeprecationWarning
-            ? (lane = "componentWillReceiveProps")
-            : "function" ===
-                typeof _instance.UNSAFE_componentWillReceiveProps &&
-              (lane = "UNSAFE_componentWillReceiveProps");
-          "function" === typeof _instance.componentWillUpdate &&
-          !0 !== _instance.componentWillUpdate.__suppressDeprecationWarning
-            ? (foundWillUpdateName = "componentWillUpdate")
-            : "function" === typeof _instance.UNSAFE_componentWillUpdate &&
-              (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-          if (null !== state || null !== lane || null !== foundWillUpdateName) {
-            _instance = getComponentNameFromType(Component) || "Component";
-            var newApiName =
-              "function" === typeof Component.getDerivedStateFromProps
-                ? "getDerivedStateFromProps()"
-                : "getSnapshotBeforeUpdate()";
-            didWarnAboutLegacyLifecyclesAndDerivedState.has(_instance) ||
-              (didWarnAboutLegacyLifecyclesAndDerivedState.add(_instance),
-              console.error(
-                "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                _instance,
-                newApiName,
-                null !== state ? "\n  " + state : "",
-                null !== lane ? "\n  " + lane : "",
-                null !== foundWillUpdateName ? "\n  " + foundWillUpdateName : ""
-              ));
-          }
-        }
-        _instance = workInProgress.stateNode;
-        state = getComponentNameFromType(Component) || "Component";
-        _instance.render ||
-          (Component.prototype &&
-          "function" === typeof Component.prototype.render
-            ? console.error(
-                "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                state
-              )
-            : console.error(
-                "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                state
-              ));
-        !_instance.getInitialState ||
-          _instance.getInitialState.isReactClassApproved ||
-          _instance.state ||
-          console.error(
-            "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-            state
-          );
-        _instance.getDefaultProps &&
-          !_instance.getDefaultProps.isReactClassApproved &&
-          console.error(
-            "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-            state
-          );
-        _instance.contextType &&
-          console.error(
-            "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-            state
-          );
-        Component.childContextTypes &&
-          !didWarnAboutChildContextTypes.has(Component) &&
-          (didWarnAboutChildContextTypes.add(Component),
-          console.error(
-            "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-            state
-          ));
-        Component.contextTypes &&
-          !didWarnAboutContextTypes$1.has(Component) &&
-          (didWarnAboutContextTypes$1.add(Component),
-          console.error(
-            "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-            state
-          ));
-        "function" === typeof _instance.componentShouldUpdate &&
-          console.error(
-            "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-            state
-          );
-        Component.prototype &&
-          Component.prototype.isPureReactComponent &&
-          "undefined" !== typeof _instance.shouldComponentUpdate &&
-          console.error(
-            "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-            getComponentNameFromType(Component) || "A pure component"
-          );
-        "function" === typeof _instance.componentDidUnmount &&
-          console.error(
-            "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-            state
-          );
-        "function" === typeof _instance.componentDidReceiveProps &&
-          console.error(
-            "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-            state
-          );
-        "function" === typeof _instance.componentWillRecieveProps &&
-          console.error(
-            "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-            state
-          );
-        "function" === typeof _instance.UNSAFE_componentWillRecieveProps &&
-          console.error(
-            "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-            state
-          );
-        lane = _instance.props !== nextProps;
-        void 0 !== _instance.props &&
-          lane &&
-          console.error(
-            "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-            state
-          );
-        _instance.defaultProps &&
-          console.error(
-            "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-            state,
-            state
-          );
-        "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-          "function" === typeof _instance.componentDidUpdate ||
-          didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(Component) ||
-          (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(Component),
-          console.error(
-            "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-            getComponentNameFromType(Component)
-          ));
-        "function" === typeof _instance.getDerivedStateFromProps &&
-          console.error(
-            "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-            state
-          );
-        "function" === typeof _instance.getDerivedStateFromError &&
-          console.error(
-            "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-            state
-          );
-        "function" === typeof Component.getSnapshotBeforeUpdate &&
-          console.error(
-            "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-            state
-          );
-        (lane = _instance.state) &&
-          ("object" !== typeof lane || isArrayImpl(lane)) &&
-          console.error("%s.state: must be set to an object or null", state);
-        "function" === typeof _instance.getChildContext &&
-          "object" !== typeof Component.childContextTypes &&
-          console.error(
-            "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-            state
-          );
-        _instance = workInProgress.stateNode;
-        _instance.props = nextProps;
-        _instance.state = workInProgress.memoizedState;
-        _instance.refs = {};
-        initializeUpdateQueue(workInProgress);
-        state = Component.contextType;
-        _instance.context =
-          "object" === typeof state && null !== state
-            ? readContext(state)
-            : emptyContextObject;
-        _instance.state === nextProps &&
-          ((state = getComponentNameFromType(Component) || "Component"),
-          didWarnAboutDirectlyAssigningPropsToState.has(state) ||
-            (didWarnAboutDirectlyAssigningPropsToState.add(state),
-            console.error(
-              "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-              state
-            )));
-        workInProgress.mode & StrictLegacyMode &&
-          ReactStrictModeWarnings.recordLegacyContextWarning(
-            workInProgress,
-            _instance
-          );
-        ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(
-          workInProgress,
-          _instance
-        );
-        _instance.state = workInProgress.memoizedState;
-        state = Component.getDerivedStateFromProps;
-        "function" === typeof state &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            state,
-            nextProps
-          ),
-          (_instance.state = workInProgress.memoizedState));
-        "function" === typeof Component.getDerivedStateFromProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate ||
-          ("function" !== typeof _instance.UNSAFE_componentWillMount &&
-            "function" !== typeof _instance.componentWillMount) ||
-          ((state = _instance.state),
-          "function" === typeof _instance.componentWillMount &&
-            _instance.componentWillMount(),
-          "function" === typeof _instance.UNSAFE_componentWillMount &&
-            _instance.UNSAFE_componentWillMount(),
-          state !== _instance.state &&
-            (console.error(
-              "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-              getComponentNameFromFiber(workInProgress) || "Component"
-            ),
-            classComponentUpdater.enqueueReplaceState(
-              _instance,
-              _instance.state,
-              null
-            )),
-          processUpdateQueue(workInProgress, nextProps, _instance, renderLanes),
-          suspendIfUpdateReadFromEntangledAsyncAction(),
-          (_instance.state = workInProgress.memoizedState));
-        "function" === typeof _instance.componentDidMount &&
-          (workInProgress.flags |= 4194308);
-        (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-          (workInProgress.flags |= 134217728);
-        _instance = !0;
-      } else if (null === current) {
-        _instance = workInProgress.stateNode;
-        var unresolvedOldProps = workInProgress.memoizedProps;
-        lane = resolveClassComponentProps(Component, unresolvedOldProps);
-        _instance.props = lane;
-        var oldContext = _instance.context;
-        foundWillUpdateName = Component.contextType;
-        state = emptyContextObject;
-        "object" === typeof foundWillUpdateName &&
-          null !== foundWillUpdateName &&
-          (state = readContext(foundWillUpdateName));
-        newApiName = Component.getDerivedStateFromProps;
-        foundWillUpdateName =
-          "function" === typeof newApiName ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate;
-        unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;
-        foundWillUpdateName ||
-          ("function" !== typeof _instance.UNSAFE_componentWillReceiveProps &&
-            "function" !== typeof _instance.componentWillReceiveProps) ||
-          ((unresolvedOldProps || oldContext !== state) &&
-            callComponentWillReceiveProps(
-              workInProgress,
-              _instance,
-              nextProps,
-              state
-            ));
-        hasForceUpdate = !1;
-        var oldState = workInProgress.memoizedState;
-        _instance.state = oldState;
-        processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        oldContext = workInProgress.memoizedState;
-        unresolvedOldProps || oldState !== oldContext || hasForceUpdate
-          ? ("function" === typeof newApiName &&
-              (applyDerivedStateFromProps(
-                workInProgress,
-                Component,
-                newApiName,
-                nextProps
-              ),
-              (oldContext = workInProgress.memoizedState)),
-            (lane =
-              hasForceUpdate ||
-              checkShouldComponentUpdate(
-                workInProgress,
-                Component,
-                lane,
-                nextProps,
-                oldState,
-                oldContext,
-                state
-              ))
-              ? (foundWillUpdateName ||
-                  ("function" !== typeof _instance.UNSAFE_componentWillMount &&
-                    "function" !== typeof _instance.componentWillMount) ||
-                  ("function" === typeof _instance.componentWillMount &&
-                    _instance.componentWillMount(),
-                  "function" === typeof _instance.UNSAFE_componentWillMount &&
-                    _instance.UNSAFE_componentWillMount()),
-                "function" === typeof _instance.componentDidMount &&
-                  (workInProgress.flags |= 4194308),
-                (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-                  (workInProgress.flags |= 134217728))
-              : ("function" === typeof _instance.componentDidMount &&
-                  (workInProgress.flags |= 4194308),
-                (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-                  (workInProgress.flags |= 134217728),
-                (workInProgress.memoizedProps = nextProps),
-                (workInProgress.memoizedState = oldContext)),
-            (_instance.props = nextProps),
-            (_instance.state = oldContext),
-            (_instance.context = state),
-            (_instance = lane))
-          : ("function" === typeof _instance.componentDidMount &&
-              (workInProgress.flags |= 4194308),
-            (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-              (workInProgress.flags |= 134217728),
-            (_instance = !1));
-      } else {
-        _instance = workInProgress.stateNode;
-        cloneUpdateQueue(current, workInProgress);
-        state = workInProgress.memoizedProps;
-        foundWillUpdateName = resolveClassComponentProps(Component, state);
-        _instance.props = foundWillUpdateName;
-        newApiName = workInProgress.pendingProps;
-        oldState = _instance.context;
-        oldContext = Component.contextType;
-        lane = emptyContextObject;
-        "object" === typeof oldContext &&
-          null !== oldContext &&
-          (lane = readContext(oldContext));
-        unresolvedOldProps = Component.getDerivedStateFromProps;
-        (oldContext =
-          "function" === typeof unresolvedOldProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate) ||
-          ("function" !== typeof _instance.UNSAFE_componentWillReceiveProps &&
-            "function" !== typeof _instance.componentWillReceiveProps) ||
-          ((state !== newApiName || oldState !== lane) &&
-            callComponentWillReceiveProps(
-              workInProgress,
-              _instance,
-              nextProps,
-              lane
-            ));
-        hasForceUpdate = !1;
-        oldState = workInProgress.memoizedState;
-        _instance.state = oldState;
-        processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        var newState = workInProgress.memoizedState;
-        state !== newApiName ||
-        oldState !== newState ||
-        hasForceUpdate ||
-        (null !== current &&
-          null !== current.dependencies &&
-          checkIfContextChanged(current.dependencies))
-          ? ("function" === typeof unresolvedOldProps &&
-              (applyDerivedStateFromProps(
-                workInProgress,
-                Component,
-                unresolvedOldProps,
-                nextProps
-              ),
-              (newState = workInProgress.memoizedState)),
-            (foundWillUpdateName =
-              hasForceUpdate ||
-              checkShouldComponentUpdate(
-                workInProgress,
-                Component,
-                foundWillUpdateName,
-                nextProps,
-                oldState,
-                newState,
-                lane
-              ) ||
-              (null !== current &&
-                null !== current.dependencies &&
-                checkIfContextChanged(current.dependencies)))
-              ? (oldContext ||
-                  ("function" !== typeof _instance.UNSAFE_componentWillUpdate &&
-                    "function" !== typeof _instance.componentWillUpdate) ||
-                  ("function" === typeof _instance.componentWillUpdate &&
-                    _instance.componentWillUpdate(nextProps, newState, lane),
-                  "function" === typeof _instance.UNSAFE_componentWillUpdate &&
-                    _instance.UNSAFE_componentWillUpdate(
-                      nextProps,
-                      newState,
-                      lane
-                    )),
-                "function" === typeof _instance.componentDidUpdate &&
-                  (workInProgress.flags |= 4),
-                "function" === typeof _instance.getSnapshotBeforeUpdate &&
-                  (workInProgress.flags |= 1024))
-              : ("function" !== typeof _instance.componentDidUpdate ||
-                  (state === current.memoizedProps &&
-                    oldState === current.memoizedState) ||
-                  (workInProgress.flags |= 4),
-                "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-                  (state === current.memoizedProps &&
-                    oldState === current.memoizedState) ||
-                  (workInProgress.flags |= 1024),
-                (workInProgress.memoizedProps = nextProps),
-                (workInProgress.memoizedState = newState)),
-            (_instance.props = nextProps),
-            (_instance.state = newState),
-            (_instance.context = lane),
-            (_instance = foundWillUpdateName))
-          : ("function" !== typeof _instance.componentDidUpdate ||
-              (state === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 4),
-            "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-              (state === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 1024),
-            (_instance = !1));
-      }
-      lane = _instance;
-      markRef(current, workInProgress);
-      state = 0 !== (workInProgress.flags & 128);
-      if (lane || state) {
-        lane = workInProgress.stateNode;
-        setCurrentFiber(workInProgress);
-        if (state && "function" !== typeof Component.getDerivedStateFromError)
-          (Component = null), (profilerStartTime = -1);
-        else if (
-          ((Component = callRenderInDEV(lane)),
-          workInProgress.mode & StrictLegacyMode)
-        ) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            callRenderInDEV(lane);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        workInProgress.flags |= 1;
-        null !== current && state
-          ? ((workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              current.child,
-              null,
-              renderLanes
-            )),
-            (workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              null,
-              Component,
-              renderLanes
-            )))
-          : reconcileChildren(current, workInProgress, Component, renderLanes);
-        workInProgress.memoizedState = lane.state;
-        current = workInProgress.child;
-      } else
-        current = bailoutOnAlreadyFinishedWork(
-          current,
-          workInProgress,
-          renderLanes
-        );
-      renderLanes = workInProgress.stateNode;
-      _instance &&
-        renderLanes.props !== nextProps &&
-        (didWarnAboutReassigningProps ||
-          console.error(
-            "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-            getComponentNameFromFiber(workInProgress) || "a component"
-          ),
-        (didWarnAboutReassigningProps = !0));
-      return current;
-    }
-    function mountHostRootWithoutHydrating(
-      current,
-      workInProgress,
-      nextChildren,
-      renderLanes
-    ) {
-      resetHydrationState();
-      workInProgress.flags |= 256;
-      reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-      return workInProgress.child;
-    }
-    function validateFunctionComponentInDev(workInProgress, Component) {
-      Component &&
-        Component.childContextTypes &&
-        console.error(
-          "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-          Component.displayName || Component.name || "Component"
-        );
-      "function" === typeof Component.getDerivedStateFromProps &&
-        ((workInProgress = getComponentNameFromType(Component) || "Unknown"),
-        didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] ||
-          (console.error(
-            "%s: Function components do not support getDerivedStateFromProps.",
-            workInProgress
-          ),
-          (didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] =
-            !0)));
-      "object" === typeof Component.contextType &&
-        null !== Component.contextType &&
-        ((Component = getComponentNameFromType(Component) || "Unknown"),
-        didWarnAboutContextTypeOnFunctionComponent[Component] ||
-          (console.error(
-            "%s: Function components do not support contextType.",
-            Component
-          ),
-          (didWarnAboutContextTypeOnFunctionComponent[Component] = !0)));
-    }
-    function mountSuspenseOffscreenState(renderLanes) {
-      return { baseLanes: renderLanes, cachePool: getSuspendedCache() };
-    }
-    function getRemainingWorkInPrimaryTree(
-      current,
-      primaryTreeDidDefer,
-      renderLanes
-    ) {
-      current = null !== current ? current.childLanes & ~renderLanes : 0;
-      primaryTreeDidDefer && (current |= workInProgressDeferredLane);
-      return current;
-    }
-    function updateSuspenseComponent(current, workInProgress, renderLanes) {
-      var JSCompiler_object_inline_digest_2724;
-      var JSCompiler_object_inline_stack_2725 = workInProgress.pendingProps;
-      shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128);
-      var JSCompiler_object_inline_message_2723 = !1;
-      var didSuspend = 0 !== (workInProgress.flags & 128);
-      (JSCompiler_object_inline_digest_2724 = didSuspend) ||
-        (JSCompiler_object_inline_digest_2724 =
-          null !== current && null === current.memoizedState
-            ? !1
-            : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback));
-      JSCompiler_object_inline_digest_2724 &&
-        ((JSCompiler_object_inline_message_2723 = !0),
-        (workInProgress.flags &= -129));
-      JSCompiler_object_inline_digest_2724 = 0 !== (workInProgress.flags & 32);
-      workInProgress.flags &= -33;
-      if (null === current) {
-        if (isHydrating) {
-          JSCompiler_object_inline_message_2723
-            ? pushPrimaryTreeSuspenseHandler(workInProgress)
-            : reuseSuspenseHandlerOnStack(workInProgress);
-          (current = nextHydratableInstance)
-            ? ((renderLanes = canHydrateHydrationBoundary(
-                current,
-                rootOrSingletonContext
-              )),
-              (renderLanes =
-                null !== renderLanes && renderLanes.data !== ACTIVITY_START_DATA
-                  ? renderLanes
-                  : null),
-              null !== renderLanes &&
-                ((JSCompiler_object_inline_digest_2724 = {
-                  dehydrated: renderLanes,
-                  treeContext: getSuspendedTreeContext(),
-                  retryLane: 536870912,
-                  hydrationErrors: null
-                }),
-                (workInProgress.memoizedState =
-                  JSCompiler_object_inline_digest_2724),
-                (JSCompiler_object_inline_digest_2724 =
-                  createFiberFromDehydratedFragment(renderLanes)),
-                (JSCompiler_object_inline_digest_2724.return = workInProgress),
-                (workInProgress.child = JSCompiler_object_inline_digest_2724),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null)))
-            : (renderLanes = null);
-          if (null === renderLanes)
-            throw (
-              (warnNonHydratedInstance(workInProgress, current),
-              throwOnHydrationMismatch(workInProgress))
-            );
-          isSuspenseInstanceFallback(renderLanes)
-            ? (workInProgress.lanes = 32)
-            : (workInProgress.lanes = 536870912);
-          return null;
-        }
-        var nextPrimaryChildren = JSCompiler_object_inline_stack_2725.children;
-        JSCompiler_object_inline_stack_2725 =
-          JSCompiler_object_inline_stack_2725.fallback;
-        if (JSCompiler_object_inline_message_2723) {
-          reuseSuspenseHandlerOnStack(workInProgress);
-          var mode = workInProgress.mode;
-          nextPrimaryChildren = mountWorkInProgressOffscreenFiber(
-            { mode: "hidden", children: nextPrimaryChildren },
-            mode
-          );
-          JSCompiler_object_inline_stack_2725 = createFiberFromFragment(
-            JSCompiler_object_inline_stack_2725,
-            mode,
-            renderLanes,
-            null
-          );
-          nextPrimaryChildren.return = workInProgress;
-          JSCompiler_object_inline_stack_2725.return = workInProgress;
-          nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2725;
-          workInProgress.child = nextPrimaryChildren;
-          JSCompiler_object_inline_stack_2725 = workInProgress.child;
-          JSCompiler_object_inline_stack_2725.memoizedState =
-            mountSuspenseOffscreenState(renderLanes);
-          JSCompiler_object_inline_stack_2725.childLanes =
-            getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_object_inline_digest_2724,
-              renderLanes
-            );
-          workInProgress.memoizedState = SUSPENDED_MARKER;
-          return bailoutOffscreenComponent(
-            null,
-            JSCompiler_object_inline_stack_2725
-          );
-        }
-        pushPrimaryTreeSuspenseHandler(workInProgress);
-        return mountSuspensePrimaryChildren(
-          workInProgress,
-          nextPrimaryChildren
-        );
-      }
-      var prevState = current.memoizedState;
-      if (null !== prevState) {
-        var JSCompiler_object_inline_componentStack_2726 = prevState.dehydrated;
-        if (null !== JSCompiler_object_inline_componentStack_2726) {
-          if (didSuspend)
-            workInProgress.flags & 256
-              ? (pushPrimaryTreeSuspenseHandler(workInProgress),
-                (workInProgress.flags &= -257),
-                (workInProgress = retrySuspenseComponentWithoutHydrating(
-                  current,
-                  workInProgress,
-                  renderLanes
-                )))
-              : null !== workInProgress.memoizedState
-                ? (reuseSuspenseHandlerOnStack(workInProgress),
-                  (workInProgress.child = current.child),
-                  (workInProgress.flags |= 128),
-                  (workInProgress = null))
-                : (reuseSuspenseHandlerOnStack(workInProgress),
-                  (nextPrimaryChildren =
-                    JSCompiler_object_inline_stack_2725.fallback),
-                  (mode = workInProgress.mode),
-                  (JSCompiler_object_inline_stack_2725 =
-                    mountWorkInProgressOffscreenFiber(
-                      {
-                        mode: "visible",
-                        children: JSCompiler_object_inline_stack_2725.children
-                      },
-                      mode
-                    )),
-                  (nextPrimaryChildren = createFiberFromFragment(
-                    nextPrimaryChildren,
-                    mode,
-                    renderLanes,
-                    null
-                  )),
-                  (nextPrimaryChildren.flags |= 2),
-                  (JSCompiler_object_inline_stack_2725.return = workInProgress),
-                  (nextPrimaryChildren.return = workInProgress),
-                  (JSCompiler_object_inline_stack_2725.sibling =
-                    nextPrimaryChildren),
-                  (workInProgress.child = JSCompiler_object_inline_stack_2725),
-                  reconcileChildFibers(
-                    workInProgress,
-                    current.child,
-                    null,
-                    renderLanes
-                  ),
-                  (JSCompiler_object_inline_stack_2725 = workInProgress.child),
-                  (JSCompiler_object_inline_stack_2725.memoizedState =
-                    mountSuspenseOffscreenState(renderLanes)),
-                  (JSCompiler_object_inline_stack_2725.childLanes =
-                    getRemainingWorkInPrimaryTree(
-                      current,
-                      JSCompiler_object_inline_digest_2724,
-                      renderLanes
-                    )),
-                  (workInProgress.memoizedState = SUSPENDED_MARKER),
-                  (workInProgress = bailoutOffscreenComponent(
-                    null,
-                    JSCompiler_object_inline_stack_2725
-                  )));
-          else if (
-            (pushPrimaryTreeSuspenseHandler(workInProgress),
-            warnIfHydrating(),
-            0 !== (renderLanes & 536870912) &&
-              markRenderDerivedCause(workInProgress),
-            isSuspenseInstanceFallback(
-              JSCompiler_object_inline_componentStack_2726
-            ))
-          ) {
-            JSCompiler_object_inline_digest_2724 =
-              JSCompiler_object_inline_componentStack_2726.nextSibling &&
-              JSCompiler_object_inline_componentStack_2726.nextSibling.dataset;
-            if (JSCompiler_object_inline_digest_2724) {
-              nextPrimaryChildren = JSCompiler_object_inline_digest_2724.dgst;
-              var message = JSCompiler_object_inline_digest_2724.msg;
-              mode = JSCompiler_object_inline_digest_2724.stck;
-              var componentStack = JSCompiler_object_inline_digest_2724.cstck;
-            }
-            JSCompiler_object_inline_message_2723 = message;
-            JSCompiler_object_inline_digest_2724 = nextPrimaryChildren;
-            JSCompiler_object_inline_stack_2725 = mode;
-            JSCompiler_object_inline_componentStack_2726 = componentStack;
-            nextPrimaryChildren = JSCompiler_object_inline_message_2723;
-            mode = JSCompiler_object_inline_componentStack_2726;
-            nextPrimaryChildren = nextPrimaryChildren
-              ? Error(nextPrimaryChildren)
-              : Error(
-                  "The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering."
-                );
-            nextPrimaryChildren.stack =
-              JSCompiler_object_inline_stack_2725 || "";
-            nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2724;
-            JSCompiler_object_inline_digest_2724 =
-              void 0 === mode ? null : mode;
-            JSCompiler_object_inline_stack_2725 = {
-              value: nextPrimaryChildren,
-              source: null,
-              stack: JSCompiler_object_inline_digest_2724
-            };
-            "string" === typeof JSCompiler_object_inline_digest_2724 &&
-              CapturedStacks.set(
-                nextPrimaryChildren,
-                JSCompiler_object_inline_stack_2725
-              );
-            queueHydrationError(JSCompiler_object_inline_stack_2725);
-            workInProgress = retrySuspenseComponentWithoutHydrating(
-              current,
-              workInProgress,
-              renderLanes
-            );
-          } else if (
-            (didReceiveUpdate ||
-              propagateParentContextChanges(
-                current,
-                workInProgress,
-                renderLanes,
-                !1
-              ),
-            (JSCompiler_object_inline_digest_2724 =
-              0 !== (renderLanes & current.childLanes)),
-            didReceiveUpdate || JSCompiler_object_inline_digest_2724)
-          ) {
-            JSCompiler_object_inline_digest_2724 = workInProgressRoot;
-            if (
-              null !== JSCompiler_object_inline_digest_2724 &&
-              ((JSCompiler_object_inline_stack_2725 = getBumpedLaneForHydration(
-                JSCompiler_object_inline_digest_2724,
-                renderLanes
-              )),
-              0 !== JSCompiler_object_inline_stack_2725 &&
-                JSCompiler_object_inline_stack_2725 !== prevState.retryLane)
-            )
-              throw (
-                ((prevState.retryLane = JSCompiler_object_inline_stack_2725),
-                enqueueConcurrentRenderForLane(
-                  current,
-                  JSCompiler_object_inline_stack_2725
-                ),
-                scheduleUpdateOnFiber(
-                  JSCompiler_object_inline_digest_2724,
-                  current,
-                  JSCompiler_object_inline_stack_2725
-                ),
-                SelectiveHydrationException)
-              );
-            isSuspenseInstancePending(
-              JSCompiler_object_inline_componentStack_2726
-            ) || renderDidSuspendDelayIfPossible();
-            workInProgress = retrySuspenseComponentWithoutHydrating(
-              current,
-              workInProgress,
-              renderLanes
-            );
-          } else
-            isSuspenseInstancePending(
-              JSCompiler_object_inline_componentStack_2726
-            )
-              ? ((workInProgress.flags |= 192),
-                (workInProgress.child = current.child),
-                (workInProgress = null))
-              : ((current = prevState.treeContext),
-                (nextHydratableInstance = getNextHydratable(
-                  JSCompiler_object_inline_componentStack_2726.nextSibling
-                )),
-                (hydrationParentFiber = workInProgress),
-                (isHydrating = !0),
-                (hydrationErrors = null),
-                (didSuspendOrErrorDEV = !1),
-                (hydrationDiffRootDEV = null),
-                (rootOrSingletonContext = !1),
-                null !== current &&
-                  restoreSuspendedTreeContext(workInProgress, current),
-                (workInProgress = mountSuspensePrimaryChildren(
-                  workInProgress,
-                  JSCompiler_object_inline_stack_2725.children
-                )),
-                (workInProgress.flags |= 4096));
-          return workInProgress;
-        }
-      }
-      if (JSCompiler_object_inline_message_2723)
-        return (
-          reuseSuspenseHandlerOnStack(workInProgress),
-          (nextPrimaryChildren = JSCompiler_object_inline_stack_2725.fallback),
-          (mode = workInProgress.mode),
-          (componentStack = current.child),
-          (JSCompiler_object_inline_componentStack_2726 =
-            componentStack.sibling),
-          (JSCompiler_object_inline_stack_2725 = createWorkInProgress(
-            componentStack,
-            {
-              mode: "hidden",
-              children: JSCompiler_object_inline_stack_2725.children
-            }
-          )),
-          (JSCompiler_object_inline_stack_2725.subtreeFlags =
-            componentStack.subtreeFlags & 65011712),
-          null !== JSCompiler_object_inline_componentStack_2726
-            ? (nextPrimaryChildren = createWorkInProgress(
-                JSCompiler_object_inline_componentStack_2726,
-                nextPrimaryChildren
-              ))
-            : ((nextPrimaryChildren = createFiberFromFragment(
-                nextPrimaryChildren,
-                mode,
-                renderLanes,
-                null
-              )),
-              (nextPrimaryChildren.flags |= 2)),
-          (nextPrimaryChildren.return = workInProgress),
-          (JSCompiler_object_inline_stack_2725.return = workInProgress),
-          (JSCompiler_object_inline_stack_2725.sibling = nextPrimaryChildren),
-          (workInProgress.child = JSCompiler_object_inline_stack_2725),
-          bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2725),
-          (JSCompiler_object_inline_stack_2725 = workInProgress.child),
-          (nextPrimaryChildren = current.child.memoizedState),
-          null === nextPrimaryChildren
-            ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))
-            : ((mode = nextPrimaryChildren.cachePool),
-              null !== mode
-                ? ((componentStack = CacheContext._currentValue),
-                  (mode =
-                    mode.parent !== componentStack
-                      ? { parent: componentStack, pool: componentStack }
-                      : mode))
-                : (mode = getSuspendedCache()),
-              (nextPrimaryChildren = {
-                baseLanes: nextPrimaryChildren.baseLanes | renderLanes,
-                cachePool: mode
-              })),
-          (JSCompiler_object_inline_stack_2725.memoizedState =
-            nextPrimaryChildren),
-          (JSCompiler_object_inline_stack_2725.childLanes =
-            getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_object_inline_digest_2724,
-              renderLanes
-            )),
-          (workInProgress.memoizedState = SUSPENDED_MARKER),
-          bailoutOffscreenComponent(
-            current.child,
-            JSCompiler_object_inline_stack_2725
-          )
-        );
-      null !== prevState &&
-        (renderLanes & 62914560) === renderLanes &&
-        0 !== (renderLanes & current.lanes) &&
-        markRenderDerivedCause(workInProgress);
-      pushPrimaryTreeSuspenseHandler(workInProgress);
-      renderLanes = current.child;
-      current = renderLanes.sibling;
-      renderLanes = createWorkInProgress(renderLanes, {
-        mode: "visible",
-        children: JSCompiler_object_inline_stack_2725.children
-      });
-      renderLanes.return = workInProgress;
-      renderLanes.sibling = null;
-      null !== current &&
-        ((JSCompiler_object_inline_digest_2724 = workInProgress.deletions),
-        null === JSCompiler_object_inline_digest_2724
-          ? ((workInProgress.deletions = [current]),
-            (workInProgress.flags |= 16))
-          : JSCompiler_object_inline_digest_2724.push(current));
-      workInProgress.child = renderLanes;
-      workInProgress.memoizedState = null;
-      return renderLanes;
-    }
-    function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {
-      primaryChildren = mountWorkInProgressOffscreenFiber(
-        { mode: "visible", children: primaryChildren },
-        workInProgress.mode
-      );
-      primaryChildren.return = workInProgress;
-      return (workInProgress.child = primaryChildren);
-    }
-    function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {
-      offscreenProps = createFiber(22, offscreenProps, null, mode);
-      offscreenProps.lanes = 0;
-      return offscreenProps;
-    }
-    function retrySuspenseComponentWithoutHydrating(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-      current = mountSuspensePrimaryChildren(
-        workInProgress,
-        workInProgress.pendingProps.children
-      );
-      current.flags |= 2;
-      workInProgress.memoizedState = null;
-      return current;
-    }
-    function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {
-      fiber.lanes |= renderLanes;
-      var alternate = fiber.alternate;
-      null !== alternate && (alternate.lanes |= renderLanes);
-      scheduleContextWorkOnParentPath(
-        fiber.return,
-        renderLanes,
-        propagationRoot
-      );
-    }
-    function initSuspenseListRenderState(
-      workInProgress,
-      isBackwards,
-      tail,
-      lastContentRow,
-      tailMode,
-      treeForkCount
-    ) {
-      var renderState = workInProgress.memoizedState;
-      null === renderState
-        ? (workInProgress.memoizedState = {
-            isBackwards: isBackwards,
-            rendering: null,
-            renderingStartTime: 0,
-            last: lastContentRow,
-            tail: tail,
-            tailMode: tailMode,
-            treeForkCount: treeForkCount
-          })
-        : ((renderState.isBackwards = isBackwards),
-          (renderState.rendering = null),
-          (renderState.renderingStartTime = 0),
-          (renderState.last = lastContentRow),
-          (renderState.tail = tail),
-          (renderState.tailMode = tailMode),
-          (renderState.treeForkCount = treeForkCount));
-    }
-    function updateSuspenseListComponent(current, workInProgress, renderLanes) {
-      var nextProps = workInProgress.pendingProps,
-        revealOrder = nextProps.revealOrder,
-        tailMode = nextProps.tail,
-        newChildren = nextProps.children,
-        suspenseContext = suspenseStackCursor.current;
-      (nextProps = 0 !== (suspenseContext & ForceSuspenseFallback))
-        ? ((suspenseContext =
-            (suspenseContext & SubtreeSuspenseContextMask) |
-            ForceSuspenseFallback),
-          (workInProgress.flags |= 128))
-        : (suspenseContext &= SubtreeSuspenseContextMask);
-      push(suspenseStackCursor, suspenseContext, workInProgress);
-      suspenseContext = null == revealOrder ? "null" : revealOrder;
-      if (
-        "forwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder &&
-        "together" !== revealOrder &&
-        "independent" !== revealOrder &&
-        !didWarnAboutRevealOrder[suspenseContext]
-      )
-        if (
-          ((didWarnAboutRevealOrder[suspenseContext] = !0), null == revealOrder)
-        )
-          console.error(
-            'The default for the <SuspenseList revealOrder="..."> prop is changing. To be future compatible you must explictly specify either "independent" (the current default), "together", "forwards" or "legacy_unstable-backwards".'
-          );
-        else if ("backwards" === revealOrder)
-          console.error(
-            'The rendering order of <SuspenseList revealOrder="backwards"> is changing. To be future compatible you must specify revealOrder="legacy_unstable-backwards" instead.'
-          );
-        else if ("string" === typeof revealOrder)
-          switch (revealOrder.toLowerCase()) {
-            case "together":
-            case "forwards":
-            case "backwards":
-            case "independent":
-              console.error(
-                '"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.',
-                revealOrder,
-                revealOrder.toLowerCase()
-              );
-              break;
-            case "forward":
-            case "backward":
-              console.error(
-                '"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.',
-                revealOrder,
-                revealOrder.toLowerCase()
-              );
-              break;
-            default:
-              console.error(
-                '"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
-                revealOrder
-              );
-          }
-        else
-          console.error(
-            '%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
-            revealOrder
-          );
-      suspenseContext = null == tailMode ? "null" : tailMode;
-      if (!didWarnAboutTailOptions[suspenseContext])
-        if (null == tailMode) {
-          if (
-            "forwards" === revealOrder ||
-            "backwards" === revealOrder ||
-            "unstable_legacy-backwards" === revealOrder
-          )
-            (didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                'The default for the <SuspenseList tail="..."> prop is changing. To be future compatible you must explictly specify either "visible" (the current default), "collapsed" or "hidden".'
-              );
-        } else
-          "visible" !== tailMode &&
-          "collapsed" !== tailMode &&
-          "hidden" !== tailMode
-            ? ((didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                '"%s" is not a supported value for tail on <SuspenseList />. Did you mean "visible", "collapsed" or "hidden"?',
-                tailMode
-              ))
-            : "forwards" !== revealOrder &&
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder &&
-              ((didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                '<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',
-                tailMode
-              ));
-      a: if (
-        ("forwards" === revealOrder ||
-          "backwards" === revealOrder ||
-          "unstable_legacy-backwards" === revealOrder) &&
-        void 0 !== newChildren &&
-        null !== newChildren &&
-        !1 !== newChildren
-      )
-        if (isArrayImpl(newChildren))
-          for (
-            suspenseContext = 0;
-            suspenseContext < newChildren.length;
-            suspenseContext++
-          ) {
-            if (
-              !validateSuspenseListNestedChild(
-                newChildren[suspenseContext],
-                suspenseContext
-              )
-            )
-              break a;
-          }
-        else if (
-          ((suspenseContext = getIteratorFn(newChildren)),
-          "function" === typeof suspenseContext)
-        ) {
-          if ((suspenseContext = suspenseContext.call(newChildren)))
-            for (
-              var step = suspenseContext.next(), _i = 0;
-              !step.done;
-              step = suspenseContext.next()
-            ) {
-              if (!validateSuspenseListNestedChild(step.value, _i)) break a;
-              _i++;
-            }
-        } else
-          console.error(
-            'A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',
-            revealOrder
-          );
-      reconcileChildren(current, workInProgress, newChildren, renderLanes);
-      isHydrating
-        ? (warnIfNotHydrating(), (newChildren = treeForkCount))
-        : (newChildren = 0);
-      if (!nextProps && null !== current && 0 !== (current.flags & 128))
-        a: for (current = workInProgress.child; null !== current; ) {
-          if (13 === current.tag)
-            null !== current.memoizedState &&
-              scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-          else if (19 === current.tag)
-            scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-          else if (null !== current.child) {
-            current.child.return = current;
-            current = current.child;
-            continue;
-          }
-          if (current === workInProgress) break a;
-          for (; null === current.sibling; ) {
-            if (null === current.return || current.return === workInProgress)
-              break a;
-            current = current.return;
-          }
-          current.sibling.return = current.return;
-          current = current.sibling;
-        }
-      switch (revealOrder) {
-        case "forwards":
-          renderLanes = workInProgress.child;
-          for (revealOrder = null; null !== renderLanes; )
-            (current = renderLanes.alternate),
-              null !== current &&
-                null === findFirstSuspended(current) &&
-                (revealOrder = renderLanes),
-              (renderLanes = renderLanes.sibling);
-          renderLanes = revealOrder;
-          null === renderLanes
-            ? ((revealOrder = workInProgress.child),
-              (workInProgress.child = null))
-            : ((revealOrder = renderLanes.sibling),
-              (renderLanes.sibling = null));
-          initSuspenseListRenderState(
-            workInProgress,
-            !1,
-            revealOrder,
-            renderLanes,
-            tailMode,
-            newChildren
-          );
-          break;
-        case "backwards":
-        case "unstable_legacy-backwards":
-          renderLanes = null;
-          revealOrder = workInProgress.child;
-          for (workInProgress.child = null; null !== revealOrder; ) {
-            current = revealOrder.alternate;
-            if (null !== current && null === findFirstSuspended(current)) {
-              workInProgress.child = revealOrder;
-              break;
-            }
-            current = revealOrder.sibling;
-            revealOrder.sibling = renderLanes;
-            renderLanes = revealOrder;
-            revealOrder = current;
-          }
-          initSuspenseListRenderState(
-            workInProgress,
-            !0,
-            renderLanes,
-            null,
-            tailMode,
-            newChildren
-          );
-          break;
-        case "together":
-          initSuspenseListRenderState(
-            workInProgress,
-            !1,
-            null,
-            null,
-            void 0,
-            newChildren
-          );
-          break;
-        default:
-          workInProgress.memoizedState = null;
-      }
-      return workInProgress.child;
-    }
-    function bailoutOnAlreadyFinishedWork(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      null !== current && (workInProgress.dependencies = current.dependencies);
-      profilerStartTime = -1;
-      workInProgressRootSkippedLanes |= workInProgress.lanes;
-      if (0 === (renderLanes & workInProgress.childLanes))
-        if (null !== current) {
-          if (
-            (propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-            0 === (renderLanes & workInProgress.childLanes))
-          )
-            return null;
-        } else return null;
-      if (null !== current && workInProgress.child !== current.child)
-        throw Error("Resuming work not yet implemented.");
-      if (null !== workInProgress.child) {
-        current = workInProgress.child;
-        renderLanes = createWorkInProgress(current, current.pendingProps);
-        workInProgress.child = renderLanes;
-        for (renderLanes.return = workInProgress; null !== current.sibling; )
-          (current = current.sibling),
-            (renderLanes = renderLanes.sibling =
-              createWorkInProgress(current, current.pendingProps)),
-            (renderLanes.return = workInProgress);
-        renderLanes.sibling = null;
-      }
-      return workInProgress.child;
-    }
-    function checkScheduledUpdateOrContext(current, renderLanes) {
-      if (0 !== (current.lanes & renderLanes)) return !0;
-      current = current.dependencies;
-      return null !== current && checkIfContextChanged(current) ? !0 : !1;
-    }
-    function attemptEarlyBailoutIfNoScheduledUpdate(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      switch (workInProgress.tag) {
-        case 3:
-          pushHostContainer(
-            workInProgress,
-            workInProgress.stateNode.containerInfo
-          );
-          pushProvider(
-            workInProgress,
-            CacheContext,
-            current.memoizedState.cache
-          );
-          resetHydrationState();
-          break;
-        case 27:
-        case 5:
-          pushHostContext(workInProgress);
-          break;
-        case 4:
-          pushHostContainer(
-            workInProgress,
-            workInProgress.stateNode.containerInfo
-          );
-          break;
-        case 10:
-          pushProvider(
-            workInProgress,
-            workInProgress.type,
-            workInProgress.memoizedProps.value
-          );
-          break;
-        case 12:
-          0 !== (renderLanes & workInProgress.childLanes) &&
-            (workInProgress.flags |= 4);
-          workInProgress.flags |= 2048;
-          var stateNode = workInProgress.stateNode;
-          stateNode.effectDuration = -0;
-          stateNode.passiveEffectDuration = -0;
-          break;
-        case 31:
-          if (null !== workInProgress.memoizedState)
-            return (
-              (workInProgress.flags |= 128),
-              pushDehydratedActivitySuspenseHandler(workInProgress),
-              null
-            );
-          break;
-        case 13:
-          stateNode = workInProgress.memoizedState;
-          if (null !== stateNode) {
-            if (null !== stateNode.dehydrated)
-              return (
-                pushPrimaryTreeSuspenseHandler(workInProgress),
-                (workInProgress.flags |= 128),
-                null
-              );
-            if (0 !== (renderLanes & workInProgress.child.childLanes))
-              return updateSuspenseComponent(
-                current,
-                workInProgress,
-                renderLanes
-              );
-            pushPrimaryTreeSuspenseHandler(workInProgress);
-            current = bailoutOnAlreadyFinishedWork(
-              current,
-              workInProgress,
-              renderLanes
-            );
-            return null !== current ? current.sibling : null;
-          }
-          pushPrimaryTreeSuspenseHandler(workInProgress);
-          break;
-        case 19:
-          var didSuspendBefore = 0 !== (current.flags & 128);
-          stateNode = 0 !== (renderLanes & workInProgress.childLanes);
-          stateNode ||
-            (propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-            (stateNode = 0 !== (renderLanes & workInProgress.childLanes)));
-          if (didSuspendBefore) {
-            if (stateNode)
-              return updateSuspenseListComponent(
-                current,
-                workInProgress,
-                renderLanes
-              );
-            workInProgress.flags |= 128;
-          }
-          didSuspendBefore = workInProgress.memoizedState;
-          null !== didSuspendBefore &&
-            ((didSuspendBefore.rendering = null),
-            (didSuspendBefore.tail = null),
-            (didSuspendBefore.lastEffect = null));
-          push(
-            suspenseStackCursor,
-            suspenseStackCursor.current,
-            workInProgress
-          );
-          if (stateNode) break;
-          else return null;
-        case 22:
-          return (
-            (workInProgress.lanes = 0),
-            updateOffscreenComponent(
-              current,
-              workInProgress,
-              renderLanes,
-              workInProgress.pendingProps
-            )
-          );
-        case 24:
-          pushProvider(
-            workInProgress,
-            CacheContext,
-            current.memoizedState.cache
-          );
-      }
-      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-    }
-    function beginWork(current, workInProgress, renderLanes) {
-      if (workInProgress._debugNeedsRemount && null !== current) {
-        renderLanes = createFiberFromTypeAndProps(
-          workInProgress.type,
-          workInProgress.key,
-          workInProgress.pendingProps,
-          workInProgress._debugOwner || null,
-          workInProgress.mode,
-          workInProgress.lanes
-        );
-        renderLanes._debugStack = workInProgress._debugStack;
-        renderLanes._debugTask = workInProgress._debugTask;
-        var returnFiber = workInProgress.return;
-        if (null === returnFiber) throw Error("Cannot swap the root fiber.");
-        current.alternate = null;
-        workInProgress.alternate = null;
-        renderLanes.index = workInProgress.index;
-        renderLanes.sibling = workInProgress.sibling;
-        renderLanes.return = workInProgress.return;
-        renderLanes.ref = workInProgress.ref;
-        renderLanes._debugInfo = workInProgress._debugInfo;
-        if (workInProgress === returnFiber.child)
-          returnFiber.child = renderLanes;
-        else {
-          var prevSibling = returnFiber.child;
-          if (null === prevSibling)
-            throw Error("Expected parent to have a child.");
-          for (; prevSibling.sibling !== workInProgress; )
-            if (((prevSibling = prevSibling.sibling), null === prevSibling))
-              throw Error("Expected to find the previous sibling.");
-          prevSibling.sibling = renderLanes;
-        }
-        workInProgress = returnFiber.deletions;
-        null === workInProgress
-          ? ((returnFiber.deletions = [current]), (returnFiber.flags |= 16))
-          : workInProgress.push(current);
-        renderLanes.flags |= 2;
-        return renderLanes;
-      }
-      if (null !== current)
-        if (
-          current.memoizedProps !== workInProgress.pendingProps ||
-          workInProgress.type !== current.type
-        )
-          didReceiveUpdate = !0;
-        else {
-          if (
-            !checkScheduledUpdateOrContext(current, renderLanes) &&
-            0 === (workInProgress.flags & 128)
-          )
-            return (
-              (didReceiveUpdate = !1),
-              attemptEarlyBailoutIfNoScheduledUpdate(
-                current,
-                workInProgress,
-                renderLanes
-              )
-            );
-          didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;
-        }
-      else {
-        didReceiveUpdate = !1;
-        if ((returnFiber = isHydrating))
-          warnIfNotHydrating(),
-            (returnFiber = 0 !== (workInProgress.flags & 1048576));
-        returnFiber &&
-          ((returnFiber = workInProgress.index),
-          warnIfNotHydrating(),
-          pushTreeId(workInProgress, treeForkCount, returnFiber));
-      }
-      workInProgress.lanes = 0;
-      switch (workInProgress.tag) {
-        case 16:
-          a: if (
-            ((returnFiber = workInProgress.pendingProps),
-            (current = resolveLazy(workInProgress.elementType)),
-            (workInProgress.type = current),
-            "function" === typeof current)
-          )
-            shouldConstruct(current)
-              ? ((returnFiber = resolveClassComponentProps(
-                  current,
-                  returnFiber
-                )),
-                (workInProgress.tag = 1),
-                (workInProgress.type = current =
-                  resolveFunctionForHotReloading(current)),
-                (workInProgress = updateClassComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                )))
-              : ((workInProgress.tag = 0),
-                validateFunctionComponentInDev(workInProgress, current),
-                (workInProgress.type = current =
-                  resolveFunctionForHotReloading(current)),
-                (workInProgress = updateFunctionComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                )));
-          else {
-            if (void 0 !== current && null !== current)
-              if (
-                ((prevSibling = current.$$typeof),
-                prevSibling === REACT_FORWARD_REF_TYPE)
-              ) {
-                workInProgress.tag = 11;
-                workInProgress.type = current =
-                  resolveForwardRefForHotReloading(current);
-                workInProgress = updateForwardRef(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else if (prevSibling === REACT_MEMO_TYPE) {
-                workInProgress.tag = 14;
-                workInProgress = updateMemoComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              }
-            workInProgress = "";
-            null !== current &&
-              "object" === typeof current &&
-              current.$$typeof === REACT_LAZY_TYPE &&
-              (workInProgress =
-                " Did you wrap a component in React.lazy() more than once?");
-            renderLanes = getComponentNameFromType(current) || current;
-            throw Error(
-              "Element type is invalid. Received a promise that resolves to: " +
-                renderLanes +
-                ". Lazy element type must resolve to a class or function." +
-                workInProgress
-            );
-          }
-          return workInProgress;
-        case 0:
-          return updateFunctionComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 1:
-          return (
-            (returnFiber = workInProgress.type),
-            (prevSibling = resolveClassComponentProps(
-              returnFiber,
-              workInProgress.pendingProps
-            )),
-            updateClassComponent(
-              current,
-              workInProgress,
-              returnFiber,
-              prevSibling,
-              renderLanes
-            )
-          );
-        case 3:
-          a: {
-            pushHostContainer(
-              workInProgress,
-              workInProgress.stateNode.containerInfo
-            );
-            if (null === current)
-              throw Error(
-                "Should have a current fiber. This is a bug in React."
-              );
-            returnFiber = workInProgress.pendingProps;
-            var prevState = workInProgress.memoizedState;
-            prevSibling = prevState.element;
-            cloneUpdateQueue(current, workInProgress);
-            processUpdateQueue(workInProgress, returnFiber, null, renderLanes);
-            var nextState = workInProgress.memoizedState;
-            returnFiber = nextState.cache;
-            pushProvider(workInProgress, CacheContext, returnFiber);
-            returnFiber !== prevState.cache &&
-              propagateContextChanges(
-                workInProgress,
-                [CacheContext],
-                renderLanes,
-                !0
-              );
-            suspendIfUpdateReadFromEntangledAsyncAction();
-            returnFiber = nextState.element;
-            if (prevState.isDehydrated)
-              if (
-                ((prevState = {
-                  element: returnFiber,
-                  isDehydrated: !1,
-                  cache: nextState.cache
-                }),
-                (workInProgress.updateQueue.baseState = prevState),
-                (workInProgress.memoizedState = prevState),
-                workInProgress.flags & 256)
-              ) {
-                workInProgress = mountHostRootWithoutHydrating(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else if (returnFiber !== prevSibling) {
-                prevSibling = createCapturedValueAtFiber(
-                  Error(
-                    "This root received an early update, before anything was able hydrate. Switched the entire root to client rendering."
-                  ),
-                  workInProgress
-                );
-                queueHydrationError(prevSibling);
-                workInProgress = mountHostRootWithoutHydrating(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else {
-                current = workInProgress.stateNode.containerInfo;
-                switch (current.nodeType) {
-                  case 9:
-                    current = current.body;
-                    break;
-                  default:
-                    current =
-                      "HTML" === current.nodeName
-                        ? current.ownerDocument.body
-                        : current;
-                }
-                nextHydratableInstance = getNextHydratable(current.firstChild);
-                hydrationParentFiber = workInProgress;
-                isHydrating = !0;
-                hydrationErrors = null;
-                didSuspendOrErrorDEV = !1;
-                hydrationDiffRootDEV = null;
-                rootOrSingletonContext = !0;
-                renderLanes = mountChildFibers(
-                  workInProgress,
-                  null,
-                  returnFiber,
-                  renderLanes
-                );
-                for (workInProgress.child = renderLanes; renderLanes; )
-                  (renderLanes.flags = (renderLanes.flags & -3) | 4096),
-                    (renderLanes = renderLanes.sibling);
-              }
-            else {
-              resetHydrationState();
-              if (returnFiber === prevSibling) {
-                workInProgress = bailoutOnAlreadyFinishedWork(
-                  current,
-                  workInProgress,
-                  renderLanes
-                );
-                break a;
-              }
-              reconcileChildren(
-                current,
-                workInProgress,
-                returnFiber,
-                renderLanes
-              );
-            }
-            workInProgress = workInProgress.child;
-          }
-          return workInProgress;
-        case 26:
-          return (
-            markRef(current, workInProgress),
-            null === current
-              ? (renderLanes = getResource(
-                  workInProgress.type,
-                  null,
-                  workInProgress.pendingProps,
-                  null
-                ))
-                ? (workInProgress.memoizedState = renderLanes)
-                : isHydrating ||
-                  ((renderLanes = workInProgress.type),
-                  (current = workInProgress.pendingProps),
-                  (returnFiber = requiredContext(
-                    rootInstanceStackCursor.current
-                  )),
-                  (returnFiber =
-                    getOwnerDocumentFromRootContainer(
-                      returnFiber
-                    ).createElement(renderLanes)),
-                  (returnFiber[internalInstanceKey] = workInProgress),
-                  (returnFiber[internalPropsKey] = current),
-                  setInitialProperties(returnFiber, renderLanes, current),
-                  markNodeAsHoistable(returnFiber),
-                  (workInProgress.stateNode = returnFiber))
-              : (workInProgress.memoizedState = getResource(
-                  workInProgress.type,
-                  current.memoizedProps,
-                  workInProgress.pendingProps,
-                  current.memoizedState
-                )),
-            null
-          );
-        case 27:
-          return (
-            pushHostContext(workInProgress),
-            null === current &&
-              isHydrating &&
-              ((returnFiber = requiredContext(rootInstanceStackCursor.current)),
-              (prevSibling = getHostContext()),
-              (returnFiber = workInProgress.stateNode =
-                resolveSingletonInstance(
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  returnFiber,
-                  prevSibling,
-                  !1
-                )),
-              didSuspendOrErrorDEV ||
-                ((prevSibling = diffHydratedProperties(
-                  returnFiber,
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  prevSibling
-                )),
-                null !== prevSibling &&
-                  (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                    prevSibling)),
-              (hydrationParentFiber = workInProgress),
-              (rootOrSingletonContext = !0),
-              (prevSibling = nextHydratableInstance),
-              isSingletonScope(workInProgress.type)
-                ? ((previousHydratableOnEnteringScopedSingleton = prevSibling),
-                  (nextHydratableInstance = getNextHydratable(
-                    returnFiber.firstChild
-                  )))
-                : (nextHydratableInstance = prevSibling)),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            markRef(current, workInProgress),
-            null === current && (workInProgress.flags |= 4194304),
-            workInProgress.child
-          );
-        case 5:
-          return (
-            null === current &&
-              isHydrating &&
-              ((prevState = getHostContext()),
-              (returnFiber = validateDOMNesting(
-                workInProgress.type,
-                prevState.ancestorInfo
-              )),
-              (prevSibling = nextHydratableInstance),
-              (nextState = !prevSibling) ||
-                ((nextState = canHydrateInstance(
-                  prevSibling,
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  rootOrSingletonContext
-                )),
-                null !== nextState
-                  ? ((workInProgress.stateNode = nextState),
-                    didSuspendOrErrorDEV ||
-                      ((prevState = diffHydratedProperties(
-                        nextState,
-                        workInProgress.type,
-                        workInProgress.pendingProps,
-                        prevState
-                      )),
-                      null !== prevState &&
-                        (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                          prevState)),
-                    (hydrationParentFiber = workInProgress),
-                    (nextHydratableInstance = getNextHydratable(
-                      nextState.firstChild
-                    )),
-                    (rootOrSingletonContext = !1),
-                    (prevState = !0))
-                  : (prevState = !1),
-                (nextState = !prevState)),
-              nextState &&
-                (returnFiber &&
-                  warnNonHydratedInstance(workInProgress, prevSibling),
-                throwOnHydrationMismatch(workInProgress))),
-            pushHostContext(workInProgress),
-            (prevSibling = workInProgress.type),
-            (prevState = workInProgress.pendingProps),
-            (nextState = null !== current ? current.memoizedProps : null),
-            (returnFiber = prevState.children),
-            shouldSetTextContent(prevSibling, prevState)
-              ? (returnFiber = null)
-              : null !== nextState &&
-                shouldSetTextContent(prevSibling, nextState) &&
-                (workInProgress.flags |= 32),
-            null !== workInProgress.memoizedState &&
-              ((prevSibling = renderWithHooks(
-                current,
-                workInProgress,
-                TransitionAwareHostComponent,
-                null,
-                null,
-                renderLanes
-              )),
-              (HostTransitionContext._currentValue = prevSibling)),
-            markRef(current, workInProgress),
-            reconcileChildren(
-              current,
-              workInProgress,
-              returnFiber,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 6:
-          return (
-            null === current &&
-              isHydrating &&
-              ((renderLanes = workInProgress.pendingProps),
-              (current = getHostContext()),
-              (returnFiber = current.ancestorInfo.current),
-              (renderLanes =
-                null != returnFiber
-                  ? validateTextNesting(
-                      renderLanes,
-                      returnFiber.tag,
-                      current.ancestorInfo.implicitRootScope
-                    )
-                  : !0),
-              (current = nextHydratableInstance),
-              (returnFiber = !current) ||
-                ((returnFiber = canHydrateTextInstance(
-                  current,
-                  workInProgress.pendingProps,
-                  rootOrSingletonContext
-                )),
-                null !== returnFiber
-                  ? ((workInProgress.stateNode = returnFiber),
-                    (hydrationParentFiber = workInProgress),
-                    (nextHydratableInstance = null),
-                    (returnFiber = !0))
-                  : (returnFiber = !1),
-                (returnFiber = !returnFiber)),
-              returnFiber &&
-                (renderLanes &&
-                  warnNonHydratedInstance(workInProgress, current),
-                throwOnHydrationMismatch(workInProgress))),
-            null
-          );
-        case 13:
-          return updateSuspenseComponent(current, workInProgress, renderLanes);
-        case 4:
-          return (
-            pushHostContainer(
-              workInProgress,
-              workInProgress.stateNode.containerInfo
-            ),
-            (returnFiber = workInProgress.pendingProps),
-            null === current
-              ? (workInProgress.child = reconcileChildFibers(
-                  workInProgress,
-                  null,
-                  returnFiber,
-                  renderLanes
-                ))
-              : reconcileChildren(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                ),
-            workInProgress.child
-          );
-        case 11:
-          return updateForwardRef(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 7:
-          return (
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 8:
-          return (
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 12:
-          return (
-            (workInProgress.flags |= 4),
-            (workInProgress.flags |= 2048),
-            (returnFiber = workInProgress.stateNode),
-            (returnFiber.effectDuration = -0),
-            (returnFiber.passiveEffectDuration = -0),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 10:
-          return (
-            (returnFiber = workInProgress.type),
-            (prevSibling = workInProgress.pendingProps),
-            (prevState = prevSibling.value),
-            "value" in prevSibling ||
-              hasWarnedAboutUsingNoValuePropOnContextProvider ||
-              ((hasWarnedAboutUsingNoValuePropOnContextProvider = !0),
-              console.error(
-                "The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?"
-              )),
-            pushProvider(workInProgress, returnFiber, prevState),
-            reconcileChildren(
-              current,
-              workInProgress,
-              prevSibling.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 9:
-          return (
-            (prevSibling = workInProgress.type._context),
-            (returnFiber = workInProgress.pendingProps.children),
-            "function" !== typeof returnFiber &&
-              console.error(
-                "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-              ),
-            prepareToReadContext(workInProgress),
-            (prevSibling = readContext(prevSibling)),
-            (returnFiber = callComponentInDEV(
-              returnFiber,
-              prevSibling,
-              void 0
-            )),
-            (workInProgress.flags |= 1),
-            reconcileChildren(
-              current,
-              workInProgress,
-              returnFiber,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 14:
-          return updateMemoComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 15:
-          return updateSimpleMemoComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 19:
-          return updateSuspenseListComponent(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        case 31:
-          return updateActivityComponent(current, workInProgress, renderLanes);
-        case 22:
-          return updateOffscreenComponent(
-            current,
-            workInProgress,
-            renderLanes,
-            workInProgress.pendingProps
-          );
-        case 24:
-          return (
-            prepareToReadContext(workInProgress),
-            (returnFiber = readContext(CacheContext)),
-            null === current
-              ? ((prevSibling = peekCacheFromPool()),
-                null === prevSibling &&
-                  ((prevSibling = workInProgressRoot),
-                  (prevState = createCache()),
-                  (prevSibling.pooledCache = prevState),
-                  retainCache(prevState),
-                  null !== prevState &&
-                    (prevSibling.pooledCacheLanes |= renderLanes),
-                  (prevSibling = prevState)),
-                (workInProgress.memoizedState = {
-                  parent: returnFiber,
-                  cache: prevSibling
-                }),
-                initializeUpdateQueue(workInProgress),
-                pushProvider(workInProgress, CacheContext, prevSibling))
-              : (0 !== (current.lanes & renderLanes) &&
-                  (cloneUpdateQueue(current, workInProgress),
-                  processUpdateQueue(workInProgress, null, null, renderLanes),
-                  suspendIfUpdateReadFromEntangledAsyncAction()),
-                (prevSibling = current.memoizedState),
-                (prevState = workInProgress.memoizedState),
-                prevSibling.parent !== returnFiber
-                  ? ((prevSibling = {
-                      parent: returnFiber,
-                      cache: returnFiber
-                    }),
-                    (workInProgress.memoizedState = prevSibling),
-                    0 === workInProgress.lanes &&
-                      (workInProgress.memoizedState =
-                        workInProgress.updateQueue.baseState =
-                          prevSibling),
-                    pushProvider(workInProgress, CacheContext, returnFiber))
-                  : ((returnFiber = prevState.cache),
-                    pushProvider(workInProgress, CacheContext, returnFiber),
-                    returnFiber !== prevSibling.cache &&
-                      propagateContextChanges(
-                        workInProgress,
-                        [CacheContext],
-                        renderLanes,
-                        !0
-                      ))),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 29:
-          throw workInProgress.pendingProps;
-      }
-      throw Error(
-        "Unknown unit of work tag (" +
-          workInProgress.tag +
-          "). This error is likely caused by a bug in React. Please file an issue."
-      );
-    }
-    function markUpdate(workInProgress) {
-      workInProgress.flags |= 4;
-    }
-    function preloadInstanceAndSuspendIfNeeded(
-      workInProgress,
-      type,
-      oldProps,
-      newProps,
-      renderLanes
-    ) {
-      if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode))
-        type = !1;
-      if (type) {
-        if (
-          ((workInProgress.flags |= 16777216),
-          (renderLanes & 335544128) === renderLanes)
-        )
-          if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;
-          else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-          else
-            throw (
-              ((suspendedThenable = noopSuspenseyCommitThenable),
-              SuspenseyCommitException)
-            );
-      } else workInProgress.flags &= -16777217;
-    }
-    function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {
-      if (
-        "stylesheet" !== resource.type ||
-        (resource.state.loading & Inserted) !== NotLoaded
-      )
-        workInProgress.flags &= -16777217;
-      else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))
-        if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-        else
-          throw (
-            ((suspendedThenable = noopSuspenseyCommitThenable),
-            SuspenseyCommitException)
-          );
-    }
-    function scheduleRetryEffect(workInProgress, retryQueue) {
-      null !== retryQueue && (workInProgress.flags |= 4);
-      workInProgress.flags & 16384 &&
-        ((retryQueue =
-          22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
-        (workInProgress.lanes |= retryQueue),
-        (workInProgressSuspendedRetryLanes |= retryQueue));
-    }
-    function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
-      if (!isHydrating)
-        switch (renderState.tailMode) {
-          case "hidden":
-            hasRenderedATailFallback = renderState.tail;
-            for (var lastTailNode = null; null !== hasRenderedATailFallback; )
-              null !== hasRenderedATailFallback.alternate &&
-                (lastTailNode = hasRenderedATailFallback),
-                (hasRenderedATailFallback = hasRenderedATailFallback.sibling);
-            null === lastTailNode
-              ? (renderState.tail = null)
-              : (lastTailNode.sibling = null);
-            break;
-          case "collapsed":
-            lastTailNode = renderState.tail;
-            for (var _lastTailNode = null; null !== lastTailNode; )
-              null !== lastTailNode.alternate && (_lastTailNode = lastTailNode),
-                (lastTailNode = lastTailNode.sibling);
-            null === _lastTailNode
-              ? hasRenderedATailFallback || null === renderState.tail
-                ? (renderState.tail = null)
-                : (renderState.tail.sibling = null)
-              : (_lastTailNode.sibling = null);
-        }
-    }
-    function bubbleProperties(completedWork) {
-      var didBailout =
-          null !== completedWork.alternate &&
-          completedWork.alternate.child === completedWork.child,
-        newChildLanes = 0,
-        subtreeFlags = 0;
-      if (didBailout)
-        if ((completedWork.mode & ProfileMode) !== NoMode) {
-          for (
-            var _treeBaseDuration = completedWork.selfBaseDuration,
-              _child2 = completedWork.child;
-            null !== _child2;
-
-          )
-            (newChildLanes |= _child2.lanes | _child2.childLanes),
-              (subtreeFlags |= _child2.subtreeFlags & 65011712),
-              (subtreeFlags |= _child2.flags & 65011712),
-              (_treeBaseDuration += _child2.treeBaseDuration),
-              (_child2 = _child2.sibling);
-          completedWork.treeBaseDuration = _treeBaseDuration;
-        } else
-          for (
-            _treeBaseDuration = completedWork.child;
-            null !== _treeBaseDuration;
-
-          )
-            (newChildLanes |=
-              _treeBaseDuration.lanes | _treeBaseDuration.childLanes),
-              (subtreeFlags |= _treeBaseDuration.subtreeFlags & 65011712),
-              (subtreeFlags |= _treeBaseDuration.flags & 65011712),
-              (_treeBaseDuration.return = completedWork),
-              (_treeBaseDuration = _treeBaseDuration.sibling);
-      else if ((completedWork.mode & ProfileMode) !== NoMode) {
-        _treeBaseDuration = completedWork.actualDuration;
-        _child2 = completedWork.selfBaseDuration;
-        for (var child = completedWork.child; null !== child; )
-          (newChildLanes |= child.lanes | child.childLanes),
-            (subtreeFlags |= child.subtreeFlags),
-            (subtreeFlags |= child.flags),
-            (_treeBaseDuration += child.actualDuration),
-            (_child2 += child.treeBaseDuration),
-            (child = child.sibling);
-        completedWork.actualDuration = _treeBaseDuration;
-        completedWork.treeBaseDuration = _child2;
-      } else
-        for (
-          _treeBaseDuration = completedWork.child;
-          null !== _treeBaseDuration;
-
-        )
-          (newChildLanes |=
-            _treeBaseDuration.lanes | _treeBaseDuration.childLanes),
-            (subtreeFlags |= _treeBaseDuration.subtreeFlags),
-            (subtreeFlags |= _treeBaseDuration.flags),
-            (_treeBaseDuration.return = completedWork),
-            (_treeBaseDuration = _treeBaseDuration.sibling);
-      completedWork.subtreeFlags |= subtreeFlags;
-      completedWork.childLanes = newChildLanes;
-      return didBailout;
-    }
-    function completeWork(current, workInProgress, renderLanes) {
-      var newProps = workInProgress.pendingProps;
-      popTreeContext(workInProgress);
-      switch (workInProgress.tag) {
-        case 16:
-        case 15:
-        case 0:
-        case 11:
-        case 7:
-        case 8:
-        case 12:
-        case 9:
-        case 14:
-          return bubbleProperties(workInProgress), null;
-        case 1:
-          return bubbleProperties(workInProgress), null;
-        case 3:
-          renderLanes = workInProgress.stateNode;
-          newProps = null;
-          null !== current && (newProps = current.memoizedState.cache);
-          workInProgress.memoizedState.cache !== newProps &&
-            (workInProgress.flags |= 2048);
-          popProvider(CacheContext, workInProgress);
-          popHostContainer(workInProgress);
-          renderLanes.pendingContext &&
-            ((renderLanes.context = renderLanes.pendingContext),
-            (renderLanes.pendingContext = null));
-          if (null === current || null === current.child)
-            popHydrationState(workInProgress)
-              ? (emitPendingHydrationWarnings(), markUpdate(workInProgress))
-              : null === current ||
-                (current.memoizedState.isDehydrated &&
-                  0 === (workInProgress.flags & 256)) ||
-                ((workInProgress.flags |= 1024),
-                upgradeHydrationErrorsToRecoverable());
-          bubbleProperties(workInProgress);
-          return null;
-        case 26:
-          var type = workInProgress.type,
-            nextResource = workInProgress.memoizedState;
-          null === current
-            ? (markUpdate(workInProgress),
-              null !== nextResource
-                ? (bubbleProperties(workInProgress),
-                  preloadResourceAndSuspendIfNeeded(
-                    workInProgress,
-                    nextResource
-                  ))
-                : (bubbleProperties(workInProgress),
-                  preloadInstanceAndSuspendIfNeeded(
-                    workInProgress,
-                    type,
-                    null,
-                    newProps,
-                    renderLanes
-                  )))
-            : nextResource
-              ? nextResource !== current.memoizedState
-                ? (markUpdate(workInProgress),
-                  bubbleProperties(workInProgress),
-                  preloadResourceAndSuspendIfNeeded(
-                    workInProgress,
-                    nextResource
-                  ))
-                : (bubbleProperties(workInProgress),
-                  (workInProgress.flags &= -16777217))
-              : ((current = current.memoizedProps),
-                current !== newProps && markUpdate(workInProgress),
-                bubbleProperties(workInProgress),
-                preloadInstanceAndSuspendIfNeeded(
-                  workInProgress,
-                  type,
-                  current,
-                  newProps,
-                  renderLanes
-                ));
-          return null;
-        case 27:
-          popHostContext(workInProgress);
-          renderLanes = requiredContext(rootInstanceStackCursor.current);
-          type = workInProgress.type;
-          if (null !== current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (!newProps) {
-              if (null === workInProgress.stateNode)
-                throw Error(
-                  "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-                );
-              bubbleProperties(workInProgress);
-              return null;
-            }
-            current = getHostContext();
-            popHydrationState(workInProgress)
-              ? prepareToHydrateHostInstance(workInProgress, current)
-              : ((current = resolveSingletonInstance(
-                  type,
-                  newProps,
-                  renderLanes,
-                  current,
-                  !0
-                )),
-                (workInProgress.stateNode = current),
-                markUpdate(workInProgress));
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 5:
-          popHostContext(workInProgress);
-          type = workInProgress.type;
-          if (null !== current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (!newProps) {
-              if (null === workInProgress.stateNode)
-                throw Error(
-                  "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-                );
-              bubbleProperties(workInProgress);
-              return null;
-            }
-            var _currentHostContext = getHostContext();
-            if (popHydrationState(workInProgress))
-              prepareToHydrateHostInstance(workInProgress, _currentHostContext);
-            else {
-              nextResource = requiredContext(rootInstanceStackCursor.current);
-              validateDOMNesting(type, _currentHostContext.ancestorInfo);
-              _currentHostContext = _currentHostContext.context;
-              nextResource = getOwnerDocumentFromRootContainer(nextResource);
-              switch (_currentHostContext) {
-                case HostContextNamespaceSvg:
-                  nextResource = nextResource.createElementNS(
-                    SVG_NAMESPACE,
-                    type
-                  );
-                  break;
-                case HostContextNamespaceMath:
-                  nextResource = nextResource.createElementNS(
-                    MATH_NAMESPACE,
-                    type
-                  );
-                  break;
-                default:
-                  switch (type) {
-                    case "svg":
-                      nextResource = nextResource.createElementNS(
-                        SVG_NAMESPACE,
-                        type
-                      );
-                      break;
-                    case "math":
-                      nextResource = nextResource.createElementNS(
-                        MATH_NAMESPACE,
-                        type
-                      );
-                      break;
-                    case "script":
-                      nextResource = nextResource.createElement("div");
-                      nextResource.innerHTML = "<script>\x3c/script>";
-                      nextResource = nextResource.removeChild(
-                        nextResource.firstChild
-                      );
-                      break;
-                    case "select":
-                      nextResource =
-                        "string" === typeof newProps.is
-                          ? nextResource.createElement("select", {
-                              is: newProps.is
-                            })
-                          : nextResource.createElement("select");
-                      newProps.multiple
-                        ? (nextResource.multiple = !0)
-                        : newProps.size && (nextResource.size = newProps.size);
-                      break;
-                    default:
-                      (nextResource =
-                        "string" === typeof newProps.is
-                          ? nextResource.createElement(type, {
-                              is: newProps.is
-                            })
-                          : nextResource.createElement(type)),
-                        -1 === type.indexOf("-") &&
-                          (type !== type.toLowerCase() &&
-                            console.error(
-                              "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-                              type
-                            ),
-                          "[object HTMLUnknownElement]" !==
-                            Object.prototype.toString.call(nextResource) ||
-                            hasOwnProperty.call(warnedUnknownTags, type) ||
-                            ((warnedUnknownTags[type] = !0),
-                            console.error(
-                              "The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",
-                              type
-                            )));
-                  }
-              }
-              nextResource[internalInstanceKey] = workInProgress;
-              nextResource[internalPropsKey] = newProps;
-              a: for (
-                _currentHostContext = workInProgress.child;
-                null !== _currentHostContext;
-
-              ) {
-                if (
-                  5 === _currentHostContext.tag ||
-                  6 === _currentHostContext.tag
-                )
-                  nextResource.appendChild(_currentHostContext.stateNode);
-                else if (
-                  4 !== _currentHostContext.tag &&
-                  27 !== _currentHostContext.tag &&
-                  null !== _currentHostContext.child
-                ) {
-                  _currentHostContext.child.return = _currentHostContext;
-                  _currentHostContext = _currentHostContext.child;
-                  continue;
-                }
-                if (_currentHostContext === workInProgress) break a;
-                for (; null === _currentHostContext.sibling; ) {
-                  if (
-                    null === _currentHostContext.return ||
-                    _currentHostContext.return === workInProgress
-                  )
-                    break a;
-                  _currentHostContext = _currentHostContext.return;
-                }
-                _currentHostContext.sibling.return = _currentHostContext.return;
-                _currentHostContext = _currentHostContext.sibling;
-              }
-              workInProgress.stateNode = nextResource;
-              a: switch (
-                (setInitialProperties(nextResource, type, newProps), type)
-              ) {
-                case "button":
-                case "input":
-                case "select":
-                case "textarea":
-                  newProps = !!newProps.autoFocus;
-                  break a;
-                case "img":
-                  newProps = !0;
-                  break a;
-                default:
-                  newProps = !1;
-              }
-              newProps && markUpdate(workInProgress);
-            }
-          }
-          bubbleProperties(workInProgress);
-          preloadInstanceAndSuspendIfNeeded(
-            workInProgress,
-            workInProgress.type,
-            null === current ? null : current.memoizedProps,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-          return null;
-        case 6:
-          if (current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (
-              "string" !== typeof newProps &&
-              null === workInProgress.stateNode
-            )
-              throw Error(
-                "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-              );
-            current = requiredContext(rootInstanceStackCursor.current);
-            renderLanes = getHostContext();
-            if (popHydrationState(workInProgress)) {
-              current = workInProgress.stateNode;
-              renderLanes = workInProgress.memoizedProps;
-              type = !didSuspendOrErrorDEV;
-              newProps = null;
-              nextResource = hydrationParentFiber;
-              if (null !== nextResource)
-                switch (nextResource.tag) {
-                  case 3:
-                    type &&
-                      ((type = diffHydratedTextForDevWarnings(
-                        current,
-                        renderLanes,
-                        newProps
-                      )),
-                      null !== type &&
-                        (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                          type));
-                    break;
-                  case 27:
-                  case 5:
-                    (newProps = nextResource.memoizedProps),
-                      type &&
-                        ((type = diffHydratedTextForDevWarnings(
-                          current,
-                          renderLanes,
-                          newProps
-                        )),
-                        null !== type &&
-                          (buildHydrationDiffNode(
-                            workInProgress,
-                            0
-                          ).serverProps = type));
-                }
-              current[internalInstanceKey] = workInProgress;
-              current =
-                current.nodeValue === renderLanes ||
-                (null !== newProps &&
-                  !0 === newProps.suppressHydrationWarning) ||
-                checkForUnmatchedText(current.nodeValue, renderLanes)
-                  ? !0
-                  : !1;
-              current || throwOnHydrationMismatch(workInProgress, !0);
-            } else
-              (type = renderLanes.ancestorInfo.current),
-                null != type &&
-                  validateTextNesting(
-                    newProps,
-                    type.tag,
-                    renderLanes.ancestorInfo.implicitRootScope
-                  ),
-                (current =
-                  getOwnerDocumentFromRootContainer(current).createTextNode(
-                    newProps
-                  )),
-                (current[internalInstanceKey] = workInProgress),
-                (workInProgress.stateNode = current);
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 31:
-          renderLanes = workInProgress.memoizedState;
-          if (null === current || null !== current.memoizedState) {
-            newProps = popHydrationState(workInProgress);
-            if (null !== renderLanes) {
-              if (null === current) {
-                if (!newProps)
-                  throw Error(
-                    "A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."
-                  );
-                current = workInProgress.memoizedState;
-                current = null !== current ? current.dehydrated : null;
-                if (!current)
-                  throw Error(
-                    "Expected to have a hydrated activity instance. This error is likely caused by a bug in React. Please file an issue."
-                  );
-                current[internalInstanceKey] = workInProgress;
-                bubbleProperties(workInProgress);
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  null !== renderLanes &&
-                  ((current = workInProgress.child),
-                  null !== current &&
-                    (workInProgress.treeBaseDuration -=
-                      current.treeBaseDuration));
-              } else
-                emitPendingHydrationWarnings(),
-                  resetHydrationState(),
-                  0 === (workInProgress.flags & 128) &&
-                    (renderLanes = workInProgress.memoizedState = null),
-                  (workInProgress.flags |= 4),
-                  bubbleProperties(workInProgress),
-                  (workInProgress.mode & ProfileMode) !== NoMode &&
-                    null !== renderLanes &&
-                    ((current = workInProgress.child),
-                    null !== current &&
-                      (workInProgress.treeBaseDuration -=
-                        current.treeBaseDuration));
-              current = !1;
-            } else
-              (renderLanes = upgradeHydrationErrorsToRecoverable()),
-                null !== current &&
-                  null !== current.memoizedState &&
-                  (current.memoizedState.hydrationErrors = renderLanes),
-                (current = !0);
-            if (!current) {
-              if (workInProgress.flags & 256)
-                return popSuspenseHandler(workInProgress), workInProgress;
-              popSuspenseHandler(workInProgress);
-              return null;
-            }
-            if (0 !== (workInProgress.flags & 128))
-              throw Error(
-                "Client rendering an Activity suspended it again. This is a bug in React."
-              );
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 13:
-          newProps = workInProgress.memoizedState;
-          if (
-            null === current ||
-            (null !== current.memoizedState &&
-              null !== current.memoizedState.dehydrated)
-          ) {
-            type = newProps;
-            nextResource = popHydrationState(workInProgress);
-            if (null !== type && null !== type.dehydrated) {
-              if (null === current) {
-                if (!nextResource)
-                  throw Error(
-                    "A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."
-                  );
-                nextResource = workInProgress.memoizedState;
-                nextResource =
-                  null !== nextResource ? nextResource.dehydrated : null;
-                if (!nextResource)
-                  throw Error(
-                    "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-                  );
-                nextResource[internalInstanceKey] = workInProgress;
-                bubbleProperties(workInProgress);
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  null !== type &&
-                  ((type = workInProgress.child),
-                  null !== type &&
-                    (workInProgress.treeBaseDuration -= type.treeBaseDuration));
-              } else
-                emitPendingHydrationWarnings(),
-                  resetHydrationState(),
-                  0 === (workInProgress.flags & 128) &&
-                    (type = workInProgress.memoizedState = null),
-                  (workInProgress.flags |= 4),
-                  bubbleProperties(workInProgress),
-                  (workInProgress.mode & ProfileMode) !== NoMode &&
-                    null !== type &&
-                    ((type = workInProgress.child),
-                    null !== type &&
-                      (workInProgress.treeBaseDuration -=
-                        type.treeBaseDuration));
-              type = !1;
-            } else
-              (type = upgradeHydrationErrorsToRecoverable()),
-                null !== current &&
-                  null !== current.memoizedState &&
-                  (current.memoizedState.hydrationErrors = type),
-                (type = !0);
-            if (!type) {
-              if (workInProgress.flags & 256)
-                return popSuspenseHandler(workInProgress), workInProgress;
-              popSuspenseHandler(workInProgress);
-              return null;
-            }
-          }
-          popSuspenseHandler(workInProgress);
-          if (0 !== (workInProgress.flags & 128))
-            return (
-              (workInProgress.lanes = renderLanes),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress
-            );
-          renderLanes = null !== newProps;
-          current = null !== current && null !== current.memoizedState;
-          renderLanes &&
-            ((newProps = workInProgress.child),
-            (type = null),
-            null !== newProps.alternate &&
-              null !== newProps.alternate.memoizedState &&
-              null !== newProps.alternate.memoizedState.cachePool &&
-              (type = newProps.alternate.memoizedState.cachePool.pool),
-            (nextResource = null),
-            null !== newProps.memoizedState &&
-              null !== newProps.memoizedState.cachePool &&
-              (nextResource = newProps.memoizedState.cachePool.pool),
-            nextResource !== type && (newProps.flags |= 2048));
-          renderLanes !== current &&
-            renderLanes &&
-            (workInProgress.child.flags |= 8192);
-          scheduleRetryEffect(workInProgress, workInProgress.updateQueue);
-          bubbleProperties(workInProgress);
-          (workInProgress.mode & ProfileMode) !== NoMode &&
-            renderLanes &&
-            ((current = workInProgress.child),
-            null !== current &&
-              (workInProgress.treeBaseDuration -= current.treeBaseDuration));
-          return null;
-        case 4:
-          return (
-            popHostContainer(workInProgress),
-            null === current &&
-              listenToAllSupportedEvents(
-                workInProgress.stateNode.containerInfo
-              ),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 10:
-          return (
-            popProvider(workInProgress.type, workInProgress),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 19:
-          pop(suspenseStackCursor, workInProgress);
-          newProps = workInProgress.memoizedState;
-          if (null === newProps) return bubbleProperties(workInProgress), null;
-          type = 0 !== (workInProgress.flags & 128);
-          nextResource = newProps.rendering;
-          if (null === nextResource)
-            if (type) cutOffTailIfNeeded(newProps, !1);
-            else {
-              if (
-                workInProgressRootExitStatus !== RootInProgress ||
-                (null !== current && 0 !== (current.flags & 128))
-              )
-                for (current = workInProgress.child; null !== current; ) {
-                  nextResource = findFirstSuspended(current);
-                  if (null !== nextResource) {
-                    workInProgress.flags |= 128;
-                    cutOffTailIfNeeded(newProps, !1);
-                    current = nextResource.updateQueue;
-                    workInProgress.updateQueue = current;
-                    scheduleRetryEffect(workInProgress, current);
-                    workInProgress.subtreeFlags = 0;
-                    current = renderLanes;
-                    for (
-                      renderLanes = workInProgress.child;
-                      null !== renderLanes;
-
-                    )
-                      resetWorkInProgress(renderLanes, current),
-                        (renderLanes = renderLanes.sibling);
-                    push(
-                      suspenseStackCursor,
-                      (suspenseStackCursor.current &
-                        SubtreeSuspenseContextMask) |
-                        ForceSuspenseFallback,
-                      workInProgress
-                    );
-                    isHydrating &&
-                      pushTreeFork(workInProgress, newProps.treeForkCount);
-                    return workInProgress.child;
-                  }
-                  current = current.sibling;
-                }
-              null !== newProps.tail &&
-                now$1() > workInProgressRootRenderTargetTime &&
-                ((workInProgress.flags |= 128),
-                (type = !0),
-                cutOffTailIfNeeded(newProps, !1),
-                (workInProgress.lanes = 4194304));
-            }
-          else {
-            if (!type)
-              if (
-                ((current = findFirstSuspended(nextResource)), null !== current)
-              ) {
-                if (
-                  ((workInProgress.flags |= 128),
-                  (type = !0),
-                  (current = current.updateQueue),
-                  (workInProgress.updateQueue = current),
-                  scheduleRetryEffect(workInProgress, current),
-                  cutOffTailIfNeeded(newProps, !0),
-                  null === newProps.tail &&
-                    "hidden" === newProps.tailMode &&
-                    !nextResource.alternate &&
-                    !isHydrating)
-                )
-                  return bubbleProperties(workInProgress), null;
-              } else
-                2 * now$1() - newProps.renderingStartTime >
-                  workInProgressRootRenderTargetTime &&
-                  536870912 !== renderLanes &&
-                  ((workInProgress.flags |= 128),
-                  (type = !0),
-                  cutOffTailIfNeeded(newProps, !1),
-                  (workInProgress.lanes = 4194304));
-            newProps.isBackwards
-              ? ((nextResource.sibling = workInProgress.child),
-                (workInProgress.child = nextResource))
-              : ((current = newProps.last),
-                null !== current
-                  ? (current.sibling = nextResource)
-                  : (workInProgress.child = nextResource),
-                (newProps.last = nextResource));
-          }
-          if (null !== newProps.tail)
-            return (
-              (current = newProps.tail),
-              (newProps.rendering = current),
-              (newProps.tail = current.sibling),
-              (newProps.renderingStartTime = now$1()),
-              (current.sibling = null),
-              (renderLanes = suspenseStackCursor.current),
-              (renderLanes = type
-                ? (renderLanes & SubtreeSuspenseContextMask) |
-                  ForceSuspenseFallback
-                : renderLanes & SubtreeSuspenseContextMask),
-              push(suspenseStackCursor, renderLanes, workInProgress),
-              isHydrating &&
-                pushTreeFork(workInProgress, newProps.treeForkCount),
-              current
-            );
-          bubbleProperties(workInProgress);
-          return null;
-        case 22:
-        case 23:
-          return (
-            popSuspenseHandler(workInProgress),
-            popHiddenContext(workInProgress),
-            (newProps = null !== workInProgress.memoizedState),
-            null !== current
-              ? (null !== current.memoizedState) !== newProps &&
-                (workInProgress.flags |= 8192)
-              : newProps && (workInProgress.flags |= 8192),
-            newProps
-              ? 0 !== (renderLanes & 536870912) &&
-                0 === (workInProgress.flags & 128) &&
-                (bubbleProperties(workInProgress),
-                workInProgress.subtreeFlags & 6 &&
-                  (workInProgress.flags |= 8192))
-              : bubbleProperties(workInProgress),
-            (renderLanes = workInProgress.updateQueue),
-            null !== renderLanes &&
-              scheduleRetryEffect(workInProgress, renderLanes.retryQueue),
-            (renderLanes = null),
-            null !== current &&
-              null !== current.memoizedState &&
-              null !== current.memoizedState.cachePool &&
-              (renderLanes = current.memoizedState.cachePool.pool),
-            (newProps = null),
-            null !== workInProgress.memoizedState &&
-              null !== workInProgress.memoizedState.cachePool &&
-              (newProps = workInProgress.memoizedState.cachePool.pool),
-            newProps !== renderLanes && (workInProgress.flags |= 2048),
-            null !== current && pop(resumedCache, workInProgress),
-            null
-          );
-        case 24:
-          return (
-            (renderLanes = null),
-            null !== current && (renderLanes = current.memoizedState.cache),
-            workInProgress.memoizedState.cache !== renderLanes &&
-              (workInProgress.flags |= 2048),
-            popProvider(CacheContext, workInProgress),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 25:
-          return null;
-        case 30:
-          return null;
-      }
-      throw Error(
-        "Unknown unit of work tag (" +
-          workInProgress.tag +
-          "). This error is likely caused by a bug in React. Please file an issue."
-      );
-    }
-    function unwindWork(current, workInProgress) {
-      popTreeContext(workInProgress);
-      switch (workInProgress.tag) {
-        case 1:
-          return (
-            (current = workInProgress.flags),
-            current & 65536
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  transferActualDuration(workInProgress),
-                workInProgress)
-              : null
-          );
-        case 3:
-          return (
-            popProvider(CacheContext, workInProgress),
-            popHostContainer(workInProgress),
-            (current = workInProgress.flags),
-            0 !== (current & 65536) && 0 === (current & 128)
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                workInProgress)
-              : null
-          );
-        case 26:
-        case 27:
-        case 5:
-          return popHostContext(workInProgress), null;
-        case 31:
-          if (null !== workInProgress.memoizedState) {
-            popSuspenseHandler(workInProgress);
-            if (null === workInProgress.alternate)
-              throw Error(
-                "Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."
-              );
-            resetHydrationState();
-          }
-          current = workInProgress.flags;
-          return current & 65536
-            ? ((workInProgress.flags = (current & -65537) | 128),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress)
-            : null;
-        case 13:
-          popSuspenseHandler(workInProgress);
-          current = workInProgress.memoizedState;
-          if (null !== current && null !== current.dehydrated) {
-            if (null === workInProgress.alternate)
-              throw Error(
-                "Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."
-              );
-            resetHydrationState();
-          }
-          current = workInProgress.flags;
-          return current & 65536
-            ? ((workInProgress.flags = (current & -65537) | 128),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress)
-            : null;
-        case 19:
-          return pop(suspenseStackCursor, workInProgress), null;
-        case 4:
-          return popHostContainer(workInProgress), null;
-        case 10:
-          return popProvider(workInProgress.type, workInProgress), null;
-        case 22:
-        case 23:
-          return (
-            popSuspenseHandler(workInProgress),
-            popHiddenContext(workInProgress),
-            null !== current && pop(resumedCache, workInProgress),
-            (current = workInProgress.flags),
-            current & 65536
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  transferActualDuration(workInProgress),
-                workInProgress)
-              : null
-          );
-        case 24:
-          return popProvider(CacheContext, workInProgress), null;
-        case 25:
-          return null;
-        default:
-          return null;
-      }
-    }
-    function unwindInterruptedWork(current, interruptedWork) {
-      popTreeContext(interruptedWork);
-      switch (interruptedWork.tag) {
-        case 3:
-          popProvider(CacheContext, interruptedWork);
-          popHostContainer(interruptedWork);
-          break;
-        case 26:
-        case 27:
-        case 5:
-          popHostContext(interruptedWork);
-          break;
-        case 4:
-          popHostContainer(interruptedWork);
-          break;
-        case 31:
-          null !== interruptedWork.memoizedState &&
-            popSuspenseHandler(interruptedWork);
-          break;
-        case 13:
-          popSuspenseHandler(interruptedWork);
-          break;
-        case 19:
-          pop(suspenseStackCursor, interruptedWork);
-          break;
-        case 10:
-          popProvider(interruptedWork.type, interruptedWork);
-          break;
-        case 22:
-        case 23:
-          popSuspenseHandler(interruptedWork);
-          popHiddenContext(interruptedWork);
-          null !== current && pop(resumedCache, interruptedWork);
-          break;
-        case 24:
-          popProvider(CacheContext, interruptedWork);
-      }
-    }
-    function shouldProfile(current) {
-      return (current.mode & ProfileMode) !== NoMode;
-    }
-    function commitHookLayoutEffects(finishedWork, hookFlags) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListMount(hookFlags, finishedWork),
-          recordEffectDuration())
-        : commitHookEffectListMount(hookFlags, finishedWork);
-    }
-    function commitHookLayoutUnmountEffects(
-      finishedWork,
-      nearestMountedAncestor,
-      hookFlags
-    ) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          ),
-          recordEffectDuration())
-        : commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          );
-    }
-    function commitHookEffectListMount(flags, finishedWork) {
-      try {
-        var updateQueue = finishedWork.updateQueue,
-          lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-        if (null !== lastEffect) {
-          var firstEffect = lastEffect.next;
-          updateQueue = firstEffect;
-          do {
-            if (
-              (updateQueue.tag & flags) === flags &&
-              ((lastEffect = void 0),
-              (flags & Insertion) !== NoFlags &&
-                (isRunningInsertionEffect = !0),
-              (lastEffect = runWithFiberInDEV(
-                finishedWork,
-                callCreateInDEV,
-                updateQueue
-              )),
-              (flags & Insertion) !== NoFlags &&
-                (isRunningInsertionEffect = !1),
-              void 0 !== lastEffect && "function" !== typeof lastEffect)
-            ) {
-              var hookName = void 0;
-              hookName =
-                0 !== (updateQueue.tag & Layout)
-                  ? "useLayoutEffect"
-                  : 0 !== (updateQueue.tag & Insertion)
-                    ? "useInsertionEffect"
-                    : "useEffect";
-              var addendum = void 0;
-              addendum =
-                null === lastEffect
-                  ? " You returned null. If your effect does not require clean up, return undefined (or nothing)."
-                  : "function" === typeof lastEffect.then
-                    ? "\n\nIt looks like you wrote " +
-                      hookName +
-                      "(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\n" +
-                      hookName +
-                      "(() => {\n  async function fetchData() {\n    // You can await here\n    const response = await MyAPI.getData(someId);\n    // ...\n  }\n  fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching"
-                    : " You returned: " + lastEffect;
-              runWithFiberInDEV(
-                finishedWork,
-                function (n, a) {
-                  console.error(
-                    "%s must not return anything besides a function, which is used for clean-up.%s",
-                    n,
-                    a
-                  );
-                },
-                hookName,
-                addendum
-              );
-            }
-            updateQueue = updateQueue.next;
-          } while (updateQueue !== firstEffect);
-        }
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHookEffectListUnmount(
-      flags,
-      finishedWork,
-      nearestMountedAncestor
-    ) {
-      try {
-        var updateQueue = finishedWork.updateQueue,
-          lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-        if (null !== lastEffect) {
-          var firstEffect = lastEffect.next;
-          updateQueue = firstEffect;
-          do {
-            if ((updateQueue.tag & flags) === flags) {
-              var inst = updateQueue.inst,
-                destroy = inst.destroy;
-              void 0 !== destroy &&
-                ((inst.destroy = void 0),
-                (flags & Insertion) !== NoFlags &&
-                  (isRunningInsertionEffect = !0),
-                (lastEffect = finishedWork),
-                runWithFiberInDEV(
-                  lastEffect,
-                  callDestroyInDEV,
-                  lastEffect,
-                  nearestMountedAncestor,
-                  destroy
-                ),
-                (flags & Insertion) !== NoFlags &&
-                  (isRunningInsertionEffect = !1));
-            }
-            updateQueue = updateQueue.next;
-          } while (updateQueue !== firstEffect);
-        }
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHookPassiveMountEffects(finishedWork, hookFlags) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListMount(hookFlags, finishedWork),
-          recordEffectDuration())
-        : commitHookEffectListMount(hookFlags, finishedWork);
-    }
-    function commitHookPassiveUnmountEffects(
-      finishedWork,
-      nearestMountedAncestor,
-      hookFlags
-    ) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          ),
-          recordEffectDuration())
-        : commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          );
-    }
-    function commitClassCallbacks(finishedWork) {
-      var updateQueue = finishedWork.updateQueue;
-      if (null !== updateQueue) {
-        var instance = finishedWork.stateNode;
-        finishedWork.type.defaultProps ||
-          "ref" in finishedWork.memoizedProps ||
-          didWarnAboutReassigningProps ||
-          (instance.props !== finishedWork.memoizedProps &&
-            console.error(
-              "Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-              getComponentNameFromFiber(finishedWork) || "instance"
-            ),
-          instance.state !== finishedWork.memoizedState &&
-            console.error(
-              "Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-              getComponentNameFromFiber(finishedWork) || "instance"
-            ));
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitCallbacks,
-            updateQueue,
-            instance
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-    }
-    function callGetSnapshotBeforeUpdates(instance, prevProps, prevState) {
-      return instance.getSnapshotBeforeUpdate(prevProps, prevState);
-    }
-    function commitClassSnapshot(finishedWork, current) {
-      var prevProps = current.memoizedProps,
-        prevState = current.memoizedState;
-      current = finishedWork.stateNode;
-      finishedWork.type.defaultProps ||
-        "ref" in finishedWork.memoizedProps ||
-        didWarnAboutReassigningProps ||
-        (current.props !== finishedWork.memoizedProps &&
-          console.error(
-            "Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-            getComponentNameFromFiber(finishedWork) || "instance"
-          ),
-        current.state !== finishedWork.memoizedState &&
-          console.error(
-            "Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-            getComponentNameFromFiber(finishedWork) || "instance"
-          ));
-      try {
-        var resolvedPrevProps = resolveClassComponentProps(
-          finishedWork.type,
-          prevProps
-        );
-        var snapshot = runWithFiberInDEV(
-          finishedWork,
-          callGetSnapshotBeforeUpdates,
-          current,
-          resolvedPrevProps,
-          prevState
-        );
-        prevProps = didWarnAboutUndefinedSnapshotBeforeUpdate;
-        void 0 !== snapshot ||
-          prevProps.has(finishedWork.type) ||
-          (prevProps.add(finishedWork.type),
-          runWithFiberInDEV(finishedWork, function () {
-            console.error(
-              "%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",
-              getComponentNameFromFiber(finishedWork)
-            );
-          }));
-        current.__reactInternalSnapshotBeforeUpdate = snapshot;
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function safelyCallComponentWillUnmount(
-      current,
-      nearestMountedAncestor,
-      instance
-    ) {
-      instance.props = resolveClassComponentProps(
-        current.type,
-        current.memoizedProps
-      );
-      instance.state = current.memoizedState;
-      shouldProfile(current)
-        ? (startEffectTimer(),
-          runWithFiberInDEV(
-            current,
-            callComponentWillUnmountInDEV,
-            current,
-            nearestMountedAncestor,
-            instance
-          ),
-          recordEffectDuration())
-        : runWithFiberInDEV(
-            current,
-            callComponentWillUnmountInDEV,
-            current,
-            nearestMountedAncestor,
-            instance
-          );
-    }
-    function commitAttachRef(finishedWork) {
-      var ref = finishedWork.ref;
-      if (null !== ref) {
-        switch (finishedWork.tag) {
-          case 26:
-          case 27:
-          case 5:
-            var instanceToUse = finishedWork.stateNode;
-            break;
-          case 30:
-            instanceToUse = finishedWork.stateNode;
-            break;
-          default:
-            instanceToUse = finishedWork.stateNode;
-        }
-        if ("function" === typeof ref)
-          if (shouldProfile(finishedWork))
-            try {
-              startEffectTimer(),
-                (finishedWork.refCleanup = ref(instanceToUse));
-            } finally {
-              recordEffectDuration();
-            }
-          else finishedWork.refCleanup = ref(instanceToUse);
-        else
-          "string" === typeof ref
-            ? console.error("String refs are no longer supported.")
-            : ref.hasOwnProperty("current") ||
-              console.error(
-                "Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().",
-                getComponentNameFromFiber(finishedWork)
-              ),
-            (ref.current = instanceToUse);
-      }
-    }
-    function safelyAttachRef(current, nearestMountedAncestor) {
-      try {
-        runWithFiberInDEV(current, commitAttachRef, current);
-      } catch (error) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error);
-      }
-    }
-    function safelyDetachRef(current, nearestMountedAncestor) {
-      var ref = current.ref,
-        refCleanup = current.refCleanup;
-      if (null !== ref)
-        if ("function" === typeof refCleanup)
-          try {
-            if (shouldProfile(current))
-              try {
-                startEffectTimer(), runWithFiberInDEV(current, refCleanup);
-              } finally {
-                recordEffectDuration(current);
-              }
-            else runWithFiberInDEV(current, refCleanup);
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          } finally {
-            (current.refCleanup = null),
-              (current = current.alternate),
-              null != current && (current.refCleanup = null);
-          }
-        else if ("function" === typeof ref)
-          try {
-            if (shouldProfile(current))
-              try {
-                startEffectTimer(), runWithFiberInDEV(current, ref, null);
-              } finally {
-                recordEffectDuration(current);
-              }
-            else runWithFiberInDEV(current, ref, null);
-          } catch (error$7) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error$7);
-          }
-        else ref.current = null;
-    }
-    function commitProfiler(
-      finishedWork,
-      current,
-      commitStartTime,
-      effectDuration
-    ) {
-      var _finishedWork$memoize = finishedWork.memoizedProps,
-        id = _finishedWork$memoize.id,
-        onCommit = _finishedWork$memoize.onCommit;
-      _finishedWork$memoize = _finishedWork$memoize.onRender;
-      current = null === current ? "mount" : "update";
-      currentUpdateIsNested && (current = "nested-update");
-      "function" === typeof _finishedWork$memoize &&
-        _finishedWork$memoize(
-          id,
-          current,
-          finishedWork.actualDuration,
-          finishedWork.treeBaseDuration,
-          finishedWork.actualStartTime,
-          commitStartTime
-        );
-      "function" === typeof onCommit &&
-        onCommit(id, current, effectDuration, commitStartTime);
-    }
-    function commitProfilerPostCommitImpl(
-      finishedWork,
-      current,
-      commitStartTime,
-      passiveEffectDuration
-    ) {
-      var _finishedWork$memoize2 = finishedWork.memoizedProps;
-      finishedWork = _finishedWork$memoize2.id;
-      _finishedWork$memoize2 = _finishedWork$memoize2.onPostCommit;
-      current = null === current ? "mount" : "update";
-      currentUpdateIsNested && (current = "nested-update");
-      "function" === typeof _finishedWork$memoize2 &&
-        _finishedWork$memoize2(
-          finishedWork,
-          current,
-          passiveEffectDuration,
-          commitStartTime
-        );
-    }
-    function commitHostMount(finishedWork) {
-      var type = finishedWork.type,
-        props = finishedWork.memoizedProps,
-        instance = finishedWork.stateNode;
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          commitMount,
-          instance,
-          type,
-          props,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHostUpdate(finishedWork, newProps, oldProps) {
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          commitUpdate,
-          finishedWork.stateNode,
-          finishedWork.type,
-          oldProps,
-          newProps,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function isHostParent(fiber) {
-      return (
-        5 === fiber.tag ||
-        3 === fiber.tag ||
-        26 === fiber.tag ||
-        (27 === fiber.tag && isSingletonScope(fiber.type)) ||
-        4 === fiber.tag
-      );
-    }
-    function getHostSibling(fiber) {
-      a: for (;;) {
-        for (; null === fiber.sibling; ) {
-          if (null === fiber.return || isHostParent(fiber.return)) return null;
-          fiber = fiber.return;
-        }
-        fiber.sibling.return = fiber.return;
-        for (
-          fiber = fiber.sibling;
-          5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
-
-        ) {
-          if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;
-          if (fiber.flags & 2) continue a;
-          if (null === fiber.child || 4 === fiber.tag) continue a;
-          else (fiber.child.return = fiber), (fiber = fiber.child);
-        }
-        if (!(fiber.flags & 2)) return fiber.stateNode;
-      }
-    }
-    function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
-      var tag = node.tag;
-      if (5 === tag || 6 === tag)
-        (node = node.stateNode),
-          before
-            ? (warnForReactChildrenConflict(parent),
-              (9 === parent.nodeType
-                ? parent.body
-                : "HTML" === parent.nodeName
-                  ? parent.ownerDocument.body
-                  : parent
-              ).insertBefore(node, before))
-            : (warnForReactChildrenConflict(parent),
-              (before =
-                9 === parent.nodeType
-                  ? parent.body
-                  : "HTML" === parent.nodeName
-                    ? parent.ownerDocument.body
-                    : parent),
-              before.appendChild(node),
-              (parent = parent._reactRootContainer),
-              (null !== parent && void 0 !== parent) ||
-                null !== before.onclick ||
-                (before.onclick = noop$1));
-      else if (
-        4 !== tag &&
-        (27 === tag &&
-          isSingletonScope(node.type) &&
-          ((parent = node.stateNode), (before = null)),
-        (node = node.child),
-        null !== node)
-      )
-        for (
-          insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-            node = node.sibling;
-          null !== node;
-
-        )
-          insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-            (node = node.sibling);
-    }
-    function insertOrAppendPlacementNode(node, before, parent) {
-      var tag = node.tag;
-      if (5 === tag || 6 === tag)
-        (node = node.stateNode),
-          before ? parent.insertBefore(node, before) : parent.appendChild(node);
-      else if (
-        4 !== tag &&
-        (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),
-        (node = node.child),
-        null !== node)
-      )
-        for (
-          insertOrAppendPlacementNode(node, before, parent),
-            node = node.sibling;
-          null !== node;
-
-        )
-          insertOrAppendPlacementNode(node, before, parent),
-            (node = node.sibling);
-    }
-    function commitPlacement(finishedWork) {
-      for (
-        var hostParentFiber, parentFiber = finishedWork.return;
-        null !== parentFiber;
-
-      ) {
-        if (isHostParent(parentFiber)) {
-          hostParentFiber = parentFiber;
-          break;
-        }
-        parentFiber = parentFiber.return;
-      }
-      if (null == hostParentFiber)
-        throw Error(
-          "Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."
-        );
-      switch (hostParentFiber.tag) {
-        case 27:
-          hostParentFiber = hostParentFiber.stateNode;
-          parentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(
-            finishedWork,
-            parentFiber,
-            hostParentFiber
-          );
-          break;
-        case 5:
-          parentFiber = hostParentFiber.stateNode;
-          hostParentFiber.flags & 32 &&
-            (resetTextContent(parentFiber), (hostParentFiber.flags &= -33));
-          hostParentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(
-            finishedWork,
-            hostParentFiber,
-            parentFiber
-          );
-          break;
-        case 3:
-        case 4:
-          hostParentFiber = hostParentFiber.stateNode.containerInfo;
-          parentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNodeIntoContainer(
-            finishedWork,
-            parentFiber,
-            hostParentFiber
-          );
-          break;
-        default:
-          throw Error(
-            "Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue."
-          );
-      }
-    }
-    function commitHostSingletonAcquisition(finishedWork) {
-      var singleton = finishedWork.stateNode,
-        props = finishedWork.memoizedProps;
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          acquireSingletonInstance,
-          finishedWork.type,
-          props,
-          singleton,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function isHydratingParent(current, finishedWork) {
-      return 31 === finishedWork.tag
-        ? ((finishedWork = finishedWork.memoizedState),
-          null !== current.memoizedState && null === finishedWork)
-        : 13 === finishedWork.tag
-          ? ((current = current.memoizedState),
-            (finishedWork = finishedWork.memoizedState),
-            null !== current &&
-              null !== current.dehydrated &&
-              (null === finishedWork || null === finishedWork.dehydrated))
-          : 3 === finishedWork.tag
-            ? current.memoizedState.isDehydrated &&
-              0 === (finishedWork.flags & 256)
-            : !1;
-    }
-    function commitBeforeMutationEffects(root, firstChild) {
-      root = root.containerInfo;
-      eventsEnabled = _enabled;
-      root = getActiveElementDeep(root);
-      if (hasSelectionCapabilities(root)) {
-        if ("selectionStart" in root)
-          var JSCompiler_temp = {
-            start: root.selectionStart,
-            end: root.selectionEnd
-          };
-        else
-          a: {
-            JSCompiler_temp =
-              ((JSCompiler_temp = root.ownerDocument) &&
-                JSCompiler_temp.defaultView) ||
-              window;
-            var selection =
-              JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();
-            if (selection && 0 !== selection.rangeCount) {
-              JSCompiler_temp = selection.anchorNode;
-              var anchorOffset = selection.anchorOffset,
-                focusNode = selection.focusNode;
-              selection = selection.focusOffset;
-              try {
-                JSCompiler_temp.nodeType, focusNode.nodeType;
-              } catch (e$2) {
-                JSCompiler_temp = null;
-                break a;
-              }
-              var length = 0,
-                start = -1,
-                end = -1,
-                indexWithinAnchor = 0,
-                indexWithinFocus = 0,
-                node = root,
-                parentNode = null;
-              b: for (;;) {
-                for (var next; ; ) {
-                  node !== JSCompiler_temp ||
-                    (0 !== anchorOffset && 3 !== node.nodeType) ||
-                    (start = length + anchorOffset);
-                  node !== focusNode ||
-                    (0 !== selection && 3 !== node.nodeType) ||
-                    (end = length + selection);
-                  3 === node.nodeType && (length += node.nodeValue.length);
-                  if (null === (next = node.firstChild)) break;
-                  parentNode = node;
-                  node = next;
-                }
-                for (;;) {
-                  if (node === root) break b;
-                  parentNode === JSCompiler_temp &&
-                    ++indexWithinAnchor === anchorOffset &&
-                    (start = length);
-                  parentNode === focusNode &&
-                    ++indexWithinFocus === selection &&
-                    (end = length);
-                  if (null !== (next = node.nextSibling)) break;
-                  node = parentNode;
-                  parentNode = node.parentNode;
-                }
-                node = next;
-              }
-              JSCompiler_temp =
-                -1 === start || -1 === end ? null : { start: start, end: end };
-            } else JSCompiler_temp = null;
-          }
-        JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };
-      } else JSCompiler_temp = null;
-      selectionInformation = {
-        focusedElem: root,
-        selectionRange: JSCompiler_temp
-      };
-      _enabled = !1;
-      for (nextEffect = firstChild; null !== nextEffect; )
-        if (
-          ((firstChild = nextEffect),
-          (root = firstChild.child),
-          0 !== (firstChild.subtreeFlags & 1028) && null !== root)
-        )
-          (root.return = firstChild), (nextEffect = root);
-        else
-          for (; null !== nextEffect; ) {
-            root = firstChild = nextEffect;
-            JSCompiler_temp = root.alternate;
-            anchorOffset = root.flags;
-            switch (root.tag) {
-              case 0:
-                if (
-                  0 !== (anchorOffset & 4) &&
-                  ((root = root.updateQueue),
-                  (root = null !== root ? root.events : null),
-                  null !== root)
-                )
-                  for (
-                    JSCompiler_temp = 0;
-                    JSCompiler_temp < root.length;
-                    JSCompiler_temp++
-                  )
-                    (anchorOffset = root[JSCompiler_temp]),
-                      (anchorOffset.ref.impl = anchorOffset.nextImpl);
-                break;
-              case 11:
-              case 15:
-                break;
-              case 1:
-                0 !== (anchorOffset & 1024) &&
-                  null !== JSCompiler_temp &&
-                  commitClassSnapshot(root, JSCompiler_temp);
-                break;
-              case 3:
-                if (0 !== (anchorOffset & 1024))
-                  if (
-                    ((root = root.stateNode.containerInfo),
-                    (JSCompiler_temp = root.nodeType),
-                    9 === JSCompiler_temp)
-                  )
-                    clearContainerSparingly(root);
-                  else if (1 === JSCompiler_temp)
-                    switch (root.nodeName) {
-                      case "HEAD":
-                      case "HTML":
-                      case "BODY":
-                        clearContainerSparingly(root);
-                        break;
-                      default:
-                        root.textContent = "";
-                    }
-                break;
-              case 5:
-              case 26:
-              case 27:
-              case 6:
-              case 4:
-              case 17:
-                break;
-              default:
-                if (0 !== (anchorOffset & 1024))
-                  throw Error(
-                    "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."
-                  );
-            }
-            root = firstChild.sibling;
-            if (null !== root) {
-              root.return = firstChild.return;
-              nextEffect = root;
-              break;
-            }
-            nextEffect = firstChild.return;
-          }
-    }
-    function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitHookLayoutEffects(finishedWork, Layout | HasEffect);
-          break;
-        case 1:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (flags & 4)
-            if (((finishedRoot = finishedWork.stateNode), null === current))
-              finishedWork.type.defaultProps ||
-                "ref" in finishedWork.memoizedProps ||
-                didWarnAboutReassigningProps ||
-                (finishedRoot.props !== finishedWork.memoizedProps &&
-                  console.error(
-                    "Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ),
-                finishedRoot.state !== finishedWork.memoizedState &&
-                  console.error(
-                    "Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  )),
-                shouldProfile(finishedWork)
-                  ? (startEffectTimer(),
-                    runWithFiberInDEV(
-                      finishedWork,
-                      callComponentDidMountInDEV,
-                      finishedWork,
-                      finishedRoot
-                    ),
-                    recordEffectDuration())
-                  : runWithFiberInDEV(
-                      finishedWork,
-                      callComponentDidMountInDEV,
-                      finishedWork,
-                      finishedRoot
-                    );
-            else {
-              var prevProps = resolveClassComponentProps(
-                finishedWork.type,
-                current.memoizedProps
-              );
-              current = current.memoizedState;
-              finishedWork.type.defaultProps ||
-                "ref" in finishedWork.memoizedProps ||
-                didWarnAboutReassigningProps ||
-                (finishedRoot.props !== finishedWork.memoizedProps &&
-                  console.error(
-                    "Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ),
-                finishedRoot.state !== finishedWork.memoizedState &&
-                  console.error(
-                    "Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ));
-              shouldProfile(finishedWork)
-                ? (startEffectTimer(),
-                  runWithFiberInDEV(
-                    finishedWork,
-                    callComponentDidUpdateInDEV,
-                    finishedWork,
-                    finishedRoot,
-                    prevProps,
-                    current,
-                    finishedRoot.__reactInternalSnapshotBeforeUpdate
-                  ),
-                  recordEffectDuration())
-                : runWithFiberInDEV(
-                    finishedWork,
-                    callComponentDidUpdateInDEV,
-                    finishedWork,
-                    finishedRoot,
-                    prevProps,
-                    current,
-                    finishedRoot.__reactInternalSnapshotBeforeUpdate
-                  );
-            }
-          flags & 64 && commitClassCallbacks(finishedWork);
-          flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 3:
-          current = pushNestedEffectDurations();
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (
-            flags & 64 &&
-            ((flags = finishedWork.updateQueue), null !== flags)
-          ) {
-            prevProps = null;
-            if (null !== finishedWork.child)
-              switch (finishedWork.child.tag) {
-                case 27:
-                case 5:
-                  prevProps = finishedWork.child.stateNode;
-                  break;
-                case 1:
-                  prevProps = finishedWork.child.stateNode;
-              }
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitCallbacks,
-                flags,
-                prevProps
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          finishedRoot.effectDuration += popNestedEffectDurations(current);
-          break;
-        case 27:
-          null === current &&
-            flags & 4 &&
-            commitHostSingletonAcquisition(finishedWork);
-        case 26:
-        case 5:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (null === current)
-            if (flags & 4) commitHostMount(finishedWork);
-            else if (flags & 64) {
-              finishedRoot = finishedWork.type;
-              current = finishedWork.memoizedProps;
-              prevProps = finishedWork.stateNode;
-              try {
-                runWithFiberInDEV(
-                  finishedWork,
-                  commitHydratedInstance,
-                  prevProps,
-                  finishedRoot,
-                  current,
-                  finishedWork
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  finishedWork,
-                  finishedWork.return,
-                  error
-                );
-              }
-            }
-          flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 12:
-          if (flags & 4) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-            finishedRoot = finishedWork.stateNode;
-            finishedRoot.effectDuration += bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfiler,
-                finishedWork,
-                current,
-                commitStartTime,
-                finishedRoot.effectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          break;
-        case 31:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 13:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-          flags & 64 &&
-            ((finishedRoot = finishedWork.memoizedState),
-            null !== finishedRoot &&
-              ((finishedRoot = finishedRoot.dehydrated),
-              null !== finishedRoot &&
-                ((flags = retryDehydratedSuspenseBoundary.bind(
-                  null,
-                  finishedWork
-                )),
-                registerSuspenseInstanceRetry(finishedRoot, flags))));
-          break;
-        case 22:
-          flags =
-            null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;
-          if (!flags) {
-            current =
-              (null !== current && null !== current.memoizedState) ||
-              offscreenSubtreeWasHidden;
-            prevProps = offscreenSubtreeIsHidden;
-            var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-            offscreenSubtreeIsHidden = flags;
-            (offscreenSubtreeWasHidden = current) &&
-            !prevOffscreenSubtreeWasHidden
-              ? (recursivelyTraverseReappearLayoutEffects(
-                  finishedRoot,
-                  finishedWork,
-                  0 !== (finishedWork.subtreeFlags & 8772)
-                ),
-                (finishedWork.mode & ProfileMode) !== NoMode &&
-                  0 <= componentEffectStartTime &&
-                  0 <= componentEffectEndTime &&
-                  0.05 < componentEffectEndTime - componentEffectStartTime &&
-                  logComponentReappeared(
-                    finishedWork,
-                    componentEffectStartTime,
-                    componentEffectEndTime
-                  ))
-              : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-            offscreenSubtreeIsHidden = prevProps;
-            offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-          }
-          break;
-        case 30:
-          break;
-        default:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            finishedWork,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          ),
-        null === finishedWork.alternate &&
-          null !== finishedWork.return &&
-          null !== finishedWork.return.alternate &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          (isHydratingParent(
-            finishedWork.return.alternate,
-            finishedWork.return
-          ) ||
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            )));
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function detachFiberAfterEffects(fiber) {
-      var alternate = fiber.alternate;
-      null !== alternate &&
-        ((fiber.alternate = null), detachFiberAfterEffects(alternate));
-      fiber.child = null;
-      fiber.deletions = null;
-      fiber.sibling = null;
-      5 === fiber.tag &&
-        ((alternate = fiber.stateNode),
-        null !== alternate && detachDeletedInstance(alternate));
-      fiber.stateNode = null;
-      fiber._debugOwner = null;
-      fiber.return = null;
-      fiber.dependencies = null;
-      fiber.memoizedProps = null;
-      fiber.memoizedState = null;
-      fiber.pendingProps = null;
-      fiber.stateNode = null;
-      fiber.updateQueue = null;
-    }
-    function recursivelyTraverseDeletionEffects(
-      finishedRoot,
-      nearestMountedAncestor,
-      parent
-    ) {
-      for (parent = parent.child; null !== parent; )
-        commitDeletionEffectsOnFiber(
-          finishedRoot,
-          nearestMountedAncestor,
-          parent
-        ),
-          (parent = parent.sibling);
-    }
-    function commitDeletionEffectsOnFiber(
-      finishedRoot,
-      nearestMountedAncestor,
-      deletedFiber
-    ) {
-      if (
-        injectedHook &&
-        "function" === typeof injectedHook.onCommitFiberUnmount
-      )
-        try {
-          injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (deletedFiber.tag) {
-        case 26:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          deletedFiber.memoizedState
-            ? deletedFiber.memoizedState.count--
-            : deletedFiber.stateNode &&
-              ((finishedRoot = deletedFiber.stateNode),
-              finishedRoot.parentNode.removeChild(finishedRoot));
-          break;
-        case 27:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-          var prevHostParent = hostParent,
-            prevHostParentIsContainer = hostParentIsContainer;
-          isSingletonScope(deletedFiber.type) &&
-            ((hostParent = deletedFiber.stateNode),
-            (hostParentIsContainer = !1));
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          runWithFiberInDEV(
-            deletedFiber,
-            releaseSingletonInstance,
-            deletedFiber.stateNode
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          break;
-        case 5:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-        case 6:
-          prevHostParent = hostParent;
-          prevHostParentIsContainer = hostParentIsContainer;
-          hostParent = null;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          if (null !== hostParent)
-            if (hostParentIsContainer)
-              try {
-                runWithFiberInDEV(
-                  deletedFiber,
-                  removeChildFromContainer,
-                  hostParent,
-                  deletedFiber.stateNode
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  deletedFiber,
-                  nearestMountedAncestor,
-                  error
-                );
-              }
-            else
-              try {
-                runWithFiberInDEV(
-                  deletedFiber,
-                  removeChild,
-                  hostParent,
-                  deletedFiber.stateNode
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  deletedFiber,
-                  nearestMountedAncestor,
-                  error
-                );
-              }
-          break;
-        case 18:
-          null !== hostParent &&
-            (hostParentIsContainer
-              ? ((finishedRoot = hostParent),
-                clearHydrationBoundary(
-                  9 === finishedRoot.nodeType
-                    ? finishedRoot.body
-                    : "HTML" === finishedRoot.nodeName
-                      ? finishedRoot.ownerDocument.body
-                      : finishedRoot,
-                  deletedFiber.stateNode
-                ),
-                retryIfBlockedOn(finishedRoot))
-              : clearHydrationBoundary(hostParent, deletedFiber.stateNode));
-          break;
-        case 4:
-          prevHostParent = hostParent;
-          prevHostParentIsContainer = hostParentIsContainer;
-          hostParent = deletedFiber.stateNode.containerInfo;
-          hostParentIsContainer = !0;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          break;
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          commitHookEffectListUnmount(
-            Insertion,
-            deletedFiber,
-            nearestMountedAncestor
-          );
-          offscreenSubtreeWasHidden ||
-            commitHookLayoutUnmountEffects(
-              deletedFiber,
-              nearestMountedAncestor,
-              Layout
-            );
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 1:
-          offscreenSubtreeWasHidden ||
-            (safelyDetachRef(deletedFiber, nearestMountedAncestor),
-            (prevHostParent = deletedFiber.stateNode),
-            "function" === typeof prevHostParent.componentWillUnmount &&
-              safelyCallComponentWillUnmount(
-                deletedFiber,
-                nearestMountedAncestor,
-                prevHostParent
-              ));
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 21:
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 22:
-          offscreenSubtreeWasHidden =
-            (prevHostParent = offscreenSubtreeWasHidden) ||
-            null !== deletedFiber.memoizedState;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          offscreenSubtreeWasHidden = prevHostParent;
-          break;
-        default:
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-      }
-      (deletedFiber.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          deletedFiber,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {
-      if (
-        null === finishedWork.memoizedState &&
-        ((finishedRoot = finishedWork.alternate),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))
-      ) {
-        finishedRoot = finishedRoot.dehydrated;
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitHydratedActivityInstance,
-            finishedRoot
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-    }
-    function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {
-      if (
-        null === finishedWork.memoizedState &&
-        ((finishedRoot = finishedWork.alternate),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.memoizedState),
-          null !== finishedRoot &&
-            ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))
-      )
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitHydratedSuspenseInstance,
-            finishedRoot
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-    }
-    function getRetryCache(finishedWork) {
-      switch (finishedWork.tag) {
-        case 31:
-        case 13:
-        case 19:
-          var retryCache = finishedWork.stateNode;
-          null === retryCache &&
-            (retryCache = finishedWork.stateNode = new PossiblyWeakSet());
-          return retryCache;
-        case 22:
-          return (
-            (finishedWork = finishedWork.stateNode),
-            (retryCache = finishedWork._retryCache),
-            null === retryCache &&
-              (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),
-            retryCache
-          );
-        default:
-          throw Error(
-            "Unexpected Suspense handler tag (" +
-              finishedWork.tag +
-              "). This is a bug in React."
-          );
-      }
-    }
-    function attachSuspenseRetryListeners(finishedWork, wakeables) {
-      var retryCache = getRetryCache(finishedWork);
-      wakeables.forEach(function (wakeable) {
-        if (!retryCache.has(wakeable)) {
-          retryCache.add(wakeable);
-          if (isDevToolsPresent)
-            if (null !== inProgressLanes && null !== inProgressRoot)
-              restorePendingUpdaters(inProgressRoot, inProgressLanes);
-            else
-              throw Error(
-                "Expected finished root and lanes to be set. This is a bug in React."
-              );
-          var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);
-          wakeable.then(retry, retry);
-        }
-      });
-    }
-    function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (null !== deletions)
-        for (var i = 0; i < deletions.length; i++) {
-          var root = root$jscomp$0,
-            returnFiber = parentFiber,
-            deletedFiber = deletions[i],
-            prevEffectStart = pushComponentEffectStart(),
-            parent = returnFiber;
-          a: for (; null !== parent; ) {
-            switch (parent.tag) {
-              case 27:
-                if (isSingletonScope(parent.type)) {
-                  hostParent = parent.stateNode;
-                  hostParentIsContainer = !1;
-                  break a;
-                }
-                break;
-              case 5:
-                hostParent = parent.stateNode;
-                hostParentIsContainer = !1;
-                break a;
-              case 3:
-              case 4:
-                hostParent = parent.stateNode.containerInfo;
-                hostParentIsContainer = !0;
-                break a;
-            }
-            parent = parent.return;
-          }
-          if (null === hostParent)
-            throw Error(
-              "Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."
-            );
-          commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);
-          hostParent = null;
-          hostParentIsContainer = !1;
-          (deletedFiber.mode & ProfileMode) !== NoMode &&
-            0 <= componentEffectStartTime &&
-            0 <= componentEffectEndTime &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentTrigger(
-              deletedFiber,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Unmount"
-            );
-          popComponentEffectStart(prevEffectStart);
-          root = deletedFiber;
-          returnFiber = root.alternate;
-          null !== returnFiber && (returnFiber.return = null);
-          root.return = null;
-        }
-      if (parentFiber.subtreeFlags & 13886)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),
-            (parentFiber = parentFiber.sibling);
-    }
-    function commitMutationEffectsOnFiber(finishedWork, root) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        current = finishedWork.alternate,
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            (commitHookEffectListUnmount(
-              Insertion | HasEffect,
-              finishedWork,
-              finishedWork.return
-            ),
-            commitHookEffectListMount(Insertion | HasEffect, finishedWork),
-            commitHookLayoutUnmountEffects(
-              finishedWork,
-              finishedWork.return,
-              Layout | HasEffect
-            ));
-          break;
-        case 1:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (
-            flags & 64 &&
-            offscreenSubtreeIsHidden &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags && ((current = flags.callbacks), null !== current))
-          ) {
-            var existingHiddenCallbacks = flags.shared.hiddenCallbacks;
-            flags.shared.hiddenCallbacks =
-              null === existingHiddenCallbacks
-                ? current
-                : existingHiddenCallbacks.concat(current);
-          }
-          break;
-        case 26:
-          existingHiddenCallbacks = currentHoistableRoot;
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (flags & 4) {
-            var currentResource =
-              null !== current ? current.memoizedState : null;
-            flags = finishedWork.memoizedState;
-            if (null === current)
-              if (null === flags)
-                if (null === finishedWork.stateNode) {
-                  a: {
-                    flags = finishedWork.type;
-                    current = finishedWork.memoizedProps;
-                    existingHiddenCallbacks =
-                      existingHiddenCallbacks.ownerDocument ||
-                      existingHiddenCallbacks;
-                    b: switch (flags) {
-                      case "title":
-                        currentResource =
-                          existingHiddenCallbacks.getElementsByTagName(
-                            "title"
-                          )[0];
-                        if (
-                          !currentResource ||
-                          currentResource[internalHoistableMarker] ||
-                          currentResource[internalInstanceKey] ||
-                          currentResource.namespaceURI === SVG_NAMESPACE ||
-                          currentResource.hasAttribute("itemprop")
-                        )
-                          (currentResource =
-                            existingHiddenCallbacks.createElement(flags)),
-                            existingHiddenCallbacks.head.insertBefore(
-                              currentResource,
-                              existingHiddenCallbacks.querySelector(
-                                "head > title"
-                              )
-                            );
-                        setInitialProperties(currentResource, flags, current);
-                        currentResource[internalInstanceKey] = finishedWork;
-                        markNodeAsHoistable(currentResource);
-                        flags = currentResource;
-                        break a;
-                      case "link":
-                        var maybeNodes = getHydratableHoistableCache(
-                          "link",
-                          "href",
-                          existingHiddenCallbacks
-                        ).get(flags + (current.href || ""));
-                        if (maybeNodes)
-                          for (var i = 0; i < maybeNodes.length; i++)
-                            if (
-                              ((currentResource = maybeNodes[i]),
-                              currentResource.getAttribute("href") ===
-                                (null == current.href || "" === current.href
-                                  ? null
-                                  : current.href) &&
-                                currentResource.getAttribute("rel") ===
-                                  (null == current.rel ? null : current.rel) &&
-                                currentResource.getAttribute("title") ===
-                                  (null == current.title
-                                    ? null
-                                    : current.title) &&
-                                currentResource.getAttribute("crossorigin") ===
-                                  (null == current.crossOrigin
-                                    ? null
-                                    : current.crossOrigin))
-                            ) {
-                              maybeNodes.splice(i, 1);
-                              break b;
-                            }
-                        currentResource =
-                          existingHiddenCallbacks.createElement(flags);
-                        setInitialProperties(currentResource, flags, current);
-                        existingHiddenCallbacks.head.appendChild(
-                          currentResource
-                        );
-                        break;
-                      case "meta":
-                        if (
-                          (maybeNodes = getHydratableHoistableCache(
-                            "meta",
-                            "content",
-                            existingHiddenCallbacks
-                          ).get(flags + (current.content || "")))
-                        )
-                          for (i = 0; i < maybeNodes.length; i++)
-                            if (
-                              ((currentResource = maybeNodes[i]),
-                              checkAttributeStringCoercion(
-                                current.content,
-                                "content"
-                              ),
-                              currentResource.getAttribute("content") ===
-                                (null == current.content
-                                  ? null
-                                  : "" + current.content) &&
-                                currentResource.getAttribute("name") ===
-                                  (null == current.name
-                                    ? null
-                                    : current.name) &&
-                                currentResource.getAttribute("property") ===
-                                  (null == current.property
-                                    ? null
-                                    : current.property) &&
-                                currentResource.getAttribute("http-equiv") ===
-                                  (null == current.httpEquiv
-                                    ? null
-                                    : current.httpEquiv) &&
-                                currentResource.getAttribute("charset") ===
-                                  (null == current.charSet
-                                    ? null
-                                    : current.charSet))
-                            ) {
-                              maybeNodes.splice(i, 1);
-                              break b;
-                            }
-                        currentResource =
-                          existingHiddenCallbacks.createElement(flags);
-                        setInitialProperties(currentResource, flags, current);
-                        existingHiddenCallbacks.head.appendChild(
-                          currentResource
-                        );
-                        break;
-                      default:
-                        throw Error(
-                          'getNodesForType encountered a type it did not expect: "' +
-                            flags +
-                            '". This is a bug in React.'
-                        );
-                    }
-                    currentResource[internalInstanceKey] = finishedWork;
-                    markNodeAsHoistable(currentResource);
-                    flags = currentResource;
-                  }
-                  finishedWork.stateNode = flags;
-                } else
-                  mountHoistable(
-                    existingHiddenCallbacks,
-                    finishedWork.type,
-                    finishedWork.stateNode
-                  );
-              else
-                finishedWork.stateNode = acquireResource(
-                  existingHiddenCallbacks,
-                  flags,
-                  finishedWork.memoizedProps
-                );
-            else
-              currentResource !== flags
-                ? (null === currentResource
-                    ? null !== current.stateNode &&
-                      ((current = current.stateNode),
-                      current.parentNode.removeChild(current))
-                    : currentResource.count--,
-                  null === flags
-                    ? mountHoistable(
-                        existingHiddenCallbacks,
-                        finishedWork.type,
-                        finishedWork.stateNode
-                      )
-                    : acquireResource(
-                        existingHiddenCallbacks,
-                        flags,
-                        finishedWork.memoizedProps
-                      ))
-                : null === flags &&
-                  null !== finishedWork.stateNode &&
-                  commitHostUpdate(
-                    finishedWork,
-                    finishedWork.memoizedProps,
-                    current.memoizedProps
-                  );
-          }
-          break;
-        case 27:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          null !== current &&
-            flags & 4 &&
-            commitHostUpdate(
-              finishedWork,
-              finishedWork.memoizedProps,
-              current.memoizedProps
-            );
-          break;
-        case 5:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (finishedWork.flags & 32) {
-            existingHiddenCallbacks = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                resetTextContent,
-                existingHiddenCallbacks
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          flags & 4 &&
-            null != finishedWork.stateNode &&
-            ((existingHiddenCallbacks = finishedWork.memoizedProps),
-            commitHostUpdate(
-              finishedWork,
-              existingHiddenCallbacks,
-              null !== current ? current.memoizedProps : existingHiddenCallbacks
-            ));
-          flags & 1024 &&
-            ((needsFormReset = !0),
-            "form" !== finishedWork.type &&
-              console.error(
-                "Unexpected host component type. Expected a form. This is a bug in React."
-              ));
-          break;
-        case 6:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          if (flags & 4) {
-            if (null === finishedWork.stateNode)
-              throw Error(
-                "This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue."
-              );
-            flags = finishedWork.memoizedProps;
-            current = null !== current ? current.memoizedProps : flags;
-            existingHiddenCallbacks = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitTextUpdate,
-                existingHiddenCallbacks,
-                current,
-                flags
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          break;
-        case 3:
-          existingHiddenCallbacks = pushNestedEffectDurations();
-          tagCaches = null;
-          currentResource = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(root.containerInfo);
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          currentHoistableRoot = currentResource;
-          commitReconciliationEffects(finishedWork);
-          if (
-            flags & 4 &&
-            null !== current &&
-            current.memoizedState.isDehydrated
-          )
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitHydratedContainer,
-                root.containerInfo
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          needsFormReset &&
-            ((needsFormReset = !1), recursivelyResetForms(finishedWork));
-          root.effectDuration += popNestedEffectDurations(
-            existingHiddenCallbacks
-          );
-          break;
-        case 4:
-          flags = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(
-            finishedWork.stateNode.containerInfo
-          );
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          currentHoistableRoot = flags;
-          break;
-        case 12:
-          flags = pushNestedEffectDurations();
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          finishedWork.stateNode.effectDuration +=
-            bubbleNestedEffectDurations(flags);
-          break;
-        case 31:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 13:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          finishedWork.child.flags & 8192 &&
-            (null !== finishedWork.memoizedState) !==
-              (null !== current && null !== current.memoizedState) &&
-            (globalMostRecentFallbackTime = now$1());
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 22:
-          existingHiddenCallbacks = null !== finishedWork.memoizedState;
-          var wasHidden = null !== current && null !== current.memoizedState,
-            prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,
-            prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-          offscreenSubtreeIsHidden =
-            prevOffscreenSubtreeIsHidden || existingHiddenCallbacks;
-          offscreenSubtreeWasHidden =
-            prevOffscreenSubtreeWasHidden || wasHidden;
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-          offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
-          wasHidden &&
-            !existingHiddenCallbacks &&
-            !prevOffscreenSubtreeIsHidden &&
-            !prevOffscreenSubtreeWasHidden &&
-            (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 <= componentEffectStartTime &&
-            0 <= componentEffectEndTime &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentReappeared(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime
-            );
-          commitReconciliationEffects(finishedWork);
-          if (flags & 8192)
-            a: for (
-              root = finishedWork.stateNode,
-                root._visibility = existingHiddenCallbacks
-                  ? root._visibility & ~OffscreenVisible
-                  : root._visibility | OffscreenVisible,
-                !existingHiddenCallbacks ||
-                  null === current ||
-                  wasHidden ||
-                  offscreenSubtreeIsHidden ||
-                  offscreenSubtreeWasHidden ||
-                  (recursivelyTraverseDisappearLayoutEffects(finishedWork),
-                  (finishedWork.mode & ProfileMode) !== NoMode &&
-                    0 <= componentEffectStartTime &&
-                    0 <= componentEffectEndTime &&
-                    0.05 < componentEffectEndTime - componentEffectStartTime &&
-                    logComponentTrigger(
-                      finishedWork,
-                      componentEffectStartTime,
-                      componentEffectEndTime,
-                      "Disconnect"
-                    )),
-                current = null,
-                root = finishedWork;
-              ;
-
-            ) {
-              if (5 === root.tag || 26 === root.tag) {
-                if (null === current) {
-                  wasHidden = current = root;
-                  try {
-                    (currentResource = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideInstance,
-                            currentResource
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideInstance,
-                            wasHidden.stateNode,
-                            wasHidden.memoizedProps
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (6 === root.tag) {
-                if (null === current) {
-                  wasHidden = root;
-                  try {
-                    (maybeNodes = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideTextInstance,
-                            maybeNodes
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideTextInstance,
-                            maybeNodes,
-                            wasHidden.memoizedProps
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (18 === root.tag) {
-                if (null === current) {
-                  wasHidden = root;
-                  try {
-                    (i = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideDehydratedBoundary,
-                            i
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideDehydratedBoundary,
-                            wasHidden.stateNode
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (
-                ((22 !== root.tag && 23 !== root.tag) ||
-                  null === root.memoizedState ||
-                  root === finishedWork) &&
-                null !== root.child
-              ) {
-                root.child.return = root;
-                root = root.child;
-                continue;
-              }
-              if (root === finishedWork) break a;
-              for (; null === root.sibling; ) {
-                if (null === root.return || root.return === finishedWork)
-                  break a;
-                current === root && (current = null);
-                root = root.return;
-              }
-              current === root && (current = null);
-              root.sibling.return = root.return;
-              root = root.sibling;
-            }
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((current = flags.retryQueue),
-              null !== current &&
-                ((flags.retryQueue = null),
-                attachSuspenseRetryListeners(finishedWork, current))));
-          break;
-        case 19:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 30:
-          break;
-        case 21:
-          break;
-        default:
-          recursivelyTraverseMutationEffects(root, finishedWork),
-            commitReconciliationEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            finishedWork,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          ),
-        null === finishedWork.alternate &&
-          null !== finishedWork.return &&
-          null !== finishedWork.return.alternate &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          (isHydratingParent(
-            finishedWork.return.alternate,
-            finishedWork.return
-          ) ||
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            )));
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function commitReconciliationEffects(finishedWork) {
-      var flags = finishedWork.flags;
-      if (flags & 2) {
-        try {
-          runWithFiberInDEV(finishedWork, commitPlacement, finishedWork);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-        finishedWork.flags &= -3;
-      }
-      flags & 4096 && (finishedWork.flags &= -4097);
-    }
-    function recursivelyResetForms(parentFiber) {
-      if (parentFiber.subtreeFlags & 1024)
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var fiber = parentFiber;
-          recursivelyResetForms(fiber);
-          5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();
-          parentFiber = parentFiber.sibling;
-        }
-    }
-    function recursivelyTraverseLayoutEffects(root, parentFiber) {
-      if (parentFiber.subtreeFlags & 8772)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),
-            (parentFiber = parentFiber.sibling);
-    }
-    function disappearLayoutEffects(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          commitHookLayoutUnmountEffects(
-            finishedWork,
-            finishedWork.return,
-            Layout
-          );
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 1:
-          safelyDetachRef(finishedWork, finishedWork.return);
-          var instance = finishedWork.stateNode;
-          "function" === typeof instance.componentWillUnmount &&
-            safelyCallComponentWillUnmount(
-              finishedWork,
-              finishedWork.return,
-              instance
-            );
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 27:
-          runWithFiberInDEV(
-            finishedWork,
-            releaseSingletonInstance,
-            finishedWork.stateNode
-          );
-        case 26:
-        case 5:
-          safelyDetachRef(finishedWork, finishedWork.return);
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 22:
-          null === finishedWork.memoizedState &&
-            recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 30:
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        default:
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function recursivelyTraverseDisappearLayoutEffects(parentFiber) {
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        disappearLayoutEffects(parentFiber),
-          (parentFiber = parentFiber.sibling);
-    }
-    function reappearLayoutEffects(
-      finishedRoot,
-      current,
-      finishedWork,
-      includeWorkInProgressEffects
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          commitHookLayoutEffects(finishedWork, Layout);
-          break;
-        case 1:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          current = finishedWork.stateNode;
-          "function" === typeof current.componentDidMount &&
-            runWithFiberInDEV(
-              finishedWork,
-              callComponentDidMountInDEV,
-              finishedWork,
-              current
-            );
-          current = finishedWork.updateQueue;
-          if (null !== current) {
-            finishedRoot = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitHiddenCallbacks,
-                current,
-                finishedRoot
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          includeWorkInProgressEffects &&
-            flags & 64 &&
-            commitClassCallbacks(finishedWork);
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 27:
-          commitHostSingletonAcquisition(finishedWork);
-        case 26:
-        case 5:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            null === current &&
-            flags & 4 &&
-            commitHostMount(finishedWork);
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 12:
-          if (includeWorkInProgressEffects && flags & 4) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-            includeWorkInProgressEffects = finishedWork.stateNode;
-            includeWorkInProgressEffects.effectDuration +=
-              bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfiler,
-                finishedWork,
-                current,
-                commitStartTime,
-                includeWorkInProgressEffects.effectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-          break;
-        case 31:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            flags & 4 &&
-            commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 13:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            flags & 4 &&
-            commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 22:
-          null === finishedWork.memoizedState &&
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 30:
-          break;
-        default:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function recursivelyTraverseReappearLayoutEffects(
-      finishedRoot,
-      parentFiber,
-      includeWorkInProgressEffects
-    ) {
-      includeWorkInProgressEffects =
-        includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        reappearLayoutEffects(
-          finishedRoot,
-          parentFiber.alternate,
-          parentFiber,
-          includeWorkInProgressEffects
-        ),
-          (parentFiber = parentFiber.sibling);
-    }
-    function commitOffscreenPassiveMountEffects(current, finishedWork) {
-      var previousCache = null;
-      null !== current &&
-        null !== current.memoizedState &&
-        null !== current.memoizedState.cachePool &&
-        (previousCache = current.memoizedState.cachePool.pool);
-      current = null;
-      null !== finishedWork.memoizedState &&
-        null !== finishedWork.memoizedState.cachePool &&
-        (current = finishedWork.memoizedState.cachePool.pool);
-      current !== previousCache &&
-        (null != current && retainCache(current),
-        null != previousCache && releaseCache(previousCache));
-    }
-    function commitCachePassiveMountEffect(current, finishedWork) {
-      current = null;
-      null !== finishedWork.alternate &&
-        (current = finishedWork.alternate.memoizedState.cache);
-      finishedWork = finishedWork.memoizedState.cache;
-      finishedWork !== current &&
-        (retainCache(finishedWork), null != current && releaseCache(current));
-    }
-    function recursivelyTraversePassiveMountEffects(
-      root,
-      parentFiber,
-      committedLanes,
-      committedTransitions,
-      endTime
-    ) {
-      if (
-        parentFiber.subtreeFlags & 10256 ||
-        (0 !== parentFiber.actualDuration &&
-          (null === parentFiber.alternate ||
-            parentFiber.alternate.child !== parentFiber.child))
-      )
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var nextSibling = parentFiber.sibling;
-          commitPassiveMountOnFiber(
-            root,
-            parentFiber,
-            committedLanes,
-            committedTransitions,
-            null !== nextSibling ? nextSibling.actualStartTime : endTime
-          );
-          parentFiber = nextSibling;
-        }
-    }
-    function commitPassiveMountOnFiber(
-      finishedRoot,
-      finishedWork,
-      committedLanes,
-      committedTransitions,
-      endTime
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        prevDeepEquality = alreadyWarnedForDeepEquality,
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 < finishedWork.actualStartTime &&
-            0 !== (finishedWork.flags & 1) &&
-            logComponentRender(
-              finishedWork,
-              finishedWork.actualStartTime,
-              endTime,
-              inHydratedSubtree,
-              committedLanes
-            );
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 &&
-            commitHookPassiveMountEffects(finishedWork, Passive | HasEffect);
-          break;
-        case 1:
-          (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 < finishedWork.actualStartTime &&
-            (0 !== (finishedWork.flags & 128)
-              ? logComponentErrored(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime,
-                  []
-                )
-              : 0 !== (finishedWork.flags & 1) &&
-                logComponentRender(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime,
-                  inHydratedSubtree,
-                  committedLanes
-                ));
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          break;
-        case 3:
-          var prevProfilerEffectDuration = pushNestedEffectDurations(),
-            wasInHydratedSubtree = inHydratedSubtree;
-          inHydratedSubtree =
-            null !== finishedWork.alternate &&
-            finishedWork.alternate.memoizedState.isDehydrated &&
-            0 === (finishedWork.flags & 256);
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = wasInHydratedSubtree;
-          flags & 2048 &&
-            ((committedLanes = null),
-            null !== finishedWork.alternate &&
-              (committedLanes = finishedWork.alternate.memoizedState.cache),
-            (committedTransitions = finishedWork.memoizedState.cache),
-            committedTransitions !== committedLanes &&
-              (retainCache(committedTransitions),
-              null != committedLanes && releaseCache(committedLanes)));
-          finishedRoot.passiveEffectDuration += popNestedEffectDurations(
-            prevProfilerEffectDuration
-          );
-          break;
-        case 12:
-          if (flags & 2048) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            );
-            finishedRoot = finishedWork.stateNode;
-            finishedRoot.passiveEffectDuration +=
-              bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfilerPostCommitImpl,
-                finishedWork,
-                finishedWork.alternate,
-                commitStartTime,
-                finishedRoot.passiveEffectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else
-            recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            );
-          break;
-        case 31:
-          flags = inHydratedSubtree;
-          prevProfilerEffectDuration =
-            null !== finishedWork.alternate
-              ? finishedWork.alternate.memoizedState
-              : null;
-          wasInHydratedSubtree = finishedWork.memoizedState;
-          null !== prevProfilerEffectDuration && null === wasInHydratedSubtree
-            ? ((wasInHydratedSubtree = finishedWork.deletions),
-              null !== wasInHydratedSubtree &&
-              0 < wasInHydratedSubtree.length &&
-              18 === wasInHydratedSubtree[0].tag
-                ? ((inHydratedSubtree = !1),
-                  (prevProfilerEffectDuration =
-                    prevProfilerEffectDuration.hydrationErrors),
-                  null !== prevProfilerEffectDuration &&
-                    logComponentErrored(
-                      finishedWork,
-                      finishedWork.actualStartTime,
-                      endTime,
-                      prevProfilerEffectDuration
-                    ))
-                : (inHydratedSubtree = !0))
-            : (inHydratedSubtree = !1);
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = flags;
-          break;
-        case 13:
-          flags = inHydratedSubtree;
-          prevProfilerEffectDuration =
-            null !== finishedWork.alternate
-              ? finishedWork.alternate.memoizedState
-              : null;
-          wasInHydratedSubtree = finishedWork.memoizedState;
-          null === prevProfilerEffectDuration ||
-          null === prevProfilerEffectDuration.dehydrated ||
-          (null !== wasInHydratedSubtree &&
-            null !== wasInHydratedSubtree.dehydrated)
-            ? (inHydratedSubtree = !1)
-            : ((wasInHydratedSubtree = finishedWork.deletions),
-              null !== wasInHydratedSubtree &&
-              0 < wasInHydratedSubtree.length &&
-              18 === wasInHydratedSubtree[0].tag
-                ? ((inHydratedSubtree = !1),
-                  (prevProfilerEffectDuration =
-                    prevProfilerEffectDuration.hydrationErrors),
-                  null !== prevProfilerEffectDuration &&
-                    logComponentErrored(
-                      finishedWork,
-                      finishedWork.actualStartTime,
-                      endTime,
-                      prevProfilerEffectDuration
-                    ))
-                : (inHydratedSubtree = !0));
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = flags;
-          break;
-        case 23:
-          break;
-        case 22:
-          wasInHydratedSubtree = finishedWork.stateNode;
-          prevProfilerEffectDuration = finishedWork.alternate;
-          null !== finishedWork.memoizedState
-            ? wasInHydratedSubtree._visibility &
-              OffscreenPassiveEffectsConnected
-              ? recursivelyTraversePassiveMountEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-              : recursivelyTraverseAtomicPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-            : wasInHydratedSubtree._visibility &
-                OffscreenPassiveEffectsConnected
-              ? recursivelyTraversePassiveMountEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-              : ((wasInHydratedSubtree._visibility |=
-                  OffscreenPassiveEffectsConnected),
-                recursivelyTraverseReconnectPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  0 !== (finishedWork.subtreeFlags & 10256) ||
-                    (0 !== finishedWork.actualDuration &&
-                      (null === finishedWork.alternate ||
-                        finishedWork.alternate.child !== finishedWork.child)),
-                  endTime
-                ),
-                (finishedWork.mode & ProfileMode) === NoMode ||
-                  inHydratedSubtree ||
-                  ((finishedRoot = finishedWork.actualStartTime),
-                  0 <= finishedRoot &&
-                    0.05 < endTime - finishedRoot &&
-                    logComponentReappeared(finishedWork, finishedRoot, endTime),
-                  0 <= componentEffectStartTime &&
-                    0 <= componentEffectEndTime &&
-                    0.05 < componentEffectEndTime - componentEffectStartTime &&
-                    logComponentReappeared(
-                      finishedWork,
-                      componentEffectStartTime,
-                      componentEffectEndTime
-                    )));
-          flags & 2048 &&
-            commitOffscreenPassiveMountEffects(
-              prevProfilerEffectDuration,
-              finishedWork
-            );
-          break;
-        case 24:
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 &&
-            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-          break;
-        default:
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-      }
-      if ((finishedWork.mode & ProfileMode) !== NoMode) {
-        if (
-          (finishedRoot =
-            !inHydratedSubtree &&
-            null === finishedWork.alternate &&
-            null !== finishedWork.return &&
-            null !== finishedWork.return.alternate)
-        )
-          (committedLanes = finishedWork.actualStartTime),
-            0 <= committedLanes &&
-              0.05 < endTime - committedLanes &&
-              logComponentTrigger(
-                finishedWork,
-                committedLanes,
-                endTime,
-                "Mount"
-              );
-        0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-            logComponentEffect(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              componentEffectDuration,
-              componentEffectErrors
-            ),
-          finishedRoot &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            ));
-      }
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      alreadyWarnedForDeepEquality = prevDeepEquality;
-    }
-    function recursivelyTraverseReconnectPassiveEffects(
-      finishedRoot,
-      parentFiber,
-      committedLanes,
-      committedTransitions,
-      includeWorkInProgressEffects,
-      endTime
-    ) {
-      includeWorkInProgressEffects =
-        includeWorkInProgressEffects &&
-        (0 !== (parentFiber.subtreeFlags & 10256) ||
-          (0 !== parentFiber.actualDuration &&
-            (null === parentFiber.alternate ||
-              parentFiber.alternate.child !== parentFiber.child)));
-      for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-        var nextSibling = parentFiber.sibling;
-        reconnectPassiveEffects(
-          finishedRoot,
-          parentFiber,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects,
-          null !== nextSibling ? nextSibling.actualStartTime : endTime
-        );
-        parentFiber = nextSibling;
-      }
-    }
-    function reconnectPassiveEffects(
-      finishedRoot,
-      finishedWork,
-      committedLanes,
-      committedTransitions,
-      includeWorkInProgressEffects,
-      endTime
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        prevDeepEquality = alreadyWarnedForDeepEquality;
-      includeWorkInProgressEffects &&
-        (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 < finishedWork.actualStartTime &&
-        0 !== (finishedWork.flags & 1) &&
-        logComponentRender(
-          finishedWork,
-          finishedWork.actualStartTime,
-          endTime,
-          inHydratedSubtree,
-          committedLanes
-        );
-      var flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-          commitHookPassiveMountEffects(finishedWork, Passive);
-          break;
-        case 23:
-          break;
-        case 22:
-          var _instance2 = finishedWork.stateNode;
-          null !== finishedWork.memoizedState
-            ? _instance2._visibility & OffscreenPassiveEffectsConnected
-              ? recursivelyTraverseReconnectPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  includeWorkInProgressEffects,
-                  endTime
-                )
-              : recursivelyTraverseAtomicPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-            : ((_instance2._visibility |= OffscreenPassiveEffectsConnected),
-              recursivelyTraverseReconnectPassiveEffects(
-                finishedRoot,
-                finishedWork,
-                committedLanes,
-                committedTransitions,
-                includeWorkInProgressEffects,
-                endTime
-              ));
-          includeWorkInProgressEffects &&
-            flags & 2048 &&
-            commitOffscreenPassiveMountEffects(
-              finishedWork.alternate,
-              finishedWork
-            );
-          break;
-        case 24:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-          includeWorkInProgressEffects &&
-            flags & 2048 &&
-            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-          break;
-        default:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      alreadyWarnedForDeepEquality = prevDeepEquality;
-    }
-    function recursivelyTraverseAtomicPassiveEffects(
-      finishedRoot$jscomp$0,
-      parentFiber,
-      committedLanes$jscomp$0,
-      committedTransitions$jscomp$0,
-      endTime$jscomp$0
-    ) {
-      if (
-        parentFiber.subtreeFlags & 10256 ||
-        (0 !== parentFiber.actualDuration &&
-          (null === parentFiber.alternate ||
-            parentFiber.alternate.child !== parentFiber.child))
-      )
-        for (var child = parentFiber.child; null !== child; ) {
-          parentFiber = child.sibling;
-          var finishedRoot = finishedRoot$jscomp$0,
-            committedLanes = committedLanes$jscomp$0,
-            committedTransitions = committedTransitions$jscomp$0,
-            endTime =
-              null !== parentFiber
-                ? parentFiber.actualStartTime
-                : endTime$jscomp$0,
-            prevDeepEquality = alreadyWarnedForDeepEquality;
-          (child.mode & ProfileMode) !== NoMode &&
-            0 < child.actualStartTime &&
-            0 !== (child.flags & 1) &&
-            logComponentRender(
-              child,
-              child.actualStartTime,
-              endTime,
-              inHydratedSubtree,
-              committedLanes
-            );
-          var flags = child.flags;
-          switch (child.tag) {
-            case 22:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-              flags & 2048 &&
-                commitOffscreenPassiveMountEffects(child.alternate, child);
-              break;
-            case 24:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-              flags & 2048 &&
-                commitCachePassiveMountEffect(child.alternate, child);
-              break;
-            default:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-          }
-          alreadyWarnedForDeepEquality = prevDeepEquality;
-          child = parentFiber;
-        }
-    }
-    function recursivelyAccumulateSuspenseyCommit(
-      parentFiber,
-      committedLanes,
-      suspendedState
-    ) {
-      if (parentFiber.subtreeFlags & suspenseyCommitFlag)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          accumulateSuspenseyCommitOnFiber(
-            parentFiber,
-            committedLanes,
-            suspendedState
-          ),
-            (parentFiber = parentFiber.sibling);
-    }
-    function accumulateSuspenseyCommitOnFiber(
-      fiber,
-      committedLanes,
-      suspendedState
-    ) {
-      switch (fiber.tag) {
-        case 26:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          fiber.flags & suspenseyCommitFlag &&
-            null !== fiber.memoizedState &&
-            suspendResource(
-              suspendedState,
-              currentHoistableRoot,
-              fiber.memoizedState,
-              fiber.memoizedProps
-            );
-          break;
-        case 5:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          break;
-        case 3:
-        case 4:
-          var previousHoistableRoot = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(
-            fiber.stateNode.containerInfo
-          );
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          currentHoistableRoot = previousHoistableRoot;
-          break;
-        case 22:
-          null === fiber.memoizedState &&
-            ((previousHoistableRoot = fiber.alternate),
-            null !== previousHoistableRoot &&
-            null !== previousHoistableRoot.memoizedState
-              ? ((previousHoistableRoot = suspenseyCommitFlag),
-                (suspenseyCommitFlag = 16777216),
-                recursivelyAccumulateSuspenseyCommit(
-                  fiber,
-                  committedLanes,
-                  suspendedState
-                ),
-                (suspenseyCommitFlag = previousHoistableRoot))
-              : recursivelyAccumulateSuspenseyCommit(
-                  fiber,
-                  committedLanes,
-                  suspendedState
-                ));
-          break;
-        default:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-      }
-    }
-    function detachAlternateSiblings(parentFiber) {
-      var previousFiber = parentFiber.alternate;
-      if (
-        null !== previousFiber &&
-        ((parentFiber = previousFiber.child), null !== parentFiber)
-      ) {
-        previousFiber.child = null;
-        do
-          (previousFiber = parentFiber.sibling),
-            (parentFiber.sibling = null),
-            (parentFiber = previousFiber);
-        while (null !== parentFiber);
-      }
-    }
-    function recursivelyTraversePassiveUnmountEffects(parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (0 !== (parentFiber.flags & 16)) {
-        if (null !== deletions)
-          for (var i = 0; i < deletions.length; i++) {
-            var childToDelete = deletions[i],
-              prevEffectStart = pushComponentEffectStart();
-            nextEffect = childToDelete;
-            commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-              childToDelete,
-              parentFiber
-            );
-            (childToDelete.mode & ProfileMode) !== NoMode &&
-              0 <= componentEffectStartTime &&
-              0 <= componentEffectEndTime &&
-              0.05 < componentEffectEndTime - componentEffectStartTime &&
-              logComponentTrigger(
-                childToDelete,
-                componentEffectStartTime,
-                componentEffectEndTime,
-                "Unmount"
-              );
-            popComponentEffectStart(prevEffectStart);
-          }
-        detachAlternateSiblings(parentFiber);
-      }
-      if (parentFiber.subtreeFlags & 10256)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitPassiveUnmountOnFiber(parentFiber),
-            (parentFiber = parentFiber.sibling);
-    }
-    function commitPassiveUnmountOnFiber(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.flags & 2048 &&
-            commitHookPassiveUnmountEffects(
-              finishedWork,
-              finishedWork.return,
-              Passive | HasEffect
-            );
-          break;
-        case 3:
-          var prevProfilerEffectDuration = pushNestedEffectDurations();
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.stateNode.passiveEffectDuration +=
-            popNestedEffectDurations(prevProfilerEffectDuration);
-          break;
-        case 12:
-          prevProfilerEffectDuration = pushNestedEffectDurations();
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.stateNode.passiveEffectDuration +=
-            bubbleNestedEffectDurations(prevProfilerEffectDuration);
-          break;
-        case 22:
-          prevProfilerEffectDuration = finishedWork.stateNode;
-          null !== finishedWork.memoizedState &&
-          prevProfilerEffectDuration._visibility &
-            OffscreenPassiveEffectsConnected &&
-          (null === finishedWork.return || 13 !== finishedWork.return.tag)
-            ? ((prevProfilerEffectDuration._visibility &=
-                ~OffscreenPassiveEffectsConnected),
-              recursivelyTraverseDisconnectPassiveEffects(finishedWork),
-              (finishedWork.mode & ProfileMode) !== NoMode &&
-                0 <= componentEffectStartTime &&
-                0 <= componentEffectEndTime &&
-                0.05 < componentEffectEndTime - componentEffectStartTime &&
-                logComponentTrigger(
-                  finishedWork,
-                  componentEffectStartTime,
-                  componentEffectEndTime,
-                  "Disconnect"
-                ))
-            : recursivelyTraversePassiveUnmountEffects(finishedWork);
-          break;
-        default:
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      componentEffectErrors = prevEffectErrors;
-    }
-    function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (0 !== (parentFiber.flags & 16)) {
-        if (null !== deletions)
-          for (var i = 0; i < deletions.length; i++) {
-            var childToDelete = deletions[i],
-              prevEffectStart = pushComponentEffectStart();
-            nextEffect = childToDelete;
-            commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-              childToDelete,
-              parentFiber
-            );
-            (childToDelete.mode & ProfileMode) !== NoMode &&
-              0 <= componentEffectStartTime &&
-              0 <= componentEffectEndTime &&
-              0.05 < componentEffectEndTime - componentEffectStartTime &&
-              logComponentTrigger(
-                childToDelete,
-                componentEffectStartTime,
-                componentEffectEndTime,
-                "Unmount"
-              );
-            popComponentEffectStart(prevEffectStart);
-          }
-        detachAlternateSiblings(parentFiber);
-      }
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        disconnectPassiveEffect(parentFiber),
-          (parentFiber = parentFiber.sibling);
-    }
-    function disconnectPassiveEffect(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          commitHookPassiveUnmountEffects(
-            finishedWork,
-            finishedWork.return,
-            Passive
-          );
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork);
-          break;
-        case 22:
-          var instance = finishedWork.stateNode;
-          instance._visibility & OffscreenPassiveEffectsConnected &&
-            ((instance._visibility &= ~OffscreenPassiveEffectsConnected),
-            recursivelyTraverseDisconnectPassiveEffects(finishedWork));
-          break;
-        default:
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      componentEffectErrors = prevEffectErrors;
-    }
-    function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-      deletedSubtreeRoot,
-      nearestMountedAncestor$jscomp$0
-    ) {
-      for (; null !== nextEffect; ) {
-        var fiber = nextEffect,
-          current = fiber,
-          nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
-          prevEffectStart = pushComponentEffectStart(),
-          prevEffectDuration = pushComponentEffectDuration(),
-          prevEffectErrors = pushComponentEffectErrors(),
-          prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-        switch (current.tag) {
-          case 0:
-          case 11:
-          case 15:
-            commitHookPassiveUnmountEffects(
-              current,
-              nearestMountedAncestor,
-              Passive
-            );
-            break;
-          case 23:
-          case 22:
-            null !== current.memoizedState &&
-              null !== current.memoizedState.cachePool &&
-              ((nearestMountedAncestor = current.memoizedState.cachePool.pool),
-              null != nearestMountedAncestor &&
-                retainCache(nearestMountedAncestor));
-            break;
-          case 24:
-            releaseCache(current.memoizedState.cache);
-        }
-        (current.mode & ProfileMode) !== NoMode &&
-          0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            current,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          );
-        popComponentEffectStart(prevEffectStart);
-        popComponentEffectDuration(prevEffectDuration);
-        componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-        componentEffectErrors = prevEffectErrors;
-        current = fiber.child;
-        if (null !== current) (current.return = fiber), (nextEffect = current);
-        else
-          a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {
-            current = nextEffect;
-            prevEffectStart = current.sibling;
-            prevEffectDuration = current.return;
-            detachFiberAfterEffects(current);
-            if (current === fiber) {
-              nextEffect = null;
-              break a;
-            }
-            if (null !== prevEffectStart) {
-              prevEffectStart.return = prevEffectDuration;
-              nextEffect = prevEffectStart;
-              break a;
-            }
-            nextEffect = prevEffectDuration;
-          }
-      }
-    }
-    function onCommitRoot() {
-      commitHooks.forEach(function (commitHook) {
-        return commitHook();
-      });
-    }
-    function isConcurrentActEnvironment() {
-      var isReactActEnvironmentGlobal =
-        "undefined" !== typeof IS_REACT_ACT_ENVIRONMENT
-          ? IS_REACT_ACT_ENVIRONMENT
-          : void 0;
-      isReactActEnvironmentGlobal ||
-        null === ReactSharedInternals.actQueue ||
-        console.error(
-          "The current testing environment is not configured to support act(...)"
-        );
-      return isReactActEnvironmentGlobal;
-    }
-    function requestUpdateLane(fiber) {
-      if (
-        (executionContext & RenderContext) !== NoContext &&
-        0 !== workInProgressRootRenderLanes
-      )
-        return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;
-      var transition = ReactSharedInternals.T;
-      return null !== transition
-        ? (transition._updatedFibers || (transition._updatedFibers = new Set()),
-          transition._updatedFibers.add(fiber),
-          requestTransitionLane())
-        : resolveUpdatePriority();
-    }
-    function requestDeferredLane() {
-      if (0 === workInProgressDeferredLane)
-        if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {
-          var lane = nextTransitionDeferredLane;
-          nextTransitionDeferredLane <<= 1;
-          0 === (nextTransitionDeferredLane & 3932160) &&
-            (nextTransitionDeferredLane = 262144);
-          workInProgressDeferredLane = lane;
-        } else workInProgressDeferredLane = 536870912;
-      lane = suspenseHandlerStackCursor.current;
-      null !== lane && (lane.flags |= 32);
-      return workInProgressDeferredLane;
-    }
-    function scheduleUpdateOnFiber(root, fiber, lane) {
-      isRunningInsertionEffect &&
-        console.error("useInsertionEffect must not schedule updates.");
-      isFlushingPassiveEffects && (didScheduleUpdateDuringPassiveEffects = !0);
-      if (
-        (root === workInProgressRoot &&
-          (workInProgressSuspendedReason === SuspendedOnData ||
-            workInProgressSuspendedReason === SuspendedOnAction)) ||
-        null !== root.cancelPendingCommit
-      )
-        prepareFreshStack(root, 0),
-          markRootSuspended(
-            root,
-            workInProgressRootRenderLanes,
-            workInProgressDeferredLane,
-            !1
-          );
-      markRootUpdated$1(root, lane);
-      if (
-        (executionContext & RenderContext) !== NoContext &&
-        root === workInProgressRoot
-      ) {
-        if (isRendering)
-          switch (fiber.tag) {
-            case 0:
-            case 11:
-            case 15:
-              root =
-                (workInProgress && getComponentNameFromFiber(workInProgress)) ||
-                "Unknown";
-              didWarnAboutUpdateInRenderForAnotherComponent.has(root) ||
-                (didWarnAboutUpdateInRenderForAnotherComponent.add(root),
-                (fiber = getComponentNameFromFiber(fiber) || "Unknown"),
-                console.error(
-                  "Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render",
-                  fiber,
-                  root,
-                  root
-                ));
-              break;
-            case 1:
-              didWarnAboutUpdateInRender ||
-                (console.error(
-                  "Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."
-                ),
-                (didWarnAboutUpdateInRender = !0));
-          }
-      } else
-        isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),
-          warnIfUpdatesNotWrappedWithActDEV(fiber),
-          root === workInProgressRoot &&
-            ((executionContext & RenderContext) === NoContext &&
-              (workInProgressRootInterleavedUpdatedLanes |= lane),
-            workInProgressRootExitStatus === RootSuspendedWithDelay &&
-              markRootSuspended(
-                root,
-                workInProgressRootRenderLanes,
-                workInProgressDeferredLane,
-                !1
-              )),
-          ensureRootIsScheduled(root);
-    }
-    function performWorkOnRoot(root, lanes, forceSync) {
-      if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-        throw Error("Should not already be working.");
-      if (0 !== workInProgressRootRenderLanes && null !== workInProgress) {
-        var yieldedFiber = workInProgress,
-          yieldEndTime = now$1();
-        switch (yieldReason) {
-          case SuspendedOnImmediate:
-          case SuspendedOnData:
-            var startTime = yieldStartTime;
-            supportsUserTiming &&
-              ((yieldedFiber = yieldedFiber._debugTask)
-                ? yieldedFiber.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Suspended",
-                      startTime,
-                      yieldEndTime,
-                      COMPONENTS_TRACK,
-                      void 0,
-                      "primary-light"
-                    )
-                  )
-                : console.timeStamp(
-                    "Suspended",
-                    startTime,
-                    yieldEndTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    "primary-light"
-                  ));
-            break;
-          case SuspendedOnAction:
-            startTime = yieldStartTime;
-            supportsUserTiming &&
-              ((yieldedFiber = yieldedFiber._debugTask)
-                ? yieldedFiber.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Action",
-                      startTime,
-                      yieldEndTime,
-                      COMPONENTS_TRACK,
-                      void 0,
-                      "primary-light"
-                    )
-                  )
-                : console.timeStamp(
-                    "Action",
-                    startTime,
-                    yieldEndTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    "primary-light"
-                  ));
-            break;
-          default:
-            supportsUserTiming &&
-              ((yieldedFiber = yieldEndTime - yieldStartTime),
-              3 > yieldedFiber ||
-                console.timeStamp(
-                  "Blocked",
-                  yieldStartTime,
-                  yieldEndTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  5 > yieldedFiber
-                    ? "primary-light"
-                    : 10 > yieldedFiber
-                      ? "primary"
-                      : 100 > yieldedFiber
-                        ? "primary-dark"
-                        : "error"
-                ));
-        }
-      }
-      startTime = (forceSync =
-        (!forceSync &&
-          0 === (lanes & 127) &&
-          0 === (lanes & root.expiredLanes)) ||
-        checkIfRootIsPrerendering(root, lanes))
-        ? renderRootConcurrent(root, lanes)
-        : renderRootSync(root, lanes, !0);
-      var renderWasConcurrent = forceSync;
-      do {
-        if (startTime === RootInProgress) {
-          workInProgressRootIsPrerendering &&
-            !forceSync &&
-            markRootSuspended(root, lanes, 0, !1);
-          lanes = workInProgressSuspendedReason;
-          yieldStartTime = now();
-          yieldReason = lanes;
-          break;
-        } else {
-          yieldedFiber = now$1();
-          yieldEndTime = root.current.alternate;
-          if (
-            renderWasConcurrent &&
-            !isRenderConsistentWithExternalStores(yieldEndTime)
-          ) {
-            setCurrentTrackFromLanes(lanes);
-            yieldEndTime = renderStartTime;
-            startTime = yieldedFiber;
-            !supportsUserTiming ||
-              startTime <= yieldEndTime ||
-              (workInProgressUpdateTask
-                ? workInProgressUpdateTask.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Teared Render",
-                      yieldEndTime,
-                      startTime,
-                      currentTrack,
-                      LANES_TRACK_GROUP,
-                      "error"
-                    )
-                  )
-                : console.timeStamp(
-                    "Teared Render",
-                    yieldEndTime,
-                    startTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "error"
-                  ));
-            finalizeRender(lanes, yieldedFiber);
-            startTime = renderRootSync(root, lanes, !1);
-            renderWasConcurrent = !1;
-            continue;
-          }
-          if (startTime === RootErrored) {
-            renderWasConcurrent = lanes;
-            if (root.errorRecoveryDisabledLanes & renderWasConcurrent)
-              var errorRetryLanes = 0;
-            else
-              (errorRetryLanes = root.pendingLanes & -536870913),
-                (errorRetryLanes =
-                  0 !== errorRetryLanes
-                    ? errorRetryLanes
-                    : errorRetryLanes & 536870912
-                      ? 536870912
-                      : 0);
-            if (0 !== errorRetryLanes) {
-              setCurrentTrackFromLanes(lanes);
-              logErroredRenderPhase(
-                renderStartTime,
-                yieldedFiber,
-                lanes,
-                workInProgressUpdateTask
-              );
-              finalizeRender(lanes, yieldedFiber);
-              lanes = errorRetryLanes;
-              a: {
-                yieldedFiber = root;
-                startTime = renderWasConcurrent;
-                renderWasConcurrent = workInProgressRootConcurrentErrors;
-                var wasRootDehydrated =
-                  yieldedFiber.current.memoizedState.isDehydrated;
-                wasRootDehydrated &&
-                  (prepareFreshStack(yieldedFiber, errorRetryLanes).flags |=
-                    256);
-                errorRetryLanes = renderRootSync(
-                  yieldedFiber,
-                  errorRetryLanes,
-                  !1
-                );
-                if (errorRetryLanes !== RootErrored) {
-                  if (
-                    workInProgressRootDidAttachPingListener &&
-                    !wasRootDehydrated
-                  ) {
-                    yieldedFiber.errorRecoveryDisabledLanes |= startTime;
-                    workInProgressRootInterleavedUpdatedLanes |= startTime;
-                    startTime = RootSuspendedWithDelay;
-                    break a;
-                  }
-                  yieldedFiber = workInProgressRootRecoverableErrors;
-                  workInProgressRootRecoverableErrors = renderWasConcurrent;
-                  null !== yieldedFiber &&
-                    (null === workInProgressRootRecoverableErrors
-                      ? (workInProgressRootRecoverableErrors = yieldedFiber)
-                      : workInProgressRootRecoverableErrors.push.apply(
-                          workInProgressRootRecoverableErrors,
-                          yieldedFiber
-                        ));
-                }
-                startTime = errorRetryLanes;
-              }
-              renderWasConcurrent = !1;
-              if (startTime !== RootErrored) continue;
-              else yieldedFiber = now$1();
-            }
-          }
-          if (startTime === RootFatalErrored) {
-            setCurrentTrackFromLanes(lanes);
-            logErroredRenderPhase(
-              renderStartTime,
-              yieldedFiber,
-              lanes,
-              workInProgressUpdateTask
-            );
-            finalizeRender(lanes, yieldedFiber);
-            prepareFreshStack(root, 0);
-            markRootSuspended(root, lanes, 0, !0);
-            break;
-          }
-          a: {
-            forceSync = root;
-            switch (startTime) {
-              case RootInProgress:
-              case RootFatalErrored:
-                throw Error("Root did not complete. This is a bug in React.");
-              case RootSuspendedWithDelay:
-                if ((lanes & 4194048) !== lanes) break;
-              case RootSuspendedAtTheShell:
-                setCurrentTrackFromLanes(lanes);
-                logSuspendedRenderPhase(
-                  renderStartTime,
-                  yieldedFiber,
-                  lanes,
-                  workInProgressUpdateTask
-                );
-                finalizeRender(lanes, yieldedFiber);
-                yieldEndTime = lanes;
-                0 !== (yieldEndTime & 127)
-                  ? (blockingSuspendedTime = yieldedFiber)
-                  : 0 !== (yieldEndTime & 4194048) &&
-                    (transitionSuspendedTime = yieldedFiber);
-                markRootSuspended(
-                  forceSync,
-                  lanes,
-                  workInProgressDeferredLane,
-                  !workInProgressRootDidSkipSuspendedSiblings
-                );
-                break a;
-              case RootErrored:
-                workInProgressRootRecoverableErrors = null;
-                break;
-              case RootSuspended:
-              case RootCompleted:
-                break;
-              default:
-                throw Error("Unknown root exit status.");
-            }
-            if (null !== ReactSharedInternals.actQueue)
-              commitRoot(
-                forceSync,
-                yieldEndTime,
-                lanes,
-                workInProgressRootRecoverableErrors,
-                workInProgressTransitions,
-                workInProgressRootDidIncludeRecursiveRenderUpdate,
-                workInProgressDeferredLane,
-                workInProgressRootInterleavedUpdatedLanes,
-                workInProgressSuspendedRetryLanes,
-                startTime,
-                null,
-                null,
-                renderStartTime,
-                yieldedFiber
-              );
-            else {
-              if (
-                (lanes & 62914560) === lanes &&
-                ((renderWasConcurrent =
-                  globalMostRecentFallbackTime +
-                  FALLBACK_THROTTLE_MS -
-                  now$1()),
-                10 < renderWasConcurrent)
-              ) {
-                markRootSuspended(
-                  forceSync,
-                  lanes,
-                  workInProgressDeferredLane,
-                  !workInProgressRootDidSkipSuspendedSiblings
-                );
-                if (0 !== getNextLanes(forceSync, 0, !0)) break a;
-                pendingEffectsLanes = lanes;
-                forceSync.timeoutHandle = scheduleTimeout(
-                  commitRootWhenReady.bind(
-                    null,
-                    forceSync,
-                    yieldEndTime,
-                    workInProgressRootRecoverableErrors,
-                    workInProgressTransitions,
-                    workInProgressRootDidIncludeRecursiveRenderUpdate,
-                    lanes,
-                    workInProgressDeferredLane,
-                    workInProgressRootInterleavedUpdatedLanes,
-                    workInProgressSuspendedRetryLanes,
-                    workInProgressRootDidSkipSuspendedSiblings,
-                    startTime,
-                    "Throttled",
-                    renderStartTime,
-                    yieldedFiber
-                  ),
-                  renderWasConcurrent
-                );
-                break a;
-              }
-              commitRootWhenReady(
-                forceSync,
-                yieldEndTime,
-                workInProgressRootRecoverableErrors,
-                workInProgressTransitions,
-                workInProgressRootDidIncludeRecursiveRenderUpdate,
-                lanes,
-                workInProgressDeferredLane,
-                workInProgressRootInterleavedUpdatedLanes,
-                workInProgressSuspendedRetryLanes,
-                workInProgressRootDidSkipSuspendedSiblings,
-                startTime,
-                null,
-                renderStartTime,
-                yieldedFiber
-              );
-            }
-          }
-        }
-        break;
-      } while (1);
-      ensureRootIsScheduled(root);
-    }
-    function commitRootWhenReady(
-      root,
-      finishedWork,
-      recoverableErrors,
-      transitions,
-      didIncludeRenderPhaseUpdate,
-      lanes,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes,
-      didSkipSuspendedSiblings,
-      exitStatus,
-      suspendedCommitReason,
-      completedRenderStartTime,
-      completedRenderEndTime
-    ) {
-      root.timeoutHandle = noTimeout;
-      var subtreeFlags = finishedWork.subtreeFlags,
-        suspendedState = null;
-      if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408))
-        if (
-          ((suspendedState = {
-            stylesheets: null,
-            count: 0,
-            imgCount: 0,
-            imgBytes: 0,
-            suspenseyImages: [],
-            waitingForImages: !0,
-            waitingForViewTransition: !1,
-            unsuspend: noop$1
-          }),
-          accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState),
-          (subtreeFlags =
-            (lanes & 62914560) === lanes
-              ? globalMostRecentFallbackTime - now$1()
-              : (lanes & 4194048) === lanes
-                ? globalMostRecentTransitionTime - now$1()
-                : 0),
-          (subtreeFlags = waitForCommitToBeReady(suspendedState, subtreeFlags)),
-          null !== subtreeFlags)
-        ) {
-          pendingEffectsLanes = lanes;
-          root.cancelPendingCommit = subtreeFlags(
-            commitRoot.bind(
-              null,
-              root,
-              finishedWork,
-              lanes,
-              recoverableErrors,
-              transitions,
-              didIncludeRenderPhaseUpdate,
-              spawnedLane,
-              updatedLanes,
-              suspendedRetryLanes,
-              exitStatus,
-              suspendedState,
-              suspendedState.waitingForViewTransition
-                ? "Waiting for the previous Animation"
-                : 0 < suspendedState.count
-                  ? 0 < suspendedState.imgCount
-                    ? "Suspended on CSS and Images"
-                    : "Suspended on CSS"
-                  : 1 === suspendedState.imgCount
-                    ? "Suspended on an Image"
-                    : 0 < suspendedState.imgCount
-                      ? "Suspended on Images"
-                      : null,
-              completedRenderStartTime,
-              completedRenderEndTime
-            )
-          );
-          markRootSuspended(
-            root,
-            lanes,
-            spawnedLane,
-            !didSkipSuspendedSiblings
-          );
-          return;
-        }
-      commitRoot(
-        root,
-        finishedWork,
-        lanes,
-        recoverableErrors,
-        transitions,
-        didIncludeRenderPhaseUpdate,
-        spawnedLane,
-        updatedLanes,
-        suspendedRetryLanes,
-        exitStatus,
-        suspendedState,
-        suspendedCommitReason,
-        completedRenderStartTime,
-        completedRenderEndTime
-      );
-    }
-    function isRenderConsistentWithExternalStores(finishedWork) {
-      for (var node = finishedWork; ; ) {
-        var tag = node.tag;
-        if (
-          (0 === tag || 11 === tag || 15 === tag) &&
-          node.flags & 16384 &&
-          ((tag = node.updateQueue),
-          null !== tag && ((tag = tag.stores), null !== tag))
-        )
-          for (var i = 0; i < tag.length; i++) {
-            var check = tag[i],
-              getSnapshot = check.getSnapshot;
-            check = check.value;
-            try {
-              if (!objectIs(getSnapshot(), check)) return !1;
-            } catch (error) {
-              return !1;
-            }
-          }
-        tag = node.child;
-        if (node.subtreeFlags & 16384 && null !== tag)
-          (tag.return = node), (node = tag);
-        else {
-          if (node === finishedWork) break;
-          for (; null === node.sibling; ) {
-            if (null === node.return || node.return === finishedWork) return !0;
-            node = node.return;
-          }
-          node.sibling.return = node.return;
-          node = node.sibling;
-        }
-      }
-      return !0;
-    }
-    function markRootSuspended(
-      root,
-      suspendedLanes,
-      spawnedLane,
-      didAttemptEntireTree
-    ) {
-      suspendedLanes &= ~workInProgressRootPingedLanes;
-      suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
-      root.suspendedLanes |= suspendedLanes;
-      root.pingedLanes &= ~suspendedLanes;
-      didAttemptEntireTree && (root.warmLanes |= suspendedLanes);
-      didAttemptEntireTree = root.expirationTimes;
-      for (var lanes = suspendedLanes; 0 < lanes; ) {
-        var index = 31 - clz32(lanes),
-          lane = 1 << index;
-        didAttemptEntireTree[index] = -1;
-        lanes &= ~lane;
-      }
-      0 !== spawnedLane &&
-        markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);
-    }
-    function flushSyncWork$1() {
-      return (executionContext & (RenderContext | CommitContext)) === NoContext
-        ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)
-        : !0;
-    }
-    function resetWorkInProgressStack() {
-      if (null !== workInProgress) {
-        if (workInProgressSuspendedReason === NotSuspended)
-          var interruptedWork = workInProgress.return;
-        else
-          (interruptedWork = workInProgress),
-            resetContextDependencies(),
-            resetHooksOnUnwind(interruptedWork),
-            (thenableState$1 = null),
-            (thenableIndexCounter$1 = 0),
-            (interruptedWork = workInProgress);
-        for (; null !== interruptedWork; )
-          unwindInterruptedWork(interruptedWork.alternate, interruptedWork),
-            (interruptedWork = interruptedWork.return);
-        workInProgress = null;
-      }
-    }
-    function finalizeRender(lanes, finalizationTime) {
-      0 !== (lanes & 127) && (blockingClampTime = finalizationTime);
-      0 !== (lanes & 4194048) && (transitionClampTime = finalizationTime);
-      0 !== (lanes & 62914560) && (retryClampTime = finalizationTime);
-      0 !== (lanes & 2080374784) && (idleClampTime = finalizationTime);
-    }
-    function prepareFreshStack(root, lanes) {
-      supportsUserTiming &&
-        (console.timeStamp(
-          "Blocking Track",
-          0.003,
-          0.003,
-          "Blocking",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Transition Track",
-          0.003,
-          0.003,
-          "Transition",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Suspense Track",
-          0.003,
-          0.003,
-          "Suspense",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Idle Track",
-          0.003,
-          0.003,
-          "Idle",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ));
-      var previousRenderStartTime = renderStartTime;
-      renderStartTime = now();
-      if (0 !== workInProgressRootRenderLanes && 0 < previousRenderStartTime) {
-        setCurrentTrackFromLanes(workInProgressRootRenderLanes);
-        if (
-          workInProgressRootExitStatus === RootSuspended ||
-          workInProgressRootExitStatus === RootSuspendedWithDelay
-        )
-          logSuspendedRenderPhase(
-            previousRenderStartTime,
-            renderStartTime,
-            lanes,
-            workInProgressUpdateTask
-          );
-        else {
-          var endTime = renderStartTime,
-            debugTask = workInProgressUpdateTask;
-          if (supportsUserTiming && !(endTime <= previousRenderStartTime)) {
-            var color =
-                (lanes & 738197653) === lanes
-                  ? "tertiary-dark"
-                  : "primary-dark",
-              label =
-                (lanes & 536870912) === lanes
-                  ? "Prewarm"
-                  : (lanes & 201326741) === lanes
-                    ? "Interrupted Hydration"
-                    : "Interrupted Render";
-            debugTask
-              ? debugTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    label,
-                    previousRenderStartTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color
-                  )
-                )
-              : console.timeStamp(
-                  label,
-                  previousRenderStartTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color
-                );
-          }
-        }
-        finalizeRender(workInProgressRootRenderLanes, renderStartTime);
-      }
-      previousRenderStartTime = workInProgressUpdateTask;
-      workInProgressUpdateTask = null;
-      if (0 !== (lanes & 127)) {
-        workInProgressUpdateTask = blockingUpdateTask;
-        debugTask =
-          0 <= blockingUpdateTime && blockingUpdateTime < blockingClampTime
-            ? blockingClampTime
-            : blockingUpdateTime;
-        endTime =
-          0 <= blockingEventTime && blockingEventTime < blockingClampTime
-            ? blockingClampTime
-            : blockingEventTime;
-        color =
-          0 <= endTime ? endTime : 0 <= debugTask ? debugTask : renderStartTime;
-        0 <= blockingSuspendedTime
-          ? (setCurrentTrackFromLanes(2),
-            logSuspendedWithDelayPhase(
-              blockingSuspendedTime,
-              color,
-              lanes,
-              previousRenderStartTime
-            ))
-          : 0 !== (animatingLanes & 127) &&
-            (setCurrentTrackFromLanes(2),
-            logAnimatingPhase(blockingClampTime, color, animatingTask));
-        previousRenderStartTime = debugTask;
-        var eventTime = endTime,
-          eventType = blockingEventType,
-          eventIsRepeat = 0 < blockingEventRepeatTime,
-          isSpawnedUpdate = blockingUpdateType === SPAWNED_UPDATE,
-          isPingedUpdate = blockingUpdateType === PINGED_UPDATE;
-        debugTask = renderStartTime;
-        endTime = blockingUpdateTask;
-        color = blockingUpdateMethodName;
-        label = blockingUpdateComponentName;
-        if (supportsUserTiming) {
-          currentTrack = "Blocking";
-          0 < previousRenderStartTime
-            ? previousRenderStartTime > debugTask &&
-              (previousRenderStartTime = debugTask)
-            : (previousRenderStartTime = debugTask);
-          0 < eventTime
-            ? eventTime > previousRenderStartTime &&
-              (eventTime = previousRenderStartTime)
-            : (eventTime = previousRenderStartTime);
-          if (null !== eventType && previousRenderStartTime > eventTime) {
-            var color$jscomp$0 = eventIsRepeat ? "secondary-light" : "warning";
-            endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    eventIsRepeat ? "Consecutive" : "Event: " + eventType,
-                    eventTime,
-                    previousRenderStartTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color$jscomp$0
-                  )
-                )
-              : console.timeStamp(
-                  eventIsRepeat ? "Consecutive" : "Event: " + eventType,
-                  eventTime,
-                  previousRenderStartTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color$jscomp$0
-                );
-          }
-          debugTask > previousRenderStartTime &&
-            ((eventTime = isSpawnedUpdate
-              ? "error"
-              : (lanes & 738197653) === lanes
-                ? "tertiary-light"
-                : "primary-light"),
-            (isSpawnedUpdate = isPingedUpdate
-              ? "Promise Resolved"
-              : isSpawnedUpdate
-                ? "Cascading Update"
-                : 5 < debugTask - previousRenderStartTime
-                  ? "Update Blocked"
-                  : "Update"),
-            (isPingedUpdate = []),
-            null != label && isPingedUpdate.push(["Component name", label]),
-            null != color && isPingedUpdate.push(["Method name", color]),
-            (previousRenderStartTime = {
-              start: previousRenderStartTime,
-              end: debugTask,
-              detail: {
-                devtools: {
-                  properties: isPingedUpdate,
-                  track: currentTrack,
-                  trackGroup: LANES_TRACK_GROUP,
-                  color: eventTime
-                }
-              }
-            }),
-            endTime
-              ? endTime.run(
-                  performance.measure.bind(
-                    performance,
-                    isSpawnedUpdate,
-                    previousRenderStartTime
-                  )
-                )
-              : performance.measure(isSpawnedUpdate, previousRenderStartTime));
-        }
-        blockingUpdateTime = -1.1;
-        blockingUpdateType = 0;
-        blockingUpdateComponentName = blockingUpdateMethodName = null;
-        blockingSuspendedTime = -1.1;
-        blockingEventRepeatTime = blockingEventTime;
-        blockingEventTime = -1.1;
-        blockingClampTime = now();
-      }
-      0 !== (lanes & 4194048) &&
-        ((workInProgressUpdateTask = transitionUpdateTask),
-        (debugTask =
-          0 <= transitionStartTime && transitionStartTime < transitionClampTime
-            ? transitionClampTime
-            : transitionStartTime),
-        (previousRenderStartTime =
-          0 <= transitionUpdateTime &&
-          transitionUpdateTime < transitionClampTime
-            ? transitionClampTime
-            : transitionUpdateTime),
-        (endTime =
-          0 <= transitionEventTime && transitionEventTime < transitionClampTime
-            ? transitionClampTime
-            : transitionEventTime),
-        (color =
-          0 <= endTime
-            ? endTime
-            : 0 <= previousRenderStartTime
-              ? previousRenderStartTime
-              : renderStartTime),
-        0 <= transitionSuspendedTime
-          ? (setCurrentTrackFromLanes(256),
-            logSuspendedWithDelayPhase(
-              transitionSuspendedTime,
-              color,
-              lanes,
-              workInProgressUpdateTask
-            ))
-          : 0 !== (animatingLanes & 4194048) &&
-            (setCurrentTrackFromLanes(256),
-            logAnimatingPhase(transitionClampTime, color, animatingTask)),
-        (isPingedUpdate = endTime),
-        (eventTime = transitionEventType),
-        (eventType = 0 < transitionEventRepeatTime),
-        (eventIsRepeat = transitionUpdateType === PINGED_UPDATE),
-        (color = renderStartTime),
-        (endTime = transitionUpdateTask),
-        (label = transitionUpdateMethodName),
-        (isSpawnedUpdate = transitionUpdateComponentName),
-        supportsUserTiming &&
-          ((currentTrack = "Transition"),
-          0 < previousRenderStartTime
-            ? previousRenderStartTime > color &&
-              (previousRenderStartTime = color)
-            : (previousRenderStartTime = color),
-          0 < debugTask
-            ? debugTask > previousRenderStartTime &&
-              (debugTask = previousRenderStartTime)
-            : (debugTask = previousRenderStartTime),
-          0 < isPingedUpdate
-            ? isPingedUpdate > debugTask && (isPingedUpdate = debugTask)
-            : (isPingedUpdate = debugTask),
-          debugTask > isPingedUpdate &&
-            null !== eventTime &&
-            ((color$jscomp$0 = eventType ? "secondary-light" : "warning"),
-            endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    eventType ? "Consecutive" : "Event: " + eventTime,
-                    isPingedUpdate,
-                    debugTask,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color$jscomp$0
-                  )
-                )
-              : console.timeStamp(
-                  eventType ? "Consecutive" : "Event: " + eventTime,
-                  isPingedUpdate,
-                  debugTask,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color$jscomp$0
-                )),
-          previousRenderStartTime > debugTask &&
-            (endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    "Action",
-                    debugTask,
-                    previousRenderStartTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "primary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  "Action",
-                  debugTask,
-                  previousRenderStartTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "primary-dark"
-                )),
-          color > previousRenderStartTime &&
-            ((debugTask = eventIsRepeat
-              ? "Promise Resolved"
-              : 5 < color - previousRenderStartTime
-                ? "Update Blocked"
-                : "Update"),
-            (isPingedUpdate = []),
-            null != isSpawnedUpdate &&
-              isPingedUpdate.push(["Component name", isSpawnedUpdate]),
-            null != label && isPingedUpdate.push(["Method name", label]),
-            (previousRenderStartTime = {
-              start: previousRenderStartTime,
-              end: color,
-              detail: {
-                devtools: {
-                  properties: isPingedUpdate,
-                  track: currentTrack,
-                  trackGroup: LANES_TRACK_GROUP,
-                  color: "primary-light"
-                }
-              }
-            }),
-            endTime
-              ? endTime.run(
-                  performance.measure.bind(
-                    performance,
-                    debugTask,
-                    previousRenderStartTime
-                  )
-                )
-              : performance.measure(debugTask, previousRenderStartTime))),
-        (transitionUpdateTime = transitionStartTime = -1.1),
-        (transitionUpdateType = 0),
-        (transitionSuspendedTime = -1.1),
-        (transitionEventRepeatTime = transitionEventTime),
-        (transitionEventTime = -1.1),
-        (transitionClampTime = now()));
-      0 !== (lanes & 62914560) &&
-        0 !== (animatingLanes & 62914560) &&
-        (setCurrentTrackFromLanes(4194304),
-        logAnimatingPhase(retryClampTime, renderStartTime, animatingTask));
-      0 !== (lanes & 2080374784) &&
-        0 !== (animatingLanes & 2080374784) &&
-        (setCurrentTrackFromLanes(268435456),
-        logAnimatingPhase(idleClampTime, renderStartTime, animatingTask));
-      previousRenderStartTime = root.timeoutHandle;
-      previousRenderStartTime !== noTimeout &&
-        ((root.timeoutHandle = noTimeout),
-        cancelTimeout(previousRenderStartTime));
-      previousRenderStartTime = root.cancelPendingCommit;
-      null !== previousRenderStartTime &&
-        ((root.cancelPendingCommit = null), previousRenderStartTime());
-      pendingEffectsLanes = 0;
-      resetWorkInProgressStack();
-      workInProgressRoot = root;
-      workInProgress = previousRenderStartTime = createWorkInProgress(
-        root.current,
-        null
-      );
-      workInProgressRootRenderLanes = lanes;
-      workInProgressSuspendedReason = NotSuspended;
-      workInProgressThrownValue = null;
-      workInProgressRootDidSkipSuspendedSiblings = !1;
-      workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);
-      workInProgressRootDidAttachPingListener = !1;
-      workInProgressRootExitStatus = RootInProgress;
-      workInProgressSuspendedRetryLanes =
-        workInProgressDeferredLane =
-        workInProgressRootPingedLanes =
-        workInProgressRootInterleavedUpdatedLanes =
-        workInProgressRootSkippedLanes =
-          0;
-      workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =
-        null;
-      workInProgressRootDidIncludeRecursiveRenderUpdate = !1;
-      0 !== (lanes & 8) && (lanes |= lanes & 32);
-      endTime = root.entangledLanes;
-      if (0 !== endTime)
-        for (root = root.entanglements, endTime &= lanes; 0 < endTime; )
-          (debugTask = 31 - clz32(endTime)),
-            (color = 1 << debugTask),
-            (lanes |= root[debugTask]),
-            (endTime &= ~color);
-      entangledRenderLanes = lanes;
-      finishQueueingConcurrentUpdates();
-      root = getCurrentTime();
-      1e3 < root - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = root));
-      ReactStrictModeWarnings.discardPendingWarnings();
-      return previousRenderStartTime;
-    }
-    function handleThrow(root, thrownValue) {
-      currentlyRenderingFiber = null;
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      ReactSharedInternals.getCurrentStack = null;
-      isRendering = !1;
-      current = null;
-      thrownValue === SuspenseException ||
-      thrownValue === SuspenseActionException
-        ? ((thrownValue = getSuspendedThenable()),
-          (workInProgressSuspendedReason = SuspendedOnImmediate))
-        : thrownValue === SuspenseyCommitException
-          ? ((thrownValue = getSuspendedThenable()),
-            (workInProgressSuspendedReason = SuspendedOnInstance))
-          : (workInProgressSuspendedReason =
-              thrownValue === SelectiveHydrationException
-                ? SuspendedOnHydration
-                : null !== thrownValue &&
-                    "object" === typeof thrownValue &&
-                    "function" === typeof thrownValue.then
-                  ? SuspendedOnDeprecatedThrowPromise
-                  : SuspendedOnError);
-      workInProgressThrownValue = thrownValue;
-      var erroredWork = workInProgress;
-      null === erroredWork
-        ? ((workInProgressRootExitStatus = RootFatalErrored),
-          logUncaughtError(
-            root,
-            createCapturedValueAtFiber(thrownValue, root.current)
-          ))
-        : erroredWork.mode & ProfileMode &&
-          stopProfilerTimerIfRunningAndRecordDuration(erroredWork);
-    }
-    function shouldRemainOnPreviousScreen() {
-      var handler = suspenseHandlerStackCursor.current;
-      return null === handler
-        ? !0
-        : (workInProgressRootRenderLanes & 4194048) ===
-            workInProgressRootRenderLanes
-          ? null === shellBoundary
-            ? !0
-            : !1
-          : (workInProgressRootRenderLanes & 62914560) ===
-                workInProgressRootRenderLanes ||
-              0 !== (workInProgressRootRenderLanes & 536870912)
-            ? handler === shellBoundary
-            : !1;
-    }
-    function pushDispatcher() {
-      var prevDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;
-    }
-    function pushAsyncDispatcher() {
-      var prevAsyncDispatcher = ReactSharedInternals.A;
-      ReactSharedInternals.A = DefaultAsyncDispatcher;
-      return prevAsyncDispatcher;
-    }
-    function markRenderDerivedCause(fiber) {
-      null === workInProgressUpdateTask &&
-        (workInProgressUpdateTask =
-          null == fiber._debugTask ? null : fiber._debugTask);
-    }
-    function renderDidSuspendDelayIfPossible() {
-      workInProgressRootExitStatus = RootSuspendedWithDelay;
-      workInProgressRootDidSkipSuspendedSiblings ||
-        ((workInProgressRootRenderLanes & 4194048) !==
-          workInProgressRootRenderLanes &&
-          null !== suspenseHandlerStackCursor.current) ||
-        (workInProgressRootIsPrerendering = !0);
-      (0 === (workInProgressRootSkippedLanes & 134217727) &&
-        0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||
-        null === workInProgressRoot ||
-        markRootSuspended(
-          workInProgressRoot,
-          workInProgressRootRenderLanes,
-          workInProgressDeferredLane,
-          !1
-        );
-    }
-    function renderRootSync(root, lanes, shouldYieldForPrerendering) {
-      var prevExecutionContext = executionContext;
-      executionContext |= RenderContext;
-      var prevDispatcher = pushDispatcher(),
-        prevAsyncDispatcher = pushAsyncDispatcher();
-      if (
-        workInProgressRoot !== root ||
-        workInProgressRootRenderLanes !== lanes
-      ) {
-        if (isDevToolsPresent) {
-          var memoizedUpdaters = root.memoizedUpdaters;
-          0 < memoizedUpdaters.size &&
-            (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-            memoizedUpdaters.clear());
-          movePendingFibersToMemoized(root, lanes);
-        }
-        workInProgressTransitions = null;
-        prepareFreshStack(root, lanes);
-      }
-      lanes = !1;
-      memoizedUpdaters = workInProgressRootExitStatus;
-      a: do
-        try {
-          if (
-            workInProgressSuspendedReason !== NotSuspended &&
-            null !== workInProgress
-          ) {
-            var unitOfWork = workInProgress,
-              thrownValue = workInProgressThrownValue;
-            switch (workInProgressSuspendedReason) {
-              case SuspendedOnHydration:
-                resetWorkInProgressStack();
-                memoizedUpdaters = RootSuspendedAtTheShell;
-                break a;
-              case SuspendedOnImmediate:
-              case SuspendedOnData:
-              case SuspendedOnAction:
-              case SuspendedOnDeprecatedThrowPromise:
-                null === suspenseHandlerStackCursor.current && (lanes = !0);
-                var reason = workInProgressSuspendedReason;
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-                if (
-                  shouldYieldForPrerendering &&
-                  workInProgressRootIsPrerendering
-                ) {
-                  memoizedUpdaters = RootInProgress;
-                  break a;
-                }
-                break;
-              default:
-                (reason = workInProgressSuspendedReason),
-                  (workInProgressSuspendedReason = NotSuspended),
-                  (workInProgressThrownValue = null),
-                  throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-            }
-          }
-          workLoopSync();
-          memoizedUpdaters = workInProgressRootExitStatus;
-          break;
-        } catch (thrownValue$8) {
-          handleThrow(root, thrownValue$8);
-        }
-      while (1);
-      lanes && root.shellSuspendCounter++;
-      resetContextDependencies();
-      executionContext = prevExecutionContext;
-      ReactSharedInternals.H = prevDispatcher;
-      ReactSharedInternals.A = prevAsyncDispatcher;
-      null === workInProgress &&
-        ((workInProgressRoot = null),
-        (workInProgressRootRenderLanes = 0),
-        finishQueueingConcurrentUpdates());
-      return memoizedUpdaters;
-    }
-    function workLoopSync() {
-      for (; null !== workInProgress; ) performUnitOfWork(workInProgress);
-    }
-    function renderRootConcurrent(root, lanes) {
-      var prevExecutionContext = executionContext;
-      executionContext |= RenderContext;
-      var prevDispatcher = pushDispatcher(),
-        prevAsyncDispatcher = pushAsyncDispatcher();
-      if (
-        workInProgressRoot !== root ||
-        workInProgressRootRenderLanes !== lanes
-      ) {
-        if (isDevToolsPresent) {
-          var memoizedUpdaters = root.memoizedUpdaters;
-          0 < memoizedUpdaters.size &&
-            (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-            memoizedUpdaters.clear());
-          movePendingFibersToMemoized(root, lanes);
-        }
-        workInProgressTransitions = null;
-        workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS;
-        prepareFreshStack(root, lanes);
-      } else
-        workInProgressRootIsPrerendering = checkIfRootIsPrerendering(
-          root,
-          lanes
-        );
-      a: do
-        try {
-          if (
-            workInProgressSuspendedReason !== NotSuspended &&
-            null !== workInProgress
-          )
-            b: switch (
-              ((lanes = workInProgress),
-              (memoizedUpdaters = workInProgressThrownValue),
-              workInProgressSuspendedReason)
-            ) {
-              case SuspendedOnError:
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnError
-                );
-                break;
-              case SuspendedOnData:
-              case SuspendedOnAction:
-                if (isThenableResolved(memoizedUpdaters)) {
-                  workInProgressSuspendedReason = NotSuspended;
-                  workInProgressThrownValue = null;
-                  replaySuspendedUnitOfWork(lanes);
-                  break;
-                }
-                lanes = function () {
-                  (workInProgressSuspendedReason !== SuspendedOnData &&
-                    workInProgressSuspendedReason !== SuspendedOnAction) ||
-                    workInProgressRoot !== root ||
-                    (workInProgressSuspendedReason =
-                      SuspendedAndReadyToContinue);
-                  ensureRootIsScheduled(root);
-                };
-                memoizedUpdaters.then(lanes, lanes);
-                break a;
-              case SuspendedOnImmediate:
-                workInProgressSuspendedReason = SuspendedAndReadyToContinue;
-                break a;
-              case SuspendedOnInstance:
-                workInProgressSuspendedReason =
-                  SuspendedOnInstanceAndReadyToContinue;
-                break a;
-              case SuspendedAndReadyToContinue:
-                isThenableResolved(memoizedUpdaters)
-                  ? ((workInProgressSuspendedReason = NotSuspended),
-                    (workInProgressThrownValue = null),
-                    replaySuspendedUnitOfWork(lanes))
-                  : ((workInProgressSuspendedReason = NotSuspended),
-                    (workInProgressThrownValue = null),
-                    throwAndUnwindWorkLoop(
-                      root,
-                      lanes,
-                      memoizedUpdaters,
-                      SuspendedAndReadyToContinue
-                    ));
-                break;
-              case SuspendedOnInstanceAndReadyToContinue:
-                var resource = null;
-                switch (workInProgress.tag) {
-                  case 26:
-                    resource = workInProgress.memoizedState;
-                  case 5:
-                  case 27:
-                    var hostFiber = workInProgress;
-                    if (
-                      resource
-                        ? preloadResource(resource)
-                        : hostFiber.stateNode.complete
-                    ) {
-                      workInProgressSuspendedReason = NotSuspended;
-                      workInProgressThrownValue = null;
-                      var sibling = hostFiber.sibling;
-                      if (null !== sibling) workInProgress = sibling;
-                      else {
-                        var returnFiber = hostFiber.return;
-                        null !== returnFiber
-                          ? ((workInProgress = returnFiber),
-                            completeUnitOfWork(returnFiber))
-                          : (workInProgress = null);
-                      }
-                      break b;
-                    }
-                    break;
-                  default:
-                    console.error(
-                      "Unexpected type of fiber triggered a suspensey commit. This is a bug in React."
-                    );
-                }
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnInstanceAndReadyToContinue
-                );
-                break;
-              case SuspendedOnDeprecatedThrowPromise:
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnDeprecatedThrowPromise
-                );
-                break;
-              case SuspendedOnHydration:
-                resetWorkInProgressStack();
-                workInProgressRootExitStatus = RootSuspendedAtTheShell;
-                break a;
-              default:
-                throw Error(
-                  "Unexpected SuspendedReason. This is a bug in React."
-                );
-            }
-          null !== ReactSharedInternals.actQueue
-            ? workLoopSync()
-            : workLoopConcurrentByScheduler();
-          break;
-        } catch (thrownValue$9) {
-          handleThrow(root, thrownValue$9);
-        }
-      while (1);
-      resetContextDependencies();
-      ReactSharedInternals.H = prevDispatcher;
-      ReactSharedInternals.A = prevAsyncDispatcher;
-      executionContext = prevExecutionContext;
-      if (null !== workInProgress) return RootInProgress;
-      workInProgressRoot = null;
-      workInProgressRootRenderLanes = 0;
-      finishQueueingConcurrentUpdates();
-      return workInProgressRootExitStatus;
-    }
-    function workLoopConcurrentByScheduler() {
-      for (; null !== workInProgress && !shouldYield(); )
-        performUnitOfWork(workInProgress);
-    }
-    function performUnitOfWork(unitOfWork) {
-      var current = unitOfWork.alternate;
-      (unitOfWork.mode & ProfileMode) !== NoMode
-        ? (startProfilerTimer(unitOfWork),
-          (current = runWithFiberInDEV(
-            unitOfWork,
-            beginWork,
-            current,
-            unitOfWork,
-            entangledRenderLanes
-          )),
-          stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))
-        : (current = runWithFiberInDEV(
-            unitOfWork,
-            beginWork,
-            current,
-            unitOfWork,
-            entangledRenderLanes
-          ));
-      unitOfWork.memoizedProps = unitOfWork.pendingProps;
-      null === current
-        ? completeUnitOfWork(unitOfWork)
-        : (workInProgress = current);
-    }
-    function replaySuspendedUnitOfWork(unitOfWork) {
-      var next = runWithFiberInDEV(unitOfWork, replayBeginWork, unitOfWork);
-      unitOfWork.memoizedProps = unitOfWork.pendingProps;
-      null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);
-    }
-    function replayBeginWork(unitOfWork) {
-      var current = unitOfWork.alternate,
-        isProfilingMode = (unitOfWork.mode & ProfileMode) !== NoMode;
-      isProfilingMode && startProfilerTimer(unitOfWork);
-      switch (unitOfWork.tag) {
-        case 15:
-        case 0:
-          current = replayFunctionComponent(
-            current,
-            unitOfWork,
-            unitOfWork.pendingProps,
-            unitOfWork.type,
-            void 0,
-            workInProgressRootRenderLanes
-          );
-          break;
-        case 11:
-          current = replayFunctionComponent(
-            current,
-            unitOfWork,
-            unitOfWork.pendingProps,
-            unitOfWork.type.render,
-            unitOfWork.ref,
-            workInProgressRootRenderLanes
-          );
-          break;
-        case 5:
-          resetHooksOnUnwind(unitOfWork);
-        default:
-          unwindInterruptedWork(current, unitOfWork),
-            (unitOfWork = workInProgress =
-              resetWorkInProgress(unitOfWork, entangledRenderLanes)),
-            (current = beginWork(current, unitOfWork, entangledRenderLanes));
-      }
-      isProfilingMode &&
-        stopProfilerTimerIfRunningAndRecordDuration(unitOfWork);
-      return current;
-    }
-    function throwAndUnwindWorkLoop(
-      root,
-      unitOfWork,
-      thrownValue,
-      suspendedReason
-    ) {
-      resetContextDependencies();
-      resetHooksOnUnwind(unitOfWork);
-      thenableState$1 = null;
-      thenableIndexCounter$1 = 0;
-      var returnFiber = unitOfWork.return;
-      try {
-        if (
-          throwException(
-            root,
-            returnFiber,
-            unitOfWork,
-            thrownValue,
-            workInProgressRootRenderLanes
-          )
-        ) {
-          workInProgressRootExitStatus = RootFatalErrored;
-          logUncaughtError(
-            root,
-            createCapturedValueAtFiber(thrownValue, root.current)
-          );
-          workInProgress = null;
-          return;
-        }
-      } catch (error) {
-        if (null !== returnFiber) throw ((workInProgress = returnFiber), error);
-        workInProgressRootExitStatus = RootFatalErrored;
-        logUncaughtError(
-          root,
-          createCapturedValueAtFiber(thrownValue, root.current)
-        );
-        workInProgress = null;
-        return;
-      }
-      if (unitOfWork.flags & 32768) {
-        if (isHydrating || suspendedReason === SuspendedOnError) root = !0;
-        else if (
-          workInProgressRootIsPrerendering ||
-          0 !== (workInProgressRootRenderLanes & 536870912)
-        )
-          root = !1;
-        else if (
-          ((workInProgressRootDidSkipSuspendedSiblings = root = !0),
-          suspendedReason === SuspendedOnData ||
-            suspendedReason === SuspendedOnAction ||
-            suspendedReason === SuspendedOnImmediate ||
-            suspendedReason === SuspendedOnDeprecatedThrowPromise)
-        )
-          (suspendedReason = suspenseHandlerStackCursor.current),
-            null !== suspendedReason &&
-              13 === suspendedReason.tag &&
-              (suspendedReason.flags |= 16384);
-        unwindUnitOfWork(unitOfWork, root);
-      } else completeUnitOfWork(unitOfWork);
-    }
-    function completeUnitOfWork(unitOfWork) {
-      var completedWork = unitOfWork;
-      do {
-        if (0 !== (completedWork.flags & 32768)) {
-          unwindUnitOfWork(
-            completedWork,
-            workInProgressRootDidSkipSuspendedSiblings
-          );
-          return;
-        }
-        var current = completedWork.alternate;
-        unitOfWork = completedWork.return;
-        startProfilerTimer(completedWork);
-        current = runWithFiberInDEV(
-          completedWork,
-          completeWork,
-          current,
-          completedWork,
-          entangledRenderLanes
-        );
-        (completedWork.mode & ProfileMode) !== NoMode &&
-          stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork);
-        if (null !== current) {
-          workInProgress = current;
-          return;
-        }
-        completedWork = completedWork.sibling;
-        if (null !== completedWork) {
-          workInProgress = completedWork;
-          return;
-        }
-        workInProgress = completedWork = unitOfWork;
-      } while (null !== completedWork);
-      workInProgressRootExitStatus === RootInProgress &&
-        (workInProgressRootExitStatus = RootCompleted);
-    }
-    function unwindUnitOfWork(unitOfWork, skipSiblings) {
-      do {
-        var next = unwindWork(unitOfWork.alternate, unitOfWork);
-        if (null !== next) {
-          next.flags &= 32767;
-          workInProgress = next;
-          return;
-        }
-        if ((unitOfWork.mode & ProfileMode) !== NoMode) {
-          stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork);
-          next = unitOfWork.actualDuration;
-          for (var child = unitOfWork.child; null !== child; )
-            (next += child.actualDuration), (child = child.sibling);
-          unitOfWork.actualDuration = next;
-        }
-        next = unitOfWork.return;
-        null !== next &&
-          ((next.flags |= 32768),
-          (next.subtreeFlags = 0),
-          (next.deletions = null));
-        if (
-          !skipSiblings &&
-          ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)
-        ) {
-          workInProgress = unitOfWork;
-          return;
-        }
-        workInProgress = unitOfWork = next;
-      } while (null !== unitOfWork);
-      workInProgressRootExitStatus = RootSuspendedAtTheShell;
-      workInProgress = null;
-    }
-    function commitRoot(
-      root,
-      finishedWork,
-      lanes,
-      recoverableErrors,
-      transitions,
-      didIncludeRenderPhaseUpdate,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes,
-      exitStatus,
-      suspendedState,
-      suspendedCommitReason,
-      completedRenderStartTime,
-      completedRenderEndTime
-    ) {
-      root.cancelPendingCommit = null;
-      do flushPendingEffects();
-      while (pendingEffectsStatus !== NO_PENDING_EFFECTS);
-      ReactStrictModeWarnings.flushLegacyContextWarning();
-      ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();
-      if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-        throw Error("Should not already be working.");
-      setCurrentTrackFromLanes(lanes);
-      exitStatus === RootErrored
-        ? logErroredRenderPhase(
-            completedRenderStartTime,
-            completedRenderEndTime,
-            lanes,
-            workInProgressUpdateTask
-          )
-        : null !== recoverableErrors
-          ? logRecoveredRenderPhase(
-              completedRenderStartTime,
-              completedRenderEndTime,
-              lanes,
-              recoverableErrors,
-              null !== finishedWork &&
-                null !== finishedWork.alternate &&
-                finishedWork.alternate.memoizedState.isDehydrated &&
-                0 !== (finishedWork.flags & 256),
-              workInProgressUpdateTask
-            )
-          : logRenderPhase(
-              completedRenderStartTime,
-              completedRenderEndTime,
-              lanes,
-              workInProgressUpdateTask
-            );
-      if (null !== finishedWork) {
-        0 === lanes &&
-          console.error(
-            "finishedLanes should not be empty during a commit. This is a bug in React."
-          );
-        if (finishedWork === root.current)
-          throw Error(
-            "Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue."
-          );
-        didIncludeRenderPhaseUpdate =
-          finishedWork.lanes | finishedWork.childLanes;
-        didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;
-        markRootFinished(
-          root,
-          lanes,
-          didIncludeRenderPhaseUpdate,
-          spawnedLane,
-          updatedLanes,
-          suspendedRetryLanes
-        );
-        root === workInProgressRoot &&
-          ((workInProgress = workInProgressRoot = null),
-          (workInProgressRootRenderLanes = 0));
-        pendingFinishedWork = finishedWork;
-        pendingEffectsRoot = root;
-        pendingEffectsLanes = lanes;
-        pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;
-        pendingPassiveTransitions = transitions;
-        pendingRecoverableErrors = recoverableErrors;
-        pendingEffectsRenderEndTime = completedRenderEndTime;
-        pendingSuspendedCommitReason = suspendedCommitReason;
-        pendingDelayedCommitReason = IMMEDIATE_COMMIT;
-        pendingSuspendedViewTransitionReason = null;
-        0 !== finishedWork.actualDuration ||
-        0 !== (finishedWork.subtreeFlags & 10256) ||
-        0 !== (finishedWork.flags & 10256)
-          ? ((root.callbackNode = null),
-            (root.callbackPriority = 0),
-            scheduleCallback$1(NormalPriority$1, function () {
-              schedulerEvent = window.event;
-              pendingDelayedCommitReason === IMMEDIATE_COMMIT &&
-                (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);
-              flushPassiveEffects();
-              return null;
-            }))
-          : ((root.callbackNode = null), (root.callbackPriority = 0));
-        commitErrors = null;
-        commitStartTime = now();
-        null !== suspendedCommitReason &&
-          logSuspendedCommitPhase(
-            completedRenderEndTime,
-            commitStartTime,
-            suspendedCommitReason,
-            workInProgressUpdateTask
-          );
-        recoverableErrors = 0 !== (finishedWork.flags & 13878);
-        if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {
-          recoverableErrors = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          transitions = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          spawnedLane = executionContext;
-          executionContext |= CommitContext;
-          try {
-            commitBeforeMutationEffects(root, finishedWork, lanes);
-          } finally {
-            (executionContext = spawnedLane),
-              (ReactDOMSharedInternals.p = transitions),
-              (ReactSharedInternals.T = recoverableErrors);
-          }
-        }
-        pendingEffectsStatus = PENDING_MUTATION_PHASE;
-        flushMutationEffects();
-        flushLayoutEffects();
-        flushSpawnedWork();
-      }
-    }
-    function flushMutationEffects() {
-      if (pendingEffectsStatus === PENDING_MUTATION_PHASE) {
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        var root = pendingEffectsRoot,
-          finishedWork = pendingFinishedWork,
-          lanes = pendingEffectsLanes,
-          rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);
-        if (
-          0 !== (finishedWork.subtreeFlags & 13878) ||
-          rootMutationHasEffect
-        ) {
-          rootMutationHasEffect = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          var previousPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          var prevExecutionContext = executionContext;
-          executionContext |= CommitContext;
-          try {
-            inProgressLanes = lanes;
-            inProgressRoot = root;
-            resetComponentEffectTimers();
-            commitMutationEffectsOnFiber(finishedWork, root);
-            inProgressRoot = inProgressLanes = null;
-            lanes = selectionInformation;
-            var curFocusedElem = getActiveElementDeep(root.containerInfo),
-              priorFocusedElem = lanes.focusedElem,
-              priorSelectionRange = lanes.selectionRange;
-            if (
-              curFocusedElem !== priorFocusedElem &&
-              priorFocusedElem &&
-              priorFocusedElem.ownerDocument &&
-              containsNode(
-                priorFocusedElem.ownerDocument.documentElement,
-                priorFocusedElem
-              )
-            ) {
-              if (
-                null !== priorSelectionRange &&
-                hasSelectionCapabilities(priorFocusedElem)
-              ) {
-                var start = priorSelectionRange.start,
-                  end = priorSelectionRange.end;
-                void 0 === end && (end = start);
-                if ("selectionStart" in priorFocusedElem)
-                  (priorFocusedElem.selectionStart = start),
-                    (priorFocusedElem.selectionEnd = Math.min(
-                      end,
-                      priorFocusedElem.value.length
-                    ));
-                else {
-                  var doc = priorFocusedElem.ownerDocument || document,
-                    win = (doc && doc.defaultView) || window;
-                  if (win.getSelection) {
-                    var selection = win.getSelection(),
-                      length = priorFocusedElem.textContent.length,
-                      start$jscomp$0 = Math.min(
-                        priorSelectionRange.start,
-                        length
-                      ),
-                      end$jscomp$0 =
-                        void 0 === priorSelectionRange.end
-                          ? start$jscomp$0
-                          : Math.min(priorSelectionRange.end, length);
-                    !selection.extend &&
-                      start$jscomp$0 > end$jscomp$0 &&
-                      ((curFocusedElem = end$jscomp$0),
-                      (end$jscomp$0 = start$jscomp$0),
-                      (start$jscomp$0 = curFocusedElem));
-                    var startMarker = getNodeForCharacterOffset(
-                        priorFocusedElem,
-                        start$jscomp$0
-                      ),
-                      endMarker = getNodeForCharacterOffset(
-                        priorFocusedElem,
-                        end$jscomp$0
-                      );
-                    if (
-                      startMarker &&
-                      endMarker &&
-                      (1 !== selection.rangeCount ||
-                        selection.anchorNode !== startMarker.node ||
-                        selection.anchorOffset !== startMarker.offset ||
-                        selection.focusNode !== endMarker.node ||
-                        selection.focusOffset !== endMarker.offset)
-                    ) {
-                      var range = doc.createRange();
-                      range.setStart(startMarker.node, startMarker.offset);
-                      selection.removeAllRanges();
-                      start$jscomp$0 > end$jscomp$0
-                        ? (selection.addRange(range),
-                          selection.extend(endMarker.node, endMarker.offset))
-                        : (range.setEnd(endMarker.node, endMarker.offset),
-                          selection.addRange(range));
-                    }
-                  }
-                }
-              }
-              doc = [];
-              for (
-                selection = priorFocusedElem;
-                (selection = selection.parentNode);
-
-              )
-                1 === selection.nodeType &&
-                  doc.push({
-                    element: selection,
-                    left: selection.scrollLeft,
-                    top: selection.scrollTop
-                  });
-              "function" === typeof priorFocusedElem.focus &&
-                priorFocusedElem.focus();
-              for (
-                priorFocusedElem = 0;
-                priorFocusedElem < doc.length;
-                priorFocusedElem++
-              ) {
-                var info = doc[priorFocusedElem];
-                info.element.scrollLeft = info.left;
-                info.element.scrollTop = info.top;
-              }
-            }
-            _enabled = !!eventsEnabled;
-            selectionInformation = eventsEnabled = null;
-          } finally {
-            (executionContext = prevExecutionContext),
-              (ReactDOMSharedInternals.p = previousPriority),
-              (ReactSharedInternals.T = rootMutationHasEffect);
-          }
-        }
-        root.current = finishedWork;
-        pendingEffectsStatus = PENDING_LAYOUT_PHASE;
-      }
-    }
-    function flushLayoutEffects() {
-      if (pendingEffectsStatus === PENDING_LAYOUT_PHASE) {
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        var suspendedViewTransitionReason =
-          pendingSuspendedViewTransitionReason;
-        if (null !== suspendedViewTransitionReason) {
-          commitStartTime = now();
-          var startTime = commitEndTime,
-            endTime = commitStartTime;
-          !supportsUserTiming ||
-            endTime <= startTime ||
-            (animatingTask
-              ? animatingTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    suspendedViewTransitionReason,
-                    startTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  suspendedViewTransitionReason,
-                  startTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-light"
-                ));
-        }
-        suspendedViewTransitionReason = pendingEffectsRoot;
-        startTime = pendingFinishedWork;
-        endTime = pendingEffectsLanes;
-        var rootHasLayoutEffect = 0 !== (startTime.flags & 8772);
-        if (0 !== (startTime.subtreeFlags & 8772) || rootHasLayoutEffect) {
-          rootHasLayoutEffect = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          var _previousPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          var _prevExecutionContext = executionContext;
-          executionContext |= CommitContext;
-          try {
-            (inProgressLanes = endTime),
-              (inProgressRoot = suspendedViewTransitionReason),
-              resetComponentEffectTimers(),
-              commitLayoutEffectOnFiber(
-                suspendedViewTransitionReason,
-                startTime.alternate,
-                startTime
-              ),
-              (inProgressRoot = inProgressLanes = null);
-          } finally {
-            (executionContext = _prevExecutionContext),
-              (ReactDOMSharedInternals.p = _previousPriority),
-              (ReactSharedInternals.T = rootHasLayoutEffect);
-          }
-        }
-        suspendedViewTransitionReason = pendingEffectsRenderEndTime;
-        startTime = pendingSuspendedCommitReason;
-        commitEndTime = now();
-        suspendedViewTransitionReason =
-          null === startTime ? suspendedViewTransitionReason : commitStartTime;
-        startTime = commitEndTime;
-        endTime = pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;
-        rootHasLayoutEffect = workInProgressUpdateTask;
-        null !== commitErrors
-          ? logCommitErrored(
-              suspendedViewTransitionReason,
-              startTime,
-              commitErrors,
-              !1,
-              rootHasLayoutEffect
-            )
-          : !supportsUserTiming ||
-            startTime <= suspendedViewTransitionReason ||
-            (rootHasLayoutEffect
-              ? rootHasLayoutEffect.run(
-                  console.timeStamp.bind(
-                    console,
-                    endTime ? "Commit Interrupted View Transition" : "Commit",
-                    suspendedViewTransitionReason,
-                    startTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    endTime ? "error" : "secondary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  endTime ? "Commit Interrupted View Transition" : "Commit",
-                  suspendedViewTransitionReason,
-                  startTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  endTime ? "error" : "secondary-dark"
-                ));
-        pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE;
-      }
-    }
-    function flushSpawnedWork() {
-      if (
-        pendingEffectsStatus === PENDING_SPAWNED_WORK ||
-        pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE
-      ) {
-        if (pendingEffectsStatus === PENDING_SPAWNED_WORK) {
-          var startViewTransitionStartTime = commitEndTime;
-          commitEndTime = now();
-          var endTime = commitEndTime,
-            abortedViewTransition =
-              pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;
-          !supportsUserTiming ||
-            endTime <= startViewTransitionStartTime ||
-            (animatingTask
-              ? animatingTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    abortedViewTransition
-                      ? "Interrupted View Transition"
-                      : "Starting Animation",
-                    startViewTransitionStartTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    abortedViewTransition ? "error" : "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  abortedViewTransition
-                    ? "Interrupted View Transition"
-                    : "Starting Animation",
-                  startViewTransitionStartTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  abortedViewTransition ? " error" : "secondary-light"
-                ));
-          pendingDelayedCommitReason !== ABORTED_VIEW_TRANSITION_COMMIT &&
-            (pendingDelayedCommitReason = ANIMATION_STARTED_COMMIT);
-        }
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        requestPaint();
-        startViewTransitionStartTime = pendingEffectsRoot;
-        var finishedWork = pendingFinishedWork;
-        endTime = pendingEffectsLanes;
-        abortedViewTransition = pendingRecoverableErrors;
-        var rootDidHavePassiveEffects =
-          0 !== finishedWork.actualDuration ||
-          0 !== (finishedWork.subtreeFlags & 10256) ||
-          0 !== (finishedWork.flags & 10256);
-        rootDidHavePassiveEffects
-          ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE)
-          : ((pendingEffectsStatus = NO_PENDING_EFFECTS),
-            (pendingFinishedWork = pendingEffectsRoot = null),
-            releaseRootPooledCache(
-              startViewTransitionStartTime,
-              startViewTransitionStartTime.pendingLanes
-            ),
-            (nestedPassiveUpdateCount = 0),
-            (rootWithPassiveNestedUpdates = null));
-        var remainingLanes = startViewTransitionStartTime.pendingLanes;
-        0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);
-        rootDidHavePassiveEffects ||
-          commitDoubleInvokeEffectsInDEV(startViewTransitionStartTime);
-        remainingLanes = lanesToEventPriority(endTime);
-        finishedWork = finishedWork.stateNode;
-        if (
-          injectedHook &&
-          "function" === typeof injectedHook.onCommitFiberRoot
-        )
-          try {
-            var didError = 128 === (finishedWork.current.flags & 128);
-            switch (remainingLanes) {
-              case DiscreteEventPriority:
-                var schedulerPriority = ImmediatePriority;
-                break;
-              case ContinuousEventPriority:
-                schedulerPriority = UserBlockingPriority;
-                break;
-              case DefaultEventPriority:
-                schedulerPriority = NormalPriority$1;
-                break;
-              case IdleEventPriority:
-                schedulerPriority = IdlePriority;
-                break;
-              default:
-                schedulerPriority = NormalPriority$1;
-            }
-            injectedHook.onCommitFiberRoot(
-              rendererID,
-              finishedWork,
-              schedulerPriority,
-              didError
-            );
-          } catch (err) {
-            hasLoggedError ||
-              ((hasLoggedError = !0),
-              console.error(
-                "React instrumentation encountered an error: %o",
-                err
-              ));
-          }
-        isDevToolsPresent &&
-          startViewTransitionStartTime.memoizedUpdaters.clear();
-        onCommitRoot();
-        if (null !== abortedViewTransition) {
-          didError = ReactSharedInternals.T;
-          schedulerPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          ReactSharedInternals.T = null;
-          try {
-            var onRecoverableError =
-              startViewTransitionStartTime.onRecoverableError;
-            for (
-              finishedWork = 0;
-              finishedWork < abortedViewTransition.length;
-              finishedWork++
-            ) {
-              var recoverableError = abortedViewTransition[finishedWork],
-                errorInfo = makeErrorInfo(recoverableError.stack);
-              runWithFiberInDEV(
-                recoverableError.source,
-                onRecoverableError,
-                recoverableError.value,
-                errorInfo
-              );
-            }
-          } finally {
-            (ReactSharedInternals.T = didError),
-              (ReactDOMSharedInternals.p = schedulerPriority);
-          }
-        }
-        0 !== (pendingEffectsLanes & 3) && flushPendingEffects();
-        ensureRootIsScheduled(startViewTransitionStartTime);
-        remainingLanes = startViewTransitionStartTime.pendingLanes;
-        0 !== (endTime & 261930) && 0 !== (remainingLanes & 42)
-          ? ((nestedUpdateScheduled = !0),
-            startViewTransitionStartTime === rootWithNestedUpdates
-              ? nestedUpdateCount++
-              : ((nestedUpdateCount = 0),
-                (rootWithNestedUpdates = startViewTransitionStartTime)))
-          : (nestedUpdateCount = 0);
-        rootDidHavePassiveEffects || finalizeRender(endTime, commitEndTime);
-        flushSyncWorkAcrossRoots_impl(0, !1);
-      }
-    }
-    function makeErrorInfo(componentStack) {
-      componentStack = { componentStack: componentStack };
-      Object.defineProperty(componentStack, "digest", {
-        get: function () {
-          console.error(
-            'You are accessing "digest" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.'
-          );
-        }
-      });
-      return componentStack;
-    }
-    function releaseRootPooledCache(root, remainingLanes) {
-      0 === (root.pooledCacheLanes &= remainingLanes) &&
-        ((remainingLanes = root.pooledCache),
-        null != remainingLanes &&
-          ((root.pooledCache = null), releaseCache(remainingLanes)));
-    }
-    function flushPendingEffects() {
-      flushMutationEffects();
-      flushLayoutEffects();
-      flushSpawnedWork();
-      return flushPassiveEffects();
-    }
-    function flushPassiveEffects() {
-      if (pendingEffectsStatus !== PENDING_PASSIVE_PHASE) return !1;
-      var root = pendingEffectsRoot,
-        remainingLanes = pendingEffectsRemainingLanes;
-      pendingEffectsRemainingLanes = 0;
-      var renderPriority = lanesToEventPriority(pendingEffectsLanes),
-        priority =
-          0 === DefaultEventPriority || DefaultEventPriority > renderPriority
-            ? DefaultEventPriority
-            : renderPriority;
-      renderPriority = ReactSharedInternals.T;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        ReactDOMSharedInternals.p = priority;
-        ReactSharedInternals.T = null;
-        var transitions = pendingPassiveTransitions;
-        pendingPassiveTransitions = null;
-        priority = pendingEffectsRoot;
-        var lanes = pendingEffectsLanes;
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        pendingFinishedWork = pendingEffectsRoot = null;
-        pendingEffectsLanes = 0;
-        if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-          throw Error("Cannot flush passive effects while already rendering.");
-        setCurrentTrackFromLanes(lanes);
-        isFlushingPassiveEffects = !0;
-        didScheduleUpdateDuringPassiveEffects = !1;
-        var passiveEffectStartTime = 0;
-        commitErrors = null;
-        passiveEffectStartTime = now$1();
-        if (pendingDelayedCommitReason === ANIMATION_STARTED_COMMIT)
-          logAnimatingPhase(
-            commitEndTime,
-            passiveEffectStartTime,
-            animatingTask
-          );
-        else {
-          var startTime = commitEndTime,
-            endTime = passiveEffectStartTime,
-            delayedUntilPaint =
-              pendingDelayedCommitReason === DELAYED_PASSIVE_COMMIT;
-          !supportsUserTiming ||
-            endTime <= startTime ||
-            (workInProgressUpdateTask
-              ? workInProgressUpdateTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    delayedUntilPaint ? "Waiting for Paint" : "Waiting",
-                    startTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  delayedUntilPaint ? "Waiting for Paint" : "Waiting",
-                  startTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-light"
-                ));
-        }
-        startTime = executionContext;
-        executionContext |= CommitContext;
-        var finishedWork = priority.current;
-        resetComponentEffectTimers();
-        commitPassiveUnmountOnFiber(finishedWork);
-        var finishedWork$jscomp$0 = priority.current;
-        finishedWork = pendingEffectsRenderEndTime;
-        resetComponentEffectTimers();
-        commitPassiveMountOnFiber(
-          priority,
-          finishedWork$jscomp$0,
-          lanes,
-          transitions,
-          finishedWork
-        );
-        commitDoubleInvokeEffectsInDEV(priority);
-        executionContext = startTime;
-        var passiveEffectsEndTime = now$1();
-        finishedWork$jscomp$0 = passiveEffectStartTime;
-        finishedWork = workInProgressUpdateTask;
-        null !== commitErrors
-          ? logCommitErrored(
-              finishedWork$jscomp$0,
-              passiveEffectsEndTime,
-              commitErrors,
-              !0,
-              finishedWork
-            )
-          : !supportsUserTiming ||
-            passiveEffectsEndTime <= finishedWork$jscomp$0 ||
-            (finishedWork
-              ? finishedWork.run(
-                  console.timeStamp.bind(
-                    console,
-                    "Remaining Effects",
-                    finishedWork$jscomp$0,
-                    passiveEffectsEndTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  "Remaining Effects",
-                  finishedWork$jscomp$0,
-                  passiveEffectsEndTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-dark"
-                ));
-        finalizeRender(lanes, passiveEffectsEndTime);
-        flushSyncWorkAcrossRoots_impl(0, !1);
-        didScheduleUpdateDuringPassiveEffects
-          ? priority === rootWithPassiveNestedUpdates
-            ? nestedPassiveUpdateCount++
-            : ((nestedPassiveUpdateCount = 0),
-              (rootWithPassiveNestedUpdates = priority))
-          : (nestedPassiveUpdateCount = 0);
-        didScheduleUpdateDuringPassiveEffects = isFlushingPassiveEffects = !1;
-        if (
-          injectedHook &&
-          "function" === typeof injectedHook.onPostCommitFiberRoot
-        )
-          try {
-            injectedHook.onPostCommitFiberRoot(rendererID, priority);
-          } catch (err) {
-            hasLoggedError ||
-              ((hasLoggedError = !0),
-              console.error(
-                "React instrumentation encountered an error: %o",
-                err
-              ));
-          }
-        var stateNode = priority.current.stateNode;
-        stateNode.effectDuration = 0;
-        stateNode.passiveEffectDuration = 0;
-        return !0;
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = renderPriority),
-          releaseRootPooledCache(root, remainingLanes);
-      }
-    }
-    function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {
-      sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-      recordEffectError(sourceFiber);
-      sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);
-      rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);
-      null !== rootFiber &&
-        (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));
-    }
-    function captureCommitPhaseError(
-      sourceFiber,
-      nearestMountedAncestor,
-      error
-    ) {
-      isRunningInsertionEffect = !1;
-      if (3 === sourceFiber.tag)
-        captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);
-      else {
-        for (; null !== nearestMountedAncestor; ) {
-          if (3 === nearestMountedAncestor.tag) {
-            captureCommitPhaseErrorOnRoot(
-              nearestMountedAncestor,
-              sourceFiber,
-              error
-            );
-            return;
-          }
-          if (1 === nearestMountedAncestor.tag) {
-            var instance = nearestMountedAncestor.stateNode;
-            if (
-              "function" ===
-                typeof nearestMountedAncestor.type.getDerivedStateFromError ||
-              ("function" === typeof instance.componentDidCatch &&
-                (null === legacyErrorBoundariesThatAlreadyFailed ||
-                  !legacyErrorBoundariesThatAlreadyFailed.has(instance)))
-            ) {
-              sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-              recordEffectError(sourceFiber);
-              error = createClassErrorUpdate(2);
-              instance = enqueueUpdate(nearestMountedAncestor, error, 2);
-              null !== instance &&
-                (initializeClassErrorUpdate(
-                  error,
-                  instance,
-                  nearestMountedAncestor,
-                  sourceFiber
-                ),
-                markRootUpdated$1(instance, 2),
-                ensureRootIsScheduled(instance));
-              return;
-            }
-          }
-          nearestMountedAncestor = nearestMountedAncestor.return;
-        }
-        console.error(
-          "Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\n\nError message:\n\n%s",
-          error
-        );
-      }
-    }
-    function attachPingListener(root, wakeable, lanes) {
-      var pingCache = root.pingCache;
-      if (null === pingCache) {
-        pingCache = root.pingCache = new PossiblyWeakMap();
-        var threadIDs = new Set();
-        pingCache.set(wakeable, threadIDs);
-      } else
-        (threadIDs = pingCache.get(wakeable)),
-          void 0 === threadIDs &&
-            ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));
-      threadIDs.has(lanes) ||
-        ((workInProgressRootDidAttachPingListener = !0),
-        threadIDs.add(lanes),
-        (pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),
-        isDevToolsPresent && restorePendingUpdaters(root, lanes),
-        wakeable.then(pingCache, pingCache));
-    }
-    function pingSuspendedRoot(root, wakeable, pingedLanes) {
-      var pingCache = root.pingCache;
-      null !== pingCache && pingCache.delete(wakeable);
-      root.pingedLanes |= root.suspendedLanes & pingedLanes;
-      root.warmLanes &= ~pingedLanes;
-      0 !== (pingedLanes & 127)
-        ? 0 > blockingUpdateTime &&
-          ((blockingClampTime = blockingUpdateTime = now()),
-          (blockingUpdateTask = createTask("Promise Resolved")),
-          (blockingUpdateType = PINGED_UPDATE))
-        : 0 !== (pingedLanes & 4194048) &&
-          0 > transitionUpdateTime &&
-          ((transitionClampTime = transitionUpdateTime = now()),
-          (transitionUpdateTask = createTask("Promise Resolved")),
-          (transitionUpdateType = PINGED_UPDATE));
-      isConcurrentActEnvironment() &&
-        null === ReactSharedInternals.actQueue &&
-        console.error(
-          "A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\n\nWhen testing, code that resolves suspended data should be wrapped into act(...):\n\nact(() => {\n  /* finish loading suspended data */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act"
-        );
-      workInProgressRoot === root &&
-        (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&
-        (workInProgressRootExitStatus === RootSuspendedWithDelay ||
-        (workInProgressRootExitStatus === RootSuspended &&
-          (workInProgressRootRenderLanes & 62914560) ===
-            workInProgressRootRenderLanes &&
-          now$1() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)
-          ? (executionContext & RenderContext) === NoContext &&
-            prepareFreshStack(root, 0)
-          : (workInProgressRootPingedLanes |= pingedLanes),
-        workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&
-          (workInProgressSuspendedRetryLanes = 0));
-      ensureRootIsScheduled(root);
-    }
-    function retryTimedOutBoundary(boundaryFiber, retryLane) {
-      0 === retryLane && (retryLane = claimNextRetryLane());
-      boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);
-      null !== boundaryFiber &&
-        (markRootUpdated$1(boundaryFiber, retryLane),
-        ensureRootIsScheduled(boundaryFiber));
-    }
-    function retryDehydratedSuspenseBoundary(boundaryFiber) {
-      var suspenseState = boundaryFiber.memoizedState,
-        retryLane = 0;
-      null !== suspenseState && (retryLane = suspenseState.retryLane);
-      retryTimedOutBoundary(boundaryFiber, retryLane);
-    }
-    function resolveRetryWakeable(boundaryFiber, wakeable) {
-      var retryLane = 0;
-      switch (boundaryFiber.tag) {
-        case 31:
-        case 13:
-          var retryCache = boundaryFiber.stateNode;
-          var suspenseState = boundaryFiber.memoizedState;
-          null !== suspenseState && (retryLane = suspenseState.retryLane);
-          break;
-        case 19:
-          retryCache = boundaryFiber.stateNode;
-          break;
-        case 22:
-          retryCache = boundaryFiber.stateNode._retryCache;
-          break;
-        default:
-          throw Error(
-            "Pinged unknown suspense boundary type. This is probably a bug in React."
-          );
-      }
-      null !== retryCache && retryCache.delete(wakeable);
-      retryTimedOutBoundary(boundaryFiber, retryLane);
-    }
-    function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-      root$jscomp$0,
-      parentFiber,
-      isInStrictMode
-    ) {
-      if (0 !== (parentFiber.subtreeFlags & 67117056))
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var root = root$jscomp$0,
-            fiber = parentFiber,
-            isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
-          isStrictModeFiber = isInStrictMode || isStrictModeFiber;
-          22 !== fiber.tag
-            ? fiber.flags & 67108864
-              ? isStrictModeFiber &&
-                runWithFiberInDEV(
-                  fiber,
-                  doubleInvokeEffectsOnFiber,
-                  root,
-                  fiber
-                )
-              : recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-                  root,
-                  fiber,
-                  isStrictModeFiber
-                )
-            : null === fiber.memoizedState &&
-              (isStrictModeFiber && fiber.flags & 8192
-                ? runWithFiberInDEV(
-                    fiber,
-                    doubleInvokeEffectsOnFiber,
-                    root,
-                    fiber
-                  )
-                : fiber.subtreeFlags & 67108864 &&
-                  runWithFiberInDEV(
-                    fiber,
-                    recursivelyTraverseAndDoubleInvokeEffectsInDEV,
-                    root,
-                    fiber,
-                    isStrictModeFiber
-                  ));
-          parentFiber = parentFiber.sibling;
-        }
-    }
-    function doubleInvokeEffectsOnFiber(root, fiber) {
-      setIsStrictModeForDevtools(!0);
-      try {
-        disappearLayoutEffects(fiber),
-          disconnectPassiveEffect(fiber),
-          reappearLayoutEffects(root, fiber.alternate, fiber, !1),
-          reconnectPassiveEffects(root, fiber, 0, null, !1, 0);
-      } finally {
-        setIsStrictModeForDevtools(!1);
-      }
-    }
-    function commitDoubleInvokeEffectsInDEV(root) {
-      var doubleInvokeEffects = !0;
-      root.current.mode & (StrictLegacyMode | StrictEffectsMode) ||
-        (doubleInvokeEffects = !1);
-      recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-        root,
-        root.current,
-        doubleInvokeEffects
-      );
-    }
-    function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {
-      if ((executionContext & RenderContext) === NoContext) {
-        var tag = fiber.tag;
-        if (
-          3 === tag ||
-          1 === tag ||
-          0 === tag ||
-          11 === tag ||
-          14 === tag ||
-          15 === tag
-        ) {
-          tag = getComponentNameFromFiber(fiber) || "ReactComponent";
-          if (null !== didWarnStateUpdateForNotYetMountedComponent) {
-            if (didWarnStateUpdateForNotYetMountedComponent.has(tag)) return;
-            didWarnStateUpdateForNotYetMountedComponent.add(tag);
-          } else didWarnStateUpdateForNotYetMountedComponent = new Set([tag]);
-          runWithFiberInDEV(fiber, function () {
-            console.error(
-              "Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously tries to update the component. Move this work to useEffect instead."
-            );
-          });
-        }
-      }
-    }
-    function restorePendingUpdaters(root, lanes) {
-      isDevToolsPresent &&
-        root.memoizedUpdaters.forEach(function (schedulingFiber) {
-          addFiberToLanesMap(root, schedulingFiber, lanes);
-        });
-    }
-    function scheduleCallback$1(priorityLevel, callback) {
-      var actQueue = ReactSharedInternals.actQueue;
-      return null !== actQueue
-        ? (actQueue.push(callback), fakeActCallbackNode$1)
-        : scheduleCallback$3(priorityLevel, callback);
-    }
-    function warnIfUpdatesNotWrappedWithActDEV(fiber) {
-      isConcurrentActEnvironment() &&
-        null === ReactSharedInternals.actQueue &&
-        runWithFiberInDEV(fiber, function () {
-          console.error(
-            "An update to %s inside a test was not wrapped in act(...).\n\nWhen testing, code that causes React state updates should be wrapped into act(...):\n\nact(() => {\n  /* fire events that update state */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act",
-            getComponentNameFromFiber(fiber)
-          );
-        });
-    }
-    function ensureRootIsScheduled(root) {
-      root !== lastScheduledRoot &&
-        null === root.next &&
-        (null === lastScheduledRoot
-          ? (firstScheduledRoot = lastScheduledRoot = root)
-          : (lastScheduledRoot = lastScheduledRoot.next = root));
-      mightHavePendingSyncWork = !0;
-      null !== ReactSharedInternals.actQueue
-        ? didScheduleMicrotask_act ||
-          ((didScheduleMicrotask_act = !0), scheduleImmediateRootScheduleTask())
-        : didScheduleMicrotask ||
-          ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());
-    }
-    function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {
-      if (!isFlushingWork && mightHavePendingSyncWork) {
-        isFlushingWork = !0;
-        do {
-          var didPerformSomeWork = !1;
-          for (var root = firstScheduledRoot; null !== root; ) {
-            if (!onlyLegacy)
-              if (0 !== syncTransitionLanes) {
-                var pendingLanes = root.pendingLanes;
-                if (0 === pendingLanes) var nextLanes = 0;
-                else {
-                  var suspendedLanes = root.suspendedLanes,
-                    pingedLanes = root.pingedLanes;
-                  nextLanes =
-                    (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;
-                  nextLanes &= pendingLanes & ~(suspendedLanes & ~pingedLanes);
-                  nextLanes =
-                    nextLanes & 201326741
-                      ? (nextLanes & 201326741) | 1
-                      : nextLanes
-                        ? nextLanes | 2
-                        : 0;
-                }
-                0 !== nextLanes &&
-                  ((didPerformSomeWork = !0),
-                  performSyncWorkOnRoot(root, nextLanes));
-              } else
-                (nextLanes = workInProgressRootRenderLanes),
-                  (nextLanes = getNextLanes(
-                    root,
-                    root === workInProgressRoot ? nextLanes : 0,
-                    null !== root.cancelPendingCommit ||
-                      root.timeoutHandle !== noTimeout
-                  )),
-                  0 === (nextLanes & 3) ||
-                    checkIfRootIsPrerendering(root, nextLanes) ||
-                    ((didPerformSomeWork = !0),
-                    performSyncWorkOnRoot(root, nextLanes));
-            root = root.next;
-          }
-        } while (didPerformSomeWork);
-        isFlushingWork = !1;
-      }
-    }
-    function processRootScheduleInImmediateTask() {
-      schedulerEvent = window.event;
-      processRootScheduleInMicrotask();
-    }
-    function processRootScheduleInMicrotask() {
-      mightHavePendingSyncWork =
-        didScheduleMicrotask_act =
-        didScheduleMicrotask =
-          !1;
-      var syncTransitionLanes = 0;
-      0 !== currentEventTransitionLane &&
-        shouldAttemptEagerTransition() &&
-        (syncTransitionLanes = currentEventTransitionLane);
-      for (
-        var currentTime = now$1(), prev = null, root = firstScheduledRoot;
-        null !== root;
-
-      ) {
-        var next = root.next,
-          nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);
-        if (0 === nextLanes)
-          (root.next = null),
-            null === prev ? (firstScheduledRoot = next) : (prev.next = next),
-            null === next && (lastScheduledRoot = prev);
-        else if (
-          ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))
-        )
-          mightHavePendingSyncWork = !0;
-        root = next;
-      }
-      (pendingEffectsStatus !== NO_PENDING_EFFECTS &&
-        pendingEffectsStatus !== PENDING_PASSIVE_PHASE) ||
-        flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);
-      0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);
-    }
-    function scheduleTaskForRootDuringMicrotask(root, currentTime) {
-      for (
-        var suspendedLanes = root.suspendedLanes,
-          pingedLanes = root.pingedLanes,
-          expirationTimes = root.expirationTimes,
-          lanes = root.pendingLanes & -62914561;
-        0 < lanes;
-
-      ) {
-        var index = 31 - clz32(lanes),
-          lane = 1 << index,
-          expirationTime = expirationTimes[index];
-        if (-1 === expirationTime) {
-          if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))
-            expirationTimes[index] = computeExpirationTime(lane, currentTime);
-        } else expirationTime <= currentTime && (root.expiredLanes |= lane);
-        lanes &= ~lane;
-      }
-      currentTime = workInProgressRoot;
-      suspendedLanes = workInProgressRootRenderLanes;
-      suspendedLanes = getNextLanes(
-        root,
-        root === currentTime ? suspendedLanes : 0,
-        null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
-      );
-      pingedLanes = root.callbackNode;
-      if (
-        0 === suspendedLanes ||
-        (root === currentTime &&
-          (workInProgressSuspendedReason === SuspendedOnData ||
-            workInProgressSuspendedReason === SuspendedOnAction)) ||
-        null !== root.cancelPendingCommit
-      )
-        return (
-          null !== pingedLanes && cancelCallback(pingedLanes),
-          (root.callbackNode = null),
-          (root.callbackPriority = 0)
-        );
-      if (
-        0 === (suspendedLanes & 3) ||
-        checkIfRootIsPrerendering(root, suspendedLanes)
-      ) {
-        currentTime = suspendedLanes & -suspendedLanes;
-        if (
-          currentTime !== root.callbackPriority ||
-          (null !== ReactSharedInternals.actQueue &&
-            pingedLanes !== fakeActCallbackNode)
-        )
-          cancelCallback(pingedLanes);
-        else return currentTime;
-        switch (lanesToEventPriority(suspendedLanes)) {
-          case DiscreteEventPriority:
-          case ContinuousEventPriority:
-            suspendedLanes = UserBlockingPriority;
-            break;
-          case DefaultEventPriority:
-            suspendedLanes = NormalPriority$1;
-            break;
-          case IdleEventPriority:
-            suspendedLanes = IdlePriority;
-            break;
-          default:
-            suspendedLanes = NormalPriority$1;
-        }
-        pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);
-        null !== ReactSharedInternals.actQueue
-          ? (ReactSharedInternals.actQueue.push(pingedLanes),
-            (suspendedLanes = fakeActCallbackNode))
-          : (suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes));
-        root.callbackPriority = currentTime;
-        root.callbackNode = suspendedLanes;
-        return currentTime;
-      }
-      null !== pingedLanes && cancelCallback(pingedLanes);
-      root.callbackPriority = 2;
-      root.callbackNode = null;
-      return 2;
-    }
-    function performWorkOnRootViaSchedulerTask(root, didTimeout) {
-      nestedUpdateScheduled = currentUpdateIsNested = !1;
-      schedulerEvent = window.event;
-      if (
-        pendingEffectsStatus !== NO_PENDING_EFFECTS &&
-        pendingEffectsStatus !== PENDING_PASSIVE_PHASE
-      )
-        return (root.callbackNode = null), (root.callbackPriority = 0), null;
-      var originalCallbackNode = root.callbackNode;
-      pendingDelayedCommitReason === IMMEDIATE_COMMIT &&
-        (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);
-      if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)
-        return null;
-      var workInProgressRootRenderLanes$jscomp$0 =
-        workInProgressRootRenderLanes;
-      workInProgressRootRenderLanes$jscomp$0 = getNextLanes(
-        root,
-        root === workInProgressRoot
-          ? workInProgressRootRenderLanes$jscomp$0
-          : 0,
-        null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
-      );
-      if (0 === workInProgressRootRenderLanes$jscomp$0) return null;
-      performWorkOnRoot(
-        root,
-        workInProgressRootRenderLanes$jscomp$0,
-        didTimeout
-      );
-      scheduleTaskForRootDuringMicrotask(root, now$1());
-      return null != root.callbackNode &&
-        root.callbackNode === originalCallbackNode
-        ? performWorkOnRootViaSchedulerTask.bind(null, root)
-        : null;
-    }
-    function performSyncWorkOnRoot(root, lanes) {
-      if (flushPendingEffects()) return null;
-      currentUpdateIsNested = nestedUpdateScheduled;
-      nestedUpdateScheduled = !1;
-      performWorkOnRoot(root, lanes, !0);
-    }
-    function cancelCallback(callbackNode) {
-      callbackNode !== fakeActCallbackNode &&
-        null !== callbackNode &&
-        cancelCallback$1(callbackNode);
-    }
-    function scheduleImmediateRootScheduleTask() {
-      null !== ReactSharedInternals.actQueue &&
-        ReactSharedInternals.actQueue.push(function () {
-          processRootScheduleInMicrotask();
-          return null;
-        });
-      scheduleMicrotask(function () {
-        (executionContext & (RenderContext | CommitContext)) !== NoContext
-          ? scheduleCallback$3(
-              ImmediatePriority,
-              processRootScheduleInImmediateTask
-            )
-          : processRootScheduleInMicrotask();
-      });
-    }
-    function requestTransitionLane() {
-      if (0 === currentEventTransitionLane) {
-        var actionScopeLane = currentEntangledLane;
-        0 === actionScopeLane &&
-          ((actionScopeLane = nextTransitionUpdateLane),
-          (nextTransitionUpdateLane <<= 1),
-          0 === (nextTransitionUpdateLane & 261888) &&
-            (nextTransitionUpdateLane = 256));
-        currentEventTransitionLane = actionScopeLane;
-      }
-      return currentEventTransitionLane;
-    }
-    function coerceFormActionProp(actionProp) {
-      if (
-        null == actionProp ||
-        "symbol" === typeof actionProp ||
-        "boolean" === typeof actionProp
-      )
-        return null;
-      if ("function" === typeof actionProp) return actionProp;
-      checkAttributeStringCoercion(actionProp, "action");
-      return sanitizeURL("" + actionProp);
-    }
-    function createFormDataWithSubmitter(form, submitter) {
-      var temp = submitter.ownerDocument.createElement("input");
-      temp.name = submitter.name;
-      temp.value = submitter.value;
-      form.id && temp.setAttribute("form", form.id);
-      submitter.parentNode.insertBefore(temp, submitter);
-      form = new FormData(form);
-      temp.parentNode.removeChild(temp);
-      return form;
-    }
-    function extractEvents$1(
-      dispatchQueue,
-      domEventName,
-      maybeTargetInst,
-      nativeEvent,
-      nativeEventTarget
-    ) {
-      if (
-        "submit" === domEventName &&
-        maybeTargetInst &&
-        maybeTargetInst.stateNode === nativeEventTarget
-      ) {
-        var action = coerceFormActionProp(
-            (nativeEventTarget[internalPropsKey] || null).action
-          ),
-          submitter = nativeEvent.submitter;
-        submitter &&
-          ((domEventName = (domEventName = submitter[internalPropsKey] || null)
-            ? coerceFormActionProp(domEventName.formAction)
-            : submitter.getAttribute("formAction")),
-          null !== domEventName &&
-            ((action = domEventName), (submitter = null)));
-        var event = new SyntheticEvent(
-          "action",
-          "action",
-          null,
-          nativeEvent,
-          nativeEventTarget
-        );
-        dispatchQueue.push({
-          event: event,
-          listeners: [
-            {
-              instance: null,
-              listener: function () {
-                if (nativeEvent.defaultPrevented) {
-                  if (0 !== currentEventTransitionLane) {
-                    var formData = submitter
-                        ? createFormDataWithSubmitter(
-                            nativeEventTarget,
-                            submitter
-                          )
-                        : new FormData(nativeEventTarget),
-                      pendingState = {
-                        pending: !0,
-                        data: formData,
-                        method: nativeEventTarget.method,
-                        action: action
-                      };
-                    Object.freeze(pendingState);
-                    startHostTransition(
-                      maybeTargetInst,
-                      pendingState,
-                      null,
-                      formData
-                    );
-                  }
-                } else
-                  "function" === typeof action &&
-                    (event.preventDefault(),
-                    (formData = submitter
-                      ? createFormDataWithSubmitter(
-                          nativeEventTarget,
-                          submitter
-                        )
-                      : new FormData(nativeEventTarget)),
-                    (pendingState = {
-                      pending: !0,
-                      data: formData,
-                      method: nativeEventTarget.method,
-                      action: action
-                    }),
-                    Object.freeze(pendingState),
-                    startHostTransition(
-                      maybeTargetInst,
-                      pendingState,
-                      action,
-                      formData
-                    ));
-              },
-              currentTarget: nativeEventTarget
-            }
-          ]
-        });
-      }
-    }
-    function executeDispatch(event, listener, currentTarget) {
-      event.currentTarget = currentTarget;
-      try {
-        listener(event);
-      } catch (error) {
-        reportGlobalError(error);
-      }
-      event.currentTarget = null;
-    }
-    function processDispatchQueue(dispatchQueue, eventSystemFlags) {
-      eventSystemFlags = 0 !== (eventSystemFlags & 4);
-      for (var i = 0; i < dispatchQueue.length; i++) {
-        var _dispatchQueue$i = dispatchQueue[i];
-        a: {
-          var previousInstance = void 0,
-            event = _dispatchQueue$i.event;
-          _dispatchQueue$i = _dispatchQueue$i.listeners;
-          if (eventSystemFlags)
-            for (
-              var i$jscomp$0 = _dispatchQueue$i.length - 1;
-              0 <= i$jscomp$0;
-              i$jscomp$0--
-            ) {
-              var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],
-                instance = _dispatchListeners$i.instance,
-                currentTarget = _dispatchListeners$i.currentTarget;
-              _dispatchListeners$i = _dispatchListeners$i.listener;
-              if (instance !== previousInstance && event.isPropagationStopped())
-                break a;
-              null !== instance
-                ? runWithFiberInDEV(
-                    instance,
-                    executeDispatch,
-                    event,
-                    _dispatchListeners$i,
-                    currentTarget
-                  )
-                : executeDispatch(event, _dispatchListeners$i, currentTarget);
-              previousInstance = instance;
-            }
-          else
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < _dispatchQueue$i.length;
-              i$jscomp$0++
-            ) {
-              _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];
-              instance = _dispatchListeners$i.instance;
-              currentTarget = _dispatchListeners$i.currentTarget;
-              _dispatchListeners$i = _dispatchListeners$i.listener;
-              if (instance !== previousInstance && event.isPropagationStopped())
-                break a;
-              null !== instance
-                ? runWithFiberInDEV(
-                    instance,
-                    executeDispatch,
-                    event,
-                    _dispatchListeners$i,
-                    currentTarget
-                  )
-                : executeDispatch(event, _dispatchListeners$i, currentTarget);
-              previousInstance = instance;
-            }
-        }
-      }
-    }
-    function listenToNonDelegatedEvent(domEventName, targetElement) {
-      nonDelegatedEvents.has(domEventName) ||
-        console.error(
-          'Did not expect a listenToNonDelegatedEvent() call for "%s". This is a bug in React. Please file an issue.',
-          domEventName
-        );
-      var listenerSet = targetElement[internalEventHandlersKey];
-      void 0 === listenerSet &&
-        (listenerSet = targetElement[internalEventHandlersKey] = new Set());
-      var listenerSetKey = domEventName + "__bubble";
-      listenerSet.has(listenerSetKey) ||
-        (addTrappedEventListener(targetElement, domEventName, 2, !1),
-        listenerSet.add(listenerSetKey));
-    }
-    function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {
-      nonDelegatedEvents.has(domEventName) &&
-        !isCapturePhaseListener &&
-        console.error(
-          'Did not expect a listenToNativeEvent() call for "%s" in the bubble phase. This is a bug in React. Please file an issue.',
-          domEventName
-        );
-      var eventSystemFlags = 0;
-      isCapturePhaseListener && (eventSystemFlags |= 4);
-      addTrappedEventListener(
-        target,
-        domEventName,
-        eventSystemFlags,
-        isCapturePhaseListener
-      );
-    }
-    function listenToAllSupportedEvents(rootContainerElement) {
-      if (!rootContainerElement[listeningMarker]) {
-        rootContainerElement[listeningMarker] = !0;
-        allNativeEvents.forEach(function (domEventName) {
-          "selectionchange" !== domEventName &&
-            (nonDelegatedEvents.has(domEventName) ||
-              listenToNativeEvent(domEventName, !1, rootContainerElement),
-            listenToNativeEvent(domEventName, !0, rootContainerElement));
-        });
-        var ownerDocument =
-          9 === rootContainerElement.nodeType
-            ? rootContainerElement
-            : rootContainerElement.ownerDocument;
-        null === ownerDocument ||
-          ownerDocument[listeningMarker] ||
-          ((ownerDocument[listeningMarker] = !0),
-          listenToNativeEvent("selectionchange", !1, ownerDocument));
-      }
-    }
-    function addTrappedEventListener(
-      targetContainer,
-      domEventName,
-      eventSystemFlags,
-      isCapturePhaseListener
-    ) {
-      switch (getEventPriority(domEventName)) {
-        case DiscreteEventPriority:
-          var listenerWrapper = dispatchDiscreteEvent;
-          break;
-        case ContinuousEventPriority:
-          listenerWrapper = dispatchContinuousEvent;
-          break;
-        default:
-          listenerWrapper = dispatchEvent;
-      }
-      eventSystemFlags = listenerWrapper.bind(
-        null,
-        domEventName,
-        eventSystemFlags,
-        targetContainer
-      );
-      listenerWrapper = void 0;
-      !passiveBrowserEventsSupported ||
-        ("touchstart" !== domEventName &&
-          "touchmove" !== domEventName &&
-          "wheel" !== domEventName) ||
-        (listenerWrapper = !0);
-      isCapturePhaseListener
-        ? void 0 !== listenerWrapper
-          ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-              capture: !0,
-              passive: listenerWrapper
-            })
-          : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)
-        : void 0 !== listenerWrapper
-          ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-              passive: listenerWrapper
-            })
-          : targetContainer.addEventListener(
-              domEventName,
-              eventSystemFlags,
-              !1
-            );
-    }
-    function dispatchEventForPluginEventSystem(
-      domEventName,
-      eventSystemFlags,
-      nativeEvent,
-      targetInst$jscomp$0,
-      targetContainer
-    ) {
-      var ancestorInst = targetInst$jscomp$0;
-      if (
-        0 === (eventSystemFlags & 1) &&
-        0 === (eventSystemFlags & 2) &&
-        null !== targetInst$jscomp$0
-      )
-        a: for (;;) {
-          if (null === targetInst$jscomp$0) return;
-          var nodeTag = targetInst$jscomp$0.tag;
-          if (3 === nodeTag || 4 === nodeTag) {
-            var container = targetInst$jscomp$0.stateNode.containerInfo;
-            if (container === targetContainer) break;
-            if (4 === nodeTag)
-              for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
-                var grandTag = nodeTag.tag;
-                if (
-                  (3 === grandTag || 4 === grandTag) &&
-                  nodeTag.stateNode.containerInfo === targetContainer
-                )
-                  return;
-                nodeTag = nodeTag.return;
-              }
-            for (; null !== container; ) {
-              nodeTag = getClosestInstanceFromNode(container);
-              if (null === nodeTag) return;
-              grandTag = nodeTag.tag;
-              if (
-                5 === grandTag ||
-                6 === grandTag ||
-                26 === grandTag ||
-                27 === grandTag
-              ) {
-                targetInst$jscomp$0 = ancestorInst = nodeTag;
-                continue a;
-              }
-              container = container.parentNode;
-            }
-          }
-          targetInst$jscomp$0 = targetInst$jscomp$0.return;
-        }
-      batchedUpdates$1(function () {
-        var targetInst = ancestorInst,
-          nativeEventTarget = getEventTarget(nativeEvent),
-          dispatchQueue = [];
-        a: {
-          var reactName = topLevelEventsToReactNames.get(domEventName);
-          if (void 0 !== reactName) {
-            var SyntheticEventCtor = SyntheticEvent,
-              reactEventType = domEventName;
-            switch (domEventName) {
-              case "keypress":
-                if (0 === getEventCharCode(nativeEvent)) break a;
-              case "keydown":
-              case "keyup":
-                SyntheticEventCtor = SyntheticKeyboardEvent;
-                break;
-              case "focusin":
-                reactEventType = "focus";
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "focusout":
-                reactEventType = "blur";
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "beforeblur":
-              case "afterblur":
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "click":
-                if (2 === nativeEvent.button) break a;
-              case "auxclick":
-              case "dblclick":
-              case "mousedown":
-              case "mousemove":
-              case "mouseup":
-              case "mouseout":
-              case "mouseover":
-              case "contextmenu":
-                SyntheticEventCtor = SyntheticMouseEvent;
-                break;
-              case "drag":
-              case "dragend":
-              case "dragenter":
-              case "dragexit":
-              case "dragleave":
-              case "dragover":
-              case "dragstart":
-              case "drop":
-                SyntheticEventCtor = SyntheticDragEvent;
-                break;
-              case "touchcancel":
-              case "touchend":
-              case "touchmove":
-              case "touchstart":
-                SyntheticEventCtor = SyntheticTouchEvent;
-                break;
-              case ANIMATION_END:
-              case ANIMATION_ITERATION:
-              case ANIMATION_START:
-                SyntheticEventCtor = SyntheticAnimationEvent;
-                break;
-              case TRANSITION_END:
-                SyntheticEventCtor = SyntheticTransitionEvent;
-                break;
-              case "scroll":
-              case "scrollend":
-                SyntheticEventCtor = SyntheticUIEvent;
-                break;
-              case "wheel":
-                SyntheticEventCtor = SyntheticWheelEvent;
-                break;
-              case "copy":
-              case "cut":
-              case "paste":
-                SyntheticEventCtor = SyntheticClipboardEvent;
-                break;
-              case "gotpointercapture":
-              case "lostpointercapture":
-              case "pointercancel":
-              case "pointerdown":
-              case "pointermove":
-              case "pointerout":
-              case "pointerover":
-              case "pointerup":
-                SyntheticEventCtor = SyntheticPointerEvent;
-                break;
-              case "toggle":
-              case "beforetoggle":
-                SyntheticEventCtor = SyntheticToggleEvent;
-            }
-            var inCapturePhase = 0 !== (eventSystemFlags & 4),
-              accumulateTargetOnly =
-                !inCapturePhase &&
-                ("scroll" === domEventName || "scrollend" === domEventName),
-              reactEventName = inCapturePhase
-                ? null !== reactName
-                  ? reactName + "Capture"
-                  : null
-                : reactName;
-            inCapturePhase = [];
-            for (
-              var instance = targetInst, lastHostComponent;
-              null !== instance;
-
-            ) {
-              var _instance2 = instance;
-              lastHostComponent = _instance2.stateNode;
-              _instance2 = _instance2.tag;
-              (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||
-                null === lastHostComponent ||
-                null === reactEventName ||
-                ((_instance2 = getListener(instance, reactEventName)),
-                null != _instance2 &&
-                  inCapturePhase.push(
-                    createDispatchListener(
-                      instance,
-                      _instance2,
-                      lastHostComponent
-                    )
-                  ));
-              if (accumulateTargetOnly) break;
-              instance = instance.return;
-            }
-            0 < inCapturePhase.length &&
-              ((reactName = new SyntheticEventCtor(
-                reactName,
-                reactEventType,
-                null,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              dispatchQueue.push({
-                event: reactName,
-                listeners: inCapturePhase
-              }));
-          }
-        }
-        if (0 === (eventSystemFlags & 7)) {
-          a: {
-            reactName =
-              "mouseover" === domEventName || "pointerover" === domEventName;
-            SyntheticEventCtor =
-              "mouseout" === domEventName || "pointerout" === domEventName;
-            if (
-              reactName &&
-              nativeEvent !== currentReplayingEvent &&
-              (reactEventType =
-                nativeEvent.relatedTarget || nativeEvent.fromElement) &&
-              (getClosestInstanceFromNode(reactEventType) ||
-                reactEventType[internalContainerInstanceKey])
-            )
-              break a;
-            if (SyntheticEventCtor || reactName) {
-              reactName =
-                nativeEventTarget.window === nativeEventTarget
-                  ? nativeEventTarget
-                  : (reactName = nativeEventTarget.ownerDocument)
-                    ? reactName.defaultView || reactName.parentWindow
-                    : window;
-              if (SyntheticEventCtor) {
-                if (
-                  ((reactEventType =
-                    nativeEvent.relatedTarget || nativeEvent.toElement),
-                  (SyntheticEventCtor = targetInst),
-                  (reactEventType = reactEventType
-                    ? getClosestInstanceFromNode(reactEventType)
-                    : null),
-                  null !== reactEventType &&
-                    ((accumulateTargetOnly =
-                      getNearestMountedFiber(reactEventType)),
-                    (inCapturePhase = reactEventType.tag),
-                    reactEventType !== accumulateTargetOnly ||
-                      (5 !== inCapturePhase &&
-                        27 !== inCapturePhase &&
-                        6 !== inCapturePhase)))
-                )
-                  reactEventType = null;
-              } else (SyntheticEventCtor = null), (reactEventType = targetInst);
-              if (SyntheticEventCtor !== reactEventType) {
-                inCapturePhase = SyntheticMouseEvent;
-                _instance2 = "onMouseLeave";
-                reactEventName = "onMouseEnter";
-                instance = "mouse";
-                if (
-                  "pointerout" === domEventName ||
-                  "pointerover" === domEventName
-                )
-                  (inCapturePhase = SyntheticPointerEvent),
-                    (_instance2 = "onPointerLeave"),
-                    (reactEventName = "onPointerEnter"),
-                    (instance = "pointer");
-                accumulateTargetOnly =
-                  null == SyntheticEventCtor
-                    ? reactName
-                    : getNodeFromInstance(SyntheticEventCtor);
-                lastHostComponent =
-                  null == reactEventType
-                    ? reactName
-                    : getNodeFromInstance(reactEventType);
-                reactName = new inCapturePhase(
-                  _instance2,
-                  instance + "leave",
-                  SyntheticEventCtor,
-                  nativeEvent,
-                  nativeEventTarget
-                );
-                reactName.target = accumulateTargetOnly;
-                reactName.relatedTarget = lastHostComponent;
-                _instance2 = null;
-                getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
-                  ((inCapturePhase = new inCapturePhase(
-                    reactEventName,
-                    instance + "enter",
-                    reactEventType,
-                    nativeEvent,
-                    nativeEventTarget
-                  )),
-                  (inCapturePhase.target = lastHostComponent),
-                  (inCapturePhase.relatedTarget = accumulateTargetOnly),
-                  (_instance2 = inCapturePhase));
-                accumulateTargetOnly = _instance2;
-                if (SyntheticEventCtor && reactEventType)
-                  b: {
-                    inCapturePhase = getParent;
-                    reactEventName = SyntheticEventCtor;
-                    instance = reactEventType;
-                    lastHostComponent = 0;
-                    for (
-                      _instance2 = reactEventName;
-                      _instance2;
-                      _instance2 = inCapturePhase(_instance2)
-                    )
-                      lastHostComponent++;
-                    _instance2 = 0;
-                    for (
-                      var tempB = instance;
-                      tempB;
-                      tempB = inCapturePhase(tempB)
-                    )
-                      _instance2++;
-                    for (; 0 < lastHostComponent - _instance2; )
-                      (reactEventName = inCapturePhase(reactEventName)),
-                        lastHostComponent--;
-                    for (; 0 < _instance2 - lastHostComponent; )
-                      (instance = inCapturePhase(instance)), _instance2--;
-                    for (; lastHostComponent--; ) {
-                      if (
-                        reactEventName === instance ||
-                        (null !== instance &&
-                          reactEventName === instance.alternate)
-                      ) {
-                        inCapturePhase = reactEventName;
-                        break b;
-                      }
-                      reactEventName = inCapturePhase(reactEventName);
-                      instance = inCapturePhase(instance);
-                    }
-                    inCapturePhase = null;
-                  }
-                else inCapturePhase = null;
-                null !== SyntheticEventCtor &&
-                  accumulateEnterLeaveListenersForEvent(
-                    dispatchQueue,
-                    reactName,
-                    SyntheticEventCtor,
-                    inCapturePhase,
-                    !1
-                  );
-                null !== reactEventType &&
-                  null !== accumulateTargetOnly &&
-                  accumulateEnterLeaveListenersForEvent(
-                    dispatchQueue,
-                    accumulateTargetOnly,
-                    reactEventType,
-                    inCapturePhase,
-                    !0
-                  );
-              }
-            }
-          }
-          a: {
-            reactName = targetInst ? getNodeFromInstance(targetInst) : window;
-            SyntheticEventCtor =
-              reactName.nodeName && reactName.nodeName.toLowerCase();
-            if (
-              "select" === SyntheticEventCtor ||
-              ("input" === SyntheticEventCtor && "file" === reactName.type)
-            )
-              var getTargetInstFunc = getTargetInstForChangeEvent;
-            else if (isTextInputElement(reactName))
-              if (isInputEventSupported)
-                getTargetInstFunc = getTargetInstForInputOrChangeEvent;
-              else {
-                getTargetInstFunc = getTargetInstForInputEventPolyfill;
-                var handleEventFunc = handleEventsForInputEventPolyfill;
-              }
-            else
-              (SyntheticEventCtor = reactName.nodeName),
-                !SyntheticEventCtor ||
-                "input" !== SyntheticEventCtor.toLowerCase() ||
-                ("checkbox" !== reactName.type && "radio" !== reactName.type)
-                  ? targetInst &&
-                    isCustomElement(targetInst.elementType) &&
-                    (getTargetInstFunc = getTargetInstForChangeEvent)
-                  : (getTargetInstFunc = getTargetInstForClickEvent);
-            if (
-              getTargetInstFunc &&
-              (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))
-            ) {
-              createAndAccumulateChangeEvent(
-                dispatchQueue,
-                getTargetInstFunc,
-                nativeEvent,
-                nativeEventTarget
-              );
-              break a;
-            }
-            handleEventFunc &&
-              handleEventFunc(domEventName, reactName, targetInst);
-            "focusout" === domEventName &&
-              targetInst &&
-              "number" === reactName.type &&
-              null != targetInst.memoizedProps.value &&
-              setDefaultValue(reactName, "number", reactName.value);
-          }
-          handleEventFunc = targetInst
-            ? getNodeFromInstance(targetInst)
-            : window;
-          switch (domEventName) {
-            case "focusin":
-              if (
-                isTextInputElement(handleEventFunc) ||
-                "true" === handleEventFunc.contentEditable
-              )
-                (activeElement = handleEventFunc),
-                  (activeElementInst = targetInst),
-                  (lastSelection = null);
-              break;
-            case "focusout":
-              lastSelection = activeElementInst = activeElement = null;
-              break;
-            case "mousedown":
-              mouseDown = !0;
-              break;
-            case "contextmenu":
-            case "mouseup":
-            case "dragend":
-              mouseDown = !1;
-              constructSelectEvent(
-                dispatchQueue,
-                nativeEvent,
-                nativeEventTarget
-              );
-              break;
-            case "selectionchange":
-              if (skipSelectionChangeEvent) break;
-            case "keydown":
-            case "keyup":
-              constructSelectEvent(
-                dispatchQueue,
-                nativeEvent,
-                nativeEventTarget
-              );
-          }
-          var fallbackData;
-          if (canUseCompositionEvent)
-            b: {
-              switch (domEventName) {
-                case "compositionstart":
-                  var eventType = "onCompositionStart";
-                  break b;
-                case "compositionend":
-                  eventType = "onCompositionEnd";
-                  break b;
-                case "compositionupdate":
-                  eventType = "onCompositionUpdate";
-                  break b;
-              }
-              eventType = void 0;
-            }
-          else
-            isComposing
-              ? isFallbackCompositionEnd(domEventName, nativeEvent) &&
-                (eventType = "onCompositionEnd")
-              : "keydown" === domEventName &&
-                nativeEvent.keyCode === START_KEYCODE &&
-                (eventType = "onCompositionStart");
-          eventType &&
-            (useFallbackCompositionData &&
-              "ko" !== nativeEvent.locale &&
-              (isComposing || "onCompositionStart" !== eventType
-                ? "onCompositionEnd" === eventType &&
-                  isComposing &&
-                  (fallbackData = getData())
-                : ((root = nativeEventTarget),
-                  (startText = "value" in root ? root.value : root.textContent),
-                  (isComposing = !0))),
-            (handleEventFunc = accumulateTwoPhaseListeners(
-              targetInst,
-              eventType
-            )),
-            0 < handleEventFunc.length &&
-              ((eventType = new SyntheticCompositionEvent(
-                eventType,
-                domEventName,
-                null,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              dispatchQueue.push({
-                event: eventType,
-                listeners: handleEventFunc
-              }),
-              fallbackData
-                ? (eventType.data = fallbackData)
-                : ((fallbackData = getDataFromCustomEvent(nativeEvent)),
-                  null !== fallbackData && (eventType.data = fallbackData))));
-          if (
-            (fallbackData = canUseTextInputEvent
-              ? getNativeBeforeInputChars(domEventName, nativeEvent)
-              : getFallbackBeforeInputChars(domEventName, nativeEvent))
-          )
-            (eventType = accumulateTwoPhaseListeners(
-              targetInst,
-              "onBeforeInput"
-            )),
-              0 < eventType.length &&
-                ((handleEventFunc = new SyntheticInputEvent(
-                  "onBeforeInput",
-                  "beforeinput",
-                  null,
-                  nativeEvent,
-                  nativeEventTarget
-                )),
-                dispatchQueue.push({
-                  event: handleEventFunc,
-                  listeners: eventType
-                }),
-                (handleEventFunc.data = fallbackData));
-          extractEvents$1(
-            dispatchQueue,
-            domEventName,
-            targetInst,
-            nativeEvent,
-            nativeEventTarget
-          );
-        }
-        processDispatchQueue(dispatchQueue, eventSystemFlags);
-      });
-    }
-    function createDispatchListener(instance, listener, currentTarget) {
-      return {
-        instance: instance,
-        listener: listener,
-        currentTarget: currentTarget
-      };
-    }
-    function accumulateTwoPhaseListeners(targetFiber, reactName) {
-      for (
-        var captureName = reactName + "Capture", listeners = [];
-        null !== targetFiber;
-
-      ) {
-        var _instance3 = targetFiber,
-          stateNode = _instance3.stateNode;
-        _instance3 = _instance3.tag;
-        (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||
-          null === stateNode ||
-          ((_instance3 = getListener(targetFiber, captureName)),
-          null != _instance3 &&
-            listeners.unshift(
-              createDispatchListener(targetFiber, _instance3, stateNode)
-            ),
-          (_instance3 = getListener(targetFiber, reactName)),
-          null != _instance3 &&
-            listeners.push(
-              createDispatchListener(targetFiber, _instance3, stateNode)
-            ));
-        if (3 === targetFiber.tag) return listeners;
-        targetFiber = targetFiber.return;
-      }
-      return [];
-    }
-    function getParent(inst) {
-      if (null === inst) return null;
-      do inst = inst.return;
-      while (inst && 5 !== inst.tag && 27 !== inst.tag);
-      return inst ? inst : null;
-    }
-    function accumulateEnterLeaveListenersForEvent(
-      dispatchQueue,
-      event,
-      target,
-      common,
-      inCapturePhase
-    ) {
-      for (
-        var registrationName = event._reactName, listeners = [];
-        null !== target && target !== common;
-
-      ) {
-        var _instance4 = target,
-          alternate = _instance4.alternate,
-          stateNode = _instance4.stateNode;
-        _instance4 = _instance4.tag;
-        if (null !== alternate && alternate === common) break;
-        (5 !== _instance4 && 26 !== _instance4 && 27 !== _instance4) ||
-          null === stateNode ||
-          ((alternate = stateNode),
-          inCapturePhase
-            ? ((stateNode = getListener(target, registrationName)),
-              null != stateNode &&
-                listeners.unshift(
-                  createDispatchListener(target, stateNode, alternate)
-                ))
-            : inCapturePhase ||
-              ((stateNode = getListener(target, registrationName)),
-              null != stateNode &&
-                listeners.push(
-                  createDispatchListener(target, stateNode, alternate)
-                )));
-        target = target.return;
-      }
-      0 !== listeners.length &&
-        dispatchQueue.push({ event: event, listeners: listeners });
-    }
-    function validatePropertiesInDevelopment(type, props) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      var eventRegistry = {
-        registrationNameDependencies: registrationNameDependencies,
-        possibleRegistrationNames: possibleRegistrationNames
-      };
-      isCustomElement(type) ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, eventRegistry);
-      props.contentEditable &&
-        !props.suppressContentEditableWarning &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-    }
-    function warnForPropDifference(
-      propName,
-      serverValue,
-      clientValue,
-      serverDifferences
-    ) {
-      serverValue !== clientValue &&
-        ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
-        normalizeMarkupForTextOrAttribute(serverValue) !== clientValue &&
-          (serverDifferences[propName] = serverValue));
-    }
-    function warnForExtraAttributes(
-      domElement,
-      attributeNames,
-      serverDifferences
-    ) {
-      attributeNames.forEach(function (attributeName) {
-        serverDifferences[getPropNameFromAttributeName(attributeName)] =
-          "style" === attributeName
-            ? getStylesObjectFromElement(domElement)
-            : domElement.getAttribute(attributeName);
-      });
-    }
-    function warnForInvalidEventListener(registrationName, listener) {
-      !1 === listener
-        ? console.error(
-            "Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.",
-            registrationName,
-            registrationName,
-            registrationName
-          )
-        : console.error(
-            "Expected `%s` listener to be a function, instead got a value of `%s` type.",
-            registrationName,
-            typeof listener
-          );
-    }
-    function normalizeHTML(parent, html) {
-      parent =
-        parent.namespaceURI === MATH_NAMESPACE ||
-        parent.namespaceURI === SVG_NAMESPACE
-          ? parent.ownerDocument.createElementNS(
-              parent.namespaceURI,
-              parent.tagName
-            )
-          : parent.ownerDocument.createElement(parent.tagName);
-      parent.innerHTML = html;
-      return parent.innerHTML;
-    }
-    function normalizeMarkupForTextOrAttribute(markup) {
-      willCoercionThrow(markup) &&
-        (console.error(
-          "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-          typeName(markup)
-        ),
-        testStringCoercion(markup));
-      return ("string" === typeof markup ? markup : "" + markup)
-        .replace(NORMALIZE_NEWLINES_REGEX, "\n")
-        .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, "");
-    }
-    function checkForUnmatchedText(serverText, clientText) {
-      clientText = normalizeMarkupForTextOrAttribute(clientText);
-      return normalizeMarkupForTextOrAttribute(serverText) === clientText
-        ? !0
-        : !1;
-    }
-    function setProp(domElement, tag, key, value, props, prevValue) {
-      switch (key) {
-        case "children":
-          if ("string" === typeof value)
-            validateTextNesting(value, tag, !1),
-              "body" === tag ||
-                ("textarea" === tag && "" === value) ||
-                setTextContent(domElement, value);
-          else if ("number" === typeof value || "bigint" === typeof value)
-            validateTextNesting("" + value, tag, !1),
-              "body" !== tag && setTextContent(domElement, "" + value);
-          break;
-        case "className":
-          setValueForKnownAttribute(domElement, "class", value);
-          break;
-        case "tabIndex":
-          setValueForKnownAttribute(domElement, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          setValueForKnownAttribute(domElement, key, value);
-          break;
-        case "style":
-          setValueForStyles(domElement, value, prevValue);
-          break;
-        case "data":
-          if ("object" !== tag) {
-            setValueForKnownAttribute(domElement, "data", value);
-            break;
-          }
-        case "src":
-        case "href":
-          if ("" === value && ("a" !== tag || "href" !== key)) {
-            "src" === key
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  key,
-                  key
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  key,
-                  key
-                );
-            domElement.removeAttribute(key);
-            break;
-          }
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          ) {
-            domElement.removeAttribute(key);
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          value = sanitizeURL("" + value);
-          domElement.setAttribute(key, value);
-          break;
-        case "action":
-        case "formAction":
-          null != value &&
-            ("form" === tag
-              ? "formAction" === key
-                ? console.error(
-                    "You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>."
-                  )
-                : "function" === typeof value &&
-                  ((null == props.encType && null == props.method) ||
-                    didWarnFormActionMethod ||
-                    ((didWarnFormActionMethod = !0),
-                    console.error(
-                      "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-                    )),
-                  null == props.target ||
-                    didWarnFormActionTarget ||
-                    ((didWarnFormActionTarget = !0),
-                    console.error(
-                      "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-                    )))
-              : "input" === tag || "button" === tag
-                ? "action" === key
-                  ? console.error(
-                      "You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>."
-                    )
-                  : "input" !== tag ||
-                      "submit" === props.type ||
-                      "image" === props.type ||
-                      didWarnFormActionType
-                    ? "button" !== tag ||
-                      null == props.type ||
-                      "submit" === props.type ||
-                      didWarnFormActionType
-                      ? "function" === typeof value &&
-                        (null == props.name ||
-                          didWarnFormActionName ||
-                          ((didWarnFormActionName = !0),
-                          console.error(
-                            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-                          )),
-                        (null == props.formEncType &&
-                          null == props.formMethod) ||
-                          didWarnFormActionMethod ||
-                          ((didWarnFormActionMethod = !0),
-                          console.error(
-                            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-                          )),
-                        null == props.formTarget ||
-                          didWarnFormActionTarget ||
-                          ((didWarnFormActionTarget = !0),
-                          console.error(
-                            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-                          )))
-                      : ((didWarnFormActionType = !0),
-                        console.error(
-                          'A button can only specify a formAction along with type="submit" or no type.'
-                        ))
-                    : ((didWarnFormActionType = !0),
-                      console.error(
-                        'An input can only specify a formAction along with type="submit" or type="image".'
-                      ))
-                : "action" === key
-                  ? console.error(
-                      "You can only pass the action prop to <form>."
-                    )
-                  : console.error(
-                      "You can only pass the formAction prop to <input> or <button>."
-                    ));
-          if ("function" === typeof value) {
-            domElement.setAttribute(
-              key,
-              "javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"
-            );
-            break;
-          } else
-            "function" === typeof prevValue &&
-              ("formAction" === key
-                ? ("input" !== tag &&
-                    setProp(domElement, tag, "name", props.name, props, null),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formEncType",
-                    props.formEncType,
-                    props,
-                    null
-                  ),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formMethod",
-                    props.formMethod,
-                    props,
-                    null
-                  ),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formTarget",
-                    props.formTarget,
-                    props,
-                    null
-                  ))
-                : (setProp(
-                    domElement,
-                    tag,
-                    "encType",
-                    props.encType,
-                    props,
-                    null
-                  ),
-                  setProp(domElement, tag, "method", props.method, props, null),
-                  setProp(
-                    domElement,
-                    tag,
-                    "target",
-                    props.target,
-                    props,
-                    null
-                  )));
-          if (
-            null == value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          ) {
-            domElement.removeAttribute(key);
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          value = sanitizeURL("" + value);
-          domElement.setAttribute(key, value);
-          break;
-        case "onClick":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            (domElement.onclick = noop$1));
-          break;
-        case "onScroll":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scroll", domElement));
-          break;
-        case "onScrollEnd":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scrollend", domElement));
-          break;
-        case "dangerouslySetInnerHTML":
-          if (null != value) {
-            if ("object" !== typeof value || !("__html" in value))
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            key = value.__html;
-            if (null != key) {
-              if (null != props.children)
-                throw Error(
-                  "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-                );
-              domElement.innerHTML = key;
-            }
-          }
-          break;
-        case "multiple":
-          domElement.multiple =
-            value && "function" !== typeof value && "symbol" !== typeof value;
-          break;
-        case "muted":
-          domElement.muted =
-            value && "function" !== typeof value && "symbol" !== typeof value;
-          break;
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          break;
-        case "autoFocus":
-          break;
-        case "xlinkHref":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "boolean" === typeof value ||
-            "symbol" === typeof value
-          ) {
-            domElement.removeAttribute("xlink:href");
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          key = sanitizeURL("" + value);
-          domElement.setAttributeNS(xlinkNamespace, "xlink:href", key);
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          null != value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value
-            ? (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, "" + value))
-            : domElement.removeAttribute(key);
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[key] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[key] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              key
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value && "function" !== typeof value && "symbol" !== typeof value
-            ? domElement.setAttribute(key, "")
-            : domElement.removeAttribute(key);
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? domElement.setAttribute(key, "")
-            : !1 !== value &&
-                null != value &&
-                "function" !== typeof value &&
-                "symbol" !== typeof value
-              ? (checkAttributeStringCoercion(value, key),
-                domElement.setAttribute(key, value))
-              : domElement.removeAttribute(key);
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          null != value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          !isNaN(value) &&
-          1 <= value
-            ? (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, value))
-            : domElement.removeAttribute(key);
-          break;
-        case "rowSpan":
-        case "start":
-          null == value ||
-          "function" === typeof value ||
-          "symbol" === typeof value ||
-          isNaN(value)
-            ? domElement.removeAttribute(key)
-            : (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, value));
-          break;
-        case "popover":
-          listenToNonDelegatedEvent("beforetoggle", domElement);
-          listenToNonDelegatedEvent("toggle", domElement);
-          setValueForAttribute(domElement, "popover", value);
-          break;
-        case "xlinkActuate":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:actuate",
-            value
-          );
-          break;
-        case "xlinkArcrole":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:arcrole",
-            value
-          );
-          break;
-        case "xlinkRole":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:role",
-            value
-          );
-          break;
-        case "xlinkShow":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:show",
-            value
-          );
-          break;
-        case "xlinkTitle":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:title",
-            value
-          );
-          break;
-        case "xlinkType":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:type",
-            value
-          );
-          break;
-        case "xmlBase":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:base",
-            value
-          );
-          break;
-        case "xmlLang":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:lang",
-            value
-          );
-          break;
-        case "xmlSpace":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:space",
-            value
-          );
-          break;
-        case "is":
-          null != prevValue &&
-            console.error(
-              'Cannot update the "is" prop after it has been initialized.'
-            );
-          setValueForAttribute(domElement, "is", value);
-          break;
-        case "innerText":
-        case "textContent":
-          break;
-        case "popoverTarget":
-          didWarnPopoverTargetObject ||
-            null == value ||
-            "object" !== typeof value ||
-            ((didWarnPopoverTargetObject = !0),
-            console.error(
-              "The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.",
-              value
-            ));
-        default:
-          !(2 < key.length) ||
-          ("o" !== key[0] && "O" !== key[0]) ||
-          ("n" !== key[1] && "N" !== key[1])
-            ? ((key = getAttributeAlias(key)),
-              setValueForAttribute(domElement, key, value))
-            : registrationNameDependencies.hasOwnProperty(key) &&
-              null != value &&
-              "function" !== typeof value &&
-              warnForInvalidEventListener(key, value);
-      }
-    }
-    function setPropOnCustomElement(
-      domElement,
-      tag,
-      key,
-      value,
-      props,
-      prevValue
-    ) {
-      switch (key) {
-        case "style":
-          setValueForStyles(domElement, value, prevValue);
-          break;
-        case "dangerouslySetInnerHTML":
-          if (null != value) {
-            if ("object" !== typeof value || !("__html" in value))
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            key = value.__html;
-            if (null != key) {
-              if (null != props.children)
-                throw Error(
-                  "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-                );
-              domElement.innerHTML = key;
-            }
-          }
-          break;
-        case "children":
-          "string" === typeof value
-            ? setTextContent(domElement, value)
-            : ("number" === typeof value || "bigint" === typeof value) &&
-              setTextContent(domElement, "" + value);
-          break;
-        case "onScroll":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scroll", domElement));
-          break;
-        case "onScrollEnd":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scrollend", domElement));
-          break;
-        case "onClick":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            (domElement.onclick = noop$1));
-          break;
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "innerHTML":
-        case "ref":
-          break;
-        case "innerText":
-        case "textContent":
-          break;
-        default:
-          if (registrationNameDependencies.hasOwnProperty(key))
-            null != value &&
-              "function" !== typeof value &&
-              warnForInvalidEventListener(key, value);
-          else
-            a: {
-              if (
-                "o" === key[0] &&
-                "n" === key[1] &&
-                ((props = key.endsWith("Capture")),
-                (tag = key.slice(2, props ? key.length - 7 : void 0)),
-                (prevValue = domElement[internalPropsKey] || null),
-                (prevValue = null != prevValue ? prevValue[key] : null),
-                "function" === typeof prevValue &&
-                  domElement.removeEventListener(tag, prevValue, props),
-                "function" === typeof value)
-              ) {
-                "function" !== typeof prevValue &&
-                  null !== prevValue &&
-                  (key in domElement
-                    ? (domElement[key] = null)
-                    : domElement.hasAttribute(key) &&
-                      domElement.removeAttribute(key));
-                domElement.addEventListener(tag, value, props);
-                break a;
-              }
-              key in domElement
-                ? (domElement[key] = value)
-                : !0 === value
-                  ? domElement.setAttribute(key, "")
-                  : setValueForAttribute(domElement, key, value);
-            }
-      }
-    }
-    function setInitialProperties(domElement, tag, props) {
-      validatePropertiesInDevelopment(tag, props);
-      switch (tag) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-        case "a":
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "img":
-          listenToNonDelegatedEvent("error", domElement);
-          listenToNonDelegatedEvent("load", domElement);
-          var hasSrc = !1,
-            hasSrcSet = !1,
-            propKey;
-          for (propKey in props)
-            if (props.hasOwnProperty(propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "src":
-                    hasSrc = !0;
-                    break;
-                  case "srcSet":
-                    hasSrcSet = !0;
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    setProp(domElement, tag, propKey, propValue, props, null);
-                }
-            }
-          hasSrcSet &&
-            setProp(domElement, tag, "srcSet", props.srcSet, props, null);
-          hasSrc && setProp(domElement, tag, "src", props.src, props, null);
-          return;
-        case "input":
-          checkControlledValueProps("input", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          var defaultValue = (propKey = propValue = hasSrcSet = null),
-            checked = null,
-            defaultChecked = null;
-          for (hasSrc in props)
-            if (props.hasOwnProperty(hasSrc)) {
-              var _propValue = props[hasSrc];
-              if (null != _propValue)
-                switch (hasSrc) {
-                  case "name":
-                    hasSrcSet = _propValue;
-                    break;
-                  case "type":
-                    propValue = _propValue;
-                    break;
-                  case "checked":
-                    checked = _propValue;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = _propValue;
-                    break;
-                  case "value":
-                    propKey = _propValue;
-                    break;
-                  case "defaultValue":
-                    defaultValue = _propValue;
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    if (null != _propValue)
-                      throw Error(
-                        tag +
-                          " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                      );
-                    break;
-                  default:
-                    setProp(domElement, tag, hasSrc, _propValue, props, null);
-                }
-            }
-          validateInputProps(domElement, props);
-          initInput(
-            domElement,
-            propKey,
-            defaultValue,
-            checked,
-            defaultChecked,
-            propValue,
-            hasSrcSet,
-            !1
-          );
-          return;
-        case "select":
-          checkControlledValueProps("select", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          hasSrc = propValue = propKey = null;
-          for (hasSrcSet in props)
-            if (
-              props.hasOwnProperty(hasSrcSet) &&
-              ((defaultValue = props[hasSrcSet]), null != defaultValue)
-            )
-              switch (hasSrcSet) {
-                case "value":
-                  propKey = defaultValue;
-                  break;
-                case "defaultValue":
-                  propValue = defaultValue;
-                  break;
-                case "multiple":
-                  hasSrc = defaultValue;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    hasSrcSet,
-                    defaultValue,
-                    props,
-                    null
-                  );
-              }
-          validateSelectProps(domElement, props);
-          tag = propKey;
-          props = propValue;
-          domElement.multiple = !!hasSrc;
-          null != tag
-            ? updateOptions(domElement, !!hasSrc, tag, !1)
-            : null != props && updateOptions(domElement, !!hasSrc, props, !0);
-          return;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          propKey = hasSrcSet = hasSrc = null;
-          for (propValue in props)
-            if (
-              props.hasOwnProperty(propValue) &&
-              ((defaultValue = props[propValue]), null != defaultValue)
-            )
-              switch (propValue) {
-                case "value":
-                  hasSrc = defaultValue;
-                  break;
-                case "defaultValue":
-                  hasSrcSet = defaultValue;
-                  break;
-                case "children":
-                  propKey = defaultValue;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  if (null != defaultValue)
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    propValue,
-                    defaultValue,
-                    props,
-                    null
-                  );
-              }
-          validateTextareaProps(domElement, props);
-          initTextarea(domElement, hasSrc, hasSrcSet, propKey);
-          return;
-        case "option":
-          validateOptionProps(domElement, props);
-          for (checked in props)
-            if (
-              props.hasOwnProperty(checked) &&
-              ((hasSrc = props[checked]), null != hasSrc)
-            )
-              switch (checked) {
-                case "selected":
-                  domElement.selected =
-                    hasSrc &&
-                    "function" !== typeof hasSrc &&
-                    "symbol" !== typeof hasSrc;
-                  break;
-                default:
-                  setProp(domElement, tag, checked, hasSrc, props, null);
-              }
-          return;
-        case "dialog":
-          listenToNonDelegatedEvent("beforetoggle", domElement);
-          listenToNonDelegatedEvent("toggle", domElement);
-          listenToNonDelegatedEvent("cancel", domElement);
-          listenToNonDelegatedEvent("close", domElement);
-          break;
-        case "iframe":
-        case "object":
-          listenToNonDelegatedEvent("load", domElement);
-          break;
-        case "video":
-        case "audio":
-          for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)
-            listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);
-          break;
-        case "image":
-          listenToNonDelegatedEvent("error", domElement);
-          listenToNonDelegatedEvent("load", domElement);
-          break;
-        case "details":
-          listenToNonDelegatedEvent("toggle", domElement);
-          break;
-        case "embed":
-        case "source":
-        case "link":
-          listenToNonDelegatedEvent("error", domElement),
-            listenToNonDelegatedEvent("load", domElement);
-        case "area":
-        case "base":
-        case "br":
-        case "col":
-        case "hr":
-        case "keygen":
-        case "meta":
-        case "param":
-        case "track":
-        case "wbr":
-        case "menuitem":
-          for (defaultChecked in props)
-            if (
-              props.hasOwnProperty(defaultChecked) &&
-              ((hasSrc = props[defaultChecked]), null != hasSrc)
-            )
-              switch (defaultChecked) {
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  throw Error(
-                    tag +
-                      " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                  );
-                default:
-                  setProp(domElement, tag, defaultChecked, hasSrc, props, null);
-              }
-          return;
-        default:
-          if (isCustomElement(tag)) {
-            for (_propValue in props)
-              props.hasOwnProperty(_propValue) &&
-                ((hasSrc = props[_propValue]),
-                void 0 !== hasSrc &&
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    _propValue,
-                    hasSrc,
-                    props,
-                    void 0
-                  ));
-            return;
-          }
-      }
-      for (defaultValue in props)
-        props.hasOwnProperty(defaultValue) &&
-          ((hasSrc = props[defaultValue]),
-          null != hasSrc &&
-            setProp(domElement, tag, defaultValue, hasSrc, props, null));
-    }
-    function updateProperties(domElement, tag, lastProps, nextProps) {
-      validatePropertiesInDevelopment(tag, nextProps);
-      switch (tag) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-        case "a":
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "input":
-          var name = null,
-            type = null,
-            value = null,
-            defaultValue = null,
-            lastDefaultValue = null,
-            checked = null,
-            defaultChecked = null;
-          for (propKey in lastProps) {
-            var lastProp = lastProps[propKey];
-            if (lastProps.hasOwnProperty(propKey) && null != lastProp)
-              switch (propKey) {
-                case "checked":
-                  break;
-                case "value":
-                  break;
-                case "defaultValue":
-                  lastDefaultValue = lastProp;
-                default:
-                  nextProps.hasOwnProperty(propKey) ||
-                    setProp(
-                      domElement,
-                      tag,
-                      propKey,
-                      null,
-                      nextProps,
-                      lastProp
-                    );
-              }
-          }
-          for (var _propKey8 in nextProps) {
-            var propKey = nextProps[_propKey8];
-            lastProp = lastProps[_propKey8];
-            if (
-              nextProps.hasOwnProperty(_propKey8) &&
-              (null != propKey || null != lastProp)
-            )
-              switch (_propKey8) {
-                case "type":
-                  type = propKey;
-                  break;
-                case "name":
-                  name = propKey;
-                  break;
-                case "checked":
-                  checked = propKey;
-                  break;
-                case "defaultChecked":
-                  defaultChecked = propKey;
-                  break;
-                case "value":
-                  value = propKey;
-                  break;
-                case "defaultValue":
-                  defaultValue = propKey;
-                  break;
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  if (null != propKey)
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  break;
-                default:
-                  propKey !== lastProp &&
-                    setProp(
-                      domElement,
-                      tag,
-                      _propKey8,
-                      propKey,
-                      nextProps,
-                      lastProp
-                    );
-              }
-          }
-          tag =
-            "checkbox" === lastProps.type || "radio" === lastProps.type
-              ? null != lastProps.checked
-              : null != lastProps.value;
-          nextProps =
-            "checkbox" === nextProps.type || "radio" === nextProps.type
-              ? null != nextProps.checked
-              : null != nextProps.value;
-          tag ||
-            !nextProps ||
-            didWarnUncontrolledToControlled ||
-            (console.error(
-              "A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnUncontrolledToControlled = !0));
-          !tag ||
-            nextProps ||
-            didWarnControlledToUncontrolled ||
-            (console.error(
-              "A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnControlledToUncontrolled = !0));
-          updateInput(
-            domElement,
-            value,
-            defaultValue,
-            lastDefaultValue,
-            checked,
-            defaultChecked,
-            type,
-            name
-          );
-          return;
-        case "select":
-          propKey = value = defaultValue = _propKey8 = null;
-          for (type in lastProps)
-            if (
-              ((lastDefaultValue = lastProps[type]),
-              lastProps.hasOwnProperty(type) && null != lastDefaultValue)
-            )
-              switch (type) {
-                case "value":
-                  break;
-                case "multiple":
-                  propKey = lastDefaultValue;
-                default:
-                  nextProps.hasOwnProperty(type) ||
-                    setProp(
-                      domElement,
-                      tag,
-                      type,
-                      null,
-                      nextProps,
-                      lastDefaultValue
-                    );
-              }
-          for (name in nextProps)
-            if (
-              ((type = nextProps[name]),
-              (lastDefaultValue = lastProps[name]),
-              nextProps.hasOwnProperty(name) &&
-                (null != type || null != lastDefaultValue))
-            )
-              switch (name) {
-                case "value":
-                  _propKey8 = type;
-                  break;
-                case "defaultValue":
-                  defaultValue = type;
-                  break;
-                case "multiple":
-                  value = type;
-                default:
-                  type !== lastDefaultValue &&
-                    setProp(
-                      domElement,
-                      tag,
-                      name,
-                      type,
-                      nextProps,
-                      lastDefaultValue
-                    );
-              }
-          nextProps = defaultValue;
-          tag = value;
-          lastProps = propKey;
-          null != _propKey8
-            ? updateOptions(domElement, !!tag, _propKey8, !1)
-            : !!lastProps !== !!tag &&
-              (null != nextProps
-                ? updateOptions(domElement, !!tag, nextProps, !0)
-                : updateOptions(domElement, !!tag, tag ? [] : "", !1));
-          return;
-        case "textarea":
-          propKey = _propKey8 = null;
-          for (defaultValue in lastProps)
-            if (
-              ((name = lastProps[defaultValue]),
-              lastProps.hasOwnProperty(defaultValue) &&
-                null != name &&
-                !nextProps.hasOwnProperty(defaultValue))
-            )
-              switch (defaultValue) {
-                case "value":
-                  break;
-                case "children":
-                  break;
-                default:
-                  setProp(domElement, tag, defaultValue, null, nextProps, name);
-              }
-          for (value in nextProps)
-            if (
-              ((name = nextProps[value]),
-              (type = lastProps[value]),
-              nextProps.hasOwnProperty(value) && (null != name || null != type))
-            )
-              switch (value) {
-                case "value":
-                  _propKey8 = name;
-                  break;
-                case "defaultValue":
-                  propKey = name;
-                  break;
-                case "children":
-                  break;
-                case "dangerouslySetInnerHTML":
-                  if (null != name)
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  break;
-                default:
-                  name !== type &&
-                    setProp(domElement, tag, value, name, nextProps, type);
-              }
-          updateTextarea(domElement, _propKey8, propKey);
-          return;
-        case "option":
-          for (var _propKey13 in lastProps)
-            if (
-              ((_propKey8 = lastProps[_propKey13]),
-              lastProps.hasOwnProperty(_propKey13) &&
-                null != _propKey8 &&
-                !nextProps.hasOwnProperty(_propKey13))
-            )
-              switch (_propKey13) {
-                case "selected":
-                  domElement.selected = !1;
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    _propKey13,
-                    null,
-                    nextProps,
-                    _propKey8
-                  );
-              }
-          for (lastDefaultValue in nextProps)
-            if (
-              ((_propKey8 = nextProps[lastDefaultValue]),
-              (propKey = lastProps[lastDefaultValue]),
-              nextProps.hasOwnProperty(lastDefaultValue) &&
-                _propKey8 !== propKey &&
-                (null != _propKey8 || null != propKey))
-            )
-              switch (lastDefaultValue) {
-                case "selected":
-                  domElement.selected =
-                    _propKey8 &&
-                    "function" !== typeof _propKey8 &&
-                    "symbol" !== typeof _propKey8;
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    lastDefaultValue,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-              }
-          return;
-        case "img":
-        case "link":
-        case "area":
-        case "base":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "meta":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-        case "menuitem":
-          for (var _propKey15 in lastProps)
-            (_propKey8 = lastProps[_propKey15]),
-              lastProps.hasOwnProperty(_propKey15) &&
-                null != _propKey8 &&
-                !nextProps.hasOwnProperty(_propKey15) &&
-                setProp(
-                  domElement,
-                  tag,
-                  _propKey15,
-                  null,
-                  nextProps,
-                  _propKey8
-                );
-          for (checked in nextProps)
-            if (
-              ((_propKey8 = nextProps[checked]),
-              (propKey = lastProps[checked]),
-              nextProps.hasOwnProperty(checked) &&
-                _propKey8 !== propKey &&
-                (null != _propKey8 || null != propKey))
-            )
-              switch (checked) {
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  if (null != _propKey8)
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    checked,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-              }
-          return;
-        default:
-          if (isCustomElement(tag)) {
-            for (var _propKey17 in lastProps)
-              (_propKey8 = lastProps[_propKey17]),
-                lastProps.hasOwnProperty(_propKey17) &&
-                  void 0 !== _propKey8 &&
-                  !nextProps.hasOwnProperty(_propKey17) &&
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    _propKey17,
-                    void 0,
-                    nextProps,
-                    _propKey8
-                  );
-            for (defaultChecked in nextProps)
-              (_propKey8 = nextProps[defaultChecked]),
-                (propKey = lastProps[defaultChecked]),
-                !nextProps.hasOwnProperty(defaultChecked) ||
-                  _propKey8 === propKey ||
-                  (void 0 === _propKey8 && void 0 === propKey) ||
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    defaultChecked,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-            return;
-          }
-      }
-      for (var _propKey19 in lastProps)
-        (_propKey8 = lastProps[_propKey19]),
-          lastProps.hasOwnProperty(_propKey19) &&
-            null != _propKey8 &&
-            !nextProps.hasOwnProperty(_propKey19) &&
-            setProp(domElement, tag, _propKey19, null, nextProps, _propKey8);
-      for (lastProp in nextProps)
-        (_propKey8 = nextProps[lastProp]),
-          (propKey = lastProps[lastProp]),
-          !nextProps.hasOwnProperty(lastProp) ||
-            _propKey8 === propKey ||
-            (null == _propKey8 && null == propKey) ||
-            setProp(domElement, tag, lastProp, _propKey8, nextProps, propKey);
-    }
-    function getPropNameFromAttributeName(attrName) {
-      switch (attrName) {
-        case "class":
-          return "className";
-        case "for":
-          return "htmlFor";
-        default:
-          return attrName;
-      }
-    }
-    function getStylesObjectFromElement(domElement) {
-      var serverValueInObjectForm = {};
-      domElement = domElement.style;
-      for (var i = 0; i < domElement.length; i++) {
-        var styleName = domElement[i];
-        serverValueInObjectForm[styleName] =
-          domElement.getPropertyValue(styleName);
-      }
-      return serverValueInObjectForm;
-    }
-    function diffHydratedStyles(domElement, value$jscomp$0, serverDifferences) {
-      if (null != value$jscomp$0 && "object" !== typeof value$jscomp$0)
-        console.error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      else {
-        var clientValue;
-        var delimiter = (clientValue = ""),
-          styleName;
-        for (styleName in value$jscomp$0)
-          if (value$jscomp$0.hasOwnProperty(styleName)) {
-            var value = value$jscomp$0[styleName];
-            null != value &&
-              "boolean" !== typeof value &&
-              "" !== value &&
-              (0 === styleName.indexOf("--")
-                ? (checkCSSPropertyStringCoercion(value, styleName),
-                  (clientValue +=
-                    delimiter + styleName + ":" + ("" + value).trim()))
-                : "number" !== typeof value ||
-                    0 === value ||
-                    unitlessNumbers.has(styleName)
-                  ? (checkCSSPropertyStringCoercion(value, styleName),
-                    (clientValue +=
-                      delimiter +
-                      styleName
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern$1, "-ms-") +
-                      ":" +
-                      ("" + value).trim()))
-                  : (clientValue +=
-                      delimiter +
-                      styleName
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern$1, "-ms-") +
-                      ":" +
-                      value +
-                      "px"),
-              (delimiter = ";"));
-          }
-        clientValue = clientValue || null;
-        value$jscomp$0 = domElement.getAttribute("style");
-        value$jscomp$0 !== clientValue &&
-          ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
-          normalizeMarkupForTextOrAttribute(value$jscomp$0) !== clientValue &&
-            (serverDifferences.style = getStylesObjectFromElement(domElement)));
-      }
-    }
-    function hydrateAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, propKey),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateBooleanAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement) {
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            return;
-        }
-        if (!value) return;
-      } else
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            break;
-          default:
-            if (value) return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateBooleanishAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, attributeName),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateNumericAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-          default:
-            if (isNaN(value)) return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              !isNaN(value) &&
-              (checkAttributeStringCoercion(value, propKey),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateSanitizedAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, propKey),
-              (attributeName = sanitizeURL("" + value)),
-              domElement === attributeName)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function diffHydratedProperties(domElement, tag, props, hostContext) {
-      for (
-        var serverDifferences = {},
-          extraAttributes = new Set(),
-          attributes = domElement.attributes,
-          i = 0;
-        i < attributes.length;
-        i++
-      )
-        switch (attributes[i].name.toLowerCase()) {
-          case "value":
-            break;
-          case "checked":
-            break;
-          case "selected":
-            break;
-          default:
-            extraAttributes.add(attributes[i].name);
-        }
-      if (isCustomElement(tag))
-        for (var propKey in props) {
-          if (props.hasOwnProperty(propKey)) {
-            var value = props[propKey];
-            if (null != value)
-              if (registrationNameDependencies.hasOwnProperty(propKey))
-                "function" !== typeof value &&
-                  warnForInvalidEventListener(propKey, value);
-              else if (!0 !== props.suppressHydrationWarning)
-                switch (propKey) {
-                  case "children":
-                    ("string" !== typeof value && "number" !== typeof value) ||
-                      warnForPropDifference(
-                        "children",
-                        domElement.textContent,
-                        value,
-                        serverDifferences
-                      );
-                    continue;
-                  case "suppressContentEditableWarning":
-                  case "suppressHydrationWarning":
-                  case "defaultValue":
-                  case "defaultChecked":
-                  case "innerHTML":
-                  case "ref":
-                    continue;
-                  case "dangerouslySetInnerHTML":
-                    attributes = domElement.innerHTML;
-                    value = value ? value.__html : void 0;
-                    null != value &&
-                      ((value = normalizeHTML(domElement, value)),
-                      warnForPropDifference(
-                        propKey,
-                        attributes,
-                        value,
-                        serverDifferences
-                      ));
-                    continue;
-                  case "style":
-                    extraAttributes.delete(propKey);
-                    diffHydratedStyles(domElement, value, serverDifferences);
-                    continue;
-                  case "offsetParent":
-                  case "offsetTop":
-                  case "offsetLeft":
-                  case "offsetWidth":
-                  case "offsetHeight":
-                  case "isContentEditable":
-                  case "outerText":
-                  case "outerHTML":
-                    extraAttributes.delete(propKey.toLowerCase());
-                    console.error(
-                      "Assignment to read-only property will result in a no-op: `%s`",
-                      propKey
-                    );
-                    continue;
-                  case "className":
-                    extraAttributes.delete("class");
-                    attributes = getValueForAttributeOnCustomComponent(
-                      domElement,
-                      "class",
-                      value
-                    );
-                    warnForPropDifference(
-                      "className",
-                      attributes,
-                      value,
-                      serverDifferences
-                    );
-                    continue;
-                  default:
-                    hostContext.context === HostContextNamespaceNone &&
-                    "svg" !== tag &&
-                    "math" !== tag
-                      ? extraAttributes.delete(propKey.toLowerCase())
-                      : extraAttributes.delete(propKey),
-                      (attributes = getValueForAttributeOnCustomComponent(
-                        domElement,
-                        propKey,
-                        value
-                      )),
-                      warnForPropDifference(
-                        propKey,
-                        attributes,
-                        value,
-                        serverDifferences
-                      );
-                }
-          }
-        }
-      else
-        for (value in props)
-          if (
-            props.hasOwnProperty(value) &&
-            ((propKey = props[value]), null != propKey)
-          )
-            if (registrationNameDependencies.hasOwnProperty(value))
-              "function" !== typeof propKey &&
-                warnForInvalidEventListener(value, propKey);
-            else if (!0 !== props.suppressHydrationWarning)
-              switch (value) {
-                case "children":
-                  ("string" !== typeof propKey &&
-                    "number" !== typeof propKey) ||
-                    warnForPropDifference(
-                      "children",
-                      domElement.textContent,
-                      propKey,
-                      serverDifferences
-                    );
-                  continue;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "value":
-                case "checked":
-                case "selected":
-                case "defaultValue":
-                case "defaultChecked":
-                case "innerHTML":
-                case "ref":
-                  continue;
-                case "dangerouslySetInnerHTML":
-                  attributes = domElement.innerHTML;
-                  propKey = propKey ? propKey.__html : void 0;
-                  null != propKey &&
-                    ((propKey = normalizeHTML(domElement, propKey)),
-                    attributes !== propKey &&
-                      (serverDifferences[value] = { __html: attributes }));
-                  continue;
-                case "className":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "class",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "tabIndex":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "tabindex",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "style":
-                  extraAttributes.delete(value);
-                  diffHydratedStyles(domElement, propKey, serverDifferences);
-                  continue;
-                case "multiple":
-                  extraAttributes.delete(value);
-                  warnForPropDifference(
-                    value,
-                    domElement.multiple,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "muted":
-                  extraAttributes.delete(value);
-                  warnForPropDifference(
-                    value,
-                    domElement.muted,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "autoFocus":
-                  extraAttributes.delete("autofocus");
-                  warnForPropDifference(
-                    value,
-                    domElement.autofocus,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "data":
-                  if ("object" !== tag) {
-                    extraAttributes.delete(value);
-                    attributes = domElement.getAttribute("data");
-                    warnForPropDifference(
-                      value,
-                      attributes,
-                      propKey,
-                      serverDifferences
-                    );
-                    continue;
-                  }
-                case "src":
-                case "href":
-                  if (
-                    !(
-                      "" !== propKey ||
-                      ("a" === tag && "href" === value) ||
-                      ("object" === tag && "data" === value)
-                    )
-                  ) {
-                    "src" === value
-                      ? console.error(
-                          'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                          value,
-                          value
-                        )
-                      : console.error(
-                          'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                          value,
-                          value
-                        );
-                    continue;
-                  }
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "action":
-                case "formAction":
-                  attributes = domElement.getAttribute(value);
-                  if ("function" === typeof propKey) {
-                    extraAttributes.delete(value.toLowerCase());
-                    "formAction" === value
-                      ? (extraAttributes.delete("name"),
-                        extraAttributes.delete("formenctype"),
-                        extraAttributes.delete("formmethod"),
-                        extraAttributes.delete("formtarget"))
-                      : (extraAttributes.delete("enctype"),
-                        extraAttributes.delete("method"),
-                        extraAttributes.delete("target"));
-                    continue;
-                  } else if (attributes === EXPECTED_FORM_ACTION_URL) {
-                    extraAttributes.delete(value.toLowerCase());
-                    warnForPropDifference(
-                      value,
-                      "function",
-                      propKey,
-                      serverDifferences
-                    );
-                    continue;
-                  }
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    value.toLowerCase(),
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkHref":
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    "xlink:href",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "contentEditable":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    "contenteditable",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "spellCheck":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    "spellcheck",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "draggable":
-                case "autoReverse":
-                case "externalResourcesRequired":
-                case "focusable":
-                case "preserveAlpha":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "allowFullScreen":
-                case "async":
-                case "autoPlay":
-                case "controls":
-                case "default":
-                case "defer":
-                case "disabled":
-                case "disablePictureInPicture":
-                case "disableRemotePlayback":
-                case "formNoValidate":
-                case "hidden":
-                case "loop":
-                case "noModule":
-                case "noValidate":
-                case "open":
-                case "playsInline":
-                case "readOnly":
-                case "required":
-                case "reversed":
-                case "scoped":
-                case "seamless":
-                case "itemScope":
-                  hydrateBooleanAttribute(
-                    domElement,
-                    value,
-                    value.toLowerCase(),
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "capture":
-                case "download":
-                  a: {
-                    i = domElement;
-                    var attributeName = (attributes = value),
-                      serverDifferences$jscomp$0 = serverDifferences;
-                    extraAttributes.delete(attributeName);
-                    i = i.getAttribute(attributeName);
-                    if (null === i)
-                      switch (typeof propKey) {
-                        case "undefined":
-                        case "function":
-                        case "symbol":
-                          break a;
-                        default:
-                          if (!1 === propKey) break a;
-                      }
-                    else if (null != propKey)
-                      switch (typeof propKey) {
-                        case "function":
-                        case "symbol":
-                          break;
-                        case "boolean":
-                          if (!0 === propKey && "" === i) break a;
-                          break;
-                        default:
-                          if (
-                            (checkAttributeStringCoercion(propKey, attributes),
-                            i === "" + propKey)
-                          )
-                            break a;
-                      }
-                    warnForPropDifference(
-                      attributes,
-                      i,
-                      propKey,
-                      serverDifferences$jscomp$0
-                    );
-                  }
-                  continue;
-                case "cols":
-                case "rows":
-                case "size":
-                case "span":
-                  a: {
-                    i = domElement;
-                    attributeName = attributes = value;
-                    serverDifferences$jscomp$0 = serverDifferences;
-                    extraAttributes.delete(attributeName);
-                    i = i.getAttribute(attributeName);
-                    if (null === i)
-                      switch (typeof propKey) {
-                        case "undefined":
-                        case "function":
-                        case "symbol":
-                        case "boolean":
-                          break a;
-                        default:
-                          if (isNaN(propKey) || 1 > propKey) break a;
-                      }
-                    else if (null != propKey)
-                      switch (typeof propKey) {
-                        case "function":
-                        case "symbol":
-                        case "boolean":
-                          break;
-                        default:
-                          if (
-                            !(isNaN(propKey) || 1 > propKey) &&
-                            (checkAttributeStringCoercion(propKey, attributes),
-                            i === "" + propKey)
-                          )
-                            break a;
-                      }
-                    warnForPropDifference(
-                      attributes,
-                      i,
-                      propKey,
-                      serverDifferences$jscomp$0
-                    );
-                  }
-                  continue;
-                case "rowSpan":
-                  hydrateNumericAttribute(
-                    domElement,
-                    value,
-                    "rowspan",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "start":
-                  hydrateNumericAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xHeight":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "x-height",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkActuate":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:actuate",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkArcrole":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:arcrole",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkRole":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:role",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkShow":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:show",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkTitle":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:title",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkType":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:type",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlBase":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:base",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlLang":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:lang",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlSpace":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:space",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "inert":
-                  "" !== propKey ||
-                    didWarnForNewBooleanPropsWithEmptyValue[value] ||
-                    ((didWarnForNewBooleanPropsWithEmptyValue[value] = !0),
-                    console.error(
-                      "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-                      value
-                    ));
-                  hydrateBooleanAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                default:
-                  if (
-                    !(2 < value.length) ||
-                    ("o" !== value[0] && "O" !== value[0]) ||
-                    ("n" !== value[1] && "N" !== value[1])
-                  ) {
-                    i = getAttributeAlias(value);
-                    attributes = !1;
-                    hostContext.context === HostContextNamespaceNone &&
-                    "svg" !== tag &&
-                    "math" !== tag
-                      ? extraAttributes.delete(i.toLowerCase())
-                      : ((attributeName = value.toLowerCase()),
-                        (attributeName = possibleStandardNames.hasOwnProperty(
-                          attributeName
-                        )
-                          ? possibleStandardNames[attributeName] || null
-                          : null),
-                        null !== attributeName &&
-                          attributeName !== value &&
-                          ((attributes = !0),
-                          extraAttributes.delete(attributeName)),
-                        extraAttributes.delete(i));
-                    a: if (
-                      ((attributeName = domElement),
-                      (serverDifferences$jscomp$0 = i),
-                      (i = propKey),
-                      isAttributeNameSafe(serverDifferences$jscomp$0))
-                    )
-                      if (
-                        attributeName.hasAttribute(serverDifferences$jscomp$0)
-                      )
-                        (attributeName = attributeName.getAttribute(
-                          serverDifferences$jscomp$0
-                        )),
-                          checkAttributeStringCoercion(
-                            i,
-                            serverDifferences$jscomp$0
-                          ),
-                          (i = attributeName === "" + i ? i : attributeName);
-                      else {
-                        switch (typeof i) {
-                          case "function":
-                          case "symbol":
-                            break a;
-                          case "boolean":
-                            if (
-                              ((attributeName = serverDifferences$jscomp$0
-                                .toLowerCase()
-                                .slice(0, 5)),
-                              "data-" !== attributeName &&
-                                "aria-" !== attributeName)
-                            )
-                              break a;
-                        }
-                        i = void 0 === i ? void 0 : null;
-                      }
-                    else i = void 0;
-                    attributes ||
-                      warnForPropDifference(
-                        value,
-                        i,
-                        propKey,
-                        serverDifferences
-                      );
-                  }
-              }
-      0 < extraAttributes.size &&
-        !0 !== props.suppressHydrationWarning &&
-        warnForExtraAttributes(domElement, extraAttributes, serverDifferences);
-      return 0 === Object.keys(serverDifferences).length
-        ? null
-        : serverDifferences;
-    }
-    function propNamesListJoin(list, combinator) {
-      switch (list.length) {
-        case 0:
-          return "";
-        case 1:
-          return list[0];
-        case 2:
-          return list[0] + " " + combinator + " " + list[1];
-        default:
-          return (
-            list.slice(0, -1).join(", ") +
-            ", " +
-            combinator +
-            " " +
-            list[list.length - 1]
-          );
-      }
-    }
-    function isLikelyStaticResource(initiatorType) {
-      switch (initiatorType) {
-        case "css":
-        case "script":
-        case "font":
-        case "img":
-        case "image":
-        case "input":
-        case "link":
-          return !0;
-        default:
-          return !1;
-      }
-    }
-    function estimateBandwidth() {
-      if ("function" === typeof performance.getEntriesByType) {
-        for (
-          var count = 0,
-            bits = 0,
-            resourceEntries = performance.getEntriesByType("resource"),
-            i = 0;
-          i < resourceEntries.length;
-          i++
-        ) {
-          var entry = resourceEntries[i],
-            transferSize = entry.transferSize,
-            initiatorType = entry.initiatorType,
-            duration = entry.duration;
-          if (
-            transferSize &&
-            duration &&
-            isLikelyStaticResource(initiatorType)
-          ) {
-            initiatorType = 0;
-            duration = entry.responseEnd;
-            for (i += 1; i < resourceEntries.length; i++) {
-              var overlapEntry = resourceEntries[i],
-                overlapStartTime = overlapEntry.startTime;
-              if (overlapStartTime > duration) break;
-              var overlapTransferSize = overlapEntry.transferSize,
-                overlapInitiatorType = overlapEntry.initiatorType;
-              overlapTransferSize &&
-                isLikelyStaticResource(overlapInitiatorType) &&
-                ((overlapEntry = overlapEntry.responseEnd),
-                (initiatorType +=
-                  overlapTransferSize *
-                  (overlapEntry < duration
-                    ? 1
-                    : (duration - overlapStartTime) /
-                      (overlapEntry - overlapStartTime))));
-            }
-            --i;
-            bits +=
-              (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);
-            count++;
-            if (10 < count) break;
-          }
-        }
-        if (0 < count) return bits / count / 1e6;
-      }
-      return navigator.connection &&
-        ((count = navigator.connection.downlink), "number" === typeof count)
-        ? count
-        : 5;
-    }
-    function getOwnerDocumentFromRootContainer(rootContainerElement) {
-      return 9 === rootContainerElement.nodeType
-        ? rootContainerElement
-        : rootContainerElement.ownerDocument;
-    }
-    function getOwnHostContext(namespaceURI) {
-      switch (namespaceURI) {
-        case SVG_NAMESPACE:
-          return HostContextNamespaceSvg;
-        case MATH_NAMESPACE:
-          return HostContextNamespaceMath;
-        default:
-          return HostContextNamespaceNone;
-      }
-    }
-    function getChildHostContextProd(parentNamespace, type) {
-      if (parentNamespace === HostContextNamespaceNone)
-        switch (type) {
-          case "svg":
-            return HostContextNamespaceSvg;
-          case "math":
-            return HostContextNamespaceMath;
-          default:
-            return HostContextNamespaceNone;
-        }
-      return parentNamespace === HostContextNamespaceSvg &&
-        "foreignObject" === type
-        ? HostContextNamespaceNone
-        : parentNamespace;
-    }
-    function shouldSetTextContent(type, props) {
-      return (
-        "textarea" === type ||
-        "noscript" === type ||
-        "string" === typeof props.children ||
-        "number" === typeof props.children ||
-        "bigint" === typeof props.children ||
-        ("object" === typeof props.dangerouslySetInnerHTML &&
-          null !== props.dangerouslySetInnerHTML &&
-          null != props.dangerouslySetInnerHTML.__html)
-      );
-    }
-    function shouldAttemptEagerTransition() {
-      var event = window.event;
-      if (event && "popstate" === event.type) {
-        if (event === currentPopstateTransitionEvent) return !1;
-        currentPopstateTransitionEvent = event;
-        return !0;
-      }
-      currentPopstateTransitionEvent = null;
-      return !1;
-    }
-    function resolveEventType() {
-      var event = window.event;
-      return event && event !== schedulerEvent ? event.type : null;
-    }
-    function resolveEventTimeStamp() {
-      var event = window.event;
-      return event && event !== schedulerEvent ? event.timeStamp : -1.1;
-    }
-    function handleErrorInNextTick(error) {
-      setTimeout(function () {
-        throw error;
-      });
-    }
-    function commitMount(domElement, type, newProps) {
-      switch (type) {
-        case "button":
-        case "input":
-        case "select":
-        case "textarea":
-          newProps.autoFocus && domElement.focus();
-          break;
-        case "img":
-          newProps.src
-            ? (domElement.src = newProps.src)
-            : newProps.srcSet && (domElement.srcset = newProps.srcSet);
-      }
-    }
-    function commitHydratedInstance() {}
-    function commitUpdate(domElement, type, oldProps, newProps) {
-      updateProperties(domElement, type, oldProps, newProps);
-      domElement[internalPropsKey] = newProps;
-    }
-    function resetTextContent(domElement) {
-      setTextContent(domElement, "");
-    }
-    function commitTextUpdate(textInstance, oldText, newText) {
-      textInstance.nodeValue = newText;
-    }
-    function warnForReactChildrenConflict(container) {
-      if (!container.__reactWarnedAboutChildrenConflict) {
-        var props = container[internalPropsKey] || null;
-        if (null !== props) {
-          var fiber = getInstanceFromNode(container);
-          null !== fiber &&
-            ("string" === typeof props.children ||
-            "number" === typeof props.children
-              ? ((container.__reactWarnedAboutChildrenConflict = !0),
-                runWithFiberInDEV(fiber, function () {
-                  console.error(
-                    'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "children" text content using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
-                  );
-                }))
-              : null != props.dangerouslySetInnerHTML &&
-                ((container.__reactWarnedAboutChildrenConflict = !0),
-                runWithFiberInDEV(fiber, function () {
-                  console.error(
-                    'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "dangerouslySetInnerHTML" using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
-                  );
-                })));
-        }
-      }
-    }
-    function isSingletonScope(type) {
-      return "head" === type;
-    }
-    function removeChild(parentInstance, child) {
-      parentInstance.removeChild(child);
-    }
-    function removeChildFromContainer(container, child) {
-      (9 === container.nodeType
-        ? container.body
-        : "HTML" === container.nodeName
-          ? container.ownerDocument.body
-          : container
-      ).removeChild(child);
-    }
-    function clearHydrationBoundary(parentInstance, hydrationInstance) {
-      var node = hydrationInstance,
-        depth = 0;
-      do {
-        var nextNode = node.nextSibling;
-        parentInstance.removeChild(node);
-        if (nextNode && 8 === nextNode.nodeType)
-          if (
-            ((node = nextNode.data),
-            node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA)
-          ) {
-            if (0 === depth) {
-              parentInstance.removeChild(nextNode);
-              retryIfBlockedOn(hydrationInstance);
-              return;
-            }
-            depth--;
-          } else if (
-            node === SUSPENSE_START_DATA ||
-            node === SUSPENSE_PENDING_START_DATA ||
-            node === SUSPENSE_QUEUED_START_DATA ||
-            node === SUSPENSE_FALLBACK_START_DATA ||
-            node === ACTIVITY_START_DATA
-          )
-            depth++;
-          else if (node === PREAMBLE_CONTRIBUTION_HTML)
-            releaseSingletonInstance(
-              parentInstance.ownerDocument.documentElement
-            );
-          else if (node === PREAMBLE_CONTRIBUTION_HEAD) {
-            node = parentInstance.ownerDocument.head;
-            releaseSingletonInstance(node);
-            for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {
-              var nextNode$jscomp$0 = node$jscomp$0.nextSibling,
-                nodeName = node$jscomp$0.nodeName;
-              node$jscomp$0[internalHoistableMarker] ||
-                "SCRIPT" === nodeName ||
-                "STYLE" === nodeName ||
-                ("LINK" === nodeName &&
-                  "stylesheet" === node$jscomp$0.rel.toLowerCase()) ||
-                node.removeChild(node$jscomp$0);
-              node$jscomp$0 = nextNode$jscomp$0;
-            }
-          } else
-            node === PREAMBLE_CONTRIBUTION_BODY &&
-              releaseSingletonInstance(parentInstance.ownerDocument.body);
-        node = nextNode;
-      } while (node);
-      retryIfBlockedOn(hydrationInstance);
-    }
-    function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {
-      var node = suspenseInstance;
-      suspenseInstance = 0;
-      do {
-        var nextNode = node.nextSibling;
-        1 === node.nodeType
-          ? isHidden
-            ? ((node._stashedDisplay = node.style.display),
-              (node.style.display = "none"))
-            : ((node.style.display = node._stashedDisplay || ""),
-              "" === node.getAttribute("style") &&
-                node.removeAttribute("style"))
-          : 3 === node.nodeType &&
-            (isHidden
-              ? ((node._stashedText = node.nodeValue), (node.nodeValue = ""))
-              : (node.nodeValue = node._stashedText || ""));
-        if (nextNode && 8 === nextNode.nodeType)
-          if (((node = nextNode.data), node === SUSPENSE_END_DATA))
-            if (0 === suspenseInstance) break;
-            else suspenseInstance--;
-          else
-            (node !== SUSPENSE_START_DATA &&
-              node !== SUSPENSE_PENDING_START_DATA &&
-              node !== SUSPENSE_QUEUED_START_DATA &&
-              node !== SUSPENSE_FALLBACK_START_DATA) ||
-              suspenseInstance++;
-        node = nextNode;
-      } while (node);
-    }
-    function hideDehydratedBoundary(suspenseInstance) {
-      hideOrUnhideDehydratedBoundary(suspenseInstance, !0);
-    }
-    function hideInstance(instance) {
-      instance = instance.style;
-      "function" === typeof instance.setProperty
-        ? instance.setProperty("display", "none", "important")
-        : (instance.display = "none");
-    }
-    function hideTextInstance(textInstance) {
-      textInstance.nodeValue = "";
-    }
-    function unhideDehydratedBoundary(dehydratedInstance) {
-      hideOrUnhideDehydratedBoundary(dehydratedInstance, !1);
-    }
-    function unhideInstance(instance, props) {
-      props = props[STYLE];
-      props =
-        void 0 !== props && null !== props && props.hasOwnProperty("display")
-          ? props.display
-          : null;
-      instance.style.display =
-        null == props || "boolean" === typeof props ? "" : ("" + props).trim();
-    }
-    function unhideTextInstance(textInstance, text) {
-      textInstance.nodeValue = text;
-    }
-    function clearContainerSparingly(container) {
-      var nextNode = container.firstChild;
-      nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);
-      for (; nextNode; ) {
-        var node = nextNode;
-        nextNode = nextNode.nextSibling;
-        switch (node.nodeName) {
-          case "HTML":
-          case "HEAD":
-          case "BODY":
-            clearContainerSparingly(node);
-            detachDeletedInstance(node);
-            continue;
-          case "SCRIPT":
-          case "STYLE":
-            continue;
-          case "LINK":
-            if ("stylesheet" === node.rel.toLowerCase()) continue;
-        }
-        container.removeChild(node);
-      }
-    }
-    function canHydrateInstance(instance, type, props, inRootOrSingleton) {
-      for (; 1 === instance.nodeType; ) {
-        var anyProps = props;
-        if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
-          if (
-            !inRootOrSingleton &&
-            ("INPUT" !== instance.nodeName || "hidden" !== instance.type)
-          )
-            break;
-        } else if (!inRootOrSingleton)
-          if ("input" === type && "hidden" === instance.type) {
-            checkAttributeStringCoercion(anyProps.name, "name");
-            var name = null == anyProps.name ? null : "" + anyProps.name;
-            if (
-              "hidden" === anyProps.type &&
-              instance.getAttribute("name") === name
-            )
-              return instance;
-          } else return instance;
-        else if (!instance[internalHoistableMarker])
-          switch (type) {
-            case "meta":
-              if (!instance.hasAttribute("itemprop")) break;
-              return instance;
-            case "link":
-              name = instance.getAttribute("rel");
-              if (
-                "stylesheet" === name &&
-                instance.hasAttribute("data-precedence")
-              )
-                break;
-              else if (
-                name !== anyProps.rel ||
-                instance.getAttribute("href") !==
-                  (null == anyProps.href || "" === anyProps.href
-                    ? null
-                    : anyProps.href) ||
-                instance.getAttribute("crossorigin") !==
-                  (null == anyProps.crossOrigin
-                    ? null
-                    : anyProps.crossOrigin) ||
-                instance.getAttribute("title") !==
-                  (null == anyProps.title ? null : anyProps.title)
-              )
-                break;
-              return instance;
-            case "style":
-              if (instance.hasAttribute("data-precedence")) break;
-              return instance;
-            case "script":
-              name = instance.getAttribute("src");
-              if (
-                (name !== (null == anyProps.src ? null : anyProps.src) ||
-                  instance.getAttribute("type") !==
-                    (null == anyProps.type ? null : anyProps.type) ||
-                  instance.getAttribute("crossorigin") !==
-                    (null == anyProps.crossOrigin
-                      ? null
-                      : anyProps.crossOrigin)) &&
-                name &&
-                instance.hasAttribute("async") &&
-                !instance.hasAttribute("itemprop")
-              )
-                break;
-              return instance;
-            default:
-              return instance;
-          }
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) break;
-      }
-      return null;
-    }
-    function canHydrateTextInstance(instance, text, inRootOrSingleton) {
-      if ("" === text) return null;
-      for (; 3 !== instance.nodeType; ) {
-        if (
-          (1 !== instance.nodeType ||
-            "INPUT" !== instance.nodeName ||
-            "hidden" !== instance.type) &&
-          !inRootOrSingleton
-        )
-          return null;
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) return null;
-      }
-      return instance;
-    }
-    function canHydrateHydrationBoundary(instance, inRootOrSingleton) {
-      for (; 8 !== instance.nodeType; ) {
-        if (
-          (1 !== instance.nodeType ||
-            "INPUT" !== instance.nodeName ||
-            "hidden" !== instance.type) &&
-          !inRootOrSingleton
-        )
-          return null;
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) return null;
-      }
-      return instance;
-    }
-    function isSuspenseInstancePending(instance) {
-      return (
-        instance.data === SUSPENSE_PENDING_START_DATA ||
-        instance.data === SUSPENSE_QUEUED_START_DATA
-      );
-    }
-    function isSuspenseInstanceFallback(instance) {
-      return (
-        instance.data === SUSPENSE_FALLBACK_START_DATA ||
-        (instance.data === SUSPENSE_PENDING_START_DATA &&
-          instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING)
-      );
-    }
-    function registerSuspenseInstanceRetry(instance, callback) {
-      var ownerDocument = instance.ownerDocument;
-      if (instance.data === SUSPENSE_QUEUED_START_DATA)
-        instance._reactRetry = callback;
-      else if (
-        instance.data !== SUSPENSE_PENDING_START_DATA ||
-        ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING
-      )
-        callback();
-      else {
-        var listener = function () {
-          callback();
-          ownerDocument.removeEventListener("DOMContentLoaded", listener);
-        };
-        ownerDocument.addEventListener("DOMContentLoaded", listener);
-        instance._reactRetry = listener;
-      }
-    }
-    function getNextHydratable(node) {
-      for (; null != node; node = node.nextSibling) {
-        var nodeType = node.nodeType;
-        if (1 === nodeType || 3 === nodeType) break;
-        if (8 === nodeType) {
-          nodeType = node.data;
-          if (
-            nodeType === SUSPENSE_START_DATA ||
-            nodeType === SUSPENSE_FALLBACK_START_DATA ||
-            nodeType === SUSPENSE_PENDING_START_DATA ||
-            nodeType === SUSPENSE_QUEUED_START_DATA ||
-            nodeType === ACTIVITY_START_DATA ||
-            nodeType === FORM_STATE_IS_MATCHING ||
-            nodeType === FORM_STATE_IS_NOT_MATCHING
-          )
-            break;
-          if (nodeType === SUSPENSE_END_DATA || nodeType === ACTIVITY_END_DATA)
-            return null;
-        }
-      }
-      return node;
-    }
-    function describeHydratableInstanceForDevWarnings(instance) {
-      if (1 === instance.nodeType) {
-        for (
-          var JSCompiler_temp_const = instance.nodeName.toLowerCase(),
-            serverDifferences = {},
-            attributes = instance.attributes,
-            i = 0;
-          i < attributes.length;
-          i++
-        ) {
-          var attr = attributes[i];
-          serverDifferences[getPropNameFromAttributeName(attr.name)] =
-            "style" === attr.name.toLowerCase()
-              ? getStylesObjectFromElement(instance)
-              : attr.value;
-        }
-        return { type: JSCompiler_temp_const, props: serverDifferences };
-      }
-      return 8 === instance.nodeType
-        ? instance.data === ACTIVITY_START_DATA
-          ? { type: "Activity", props: {} }
-          : { type: "Suspense", props: {} }
-        : instance.nodeValue;
-    }
-    function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {
-      return null === parentProps ||
-        !0 !== parentProps[SUPPRESS_HYDRATION_WARNING]
-        ? (textInstance.nodeValue === text
-            ? (textInstance = null)
-            : ((text = normalizeMarkupForTextOrAttribute(text)),
-              (textInstance =
-                normalizeMarkupForTextOrAttribute(textInstance.nodeValue) ===
-                text
-                  ? null
-                  : textInstance.nodeValue)),
-          textInstance)
-        : null;
-    }
-    function getNextHydratableInstanceAfterHydrationBoundary(
-      hydrationInstance
-    ) {
-      hydrationInstance = hydrationInstance.nextSibling;
-      for (var depth = 0; hydrationInstance; ) {
-        if (8 === hydrationInstance.nodeType) {
-          var data = hydrationInstance.data;
-          if (data === SUSPENSE_END_DATA || data === ACTIVITY_END_DATA) {
-            if (0 === depth)
-              return getNextHydratable(hydrationInstance.nextSibling);
-            depth--;
-          } else
-            (data !== SUSPENSE_START_DATA &&
-              data !== SUSPENSE_FALLBACK_START_DATA &&
-              data !== SUSPENSE_PENDING_START_DATA &&
-              data !== SUSPENSE_QUEUED_START_DATA &&
-              data !== ACTIVITY_START_DATA) ||
-              depth++;
-        }
-        hydrationInstance = hydrationInstance.nextSibling;
-      }
-      return null;
-    }
-    function getParentHydrationBoundary(targetInstance) {
-      targetInstance = targetInstance.previousSibling;
-      for (var depth = 0; targetInstance; ) {
-        if (8 === targetInstance.nodeType) {
-          var data = targetInstance.data;
-          if (
-            data === SUSPENSE_START_DATA ||
-            data === SUSPENSE_FALLBACK_START_DATA ||
-            data === SUSPENSE_PENDING_START_DATA ||
-            data === SUSPENSE_QUEUED_START_DATA ||
-            data === ACTIVITY_START_DATA
-          ) {
-            if (0 === depth) return targetInstance;
-            depth--;
-          } else
-            (data !== SUSPENSE_END_DATA && data !== ACTIVITY_END_DATA) ||
-              depth++;
-        }
-        targetInstance = targetInstance.previousSibling;
-      }
-      return null;
-    }
-    function commitHydratedContainer(container) {
-      retryIfBlockedOn(container);
-    }
-    function commitHydratedActivityInstance(activityInstance) {
-      retryIfBlockedOn(activityInstance);
-    }
-    function commitHydratedSuspenseInstance(suspenseInstance) {
-      retryIfBlockedOn(suspenseInstance);
-    }
-    function resolveSingletonInstance(
-      type,
-      props,
-      rootContainerInstance,
-      hostContext,
-      validateDOMNestingDev
-    ) {
-      validateDOMNestingDev &&
-        validateDOMNesting(type, hostContext.ancestorInfo);
-      props = getOwnerDocumentFromRootContainer(rootContainerInstance);
-      switch (type) {
-        case "html":
-          type = props.documentElement;
-          if (!type)
-            throw Error(
-              "React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        case "head":
-          type = props.head;
-          if (!type)
-            throw Error(
-              "React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        case "body":
-          type = props.body;
-          if (!type)
-            throw Error(
-              "React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        default:
-          throw Error(
-            "resolveSingletonInstance was called with an element type that is not supported. This is a bug in React."
-          );
-      }
-    }
-    function acquireSingletonInstance(
-      type,
-      props,
-      instance,
-      internalInstanceHandle
-    ) {
-      if (
-        !instance[internalContainerInstanceKey] &&
-        getInstanceFromNode(instance)
-      ) {
-        var tagName = instance.tagName.toLowerCase();
-        console.error(
-          "You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.",
-          tagName,
-          tagName,
-          tagName
-        );
-      }
-      switch (type) {
-        case "html":
-        case "head":
-        case "body":
-          break;
-        default:
-          console.error(
-            "acquireSingletonInstance was called with an element type that is not supported. This is a bug in React."
-          );
-      }
-      for (tagName = instance.attributes; tagName.length; )
-        instance.removeAttributeNode(tagName[0]);
-      setInitialProperties(instance, type, props);
-      instance[internalInstanceKey] = internalInstanceHandle;
-      instance[internalPropsKey] = props;
-    }
-    function releaseSingletonInstance(instance) {
-      for (var attributes = instance.attributes; attributes.length; )
-        instance.removeAttributeNode(attributes[0]);
-      detachDeletedInstance(instance);
-    }
-    function getHoistableRoot(container) {
-      return "function" === typeof container.getRootNode
-        ? container.getRootNode()
-        : 9 === container.nodeType
-          ? container
-          : container.ownerDocument;
-    }
-    function preconnectAs(rel, href, crossOrigin) {
-      var ownerDocument = globalDocument;
-      if (ownerDocument && "string" === typeof href && href) {
-        var limitedEscapedHref =
-          escapeSelectorAttributeValueInsideDoubleQuotes(href);
-        limitedEscapedHref =
-          'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]';
-        "string" === typeof crossOrigin &&
-          (limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]');
-        preconnectsSet.has(limitedEscapedHref) ||
-          (preconnectsSet.add(limitedEscapedHref),
-          (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),
-          null === ownerDocument.querySelector(limitedEscapedHref) &&
-            ((href = ownerDocument.createElement("link")),
-            setInitialProperties(href, "link", rel),
-            markNodeAsHoistable(href),
-            ownerDocument.head.appendChild(href)));
-      }
-    }
-    function getResource(type, currentProps, pendingProps, currentResource) {
-      var resourceRoot = (resourceRoot = rootInstanceStackCursor.current)
-        ? getHoistableRoot(resourceRoot)
-        : null;
-      if (!resourceRoot)
-        throw Error(
-          '"resourceRoot" was expected to exist. This is a bug in React.'
-        );
-      switch (type) {
-        case "meta":
-        case "title":
-          return null;
-        case "style":
-          return "string" === typeof pendingProps.precedence &&
-            "string" === typeof pendingProps.href
-            ? ((pendingProps = getStyleKey(pendingProps.href)),
-              (currentProps =
-                getResourcesFromRoot(resourceRoot).hoistableStyles),
-              (currentResource = currentProps.get(pendingProps)),
-              currentResource ||
-                ((currentResource = {
-                  type: "style",
-                  instance: null,
-                  count: 0,
-                  state: null
-                }),
-                currentProps.set(pendingProps, currentResource)),
-              currentResource)
-            : { type: "void", instance: null, count: 0, state: null };
-        case "link":
-          if (
-            "stylesheet" === pendingProps.rel &&
-            "string" === typeof pendingProps.href &&
-            "string" === typeof pendingProps.precedence
-          ) {
-            type = getStyleKey(pendingProps.href);
-            var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles,
-              _resource = _styles.get(type);
-            if (
-              !_resource &&
-              ((resourceRoot = resourceRoot.ownerDocument || resourceRoot),
-              (_resource = {
-                type: "stylesheet",
-                instance: null,
-                count: 0,
-                state: { loading: NotLoaded, preload: null }
-              }),
-              _styles.set(type, _resource),
-              (_styles = resourceRoot.querySelector(
-                getStylesheetSelectorFromKey(type)
-              )) &&
-                !_styles._p &&
-                ((_resource.instance = _styles),
-                (_resource.state.loading = Loaded | Inserted)),
-              !preloadPropsMap.has(type))
-            ) {
-              var preloadProps = {
-                rel: "preload",
-                as: "style",
-                href: pendingProps.href,
-                crossOrigin: pendingProps.crossOrigin,
-                integrity: pendingProps.integrity,
-                media: pendingProps.media,
-                hrefLang: pendingProps.hrefLang,
-                referrerPolicy: pendingProps.referrerPolicy
-              };
-              preloadPropsMap.set(type, preloadProps);
-              _styles ||
-                preloadStylesheet(
-                  resourceRoot,
-                  type,
-                  preloadProps,
-                  _resource.state
-                );
-            }
-            if (currentProps && null === currentResource)
-              throw (
-                ((pendingProps =
-                  "\n\n  - " +
-                  describeLinkForResourceErrorDEV(currentProps) +
-                  "\n  + " +
-                  describeLinkForResourceErrorDEV(pendingProps)),
-                Error(
-                  "Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." +
-                    pendingProps
-                ))
-              );
-            return _resource;
-          }
-          if (currentProps && null !== currentResource)
-            throw (
-              ((pendingProps =
-                "\n\n  - " +
-                describeLinkForResourceErrorDEV(currentProps) +
-                "\n  + " +
-                describeLinkForResourceErrorDEV(pendingProps)),
-              Error(
-                "Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." +
-                  pendingProps
-              ))
-            );
-          return null;
-        case "script":
-          return (
-            (currentProps = pendingProps.async),
-            (pendingProps = pendingProps.src),
-            "string" === typeof pendingProps &&
-            currentProps &&
-            "function" !== typeof currentProps &&
-            "symbol" !== typeof currentProps
-              ? ((pendingProps = getScriptKey(pendingProps)),
-                (currentProps =
-                  getResourcesFromRoot(resourceRoot).hoistableScripts),
-                (currentResource = currentProps.get(pendingProps)),
-                currentResource ||
-                  ((currentResource = {
-                    type: "script",
-                    instance: null,
-                    count: 0,
-                    state: null
-                  }),
-                  currentProps.set(pendingProps, currentResource)),
-                currentResource)
-              : { type: "void", instance: null, count: 0, state: null }
-          );
-        default:
-          throw Error(
-            'getResource encountered a type it did not expect: "' +
-              type +
-              '". this is a bug in React.'
-          );
-      }
-    }
-    function describeLinkForResourceErrorDEV(props) {
-      var describedProps = 0,
-        description = "<link";
-      "string" === typeof props.rel
-        ? (describedProps++, (description += ' rel="' + props.rel + '"'))
-        : hasOwnProperty.call(props, "rel") &&
-          (describedProps++,
-          (description +=
-            ' rel="' +
-            (null === props.rel ? "null" : "invalid type " + typeof props.rel) +
-            '"'));
-      "string" === typeof props.href
-        ? (describedProps++, (description += ' href="' + props.href + '"'))
-        : hasOwnProperty.call(props, "href") &&
-          (describedProps++,
-          (description +=
-            ' href="' +
-            (null === props.href
-              ? "null"
-              : "invalid type " + typeof props.href) +
-            '"'));
-      "string" === typeof props.precedence
-        ? (describedProps++,
-          (description += ' precedence="' + props.precedence + '"'))
-        : hasOwnProperty.call(props, "precedence") &&
-          (describedProps++,
-          (description +=
-            " precedence={" +
-            (null === props.precedence
-              ? "null"
-              : "invalid type " + typeof props.precedence) +
-            "}"));
-      Object.getOwnPropertyNames(props).length > describedProps &&
-        (description += " ...");
-      return description + " />";
-    }
-    function getStyleKey(href) {
-      return (
-        'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"'
-      );
-    }
-    function getStylesheetSelectorFromKey(key) {
-      return 'link[rel="stylesheet"][' + key + "]";
-    }
-    function stylesheetPropsFromRawProps(rawProps) {
-      return assign({}, rawProps, {
-        "data-precedence": rawProps.precedence,
-        precedence: null
-      });
-    }
-    function preloadStylesheet(ownerDocument, key, preloadProps, state) {
-      ownerDocument.querySelector(
-        'link[rel="preload"][as="style"][' + key + "]"
-      )
-        ? (state.loading = Loaded)
-        : ((key = ownerDocument.createElement("link")),
-          (state.preload = key),
-          key.addEventListener("load", function () {
-            return (state.loading |= Loaded);
-          }),
-          key.addEventListener("error", function () {
-            return (state.loading |= Errored);
-          }),
-          setInitialProperties(key, "link", preloadProps),
-          markNodeAsHoistable(key),
-          ownerDocument.head.appendChild(key));
-    }
-    function getScriptKey(src) {
-      return (
-        '[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]'
-      );
-    }
-    function getScriptSelectorFromKey(key) {
-      return "script[async]" + key;
-    }
-    function acquireResource(hoistableRoot, resource, props) {
-      resource.count++;
-      if (null === resource.instance)
-        switch (resource.type) {
-          case "style":
-            var instance = hoistableRoot.querySelector(
-              'style[data-href~="' +
-                escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +
-                '"]'
-            );
-            if (instance)
-              return (
-                (resource.instance = instance),
-                markNodeAsHoistable(instance),
-                instance
-              );
-            var styleProps = assign({}, props, {
-              "data-href": props.href,
-              "data-precedence": props.precedence,
-              href: null,
-              precedence: null
-            });
-            instance = (
-              hoistableRoot.ownerDocument || hoistableRoot
-            ).createElement("style");
-            markNodeAsHoistable(instance);
-            setInitialProperties(instance, "style", styleProps);
-            insertStylesheet(instance, props.precedence, hoistableRoot);
-            return (resource.instance = instance);
-          case "stylesheet":
-            styleProps = getStyleKey(props.href);
-            var _instance = hoistableRoot.querySelector(
-              getStylesheetSelectorFromKey(styleProps)
-            );
-            if (_instance)
-              return (
-                (resource.state.loading |= Inserted),
-                (resource.instance = _instance),
-                markNodeAsHoistable(_instance),
-                _instance
-              );
-            instance = stylesheetPropsFromRawProps(props);
-            (styleProps = preloadPropsMap.get(styleProps)) &&
-              adoptPreloadPropsForStylesheet(instance, styleProps);
-            _instance = (
-              hoistableRoot.ownerDocument || hoistableRoot
-            ).createElement("link");
-            markNodeAsHoistable(_instance);
-            var linkInstance = _instance;
-            linkInstance._p = new Promise(function (resolve, reject) {
-              linkInstance.onload = resolve;
-              linkInstance.onerror = reject;
-            });
-            setInitialProperties(_instance, "link", instance);
-            resource.state.loading |= Inserted;
-            insertStylesheet(_instance, props.precedence, hoistableRoot);
-            return (resource.instance = _instance);
-          case "script":
-            _instance = getScriptKey(props.src);
-            if (
-              (styleProps = hoistableRoot.querySelector(
-                getScriptSelectorFromKey(_instance)
-              ))
-            )
-              return (
-                (resource.instance = styleProps),
-                markNodeAsHoistable(styleProps),
-                styleProps
-              );
-            instance = props;
-            if ((styleProps = preloadPropsMap.get(_instance)))
-              (instance = assign({}, props)),
-                adoptPreloadPropsForScript(instance, styleProps);
-            hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-            styleProps = hoistableRoot.createElement("script");
-            markNodeAsHoistable(styleProps);
-            setInitialProperties(styleProps, "link", instance);
-            hoistableRoot.head.appendChild(styleProps);
-            return (resource.instance = styleProps);
-          case "void":
-            return null;
-          default:
-            throw Error(
-              'acquireResource encountered a resource type it did not expect: "' +
-                resource.type +
-                '". this is a bug in React.'
-            );
-        }
-      else
-        "stylesheet" === resource.type &&
-          (resource.state.loading & Inserted) === NotLoaded &&
-          ((instance = resource.instance),
-          (resource.state.loading |= Inserted),
-          insertStylesheet(instance, props.precedence, hoistableRoot));
-      return resource.instance;
-    }
-    function insertStylesheet(instance, precedence, root) {
-      for (
-        var nodes = root.querySelectorAll(
-            'link[rel="stylesheet"][data-precedence],style[data-precedence]'
-          ),
-          last = nodes.length ? nodes[nodes.length - 1] : null,
-          prior = last,
-          i = 0;
-        i < nodes.length;
-        i++
-      ) {
-        var node = nodes[i];
-        if (node.dataset.precedence === precedence) prior = node;
-        else if (prior !== last) break;
-      }
-      prior
-        ? prior.parentNode.insertBefore(instance, prior.nextSibling)
-        : ((precedence = 9 === root.nodeType ? root.head : root),
-          precedence.insertBefore(instance, precedence.firstChild));
-    }
-    function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
-      null == stylesheetProps.crossOrigin &&
-        (stylesheetProps.crossOrigin = preloadProps.crossOrigin);
-      null == stylesheetProps.referrerPolicy &&
-        (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);
-      null == stylesheetProps.title &&
-        (stylesheetProps.title = preloadProps.title);
-    }
-    function adoptPreloadPropsForScript(scriptProps, preloadProps) {
-      null == scriptProps.crossOrigin &&
-        (scriptProps.crossOrigin = preloadProps.crossOrigin);
-      null == scriptProps.referrerPolicy &&
-        (scriptProps.referrerPolicy = preloadProps.referrerPolicy);
-      null == scriptProps.integrity &&
-        (scriptProps.integrity = preloadProps.integrity);
-    }
-    function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
-      if (null === tagCaches) {
-        var cache = new Map();
-        var caches = (tagCaches = new Map());
-        caches.set(ownerDocument, cache);
-      } else
-        (caches = tagCaches),
-          (cache = caches.get(ownerDocument)),
-          cache || ((cache = new Map()), caches.set(ownerDocument, cache));
-      if (cache.has(type)) return cache;
-      cache.set(type, null);
-      ownerDocument = ownerDocument.getElementsByTagName(type);
-      for (caches = 0; caches < ownerDocument.length; caches++) {
-        var node = ownerDocument[caches];
-        if (
-          !(
-            node[internalHoistableMarker] ||
-            node[internalInstanceKey] ||
-            ("link" === type && "stylesheet" === node.getAttribute("rel"))
-          ) &&
-          node.namespaceURI !== SVG_NAMESPACE
-        ) {
-          var nodeKey = node.getAttribute(keyAttribute) || "";
-          nodeKey = type + nodeKey;
-          var existing = cache.get(nodeKey);
-          existing ? existing.push(node) : cache.set(nodeKey, [node]);
-        }
-      }
-      return cache;
-    }
-    function mountHoistable(hoistableRoot, type, instance) {
-      hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-      hoistableRoot.head.insertBefore(
-        instance,
-        "title" === type ? hoistableRoot.querySelector("head > title") : null
-      );
-    }
-    function isHostHoistableType(type, props, hostContext) {
-      var outsideHostContainerContext =
-        !hostContext.ancestorInfo.containerTagInScope;
-      if (
-        hostContext.context === HostContextNamespaceSvg ||
-        null != props.itemProp
-      )
-        return (
-          !outsideHostContainerContext ||
-            null == props.itemProp ||
-            ("meta" !== type &&
-              "title" !== type &&
-              "style" !== type &&
-              "link" !== type &&
-              "script" !== type) ||
-            console.error(
-              "Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.",
-              type,
-              type
-            ),
-          !1
-        );
-      switch (type) {
-        case "meta":
-        case "title":
-          return !0;
-        case "style":
-          if (
-            "string" !== typeof props.precedence ||
-            "string" !== typeof props.href ||
-            "" === props.href
-          ) {
-            outsideHostContainerContext &&
-              console.error(
-                'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel="stylesheet" ...> tags.  Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence="default"` and `href="some unique resource identifier"`.'
-              );
-            break;
-          }
-          return !0;
-        case "link":
-          if (
-            "string" !== typeof props.rel ||
-            "string" !== typeof props.href ||
-            "" === props.href ||
-            props.onLoad ||
-            props.onError
-          ) {
-            if (
-              "stylesheet" === props.rel &&
-              "string" === typeof props.precedence
-            ) {
-              type = props.href;
-              var onError = props.onError,
-                disabled = props.disabled;
-              hostContext = [];
-              props.onLoad && hostContext.push("`onLoad`");
-              onError && hostContext.push("`onError`");
-              null != disabled && hostContext.push("`disabled`");
-              onError = propNamesListJoin(hostContext, "and");
-              onError += 1 === hostContext.length ? " prop" : " props";
-              disabled =
-                1 === hostContext.length ? "an " + onError : "the " + onError;
-              hostContext.length &&
-                console.error(
-                  'React encountered a <link rel="stylesheet" href="%s" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                  type,
-                  disabled,
-                  onError
-                );
-            }
-            outsideHostContainerContext &&
-              ("string" !== typeof props.rel ||
-              "string" !== typeof props.href ||
-              "" === props.href
-                ? console.error(
-                    "Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag"
-                  )
-                : (props.onError || props.onLoad) &&
-                  console.error(
-                    "Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
-                  ));
-            break;
-          }
-          switch (props.rel) {
-            case "stylesheet":
-              return (
-                (type = props.precedence),
-                (props = props.disabled),
-                "string" !== typeof type &&
-                  outsideHostContainerContext &&
-                  console.error(
-                    'Cannot render a <link rel="stylesheet" /> outside the main document without knowing its precedence. Consider adding precedence="default" or moving it into the root <head> tag.'
-                  ),
-                "string" === typeof type && null == props
-              );
-            default:
-              return !0;
-          }
-        case "script":
-          type =
-            props.async &&
-            "function" !== typeof props.async &&
-            "symbol" !== typeof props.async;
-          if (
-            !type ||
-            props.onLoad ||
-            props.onError ||
-            !props.src ||
-            "string" !== typeof props.src
-          ) {
-            outsideHostContainerContext &&
-              (type
-                ? props.onLoad || props.onError
-                  ? console.error(
-                      "Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
-                    )
-                  : console.error(
-                      "Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>."
-                    )
-                : console.error(
-                    'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async="" or moving it into the root <head> tag.'
-                  ));
-            break;
-          }
-          return !0;
-        case "noscript":
-        case "template":
-          outsideHostContainerContext &&
-            console.error(
-              "Cannot render <%s> outside the main document. Try moving it into the root <head> tag.",
-              type
-            );
-      }
-      return !1;
-    }
-    function preloadResource(resource) {
-      return "stylesheet" === resource.type &&
-        (resource.state.loading & Settled) === NotLoaded
-        ? !1
-        : !0;
-    }
-    function suspendResource(state, hoistableRoot, resource, props) {
-      if (
-        "stylesheet" === resource.type &&
-        ("string" !== typeof props.media ||
-          !1 !== matchMedia(props.media).matches) &&
-        (resource.state.loading & Inserted) === NotLoaded
-      ) {
-        if (null === resource.instance) {
-          var key = getStyleKey(props.href),
-            instance = hoistableRoot.querySelector(
-              getStylesheetSelectorFromKey(key)
-            );
-          if (instance) {
-            hoistableRoot = instance._p;
-            null !== hoistableRoot &&
-              "object" === typeof hoistableRoot &&
-              "function" === typeof hoistableRoot.then &&
-              (state.count++,
-              (state = onUnsuspend.bind(state)),
-              hoistableRoot.then(state, state));
-            resource.state.loading |= Inserted;
-            resource.instance = instance;
-            markNodeAsHoistable(instance);
-            return;
-          }
-          instance = hoistableRoot.ownerDocument || hoistableRoot;
-          props = stylesheetPropsFromRawProps(props);
-          (key = preloadPropsMap.get(key)) &&
-            adoptPreloadPropsForStylesheet(props, key);
-          instance = instance.createElement("link");
-          markNodeAsHoistable(instance);
-          var linkInstance = instance;
-          linkInstance._p = new Promise(function (resolve, reject) {
-            linkInstance.onload = resolve;
-            linkInstance.onerror = reject;
-          });
-          setInitialProperties(instance, "link", props);
-          resource.instance = instance;
-        }
-        null === state.stylesheets && (state.stylesheets = new Map());
-        state.stylesheets.set(resource, hoistableRoot);
-        (hoistableRoot = resource.state.preload) &&
-          (resource.state.loading & Settled) === NotLoaded &&
-          (state.count++,
-          (resource = onUnsuspend.bind(state)),
-          hoistableRoot.addEventListener("load", resource),
-          hoistableRoot.addEventListener("error", resource));
-      }
-    }
-    function waitForCommitToBeReady(state, timeoutOffset) {
-      state.stylesheets &&
-        0 === state.count &&
-        insertSuspendedStylesheets(state, state.stylesheets);
-      return 0 < state.count || 0 < state.imgCount
-        ? function (commit) {
-            var stylesheetTimer = setTimeout(function () {
-              state.stylesheets &&
-                insertSuspendedStylesheets(state, state.stylesheets);
-              if (state.unsuspend) {
-                var unsuspend = state.unsuspend;
-                state.unsuspend = null;
-                unsuspend();
-              }
-            }, SUSPENSEY_STYLESHEET_TIMEOUT + timeoutOffset);
-            0 < state.imgBytes &&
-              0 === estimatedBytesWithinLimit &&
-              (estimatedBytesWithinLimit =
-                125 * estimateBandwidth() * SUSPENSEY_IMAGE_TIME_ESTIMATE);
-            var imgTimer = setTimeout(
-              function () {
-                state.waitingForImages = !1;
-                if (
-                  0 === state.count &&
-                  (state.stylesheets &&
-                    insertSuspendedStylesheets(state, state.stylesheets),
-                  state.unsuspend)
-                ) {
-                  var unsuspend = state.unsuspend;
-                  state.unsuspend = null;
-                  unsuspend();
-                }
-              },
-              (state.imgBytes > estimatedBytesWithinLimit
-                ? 50
-                : SUSPENSEY_IMAGE_TIMEOUT) + timeoutOffset
-            );
-            state.unsuspend = commit;
-            return function () {
-              state.unsuspend = null;
-              clearTimeout(stylesheetTimer);
-              clearTimeout(imgTimer);
-            };
-          }
-        : null;
-    }
-    function onUnsuspend() {
-      this.count--;
-      if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))
-        if (this.stylesheets)
-          insertSuspendedStylesheets(this, this.stylesheets);
-        else if (this.unsuspend) {
-          var unsuspend = this.unsuspend;
-          this.unsuspend = null;
-          unsuspend();
-        }
-    }
-    function insertSuspendedStylesheets(state, resources) {
-      state.stylesheets = null;
-      null !== state.unsuspend &&
-        (state.count++,
-        (precedencesByRoot = new Map()),
-        resources.forEach(insertStylesheetIntoRoot, state),
-        (precedencesByRoot = null),
-        onUnsuspend.call(state));
-    }
-    function insertStylesheetIntoRoot(root, resource) {
-      if (!(resource.state.loading & Inserted)) {
-        var precedences = precedencesByRoot.get(root);
-        if (precedences) var last = precedences.get(LAST_PRECEDENCE);
-        else {
-          precedences = new Map();
-          precedencesByRoot.set(root, precedences);
-          for (
-            var nodes = root.querySelectorAll(
-                "link[data-precedence],style[data-precedence]"
-              ),
-              i = 0;
-            i < nodes.length;
-            i++
-          ) {
-            var node = nodes[i];
-            if (
-              "LINK" === node.nodeName ||
-              "not all" !== node.getAttribute("media")
-            )
-              precedences.set(node.dataset.precedence, node), (last = node);
-          }
-          last && precedences.set(LAST_PRECEDENCE, last);
-        }
-        nodes = resource.instance;
-        node = nodes.getAttribute("data-precedence");
-        i = precedences.get(node) || last;
-        i === last && precedences.set(LAST_PRECEDENCE, nodes);
-        precedences.set(node, nodes);
-        this.count++;
-        last = onUnsuspend.bind(this);
-        nodes.addEventListener("load", last);
-        nodes.addEventListener("error", last);
-        i
-          ? i.parentNode.insertBefore(nodes, i.nextSibling)
-          : ((root = 9 === root.nodeType ? root.head : root),
-            root.insertBefore(nodes, root.firstChild));
-        resource.state.loading |= Inserted;
-      }
-    }
-    function FiberRootNode(
-      containerInfo,
-      tag,
-      hydrate,
-      identifierPrefix,
-      onUncaughtError,
-      onCaughtError,
-      onRecoverableError,
-      onDefaultTransitionIndicator,
-      formState
-    ) {
-      this.tag = 1;
-      this.containerInfo = containerInfo;
-      this.pingCache = this.current = this.pendingChildren = null;
-      this.timeoutHandle = noTimeout;
-      this.callbackNode =
-        this.next =
-        this.pendingContext =
-        this.context =
-        this.cancelPendingCommit =
-          null;
-      this.callbackPriority = 0;
-      this.expirationTimes = createLaneMap(-1);
-      this.entangledLanes =
-        this.shellSuspendCounter =
-        this.errorRecoveryDisabledLanes =
-        this.expiredLanes =
-        this.warmLanes =
-        this.pingedLanes =
-        this.suspendedLanes =
-        this.pendingLanes =
-          0;
-      this.entanglements = createLaneMap(0);
-      this.hiddenUpdates = createLaneMap(null);
-      this.identifierPrefix = identifierPrefix;
-      this.onUncaughtError = onUncaughtError;
-      this.onCaughtError = onCaughtError;
-      this.onRecoverableError = onRecoverableError;
-      this.pooledCache = null;
-      this.pooledCacheLanes = 0;
-      this.formState = formState;
-      this.incompleteTransitions = new Map();
-      this.passiveEffectDuration = this.effectDuration = -0;
-      this.memoizedUpdaters = new Set();
-      containerInfo = this.pendingUpdatersLaneMap = [];
-      for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set());
-      this._debugRootType = hydrate ? "hydrateRoot()" : "createRoot()";
-    }
-    function createFiberRoot(
-      containerInfo,
-      tag,
-      hydrate,
-      initialChildren,
-      hydrationCallbacks,
-      isStrictMode,
-      identifierPrefix,
-      formState,
-      onUncaughtError,
-      onCaughtError,
-      onRecoverableError,
-      onDefaultTransitionIndicator
-    ) {
-      containerInfo = new FiberRootNode(
-        containerInfo,
-        tag,
-        hydrate,
-        identifierPrefix,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        onDefaultTransitionIndicator,
-        formState
-      );
-      tag = ConcurrentMode;
-      !0 === isStrictMode && (tag |= StrictLegacyMode | StrictEffectsMode);
-      tag |= ProfileMode;
-      isStrictMode = createFiber(3, null, null, tag);
-      containerInfo.current = isStrictMode;
-      isStrictMode.stateNode = containerInfo;
-      tag = createCache();
-      retainCache(tag);
-      containerInfo.pooledCache = tag;
-      retainCache(tag);
-      isStrictMode.memoizedState = {
-        element: initialChildren,
-        isDehydrated: hydrate,
-        cache: tag
-      };
-      initializeUpdateQueue(isStrictMode);
-      return containerInfo;
-    }
-    function getContextForSubtree(parentComponent) {
-      if (!parentComponent) return emptyContextObject;
-      parentComponent = emptyContextObject;
-      return parentComponent;
-    }
-    function updateContainerImpl(
-      rootFiber,
-      lane,
-      element,
-      container,
-      parentComponent,
-      callback
-    ) {
-      if (
-        injectedHook &&
-        "function" === typeof injectedHook.onScheduleFiberRoot
-      )
-        try {
-          injectedHook.onScheduleFiberRoot(rendererID, container, element);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-      parentComponent = getContextForSubtree(parentComponent);
-      null === container.context
-        ? (container.context = parentComponent)
-        : (container.pendingContext = parentComponent);
-      isRendering &&
-        null !== current &&
-        !didWarnAboutNestedUpdates &&
-        ((didWarnAboutNestedUpdates = !0),
-        console.error(
-          "Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\n\nCheck the render method of %s.",
-          getComponentNameFromFiber(current) || "Unknown"
-        ));
-      container = createUpdate(lane);
-      container.payload = { element: element };
-      callback = void 0 === callback ? null : callback;
-      null !== callback &&
-        ("function" !== typeof callback &&
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ),
-        (container.callback = callback));
-      element = enqueueUpdate(rootFiber, container, lane);
-      null !== element &&
-        (startUpdateTimerByLane(lane, "root.render()", null),
-        scheduleUpdateOnFiber(element, rootFiber, lane),
-        entangleTransitions(element, rootFiber, lane));
-    }
-    function markRetryLaneImpl(fiber, retryLane) {
-      fiber = fiber.memoizedState;
-      if (null !== fiber && null !== fiber.dehydrated) {
-        var a = fiber.retryLane;
-        fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;
-      }
-    }
-    function markRetryLaneIfNotHydrated(fiber, retryLane) {
-      markRetryLaneImpl(fiber, retryLane);
-      (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);
-    }
-    function attemptContinuousHydration(fiber) {
-      if (13 === fiber.tag || 31 === fiber.tag) {
-        var root = enqueueConcurrentRenderForLane(fiber, 67108864);
-        null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);
-        markRetryLaneIfNotHydrated(fiber, 67108864);
-      }
-    }
-    function attemptHydrationAtCurrentPriority(fiber) {
-      if (13 === fiber.tag || 31 === fiber.tag) {
-        var lane = requestUpdateLane(fiber);
-        lane = getBumpedLaneForHydrationByLane(lane);
-        var root = enqueueConcurrentRenderForLane(fiber, lane);
-        null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-        markRetryLaneIfNotHydrated(fiber, lane);
-      }
-    }
-    function getCurrentFiberForDevTools() {
-      return current;
-    }
-    function dispatchDiscreteEvent(
-      domEventName,
-      eventSystemFlags,
-      container,
-      nativeEvent
-    ) {
-      var prevTransition = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        (ReactDOMSharedInternals.p = DiscreteEventPriority),
-          dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = prevTransition);
-      }
-    }
-    function dispatchContinuousEvent(
-      domEventName,
-      eventSystemFlags,
-      container,
-      nativeEvent
-    ) {
-      var prevTransition = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        (ReactDOMSharedInternals.p = ContinuousEventPriority),
-          dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = prevTransition);
-      }
-    }
-    function dispatchEvent(
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      if (_enabled) {
-        var blockedOn = findInstanceBlockingEvent(nativeEvent);
-        if (null === blockedOn)
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            return_targetInst,
-            targetContainer
-          ),
-            clearIfContinuousEvent(domEventName, nativeEvent);
-        else if (
-          queueIfContinuousEvent(
-            blockedOn,
-            domEventName,
-            eventSystemFlags,
-            targetContainer,
-            nativeEvent
-          )
-        )
-          nativeEvent.stopPropagation();
-        else if (
-          (clearIfContinuousEvent(domEventName, nativeEvent),
-          eventSystemFlags & 4 &&
-            -1 < discreteReplayableEvents.indexOf(domEventName))
-        ) {
-          for (; null !== blockedOn; ) {
-            var fiber = getInstanceFromNode(blockedOn);
-            if (null !== fiber)
-              switch (fiber.tag) {
-                case 3:
-                  fiber = fiber.stateNode;
-                  if (fiber.current.memoizedState.isDehydrated) {
-                    var lanes = getHighestPriorityLanes(fiber.pendingLanes);
-                    if (0 !== lanes) {
-                      var root = fiber;
-                      root.pendingLanes |= 2;
-                      for (root.entangledLanes |= 2; lanes; ) {
-                        var lane = 1 << (31 - clz32(lanes));
-                        root.entanglements[1] |= lane;
-                        lanes &= ~lane;
-                      }
-                      ensureRootIsScheduled(fiber);
-                      (executionContext & (RenderContext | CommitContext)) ===
-                        NoContext &&
-                        ((workInProgressRootRenderTargetTime =
-                          now$1() + RENDER_TIMEOUT_MS),
-                        flushSyncWorkAcrossRoots_impl(0, !1));
-                    }
-                  }
-                  break;
-                case 31:
-                case 13:
-                  (root = enqueueConcurrentRenderForLane(fiber, 2)),
-                    null !== root && scheduleUpdateOnFiber(root, fiber, 2),
-                    flushSyncWork$1(),
-                    markRetryLaneIfNotHydrated(fiber, 2);
-              }
-            fiber = findInstanceBlockingEvent(nativeEvent);
-            null === fiber &&
-              dispatchEventForPluginEventSystem(
-                domEventName,
-                eventSystemFlags,
-                nativeEvent,
-                return_targetInst,
-                targetContainer
-              );
-            if (fiber === blockedOn) break;
-            blockedOn = fiber;
-          }
-          null !== blockedOn && nativeEvent.stopPropagation();
-        } else
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            null,
-            targetContainer
-          );
-      }
-    }
-    function findInstanceBlockingEvent(nativeEvent) {
-      nativeEvent = getEventTarget(nativeEvent);
-      return findInstanceBlockingTarget(nativeEvent);
-    }
-    function findInstanceBlockingTarget(targetNode) {
-      return_targetInst = null;
-      targetNode = getClosestInstanceFromNode(targetNode);
-      if (null !== targetNode) {
-        var nearestMounted = getNearestMountedFiber(targetNode);
-        if (null === nearestMounted) targetNode = null;
-        else {
-          var tag = nearestMounted.tag;
-          if (13 === tag) {
-            targetNode = getSuspenseInstanceFromFiber(nearestMounted);
-            if (null !== targetNode) return targetNode;
-            targetNode = null;
-          } else if (31 === tag) {
-            targetNode = getActivityInstanceFromFiber(nearestMounted);
-            if (null !== targetNode) return targetNode;
-            targetNode = null;
-          } else if (3 === tag) {
-            if (nearestMounted.stateNode.current.memoizedState.isDehydrated)
-              return 3 === nearestMounted.tag
-                ? nearestMounted.stateNode.containerInfo
-                : null;
-            targetNode = null;
-          } else nearestMounted !== targetNode && (targetNode = null);
-        }
-      }
-      return_targetInst = targetNode;
-      return null;
-    }
-    function getEventPriority(domEventName) {
-      switch (domEventName) {
-        case "beforetoggle":
-        case "cancel":
-        case "click":
-        case "close":
-        case "contextmenu":
-        case "copy":
-        case "cut":
-        case "auxclick":
-        case "dblclick":
-        case "dragend":
-        case "dragstart":
-        case "drop":
-        case "focusin":
-        case "focusout":
-        case "input":
-        case "invalid":
-        case "keydown":
-        case "keypress":
-        case "keyup":
-        case "mousedown":
-        case "mouseup":
-        case "paste":
-        case "pause":
-        case "play":
-        case "pointercancel":
-        case "pointerdown":
-        case "pointerup":
-        case "ratechange":
-        case "reset":
-        case "resize":
-        case "seeked":
-        case "submit":
-        case "toggle":
-        case "touchcancel":
-        case "touchend":
-        case "touchstart":
-        case "volumechange":
-        case "change":
-        case "selectionchange":
-        case "textInput":
-        case "compositionstart":
-        case "compositionend":
-        case "compositionupdate":
-        case "beforeblur":
-        case "afterblur":
-        case "beforeinput":
-        case "blur":
-        case "fullscreenchange":
-        case "focus":
-        case "hashchange":
-        case "popstate":
-        case "select":
-        case "selectstart":
-          return DiscreteEventPriority;
-        case "drag":
-        case "dragenter":
-        case "dragexit":
-        case "dragleave":
-        case "dragover":
-        case "mousemove":
-        case "mouseout":
-        case "mouseover":
-        case "pointermove":
-        case "pointerout":
-        case "pointerover":
-        case "scroll":
-        case "touchmove":
-        case "wheel":
-        case "mouseenter":
-        case "mouseleave":
-        case "pointerenter":
-        case "pointerleave":
-          return ContinuousEventPriority;
-        case "message":
-          switch (getCurrentPriorityLevel()) {
-            case ImmediatePriority:
-              return DiscreteEventPriority;
-            case UserBlockingPriority:
-              return ContinuousEventPriority;
-            case NormalPriority$1:
-            case LowPriority:
-              return DefaultEventPriority;
-            case IdlePriority:
-              return IdleEventPriority;
-            default:
-              return DefaultEventPriority;
-          }
-        default:
-          return DefaultEventPriority;
-      }
-    }
-    function clearIfContinuousEvent(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "focusin":
-        case "focusout":
-          queuedFocus = null;
-          break;
-        case "dragenter":
-        case "dragleave":
-          queuedDrag = null;
-          break;
-        case "mouseover":
-        case "mouseout":
-          queuedMouse = null;
-          break;
-        case "pointerover":
-        case "pointerout":
-          queuedPointers.delete(nativeEvent.pointerId);
-          break;
-        case "gotpointercapture":
-        case "lostpointercapture":
-          queuedPointerCaptures.delete(nativeEvent.pointerId);
-      }
-    }
-    function accumulateOrCreateContinuousQueuedReplayableEvent(
-      existingQueuedEvent,
-      blockedOn,
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      if (
-        null === existingQueuedEvent ||
-        existingQueuedEvent.nativeEvent !== nativeEvent
-      )
-        return (
-          (existingQueuedEvent = {
-            blockedOn: blockedOn,
-            domEventName: domEventName,
-            eventSystemFlags: eventSystemFlags,
-            nativeEvent: nativeEvent,
-            targetContainers: [targetContainer]
-          }),
-          null !== blockedOn &&
-            ((blockedOn = getInstanceFromNode(blockedOn)),
-            null !== blockedOn && attemptContinuousHydration(blockedOn)),
-          existingQueuedEvent
-        );
-      existingQueuedEvent.eventSystemFlags |= eventSystemFlags;
-      blockedOn = existingQueuedEvent.targetContainers;
-      null !== targetContainer &&
-        -1 === blockedOn.indexOf(targetContainer) &&
-        blockedOn.push(targetContainer);
-      return existingQueuedEvent;
-    }
-    function queueIfContinuousEvent(
-      blockedOn,
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      switch (domEventName) {
-        case "focusin":
-          return (
-            (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedFocus,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "dragenter":
-          return (
-            (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedDrag,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "mouseover":
-          return (
-            (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedMouse,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "pointerover":
-          var pointerId = nativeEvent.pointerId;
-          queuedPointers.set(
-            pointerId,
-            accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedPointers.get(pointerId) || null,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )
-          );
-          return !0;
-        case "gotpointercapture":
-          return (
-            (pointerId = nativeEvent.pointerId),
-            queuedPointerCaptures.set(
-              pointerId,
-              accumulateOrCreateContinuousQueuedReplayableEvent(
-                queuedPointerCaptures.get(pointerId) || null,
-                blockedOn,
-                domEventName,
-                eventSystemFlags,
-                targetContainer,
-                nativeEvent
-              )
-            ),
-            !0
-          );
-      }
-      return !1;
-    }
-    function attemptExplicitHydrationTarget(queuedTarget) {
-      var targetInst = getClosestInstanceFromNode(queuedTarget.target);
-      if (null !== targetInst) {
-        var nearestMounted = getNearestMountedFiber(targetInst);
-        if (null !== nearestMounted)
-          if (((targetInst = nearestMounted.tag), 13 === targetInst)) {
-            if (
-              ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),
-              null !== targetInst)
-            ) {
-              queuedTarget.blockedOn = targetInst;
-              runWithPriority(queuedTarget.priority, function () {
-                attemptHydrationAtCurrentPriority(nearestMounted);
-              });
-              return;
-            }
-          } else if (31 === targetInst) {
-            if (
-              ((targetInst = getActivityInstanceFromFiber(nearestMounted)),
-              null !== targetInst)
-            ) {
-              queuedTarget.blockedOn = targetInst;
-              runWithPriority(queuedTarget.priority, function () {
-                attemptHydrationAtCurrentPriority(nearestMounted);
-              });
-              return;
-            }
-          } else if (
-            3 === targetInst &&
-            nearestMounted.stateNode.current.memoizedState.isDehydrated
-          ) {
-            queuedTarget.blockedOn =
-              3 === nearestMounted.tag
-                ? nearestMounted.stateNode.containerInfo
-                : null;
-            return;
-          }
-      }
-      queuedTarget.blockedOn = null;
-    }
-    function attemptReplayContinuousQueuedEvent(queuedEvent) {
-      if (null !== queuedEvent.blockedOn) return !1;
-      for (
-        var targetContainers = queuedEvent.targetContainers;
-        0 < targetContainers.length;
-
-      ) {
-        var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);
-        if (null === nextBlockedOn) {
-          nextBlockedOn = queuedEvent.nativeEvent;
-          var nativeEventClone = new nextBlockedOn.constructor(
-              nextBlockedOn.type,
-              nextBlockedOn
-            ),
-            event = nativeEventClone;
-          null !== currentReplayingEvent &&
-            console.error(
-              "Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue."
-            );
-          currentReplayingEvent = event;
-          nextBlockedOn.target.dispatchEvent(nativeEventClone);
-          null === currentReplayingEvent &&
-            console.error(
-              "Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue."
-            );
-          currentReplayingEvent = null;
-        } else
-          return (
-            (targetContainers = getInstanceFromNode(nextBlockedOn)),
-            null !== targetContainers &&
-              attemptContinuousHydration(targetContainers),
-            (queuedEvent.blockedOn = nextBlockedOn),
-            !1
-          );
-        targetContainers.shift();
-      }
-      return !0;
-    }
-    function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {
-      attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);
-    }
-    function replayUnblockedEvents() {
-      hasScheduledReplayAttempt = !1;
-      null !== queuedFocus &&
-        attemptReplayContinuousQueuedEvent(queuedFocus) &&
-        (queuedFocus = null);
-      null !== queuedDrag &&
-        attemptReplayContinuousQueuedEvent(queuedDrag) &&
-        (queuedDrag = null);
-      null !== queuedMouse &&
-        attemptReplayContinuousQueuedEvent(queuedMouse) &&
-        (queuedMouse = null);
-      queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);
-      queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);
-    }
-    function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {
-      queuedEvent.blockedOn === unblocked &&
-        ((queuedEvent.blockedOn = null),
-        hasScheduledReplayAttempt ||
-          ((hasScheduledReplayAttempt = !0),
-          Scheduler.unstable_scheduleCallback(
-            Scheduler.unstable_NormalPriority,
-            replayUnblockedEvents
-          )));
-    }
-    function scheduleReplayQueueIfNeeded(formReplayingQueue) {
-      lastScheduledReplayQueue !== formReplayingQueue &&
-        ((lastScheduledReplayQueue = formReplayingQueue),
-        Scheduler.unstable_scheduleCallback(
-          Scheduler.unstable_NormalPriority,
-          function () {
-            lastScheduledReplayQueue === formReplayingQueue &&
-              (lastScheduledReplayQueue = null);
-            for (var i = 0; i < formReplayingQueue.length; i += 3) {
-              var form = formReplayingQueue[i],
-                submitterOrAction = formReplayingQueue[i + 1],
-                formData = formReplayingQueue[i + 2];
-              if ("function" !== typeof submitterOrAction)
-                if (
-                  null === findInstanceBlockingTarget(submitterOrAction || form)
-                )
-                  continue;
-                else break;
-              var formInst = getInstanceFromNode(form);
-              null !== formInst &&
-                (formReplayingQueue.splice(i, 3),
-                (i -= 3),
-                (form = {
-                  pending: !0,
-                  data: formData,
-                  method: form.method,
-                  action: submitterOrAction
-                }),
-                Object.freeze(form),
-                startHostTransition(
-                  formInst,
-                  form,
-                  submitterOrAction,
-                  formData
-                ));
-            }
-          }
-        ));
-    }
-    function retryIfBlockedOn(unblocked) {
-      function unblock(queuedEvent) {
-        return scheduleCallbackIfUnblocked(queuedEvent, unblocked);
-      }
-      null !== queuedFocus &&
-        scheduleCallbackIfUnblocked(queuedFocus, unblocked);
-      null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);
-      null !== queuedMouse &&
-        scheduleCallbackIfUnblocked(queuedMouse, unblocked);
-      queuedPointers.forEach(unblock);
-      queuedPointerCaptures.forEach(unblock);
-      for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {
-        var queuedTarget = queuedExplicitHydrationTargets[i];
-        queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);
-      }
-      for (
-        ;
-        0 < queuedExplicitHydrationTargets.length &&
-        ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);
-
-      )
-        attemptExplicitHydrationTarget(i),
-          null === i.blockedOn && queuedExplicitHydrationTargets.shift();
-      i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;
-      if (null != i)
-        for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {
-          var form = i[queuedTarget],
-            submitterOrAction = i[queuedTarget + 1],
-            formProps = form[internalPropsKey] || null;
-          if ("function" === typeof submitterOrAction)
-            formProps || scheduleReplayQueueIfNeeded(i);
-          else if (formProps) {
-            var action = null;
-            if (
-              submitterOrAction &&
-              submitterOrAction.hasAttribute("formAction")
-            )
-              if (
-                ((form = submitterOrAction),
-                (formProps = submitterOrAction[internalPropsKey] || null))
-              )
-                action = formProps.formAction;
-              else {
-                if (null !== findInstanceBlockingTarget(form)) continue;
-              }
-            else action = formProps.action;
-            "function" === typeof action
-              ? (i[queuedTarget + 1] = action)
-              : (i.splice(queuedTarget, 3), (queuedTarget -= 3));
-            scheduleReplayQueueIfNeeded(i);
-          }
-        }
-    }
-    function defaultOnDefaultTransitionIndicator() {
-      function handleNavigate(event) {
-        event.canIntercept &&
-          "react-transition" === event.info &&
-          event.intercept({
-            handler: function () {
-              return new Promise(function (resolve) {
-                return (pendingResolve = resolve);
-              });
-            },
-            focusReset: "manual",
-            scroll: "manual"
-          });
-      }
-      function handleNavigateComplete() {
-        null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-        isCancelled || setTimeout(startFakeNavigation, 20);
-      }
-      function startFakeNavigation() {
-        if (!isCancelled && !navigation.transition) {
-          var currentEntry = navigation.currentEntry;
-          currentEntry &&
-            null != currentEntry.url &&
-            navigation.navigate(currentEntry.url, {
-              state: currentEntry.getState(),
-              info: "react-transition",
-              history: "replace"
-            });
-        }
-      }
-      if ("object" === typeof navigation) {
-        var isCancelled = !1,
-          pendingResolve = null;
-        navigation.addEventListener("navigate", handleNavigate);
-        navigation.addEventListener("navigatesuccess", handleNavigateComplete);
-        navigation.addEventListener("navigateerror", handleNavigateComplete);
-        setTimeout(startFakeNavigation, 100);
-        return function () {
-          isCancelled = !0;
-          navigation.removeEventListener("navigate", handleNavigate);
-          navigation.removeEventListener(
-            "navigatesuccess",
-            handleNavigateComplete
-          );
-          navigation.removeEventListener(
-            "navigateerror",
-            handleNavigateComplete
-          );
-          null !== pendingResolve &&
-            (pendingResolve(), (pendingResolve = null));
-        };
-      }
-    }
-    function ReactDOMRoot(internalRoot) {
-      this._internalRoot = internalRoot;
-    }
-    function ReactDOMHydrationRoot(internalRoot) {
-      this._internalRoot = internalRoot;
-    }
-    function warnIfReactDOMContainerInDEV(container) {
-      container[internalContainerInstanceKey] &&
-        (container._reactRootContainer
-          ? console.error(
-              "You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported."
-            )
-          : console.error(
-              "You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it."
-            ));
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var Scheduler = require("scheduler"),
-      React = require("react"),
-      ReactDOM = require("react-dom"),
-      assign = Object.assign,
-      REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy");
-    Symbol.for("react.scope");
-    var REACT_ACTIVITY_TYPE = Symbol.for("react.activity");
-    Symbol.for("react.legacy_hidden");
-    Symbol.for("react.tracing_marker");
-    var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
-    Symbol.for("react.view_transition");
-    var MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      isArrayImpl = Array.isArray,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      valueStack = [];
-    var fiberStack = [];
-    var index$jscomp$0 = -1,
-      contextStackCursor = createCursor(null),
-      contextFiberStackCursor = createCursor(null),
-      rootInstanceStackCursor = createCursor(null),
-      hostTransitionProviderCursor = createCursor(null),
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var current = null,
-      isRendering = !1,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      scheduleCallback$3 = Scheduler.unstable_scheduleCallback,
-      cancelCallback$1 = Scheduler.unstable_cancelCallback,
-      shouldYield = Scheduler.unstable_shouldYield,
-      requestPaint = Scheduler.unstable_requestPaint,
-      now$1 = Scheduler.unstable_now,
-      getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,
-      ImmediatePriority = Scheduler.unstable_ImmediatePriority,
-      UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,
-      NormalPriority$1 = Scheduler.unstable_NormalPriority,
-      LowPriority = Scheduler.unstable_LowPriority,
-      IdlePriority = Scheduler.unstable_IdlePriority,
-      log$1 = Scheduler.log,
-      unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,
-      rendererID = null,
-      injectedHook = null,
-      hasLoggedError = !1,
-      isDevToolsPresent = "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__,
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      nextTransitionUpdateLane = 256,
-      nextTransitionDeferredLane = 262144,
-      nextRetryLane = 4194304,
-      DiscreteEventPriority = 2,
-      ContinuousEventPriority = 8,
-      DefaultEventPriority = 32,
-      IdleEventPriority = 268435456,
-      randomKey = Math.random().toString(36).slice(2),
-      internalInstanceKey = "__reactFiber$" + randomKey,
-      internalPropsKey = "__reactProps$" + randomKey,
-      internalContainerInstanceKey = "__reactContainer$" + randomKey,
-      internalEventHandlersKey = "__reactEvents$" + randomKey,
-      internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
-      internalEventHandlesSetKey = "__reactHandles$" + randomKey,
-      internalRootNodeResourcesKey = "__reactResources$" + randomKey,
-      internalHoistableMarker = "__reactMarker$" + randomKey,
-      allNativeEvents = new Set(),
-      registrationNameDependencies = {},
-      possibleRegistrationNames = {},
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g,
-      didWarnValueDefaultValue$1 = !1,
-      didWarnCheckedDefaultChecked = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnInvalidChild = !1,
-      didWarnInvalidInnerHTML = !1;
-    var didWarnValueDefaultValue = !1;
-    var valuePropNames = ["value", "defaultValue"],
-      didWarnValDefaultVal = !1,
-      needsEscaping = /["'&<>\n\t]|^\s|\s$/,
-      specialTags =
-        "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split(
-          " "
-        ),
-      inScopeTags =
-        "applet caption html table td th marquee object template foreignObject desc title".split(
-          " "
-        ),
-      buttonScopeTags = inScopeTags.concat(["button"]),
-      impliedEndTags = "dd dt li option optgroup p rp rt".split(" "),
-      emptyAncestorInfoDev = {
-        current: null,
-        formTag: null,
-        aTagInScope: null,
-        buttonTagInScope: null,
-        nobrTagInScope: null,
-        pTagInButtonScope: null,
-        listItemTagAutoclosing: null,
-        dlItemTagAutoclosing: null,
-        containerTagInScope: null,
-        implicitRootScope: !1
-      },
-      didWarn = {},
-      shorthandToLonghand = {
-        animation:
-          "animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction".split(
-            " "
-          ),
-        background:
-          "backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize".split(
-            " "
-          ),
-        backgroundPosition: ["backgroundPositionX", "backgroundPositionY"],
-        border:
-          "borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth".split(
-            " "
-          ),
-        borderBlockEnd: [
-          "borderBlockEndColor",
-          "borderBlockEndStyle",
-          "borderBlockEndWidth"
-        ],
-        borderBlockStart: [
-          "borderBlockStartColor",
-          "borderBlockStartStyle",
-          "borderBlockStartWidth"
-        ],
-        borderBottom: [
-          "borderBottomColor",
-          "borderBottomStyle",
-          "borderBottomWidth"
-        ],
-        borderColor: [
-          "borderBottomColor",
-          "borderLeftColor",
-          "borderRightColor",
-          "borderTopColor"
-        ],
-        borderImage: [
-          "borderImageOutset",
-          "borderImageRepeat",
-          "borderImageSlice",
-          "borderImageSource",
-          "borderImageWidth"
-        ],
-        borderInlineEnd: [
-          "borderInlineEndColor",
-          "borderInlineEndStyle",
-          "borderInlineEndWidth"
-        ],
-        borderInlineStart: [
-          "borderInlineStartColor",
-          "borderInlineStartStyle",
-          "borderInlineStartWidth"
-        ],
-        borderLeft: ["borderLeftColor", "borderLeftStyle", "borderLeftWidth"],
-        borderRadius: [
-          "borderBottomLeftRadius",
-          "borderBottomRightRadius",
-          "borderTopLeftRadius",
-          "borderTopRightRadius"
-        ],
-        borderRight: [
-          "borderRightColor",
-          "borderRightStyle",
-          "borderRightWidth"
-        ],
-        borderStyle: [
-          "borderBottomStyle",
-          "borderLeftStyle",
-          "borderRightStyle",
-          "borderTopStyle"
-        ],
-        borderTop: ["borderTopColor", "borderTopStyle", "borderTopWidth"],
-        borderWidth: [
-          "borderBottomWidth",
-          "borderLeftWidth",
-          "borderRightWidth",
-          "borderTopWidth"
-        ],
-        columnRule: ["columnRuleColor", "columnRuleStyle", "columnRuleWidth"],
-        columns: ["columnCount", "columnWidth"],
-        flex: ["flexBasis", "flexGrow", "flexShrink"],
-        flexFlow: ["flexDirection", "flexWrap"],
-        font: "fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight".split(
-          " "
-        ),
-        fontVariant:
-          "fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition".split(
-            " "
-          ),
-        gap: ["columnGap", "rowGap"],
-        grid: "gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows".split(
-          " "
-        ),
-        gridArea: [
-          "gridColumnEnd",
-          "gridColumnStart",
-          "gridRowEnd",
-          "gridRowStart"
-        ],
-        gridColumn: ["gridColumnEnd", "gridColumnStart"],
-        gridColumnGap: ["columnGap"],
-        gridGap: ["columnGap", "rowGap"],
-        gridRow: ["gridRowEnd", "gridRowStart"],
-        gridRowGap: ["rowGap"],
-        gridTemplate: [
-          "gridTemplateAreas",
-          "gridTemplateColumns",
-          "gridTemplateRows"
-        ],
-        listStyle: ["listStyleImage", "listStylePosition", "listStyleType"],
-        margin: ["marginBottom", "marginLeft", "marginRight", "marginTop"],
-        marker: ["markerEnd", "markerMid", "markerStart"],
-        mask: "maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize".split(
-          " "
-        ),
-        maskPosition: ["maskPositionX", "maskPositionY"],
-        outline: ["outlineColor", "outlineStyle", "outlineWidth"],
-        overflow: ["overflowX", "overflowY"],
-        padding: ["paddingBottom", "paddingLeft", "paddingRight", "paddingTop"],
-        placeContent: ["alignContent", "justifyContent"],
-        placeItems: ["alignItems", "justifyItems"],
-        placeSelf: ["alignSelf", "justifySelf"],
-        textDecoration: [
-          "textDecorationColor",
-          "textDecorationLine",
-          "textDecorationStyle"
-        ],
-        textEmphasis: ["textEmphasisColor", "textEmphasisStyle"],
-        transition: [
-          "transitionDelay",
-          "transitionDuration",
-          "transitionProperty",
-          "transitionTimingFunction"
-        ],
-        wordWrap: ["overflowWrap"]
-      },
-      uppercasePattern = /([A-Z])/g,
-      msPattern$1 = /^ms-/,
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      MATH_NAMESPACE = "http://www.w3.org/1998/Math/MathML",
-      SVG_NAMESPACE = "http://www.w3.org/2000/svg",
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      currentReplayingEvent = null,
-      restoreTarget = null,
-      restoreQueue = null,
-      isInsideEventHandler = !1,
-      canUseDOM = !(
-        "undefined" === typeof window ||
-        "undefined" === typeof window.document ||
-        "undefined" === typeof window.document.createElement
-      ),
-      passiveBrowserEventsSupported = !1;
-    if (canUseDOM)
-      try {
-        var options$jscomp$0 = {};
-        Object.defineProperty(options$jscomp$0, "passive", {
-          get: function () {
-            passiveBrowserEventsSupported = !0;
-          }
-        });
-        window.addEventListener("test", options$jscomp$0, options$jscomp$0);
-        window.removeEventListener("test", options$jscomp$0, options$jscomp$0);
-      } catch (e) {
-        passiveBrowserEventsSupported = !1;
-      }
-    var root = null,
-      startText = null,
-      fallbackText = null,
-      EventInterface = {
-        eventPhase: 0,
-        bubbles: 0,
-        cancelable: 0,
-        timeStamp: function (event) {
-          return event.timeStamp || Date.now();
-        },
-        defaultPrevented: 0,
-        isTrusted: 0
-      },
-      SyntheticEvent = createSyntheticEvent(EventInterface),
-      UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),
-      SyntheticUIEvent = createSyntheticEvent(UIEventInterface),
-      lastMovementX,
-      lastMovementY,
-      lastMouseEvent,
-      MouseEventInterface = assign({}, UIEventInterface, {
-        screenX: 0,
-        screenY: 0,
-        clientX: 0,
-        clientY: 0,
-        pageX: 0,
-        pageY: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        altKey: 0,
-        metaKey: 0,
-        getModifierState: getEventModifierState,
-        button: 0,
-        buttons: 0,
-        relatedTarget: function (event) {
-          return void 0 === event.relatedTarget
-            ? event.fromElement === event.srcElement
-              ? event.toElement
-              : event.fromElement
-            : event.relatedTarget;
-        },
-        movementX: function (event) {
-          if ("movementX" in event) return event.movementX;
-          event !== lastMouseEvent &&
-            (lastMouseEvent && "mousemove" === event.type
-              ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),
-                (lastMovementY = event.screenY - lastMouseEvent.screenY))
-              : (lastMovementY = lastMovementX = 0),
-            (lastMouseEvent = event));
-          return lastMovementX;
-        },
-        movementY: function (event) {
-          return "movementY" in event ? event.movementY : lastMovementY;
-        }
-      }),
-      SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),
-      DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),
-      SyntheticDragEvent = createSyntheticEvent(DragEventInterface),
-      FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),
-      SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),
-      AnimationEventInterface = assign({}, EventInterface, {
-        animationName: 0,
-        elapsedTime: 0,
-        pseudoElement: 0
-      }),
-      SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),
-      ClipboardEventInterface = assign({}, EventInterface, {
-        clipboardData: function (event) {
-          return "clipboardData" in event
-            ? event.clipboardData
-            : window.clipboardData;
-        }
-      }),
-      SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),
-      CompositionEventInterface = assign({}, EventInterface, { data: 0 }),
-      SyntheticCompositionEvent = createSyntheticEvent(
-        CompositionEventInterface
-      ),
-      SyntheticInputEvent = SyntheticCompositionEvent,
-      normalizeKey = {
-        Esc: "Escape",
-        Spacebar: " ",
-        Left: "ArrowLeft",
-        Up: "ArrowUp",
-        Right: "ArrowRight",
-        Down: "ArrowDown",
-        Del: "Delete",
-        Win: "OS",
-        Menu: "ContextMenu",
-        Apps: "ContextMenu",
-        Scroll: "ScrollLock",
-        MozPrintableKey: "Unidentified"
-      },
-      translateToKey = {
-        8: "Backspace",
-        9: "Tab",
-        12: "Clear",
-        13: "Enter",
-        16: "Shift",
-        17: "Control",
-        18: "Alt",
-        19: "Pause",
-        20: "CapsLock",
-        27: "Escape",
-        32: " ",
-        33: "PageUp",
-        34: "PageDown",
-        35: "End",
-        36: "Home",
-        37: "ArrowLeft",
-        38: "ArrowUp",
-        39: "ArrowRight",
-        40: "ArrowDown",
-        45: "Insert",
-        46: "Delete",
-        112: "F1",
-        113: "F2",
-        114: "F3",
-        115: "F4",
-        116: "F5",
-        117: "F6",
-        118: "F7",
-        119: "F8",
-        120: "F9",
-        121: "F10",
-        122: "F11",
-        123: "F12",
-        144: "NumLock",
-        145: "ScrollLock",
-        224: "Meta"
-      },
-      modifierKeyToProp = {
-        Alt: "altKey",
-        Control: "ctrlKey",
-        Meta: "metaKey",
-        Shift: "shiftKey"
-      },
-      KeyboardEventInterface = assign({}, UIEventInterface, {
-        key: function (nativeEvent) {
-          if (nativeEvent.key) {
-            var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
-            if ("Unidentified" !== key) return key;
-          }
-          return "keypress" === nativeEvent.type
-            ? ((nativeEvent = getEventCharCode(nativeEvent)),
-              13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent))
-            : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type
-              ? translateToKey[nativeEvent.keyCode] || "Unidentified"
-              : "";
-        },
-        code: 0,
-        location: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        altKey: 0,
-        metaKey: 0,
-        repeat: 0,
-        locale: 0,
-        getModifierState: getEventModifierState,
-        charCode: function (event) {
-          return "keypress" === event.type ? getEventCharCode(event) : 0;
-        },
-        keyCode: function (event) {
-          return "keydown" === event.type || "keyup" === event.type
-            ? event.keyCode
-            : 0;
-        },
-        which: function (event) {
-          return "keypress" === event.type
-            ? getEventCharCode(event)
-            : "keydown" === event.type || "keyup" === event.type
-              ? event.keyCode
-              : 0;
-        }
-      }),
-      SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),
-      PointerEventInterface = assign({}, MouseEventInterface, {
-        pointerId: 0,
-        width: 0,
-        height: 0,
-        pressure: 0,
-        tangentialPressure: 0,
-        tiltX: 0,
-        tiltY: 0,
-        twist: 0,
-        pointerType: 0,
-        isPrimary: 0
-      }),
-      SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),
-      TouchEventInterface = assign({}, UIEventInterface, {
-        touches: 0,
-        targetTouches: 0,
-        changedTouches: 0,
-        altKey: 0,
-        metaKey: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        getModifierState: getEventModifierState
-      }),
-      SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),
-      TransitionEventInterface = assign({}, EventInterface, {
-        propertyName: 0,
-        elapsedTime: 0,
-        pseudoElement: 0
-      }),
-      SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),
-      WheelEventInterface = assign({}, MouseEventInterface, {
-        deltaX: function (event) {
-          return "deltaX" in event
-            ? event.deltaX
-            : "wheelDeltaX" in event
-              ? -event.wheelDeltaX
-              : 0;
-        },
-        deltaY: function (event) {
-          return "deltaY" in event
-            ? event.deltaY
-            : "wheelDeltaY" in event
-              ? -event.wheelDeltaY
-              : "wheelDelta" in event
-                ? -event.wheelDelta
-                : 0;
-        },
-        deltaZ: 0,
-        deltaMode: 0
-      }),
-      SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),
-      ToggleEventInterface = assign({}, EventInterface, {
-        newState: 0,
-        oldState: 0
-      }),
-      SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),
-      END_KEYCODES = [9, 13, 27, 32],
-      START_KEYCODE = 229,
-      canUseCompositionEvent = canUseDOM && "CompositionEvent" in window,
-      documentMode = null;
-    canUseDOM &&
-      "documentMode" in document &&
-      (documentMode = document.documentMode);
-    var canUseTextInputEvent =
-        canUseDOM && "TextEvent" in window && !documentMode,
-      useFallbackCompositionData =
-        canUseDOM &&
-        (!canUseCompositionEvent ||
-          (documentMode && 8 < documentMode && 11 >= documentMode)),
-      SPACEBAR_CODE = 32,
-      SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE),
-      hasSpaceKeypress = !1,
-      isComposing = !1,
-      supportedInputTypes = {
-        color: !0,
-        date: !0,
-        datetime: !0,
-        "datetime-local": !0,
-        email: !0,
-        month: !0,
-        number: !0,
-        password: !0,
-        range: !0,
-        search: !0,
-        tel: !0,
-        text: !0,
-        time: !0,
-        url: !0,
-        week: !0
-      },
-      activeElement$1 = null,
-      activeElementInst$1 = null,
-      isInputEventSupported = !1;
-    canUseDOM &&
-      (isInputEventSupported =
-        isEventSupported("input") &&
-        (!document.documentMode || 9 < document.documentMode));
-    var objectIs = "function" === typeof Object.is ? Object.is : is,
-      skipSelectionChangeEvent =
-        canUseDOM && "documentMode" in document && 11 >= document.documentMode,
-      activeElement = null,
-      activeElementInst = null,
-      lastSelection = null,
-      mouseDown = !1,
-      vendorPrefixes = {
-        animationend: makePrefixMap("Animation", "AnimationEnd"),
-        animationiteration: makePrefixMap("Animation", "AnimationIteration"),
-        animationstart: makePrefixMap("Animation", "AnimationStart"),
-        transitionrun: makePrefixMap("Transition", "TransitionRun"),
-        transitionstart: makePrefixMap("Transition", "TransitionStart"),
-        transitioncancel: makePrefixMap("Transition", "TransitionCancel"),
-        transitionend: makePrefixMap("Transition", "TransitionEnd")
-      },
-      prefixedEventNames = {},
-      style = {};
-    canUseDOM &&
-      ((style = document.createElement("div").style),
-      "AnimationEvent" in window ||
-        (delete vendorPrefixes.animationend.animation,
-        delete vendorPrefixes.animationiteration.animation,
-        delete vendorPrefixes.animationstart.animation),
-      "TransitionEvent" in window ||
-        delete vendorPrefixes.transitionend.transition);
-    var ANIMATION_END = getVendorPrefixedEventName("animationend"),
-      ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"),
-      ANIMATION_START = getVendorPrefixedEventName("animationstart"),
-      TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"),
-      TRANSITION_START = getVendorPrefixedEventName("transitionstart"),
-      TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"),
-      TRANSITION_END = getVendorPrefixedEventName("transitionend"),
-      topLevelEventsToReactNames = new Map(),
-      simpleEventPluginEvents =
-        "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
-          " "
-        );
-    simpleEventPluginEvents.push("scrollEnd");
-    var lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var reportGlobalError =
-        "function" === typeof reportError
-          ? reportError
-          : function (error) {
-              if (
-                "object" === typeof window &&
-                "function" === typeof window.ErrorEvent
-              ) {
-                var event = new window.ErrorEvent("error", {
-                  bubbles: !0,
-                  cancelable: !0,
-                  message:
-                    "object" === typeof error &&
-                    null !== error &&
-                    "string" === typeof error.message
-                      ? String(error.message)
-                      : String(error),
-                  error: error
-                });
-                if (!window.dispatchEvent(event)) return;
-              } else if (
-                "object" === typeof process &&
-                "function" === typeof process.emit
-              ) {
-                process.emit("uncaughtException", error);
-                return;
-              }
-              console.error(error);
-            },
-      OMITTED_PROP_ERROR =
-        "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.",
-      EMPTY_ARRAY = 0,
-      COMPLEX_ARRAY = 1,
-      PRIMITIVE_ARRAY = 2,
-      ENTRIES_ARRAY = 3,
-      REMOVED = "\u2013\u00a0",
-      ADDED = "+\u00a0",
-      UNCHANGED = "\u2007\u00a0",
-      supportsUserTiming =
-        "undefined" !== typeof console &&
-        "function" === typeof console.timeStamp &&
-        "undefined" !== typeof performance &&
-        "function" === typeof performance.measure,
-      COMPONENTS_TRACK = "Components \u269b",
-      LANES_TRACK_GROUP = "Scheduler \u269b",
-      currentTrack = "Blocking",
-      alreadyWarnedForDeepEquality = !1,
-      reusableComponentDevToolDetails = {
-        color: "primary",
-        properties: null,
-        tooltipText: "",
-        track: COMPONENTS_TRACK
-      },
-      reusableComponentOptions = {
-        start: -0,
-        end: -0,
-        detail: { devtools: reusableComponentDevToolDetails }
-      },
-      resuableChangedPropsEntry = ["Changed Props", ""],
-      DEEP_EQUALITY_WARNING =
-        "This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner.",
-      reusableDeeplyEqualPropsEntry = ["Changed Props", DEEP_EQUALITY_WARNING],
-      OffscreenVisible = 1,
-      OffscreenPassiveEffectsConnected = 2,
-      concurrentQueues = [],
-      concurrentQueuesIndex = 0,
-      concurrentlyUpdatedLanes = 0,
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var resolveFamily = null,
-      failedBoundaries = null,
-      NoMode = 0,
-      ConcurrentMode = 1,
-      ProfileMode = 2,
-      StrictLegacyMode = 8,
-      StrictEffectsMode = 16,
-      SuspenseyImagesMode = 32;
-    var hasBadMapPolyfill = !1;
-    try {
-      var nonExtensibleObject = Object.preventExtensions({});
-      new Map([[nonExtensibleObject, null]]);
-      new Set([nonExtensibleObject]);
-    } catch (e$3) {
-      hasBadMapPolyfill = !0;
-    }
-    var CapturedStacks = new WeakMap(),
-      forkStack = [],
-      forkStackIndex = 0,
-      treeForkProvider = null,
-      treeForkCount = 0,
-      idStack = [],
-      idStackIndex = 0,
-      treeContextProvider = null,
-      treeContextId = 1,
-      treeContextOverflow = "",
-      hydrationParentFiber = null,
-      nextHydratableInstance = null,
-      isHydrating = !1,
-      didSuspendOrErrorDEV = !1,
-      hydrationDiffRootDEV = null,
-      hydrationErrors = null,
-      rootOrSingletonContext = !1,
-      HydrationMismatchException = Error(
-        "Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
-      ),
-      valueCursor = createCursor(null);
-    var rendererCursorDEV = createCursor(null);
-    var rendererSigil = {};
-    var currentlyRenderingFiber$1 = null,
-      lastContextDependency = null,
-      isDisallowedContextReadInDEV = !1,
-      AbortControllerLocal =
-        "undefined" !== typeof AbortController
-          ? AbortController
-          : function () {
-              var listeners = [],
-                signal = (this.signal = {
-                  aborted: !1,
-                  addEventListener: function (type, listener) {
-                    listeners.push(listener);
-                  }
-                });
-              this.abort = function () {
-                signal.aborted = !0;
-                listeners.forEach(function (listener) {
-                  return listener();
-                });
-              };
-            },
-      scheduleCallback$2 = Scheduler.unstable_scheduleCallback,
-      NormalPriority = Scheduler.unstable_NormalPriority,
-      CacheContext = {
-        $$typeof: REACT_CONTEXT_TYPE,
-        Consumer: null,
-        Provider: null,
-        _currentValue: null,
-        _currentValue2: null,
-        _threadCount: 0,
-        _currentRenderer: null,
-        _currentRenderer2: null
-      },
-      now = Scheduler.unstable_now,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          },
-      SPAWNED_UPDATE = 1,
-      PINGED_UPDATE = 2,
-      renderStartTime = -0,
-      commitStartTime = -0,
-      commitEndTime = -0,
-      commitErrors = null,
-      profilerStartTime = -1.1,
-      profilerEffectDuration = -0,
-      componentEffectDuration = -0,
-      componentEffectStartTime = -1.1,
-      componentEffectEndTime = -1.1,
-      componentEffectErrors = null,
-      componentEffectSpawnedUpdate = !1,
-      blockingClampTime = -0,
-      blockingUpdateTime = -1.1,
-      blockingUpdateTask = null,
-      blockingUpdateType = 0,
-      blockingUpdateMethodName = null,
-      blockingUpdateComponentName = null,
-      blockingEventTime = -1.1,
-      blockingEventType = null,
-      blockingEventRepeatTime = -1.1,
-      blockingSuspendedTime = -1.1,
-      transitionClampTime = -0,
-      transitionStartTime = -1.1,
-      transitionUpdateTime = -1.1,
-      transitionUpdateType = 0,
-      transitionUpdateTask = null,
-      transitionUpdateMethodName = null,
-      transitionUpdateComponentName = null,
-      transitionEventTime = -1.1,
-      transitionEventType = null,
-      transitionEventRepeatTime = -1.1,
-      transitionSuspendedTime = -1.1,
-      retryClampTime = -0,
-      idleClampTime = -0,
-      animatingLanes = 0,
-      animatingTask = null,
-      yieldReason = 0,
-      yieldStartTime = -1.1,
-      currentUpdateIsNested = !1,
-      nestedUpdateScheduled = !1,
-      currentEntangledListeners = null,
-      currentEntangledPendingCount = 0,
-      currentEntangledLane = 0,
-      currentEntangledActionThenable = null,
-      prevOnStartTransitionFinish = ReactSharedInternals.S;
-    ReactSharedInternals.S = function (transition, returnValue) {
-      globalMostRecentTransitionTime = now$1();
-      if (
-        "object" === typeof returnValue &&
-        null !== returnValue &&
-        "function" === typeof returnValue.then
-      ) {
-        if (0 > transitionStartTime && 0 > transitionUpdateTime) {
-          transitionStartTime = now();
-          var newEventTime = resolveEventTimeStamp(),
-            newEventType = resolveEventType();
-          if (
-            newEventTime !== transitionEventRepeatTime ||
-            newEventType !== transitionEventType
-          )
-            transitionEventRepeatTime = -1.1;
-          transitionEventTime = newEventTime;
-          transitionEventType = newEventType;
-        }
-        entangleAsyncAction(transition, returnValue);
-      }
-      null !== prevOnStartTransitionFinish &&
-        prevOnStartTransitionFinish(transition, returnValue);
-    };
-    var resumedCache = createCursor(null),
-      ReactStrictModeWarnings = {
-        recordUnsafeLifecycleWarnings: function () {},
-        flushPendingUnsafeLifecycleWarnings: function () {},
-        recordLegacyContextWarning: function () {},
-        flushLegacyContextWarning: function () {},
-        discardPendingWarnings: function () {}
-      },
-      pendingComponentWillMountWarnings = [],
-      pendingUNSAFE_ComponentWillMountWarnings = [],
-      pendingComponentWillReceivePropsWarnings = [],
-      pendingUNSAFE_ComponentWillReceivePropsWarnings = [],
-      pendingComponentWillUpdateWarnings = [],
-      pendingUNSAFE_ComponentWillUpdateWarnings = [],
-      didWarnAboutUnsafeLifecycles = new Set();
-    ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (
-      fiber,
-      instance
-    ) {
-      didWarnAboutUnsafeLifecycles.has(fiber.type) ||
-        ("function" === typeof instance.componentWillMount &&
-          !0 !== instance.componentWillMount.__suppressDeprecationWarning &&
-          pendingComponentWillMountWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillMount &&
-          pendingUNSAFE_ComponentWillMountWarnings.push(fiber),
-        "function" === typeof instance.componentWillReceiveProps &&
-          !0 !==
-            instance.componentWillReceiveProps.__suppressDeprecationWarning &&
-          pendingComponentWillReceivePropsWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-          pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber),
-        "function" === typeof instance.componentWillUpdate &&
-          !0 !== instance.componentWillUpdate.__suppressDeprecationWarning &&
-          pendingComponentWillUpdateWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillUpdate &&
-          pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber));
-    };
-    ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {
-      var componentWillMountUniqueNames = new Set();
-      0 < pendingComponentWillMountWarnings.length &&
-        (pendingComponentWillMountWarnings.forEach(function (fiber) {
-          componentWillMountUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillMountWarnings = []));
-      var UNSAFE_componentWillMountUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillMountWarnings.length &&
-        (pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {
-          UNSAFE_componentWillMountUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingUNSAFE_ComponentWillMountWarnings = []));
-      var componentWillReceivePropsUniqueNames = new Set();
-      0 < pendingComponentWillReceivePropsWarnings.length &&
-        (pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {
-          componentWillReceivePropsUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillReceivePropsWarnings = []));
-      var UNSAFE_componentWillReceivePropsUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillReceivePropsWarnings.length &&
-        (pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(
-          function (fiber) {
-            UNSAFE_componentWillReceivePropsUniqueNames.add(
-              getComponentNameFromFiber(fiber) || "Component"
-            );
-            didWarnAboutUnsafeLifecycles.add(fiber.type);
-          }
-        ),
-        (pendingUNSAFE_ComponentWillReceivePropsWarnings = []));
-      var componentWillUpdateUniqueNames = new Set();
-      0 < pendingComponentWillUpdateWarnings.length &&
-        (pendingComponentWillUpdateWarnings.forEach(function (fiber) {
-          componentWillUpdateUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillUpdateWarnings = []));
-      var UNSAFE_componentWillUpdateUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillUpdateWarnings.length &&
-        (pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {
-          UNSAFE_componentWillUpdateUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingUNSAFE_ComponentWillUpdateWarnings = []));
-      if (0 < UNSAFE_componentWillMountUniqueNames.size) {
-        var sortedNames = setToSortedString(
-          UNSAFE_componentWillMountUniqueNames
-        );
-        console.error(
-          "Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n\nPlease update the following components: %s",
-          sortedNames
-        );
-      }
-      0 < UNSAFE_componentWillReceivePropsUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          UNSAFE_componentWillReceivePropsUniqueNames
-        )),
-        console.error(
-          "Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < UNSAFE_componentWillUpdateUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          UNSAFE_componentWillUpdateUniqueNames
-        )),
-        console.error(
-          "Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillMountUniqueNames.size &&
-        ((sortedNames = setToSortedString(componentWillMountUniqueNames)),
-        console.warn(
-          "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillReceivePropsUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          componentWillReceivePropsUniqueNames
-        )),
-        console.warn(
-          "componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillUpdateUniqueNames.size &&
-        ((sortedNames = setToSortedString(componentWillUpdateUniqueNames)),
-        console.warn(
-          "componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-    };
-    var pendingLegacyContextWarning = new Map(),
-      didWarnAboutLegacyContext = new Set();
-    ReactStrictModeWarnings.recordLegacyContextWarning = function (
-      fiber,
-      instance
-    ) {
-      var strictRoot = null;
-      for (var node = fiber; null !== node; )
-        node.mode & StrictLegacyMode && (strictRoot = node),
-          (node = node.return);
-      null === strictRoot
-        ? console.error(
-            "Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue."
-          )
-        : !didWarnAboutLegacyContext.has(fiber.type) &&
-          ((node = pendingLegacyContextWarning.get(strictRoot)),
-          null != fiber.type.contextTypes ||
-            null != fiber.type.childContextTypes ||
-            (null !== instance &&
-              "function" === typeof instance.getChildContext)) &&
-          (void 0 === node &&
-            ((node = []), pendingLegacyContextWarning.set(strictRoot, node)),
-          node.push(fiber));
-    };
-    ReactStrictModeWarnings.flushLegacyContextWarning = function () {
-      pendingLegacyContextWarning.forEach(function (fiberArray) {
-        if (0 !== fiberArray.length) {
-          var firstFiber = fiberArray[0],
-            uniqueNames = new Set();
-          fiberArray.forEach(function (fiber) {
-            uniqueNames.add(getComponentNameFromFiber(fiber) || "Component");
-            didWarnAboutLegacyContext.add(fiber.type);
-          });
-          var sortedNames = setToSortedString(uniqueNames);
-          runWithFiberInDEV(firstFiber, function () {
-            console.error(
-              "Legacy context API has been detected within a strict-mode tree.\n\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\n\nPlease update the following components: %s\n\nLearn more about this warning here: https://react.dev/link/legacy-context",
-              sortedNames
-            );
-          });
-        }
-      });
-    };
-    ReactStrictModeWarnings.discardPendingWarnings = function () {
-      pendingComponentWillMountWarnings = [];
-      pendingUNSAFE_ComponentWillMountWarnings = [];
-      pendingComponentWillReceivePropsWarnings = [];
-      pendingUNSAFE_ComponentWillReceivePropsWarnings = [];
-      pendingComponentWillUpdateWarnings = [];
-      pendingUNSAFE_ComponentWillUpdateWarnings = [];
-      pendingLegacyContextWarning = new Map();
-    };
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          var wasRendering = isRendering;
-          isRendering = !0;
-          try {
-            return Component(props, secondArg);
-          } finally {
-            isRendering = wasRendering;
-          }
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          var wasRendering = isRendering;
-          isRendering = !0;
-          try {
-            return instance.render();
-          } finally {
-            isRendering = wasRendering;
-          }
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callComponentDidMount = {
-        react_stack_bottom_frame: function (finishedWork, instance) {
-          try {
-            instance.componentDidMount();
-          } catch (error) {
-            captureCommitPhaseError(finishedWork, finishedWork.return, error);
-          }
-        }
-      },
-      callComponentDidMountInDEV =
-        callComponentDidMount.react_stack_bottom_frame.bind(
-          callComponentDidMount
-        ),
-      callComponentDidUpdate = {
-        react_stack_bottom_frame: function (
-          finishedWork,
-          instance,
-          prevProps,
-          prevState,
-          snapshot
-        ) {
-          try {
-            instance.componentDidUpdate(prevProps, prevState, snapshot);
-          } catch (error) {
-            captureCommitPhaseError(finishedWork, finishedWork.return, error);
-          }
-        }
-      },
-      callComponentDidUpdateInDEV =
-        callComponentDidUpdate.react_stack_bottom_frame.bind(
-          callComponentDidUpdate
-        ),
-      callComponentDidCatch = {
-        react_stack_bottom_frame: function (instance, errorInfo) {
-          var stack = errorInfo.stack;
-          instance.componentDidCatch(errorInfo.value, {
-            componentStack: null !== stack ? stack : ""
-          });
-        }
-      },
-      callComponentDidCatchInDEV =
-        callComponentDidCatch.react_stack_bottom_frame.bind(
-          callComponentDidCatch
-        ),
-      callComponentWillUnmount = {
-        react_stack_bottom_frame: function (
-          current,
-          nearestMountedAncestor,
-          instance
-        ) {
-          try {
-            instance.componentWillUnmount();
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          }
-        }
-      },
-      callComponentWillUnmountInDEV =
-        callComponentWillUnmount.react_stack_bottom_frame.bind(
-          callComponentWillUnmount
-        ),
-      callCreate = {
-        react_stack_bottom_frame: function (effect) {
-          var create = effect.create;
-          effect = effect.inst;
-          create = create();
-          return (effect.destroy = create);
-        }
-      },
-      callCreateInDEV = callCreate.react_stack_bottom_frame.bind(callCreate),
-      callDestroy = {
-        react_stack_bottom_frame: function (
-          current,
-          nearestMountedAncestor,
-          destroy
-        ) {
-          try {
-            destroy();
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          }
-        }
-      },
-      callDestroyInDEV = callDestroy.react_stack_bottom_frame.bind(callDestroy),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      SuspenseyCommitException = Error(
-        "Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
-      ),
-      SuspenseActionException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary."
-      ),
-      noopSuspenseyCommitThenable = {
-        then: function () {
-          console.error(
-            'Internal React error: A listener was unexpectedly attached to a "noop" thenable. This is a bug in React. Please file an issue.'
-          );
-        }
-      },
-      suspendedThenable = null,
-      needsToResetSuspendedThenableDEV = !1,
-      thenableState$1 = null,
-      thenableIndexCounter$1 = 0,
-      currentDebugInfo = null,
-      didWarnAboutMaps;
-    var didWarnAboutGenerators = (didWarnAboutMaps = !1);
-    var ownerHasKeyUseWarning = {};
-    var ownerHasFunctionTypeWarning = {};
-    var ownerHasSymbolTypeWarning = {};
-    warnForMissingKey = function (returnFiber, workInProgress, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var componentName = getComponentNameFromFiber(returnFiber),
-          componentKey = componentName || "null";
-        if (!ownerHasKeyUseWarning[componentKey]) {
-          ownerHasKeyUseWarning[componentKey] = !0;
-          child = child._owner;
-          returnFiber = returnFiber._debugOwner;
-          var currentComponentErrorInfo = "";
-          returnFiber &&
-            "number" === typeof returnFiber.tag &&
-            (componentKey = getComponentNameFromFiber(returnFiber)) &&
-            (currentComponentErrorInfo =
-              "\n\nCheck the render method of `" + componentKey + "`.");
-          currentComponentErrorInfo ||
-            (componentName &&
-              (currentComponentErrorInfo =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          var childOwnerAppendix = "";
-          null != child &&
-            returnFiber !== child &&
-            ((componentName = null),
-            "number" === typeof child.tag
-              ? (componentName = getComponentNameFromFiber(child))
-              : "string" === typeof child.name && (componentName = child.name),
-            componentName &&
-              (childOwnerAppendix =
-                " It was passed a child from " + componentName + "."));
-          runWithFiberInDEV(workInProgress, function () {
-            console.error(
-              'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-              currentComponentErrorInfo,
-              childOwnerAppendix
-            );
-          });
-        }
-      }
-    };
-    var reconcileChildFibers = createChildReconciler(!0),
-      mountChildFibers = createChildReconciler(!1),
-      UpdateState = 0,
-      ReplaceState = 1,
-      ForceUpdate = 2,
-      CaptureUpdate = 3,
-      hasForceUpdate = !1;
-    var didWarnUpdateInsideUpdate = !1;
-    var currentlyProcessingQueue = null;
-    var didReadFromEntangledAsyncAction = !1,
-      currentTreeHiddenStackCursor = createCursor(null),
-      prevEntangledRenderLanesCursor = createCursor(0),
-      suspenseHandlerStackCursor = createCursor(null),
-      shellBoundary = null,
-      SubtreeSuspenseContextMask = 1,
-      ForceSuspenseFallback = 2,
-      suspenseStackCursor = createCursor(0),
-      NoFlags = 0,
-      HasEffect = 1,
-      Insertion = 2,
-      Layout = 4,
-      Passive = 8,
-      didWarnUncachedGetSnapshot;
-    var didWarnAboutMismatchedHooksForComponent = new Set();
-    var didWarnAboutUseWrappedInTryCatch = new Set();
-    var didWarnAboutAsyncClientComponent = new Set();
-    var didWarnAboutUseFormState = new Set();
-    var renderLanes = 0,
-      currentlyRenderingFiber = null,
-      currentHook = null,
-      workInProgressHook = null,
-      didScheduleRenderPhaseUpdate = !1,
-      didScheduleRenderPhaseUpdateDuringThisPass = !1,
-      shouldDoubleInvokeUserFnsInHooksDEV = !1,
-      localIdCounter = 0,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      globalClientIdCounter = 0,
-      RE_RENDER_LIMIT = 25,
-      currentHookNameInDev = null,
-      hookTypesDev = null,
-      hookTypesUpdateIndexDev = -1,
-      ignorePreviousDependencies = !1,
-      ContextOnlyDispatcher = {
-        readContext: readContext,
-        use: use,
-        useCallback: throwInvalidHookError,
-        useContext: throwInvalidHookError,
-        useEffect: throwInvalidHookError,
-        useImperativeHandle: throwInvalidHookError,
-        useLayoutEffect: throwInvalidHookError,
-        useInsertionEffect: throwInvalidHookError,
-        useMemo: throwInvalidHookError,
-        useReducer: throwInvalidHookError,
-        useRef: throwInvalidHookError,
-        useState: throwInvalidHookError,
-        useDebugValue: throwInvalidHookError,
-        useDeferredValue: throwInvalidHookError,
-        useTransition: throwInvalidHookError,
-        useSyncExternalStore: throwInvalidHookError,
-        useId: throwInvalidHookError,
-        useHostTransitionStatus: throwInvalidHookError,
-        useFormState: throwInvalidHookError,
-        useActionState: throwInvalidHookError,
-        useOptimistic: throwInvalidHookError,
-        useMemoCache: throwInvalidHookError,
-        useCacheRefresh: throwInvalidHookError
-      };
-    ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;
-    var HooksDispatcherOnMountInDEV = null,
-      HooksDispatcherOnMountWithHookTypesInDEV = null,
-      HooksDispatcherOnUpdateInDEV = null,
-      HooksDispatcherOnRerenderInDEV = null,
-      InvalidNestedHooksDispatcherOnMountInDEV = null,
-      InvalidNestedHooksDispatcherOnUpdateInDEV = null,
-      InvalidNestedHooksDispatcherOnRerenderInDEV = null;
-    HooksDispatcherOnMountInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        mountHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        mountHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        mountHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        mountHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        mountHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        mountHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        mountHookTypesDev();
-        return mountId();
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        mountHookTypesDev();
-        warnOnUseFormStateInDev();
-        return mountActionState(action, initialState);
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        mountHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        mountHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        mountHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    HooksDispatcherOnMountWithHookTypesInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return mountId();
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    HooksDispatcherOnUpdateInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return updateDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return updateTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return updateActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return updateOptimistic(passthrough, reducer);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    HooksDispatcherOnRerenderInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return rerenderReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return rerenderReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return rerenderDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return rerenderTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return rerenderActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return rerenderOptimistic(passthrough, reducer);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnMountInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountId();
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        mountHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnUpdateInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateOptimistic(passthrough, reducer);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnRerenderInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return rerenderReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return rerenderReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderOptimistic(passthrough, reducer);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    var fakeInternalInstance = {};
-    var didWarnAboutStateAssignmentForComponent = new Set();
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    Object.freeze(fakeInternalInstance);
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.payload = payload;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          payload = enqueueUpdate(inst, update, lane);
-          null !== payload &&
-            (startUpdateTimerByLane(lane, "this.setState()", inst),
-            scheduleUpdateOnFiber(payload, inst, lane),
-            entangleTransitions(payload, inst, lane));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.tag = ReplaceState;
-          update.payload = payload;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          payload = enqueueUpdate(inst, update, lane);
-          null !== payload &&
-            (startUpdateTimerByLane(lane, "this.replaceState()", inst),
-            scheduleUpdateOnFiber(payload, inst, lane),
-            entangleTransitions(payload, inst, lane));
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.tag = ForceUpdate;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          callback = enqueueUpdate(inst, update, lane);
-          null !== callback &&
-            (startUpdateTimerByLane(lane, "this.forceUpdate()", inst),
-            scheduleUpdateOnFiber(callback, inst, lane),
-            entangleTransitions(callback, inst, lane));
-        }
-      },
-      componentName = null,
-      errorBoundaryName = null,
-      SelectiveHydrationException = Error(
-        "This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."
-      ),
-      didReceiveUpdate = !1;
-    var didWarnAboutBadClass = {};
-    var didWarnAboutContextTypeOnFunctionComponent = {};
-    var didWarnAboutContextTypes = {};
-    var didWarnAboutGetDerivedStateOnFunctionComponent = {};
-    var didWarnAboutReassigningProps = !1;
-    var didWarnAboutRevealOrder = {};
-    var didWarnAboutTailOptions = {};
-    var SUSPENDED_MARKER = {
-        dehydrated: null,
-        treeContext: null,
-        retryLane: 0,
-        hydrationErrors: null
-      },
-      hasWarnedAboutUsingNoValuePropOnContextProvider = !1,
-      didWarnAboutUndefinedSnapshotBeforeUpdate = null;
-    didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();
-    var offscreenSubtreeIsHidden = !1,
-      offscreenSubtreeWasHidden = !1,
-      needsFormReset = !1,
-      PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set,
-      nextEffect = null,
-      inProgressLanes = null,
-      inProgressRoot = null,
-      hostParent = null,
-      hostParentIsContainer = !1,
-      currentHoistableRoot = null,
-      inHydratedSubtree = !1,
-      suspenseyCommitFlag = 8192,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function (resourceType) {
-          var cache = readContext(CacheContext),
-            cacheForType = cache.data.get(resourceType);
-          void 0 === cacheForType &&
-            ((cacheForType = resourceType()),
-            cache.data.set(resourceType, cacheForType));
-          return cacheForType;
-        },
-        cacheSignal: function () {
-          return readContext(CacheContext).controller.signal;
-        },
-        getOwner: function () {
-          return current;
-        }
-      };
-    if ("function" === typeof Symbol && Symbol.for) {
-      var symbolFor = Symbol.for;
-      symbolFor("selector.component");
-      symbolFor("selector.has_pseudo_class");
-      symbolFor("selector.role");
-      symbolFor("selector.test_id");
-      symbolFor("selector.text");
-    }
-    var commitHooks = [],
-      PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map,
-      NoContext = 0,
-      RenderContext = 2,
-      CommitContext = 4,
-      RootInProgress = 0,
-      RootFatalErrored = 1,
-      RootErrored = 2,
-      RootSuspended = 3,
-      RootSuspendedWithDelay = 4,
-      RootSuspendedAtTheShell = 6,
-      RootCompleted = 5,
-      executionContext = NoContext,
-      workInProgressRoot = null,
-      workInProgress = null,
-      workInProgressRootRenderLanes = 0,
-      NotSuspended = 0,
-      SuspendedOnError = 1,
-      SuspendedOnData = 2,
-      SuspendedOnImmediate = 3,
-      SuspendedOnInstance = 4,
-      SuspendedOnInstanceAndReadyToContinue = 5,
-      SuspendedOnDeprecatedThrowPromise = 6,
-      SuspendedAndReadyToContinue = 7,
-      SuspendedOnHydration = 8,
-      SuspendedOnAction = 9,
-      workInProgressSuspendedReason = NotSuspended,
-      workInProgressThrownValue = null,
-      workInProgressRootDidSkipSuspendedSiblings = !1,
-      workInProgressRootIsPrerendering = !1,
-      workInProgressRootDidAttachPingListener = !1,
-      entangledRenderLanes = 0,
-      workInProgressRootExitStatus = RootInProgress,
-      workInProgressRootSkippedLanes = 0,
-      workInProgressRootInterleavedUpdatedLanes = 0,
-      workInProgressRootPingedLanes = 0,
-      workInProgressDeferredLane = 0,
-      workInProgressSuspendedRetryLanes = 0,
-      workInProgressRootConcurrentErrors = null,
-      workInProgressRootRecoverableErrors = null,
-      workInProgressRootDidIncludeRecursiveRenderUpdate = !1,
-      globalMostRecentFallbackTime = 0,
-      globalMostRecentTransitionTime = 0,
-      FALLBACK_THROTTLE_MS = 300,
-      workInProgressRootRenderTargetTime = Infinity,
-      RENDER_TIMEOUT_MS = 500,
-      workInProgressTransitions = null,
-      workInProgressUpdateTask = null,
-      legacyErrorBoundariesThatAlreadyFailed = null,
-      IMMEDIATE_COMMIT = 0,
-      ABORTED_VIEW_TRANSITION_COMMIT = 1,
-      DELAYED_PASSIVE_COMMIT = 2,
-      ANIMATION_STARTED_COMMIT = 3,
-      NO_PENDING_EFFECTS = 0,
-      PENDING_MUTATION_PHASE = 1,
-      PENDING_LAYOUT_PHASE = 2,
-      PENDING_AFTER_MUTATION_PHASE = 3,
-      PENDING_SPAWNED_WORK = 4,
-      PENDING_PASSIVE_PHASE = 5,
-      pendingEffectsStatus = 0,
-      pendingEffectsRoot = null,
-      pendingFinishedWork = null,
-      pendingEffectsLanes = 0,
-      pendingEffectsRemainingLanes = 0,
-      pendingEffectsRenderEndTime = -0,
-      pendingPassiveTransitions = null,
-      pendingRecoverableErrors = null,
-      pendingSuspendedCommitReason = null,
-      pendingDelayedCommitReason = IMMEDIATE_COMMIT,
-      pendingSuspendedViewTransitionReason = null,
-      NESTED_UPDATE_LIMIT = 50,
-      nestedUpdateCount = 0,
-      rootWithNestedUpdates = null,
-      isFlushingPassiveEffects = !1,
-      didScheduleUpdateDuringPassiveEffects = !1,
-      NESTED_PASSIVE_UPDATE_LIMIT = 50,
-      nestedPassiveUpdateCount = 0,
-      rootWithPassiveNestedUpdates = null,
-      isRunningInsertionEffect = !1,
-      didWarnStateUpdateForNotYetMountedComponent = null,
-      didWarnAboutUpdateInRender = !1;
-    var didWarnAboutUpdateInRenderForAnotherComponent = new Set();
-    var fakeActCallbackNode$1 = {},
-      firstScheduledRoot = null,
-      lastScheduledRoot = null,
-      didScheduleMicrotask = !1,
-      didScheduleMicrotask_act = !1,
-      mightHavePendingSyncWork = !1,
-      isFlushingWork = !1,
-      currentEventTransitionLane = 0,
-      fakeActCallbackNode = {};
-    (function () {
-      for (var i = 0; i < simpleEventPluginEvents.length; i++) {
-        var eventName = simpleEventPluginEvents[i],
-          domEventName = eventName.toLowerCase();
-        eventName = eventName[0].toUpperCase() + eventName.slice(1);
-        registerSimpleEvent(domEventName, "on" + eventName);
-      }
-      registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
-      registerSimpleEvent(ANIMATION_ITERATION, "onAnimationIteration");
-      registerSimpleEvent(ANIMATION_START, "onAnimationStart");
-      registerSimpleEvent("dblclick", "onDoubleClick");
-      registerSimpleEvent("focusin", "onFocus");
-      registerSimpleEvent("focusout", "onBlur");
-      registerSimpleEvent(TRANSITION_RUN, "onTransitionRun");
-      registerSimpleEvent(TRANSITION_START, "onTransitionStart");
-      registerSimpleEvent(TRANSITION_CANCEL, "onTransitionCancel");
-      registerSimpleEvent(TRANSITION_END, "onTransitionEnd");
-    })();
-    registerDirectEvent("onMouseEnter", ["mouseout", "mouseover"]);
-    registerDirectEvent("onMouseLeave", ["mouseout", "mouseover"]);
-    registerDirectEvent("onPointerEnter", ["pointerout", "pointerover"]);
-    registerDirectEvent("onPointerLeave", ["pointerout", "pointerover"]);
-    registerTwoPhaseEvent(
-      "onChange",
-      "change click focusin focusout input keydown keyup selectionchange".split(
-        " "
-      )
-    );
-    registerTwoPhaseEvent(
-      "onSelect",
-      "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(
-        " "
-      )
-    );
-    registerTwoPhaseEvent("onBeforeInput", [
-      "compositionend",
-      "keypress",
-      "textInput",
-      "paste"
-    ]);
-    registerTwoPhaseEvent(
-      "onCompositionEnd",
-      "compositionend focusout keydown keypress keyup mousedown".split(" ")
-    );
-    registerTwoPhaseEvent(
-      "onCompositionStart",
-      "compositionstart focusout keydown keypress keyup mousedown".split(" ")
-    );
-    registerTwoPhaseEvent(
-      "onCompositionUpdate",
-      "compositionupdate focusout keydown keypress keyup mousedown".split(" ")
-    );
-    var mediaEventTypes =
-        "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
-          " "
-        ),
-      nonDelegatedEvents = new Set(
-        "beforetoggle cancel close invalid load scroll scrollend toggle"
-          .split(" ")
-          .concat(mediaEventTypes)
-      ),
-      listeningMarker = "_reactListening" + Math.random().toString(36).slice(2),
-      didWarnControlledToUncontrolled = !1,
-      didWarnUncontrolledToControlled = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      didWarnPopoverTargetObject = !1;
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var NORMALIZE_NEWLINES_REGEX = /\r\n?/g,
-      NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g,
-      xlinkNamespace = "http://www.w3.org/1999/xlink",
-      xmlNamespace = "http://www.w3.org/XML/1998/namespace",
-      EXPECTED_FORM_ACTION_URL =
-        "javascript:throw new Error('React form unexpectedly submitted.')",
-      SUPPRESS_HYDRATION_WARNING = "suppressHydrationWarning",
-      ACTIVITY_START_DATA = "&",
-      ACTIVITY_END_DATA = "/&",
-      SUSPENSE_START_DATA = "$",
-      SUSPENSE_END_DATA = "/$",
-      SUSPENSE_PENDING_START_DATA = "$?",
-      SUSPENSE_QUEUED_START_DATA = "$~",
-      SUSPENSE_FALLBACK_START_DATA = "$!",
-      PREAMBLE_CONTRIBUTION_HTML = "html",
-      PREAMBLE_CONTRIBUTION_BODY = "body",
-      PREAMBLE_CONTRIBUTION_HEAD = "head",
-      FORM_STATE_IS_MATCHING = "F!",
-      FORM_STATE_IS_NOT_MATCHING = "F",
-      DOCUMENT_READY_STATE_LOADING = "loading",
-      STYLE = "style",
-      HostContextNamespaceNone = 0,
-      HostContextNamespaceSvg = 1,
-      HostContextNamespaceMath = 2,
-      eventsEnabled = null,
-      selectionInformation = null,
-      warnedUnknownTags = { dialog: !0, webview: !0 },
-      currentPopstateTransitionEvent = null,
-      schedulerEvent = void 0,
-      scheduleTimeout = "function" === typeof setTimeout ? setTimeout : void 0,
-      cancelTimeout =
-        "function" === typeof clearTimeout ? clearTimeout : void 0,
-      noTimeout = -1,
-      localPromise = "function" === typeof Promise ? Promise : void 0,
-      scheduleMicrotask =
-        "function" === typeof queueMicrotask
-          ? queueMicrotask
-          : "undefined" !== typeof localPromise
-            ? function (callback) {
-                return localPromise
-                  .resolve(null)
-                  .then(callback)
-                  .catch(handleErrorInNextTick);
-              }
-            : scheduleTimeout,
-      previousHydratableOnEnteringScopedSingleton = null,
-      NotLoaded = 0,
-      Loaded = 1,
-      Errored = 2,
-      Settled = 3,
-      Inserted = 4,
-      preloadPropsMap = new Map(),
-      preconnectsSet = new Set(),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: function () {
-        var previousWasRendering = previousDispatcher.f(),
-          wasRendering = flushSyncWork$1();
-        return previousWasRendering || wasRendering;
-      },
-      r: function (form) {
-        var formInst = getInstanceFromNode(form);
-        null !== formInst && 5 === formInst.tag && "form" === formInst.type
-          ? requestFormReset$1(formInst)
-          : previousDispatcher.r(form);
-      },
-      D: function (href) {
-        previousDispatcher.D(href);
-        preconnectAs("dns-prefetch", href, null);
-      },
-      C: function (href, crossOrigin) {
-        previousDispatcher.C(href, crossOrigin);
-        preconnectAs("preconnect", href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        previousDispatcher.L(href, as, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href && as) {
-          var preloadSelector =
-            'link[rel="preload"][as="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-            '"]';
-          "image" === as
-            ? options && options.imageSrcSet
-              ? ((preloadSelector +=
-                  '[imagesrcset="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(
-                    options.imageSrcSet
-                  ) +
-                  '"]'),
-                "string" === typeof options.imageSizes &&
-                  (preloadSelector +=
-                    '[imagesizes="' +
-                    escapeSelectorAttributeValueInsideDoubleQuotes(
-                      options.imageSizes
-                    ) +
-                    '"]'))
-              : (preloadSelector +=
-                  '[href="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-                  '"]')
-            : (preloadSelector +=
-                '[href="' +
-                escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-                '"]');
-          var key = preloadSelector;
-          switch (as) {
-            case "style":
-              key = getStyleKey(href);
-              break;
-            case "script":
-              key = getScriptKey(href);
-          }
-          preloadPropsMap.has(key) ||
-            ((href = assign(
-              {
-                rel: "preload",
-                href:
-                  "image" === as && options && options.imageSrcSet
-                    ? void 0
-                    : href,
-                as: as
-              },
-              options
-            )),
-            preloadPropsMap.set(key, href),
-            null !== ownerDocument.querySelector(preloadSelector) ||
-              ("style" === as &&
-                ownerDocument.querySelector(
-                  getStylesheetSelectorFromKey(key)
-                )) ||
-              ("script" === as &&
-                ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||
-              ((as = ownerDocument.createElement("link")),
-              setInitialProperties(as, "link", href),
-              markNodeAsHoistable(as),
-              ownerDocument.head.appendChild(as)));
-        }
-      },
-      m: function (href, options) {
-        previousDispatcher.m(href, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href) {
-          var as =
-              options && "string" === typeof options.as ? options.as : "script",
-            preloadSelector =
-              'link[rel="modulepreload"][as="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-              '"][href="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-              '"]',
-            key = preloadSelector;
-          switch (as) {
-            case "audioworklet":
-            case "paintworklet":
-            case "serviceworker":
-            case "sharedworker":
-            case "worker":
-            case "script":
-              key = getScriptKey(href);
-          }
-          if (
-            !preloadPropsMap.has(key) &&
-            ((href = assign({ rel: "modulepreload", href: href }, options)),
-            preloadPropsMap.set(key, href),
-            null === ownerDocument.querySelector(preloadSelector))
-          ) {
-            switch (as) {
-              case "audioworklet":
-              case "paintworklet":
-              case "serviceworker":
-              case "sharedworker":
-              case "worker":
-              case "script":
-                if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))
-                  return;
-            }
-            as = ownerDocument.createElement("link");
-            setInitialProperties(as, "link", href);
-            markNodeAsHoistable(as);
-            ownerDocument.head.appendChild(as);
-          }
-        }
-      },
-      X: function (src, options) {
-        previousDispatcher.X(src, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && src) {
-          var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-            key = getScriptKey(src),
-            resource = scripts.get(key);
-          resource ||
-            ((resource = ownerDocument.querySelector(
-              getScriptSelectorFromKey(key)
-            )),
-            resource ||
-              ((src = assign({ src: src, async: !0 }, options)),
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForScript(src, options),
-              (resource = ownerDocument.createElement("script")),
-              markNodeAsHoistable(resource),
-              setInitialProperties(resource, "link", src),
-              ownerDocument.head.appendChild(resource)),
-            (resource = {
-              type: "script",
-              instance: resource,
-              count: 1,
-              state: null
-            }),
-            scripts.set(key, resource));
-        }
-      },
-      S: function (href, precedence, options) {
-        previousDispatcher.S(href, precedence, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href) {
-          var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,
-            key = getStyleKey(href);
-          precedence = precedence || "default";
-          var resource = styles.get(key);
-          if (!resource) {
-            var state = { loading: NotLoaded, preload: null };
-            if (
-              (resource = ownerDocument.querySelector(
-                getStylesheetSelectorFromKey(key)
-              ))
-            )
-              state.loading = Loaded | Inserted;
-            else {
-              href = assign(
-                {
-                  rel: "stylesheet",
-                  href: href,
-                  "data-precedence": precedence
-                },
-                options
-              );
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForStylesheet(href, options);
-              var link = (resource = ownerDocument.createElement("link"));
-              markNodeAsHoistable(link);
-              setInitialProperties(link, "link", href);
-              link._p = new Promise(function (resolve, reject) {
-                link.onload = resolve;
-                link.onerror = reject;
-              });
-              link.addEventListener("load", function () {
-                state.loading |= Loaded;
-              });
-              link.addEventListener("error", function () {
-                state.loading |= Errored;
-              });
-              state.loading |= Inserted;
-              insertStylesheet(resource, precedence, ownerDocument);
-            }
-            resource = {
-              type: "stylesheet",
-              instance: resource,
-              count: 1,
-              state: state
-            };
-            styles.set(key, resource);
-          }
-        }
-      },
-      M: function (src, options) {
-        previousDispatcher.M(src, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && src) {
-          var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-            key = getScriptKey(src),
-            resource = scripts.get(key);
-          resource ||
-            ((resource = ownerDocument.querySelector(
-              getScriptSelectorFromKey(key)
-            )),
-            resource ||
-              ((src = assign({ src: src, async: !0, type: "module" }, options)),
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForScript(src, options),
-              (resource = ownerDocument.createElement("script")),
-              markNodeAsHoistable(resource),
-              setInitialProperties(resource, "link", src),
-              ownerDocument.head.appendChild(resource)),
-            (resource = {
-              type: "script",
-              instance: resource,
-              count: 1,
-              state: null
-            }),
-            scripts.set(key, resource));
-        }
-      }
-    };
-    var globalDocument = "undefined" === typeof document ? null : document,
-      tagCaches = null,
-      SUSPENSEY_STYLESHEET_TIMEOUT = 6e4,
-      SUSPENSEY_IMAGE_TIMEOUT = 800,
-      SUSPENSEY_IMAGE_TIME_ESTIMATE = 500,
-      estimatedBytesWithinLimit = 0,
-      LAST_PRECEDENCE = null,
-      precedencesByRoot = null,
-      NotPendingTransition = NotPending,
-      HostTransitionContext = {
-        $$typeof: REACT_CONTEXT_TYPE,
-        Provider: null,
-        Consumer: null,
-        _currentValue: NotPendingTransition,
-        _currentValue2: NotPendingTransition,
-        _threadCount: 0
-      },
-      badgeFormat = "%c%s%c",
-      badgeStyle =
-        "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-      resetStyle = "",
-      pad = " ",
-      bind = Function.prototype.bind;
-    var didWarnAboutNestedUpdates = !1;
-    var overrideHookState = null,
-      overrideHookStateDeletePath = null,
-      overrideHookStateRenamePath = null,
-      overrideProps = null,
-      overridePropsDeletePath = null,
-      overridePropsRenamePath = null,
-      scheduleUpdate = null,
-      scheduleRetry = null,
-      setErrorHandler = null,
-      setSuspenseHandler = null;
-    overrideHookState = function (fiber, id, path, value) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((path = copyWithSetImpl(id.memoizedState, path, 0, value)),
-        (id.memoizedState = path),
-        (id.baseState = path),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (path = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== path && scheduleUpdateOnFiber(path, fiber, 2));
-    };
-    overrideHookStateDeletePath = function (fiber, id, path) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((path = copyWithDeleteImpl(id.memoizedState, path, 0)),
-        (id.memoizedState = path),
-        (id.baseState = path),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (path = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== path && scheduleUpdateOnFiber(path, fiber, 2));
-    };
-    overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((oldPath = copyWithRename(id.memoizedState, oldPath, newPath)),
-        (id.memoizedState = oldPath),
-        (id.baseState = oldPath),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (oldPath = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2));
-    };
-    overrideProps = function (fiber, path, value) {
-      fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path, 0, value);
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      path = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== path && scheduleUpdateOnFiber(path, fiber, 2);
-    };
-    overridePropsDeletePath = function (fiber, path) {
-      fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path, 0);
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      path = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== path && scheduleUpdateOnFiber(path, fiber, 2);
-    };
-    overridePropsRenamePath = function (fiber, oldPath, newPath) {
-      fiber.pendingProps = copyWithRename(
-        fiber.memoizedProps,
-        oldPath,
-        newPath
-      );
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      oldPath = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2);
-    };
-    scheduleUpdate = function (fiber) {
-      var root = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-    };
-    scheduleRetry = function (fiber) {
-      var lane = claimNextRetryLane(),
-        root = enqueueConcurrentRenderForLane(fiber, lane);
-      null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-    };
-    setErrorHandler = function (newShouldErrorImpl) {
-      shouldErrorImpl = newShouldErrorImpl;
-    };
-    setSuspenseHandler = function (newShouldSuspendImpl) {
-      shouldSuspendImpl = newShouldSuspendImpl;
-    };
-    var _enabled = !0,
-      return_targetInst = null,
-      hasScheduledReplayAttempt = !1,
-      queuedFocus = null,
-      queuedDrag = null,
-      queuedMouse = null,
-      queuedPointers = new Map(),
-      queuedPointerCaptures = new Map(),
-      queuedExplicitHydrationTargets = [],
-      discreteReplayableEvents =
-        "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(
-          " "
-        ),
-      lastScheduledReplayQueue = null;
-    ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =
-      function (children) {
-        var root = this._internalRoot;
-        if (null === root) throw Error("Cannot update an unmounted root.");
-        var args = arguments;
-        "function" === typeof args[1]
-          ? console.error(
-              "does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect()."
-            )
-          : isValidContainer(args[1])
-            ? console.error(
-                "You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root."
-              )
-            : "undefined" !== typeof args[1] &&
-              console.error(
-                "You passed a second argument to root.render(...) but it only accepts one argument."
-              );
-        args = children;
-        var current = root.current,
-          lane = requestUpdateLane(current);
-        updateContainerImpl(current, lane, args, root, null, null);
-      };
-    ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =
-      function () {
-        var args = arguments;
-        "function" === typeof args[0] &&
-          console.error(
-            "does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect()."
-          );
-        args = this._internalRoot;
-        if (null !== args) {
-          this._internalRoot = null;
-          var container = args.containerInfo;
-          (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-            console.error(
-              "Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition."
-            );
-          updateContainerImpl(args.current, 2, null, args, null, null);
-          flushSyncWork$1();
-          container[internalContainerInstanceKey] = null;
-        }
-      };
-    ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (
-      target
-    ) {
-      if (target) {
-        var updatePriority = resolveUpdatePriority();
-        target = { blockedOn: null, target: target, priority: updatePriority };
-        for (
-          var i = 0;
-          i < queuedExplicitHydrationTargets.length &&
-          0 !== updatePriority &&
-          updatePriority < queuedExplicitHydrationTargets[i].priority;
-          i++
-        );
-        queuedExplicitHydrationTargets.splice(i, 0, target);
-        0 === i && attemptExplicitHydrationTarget(target);
-      }
-    };
-    (function () {
-      var isomorphicReactPackageVersion = React.version;
-      if ("19.2.3" !== isomorphicReactPackageVersion)
-        throw Error(
-          'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-            (isomorphicReactPackageVersion +
-              "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-        );
-    })();
-    ("function" === typeof Map &&
-      null != Map.prototype &&
-      "function" === typeof Map.prototype.forEach &&
-      "function" === typeof Set &&
-      null != Set.prototype &&
-      "function" === typeof Set.prototype.clear &&
-      "function" === typeof Set.prototype.forEach) ||
-      console.error(
-        "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills"
-      );
-    ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
-      var fiber = componentOrElement._reactInternals;
-      if (void 0 === fiber) {
-        if ("function" === typeof componentOrElement.render)
-          throw Error("Unable to find node on an unmounted component.");
-        componentOrElement = Object.keys(componentOrElement).join(",");
-        throw Error(
-          "Argument appears to not be a ReactComponent. Keys: " +
-            componentOrElement
-        );
-      }
-      componentOrElement = findCurrentFiberUsingSlowPath(fiber);
-      componentOrElement =
-        null !== componentOrElement
-          ? findCurrentHostFiberImpl(componentOrElement)
-          : null;
-      componentOrElement =
-        null === componentOrElement ? null : componentOrElement.stateNode;
-      return componentOrElement;
-    };
-    if (
-      !(function () {
-        var internals = {
-          bundleType: 1,
-          version: "19.2.3",
-          rendererPackageName: "react-dom",
-          currentDispatcherRef: ReactSharedInternals,
-          reconcilerVersion: "19.2.3"
-        };
-        internals.overrideHookState = overrideHookState;
-        internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
-        internals.overrideHookStateRenamePath = overrideHookStateRenamePath;
-        internals.overrideProps = overrideProps;
-        internals.overridePropsDeletePath = overridePropsDeletePath;
-        internals.overridePropsRenamePath = overridePropsRenamePath;
-        internals.scheduleUpdate = scheduleUpdate;
-        internals.scheduleRetry = scheduleRetry;
-        internals.setErrorHandler = setErrorHandler;
-        internals.setSuspenseHandler = setSuspenseHandler;
-        internals.scheduleRefresh = scheduleRefresh;
-        internals.scheduleRoot = scheduleRoot;
-        internals.setRefreshHandler = setRefreshHandler;
-        internals.getCurrentFiber = getCurrentFiberForDevTools;
-        return injectInternals(internals);
-      })() &&
-      canUseDOM &&
-      window.top === window.self &&
-      ((-1 < navigator.userAgent.indexOf("Chrome") &&
-        -1 === navigator.userAgent.indexOf("Edge")) ||
-        -1 < navigator.userAgent.indexOf("Firefox"))
-    ) {
-      var protocol = window.location.protocol;
-      /^(https?|file):$/.test(protocol) &&
-        console.info(
-          "%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools" +
-            ("file:" === protocol
-              ? "\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq"
-              : ""),
-          "font-weight:bold"
-        );
-    }
-    exports.createRoot = function (container, options) {
-      if (!isValidContainer(container))
-        throw Error("Target container is not a DOM element.");
-      warnIfReactDOMContainerInDEV(container);
-      var isStrictMode = !1,
-        identifierPrefix = "",
-        onUncaughtError = defaultOnUncaughtError,
-        onCaughtError = defaultOnCaughtError,
-        onRecoverableError = defaultOnRecoverableError;
-      null !== options &&
-        void 0 !== options &&
-        (options.hydrate
-          ? console.warn(
-              "hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead."
-            )
-          : "object" === typeof options &&
-            null !== options &&
-            options.$$typeof === REACT_ELEMENT_TYPE &&
-            console.error(
-              "You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\n\n  let root = createRoot(domContainer);\n  root.render(<App />);"
-            ),
-        !0 === options.unstable_strictMode && (isStrictMode = !0),
-        void 0 !== options.identifierPrefix &&
-          (identifierPrefix = options.identifierPrefix),
-        void 0 !== options.onUncaughtError &&
-          (onUncaughtError = options.onUncaughtError),
-        void 0 !== options.onCaughtError &&
-          (onCaughtError = options.onCaughtError),
-        void 0 !== options.onRecoverableError &&
-          (onRecoverableError = options.onRecoverableError));
-      options = createFiberRoot(
-        container,
-        1,
-        !1,
-        null,
-        null,
-        isStrictMode,
-        identifierPrefix,
-        null,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        defaultOnDefaultTransitionIndicator
-      );
-      container[internalContainerInstanceKey] = options.current;
-      listenToAllSupportedEvents(container);
-      return new ReactDOMRoot(options);
-    };
-    exports.hydrateRoot = function (container, initialChildren, options) {
-      if (!isValidContainer(container))
-        throw Error("Target container is not a DOM element.");
-      warnIfReactDOMContainerInDEV(container);
-      void 0 === initialChildren &&
-        console.error(
-          "Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)"
-        );
-      var isStrictMode = !1,
-        identifierPrefix = "",
-        onUncaughtError = defaultOnUncaughtError,
-        onCaughtError = defaultOnCaughtError,
-        onRecoverableError = defaultOnRecoverableError,
-        formState = null;
-      null !== options &&
-        void 0 !== options &&
-        (!0 === options.unstable_strictMode && (isStrictMode = !0),
-        void 0 !== options.identifierPrefix &&
-          (identifierPrefix = options.identifierPrefix),
-        void 0 !== options.onUncaughtError &&
-          (onUncaughtError = options.onUncaughtError),
-        void 0 !== options.onCaughtError &&
-          (onCaughtError = options.onCaughtError),
-        void 0 !== options.onRecoverableError &&
-          (onRecoverableError = options.onRecoverableError),
-        void 0 !== options.formState && (formState = options.formState));
-      initialChildren = createFiberRoot(
-        container,
-        1,
-        !0,
-        initialChildren,
-        null != options ? options : null,
-        isStrictMode,
-        identifierPrefix,
-        formState,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        defaultOnDefaultTransitionIndicator
-      );
-      initialChildren.context = getContextForSubtree(null);
-      options = initialChildren.current;
-      isStrictMode = requestUpdateLane(options);
-      isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);
-      identifierPrefix = createUpdate(isStrictMode);
-      identifierPrefix.callback = null;
-      enqueueUpdate(options, identifierPrefix, isStrictMode);
-      startUpdateTimerByLane(isStrictMode, "hydrateRoot()", null);
-      options = isStrictMode;
-      initialChildren.current.lanes = options;
-      markRootUpdated$1(initialChildren, options);
-      ensureRootIsScheduled(initialChildren);
-      container[internalContainerInstanceKey] = initialChildren.current;
-      listenToAllSupportedEvents(container);
-      return new ReactDOMHydrationRoot(initialChildren);
-    };
-    exports.version = "19.2.3";
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/react-dom/cjs/react-dom-client.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-client.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16049 +1,0 @@
-/**
- * @license React
- * react-dom-client.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.
- */
-
-/*
- Modernizr 3.0.0pre (Custom Build) | MIT
-*/
-"use strict";
-var Scheduler = require("scheduler"),
-  React = require("react"),
-  ReactDOM = require("react-dom");
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-function isValidContainer(node) {
-  return !(
-    !node ||
-    (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)
-  );
-}
-function getNearestMountedFiber(fiber) {
-  var node = fiber,
-    nearestMounted = fiber;
-  if (fiber.alternate) for (; node.return; ) node = node.return;
-  else {
-    fiber = node;
-    do
-      (node = fiber),
-        0 !== (node.flags & 4098) && (nearestMounted = node.return),
-        (fiber = node.return);
-    while (fiber);
-  }
-  return 3 === node.tag ? nearestMounted : null;
-}
-function getSuspenseInstanceFromFiber(fiber) {
-  if (13 === fiber.tag) {
-    var suspenseState = fiber.memoizedState;
-    null === suspenseState &&
-      ((fiber = fiber.alternate),
-      null !== fiber && (suspenseState = fiber.memoizedState));
-    if (null !== suspenseState) return suspenseState.dehydrated;
-  }
-  return null;
-}
-function getActivityInstanceFromFiber(fiber) {
-  if (31 === fiber.tag) {
-    var activityState = fiber.memoizedState;
-    null === activityState &&
-      ((fiber = fiber.alternate),
-      null !== fiber && (activityState = fiber.memoizedState));
-    if (null !== activityState) return activityState.dehydrated;
-  }
-  return null;
-}
-function assertIsMounted(fiber) {
-  if (getNearestMountedFiber(fiber) !== fiber)
-    throw Error(formatProdErrorMessage(188));
-}
-function findCurrentFiberUsingSlowPath(fiber) {
-  var alternate = fiber.alternate;
-  if (!alternate) {
-    alternate = getNearestMountedFiber(fiber);
-    if (null === alternate) throw Error(formatProdErrorMessage(188));
-    return alternate !== fiber ? null : fiber;
-  }
-  for (var a = fiber, b = alternate; ; ) {
-    var parentA = a.return;
-    if (null === parentA) break;
-    var parentB = parentA.alternate;
-    if (null === parentB) {
-      b = parentA.return;
-      if (null !== b) {
-        a = b;
-        continue;
-      }
-      break;
-    }
-    if (parentA.child === parentB.child) {
-      for (parentB = parentA.child; parentB; ) {
-        if (parentB === a) return assertIsMounted(parentA), fiber;
-        if (parentB === b) return assertIsMounted(parentA), alternate;
-        parentB = parentB.sibling;
-      }
-      throw Error(formatProdErrorMessage(188));
-    }
-    if (a.return !== b.return) (a = parentA), (b = parentB);
-    else {
-      for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {
-        if (child$0 === a) {
-          didFindChild = !0;
-          a = parentA;
-          b = parentB;
-          break;
-        }
-        if (child$0 === b) {
-          didFindChild = !0;
-          b = parentA;
-          a = parentB;
-          break;
-        }
-        child$0 = child$0.sibling;
-      }
-      if (!didFindChild) {
-        for (child$0 = parentB.child; child$0; ) {
-          if (child$0 === a) {
-            didFindChild = !0;
-            a = parentB;
-            b = parentA;
-            break;
-          }
-          if (child$0 === b) {
-            didFindChild = !0;
-            b = parentB;
-            a = parentA;
-            break;
-          }
-          child$0 = child$0.sibling;
-        }
-        if (!didFindChild) throw Error(formatProdErrorMessage(189));
-      }
-    }
-    if (a.alternate !== b) throw Error(formatProdErrorMessage(190));
-  }
-  if (3 !== a.tag) throw Error(formatProdErrorMessage(188));
-  return a.stateNode.current === a ? fiber : alternate;
-}
-function findCurrentHostFiberImpl(node) {
-  var tag = node.tag;
-  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;
-  for (node = node.child; null !== node; ) {
-    tag = findCurrentHostFiberImpl(node);
-    if (null !== tag) return tag;
-    node = node.sibling;
-  }
-  return null;
-}
-var assign = Object.assign,
-  REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy");
-Symbol.for("react.scope");
-var REACT_ACTIVITY_TYPE = Symbol.for("react.activity");
-Symbol.for("react.legacy_hidden");
-Symbol.for("react.tracing_marker");
-var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
-Symbol.for("react.view_transition");
-var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var isArrayImpl = Array.isArray,
-  ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  valueStack = [],
-  index = -1;
-function createCursor(defaultValue) {
-  return { current: defaultValue };
-}
-function pop(cursor) {
-  0 > index ||
-    ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);
-}
-function push(cursor, value) {
-  index++;
-  valueStack[index] = cursor.current;
-  cursor.current = value;
-}
-var contextStackCursor = createCursor(null),
-  contextFiberStackCursor = createCursor(null),
-  rootInstanceStackCursor = createCursor(null),
-  hostTransitionProviderCursor = createCursor(null);
-function pushHostContainer(fiber, nextRootInstance) {
-  push(rootInstanceStackCursor, nextRootInstance);
-  push(contextFiberStackCursor, fiber);
-  push(contextStackCursor, null);
-  switch (nextRootInstance.nodeType) {
-    case 9:
-    case 11:
-      fiber = (fiber = nextRootInstance.documentElement)
-        ? (fiber = fiber.namespaceURI)
-          ? getOwnHostContext(fiber)
-          : 0
-        : 0;
-      break;
-    default:
-      if (
-        ((fiber = nextRootInstance.tagName),
-        (nextRootInstance = nextRootInstance.namespaceURI))
-      )
-        (nextRootInstance = getOwnHostContext(nextRootInstance)),
-          (fiber = getChildHostContextProd(nextRootInstance, fiber));
-      else
-        switch (fiber) {
-          case "svg":
-            fiber = 1;
-            break;
-          case "math":
-            fiber = 2;
-            break;
-          default:
-            fiber = 0;
-        }
-  }
-  pop(contextStackCursor);
-  push(contextStackCursor, fiber);
-}
-function popHostContainer() {
-  pop(contextStackCursor);
-  pop(contextFiberStackCursor);
-  pop(rootInstanceStackCursor);
-}
-function pushHostContext(fiber) {
-  null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);
-  var context = contextStackCursor.current;
-  var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);
-  context !== JSCompiler_inline_result &&
-    (push(contextFiberStackCursor, fiber),
-    push(contextStackCursor, JSCompiler_inline_result));
-}
-function popHostContext(fiber) {
-  contextFiberStackCursor.current === fiber &&
-    (pop(contextStackCursor), pop(contextFiberStackCursor));
-  hostTransitionProviderCursor.current === fiber &&
-    (pop(hostTransitionProviderCursor),
-    (HostTransitionContext._currentValue = sharedNotPendingObject));
-}
-var prefix, suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$1) {
-                control = x$1;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$2) {
-              control = x$2;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeFiber(fiber, childFiber) {
-  switch (fiber.tag) {
-    case 26:
-    case 27:
-    case 5:
-      return describeBuiltInComponentFrame(fiber.type);
-    case 16:
-      return describeBuiltInComponentFrame("Lazy");
-    case 13:
-      return fiber.child !== childFiber && null !== childFiber
-        ? describeBuiltInComponentFrame("Suspense Fallback")
-        : describeBuiltInComponentFrame("Suspense");
-    case 19:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case 0:
-    case 15:
-      return describeNativeComponentFrame(fiber.type, !1);
-    case 11:
-      return describeNativeComponentFrame(fiber.type.render, !1);
-    case 1:
-      return describeNativeComponentFrame(fiber.type, !0);
-    case 31:
-      return describeBuiltInComponentFrame("Activity");
-    default:
-      return "";
-  }
-}
-function getStackByFiberInDevAndProd(workInProgress) {
-  try {
-    var info = "",
-      previous = null;
-    do
-      (info += describeFiber(workInProgress, previous)),
-        (previous = workInProgress),
-        (workInProgress = workInProgress.return);
-    while (workInProgress);
-    return info;
-  } catch (x) {
-    return "\nError generating stack: " + x.message + "\n" + x.stack;
-  }
-}
-var hasOwnProperty = Object.prototype.hasOwnProperty,
-  scheduleCallback$3 = Scheduler.unstable_scheduleCallback,
-  cancelCallback$1 = Scheduler.unstable_cancelCallback,
-  shouldYield = Scheduler.unstable_shouldYield,
-  requestPaint = Scheduler.unstable_requestPaint,
-  now = Scheduler.unstable_now,
-  getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,
-  ImmediatePriority = Scheduler.unstable_ImmediatePriority,
-  UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,
-  NormalPriority$1 = Scheduler.unstable_NormalPriority,
-  LowPriority = Scheduler.unstable_LowPriority,
-  IdlePriority = Scheduler.unstable_IdlePriority,
-  log$1 = Scheduler.log,
-  unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,
-  rendererID = null,
-  injectedHook = null;
-function setIsStrictModeForDevtools(newIsStrictMode) {
-  "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);
-  if (injectedHook && "function" === typeof injectedHook.setStrictMode)
-    try {
-      injectedHook.setStrictMode(rendererID, newIsStrictMode);
-    } catch (err) {}
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-var nextTransitionUpdateLane = 256,
-  nextTransitionDeferredLane = 262144,
-  nextRetryLane = 4194304;
-function getHighestPriorityLanes(lanes) {
-  var pendingSyncLanes = lanes & 42;
-  if (0 !== pendingSyncLanes) return pendingSyncLanes;
-  switch (lanes & -lanes) {
-    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:
-      return 64;
-    case 128:
-      return 128;
-    case 256:
-    case 512:
-    case 1024:
-    case 2048:
-    case 4096:
-    case 8192:
-    case 16384:
-    case 32768:
-    case 65536:
-    case 131072:
-      return lanes & 261888;
-    case 262144:
-    case 524288:
-    case 1048576:
-    case 2097152:
-      return lanes & 3932160;
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      return lanes & 62914560;
-    case 67108864:
-      return 67108864;
-    case 134217728:
-      return 134217728;
-    case 268435456:
-      return 268435456;
-    case 536870912:
-      return 536870912;
-    case 1073741824:
-      return 0;
-    default:
-      return lanes;
-  }
-}
-function getNextLanes(root, wipLanes, rootHasPendingCommit) {
-  var pendingLanes = root.pendingLanes;
-  if (0 === pendingLanes) return 0;
-  var nextLanes = 0,
-    suspendedLanes = root.suspendedLanes,
-    pingedLanes = root.pingedLanes;
-  root = root.warmLanes;
-  var nonIdlePendingLanes = pendingLanes & 134217727;
-  0 !== nonIdlePendingLanes
-    ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),
-      0 !== pendingLanes
-        ? (nextLanes = getHighestPriorityLanes(pendingLanes))
-        : ((pingedLanes &= nonIdlePendingLanes),
-          0 !== pingedLanes
-            ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-            : rootHasPendingCommit ||
-              ((rootHasPendingCommit = nonIdlePendingLanes & ~root),
-              0 !== rootHasPendingCommit &&
-                (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))
-    : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),
-      0 !== nonIdlePendingLanes
-        ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
-        : 0 !== pingedLanes
-          ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-          : rootHasPendingCommit ||
-            ((rootHasPendingCommit = pendingLanes & ~root),
-            0 !== rootHasPendingCommit &&
-              (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));
-  return 0 === nextLanes
-    ? 0
-    : 0 !== wipLanes &&
-        wipLanes !== nextLanes &&
-        0 === (wipLanes & suspendedLanes) &&
-        ((suspendedLanes = nextLanes & -nextLanes),
-        (rootHasPendingCommit = wipLanes & -wipLanes),
-        suspendedLanes >= rootHasPendingCommit ||
-          (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))
-      ? wipLanes
-      : nextLanes;
-}
-function checkIfRootIsPrerendering(root, renderLanes) {
-  return (
-    0 ===
-    (root.pendingLanes &
-      ~(root.suspendedLanes & ~root.pingedLanes) &
-      renderLanes)
-  );
-}
-function computeExpirationTime(lane, currentTime) {
-  switch (lane) {
-    case 1:
-    case 2:
-    case 4:
-    case 8:
-    case 64:
-      return currentTime + 250;
-    case 16:
-    case 32:
-    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 currentTime + 5e3;
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      return -1;
-    case 67108864:
-    case 134217728:
-    case 268435456:
-    case 536870912:
-    case 1073741824:
-      return -1;
-    default:
-      return -1;
-  }
-}
-function claimNextRetryLane() {
-  var lane = nextRetryLane;
-  nextRetryLane <<= 1;
-  0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);
-  return lane;
-}
-function createLaneMap(initial) {
-  for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);
-  return laneMap;
-}
-function markRootUpdated$1(root, updateLane) {
-  root.pendingLanes |= updateLane;
-  268435456 !== updateLane &&
-    ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));
-}
-function markRootFinished(
-  root,
-  finishedLanes,
-  remainingLanes,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes
-) {
-  var previouslyPendingLanes = root.pendingLanes;
-  root.pendingLanes = remainingLanes;
-  root.suspendedLanes = 0;
-  root.pingedLanes = 0;
-  root.warmLanes = 0;
-  root.expiredLanes &= remainingLanes;
-  root.entangledLanes &= remainingLanes;
-  root.errorRecoveryDisabledLanes &= remainingLanes;
-  root.shellSuspendCounter = 0;
-  var entanglements = root.entanglements,
-    expirationTimes = root.expirationTimes,
-    hiddenUpdates = root.hiddenUpdates;
-  for (
-    remainingLanes = previouslyPendingLanes & ~remainingLanes;
-    0 < remainingLanes;
-
-  ) {
-    var index$7 = 31 - clz32(remainingLanes),
-      lane = 1 << index$7;
-    entanglements[index$7] = 0;
-    expirationTimes[index$7] = -1;
-    var hiddenUpdatesForLane = hiddenUpdates[index$7];
-    if (null !== hiddenUpdatesForLane)
-      for (
-        hiddenUpdates[index$7] = null, index$7 = 0;
-        index$7 < hiddenUpdatesForLane.length;
-        index$7++
-      ) {
-        var update = hiddenUpdatesForLane[index$7];
-        null !== update && (update.lane &= -536870913);
-      }
-    remainingLanes &= ~lane;
-  }
-  0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
-  0 !== suspendedRetryLanes &&
-    0 === updatedLanes &&
-    0 !== root.tag &&
-    (root.suspendedLanes |=
-      suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
-}
-function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {
-  root.pendingLanes |= spawnedLane;
-  root.suspendedLanes &= ~spawnedLane;
-  var spawnedLaneIndex = 31 - clz32(spawnedLane);
-  root.entangledLanes |= spawnedLane;
-  root.entanglements[spawnedLaneIndex] =
-    root.entanglements[spawnedLaneIndex] |
-    1073741824 |
-    (entangledLanes & 261930);
-}
-function markRootEntangled(root, entangledLanes) {
-  var rootEntangledLanes = (root.entangledLanes |= entangledLanes);
-  for (root = root.entanglements; rootEntangledLanes; ) {
-    var index$8 = 31 - clz32(rootEntangledLanes),
-      lane = 1 << index$8;
-    (lane & entangledLanes) | (root[index$8] & entangledLanes) &&
-      (root[index$8] |= entangledLanes);
-    rootEntangledLanes &= ~lane;
-  }
-}
-function getBumpedLaneForHydration(root, renderLanes) {
-  var renderLane = renderLanes & -renderLanes;
-  renderLane =
-    0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);
-  return 0 !== (renderLane & (root.suspendedLanes | renderLanes))
-    ? 0
-    : renderLane;
-}
-function getBumpedLaneForHydrationByLane(lane) {
-  switch (lane) {
-    case 2:
-      lane = 1;
-      break;
-    case 8:
-      lane = 4;
-      break;
-    case 32:
-      lane = 16;
-      break;
-    case 256:
-    case 512:
-    case 1024:
-    case 2048:
-    case 4096:
-    case 8192:
-    case 16384:
-    case 32768:
-    case 65536:
-    case 131072:
-    case 262144:
-    case 524288:
-    case 1048576:
-    case 2097152:
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      lane = 128;
-      break;
-    case 268435456:
-      lane = 134217728;
-      break;
-    default:
-      lane = 0;
-  }
-  return lane;
-}
-function lanesToEventPriority(lanes) {
-  lanes &= -lanes;
-  return 2 < lanes
-    ? 8 < lanes
-      ? 0 !== (lanes & 134217727)
-        ? 32
-        : 268435456
-      : 8
-    : 2;
-}
-function resolveUpdatePriority() {
-  var updatePriority = ReactDOMSharedInternals.p;
-  if (0 !== updatePriority) return updatePriority;
-  updatePriority = window.event;
-  return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);
-}
-function runWithPriority(priority, fn) {
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    return (ReactDOMSharedInternals.p = priority), fn();
-  } finally {
-    ReactDOMSharedInternals.p = previousPriority;
-  }
-}
-var randomKey = Math.random().toString(36).slice(2),
-  internalInstanceKey = "__reactFiber$" + randomKey,
-  internalPropsKey = "__reactProps$" + randomKey,
-  internalContainerInstanceKey = "__reactContainer$" + randomKey,
-  internalEventHandlersKey = "__reactEvents$" + randomKey,
-  internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
-  internalEventHandlesSetKey = "__reactHandles$" + randomKey,
-  internalRootNodeResourcesKey = "__reactResources$" + randomKey,
-  internalHoistableMarker = "__reactMarker$" + randomKey;
-function detachDeletedInstance(node) {
-  delete node[internalInstanceKey];
-  delete node[internalPropsKey];
-  delete node[internalEventHandlersKey];
-  delete node[internalEventHandlerListenersKey];
-  delete node[internalEventHandlesSetKey];
-}
-function getClosestInstanceFromNode(targetNode) {
-  var targetInst = targetNode[internalInstanceKey];
-  if (targetInst) return targetInst;
-  for (var parentNode = targetNode.parentNode; parentNode; ) {
-    if (
-      (targetInst =
-        parentNode[internalContainerInstanceKey] ||
-        parentNode[internalInstanceKey])
-    ) {
-      parentNode = targetInst.alternate;
-      if (
-        null !== targetInst.child ||
-        (null !== parentNode && null !== parentNode.child)
-      )
-        for (
-          targetNode = getParentHydrationBoundary(targetNode);
-          null !== targetNode;
-
-        ) {
-          if ((parentNode = targetNode[internalInstanceKey])) return parentNode;
-          targetNode = getParentHydrationBoundary(targetNode);
-        }
-      return targetInst;
-    }
-    targetNode = parentNode;
-    parentNode = targetNode.parentNode;
-  }
-  return null;
-}
-function getInstanceFromNode(node) {
-  if (
-    (node = node[internalInstanceKey] || node[internalContainerInstanceKey])
-  ) {
-    var tag = node.tag;
-    if (
-      5 === tag ||
-      6 === tag ||
-      13 === tag ||
-      31 === tag ||
-      26 === tag ||
-      27 === tag ||
-      3 === tag
-    )
-      return node;
-  }
-  return null;
-}
-function getNodeFromInstance(inst) {
-  var tag = inst.tag;
-  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;
-  throw Error(formatProdErrorMessage(33));
-}
-function getResourcesFromRoot(root) {
-  var resources = root[internalRootNodeResourcesKey];
-  resources ||
-    (resources = root[internalRootNodeResourcesKey] =
-      { hoistableStyles: new Map(), hoistableScripts: new Map() });
-  return resources;
-}
-function markNodeAsHoistable(node) {
-  node[internalHoistableMarker] = !0;
-}
-var allNativeEvents = new Set(),
-  registrationNameDependencies = {};
-function registerTwoPhaseEvent(registrationName, dependencies) {
-  registerDirectEvent(registrationName, dependencies);
-  registerDirectEvent(registrationName + "Capture", dependencies);
-}
-function registerDirectEvent(registrationName, dependencies) {
-  registrationNameDependencies[registrationName] = dependencies;
-  for (
-    registrationName = 0;
-    registrationName < dependencies.length;
-    registrationName++
-  )
-    allNativeEvents.add(dependencies[registrationName]);
-}
-var VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-function setValueForAttribute(node, name, value) {
-  if (isAttributeNameSafe(name))
-    if (null === value) node.removeAttribute(name);
-    else {
-      switch (typeof value) {
-        case "undefined":
-        case "function":
-        case "symbol":
-          node.removeAttribute(name);
-          return;
-        case "boolean":
-          var prefix$10 = name.toLowerCase().slice(0, 5);
-          if ("data-" !== prefix$10 && "aria-" !== prefix$10) {
-            node.removeAttribute(name);
-            return;
-          }
-      }
-      node.setAttribute(name, "" + value);
-    }
-}
-function setValueForKnownAttribute(node, name, value) {
-  if (null === value) node.removeAttribute(name);
-  else {
-    switch (typeof value) {
-      case "undefined":
-      case "function":
-      case "symbol":
-      case "boolean":
-        node.removeAttribute(name);
-        return;
-    }
-    node.setAttribute(name, "" + value);
-  }
-}
-function setValueForNamespacedAttribute(node, namespace, name, value) {
-  if (null === value) node.removeAttribute(name);
-  else {
-    switch (typeof value) {
-      case "undefined":
-      case "function":
-      case "symbol":
-      case "boolean":
-        node.removeAttribute(name);
-        return;
-    }
-    node.setAttributeNS(namespace, name, "" + value);
-  }
-}
-function getToStringValue(value) {
-  switch (typeof value) {
-    case "bigint":
-    case "boolean":
-    case "number":
-    case "string":
-    case "undefined":
-      return value;
-    case "object":
-      return value;
-    default:
-      return "";
-  }
-}
-function isCheckable(elem) {
-  var type = elem.type;
-  return (
-    (elem = elem.nodeName) &&
-    "input" === elem.toLowerCase() &&
-    ("checkbox" === type || "radio" === type)
-  );
-}
-function trackValueOnNode(node, valueField, currentValue) {
-  var descriptor = Object.getOwnPropertyDescriptor(
-    node.constructor.prototype,
-    valueField
-  );
-  if (
-    !node.hasOwnProperty(valueField) &&
-    "undefined" !== typeof descriptor &&
-    "function" === typeof descriptor.get &&
-    "function" === typeof descriptor.set
-  ) {
-    var get = descriptor.get,
-      set = descriptor.set;
-    Object.defineProperty(node, valueField, {
-      configurable: !0,
-      get: function () {
-        return get.call(this);
-      },
-      set: function (value) {
-        currentValue = "" + value;
-        set.call(this, value);
-      }
-    });
-    Object.defineProperty(node, valueField, {
-      enumerable: descriptor.enumerable
-    });
-    return {
-      getValue: function () {
-        return currentValue;
-      },
-      setValue: function (value) {
-        currentValue = "" + value;
-      },
-      stopTracking: function () {
-        node._valueTracker = null;
-        delete node[valueField];
-      }
-    };
-  }
-}
-function track(node) {
-  if (!node._valueTracker) {
-    var valueField = isCheckable(node) ? "checked" : "value";
-    node._valueTracker = trackValueOnNode(
-      node,
-      valueField,
-      "" + node[valueField]
-    );
-  }
-}
-function updateValueIfChanged(node) {
-  if (!node) return !1;
-  var tracker = node._valueTracker;
-  if (!tracker) return !0;
-  var lastValue = tracker.getValue();
-  var value = "";
-  node &&
-    (value = isCheckable(node)
-      ? node.checked
-        ? "true"
-        : "false"
-      : node.value);
-  node = value;
-  return node !== lastValue ? (tracker.setValue(node), !0) : !1;
-}
-function getActiveElement(doc) {
-  doc = doc || ("undefined" !== typeof document ? document : void 0);
-  if ("undefined" === typeof doc) return null;
-  try {
-    return doc.activeElement || doc.body;
-  } catch (e) {
-    return doc.body;
-  }
-}
-var escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g;
-function escapeSelectorAttributeValueInsideDoubleQuotes(value) {
-  return value.replace(
-    escapeSelectorAttributeValueInsideDoubleQuotesRegex,
-    function (ch) {
-      return "\\" + ch.charCodeAt(0).toString(16) + " ";
-    }
-  );
-}
-function updateInput(
-  element,
-  value,
-  defaultValue,
-  lastDefaultValue,
-  checked,
-  defaultChecked,
-  type,
-  name
-) {
-  element.name = "";
-  null != type &&
-  "function" !== typeof type &&
-  "symbol" !== typeof type &&
-  "boolean" !== typeof type
-    ? (element.type = type)
-    : element.removeAttribute("type");
-  if (null != value)
-    if ("number" === type) {
-      if ((0 === value && "" === element.value) || element.value != value)
-        element.value = "" + getToStringValue(value);
-    } else
-      element.value !== "" + getToStringValue(value) &&
-        (element.value = "" + getToStringValue(value));
-  else
-    ("submit" !== type && "reset" !== type) || element.removeAttribute("value");
-  null != value
-    ? setDefaultValue(element, type, getToStringValue(value))
-    : null != defaultValue
-      ? setDefaultValue(element, type, getToStringValue(defaultValue))
-      : null != lastDefaultValue && element.removeAttribute("value");
-  null == checked &&
-    null != defaultChecked &&
-    (element.defaultChecked = !!defaultChecked);
-  null != checked &&
-    (element.checked =
-      checked && "function" !== typeof checked && "symbol" !== typeof checked);
-  null != name &&
-  "function" !== typeof name &&
-  "symbol" !== typeof name &&
-  "boolean" !== typeof name
-    ? (element.name = "" + getToStringValue(name))
-    : element.removeAttribute("name");
-}
-function initInput(
-  element,
-  value,
-  defaultValue,
-  checked,
-  defaultChecked,
-  type,
-  name,
-  isHydrating
-) {
-  null != type &&
-    "function" !== typeof type &&
-    "symbol" !== typeof type &&
-    "boolean" !== typeof type &&
-    (element.type = type);
-  if (null != value || null != defaultValue) {
-    if (
-      !(
-        ("submit" !== type && "reset" !== type) ||
-        (void 0 !== value && null !== value)
-      )
-    ) {
-      track(element);
-      return;
-    }
-    defaultValue =
-      null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-    value = null != value ? "" + getToStringValue(value) : defaultValue;
-    isHydrating || value === element.value || (element.value = value);
-    element.defaultValue = value;
-  }
-  checked = null != checked ? checked : defaultChecked;
-  checked =
-    "function" !== typeof checked && "symbol" !== typeof checked && !!checked;
-  element.checked = isHydrating ? element.checked : !!checked;
-  element.defaultChecked = !!checked;
-  null != name &&
-    "function" !== typeof name &&
-    "symbol" !== typeof name &&
-    "boolean" !== typeof name &&
-    (element.name = name);
-  track(element);
-}
-function setDefaultValue(node, type, value) {
-  ("number" === type && getActiveElement(node.ownerDocument) === node) ||
-    node.defaultValue === "" + value ||
-    (node.defaultValue = "" + value);
-}
-function updateOptions(node, multiple, propValue, setDefaultSelected) {
-  node = node.options;
-  if (multiple) {
-    multiple = {};
-    for (var i = 0; i < propValue.length; i++)
-      multiple["$" + propValue[i]] = !0;
-    for (propValue = 0; propValue < node.length; propValue++)
-      (i = multiple.hasOwnProperty("$" + node[propValue].value)),
-        node[propValue].selected !== i && (node[propValue].selected = i),
-        i && setDefaultSelected && (node[propValue].defaultSelected = !0);
-  } else {
-    propValue = "" + getToStringValue(propValue);
-    multiple = null;
-    for (i = 0; i < node.length; i++) {
-      if (node[i].value === propValue) {
-        node[i].selected = !0;
-        setDefaultSelected && (node[i].defaultSelected = !0);
-        return;
-      }
-      null !== multiple || node[i].disabled || (multiple = node[i]);
-    }
-    null !== multiple && (multiple.selected = !0);
-  }
-}
-function updateTextarea(element, value, defaultValue) {
-  if (
-    null != value &&
-    ((value = "" + getToStringValue(value)),
-    value !== element.value && (element.value = value),
-    null == defaultValue)
-  ) {
-    element.defaultValue !== value && (element.defaultValue = value);
-    return;
-  }
-  element.defaultValue =
-    null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-}
-function initTextarea(element, value, defaultValue, children) {
-  if (null == value) {
-    if (null != children) {
-      if (null != defaultValue) throw Error(formatProdErrorMessage(92));
-      if (isArrayImpl(children)) {
-        if (1 < children.length) throw Error(formatProdErrorMessage(93));
-        children = children[0];
-      }
-      defaultValue = children;
-    }
-    null == defaultValue && (defaultValue = "");
-    value = defaultValue;
-  }
-  defaultValue = getToStringValue(value);
-  element.defaultValue = defaultValue;
-  children = element.textContent;
-  children === defaultValue &&
-    "" !== children &&
-    null !== children &&
-    (element.value = children);
-  track(element);
-}
-function setTextContent(node, text) {
-  if (text) {
-    var firstChild = node.firstChild;
-    if (
-      firstChild &&
-      firstChild === node.lastChild &&
-      3 === firstChild.nodeType
-    ) {
-      firstChild.nodeValue = text;
-      return;
-    }
-  }
-  node.textContent = text;
-}
-var unitlessNumbers = new Set(
-  "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-    " "
-  )
-);
-function setValueForStyle(style, styleName, value) {
-  var isCustomProperty = 0 === styleName.indexOf("--");
-  null == value || "boolean" === typeof value || "" === value
-    ? isCustomProperty
-      ? style.setProperty(styleName, "")
-      : "float" === styleName
-        ? (style.cssFloat = "")
-        : (style[styleName] = "")
-    : isCustomProperty
-      ? style.setProperty(styleName, value)
-      : "number" !== typeof value ||
-          0 === value ||
-          unitlessNumbers.has(styleName)
-        ? "float" === styleName
-          ? (style.cssFloat = value)
-          : (style[styleName] = ("" + value).trim())
-        : (style[styleName] = value + "px");
-}
-function setValueForStyles(node, styles, prevStyles) {
-  if (null != styles && "object" !== typeof styles)
-    throw Error(formatProdErrorMessage(62));
-  node = node.style;
-  if (null != prevStyles) {
-    for (var styleName in prevStyles)
-      !prevStyles.hasOwnProperty(styleName) ||
-        (null != styles && styles.hasOwnProperty(styleName)) ||
-        (0 === styleName.indexOf("--")
-          ? node.setProperty(styleName, "")
-          : "float" === styleName
-            ? (node.cssFloat = "")
-            : (node[styleName] = ""));
-    for (var styleName$16 in styles)
-      (styleName = styles[styleName$16]),
-        styles.hasOwnProperty(styleName$16) &&
-          prevStyles[styleName$16] !== styleName &&
-          setValueForStyle(node, styleName$16, styleName);
-  } else
-    for (var styleName$17 in styles)
-      styles.hasOwnProperty(styleName$17) &&
-        setValueForStyle(node, styleName$17, styles[styleName$17]);
-}
-function isCustomElement(tagName) {
-  if (-1 === tagName.indexOf("-")) return !1;
-  switch (tagName) {
-    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 aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-function noop$1() {}
-var currentReplayingEvent = null;
-function getEventTarget(nativeEvent) {
-  nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;
-  nativeEvent.correspondingUseElement &&
-    (nativeEvent = nativeEvent.correspondingUseElement);
-  return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;
-}
-var restoreTarget = null,
-  restoreQueue = null;
-function restoreStateOfTarget(target) {
-  var internalInstance = getInstanceFromNode(target);
-  if (internalInstance && (target = internalInstance.stateNode)) {
-    var props = target[internalPropsKey] || null;
-    a: switch (((target = internalInstance.stateNode), internalInstance.type)) {
-      case "input":
-        updateInput(
-          target,
-          props.value,
-          props.defaultValue,
-          props.defaultValue,
-          props.checked,
-          props.defaultChecked,
-          props.type,
-          props.name
-        );
-        internalInstance = props.name;
-        if ("radio" === props.type && null != internalInstance) {
-          for (props = target; props.parentNode; ) props = props.parentNode;
-          props = props.querySelectorAll(
-            'input[name="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(
-                "" + internalInstance
-              ) +
-              '"][type="radio"]'
-          );
-          for (
-            internalInstance = 0;
-            internalInstance < props.length;
-            internalInstance++
-          ) {
-            var otherNode = props[internalInstance];
-            if (otherNode !== target && otherNode.form === target.form) {
-              var otherProps = otherNode[internalPropsKey] || null;
-              if (!otherProps) throw Error(formatProdErrorMessage(90));
-              updateInput(
-                otherNode,
-                otherProps.value,
-                otherProps.defaultValue,
-                otherProps.defaultValue,
-                otherProps.checked,
-                otherProps.defaultChecked,
-                otherProps.type,
-                otherProps.name
-              );
-            }
-          }
-          for (
-            internalInstance = 0;
-            internalInstance < props.length;
-            internalInstance++
-          )
-            (otherNode = props[internalInstance]),
-              otherNode.form === target.form && updateValueIfChanged(otherNode);
-        }
-        break a;
-      case "textarea":
-        updateTextarea(target, props.value, props.defaultValue);
-        break a;
-      case "select":
-        (internalInstance = props.value),
-          null != internalInstance &&
-            updateOptions(target, !!props.multiple, internalInstance, !1);
-    }
-  }
-}
-var isInsideEventHandler = !1;
-function batchedUpdates$1(fn, a, b) {
-  if (isInsideEventHandler) return fn(a, b);
-  isInsideEventHandler = !0;
-  try {
-    var JSCompiler_inline_result = fn(a);
-    return JSCompiler_inline_result;
-  } finally {
-    if (
-      ((isInsideEventHandler = !1),
-      null !== restoreTarget || null !== restoreQueue)
-    )
-      if (
-        (flushSyncWork$1(),
-        restoreTarget &&
-          ((a = restoreTarget),
-          (fn = restoreQueue),
-          (restoreQueue = restoreTarget = null),
-          restoreStateOfTarget(a),
-          fn))
-      )
-        for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);
-  }
-}
-function getListener(inst, registrationName) {
-  var stateNode = inst.stateNode;
-  if (null === stateNode) return null;
-  var props = stateNode[internalPropsKey] || null;
-  if (null === props) return null;
-  stateNode = props[registrationName];
-  a: switch (registrationName) {
-    case "onClick":
-    case "onClickCapture":
-    case "onDoubleClick":
-    case "onDoubleClickCapture":
-    case "onMouseDown":
-    case "onMouseDownCapture":
-    case "onMouseMove":
-    case "onMouseMoveCapture":
-    case "onMouseUp":
-    case "onMouseUpCapture":
-    case "onMouseEnter":
-      (props = !props.disabled) ||
-        ((inst = inst.type),
-        (props = !(
-          "button" === inst ||
-          "input" === inst ||
-          "select" === inst ||
-          "textarea" === inst
-        )));
-      inst = !props;
-      break a;
-    default:
-      inst = !1;
-  }
-  if (inst) return null;
-  if (stateNode && "function" !== typeof stateNode)
-    throw Error(
-      formatProdErrorMessage(231, registrationName, typeof stateNode)
-    );
-  return stateNode;
-}
-var canUseDOM = !(
-    "undefined" === typeof window ||
-    "undefined" === typeof window.document ||
-    "undefined" === typeof window.document.createElement
-  ),
-  passiveBrowserEventsSupported = !1;
-if (canUseDOM)
-  try {
-    var options = {};
-    Object.defineProperty(options, "passive", {
-      get: function () {
-        passiveBrowserEventsSupported = !0;
-      }
-    });
-    window.addEventListener("test", options, options);
-    window.removeEventListener("test", options, options);
-  } catch (e) {
-    passiveBrowserEventsSupported = !1;
-  }
-var root = null,
-  startText = null,
-  fallbackText = null;
-function getData() {
-  if (fallbackText) return fallbackText;
-  var start,
-    startValue = startText,
-    startLength = startValue.length,
-    end,
-    endValue = "value" in root ? root.value : root.textContent,
-    endLength = endValue.length;
-  for (
-    start = 0;
-    start < startLength && startValue[start] === endValue[start];
-    start++
-  );
-  var minEnd = startLength - start;
-  for (
-    end = 1;
-    end <= minEnd &&
-    startValue[startLength - end] === endValue[endLength - end];
-    end++
-  );
-  return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));
-}
-function getEventCharCode(nativeEvent) {
-  var keyCode = nativeEvent.keyCode;
-  "charCode" in nativeEvent
-    ? ((nativeEvent = nativeEvent.charCode),
-      0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))
-    : (nativeEvent = keyCode);
-  10 === nativeEvent && (nativeEvent = 13);
-  return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;
-}
-function functionThatReturnsTrue() {
-  return !0;
-}
-function functionThatReturnsFalse() {
-  return !1;
-}
-function createSyntheticEvent(Interface) {
-  function SyntheticBaseEvent(
-    reactName,
-    reactEventType,
-    targetInst,
-    nativeEvent,
-    nativeEventTarget
-  ) {
-    this._reactName = reactName;
-    this._targetInst = targetInst;
-    this.type = reactEventType;
-    this.nativeEvent = nativeEvent;
-    this.target = nativeEventTarget;
-    this.currentTarget = null;
-    for (var propName in Interface)
-      Interface.hasOwnProperty(propName) &&
-        ((reactName = Interface[propName]),
-        (this[propName] = reactName
-          ? reactName(nativeEvent)
-          : nativeEvent[propName]));
-    this.isDefaultPrevented = (
-      null != nativeEvent.defaultPrevented
-        ? nativeEvent.defaultPrevented
-        : !1 === nativeEvent.returnValue
-    )
-      ? functionThatReturnsTrue
-      : functionThatReturnsFalse;
-    this.isPropagationStopped = functionThatReturnsFalse;
-    return this;
-  }
-  assign(SyntheticBaseEvent.prototype, {
-    preventDefault: function () {
-      this.defaultPrevented = !0;
-      var event = this.nativeEvent;
-      event &&
-        (event.preventDefault
-          ? event.preventDefault()
-          : "unknown" !== typeof event.returnValue && (event.returnValue = !1),
-        (this.isDefaultPrevented = functionThatReturnsTrue));
-    },
-    stopPropagation: function () {
-      var event = this.nativeEvent;
-      event &&
-        (event.stopPropagation
-          ? event.stopPropagation()
-          : "unknown" !== typeof event.cancelBubble &&
-            (event.cancelBubble = !0),
-        (this.isPropagationStopped = functionThatReturnsTrue));
-    },
-    persist: function () {},
-    isPersistent: functionThatReturnsTrue
-  });
-  return SyntheticBaseEvent;
-}
-var EventInterface = {
-    eventPhase: 0,
-    bubbles: 0,
-    cancelable: 0,
-    timeStamp: function (event) {
-      return event.timeStamp || Date.now();
-    },
-    defaultPrevented: 0,
-    isTrusted: 0
-  },
-  SyntheticEvent = createSyntheticEvent(EventInterface),
-  UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),
-  SyntheticUIEvent = createSyntheticEvent(UIEventInterface),
-  lastMovementX,
-  lastMovementY,
-  lastMouseEvent,
-  MouseEventInterface = assign({}, UIEventInterface, {
-    screenX: 0,
-    screenY: 0,
-    clientX: 0,
-    clientY: 0,
-    pageX: 0,
-    pageY: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    altKey: 0,
-    metaKey: 0,
-    getModifierState: getEventModifierState,
-    button: 0,
-    buttons: 0,
-    relatedTarget: function (event) {
-      return void 0 === event.relatedTarget
-        ? event.fromElement === event.srcElement
-          ? event.toElement
-          : event.fromElement
-        : event.relatedTarget;
-    },
-    movementX: function (event) {
-      if ("movementX" in event) return event.movementX;
-      event !== lastMouseEvent &&
-        (lastMouseEvent && "mousemove" === event.type
-          ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),
-            (lastMovementY = event.screenY - lastMouseEvent.screenY))
-          : (lastMovementY = lastMovementX = 0),
-        (lastMouseEvent = event));
-      return lastMovementX;
-    },
-    movementY: function (event) {
-      return "movementY" in event ? event.movementY : lastMovementY;
-    }
-  }),
-  SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),
-  DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),
-  SyntheticDragEvent = createSyntheticEvent(DragEventInterface),
-  FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),
-  SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),
-  AnimationEventInterface = assign({}, EventInterface, {
-    animationName: 0,
-    elapsedTime: 0,
-    pseudoElement: 0
-  }),
-  SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),
-  ClipboardEventInterface = assign({}, EventInterface, {
-    clipboardData: function (event) {
-      return "clipboardData" in event
-        ? event.clipboardData
-        : window.clipboardData;
-    }
-  }),
-  SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),
-  CompositionEventInterface = assign({}, EventInterface, { data: 0 }),
-  SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),
-  normalizeKey = {
-    Esc: "Escape",
-    Spacebar: " ",
-    Left: "ArrowLeft",
-    Up: "ArrowUp",
-    Right: "ArrowRight",
-    Down: "ArrowDown",
-    Del: "Delete",
-    Win: "OS",
-    Menu: "ContextMenu",
-    Apps: "ContextMenu",
-    Scroll: "ScrollLock",
-    MozPrintableKey: "Unidentified"
-  },
-  translateToKey = {
-    8: "Backspace",
-    9: "Tab",
-    12: "Clear",
-    13: "Enter",
-    16: "Shift",
-    17: "Control",
-    18: "Alt",
-    19: "Pause",
-    20: "CapsLock",
-    27: "Escape",
-    32: " ",
-    33: "PageUp",
-    34: "PageDown",
-    35: "End",
-    36: "Home",
-    37: "ArrowLeft",
-    38: "ArrowUp",
-    39: "ArrowRight",
-    40: "ArrowDown",
-    45: "Insert",
-    46: "Delete",
-    112: "F1",
-    113: "F2",
-    114: "F3",
-    115: "F4",
-    116: "F5",
-    117: "F6",
-    118: "F7",
-    119: "F8",
-    120: "F9",
-    121: "F10",
-    122: "F11",
-    123: "F12",
-    144: "NumLock",
-    145: "ScrollLock",
-    224: "Meta"
-  },
-  modifierKeyToProp = {
-    Alt: "altKey",
-    Control: "ctrlKey",
-    Meta: "metaKey",
-    Shift: "shiftKey"
-  };
-function modifierStateGetter(keyArg) {
-  var nativeEvent = this.nativeEvent;
-  return nativeEvent.getModifierState
-    ? nativeEvent.getModifierState(keyArg)
-    : (keyArg = modifierKeyToProp[keyArg])
-      ? !!nativeEvent[keyArg]
-      : !1;
-}
-function getEventModifierState() {
-  return modifierStateGetter;
-}
-var KeyboardEventInterface = assign({}, UIEventInterface, {
-    key: function (nativeEvent) {
-      if (nativeEvent.key) {
-        var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
-        if ("Unidentified" !== key) return key;
-      }
-      return "keypress" === nativeEvent.type
-        ? ((nativeEvent = getEventCharCode(nativeEvent)),
-          13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent))
-        : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type
-          ? translateToKey[nativeEvent.keyCode] || "Unidentified"
-          : "";
-    },
-    code: 0,
-    location: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    altKey: 0,
-    metaKey: 0,
-    repeat: 0,
-    locale: 0,
-    getModifierState: getEventModifierState,
-    charCode: function (event) {
-      return "keypress" === event.type ? getEventCharCode(event) : 0;
-    },
-    keyCode: function (event) {
-      return "keydown" === event.type || "keyup" === event.type
-        ? event.keyCode
-        : 0;
-    },
-    which: function (event) {
-      return "keypress" === event.type
-        ? getEventCharCode(event)
-        : "keydown" === event.type || "keyup" === event.type
-          ? event.keyCode
-          : 0;
-    }
-  }),
-  SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),
-  PointerEventInterface = assign({}, MouseEventInterface, {
-    pointerId: 0,
-    width: 0,
-    height: 0,
-    pressure: 0,
-    tangentialPressure: 0,
-    tiltX: 0,
-    tiltY: 0,
-    twist: 0,
-    pointerType: 0,
-    isPrimary: 0
-  }),
-  SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),
-  TouchEventInterface = assign({}, UIEventInterface, {
-    touches: 0,
-    targetTouches: 0,
-    changedTouches: 0,
-    altKey: 0,
-    metaKey: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    getModifierState: getEventModifierState
-  }),
-  SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),
-  TransitionEventInterface = assign({}, EventInterface, {
-    propertyName: 0,
-    elapsedTime: 0,
-    pseudoElement: 0
-  }),
-  SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),
-  WheelEventInterface = assign({}, MouseEventInterface, {
-    deltaX: function (event) {
-      return "deltaX" in event
-        ? event.deltaX
-        : "wheelDeltaX" in event
-          ? -event.wheelDeltaX
-          : 0;
-    },
-    deltaY: function (event) {
-      return "deltaY" in event
-        ? event.deltaY
-        : "wheelDeltaY" in event
-          ? -event.wheelDeltaY
-          : "wheelDelta" in event
-            ? -event.wheelDelta
-            : 0;
-    },
-    deltaZ: 0,
-    deltaMode: 0
-  }),
-  SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),
-  ToggleEventInterface = assign({}, EventInterface, {
-    newState: 0,
-    oldState: 0
-  }),
-  SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),
-  END_KEYCODES = [9, 13, 27, 32],
-  canUseCompositionEvent = canUseDOM && "CompositionEvent" in window,
-  documentMode = null;
-canUseDOM &&
-  "documentMode" in document &&
-  (documentMode = document.documentMode);
-var canUseTextInputEvent = canUseDOM && "TextEvent" in window && !documentMode,
-  useFallbackCompositionData =
-    canUseDOM &&
-    (!canUseCompositionEvent ||
-      (documentMode && 8 < documentMode && 11 >= documentMode)),
-  SPACEBAR_CHAR = String.fromCharCode(32),
-  hasSpaceKeypress = !1;
-function isFallbackCompositionEnd(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "keyup":
-      return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);
-    case "keydown":
-      return 229 !== nativeEvent.keyCode;
-    case "keypress":
-    case "mousedown":
-    case "focusout":
-      return !0;
-    default:
-      return !1;
-  }
-}
-function getDataFromCustomEvent(nativeEvent) {
-  nativeEvent = nativeEvent.detail;
-  return "object" === typeof nativeEvent && "data" in nativeEvent
-    ? nativeEvent.data
-    : null;
-}
-var isComposing = !1;
-function getNativeBeforeInputChars(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "compositionend":
-      return getDataFromCustomEvent(nativeEvent);
-    case "keypress":
-      if (32 !== nativeEvent.which) return null;
-      hasSpaceKeypress = !0;
-      return SPACEBAR_CHAR;
-    case "textInput":
-      return (
-        (domEventName = nativeEvent.data),
-        domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName
-      );
-    default:
-      return null;
-  }
-}
-function getFallbackBeforeInputChars(domEventName, nativeEvent) {
-  if (isComposing)
-    return "compositionend" === domEventName ||
-      (!canUseCompositionEvent &&
-        isFallbackCompositionEnd(domEventName, nativeEvent))
-      ? ((domEventName = getData()),
-        (fallbackText = startText = root = null),
-        (isComposing = !1),
-        domEventName)
-      : null;
-  switch (domEventName) {
-    case "paste":
-      return null;
-    case "keypress":
-      if (
-        !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||
-        (nativeEvent.ctrlKey && nativeEvent.altKey)
-      ) {
-        if (nativeEvent.char && 1 < nativeEvent.char.length)
-          return nativeEvent.char;
-        if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);
-      }
-      return null;
-    case "compositionend":
-      return useFallbackCompositionData && "ko" !== nativeEvent.locale
-        ? null
-        : nativeEvent.data;
-    default:
-      return null;
-  }
-}
-var supportedInputTypes = {
-  color: !0,
-  date: !0,
-  datetime: !0,
-  "datetime-local": !0,
-  email: !0,
-  month: !0,
-  number: !0,
-  password: !0,
-  range: !0,
-  search: !0,
-  tel: !0,
-  text: !0,
-  time: !0,
-  url: !0,
-  week: !0
-};
-function isTextInputElement(elem) {
-  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-  return "input" === nodeName
-    ? !!supportedInputTypes[elem.type]
-    : "textarea" === nodeName
-      ? !0
-      : !1;
-}
-function createAndAccumulateChangeEvent(
-  dispatchQueue,
-  inst,
-  nativeEvent,
-  target
-) {
-  restoreTarget
-    ? restoreQueue
-      ? restoreQueue.push(target)
-      : (restoreQueue = [target])
-    : (restoreTarget = target);
-  inst = accumulateTwoPhaseListeners(inst, "onChange");
-  0 < inst.length &&
-    ((nativeEvent = new SyntheticEvent(
-      "onChange",
-      "change",
-      null,
-      nativeEvent,
-      target
-    )),
-    dispatchQueue.push({ event: nativeEvent, listeners: inst }));
-}
-var activeElement$1 = null,
-  activeElementInst$1 = null;
-function runEventInBatch(dispatchQueue) {
-  processDispatchQueue(dispatchQueue, 0);
-}
-function getInstIfValueChanged(targetInst) {
-  var targetNode = getNodeFromInstance(targetInst);
-  if (updateValueIfChanged(targetNode)) return targetInst;
-}
-function getTargetInstForChangeEvent(domEventName, targetInst) {
-  if ("change" === domEventName) return targetInst;
-}
-var isInputEventSupported = !1;
-if (canUseDOM) {
-  var JSCompiler_inline_result$jscomp$286;
-  if (canUseDOM) {
-    var isSupported$jscomp$inline_427 = "oninput" in document;
-    if (!isSupported$jscomp$inline_427) {
-      var element$jscomp$inline_428 = document.createElement("div");
-      element$jscomp$inline_428.setAttribute("oninput", "return;");
-      isSupported$jscomp$inline_427 =
-        "function" === typeof element$jscomp$inline_428.oninput;
-    }
-    JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;
-  } else JSCompiler_inline_result$jscomp$286 = !1;
-  isInputEventSupported =
-    JSCompiler_inline_result$jscomp$286 &&
-    (!document.documentMode || 9 < document.documentMode);
-}
-function stopWatchingForValueChange() {
-  activeElement$1 &&
-    (activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
-    (activeElementInst$1 = activeElement$1 = null));
-}
-function handlePropertyChange(nativeEvent) {
-  if (
-    "value" === nativeEvent.propertyName &&
-    getInstIfValueChanged(activeElementInst$1)
-  ) {
-    var dispatchQueue = [];
-    createAndAccumulateChangeEvent(
-      dispatchQueue,
-      activeElementInst$1,
-      nativeEvent,
-      getEventTarget(nativeEvent)
-    );
-    batchedUpdates$1(runEventInBatch, dispatchQueue);
-  }
-}
-function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
-  "focusin" === domEventName
-    ? (stopWatchingForValueChange(),
-      (activeElement$1 = target),
-      (activeElementInst$1 = targetInst),
-      activeElement$1.attachEvent("onpropertychange", handlePropertyChange))
-    : "focusout" === domEventName && stopWatchingForValueChange();
-}
-function getTargetInstForInputEventPolyfill(domEventName) {
-  if (
-    "selectionchange" === domEventName ||
-    "keyup" === domEventName ||
-    "keydown" === domEventName
-  )
-    return getInstIfValueChanged(activeElementInst$1);
-}
-function getTargetInstForClickEvent(domEventName, targetInst) {
-  if ("click" === domEventName) return getInstIfValueChanged(targetInst);
-}
-function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {
-  if ("input" === domEventName || "change" === domEventName)
-    return getInstIfValueChanged(targetInst);
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is;
-function shallowEqual(objA, objB) {
-  if (objectIs(objA, objB)) return !0;
-  if (
-    "object" !== typeof objA ||
-    null === objA ||
-    "object" !== typeof objB ||
-    null === objB
-  )
-    return !1;
-  var keysA = Object.keys(objA),
-    keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return !1;
-  for (keysB = 0; keysB < keysA.length; keysB++) {
-    var currentKey = keysA[keysB];
-    if (
-      !hasOwnProperty.call(objB, currentKey) ||
-      !objectIs(objA[currentKey], objB[currentKey])
-    )
-      return !1;
-  }
-  return !0;
-}
-function getLeafNode(node) {
-  for (; node && node.firstChild; ) node = node.firstChild;
-  return node;
-}
-function getNodeForCharacterOffset(root, offset) {
-  var node = getLeafNode(root);
-  root = 0;
-  for (var nodeEnd; node; ) {
-    if (3 === node.nodeType) {
-      nodeEnd = root + node.textContent.length;
-      if (root <= offset && nodeEnd >= offset)
-        return { node: node, offset: offset - root };
-      root = nodeEnd;
-    }
-    a: {
-      for (; node; ) {
-        if (node.nextSibling) {
-          node = node.nextSibling;
-          break a;
-        }
-        node = node.parentNode;
-      }
-      node = void 0;
-    }
-    node = getLeafNode(node);
-  }
-}
-function containsNode(outerNode, innerNode) {
-  return outerNode && innerNode
-    ? outerNode === innerNode
-      ? !0
-      : outerNode && 3 === outerNode.nodeType
-        ? !1
-        : innerNode && 3 === innerNode.nodeType
-          ? containsNode(outerNode, innerNode.parentNode)
-          : "contains" in outerNode
-            ? outerNode.contains(innerNode)
-            : outerNode.compareDocumentPosition
-              ? !!(outerNode.compareDocumentPosition(innerNode) & 16)
-              : !1
-    : !1;
-}
-function getActiveElementDeep(containerInfo) {
-  containerInfo =
-    null != containerInfo &&
-    null != containerInfo.ownerDocument &&
-    null != containerInfo.ownerDocument.defaultView
-      ? containerInfo.ownerDocument.defaultView
-      : window;
-  for (
-    var element = getActiveElement(containerInfo.document);
-    element instanceof containerInfo.HTMLIFrameElement;
-
-  ) {
-    try {
-      var JSCompiler_inline_result =
-        "string" === typeof element.contentWindow.location.href;
-    } catch (err) {
-      JSCompiler_inline_result = !1;
-    }
-    if (JSCompiler_inline_result) containerInfo = element.contentWindow;
-    else break;
-    element = getActiveElement(containerInfo.document);
-  }
-  return element;
-}
-function hasSelectionCapabilities(elem) {
-  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-  return (
-    nodeName &&
-    (("input" === nodeName &&
-      ("text" === elem.type ||
-        "search" === elem.type ||
-        "tel" === elem.type ||
-        "url" === elem.type ||
-        "password" === elem.type)) ||
-      "textarea" === nodeName ||
-      "true" === elem.contentEditable)
-  );
-}
-var skipSelectionChangeEvent =
-    canUseDOM && "documentMode" in document && 11 >= document.documentMode,
-  activeElement = null,
-  activeElementInst = null,
-  lastSelection = null,
-  mouseDown = !1;
-function constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {
-  var doc =
-    nativeEventTarget.window === nativeEventTarget
-      ? nativeEventTarget.document
-      : 9 === nativeEventTarget.nodeType
-        ? nativeEventTarget
-        : nativeEventTarget.ownerDocument;
-  mouseDown ||
-    null == activeElement ||
-    activeElement !== getActiveElement(doc) ||
-    ((doc = activeElement),
-    "selectionStart" in doc && hasSelectionCapabilities(doc)
-      ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })
-      : ((doc = (
-          (doc.ownerDocument && doc.ownerDocument.defaultView) ||
-          window
-        ).getSelection()),
-        (doc = {
-          anchorNode: doc.anchorNode,
-          anchorOffset: doc.anchorOffset,
-          focusNode: doc.focusNode,
-          focusOffset: doc.focusOffset
-        })),
-    (lastSelection && shallowEqual(lastSelection, doc)) ||
-      ((lastSelection = doc),
-      (doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect")),
-      0 < doc.length &&
-        ((nativeEvent = new SyntheticEvent(
-          "onSelect",
-          "select",
-          null,
-          nativeEvent,
-          nativeEventTarget
-        )),
-        dispatchQueue.push({ event: nativeEvent, listeners: doc }),
-        (nativeEvent.target = activeElement))));
-}
-function makePrefixMap(styleProp, eventName) {
-  var prefixes = {};
-  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
-  prefixes["Webkit" + styleProp] = "webkit" + eventName;
-  prefixes["Moz" + styleProp] = "moz" + eventName;
-  return prefixes;
-}
-var vendorPrefixes = {
-    animationend: makePrefixMap("Animation", "AnimationEnd"),
-    animationiteration: makePrefixMap("Animation", "AnimationIteration"),
-    animationstart: makePrefixMap("Animation", "AnimationStart"),
-    transitionrun: makePrefixMap("Transition", "TransitionRun"),
-    transitionstart: makePrefixMap("Transition", "TransitionStart"),
-    transitioncancel: makePrefixMap("Transition", "TransitionCancel"),
-    transitionend: makePrefixMap("Transition", "TransitionEnd")
-  },
-  prefixedEventNames = {},
-  style = {};
-canUseDOM &&
-  ((style = document.createElement("div").style),
-  "AnimationEvent" in window ||
-    (delete vendorPrefixes.animationend.animation,
-    delete vendorPrefixes.animationiteration.animation,
-    delete vendorPrefixes.animationstart.animation),
-  "TransitionEvent" in window ||
-    delete vendorPrefixes.transitionend.transition);
-function getVendorPrefixedEventName(eventName) {
-  if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];
-  if (!vendorPrefixes[eventName]) return eventName;
-  var prefixMap = vendorPrefixes[eventName],
-    styleProp;
-  for (styleProp in prefixMap)
-    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)
-      return (prefixedEventNames[eventName] = prefixMap[styleProp]);
-  return eventName;
-}
-var ANIMATION_END = getVendorPrefixedEventName("animationend"),
-  ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"),
-  ANIMATION_START = getVendorPrefixedEventName("animationstart"),
-  TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"),
-  TRANSITION_START = getVendorPrefixedEventName("transitionstart"),
-  TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"),
-  TRANSITION_END = getVendorPrefixedEventName("transitionend"),
-  topLevelEventsToReactNames = new Map(),
-  simpleEventPluginEvents =
-    "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
-      " "
-    );
-simpleEventPluginEvents.push("scrollEnd");
-function registerSimpleEvent(domEventName, reactName) {
-  topLevelEventsToReactNames.set(domEventName, reactName);
-  registerTwoPhaseEvent(reactName, [domEventName]);
-}
-var reportGlobalError =
-    "function" === typeof reportError
-      ? reportError
-      : function (error) {
-          if (
-            "object" === typeof window &&
-            "function" === typeof window.ErrorEvent
-          ) {
-            var event = new window.ErrorEvent("error", {
-              bubbles: !0,
-              cancelable: !0,
-              message:
-                "object" === typeof error &&
-                null !== error &&
-                "string" === typeof error.message
-                  ? String(error.message)
-                  : String(error),
-              error: error
-            });
-            if (!window.dispatchEvent(event)) return;
-          } else if (
-            "object" === typeof process &&
-            "function" === typeof process.emit
-          ) {
-            process.emit("uncaughtException", error);
-            return;
-          }
-          console.error(error);
-        },
-  concurrentQueues = [],
-  concurrentQueuesIndex = 0,
-  concurrentlyUpdatedLanes = 0;
-function finishQueueingConcurrentUpdates() {
-  for (
-    var endIndex = concurrentQueuesIndex,
-      i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);
-    i < endIndex;
-
-  ) {
-    var fiber = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var queue = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var update = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var lane = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    if (null !== queue && null !== update) {
-      var pending = queue.pending;
-      null === pending
-        ? (update.next = update)
-        : ((update.next = pending.next), (pending.next = update));
-      queue.pending = update;
-    }
-    0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);
-  }
-}
-function enqueueUpdate$1(fiber, queue, update, lane) {
-  concurrentQueues[concurrentQueuesIndex++] = fiber;
-  concurrentQueues[concurrentQueuesIndex++] = queue;
-  concurrentQueues[concurrentQueuesIndex++] = update;
-  concurrentQueues[concurrentQueuesIndex++] = lane;
-  concurrentlyUpdatedLanes |= lane;
-  fiber.lanes |= lane;
-  fiber = fiber.alternate;
-  null !== fiber && (fiber.lanes |= lane);
-}
-function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {
-  enqueueUpdate$1(fiber, queue, update, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function enqueueConcurrentRenderForLane(fiber, lane) {
-  enqueueUpdate$1(fiber, null, null, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {
-  sourceFiber.lanes |= lane;
-  var alternate = sourceFiber.alternate;
-  null !== alternate && (alternate.lanes |= lane);
-  for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )
-    (parent.childLanes |= lane),
-      (alternate = parent.alternate),
-      null !== alternate && (alternate.childLanes |= lane),
-      22 === parent.tag &&
-        ((sourceFiber = parent.stateNode),
-        null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),
-      (sourceFiber = parent),
-      (parent = parent.return);
-  return 3 === sourceFiber.tag
-    ? ((parent = sourceFiber.stateNode),
-      isHidden &&
-        null !== update &&
-        ((isHidden = 31 - clz32(lane)),
-        (sourceFiber = parent.hiddenUpdates),
-        (alternate = sourceFiber[isHidden]),
-        null === alternate
-          ? (sourceFiber[isHidden] = [update])
-          : alternate.push(update),
-        (update.lane = lane | 536870912)),
-      parent)
-    : null;
-}
-function getRootForUpdatedFiber(sourceFiber) {
-  if (50 < nestedUpdateCount)
-    throw (
-      ((nestedUpdateCount = 0),
-      (rootWithNestedUpdates = null),
-      Error(formatProdErrorMessage(185)))
-    );
-  for (var parent = sourceFiber.return; null !== parent; )
-    (sourceFiber = parent), (parent = sourceFiber.return);
-  return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;
-}
-var emptyContextObject = {};
-function FiberNode(tag, pendingProps, key, mode) {
-  this.tag = tag;
-  this.key = key;
-  this.sibling =
-    this.child =
-    this.return =
-    this.stateNode =
-    this.type =
-    this.elementType =
-      null;
-  this.index = 0;
-  this.refCleanup = this.ref = null;
-  this.pendingProps = pendingProps;
-  this.dependencies =
-    this.memoizedState =
-    this.updateQueue =
-    this.memoizedProps =
-      null;
-  this.mode = mode;
-  this.subtreeFlags = this.flags = 0;
-  this.deletions = null;
-  this.childLanes = this.lanes = 0;
-  this.alternate = null;
-}
-function createFiberImplClass(tag, pendingProps, key, mode) {
-  return new FiberNode(tag, pendingProps, key, mode);
-}
-function shouldConstruct(Component) {
-  Component = Component.prototype;
-  return !(!Component || !Component.isReactComponent);
-}
-function createWorkInProgress(current, pendingProps) {
-  var workInProgress = current.alternate;
-  null === workInProgress
-    ? ((workInProgress = createFiberImplClass(
-        current.tag,
-        pendingProps,
-        current.key,
-        current.mode
-      )),
-      (workInProgress.elementType = current.elementType),
-      (workInProgress.type = current.type),
-      (workInProgress.stateNode = current.stateNode),
-      (workInProgress.alternate = current),
-      (current.alternate = workInProgress))
-    : ((workInProgress.pendingProps = pendingProps),
-      (workInProgress.type = current.type),
-      (workInProgress.flags = 0),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.deletions = null));
-  workInProgress.flags = current.flags & 65011712;
-  workInProgress.childLanes = current.childLanes;
-  workInProgress.lanes = current.lanes;
-  workInProgress.child = current.child;
-  workInProgress.memoizedProps = current.memoizedProps;
-  workInProgress.memoizedState = current.memoizedState;
-  workInProgress.updateQueue = current.updateQueue;
-  pendingProps = current.dependencies;
-  workInProgress.dependencies =
-    null === pendingProps
-      ? null
-      : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };
-  workInProgress.sibling = current.sibling;
-  workInProgress.index = current.index;
-  workInProgress.ref = current.ref;
-  workInProgress.refCleanup = current.refCleanup;
-  return workInProgress;
-}
-function resetWorkInProgress(workInProgress, renderLanes) {
-  workInProgress.flags &= 65011714;
-  var current = workInProgress.alternate;
-  null === current
-    ? ((workInProgress.childLanes = 0),
-      (workInProgress.lanes = renderLanes),
-      (workInProgress.child = null),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.memoizedProps = null),
-      (workInProgress.memoizedState = null),
-      (workInProgress.updateQueue = null),
-      (workInProgress.dependencies = null),
-      (workInProgress.stateNode = null))
-    : ((workInProgress.childLanes = current.childLanes),
-      (workInProgress.lanes = current.lanes),
-      (workInProgress.child = current.child),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.deletions = null),
-      (workInProgress.memoizedProps = current.memoizedProps),
-      (workInProgress.memoizedState = current.memoizedState),
-      (workInProgress.updateQueue = current.updateQueue),
-      (workInProgress.type = current.type),
-      (renderLanes = current.dependencies),
-      (workInProgress.dependencies =
-        null === renderLanes
-          ? null
-          : {
-              lanes: renderLanes.lanes,
-              firstContext: renderLanes.firstContext
-            }));
-  return workInProgress;
-}
-function createFiberFromTypeAndProps(
-  type,
-  key,
-  pendingProps,
-  owner,
-  mode,
-  lanes
-) {
-  var fiberTag = 0;
-  owner = type;
-  if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1);
-  else if ("string" === typeof type)
-    fiberTag = isHostHoistableType(
-      type,
-      pendingProps,
-      contextStackCursor.current
-    )
-      ? 26
-      : "html" === type || "head" === type || "body" === type
-        ? 27
-        : 5;
-  else
-    a: switch (type) {
-      case REACT_ACTIVITY_TYPE:
-        return (
-          (type = createFiberImplClass(31, pendingProps, key, mode)),
-          (type.elementType = REACT_ACTIVITY_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      case REACT_FRAGMENT_TYPE:
-        return createFiberFromFragment(pendingProps.children, mode, lanes, key);
-      case REACT_STRICT_MODE_TYPE:
-        fiberTag = 8;
-        mode |= 24;
-        break;
-      case REACT_PROFILER_TYPE:
-        return (
-          (type = createFiberImplClass(12, pendingProps, key, mode | 2)),
-          (type.elementType = REACT_PROFILER_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      case REACT_SUSPENSE_TYPE:
-        return (
-          (type = createFiberImplClass(13, pendingProps, key, mode)),
-          (type.elementType = REACT_SUSPENSE_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      case REACT_SUSPENSE_LIST_TYPE:
-        return (
-          (type = createFiberImplClass(19, pendingProps, key, mode)),
-          (type.elementType = REACT_SUSPENSE_LIST_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      default:
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_CONTEXT_TYPE:
-              fiberTag = 10;
-              break a;
-            case REACT_CONSUMER_TYPE:
-              fiberTag = 9;
-              break a;
-            case REACT_FORWARD_REF_TYPE:
-              fiberTag = 11;
-              break a;
-            case REACT_MEMO_TYPE:
-              fiberTag = 14;
-              break a;
-            case REACT_LAZY_TYPE:
-              fiberTag = 16;
-              owner = null;
-              break a;
-          }
-        fiberTag = 29;
-        pendingProps = Error(
-          formatProdErrorMessage(130, null === type ? "null" : typeof type, "")
-        );
-        owner = null;
-    }
-  key = createFiberImplClass(fiberTag, pendingProps, key, mode);
-  key.elementType = type;
-  key.type = owner;
-  key.lanes = lanes;
-  return key;
-}
-function createFiberFromFragment(elements, mode, lanes, key) {
-  elements = createFiberImplClass(7, elements, key, mode);
-  elements.lanes = lanes;
-  return elements;
-}
-function createFiberFromText(content, mode, lanes) {
-  content = createFiberImplClass(6, content, null, mode);
-  content.lanes = lanes;
-  return content;
-}
-function createFiberFromDehydratedFragment(dehydratedNode) {
-  var fiber = createFiberImplClass(18, null, null, 0);
-  fiber.stateNode = dehydratedNode;
-  return fiber;
-}
-function createFiberFromPortal(portal, mode, lanes) {
-  mode = createFiberImplClass(
-    4,
-    null !== portal.children ? portal.children : [],
-    portal.key,
-    mode
-  );
-  mode.lanes = lanes;
-  mode.stateNode = {
-    containerInfo: portal.containerInfo,
-    pendingChildren: null,
-    implementation: portal.implementation
-  };
-  return mode;
-}
-var CapturedStacks = new WeakMap();
-function createCapturedValueAtFiber(value, source) {
-  if ("object" === typeof value && null !== value) {
-    var existing = CapturedStacks.get(value);
-    if (void 0 !== existing) return existing;
-    source = {
-      value: value,
-      source: source,
-      stack: getStackByFiberInDevAndProd(source)
-    };
-    CapturedStacks.set(value, source);
-    return source;
-  }
-  return {
-    value: value,
-    source: source,
-    stack: getStackByFiberInDevAndProd(source)
-  };
-}
-var forkStack = [],
-  forkStackIndex = 0,
-  treeForkProvider = null,
-  treeForkCount = 0,
-  idStack = [],
-  idStackIndex = 0,
-  treeContextProvider = null,
-  treeContextId = 1,
-  treeContextOverflow = "";
-function pushTreeFork(workInProgress, totalChildren) {
-  forkStack[forkStackIndex++] = treeForkCount;
-  forkStack[forkStackIndex++] = treeForkProvider;
-  treeForkProvider = workInProgress;
-  treeForkCount = totalChildren;
-}
-function pushTreeId(workInProgress, totalChildren, index) {
-  idStack[idStackIndex++] = treeContextId;
-  idStack[idStackIndex++] = treeContextOverflow;
-  idStack[idStackIndex++] = treeContextProvider;
-  treeContextProvider = workInProgress;
-  var baseIdWithLeadingBit = treeContextId;
-  workInProgress = treeContextOverflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    treeContextId =
-      (1 << (32 - clz32(totalChildren) + baseLength)) |
-      (index << baseLength) |
-      baseIdWithLeadingBit;
-    treeContextOverflow = length + workInProgress;
-  } else
-    (treeContextId =
-      (1 << length) | (index << baseLength) | baseIdWithLeadingBit),
-      (treeContextOverflow = workInProgress);
-}
-function pushMaterializedTreeId(workInProgress) {
-  null !== workInProgress.return &&
-    (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));
-}
-function popTreeContext(workInProgress) {
-  for (; workInProgress === treeForkProvider; )
-    (treeForkProvider = forkStack[--forkStackIndex]),
-      (forkStack[forkStackIndex] = null),
-      (treeForkCount = forkStack[--forkStackIndex]),
-      (forkStack[forkStackIndex] = null);
-  for (; workInProgress === treeContextProvider; )
-    (treeContextProvider = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null),
-      (treeContextOverflow = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null),
-      (treeContextId = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null);
-}
-function restoreSuspendedTreeContext(workInProgress, suspendedContext) {
-  idStack[idStackIndex++] = treeContextId;
-  idStack[idStackIndex++] = treeContextOverflow;
-  idStack[idStackIndex++] = treeContextProvider;
-  treeContextId = suspendedContext.id;
-  treeContextOverflow = suspendedContext.overflow;
-  treeContextProvider = workInProgress;
-}
-var hydrationParentFiber = null,
-  nextHydratableInstance = null,
-  isHydrating = !1,
-  hydrationErrors = null,
-  rootOrSingletonContext = !1,
-  HydrationMismatchException = Error(formatProdErrorMessage(519));
-function throwOnHydrationMismatch(fiber) {
-  var error = Error(
-    formatProdErrorMessage(
-      418,
-      1 < arguments.length && void 0 !== arguments[1] && arguments[1]
-        ? "text"
-        : "HTML",
-      ""
-    )
-  );
-  queueHydrationError(createCapturedValueAtFiber(error, fiber));
-  throw HydrationMismatchException;
-}
-function prepareToHydrateHostInstance(fiber) {
-  var instance = fiber.stateNode,
-    type = fiber.type,
-    props = fiber.memoizedProps;
-  instance[internalInstanceKey] = fiber;
-  instance[internalPropsKey] = props;
-  switch (type) {
-    case "dialog":
-      listenToNonDelegatedEvent("cancel", instance);
-      listenToNonDelegatedEvent("close", instance);
-      break;
-    case "iframe":
-    case "object":
-    case "embed":
-      listenToNonDelegatedEvent("load", instance);
-      break;
-    case "video":
-    case "audio":
-      for (type = 0; type < mediaEventTypes.length; type++)
-        listenToNonDelegatedEvent(mediaEventTypes[type], instance);
-      break;
-    case "source":
-      listenToNonDelegatedEvent("error", instance);
-      break;
-    case "img":
-    case "image":
-    case "link":
-      listenToNonDelegatedEvent("error", instance);
-      listenToNonDelegatedEvent("load", instance);
-      break;
-    case "details":
-      listenToNonDelegatedEvent("toggle", instance);
-      break;
-    case "input":
-      listenToNonDelegatedEvent("invalid", instance);
-      initInput(
-        instance,
-        props.value,
-        props.defaultValue,
-        props.checked,
-        props.defaultChecked,
-        props.type,
-        props.name,
-        !0
-      );
-      break;
-    case "select":
-      listenToNonDelegatedEvent("invalid", instance);
-      break;
-    case "textarea":
-      listenToNonDelegatedEvent("invalid", instance),
-        initTextarea(instance, props.value, props.defaultValue, props.children);
-  }
-  type = props.children;
-  ("string" !== typeof type &&
-    "number" !== typeof type &&
-    "bigint" !== typeof type) ||
-  instance.textContent === "" + type ||
-  !0 === props.suppressHydrationWarning ||
-  checkForUnmatchedText(instance.textContent, type)
-    ? (null != props.popover &&
-        (listenToNonDelegatedEvent("beforetoggle", instance),
-        listenToNonDelegatedEvent("toggle", instance)),
-      null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
-      null != props.onScrollEnd &&
-        listenToNonDelegatedEvent("scrollend", instance),
-      null != props.onClick && (instance.onclick = noop$1),
-      (instance = !0))
-    : (instance = !1);
-  instance || throwOnHydrationMismatch(fiber, !0);
-}
-function popToNextHostParent(fiber) {
-  for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
-    switch (hydrationParentFiber.tag) {
-      case 5:
-      case 31:
-      case 13:
-        rootOrSingletonContext = !1;
-        return;
-      case 27:
-      case 3:
-        rootOrSingletonContext = !0;
-        return;
-      default:
-        hydrationParentFiber = hydrationParentFiber.return;
-    }
-}
-function popHydrationState(fiber) {
-  if (fiber !== hydrationParentFiber) return !1;
-  if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;
-  var tag = fiber.tag,
-    JSCompiler_temp;
-  if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
-    if ((JSCompiler_temp = 5 === tag))
-      (JSCompiler_temp = fiber.type),
-        (JSCompiler_temp =
-          !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) ||
-          shouldSetTextContent(fiber.type, fiber.memoizedProps));
-    JSCompiler_temp = !JSCompiler_temp;
-  }
-  JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);
-  popToNextHostParent(fiber);
-  if (13 === tag) {
-    fiber = fiber.memoizedState;
-    fiber = null !== fiber ? fiber.dehydrated : null;
-    if (!fiber) throw Error(formatProdErrorMessage(317));
-    nextHydratableInstance =
-      getNextHydratableInstanceAfterHydrationBoundary(fiber);
-  } else if (31 === tag) {
-    fiber = fiber.memoizedState;
-    fiber = null !== fiber ? fiber.dehydrated : null;
-    if (!fiber) throw Error(formatProdErrorMessage(317));
-    nextHydratableInstance =
-      getNextHydratableInstanceAfterHydrationBoundary(fiber);
-  } else
-    27 === tag
-      ? ((tag = nextHydratableInstance),
-        isSingletonScope(fiber.type)
-          ? ((fiber = previousHydratableOnEnteringScopedSingleton),
-            (previousHydratableOnEnteringScopedSingleton = null),
-            (nextHydratableInstance = fiber))
-          : (nextHydratableInstance = tag))
-      : (nextHydratableInstance = hydrationParentFiber
-          ? getNextHydratable(fiber.stateNode.nextSibling)
-          : null);
-  return !0;
-}
-function resetHydrationState() {
-  nextHydratableInstance = hydrationParentFiber = null;
-  isHydrating = !1;
-}
-function upgradeHydrationErrorsToRecoverable() {
-  var queuedErrors = hydrationErrors;
-  null !== queuedErrors &&
-    (null === workInProgressRootRecoverableErrors
-      ? (workInProgressRootRecoverableErrors = queuedErrors)
-      : workInProgressRootRecoverableErrors.push.apply(
-          workInProgressRootRecoverableErrors,
-          queuedErrors
-        ),
-    (hydrationErrors = null));
-  return queuedErrors;
-}
-function queueHydrationError(error) {
-  null === hydrationErrors
-    ? (hydrationErrors = [error])
-    : hydrationErrors.push(error);
-}
-var valueCursor = createCursor(null),
-  currentlyRenderingFiber$1 = null,
-  lastContextDependency = null;
-function pushProvider(providerFiber, context, nextValue) {
-  push(valueCursor, context._currentValue);
-  context._currentValue = nextValue;
-}
-function popProvider(context) {
-  context._currentValue = valueCursor.current;
-  pop(valueCursor);
-}
-function scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {
-  for (; null !== parent; ) {
-    var alternate = parent.alternate;
-    (parent.childLanes & renderLanes) !== renderLanes
-      ? ((parent.childLanes |= renderLanes),
-        null !== alternate && (alternate.childLanes |= renderLanes))
-      : null !== alternate &&
-        (alternate.childLanes & renderLanes) !== renderLanes &&
-        (alternate.childLanes |= renderLanes);
-    if (parent === propagationRoot) break;
-    parent = parent.return;
-  }
-}
-function propagateContextChanges(
-  workInProgress,
-  contexts,
-  renderLanes,
-  forcePropagateEntireTree
-) {
-  var fiber = workInProgress.child;
-  null !== fiber && (fiber.return = workInProgress);
-  for (; null !== fiber; ) {
-    var list = fiber.dependencies;
-    if (null !== list) {
-      var nextFiber = fiber.child;
-      list = list.firstContext;
-      a: for (; null !== list; ) {
-        var dependency = list;
-        list = fiber;
-        for (var i = 0; i < contexts.length; i++)
-          if (dependency.context === contexts[i]) {
-            list.lanes |= renderLanes;
-            dependency = list.alternate;
-            null !== dependency && (dependency.lanes |= renderLanes);
-            scheduleContextWorkOnParentPath(
-              list.return,
-              renderLanes,
-              workInProgress
-            );
-            forcePropagateEntireTree || (nextFiber = null);
-            break a;
-          }
-        list = dependency.next;
-      }
-    } else if (18 === fiber.tag) {
-      nextFiber = fiber.return;
-      if (null === nextFiber) throw Error(formatProdErrorMessage(341));
-      nextFiber.lanes |= renderLanes;
-      list = nextFiber.alternate;
-      null !== list && (list.lanes |= renderLanes);
-      scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);
-      nextFiber = null;
-    } else nextFiber = fiber.child;
-    if (null !== nextFiber) nextFiber.return = fiber;
-    else
-      for (nextFiber = fiber; null !== nextFiber; ) {
-        if (nextFiber === workInProgress) {
-          nextFiber = null;
-          break;
-        }
-        fiber = nextFiber.sibling;
-        if (null !== fiber) {
-          fiber.return = nextFiber.return;
-          nextFiber = fiber;
-          break;
-        }
-        nextFiber = nextFiber.return;
-      }
-    fiber = nextFiber;
-  }
-}
-function propagateParentContextChanges(
-  current,
-  workInProgress,
-  renderLanes,
-  forcePropagateEntireTree
-) {
-  current = null;
-  for (
-    var parent = workInProgress, isInsidePropagationBailout = !1;
-    null !== parent;
-
-  ) {
-    if (!isInsidePropagationBailout)
-      if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;
-      else if (0 !== (parent.flags & 262144)) break;
-    if (10 === parent.tag) {
-      var currentParent = parent.alternate;
-      if (null === currentParent) throw Error(formatProdErrorMessage(387));
-      currentParent = currentParent.memoizedProps;
-      if (null !== currentParent) {
-        var context = parent.type;
-        objectIs(parent.pendingProps.value, currentParent.value) ||
-          (null !== current ? current.push(context) : (current = [context]));
-      }
-    } else if (parent === hostTransitionProviderCursor.current) {
-      currentParent = parent.alternate;
-      if (null === currentParent) throw Error(formatProdErrorMessage(387));
-      currentParent.memoizedState.memoizedState !==
-        parent.memoizedState.memoizedState &&
-        (null !== current
-          ? current.push(HostTransitionContext)
-          : (current = [HostTransitionContext]));
-    }
-    parent = parent.return;
-  }
-  null !== current &&
-    propagateContextChanges(
-      workInProgress,
-      current,
-      renderLanes,
-      forcePropagateEntireTree
-    );
-  workInProgress.flags |= 262144;
-}
-function checkIfContextChanged(currentDependencies) {
-  for (
-    currentDependencies = currentDependencies.firstContext;
-    null !== currentDependencies;
-
-  ) {
-    if (
-      !objectIs(
-        currentDependencies.context._currentValue,
-        currentDependencies.memoizedValue
-      )
-    )
-      return !0;
-    currentDependencies = currentDependencies.next;
-  }
-  return !1;
-}
-function prepareToReadContext(workInProgress) {
-  currentlyRenderingFiber$1 = workInProgress;
-  lastContextDependency = null;
-  workInProgress = workInProgress.dependencies;
-  null !== workInProgress && (workInProgress.firstContext = null);
-}
-function readContext(context) {
-  return readContextForConsumer(currentlyRenderingFiber$1, context);
-}
-function readContextDuringReconciliation(consumer, context) {
-  null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);
-  return readContextForConsumer(consumer, context);
-}
-function readContextForConsumer(consumer, context) {
-  var value = context._currentValue;
-  context = { context: context, memoizedValue: value, next: null };
-  if (null === lastContextDependency) {
-    if (null === consumer) throw Error(formatProdErrorMessage(308));
-    lastContextDependency = context;
-    consumer.dependencies = { lanes: 0, firstContext: context };
-    consumer.flags |= 524288;
-  } else lastContextDependency = lastContextDependency.next = context;
-  return value;
-}
-var AbortControllerLocal =
-    "undefined" !== typeof AbortController
-      ? AbortController
-      : function () {
-          var listeners = [],
-            signal = (this.signal = {
-              aborted: !1,
-              addEventListener: function (type, listener) {
-                listeners.push(listener);
-              }
-            });
-          this.abort = function () {
-            signal.aborted = !0;
-            listeners.forEach(function (listener) {
-              return listener();
-            });
-          };
-        },
-  scheduleCallback$2 = Scheduler.unstable_scheduleCallback,
-  NormalPriority = Scheduler.unstable_NormalPriority,
-  CacheContext = {
-    $$typeof: REACT_CONTEXT_TYPE,
-    Consumer: null,
-    Provider: null,
-    _currentValue: null,
-    _currentValue2: null,
-    _threadCount: 0
-  };
-function createCache() {
-  return {
-    controller: new AbortControllerLocal(),
-    data: new Map(),
-    refCount: 0
-  };
-}
-function releaseCache(cache) {
-  cache.refCount--;
-  0 === cache.refCount &&
-    scheduleCallback$2(NormalPriority, function () {
-      cache.controller.abort();
-    });
-}
-var currentEntangledListeners = null,
-  currentEntangledPendingCount = 0,
-  currentEntangledLane = 0,
-  currentEntangledActionThenable = null;
-function entangleAsyncAction(transition, thenable) {
-  if (null === currentEntangledListeners) {
-    var entangledListeners = (currentEntangledListeners = []);
-    currentEntangledPendingCount = 0;
-    currentEntangledLane = requestTransitionLane();
-    currentEntangledActionThenable = {
-      status: "pending",
-      value: void 0,
-      then: function (resolve) {
-        entangledListeners.push(resolve);
-      }
-    };
-  }
-  currentEntangledPendingCount++;
-  thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);
-  return thenable;
-}
-function pingEngtangledActionScope() {
-  if (
-    0 === --currentEntangledPendingCount &&
-    null !== currentEntangledListeners
-  ) {
-    null !== currentEntangledActionThenable &&
-      (currentEntangledActionThenable.status = "fulfilled");
-    var listeners = currentEntangledListeners;
-    currentEntangledListeners = null;
-    currentEntangledLane = 0;
-    currentEntangledActionThenable = null;
-    for (var i = 0; i < listeners.length; i++) (0, listeners[i])();
-  }
-}
-function chainThenableValue(thenable, result) {
-  var listeners = [],
-    thenableWithOverride = {
-      status: "pending",
-      value: null,
-      reason: null,
-      then: function (resolve) {
-        listeners.push(resolve);
-      }
-    };
-  thenable.then(
-    function () {
-      thenableWithOverride.status = "fulfilled";
-      thenableWithOverride.value = result;
-      for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);
-    },
-    function (error) {
-      thenableWithOverride.status = "rejected";
-      thenableWithOverride.reason = error;
-      for (error = 0; error < listeners.length; error++)
-        (0, listeners[error])(void 0);
-    }
-  );
-  return thenableWithOverride;
-}
-var prevOnStartTransitionFinish = ReactSharedInternals.S;
-ReactSharedInternals.S = function (transition, returnValue) {
-  globalMostRecentTransitionTime = now();
-  "object" === typeof returnValue &&
-    null !== returnValue &&
-    "function" === typeof returnValue.then &&
-    entangleAsyncAction(transition, returnValue);
-  null !== prevOnStartTransitionFinish &&
-    prevOnStartTransitionFinish(transition, returnValue);
-};
-var resumedCache = createCursor(null);
-function peekCacheFromPool() {
-  var cacheResumedFromPreviousRender = resumedCache.current;
-  return null !== cacheResumedFromPreviousRender
-    ? cacheResumedFromPreviousRender
-    : workInProgressRoot.pooledCache;
-}
-function pushTransition(offscreenWorkInProgress, prevCachePool) {
-  null === prevCachePool
-    ? push(resumedCache, resumedCache.current)
-    : push(resumedCache, prevCachePool.pool);
-}
-function getSuspendedCache() {
-  var cacheFromPool = peekCacheFromPool();
-  return null === cacheFromPool
-    ? null
-    : { parent: CacheContext._currentValue, pool: cacheFromPool };
-}
-var SuspenseException = Error(formatProdErrorMessage(460)),
-  SuspenseyCommitException = Error(formatProdErrorMessage(474)),
-  SuspenseActionException = Error(formatProdErrorMessage(542)),
-  noopSuspenseyCommitThenable = { then: function () {} };
-function isThenableResolved(thenable) {
-  thenable = thenable.status;
-  return "fulfilled" === thenable || "rejected" === thenable;
-}
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw (
-        ((thenableState = thenable.reason),
-        checkIfUseWrappedInAsyncCatch(thenableState),
-        thenableState)
-      );
-    default:
-      if ("string" === typeof thenable.status) thenable.then(noop$1, noop$1);
-      else {
-        thenableState = workInProgressRoot;
-        if (null !== thenableState && 100 < thenableState.shellSuspendCounter)
-          throw Error(formatProdErrorMessage(482));
-        thenableState = thenable;
-        thenableState.status = "pending";
-        thenableState.then(
-          function (fulfilledValue) {
-            if ("pending" === thenable.status) {
-              var fulfilledThenable = thenable;
-              fulfilledThenable.status = "fulfilled";
-              fulfilledThenable.value = fulfilledValue;
-            }
-          },
-          function (error) {
-            if ("pending" === thenable.status) {
-              var rejectedThenable = thenable;
-              rejectedThenable.status = "rejected";
-              rejectedThenable.reason = error;
-            }
-          }
-        );
-      }
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw (
-            ((thenableState = thenable.reason),
-            checkIfUseWrappedInAsyncCatch(thenableState),
-            thenableState)
-          );
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-function resolveLazy(lazyType) {
-  try {
-    var init = lazyType._init;
-    return init(lazyType._payload);
-  } catch (x) {
-    if (null !== x && "object" === typeof x && "function" === typeof x.then)
-      throw ((suspendedThenable = x), SuspenseException);
-    throw x;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function checkIfUseWrappedInAsyncCatch(rejectedReason) {
-  if (
-    rejectedReason === SuspenseException ||
-    rejectedReason === SuspenseActionException
-  )
-    throw Error(formatProdErrorMessage(483));
-}
-var thenableState$1 = null,
-  thenableIndexCounter$1 = 0;
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter$1;
-  thenableIndexCounter$1 += 1;
-  null === thenableState$1 && (thenableState$1 = []);
-  return trackUsedThenable(thenableState$1, thenable, index);
-}
-function coerceRef(workInProgress, element) {
-  element = element.props.ref;
-  workInProgress.ref = void 0 !== element ? element : null;
-}
-function throwOnInvalidObjectTypeImpl(returnFiber, newChild) {
-  if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)
-    throw Error(formatProdErrorMessage(525));
-  returnFiber = Object.prototype.toString.call(newChild);
-  throw Error(
-    formatProdErrorMessage(
-      31,
-      "[object Object]" === returnFiber
-        ? "object with keys {" + Object.keys(newChild).join(", ") + "}"
-        : returnFiber
-    )
-  );
-}
-function createChildReconciler(shouldTrackSideEffects) {
-  function deleteChild(returnFiber, childToDelete) {
-    if (shouldTrackSideEffects) {
-      var deletions = returnFiber.deletions;
-      null === deletions
-        ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))
-        : deletions.push(childToDelete);
-    }
-  }
-  function deleteRemainingChildren(returnFiber, currentFirstChild) {
-    if (!shouldTrackSideEffects) return null;
-    for (; null !== currentFirstChild; )
-      deleteChild(returnFiber, currentFirstChild),
-        (currentFirstChild = currentFirstChild.sibling);
-    return null;
-  }
-  function mapRemainingChildren(currentFirstChild) {
-    for (var existingChildren = new Map(); null !== currentFirstChild; )
-      null !== currentFirstChild.key
-        ? existingChildren.set(currentFirstChild.key, currentFirstChild)
-        : existingChildren.set(currentFirstChild.index, currentFirstChild),
-        (currentFirstChild = currentFirstChild.sibling);
-    return existingChildren;
-  }
-  function useFiber(fiber, pendingProps) {
-    fiber = createWorkInProgress(fiber, pendingProps);
-    fiber.index = 0;
-    fiber.sibling = null;
-    return fiber;
-  }
-  function placeChild(newFiber, lastPlacedIndex, newIndex) {
-    newFiber.index = newIndex;
-    if (!shouldTrackSideEffects)
-      return (newFiber.flags |= 1048576), lastPlacedIndex;
-    newIndex = newFiber.alternate;
-    if (null !== newIndex)
-      return (
-        (newIndex = newIndex.index),
-        newIndex < lastPlacedIndex
-          ? ((newFiber.flags |= 67108866), lastPlacedIndex)
-          : newIndex
-      );
-    newFiber.flags |= 67108866;
-    return lastPlacedIndex;
-  }
-  function placeSingleChild(newFiber) {
-    shouldTrackSideEffects &&
-      null === newFiber.alternate &&
-      (newFiber.flags |= 67108866);
-    return newFiber;
-  }
-  function updateTextNode(returnFiber, current, textContent, lanes) {
-    if (null === current || 6 !== current.tag)
-      return (
-        (current = createFiberFromText(textContent, returnFiber.mode, lanes)),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, textContent);
-    current.return = returnFiber;
-    return current;
-  }
-  function updateElement(returnFiber, current, element, lanes) {
-    var elementType = element.type;
-    if (elementType === REACT_FRAGMENT_TYPE)
-      return updateFragment(
-        returnFiber,
-        current,
-        element.props.children,
-        lanes,
-        element.key
-      );
-    if (
-      null !== current &&
-      (current.elementType === elementType ||
-        ("object" === typeof elementType &&
-          null !== elementType &&
-          elementType.$$typeof === REACT_LAZY_TYPE &&
-          resolveLazy(elementType) === current.type))
-    )
-      return (
-        (current = useFiber(current, element.props)),
-        coerceRef(current, element),
-        (current.return = returnFiber),
-        current
-      );
-    current = createFiberFromTypeAndProps(
-      element.type,
-      element.key,
-      element.props,
-      null,
-      returnFiber.mode,
-      lanes
-    );
-    coerceRef(current, element);
-    current.return = returnFiber;
-    return current;
-  }
-  function updatePortal(returnFiber, current, portal, lanes) {
-    if (
-      null === current ||
-      4 !== current.tag ||
-      current.stateNode.containerInfo !== portal.containerInfo ||
-      current.stateNode.implementation !== portal.implementation
-    )
-      return (
-        (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, portal.children || []);
-    current.return = returnFiber;
-    return current;
-  }
-  function updateFragment(returnFiber, current, fragment, lanes, key) {
-    if (null === current || 7 !== current.tag)
-      return (
-        (current = createFiberFromFragment(
-          fragment,
-          returnFiber.mode,
-          lanes,
-          key
-        )),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, fragment);
-    current.return = returnFiber;
-    return current;
-  }
-  function createChild(returnFiber, newChild, lanes) {
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return (
-        (newChild = createFiberFromText(
-          "" + newChild,
-          returnFiber.mode,
-          lanes
-        )),
-        (newChild.return = returnFiber),
-        newChild
-      );
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return (
-            (lanes = createFiberFromTypeAndProps(
-              newChild.type,
-              newChild.key,
-              newChild.props,
-              null,
-              returnFiber.mode,
-              lanes
-            )),
-            coerceRef(lanes, newChild),
-            (lanes.return = returnFiber),
-            lanes
-          );
-        case REACT_PORTAL_TYPE:
-          return (
-            (newChild = createFiberFromPortal(
-              newChild,
-              returnFiber.mode,
-              lanes
-            )),
-            (newChild.return = returnFiber),
-            newChild
-          );
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            createChild(returnFiber, newChild, lanes)
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return (
-          (newChild = createFiberFromFragment(
-            newChild,
-            returnFiber.mode,
-            lanes,
-            null
-          )),
-          (newChild.return = returnFiber),
-          newChild
-        );
-      if ("function" === typeof newChild.then)
-        return createChild(returnFiber, unwrapThenable(newChild), lanes);
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return createChild(
-          returnFiber,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function updateSlot(returnFiber, oldFiber, newChild, lanes) {
-    var key = null !== oldFiber ? oldFiber.key : null;
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return null !== key
-        ? null
-        : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return newChild.key === key
-            ? updateElement(returnFiber, oldFiber, newChild, lanes)
-            : null;
-        case REACT_PORTAL_TYPE:
-          return newChild.key === key
-            ? updatePortal(returnFiber, oldFiber, newChild, lanes)
-            : null;
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            updateSlot(returnFiber, oldFiber, newChild, lanes)
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return null !== key
-          ? null
-          : updateFragment(returnFiber, oldFiber, newChild, lanes, null);
-      if ("function" === typeof newChild.then)
-        return updateSlot(
-          returnFiber,
-          oldFiber,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return updateSlot(
-          returnFiber,
-          oldFiber,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function updateFromMap(
-    existingChildren,
-    returnFiber,
-    newIdx,
-    newChild,
-    lanes
-  ) {
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return (
-        (existingChildren = existingChildren.get(newIdx) || null),
-        updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
-      );
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return (
-            (existingChildren =
-              existingChildren.get(
-                null === newChild.key ? newIdx : newChild.key
-              ) || null),
-            updateElement(returnFiber, existingChildren, newChild, lanes)
-          );
-        case REACT_PORTAL_TYPE:
-          return (
-            (existingChildren =
-              existingChildren.get(
-                null === newChild.key ? newIdx : newChild.key
-              ) || null),
-            updatePortal(returnFiber, existingChildren, newChild, lanes)
-          );
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            updateFromMap(
-              existingChildren,
-              returnFiber,
-              newIdx,
-              newChild,
-              lanes
-            )
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return (
-          (existingChildren = existingChildren.get(newIdx) || null),
-          updateFragment(returnFiber, existingChildren, newChild, lanes, null)
-        );
-      if ("function" === typeof newChild.then)
-        return updateFromMap(
-          existingChildren,
-          returnFiber,
-          newIdx,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return updateFromMap(
-          existingChildren,
-          returnFiber,
-          newIdx,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function reconcileChildrenArray(
-    returnFiber,
-    currentFirstChild,
-    newChildren,
-    lanes
-  ) {
-    for (
-      var resultingFirstChild = null,
-        previousNewFiber = null,
-        oldFiber = currentFirstChild,
-        newIdx = (currentFirstChild = 0),
-        nextOldFiber = null;
-      null !== oldFiber && newIdx < newChildren.length;
-      newIdx++
-    ) {
-      oldFiber.index > newIdx
-        ? ((nextOldFiber = oldFiber), (oldFiber = null))
-        : (nextOldFiber = oldFiber.sibling);
-      var newFiber = updateSlot(
-        returnFiber,
-        oldFiber,
-        newChildren[newIdx],
-        lanes
-      );
-      if (null === newFiber) {
-        null === oldFiber && (oldFiber = nextOldFiber);
-        break;
-      }
-      shouldTrackSideEffects &&
-        oldFiber &&
-        null === newFiber.alternate &&
-        deleteChild(returnFiber, oldFiber);
-      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-      null === previousNewFiber
-        ? (resultingFirstChild = newFiber)
-        : (previousNewFiber.sibling = newFiber);
-      previousNewFiber = newFiber;
-      oldFiber = nextOldFiber;
-    }
-    if (newIdx === newChildren.length)
-      return (
-        deleteRemainingChildren(returnFiber, oldFiber),
-        isHydrating && pushTreeFork(returnFiber, newIdx),
-        resultingFirstChild
-      );
-    if (null === oldFiber) {
-      for (; newIdx < newChildren.length; newIdx++)
-        (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
-          null !== oldFiber &&
-            ((currentFirstChild = placeChild(
-              oldFiber,
-              currentFirstChild,
-              newIdx
-            )),
-            null === previousNewFiber
-              ? (resultingFirstChild = oldFiber)
-              : (previousNewFiber.sibling = oldFiber),
-            (previousNewFiber = oldFiber));
-      isHydrating && pushTreeFork(returnFiber, newIdx);
-      return resultingFirstChild;
-    }
-    for (
-      oldFiber = mapRemainingChildren(oldFiber);
-      newIdx < newChildren.length;
-      newIdx++
-    )
-      (nextOldFiber = updateFromMap(
-        oldFiber,
-        returnFiber,
-        newIdx,
-        newChildren[newIdx],
-        lanes
-      )),
-        null !== nextOldFiber &&
-          (shouldTrackSideEffects &&
-            null !== nextOldFiber.alternate &&
-            oldFiber.delete(
-              null === nextOldFiber.key ? newIdx : nextOldFiber.key
-            ),
-          (currentFirstChild = placeChild(
-            nextOldFiber,
-            currentFirstChild,
-            newIdx
-          )),
-          null === previousNewFiber
-            ? (resultingFirstChild = nextOldFiber)
-            : (previousNewFiber.sibling = nextOldFiber),
-          (previousNewFiber = nextOldFiber));
-    shouldTrackSideEffects &&
-      oldFiber.forEach(function (child) {
-        return deleteChild(returnFiber, child);
-      });
-    isHydrating && pushTreeFork(returnFiber, newIdx);
-    return resultingFirstChild;
-  }
-  function reconcileChildrenIterator(
-    returnFiber,
-    currentFirstChild,
-    newChildren,
-    lanes
-  ) {
-    if (null == newChildren) throw Error(formatProdErrorMessage(151));
-    for (
-      var resultingFirstChild = null,
-        previousNewFiber = null,
-        oldFiber = currentFirstChild,
-        newIdx = (currentFirstChild = 0),
-        nextOldFiber = null,
-        step = newChildren.next();
-      null !== oldFiber && !step.done;
-      newIdx++, step = newChildren.next()
-    ) {
-      oldFiber.index > newIdx
-        ? ((nextOldFiber = oldFiber), (oldFiber = null))
-        : (nextOldFiber = oldFiber.sibling);
-      var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);
-      if (null === newFiber) {
-        null === oldFiber && (oldFiber = nextOldFiber);
-        break;
-      }
-      shouldTrackSideEffects &&
-        oldFiber &&
-        null === newFiber.alternate &&
-        deleteChild(returnFiber, oldFiber);
-      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-      null === previousNewFiber
-        ? (resultingFirstChild = newFiber)
-        : (previousNewFiber.sibling = newFiber);
-      previousNewFiber = newFiber;
-      oldFiber = nextOldFiber;
-    }
-    if (step.done)
-      return (
-        deleteRemainingChildren(returnFiber, oldFiber),
-        isHydrating && pushTreeFork(returnFiber, newIdx),
-        resultingFirstChild
-      );
-    if (null === oldFiber) {
-      for (; !step.done; newIdx++, step = newChildren.next())
-        (step = createChild(returnFiber, step.value, lanes)),
-          null !== step &&
-            ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),
-            null === previousNewFiber
-              ? (resultingFirstChild = step)
-              : (previousNewFiber.sibling = step),
-            (previousNewFiber = step));
-      isHydrating && pushTreeFork(returnFiber, newIdx);
-      return resultingFirstChild;
-    }
-    for (
-      oldFiber = mapRemainingChildren(oldFiber);
-      !step.done;
-      newIdx++, step = newChildren.next()
-    )
-      (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),
-        null !== step &&
-          (shouldTrackSideEffects &&
-            null !== step.alternate &&
-            oldFiber.delete(null === step.key ? newIdx : step.key),
-          (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),
-          null === previousNewFiber
-            ? (resultingFirstChild = step)
-            : (previousNewFiber.sibling = step),
-          (previousNewFiber = step));
-    shouldTrackSideEffects &&
-      oldFiber.forEach(function (child) {
-        return deleteChild(returnFiber, child);
-      });
-    isHydrating && pushTreeFork(returnFiber, newIdx);
-    return resultingFirstChild;
-  }
-  function reconcileChildFibersImpl(
-    returnFiber,
-    currentFirstChild,
-    newChild,
-    lanes
-  ) {
-    "object" === typeof newChild &&
-      null !== newChild &&
-      newChild.type === REACT_FRAGMENT_TYPE &&
-      null === newChild.key &&
-      (newChild = newChild.props.children);
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          a: {
-            for (var key = newChild.key; null !== currentFirstChild; ) {
-              if (currentFirstChild.key === key) {
-                key = newChild.type;
-                if (key === REACT_FRAGMENT_TYPE) {
-                  if (7 === currentFirstChild.tag) {
-                    deleteRemainingChildren(
-                      returnFiber,
-                      currentFirstChild.sibling
-                    );
-                    lanes = useFiber(
-                      currentFirstChild,
-                      newChild.props.children
-                    );
-                    lanes.return = returnFiber;
-                    returnFiber = lanes;
-                    break a;
-                  }
-                } else if (
-                  currentFirstChild.elementType === key ||
-                  ("object" === typeof key &&
-                    null !== key &&
-                    key.$$typeof === REACT_LAZY_TYPE &&
-                    resolveLazy(key) === currentFirstChild.type)
-                ) {
-                  deleteRemainingChildren(
-                    returnFiber,
-                    currentFirstChild.sibling
-                  );
-                  lanes = useFiber(currentFirstChild, newChild.props);
-                  coerceRef(lanes, newChild);
-                  lanes.return = returnFiber;
-                  returnFiber = lanes;
-                  break a;
-                }
-                deleteRemainingChildren(returnFiber, currentFirstChild);
-                break;
-              } else deleteChild(returnFiber, currentFirstChild);
-              currentFirstChild = currentFirstChild.sibling;
-            }
-            newChild.type === REACT_FRAGMENT_TYPE
-              ? ((lanes = createFiberFromFragment(
-                  newChild.props.children,
-                  returnFiber.mode,
-                  lanes,
-                  newChild.key
-                )),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes))
-              : ((lanes = createFiberFromTypeAndProps(
-                  newChild.type,
-                  newChild.key,
-                  newChild.props,
-                  null,
-                  returnFiber.mode,
-                  lanes
-                )),
-                coerceRef(lanes, newChild),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes));
-          }
-          return placeSingleChild(returnFiber);
-        case REACT_PORTAL_TYPE:
-          a: {
-            for (key = newChild.key; null !== currentFirstChild; ) {
-              if (currentFirstChild.key === key)
-                if (
-                  4 === currentFirstChild.tag &&
-                  currentFirstChild.stateNode.containerInfo ===
-                    newChild.containerInfo &&
-                  currentFirstChild.stateNode.implementation ===
-                    newChild.implementation
-                ) {
-                  deleteRemainingChildren(
-                    returnFiber,
-                    currentFirstChild.sibling
-                  );
-                  lanes = useFiber(currentFirstChild, newChild.children || []);
-                  lanes.return = returnFiber;
-                  returnFiber = lanes;
-                  break a;
-                } else {
-                  deleteRemainingChildren(returnFiber, currentFirstChild);
-                  break;
-                }
-              else deleteChild(returnFiber, currentFirstChild);
-              currentFirstChild = currentFirstChild.sibling;
-            }
-            lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);
-            lanes.return = returnFiber;
-            returnFiber = lanes;
-          }
-          return placeSingleChild(returnFiber);
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            reconcileChildFibersImpl(
-              returnFiber,
-              currentFirstChild,
-              newChild,
-              lanes
-            )
-          );
-      }
-      if (isArrayImpl(newChild))
-        return reconcileChildrenArray(
-          returnFiber,
-          currentFirstChild,
-          newChild,
-          lanes
-        );
-      if (getIteratorFn(newChild)) {
-        key = getIteratorFn(newChild);
-        if ("function" !== typeof key) throw Error(formatProdErrorMessage(150));
-        newChild = key.call(newChild);
-        return reconcileChildrenIterator(
-          returnFiber,
-          currentFirstChild,
-          newChild,
-          lanes
-        );
-      }
-      if ("function" === typeof newChild.then)
-        return reconcileChildFibersImpl(
-          returnFiber,
-          currentFirstChild,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return reconcileChildFibersImpl(
-          returnFiber,
-          currentFirstChild,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-      ? ((newChild = "" + newChild),
-        null !== currentFirstChild && 6 === currentFirstChild.tag
-          ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
-            (lanes = useFiber(currentFirstChild, newChild)),
-            (lanes.return = returnFiber),
-            (returnFiber = lanes))
-          : (deleteRemainingChildren(returnFiber, currentFirstChild),
-            (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),
-            (lanes.return = returnFiber),
-            (returnFiber = lanes)),
-        placeSingleChild(returnFiber))
-      : deleteRemainingChildren(returnFiber, currentFirstChild);
-  }
-  return function (returnFiber, currentFirstChild, newChild, lanes) {
-    try {
-      thenableIndexCounter$1 = 0;
-      var firstChildFiber = reconcileChildFibersImpl(
-        returnFiber,
-        currentFirstChild,
-        newChild,
-        lanes
-      );
-      thenableState$1 = null;
-      return firstChildFiber;
-    } catch (x) {
-      if (x === SuspenseException || x === SuspenseActionException) throw x;
-      var fiber = createFiberImplClass(29, x, null, returnFiber.mode);
-      fiber.lanes = lanes;
-      fiber.return = returnFiber;
-      return fiber;
-    } finally {
-    }
-  };
-}
-var reconcileChildFibers = createChildReconciler(!0),
-  mountChildFibers = createChildReconciler(!1),
-  hasForceUpdate = !1;
-function initializeUpdateQueue(fiber) {
-  fiber.updateQueue = {
-    baseState: fiber.memoizedState,
-    firstBaseUpdate: null,
-    lastBaseUpdate: null,
-    shared: { pending: null, lanes: 0, hiddenCallbacks: null },
-    callbacks: null
-  };
-}
-function cloneUpdateQueue(current, workInProgress) {
-  current = current.updateQueue;
-  workInProgress.updateQueue === current &&
-    (workInProgress.updateQueue = {
-      baseState: current.baseState,
-      firstBaseUpdate: current.firstBaseUpdate,
-      lastBaseUpdate: current.lastBaseUpdate,
-      shared: current.shared,
-      callbacks: null
-    });
-}
-function createUpdate(lane) {
-  return { lane: lane, tag: 0, payload: null, callback: null, next: null };
-}
-function enqueueUpdate(fiber, update, lane) {
-  var updateQueue = fiber.updateQueue;
-  if (null === updateQueue) return null;
-  updateQueue = updateQueue.shared;
-  if (0 !== (executionContext & 2)) {
-    var pending = updateQueue.pending;
-    null === pending
-      ? (update.next = update)
-      : ((update.next = pending.next), (pending.next = update));
-    updateQueue.pending = update;
-    update = getRootForUpdatedFiber(fiber);
-    markUpdateLaneFromFiberToRoot(fiber, null, lane);
-    return update;
-  }
-  enqueueUpdate$1(fiber, updateQueue, update, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function entangleTransitions(root, fiber, lane) {
-  fiber = fiber.updateQueue;
-  if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {
-    var queueLanes = fiber.lanes;
-    queueLanes &= root.pendingLanes;
-    lane |= queueLanes;
-    fiber.lanes = lane;
-    markRootEntangled(root, lane);
-  }
-}
-function enqueueCapturedUpdate(workInProgress, capturedUpdate) {
-  var queue = workInProgress.updateQueue,
-    current = workInProgress.alternate;
-  if (
-    null !== current &&
-    ((current = current.updateQueue), queue === current)
-  ) {
-    var newFirst = null,
-      newLast = null;
-    queue = queue.firstBaseUpdate;
-    if (null !== queue) {
-      do {
-        var clone = {
-          lane: queue.lane,
-          tag: queue.tag,
-          payload: queue.payload,
-          callback: null,
-          next: null
-        };
-        null === newLast
-          ? (newFirst = newLast = clone)
-          : (newLast = newLast.next = clone);
-        queue = queue.next;
-      } while (null !== queue);
-      null === newLast
-        ? (newFirst = newLast = capturedUpdate)
-        : (newLast = newLast.next = capturedUpdate);
-    } else newFirst = newLast = capturedUpdate;
-    queue = {
-      baseState: current.baseState,
-      firstBaseUpdate: newFirst,
-      lastBaseUpdate: newLast,
-      shared: current.shared,
-      callbacks: current.callbacks
-    };
-    workInProgress.updateQueue = queue;
-    return;
-  }
-  workInProgress = queue.lastBaseUpdate;
-  null === workInProgress
-    ? (queue.firstBaseUpdate = capturedUpdate)
-    : (workInProgress.next = capturedUpdate);
-  queue.lastBaseUpdate = capturedUpdate;
-}
-var didReadFromEntangledAsyncAction = !1;
-function suspendIfUpdateReadFromEntangledAsyncAction() {
-  if (didReadFromEntangledAsyncAction) {
-    var entangledActionThenable = currentEntangledActionThenable;
-    if (null !== entangledActionThenable) throw entangledActionThenable;
-  }
-}
-function processUpdateQueue(
-  workInProgress$jscomp$0,
-  props,
-  instance$jscomp$0,
-  renderLanes
-) {
-  didReadFromEntangledAsyncAction = !1;
-  var queue = workInProgress$jscomp$0.updateQueue;
-  hasForceUpdate = !1;
-  var firstBaseUpdate = queue.firstBaseUpdate,
-    lastBaseUpdate = queue.lastBaseUpdate,
-    pendingQueue = queue.shared.pending;
-  if (null !== pendingQueue) {
-    queue.shared.pending = null;
-    var lastPendingUpdate = pendingQueue,
-      firstPendingUpdate = lastPendingUpdate.next;
-    lastPendingUpdate.next = null;
-    null === lastBaseUpdate
-      ? (firstBaseUpdate = firstPendingUpdate)
-      : (lastBaseUpdate.next = firstPendingUpdate);
-    lastBaseUpdate = lastPendingUpdate;
-    var current = workInProgress$jscomp$0.alternate;
-    null !== current &&
-      ((current = current.updateQueue),
-      (pendingQueue = current.lastBaseUpdate),
-      pendingQueue !== lastBaseUpdate &&
-        (null === pendingQueue
-          ? (current.firstBaseUpdate = firstPendingUpdate)
-          : (pendingQueue.next = firstPendingUpdate),
-        (current.lastBaseUpdate = lastPendingUpdate)));
-  }
-  if (null !== firstBaseUpdate) {
-    var newState = queue.baseState;
-    lastBaseUpdate = 0;
-    current = firstPendingUpdate = lastPendingUpdate = null;
-    pendingQueue = firstBaseUpdate;
-    do {
-      var updateLane = pendingQueue.lane & -536870913,
-        isHiddenUpdate = updateLane !== pendingQueue.lane;
-      if (
-        isHiddenUpdate
-          ? (workInProgressRootRenderLanes & updateLane) === updateLane
-          : (renderLanes & updateLane) === updateLane
-      ) {
-        0 !== updateLane &&
-          updateLane === currentEntangledLane &&
-          (didReadFromEntangledAsyncAction = !0);
-        null !== current &&
-          (current = current.next =
-            {
-              lane: 0,
-              tag: pendingQueue.tag,
-              payload: pendingQueue.payload,
-              callback: null,
-              next: null
-            });
-        a: {
-          var workInProgress = workInProgress$jscomp$0,
-            update = pendingQueue;
-          updateLane = props;
-          var instance = instance$jscomp$0;
-          switch (update.tag) {
-            case 1:
-              workInProgress = update.payload;
-              if ("function" === typeof workInProgress) {
-                newState = workInProgress.call(instance, newState, updateLane);
-                break a;
-              }
-              newState = workInProgress;
-              break a;
-            case 3:
-              workInProgress.flags = (workInProgress.flags & -65537) | 128;
-            case 0:
-              workInProgress = update.payload;
-              updateLane =
-                "function" === typeof workInProgress
-                  ? workInProgress.call(instance, newState, updateLane)
-                  : workInProgress;
-              if (null === updateLane || void 0 === updateLane) break a;
-              newState = assign({}, newState, updateLane);
-              break a;
-            case 2:
-              hasForceUpdate = !0;
-          }
-        }
-        updateLane = pendingQueue.callback;
-        null !== updateLane &&
-          ((workInProgress$jscomp$0.flags |= 64),
-          isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),
-          (isHiddenUpdate = queue.callbacks),
-          null === isHiddenUpdate
-            ? (queue.callbacks = [updateLane])
-            : isHiddenUpdate.push(updateLane));
-      } else
-        (isHiddenUpdate = {
-          lane: updateLane,
-          tag: pendingQueue.tag,
-          payload: pendingQueue.payload,
-          callback: pendingQueue.callback,
-          next: null
-        }),
-          null === current
-            ? ((firstPendingUpdate = current = isHiddenUpdate),
-              (lastPendingUpdate = newState))
-            : (current = current.next = isHiddenUpdate),
-          (lastBaseUpdate |= updateLane);
-      pendingQueue = pendingQueue.next;
-      if (null === pendingQueue)
-        if (((pendingQueue = queue.shared.pending), null === pendingQueue))
-          break;
-        else
-          (isHiddenUpdate = pendingQueue),
-            (pendingQueue = isHiddenUpdate.next),
-            (isHiddenUpdate.next = null),
-            (queue.lastBaseUpdate = isHiddenUpdate),
-            (queue.shared.pending = null);
-    } while (1);
-    null === current && (lastPendingUpdate = newState);
-    queue.baseState = lastPendingUpdate;
-    queue.firstBaseUpdate = firstPendingUpdate;
-    queue.lastBaseUpdate = current;
-    null === firstBaseUpdate && (queue.shared.lanes = 0);
-    workInProgressRootSkippedLanes |= lastBaseUpdate;
-    workInProgress$jscomp$0.lanes = lastBaseUpdate;
-    workInProgress$jscomp$0.memoizedState = newState;
-  }
-}
-function callCallback(callback, context) {
-  if ("function" !== typeof callback)
-    throw Error(formatProdErrorMessage(191, callback));
-  callback.call(context);
-}
-function commitCallbacks(updateQueue, context) {
-  var callbacks = updateQueue.callbacks;
-  if (null !== callbacks)
-    for (
-      updateQueue.callbacks = null, updateQueue = 0;
-      updateQueue < callbacks.length;
-      updateQueue++
-    )
-      callCallback(callbacks[updateQueue], context);
-}
-var currentTreeHiddenStackCursor = createCursor(null),
-  prevEntangledRenderLanesCursor = createCursor(0);
-function pushHiddenContext(fiber, context) {
-  fiber = entangledRenderLanes;
-  push(prevEntangledRenderLanesCursor, fiber);
-  push(currentTreeHiddenStackCursor, context);
-  entangledRenderLanes = fiber | context.baseLanes;
-}
-function reuseHiddenContextOnStack() {
-  push(prevEntangledRenderLanesCursor, entangledRenderLanes);
-  push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);
-}
-function popHiddenContext() {
-  entangledRenderLanes = prevEntangledRenderLanesCursor.current;
-  pop(currentTreeHiddenStackCursor);
-  pop(prevEntangledRenderLanesCursor);
-}
-var suspenseHandlerStackCursor = createCursor(null),
-  shellBoundary = null;
-function pushPrimaryTreeSuspenseHandler(handler) {
-  var current = handler.alternate;
-  push(suspenseStackCursor, suspenseStackCursor.current & 1);
-  push(suspenseHandlerStackCursor, handler);
-  null === shellBoundary &&
-    (null === current || null !== currentTreeHiddenStackCursor.current
-      ? (shellBoundary = handler)
-      : null !== current.memoizedState && (shellBoundary = handler));
-}
-function pushDehydratedActivitySuspenseHandler(fiber) {
-  push(suspenseStackCursor, suspenseStackCursor.current);
-  push(suspenseHandlerStackCursor, fiber);
-  null === shellBoundary && (shellBoundary = fiber);
-}
-function pushOffscreenSuspenseHandler(fiber) {
-  22 === fiber.tag
-    ? (push(suspenseStackCursor, suspenseStackCursor.current),
-      push(suspenseHandlerStackCursor, fiber),
-      null === shellBoundary && (shellBoundary = fiber))
-    : reuseSuspenseHandlerOnStack(fiber);
-}
-function reuseSuspenseHandlerOnStack() {
-  push(suspenseStackCursor, suspenseStackCursor.current);
-  push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);
-}
-function popSuspenseHandler(fiber) {
-  pop(suspenseHandlerStackCursor);
-  shellBoundary === fiber && (shellBoundary = null);
-  pop(suspenseStackCursor);
-}
-var suspenseStackCursor = createCursor(0);
-function findFirstSuspended(row) {
-  for (var node = row; null !== node; ) {
-    if (13 === node.tag) {
-      var state = node.memoizedState;
-      if (
-        null !== state &&
-        ((state = state.dehydrated),
-        null === state ||
-          isSuspenseInstancePending(state) ||
-          isSuspenseInstanceFallback(state))
-      )
-        return node;
-    } else if (
-      19 === node.tag &&
-      ("forwards" === node.memoizedProps.revealOrder ||
-        "backwards" === node.memoizedProps.revealOrder ||
-        "unstable_legacy-backwards" === node.memoizedProps.revealOrder ||
-        "together" === node.memoizedProps.revealOrder)
-    ) {
-      if (0 !== (node.flags & 128)) return node;
-    } else if (null !== node.child) {
-      node.child.return = node;
-      node = node.child;
-      continue;
-    }
-    if (node === row) break;
-    for (; null === node.sibling; ) {
-      if (null === node.return || node.return === row) return null;
-      node = node.return;
-    }
-    node.sibling.return = node.return;
-    node = node.sibling;
-  }
-  return null;
-}
-var renderLanes = 0,
-  currentlyRenderingFiber = null,
-  currentHook = null,
-  workInProgressHook = null,
-  didScheduleRenderPhaseUpdate = !1,
-  didScheduleRenderPhaseUpdateDuringThisPass = !1,
-  shouldDoubleInvokeUserFnsInHooksDEV = !1,
-  localIdCounter = 0,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  globalClientIdCounter = 0;
-function throwInvalidHookError() {
-  throw Error(formatProdErrorMessage(321));
-}
-function areHookInputsEqual(nextDeps, prevDeps) {
-  if (null === prevDeps) return !1;
-  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)
-    if (!objectIs(nextDeps[i], prevDeps[i])) return !1;
-  return !0;
-}
-function renderWithHooks(
-  current,
-  workInProgress,
-  Component,
-  props,
-  secondArg,
-  nextRenderLanes
-) {
-  renderLanes = nextRenderLanes;
-  currentlyRenderingFiber = workInProgress;
-  workInProgress.memoizedState = null;
-  workInProgress.updateQueue = null;
-  workInProgress.lanes = 0;
-  ReactSharedInternals.H =
-    null === current || null === current.memoizedState
-      ? HooksDispatcherOnMount
-      : HooksDispatcherOnUpdate;
-  shouldDoubleInvokeUserFnsInHooksDEV = !1;
-  nextRenderLanes = Component(props, secondArg);
-  shouldDoubleInvokeUserFnsInHooksDEV = !1;
-  didScheduleRenderPhaseUpdateDuringThisPass &&
-    (nextRenderLanes = renderWithHooksAgain(
-      workInProgress,
-      Component,
-      props,
-      secondArg
-    ));
-  finishRenderingHooks(current);
-  return nextRenderLanes;
-}
-function finishRenderingHooks(current) {
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;
-  renderLanes = 0;
-  workInProgressHook = currentHook = currentlyRenderingFiber = null;
-  didScheduleRenderPhaseUpdate = !1;
-  thenableIndexCounter = 0;
-  thenableState = null;
-  if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));
-  null === current ||
-    didReceiveUpdate ||
-    ((current = current.dependencies),
-    null !== current &&
-      checkIfContextChanged(current) &&
-      (didReceiveUpdate = !0));
-}
-function renderWithHooksAgain(workInProgress, Component, props, secondArg) {
-  currentlyRenderingFiber = workInProgress;
-  var numberOfReRenders = 0;
-  do {
-    didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);
-    thenableIndexCounter = 0;
-    didScheduleRenderPhaseUpdateDuringThisPass = !1;
-    if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));
-    numberOfReRenders += 1;
-    workInProgressHook = currentHook = null;
-    if (null != workInProgress.updateQueue) {
-      var children = workInProgress.updateQueue;
-      children.lastEffect = null;
-      children.events = null;
-      children.stores = null;
-      null != children.memoCache && (children.memoCache.index = 0);
-    }
-    ReactSharedInternals.H = HooksDispatcherOnRerender;
-    children = Component(props, secondArg);
-  } while (didScheduleRenderPhaseUpdateDuringThisPass);
-  return children;
-}
-function TransitionAwareHostComponent() {
-  var dispatcher = ReactSharedInternals.H,
-    maybeThenable = dispatcher.useState()[0];
-  maybeThenable =
-    "function" === typeof maybeThenable.then
-      ? useThenable(maybeThenable)
-      : maybeThenable;
-  dispatcher = dispatcher.useState()[0];
-  (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&
-    (currentlyRenderingFiber.flags |= 1024);
-  return maybeThenable;
-}
-function checkDidRenderIdHook() {
-  var didRenderIdHook = 0 !== localIdCounter;
-  localIdCounter = 0;
-  return didRenderIdHook;
-}
-function bailoutHooks(current, workInProgress, lanes) {
-  workInProgress.updateQueue = current.updateQueue;
-  workInProgress.flags &= -2053;
-  current.lanes &= ~lanes;
-}
-function resetHooksOnUnwind(workInProgress) {
-  if (didScheduleRenderPhaseUpdate) {
-    for (
-      workInProgress = workInProgress.memoizedState;
-      null !== workInProgress;
-
-    ) {
-      var queue = workInProgress.queue;
-      null !== queue && (queue.pending = null);
-      workInProgress = workInProgress.next;
-    }
-    didScheduleRenderPhaseUpdate = !1;
-  }
-  renderLanes = 0;
-  workInProgressHook = currentHook = currentlyRenderingFiber = null;
-  didScheduleRenderPhaseUpdateDuringThisPass = !1;
-  thenableIndexCounter = localIdCounter = 0;
-  thenableState = null;
-}
-function mountWorkInProgressHook() {
-  var hook = {
-    memoizedState: null,
-    baseState: null,
-    baseQueue: null,
-    queue: null,
-    next: null
-  };
-  null === workInProgressHook
-    ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)
-    : (workInProgressHook = workInProgressHook.next = hook);
-  return workInProgressHook;
-}
-function updateWorkInProgressHook() {
-  if (null === currentHook) {
-    var nextCurrentHook = currentlyRenderingFiber.alternate;
-    nextCurrentHook =
-      null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;
-  } else nextCurrentHook = currentHook.next;
-  var nextWorkInProgressHook =
-    null === workInProgressHook
-      ? currentlyRenderingFiber.memoizedState
-      : workInProgressHook.next;
-  if (null !== nextWorkInProgressHook)
-    (workInProgressHook = nextWorkInProgressHook),
-      (currentHook = nextCurrentHook);
-  else {
-    if (null === nextCurrentHook) {
-      if (null === currentlyRenderingFiber.alternate)
-        throw Error(formatProdErrorMessage(467));
-      throw Error(formatProdErrorMessage(310));
-    }
-    currentHook = nextCurrentHook;
-    nextCurrentHook = {
-      memoizedState: currentHook.memoizedState,
-      baseState: currentHook.baseState,
-      baseQueue: currentHook.baseQueue,
-      queue: currentHook.queue,
-      next: null
-    };
-    null === workInProgressHook
-      ? (currentlyRenderingFiber.memoizedState = workInProgressHook =
-          nextCurrentHook)
-      : (workInProgressHook = workInProgressHook.next = nextCurrentHook);
-  }
-  return workInProgressHook;
-}
-function createFunctionComponentUpdateQueue() {
-  return { lastEffect: null, events: null, stores: null, memoCache: null };
-}
-function useThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  thenable = trackUsedThenable(thenableState, thenable, index);
-  index = currentlyRenderingFiber;
-  null ===
-    (null === workInProgressHook
-      ? index.memoizedState
-      : workInProgressHook.next) &&
-    ((index = index.alternate),
-    (ReactSharedInternals.H =
-      null === index || null === index.memoizedState
-        ? HooksDispatcherOnMount
-        : HooksDispatcherOnUpdate));
-  return thenable;
-}
-function use(usable) {
-  if (null !== usable && "object" === typeof usable) {
-    if ("function" === typeof usable.then) return useThenable(usable);
-    if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);
-  }
-  throw Error(formatProdErrorMessage(438, String(usable)));
-}
-function useMemoCache(size) {
-  var memoCache = null,
-    updateQueue = currentlyRenderingFiber.updateQueue;
-  null !== updateQueue && (memoCache = updateQueue.memoCache);
-  if (null == memoCache) {
-    var current = currentlyRenderingFiber.alternate;
-    null !== current &&
-      ((current = current.updateQueue),
-      null !== current &&
-        ((current = current.memoCache),
-        null != current &&
-          (memoCache = {
-            data: current.data.map(function (array) {
-              return array.slice();
-            }),
-            index: 0
-          })));
-  }
-  null == memoCache && (memoCache = { data: [], index: 0 });
-  null === updateQueue &&
-    ((updateQueue = createFunctionComponentUpdateQueue()),
-    (currentlyRenderingFiber.updateQueue = updateQueue));
-  updateQueue.memoCache = memoCache;
-  updateQueue = memoCache.data[memoCache.index];
-  if (void 0 === updateQueue)
-    for (
-      updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;
-      current < size;
-      current++
-    )
-      updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;
-  memoCache.index++;
-  return updateQueue;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function updateReducer(reducer) {
-  var hook = updateWorkInProgressHook();
-  return updateReducerImpl(hook, currentHook, reducer);
-}
-function updateReducerImpl(hook, current, reducer) {
-  var queue = hook.queue;
-  if (null === queue) throw Error(formatProdErrorMessage(311));
-  queue.lastRenderedReducer = reducer;
-  var baseQueue = hook.baseQueue,
-    pendingQueue = queue.pending;
-  if (null !== pendingQueue) {
-    if (null !== baseQueue) {
-      var baseFirst = baseQueue.next;
-      baseQueue.next = pendingQueue.next;
-      pendingQueue.next = baseFirst;
-    }
-    current.baseQueue = baseQueue = pendingQueue;
-    queue.pending = null;
-  }
-  pendingQueue = hook.baseState;
-  if (null === baseQueue) hook.memoizedState = pendingQueue;
-  else {
-    current = baseQueue.next;
-    var newBaseQueueFirst = (baseFirst = null),
-      newBaseQueueLast = null,
-      update = current,
-      didReadFromEntangledAsyncAction$60 = !1;
-    do {
-      var updateLane = update.lane & -536870913;
-      if (
-        updateLane !== update.lane
-          ? (workInProgressRootRenderLanes & updateLane) === updateLane
-          : (renderLanes & updateLane) === updateLane
-      ) {
-        var revertLane = update.revertLane;
-        if (0 === revertLane)
-          null !== newBaseQueueLast &&
-            (newBaseQueueLast = newBaseQueueLast.next =
-              {
-                lane: 0,
-                revertLane: 0,
-                gesture: null,
-                action: update.action,
-                hasEagerState: update.hasEagerState,
-                eagerState: update.eagerState,
-                next: null
-              }),
-            updateLane === currentEntangledLane &&
-              (didReadFromEntangledAsyncAction$60 = !0);
-        else if ((renderLanes & revertLane) === revertLane) {
-          update = update.next;
-          revertLane === currentEntangledLane &&
-            (didReadFromEntangledAsyncAction$60 = !0);
-          continue;
-        } else
-          (updateLane = {
-            lane: 0,
-            revertLane: update.revertLane,
-            gesture: null,
-            action: update.action,
-            hasEagerState: update.hasEagerState,
-            eagerState: update.eagerState,
-            next: null
-          }),
-            null === newBaseQueueLast
-              ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),
-                (baseFirst = pendingQueue))
-              : (newBaseQueueLast = newBaseQueueLast.next = updateLane),
-            (currentlyRenderingFiber.lanes |= revertLane),
-            (workInProgressRootSkippedLanes |= revertLane);
-        updateLane = update.action;
-        shouldDoubleInvokeUserFnsInHooksDEV &&
-          reducer(pendingQueue, updateLane);
-        pendingQueue = update.hasEagerState
-          ? update.eagerState
-          : reducer(pendingQueue, updateLane);
-      } else
-        (revertLane = {
-          lane: updateLane,
-          revertLane: update.revertLane,
-          gesture: update.gesture,
-          action: update.action,
-          hasEagerState: update.hasEagerState,
-          eagerState: update.eagerState,
-          next: null
-        }),
-          null === newBaseQueueLast
-            ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),
-              (baseFirst = pendingQueue))
-            : (newBaseQueueLast = newBaseQueueLast.next = revertLane),
-          (currentlyRenderingFiber.lanes |= updateLane),
-          (workInProgressRootSkippedLanes |= updateLane);
-      update = update.next;
-    } while (null !== update && update !== current);
-    null === newBaseQueueLast
-      ? (baseFirst = pendingQueue)
-      : (newBaseQueueLast.next = newBaseQueueFirst);
-    if (
-      !objectIs(pendingQueue, hook.memoizedState) &&
-      ((didReceiveUpdate = !0),
-      didReadFromEntangledAsyncAction$60 &&
-        ((reducer = currentEntangledActionThenable), null !== reducer))
-    )
-      throw reducer;
-    hook.memoizedState = pendingQueue;
-    hook.baseState = baseFirst;
-    hook.baseQueue = newBaseQueueLast;
-    queue.lastRenderedState = pendingQueue;
-  }
-  null === baseQueue && (queue.lanes = 0);
-  return [hook.memoizedState, queue.dispatch];
-}
-function rerenderReducer(reducer) {
-  var hook = updateWorkInProgressHook(),
-    queue = hook.queue;
-  if (null === queue) throw Error(formatProdErrorMessage(311));
-  queue.lastRenderedReducer = reducer;
-  var dispatch = queue.dispatch,
-    lastRenderPhaseUpdate = queue.pending,
-    newState = hook.memoizedState;
-  if (null !== lastRenderPhaseUpdate) {
-    queue.pending = null;
-    var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);
-    do (newState = reducer(newState, update.action)), (update = update.next);
-    while (update !== lastRenderPhaseUpdate);
-    objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);
-    hook.memoizedState = newState;
-    null === hook.baseQueue && (hook.baseState = newState);
-    queue.lastRenderedState = newState;
-  }
-  return [newState, dispatch];
-}
-function updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
-  var fiber = currentlyRenderingFiber,
-    hook = updateWorkInProgressHook(),
-    isHydrating$jscomp$0 = isHydrating;
-  if (isHydrating$jscomp$0) {
-    if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));
-    getServerSnapshot = getServerSnapshot();
-  } else getServerSnapshot = getSnapshot();
-  var snapshotChanged = !objectIs(
-    (currentHook || hook).memoizedState,
-    getServerSnapshot
-  );
-  snapshotChanged &&
-    ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));
-  hook = hook.queue;
-  updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [
-    subscribe
-  ]);
-  if (
-    hook.getSnapshot !== getSnapshot ||
-    snapshotChanged ||
-    (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)
-  ) {
-    fiber.flags |= 2048;
-    pushSimpleEffect(
-      9,
-      { destroy: void 0 },
-      updateStoreInstance.bind(
-        null,
-        fiber,
-        hook,
-        getServerSnapshot,
-        getSnapshot
-      ),
-      null
-    );
-    if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));
-    isHydrating$jscomp$0 ||
-      0 !== (renderLanes & 127) ||
-      pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-  }
-  return getServerSnapshot;
-}
-function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {
-  fiber.flags |= 16384;
-  fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };
-  getSnapshot = currentlyRenderingFiber.updateQueue;
-  null === getSnapshot
-    ? ((getSnapshot = createFunctionComponentUpdateQueue()),
-      (currentlyRenderingFiber.updateQueue = getSnapshot),
-      (getSnapshot.stores = [fiber]))
-    : ((renderedSnapshot = getSnapshot.stores),
-      null === renderedSnapshot
-        ? (getSnapshot.stores = [fiber])
-        : renderedSnapshot.push(fiber));
-}
-function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {
-  inst.value = nextSnapshot;
-  inst.getSnapshot = getSnapshot;
-  checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);
-}
-function subscribeToStore(fiber, inst, subscribe) {
-  return subscribe(function () {
-    checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);
-  });
-}
-function checkIfSnapshotChanged(inst) {
-  var latestGetSnapshot = inst.getSnapshot;
-  inst = inst.value;
-  try {
-    var nextValue = latestGetSnapshot();
-    return !objectIs(inst, nextValue);
-  } catch (error) {
-    return !0;
-  }
-}
-function forceStoreRerender(fiber) {
-  var root = enqueueConcurrentRenderForLane(fiber, 2);
-  null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-}
-function mountStateImpl(initialState) {
-  var hook = mountWorkInProgressHook();
-  if ("function" === typeof initialState) {
-    var initialStateInitializer = initialState;
-    initialState = initialStateInitializer();
-    if (shouldDoubleInvokeUserFnsInHooksDEV) {
-      setIsStrictModeForDevtools(!0);
-      try {
-        initialStateInitializer();
-      } finally {
-        setIsStrictModeForDevtools(!1);
-      }
-    }
-  }
-  hook.memoizedState = hook.baseState = initialState;
-  hook.queue = {
-    pending: null,
-    lanes: 0,
-    dispatch: null,
-    lastRenderedReducer: basicStateReducer,
-    lastRenderedState: initialState
-  };
-  return hook;
-}
-function updateOptimisticImpl(hook, current, passthrough, reducer) {
-  hook.baseState = passthrough;
-  return updateReducerImpl(
-    hook,
-    currentHook,
-    "function" === typeof reducer ? reducer : basicStateReducer
-  );
-}
-function dispatchActionState(
-  fiber,
-  actionQueue,
-  setPendingState,
-  setState,
-  payload
-) {
-  if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));
-  fiber = actionQueue.action;
-  if (null !== fiber) {
-    var actionNode = {
-      payload: payload,
-      action: fiber,
-      next: null,
-      isTransition: !0,
-      status: "pending",
-      value: null,
-      reason: null,
-      listeners: [],
-      then: function (listener) {
-        actionNode.listeners.push(listener);
-      }
-    };
-    null !== ReactSharedInternals.T
-      ? setPendingState(!0)
-      : (actionNode.isTransition = !1);
-    setState(actionNode);
-    setPendingState = actionQueue.pending;
-    null === setPendingState
-      ? ((actionNode.next = actionQueue.pending = actionNode),
-        runActionStateAction(actionQueue, actionNode))
-      : ((actionNode.next = setPendingState.next),
-        (actionQueue.pending = setPendingState.next = actionNode));
-  }
-}
-function runActionStateAction(actionQueue, node) {
-  var action = node.action,
-    payload = node.payload,
-    prevState = actionQueue.state;
-  if (node.isTransition) {
-    var prevTransition = ReactSharedInternals.T,
-      currentTransition = {};
-    ReactSharedInternals.T = currentTransition;
-    try {
-      var returnValue = action(prevState, payload),
-        onStartTransitionFinish = ReactSharedInternals.S;
-      null !== onStartTransitionFinish &&
-        onStartTransitionFinish(currentTransition, returnValue);
-      handleActionReturnValue(actionQueue, node, returnValue);
-    } catch (error) {
-      onActionError(actionQueue, node, error);
-    } finally {
-      null !== prevTransition &&
-        null !== currentTransition.types &&
-        (prevTransition.types = currentTransition.types),
-        (ReactSharedInternals.T = prevTransition);
-    }
-  } else
-    try {
-      (prevTransition = action(prevState, payload)),
-        handleActionReturnValue(actionQueue, node, prevTransition);
-    } catch (error$66) {
-      onActionError(actionQueue, node, error$66);
-    }
-}
-function handleActionReturnValue(actionQueue, node, returnValue) {
-  null !== returnValue &&
-  "object" === typeof returnValue &&
-  "function" === typeof returnValue.then
-    ? returnValue.then(
-        function (nextState) {
-          onActionSuccess(actionQueue, node, nextState);
-        },
-        function (error) {
-          return onActionError(actionQueue, node, error);
-        }
-      )
-    : onActionSuccess(actionQueue, node, returnValue);
-}
-function onActionSuccess(actionQueue, actionNode, nextState) {
-  actionNode.status = "fulfilled";
-  actionNode.value = nextState;
-  notifyActionListeners(actionNode);
-  actionQueue.state = nextState;
-  actionNode = actionQueue.pending;
-  null !== actionNode &&
-    ((nextState = actionNode.next),
-    nextState === actionNode
-      ? (actionQueue.pending = null)
-      : ((nextState = nextState.next),
-        (actionNode.next = nextState),
-        runActionStateAction(actionQueue, nextState)));
-}
-function onActionError(actionQueue, actionNode, error) {
-  var last = actionQueue.pending;
-  actionQueue.pending = null;
-  if (null !== last) {
-    last = last.next;
-    do
-      (actionNode.status = "rejected"),
-        (actionNode.reason = error),
-        notifyActionListeners(actionNode),
-        (actionNode = actionNode.next);
-    while (actionNode !== last);
-  }
-  actionQueue.action = null;
-}
-function notifyActionListeners(actionNode) {
-  actionNode = actionNode.listeners;
-  for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();
-}
-function actionStateReducer(oldState, newState) {
-  return newState;
-}
-function mountActionState(action, initialStateProp) {
-  if (isHydrating) {
-    var ssrFormState = workInProgressRoot.formState;
-    if (null !== ssrFormState) {
-      a: {
-        var JSCompiler_inline_result = currentlyRenderingFiber;
-        if (isHydrating) {
-          if (nextHydratableInstance) {
-            b: {
-              var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;
-              for (
-                var inRootOrSingleton = rootOrSingletonContext;
-                8 !== JSCompiler_inline_result$jscomp$0.nodeType;
-
-              ) {
-                if (!inRootOrSingleton) {
-                  JSCompiler_inline_result$jscomp$0 = null;
-                  break b;
-                }
-                JSCompiler_inline_result$jscomp$0 = getNextHydratable(
-                  JSCompiler_inline_result$jscomp$0.nextSibling
-                );
-                if (null === JSCompiler_inline_result$jscomp$0) {
-                  JSCompiler_inline_result$jscomp$0 = null;
-                  break b;
-                }
-              }
-              inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;
-              JSCompiler_inline_result$jscomp$0 =
-                "F!" === inRootOrSingleton || "F" === inRootOrSingleton
-                  ? JSCompiler_inline_result$jscomp$0
-                  : null;
-            }
-            if (JSCompiler_inline_result$jscomp$0) {
-              nextHydratableInstance = getNextHydratable(
-                JSCompiler_inline_result$jscomp$0.nextSibling
-              );
-              JSCompiler_inline_result =
-                "F!" === JSCompiler_inline_result$jscomp$0.data;
-              break a;
-            }
-          }
-          throwOnHydrationMismatch(JSCompiler_inline_result);
-        }
-        JSCompiler_inline_result = !1;
-      }
-      JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);
-    }
-  }
-  ssrFormState = mountWorkInProgressHook();
-  ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;
-  JSCompiler_inline_result = {
-    pending: null,
-    lanes: 0,
-    dispatch: null,
-    lastRenderedReducer: actionStateReducer,
-    lastRenderedState: initialStateProp
-  };
-  ssrFormState.queue = JSCompiler_inline_result;
-  ssrFormState = dispatchSetState.bind(
-    null,
-    currentlyRenderingFiber,
-    JSCompiler_inline_result
-  );
-  JSCompiler_inline_result.dispatch = ssrFormState;
-  JSCompiler_inline_result = mountStateImpl(!1);
-  inRootOrSingleton = dispatchOptimisticSetState.bind(
-    null,
-    currentlyRenderingFiber,
-    !1,
-    JSCompiler_inline_result.queue
-  );
-  JSCompiler_inline_result = mountWorkInProgressHook();
-  JSCompiler_inline_result$jscomp$0 = {
-    state: initialStateProp,
-    dispatch: null,
-    action: action,
-    pending: null
-  };
-  JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;
-  ssrFormState = dispatchActionState.bind(
-    null,
-    currentlyRenderingFiber,
-    JSCompiler_inline_result$jscomp$0,
-    inRootOrSingleton,
-    ssrFormState
-  );
-  JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;
-  JSCompiler_inline_result.memoizedState = action;
-  return [initialStateProp, ssrFormState, !1];
-}
-function updateActionState(action) {
-  var stateHook = updateWorkInProgressHook();
-  return updateActionStateImpl(stateHook, currentHook, action);
-}
-function updateActionStateImpl(stateHook, currentStateHook, action) {
-  currentStateHook = updateReducerImpl(
-    stateHook,
-    currentStateHook,
-    actionStateReducer
-  )[0];
-  stateHook = updateReducer(basicStateReducer)[0];
-  if (
-    "object" === typeof currentStateHook &&
-    null !== currentStateHook &&
-    "function" === typeof currentStateHook.then
-  )
-    try {
-      var state = useThenable(currentStateHook);
-    } catch (x) {
-      if (x === SuspenseException) throw SuspenseActionException;
-      throw x;
-    }
-  else state = currentStateHook;
-  currentStateHook = updateWorkInProgressHook();
-  var actionQueue = currentStateHook.queue,
-    dispatch = actionQueue.dispatch;
-  action !== currentStateHook.memoizedState &&
-    ((currentlyRenderingFiber.flags |= 2048),
-    pushSimpleEffect(
-      9,
-      { destroy: void 0 },
-      actionStateActionEffect.bind(null, actionQueue, action),
-      null
-    ));
-  return [state, dispatch, stateHook];
-}
-function actionStateActionEffect(actionQueue, action) {
-  actionQueue.action = action;
-}
-function rerenderActionState(action) {
-  var stateHook = updateWorkInProgressHook(),
-    currentStateHook = currentHook;
-  if (null !== currentStateHook)
-    return updateActionStateImpl(stateHook, currentStateHook, action);
-  updateWorkInProgressHook();
-  stateHook = stateHook.memoizedState;
-  currentStateHook = updateWorkInProgressHook();
-  var dispatch = currentStateHook.queue.dispatch;
-  currentStateHook.memoizedState = action;
-  return [stateHook, dispatch, !1];
-}
-function pushSimpleEffect(tag, inst, create, deps) {
-  tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };
-  inst = currentlyRenderingFiber.updateQueue;
-  null === inst &&
-    ((inst = createFunctionComponentUpdateQueue()),
-    (currentlyRenderingFiber.updateQueue = inst));
-  create = inst.lastEffect;
-  null === create
-    ? (inst.lastEffect = tag.next = tag)
-    : ((deps = create.next),
-      (create.next = tag),
-      (tag.next = deps),
-      (inst.lastEffect = tag));
-  return tag;
-}
-function updateRef() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function mountEffectImpl(fiberFlags, hookFlags, create, deps) {
-  var hook = mountWorkInProgressHook();
-  currentlyRenderingFiber.flags |= fiberFlags;
-  hook.memoizedState = pushSimpleEffect(
-    1 | hookFlags,
-    { destroy: void 0 },
-    create,
-    void 0 === deps ? null : deps
-  );
-}
-function updateEffectImpl(fiberFlags, hookFlags, create, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var inst = hook.memoizedState.inst;
-  null !== currentHook &&
-  null !== deps &&
-  areHookInputsEqual(deps, currentHook.memoizedState.deps)
-    ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))
-    : ((currentlyRenderingFiber.flags |= fiberFlags),
-      (hook.memoizedState = pushSimpleEffect(
-        1 | hookFlags,
-        inst,
-        create,
-        deps
-      )));
-}
-function mountEffect(create, deps) {
-  mountEffectImpl(8390656, 8, create, deps);
-}
-function updateEffect(create, deps) {
-  updateEffectImpl(2048, 8, create, deps);
-}
-function useEffectEventImpl(payload) {
-  currentlyRenderingFiber.flags |= 4;
-  var componentUpdateQueue = currentlyRenderingFiber.updateQueue;
-  if (null === componentUpdateQueue)
-    (componentUpdateQueue = createFunctionComponentUpdateQueue()),
-      (currentlyRenderingFiber.updateQueue = componentUpdateQueue),
-      (componentUpdateQueue.events = [payload]);
-  else {
-    var events = componentUpdateQueue.events;
-    null === events
-      ? (componentUpdateQueue.events = [payload])
-      : events.push(payload);
-  }
-}
-function updateEvent(callback) {
-  var ref = updateWorkInProgressHook().memoizedState;
-  useEffectEventImpl({ ref: ref, nextImpl: callback });
-  return function () {
-    if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));
-    return ref.impl.apply(void 0, arguments);
-  };
-}
-function updateInsertionEffect(create, deps) {
-  return updateEffectImpl(4, 2, create, deps);
-}
-function updateLayoutEffect(create, deps) {
-  return updateEffectImpl(4, 4, create, deps);
-}
-function imperativeHandleEffect(create, ref) {
-  if ("function" === typeof ref) {
-    create = create();
-    var refCleanup = ref(create);
-    return function () {
-      "function" === typeof refCleanup ? refCleanup() : ref(null);
-    };
-  }
-  if (null !== ref && void 0 !== ref)
-    return (
-      (create = create()),
-      (ref.current = create),
-      function () {
-        ref.current = null;
-      }
-    );
-}
-function updateImperativeHandle(ref, create, deps) {
-  deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-  updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);
-}
-function mountDebugValue() {}
-function updateCallback(callback, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var prevState = hook.memoizedState;
-  if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-    return prevState[0];
-  hook.memoizedState = [callback, deps];
-  return callback;
-}
-function updateMemo(nextCreate, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var prevState = hook.memoizedState;
-  if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-    return prevState[0];
-  prevState = nextCreate();
-  if (shouldDoubleInvokeUserFnsInHooksDEV) {
-    setIsStrictModeForDevtools(!0);
-    try {
-      nextCreate();
-    } finally {
-      setIsStrictModeForDevtools(!1);
-    }
-  }
-  hook.memoizedState = [prevState, deps];
-  return prevState;
-}
-function mountDeferredValueImpl(hook, value, initialValue) {
-  if (
-    void 0 === initialValue ||
-    (0 !== (renderLanes & 1073741824) &&
-      0 === (workInProgressRootRenderLanes & 261930))
-  )
-    return (hook.memoizedState = value);
-  hook.memoizedState = initialValue;
-  hook = requestDeferredLane();
-  currentlyRenderingFiber.lanes |= hook;
-  workInProgressRootSkippedLanes |= hook;
-  return initialValue;
-}
-function updateDeferredValueImpl(hook, prevValue, value, initialValue) {
-  if (objectIs(value, prevValue)) return value;
-  if (null !== currentTreeHiddenStackCursor.current)
-    return (
-      (hook = mountDeferredValueImpl(hook, value, initialValue)),
-      objectIs(hook, prevValue) || (didReceiveUpdate = !0),
-      hook
-    );
-  if (
-    0 === (renderLanes & 42) ||
-    (0 !== (renderLanes & 1073741824) &&
-      0 === (workInProgressRootRenderLanes & 261930))
-  )
-    return (didReceiveUpdate = !0), (hook.memoizedState = value);
-  hook = requestDeferredLane();
-  currentlyRenderingFiber.lanes |= hook;
-  workInProgressRootSkippedLanes |= hook;
-  return prevValue;
-}
-function startTransition(fiber, queue, pendingState, finishedState, callback) {
-  var previousPriority = ReactDOMSharedInternals.p;
-  ReactDOMSharedInternals.p =
-    0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;
-  var prevTransition = ReactSharedInternals.T,
-    currentTransition = {};
-  ReactSharedInternals.T = currentTransition;
-  dispatchOptimisticSetState(fiber, !1, queue, pendingState);
-  try {
-    var returnValue = callback(),
-      onStartTransitionFinish = ReactSharedInternals.S;
-    null !== onStartTransitionFinish &&
-      onStartTransitionFinish(currentTransition, returnValue);
-    if (
-      null !== returnValue &&
-      "object" === typeof returnValue &&
-      "function" === typeof returnValue.then
-    ) {
-      var thenableForFinishedState = chainThenableValue(
-        returnValue,
-        finishedState
-      );
-      dispatchSetStateInternal(
-        fiber,
-        queue,
-        thenableForFinishedState,
-        requestUpdateLane(fiber)
-      );
-    } else
-      dispatchSetStateInternal(
-        fiber,
-        queue,
-        finishedState,
-        requestUpdateLane(fiber)
-      );
-  } catch (error) {
-    dispatchSetStateInternal(
-      fiber,
-      queue,
-      { then: function () {}, status: "rejected", reason: error },
-      requestUpdateLane()
-    );
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      null !== prevTransition &&
-        null !== currentTransition.types &&
-        (prevTransition.types = currentTransition.types),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function noop() {}
-function startHostTransition(formFiber, pendingState, action, formData) {
-  if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));
-  var queue = ensureFormComponentIsStateful(formFiber).queue;
-  startTransition(
-    formFiber,
-    queue,
-    pendingState,
-    sharedNotPendingObject,
-    null === action
-      ? noop
-      : function () {
-          requestFormReset$1(formFiber);
-          return action(formData);
-        }
-  );
-}
-function ensureFormComponentIsStateful(formFiber) {
-  var existingStateHook = formFiber.memoizedState;
-  if (null !== existingStateHook) return existingStateHook;
-  existingStateHook = {
-    memoizedState: sharedNotPendingObject,
-    baseState: sharedNotPendingObject,
-    baseQueue: null,
-    queue: {
-      pending: null,
-      lanes: 0,
-      dispatch: null,
-      lastRenderedReducer: basicStateReducer,
-      lastRenderedState: sharedNotPendingObject
-    },
-    next: null
-  };
-  var initialResetState = {};
-  existingStateHook.next = {
-    memoizedState: initialResetState,
-    baseState: initialResetState,
-    baseQueue: null,
-    queue: {
-      pending: null,
-      lanes: 0,
-      dispatch: null,
-      lastRenderedReducer: basicStateReducer,
-      lastRenderedState: initialResetState
-    },
-    next: null
-  };
-  formFiber.memoizedState = existingStateHook;
-  formFiber = formFiber.alternate;
-  null !== formFiber && (formFiber.memoizedState = existingStateHook);
-  return existingStateHook;
-}
-function requestFormReset$1(formFiber) {
-  var stateHook = ensureFormComponentIsStateful(formFiber);
-  null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);
-  dispatchSetStateInternal(
-    formFiber,
-    stateHook.next.queue,
-    {},
-    requestUpdateLane()
-  );
-}
-function useHostTransitionStatus() {
-  return readContext(HostTransitionContext);
-}
-function updateId() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function updateRefresh() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function refreshCache(fiber) {
-  for (var provider = fiber.return; null !== provider; ) {
-    switch (provider.tag) {
-      case 24:
-      case 3:
-        var lane = requestUpdateLane();
-        fiber = createUpdate(lane);
-        var root$69 = enqueueUpdate(provider, fiber, lane);
-        null !== root$69 &&
-          (scheduleUpdateOnFiber(root$69, provider, lane),
-          entangleTransitions(root$69, provider, lane));
-        provider = { cache: createCache() };
-        fiber.payload = provider;
-        return;
-    }
-    provider = provider.return;
-  }
-}
-function dispatchReducerAction(fiber, queue, action) {
-  var lane = requestUpdateLane();
-  action = {
-    lane: lane,
-    revertLane: 0,
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  isRenderPhaseUpdate(fiber)
-    ? enqueueRenderPhaseUpdate(queue, action)
-    : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),
-      null !== action &&
-        (scheduleUpdateOnFiber(action, fiber, lane),
-        entangleTransitionUpdate(action, queue, lane)));
-}
-function dispatchSetState(fiber, queue, action) {
-  var lane = requestUpdateLane();
-  dispatchSetStateInternal(fiber, queue, action, lane);
-}
-function dispatchSetStateInternal(fiber, queue, action, lane) {
-  var update = {
-    lane: lane,
-    revertLane: 0,
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);
-  else {
-    var alternate = fiber.alternate;
-    if (
-      0 === fiber.lanes &&
-      (null === alternate || 0 === alternate.lanes) &&
-      ((alternate = queue.lastRenderedReducer), null !== alternate)
-    )
-      try {
-        var currentState = queue.lastRenderedState,
-          eagerState = alternate(currentState, action);
-        update.hasEagerState = !0;
-        update.eagerState = eagerState;
-        if (objectIs(eagerState, currentState))
-          return (
-            enqueueUpdate$1(fiber, queue, update, 0),
-            null === workInProgressRoot && finishQueueingConcurrentUpdates(),
-            !1
-          );
-      } catch (error) {
-      } finally {
-      }
-    action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);
-    if (null !== action)
-      return (
-        scheduleUpdateOnFiber(action, fiber, lane),
-        entangleTransitionUpdate(action, queue, lane),
-        !0
-      );
-  }
-  return !1;
-}
-function dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {
-  action = {
-    lane: 2,
-    revertLane: requestTransitionLane(),
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  if (isRenderPhaseUpdate(fiber)) {
-    if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));
-  } else
-    (throwIfDuringRender = enqueueConcurrentHookUpdate(
-      fiber,
-      queue,
-      action,
-      2
-    )),
-      null !== throwIfDuringRender &&
-        scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);
-}
-function isRenderPhaseUpdate(fiber) {
-  var alternate = fiber.alternate;
-  return (
-    fiber === currentlyRenderingFiber ||
-    (null !== alternate && alternate === currentlyRenderingFiber)
-  );
-}
-function enqueueRenderPhaseUpdate(queue, update) {
-  didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =
-    !0;
-  var pending = queue.pending;
-  null === pending
-    ? (update.next = update)
-    : ((update.next = pending.next), (pending.next = update));
-  queue.pending = update;
-}
-function entangleTransitionUpdate(root, queue, lane) {
-  if (0 !== (lane & 4194048)) {
-    var queueLanes = queue.lanes;
-    queueLanes &= root.pendingLanes;
-    lane |= queueLanes;
-    queue.lanes = lane;
-    markRootEntangled(root, lane);
-  }
-}
-var ContextOnlyDispatcher = {
-  readContext: readContext,
-  use: use,
-  useCallback: throwInvalidHookError,
-  useContext: throwInvalidHookError,
-  useEffect: throwInvalidHookError,
-  useImperativeHandle: throwInvalidHookError,
-  useLayoutEffect: throwInvalidHookError,
-  useInsertionEffect: throwInvalidHookError,
-  useMemo: throwInvalidHookError,
-  useReducer: throwInvalidHookError,
-  useRef: throwInvalidHookError,
-  useState: throwInvalidHookError,
-  useDebugValue: throwInvalidHookError,
-  useDeferredValue: throwInvalidHookError,
-  useTransition: throwInvalidHookError,
-  useSyncExternalStore: throwInvalidHookError,
-  useId: throwInvalidHookError,
-  useHostTransitionStatus: throwInvalidHookError,
-  useFormState: throwInvalidHookError,
-  useActionState: throwInvalidHookError,
-  useOptimistic: throwInvalidHookError,
-  useMemoCache: throwInvalidHookError,
-  useCacheRefresh: throwInvalidHookError
-};
-ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;
-var HooksDispatcherOnMount = {
-    readContext: readContext,
-    use: use,
-    useCallback: function (callback, deps) {
-      mountWorkInProgressHook().memoizedState = [
-        callback,
-        void 0 === deps ? null : deps
-      ];
-      return callback;
-    },
-    useContext: readContext,
-    useEffect: mountEffect,
-    useImperativeHandle: function (ref, create, deps) {
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      mountEffectImpl(
-        4194308,
-        4,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    },
-    useLayoutEffect: function (create, deps) {
-      return mountEffectImpl(4194308, 4, create, deps);
-    },
-    useInsertionEffect: function (create, deps) {
-      mountEffectImpl(4, 2, create, deps);
-    },
-    useMemo: function (nextCreate, deps) {
-      var hook = mountWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var nextValue = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [nextValue, deps];
-      return nextValue;
-    },
-    useReducer: function (reducer, initialArg, init) {
-      var hook = mountWorkInProgressHook();
-      if (void 0 !== init) {
-        var initialState = init(initialArg);
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            init(initialArg);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      } else initialState = initialArg;
-      hook.memoizedState = hook.baseState = initialState;
-      reducer = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: reducer,
-        lastRenderedState: initialState
-      };
-      hook.queue = reducer;
-      reducer = reducer.dispatch = dispatchReducerAction.bind(
-        null,
-        currentlyRenderingFiber,
-        reducer
-      );
-      return [hook.memoizedState, reducer];
-    },
-    useRef: function (initialValue) {
-      var hook = mountWorkInProgressHook();
-      initialValue = { current: initialValue };
-      return (hook.memoizedState = initialValue);
-    },
-    useState: function (initialState) {
-      initialState = mountStateImpl(initialState);
-      var queue = initialState.queue,
-        dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);
-      queue.dispatch = dispatch;
-      return [initialState.memoizedState, dispatch];
-    },
-    useDebugValue: mountDebugValue,
-    useDeferredValue: function (value, initialValue) {
-      var hook = mountWorkInProgressHook();
-      return mountDeferredValueImpl(hook, value, initialValue);
-    },
-    useTransition: function () {
-      var stateHook = mountStateImpl(!1);
-      stateHook = startTransition.bind(
-        null,
-        currentlyRenderingFiber,
-        stateHook.queue,
-        !0,
-        !1
-      );
-      mountWorkInProgressHook().memoizedState = stateHook;
-      return [!1, stateHook];
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      var fiber = currentlyRenderingFiber,
-        hook = mountWorkInProgressHook();
-      if (isHydrating) {
-        if (void 0 === getServerSnapshot)
-          throw Error(formatProdErrorMessage(407));
-        getServerSnapshot = getServerSnapshot();
-      } else {
-        getServerSnapshot = getSnapshot();
-        if (null === workInProgressRoot)
-          throw Error(formatProdErrorMessage(349));
-        0 !== (workInProgressRootRenderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-      }
-      hook.memoizedState = getServerSnapshot;
-      var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };
-      hook.queue = inst;
-      mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [
-        subscribe
-      ]);
-      fiber.flags |= 2048;
-      pushSimpleEffect(
-        9,
-        { destroy: void 0 },
-        updateStoreInstance.bind(
-          null,
-          fiber,
-          inst,
-          getServerSnapshot,
-          getSnapshot
-        ),
-        null
-      );
-      return getServerSnapshot;
-    },
-    useId: function () {
-      var hook = mountWorkInProgressHook(),
-        identifierPrefix = workInProgressRoot.identifierPrefix;
-      if (isHydrating) {
-        var JSCompiler_inline_result = treeContextOverflow;
-        var idWithLeadingBit = treeContextId;
-        JSCompiler_inline_result =
-          (
-            idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))
-          ).toString(32) + JSCompiler_inline_result;
-        identifierPrefix =
-          "_" + identifierPrefix + "R_" + JSCompiler_inline_result;
-        JSCompiler_inline_result = localIdCounter++;
-        0 < JSCompiler_inline_result &&
-          (identifierPrefix += "H" + JSCompiler_inline_result.toString(32));
-        identifierPrefix += "_";
-      } else
-        (JSCompiler_inline_result = globalClientIdCounter++),
-          (identifierPrefix =
-            "_" +
-            identifierPrefix +
-            "r_" +
-            JSCompiler_inline_result.toString(32) +
-            "_");
-      return (hook.memoizedState = identifierPrefix);
-    },
-    useHostTransitionStatus: useHostTransitionStatus,
-    useFormState: mountActionState,
-    useActionState: mountActionState,
-    useOptimistic: function (passthrough) {
-      var hook = mountWorkInProgressHook();
-      hook.memoizedState = hook.baseState = passthrough;
-      var queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: null,
-        lastRenderedState: null
-      };
-      hook.queue = queue;
-      hook = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !0,
-        queue
-      );
-      queue.dispatch = hook;
-      return [passthrough, hook];
-    },
-    useMemoCache: useMemoCache,
-    useCacheRefresh: function () {
-      return (mountWorkInProgressHook().memoizedState = refreshCache.bind(
-        null,
-        currentlyRenderingFiber
-      ));
-    },
-    useEffectEvent: function (callback) {
-      var hook = mountWorkInProgressHook(),
-        ref = { impl: callback };
-      hook.memoizedState = ref;
-      return function () {
-        if (0 !== (executionContext & 2))
-          throw Error(formatProdErrorMessage(440));
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-  },
-  HooksDispatcherOnUpdate = {
-    readContext: readContext,
-    use: use,
-    useCallback: updateCallback,
-    useContext: readContext,
-    useEffect: updateEffect,
-    useImperativeHandle: updateImperativeHandle,
-    useInsertionEffect: updateInsertionEffect,
-    useLayoutEffect: updateLayoutEffect,
-    useMemo: updateMemo,
-    useReducer: updateReducer,
-    useRef: updateRef,
-    useState: function () {
-      return updateReducer(basicStateReducer);
-    },
-    useDebugValue: mountDebugValue,
-    useDeferredValue: function (value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return updateDeferredValueImpl(
-        hook,
-        currentHook.memoizedState,
-        value,
-        initialValue
-      );
-    },
-    useTransition: function () {
-      var booleanOrThenable = updateReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    },
-    useSyncExternalStore: updateSyncExternalStore,
-    useId: updateId,
-    useHostTransitionStatus: useHostTransitionStatus,
-    useFormState: updateActionState,
-    useActionState: updateActionState,
-    useOptimistic: function (passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    },
-    useMemoCache: useMemoCache,
-    useCacheRefresh: updateRefresh
-  };
-HooksDispatcherOnUpdate.useEffectEvent = updateEvent;
-var HooksDispatcherOnRerender = {
-  readContext: readContext,
-  use: use,
-  useCallback: updateCallback,
-  useContext: readContext,
-  useEffect: updateEffect,
-  useImperativeHandle: updateImperativeHandle,
-  useInsertionEffect: updateInsertionEffect,
-  useLayoutEffect: updateLayoutEffect,
-  useMemo: updateMemo,
-  useReducer: rerenderReducer,
-  useRef: updateRef,
-  useState: function () {
-    return rerenderReducer(basicStateReducer);
-  },
-  useDebugValue: mountDebugValue,
-  useDeferredValue: function (value, initialValue) {
-    var hook = updateWorkInProgressHook();
-    return null === currentHook
-      ? mountDeferredValueImpl(hook, value, initialValue)
-      : updateDeferredValueImpl(
-          hook,
-          currentHook.memoizedState,
-          value,
-          initialValue
-        );
-  },
-  useTransition: function () {
-    var booleanOrThenable = rerenderReducer(basicStateReducer)[0],
-      start = updateWorkInProgressHook().memoizedState;
-    return [
-      "boolean" === typeof booleanOrThenable
-        ? booleanOrThenable
-        : useThenable(booleanOrThenable),
-      start
-    ];
-  },
-  useSyncExternalStore: updateSyncExternalStore,
-  useId: updateId,
-  useHostTransitionStatus: useHostTransitionStatus,
-  useFormState: rerenderActionState,
-  useActionState: rerenderActionState,
-  useOptimistic: function (passthrough, reducer) {
-    var hook = updateWorkInProgressHook();
-    if (null !== currentHook)
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    hook.baseState = passthrough;
-    return [passthrough, hook.queue.dispatch];
-  },
-  useMemoCache: useMemoCache,
-  useCacheRefresh: updateRefresh
-};
-HooksDispatcherOnRerender.useEffectEvent = updateEvent;
-function applyDerivedStateFromProps(
-  workInProgress,
-  ctor,
-  getDerivedStateFromProps,
-  nextProps
-) {
-  ctor = workInProgress.memoizedState;
-  getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);
-  getDerivedStateFromProps =
-    null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps
-      ? ctor
-      : assign({}, ctor, getDerivedStateFromProps);
-  workInProgress.memoizedState = getDerivedStateFromProps;
-  0 === workInProgress.lanes &&
-    (workInProgress.updateQueue.baseState = getDerivedStateFromProps);
-}
-var classComponentUpdater = {
-  enqueueSetState: function (inst, payload, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.payload = payload;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    payload = enqueueUpdate(inst, update, lane);
-    null !== payload &&
-      (scheduleUpdateOnFiber(payload, inst, lane),
-      entangleTransitions(payload, inst, lane));
-  },
-  enqueueReplaceState: function (inst, payload, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.tag = 1;
-    update.payload = payload;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    payload = enqueueUpdate(inst, update, lane);
-    null !== payload &&
-      (scheduleUpdateOnFiber(payload, inst, lane),
-      entangleTransitions(payload, inst, lane));
-  },
-  enqueueForceUpdate: function (inst, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.tag = 2;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    callback = enqueueUpdate(inst, update, lane);
-    null !== callback &&
-      (scheduleUpdateOnFiber(callback, inst, lane),
-      entangleTransitions(callback, inst, lane));
-  }
-};
-function checkShouldComponentUpdate(
-  workInProgress,
-  ctor,
-  oldProps,
-  newProps,
-  oldState,
-  newState,
-  nextContext
-) {
-  workInProgress = workInProgress.stateNode;
-  return "function" === typeof workInProgress.shouldComponentUpdate
-    ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)
-    : ctor.prototype && ctor.prototype.isPureReactComponent
-      ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)
-      : !0;
-}
-function callComponentWillReceiveProps(
-  workInProgress,
-  instance,
-  newProps,
-  nextContext
-) {
-  workInProgress = instance.state;
-  "function" === typeof instance.componentWillReceiveProps &&
-    instance.componentWillReceiveProps(newProps, nextContext);
-  "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);
-  instance.state !== workInProgress &&
-    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);
-}
-function resolveClassComponentProps(Component, baseProps) {
-  var newProps = baseProps;
-  if ("ref" in baseProps) {
-    newProps = {};
-    for (var propName in baseProps)
-      "ref" !== propName && (newProps[propName] = baseProps[propName]);
-  }
-  if ((Component = Component.defaultProps)) {
-    newProps === baseProps && (newProps = assign({}, newProps));
-    for (var propName$73 in Component)
-      void 0 === newProps[propName$73] &&
-        (newProps[propName$73] = Component[propName$73]);
-  }
-  return newProps;
-}
-function defaultOnUncaughtError(error) {
-  reportGlobalError(error);
-}
-function defaultOnCaughtError(error) {
-  console.error(error);
-}
-function defaultOnRecoverableError(error) {
-  reportGlobalError(error);
-}
-function logUncaughtError(root, errorInfo) {
-  try {
-    var onUncaughtError = root.onUncaughtError;
-    onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });
-  } catch (e$74) {
-    setTimeout(function () {
-      throw e$74;
-    });
-  }
-}
-function logCaughtError(root, boundary, errorInfo) {
-  try {
-    var onCaughtError = root.onCaughtError;
-    onCaughtError(errorInfo.value, {
-      componentStack: errorInfo.stack,
-      errorBoundary: 1 === boundary.tag ? boundary.stateNode : null
-    });
-  } catch (e$75) {
-    setTimeout(function () {
-      throw e$75;
-    });
-  }
-}
-function createRootErrorUpdate(root, errorInfo, lane) {
-  lane = createUpdate(lane);
-  lane.tag = 3;
-  lane.payload = { element: null };
-  lane.callback = function () {
-    logUncaughtError(root, errorInfo);
-  };
-  return lane;
-}
-function createClassErrorUpdate(lane) {
-  lane = createUpdate(lane);
-  lane.tag = 3;
-  return lane;
-}
-function initializeClassErrorUpdate(update, root, fiber, errorInfo) {
-  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;
-  if ("function" === typeof getDerivedStateFromError) {
-    var error = errorInfo.value;
-    update.payload = function () {
-      return getDerivedStateFromError(error);
-    };
-    update.callback = function () {
-      logCaughtError(root, fiber, errorInfo);
-    };
-  }
-  var inst = fiber.stateNode;
-  null !== inst &&
-    "function" === typeof inst.componentDidCatch &&
-    (update.callback = function () {
-      logCaughtError(root, fiber, errorInfo);
-      "function" !== typeof getDerivedStateFromError &&
-        (null === legacyErrorBoundariesThatAlreadyFailed
-          ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))
-          : legacyErrorBoundariesThatAlreadyFailed.add(this));
-      var stack = errorInfo.stack;
-      this.componentDidCatch(errorInfo.value, {
-        componentStack: null !== stack ? stack : ""
-      });
-    });
-}
-function throwException(
-  root,
-  returnFiber,
-  sourceFiber,
-  value,
-  rootRenderLanes
-) {
-  sourceFiber.flags |= 32768;
-  if (
-    null !== value &&
-    "object" === typeof value &&
-    "function" === typeof value.then
-  ) {
-    returnFiber = sourceFiber.alternate;
-    null !== returnFiber &&
-      propagateParentContextChanges(
-        returnFiber,
-        sourceFiber,
-        rootRenderLanes,
-        !0
-      );
-    sourceFiber = suspenseHandlerStackCursor.current;
-    if (null !== sourceFiber) {
-      switch (sourceFiber.tag) {
-        case 31:
-        case 13:
-          return (
-            null === shellBoundary
-              ? renderDidSuspendDelayIfPossible()
-              : null === sourceFiber.alternate &&
-                0 === workInProgressRootExitStatus &&
-                (workInProgressRootExitStatus = 3),
-            (sourceFiber.flags &= -257),
-            (sourceFiber.flags |= 65536),
-            (sourceFiber.lanes = rootRenderLanes),
-            value === noopSuspenseyCommitThenable
-              ? (sourceFiber.flags |= 16384)
-              : ((returnFiber = sourceFiber.updateQueue),
-                null === returnFiber
-                  ? (sourceFiber.updateQueue = new Set([value]))
-                  : returnFiber.add(value),
-                attachPingListener(root, value, rootRenderLanes)),
-            !1
-          );
-        case 22:
-          return (
-            (sourceFiber.flags |= 65536),
-            value === noopSuspenseyCommitThenable
-              ? (sourceFiber.flags |= 16384)
-              : ((returnFiber = sourceFiber.updateQueue),
-                null === returnFiber
-                  ? ((returnFiber = {
-                      transitions: null,
-                      markerInstances: null,
-                      retryQueue: new Set([value])
-                    }),
-                    (sourceFiber.updateQueue = returnFiber))
-                  : ((sourceFiber = returnFiber.retryQueue),
-                    null === sourceFiber
-                      ? (returnFiber.retryQueue = new Set([value]))
-                      : sourceFiber.add(value)),
-                attachPingListener(root, value, rootRenderLanes)),
-            !1
-          );
-      }
-      throw Error(formatProdErrorMessage(435, sourceFiber.tag));
-    }
-    attachPingListener(root, value, rootRenderLanes);
-    renderDidSuspendDelayIfPossible();
-    return !1;
-  }
-  if (isHydrating)
-    return (
-      (returnFiber = suspenseHandlerStackCursor.current),
-      null !== returnFiber
-        ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),
-          (returnFiber.flags |= 65536),
-          (returnFiber.lanes = rootRenderLanes),
-          value !== HydrationMismatchException &&
-            ((root = Error(formatProdErrorMessage(422), { cause: value })),
-            queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))
-        : (value !== HydrationMismatchException &&
-            ((returnFiber = Error(formatProdErrorMessage(423), {
-              cause: value
-            })),
-            queueHydrationError(
-              createCapturedValueAtFiber(returnFiber, sourceFiber)
-            )),
-          (root = root.current.alternate),
-          (root.flags |= 65536),
-          (rootRenderLanes &= -rootRenderLanes),
-          (root.lanes |= rootRenderLanes),
-          (value = createCapturedValueAtFiber(value, sourceFiber)),
-          (rootRenderLanes = createRootErrorUpdate(
-            root.stateNode,
-            value,
-            rootRenderLanes
-          )),
-          enqueueCapturedUpdate(root, rootRenderLanes),
-          4 !== workInProgressRootExitStatus &&
-            (workInProgressRootExitStatus = 2)),
-      !1
-    );
-  var wrapperError = Error(formatProdErrorMessage(520), { cause: value });
-  wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);
-  null === workInProgressRootConcurrentErrors
-    ? (workInProgressRootConcurrentErrors = [wrapperError])
-    : workInProgressRootConcurrentErrors.push(wrapperError);
-  4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);
-  if (null === returnFiber) return !0;
-  value = createCapturedValueAtFiber(value, sourceFiber);
-  sourceFiber = returnFiber;
-  do {
-    switch (sourceFiber.tag) {
-      case 3:
-        return (
-          (sourceFiber.flags |= 65536),
-          (root = rootRenderLanes & -rootRenderLanes),
-          (sourceFiber.lanes |= root),
-          (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),
-          enqueueCapturedUpdate(sourceFiber, root),
-          !1
-        );
-      case 1:
-        if (
-          ((returnFiber = sourceFiber.type),
-          (wrapperError = sourceFiber.stateNode),
-          0 === (sourceFiber.flags & 128) &&
-            ("function" === typeof returnFiber.getDerivedStateFromError ||
-              (null !== wrapperError &&
-                "function" === typeof wrapperError.componentDidCatch &&
-                (null === legacyErrorBoundariesThatAlreadyFailed ||
-                  !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))
-        )
-          return (
-            (sourceFiber.flags |= 65536),
-            (rootRenderLanes &= -rootRenderLanes),
-            (sourceFiber.lanes |= rootRenderLanes),
-            (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),
-            initializeClassErrorUpdate(
-              rootRenderLanes,
-              root,
-              sourceFiber,
-              value
-            ),
-            enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
-            !1
-          );
-    }
-    sourceFiber = sourceFiber.return;
-  } while (null !== sourceFiber);
-  return !1;
-}
-var SelectiveHydrationException = Error(formatProdErrorMessage(461)),
-  didReceiveUpdate = !1;
-function reconcileChildren(current, workInProgress, nextChildren, renderLanes) {
-  workInProgress.child =
-    null === current
-      ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)
-      : reconcileChildFibers(
-          workInProgress,
-          current.child,
-          nextChildren,
-          renderLanes
-        );
-}
-function updateForwardRef(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  Component = Component.render;
-  var ref = workInProgress.ref;
-  if ("ref" in nextProps) {
-    var propsWithoutRef = {};
-    for (var key in nextProps)
-      "ref" !== key && (propsWithoutRef[key] = nextProps[key]);
-  } else propsWithoutRef = nextProps;
-  prepareToReadContext(workInProgress);
-  nextProps = renderWithHooks(
-    current,
-    workInProgress,
-    Component,
-    propsWithoutRef,
-    ref,
-    renderLanes
-  );
-  key = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && key && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  return workInProgress.child;
-}
-function updateMemoComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  if (null === current) {
-    var type = Component.type;
-    if (
-      "function" === typeof type &&
-      !shouldConstruct(type) &&
-      void 0 === type.defaultProps &&
-      null === Component.compare
-    )
-      return (
-        (workInProgress.tag = 15),
-        (workInProgress.type = type),
-        updateSimpleMemoComponent(
-          current,
-          workInProgress,
-          type,
-          nextProps,
-          renderLanes
-        )
-      );
-    current = createFiberFromTypeAndProps(
-      Component.type,
-      null,
-      nextProps,
-      workInProgress,
-      workInProgress.mode,
-      renderLanes
-    );
-    current.ref = workInProgress.ref;
-    current.return = workInProgress;
-    return (workInProgress.child = current);
-  }
-  type = current.child;
-  if (!checkScheduledUpdateOrContext(current, renderLanes)) {
-    var prevProps = type.memoizedProps;
-    Component = Component.compare;
-    Component = null !== Component ? Component : shallowEqual;
-    if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)
-      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-  }
-  workInProgress.flags |= 1;
-  current = createWorkInProgress(type, nextProps);
-  current.ref = workInProgress.ref;
-  current.return = workInProgress;
-  return (workInProgress.child = current);
-}
-function updateSimpleMemoComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  if (null !== current) {
-    var prevProps = current.memoizedProps;
-    if (
-      shallowEqual(prevProps, nextProps) &&
-      current.ref === workInProgress.ref
-    )
-      if (
-        ((didReceiveUpdate = !1),
-        (workInProgress.pendingProps = nextProps = prevProps),
-        checkScheduledUpdateOrContext(current, renderLanes))
-      )
-        0 !== (current.flags & 131072) && (didReceiveUpdate = !0);
-      else
-        return (
-          (workInProgress.lanes = current.lanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-  }
-  return updateFunctionComponent(
-    current,
-    workInProgress,
-    Component,
-    nextProps,
-    renderLanes
-  );
-}
-function updateOffscreenComponent(
-  current,
-  workInProgress,
-  renderLanes,
-  nextProps
-) {
-  var nextChildren = nextProps.children,
-    prevState = null !== current ? current.memoizedState : null;
-  null === current &&
-    null === workInProgress.stateNode &&
-    (workInProgress.stateNode = {
-      _visibility: 1,
-      _pendingMarkers: null,
-      _retryCache: null,
-      _transitions: null
-    });
-  if ("hidden" === nextProps.mode) {
-    if (0 !== (workInProgress.flags & 128)) {
-      prevState =
-        null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;
-      if (null !== current) {
-        nextProps = workInProgress.child = current.child;
-        for (nextChildren = 0; null !== nextProps; )
-          (nextChildren =
-            nextChildren | nextProps.lanes | nextProps.childLanes),
-            (nextProps = nextProps.sibling);
-        nextProps = nextChildren & ~prevState;
-      } else (nextProps = 0), (workInProgress.child = null);
-      return deferHiddenOffscreenComponent(
-        current,
-        workInProgress,
-        prevState,
-        renderLanes,
-        nextProps
-      );
-    }
-    if (0 !== (renderLanes & 536870912))
-      (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),
-        null !== current &&
-          pushTransition(
-            workInProgress,
-            null !== prevState ? prevState.cachePool : null
-          ),
-        null !== prevState
-          ? pushHiddenContext(workInProgress, prevState)
-          : reuseHiddenContextOnStack(),
-        pushOffscreenSuspenseHandler(workInProgress);
-    else
-      return (
-        (nextProps = workInProgress.lanes = 536870912),
-        deferHiddenOffscreenComponent(
-          current,
-          workInProgress,
-          null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,
-          renderLanes,
-          nextProps
-        )
-      );
-  } else
-    null !== prevState
-      ? (pushTransition(workInProgress, prevState.cachePool),
-        pushHiddenContext(workInProgress, prevState),
-        reuseSuspenseHandlerOnStack(workInProgress),
-        (workInProgress.memoizedState = null))
-      : (null !== current && pushTransition(workInProgress, null),
-        reuseHiddenContextOnStack(),
-        reuseSuspenseHandlerOnStack(workInProgress));
-  reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-  return workInProgress.child;
-}
-function bailoutOffscreenComponent(current, workInProgress) {
-  (null !== current && 22 === current.tag) ||
-    null !== workInProgress.stateNode ||
-    (workInProgress.stateNode = {
-      _visibility: 1,
-      _pendingMarkers: null,
-      _retryCache: null,
-      _transitions: null
-    });
-  return workInProgress.sibling;
-}
-function deferHiddenOffscreenComponent(
-  current,
-  workInProgress,
-  nextBaseLanes,
-  renderLanes,
-  remainingChildLanes
-) {
-  var JSCompiler_inline_result = peekCacheFromPool();
-  JSCompiler_inline_result =
-    null === JSCompiler_inline_result
-      ? null
-      : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };
-  workInProgress.memoizedState = {
-    baseLanes: nextBaseLanes,
-    cachePool: JSCompiler_inline_result
-  };
-  null !== current && pushTransition(workInProgress, null);
-  reuseHiddenContextOnStack();
-  pushOffscreenSuspenseHandler(workInProgress);
-  null !== current &&
-    propagateParentContextChanges(current, workInProgress, renderLanes, !0);
-  workInProgress.childLanes = remainingChildLanes;
-  return null;
-}
-function mountActivityChildren(workInProgress, nextProps) {
-  nextProps = mountWorkInProgressOffscreenFiber(
-    { mode: nextProps.mode, children: nextProps.children },
-    workInProgress.mode
-  );
-  nextProps.ref = workInProgress.ref;
-  workInProgress.child = nextProps;
-  nextProps.return = workInProgress;
-  return nextProps;
-}
-function retryActivityComponentWithoutHydrating(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-  current = mountActivityChildren(workInProgress, workInProgress.pendingProps);
-  current.flags |= 2;
-  popSuspenseHandler(workInProgress);
-  workInProgress.memoizedState = null;
-  return current;
-}
-function updateActivityComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    didSuspend = 0 !== (workInProgress.flags & 128);
-  workInProgress.flags &= -129;
-  if (null === current) {
-    if (isHydrating) {
-      if ("hidden" === nextProps.mode)
-        return (
-          (current = mountActivityChildren(workInProgress, nextProps)),
-          (workInProgress.lanes = 536870912),
-          bailoutOffscreenComponent(null, current)
-        );
-      pushDehydratedActivitySuspenseHandler(workInProgress);
-      (current = nextHydratableInstance)
-        ? ((current = canHydrateHydrationBoundary(
-            current,
-            rootOrSingletonContext
-          )),
-          (current = null !== current && "&" === current.data ? current : null),
-          null !== current &&
-            ((workInProgress.memoizedState = {
-              dehydrated: current,
-              treeContext:
-                null !== treeContextProvider
-                  ? { id: treeContextId, overflow: treeContextOverflow }
-                  : null,
-              retryLane: 536870912,
-              hydrationErrors: null
-            }),
-            (renderLanes = createFiberFromDehydratedFragment(current)),
-            (renderLanes.return = workInProgress),
-            (workInProgress.child = renderLanes),
-            (hydrationParentFiber = workInProgress),
-            (nextHydratableInstance = null)))
-        : (current = null);
-      if (null === current) throw throwOnHydrationMismatch(workInProgress);
-      workInProgress.lanes = 536870912;
-      return null;
-    }
-    return mountActivityChildren(workInProgress, nextProps);
-  }
-  var prevState = current.memoizedState;
-  if (null !== prevState) {
-    var dehydrated = prevState.dehydrated;
-    pushDehydratedActivitySuspenseHandler(workInProgress);
-    if (didSuspend)
-      if (workInProgress.flags & 256)
-        (workInProgress.flags &= -257),
-          (workInProgress = retryActivityComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          ));
-      else if (null !== workInProgress.memoizedState)
-        (workInProgress.child = current.child),
-          (workInProgress.flags |= 128),
-          (workInProgress = null);
-      else throw Error(formatProdErrorMessage(558));
-    else if (
-      (didReceiveUpdate ||
-        propagateParentContextChanges(current, workInProgress, renderLanes, !1),
-      (didSuspend = 0 !== (renderLanes & current.childLanes)),
-      didReceiveUpdate || didSuspend)
-    ) {
-      nextProps = workInProgressRoot;
-      if (
-        null !== nextProps &&
-        ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),
-        0 !== dehydrated && dehydrated !== prevState.retryLane)
-      )
-        throw (
-          ((prevState.retryLane = dehydrated),
-          enqueueConcurrentRenderForLane(current, dehydrated),
-          scheduleUpdateOnFiber(nextProps, current, dehydrated),
-          SelectiveHydrationException)
-        );
-      renderDidSuspendDelayIfPossible();
-      workInProgress = retryActivityComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else
-      (current = prevState.treeContext),
-        (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),
-        (hydrationParentFiber = workInProgress),
-        (isHydrating = !0),
-        (hydrationErrors = null),
-        (rootOrSingletonContext = !1),
-        null !== current &&
-          restoreSuspendedTreeContext(workInProgress, current),
-        (workInProgress = mountActivityChildren(workInProgress, nextProps)),
-        (workInProgress.flags |= 4096);
-    return workInProgress;
-  }
-  current = createWorkInProgress(current.child, {
-    mode: nextProps.mode,
-    children: nextProps.children
-  });
-  current.ref = workInProgress.ref;
-  workInProgress.child = current;
-  current.return = workInProgress;
-  return current;
-}
-function markRef(current, workInProgress) {
-  var ref = workInProgress.ref;
-  if (null === ref)
-    null !== current &&
-      null !== current.ref &&
-      (workInProgress.flags |= 4194816);
-  else {
-    if ("function" !== typeof ref && "object" !== typeof ref)
-      throw Error(formatProdErrorMessage(284));
-    if (null === current || current.ref !== ref)
-      workInProgress.flags |= 4194816;
-  }
-}
-function updateFunctionComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  Component = renderWithHooks(
-    current,
-    workInProgress,
-    Component,
-    nextProps,
-    void 0,
-    renderLanes
-  );
-  nextProps = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && nextProps && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, Component, renderLanes);
-  return workInProgress.child;
-}
-function replayFunctionComponent(
-  current,
-  workInProgress,
-  nextProps,
-  Component,
-  secondArg,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  workInProgress.updateQueue = null;
-  nextProps = renderWithHooksAgain(
-    workInProgress,
-    Component,
-    nextProps,
-    secondArg
-  );
-  finishRenderingHooks(current);
-  Component = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && Component && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  return workInProgress.child;
-}
-function updateClassComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  if (null === workInProgress.stateNode) {
-    var context = emptyContextObject,
-      contextType = Component.contextType;
-    "object" === typeof contextType &&
-      null !== contextType &&
-      (context = readContext(contextType));
-    context = new Component(nextProps, context);
-    workInProgress.memoizedState =
-      null !== context.state && void 0 !== context.state ? context.state : null;
-    context.updater = classComponentUpdater;
-    workInProgress.stateNode = context;
-    context._reactInternals = workInProgress;
-    context = workInProgress.stateNode;
-    context.props = nextProps;
-    context.state = workInProgress.memoizedState;
-    context.refs = {};
-    initializeUpdateQueue(workInProgress);
-    contextType = Component.contextType;
-    context.context =
-      "object" === typeof contextType && null !== contextType
-        ? readContext(contextType)
-        : emptyContextObject;
-    context.state = workInProgress.memoizedState;
-    contextType = Component.getDerivedStateFromProps;
-    "function" === typeof contextType &&
-      (applyDerivedStateFromProps(
-        workInProgress,
-        Component,
-        contextType,
-        nextProps
-      ),
-      (context.state = workInProgress.memoizedState));
-    "function" === typeof Component.getDerivedStateFromProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate ||
-      ("function" !== typeof context.UNSAFE_componentWillMount &&
-        "function" !== typeof context.componentWillMount) ||
-      ((contextType = context.state),
-      "function" === typeof context.componentWillMount &&
-        context.componentWillMount(),
-      "function" === typeof context.UNSAFE_componentWillMount &&
-        context.UNSAFE_componentWillMount(),
-      contextType !== context.state &&
-        classComponentUpdater.enqueueReplaceState(context, context.state, null),
-      processUpdateQueue(workInProgress, nextProps, context, renderLanes),
-      suspendIfUpdateReadFromEntangledAsyncAction(),
-      (context.state = workInProgress.memoizedState));
-    "function" === typeof context.componentDidMount &&
-      (workInProgress.flags |= 4194308);
-    nextProps = !0;
-  } else if (null === current) {
-    context = workInProgress.stateNode;
-    var unresolvedOldProps = workInProgress.memoizedProps,
-      oldProps = resolveClassComponentProps(Component, unresolvedOldProps);
-    context.props = oldProps;
-    var oldContext = context.context,
-      contextType$jscomp$0 = Component.contextType;
-    contextType = emptyContextObject;
-    "object" === typeof contextType$jscomp$0 &&
-      null !== contextType$jscomp$0 &&
-      (contextType = readContext(contextType$jscomp$0));
-    var getDerivedStateFromProps = Component.getDerivedStateFromProps;
-    contextType$jscomp$0 =
-      "function" === typeof getDerivedStateFromProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate;
-    unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;
-    contextType$jscomp$0 ||
-      ("function" !== typeof context.UNSAFE_componentWillReceiveProps &&
-        "function" !== typeof context.componentWillReceiveProps) ||
-      ((unresolvedOldProps || oldContext !== contextType) &&
-        callComponentWillReceiveProps(
-          workInProgress,
-          context,
-          nextProps,
-          contextType
-        ));
-    hasForceUpdate = !1;
-    var oldState = workInProgress.memoizedState;
-    context.state = oldState;
-    processUpdateQueue(workInProgress, nextProps, context, renderLanes);
-    suspendIfUpdateReadFromEntangledAsyncAction();
-    oldContext = workInProgress.memoizedState;
-    unresolvedOldProps || oldState !== oldContext || hasForceUpdate
-      ? ("function" === typeof getDerivedStateFromProps &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            getDerivedStateFromProps,
-            nextProps
-          ),
-          (oldContext = workInProgress.memoizedState)),
-        (oldProps =
-          hasForceUpdate ||
-          checkShouldComponentUpdate(
-            workInProgress,
-            Component,
-            oldProps,
-            nextProps,
-            oldState,
-            oldContext,
-            contextType
-          ))
-          ? (contextType$jscomp$0 ||
-              ("function" !== typeof context.UNSAFE_componentWillMount &&
-                "function" !== typeof context.componentWillMount) ||
-              ("function" === typeof context.componentWillMount &&
-                context.componentWillMount(),
-              "function" === typeof context.UNSAFE_componentWillMount &&
-                context.UNSAFE_componentWillMount()),
-            "function" === typeof context.componentDidMount &&
-              (workInProgress.flags |= 4194308))
-          : ("function" === typeof context.componentDidMount &&
-              (workInProgress.flags |= 4194308),
-            (workInProgress.memoizedProps = nextProps),
-            (workInProgress.memoizedState = oldContext)),
-        (context.props = nextProps),
-        (context.state = oldContext),
-        (context.context = contextType),
-        (nextProps = oldProps))
-      : ("function" === typeof context.componentDidMount &&
-          (workInProgress.flags |= 4194308),
-        (nextProps = !1));
-  } else {
-    context = workInProgress.stateNode;
-    cloneUpdateQueue(current, workInProgress);
-    contextType = workInProgress.memoizedProps;
-    contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);
-    context.props = contextType$jscomp$0;
-    getDerivedStateFromProps = workInProgress.pendingProps;
-    oldState = context.context;
-    oldContext = Component.contextType;
-    oldProps = emptyContextObject;
-    "object" === typeof oldContext &&
-      null !== oldContext &&
-      (oldProps = readContext(oldContext));
-    unresolvedOldProps = Component.getDerivedStateFromProps;
-    (oldContext =
-      "function" === typeof unresolvedOldProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate) ||
-      ("function" !== typeof context.UNSAFE_componentWillReceiveProps &&
-        "function" !== typeof context.componentWillReceiveProps) ||
-      ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&
-        callComponentWillReceiveProps(
-          workInProgress,
-          context,
-          nextProps,
-          oldProps
-        ));
-    hasForceUpdate = !1;
-    oldState = workInProgress.memoizedState;
-    context.state = oldState;
-    processUpdateQueue(workInProgress, nextProps, context, renderLanes);
-    suspendIfUpdateReadFromEntangledAsyncAction();
-    var newState = workInProgress.memoizedState;
-    contextType !== getDerivedStateFromProps ||
-    oldState !== newState ||
-    hasForceUpdate ||
-    (null !== current &&
-      null !== current.dependencies &&
-      checkIfContextChanged(current.dependencies))
-      ? ("function" === typeof unresolvedOldProps &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            unresolvedOldProps,
-            nextProps
-          ),
-          (newState = workInProgress.memoizedState)),
-        (contextType$jscomp$0 =
-          hasForceUpdate ||
-          checkShouldComponentUpdate(
-            workInProgress,
-            Component,
-            contextType$jscomp$0,
-            nextProps,
-            oldState,
-            newState,
-            oldProps
-          ) ||
-          (null !== current &&
-            null !== current.dependencies &&
-            checkIfContextChanged(current.dependencies)))
-          ? (oldContext ||
-              ("function" !== typeof context.UNSAFE_componentWillUpdate &&
-                "function" !== typeof context.componentWillUpdate) ||
-              ("function" === typeof context.componentWillUpdate &&
-                context.componentWillUpdate(nextProps, newState, oldProps),
-              "function" === typeof context.UNSAFE_componentWillUpdate &&
-                context.UNSAFE_componentWillUpdate(
-                  nextProps,
-                  newState,
-                  oldProps
-                )),
-            "function" === typeof context.componentDidUpdate &&
-              (workInProgress.flags |= 4),
-            "function" === typeof context.getSnapshotBeforeUpdate &&
-              (workInProgress.flags |= 1024))
-          : ("function" !== typeof context.componentDidUpdate ||
-              (contextType === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 4),
-            "function" !== typeof context.getSnapshotBeforeUpdate ||
-              (contextType === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 1024),
-            (workInProgress.memoizedProps = nextProps),
-            (workInProgress.memoizedState = newState)),
-        (context.props = nextProps),
-        (context.state = newState),
-        (context.context = oldProps),
-        (nextProps = contextType$jscomp$0))
-      : ("function" !== typeof context.componentDidUpdate ||
-          (contextType === current.memoizedProps &&
-            oldState === current.memoizedState) ||
-          (workInProgress.flags |= 4),
-        "function" !== typeof context.getSnapshotBeforeUpdate ||
-          (contextType === current.memoizedProps &&
-            oldState === current.memoizedState) ||
-          (workInProgress.flags |= 1024),
-        (nextProps = !1));
-  }
-  context = nextProps;
-  markRef(current, workInProgress);
-  nextProps = 0 !== (workInProgress.flags & 128);
-  context || nextProps
-    ? ((context = workInProgress.stateNode),
-      (Component =
-        nextProps && "function" !== typeof Component.getDerivedStateFromError
-          ? null
-          : context.render()),
-      (workInProgress.flags |= 1),
-      null !== current && nextProps
-        ? ((workInProgress.child = reconcileChildFibers(
-            workInProgress,
-            current.child,
-            null,
-            renderLanes
-          )),
-          (workInProgress.child = reconcileChildFibers(
-            workInProgress,
-            null,
-            Component,
-            renderLanes
-          )))
-        : reconcileChildren(current, workInProgress, Component, renderLanes),
-      (workInProgress.memoizedState = context.state),
-      (current = workInProgress.child))
-    : (current = bailoutOnAlreadyFinishedWork(
-        current,
-        workInProgress,
-        renderLanes
-      ));
-  return current;
-}
-function mountHostRootWithoutHydrating(
-  current,
-  workInProgress,
-  nextChildren,
-  renderLanes
-) {
-  resetHydrationState();
-  workInProgress.flags |= 256;
-  reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-  return workInProgress.child;
-}
-var SUSPENDED_MARKER = {
-  dehydrated: null,
-  treeContext: null,
-  retryLane: 0,
-  hydrationErrors: null
-};
-function mountSuspenseOffscreenState(renderLanes) {
-  return { baseLanes: renderLanes, cachePool: getSuspendedCache() };
-}
-function getRemainingWorkInPrimaryTree(
-  current,
-  primaryTreeDidDefer,
-  renderLanes
-) {
-  current = null !== current ? current.childLanes & ~renderLanes : 0;
-  primaryTreeDidDefer && (current |= workInProgressDeferredLane);
-  return current;
-}
-function updateSuspenseComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    showFallback = !1,
-    didSuspend = 0 !== (workInProgress.flags & 128),
-    JSCompiler_temp;
-  (JSCompiler_temp = didSuspend) ||
-    (JSCompiler_temp =
-      null !== current && null === current.memoizedState
-        ? !1
-        : 0 !== (suspenseStackCursor.current & 2));
-  JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));
-  JSCompiler_temp = 0 !== (workInProgress.flags & 32);
-  workInProgress.flags &= -33;
-  if (null === current) {
-    if (isHydrating) {
-      showFallback
-        ? pushPrimaryTreeSuspenseHandler(workInProgress)
-        : reuseSuspenseHandlerOnStack(workInProgress);
-      (current = nextHydratableInstance)
-        ? ((current = canHydrateHydrationBoundary(
-            current,
-            rootOrSingletonContext
-          )),
-          (current = null !== current && "&" !== current.data ? current : null),
-          null !== current &&
-            ((workInProgress.memoizedState = {
-              dehydrated: current,
-              treeContext:
-                null !== treeContextProvider
-                  ? { id: treeContextId, overflow: treeContextOverflow }
-                  : null,
-              retryLane: 536870912,
-              hydrationErrors: null
-            }),
-            (renderLanes = createFiberFromDehydratedFragment(current)),
-            (renderLanes.return = workInProgress),
-            (workInProgress.child = renderLanes),
-            (hydrationParentFiber = workInProgress),
-            (nextHydratableInstance = null)))
-        : (current = null);
-      if (null === current) throw throwOnHydrationMismatch(workInProgress);
-      isSuspenseInstanceFallback(current)
-        ? (workInProgress.lanes = 32)
-        : (workInProgress.lanes = 536870912);
-      return null;
-    }
-    var nextPrimaryChildren = nextProps.children;
-    nextProps = nextProps.fallback;
-    if (showFallback)
-      return (
-        reuseSuspenseHandlerOnStack(workInProgress),
-        (showFallback = workInProgress.mode),
-        (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(
-          { mode: "hidden", children: nextPrimaryChildren },
-          showFallback
-        )),
-        (nextProps = createFiberFromFragment(
-          nextProps,
-          showFallback,
-          renderLanes,
-          null
-        )),
-        (nextPrimaryChildren.return = workInProgress),
-        (nextProps.return = workInProgress),
-        (nextPrimaryChildren.sibling = nextProps),
-        (workInProgress.child = nextPrimaryChildren),
-        (nextProps = workInProgress.child),
-        (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),
-        (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-          current,
-          JSCompiler_temp,
-          renderLanes
-        )),
-        (workInProgress.memoizedState = SUSPENDED_MARKER),
-        bailoutOffscreenComponent(null, nextProps)
-      );
-    pushPrimaryTreeSuspenseHandler(workInProgress);
-    return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);
-  }
-  var prevState = current.memoizedState;
-  if (
-    null !== prevState &&
-    ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)
-  ) {
-    if (didSuspend)
-      workInProgress.flags & 256
-        ? (pushPrimaryTreeSuspenseHandler(workInProgress),
-          (workInProgress.flags &= -257),
-          (workInProgress = retrySuspenseComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          )))
-        : null !== workInProgress.memoizedState
-          ? (reuseSuspenseHandlerOnStack(workInProgress),
-            (workInProgress.child = current.child),
-            (workInProgress.flags |= 128),
-            (workInProgress = null))
-          : (reuseSuspenseHandlerOnStack(workInProgress),
-            (nextPrimaryChildren = nextProps.fallback),
-            (showFallback = workInProgress.mode),
-            (nextProps = mountWorkInProgressOffscreenFiber(
-              { mode: "visible", children: nextProps.children },
-              showFallback
-            )),
-            (nextPrimaryChildren = createFiberFromFragment(
-              nextPrimaryChildren,
-              showFallback,
-              renderLanes,
-              null
-            )),
-            (nextPrimaryChildren.flags |= 2),
-            (nextProps.return = workInProgress),
-            (nextPrimaryChildren.return = workInProgress),
-            (nextProps.sibling = nextPrimaryChildren),
-            (workInProgress.child = nextProps),
-            reconcileChildFibers(
-              workInProgress,
-              current.child,
-              null,
-              renderLanes
-            ),
-            (nextProps = workInProgress.child),
-            (nextProps.memoizedState =
-              mountSuspenseOffscreenState(renderLanes)),
-            (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_temp,
-              renderLanes
-            )),
-            (workInProgress.memoizedState = SUSPENDED_MARKER),
-            (workInProgress = bailoutOffscreenComponent(null, nextProps)));
-    else if (
-      (pushPrimaryTreeSuspenseHandler(workInProgress),
-      isSuspenseInstanceFallback(nextPrimaryChildren))
-    ) {
-      JSCompiler_temp =
-        nextPrimaryChildren.nextSibling &&
-        nextPrimaryChildren.nextSibling.dataset;
-      if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;
-      JSCompiler_temp = digest;
-      nextProps = Error(formatProdErrorMessage(419));
-      nextProps.stack = "";
-      nextProps.digest = JSCompiler_temp;
-      queueHydrationError({ value: nextProps, source: null, stack: null });
-      workInProgress = retrySuspenseComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else if (
-      (didReceiveUpdate ||
-        propagateParentContextChanges(current, workInProgress, renderLanes, !1),
-      (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),
-      didReceiveUpdate || JSCompiler_temp)
-    ) {
-      JSCompiler_temp = workInProgressRoot;
-      if (
-        null !== JSCompiler_temp &&
-        ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),
-        0 !== nextProps && nextProps !== prevState.retryLane)
-      )
-        throw (
-          ((prevState.retryLane = nextProps),
-          enqueueConcurrentRenderForLane(current, nextProps),
-          scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),
-          SelectiveHydrationException)
-        );
-      isSuspenseInstancePending(nextPrimaryChildren) ||
-        renderDidSuspendDelayIfPossible();
-      workInProgress = retrySuspenseComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else
-      isSuspenseInstancePending(nextPrimaryChildren)
-        ? ((workInProgress.flags |= 192),
-          (workInProgress.child = current.child),
-          (workInProgress = null))
-        : ((current = prevState.treeContext),
-          (nextHydratableInstance = getNextHydratable(
-            nextPrimaryChildren.nextSibling
-          )),
-          (hydrationParentFiber = workInProgress),
-          (isHydrating = !0),
-          (hydrationErrors = null),
-          (rootOrSingletonContext = !1),
-          null !== current &&
-            restoreSuspendedTreeContext(workInProgress, current),
-          (workInProgress = mountSuspensePrimaryChildren(
-            workInProgress,
-            nextProps.children
-          )),
-          (workInProgress.flags |= 4096));
-    return workInProgress;
-  }
-  if (showFallback)
-    return (
-      reuseSuspenseHandlerOnStack(workInProgress),
-      (nextPrimaryChildren = nextProps.fallback),
-      (showFallback = workInProgress.mode),
-      (prevState = current.child),
-      (digest = prevState.sibling),
-      (nextProps = createWorkInProgress(prevState, {
-        mode: "hidden",
-        children: nextProps.children
-      })),
-      (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),
-      null !== digest
-        ? (nextPrimaryChildren = createWorkInProgress(
-            digest,
-            nextPrimaryChildren
-          ))
-        : ((nextPrimaryChildren = createFiberFromFragment(
-            nextPrimaryChildren,
-            showFallback,
-            renderLanes,
-            null
-          )),
-          (nextPrimaryChildren.flags |= 2)),
-      (nextPrimaryChildren.return = workInProgress),
-      (nextProps.return = workInProgress),
-      (nextProps.sibling = nextPrimaryChildren),
-      (workInProgress.child = nextProps),
-      bailoutOffscreenComponent(null, nextProps),
-      (nextProps = workInProgress.child),
-      (nextPrimaryChildren = current.child.memoizedState),
-      null === nextPrimaryChildren
-        ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))
-        : ((showFallback = nextPrimaryChildren.cachePool),
-          null !== showFallback
-            ? ((prevState = CacheContext._currentValue),
-              (showFallback =
-                showFallback.parent !== prevState
-                  ? { parent: prevState, pool: prevState }
-                  : showFallback))
-            : (showFallback = getSuspendedCache()),
-          (nextPrimaryChildren = {
-            baseLanes: nextPrimaryChildren.baseLanes | renderLanes,
-            cachePool: showFallback
-          })),
-      (nextProps.memoizedState = nextPrimaryChildren),
-      (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-        current,
-        JSCompiler_temp,
-        renderLanes
-      )),
-      (workInProgress.memoizedState = SUSPENDED_MARKER),
-      bailoutOffscreenComponent(current.child, nextProps)
-    );
-  pushPrimaryTreeSuspenseHandler(workInProgress);
-  renderLanes = current.child;
-  current = renderLanes.sibling;
-  renderLanes = createWorkInProgress(renderLanes, {
-    mode: "visible",
-    children: nextProps.children
-  });
-  renderLanes.return = workInProgress;
-  renderLanes.sibling = null;
-  null !== current &&
-    ((JSCompiler_temp = workInProgress.deletions),
-    null === JSCompiler_temp
-      ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))
-      : JSCompiler_temp.push(current));
-  workInProgress.child = renderLanes;
-  workInProgress.memoizedState = null;
-  return renderLanes;
-}
-function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {
-  primaryChildren = mountWorkInProgressOffscreenFiber(
-    { mode: "visible", children: primaryChildren },
-    workInProgress.mode
-  );
-  primaryChildren.return = workInProgress;
-  return (workInProgress.child = primaryChildren);
-}
-function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {
-  offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);
-  offscreenProps.lanes = 0;
-  return offscreenProps;
-}
-function retrySuspenseComponentWithoutHydrating(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-  current = mountSuspensePrimaryChildren(
-    workInProgress,
-    workInProgress.pendingProps.children
-  );
-  current.flags |= 2;
-  workInProgress.memoizedState = null;
-  return current;
-}
-function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {
-  fiber.lanes |= renderLanes;
-  var alternate = fiber.alternate;
-  null !== alternate && (alternate.lanes |= renderLanes);
-  scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);
-}
-function initSuspenseListRenderState(
-  workInProgress,
-  isBackwards,
-  tail,
-  lastContentRow,
-  tailMode,
-  treeForkCount
-) {
-  var renderState = workInProgress.memoizedState;
-  null === renderState
-    ? (workInProgress.memoizedState = {
-        isBackwards: isBackwards,
-        rendering: null,
-        renderingStartTime: 0,
-        last: lastContentRow,
-        tail: tail,
-        tailMode: tailMode,
-        treeForkCount: treeForkCount
-      })
-    : ((renderState.isBackwards = isBackwards),
-      (renderState.rendering = null),
-      (renderState.renderingStartTime = 0),
-      (renderState.last = lastContentRow),
-      (renderState.tail = tail),
-      (renderState.tailMode = tailMode),
-      (renderState.treeForkCount = treeForkCount));
-}
-function updateSuspenseListComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    revealOrder = nextProps.revealOrder,
-    tailMode = nextProps.tail;
-  nextProps = nextProps.children;
-  var suspenseContext = suspenseStackCursor.current,
-    shouldForceFallback = 0 !== (suspenseContext & 2);
-  shouldForceFallback
-    ? ((suspenseContext = (suspenseContext & 1) | 2),
-      (workInProgress.flags |= 128))
-    : (suspenseContext &= 1);
-  push(suspenseStackCursor, suspenseContext);
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  nextProps = isHydrating ? treeForkCount : 0;
-  if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))
-    a: for (current = workInProgress.child; null !== current; ) {
-      if (13 === current.tag)
-        null !== current.memoizedState &&
-          scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-      else if (19 === current.tag)
-        scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-      else if (null !== current.child) {
-        current.child.return = current;
-        current = current.child;
-        continue;
-      }
-      if (current === workInProgress) break a;
-      for (; null === current.sibling; ) {
-        if (null === current.return || current.return === workInProgress)
-          break a;
-        current = current.return;
-      }
-      current.sibling.return = current.return;
-      current = current.sibling;
-    }
-  switch (revealOrder) {
-    case "forwards":
-      renderLanes = workInProgress.child;
-      for (revealOrder = null; null !== renderLanes; )
-        (current = renderLanes.alternate),
-          null !== current &&
-            null === findFirstSuspended(current) &&
-            (revealOrder = renderLanes),
-          (renderLanes = renderLanes.sibling);
-      renderLanes = revealOrder;
-      null === renderLanes
-        ? ((revealOrder = workInProgress.child), (workInProgress.child = null))
-        : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));
-      initSuspenseListRenderState(
-        workInProgress,
-        !1,
-        revealOrder,
-        renderLanes,
-        tailMode,
-        nextProps
-      );
-      break;
-    case "backwards":
-    case "unstable_legacy-backwards":
-      renderLanes = null;
-      revealOrder = workInProgress.child;
-      for (workInProgress.child = null; null !== revealOrder; ) {
-        current = revealOrder.alternate;
-        if (null !== current && null === findFirstSuspended(current)) {
-          workInProgress.child = revealOrder;
-          break;
-        }
-        current = revealOrder.sibling;
-        revealOrder.sibling = renderLanes;
-        renderLanes = revealOrder;
-        revealOrder = current;
-      }
-      initSuspenseListRenderState(
-        workInProgress,
-        !0,
-        renderLanes,
-        null,
-        tailMode,
-        nextProps
-      );
-      break;
-    case "together":
-      initSuspenseListRenderState(
-        workInProgress,
-        !1,
-        null,
-        null,
-        void 0,
-        nextProps
-      );
-      break;
-    default:
-      workInProgress.memoizedState = null;
-  }
-  return workInProgress.child;
-}
-function bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {
-  null !== current && (workInProgress.dependencies = current.dependencies);
-  workInProgressRootSkippedLanes |= workInProgress.lanes;
-  if (0 === (renderLanes & workInProgress.childLanes))
-    if (null !== current) {
-      if (
-        (propagateParentContextChanges(
-          current,
-          workInProgress,
-          renderLanes,
-          !1
-        ),
-        0 === (renderLanes & workInProgress.childLanes))
-      )
-        return null;
-    } else return null;
-  if (null !== current && workInProgress.child !== current.child)
-    throw Error(formatProdErrorMessage(153));
-  if (null !== workInProgress.child) {
-    current = workInProgress.child;
-    renderLanes = createWorkInProgress(current, current.pendingProps);
-    workInProgress.child = renderLanes;
-    for (renderLanes.return = workInProgress; null !== current.sibling; )
-      (current = current.sibling),
-        (renderLanes = renderLanes.sibling =
-          createWorkInProgress(current, current.pendingProps)),
-        (renderLanes.return = workInProgress);
-    renderLanes.sibling = null;
-  }
-  return workInProgress.child;
-}
-function checkScheduledUpdateOrContext(current, renderLanes) {
-  if (0 !== (current.lanes & renderLanes)) return !0;
-  current = current.dependencies;
-  return null !== current && checkIfContextChanged(current) ? !0 : !1;
-}
-function attemptEarlyBailoutIfNoScheduledUpdate(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  switch (workInProgress.tag) {
-    case 3:
-      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
-      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);
-      resetHydrationState();
-      break;
-    case 27:
-    case 5:
-      pushHostContext(workInProgress);
-      break;
-    case 4:
-      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
-      break;
-    case 10:
-      pushProvider(
-        workInProgress,
-        workInProgress.type,
-        workInProgress.memoizedProps.value
-      );
-      break;
-    case 31:
-      if (null !== workInProgress.memoizedState)
-        return (
-          (workInProgress.flags |= 128),
-          pushDehydratedActivitySuspenseHandler(workInProgress),
-          null
-        );
-      break;
-    case 13:
-      var state$102 = workInProgress.memoizedState;
-      if (null !== state$102) {
-        if (null !== state$102.dehydrated)
-          return (
-            pushPrimaryTreeSuspenseHandler(workInProgress),
-            (workInProgress.flags |= 128),
-            null
-          );
-        if (0 !== (renderLanes & workInProgress.child.childLanes))
-          return updateSuspenseComponent(current, workInProgress, renderLanes);
-        pushPrimaryTreeSuspenseHandler(workInProgress);
-        current = bailoutOnAlreadyFinishedWork(
-          current,
-          workInProgress,
-          renderLanes
-        );
-        return null !== current ? current.sibling : null;
-      }
-      pushPrimaryTreeSuspenseHandler(workInProgress);
-      break;
-    case 19:
-      var didSuspendBefore = 0 !== (current.flags & 128);
-      state$102 = 0 !== (renderLanes & workInProgress.childLanes);
-      state$102 ||
-        (propagateParentContextChanges(
-          current,
-          workInProgress,
-          renderLanes,
-          !1
-        ),
-        (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));
-      if (didSuspendBefore) {
-        if (state$102)
-          return updateSuspenseListComponent(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        workInProgress.flags |= 128;
-      }
-      didSuspendBefore = workInProgress.memoizedState;
-      null !== didSuspendBefore &&
-        ((didSuspendBefore.rendering = null),
-        (didSuspendBefore.tail = null),
-        (didSuspendBefore.lastEffect = null));
-      push(suspenseStackCursor, suspenseStackCursor.current);
-      if (state$102) break;
-      else return null;
-    case 22:
-      return (
-        (workInProgress.lanes = 0),
-        updateOffscreenComponent(
-          current,
-          workInProgress,
-          renderLanes,
-          workInProgress.pendingProps
-        )
-      );
-    case 24:
-      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);
-  }
-  return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-}
-function beginWork(current, workInProgress, renderLanes) {
-  if (null !== current)
-    if (current.memoizedProps !== workInProgress.pendingProps)
-      didReceiveUpdate = !0;
-    else {
-      if (
-        !checkScheduledUpdateOrContext(current, renderLanes) &&
-        0 === (workInProgress.flags & 128)
-      )
-        return (
-          (didReceiveUpdate = !1),
-          attemptEarlyBailoutIfNoScheduledUpdate(
-            current,
-            workInProgress,
-            renderLanes
-          )
-        );
-      didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;
-    }
-  else
-    (didReceiveUpdate = !1),
-      isHydrating &&
-        0 !== (workInProgress.flags & 1048576) &&
-        pushTreeId(workInProgress, treeForkCount, workInProgress.index);
-  workInProgress.lanes = 0;
-  switch (workInProgress.tag) {
-    case 16:
-      a: {
-        var props = workInProgress.pendingProps;
-        current = resolveLazy(workInProgress.elementType);
-        workInProgress.type = current;
-        if ("function" === typeof current)
-          shouldConstruct(current)
-            ? ((props = resolveClassComponentProps(current, props)),
-              (workInProgress.tag = 1),
-              (workInProgress = updateClassComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              )))
-            : ((workInProgress.tag = 0),
-              (workInProgress = updateFunctionComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              )));
-        else {
-          if (void 0 !== current && null !== current) {
-            var $$typeof = current.$$typeof;
-            if ($$typeof === REACT_FORWARD_REF_TYPE) {
-              workInProgress.tag = 11;
-              workInProgress = updateForwardRef(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              );
-              break a;
-            } else if ($$typeof === REACT_MEMO_TYPE) {
-              workInProgress.tag = 14;
-              workInProgress = updateMemoComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              );
-              break a;
-            }
-          }
-          workInProgress = getComponentNameFromType(current) || current;
-          throw Error(formatProdErrorMessage(306, workInProgress, ""));
-        }
-      }
-      return workInProgress;
-    case 0:
-      return updateFunctionComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 1:
-      return (
-        (props = workInProgress.type),
-        ($$typeof = resolveClassComponentProps(
-          props,
-          workInProgress.pendingProps
-        )),
-        updateClassComponent(
-          current,
-          workInProgress,
-          props,
-          $$typeof,
-          renderLanes
-        )
-      );
-    case 3:
-      a: {
-        pushHostContainer(
-          workInProgress,
-          workInProgress.stateNode.containerInfo
-        );
-        if (null === current) throw Error(formatProdErrorMessage(387));
-        props = workInProgress.pendingProps;
-        var prevState = workInProgress.memoizedState;
-        $$typeof = prevState.element;
-        cloneUpdateQueue(current, workInProgress);
-        processUpdateQueue(workInProgress, props, null, renderLanes);
-        var nextState = workInProgress.memoizedState;
-        props = nextState.cache;
-        pushProvider(workInProgress, CacheContext, props);
-        props !== prevState.cache &&
-          propagateContextChanges(
-            workInProgress,
-            [CacheContext],
-            renderLanes,
-            !0
-          );
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        props = nextState.element;
-        if (prevState.isDehydrated)
-          if (
-            ((prevState = {
-              element: props,
-              isDehydrated: !1,
-              cache: nextState.cache
-            }),
-            (workInProgress.updateQueue.baseState = prevState),
-            (workInProgress.memoizedState = prevState),
-            workInProgress.flags & 256)
-          ) {
-            workInProgress = mountHostRootWithoutHydrating(
-              current,
-              workInProgress,
-              props,
-              renderLanes
-            );
-            break a;
-          } else if (props !== $$typeof) {
-            $$typeof = createCapturedValueAtFiber(
-              Error(formatProdErrorMessage(424)),
-              workInProgress
-            );
-            queueHydrationError($$typeof);
-            workInProgress = mountHostRootWithoutHydrating(
-              current,
-              workInProgress,
-              props,
-              renderLanes
-            );
-            break a;
-          } else {
-            current = workInProgress.stateNode.containerInfo;
-            switch (current.nodeType) {
-              case 9:
-                current = current.body;
-                break;
-              default:
-                current =
-                  "HTML" === current.nodeName
-                    ? current.ownerDocument.body
-                    : current;
-            }
-            nextHydratableInstance = getNextHydratable(current.firstChild);
-            hydrationParentFiber = workInProgress;
-            isHydrating = !0;
-            hydrationErrors = null;
-            rootOrSingletonContext = !0;
-            renderLanes = mountChildFibers(
-              workInProgress,
-              null,
-              props,
-              renderLanes
-            );
-            for (workInProgress.child = renderLanes; renderLanes; )
-              (renderLanes.flags = (renderLanes.flags & -3) | 4096),
-                (renderLanes = renderLanes.sibling);
-          }
-        else {
-          resetHydrationState();
-          if (props === $$typeof) {
-            workInProgress = bailoutOnAlreadyFinishedWork(
-              current,
-              workInProgress,
-              renderLanes
-            );
-            break a;
-          }
-          reconcileChildren(current, workInProgress, props, renderLanes);
-        }
-        workInProgress = workInProgress.child;
-      }
-      return workInProgress;
-    case 26:
-      return (
-        markRef(current, workInProgress),
-        null === current
-          ? (renderLanes = getResource(
-              workInProgress.type,
-              null,
-              workInProgress.pendingProps,
-              null
-            ))
-            ? (workInProgress.memoizedState = renderLanes)
-            : isHydrating ||
-              ((renderLanes = workInProgress.type),
-              (current = workInProgress.pendingProps),
-              (props = getOwnerDocumentFromRootContainer(
-                rootInstanceStackCursor.current
-              ).createElement(renderLanes)),
-              (props[internalInstanceKey] = workInProgress),
-              (props[internalPropsKey] = current),
-              setInitialProperties(props, renderLanes, current),
-              markNodeAsHoistable(props),
-              (workInProgress.stateNode = props))
-          : (workInProgress.memoizedState = getResource(
-              workInProgress.type,
-              current.memoizedProps,
-              workInProgress.pendingProps,
-              current.memoizedState
-            )),
-        null
-      );
-    case 27:
-      return (
-        pushHostContext(workInProgress),
-        null === current &&
-          isHydrating &&
-          ((props = workInProgress.stateNode =
-            resolveSingletonInstance(
-              workInProgress.type,
-              workInProgress.pendingProps,
-              rootInstanceStackCursor.current
-            )),
-          (hydrationParentFiber = workInProgress),
-          (rootOrSingletonContext = !0),
-          ($$typeof = nextHydratableInstance),
-          isSingletonScope(workInProgress.type)
-            ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),
-              (nextHydratableInstance = getNextHydratable(props.firstChild)))
-            : (nextHydratableInstance = $$typeof)),
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        markRef(current, workInProgress),
-        null === current && (workInProgress.flags |= 4194304),
-        workInProgress.child
-      );
-    case 5:
-      if (null === current && isHydrating) {
-        if (($$typeof = props = nextHydratableInstance))
-          (props = canHydrateInstance(
-            props,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            rootOrSingletonContext
-          )),
-            null !== props
-              ? ((workInProgress.stateNode = props),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = getNextHydratable(props.firstChild)),
-                (rootOrSingletonContext = !1),
-                ($$typeof = !0))
-              : ($$typeof = !1);
-        $$typeof || throwOnHydrationMismatch(workInProgress);
-      }
-      pushHostContext(workInProgress);
-      $$typeof = workInProgress.type;
-      prevState = workInProgress.pendingProps;
-      nextState = null !== current ? current.memoizedProps : null;
-      props = prevState.children;
-      shouldSetTextContent($$typeof, prevState)
-        ? (props = null)
-        : null !== nextState &&
-          shouldSetTextContent($$typeof, nextState) &&
-          (workInProgress.flags |= 32);
-      null !== workInProgress.memoizedState &&
-        (($$typeof = renderWithHooks(
-          current,
-          workInProgress,
-          TransitionAwareHostComponent,
-          null,
-          null,
-          renderLanes
-        )),
-        (HostTransitionContext._currentValue = $$typeof));
-      markRef(current, workInProgress);
-      reconcileChildren(current, workInProgress, props, renderLanes);
-      return workInProgress.child;
-    case 6:
-      if (null === current && isHydrating) {
-        if ((current = renderLanes = nextHydratableInstance))
-          (renderLanes = canHydrateTextInstance(
-            renderLanes,
-            workInProgress.pendingProps,
-            rootOrSingletonContext
-          )),
-            null !== renderLanes
-              ? ((workInProgress.stateNode = renderLanes),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null),
-                (current = !0))
-              : (current = !1);
-        current || throwOnHydrationMismatch(workInProgress);
-      }
-      return null;
-    case 13:
-      return updateSuspenseComponent(current, workInProgress, renderLanes);
-    case 4:
-      return (
-        pushHostContainer(
-          workInProgress,
-          workInProgress.stateNode.containerInfo
-        ),
-        (props = workInProgress.pendingProps),
-        null === current
-          ? (workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              null,
-              props,
-              renderLanes
-            ))
-          : reconcileChildren(current, workInProgress, props, renderLanes),
-        workInProgress.child
-      );
-    case 11:
-      return updateForwardRef(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 7:
-      return (
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 8:
-      return (
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 12:
-      return (
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 10:
-      return (
-        (props = workInProgress.pendingProps),
-        pushProvider(workInProgress, workInProgress.type, props.value),
-        reconcileChildren(current, workInProgress, props.children, renderLanes),
-        workInProgress.child
-      );
-    case 9:
-      return (
-        ($$typeof = workInProgress.type._context),
-        (props = workInProgress.pendingProps.children),
-        prepareToReadContext(workInProgress),
-        ($$typeof = readContext($$typeof)),
-        (props = props($$typeof)),
-        (workInProgress.flags |= 1),
-        reconcileChildren(current, workInProgress, props, renderLanes),
-        workInProgress.child
-      );
-    case 14:
-      return updateMemoComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 15:
-      return updateSimpleMemoComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 19:
-      return updateSuspenseListComponent(current, workInProgress, renderLanes);
-    case 31:
-      return updateActivityComponent(current, workInProgress, renderLanes);
-    case 22:
-      return updateOffscreenComponent(
-        current,
-        workInProgress,
-        renderLanes,
-        workInProgress.pendingProps
-      );
-    case 24:
-      return (
-        prepareToReadContext(workInProgress),
-        (props = readContext(CacheContext)),
-        null === current
-          ? (($$typeof = peekCacheFromPool()),
-            null === $$typeof &&
-              (($$typeof = workInProgressRoot),
-              (prevState = createCache()),
-              ($$typeof.pooledCache = prevState),
-              prevState.refCount++,
-              null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),
-              ($$typeof = prevState)),
-            (workInProgress.memoizedState = { parent: props, cache: $$typeof }),
-            initializeUpdateQueue(workInProgress),
-            pushProvider(workInProgress, CacheContext, $$typeof))
-          : (0 !== (current.lanes & renderLanes) &&
-              (cloneUpdateQueue(current, workInProgress),
-              processUpdateQueue(workInProgress, null, null, renderLanes),
-              suspendIfUpdateReadFromEntangledAsyncAction()),
-            ($$typeof = current.memoizedState),
-            (prevState = workInProgress.memoizedState),
-            $$typeof.parent !== props
-              ? (($$typeof = { parent: props, cache: props }),
-                (workInProgress.memoizedState = $$typeof),
-                0 === workInProgress.lanes &&
-                  (workInProgress.memoizedState =
-                    workInProgress.updateQueue.baseState =
-                      $$typeof),
-                pushProvider(workInProgress, CacheContext, props))
-              : ((props = prevState.cache),
-                pushProvider(workInProgress, CacheContext, props),
-                props !== $$typeof.cache &&
-                  propagateContextChanges(
-                    workInProgress,
-                    [CacheContext],
-                    renderLanes,
-                    !0
-                  ))),
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 29:
-      throw workInProgress.pendingProps;
-  }
-  throw Error(formatProdErrorMessage(156, workInProgress.tag));
-}
-function markUpdate(workInProgress) {
-  workInProgress.flags |= 4;
-}
-function preloadInstanceAndSuspendIfNeeded(
-  workInProgress,
-  type,
-  oldProps,
-  newProps,
-  renderLanes
-) {
-  if ((type = 0 !== (workInProgress.mode & 32))) type = !1;
-  if (type) {
-    if (
-      ((workInProgress.flags |= 16777216),
-      (renderLanes & 335544128) === renderLanes)
-    )
-      if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;
-      else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-      else
-        throw (
-          ((suspendedThenable = noopSuspenseyCommitThenable),
-          SuspenseyCommitException)
-        );
-  } else workInProgress.flags &= -16777217;
-}
-function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {
-  if ("stylesheet" !== resource.type || 0 !== (resource.state.loading & 4))
-    workInProgress.flags &= -16777217;
-  else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))
-    if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-    else
-      throw (
-        ((suspendedThenable = noopSuspenseyCommitThenable),
-        SuspenseyCommitException)
-      );
-}
-function scheduleRetryEffect(workInProgress, retryQueue) {
-  null !== retryQueue && (workInProgress.flags |= 4);
-  workInProgress.flags & 16384 &&
-    ((retryQueue =
-      22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
-    (workInProgress.lanes |= retryQueue),
-    (workInProgressSuspendedRetryLanes |= retryQueue));
-}
-function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
-  if (!isHydrating)
-    switch (renderState.tailMode) {
-      case "hidden":
-        hasRenderedATailFallback = renderState.tail;
-        for (var lastTailNode = null; null !== hasRenderedATailFallback; )
-          null !== hasRenderedATailFallback.alternate &&
-            (lastTailNode = hasRenderedATailFallback),
-            (hasRenderedATailFallback = hasRenderedATailFallback.sibling);
-        null === lastTailNode
-          ? (renderState.tail = null)
-          : (lastTailNode.sibling = null);
-        break;
-      case "collapsed":
-        lastTailNode = renderState.tail;
-        for (var lastTailNode$106 = null; null !== lastTailNode; )
-          null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),
-            (lastTailNode = lastTailNode.sibling);
-        null === lastTailNode$106
-          ? hasRenderedATailFallback || null === renderState.tail
-            ? (renderState.tail = null)
-            : (renderState.tail.sibling = null)
-          : (lastTailNode$106.sibling = null);
-    }
-}
-function bubbleProperties(completedWork) {
-  var didBailout =
-      null !== completedWork.alternate &&
-      completedWork.alternate.child === completedWork.child,
-    newChildLanes = 0,
-    subtreeFlags = 0;
-  if (didBailout)
-    for (var child$107 = completedWork.child; null !== child$107; )
-      (newChildLanes |= child$107.lanes | child$107.childLanes),
-        (subtreeFlags |= child$107.subtreeFlags & 65011712),
-        (subtreeFlags |= child$107.flags & 65011712),
-        (child$107.return = completedWork),
-        (child$107 = child$107.sibling);
-  else
-    for (child$107 = completedWork.child; null !== child$107; )
-      (newChildLanes |= child$107.lanes | child$107.childLanes),
-        (subtreeFlags |= child$107.subtreeFlags),
-        (subtreeFlags |= child$107.flags),
-        (child$107.return = completedWork),
-        (child$107 = child$107.sibling);
-  completedWork.subtreeFlags |= subtreeFlags;
-  completedWork.childLanes = newChildLanes;
-  return didBailout;
-}
-function completeWork(current, workInProgress, renderLanes) {
-  var newProps = workInProgress.pendingProps;
-  popTreeContext(workInProgress);
-  switch (workInProgress.tag) {
-    case 16:
-    case 15:
-    case 0:
-    case 11:
-    case 7:
-    case 8:
-    case 12:
-    case 9:
-    case 14:
-      return bubbleProperties(workInProgress), null;
-    case 1:
-      return bubbleProperties(workInProgress), null;
-    case 3:
-      renderLanes = workInProgress.stateNode;
-      newProps = null;
-      null !== current && (newProps = current.memoizedState.cache);
-      workInProgress.memoizedState.cache !== newProps &&
-        (workInProgress.flags |= 2048);
-      popProvider(CacheContext);
-      popHostContainer();
-      renderLanes.pendingContext &&
-        ((renderLanes.context = renderLanes.pendingContext),
-        (renderLanes.pendingContext = null));
-      if (null === current || null === current.child)
-        popHydrationState(workInProgress)
-          ? markUpdate(workInProgress)
-          : null === current ||
-            (current.memoizedState.isDehydrated &&
-              0 === (workInProgress.flags & 256)) ||
-            ((workInProgress.flags |= 1024),
-            upgradeHydrationErrorsToRecoverable());
-      bubbleProperties(workInProgress);
-      return null;
-    case 26:
-      var type = workInProgress.type,
-        nextResource = workInProgress.memoizedState;
-      null === current
-        ? (markUpdate(workInProgress),
-          null !== nextResource
-            ? (bubbleProperties(workInProgress),
-              preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))
-            : (bubbleProperties(workInProgress),
-              preloadInstanceAndSuspendIfNeeded(
-                workInProgress,
-                type,
-                null,
-                newProps,
-                renderLanes
-              )))
-        : nextResource
-          ? nextResource !== current.memoizedState
-            ? (markUpdate(workInProgress),
-              bubbleProperties(workInProgress),
-              preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))
-            : (bubbleProperties(workInProgress),
-              (workInProgress.flags &= -16777217))
-          : ((current = current.memoizedProps),
-            current !== newProps && markUpdate(workInProgress),
-            bubbleProperties(workInProgress),
-            preloadInstanceAndSuspendIfNeeded(
-              workInProgress,
-              type,
-              current,
-              newProps,
-              renderLanes
-            ));
-      return null;
-    case 27:
-      popHostContext(workInProgress);
-      renderLanes = rootInstanceStackCursor.current;
-      type = workInProgress.type;
-      if (null !== current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if (!newProps) {
-          if (null === workInProgress.stateNode)
-            throw Error(formatProdErrorMessage(166));
-          bubbleProperties(workInProgress);
-          return null;
-        }
-        current = contextStackCursor.current;
-        popHydrationState(workInProgress)
-          ? prepareToHydrateHostInstance(workInProgress, current)
-          : ((current = resolveSingletonInstance(type, newProps, renderLanes)),
-            (workInProgress.stateNode = current),
-            markUpdate(workInProgress));
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 5:
-      popHostContext(workInProgress);
-      type = workInProgress.type;
-      if (null !== current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if (!newProps) {
-          if (null === workInProgress.stateNode)
-            throw Error(formatProdErrorMessage(166));
-          bubbleProperties(workInProgress);
-          return null;
-        }
-        nextResource = contextStackCursor.current;
-        if (popHydrationState(workInProgress))
-          prepareToHydrateHostInstance(workInProgress, nextResource);
-        else {
-          var ownerDocument = getOwnerDocumentFromRootContainer(
-            rootInstanceStackCursor.current
-          );
-          switch (nextResource) {
-            case 1:
-              nextResource = ownerDocument.createElementNS(
-                "http://www.w3.org/2000/svg",
-                type
-              );
-              break;
-            case 2:
-              nextResource = ownerDocument.createElementNS(
-                "http://www.w3.org/1998/Math/MathML",
-                type
-              );
-              break;
-            default:
-              switch (type) {
-                case "svg":
-                  nextResource = ownerDocument.createElementNS(
-                    "http://www.w3.org/2000/svg",
-                    type
-                  );
-                  break;
-                case "math":
-                  nextResource = ownerDocument.createElementNS(
-                    "http://www.w3.org/1998/Math/MathML",
-                    type
-                  );
-                  break;
-                case "script":
-                  nextResource = ownerDocument.createElement("div");
-                  nextResource.innerHTML = "<script>\x3c/script>";
-                  nextResource = nextResource.removeChild(
-                    nextResource.firstChild
-                  );
-                  break;
-                case "select":
-                  nextResource =
-                    "string" === typeof newProps.is
-                      ? ownerDocument.createElement("select", {
-                          is: newProps.is
-                        })
-                      : ownerDocument.createElement("select");
-                  newProps.multiple
-                    ? (nextResource.multiple = !0)
-                    : newProps.size && (nextResource.size = newProps.size);
-                  break;
-                default:
-                  nextResource =
-                    "string" === typeof newProps.is
-                      ? ownerDocument.createElement(type, { is: newProps.is })
-                      : ownerDocument.createElement(type);
-              }
-          }
-          nextResource[internalInstanceKey] = workInProgress;
-          nextResource[internalPropsKey] = newProps;
-          a: for (
-            ownerDocument = workInProgress.child;
-            null !== ownerDocument;
-
-          ) {
-            if (5 === ownerDocument.tag || 6 === ownerDocument.tag)
-              nextResource.appendChild(ownerDocument.stateNode);
-            else if (
-              4 !== ownerDocument.tag &&
-              27 !== ownerDocument.tag &&
-              null !== ownerDocument.child
-            ) {
-              ownerDocument.child.return = ownerDocument;
-              ownerDocument = ownerDocument.child;
-              continue;
-            }
-            if (ownerDocument === workInProgress) break a;
-            for (; null === ownerDocument.sibling; ) {
-              if (
-                null === ownerDocument.return ||
-                ownerDocument.return === workInProgress
-              )
-                break a;
-              ownerDocument = ownerDocument.return;
-            }
-            ownerDocument.sibling.return = ownerDocument.return;
-            ownerDocument = ownerDocument.sibling;
-          }
-          workInProgress.stateNode = nextResource;
-          a: switch (
-            (setInitialProperties(nextResource, type, newProps), type)
-          ) {
-            case "button":
-            case "input":
-            case "select":
-            case "textarea":
-              newProps = !!newProps.autoFocus;
-              break a;
-            case "img":
-              newProps = !0;
-              break a;
-            default:
-              newProps = !1;
-          }
-          newProps && markUpdate(workInProgress);
-        }
-      }
-      bubbleProperties(workInProgress);
-      preloadInstanceAndSuspendIfNeeded(
-        workInProgress,
-        workInProgress.type,
-        null === current ? null : current.memoizedProps,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-      return null;
-    case 6:
-      if (current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if ("string" !== typeof newProps && null === workInProgress.stateNode)
-          throw Error(formatProdErrorMessage(166));
-        current = rootInstanceStackCursor.current;
-        if (popHydrationState(workInProgress)) {
-          current = workInProgress.stateNode;
-          renderLanes = workInProgress.memoizedProps;
-          newProps = null;
-          type = hydrationParentFiber;
-          if (null !== type)
-            switch (type.tag) {
-              case 27:
-              case 5:
-                newProps = type.memoizedProps;
-            }
-          current[internalInstanceKey] = workInProgress;
-          current =
-            current.nodeValue === renderLanes ||
-            (null !== newProps && !0 === newProps.suppressHydrationWarning) ||
-            checkForUnmatchedText(current.nodeValue, renderLanes)
-              ? !0
-              : !1;
-          current || throwOnHydrationMismatch(workInProgress, !0);
-        } else
-          (current =
-            getOwnerDocumentFromRootContainer(current).createTextNode(
-              newProps
-            )),
-            (current[internalInstanceKey] = workInProgress),
-            (workInProgress.stateNode = current);
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 31:
-      renderLanes = workInProgress.memoizedState;
-      if (null === current || null !== current.memoizedState) {
-        newProps = popHydrationState(workInProgress);
-        if (null !== renderLanes) {
-          if (null === current) {
-            if (!newProps) throw Error(formatProdErrorMessage(318));
-            current = workInProgress.memoizedState;
-            current = null !== current ? current.dehydrated : null;
-            if (!current) throw Error(formatProdErrorMessage(557));
-            current[internalInstanceKey] = workInProgress;
-          } else
-            resetHydrationState(),
-              0 === (workInProgress.flags & 128) &&
-                (workInProgress.memoizedState = null),
-              (workInProgress.flags |= 4);
-          bubbleProperties(workInProgress);
-          current = !1;
-        } else
-          (renderLanes = upgradeHydrationErrorsToRecoverable()),
-            null !== current &&
-              null !== current.memoizedState &&
-              (current.memoizedState.hydrationErrors = renderLanes),
-            (current = !0);
-        if (!current) {
-          if (workInProgress.flags & 256)
-            return popSuspenseHandler(workInProgress), workInProgress;
-          popSuspenseHandler(workInProgress);
-          return null;
-        }
-        if (0 !== (workInProgress.flags & 128))
-          throw Error(formatProdErrorMessage(558));
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 13:
-      newProps = workInProgress.memoizedState;
-      if (
-        null === current ||
-        (null !== current.memoizedState &&
-          null !== current.memoizedState.dehydrated)
-      ) {
-        type = popHydrationState(workInProgress);
-        if (null !== newProps && null !== newProps.dehydrated) {
-          if (null === current) {
-            if (!type) throw Error(formatProdErrorMessage(318));
-            type = workInProgress.memoizedState;
-            type = null !== type ? type.dehydrated : null;
-            if (!type) throw Error(formatProdErrorMessage(317));
-            type[internalInstanceKey] = workInProgress;
-          } else
-            resetHydrationState(),
-              0 === (workInProgress.flags & 128) &&
-                (workInProgress.memoizedState = null),
-              (workInProgress.flags |= 4);
-          bubbleProperties(workInProgress);
-          type = !1;
-        } else
-          (type = upgradeHydrationErrorsToRecoverable()),
-            null !== current &&
-              null !== current.memoizedState &&
-              (current.memoizedState.hydrationErrors = type),
-            (type = !0);
-        if (!type) {
-          if (workInProgress.flags & 256)
-            return popSuspenseHandler(workInProgress), workInProgress;
-          popSuspenseHandler(workInProgress);
-          return null;
-        }
-      }
-      popSuspenseHandler(workInProgress);
-      if (0 !== (workInProgress.flags & 128))
-        return (workInProgress.lanes = renderLanes), workInProgress;
-      renderLanes = null !== newProps;
-      current = null !== current && null !== current.memoizedState;
-      renderLanes &&
-        ((newProps = workInProgress.child),
-        (type = null),
-        null !== newProps.alternate &&
-          null !== newProps.alternate.memoizedState &&
-          null !== newProps.alternate.memoizedState.cachePool &&
-          (type = newProps.alternate.memoizedState.cachePool.pool),
-        (nextResource = null),
-        null !== newProps.memoizedState &&
-          null !== newProps.memoizedState.cachePool &&
-          (nextResource = newProps.memoizedState.cachePool.pool),
-        nextResource !== type && (newProps.flags |= 2048));
-      renderLanes !== current &&
-        renderLanes &&
-        (workInProgress.child.flags |= 8192);
-      scheduleRetryEffect(workInProgress, workInProgress.updateQueue);
-      bubbleProperties(workInProgress);
-      return null;
-    case 4:
-      return (
-        popHostContainer(),
-        null === current &&
-          listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),
-        bubbleProperties(workInProgress),
-        null
-      );
-    case 10:
-      return (
-        popProvider(workInProgress.type), bubbleProperties(workInProgress), null
-      );
-    case 19:
-      pop(suspenseStackCursor);
-      newProps = workInProgress.memoizedState;
-      if (null === newProps) return bubbleProperties(workInProgress), null;
-      type = 0 !== (workInProgress.flags & 128);
-      nextResource = newProps.rendering;
-      if (null === nextResource)
-        if (type) cutOffTailIfNeeded(newProps, !1);
-        else {
-          if (
-            0 !== workInProgressRootExitStatus ||
-            (null !== current && 0 !== (current.flags & 128))
-          )
-            for (current = workInProgress.child; null !== current; ) {
-              nextResource = findFirstSuspended(current);
-              if (null !== nextResource) {
-                workInProgress.flags |= 128;
-                cutOffTailIfNeeded(newProps, !1);
-                current = nextResource.updateQueue;
-                workInProgress.updateQueue = current;
-                scheduleRetryEffect(workInProgress, current);
-                workInProgress.subtreeFlags = 0;
-                current = renderLanes;
-                for (renderLanes = workInProgress.child; null !== renderLanes; )
-                  resetWorkInProgress(renderLanes, current),
-                    (renderLanes = renderLanes.sibling);
-                push(
-                  suspenseStackCursor,
-                  (suspenseStackCursor.current & 1) | 2
-                );
-                isHydrating &&
-                  pushTreeFork(workInProgress, newProps.treeForkCount);
-                return workInProgress.child;
-              }
-              current = current.sibling;
-            }
-          null !== newProps.tail &&
-            now() > workInProgressRootRenderTargetTime &&
-            ((workInProgress.flags |= 128),
-            (type = !0),
-            cutOffTailIfNeeded(newProps, !1),
-            (workInProgress.lanes = 4194304));
-        }
-      else {
-        if (!type)
-          if (
-            ((current = findFirstSuspended(nextResource)), null !== current)
-          ) {
-            if (
-              ((workInProgress.flags |= 128),
-              (type = !0),
-              (current = current.updateQueue),
-              (workInProgress.updateQueue = current),
-              scheduleRetryEffect(workInProgress, current),
-              cutOffTailIfNeeded(newProps, !0),
-              null === newProps.tail &&
-                "hidden" === newProps.tailMode &&
-                !nextResource.alternate &&
-                !isHydrating)
-            )
-              return bubbleProperties(workInProgress), null;
-          } else
-            2 * now() - newProps.renderingStartTime >
-              workInProgressRootRenderTargetTime &&
-              536870912 !== renderLanes &&
-              ((workInProgress.flags |= 128),
-              (type = !0),
-              cutOffTailIfNeeded(newProps, !1),
-              (workInProgress.lanes = 4194304));
-        newProps.isBackwards
-          ? ((nextResource.sibling = workInProgress.child),
-            (workInProgress.child = nextResource))
-          : ((current = newProps.last),
-            null !== current
-              ? (current.sibling = nextResource)
-              : (workInProgress.child = nextResource),
-            (newProps.last = nextResource));
-      }
-      if (null !== newProps.tail)
-        return (
-          (current = newProps.tail),
-          (newProps.rendering = current),
-          (newProps.tail = current.sibling),
-          (newProps.renderingStartTime = now()),
-          (current.sibling = null),
-          (renderLanes = suspenseStackCursor.current),
-          push(
-            suspenseStackCursor,
-            type ? (renderLanes & 1) | 2 : renderLanes & 1
-          ),
-          isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),
-          current
-        );
-      bubbleProperties(workInProgress);
-      return null;
-    case 22:
-    case 23:
-      return (
-        popSuspenseHandler(workInProgress),
-        popHiddenContext(),
-        (newProps = null !== workInProgress.memoizedState),
-        null !== current
-          ? (null !== current.memoizedState) !== newProps &&
-            (workInProgress.flags |= 8192)
-          : newProps && (workInProgress.flags |= 8192),
-        newProps
-          ? 0 !== (renderLanes & 536870912) &&
-            0 === (workInProgress.flags & 128) &&
-            (bubbleProperties(workInProgress),
-            workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))
-          : bubbleProperties(workInProgress),
-        (renderLanes = workInProgress.updateQueue),
-        null !== renderLanes &&
-          scheduleRetryEffect(workInProgress, renderLanes.retryQueue),
-        (renderLanes = null),
-        null !== current &&
-          null !== current.memoizedState &&
-          null !== current.memoizedState.cachePool &&
-          (renderLanes = current.memoizedState.cachePool.pool),
-        (newProps = null),
-        null !== workInProgress.memoizedState &&
-          null !== workInProgress.memoizedState.cachePool &&
-          (newProps = workInProgress.memoizedState.cachePool.pool),
-        newProps !== renderLanes && (workInProgress.flags |= 2048),
-        null !== current && pop(resumedCache),
-        null
-      );
-    case 24:
-      return (
-        (renderLanes = null),
-        null !== current && (renderLanes = current.memoizedState.cache),
-        workInProgress.memoizedState.cache !== renderLanes &&
-          (workInProgress.flags |= 2048),
-        popProvider(CacheContext),
-        bubbleProperties(workInProgress),
-        null
-      );
-    case 25:
-      return null;
-    case 30:
-      return null;
-  }
-  throw Error(formatProdErrorMessage(156, workInProgress.tag));
-}
-function unwindWork(current, workInProgress) {
-  popTreeContext(workInProgress);
-  switch (workInProgress.tag) {
-    case 1:
-      return (
-        (current = workInProgress.flags),
-        current & 65536
-          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-          : null
-      );
-    case 3:
-      return (
-        popProvider(CacheContext),
-        popHostContainer(),
-        (current = workInProgress.flags),
-        0 !== (current & 65536) && 0 === (current & 128)
-          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-          : null
-      );
-    case 26:
-    case 27:
-    case 5:
-      return popHostContext(workInProgress), null;
-    case 31:
-      if (null !== workInProgress.memoizedState) {
-        popSuspenseHandler(workInProgress);
-        if (null === workInProgress.alternate)
-          throw Error(formatProdErrorMessage(340));
-        resetHydrationState();
-      }
-      current = workInProgress.flags;
-      return current & 65536
-        ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-        : null;
-    case 13:
-      popSuspenseHandler(workInProgress);
-      current = workInProgress.memoizedState;
-      if (null !== current && null !== current.dehydrated) {
-        if (null === workInProgress.alternate)
-          throw Error(formatProdErrorMessage(340));
-        resetHydrationState();
-      }
-      current = workInProgress.flags;
-      return current & 65536
-        ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-        : null;
-    case 19:
-      return pop(suspenseStackCursor), null;
-    case 4:
-      return popHostContainer(), null;
-    case 10:
-      return popProvider(workInProgress.type), null;
-    case 22:
-    case 23:
-      return (
-        popSuspenseHandler(workInProgress),
-        popHiddenContext(),
-        null !== current && pop(resumedCache),
-        (current = workInProgress.flags),
-        current & 65536
-          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-          : null
-      );
-    case 24:
-      return popProvider(CacheContext), null;
-    case 25:
-      return null;
-    default:
-      return null;
-  }
-}
-function unwindInterruptedWork(current, interruptedWork) {
-  popTreeContext(interruptedWork);
-  switch (interruptedWork.tag) {
-    case 3:
-      popProvider(CacheContext);
-      popHostContainer();
-      break;
-    case 26:
-    case 27:
-    case 5:
-      popHostContext(interruptedWork);
-      break;
-    case 4:
-      popHostContainer();
-      break;
-    case 31:
-      null !== interruptedWork.memoizedState &&
-        popSuspenseHandler(interruptedWork);
-      break;
-    case 13:
-      popSuspenseHandler(interruptedWork);
-      break;
-    case 19:
-      pop(suspenseStackCursor);
-      break;
-    case 10:
-      popProvider(interruptedWork.type);
-      break;
-    case 22:
-    case 23:
-      popSuspenseHandler(interruptedWork);
-      popHiddenContext();
-      null !== current && pop(resumedCache);
-      break;
-    case 24:
-      popProvider(CacheContext);
-  }
-}
-function commitHookEffectListMount(flags, finishedWork) {
-  try {
-    var updateQueue = finishedWork.updateQueue,
-      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-    if (null !== lastEffect) {
-      var firstEffect = lastEffect.next;
-      updateQueue = firstEffect;
-      do {
-        if ((updateQueue.tag & flags) === flags) {
-          lastEffect = void 0;
-          var create = updateQueue.create,
-            inst = updateQueue.inst;
-          lastEffect = create();
-          inst.destroy = lastEffect;
-        }
-        updateQueue = updateQueue.next;
-      } while (updateQueue !== firstEffect);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHookEffectListUnmount(
-  flags,
-  finishedWork,
-  nearestMountedAncestor$jscomp$0
-) {
-  try {
-    var updateQueue = finishedWork.updateQueue,
-      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-    if (null !== lastEffect) {
-      var firstEffect = lastEffect.next;
-      updateQueue = firstEffect;
-      do {
-        if ((updateQueue.tag & flags) === flags) {
-          var inst = updateQueue.inst,
-            destroy = inst.destroy;
-          if (void 0 !== destroy) {
-            inst.destroy = void 0;
-            lastEffect = finishedWork;
-            var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
-              destroy_ = destroy;
-            try {
-              destroy_();
-            } catch (error) {
-              captureCommitPhaseError(
-                lastEffect,
-                nearestMountedAncestor,
-                error
-              );
-            }
-          }
-        }
-        updateQueue = updateQueue.next;
-      } while (updateQueue !== firstEffect);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitClassCallbacks(finishedWork) {
-  var updateQueue = finishedWork.updateQueue;
-  if (null !== updateQueue) {
-    var instance = finishedWork.stateNode;
-    try {
-      commitCallbacks(updateQueue, instance);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-  }
-}
-function safelyCallComponentWillUnmount(
-  current,
-  nearestMountedAncestor,
-  instance
-) {
-  instance.props = resolveClassComponentProps(
-    current.type,
-    current.memoizedProps
-  );
-  instance.state = current.memoizedState;
-  try {
-    instance.componentWillUnmount();
-  } catch (error) {
-    captureCommitPhaseError(current, nearestMountedAncestor, error);
-  }
-}
-function safelyAttachRef(current, nearestMountedAncestor) {
-  try {
-    var ref = current.ref;
-    if (null !== ref) {
-      switch (current.tag) {
-        case 26:
-        case 27:
-        case 5:
-          var instanceToUse = current.stateNode;
-          break;
-        case 30:
-          instanceToUse = current.stateNode;
-          break;
-        default:
-          instanceToUse = current.stateNode;
-      }
-      "function" === typeof ref
-        ? (current.refCleanup = ref(instanceToUse))
-        : (ref.current = instanceToUse);
-    }
-  } catch (error) {
-    captureCommitPhaseError(current, nearestMountedAncestor, error);
-  }
-}
-function safelyDetachRef(current, nearestMountedAncestor) {
-  var ref = current.ref,
-    refCleanup = current.refCleanup;
-  if (null !== ref)
-    if ("function" === typeof refCleanup)
-      try {
-        refCleanup();
-      } catch (error) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error);
-      } finally {
-        (current.refCleanup = null),
-          (current = current.alternate),
-          null != current && (current.refCleanup = null);
-      }
-    else if ("function" === typeof ref)
-      try {
-        ref(null);
-      } catch (error$140) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error$140);
-      }
-    else ref.current = null;
-}
-function commitHostMount(finishedWork) {
-  var type = finishedWork.type,
-    props = finishedWork.memoizedProps,
-    instance = finishedWork.stateNode;
-  try {
-    a: switch (type) {
-      case "button":
-      case "input":
-      case "select":
-      case "textarea":
-        props.autoFocus && instance.focus();
-        break a;
-      case "img":
-        props.src
-          ? (instance.src = props.src)
-          : props.srcSet && (instance.srcset = props.srcSet);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHostUpdate(finishedWork, newProps, oldProps) {
-  try {
-    var domElement = finishedWork.stateNode;
-    updateProperties(domElement, finishedWork.type, oldProps, newProps);
-    domElement[internalPropsKey] = newProps;
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function isHostParent(fiber) {
-  return (
-    5 === fiber.tag ||
-    3 === fiber.tag ||
-    26 === fiber.tag ||
-    (27 === fiber.tag && isSingletonScope(fiber.type)) ||
-    4 === fiber.tag
-  );
-}
-function getHostSibling(fiber) {
-  a: for (;;) {
-    for (; null === fiber.sibling; ) {
-      if (null === fiber.return || isHostParent(fiber.return)) return null;
-      fiber = fiber.return;
-    }
-    fiber.sibling.return = fiber.return;
-    for (
-      fiber = fiber.sibling;
-      5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
-
-    ) {
-      if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;
-      if (fiber.flags & 2) continue a;
-      if (null === fiber.child || 4 === fiber.tag) continue a;
-      else (fiber.child.return = fiber), (fiber = fiber.child);
-    }
-    if (!(fiber.flags & 2)) return fiber.stateNode;
-  }
-}
-function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
-  var tag = node.tag;
-  if (5 === tag || 6 === tag)
-    (node = node.stateNode),
-      before
-        ? (9 === parent.nodeType
-            ? parent.body
-            : "HTML" === parent.nodeName
-              ? parent.ownerDocument.body
-              : parent
-          ).insertBefore(node, before)
-        : ((before =
-            9 === parent.nodeType
-              ? parent.body
-              : "HTML" === parent.nodeName
-                ? parent.ownerDocument.body
-                : parent),
-          before.appendChild(node),
-          (parent = parent._reactRootContainer),
-          (null !== parent && void 0 !== parent) ||
-            null !== before.onclick ||
-            (before.onclick = noop$1));
-  else if (
-    4 !== tag &&
-    (27 === tag &&
-      isSingletonScope(node.type) &&
-      ((parent = node.stateNode), (before = null)),
-    (node = node.child),
-    null !== node)
-  )
-    for (
-      insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-        node = node.sibling;
-      null !== node;
-
-    )
-      insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-        (node = node.sibling);
-}
-function insertOrAppendPlacementNode(node, before, parent) {
-  var tag = node.tag;
-  if (5 === tag || 6 === tag)
-    (node = node.stateNode),
-      before ? parent.insertBefore(node, before) : parent.appendChild(node);
-  else if (
-    4 !== tag &&
-    (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),
-    (node = node.child),
-    null !== node)
-  )
-    for (
-      insertOrAppendPlacementNode(node, before, parent), node = node.sibling;
-      null !== node;
-
-    )
-      insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);
-}
-function commitHostSingletonAcquisition(finishedWork) {
-  var singleton = finishedWork.stateNode,
-    props = finishedWork.memoizedProps;
-  try {
-    for (
-      var type = finishedWork.type, attributes = singleton.attributes;
-      attributes.length;
-
-    )
-      singleton.removeAttributeNode(attributes[0]);
-    setInitialProperties(singleton, type, props);
-    singleton[internalInstanceKey] = finishedWork;
-    singleton[internalPropsKey] = props;
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-var offscreenSubtreeIsHidden = !1,
-  offscreenSubtreeWasHidden = !1,
-  needsFormReset = !1,
-  PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set,
-  nextEffect = null;
-function commitBeforeMutationEffects(root, firstChild) {
-  root = root.containerInfo;
-  eventsEnabled = _enabled;
-  root = getActiveElementDeep(root);
-  if (hasSelectionCapabilities(root)) {
-    if ("selectionStart" in root)
-      var JSCompiler_temp = {
-        start: root.selectionStart,
-        end: root.selectionEnd
-      };
-    else
-      a: {
-        JSCompiler_temp =
-          ((JSCompiler_temp = root.ownerDocument) &&
-            JSCompiler_temp.defaultView) ||
-          window;
-        var selection =
-          JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();
-        if (selection && 0 !== selection.rangeCount) {
-          JSCompiler_temp = selection.anchorNode;
-          var anchorOffset = selection.anchorOffset,
-            focusNode = selection.focusNode;
-          selection = selection.focusOffset;
-          try {
-            JSCompiler_temp.nodeType, focusNode.nodeType;
-          } catch (e$20) {
-            JSCompiler_temp = null;
-            break a;
-          }
-          var length = 0,
-            start = -1,
-            end = -1,
-            indexWithinAnchor = 0,
-            indexWithinFocus = 0,
-            node = root,
-            parentNode = null;
-          b: for (;;) {
-            for (var next; ; ) {
-              node !== JSCompiler_temp ||
-                (0 !== anchorOffset && 3 !== node.nodeType) ||
-                (start = length + anchorOffset);
-              node !== focusNode ||
-                (0 !== selection && 3 !== node.nodeType) ||
-                (end = length + selection);
-              3 === node.nodeType && (length += node.nodeValue.length);
-              if (null === (next = node.firstChild)) break;
-              parentNode = node;
-              node = next;
-            }
-            for (;;) {
-              if (node === root) break b;
-              parentNode === JSCompiler_temp &&
-                ++indexWithinAnchor === anchorOffset &&
-                (start = length);
-              parentNode === focusNode &&
-                ++indexWithinFocus === selection &&
-                (end = length);
-              if (null !== (next = node.nextSibling)) break;
-              node = parentNode;
-              parentNode = node.parentNode;
-            }
-            node = next;
-          }
-          JSCompiler_temp =
-            -1 === start || -1 === end ? null : { start: start, end: end };
-        } else JSCompiler_temp = null;
-      }
-    JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };
-  } else JSCompiler_temp = null;
-  selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };
-  _enabled = !1;
-  for (nextEffect = firstChild; null !== nextEffect; )
-    if (
-      ((firstChild = nextEffect),
-      (root = firstChild.child),
-      0 !== (firstChild.subtreeFlags & 1028) && null !== root)
-    )
-      (root.return = firstChild), (nextEffect = root);
-    else
-      for (; null !== nextEffect; ) {
-        firstChild = nextEffect;
-        focusNode = firstChild.alternate;
-        root = firstChild.flags;
-        switch (firstChild.tag) {
-          case 0:
-            if (
-              0 !== (root & 4) &&
-              ((root = firstChild.updateQueue),
-              (root = null !== root ? root.events : null),
-              null !== root)
-            )
-              for (
-                JSCompiler_temp = 0;
-                JSCompiler_temp < root.length;
-                JSCompiler_temp++
-              )
-                (anchorOffset = root[JSCompiler_temp]),
-                  (anchorOffset.ref.impl = anchorOffset.nextImpl);
-            break;
-          case 11:
-          case 15:
-            break;
-          case 1:
-            if (0 !== (root & 1024) && null !== focusNode) {
-              root = void 0;
-              JSCompiler_temp = firstChild;
-              anchorOffset = focusNode.memoizedProps;
-              focusNode = focusNode.memoizedState;
-              selection = JSCompiler_temp.stateNode;
-              try {
-                var resolvedPrevProps = resolveClassComponentProps(
-                  JSCompiler_temp.type,
-                  anchorOffset
-                );
-                root = selection.getSnapshotBeforeUpdate(
-                  resolvedPrevProps,
-                  focusNode
-                );
-                selection.__reactInternalSnapshotBeforeUpdate = root;
-              } catch (error) {
-                captureCommitPhaseError(
-                  JSCompiler_temp,
-                  JSCompiler_temp.return,
-                  error
-                );
-              }
-            }
-            break;
-          case 3:
-            if (0 !== (root & 1024))
-              if (
-                ((root = firstChild.stateNode.containerInfo),
-                (JSCompiler_temp = root.nodeType),
-                9 === JSCompiler_temp)
-              )
-                clearContainerSparingly(root);
-              else if (1 === JSCompiler_temp)
-                switch (root.nodeName) {
-                  case "HEAD":
-                  case "HTML":
-                  case "BODY":
-                    clearContainerSparingly(root);
-                    break;
-                  default:
-                    root.textContent = "";
-                }
-            break;
-          case 5:
-          case 26:
-          case 27:
-          case 6:
-          case 4:
-          case 17:
-            break;
-          default:
-            if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));
-        }
-        root = firstChild.sibling;
-        if (null !== root) {
-          root.return = firstChild.return;
-          nextEffect = root;
-          break;
-        }
-        nextEffect = firstChild.return;
-      }
-}
-function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {
-  var flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitHookEffectListMount(5, finishedWork);
-      break;
-    case 1:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      if (flags & 4)
-        if (((finishedRoot = finishedWork.stateNode), null === current))
-          try {
-            finishedRoot.componentDidMount();
-          } catch (error) {
-            captureCommitPhaseError(finishedWork, finishedWork.return, error);
-          }
-        else {
-          var prevProps = resolveClassComponentProps(
-            finishedWork.type,
-            current.memoizedProps
-          );
-          current = current.memoizedState;
-          try {
-            finishedRoot.componentDidUpdate(
-              prevProps,
-              current,
-              finishedRoot.__reactInternalSnapshotBeforeUpdate
-            );
-          } catch (error$139) {
-            captureCommitPhaseError(
-              finishedWork,
-              finishedWork.return,
-              error$139
-            );
-          }
-        }
-      flags & 64 && commitClassCallbacks(finishedWork);
-      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-      break;
-    case 3:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      if (
-        flags & 64 &&
-        ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)
-      ) {
-        current = null;
-        if (null !== finishedWork.child)
-          switch (finishedWork.child.tag) {
-            case 27:
-            case 5:
-              current = finishedWork.child.stateNode;
-              break;
-            case 1:
-              current = finishedWork.child.stateNode;
-          }
-        try {
-          commitCallbacks(finishedRoot, current);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      break;
-    case 27:
-      null === current &&
-        flags & 4 &&
-        commitHostSingletonAcquisition(finishedWork);
-    case 26:
-    case 5:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      null === current && flags & 4 && commitHostMount(finishedWork);
-      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-      break;
-    case 12:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      break;
-    case 31:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-      break;
-    case 13:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-      flags & 64 &&
-        ((finishedRoot = finishedWork.memoizedState),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.dehydrated),
-          null !== finishedRoot &&
-            ((finishedWork = retryDehydratedSuspenseBoundary.bind(
-              null,
-              finishedWork
-            )),
-            registerSuspenseInstanceRetry(finishedRoot, finishedWork))));
-      break;
-    case 22:
-      flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;
-      if (!flags) {
-        current =
-          (null !== current && null !== current.memoizedState) ||
-          offscreenSubtreeWasHidden;
-        prevProps = offscreenSubtreeIsHidden;
-        var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-        offscreenSubtreeIsHidden = flags;
-        (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden
-          ? recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              0 !== (finishedWork.subtreeFlags & 8772)
-            )
-          : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-        offscreenSubtreeIsHidden = prevProps;
-        offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-      }
-      break;
-    case 30:
-      break;
-    default:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-  }
-}
-function detachFiberAfterEffects(fiber) {
-  var alternate = fiber.alternate;
-  null !== alternate &&
-    ((fiber.alternate = null), detachFiberAfterEffects(alternate));
-  fiber.child = null;
-  fiber.deletions = null;
-  fiber.sibling = null;
-  5 === fiber.tag &&
-    ((alternate = fiber.stateNode),
-    null !== alternate && detachDeletedInstance(alternate));
-  fiber.stateNode = null;
-  fiber.return = null;
-  fiber.dependencies = null;
-  fiber.memoizedProps = null;
-  fiber.memoizedState = null;
-  fiber.pendingProps = null;
-  fiber.stateNode = null;
-  fiber.updateQueue = null;
-}
-var hostParent = null,
-  hostParentIsContainer = !1;
-function recursivelyTraverseDeletionEffects(
-  finishedRoot,
-  nearestMountedAncestor,
-  parent
-) {
-  for (parent = parent.child; null !== parent; )
-    commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),
-      (parent = parent.sibling);
-}
-function commitDeletionEffectsOnFiber(
-  finishedRoot,
-  nearestMountedAncestor,
-  deletedFiber
-) {
-  if (injectedHook && "function" === typeof injectedHook.onCommitFiberUnmount)
-    try {
-      injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);
-    } catch (err) {}
-  switch (deletedFiber.tag) {
-    case 26:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      deletedFiber.memoizedState
-        ? deletedFiber.memoizedState.count--
-        : deletedFiber.stateNode &&
-          ((deletedFiber = deletedFiber.stateNode),
-          deletedFiber.parentNode.removeChild(deletedFiber));
-      break;
-    case 27:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-      var prevHostParent = hostParent,
-        prevHostParentIsContainer = hostParentIsContainer;
-      isSingletonScope(deletedFiber.type) &&
-        ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      releaseSingletonInstance(deletedFiber.stateNode);
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      break;
-    case 5:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-    case 6:
-      prevHostParent = hostParent;
-      prevHostParentIsContainer = hostParentIsContainer;
-      hostParent = null;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      if (null !== hostParent)
-        if (hostParentIsContainer)
-          try {
-            (9 === hostParent.nodeType
-              ? hostParent.body
-              : "HTML" === hostParent.nodeName
-                ? hostParent.ownerDocument.body
-                : hostParent
-            ).removeChild(deletedFiber.stateNode);
-          } catch (error) {
-            captureCommitPhaseError(
-              deletedFiber,
-              nearestMountedAncestor,
-              error
-            );
-          }
-        else
-          try {
-            hostParent.removeChild(deletedFiber.stateNode);
-          } catch (error) {
-            captureCommitPhaseError(
-              deletedFiber,
-              nearestMountedAncestor,
-              error
-            );
-          }
-      break;
-    case 18:
-      null !== hostParent &&
-        (hostParentIsContainer
-          ? ((finishedRoot = hostParent),
-            clearHydrationBoundary(
-              9 === finishedRoot.nodeType
-                ? finishedRoot.body
-                : "HTML" === finishedRoot.nodeName
-                  ? finishedRoot.ownerDocument.body
-                  : finishedRoot,
-              deletedFiber.stateNode
-            ),
-            retryIfBlockedOn(finishedRoot))
-          : clearHydrationBoundary(hostParent, deletedFiber.stateNode));
-      break;
-    case 4:
-      prevHostParent = hostParent;
-      prevHostParentIsContainer = hostParentIsContainer;
-      hostParent = deletedFiber.stateNode.containerInfo;
-      hostParentIsContainer = !0;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      break;
-    case 0:
-    case 11:
-    case 14:
-    case 15:
-      commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);
-      offscreenSubtreeWasHidden ||
-        commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 1:
-      offscreenSubtreeWasHidden ||
-        (safelyDetachRef(deletedFiber, nearestMountedAncestor),
-        (prevHostParent = deletedFiber.stateNode),
-        "function" === typeof prevHostParent.componentWillUnmount &&
-          safelyCallComponentWillUnmount(
-            deletedFiber,
-            nearestMountedAncestor,
-            prevHostParent
-          ));
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 21:
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 22:
-      offscreenSubtreeWasHidden =
-        (prevHostParent = offscreenSubtreeWasHidden) ||
-        null !== deletedFiber.memoizedState;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      offscreenSubtreeWasHidden = prevHostParent;
-      break;
-    default:
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-  }
-}
-function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {
-  if (
-    null === finishedWork.memoizedState &&
-    ((finishedRoot = finishedWork.alternate),
-    null !== finishedRoot &&
-      ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))
-  ) {
-    finishedRoot = finishedRoot.dehydrated;
-    try {
-      retryIfBlockedOn(finishedRoot);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-  }
-}
-function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {
-  if (
-    null === finishedWork.memoizedState &&
-    ((finishedRoot = finishedWork.alternate),
-    null !== finishedRoot &&
-      ((finishedRoot = finishedRoot.memoizedState),
-      null !== finishedRoot &&
-        ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))
-  )
-    try {
-      retryIfBlockedOn(finishedRoot);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-}
-function getRetryCache(finishedWork) {
-  switch (finishedWork.tag) {
-    case 31:
-    case 13:
-    case 19:
-      var retryCache = finishedWork.stateNode;
-      null === retryCache &&
-        (retryCache = finishedWork.stateNode = new PossiblyWeakSet());
-      return retryCache;
-    case 22:
-      return (
-        (finishedWork = finishedWork.stateNode),
-        (retryCache = finishedWork._retryCache),
-        null === retryCache &&
-          (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),
-        retryCache
-      );
-    default:
-      throw Error(formatProdErrorMessage(435, finishedWork.tag));
-  }
-}
-function attachSuspenseRetryListeners(finishedWork, wakeables) {
-  var retryCache = getRetryCache(finishedWork);
-  wakeables.forEach(function (wakeable) {
-    if (!retryCache.has(wakeable)) {
-      retryCache.add(wakeable);
-      var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);
-      wakeable.then(retry, retry);
-    }
-  });
-}
-function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (null !== deletions)
-    for (var i = 0; i < deletions.length; i++) {
-      var childToDelete = deletions[i],
-        root = root$jscomp$0,
-        returnFiber = parentFiber,
-        parent = returnFiber;
-      a: for (; null !== parent; ) {
-        switch (parent.tag) {
-          case 27:
-            if (isSingletonScope(parent.type)) {
-              hostParent = parent.stateNode;
-              hostParentIsContainer = !1;
-              break a;
-            }
-            break;
-          case 5:
-            hostParent = parent.stateNode;
-            hostParentIsContainer = !1;
-            break a;
-          case 3:
-          case 4:
-            hostParent = parent.stateNode.containerInfo;
-            hostParentIsContainer = !0;
-            break a;
-        }
-        parent = parent.return;
-      }
-      if (null === hostParent) throw Error(formatProdErrorMessage(160));
-      commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);
-      hostParent = null;
-      hostParentIsContainer = !1;
-      root = childToDelete.alternate;
-      null !== root && (root.return = null);
-      childToDelete.return = null;
-    }
-  if (parentFiber.subtreeFlags & 13886)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),
-        (parentFiber = parentFiber.sibling);
-}
-var currentHoistableRoot = null;
-function commitMutationEffectsOnFiber(finishedWork, root) {
-  var current = finishedWork.alternate,
-    flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 14:
-    case 15:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),
-        commitHookEffectListMount(3, finishedWork),
-        commitHookEffectListUnmount(5, finishedWork, finishedWork.return));
-      break;
-    case 1:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      flags & 64 &&
-        offscreenSubtreeIsHidden &&
-        ((finishedWork = finishedWork.updateQueue),
-        null !== finishedWork &&
-          ((flags = finishedWork.callbacks),
-          null !== flags &&
-            ((current = finishedWork.shared.hiddenCallbacks),
-            (finishedWork.shared.hiddenCallbacks =
-              null === current ? flags : current.concat(flags)))));
-      break;
-    case 26:
-      var hoistableRoot = currentHoistableRoot;
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      if (flags & 4) {
-        var currentResource = null !== current ? current.memoizedState : null;
-        flags = finishedWork.memoizedState;
-        if (null === current)
-          if (null === flags)
-            if (null === finishedWork.stateNode) {
-              a: {
-                flags = finishedWork.type;
-                current = finishedWork.memoizedProps;
-                hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-                b: switch (flags) {
-                  case "title":
-                    currentResource =
-                      hoistableRoot.getElementsByTagName("title")[0];
-                    if (
-                      !currentResource ||
-                      currentResource[internalHoistableMarker] ||
-                      currentResource[internalInstanceKey] ||
-                      "http://www.w3.org/2000/svg" ===
-                        currentResource.namespaceURI ||
-                      currentResource.hasAttribute("itemprop")
-                    )
-                      (currentResource = hoistableRoot.createElement(flags)),
-                        hoistableRoot.head.insertBefore(
-                          currentResource,
-                          hoistableRoot.querySelector("head > title")
-                        );
-                    setInitialProperties(currentResource, flags, current);
-                    currentResource[internalInstanceKey] = finishedWork;
-                    markNodeAsHoistable(currentResource);
-                    flags = currentResource;
-                    break a;
-                  case "link":
-                    var maybeNodes = getHydratableHoistableCache(
-                      "link",
-                      "href",
-                      hoistableRoot
-                    ).get(flags + (current.href || ""));
-                    if (maybeNodes)
-                      for (var i = 0; i < maybeNodes.length; i++)
-                        if (
-                          ((currentResource = maybeNodes[i]),
-                          currentResource.getAttribute("href") ===
-                            (null == current.href || "" === current.href
-                              ? null
-                              : current.href) &&
-                            currentResource.getAttribute("rel") ===
-                              (null == current.rel ? null : current.rel) &&
-                            currentResource.getAttribute("title") ===
-                              (null == current.title ? null : current.title) &&
-                            currentResource.getAttribute("crossorigin") ===
-                              (null == current.crossOrigin
-                                ? null
-                                : current.crossOrigin))
-                        ) {
-                          maybeNodes.splice(i, 1);
-                          break b;
-                        }
-                    currentResource = hoistableRoot.createElement(flags);
-                    setInitialProperties(currentResource, flags, current);
-                    hoistableRoot.head.appendChild(currentResource);
-                    break;
-                  case "meta":
-                    if (
-                      (maybeNodes = getHydratableHoistableCache(
-                        "meta",
-                        "content",
-                        hoistableRoot
-                      ).get(flags + (current.content || "")))
-                    )
-                      for (i = 0; i < maybeNodes.length; i++)
-                        if (
-                          ((currentResource = maybeNodes[i]),
-                          currentResource.getAttribute("content") ===
-                            (null == current.content
-                              ? null
-                              : "" + current.content) &&
-                            currentResource.getAttribute("name") ===
-                              (null == current.name ? null : current.name) &&
-                            currentResource.getAttribute("property") ===
-                              (null == current.property
-                                ? null
-                                : current.property) &&
-                            currentResource.getAttribute("http-equiv") ===
-                              (null == current.httpEquiv
-                                ? null
-                                : current.httpEquiv) &&
-                            currentResource.getAttribute("charset") ===
-                              (null == current.charSet
-                                ? null
-                                : current.charSet))
-                        ) {
-                          maybeNodes.splice(i, 1);
-                          break b;
-                        }
-                    currentResource = hoistableRoot.createElement(flags);
-                    setInitialProperties(currentResource, flags, current);
-                    hoistableRoot.head.appendChild(currentResource);
-                    break;
-                  default:
-                    throw Error(formatProdErrorMessage(468, flags));
-                }
-                currentResource[internalInstanceKey] = finishedWork;
-                markNodeAsHoistable(currentResource);
-                flags = currentResource;
-              }
-              finishedWork.stateNode = flags;
-            } else
-              mountHoistable(
-                hoistableRoot,
-                finishedWork.type,
-                finishedWork.stateNode
-              );
-          else
-            finishedWork.stateNode = acquireResource(
-              hoistableRoot,
-              flags,
-              finishedWork.memoizedProps
-            );
-        else
-          currentResource !== flags
-            ? (null === currentResource
-                ? null !== current.stateNode &&
-                  ((current = current.stateNode),
-                  current.parentNode.removeChild(current))
-                : currentResource.count--,
-              null === flags
-                ? mountHoistable(
-                    hoistableRoot,
-                    finishedWork.type,
-                    finishedWork.stateNode
-                  )
-                : acquireResource(
-                    hoistableRoot,
-                    flags,
-                    finishedWork.memoizedProps
-                  ))
-            : null === flags &&
-              null !== finishedWork.stateNode &&
-              commitHostUpdate(
-                finishedWork,
-                finishedWork.memoizedProps,
-                current.memoizedProps
-              );
-      }
-      break;
-    case 27:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      null !== current &&
-        flags & 4 &&
-        commitHostUpdate(
-          finishedWork,
-          finishedWork.memoizedProps,
-          current.memoizedProps
-        );
-      break;
-    case 5:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      if (finishedWork.flags & 32) {
-        hoistableRoot = finishedWork.stateNode;
-        try {
-          setTextContent(hoistableRoot, "");
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      flags & 4 &&
-        null != finishedWork.stateNode &&
-        ((hoistableRoot = finishedWork.memoizedProps),
-        commitHostUpdate(
-          finishedWork,
-          hoistableRoot,
-          null !== current ? current.memoizedProps : hoistableRoot
-        ));
-      flags & 1024 && (needsFormReset = !0);
-      break;
-    case 6:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      if (flags & 4) {
-        if (null === finishedWork.stateNode)
-          throw Error(formatProdErrorMessage(162));
-        flags = finishedWork.memoizedProps;
-        current = finishedWork.stateNode;
-        try {
-          current.nodeValue = flags;
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      break;
-    case 3:
-      tagCaches = null;
-      hoistableRoot = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(root.containerInfo);
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      currentHoistableRoot = hoistableRoot;
-      commitReconciliationEffects(finishedWork);
-      if (flags & 4 && null !== current && current.memoizedState.isDehydrated)
-        try {
-          retryIfBlockedOn(root.containerInfo);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      needsFormReset &&
-        ((needsFormReset = !1), recursivelyResetForms(finishedWork));
-      break;
-    case 4:
-      flags = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(
-        finishedWork.stateNode.containerInfo
-      );
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      currentHoistableRoot = flags;
-      break;
-    case 12:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      break;
-    case 31:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 13:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      finishedWork.child.flags & 8192 &&
-        (null !== finishedWork.memoizedState) !==
-          (null !== current && null !== current.memoizedState) &&
-        (globalMostRecentFallbackTime = now());
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 22:
-      hoistableRoot = null !== finishedWork.memoizedState;
-      var wasHidden = null !== current && null !== current.memoizedState,
-        prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,
-        prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-      offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;
-      offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-      offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
-      commitReconciliationEffects(finishedWork);
-      if (flags & 8192)
-        a: for (
-          root = finishedWork.stateNode,
-            root._visibility = hoistableRoot
-              ? root._visibility & -2
-              : root._visibility | 1,
-            hoistableRoot &&
-              (null === current ||
-                wasHidden ||
-                offscreenSubtreeIsHidden ||
-                offscreenSubtreeWasHidden ||
-                recursivelyTraverseDisappearLayoutEffects(finishedWork)),
-            current = null,
-            root = finishedWork;
-          ;
-
-        ) {
-          if (5 === root.tag || 26 === root.tag) {
-            if (null === current) {
-              wasHidden = current = root;
-              try {
-                if (((currentResource = wasHidden.stateNode), hoistableRoot))
-                  (maybeNodes = currentResource.style),
-                    "function" === typeof maybeNodes.setProperty
-                      ? maybeNodes.setProperty("display", "none", "important")
-                      : (maybeNodes.display = "none");
-                else {
-                  i = wasHidden.stateNode;
-                  var styleProp = wasHidden.memoizedProps.style,
-                    display =
-                      void 0 !== styleProp &&
-                      null !== styleProp &&
-                      styleProp.hasOwnProperty("display")
-                        ? styleProp.display
-                        : null;
-                  i.style.display =
-                    null == display || "boolean" === typeof display
-                      ? ""
-                      : ("" + display).trim();
-                }
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (6 === root.tag) {
-            if (null === current) {
-              wasHidden = root;
-              try {
-                wasHidden.stateNode.nodeValue = hoistableRoot
-                  ? ""
-                  : wasHidden.memoizedProps;
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (18 === root.tag) {
-            if (null === current) {
-              wasHidden = root;
-              try {
-                var instance = wasHidden.stateNode;
-                hoistableRoot
-                  ? hideOrUnhideDehydratedBoundary(instance, !0)
-                  : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (
-            ((22 !== root.tag && 23 !== root.tag) ||
-              null === root.memoizedState ||
-              root === finishedWork) &&
-            null !== root.child
-          ) {
-            root.child.return = root;
-            root = root.child;
-            continue;
-          }
-          if (root === finishedWork) break a;
-          for (; null === root.sibling; ) {
-            if (null === root.return || root.return === finishedWork) break a;
-            current === root && (current = null);
-            root = root.return;
-          }
-          current === root && (current = null);
-          root.sibling.return = root.return;
-          root = root.sibling;
-        }
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((current = flags.retryQueue),
-          null !== current &&
-            ((flags.retryQueue = null),
-            attachSuspenseRetryListeners(finishedWork, current))));
-      break;
-    case 19:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 30:
-      break;
-    case 21:
-      break;
-    default:
-      recursivelyTraverseMutationEffects(root, finishedWork),
-        commitReconciliationEffects(finishedWork);
-  }
-}
-function commitReconciliationEffects(finishedWork) {
-  var flags = finishedWork.flags;
-  if (flags & 2) {
-    try {
-      for (
-        var hostParentFiber, parentFiber = finishedWork.return;
-        null !== parentFiber;
-
-      ) {
-        if (isHostParent(parentFiber)) {
-          hostParentFiber = parentFiber;
-          break;
-        }
-        parentFiber = parentFiber.return;
-      }
-      if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));
-      switch (hostParentFiber.tag) {
-        case 27:
-          var parent = hostParentFiber.stateNode,
-            before = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(finishedWork, before, parent);
-          break;
-        case 5:
-          var parent$141 = hostParentFiber.stateNode;
-          hostParentFiber.flags & 32 &&
-            (setTextContent(parent$141, ""), (hostParentFiber.flags &= -33));
-          var before$142 = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(finishedWork, before$142, parent$141);
-          break;
-        case 3:
-        case 4:
-          var parent$143 = hostParentFiber.stateNode.containerInfo,
-            before$144 = getHostSibling(finishedWork);
-          insertOrAppendPlacementNodeIntoContainer(
-            finishedWork,
-            before$144,
-            parent$143
-          );
-          break;
-        default:
-          throw Error(formatProdErrorMessage(161));
-      }
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-    finishedWork.flags &= -3;
-  }
-  flags & 4096 && (finishedWork.flags &= -4097);
-}
-function recursivelyResetForms(parentFiber) {
-  if (parentFiber.subtreeFlags & 1024)
-    for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-      var fiber = parentFiber;
-      recursivelyResetForms(fiber);
-      5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();
-      parentFiber = parentFiber.sibling;
-    }
-}
-function recursivelyTraverseLayoutEffects(root, parentFiber) {
-  if (parentFiber.subtreeFlags & 8772)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),
-        (parentFiber = parentFiber.sibling);
-}
-function recursivelyTraverseDisappearLayoutEffects(parentFiber) {
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    var finishedWork = parentFiber;
-    switch (finishedWork.tag) {
-      case 0:
-      case 11:
-      case 14:
-      case 15:
-        commitHookEffectListUnmount(4, finishedWork, finishedWork.return);
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 1:
-        safelyDetachRef(finishedWork, finishedWork.return);
-        var instance = finishedWork.stateNode;
-        "function" === typeof instance.componentWillUnmount &&
-          safelyCallComponentWillUnmount(
-            finishedWork,
-            finishedWork.return,
-            instance
-          );
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 27:
-        releaseSingletonInstance(finishedWork.stateNode);
-      case 26:
-      case 5:
-        safelyDetachRef(finishedWork, finishedWork.return);
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 22:
-        null === finishedWork.memoizedState &&
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 30:
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      default:
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-    }
-    parentFiber = parentFiber.sibling;
-  }
-}
-function recursivelyTraverseReappearLayoutEffects(
-  finishedRoot$jscomp$0,
-  parentFiber,
-  includeWorkInProgressEffects
-) {
-  includeWorkInProgressEffects =
-    includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    var current = parentFiber.alternate,
-      finishedRoot = finishedRoot$jscomp$0,
-      finishedWork = parentFiber,
-      flags = finishedWork.flags;
-    switch (finishedWork.tag) {
-      case 0:
-      case 11:
-      case 15:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        commitHookEffectListMount(4, finishedWork);
-        break;
-      case 1:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        current = finishedWork;
-        finishedRoot = current.stateNode;
-        if ("function" === typeof finishedRoot.componentDidMount)
-          try {
-            finishedRoot.componentDidMount();
-          } catch (error) {
-            captureCommitPhaseError(current, current.return, error);
-          }
-        current = finishedWork;
-        finishedRoot = current.updateQueue;
-        if (null !== finishedRoot) {
-          var instance = current.stateNode;
-          try {
-            var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;
-            if (null !== hiddenCallbacks)
-              for (
-                finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;
-                finishedRoot < hiddenCallbacks.length;
-                finishedRoot++
-              )
-                callCallback(hiddenCallbacks[finishedRoot], instance);
-          } catch (error) {
-            captureCommitPhaseError(current, current.return, error);
-          }
-        }
-        includeWorkInProgressEffects &&
-          flags & 64 &&
-          commitClassCallbacks(finishedWork);
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 27:
-        commitHostSingletonAcquisition(finishedWork);
-      case 26:
-      case 5:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          null === current &&
-          flags & 4 &&
-          commitHostMount(finishedWork);
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 12:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        break;
-      case 31:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          flags & 4 &&
-          commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-        break;
-      case 13:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          flags & 4 &&
-          commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-        break;
-      case 22:
-        null === finishedWork.memoizedState &&
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 30:
-        break;
-      default:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-    }
-    parentFiber = parentFiber.sibling;
-  }
-}
-function commitOffscreenPassiveMountEffects(current, finishedWork) {
-  var previousCache = null;
-  null !== current &&
-    null !== current.memoizedState &&
-    null !== current.memoizedState.cachePool &&
-    (previousCache = current.memoizedState.cachePool.pool);
-  current = null;
-  null !== finishedWork.memoizedState &&
-    null !== finishedWork.memoizedState.cachePool &&
-    (current = finishedWork.memoizedState.cachePool.pool);
-  current !== previousCache &&
-    (null != current && current.refCount++,
-    null != previousCache && releaseCache(previousCache));
-}
-function commitCachePassiveMountEffect(current, finishedWork) {
-  current = null;
-  null !== finishedWork.alternate &&
-    (current = finishedWork.alternate.memoizedState.cache);
-  finishedWork = finishedWork.memoizedState.cache;
-  finishedWork !== current &&
-    (finishedWork.refCount++, null != current && releaseCache(current));
-}
-function recursivelyTraversePassiveMountEffects(
-  root,
-  parentFiber,
-  committedLanes,
-  committedTransitions
-) {
-  if (parentFiber.subtreeFlags & 10256)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitPassiveMountOnFiber(
-        root,
-        parentFiber,
-        committedLanes,
-        committedTransitions
-      ),
-        (parentFiber = parentFiber.sibling);
-}
-function commitPassiveMountOnFiber(
-  finishedRoot,
-  finishedWork,
-  committedLanes,
-  committedTransitions
-) {
-  var flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      flags & 2048 && commitHookEffectListMount(9, finishedWork);
-      break;
-    case 1:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      break;
-    case 3:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      flags & 2048 &&
-        ((finishedRoot = null),
-        null !== finishedWork.alternate &&
-          (finishedRoot = finishedWork.alternate.memoizedState.cache),
-        (finishedWork = finishedWork.memoizedState.cache),
-        finishedWork !== finishedRoot &&
-          (finishedWork.refCount++,
-          null != finishedRoot && releaseCache(finishedRoot)));
-      break;
-    case 12:
-      if (flags & 2048) {
-        recursivelyTraversePassiveMountEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions
-        );
-        finishedRoot = finishedWork.stateNode;
-        try {
-          var _finishedWork$memoize2 = finishedWork.memoizedProps,
-            id = _finishedWork$memoize2.id,
-            onPostCommit = _finishedWork$memoize2.onPostCommit;
-          "function" === typeof onPostCommit &&
-            onPostCommit(
-              id,
-              null === finishedWork.alternate ? "mount" : "update",
-              finishedRoot.passiveEffectDuration,
-              -0
-            );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      } else
-        recursivelyTraversePassiveMountEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions
-        );
-      break;
-    case 31:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      break;
-    case 13:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      break;
-    case 23:
-      break;
-    case 22:
-      _finishedWork$memoize2 = finishedWork.stateNode;
-      id = finishedWork.alternate;
-      null !== finishedWork.memoizedState
-        ? _finishedWork$memoize2._visibility & 2
-          ? recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions
-            )
-          : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)
-        : _finishedWork$memoize2._visibility & 2
-          ? recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions
-            )
-          : ((_finishedWork$memoize2._visibility |= 2),
-            recursivelyTraverseReconnectPassiveEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              0 !== (finishedWork.subtreeFlags & 10256) || !1
-            ));
-      flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);
-      break;
-    case 24:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-      flags & 2048 &&
-        commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-      break;
-    default:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions
-      );
-  }
-}
-function recursivelyTraverseReconnectPassiveEffects(
-  finishedRoot$jscomp$0,
-  parentFiber,
-  committedLanes$jscomp$0,
-  committedTransitions$jscomp$0,
-  includeWorkInProgressEffects
-) {
-  includeWorkInProgressEffects =
-    includeWorkInProgressEffects &&
-    (0 !== (parentFiber.subtreeFlags & 10256) || !1);
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    var finishedRoot = finishedRoot$jscomp$0,
-      finishedWork = parentFiber,
-      committedLanes = committedLanes$jscomp$0,
-      committedTransitions = committedTransitions$jscomp$0,
-      flags = finishedWork.flags;
-    switch (finishedWork.tag) {
-      case 0:
-      case 11:
-      case 15:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects
-        );
-        commitHookEffectListMount(8, finishedWork);
-        break;
-      case 23:
-        break;
-      case 22:
-        var instance = finishedWork.stateNode;
-        null !== finishedWork.memoizedState
-          ? instance._visibility & 2
-            ? recursivelyTraverseReconnectPassiveEffects(
-                finishedRoot,
-                finishedWork,
-                committedLanes,
-                committedTransitions,
-                includeWorkInProgressEffects
-              )
-            : recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                finishedWork
-              )
-          : ((instance._visibility |= 2),
-            recursivelyTraverseReconnectPassiveEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              includeWorkInProgressEffects
-            ));
-        includeWorkInProgressEffects &&
-          flags & 2048 &&
-          commitOffscreenPassiveMountEffects(
-            finishedWork.alternate,
-            finishedWork
-          );
-        break;
-      case 24:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          flags & 2048 &&
-          commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-        break;
-      default:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects
-        );
-    }
-    parentFiber = parentFiber.sibling;
-  }
-}
-function recursivelyTraverseAtomicPassiveEffects(
-  finishedRoot$jscomp$0,
-  parentFiber
-) {
-  if (parentFiber.subtreeFlags & 10256)
-    for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-      var finishedRoot = finishedRoot$jscomp$0,
-        finishedWork = parentFiber,
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 22:
-          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);
-          flags & 2048 &&
-            commitOffscreenPassiveMountEffects(
-              finishedWork.alternate,
-              finishedWork
-            );
-          break;
-        case 24:
-          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);
-          flags & 2048 &&
-            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-          break;
-        default:
-          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);
-      }
-      parentFiber = parentFiber.sibling;
-    }
-}
-var suspenseyCommitFlag = 8192;
-function recursivelyAccumulateSuspenseyCommit(
-  parentFiber,
-  committedLanes,
-  suspendedState
-) {
-  if (parentFiber.subtreeFlags & suspenseyCommitFlag)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      accumulateSuspenseyCommitOnFiber(
-        parentFiber,
-        committedLanes,
-        suspendedState
-      ),
-        (parentFiber = parentFiber.sibling);
-}
-function accumulateSuspenseyCommitOnFiber(
-  fiber,
-  committedLanes,
-  suspendedState
-) {
-  switch (fiber.tag) {
-    case 26:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      fiber.flags & suspenseyCommitFlag &&
-        null !== fiber.memoizedState &&
-        suspendResource(
-          suspendedState,
-          currentHoistableRoot,
-          fiber.memoizedState,
-          fiber.memoizedProps
-        );
-      break;
-    case 5:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      break;
-    case 3:
-    case 4:
-      var previousHoistableRoot = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      currentHoistableRoot = previousHoistableRoot;
-      break;
-    case 22:
-      null === fiber.memoizedState &&
-        ((previousHoistableRoot = fiber.alternate),
-        null !== previousHoistableRoot &&
-        null !== previousHoistableRoot.memoizedState
-          ? ((previousHoistableRoot = suspenseyCommitFlag),
-            (suspenseyCommitFlag = 16777216),
-            recursivelyAccumulateSuspenseyCommit(
-              fiber,
-              committedLanes,
-              suspendedState
-            ),
-            (suspenseyCommitFlag = previousHoistableRoot))
-          : recursivelyAccumulateSuspenseyCommit(
-              fiber,
-              committedLanes,
-              suspendedState
-            ));
-      break;
-    default:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-  }
-}
-function detachAlternateSiblings(parentFiber) {
-  var previousFiber = parentFiber.alternate;
-  if (
-    null !== previousFiber &&
-    ((parentFiber = previousFiber.child), null !== parentFiber)
-  ) {
-    previousFiber.child = null;
-    do
-      (previousFiber = parentFiber.sibling),
-        (parentFiber.sibling = null),
-        (parentFiber = previousFiber);
-    while (null !== parentFiber);
-  }
-}
-function recursivelyTraversePassiveUnmountEffects(parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (0 !== (parentFiber.flags & 16)) {
-    if (null !== deletions)
-      for (var i = 0; i < deletions.length; i++) {
-        var childToDelete = deletions[i];
-        nextEffect = childToDelete;
-        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-          childToDelete,
-          parentFiber
-        );
-      }
-    detachAlternateSiblings(parentFiber);
-  }
-  if (parentFiber.subtreeFlags & 10256)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitPassiveUnmountOnFiber(parentFiber),
-        (parentFiber = parentFiber.sibling);
-}
-function commitPassiveUnmountOnFiber(finishedWork) {
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      finishedWork.flags & 2048 &&
-        commitHookEffectListUnmount(9, finishedWork, finishedWork.return);
-      break;
-    case 3:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      break;
-    case 12:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      break;
-    case 22:
-      var instance = finishedWork.stateNode;
-      null !== finishedWork.memoizedState &&
-      instance._visibility & 2 &&
-      (null === finishedWork.return || 13 !== finishedWork.return.tag)
-        ? ((instance._visibility &= -3),
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork))
-        : recursivelyTraversePassiveUnmountEffects(finishedWork);
-      break;
-    default:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-  }
-}
-function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (0 !== (parentFiber.flags & 16)) {
-    if (null !== deletions)
-      for (var i = 0; i < deletions.length; i++) {
-        var childToDelete = deletions[i];
-        nextEffect = childToDelete;
-        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-          childToDelete,
-          parentFiber
-        );
-      }
-    detachAlternateSiblings(parentFiber);
-  }
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    deletions = parentFiber;
-    switch (deletions.tag) {
-      case 0:
-      case 11:
-      case 15:
-        commitHookEffectListUnmount(8, deletions, deletions.return);
-        recursivelyTraverseDisconnectPassiveEffects(deletions);
-        break;
-      case 22:
-        i = deletions.stateNode;
-        i._visibility & 2 &&
-          ((i._visibility &= -3),
-          recursivelyTraverseDisconnectPassiveEffects(deletions));
-        break;
-      default:
-        recursivelyTraverseDisconnectPassiveEffects(deletions);
-    }
-    parentFiber = parentFiber.sibling;
-  }
-}
-function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-  deletedSubtreeRoot,
-  nearestMountedAncestor
-) {
-  for (; null !== nextEffect; ) {
-    var fiber = nextEffect;
-    switch (fiber.tag) {
-      case 0:
-      case 11:
-      case 15:
-        commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);
-        break;
-      case 23:
-      case 22:
-        if (
-          null !== fiber.memoizedState &&
-          null !== fiber.memoizedState.cachePool
-        ) {
-          var cache = fiber.memoizedState.cachePool.pool;
-          null != cache && cache.refCount++;
-        }
-        break;
-      case 24:
-        releaseCache(fiber.memoizedState.cache);
-    }
-    cache = fiber.child;
-    if (null !== cache) (cache.return = fiber), (nextEffect = cache);
-    else
-      a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {
-        cache = nextEffect;
-        var sibling = cache.sibling,
-          returnFiber = cache.return;
-        detachFiberAfterEffects(cache);
-        if (cache === fiber) {
-          nextEffect = null;
-          break a;
-        }
-        if (null !== sibling) {
-          sibling.return = returnFiber;
-          nextEffect = sibling;
-          break a;
-        }
-        nextEffect = returnFiber;
-      }
-  }
-}
-var DefaultAsyncDispatcher = {
-    getCacheForType: function (resourceType) {
-      var cache = readContext(CacheContext),
-        cacheForType = cache.data.get(resourceType);
-      void 0 === cacheForType &&
-        ((cacheForType = resourceType()),
-        cache.data.set(resourceType, cacheForType));
-      return cacheForType;
-    },
-    cacheSignal: function () {
-      return readContext(CacheContext).controller.signal;
-    }
-  },
-  PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map,
-  executionContext = 0,
-  workInProgressRoot = null,
-  workInProgress = null,
-  workInProgressRootRenderLanes = 0,
-  workInProgressSuspendedReason = 0,
-  workInProgressThrownValue = null,
-  workInProgressRootDidSkipSuspendedSiblings = !1,
-  workInProgressRootIsPrerendering = !1,
-  workInProgressRootDidAttachPingListener = !1,
-  entangledRenderLanes = 0,
-  workInProgressRootExitStatus = 0,
-  workInProgressRootSkippedLanes = 0,
-  workInProgressRootInterleavedUpdatedLanes = 0,
-  workInProgressRootPingedLanes = 0,
-  workInProgressDeferredLane = 0,
-  workInProgressSuspendedRetryLanes = 0,
-  workInProgressRootConcurrentErrors = null,
-  workInProgressRootRecoverableErrors = null,
-  workInProgressRootDidIncludeRecursiveRenderUpdate = !1,
-  globalMostRecentFallbackTime = 0,
-  globalMostRecentTransitionTime = 0,
-  workInProgressRootRenderTargetTime = Infinity,
-  workInProgressTransitions = null,
-  legacyErrorBoundariesThatAlreadyFailed = null,
-  pendingEffectsStatus = 0,
-  pendingEffectsRoot = null,
-  pendingFinishedWork = null,
-  pendingEffectsLanes = 0,
-  pendingEffectsRemainingLanes = 0,
-  pendingPassiveTransitions = null,
-  pendingRecoverableErrors = null,
-  nestedUpdateCount = 0,
-  rootWithNestedUpdates = null;
-function requestUpdateLane() {
-  return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes
-    ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes
-    : null !== ReactSharedInternals.T
-      ? requestTransitionLane()
-      : resolveUpdatePriority();
-}
-function requestDeferredLane() {
-  if (0 === workInProgressDeferredLane)
-    if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {
-      var lane = nextTransitionDeferredLane;
-      nextTransitionDeferredLane <<= 1;
-      0 === (nextTransitionDeferredLane & 3932160) &&
-        (nextTransitionDeferredLane = 262144);
-      workInProgressDeferredLane = lane;
-    } else workInProgressDeferredLane = 536870912;
-  lane = suspenseHandlerStackCursor.current;
-  null !== lane && (lane.flags |= 32);
-  return workInProgressDeferredLane;
-}
-function scheduleUpdateOnFiber(root, fiber, lane) {
-  if (
-    (root === workInProgressRoot &&
-      (2 === workInProgressSuspendedReason ||
-        9 === workInProgressSuspendedReason)) ||
-    null !== root.cancelPendingCommit
-  )
-    prepareFreshStack(root, 0),
-      markRootSuspended(
-        root,
-        workInProgressRootRenderLanes,
-        workInProgressDeferredLane,
-        !1
-      );
-  markRootUpdated$1(root, lane);
-  if (0 === (executionContext & 2) || root !== workInProgressRoot)
-    root === workInProgressRoot &&
-      (0 === (executionContext & 2) &&
-        (workInProgressRootInterleavedUpdatedLanes |= lane),
-      4 === workInProgressRootExitStatus &&
-        markRootSuspended(
-          root,
-          workInProgressRootRenderLanes,
-          workInProgressDeferredLane,
-          !1
-        )),
-      ensureRootIsScheduled(root);
-}
-function performWorkOnRoot(root$jscomp$0, lanes, forceSync) {
-  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));
-  var shouldTimeSlice =
-      (!forceSync &&
-        0 === (lanes & 127) &&
-        0 === (lanes & root$jscomp$0.expiredLanes)) ||
-      checkIfRootIsPrerendering(root$jscomp$0, lanes),
-    exitStatus = shouldTimeSlice
-      ? renderRootConcurrent(root$jscomp$0, lanes)
-      : renderRootSync(root$jscomp$0, lanes, !0),
-    renderWasConcurrent = shouldTimeSlice;
-  do {
-    if (0 === exitStatus) {
-      workInProgressRootIsPrerendering &&
-        !shouldTimeSlice &&
-        markRootSuspended(root$jscomp$0, lanes, 0, !1);
-      break;
-    } else {
-      forceSync = root$jscomp$0.current.alternate;
-      if (
-        renderWasConcurrent &&
-        !isRenderConsistentWithExternalStores(forceSync)
-      ) {
-        exitStatus = renderRootSync(root$jscomp$0, lanes, !1);
-        renderWasConcurrent = !1;
-        continue;
-      }
-      if (2 === exitStatus) {
-        renderWasConcurrent = lanes;
-        if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)
-          var JSCompiler_inline_result = 0;
-        else
-          (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),
-            (JSCompiler_inline_result =
-              0 !== JSCompiler_inline_result
-                ? JSCompiler_inline_result
-                : JSCompiler_inline_result & 536870912
-                  ? 536870912
-                  : 0);
-        if (0 !== JSCompiler_inline_result) {
-          lanes = JSCompiler_inline_result;
-          a: {
-            var root = root$jscomp$0;
-            exitStatus = workInProgressRootConcurrentErrors;
-            var wasRootDehydrated = root.current.memoizedState.isDehydrated;
-            wasRootDehydrated &&
-              (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);
-            JSCompiler_inline_result = renderRootSync(
-              root,
-              JSCompiler_inline_result,
-              !1
-            );
-            if (2 !== JSCompiler_inline_result) {
-              if (
-                workInProgressRootDidAttachPingListener &&
-                !wasRootDehydrated
-              ) {
-                root.errorRecoveryDisabledLanes |= renderWasConcurrent;
-                workInProgressRootInterleavedUpdatedLanes |=
-                  renderWasConcurrent;
-                exitStatus = 4;
-                break a;
-              }
-              renderWasConcurrent = workInProgressRootRecoverableErrors;
-              workInProgressRootRecoverableErrors = exitStatus;
-              null !== renderWasConcurrent &&
-                (null === workInProgressRootRecoverableErrors
-                  ? (workInProgressRootRecoverableErrors = renderWasConcurrent)
-                  : workInProgressRootRecoverableErrors.push.apply(
-                      workInProgressRootRecoverableErrors,
-                      renderWasConcurrent
-                    ));
-            }
-            exitStatus = JSCompiler_inline_result;
-          }
-          renderWasConcurrent = !1;
-          if (2 !== exitStatus) continue;
-        }
-      }
-      if (1 === exitStatus) {
-        prepareFreshStack(root$jscomp$0, 0);
-        markRootSuspended(root$jscomp$0, lanes, 0, !0);
-        break;
-      }
-      a: {
-        shouldTimeSlice = root$jscomp$0;
-        renderWasConcurrent = exitStatus;
-        switch (renderWasConcurrent) {
-          case 0:
-          case 1:
-            throw Error(formatProdErrorMessage(345));
-          case 4:
-            if ((lanes & 4194048) !== lanes) break;
-          case 6:
-            markRootSuspended(
-              shouldTimeSlice,
-              lanes,
-              workInProgressDeferredLane,
-              !workInProgressRootDidSkipSuspendedSiblings
-            );
-            break a;
-          case 2:
-            workInProgressRootRecoverableErrors = null;
-            break;
-          case 3:
-          case 5:
-            break;
-          default:
-            throw Error(formatProdErrorMessage(329));
-        }
-        if (
-          (lanes & 62914560) === lanes &&
-          ((exitStatus = globalMostRecentFallbackTime + 300 - now()),
-          10 < exitStatus)
-        ) {
-          markRootSuspended(
-            shouldTimeSlice,
-            lanes,
-            workInProgressDeferredLane,
-            !workInProgressRootDidSkipSuspendedSiblings
-          );
-          if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;
-          pendingEffectsLanes = lanes;
-          shouldTimeSlice.timeoutHandle = scheduleTimeout(
-            commitRootWhenReady.bind(
-              null,
-              shouldTimeSlice,
-              forceSync,
-              workInProgressRootRecoverableErrors,
-              workInProgressTransitions,
-              workInProgressRootDidIncludeRecursiveRenderUpdate,
-              lanes,
-              workInProgressDeferredLane,
-              workInProgressRootInterleavedUpdatedLanes,
-              workInProgressSuspendedRetryLanes,
-              workInProgressRootDidSkipSuspendedSiblings,
-              renderWasConcurrent,
-              "Throttled",
-              -0,
-              0
-            ),
-            exitStatus
-          );
-          break a;
-        }
-        commitRootWhenReady(
-          shouldTimeSlice,
-          forceSync,
-          workInProgressRootRecoverableErrors,
-          workInProgressTransitions,
-          workInProgressRootDidIncludeRecursiveRenderUpdate,
-          lanes,
-          workInProgressDeferredLane,
-          workInProgressRootInterleavedUpdatedLanes,
-          workInProgressSuspendedRetryLanes,
-          workInProgressRootDidSkipSuspendedSiblings,
-          renderWasConcurrent,
-          null,
-          -0,
-          0
-        );
-      }
-    }
-    break;
-  } while (1);
-  ensureRootIsScheduled(root$jscomp$0);
-}
-function commitRootWhenReady(
-  root,
-  finishedWork,
-  recoverableErrors,
-  transitions,
-  didIncludeRenderPhaseUpdate,
-  lanes,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes,
-  didSkipSuspendedSiblings,
-  exitStatus,
-  suspendedCommitReason,
-  completedRenderStartTime,
-  completedRenderEndTime
-) {
-  root.timeoutHandle = -1;
-  suspendedCommitReason = finishedWork.subtreeFlags;
-  if (
-    suspendedCommitReason & 8192 ||
-    16785408 === (suspendedCommitReason & 16785408)
-  ) {
-    suspendedCommitReason = {
-      stylesheets: null,
-      count: 0,
-      imgCount: 0,
-      imgBytes: 0,
-      suspenseyImages: [],
-      waitingForImages: !0,
-      waitingForViewTransition: !1,
-      unsuspend: noop$1
-    };
-    accumulateSuspenseyCommitOnFiber(
-      finishedWork,
-      lanes,
-      suspendedCommitReason
-    );
-    var timeoutOffset =
-      (lanes & 62914560) === lanes
-        ? globalMostRecentFallbackTime - now()
-        : (lanes & 4194048) === lanes
-          ? globalMostRecentTransitionTime - now()
-          : 0;
-    timeoutOffset = waitForCommitToBeReady(
-      suspendedCommitReason,
-      timeoutOffset
-    );
-    if (null !== timeoutOffset) {
-      pendingEffectsLanes = lanes;
-      root.cancelPendingCommit = timeoutOffset(
-        commitRoot.bind(
-          null,
-          root,
-          finishedWork,
-          lanes,
-          recoverableErrors,
-          transitions,
-          didIncludeRenderPhaseUpdate,
-          spawnedLane,
-          updatedLanes,
-          suspendedRetryLanes,
-          exitStatus,
-          suspendedCommitReason,
-          null,
-          completedRenderStartTime,
-          completedRenderEndTime
-        )
-      );
-      markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);
-      return;
-    }
-  }
-  commitRoot(
-    root,
-    finishedWork,
-    lanes,
-    recoverableErrors,
-    transitions,
-    didIncludeRenderPhaseUpdate,
-    spawnedLane,
-    updatedLanes,
-    suspendedRetryLanes
-  );
-}
-function isRenderConsistentWithExternalStores(finishedWork) {
-  for (var node = finishedWork; ; ) {
-    var tag = node.tag;
-    if (
-      (0 === tag || 11 === tag || 15 === tag) &&
-      node.flags & 16384 &&
-      ((tag = node.updateQueue),
-      null !== tag && ((tag = tag.stores), null !== tag))
-    )
-      for (var i = 0; i < tag.length; i++) {
-        var check = tag[i],
-          getSnapshot = check.getSnapshot;
-        check = check.value;
-        try {
-          if (!objectIs(getSnapshot(), check)) return !1;
-        } catch (error) {
-          return !1;
-        }
-      }
-    tag = node.child;
-    if (node.subtreeFlags & 16384 && null !== tag)
-      (tag.return = node), (node = tag);
-    else {
-      if (node === finishedWork) break;
-      for (; null === node.sibling; ) {
-        if (null === node.return || node.return === finishedWork) return !0;
-        node = node.return;
-      }
-      node.sibling.return = node.return;
-      node = node.sibling;
-    }
-  }
-  return !0;
-}
-function markRootSuspended(
-  root,
-  suspendedLanes,
-  spawnedLane,
-  didAttemptEntireTree
-) {
-  suspendedLanes &= ~workInProgressRootPingedLanes;
-  suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
-  root.suspendedLanes |= suspendedLanes;
-  root.pingedLanes &= ~suspendedLanes;
-  didAttemptEntireTree && (root.warmLanes |= suspendedLanes);
-  didAttemptEntireTree = root.expirationTimes;
-  for (var lanes = suspendedLanes; 0 < lanes; ) {
-    var index$6 = 31 - clz32(lanes),
-      lane = 1 << index$6;
-    didAttemptEntireTree[index$6] = -1;
-    lanes &= ~lane;
-  }
-  0 !== spawnedLane &&
-    markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);
-}
-function flushSyncWork$1() {
-  return 0 === (executionContext & 6)
-    ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)
-    : !0;
-}
-function resetWorkInProgressStack() {
-  if (null !== workInProgress) {
-    if (0 === workInProgressSuspendedReason)
-      var interruptedWork = workInProgress.return;
-    else
-      (interruptedWork = workInProgress),
-        (lastContextDependency = currentlyRenderingFiber$1 = null),
-        resetHooksOnUnwind(interruptedWork),
-        (thenableState$1 = null),
-        (thenableIndexCounter$1 = 0),
-        (interruptedWork = workInProgress);
-    for (; null !== interruptedWork; )
-      unwindInterruptedWork(interruptedWork.alternate, interruptedWork),
-        (interruptedWork = interruptedWork.return);
-    workInProgress = null;
-  }
-}
-function prepareFreshStack(root, lanes) {
-  var timeoutHandle = root.timeoutHandle;
-  -1 !== timeoutHandle &&
-    ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));
-  timeoutHandle = root.cancelPendingCommit;
-  null !== timeoutHandle &&
-    ((root.cancelPendingCommit = null), timeoutHandle());
-  pendingEffectsLanes = 0;
-  resetWorkInProgressStack();
-  workInProgressRoot = root;
-  workInProgress = timeoutHandle = createWorkInProgress(root.current, null);
-  workInProgressRootRenderLanes = lanes;
-  workInProgressSuspendedReason = 0;
-  workInProgressThrownValue = null;
-  workInProgressRootDidSkipSuspendedSiblings = !1;
-  workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);
-  workInProgressRootDidAttachPingListener = !1;
-  workInProgressSuspendedRetryLanes =
-    workInProgressDeferredLane =
-    workInProgressRootPingedLanes =
-    workInProgressRootInterleavedUpdatedLanes =
-    workInProgressRootSkippedLanes =
-    workInProgressRootExitStatus =
-      0;
-  workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =
-    null;
-  workInProgressRootDidIncludeRecursiveRenderUpdate = !1;
-  0 !== (lanes & 8) && (lanes |= lanes & 32);
-  var allEntangledLanes = root.entangledLanes;
-  if (0 !== allEntangledLanes)
-    for (
-      root = root.entanglements, allEntangledLanes &= lanes;
-      0 < allEntangledLanes;
-
-    ) {
-      var index$4 = 31 - clz32(allEntangledLanes),
-        lane = 1 << index$4;
-      lanes |= root[index$4];
-      allEntangledLanes &= ~lane;
-    }
-  entangledRenderLanes = lanes;
-  finishQueueingConcurrentUpdates();
-  return timeoutHandle;
-}
-function handleThrow(root, thrownValue) {
-  currentlyRenderingFiber = null;
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  thrownValue === SuspenseException || thrownValue === SuspenseActionException
-    ? ((thrownValue = getSuspendedThenable()),
-      (workInProgressSuspendedReason = 3))
-    : thrownValue === SuspenseyCommitException
-      ? ((thrownValue = getSuspendedThenable()),
-        (workInProgressSuspendedReason = 4))
-      : (workInProgressSuspendedReason =
-          thrownValue === SelectiveHydrationException
-            ? 8
-            : null !== thrownValue &&
-                "object" === typeof thrownValue &&
-                "function" === typeof thrownValue.then
-              ? 6
-              : 1);
-  workInProgressThrownValue = thrownValue;
-  null === workInProgress &&
-    ((workInProgressRootExitStatus = 1),
-    logUncaughtError(
-      root,
-      createCapturedValueAtFiber(thrownValue, root.current)
-    ));
-}
-function shouldRemainOnPreviousScreen() {
-  var handler = suspenseHandlerStackCursor.current;
-  return null === handler
-    ? !0
-    : (workInProgressRootRenderLanes & 4194048) ===
-        workInProgressRootRenderLanes
-      ? null === shellBoundary
-        ? !0
-        : !1
-      : (workInProgressRootRenderLanes & 62914560) ===
-            workInProgressRootRenderLanes ||
-          0 !== (workInProgressRootRenderLanes & 536870912)
-        ? handler === shellBoundary
-        : !1;
-}
-function pushDispatcher() {
-  var prevDispatcher = ReactSharedInternals.H;
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;
-}
-function pushAsyncDispatcher() {
-  var prevAsyncDispatcher = ReactSharedInternals.A;
-  ReactSharedInternals.A = DefaultAsyncDispatcher;
-  return prevAsyncDispatcher;
-}
-function renderDidSuspendDelayIfPossible() {
-  workInProgressRootExitStatus = 4;
-  workInProgressRootDidSkipSuspendedSiblings ||
-    ((workInProgressRootRenderLanes & 4194048) !==
-      workInProgressRootRenderLanes &&
-      null !== suspenseHandlerStackCursor.current) ||
-    (workInProgressRootIsPrerendering = !0);
-  (0 === (workInProgressRootSkippedLanes & 134217727) &&
-    0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||
-    null === workInProgressRoot ||
-    markRootSuspended(
-      workInProgressRoot,
-      workInProgressRootRenderLanes,
-      workInProgressDeferredLane,
-      !1
-    );
-}
-function renderRootSync(root, lanes, shouldYieldForPrerendering) {
-  var prevExecutionContext = executionContext;
-  executionContext |= 2;
-  var prevDispatcher = pushDispatcher(),
-    prevAsyncDispatcher = pushAsyncDispatcher();
-  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)
-    (workInProgressTransitions = null), prepareFreshStack(root, lanes);
-  lanes = !1;
-  var exitStatus = workInProgressRootExitStatus;
-  a: do
-    try {
-      if (0 !== workInProgressSuspendedReason && null !== workInProgress) {
-        var unitOfWork = workInProgress,
-          thrownValue = workInProgressThrownValue;
-        switch (workInProgressSuspendedReason) {
-          case 8:
-            resetWorkInProgressStack();
-            exitStatus = 6;
-            break a;
-          case 3:
-          case 2:
-          case 9:
-          case 6:
-            null === suspenseHandlerStackCursor.current && (lanes = !0);
-            var reason = workInProgressSuspendedReason;
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-            if (
-              shouldYieldForPrerendering &&
-              workInProgressRootIsPrerendering
-            ) {
-              exitStatus = 0;
-              break a;
-            }
-            break;
-          default:
-            (reason = workInProgressSuspendedReason),
-              (workInProgressSuspendedReason = 0),
-              (workInProgressThrownValue = null),
-              throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-        }
-      }
-      workLoopSync();
-      exitStatus = workInProgressRootExitStatus;
-      break;
-    } catch (thrownValue$165) {
-      handleThrow(root, thrownValue$165);
-    }
-  while (1);
-  lanes && root.shellSuspendCounter++;
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  executionContext = prevExecutionContext;
-  ReactSharedInternals.H = prevDispatcher;
-  ReactSharedInternals.A = prevAsyncDispatcher;
-  null === workInProgress &&
-    ((workInProgressRoot = null),
-    (workInProgressRootRenderLanes = 0),
-    finishQueueingConcurrentUpdates());
-  return exitStatus;
-}
-function workLoopSync() {
-  for (; null !== workInProgress; ) performUnitOfWork(workInProgress);
-}
-function renderRootConcurrent(root, lanes) {
-  var prevExecutionContext = executionContext;
-  executionContext |= 2;
-  var prevDispatcher = pushDispatcher(),
-    prevAsyncDispatcher = pushAsyncDispatcher();
-  workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes
-    ? ((workInProgressTransitions = null),
-      (workInProgressRootRenderTargetTime = now() + 500),
-      prepareFreshStack(root, lanes))
-    : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(
-        root,
-        lanes
-      ));
-  a: do
-    try {
-      if (0 !== workInProgressSuspendedReason && null !== workInProgress) {
-        lanes = workInProgress;
-        var thrownValue = workInProgressThrownValue;
-        b: switch (workInProgressSuspendedReason) {
-          case 1:
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);
-            break;
-          case 2:
-          case 9:
-            if (isThenableResolved(thrownValue)) {
-              workInProgressSuspendedReason = 0;
-              workInProgressThrownValue = null;
-              replaySuspendedUnitOfWork(lanes);
-              break;
-            }
-            lanes = function () {
-              (2 !== workInProgressSuspendedReason &&
-                9 !== workInProgressSuspendedReason) ||
-                workInProgressRoot !== root ||
-                (workInProgressSuspendedReason = 7);
-              ensureRootIsScheduled(root);
-            };
-            thrownValue.then(lanes, lanes);
-            break a;
-          case 3:
-            workInProgressSuspendedReason = 7;
-            break a;
-          case 4:
-            workInProgressSuspendedReason = 5;
-            break a;
-          case 7:
-            isThenableResolved(thrownValue)
-              ? ((workInProgressSuspendedReason = 0),
-                (workInProgressThrownValue = null),
-                replaySuspendedUnitOfWork(lanes))
-              : ((workInProgressSuspendedReason = 0),
-                (workInProgressThrownValue = null),
-                throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));
-            break;
-          case 5:
-            var resource = null;
-            switch (workInProgress.tag) {
-              case 26:
-                resource = workInProgress.memoizedState;
-              case 5:
-              case 27:
-                var hostFiber = workInProgress;
-                if (
-                  resource
-                    ? preloadResource(resource)
-                    : hostFiber.stateNode.complete
-                ) {
-                  workInProgressSuspendedReason = 0;
-                  workInProgressThrownValue = null;
-                  var sibling = hostFiber.sibling;
-                  if (null !== sibling) workInProgress = sibling;
-                  else {
-                    var returnFiber = hostFiber.return;
-                    null !== returnFiber
-                      ? ((workInProgress = returnFiber),
-                        completeUnitOfWork(returnFiber))
-                      : (workInProgress = null);
-                  }
-                  break b;
-                }
-            }
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);
-            break;
-          case 6:
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);
-            break;
-          case 8:
-            resetWorkInProgressStack();
-            workInProgressRootExitStatus = 6;
-            break a;
-          default:
-            throw Error(formatProdErrorMessage(462));
-        }
-      }
-      workLoopConcurrentByScheduler();
-      break;
-    } catch (thrownValue$167) {
-      handleThrow(root, thrownValue$167);
-    }
-  while (1);
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  ReactSharedInternals.H = prevDispatcher;
-  ReactSharedInternals.A = prevAsyncDispatcher;
-  executionContext = prevExecutionContext;
-  if (null !== workInProgress) return 0;
-  workInProgressRoot = null;
-  workInProgressRootRenderLanes = 0;
-  finishQueueingConcurrentUpdates();
-  return workInProgressRootExitStatus;
-}
-function workLoopConcurrentByScheduler() {
-  for (; null !== workInProgress && !shouldYield(); )
-    performUnitOfWork(workInProgress);
-}
-function performUnitOfWork(unitOfWork) {
-  var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);
-  unitOfWork.memoizedProps = unitOfWork.pendingProps;
-  null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);
-}
-function replaySuspendedUnitOfWork(unitOfWork) {
-  var next = unitOfWork;
-  var current = next.alternate;
-  switch (next.tag) {
-    case 15:
-    case 0:
-      next = replayFunctionComponent(
-        current,
-        next,
-        next.pendingProps,
-        next.type,
-        void 0,
-        workInProgressRootRenderLanes
-      );
-      break;
-    case 11:
-      next = replayFunctionComponent(
-        current,
-        next,
-        next.pendingProps,
-        next.type.render,
-        next.ref,
-        workInProgressRootRenderLanes
-      );
-      break;
-    case 5:
-      resetHooksOnUnwind(next);
-    default:
-      unwindInterruptedWork(current, next),
-        (next = workInProgress =
-          resetWorkInProgress(next, entangledRenderLanes)),
-        (next = beginWork(current, next, entangledRenderLanes));
-  }
-  unitOfWork.memoizedProps = unitOfWork.pendingProps;
-  null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);
-}
-function throwAndUnwindWorkLoop(
-  root,
-  unitOfWork,
-  thrownValue,
-  suspendedReason
-) {
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  resetHooksOnUnwind(unitOfWork);
-  thenableState$1 = null;
-  thenableIndexCounter$1 = 0;
-  var returnFiber = unitOfWork.return;
-  try {
-    if (
-      throwException(
-        root,
-        returnFiber,
-        unitOfWork,
-        thrownValue,
-        workInProgressRootRenderLanes
-      )
-    ) {
-      workInProgressRootExitStatus = 1;
-      logUncaughtError(
-        root,
-        createCapturedValueAtFiber(thrownValue, root.current)
-      );
-      workInProgress = null;
-      return;
-    }
-  } catch (error) {
-    if (null !== returnFiber) throw ((workInProgress = returnFiber), error);
-    workInProgressRootExitStatus = 1;
-    logUncaughtError(
-      root,
-      createCapturedValueAtFiber(thrownValue, root.current)
-    );
-    workInProgress = null;
-    return;
-  }
-  if (unitOfWork.flags & 32768) {
-    if (isHydrating || 1 === suspendedReason) root = !0;
-    else if (
-      workInProgressRootIsPrerendering ||
-      0 !== (workInProgressRootRenderLanes & 536870912)
-    )
-      root = !1;
-    else if (
-      ((workInProgressRootDidSkipSuspendedSiblings = root = !0),
-      2 === suspendedReason ||
-        9 === suspendedReason ||
-        3 === suspendedReason ||
-        6 === suspendedReason)
-    )
-      (suspendedReason = suspenseHandlerStackCursor.current),
-        null !== suspendedReason &&
-          13 === suspendedReason.tag &&
-          (suspendedReason.flags |= 16384);
-    unwindUnitOfWork(unitOfWork, root);
-  } else completeUnitOfWork(unitOfWork);
-}
-function completeUnitOfWork(unitOfWork) {
-  var completedWork = unitOfWork;
-  do {
-    if (0 !== (completedWork.flags & 32768)) {
-      unwindUnitOfWork(
-        completedWork,
-        workInProgressRootDidSkipSuspendedSiblings
-      );
-      return;
-    }
-    unitOfWork = completedWork.return;
-    var next = completeWork(
-      completedWork.alternate,
-      completedWork,
-      entangledRenderLanes
-    );
-    if (null !== next) {
-      workInProgress = next;
-      return;
-    }
-    completedWork = completedWork.sibling;
-    if (null !== completedWork) {
-      workInProgress = completedWork;
-      return;
-    }
-    workInProgress = completedWork = unitOfWork;
-  } while (null !== completedWork);
-  0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);
-}
-function unwindUnitOfWork(unitOfWork, skipSiblings) {
-  do {
-    var next = unwindWork(unitOfWork.alternate, unitOfWork);
-    if (null !== next) {
-      next.flags &= 32767;
-      workInProgress = next;
-      return;
-    }
-    next = unitOfWork.return;
-    null !== next &&
-      ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));
-    if (
-      !skipSiblings &&
-      ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)
-    ) {
-      workInProgress = unitOfWork;
-      return;
-    }
-    workInProgress = unitOfWork = next;
-  } while (null !== unitOfWork);
-  workInProgressRootExitStatus = 6;
-  workInProgress = null;
-}
-function commitRoot(
-  root,
-  finishedWork,
-  lanes,
-  recoverableErrors,
-  transitions,
-  didIncludeRenderPhaseUpdate,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes
-) {
-  root.cancelPendingCommit = null;
-  do flushPendingEffects();
-  while (0 !== pendingEffectsStatus);
-  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));
-  if (null !== finishedWork) {
-    if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));
-    didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;
-    didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;
-    markRootFinished(
-      root,
-      lanes,
-      didIncludeRenderPhaseUpdate,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes
-    );
-    root === workInProgressRoot &&
-      ((workInProgress = workInProgressRoot = null),
-      (workInProgressRootRenderLanes = 0));
-    pendingFinishedWork = finishedWork;
-    pendingEffectsRoot = root;
-    pendingEffectsLanes = lanes;
-    pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;
-    pendingPassiveTransitions = transitions;
-    pendingRecoverableErrors = recoverableErrors;
-    0 !== (finishedWork.subtreeFlags & 10256) ||
-    0 !== (finishedWork.flags & 10256)
-      ? ((root.callbackNode = null),
-        (root.callbackPriority = 0),
-        scheduleCallback$1(NormalPriority$1, function () {
-          flushPassiveEffects();
-          return null;
-        }))
-      : ((root.callbackNode = null), (root.callbackPriority = 0));
-    recoverableErrors = 0 !== (finishedWork.flags & 13878);
-    if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {
-      recoverableErrors = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      transitions = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      spawnedLane = executionContext;
-      executionContext |= 4;
-      try {
-        commitBeforeMutationEffects(root, finishedWork, lanes);
-      } finally {
-        (executionContext = spawnedLane),
-          (ReactDOMSharedInternals.p = transitions),
-          (ReactSharedInternals.T = recoverableErrors);
-      }
-    }
-    pendingEffectsStatus = 1;
-    flushMutationEffects();
-    flushLayoutEffects();
-    flushSpawnedWork();
-  }
-}
-function flushMutationEffects() {
-  if (1 === pendingEffectsStatus) {
-    pendingEffectsStatus = 0;
-    var root = pendingEffectsRoot,
-      finishedWork = pendingFinishedWork,
-      rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);
-    if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {
-      rootMutationHasEffect = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      var prevExecutionContext = executionContext;
-      executionContext |= 4;
-      try {
-        commitMutationEffectsOnFiber(finishedWork, root);
-        var priorSelectionInformation = selectionInformation,
-          curFocusedElem = getActiveElementDeep(root.containerInfo),
-          priorFocusedElem = priorSelectionInformation.focusedElem,
-          priorSelectionRange = priorSelectionInformation.selectionRange;
-        if (
-          curFocusedElem !== priorFocusedElem &&
-          priorFocusedElem &&
-          priorFocusedElem.ownerDocument &&
-          containsNode(
-            priorFocusedElem.ownerDocument.documentElement,
-            priorFocusedElem
-          )
-        ) {
-          if (
-            null !== priorSelectionRange &&
-            hasSelectionCapabilities(priorFocusedElem)
-          ) {
-            var start = priorSelectionRange.start,
-              end = priorSelectionRange.end;
-            void 0 === end && (end = start);
-            if ("selectionStart" in priorFocusedElem)
-              (priorFocusedElem.selectionStart = start),
-                (priorFocusedElem.selectionEnd = Math.min(
-                  end,
-                  priorFocusedElem.value.length
-                ));
-            else {
-              var doc = priorFocusedElem.ownerDocument || document,
-                win = (doc && doc.defaultView) || window;
-              if (win.getSelection) {
-                var selection = win.getSelection(),
-                  length = priorFocusedElem.textContent.length,
-                  start$jscomp$0 = Math.min(priorSelectionRange.start, length),
-                  end$jscomp$0 =
-                    void 0 === priorSelectionRange.end
-                      ? start$jscomp$0
-                      : Math.min(priorSelectionRange.end, length);
-                !selection.extend &&
-                  start$jscomp$0 > end$jscomp$0 &&
-                  ((curFocusedElem = end$jscomp$0),
-                  (end$jscomp$0 = start$jscomp$0),
-                  (start$jscomp$0 = curFocusedElem));
-                var startMarker = getNodeForCharacterOffset(
-                    priorFocusedElem,
-                    start$jscomp$0
-                  ),
-                  endMarker = getNodeForCharacterOffset(
-                    priorFocusedElem,
-                    end$jscomp$0
-                  );
-                if (
-                  startMarker &&
-                  endMarker &&
-                  (1 !== selection.rangeCount ||
-                    selection.anchorNode !== startMarker.node ||
-                    selection.anchorOffset !== startMarker.offset ||
-                    selection.focusNode !== endMarker.node ||
-                    selection.focusOffset !== endMarker.offset)
-                ) {
-                  var range = doc.createRange();
-                  range.setStart(startMarker.node, startMarker.offset);
-                  selection.removeAllRanges();
-                  start$jscomp$0 > end$jscomp$0
-                    ? (selection.addRange(range),
-                      selection.extend(endMarker.node, endMarker.offset))
-                    : (range.setEnd(endMarker.node, endMarker.offset),
-                      selection.addRange(range));
-                }
-              }
-            }
-          }
-          doc = [];
-          for (
-            selection = priorFocusedElem;
-            (selection = selection.parentNode);
-
-          )
-            1 === selection.nodeType &&
-              doc.push({
-                element: selection,
-                left: selection.scrollLeft,
-                top: selection.scrollTop
-              });
-          "function" === typeof priorFocusedElem.focus &&
-            priorFocusedElem.focus();
-          for (
-            priorFocusedElem = 0;
-            priorFocusedElem < doc.length;
-            priorFocusedElem++
-          ) {
-            var info = doc[priorFocusedElem];
-            info.element.scrollLeft = info.left;
-            info.element.scrollTop = info.top;
-          }
-        }
-        _enabled = !!eventsEnabled;
-        selectionInformation = eventsEnabled = null;
-      } finally {
-        (executionContext = prevExecutionContext),
-          (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = rootMutationHasEffect);
-      }
-    }
-    root.current = finishedWork;
-    pendingEffectsStatus = 2;
-  }
-}
-function flushLayoutEffects() {
-  if (2 === pendingEffectsStatus) {
-    pendingEffectsStatus = 0;
-    var root = pendingEffectsRoot,
-      finishedWork = pendingFinishedWork,
-      rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);
-    if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {
-      rootHasLayoutEffect = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      var prevExecutionContext = executionContext;
-      executionContext |= 4;
-      try {
-        commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);
-      } finally {
-        (executionContext = prevExecutionContext),
-          (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = rootHasLayoutEffect);
-      }
-    }
-    pendingEffectsStatus = 3;
-  }
-}
-function flushSpawnedWork() {
-  if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {
-    pendingEffectsStatus = 0;
-    requestPaint();
-    var root = pendingEffectsRoot,
-      finishedWork = pendingFinishedWork,
-      lanes = pendingEffectsLanes,
-      recoverableErrors = pendingRecoverableErrors;
-    0 !== (finishedWork.subtreeFlags & 10256) ||
-    0 !== (finishedWork.flags & 10256)
-      ? (pendingEffectsStatus = 5)
-      : ((pendingEffectsStatus = 0),
-        (pendingFinishedWork = pendingEffectsRoot = null),
-        releaseRootPooledCache(root, root.pendingLanes));
-    var remainingLanes = root.pendingLanes;
-    0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);
-    lanesToEventPriority(lanes);
-    finishedWork = finishedWork.stateNode;
-    if (injectedHook && "function" === typeof injectedHook.onCommitFiberRoot)
-      try {
-        injectedHook.onCommitFiberRoot(
-          rendererID,
-          finishedWork,
-          void 0,
-          128 === (finishedWork.current.flags & 128)
-        );
-      } catch (err) {}
-    if (null !== recoverableErrors) {
-      finishedWork = ReactSharedInternals.T;
-      remainingLanes = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      ReactSharedInternals.T = null;
-      try {
-        for (
-          var onRecoverableError = root.onRecoverableError, i = 0;
-          i < recoverableErrors.length;
-          i++
-        ) {
-          var recoverableError = recoverableErrors[i];
-          onRecoverableError(recoverableError.value, {
-            componentStack: recoverableError.stack
-          });
-        }
-      } finally {
-        (ReactSharedInternals.T = finishedWork),
-          (ReactDOMSharedInternals.p = remainingLanes);
-      }
-    }
-    0 !== (pendingEffectsLanes & 3) && flushPendingEffects();
-    ensureRootIsScheduled(root);
-    remainingLanes = root.pendingLanes;
-    0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)
-      ? root === rootWithNestedUpdates
-        ? nestedUpdateCount++
-        : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))
-      : (nestedUpdateCount = 0);
-    flushSyncWorkAcrossRoots_impl(0, !1);
-  }
-}
-function releaseRootPooledCache(root, remainingLanes) {
-  0 === (root.pooledCacheLanes &= remainingLanes) &&
-    ((remainingLanes = root.pooledCache),
-    null != remainingLanes &&
-      ((root.pooledCache = null), releaseCache(remainingLanes)));
-}
-function flushPendingEffects() {
-  flushMutationEffects();
-  flushLayoutEffects();
-  flushSpawnedWork();
-  return flushPassiveEffects();
-}
-function flushPassiveEffects() {
-  if (5 !== pendingEffectsStatus) return !1;
-  var root = pendingEffectsRoot,
-    remainingLanes = pendingEffectsRemainingLanes;
-  pendingEffectsRemainingLanes = 0;
-  var renderPriority = lanesToEventPriority(pendingEffectsLanes),
-    prevTransition = ReactSharedInternals.T,
-    previousPriority = ReactDOMSharedInternals.p;
-  try {
-    ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;
-    ReactSharedInternals.T = null;
-    renderPriority = pendingPassiveTransitions;
-    pendingPassiveTransitions = null;
-    var root$jscomp$0 = pendingEffectsRoot,
-      lanes = pendingEffectsLanes;
-    pendingEffectsStatus = 0;
-    pendingFinishedWork = pendingEffectsRoot = null;
-    pendingEffectsLanes = 0;
-    if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));
-    var prevExecutionContext = executionContext;
-    executionContext |= 4;
-    commitPassiveUnmountOnFiber(root$jscomp$0.current);
-    commitPassiveMountOnFiber(
-      root$jscomp$0,
-      root$jscomp$0.current,
-      lanes,
-      renderPriority
-    );
-    executionContext = prevExecutionContext;
-    flushSyncWorkAcrossRoots_impl(0, !1);
-    if (
-      injectedHook &&
-      "function" === typeof injectedHook.onPostCommitFiberRoot
-    )
-      try {
-        injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);
-      } catch (err) {}
-    return !0;
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition),
-      releaseRootPooledCache(root, remainingLanes);
-  }
-}
-function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {
-  sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-  sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);
-  rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);
-  null !== rootFiber &&
-    (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));
-}
-function captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {
-  if (3 === sourceFiber.tag)
-    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);
-  else
-    for (; null !== nearestMountedAncestor; ) {
-      if (3 === nearestMountedAncestor.tag) {
-        captureCommitPhaseErrorOnRoot(
-          nearestMountedAncestor,
-          sourceFiber,
-          error
-        );
-        break;
-      } else if (1 === nearestMountedAncestor.tag) {
-        var instance = nearestMountedAncestor.stateNode;
-        if (
-          "function" ===
-            typeof nearestMountedAncestor.type.getDerivedStateFromError ||
-          ("function" === typeof instance.componentDidCatch &&
-            (null === legacyErrorBoundariesThatAlreadyFailed ||
-              !legacyErrorBoundariesThatAlreadyFailed.has(instance)))
-        ) {
-          sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-          error = createClassErrorUpdate(2);
-          instance = enqueueUpdate(nearestMountedAncestor, error, 2);
-          null !== instance &&
-            (initializeClassErrorUpdate(
-              error,
-              instance,
-              nearestMountedAncestor,
-              sourceFiber
-            ),
-            markRootUpdated$1(instance, 2),
-            ensureRootIsScheduled(instance));
-          break;
-        }
-      }
-      nearestMountedAncestor = nearestMountedAncestor.return;
-    }
-}
-function attachPingListener(root, wakeable, lanes) {
-  var pingCache = root.pingCache;
-  if (null === pingCache) {
-    pingCache = root.pingCache = new PossiblyWeakMap();
-    var threadIDs = new Set();
-    pingCache.set(wakeable, threadIDs);
-  } else
-    (threadIDs = pingCache.get(wakeable)),
-      void 0 === threadIDs &&
-        ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));
-  threadIDs.has(lanes) ||
-    ((workInProgressRootDidAttachPingListener = !0),
-    threadIDs.add(lanes),
-    (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),
-    wakeable.then(root, root));
-}
-function pingSuspendedRoot(root, wakeable, pingedLanes) {
-  var pingCache = root.pingCache;
-  null !== pingCache && pingCache.delete(wakeable);
-  root.pingedLanes |= root.suspendedLanes & pingedLanes;
-  root.warmLanes &= ~pingedLanes;
-  workInProgressRoot === root &&
-    (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&
-    (4 === workInProgressRootExitStatus ||
-    (3 === workInProgressRootExitStatus &&
-      (workInProgressRootRenderLanes & 62914560) ===
-        workInProgressRootRenderLanes &&
-      300 > now() - globalMostRecentFallbackTime)
-      ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)
-      : (workInProgressRootPingedLanes |= pingedLanes),
-    workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&
-      (workInProgressSuspendedRetryLanes = 0));
-  ensureRootIsScheduled(root);
-}
-function retryTimedOutBoundary(boundaryFiber, retryLane) {
-  0 === retryLane && (retryLane = claimNextRetryLane());
-  boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);
-  null !== boundaryFiber &&
-    (markRootUpdated$1(boundaryFiber, retryLane),
-    ensureRootIsScheduled(boundaryFiber));
-}
-function retryDehydratedSuspenseBoundary(boundaryFiber) {
-  var suspenseState = boundaryFiber.memoizedState,
-    retryLane = 0;
-  null !== suspenseState && (retryLane = suspenseState.retryLane);
-  retryTimedOutBoundary(boundaryFiber, retryLane);
-}
-function resolveRetryWakeable(boundaryFiber, wakeable) {
-  var retryLane = 0;
-  switch (boundaryFiber.tag) {
-    case 31:
-    case 13:
-      var retryCache = boundaryFiber.stateNode;
-      var suspenseState = boundaryFiber.memoizedState;
-      null !== suspenseState && (retryLane = suspenseState.retryLane);
-      break;
-    case 19:
-      retryCache = boundaryFiber.stateNode;
-      break;
-    case 22:
-      retryCache = boundaryFiber.stateNode._retryCache;
-      break;
-    default:
-      throw Error(formatProdErrorMessage(314));
-  }
-  null !== retryCache && retryCache.delete(wakeable);
-  retryTimedOutBoundary(boundaryFiber, retryLane);
-}
-function scheduleCallback$1(priorityLevel, callback) {
-  return scheduleCallback$3(priorityLevel, callback);
-}
-var firstScheduledRoot = null,
-  lastScheduledRoot = null,
-  didScheduleMicrotask = !1,
-  mightHavePendingSyncWork = !1,
-  isFlushingWork = !1,
-  currentEventTransitionLane = 0;
-function ensureRootIsScheduled(root) {
-  root !== lastScheduledRoot &&
-    null === root.next &&
-    (null === lastScheduledRoot
-      ? (firstScheduledRoot = lastScheduledRoot = root)
-      : (lastScheduledRoot = lastScheduledRoot.next = root));
-  mightHavePendingSyncWork = !0;
-  didScheduleMicrotask ||
-    ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());
-}
-function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {
-  if (!isFlushingWork && mightHavePendingSyncWork) {
-    isFlushingWork = !0;
-    do {
-      var didPerformSomeWork = !1;
-      for (var root$170 = firstScheduledRoot; null !== root$170; ) {
-        if (!onlyLegacy)
-          if (0 !== syncTransitionLanes) {
-            var pendingLanes = root$170.pendingLanes;
-            if (0 === pendingLanes) var JSCompiler_inline_result = 0;
-            else {
-              var suspendedLanes = root$170.suspendedLanes,
-                pingedLanes = root$170.pingedLanes;
-              JSCompiler_inline_result =
-                (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;
-              JSCompiler_inline_result &=
-                pendingLanes & ~(suspendedLanes & ~pingedLanes);
-              JSCompiler_inline_result =
-                JSCompiler_inline_result & 201326741
-                  ? (JSCompiler_inline_result & 201326741) | 1
-                  : JSCompiler_inline_result
-                    ? JSCompiler_inline_result | 2
-                    : 0;
-            }
-            0 !== JSCompiler_inline_result &&
-              ((didPerformSomeWork = !0),
-              performSyncWorkOnRoot(root$170, JSCompiler_inline_result));
-          } else
-            (JSCompiler_inline_result = workInProgressRootRenderLanes),
-              (JSCompiler_inline_result = getNextLanes(
-                root$170,
-                root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,
-                null !== root$170.cancelPendingCommit ||
-                  -1 !== root$170.timeoutHandle
-              )),
-              0 === (JSCompiler_inline_result & 3) ||
-                checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||
-                ((didPerformSomeWork = !0),
-                performSyncWorkOnRoot(root$170, JSCompiler_inline_result));
-        root$170 = root$170.next;
-      }
-    } while (didPerformSomeWork);
-    isFlushingWork = !1;
-  }
-}
-function processRootScheduleInImmediateTask() {
-  processRootScheduleInMicrotask();
-}
-function processRootScheduleInMicrotask() {
-  mightHavePendingSyncWork = didScheduleMicrotask = !1;
-  var syncTransitionLanes = 0;
-  0 !== currentEventTransitionLane &&
-    shouldAttemptEagerTransition() &&
-    (syncTransitionLanes = currentEventTransitionLane);
-  for (
-    var currentTime = now(), prev = null, root = firstScheduledRoot;
-    null !== root;
-
-  ) {
-    var next = root.next,
-      nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);
-    if (0 === nextLanes)
-      (root.next = null),
-        null === prev ? (firstScheduledRoot = next) : (prev.next = next),
-        null === next && (lastScheduledRoot = prev);
-    else if (
-      ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))
-    )
-      mightHavePendingSyncWork = !0;
-    root = next;
-  }
-  (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||
-    flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);
-  0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);
-}
-function scheduleTaskForRootDuringMicrotask(root, currentTime) {
-  for (
-    var suspendedLanes = root.suspendedLanes,
-      pingedLanes = root.pingedLanes,
-      expirationTimes = root.expirationTimes,
-      lanes = root.pendingLanes & -62914561;
-    0 < lanes;
-
-  ) {
-    var index$5 = 31 - clz32(lanes),
-      lane = 1 << index$5,
-      expirationTime = expirationTimes[index$5];
-    if (-1 === expirationTime) {
-      if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))
-        expirationTimes[index$5] = computeExpirationTime(lane, currentTime);
-    } else expirationTime <= currentTime && (root.expiredLanes |= lane);
-    lanes &= ~lane;
-  }
-  currentTime = workInProgressRoot;
-  suspendedLanes = workInProgressRootRenderLanes;
-  suspendedLanes = getNextLanes(
-    root,
-    root === currentTime ? suspendedLanes : 0,
-    null !== root.cancelPendingCommit || -1 !== root.timeoutHandle
-  );
-  pingedLanes = root.callbackNode;
-  if (
-    0 === suspendedLanes ||
-    (root === currentTime &&
-      (2 === workInProgressSuspendedReason ||
-        9 === workInProgressSuspendedReason)) ||
-    null !== root.cancelPendingCommit
-  )
-    return (
-      null !== pingedLanes &&
-        null !== pingedLanes &&
-        cancelCallback$1(pingedLanes),
-      (root.callbackNode = null),
-      (root.callbackPriority = 0)
-    );
-  if (
-    0 === (suspendedLanes & 3) ||
-    checkIfRootIsPrerendering(root, suspendedLanes)
-  ) {
-    currentTime = suspendedLanes & -suspendedLanes;
-    if (currentTime === root.callbackPriority) return currentTime;
-    null !== pingedLanes && cancelCallback$1(pingedLanes);
-    switch (lanesToEventPriority(suspendedLanes)) {
-      case 2:
-      case 8:
-        suspendedLanes = UserBlockingPriority;
-        break;
-      case 32:
-        suspendedLanes = NormalPriority$1;
-        break;
-      case 268435456:
-        suspendedLanes = IdlePriority;
-        break;
-      default:
-        suspendedLanes = NormalPriority$1;
-    }
-    pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);
-    suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);
-    root.callbackPriority = currentTime;
-    root.callbackNode = suspendedLanes;
-    return currentTime;
-  }
-  null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);
-  root.callbackPriority = 2;
-  root.callbackNode = null;
-  return 2;
-}
-function performWorkOnRootViaSchedulerTask(root, didTimeout) {
-  if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)
-    return (root.callbackNode = null), (root.callbackPriority = 0), null;
-  var originalCallbackNode = root.callbackNode;
-  if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)
-    return null;
-  var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;
-  workInProgressRootRenderLanes$jscomp$0 = getNextLanes(
-    root,
-    root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,
-    null !== root.cancelPendingCommit || -1 !== root.timeoutHandle
-  );
-  if (0 === workInProgressRootRenderLanes$jscomp$0) return null;
-  performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);
-  scheduleTaskForRootDuringMicrotask(root, now());
-  return null != root.callbackNode && root.callbackNode === originalCallbackNode
-    ? performWorkOnRootViaSchedulerTask.bind(null, root)
-    : null;
-}
-function performSyncWorkOnRoot(root, lanes) {
-  if (flushPendingEffects()) return null;
-  performWorkOnRoot(root, lanes, !0);
-}
-function scheduleImmediateRootScheduleTask() {
-  scheduleMicrotask(function () {
-    0 !== (executionContext & 6)
-      ? scheduleCallback$3(
-          ImmediatePriority,
-          processRootScheduleInImmediateTask
-        )
-      : processRootScheduleInMicrotask();
-  });
-}
-function requestTransitionLane() {
-  if (0 === currentEventTransitionLane) {
-    var actionScopeLane = currentEntangledLane;
-    0 === actionScopeLane &&
-      ((actionScopeLane = nextTransitionUpdateLane),
-      (nextTransitionUpdateLane <<= 1),
-      0 === (nextTransitionUpdateLane & 261888) &&
-        (nextTransitionUpdateLane = 256));
-    currentEventTransitionLane = actionScopeLane;
-  }
-  return currentEventTransitionLane;
-}
-function coerceFormActionProp(actionProp) {
-  return null == actionProp ||
-    "symbol" === typeof actionProp ||
-    "boolean" === typeof actionProp
-    ? null
-    : "function" === typeof actionProp
-      ? actionProp
-      : sanitizeURL("" + actionProp);
-}
-function createFormDataWithSubmitter(form, submitter) {
-  var temp = submitter.ownerDocument.createElement("input");
-  temp.name = submitter.name;
-  temp.value = submitter.value;
-  form.id && temp.setAttribute("form", form.id);
-  submitter.parentNode.insertBefore(temp, submitter);
-  form = new FormData(form);
-  temp.parentNode.removeChild(temp);
-  return form;
-}
-function extractEvents$1(
-  dispatchQueue,
-  domEventName,
-  maybeTargetInst,
-  nativeEvent,
-  nativeEventTarget
-) {
-  if (
-    "submit" === domEventName &&
-    maybeTargetInst &&
-    maybeTargetInst.stateNode === nativeEventTarget
-  ) {
-    var action = coerceFormActionProp(
-        (nativeEventTarget[internalPropsKey] || null).action
-      ),
-      submitter = nativeEvent.submitter;
-    submitter &&
-      ((domEventName = (domEventName = submitter[internalPropsKey] || null)
-        ? coerceFormActionProp(domEventName.formAction)
-        : submitter.getAttribute("formAction")),
-      null !== domEventName && ((action = domEventName), (submitter = null)));
-    var event = new SyntheticEvent(
-      "action",
-      "action",
-      null,
-      nativeEvent,
-      nativeEventTarget
-    );
-    dispatchQueue.push({
-      event: event,
-      listeners: [
-        {
-          instance: null,
-          listener: function () {
-            if (nativeEvent.defaultPrevented) {
-              if (0 !== currentEventTransitionLane) {
-                var formData = submitter
-                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)
-                  : new FormData(nativeEventTarget);
-                startHostTransition(
-                  maybeTargetInst,
-                  {
-                    pending: !0,
-                    data: formData,
-                    method: nativeEventTarget.method,
-                    action: action
-                  },
-                  null,
-                  formData
-                );
-              }
-            } else
-              "function" === typeof action &&
-                (event.preventDefault(),
-                (formData = submitter
-                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)
-                  : new FormData(nativeEventTarget)),
-                startHostTransition(
-                  maybeTargetInst,
-                  {
-                    pending: !0,
-                    data: formData,
-                    method: nativeEventTarget.method,
-                    action: action
-                  },
-                  action,
-                  formData
-                ));
-          },
-          currentTarget: nativeEventTarget
-        }
-      ]
-    });
-  }
-}
-for (
-  var i$jscomp$inline_1577 = 0;
-  i$jscomp$inline_1577 < simpleEventPluginEvents.length;
-  i$jscomp$inline_1577++
-) {
-  var eventName$jscomp$inline_1578 =
-      simpleEventPluginEvents[i$jscomp$inline_1577],
-    domEventName$jscomp$inline_1579 =
-      eventName$jscomp$inline_1578.toLowerCase(),
-    capitalizedEvent$jscomp$inline_1580 =
-      eventName$jscomp$inline_1578[0].toUpperCase() +
-      eventName$jscomp$inline_1578.slice(1);
-  registerSimpleEvent(
-    domEventName$jscomp$inline_1579,
-    "on" + capitalizedEvent$jscomp$inline_1580
-  );
-}
-registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
-registerSimpleEvent(ANIMATION_ITERATION, "onAnimationIteration");
-registerSimpleEvent(ANIMATION_START, "onAnimationStart");
-registerSimpleEvent("dblclick", "onDoubleClick");
-registerSimpleEvent("focusin", "onFocus");
-registerSimpleEvent("focusout", "onBlur");
-registerSimpleEvent(TRANSITION_RUN, "onTransitionRun");
-registerSimpleEvent(TRANSITION_START, "onTransitionStart");
-registerSimpleEvent(TRANSITION_CANCEL, "onTransitionCancel");
-registerSimpleEvent(TRANSITION_END, "onTransitionEnd");
-registerDirectEvent("onMouseEnter", ["mouseout", "mouseover"]);
-registerDirectEvent("onMouseLeave", ["mouseout", "mouseover"]);
-registerDirectEvent("onPointerEnter", ["pointerout", "pointerover"]);
-registerDirectEvent("onPointerLeave", ["pointerout", "pointerover"]);
-registerTwoPhaseEvent(
-  "onChange",
-  "change click focusin focusout input keydown keyup selectionchange".split(" ")
-);
-registerTwoPhaseEvent(
-  "onSelect",
-  "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(
-    " "
-  )
-);
-registerTwoPhaseEvent("onBeforeInput", [
-  "compositionend",
-  "keypress",
-  "textInput",
-  "paste"
-]);
-registerTwoPhaseEvent(
-  "onCompositionEnd",
-  "compositionend focusout keydown keypress keyup mousedown".split(" ")
-);
-registerTwoPhaseEvent(
-  "onCompositionStart",
-  "compositionstart focusout keydown keypress keyup mousedown".split(" ")
-);
-registerTwoPhaseEvent(
-  "onCompositionUpdate",
-  "compositionupdate focusout keydown keypress keyup mousedown".split(" ")
-);
-var mediaEventTypes =
-    "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
-      " "
-    ),
-  nonDelegatedEvents = new Set(
-    "beforetoggle cancel close invalid load scroll scrollend toggle"
-      .split(" ")
-      .concat(mediaEventTypes)
-  );
-function processDispatchQueue(dispatchQueue, eventSystemFlags) {
-  eventSystemFlags = 0 !== (eventSystemFlags & 4);
-  for (var i = 0; i < dispatchQueue.length; i++) {
-    var _dispatchQueue$i = dispatchQueue[i],
-      event = _dispatchQueue$i.event;
-    _dispatchQueue$i = _dispatchQueue$i.listeners;
-    a: {
-      var previousInstance = void 0;
-      if (eventSystemFlags)
-        for (
-          var i$jscomp$0 = _dispatchQueue$i.length - 1;
-          0 <= i$jscomp$0;
-          i$jscomp$0--
-        ) {
-          var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],
-            instance = _dispatchListeners$i.instance,
-            currentTarget = _dispatchListeners$i.currentTarget;
-          _dispatchListeners$i = _dispatchListeners$i.listener;
-          if (instance !== previousInstance && event.isPropagationStopped())
-            break a;
-          previousInstance = _dispatchListeners$i;
-          event.currentTarget = currentTarget;
-          try {
-            previousInstance(event);
-          } catch (error) {
-            reportGlobalError(error);
-          }
-          event.currentTarget = null;
-          previousInstance = instance;
-        }
-      else
-        for (
-          i$jscomp$0 = 0;
-          i$jscomp$0 < _dispatchQueue$i.length;
-          i$jscomp$0++
-        ) {
-          _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];
-          instance = _dispatchListeners$i.instance;
-          currentTarget = _dispatchListeners$i.currentTarget;
-          _dispatchListeners$i = _dispatchListeners$i.listener;
-          if (instance !== previousInstance && event.isPropagationStopped())
-            break a;
-          previousInstance = _dispatchListeners$i;
-          event.currentTarget = currentTarget;
-          try {
-            previousInstance(event);
-          } catch (error) {
-            reportGlobalError(error);
-          }
-          event.currentTarget = null;
-          previousInstance = instance;
-        }
-    }
-  }
-}
-function listenToNonDelegatedEvent(domEventName, targetElement) {
-  var JSCompiler_inline_result = targetElement[internalEventHandlersKey];
-  void 0 === JSCompiler_inline_result &&
-    (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =
-      new Set());
-  var listenerSetKey = domEventName + "__bubble";
-  JSCompiler_inline_result.has(listenerSetKey) ||
-    (addTrappedEventListener(targetElement, domEventName, 2, !1),
-    JSCompiler_inline_result.add(listenerSetKey));
-}
-function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {
-  var eventSystemFlags = 0;
-  isCapturePhaseListener && (eventSystemFlags |= 4);
-  addTrappedEventListener(
-    target,
-    domEventName,
-    eventSystemFlags,
-    isCapturePhaseListener
-  );
-}
-var listeningMarker = "_reactListening" + Math.random().toString(36).slice(2);
-function listenToAllSupportedEvents(rootContainerElement) {
-  if (!rootContainerElement[listeningMarker]) {
-    rootContainerElement[listeningMarker] = !0;
-    allNativeEvents.forEach(function (domEventName) {
-      "selectionchange" !== domEventName &&
-        (nonDelegatedEvents.has(domEventName) ||
-          listenToNativeEvent(domEventName, !1, rootContainerElement),
-        listenToNativeEvent(domEventName, !0, rootContainerElement));
-    });
-    var ownerDocument =
-      9 === rootContainerElement.nodeType
-        ? rootContainerElement
-        : rootContainerElement.ownerDocument;
-    null === ownerDocument ||
-      ownerDocument[listeningMarker] ||
-      ((ownerDocument[listeningMarker] = !0),
-      listenToNativeEvent("selectionchange", !1, ownerDocument));
-  }
-}
-function addTrappedEventListener(
-  targetContainer,
-  domEventName,
-  eventSystemFlags,
-  isCapturePhaseListener
-) {
-  switch (getEventPriority(domEventName)) {
-    case 2:
-      var listenerWrapper = dispatchDiscreteEvent;
-      break;
-    case 8:
-      listenerWrapper = dispatchContinuousEvent;
-      break;
-    default:
-      listenerWrapper = dispatchEvent;
-  }
-  eventSystemFlags = listenerWrapper.bind(
-    null,
-    domEventName,
-    eventSystemFlags,
-    targetContainer
-  );
-  listenerWrapper = void 0;
-  !passiveBrowserEventsSupported ||
-    ("touchstart" !== domEventName &&
-      "touchmove" !== domEventName &&
-      "wheel" !== domEventName) ||
-    (listenerWrapper = !0);
-  isCapturePhaseListener
-    ? void 0 !== listenerWrapper
-      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-          capture: !0,
-          passive: listenerWrapper
-        })
-      : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)
-    : void 0 !== listenerWrapper
-      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-          passive: listenerWrapper
-        })
-      : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);
-}
-function dispatchEventForPluginEventSystem(
-  domEventName,
-  eventSystemFlags,
-  nativeEvent,
-  targetInst$jscomp$0,
-  targetContainer
-) {
-  var ancestorInst = targetInst$jscomp$0;
-  if (
-    0 === (eventSystemFlags & 1) &&
-    0 === (eventSystemFlags & 2) &&
-    null !== targetInst$jscomp$0
-  )
-    a: for (;;) {
-      if (null === targetInst$jscomp$0) return;
-      var nodeTag = targetInst$jscomp$0.tag;
-      if (3 === nodeTag || 4 === nodeTag) {
-        var container = targetInst$jscomp$0.stateNode.containerInfo;
-        if (container === targetContainer) break;
-        if (4 === nodeTag)
-          for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
-            var grandTag = nodeTag.tag;
-            if (
-              (3 === grandTag || 4 === grandTag) &&
-              nodeTag.stateNode.containerInfo === targetContainer
-            )
-              return;
-            nodeTag = nodeTag.return;
-          }
-        for (; null !== container; ) {
-          nodeTag = getClosestInstanceFromNode(container);
-          if (null === nodeTag) return;
-          grandTag = nodeTag.tag;
-          if (
-            5 === grandTag ||
-            6 === grandTag ||
-            26 === grandTag ||
-            27 === grandTag
-          ) {
-            targetInst$jscomp$0 = ancestorInst = nodeTag;
-            continue a;
-          }
-          container = container.parentNode;
-        }
-      }
-      targetInst$jscomp$0 = targetInst$jscomp$0.return;
-    }
-  batchedUpdates$1(function () {
-    var targetInst = ancestorInst,
-      nativeEventTarget = getEventTarget(nativeEvent),
-      dispatchQueue = [];
-    a: {
-      var reactName = topLevelEventsToReactNames.get(domEventName);
-      if (void 0 !== reactName) {
-        var SyntheticEventCtor = SyntheticEvent,
-          reactEventType = domEventName;
-        switch (domEventName) {
-          case "keypress":
-            if (0 === getEventCharCode(nativeEvent)) break a;
-          case "keydown":
-          case "keyup":
-            SyntheticEventCtor = SyntheticKeyboardEvent;
-            break;
-          case "focusin":
-            reactEventType = "focus";
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "focusout":
-            reactEventType = "blur";
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "beforeblur":
-          case "afterblur":
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "click":
-            if (2 === nativeEvent.button) break a;
-          case "auxclick":
-          case "dblclick":
-          case "mousedown":
-          case "mousemove":
-          case "mouseup":
-          case "mouseout":
-          case "mouseover":
-          case "contextmenu":
-            SyntheticEventCtor = SyntheticMouseEvent;
-            break;
-          case "drag":
-          case "dragend":
-          case "dragenter":
-          case "dragexit":
-          case "dragleave":
-          case "dragover":
-          case "dragstart":
-          case "drop":
-            SyntheticEventCtor = SyntheticDragEvent;
-            break;
-          case "touchcancel":
-          case "touchend":
-          case "touchmove":
-          case "touchstart":
-            SyntheticEventCtor = SyntheticTouchEvent;
-            break;
-          case ANIMATION_END:
-          case ANIMATION_ITERATION:
-          case ANIMATION_START:
-            SyntheticEventCtor = SyntheticAnimationEvent;
-            break;
-          case TRANSITION_END:
-            SyntheticEventCtor = SyntheticTransitionEvent;
-            break;
-          case "scroll":
-          case "scrollend":
-            SyntheticEventCtor = SyntheticUIEvent;
-            break;
-          case "wheel":
-            SyntheticEventCtor = SyntheticWheelEvent;
-            break;
-          case "copy":
-          case "cut":
-          case "paste":
-            SyntheticEventCtor = SyntheticClipboardEvent;
-            break;
-          case "gotpointercapture":
-          case "lostpointercapture":
-          case "pointercancel":
-          case "pointerdown":
-          case "pointermove":
-          case "pointerout":
-          case "pointerover":
-          case "pointerup":
-            SyntheticEventCtor = SyntheticPointerEvent;
-            break;
-          case "toggle":
-          case "beforetoggle":
-            SyntheticEventCtor = SyntheticToggleEvent;
-        }
-        var inCapturePhase = 0 !== (eventSystemFlags & 4),
-          accumulateTargetOnly =
-            !inCapturePhase &&
-            ("scroll" === domEventName || "scrollend" === domEventName),
-          reactEventName = inCapturePhase
-            ? null !== reactName
-              ? reactName + "Capture"
-              : null
-            : reactName;
-        inCapturePhase = [];
-        for (
-          var instance = targetInst, lastHostComponent;
-          null !== instance;
-
-        ) {
-          var _instance = instance;
-          lastHostComponent = _instance.stateNode;
-          _instance = _instance.tag;
-          (5 !== _instance && 26 !== _instance && 27 !== _instance) ||
-            null === lastHostComponent ||
-            null === reactEventName ||
-            ((_instance = getListener(instance, reactEventName)),
-            null != _instance &&
-              inCapturePhase.push(
-                createDispatchListener(instance, _instance, lastHostComponent)
-              ));
-          if (accumulateTargetOnly) break;
-          instance = instance.return;
-        }
-        0 < inCapturePhase.length &&
-          ((reactName = new SyntheticEventCtor(
-            reactName,
-            reactEventType,
-            null,
-            nativeEvent,
-            nativeEventTarget
-          )),
-          dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));
-      }
-    }
-    if (0 === (eventSystemFlags & 7)) {
-      a: {
-        reactName =
-          "mouseover" === domEventName || "pointerover" === domEventName;
-        SyntheticEventCtor =
-          "mouseout" === domEventName || "pointerout" === domEventName;
-        if (
-          reactName &&
-          nativeEvent !== currentReplayingEvent &&
-          (reactEventType =
-            nativeEvent.relatedTarget || nativeEvent.fromElement) &&
-          (getClosestInstanceFromNode(reactEventType) ||
-            reactEventType[internalContainerInstanceKey])
-        )
-          break a;
-        if (SyntheticEventCtor || reactName) {
-          reactName =
-            nativeEventTarget.window === nativeEventTarget
-              ? nativeEventTarget
-              : (reactName = nativeEventTarget.ownerDocument)
-                ? reactName.defaultView || reactName.parentWindow
-                : window;
-          if (SyntheticEventCtor) {
-            if (
-              ((reactEventType =
-                nativeEvent.relatedTarget || nativeEvent.toElement),
-              (SyntheticEventCtor = targetInst),
-              (reactEventType = reactEventType
-                ? getClosestInstanceFromNode(reactEventType)
-                : null),
-              null !== reactEventType &&
-                ((accumulateTargetOnly =
-                  getNearestMountedFiber(reactEventType)),
-                (inCapturePhase = reactEventType.tag),
-                reactEventType !== accumulateTargetOnly ||
-                  (5 !== inCapturePhase &&
-                    27 !== inCapturePhase &&
-                    6 !== inCapturePhase)))
-            )
-              reactEventType = null;
-          } else (SyntheticEventCtor = null), (reactEventType = targetInst);
-          if (SyntheticEventCtor !== reactEventType) {
-            inCapturePhase = SyntheticMouseEvent;
-            _instance = "onMouseLeave";
-            reactEventName = "onMouseEnter";
-            instance = "mouse";
-            if ("pointerout" === domEventName || "pointerover" === domEventName)
-              (inCapturePhase = SyntheticPointerEvent),
-                (_instance = "onPointerLeave"),
-                (reactEventName = "onPointerEnter"),
-                (instance = "pointer");
-            accumulateTargetOnly =
-              null == SyntheticEventCtor
-                ? reactName
-                : getNodeFromInstance(SyntheticEventCtor);
-            lastHostComponent =
-              null == reactEventType
-                ? reactName
-                : getNodeFromInstance(reactEventType);
-            reactName = new inCapturePhase(
-              _instance,
-              instance + "leave",
-              SyntheticEventCtor,
-              nativeEvent,
-              nativeEventTarget
-            );
-            reactName.target = accumulateTargetOnly;
-            reactName.relatedTarget = lastHostComponent;
-            _instance = null;
-            getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
-              ((inCapturePhase = new inCapturePhase(
-                reactEventName,
-                instance + "enter",
-                reactEventType,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              (inCapturePhase.target = lastHostComponent),
-              (inCapturePhase.relatedTarget = accumulateTargetOnly),
-              (_instance = inCapturePhase));
-            accumulateTargetOnly = _instance;
-            if (SyntheticEventCtor && reactEventType)
-              b: {
-                inCapturePhase = getParent;
-                reactEventName = SyntheticEventCtor;
-                instance = reactEventType;
-                lastHostComponent = 0;
-                for (
-                  _instance = reactEventName;
-                  _instance;
-                  _instance = inCapturePhase(_instance)
-                )
-                  lastHostComponent++;
-                _instance = 0;
-                for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))
-                  _instance++;
-                for (; 0 < lastHostComponent - _instance; )
-                  (reactEventName = inCapturePhase(reactEventName)),
-                    lastHostComponent--;
-                for (; 0 < _instance - lastHostComponent; )
-                  (instance = inCapturePhase(instance)), _instance--;
-                for (; lastHostComponent--; ) {
-                  if (
-                    reactEventName === instance ||
-                    (null !== instance && reactEventName === instance.alternate)
-                  ) {
-                    inCapturePhase = reactEventName;
-                    break b;
-                  }
-                  reactEventName = inCapturePhase(reactEventName);
-                  instance = inCapturePhase(instance);
-                }
-                inCapturePhase = null;
-              }
-            else inCapturePhase = null;
-            null !== SyntheticEventCtor &&
-              accumulateEnterLeaveListenersForEvent(
-                dispatchQueue,
-                reactName,
-                SyntheticEventCtor,
-                inCapturePhase,
-                !1
-              );
-            null !== reactEventType &&
-              null !== accumulateTargetOnly &&
-              accumulateEnterLeaveListenersForEvent(
-                dispatchQueue,
-                accumulateTargetOnly,
-                reactEventType,
-                inCapturePhase,
-                !0
-              );
-          }
-        }
-      }
-      a: {
-        reactName = targetInst ? getNodeFromInstance(targetInst) : window;
-        SyntheticEventCtor =
-          reactName.nodeName && reactName.nodeName.toLowerCase();
-        if (
-          "select" === SyntheticEventCtor ||
-          ("input" === SyntheticEventCtor && "file" === reactName.type)
-        )
-          var getTargetInstFunc = getTargetInstForChangeEvent;
-        else if (isTextInputElement(reactName))
-          if (isInputEventSupported)
-            getTargetInstFunc = getTargetInstForInputOrChangeEvent;
-          else {
-            getTargetInstFunc = getTargetInstForInputEventPolyfill;
-            var handleEventFunc = handleEventsForInputEventPolyfill;
-          }
-        else
-          (SyntheticEventCtor = reactName.nodeName),
-            !SyntheticEventCtor ||
-            "input" !== SyntheticEventCtor.toLowerCase() ||
-            ("checkbox" !== reactName.type && "radio" !== reactName.type)
-              ? targetInst &&
-                isCustomElement(targetInst.elementType) &&
-                (getTargetInstFunc = getTargetInstForChangeEvent)
-              : (getTargetInstFunc = getTargetInstForClickEvent);
-        if (
-          getTargetInstFunc &&
-          (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))
-        ) {
-          createAndAccumulateChangeEvent(
-            dispatchQueue,
-            getTargetInstFunc,
-            nativeEvent,
-            nativeEventTarget
-          );
-          break a;
-        }
-        handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);
-        "focusout" === domEventName &&
-          targetInst &&
-          "number" === reactName.type &&
-          null != targetInst.memoizedProps.value &&
-          setDefaultValue(reactName, "number", reactName.value);
-      }
-      handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;
-      switch (domEventName) {
-        case "focusin":
-          if (
-            isTextInputElement(handleEventFunc) ||
-            "true" === handleEventFunc.contentEditable
-          )
-            (activeElement = handleEventFunc),
-              (activeElementInst = targetInst),
-              (lastSelection = null);
-          break;
-        case "focusout":
-          lastSelection = activeElementInst = activeElement = null;
-          break;
-        case "mousedown":
-          mouseDown = !0;
-          break;
-        case "contextmenu":
-        case "mouseup":
-        case "dragend":
-          mouseDown = !1;
-          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
-          break;
-        case "selectionchange":
-          if (skipSelectionChangeEvent) break;
-        case "keydown":
-        case "keyup":
-          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
-      }
-      var fallbackData;
-      if (canUseCompositionEvent)
-        b: {
-          switch (domEventName) {
-            case "compositionstart":
-              var eventType = "onCompositionStart";
-              break b;
-            case "compositionend":
-              eventType = "onCompositionEnd";
-              break b;
-            case "compositionupdate":
-              eventType = "onCompositionUpdate";
-              break b;
-          }
-          eventType = void 0;
-        }
-      else
-        isComposing
-          ? isFallbackCompositionEnd(domEventName, nativeEvent) &&
-            (eventType = "onCompositionEnd")
-          : "keydown" === domEventName &&
-            229 === nativeEvent.keyCode &&
-            (eventType = "onCompositionStart");
-      eventType &&
-        (useFallbackCompositionData &&
-          "ko" !== nativeEvent.locale &&
-          (isComposing || "onCompositionStart" !== eventType
-            ? "onCompositionEnd" === eventType &&
-              isComposing &&
-              (fallbackData = getData())
-            : ((root = nativeEventTarget),
-              (startText = "value" in root ? root.value : root.textContent),
-              (isComposing = !0))),
-        (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),
-        0 < handleEventFunc.length &&
-          ((eventType = new SyntheticCompositionEvent(
-            eventType,
-            domEventName,
-            null,
-            nativeEvent,
-            nativeEventTarget
-          )),
-          dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),
-          fallbackData
-            ? (eventType.data = fallbackData)
-            : ((fallbackData = getDataFromCustomEvent(nativeEvent)),
-              null !== fallbackData && (eventType.data = fallbackData))));
-      if (
-        (fallbackData = canUseTextInputEvent
-          ? getNativeBeforeInputChars(domEventName, nativeEvent)
-          : getFallbackBeforeInputChars(domEventName, nativeEvent))
-      )
-        (eventType = accumulateTwoPhaseListeners(targetInst, "onBeforeInput")),
-          0 < eventType.length &&
-            ((handleEventFunc = new SyntheticCompositionEvent(
-              "onBeforeInput",
-              "beforeinput",
-              null,
-              nativeEvent,
-              nativeEventTarget
-            )),
-            dispatchQueue.push({
-              event: handleEventFunc,
-              listeners: eventType
-            }),
-            (handleEventFunc.data = fallbackData));
-      extractEvents$1(
-        dispatchQueue,
-        domEventName,
-        targetInst,
-        nativeEvent,
-        nativeEventTarget
-      );
-    }
-    processDispatchQueue(dispatchQueue, eventSystemFlags);
-  });
-}
-function createDispatchListener(instance, listener, currentTarget) {
-  return {
-    instance: instance,
-    listener: listener,
-    currentTarget: currentTarget
-  };
-}
-function accumulateTwoPhaseListeners(targetFiber, reactName) {
-  for (
-    var captureName = reactName + "Capture", listeners = [];
-    null !== targetFiber;
-
-  ) {
-    var _instance2 = targetFiber,
-      stateNode = _instance2.stateNode;
-    _instance2 = _instance2.tag;
-    (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||
-      null === stateNode ||
-      ((_instance2 = getListener(targetFiber, captureName)),
-      null != _instance2 &&
-        listeners.unshift(
-          createDispatchListener(targetFiber, _instance2, stateNode)
-        ),
-      (_instance2 = getListener(targetFiber, reactName)),
-      null != _instance2 &&
-        listeners.push(
-          createDispatchListener(targetFiber, _instance2, stateNode)
-        ));
-    if (3 === targetFiber.tag) return listeners;
-    targetFiber = targetFiber.return;
-  }
-  return [];
-}
-function getParent(inst) {
-  if (null === inst) return null;
-  do inst = inst.return;
-  while (inst && 5 !== inst.tag && 27 !== inst.tag);
-  return inst ? inst : null;
-}
-function accumulateEnterLeaveListenersForEvent(
-  dispatchQueue,
-  event,
-  target,
-  common,
-  inCapturePhase
-) {
-  for (
-    var registrationName = event._reactName, listeners = [];
-    null !== target && target !== common;
-
-  ) {
-    var _instance3 = target,
-      alternate = _instance3.alternate,
-      stateNode = _instance3.stateNode;
-    _instance3 = _instance3.tag;
-    if (null !== alternate && alternate === common) break;
-    (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||
-      null === stateNode ||
-      ((alternate = stateNode),
-      inCapturePhase
-        ? ((stateNode = getListener(target, registrationName)),
-          null != stateNode &&
-            listeners.unshift(
-              createDispatchListener(target, stateNode, alternate)
-            ))
-        : inCapturePhase ||
-          ((stateNode = getListener(target, registrationName)),
-          null != stateNode &&
-            listeners.push(
-              createDispatchListener(target, stateNode, alternate)
-            )));
-    target = target.return;
-  }
-  0 !== listeners.length &&
-    dispatchQueue.push({ event: event, listeners: listeners });
-}
-var NORMALIZE_NEWLINES_REGEX = /\r\n?/g,
-  NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g;
-function normalizeMarkupForTextOrAttribute(markup) {
-  return ("string" === typeof markup ? markup : "" + markup)
-    .replace(NORMALIZE_NEWLINES_REGEX, "\n")
-    .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, "");
-}
-function checkForUnmatchedText(serverText, clientText) {
-  clientText = normalizeMarkupForTextOrAttribute(clientText);
-  return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;
-}
-function setProp(domElement, tag, key, value, props, prevValue) {
-  switch (key) {
-    case "children":
-      "string" === typeof value
-        ? "body" === tag ||
-          ("textarea" === tag && "" === value) ||
-          setTextContent(domElement, value)
-        : ("number" === typeof value || "bigint" === typeof value) &&
-          "body" !== tag &&
-          setTextContent(domElement, "" + value);
-      break;
-    case "className":
-      setValueForKnownAttribute(domElement, "class", value);
-      break;
-    case "tabIndex":
-      setValueForKnownAttribute(domElement, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      setValueForKnownAttribute(domElement, key, value);
-      break;
-    case "style":
-      setValueForStyles(domElement, value, prevValue);
-      break;
-    case "data":
-      if ("object" !== tag) {
-        setValueForKnownAttribute(domElement, "data", value);
-        break;
-      }
-    case "src":
-    case "href":
-      if ("" === value && ("a" !== tag || "href" !== key)) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      ) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      value = sanitizeURL("" + value);
-      domElement.setAttribute(key, value);
-      break;
-    case "action":
-    case "formAction":
-      if ("function" === typeof value) {
-        domElement.setAttribute(
-          key,
-          "javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"
-        );
-        break;
-      } else
-        "function" === typeof prevValue &&
-          ("formAction" === key
-            ? ("input" !== tag &&
-                setProp(domElement, tag, "name", props.name, props, null),
-              setProp(
-                domElement,
-                tag,
-                "formEncType",
-                props.formEncType,
-                props,
-                null
-              ),
-              setProp(
-                domElement,
-                tag,
-                "formMethod",
-                props.formMethod,
-                props,
-                null
-              ),
-              setProp(
-                domElement,
-                tag,
-                "formTarget",
-                props.formTarget,
-                props,
-                null
-              ))
-            : (setProp(domElement, tag, "encType", props.encType, props, null),
-              setProp(domElement, tag, "method", props.method, props, null),
-              setProp(domElement, tag, "target", props.target, props, null)));
-      if (
-        null == value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      ) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      value = sanitizeURL("" + value);
-      domElement.setAttribute(key, value);
-      break;
-    case "onClick":
-      null != value && (domElement.onclick = noop$1);
-      break;
-    case "onScroll":
-      null != value && listenToNonDelegatedEvent("scroll", domElement);
-      break;
-    case "onScrollEnd":
-      null != value && listenToNonDelegatedEvent("scrollend", domElement);
-      break;
-    case "dangerouslySetInnerHTML":
-      if (null != value) {
-        if ("object" !== typeof value || !("__html" in value))
-          throw Error(formatProdErrorMessage(61));
-        key = value.__html;
-        if (null != key) {
-          if (null != props.children) throw Error(formatProdErrorMessage(60));
-          domElement.innerHTML = key;
-        }
-      }
-      break;
-    case "multiple":
-      domElement.multiple =
-        value && "function" !== typeof value && "symbol" !== typeof value;
-      break;
-    case "muted":
-      domElement.muted =
-        value && "function" !== typeof value && "symbol" !== typeof value;
-      break;
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "ref":
-      break;
-    case "autoFocus":
-      break;
-    case "xlinkHref":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "boolean" === typeof value ||
-        "symbol" === typeof value
-      ) {
-        domElement.removeAttribute("xlink:href");
-        break;
-      }
-      key = sanitizeURL("" + value);
-      domElement.setAttributeNS(
-        "http://www.w3.org/1999/xlink",
-        "xlink:href",
-        key
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      null != value && "function" !== typeof value && "symbol" !== typeof value
-        ? domElement.setAttribute(key, "" + value)
-        : domElement.removeAttribute(key);
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value && "function" !== typeof value && "symbol" !== typeof value
-        ? domElement.setAttribute(key, "")
-        : domElement.removeAttribute(key);
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? domElement.setAttribute(key, "")
-        : !1 !== value &&
-            null != value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value
-          ? domElement.setAttribute(key, value)
-          : domElement.removeAttribute(key);
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      null != value &&
-      "function" !== typeof value &&
-      "symbol" !== typeof value &&
-      !isNaN(value) &&
-      1 <= value
-        ? domElement.setAttribute(key, value)
-        : domElement.removeAttribute(key);
-      break;
-    case "rowSpan":
-    case "start":
-      null == value ||
-      "function" === typeof value ||
-      "symbol" === typeof value ||
-      isNaN(value)
-        ? domElement.removeAttribute(key)
-        : domElement.setAttribute(key, value);
-      break;
-    case "popover":
-      listenToNonDelegatedEvent("beforetoggle", domElement);
-      listenToNonDelegatedEvent("toggle", domElement);
-      setValueForAttribute(domElement, "popover", value);
-      break;
-    case "xlinkActuate":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:actuate",
-        value
-      );
-      break;
-    case "xlinkArcrole":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:arcrole",
-        value
-      );
-      break;
-    case "xlinkRole":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:role",
-        value
-      );
-      break;
-    case "xlinkShow":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:show",
-        value
-      );
-      break;
-    case "xlinkTitle":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:title",
-        value
-      );
-      break;
-    case "xlinkType":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:type",
-        value
-      );
-      break;
-    case "xmlBase":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:base",
-        value
-      );
-      break;
-    case "xmlLang":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:lang",
-        value
-      );
-      break;
-    case "xmlSpace":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:space",
-        value
-      );
-      break;
-    case "is":
-      setValueForAttribute(domElement, "is", value);
-      break;
-    case "innerText":
-    case "textContent":
-      break;
-    default:
-      if (
-        !(2 < key.length) ||
-        ("o" !== key[0] && "O" !== key[0]) ||
-        ("n" !== key[1] && "N" !== key[1])
-      )
-        (key = aliases.get(key) || key),
-          setValueForAttribute(domElement, key, value);
-  }
-}
-function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
-  switch (key) {
-    case "style":
-      setValueForStyles(domElement, value, prevValue);
-      break;
-    case "dangerouslySetInnerHTML":
-      if (null != value) {
-        if ("object" !== typeof value || !("__html" in value))
-          throw Error(formatProdErrorMessage(61));
-        key = value.__html;
-        if (null != key) {
-          if (null != props.children) throw Error(formatProdErrorMessage(60));
-          domElement.innerHTML = key;
-        }
-      }
-      break;
-    case "children":
-      "string" === typeof value
-        ? setTextContent(domElement, value)
-        : ("number" === typeof value || "bigint" === typeof value) &&
-          setTextContent(domElement, "" + value);
-      break;
-    case "onScroll":
-      null != value && listenToNonDelegatedEvent("scroll", domElement);
-      break;
-    case "onScrollEnd":
-      null != value && listenToNonDelegatedEvent("scrollend", domElement);
-      break;
-    case "onClick":
-      null != value && (domElement.onclick = noop$1);
-      break;
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "innerHTML":
-    case "ref":
-      break;
-    case "innerText":
-    case "textContent":
-      break;
-    default:
-      if (!registrationNameDependencies.hasOwnProperty(key))
-        a: {
-          if (
-            "o" === key[0] &&
-            "n" === key[1] &&
-            ((props = key.endsWith("Capture")),
-            (tag = key.slice(2, props ? key.length - 7 : void 0)),
-            (prevValue = domElement[internalPropsKey] || null),
-            (prevValue = null != prevValue ? prevValue[key] : null),
-            "function" === typeof prevValue &&
-              domElement.removeEventListener(tag, prevValue, props),
-            "function" === typeof value)
-          ) {
-            "function" !== typeof prevValue &&
-              null !== prevValue &&
-              (key in domElement
-                ? (domElement[key] = null)
-                : domElement.hasAttribute(key) &&
-                  domElement.removeAttribute(key));
-            domElement.addEventListener(tag, value, props);
-            break a;
-          }
-          key in domElement
-            ? (domElement[key] = value)
-            : !0 === value
-              ? domElement.setAttribute(key, "")
-              : setValueForAttribute(domElement, key, value);
-        }
-  }
-}
-function setInitialProperties(domElement, tag, props) {
-  switch (tag) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-    case "a":
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "img":
-      listenToNonDelegatedEvent("error", domElement);
-      listenToNonDelegatedEvent("load", domElement);
-      var hasSrc = !1,
-        hasSrcSet = !1,
-        propKey;
-      for (propKey in props)
-        if (props.hasOwnProperty(propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "src":
-                hasSrc = !0;
-                break;
-              case "srcSet":
-                hasSrcSet = !0;
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(137, tag));
-              default:
-                setProp(domElement, tag, propKey, propValue, props, null);
-            }
-        }
-      hasSrcSet &&
-        setProp(domElement, tag, "srcSet", props.srcSet, props, null);
-      hasSrc && setProp(domElement, tag, "src", props.src, props, null);
-      return;
-    case "input":
-      listenToNonDelegatedEvent("invalid", domElement);
-      var defaultValue = (propKey = propValue = hasSrcSet = null),
-        checked = null,
-        defaultChecked = null;
-      for (hasSrc in props)
-        if (props.hasOwnProperty(hasSrc)) {
-          var propValue$184 = props[hasSrc];
-          if (null != propValue$184)
-            switch (hasSrc) {
-              case "name":
-                hasSrcSet = propValue$184;
-                break;
-              case "type":
-                propValue = propValue$184;
-                break;
-              case "checked":
-                checked = propValue$184;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$184;
-                break;
-              case "value":
-                propKey = propValue$184;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$184;
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                if (null != propValue$184)
-                  throw Error(formatProdErrorMessage(137, tag));
-                break;
-              default:
-                setProp(domElement, tag, hasSrc, propValue$184, props, null);
-            }
-        }
-      initInput(
-        domElement,
-        propKey,
-        defaultValue,
-        checked,
-        defaultChecked,
-        propValue,
-        hasSrcSet,
-        !1
-      );
-      return;
-    case "select":
-      listenToNonDelegatedEvent("invalid", domElement);
-      hasSrc = propValue = propKey = null;
-      for (hasSrcSet in props)
-        if (
-          props.hasOwnProperty(hasSrcSet) &&
-          ((defaultValue = props[hasSrcSet]), null != defaultValue)
-        )
-          switch (hasSrcSet) {
-            case "value":
-              propKey = defaultValue;
-              break;
-            case "defaultValue":
-              propValue = defaultValue;
-              break;
-            case "multiple":
-              hasSrc = defaultValue;
-            default:
-              setProp(domElement, tag, hasSrcSet, defaultValue, props, null);
-          }
-      tag = propKey;
-      props = propValue;
-      domElement.multiple = !!hasSrc;
-      null != tag
-        ? updateOptions(domElement, !!hasSrc, tag, !1)
-        : null != props && updateOptions(domElement, !!hasSrc, props, !0);
-      return;
-    case "textarea":
-      listenToNonDelegatedEvent("invalid", domElement);
-      propKey = hasSrcSet = hasSrc = null;
-      for (propValue in props)
-        if (
-          props.hasOwnProperty(propValue) &&
-          ((defaultValue = props[propValue]), null != defaultValue)
-        )
-          switch (propValue) {
-            case "value":
-              hasSrc = defaultValue;
-              break;
-            case "defaultValue":
-              hasSrcSet = defaultValue;
-              break;
-            case "children":
-              propKey = defaultValue;
-              break;
-            case "dangerouslySetInnerHTML":
-              if (null != defaultValue) throw Error(formatProdErrorMessage(91));
-              break;
-            default:
-              setProp(domElement, tag, propValue, defaultValue, props, null);
-          }
-      initTextarea(domElement, hasSrc, hasSrcSet, propKey);
-      return;
-    case "option":
-      for (checked in props)
-        if (
-          props.hasOwnProperty(checked) &&
-          ((hasSrc = props[checked]), null != hasSrc)
-        )
-          switch (checked) {
-            case "selected":
-              domElement.selected =
-                hasSrc &&
-                "function" !== typeof hasSrc &&
-                "symbol" !== typeof hasSrc;
-              break;
-            default:
-              setProp(domElement, tag, checked, hasSrc, props, null);
-          }
-      return;
-    case "dialog":
-      listenToNonDelegatedEvent("beforetoggle", domElement);
-      listenToNonDelegatedEvent("toggle", domElement);
-      listenToNonDelegatedEvent("cancel", domElement);
-      listenToNonDelegatedEvent("close", domElement);
-      break;
-    case "iframe":
-    case "object":
-      listenToNonDelegatedEvent("load", domElement);
-      break;
-    case "video":
-    case "audio":
-      for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)
-        listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);
-      break;
-    case "image":
-      listenToNonDelegatedEvent("error", domElement);
-      listenToNonDelegatedEvent("load", domElement);
-      break;
-    case "details":
-      listenToNonDelegatedEvent("toggle", domElement);
-      break;
-    case "embed":
-    case "source":
-    case "link":
-      listenToNonDelegatedEvent("error", domElement),
-        listenToNonDelegatedEvent("load", domElement);
-    case "area":
-    case "base":
-    case "br":
-    case "col":
-    case "hr":
-    case "keygen":
-    case "meta":
-    case "param":
-    case "track":
-    case "wbr":
-    case "menuitem":
-      for (defaultChecked in props)
-        if (
-          props.hasOwnProperty(defaultChecked) &&
-          ((hasSrc = props[defaultChecked]), null != hasSrc)
-        )
-          switch (defaultChecked) {
-            case "children":
-            case "dangerouslySetInnerHTML":
-              throw Error(formatProdErrorMessage(137, tag));
-            default:
-              setProp(domElement, tag, defaultChecked, hasSrc, props, null);
-          }
-      return;
-    default:
-      if (isCustomElement(tag)) {
-        for (propValue$184 in props)
-          props.hasOwnProperty(propValue$184) &&
-            ((hasSrc = props[propValue$184]),
-            void 0 !== hasSrc &&
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                propValue$184,
-                hasSrc,
-                props,
-                void 0
-              ));
-        return;
-      }
-  }
-  for (defaultValue in props)
-    props.hasOwnProperty(defaultValue) &&
-      ((hasSrc = props[defaultValue]),
-      null != hasSrc &&
-        setProp(domElement, tag, defaultValue, hasSrc, props, null));
-}
-function updateProperties(domElement, tag, lastProps, nextProps) {
-  switch (tag) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-    case "a":
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "input":
-      var name = null,
-        type = null,
-        value = null,
-        defaultValue = null,
-        lastDefaultValue = null,
-        checked = null,
-        defaultChecked = null;
-      for (propKey in lastProps) {
-        var lastProp = lastProps[propKey];
-        if (lastProps.hasOwnProperty(propKey) && null != lastProp)
-          switch (propKey) {
-            case "checked":
-              break;
-            case "value":
-              break;
-            case "defaultValue":
-              lastDefaultValue = lastProp;
-            default:
-              nextProps.hasOwnProperty(propKey) ||
-                setProp(domElement, tag, propKey, null, nextProps, lastProp);
-          }
-      }
-      for (var propKey$201 in nextProps) {
-        var propKey = nextProps[propKey$201];
-        lastProp = lastProps[propKey$201];
-        if (
-          nextProps.hasOwnProperty(propKey$201) &&
-          (null != propKey || null != lastProp)
-        )
-          switch (propKey$201) {
-            case "type":
-              type = propKey;
-              break;
-            case "name":
-              name = propKey;
-              break;
-            case "checked":
-              checked = propKey;
-              break;
-            case "defaultChecked":
-              defaultChecked = propKey;
-              break;
-            case "value":
-              value = propKey;
-              break;
-            case "defaultValue":
-              defaultValue = propKey;
-              break;
-            case "children":
-            case "dangerouslySetInnerHTML":
-              if (null != propKey)
-                throw Error(formatProdErrorMessage(137, tag));
-              break;
-            default:
-              propKey !== lastProp &&
-                setProp(
-                  domElement,
-                  tag,
-                  propKey$201,
-                  propKey,
-                  nextProps,
-                  lastProp
-                );
-          }
-      }
-      updateInput(
-        domElement,
-        value,
-        defaultValue,
-        lastDefaultValue,
-        checked,
-        defaultChecked,
-        type,
-        name
-      );
-      return;
-    case "select":
-      propKey = value = defaultValue = propKey$201 = null;
-      for (type in lastProps)
-        if (
-          ((lastDefaultValue = lastProps[type]),
-          lastProps.hasOwnProperty(type) && null != lastDefaultValue)
-        )
-          switch (type) {
-            case "value":
-              break;
-            case "multiple":
-              propKey = lastDefaultValue;
-            default:
-              nextProps.hasOwnProperty(type) ||
-                setProp(
-                  domElement,
-                  tag,
-                  type,
-                  null,
-                  nextProps,
-                  lastDefaultValue
-                );
-          }
-      for (name in nextProps)
-        if (
-          ((type = nextProps[name]),
-          (lastDefaultValue = lastProps[name]),
-          nextProps.hasOwnProperty(name) &&
-            (null != type || null != lastDefaultValue))
-        )
-          switch (name) {
-            case "value":
-              propKey$201 = type;
-              break;
-            case "defaultValue":
-              defaultValue = type;
-              break;
-            case "multiple":
-              value = type;
-            default:
-              type !== lastDefaultValue &&
-                setProp(
-                  domElement,
-                  tag,
-                  name,
-                  type,
-                  nextProps,
-                  lastDefaultValue
-                );
-          }
-      tag = defaultValue;
-      lastProps = value;
-      nextProps = propKey;
-      null != propKey$201
-        ? updateOptions(domElement, !!lastProps, propKey$201, !1)
-        : !!nextProps !== !!lastProps &&
-          (null != tag
-            ? updateOptions(domElement, !!lastProps, tag, !0)
-            : updateOptions(domElement, !!lastProps, lastProps ? [] : "", !1));
-      return;
-    case "textarea":
-      propKey = propKey$201 = null;
-      for (defaultValue in lastProps)
-        if (
-          ((name = lastProps[defaultValue]),
-          lastProps.hasOwnProperty(defaultValue) &&
-            null != name &&
-            !nextProps.hasOwnProperty(defaultValue))
-        )
-          switch (defaultValue) {
-            case "value":
-              break;
-            case "children":
-              break;
-            default:
-              setProp(domElement, tag, defaultValue, null, nextProps, name);
-          }
-      for (value in nextProps)
-        if (
-          ((name = nextProps[value]),
-          (type = lastProps[value]),
-          nextProps.hasOwnProperty(value) && (null != name || null != type))
-        )
-          switch (value) {
-            case "value":
-              propKey$201 = name;
-              break;
-            case "defaultValue":
-              propKey = name;
-              break;
-            case "children":
-              break;
-            case "dangerouslySetInnerHTML":
-              if (null != name) throw Error(formatProdErrorMessage(91));
-              break;
-            default:
-              name !== type &&
-                setProp(domElement, tag, value, name, nextProps, type);
-          }
-      updateTextarea(domElement, propKey$201, propKey);
-      return;
-    case "option":
-      for (var propKey$217 in lastProps)
-        if (
-          ((propKey$201 = lastProps[propKey$217]),
-          lastProps.hasOwnProperty(propKey$217) &&
-            null != propKey$201 &&
-            !nextProps.hasOwnProperty(propKey$217))
-        )
-          switch (propKey$217) {
-            case "selected":
-              domElement.selected = !1;
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                propKey$217,
-                null,
-                nextProps,
-                propKey$201
-              );
-          }
-      for (lastDefaultValue in nextProps)
-        if (
-          ((propKey$201 = nextProps[lastDefaultValue]),
-          (propKey = lastProps[lastDefaultValue]),
-          nextProps.hasOwnProperty(lastDefaultValue) &&
-            propKey$201 !== propKey &&
-            (null != propKey$201 || null != propKey))
-        )
-          switch (lastDefaultValue) {
-            case "selected":
-              domElement.selected =
-                propKey$201 &&
-                "function" !== typeof propKey$201 &&
-                "symbol" !== typeof propKey$201;
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                lastDefaultValue,
-                propKey$201,
-                nextProps,
-                propKey
-              );
-          }
-      return;
-    case "img":
-    case "link":
-    case "area":
-    case "base":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "meta":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-    case "menuitem":
-      for (var propKey$222 in lastProps)
-        (propKey$201 = lastProps[propKey$222]),
-          lastProps.hasOwnProperty(propKey$222) &&
-            null != propKey$201 &&
-            !nextProps.hasOwnProperty(propKey$222) &&
-            setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);
-      for (checked in nextProps)
-        if (
-          ((propKey$201 = nextProps[checked]),
-          (propKey = lastProps[checked]),
-          nextProps.hasOwnProperty(checked) &&
-            propKey$201 !== propKey &&
-            (null != propKey$201 || null != propKey))
-        )
-          switch (checked) {
-            case "children":
-            case "dangerouslySetInnerHTML":
-              if (null != propKey$201)
-                throw Error(formatProdErrorMessage(137, tag));
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                checked,
-                propKey$201,
-                nextProps,
-                propKey
-              );
-          }
-      return;
-    default:
-      if (isCustomElement(tag)) {
-        for (var propKey$227 in lastProps)
-          (propKey$201 = lastProps[propKey$227]),
-            lastProps.hasOwnProperty(propKey$227) &&
-              void 0 !== propKey$201 &&
-              !nextProps.hasOwnProperty(propKey$227) &&
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                propKey$227,
-                void 0,
-                nextProps,
-                propKey$201
-              );
-        for (defaultChecked in nextProps)
-          (propKey$201 = nextProps[defaultChecked]),
-            (propKey = lastProps[defaultChecked]),
-            !nextProps.hasOwnProperty(defaultChecked) ||
-              propKey$201 === propKey ||
-              (void 0 === propKey$201 && void 0 === propKey) ||
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                defaultChecked,
-                propKey$201,
-                nextProps,
-                propKey
-              );
-        return;
-      }
-  }
-  for (var propKey$232 in lastProps)
-    (propKey$201 = lastProps[propKey$232]),
-      lastProps.hasOwnProperty(propKey$232) &&
-        null != propKey$201 &&
-        !nextProps.hasOwnProperty(propKey$232) &&
-        setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);
-  for (lastProp in nextProps)
-    (propKey$201 = nextProps[lastProp]),
-      (propKey = lastProps[lastProp]),
-      !nextProps.hasOwnProperty(lastProp) ||
-        propKey$201 === propKey ||
-        (null == propKey$201 && null == propKey) ||
-        setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);
-}
-function isLikelyStaticResource(initiatorType) {
-  switch (initiatorType) {
-    case "css":
-    case "script":
-    case "font":
-    case "img":
-    case "image":
-    case "input":
-    case "link":
-      return !0;
-    default:
-      return !1;
-  }
-}
-function estimateBandwidth() {
-  if ("function" === typeof performance.getEntriesByType) {
-    for (
-      var count = 0,
-        bits = 0,
-        resourceEntries = performance.getEntriesByType("resource"),
-        i = 0;
-      i < resourceEntries.length;
-      i++
-    ) {
-      var entry = resourceEntries[i],
-        transferSize = entry.transferSize,
-        initiatorType = entry.initiatorType,
-        duration = entry.duration;
-      if (transferSize && duration && isLikelyStaticResource(initiatorType)) {
-        initiatorType = 0;
-        duration = entry.responseEnd;
-        for (i += 1; i < resourceEntries.length; i++) {
-          var overlapEntry = resourceEntries[i],
-            overlapStartTime = overlapEntry.startTime;
-          if (overlapStartTime > duration) break;
-          var overlapTransferSize = overlapEntry.transferSize,
-            overlapInitiatorType = overlapEntry.initiatorType;
-          overlapTransferSize &&
-            isLikelyStaticResource(overlapInitiatorType) &&
-            ((overlapEntry = overlapEntry.responseEnd),
-            (initiatorType +=
-              overlapTransferSize *
-              (overlapEntry < duration
-                ? 1
-                : (duration - overlapStartTime) /
-                  (overlapEntry - overlapStartTime))));
-        }
-        --i;
-        bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);
-        count++;
-        if (10 < count) break;
-      }
-    }
-    if (0 < count) return bits / count / 1e6;
-  }
-  return navigator.connection &&
-    ((count = navigator.connection.downlink), "number" === typeof count)
-    ? count
-    : 5;
-}
-var eventsEnabled = null,
-  selectionInformation = null;
-function getOwnerDocumentFromRootContainer(rootContainerElement) {
-  return 9 === rootContainerElement.nodeType
-    ? rootContainerElement
-    : rootContainerElement.ownerDocument;
-}
-function getOwnHostContext(namespaceURI) {
-  switch (namespaceURI) {
-    case "http://www.w3.org/2000/svg":
-      return 1;
-    case "http://www.w3.org/1998/Math/MathML":
-      return 2;
-    default:
-      return 0;
-  }
-}
-function getChildHostContextProd(parentNamespace, type) {
-  if (0 === parentNamespace)
-    switch (type) {
-      case "svg":
-        return 1;
-      case "math":
-        return 2;
-      default:
-        return 0;
-    }
-  return 1 === parentNamespace && "foreignObject" === type
-    ? 0
-    : parentNamespace;
-}
-function shouldSetTextContent(type, props) {
-  return (
-    "textarea" === type ||
-    "noscript" === type ||
-    "string" === typeof props.children ||
-    "number" === typeof props.children ||
-    "bigint" === typeof props.children ||
-    ("object" === typeof props.dangerouslySetInnerHTML &&
-      null !== props.dangerouslySetInnerHTML &&
-      null != props.dangerouslySetInnerHTML.__html)
-  );
-}
-var currentPopstateTransitionEvent = null;
-function shouldAttemptEagerTransition() {
-  var event = window.event;
-  if (event && "popstate" === event.type) {
-    if (event === currentPopstateTransitionEvent) return !1;
-    currentPopstateTransitionEvent = event;
-    return !0;
-  }
-  currentPopstateTransitionEvent = null;
-  return !1;
-}
-var scheduleTimeout = "function" === typeof setTimeout ? setTimeout : void 0,
-  cancelTimeout = "function" === typeof clearTimeout ? clearTimeout : void 0,
-  localPromise = "function" === typeof Promise ? Promise : void 0,
-  scheduleMicrotask =
-    "function" === typeof queueMicrotask
-      ? queueMicrotask
-      : "undefined" !== typeof localPromise
-        ? function (callback) {
-            return localPromise
-              .resolve(null)
-              .then(callback)
-              .catch(handleErrorInNextTick);
-          }
-        : scheduleTimeout;
-function handleErrorInNextTick(error) {
-  setTimeout(function () {
-    throw error;
-  });
-}
-function isSingletonScope(type) {
-  return "head" === type;
-}
-function clearHydrationBoundary(parentInstance, hydrationInstance) {
-  var node = hydrationInstance,
-    depth = 0;
-  do {
-    var nextNode = node.nextSibling;
-    parentInstance.removeChild(node);
-    if (nextNode && 8 === nextNode.nodeType)
-      if (((node = nextNode.data), "/$" === node || "/&" === node)) {
-        if (0 === depth) {
-          parentInstance.removeChild(nextNode);
-          retryIfBlockedOn(hydrationInstance);
-          return;
-        }
-        depth--;
-      } else if (
-        "$" === node ||
-        "$?" === node ||
-        "$~" === node ||
-        "$!" === node ||
-        "&" === node
-      )
-        depth++;
-      else if ("html" === node)
-        releaseSingletonInstance(parentInstance.ownerDocument.documentElement);
-      else if ("head" === node) {
-        node = parentInstance.ownerDocument.head;
-        releaseSingletonInstance(node);
-        for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {
-          var nextNode$jscomp$0 = node$jscomp$0.nextSibling,
-            nodeName = node$jscomp$0.nodeName;
-          node$jscomp$0[internalHoistableMarker] ||
-            "SCRIPT" === nodeName ||
-            "STYLE" === nodeName ||
-            ("LINK" === nodeName &&
-              "stylesheet" === node$jscomp$0.rel.toLowerCase()) ||
-            node.removeChild(node$jscomp$0);
-          node$jscomp$0 = nextNode$jscomp$0;
-        }
-      } else
-        "body" === node &&
-          releaseSingletonInstance(parentInstance.ownerDocument.body);
-    node = nextNode;
-  } while (node);
-  retryIfBlockedOn(hydrationInstance);
-}
-function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {
-  var node = suspenseInstance;
-  suspenseInstance = 0;
-  do {
-    var nextNode = node.nextSibling;
-    1 === node.nodeType
-      ? isHidden
-        ? ((node._stashedDisplay = node.style.display),
-          (node.style.display = "none"))
-        : ((node.style.display = node._stashedDisplay || ""),
-          "" === node.getAttribute("style") && node.removeAttribute("style"))
-      : 3 === node.nodeType &&
-        (isHidden
-          ? ((node._stashedText = node.nodeValue), (node.nodeValue = ""))
-          : (node.nodeValue = node._stashedText || ""));
-    if (nextNode && 8 === nextNode.nodeType)
-      if (((node = nextNode.data), "/$" === node))
-        if (0 === suspenseInstance) break;
-        else suspenseInstance--;
-      else
-        ("$" !== node && "$?" !== node && "$~" !== node && "$!" !== node) ||
-          suspenseInstance++;
-    node = nextNode;
-  } while (node);
-}
-function clearContainerSparingly(container) {
-  var nextNode = container.firstChild;
-  nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);
-  for (; nextNode; ) {
-    var node = nextNode;
-    nextNode = nextNode.nextSibling;
-    switch (node.nodeName) {
-      case "HTML":
-      case "HEAD":
-      case "BODY":
-        clearContainerSparingly(node);
-        detachDeletedInstance(node);
-        continue;
-      case "SCRIPT":
-      case "STYLE":
-        continue;
-      case "LINK":
-        if ("stylesheet" === node.rel.toLowerCase()) continue;
-    }
-    container.removeChild(node);
-  }
-}
-function canHydrateInstance(instance, type, props, inRootOrSingleton) {
-  for (; 1 === instance.nodeType; ) {
-    var anyProps = props;
-    if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
-      if (
-        !inRootOrSingleton &&
-        ("INPUT" !== instance.nodeName || "hidden" !== instance.type)
-      )
-        break;
-    } else if (!inRootOrSingleton)
-      if ("input" === type && "hidden" === instance.type) {
-        var name = null == anyProps.name ? null : "" + anyProps.name;
-        if (
-          "hidden" === anyProps.type &&
-          instance.getAttribute("name") === name
-        )
-          return instance;
-      } else return instance;
-    else if (!instance[internalHoistableMarker])
-      switch (type) {
-        case "meta":
-          if (!instance.hasAttribute("itemprop")) break;
-          return instance;
-        case "link":
-          name = instance.getAttribute("rel");
-          if ("stylesheet" === name && instance.hasAttribute("data-precedence"))
-            break;
-          else if (
-            name !== anyProps.rel ||
-            instance.getAttribute("href") !==
-              (null == anyProps.href || "" === anyProps.href
-                ? null
-                : anyProps.href) ||
-            instance.getAttribute("crossorigin") !==
-              (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||
-            instance.getAttribute("title") !==
-              (null == anyProps.title ? null : anyProps.title)
-          )
-            break;
-          return instance;
-        case "style":
-          if (instance.hasAttribute("data-precedence")) break;
-          return instance;
-        case "script":
-          name = instance.getAttribute("src");
-          if (
-            (name !== (null == anyProps.src ? null : anyProps.src) ||
-              instance.getAttribute("type") !==
-                (null == anyProps.type ? null : anyProps.type) ||
-              instance.getAttribute("crossorigin") !==
-                (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&
-            name &&
-            instance.hasAttribute("async") &&
-            !instance.hasAttribute("itemprop")
-          )
-            break;
-          return instance;
-        default:
-          return instance;
-      }
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) break;
-  }
-  return null;
-}
-function canHydrateTextInstance(instance, text, inRootOrSingleton) {
-  if ("" === text) return null;
-  for (; 3 !== instance.nodeType; ) {
-    if (
-      (1 !== instance.nodeType ||
-        "INPUT" !== instance.nodeName ||
-        "hidden" !== instance.type) &&
-      !inRootOrSingleton
-    )
-      return null;
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) return null;
-  }
-  return instance;
-}
-function canHydrateHydrationBoundary(instance, inRootOrSingleton) {
-  for (; 8 !== instance.nodeType; ) {
-    if (
-      (1 !== instance.nodeType ||
-        "INPUT" !== instance.nodeName ||
-        "hidden" !== instance.type) &&
-      !inRootOrSingleton
-    )
-      return null;
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) return null;
-  }
-  return instance;
-}
-function isSuspenseInstancePending(instance) {
-  return "$?" === instance.data || "$~" === instance.data;
-}
-function isSuspenseInstanceFallback(instance) {
-  return (
-    "$!" === instance.data ||
-    ("$?" === instance.data && "loading" !== instance.ownerDocument.readyState)
-  );
-}
-function registerSuspenseInstanceRetry(instance, callback) {
-  var ownerDocument = instance.ownerDocument;
-  if ("$~" === instance.data) instance._reactRetry = callback;
-  else if ("$?" !== instance.data || "loading" !== ownerDocument.readyState)
-    callback();
-  else {
-    var listener = function () {
-      callback();
-      ownerDocument.removeEventListener("DOMContentLoaded", listener);
-    };
-    ownerDocument.addEventListener("DOMContentLoaded", listener);
-    instance._reactRetry = listener;
-  }
-}
-function getNextHydratable(node) {
-  for (; null != node; node = node.nextSibling) {
-    var nodeType = node.nodeType;
-    if (1 === nodeType || 3 === nodeType) break;
-    if (8 === nodeType) {
-      nodeType = node.data;
-      if (
-        "$" === nodeType ||
-        "$!" === nodeType ||
-        "$?" === nodeType ||
-        "$~" === nodeType ||
-        "&" === nodeType ||
-        "F!" === nodeType ||
-        "F" === nodeType
-      )
-        break;
-      if ("/$" === nodeType || "/&" === nodeType) return null;
-    }
-  }
-  return node;
-}
-var previousHydratableOnEnteringScopedSingleton = null;
-function getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {
-  hydrationInstance = hydrationInstance.nextSibling;
-  for (var depth = 0; hydrationInstance; ) {
-    if (8 === hydrationInstance.nodeType) {
-      var data = hydrationInstance.data;
-      if ("/$" === data || "/&" === data) {
-        if (0 === depth)
-          return getNextHydratable(hydrationInstance.nextSibling);
-        depth--;
-      } else
-        ("$" !== data &&
-          "$!" !== data &&
-          "$?" !== data &&
-          "$~" !== data &&
-          "&" !== data) ||
-          depth++;
-    }
-    hydrationInstance = hydrationInstance.nextSibling;
-  }
-  return null;
-}
-function getParentHydrationBoundary(targetInstance) {
-  targetInstance = targetInstance.previousSibling;
-  for (var depth = 0; targetInstance; ) {
-    if (8 === targetInstance.nodeType) {
-      var data = targetInstance.data;
-      if (
-        "$" === data ||
-        "$!" === data ||
-        "$?" === data ||
-        "$~" === data ||
-        "&" === data
-      ) {
-        if (0 === depth) return targetInstance;
-        depth--;
-      } else ("/$" !== data && "/&" !== data) || depth++;
-    }
-    targetInstance = targetInstance.previousSibling;
-  }
-  return null;
-}
-function resolveSingletonInstance(type, props, rootContainerInstance) {
-  props = getOwnerDocumentFromRootContainer(rootContainerInstance);
-  switch (type) {
-    case "html":
-      type = props.documentElement;
-      if (!type) throw Error(formatProdErrorMessage(452));
-      return type;
-    case "head":
-      type = props.head;
-      if (!type) throw Error(formatProdErrorMessage(453));
-      return type;
-    case "body":
-      type = props.body;
-      if (!type) throw Error(formatProdErrorMessage(454));
-      return type;
-    default:
-      throw Error(formatProdErrorMessage(451));
-  }
-}
-function releaseSingletonInstance(instance) {
-  for (var attributes = instance.attributes; attributes.length; )
-    instance.removeAttributeNode(attributes[0]);
-  detachDeletedInstance(instance);
-}
-var preloadPropsMap = new Map(),
-  preconnectsSet = new Set();
-function getHoistableRoot(container) {
-  return "function" === typeof container.getRootNode
-    ? container.getRootNode()
-    : 9 === container.nodeType
-      ? container
-      : container.ownerDocument;
-}
-var previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: flushSyncWork,
-  r: requestFormReset,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-function flushSyncWork() {
-  var previousWasRendering = previousDispatcher.f(),
-    wasRendering = flushSyncWork$1();
-  return previousWasRendering || wasRendering;
-}
-function requestFormReset(form) {
-  var formInst = getInstanceFromNode(form);
-  null !== formInst && 5 === formInst.tag && "form" === formInst.type
-    ? requestFormReset$1(formInst)
-    : previousDispatcher.r(form);
-}
-var globalDocument = "undefined" === typeof document ? null : document;
-function preconnectAs(rel, href, crossOrigin) {
-  var ownerDocument = globalDocument;
-  if (ownerDocument && "string" === typeof href && href) {
-    var limitedEscapedHref =
-      escapeSelectorAttributeValueInsideDoubleQuotes(href);
-    limitedEscapedHref =
-      'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]';
-    "string" === typeof crossOrigin &&
-      (limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]');
-    preconnectsSet.has(limitedEscapedHref) ||
-      (preconnectsSet.add(limitedEscapedHref),
-      (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),
-      null === ownerDocument.querySelector(limitedEscapedHref) &&
-        ((href = ownerDocument.createElement("link")),
-        setInitialProperties(href, "link", rel),
-        markNodeAsHoistable(href),
-        ownerDocument.head.appendChild(href)));
-  }
-}
-function prefetchDNS(href) {
-  previousDispatcher.D(href);
-  preconnectAs("dns-prefetch", href, null);
-}
-function preconnect(href, crossOrigin) {
-  previousDispatcher.C(href, crossOrigin);
-  preconnectAs("preconnect", href, crossOrigin);
-}
-function preload(href, as, options) {
-  previousDispatcher.L(href, as, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href && as) {
-    var preloadSelector =
-      'link[rel="preload"][as="' +
-      escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-      '"]';
-    "image" === as
-      ? options && options.imageSrcSet
-        ? ((preloadSelector +=
-            '[imagesrcset="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(
-              options.imageSrcSet
-            ) +
-            '"]'),
-          "string" === typeof options.imageSizes &&
-            (preloadSelector +=
-              '[imagesizes="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(
-                options.imageSizes
-              ) +
-              '"]'))
-        : (preloadSelector +=
-            '[href="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-            '"]')
-      : (preloadSelector +=
-          '[href="' +
-          escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-          '"]');
-    var key = preloadSelector;
-    switch (as) {
-      case "style":
-        key = getStyleKey(href);
-        break;
-      case "script":
-        key = getScriptKey(href);
-    }
-    preloadPropsMap.has(key) ||
-      ((href = assign(
-        {
-          rel: "preload",
-          href:
-            "image" === as && options && options.imageSrcSet ? void 0 : href,
-          as: as
-        },
-        options
-      )),
-      preloadPropsMap.set(key, href),
-      null !== ownerDocument.querySelector(preloadSelector) ||
-        ("style" === as &&
-          ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||
-        ("script" === as &&
-          ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||
-        ((as = ownerDocument.createElement("link")),
-        setInitialProperties(as, "link", href),
-        markNodeAsHoistable(as),
-        ownerDocument.head.appendChild(as)));
-  }
-}
-function preloadModule(href, options) {
-  previousDispatcher.m(href, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href) {
-    var as = options && "string" === typeof options.as ? options.as : "script",
-      preloadSelector =
-        'link[rel="modulepreload"][as="' +
-        escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-        '"][href="' +
-        escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-        '"]',
-      key = preloadSelector;
-    switch (as) {
-      case "audioworklet":
-      case "paintworklet":
-      case "serviceworker":
-      case "sharedworker":
-      case "worker":
-      case "script":
-        key = getScriptKey(href);
-    }
-    if (
-      !preloadPropsMap.has(key) &&
-      ((href = assign({ rel: "modulepreload", href: href }, options)),
-      preloadPropsMap.set(key, href),
-      null === ownerDocument.querySelector(preloadSelector))
-    ) {
-      switch (as) {
-        case "audioworklet":
-        case "paintworklet":
-        case "serviceworker":
-        case "sharedworker":
-        case "worker":
-        case "script":
-          if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))
-            return;
-      }
-      as = ownerDocument.createElement("link");
-      setInitialProperties(as, "link", href);
-      markNodeAsHoistable(as);
-      ownerDocument.head.appendChild(as);
-    }
-  }
-}
-function preinitStyle(href, precedence, options) {
-  previousDispatcher.S(href, precedence, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href) {
-    var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,
-      key = getStyleKey(href);
-    precedence = precedence || "default";
-    var resource = styles.get(key);
-    if (!resource) {
-      var state = { loading: 0, preload: null };
-      if (
-        (resource = ownerDocument.querySelector(
-          getStylesheetSelectorFromKey(key)
-        ))
-      )
-        state.loading = 5;
-      else {
-        href = assign(
-          { rel: "stylesheet", href: href, "data-precedence": precedence },
-          options
-        );
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForStylesheet(href, options);
-        var link = (resource = ownerDocument.createElement("link"));
-        markNodeAsHoistable(link);
-        setInitialProperties(link, "link", href);
-        link._p = new Promise(function (resolve, reject) {
-          link.onload = resolve;
-          link.onerror = reject;
-        });
-        link.addEventListener("load", function () {
-          state.loading |= 1;
-        });
-        link.addEventListener("error", function () {
-          state.loading |= 2;
-        });
-        state.loading |= 4;
-        insertStylesheet(resource, precedence, ownerDocument);
-      }
-      resource = {
-        type: "stylesheet",
-        instance: resource,
-        count: 1,
-        state: state
-      };
-      styles.set(key, resource);
-    }
-  }
-}
-function preinitScript(src, options) {
-  previousDispatcher.X(src, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && src) {
-    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-      key = getScriptKey(src),
-      resource = scripts.get(key);
-    resource ||
-      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),
-      resource ||
-        ((src = assign({ src: src, async: !0 }, options)),
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForScript(src, options),
-        (resource = ownerDocument.createElement("script")),
-        markNodeAsHoistable(resource),
-        setInitialProperties(resource, "link", src),
-        ownerDocument.head.appendChild(resource)),
-      (resource = {
-        type: "script",
-        instance: resource,
-        count: 1,
-        state: null
-      }),
-      scripts.set(key, resource));
-  }
-}
-function preinitModuleScript(src, options) {
-  previousDispatcher.M(src, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && src) {
-    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-      key = getScriptKey(src),
-      resource = scripts.get(key);
-    resource ||
-      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),
-      resource ||
-        ((src = assign({ src: src, async: !0, type: "module" }, options)),
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForScript(src, options),
-        (resource = ownerDocument.createElement("script")),
-        markNodeAsHoistable(resource),
-        setInitialProperties(resource, "link", src),
-        ownerDocument.head.appendChild(resource)),
-      (resource = {
-        type: "script",
-        instance: resource,
-        count: 1,
-        state: null
-      }),
-      scripts.set(key, resource));
-  }
-}
-function getResource(type, currentProps, pendingProps, currentResource) {
-  var JSCompiler_inline_result = (JSCompiler_inline_result =
-    rootInstanceStackCursor.current)
-    ? getHoistableRoot(JSCompiler_inline_result)
-    : null;
-  if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));
-  switch (type) {
-    case "meta":
-    case "title":
-      return null;
-    case "style":
-      return "string" === typeof pendingProps.precedence &&
-        "string" === typeof pendingProps.href
-        ? ((currentProps = getStyleKey(pendingProps.href)),
-          (pendingProps = getResourcesFromRoot(
-            JSCompiler_inline_result
-          ).hoistableStyles),
-          (currentResource = pendingProps.get(currentProps)),
-          currentResource ||
-            ((currentResource = {
-              type: "style",
-              instance: null,
-              count: 0,
-              state: null
-            }),
-            pendingProps.set(currentProps, currentResource)),
-          currentResource)
-        : { type: "void", instance: null, count: 0, state: null };
-    case "link":
-      if (
-        "stylesheet" === pendingProps.rel &&
-        "string" === typeof pendingProps.href &&
-        "string" === typeof pendingProps.precedence
-      ) {
-        type = getStyleKey(pendingProps.href);
-        var styles$243 = getResourcesFromRoot(
-            JSCompiler_inline_result
-          ).hoistableStyles,
-          resource$244 = styles$243.get(type);
-        resource$244 ||
-          ((JSCompiler_inline_result =
-            JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),
-          (resource$244 = {
-            type: "stylesheet",
-            instance: null,
-            count: 0,
-            state: { loading: 0, preload: null }
-          }),
-          styles$243.set(type, resource$244),
-          (styles$243 = JSCompiler_inline_result.querySelector(
-            getStylesheetSelectorFromKey(type)
-          )) &&
-            !styles$243._p &&
-            ((resource$244.instance = styles$243),
-            (resource$244.state.loading = 5)),
-          preloadPropsMap.has(type) ||
-            ((pendingProps = {
-              rel: "preload",
-              as: "style",
-              href: pendingProps.href,
-              crossOrigin: pendingProps.crossOrigin,
-              integrity: pendingProps.integrity,
-              media: pendingProps.media,
-              hrefLang: pendingProps.hrefLang,
-              referrerPolicy: pendingProps.referrerPolicy
-            }),
-            preloadPropsMap.set(type, pendingProps),
-            styles$243 ||
-              preloadStylesheet(
-                JSCompiler_inline_result,
-                type,
-                pendingProps,
-                resource$244.state
-              )));
-        if (currentProps && null === currentResource)
-          throw Error(formatProdErrorMessage(528, ""));
-        return resource$244;
-      }
-      if (currentProps && null !== currentResource)
-        throw Error(formatProdErrorMessage(529, ""));
-      return null;
-    case "script":
-      return (
-        (currentProps = pendingProps.async),
-        (pendingProps = pendingProps.src),
-        "string" === typeof pendingProps &&
-        currentProps &&
-        "function" !== typeof currentProps &&
-        "symbol" !== typeof currentProps
-          ? ((currentProps = getScriptKey(pendingProps)),
-            (pendingProps = getResourcesFromRoot(
-              JSCompiler_inline_result
-            ).hoistableScripts),
-            (currentResource = pendingProps.get(currentProps)),
-            currentResource ||
-              ((currentResource = {
-                type: "script",
-                instance: null,
-                count: 0,
-                state: null
-              }),
-              pendingProps.set(currentProps, currentResource)),
-            currentResource)
-          : { type: "void", instance: null, count: 0, state: null }
-      );
-    default:
-      throw Error(formatProdErrorMessage(444, type));
-  }
-}
-function getStyleKey(href) {
-  return 'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"';
-}
-function getStylesheetSelectorFromKey(key) {
-  return 'link[rel="stylesheet"][' + key + "]";
-}
-function stylesheetPropsFromRawProps(rawProps) {
-  return assign({}, rawProps, {
-    "data-precedence": rawProps.precedence,
-    precedence: null
-  });
-}
-function preloadStylesheet(ownerDocument, key, preloadProps, state) {
-  ownerDocument.querySelector('link[rel="preload"][as="style"][' + key + "]")
-    ? (state.loading = 1)
-    : ((key = ownerDocument.createElement("link")),
-      (state.preload = key),
-      key.addEventListener("load", function () {
-        return (state.loading |= 1);
-      }),
-      key.addEventListener("error", function () {
-        return (state.loading |= 2);
-      }),
-      setInitialProperties(key, "link", preloadProps),
-      markNodeAsHoistable(key),
-      ownerDocument.head.appendChild(key));
-}
-function getScriptKey(src) {
-  return '[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]';
-}
-function getScriptSelectorFromKey(key) {
-  return "script[async]" + key;
-}
-function acquireResource(hoistableRoot, resource, props) {
-  resource.count++;
-  if (null === resource.instance)
-    switch (resource.type) {
-      case "style":
-        var instance = hoistableRoot.querySelector(
-          'style[data-href~="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +
-            '"]'
-        );
-        if (instance)
-          return (
-            (resource.instance = instance),
-            markNodeAsHoistable(instance),
-            instance
-          );
-        var styleProps = assign({}, props, {
-          "data-href": props.href,
-          "data-precedence": props.precedence,
-          href: null,
-          precedence: null
-        });
-        instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(
-          "style"
-        );
-        markNodeAsHoistable(instance);
-        setInitialProperties(instance, "style", styleProps);
-        insertStylesheet(instance, props.precedence, hoistableRoot);
-        return (resource.instance = instance);
-      case "stylesheet":
-        styleProps = getStyleKey(props.href);
-        var instance$249 = hoistableRoot.querySelector(
-          getStylesheetSelectorFromKey(styleProps)
-        );
-        if (instance$249)
-          return (
-            (resource.state.loading |= 4),
-            (resource.instance = instance$249),
-            markNodeAsHoistable(instance$249),
-            instance$249
-          );
-        instance = stylesheetPropsFromRawProps(props);
-        (styleProps = preloadPropsMap.get(styleProps)) &&
-          adoptPreloadPropsForStylesheet(instance, styleProps);
-        instance$249 = (
-          hoistableRoot.ownerDocument || hoistableRoot
-        ).createElement("link");
-        markNodeAsHoistable(instance$249);
-        var linkInstance = instance$249;
-        linkInstance._p = new Promise(function (resolve, reject) {
-          linkInstance.onload = resolve;
-          linkInstance.onerror = reject;
-        });
-        setInitialProperties(instance$249, "link", instance);
-        resource.state.loading |= 4;
-        insertStylesheet(instance$249, props.precedence, hoistableRoot);
-        return (resource.instance = instance$249);
-      case "script":
-        instance$249 = getScriptKey(props.src);
-        if (
-          (styleProps = hoistableRoot.querySelector(
-            getScriptSelectorFromKey(instance$249)
-          ))
-        )
-          return (
-            (resource.instance = styleProps),
-            markNodeAsHoistable(styleProps),
-            styleProps
-          );
-        instance = props;
-        if ((styleProps = preloadPropsMap.get(instance$249)))
-          (instance = assign({}, props)),
-            adoptPreloadPropsForScript(instance, styleProps);
-        hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-        styleProps = hoistableRoot.createElement("script");
-        markNodeAsHoistable(styleProps);
-        setInitialProperties(styleProps, "link", instance);
-        hoistableRoot.head.appendChild(styleProps);
-        return (resource.instance = styleProps);
-      case "void":
-        return null;
-      default:
-        throw Error(formatProdErrorMessage(443, resource.type));
-    }
-  else
-    "stylesheet" === resource.type &&
-      0 === (resource.state.loading & 4) &&
-      ((instance = resource.instance),
-      (resource.state.loading |= 4),
-      insertStylesheet(instance, props.precedence, hoistableRoot));
-  return resource.instance;
-}
-function insertStylesheet(instance, precedence, root) {
-  for (
-    var nodes = root.querySelectorAll(
-        'link[rel="stylesheet"][data-precedence],style[data-precedence]'
-      ),
-      last = nodes.length ? nodes[nodes.length - 1] : null,
-      prior = last,
-      i = 0;
-    i < nodes.length;
-    i++
-  ) {
-    var node = nodes[i];
-    if (node.dataset.precedence === precedence) prior = node;
-    else if (prior !== last) break;
-  }
-  prior
-    ? prior.parentNode.insertBefore(instance, prior.nextSibling)
-    : ((precedence = 9 === root.nodeType ? root.head : root),
-      precedence.insertBefore(instance, precedence.firstChild));
-}
-function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
-  null == stylesheetProps.crossOrigin &&
-    (stylesheetProps.crossOrigin = preloadProps.crossOrigin);
-  null == stylesheetProps.referrerPolicy &&
-    (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);
-  null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);
-}
-function adoptPreloadPropsForScript(scriptProps, preloadProps) {
-  null == scriptProps.crossOrigin &&
-    (scriptProps.crossOrigin = preloadProps.crossOrigin);
-  null == scriptProps.referrerPolicy &&
-    (scriptProps.referrerPolicy = preloadProps.referrerPolicy);
-  null == scriptProps.integrity &&
-    (scriptProps.integrity = preloadProps.integrity);
-}
-var tagCaches = null;
-function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
-  if (null === tagCaches) {
-    var cache = new Map();
-    var caches = (tagCaches = new Map());
-    caches.set(ownerDocument, cache);
-  } else
-    (caches = tagCaches),
-      (cache = caches.get(ownerDocument)),
-      cache || ((cache = new Map()), caches.set(ownerDocument, cache));
-  if (cache.has(type)) return cache;
-  cache.set(type, null);
-  ownerDocument = ownerDocument.getElementsByTagName(type);
-  for (caches = 0; caches < ownerDocument.length; caches++) {
-    var node = ownerDocument[caches];
-    if (
-      !(
-        node[internalHoistableMarker] ||
-        node[internalInstanceKey] ||
-        ("link" === type && "stylesheet" === node.getAttribute("rel"))
-      ) &&
-      "http://www.w3.org/2000/svg" !== node.namespaceURI
-    ) {
-      var nodeKey = node.getAttribute(keyAttribute) || "";
-      nodeKey = type + nodeKey;
-      var existing = cache.get(nodeKey);
-      existing ? existing.push(node) : cache.set(nodeKey, [node]);
-    }
-  }
-  return cache;
-}
-function mountHoistable(hoistableRoot, type, instance) {
-  hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-  hoistableRoot.head.insertBefore(
-    instance,
-    "title" === type ? hoistableRoot.querySelector("head > title") : null
-  );
-}
-function isHostHoistableType(type, props, hostContext) {
-  if (1 === hostContext || null != props.itemProp) return !1;
-  switch (type) {
-    case "meta":
-    case "title":
-      return !0;
-    case "style":
-      if (
-        "string" !== typeof props.precedence ||
-        "string" !== typeof props.href ||
-        "" === props.href
-      )
-        break;
-      return !0;
-    case "link":
-      if (
-        "string" !== typeof props.rel ||
-        "string" !== typeof props.href ||
-        "" === props.href ||
-        props.onLoad ||
-        props.onError
-      )
-        break;
-      switch (props.rel) {
-        case "stylesheet":
-          return (
-            (type = props.disabled),
-            "string" === typeof props.precedence && null == type
-          );
-        default:
-          return !0;
-      }
-    case "script":
-      if (
-        props.async &&
-        "function" !== typeof props.async &&
-        "symbol" !== typeof props.async &&
-        !props.onLoad &&
-        !props.onError &&
-        props.src &&
-        "string" === typeof props.src
-      )
-        return !0;
-  }
-  return !1;
-}
-function preloadResource(resource) {
-  return "stylesheet" === resource.type && 0 === (resource.state.loading & 3)
-    ? !1
-    : !0;
-}
-function suspendResource(state, hoistableRoot, resource, props) {
-  if (
-    "stylesheet" === resource.type &&
-    ("string" !== typeof props.media ||
-      !1 !== matchMedia(props.media).matches) &&
-    0 === (resource.state.loading & 4)
-  ) {
-    if (null === resource.instance) {
-      var key = getStyleKey(props.href),
-        instance = hoistableRoot.querySelector(
-          getStylesheetSelectorFromKey(key)
-        );
-      if (instance) {
-        hoistableRoot = instance._p;
-        null !== hoistableRoot &&
-          "object" === typeof hoistableRoot &&
-          "function" === typeof hoistableRoot.then &&
-          (state.count++,
-          (state = onUnsuspend.bind(state)),
-          hoistableRoot.then(state, state));
-        resource.state.loading |= 4;
-        resource.instance = instance;
-        markNodeAsHoistable(instance);
-        return;
-      }
-      instance = hoistableRoot.ownerDocument || hoistableRoot;
-      props = stylesheetPropsFromRawProps(props);
-      (key = preloadPropsMap.get(key)) &&
-        adoptPreloadPropsForStylesheet(props, key);
-      instance = instance.createElement("link");
-      markNodeAsHoistable(instance);
-      var linkInstance = instance;
-      linkInstance._p = new Promise(function (resolve, reject) {
-        linkInstance.onload = resolve;
-        linkInstance.onerror = reject;
-      });
-      setInitialProperties(instance, "link", props);
-      resource.instance = instance;
-    }
-    null === state.stylesheets && (state.stylesheets = new Map());
-    state.stylesheets.set(resource, hoistableRoot);
-    (hoistableRoot = resource.state.preload) &&
-      0 === (resource.state.loading & 3) &&
-      (state.count++,
-      (resource = onUnsuspend.bind(state)),
-      hoistableRoot.addEventListener("load", resource),
-      hoistableRoot.addEventListener("error", resource));
-  }
-}
-var estimatedBytesWithinLimit = 0;
-function waitForCommitToBeReady(state, timeoutOffset) {
-  state.stylesheets &&
-    0 === state.count &&
-    insertSuspendedStylesheets(state, state.stylesheets);
-  return 0 < state.count || 0 < state.imgCount
-    ? function (commit) {
-        var stylesheetTimer = setTimeout(function () {
-          state.stylesheets &&
-            insertSuspendedStylesheets(state, state.stylesheets);
-          if (state.unsuspend) {
-            var unsuspend = state.unsuspend;
-            state.unsuspend = null;
-            unsuspend();
-          }
-        }, 6e4 + timeoutOffset);
-        0 < state.imgBytes &&
-          0 === estimatedBytesWithinLimit &&
-          (estimatedBytesWithinLimit = 62500 * estimateBandwidth());
-        var imgTimer = setTimeout(
-          function () {
-            state.waitingForImages = !1;
-            if (
-              0 === state.count &&
-              (state.stylesheets &&
-                insertSuspendedStylesheets(state, state.stylesheets),
-              state.unsuspend)
-            ) {
-              var unsuspend = state.unsuspend;
-              state.unsuspend = null;
-              unsuspend();
-            }
-          },
-          (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +
-            timeoutOffset
-        );
-        state.unsuspend = commit;
-        return function () {
-          state.unsuspend = null;
-          clearTimeout(stylesheetTimer);
-          clearTimeout(imgTimer);
-        };
-      }
-    : null;
-}
-function onUnsuspend() {
-  this.count--;
-  if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))
-    if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);
-    else if (this.unsuspend) {
-      var unsuspend = this.unsuspend;
-      this.unsuspend = null;
-      unsuspend();
-    }
-}
-var precedencesByRoot = null;
-function insertSuspendedStylesheets(state, resources) {
-  state.stylesheets = null;
-  null !== state.unsuspend &&
-    (state.count++,
-    (precedencesByRoot = new Map()),
-    resources.forEach(insertStylesheetIntoRoot, state),
-    (precedencesByRoot = null),
-    onUnsuspend.call(state));
-}
-function insertStylesheetIntoRoot(root, resource) {
-  if (!(resource.state.loading & 4)) {
-    var precedences = precedencesByRoot.get(root);
-    if (precedences) var last = precedences.get(null);
-    else {
-      precedences = new Map();
-      precedencesByRoot.set(root, precedences);
-      for (
-        var nodes = root.querySelectorAll(
-            "link[data-precedence],style[data-precedence]"
-          ),
-          i = 0;
-        i < nodes.length;
-        i++
-      ) {
-        var node = nodes[i];
-        if (
-          "LINK" === node.nodeName ||
-          "not all" !== node.getAttribute("media")
-        )
-          precedences.set(node.dataset.precedence, node), (last = node);
-      }
-      last && precedences.set(null, last);
-    }
-    nodes = resource.instance;
-    node = nodes.getAttribute("data-precedence");
-    i = precedences.get(node) || last;
-    i === last && precedences.set(null, nodes);
-    precedences.set(node, nodes);
-    this.count++;
-    last = onUnsuspend.bind(this);
-    nodes.addEventListener("load", last);
-    nodes.addEventListener("error", last);
-    i
-      ? i.parentNode.insertBefore(nodes, i.nextSibling)
-      : ((root = 9 === root.nodeType ? root.head : root),
-        root.insertBefore(nodes, root.firstChild));
-    resource.state.loading |= 4;
-  }
-}
-var HostTransitionContext = {
-  $$typeof: REACT_CONTEXT_TYPE,
-  Provider: null,
-  Consumer: null,
-  _currentValue: sharedNotPendingObject,
-  _currentValue2: sharedNotPendingObject,
-  _threadCount: 0
-};
-function FiberRootNode(
-  containerInfo,
-  tag,
-  hydrate,
-  identifierPrefix,
-  onUncaughtError,
-  onCaughtError,
-  onRecoverableError,
-  onDefaultTransitionIndicator,
-  formState
-) {
-  this.tag = 1;
-  this.containerInfo = containerInfo;
-  this.pingCache = this.current = this.pendingChildren = null;
-  this.timeoutHandle = -1;
-  this.callbackNode =
-    this.next =
-    this.pendingContext =
-    this.context =
-    this.cancelPendingCommit =
-      null;
-  this.callbackPriority = 0;
-  this.expirationTimes = createLaneMap(-1);
-  this.entangledLanes =
-    this.shellSuspendCounter =
-    this.errorRecoveryDisabledLanes =
-    this.expiredLanes =
-    this.warmLanes =
-    this.pingedLanes =
-    this.suspendedLanes =
-    this.pendingLanes =
-      0;
-  this.entanglements = createLaneMap(0);
-  this.hiddenUpdates = createLaneMap(null);
-  this.identifierPrefix = identifierPrefix;
-  this.onUncaughtError = onUncaughtError;
-  this.onCaughtError = onCaughtError;
-  this.onRecoverableError = onRecoverableError;
-  this.pooledCache = null;
-  this.pooledCacheLanes = 0;
-  this.formState = formState;
-  this.incompleteTransitions = new Map();
-}
-function createFiberRoot(
-  containerInfo,
-  tag,
-  hydrate,
-  initialChildren,
-  hydrationCallbacks,
-  isStrictMode,
-  identifierPrefix,
-  formState,
-  onUncaughtError,
-  onCaughtError,
-  onRecoverableError,
-  onDefaultTransitionIndicator
-) {
-  containerInfo = new FiberRootNode(
-    containerInfo,
-    tag,
-    hydrate,
-    identifierPrefix,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    onDefaultTransitionIndicator,
-    formState
-  );
-  tag = 1;
-  !0 === isStrictMode && (tag |= 24);
-  isStrictMode = createFiberImplClass(3, null, null, tag);
-  containerInfo.current = isStrictMode;
-  isStrictMode.stateNode = containerInfo;
-  tag = createCache();
-  tag.refCount++;
-  containerInfo.pooledCache = tag;
-  tag.refCount++;
-  isStrictMode.memoizedState = {
-    element: initialChildren,
-    isDehydrated: hydrate,
-    cache: tag
-  };
-  initializeUpdateQueue(isStrictMode);
-  return containerInfo;
-}
-function getContextForSubtree(parentComponent) {
-  if (!parentComponent) return emptyContextObject;
-  parentComponent = emptyContextObject;
-  return parentComponent;
-}
-function updateContainerImpl(
-  rootFiber,
-  lane,
-  element,
-  container,
-  parentComponent,
-  callback
-) {
-  parentComponent = getContextForSubtree(parentComponent);
-  null === container.context
-    ? (container.context = parentComponent)
-    : (container.pendingContext = parentComponent);
-  container = createUpdate(lane);
-  container.payload = { element: element };
-  callback = void 0 === callback ? null : callback;
-  null !== callback && (container.callback = callback);
-  element = enqueueUpdate(rootFiber, container, lane);
-  null !== element &&
-    (scheduleUpdateOnFiber(element, rootFiber, lane),
-    entangleTransitions(element, rootFiber, lane));
-}
-function markRetryLaneImpl(fiber, retryLane) {
-  fiber = fiber.memoizedState;
-  if (null !== fiber && null !== fiber.dehydrated) {
-    var a = fiber.retryLane;
-    fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;
-  }
-}
-function markRetryLaneIfNotHydrated(fiber, retryLane) {
-  markRetryLaneImpl(fiber, retryLane);
-  (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);
-}
-function attemptContinuousHydration(fiber) {
-  if (13 === fiber.tag || 31 === fiber.tag) {
-    var root = enqueueConcurrentRenderForLane(fiber, 67108864);
-    null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);
-    markRetryLaneIfNotHydrated(fiber, 67108864);
-  }
-}
-function attemptHydrationAtCurrentPriority(fiber) {
-  if (13 === fiber.tag || 31 === fiber.tag) {
-    var lane = requestUpdateLane();
-    lane = getBumpedLaneForHydrationByLane(lane);
-    var root = enqueueConcurrentRenderForLane(fiber, lane);
-    null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-    markRetryLaneIfNotHydrated(fiber, lane);
-  }
-}
-var _enabled = !0;
-function dispatchDiscreteEvent(
-  domEventName,
-  eventSystemFlags,
-  container,
-  nativeEvent
-) {
-  var prevTransition = ReactSharedInternals.T;
-  ReactSharedInternals.T = null;
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    (ReactDOMSharedInternals.p = 2),
-      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function dispatchContinuousEvent(
-  domEventName,
-  eventSystemFlags,
-  container,
-  nativeEvent
-) {
-  var prevTransition = ReactSharedInternals.T;
-  ReactSharedInternals.T = null;
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    (ReactDOMSharedInternals.p = 8),
-      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function dispatchEvent(
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  if (_enabled) {
-    var blockedOn = findInstanceBlockingEvent(nativeEvent);
-    if (null === blockedOn)
-      dispatchEventForPluginEventSystem(
-        domEventName,
-        eventSystemFlags,
-        nativeEvent,
-        return_targetInst,
-        targetContainer
-      ),
-        clearIfContinuousEvent(domEventName, nativeEvent);
-    else if (
-      queueIfContinuousEvent(
-        blockedOn,
-        domEventName,
-        eventSystemFlags,
-        targetContainer,
-        nativeEvent
-      )
-    )
-      nativeEvent.stopPropagation();
-    else if (
-      (clearIfContinuousEvent(domEventName, nativeEvent),
-      eventSystemFlags & 4 &&
-        -1 < discreteReplayableEvents.indexOf(domEventName))
-    ) {
-      for (; null !== blockedOn; ) {
-        var fiber = getInstanceFromNode(blockedOn);
-        if (null !== fiber)
-          switch (fiber.tag) {
-            case 3:
-              fiber = fiber.stateNode;
-              if (fiber.current.memoizedState.isDehydrated) {
-                var lanes = getHighestPriorityLanes(fiber.pendingLanes);
-                if (0 !== lanes) {
-                  var root = fiber;
-                  root.pendingLanes |= 2;
-                  for (root.entangledLanes |= 2; lanes; ) {
-                    var lane = 1 << (31 - clz32(lanes));
-                    root.entanglements[1] |= lane;
-                    lanes &= ~lane;
-                  }
-                  ensureRootIsScheduled(fiber);
-                  0 === (executionContext & 6) &&
-                    ((workInProgressRootRenderTargetTime = now() + 500),
-                    flushSyncWorkAcrossRoots_impl(0, !1));
-                }
-              }
-              break;
-            case 31:
-            case 13:
-              (root = enqueueConcurrentRenderForLane(fiber, 2)),
-                null !== root && scheduleUpdateOnFiber(root, fiber, 2),
-                flushSyncWork$1(),
-                markRetryLaneIfNotHydrated(fiber, 2);
-          }
-        fiber = findInstanceBlockingEvent(nativeEvent);
-        null === fiber &&
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            return_targetInst,
-            targetContainer
-          );
-        if (fiber === blockedOn) break;
-        blockedOn = fiber;
-      }
-      null !== blockedOn && nativeEvent.stopPropagation();
-    } else
-      dispatchEventForPluginEventSystem(
-        domEventName,
-        eventSystemFlags,
-        nativeEvent,
-        null,
-        targetContainer
-      );
-  }
-}
-function findInstanceBlockingEvent(nativeEvent) {
-  nativeEvent = getEventTarget(nativeEvent);
-  return findInstanceBlockingTarget(nativeEvent);
-}
-var return_targetInst = null;
-function findInstanceBlockingTarget(targetNode) {
-  return_targetInst = null;
-  targetNode = getClosestInstanceFromNode(targetNode);
-  if (null !== targetNode) {
-    var nearestMounted = getNearestMountedFiber(targetNode);
-    if (null === nearestMounted) targetNode = null;
-    else {
-      var tag = nearestMounted.tag;
-      if (13 === tag) {
-        targetNode = getSuspenseInstanceFromFiber(nearestMounted);
-        if (null !== targetNode) return targetNode;
-        targetNode = null;
-      } else if (31 === tag) {
-        targetNode = getActivityInstanceFromFiber(nearestMounted);
-        if (null !== targetNode) return targetNode;
-        targetNode = null;
-      } else if (3 === tag) {
-        if (nearestMounted.stateNode.current.memoizedState.isDehydrated)
-          return 3 === nearestMounted.tag
-            ? nearestMounted.stateNode.containerInfo
-            : null;
-        targetNode = null;
-      } else nearestMounted !== targetNode && (targetNode = null);
-    }
-  }
-  return_targetInst = targetNode;
-  return null;
-}
-function getEventPriority(domEventName) {
-  switch (domEventName) {
-    case "beforetoggle":
-    case "cancel":
-    case "click":
-    case "close":
-    case "contextmenu":
-    case "copy":
-    case "cut":
-    case "auxclick":
-    case "dblclick":
-    case "dragend":
-    case "dragstart":
-    case "drop":
-    case "focusin":
-    case "focusout":
-    case "input":
-    case "invalid":
-    case "keydown":
-    case "keypress":
-    case "keyup":
-    case "mousedown":
-    case "mouseup":
-    case "paste":
-    case "pause":
-    case "play":
-    case "pointercancel":
-    case "pointerdown":
-    case "pointerup":
-    case "ratechange":
-    case "reset":
-    case "resize":
-    case "seeked":
-    case "submit":
-    case "toggle":
-    case "touchcancel":
-    case "touchend":
-    case "touchstart":
-    case "volumechange":
-    case "change":
-    case "selectionchange":
-    case "textInput":
-    case "compositionstart":
-    case "compositionend":
-    case "compositionupdate":
-    case "beforeblur":
-    case "afterblur":
-    case "beforeinput":
-    case "blur":
-    case "fullscreenchange":
-    case "focus":
-    case "hashchange":
-    case "popstate":
-    case "select":
-    case "selectstart":
-      return 2;
-    case "drag":
-    case "dragenter":
-    case "dragexit":
-    case "dragleave":
-    case "dragover":
-    case "mousemove":
-    case "mouseout":
-    case "mouseover":
-    case "pointermove":
-    case "pointerout":
-    case "pointerover":
-    case "scroll":
-    case "touchmove":
-    case "wheel":
-    case "mouseenter":
-    case "mouseleave":
-    case "pointerenter":
-    case "pointerleave":
-      return 8;
-    case "message":
-      switch (getCurrentPriorityLevel()) {
-        case ImmediatePriority:
-          return 2;
-        case UserBlockingPriority:
-          return 8;
-        case NormalPriority$1:
-        case LowPriority:
-          return 32;
-        case IdlePriority:
-          return 268435456;
-        default:
-          return 32;
-      }
-    default:
-      return 32;
-  }
-}
-var hasScheduledReplayAttempt = !1,
-  queuedFocus = null,
-  queuedDrag = null,
-  queuedMouse = null,
-  queuedPointers = new Map(),
-  queuedPointerCaptures = new Map(),
-  queuedExplicitHydrationTargets = [],
-  discreteReplayableEvents =
-    "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(
-      " "
-    );
-function clearIfContinuousEvent(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "focusin":
-    case "focusout":
-      queuedFocus = null;
-      break;
-    case "dragenter":
-    case "dragleave":
-      queuedDrag = null;
-      break;
-    case "mouseover":
-    case "mouseout":
-      queuedMouse = null;
-      break;
-    case "pointerover":
-    case "pointerout":
-      queuedPointers.delete(nativeEvent.pointerId);
-      break;
-    case "gotpointercapture":
-    case "lostpointercapture":
-      queuedPointerCaptures.delete(nativeEvent.pointerId);
-  }
-}
-function accumulateOrCreateContinuousQueuedReplayableEvent(
-  existingQueuedEvent,
-  blockedOn,
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  if (
-    null === existingQueuedEvent ||
-    existingQueuedEvent.nativeEvent !== nativeEvent
-  )
-    return (
-      (existingQueuedEvent = {
-        blockedOn: blockedOn,
-        domEventName: domEventName,
-        eventSystemFlags: eventSystemFlags,
-        nativeEvent: nativeEvent,
-        targetContainers: [targetContainer]
-      }),
-      null !== blockedOn &&
-        ((blockedOn = getInstanceFromNode(blockedOn)),
-        null !== blockedOn && attemptContinuousHydration(blockedOn)),
-      existingQueuedEvent
-    );
-  existingQueuedEvent.eventSystemFlags |= eventSystemFlags;
-  blockedOn = existingQueuedEvent.targetContainers;
-  null !== targetContainer &&
-    -1 === blockedOn.indexOf(targetContainer) &&
-    blockedOn.push(targetContainer);
-  return existingQueuedEvent;
-}
-function queueIfContinuousEvent(
-  blockedOn,
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  switch (domEventName) {
-    case "focusin":
-      return (
-        (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedFocus,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "dragenter":
-      return (
-        (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedDrag,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "mouseover":
-      return (
-        (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedMouse,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "pointerover":
-      var pointerId = nativeEvent.pointerId;
-      queuedPointers.set(
-        pointerId,
-        accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedPointers.get(pointerId) || null,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )
-      );
-      return !0;
-    case "gotpointercapture":
-      return (
-        (pointerId = nativeEvent.pointerId),
-        queuedPointerCaptures.set(
-          pointerId,
-          accumulateOrCreateContinuousQueuedReplayableEvent(
-            queuedPointerCaptures.get(pointerId) || null,
-            blockedOn,
-            domEventName,
-            eventSystemFlags,
-            targetContainer,
-            nativeEvent
-          )
-        ),
-        !0
-      );
-  }
-  return !1;
-}
-function attemptExplicitHydrationTarget(queuedTarget) {
-  var targetInst = getClosestInstanceFromNode(queuedTarget.target);
-  if (null !== targetInst) {
-    var nearestMounted = getNearestMountedFiber(targetInst);
-    if (null !== nearestMounted)
-      if (((targetInst = nearestMounted.tag), 13 === targetInst)) {
-        if (
-          ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),
-          null !== targetInst)
-        ) {
-          queuedTarget.blockedOn = targetInst;
-          runWithPriority(queuedTarget.priority, function () {
-            attemptHydrationAtCurrentPriority(nearestMounted);
-          });
-          return;
-        }
-      } else if (31 === targetInst) {
-        if (
-          ((targetInst = getActivityInstanceFromFiber(nearestMounted)),
-          null !== targetInst)
-        ) {
-          queuedTarget.blockedOn = targetInst;
-          runWithPriority(queuedTarget.priority, function () {
-            attemptHydrationAtCurrentPriority(nearestMounted);
-          });
-          return;
-        }
-      } else if (
-        3 === targetInst &&
-        nearestMounted.stateNode.current.memoizedState.isDehydrated
-      ) {
-        queuedTarget.blockedOn =
-          3 === nearestMounted.tag
-            ? nearestMounted.stateNode.containerInfo
-            : null;
-        return;
-      }
-  }
-  queuedTarget.blockedOn = null;
-}
-function attemptReplayContinuousQueuedEvent(queuedEvent) {
-  if (null !== queuedEvent.blockedOn) return !1;
-  for (
-    var targetContainers = queuedEvent.targetContainers;
-    0 < targetContainers.length;
-
-  ) {
-    var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);
-    if (null === nextBlockedOn) {
-      nextBlockedOn = queuedEvent.nativeEvent;
-      var nativeEventClone = new nextBlockedOn.constructor(
-        nextBlockedOn.type,
-        nextBlockedOn
-      );
-      currentReplayingEvent = nativeEventClone;
-      nextBlockedOn.target.dispatchEvent(nativeEventClone);
-      currentReplayingEvent = null;
-    } else
-      return (
-        (targetContainers = getInstanceFromNode(nextBlockedOn)),
-        null !== targetContainers &&
-          attemptContinuousHydration(targetContainers),
-        (queuedEvent.blockedOn = nextBlockedOn),
-        !1
-      );
-    targetContainers.shift();
-  }
-  return !0;
-}
-function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {
-  attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);
-}
-function replayUnblockedEvents() {
-  hasScheduledReplayAttempt = !1;
-  null !== queuedFocus &&
-    attemptReplayContinuousQueuedEvent(queuedFocus) &&
-    (queuedFocus = null);
-  null !== queuedDrag &&
-    attemptReplayContinuousQueuedEvent(queuedDrag) &&
-    (queuedDrag = null);
-  null !== queuedMouse &&
-    attemptReplayContinuousQueuedEvent(queuedMouse) &&
-    (queuedMouse = null);
-  queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);
-  queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);
-}
-function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {
-  queuedEvent.blockedOn === unblocked &&
-    ((queuedEvent.blockedOn = null),
-    hasScheduledReplayAttempt ||
-      ((hasScheduledReplayAttempt = !0),
-      Scheduler.unstable_scheduleCallback(
-        Scheduler.unstable_NormalPriority,
-        replayUnblockedEvents
-      )));
-}
-var lastScheduledReplayQueue = null;
-function scheduleReplayQueueIfNeeded(formReplayingQueue) {
-  lastScheduledReplayQueue !== formReplayingQueue &&
-    ((lastScheduledReplayQueue = formReplayingQueue),
-    Scheduler.unstable_scheduleCallback(
-      Scheduler.unstable_NormalPriority,
-      function () {
-        lastScheduledReplayQueue === formReplayingQueue &&
-          (lastScheduledReplayQueue = null);
-        for (var i = 0; i < formReplayingQueue.length; i += 3) {
-          var form = formReplayingQueue[i],
-            submitterOrAction = formReplayingQueue[i + 1],
-            formData = formReplayingQueue[i + 2];
-          if ("function" !== typeof submitterOrAction)
-            if (null === findInstanceBlockingTarget(submitterOrAction || form))
-              continue;
-            else break;
-          var formInst = getInstanceFromNode(form);
-          null !== formInst &&
-            (formReplayingQueue.splice(i, 3),
-            (i -= 3),
-            startHostTransition(
-              formInst,
-              {
-                pending: !0,
-                data: formData,
-                method: form.method,
-                action: submitterOrAction
-              },
-              submitterOrAction,
-              formData
-            ));
-        }
-      }
-    ));
-}
-function retryIfBlockedOn(unblocked) {
-  function unblock(queuedEvent) {
-    return scheduleCallbackIfUnblocked(queuedEvent, unblocked);
-  }
-  null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);
-  null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);
-  null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);
-  queuedPointers.forEach(unblock);
-  queuedPointerCaptures.forEach(unblock);
-  for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {
-    var queuedTarget = queuedExplicitHydrationTargets[i];
-    queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);
-  }
-  for (
-    ;
-    0 < queuedExplicitHydrationTargets.length &&
-    ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);
-
-  )
-    attemptExplicitHydrationTarget(i),
-      null === i.blockedOn && queuedExplicitHydrationTargets.shift();
-  i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;
-  if (null != i)
-    for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {
-      var form = i[queuedTarget],
-        submitterOrAction = i[queuedTarget + 1],
-        formProps = form[internalPropsKey] || null;
-      if ("function" === typeof submitterOrAction)
-        formProps || scheduleReplayQueueIfNeeded(i);
-      else if (formProps) {
-        var action = null;
-        if (submitterOrAction && submitterOrAction.hasAttribute("formAction"))
-          if (
-            ((form = submitterOrAction),
-            (formProps = submitterOrAction[internalPropsKey] || null))
-          )
-            action = formProps.formAction;
-          else {
-            if (null !== findInstanceBlockingTarget(form)) continue;
-          }
-        else action = formProps.action;
-        "function" === typeof action
-          ? (i[queuedTarget + 1] = action)
-          : (i.splice(queuedTarget, 3), (queuedTarget -= 3));
-        scheduleReplayQueueIfNeeded(i);
-      }
-    }
-}
-function defaultOnDefaultTransitionIndicator() {
-  function handleNavigate(event) {
-    event.canIntercept &&
-      "react-transition" === event.info &&
-      event.intercept({
-        handler: function () {
-          return new Promise(function (resolve) {
-            return (pendingResolve = resolve);
-          });
-        },
-        focusReset: "manual",
-        scroll: "manual"
-      });
-  }
-  function handleNavigateComplete() {
-    null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-    isCancelled || setTimeout(startFakeNavigation, 20);
-  }
-  function startFakeNavigation() {
-    if (!isCancelled && !navigation.transition) {
-      var currentEntry = navigation.currentEntry;
-      currentEntry &&
-        null != currentEntry.url &&
-        navigation.navigate(currentEntry.url, {
-          state: currentEntry.getState(),
-          info: "react-transition",
-          history: "replace"
-        });
-    }
-  }
-  if ("object" === typeof navigation) {
-    var isCancelled = !1,
-      pendingResolve = null;
-    navigation.addEventListener("navigate", handleNavigate);
-    navigation.addEventListener("navigatesuccess", handleNavigateComplete);
-    navigation.addEventListener("navigateerror", handleNavigateComplete);
-    setTimeout(startFakeNavigation, 100);
-    return function () {
-      isCancelled = !0;
-      navigation.removeEventListener("navigate", handleNavigate);
-      navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
-      navigation.removeEventListener("navigateerror", handleNavigateComplete);
-      null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-    };
-  }
-}
-function ReactDOMRoot(internalRoot) {
-  this._internalRoot = internalRoot;
-}
-ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =
-  function (children) {
-    var root = this._internalRoot;
-    if (null === root) throw Error(formatProdErrorMessage(409));
-    var current = root.current,
-      lane = requestUpdateLane();
-    updateContainerImpl(current, lane, children, root, null, null);
-  };
-ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =
-  function () {
-    var root = this._internalRoot;
-    if (null !== root) {
-      this._internalRoot = null;
-      var container = root.containerInfo;
-      updateContainerImpl(root.current, 2, null, root, null, null);
-      flushSyncWork$1();
-      container[internalContainerInstanceKey] = null;
-    }
-  };
-function ReactDOMHydrationRoot(internalRoot) {
-  this._internalRoot = internalRoot;
-}
-ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
-  if (target) {
-    var updatePriority = resolveUpdatePriority();
-    target = { blockedOn: null, target: target, priority: updatePriority };
-    for (
-      var i = 0;
-      i < queuedExplicitHydrationTargets.length &&
-      0 !== updatePriority &&
-      updatePriority < queuedExplicitHydrationTargets[i].priority;
-      i++
-    );
-    queuedExplicitHydrationTargets.splice(i, 0, target);
-    0 === i && attemptExplicitHydrationTarget(target);
-  }
-};
-var isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;
-if (
-  "19.2.3" !==
-  isomorphicReactPackageVersion$jscomp$inline_1840
-)
-  throw Error(
-    formatProdErrorMessage(
-      527,
-      isomorphicReactPackageVersion$jscomp$inline_1840,
-      "19.2.3"
-    )
-  );
-ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
-  var fiber = componentOrElement._reactInternals;
-  if (void 0 === fiber) {
-    if ("function" === typeof componentOrElement.render)
-      throw Error(formatProdErrorMessage(188));
-    componentOrElement = Object.keys(componentOrElement).join(",");
-    throw Error(formatProdErrorMessage(268, componentOrElement));
-  }
-  componentOrElement = findCurrentFiberUsingSlowPath(fiber);
-  componentOrElement =
-    null !== componentOrElement
-      ? findCurrentHostFiberImpl(componentOrElement)
-      : null;
-  componentOrElement =
-    null === componentOrElement ? null : componentOrElement.stateNode;
-  return componentOrElement;
-};
-var internals$jscomp$inline_2347 = {
-  bundleType: 0,
-  version: "19.2.3",
-  rendererPackageName: "react-dom",
-  currentDispatcherRef: ReactSharedInternals,
-  reconcilerVersion: "19.2.3"
-};
-if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
-  var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
-  if (
-    !hook$jscomp$inline_2348.isDisabled &&
-    hook$jscomp$inline_2348.supportsFiber
-  )
-    try {
-      (rendererID = hook$jscomp$inline_2348.inject(
-        internals$jscomp$inline_2347
-      )),
-        (injectedHook = hook$jscomp$inline_2348);
-    } catch (err) {}
-}
-exports.createRoot = function (container, options) {
-  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));
-  var isStrictMode = !1,
-    identifierPrefix = "",
-    onUncaughtError = defaultOnUncaughtError,
-    onCaughtError = defaultOnCaughtError,
-    onRecoverableError = defaultOnRecoverableError;
-  null !== options &&
-    void 0 !== options &&
-    (!0 === options.unstable_strictMode && (isStrictMode = !0),
-    void 0 !== options.identifierPrefix &&
-      (identifierPrefix = options.identifierPrefix),
-    void 0 !== options.onUncaughtError &&
-      (onUncaughtError = options.onUncaughtError),
-    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),
-    void 0 !== options.onRecoverableError &&
-      (onRecoverableError = options.onRecoverableError));
-  options = createFiberRoot(
-    container,
-    1,
-    !1,
-    null,
-    null,
-    isStrictMode,
-    identifierPrefix,
-    null,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    defaultOnDefaultTransitionIndicator
-  );
-  container[internalContainerInstanceKey] = options.current;
-  listenToAllSupportedEvents(container);
-  return new ReactDOMRoot(options);
-};
-exports.hydrateRoot = function (container, initialChildren, options) {
-  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));
-  var isStrictMode = !1,
-    identifierPrefix = "",
-    onUncaughtError = defaultOnUncaughtError,
-    onCaughtError = defaultOnCaughtError,
-    onRecoverableError = defaultOnRecoverableError,
-    formState = null;
-  null !== options &&
-    void 0 !== options &&
-    (!0 === options.unstable_strictMode && (isStrictMode = !0),
-    void 0 !== options.identifierPrefix &&
-      (identifierPrefix = options.identifierPrefix),
-    void 0 !== options.onUncaughtError &&
-      (onUncaughtError = options.onUncaughtError),
-    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),
-    void 0 !== options.onRecoverableError &&
-      (onRecoverableError = options.onRecoverableError),
-    void 0 !== options.formState && (formState = options.formState));
-  initialChildren = createFiberRoot(
-    container,
-    1,
-    !0,
-    initialChildren,
-    null != options ? options : null,
-    isStrictMode,
-    identifierPrefix,
-    formState,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    defaultOnDefaultTransitionIndicator
-  );
-  initialChildren.context = getContextForSubtree(null);
-  options = initialChildren.current;
-  isStrictMode = requestUpdateLane();
-  isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);
-  identifierPrefix = createUpdate(isStrictMode);
-  identifierPrefix.callback = null;
-  enqueueUpdate(options, identifierPrefix, isStrictMode);
-  options = isStrictMode;
-  initialChildren.current.lanes = options;
-  markRootUpdated$1(initialChildren, options);
-  ensureRootIsScheduled(initialChildren);
-  container[internalContainerInstanceKey] = initialChildren.current;
-  listenToAllSupportedEvents(container);
-  return new ReactDOMHydrationRoot(initialChildren);
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-profiling.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-profiling.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28503 +1,0 @@
-/**
- * @license React
- * react-dom-profiling.development.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.
- */
-
-/*
- Modernizr 3.0.0pre (Custom Build) | MIT
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function findHook(fiber, id) {
-      for (fiber = fiber.memoizedState; null !== fiber && 0 < id; )
-        (fiber = fiber.next), id--;
-      return fiber;
-    }
-    function copyWithSetImpl(obj, path, index, value) {
-      if (index >= path.length) return value;
-      var key = path[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);
-      return updated;
-    }
-    function copyWithRename(obj, oldPath, newPath) {
-      if (oldPath.length !== newPath.length)
-        console.warn("copyWithRename() expects paths of the same length");
-      else {
-        for (var i = 0; i < newPath.length - 1; i++)
-          if (oldPath[i] !== newPath[i]) {
-            console.warn(
-              "copyWithRename() expects paths to be the same except for the deepest key"
-            );
-            return;
-          }
-        return copyWithRenameImpl(obj, oldPath, newPath, 0);
-      }
-    }
-    function copyWithRenameImpl(obj, oldPath, newPath, index) {
-      var oldKey = oldPath[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      index + 1 === oldPath.length
-        ? ((updated[newPath[index]] = updated[oldKey]),
-          isArrayImpl(updated)
-            ? updated.splice(oldKey, 1)
-            : delete updated[oldKey])
-        : (updated[oldKey] = copyWithRenameImpl(
-            obj[oldKey],
-            oldPath,
-            newPath,
-            index + 1
-          ));
-      return updated;
-    }
-    function copyWithDeleteImpl(obj, path, index) {
-      var key = path[index],
-        updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);
-      if (index + 1 === path.length)
-        return (
-          isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key],
-          updated
-        );
-      updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);
-      return updated;
-    }
-    function shouldSuspendImpl() {
-      return !1;
-    }
-    function shouldErrorImpl() {
-      return null;
-    }
-    function warnInvalidHookAccess() {
-      console.error(
-        "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-      );
-    }
-    function warnInvalidContextAccess() {
-      console.error(
-        "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-      );
-    }
-    function noop() {}
-    function warnForMissingKey() {}
-    function setToSortedString(set) {
-      var array = [];
-      set.forEach(function (value) {
-        array.push(value);
-      });
-      return array.sort().join(", ");
-    }
-    function createFiber(tag, pendingProps, key, mode) {
-      return new FiberNode(tag, pendingProps, key, mode);
-    }
-    function scheduleRoot(root, element) {
-      root.context === emptyContextObject &&
-        (updateContainerImpl(root.current, 2, element, root, null, null),
-        flushSyncWork$1());
-    }
-    function scheduleRefresh(root, update) {
-      if (null !== resolveFamily) {
-        var staleFamilies = update.staleFamilies;
-        update = update.updatedFamilies;
-        flushPendingEffects();
-        scheduleFibersWithFamiliesRecursively(
-          root.current,
-          update,
-          staleFamilies
-        );
-        flushSyncWork$1();
-      }
-    }
-    function setRefreshHandler(handler) {
-      resolveFamily = handler;
-    }
-    function isValidContainer(node) {
-      return !(
-        !node ||
-        (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)
-      );
-    }
-    function getNearestMountedFiber(fiber) {
-      var node = fiber,
-        nearestMounted = fiber;
-      if (fiber.alternate) for (; node.return; ) node = node.return;
-      else {
-        fiber = node;
-        do
-          (node = fiber),
-            0 !== (node.flags & 4098) && (nearestMounted = node.return),
-            (fiber = node.return);
-        while (fiber);
-      }
-      return 3 === node.tag ? nearestMounted : null;
-    }
-    function getSuspenseInstanceFromFiber(fiber) {
-      if (13 === fiber.tag) {
-        var suspenseState = fiber.memoizedState;
-        null === suspenseState &&
-          ((fiber = fiber.alternate),
-          null !== fiber && (suspenseState = fiber.memoizedState));
-        if (null !== suspenseState) return suspenseState.dehydrated;
-      }
-      return null;
-    }
-    function getActivityInstanceFromFiber(fiber) {
-      if (31 === fiber.tag) {
-        var activityState = fiber.memoizedState;
-        null === activityState &&
-          ((fiber = fiber.alternate),
-          null !== fiber && (activityState = fiber.memoizedState));
-        if (null !== activityState) return activityState.dehydrated;
-      }
-      return null;
-    }
-    function assertIsMounted(fiber) {
-      if (getNearestMountedFiber(fiber) !== fiber)
-        throw Error("Unable to find node on an unmounted component.");
-    }
-    function findCurrentFiberUsingSlowPath(fiber) {
-      var alternate = fiber.alternate;
-      if (!alternate) {
-        alternate = getNearestMountedFiber(fiber);
-        if (null === alternate)
-          throw Error("Unable to find node on an unmounted component.");
-        return alternate !== fiber ? null : fiber;
-      }
-      for (var a = fiber, b = alternate; ; ) {
-        var parentA = a.return;
-        if (null === parentA) break;
-        var parentB = parentA.alternate;
-        if (null === parentB) {
-          b = parentA.return;
-          if (null !== b) {
-            a = b;
-            continue;
-          }
-          break;
-        }
-        if (parentA.child === parentB.child) {
-          for (parentB = parentA.child; parentB; ) {
-            if (parentB === a) return assertIsMounted(parentA), fiber;
-            if (parentB === b) return assertIsMounted(parentA), alternate;
-            parentB = parentB.sibling;
-          }
-          throw Error("Unable to find node on an unmounted component.");
-        }
-        if (a.return !== b.return) (a = parentA), (b = parentB);
-        else {
-          for (var didFindChild = !1, _child = parentA.child; _child; ) {
-            if (_child === a) {
-              didFindChild = !0;
-              a = parentA;
-              b = parentB;
-              break;
-            }
-            if (_child === b) {
-              didFindChild = !0;
-              b = parentA;
-              a = parentB;
-              break;
-            }
-            _child = _child.sibling;
-          }
-          if (!didFindChild) {
-            for (_child = parentB.child; _child; ) {
-              if (_child === a) {
-                didFindChild = !0;
-                a = parentB;
-                b = parentA;
-                break;
-              }
-              if (_child === b) {
-                didFindChild = !0;
-                b = parentB;
-                a = parentA;
-                break;
-              }
-              _child = _child.sibling;
-            }
-            if (!didFindChild)
-              throw Error(
-                "Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."
-              );
-          }
-        }
-        if (a.alternate !== b)
-          throw Error(
-            "Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."
-          );
-      }
-      if (3 !== a.tag)
-        throw Error("Unable to find node on an unmounted component.");
-      return a.stateNode.current === a ? fiber : alternate;
-    }
-    function findCurrentHostFiberImpl(node) {
-      var tag = node.tag;
-      if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;
-      for (node = node.child; null !== node; ) {
-        tag = findCurrentHostFiberImpl(node);
-        if (null !== tag) return tag;
-        node = node.sibling;
-      }
-      return null;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function getComponentNameFromOwner(owner) {
-      return "number" === typeof owner.tag
-        ? getComponentNameFromFiber(owner)
-        : "string" === typeof owner.name
-          ? owner.name
-          : null;
-    }
-    function getComponentNameFromFiber(fiber) {
-      var type = fiber.type;
-      switch (fiber.tag) {
-        case 31:
-          return "Activity";
-        case 24:
-          return "Cache";
-        case 9:
-          return (type._context.displayName || "Context") + ".Consumer";
-        case 10:
-          return type.displayName || "Context";
-        case 18:
-          return "DehydratedFragment";
-        case 11:
-          return (
-            (fiber = type.render),
-            (fiber = fiber.displayName || fiber.name || ""),
-            type.displayName ||
-              ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef")
-          );
-        case 7:
-          return "Fragment";
-        case 26:
-        case 27:
-        case 5:
-          return type;
-        case 4:
-          return "Portal";
-        case 3:
-          return "Root";
-        case 6:
-          return "Text";
-        case 16:
-          return getComponentNameFromType(type);
-        case 8:
-          return type === REACT_STRICT_MODE_TYPE ? "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 14:
-        case 15:
-          if ("function" === typeof type)
-            return type.displayName || type.name || null;
-          if ("string" === typeof type) return type;
-          break;
-        case 29:
-          type = fiber._debugInfo;
-          if (null != type)
-            for (var i = type.length - 1; 0 <= i; i--)
-              if ("string" === typeof type[i].name) return type[i].name;
-          if (null !== fiber.return)
-            return getComponentNameFromFiber(fiber.return);
-      }
-      return null;
-    }
-    function resolveDispatcher() {
-      var dispatcher = ReactSharedInternals.H;
-      null === dispatcher &&
-        console.error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      return dispatcher;
-    }
-    function createCursor(defaultValue) {
-      return { current: defaultValue };
-    }
-    function pop(cursor, fiber) {
-      0 > index$jscomp$0
-        ? console.error("Unexpected pop.")
-        : (fiber !== fiberStack[index$jscomp$0] &&
-            console.error("Unexpected Fiber popped."),
-          (cursor.current = valueStack[index$jscomp$0]),
-          (valueStack[index$jscomp$0] = null),
-          (fiberStack[index$jscomp$0] = null),
-          index$jscomp$0--);
-    }
-    function push(cursor, value, fiber) {
-      index$jscomp$0++;
-      valueStack[index$jscomp$0] = cursor.current;
-      fiberStack[index$jscomp$0] = fiber;
-      cursor.current = value;
-    }
-    function requiredContext(c) {
-      null === c &&
-        console.error(
-          "Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."
-        );
-      return c;
-    }
-    function pushHostContainer(fiber, nextRootInstance) {
-      push(rootInstanceStackCursor, nextRootInstance, fiber);
-      push(contextFiberStackCursor, fiber, fiber);
-      push(contextStackCursor, null, fiber);
-      var nextRootContext = nextRootInstance.nodeType;
-      switch (nextRootContext) {
-        case 9:
-        case 11:
-          nextRootContext = 9 === nextRootContext ? "#document" : "#fragment";
-          nextRootInstance = (nextRootInstance =
-            nextRootInstance.documentElement)
-            ? (nextRootInstance = nextRootInstance.namespaceURI)
-              ? getOwnHostContext(nextRootInstance)
-              : HostContextNamespaceNone
-            : HostContextNamespaceNone;
-          break;
-        default:
-          if (
-            ((nextRootContext = nextRootInstance.tagName),
-            (nextRootInstance = nextRootInstance.namespaceURI))
-          )
-            (nextRootInstance = getOwnHostContext(nextRootInstance)),
-              (nextRootInstance = getChildHostContextProd(
-                nextRootInstance,
-                nextRootContext
-              ));
-          else
-            switch (nextRootContext) {
-              case "svg":
-                nextRootInstance = HostContextNamespaceSvg;
-                break;
-              case "math":
-                nextRootInstance = HostContextNamespaceMath;
-                break;
-              default:
-                nextRootInstance = HostContextNamespaceNone;
-            }
-      }
-      nextRootContext = nextRootContext.toLowerCase();
-      nextRootContext = updatedAncestorInfoDev(null, nextRootContext);
-      nextRootContext = {
-        context: nextRootInstance,
-        ancestorInfo: nextRootContext
-      };
-      pop(contextStackCursor, fiber);
-      push(contextStackCursor, nextRootContext, fiber);
-    }
-    function popHostContainer(fiber) {
-      pop(contextStackCursor, fiber);
-      pop(contextFiberStackCursor, fiber);
-      pop(rootInstanceStackCursor, fiber);
-    }
-    function getHostContext() {
-      return requiredContext(contextStackCursor.current);
-    }
-    function pushHostContext(fiber) {
-      null !== fiber.memoizedState &&
-        push(hostTransitionProviderCursor, fiber, fiber);
-      var context = requiredContext(contextStackCursor.current);
-      var type = fiber.type;
-      var nextContext = getChildHostContextProd(context.context, type);
-      type = updatedAncestorInfoDev(context.ancestorInfo, type);
-      nextContext = { context: nextContext, ancestorInfo: type };
-      context !== nextContext &&
-        (push(contextFiberStackCursor, fiber, fiber),
-        push(contextStackCursor, nextContext, fiber));
-    }
-    function popHostContext(fiber) {
-      contextFiberStackCursor.current === fiber &&
-        (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber));
-      hostTransitionProviderCursor.current === fiber &&
-        (pop(hostTransitionProviderCursor, fiber),
-        (HostTransitionContext._currentValue = NotPendingTransition));
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeFiber(fiber, childFiber) {
-      switch (fiber.tag) {
-        case 26:
-        case 27:
-        case 5:
-          return describeBuiltInComponentFrame(fiber.type);
-        case 16:
-          return describeBuiltInComponentFrame("Lazy");
-        case 13:
-          return fiber.child !== childFiber && null !== childFiber
-            ? describeBuiltInComponentFrame("Suspense Fallback")
-            : describeBuiltInComponentFrame("Suspense");
-        case 19:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case 0:
-        case 15:
-          return describeNativeComponentFrame(fiber.type, !1);
-        case 11:
-          return describeNativeComponentFrame(fiber.type.render, !1);
-        case 1:
-          return describeNativeComponentFrame(fiber.type, !0);
-        case 31:
-          return describeBuiltInComponentFrame("Activity");
-        default:
-          return "";
-      }
-    }
-    function getStackByFiberInDevAndProd(workInProgress) {
-      try {
-        var info = "",
-          previous = null;
-        do {
-          info += describeFiber(workInProgress, previous);
-          var debugInfo = workInProgress._debugInfo;
-          if (debugInfo)
-            for (var i = debugInfo.length - 1; 0 <= i; i--) {
-              var entry = debugInfo[i];
-              if ("string" === typeof entry.name) {
-                var JSCompiler_temp_const = info;
-                a: {
-                  var name = entry.name,
-                    env = entry.env,
-                    location = entry.debugLocation;
-                  if (null != location) {
-                    var childStack = formatOwnerStack(location),
-                      idx = childStack.lastIndexOf("\n"),
-                      lastLine =
-                        -1 === idx ? childStack : childStack.slice(idx + 1);
-                    if (-1 !== lastLine.indexOf(name)) {
-                      var JSCompiler_inline_result = "\n" + lastLine;
-                      break a;
-                    }
-                  }
-                  JSCompiler_inline_result = describeBuiltInComponentFrame(
-                    name + (env ? " [" + env + "]" : "")
-                  );
-                }
-                info = JSCompiler_temp_const + JSCompiler_inline_result;
-              }
-            }
-          previous = workInProgress;
-          workInProgress = workInProgress.return;
-        } while (workInProgress);
-        return info;
-      } catch (x) {
-        return "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-    }
-    function describeFunctionComponentFrameWithoutLineNumber(fn) {
-      return (fn = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(fn)
-        : "";
-    }
-    function getCurrentFiberOwnerNameInDevOrNull() {
-      if (null === current) return null;
-      var owner = current._debugOwner;
-      return null != owner ? getComponentNameFromOwner(owner) : null;
-    }
-    function getCurrentFiberStackInDev() {
-      if (null === current) return "";
-      var workInProgress = current;
-      try {
-        var info = "";
-        6 === workInProgress.tag && (workInProgress = workInProgress.return);
-        switch (workInProgress.tag) {
-          case 26:
-          case 27:
-          case 5:
-            info += describeBuiltInComponentFrame(workInProgress.type);
-            break;
-          case 13:
-            info += describeBuiltInComponentFrame("Suspense");
-            break;
-          case 19:
-            info += describeBuiltInComponentFrame("SuspenseList");
-            break;
-          case 31:
-            info += describeBuiltInComponentFrame("Activity");
-            break;
-          case 30:
-          case 0:
-          case 15:
-          case 1:
-            workInProgress._debugOwner ||
-              "" !== info ||
-              (info += describeFunctionComponentFrameWithoutLineNumber(
-                workInProgress.type
-              ));
-            break;
-          case 11:
-            workInProgress._debugOwner ||
-              "" !== info ||
-              (info += describeFunctionComponentFrameWithoutLineNumber(
-                workInProgress.type.render
-              ));
-        }
-        for (; workInProgress; )
-          if ("number" === typeof workInProgress.tag) {
-            var fiber = workInProgress;
-            workInProgress = fiber._debugOwner;
-            var debugStack = fiber._debugStack;
-            if (workInProgress && debugStack) {
-              var formattedStack = formatOwnerStack(debugStack);
-              "" !== formattedStack && (info += "\n" + formattedStack);
-            }
-          } else if (null != workInProgress.debugStack) {
-            var ownerStack = workInProgress.debugStack;
-            (workInProgress = workInProgress.owner) &&
-              ownerStack &&
-              (info += "\n" + formatOwnerStack(ownerStack));
-          } else break;
-        var JSCompiler_inline_result = info;
-      } catch (x) {
-        JSCompiler_inline_result =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result;
-    }
-    function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) {
-      var previousFiber = current;
-      setCurrentFiber(fiber);
-      try {
-        return null !== fiber && fiber._debugTask
-          ? fiber._debugTask.run(
-              callback.bind(null, arg0, arg1, arg2, arg3, arg4)
-            )
-          : callback(arg0, arg1, arg2, arg3, arg4);
-      } finally {
-        setCurrentFiber(previousFiber);
-      }
-      throw Error(
-        "runWithFiberInDEV should never be called in production. This is a bug in React."
-      );
-    }
-    function setCurrentFiber(fiber) {
-      ReactSharedInternals.getCurrentStack =
-        null === fiber ? null : getCurrentFiberStackInDev;
-      isRendering = !1;
-      current = fiber;
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkFormFieldValueStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function injectInternals(internals) {
-      if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;
-      var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;
-      if (hook.isDisabled) return !0;
-      if (!hook.supportsFiber)
-        return (
-          console.error(
-            "The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"
-          ),
-          !0
-        );
-      try {
-        (rendererID = hook.inject(internals)), (injectedHook = hook);
-      } catch (err) {
-        console.error("React instrumentation encountered an error: %o.", err);
-      }
-      return hook.checkDCE ? !0 : !1;
-    }
-    function setIsStrictModeForDevtools(newIsStrictMode) {
-      "function" === typeof log$1 &&
-        unstable_setDisableYieldValue(newIsStrictMode);
-      if (injectedHook && "function" === typeof injectedHook.setStrictMode)
-        try {
-          injectedHook.setStrictMode(rendererID, newIsStrictMode);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function getHighestPriorityLanes(lanes) {
-      var pendingSyncLanes = lanes & 42;
-      if (0 !== pendingSyncLanes) return pendingSyncLanes;
-      switch (lanes & -lanes) {
-        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:
-          return 64;
-        case 128:
-          return 128;
-        case 256:
-        case 512:
-        case 1024:
-        case 2048:
-        case 4096:
-        case 8192:
-        case 16384:
-        case 32768:
-        case 65536:
-        case 131072:
-          return lanes & 261888;
-        case 262144:
-        case 524288:
-        case 1048576:
-        case 2097152:
-          return lanes & 3932160;
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          return lanes & 62914560;
-        case 67108864:
-          return 67108864;
-        case 134217728:
-          return 134217728;
-        case 268435456:
-          return 268435456;
-        case 536870912:
-          return 536870912;
-        case 1073741824:
-          return 0;
-        default:
-          return (
-            console.error(
-              "Should have found matching lanes. This is a bug in React."
-            ),
-            lanes
-          );
-      }
-    }
-    function getNextLanes(root, wipLanes, rootHasPendingCommit) {
-      var pendingLanes = root.pendingLanes;
-      if (0 === pendingLanes) return 0;
-      var nextLanes = 0,
-        suspendedLanes = root.suspendedLanes,
-        pingedLanes = root.pingedLanes;
-      root = root.warmLanes;
-      var nonIdlePendingLanes = pendingLanes & 134217727;
-      0 !== nonIdlePendingLanes
-        ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),
-          0 !== pendingLanes
-            ? (nextLanes = getHighestPriorityLanes(pendingLanes))
-            : ((pingedLanes &= nonIdlePendingLanes),
-              0 !== pingedLanes
-                ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-                : rootHasPendingCommit ||
-                  ((rootHasPendingCommit = nonIdlePendingLanes & ~root),
-                  0 !== rootHasPendingCommit &&
-                    (nextLanes =
-                      getHighestPriorityLanes(rootHasPendingCommit)))))
-        : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),
-          0 !== nonIdlePendingLanes
-            ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
-            : 0 !== pingedLanes
-              ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-              : rootHasPendingCommit ||
-                ((rootHasPendingCommit = pendingLanes & ~root),
-                0 !== rootHasPendingCommit &&
-                  (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));
-      return 0 === nextLanes
-        ? 0
-        : 0 !== wipLanes &&
-            wipLanes !== nextLanes &&
-            0 === (wipLanes & suspendedLanes) &&
-            ((suspendedLanes = nextLanes & -nextLanes),
-            (rootHasPendingCommit = wipLanes & -wipLanes),
-            suspendedLanes >= rootHasPendingCommit ||
-              (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))
-          ? wipLanes
-          : nextLanes;
-    }
-    function checkIfRootIsPrerendering(root, renderLanes) {
-      return (
-        0 ===
-        (root.pendingLanes &
-          ~(root.suspendedLanes & ~root.pingedLanes) &
-          renderLanes)
-      );
-    }
-    function computeExpirationTime(lane, currentTime) {
-      switch (lane) {
-        case 1:
-        case 2:
-        case 4:
-        case 8:
-        case 64:
-          return currentTime + 250;
-        case 16:
-        case 32:
-        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 currentTime + 5e3;
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          return -1;
-        case 67108864:
-        case 134217728:
-        case 268435456:
-        case 536870912:
-        case 1073741824:
-          return -1;
-        default:
-          return (
-            console.error(
-              "Should have found matching lanes. This is a bug in React."
-            ),
-            -1
-          );
-      }
-    }
-    function claimNextRetryLane() {
-      var lane = nextRetryLane;
-      nextRetryLane <<= 1;
-      0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);
-      return lane;
-    }
-    function createLaneMap(initial) {
-      for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);
-      return laneMap;
-    }
-    function markRootUpdated$1(root, updateLane) {
-      root.pendingLanes |= updateLane;
-      268435456 !== updateLane &&
-        ((root.suspendedLanes = 0),
-        (root.pingedLanes = 0),
-        (root.warmLanes = 0));
-    }
-    function markRootFinished(
-      root,
-      finishedLanes,
-      remainingLanes,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes
-    ) {
-      var previouslyPendingLanes = root.pendingLanes;
-      root.pendingLanes = remainingLanes;
-      root.suspendedLanes = 0;
-      root.pingedLanes = 0;
-      root.warmLanes = 0;
-      root.expiredLanes &= remainingLanes;
-      root.entangledLanes &= remainingLanes;
-      root.errorRecoveryDisabledLanes &= remainingLanes;
-      root.shellSuspendCounter = 0;
-      var entanglements = root.entanglements,
-        expirationTimes = root.expirationTimes,
-        hiddenUpdates = root.hiddenUpdates;
-      for (
-        remainingLanes = previouslyPendingLanes & ~remainingLanes;
-        0 < remainingLanes;
-
-      ) {
-        var index = 31 - clz32(remainingLanes),
-          lane = 1 << index;
-        entanglements[index] = 0;
-        expirationTimes[index] = -1;
-        var hiddenUpdatesForLane = hiddenUpdates[index];
-        if (null !== hiddenUpdatesForLane)
-          for (
-            hiddenUpdates[index] = null, index = 0;
-            index < hiddenUpdatesForLane.length;
-            index++
-          ) {
-            var update = hiddenUpdatesForLane[index];
-            null !== update && (update.lane &= -536870913);
-          }
-        remainingLanes &= ~lane;
-      }
-      0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
-      0 !== suspendedRetryLanes &&
-        0 === updatedLanes &&
-        0 !== root.tag &&
-        (root.suspendedLanes |=
-          suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
-    }
-    function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {
-      root.pendingLanes |= spawnedLane;
-      root.suspendedLanes &= ~spawnedLane;
-      var spawnedLaneIndex = 31 - clz32(spawnedLane);
-      root.entangledLanes |= spawnedLane;
-      root.entanglements[spawnedLaneIndex] =
-        root.entanglements[spawnedLaneIndex] |
-        1073741824 |
-        (entangledLanes & 261930);
-    }
-    function markRootEntangled(root, entangledLanes) {
-      var rootEntangledLanes = (root.entangledLanes |= entangledLanes);
-      for (root = root.entanglements; rootEntangledLanes; ) {
-        var index = 31 - clz32(rootEntangledLanes),
-          lane = 1 << index;
-        (lane & entangledLanes) | (root[index] & entangledLanes) &&
-          (root[index] |= entangledLanes);
-        rootEntangledLanes &= ~lane;
-      }
-    }
-    function getBumpedLaneForHydration(root, renderLanes) {
-      var renderLane = renderLanes & -renderLanes;
-      renderLane =
-        0 !== (renderLane & 42)
-          ? 1
-          : getBumpedLaneForHydrationByLane(renderLane);
-      return 0 !== (renderLane & (root.suspendedLanes | renderLanes))
-        ? 0
-        : renderLane;
-    }
-    function getBumpedLaneForHydrationByLane(lane) {
-      switch (lane) {
-        case 2:
-          lane = 1;
-          break;
-        case 8:
-          lane = 4;
-          break;
-        case 32:
-          lane = 16;
-          break;
-        case 256:
-        case 512:
-        case 1024:
-        case 2048:
-        case 4096:
-        case 8192:
-        case 16384:
-        case 32768:
-        case 65536:
-        case 131072:
-        case 262144:
-        case 524288:
-        case 1048576:
-        case 2097152:
-        case 4194304:
-        case 8388608:
-        case 16777216:
-        case 33554432:
-          lane = 128;
-          break;
-        case 268435456:
-          lane = 134217728;
-          break;
-        default:
-          lane = 0;
-      }
-      return lane;
-    }
-    function addFiberToLanesMap(root, fiber, lanes) {
-      if (isDevToolsPresent)
-        for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {
-          var index = 31 - clz32(lanes),
-            lane = 1 << index;
-          root[index].add(fiber);
-          lanes &= ~lane;
-        }
-    }
-    function movePendingFibersToMemoized(root, lanes) {
-      if (isDevToolsPresent)
-        for (
-          var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,
-            memoizedUpdaters = root.memoizedUpdaters;
-          0 < lanes;
-
-        ) {
-          var index = 31 - clz32(lanes);
-          root = 1 << index;
-          index = pendingUpdatersLaneMap[index];
-          0 < index.size &&
-            (index.forEach(function (fiber) {
-              var alternate = fiber.alternate;
-              (null !== alternate && memoizedUpdaters.has(alternate)) ||
-                memoizedUpdaters.add(fiber);
-            }),
-            index.clear());
-          lanes &= ~root;
-        }
-    }
-    function lanesToEventPriority(lanes) {
-      lanes &= -lanes;
-      return 0 !== DiscreteEventPriority && DiscreteEventPriority < lanes
-        ? 0 !== ContinuousEventPriority && ContinuousEventPriority < lanes
-          ? 0 !== (lanes & 134217727)
-            ? DefaultEventPriority
-            : IdleEventPriority
-          : ContinuousEventPriority
-        : DiscreteEventPriority;
-    }
-    function resolveUpdatePriority() {
-      var updatePriority = ReactDOMSharedInternals.p;
-      if (0 !== updatePriority) return updatePriority;
-      updatePriority = window.event;
-      return void 0 === updatePriority
-        ? DefaultEventPriority
-        : getEventPriority(updatePriority.type);
-    }
-    function runWithPriority(priority, fn) {
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        return (ReactDOMSharedInternals.p = priority), fn();
-      } finally {
-        ReactDOMSharedInternals.p = previousPriority;
-      }
-    }
-    function detachDeletedInstance(node) {
-      delete node[internalInstanceKey];
-      delete node[internalPropsKey];
-      delete node[internalEventHandlersKey];
-      delete node[internalEventHandlerListenersKey];
-      delete node[internalEventHandlesSetKey];
-    }
-    function getClosestInstanceFromNode(targetNode) {
-      var targetInst = targetNode[internalInstanceKey];
-      if (targetInst) return targetInst;
-      for (var parentNode = targetNode.parentNode; parentNode; ) {
-        if (
-          (targetInst =
-            parentNode[internalContainerInstanceKey] ||
-            parentNode[internalInstanceKey])
-        ) {
-          parentNode = targetInst.alternate;
-          if (
-            null !== targetInst.child ||
-            (null !== parentNode && null !== parentNode.child)
-          )
-            for (
-              targetNode = getParentHydrationBoundary(targetNode);
-              null !== targetNode;
-
-            ) {
-              if ((parentNode = targetNode[internalInstanceKey]))
-                return parentNode;
-              targetNode = getParentHydrationBoundary(targetNode);
-            }
-          return targetInst;
-        }
-        targetNode = parentNode;
-        parentNode = targetNode.parentNode;
-      }
-      return null;
-    }
-    function getInstanceFromNode(node) {
-      if (
-        (node = node[internalInstanceKey] || node[internalContainerInstanceKey])
-      ) {
-        var tag = node.tag;
-        if (
-          5 === tag ||
-          6 === tag ||
-          13 === tag ||
-          31 === tag ||
-          26 === tag ||
-          27 === tag ||
-          3 === tag
-        )
-          return node;
-      }
-      return null;
-    }
-    function getNodeFromInstance(inst) {
-      var tag = inst.tag;
-      if (5 === tag || 26 === tag || 27 === tag || 6 === tag)
-        return inst.stateNode;
-      throw Error("getNodeFromInstance: Invalid argument.");
-    }
-    function getResourcesFromRoot(root) {
-      var resources = root[internalRootNodeResourcesKey];
-      resources ||
-        (resources = root[internalRootNodeResourcesKey] =
-          { hoistableStyles: new Map(), hoistableScripts: new Map() });
-      return resources;
-    }
-    function markNodeAsHoistable(node) {
-      node[internalHoistableMarker] = !0;
-    }
-    function registerTwoPhaseEvent(registrationName, dependencies) {
-      registerDirectEvent(registrationName, dependencies);
-      registerDirectEvent(registrationName + "Capture", dependencies);
-    }
-    function registerDirectEvent(registrationName, dependencies) {
-      registrationNameDependencies[registrationName] &&
-        console.error(
-          "EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",
-          registrationName
-        );
-      registrationNameDependencies[registrationName] = dependencies;
-      var lowerCasedName = registrationName.toLowerCase();
-      possibleRegistrationNames[lowerCasedName] = registrationName;
-      "onDoubleClick" === registrationName &&
-        (possibleRegistrationNames.ondblclick = registrationName);
-      for (
-        registrationName = 0;
-        registrationName < dependencies.length;
-        registrationName++
-      )
-        allNativeEvents.add(dependencies[registrationName]);
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function getValueForAttributeOnCustomComponent(node, name, expected) {
-      if (isAttributeNameSafe(name)) {
-        if (!node.hasAttribute(name)) {
-          switch (typeof expected) {
-            case "symbol":
-            case "object":
-              return expected;
-            case "function":
-              return expected;
-            case "boolean":
-              if (!1 === expected) return expected;
-          }
-          return void 0 === expected ? void 0 : null;
-        }
-        node = node.getAttribute(name);
-        if ("" === node && !0 === expected) return !0;
-        checkAttributeStringCoercion(expected, name);
-        return node === "" + expected ? expected : node;
-      }
-    }
-    function setValueForAttribute(node, name, value) {
-      if (isAttributeNameSafe(name))
-        if (null === value) node.removeAttribute(name);
-        else {
-          switch (typeof value) {
-            case "undefined":
-            case "function":
-            case "symbol":
-              node.removeAttribute(name);
-              return;
-            case "boolean":
-              var prefix = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix && "aria-" !== prefix) {
-                node.removeAttribute(name);
-                return;
-              }
-          }
-          checkAttributeStringCoercion(value, name);
-          node.setAttribute(name, "" + value);
-        }
-    }
-    function setValueForKnownAttribute(node, name, value) {
-      if (null === value) node.removeAttribute(name);
-      else {
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            node.removeAttribute(name);
-            return;
-        }
-        checkAttributeStringCoercion(value, name);
-        node.setAttribute(name, "" + value);
-      }
-    }
-    function setValueForNamespacedAttribute(node, namespace, name, value) {
-      if (null === value) node.removeAttribute(name);
-      else {
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            node.removeAttribute(name);
-            return;
-        }
-        checkAttributeStringCoercion(value, name);
-        node.setAttributeNS(namespace, name, "" + value);
-      }
-    }
-    function getToStringValue(value) {
-      switch (typeof value) {
-        case "bigint":
-        case "boolean":
-        case "number":
-        case "string":
-        case "undefined":
-          return value;
-        case "object":
-          return checkFormFieldValueStringCoercion(value), value;
-        default:
-          return "";
-      }
-    }
-    function isCheckable(elem) {
-      var type = elem.type;
-      return (
-        (elem = elem.nodeName) &&
-        "input" === elem.toLowerCase() &&
-        ("checkbox" === type || "radio" === type)
-      );
-    }
-    function trackValueOnNode(node, valueField, currentValue) {
-      var descriptor = Object.getOwnPropertyDescriptor(
-        node.constructor.prototype,
-        valueField
-      );
-      if (
-        !node.hasOwnProperty(valueField) &&
-        "undefined" !== typeof descriptor &&
-        "function" === typeof descriptor.get &&
-        "function" === typeof descriptor.set
-      ) {
-        var get = descriptor.get,
-          set = descriptor.set;
-        Object.defineProperty(node, valueField, {
-          configurable: !0,
-          get: function () {
-            return get.call(this);
-          },
-          set: function (value) {
-            checkFormFieldValueStringCoercion(value);
-            currentValue = "" + value;
-            set.call(this, value);
-          }
-        });
-        Object.defineProperty(node, valueField, {
-          enumerable: descriptor.enumerable
-        });
-        return {
-          getValue: function () {
-            return currentValue;
-          },
-          setValue: function (value) {
-            checkFormFieldValueStringCoercion(value);
-            currentValue = "" + value;
-          },
-          stopTracking: function () {
-            node._valueTracker = null;
-            delete node[valueField];
-          }
-        };
-      }
-    }
-    function track(node) {
-      if (!node._valueTracker) {
-        var valueField = isCheckable(node) ? "checked" : "value";
-        node._valueTracker = trackValueOnNode(
-          node,
-          valueField,
-          "" + node[valueField]
-        );
-      }
-    }
-    function updateValueIfChanged(node) {
-      if (!node) return !1;
-      var tracker = node._valueTracker;
-      if (!tracker) return !0;
-      var lastValue = tracker.getValue();
-      var value = "";
-      node &&
-        (value = isCheckable(node)
-          ? node.checked
-            ? "true"
-            : "false"
-          : node.value);
-      node = value;
-      return node !== lastValue ? (tracker.setValue(node), !0) : !1;
-    }
-    function getActiveElement(doc) {
-      doc = doc || ("undefined" !== typeof document ? document : void 0);
-      if ("undefined" === typeof doc) return null;
-      try {
-        return doc.activeElement || doc.body;
-      } catch (e) {
-        return doc.body;
-      }
-    }
-    function escapeSelectorAttributeValueInsideDoubleQuotes(value) {
-      return value.replace(
-        escapeSelectorAttributeValueInsideDoubleQuotesRegex,
-        function (ch) {
-          return "\\" + ch.charCodeAt(0).toString(16) + " ";
-        }
-      );
-    }
-    function validateInputProps(element, props) {
-      void 0 === props.checked ||
-        void 0 === props.defaultChecked ||
-        didWarnCheckedDefaultChecked ||
-        (console.error(
-          "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component",
-          props.type
-        ),
-        (didWarnCheckedDefaultChecked = !0));
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValueDefaultValue$1 ||
-        (console.error(
-          "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component",
-          props.type
-        ),
-        (didWarnValueDefaultValue$1 = !0));
-    }
-    function updateInput(
-      element,
-      value,
-      defaultValue,
-      lastDefaultValue,
-      checked,
-      defaultChecked,
-      type,
-      name
-    ) {
-      element.name = "";
-      null != type &&
-      "function" !== typeof type &&
-      "symbol" !== typeof type &&
-      "boolean" !== typeof type
-        ? (checkAttributeStringCoercion(type, "type"), (element.type = type))
-        : element.removeAttribute("type");
-      if (null != value)
-        if ("number" === type) {
-          if ((0 === value && "" === element.value) || element.value != value)
-            element.value = "" + getToStringValue(value);
-        } else
-          element.value !== "" + getToStringValue(value) &&
-            (element.value = "" + getToStringValue(value));
-      else
-        ("submit" !== type && "reset" !== type) ||
-          element.removeAttribute("value");
-      null != value
-        ? setDefaultValue(element, type, getToStringValue(value))
-        : null != defaultValue
-          ? setDefaultValue(element, type, getToStringValue(defaultValue))
-          : null != lastDefaultValue && element.removeAttribute("value");
-      null == checked &&
-        null != defaultChecked &&
-        (element.defaultChecked = !!defaultChecked);
-      null != checked &&
-        (element.checked =
-          checked &&
-          "function" !== typeof checked &&
-          "symbol" !== typeof checked);
-      null != name &&
-      "function" !== typeof name &&
-      "symbol" !== typeof name &&
-      "boolean" !== typeof name
-        ? (checkAttributeStringCoercion(name, "name"),
-          (element.name = "" + getToStringValue(name)))
-        : element.removeAttribute("name");
-    }
-    function initInput(
-      element,
-      value,
-      defaultValue,
-      checked,
-      defaultChecked,
-      type,
-      name,
-      isHydrating
-    ) {
-      null != type &&
-        "function" !== typeof type &&
-        "symbol" !== typeof type &&
-        "boolean" !== typeof type &&
-        (checkAttributeStringCoercion(type, "type"), (element.type = type));
-      if (null != value || null != defaultValue) {
-        if (
-          !(
-            ("submit" !== type && "reset" !== type) ||
-            (void 0 !== value && null !== value)
-          )
-        ) {
-          track(element);
-          return;
-        }
-        defaultValue =
-          null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-        value = null != value ? "" + getToStringValue(value) : defaultValue;
-        isHydrating || value === element.value || (element.value = value);
-        element.defaultValue = value;
-      }
-      checked = null != checked ? checked : defaultChecked;
-      checked =
-        "function" !== typeof checked &&
-        "symbol" !== typeof checked &&
-        !!checked;
-      element.checked = isHydrating ? element.checked : !!checked;
-      element.defaultChecked = !!checked;
-      null != name &&
-        "function" !== typeof name &&
-        "symbol" !== typeof name &&
-        "boolean" !== typeof name &&
-        (checkAttributeStringCoercion(name, "name"), (element.name = name));
-      track(element);
-    }
-    function setDefaultValue(node, type, value) {
-      ("number" === type && getActiveElement(node.ownerDocument) === node) ||
-        node.defaultValue === "" + value ||
-        (node.defaultValue = "" + value);
-    }
-    function validateOptionProps(element, props) {
-      null == props.value &&
-        ("object" === typeof props.children && null !== props.children
-          ? React.Children.forEach(props.children, function (child) {
-              null == child ||
-                "string" === typeof child ||
-                "number" === typeof child ||
-                "bigint" === typeof child ||
-                didWarnInvalidChild ||
-                ((didWarnInvalidChild = !0),
-                console.error(
-                  "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-                ));
-            })
-          : null == props.dangerouslySetInnerHTML ||
-            didWarnInvalidInnerHTML ||
-            ((didWarnInvalidInnerHTML = !0),
-            console.error(
-              "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-            )));
-      null == props.selected ||
-        didWarnSelectedSetOnOption ||
-        (console.error(
-          "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-        ),
-        (didWarnSelectedSetOnOption = !0));
-    }
-    function getDeclarationErrorAddendum() {
-      var ownerName = getCurrentFiberOwnerNameInDevOrNull();
-      return ownerName
-        ? "\n\nCheck the render method of `" + ownerName + "`."
-        : "";
-    }
-    function updateOptions(node, multiple, propValue, setDefaultSelected) {
-      node = node.options;
-      if (multiple) {
-        multiple = {};
-        for (var i = 0; i < propValue.length; i++)
-          multiple["$" + propValue[i]] = !0;
-        for (propValue = 0; propValue < node.length; propValue++)
-          (i = multiple.hasOwnProperty("$" + node[propValue].value)),
-            node[propValue].selected !== i && (node[propValue].selected = i),
-            i && setDefaultSelected && (node[propValue].defaultSelected = !0);
-      } else {
-        propValue = "" + getToStringValue(propValue);
-        multiple = null;
-        for (i = 0; i < node.length; i++) {
-          if (node[i].value === propValue) {
-            node[i].selected = !0;
-            setDefaultSelected && (node[i].defaultSelected = !0);
-            return;
-          }
-          null !== multiple || node[i].disabled || (multiple = node[i]);
-        }
-        null !== multiple && (multiple.selected = !0);
-      }
-    }
-    function validateSelectProps(element, props) {
-      for (element = 0; element < valuePropNames.length; element++) {
-        var propName = valuePropNames[element];
-        if (null != props[propName]) {
-          var propNameIsArray = isArrayImpl(props[propName]);
-          props.multiple && !propNameIsArray
-            ? console.error(
-                "The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",
-                propName,
-                getDeclarationErrorAddendum()
-              )
-            : !props.multiple &&
-              propNameIsArray &&
-              console.error(
-                "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",
-                propName,
-                getDeclarationErrorAddendum()
-              );
-        }
-      }
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValueDefaultValue ||
-        (console.error(
-          "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-        ),
-        (didWarnValueDefaultValue = !0));
-    }
-    function validateTextareaProps(element, props) {
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnValDefaultVal ||
-        (console.error(
-          "%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components",
-          getCurrentFiberOwnerNameInDevOrNull() || "A component"
-        ),
-        (didWarnValDefaultVal = !0));
-      null != props.children &&
-        null == props.value &&
-        console.error(
-          "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-        );
-    }
-    function updateTextarea(element, value, defaultValue) {
-      if (
-        null != value &&
-        ((value = "" + getToStringValue(value)),
-        value !== element.value && (element.value = value),
-        null == defaultValue)
-      ) {
-        element.defaultValue !== value && (element.defaultValue = value);
-        return;
-      }
-      element.defaultValue =
-        null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-    }
-    function initTextarea(element, value, defaultValue, children) {
-      if (null == value) {
-        if (null != children) {
-          if (null != defaultValue)
-            throw Error(
-              "If you supply `defaultValue` on a <textarea>, do not pass children."
-            );
-          if (isArrayImpl(children)) {
-            if (1 < children.length)
-              throw Error("<textarea> can only have at most one child.");
-            children = children[0];
-          }
-          defaultValue = children;
-        }
-        null == defaultValue && (defaultValue = "");
-        value = defaultValue;
-      }
-      defaultValue = getToStringValue(value);
-      element.defaultValue = defaultValue;
-      children = element.textContent;
-      children === defaultValue &&
-        "" !== children &&
-        null !== children &&
-        (element.value = children);
-      track(element);
-    }
-    function findNotableNode(node, indent) {
-      return void 0 === node.serverProps &&
-        0 === node.serverTail.length &&
-        1 === node.children.length &&
-        3 < node.distanceFromLeaf &&
-        node.distanceFromLeaf > 15 - indent
-        ? findNotableNode(node.children[0], indent)
-        : node;
-    }
-    function indentation(indent) {
-      return "  " + "  ".repeat(indent);
-    }
-    function added(indent) {
-      return "+ " + "  ".repeat(indent);
-    }
-    function removed(indent) {
-      return "- " + "  ".repeat(indent);
-    }
-    function describeFiberType(fiber) {
-      switch (fiber.tag) {
-        case 26:
-        case 27:
-        case 5:
-          return fiber.type;
-        case 16:
-          return "Lazy";
-        case 31:
-          return "Activity";
-        case 13:
-          return "Suspense";
-        case 19:
-          return "SuspenseList";
-        case 0:
-        case 15:
-          return (fiber = fiber.type), fiber.displayName || fiber.name || null;
-        case 11:
-          return (
-            (fiber = fiber.type.render), fiber.displayName || fiber.name || null
-          );
-        case 1:
-          return (fiber = fiber.type), fiber.displayName || fiber.name || null;
-        default:
-          return null;
-      }
-    }
-    function describeTextNode(content, maxLength) {
-      return needsEscaping.test(content)
-        ? ((content = JSON.stringify(content)),
-          content.length > maxLength - 2
-            ? 8 > maxLength
-              ? '{"..."}'
-              : "{" + content.slice(0, maxLength - 7) + '..."}'
-            : "{" + content + "}")
-        : content.length > maxLength
-          ? 5 > maxLength
-            ? '{"..."}'
-            : content.slice(0, maxLength - 3) + "..."
-          : content;
-    }
-    function describeTextDiff(clientText, serverProps, indent) {
-      var maxLength = 120 - 2 * indent;
-      if (null === serverProps)
-        return added(indent) + describeTextNode(clientText, maxLength) + "\n";
-      if ("string" === typeof serverProps) {
-        for (
-          var firstDiff = 0;
-          firstDiff < serverProps.length &&
-          firstDiff < clientText.length &&
-          serverProps.charCodeAt(firstDiff) ===
-            clientText.charCodeAt(firstDiff);
-          firstDiff++
-        );
-        firstDiff > maxLength - 8 &&
-          10 < firstDiff &&
-          ((clientText = "..." + clientText.slice(firstDiff - 8)),
-          (serverProps = "..." + serverProps.slice(firstDiff - 8)));
-        return (
-          added(indent) +
-          describeTextNode(clientText, maxLength) +
-          "\n" +
-          removed(indent) +
-          describeTextNode(serverProps, maxLength) +
-          "\n"
-        );
-      }
-      return (
-        indentation(indent) + describeTextNode(clientText, maxLength) + "\n"
-      );
-    }
-    function objectName(object) {
-      return Object.prototype.toString
-        .call(object)
-        .replace(/^\[object (.*)\]$/, function (m, p0) {
-          return p0;
-        });
-    }
-    function describeValue(value, maxLength) {
-      switch (typeof value) {
-        case "string":
-          return (
-            (value = JSON.stringify(value)),
-            value.length > maxLength
-              ? 5 > maxLength
-                ? '"..."'
-                : value.slice(0, maxLength - 4) + '..."'
-              : value
-          );
-        case "object":
-          if (null === value) return "null";
-          if (isArrayImpl(value)) return "[...]";
-          if (value.$$typeof === REACT_ELEMENT_TYPE)
-            return (maxLength = getComponentNameFromType(value.type))
-              ? "<" + maxLength + ">"
-              : "<...>";
-          var name = objectName(value);
-          if ("Object" === name) {
-            name = "";
-            maxLength -= 2;
-            for (var propName in value)
-              if (value.hasOwnProperty(propName)) {
-                var jsonPropName = JSON.stringify(propName);
-                jsonPropName !== '"' + propName + '"' &&
-                  (propName = jsonPropName);
-                maxLength -= propName.length - 2;
-                jsonPropName = describeValue(
-                  value[propName],
-                  15 > maxLength ? maxLength : 15
-                );
-                maxLength -= jsonPropName.length;
-                if (0 > maxLength) {
-                  name += "" === name ? "..." : ", ...";
-                  break;
-                }
-                name +=
-                  ("" === name ? "" : ",") + propName + ":" + jsonPropName;
-              }
-            return "{" + name + "}";
-          }
-          return name;
-        case "function":
-          return (maxLength = value.displayName || value.name)
-            ? "function " + maxLength
-            : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describePropValue(value, maxLength) {
-      return "string" !== typeof value || needsEscaping.test(value)
-        ? "{" + describeValue(value, maxLength - 2) + "}"
-        : value.length > maxLength - 2
-          ? 5 > maxLength
-            ? '"..."'
-            : '"' + value.slice(0, maxLength - 5) + '..."'
-          : '"' + value + '"';
-    }
-    function describeExpandedElement(type, props, rowPrefix) {
-      var remainingRowLength = 120 - rowPrefix.length - type.length,
-        properties = [],
-        propName;
-      for (propName in props)
-        if (props.hasOwnProperty(propName) && "children" !== propName) {
-          var propValue = describePropValue(
-            props[propName],
-            120 - rowPrefix.length - propName.length - 1
-          );
-          remainingRowLength -= propName.length + propValue.length + 2;
-          properties.push(propName + "=" + propValue);
-        }
-      return 0 === properties.length
-        ? rowPrefix + "<" + type + ">\n"
-        : 0 < remainingRowLength
-          ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n"
-          : rowPrefix +
-            "<" +
-            type +
-            "\n" +
-            rowPrefix +
-            "  " +
-            properties.join("\n" + rowPrefix + "  ") +
-            "\n" +
-            rowPrefix +
-            ">\n";
-    }
-    function describePropertiesDiff(clientObject, serverObject, indent) {
-      var properties = "",
-        remainingServerProperties = assign({}, serverObject),
-        propName;
-      for (propName in clientObject)
-        if (clientObject.hasOwnProperty(propName)) {
-          delete remainingServerProperties[propName];
-          var maxLength = 120 - 2 * indent - propName.length - 2,
-            clientPropValue = describeValue(clientObject[propName], maxLength);
-          serverObject.hasOwnProperty(propName)
-            ? ((maxLength = describeValue(serverObject[propName], maxLength)),
-              (properties +=
-                added(indent) + propName + ": " + clientPropValue + "\n"),
-              (properties +=
-                removed(indent) + propName + ": " + maxLength + "\n"))
-            : (properties +=
-                added(indent) + propName + ": " + clientPropValue + "\n");
-        }
-      for (var _propName in remainingServerProperties)
-        remainingServerProperties.hasOwnProperty(_propName) &&
-          ((clientObject = describeValue(
-            remainingServerProperties[_propName],
-            120 - 2 * indent - _propName.length - 2
-          )),
-          (properties +=
-            removed(indent) + _propName + ": " + clientObject + "\n"));
-      return properties;
-    }
-    function describeElementDiff(type, clientProps, serverProps, indent) {
-      var content = "",
-        serverPropNames = new Map();
-      for (propName$jscomp$0 in serverProps)
-        serverProps.hasOwnProperty(propName$jscomp$0) &&
-          serverPropNames.set(
-            propName$jscomp$0.toLowerCase(),
-            propName$jscomp$0
-          );
-      if (1 === serverPropNames.size && serverPropNames.has("children"))
-        content += describeExpandedElement(
-          type,
-          clientProps,
-          indentation(indent)
-        );
-      else {
-        for (var _propName2 in clientProps)
-          if (
-            clientProps.hasOwnProperty(_propName2) &&
-            "children" !== _propName2
-          ) {
-            var maxLength$jscomp$0 =
-                120 - 2 * (indent + 1) - _propName2.length - 1,
-              serverPropName = serverPropNames.get(_propName2.toLowerCase());
-            if (void 0 !== serverPropName) {
-              serverPropNames.delete(_propName2.toLowerCase());
-              var propName$jscomp$0 = clientProps[_propName2];
-              serverPropName = serverProps[serverPropName];
-              var clientPropValue = describePropValue(
-                propName$jscomp$0,
-                maxLength$jscomp$0
-              );
-              maxLength$jscomp$0 = describePropValue(
-                serverPropName,
-                maxLength$jscomp$0
-              );
-              "object" === typeof propName$jscomp$0 &&
-              null !== propName$jscomp$0 &&
-              "object" === typeof serverPropName &&
-              null !== serverPropName &&
-              "Object" === objectName(propName$jscomp$0) &&
-              "Object" === objectName(serverPropName) &&
-              (2 < Object.keys(propName$jscomp$0).length ||
-                2 < Object.keys(serverPropName).length ||
-                -1 < clientPropValue.indexOf("...") ||
-                -1 < maxLength$jscomp$0.indexOf("..."))
-                ? (content +=
-                    indentation(indent + 1) +
-                    _propName2 +
-                    "={{\n" +
-                    describePropertiesDiff(
-                      propName$jscomp$0,
-                      serverPropName,
-                      indent + 2
-                    ) +
-                    indentation(indent + 1) +
-                    "}}\n")
-                : ((content +=
-                    added(indent + 1) +
-                    _propName2 +
-                    "=" +
-                    clientPropValue +
-                    "\n"),
-                  (content +=
-                    removed(indent + 1) +
-                    _propName2 +
-                    "=" +
-                    maxLength$jscomp$0 +
-                    "\n"));
-            } else
-              content +=
-                indentation(indent + 1) +
-                _propName2 +
-                "=" +
-                describePropValue(clientProps[_propName2], maxLength$jscomp$0) +
-                "\n";
-          }
-        serverPropNames.forEach(function (propName) {
-          if ("children" !== propName) {
-            var maxLength = 120 - 2 * (indent + 1) - propName.length - 1;
-            content +=
-              removed(indent + 1) +
-              propName +
-              "=" +
-              describePropValue(serverProps[propName], maxLength) +
-              "\n";
-          }
-        });
-        content =
-          "" === content
-            ? indentation(indent) + "<" + type + ">\n"
-            : indentation(indent) +
-              "<" +
-              type +
-              "\n" +
-              content +
-              indentation(indent) +
-              ">\n";
-      }
-      type = serverProps.children;
-      clientProps = clientProps.children;
-      if (
-        "string" === typeof type ||
-        "number" === typeof type ||
-        "bigint" === typeof type
-      ) {
-        serverPropNames = "";
-        if (
-          "string" === typeof clientProps ||
-          "number" === typeof clientProps ||
-          "bigint" === typeof clientProps
-        )
-          serverPropNames = "" + clientProps;
-        content += describeTextDiff(serverPropNames, "" + type, indent + 1);
-      } else if (
-        "string" === typeof clientProps ||
-        "number" === typeof clientProps ||
-        "bigint" === typeof clientProps
-      )
-        content =
-          null == type
-            ? content + describeTextDiff("" + clientProps, null, indent + 1)
-            : content + describeTextDiff("" + clientProps, void 0, indent + 1);
-      return content;
-    }
-    function describeSiblingFiber(fiber, indent) {
-      var type = describeFiberType(fiber);
-      if (null === type) {
-        type = "";
-        for (fiber = fiber.child; fiber; )
-          (type += describeSiblingFiber(fiber, indent)),
-            (fiber = fiber.sibling);
-        return type;
-      }
-      return indentation(indent) + "<" + type + ">\n";
-    }
-    function describeNode(node, indent) {
-      var skipToNode = findNotableNode(node, indent);
-      if (
-        skipToNode !== node &&
-        (1 !== node.children.length || node.children[0] !== skipToNode)
-      )
-        return (
-          indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1)
-        );
-      skipToNode = "";
-      var debugInfo = node.fiber._debugInfo;
-      if (debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var serverComponentName = debugInfo[i].name;
-          "string" === typeof serverComponentName &&
-            ((skipToNode +=
-              indentation(indent) + "<" + serverComponentName + ">\n"),
-            indent++);
-        }
-      debugInfo = "";
-      i = node.fiber.pendingProps;
-      if (6 === node.fiber.tag)
-        (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++;
-      else if (
-        ((serverComponentName = describeFiberType(node.fiber)),
-        null !== serverComponentName)
-      )
-        if (void 0 === node.serverProps) {
-          debugInfo = indent;
-          var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2,
-            content = "";
-          for (propName in i)
-            if (i.hasOwnProperty(propName) && "children" !== propName) {
-              var propValue = describePropValue(i[propName], 15);
-              maxLength -= propName.length + propValue.length + 2;
-              if (0 > maxLength) {
-                content += " ...";
-                break;
-              }
-              content += " " + propName + "=" + propValue;
-            }
-          debugInfo =
-            indentation(debugInfo) +
-            "<" +
-            serverComponentName +
-            content +
-            ">\n";
-          indent++;
-        } else
-          null === node.serverProps
-            ? ((debugInfo = describeExpandedElement(
-                serverComponentName,
-                i,
-                added(indent)
-              )),
-              indent++)
-            : "string" === typeof node.serverProps
-              ? console.error(
-                  "Should not have matched a non HostText fiber to a Text node. This is a bug in React."
-                )
-              : ((debugInfo = describeElementDiff(
-                  serverComponentName,
-                  i,
-                  node.serverProps,
-                  indent
-                )),
-                indent++);
-      var propName = "";
-      i = node.fiber.child;
-      for (
-        serverComponentName = 0;
-        i && serverComponentName < node.children.length;
-
-      )
-        (maxLength = node.children[serverComponentName]),
-          maxLength.fiber === i
-            ? ((propName += describeNode(maxLength, indent)),
-              serverComponentName++)
-            : (propName += describeSiblingFiber(i, indent)),
-          (i = i.sibling);
-      i &&
-        0 < node.children.length &&
-        (propName += indentation(indent) + "...\n");
-      i = node.serverTail;
-      null === node.serverProps && indent--;
-      for (node = 0; node < i.length; node++)
-        (serverComponentName = i[node]),
-          (propName =
-            "string" === typeof serverComponentName
-              ? propName +
-                (removed(indent) +
-                  describeTextNode(serverComponentName, 120 - 2 * indent) +
-                  "\n")
-              : propName +
-                describeExpandedElement(
-                  serverComponentName.type,
-                  serverComponentName.props,
-                  removed(indent)
-                ));
-      return skipToNode + debugInfo + propName;
-    }
-    function describeDiff(rootNode) {
-      try {
-        return "\n\n" + describeNode(rootNode, 0);
-      } catch (x) {
-        return "";
-      }
-    }
-    function describeAncestors(ancestor, child, props) {
-      for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; )
-        fiber === ancestor && (distanceFromLeaf = 0),
-          (node = {
-            fiber: fiber,
-            children: null !== node ? [node] : [],
-            serverProps:
-              fiber === child ? props : fiber === ancestor ? null : void 0,
-            serverTail: [],
-            distanceFromLeaf: distanceFromLeaf
-          }),
-          distanceFromLeaf++,
-          (fiber = fiber.return);
-      return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : "";
-    }
-    function updatedAncestorInfoDev(oldInfo, tag) {
-      var ancestorInfo = assign({}, oldInfo || emptyAncestorInfoDev),
-        info = { tag: tag };
-      -1 !== inScopeTags.indexOf(tag) &&
-        ((ancestorInfo.aTagInScope = null),
-        (ancestorInfo.buttonTagInScope = null),
-        (ancestorInfo.nobrTagInScope = null));
-      -1 !== buttonScopeTags.indexOf(tag) &&
-        (ancestorInfo.pTagInButtonScope = null);
-      -1 !== specialTags.indexOf(tag) &&
-        "address" !== tag &&
-        "div" !== tag &&
-        "p" !== tag &&
-        ((ancestorInfo.listItemTagAutoclosing = null),
-        (ancestorInfo.dlItemTagAutoclosing = null));
-      ancestorInfo.current = info;
-      "form" === tag && (ancestorInfo.formTag = info);
-      "a" === tag && (ancestorInfo.aTagInScope = info);
-      "button" === tag && (ancestorInfo.buttonTagInScope = info);
-      "nobr" === tag && (ancestorInfo.nobrTagInScope = info);
-      "p" === tag && (ancestorInfo.pTagInButtonScope = info);
-      "li" === tag && (ancestorInfo.listItemTagAutoclosing = info);
-      if ("dd" === tag || "dt" === tag)
-        ancestorInfo.dlItemTagAutoclosing = info;
-      "#document" === tag || "html" === tag
-        ? (ancestorInfo.containerTagInScope = null)
-        : ancestorInfo.containerTagInScope ||
-          (ancestorInfo.containerTagInScope = info);
-      null !== oldInfo ||
-      ("#document" !== tag && "html" !== tag && "body" !== tag)
-        ? !0 === ancestorInfo.implicitRootScope &&
-          (ancestorInfo.implicitRootScope = !1)
-        : (ancestorInfo.implicitRootScope = !0);
-      return ancestorInfo;
-    }
-    function isTagValidWithParent(tag, parentTag, implicitRootScope) {
-      switch (parentTag) {
-        case "select":
-          return (
-            "hr" === tag ||
-            "option" === tag ||
-            "optgroup" === tag ||
-            "script" === tag ||
-            "template" === tag ||
-            "#text" === tag
-          );
-        case "optgroup":
-          return "option" === tag || "#text" === tag;
-        case "option":
-          return "#text" === tag;
-        case "tr":
-          return (
-            "th" === tag ||
-            "td" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "tbody":
-        case "thead":
-        case "tfoot":
-          return (
-            "tr" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "colgroup":
-          return "col" === tag || "template" === tag;
-        case "table":
-          return (
-            "caption" === tag ||
-            "colgroup" === tag ||
-            "tbody" === tag ||
-            "tfoot" === tag ||
-            "thead" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "head":
-          return (
-            "base" === tag ||
-            "basefont" === tag ||
-            "bgsound" === tag ||
-            "link" === tag ||
-            "meta" === tag ||
-            "title" === tag ||
-            "noscript" === tag ||
-            "noframes" === tag ||
-            "style" === tag ||
-            "script" === tag ||
-            "template" === tag
-          );
-        case "html":
-          if (implicitRootScope) break;
-          return "head" === tag || "body" === tag || "frameset" === tag;
-        case "frameset":
-          return "frame" === tag;
-        case "#document":
-          if (!implicitRootScope) return "html" === tag;
-      }
-      switch (tag) {
-        case "h1":
-        case "h2":
-        case "h3":
-        case "h4":
-        case "h5":
-        case "h6":
-          return (
-            "h1" !== parentTag &&
-            "h2" !== parentTag &&
-            "h3" !== parentTag &&
-            "h4" !== parentTag &&
-            "h5" !== parentTag &&
-            "h6" !== parentTag
-          );
-        case "rp":
-        case "rt":
-          return -1 === impliedEndTags.indexOf(parentTag);
-        case "caption":
-        case "col":
-        case "colgroup":
-        case "frameset":
-        case "frame":
-        case "tbody":
-        case "td":
-        case "tfoot":
-        case "th":
-        case "thead":
-        case "tr":
-          return null == parentTag;
-        case "head":
-          return implicitRootScope || null === parentTag;
-        case "html":
-          return (
-            (implicitRootScope && "#document" === parentTag) ||
-            null === parentTag
-          );
-        case "body":
-          return (
-            (implicitRootScope &&
-              ("#document" === parentTag || "html" === parentTag)) ||
-            null === parentTag
-          );
-      }
-      return !0;
-    }
-    function findInvalidAncestorForTag(tag, ancestorInfo) {
-      switch (tag) {
-        case "address":
-        case "article":
-        case "aside":
-        case "blockquote":
-        case "center":
-        case "details":
-        case "dialog":
-        case "dir":
-        case "div":
-        case "dl":
-        case "fieldset":
-        case "figcaption":
-        case "figure":
-        case "footer":
-        case "header":
-        case "hgroup":
-        case "main":
-        case "menu":
-        case "nav":
-        case "ol":
-        case "p":
-        case "section":
-        case "summary":
-        case "ul":
-        case "pre":
-        case "listing":
-        case "table":
-        case "hr":
-        case "xmp":
-        case "h1":
-        case "h2":
-        case "h3":
-        case "h4":
-        case "h5":
-        case "h6":
-          return ancestorInfo.pTagInButtonScope;
-        case "form":
-          return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;
-        case "li":
-          return ancestorInfo.listItemTagAutoclosing;
-        case "dd":
-        case "dt":
-          return ancestorInfo.dlItemTagAutoclosing;
-        case "button":
-          return ancestorInfo.buttonTagInScope;
-        case "a":
-          return ancestorInfo.aTagInScope;
-        case "nobr":
-          return ancestorInfo.nobrTagInScope;
-      }
-      return null;
-    }
-    function findAncestor(parent, tagName) {
-      for (; parent; ) {
-        switch (parent.tag) {
-          case 5:
-          case 26:
-          case 27:
-            if (parent.type === tagName) return parent;
-        }
-        parent = parent.return;
-      }
-      return null;
-    }
-    function validateDOMNesting(childTag, ancestorInfo) {
-      ancestorInfo = ancestorInfo || emptyAncestorInfoDev;
-      var parentInfo = ancestorInfo.current;
-      ancestorInfo = (parentInfo = isTagValidWithParent(
-        childTag,
-        parentInfo && parentInfo.tag,
-        ancestorInfo.implicitRootScope
-      )
-        ? null
-        : parentInfo)
-        ? null
-        : findInvalidAncestorForTag(childTag, ancestorInfo);
-      ancestorInfo = parentInfo || ancestorInfo;
-      if (!ancestorInfo) return !0;
-      var ancestorTag = ancestorInfo.tag;
-      ancestorInfo = String(!!parentInfo) + "|" + childTag + "|" + ancestorTag;
-      if (didWarn[ancestorInfo]) return !1;
-      didWarn[ancestorInfo] = !0;
-      var ancestor = (ancestorInfo = current)
-          ? findAncestor(ancestorInfo.return, ancestorTag)
-          : null,
-        ancestorDescription =
-          null !== ancestorInfo && null !== ancestor
-            ? describeAncestors(ancestor, ancestorInfo, null)
-            : "",
-        tagDisplayName = "<" + childTag + ">";
-      parentInfo
-        ? ((parentInfo = ""),
-          "table" === ancestorTag &&
-            "tr" === childTag &&
-            (parentInfo +=
-              " Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),
-          console.error(
-            "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s",
-            tagDisplayName,
-            ancestorTag,
-            parentInfo,
-            ancestorDescription
-          ))
-        : console.error(
-            "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s",
-            tagDisplayName,
-            ancestorTag,
-            ancestorDescription
-          );
-      ancestorInfo &&
-        ((childTag = ancestorInfo.return),
-        null === ancestor ||
-          null === childTag ||
-          (ancestor === childTag &&
-            childTag._debugOwner === ancestorInfo._debugOwner) ||
-          runWithFiberInDEV(ancestor, function () {
-            console.error(
-              "<%s> cannot contain a nested %s.\nSee this log for the ancestor stack trace.",
-              ancestorTag,
-              tagDisplayName
-            );
-          }));
-      return !1;
-    }
-    function validateTextNesting(childText, parentTag, implicitRootScope) {
-      if (implicitRootScope || isTagValidWithParent("#text", parentTag, !1))
-        return !0;
-      implicitRootScope = "#text|" + parentTag;
-      if (didWarn[implicitRootScope]) return !1;
-      didWarn[implicitRootScope] = !0;
-      var ancestor = (implicitRootScope = current)
-        ? findAncestor(implicitRootScope, parentTag)
-        : null;
-      implicitRootScope =
-        null !== implicitRootScope && null !== ancestor
-          ? describeAncestors(
-              ancestor,
-              implicitRootScope,
-              6 !== implicitRootScope.tag ? { children: null } : null
-            )
-          : "";
-      /\S/.test(childText)
-        ? console.error(
-            "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s",
-            parentTag,
-            implicitRootScope
-          )
-        : console.error(
-            "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s",
-            parentTag,
-            implicitRootScope
-          );
-      return !1;
-    }
-    function setTextContent(node, text) {
-      if (text) {
-        var firstChild = node.firstChild;
-        if (
-          firstChild &&
-          firstChild === node.lastChild &&
-          3 === firstChild.nodeType
-        ) {
-          firstChild.nodeValue = text;
-          return;
-        }
-      }
-      node.textContent = text;
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function setValueForStyle(style, styleName, value) {
-      var isCustomProperty = 0 === styleName.indexOf("--");
-      isCustomProperty ||
-        (-1 < styleName.indexOf("-")
-          ? (warnedStyleNames.hasOwnProperty(styleName) &&
-              warnedStyleNames[styleName]) ||
-            ((warnedStyleNames[styleName] = !0),
-            console.error(
-              "Unsupported style property %s. Did you mean %s?",
-              styleName,
-              camelize(styleName.replace(msPattern, "ms-"))
-            ))
-          : badVendoredStyleNamePattern.test(styleName)
-            ? (warnedStyleNames.hasOwnProperty(styleName) &&
-                warnedStyleNames[styleName]) ||
-              ((warnedStyleNames[styleName] = !0),
-              console.error(
-                "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                styleName,
-                styleName.charAt(0).toUpperCase() + styleName.slice(1)
-              ))
-            : !badStyleValueWithSemicolonPattern.test(value) ||
-              (warnedStyleValues.hasOwnProperty(value) &&
-                warnedStyleValues[value]) ||
-              ((warnedStyleValues[value] = !0),
-              console.error(
-                'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                styleName,
-                value.replace(badStyleValueWithSemicolonPattern, "")
-              )),
-        "number" === typeof value &&
-          (isNaN(value)
-            ? warnedForNaNValue ||
-              ((warnedForNaNValue = !0),
-              console.error(
-                "`NaN` is an invalid value for the `%s` css style property.",
-                styleName
-              ))
-            : isFinite(value) ||
-              warnedForInfinityValue ||
-              ((warnedForInfinityValue = !0),
-              console.error(
-                "`Infinity` is an invalid value for the `%s` css style property.",
-                styleName
-              ))));
-      null == value || "boolean" === typeof value || "" === value
-        ? isCustomProperty
-          ? style.setProperty(styleName, "")
-          : "float" === styleName
-            ? (style.cssFloat = "")
-            : (style[styleName] = "")
-        : isCustomProperty
-          ? style.setProperty(styleName, value)
-          : "number" !== typeof value ||
-              0 === value ||
-              unitlessNumbers.has(styleName)
-            ? "float" === styleName
-              ? (style.cssFloat = value)
-              : (checkCSSPropertyStringCoercion(value, styleName),
-                (style[styleName] = ("" + value).trim()))
-            : (style[styleName] = value + "px");
-    }
-    function setValueForStyles(node, styles, prevStyles) {
-      if (null != styles && "object" !== typeof styles)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      styles && Object.freeze(styles);
-      node = node.style;
-      if (null != prevStyles) {
-        if (styles) {
-          var expandedUpdates = {};
-          if (prevStyles)
-            for (var key in prevStyles)
-              if (prevStyles.hasOwnProperty(key) && !styles.hasOwnProperty(key))
-                for (
-                  var longhands = shorthandToLonghand[key] || [key], i = 0;
-                  i < longhands.length;
-                  i++
-                )
-                  expandedUpdates[longhands[i]] = key;
-          for (var _key in styles)
-            if (
-              styles.hasOwnProperty(_key) &&
-              (!prevStyles || prevStyles[_key] !== styles[_key])
-            )
-              for (
-                key = shorthandToLonghand[_key] || [_key], longhands = 0;
-                longhands < key.length;
-                longhands++
-              )
-                expandedUpdates[key[longhands]] = _key;
-          _key = {};
-          for (var key$jscomp$0 in styles)
-            for (
-              key = shorthandToLonghand[key$jscomp$0] || [key$jscomp$0],
-                longhands = 0;
-              longhands < key.length;
-              longhands++
-            )
-              _key[key[longhands]] = key$jscomp$0;
-          key$jscomp$0 = {};
-          for (var _key2 in expandedUpdates)
-            if (
-              ((key = expandedUpdates[_key2]),
-              (longhands = _key[_key2]) &&
-                key !== longhands &&
-                ((i = key + "," + longhands), !key$jscomp$0[i]))
-            ) {
-              key$jscomp$0[i] = !0;
-              i = console;
-              var value = styles[key];
-              i.error.call(
-                i,
-                "%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.",
-                null == value || "boolean" === typeof value || "" === value
-                  ? "Removing"
-                  : "Updating",
-                key,
-                longhands
-              );
-            }
-        }
-        for (var styleName in prevStyles)
-          !prevStyles.hasOwnProperty(styleName) ||
-            (null != styles && styles.hasOwnProperty(styleName)) ||
-            (0 === styleName.indexOf("--")
-              ? node.setProperty(styleName, "")
-              : "float" === styleName
-                ? (node.cssFloat = "")
-                : (node[styleName] = ""));
-        for (var _styleName in styles)
-          (_key2 = styles[_styleName]),
-            styles.hasOwnProperty(_styleName) &&
-              prevStyles[_styleName] !== _key2 &&
-              setValueForStyle(node, _styleName, _key2);
-      } else
-        for (expandedUpdates in styles)
-          styles.hasOwnProperty(expandedUpdates) &&
-            setValueForStyle(node, expandedUpdates, styles[expandedUpdates]);
-    }
-    function isCustomElement(tagName) {
-      if (-1 === tagName.indexOf("-")) return !1;
-      switch (tagName) {
-        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;
-      }
-    }
-    function getAttributeAlias(name) {
-      return aliases.get(name) || name;
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function noop$1() {}
-    function getEventTarget(nativeEvent) {
-      nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;
-      nativeEvent.correspondingUseElement &&
-        (nativeEvent = nativeEvent.correspondingUseElement);
-      return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;
-    }
-    function restoreStateOfTarget(target) {
-      var internalInstance = getInstanceFromNode(target);
-      if (internalInstance && (target = internalInstance.stateNode)) {
-        var props = target[internalPropsKey] || null;
-        a: switch (
-          ((target = internalInstance.stateNode), internalInstance.type)
-        ) {
-          case "input":
-            updateInput(
-              target,
-              props.value,
-              props.defaultValue,
-              props.defaultValue,
-              props.checked,
-              props.defaultChecked,
-              props.type,
-              props.name
-            );
-            internalInstance = props.name;
-            if ("radio" === props.type && null != internalInstance) {
-              for (props = target; props.parentNode; ) props = props.parentNode;
-              checkAttributeStringCoercion(internalInstance, "name");
-              props = props.querySelectorAll(
-                'input[name="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(
-                    "" + internalInstance
-                  ) +
-                  '"][type="radio"]'
-              );
-              for (
-                internalInstance = 0;
-                internalInstance < props.length;
-                internalInstance++
-              ) {
-                var otherNode = props[internalInstance];
-                if (otherNode !== target && otherNode.form === target.form) {
-                  var otherProps = otherNode[internalPropsKey] || null;
-                  if (!otherProps)
-                    throw Error(
-                      "ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."
-                    );
-                  updateInput(
-                    otherNode,
-                    otherProps.value,
-                    otherProps.defaultValue,
-                    otherProps.defaultValue,
-                    otherProps.checked,
-                    otherProps.defaultChecked,
-                    otherProps.type,
-                    otherProps.name
-                  );
-                }
-              }
-              for (
-                internalInstance = 0;
-                internalInstance < props.length;
-                internalInstance++
-              )
-                (otherNode = props[internalInstance]),
-                  otherNode.form === target.form &&
-                    updateValueIfChanged(otherNode);
-            }
-            break a;
-          case "textarea":
-            updateTextarea(target, props.value, props.defaultValue);
-            break a;
-          case "select":
-            (internalInstance = props.value),
-              null != internalInstance &&
-                updateOptions(target, !!props.multiple, internalInstance, !1);
-        }
-      }
-    }
-    function batchedUpdates$2(fn, a, b) {
-      if (isInsideEventHandler) return fn(a, b);
-      isInsideEventHandler = !0;
-      try {
-        var JSCompiler_inline_result = fn(a);
-        return JSCompiler_inline_result;
-      } finally {
-        if (
-          ((isInsideEventHandler = !1),
-          null !== restoreTarget || null !== restoreQueue)
-        )
-          if (
-            (flushSyncWork$1(),
-            restoreTarget &&
-              ((a = restoreTarget),
-              (fn = restoreQueue),
-              (restoreQueue = restoreTarget = null),
-              restoreStateOfTarget(a),
-              fn))
-          )
-            for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);
-      }
-    }
-    function getListener(inst, registrationName) {
-      var stateNode = inst.stateNode;
-      if (null === stateNode) return null;
-      var props = stateNode[internalPropsKey] || null;
-      if (null === props) return null;
-      stateNode = props[registrationName];
-      a: switch (registrationName) {
-        case "onClick":
-        case "onClickCapture":
-        case "onDoubleClick":
-        case "onDoubleClickCapture":
-        case "onMouseDown":
-        case "onMouseDownCapture":
-        case "onMouseMove":
-        case "onMouseMoveCapture":
-        case "onMouseUp":
-        case "onMouseUpCapture":
-        case "onMouseEnter":
-          (props = !props.disabled) ||
-            ((inst = inst.type),
-            (props = !(
-              "button" === inst ||
-              "input" === inst ||
-              "select" === inst ||
-              "textarea" === inst
-            )));
-          inst = !props;
-          break a;
-        default:
-          inst = !1;
-      }
-      if (inst) return null;
-      if (stateNode && "function" !== typeof stateNode)
-        throw Error(
-          "Expected `" +
-            registrationName +
-            "` listener to be a function, instead got a value of `" +
-            typeof stateNode +
-            "` type."
-        );
-      return stateNode;
-    }
-    function getData() {
-      if (fallbackText) return fallbackText;
-      var start,
-        startValue = startText,
-        startLength = startValue.length,
-        end,
-        endValue = "value" in root ? root.value : root.textContent,
-        endLength = endValue.length;
-      for (
-        start = 0;
-        start < startLength && startValue[start] === endValue[start];
-        start++
-      );
-      var minEnd = startLength - start;
-      for (
-        end = 1;
-        end <= minEnd &&
-        startValue[startLength - end] === endValue[endLength - end];
-        end++
-      );
-      return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));
-    }
-    function getEventCharCode(nativeEvent) {
-      var keyCode = nativeEvent.keyCode;
-      "charCode" in nativeEvent
-        ? ((nativeEvent = nativeEvent.charCode),
-          0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))
-        : (nativeEvent = keyCode);
-      10 === nativeEvent && (nativeEvent = 13);
-      return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;
-    }
-    function functionThatReturnsTrue() {
-      return !0;
-    }
-    function functionThatReturnsFalse() {
-      return !1;
-    }
-    function createSyntheticEvent(Interface) {
-      function SyntheticBaseEvent(
-        reactName,
-        reactEventType,
-        targetInst,
-        nativeEvent,
-        nativeEventTarget
-      ) {
-        this._reactName = reactName;
-        this._targetInst = targetInst;
-        this.type = reactEventType;
-        this.nativeEvent = nativeEvent;
-        this.target = nativeEventTarget;
-        this.currentTarget = null;
-        for (var propName in Interface)
-          Interface.hasOwnProperty(propName) &&
-            ((reactName = Interface[propName]),
-            (this[propName] = reactName
-              ? reactName(nativeEvent)
-              : nativeEvent[propName]));
-        this.isDefaultPrevented = (
-          null != nativeEvent.defaultPrevented
-            ? nativeEvent.defaultPrevented
-            : !1 === nativeEvent.returnValue
-        )
-          ? functionThatReturnsTrue
-          : functionThatReturnsFalse;
-        this.isPropagationStopped = functionThatReturnsFalse;
-        return this;
-      }
-      assign(SyntheticBaseEvent.prototype, {
-        preventDefault: function () {
-          this.defaultPrevented = !0;
-          var event = this.nativeEvent;
-          event &&
-            (event.preventDefault
-              ? event.preventDefault()
-              : "unknown" !== typeof event.returnValue &&
-                (event.returnValue = !1),
-            (this.isDefaultPrevented = functionThatReturnsTrue));
-        },
-        stopPropagation: function () {
-          var event = this.nativeEvent;
-          event &&
-            (event.stopPropagation
-              ? event.stopPropagation()
-              : "unknown" !== typeof event.cancelBubble &&
-                (event.cancelBubble = !0),
-            (this.isPropagationStopped = functionThatReturnsTrue));
-        },
-        persist: function () {},
-        isPersistent: functionThatReturnsTrue
-      });
-      return SyntheticBaseEvent;
-    }
-    function modifierStateGetter(keyArg) {
-      var nativeEvent = this.nativeEvent;
-      return nativeEvent.getModifierState
-        ? nativeEvent.getModifierState(keyArg)
-        : (keyArg = modifierKeyToProp[keyArg])
-          ? !!nativeEvent[keyArg]
-          : !1;
-    }
-    function getEventModifierState() {
-      return modifierStateGetter;
-    }
-    function isFallbackCompositionEnd(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "keyup":
-          return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);
-        case "keydown":
-          return nativeEvent.keyCode !== START_KEYCODE;
-        case "keypress":
-        case "mousedown":
-        case "focusout":
-          return !0;
-        default:
-          return !1;
-      }
-    }
-    function getDataFromCustomEvent(nativeEvent) {
-      nativeEvent = nativeEvent.detail;
-      return "object" === typeof nativeEvent && "data" in nativeEvent
-        ? nativeEvent.data
-        : null;
-    }
-    function getNativeBeforeInputChars(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "compositionend":
-          return getDataFromCustomEvent(nativeEvent);
-        case "keypress":
-          if (nativeEvent.which !== SPACEBAR_CODE) return null;
-          hasSpaceKeypress = !0;
-          return SPACEBAR_CHAR;
-        case "textInput":
-          return (
-            (domEventName = nativeEvent.data),
-            domEventName === SPACEBAR_CHAR && hasSpaceKeypress
-              ? null
-              : domEventName
-          );
-        default:
-          return null;
-      }
-    }
-    function getFallbackBeforeInputChars(domEventName, nativeEvent) {
-      if (isComposing)
-        return "compositionend" === domEventName ||
-          (!canUseCompositionEvent &&
-            isFallbackCompositionEnd(domEventName, nativeEvent))
-          ? ((domEventName = getData()),
-            (fallbackText = startText = root = null),
-            (isComposing = !1),
-            domEventName)
-          : null;
-      switch (domEventName) {
-        case "paste":
-          return null;
-        case "keypress":
-          if (
-            !(
-              nativeEvent.ctrlKey ||
-              nativeEvent.altKey ||
-              nativeEvent.metaKey
-            ) ||
-            (nativeEvent.ctrlKey && nativeEvent.altKey)
-          ) {
-            if (nativeEvent.char && 1 < nativeEvent.char.length)
-              return nativeEvent.char;
-            if (nativeEvent.which)
-              return String.fromCharCode(nativeEvent.which);
-          }
-          return null;
-        case "compositionend":
-          return useFallbackCompositionData && "ko" !== nativeEvent.locale
-            ? null
-            : nativeEvent.data;
-        default:
-          return null;
-      }
-    }
-    function isTextInputElement(elem) {
-      var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-      return "input" === nodeName
-        ? !!supportedInputTypes[elem.type]
-        : "textarea" === nodeName
-          ? !0
-          : !1;
-    }
-    function isEventSupported(eventNameSuffix) {
-      if (!canUseDOM) return !1;
-      eventNameSuffix = "on" + eventNameSuffix;
-      var isSupported = eventNameSuffix in document;
-      isSupported ||
-        ((isSupported = document.createElement("div")),
-        isSupported.setAttribute(eventNameSuffix, "return;"),
-        (isSupported = "function" === typeof isSupported[eventNameSuffix]));
-      return isSupported;
-    }
-    function createAndAccumulateChangeEvent(
-      dispatchQueue,
-      inst,
-      nativeEvent,
-      target
-    ) {
-      restoreTarget
-        ? restoreQueue
-          ? restoreQueue.push(target)
-          : (restoreQueue = [target])
-        : (restoreTarget = target);
-      inst = accumulateTwoPhaseListeners(inst, "onChange");
-      0 < inst.length &&
-        ((nativeEvent = new SyntheticEvent(
-          "onChange",
-          "change",
-          null,
-          nativeEvent,
-          target
-        )),
-        dispatchQueue.push({ event: nativeEvent, listeners: inst }));
-    }
-    function runEventInBatch(dispatchQueue) {
-      processDispatchQueue(dispatchQueue, 0);
-    }
-    function getInstIfValueChanged(targetInst) {
-      var targetNode = getNodeFromInstance(targetInst);
-      if (updateValueIfChanged(targetNode)) return targetInst;
-    }
-    function getTargetInstForChangeEvent(domEventName, targetInst) {
-      if ("change" === domEventName) return targetInst;
-    }
-    function stopWatchingForValueChange() {
-      activeElement$1 &&
-        (activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
-        (activeElementInst$1 = activeElement$1 = null));
-    }
-    function handlePropertyChange(nativeEvent) {
-      if (
-        "value" === nativeEvent.propertyName &&
-        getInstIfValueChanged(activeElementInst$1)
-      ) {
-        var dispatchQueue = [];
-        createAndAccumulateChangeEvent(
-          dispatchQueue,
-          activeElementInst$1,
-          nativeEvent,
-          getEventTarget(nativeEvent)
-        );
-        batchedUpdates$2(runEventInBatch, dispatchQueue);
-      }
-    }
-    function handleEventsForInputEventPolyfill(
-      domEventName,
-      target,
-      targetInst
-    ) {
-      "focusin" === domEventName
-        ? (stopWatchingForValueChange(),
-          (activeElement$1 = target),
-          (activeElementInst$1 = targetInst),
-          activeElement$1.attachEvent("onpropertychange", handlePropertyChange))
-        : "focusout" === domEventName && stopWatchingForValueChange();
-    }
-    function getTargetInstForInputEventPolyfill(domEventName) {
-      if (
-        "selectionchange" === domEventName ||
-        "keyup" === domEventName ||
-        "keydown" === domEventName
-      )
-        return getInstIfValueChanged(activeElementInst$1);
-    }
-    function getTargetInstForClickEvent(domEventName, targetInst) {
-      if ("click" === domEventName) return getInstIfValueChanged(targetInst);
-    }
-    function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {
-      if ("input" === domEventName || "change" === domEventName)
-        return getInstIfValueChanged(targetInst);
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function shallowEqual(objA, objB) {
-      if (objectIs(objA, objB)) return !0;
-      if (
-        "object" !== typeof objA ||
-        null === objA ||
-        "object" !== typeof objB ||
-        null === objB
-      )
-        return !1;
-      var keysA = Object.keys(objA),
-        keysB = Object.keys(objB);
-      if (keysA.length !== keysB.length) return !1;
-      for (keysB = 0; keysB < keysA.length; keysB++) {
-        var currentKey = keysA[keysB];
-        if (
-          !hasOwnProperty.call(objB, currentKey) ||
-          !objectIs(objA[currentKey], objB[currentKey])
-        )
-          return !1;
-      }
-      return !0;
-    }
-    function getLeafNode(node) {
-      for (; node && node.firstChild; ) node = node.firstChild;
-      return node;
-    }
-    function getNodeForCharacterOffset(root, offset) {
-      var node = getLeafNode(root);
-      root = 0;
-      for (var nodeEnd; node; ) {
-        if (3 === node.nodeType) {
-          nodeEnd = root + node.textContent.length;
-          if (root <= offset && nodeEnd >= offset)
-            return { node: node, offset: offset - root };
-          root = nodeEnd;
-        }
-        a: {
-          for (; node; ) {
-            if (node.nextSibling) {
-              node = node.nextSibling;
-              break a;
-            }
-            node = node.parentNode;
-          }
-          node = void 0;
-        }
-        node = getLeafNode(node);
-      }
-    }
-    function containsNode(outerNode, innerNode) {
-      return outerNode && innerNode
-        ? outerNode === innerNode
-          ? !0
-          : outerNode && 3 === outerNode.nodeType
-            ? !1
-            : innerNode && 3 === innerNode.nodeType
-              ? containsNode(outerNode, innerNode.parentNode)
-              : "contains" in outerNode
-                ? outerNode.contains(innerNode)
-                : outerNode.compareDocumentPosition
-                  ? !!(outerNode.compareDocumentPosition(innerNode) & 16)
-                  : !1
-        : !1;
-    }
-    function getActiveElementDeep(containerInfo) {
-      containerInfo =
-        null != containerInfo &&
-        null != containerInfo.ownerDocument &&
-        null != containerInfo.ownerDocument.defaultView
-          ? containerInfo.ownerDocument.defaultView
-          : window;
-      for (
-        var element = getActiveElement(containerInfo.document);
-        element instanceof containerInfo.HTMLIFrameElement;
-
-      ) {
-        try {
-          var JSCompiler_inline_result =
-            "string" === typeof element.contentWindow.location.href;
-        } catch (err) {
-          JSCompiler_inline_result = !1;
-        }
-        if (JSCompiler_inline_result) containerInfo = element.contentWindow;
-        else break;
-        element = getActiveElement(containerInfo.document);
-      }
-      return element;
-    }
-    function hasSelectionCapabilities(elem) {
-      var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-      return (
-        nodeName &&
-        (("input" === nodeName &&
-          ("text" === elem.type ||
-            "search" === elem.type ||
-            "tel" === elem.type ||
-            "url" === elem.type ||
-            "password" === elem.type)) ||
-          "textarea" === nodeName ||
-          "true" === elem.contentEditable)
-      );
-    }
-    function constructSelectEvent(
-      dispatchQueue,
-      nativeEvent,
-      nativeEventTarget
-    ) {
-      var doc =
-        nativeEventTarget.window === nativeEventTarget
-          ? nativeEventTarget.document
-          : 9 === nativeEventTarget.nodeType
-            ? nativeEventTarget
-            : nativeEventTarget.ownerDocument;
-      mouseDown ||
-        null == activeElement ||
-        activeElement !== getActiveElement(doc) ||
-        ((doc = activeElement),
-        "selectionStart" in doc && hasSelectionCapabilities(doc)
-          ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })
-          : ((doc = (
-              (doc.ownerDocument && doc.ownerDocument.defaultView) ||
-              window
-            ).getSelection()),
-            (doc = {
-              anchorNode: doc.anchorNode,
-              anchorOffset: doc.anchorOffset,
-              focusNode: doc.focusNode,
-              focusOffset: doc.focusOffset
-            })),
-        (lastSelection && shallowEqual(lastSelection, doc)) ||
-          ((lastSelection = doc),
-          (doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect")),
-          0 < doc.length &&
-            ((nativeEvent = new SyntheticEvent(
-              "onSelect",
-              "select",
-              null,
-              nativeEvent,
-              nativeEventTarget
-            )),
-            dispatchQueue.push({ event: nativeEvent, listeners: doc }),
-            (nativeEvent.target = activeElement))));
-    }
-    function makePrefixMap(styleProp, eventName) {
-      var prefixes = {};
-      prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
-      prefixes["Webkit" + styleProp] = "webkit" + eventName;
-      prefixes["Moz" + styleProp] = "moz" + eventName;
-      return prefixes;
-    }
-    function getVendorPrefixedEventName(eventName) {
-      if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];
-      if (!vendorPrefixes[eventName]) return eventName;
-      var prefixMap = vendorPrefixes[eventName],
-        styleProp;
-      for (styleProp in prefixMap)
-        if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)
-          return (prefixedEventNames[eventName] = prefixMap[styleProp]);
-      return eventName;
-    }
-    function registerSimpleEvent(domEventName, reactName) {
-      topLevelEventsToReactNames.set(domEventName, reactName);
-      registerTwoPhaseEvent(reactName, [domEventName]);
-    }
-    function getArrayKind(array) {
-      for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) {
-        var value = array[i];
-        if ("object" === typeof value && null !== value)
-          if (
-            isArrayImpl(value) &&
-            2 === value.length &&
-            "string" === typeof value[0]
-          ) {
-            if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY)
-              return COMPLEX_ARRAY;
-            kind = ENTRIES_ARRAY;
-          } else return COMPLEX_ARRAY;
-        else {
-          if (
-            "function" === typeof value ||
-            ("string" === typeof value && 50 < value.length) ||
-            (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY)
-          )
-            return COMPLEX_ARRAY;
-          kind = PRIMITIVE_ARRAY;
-        }
-      }
-      return kind;
-    }
-    function addObjectToProperties(object, properties, indent, prefix) {
-      for (var key in object)
-        hasOwnProperty.call(object, key) &&
-          "_" !== key[0] &&
-          addValueToProperties(key, object[key], properties, indent, prefix);
-    }
-    function addValueToProperties(
-      propertyName,
-      value,
-      properties,
-      indent,
-      prefix
-    ) {
-      switch (typeof value) {
-        case "object":
-          if (null === value) {
-            value = "null";
-            break;
-          } else {
-            if (value.$$typeof === REACT_ELEMENT_TYPE) {
-              var typeName = getComponentNameFromType(value.type) || "\u2026",
-                key = value.key;
-              value = value.props;
-              var propsKeys = Object.keys(value),
-                propsLength = propsKeys.length;
-              if (null == key && 0 === propsLength) {
-                value = "<" + typeName + " />";
-                break;
-              }
-              if (
-                3 > indent ||
-                (1 === propsLength &&
-                  "children" === propsKeys[0] &&
-                  null == key)
-              ) {
-                value = "<" + typeName + " \u2026 />";
-                break;
-              }
-              properties.push([
-                prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-                "<" + typeName
-              ]);
-              null !== key &&
-                addValueToProperties(
-                  "key",
-                  key,
-                  properties,
-                  indent + 1,
-                  prefix
-                );
-              propertyName = !1;
-              for (var propKey in value)
-                "children" === propKey
-                  ? null != value.children &&
-                    (!isArrayImpl(value.children) ||
-                      0 < value.children.length) &&
-                    (propertyName = !0)
-                  : hasOwnProperty.call(value, propKey) &&
-                    "_" !== propKey[0] &&
-                    addValueToProperties(
-                      propKey,
-                      value[propKey],
-                      properties,
-                      indent + 1,
-                      prefix
-                    );
-              properties.push([
-                "",
-                propertyName ? ">\u2026</" + typeName + ">" : "/>"
-              ]);
-              return;
-            }
-            typeName = Object.prototype.toString.call(value);
-            typeName = typeName.slice(8, typeName.length - 1);
-            if ("Array" === typeName)
-              if (
-                ((propKey = getArrayKind(value)),
-                propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY)
-              ) {
-                value = JSON.stringify(value);
-                break;
-              } else if (propKey === ENTRIES_ARRAY) {
-                properties.push([
-                  prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-                  ""
-                ]);
-                for (
-                  propertyName = 0;
-                  propertyName < value.length;
-                  propertyName++
-                )
-                  (typeName = value[propertyName]),
-                    addValueToProperties(
-                      typeName[0],
-                      typeName[1],
-                      properties,
-                      indent + 1,
-                      prefix
-                    );
-                return;
-              }
-            if ("Promise" === typeName) {
-              if ("fulfilled" === value.status) {
-                if (
-                  ((typeName = properties.length),
-                  addValueToProperties(
-                    propertyName,
-                    value.value,
-                    properties,
-                    indent,
-                    prefix
-                  ),
-                  properties.length > typeName)
-                ) {
-                  properties = properties[typeName];
-                  properties[1] =
-                    "Promise<" + (properties[1] || "Object") + ">";
-                  return;
-                }
-              } else if (
-                "rejected" === value.status &&
-                ((typeName = properties.length),
-                addValueToProperties(
-                  propertyName,
-                  value.reason,
-                  properties,
-                  indent,
-                  prefix
-                ),
-                properties.length > typeName)
-              ) {
-                properties = properties[typeName];
-                properties[1] = "Rejected Promise<" + properties[1] + ">";
-                return;
-              }
-              properties.push([
-                "\u00a0\u00a0".repeat(indent) + propertyName,
-                "Promise"
-              ]);
-              return;
-            }
-            "Object" === typeName &&
-              (propKey = Object.getPrototypeOf(value)) &&
-              "function" === typeof propKey.constructor &&
-              (typeName = propKey.constructor.name);
-            properties.push([
-              prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-              "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName
-            ]);
-            3 > indent &&
-              addObjectToProperties(value, properties, indent + 1, prefix);
-            return;
-          }
-        case "function":
-          value = "" === value.name ? "() => {}" : value.name + "() {}";
-          break;
-        case "string":
-          value =
-            value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value);
-          break;
-        case "undefined":
-          value = "undefined";
-          break;
-        case "boolean":
-          value = value ? "true" : "false";
-          break;
-        default:
-          value = String(value);
-      }
-      properties.push([
-        prefix + "\u00a0\u00a0".repeat(indent) + propertyName,
-        value
-      ]);
-    }
-    function addObjectDiffToProperties(prev, next, properties, indent) {
-      var isDeeplyEqual = !0;
-      for (key in prev)
-        key in next ||
-          (properties.push([
-            REMOVED + "\u00a0\u00a0".repeat(indent) + key,
-            "\u2026"
-          ]),
-          (isDeeplyEqual = !1));
-      for (var _key in next)
-        if (_key in prev) {
-          var key = prev[_key];
-          var nextValue = next[_key];
-          if (key !== nextValue) {
-            if (0 === indent && "children" === _key)
-              (isDeeplyEqual = "\u00a0\u00a0".repeat(indent) + _key),
-                properties.push(
-                  [REMOVED + isDeeplyEqual, "\u2026"],
-                  [ADDED + isDeeplyEqual, "\u2026"]
-                );
-            else {
-              if (!(3 <= indent))
-                if (
-                  "object" === typeof key &&
-                  "object" === typeof nextValue &&
-                  null !== key &&
-                  null !== nextValue &&
-                  key.$$typeof === nextValue.$$typeof
-                )
-                  if (nextValue.$$typeof === REACT_ELEMENT_TYPE) {
-                    if (
-                      key.type === nextValue.type &&
-                      key.key === nextValue.key
-                    ) {
-                      key =
-                        getComponentNameFromType(nextValue.type) || "\u2026";
-                      isDeeplyEqual = "\u00a0\u00a0".repeat(indent) + _key;
-                      key = "<" + key + " \u2026 />";
-                      properties.push(
-                        [REMOVED + isDeeplyEqual, key],
-                        [ADDED + isDeeplyEqual, key]
-                      );
-                      isDeeplyEqual = !1;
-                      continue;
-                    }
-                  } else {
-                    var prevKind = Object.prototype.toString.call(key),
-                      nextKind = Object.prototype.toString.call(nextValue);
-                    if (
-                      prevKind === nextKind &&
-                      ("[object Object]" === nextKind ||
-                        "[object Array]" === nextKind)
-                    ) {
-                      prevKind = [
-                        UNCHANGED + "\u00a0\u00a0".repeat(indent) + _key,
-                        "[object Array]" === nextKind ? "Array" : ""
-                      ];
-                      properties.push(prevKind);
-                      nextKind = properties.length;
-                      addObjectDiffToProperties(
-                        key,
-                        nextValue,
-                        properties,
-                        indent + 1
-                      )
-                        ? nextKind === properties.length &&
-                          (prevKind[1] =
-                            "Referentially unequal but deeply equal objects. Consider memoization.")
-                        : (isDeeplyEqual = !1);
-                      continue;
-                    }
-                  }
-                else if (
-                  "function" === typeof key &&
-                  "function" === typeof nextValue &&
-                  key.name === nextValue.name &&
-                  key.length === nextValue.length &&
-                  ((prevKind = Function.prototype.toString.call(key)),
-                  (nextKind = Function.prototype.toString.call(nextValue)),
-                  prevKind === nextKind)
-                ) {
-                  key =
-                    "" === nextValue.name
-                      ? "() => {}"
-                      : nextValue.name + "() {}";
-                  properties.push([
-                    UNCHANGED + "\u00a0\u00a0".repeat(indent) + _key,
-                    key +
-                      " Referentially unequal function closure. Consider memoization."
-                  ]);
-                  continue;
-                }
-              addValueToProperties(_key, key, properties, indent, REMOVED);
-              addValueToProperties(_key, nextValue, properties, indent, ADDED);
-            }
-            isDeeplyEqual = !1;
-          }
-        } else
-          properties.push([
-            ADDED + "\u00a0\u00a0".repeat(indent) + _key,
-            "\u2026"
-          ]),
-            (isDeeplyEqual = !1);
-      return isDeeplyEqual;
-    }
-    function setCurrentTrackFromLanes(lanes) {
-      currentTrack =
-        lanes & 63
-          ? "Blocking"
-          : lanes & 64
-            ? "Gesture"
-            : lanes & 4194176
-              ? "Transition"
-              : lanes & 62914560
-                ? "Suspense"
-                : lanes & 2080374784
-                  ? "Idle"
-                  : "Other";
-    }
-    function logComponentTrigger(fiber, startTime, endTime, trigger) {
-      supportsUserTiming &&
-        ((reusableComponentOptions.start = startTime),
-        (reusableComponentOptions.end = endTime),
-        (reusableComponentDevToolDetails.color = "warning"),
-        (reusableComponentDevToolDetails.tooltipText = trigger),
-        (reusableComponentDevToolDetails.properties = null),
-        (fiber = fiber._debugTask)
-          ? fiber.run(
-              performance.measure.bind(
-                performance,
-                trigger,
-                reusableComponentOptions
-              )
-            )
-          : performance.measure(trigger, reusableComponentOptions));
-    }
-    function logComponentReappeared(fiber, startTime, endTime) {
-      logComponentTrigger(fiber, startTime, endTime, "Reconnect");
-    }
-    function logComponentRender(
-      fiber,
-      startTime,
-      endTime,
-      wasHydrated,
-      committedLanes
-    ) {
-      var name = getComponentNameFromFiber(fiber);
-      if (null !== name && supportsUserTiming) {
-        var alternate = fiber.alternate,
-          selfTime = fiber.actualDuration;
-        if (null === alternate || alternate.child !== fiber.child)
-          for (var child = fiber.child; null !== child; child = child.sibling)
-            selfTime -= child.actualDuration;
-        wasHydrated =
-          0.5 > selfTime
-            ? wasHydrated
-              ? "tertiary-light"
-              : "primary-light"
-            : 10 > selfTime
-              ? wasHydrated
-                ? "tertiary"
-                : "primary"
-              : 100 > selfTime
-                ? wasHydrated
-                  ? "tertiary-dark"
-                  : "primary-dark"
-                : "error";
-        var props = fiber.memoizedProps;
-        selfTime = fiber._debugTask;
-        null !== props &&
-        null !== alternate &&
-        alternate.memoizedProps !== props
-          ? ((child = [resuableChangedPropsEntry]),
-            (props = addObjectDiffToProperties(
-              alternate.memoizedProps,
-              props,
-              child,
-              0
-            )),
-            1 < child.length &&
-              (props &&
-              !alreadyWarnedForDeepEquality &&
-              0 === (alternate.lanes & committedLanes) &&
-              100 < fiber.actualDuration
-                ? ((alreadyWarnedForDeepEquality = !0),
-                  (child[0] = reusableDeeplyEqualPropsEntry),
-                  (reusableComponentDevToolDetails.color = "warning"),
-                  (reusableComponentDevToolDetails.tooltipText =
-                    DEEP_EQUALITY_WARNING))
-                : ((reusableComponentDevToolDetails.color = wasHydrated),
-                  (reusableComponentDevToolDetails.tooltipText = name)),
-              (reusableComponentDevToolDetails.properties = child),
-              (reusableComponentOptions.start = startTime),
-              (reusableComponentOptions.end = endTime),
-              null != selfTime
-                ? selfTime.run(
-                    performance.measure.bind(
-                      performance,
-                      "\u200b" + name,
-                      reusableComponentOptions
-                    )
-                  )
-                : performance.measure(
-                    "\u200b" + name,
-                    reusableComponentOptions
-                  )))
-          : null != selfTime
-            ? selfTime.run(
-                console.timeStamp.bind(
-                  console,
-                  name,
-                  startTime,
-                  endTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  wasHydrated
-                )
-              )
-            : console.timeStamp(
-                name,
-                startTime,
-                endTime,
-                COMPONENTS_TRACK,
-                void 0,
-                wasHydrated
-              );
-      }
-    }
-    function logComponentErrored(fiber, startTime, endTime, errors) {
-      if (supportsUserTiming) {
-        var name = getComponentNameFromFiber(fiber);
-        if (null !== name) {
-          for (
-            var debugTask = null, properties = [], i = 0;
-            i < errors.length;
-            i++
-          ) {
-            var capturedValue = errors[i];
-            null == debugTask &&
-              null !== capturedValue.source &&
-              (debugTask = capturedValue.source._debugTask);
-            capturedValue = capturedValue.value;
-            properties.push([
-              "Error",
-              "object" === typeof capturedValue &&
-              null !== capturedValue &&
-              "string" === typeof capturedValue.message
-                ? String(capturedValue.message)
-                : String(capturedValue)
-            ]);
-          }
-          null !== fiber.key &&
-            addValueToProperties("key", fiber.key, properties, 0, "");
-          null !== fiber.memoizedProps &&
-            addObjectToProperties(fiber.memoizedProps, properties, 0, "");
-          null == debugTask && (debugTask = fiber._debugTask);
-          fiber = {
-            start: startTime,
-            end: endTime,
-            detail: {
-              devtools: {
-                color: "error",
-                track: COMPONENTS_TRACK,
-                tooltipText:
-                  13 === fiber.tag
-                    ? "Hydration failed"
-                    : "Error boundary caught an error",
-                properties: properties
-              }
-            }
-          };
-          debugTask
-            ? debugTask.run(
-                performance.measure.bind(performance, "\u200b" + name, fiber)
-              )
-            : performance.measure("\u200b" + name, fiber);
-        }
-      }
-    }
-    function logComponentEffect(fiber, startTime, endTime, selfTime, errors) {
-      if (null !== errors) {
-        if (supportsUserTiming) {
-          var name = getComponentNameFromFiber(fiber);
-          if (null !== name) {
-            selfTime = [];
-            for (var i = 0; i < errors.length; i++) {
-              var error = errors[i].value;
-              selfTime.push([
-                "Error",
-                "object" === typeof error &&
-                null !== error &&
-                "string" === typeof error.message
-                  ? String(error.message)
-                  : String(error)
-              ]);
-            }
-            null !== fiber.key &&
-              addValueToProperties("key", fiber.key, selfTime, 0, "");
-            null !== fiber.memoizedProps &&
-              addObjectToProperties(fiber.memoizedProps, selfTime, 0, "");
-            startTime = {
-              start: startTime,
-              end: endTime,
-              detail: {
-                devtools: {
-                  color: "error",
-                  track: COMPONENTS_TRACK,
-                  tooltipText: "A lifecycle or effect errored",
-                  properties: selfTime
-                }
-              }
-            };
-            (fiber = fiber._debugTask)
-              ? fiber.run(
-                  performance.measure.bind(
-                    performance,
-                    "\u200b" + name,
-                    startTime
-                  )
-                )
-              : performance.measure("\u200b" + name, startTime);
-          }
-        }
-      } else
-        (name = getComponentNameFromFiber(fiber)),
-          null !== name &&
-            supportsUserTiming &&
-            ((errors =
-              1 > selfTime
-                ? "secondary-light"
-                : 100 > selfTime
-                  ? "secondary"
-                  : 500 > selfTime
-                    ? "secondary-dark"
-                    : "error"),
-            (fiber = fiber._debugTask)
-              ? fiber.run(
-                  console.timeStamp.bind(
-                    console,
-                    name,
-                    startTime,
-                    endTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    errors
-                  )
-                )
-              : console.timeStamp(
-                  name,
-                  startTime,
-                  endTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  errors
-                ));
-    }
-    function logRenderPhase(startTime, endTime, lanes, debugTask) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        var color =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark";
-        lanes =
-          (lanes & 536870912) === lanes
-            ? "Prepared"
-            : (lanes & 201326741) === lanes
-              ? "Hydrated"
-              : "Render";
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                lanes,
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                color
-              )
-            )
-          : console.timeStamp(
-              lanes,
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              color
-            );
-      }
-    }
-    function logSuspendedRenderPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        ((lanes =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"),
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Prewarm",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                lanes
-              )
-            )
-          : console.timeStamp(
-              "Prewarm",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              lanes
-            ));
-    }
-    function logSuspendedWithDelayPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        ((lanes =
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"),
-        debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Suspended",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                lanes
-              )
-            )
-          : console.timeStamp(
-              "Suspended",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              lanes
-            ));
-    }
-    function logRecoveredRenderPhase(
-      startTime,
-      endTime,
-      lanes,
-      recoverableErrors,
-      hydrationFailed,
-      debugTask
-    ) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        lanes = [];
-        for (var i = 0; i < recoverableErrors.length; i++) {
-          var error = recoverableErrors[i].value;
-          lanes.push([
-            "Recoverable Error",
-            "object" === typeof error &&
-            null !== error &&
-            "string" === typeof error.message
-              ? String(error.message)
-              : String(error)
-          ]);
-        }
-        startTime = {
-          start: startTime,
-          end: endTime,
-          detail: {
-            devtools: {
-              color: "primary-dark",
-              track: currentTrack,
-              trackGroup: LANES_TRACK_GROUP,
-              tooltipText: hydrationFailed
-                ? "Hydration Failed"
-                : "Recovered after Error",
-              properties: lanes
-            }
-          }
-        };
-        debugTask
-          ? debugTask.run(
-              performance.measure.bind(performance, "Recovered", startTime)
-            )
-          : performance.measure("Recovered", startTime);
-      }
-    }
-    function logErroredRenderPhase(startTime, endTime, lanes, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Errored",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "error"
-              )
-            )
-          : console.timeStamp(
-              "Errored",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "error"
-            ));
-    }
-    function logSuspendedCommitPhase(startTime, endTime, reason, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                reason,
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "secondary-light"
-              )
-            )
-          : console.timeStamp(
-              reason,
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "secondary-light"
-            ));
-    }
-    function logCommitErrored(startTime, endTime, errors, passive, debugTask) {
-      if (supportsUserTiming && !(endTime <= startTime)) {
-        for (var properties = [], i = 0; i < errors.length; i++) {
-          var error = errors[i].value;
-          properties.push([
-            "Error",
-            "object" === typeof error &&
-            null !== error &&
-            "string" === typeof error.message
-              ? String(error.message)
-              : String(error)
-          ]);
-        }
-        startTime = {
-          start: startTime,
-          end: endTime,
-          detail: {
-            devtools: {
-              color: "error",
-              track: currentTrack,
-              trackGroup: LANES_TRACK_GROUP,
-              tooltipText: passive
-                ? "Remaining Effects Errored"
-                : "Commit Errored",
-              properties: properties
-            }
-          }
-        };
-        debugTask
-          ? debugTask.run(
-              performance.measure.bind(performance, "Errored", startTime)
-            )
-          : performance.measure("Errored", startTime);
-      }
-    }
-    function logAnimatingPhase(startTime, endTime, debugTask) {
-      !supportsUserTiming ||
-        endTime <= startTime ||
-        (debugTask
-          ? debugTask.run(
-              console.timeStamp.bind(
-                console,
-                "Animating",
-                startTime,
-                endTime,
-                currentTrack,
-                LANES_TRACK_GROUP,
-                "secondary-dark"
-              )
-            )
-          : console.timeStamp(
-              "Animating",
-              startTime,
-              endTime,
-              currentTrack,
-              LANES_TRACK_GROUP,
-              "secondary-dark"
-            ));
-    }
-    function finishQueueingConcurrentUpdates() {
-      for (
-        var endIndex = concurrentQueuesIndex,
-          i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);
-        i < endIndex;
-
-      ) {
-        var fiber = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var queue = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var update = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        var lane = concurrentQueues[i];
-        concurrentQueues[i++] = null;
-        if (null !== queue && null !== update) {
-          var pending = queue.pending;
-          null === pending
-            ? (update.next = update)
-            : ((update.next = pending.next), (pending.next = update));
-          queue.pending = update;
-        }
-        0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);
-      }
-    }
-    function enqueueUpdate$1(fiber, queue, update, lane) {
-      concurrentQueues[concurrentQueuesIndex++] = fiber;
-      concurrentQueues[concurrentQueuesIndex++] = queue;
-      concurrentQueues[concurrentQueuesIndex++] = update;
-      concurrentQueues[concurrentQueuesIndex++] = lane;
-      concurrentlyUpdatedLanes |= lane;
-      fiber.lanes |= lane;
-      fiber = fiber.alternate;
-      null !== fiber && (fiber.lanes |= lane);
-    }
-    function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {
-      enqueueUpdate$1(fiber, queue, update, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function enqueueConcurrentRenderForLane(fiber, lane) {
-      enqueueUpdate$1(fiber, null, null, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {
-      sourceFiber.lanes |= lane;
-      var alternate = sourceFiber.alternate;
-      null !== alternate && (alternate.lanes |= lane);
-      for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )
-        (parent.childLanes |= lane),
-          (alternate = parent.alternate),
-          null !== alternate && (alternate.childLanes |= lane),
-          22 === parent.tag &&
-            ((sourceFiber = parent.stateNode),
-            null === sourceFiber ||
-              sourceFiber._visibility & OffscreenVisible ||
-              (isHidden = !0)),
-          (sourceFiber = parent),
-          (parent = parent.return);
-      return 3 === sourceFiber.tag
-        ? ((parent = sourceFiber.stateNode),
-          isHidden &&
-            null !== update &&
-            ((isHidden = 31 - clz32(lane)),
-            (sourceFiber = parent.hiddenUpdates),
-            (alternate = sourceFiber[isHidden]),
-            null === alternate
-              ? (sourceFiber[isHidden] = [update])
-              : alternate.push(update),
-            (update.lane = lane | 536870912)),
-          parent)
-        : null;
-    }
-    function getRootForUpdatedFiber(sourceFiber) {
-      if (nestedUpdateCount > NESTED_UPDATE_LIMIT)
-        throw (
-          ((nestedPassiveUpdateCount = nestedUpdateCount = 0),
-          (rootWithPassiveNestedUpdates = rootWithNestedUpdates = null),
-          Error(
-            "Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops."
-          ))
-        );
-      nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT &&
-        ((nestedPassiveUpdateCount = 0),
-        (rootWithPassiveNestedUpdates = null),
-        console.error(
-          "Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."
-        ));
-      null === sourceFiber.alternate &&
-        0 !== (sourceFiber.flags & 4098) &&
-        warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);
-      for (var node = sourceFiber, parent = node.return; null !== parent; )
-        null === node.alternate &&
-          0 !== (node.flags & 4098) &&
-          warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber),
-          (node = parent),
-          (parent = node.return);
-      return 3 === node.tag ? node.stateNode : null;
-    }
-    function resolveFunctionForHotReloading(type) {
-      if (null === resolveFamily) return type;
-      var family = resolveFamily(type);
-      return void 0 === family ? type : family.current;
-    }
-    function resolveForwardRefForHotReloading(type) {
-      if (null === resolveFamily) return type;
-      var family = resolveFamily(type);
-      return void 0 === family
-        ? null !== type &&
-          void 0 !== type &&
-          "function" === typeof type.render &&
-          ((family = resolveFunctionForHotReloading(type.render)),
-          type.render !== family)
-          ? ((family = { $$typeof: REACT_FORWARD_REF_TYPE, render: family }),
-            void 0 !== type.displayName &&
-              (family.displayName = type.displayName),
-            family)
-          : type
-        : family.current;
-    }
-    function isCompatibleFamilyForHotReloading(fiber, element) {
-      if (null === resolveFamily) return !1;
-      var prevType = fiber.elementType;
-      element = element.type;
-      var needsCompareFamilies = !1,
-        $$typeofNextType =
-          "object" === typeof element && null !== element
-            ? element.$$typeof
-            : null;
-      switch (fiber.tag) {
-        case 1:
-          "function" === typeof element && (needsCompareFamilies = !0);
-          break;
-        case 0:
-          "function" === typeof element
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        case 11:
-          $$typeofNextType === REACT_FORWARD_REF_TYPE
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        case 14:
-        case 15:
-          $$typeofNextType === REACT_MEMO_TYPE
-            ? (needsCompareFamilies = !0)
-            : $$typeofNextType === REACT_LAZY_TYPE &&
-              (needsCompareFamilies = !0);
-          break;
-        default:
-          return !1;
-      }
-      return needsCompareFamilies &&
-        ((fiber = resolveFamily(prevType)),
-        void 0 !== fiber && fiber === resolveFamily(element))
-        ? !0
-        : !1;
-    }
-    function markFailedErrorBoundaryForHotReloading(fiber) {
-      null !== resolveFamily &&
-        "function" === typeof WeakSet &&
-        (null === failedBoundaries && (failedBoundaries = new WeakSet()),
-        failedBoundaries.add(fiber));
-    }
-    function scheduleFibersWithFamiliesRecursively(
-      fiber,
-      updatedFamilies,
-      staleFamilies
-    ) {
-      do {
-        var _fiber = fiber,
-          alternate = _fiber.alternate,
-          child = _fiber.child,
-          sibling = _fiber.sibling,
-          tag = _fiber.tag;
-        _fiber = _fiber.type;
-        var candidateType = null;
-        switch (tag) {
-          case 0:
-          case 15:
-          case 1:
-            candidateType = _fiber;
-            break;
-          case 11:
-            candidateType = _fiber.render;
-        }
-        if (null === resolveFamily)
-          throw Error("Expected resolveFamily to be set during hot reload.");
-        var needsRender = !1;
-        _fiber = !1;
-        null !== candidateType &&
-          ((candidateType = resolveFamily(candidateType)),
-          void 0 !== candidateType &&
-            (staleFamilies.has(candidateType)
-              ? (_fiber = !0)
-              : updatedFamilies.has(candidateType) &&
-                (1 === tag ? (_fiber = !0) : (needsRender = !0))));
-        null !== failedBoundaries &&
-          (failedBoundaries.has(fiber) ||
-            (null !== alternate && failedBoundaries.has(alternate))) &&
-          (_fiber = !0);
-        _fiber && (fiber._debugNeedsRemount = !0);
-        if (_fiber || needsRender)
-          (alternate = enqueueConcurrentRenderForLane(fiber, 2)),
-            null !== alternate && scheduleUpdateOnFiber(alternate, fiber, 2);
-        null === child ||
-          _fiber ||
-          scheduleFibersWithFamiliesRecursively(
-            child,
-            updatedFamilies,
-            staleFamilies
-          );
-        if (null === sibling) break;
-        fiber = sibling;
-      } while (1);
-    }
-    function FiberNode(tag, pendingProps, key, mode) {
-      this.tag = tag;
-      this.key = key;
-      this.sibling =
-        this.child =
-        this.return =
-        this.stateNode =
-        this.type =
-        this.elementType =
-          null;
-      this.index = 0;
-      this.refCleanup = this.ref = null;
-      this.pendingProps = pendingProps;
-      this.dependencies =
-        this.memoizedState =
-        this.updateQueue =
-        this.memoizedProps =
-          null;
-      this.mode = mode;
-      this.subtreeFlags = this.flags = 0;
-      this.deletions = null;
-      this.childLanes = this.lanes = 0;
-      this.alternate = null;
-      this.actualDuration = -0;
-      this.actualStartTime = -1.1;
-      this.treeBaseDuration = this.selfBaseDuration = -0;
-      this._debugTask =
-        this._debugStack =
-        this._debugOwner =
-        this._debugInfo =
-          null;
-      this._debugNeedsRemount = !1;
-      this._debugHookTypes = null;
-      hasBadMapPolyfill ||
-        "function" !== typeof Object.preventExtensions ||
-        Object.preventExtensions(this);
-    }
-    function shouldConstruct(Component) {
-      Component = Component.prototype;
-      return !(!Component || !Component.isReactComponent);
-    }
-    function createWorkInProgress(current, pendingProps) {
-      var workInProgress = current.alternate;
-      null === workInProgress
-        ? ((workInProgress = createFiber(
-            current.tag,
-            pendingProps,
-            current.key,
-            current.mode
-          )),
-          (workInProgress.elementType = current.elementType),
-          (workInProgress.type = current.type),
-          (workInProgress.stateNode = current.stateNode),
-          (workInProgress._debugOwner = current._debugOwner),
-          (workInProgress._debugStack = current._debugStack),
-          (workInProgress._debugTask = current._debugTask),
-          (workInProgress._debugHookTypes = current._debugHookTypes),
-          (workInProgress.alternate = current),
-          (current.alternate = workInProgress))
-        : ((workInProgress.pendingProps = pendingProps),
-          (workInProgress.type = current.type),
-          (workInProgress.flags = 0),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.deletions = null),
-          (workInProgress.actualDuration = -0),
-          (workInProgress.actualStartTime = -1.1));
-      workInProgress.flags = current.flags & 65011712;
-      workInProgress.childLanes = current.childLanes;
-      workInProgress.lanes = current.lanes;
-      workInProgress.child = current.child;
-      workInProgress.memoizedProps = current.memoizedProps;
-      workInProgress.memoizedState = current.memoizedState;
-      workInProgress.updateQueue = current.updateQueue;
-      pendingProps = current.dependencies;
-      workInProgress.dependencies =
-        null === pendingProps
-          ? null
-          : {
-              lanes: pendingProps.lanes,
-              firstContext: pendingProps.firstContext,
-              _debugThenableState: pendingProps._debugThenableState
-            };
-      workInProgress.sibling = current.sibling;
-      workInProgress.index = current.index;
-      workInProgress.ref = current.ref;
-      workInProgress.refCleanup = current.refCleanup;
-      workInProgress.selfBaseDuration = current.selfBaseDuration;
-      workInProgress.treeBaseDuration = current.treeBaseDuration;
-      workInProgress._debugInfo = current._debugInfo;
-      workInProgress._debugNeedsRemount = current._debugNeedsRemount;
-      switch (workInProgress.tag) {
-        case 0:
-        case 15:
-          workInProgress.type = resolveFunctionForHotReloading(current.type);
-          break;
-        case 1:
-          workInProgress.type = resolveFunctionForHotReloading(current.type);
-          break;
-        case 11:
-          workInProgress.type = resolveForwardRefForHotReloading(current.type);
-      }
-      return workInProgress;
-    }
-    function resetWorkInProgress(workInProgress, renderLanes) {
-      workInProgress.flags &= 65011714;
-      var current = workInProgress.alternate;
-      null === current
-        ? ((workInProgress.childLanes = 0),
-          (workInProgress.lanes = renderLanes),
-          (workInProgress.child = null),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.memoizedProps = null),
-          (workInProgress.memoizedState = null),
-          (workInProgress.updateQueue = null),
-          (workInProgress.dependencies = null),
-          (workInProgress.stateNode = null),
-          (workInProgress.selfBaseDuration = 0),
-          (workInProgress.treeBaseDuration = 0))
-        : ((workInProgress.childLanes = current.childLanes),
-          (workInProgress.lanes = current.lanes),
-          (workInProgress.child = current.child),
-          (workInProgress.subtreeFlags = 0),
-          (workInProgress.deletions = null),
-          (workInProgress.memoizedProps = current.memoizedProps),
-          (workInProgress.memoizedState = current.memoizedState),
-          (workInProgress.updateQueue = current.updateQueue),
-          (workInProgress.type = current.type),
-          (renderLanes = current.dependencies),
-          (workInProgress.dependencies =
-            null === renderLanes
-              ? null
-              : {
-                  lanes: renderLanes.lanes,
-                  firstContext: renderLanes.firstContext,
-                  _debugThenableState: renderLanes._debugThenableState
-                }),
-          (workInProgress.selfBaseDuration = current.selfBaseDuration),
-          (workInProgress.treeBaseDuration = current.treeBaseDuration));
-      return workInProgress;
-    }
-    function createFiberFromTypeAndProps(
-      type,
-      key,
-      pendingProps,
-      owner,
-      mode,
-      lanes
-    ) {
-      var fiberTag = 0,
-        resolvedType = type;
-      if ("function" === typeof type)
-        shouldConstruct(type) && (fiberTag = 1),
-          (resolvedType = resolveFunctionForHotReloading(resolvedType));
-      else if ("string" === typeof type)
-        (fiberTag = getHostContext()),
-          (fiberTag = isHostHoistableType(type, pendingProps, fiberTag)
-            ? 26
-            : "html" === type || "head" === type || "body" === type
-              ? 27
-              : 5);
-      else
-        a: switch (type) {
-          case REACT_ACTIVITY_TYPE:
-            return (
-              (key = createFiber(31, pendingProps, key, mode)),
-              (key.elementType = REACT_ACTIVITY_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          case REACT_FRAGMENT_TYPE:
-            return createFiberFromFragment(
-              pendingProps.children,
-              mode,
-              lanes,
-              key
-            );
-          case REACT_STRICT_MODE_TYPE:
-            fiberTag = 8;
-            mode |= StrictLegacyMode;
-            mode |= StrictEffectsMode;
-            break;
-          case REACT_PROFILER_TYPE:
-            return (
-              (type = pendingProps),
-              (owner = mode),
-              "string" !== typeof type.id &&
-                console.error(
-                  'Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.',
-                  typeof type.id
-                ),
-              (key = createFiber(12, type, key, owner | ProfileMode)),
-              (key.elementType = REACT_PROFILER_TYPE),
-              (key.lanes = lanes),
-              (key.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),
-              key
-            );
-          case REACT_SUSPENSE_TYPE:
-            return (
-              (key = createFiber(13, pendingProps, key, mode)),
-              (key.elementType = REACT_SUSPENSE_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          case REACT_SUSPENSE_LIST_TYPE:
-            return (
-              (key = createFiber(19, pendingProps, key, mode)),
-              (key.elementType = REACT_SUSPENSE_LIST_TYPE),
-              (key.lanes = lanes),
-              key
-            );
-          default:
-            if ("object" === typeof type && null !== type)
-              switch (type.$$typeof) {
-                case REACT_CONTEXT_TYPE:
-                  fiberTag = 10;
-                  break a;
-                case REACT_CONSUMER_TYPE:
-                  fiberTag = 9;
-                  break a;
-                case REACT_FORWARD_REF_TYPE:
-                  fiberTag = 11;
-                  resolvedType = resolveForwardRefForHotReloading(resolvedType);
-                  break a;
-                case REACT_MEMO_TYPE:
-                  fiberTag = 14;
-                  break a;
-                case REACT_LAZY_TYPE:
-                  fiberTag = 16;
-                  resolvedType = null;
-                  break a;
-              }
-            resolvedType = "";
-            if (
-              void 0 === type ||
-              ("object" === typeof type &&
-                null !== type &&
-                0 === Object.keys(type).length)
-            )
-              resolvedType +=
-                " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-            null === type
-              ? (pendingProps = "null")
-              : isArrayImpl(type)
-                ? (pendingProps = "array")
-                : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
-                  ? ((pendingProps =
-                      "<" +
-                      (getComponentNameFromType(type.type) || "Unknown") +
-                      " />"),
-                    (resolvedType =
-                      " Did you accidentally export a JSX literal instead of a component?"))
-                  : (pendingProps = typeof type);
-            (fiberTag = owner ? getComponentNameFromOwner(owner) : null) &&
-              (resolvedType +=
-                "\n\nCheck the render method of `" + fiberTag + "`.");
-            fiberTag = 29;
-            pendingProps = Error(
-              "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-                (pendingProps + "." + resolvedType)
-            );
-            resolvedType = null;
-        }
-      key = createFiber(fiberTag, pendingProps, key, mode);
-      key.elementType = type;
-      key.type = resolvedType;
-      key.lanes = lanes;
-      key._debugOwner = owner;
-      return key;
-    }
-    function createFiberFromElement(element, mode, lanes) {
-      mode = createFiberFromTypeAndProps(
-        element.type,
-        element.key,
-        element.props,
-        element._owner,
-        mode,
-        lanes
-      );
-      mode._debugOwner = element._owner;
-      mode._debugStack = element._debugStack;
-      mode._debugTask = element._debugTask;
-      return mode;
-    }
-    function createFiberFromFragment(elements, mode, lanes, key) {
-      elements = createFiber(7, elements, key, mode);
-      elements.lanes = lanes;
-      return elements;
-    }
-    function createFiberFromText(content, mode, lanes) {
-      content = createFiber(6, content, null, mode);
-      content.lanes = lanes;
-      return content;
-    }
-    function createFiberFromDehydratedFragment(dehydratedNode) {
-      var fiber = createFiber(18, null, null, NoMode);
-      fiber.stateNode = dehydratedNode;
-      return fiber;
-    }
-    function createFiberFromPortal(portal, mode, lanes) {
-      mode = createFiber(
-        4,
-        null !== portal.children ? portal.children : [],
-        portal.key,
-        mode
-      );
-      mode.lanes = lanes;
-      mode.stateNode = {
-        containerInfo: portal.containerInfo,
-        pendingChildren: null,
-        implementation: portal.implementation
-      };
-      return mode;
-    }
-    function createCapturedValueAtFiber(value, source) {
-      if ("object" === typeof value && null !== value) {
-        var existing = CapturedStacks.get(value);
-        if (void 0 !== existing) return existing;
-        source = {
-          value: value,
-          source: source,
-          stack: getStackByFiberInDevAndProd(source)
-        };
-        CapturedStacks.set(value, source);
-        return source;
-      }
-      return {
-        value: value,
-        source: source,
-        stack: getStackByFiberInDevAndProd(source)
-      };
-    }
-    function pushTreeFork(workInProgress, totalChildren) {
-      warnIfNotHydrating();
-      forkStack[forkStackIndex++] = treeForkCount;
-      forkStack[forkStackIndex++] = treeForkProvider;
-      treeForkProvider = workInProgress;
-      treeForkCount = totalChildren;
-    }
-    function pushTreeId(workInProgress, totalChildren, index) {
-      warnIfNotHydrating();
-      idStack[idStackIndex++] = treeContextId;
-      idStack[idStackIndex++] = treeContextOverflow;
-      idStack[idStackIndex++] = treeContextProvider;
-      treeContextProvider = workInProgress;
-      var baseIdWithLeadingBit = treeContextId;
-      workInProgress = treeContextOverflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        treeContextId =
-          (1 << (32 - clz32(totalChildren) + baseLength)) |
-          (index << baseLength) |
-          baseIdWithLeadingBit;
-        treeContextOverflow = length + workInProgress;
-      } else
-        (treeContextId =
-          (1 << length) | (index << baseLength) | baseIdWithLeadingBit),
-          (treeContextOverflow = workInProgress);
-    }
-    function pushMaterializedTreeId(workInProgress) {
-      warnIfNotHydrating();
-      null !== workInProgress.return &&
-        (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));
-    }
-    function popTreeContext(workInProgress) {
-      for (; workInProgress === treeForkProvider; )
-        (treeForkProvider = forkStack[--forkStackIndex]),
-          (forkStack[forkStackIndex] = null),
-          (treeForkCount = forkStack[--forkStackIndex]),
-          (forkStack[forkStackIndex] = null);
-      for (; workInProgress === treeContextProvider; )
-        (treeContextProvider = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null),
-          (treeContextOverflow = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null),
-          (treeContextId = idStack[--idStackIndex]),
-          (idStack[idStackIndex] = null);
-    }
-    function getSuspendedTreeContext() {
-      warnIfNotHydrating();
-      return null !== treeContextProvider
-        ? { id: treeContextId, overflow: treeContextOverflow }
-        : null;
-    }
-    function restoreSuspendedTreeContext(workInProgress, suspendedContext) {
-      warnIfNotHydrating();
-      idStack[idStackIndex++] = treeContextId;
-      idStack[idStackIndex++] = treeContextOverflow;
-      idStack[idStackIndex++] = treeContextProvider;
-      treeContextId = suspendedContext.id;
-      treeContextOverflow = suspendedContext.overflow;
-      treeContextProvider = workInProgress;
-    }
-    function warnIfNotHydrating() {
-      isHydrating ||
-        console.error(
-          "Expected to be hydrating. This is a bug in React. Please file an issue."
-        );
-    }
-    function buildHydrationDiffNode(fiber, distanceFromLeaf) {
-      if (null === fiber.return) {
-        if (null === hydrationDiffRootDEV)
-          hydrationDiffRootDEV = {
-            fiber: fiber,
-            children: [],
-            serverProps: void 0,
-            serverTail: [],
-            distanceFromLeaf: distanceFromLeaf
-          };
-        else {
-          if (hydrationDiffRootDEV.fiber !== fiber)
-            throw Error(
-              "Saw multiple hydration diff roots in a pass. This is a bug in React."
-            );
-          hydrationDiffRootDEV.distanceFromLeaf > distanceFromLeaf &&
-            (hydrationDiffRootDEV.distanceFromLeaf = distanceFromLeaf);
-        }
-        return hydrationDiffRootDEV;
-      }
-      var siblings = buildHydrationDiffNode(
-        fiber.return,
-        distanceFromLeaf + 1
-      ).children;
-      if (0 < siblings.length && siblings[siblings.length - 1].fiber === fiber)
-        return (
-          (siblings = siblings[siblings.length - 1]),
-          siblings.distanceFromLeaf > distanceFromLeaf &&
-            (siblings.distanceFromLeaf = distanceFromLeaf),
-          siblings
-        );
-      distanceFromLeaf = {
-        fiber: fiber,
-        children: [],
-        serverProps: void 0,
-        serverTail: [],
-        distanceFromLeaf: distanceFromLeaf
-      };
-      siblings.push(distanceFromLeaf);
-      return distanceFromLeaf;
-    }
-    function warnIfHydrating() {
-      isHydrating &&
-        console.error(
-          "We should not be hydrating here. This is a bug in React. Please file a bug."
-        );
-    }
-    function warnNonHydratedInstance(fiber, rejectedCandidate) {
-      didSuspendOrErrorDEV ||
-        ((fiber = buildHydrationDiffNode(fiber, 0)),
-        (fiber.serverProps = null),
-        null !== rejectedCandidate &&
-          ((rejectedCandidate =
-            describeHydratableInstanceForDevWarnings(rejectedCandidate)),
-          fiber.serverTail.push(rejectedCandidate)));
-    }
-    function throwOnHydrationMismatch(fiber) {
-      var fromText =
-          1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1,
-        diff = "",
-        diffRoot = hydrationDiffRootDEV;
-      null !== diffRoot &&
-        ((hydrationDiffRootDEV = null), (diff = describeDiff(diffRoot)));
-      queueHydrationError(
-        createCapturedValueAtFiber(
-          Error(
-            "Hydration failed because the server rendered " +
-              (fromText ? "text" : "HTML") +
-              " didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\nhttps://react.dev/link/hydration-mismatch" +
-              diff
-          ),
-          fiber
-        )
-      );
-      throw HydrationMismatchException;
-    }
-    function prepareToHydrateHostInstance(fiber) {
-      var didHydrate = fiber.stateNode;
-      var type = fiber.type,
-        props = fiber.memoizedProps;
-      didHydrate[internalInstanceKey] = fiber;
-      didHydrate[internalPropsKey] = props;
-      validatePropertiesInDevelopment(type, props);
-      switch (type) {
-        case "dialog":
-          listenToNonDelegatedEvent("cancel", didHydrate);
-          listenToNonDelegatedEvent("close", didHydrate);
-          break;
-        case "iframe":
-        case "object":
-        case "embed":
-          listenToNonDelegatedEvent("load", didHydrate);
-          break;
-        case "video":
-        case "audio":
-          for (type = 0; type < mediaEventTypes.length; type++)
-            listenToNonDelegatedEvent(mediaEventTypes[type], didHydrate);
-          break;
-        case "source":
-          listenToNonDelegatedEvent("error", didHydrate);
-          break;
-        case "img":
-        case "image":
-        case "link":
-          listenToNonDelegatedEvent("error", didHydrate);
-          listenToNonDelegatedEvent("load", didHydrate);
-          break;
-        case "details":
-          listenToNonDelegatedEvent("toggle", didHydrate);
-          break;
-        case "input":
-          checkControlledValueProps("input", props);
-          listenToNonDelegatedEvent("invalid", didHydrate);
-          validateInputProps(didHydrate, props);
-          initInput(
-            didHydrate,
-            props.value,
-            props.defaultValue,
-            props.checked,
-            props.defaultChecked,
-            props.type,
-            props.name,
-            !0
-          );
-          break;
-        case "option":
-          validateOptionProps(didHydrate, props);
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          listenToNonDelegatedEvent("invalid", didHydrate);
-          validateSelectProps(didHydrate, props);
-          break;
-        case "textarea":
-          checkControlledValueProps("textarea", props),
-            listenToNonDelegatedEvent("invalid", didHydrate),
-            validateTextareaProps(didHydrate, props),
-            initTextarea(
-              didHydrate,
-              props.value,
-              props.defaultValue,
-              props.children
-            );
-      }
-      type = props.children;
-      ("string" !== typeof type &&
-        "number" !== typeof type &&
-        "bigint" !== typeof type) ||
-      didHydrate.textContent === "" + type ||
-      !0 === props.suppressHydrationWarning ||
-      checkForUnmatchedText(didHydrate.textContent, type)
-        ? (null != props.popover &&
-            (listenToNonDelegatedEvent("beforetoggle", didHydrate),
-            listenToNonDelegatedEvent("toggle", didHydrate)),
-          null != props.onScroll &&
-            listenToNonDelegatedEvent("scroll", didHydrate),
-          null != props.onScrollEnd &&
-            listenToNonDelegatedEvent("scrollend", didHydrate),
-          null != props.onClick && (didHydrate.onclick = noop$1),
-          (didHydrate = !0))
-        : (didHydrate = !1);
-      didHydrate || throwOnHydrationMismatch(fiber, !0);
-    }
-    function popToNextHostParent(fiber) {
-      for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
-        switch (hydrationParentFiber.tag) {
-          case 5:
-          case 31:
-          case 13:
-            rootOrSingletonContext = !1;
-            return;
-          case 27:
-          case 3:
-            rootOrSingletonContext = !0;
-            return;
-          default:
-            hydrationParentFiber = hydrationParentFiber.return;
-        }
-    }
-    function popHydrationState(fiber) {
-      if (fiber !== hydrationParentFiber) return !1;
-      if (!isHydrating)
-        return popToNextHostParent(fiber), (isHydrating = !0), !1;
-      var tag = fiber.tag,
-        JSCompiler_temp;
-      if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
-        if ((JSCompiler_temp = 5 === tag))
-          (JSCompiler_temp = fiber.type),
-            (JSCompiler_temp =
-              !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) ||
-              shouldSetTextContent(fiber.type, fiber.memoizedProps));
-        JSCompiler_temp = !JSCompiler_temp;
-      }
-      if (JSCompiler_temp && nextHydratableInstance) {
-        for (JSCompiler_temp = nextHydratableInstance; JSCompiler_temp; ) {
-          var diffNode = buildHydrationDiffNode(fiber, 0),
-            description =
-              describeHydratableInstanceForDevWarnings(JSCompiler_temp);
-          diffNode.serverTail.push(description);
-          JSCompiler_temp =
-            "Suspense" === description.type
-              ? getNextHydratableInstanceAfterHydrationBoundary(JSCompiler_temp)
-              : getNextHydratable(JSCompiler_temp.nextSibling);
-        }
-        throwOnHydrationMismatch(fiber);
-      }
-      popToNextHostParent(fiber);
-      if (13 === tag) {
-        fiber = fiber.memoizedState;
-        fiber = null !== fiber ? fiber.dehydrated : null;
-        if (!fiber)
-          throw Error(
-            "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-          );
-        nextHydratableInstance =
-          getNextHydratableInstanceAfterHydrationBoundary(fiber);
-      } else if (31 === tag) {
-        fiber = fiber.memoizedState;
-        fiber = null !== fiber ? fiber.dehydrated : null;
-        if (!fiber)
-          throw Error(
-            "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-          );
-        nextHydratableInstance =
-          getNextHydratableInstanceAfterHydrationBoundary(fiber);
-      } else
-        27 === tag
-          ? ((tag = nextHydratableInstance),
-            isSingletonScope(fiber.type)
-              ? ((fiber = previousHydratableOnEnteringScopedSingleton),
-                (previousHydratableOnEnteringScopedSingleton = null),
-                (nextHydratableInstance = fiber))
-              : (nextHydratableInstance = tag))
-          : (nextHydratableInstance = hydrationParentFiber
-              ? getNextHydratable(fiber.stateNode.nextSibling)
-              : null);
-      return !0;
-    }
-    function resetHydrationState() {
-      nextHydratableInstance = hydrationParentFiber = null;
-      didSuspendOrErrorDEV = isHydrating = !1;
-    }
-    function upgradeHydrationErrorsToRecoverable() {
-      var queuedErrors = hydrationErrors;
-      null !== queuedErrors &&
-        (null === workInProgressRootRecoverableErrors
-          ? (workInProgressRootRecoverableErrors = queuedErrors)
-          : workInProgressRootRecoverableErrors.push.apply(
-              workInProgressRootRecoverableErrors,
-              queuedErrors
-            ),
-        (hydrationErrors = null));
-      return queuedErrors;
-    }
-    function queueHydrationError(error) {
-      null === hydrationErrors
-        ? (hydrationErrors = [error])
-        : hydrationErrors.push(error);
-    }
-    function emitPendingHydrationWarnings() {
-      var diffRoot = hydrationDiffRootDEV;
-      if (null !== diffRoot) {
-        hydrationDiffRootDEV = null;
-        for (var diff = describeDiff(diffRoot); 0 < diffRoot.children.length; )
-          diffRoot = diffRoot.children[0];
-        runWithFiberInDEV(diffRoot.fiber, function () {
-          console.error(
-            "A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s",
-            "https://react.dev/link/hydration-mismatch",
-            diff
-          );
-        });
-      }
-    }
-    function resetContextDependencies() {
-      lastContextDependency = currentlyRenderingFiber$1 = null;
-      isDisallowedContextReadInDEV = !1;
-    }
-    function pushProvider(providerFiber, context, nextValue) {
-      push(valueCursor, context._currentValue, providerFiber);
-      context._currentValue = nextValue;
-      push(rendererCursorDEV, context._currentRenderer, providerFiber);
-      void 0 !== context._currentRenderer &&
-        null !== context._currentRenderer &&
-        context._currentRenderer !== rendererSigil &&
-        console.error(
-          "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-        );
-      context._currentRenderer = rendererSigil;
-    }
-    function popProvider(context, providerFiber) {
-      context._currentValue = valueCursor.current;
-      var currentRenderer = rendererCursorDEV.current;
-      pop(rendererCursorDEV, providerFiber);
-      context._currentRenderer = currentRenderer;
-      pop(valueCursor, providerFiber);
-    }
-    function scheduleContextWorkOnParentPath(
-      parent,
-      renderLanes,
-      propagationRoot
-    ) {
-      for (; null !== parent; ) {
-        var alternate = parent.alternate;
-        (parent.childLanes & renderLanes) !== renderLanes
-          ? ((parent.childLanes |= renderLanes),
-            null !== alternate && (alternate.childLanes |= renderLanes))
-          : null !== alternate &&
-            (alternate.childLanes & renderLanes) !== renderLanes &&
-            (alternate.childLanes |= renderLanes);
-        if (parent === propagationRoot) break;
-        parent = parent.return;
-      }
-      parent !== propagationRoot &&
-        console.error(
-          "Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue."
-        );
-    }
-    function propagateContextChanges(
-      workInProgress,
-      contexts,
-      renderLanes,
-      forcePropagateEntireTree
-    ) {
-      var fiber = workInProgress.child;
-      null !== fiber && (fiber.return = workInProgress);
-      for (; null !== fiber; ) {
-        var list = fiber.dependencies;
-        if (null !== list) {
-          var nextFiber = fiber.child;
-          list = list.firstContext;
-          a: for (; null !== list; ) {
-            var dependency = list;
-            list = fiber;
-            for (var i = 0; i < contexts.length; i++)
-              if (dependency.context === contexts[i]) {
-                list.lanes |= renderLanes;
-                dependency = list.alternate;
-                null !== dependency && (dependency.lanes |= renderLanes);
-                scheduleContextWorkOnParentPath(
-                  list.return,
-                  renderLanes,
-                  workInProgress
-                );
-                forcePropagateEntireTree || (nextFiber = null);
-                break a;
-              }
-            list = dependency.next;
-          }
-        } else if (18 === fiber.tag) {
-          nextFiber = fiber.return;
-          if (null === nextFiber)
-            throw Error(
-              "We just came from a parent so we must have had a parent. This is a bug in React."
-            );
-          nextFiber.lanes |= renderLanes;
-          list = nextFiber.alternate;
-          null !== list && (list.lanes |= renderLanes);
-          scheduleContextWorkOnParentPath(
-            nextFiber,
-            renderLanes,
-            workInProgress
-          );
-          nextFiber = null;
-        } else nextFiber = fiber.child;
-        if (null !== nextFiber) nextFiber.return = fiber;
-        else
-          for (nextFiber = fiber; null !== nextFiber; ) {
-            if (nextFiber === workInProgress) {
-              nextFiber = null;
-              break;
-            }
-            fiber = nextFiber.sibling;
-            if (null !== fiber) {
-              fiber.return = nextFiber.return;
-              nextFiber = fiber;
-              break;
-            }
-            nextFiber = nextFiber.return;
-          }
-        fiber = nextFiber;
-      }
-    }
-    function propagateParentContextChanges(
-      current,
-      workInProgress,
-      renderLanes,
-      forcePropagateEntireTree
-    ) {
-      current = null;
-      for (
-        var parent = workInProgress, isInsidePropagationBailout = !1;
-        null !== parent;
-
-      ) {
-        if (!isInsidePropagationBailout)
-          if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;
-          else if (0 !== (parent.flags & 262144)) break;
-        if (10 === parent.tag) {
-          var currentParent = parent.alternate;
-          if (null === currentParent)
-            throw Error("Should have a current fiber. This is a bug in React.");
-          currentParent = currentParent.memoizedProps;
-          if (null !== currentParent) {
-            var context = parent.type;
-            objectIs(parent.pendingProps.value, currentParent.value) ||
-              (null !== current
-                ? current.push(context)
-                : (current = [context]));
-          }
-        } else if (parent === hostTransitionProviderCursor.current) {
-          currentParent = parent.alternate;
-          if (null === currentParent)
-            throw Error("Should have a current fiber. This is a bug in React.");
-          currentParent.memoizedState.memoizedState !==
-            parent.memoizedState.memoizedState &&
-            (null !== current
-              ? current.push(HostTransitionContext)
-              : (current = [HostTransitionContext]));
-        }
-        parent = parent.return;
-      }
-      null !== current &&
-        propagateContextChanges(
-          workInProgress,
-          current,
-          renderLanes,
-          forcePropagateEntireTree
-        );
-      workInProgress.flags |= 262144;
-    }
-    function checkIfContextChanged(currentDependencies) {
-      for (
-        currentDependencies = currentDependencies.firstContext;
-        null !== currentDependencies;
-
-      ) {
-        if (
-          !objectIs(
-            currentDependencies.context._currentValue,
-            currentDependencies.memoizedValue
-          )
-        )
-          return !0;
-        currentDependencies = currentDependencies.next;
-      }
-      return !1;
-    }
-    function prepareToReadContext(workInProgress) {
-      currentlyRenderingFiber$1 = workInProgress;
-      lastContextDependency = null;
-      workInProgress = workInProgress.dependencies;
-      null !== workInProgress && (workInProgress.firstContext = null);
-    }
-    function readContext(context) {
-      isDisallowedContextReadInDEV &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return readContextForConsumer(currentlyRenderingFiber$1, context);
-    }
-    function readContextDuringReconciliation(consumer, context) {
-      null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);
-      return readContextForConsumer(consumer, context);
-    }
-    function readContextForConsumer(consumer, context) {
-      var value = context._currentValue;
-      context = { context: context, memoizedValue: value, next: null };
-      if (null === lastContextDependency) {
-        if (null === consumer)
-          throw Error(
-            "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-          );
-        lastContextDependency = context;
-        consumer.dependencies = {
-          lanes: 0,
-          firstContext: context,
-          _debugThenableState: null
-        };
-        consumer.flags |= 524288;
-      } else lastContextDependency = lastContextDependency.next = context;
-      return value;
-    }
-    function createCache() {
-      return {
-        controller: new AbortControllerLocal(),
-        data: new Map(),
-        refCount: 0
-      };
-    }
-    function retainCache(cache) {
-      cache.controller.signal.aborted &&
-        console.warn(
-          "A cache instance was retained after it was already freed. This likely indicates a bug in React."
-        );
-      cache.refCount++;
-    }
-    function releaseCache(cache) {
-      cache.refCount--;
-      0 > cache.refCount &&
-        console.warn(
-          "A cache instance was released after it was already freed. This likely indicates a bug in React."
-        );
-      0 === cache.refCount &&
-        scheduleCallback$2(NormalPriority, function () {
-          cache.controller.abort();
-        });
-    }
-    function startUpdateTimerByLane(lane, method, fiber) {
-      if (0 !== (lane & 127))
-        0 > blockingUpdateTime &&
-          ((blockingUpdateTime = now()),
-          (blockingUpdateTask = createTask(method)),
-          (blockingUpdateMethodName = method),
-          null != fiber &&
-            (blockingUpdateComponentName = getComponentNameFromFiber(fiber)),
-          (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-            ((componentEffectSpawnedUpdate = !0),
-            (blockingUpdateType = SPAWNED_UPDATE)),
-          (lane = resolveEventTimeStamp()),
-          (method = resolveEventType()),
-          lane !== blockingEventRepeatTime || method !== blockingEventType
-            ? (blockingEventRepeatTime = -1.1)
-            : null !== method && (blockingUpdateType = SPAWNED_UPDATE),
-          (blockingEventTime = lane),
-          (blockingEventType = method));
-      else if (
-        0 !== (lane & 4194048) &&
-        0 > transitionUpdateTime &&
-        ((transitionUpdateTime = now()),
-        (transitionUpdateTask = createTask(method)),
-        (transitionUpdateMethodName = method),
-        null != fiber &&
-          (transitionUpdateComponentName = getComponentNameFromFiber(fiber)),
-        0 > transitionStartTime)
-      ) {
-        lane = resolveEventTimeStamp();
-        method = resolveEventType();
-        if (
-          lane !== transitionEventRepeatTime ||
-          method !== transitionEventType
-        )
-          transitionEventRepeatTime = -1.1;
-        transitionEventTime = lane;
-        transitionEventType = method;
-      }
-    }
-    function startHostActionTimer(fiber) {
-      if (0 > blockingUpdateTime) {
-        blockingUpdateTime = now();
-        blockingUpdateTask = null != fiber._debugTask ? fiber._debugTask : null;
-        (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-          (blockingUpdateType = SPAWNED_UPDATE);
-        var newEventTime = resolveEventTimeStamp(),
-          newEventType = resolveEventType();
-        newEventTime !== blockingEventRepeatTime ||
-        newEventType !== blockingEventType
-          ? (blockingEventRepeatTime = -1.1)
-          : null !== newEventType && (blockingUpdateType = SPAWNED_UPDATE);
-        blockingEventTime = newEventTime;
-        blockingEventType = newEventType;
-      }
-      if (
-        0 > transitionUpdateTime &&
-        ((transitionUpdateTime = now()),
-        (transitionUpdateTask =
-          null != fiber._debugTask ? fiber._debugTask : null),
-        0 > transitionStartTime)
-      ) {
-        fiber = resolveEventTimeStamp();
-        newEventTime = resolveEventType();
-        if (
-          fiber !== transitionEventRepeatTime ||
-          newEventTime !== transitionEventType
-        )
-          transitionEventRepeatTime = -1.1;
-        transitionEventTime = fiber;
-        transitionEventType = newEventTime;
-      }
-    }
-    function pushNestedEffectDurations() {
-      var prevEffectDuration = profilerEffectDuration;
-      profilerEffectDuration = 0;
-      return prevEffectDuration;
-    }
-    function popNestedEffectDurations(prevEffectDuration) {
-      var elapsedTime = profilerEffectDuration;
-      profilerEffectDuration = prevEffectDuration;
-      return elapsedTime;
-    }
-    function bubbleNestedEffectDurations(prevEffectDuration) {
-      var elapsedTime = profilerEffectDuration;
-      profilerEffectDuration += prevEffectDuration;
-      return elapsedTime;
-    }
-    function resetComponentEffectTimers() {
-      componentEffectEndTime = componentEffectStartTime = -1.1;
-    }
-    function pushComponentEffectStart() {
-      var prevEffectStart = componentEffectStartTime;
-      componentEffectStartTime = -1.1;
-      return prevEffectStart;
-    }
-    function popComponentEffectStart(prevEffectStart) {
-      0 <= prevEffectStart && (componentEffectStartTime = prevEffectStart);
-    }
-    function pushComponentEffectDuration() {
-      var prevEffectDuration = componentEffectDuration;
-      componentEffectDuration = -0;
-      return prevEffectDuration;
-    }
-    function popComponentEffectDuration(prevEffectDuration) {
-      0 <= prevEffectDuration && (componentEffectDuration = prevEffectDuration);
-    }
-    function pushComponentEffectErrors() {
-      var prevErrors = componentEffectErrors;
-      componentEffectErrors = null;
-      return prevErrors;
-    }
-    function pushComponentEffectDidSpawnUpdate() {
-      var prev = componentEffectSpawnedUpdate;
-      componentEffectSpawnedUpdate = !1;
-      return prev;
-    }
-    function startProfilerTimer(fiber) {
-      profilerStartTime = now();
-      0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime);
-    }
-    function stopProfilerTimerIfRunningAndRecordDuration(fiber) {
-      if (0 <= profilerStartTime) {
-        var elapsedTime = now() - profilerStartTime;
-        fiber.actualDuration += elapsedTime;
-        fiber.selfBaseDuration = elapsedTime;
-        profilerStartTime = -1;
-      }
-    }
-    function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {
-      if (0 <= profilerStartTime) {
-        var elapsedTime = now() - profilerStartTime;
-        fiber.actualDuration += elapsedTime;
-        profilerStartTime = -1;
-      }
-    }
-    function recordEffectDuration() {
-      if (0 <= profilerStartTime) {
-        var endTime = now(),
-          elapsedTime = endTime - profilerStartTime;
-        profilerStartTime = -1;
-        profilerEffectDuration += elapsedTime;
-        componentEffectDuration += elapsedTime;
-        componentEffectEndTime = endTime;
-      }
-    }
-    function recordEffectError(errorInfo) {
-      null === componentEffectErrors && (componentEffectErrors = []);
-      componentEffectErrors.push(errorInfo);
-      null === commitErrors && (commitErrors = []);
-      commitErrors.push(errorInfo);
-    }
-    function startEffectTimer() {
-      profilerStartTime = now();
-      0 > componentEffectStartTime &&
-        (componentEffectStartTime = profilerStartTime);
-    }
-    function transferActualDuration(fiber) {
-      for (var child = fiber.child; child; )
-        (fiber.actualDuration += child.actualDuration), (child = child.sibling);
-    }
-    function entangleAsyncAction(transition, thenable) {
-      if (null === currentEntangledListeners) {
-        var entangledListeners = (currentEntangledListeners = []);
-        currentEntangledPendingCount = 0;
-        currentEntangledLane = requestTransitionLane();
-        currentEntangledActionThenable = {
-          status: "pending",
-          value: void 0,
-          then: function (resolve) {
-            entangledListeners.push(resolve);
-          }
-        };
-      }
-      currentEntangledPendingCount++;
-      thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);
-      return thenable;
-    }
-    function pingEngtangledActionScope() {
-      if (
-        0 === --currentEntangledPendingCount &&
-        (-1 < transitionUpdateTime || (transitionStartTime = -1.1),
-        null !== currentEntangledListeners)
-      ) {
-        null !== currentEntangledActionThenable &&
-          (currentEntangledActionThenable.status = "fulfilled");
-        var listeners = currentEntangledListeners;
-        currentEntangledListeners = null;
-        currentEntangledLane = 0;
-        currentEntangledActionThenable = null;
-        for (var i = 0; i < listeners.length; i++) (0, listeners[i])();
-      }
-    }
-    function chainThenableValue(thenable, result) {
-      var listeners = [],
-        thenableWithOverride = {
-          status: "pending",
-          value: null,
-          reason: null,
-          then: function (resolve) {
-            listeners.push(resolve);
-          }
-        };
-      thenable.then(
-        function () {
-          thenableWithOverride.status = "fulfilled";
-          thenableWithOverride.value = result;
-          for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);
-        },
-        function (error) {
-          thenableWithOverride.status = "rejected";
-          thenableWithOverride.reason = error;
-          for (error = 0; error < listeners.length; error++)
-            (0, listeners[error])(void 0);
-        }
-      );
-      return thenableWithOverride;
-    }
-    function peekCacheFromPool() {
-      var cacheResumedFromPreviousRender = resumedCache.current;
-      return null !== cacheResumedFromPreviousRender
-        ? cacheResumedFromPreviousRender
-        : workInProgressRoot.pooledCache;
-    }
-    function pushTransition(offscreenWorkInProgress, prevCachePool) {
-      null === prevCachePool
-        ? push(resumedCache, resumedCache.current, offscreenWorkInProgress)
-        : push(resumedCache, prevCachePool.pool, offscreenWorkInProgress);
-    }
-    function getSuspendedCache() {
-      var cacheFromPool = peekCacheFromPool();
-      return null === cacheFromPool
-        ? null
-        : { parent: CacheContext._currentValue, pool: cacheFromPool };
-    }
-    function createThenableState() {
-      return { didWarnAboutUncachedPromise: !1, thenables: [] };
-    }
-    function isThenableResolved(thenable) {
-      thenable = thenable.status;
-      return "fulfilled" === thenable || "rejected" === thenable;
-    }
-    function trackUsedThenable(thenableState, thenable, index) {
-      null !== ReactSharedInternals.actQueue &&
-        (ReactSharedInternals.didUsePromise = !0);
-      var trackedThenables = thenableState.thenables;
-      index = trackedThenables[index];
-      void 0 === index
-        ? trackedThenables.push(thenable)
-        : index !== thenable &&
-          (thenableState.didWarnAboutUncachedPromise ||
-            ((thenableState.didWarnAboutUncachedPromise = !0),
-            console.error(
-              "A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework."
-            )),
-          thenable.then(noop$1, noop$1),
-          (thenable = index));
-      if (void 0 === thenable._debugInfo) {
-        thenableState = performance.now();
-        trackedThenables = thenable.displayName;
-        var ioInfo = {
-          name:
-            "string" === typeof trackedThenables ? trackedThenables : "Promise",
-          start: thenableState,
-          end: thenableState,
-          value: thenable
-        };
-        thenable._debugInfo = [{ awaited: ioInfo }];
-        "fulfilled" !== thenable.status &&
-          "rejected" !== thenable.status &&
-          ((thenableState = function () {
-            ioInfo.end = performance.now();
-          }),
-          thenable.then(thenableState, thenableState));
-      }
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw (
-            ((thenableState = thenable.reason),
-            checkIfUseWrappedInAsyncCatch(thenableState),
-            thenableState)
-          );
-        default:
-          if ("string" === typeof thenable.status)
-            thenable.then(noop$1, noop$1);
-          else {
-            thenableState = workInProgressRoot;
-            if (
-              null !== thenableState &&
-              100 < thenableState.shellSuspendCounter
-            )
-              throw Error(
-                "An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
-              );
-            thenableState = thenable;
-            thenableState.status = "pending";
-            thenableState.then(
-              function (fulfilledValue) {
-                if ("pending" === thenable.status) {
-                  var fulfilledThenable = thenable;
-                  fulfilledThenable.status = "fulfilled";
-                  fulfilledThenable.value = fulfilledValue;
-                }
-              },
-              function (error) {
-                if ("pending" === thenable.status) {
-                  var rejectedThenable = thenable;
-                  rejectedThenable.status = "rejected";
-                  rejectedThenable.reason = error;
-                }
-              }
-            );
-          }
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw (
-                ((thenableState = thenable.reason),
-                checkIfUseWrappedInAsyncCatch(thenableState),
-                thenableState)
-              );
-          }
-          suspendedThenable = thenable;
-          needsToResetSuspendedThenableDEV = !0;
-          throw SuspenseException;
-      }
-    }
-    function resolveLazy(lazyType) {
-      try {
-        return callLazyInitInDEV(lazyType);
-      } catch (x) {
-        if (null !== x && "object" === typeof x && "function" === typeof x.then)
-          throw (
-            ((suspendedThenable = x),
-            (needsToResetSuspendedThenableDEV = !0),
-            SuspenseException)
-          );
-        throw x;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      needsToResetSuspendedThenableDEV = !1;
-      return thenable;
-    }
-    function checkIfUseWrappedInAsyncCatch(rejectedReason) {
-      if (
-        rejectedReason === SuspenseException ||
-        rejectedReason === SuspenseActionException
-      )
-        throw Error(
-          "Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
-        );
-    }
-    function pushDebugInfo(debugInfo) {
-      var previousDebugInfo = currentDebugInfo;
-      null != debugInfo &&
-        (currentDebugInfo =
-          null === previousDebugInfo
-            ? debugInfo
-            : previousDebugInfo.concat(debugInfo));
-      return previousDebugInfo;
-    }
-    function getCurrentDebugTask() {
-      var debugInfo = currentDebugInfo;
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--)
-          if (null != debugInfo[i].name) {
-            var debugTask = debugInfo[i].debugTask;
-            if (null != debugTask) return debugTask;
-          }
-      return null;
-    }
-    function validateFragmentProps(element, fiber, returnFiber) {
-      for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) {
-        var key = keys[i];
-        if ("children" !== key && "key" !== key) {
-          null === fiber &&
-            ((fiber = createFiberFromElement(element, returnFiber.mode, 0)),
-            (fiber._debugInfo = currentDebugInfo),
-            (fiber.return = returnFiber));
-          runWithFiberInDEV(
-            fiber,
-            function (erroredKey) {
-              console.error(
-                "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",
-                erroredKey
-              );
-            },
-            key
-          );
-          break;
-        }
-      }
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter$1;
-      thenableIndexCounter$1 += 1;
-      null === thenableState$1 && (thenableState$1 = createThenableState());
-      return trackUsedThenable(thenableState$1, thenable, index);
-    }
-    function coerceRef(workInProgress, element) {
-      element = element.props.ref;
-      workInProgress.ref = void 0 !== element ? element : null;
-    }
-    function throwOnInvalidObjectTypeImpl(returnFiber, newChild) {
-      if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)
-        throw Error(
-          'A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.'
-        );
-      returnFiber = Object.prototype.toString.call(newChild);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === returnFiber
-            ? "object with keys {" + Object.keys(newChild).join(", ") + "}"
-            : returnFiber) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    function throwOnInvalidObjectType(returnFiber, newChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            throwOnInvalidObjectTypeImpl.bind(null, returnFiber, newChild)
-          )
-        : throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    function warnOnFunctionTypeImpl(returnFiber, invalidChild) {
-      var parentName = getComponentNameFromFiber(returnFiber) || "Component";
-      ownerHasFunctionTypeWarning[parentName] ||
-        ((ownerHasFunctionTypeWarning[parentName] = !0),
-        (invalidChild =
-          invalidChild.displayName || invalidChild.name || "Component"),
-        3 === returnFiber.tag
-          ? console.error(
-              "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  root.render(%s)",
-              invalidChild,
-              invalidChild,
-              invalidChild
-            )
-          : console.error(
-              "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  <%s>{%s}</%s>",
-              invalidChild,
-              invalidChild,
-              parentName,
-              invalidChild,
-              parentName
-            ));
-    }
-    function warnOnFunctionType(returnFiber, invalidChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            warnOnFunctionTypeImpl.bind(null, returnFiber, invalidChild)
-          )
-        : warnOnFunctionTypeImpl(returnFiber, invalidChild);
-    }
-    function warnOnSymbolTypeImpl(returnFiber, invalidChild) {
-      var parentName = getComponentNameFromFiber(returnFiber) || "Component";
-      ownerHasSymbolTypeWarning[parentName] ||
-        ((ownerHasSymbolTypeWarning[parentName] = !0),
-        (invalidChild = String(invalidChild)),
-        3 === returnFiber.tag
-          ? console.error(
-              "Symbols are not valid as a React child.\n  root.render(%s)",
-              invalidChild
-            )
-          : console.error(
-              "Symbols are not valid as a React child.\n  <%s>%s</%s>",
-              parentName,
-              invalidChild,
-              parentName
-            ));
-    }
-    function warnOnSymbolType(returnFiber, invalidChild) {
-      var debugTask = getCurrentDebugTask();
-      null !== debugTask
-        ? debugTask.run(
-            warnOnSymbolTypeImpl.bind(null, returnFiber, invalidChild)
-          )
-        : warnOnSymbolTypeImpl(returnFiber, invalidChild);
-    }
-    function createChildReconciler(shouldTrackSideEffects) {
-      function deleteChild(returnFiber, childToDelete) {
-        if (shouldTrackSideEffects) {
-          var deletions = returnFiber.deletions;
-          null === deletions
-            ? ((returnFiber.deletions = [childToDelete]),
-              (returnFiber.flags |= 16))
-            : deletions.push(childToDelete);
-        }
-      }
-      function deleteRemainingChildren(returnFiber, currentFirstChild) {
-        if (!shouldTrackSideEffects) return null;
-        for (; null !== currentFirstChild; )
-          deleteChild(returnFiber, currentFirstChild),
-            (currentFirstChild = currentFirstChild.sibling);
-        return null;
-      }
-      function mapRemainingChildren(currentFirstChild) {
-        for (var existingChildren = new Map(); null !== currentFirstChild; )
-          null !== currentFirstChild.key
-            ? existingChildren.set(currentFirstChild.key, currentFirstChild)
-            : existingChildren.set(currentFirstChild.index, currentFirstChild),
-            (currentFirstChild = currentFirstChild.sibling);
-        return existingChildren;
-      }
-      function useFiber(fiber, pendingProps) {
-        fiber = createWorkInProgress(fiber, pendingProps);
-        fiber.index = 0;
-        fiber.sibling = null;
-        return fiber;
-      }
-      function placeChild(newFiber, lastPlacedIndex, newIndex) {
-        newFiber.index = newIndex;
-        if (!shouldTrackSideEffects)
-          return (newFiber.flags |= 1048576), lastPlacedIndex;
-        newIndex = newFiber.alternate;
-        if (null !== newIndex)
-          return (
-            (newIndex = newIndex.index),
-            newIndex < lastPlacedIndex
-              ? ((newFiber.flags |= 67108866), lastPlacedIndex)
-              : newIndex
-          );
-        newFiber.flags |= 67108866;
-        return lastPlacedIndex;
-      }
-      function placeSingleChild(newFiber) {
-        shouldTrackSideEffects &&
-          null === newFiber.alternate &&
-          (newFiber.flags |= 67108866);
-        return newFiber;
-      }
-      function updateTextNode(returnFiber, current, textContent, lanes) {
-        if (null === current || 6 !== current.tag)
-          return (
-            (current = createFiberFromText(
-              textContent,
-              returnFiber.mode,
-              lanes
-            )),
-            (current.return = returnFiber),
-            (current._debugOwner = returnFiber),
-            (current._debugTask = returnFiber._debugTask),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, textContent);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updateElement(returnFiber, current, element, lanes) {
-        var elementType = element.type;
-        if (elementType === REACT_FRAGMENT_TYPE)
-          return (
-            (current = updateFragment(
-              returnFiber,
-              current,
-              element.props.children,
-              lanes,
-              element.key
-            )),
-            validateFragmentProps(element, current, returnFiber),
-            current
-          );
-        if (
-          null !== current &&
-          (current.elementType === elementType ||
-            isCompatibleFamilyForHotReloading(current, element) ||
-            ("object" === typeof elementType &&
-              null !== elementType &&
-              elementType.$$typeof === REACT_LAZY_TYPE &&
-              resolveLazy(elementType) === current.type))
-        )
-          return (
-            (current = useFiber(current, element.props)),
-            coerceRef(current, element),
-            (current.return = returnFiber),
-            (current._debugOwner = element._owner),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = createFiberFromElement(element, returnFiber.mode, lanes);
-        coerceRef(current, element);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updatePortal(returnFiber, current, portal, lanes) {
-        if (
-          null === current ||
-          4 !== current.tag ||
-          current.stateNode.containerInfo !== portal.containerInfo ||
-          current.stateNode.implementation !== portal.implementation
-        )
-          return (
-            (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),
-            (current.return = returnFiber),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, portal.children || []);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function updateFragment(returnFiber, current, fragment, lanes, key) {
-        if (null === current || 7 !== current.tag)
-          return (
-            (current = createFiberFromFragment(
-              fragment,
-              returnFiber.mode,
-              lanes,
-              key
-            )),
-            (current.return = returnFiber),
-            (current._debugOwner = returnFiber),
-            (current._debugTask = returnFiber._debugTask),
-            (current._debugInfo = currentDebugInfo),
-            current
-          );
-        current = useFiber(current, fragment);
-        current.return = returnFiber;
-        current._debugInfo = currentDebugInfo;
-        return current;
-      }
-      function createChild(returnFiber, newChild, lanes) {
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (newChild = createFiberFromText(
-              "" + newChild,
-              returnFiber.mode,
-              lanes
-            )),
-            (newChild.return = returnFiber),
-            (newChild._debugOwner = returnFiber),
-            (newChild._debugTask = returnFiber._debugTask),
-            (newChild._debugInfo = currentDebugInfo),
-            newChild
-          );
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return (
-                (lanes = createFiberFromElement(
-                  newChild,
-                  returnFiber.mode,
-                  lanes
-                )),
-                coerceRef(lanes, newChild),
-                (lanes.return = returnFiber),
-                (returnFiber = pushDebugInfo(newChild._debugInfo)),
-                (lanes._debugInfo = currentDebugInfo),
-                (currentDebugInfo = returnFiber),
-                lanes
-              );
-            case REACT_PORTAL_TYPE:
-              return (
-                (newChild = createFiberFromPortal(
-                  newChild,
-                  returnFiber.mode,
-                  lanes
-                )),
-                (newChild.return = returnFiber),
-                (newChild._debugInfo = currentDebugInfo),
-                newChild
-              );
-            case REACT_LAZY_TYPE:
-              var _prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-              newChild = resolveLazy(newChild);
-              returnFiber = createChild(returnFiber, newChild, lanes);
-              currentDebugInfo = _prevDebugInfo;
-              return returnFiber;
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild))
-            return (
-              (lanes = createFiberFromFragment(
-                newChild,
-                returnFiber.mode,
-                lanes,
-                null
-              )),
-              (lanes.return = returnFiber),
-              (lanes._debugOwner = returnFiber),
-              (lanes._debugTask = returnFiber._debugTask),
-              (returnFiber = pushDebugInfo(newChild._debugInfo)),
-              (lanes._debugInfo = currentDebugInfo),
-              (currentDebugInfo = returnFiber),
-              lanes
-            );
-          if ("function" === typeof newChild.then)
-            return (
-              (_prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = createChild(
-                returnFiber,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = _prevDebugInfo),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return createChild(
-              returnFiber,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function updateSlot(returnFiber, oldFiber, newChild, lanes) {
-        var key = null !== oldFiber ? oldFiber.key : null;
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return null !== key
-            ? null
-            : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return newChild.key === key
-                ? ((key = pushDebugInfo(newChild._debugInfo)),
-                  (returnFiber = updateElement(
-                    returnFiber,
-                    oldFiber,
-                    newChild,
-                    lanes
-                  )),
-                  (currentDebugInfo = key),
-                  returnFiber)
-                : null;
-            case REACT_PORTAL_TYPE:
-              return newChild.key === key
-                ? updatePortal(returnFiber, oldFiber, newChild, lanes)
-                : null;
-            case REACT_LAZY_TYPE:
-              return (
-                (key = pushDebugInfo(newChild._debugInfo)),
-                (newChild = resolveLazy(newChild)),
-                (returnFiber = updateSlot(
-                  returnFiber,
-                  oldFiber,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = key),
-                returnFiber
-              );
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild)) {
-            if (null !== key) return null;
-            key = pushDebugInfo(newChild._debugInfo);
-            returnFiber = updateFragment(
-              returnFiber,
-              oldFiber,
-              newChild,
-              lanes,
-              null
-            );
-            currentDebugInfo = key;
-            return returnFiber;
-          }
-          if ("function" === typeof newChild.then)
-            return (
-              (key = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateSlot(
-                returnFiber,
-                oldFiber,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = key),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return updateSlot(
-              returnFiber,
-              oldFiber,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function updateFromMap(
-        existingChildren,
-        returnFiber,
-        newIdx,
-        newChild,
-        lanes
-      ) {
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (existingChildren = existingChildren.get(newIdx) || null),
-            updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
-          );
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              return (
-                (newIdx =
-                  existingChildren.get(
-                    null === newChild.key ? newIdx : newChild.key
-                  ) || null),
-                (existingChildren = pushDebugInfo(newChild._debugInfo)),
-                (returnFiber = updateElement(
-                  returnFiber,
-                  newIdx,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = existingChildren),
-                returnFiber
-              );
-            case REACT_PORTAL_TYPE:
-              return (
-                (existingChildren =
-                  existingChildren.get(
-                    null === newChild.key ? newIdx : newChild.key
-                  ) || null),
-                updatePortal(returnFiber, existingChildren, newChild, lanes)
-              );
-            case REACT_LAZY_TYPE:
-              var _prevDebugInfo7 = pushDebugInfo(newChild._debugInfo);
-              newChild = resolveLazy(newChild);
-              returnFiber = updateFromMap(
-                existingChildren,
-                returnFiber,
-                newIdx,
-                newChild,
-                lanes
-              );
-              currentDebugInfo = _prevDebugInfo7;
-              return returnFiber;
-          }
-          if (isArrayImpl(newChild) || getIteratorFn(newChild))
-            return (
-              (newIdx = existingChildren.get(newIdx) || null),
-              (existingChildren = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateFragment(
-                returnFiber,
-                newIdx,
-                newChild,
-                lanes,
-                null
-              )),
-              (currentDebugInfo = existingChildren),
-              returnFiber
-            );
-          if ("function" === typeof newChild.then)
-            return (
-              (_prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = updateFromMap(
-                existingChildren,
-                returnFiber,
-                newIdx,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = _prevDebugInfo7),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return updateFromMap(
-              existingChildren,
-              returnFiber,
-              newIdx,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return null;
-      }
-      function warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys) {
-        if ("object" !== typeof child || null === child) return knownKeys;
-        switch (child.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-          case REACT_PORTAL_TYPE:
-            warnForMissingKey(returnFiber, workInProgress, child);
-            var key = child.key;
-            if ("string" !== typeof key) break;
-            if (null === knownKeys) {
-              knownKeys = new Set();
-              knownKeys.add(key);
-              break;
-            }
-            if (!knownKeys.has(key)) {
-              knownKeys.add(key);
-              break;
-            }
-            runWithFiberInDEV(workInProgress, function () {
-              console.error(
-                "Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.",
-                key
-              );
-            });
-            break;
-          case REACT_LAZY_TYPE:
-            (child = resolveLazy(child)),
-              warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys);
-        }
-        return knownKeys;
-      }
-      function reconcileChildrenArray(
-        returnFiber,
-        currentFirstChild,
-        newChildren,
-        lanes
-      ) {
-        for (
-          var knownKeys = null,
-            resultingFirstChild = null,
-            previousNewFiber = null,
-            oldFiber = currentFirstChild,
-            newIdx = (currentFirstChild = 0),
-            nextOldFiber = null;
-          null !== oldFiber && newIdx < newChildren.length;
-          newIdx++
-        ) {
-          oldFiber.index > newIdx
-            ? ((nextOldFiber = oldFiber), (oldFiber = null))
-            : (nextOldFiber = oldFiber.sibling);
-          var newFiber = updateSlot(
-            returnFiber,
-            oldFiber,
-            newChildren[newIdx],
-            lanes
-          );
-          if (null === newFiber) {
-            null === oldFiber && (oldFiber = nextOldFiber);
-            break;
-          }
-          knownKeys = warnOnInvalidKey(
-            returnFiber,
-            newFiber,
-            newChildren[newIdx],
-            knownKeys
-          );
-          shouldTrackSideEffects &&
-            oldFiber &&
-            null === newFiber.alternate &&
-            deleteChild(returnFiber, oldFiber);
-          currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-          null === previousNewFiber
-            ? (resultingFirstChild = newFiber)
-            : (previousNewFiber.sibling = newFiber);
-          previousNewFiber = newFiber;
-          oldFiber = nextOldFiber;
-        }
-        if (newIdx === newChildren.length)
-          return (
-            deleteRemainingChildren(returnFiber, oldFiber),
-            isHydrating && pushTreeFork(returnFiber, newIdx),
-            resultingFirstChild
-          );
-        if (null === oldFiber) {
-          for (; newIdx < newChildren.length; newIdx++)
-            (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
-              null !== oldFiber &&
-                ((knownKeys = warnOnInvalidKey(
-                  returnFiber,
-                  oldFiber,
-                  newChildren[newIdx],
-                  knownKeys
-                )),
-                (currentFirstChild = placeChild(
-                  oldFiber,
-                  currentFirstChild,
-                  newIdx
-                )),
-                null === previousNewFiber
-                  ? (resultingFirstChild = oldFiber)
-                  : (previousNewFiber.sibling = oldFiber),
-                (previousNewFiber = oldFiber));
-          isHydrating && pushTreeFork(returnFiber, newIdx);
-          return resultingFirstChild;
-        }
-        for (
-          oldFiber = mapRemainingChildren(oldFiber);
-          newIdx < newChildren.length;
-          newIdx++
-        )
-          (nextOldFiber = updateFromMap(
-            oldFiber,
-            returnFiber,
-            newIdx,
-            newChildren[newIdx],
-            lanes
-          )),
-            null !== nextOldFiber &&
-              ((knownKeys = warnOnInvalidKey(
-                returnFiber,
-                nextOldFiber,
-                newChildren[newIdx],
-                knownKeys
-              )),
-              shouldTrackSideEffects &&
-                null !== nextOldFiber.alternate &&
-                oldFiber.delete(
-                  null === nextOldFiber.key ? newIdx : nextOldFiber.key
-                ),
-              (currentFirstChild = placeChild(
-                nextOldFiber,
-                currentFirstChild,
-                newIdx
-              )),
-              null === previousNewFiber
-                ? (resultingFirstChild = nextOldFiber)
-                : (previousNewFiber.sibling = nextOldFiber),
-              (previousNewFiber = nextOldFiber));
-        shouldTrackSideEffects &&
-          oldFiber.forEach(function (child) {
-            return deleteChild(returnFiber, child);
-          });
-        isHydrating && pushTreeFork(returnFiber, newIdx);
-        return resultingFirstChild;
-      }
-      function reconcileChildrenIterator(
-        returnFiber,
-        currentFirstChild,
-        newChildren,
-        lanes
-      ) {
-        if (null == newChildren)
-          throw Error("An iterable object provided no iterator.");
-        for (
-          var resultingFirstChild = null,
-            previousNewFiber = null,
-            oldFiber = currentFirstChild,
-            newIdx = (currentFirstChild = 0),
-            nextOldFiber = null,
-            knownKeys = null,
-            step = newChildren.next();
-          null !== oldFiber && !step.done;
-          newIdx++, step = newChildren.next()
-        ) {
-          oldFiber.index > newIdx
-            ? ((nextOldFiber = oldFiber), (oldFiber = null))
-            : (nextOldFiber = oldFiber.sibling);
-          var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);
-          if (null === newFiber) {
-            null === oldFiber && (oldFiber = nextOldFiber);
-            break;
-          }
-          knownKeys = warnOnInvalidKey(
-            returnFiber,
-            newFiber,
-            step.value,
-            knownKeys
-          );
-          shouldTrackSideEffects &&
-            oldFiber &&
-            null === newFiber.alternate &&
-            deleteChild(returnFiber, oldFiber);
-          currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-          null === previousNewFiber
-            ? (resultingFirstChild = newFiber)
-            : (previousNewFiber.sibling = newFiber);
-          previousNewFiber = newFiber;
-          oldFiber = nextOldFiber;
-        }
-        if (step.done)
-          return (
-            deleteRemainingChildren(returnFiber, oldFiber),
-            isHydrating && pushTreeFork(returnFiber, newIdx),
-            resultingFirstChild
-          );
-        if (null === oldFiber) {
-          for (; !step.done; newIdx++, step = newChildren.next())
-            (oldFiber = createChild(returnFiber, step.value, lanes)),
-              null !== oldFiber &&
-                ((knownKeys = warnOnInvalidKey(
-                  returnFiber,
-                  oldFiber,
-                  step.value,
-                  knownKeys
-                )),
-                (currentFirstChild = placeChild(
-                  oldFiber,
-                  currentFirstChild,
-                  newIdx
-                )),
-                null === previousNewFiber
-                  ? (resultingFirstChild = oldFiber)
-                  : (previousNewFiber.sibling = oldFiber),
-                (previousNewFiber = oldFiber));
-          isHydrating && pushTreeFork(returnFiber, newIdx);
-          return resultingFirstChild;
-        }
-        for (
-          oldFiber = mapRemainingChildren(oldFiber);
-          !step.done;
-          newIdx++, step = newChildren.next()
-        )
-          (nextOldFiber = updateFromMap(
-            oldFiber,
-            returnFiber,
-            newIdx,
-            step.value,
-            lanes
-          )),
-            null !== nextOldFiber &&
-              ((knownKeys = warnOnInvalidKey(
-                returnFiber,
-                nextOldFiber,
-                step.value,
-                knownKeys
-              )),
-              shouldTrackSideEffects &&
-                null !== nextOldFiber.alternate &&
-                oldFiber.delete(
-                  null === nextOldFiber.key ? newIdx : nextOldFiber.key
-                ),
-              (currentFirstChild = placeChild(
-                nextOldFiber,
-                currentFirstChild,
-                newIdx
-              )),
-              null === previousNewFiber
-                ? (resultingFirstChild = nextOldFiber)
-                : (previousNewFiber.sibling = nextOldFiber),
-              (previousNewFiber = nextOldFiber));
-        shouldTrackSideEffects &&
-          oldFiber.forEach(function (child) {
-            return deleteChild(returnFiber, child);
-          });
-        isHydrating && pushTreeFork(returnFiber, newIdx);
-        return resultingFirstChild;
-      }
-      function reconcileChildFibersImpl(
-        returnFiber,
-        currentFirstChild,
-        newChild,
-        lanes
-      ) {
-        "object" === typeof newChild &&
-          null !== newChild &&
-          newChild.type === REACT_FRAGMENT_TYPE &&
-          null === newChild.key &&
-          (validateFragmentProps(newChild, null, returnFiber),
-          (newChild = newChild.props.children));
-        if ("object" === typeof newChild && null !== newChild) {
-          switch (newChild.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-              a: {
-                for (var key = newChild.key; null !== currentFirstChild; ) {
-                  if (currentFirstChild.key === key) {
-                    key = newChild.type;
-                    if (key === REACT_FRAGMENT_TYPE) {
-                      if (7 === currentFirstChild.tag) {
-                        deleteRemainingChildren(
-                          returnFiber,
-                          currentFirstChild.sibling
-                        );
-                        lanes = useFiber(
-                          currentFirstChild,
-                          newChild.props.children
-                        );
-                        lanes.return = returnFiber;
-                        lanes._debugOwner = newChild._owner;
-                        lanes._debugInfo = currentDebugInfo;
-                        validateFragmentProps(newChild, lanes, returnFiber);
-                        returnFiber = lanes;
-                        break a;
-                      }
-                    } else if (
-                      currentFirstChild.elementType === key ||
-                      isCompatibleFamilyForHotReloading(
-                        currentFirstChild,
-                        newChild
-                      ) ||
-                      ("object" === typeof key &&
-                        null !== key &&
-                        key.$$typeof === REACT_LAZY_TYPE &&
-                        resolveLazy(key) === currentFirstChild.type)
-                    ) {
-                      deleteRemainingChildren(
-                        returnFiber,
-                        currentFirstChild.sibling
-                      );
-                      lanes = useFiber(currentFirstChild, newChild.props);
-                      coerceRef(lanes, newChild);
-                      lanes.return = returnFiber;
-                      lanes._debugOwner = newChild._owner;
-                      lanes._debugInfo = currentDebugInfo;
-                      returnFiber = lanes;
-                      break a;
-                    }
-                    deleteRemainingChildren(returnFiber, currentFirstChild);
-                    break;
-                  } else deleteChild(returnFiber, currentFirstChild);
-                  currentFirstChild = currentFirstChild.sibling;
-                }
-                newChild.type === REACT_FRAGMENT_TYPE
-                  ? ((lanes = createFiberFromFragment(
-                      newChild.props.children,
-                      returnFiber.mode,
-                      lanes,
-                      newChild.key
-                    )),
-                    (lanes.return = returnFiber),
-                    (lanes._debugOwner = returnFiber),
-                    (lanes._debugTask = returnFiber._debugTask),
-                    (lanes._debugInfo = currentDebugInfo),
-                    validateFragmentProps(newChild, lanes, returnFiber),
-                    (returnFiber = lanes))
-                  : ((lanes = createFiberFromElement(
-                      newChild,
-                      returnFiber.mode,
-                      lanes
-                    )),
-                    coerceRef(lanes, newChild),
-                    (lanes.return = returnFiber),
-                    (lanes._debugInfo = currentDebugInfo),
-                    (returnFiber = lanes));
-              }
-              returnFiber = placeSingleChild(returnFiber);
-              currentDebugInfo = prevDebugInfo;
-              return returnFiber;
-            case REACT_PORTAL_TYPE:
-              a: {
-                prevDebugInfo = newChild;
-                for (
-                  newChild = prevDebugInfo.key;
-                  null !== currentFirstChild;
-
-                ) {
-                  if (currentFirstChild.key === newChild)
-                    if (
-                      4 === currentFirstChild.tag &&
-                      currentFirstChild.stateNode.containerInfo ===
-                        prevDebugInfo.containerInfo &&
-                      currentFirstChild.stateNode.implementation ===
-                        prevDebugInfo.implementation
-                    ) {
-                      deleteRemainingChildren(
-                        returnFiber,
-                        currentFirstChild.sibling
-                      );
-                      lanes = useFiber(
-                        currentFirstChild,
-                        prevDebugInfo.children || []
-                      );
-                      lanes.return = returnFiber;
-                      returnFiber = lanes;
-                      break a;
-                    } else {
-                      deleteRemainingChildren(returnFiber, currentFirstChild);
-                      break;
-                    }
-                  else deleteChild(returnFiber, currentFirstChild);
-                  currentFirstChild = currentFirstChild.sibling;
-                }
-                lanes = createFiberFromPortal(
-                  prevDebugInfo,
-                  returnFiber.mode,
-                  lanes
-                );
-                lanes.return = returnFiber;
-                returnFiber = lanes;
-              }
-              return placeSingleChild(returnFiber);
-            case REACT_LAZY_TYPE:
-              return (
-                (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-                (newChild = resolveLazy(newChild)),
-                (returnFiber = reconcileChildFibersImpl(
-                  returnFiber,
-                  currentFirstChild,
-                  newChild,
-                  lanes
-                )),
-                (currentDebugInfo = prevDebugInfo),
-                returnFiber
-              );
-          }
-          if (isArrayImpl(newChild))
-            return (
-              (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = reconcileChildrenArray(
-                returnFiber,
-                currentFirstChild,
-                newChild,
-                lanes
-              )),
-              (currentDebugInfo = prevDebugInfo),
-              returnFiber
-            );
-          if (getIteratorFn(newChild)) {
-            prevDebugInfo = pushDebugInfo(newChild._debugInfo);
-            key = getIteratorFn(newChild);
-            if ("function" !== typeof key)
-              throw Error(
-                "An object is not an iterable. This error is likely caused by a bug in React. Please file an issue."
-              );
-            var newChildren = key.call(newChild);
-            if (newChildren === newChild) {
-              if (
-                0 !== returnFiber.tag ||
-                "[object GeneratorFunction]" !==
-                  Object.prototype.toString.call(returnFiber.type) ||
-                "[object Generator]" !==
-                  Object.prototype.toString.call(newChildren)
-              )
-                didWarnAboutGenerators ||
-                  console.error(
-                    "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-                  ),
-                  (didWarnAboutGenerators = !0);
-            } else
-              newChild.entries !== key ||
-                didWarnAboutMaps ||
-                (console.error(
-                  "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-                ),
-                (didWarnAboutMaps = !0));
-            returnFiber = reconcileChildrenIterator(
-              returnFiber,
-              currentFirstChild,
-              newChildren,
-              lanes
-            );
-            currentDebugInfo = prevDebugInfo;
-            return returnFiber;
-          }
-          if ("function" === typeof newChild.then)
-            return (
-              (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
-              (returnFiber = reconcileChildFibersImpl(
-                returnFiber,
-                currentFirstChild,
-                unwrapThenable(newChild),
-                lanes
-              )),
-              (currentDebugInfo = prevDebugInfo),
-              returnFiber
-            );
-          if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-            return reconcileChildFibersImpl(
-              returnFiber,
-              currentFirstChild,
-              readContextDuringReconciliation(returnFiber, newChild),
-              lanes
-            );
-          throwOnInvalidObjectType(returnFiber, newChild);
-        }
-        if (
-          ("string" === typeof newChild && "" !== newChild) ||
-          "number" === typeof newChild ||
-          "bigint" === typeof newChild
-        )
-          return (
-            (prevDebugInfo = "" + newChild),
-            null !== currentFirstChild && 6 === currentFirstChild.tag
-              ? (deleteRemainingChildren(
-                  returnFiber,
-                  currentFirstChild.sibling
-                ),
-                (lanes = useFiber(currentFirstChild, prevDebugInfo)),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes))
-              : (deleteRemainingChildren(returnFiber, currentFirstChild),
-                (lanes = createFiberFromText(
-                  prevDebugInfo,
-                  returnFiber.mode,
-                  lanes
-                )),
-                (lanes.return = returnFiber),
-                (lanes._debugOwner = returnFiber),
-                (lanes._debugTask = returnFiber._debugTask),
-                (lanes._debugInfo = currentDebugInfo),
-                (returnFiber = lanes)),
-            placeSingleChild(returnFiber)
-          );
-        "function" === typeof newChild &&
-          warnOnFunctionType(returnFiber, newChild);
-        "symbol" === typeof newChild && warnOnSymbolType(returnFiber, newChild);
-        return deleteRemainingChildren(returnFiber, currentFirstChild);
-      }
-      return function (returnFiber, currentFirstChild, newChild, lanes) {
-        var prevDebugInfo = currentDebugInfo;
-        currentDebugInfo = null;
-        try {
-          thenableIndexCounter$1 = 0;
-          var firstChildFiber = reconcileChildFibersImpl(
-            returnFiber,
-            currentFirstChild,
-            newChild,
-            lanes
-          );
-          thenableState$1 = null;
-          return firstChildFiber;
-        } catch (x) {
-          if (x === SuspenseException || x === SuspenseActionException) throw x;
-          var fiber = createFiber(29, x, null, returnFiber.mode);
-          fiber.lanes = lanes;
-          fiber.return = returnFiber;
-          var debugInfo = (fiber._debugInfo = currentDebugInfo);
-          fiber._debugOwner = returnFiber._debugOwner;
-          fiber._debugTask = returnFiber._debugTask;
-          if (null != debugInfo)
-            for (var i = debugInfo.length - 1; 0 <= i; i--)
-              if ("string" === typeof debugInfo[i].stack) {
-                fiber._debugOwner = debugInfo[i];
-                fiber._debugTask = debugInfo[i].debugTask;
-                break;
-              }
-          return fiber;
-        } finally {
-          currentDebugInfo = prevDebugInfo;
-        }
-      };
-    }
-    function validateSuspenseListNestedChild(childSlot, index) {
-      var isAnArray = isArrayImpl(childSlot);
-      childSlot = !isAnArray && "function" === typeof getIteratorFn(childSlot);
-      return isAnArray || childSlot
-        ? ((isAnArray = isAnArray ? "array" : "iterable"),
-          console.error(
-            "A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>",
-            isAnArray,
-            index,
-            isAnArray
-          ),
-          !1)
-        : !0;
-    }
-    function initializeUpdateQueue(fiber) {
-      fiber.updateQueue = {
-        baseState: fiber.memoizedState,
-        firstBaseUpdate: null,
-        lastBaseUpdate: null,
-        shared: { pending: null, lanes: 0, hiddenCallbacks: null },
-        callbacks: null
-      };
-    }
-    function cloneUpdateQueue(current, workInProgress) {
-      current = current.updateQueue;
-      workInProgress.updateQueue === current &&
-        (workInProgress.updateQueue = {
-          baseState: current.baseState,
-          firstBaseUpdate: current.firstBaseUpdate,
-          lastBaseUpdate: current.lastBaseUpdate,
-          shared: current.shared,
-          callbacks: null
-        });
-    }
-    function createUpdate(lane) {
-      return {
-        lane: lane,
-        tag: UpdateState,
-        payload: null,
-        callback: null,
-        next: null
-      };
-    }
-    function enqueueUpdate(fiber, update, lane) {
-      var updateQueue = fiber.updateQueue;
-      if (null === updateQueue) return null;
-      updateQueue = updateQueue.shared;
-      if (
-        currentlyProcessingQueue === updateQueue &&
-        !didWarnUpdateInsideUpdate
-      ) {
-        var componentName = getComponentNameFromFiber(fiber);
-        console.error(
-          "An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\n\nPlease update the following component: %s",
-          componentName
-        );
-        didWarnUpdateInsideUpdate = !0;
-      }
-      if ((executionContext & RenderContext) !== NoContext)
-        return (
-          (componentName = updateQueue.pending),
-          null === componentName
-            ? (update.next = update)
-            : ((update.next = componentName.next),
-              (componentName.next = update)),
-          (updateQueue.pending = update),
-          (update = getRootForUpdatedFiber(fiber)),
-          markUpdateLaneFromFiberToRoot(fiber, null, lane),
-          update
-        );
-      enqueueUpdate$1(fiber, updateQueue, update, lane);
-      return getRootForUpdatedFiber(fiber);
-    }
-    function entangleTransitions(root, fiber, lane) {
-      fiber = fiber.updateQueue;
-      if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {
-        var queueLanes = fiber.lanes;
-        queueLanes &= root.pendingLanes;
-        lane |= queueLanes;
-        fiber.lanes = lane;
-        markRootEntangled(root, lane);
-      }
-    }
-    function enqueueCapturedUpdate(workInProgress, capturedUpdate) {
-      var queue = workInProgress.updateQueue,
-        current = workInProgress.alternate;
-      if (
-        null !== current &&
-        ((current = current.updateQueue), queue === current)
-      ) {
-        var newFirst = null,
-          newLast = null;
-        queue = queue.firstBaseUpdate;
-        if (null !== queue) {
-          do {
-            var clone = {
-              lane: queue.lane,
-              tag: queue.tag,
-              payload: queue.payload,
-              callback: null,
-              next: null
-            };
-            null === newLast
-              ? (newFirst = newLast = clone)
-              : (newLast = newLast.next = clone);
-            queue = queue.next;
-          } while (null !== queue);
-          null === newLast
-            ? (newFirst = newLast = capturedUpdate)
-            : (newLast = newLast.next = capturedUpdate);
-        } else newFirst = newLast = capturedUpdate;
-        queue = {
-          baseState: current.baseState,
-          firstBaseUpdate: newFirst,
-          lastBaseUpdate: newLast,
-          shared: current.shared,
-          callbacks: current.callbacks
-        };
-        workInProgress.updateQueue = queue;
-        return;
-      }
-      workInProgress = queue.lastBaseUpdate;
-      null === workInProgress
-        ? (queue.firstBaseUpdate = capturedUpdate)
-        : (workInProgress.next = capturedUpdate);
-      queue.lastBaseUpdate = capturedUpdate;
-    }
-    function suspendIfUpdateReadFromEntangledAsyncAction() {
-      if (didReadFromEntangledAsyncAction) {
-        var entangledActionThenable = currentEntangledActionThenable;
-        if (null !== entangledActionThenable) throw entangledActionThenable;
-      }
-    }
-    function processUpdateQueue(
-      workInProgress,
-      props,
-      instance$jscomp$0,
-      renderLanes
-    ) {
-      didReadFromEntangledAsyncAction = !1;
-      var queue = workInProgress.updateQueue;
-      hasForceUpdate = !1;
-      currentlyProcessingQueue = queue.shared;
-      var firstBaseUpdate = queue.firstBaseUpdate,
-        lastBaseUpdate = queue.lastBaseUpdate,
-        pendingQueue = queue.shared.pending;
-      if (null !== pendingQueue) {
-        queue.shared.pending = null;
-        var lastPendingUpdate = pendingQueue,
-          firstPendingUpdate = lastPendingUpdate.next;
-        lastPendingUpdate.next = null;
-        null === lastBaseUpdate
-          ? (firstBaseUpdate = firstPendingUpdate)
-          : (lastBaseUpdate.next = firstPendingUpdate);
-        lastBaseUpdate = lastPendingUpdate;
-        var current = workInProgress.alternate;
-        null !== current &&
-          ((current = current.updateQueue),
-          (pendingQueue = current.lastBaseUpdate),
-          pendingQueue !== lastBaseUpdate &&
-            (null === pendingQueue
-              ? (current.firstBaseUpdate = firstPendingUpdate)
-              : (pendingQueue.next = firstPendingUpdate),
-            (current.lastBaseUpdate = lastPendingUpdate)));
-      }
-      if (null !== firstBaseUpdate) {
-        var newState = queue.baseState;
-        lastBaseUpdate = 0;
-        current = firstPendingUpdate = lastPendingUpdate = null;
-        pendingQueue = firstBaseUpdate;
-        do {
-          var updateLane = pendingQueue.lane & -536870913,
-            isHiddenUpdate = updateLane !== pendingQueue.lane;
-          if (
-            isHiddenUpdate
-              ? (workInProgressRootRenderLanes & updateLane) === updateLane
-              : (renderLanes & updateLane) === updateLane
-          ) {
-            0 !== updateLane &&
-              updateLane === currentEntangledLane &&
-              (didReadFromEntangledAsyncAction = !0);
-            null !== current &&
-              (current = current.next =
-                {
-                  lane: 0,
-                  tag: pendingQueue.tag,
-                  payload: pendingQueue.payload,
-                  callback: null,
-                  next: null
-                });
-            a: {
-              updateLane = workInProgress;
-              var partialState = pendingQueue;
-              var nextProps = props,
-                instance = instance$jscomp$0;
-              switch (partialState.tag) {
-                case ReplaceState:
-                  partialState = partialState.payload;
-                  if ("function" === typeof partialState) {
-                    isDisallowedContextReadInDEV = !0;
-                    var nextState = partialState.call(
-                      instance,
-                      newState,
-                      nextProps
-                    );
-                    if (updateLane.mode & StrictLegacyMode) {
-                      setIsStrictModeForDevtools(!0);
-                      try {
-                        partialState.call(instance, newState, nextProps);
-                      } finally {
-                        setIsStrictModeForDevtools(!1);
-                      }
-                    }
-                    isDisallowedContextReadInDEV = !1;
-                    newState = nextState;
-                    break a;
-                  }
-                  newState = partialState;
-                  break a;
-                case CaptureUpdate:
-                  updateLane.flags = (updateLane.flags & -65537) | 128;
-                case UpdateState:
-                  nextState = partialState.payload;
-                  if ("function" === typeof nextState) {
-                    isDisallowedContextReadInDEV = !0;
-                    partialState = nextState.call(
-                      instance,
-                      newState,
-                      nextProps
-                    );
-                    if (updateLane.mode & StrictLegacyMode) {
-                      setIsStrictModeForDevtools(!0);
-                      try {
-                        nextState.call(instance, newState, nextProps);
-                      } finally {
-                        setIsStrictModeForDevtools(!1);
-                      }
-                    }
-                    isDisallowedContextReadInDEV = !1;
-                  } else partialState = nextState;
-                  if (null === partialState || void 0 === partialState) break a;
-                  newState = assign({}, newState, partialState);
-                  break a;
-                case ForceUpdate:
-                  hasForceUpdate = !0;
-              }
-            }
-            updateLane = pendingQueue.callback;
-            null !== updateLane &&
-              ((workInProgress.flags |= 64),
-              isHiddenUpdate && (workInProgress.flags |= 8192),
-              (isHiddenUpdate = queue.callbacks),
-              null === isHiddenUpdate
-                ? (queue.callbacks = [updateLane])
-                : isHiddenUpdate.push(updateLane));
-          } else
-            (isHiddenUpdate = {
-              lane: updateLane,
-              tag: pendingQueue.tag,
-              payload: pendingQueue.payload,
-              callback: pendingQueue.callback,
-              next: null
-            }),
-              null === current
-                ? ((firstPendingUpdate = current = isHiddenUpdate),
-                  (lastPendingUpdate = newState))
-                : (current = current.next = isHiddenUpdate),
-              (lastBaseUpdate |= updateLane);
-          pendingQueue = pendingQueue.next;
-          if (null === pendingQueue)
-            if (((pendingQueue = queue.shared.pending), null === pendingQueue))
-              break;
-            else
-              (isHiddenUpdate = pendingQueue),
-                (pendingQueue = isHiddenUpdate.next),
-                (isHiddenUpdate.next = null),
-                (queue.lastBaseUpdate = isHiddenUpdate),
-                (queue.shared.pending = null);
-        } while (1);
-        null === current && (lastPendingUpdate = newState);
-        queue.baseState = lastPendingUpdate;
-        queue.firstBaseUpdate = firstPendingUpdate;
-        queue.lastBaseUpdate = current;
-        null === firstBaseUpdate && (queue.shared.lanes = 0);
-        workInProgressRootSkippedLanes |= lastBaseUpdate;
-        workInProgress.lanes = lastBaseUpdate;
-        workInProgress.memoizedState = newState;
-      }
-      currentlyProcessingQueue = null;
-    }
-    function callCallback(callback, context) {
-      if ("function" !== typeof callback)
-        throw Error(
-          "Invalid argument passed as callback. Expected a function. Instead received: " +
-            callback
-        );
-      callback.call(context);
-    }
-    function commitHiddenCallbacks(updateQueue, context) {
-      var hiddenCallbacks = updateQueue.shared.hiddenCallbacks;
-      if (null !== hiddenCallbacks)
-        for (
-          updateQueue.shared.hiddenCallbacks = null, updateQueue = 0;
-          updateQueue < hiddenCallbacks.length;
-          updateQueue++
-        )
-          callCallback(hiddenCallbacks[updateQueue], context);
-    }
-    function commitCallbacks(updateQueue, context) {
-      var callbacks = updateQueue.callbacks;
-      if (null !== callbacks)
-        for (
-          updateQueue.callbacks = null, updateQueue = 0;
-          updateQueue < callbacks.length;
-          updateQueue++
-        )
-          callCallback(callbacks[updateQueue], context);
-    }
-    function pushHiddenContext(fiber, context) {
-      var prevEntangledRenderLanes = entangledRenderLanes;
-      push(prevEntangledRenderLanesCursor, prevEntangledRenderLanes, fiber);
-      push(currentTreeHiddenStackCursor, context, fiber);
-      entangledRenderLanes = prevEntangledRenderLanes | context.baseLanes;
-    }
-    function reuseHiddenContextOnStack(fiber) {
-      push(prevEntangledRenderLanesCursor, entangledRenderLanes, fiber);
-      push(
-        currentTreeHiddenStackCursor,
-        currentTreeHiddenStackCursor.current,
-        fiber
-      );
-    }
-    function popHiddenContext(fiber) {
-      entangledRenderLanes = prevEntangledRenderLanesCursor.current;
-      pop(currentTreeHiddenStackCursor, fiber);
-      pop(prevEntangledRenderLanesCursor, fiber);
-    }
-    function pushPrimaryTreeSuspenseHandler(handler) {
-      var current = handler.alternate;
-      push(
-        suspenseStackCursor,
-        suspenseStackCursor.current & SubtreeSuspenseContextMask,
-        handler
-      );
-      push(suspenseHandlerStackCursor, handler, handler);
-      null === shellBoundary &&
-        (null === current || null !== currentTreeHiddenStackCursor.current
-          ? (shellBoundary = handler)
-          : null !== current.memoizedState && (shellBoundary = handler));
-    }
-    function pushDehydratedActivitySuspenseHandler(fiber) {
-      push(suspenseStackCursor, suspenseStackCursor.current, fiber);
-      push(suspenseHandlerStackCursor, fiber, fiber);
-      null === shellBoundary && (shellBoundary = fiber);
-    }
-    function pushOffscreenSuspenseHandler(fiber) {
-      22 === fiber.tag
-        ? (push(suspenseStackCursor, suspenseStackCursor.current, fiber),
-          push(suspenseHandlerStackCursor, fiber, fiber),
-          null === shellBoundary && (shellBoundary = fiber))
-        : reuseSuspenseHandlerOnStack(fiber);
-    }
-    function reuseSuspenseHandlerOnStack(fiber) {
-      push(suspenseStackCursor, suspenseStackCursor.current, fiber);
-      push(
-        suspenseHandlerStackCursor,
-        suspenseHandlerStackCursor.current,
-        fiber
-      );
-    }
-    function popSuspenseHandler(fiber) {
-      pop(suspenseHandlerStackCursor, fiber);
-      shellBoundary === fiber && (shellBoundary = null);
-      pop(suspenseStackCursor, fiber);
-    }
-    function findFirstSuspended(row) {
-      for (var node = row; null !== node; ) {
-        if (13 === node.tag) {
-          var state = node.memoizedState;
-          if (
-            null !== state &&
-            ((state = state.dehydrated),
-            null === state ||
-              isSuspenseInstancePending(state) ||
-              isSuspenseInstanceFallback(state))
-          )
-            return node;
-        } else if (
-          19 === node.tag &&
-          ("forwards" === node.memoizedProps.revealOrder ||
-            "backwards" === node.memoizedProps.revealOrder ||
-            "unstable_legacy-backwards" === node.memoizedProps.revealOrder ||
-            "together" === node.memoizedProps.revealOrder)
-        ) {
-          if (0 !== (node.flags & 128)) return node;
-        } else if (null !== node.child) {
-          node.child.return = node;
-          node = node.child;
-          continue;
-        }
-        if (node === row) break;
-        for (; null === node.sibling; ) {
-          if (null === node.return || node.return === row) return null;
-          node = node.return;
-        }
-        node.sibling.return = node.return;
-        node = node.sibling;
-      }
-      return null;
-    }
-    function mountHookTypesDev() {
-      var hookName = currentHookNameInDev;
-      null === hookTypesDev
-        ? (hookTypesDev = [hookName])
-        : hookTypesDev.push(hookName);
-    }
-    function updateHookTypesDev() {
-      var hookName = currentHookNameInDev;
-      if (
-        null !== hookTypesDev &&
-        (hookTypesUpdateIndexDev++,
-        hookTypesDev[hookTypesUpdateIndexDev] !== hookName)
-      ) {
-        var componentName = getComponentNameFromFiber(currentlyRenderingFiber);
-        if (
-          !didWarnAboutMismatchedHooksForComponent.has(componentName) &&
-          (didWarnAboutMismatchedHooksForComponent.add(componentName),
-          null !== hookTypesDev)
-        ) {
-          for (var table = "", i = 0; i <= hookTypesUpdateIndexDev; i++) {
-            var oldHookName = hookTypesDev[i],
-              newHookName =
-                i === hookTypesUpdateIndexDev ? hookName : oldHookName;
-            for (
-              oldHookName = i + 1 + ". " + oldHookName;
-              30 > oldHookName.length;
-
-            )
-              oldHookName += " ";
-            oldHookName += newHookName + "\n";
-            table += oldHookName;
-          }
-          console.error(
-            "React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\n\n   Previous render            Next render\n   ------------------------------------------------------\n%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
-            componentName,
-            table
-          );
-        }
-      }
-    }
-    function checkDepsAreArrayDev(deps) {
-      void 0 === deps ||
-        null === deps ||
-        isArrayImpl(deps) ||
-        console.error(
-          "%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.",
-          currentHookNameInDev,
-          typeof deps
-        );
-    }
-    function warnOnUseFormStateInDev() {
-      var componentName = getComponentNameFromFiber(currentlyRenderingFiber);
-      didWarnAboutUseFormState.has(componentName) ||
-        (didWarnAboutUseFormState.add(componentName),
-        console.error(
-          "ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.",
-          componentName
-        ));
-    }
-    function throwInvalidHookError() {
-      throw Error(
-        "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-      );
-    }
-    function areHookInputsEqual(nextDeps, prevDeps) {
-      if (ignorePreviousDependencies) return !1;
-      if (null === prevDeps)
-        return (
-          console.error(
-            "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-            currentHookNameInDev
-          ),
-          !1
-        );
-      nextDeps.length !== prevDeps.length &&
-        console.error(
-          "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-          currentHookNameInDev,
-          "[" + prevDeps.join(", ") + "]",
-          "[" + nextDeps.join(", ") + "]"
-        );
-      for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)
-        if (!objectIs(nextDeps[i], prevDeps[i])) return !1;
-      return !0;
-    }
-    function renderWithHooks(
-      current,
-      workInProgress,
-      Component,
-      props,
-      secondArg,
-      nextRenderLanes
-    ) {
-      renderLanes = nextRenderLanes;
-      currentlyRenderingFiber = workInProgress;
-      hookTypesDev = null !== current ? current._debugHookTypes : null;
-      hookTypesUpdateIndexDev = -1;
-      ignorePreviousDependencies =
-        null !== current && current.type !== workInProgress.type;
-      if (
-        "[object AsyncFunction]" ===
-          Object.prototype.toString.call(Component) ||
-        "[object AsyncGeneratorFunction]" ===
-          Object.prototype.toString.call(Component)
-      )
-        (nextRenderLanes = getComponentNameFromFiber(currentlyRenderingFiber)),
-          didWarnAboutAsyncClientComponent.has(nextRenderLanes) ||
-            (didWarnAboutAsyncClientComponent.add(nextRenderLanes),
-            console.error(
-              "%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.",
-              null === nextRenderLanes
-                ? "An unknown Component"
-                : "<" + nextRenderLanes + ">"
-            ));
-      workInProgress.memoizedState = null;
-      workInProgress.updateQueue = null;
-      workInProgress.lanes = 0;
-      ReactSharedInternals.H =
-        null !== current && null !== current.memoizedState
-          ? HooksDispatcherOnUpdateInDEV
-          : null !== hookTypesDev
-            ? HooksDispatcherOnMountWithHookTypesInDEV
-            : HooksDispatcherOnMountInDEV;
-      shouldDoubleInvokeUserFnsInHooksDEV = nextRenderLanes =
-        (workInProgress.mode & StrictLegacyMode) !== NoMode;
-      var children = callComponentInDEV(Component, props, secondArg);
-      shouldDoubleInvokeUserFnsInHooksDEV = !1;
-      didScheduleRenderPhaseUpdateDuringThisPass &&
-        (children = renderWithHooksAgain(
-          workInProgress,
-          Component,
-          props,
-          secondArg
-        ));
-      if (nextRenderLanes) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          children = renderWithHooksAgain(
-            workInProgress,
-            Component,
-            props,
-            secondArg
-          );
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      finishRenderingHooks(current, workInProgress);
-      return children;
-    }
-    function finishRenderingHooks(current, workInProgress) {
-      workInProgress._debugHookTypes = hookTypesDev;
-      null === workInProgress.dependencies
-        ? null !== thenableState &&
-          (workInProgress.dependencies = {
-            lanes: 0,
-            firstContext: null,
-            _debugThenableState: thenableState
-          })
-        : (workInProgress.dependencies._debugThenableState = thenableState);
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      var didRenderTooFewHooks =
-        null !== currentHook && null !== currentHook.next;
-      renderLanes = 0;
-      hookTypesDev =
-        currentHookNameInDev =
-        workInProgressHook =
-        currentHook =
-        currentlyRenderingFiber =
-          null;
-      hookTypesUpdateIndexDev = -1;
-      null !== current &&
-        (current.flags & 65011712) !== (workInProgress.flags & 65011712) &&
-        console.error(
-          "Internal React error: Expected static flag was missing. Please notify the React team."
-        );
-      didScheduleRenderPhaseUpdate = !1;
-      thenableIndexCounter = 0;
-      thenableState = null;
-      if (didRenderTooFewHooks)
-        throw Error(
-          "Rendered fewer hooks than expected. This may be caused by an accidental early return statement."
-        );
-      null === current ||
-        didReceiveUpdate ||
-        ((current = current.dependencies),
-        null !== current &&
-          checkIfContextChanged(current) &&
-          (didReceiveUpdate = !0));
-      needsToResetSuspendedThenableDEV
-        ? ((needsToResetSuspendedThenableDEV = !1), (current = !0))
-        : (current = !1);
-      current &&
-        ((workInProgress =
-          getComponentNameFromFiber(workInProgress) || "Unknown"),
-        didWarnAboutUseWrappedInTryCatch.has(workInProgress) ||
-          didWarnAboutAsyncClientComponent.has(workInProgress) ||
-          (didWarnAboutUseWrappedInTryCatch.add(workInProgress),
-          console.error(
-            "`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary."
-          )));
-    }
-    function renderWithHooksAgain(workInProgress, Component, props, secondArg) {
-      currentlyRenderingFiber = workInProgress;
-      var numberOfReRenders = 0;
-      do {
-        didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);
-        thenableIndexCounter = 0;
-        didScheduleRenderPhaseUpdateDuringThisPass = !1;
-        if (numberOfReRenders >= RE_RENDER_LIMIT)
-          throw Error(
-            "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-          );
-        numberOfReRenders += 1;
-        ignorePreviousDependencies = !1;
-        workInProgressHook = currentHook = null;
-        if (null != workInProgress.updateQueue) {
-          var children = workInProgress.updateQueue;
-          children.lastEffect = null;
-          children.events = null;
-          children.stores = null;
-          null != children.memoCache && (children.memoCache.index = 0);
-        }
-        hookTypesUpdateIndexDev = -1;
-        ReactSharedInternals.H = HooksDispatcherOnRerenderInDEV;
-        children = callComponentInDEV(Component, props, secondArg);
-      } while (didScheduleRenderPhaseUpdateDuringThisPass);
-      return children;
-    }
-    function TransitionAwareHostComponent() {
-      var dispatcher = ReactSharedInternals.H,
-        maybeThenable = dispatcher.useState()[0];
-      maybeThenable =
-        "function" === typeof maybeThenable.then
-          ? useThenable(maybeThenable)
-          : maybeThenable;
-      dispatcher = dispatcher.useState()[0];
-      (null !== currentHook ? currentHook.memoizedState : null) !==
-        dispatcher && (currentlyRenderingFiber.flags |= 1024);
-      return maybeThenable;
-    }
-    function checkDidRenderIdHook() {
-      var didRenderIdHook = 0 !== localIdCounter;
-      localIdCounter = 0;
-      return didRenderIdHook;
-    }
-    function bailoutHooks(current, workInProgress, lanes) {
-      workInProgress.updateQueue = current.updateQueue;
-      workInProgress.flags =
-        (workInProgress.mode & StrictEffectsMode) !== NoMode
-          ? workInProgress.flags & -402655237
-          : workInProgress.flags & -2053;
-      current.lanes &= ~lanes;
-    }
-    function resetHooksOnUnwind(workInProgress) {
-      if (didScheduleRenderPhaseUpdate) {
-        for (
-          workInProgress = workInProgress.memoizedState;
-          null !== workInProgress;
-
-        ) {
-          var queue = workInProgress.queue;
-          null !== queue && (queue.pending = null);
-          workInProgress = workInProgress.next;
-        }
-        didScheduleRenderPhaseUpdate = !1;
-      }
-      renderLanes = 0;
-      hookTypesDev =
-        workInProgressHook =
-        currentHook =
-        currentlyRenderingFiber =
-          null;
-      hookTypesUpdateIndexDev = -1;
-      currentHookNameInDev = null;
-      didScheduleRenderPhaseUpdateDuringThisPass = !1;
-      thenableIndexCounter = localIdCounter = 0;
-      thenableState = null;
-    }
-    function mountWorkInProgressHook() {
-      var hook = {
-        memoizedState: null,
-        baseState: null,
-        baseQueue: null,
-        queue: null,
-        next: null
-      };
-      null === workInProgressHook
-        ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)
-        : (workInProgressHook = workInProgressHook.next = hook);
-      return workInProgressHook;
-    }
-    function updateWorkInProgressHook() {
-      if (null === currentHook) {
-        var nextCurrentHook = currentlyRenderingFiber.alternate;
-        nextCurrentHook =
-          null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;
-      } else nextCurrentHook = currentHook.next;
-      var nextWorkInProgressHook =
-        null === workInProgressHook
-          ? currentlyRenderingFiber.memoizedState
-          : workInProgressHook.next;
-      if (null !== nextWorkInProgressHook)
-        (workInProgressHook = nextWorkInProgressHook),
-          (currentHook = nextCurrentHook);
-      else {
-        if (null === nextCurrentHook) {
-          if (null === currentlyRenderingFiber.alternate)
-            throw Error(
-              "Update hook called on initial render. This is likely a bug in React. Please file an issue."
-            );
-          throw Error("Rendered more hooks than during the previous render.");
-        }
-        currentHook = nextCurrentHook;
-        nextCurrentHook = {
-          memoizedState: currentHook.memoizedState,
-          baseState: currentHook.baseState,
-          baseQueue: currentHook.baseQueue,
-          queue: currentHook.queue,
-          next: null
-        };
-        null === workInProgressHook
-          ? (currentlyRenderingFiber.memoizedState = workInProgressHook =
-              nextCurrentHook)
-          : (workInProgressHook = workInProgressHook.next = nextCurrentHook);
-      }
-      return workInProgressHook;
-    }
-    function createFunctionComponentUpdateQueue() {
-      return { lastEffect: null, events: null, stores: null, memoCache: null };
-    }
-    function useThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = createThenableState());
-      thenable = trackUsedThenable(thenableState, thenable, index);
-      index = currentlyRenderingFiber;
-      null ===
-        (null === workInProgressHook
-          ? index.memoizedState
-          : workInProgressHook.next) &&
-        ((index = index.alternate),
-        (ReactSharedInternals.H =
-          null !== index && null !== index.memoizedState
-            ? HooksDispatcherOnUpdateInDEV
-            : HooksDispatcherOnMountInDEV));
-      return thenable;
-    }
-    function use(usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return useThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    }
-    function useMemoCache(size) {
-      var memoCache = null,
-        updateQueue = currentlyRenderingFiber.updateQueue;
-      null !== updateQueue && (memoCache = updateQueue.memoCache);
-      if (null == memoCache) {
-        var current = currentlyRenderingFiber.alternate;
-        null !== current &&
-          ((current = current.updateQueue),
-          null !== current &&
-            ((current = current.memoCache),
-            null != current &&
-              (memoCache = {
-                data: current.data.map(function (array) {
-                  return array.slice();
-                }),
-                index: 0
-              })));
-      }
-      null == memoCache && (memoCache = { data: [], index: 0 });
-      null === updateQueue &&
-        ((updateQueue = createFunctionComponentUpdateQueue()),
-        (currentlyRenderingFiber.updateQueue = updateQueue));
-      updateQueue.memoCache = memoCache;
-      updateQueue = memoCache.data[memoCache.index];
-      if (void 0 === updateQueue || ignorePreviousDependencies)
-        for (
-          updateQueue = memoCache.data[memoCache.index] = Array(size),
-            current = 0;
-          current < size;
-          current++
-        )
-          updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;
-      else
-        updateQueue.length !== size &&
-          console.error(
-            "Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.",
-            updateQueue.length,
-            size
-          );
-      memoCache.index++;
-      return updateQueue;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function mountReducer(reducer, initialArg, init) {
-      var hook = mountWorkInProgressHook();
-      if (void 0 !== init) {
-        var initialState = init(initialArg);
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            init(initialArg);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      } else initialState = initialArg;
-      hook.memoizedState = hook.baseState = initialState;
-      reducer = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: reducer,
-        lastRenderedState: initialState
-      };
-      hook.queue = reducer;
-      reducer = reducer.dispatch = dispatchReducerAction.bind(
-        null,
-        currentlyRenderingFiber,
-        reducer
-      );
-      return [hook.memoizedState, reducer];
-    }
-    function updateReducer(reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateReducerImpl(hook, currentHook, reducer);
-    }
-    function updateReducerImpl(hook, current, reducer) {
-      var queue = hook.queue;
-      if (null === queue)
-        throw Error(
-          "Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)"
-        );
-      queue.lastRenderedReducer = reducer;
-      var baseQueue = hook.baseQueue,
-        pendingQueue = queue.pending;
-      if (null !== pendingQueue) {
-        if (null !== baseQueue) {
-          var baseFirst = baseQueue.next;
-          baseQueue.next = pendingQueue.next;
-          pendingQueue.next = baseFirst;
-        }
-        current.baseQueue !== baseQueue &&
-          console.error(
-            "Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."
-          );
-        current.baseQueue = baseQueue = pendingQueue;
-        queue.pending = null;
-      }
-      pendingQueue = hook.baseState;
-      if (null === baseQueue) hook.memoizedState = pendingQueue;
-      else {
-        current = baseQueue.next;
-        var newBaseQueueFirst = (baseFirst = null),
-          newBaseQueueLast = null,
-          update = current,
-          didReadFromEntangledAsyncAction = !1;
-        do {
-          var updateLane = update.lane & -536870913;
-          if (
-            updateLane !== update.lane
-              ? (workInProgressRootRenderLanes & updateLane) === updateLane
-              : (renderLanes & updateLane) === updateLane
-          ) {
-            var revertLane = update.revertLane;
-            if (0 === revertLane)
-              null !== newBaseQueueLast &&
-                (newBaseQueueLast = newBaseQueueLast.next =
-                  {
-                    lane: 0,
-                    revertLane: 0,
-                    gesture: null,
-                    action: update.action,
-                    hasEagerState: update.hasEagerState,
-                    eagerState: update.eagerState,
-                    next: null
-                  }),
-                updateLane === currentEntangledLane &&
-                  (didReadFromEntangledAsyncAction = !0);
-            else if ((renderLanes & revertLane) === revertLane) {
-              update = update.next;
-              revertLane === currentEntangledLane &&
-                (didReadFromEntangledAsyncAction = !0);
-              continue;
-            } else
-              (updateLane = {
-                lane: 0,
-                revertLane: update.revertLane,
-                gesture: null,
-                action: update.action,
-                hasEagerState: update.hasEagerState,
-                eagerState: update.eagerState,
-                next: null
-              }),
-                null === newBaseQueueLast
-                  ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),
-                    (baseFirst = pendingQueue))
-                  : (newBaseQueueLast = newBaseQueueLast.next = updateLane),
-                (currentlyRenderingFiber.lanes |= revertLane),
-                (workInProgressRootSkippedLanes |= revertLane);
-            updateLane = update.action;
-            shouldDoubleInvokeUserFnsInHooksDEV &&
-              reducer(pendingQueue, updateLane);
-            pendingQueue = update.hasEagerState
-              ? update.eagerState
-              : reducer(pendingQueue, updateLane);
-          } else
-            (revertLane = {
-              lane: updateLane,
-              revertLane: update.revertLane,
-              gesture: update.gesture,
-              action: update.action,
-              hasEagerState: update.hasEagerState,
-              eagerState: update.eagerState,
-              next: null
-            }),
-              null === newBaseQueueLast
-                ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),
-                  (baseFirst = pendingQueue))
-                : (newBaseQueueLast = newBaseQueueLast.next = revertLane),
-              (currentlyRenderingFiber.lanes |= updateLane),
-              (workInProgressRootSkippedLanes |= updateLane);
-          update = update.next;
-        } while (null !== update && update !== current);
-        null === newBaseQueueLast
-          ? (baseFirst = pendingQueue)
-          : (newBaseQueueLast.next = newBaseQueueFirst);
-        if (
-          !objectIs(pendingQueue, hook.memoizedState) &&
-          ((didReceiveUpdate = !0),
-          didReadFromEntangledAsyncAction &&
-            ((reducer = currentEntangledActionThenable), null !== reducer))
-        )
-          throw reducer;
-        hook.memoizedState = pendingQueue;
-        hook.baseState = baseFirst;
-        hook.baseQueue = newBaseQueueLast;
-        queue.lastRenderedState = pendingQueue;
-      }
-      null === baseQueue && (queue.lanes = 0);
-      return [hook.memoizedState, queue.dispatch];
-    }
-    function rerenderReducer(reducer) {
-      var hook = updateWorkInProgressHook(),
-        queue = hook.queue;
-      if (null === queue)
-        throw Error(
-          "Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)"
-        );
-      queue.lastRenderedReducer = reducer;
-      var dispatch = queue.dispatch,
-        lastRenderPhaseUpdate = queue.pending,
-        newState = hook.memoizedState;
-      if (null !== lastRenderPhaseUpdate) {
-        queue.pending = null;
-        var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);
-        do
-          (newState = reducer(newState, update.action)), (update = update.next);
-        while (update !== lastRenderPhaseUpdate);
-        objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);
-        hook.memoizedState = newState;
-        null === hook.baseQueue && (hook.baseState = newState);
-        queue.lastRenderedState = newState;
-      }
-      return [newState, dispatch];
-    }
-    function mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
-      var fiber = currentlyRenderingFiber,
-        hook = mountWorkInProgressHook();
-      if (isHydrating) {
-        if (void 0 === getServerSnapshot)
-          throw Error(
-            "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-          );
-        var nextSnapshot = getServerSnapshot();
-        didWarnUncachedGetSnapshot ||
-          nextSnapshot === getServerSnapshot() ||
-          (console.error(
-            "The result of getServerSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      } else {
-        nextSnapshot = getSnapshot();
-        didWarnUncachedGetSnapshot ||
-          ((getServerSnapshot = getSnapshot()),
-          objectIs(nextSnapshot, getServerSnapshot) ||
-            (console.error(
-              "The result of getSnapshot should be cached to avoid an infinite loop"
-            ),
-            (didWarnUncachedGetSnapshot = !0)));
-        if (null === workInProgressRoot)
-          throw Error(
-            "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-          );
-        0 !== (workInProgressRootRenderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);
-      }
-      hook.memoizedState = nextSnapshot;
-      getServerSnapshot = { value: nextSnapshot, getSnapshot: getSnapshot };
-      hook.queue = getServerSnapshot;
-      mountEffect(
-        subscribeToStore.bind(null, fiber, getServerSnapshot, subscribe),
-        [subscribe]
-      );
-      fiber.flags |= 2048;
-      pushSimpleEffect(
-        HasEffect | Passive,
-        { destroy: void 0 },
-        updateStoreInstance.bind(
-          null,
-          fiber,
-          getServerSnapshot,
-          nextSnapshot,
-          getSnapshot
-        ),
-        null
-      );
-      return nextSnapshot;
-    }
-    function updateSyncExternalStore(
-      subscribe,
-      getSnapshot,
-      getServerSnapshot
-    ) {
-      var fiber = currentlyRenderingFiber,
-        hook = updateWorkInProgressHook(),
-        isHydrating$jscomp$0 = isHydrating;
-      if (isHydrating$jscomp$0) {
-        if (void 0 === getServerSnapshot)
-          throw Error(
-            "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-          );
-        getServerSnapshot = getServerSnapshot();
-      } else if (
-        ((getServerSnapshot = getSnapshot()), !didWarnUncachedGetSnapshot)
-      ) {
-        var cachedSnapshot = getSnapshot();
-        objectIs(getServerSnapshot, cachedSnapshot) ||
-          (console.error(
-            "The result of getSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      }
-      if (
-        (cachedSnapshot = !objectIs(
-          (currentHook || hook).memoizedState,
-          getServerSnapshot
-        ))
-      )
-        (hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0);
-      hook = hook.queue;
-      var create = subscribeToStore.bind(null, fiber, hook, subscribe);
-      updateEffectImpl(2048, Passive, create, [subscribe]);
-      if (
-        hook.getSnapshot !== getSnapshot ||
-        cachedSnapshot ||
-        (null !== workInProgressHook &&
-          workInProgressHook.memoizedState.tag & HasEffect)
-      ) {
-        fiber.flags |= 2048;
-        pushSimpleEffect(
-          HasEffect | Passive,
-          { destroy: void 0 },
-          updateStoreInstance.bind(
-            null,
-            fiber,
-            hook,
-            getServerSnapshot,
-            getSnapshot
-          ),
-          null
-        );
-        if (null === workInProgressRoot)
-          throw Error(
-            "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-          );
-        isHydrating$jscomp$0 ||
-          0 !== (renderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-      }
-      return getServerSnapshot;
-    }
-    function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {
-      fiber.flags |= 16384;
-      fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };
-      getSnapshot = currentlyRenderingFiber.updateQueue;
-      null === getSnapshot
-        ? ((getSnapshot = createFunctionComponentUpdateQueue()),
-          (currentlyRenderingFiber.updateQueue = getSnapshot),
-          (getSnapshot.stores = [fiber]))
-        : ((renderedSnapshot = getSnapshot.stores),
-          null === renderedSnapshot
-            ? (getSnapshot.stores = [fiber])
-            : renderedSnapshot.push(fiber));
-    }
-    function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {
-      inst.value = nextSnapshot;
-      inst.getSnapshot = getSnapshot;
-      checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);
-    }
-    function subscribeToStore(fiber, inst, subscribe) {
-      return subscribe(function () {
-        checkIfSnapshotChanged(inst) &&
-          (startUpdateTimerByLane(2, "updateSyncExternalStore()", fiber),
-          forceStoreRerender(fiber));
-      });
-    }
-    function checkIfSnapshotChanged(inst) {
-      var latestGetSnapshot = inst.getSnapshot;
-      inst = inst.value;
-      try {
-        var nextValue = latestGetSnapshot();
-        return !objectIs(inst, nextValue);
-      } catch (error) {
-        return !0;
-      }
-    }
-    function forceStoreRerender(fiber) {
-      var root = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-    }
-    function mountStateImpl(initialState) {
-      var hook = mountWorkInProgressHook();
-      if ("function" === typeof initialState) {
-        var initialStateInitializer = initialState;
-        initialState = initialStateInitializer();
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            initialStateInitializer();
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      }
-      hook.memoizedState = hook.baseState = initialState;
-      hook.queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: basicStateReducer,
-        lastRenderedState: initialState
-      };
-      return hook;
-    }
-    function mountState(initialState) {
-      initialState = mountStateImpl(initialState);
-      var queue = initialState.queue,
-        dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);
-      queue.dispatch = dispatch;
-      return [initialState.memoizedState, dispatch];
-    }
-    function mountOptimistic(passthrough) {
-      var hook = mountWorkInProgressHook();
-      hook.memoizedState = hook.baseState = passthrough;
-      var queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: null,
-        lastRenderedState: null
-      };
-      hook.queue = queue;
-      hook = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !0,
-        queue
-      );
-      queue.dispatch = hook;
-      return [passthrough, hook];
-    }
-    function updateOptimistic(passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    }
-    function updateOptimisticImpl(hook, current, passthrough, reducer) {
-      hook.baseState = passthrough;
-      return updateReducerImpl(
-        hook,
-        currentHook,
-        "function" === typeof reducer ? reducer : basicStateReducer
-      );
-    }
-    function rerenderOptimistic(passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      if (null !== currentHook)
-        return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-      hook.baseState = passthrough;
-      return [passthrough, hook.queue.dispatch];
-    }
-    function dispatchActionState(
-      fiber,
-      actionQueue,
-      setPendingState,
-      setState,
-      payload
-    ) {
-      if (isRenderPhaseUpdate(fiber))
-        throw Error("Cannot update form state while rendering.");
-      fiber = actionQueue.action;
-      if (null !== fiber) {
-        var actionNode = {
-          payload: payload,
-          action: fiber,
-          next: null,
-          isTransition: !0,
-          status: "pending",
-          value: null,
-          reason: null,
-          listeners: [],
-          then: function (listener) {
-            actionNode.listeners.push(listener);
-          }
-        };
-        null !== ReactSharedInternals.T
-          ? setPendingState(!0)
-          : (actionNode.isTransition = !1);
-        setState(actionNode);
-        setPendingState = actionQueue.pending;
-        null === setPendingState
-          ? ((actionNode.next = actionQueue.pending = actionNode),
-            runActionStateAction(actionQueue, actionNode))
-          : ((actionNode.next = setPendingState.next),
-            (actionQueue.pending = setPendingState.next = actionNode));
-      }
-    }
-    function runActionStateAction(actionQueue, node) {
-      var action = node.action,
-        payload = node.payload,
-        prevState = actionQueue.state;
-      if (node.isTransition) {
-        var prevTransition = ReactSharedInternals.T,
-          currentTransition = {};
-        currentTransition._updatedFibers = new Set();
-        ReactSharedInternals.T = currentTransition;
-        try {
-          var returnValue = action(prevState, payload),
-            onStartTransitionFinish = ReactSharedInternals.S;
-          null !== onStartTransitionFinish &&
-            onStartTransitionFinish(currentTransition, returnValue);
-          handleActionReturnValue(actionQueue, node, returnValue);
-        } catch (error) {
-          onActionError(actionQueue, node, error);
-        } finally {
-          null !== prevTransition &&
-            null !== currentTransition.types &&
-            (null !== prevTransition.types &&
-              prevTransition.types !== currentTransition.types &&
-              console.error(
-                "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
-              ),
-            (prevTransition.types = currentTransition.types)),
-            (ReactSharedInternals.T = prevTransition),
-            null === prevTransition &&
-              currentTransition._updatedFibers &&
-              ((actionQueue = currentTransition._updatedFibers.size),
-              currentTransition._updatedFibers.clear(),
-              10 < actionQueue &&
-                console.warn(
-                  "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
-                ));
-        }
-      } else
-        try {
-          (currentTransition = action(prevState, payload)),
-            handleActionReturnValue(actionQueue, node, currentTransition);
-        } catch (error$4) {
-          onActionError(actionQueue, node, error$4);
-        }
-    }
-    function handleActionReturnValue(actionQueue, node, returnValue) {
-      null !== returnValue &&
-      "object" === typeof returnValue &&
-      "function" === typeof returnValue.then
-        ? (ReactSharedInternals.asyncTransitions++,
-          returnValue.then(releaseAsyncTransition, releaseAsyncTransition),
-          returnValue.then(
-            function (nextState) {
-              onActionSuccess(actionQueue, node, nextState);
-            },
-            function (error) {
-              return onActionError(actionQueue, node, error);
-            }
-          ),
-          node.isTransition ||
-            console.error(
-              "An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop."
-            ))
-        : onActionSuccess(actionQueue, node, returnValue);
-    }
-    function onActionSuccess(actionQueue, actionNode, nextState) {
-      actionNode.status = "fulfilled";
-      actionNode.value = nextState;
-      notifyActionListeners(actionNode);
-      actionQueue.state = nextState;
-      actionNode = actionQueue.pending;
-      null !== actionNode &&
-        ((nextState = actionNode.next),
-        nextState === actionNode
-          ? (actionQueue.pending = null)
-          : ((nextState = nextState.next),
-            (actionNode.next = nextState),
-            runActionStateAction(actionQueue, nextState)));
-    }
-    function onActionError(actionQueue, actionNode, error) {
-      var last = actionQueue.pending;
-      actionQueue.pending = null;
-      if (null !== last) {
-        last = last.next;
-        do
-          (actionNode.status = "rejected"),
-            (actionNode.reason = error),
-            notifyActionListeners(actionNode),
-            (actionNode = actionNode.next);
-        while (actionNode !== last);
-      }
-      actionQueue.action = null;
-    }
-    function notifyActionListeners(actionNode) {
-      actionNode = actionNode.listeners;
-      for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();
-    }
-    function actionStateReducer(oldState, newState) {
-      return newState;
-    }
-    function mountActionState(action, initialStateProp) {
-      if (isHydrating) {
-        var ssrFormState = workInProgressRoot.formState;
-        if (null !== ssrFormState) {
-          a: {
-            var isMatching = currentlyRenderingFiber;
-            if (isHydrating) {
-              if (nextHydratableInstance) {
-                b: {
-                  var markerInstance = nextHydratableInstance;
-                  for (
-                    var inRootOrSingleton = rootOrSingletonContext;
-                    8 !== markerInstance.nodeType;
-
-                  ) {
-                    if (!inRootOrSingleton) {
-                      markerInstance = null;
-                      break b;
-                    }
-                    markerInstance = getNextHydratable(
-                      markerInstance.nextSibling
-                    );
-                    if (null === markerInstance) {
-                      markerInstance = null;
-                      break b;
-                    }
-                  }
-                  inRootOrSingleton = markerInstance.data;
-                  markerInstance =
-                    inRootOrSingleton === FORM_STATE_IS_MATCHING ||
-                    inRootOrSingleton === FORM_STATE_IS_NOT_MATCHING
-                      ? markerInstance
-                      : null;
-                }
-                if (markerInstance) {
-                  nextHydratableInstance = getNextHydratable(
-                    markerInstance.nextSibling
-                  );
-                  isMatching = markerInstance.data === FORM_STATE_IS_MATCHING;
-                  break a;
-                }
-              }
-              throwOnHydrationMismatch(isMatching);
-            }
-            isMatching = !1;
-          }
-          isMatching && (initialStateProp = ssrFormState[0]);
-        }
-      }
-      ssrFormState = mountWorkInProgressHook();
-      ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;
-      isMatching = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: actionStateReducer,
-        lastRenderedState: initialStateProp
-      };
-      ssrFormState.queue = isMatching;
-      ssrFormState = dispatchSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        isMatching
-      );
-      isMatching.dispatch = ssrFormState;
-      isMatching = mountStateImpl(!1);
-      inRootOrSingleton = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !1,
-        isMatching.queue
-      );
-      isMatching = mountWorkInProgressHook();
-      markerInstance = {
-        state: initialStateProp,
-        dispatch: null,
-        action: action,
-        pending: null
-      };
-      isMatching.queue = markerInstance;
-      ssrFormState = dispatchActionState.bind(
-        null,
-        currentlyRenderingFiber,
-        markerInstance,
-        inRootOrSingleton,
-        ssrFormState
-      );
-      markerInstance.dispatch = ssrFormState;
-      isMatching.memoizedState = action;
-      return [initialStateProp, ssrFormState, !1];
-    }
-    function updateActionState(action) {
-      var stateHook = updateWorkInProgressHook();
-      return updateActionStateImpl(stateHook, currentHook, action);
-    }
-    function updateActionStateImpl(stateHook, currentStateHook, action) {
-      currentStateHook = updateReducerImpl(
-        stateHook,
-        currentStateHook,
-        actionStateReducer
-      )[0];
-      stateHook = updateReducer(basicStateReducer)[0];
-      if (
-        "object" === typeof currentStateHook &&
-        null !== currentStateHook &&
-        "function" === typeof currentStateHook.then
-      )
-        try {
-          var state = useThenable(currentStateHook);
-        } catch (x) {
-          if (x === SuspenseException) throw SuspenseActionException;
-          throw x;
-        }
-      else state = currentStateHook;
-      currentStateHook = updateWorkInProgressHook();
-      var actionQueue = currentStateHook.queue,
-        dispatch = actionQueue.dispatch;
-      action !== currentStateHook.memoizedState &&
-        ((currentlyRenderingFiber.flags |= 2048),
-        pushSimpleEffect(
-          HasEffect | Passive,
-          { destroy: void 0 },
-          actionStateActionEffect.bind(null, actionQueue, action),
-          null
-        ));
-      return [state, dispatch, stateHook];
-    }
-    function actionStateActionEffect(actionQueue, action) {
-      actionQueue.action = action;
-    }
-    function rerenderActionState(action) {
-      var stateHook = updateWorkInProgressHook(),
-        currentStateHook = currentHook;
-      if (null !== currentStateHook)
-        return updateActionStateImpl(stateHook, currentStateHook, action);
-      updateWorkInProgressHook();
-      stateHook = stateHook.memoizedState;
-      currentStateHook = updateWorkInProgressHook();
-      var dispatch = currentStateHook.queue.dispatch;
-      currentStateHook.memoizedState = action;
-      return [stateHook, dispatch, !1];
-    }
-    function pushSimpleEffect(tag, inst, create, deps) {
-      tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };
-      inst = currentlyRenderingFiber.updateQueue;
-      null === inst &&
-        ((inst = createFunctionComponentUpdateQueue()),
-        (currentlyRenderingFiber.updateQueue = inst));
-      create = inst.lastEffect;
-      null === create
-        ? (inst.lastEffect = tag.next = tag)
-        : ((deps = create.next),
-          (create.next = tag),
-          (tag.next = deps),
-          (inst.lastEffect = tag));
-      return tag;
-    }
-    function mountRef(initialValue) {
-      var hook = mountWorkInProgressHook();
-      initialValue = { current: initialValue };
-      return (hook.memoizedState = initialValue);
-    }
-    function mountEffectImpl(fiberFlags, hookFlags, create, deps) {
-      var hook = mountWorkInProgressHook();
-      currentlyRenderingFiber.flags |= fiberFlags;
-      hook.memoizedState = pushSimpleEffect(
-        HasEffect | hookFlags,
-        { destroy: void 0 },
-        create,
-        void 0 === deps ? null : deps
-      );
-    }
-    function updateEffectImpl(fiberFlags, hookFlags, create, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var inst = hook.memoizedState.inst;
-      null !== currentHook &&
-      null !== deps &&
-      areHookInputsEqual(deps, currentHook.memoizedState.deps)
-        ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))
-        : ((currentlyRenderingFiber.flags |= fiberFlags),
-          (hook.memoizedState = pushSimpleEffect(
-            HasEffect | hookFlags,
-            inst,
-            create,
-            deps
-          )));
-    }
-    function mountEffect(create, deps) {
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode
-        ? mountEffectImpl(276826112, Passive, create, deps)
-        : mountEffectImpl(8390656, Passive, create, deps);
-    }
-    function useEffectEventImpl(payload) {
-      currentlyRenderingFiber.flags |= 4;
-      var componentUpdateQueue = currentlyRenderingFiber.updateQueue;
-      if (null === componentUpdateQueue)
-        (componentUpdateQueue = createFunctionComponentUpdateQueue()),
-          (currentlyRenderingFiber.updateQueue = componentUpdateQueue),
-          (componentUpdateQueue.events = [payload]);
-      else {
-        var events = componentUpdateQueue.events;
-        null === events
-          ? (componentUpdateQueue.events = [payload])
-          : events.push(payload);
-      }
-    }
-    function mountEvent(callback) {
-      var hook = mountWorkInProgressHook(),
-        ref = { impl: callback };
-      hook.memoizedState = ref;
-      return function () {
-        if ((executionContext & RenderContext) !== NoContext)
-          throw Error(
-            "A function wrapped in useEffectEvent can't be called during rendering."
-          );
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-    function updateEvent(callback) {
-      var ref = updateWorkInProgressHook().memoizedState;
-      useEffectEventImpl({ ref: ref, nextImpl: callback });
-      return function () {
-        if ((executionContext & RenderContext) !== NoContext)
-          throw Error(
-            "A function wrapped in useEffectEvent can't be called during rendering."
-          );
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-    function mountLayoutEffect(create, deps) {
-      var fiberFlags = 4194308;
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
-        (fiberFlags |= 134217728);
-      return mountEffectImpl(fiberFlags, Layout, create, deps);
-    }
-    function imperativeHandleEffect(create, ref) {
-      if ("function" === typeof ref) {
-        create = create();
-        var refCleanup = ref(create);
-        return function () {
-          "function" === typeof refCleanup ? refCleanup() : ref(null);
-        };
-      }
-      if (null !== ref && void 0 !== ref)
-        return (
-          ref.hasOwnProperty("current") ||
-            console.error(
-              "Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.",
-              "an object with keys {" + Object.keys(ref).join(", ") + "}"
-            ),
-          (create = create()),
-          (ref.current = create),
-          function () {
-            ref.current = null;
-          }
-        );
-    }
-    function mountImperativeHandle(ref, create, deps) {
-      "function" !== typeof create &&
-        console.error(
-          "Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",
-          null !== create ? typeof create : "null"
-        );
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      var fiberFlags = 4194308;
-      (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
-        (fiberFlags |= 134217728);
-      mountEffectImpl(
-        fiberFlags,
-        Layout,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    }
-    function updateImperativeHandle(ref, create, deps) {
-      "function" !== typeof create &&
-        console.error(
-          "Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",
-          null !== create ? typeof create : "null"
-        );
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      updateEffectImpl(
-        4,
-        Layout,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    }
-    function mountCallback(callback, deps) {
-      mountWorkInProgressHook().memoizedState = [
-        callback,
-        void 0 === deps ? null : deps
-      ];
-      return callback;
-    }
-    function updateCallback(callback, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var prevState = hook.memoizedState;
-      if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-        return prevState[0];
-      hook.memoizedState = [callback, deps];
-      return callback;
-    }
-    function mountMemo(nextCreate, deps) {
-      var hook = mountWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var nextValue = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [nextValue, deps];
-      return nextValue;
-    }
-    function updateMemo(nextCreate, deps) {
-      var hook = updateWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var prevState = hook.memoizedState;
-      if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-        return prevState[0];
-      prevState = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [prevState, deps];
-      return prevState;
-    }
-    function mountDeferredValue(value, initialValue) {
-      var hook = mountWorkInProgressHook();
-      return mountDeferredValueImpl(hook, value, initialValue);
-    }
-    function updateDeferredValue(value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return updateDeferredValueImpl(
-        hook,
-        currentHook.memoizedState,
-        value,
-        initialValue
-      );
-    }
-    function rerenderDeferredValue(value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return null === currentHook
-        ? mountDeferredValueImpl(hook, value, initialValue)
-        : updateDeferredValueImpl(
-            hook,
-            currentHook.memoizedState,
-            value,
-            initialValue
-          );
-    }
-    function mountDeferredValueImpl(hook, value, initialValue) {
-      if (
-        void 0 === initialValue ||
-        (0 !== (renderLanes & 1073741824) &&
-          0 === (workInProgressRootRenderLanes & 261930))
-      )
-        return (hook.memoizedState = value);
-      hook.memoizedState = initialValue;
-      hook = requestDeferredLane();
-      currentlyRenderingFiber.lanes |= hook;
-      workInProgressRootSkippedLanes |= hook;
-      return initialValue;
-    }
-    function updateDeferredValueImpl(hook, prevValue, value, initialValue) {
-      if (objectIs(value, prevValue)) return value;
-      if (null !== currentTreeHiddenStackCursor.current)
-        return (
-          (hook = mountDeferredValueImpl(hook, value, initialValue)),
-          objectIs(hook, prevValue) || (didReceiveUpdate = !0),
-          hook
-        );
-      if (
-        0 === (renderLanes & 42) ||
-        (0 !== (renderLanes & 1073741824) &&
-          0 === (workInProgressRootRenderLanes & 261930))
-      )
-        return (didReceiveUpdate = !0), (hook.memoizedState = value);
-      hook = requestDeferredLane();
-      currentlyRenderingFiber.lanes |= hook;
-      workInProgressRootSkippedLanes |= hook;
-      return prevValue;
-    }
-    function releaseAsyncTransition() {
-      ReactSharedInternals.asyncTransitions--;
-    }
-    function startTransition(
-      fiber,
-      queue,
-      pendingState,
-      finishedState,
-      callback
-    ) {
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p =
-        0 !== previousPriority && previousPriority < ContinuousEventPriority
-          ? previousPriority
-          : ContinuousEventPriority;
-      var prevTransition = ReactSharedInternals.T,
-        currentTransition = {};
-      currentTransition._updatedFibers = new Set();
-      ReactSharedInternals.T = currentTransition;
-      dispatchOptimisticSetState(fiber, !1, queue, pendingState);
-      try {
-        var returnValue = callback(),
-          onStartTransitionFinish = ReactSharedInternals.S;
-        null !== onStartTransitionFinish &&
-          onStartTransitionFinish(currentTransition, returnValue);
-        if (
-          null !== returnValue &&
-          "object" === typeof returnValue &&
-          "function" === typeof returnValue.then
-        ) {
-          ReactSharedInternals.asyncTransitions++;
-          returnValue.then(releaseAsyncTransition, releaseAsyncTransition);
-          var thenableForFinishedState = chainThenableValue(
-            returnValue,
-            finishedState
-          );
-          dispatchSetStateInternal(
-            fiber,
-            queue,
-            thenableForFinishedState,
-            requestUpdateLane(fiber)
-          );
-        } else
-          dispatchSetStateInternal(
-            fiber,
-            queue,
-            finishedState,
-            requestUpdateLane(fiber)
-          );
-      } catch (error) {
-        dispatchSetStateInternal(
-          fiber,
-          queue,
-          { then: function () {}, status: "rejected", reason: error },
-          requestUpdateLane(fiber)
-        );
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          null !== prevTransition &&
-            null !== currentTransition.types &&
-            (null !== prevTransition.types &&
-              prevTransition.types !== currentTransition.types &&
-              console.error(
-                "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
-              ),
-            (prevTransition.types = currentTransition.types)),
-          (ReactSharedInternals.T = prevTransition),
-          null === prevTransition &&
-            currentTransition._updatedFibers &&
-            ((fiber = currentTransition._updatedFibers.size),
-            currentTransition._updatedFibers.clear(),
-            10 < fiber &&
-              console.warn(
-                "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
-              ));
-      }
-    }
-    function startHostTransition(formFiber, pendingState, action, formData) {
-      if (5 !== formFiber.tag)
-        throw Error(
-          "Expected the form instance to be a HostComponent. This is a bug in React."
-        );
-      var queue = ensureFormComponentIsStateful(formFiber).queue;
-      startHostActionTimer(formFiber);
-      startTransition(
-        formFiber,
-        queue,
-        pendingState,
-        NotPendingTransition,
-        null === action
-          ? noop
-          : function () {
-              requestFormReset$2(formFiber);
-              return action(formData);
-            }
-      );
-    }
-    function ensureFormComponentIsStateful(formFiber) {
-      var existingStateHook = formFiber.memoizedState;
-      if (null !== existingStateHook) return existingStateHook;
-      existingStateHook = {
-        memoizedState: NotPendingTransition,
-        baseState: NotPendingTransition,
-        baseQueue: null,
-        queue: {
-          pending: null,
-          lanes: 0,
-          dispatch: null,
-          lastRenderedReducer: basicStateReducer,
-          lastRenderedState: NotPendingTransition
-        },
-        next: null
-      };
-      var initialResetState = {};
-      existingStateHook.next = {
-        memoizedState: initialResetState,
-        baseState: initialResetState,
-        baseQueue: null,
-        queue: {
-          pending: null,
-          lanes: 0,
-          dispatch: null,
-          lastRenderedReducer: basicStateReducer,
-          lastRenderedState: initialResetState
-        },
-        next: null
-      };
-      formFiber.memoizedState = existingStateHook;
-      formFiber = formFiber.alternate;
-      null !== formFiber && (formFiber.memoizedState = existingStateHook);
-      return existingStateHook;
-    }
-    function requestFormReset$2(formFiber) {
-      null === ReactSharedInternals.T &&
-        console.error(
-          "requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition."
-        );
-      var stateHook = ensureFormComponentIsStateful(formFiber);
-      null === stateHook.next &&
-        (stateHook = formFiber.alternate.memoizedState);
-      dispatchSetStateInternal(
-        formFiber,
-        stateHook.next.queue,
-        {},
-        requestUpdateLane(formFiber)
-      );
-    }
-    function mountTransition() {
-      var stateHook = mountStateImpl(!1);
-      stateHook = startTransition.bind(
-        null,
-        currentlyRenderingFiber,
-        stateHook.queue,
-        !0,
-        !1
-      );
-      mountWorkInProgressHook().memoizedState = stateHook;
-      return [!1, stateHook];
-    }
-    function updateTransition() {
-      var booleanOrThenable = updateReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    }
-    function rerenderTransition() {
-      var booleanOrThenable = rerenderReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    }
-    function useHostTransitionStatus() {
-      return readContext(HostTransitionContext);
-    }
-    function mountId() {
-      var hook = mountWorkInProgressHook(),
-        identifierPrefix = workInProgressRoot.identifierPrefix;
-      if (isHydrating) {
-        var treeId = treeContextOverflow;
-        var idWithLeadingBit = treeContextId;
-        treeId =
-          (
-            idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))
-          ).toString(32) + treeId;
-        identifierPrefix = "_" + identifierPrefix + "R_" + treeId;
-        treeId = localIdCounter++;
-        0 < treeId && (identifierPrefix += "H" + treeId.toString(32));
-        identifierPrefix += "_";
-      } else
-        (treeId = globalClientIdCounter++),
-          (identifierPrefix =
-            "_" + identifierPrefix + "r_" + treeId.toString(32) + "_");
-      return (hook.memoizedState = identifierPrefix);
-    }
-    function mountRefresh() {
-      return (mountWorkInProgressHook().memoizedState = refreshCache.bind(
-        null,
-        currentlyRenderingFiber
-      ));
-    }
-    function refreshCache(fiber, seedKey) {
-      for (var provider = fiber.return; null !== provider; ) {
-        switch (provider.tag) {
-          case 24:
-          case 3:
-            var lane = requestUpdateLane(provider),
-              refreshUpdate = createUpdate(lane),
-              root = enqueueUpdate(provider, refreshUpdate, lane);
-            null !== root &&
-              (startUpdateTimerByLane(lane, "refresh()", fiber),
-              scheduleUpdateOnFiber(root, provider, lane),
-              entangleTransitions(root, provider, lane));
-            fiber = createCache();
-            null !== seedKey &&
-              void 0 !== seedKey &&
-              null !== root &&
-              console.error(
-                "The seed argument is not enabled outside experimental channels."
-              );
-            refreshUpdate.payload = { cache: fiber };
-            return;
-        }
-        provider = provider.return;
-      }
-    }
-    function dispatchReducerAction(fiber, queue, action) {
-      var args = arguments;
-      "function" === typeof args[3] &&
-        console.error(
-          "State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
-        );
-      args = requestUpdateLane(fiber);
-      var update = {
-        lane: args,
-        revertLane: 0,
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      isRenderPhaseUpdate(fiber)
-        ? enqueueRenderPhaseUpdate(queue, update)
-        : ((update = enqueueConcurrentHookUpdate(fiber, queue, update, args)),
-          null !== update &&
-            (startUpdateTimerByLane(args, "dispatch()", fiber),
-            scheduleUpdateOnFiber(update, fiber, args),
-            entangleTransitionUpdate(update, queue, args)));
-    }
-    function dispatchSetState(fiber, queue, action) {
-      var args = arguments;
-      "function" === typeof args[3] &&
-        console.error(
-          "State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
-        );
-      args = requestUpdateLane(fiber);
-      dispatchSetStateInternal(fiber, queue, action, args) &&
-        startUpdateTimerByLane(args, "setState()", fiber);
-    }
-    function dispatchSetStateInternal(fiber, queue, action, lane) {
-      var update = {
-        lane: lane,
-        revertLane: 0,
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);
-      else {
-        var alternate = fiber.alternate;
-        if (
-          0 === fiber.lanes &&
-          (null === alternate || 0 === alternate.lanes) &&
-          ((alternate = queue.lastRenderedReducer), null !== alternate)
-        ) {
-          var prevDispatcher = ReactSharedInternals.H;
-          ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-          try {
-            var currentState = queue.lastRenderedState,
-              eagerState = alternate(currentState, action);
-            update.hasEagerState = !0;
-            update.eagerState = eagerState;
-            if (objectIs(eagerState, currentState))
-              return (
-                enqueueUpdate$1(fiber, queue, update, 0),
-                null === workInProgressRoot &&
-                  finishQueueingConcurrentUpdates(),
-                !1
-              );
-          } catch (error) {
-          } finally {
-            ReactSharedInternals.H = prevDispatcher;
-          }
-        }
-        action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);
-        if (null !== action)
-          return (
-            scheduleUpdateOnFiber(action, fiber, lane),
-            entangleTransitionUpdate(action, queue, lane),
-            !0
-          );
-      }
-      return !1;
-    }
-    function dispatchOptimisticSetState(
-      fiber,
-      throwIfDuringRender,
-      queue,
-      action
-    ) {
-      null === ReactSharedInternals.T &&
-        0 === currentEntangledLane &&
-        console.error(
-          "An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition."
-        );
-      action = {
-        lane: 2,
-        revertLane: requestTransitionLane(),
-        gesture: null,
-        action: action,
-        hasEagerState: !1,
-        eagerState: null,
-        next: null
-      };
-      if (isRenderPhaseUpdate(fiber)) {
-        if (throwIfDuringRender)
-          throw Error("Cannot update optimistic state while rendering.");
-        console.error("Cannot call startTransition while rendering.");
-      } else
-        (throwIfDuringRender = enqueueConcurrentHookUpdate(
-          fiber,
-          queue,
-          action,
-          2
-        )),
-          null !== throwIfDuringRender &&
-            (startUpdateTimerByLane(2, "setOptimistic()", fiber),
-            scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2));
-    }
-    function isRenderPhaseUpdate(fiber) {
-      var alternate = fiber.alternate;
-      return (
-        fiber === currentlyRenderingFiber ||
-        (null !== alternate && alternate === currentlyRenderingFiber)
-      );
-    }
-    function enqueueRenderPhaseUpdate(queue, update) {
-      didScheduleRenderPhaseUpdateDuringThisPass =
-        didScheduleRenderPhaseUpdate = !0;
-      var pending = queue.pending;
-      null === pending
-        ? (update.next = update)
-        : ((update.next = pending.next), (pending.next = update));
-      queue.pending = update;
-    }
-    function entangleTransitionUpdate(root, queue, lane) {
-      if (0 !== (lane & 4194048)) {
-        var queueLanes = queue.lanes;
-        queueLanes &= root.pendingLanes;
-        lane |= queueLanes;
-        queue.lanes = lane;
-        markRootEntangled(root, lane);
-      }
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function applyDerivedStateFromProps(
-      workInProgress,
-      ctor,
-      getDerivedStateFromProps,
-      nextProps
-    ) {
-      var prevState = workInProgress.memoizedState,
-        partialState = getDerivedStateFromProps(nextProps, prevState);
-      if (workInProgress.mode & StrictLegacyMode) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          partialState = getDerivedStateFromProps(nextProps, prevState);
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      void 0 === partialState &&
-        ((ctor = getComponentNameFromType(ctor) || "Component"),
-        didWarnAboutUndefinedDerivedState.has(ctor) ||
-          (didWarnAboutUndefinedDerivedState.add(ctor),
-          console.error(
-            "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-            ctor
-          )));
-      prevState =
-        null === partialState || void 0 === partialState
-          ? prevState
-          : assign({}, prevState, partialState);
-      workInProgress.memoizedState = prevState;
-      0 === workInProgress.lanes &&
-        (workInProgress.updateQueue.baseState = prevState);
-    }
-    function checkShouldComponentUpdate(
-      workInProgress,
-      ctor,
-      oldProps,
-      newProps,
-      oldState,
-      newState,
-      nextContext
-    ) {
-      var instance = workInProgress.stateNode;
-      if ("function" === typeof instance.shouldComponentUpdate) {
-        oldProps = instance.shouldComponentUpdate(
-          newProps,
-          newState,
-          nextContext
-        );
-        if (workInProgress.mode & StrictLegacyMode) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            oldProps = instance.shouldComponentUpdate(
-              newProps,
-              newState,
-              nextContext
-            );
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        void 0 === oldProps &&
-          console.error(
-            "%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",
-            getComponentNameFromType(ctor) || "Component"
-          );
-        return oldProps;
-      }
-      return ctor.prototype && ctor.prototype.isPureReactComponent
-        ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)
-        : !0;
-    }
-    function callComponentWillReceiveProps(
-      workInProgress,
-      instance,
-      newProps,
-      nextContext
-    ) {
-      var oldState = instance.state;
-      "function" === typeof instance.componentWillReceiveProps &&
-        instance.componentWillReceiveProps(newProps, nextContext);
-      "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-        instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);
-      instance.state !== oldState &&
-        ((workInProgress =
-          getComponentNameFromFiber(workInProgress) || "Component"),
-        didWarnAboutStateAssignmentForComponent.has(workInProgress) ||
-          (didWarnAboutStateAssignmentForComponent.add(workInProgress),
-          console.error(
-            "%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-            workInProgress
-          )),
-        classComponentUpdater.enqueueReplaceState(
-          instance,
-          instance.state,
-          null
-        ));
-    }
-    function resolveClassComponentProps(Component, baseProps) {
-      var newProps = baseProps;
-      if ("ref" in baseProps) {
-        newProps = {};
-        for (var propName in baseProps)
-          "ref" !== propName && (newProps[propName] = baseProps[propName]);
-      }
-      if ((Component = Component.defaultProps)) {
-        newProps === baseProps && (newProps = assign({}, newProps));
-        for (var _propName in Component)
-          void 0 === newProps[_propName] &&
-            (newProps[_propName] = Component[_propName]);
-      }
-      return newProps;
-    }
-    function defaultOnUncaughtError(error) {
-      reportGlobalError(error);
-      console.warn(
-        "%s\n\n%s\n",
-        componentName
-          ? "An error occurred in the <" + componentName + "> component."
-          : "An error occurred in one of your React components.",
-        "Consider adding an error boundary to your tree to customize error handling behavior.\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries."
-      );
-    }
-    function defaultOnCaughtError(error) {
-      var componentNameMessage = componentName
-          ? "The above error occurred in the <" + componentName + "> component."
-          : "The above error occurred in one of your React components.",
-        recreateMessage =
-          "React will try to recreate this component tree from scratch using the error boundary you provided, " +
-          ((errorBoundaryName || "Anonymous") + ".");
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [
-          "%o\n\n%s\n\n%s\n",
-          error,
-          componentNameMessage,
-          recreateMessage
-        ].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              badgeFormat + " " + error[0],
-              badgeStyle,
-              pad + JSCompiler_inline_result + pad,
-              resetStyle
-            )
-          : error.splice(
-              0,
-              0,
-              badgeFormat,
-              badgeStyle,
-              pad + JSCompiler_inline_result + pad,
-              resetStyle
-            );
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else
-        console.error(
-          "%o\n\n%s\n\n%s\n",
-          error,
-          componentNameMessage,
-          recreateMessage
-        );
-    }
-    function defaultOnRecoverableError(error) {
-      reportGlobalError(error);
-    }
-    function logUncaughtError(root, errorInfo) {
-      try {
-        componentName = errorInfo.source
-          ? getComponentNameFromFiber(errorInfo.source)
-          : null;
-        errorBoundaryName = null;
-        var error = errorInfo.value;
-        if (null !== ReactSharedInternals.actQueue)
-          ReactSharedInternals.thrownErrors.push(error);
-        else {
-          var onUncaughtError = root.onUncaughtError;
-          onUncaughtError(error, { componentStack: errorInfo.stack });
-        }
-      } catch (e$5) {
-        setTimeout(function () {
-          throw e$5;
-        });
-      }
-    }
-    function logCaughtError(root, boundary, errorInfo) {
-      try {
-        componentName = errorInfo.source
-          ? getComponentNameFromFiber(errorInfo.source)
-          : null;
-        errorBoundaryName = getComponentNameFromFiber(boundary);
-        var onCaughtError = root.onCaughtError;
-        onCaughtError(errorInfo.value, {
-          componentStack: errorInfo.stack,
-          errorBoundary: 1 === boundary.tag ? boundary.stateNode : null
-        });
-      } catch (e$6) {
-        setTimeout(function () {
-          throw e$6;
-        });
-      }
-    }
-    function createRootErrorUpdate(root, errorInfo, lane) {
-      lane = createUpdate(lane);
-      lane.tag = CaptureUpdate;
-      lane.payload = { element: null };
-      lane.callback = function () {
-        runWithFiberInDEV(errorInfo.source, logUncaughtError, root, errorInfo);
-      };
-      return lane;
-    }
-    function createClassErrorUpdate(lane) {
-      lane = createUpdate(lane);
-      lane.tag = CaptureUpdate;
-      return lane;
-    }
-    function initializeClassErrorUpdate(update, root, fiber, errorInfo) {
-      var getDerivedStateFromError = fiber.type.getDerivedStateFromError;
-      if ("function" === typeof getDerivedStateFromError) {
-        var error = errorInfo.value;
-        update.payload = function () {
-          return getDerivedStateFromError(error);
-        };
-        update.callback = function () {
-          markFailedErrorBoundaryForHotReloading(fiber);
-          runWithFiberInDEV(
-            errorInfo.source,
-            logCaughtError,
-            root,
-            fiber,
-            errorInfo
-          );
-        };
-      }
-      var inst = fiber.stateNode;
-      null !== inst &&
-        "function" === typeof inst.componentDidCatch &&
-        (update.callback = function () {
-          markFailedErrorBoundaryForHotReloading(fiber);
-          runWithFiberInDEV(
-            errorInfo.source,
-            logCaughtError,
-            root,
-            fiber,
-            errorInfo
-          );
-          "function" !== typeof getDerivedStateFromError &&
-            (null === legacyErrorBoundariesThatAlreadyFailed
-              ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))
-              : legacyErrorBoundariesThatAlreadyFailed.add(this));
-          callComponentDidCatchInDEV(this, errorInfo);
-          "function" === typeof getDerivedStateFromError ||
-            (0 === (fiber.lanes & 2) &&
-              console.error(
-                "%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.",
-                getComponentNameFromFiber(fiber) || "Unknown"
-              ));
-        });
-    }
-    function throwException(
-      root,
-      returnFiber,
-      sourceFiber,
-      value,
-      rootRenderLanes
-    ) {
-      sourceFiber.flags |= 32768;
-      isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes);
-      if (
-        null !== value &&
-        "object" === typeof value &&
-        "function" === typeof value.then
-      ) {
-        returnFiber = sourceFiber.alternate;
-        null !== returnFiber &&
-          propagateParentContextChanges(
-            returnFiber,
-            sourceFiber,
-            rootRenderLanes,
-            !0
-          );
-        isHydrating && (didSuspendOrErrorDEV = !0);
-        sourceFiber = suspenseHandlerStackCursor.current;
-        if (null !== sourceFiber) {
-          switch (sourceFiber.tag) {
-            case 31:
-            case 13:
-              return (
-                null === shellBoundary
-                  ? renderDidSuspendDelayIfPossible()
-                  : null === sourceFiber.alternate &&
-                    workInProgressRootExitStatus === RootInProgress &&
-                    (workInProgressRootExitStatus = RootSuspended),
-                (sourceFiber.flags &= -257),
-                (sourceFiber.flags |= 65536),
-                (sourceFiber.lanes = rootRenderLanes),
-                value === noopSuspenseyCommitThenable
-                  ? (sourceFiber.flags |= 16384)
-                  : ((returnFiber = sourceFiber.updateQueue),
-                    null === returnFiber
-                      ? (sourceFiber.updateQueue = new Set([value]))
-                      : returnFiber.add(value),
-                    attachPingListener(root, value, rootRenderLanes)),
-                !1
-              );
-            case 22:
-              return (
-                (sourceFiber.flags |= 65536),
-                value === noopSuspenseyCommitThenable
-                  ? (sourceFiber.flags |= 16384)
-                  : ((returnFiber = sourceFiber.updateQueue),
-                    null === returnFiber
-                      ? ((returnFiber = {
-                          transitions: null,
-                          markerInstances: null,
-                          retryQueue: new Set([value])
-                        }),
-                        (sourceFiber.updateQueue = returnFiber))
-                      : ((sourceFiber = returnFiber.retryQueue),
-                        null === sourceFiber
-                          ? (returnFiber.retryQueue = new Set([value]))
-                          : sourceFiber.add(value)),
-                    attachPingListener(root, value, rootRenderLanes)),
-                !1
-              );
-          }
-          throw Error(
-            "Unexpected Suspense handler tag (" +
-              sourceFiber.tag +
-              "). This is a bug in React."
-          );
-        }
-        attachPingListener(root, value, rootRenderLanes);
-        renderDidSuspendDelayIfPossible();
-        return !1;
-      }
-      if (isHydrating)
-        return (
-          (didSuspendOrErrorDEV = !0),
-          (returnFiber = suspenseHandlerStackCursor.current),
-          null !== returnFiber
-            ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),
-              (returnFiber.flags |= 65536),
-              (returnFiber.lanes = rootRenderLanes),
-              value !== HydrationMismatchException &&
-                queueHydrationError(
-                  createCapturedValueAtFiber(
-                    Error(
-                      "There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.",
-                      { cause: value }
-                    ),
-                    sourceFiber
-                  )
-                ))
-            : (value !== HydrationMismatchException &&
-                queueHydrationError(
-                  createCapturedValueAtFiber(
-                    Error(
-                      "There was an error while hydrating but React was able to recover by instead client rendering the entire root.",
-                      { cause: value }
-                    ),
-                    sourceFiber
-                  )
-                ),
-              (root = root.current.alternate),
-              (root.flags |= 65536),
-              (rootRenderLanes &= -rootRenderLanes),
-              (root.lanes |= rootRenderLanes),
-              (value = createCapturedValueAtFiber(value, sourceFiber)),
-              (rootRenderLanes = createRootErrorUpdate(
-                root.stateNode,
-                value,
-                rootRenderLanes
-              )),
-              enqueueCapturedUpdate(root, rootRenderLanes),
-              workInProgressRootExitStatus !== RootSuspendedWithDelay &&
-                (workInProgressRootExitStatus = RootErrored)),
-          !1
-        );
-      var error = createCapturedValueAtFiber(
-        Error(
-          "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.",
-          { cause: value }
-        ),
-        sourceFiber
-      );
-      null === workInProgressRootConcurrentErrors
-        ? (workInProgressRootConcurrentErrors = [error])
-        : workInProgressRootConcurrentErrors.push(error);
-      workInProgressRootExitStatus !== RootSuspendedWithDelay &&
-        (workInProgressRootExitStatus = RootErrored);
-      if (null === returnFiber) return !0;
-      value = createCapturedValueAtFiber(value, sourceFiber);
-      sourceFiber = returnFiber;
-      do {
-        switch (sourceFiber.tag) {
-          case 3:
-            return (
-              (sourceFiber.flags |= 65536),
-              (root = rootRenderLanes & -rootRenderLanes),
-              (sourceFiber.lanes |= root),
-              (root = createRootErrorUpdate(
-                sourceFiber.stateNode,
-                value,
-                root
-              )),
-              enqueueCapturedUpdate(sourceFiber, root),
-              !1
-            );
-          case 1:
-            if (
-              ((returnFiber = sourceFiber.type),
-              (error = sourceFiber.stateNode),
-              0 === (sourceFiber.flags & 128) &&
-                ("function" === typeof returnFiber.getDerivedStateFromError ||
-                  (null !== error &&
-                    "function" === typeof error.componentDidCatch &&
-                    (null === legacyErrorBoundariesThatAlreadyFailed ||
-                      !legacyErrorBoundariesThatAlreadyFailed.has(error)))))
-            )
-              return (
-                (sourceFiber.flags |= 65536),
-                (rootRenderLanes &= -rootRenderLanes),
-                (sourceFiber.lanes |= rootRenderLanes),
-                (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),
-                initializeClassErrorUpdate(
-                  rootRenderLanes,
-                  root,
-                  sourceFiber,
-                  value
-                ),
-                enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
-                !1
-              );
-        }
-        sourceFiber = sourceFiber.return;
-      } while (null !== sourceFiber);
-      return !1;
-    }
-    function reconcileChildren(
-      current,
-      workInProgress,
-      nextChildren,
-      renderLanes
-    ) {
-      workInProgress.child =
-        null === current
-          ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)
-          : reconcileChildFibers(
-              workInProgress,
-              current.child,
-              nextChildren,
-              renderLanes
-            );
-    }
-    function updateForwardRef(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      Component = Component.render;
-      var ref = workInProgress.ref;
-      if ("ref" in nextProps) {
-        var propsWithoutRef = {};
-        for (var key in nextProps)
-          "ref" !== key && (propsWithoutRef[key] = nextProps[key]);
-      } else propsWithoutRef = nextProps;
-      prepareToReadContext(workInProgress);
-      nextProps = renderWithHooks(
-        current,
-        workInProgress,
-        Component,
-        propsWithoutRef,
-        ref,
-        renderLanes
-      );
-      key = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && key && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, nextProps, renderLanes);
-      return workInProgress.child;
-    }
-    function updateMemoComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (null === current) {
-        var type = Component.type;
-        if (
-          "function" === typeof type &&
-          !shouldConstruct(type) &&
-          void 0 === type.defaultProps &&
-          null === Component.compare
-        )
-          return (
-            (Component = resolveFunctionForHotReloading(type)),
-            (workInProgress.tag = 15),
-            (workInProgress.type = Component),
-            validateFunctionComponentInDev(workInProgress, type),
-            updateSimpleMemoComponent(
-              current,
-              workInProgress,
-              Component,
-              nextProps,
-              renderLanes
-            )
-          );
-        current = createFiberFromTypeAndProps(
-          Component.type,
-          null,
-          nextProps,
-          workInProgress,
-          workInProgress.mode,
-          renderLanes
-        );
-        current.ref = workInProgress.ref;
-        current.return = workInProgress;
-        return (workInProgress.child = current);
-      }
-      type = current.child;
-      if (!checkScheduledUpdateOrContext(current, renderLanes)) {
-        var prevProps = type.memoizedProps;
-        Component = Component.compare;
-        Component = null !== Component ? Component : shallowEqual;
-        if (
-          Component(prevProps, nextProps) &&
-          current.ref === workInProgress.ref
-        )
-          return bailoutOnAlreadyFinishedWork(
-            current,
-            workInProgress,
-            renderLanes
-          );
-      }
-      workInProgress.flags |= 1;
-      current = createWorkInProgress(type, nextProps);
-      current.ref = workInProgress.ref;
-      current.return = workInProgress;
-      return (workInProgress.child = current);
-    }
-    function updateSimpleMemoComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (null !== current) {
-        var prevProps = current.memoizedProps;
-        if (
-          shallowEqual(prevProps, nextProps) &&
-          current.ref === workInProgress.ref &&
-          workInProgress.type === current.type
-        )
-          if (
-            ((didReceiveUpdate = !1),
-            (workInProgress.pendingProps = nextProps = prevProps),
-            checkScheduledUpdateOrContext(current, renderLanes))
-          )
-            0 !== (current.flags & 131072) && (didReceiveUpdate = !0);
-          else
-            return (
-              (workInProgress.lanes = current.lanes),
-              bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-            );
-      }
-      return updateFunctionComponent(
-        current,
-        workInProgress,
-        Component,
-        nextProps,
-        renderLanes
-      );
-    }
-    function updateOffscreenComponent(
-      current,
-      workInProgress,
-      renderLanes,
-      nextProps
-    ) {
-      var nextChildren = nextProps.children,
-        prevState = null !== current ? current.memoizedState : null;
-      null === current &&
-        null === workInProgress.stateNode &&
-        (workInProgress.stateNode = {
-          _visibility: OffscreenVisible,
-          _pendingMarkers: null,
-          _retryCache: null,
-          _transitions: null
-        });
-      if ("hidden" === nextProps.mode) {
-        if (0 !== (workInProgress.flags & 128)) {
-          prevState =
-            null !== prevState
-              ? prevState.baseLanes | renderLanes
-              : renderLanes;
-          if (null !== current) {
-            nextProps = workInProgress.child = current.child;
-            for (nextChildren = 0; null !== nextProps; )
-              (nextChildren =
-                nextChildren | nextProps.lanes | nextProps.childLanes),
-                (nextProps = nextProps.sibling);
-            nextProps = nextChildren & ~prevState;
-          } else (nextProps = 0), (workInProgress.child = null);
-          return deferHiddenOffscreenComponent(
-            current,
-            workInProgress,
-            prevState,
-            renderLanes,
-            nextProps
-          );
-        }
-        if (0 !== (renderLanes & 536870912))
-          (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),
-            null !== current &&
-              pushTransition(
-                workInProgress,
-                null !== prevState ? prevState.cachePool : null
-              ),
-            null !== prevState
-              ? pushHiddenContext(workInProgress, prevState)
-              : reuseHiddenContextOnStack(workInProgress),
-            pushOffscreenSuspenseHandler(workInProgress);
-        else
-          return (
-            (nextProps = workInProgress.lanes = 536870912),
-            deferHiddenOffscreenComponent(
-              current,
-              workInProgress,
-              null !== prevState
-                ? prevState.baseLanes | renderLanes
-                : renderLanes,
-              renderLanes,
-              nextProps
-            )
-          );
-      } else
-        null !== prevState
-          ? (pushTransition(workInProgress, prevState.cachePool),
-            pushHiddenContext(workInProgress, prevState),
-            reuseSuspenseHandlerOnStack(workInProgress),
-            (workInProgress.memoizedState = null))
-          : (null !== current && pushTransition(workInProgress, null),
-            reuseHiddenContextOnStack(workInProgress),
-            reuseSuspenseHandlerOnStack(workInProgress));
-      reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-      return workInProgress.child;
-    }
-    function bailoutOffscreenComponent(current, workInProgress) {
-      (null !== current && 22 === current.tag) ||
-        null !== workInProgress.stateNode ||
-        (workInProgress.stateNode = {
-          _visibility: OffscreenVisible,
-          _pendingMarkers: null,
-          _retryCache: null,
-          _transitions: null
-        });
-      return workInProgress.sibling;
-    }
-    function deferHiddenOffscreenComponent(
-      current,
-      workInProgress,
-      nextBaseLanes,
-      renderLanes,
-      remainingChildLanes
-    ) {
-      var JSCompiler_inline_result = peekCacheFromPool();
-      JSCompiler_inline_result =
-        null === JSCompiler_inline_result
-          ? null
-          : {
-              parent: CacheContext._currentValue,
-              pool: JSCompiler_inline_result
-            };
-      workInProgress.memoizedState = {
-        baseLanes: nextBaseLanes,
-        cachePool: JSCompiler_inline_result
-      };
-      null !== current && pushTransition(workInProgress, null);
-      reuseHiddenContextOnStack(workInProgress);
-      pushOffscreenSuspenseHandler(workInProgress);
-      null !== current &&
-        propagateParentContextChanges(current, workInProgress, renderLanes, !0);
-      workInProgress.childLanes = remainingChildLanes;
-      return null;
-    }
-    function mountActivityChildren(workInProgress, nextProps) {
-      var hiddenProp = nextProps.hidden;
-      void 0 !== hiddenProp &&
-        console.error(
-          '<Activity> doesn\'t accept a hidden prop. Use mode="hidden" instead.\n- <Activity %s>\n+ <Activity %s>',
-          !0 === hiddenProp
-            ? "hidden"
-            : !1 === hiddenProp
-              ? "hidden={false}"
-              : "hidden={...}",
-          hiddenProp ? 'mode="hidden"' : 'mode="visible"'
-        );
-      nextProps = mountWorkInProgressOffscreenFiber(
-        { mode: nextProps.mode, children: nextProps.children },
-        workInProgress.mode
-      );
-      nextProps.ref = workInProgress.ref;
-      workInProgress.child = nextProps;
-      nextProps.return = workInProgress;
-      return nextProps;
-    }
-    function retryActivityComponentWithoutHydrating(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-      current = mountActivityChildren(
-        workInProgress,
-        workInProgress.pendingProps
-      );
-      current.flags |= 2;
-      popSuspenseHandler(workInProgress);
-      workInProgress.memoizedState = null;
-      return current;
-    }
-    function updateActivityComponent(current, workInProgress, renderLanes) {
-      var nextProps = workInProgress.pendingProps,
-        didSuspend = 0 !== (workInProgress.flags & 128);
-      workInProgress.flags &= -129;
-      if (null === current) {
-        if (isHydrating) {
-          if ("hidden" === nextProps.mode)
-            return (
-              (current = mountActivityChildren(workInProgress, nextProps)),
-              (workInProgress.lanes = 536870912),
-              bailoutOffscreenComponent(null, current)
-            );
-          pushDehydratedActivitySuspenseHandler(workInProgress);
-          (current = nextHydratableInstance)
-            ? ((renderLanes = canHydrateHydrationBoundary(
-                current,
-                rootOrSingletonContext
-              )),
-              (renderLanes =
-                null !== renderLanes && renderLanes.data === ACTIVITY_START_DATA
-                  ? renderLanes
-                  : null),
-              null !== renderLanes &&
-                ((nextProps = {
-                  dehydrated: renderLanes,
-                  treeContext: getSuspendedTreeContext(),
-                  retryLane: 536870912,
-                  hydrationErrors: null
-                }),
-                (workInProgress.memoizedState = nextProps),
-                (nextProps = createFiberFromDehydratedFragment(renderLanes)),
-                (nextProps.return = workInProgress),
-                (workInProgress.child = nextProps),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null)))
-            : (renderLanes = null);
-          if (null === renderLanes)
-            throw (
-              (warnNonHydratedInstance(workInProgress, current),
-              throwOnHydrationMismatch(workInProgress))
-            );
-          workInProgress.lanes = 536870912;
-          return null;
-        }
-        return mountActivityChildren(workInProgress, nextProps);
-      }
-      var prevState = current.memoizedState;
-      if (null !== prevState) {
-        var activityInstance = prevState.dehydrated;
-        pushDehydratedActivitySuspenseHandler(workInProgress);
-        if (didSuspend)
-          if (workInProgress.flags & 256)
-            (workInProgress.flags &= -257),
-              (workInProgress = retryActivityComponentWithoutHydrating(
-                current,
-                workInProgress,
-                renderLanes
-              ));
-          else if (null !== workInProgress.memoizedState)
-            (workInProgress.child = current.child),
-              (workInProgress.flags |= 128),
-              (workInProgress = null);
-          else
-            throw Error(
-              "Client rendering an Activity suspended it again. This is a bug in React."
-            );
-        else if (
-          (warnIfHydrating(),
-          0 !== (renderLanes & 536870912) &&
-            markRenderDerivedCause(workInProgress),
-          didReceiveUpdate ||
-            propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-          (didSuspend = 0 !== (renderLanes & current.childLanes)),
-          didReceiveUpdate || didSuspend)
-        ) {
-          nextProps = workInProgressRoot;
-          if (
-            null !== nextProps &&
-            ((activityInstance = getBumpedLaneForHydration(
-              nextProps,
-              renderLanes
-            )),
-            0 !== activityInstance && activityInstance !== prevState.retryLane)
-          )
-            throw (
-              ((prevState.retryLane = activityInstance),
-              enqueueConcurrentRenderForLane(current, activityInstance),
-              scheduleUpdateOnFiber(nextProps, current, activityInstance),
-              SelectiveHydrationException)
-            );
-          renderDidSuspendDelayIfPossible();
-          workInProgress = retryActivityComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        } else
-          (current = prevState.treeContext),
-            (nextHydratableInstance = getNextHydratable(
-              activityInstance.nextSibling
-            )),
-            (hydrationParentFiber = workInProgress),
-            (isHydrating = !0),
-            (hydrationErrors = null),
-            (didSuspendOrErrorDEV = !1),
-            (hydrationDiffRootDEV = null),
-            (rootOrSingletonContext = !1),
-            null !== current &&
-              restoreSuspendedTreeContext(workInProgress, current),
-            (workInProgress = mountActivityChildren(workInProgress, nextProps)),
-            (workInProgress.flags |= 4096);
-        return workInProgress;
-      }
-      prevState = current.child;
-      nextProps = { mode: nextProps.mode, children: nextProps.children };
-      0 !== (renderLanes & 536870912) &&
-        0 !== (renderLanes & current.lanes) &&
-        markRenderDerivedCause(workInProgress);
-      current = createWorkInProgress(prevState, nextProps);
-      current.ref = workInProgress.ref;
-      workInProgress.child = current;
-      current.return = workInProgress;
-      return current;
-    }
-    function markRef(current, workInProgress) {
-      var ref = workInProgress.ref;
-      if (null === ref)
-        null !== current &&
-          null !== current.ref &&
-          (workInProgress.flags |= 4194816);
-      else {
-        if ("function" !== typeof ref && "object" !== typeof ref)
-          throw Error(
-            "Expected ref to be a function, an object returned by React.createRef(), or undefined/null."
-          );
-        if (null === current || current.ref !== ref)
-          workInProgress.flags |= 4194816;
-      }
-    }
-    function updateFunctionComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      if (
-        Component.prototype &&
-        "function" === typeof Component.prototype.render
-      ) {
-        var componentName = getComponentNameFromType(Component) || "Unknown";
-        didWarnAboutBadClass[componentName] ||
-          (console.error(
-            "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-            componentName,
-            componentName
-          ),
-          (didWarnAboutBadClass[componentName] = !0));
-      }
-      workInProgress.mode & StrictLegacyMode &&
-        ReactStrictModeWarnings.recordLegacyContextWarning(
-          workInProgress,
-          null
-        );
-      null === current &&
-        (validateFunctionComponentInDev(workInProgress, workInProgress.type),
-        Component.contextTypes &&
-          ((componentName = getComponentNameFromType(Component) || "Unknown"),
-          didWarnAboutContextTypes[componentName] ||
-            ((didWarnAboutContextTypes[componentName] = !0),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-              componentName
-            ))));
-      prepareToReadContext(workInProgress);
-      Component = renderWithHooks(
-        current,
-        workInProgress,
-        Component,
-        nextProps,
-        void 0,
-        renderLanes
-      );
-      nextProps = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && nextProps && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, Component, renderLanes);
-      return workInProgress.child;
-    }
-    function replayFunctionComponent(
-      current,
-      workInProgress,
-      nextProps,
-      Component,
-      secondArg,
-      renderLanes
-    ) {
-      prepareToReadContext(workInProgress);
-      hookTypesUpdateIndexDev = -1;
-      ignorePreviousDependencies =
-        null !== current && current.type !== workInProgress.type;
-      workInProgress.updateQueue = null;
-      nextProps = renderWithHooksAgain(
-        workInProgress,
-        Component,
-        nextProps,
-        secondArg
-      );
-      finishRenderingHooks(current, workInProgress);
-      Component = checkDidRenderIdHook();
-      if (null !== current && !didReceiveUpdate)
-        return (
-          bailoutHooks(current, workInProgress, renderLanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-      isHydrating && Component && pushMaterializedTreeId(workInProgress);
-      workInProgress.flags |= 1;
-      reconcileChildren(current, workInProgress, nextProps, renderLanes);
-      return workInProgress.child;
-    }
-    function updateClassComponent(
-      current,
-      workInProgress,
-      Component,
-      nextProps,
-      renderLanes
-    ) {
-      switch (shouldErrorImpl(workInProgress)) {
-        case !1:
-          var _instance = workInProgress.stateNode,
-            state = new workInProgress.type(
-              workInProgress.memoizedProps,
-              _instance.context
-            ).state;
-          _instance.updater.enqueueSetState(_instance, state, null);
-          break;
-        case !0:
-          workInProgress.flags |= 128;
-          workInProgress.flags |= 65536;
-          _instance = Error("Simulated error coming from DevTools");
-          var lane = renderLanes & -renderLanes;
-          workInProgress.lanes |= lane;
-          state = workInProgressRoot;
-          if (null === state)
-            throw Error(
-              "Expected a work-in-progress root. This is a bug in React. Please file an issue."
-            );
-          lane = createClassErrorUpdate(lane);
-          initializeClassErrorUpdate(
-            lane,
-            state,
-            workInProgress,
-            createCapturedValueAtFiber(_instance, workInProgress)
-          );
-          enqueueCapturedUpdate(workInProgress, lane);
-      }
-      prepareToReadContext(workInProgress);
-      if (null === workInProgress.stateNode) {
-        state = emptyContextObject;
-        _instance = Component.contextType;
-        "contextType" in Component &&
-          null !== _instance &&
-          (void 0 === _instance || _instance.$$typeof !== REACT_CONTEXT_TYPE) &&
-          !didWarnAboutInvalidateContextType.has(Component) &&
-          (didWarnAboutInvalidateContextType.add(Component),
-          (lane =
-            void 0 === _instance
-              ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-              : "object" !== typeof _instance
-                ? " However, it is set to a " + typeof _instance + "."
-                : _instance.$$typeof === REACT_CONSUMER_TYPE
-                  ? " Did you accidentally pass the Context.Consumer instead?"
-                  : " However, it is set to an object with keys {" +
-                    Object.keys(_instance).join(", ") +
-                    "}."),
-          console.error(
-            "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-            getComponentNameFromType(Component) || "Component",
-            lane
-          ));
-        "object" === typeof _instance &&
-          null !== _instance &&
-          (state = readContext(_instance));
-        _instance = new Component(nextProps, state);
-        if (workInProgress.mode & StrictLegacyMode) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            _instance = new Component(nextProps, state);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        state = workInProgress.memoizedState =
-          null !== _instance.state && void 0 !== _instance.state
-            ? _instance.state
-            : null;
-        _instance.updater = classComponentUpdater;
-        workInProgress.stateNode = _instance;
-        _instance._reactInternals = workInProgress;
-        _instance._reactInternalInstance = fakeInternalInstance;
-        "function" === typeof Component.getDerivedStateFromProps &&
-          null === state &&
-          ((state = getComponentNameFromType(Component) || "Component"),
-          didWarnAboutUninitializedState.has(state) ||
-            (didWarnAboutUninitializedState.add(state),
-            console.error(
-              "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-              state,
-              null === _instance.state ? "null" : "undefined",
-              state
-            )));
-        if (
-          "function" === typeof Component.getDerivedStateFromProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate
-        ) {
-          var foundWillUpdateName = (lane = state = null);
-          "function" === typeof _instance.componentWillMount &&
-          !0 !== _instance.componentWillMount.__suppressDeprecationWarning
-            ? (state = "componentWillMount")
-            : "function" === typeof _instance.UNSAFE_componentWillMount &&
-              (state = "UNSAFE_componentWillMount");
-          "function" === typeof _instance.componentWillReceiveProps &&
-          !0 !==
-            _instance.componentWillReceiveProps.__suppressDeprecationWarning
-            ? (lane = "componentWillReceiveProps")
-            : "function" ===
-                typeof _instance.UNSAFE_componentWillReceiveProps &&
-              (lane = "UNSAFE_componentWillReceiveProps");
-          "function" === typeof _instance.componentWillUpdate &&
-          !0 !== _instance.componentWillUpdate.__suppressDeprecationWarning
-            ? (foundWillUpdateName = "componentWillUpdate")
-            : "function" === typeof _instance.UNSAFE_componentWillUpdate &&
-              (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-          if (null !== state || null !== lane || null !== foundWillUpdateName) {
-            _instance = getComponentNameFromType(Component) || "Component";
-            var newApiName =
-              "function" === typeof Component.getDerivedStateFromProps
-                ? "getDerivedStateFromProps()"
-                : "getSnapshotBeforeUpdate()";
-            didWarnAboutLegacyLifecyclesAndDerivedState.has(_instance) ||
-              (didWarnAboutLegacyLifecyclesAndDerivedState.add(_instance),
-              console.error(
-                "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                _instance,
-                newApiName,
-                null !== state ? "\n  " + state : "",
-                null !== lane ? "\n  " + lane : "",
-                null !== foundWillUpdateName ? "\n  " + foundWillUpdateName : ""
-              ));
-          }
-        }
-        _instance = workInProgress.stateNode;
-        state = getComponentNameFromType(Component) || "Component";
-        _instance.render ||
-          (Component.prototype &&
-          "function" === typeof Component.prototype.render
-            ? console.error(
-                "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                state
-              )
-            : console.error(
-                "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                state
-              ));
-        !_instance.getInitialState ||
-          _instance.getInitialState.isReactClassApproved ||
-          _instance.state ||
-          console.error(
-            "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-            state
-          );
-        _instance.getDefaultProps &&
-          !_instance.getDefaultProps.isReactClassApproved &&
-          console.error(
-            "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-            state
-          );
-        _instance.contextType &&
-          console.error(
-            "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-            state
-          );
-        Component.childContextTypes &&
-          !didWarnAboutChildContextTypes.has(Component) &&
-          (didWarnAboutChildContextTypes.add(Component),
-          console.error(
-            "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-            state
-          ));
-        Component.contextTypes &&
-          !didWarnAboutContextTypes$1.has(Component) &&
-          (didWarnAboutContextTypes$1.add(Component),
-          console.error(
-            "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-            state
-          ));
-        "function" === typeof _instance.componentShouldUpdate &&
-          console.error(
-            "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-            state
-          );
-        Component.prototype &&
-          Component.prototype.isPureReactComponent &&
-          "undefined" !== typeof _instance.shouldComponentUpdate &&
-          console.error(
-            "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-            getComponentNameFromType(Component) || "A pure component"
-          );
-        "function" === typeof _instance.componentDidUnmount &&
-          console.error(
-            "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-            state
-          );
-        "function" === typeof _instance.componentDidReceiveProps &&
-          console.error(
-            "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-            state
-          );
-        "function" === typeof _instance.componentWillRecieveProps &&
-          console.error(
-            "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-            state
-          );
-        "function" === typeof _instance.UNSAFE_componentWillRecieveProps &&
-          console.error(
-            "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-            state
-          );
-        lane = _instance.props !== nextProps;
-        void 0 !== _instance.props &&
-          lane &&
-          console.error(
-            "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-            state
-          );
-        _instance.defaultProps &&
-          console.error(
-            "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-            state,
-            state
-          );
-        "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-          "function" === typeof _instance.componentDidUpdate ||
-          didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(Component) ||
-          (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(Component),
-          console.error(
-            "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-            getComponentNameFromType(Component)
-          ));
-        "function" === typeof _instance.getDerivedStateFromProps &&
-          console.error(
-            "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-            state
-          );
-        "function" === typeof _instance.getDerivedStateFromError &&
-          console.error(
-            "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-            state
-          );
-        "function" === typeof Component.getSnapshotBeforeUpdate &&
-          console.error(
-            "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-            state
-          );
-        (lane = _instance.state) &&
-          ("object" !== typeof lane || isArrayImpl(lane)) &&
-          console.error("%s.state: must be set to an object or null", state);
-        "function" === typeof _instance.getChildContext &&
-          "object" !== typeof Component.childContextTypes &&
-          console.error(
-            "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-            state
-          );
-        _instance = workInProgress.stateNode;
-        _instance.props = nextProps;
-        _instance.state = workInProgress.memoizedState;
-        _instance.refs = {};
-        initializeUpdateQueue(workInProgress);
-        state = Component.contextType;
-        _instance.context =
-          "object" === typeof state && null !== state
-            ? readContext(state)
-            : emptyContextObject;
-        _instance.state === nextProps &&
-          ((state = getComponentNameFromType(Component) || "Component"),
-          didWarnAboutDirectlyAssigningPropsToState.has(state) ||
-            (didWarnAboutDirectlyAssigningPropsToState.add(state),
-            console.error(
-              "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-              state
-            )));
-        workInProgress.mode & StrictLegacyMode &&
-          ReactStrictModeWarnings.recordLegacyContextWarning(
-            workInProgress,
-            _instance
-          );
-        ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(
-          workInProgress,
-          _instance
-        );
-        _instance.state = workInProgress.memoizedState;
-        state = Component.getDerivedStateFromProps;
-        "function" === typeof state &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            state,
-            nextProps
-          ),
-          (_instance.state = workInProgress.memoizedState));
-        "function" === typeof Component.getDerivedStateFromProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate ||
-          ("function" !== typeof _instance.UNSAFE_componentWillMount &&
-            "function" !== typeof _instance.componentWillMount) ||
-          ((state = _instance.state),
-          "function" === typeof _instance.componentWillMount &&
-            _instance.componentWillMount(),
-          "function" === typeof _instance.UNSAFE_componentWillMount &&
-            _instance.UNSAFE_componentWillMount(),
-          state !== _instance.state &&
-            (console.error(
-              "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-              getComponentNameFromFiber(workInProgress) || "Component"
-            ),
-            classComponentUpdater.enqueueReplaceState(
-              _instance,
-              _instance.state,
-              null
-            )),
-          processUpdateQueue(workInProgress, nextProps, _instance, renderLanes),
-          suspendIfUpdateReadFromEntangledAsyncAction(),
-          (_instance.state = workInProgress.memoizedState));
-        "function" === typeof _instance.componentDidMount &&
-          (workInProgress.flags |= 4194308);
-        (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-          (workInProgress.flags |= 134217728);
-        _instance = !0;
-      } else if (null === current) {
-        _instance = workInProgress.stateNode;
-        var unresolvedOldProps = workInProgress.memoizedProps;
-        lane = resolveClassComponentProps(Component, unresolvedOldProps);
-        _instance.props = lane;
-        var oldContext = _instance.context;
-        foundWillUpdateName = Component.contextType;
-        state = emptyContextObject;
-        "object" === typeof foundWillUpdateName &&
-          null !== foundWillUpdateName &&
-          (state = readContext(foundWillUpdateName));
-        newApiName = Component.getDerivedStateFromProps;
-        foundWillUpdateName =
-          "function" === typeof newApiName ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate;
-        unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;
-        foundWillUpdateName ||
-          ("function" !== typeof _instance.UNSAFE_componentWillReceiveProps &&
-            "function" !== typeof _instance.componentWillReceiveProps) ||
-          ((unresolvedOldProps || oldContext !== state) &&
-            callComponentWillReceiveProps(
-              workInProgress,
-              _instance,
-              nextProps,
-              state
-            ));
-        hasForceUpdate = !1;
-        var oldState = workInProgress.memoizedState;
-        _instance.state = oldState;
-        processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        oldContext = workInProgress.memoizedState;
-        unresolvedOldProps || oldState !== oldContext || hasForceUpdate
-          ? ("function" === typeof newApiName &&
-              (applyDerivedStateFromProps(
-                workInProgress,
-                Component,
-                newApiName,
-                nextProps
-              ),
-              (oldContext = workInProgress.memoizedState)),
-            (lane =
-              hasForceUpdate ||
-              checkShouldComponentUpdate(
-                workInProgress,
-                Component,
-                lane,
-                nextProps,
-                oldState,
-                oldContext,
-                state
-              ))
-              ? (foundWillUpdateName ||
-                  ("function" !== typeof _instance.UNSAFE_componentWillMount &&
-                    "function" !== typeof _instance.componentWillMount) ||
-                  ("function" === typeof _instance.componentWillMount &&
-                    _instance.componentWillMount(),
-                  "function" === typeof _instance.UNSAFE_componentWillMount &&
-                    _instance.UNSAFE_componentWillMount()),
-                "function" === typeof _instance.componentDidMount &&
-                  (workInProgress.flags |= 4194308),
-                (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-                  (workInProgress.flags |= 134217728))
-              : ("function" === typeof _instance.componentDidMount &&
-                  (workInProgress.flags |= 4194308),
-                (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-                  (workInProgress.flags |= 134217728),
-                (workInProgress.memoizedProps = nextProps),
-                (workInProgress.memoizedState = oldContext)),
-            (_instance.props = nextProps),
-            (_instance.state = oldContext),
-            (_instance.context = state),
-            (_instance = lane))
-          : ("function" === typeof _instance.componentDidMount &&
-              (workInProgress.flags |= 4194308),
-            (workInProgress.mode & StrictEffectsMode) !== NoMode &&
-              (workInProgress.flags |= 134217728),
-            (_instance = !1));
-      } else {
-        _instance = workInProgress.stateNode;
-        cloneUpdateQueue(current, workInProgress);
-        state = workInProgress.memoizedProps;
-        foundWillUpdateName = resolveClassComponentProps(Component, state);
-        _instance.props = foundWillUpdateName;
-        newApiName = workInProgress.pendingProps;
-        oldState = _instance.context;
-        oldContext = Component.contextType;
-        lane = emptyContextObject;
-        "object" === typeof oldContext &&
-          null !== oldContext &&
-          (lane = readContext(oldContext));
-        unresolvedOldProps = Component.getDerivedStateFromProps;
-        (oldContext =
-          "function" === typeof unresolvedOldProps ||
-          "function" === typeof _instance.getSnapshotBeforeUpdate) ||
-          ("function" !== typeof _instance.UNSAFE_componentWillReceiveProps &&
-            "function" !== typeof _instance.componentWillReceiveProps) ||
-          ((state !== newApiName || oldState !== lane) &&
-            callComponentWillReceiveProps(
-              workInProgress,
-              _instance,
-              nextProps,
-              lane
-            ));
-        hasForceUpdate = !1;
-        oldState = workInProgress.memoizedState;
-        _instance.state = oldState;
-        processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        var newState = workInProgress.memoizedState;
-        state !== newApiName ||
-        oldState !== newState ||
-        hasForceUpdate ||
-        (null !== current &&
-          null !== current.dependencies &&
-          checkIfContextChanged(current.dependencies))
-          ? ("function" === typeof unresolvedOldProps &&
-              (applyDerivedStateFromProps(
-                workInProgress,
-                Component,
-                unresolvedOldProps,
-                nextProps
-              ),
-              (newState = workInProgress.memoizedState)),
-            (foundWillUpdateName =
-              hasForceUpdate ||
-              checkShouldComponentUpdate(
-                workInProgress,
-                Component,
-                foundWillUpdateName,
-                nextProps,
-                oldState,
-                newState,
-                lane
-              ) ||
-              (null !== current &&
-                null !== current.dependencies &&
-                checkIfContextChanged(current.dependencies)))
-              ? (oldContext ||
-                  ("function" !== typeof _instance.UNSAFE_componentWillUpdate &&
-                    "function" !== typeof _instance.componentWillUpdate) ||
-                  ("function" === typeof _instance.componentWillUpdate &&
-                    _instance.componentWillUpdate(nextProps, newState, lane),
-                  "function" === typeof _instance.UNSAFE_componentWillUpdate &&
-                    _instance.UNSAFE_componentWillUpdate(
-                      nextProps,
-                      newState,
-                      lane
-                    )),
-                "function" === typeof _instance.componentDidUpdate &&
-                  (workInProgress.flags |= 4),
-                "function" === typeof _instance.getSnapshotBeforeUpdate &&
-                  (workInProgress.flags |= 1024))
-              : ("function" !== typeof _instance.componentDidUpdate ||
-                  (state === current.memoizedProps &&
-                    oldState === current.memoizedState) ||
-                  (workInProgress.flags |= 4),
-                "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-                  (state === current.memoizedProps &&
-                    oldState === current.memoizedState) ||
-                  (workInProgress.flags |= 1024),
-                (workInProgress.memoizedProps = nextProps),
-                (workInProgress.memoizedState = newState)),
-            (_instance.props = nextProps),
-            (_instance.state = newState),
-            (_instance.context = lane),
-            (_instance = foundWillUpdateName))
-          : ("function" !== typeof _instance.componentDidUpdate ||
-              (state === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 4),
-            "function" !== typeof _instance.getSnapshotBeforeUpdate ||
-              (state === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 1024),
-            (_instance = !1));
-      }
-      lane = _instance;
-      markRef(current, workInProgress);
-      state = 0 !== (workInProgress.flags & 128);
-      if (lane || state) {
-        lane = workInProgress.stateNode;
-        setCurrentFiber(workInProgress);
-        if (state && "function" !== typeof Component.getDerivedStateFromError)
-          (Component = null), (profilerStartTime = -1);
-        else if (
-          ((Component = callRenderInDEV(lane)),
-          workInProgress.mode & StrictLegacyMode)
-        ) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            callRenderInDEV(lane);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-        workInProgress.flags |= 1;
-        null !== current && state
-          ? ((workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              current.child,
-              null,
-              renderLanes
-            )),
-            (workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              null,
-              Component,
-              renderLanes
-            )))
-          : reconcileChildren(current, workInProgress, Component, renderLanes);
-        workInProgress.memoizedState = lane.state;
-        current = workInProgress.child;
-      } else
-        current = bailoutOnAlreadyFinishedWork(
-          current,
-          workInProgress,
-          renderLanes
-        );
-      renderLanes = workInProgress.stateNode;
-      _instance &&
-        renderLanes.props !== nextProps &&
-        (didWarnAboutReassigningProps ||
-          console.error(
-            "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-            getComponentNameFromFiber(workInProgress) || "a component"
-          ),
-        (didWarnAboutReassigningProps = !0));
-      return current;
-    }
-    function mountHostRootWithoutHydrating(
-      current,
-      workInProgress,
-      nextChildren,
-      renderLanes
-    ) {
-      resetHydrationState();
-      workInProgress.flags |= 256;
-      reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-      return workInProgress.child;
-    }
-    function validateFunctionComponentInDev(workInProgress, Component) {
-      Component &&
-        Component.childContextTypes &&
-        console.error(
-          "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-          Component.displayName || Component.name || "Component"
-        );
-      "function" === typeof Component.getDerivedStateFromProps &&
-        ((workInProgress = getComponentNameFromType(Component) || "Unknown"),
-        didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] ||
-          (console.error(
-            "%s: Function components do not support getDerivedStateFromProps.",
-            workInProgress
-          ),
-          (didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] =
-            !0)));
-      "object" === typeof Component.contextType &&
-        null !== Component.contextType &&
-        ((Component = getComponentNameFromType(Component) || "Unknown"),
-        didWarnAboutContextTypeOnFunctionComponent[Component] ||
-          (console.error(
-            "%s: Function components do not support contextType.",
-            Component
-          ),
-          (didWarnAboutContextTypeOnFunctionComponent[Component] = !0)));
-    }
-    function mountSuspenseOffscreenState(renderLanes) {
-      return { baseLanes: renderLanes, cachePool: getSuspendedCache() };
-    }
-    function getRemainingWorkInPrimaryTree(
-      current,
-      primaryTreeDidDefer,
-      renderLanes
-    ) {
-      current = null !== current ? current.childLanes & ~renderLanes : 0;
-      primaryTreeDidDefer && (current |= workInProgressDeferredLane);
-      return current;
-    }
-    function updateSuspenseComponent(current, workInProgress, renderLanes) {
-      var JSCompiler_object_inline_digest_2729;
-      var JSCompiler_object_inline_stack_2730 = workInProgress.pendingProps;
-      shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128);
-      var JSCompiler_object_inline_message_2728 = !1;
-      var didSuspend = 0 !== (workInProgress.flags & 128);
-      (JSCompiler_object_inline_digest_2729 = didSuspend) ||
-        (JSCompiler_object_inline_digest_2729 =
-          null !== current && null === current.memoizedState
-            ? !1
-            : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback));
-      JSCompiler_object_inline_digest_2729 &&
-        ((JSCompiler_object_inline_message_2728 = !0),
-        (workInProgress.flags &= -129));
-      JSCompiler_object_inline_digest_2729 = 0 !== (workInProgress.flags & 32);
-      workInProgress.flags &= -33;
-      if (null === current) {
-        if (isHydrating) {
-          JSCompiler_object_inline_message_2728
-            ? pushPrimaryTreeSuspenseHandler(workInProgress)
-            : reuseSuspenseHandlerOnStack(workInProgress);
-          (current = nextHydratableInstance)
-            ? ((renderLanes = canHydrateHydrationBoundary(
-                current,
-                rootOrSingletonContext
-              )),
-              (renderLanes =
-                null !== renderLanes && renderLanes.data !== ACTIVITY_START_DATA
-                  ? renderLanes
-                  : null),
-              null !== renderLanes &&
-                ((JSCompiler_object_inline_digest_2729 = {
-                  dehydrated: renderLanes,
-                  treeContext: getSuspendedTreeContext(),
-                  retryLane: 536870912,
-                  hydrationErrors: null
-                }),
-                (workInProgress.memoizedState =
-                  JSCompiler_object_inline_digest_2729),
-                (JSCompiler_object_inline_digest_2729 =
-                  createFiberFromDehydratedFragment(renderLanes)),
-                (JSCompiler_object_inline_digest_2729.return = workInProgress),
-                (workInProgress.child = JSCompiler_object_inline_digest_2729),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null)))
-            : (renderLanes = null);
-          if (null === renderLanes)
-            throw (
-              (warnNonHydratedInstance(workInProgress, current),
-              throwOnHydrationMismatch(workInProgress))
-            );
-          isSuspenseInstanceFallback(renderLanes)
-            ? (workInProgress.lanes = 32)
-            : (workInProgress.lanes = 536870912);
-          return null;
-        }
-        var nextPrimaryChildren = JSCompiler_object_inline_stack_2730.children;
-        JSCompiler_object_inline_stack_2730 =
-          JSCompiler_object_inline_stack_2730.fallback;
-        if (JSCompiler_object_inline_message_2728) {
-          reuseSuspenseHandlerOnStack(workInProgress);
-          var mode = workInProgress.mode;
-          nextPrimaryChildren = mountWorkInProgressOffscreenFiber(
-            { mode: "hidden", children: nextPrimaryChildren },
-            mode
-          );
-          JSCompiler_object_inline_stack_2730 = createFiberFromFragment(
-            JSCompiler_object_inline_stack_2730,
-            mode,
-            renderLanes,
-            null
-          );
-          nextPrimaryChildren.return = workInProgress;
-          JSCompiler_object_inline_stack_2730.return = workInProgress;
-          nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2730;
-          workInProgress.child = nextPrimaryChildren;
-          JSCompiler_object_inline_stack_2730 = workInProgress.child;
-          JSCompiler_object_inline_stack_2730.memoizedState =
-            mountSuspenseOffscreenState(renderLanes);
-          JSCompiler_object_inline_stack_2730.childLanes =
-            getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_object_inline_digest_2729,
-              renderLanes
-            );
-          workInProgress.memoizedState = SUSPENDED_MARKER;
-          return bailoutOffscreenComponent(
-            null,
-            JSCompiler_object_inline_stack_2730
-          );
-        }
-        pushPrimaryTreeSuspenseHandler(workInProgress);
-        return mountSuspensePrimaryChildren(
-          workInProgress,
-          nextPrimaryChildren
-        );
-      }
-      var prevState = current.memoizedState;
-      if (null !== prevState) {
-        var JSCompiler_object_inline_componentStack_2731 = prevState.dehydrated;
-        if (null !== JSCompiler_object_inline_componentStack_2731) {
-          if (didSuspend)
-            workInProgress.flags & 256
-              ? (pushPrimaryTreeSuspenseHandler(workInProgress),
-                (workInProgress.flags &= -257),
-                (workInProgress = retrySuspenseComponentWithoutHydrating(
-                  current,
-                  workInProgress,
-                  renderLanes
-                )))
-              : null !== workInProgress.memoizedState
-                ? (reuseSuspenseHandlerOnStack(workInProgress),
-                  (workInProgress.child = current.child),
-                  (workInProgress.flags |= 128),
-                  (workInProgress = null))
-                : (reuseSuspenseHandlerOnStack(workInProgress),
-                  (nextPrimaryChildren =
-                    JSCompiler_object_inline_stack_2730.fallback),
-                  (mode = workInProgress.mode),
-                  (JSCompiler_object_inline_stack_2730 =
-                    mountWorkInProgressOffscreenFiber(
-                      {
-                        mode: "visible",
-                        children: JSCompiler_object_inline_stack_2730.children
-                      },
-                      mode
-                    )),
-                  (nextPrimaryChildren = createFiberFromFragment(
-                    nextPrimaryChildren,
-                    mode,
-                    renderLanes,
-                    null
-                  )),
-                  (nextPrimaryChildren.flags |= 2),
-                  (JSCompiler_object_inline_stack_2730.return = workInProgress),
-                  (nextPrimaryChildren.return = workInProgress),
-                  (JSCompiler_object_inline_stack_2730.sibling =
-                    nextPrimaryChildren),
-                  (workInProgress.child = JSCompiler_object_inline_stack_2730),
-                  reconcileChildFibers(
-                    workInProgress,
-                    current.child,
-                    null,
-                    renderLanes
-                  ),
-                  (JSCompiler_object_inline_stack_2730 = workInProgress.child),
-                  (JSCompiler_object_inline_stack_2730.memoizedState =
-                    mountSuspenseOffscreenState(renderLanes)),
-                  (JSCompiler_object_inline_stack_2730.childLanes =
-                    getRemainingWorkInPrimaryTree(
-                      current,
-                      JSCompiler_object_inline_digest_2729,
-                      renderLanes
-                    )),
-                  (workInProgress.memoizedState = SUSPENDED_MARKER),
-                  (workInProgress = bailoutOffscreenComponent(
-                    null,
-                    JSCompiler_object_inline_stack_2730
-                  )));
-          else if (
-            (pushPrimaryTreeSuspenseHandler(workInProgress),
-            warnIfHydrating(),
-            0 !== (renderLanes & 536870912) &&
-              markRenderDerivedCause(workInProgress),
-            isSuspenseInstanceFallback(
-              JSCompiler_object_inline_componentStack_2731
-            ))
-          ) {
-            JSCompiler_object_inline_digest_2729 =
-              JSCompiler_object_inline_componentStack_2731.nextSibling &&
-              JSCompiler_object_inline_componentStack_2731.nextSibling.dataset;
-            if (JSCompiler_object_inline_digest_2729) {
-              nextPrimaryChildren = JSCompiler_object_inline_digest_2729.dgst;
-              var message = JSCompiler_object_inline_digest_2729.msg;
-              mode = JSCompiler_object_inline_digest_2729.stck;
-              var componentStack = JSCompiler_object_inline_digest_2729.cstck;
-            }
-            JSCompiler_object_inline_message_2728 = message;
-            JSCompiler_object_inline_digest_2729 = nextPrimaryChildren;
-            JSCompiler_object_inline_stack_2730 = mode;
-            JSCompiler_object_inline_componentStack_2731 = componentStack;
-            nextPrimaryChildren = JSCompiler_object_inline_message_2728;
-            mode = JSCompiler_object_inline_componentStack_2731;
-            nextPrimaryChildren = nextPrimaryChildren
-              ? Error(nextPrimaryChildren)
-              : Error(
-                  "The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering."
-                );
-            nextPrimaryChildren.stack =
-              JSCompiler_object_inline_stack_2730 || "";
-            nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2729;
-            JSCompiler_object_inline_digest_2729 =
-              void 0 === mode ? null : mode;
-            JSCompiler_object_inline_stack_2730 = {
-              value: nextPrimaryChildren,
-              source: null,
-              stack: JSCompiler_object_inline_digest_2729
-            };
-            "string" === typeof JSCompiler_object_inline_digest_2729 &&
-              CapturedStacks.set(
-                nextPrimaryChildren,
-                JSCompiler_object_inline_stack_2730
-              );
-            queueHydrationError(JSCompiler_object_inline_stack_2730);
-            workInProgress = retrySuspenseComponentWithoutHydrating(
-              current,
-              workInProgress,
-              renderLanes
-            );
-          } else if (
-            (didReceiveUpdate ||
-              propagateParentContextChanges(
-                current,
-                workInProgress,
-                renderLanes,
-                !1
-              ),
-            (JSCompiler_object_inline_digest_2729 =
-              0 !== (renderLanes & current.childLanes)),
-            didReceiveUpdate || JSCompiler_object_inline_digest_2729)
-          ) {
-            JSCompiler_object_inline_digest_2729 = workInProgressRoot;
-            if (
-              null !== JSCompiler_object_inline_digest_2729 &&
-              ((JSCompiler_object_inline_stack_2730 = getBumpedLaneForHydration(
-                JSCompiler_object_inline_digest_2729,
-                renderLanes
-              )),
-              0 !== JSCompiler_object_inline_stack_2730 &&
-                JSCompiler_object_inline_stack_2730 !== prevState.retryLane)
-            )
-              throw (
-                ((prevState.retryLane = JSCompiler_object_inline_stack_2730),
-                enqueueConcurrentRenderForLane(
-                  current,
-                  JSCompiler_object_inline_stack_2730
-                ),
-                scheduleUpdateOnFiber(
-                  JSCompiler_object_inline_digest_2729,
-                  current,
-                  JSCompiler_object_inline_stack_2730
-                ),
-                SelectiveHydrationException)
-              );
-            isSuspenseInstancePending(
-              JSCompiler_object_inline_componentStack_2731
-            ) || renderDidSuspendDelayIfPossible();
-            workInProgress = retrySuspenseComponentWithoutHydrating(
-              current,
-              workInProgress,
-              renderLanes
-            );
-          } else
-            isSuspenseInstancePending(
-              JSCompiler_object_inline_componentStack_2731
-            )
-              ? ((workInProgress.flags |= 192),
-                (workInProgress.child = current.child),
-                (workInProgress = null))
-              : ((current = prevState.treeContext),
-                (nextHydratableInstance = getNextHydratable(
-                  JSCompiler_object_inline_componentStack_2731.nextSibling
-                )),
-                (hydrationParentFiber = workInProgress),
-                (isHydrating = !0),
-                (hydrationErrors = null),
-                (didSuspendOrErrorDEV = !1),
-                (hydrationDiffRootDEV = null),
-                (rootOrSingletonContext = !1),
-                null !== current &&
-                  restoreSuspendedTreeContext(workInProgress, current),
-                (workInProgress = mountSuspensePrimaryChildren(
-                  workInProgress,
-                  JSCompiler_object_inline_stack_2730.children
-                )),
-                (workInProgress.flags |= 4096));
-          return workInProgress;
-        }
-      }
-      if (JSCompiler_object_inline_message_2728)
-        return (
-          reuseSuspenseHandlerOnStack(workInProgress),
-          (nextPrimaryChildren = JSCompiler_object_inline_stack_2730.fallback),
-          (mode = workInProgress.mode),
-          (componentStack = current.child),
-          (JSCompiler_object_inline_componentStack_2731 =
-            componentStack.sibling),
-          (JSCompiler_object_inline_stack_2730 = createWorkInProgress(
-            componentStack,
-            {
-              mode: "hidden",
-              children: JSCompiler_object_inline_stack_2730.children
-            }
-          )),
-          (JSCompiler_object_inline_stack_2730.subtreeFlags =
-            componentStack.subtreeFlags & 65011712),
-          null !== JSCompiler_object_inline_componentStack_2731
-            ? (nextPrimaryChildren = createWorkInProgress(
-                JSCompiler_object_inline_componentStack_2731,
-                nextPrimaryChildren
-              ))
-            : ((nextPrimaryChildren = createFiberFromFragment(
-                nextPrimaryChildren,
-                mode,
-                renderLanes,
-                null
-              )),
-              (nextPrimaryChildren.flags |= 2)),
-          (nextPrimaryChildren.return = workInProgress),
-          (JSCompiler_object_inline_stack_2730.return = workInProgress),
-          (JSCompiler_object_inline_stack_2730.sibling = nextPrimaryChildren),
-          (workInProgress.child = JSCompiler_object_inline_stack_2730),
-          bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2730),
-          (JSCompiler_object_inline_stack_2730 = workInProgress.child),
-          (nextPrimaryChildren = current.child.memoizedState),
-          null === nextPrimaryChildren
-            ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))
-            : ((mode = nextPrimaryChildren.cachePool),
-              null !== mode
-                ? ((componentStack = CacheContext._currentValue),
-                  (mode =
-                    mode.parent !== componentStack
-                      ? { parent: componentStack, pool: componentStack }
-                      : mode))
-                : (mode = getSuspendedCache()),
-              (nextPrimaryChildren = {
-                baseLanes: nextPrimaryChildren.baseLanes | renderLanes,
-                cachePool: mode
-              })),
-          (JSCompiler_object_inline_stack_2730.memoizedState =
-            nextPrimaryChildren),
-          (JSCompiler_object_inline_stack_2730.childLanes =
-            getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_object_inline_digest_2729,
-              renderLanes
-            )),
-          (workInProgress.memoizedState = SUSPENDED_MARKER),
-          bailoutOffscreenComponent(
-            current.child,
-            JSCompiler_object_inline_stack_2730
-          )
-        );
-      null !== prevState &&
-        (renderLanes & 62914560) === renderLanes &&
-        0 !== (renderLanes & current.lanes) &&
-        markRenderDerivedCause(workInProgress);
-      pushPrimaryTreeSuspenseHandler(workInProgress);
-      renderLanes = current.child;
-      current = renderLanes.sibling;
-      renderLanes = createWorkInProgress(renderLanes, {
-        mode: "visible",
-        children: JSCompiler_object_inline_stack_2730.children
-      });
-      renderLanes.return = workInProgress;
-      renderLanes.sibling = null;
-      null !== current &&
-        ((JSCompiler_object_inline_digest_2729 = workInProgress.deletions),
-        null === JSCompiler_object_inline_digest_2729
-          ? ((workInProgress.deletions = [current]),
-            (workInProgress.flags |= 16))
-          : JSCompiler_object_inline_digest_2729.push(current));
-      workInProgress.child = renderLanes;
-      workInProgress.memoizedState = null;
-      return renderLanes;
-    }
-    function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {
-      primaryChildren = mountWorkInProgressOffscreenFiber(
-        { mode: "visible", children: primaryChildren },
-        workInProgress.mode
-      );
-      primaryChildren.return = workInProgress;
-      return (workInProgress.child = primaryChildren);
-    }
-    function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {
-      offscreenProps = createFiber(22, offscreenProps, null, mode);
-      offscreenProps.lanes = 0;
-      return offscreenProps;
-    }
-    function retrySuspenseComponentWithoutHydrating(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-      current = mountSuspensePrimaryChildren(
-        workInProgress,
-        workInProgress.pendingProps.children
-      );
-      current.flags |= 2;
-      workInProgress.memoizedState = null;
-      return current;
-    }
-    function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {
-      fiber.lanes |= renderLanes;
-      var alternate = fiber.alternate;
-      null !== alternate && (alternate.lanes |= renderLanes);
-      scheduleContextWorkOnParentPath(
-        fiber.return,
-        renderLanes,
-        propagationRoot
-      );
-    }
-    function initSuspenseListRenderState(
-      workInProgress,
-      isBackwards,
-      tail,
-      lastContentRow,
-      tailMode,
-      treeForkCount
-    ) {
-      var renderState = workInProgress.memoizedState;
-      null === renderState
-        ? (workInProgress.memoizedState = {
-            isBackwards: isBackwards,
-            rendering: null,
-            renderingStartTime: 0,
-            last: lastContentRow,
-            tail: tail,
-            tailMode: tailMode,
-            treeForkCount: treeForkCount
-          })
-        : ((renderState.isBackwards = isBackwards),
-          (renderState.rendering = null),
-          (renderState.renderingStartTime = 0),
-          (renderState.last = lastContentRow),
-          (renderState.tail = tail),
-          (renderState.tailMode = tailMode),
-          (renderState.treeForkCount = treeForkCount));
-    }
-    function updateSuspenseListComponent(current, workInProgress, renderLanes) {
-      var nextProps = workInProgress.pendingProps,
-        revealOrder = nextProps.revealOrder,
-        tailMode = nextProps.tail,
-        newChildren = nextProps.children,
-        suspenseContext = suspenseStackCursor.current;
-      (nextProps = 0 !== (suspenseContext & ForceSuspenseFallback))
-        ? ((suspenseContext =
-            (suspenseContext & SubtreeSuspenseContextMask) |
-            ForceSuspenseFallback),
-          (workInProgress.flags |= 128))
-        : (suspenseContext &= SubtreeSuspenseContextMask);
-      push(suspenseStackCursor, suspenseContext, workInProgress);
-      suspenseContext = null == revealOrder ? "null" : revealOrder;
-      if (
-        "forwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder &&
-        "together" !== revealOrder &&
-        "independent" !== revealOrder &&
-        !didWarnAboutRevealOrder[suspenseContext]
-      )
-        if (
-          ((didWarnAboutRevealOrder[suspenseContext] = !0), null == revealOrder)
-        )
-          console.error(
-            'The default for the <SuspenseList revealOrder="..."> prop is changing. To be future compatible you must explictly specify either "independent" (the current default), "together", "forwards" or "legacy_unstable-backwards".'
-          );
-        else if ("backwards" === revealOrder)
-          console.error(
-            'The rendering order of <SuspenseList revealOrder="backwards"> is changing. To be future compatible you must specify revealOrder="legacy_unstable-backwards" instead.'
-          );
-        else if ("string" === typeof revealOrder)
-          switch (revealOrder.toLowerCase()) {
-            case "together":
-            case "forwards":
-            case "backwards":
-            case "independent":
-              console.error(
-                '"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.',
-                revealOrder,
-                revealOrder.toLowerCase()
-              );
-              break;
-            case "forward":
-            case "backward":
-              console.error(
-                '"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.',
-                revealOrder,
-                revealOrder.toLowerCase()
-              );
-              break;
-            default:
-              console.error(
-                '"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
-                revealOrder
-              );
-          }
-        else
-          console.error(
-            '%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
-            revealOrder
-          );
-      suspenseContext = null == tailMode ? "null" : tailMode;
-      if (!didWarnAboutTailOptions[suspenseContext])
-        if (null == tailMode) {
-          if (
-            "forwards" === revealOrder ||
-            "backwards" === revealOrder ||
-            "unstable_legacy-backwards" === revealOrder
-          )
-            (didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                'The default for the <SuspenseList tail="..."> prop is changing. To be future compatible you must explictly specify either "visible" (the current default), "collapsed" or "hidden".'
-              );
-        } else
-          "visible" !== tailMode &&
-          "collapsed" !== tailMode &&
-          "hidden" !== tailMode
-            ? ((didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                '"%s" is not a supported value for tail on <SuspenseList />. Did you mean "visible", "collapsed" or "hidden"?',
-                tailMode
-              ))
-            : "forwards" !== revealOrder &&
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder &&
-              ((didWarnAboutTailOptions[suspenseContext] = !0),
-              console.error(
-                '<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',
-                tailMode
-              ));
-      a: if (
-        ("forwards" === revealOrder ||
-          "backwards" === revealOrder ||
-          "unstable_legacy-backwards" === revealOrder) &&
-        void 0 !== newChildren &&
-        null !== newChildren &&
-        !1 !== newChildren
-      )
-        if (isArrayImpl(newChildren))
-          for (
-            suspenseContext = 0;
-            suspenseContext < newChildren.length;
-            suspenseContext++
-          ) {
-            if (
-              !validateSuspenseListNestedChild(
-                newChildren[suspenseContext],
-                suspenseContext
-              )
-            )
-              break a;
-          }
-        else if (
-          ((suspenseContext = getIteratorFn(newChildren)),
-          "function" === typeof suspenseContext)
-        ) {
-          if ((suspenseContext = suspenseContext.call(newChildren)))
-            for (
-              var step = suspenseContext.next(), _i = 0;
-              !step.done;
-              step = suspenseContext.next()
-            ) {
-              if (!validateSuspenseListNestedChild(step.value, _i)) break a;
-              _i++;
-            }
-        } else
-          console.error(
-            'A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',
-            revealOrder
-          );
-      reconcileChildren(current, workInProgress, newChildren, renderLanes);
-      isHydrating
-        ? (warnIfNotHydrating(), (newChildren = treeForkCount))
-        : (newChildren = 0);
-      if (!nextProps && null !== current && 0 !== (current.flags & 128))
-        a: for (current = workInProgress.child; null !== current; ) {
-          if (13 === current.tag)
-            null !== current.memoizedState &&
-              scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-          else if (19 === current.tag)
-            scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-          else if (null !== current.child) {
-            current.child.return = current;
-            current = current.child;
-            continue;
-          }
-          if (current === workInProgress) break a;
-          for (; null === current.sibling; ) {
-            if (null === current.return || current.return === workInProgress)
-              break a;
-            current = current.return;
-          }
-          current.sibling.return = current.return;
-          current = current.sibling;
-        }
-      switch (revealOrder) {
-        case "forwards":
-          renderLanes = workInProgress.child;
-          for (revealOrder = null; null !== renderLanes; )
-            (current = renderLanes.alternate),
-              null !== current &&
-                null === findFirstSuspended(current) &&
-                (revealOrder = renderLanes),
-              (renderLanes = renderLanes.sibling);
-          renderLanes = revealOrder;
-          null === renderLanes
-            ? ((revealOrder = workInProgress.child),
-              (workInProgress.child = null))
-            : ((revealOrder = renderLanes.sibling),
-              (renderLanes.sibling = null));
-          initSuspenseListRenderState(
-            workInProgress,
-            !1,
-            revealOrder,
-            renderLanes,
-            tailMode,
-            newChildren
-          );
-          break;
-        case "backwards":
-        case "unstable_legacy-backwards":
-          renderLanes = null;
-          revealOrder = workInProgress.child;
-          for (workInProgress.child = null; null !== revealOrder; ) {
-            current = revealOrder.alternate;
-            if (null !== current && null === findFirstSuspended(current)) {
-              workInProgress.child = revealOrder;
-              break;
-            }
-            current = revealOrder.sibling;
-            revealOrder.sibling = renderLanes;
-            renderLanes = revealOrder;
-            revealOrder = current;
-          }
-          initSuspenseListRenderState(
-            workInProgress,
-            !0,
-            renderLanes,
-            null,
-            tailMode,
-            newChildren
-          );
-          break;
-        case "together":
-          initSuspenseListRenderState(
-            workInProgress,
-            !1,
-            null,
-            null,
-            void 0,
-            newChildren
-          );
-          break;
-        default:
-          workInProgress.memoizedState = null;
-      }
-      return workInProgress.child;
-    }
-    function bailoutOnAlreadyFinishedWork(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      null !== current && (workInProgress.dependencies = current.dependencies);
-      profilerStartTime = -1;
-      workInProgressRootSkippedLanes |= workInProgress.lanes;
-      if (0 === (renderLanes & workInProgress.childLanes))
-        if (null !== current) {
-          if (
-            (propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-            0 === (renderLanes & workInProgress.childLanes))
-          )
-            return null;
-        } else return null;
-      if (null !== current && workInProgress.child !== current.child)
-        throw Error("Resuming work not yet implemented.");
-      if (null !== workInProgress.child) {
-        current = workInProgress.child;
-        renderLanes = createWorkInProgress(current, current.pendingProps);
-        workInProgress.child = renderLanes;
-        for (renderLanes.return = workInProgress; null !== current.sibling; )
-          (current = current.sibling),
-            (renderLanes = renderLanes.sibling =
-              createWorkInProgress(current, current.pendingProps)),
-            (renderLanes.return = workInProgress);
-        renderLanes.sibling = null;
-      }
-      return workInProgress.child;
-    }
-    function checkScheduledUpdateOrContext(current, renderLanes) {
-      if (0 !== (current.lanes & renderLanes)) return !0;
-      current = current.dependencies;
-      return null !== current && checkIfContextChanged(current) ? !0 : !1;
-    }
-    function attemptEarlyBailoutIfNoScheduledUpdate(
-      current,
-      workInProgress,
-      renderLanes
-    ) {
-      switch (workInProgress.tag) {
-        case 3:
-          pushHostContainer(
-            workInProgress,
-            workInProgress.stateNode.containerInfo
-          );
-          pushProvider(
-            workInProgress,
-            CacheContext,
-            current.memoizedState.cache
-          );
-          resetHydrationState();
-          break;
-        case 27:
-        case 5:
-          pushHostContext(workInProgress);
-          break;
-        case 4:
-          pushHostContainer(
-            workInProgress,
-            workInProgress.stateNode.containerInfo
-          );
-          break;
-        case 10:
-          pushProvider(
-            workInProgress,
-            workInProgress.type,
-            workInProgress.memoizedProps.value
-          );
-          break;
-        case 12:
-          0 !== (renderLanes & workInProgress.childLanes) &&
-            (workInProgress.flags |= 4);
-          workInProgress.flags |= 2048;
-          var stateNode = workInProgress.stateNode;
-          stateNode.effectDuration = -0;
-          stateNode.passiveEffectDuration = -0;
-          break;
-        case 31:
-          if (null !== workInProgress.memoizedState)
-            return (
-              (workInProgress.flags |= 128),
-              pushDehydratedActivitySuspenseHandler(workInProgress),
-              null
-            );
-          break;
-        case 13:
-          stateNode = workInProgress.memoizedState;
-          if (null !== stateNode) {
-            if (null !== stateNode.dehydrated)
-              return (
-                pushPrimaryTreeSuspenseHandler(workInProgress),
-                (workInProgress.flags |= 128),
-                null
-              );
-            if (0 !== (renderLanes & workInProgress.child.childLanes))
-              return updateSuspenseComponent(
-                current,
-                workInProgress,
-                renderLanes
-              );
-            pushPrimaryTreeSuspenseHandler(workInProgress);
-            current = bailoutOnAlreadyFinishedWork(
-              current,
-              workInProgress,
-              renderLanes
-            );
-            return null !== current ? current.sibling : null;
-          }
-          pushPrimaryTreeSuspenseHandler(workInProgress);
-          break;
-        case 19:
-          var didSuspendBefore = 0 !== (current.flags & 128);
-          stateNode = 0 !== (renderLanes & workInProgress.childLanes);
-          stateNode ||
-            (propagateParentContextChanges(
-              current,
-              workInProgress,
-              renderLanes,
-              !1
-            ),
-            (stateNode = 0 !== (renderLanes & workInProgress.childLanes)));
-          if (didSuspendBefore) {
-            if (stateNode)
-              return updateSuspenseListComponent(
-                current,
-                workInProgress,
-                renderLanes
-              );
-            workInProgress.flags |= 128;
-          }
-          didSuspendBefore = workInProgress.memoizedState;
-          null !== didSuspendBefore &&
-            ((didSuspendBefore.rendering = null),
-            (didSuspendBefore.tail = null),
-            (didSuspendBefore.lastEffect = null));
-          push(
-            suspenseStackCursor,
-            suspenseStackCursor.current,
-            workInProgress
-          );
-          if (stateNode) break;
-          else return null;
-        case 22:
-          return (
-            (workInProgress.lanes = 0),
-            updateOffscreenComponent(
-              current,
-              workInProgress,
-              renderLanes,
-              workInProgress.pendingProps
-            )
-          );
-        case 24:
-          pushProvider(
-            workInProgress,
-            CacheContext,
-            current.memoizedState.cache
-          );
-      }
-      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-    }
-    function beginWork(current, workInProgress, renderLanes) {
-      if (workInProgress._debugNeedsRemount && null !== current) {
-        renderLanes = createFiberFromTypeAndProps(
-          workInProgress.type,
-          workInProgress.key,
-          workInProgress.pendingProps,
-          workInProgress._debugOwner || null,
-          workInProgress.mode,
-          workInProgress.lanes
-        );
-        renderLanes._debugStack = workInProgress._debugStack;
-        renderLanes._debugTask = workInProgress._debugTask;
-        var returnFiber = workInProgress.return;
-        if (null === returnFiber) throw Error("Cannot swap the root fiber.");
-        current.alternate = null;
-        workInProgress.alternate = null;
-        renderLanes.index = workInProgress.index;
-        renderLanes.sibling = workInProgress.sibling;
-        renderLanes.return = workInProgress.return;
-        renderLanes.ref = workInProgress.ref;
-        renderLanes._debugInfo = workInProgress._debugInfo;
-        if (workInProgress === returnFiber.child)
-          returnFiber.child = renderLanes;
-        else {
-          var prevSibling = returnFiber.child;
-          if (null === prevSibling)
-            throw Error("Expected parent to have a child.");
-          for (; prevSibling.sibling !== workInProgress; )
-            if (((prevSibling = prevSibling.sibling), null === prevSibling))
-              throw Error("Expected to find the previous sibling.");
-          prevSibling.sibling = renderLanes;
-        }
-        workInProgress = returnFiber.deletions;
-        null === workInProgress
-          ? ((returnFiber.deletions = [current]), (returnFiber.flags |= 16))
-          : workInProgress.push(current);
-        renderLanes.flags |= 2;
-        return renderLanes;
-      }
-      if (null !== current)
-        if (
-          current.memoizedProps !== workInProgress.pendingProps ||
-          workInProgress.type !== current.type
-        )
-          didReceiveUpdate = !0;
-        else {
-          if (
-            !checkScheduledUpdateOrContext(current, renderLanes) &&
-            0 === (workInProgress.flags & 128)
-          )
-            return (
-              (didReceiveUpdate = !1),
-              attemptEarlyBailoutIfNoScheduledUpdate(
-                current,
-                workInProgress,
-                renderLanes
-              )
-            );
-          didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;
-        }
-      else {
-        didReceiveUpdate = !1;
-        if ((returnFiber = isHydrating))
-          warnIfNotHydrating(),
-            (returnFiber = 0 !== (workInProgress.flags & 1048576));
-        returnFiber &&
-          ((returnFiber = workInProgress.index),
-          warnIfNotHydrating(),
-          pushTreeId(workInProgress, treeForkCount, returnFiber));
-      }
-      workInProgress.lanes = 0;
-      switch (workInProgress.tag) {
-        case 16:
-          a: if (
-            ((returnFiber = workInProgress.pendingProps),
-            (current = resolveLazy(workInProgress.elementType)),
-            (workInProgress.type = current),
-            "function" === typeof current)
-          )
-            shouldConstruct(current)
-              ? ((returnFiber = resolveClassComponentProps(
-                  current,
-                  returnFiber
-                )),
-                (workInProgress.tag = 1),
-                (workInProgress.type = current =
-                  resolveFunctionForHotReloading(current)),
-                (workInProgress = updateClassComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                )))
-              : ((workInProgress.tag = 0),
-                validateFunctionComponentInDev(workInProgress, current),
-                (workInProgress.type = current =
-                  resolveFunctionForHotReloading(current)),
-                (workInProgress = updateFunctionComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                )));
-          else {
-            if (void 0 !== current && null !== current)
-              if (
-                ((prevSibling = current.$$typeof),
-                prevSibling === REACT_FORWARD_REF_TYPE)
-              ) {
-                workInProgress.tag = 11;
-                workInProgress.type = current =
-                  resolveForwardRefForHotReloading(current);
-                workInProgress = updateForwardRef(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else if (prevSibling === REACT_MEMO_TYPE) {
-                workInProgress.tag = 14;
-                workInProgress = updateMemoComponent(
-                  null,
-                  workInProgress,
-                  current,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              }
-            workInProgress = "";
-            null !== current &&
-              "object" === typeof current &&
-              current.$$typeof === REACT_LAZY_TYPE &&
-              (workInProgress =
-                " Did you wrap a component in React.lazy() more than once?");
-            renderLanes = getComponentNameFromType(current) || current;
-            throw Error(
-              "Element type is invalid. Received a promise that resolves to: " +
-                renderLanes +
-                ". Lazy element type must resolve to a class or function." +
-                workInProgress
-            );
-          }
-          return workInProgress;
-        case 0:
-          return updateFunctionComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 1:
-          return (
-            (returnFiber = workInProgress.type),
-            (prevSibling = resolveClassComponentProps(
-              returnFiber,
-              workInProgress.pendingProps
-            )),
-            updateClassComponent(
-              current,
-              workInProgress,
-              returnFiber,
-              prevSibling,
-              renderLanes
-            )
-          );
-        case 3:
-          a: {
-            pushHostContainer(
-              workInProgress,
-              workInProgress.stateNode.containerInfo
-            );
-            if (null === current)
-              throw Error(
-                "Should have a current fiber. This is a bug in React."
-              );
-            returnFiber = workInProgress.pendingProps;
-            var prevState = workInProgress.memoizedState;
-            prevSibling = prevState.element;
-            cloneUpdateQueue(current, workInProgress);
-            processUpdateQueue(workInProgress, returnFiber, null, renderLanes);
-            var nextState = workInProgress.memoizedState;
-            returnFiber = nextState.cache;
-            pushProvider(workInProgress, CacheContext, returnFiber);
-            returnFiber !== prevState.cache &&
-              propagateContextChanges(
-                workInProgress,
-                [CacheContext],
-                renderLanes,
-                !0
-              );
-            suspendIfUpdateReadFromEntangledAsyncAction();
-            returnFiber = nextState.element;
-            if (prevState.isDehydrated)
-              if (
-                ((prevState = {
-                  element: returnFiber,
-                  isDehydrated: !1,
-                  cache: nextState.cache
-                }),
-                (workInProgress.updateQueue.baseState = prevState),
-                (workInProgress.memoizedState = prevState),
-                workInProgress.flags & 256)
-              ) {
-                workInProgress = mountHostRootWithoutHydrating(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else if (returnFiber !== prevSibling) {
-                prevSibling = createCapturedValueAtFiber(
-                  Error(
-                    "This root received an early update, before anything was able hydrate. Switched the entire root to client rendering."
-                  ),
-                  workInProgress
-                );
-                queueHydrationError(prevSibling);
-                workInProgress = mountHostRootWithoutHydrating(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                );
-                break a;
-              } else {
-                current = workInProgress.stateNode.containerInfo;
-                switch (current.nodeType) {
-                  case 9:
-                    current = current.body;
-                    break;
-                  default:
-                    current =
-                      "HTML" === current.nodeName
-                        ? current.ownerDocument.body
-                        : current;
-                }
-                nextHydratableInstance = getNextHydratable(current.firstChild);
-                hydrationParentFiber = workInProgress;
-                isHydrating = !0;
-                hydrationErrors = null;
-                didSuspendOrErrorDEV = !1;
-                hydrationDiffRootDEV = null;
-                rootOrSingletonContext = !0;
-                renderLanes = mountChildFibers(
-                  workInProgress,
-                  null,
-                  returnFiber,
-                  renderLanes
-                );
-                for (workInProgress.child = renderLanes; renderLanes; )
-                  (renderLanes.flags = (renderLanes.flags & -3) | 4096),
-                    (renderLanes = renderLanes.sibling);
-              }
-            else {
-              resetHydrationState();
-              if (returnFiber === prevSibling) {
-                workInProgress = bailoutOnAlreadyFinishedWork(
-                  current,
-                  workInProgress,
-                  renderLanes
-                );
-                break a;
-              }
-              reconcileChildren(
-                current,
-                workInProgress,
-                returnFiber,
-                renderLanes
-              );
-            }
-            workInProgress = workInProgress.child;
-          }
-          return workInProgress;
-        case 26:
-          return (
-            markRef(current, workInProgress),
-            null === current
-              ? (renderLanes = getResource(
-                  workInProgress.type,
-                  null,
-                  workInProgress.pendingProps,
-                  null
-                ))
-                ? (workInProgress.memoizedState = renderLanes)
-                : isHydrating ||
-                  ((renderLanes = workInProgress.type),
-                  (current = workInProgress.pendingProps),
-                  (returnFiber = requiredContext(
-                    rootInstanceStackCursor.current
-                  )),
-                  (returnFiber =
-                    getOwnerDocumentFromRootContainer(
-                      returnFiber
-                    ).createElement(renderLanes)),
-                  (returnFiber[internalInstanceKey] = workInProgress),
-                  (returnFiber[internalPropsKey] = current),
-                  setInitialProperties(returnFiber, renderLanes, current),
-                  markNodeAsHoistable(returnFiber),
-                  (workInProgress.stateNode = returnFiber))
-              : (workInProgress.memoizedState = getResource(
-                  workInProgress.type,
-                  current.memoizedProps,
-                  workInProgress.pendingProps,
-                  current.memoizedState
-                )),
-            null
-          );
-        case 27:
-          return (
-            pushHostContext(workInProgress),
-            null === current &&
-              isHydrating &&
-              ((returnFiber = requiredContext(rootInstanceStackCursor.current)),
-              (prevSibling = getHostContext()),
-              (returnFiber = workInProgress.stateNode =
-                resolveSingletonInstance(
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  returnFiber,
-                  prevSibling,
-                  !1
-                )),
-              didSuspendOrErrorDEV ||
-                ((prevSibling = diffHydratedProperties(
-                  returnFiber,
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  prevSibling
-                )),
-                null !== prevSibling &&
-                  (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                    prevSibling)),
-              (hydrationParentFiber = workInProgress),
-              (rootOrSingletonContext = !0),
-              (prevSibling = nextHydratableInstance),
-              isSingletonScope(workInProgress.type)
-                ? ((previousHydratableOnEnteringScopedSingleton = prevSibling),
-                  (nextHydratableInstance = getNextHydratable(
-                    returnFiber.firstChild
-                  )))
-                : (nextHydratableInstance = prevSibling)),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            markRef(current, workInProgress),
-            null === current && (workInProgress.flags |= 4194304),
-            workInProgress.child
-          );
-        case 5:
-          return (
-            null === current &&
-              isHydrating &&
-              ((prevState = getHostContext()),
-              (returnFiber = validateDOMNesting(
-                workInProgress.type,
-                prevState.ancestorInfo
-              )),
-              (prevSibling = nextHydratableInstance),
-              (nextState = !prevSibling) ||
-                ((nextState = canHydrateInstance(
-                  prevSibling,
-                  workInProgress.type,
-                  workInProgress.pendingProps,
-                  rootOrSingletonContext
-                )),
-                null !== nextState
-                  ? ((workInProgress.stateNode = nextState),
-                    didSuspendOrErrorDEV ||
-                      ((prevState = diffHydratedProperties(
-                        nextState,
-                        workInProgress.type,
-                        workInProgress.pendingProps,
-                        prevState
-                      )),
-                      null !== prevState &&
-                        (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                          prevState)),
-                    (hydrationParentFiber = workInProgress),
-                    (nextHydratableInstance = getNextHydratable(
-                      nextState.firstChild
-                    )),
-                    (rootOrSingletonContext = !1),
-                    (prevState = !0))
-                  : (prevState = !1),
-                (nextState = !prevState)),
-              nextState &&
-                (returnFiber &&
-                  warnNonHydratedInstance(workInProgress, prevSibling),
-                throwOnHydrationMismatch(workInProgress))),
-            pushHostContext(workInProgress),
-            (prevSibling = workInProgress.type),
-            (prevState = workInProgress.pendingProps),
-            (nextState = null !== current ? current.memoizedProps : null),
-            (returnFiber = prevState.children),
-            shouldSetTextContent(prevSibling, prevState)
-              ? (returnFiber = null)
-              : null !== nextState &&
-                shouldSetTextContent(prevSibling, nextState) &&
-                (workInProgress.flags |= 32),
-            null !== workInProgress.memoizedState &&
-              ((prevSibling = renderWithHooks(
-                current,
-                workInProgress,
-                TransitionAwareHostComponent,
-                null,
-                null,
-                renderLanes
-              )),
-              (HostTransitionContext._currentValue = prevSibling)),
-            markRef(current, workInProgress),
-            reconcileChildren(
-              current,
-              workInProgress,
-              returnFiber,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 6:
-          return (
-            null === current &&
-              isHydrating &&
-              ((renderLanes = workInProgress.pendingProps),
-              (current = getHostContext()),
-              (returnFiber = current.ancestorInfo.current),
-              (renderLanes =
-                null != returnFiber
-                  ? validateTextNesting(
-                      renderLanes,
-                      returnFiber.tag,
-                      current.ancestorInfo.implicitRootScope
-                    )
-                  : !0),
-              (current = nextHydratableInstance),
-              (returnFiber = !current) ||
-                ((returnFiber = canHydrateTextInstance(
-                  current,
-                  workInProgress.pendingProps,
-                  rootOrSingletonContext
-                )),
-                null !== returnFiber
-                  ? ((workInProgress.stateNode = returnFiber),
-                    (hydrationParentFiber = workInProgress),
-                    (nextHydratableInstance = null),
-                    (returnFiber = !0))
-                  : (returnFiber = !1),
-                (returnFiber = !returnFiber)),
-              returnFiber &&
-                (renderLanes &&
-                  warnNonHydratedInstance(workInProgress, current),
-                throwOnHydrationMismatch(workInProgress))),
-            null
-          );
-        case 13:
-          return updateSuspenseComponent(current, workInProgress, renderLanes);
-        case 4:
-          return (
-            pushHostContainer(
-              workInProgress,
-              workInProgress.stateNode.containerInfo
-            ),
-            (returnFiber = workInProgress.pendingProps),
-            null === current
-              ? (workInProgress.child = reconcileChildFibers(
-                  workInProgress,
-                  null,
-                  returnFiber,
-                  renderLanes
-                ))
-              : reconcileChildren(
-                  current,
-                  workInProgress,
-                  returnFiber,
-                  renderLanes
-                ),
-            workInProgress.child
-          );
-        case 11:
-          return updateForwardRef(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 7:
-          return (
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 8:
-          return (
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 12:
-          return (
-            (workInProgress.flags |= 4),
-            (workInProgress.flags |= 2048),
-            (returnFiber = workInProgress.stateNode),
-            (returnFiber.effectDuration = -0),
-            (returnFiber.passiveEffectDuration = -0),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 10:
-          return (
-            (returnFiber = workInProgress.type),
-            (prevSibling = workInProgress.pendingProps),
-            (prevState = prevSibling.value),
-            "value" in prevSibling ||
-              hasWarnedAboutUsingNoValuePropOnContextProvider ||
-              ((hasWarnedAboutUsingNoValuePropOnContextProvider = !0),
-              console.error(
-                "The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?"
-              )),
-            pushProvider(workInProgress, returnFiber, prevState),
-            reconcileChildren(
-              current,
-              workInProgress,
-              prevSibling.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 9:
-          return (
-            (prevSibling = workInProgress.type._context),
-            (returnFiber = workInProgress.pendingProps.children),
-            "function" !== typeof returnFiber &&
-              console.error(
-                "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-              ),
-            prepareToReadContext(workInProgress),
-            (prevSibling = readContext(prevSibling)),
-            (returnFiber = callComponentInDEV(
-              returnFiber,
-              prevSibling,
-              void 0
-            )),
-            (workInProgress.flags |= 1),
-            reconcileChildren(
-              current,
-              workInProgress,
-              returnFiber,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 14:
-          return updateMemoComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 15:
-          return updateSimpleMemoComponent(
-            current,
-            workInProgress,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-        case 19:
-          return updateSuspenseListComponent(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        case 31:
-          return updateActivityComponent(current, workInProgress, renderLanes);
-        case 22:
-          return updateOffscreenComponent(
-            current,
-            workInProgress,
-            renderLanes,
-            workInProgress.pendingProps
-          );
-        case 24:
-          return (
-            prepareToReadContext(workInProgress),
-            (returnFiber = readContext(CacheContext)),
-            null === current
-              ? ((prevSibling = peekCacheFromPool()),
-                null === prevSibling &&
-                  ((prevSibling = workInProgressRoot),
-                  (prevState = createCache()),
-                  (prevSibling.pooledCache = prevState),
-                  retainCache(prevState),
-                  null !== prevState &&
-                    (prevSibling.pooledCacheLanes |= renderLanes),
-                  (prevSibling = prevState)),
-                (workInProgress.memoizedState = {
-                  parent: returnFiber,
-                  cache: prevSibling
-                }),
-                initializeUpdateQueue(workInProgress),
-                pushProvider(workInProgress, CacheContext, prevSibling))
-              : (0 !== (current.lanes & renderLanes) &&
-                  (cloneUpdateQueue(current, workInProgress),
-                  processUpdateQueue(workInProgress, null, null, renderLanes),
-                  suspendIfUpdateReadFromEntangledAsyncAction()),
-                (prevSibling = current.memoizedState),
-                (prevState = workInProgress.memoizedState),
-                prevSibling.parent !== returnFiber
-                  ? ((prevSibling = {
-                      parent: returnFiber,
-                      cache: returnFiber
-                    }),
-                    (workInProgress.memoizedState = prevSibling),
-                    0 === workInProgress.lanes &&
-                      (workInProgress.memoizedState =
-                        workInProgress.updateQueue.baseState =
-                          prevSibling),
-                    pushProvider(workInProgress, CacheContext, returnFiber))
-                  : ((returnFiber = prevState.cache),
-                    pushProvider(workInProgress, CacheContext, returnFiber),
-                    returnFiber !== prevSibling.cache &&
-                      propagateContextChanges(
-                        workInProgress,
-                        [CacheContext],
-                        renderLanes,
-                        !0
-                      ))),
-            reconcileChildren(
-              current,
-              workInProgress,
-              workInProgress.pendingProps.children,
-              renderLanes
-            ),
-            workInProgress.child
-          );
-        case 29:
-          throw workInProgress.pendingProps;
-      }
-      throw Error(
-        "Unknown unit of work tag (" +
-          workInProgress.tag +
-          "). This error is likely caused by a bug in React. Please file an issue."
-      );
-    }
-    function markUpdate(workInProgress) {
-      workInProgress.flags |= 4;
-    }
-    function preloadInstanceAndSuspendIfNeeded(
-      workInProgress,
-      type,
-      oldProps,
-      newProps,
-      renderLanes
-    ) {
-      if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode))
-        type = !1;
-      if (type) {
-        if (
-          ((workInProgress.flags |= 16777216),
-          (renderLanes & 335544128) === renderLanes)
-        )
-          if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;
-          else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-          else
-            throw (
-              ((suspendedThenable = noopSuspenseyCommitThenable),
-              SuspenseyCommitException)
-            );
-      } else workInProgress.flags &= -16777217;
-    }
-    function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {
-      if (
-        "stylesheet" !== resource.type ||
-        (resource.state.loading & Inserted) !== NotLoaded
-      )
-        workInProgress.flags &= -16777217;
-      else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))
-        if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-        else
-          throw (
-            ((suspendedThenable = noopSuspenseyCommitThenable),
-            SuspenseyCommitException)
-          );
-    }
-    function scheduleRetryEffect(workInProgress, retryQueue) {
-      null !== retryQueue && (workInProgress.flags |= 4);
-      workInProgress.flags & 16384 &&
-        ((retryQueue =
-          22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
-        (workInProgress.lanes |= retryQueue),
-        (workInProgressSuspendedRetryLanes |= retryQueue));
-    }
-    function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
-      if (!isHydrating)
-        switch (renderState.tailMode) {
-          case "hidden":
-            hasRenderedATailFallback = renderState.tail;
-            for (var lastTailNode = null; null !== hasRenderedATailFallback; )
-              null !== hasRenderedATailFallback.alternate &&
-                (lastTailNode = hasRenderedATailFallback),
-                (hasRenderedATailFallback = hasRenderedATailFallback.sibling);
-            null === lastTailNode
-              ? (renderState.tail = null)
-              : (lastTailNode.sibling = null);
-            break;
-          case "collapsed":
-            lastTailNode = renderState.tail;
-            for (var _lastTailNode = null; null !== lastTailNode; )
-              null !== lastTailNode.alternate && (_lastTailNode = lastTailNode),
-                (lastTailNode = lastTailNode.sibling);
-            null === _lastTailNode
-              ? hasRenderedATailFallback || null === renderState.tail
-                ? (renderState.tail = null)
-                : (renderState.tail.sibling = null)
-              : (_lastTailNode.sibling = null);
-        }
-    }
-    function bubbleProperties(completedWork) {
-      var didBailout =
-          null !== completedWork.alternate &&
-          completedWork.alternate.child === completedWork.child,
-        newChildLanes = 0,
-        subtreeFlags = 0;
-      if (didBailout)
-        if ((completedWork.mode & ProfileMode) !== NoMode) {
-          for (
-            var _treeBaseDuration = completedWork.selfBaseDuration,
-              _child2 = completedWork.child;
-            null !== _child2;
-
-          )
-            (newChildLanes |= _child2.lanes | _child2.childLanes),
-              (subtreeFlags |= _child2.subtreeFlags & 65011712),
-              (subtreeFlags |= _child2.flags & 65011712),
-              (_treeBaseDuration += _child2.treeBaseDuration),
-              (_child2 = _child2.sibling);
-          completedWork.treeBaseDuration = _treeBaseDuration;
-        } else
-          for (
-            _treeBaseDuration = completedWork.child;
-            null !== _treeBaseDuration;
-
-          )
-            (newChildLanes |=
-              _treeBaseDuration.lanes | _treeBaseDuration.childLanes),
-              (subtreeFlags |= _treeBaseDuration.subtreeFlags & 65011712),
-              (subtreeFlags |= _treeBaseDuration.flags & 65011712),
-              (_treeBaseDuration.return = completedWork),
-              (_treeBaseDuration = _treeBaseDuration.sibling);
-      else if ((completedWork.mode & ProfileMode) !== NoMode) {
-        _treeBaseDuration = completedWork.actualDuration;
-        _child2 = completedWork.selfBaseDuration;
-        for (var child = completedWork.child; null !== child; )
-          (newChildLanes |= child.lanes | child.childLanes),
-            (subtreeFlags |= child.subtreeFlags),
-            (subtreeFlags |= child.flags),
-            (_treeBaseDuration += child.actualDuration),
-            (_child2 += child.treeBaseDuration),
-            (child = child.sibling);
-        completedWork.actualDuration = _treeBaseDuration;
-        completedWork.treeBaseDuration = _child2;
-      } else
-        for (
-          _treeBaseDuration = completedWork.child;
-          null !== _treeBaseDuration;
-
-        )
-          (newChildLanes |=
-            _treeBaseDuration.lanes | _treeBaseDuration.childLanes),
-            (subtreeFlags |= _treeBaseDuration.subtreeFlags),
-            (subtreeFlags |= _treeBaseDuration.flags),
-            (_treeBaseDuration.return = completedWork),
-            (_treeBaseDuration = _treeBaseDuration.sibling);
-      completedWork.subtreeFlags |= subtreeFlags;
-      completedWork.childLanes = newChildLanes;
-      return didBailout;
-    }
-    function completeWork(current, workInProgress, renderLanes) {
-      var newProps = workInProgress.pendingProps;
-      popTreeContext(workInProgress);
-      switch (workInProgress.tag) {
-        case 16:
-        case 15:
-        case 0:
-        case 11:
-        case 7:
-        case 8:
-        case 12:
-        case 9:
-        case 14:
-          return bubbleProperties(workInProgress), null;
-        case 1:
-          return bubbleProperties(workInProgress), null;
-        case 3:
-          renderLanes = workInProgress.stateNode;
-          newProps = null;
-          null !== current && (newProps = current.memoizedState.cache);
-          workInProgress.memoizedState.cache !== newProps &&
-            (workInProgress.flags |= 2048);
-          popProvider(CacheContext, workInProgress);
-          popHostContainer(workInProgress);
-          renderLanes.pendingContext &&
-            ((renderLanes.context = renderLanes.pendingContext),
-            (renderLanes.pendingContext = null));
-          if (null === current || null === current.child)
-            popHydrationState(workInProgress)
-              ? (emitPendingHydrationWarnings(), markUpdate(workInProgress))
-              : null === current ||
-                (current.memoizedState.isDehydrated &&
-                  0 === (workInProgress.flags & 256)) ||
-                ((workInProgress.flags |= 1024),
-                upgradeHydrationErrorsToRecoverable());
-          bubbleProperties(workInProgress);
-          return null;
-        case 26:
-          var type = workInProgress.type,
-            nextResource = workInProgress.memoizedState;
-          null === current
-            ? (markUpdate(workInProgress),
-              null !== nextResource
-                ? (bubbleProperties(workInProgress),
-                  preloadResourceAndSuspendIfNeeded(
-                    workInProgress,
-                    nextResource
-                  ))
-                : (bubbleProperties(workInProgress),
-                  preloadInstanceAndSuspendIfNeeded(
-                    workInProgress,
-                    type,
-                    null,
-                    newProps,
-                    renderLanes
-                  )))
-            : nextResource
-              ? nextResource !== current.memoizedState
-                ? (markUpdate(workInProgress),
-                  bubbleProperties(workInProgress),
-                  preloadResourceAndSuspendIfNeeded(
-                    workInProgress,
-                    nextResource
-                  ))
-                : (bubbleProperties(workInProgress),
-                  (workInProgress.flags &= -16777217))
-              : ((current = current.memoizedProps),
-                current !== newProps && markUpdate(workInProgress),
-                bubbleProperties(workInProgress),
-                preloadInstanceAndSuspendIfNeeded(
-                  workInProgress,
-                  type,
-                  current,
-                  newProps,
-                  renderLanes
-                ));
-          return null;
-        case 27:
-          popHostContext(workInProgress);
-          renderLanes = requiredContext(rootInstanceStackCursor.current);
-          type = workInProgress.type;
-          if (null !== current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (!newProps) {
-              if (null === workInProgress.stateNode)
-                throw Error(
-                  "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-                );
-              bubbleProperties(workInProgress);
-              return null;
-            }
-            current = getHostContext();
-            popHydrationState(workInProgress)
-              ? prepareToHydrateHostInstance(workInProgress, current)
-              : ((current = resolveSingletonInstance(
-                  type,
-                  newProps,
-                  renderLanes,
-                  current,
-                  !0
-                )),
-                (workInProgress.stateNode = current),
-                markUpdate(workInProgress));
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 5:
-          popHostContext(workInProgress);
-          type = workInProgress.type;
-          if (null !== current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (!newProps) {
-              if (null === workInProgress.stateNode)
-                throw Error(
-                  "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-                );
-              bubbleProperties(workInProgress);
-              return null;
-            }
-            var _currentHostContext = getHostContext();
-            if (popHydrationState(workInProgress))
-              prepareToHydrateHostInstance(workInProgress, _currentHostContext);
-            else {
-              nextResource = requiredContext(rootInstanceStackCursor.current);
-              validateDOMNesting(type, _currentHostContext.ancestorInfo);
-              _currentHostContext = _currentHostContext.context;
-              nextResource = getOwnerDocumentFromRootContainer(nextResource);
-              switch (_currentHostContext) {
-                case HostContextNamespaceSvg:
-                  nextResource = nextResource.createElementNS(
-                    SVG_NAMESPACE,
-                    type
-                  );
-                  break;
-                case HostContextNamespaceMath:
-                  nextResource = nextResource.createElementNS(
-                    MATH_NAMESPACE,
-                    type
-                  );
-                  break;
-                default:
-                  switch (type) {
-                    case "svg":
-                      nextResource = nextResource.createElementNS(
-                        SVG_NAMESPACE,
-                        type
-                      );
-                      break;
-                    case "math":
-                      nextResource = nextResource.createElementNS(
-                        MATH_NAMESPACE,
-                        type
-                      );
-                      break;
-                    case "script":
-                      nextResource = nextResource.createElement("div");
-                      nextResource.innerHTML = "<script>\x3c/script>";
-                      nextResource = nextResource.removeChild(
-                        nextResource.firstChild
-                      );
-                      break;
-                    case "select":
-                      nextResource =
-                        "string" === typeof newProps.is
-                          ? nextResource.createElement("select", {
-                              is: newProps.is
-                            })
-                          : nextResource.createElement("select");
-                      newProps.multiple
-                        ? (nextResource.multiple = !0)
-                        : newProps.size && (nextResource.size = newProps.size);
-                      break;
-                    default:
-                      (nextResource =
-                        "string" === typeof newProps.is
-                          ? nextResource.createElement(type, {
-                              is: newProps.is
-                            })
-                          : nextResource.createElement(type)),
-                        -1 === type.indexOf("-") &&
-                          (type !== type.toLowerCase() &&
-                            console.error(
-                              "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-                              type
-                            ),
-                          "[object HTMLUnknownElement]" !==
-                            Object.prototype.toString.call(nextResource) ||
-                            hasOwnProperty.call(warnedUnknownTags, type) ||
-                            ((warnedUnknownTags[type] = !0),
-                            console.error(
-                              "The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",
-                              type
-                            )));
-                  }
-              }
-              nextResource[internalInstanceKey] = workInProgress;
-              nextResource[internalPropsKey] = newProps;
-              a: for (
-                _currentHostContext = workInProgress.child;
-                null !== _currentHostContext;
-
-              ) {
-                if (
-                  5 === _currentHostContext.tag ||
-                  6 === _currentHostContext.tag
-                )
-                  nextResource.appendChild(_currentHostContext.stateNode);
-                else if (
-                  4 !== _currentHostContext.tag &&
-                  27 !== _currentHostContext.tag &&
-                  null !== _currentHostContext.child
-                ) {
-                  _currentHostContext.child.return = _currentHostContext;
-                  _currentHostContext = _currentHostContext.child;
-                  continue;
-                }
-                if (_currentHostContext === workInProgress) break a;
-                for (; null === _currentHostContext.sibling; ) {
-                  if (
-                    null === _currentHostContext.return ||
-                    _currentHostContext.return === workInProgress
-                  )
-                    break a;
-                  _currentHostContext = _currentHostContext.return;
-                }
-                _currentHostContext.sibling.return = _currentHostContext.return;
-                _currentHostContext = _currentHostContext.sibling;
-              }
-              workInProgress.stateNode = nextResource;
-              a: switch (
-                (setInitialProperties(nextResource, type, newProps), type)
-              ) {
-                case "button":
-                case "input":
-                case "select":
-                case "textarea":
-                  newProps = !!newProps.autoFocus;
-                  break a;
-                case "img":
-                  newProps = !0;
-                  break a;
-                default:
-                  newProps = !1;
-              }
-              newProps && markUpdate(workInProgress);
-            }
-          }
-          bubbleProperties(workInProgress);
-          preloadInstanceAndSuspendIfNeeded(
-            workInProgress,
-            workInProgress.type,
-            null === current ? null : current.memoizedProps,
-            workInProgress.pendingProps,
-            renderLanes
-          );
-          return null;
-        case 6:
-          if (current && null != workInProgress.stateNode)
-            current.memoizedProps !== newProps && markUpdate(workInProgress);
-          else {
-            if (
-              "string" !== typeof newProps &&
-              null === workInProgress.stateNode
-            )
-              throw Error(
-                "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."
-              );
-            current = requiredContext(rootInstanceStackCursor.current);
-            renderLanes = getHostContext();
-            if (popHydrationState(workInProgress)) {
-              current = workInProgress.stateNode;
-              renderLanes = workInProgress.memoizedProps;
-              type = !didSuspendOrErrorDEV;
-              newProps = null;
-              nextResource = hydrationParentFiber;
-              if (null !== nextResource)
-                switch (nextResource.tag) {
-                  case 3:
-                    type &&
-                      ((type = diffHydratedTextForDevWarnings(
-                        current,
-                        renderLanes,
-                        newProps
-                      )),
-                      null !== type &&
-                        (buildHydrationDiffNode(workInProgress, 0).serverProps =
-                          type));
-                    break;
-                  case 27:
-                  case 5:
-                    (newProps = nextResource.memoizedProps),
-                      type &&
-                        ((type = diffHydratedTextForDevWarnings(
-                          current,
-                          renderLanes,
-                          newProps
-                        )),
-                        null !== type &&
-                          (buildHydrationDiffNode(
-                            workInProgress,
-                            0
-                          ).serverProps = type));
-                }
-              current[internalInstanceKey] = workInProgress;
-              current =
-                current.nodeValue === renderLanes ||
-                (null !== newProps &&
-                  !0 === newProps.suppressHydrationWarning) ||
-                checkForUnmatchedText(current.nodeValue, renderLanes)
-                  ? !0
-                  : !1;
-              current || throwOnHydrationMismatch(workInProgress, !0);
-            } else
-              (type = renderLanes.ancestorInfo.current),
-                null != type &&
-                  validateTextNesting(
-                    newProps,
-                    type.tag,
-                    renderLanes.ancestorInfo.implicitRootScope
-                  ),
-                (current =
-                  getOwnerDocumentFromRootContainer(current).createTextNode(
-                    newProps
-                  )),
-                (current[internalInstanceKey] = workInProgress),
-                (workInProgress.stateNode = current);
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 31:
-          renderLanes = workInProgress.memoizedState;
-          if (null === current || null !== current.memoizedState) {
-            newProps = popHydrationState(workInProgress);
-            if (null !== renderLanes) {
-              if (null === current) {
-                if (!newProps)
-                  throw Error(
-                    "A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."
-                  );
-                current = workInProgress.memoizedState;
-                current = null !== current ? current.dehydrated : null;
-                if (!current)
-                  throw Error(
-                    "Expected to have a hydrated activity instance. This error is likely caused by a bug in React. Please file an issue."
-                  );
-                current[internalInstanceKey] = workInProgress;
-                bubbleProperties(workInProgress);
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  null !== renderLanes &&
-                  ((current = workInProgress.child),
-                  null !== current &&
-                    (workInProgress.treeBaseDuration -=
-                      current.treeBaseDuration));
-              } else
-                emitPendingHydrationWarnings(),
-                  resetHydrationState(),
-                  0 === (workInProgress.flags & 128) &&
-                    (renderLanes = workInProgress.memoizedState = null),
-                  (workInProgress.flags |= 4),
-                  bubbleProperties(workInProgress),
-                  (workInProgress.mode & ProfileMode) !== NoMode &&
-                    null !== renderLanes &&
-                    ((current = workInProgress.child),
-                    null !== current &&
-                      (workInProgress.treeBaseDuration -=
-                        current.treeBaseDuration));
-              current = !1;
-            } else
-              (renderLanes = upgradeHydrationErrorsToRecoverable()),
-                null !== current &&
-                  null !== current.memoizedState &&
-                  (current.memoizedState.hydrationErrors = renderLanes),
-                (current = !0);
-            if (!current) {
-              if (workInProgress.flags & 256)
-                return popSuspenseHandler(workInProgress), workInProgress;
-              popSuspenseHandler(workInProgress);
-              return null;
-            }
-            if (0 !== (workInProgress.flags & 128))
-              throw Error(
-                "Client rendering an Activity suspended it again. This is a bug in React."
-              );
-          }
-          bubbleProperties(workInProgress);
-          return null;
-        case 13:
-          newProps = workInProgress.memoizedState;
-          if (
-            null === current ||
-            (null !== current.memoizedState &&
-              null !== current.memoizedState.dehydrated)
-          ) {
-            type = newProps;
-            nextResource = popHydrationState(workInProgress);
-            if (null !== type && null !== type.dehydrated) {
-              if (null === current) {
-                if (!nextResource)
-                  throw Error(
-                    "A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."
-                  );
-                nextResource = workInProgress.memoizedState;
-                nextResource =
-                  null !== nextResource ? nextResource.dehydrated : null;
-                if (!nextResource)
-                  throw Error(
-                    "Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue."
-                  );
-                nextResource[internalInstanceKey] = workInProgress;
-                bubbleProperties(workInProgress);
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  null !== type &&
-                  ((type = workInProgress.child),
-                  null !== type &&
-                    (workInProgress.treeBaseDuration -= type.treeBaseDuration));
-              } else
-                emitPendingHydrationWarnings(),
-                  resetHydrationState(),
-                  0 === (workInProgress.flags & 128) &&
-                    (type = workInProgress.memoizedState = null),
-                  (workInProgress.flags |= 4),
-                  bubbleProperties(workInProgress),
-                  (workInProgress.mode & ProfileMode) !== NoMode &&
-                    null !== type &&
-                    ((type = workInProgress.child),
-                    null !== type &&
-                      (workInProgress.treeBaseDuration -=
-                        type.treeBaseDuration));
-              type = !1;
-            } else
-              (type = upgradeHydrationErrorsToRecoverable()),
-                null !== current &&
-                  null !== current.memoizedState &&
-                  (current.memoizedState.hydrationErrors = type),
-                (type = !0);
-            if (!type) {
-              if (workInProgress.flags & 256)
-                return popSuspenseHandler(workInProgress), workInProgress;
-              popSuspenseHandler(workInProgress);
-              return null;
-            }
-          }
-          popSuspenseHandler(workInProgress);
-          if (0 !== (workInProgress.flags & 128))
-            return (
-              (workInProgress.lanes = renderLanes),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress
-            );
-          renderLanes = null !== newProps;
-          current = null !== current && null !== current.memoizedState;
-          renderLanes &&
-            ((newProps = workInProgress.child),
-            (type = null),
-            null !== newProps.alternate &&
-              null !== newProps.alternate.memoizedState &&
-              null !== newProps.alternate.memoizedState.cachePool &&
-              (type = newProps.alternate.memoizedState.cachePool.pool),
-            (nextResource = null),
-            null !== newProps.memoizedState &&
-              null !== newProps.memoizedState.cachePool &&
-              (nextResource = newProps.memoizedState.cachePool.pool),
-            nextResource !== type && (newProps.flags |= 2048));
-          renderLanes !== current &&
-            renderLanes &&
-            (workInProgress.child.flags |= 8192);
-          scheduleRetryEffect(workInProgress, workInProgress.updateQueue);
-          bubbleProperties(workInProgress);
-          (workInProgress.mode & ProfileMode) !== NoMode &&
-            renderLanes &&
-            ((current = workInProgress.child),
-            null !== current &&
-              (workInProgress.treeBaseDuration -= current.treeBaseDuration));
-          return null;
-        case 4:
-          return (
-            popHostContainer(workInProgress),
-            null === current &&
-              listenToAllSupportedEvents(
-                workInProgress.stateNode.containerInfo
-              ),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 10:
-          return (
-            popProvider(workInProgress.type, workInProgress),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 19:
-          pop(suspenseStackCursor, workInProgress);
-          newProps = workInProgress.memoizedState;
-          if (null === newProps) return bubbleProperties(workInProgress), null;
-          type = 0 !== (workInProgress.flags & 128);
-          nextResource = newProps.rendering;
-          if (null === nextResource)
-            if (type) cutOffTailIfNeeded(newProps, !1);
-            else {
-              if (
-                workInProgressRootExitStatus !== RootInProgress ||
-                (null !== current && 0 !== (current.flags & 128))
-              )
-                for (current = workInProgress.child; null !== current; ) {
-                  nextResource = findFirstSuspended(current);
-                  if (null !== nextResource) {
-                    workInProgress.flags |= 128;
-                    cutOffTailIfNeeded(newProps, !1);
-                    current = nextResource.updateQueue;
-                    workInProgress.updateQueue = current;
-                    scheduleRetryEffect(workInProgress, current);
-                    workInProgress.subtreeFlags = 0;
-                    current = renderLanes;
-                    for (
-                      renderLanes = workInProgress.child;
-                      null !== renderLanes;
-
-                    )
-                      resetWorkInProgress(renderLanes, current),
-                        (renderLanes = renderLanes.sibling);
-                    push(
-                      suspenseStackCursor,
-                      (suspenseStackCursor.current &
-                        SubtreeSuspenseContextMask) |
-                        ForceSuspenseFallback,
-                      workInProgress
-                    );
-                    isHydrating &&
-                      pushTreeFork(workInProgress, newProps.treeForkCount);
-                    return workInProgress.child;
-                  }
-                  current = current.sibling;
-                }
-              null !== newProps.tail &&
-                now$1() > workInProgressRootRenderTargetTime &&
-                ((workInProgress.flags |= 128),
-                (type = !0),
-                cutOffTailIfNeeded(newProps, !1),
-                (workInProgress.lanes = 4194304));
-            }
-          else {
-            if (!type)
-              if (
-                ((current = findFirstSuspended(nextResource)), null !== current)
-              ) {
-                if (
-                  ((workInProgress.flags |= 128),
-                  (type = !0),
-                  (current = current.updateQueue),
-                  (workInProgress.updateQueue = current),
-                  scheduleRetryEffect(workInProgress, current),
-                  cutOffTailIfNeeded(newProps, !0),
-                  null === newProps.tail &&
-                    "hidden" === newProps.tailMode &&
-                    !nextResource.alternate &&
-                    !isHydrating)
-                )
-                  return bubbleProperties(workInProgress), null;
-              } else
-                2 * now$1() - newProps.renderingStartTime >
-                  workInProgressRootRenderTargetTime &&
-                  536870912 !== renderLanes &&
-                  ((workInProgress.flags |= 128),
-                  (type = !0),
-                  cutOffTailIfNeeded(newProps, !1),
-                  (workInProgress.lanes = 4194304));
-            newProps.isBackwards
-              ? ((nextResource.sibling = workInProgress.child),
-                (workInProgress.child = nextResource))
-              : ((current = newProps.last),
-                null !== current
-                  ? (current.sibling = nextResource)
-                  : (workInProgress.child = nextResource),
-                (newProps.last = nextResource));
-          }
-          if (null !== newProps.tail)
-            return (
-              (current = newProps.tail),
-              (newProps.rendering = current),
-              (newProps.tail = current.sibling),
-              (newProps.renderingStartTime = now$1()),
-              (current.sibling = null),
-              (renderLanes = suspenseStackCursor.current),
-              (renderLanes = type
-                ? (renderLanes & SubtreeSuspenseContextMask) |
-                  ForceSuspenseFallback
-                : renderLanes & SubtreeSuspenseContextMask),
-              push(suspenseStackCursor, renderLanes, workInProgress),
-              isHydrating &&
-                pushTreeFork(workInProgress, newProps.treeForkCount),
-              current
-            );
-          bubbleProperties(workInProgress);
-          return null;
-        case 22:
-        case 23:
-          return (
-            popSuspenseHandler(workInProgress),
-            popHiddenContext(workInProgress),
-            (newProps = null !== workInProgress.memoizedState),
-            null !== current
-              ? (null !== current.memoizedState) !== newProps &&
-                (workInProgress.flags |= 8192)
-              : newProps && (workInProgress.flags |= 8192),
-            newProps
-              ? 0 !== (renderLanes & 536870912) &&
-                0 === (workInProgress.flags & 128) &&
-                (bubbleProperties(workInProgress),
-                workInProgress.subtreeFlags & 6 &&
-                  (workInProgress.flags |= 8192))
-              : bubbleProperties(workInProgress),
-            (renderLanes = workInProgress.updateQueue),
-            null !== renderLanes &&
-              scheduleRetryEffect(workInProgress, renderLanes.retryQueue),
-            (renderLanes = null),
-            null !== current &&
-              null !== current.memoizedState &&
-              null !== current.memoizedState.cachePool &&
-              (renderLanes = current.memoizedState.cachePool.pool),
-            (newProps = null),
-            null !== workInProgress.memoizedState &&
-              null !== workInProgress.memoizedState.cachePool &&
-              (newProps = workInProgress.memoizedState.cachePool.pool),
-            newProps !== renderLanes && (workInProgress.flags |= 2048),
-            null !== current && pop(resumedCache, workInProgress),
-            null
-          );
-        case 24:
-          return (
-            (renderLanes = null),
-            null !== current && (renderLanes = current.memoizedState.cache),
-            workInProgress.memoizedState.cache !== renderLanes &&
-              (workInProgress.flags |= 2048),
-            popProvider(CacheContext, workInProgress),
-            bubbleProperties(workInProgress),
-            null
-          );
-        case 25:
-          return null;
-        case 30:
-          return null;
-      }
-      throw Error(
-        "Unknown unit of work tag (" +
-          workInProgress.tag +
-          "). This error is likely caused by a bug in React. Please file an issue."
-      );
-    }
-    function unwindWork(current, workInProgress) {
-      popTreeContext(workInProgress);
-      switch (workInProgress.tag) {
-        case 1:
-          return (
-            (current = workInProgress.flags),
-            current & 65536
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  transferActualDuration(workInProgress),
-                workInProgress)
-              : null
-          );
-        case 3:
-          return (
-            popProvider(CacheContext, workInProgress),
-            popHostContainer(workInProgress),
-            (current = workInProgress.flags),
-            0 !== (current & 65536) && 0 === (current & 128)
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                workInProgress)
-              : null
-          );
-        case 26:
-        case 27:
-        case 5:
-          return popHostContext(workInProgress), null;
-        case 31:
-          if (null !== workInProgress.memoizedState) {
-            popSuspenseHandler(workInProgress);
-            if (null === workInProgress.alternate)
-              throw Error(
-                "Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."
-              );
-            resetHydrationState();
-          }
-          current = workInProgress.flags;
-          return current & 65536
-            ? ((workInProgress.flags = (current & -65537) | 128),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress)
-            : null;
-        case 13:
-          popSuspenseHandler(workInProgress);
-          current = workInProgress.memoizedState;
-          if (null !== current && null !== current.dehydrated) {
-            if (null === workInProgress.alternate)
-              throw Error(
-                "Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."
-              );
-            resetHydrationState();
-          }
-          current = workInProgress.flags;
-          return current & 65536
-            ? ((workInProgress.flags = (current & -65537) | 128),
-              (workInProgress.mode & ProfileMode) !== NoMode &&
-                transferActualDuration(workInProgress),
-              workInProgress)
-            : null;
-        case 19:
-          return pop(suspenseStackCursor, workInProgress), null;
-        case 4:
-          return popHostContainer(workInProgress), null;
-        case 10:
-          return popProvider(workInProgress.type, workInProgress), null;
-        case 22:
-        case 23:
-          return (
-            popSuspenseHandler(workInProgress),
-            popHiddenContext(workInProgress),
-            null !== current && pop(resumedCache, workInProgress),
-            (current = workInProgress.flags),
-            current & 65536
-              ? ((workInProgress.flags = (current & -65537) | 128),
-                (workInProgress.mode & ProfileMode) !== NoMode &&
-                  transferActualDuration(workInProgress),
-                workInProgress)
-              : null
-          );
-        case 24:
-          return popProvider(CacheContext, workInProgress), null;
-        case 25:
-          return null;
-        default:
-          return null;
-      }
-    }
-    function unwindInterruptedWork(current, interruptedWork) {
-      popTreeContext(interruptedWork);
-      switch (interruptedWork.tag) {
-        case 3:
-          popProvider(CacheContext, interruptedWork);
-          popHostContainer(interruptedWork);
-          break;
-        case 26:
-        case 27:
-        case 5:
-          popHostContext(interruptedWork);
-          break;
-        case 4:
-          popHostContainer(interruptedWork);
-          break;
-        case 31:
-          null !== interruptedWork.memoizedState &&
-            popSuspenseHandler(interruptedWork);
-          break;
-        case 13:
-          popSuspenseHandler(interruptedWork);
-          break;
-        case 19:
-          pop(suspenseStackCursor, interruptedWork);
-          break;
-        case 10:
-          popProvider(interruptedWork.type, interruptedWork);
-          break;
-        case 22:
-        case 23:
-          popSuspenseHandler(interruptedWork);
-          popHiddenContext(interruptedWork);
-          null !== current && pop(resumedCache, interruptedWork);
-          break;
-        case 24:
-          popProvider(CacheContext, interruptedWork);
-      }
-    }
-    function shouldProfile(current) {
-      return (current.mode & ProfileMode) !== NoMode;
-    }
-    function commitHookLayoutEffects(finishedWork, hookFlags) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListMount(hookFlags, finishedWork),
-          recordEffectDuration())
-        : commitHookEffectListMount(hookFlags, finishedWork);
-    }
-    function commitHookLayoutUnmountEffects(
-      finishedWork,
-      nearestMountedAncestor,
-      hookFlags
-    ) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          ),
-          recordEffectDuration())
-        : commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          );
-    }
-    function commitHookEffectListMount(flags, finishedWork) {
-      try {
-        var updateQueue = finishedWork.updateQueue,
-          lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-        if (null !== lastEffect) {
-          var firstEffect = lastEffect.next;
-          updateQueue = firstEffect;
-          do {
-            if (
-              (updateQueue.tag & flags) === flags &&
-              ((lastEffect = void 0),
-              (flags & Insertion) !== NoFlags &&
-                (isRunningInsertionEffect = !0),
-              (lastEffect = runWithFiberInDEV(
-                finishedWork,
-                callCreateInDEV,
-                updateQueue
-              )),
-              (flags & Insertion) !== NoFlags &&
-                (isRunningInsertionEffect = !1),
-              void 0 !== lastEffect && "function" !== typeof lastEffect)
-            ) {
-              var hookName = void 0;
-              hookName =
-                0 !== (updateQueue.tag & Layout)
-                  ? "useLayoutEffect"
-                  : 0 !== (updateQueue.tag & Insertion)
-                    ? "useInsertionEffect"
-                    : "useEffect";
-              var addendum = void 0;
-              addendum =
-                null === lastEffect
-                  ? " You returned null. If your effect does not require clean up, return undefined (or nothing)."
-                  : "function" === typeof lastEffect.then
-                    ? "\n\nIt looks like you wrote " +
-                      hookName +
-                      "(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\n" +
-                      hookName +
-                      "(() => {\n  async function fetchData() {\n    // You can await here\n    const response = await MyAPI.getData(someId);\n    // ...\n  }\n  fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching"
-                    : " You returned: " + lastEffect;
-              runWithFiberInDEV(
-                finishedWork,
-                function (n, a) {
-                  console.error(
-                    "%s must not return anything besides a function, which is used for clean-up.%s",
-                    n,
-                    a
-                  );
-                },
-                hookName,
-                addendum
-              );
-            }
-            updateQueue = updateQueue.next;
-          } while (updateQueue !== firstEffect);
-        }
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHookEffectListUnmount(
-      flags,
-      finishedWork,
-      nearestMountedAncestor
-    ) {
-      try {
-        var updateQueue = finishedWork.updateQueue,
-          lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-        if (null !== lastEffect) {
-          var firstEffect = lastEffect.next;
-          updateQueue = firstEffect;
-          do {
-            if ((updateQueue.tag & flags) === flags) {
-              var inst = updateQueue.inst,
-                destroy = inst.destroy;
-              void 0 !== destroy &&
-                ((inst.destroy = void 0),
-                (flags & Insertion) !== NoFlags &&
-                  (isRunningInsertionEffect = !0),
-                (lastEffect = finishedWork),
-                runWithFiberInDEV(
-                  lastEffect,
-                  callDestroyInDEV,
-                  lastEffect,
-                  nearestMountedAncestor,
-                  destroy
-                ),
-                (flags & Insertion) !== NoFlags &&
-                  (isRunningInsertionEffect = !1));
-            }
-            updateQueue = updateQueue.next;
-          } while (updateQueue !== firstEffect);
-        }
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHookPassiveMountEffects(finishedWork, hookFlags) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListMount(hookFlags, finishedWork),
-          recordEffectDuration())
-        : commitHookEffectListMount(hookFlags, finishedWork);
-    }
-    function commitHookPassiveUnmountEffects(
-      finishedWork,
-      nearestMountedAncestor,
-      hookFlags
-    ) {
-      shouldProfile(finishedWork)
-        ? (startEffectTimer(),
-          commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          ),
-          recordEffectDuration())
-        : commitHookEffectListUnmount(
-            hookFlags,
-            finishedWork,
-            nearestMountedAncestor
-          );
-    }
-    function commitClassCallbacks(finishedWork) {
-      var updateQueue = finishedWork.updateQueue;
-      if (null !== updateQueue) {
-        var instance = finishedWork.stateNode;
-        finishedWork.type.defaultProps ||
-          "ref" in finishedWork.memoizedProps ||
-          didWarnAboutReassigningProps ||
-          (instance.props !== finishedWork.memoizedProps &&
-            console.error(
-              "Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-              getComponentNameFromFiber(finishedWork) || "instance"
-            ),
-          instance.state !== finishedWork.memoizedState &&
-            console.error(
-              "Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-              getComponentNameFromFiber(finishedWork) || "instance"
-            ));
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitCallbacks,
-            updateQueue,
-            instance
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-    }
-    function callGetSnapshotBeforeUpdates(instance, prevProps, prevState) {
-      return instance.getSnapshotBeforeUpdate(prevProps, prevState);
-    }
-    function commitClassSnapshot(finishedWork, current) {
-      var prevProps = current.memoizedProps,
-        prevState = current.memoizedState;
-      current = finishedWork.stateNode;
-      finishedWork.type.defaultProps ||
-        "ref" in finishedWork.memoizedProps ||
-        didWarnAboutReassigningProps ||
-        (current.props !== finishedWork.memoizedProps &&
-          console.error(
-            "Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-            getComponentNameFromFiber(finishedWork) || "instance"
-          ),
-        current.state !== finishedWork.memoizedState &&
-          console.error(
-            "Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-            getComponentNameFromFiber(finishedWork) || "instance"
-          ));
-      try {
-        var resolvedPrevProps = resolveClassComponentProps(
-          finishedWork.type,
-          prevProps
-        );
-        var snapshot = runWithFiberInDEV(
-          finishedWork,
-          callGetSnapshotBeforeUpdates,
-          current,
-          resolvedPrevProps,
-          prevState
-        );
-        prevProps = didWarnAboutUndefinedSnapshotBeforeUpdate;
-        void 0 !== snapshot ||
-          prevProps.has(finishedWork.type) ||
-          (prevProps.add(finishedWork.type),
-          runWithFiberInDEV(finishedWork, function () {
-            console.error(
-              "%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",
-              getComponentNameFromFiber(finishedWork)
-            );
-          }));
-        current.__reactInternalSnapshotBeforeUpdate = snapshot;
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function safelyCallComponentWillUnmount(
-      current,
-      nearestMountedAncestor,
-      instance
-    ) {
-      instance.props = resolveClassComponentProps(
-        current.type,
-        current.memoizedProps
-      );
-      instance.state = current.memoizedState;
-      shouldProfile(current)
-        ? (startEffectTimer(),
-          runWithFiberInDEV(
-            current,
-            callComponentWillUnmountInDEV,
-            current,
-            nearestMountedAncestor,
-            instance
-          ),
-          recordEffectDuration())
-        : runWithFiberInDEV(
-            current,
-            callComponentWillUnmountInDEV,
-            current,
-            nearestMountedAncestor,
-            instance
-          );
-    }
-    function commitAttachRef(finishedWork) {
-      var ref = finishedWork.ref;
-      if (null !== ref) {
-        switch (finishedWork.tag) {
-          case 26:
-          case 27:
-          case 5:
-            var instanceToUse = finishedWork.stateNode;
-            break;
-          case 30:
-            instanceToUse = finishedWork.stateNode;
-            break;
-          default:
-            instanceToUse = finishedWork.stateNode;
-        }
-        if ("function" === typeof ref)
-          if (shouldProfile(finishedWork))
-            try {
-              startEffectTimer(),
-                (finishedWork.refCleanup = ref(instanceToUse));
-            } finally {
-              recordEffectDuration();
-            }
-          else finishedWork.refCleanup = ref(instanceToUse);
-        else
-          "string" === typeof ref
-            ? console.error("String refs are no longer supported.")
-            : ref.hasOwnProperty("current") ||
-              console.error(
-                "Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().",
-                getComponentNameFromFiber(finishedWork)
-              ),
-            (ref.current = instanceToUse);
-      }
-    }
-    function safelyAttachRef(current, nearestMountedAncestor) {
-      try {
-        runWithFiberInDEV(current, commitAttachRef, current);
-      } catch (error) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error);
-      }
-    }
-    function safelyDetachRef(current, nearestMountedAncestor) {
-      var ref = current.ref,
-        refCleanup = current.refCleanup;
-      if (null !== ref)
-        if ("function" === typeof refCleanup)
-          try {
-            if (shouldProfile(current))
-              try {
-                startEffectTimer(), runWithFiberInDEV(current, refCleanup);
-              } finally {
-                recordEffectDuration(current);
-              }
-            else runWithFiberInDEV(current, refCleanup);
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          } finally {
-            (current.refCleanup = null),
-              (current = current.alternate),
-              null != current && (current.refCleanup = null);
-          }
-        else if ("function" === typeof ref)
-          try {
-            if (shouldProfile(current))
-              try {
-                startEffectTimer(), runWithFiberInDEV(current, ref, null);
-              } finally {
-                recordEffectDuration(current);
-              }
-            else runWithFiberInDEV(current, ref, null);
-          } catch (error$7) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error$7);
-          }
-        else ref.current = null;
-    }
-    function commitProfiler(
-      finishedWork,
-      current,
-      commitStartTime,
-      effectDuration
-    ) {
-      var _finishedWork$memoize = finishedWork.memoizedProps,
-        id = _finishedWork$memoize.id,
-        onCommit = _finishedWork$memoize.onCommit;
-      _finishedWork$memoize = _finishedWork$memoize.onRender;
-      current = null === current ? "mount" : "update";
-      currentUpdateIsNested && (current = "nested-update");
-      "function" === typeof _finishedWork$memoize &&
-        _finishedWork$memoize(
-          id,
-          current,
-          finishedWork.actualDuration,
-          finishedWork.treeBaseDuration,
-          finishedWork.actualStartTime,
-          commitStartTime
-        );
-      "function" === typeof onCommit &&
-        onCommit(id, current, effectDuration, commitStartTime);
-    }
-    function commitProfilerPostCommitImpl(
-      finishedWork,
-      current,
-      commitStartTime,
-      passiveEffectDuration
-    ) {
-      var _finishedWork$memoize2 = finishedWork.memoizedProps;
-      finishedWork = _finishedWork$memoize2.id;
-      _finishedWork$memoize2 = _finishedWork$memoize2.onPostCommit;
-      current = null === current ? "mount" : "update";
-      currentUpdateIsNested && (current = "nested-update");
-      "function" === typeof _finishedWork$memoize2 &&
-        _finishedWork$memoize2(
-          finishedWork,
-          current,
-          passiveEffectDuration,
-          commitStartTime
-        );
-    }
-    function commitHostMount(finishedWork) {
-      var type = finishedWork.type,
-        props = finishedWork.memoizedProps,
-        instance = finishedWork.stateNode;
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          commitMount,
-          instance,
-          type,
-          props,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function commitHostUpdate(finishedWork, newProps, oldProps) {
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          commitUpdate,
-          finishedWork.stateNode,
-          finishedWork.type,
-          oldProps,
-          newProps,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function isHostParent(fiber) {
-      return (
-        5 === fiber.tag ||
-        3 === fiber.tag ||
-        26 === fiber.tag ||
-        (27 === fiber.tag && isSingletonScope(fiber.type)) ||
-        4 === fiber.tag
-      );
-    }
-    function getHostSibling(fiber) {
-      a: for (;;) {
-        for (; null === fiber.sibling; ) {
-          if (null === fiber.return || isHostParent(fiber.return)) return null;
-          fiber = fiber.return;
-        }
-        fiber.sibling.return = fiber.return;
-        for (
-          fiber = fiber.sibling;
-          5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
-
-        ) {
-          if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;
-          if (fiber.flags & 2) continue a;
-          if (null === fiber.child || 4 === fiber.tag) continue a;
-          else (fiber.child.return = fiber), (fiber = fiber.child);
-        }
-        if (!(fiber.flags & 2)) return fiber.stateNode;
-      }
-    }
-    function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
-      var tag = node.tag;
-      if (5 === tag || 6 === tag)
-        (node = node.stateNode),
-          before
-            ? (warnForReactChildrenConflict(parent),
-              (9 === parent.nodeType
-                ? parent.body
-                : "HTML" === parent.nodeName
-                  ? parent.ownerDocument.body
-                  : parent
-              ).insertBefore(node, before))
-            : (warnForReactChildrenConflict(parent),
-              (before =
-                9 === parent.nodeType
-                  ? parent.body
-                  : "HTML" === parent.nodeName
-                    ? parent.ownerDocument.body
-                    : parent),
-              before.appendChild(node),
-              (parent = parent._reactRootContainer),
-              (null !== parent && void 0 !== parent) ||
-                null !== before.onclick ||
-                (before.onclick = noop$1));
-      else if (
-        4 !== tag &&
-        (27 === tag &&
-          isSingletonScope(node.type) &&
-          ((parent = node.stateNode), (before = null)),
-        (node = node.child),
-        null !== node)
-      )
-        for (
-          insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-            node = node.sibling;
-          null !== node;
-
-        )
-          insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-            (node = node.sibling);
-    }
-    function insertOrAppendPlacementNode(node, before, parent) {
-      var tag = node.tag;
-      if (5 === tag || 6 === tag)
-        (node = node.stateNode),
-          before ? parent.insertBefore(node, before) : parent.appendChild(node);
-      else if (
-        4 !== tag &&
-        (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),
-        (node = node.child),
-        null !== node)
-      )
-        for (
-          insertOrAppendPlacementNode(node, before, parent),
-            node = node.sibling;
-          null !== node;
-
-        )
-          insertOrAppendPlacementNode(node, before, parent),
-            (node = node.sibling);
-    }
-    function commitPlacement(finishedWork) {
-      for (
-        var hostParentFiber, parentFiber = finishedWork.return;
-        null !== parentFiber;
-
-      ) {
-        if (isHostParent(parentFiber)) {
-          hostParentFiber = parentFiber;
-          break;
-        }
-        parentFiber = parentFiber.return;
-      }
-      if (null == hostParentFiber)
-        throw Error(
-          "Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."
-        );
-      switch (hostParentFiber.tag) {
-        case 27:
-          hostParentFiber = hostParentFiber.stateNode;
-          parentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(
-            finishedWork,
-            parentFiber,
-            hostParentFiber
-          );
-          break;
-        case 5:
-          parentFiber = hostParentFiber.stateNode;
-          hostParentFiber.flags & 32 &&
-            (resetTextContent(parentFiber), (hostParentFiber.flags &= -33));
-          hostParentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(
-            finishedWork,
-            hostParentFiber,
-            parentFiber
-          );
-          break;
-        case 3:
-        case 4:
-          hostParentFiber = hostParentFiber.stateNode.containerInfo;
-          parentFiber = getHostSibling(finishedWork);
-          insertOrAppendPlacementNodeIntoContainer(
-            finishedWork,
-            parentFiber,
-            hostParentFiber
-          );
-          break;
-        default:
-          throw Error(
-            "Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue."
-          );
-      }
-    }
-    function commitHostSingletonAcquisition(finishedWork) {
-      var singleton = finishedWork.stateNode,
-        props = finishedWork.memoizedProps;
-      try {
-        runWithFiberInDEV(
-          finishedWork,
-          acquireSingletonInstance,
-          finishedWork.type,
-          props,
-          singleton,
-          finishedWork
-        );
-      } catch (error) {
-        captureCommitPhaseError(finishedWork, finishedWork.return, error);
-      }
-    }
-    function isHydratingParent(current, finishedWork) {
-      return 31 === finishedWork.tag
-        ? ((finishedWork = finishedWork.memoizedState),
-          null !== current.memoizedState && null === finishedWork)
-        : 13 === finishedWork.tag
-          ? ((current = current.memoizedState),
-            (finishedWork = finishedWork.memoizedState),
-            null !== current &&
-              null !== current.dehydrated &&
-              (null === finishedWork || null === finishedWork.dehydrated))
-          : 3 === finishedWork.tag
-            ? current.memoizedState.isDehydrated &&
-              0 === (finishedWork.flags & 256)
-            : !1;
-    }
-    function commitBeforeMutationEffects(root, firstChild) {
-      root = root.containerInfo;
-      eventsEnabled = _enabled;
-      root = getActiveElementDeep(root);
-      if (hasSelectionCapabilities(root)) {
-        if ("selectionStart" in root)
-          var JSCompiler_temp = {
-            start: root.selectionStart,
-            end: root.selectionEnd
-          };
-        else
-          a: {
-            JSCompiler_temp =
-              ((JSCompiler_temp = root.ownerDocument) &&
-                JSCompiler_temp.defaultView) ||
-              window;
-            var selection =
-              JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();
-            if (selection && 0 !== selection.rangeCount) {
-              JSCompiler_temp = selection.anchorNode;
-              var anchorOffset = selection.anchorOffset,
-                focusNode = selection.focusNode;
-              selection = selection.focusOffset;
-              try {
-                JSCompiler_temp.nodeType, focusNode.nodeType;
-              } catch (e$2) {
-                JSCompiler_temp = null;
-                break a;
-              }
-              var length = 0,
-                start = -1,
-                end = -1,
-                indexWithinAnchor = 0,
-                indexWithinFocus = 0,
-                node = root,
-                parentNode = null;
-              b: for (;;) {
-                for (var next; ; ) {
-                  node !== JSCompiler_temp ||
-                    (0 !== anchorOffset && 3 !== node.nodeType) ||
-                    (start = length + anchorOffset);
-                  node !== focusNode ||
-                    (0 !== selection && 3 !== node.nodeType) ||
-                    (end = length + selection);
-                  3 === node.nodeType && (length += node.nodeValue.length);
-                  if (null === (next = node.firstChild)) break;
-                  parentNode = node;
-                  node = next;
-                }
-                for (;;) {
-                  if (node === root) break b;
-                  parentNode === JSCompiler_temp &&
-                    ++indexWithinAnchor === anchorOffset &&
-                    (start = length);
-                  parentNode === focusNode &&
-                    ++indexWithinFocus === selection &&
-                    (end = length);
-                  if (null !== (next = node.nextSibling)) break;
-                  node = parentNode;
-                  parentNode = node.parentNode;
-                }
-                node = next;
-              }
-              JSCompiler_temp =
-                -1 === start || -1 === end ? null : { start: start, end: end };
-            } else JSCompiler_temp = null;
-          }
-        JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };
-      } else JSCompiler_temp = null;
-      selectionInformation = {
-        focusedElem: root,
-        selectionRange: JSCompiler_temp
-      };
-      _enabled = !1;
-      for (nextEffect = firstChild; null !== nextEffect; )
-        if (
-          ((firstChild = nextEffect),
-          (root = firstChild.child),
-          0 !== (firstChild.subtreeFlags & 1028) && null !== root)
-        )
-          (root.return = firstChild), (nextEffect = root);
-        else
-          for (; null !== nextEffect; ) {
-            root = firstChild = nextEffect;
-            JSCompiler_temp = root.alternate;
-            anchorOffset = root.flags;
-            switch (root.tag) {
-              case 0:
-                if (
-                  0 !== (anchorOffset & 4) &&
-                  ((root = root.updateQueue),
-                  (root = null !== root ? root.events : null),
-                  null !== root)
-                )
-                  for (
-                    JSCompiler_temp = 0;
-                    JSCompiler_temp < root.length;
-                    JSCompiler_temp++
-                  )
-                    (anchorOffset = root[JSCompiler_temp]),
-                      (anchorOffset.ref.impl = anchorOffset.nextImpl);
-                break;
-              case 11:
-              case 15:
-                break;
-              case 1:
-                0 !== (anchorOffset & 1024) &&
-                  null !== JSCompiler_temp &&
-                  commitClassSnapshot(root, JSCompiler_temp);
-                break;
-              case 3:
-                if (0 !== (anchorOffset & 1024))
-                  if (
-                    ((root = root.stateNode.containerInfo),
-                    (JSCompiler_temp = root.nodeType),
-                    9 === JSCompiler_temp)
-                  )
-                    clearContainerSparingly(root);
-                  else if (1 === JSCompiler_temp)
-                    switch (root.nodeName) {
-                      case "HEAD":
-                      case "HTML":
-                      case "BODY":
-                        clearContainerSparingly(root);
-                        break;
-                      default:
-                        root.textContent = "";
-                    }
-                break;
-              case 5:
-              case 26:
-              case 27:
-              case 6:
-              case 4:
-              case 17:
-                break;
-              default:
-                if (0 !== (anchorOffset & 1024))
-                  throw Error(
-                    "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."
-                  );
-            }
-            root = firstChild.sibling;
-            if (null !== root) {
-              root.return = firstChild.return;
-              nextEffect = root;
-              break;
-            }
-            nextEffect = firstChild.return;
-          }
-    }
-    function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitHookLayoutEffects(finishedWork, Layout | HasEffect);
-          break;
-        case 1:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (flags & 4)
-            if (((finishedRoot = finishedWork.stateNode), null === current))
-              finishedWork.type.defaultProps ||
-                "ref" in finishedWork.memoizedProps ||
-                didWarnAboutReassigningProps ||
-                (finishedRoot.props !== finishedWork.memoizedProps &&
-                  console.error(
-                    "Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ),
-                finishedRoot.state !== finishedWork.memoizedState &&
-                  console.error(
-                    "Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  )),
-                shouldProfile(finishedWork)
-                  ? (startEffectTimer(),
-                    runWithFiberInDEV(
-                      finishedWork,
-                      callComponentDidMountInDEV,
-                      finishedWork,
-                      finishedRoot
-                    ),
-                    recordEffectDuration())
-                  : runWithFiberInDEV(
-                      finishedWork,
-                      callComponentDidMountInDEV,
-                      finishedWork,
-                      finishedRoot
-                    );
-            else {
-              var prevProps = resolveClassComponentProps(
-                finishedWork.type,
-                current.memoizedProps
-              );
-              current = current.memoizedState;
-              finishedWork.type.defaultProps ||
-                "ref" in finishedWork.memoizedProps ||
-                didWarnAboutReassigningProps ||
-                (finishedRoot.props !== finishedWork.memoizedProps &&
-                  console.error(
-                    "Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ),
-                finishedRoot.state !== finishedWork.memoizedState &&
-                  console.error(
-                    "Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",
-                    getComponentNameFromFiber(finishedWork) || "instance"
-                  ));
-              shouldProfile(finishedWork)
-                ? (startEffectTimer(),
-                  runWithFiberInDEV(
-                    finishedWork,
-                    callComponentDidUpdateInDEV,
-                    finishedWork,
-                    finishedRoot,
-                    prevProps,
-                    current,
-                    finishedRoot.__reactInternalSnapshotBeforeUpdate
-                  ),
-                  recordEffectDuration())
-                : runWithFiberInDEV(
-                    finishedWork,
-                    callComponentDidUpdateInDEV,
-                    finishedWork,
-                    finishedRoot,
-                    prevProps,
-                    current,
-                    finishedRoot.__reactInternalSnapshotBeforeUpdate
-                  );
-            }
-          flags & 64 && commitClassCallbacks(finishedWork);
-          flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 3:
-          current = pushNestedEffectDurations();
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (
-            flags & 64 &&
-            ((flags = finishedWork.updateQueue), null !== flags)
-          ) {
-            prevProps = null;
-            if (null !== finishedWork.child)
-              switch (finishedWork.child.tag) {
-                case 27:
-                case 5:
-                  prevProps = finishedWork.child.stateNode;
-                  break;
-                case 1:
-                  prevProps = finishedWork.child.stateNode;
-              }
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitCallbacks,
-                flags,
-                prevProps
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          finishedRoot.effectDuration += popNestedEffectDurations(current);
-          break;
-        case 27:
-          null === current &&
-            flags & 4 &&
-            commitHostSingletonAcquisition(finishedWork);
-        case 26:
-        case 5:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          if (null === current)
-            if (flags & 4) commitHostMount(finishedWork);
-            else if (flags & 64) {
-              finishedRoot = finishedWork.type;
-              current = finishedWork.memoizedProps;
-              prevProps = finishedWork.stateNode;
-              try {
-                runWithFiberInDEV(
-                  finishedWork,
-                  commitHydratedInstance,
-                  prevProps,
-                  finishedRoot,
-                  current,
-                  finishedWork
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  finishedWork,
-                  finishedWork.return,
-                  error
-                );
-              }
-            }
-          flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 12:
-          if (flags & 4) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-            finishedRoot = finishedWork.stateNode;
-            finishedRoot.effectDuration += bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfiler,
-                finishedWork,
-                current,
-                commitStartTime,
-                finishedRoot.effectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          break;
-        case 31:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 13:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-          flags & 4 &&
-            commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-          flags & 64 &&
-            ((finishedRoot = finishedWork.memoizedState),
-            null !== finishedRoot &&
-              ((finishedRoot = finishedRoot.dehydrated),
-              null !== finishedRoot &&
-                ((flags = retryDehydratedSuspenseBoundary.bind(
-                  null,
-                  finishedWork
-                )),
-                registerSuspenseInstanceRetry(finishedRoot, flags))));
-          break;
-        case 22:
-          flags =
-            null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;
-          if (!flags) {
-            current =
-              (null !== current && null !== current.memoizedState) ||
-              offscreenSubtreeWasHidden;
-            prevProps = offscreenSubtreeIsHidden;
-            var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-            offscreenSubtreeIsHidden = flags;
-            (offscreenSubtreeWasHidden = current) &&
-            !prevOffscreenSubtreeWasHidden
-              ? (recursivelyTraverseReappearLayoutEffects(
-                  finishedRoot,
-                  finishedWork,
-                  0 !== (finishedWork.subtreeFlags & 8772)
-                ),
-                (finishedWork.mode & ProfileMode) !== NoMode &&
-                  0 <= componentEffectStartTime &&
-                  0 <= componentEffectEndTime &&
-                  0.05 < componentEffectEndTime - componentEffectStartTime &&
-                  logComponentReappeared(
-                    finishedWork,
-                    componentEffectStartTime,
-                    componentEffectEndTime
-                  ))
-              : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-            offscreenSubtreeIsHidden = prevProps;
-            offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-          }
-          break;
-        case 30:
-          break;
-        default:
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            finishedWork,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          ),
-        null === finishedWork.alternate &&
-          null !== finishedWork.return &&
-          null !== finishedWork.return.alternate &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          (isHydratingParent(
-            finishedWork.return.alternate,
-            finishedWork.return
-          ) ||
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            )));
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function detachFiberAfterEffects(fiber) {
-      var alternate = fiber.alternate;
-      null !== alternate &&
-        ((fiber.alternate = null), detachFiberAfterEffects(alternate));
-      fiber.child = null;
-      fiber.deletions = null;
-      fiber.sibling = null;
-      5 === fiber.tag &&
-        ((alternate = fiber.stateNode),
-        null !== alternate && detachDeletedInstance(alternate));
-      fiber.stateNode = null;
-      fiber._debugOwner = null;
-      fiber.return = null;
-      fiber.dependencies = null;
-      fiber.memoizedProps = null;
-      fiber.memoizedState = null;
-      fiber.pendingProps = null;
-      fiber.stateNode = null;
-      fiber.updateQueue = null;
-    }
-    function recursivelyTraverseDeletionEffects(
-      finishedRoot,
-      nearestMountedAncestor,
-      parent
-    ) {
-      for (parent = parent.child; null !== parent; )
-        commitDeletionEffectsOnFiber(
-          finishedRoot,
-          nearestMountedAncestor,
-          parent
-        ),
-          (parent = parent.sibling);
-    }
-    function commitDeletionEffectsOnFiber(
-      finishedRoot,
-      nearestMountedAncestor,
-      deletedFiber
-    ) {
-      if (
-        injectedHook &&
-        "function" === typeof injectedHook.onCommitFiberUnmount
-      )
-        try {
-          injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (deletedFiber.tag) {
-        case 26:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          deletedFiber.memoizedState
-            ? deletedFiber.memoizedState.count--
-            : deletedFiber.stateNode &&
-              ((finishedRoot = deletedFiber.stateNode),
-              finishedRoot.parentNode.removeChild(finishedRoot));
-          break;
-        case 27:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-          var prevHostParent = hostParent,
-            prevHostParentIsContainer = hostParentIsContainer;
-          isSingletonScope(deletedFiber.type) &&
-            ((hostParent = deletedFiber.stateNode),
-            (hostParentIsContainer = !1));
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          runWithFiberInDEV(
-            deletedFiber,
-            releaseSingletonInstance,
-            deletedFiber.stateNode
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          break;
-        case 5:
-          offscreenSubtreeWasHidden ||
-            safelyDetachRef(deletedFiber, nearestMountedAncestor);
-        case 6:
-          prevHostParent = hostParent;
-          prevHostParentIsContainer = hostParentIsContainer;
-          hostParent = null;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          if (null !== hostParent)
-            if (hostParentIsContainer)
-              try {
-                runWithFiberInDEV(
-                  deletedFiber,
-                  removeChildFromContainer,
-                  hostParent,
-                  deletedFiber.stateNode
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  deletedFiber,
-                  nearestMountedAncestor,
-                  error
-                );
-              }
-            else
-              try {
-                runWithFiberInDEV(
-                  deletedFiber,
-                  removeChild,
-                  hostParent,
-                  deletedFiber.stateNode
-                );
-              } catch (error) {
-                captureCommitPhaseError(
-                  deletedFiber,
-                  nearestMountedAncestor,
-                  error
-                );
-              }
-          break;
-        case 18:
-          null !== hostParent &&
-            (hostParentIsContainer
-              ? ((finishedRoot = hostParent),
-                clearHydrationBoundary(
-                  9 === finishedRoot.nodeType
-                    ? finishedRoot.body
-                    : "HTML" === finishedRoot.nodeName
-                      ? finishedRoot.ownerDocument.body
-                      : finishedRoot,
-                  deletedFiber.stateNode
-                ),
-                retryIfBlockedOn(finishedRoot))
-              : clearHydrationBoundary(hostParent, deletedFiber.stateNode));
-          break;
-        case 4:
-          prevHostParent = hostParent;
-          prevHostParentIsContainer = hostParentIsContainer;
-          hostParent = deletedFiber.stateNode.containerInfo;
-          hostParentIsContainer = !0;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          hostParent = prevHostParent;
-          hostParentIsContainer = prevHostParentIsContainer;
-          break;
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          commitHookEffectListUnmount(
-            Insertion,
-            deletedFiber,
-            nearestMountedAncestor
-          );
-          offscreenSubtreeWasHidden ||
-            commitHookLayoutUnmountEffects(
-              deletedFiber,
-              nearestMountedAncestor,
-              Layout
-            );
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 1:
-          offscreenSubtreeWasHidden ||
-            (safelyDetachRef(deletedFiber, nearestMountedAncestor),
-            (prevHostParent = deletedFiber.stateNode),
-            "function" === typeof prevHostParent.componentWillUnmount &&
-              safelyCallComponentWillUnmount(
-                deletedFiber,
-                nearestMountedAncestor,
-                prevHostParent
-              ));
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 21:
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          break;
-        case 22:
-          offscreenSubtreeWasHidden =
-            (prevHostParent = offscreenSubtreeWasHidden) ||
-            null !== deletedFiber.memoizedState;
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-          offscreenSubtreeWasHidden = prevHostParent;
-          break;
-        default:
-          recursivelyTraverseDeletionEffects(
-            finishedRoot,
-            nearestMountedAncestor,
-            deletedFiber
-          );
-      }
-      (deletedFiber.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          deletedFiber,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {
-      if (
-        null === finishedWork.memoizedState &&
-        ((finishedRoot = finishedWork.alternate),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))
-      ) {
-        finishedRoot = finishedRoot.dehydrated;
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitHydratedActivityInstance,
-            finishedRoot
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-    }
-    function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {
-      if (
-        null === finishedWork.memoizedState &&
-        ((finishedRoot = finishedWork.alternate),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.memoizedState),
-          null !== finishedRoot &&
-            ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))
-      )
-        try {
-          runWithFiberInDEV(
-            finishedWork,
-            commitHydratedSuspenseInstance,
-            finishedRoot
-          );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-    }
-    function getRetryCache(finishedWork) {
-      switch (finishedWork.tag) {
-        case 31:
-        case 13:
-        case 19:
-          var retryCache = finishedWork.stateNode;
-          null === retryCache &&
-            (retryCache = finishedWork.stateNode = new PossiblyWeakSet());
-          return retryCache;
-        case 22:
-          return (
-            (finishedWork = finishedWork.stateNode),
-            (retryCache = finishedWork._retryCache),
-            null === retryCache &&
-              (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),
-            retryCache
-          );
-        default:
-          throw Error(
-            "Unexpected Suspense handler tag (" +
-              finishedWork.tag +
-              "). This is a bug in React."
-          );
-      }
-    }
-    function attachSuspenseRetryListeners(finishedWork, wakeables) {
-      var retryCache = getRetryCache(finishedWork);
-      wakeables.forEach(function (wakeable) {
-        if (!retryCache.has(wakeable)) {
-          retryCache.add(wakeable);
-          if (isDevToolsPresent)
-            if (null !== inProgressLanes && null !== inProgressRoot)
-              restorePendingUpdaters(inProgressRoot, inProgressLanes);
-            else
-              throw Error(
-                "Expected finished root and lanes to be set. This is a bug in React."
-              );
-          var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);
-          wakeable.then(retry, retry);
-        }
-      });
-    }
-    function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (null !== deletions)
-        for (var i = 0; i < deletions.length; i++) {
-          var root = root$jscomp$0,
-            returnFiber = parentFiber,
-            deletedFiber = deletions[i],
-            prevEffectStart = pushComponentEffectStart(),
-            parent = returnFiber;
-          a: for (; null !== parent; ) {
-            switch (parent.tag) {
-              case 27:
-                if (isSingletonScope(parent.type)) {
-                  hostParent = parent.stateNode;
-                  hostParentIsContainer = !1;
-                  break a;
-                }
-                break;
-              case 5:
-                hostParent = parent.stateNode;
-                hostParentIsContainer = !1;
-                break a;
-              case 3:
-              case 4:
-                hostParent = parent.stateNode.containerInfo;
-                hostParentIsContainer = !0;
-                break a;
-            }
-            parent = parent.return;
-          }
-          if (null === hostParent)
-            throw Error(
-              "Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."
-            );
-          commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);
-          hostParent = null;
-          hostParentIsContainer = !1;
-          (deletedFiber.mode & ProfileMode) !== NoMode &&
-            0 <= componentEffectStartTime &&
-            0 <= componentEffectEndTime &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentTrigger(
-              deletedFiber,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Unmount"
-            );
-          popComponentEffectStart(prevEffectStart);
-          root = deletedFiber;
-          returnFiber = root.alternate;
-          null !== returnFiber && (returnFiber.return = null);
-          root.return = null;
-        }
-      if (parentFiber.subtreeFlags & 13886)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),
-            (parentFiber = parentFiber.sibling);
-    }
-    function commitMutationEffectsOnFiber(finishedWork, root) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        current = finishedWork.alternate,
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            (commitHookEffectListUnmount(
-              Insertion | HasEffect,
-              finishedWork,
-              finishedWork.return
-            ),
-            commitHookEffectListMount(Insertion | HasEffect, finishedWork),
-            commitHookLayoutUnmountEffects(
-              finishedWork,
-              finishedWork.return,
-              Layout | HasEffect
-            ));
-          break;
-        case 1:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (
-            flags & 64 &&
-            offscreenSubtreeIsHidden &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags && ((current = flags.callbacks), null !== current))
-          ) {
-            var existingHiddenCallbacks = flags.shared.hiddenCallbacks;
-            flags.shared.hiddenCallbacks =
-              null === existingHiddenCallbacks
-                ? current
-                : existingHiddenCallbacks.concat(current);
-          }
-          break;
-        case 26:
-          existingHiddenCallbacks = currentHoistableRoot;
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (flags & 4) {
-            var currentResource =
-              null !== current ? current.memoizedState : null;
-            flags = finishedWork.memoizedState;
-            if (null === current)
-              if (null === flags)
-                if (null === finishedWork.stateNode) {
-                  a: {
-                    flags = finishedWork.type;
-                    current = finishedWork.memoizedProps;
-                    existingHiddenCallbacks =
-                      existingHiddenCallbacks.ownerDocument ||
-                      existingHiddenCallbacks;
-                    b: switch (flags) {
-                      case "title":
-                        currentResource =
-                          existingHiddenCallbacks.getElementsByTagName(
-                            "title"
-                          )[0];
-                        if (
-                          !currentResource ||
-                          currentResource[internalHoistableMarker] ||
-                          currentResource[internalInstanceKey] ||
-                          currentResource.namespaceURI === SVG_NAMESPACE ||
-                          currentResource.hasAttribute("itemprop")
-                        )
-                          (currentResource =
-                            existingHiddenCallbacks.createElement(flags)),
-                            existingHiddenCallbacks.head.insertBefore(
-                              currentResource,
-                              existingHiddenCallbacks.querySelector(
-                                "head > title"
-                              )
-                            );
-                        setInitialProperties(currentResource, flags, current);
-                        currentResource[internalInstanceKey] = finishedWork;
-                        markNodeAsHoistable(currentResource);
-                        flags = currentResource;
-                        break a;
-                      case "link":
-                        var maybeNodes = getHydratableHoistableCache(
-                          "link",
-                          "href",
-                          existingHiddenCallbacks
-                        ).get(flags + (current.href || ""));
-                        if (maybeNodes)
-                          for (var i = 0; i < maybeNodes.length; i++)
-                            if (
-                              ((currentResource = maybeNodes[i]),
-                              currentResource.getAttribute("href") ===
-                                (null == current.href || "" === current.href
-                                  ? null
-                                  : current.href) &&
-                                currentResource.getAttribute("rel") ===
-                                  (null == current.rel ? null : current.rel) &&
-                                currentResource.getAttribute("title") ===
-                                  (null == current.title
-                                    ? null
-                                    : current.title) &&
-                                currentResource.getAttribute("crossorigin") ===
-                                  (null == current.crossOrigin
-                                    ? null
-                                    : current.crossOrigin))
-                            ) {
-                              maybeNodes.splice(i, 1);
-                              break b;
-                            }
-                        currentResource =
-                          existingHiddenCallbacks.createElement(flags);
-                        setInitialProperties(currentResource, flags, current);
-                        existingHiddenCallbacks.head.appendChild(
-                          currentResource
-                        );
-                        break;
-                      case "meta":
-                        if (
-                          (maybeNodes = getHydratableHoistableCache(
-                            "meta",
-                            "content",
-                            existingHiddenCallbacks
-                          ).get(flags + (current.content || "")))
-                        )
-                          for (i = 0; i < maybeNodes.length; i++)
-                            if (
-                              ((currentResource = maybeNodes[i]),
-                              checkAttributeStringCoercion(
-                                current.content,
-                                "content"
-                              ),
-                              currentResource.getAttribute("content") ===
-                                (null == current.content
-                                  ? null
-                                  : "" + current.content) &&
-                                currentResource.getAttribute("name") ===
-                                  (null == current.name
-                                    ? null
-                                    : current.name) &&
-                                currentResource.getAttribute("property") ===
-                                  (null == current.property
-                                    ? null
-                                    : current.property) &&
-                                currentResource.getAttribute("http-equiv") ===
-                                  (null == current.httpEquiv
-                                    ? null
-                                    : current.httpEquiv) &&
-                                currentResource.getAttribute("charset") ===
-                                  (null == current.charSet
-                                    ? null
-                                    : current.charSet))
-                            ) {
-                              maybeNodes.splice(i, 1);
-                              break b;
-                            }
-                        currentResource =
-                          existingHiddenCallbacks.createElement(flags);
-                        setInitialProperties(currentResource, flags, current);
-                        existingHiddenCallbacks.head.appendChild(
-                          currentResource
-                        );
-                        break;
-                      default:
-                        throw Error(
-                          'getNodesForType encountered a type it did not expect: "' +
-                            flags +
-                            '". This is a bug in React.'
-                        );
-                    }
-                    currentResource[internalInstanceKey] = finishedWork;
-                    markNodeAsHoistable(currentResource);
-                    flags = currentResource;
-                  }
-                  finishedWork.stateNode = flags;
-                } else
-                  mountHoistable(
-                    existingHiddenCallbacks,
-                    finishedWork.type,
-                    finishedWork.stateNode
-                  );
-              else
-                finishedWork.stateNode = acquireResource(
-                  existingHiddenCallbacks,
-                  flags,
-                  finishedWork.memoizedProps
-                );
-            else
-              currentResource !== flags
-                ? (null === currentResource
-                    ? null !== current.stateNode &&
-                      ((current = current.stateNode),
-                      current.parentNode.removeChild(current))
-                    : currentResource.count--,
-                  null === flags
-                    ? mountHoistable(
-                        existingHiddenCallbacks,
-                        finishedWork.type,
-                        finishedWork.stateNode
-                      )
-                    : acquireResource(
-                        existingHiddenCallbacks,
-                        flags,
-                        finishedWork.memoizedProps
-                      ))
-                : null === flags &&
-                  null !== finishedWork.stateNode &&
-                  commitHostUpdate(
-                    finishedWork,
-                    finishedWork.memoizedProps,
-                    current.memoizedProps
-                  );
-          }
-          break;
-        case 27:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          null !== current &&
-            flags & 4 &&
-            commitHostUpdate(
-              finishedWork,
-              finishedWork.memoizedProps,
-              current.memoizedProps
-            );
-          break;
-        case 5:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 512 &&
-            (offscreenSubtreeWasHidden ||
-              null === current ||
-              safelyDetachRef(current, current.return));
-          if (finishedWork.flags & 32) {
-            existingHiddenCallbacks = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                resetTextContent,
-                existingHiddenCallbacks
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          flags & 4 &&
-            null != finishedWork.stateNode &&
-            ((existingHiddenCallbacks = finishedWork.memoizedProps),
-            commitHostUpdate(
-              finishedWork,
-              existingHiddenCallbacks,
-              null !== current ? current.memoizedProps : existingHiddenCallbacks
-            ));
-          flags & 1024 &&
-            ((needsFormReset = !0),
-            "form" !== finishedWork.type &&
-              console.error(
-                "Unexpected host component type. Expected a form. This is a bug in React."
-              ));
-          break;
-        case 6:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          if (flags & 4) {
-            if (null === finishedWork.stateNode)
-              throw Error(
-                "This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue."
-              );
-            flags = finishedWork.memoizedProps;
-            current = null !== current ? current.memoizedProps : flags;
-            existingHiddenCallbacks = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitTextUpdate,
-                existingHiddenCallbacks,
-                current,
-                flags
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          break;
-        case 3:
-          existingHiddenCallbacks = pushNestedEffectDurations();
-          tagCaches = null;
-          currentResource = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(root.containerInfo);
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          currentHoistableRoot = currentResource;
-          commitReconciliationEffects(finishedWork);
-          if (
-            flags & 4 &&
-            null !== current &&
-            current.memoizedState.isDehydrated
-          )
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitHydratedContainer,
-                root.containerInfo
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          needsFormReset &&
-            ((needsFormReset = !1), recursivelyResetForms(finishedWork));
-          root.effectDuration += popNestedEffectDurations(
-            existingHiddenCallbacks
-          );
-          break;
-        case 4:
-          flags = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(
-            finishedWork.stateNode.containerInfo
-          );
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          currentHoistableRoot = flags;
-          break;
-        case 12:
-          flags = pushNestedEffectDurations();
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          finishedWork.stateNode.effectDuration +=
-            bubbleNestedEffectDurations(flags);
-          break;
-        case 31:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 13:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          finishedWork.child.flags & 8192 &&
-            (null !== finishedWork.memoizedState) !==
-              (null !== current && null !== current.memoizedState) &&
-            (globalMostRecentFallbackTime = now$1());
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 22:
-          existingHiddenCallbacks = null !== finishedWork.memoizedState;
-          var wasHidden = null !== current && null !== current.memoizedState,
-            prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,
-            prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-          offscreenSubtreeIsHidden =
-            prevOffscreenSubtreeIsHidden || existingHiddenCallbacks;
-          offscreenSubtreeWasHidden =
-            prevOffscreenSubtreeWasHidden || wasHidden;
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-          offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
-          wasHidden &&
-            !existingHiddenCallbacks &&
-            !prevOffscreenSubtreeIsHidden &&
-            !prevOffscreenSubtreeWasHidden &&
-            (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 <= componentEffectStartTime &&
-            0 <= componentEffectEndTime &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentReappeared(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime
-            );
-          commitReconciliationEffects(finishedWork);
-          if (flags & 8192)
-            a: for (
-              root = finishedWork.stateNode,
-                root._visibility = existingHiddenCallbacks
-                  ? root._visibility & ~OffscreenVisible
-                  : root._visibility | OffscreenVisible,
-                !existingHiddenCallbacks ||
-                  null === current ||
-                  wasHidden ||
-                  offscreenSubtreeIsHidden ||
-                  offscreenSubtreeWasHidden ||
-                  (recursivelyTraverseDisappearLayoutEffects(finishedWork),
-                  (finishedWork.mode & ProfileMode) !== NoMode &&
-                    0 <= componentEffectStartTime &&
-                    0 <= componentEffectEndTime &&
-                    0.05 < componentEffectEndTime - componentEffectStartTime &&
-                    logComponentTrigger(
-                      finishedWork,
-                      componentEffectStartTime,
-                      componentEffectEndTime,
-                      "Disconnect"
-                    )),
-                current = null,
-                root = finishedWork;
-              ;
-
-            ) {
-              if (5 === root.tag || 26 === root.tag) {
-                if (null === current) {
-                  wasHidden = current = root;
-                  try {
-                    (currentResource = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideInstance,
-                            currentResource
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideInstance,
-                            wasHidden.stateNode,
-                            wasHidden.memoizedProps
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (6 === root.tag) {
-                if (null === current) {
-                  wasHidden = root;
-                  try {
-                    (maybeNodes = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideTextInstance,
-                            maybeNodes
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideTextInstance,
-                            maybeNodes,
-                            wasHidden.memoizedProps
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (18 === root.tag) {
-                if (null === current) {
-                  wasHidden = root;
-                  try {
-                    (i = wasHidden.stateNode),
-                      existingHiddenCallbacks
-                        ? runWithFiberInDEV(
-                            wasHidden,
-                            hideDehydratedBoundary,
-                            i
-                          )
-                        : runWithFiberInDEV(
-                            wasHidden,
-                            unhideDehydratedBoundary,
-                            wasHidden.stateNode
-                          );
-                  } catch (error) {
-                    captureCommitPhaseError(wasHidden, wasHidden.return, error);
-                  }
-                }
-              } else if (
-                ((22 !== root.tag && 23 !== root.tag) ||
-                  null === root.memoizedState ||
-                  root === finishedWork) &&
-                null !== root.child
-              ) {
-                root.child.return = root;
-                root = root.child;
-                continue;
-              }
-              if (root === finishedWork) break a;
-              for (; null === root.sibling; ) {
-                if (null === root.return || root.return === finishedWork)
-                  break a;
-                current === root && (current = null);
-                root = root.return;
-              }
-              current === root && (current = null);
-              root.sibling.return = root.return;
-              root = root.sibling;
-            }
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((current = flags.retryQueue),
-              null !== current &&
-                ((flags.retryQueue = null),
-                attachSuspenseRetryListeners(finishedWork, current))));
-          break;
-        case 19:
-          recursivelyTraverseMutationEffects(root, finishedWork);
-          commitReconciliationEffects(finishedWork);
-          flags & 4 &&
-            ((flags = finishedWork.updateQueue),
-            null !== flags &&
-              ((finishedWork.updateQueue = null),
-              attachSuspenseRetryListeners(finishedWork, flags)));
-          break;
-        case 30:
-          break;
-        case 21:
-          break;
-        default:
-          recursivelyTraverseMutationEffects(root, finishedWork),
-            commitReconciliationEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            finishedWork,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          ),
-        null === finishedWork.alternate &&
-          null !== finishedWork.return &&
-          null !== finishedWork.return.alternate &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          (isHydratingParent(
-            finishedWork.return.alternate,
-            finishedWork.return
-          ) ||
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            )));
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function commitReconciliationEffects(finishedWork) {
-      var flags = finishedWork.flags;
-      if (flags & 2) {
-        try {
-          runWithFiberInDEV(finishedWork, commitPlacement, finishedWork);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-        finishedWork.flags &= -3;
-      }
-      flags & 4096 && (finishedWork.flags &= -4097);
-    }
-    function recursivelyResetForms(parentFiber) {
-      if (parentFiber.subtreeFlags & 1024)
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var fiber = parentFiber;
-          recursivelyResetForms(fiber);
-          5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();
-          parentFiber = parentFiber.sibling;
-        }
-    }
-    function recursivelyTraverseLayoutEffects(root, parentFiber) {
-      if (parentFiber.subtreeFlags & 8772)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),
-            (parentFiber = parentFiber.sibling);
-    }
-    function disappearLayoutEffects(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 14:
-        case 15:
-          commitHookLayoutUnmountEffects(
-            finishedWork,
-            finishedWork.return,
-            Layout
-          );
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 1:
-          safelyDetachRef(finishedWork, finishedWork.return);
-          var instance = finishedWork.stateNode;
-          "function" === typeof instance.componentWillUnmount &&
-            safelyCallComponentWillUnmount(
-              finishedWork,
-              finishedWork.return,
-              instance
-            );
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 27:
-          runWithFiberInDEV(
-            finishedWork,
-            releaseSingletonInstance,
-            finishedWork.stateNode
-          );
-        case 26:
-        case 5:
-          safelyDetachRef(finishedWork, finishedWork.return);
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 22:
-          null === finishedWork.memoizedState &&
-            recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        case 30:
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-          break;
-        default:
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function recursivelyTraverseDisappearLayoutEffects(parentFiber) {
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        disappearLayoutEffects(parentFiber),
-          (parentFiber = parentFiber.sibling);
-    }
-    function reappearLayoutEffects(
-      finishedRoot,
-      current,
-      finishedWork,
-      includeWorkInProgressEffects
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          commitHookLayoutEffects(finishedWork, Layout);
-          break;
-        case 1:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          current = finishedWork.stateNode;
-          "function" === typeof current.componentDidMount &&
-            runWithFiberInDEV(
-              finishedWork,
-              callComponentDidMountInDEV,
-              finishedWork,
-              current
-            );
-          current = finishedWork.updateQueue;
-          if (null !== current) {
-            finishedRoot = finishedWork.stateNode;
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitHiddenCallbacks,
-                current,
-                finishedRoot
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          }
-          includeWorkInProgressEffects &&
-            flags & 64 &&
-            commitClassCallbacks(finishedWork);
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 27:
-          commitHostSingletonAcquisition(finishedWork);
-        case 26:
-        case 5:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            null === current &&
-            flags & 4 &&
-            commitHostMount(finishedWork);
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 12:
-          if (includeWorkInProgressEffects && flags & 4) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-            includeWorkInProgressEffects = finishedWork.stateNode;
-            includeWorkInProgressEffects.effectDuration +=
-              bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfiler,
-                finishedWork,
-                current,
-                commitStartTime,
-                includeWorkInProgressEffects.effectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-          break;
-        case 31:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            flags & 4 &&
-            commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 13:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-          includeWorkInProgressEffects &&
-            flags & 4 &&
-            commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-          break;
-        case 22:
-          null === finishedWork.memoizedState &&
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-          safelyAttachRef(finishedWork, finishedWork.return);
-          break;
-        case 30:
-          break;
-        default:
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    }
-    function recursivelyTraverseReappearLayoutEffects(
-      finishedRoot,
-      parentFiber,
-      includeWorkInProgressEffects
-    ) {
-      includeWorkInProgressEffects =
-        includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        reappearLayoutEffects(
-          finishedRoot,
-          parentFiber.alternate,
-          parentFiber,
-          includeWorkInProgressEffects
-        ),
-          (parentFiber = parentFiber.sibling);
-    }
-    function commitOffscreenPassiveMountEffects(current, finishedWork) {
-      var previousCache = null;
-      null !== current &&
-        null !== current.memoizedState &&
-        null !== current.memoizedState.cachePool &&
-        (previousCache = current.memoizedState.cachePool.pool);
-      current = null;
-      null !== finishedWork.memoizedState &&
-        null !== finishedWork.memoizedState.cachePool &&
-        (current = finishedWork.memoizedState.cachePool.pool);
-      current !== previousCache &&
-        (null != current && retainCache(current),
-        null != previousCache && releaseCache(previousCache));
-    }
-    function commitCachePassiveMountEffect(current, finishedWork) {
-      current = null;
-      null !== finishedWork.alternate &&
-        (current = finishedWork.alternate.memoizedState.cache);
-      finishedWork = finishedWork.memoizedState.cache;
-      finishedWork !== current &&
-        (retainCache(finishedWork), null != current && releaseCache(current));
-    }
-    function recursivelyTraversePassiveMountEffects(
-      root,
-      parentFiber,
-      committedLanes,
-      committedTransitions,
-      endTime
-    ) {
-      if (
-        parentFiber.subtreeFlags & 10256 ||
-        (0 !== parentFiber.actualDuration &&
-          (null === parentFiber.alternate ||
-            parentFiber.alternate.child !== parentFiber.child))
-      )
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var nextSibling = parentFiber.sibling;
-          commitPassiveMountOnFiber(
-            root,
-            parentFiber,
-            committedLanes,
-            committedTransitions,
-            null !== nextSibling ? nextSibling.actualStartTime : endTime
-          );
-          parentFiber = nextSibling;
-        }
-    }
-    function commitPassiveMountOnFiber(
-      finishedRoot,
-      finishedWork,
-      committedLanes,
-      committedTransitions,
-      endTime
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        prevDeepEquality = alreadyWarnedForDeepEquality,
-        flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 < finishedWork.actualStartTime &&
-            0 !== (finishedWork.flags & 1) &&
-            logComponentRender(
-              finishedWork,
-              finishedWork.actualStartTime,
-              endTime,
-              inHydratedSubtree,
-              committedLanes
-            );
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 &&
-            commitHookPassiveMountEffects(finishedWork, Passive | HasEffect);
-          break;
-        case 1:
-          (finishedWork.mode & ProfileMode) !== NoMode &&
-            0 < finishedWork.actualStartTime &&
-            (0 !== (finishedWork.flags & 128)
-              ? logComponentErrored(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime,
-                  []
-                )
-              : 0 !== (finishedWork.flags & 1) &&
-                logComponentRender(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime,
-                  inHydratedSubtree,
-                  committedLanes
-                ));
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          break;
-        case 3:
-          var prevProfilerEffectDuration = pushNestedEffectDurations(),
-            wasInHydratedSubtree = inHydratedSubtree;
-          inHydratedSubtree =
-            null !== finishedWork.alternate &&
-            finishedWork.alternate.memoizedState.isDehydrated &&
-            0 === (finishedWork.flags & 256);
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = wasInHydratedSubtree;
-          flags & 2048 &&
-            ((committedLanes = null),
-            null !== finishedWork.alternate &&
-              (committedLanes = finishedWork.alternate.memoizedState.cache),
-            (committedTransitions = finishedWork.memoizedState.cache),
-            committedTransitions !== committedLanes &&
-              (retainCache(committedTransitions),
-              null != committedLanes && releaseCache(committedLanes)));
-          finishedRoot.passiveEffectDuration += popNestedEffectDurations(
-            prevProfilerEffectDuration
-          );
-          break;
-        case 12:
-          if (flags & 2048) {
-            flags = pushNestedEffectDurations();
-            recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            );
-            finishedRoot = finishedWork.stateNode;
-            finishedRoot.passiveEffectDuration +=
-              bubbleNestedEffectDurations(flags);
-            try {
-              runWithFiberInDEV(
-                finishedWork,
-                commitProfilerPostCommitImpl,
-                finishedWork,
-                finishedWork.alternate,
-                commitStartTime,
-                finishedRoot.passiveEffectDuration
-              );
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-          } else
-            recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            );
-          break;
-        case 31:
-          flags = inHydratedSubtree;
-          prevProfilerEffectDuration =
-            null !== finishedWork.alternate
-              ? finishedWork.alternate.memoizedState
-              : null;
-          wasInHydratedSubtree = finishedWork.memoizedState;
-          null !== prevProfilerEffectDuration && null === wasInHydratedSubtree
-            ? ((wasInHydratedSubtree = finishedWork.deletions),
-              null !== wasInHydratedSubtree &&
-              0 < wasInHydratedSubtree.length &&
-              18 === wasInHydratedSubtree[0].tag
-                ? ((inHydratedSubtree = !1),
-                  (prevProfilerEffectDuration =
-                    prevProfilerEffectDuration.hydrationErrors),
-                  null !== prevProfilerEffectDuration &&
-                    logComponentErrored(
-                      finishedWork,
-                      finishedWork.actualStartTime,
-                      endTime,
-                      prevProfilerEffectDuration
-                    ))
-                : (inHydratedSubtree = !0))
-            : (inHydratedSubtree = !1);
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = flags;
-          break;
-        case 13:
-          flags = inHydratedSubtree;
-          prevProfilerEffectDuration =
-            null !== finishedWork.alternate
-              ? finishedWork.alternate.memoizedState
-              : null;
-          wasInHydratedSubtree = finishedWork.memoizedState;
-          null === prevProfilerEffectDuration ||
-          null === prevProfilerEffectDuration.dehydrated ||
-          (null !== wasInHydratedSubtree &&
-            null !== wasInHydratedSubtree.dehydrated)
-            ? (inHydratedSubtree = !1)
-            : ((wasInHydratedSubtree = finishedWork.deletions),
-              null !== wasInHydratedSubtree &&
-              0 < wasInHydratedSubtree.length &&
-              18 === wasInHydratedSubtree[0].tag
-                ? ((inHydratedSubtree = !1),
-                  (prevProfilerEffectDuration =
-                    prevProfilerEffectDuration.hydrationErrors),
-                  null !== prevProfilerEffectDuration &&
-                    logComponentErrored(
-                      finishedWork,
-                      finishedWork.actualStartTime,
-                      endTime,
-                      prevProfilerEffectDuration
-                    ))
-                : (inHydratedSubtree = !0));
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          inHydratedSubtree = flags;
-          break;
-        case 23:
-          break;
-        case 22:
-          wasInHydratedSubtree = finishedWork.stateNode;
-          prevProfilerEffectDuration = finishedWork.alternate;
-          null !== finishedWork.memoizedState
-            ? wasInHydratedSubtree._visibility &
-              OffscreenPassiveEffectsConnected
-              ? recursivelyTraversePassiveMountEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-              : recursivelyTraverseAtomicPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-            : wasInHydratedSubtree._visibility &
-                OffscreenPassiveEffectsConnected
-              ? recursivelyTraversePassiveMountEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-              : ((wasInHydratedSubtree._visibility |=
-                  OffscreenPassiveEffectsConnected),
-                recursivelyTraverseReconnectPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  0 !== (finishedWork.subtreeFlags & 10256) ||
-                    (0 !== finishedWork.actualDuration &&
-                      (null === finishedWork.alternate ||
-                        finishedWork.alternate.child !== finishedWork.child)),
-                  endTime
-                ),
-                (finishedWork.mode & ProfileMode) === NoMode ||
-                  inHydratedSubtree ||
-                  ((finishedRoot = finishedWork.actualStartTime),
-                  0 <= finishedRoot &&
-                    0.05 < endTime - finishedRoot &&
-                    logComponentReappeared(finishedWork, finishedRoot, endTime),
-                  0 <= componentEffectStartTime &&
-                    0 <= componentEffectEndTime &&
-                    0.05 < componentEffectEndTime - componentEffectStartTime &&
-                    logComponentReappeared(
-                      finishedWork,
-                      componentEffectStartTime,
-                      componentEffectEndTime
-                    )));
-          flags & 2048 &&
-            commitOffscreenPassiveMountEffects(
-              prevProfilerEffectDuration,
-              finishedWork
-            );
-          break;
-        case 24:
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 &&
-            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-          break;
-        default:
-          recursivelyTraversePassiveMountEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-      }
-      if ((finishedWork.mode & ProfileMode) !== NoMode) {
-        if (
-          (finishedRoot =
-            !inHydratedSubtree &&
-            null === finishedWork.alternate &&
-            null !== finishedWork.return &&
-            null !== finishedWork.return.alternate)
-        )
-          (committedLanes = finishedWork.actualStartTime),
-            0 <= committedLanes &&
-              0.05 < endTime - committedLanes &&
-              logComponentTrigger(
-                finishedWork,
-                committedLanes,
-                endTime,
-                "Mount"
-              );
-        0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-            logComponentEffect(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              componentEffectDuration,
-              componentEffectErrors
-            ),
-          finishedRoot &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Mount"
-            ));
-      }
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      alreadyWarnedForDeepEquality = prevDeepEquality;
-    }
-    function recursivelyTraverseReconnectPassiveEffects(
-      finishedRoot,
-      parentFiber,
-      committedLanes,
-      committedTransitions,
-      includeWorkInProgressEffects,
-      endTime
-    ) {
-      includeWorkInProgressEffects =
-        includeWorkInProgressEffects &&
-        (0 !== (parentFiber.subtreeFlags & 10256) ||
-          (0 !== parentFiber.actualDuration &&
-            (null === parentFiber.alternate ||
-              parentFiber.alternate.child !== parentFiber.child)));
-      for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-        var nextSibling = parentFiber.sibling;
-        reconnectPassiveEffects(
-          finishedRoot,
-          parentFiber,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects,
-          null !== nextSibling ? nextSibling.actualStartTime : endTime
-        );
-        parentFiber = nextSibling;
-      }
-    }
-    function reconnectPassiveEffects(
-      finishedRoot,
-      finishedWork,
-      committedLanes,
-      committedTransitions,
-      includeWorkInProgressEffects,
-      endTime
-    ) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-        prevDeepEquality = alreadyWarnedForDeepEquality;
-      includeWorkInProgressEffects &&
-        (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 < finishedWork.actualStartTime &&
-        0 !== (finishedWork.flags & 1) &&
-        logComponentRender(
-          finishedWork,
-          finishedWork.actualStartTime,
-          endTime,
-          inHydratedSubtree,
-          committedLanes
-        );
-      var flags = finishedWork.flags;
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-          commitHookPassiveMountEffects(finishedWork, Passive);
-          break;
-        case 23:
-          break;
-        case 22:
-          var _instance2 = finishedWork.stateNode;
-          null !== finishedWork.memoizedState
-            ? _instance2._visibility & OffscreenPassiveEffectsConnected
-              ? recursivelyTraverseReconnectPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  includeWorkInProgressEffects,
-                  endTime
-                )
-              : recursivelyTraverseAtomicPassiveEffects(
-                  finishedRoot,
-                  finishedWork,
-                  committedLanes,
-                  committedTransitions,
-                  endTime
-                )
-            : ((_instance2._visibility |= OffscreenPassiveEffectsConnected),
-              recursivelyTraverseReconnectPassiveEffects(
-                finishedRoot,
-                finishedWork,
-                committedLanes,
-                committedTransitions,
-                includeWorkInProgressEffects,
-                endTime
-              ));
-          includeWorkInProgressEffects &&
-            flags & 2048 &&
-            commitOffscreenPassiveMountEffects(
-              finishedWork.alternate,
-              finishedWork
-            );
-          break;
-        case 24:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-          includeWorkInProgressEffects &&
-            flags & 2048 &&
-            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-          break;
-        default:
-          recursivelyTraverseReconnectPassiveEffects(
-            finishedRoot,
-            finishedWork,
-            committedLanes,
-            committedTransitions,
-            includeWorkInProgressEffects,
-            endTime
-          );
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectErrors = prevEffectErrors;
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      alreadyWarnedForDeepEquality = prevDeepEquality;
-    }
-    function recursivelyTraverseAtomicPassiveEffects(
-      finishedRoot$jscomp$0,
-      parentFiber,
-      committedLanes$jscomp$0,
-      committedTransitions$jscomp$0,
-      endTime$jscomp$0
-    ) {
-      if (
-        parentFiber.subtreeFlags & 10256 ||
-        (0 !== parentFiber.actualDuration &&
-          (null === parentFiber.alternate ||
-            parentFiber.alternate.child !== parentFiber.child))
-      )
-        for (var child = parentFiber.child; null !== child; ) {
-          parentFiber = child.sibling;
-          var finishedRoot = finishedRoot$jscomp$0,
-            committedLanes = committedLanes$jscomp$0,
-            committedTransitions = committedTransitions$jscomp$0,
-            endTime =
-              null !== parentFiber
-                ? parentFiber.actualStartTime
-                : endTime$jscomp$0,
-            prevDeepEquality = alreadyWarnedForDeepEquality;
-          (child.mode & ProfileMode) !== NoMode &&
-            0 < child.actualStartTime &&
-            0 !== (child.flags & 1) &&
-            logComponentRender(
-              child,
-              child.actualStartTime,
-              endTime,
-              inHydratedSubtree,
-              committedLanes
-            );
-          var flags = child.flags;
-          switch (child.tag) {
-            case 22:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-              flags & 2048 &&
-                commitOffscreenPassiveMountEffects(child.alternate, child);
-              break;
-            case 24:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-              flags & 2048 &&
-                commitCachePassiveMountEffect(child.alternate, child);
-              break;
-            default:
-              recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              );
-          }
-          alreadyWarnedForDeepEquality = prevDeepEquality;
-          child = parentFiber;
-        }
-    }
-    function recursivelyAccumulateSuspenseyCommit(
-      parentFiber,
-      committedLanes,
-      suspendedState
-    ) {
-      if (parentFiber.subtreeFlags & suspenseyCommitFlag)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          accumulateSuspenseyCommitOnFiber(
-            parentFiber,
-            committedLanes,
-            suspendedState
-          ),
-            (parentFiber = parentFiber.sibling);
-    }
-    function accumulateSuspenseyCommitOnFiber(
-      fiber,
-      committedLanes,
-      suspendedState
-    ) {
-      switch (fiber.tag) {
-        case 26:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          fiber.flags & suspenseyCommitFlag &&
-            null !== fiber.memoizedState &&
-            suspendResource(
-              suspendedState,
-              currentHoistableRoot,
-              fiber.memoizedState,
-              fiber.memoizedProps
-            );
-          break;
-        case 5:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          break;
-        case 3:
-        case 4:
-          var previousHoistableRoot = currentHoistableRoot;
-          currentHoistableRoot = getHoistableRoot(
-            fiber.stateNode.containerInfo
-          );
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-          currentHoistableRoot = previousHoistableRoot;
-          break;
-        case 22:
-          null === fiber.memoizedState &&
-            ((previousHoistableRoot = fiber.alternate),
-            null !== previousHoistableRoot &&
-            null !== previousHoistableRoot.memoizedState
-              ? ((previousHoistableRoot = suspenseyCommitFlag),
-                (suspenseyCommitFlag = 16777216),
-                recursivelyAccumulateSuspenseyCommit(
-                  fiber,
-                  committedLanes,
-                  suspendedState
-                ),
-                (suspenseyCommitFlag = previousHoistableRoot))
-              : recursivelyAccumulateSuspenseyCommit(
-                  fiber,
-                  committedLanes,
-                  suspendedState
-                ));
-          break;
-        default:
-          recursivelyAccumulateSuspenseyCommit(
-            fiber,
-            committedLanes,
-            suspendedState
-          );
-      }
-    }
-    function detachAlternateSiblings(parentFiber) {
-      var previousFiber = parentFiber.alternate;
-      if (
-        null !== previousFiber &&
-        ((parentFiber = previousFiber.child), null !== parentFiber)
-      ) {
-        previousFiber.child = null;
-        do
-          (previousFiber = parentFiber.sibling),
-            (parentFiber.sibling = null),
-            (parentFiber = previousFiber);
-        while (null !== parentFiber);
-      }
-    }
-    function recursivelyTraversePassiveUnmountEffects(parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (0 !== (parentFiber.flags & 16)) {
-        if (null !== deletions)
-          for (var i = 0; i < deletions.length; i++) {
-            var childToDelete = deletions[i],
-              prevEffectStart = pushComponentEffectStart();
-            nextEffect = childToDelete;
-            commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-              childToDelete,
-              parentFiber
-            );
-            (childToDelete.mode & ProfileMode) !== NoMode &&
-              0 <= componentEffectStartTime &&
-              0 <= componentEffectEndTime &&
-              0.05 < componentEffectEndTime - componentEffectStartTime &&
-              logComponentTrigger(
-                childToDelete,
-                componentEffectStartTime,
-                componentEffectEndTime,
-                "Unmount"
-              );
-            popComponentEffectStart(prevEffectStart);
-          }
-        detachAlternateSiblings(parentFiber);
-      }
-      if (parentFiber.subtreeFlags & 10256)
-        for (parentFiber = parentFiber.child; null !== parentFiber; )
-          commitPassiveUnmountOnFiber(parentFiber),
-            (parentFiber = parentFiber.sibling);
-    }
-    function commitPassiveUnmountOnFiber(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.flags & 2048 &&
-            commitHookPassiveUnmountEffects(
-              finishedWork,
-              finishedWork.return,
-              Passive | HasEffect
-            );
-          break;
-        case 3:
-          var prevProfilerEffectDuration = pushNestedEffectDurations();
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.stateNode.passiveEffectDuration +=
-            popNestedEffectDurations(prevProfilerEffectDuration);
-          break;
-        case 12:
-          prevProfilerEffectDuration = pushNestedEffectDurations();
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-          finishedWork.stateNode.passiveEffectDuration +=
-            bubbleNestedEffectDurations(prevProfilerEffectDuration);
-          break;
-        case 22:
-          prevProfilerEffectDuration = finishedWork.stateNode;
-          null !== finishedWork.memoizedState &&
-          prevProfilerEffectDuration._visibility &
-            OffscreenPassiveEffectsConnected &&
-          (null === finishedWork.return || 13 !== finishedWork.return.tag)
-            ? ((prevProfilerEffectDuration._visibility &=
-                ~OffscreenPassiveEffectsConnected),
-              recursivelyTraverseDisconnectPassiveEffects(finishedWork),
-              (finishedWork.mode & ProfileMode) !== NoMode &&
-                0 <= componentEffectStartTime &&
-                0 <= componentEffectEndTime &&
-                0.05 < componentEffectEndTime - componentEffectStartTime &&
-                logComponentTrigger(
-                  finishedWork,
-                  componentEffectStartTime,
-                  componentEffectEndTime,
-                  "Disconnect"
-                ))
-            : recursivelyTraversePassiveUnmountEffects(finishedWork);
-          break;
-        default:
-          recursivelyTraversePassiveUnmountEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      componentEffectErrors = prevEffectErrors;
-    }
-    function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {
-      var deletions = parentFiber.deletions;
-      if (0 !== (parentFiber.flags & 16)) {
-        if (null !== deletions)
-          for (var i = 0; i < deletions.length; i++) {
-            var childToDelete = deletions[i],
-              prevEffectStart = pushComponentEffectStart();
-            nextEffect = childToDelete;
-            commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-              childToDelete,
-              parentFiber
-            );
-            (childToDelete.mode & ProfileMode) !== NoMode &&
-              0 <= componentEffectStartTime &&
-              0 <= componentEffectEndTime &&
-              0.05 < componentEffectEndTime - componentEffectStartTime &&
-              logComponentTrigger(
-                childToDelete,
-                componentEffectStartTime,
-                componentEffectEndTime,
-                "Unmount"
-              );
-            popComponentEffectStart(prevEffectStart);
-          }
-        detachAlternateSiblings(parentFiber);
-      }
-      for (parentFiber = parentFiber.child; null !== parentFiber; )
-        disconnectPassiveEffect(parentFiber),
-          (parentFiber = parentFiber.sibling);
-    }
-    function disconnectPassiveEffect(finishedWork) {
-      var prevEffectStart = pushComponentEffectStart(),
-        prevEffectDuration = pushComponentEffectDuration(),
-        prevEffectErrors = pushComponentEffectErrors(),
-        prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-      switch (finishedWork.tag) {
-        case 0:
-        case 11:
-        case 15:
-          commitHookPassiveUnmountEffects(
-            finishedWork,
-            finishedWork.return,
-            Passive
-          );
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork);
-          break;
-        case 22:
-          var instance = finishedWork.stateNode;
-          instance._visibility & OffscreenPassiveEffectsConnected &&
-            ((instance._visibility &= ~OffscreenPassiveEffectsConnected),
-            recursivelyTraverseDisconnectPassiveEffects(finishedWork));
-          break;
-        default:
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork);
-      }
-      (finishedWork.mode & ProfileMode) !== NoMode &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        );
-      popComponentEffectStart(prevEffectStart);
-      popComponentEffectDuration(prevEffectDuration);
-      componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-      componentEffectErrors = prevEffectErrors;
-    }
-    function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-      deletedSubtreeRoot,
-      nearestMountedAncestor$jscomp$0
-    ) {
-      for (; null !== nextEffect; ) {
-        var fiber = nextEffect,
-          current = fiber,
-          nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
-          prevEffectStart = pushComponentEffectStart(),
-          prevEffectDuration = pushComponentEffectDuration(),
-          prevEffectErrors = pushComponentEffectErrors(),
-          prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-        switch (current.tag) {
-          case 0:
-          case 11:
-          case 15:
-            commitHookPassiveUnmountEffects(
-              current,
-              nearestMountedAncestor,
-              Passive
-            );
-            break;
-          case 23:
-          case 22:
-            null !== current.memoizedState &&
-              null !== current.memoizedState.cachePool &&
-              ((nearestMountedAncestor = current.memoizedState.cachePool.pool),
-              null != nearestMountedAncestor &&
-                retainCache(nearestMountedAncestor));
-            break;
-          case 24:
-            releaseCache(current.memoizedState.cache);
-        }
-        (current.mode & ProfileMode) !== NoMode &&
-          0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-          logComponentEffect(
-            current,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            componentEffectDuration,
-            componentEffectErrors
-          );
-        popComponentEffectStart(prevEffectStart);
-        popComponentEffectDuration(prevEffectDuration);
-        componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-        componentEffectErrors = prevEffectErrors;
-        current = fiber.child;
-        if (null !== current) (current.return = fiber), (nextEffect = current);
-        else
-          a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {
-            current = nextEffect;
-            prevEffectStart = current.sibling;
-            prevEffectDuration = current.return;
-            detachFiberAfterEffects(current);
-            if (current === fiber) {
-              nextEffect = null;
-              break a;
-            }
-            if (null !== prevEffectStart) {
-              prevEffectStart.return = prevEffectDuration;
-              nextEffect = prevEffectStart;
-              break a;
-            }
-            nextEffect = prevEffectDuration;
-          }
-      }
-    }
-    function onCommitRoot() {
-      commitHooks.forEach(function (commitHook) {
-        return commitHook();
-      });
-    }
-    function isConcurrentActEnvironment() {
-      var isReactActEnvironmentGlobal =
-        "undefined" !== typeof IS_REACT_ACT_ENVIRONMENT
-          ? IS_REACT_ACT_ENVIRONMENT
-          : void 0;
-      isReactActEnvironmentGlobal ||
-        null === ReactSharedInternals.actQueue ||
-        console.error(
-          "The current testing environment is not configured to support act(...)"
-        );
-      return isReactActEnvironmentGlobal;
-    }
-    function requestUpdateLane(fiber) {
-      if (
-        (executionContext & RenderContext) !== NoContext &&
-        0 !== workInProgressRootRenderLanes
-      )
-        return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;
-      var transition = ReactSharedInternals.T;
-      return null !== transition
-        ? (transition._updatedFibers || (transition._updatedFibers = new Set()),
-          transition._updatedFibers.add(fiber),
-          requestTransitionLane())
-        : resolveUpdatePriority();
-    }
-    function requestDeferredLane() {
-      if (0 === workInProgressDeferredLane)
-        if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {
-          var lane = nextTransitionDeferredLane;
-          nextTransitionDeferredLane <<= 1;
-          0 === (nextTransitionDeferredLane & 3932160) &&
-            (nextTransitionDeferredLane = 262144);
-          workInProgressDeferredLane = lane;
-        } else workInProgressDeferredLane = 536870912;
-      lane = suspenseHandlerStackCursor.current;
-      null !== lane && (lane.flags |= 32);
-      return workInProgressDeferredLane;
-    }
-    function scheduleUpdateOnFiber(root, fiber, lane) {
-      isRunningInsertionEffect &&
-        console.error("useInsertionEffect must not schedule updates.");
-      isFlushingPassiveEffects && (didScheduleUpdateDuringPassiveEffects = !0);
-      if (
-        (root === workInProgressRoot &&
-          (workInProgressSuspendedReason === SuspendedOnData ||
-            workInProgressSuspendedReason === SuspendedOnAction)) ||
-        null !== root.cancelPendingCommit
-      )
-        prepareFreshStack(root, 0),
-          markRootSuspended(
-            root,
-            workInProgressRootRenderLanes,
-            workInProgressDeferredLane,
-            !1
-          );
-      markRootUpdated$1(root, lane);
-      if (
-        (executionContext & RenderContext) !== NoContext &&
-        root === workInProgressRoot
-      ) {
-        if (isRendering)
-          switch (fiber.tag) {
-            case 0:
-            case 11:
-            case 15:
-              root =
-                (workInProgress && getComponentNameFromFiber(workInProgress)) ||
-                "Unknown";
-              didWarnAboutUpdateInRenderForAnotherComponent.has(root) ||
-                (didWarnAboutUpdateInRenderForAnotherComponent.add(root),
-                (fiber = getComponentNameFromFiber(fiber) || "Unknown"),
-                console.error(
-                  "Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render",
-                  fiber,
-                  root,
-                  root
-                ));
-              break;
-            case 1:
-              didWarnAboutUpdateInRender ||
-                (console.error(
-                  "Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."
-                ),
-                (didWarnAboutUpdateInRender = !0));
-          }
-      } else
-        isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),
-          warnIfUpdatesNotWrappedWithActDEV(fiber),
-          root === workInProgressRoot &&
-            ((executionContext & RenderContext) === NoContext &&
-              (workInProgressRootInterleavedUpdatedLanes |= lane),
-            workInProgressRootExitStatus === RootSuspendedWithDelay &&
-              markRootSuspended(
-                root,
-                workInProgressRootRenderLanes,
-                workInProgressDeferredLane,
-                !1
-              )),
-          ensureRootIsScheduled(root);
-    }
-    function performWorkOnRoot(root, lanes, forceSync) {
-      if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-        throw Error("Should not already be working.");
-      if (0 !== workInProgressRootRenderLanes && null !== workInProgress) {
-        var yieldedFiber = workInProgress,
-          yieldEndTime = now$1();
-        switch (yieldReason) {
-          case SuspendedOnImmediate:
-          case SuspendedOnData:
-            var startTime = yieldStartTime;
-            supportsUserTiming &&
-              ((yieldedFiber = yieldedFiber._debugTask)
-                ? yieldedFiber.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Suspended",
-                      startTime,
-                      yieldEndTime,
-                      COMPONENTS_TRACK,
-                      void 0,
-                      "primary-light"
-                    )
-                  )
-                : console.timeStamp(
-                    "Suspended",
-                    startTime,
-                    yieldEndTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    "primary-light"
-                  ));
-            break;
-          case SuspendedOnAction:
-            startTime = yieldStartTime;
-            supportsUserTiming &&
-              ((yieldedFiber = yieldedFiber._debugTask)
-                ? yieldedFiber.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Action",
-                      startTime,
-                      yieldEndTime,
-                      COMPONENTS_TRACK,
-                      void 0,
-                      "primary-light"
-                    )
-                  )
-                : console.timeStamp(
-                    "Action",
-                    startTime,
-                    yieldEndTime,
-                    COMPONENTS_TRACK,
-                    void 0,
-                    "primary-light"
-                  ));
-            break;
-          default:
-            supportsUserTiming &&
-              ((yieldedFiber = yieldEndTime - yieldStartTime),
-              3 > yieldedFiber ||
-                console.timeStamp(
-                  "Blocked",
-                  yieldStartTime,
-                  yieldEndTime,
-                  COMPONENTS_TRACK,
-                  void 0,
-                  5 > yieldedFiber
-                    ? "primary-light"
-                    : 10 > yieldedFiber
-                      ? "primary"
-                      : 100 > yieldedFiber
-                        ? "primary-dark"
-                        : "error"
-                ));
-        }
-      }
-      startTime = (forceSync =
-        (!forceSync &&
-          0 === (lanes & 127) &&
-          0 === (lanes & root.expiredLanes)) ||
-        checkIfRootIsPrerendering(root, lanes))
-        ? renderRootConcurrent(root, lanes)
-        : renderRootSync(root, lanes, !0);
-      var renderWasConcurrent = forceSync;
-      do {
-        if (startTime === RootInProgress) {
-          workInProgressRootIsPrerendering &&
-            !forceSync &&
-            markRootSuspended(root, lanes, 0, !1);
-          lanes = workInProgressSuspendedReason;
-          yieldStartTime = now();
-          yieldReason = lanes;
-          break;
-        } else {
-          yieldedFiber = now$1();
-          yieldEndTime = root.current.alternate;
-          if (
-            renderWasConcurrent &&
-            !isRenderConsistentWithExternalStores(yieldEndTime)
-          ) {
-            setCurrentTrackFromLanes(lanes);
-            yieldEndTime = renderStartTime;
-            startTime = yieldedFiber;
-            !supportsUserTiming ||
-              startTime <= yieldEndTime ||
-              (workInProgressUpdateTask
-                ? workInProgressUpdateTask.run(
-                    console.timeStamp.bind(
-                      console,
-                      "Teared Render",
-                      yieldEndTime,
-                      startTime,
-                      currentTrack,
-                      LANES_TRACK_GROUP,
-                      "error"
-                    )
-                  )
-                : console.timeStamp(
-                    "Teared Render",
-                    yieldEndTime,
-                    startTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "error"
-                  ));
-            finalizeRender(lanes, yieldedFiber);
-            startTime = renderRootSync(root, lanes, !1);
-            renderWasConcurrent = !1;
-            continue;
-          }
-          if (startTime === RootErrored) {
-            renderWasConcurrent = lanes;
-            if (root.errorRecoveryDisabledLanes & renderWasConcurrent)
-              var errorRetryLanes = 0;
-            else
-              (errorRetryLanes = root.pendingLanes & -536870913),
-                (errorRetryLanes =
-                  0 !== errorRetryLanes
-                    ? errorRetryLanes
-                    : errorRetryLanes & 536870912
-                      ? 536870912
-                      : 0);
-            if (0 !== errorRetryLanes) {
-              setCurrentTrackFromLanes(lanes);
-              logErroredRenderPhase(
-                renderStartTime,
-                yieldedFiber,
-                lanes,
-                workInProgressUpdateTask
-              );
-              finalizeRender(lanes, yieldedFiber);
-              lanes = errorRetryLanes;
-              a: {
-                yieldedFiber = root;
-                startTime = renderWasConcurrent;
-                renderWasConcurrent = workInProgressRootConcurrentErrors;
-                var wasRootDehydrated =
-                  yieldedFiber.current.memoizedState.isDehydrated;
-                wasRootDehydrated &&
-                  (prepareFreshStack(yieldedFiber, errorRetryLanes).flags |=
-                    256);
-                errorRetryLanes = renderRootSync(
-                  yieldedFiber,
-                  errorRetryLanes,
-                  !1
-                );
-                if (errorRetryLanes !== RootErrored) {
-                  if (
-                    workInProgressRootDidAttachPingListener &&
-                    !wasRootDehydrated
-                  ) {
-                    yieldedFiber.errorRecoveryDisabledLanes |= startTime;
-                    workInProgressRootInterleavedUpdatedLanes |= startTime;
-                    startTime = RootSuspendedWithDelay;
-                    break a;
-                  }
-                  yieldedFiber = workInProgressRootRecoverableErrors;
-                  workInProgressRootRecoverableErrors = renderWasConcurrent;
-                  null !== yieldedFiber &&
-                    (null === workInProgressRootRecoverableErrors
-                      ? (workInProgressRootRecoverableErrors = yieldedFiber)
-                      : workInProgressRootRecoverableErrors.push.apply(
-                          workInProgressRootRecoverableErrors,
-                          yieldedFiber
-                        ));
-                }
-                startTime = errorRetryLanes;
-              }
-              renderWasConcurrent = !1;
-              if (startTime !== RootErrored) continue;
-              else yieldedFiber = now$1();
-            }
-          }
-          if (startTime === RootFatalErrored) {
-            setCurrentTrackFromLanes(lanes);
-            logErroredRenderPhase(
-              renderStartTime,
-              yieldedFiber,
-              lanes,
-              workInProgressUpdateTask
-            );
-            finalizeRender(lanes, yieldedFiber);
-            prepareFreshStack(root, 0);
-            markRootSuspended(root, lanes, 0, !0);
-            break;
-          }
-          a: {
-            forceSync = root;
-            switch (startTime) {
-              case RootInProgress:
-              case RootFatalErrored:
-                throw Error("Root did not complete. This is a bug in React.");
-              case RootSuspendedWithDelay:
-                if ((lanes & 4194048) !== lanes) break;
-              case RootSuspendedAtTheShell:
-                setCurrentTrackFromLanes(lanes);
-                logSuspendedRenderPhase(
-                  renderStartTime,
-                  yieldedFiber,
-                  lanes,
-                  workInProgressUpdateTask
-                );
-                finalizeRender(lanes, yieldedFiber);
-                yieldEndTime = lanes;
-                0 !== (yieldEndTime & 127)
-                  ? (blockingSuspendedTime = yieldedFiber)
-                  : 0 !== (yieldEndTime & 4194048) &&
-                    (transitionSuspendedTime = yieldedFiber);
-                markRootSuspended(
-                  forceSync,
-                  lanes,
-                  workInProgressDeferredLane,
-                  !workInProgressRootDidSkipSuspendedSiblings
-                );
-                break a;
-              case RootErrored:
-                workInProgressRootRecoverableErrors = null;
-                break;
-              case RootSuspended:
-              case RootCompleted:
-                break;
-              default:
-                throw Error("Unknown root exit status.");
-            }
-            if (null !== ReactSharedInternals.actQueue)
-              commitRoot(
-                forceSync,
-                yieldEndTime,
-                lanes,
-                workInProgressRootRecoverableErrors,
-                workInProgressTransitions,
-                workInProgressRootDidIncludeRecursiveRenderUpdate,
-                workInProgressDeferredLane,
-                workInProgressRootInterleavedUpdatedLanes,
-                workInProgressSuspendedRetryLanes,
-                startTime,
-                null,
-                null,
-                renderStartTime,
-                yieldedFiber
-              );
-            else {
-              if (
-                (lanes & 62914560) === lanes &&
-                ((renderWasConcurrent =
-                  globalMostRecentFallbackTime +
-                  FALLBACK_THROTTLE_MS -
-                  now$1()),
-                10 < renderWasConcurrent)
-              ) {
-                markRootSuspended(
-                  forceSync,
-                  lanes,
-                  workInProgressDeferredLane,
-                  !workInProgressRootDidSkipSuspendedSiblings
-                );
-                if (0 !== getNextLanes(forceSync, 0, !0)) break a;
-                pendingEffectsLanes = lanes;
-                forceSync.timeoutHandle = scheduleTimeout(
-                  commitRootWhenReady.bind(
-                    null,
-                    forceSync,
-                    yieldEndTime,
-                    workInProgressRootRecoverableErrors,
-                    workInProgressTransitions,
-                    workInProgressRootDidIncludeRecursiveRenderUpdate,
-                    lanes,
-                    workInProgressDeferredLane,
-                    workInProgressRootInterleavedUpdatedLanes,
-                    workInProgressSuspendedRetryLanes,
-                    workInProgressRootDidSkipSuspendedSiblings,
-                    startTime,
-                    "Throttled",
-                    renderStartTime,
-                    yieldedFiber
-                  ),
-                  renderWasConcurrent
-                );
-                break a;
-              }
-              commitRootWhenReady(
-                forceSync,
-                yieldEndTime,
-                workInProgressRootRecoverableErrors,
-                workInProgressTransitions,
-                workInProgressRootDidIncludeRecursiveRenderUpdate,
-                lanes,
-                workInProgressDeferredLane,
-                workInProgressRootInterleavedUpdatedLanes,
-                workInProgressSuspendedRetryLanes,
-                workInProgressRootDidSkipSuspendedSiblings,
-                startTime,
-                null,
-                renderStartTime,
-                yieldedFiber
-              );
-            }
-          }
-        }
-        break;
-      } while (1);
-      ensureRootIsScheduled(root);
-    }
-    function commitRootWhenReady(
-      root,
-      finishedWork,
-      recoverableErrors,
-      transitions,
-      didIncludeRenderPhaseUpdate,
-      lanes,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes,
-      didSkipSuspendedSiblings,
-      exitStatus,
-      suspendedCommitReason,
-      completedRenderStartTime,
-      completedRenderEndTime
-    ) {
-      root.timeoutHandle = noTimeout;
-      var subtreeFlags = finishedWork.subtreeFlags,
-        suspendedState = null;
-      if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408))
-        if (
-          ((suspendedState = {
-            stylesheets: null,
-            count: 0,
-            imgCount: 0,
-            imgBytes: 0,
-            suspenseyImages: [],
-            waitingForImages: !0,
-            waitingForViewTransition: !1,
-            unsuspend: noop$1
-          }),
-          accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState),
-          (subtreeFlags =
-            (lanes & 62914560) === lanes
-              ? globalMostRecentFallbackTime - now$1()
-              : (lanes & 4194048) === lanes
-                ? globalMostRecentTransitionTime - now$1()
-                : 0),
-          (subtreeFlags = waitForCommitToBeReady(suspendedState, subtreeFlags)),
-          null !== subtreeFlags)
-        ) {
-          pendingEffectsLanes = lanes;
-          root.cancelPendingCommit = subtreeFlags(
-            commitRoot.bind(
-              null,
-              root,
-              finishedWork,
-              lanes,
-              recoverableErrors,
-              transitions,
-              didIncludeRenderPhaseUpdate,
-              spawnedLane,
-              updatedLanes,
-              suspendedRetryLanes,
-              exitStatus,
-              suspendedState,
-              suspendedState.waitingForViewTransition
-                ? "Waiting for the previous Animation"
-                : 0 < suspendedState.count
-                  ? 0 < suspendedState.imgCount
-                    ? "Suspended on CSS and Images"
-                    : "Suspended on CSS"
-                  : 1 === suspendedState.imgCount
-                    ? "Suspended on an Image"
-                    : 0 < suspendedState.imgCount
-                      ? "Suspended on Images"
-                      : null,
-              completedRenderStartTime,
-              completedRenderEndTime
-            )
-          );
-          markRootSuspended(
-            root,
-            lanes,
-            spawnedLane,
-            !didSkipSuspendedSiblings
-          );
-          return;
-        }
-      commitRoot(
-        root,
-        finishedWork,
-        lanes,
-        recoverableErrors,
-        transitions,
-        didIncludeRenderPhaseUpdate,
-        spawnedLane,
-        updatedLanes,
-        suspendedRetryLanes,
-        exitStatus,
-        suspendedState,
-        suspendedCommitReason,
-        completedRenderStartTime,
-        completedRenderEndTime
-      );
-    }
-    function isRenderConsistentWithExternalStores(finishedWork) {
-      for (var node = finishedWork; ; ) {
-        var tag = node.tag;
-        if (
-          (0 === tag || 11 === tag || 15 === tag) &&
-          node.flags & 16384 &&
-          ((tag = node.updateQueue),
-          null !== tag && ((tag = tag.stores), null !== tag))
-        )
-          for (var i = 0; i < tag.length; i++) {
-            var check = tag[i],
-              getSnapshot = check.getSnapshot;
-            check = check.value;
-            try {
-              if (!objectIs(getSnapshot(), check)) return !1;
-            } catch (error) {
-              return !1;
-            }
-          }
-        tag = node.child;
-        if (node.subtreeFlags & 16384 && null !== tag)
-          (tag.return = node), (node = tag);
-        else {
-          if (node === finishedWork) break;
-          for (; null === node.sibling; ) {
-            if (null === node.return || node.return === finishedWork) return !0;
-            node = node.return;
-          }
-          node.sibling.return = node.return;
-          node = node.sibling;
-        }
-      }
-      return !0;
-    }
-    function markRootSuspended(
-      root,
-      suspendedLanes,
-      spawnedLane,
-      didAttemptEntireTree
-    ) {
-      suspendedLanes &= ~workInProgressRootPingedLanes;
-      suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
-      root.suspendedLanes |= suspendedLanes;
-      root.pingedLanes &= ~suspendedLanes;
-      didAttemptEntireTree && (root.warmLanes |= suspendedLanes);
-      didAttemptEntireTree = root.expirationTimes;
-      for (var lanes = suspendedLanes; 0 < lanes; ) {
-        var index = 31 - clz32(lanes),
-          lane = 1 << index;
-        didAttemptEntireTree[index] = -1;
-        lanes &= ~lane;
-      }
-      0 !== spawnedLane &&
-        markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);
-    }
-    function flushSyncWork$1() {
-      return (executionContext & (RenderContext | CommitContext)) === NoContext
-        ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)
-        : !0;
-    }
-    function resetWorkInProgressStack() {
-      if (null !== workInProgress) {
-        if (workInProgressSuspendedReason === NotSuspended)
-          var interruptedWork = workInProgress.return;
-        else
-          (interruptedWork = workInProgress),
-            resetContextDependencies(),
-            resetHooksOnUnwind(interruptedWork),
-            (thenableState$1 = null),
-            (thenableIndexCounter$1 = 0),
-            (interruptedWork = workInProgress);
-        for (; null !== interruptedWork; )
-          unwindInterruptedWork(interruptedWork.alternate, interruptedWork),
-            (interruptedWork = interruptedWork.return);
-        workInProgress = null;
-      }
-    }
-    function finalizeRender(lanes, finalizationTime) {
-      0 !== (lanes & 127) && (blockingClampTime = finalizationTime);
-      0 !== (lanes & 4194048) && (transitionClampTime = finalizationTime);
-      0 !== (lanes & 62914560) && (retryClampTime = finalizationTime);
-      0 !== (lanes & 2080374784) && (idleClampTime = finalizationTime);
-    }
-    function prepareFreshStack(root, lanes) {
-      supportsUserTiming &&
-        (console.timeStamp(
-          "Blocking Track",
-          0.003,
-          0.003,
-          "Blocking",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Transition Track",
-          0.003,
-          0.003,
-          "Transition",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Suspense Track",
-          0.003,
-          0.003,
-          "Suspense",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ),
-        console.timeStamp(
-          "Idle Track",
-          0.003,
-          0.003,
-          "Idle",
-          LANES_TRACK_GROUP,
-          "primary-light"
-        ));
-      var previousRenderStartTime = renderStartTime;
-      renderStartTime = now();
-      if (0 !== workInProgressRootRenderLanes && 0 < previousRenderStartTime) {
-        setCurrentTrackFromLanes(workInProgressRootRenderLanes);
-        if (
-          workInProgressRootExitStatus === RootSuspended ||
-          workInProgressRootExitStatus === RootSuspendedWithDelay
-        )
-          logSuspendedRenderPhase(
-            previousRenderStartTime,
-            renderStartTime,
-            lanes,
-            workInProgressUpdateTask
-          );
-        else {
-          var endTime = renderStartTime,
-            debugTask = workInProgressUpdateTask;
-          if (supportsUserTiming && !(endTime <= previousRenderStartTime)) {
-            var color =
-                (lanes & 738197653) === lanes
-                  ? "tertiary-dark"
-                  : "primary-dark",
-              label =
-                (lanes & 536870912) === lanes
-                  ? "Prewarm"
-                  : (lanes & 201326741) === lanes
-                    ? "Interrupted Hydration"
-                    : "Interrupted Render";
-            debugTask
-              ? debugTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    label,
-                    previousRenderStartTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color
-                  )
-                )
-              : console.timeStamp(
-                  label,
-                  previousRenderStartTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color
-                );
-          }
-        }
-        finalizeRender(workInProgressRootRenderLanes, renderStartTime);
-      }
-      previousRenderStartTime = workInProgressUpdateTask;
-      workInProgressUpdateTask = null;
-      if (0 !== (lanes & 127)) {
-        workInProgressUpdateTask = blockingUpdateTask;
-        debugTask =
-          0 <= blockingUpdateTime && blockingUpdateTime < blockingClampTime
-            ? blockingClampTime
-            : blockingUpdateTime;
-        endTime =
-          0 <= blockingEventTime && blockingEventTime < blockingClampTime
-            ? blockingClampTime
-            : blockingEventTime;
-        color =
-          0 <= endTime ? endTime : 0 <= debugTask ? debugTask : renderStartTime;
-        0 <= blockingSuspendedTime
-          ? (setCurrentTrackFromLanes(2),
-            logSuspendedWithDelayPhase(
-              blockingSuspendedTime,
-              color,
-              lanes,
-              previousRenderStartTime
-            ))
-          : 0 !== (animatingLanes & 127) &&
-            (setCurrentTrackFromLanes(2),
-            logAnimatingPhase(blockingClampTime, color, animatingTask));
-        previousRenderStartTime = debugTask;
-        var eventTime = endTime,
-          eventType = blockingEventType,
-          eventIsRepeat = 0 < blockingEventRepeatTime,
-          isSpawnedUpdate = blockingUpdateType === SPAWNED_UPDATE,
-          isPingedUpdate = blockingUpdateType === PINGED_UPDATE;
-        debugTask = renderStartTime;
-        endTime = blockingUpdateTask;
-        color = blockingUpdateMethodName;
-        label = blockingUpdateComponentName;
-        if (supportsUserTiming) {
-          currentTrack = "Blocking";
-          0 < previousRenderStartTime
-            ? previousRenderStartTime > debugTask &&
-              (previousRenderStartTime = debugTask)
-            : (previousRenderStartTime = debugTask);
-          0 < eventTime
-            ? eventTime > previousRenderStartTime &&
-              (eventTime = previousRenderStartTime)
-            : (eventTime = previousRenderStartTime);
-          if (null !== eventType && previousRenderStartTime > eventTime) {
-            var color$jscomp$0 = eventIsRepeat ? "secondary-light" : "warning";
-            endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    eventIsRepeat ? "Consecutive" : "Event: " + eventType,
-                    eventTime,
-                    previousRenderStartTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color$jscomp$0
-                  )
-                )
-              : console.timeStamp(
-                  eventIsRepeat ? "Consecutive" : "Event: " + eventType,
-                  eventTime,
-                  previousRenderStartTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color$jscomp$0
-                );
-          }
-          debugTask > previousRenderStartTime &&
-            ((eventTime = isSpawnedUpdate
-              ? "error"
-              : (lanes & 738197653) === lanes
-                ? "tertiary-light"
-                : "primary-light"),
-            (isSpawnedUpdate = isPingedUpdate
-              ? "Promise Resolved"
-              : isSpawnedUpdate
-                ? "Cascading Update"
-                : 5 < debugTask - previousRenderStartTime
-                  ? "Update Blocked"
-                  : "Update"),
-            (isPingedUpdate = []),
-            null != label && isPingedUpdate.push(["Component name", label]),
-            null != color && isPingedUpdate.push(["Method name", color]),
-            (previousRenderStartTime = {
-              start: previousRenderStartTime,
-              end: debugTask,
-              detail: {
-                devtools: {
-                  properties: isPingedUpdate,
-                  track: currentTrack,
-                  trackGroup: LANES_TRACK_GROUP,
-                  color: eventTime
-                }
-              }
-            }),
-            endTime
-              ? endTime.run(
-                  performance.measure.bind(
-                    performance,
-                    isSpawnedUpdate,
-                    previousRenderStartTime
-                  )
-                )
-              : performance.measure(isSpawnedUpdate, previousRenderStartTime));
-        }
-        blockingUpdateTime = -1.1;
-        blockingUpdateType = 0;
-        blockingUpdateComponentName = blockingUpdateMethodName = null;
-        blockingSuspendedTime = -1.1;
-        blockingEventRepeatTime = blockingEventTime;
-        blockingEventTime = -1.1;
-        blockingClampTime = now();
-      }
-      0 !== (lanes & 4194048) &&
-        ((workInProgressUpdateTask = transitionUpdateTask),
-        (debugTask =
-          0 <= transitionStartTime && transitionStartTime < transitionClampTime
-            ? transitionClampTime
-            : transitionStartTime),
-        (previousRenderStartTime =
-          0 <= transitionUpdateTime &&
-          transitionUpdateTime < transitionClampTime
-            ? transitionClampTime
-            : transitionUpdateTime),
-        (endTime =
-          0 <= transitionEventTime && transitionEventTime < transitionClampTime
-            ? transitionClampTime
-            : transitionEventTime),
-        (color =
-          0 <= endTime
-            ? endTime
-            : 0 <= previousRenderStartTime
-              ? previousRenderStartTime
-              : renderStartTime),
-        0 <= transitionSuspendedTime
-          ? (setCurrentTrackFromLanes(256),
-            logSuspendedWithDelayPhase(
-              transitionSuspendedTime,
-              color,
-              lanes,
-              workInProgressUpdateTask
-            ))
-          : 0 !== (animatingLanes & 4194048) &&
-            (setCurrentTrackFromLanes(256),
-            logAnimatingPhase(transitionClampTime, color, animatingTask)),
-        (isPingedUpdate = endTime),
-        (eventTime = transitionEventType),
-        (eventType = 0 < transitionEventRepeatTime),
-        (eventIsRepeat = transitionUpdateType === PINGED_UPDATE),
-        (color = renderStartTime),
-        (endTime = transitionUpdateTask),
-        (label = transitionUpdateMethodName),
-        (isSpawnedUpdate = transitionUpdateComponentName),
-        supportsUserTiming &&
-          ((currentTrack = "Transition"),
-          0 < previousRenderStartTime
-            ? previousRenderStartTime > color &&
-              (previousRenderStartTime = color)
-            : (previousRenderStartTime = color),
-          0 < debugTask
-            ? debugTask > previousRenderStartTime &&
-              (debugTask = previousRenderStartTime)
-            : (debugTask = previousRenderStartTime),
-          0 < isPingedUpdate
-            ? isPingedUpdate > debugTask && (isPingedUpdate = debugTask)
-            : (isPingedUpdate = debugTask),
-          debugTask > isPingedUpdate &&
-            null !== eventTime &&
-            ((color$jscomp$0 = eventType ? "secondary-light" : "warning"),
-            endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    eventType ? "Consecutive" : "Event: " + eventTime,
-                    isPingedUpdate,
-                    debugTask,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    color$jscomp$0
-                  )
-                )
-              : console.timeStamp(
-                  eventType ? "Consecutive" : "Event: " + eventTime,
-                  isPingedUpdate,
-                  debugTask,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  color$jscomp$0
-                )),
-          previousRenderStartTime > debugTask &&
-            (endTime
-              ? endTime.run(
-                  console.timeStamp.bind(
-                    console,
-                    "Action",
-                    debugTask,
-                    previousRenderStartTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "primary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  "Action",
-                  debugTask,
-                  previousRenderStartTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "primary-dark"
-                )),
-          color > previousRenderStartTime &&
-            ((debugTask = eventIsRepeat
-              ? "Promise Resolved"
-              : 5 < color - previousRenderStartTime
-                ? "Update Blocked"
-                : "Update"),
-            (isPingedUpdate = []),
-            null != isSpawnedUpdate &&
-              isPingedUpdate.push(["Component name", isSpawnedUpdate]),
-            null != label && isPingedUpdate.push(["Method name", label]),
-            (previousRenderStartTime = {
-              start: previousRenderStartTime,
-              end: color,
-              detail: {
-                devtools: {
-                  properties: isPingedUpdate,
-                  track: currentTrack,
-                  trackGroup: LANES_TRACK_GROUP,
-                  color: "primary-light"
-                }
-              }
-            }),
-            endTime
-              ? endTime.run(
-                  performance.measure.bind(
-                    performance,
-                    debugTask,
-                    previousRenderStartTime
-                  )
-                )
-              : performance.measure(debugTask, previousRenderStartTime))),
-        (transitionUpdateTime = transitionStartTime = -1.1),
-        (transitionUpdateType = 0),
-        (transitionSuspendedTime = -1.1),
-        (transitionEventRepeatTime = transitionEventTime),
-        (transitionEventTime = -1.1),
-        (transitionClampTime = now()));
-      0 !== (lanes & 62914560) &&
-        0 !== (animatingLanes & 62914560) &&
-        (setCurrentTrackFromLanes(4194304),
-        logAnimatingPhase(retryClampTime, renderStartTime, animatingTask));
-      0 !== (lanes & 2080374784) &&
-        0 !== (animatingLanes & 2080374784) &&
-        (setCurrentTrackFromLanes(268435456),
-        logAnimatingPhase(idleClampTime, renderStartTime, animatingTask));
-      previousRenderStartTime = root.timeoutHandle;
-      previousRenderStartTime !== noTimeout &&
-        ((root.timeoutHandle = noTimeout),
-        cancelTimeout(previousRenderStartTime));
-      previousRenderStartTime = root.cancelPendingCommit;
-      null !== previousRenderStartTime &&
-        ((root.cancelPendingCommit = null), previousRenderStartTime());
-      pendingEffectsLanes = 0;
-      resetWorkInProgressStack();
-      workInProgressRoot = root;
-      workInProgress = previousRenderStartTime = createWorkInProgress(
-        root.current,
-        null
-      );
-      workInProgressRootRenderLanes = lanes;
-      workInProgressSuspendedReason = NotSuspended;
-      workInProgressThrownValue = null;
-      workInProgressRootDidSkipSuspendedSiblings = !1;
-      workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);
-      workInProgressRootDidAttachPingListener = !1;
-      workInProgressRootExitStatus = RootInProgress;
-      workInProgressSuspendedRetryLanes =
-        workInProgressDeferredLane =
-        workInProgressRootPingedLanes =
-        workInProgressRootInterleavedUpdatedLanes =
-        workInProgressRootSkippedLanes =
-          0;
-      workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =
-        null;
-      workInProgressRootDidIncludeRecursiveRenderUpdate = !1;
-      0 !== (lanes & 8) && (lanes |= lanes & 32);
-      endTime = root.entangledLanes;
-      if (0 !== endTime)
-        for (root = root.entanglements, endTime &= lanes; 0 < endTime; )
-          (debugTask = 31 - clz32(endTime)),
-            (color = 1 << debugTask),
-            (lanes |= root[debugTask]),
-            (endTime &= ~color);
-      entangledRenderLanes = lanes;
-      finishQueueingConcurrentUpdates();
-      root = getCurrentTime();
-      1e3 < root - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = root));
-      ReactStrictModeWarnings.discardPendingWarnings();
-      return previousRenderStartTime;
-    }
-    function handleThrow(root, thrownValue) {
-      currentlyRenderingFiber = null;
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      ReactSharedInternals.getCurrentStack = null;
-      isRendering = !1;
-      current = null;
-      thrownValue === SuspenseException ||
-      thrownValue === SuspenseActionException
-        ? ((thrownValue = getSuspendedThenable()),
-          (workInProgressSuspendedReason = SuspendedOnImmediate))
-        : thrownValue === SuspenseyCommitException
-          ? ((thrownValue = getSuspendedThenable()),
-            (workInProgressSuspendedReason = SuspendedOnInstance))
-          : (workInProgressSuspendedReason =
-              thrownValue === SelectiveHydrationException
-                ? SuspendedOnHydration
-                : null !== thrownValue &&
-                    "object" === typeof thrownValue &&
-                    "function" === typeof thrownValue.then
-                  ? SuspendedOnDeprecatedThrowPromise
-                  : SuspendedOnError);
-      workInProgressThrownValue = thrownValue;
-      var erroredWork = workInProgress;
-      null === erroredWork
-        ? ((workInProgressRootExitStatus = RootFatalErrored),
-          logUncaughtError(
-            root,
-            createCapturedValueAtFiber(thrownValue, root.current)
-          ))
-        : erroredWork.mode & ProfileMode &&
-          stopProfilerTimerIfRunningAndRecordDuration(erroredWork);
-    }
-    function shouldRemainOnPreviousScreen() {
-      var handler = suspenseHandlerStackCursor.current;
-      return null === handler
-        ? !0
-        : (workInProgressRootRenderLanes & 4194048) ===
-            workInProgressRootRenderLanes
-          ? null === shellBoundary
-            ? !0
-            : !1
-          : (workInProgressRootRenderLanes & 62914560) ===
-                workInProgressRootRenderLanes ||
-              0 !== (workInProgressRootRenderLanes & 536870912)
-            ? handler === shellBoundary
-            : !1;
-    }
-    function pushDispatcher() {
-      var prevDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = ContextOnlyDispatcher;
-      return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;
-    }
-    function pushAsyncDispatcher() {
-      var prevAsyncDispatcher = ReactSharedInternals.A;
-      ReactSharedInternals.A = DefaultAsyncDispatcher;
-      return prevAsyncDispatcher;
-    }
-    function markRenderDerivedCause(fiber) {
-      null === workInProgressUpdateTask &&
-        (workInProgressUpdateTask =
-          null == fiber._debugTask ? null : fiber._debugTask);
-    }
-    function renderDidSuspendDelayIfPossible() {
-      workInProgressRootExitStatus = RootSuspendedWithDelay;
-      workInProgressRootDidSkipSuspendedSiblings ||
-        ((workInProgressRootRenderLanes & 4194048) !==
-          workInProgressRootRenderLanes &&
-          null !== suspenseHandlerStackCursor.current) ||
-        (workInProgressRootIsPrerendering = !0);
-      (0 === (workInProgressRootSkippedLanes & 134217727) &&
-        0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||
-        null === workInProgressRoot ||
-        markRootSuspended(
-          workInProgressRoot,
-          workInProgressRootRenderLanes,
-          workInProgressDeferredLane,
-          !1
-        );
-    }
-    function renderRootSync(root, lanes, shouldYieldForPrerendering) {
-      var prevExecutionContext = executionContext;
-      executionContext |= RenderContext;
-      var prevDispatcher = pushDispatcher(),
-        prevAsyncDispatcher = pushAsyncDispatcher();
-      if (
-        workInProgressRoot !== root ||
-        workInProgressRootRenderLanes !== lanes
-      ) {
-        if (isDevToolsPresent) {
-          var memoizedUpdaters = root.memoizedUpdaters;
-          0 < memoizedUpdaters.size &&
-            (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-            memoizedUpdaters.clear());
-          movePendingFibersToMemoized(root, lanes);
-        }
-        workInProgressTransitions = null;
-        prepareFreshStack(root, lanes);
-      }
-      lanes = !1;
-      memoizedUpdaters = workInProgressRootExitStatus;
-      a: do
-        try {
-          if (
-            workInProgressSuspendedReason !== NotSuspended &&
-            null !== workInProgress
-          ) {
-            var unitOfWork = workInProgress,
-              thrownValue = workInProgressThrownValue;
-            switch (workInProgressSuspendedReason) {
-              case SuspendedOnHydration:
-                resetWorkInProgressStack();
-                memoizedUpdaters = RootSuspendedAtTheShell;
-                break a;
-              case SuspendedOnImmediate:
-              case SuspendedOnData:
-              case SuspendedOnAction:
-              case SuspendedOnDeprecatedThrowPromise:
-                null === suspenseHandlerStackCursor.current && (lanes = !0);
-                var reason = workInProgressSuspendedReason;
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-                if (
-                  shouldYieldForPrerendering &&
-                  workInProgressRootIsPrerendering
-                ) {
-                  memoizedUpdaters = RootInProgress;
-                  break a;
-                }
-                break;
-              default:
-                (reason = workInProgressSuspendedReason),
-                  (workInProgressSuspendedReason = NotSuspended),
-                  (workInProgressThrownValue = null),
-                  throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-            }
-          }
-          workLoopSync();
-          memoizedUpdaters = workInProgressRootExitStatus;
-          break;
-        } catch (thrownValue$8) {
-          handleThrow(root, thrownValue$8);
-        }
-      while (1);
-      lanes && root.shellSuspendCounter++;
-      resetContextDependencies();
-      executionContext = prevExecutionContext;
-      ReactSharedInternals.H = prevDispatcher;
-      ReactSharedInternals.A = prevAsyncDispatcher;
-      null === workInProgress &&
-        ((workInProgressRoot = null),
-        (workInProgressRootRenderLanes = 0),
-        finishQueueingConcurrentUpdates());
-      return memoizedUpdaters;
-    }
-    function workLoopSync() {
-      for (; null !== workInProgress; ) performUnitOfWork(workInProgress);
-    }
-    function renderRootConcurrent(root, lanes) {
-      var prevExecutionContext = executionContext;
-      executionContext |= RenderContext;
-      var prevDispatcher = pushDispatcher(),
-        prevAsyncDispatcher = pushAsyncDispatcher();
-      if (
-        workInProgressRoot !== root ||
-        workInProgressRootRenderLanes !== lanes
-      ) {
-        if (isDevToolsPresent) {
-          var memoizedUpdaters = root.memoizedUpdaters;
-          0 < memoizedUpdaters.size &&
-            (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-            memoizedUpdaters.clear());
-          movePendingFibersToMemoized(root, lanes);
-        }
-        workInProgressTransitions = null;
-        workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS;
-        prepareFreshStack(root, lanes);
-      } else
-        workInProgressRootIsPrerendering = checkIfRootIsPrerendering(
-          root,
-          lanes
-        );
-      a: do
-        try {
-          if (
-            workInProgressSuspendedReason !== NotSuspended &&
-            null !== workInProgress
-          )
-            b: switch (
-              ((lanes = workInProgress),
-              (memoizedUpdaters = workInProgressThrownValue),
-              workInProgressSuspendedReason)
-            ) {
-              case SuspendedOnError:
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnError
-                );
-                break;
-              case SuspendedOnData:
-              case SuspendedOnAction:
-                if (isThenableResolved(memoizedUpdaters)) {
-                  workInProgressSuspendedReason = NotSuspended;
-                  workInProgressThrownValue = null;
-                  replaySuspendedUnitOfWork(lanes);
-                  break;
-                }
-                lanes = function () {
-                  (workInProgressSuspendedReason !== SuspendedOnData &&
-                    workInProgressSuspendedReason !== SuspendedOnAction) ||
-                    workInProgressRoot !== root ||
-                    (workInProgressSuspendedReason =
-                      SuspendedAndReadyToContinue);
-                  ensureRootIsScheduled(root);
-                };
-                memoizedUpdaters.then(lanes, lanes);
-                break a;
-              case SuspendedOnImmediate:
-                workInProgressSuspendedReason = SuspendedAndReadyToContinue;
-                break a;
-              case SuspendedOnInstance:
-                workInProgressSuspendedReason =
-                  SuspendedOnInstanceAndReadyToContinue;
-                break a;
-              case SuspendedAndReadyToContinue:
-                isThenableResolved(memoizedUpdaters)
-                  ? ((workInProgressSuspendedReason = NotSuspended),
-                    (workInProgressThrownValue = null),
-                    replaySuspendedUnitOfWork(lanes))
-                  : ((workInProgressSuspendedReason = NotSuspended),
-                    (workInProgressThrownValue = null),
-                    throwAndUnwindWorkLoop(
-                      root,
-                      lanes,
-                      memoizedUpdaters,
-                      SuspendedAndReadyToContinue
-                    ));
-                break;
-              case SuspendedOnInstanceAndReadyToContinue:
-                var resource = null;
-                switch (workInProgress.tag) {
-                  case 26:
-                    resource = workInProgress.memoizedState;
-                  case 5:
-                  case 27:
-                    var hostFiber = workInProgress;
-                    if (
-                      resource
-                        ? preloadResource(resource)
-                        : hostFiber.stateNode.complete
-                    ) {
-                      workInProgressSuspendedReason = NotSuspended;
-                      workInProgressThrownValue = null;
-                      var sibling = hostFiber.sibling;
-                      if (null !== sibling) workInProgress = sibling;
-                      else {
-                        var returnFiber = hostFiber.return;
-                        null !== returnFiber
-                          ? ((workInProgress = returnFiber),
-                            completeUnitOfWork(returnFiber))
-                          : (workInProgress = null);
-                      }
-                      break b;
-                    }
-                    break;
-                  default:
-                    console.error(
-                      "Unexpected type of fiber triggered a suspensey commit. This is a bug in React."
-                    );
-                }
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnInstanceAndReadyToContinue
-                );
-                break;
-              case SuspendedOnDeprecatedThrowPromise:
-                workInProgressSuspendedReason = NotSuspended;
-                workInProgressThrownValue = null;
-                throwAndUnwindWorkLoop(
-                  root,
-                  lanes,
-                  memoizedUpdaters,
-                  SuspendedOnDeprecatedThrowPromise
-                );
-                break;
-              case SuspendedOnHydration:
-                resetWorkInProgressStack();
-                workInProgressRootExitStatus = RootSuspendedAtTheShell;
-                break a;
-              default:
-                throw Error(
-                  "Unexpected SuspendedReason. This is a bug in React."
-                );
-            }
-          null !== ReactSharedInternals.actQueue
-            ? workLoopSync()
-            : workLoopConcurrentByScheduler();
-          break;
-        } catch (thrownValue$9) {
-          handleThrow(root, thrownValue$9);
-        }
-      while (1);
-      resetContextDependencies();
-      ReactSharedInternals.H = prevDispatcher;
-      ReactSharedInternals.A = prevAsyncDispatcher;
-      executionContext = prevExecutionContext;
-      if (null !== workInProgress) return RootInProgress;
-      workInProgressRoot = null;
-      workInProgressRootRenderLanes = 0;
-      finishQueueingConcurrentUpdates();
-      return workInProgressRootExitStatus;
-    }
-    function workLoopConcurrentByScheduler() {
-      for (; null !== workInProgress && !shouldYield(); )
-        performUnitOfWork(workInProgress);
-    }
-    function performUnitOfWork(unitOfWork) {
-      var current = unitOfWork.alternate;
-      (unitOfWork.mode & ProfileMode) !== NoMode
-        ? (startProfilerTimer(unitOfWork),
-          (current = runWithFiberInDEV(
-            unitOfWork,
-            beginWork,
-            current,
-            unitOfWork,
-            entangledRenderLanes
-          )),
-          stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))
-        : (current = runWithFiberInDEV(
-            unitOfWork,
-            beginWork,
-            current,
-            unitOfWork,
-            entangledRenderLanes
-          ));
-      unitOfWork.memoizedProps = unitOfWork.pendingProps;
-      null === current
-        ? completeUnitOfWork(unitOfWork)
-        : (workInProgress = current);
-    }
-    function replaySuspendedUnitOfWork(unitOfWork) {
-      var next = runWithFiberInDEV(unitOfWork, replayBeginWork, unitOfWork);
-      unitOfWork.memoizedProps = unitOfWork.pendingProps;
-      null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);
-    }
-    function replayBeginWork(unitOfWork) {
-      var current = unitOfWork.alternate,
-        isProfilingMode = (unitOfWork.mode & ProfileMode) !== NoMode;
-      isProfilingMode && startProfilerTimer(unitOfWork);
-      switch (unitOfWork.tag) {
-        case 15:
-        case 0:
-          current = replayFunctionComponent(
-            current,
-            unitOfWork,
-            unitOfWork.pendingProps,
-            unitOfWork.type,
-            void 0,
-            workInProgressRootRenderLanes
-          );
-          break;
-        case 11:
-          current = replayFunctionComponent(
-            current,
-            unitOfWork,
-            unitOfWork.pendingProps,
-            unitOfWork.type.render,
-            unitOfWork.ref,
-            workInProgressRootRenderLanes
-          );
-          break;
-        case 5:
-          resetHooksOnUnwind(unitOfWork);
-        default:
-          unwindInterruptedWork(current, unitOfWork),
-            (unitOfWork = workInProgress =
-              resetWorkInProgress(unitOfWork, entangledRenderLanes)),
-            (current = beginWork(current, unitOfWork, entangledRenderLanes));
-      }
-      isProfilingMode &&
-        stopProfilerTimerIfRunningAndRecordDuration(unitOfWork);
-      return current;
-    }
-    function throwAndUnwindWorkLoop(
-      root,
-      unitOfWork,
-      thrownValue,
-      suspendedReason
-    ) {
-      resetContextDependencies();
-      resetHooksOnUnwind(unitOfWork);
-      thenableState$1 = null;
-      thenableIndexCounter$1 = 0;
-      var returnFiber = unitOfWork.return;
-      try {
-        if (
-          throwException(
-            root,
-            returnFiber,
-            unitOfWork,
-            thrownValue,
-            workInProgressRootRenderLanes
-          )
-        ) {
-          workInProgressRootExitStatus = RootFatalErrored;
-          logUncaughtError(
-            root,
-            createCapturedValueAtFiber(thrownValue, root.current)
-          );
-          workInProgress = null;
-          return;
-        }
-      } catch (error) {
-        if (null !== returnFiber) throw ((workInProgress = returnFiber), error);
-        workInProgressRootExitStatus = RootFatalErrored;
-        logUncaughtError(
-          root,
-          createCapturedValueAtFiber(thrownValue, root.current)
-        );
-        workInProgress = null;
-        return;
-      }
-      if (unitOfWork.flags & 32768) {
-        if (isHydrating || suspendedReason === SuspendedOnError) root = !0;
-        else if (
-          workInProgressRootIsPrerendering ||
-          0 !== (workInProgressRootRenderLanes & 536870912)
-        )
-          root = !1;
-        else if (
-          ((workInProgressRootDidSkipSuspendedSiblings = root = !0),
-          suspendedReason === SuspendedOnData ||
-            suspendedReason === SuspendedOnAction ||
-            suspendedReason === SuspendedOnImmediate ||
-            suspendedReason === SuspendedOnDeprecatedThrowPromise)
-        )
-          (suspendedReason = suspenseHandlerStackCursor.current),
-            null !== suspendedReason &&
-              13 === suspendedReason.tag &&
-              (suspendedReason.flags |= 16384);
-        unwindUnitOfWork(unitOfWork, root);
-      } else completeUnitOfWork(unitOfWork);
-    }
-    function completeUnitOfWork(unitOfWork) {
-      var completedWork = unitOfWork;
-      do {
-        if (0 !== (completedWork.flags & 32768)) {
-          unwindUnitOfWork(
-            completedWork,
-            workInProgressRootDidSkipSuspendedSiblings
-          );
-          return;
-        }
-        var current = completedWork.alternate;
-        unitOfWork = completedWork.return;
-        startProfilerTimer(completedWork);
-        current = runWithFiberInDEV(
-          completedWork,
-          completeWork,
-          current,
-          completedWork,
-          entangledRenderLanes
-        );
-        (completedWork.mode & ProfileMode) !== NoMode &&
-          stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork);
-        if (null !== current) {
-          workInProgress = current;
-          return;
-        }
-        completedWork = completedWork.sibling;
-        if (null !== completedWork) {
-          workInProgress = completedWork;
-          return;
-        }
-        workInProgress = completedWork = unitOfWork;
-      } while (null !== completedWork);
-      workInProgressRootExitStatus === RootInProgress &&
-        (workInProgressRootExitStatus = RootCompleted);
-    }
-    function unwindUnitOfWork(unitOfWork, skipSiblings) {
-      do {
-        var next = unwindWork(unitOfWork.alternate, unitOfWork);
-        if (null !== next) {
-          next.flags &= 32767;
-          workInProgress = next;
-          return;
-        }
-        if ((unitOfWork.mode & ProfileMode) !== NoMode) {
-          stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork);
-          next = unitOfWork.actualDuration;
-          for (var child = unitOfWork.child; null !== child; )
-            (next += child.actualDuration), (child = child.sibling);
-          unitOfWork.actualDuration = next;
-        }
-        next = unitOfWork.return;
-        null !== next &&
-          ((next.flags |= 32768),
-          (next.subtreeFlags = 0),
-          (next.deletions = null));
-        if (
-          !skipSiblings &&
-          ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)
-        ) {
-          workInProgress = unitOfWork;
-          return;
-        }
-        workInProgress = unitOfWork = next;
-      } while (null !== unitOfWork);
-      workInProgressRootExitStatus = RootSuspendedAtTheShell;
-      workInProgress = null;
-    }
-    function commitRoot(
-      root,
-      finishedWork,
-      lanes,
-      recoverableErrors,
-      transitions,
-      didIncludeRenderPhaseUpdate,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes,
-      exitStatus,
-      suspendedState,
-      suspendedCommitReason,
-      completedRenderStartTime,
-      completedRenderEndTime
-    ) {
-      root.cancelPendingCommit = null;
-      do flushPendingEffects();
-      while (pendingEffectsStatus !== NO_PENDING_EFFECTS);
-      ReactStrictModeWarnings.flushLegacyContextWarning();
-      ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();
-      if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-        throw Error("Should not already be working.");
-      setCurrentTrackFromLanes(lanes);
-      exitStatus === RootErrored
-        ? logErroredRenderPhase(
-            completedRenderStartTime,
-            completedRenderEndTime,
-            lanes,
-            workInProgressUpdateTask
-          )
-        : null !== recoverableErrors
-          ? logRecoveredRenderPhase(
-              completedRenderStartTime,
-              completedRenderEndTime,
-              lanes,
-              recoverableErrors,
-              null !== finishedWork &&
-                null !== finishedWork.alternate &&
-                finishedWork.alternate.memoizedState.isDehydrated &&
-                0 !== (finishedWork.flags & 256),
-              workInProgressUpdateTask
-            )
-          : logRenderPhase(
-              completedRenderStartTime,
-              completedRenderEndTime,
-              lanes,
-              workInProgressUpdateTask
-            );
-      if (null !== finishedWork) {
-        0 === lanes &&
-          console.error(
-            "finishedLanes should not be empty during a commit. This is a bug in React."
-          );
-        if (finishedWork === root.current)
-          throw Error(
-            "Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue."
-          );
-        didIncludeRenderPhaseUpdate =
-          finishedWork.lanes | finishedWork.childLanes;
-        didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;
-        markRootFinished(
-          root,
-          lanes,
-          didIncludeRenderPhaseUpdate,
-          spawnedLane,
-          updatedLanes,
-          suspendedRetryLanes
-        );
-        root === workInProgressRoot &&
-          ((workInProgress = workInProgressRoot = null),
-          (workInProgressRootRenderLanes = 0));
-        pendingFinishedWork = finishedWork;
-        pendingEffectsRoot = root;
-        pendingEffectsLanes = lanes;
-        pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;
-        pendingPassiveTransitions = transitions;
-        pendingRecoverableErrors = recoverableErrors;
-        pendingEffectsRenderEndTime = completedRenderEndTime;
-        pendingSuspendedCommitReason = suspendedCommitReason;
-        pendingDelayedCommitReason = IMMEDIATE_COMMIT;
-        pendingSuspendedViewTransitionReason = null;
-        0 !== finishedWork.actualDuration ||
-        0 !== (finishedWork.subtreeFlags & 10256) ||
-        0 !== (finishedWork.flags & 10256)
-          ? ((root.callbackNode = null),
-            (root.callbackPriority = 0),
-            scheduleCallback$1(NormalPriority$1, function () {
-              schedulerEvent = window.event;
-              pendingDelayedCommitReason === IMMEDIATE_COMMIT &&
-                (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);
-              flushPassiveEffects();
-              return null;
-            }))
-          : ((root.callbackNode = null), (root.callbackPriority = 0));
-        commitErrors = null;
-        commitStartTime = now();
-        null !== suspendedCommitReason &&
-          logSuspendedCommitPhase(
-            completedRenderEndTime,
-            commitStartTime,
-            suspendedCommitReason,
-            workInProgressUpdateTask
-          );
-        recoverableErrors = 0 !== (finishedWork.flags & 13878);
-        if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {
-          recoverableErrors = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          transitions = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          spawnedLane = executionContext;
-          executionContext |= CommitContext;
-          try {
-            commitBeforeMutationEffects(root, finishedWork, lanes);
-          } finally {
-            (executionContext = spawnedLane),
-              (ReactDOMSharedInternals.p = transitions),
-              (ReactSharedInternals.T = recoverableErrors);
-          }
-        }
-        pendingEffectsStatus = PENDING_MUTATION_PHASE;
-        flushMutationEffects();
-        flushLayoutEffects();
-        flushSpawnedWork();
-      }
-    }
-    function flushMutationEffects() {
-      if (pendingEffectsStatus === PENDING_MUTATION_PHASE) {
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        var root = pendingEffectsRoot,
-          finishedWork = pendingFinishedWork,
-          lanes = pendingEffectsLanes,
-          rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);
-        if (
-          0 !== (finishedWork.subtreeFlags & 13878) ||
-          rootMutationHasEffect
-        ) {
-          rootMutationHasEffect = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          var previousPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          var prevExecutionContext = executionContext;
-          executionContext |= CommitContext;
-          try {
-            inProgressLanes = lanes;
-            inProgressRoot = root;
-            resetComponentEffectTimers();
-            commitMutationEffectsOnFiber(finishedWork, root);
-            inProgressRoot = inProgressLanes = null;
-            lanes = selectionInformation;
-            var curFocusedElem = getActiveElementDeep(root.containerInfo),
-              priorFocusedElem = lanes.focusedElem,
-              priorSelectionRange = lanes.selectionRange;
-            if (
-              curFocusedElem !== priorFocusedElem &&
-              priorFocusedElem &&
-              priorFocusedElem.ownerDocument &&
-              containsNode(
-                priorFocusedElem.ownerDocument.documentElement,
-                priorFocusedElem
-              )
-            ) {
-              if (
-                null !== priorSelectionRange &&
-                hasSelectionCapabilities(priorFocusedElem)
-              ) {
-                var start = priorSelectionRange.start,
-                  end = priorSelectionRange.end;
-                void 0 === end && (end = start);
-                if ("selectionStart" in priorFocusedElem)
-                  (priorFocusedElem.selectionStart = start),
-                    (priorFocusedElem.selectionEnd = Math.min(
-                      end,
-                      priorFocusedElem.value.length
-                    ));
-                else {
-                  var doc = priorFocusedElem.ownerDocument || document,
-                    win = (doc && doc.defaultView) || window;
-                  if (win.getSelection) {
-                    var selection = win.getSelection(),
-                      length = priorFocusedElem.textContent.length,
-                      start$jscomp$0 = Math.min(
-                        priorSelectionRange.start,
-                        length
-                      ),
-                      end$jscomp$0 =
-                        void 0 === priorSelectionRange.end
-                          ? start$jscomp$0
-                          : Math.min(priorSelectionRange.end, length);
-                    !selection.extend &&
-                      start$jscomp$0 > end$jscomp$0 &&
-                      ((curFocusedElem = end$jscomp$0),
-                      (end$jscomp$0 = start$jscomp$0),
-                      (start$jscomp$0 = curFocusedElem));
-                    var startMarker = getNodeForCharacterOffset(
-                        priorFocusedElem,
-                        start$jscomp$0
-                      ),
-                      endMarker = getNodeForCharacterOffset(
-                        priorFocusedElem,
-                        end$jscomp$0
-                      );
-                    if (
-                      startMarker &&
-                      endMarker &&
-                      (1 !== selection.rangeCount ||
-                        selection.anchorNode !== startMarker.node ||
-                        selection.anchorOffset !== startMarker.offset ||
-                        selection.focusNode !== endMarker.node ||
-                        selection.focusOffset !== endMarker.offset)
-                    ) {
-                      var range = doc.createRange();
-                      range.setStart(startMarker.node, startMarker.offset);
-                      selection.removeAllRanges();
-                      start$jscomp$0 > end$jscomp$0
-                        ? (selection.addRange(range),
-                          selection.extend(endMarker.node, endMarker.offset))
-                        : (range.setEnd(endMarker.node, endMarker.offset),
-                          selection.addRange(range));
-                    }
-                  }
-                }
-              }
-              doc = [];
-              for (
-                selection = priorFocusedElem;
-                (selection = selection.parentNode);
-
-              )
-                1 === selection.nodeType &&
-                  doc.push({
-                    element: selection,
-                    left: selection.scrollLeft,
-                    top: selection.scrollTop
-                  });
-              "function" === typeof priorFocusedElem.focus &&
-                priorFocusedElem.focus();
-              for (
-                priorFocusedElem = 0;
-                priorFocusedElem < doc.length;
-                priorFocusedElem++
-              ) {
-                var info = doc[priorFocusedElem];
-                info.element.scrollLeft = info.left;
-                info.element.scrollTop = info.top;
-              }
-            }
-            _enabled = !!eventsEnabled;
-            selectionInformation = eventsEnabled = null;
-          } finally {
-            (executionContext = prevExecutionContext),
-              (ReactDOMSharedInternals.p = previousPriority),
-              (ReactSharedInternals.T = rootMutationHasEffect);
-          }
-        }
-        root.current = finishedWork;
-        pendingEffectsStatus = PENDING_LAYOUT_PHASE;
-      }
-    }
-    function flushLayoutEffects() {
-      if (pendingEffectsStatus === PENDING_LAYOUT_PHASE) {
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        var suspendedViewTransitionReason =
-          pendingSuspendedViewTransitionReason;
-        if (null !== suspendedViewTransitionReason) {
-          commitStartTime = now();
-          var startTime = commitEndTime,
-            endTime = commitStartTime;
-          !supportsUserTiming ||
-            endTime <= startTime ||
-            (animatingTask
-              ? animatingTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    suspendedViewTransitionReason,
-                    startTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  suspendedViewTransitionReason,
-                  startTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-light"
-                ));
-        }
-        suspendedViewTransitionReason = pendingEffectsRoot;
-        startTime = pendingFinishedWork;
-        endTime = pendingEffectsLanes;
-        var rootHasLayoutEffect = 0 !== (startTime.flags & 8772);
-        if (0 !== (startTime.subtreeFlags & 8772) || rootHasLayoutEffect) {
-          rootHasLayoutEffect = ReactSharedInternals.T;
-          ReactSharedInternals.T = null;
-          var _previousPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          var _prevExecutionContext = executionContext;
-          executionContext |= CommitContext;
-          try {
-            (inProgressLanes = endTime),
-              (inProgressRoot = suspendedViewTransitionReason),
-              resetComponentEffectTimers(),
-              commitLayoutEffectOnFiber(
-                suspendedViewTransitionReason,
-                startTime.alternate,
-                startTime
-              ),
-              (inProgressRoot = inProgressLanes = null);
-          } finally {
-            (executionContext = _prevExecutionContext),
-              (ReactDOMSharedInternals.p = _previousPriority),
-              (ReactSharedInternals.T = rootHasLayoutEffect);
-          }
-        }
-        suspendedViewTransitionReason = pendingEffectsRenderEndTime;
-        startTime = pendingSuspendedCommitReason;
-        commitEndTime = now();
-        suspendedViewTransitionReason =
-          null === startTime ? suspendedViewTransitionReason : commitStartTime;
-        startTime = commitEndTime;
-        endTime = pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;
-        rootHasLayoutEffect = workInProgressUpdateTask;
-        null !== commitErrors
-          ? logCommitErrored(
-              suspendedViewTransitionReason,
-              startTime,
-              commitErrors,
-              !1,
-              rootHasLayoutEffect
-            )
-          : !supportsUserTiming ||
-            startTime <= suspendedViewTransitionReason ||
-            (rootHasLayoutEffect
-              ? rootHasLayoutEffect.run(
-                  console.timeStamp.bind(
-                    console,
-                    endTime ? "Commit Interrupted View Transition" : "Commit",
-                    suspendedViewTransitionReason,
-                    startTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    endTime ? "error" : "secondary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  endTime ? "Commit Interrupted View Transition" : "Commit",
-                  suspendedViewTransitionReason,
-                  startTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  endTime ? "error" : "secondary-dark"
-                ));
-        pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE;
-      }
-    }
-    function flushSpawnedWork() {
-      if (
-        pendingEffectsStatus === PENDING_SPAWNED_WORK ||
-        pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE
-      ) {
-        if (pendingEffectsStatus === PENDING_SPAWNED_WORK) {
-          var startViewTransitionStartTime = commitEndTime;
-          commitEndTime = now();
-          var endTime = commitEndTime,
-            abortedViewTransition =
-              pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;
-          !supportsUserTiming ||
-            endTime <= startViewTransitionStartTime ||
-            (animatingTask
-              ? animatingTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    abortedViewTransition
-                      ? "Interrupted View Transition"
-                      : "Starting Animation",
-                    startViewTransitionStartTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    abortedViewTransition ? "error" : "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  abortedViewTransition
-                    ? "Interrupted View Transition"
-                    : "Starting Animation",
-                  startViewTransitionStartTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  abortedViewTransition ? " error" : "secondary-light"
-                ));
-          pendingDelayedCommitReason !== ABORTED_VIEW_TRANSITION_COMMIT &&
-            (pendingDelayedCommitReason = ANIMATION_STARTED_COMMIT);
-        }
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        requestPaint();
-        startViewTransitionStartTime = pendingEffectsRoot;
-        var finishedWork = pendingFinishedWork;
-        endTime = pendingEffectsLanes;
-        abortedViewTransition = pendingRecoverableErrors;
-        var rootDidHavePassiveEffects =
-          0 !== finishedWork.actualDuration ||
-          0 !== (finishedWork.subtreeFlags & 10256) ||
-          0 !== (finishedWork.flags & 10256);
-        rootDidHavePassiveEffects
-          ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE)
-          : ((pendingEffectsStatus = NO_PENDING_EFFECTS),
-            (pendingFinishedWork = pendingEffectsRoot = null),
-            releaseRootPooledCache(
-              startViewTransitionStartTime,
-              startViewTransitionStartTime.pendingLanes
-            ),
-            (nestedPassiveUpdateCount = 0),
-            (rootWithPassiveNestedUpdates = null));
-        var remainingLanes = startViewTransitionStartTime.pendingLanes;
-        0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);
-        rootDidHavePassiveEffects ||
-          commitDoubleInvokeEffectsInDEV(startViewTransitionStartTime);
-        remainingLanes = lanesToEventPriority(endTime);
-        finishedWork = finishedWork.stateNode;
-        if (
-          injectedHook &&
-          "function" === typeof injectedHook.onCommitFiberRoot
-        )
-          try {
-            var didError = 128 === (finishedWork.current.flags & 128);
-            switch (remainingLanes) {
-              case DiscreteEventPriority:
-                var schedulerPriority = ImmediatePriority;
-                break;
-              case ContinuousEventPriority:
-                schedulerPriority = UserBlockingPriority;
-                break;
-              case DefaultEventPriority:
-                schedulerPriority = NormalPriority$1;
-                break;
-              case IdleEventPriority:
-                schedulerPriority = IdlePriority;
-                break;
-              default:
-                schedulerPriority = NormalPriority$1;
-            }
-            injectedHook.onCommitFiberRoot(
-              rendererID,
-              finishedWork,
-              schedulerPriority,
-              didError
-            );
-          } catch (err) {
-            hasLoggedError ||
-              ((hasLoggedError = !0),
-              console.error(
-                "React instrumentation encountered an error: %o",
-                err
-              ));
-          }
-        isDevToolsPresent &&
-          startViewTransitionStartTime.memoizedUpdaters.clear();
-        onCommitRoot();
-        if (null !== abortedViewTransition) {
-          didError = ReactSharedInternals.T;
-          schedulerPriority = ReactDOMSharedInternals.p;
-          ReactDOMSharedInternals.p = DiscreteEventPriority;
-          ReactSharedInternals.T = null;
-          try {
-            var onRecoverableError =
-              startViewTransitionStartTime.onRecoverableError;
-            for (
-              finishedWork = 0;
-              finishedWork < abortedViewTransition.length;
-              finishedWork++
-            ) {
-              var recoverableError = abortedViewTransition[finishedWork],
-                errorInfo = makeErrorInfo(recoverableError.stack);
-              runWithFiberInDEV(
-                recoverableError.source,
-                onRecoverableError,
-                recoverableError.value,
-                errorInfo
-              );
-            }
-          } finally {
-            (ReactSharedInternals.T = didError),
-              (ReactDOMSharedInternals.p = schedulerPriority);
-          }
-        }
-        0 !== (pendingEffectsLanes & 3) && flushPendingEffects();
-        ensureRootIsScheduled(startViewTransitionStartTime);
-        remainingLanes = startViewTransitionStartTime.pendingLanes;
-        0 !== (endTime & 261930) && 0 !== (remainingLanes & 42)
-          ? ((nestedUpdateScheduled = !0),
-            startViewTransitionStartTime === rootWithNestedUpdates
-              ? nestedUpdateCount++
-              : ((nestedUpdateCount = 0),
-                (rootWithNestedUpdates = startViewTransitionStartTime)))
-          : (nestedUpdateCount = 0);
-        rootDidHavePassiveEffects || finalizeRender(endTime, commitEndTime);
-        flushSyncWorkAcrossRoots_impl(0, !1);
-      }
-    }
-    function makeErrorInfo(componentStack) {
-      componentStack = { componentStack: componentStack };
-      Object.defineProperty(componentStack, "digest", {
-        get: function () {
-          console.error(
-            'You are accessing "digest" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.'
-          );
-        }
-      });
-      return componentStack;
-    }
-    function releaseRootPooledCache(root, remainingLanes) {
-      0 === (root.pooledCacheLanes &= remainingLanes) &&
-        ((remainingLanes = root.pooledCache),
-        null != remainingLanes &&
-          ((root.pooledCache = null), releaseCache(remainingLanes)));
-    }
-    function flushPendingEffects() {
-      flushMutationEffects();
-      flushLayoutEffects();
-      flushSpawnedWork();
-      return flushPassiveEffects();
-    }
-    function flushPassiveEffects() {
-      if (pendingEffectsStatus !== PENDING_PASSIVE_PHASE) return !1;
-      var root = pendingEffectsRoot,
-        remainingLanes = pendingEffectsRemainingLanes;
-      pendingEffectsRemainingLanes = 0;
-      var renderPriority = lanesToEventPriority(pendingEffectsLanes),
-        priority =
-          0 === DefaultEventPriority || DefaultEventPriority > renderPriority
-            ? DefaultEventPriority
-            : renderPriority;
-      renderPriority = ReactSharedInternals.T;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        ReactDOMSharedInternals.p = priority;
-        ReactSharedInternals.T = null;
-        var transitions = pendingPassiveTransitions;
-        pendingPassiveTransitions = null;
-        priority = pendingEffectsRoot;
-        var lanes = pendingEffectsLanes;
-        pendingEffectsStatus = NO_PENDING_EFFECTS;
-        pendingFinishedWork = pendingEffectsRoot = null;
-        pendingEffectsLanes = 0;
-        if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
-          throw Error("Cannot flush passive effects while already rendering.");
-        setCurrentTrackFromLanes(lanes);
-        isFlushingPassiveEffects = !0;
-        didScheduleUpdateDuringPassiveEffects = !1;
-        var passiveEffectStartTime = 0;
-        commitErrors = null;
-        passiveEffectStartTime = now$1();
-        if (pendingDelayedCommitReason === ANIMATION_STARTED_COMMIT)
-          logAnimatingPhase(
-            commitEndTime,
-            passiveEffectStartTime,
-            animatingTask
-          );
-        else {
-          var startTime = commitEndTime,
-            endTime = passiveEffectStartTime,
-            delayedUntilPaint =
-              pendingDelayedCommitReason === DELAYED_PASSIVE_COMMIT;
-          !supportsUserTiming ||
-            endTime <= startTime ||
-            (workInProgressUpdateTask
-              ? workInProgressUpdateTask.run(
-                  console.timeStamp.bind(
-                    console,
-                    delayedUntilPaint ? "Waiting for Paint" : "Waiting",
-                    startTime,
-                    endTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-light"
-                  )
-                )
-              : console.timeStamp(
-                  delayedUntilPaint ? "Waiting for Paint" : "Waiting",
-                  startTime,
-                  endTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-light"
-                ));
-        }
-        startTime = executionContext;
-        executionContext |= CommitContext;
-        var finishedWork = priority.current;
-        resetComponentEffectTimers();
-        commitPassiveUnmountOnFiber(finishedWork);
-        var finishedWork$jscomp$0 = priority.current;
-        finishedWork = pendingEffectsRenderEndTime;
-        resetComponentEffectTimers();
-        commitPassiveMountOnFiber(
-          priority,
-          finishedWork$jscomp$0,
-          lanes,
-          transitions,
-          finishedWork
-        );
-        commitDoubleInvokeEffectsInDEV(priority);
-        executionContext = startTime;
-        var passiveEffectsEndTime = now$1();
-        finishedWork$jscomp$0 = passiveEffectStartTime;
-        finishedWork = workInProgressUpdateTask;
-        null !== commitErrors
-          ? logCommitErrored(
-              finishedWork$jscomp$0,
-              passiveEffectsEndTime,
-              commitErrors,
-              !0,
-              finishedWork
-            )
-          : !supportsUserTiming ||
-            passiveEffectsEndTime <= finishedWork$jscomp$0 ||
-            (finishedWork
-              ? finishedWork.run(
-                  console.timeStamp.bind(
-                    console,
-                    "Remaining Effects",
-                    finishedWork$jscomp$0,
-                    passiveEffectsEndTime,
-                    currentTrack,
-                    LANES_TRACK_GROUP,
-                    "secondary-dark"
-                  )
-                )
-              : console.timeStamp(
-                  "Remaining Effects",
-                  finishedWork$jscomp$0,
-                  passiveEffectsEndTime,
-                  currentTrack,
-                  LANES_TRACK_GROUP,
-                  "secondary-dark"
-                ));
-        finalizeRender(lanes, passiveEffectsEndTime);
-        flushSyncWorkAcrossRoots_impl(0, !1);
-        didScheduleUpdateDuringPassiveEffects
-          ? priority === rootWithPassiveNestedUpdates
-            ? nestedPassiveUpdateCount++
-            : ((nestedPassiveUpdateCount = 0),
-              (rootWithPassiveNestedUpdates = priority))
-          : (nestedPassiveUpdateCount = 0);
-        didScheduleUpdateDuringPassiveEffects = isFlushingPassiveEffects = !1;
-        if (
-          injectedHook &&
-          "function" === typeof injectedHook.onPostCommitFiberRoot
-        )
-          try {
-            injectedHook.onPostCommitFiberRoot(rendererID, priority);
-          } catch (err) {
-            hasLoggedError ||
-              ((hasLoggedError = !0),
-              console.error(
-                "React instrumentation encountered an error: %o",
-                err
-              ));
-          }
-        var stateNode = priority.current.stateNode;
-        stateNode.effectDuration = 0;
-        stateNode.passiveEffectDuration = 0;
-        return !0;
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = renderPriority),
-          releaseRootPooledCache(root, remainingLanes);
-      }
-    }
-    function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {
-      sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-      recordEffectError(sourceFiber);
-      sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);
-      rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);
-      null !== rootFiber &&
-        (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));
-    }
-    function captureCommitPhaseError(
-      sourceFiber,
-      nearestMountedAncestor,
-      error
-    ) {
-      isRunningInsertionEffect = !1;
-      if (3 === sourceFiber.tag)
-        captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);
-      else {
-        for (; null !== nearestMountedAncestor; ) {
-          if (3 === nearestMountedAncestor.tag) {
-            captureCommitPhaseErrorOnRoot(
-              nearestMountedAncestor,
-              sourceFiber,
-              error
-            );
-            return;
-          }
-          if (1 === nearestMountedAncestor.tag) {
-            var instance = nearestMountedAncestor.stateNode;
-            if (
-              "function" ===
-                typeof nearestMountedAncestor.type.getDerivedStateFromError ||
-              ("function" === typeof instance.componentDidCatch &&
-                (null === legacyErrorBoundariesThatAlreadyFailed ||
-                  !legacyErrorBoundariesThatAlreadyFailed.has(instance)))
-            ) {
-              sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-              recordEffectError(sourceFiber);
-              error = createClassErrorUpdate(2);
-              instance = enqueueUpdate(nearestMountedAncestor, error, 2);
-              null !== instance &&
-                (initializeClassErrorUpdate(
-                  error,
-                  instance,
-                  nearestMountedAncestor,
-                  sourceFiber
-                ),
-                markRootUpdated$1(instance, 2),
-                ensureRootIsScheduled(instance));
-              return;
-            }
-          }
-          nearestMountedAncestor = nearestMountedAncestor.return;
-        }
-        console.error(
-          "Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\n\nError message:\n\n%s",
-          error
-        );
-      }
-    }
-    function attachPingListener(root, wakeable, lanes) {
-      var pingCache = root.pingCache;
-      if (null === pingCache) {
-        pingCache = root.pingCache = new PossiblyWeakMap();
-        var threadIDs = new Set();
-        pingCache.set(wakeable, threadIDs);
-      } else
-        (threadIDs = pingCache.get(wakeable)),
-          void 0 === threadIDs &&
-            ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));
-      threadIDs.has(lanes) ||
-        ((workInProgressRootDidAttachPingListener = !0),
-        threadIDs.add(lanes),
-        (pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),
-        isDevToolsPresent && restorePendingUpdaters(root, lanes),
-        wakeable.then(pingCache, pingCache));
-    }
-    function pingSuspendedRoot(root, wakeable, pingedLanes) {
-      var pingCache = root.pingCache;
-      null !== pingCache && pingCache.delete(wakeable);
-      root.pingedLanes |= root.suspendedLanes & pingedLanes;
-      root.warmLanes &= ~pingedLanes;
-      0 !== (pingedLanes & 127)
-        ? 0 > blockingUpdateTime &&
-          ((blockingClampTime = blockingUpdateTime = now()),
-          (blockingUpdateTask = createTask("Promise Resolved")),
-          (blockingUpdateType = PINGED_UPDATE))
-        : 0 !== (pingedLanes & 4194048) &&
-          0 > transitionUpdateTime &&
-          ((transitionClampTime = transitionUpdateTime = now()),
-          (transitionUpdateTask = createTask("Promise Resolved")),
-          (transitionUpdateType = PINGED_UPDATE));
-      isConcurrentActEnvironment() &&
-        null === ReactSharedInternals.actQueue &&
-        console.error(
-          "A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\n\nWhen testing, code that resolves suspended data should be wrapped into act(...):\n\nact(() => {\n  /* finish loading suspended data */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act"
-        );
-      workInProgressRoot === root &&
-        (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&
-        (workInProgressRootExitStatus === RootSuspendedWithDelay ||
-        (workInProgressRootExitStatus === RootSuspended &&
-          (workInProgressRootRenderLanes & 62914560) ===
-            workInProgressRootRenderLanes &&
-          now$1() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)
-          ? (executionContext & RenderContext) === NoContext &&
-            prepareFreshStack(root, 0)
-          : (workInProgressRootPingedLanes |= pingedLanes),
-        workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&
-          (workInProgressSuspendedRetryLanes = 0));
-      ensureRootIsScheduled(root);
-    }
-    function retryTimedOutBoundary(boundaryFiber, retryLane) {
-      0 === retryLane && (retryLane = claimNextRetryLane());
-      boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);
-      null !== boundaryFiber &&
-        (markRootUpdated$1(boundaryFiber, retryLane),
-        ensureRootIsScheduled(boundaryFiber));
-    }
-    function retryDehydratedSuspenseBoundary(boundaryFiber) {
-      var suspenseState = boundaryFiber.memoizedState,
-        retryLane = 0;
-      null !== suspenseState && (retryLane = suspenseState.retryLane);
-      retryTimedOutBoundary(boundaryFiber, retryLane);
-    }
-    function resolveRetryWakeable(boundaryFiber, wakeable) {
-      var retryLane = 0;
-      switch (boundaryFiber.tag) {
-        case 31:
-        case 13:
-          var retryCache = boundaryFiber.stateNode;
-          var suspenseState = boundaryFiber.memoizedState;
-          null !== suspenseState && (retryLane = suspenseState.retryLane);
-          break;
-        case 19:
-          retryCache = boundaryFiber.stateNode;
-          break;
-        case 22:
-          retryCache = boundaryFiber.stateNode._retryCache;
-          break;
-        default:
-          throw Error(
-            "Pinged unknown suspense boundary type. This is probably a bug in React."
-          );
-      }
-      null !== retryCache && retryCache.delete(wakeable);
-      retryTimedOutBoundary(boundaryFiber, retryLane);
-    }
-    function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-      root$jscomp$0,
-      parentFiber,
-      isInStrictMode
-    ) {
-      if (0 !== (parentFiber.subtreeFlags & 67117056))
-        for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-          var root = root$jscomp$0,
-            fiber = parentFiber,
-            isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
-          isStrictModeFiber = isInStrictMode || isStrictModeFiber;
-          22 !== fiber.tag
-            ? fiber.flags & 67108864
-              ? isStrictModeFiber &&
-                runWithFiberInDEV(
-                  fiber,
-                  doubleInvokeEffectsOnFiber,
-                  root,
-                  fiber
-                )
-              : recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-                  root,
-                  fiber,
-                  isStrictModeFiber
-                )
-            : null === fiber.memoizedState &&
-              (isStrictModeFiber && fiber.flags & 8192
-                ? runWithFiberInDEV(
-                    fiber,
-                    doubleInvokeEffectsOnFiber,
-                    root,
-                    fiber
-                  )
-                : fiber.subtreeFlags & 67108864 &&
-                  runWithFiberInDEV(
-                    fiber,
-                    recursivelyTraverseAndDoubleInvokeEffectsInDEV,
-                    root,
-                    fiber,
-                    isStrictModeFiber
-                  ));
-          parentFiber = parentFiber.sibling;
-        }
-    }
-    function doubleInvokeEffectsOnFiber(root, fiber) {
-      setIsStrictModeForDevtools(!0);
-      try {
-        disappearLayoutEffects(fiber),
-          disconnectPassiveEffect(fiber),
-          reappearLayoutEffects(root, fiber.alternate, fiber, !1),
-          reconnectPassiveEffects(root, fiber, 0, null, !1, 0);
-      } finally {
-        setIsStrictModeForDevtools(!1);
-      }
-    }
-    function commitDoubleInvokeEffectsInDEV(root) {
-      var doubleInvokeEffects = !0;
-      root.current.mode & (StrictLegacyMode | StrictEffectsMode) ||
-        (doubleInvokeEffects = !1);
-      recursivelyTraverseAndDoubleInvokeEffectsInDEV(
-        root,
-        root.current,
-        doubleInvokeEffects
-      );
-    }
-    function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {
-      if ((executionContext & RenderContext) === NoContext) {
-        var tag = fiber.tag;
-        if (
-          3 === tag ||
-          1 === tag ||
-          0 === tag ||
-          11 === tag ||
-          14 === tag ||
-          15 === tag
-        ) {
-          tag = getComponentNameFromFiber(fiber) || "ReactComponent";
-          if (null !== didWarnStateUpdateForNotYetMountedComponent) {
-            if (didWarnStateUpdateForNotYetMountedComponent.has(tag)) return;
-            didWarnStateUpdateForNotYetMountedComponent.add(tag);
-          } else didWarnStateUpdateForNotYetMountedComponent = new Set([tag]);
-          runWithFiberInDEV(fiber, function () {
-            console.error(
-              "Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously tries to update the component. Move this work to useEffect instead."
-            );
-          });
-        }
-      }
-    }
-    function restorePendingUpdaters(root, lanes) {
-      isDevToolsPresent &&
-        root.memoizedUpdaters.forEach(function (schedulingFiber) {
-          addFiberToLanesMap(root, schedulingFiber, lanes);
-        });
-    }
-    function scheduleCallback$1(priorityLevel, callback) {
-      var actQueue = ReactSharedInternals.actQueue;
-      return null !== actQueue
-        ? (actQueue.push(callback), fakeActCallbackNode$1)
-        : scheduleCallback$3(priorityLevel, callback);
-    }
-    function warnIfUpdatesNotWrappedWithActDEV(fiber) {
-      isConcurrentActEnvironment() &&
-        null === ReactSharedInternals.actQueue &&
-        runWithFiberInDEV(fiber, function () {
-          console.error(
-            "An update to %s inside a test was not wrapped in act(...).\n\nWhen testing, code that causes React state updates should be wrapped into act(...):\n\nact(() => {\n  /* fire events that update state */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act",
-            getComponentNameFromFiber(fiber)
-          );
-        });
-    }
-    function ensureRootIsScheduled(root) {
-      root !== lastScheduledRoot &&
-        null === root.next &&
-        (null === lastScheduledRoot
-          ? (firstScheduledRoot = lastScheduledRoot = root)
-          : (lastScheduledRoot = lastScheduledRoot.next = root));
-      mightHavePendingSyncWork = !0;
-      null !== ReactSharedInternals.actQueue
-        ? didScheduleMicrotask_act ||
-          ((didScheduleMicrotask_act = !0), scheduleImmediateRootScheduleTask())
-        : didScheduleMicrotask ||
-          ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());
-    }
-    function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {
-      if (!isFlushingWork && mightHavePendingSyncWork) {
-        isFlushingWork = !0;
-        do {
-          var didPerformSomeWork = !1;
-          for (var root = firstScheduledRoot; null !== root; ) {
-            if (!onlyLegacy)
-              if (0 !== syncTransitionLanes) {
-                var pendingLanes = root.pendingLanes;
-                if (0 === pendingLanes) var nextLanes = 0;
-                else {
-                  var suspendedLanes = root.suspendedLanes,
-                    pingedLanes = root.pingedLanes;
-                  nextLanes =
-                    (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;
-                  nextLanes &= pendingLanes & ~(suspendedLanes & ~pingedLanes);
-                  nextLanes =
-                    nextLanes & 201326741
-                      ? (nextLanes & 201326741) | 1
-                      : nextLanes
-                        ? nextLanes | 2
-                        : 0;
-                }
-                0 !== nextLanes &&
-                  ((didPerformSomeWork = !0),
-                  performSyncWorkOnRoot(root, nextLanes));
-              } else
-                (nextLanes = workInProgressRootRenderLanes),
-                  (nextLanes = getNextLanes(
-                    root,
-                    root === workInProgressRoot ? nextLanes : 0,
-                    null !== root.cancelPendingCommit ||
-                      root.timeoutHandle !== noTimeout
-                  )),
-                  0 === (nextLanes & 3) ||
-                    checkIfRootIsPrerendering(root, nextLanes) ||
-                    ((didPerformSomeWork = !0),
-                    performSyncWorkOnRoot(root, nextLanes));
-            root = root.next;
-          }
-        } while (didPerformSomeWork);
-        isFlushingWork = !1;
-      }
-    }
-    function processRootScheduleInImmediateTask() {
-      schedulerEvent = window.event;
-      processRootScheduleInMicrotask();
-    }
-    function processRootScheduleInMicrotask() {
-      mightHavePendingSyncWork =
-        didScheduleMicrotask_act =
-        didScheduleMicrotask =
-          !1;
-      var syncTransitionLanes = 0;
-      0 !== currentEventTransitionLane &&
-        shouldAttemptEagerTransition() &&
-        (syncTransitionLanes = currentEventTransitionLane);
-      for (
-        var currentTime = now$1(), prev = null, root = firstScheduledRoot;
-        null !== root;
-
-      ) {
-        var next = root.next,
-          nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);
-        if (0 === nextLanes)
-          (root.next = null),
-            null === prev ? (firstScheduledRoot = next) : (prev.next = next),
-            null === next && (lastScheduledRoot = prev);
-        else if (
-          ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))
-        )
-          mightHavePendingSyncWork = !0;
-        root = next;
-      }
-      (pendingEffectsStatus !== NO_PENDING_EFFECTS &&
-        pendingEffectsStatus !== PENDING_PASSIVE_PHASE) ||
-        flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);
-      0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);
-    }
-    function scheduleTaskForRootDuringMicrotask(root, currentTime) {
-      for (
-        var suspendedLanes = root.suspendedLanes,
-          pingedLanes = root.pingedLanes,
-          expirationTimes = root.expirationTimes,
-          lanes = root.pendingLanes & -62914561;
-        0 < lanes;
-
-      ) {
-        var index = 31 - clz32(lanes),
-          lane = 1 << index,
-          expirationTime = expirationTimes[index];
-        if (-1 === expirationTime) {
-          if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))
-            expirationTimes[index] = computeExpirationTime(lane, currentTime);
-        } else expirationTime <= currentTime && (root.expiredLanes |= lane);
-        lanes &= ~lane;
-      }
-      currentTime = workInProgressRoot;
-      suspendedLanes = workInProgressRootRenderLanes;
-      suspendedLanes = getNextLanes(
-        root,
-        root === currentTime ? suspendedLanes : 0,
-        null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
-      );
-      pingedLanes = root.callbackNode;
-      if (
-        0 === suspendedLanes ||
-        (root === currentTime &&
-          (workInProgressSuspendedReason === SuspendedOnData ||
-            workInProgressSuspendedReason === SuspendedOnAction)) ||
-        null !== root.cancelPendingCommit
-      )
-        return (
-          null !== pingedLanes && cancelCallback(pingedLanes),
-          (root.callbackNode = null),
-          (root.callbackPriority = 0)
-        );
-      if (
-        0 === (suspendedLanes & 3) ||
-        checkIfRootIsPrerendering(root, suspendedLanes)
-      ) {
-        currentTime = suspendedLanes & -suspendedLanes;
-        if (
-          currentTime !== root.callbackPriority ||
-          (null !== ReactSharedInternals.actQueue &&
-            pingedLanes !== fakeActCallbackNode)
-        )
-          cancelCallback(pingedLanes);
-        else return currentTime;
-        switch (lanesToEventPriority(suspendedLanes)) {
-          case DiscreteEventPriority:
-          case ContinuousEventPriority:
-            suspendedLanes = UserBlockingPriority;
-            break;
-          case DefaultEventPriority:
-            suspendedLanes = NormalPriority$1;
-            break;
-          case IdleEventPriority:
-            suspendedLanes = IdlePriority;
-            break;
-          default:
-            suspendedLanes = NormalPriority$1;
-        }
-        pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);
-        null !== ReactSharedInternals.actQueue
-          ? (ReactSharedInternals.actQueue.push(pingedLanes),
-            (suspendedLanes = fakeActCallbackNode))
-          : (suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes));
-        root.callbackPriority = currentTime;
-        root.callbackNode = suspendedLanes;
-        return currentTime;
-      }
-      null !== pingedLanes && cancelCallback(pingedLanes);
-      root.callbackPriority = 2;
-      root.callbackNode = null;
-      return 2;
-    }
-    function performWorkOnRootViaSchedulerTask(root, didTimeout) {
-      nestedUpdateScheduled = currentUpdateIsNested = !1;
-      schedulerEvent = window.event;
-      if (
-        pendingEffectsStatus !== NO_PENDING_EFFECTS &&
-        pendingEffectsStatus !== PENDING_PASSIVE_PHASE
-      )
-        return (root.callbackNode = null), (root.callbackPriority = 0), null;
-      var originalCallbackNode = root.callbackNode;
-      pendingDelayedCommitReason === IMMEDIATE_COMMIT &&
-        (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);
-      if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)
-        return null;
-      var workInProgressRootRenderLanes$jscomp$0 =
-        workInProgressRootRenderLanes;
-      workInProgressRootRenderLanes$jscomp$0 = getNextLanes(
-        root,
-        root === workInProgressRoot
-          ? workInProgressRootRenderLanes$jscomp$0
-          : 0,
-        null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
-      );
-      if (0 === workInProgressRootRenderLanes$jscomp$0) return null;
-      performWorkOnRoot(
-        root,
-        workInProgressRootRenderLanes$jscomp$0,
-        didTimeout
-      );
-      scheduleTaskForRootDuringMicrotask(root, now$1());
-      return null != root.callbackNode &&
-        root.callbackNode === originalCallbackNode
-        ? performWorkOnRootViaSchedulerTask.bind(null, root)
-        : null;
-    }
-    function performSyncWorkOnRoot(root, lanes) {
-      if (flushPendingEffects()) return null;
-      currentUpdateIsNested = nestedUpdateScheduled;
-      nestedUpdateScheduled = !1;
-      performWorkOnRoot(root, lanes, !0);
-    }
-    function cancelCallback(callbackNode) {
-      callbackNode !== fakeActCallbackNode &&
-        null !== callbackNode &&
-        cancelCallback$1(callbackNode);
-    }
-    function scheduleImmediateRootScheduleTask() {
-      null !== ReactSharedInternals.actQueue &&
-        ReactSharedInternals.actQueue.push(function () {
-          processRootScheduleInMicrotask();
-          return null;
-        });
-      scheduleMicrotask(function () {
-        (executionContext & (RenderContext | CommitContext)) !== NoContext
-          ? scheduleCallback$3(
-              ImmediatePriority,
-              processRootScheduleInImmediateTask
-            )
-          : processRootScheduleInMicrotask();
-      });
-    }
-    function requestTransitionLane() {
-      if (0 === currentEventTransitionLane) {
-        var actionScopeLane = currentEntangledLane;
-        0 === actionScopeLane &&
-          ((actionScopeLane = nextTransitionUpdateLane),
-          (nextTransitionUpdateLane <<= 1),
-          0 === (nextTransitionUpdateLane & 261888) &&
-            (nextTransitionUpdateLane = 256));
-        currentEventTransitionLane = actionScopeLane;
-      }
-      return currentEventTransitionLane;
-    }
-    function coerceFormActionProp(actionProp) {
-      if (
-        null == actionProp ||
-        "symbol" === typeof actionProp ||
-        "boolean" === typeof actionProp
-      )
-        return null;
-      if ("function" === typeof actionProp) return actionProp;
-      checkAttributeStringCoercion(actionProp, "action");
-      return sanitizeURL("" + actionProp);
-    }
-    function createFormDataWithSubmitter(form, submitter) {
-      var temp = submitter.ownerDocument.createElement("input");
-      temp.name = submitter.name;
-      temp.value = submitter.value;
-      form.id && temp.setAttribute("form", form.id);
-      submitter.parentNode.insertBefore(temp, submitter);
-      form = new FormData(form);
-      temp.parentNode.removeChild(temp);
-      return form;
-    }
-    function extractEvents$1(
-      dispatchQueue,
-      domEventName,
-      maybeTargetInst,
-      nativeEvent,
-      nativeEventTarget
-    ) {
-      if (
-        "submit" === domEventName &&
-        maybeTargetInst &&
-        maybeTargetInst.stateNode === nativeEventTarget
-      ) {
-        var action = coerceFormActionProp(
-            (nativeEventTarget[internalPropsKey] || null).action
-          ),
-          submitter = nativeEvent.submitter;
-        submitter &&
-          ((domEventName = (domEventName = submitter[internalPropsKey] || null)
-            ? coerceFormActionProp(domEventName.formAction)
-            : submitter.getAttribute("formAction")),
-          null !== domEventName &&
-            ((action = domEventName), (submitter = null)));
-        var event = new SyntheticEvent(
-          "action",
-          "action",
-          null,
-          nativeEvent,
-          nativeEventTarget
-        );
-        dispatchQueue.push({
-          event: event,
-          listeners: [
-            {
-              instance: null,
-              listener: function () {
-                if (nativeEvent.defaultPrevented) {
-                  if (0 !== currentEventTransitionLane) {
-                    var formData = submitter
-                        ? createFormDataWithSubmitter(
-                            nativeEventTarget,
-                            submitter
-                          )
-                        : new FormData(nativeEventTarget),
-                      pendingState = {
-                        pending: !0,
-                        data: formData,
-                        method: nativeEventTarget.method,
-                        action: action
-                      };
-                    Object.freeze(pendingState);
-                    startHostTransition(
-                      maybeTargetInst,
-                      pendingState,
-                      null,
-                      formData
-                    );
-                  }
-                } else
-                  "function" === typeof action &&
-                    (event.preventDefault(),
-                    (formData = submitter
-                      ? createFormDataWithSubmitter(
-                          nativeEventTarget,
-                          submitter
-                        )
-                      : new FormData(nativeEventTarget)),
-                    (pendingState = {
-                      pending: !0,
-                      data: formData,
-                      method: nativeEventTarget.method,
-                      action: action
-                    }),
-                    Object.freeze(pendingState),
-                    startHostTransition(
-                      maybeTargetInst,
-                      pendingState,
-                      action,
-                      formData
-                    ));
-              },
-              currentTarget: nativeEventTarget
-            }
-          ]
-        });
-      }
-    }
-    function executeDispatch(event, listener, currentTarget) {
-      event.currentTarget = currentTarget;
-      try {
-        listener(event);
-      } catch (error) {
-        reportGlobalError(error);
-      }
-      event.currentTarget = null;
-    }
-    function processDispatchQueue(dispatchQueue, eventSystemFlags) {
-      eventSystemFlags = 0 !== (eventSystemFlags & 4);
-      for (var i = 0; i < dispatchQueue.length; i++) {
-        var _dispatchQueue$i = dispatchQueue[i];
-        a: {
-          var previousInstance = void 0,
-            event = _dispatchQueue$i.event;
-          _dispatchQueue$i = _dispatchQueue$i.listeners;
-          if (eventSystemFlags)
-            for (
-              var i$jscomp$0 = _dispatchQueue$i.length - 1;
-              0 <= i$jscomp$0;
-              i$jscomp$0--
-            ) {
-              var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],
-                instance = _dispatchListeners$i.instance,
-                currentTarget = _dispatchListeners$i.currentTarget;
-              _dispatchListeners$i = _dispatchListeners$i.listener;
-              if (instance !== previousInstance && event.isPropagationStopped())
-                break a;
-              null !== instance
-                ? runWithFiberInDEV(
-                    instance,
-                    executeDispatch,
-                    event,
-                    _dispatchListeners$i,
-                    currentTarget
-                  )
-                : executeDispatch(event, _dispatchListeners$i, currentTarget);
-              previousInstance = instance;
-            }
-          else
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < _dispatchQueue$i.length;
-              i$jscomp$0++
-            ) {
-              _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];
-              instance = _dispatchListeners$i.instance;
-              currentTarget = _dispatchListeners$i.currentTarget;
-              _dispatchListeners$i = _dispatchListeners$i.listener;
-              if (instance !== previousInstance && event.isPropagationStopped())
-                break a;
-              null !== instance
-                ? runWithFiberInDEV(
-                    instance,
-                    executeDispatch,
-                    event,
-                    _dispatchListeners$i,
-                    currentTarget
-                  )
-                : executeDispatch(event, _dispatchListeners$i, currentTarget);
-              previousInstance = instance;
-            }
-        }
-      }
-    }
-    function listenToNonDelegatedEvent(domEventName, targetElement) {
-      nonDelegatedEvents.has(domEventName) ||
-        console.error(
-          'Did not expect a listenToNonDelegatedEvent() call for "%s". This is a bug in React. Please file an issue.',
-          domEventName
-        );
-      var listenerSet = targetElement[internalEventHandlersKey];
-      void 0 === listenerSet &&
-        (listenerSet = targetElement[internalEventHandlersKey] = new Set());
-      var listenerSetKey = domEventName + "__bubble";
-      listenerSet.has(listenerSetKey) ||
-        (addTrappedEventListener(targetElement, domEventName, 2, !1),
-        listenerSet.add(listenerSetKey));
-    }
-    function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {
-      nonDelegatedEvents.has(domEventName) &&
-        !isCapturePhaseListener &&
-        console.error(
-          'Did not expect a listenToNativeEvent() call for "%s" in the bubble phase. This is a bug in React. Please file an issue.',
-          domEventName
-        );
-      var eventSystemFlags = 0;
-      isCapturePhaseListener && (eventSystemFlags |= 4);
-      addTrappedEventListener(
-        target,
-        domEventName,
-        eventSystemFlags,
-        isCapturePhaseListener
-      );
-    }
-    function listenToAllSupportedEvents(rootContainerElement) {
-      if (!rootContainerElement[listeningMarker]) {
-        rootContainerElement[listeningMarker] = !0;
-        allNativeEvents.forEach(function (domEventName) {
-          "selectionchange" !== domEventName &&
-            (nonDelegatedEvents.has(domEventName) ||
-              listenToNativeEvent(domEventName, !1, rootContainerElement),
-            listenToNativeEvent(domEventName, !0, rootContainerElement));
-        });
-        var ownerDocument =
-          9 === rootContainerElement.nodeType
-            ? rootContainerElement
-            : rootContainerElement.ownerDocument;
-        null === ownerDocument ||
-          ownerDocument[listeningMarker] ||
-          ((ownerDocument[listeningMarker] = !0),
-          listenToNativeEvent("selectionchange", !1, ownerDocument));
-      }
-    }
-    function addTrappedEventListener(
-      targetContainer,
-      domEventName,
-      eventSystemFlags,
-      isCapturePhaseListener
-    ) {
-      switch (getEventPriority(domEventName)) {
-        case DiscreteEventPriority:
-          var listenerWrapper = dispatchDiscreteEvent;
-          break;
-        case ContinuousEventPriority:
-          listenerWrapper = dispatchContinuousEvent;
-          break;
-        default:
-          listenerWrapper = dispatchEvent;
-      }
-      eventSystemFlags = listenerWrapper.bind(
-        null,
-        domEventName,
-        eventSystemFlags,
-        targetContainer
-      );
-      listenerWrapper = void 0;
-      !passiveBrowserEventsSupported ||
-        ("touchstart" !== domEventName &&
-          "touchmove" !== domEventName &&
-          "wheel" !== domEventName) ||
-        (listenerWrapper = !0);
-      isCapturePhaseListener
-        ? void 0 !== listenerWrapper
-          ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-              capture: !0,
-              passive: listenerWrapper
-            })
-          : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)
-        : void 0 !== listenerWrapper
-          ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-              passive: listenerWrapper
-            })
-          : targetContainer.addEventListener(
-              domEventName,
-              eventSystemFlags,
-              !1
-            );
-    }
-    function dispatchEventForPluginEventSystem(
-      domEventName,
-      eventSystemFlags,
-      nativeEvent,
-      targetInst$jscomp$0,
-      targetContainer
-    ) {
-      var ancestorInst = targetInst$jscomp$0;
-      if (
-        0 === (eventSystemFlags & 1) &&
-        0 === (eventSystemFlags & 2) &&
-        null !== targetInst$jscomp$0
-      )
-        a: for (;;) {
-          if (null === targetInst$jscomp$0) return;
-          var nodeTag = targetInst$jscomp$0.tag;
-          if (3 === nodeTag || 4 === nodeTag) {
-            var container = targetInst$jscomp$0.stateNode.containerInfo;
-            if (container === targetContainer) break;
-            if (4 === nodeTag)
-              for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
-                var grandTag = nodeTag.tag;
-                if (
-                  (3 === grandTag || 4 === grandTag) &&
-                  nodeTag.stateNode.containerInfo === targetContainer
-                )
-                  return;
-                nodeTag = nodeTag.return;
-              }
-            for (; null !== container; ) {
-              nodeTag = getClosestInstanceFromNode(container);
-              if (null === nodeTag) return;
-              grandTag = nodeTag.tag;
-              if (
-                5 === grandTag ||
-                6 === grandTag ||
-                26 === grandTag ||
-                27 === grandTag
-              ) {
-                targetInst$jscomp$0 = ancestorInst = nodeTag;
-                continue a;
-              }
-              container = container.parentNode;
-            }
-          }
-          targetInst$jscomp$0 = targetInst$jscomp$0.return;
-        }
-      batchedUpdates$2(function () {
-        var targetInst = ancestorInst,
-          nativeEventTarget = getEventTarget(nativeEvent),
-          dispatchQueue = [];
-        a: {
-          var reactName = topLevelEventsToReactNames.get(domEventName);
-          if (void 0 !== reactName) {
-            var SyntheticEventCtor = SyntheticEvent,
-              reactEventType = domEventName;
-            switch (domEventName) {
-              case "keypress":
-                if (0 === getEventCharCode(nativeEvent)) break a;
-              case "keydown":
-              case "keyup":
-                SyntheticEventCtor = SyntheticKeyboardEvent;
-                break;
-              case "focusin":
-                reactEventType = "focus";
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "focusout":
-                reactEventType = "blur";
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "beforeblur":
-              case "afterblur":
-                SyntheticEventCtor = SyntheticFocusEvent;
-                break;
-              case "click":
-                if (2 === nativeEvent.button) break a;
-              case "auxclick":
-              case "dblclick":
-              case "mousedown":
-              case "mousemove":
-              case "mouseup":
-              case "mouseout":
-              case "mouseover":
-              case "contextmenu":
-                SyntheticEventCtor = SyntheticMouseEvent;
-                break;
-              case "drag":
-              case "dragend":
-              case "dragenter":
-              case "dragexit":
-              case "dragleave":
-              case "dragover":
-              case "dragstart":
-              case "drop":
-                SyntheticEventCtor = SyntheticDragEvent;
-                break;
-              case "touchcancel":
-              case "touchend":
-              case "touchmove":
-              case "touchstart":
-                SyntheticEventCtor = SyntheticTouchEvent;
-                break;
-              case ANIMATION_END:
-              case ANIMATION_ITERATION:
-              case ANIMATION_START:
-                SyntheticEventCtor = SyntheticAnimationEvent;
-                break;
-              case TRANSITION_END:
-                SyntheticEventCtor = SyntheticTransitionEvent;
-                break;
-              case "scroll":
-              case "scrollend":
-                SyntheticEventCtor = SyntheticUIEvent;
-                break;
-              case "wheel":
-                SyntheticEventCtor = SyntheticWheelEvent;
-                break;
-              case "copy":
-              case "cut":
-              case "paste":
-                SyntheticEventCtor = SyntheticClipboardEvent;
-                break;
-              case "gotpointercapture":
-              case "lostpointercapture":
-              case "pointercancel":
-              case "pointerdown":
-              case "pointermove":
-              case "pointerout":
-              case "pointerover":
-              case "pointerup":
-                SyntheticEventCtor = SyntheticPointerEvent;
-                break;
-              case "toggle":
-              case "beforetoggle":
-                SyntheticEventCtor = SyntheticToggleEvent;
-            }
-            var inCapturePhase = 0 !== (eventSystemFlags & 4),
-              accumulateTargetOnly =
-                !inCapturePhase &&
-                ("scroll" === domEventName || "scrollend" === domEventName),
-              reactEventName = inCapturePhase
-                ? null !== reactName
-                  ? reactName + "Capture"
-                  : null
-                : reactName;
-            inCapturePhase = [];
-            for (
-              var instance = targetInst, lastHostComponent;
-              null !== instance;
-
-            ) {
-              var _instance2 = instance;
-              lastHostComponent = _instance2.stateNode;
-              _instance2 = _instance2.tag;
-              (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||
-                null === lastHostComponent ||
-                null === reactEventName ||
-                ((_instance2 = getListener(instance, reactEventName)),
-                null != _instance2 &&
-                  inCapturePhase.push(
-                    createDispatchListener(
-                      instance,
-                      _instance2,
-                      lastHostComponent
-                    )
-                  ));
-              if (accumulateTargetOnly) break;
-              instance = instance.return;
-            }
-            0 < inCapturePhase.length &&
-              ((reactName = new SyntheticEventCtor(
-                reactName,
-                reactEventType,
-                null,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              dispatchQueue.push({
-                event: reactName,
-                listeners: inCapturePhase
-              }));
-          }
-        }
-        if (0 === (eventSystemFlags & 7)) {
-          a: {
-            reactName =
-              "mouseover" === domEventName || "pointerover" === domEventName;
-            SyntheticEventCtor =
-              "mouseout" === domEventName || "pointerout" === domEventName;
-            if (
-              reactName &&
-              nativeEvent !== currentReplayingEvent &&
-              (reactEventType =
-                nativeEvent.relatedTarget || nativeEvent.fromElement) &&
-              (getClosestInstanceFromNode(reactEventType) ||
-                reactEventType[internalContainerInstanceKey])
-            )
-              break a;
-            if (SyntheticEventCtor || reactName) {
-              reactName =
-                nativeEventTarget.window === nativeEventTarget
-                  ? nativeEventTarget
-                  : (reactName = nativeEventTarget.ownerDocument)
-                    ? reactName.defaultView || reactName.parentWindow
-                    : window;
-              if (SyntheticEventCtor) {
-                if (
-                  ((reactEventType =
-                    nativeEvent.relatedTarget || nativeEvent.toElement),
-                  (SyntheticEventCtor = targetInst),
-                  (reactEventType = reactEventType
-                    ? getClosestInstanceFromNode(reactEventType)
-                    : null),
-                  null !== reactEventType &&
-                    ((accumulateTargetOnly =
-                      getNearestMountedFiber(reactEventType)),
-                    (inCapturePhase = reactEventType.tag),
-                    reactEventType !== accumulateTargetOnly ||
-                      (5 !== inCapturePhase &&
-                        27 !== inCapturePhase &&
-                        6 !== inCapturePhase)))
-                )
-                  reactEventType = null;
-              } else (SyntheticEventCtor = null), (reactEventType = targetInst);
-              if (SyntheticEventCtor !== reactEventType) {
-                inCapturePhase = SyntheticMouseEvent;
-                _instance2 = "onMouseLeave";
-                reactEventName = "onMouseEnter";
-                instance = "mouse";
-                if (
-                  "pointerout" === domEventName ||
-                  "pointerover" === domEventName
-                )
-                  (inCapturePhase = SyntheticPointerEvent),
-                    (_instance2 = "onPointerLeave"),
-                    (reactEventName = "onPointerEnter"),
-                    (instance = "pointer");
-                accumulateTargetOnly =
-                  null == SyntheticEventCtor
-                    ? reactName
-                    : getNodeFromInstance(SyntheticEventCtor);
-                lastHostComponent =
-                  null == reactEventType
-                    ? reactName
-                    : getNodeFromInstance(reactEventType);
-                reactName = new inCapturePhase(
-                  _instance2,
-                  instance + "leave",
-                  SyntheticEventCtor,
-                  nativeEvent,
-                  nativeEventTarget
-                );
-                reactName.target = accumulateTargetOnly;
-                reactName.relatedTarget = lastHostComponent;
-                _instance2 = null;
-                getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
-                  ((inCapturePhase = new inCapturePhase(
-                    reactEventName,
-                    instance + "enter",
-                    reactEventType,
-                    nativeEvent,
-                    nativeEventTarget
-                  )),
-                  (inCapturePhase.target = lastHostComponent),
-                  (inCapturePhase.relatedTarget = accumulateTargetOnly),
-                  (_instance2 = inCapturePhase));
-                accumulateTargetOnly = _instance2;
-                if (SyntheticEventCtor && reactEventType)
-                  b: {
-                    inCapturePhase = getParent;
-                    reactEventName = SyntheticEventCtor;
-                    instance = reactEventType;
-                    lastHostComponent = 0;
-                    for (
-                      _instance2 = reactEventName;
-                      _instance2;
-                      _instance2 = inCapturePhase(_instance2)
-                    )
-                      lastHostComponent++;
-                    _instance2 = 0;
-                    for (
-                      var tempB = instance;
-                      tempB;
-                      tempB = inCapturePhase(tempB)
-                    )
-                      _instance2++;
-                    for (; 0 < lastHostComponent - _instance2; )
-                      (reactEventName = inCapturePhase(reactEventName)),
-                        lastHostComponent--;
-                    for (; 0 < _instance2 - lastHostComponent; )
-                      (instance = inCapturePhase(instance)), _instance2--;
-                    for (; lastHostComponent--; ) {
-                      if (
-                        reactEventName === instance ||
-                        (null !== instance &&
-                          reactEventName === instance.alternate)
-                      ) {
-                        inCapturePhase = reactEventName;
-                        break b;
-                      }
-                      reactEventName = inCapturePhase(reactEventName);
-                      instance = inCapturePhase(instance);
-                    }
-                    inCapturePhase = null;
-                  }
-                else inCapturePhase = null;
-                null !== SyntheticEventCtor &&
-                  accumulateEnterLeaveListenersForEvent(
-                    dispatchQueue,
-                    reactName,
-                    SyntheticEventCtor,
-                    inCapturePhase,
-                    !1
-                  );
-                null !== reactEventType &&
-                  null !== accumulateTargetOnly &&
-                  accumulateEnterLeaveListenersForEvent(
-                    dispatchQueue,
-                    accumulateTargetOnly,
-                    reactEventType,
-                    inCapturePhase,
-                    !0
-                  );
-              }
-            }
-          }
-          a: {
-            reactName = targetInst ? getNodeFromInstance(targetInst) : window;
-            SyntheticEventCtor =
-              reactName.nodeName && reactName.nodeName.toLowerCase();
-            if (
-              "select" === SyntheticEventCtor ||
-              ("input" === SyntheticEventCtor && "file" === reactName.type)
-            )
-              var getTargetInstFunc = getTargetInstForChangeEvent;
-            else if (isTextInputElement(reactName))
-              if (isInputEventSupported)
-                getTargetInstFunc = getTargetInstForInputOrChangeEvent;
-              else {
-                getTargetInstFunc = getTargetInstForInputEventPolyfill;
-                var handleEventFunc = handleEventsForInputEventPolyfill;
-              }
-            else
-              (SyntheticEventCtor = reactName.nodeName),
-                !SyntheticEventCtor ||
-                "input" !== SyntheticEventCtor.toLowerCase() ||
-                ("checkbox" !== reactName.type && "radio" !== reactName.type)
-                  ? targetInst &&
-                    isCustomElement(targetInst.elementType) &&
-                    (getTargetInstFunc = getTargetInstForChangeEvent)
-                  : (getTargetInstFunc = getTargetInstForClickEvent);
-            if (
-              getTargetInstFunc &&
-              (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))
-            ) {
-              createAndAccumulateChangeEvent(
-                dispatchQueue,
-                getTargetInstFunc,
-                nativeEvent,
-                nativeEventTarget
-              );
-              break a;
-            }
-            handleEventFunc &&
-              handleEventFunc(domEventName, reactName, targetInst);
-            "focusout" === domEventName &&
-              targetInst &&
-              "number" === reactName.type &&
-              null != targetInst.memoizedProps.value &&
-              setDefaultValue(reactName, "number", reactName.value);
-          }
-          handleEventFunc = targetInst
-            ? getNodeFromInstance(targetInst)
-            : window;
-          switch (domEventName) {
-            case "focusin":
-              if (
-                isTextInputElement(handleEventFunc) ||
-                "true" === handleEventFunc.contentEditable
-              )
-                (activeElement = handleEventFunc),
-                  (activeElementInst = targetInst),
-                  (lastSelection = null);
-              break;
-            case "focusout":
-              lastSelection = activeElementInst = activeElement = null;
-              break;
-            case "mousedown":
-              mouseDown = !0;
-              break;
-            case "contextmenu":
-            case "mouseup":
-            case "dragend":
-              mouseDown = !1;
-              constructSelectEvent(
-                dispatchQueue,
-                nativeEvent,
-                nativeEventTarget
-              );
-              break;
-            case "selectionchange":
-              if (skipSelectionChangeEvent) break;
-            case "keydown":
-            case "keyup":
-              constructSelectEvent(
-                dispatchQueue,
-                nativeEvent,
-                nativeEventTarget
-              );
-          }
-          var fallbackData;
-          if (canUseCompositionEvent)
-            b: {
-              switch (domEventName) {
-                case "compositionstart":
-                  var eventType = "onCompositionStart";
-                  break b;
-                case "compositionend":
-                  eventType = "onCompositionEnd";
-                  break b;
-                case "compositionupdate":
-                  eventType = "onCompositionUpdate";
-                  break b;
-              }
-              eventType = void 0;
-            }
-          else
-            isComposing
-              ? isFallbackCompositionEnd(domEventName, nativeEvent) &&
-                (eventType = "onCompositionEnd")
-              : "keydown" === domEventName &&
-                nativeEvent.keyCode === START_KEYCODE &&
-                (eventType = "onCompositionStart");
-          eventType &&
-            (useFallbackCompositionData &&
-              "ko" !== nativeEvent.locale &&
-              (isComposing || "onCompositionStart" !== eventType
-                ? "onCompositionEnd" === eventType &&
-                  isComposing &&
-                  (fallbackData = getData())
-                : ((root = nativeEventTarget),
-                  (startText = "value" in root ? root.value : root.textContent),
-                  (isComposing = !0))),
-            (handleEventFunc = accumulateTwoPhaseListeners(
-              targetInst,
-              eventType
-            )),
-            0 < handleEventFunc.length &&
-              ((eventType = new SyntheticCompositionEvent(
-                eventType,
-                domEventName,
-                null,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              dispatchQueue.push({
-                event: eventType,
-                listeners: handleEventFunc
-              }),
-              fallbackData
-                ? (eventType.data = fallbackData)
-                : ((fallbackData = getDataFromCustomEvent(nativeEvent)),
-                  null !== fallbackData && (eventType.data = fallbackData))));
-          if (
-            (fallbackData = canUseTextInputEvent
-              ? getNativeBeforeInputChars(domEventName, nativeEvent)
-              : getFallbackBeforeInputChars(domEventName, nativeEvent))
-          )
-            (eventType = accumulateTwoPhaseListeners(
-              targetInst,
-              "onBeforeInput"
-            )),
-              0 < eventType.length &&
-                ((handleEventFunc = new SyntheticInputEvent(
-                  "onBeforeInput",
-                  "beforeinput",
-                  null,
-                  nativeEvent,
-                  nativeEventTarget
-                )),
-                dispatchQueue.push({
-                  event: handleEventFunc,
-                  listeners: eventType
-                }),
-                (handleEventFunc.data = fallbackData));
-          extractEvents$1(
-            dispatchQueue,
-            domEventName,
-            targetInst,
-            nativeEvent,
-            nativeEventTarget
-          );
-        }
-        processDispatchQueue(dispatchQueue, eventSystemFlags);
-      });
-    }
-    function createDispatchListener(instance, listener, currentTarget) {
-      return {
-        instance: instance,
-        listener: listener,
-        currentTarget: currentTarget
-      };
-    }
-    function accumulateTwoPhaseListeners(targetFiber, reactName) {
-      for (
-        var captureName = reactName + "Capture", listeners = [];
-        null !== targetFiber;
-
-      ) {
-        var _instance3 = targetFiber,
-          stateNode = _instance3.stateNode;
-        _instance3 = _instance3.tag;
-        (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||
-          null === stateNode ||
-          ((_instance3 = getListener(targetFiber, captureName)),
-          null != _instance3 &&
-            listeners.unshift(
-              createDispatchListener(targetFiber, _instance3, stateNode)
-            ),
-          (_instance3 = getListener(targetFiber, reactName)),
-          null != _instance3 &&
-            listeners.push(
-              createDispatchListener(targetFiber, _instance3, stateNode)
-            ));
-        if (3 === targetFiber.tag) return listeners;
-        targetFiber = targetFiber.return;
-      }
-      return [];
-    }
-    function getParent(inst) {
-      if (null === inst) return null;
-      do inst = inst.return;
-      while (inst && 5 !== inst.tag && 27 !== inst.tag);
-      return inst ? inst : null;
-    }
-    function accumulateEnterLeaveListenersForEvent(
-      dispatchQueue,
-      event,
-      target,
-      common,
-      inCapturePhase
-    ) {
-      for (
-        var registrationName = event._reactName, listeners = [];
-        null !== target && target !== common;
-
-      ) {
-        var _instance4 = target,
-          alternate = _instance4.alternate,
-          stateNode = _instance4.stateNode;
-        _instance4 = _instance4.tag;
-        if (null !== alternate && alternate === common) break;
-        (5 !== _instance4 && 26 !== _instance4 && 27 !== _instance4) ||
-          null === stateNode ||
-          ((alternate = stateNode),
-          inCapturePhase
-            ? ((stateNode = getListener(target, registrationName)),
-              null != stateNode &&
-                listeners.unshift(
-                  createDispatchListener(target, stateNode, alternate)
-                ))
-            : inCapturePhase ||
-              ((stateNode = getListener(target, registrationName)),
-              null != stateNode &&
-                listeners.push(
-                  createDispatchListener(target, stateNode, alternate)
-                )));
-        target = target.return;
-      }
-      0 !== listeners.length &&
-        dispatchQueue.push({ event: event, listeners: listeners });
-    }
-    function validatePropertiesInDevelopment(type, props) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      var eventRegistry = {
-        registrationNameDependencies: registrationNameDependencies,
-        possibleRegistrationNames: possibleRegistrationNames
-      };
-      isCustomElement(type) ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, eventRegistry);
-      props.contentEditable &&
-        !props.suppressContentEditableWarning &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-    }
-    function warnForPropDifference(
-      propName,
-      serverValue,
-      clientValue,
-      serverDifferences
-    ) {
-      serverValue !== clientValue &&
-        ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
-        normalizeMarkupForTextOrAttribute(serverValue) !== clientValue &&
-          (serverDifferences[propName] = serverValue));
-    }
-    function warnForExtraAttributes(
-      domElement,
-      attributeNames,
-      serverDifferences
-    ) {
-      attributeNames.forEach(function (attributeName) {
-        serverDifferences[getPropNameFromAttributeName(attributeName)] =
-          "style" === attributeName
-            ? getStylesObjectFromElement(domElement)
-            : domElement.getAttribute(attributeName);
-      });
-    }
-    function warnForInvalidEventListener(registrationName, listener) {
-      !1 === listener
-        ? console.error(
-            "Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.",
-            registrationName,
-            registrationName,
-            registrationName
-          )
-        : console.error(
-            "Expected `%s` listener to be a function, instead got a value of `%s` type.",
-            registrationName,
-            typeof listener
-          );
-    }
-    function normalizeHTML(parent, html) {
-      parent =
-        parent.namespaceURI === MATH_NAMESPACE ||
-        parent.namespaceURI === SVG_NAMESPACE
-          ? parent.ownerDocument.createElementNS(
-              parent.namespaceURI,
-              parent.tagName
-            )
-          : parent.ownerDocument.createElement(parent.tagName);
-      parent.innerHTML = html;
-      return parent.innerHTML;
-    }
-    function normalizeMarkupForTextOrAttribute(markup) {
-      willCoercionThrow(markup) &&
-        (console.error(
-          "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-          typeName(markup)
-        ),
-        testStringCoercion(markup));
-      return ("string" === typeof markup ? markup : "" + markup)
-        .replace(NORMALIZE_NEWLINES_REGEX, "\n")
-        .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, "");
-    }
-    function checkForUnmatchedText(serverText, clientText) {
-      clientText = normalizeMarkupForTextOrAttribute(clientText);
-      return normalizeMarkupForTextOrAttribute(serverText) === clientText
-        ? !0
-        : !1;
-    }
-    function setProp(domElement, tag, key, value, props, prevValue) {
-      switch (key) {
-        case "children":
-          if ("string" === typeof value)
-            validateTextNesting(value, tag, !1),
-              "body" === tag ||
-                ("textarea" === tag && "" === value) ||
-                setTextContent(domElement, value);
-          else if ("number" === typeof value || "bigint" === typeof value)
-            validateTextNesting("" + value, tag, !1),
-              "body" !== tag && setTextContent(domElement, "" + value);
-          break;
-        case "className":
-          setValueForKnownAttribute(domElement, "class", value);
-          break;
-        case "tabIndex":
-          setValueForKnownAttribute(domElement, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          setValueForKnownAttribute(domElement, key, value);
-          break;
-        case "style":
-          setValueForStyles(domElement, value, prevValue);
-          break;
-        case "data":
-          if ("object" !== tag) {
-            setValueForKnownAttribute(domElement, "data", value);
-            break;
-          }
-        case "src":
-        case "href":
-          if ("" === value && ("a" !== tag || "href" !== key)) {
-            "src" === key
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  key,
-                  key
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  key,
-                  key
-                );
-            domElement.removeAttribute(key);
-            break;
-          }
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          ) {
-            domElement.removeAttribute(key);
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          value = sanitizeURL("" + value);
-          domElement.setAttribute(key, value);
-          break;
-        case "action":
-        case "formAction":
-          null != value &&
-            ("form" === tag
-              ? "formAction" === key
-                ? console.error(
-                    "You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>."
-                  )
-                : "function" === typeof value &&
-                  ((null == props.encType && null == props.method) ||
-                    didWarnFormActionMethod ||
-                    ((didWarnFormActionMethod = !0),
-                    console.error(
-                      "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-                    )),
-                  null == props.target ||
-                    didWarnFormActionTarget ||
-                    ((didWarnFormActionTarget = !0),
-                    console.error(
-                      "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-                    )))
-              : "input" === tag || "button" === tag
-                ? "action" === key
-                  ? console.error(
-                      "You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>."
-                    )
-                  : "input" !== tag ||
-                      "submit" === props.type ||
-                      "image" === props.type ||
-                      didWarnFormActionType
-                    ? "button" !== tag ||
-                      null == props.type ||
-                      "submit" === props.type ||
-                      didWarnFormActionType
-                      ? "function" === typeof value &&
-                        (null == props.name ||
-                          didWarnFormActionName ||
-                          ((didWarnFormActionName = !0),
-                          console.error(
-                            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-                          )),
-                        (null == props.formEncType &&
-                          null == props.formMethod) ||
-                          didWarnFormActionMethod ||
-                          ((didWarnFormActionMethod = !0),
-                          console.error(
-                            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-                          )),
-                        null == props.formTarget ||
-                          didWarnFormActionTarget ||
-                          ((didWarnFormActionTarget = !0),
-                          console.error(
-                            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-                          )))
-                      : ((didWarnFormActionType = !0),
-                        console.error(
-                          'A button can only specify a formAction along with type="submit" or no type.'
-                        ))
-                    : ((didWarnFormActionType = !0),
-                      console.error(
-                        'An input can only specify a formAction along with type="submit" or type="image".'
-                      ))
-                : "action" === key
-                  ? console.error(
-                      "You can only pass the action prop to <form>."
-                    )
-                  : console.error(
-                      "You can only pass the formAction prop to <input> or <button>."
-                    ));
-          if ("function" === typeof value) {
-            domElement.setAttribute(
-              key,
-              "javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"
-            );
-            break;
-          } else
-            "function" === typeof prevValue &&
-              ("formAction" === key
-                ? ("input" !== tag &&
-                    setProp(domElement, tag, "name", props.name, props, null),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formEncType",
-                    props.formEncType,
-                    props,
-                    null
-                  ),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formMethod",
-                    props.formMethod,
-                    props,
-                    null
-                  ),
-                  setProp(
-                    domElement,
-                    tag,
-                    "formTarget",
-                    props.formTarget,
-                    props,
-                    null
-                  ))
-                : (setProp(
-                    domElement,
-                    tag,
-                    "encType",
-                    props.encType,
-                    props,
-                    null
-                  ),
-                  setProp(domElement, tag, "method", props.method, props, null),
-                  setProp(
-                    domElement,
-                    tag,
-                    "target",
-                    props.target,
-                    props,
-                    null
-                  )));
-          if (
-            null == value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          ) {
-            domElement.removeAttribute(key);
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          value = sanitizeURL("" + value);
-          domElement.setAttribute(key, value);
-          break;
-        case "onClick":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            (domElement.onclick = noop$1));
-          break;
-        case "onScroll":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scroll", domElement));
-          break;
-        case "onScrollEnd":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scrollend", domElement));
-          break;
-        case "dangerouslySetInnerHTML":
-          if (null != value) {
-            if ("object" !== typeof value || !("__html" in value))
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            key = value.__html;
-            if (null != key) {
-              if (null != props.children)
-                throw Error(
-                  "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-                );
-              domElement.innerHTML = key;
-            }
-          }
-          break;
-        case "multiple":
-          domElement.multiple =
-            value && "function" !== typeof value && "symbol" !== typeof value;
-          break;
-        case "muted":
-          domElement.muted =
-            value && "function" !== typeof value && "symbol" !== typeof value;
-          break;
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          break;
-        case "autoFocus":
-          break;
-        case "xlinkHref":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "boolean" === typeof value ||
-            "symbol" === typeof value
-          ) {
-            domElement.removeAttribute("xlink:href");
-            break;
-          }
-          checkAttributeStringCoercion(value, key);
-          key = sanitizeURL("" + value);
-          domElement.setAttributeNS(xlinkNamespace, "xlink:href", key);
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          null != value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value
-            ? (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, "" + value))
-            : domElement.removeAttribute(key);
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[key] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[key] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              key
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value && "function" !== typeof value && "symbol" !== typeof value
-            ? domElement.setAttribute(key, "")
-            : domElement.removeAttribute(key);
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? domElement.setAttribute(key, "")
-            : !1 !== value &&
-                null != value &&
-                "function" !== typeof value &&
-                "symbol" !== typeof value
-              ? (checkAttributeStringCoercion(value, key),
-                domElement.setAttribute(key, value))
-              : domElement.removeAttribute(key);
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          null != value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          !isNaN(value) &&
-          1 <= value
-            ? (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, value))
-            : domElement.removeAttribute(key);
-          break;
-        case "rowSpan":
-        case "start":
-          null == value ||
-          "function" === typeof value ||
-          "symbol" === typeof value ||
-          isNaN(value)
-            ? domElement.removeAttribute(key)
-            : (checkAttributeStringCoercion(value, key),
-              domElement.setAttribute(key, value));
-          break;
-        case "popover":
-          listenToNonDelegatedEvent("beforetoggle", domElement);
-          listenToNonDelegatedEvent("toggle", domElement);
-          setValueForAttribute(domElement, "popover", value);
-          break;
-        case "xlinkActuate":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:actuate",
-            value
-          );
-          break;
-        case "xlinkArcrole":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:arcrole",
-            value
-          );
-          break;
-        case "xlinkRole":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:role",
-            value
-          );
-          break;
-        case "xlinkShow":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:show",
-            value
-          );
-          break;
-        case "xlinkTitle":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:title",
-            value
-          );
-          break;
-        case "xlinkType":
-          setValueForNamespacedAttribute(
-            domElement,
-            xlinkNamespace,
-            "xlink:type",
-            value
-          );
-          break;
-        case "xmlBase":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:base",
-            value
-          );
-          break;
-        case "xmlLang":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:lang",
-            value
-          );
-          break;
-        case "xmlSpace":
-          setValueForNamespacedAttribute(
-            domElement,
-            xmlNamespace,
-            "xml:space",
-            value
-          );
-          break;
-        case "is":
-          null != prevValue &&
-            console.error(
-              'Cannot update the "is" prop after it has been initialized.'
-            );
-          setValueForAttribute(domElement, "is", value);
-          break;
-        case "innerText":
-        case "textContent":
-          break;
-        case "popoverTarget":
-          didWarnPopoverTargetObject ||
-            null == value ||
-            "object" !== typeof value ||
-            ((didWarnPopoverTargetObject = !0),
-            console.error(
-              "The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.",
-              value
-            ));
-        default:
-          !(2 < key.length) ||
-          ("o" !== key[0] && "O" !== key[0]) ||
-          ("n" !== key[1] && "N" !== key[1])
-            ? ((key = getAttributeAlias(key)),
-              setValueForAttribute(domElement, key, value))
-            : registrationNameDependencies.hasOwnProperty(key) &&
-              null != value &&
-              "function" !== typeof value &&
-              warnForInvalidEventListener(key, value);
-      }
-    }
-    function setPropOnCustomElement(
-      domElement,
-      tag,
-      key,
-      value,
-      props,
-      prevValue
-    ) {
-      switch (key) {
-        case "style":
-          setValueForStyles(domElement, value, prevValue);
-          break;
-        case "dangerouslySetInnerHTML":
-          if (null != value) {
-            if ("object" !== typeof value || !("__html" in value))
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            key = value.__html;
-            if (null != key) {
-              if (null != props.children)
-                throw Error(
-                  "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-                );
-              domElement.innerHTML = key;
-            }
-          }
-          break;
-        case "children":
-          "string" === typeof value
-            ? setTextContent(domElement, value)
-            : ("number" === typeof value || "bigint" === typeof value) &&
-              setTextContent(domElement, "" + value);
-          break;
-        case "onScroll":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scroll", domElement));
-          break;
-        case "onScrollEnd":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            listenToNonDelegatedEvent("scrollend", domElement));
-          break;
-        case "onClick":
-          null != value &&
-            ("function" !== typeof value &&
-              warnForInvalidEventListener(key, value),
-            (domElement.onclick = noop$1));
-          break;
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "innerHTML":
-        case "ref":
-          break;
-        case "innerText":
-        case "textContent":
-          break;
-        default:
-          if (registrationNameDependencies.hasOwnProperty(key))
-            null != value &&
-              "function" !== typeof value &&
-              warnForInvalidEventListener(key, value);
-          else
-            a: {
-              if (
-                "o" === key[0] &&
-                "n" === key[1] &&
-                ((props = key.endsWith("Capture")),
-                (tag = key.slice(2, props ? key.length - 7 : void 0)),
-                (prevValue = domElement[internalPropsKey] || null),
-                (prevValue = null != prevValue ? prevValue[key] : null),
-                "function" === typeof prevValue &&
-                  domElement.removeEventListener(tag, prevValue, props),
-                "function" === typeof value)
-              ) {
-                "function" !== typeof prevValue &&
-                  null !== prevValue &&
-                  (key in domElement
-                    ? (domElement[key] = null)
-                    : domElement.hasAttribute(key) &&
-                      domElement.removeAttribute(key));
-                domElement.addEventListener(tag, value, props);
-                break a;
-              }
-              key in domElement
-                ? (domElement[key] = value)
-                : !0 === value
-                  ? domElement.setAttribute(key, "")
-                  : setValueForAttribute(domElement, key, value);
-            }
-      }
-    }
-    function setInitialProperties(domElement, tag, props) {
-      validatePropertiesInDevelopment(tag, props);
-      switch (tag) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-        case "a":
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "img":
-          listenToNonDelegatedEvent("error", domElement);
-          listenToNonDelegatedEvent("load", domElement);
-          var hasSrc = !1,
-            hasSrcSet = !1,
-            propKey;
-          for (propKey in props)
-            if (props.hasOwnProperty(propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "src":
-                    hasSrc = !0;
-                    break;
-                  case "srcSet":
-                    hasSrcSet = !0;
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    setProp(domElement, tag, propKey, propValue, props, null);
-                }
-            }
-          hasSrcSet &&
-            setProp(domElement, tag, "srcSet", props.srcSet, props, null);
-          hasSrc && setProp(domElement, tag, "src", props.src, props, null);
-          return;
-        case "input":
-          checkControlledValueProps("input", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          var defaultValue = (propKey = propValue = hasSrcSet = null),
-            checked = null,
-            defaultChecked = null;
-          for (hasSrc in props)
-            if (props.hasOwnProperty(hasSrc)) {
-              var _propValue = props[hasSrc];
-              if (null != _propValue)
-                switch (hasSrc) {
-                  case "name":
-                    hasSrcSet = _propValue;
-                    break;
-                  case "type":
-                    propValue = _propValue;
-                    break;
-                  case "checked":
-                    checked = _propValue;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = _propValue;
-                    break;
-                  case "value":
-                    propKey = _propValue;
-                    break;
-                  case "defaultValue":
-                    defaultValue = _propValue;
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    if (null != _propValue)
-                      throw Error(
-                        tag +
-                          " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                      );
-                    break;
-                  default:
-                    setProp(domElement, tag, hasSrc, _propValue, props, null);
-                }
-            }
-          validateInputProps(domElement, props);
-          initInput(
-            domElement,
-            propKey,
-            defaultValue,
-            checked,
-            defaultChecked,
-            propValue,
-            hasSrcSet,
-            !1
-          );
-          return;
-        case "select":
-          checkControlledValueProps("select", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          hasSrc = propValue = propKey = null;
-          for (hasSrcSet in props)
-            if (
-              props.hasOwnProperty(hasSrcSet) &&
-              ((defaultValue = props[hasSrcSet]), null != defaultValue)
-            )
-              switch (hasSrcSet) {
-                case "value":
-                  propKey = defaultValue;
-                  break;
-                case "defaultValue":
-                  propValue = defaultValue;
-                  break;
-                case "multiple":
-                  hasSrc = defaultValue;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    hasSrcSet,
-                    defaultValue,
-                    props,
-                    null
-                  );
-              }
-          validateSelectProps(domElement, props);
-          tag = propKey;
-          props = propValue;
-          domElement.multiple = !!hasSrc;
-          null != tag
-            ? updateOptions(domElement, !!hasSrc, tag, !1)
-            : null != props && updateOptions(domElement, !!hasSrc, props, !0);
-          return;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          listenToNonDelegatedEvent("invalid", domElement);
-          propKey = hasSrcSet = hasSrc = null;
-          for (propValue in props)
-            if (
-              props.hasOwnProperty(propValue) &&
-              ((defaultValue = props[propValue]), null != defaultValue)
-            )
-              switch (propValue) {
-                case "value":
-                  hasSrc = defaultValue;
-                  break;
-                case "defaultValue":
-                  hasSrcSet = defaultValue;
-                  break;
-                case "children":
-                  propKey = defaultValue;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  if (null != defaultValue)
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    propValue,
-                    defaultValue,
-                    props,
-                    null
-                  );
-              }
-          validateTextareaProps(domElement, props);
-          initTextarea(domElement, hasSrc, hasSrcSet, propKey);
-          return;
-        case "option":
-          validateOptionProps(domElement, props);
-          for (checked in props)
-            if (
-              props.hasOwnProperty(checked) &&
-              ((hasSrc = props[checked]), null != hasSrc)
-            )
-              switch (checked) {
-                case "selected":
-                  domElement.selected =
-                    hasSrc &&
-                    "function" !== typeof hasSrc &&
-                    "symbol" !== typeof hasSrc;
-                  break;
-                default:
-                  setProp(domElement, tag, checked, hasSrc, props, null);
-              }
-          return;
-        case "dialog":
-          listenToNonDelegatedEvent("beforetoggle", domElement);
-          listenToNonDelegatedEvent("toggle", domElement);
-          listenToNonDelegatedEvent("cancel", domElement);
-          listenToNonDelegatedEvent("close", domElement);
-          break;
-        case "iframe":
-        case "object":
-          listenToNonDelegatedEvent("load", domElement);
-          break;
-        case "video":
-        case "audio":
-          for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)
-            listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);
-          break;
-        case "image":
-          listenToNonDelegatedEvent("error", domElement);
-          listenToNonDelegatedEvent("load", domElement);
-          break;
-        case "details":
-          listenToNonDelegatedEvent("toggle", domElement);
-          break;
-        case "embed":
-        case "source":
-        case "link":
-          listenToNonDelegatedEvent("error", domElement),
-            listenToNonDelegatedEvent("load", domElement);
-        case "area":
-        case "base":
-        case "br":
-        case "col":
-        case "hr":
-        case "keygen":
-        case "meta":
-        case "param":
-        case "track":
-        case "wbr":
-        case "menuitem":
-          for (defaultChecked in props)
-            if (
-              props.hasOwnProperty(defaultChecked) &&
-              ((hasSrc = props[defaultChecked]), null != hasSrc)
-            )
-              switch (defaultChecked) {
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  throw Error(
-                    tag +
-                      " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                  );
-                default:
-                  setProp(domElement, tag, defaultChecked, hasSrc, props, null);
-              }
-          return;
-        default:
-          if (isCustomElement(tag)) {
-            for (_propValue in props)
-              props.hasOwnProperty(_propValue) &&
-                ((hasSrc = props[_propValue]),
-                void 0 !== hasSrc &&
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    _propValue,
-                    hasSrc,
-                    props,
-                    void 0
-                  ));
-            return;
-          }
-      }
-      for (defaultValue in props)
-        props.hasOwnProperty(defaultValue) &&
-          ((hasSrc = props[defaultValue]),
-          null != hasSrc &&
-            setProp(domElement, tag, defaultValue, hasSrc, props, null));
-    }
-    function updateProperties(domElement, tag, lastProps, nextProps) {
-      validatePropertiesInDevelopment(tag, nextProps);
-      switch (tag) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-        case "a":
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "input":
-          var name = null,
-            type = null,
-            value = null,
-            defaultValue = null,
-            lastDefaultValue = null,
-            checked = null,
-            defaultChecked = null;
-          for (propKey in lastProps) {
-            var lastProp = lastProps[propKey];
-            if (lastProps.hasOwnProperty(propKey) && null != lastProp)
-              switch (propKey) {
-                case "checked":
-                  break;
-                case "value":
-                  break;
-                case "defaultValue":
-                  lastDefaultValue = lastProp;
-                default:
-                  nextProps.hasOwnProperty(propKey) ||
-                    setProp(
-                      domElement,
-                      tag,
-                      propKey,
-                      null,
-                      nextProps,
-                      lastProp
-                    );
-              }
-          }
-          for (var _propKey8 in nextProps) {
-            var propKey = nextProps[_propKey8];
-            lastProp = lastProps[_propKey8];
-            if (
-              nextProps.hasOwnProperty(_propKey8) &&
-              (null != propKey || null != lastProp)
-            )
-              switch (_propKey8) {
-                case "type":
-                  type = propKey;
-                  break;
-                case "name":
-                  name = propKey;
-                  break;
-                case "checked":
-                  checked = propKey;
-                  break;
-                case "defaultChecked":
-                  defaultChecked = propKey;
-                  break;
-                case "value":
-                  value = propKey;
-                  break;
-                case "defaultValue":
-                  defaultValue = propKey;
-                  break;
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  if (null != propKey)
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  break;
-                default:
-                  propKey !== lastProp &&
-                    setProp(
-                      domElement,
-                      tag,
-                      _propKey8,
-                      propKey,
-                      nextProps,
-                      lastProp
-                    );
-              }
-          }
-          tag =
-            "checkbox" === lastProps.type || "radio" === lastProps.type
-              ? null != lastProps.checked
-              : null != lastProps.value;
-          nextProps =
-            "checkbox" === nextProps.type || "radio" === nextProps.type
-              ? null != nextProps.checked
-              : null != nextProps.value;
-          tag ||
-            !nextProps ||
-            didWarnUncontrolledToControlled ||
-            (console.error(
-              "A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnUncontrolledToControlled = !0));
-          !tag ||
-            nextProps ||
-            didWarnControlledToUncontrolled ||
-            (console.error(
-              "A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnControlledToUncontrolled = !0));
-          updateInput(
-            domElement,
-            value,
-            defaultValue,
-            lastDefaultValue,
-            checked,
-            defaultChecked,
-            type,
-            name
-          );
-          return;
-        case "select":
-          propKey = value = defaultValue = _propKey8 = null;
-          for (type in lastProps)
-            if (
-              ((lastDefaultValue = lastProps[type]),
-              lastProps.hasOwnProperty(type) && null != lastDefaultValue)
-            )
-              switch (type) {
-                case "value":
-                  break;
-                case "multiple":
-                  propKey = lastDefaultValue;
-                default:
-                  nextProps.hasOwnProperty(type) ||
-                    setProp(
-                      domElement,
-                      tag,
-                      type,
-                      null,
-                      nextProps,
-                      lastDefaultValue
-                    );
-              }
-          for (name in nextProps)
-            if (
-              ((type = nextProps[name]),
-              (lastDefaultValue = lastProps[name]),
-              nextProps.hasOwnProperty(name) &&
-                (null != type || null != lastDefaultValue))
-            )
-              switch (name) {
-                case "value":
-                  _propKey8 = type;
-                  break;
-                case "defaultValue":
-                  defaultValue = type;
-                  break;
-                case "multiple":
-                  value = type;
-                default:
-                  type !== lastDefaultValue &&
-                    setProp(
-                      domElement,
-                      tag,
-                      name,
-                      type,
-                      nextProps,
-                      lastDefaultValue
-                    );
-              }
-          nextProps = defaultValue;
-          tag = value;
-          lastProps = propKey;
-          null != _propKey8
-            ? updateOptions(domElement, !!tag, _propKey8, !1)
-            : !!lastProps !== !!tag &&
-              (null != nextProps
-                ? updateOptions(domElement, !!tag, nextProps, !0)
-                : updateOptions(domElement, !!tag, tag ? [] : "", !1));
-          return;
-        case "textarea":
-          propKey = _propKey8 = null;
-          for (defaultValue in lastProps)
-            if (
-              ((name = lastProps[defaultValue]),
-              lastProps.hasOwnProperty(defaultValue) &&
-                null != name &&
-                !nextProps.hasOwnProperty(defaultValue))
-            )
-              switch (defaultValue) {
-                case "value":
-                  break;
-                case "children":
-                  break;
-                default:
-                  setProp(domElement, tag, defaultValue, null, nextProps, name);
-              }
-          for (value in nextProps)
-            if (
-              ((name = nextProps[value]),
-              (type = lastProps[value]),
-              nextProps.hasOwnProperty(value) && (null != name || null != type))
-            )
-              switch (value) {
-                case "value":
-                  _propKey8 = name;
-                  break;
-                case "defaultValue":
-                  propKey = name;
-                  break;
-                case "children":
-                  break;
-                case "dangerouslySetInnerHTML":
-                  if (null != name)
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  break;
-                default:
-                  name !== type &&
-                    setProp(domElement, tag, value, name, nextProps, type);
-              }
-          updateTextarea(domElement, _propKey8, propKey);
-          return;
-        case "option":
-          for (var _propKey13 in lastProps)
-            if (
-              ((_propKey8 = lastProps[_propKey13]),
-              lastProps.hasOwnProperty(_propKey13) &&
-                null != _propKey8 &&
-                !nextProps.hasOwnProperty(_propKey13))
-            )
-              switch (_propKey13) {
-                case "selected":
-                  domElement.selected = !1;
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    _propKey13,
-                    null,
-                    nextProps,
-                    _propKey8
-                  );
-              }
-          for (lastDefaultValue in nextProps)
-            if (
-              ((_propKey8 = nextProps[lastDefaultValue]),
-              (propKey = lastProps[lastDefaultValue]),
-              nextProps.hasOwnProperty(lastDefaultValue) &&
-                _propKey8 !== propKey &&
-                (null != _propKey8 || null != propKey))
-            )
-              switch (lastDefaultValue) {
-                case "selected":
-                  domElement.selected =
-                    _propKey8 &&
-                    "function" !== typeof _propKey8 &&
-                    "symbol" !== typeof _propKey8;
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    lastDefaultValue,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-              }
-          return;
-        case "img":
-        case "link":
-        case "area":
-        case "base":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "meta":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-        case "menuitem":
-          for (var _propKey15 in lastProps)
-            (_propKey8 = lastProps[_propKey15]),
-              lastProps.hasOwnProperty(_propKey15) &&
-                null != _propKey8 &&
-                !nextProps.hasOwnProperty(_propKey15) &&
-                setProp(
-                  domElement,
-                  tag,
-                  _propKey15,
-                  null,
-                  nextProps,
-                  _propKey8
-                );
-          for (checked in nextProps)
-            if (
-              ((_propKey8 = nextProps[checked]),
-              (propKey = lastProps[checked]),
-              nextProps.hasOwnProperty(checked) &&
-                _propKey8 !== propKey &&
-                (null != _propKey8 || null != propKey))
-            )
-              switch (checked) {
-                case "children":
-                case "dangerouslySetInnerHTML":
-                  if (null != _propKey8)
-                    throw Error(
-                      tag +
-                        " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  break;
-                default:
-                  setProp(
-                    domElement,
-                    tag,
-                    checked,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-              }
-          return;
-        default:
-          if (isCustomElement(tag)) {
-            for (var _propKey17 in lastProps)
-              (_propKey8 = lastProps[_propKey17]),
-                lastProps.hasOwnProperty(_propKey17) &&
-                  void 0 !== _propKey8 &&
-                  !nextProps.hasOwnProperty(_propKey17) &&
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    _propKey17,
-                    void 0,
-                    nextProps,
-                    _propKey8
-                  );
-            for (defaultChecked in nextProps)
-              (_propKey8 = nextProps[defaultChecked]),
-                (propKey = lastProps[defaultChecked]),
-                !nextProps.hasOwnProperty(defaultChecked) ||
-                  _propKey8 === propKey ||
-                  (void 0 === _propKey8 && void 0 === propKey) ||
-                  setPropOnCustomElement(
-                    domElement,
-                    tag,
-                    defaultChecked,
-                    _propKey8,
-                    nextProps,
-                    propKey
-                  );
-            return;
-          }
-      }
-      for (var _propKey19 in lastProps)
-        (_propKey8 = lastProps[_propKey19]),
-          lastProps.hasOwnProperty(_propKey19) &&
-            null != _propKey8 &&
-            !nextProps.hasOwnProperty(_propKey19) &&
-            setProp(domElement, tag, _propKey19, null, nextProps, _propKey8);
-      for (lastProp in nextProps)
-        (_propKey8 = nextProps[lastProp]),
-          (propKey = lastProps[lastProp]),
-          !nextProps.hasOwnProperty(lastProp) ||
-            _propKey8 === propKey ||
-            (null == _propKey8 && null == propKey) ||
-            setProp(domElement, tag, lastProp, _propKey8, nextProps, propKey);
-    }
-    function getPropNameFromAttributeName(attrName) {
-      switch (attrName) {
-        case "class":
-          return "className";
-        case "for":
-          return "htmlFor";
-        default:
-          return attrName;
-      }
-    }
-    function getStylesObjectFromElement(domElement) {
-      var serverValueInObjectForm = {};
-      domElement = domElement.style;
-      for (var i = 0; i < domElement.length; i++) {
-        var styleName = domElement[i];
-        serverValueInObjectForm[styleName] =
-          domElement.getPropertyValue(styleName);
-      }
-      return serverValueInObjectForm;
-    }
-    function diffHydratedStyles(domElement, value$jscomp$0, serverDifferences) {
-      if (null != value$jscomp$0 && "object" !== typeof value$jscomp$0)
-        console.error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      else {
-        var clientValue;
-        var delimiter = (clientValue = ""),
-          styleName;
-        for (styleName in value$jscomp$0)
-          if (value$jscomp$0.hasOwnProperty(styleName)) {
-            var value = value$jscomp$0[styleName];
-            null != value &&
-              "boolean" !== typeof value &&
-              "" !== value &&
-              (0 === styleName.indexOf("--")
-                ? (checkCSSPropertyStringCoercion(value, styleName),
-                  (clientValue +=
-                    delimiter + styleName + ":" + ("" + value).trim()))
-                : "number" !== typeof value ||
-                    0 === value ||
-                    unitlessNumbers.has(styleName)
-                  ? (checkCSSPropertyStringCoercion(value, styleName),
-                    (clientValue +=
-                      delimiter +
-                      styleName
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern$1, "-ms-") +
-                      ":" +
-                      ("" + value).trim()))
-                  : (clientValue +=
-                      delimiter +
-                      styleName
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern$1, "-ms-") +
-                      ":" +
-                      value +
-                      "px"),
-              (delimiter = ";"));
-          }
-        clientValue = clientValue || null;
-        value$jscomp$0 = domElement.getAttribute("style");
-        value$jscomp$0 !== clientValue &&
-          ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
-          normalizeMarkupForTextOrAttribute(value$jscomp$0) !== clientValue &&
-            (serverDifferences.style = getStylesObjectFromElement(domElement)));
-      }
-    }
-    function hydrateAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, propKey),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateBooleanAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement) {
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            return;
-        }
-        if (!value) return;
-      } else
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            break;
-          default:
-            if (value) return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateBooleanishAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, attributeName),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateNumericAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-          default:
-            if (isNaN(value)) return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              !isNaN(value) &&
-              (checkAttributeStringCoercion(value, propKey),
-              domElement === "" + value)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function hydrateSanitizedAttribute(
-      domElement,
-      propKey,
-      attributeName,
-      value,
-      extraAttributes,
-      serverDifferences
-    ) {
-      extraAttributes.delete(attributeName);
-      domElement = domElement.getAttribute(attributeName);
-      if (null === domElement)
-        switch (typeof value) {
-          case "undefined":
-          case "function":
-          case "symbol":
-          case "boolean":
-            return;
-        }
-      else if (null != value)
-        switch (typeof value) {
-          case "function":
-          case "symbol":
-          case "boolean":
-            break;
-          default:
-            if (
-              (checkAttributeStringCoercion(value, propKey),
-              (attributeName = sanitizeURL("" + value)),
-              domElement === attributeName)
-            )
-              return;
-        }
-      warnForPropDifference(propKey, domElement, value, serverDifferences);
-    }
-    function diffHydratedProperties(domElement, tag, props, hostContext) {
-      for (
-        var serverDifferences = {},
-          extraAttributes = new Set(),
-          attributes = domElement.attributes,
-          i = 0;
-        i < attributes.length;
-        i++
-      )
-        switch (attributes[i].name.toLowerCase()) {
-          case "value":
-            break;
-          case "checked":
-            break;
-          case "selected":
-            break;
-          default:
-            extraAttributes.add(attributes[i].name);
-        }
-      if (isCustomElement(tag))
-        for (var propKey in props) {
-          if (props.hasOwnProperty(propKey)) {
-            var value = props[propKey];
-            if (null != value)
-              if (registrationNameDependencies.hasOwnProperty(propKey))
-                "function" !== typeof value &&
-                  warnForInvalidEventListener(propKey, value);
-              else if (!0 !== props.suppressHydrationWarning)
-                switch (propKey) {
-                  case "children":
-                    ("string" !== typeof value && "number" !== typeof value) ||
-                      warnForPropDifference(
-                        "children",
-                        domElement.textContent,
-                        value,
-                        serverDifferences
-                      );
-                    continue;
-                  case "suppressContentEditableWarning":
-                  case "suppressHydrationWarning":
-                  case "defaultValue":
-                  case "defaultChecked":
-                  case "innerHTML":
-                  case "ref":
-                    continue;
-                  case "dangerouslySetInnerHTML":
-                    attributes = domElement.innerHTML;
-                    value = value ? value.__html : void 0;
-                    null != value &&
-                      ((value = normalizeHTML(domElement, value)),
-                      warnForPropDifference(
-                        propKey,
-                        attributes,
-                        value,
-                        serverDifferences
-                      ));
-                    continue;
-                  case "style":
-                    extraAttributes.delete(propKey);
-                    diffHydratedStyles(domElement, value, serverDifferences);
-                    continue;
-                  case "offsetParent":
-                  case "offsetTop":
-                  case "offsetLeft":
-                  case "offsetWidth":
-                  case "offsetHeight":
-                  case "isContentEditable":
-                  case "outerText":
-                  case "outerHTML":
-                    extraAttributes.delete(propKey.toLowerCase());
-                    console.error(
-                      "Assignment to read-only property will result in a no-op: `%s`",
-                      propKey
-                    );
-                    continue;
-                  case "className":
-                    extraAttributes.delete("class");
-                    attributes = getValueForAttributeOnCustomComponent(
-                      domElement,
-                      "class",
-                      value
-                    );
-                    warnForPropDifference(
-                      "className",
-                      attributes,
-                      value,
-                      serverDifferences
-                    );
-                    continue;
-                  default:
-                    hostContext.context === HostContextNamespaceNone &&
-                    "svg" !== tag &&
-                    "math" !== tag
-                      ? extraAttributes.delete(propKey.toLowerCase())
-                      : extraAttributes.delete(propKey),
-                      (attributes = getValueForAttributeOnCustomComponent(
-                        domElement,
-                        propKey,
-                        value
-                      )),
-                      warnForPropDifference(
-                        propKey,
-                        attributes,
-                        value,
-                        serverDifferences
-                      );
-                }
-          }
-        }
-      else
-        for (value in props)
-          if (
-            props.hasOwnProperty(value) &&
-            ((propKey = props[value]), null != propKey)
-          )
-            if (registrationNameDependencies.hasOwnProperty(value))
-              "function" !== typeof propKey &&
-                warnForInvalidEventListener(value, propKey);
-            else if (!0 !== props.suppressHydrationWarning)
-              switch (value) {
-                case "children":
-                  ("string" !== typeof propKey &&
-                    "number" !== typeof propKey) ||
-                    warnForPropDifference(
-                      "children",
-                      domElement.textContent,
-                      propKey,
-                      serverDifferences
-                    );
-                  continue;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "value":
-                case "checked":
-                case "selected":
-                case "defaultValue":
-                case "defaultChecked":
-                case "innerHTML":
-                case "ref":
-                  continue;
-                case "dangerouslySetInnerHTML":
-                  attributes = domElement.innerHTML;
-                  propKey = propKey ? propKey.__html : void 0;
-                  null != propKey &&
-                    ((propKey = normalizeHTML(domElement, propKey)),
-                    attributes !== propKey &&
-                      (serverDifferences[value] = { __html: attributes }));
-                  continue;
-                case "className":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "class",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "tabIndex":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "tabindex",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "style":
-                  extraAttributes.delete(value);
-                  diffHydratedStyles(domElement, propKey, serverDifferences);
-                  continue;
-                case "multiple":
-                  extraAttributes.delete(value);
-                  warnForPropDifference(
-                    value,
-                    domElement.multiple,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "muted":
-                  extraAttributes.delete(value);
-                  warnForPropDifference(
-                    value,
-                    domElement.muted,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "autoFocus":
-                  extraAttributes.delete("autofocus");
-                  warnForPropDifference(
-                    value,
-                    domElement.autofocus,
-                    propKey,
-                    serverDifferences
-                  );
-                  continue;
-                case "data":
-                  if ("object" !== tag) {
-                    extraAttributes.delete(value);
-                    attributes = domElement.getAttribute("data");
-                    warnForPropDifference(
-                      value,
-                      attributes,
-                      propKey,
-                      serverDifferences
-                    );
-                    continue;
-                  }
-                case "src":
-                case "href":
-                  if (
-                    !(
-                      "" !== propKey ||
-                      ("a" === tag && "href" === value) ||
-                      ("object" === tag && "data" === value)
-                    )
-                  ) {
-                    "src" === value
-                      ? console.error(
-                          'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                          value,
-                          value
-                        )
-                      : console.error(
-                          'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                          value,
-                          value
-                        );
-                    continue;
-                  }
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "action":
-                case "formAction":
-                  attributes = domElement.getAttribute(value);
-                  if ("function" === typeof propKey) {
-                    extraAttributes.delete(value.toLowerCase());
-                    "formAction" === value
-                      ? (extraAttributes.delete("name"),
-                        extraAttributes.delete("formenctype"),
-                        extraAttributes.delete("formmethod"),
-                        extraAttributes.delete("formtarget"))
-                      : (extraAttributes.delete("enctype"),
-                        extraAttributes.delete("method"),
-                        extraAttributes.delete("target"));
-                    continue;
-                  } else if (attributes === EXPECTED_FORM_ACTION_URL) {
-                    extraAttributes.delete(value.toLowerCase());
-                    warnForPropDifference(
-                      value,
-                      "function",
-                      propKey,
-                      serverDifferences
-                    );
-                    continue;
-                  }
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    value.toLowerCase(),
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkHref":
-                  hydrateSanitizedAttribute(
-                    domElement,
-                    value,
-                    "xlink:href",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "contentEditable":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    "contenteditable",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "spellCheck":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    "spellcheck",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "draggable":
-                case "autoReverse":
-                case "externalResourcesRequired":
-                case "focusable":
-                case "preserveAlpha":
-                  hydrateBooleanishAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "allowFullScreen":
-                case "async":
-                case "autoPlay":
-                case "controls":
-                case "default":
-                case "defer":
-                case "disabled":
-                case "disablePictureInPicture":
-                case "disableRemotePlayback":
-                case "formNoValidate":
-                case "hidden":
-                case "loop":
-                case "noModule":
-                case "noValidate":
-                case "open":
-                case "playsInline":
-                case "readOnly":
-                case "required":
-                case "reversed":
-                case "scoped":
-                case "seamless":
-                case "itemScope":
-                  hydrateBooleanAttribute(
-                    domElement,
-                    value,
-                    value.toLowerCase(),
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "capture":
-                case "download":
-                  a: {
-                    i = domElement;
-                    var attributeName = (attributes = value),
-                      serverDifferences$jscomp$0 = serverDifferences;
-                    extraAttributes.delete(attributeName);
-                    i = i.getAttribute(attributeName);
-                    if (null === i)
-                      switch (typeof propKey) {
-                        case "undefined":
-                        case "function":
-                        case "symbol":
-                          break a;
-                        default:
-                          if (!1 === propKey) break a;
-                      }
-                    else if (null != propKey)
-                      switch (typeof propKey) {
-                        case "function":
-                        case "symbol":
-                          break;
-                        case "boolean":
-                          if (!0 === propKey && "" === i) break a;
-                          break;
-                        default:
-                          if (
-                            (checkAttributeStringCoercion(propKey, attributes),
-                            i === "" + propKey)
-                          )
-                            break a;
-                      }
-                    warnForPropDifference(
-                      attributes,
-                      i,
-                      propKey,
-                      serverDifferences$jscomp$0
-                    );
-                  }
-                  continue;
-                case "cols":
-                case "rows":
-                case "size":
-                case "span":
-                  a: {
-                    i = domElement;
-                    attributeName = attributes = value;
-                    serverDifferences$jscomp$0 = serverDifferences;
-                    extraAttributes.delete(attributeName);
-                    i = i.getAttribute(attributeName);
-                    if (null === i)
-                      switch (typeof propKey) {
-                        case "undefined":
-                        case "function":
-                        case "symbol":
-                        case "boolean":
-                          break a;
-                        default:
-                          if (isNaN(propKey) || 1 > propKey) break a;
-                      }
-                    else if (null != propKey)
-                      switch (typeof propKey) {
-                        case "function":
-                        case "symbol":
-                        case "boolean":
-                          break;
-                        default:
-                          if (
-                            !(isNaN(propKey) || 1 > propKey) &&
-                            (checkAttributeStringCoercion(propKey, attributes),
-                            i === "" + propKey)
-                          )
-                            break a;
-                      }
-                    warnForPropDifference(
-                      attributes,
-                      i,
-                      propKey,
-                      serverDifferences$jscomp$0
-                    );
-                  }
-                  continue;
-                case "rowSpan":
-                  hydrateNumericAttribute(
-                    domElement,
-                    value,
-                    "rowspan",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "start":
-                  hydrateNumericAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xHeight":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "x-height",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkActuate":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:actuate",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkArcrole":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:arcrole",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkRole":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:role",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkShow":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:show",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkTitle":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:title",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xlinkType":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xlink:type",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlBase":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:base",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlLang":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:lang",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "xmlSpace":
-                  hydrateAttribute(
-                    domElement,
-                    value,
-                    "xml:space",
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                case "inert":
-                  "" !== propKey ||
-                    didWarnForNewBooleanPropsWithEmptyValue[value] ||
-                    ((didWarnForNewBooleanPropsWithEmptyValue[value] = !0),
-                    console.error(
-                      "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-                      value
-                    ));
-                  hydrateBooleanAttribute(
-                    domElement,
-                    value,
-                    value,
-                    propKey,
-                    extraAttributes,
-                    serverDifferences
-                  );
-                  continue;
-                default:
-                  if (
-                    !(2 < value.length) ||
-                    ("o" !== value[0] && "O" !== value[0]) ||
-                    ("n" !== value[1] && "N" !== value[1])
-                  ) {
-                    i = getAttributeAlias(value);
-                    attributes = !1;
-                    hostContext.context === HostContextNamespaceNone &&
-                    "svg" !== tag &&
-                    "math" !== tag
-                      ? extraAttributes.delete(i.toLowerCase())
-                      : ((attributeName = value.toLowerCase()),
-                        (attributeName = possibleStandardNames.hasOwnProperty(
-                          attributeName
-                        )
-                          ? possibleStandardNames[attributeName] || null
-                          : null),
-                        null !== attributeName &&
-                          attributeName !== value &&
-                          ((attributes = !0),
-                          extraAttributes.delete(attributeName)),
-                        extraAttributes.delete(i));
-                    a: if (
-                      ((attributeName = domElement),
-                      (serverDifferences$jscomp$0 = i),
-                      (i = propKey),
-                      isAttributeNameSafe(serverDifferences$jscomp$0))
-                    )
-                      if (
-                        attributeName.hasAttribute(serverDifferences$jscomp$0)
-                      )
-                        (attributeName = attributeName.getAttribute(
-                          serverDifferences$jscomp$0
-                        )),
-                          checkAttributeStringCoercion(
-                            i,
-                            serverDifferences$jscomp$0
-                          ),
-                          (i = attributeName === "" + i ? i : attributeName);
-                      else {
-                        switch (typeof i) {
-                          case "function":
-                          case "symbol":
-                            break a;
-                          case "boolean":
-                            if (
-                              ((attributeName = serverDifferences$jscomp$0
-                                .toLowerCase()
-                                .slice(0, 5)),
-                              "data-" !== attributeName &&
-                                "aria-" !== attributeName)
-                            )
-                              break a;
-                        }
-                        i = void 0 === i ? void 0 : null;
-                      }
-                    else i = void 0;
-                    attributes ||
-                      warnForPropDifference(
-                        value,
-                        i,
-                        propKey,
-                        serverDifferences
-                      );
-                  }
-              }
-      0 < extraAttributes.size &&
-        !0 !== props.suppressHydrationWarning &&
-        warnForExtraAttributes(domElement, extraAttributes, serverDifferences);
-      return 0 === Object.keys(serverDifferences).length
-        ? null
-        : serverDifferences;
-    }
-    function propNamesListJoin(list, combinator) {
-      switch (list.length) {
-        case 0:
-          return "";
-        case 1:
-          return list[0];
-        case 2:
-          return list[0] + " " + combinator + " " + list[1];
-        default:
-          return (
-            list.slice(0, -1).join(", ") +
-            ", " +
-            combinator +
-            " " +
-            list[list.length - 1]
-          );
-      }
-    }
-    function isLikelyStaticResource(initiatorType) {
-      switch (initiatorType) {
-        case "css":
-        case "script":
-        case "font":
-        case "img":
-        case "image":
-        case "input":
-        case "link":
-          return !0;
-        default:
-          return !1;
-      }
-    }
-    function estimateBandwidth() {
-      if ("function" === typeof performance.getEntriesByType) {
-        for (
-          var count = 0,
-            bits = 0,
-            resourceEntries = performance.getEntriesByType("resource"),
-            i = 0;
-          i < resourceEntries.length;
-          i++
-        ) {
-          var entry = resourceEntries[i],
-            transferSize = entry.transferSize,
-            initiatorType = entry.initiatorType,
-            duration = entry.duration;
-          if (
-            transferSize &&
-            duration &&
-            isLikelyStaticResource(initiatorType)
-          ) {
-            initiatorType = 0;
-            duration = entry.responseEnd;
-            for (i += 1; i < resourceEntries.length; i++) {
-              var overlapEntry = resourceEntries[i],
-                overlapStartTime = overlapEntry.startTime;
-              if (overlapStartTime > duration) break;
-              var overlapTransferSize = overlapEntry.transferSize,
-                overlapInitiatorType = overlapEntry.initiatorType;
-              overlapTransferSize &&
-                isLikelyStaticResource(overlapInitiatorType) &&
-                ((overlapEntry = overlapEntry.responseEnd),
-                (initiatorType +=
-                  overlapTransferSize *
-                  (overlapEntry < duration
-                    ? 1
-                    : (duration - overlapStartTime) /
-                      (overlapEntry - overlapStartTime))));
-            }
-            --i;
-            bits +=
-              (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);
-            count++;
-            if (10 < count) break;
-          }
-        }
-        if (0 < count) return bits / count / 1e6;
-      }
-      return navigator.connection &&
-        ((count = navigator.connection.downlink), "number" === typeof count)
-        ? count
-        : 5;
-    }
-    function getOwnerDocumentFromRootContainer(rootContainerElement) {
-      return 9 === rootContainerElement.nodeType
-        ? rootContainerElement
-        : rootContainerElement.ownerDocument;
-    }
-    function getOwnHostContext(namespaceURI) {
-      switch (namespaceURI) {
-        case SVG_NAMESPACE:
-          return HostContextNamespaceSvg;
-        case MATH_NAMESPACE:
-          return HostContextNamespaceMath;
-        default:
-          return HostContextNamespaceNone;
-      }
-    }
-    function getChildHostContextProd(parentNamespace, type) {
-      if (parentNamespace === HostContextNamespaceNone)
-        switch (type) {
-          case "svg":
-            return HostContextNamespaceSvg;
-          case "math":
-            return HostContextNamespaceMath;
-          default:
-            return HostContextNamespaceNone;
-        }
-      return parentNamespace === HostContextNamespaceSvg &&
-        "foreignObject" === type
-        ? HostContextNamespaceNone
-        : parentNamespace;
-    }
-    function shouldSetTextContent(type, props) {
-      return (
-        "textarea" === type ||
-        "noscript" === type ||
-        "string" === typeof props.children ||
-        "number" === typeof props.children ||
-        "bigint" === typeof props.children ||
-        ("object" === typeof props.dangerouslySetInnerHTML &&
-          null !== props.dangerouslySetInnerHTML &&
-          null != props.dangerouslySetInnerHTML.__html)
-      );
-    }
-    function shouldAttemptEagerTransition() {
-      var event = window.event;
-      if (event && "popstate" === event.type) {
-        if (event === currentPopstateTransitionEvent) return !1;
-        currentPopstateTransitionEvent = event;
-        return !0;
-      }
-      currentPopstateTransitionEvent = null;
-      return !1;
-    }
-    function resolveEventType() {
-      var event = window.event;
-      return event && event !== schedulerEvent ? event.type : null;
-    }
-    function resolveEventTimeStamp() {
-      var event = window.event;
-      return event && event !== schedulerEvent ? event.timeStamp : -1.1;
-    }
-    function handleErrorInNextTick(error) {
-      setTimeout(function () {
-        throw error;
-      });
-    }
-    function commitMount(domElement, type, newProps) {
-      switch (type) {
-        case "button":
-        case "input":
-        case "select":
-        case "textarea":
-          newProps.autoFocus && domElement.focus();
-          break;
-        case "img":
-          newProps.src
-            ? (domElement.src = newProps.src)
-            : newProps.srcSet && (domElement.srcset = newProps.srcSet);
-      }
-    }
-    function commitHydratedInstance() {}
-    function commitUpdate(domElement, type, oldProps, newProps) {
-      updateProperties(domElement, type, oldProps, newProps);
-      domElement[internalPropsKey] = newProps;
-    }
-    function resetTextContent(domElement) {
-      setTextContent(domElement, "");
-    }
-    function commitTextUpdate(textInstance, oldText, newText) {
-      textInstance.nodeValue = newText;
-    }
-    function warnForReactChildrenConflict(container) {
-      if (!container.__reactWarnedAboutChildrenConflict) {
-        var props = container[internalPropsKey] || null;
-        if (null !== props) {
-          var fiber = getInstanceFromNode(container);
-          null !== fiber &&
-            ("string" === typeof props.children ||
-            "number" === typeof props.children
-              ? ((container.__reactWarnedAboutChildrenConflict = !0),
-                runWithFiberInDEV(fiber, function () {
-                  console.error(
-                    'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "children" text content using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
-                  );
-                }))
-              : null != props.dangerouslySetInnerHTML &&
-                ((container.__reactWarnedAboutChildrenConflict = !0),
-                runWithFiberInDEV(fiber, function () {
-                  console.error(
-                    'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "dangerouslySetInnerHTML" using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
-                  );
-                })));
-        }
-      }
-    }
-    function isSingletonScope(type) {
-      return "head" === type;
-    }
-    function removeChild(parentInstance, child) {
-      parentInstance.removeChild(child);
-    }
-    function removeChildFromContainer(container, child) {
-      (9 === container.nodeType
-        ? container.body
-        : "HTML" === container.nodeName
-          ? container.ownerDocument.body
-          : container
-      ).removeChild(child);
-    }
-    function clearHydrationBoundary(parentInstance, hydrationInstance) {
-      var node = hydrationInstance,
-        depth = 0;
-      do {
-        var nextNode = node.nextSibling;
-        parentInstance.removeChild(node);
-        if (nextNode && 8 === nextNode.nodeType)
-          if (
-            ((node = nextNode.data),
-            node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA)
-          ) {
-            if (0 === depth) {
-              parentInstance.removeChild(nextNode);
-              retryIfBlockedOn(hydrationInstance);
-              return;
-            }
-            depth--;
-          } else if (
-            node === SUSPENSE_START_DATA ||
-            node === SUSPENSE_PENDING_START_DATA ||
-            node === SUSPENSE_QUEUED_START_DATA ||
-            node === SUSPENSE_FALLBACK_START_DATA ||
-            node === ACTIVITY_START_DATA
-          )
-            depth++;
-          else if (node === PREAMBLE_CONTRIBUTION_HTML)
-            releaseSingletonInstance(
-              parentInstance.ownerDocument.documentElement
-            );
-          else if (node === PREAMBLE_CONTRIBUTION_HEAD) {
-            node = parentInstance.ownerDocument.head;
-            releaseSingletonInstance(node);
-            for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {
-              var nextNode$jscomp$0 = node$jscomp$0.nextSibling,
-                nodeName = node$jscomp$0.nodeName;
-              node$jscomp$0[internalHoistableMarker] ||
-                "SCRIPT" === nodeName ||
-                "STYLE" === nodeName ||
-                ("LINK" === nodeName &&
-                  "stylesheet" === node$jscomp$0.rel.toLowerCase()) ||
-                node.removeChild(node$jscomp$0);
-              node$jscomp$0 = nextNode$jscomp$0;
-            }
-          } else
-            node === PREAMBLE_CONTRIBUTION_BODY &&
-              releaseSingletonInstance(parentInstance.ownerDocument.body);
-        node = nextNode;
-      } while (node);
-      retryIfBlockedOn(hydrationInstance);
-    }
-    function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {
-      var node = suspenseInstance;
-      suspenseInstance = 0;
-      do {
-        var nextNode = node.nextSibling;
-        1 === node.nodeType
-          ? isHidden
-            ? ((node._stashedDisplay = node.style.display),
-              (node.style.display = "none"))
-            : ((node.style.display = node._stashedDisplay || ""),
-              "" === node.getAttribute("style") &&
-                node.removeAttribute("style"))
-          : 3 === node.nodeType &&
-            (isHidden
-              ? ((node._stashedText = node.nodeValue), (node.nodeValue = ""))
-              : (node.nodeValue = node._stashedText || ""));
-        if (nextNode && 8 === nextNode.nodeType)
-          if (((node = nextNode.data), node === SUSPENSE_END_DATA))
-            if (0 === suspenseInstance) break;
-            else suspenseInstance--;
-          else
-            (node !== SUSPENSE_START_DATA &&
-              node !== SUSPENSE_PENDING_START_DATA &&
-              node !== SUSPENSE_QUEUED_START_DATA &&
-              node !== SUSPENSE_FALLBACK_START_DATA) ||
-              suspenseInstance++;
-        node = nextNode;
-      } while (node);
-    }
-    function hideDehydratedBoundary(suspenseInstance) {
-      hideOrUnhideDehydratedBoundary(suspenseInstance, !0);
-    }
-    function hideInstance(instance) {
-      instance = instance.style;
-      "function" === typeof instance.setProperty
-        ? instance.setProperty("display", "none", "important")
-        : (instance.display = "none");
-    }
-    function hideTextInstance(textInstance) {
-      textInstance.nodeValue = "";
-    }
-    function unhideDehydratedBoundary(dehydratedInstance) {
-      hideOrUnhideDehydratedBoundary(dehydratedInstance, !1);
-    }
-    function unhideInstance(instance, props) {
-      props = props[STYLE];
-      props =
-        void 0 !== props && null !== props && props.hasOwnProperty("display")
-          ? props.display
-          : null;
-      instance.style.display =
-        null == props || "boolean" === typeof props ? "" : ("" + props).trim();
-    }
-    function unhideTextInstance(textInstance, text) {
-      textInstance.nodeValue = text;
-    }
-    function clearContainerSparingly(container) {
-      var nextNode = container.firstChild;
-      nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);
-      for (; nextNode; ) {
-        var node = nextNode;
-        nextNode = nextNode.nextSibling;
-        switch (node.nodeName) {
-          case "HTML":
-          case "HEAD":
-          case "BODY":
-            clearContainerSparingly(node);
-            detachDeletedInstance(node);
-            continue;
-          case "SCRIPT":
-          case "STYLE":
-            continue;
-          case "LINK":
-            if ("stylesheet" === node.rel.toLowerCase()) continue;
-        }
-        container.removeChild(node);
-      }
-    }
-    function canHydrateInstance(instance, type, props, inRootOrSingleton) {
-      for (; 1 === instance.nodeType; ) {
-        var anyProps = props;
-        if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
-          if (
-            !inRootOrSingleton &&
-            ("INPUT" !== instance.nodeName || "hidden" !== instance.type)
-          )
-            break;
-        } else if (!inRootOrSingleton)
-          if ("input" === type && "hidden" === instance.type) {
-            checkAttributeStringCoercion(anyProps.name, "name");
-            var name = null == anyProps.name ? null : "" + anyProps.name;
-            if (
-              "hidden" === anyProps.type &&
-              instance.getAttribute("name") === name
-            )
-              return instance;
-          } else return instance;
-        else if (!instance[internalHoistableMarker])
-          switch (type) {
-            case "meta":
-              if (!instance.hasAttribute("itemprop")) break;
-              return instance;
-            case "link":
-              name = instance.getAttribute("rel");
-              if (
-                "stylesheet" === name &&
-                instance.hasAttribute("data-precedence")
-              )
-                break;
-              else if (
-                name !== anyProps.rel ||
-                instance.getAttribute("href") !==
-                  (null == anyProps.href || "" === anyProps.href
-                    ? null
-                    : anyProps.href) ||
-                instance.getAttribute("crossorigin") !==
-                  (null == anyProps.crossOrigin
-                    ? null
-                    : anyProps.crossOrigin) ||
-                instance.getAttribute("title") !==
-                  (null == anyProps.title ? null : anyProps.title)
-              )
-                break;
-              return instance;
-            case "style":
-              if (instance.hasAttribute("data-precedence")) break;
-              return instance;
-            case "script":
-              name = instance.getAttribute("src");
-              if (
-                (name !== (null == anyProps.src ? null : anyProps.src) ||
-                  instance.getAttribute("type") !==
-                    (null == anyProps.type ? null : anyProps.type) ||
-                  instance.getAttribute("crossorigin") !==
-                    (null == anyProps.crossOrigin
-                      ? null
-                      : anyProps.crossOrigin)) &&
-                name &&
-                instance.hasAttribute("async") &&
-                !instance.hasAttribute("itemprop")
-              )
-                break;
-              return instance;
-            default:
-              return instance;
-          }
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) break;
-      }
-      return null;
-    }
-    function canHydrateTextInstance(instance, text, inRootOrSingleton) {
-      if ("" === text) return null;
-      for (; 3 !== instance.nodeType; ) {
-        if (
-          (1 !== instance.nodeType ||
-            "INPUT" !== instance.nodeName ||
-            "hidden" !== instance.type) &&
-          !inRootOrSingleton
-        )
-          return null;
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) return null;
-      }
-      return instance;
-    }
-    function canHydrateHydrationBoundary(instance, inRootOrSingleton) {
-      for (; 8 !== instance.nodeType; ) {
-        if (
-          (1 !== instance.nodeType ||
-            "INPUT" !== instance.nodeName ||
-            "hidden" !== instance.type) &&
-          !inRootOrSingleton
-        )
-          return null;
-        instance = getNextHydratable(instance.nextSibling);
-        if (null === instance) return null;
-      }
-      return instance;
-    }
-    function isSuspenseInstancePending(instance) {
-      return (
-        instance.data === SUSPENSE_PENDING_START_DATA ||
-        instance.data === SUSPENSE_QUEUED_START_DATA
-      );
-    }
-    function isSuspenseInstanceFallback(instance) {
-      return (
-        instance.data === SUSPENSE_FALLBACK_START_DATA ||
-        (instance.data === SUSPENSE_PENDING_START_DATA &&
-          instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING)
-      );
-    }
-    function registerSuspenseInstanceRetry(instance, callback) {
-      var ownerDocument = instance.ownerDocument;
-      if (instance.data === SUSPENSE_QUEUED_START_DATA)
-        instance._reactRetry = callback;
-      else if (
-        instance.data !== SUSPENSE_PENDING_START_DATA ||
-        ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING
-      )
-        callback();
-      else {
-        var listener = function () {
-          callback();
-          ownerDocument.removeEventListener("DOMContentLoaded", listener);
-        };
-        ownerDocument.addEventListener("DOMContentLoaded", listener);
-        instance._reactRetry = listener;
-      }
-    }
-    function getNextHydratable(node) {
-      for (; null != node; node = node.nextSibling) {
-        var nodeType = node.nodeType;
-        if (1 === nodeType || 3 === nodeType) break;
-        if (8 === nodeType) {
-          nodeType = node.data;
-          if (
-            nodeType === SUSPENSE_START_DATA ||
-            nodeType === SUSPENSE_FALLBACK_START_DATA ||
-            nodeType === SUSPENSE_PENDING_START_DATA ||
-            nodeType === SUSPENSE_QUEUED_START_DATA ||
-            nodeType === ACTIVITY_START_DATA ||
-            nodeType === FORM_STATE_IS_MATCHING ||
-            nodeType === FORM_STATE_IS_NOT_MATCHING
-          )
-            break;
-          if (nodeType === SUSPENSE_END_DATA || nodeType === ACTIVITY_END_DATA)
-            return null;
-        }
-      }
-      return node;
-    }
-    function describeHydratableInstanceForDevWarnings(instance) {
-      if (1 === instance.nodeType) {
-        for (
-          var JSCompiler_temp_const = instance.nodeName.toLowerCase(),
-            serverDifferences = {},
-            attributes = instance.attributes,
-            i = 0;
-          i < attributes.length;
-          i++
-        ) {
-          var attr = attributes[i];
-          serverDifferences[getPropNameFromAttributeName(attr.name)] =
-            "style" === attr.name.toLowerCase()
-              ? getStylesObjectFromElement(instance)
-              : attr.value;
-        }
-        return { type: JSCompiler_temp_const, props: serverDifferences };
-      }
-      return 8 === instance.nodeType
-        ? instance.data === ACTIVITY_START_DATA
-          ? { type: "Activity", props: {} }
-          : { type: "Suspense", props: {} }
-        : instance.nodeValue;
-    }
-    function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {
-      return null === parentProps ||
-        !0 !== parentProps[SUPPRESS_HYDRATION_WARNING]
-        ? (textInstance.nodeValue === text
-            ? (textInstance = null)
-            : ((text = normalizeMarkupForTextOrAttribute(text)),
-              (textInstance =
-                normalizeMarkupForTextOrAttribute(textInstance.nodeValue) ===
-                text
-                  ? null
-                  : textInstance.nodeValue)),
-          textInstance)
-        : null;
-    }
-    function getNextHydratableInstanceAfterHydrationBoundary(
-      hydrationInstance
-    ) {
-      hydrationInstance = hydrationInstance.nextSibling;
-      for (var depth = 0; hydrationInstance; ) {
-        if (8 === hydrationInstance.nodeType) {
-          var data = hydrationInstance.data;
-          if (data === SUSPENSE_END_DATA || data === ACTIVITY_END_DATA) {
-            if (0 === depth)
-              return getNextHydratable(hydrationInstance.nextSibling);
-            depth--;
-          } else
-            (data !== SUSPENSE_START_DATA &&
-              data !== SUSPENSE_FALLBACK_START_DATA &&
-              data !== SUSPENSE_PENDING_START_DATA &&
-              data !== SUSPENSE_QUEUED_START_DATA &&
-              data !== ACTIVITY_START_DATA) ||
-              depth++;
-        }
-        hydrationInstance = hydrationInstance.nextSibling;
-      }
-      return null;
-    }
-    function getParentHydrationBoundary(targetInstance) {
-      targetInstance = targetInstance.previousSibling;
-      for (var depth = 0; targetInstance; ) {
-        if (8 === targetInstance.nodeType) {
-          var data = targetInstance.data;
-          if (
-            data === SUSPENSE_START_DATA ||
-            data === SUSPENSE_FALLBACK_START_DATA ||
-            data === SUSPENSE_PENDING_START_DATA ||
-            data === SUSPENSE_QUEUED_START_DATA ||
-            data === ACTIVITY_START_DATA
-          ) {
-            if (0 === depth) return targetInstance;
-            depth--;
-          } else
-            (data !== SUSPENSE_END_DATA && data !== ACTIVITY_END_DATA) ||
-              depth++;
-        }
-        targetInstance = targetInstance.previousSibling;
-      }
-      return null;
-    }
-    function commitHydratedContainer(container) {
-      retryIfBlockedOn(container);
-    }
-    function commitHydratedActivityInstance(activityInstance) {
-      retryIfBlockedOn(activityInstance);
-    }
-    function commitHydratedSuspenseInstance(suspenseInstance) {
-      retryIfBlockedOn(suspenseInstance);
-    }
-    function resolveSingletonInstance(
-      type,
-      props,
-      rootContainerInstance,
-      hostContext,
-      validateDOMNestingDev
-    ) {
-      validateDOMNestingDev &&
-        validateDOMNesting(type, hostContext.ancestorInfo);
-      props = getOwnerDocumentFromRootContainer(rootContainerInstance);
-      switch (type) {
-        case "html":
-          type = props.documentElement;
-          if (!type)
-            throw Error(
-              "React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        case "head":
-          type = props.head;
-          if (!type)
-            throw Error(
-              "React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        case "body":
-          type = props.body;
-          if (!type)
-            throw Error(
-              "React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page."
-            );
-          return type;
-        default:
-          throw Error(
-            "resolveSingletonInstance was called with an element type that is not supported. This is a bug in React."
-          );
-      }
-    }
-    function acquireSingletonInstance(
-      type,
-      props,
-      instance,
-      internalInstanceHandle
-    ) {
-      if (
-        !instance[internalContainerInstanceKey] &&
-        getInstanceFromNode(instance)
-      ) {
-        var tagName = instance.tagName.toLowerCase();
-        console.error(
-          "You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.",
-          tagName,
-          tagName,
-          tagName
-        );
-      }
-      switch (type) {
-        case "html":
-        case "head":
-        case "body":
-          break;
-        default:
-          console.error(
-            "acquireSingletonInstance was called with an element type that is not supported. This is a bug in React."
-          );
-      }
-      for (tagName = instance.attributes; tagName.length; )
-        instance.removeAttributeNode(tagName[0]);
-      setInitialProperties(instance, type, props);
-      instance[internalInstanceKey] = internalInstanceHandle;
-      instance[internalPropsKey] = props;
-    }
-    function releaseSingletonInstance(instance) {
-      for (var attributes = instance.attributes; attributes.length; )
-        instance.removeAttributeNode(attributes[0]);
-      detachDeletedInstance(instance);
-    }
-    function getHoistableRoot(container) {
-      return "function" === typeof container.getRootNode
-        ? container.getRootNode()
-        : 9 === container.nodeType
-          ? container
-          : container.ownerDocument;
-    }
-    function preconnectAs(rel, href, crossOrigin) {
-      var ownerDocument = globalDocument;
-      if (ownerDocument && "string" === typeof href && href) {
-        var limitedEscapedHref =
-          escapeSelectorAttributeValueInsideDoubleQuotes(href);
-        limitedEscapedHref =
-          'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]';
-        "string" === typeof crossOrigin &&
-          (limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]');
-        preconnectsSet.has(limitedEscapedHref) ||
-          (preconnectsSet.add(limitedEscapedHref),
-          (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),
-          null === ownerDocument.querySelector(limitedEscapedHref) &&
-            ((href = ownerDocument.createElement("link")),
-            setInitialProperties(href, "link", rel),
-            markNodeAsHoistable(href),
-            ownerDocument.head.appendChild(href)));
-      }
-    }
-    function getResource(type, currentProps, pendingProps, currentResource) {
-      var resourceRoot = (resourceRoot = rootInstanceStackCursor.current)
-        ? getHoistableRoot(resourceRoot)
-        : null;
-      if (!resourceRoot)
-        throw Error(
-          '"resourceRoot" was expected to exist. This is a bug in React.'
-        );
-      switch (type) {
-        case "meta":
-        case "title":
-          return null;
-        case "style":
-          return "string" === typeof pendingProps.precedence &&
-            "string" === typeof pendingProps.href
-            ? ((pendingProps = getStyleKey(pendingProps.href)),
-              (currentProps =
-                getResourcesFromRoot(resourceRoot).hoistableStyles),
-              (currentResource = currentProps.get(pendingProps)),
-              currentResource ||
-                ((currentResource = {
-                  type: "style",
-                  instance: null,
-                  count: 0,
-                  state: null
-                }),
-                currentProps.set(pendingProps, currentResource)),
-              currentResource)
-            : { type: "void", instance: null, count: 0, state: null };
-        case "link":
-          if (
-            "stylesheet" === pendingProps.rel &&
-            "string" === typeof pendingProps.href &&
-            "string" === typeof pendingProps.precedence
-          ) {
-            type = getStyleKey(pendingProps.href);
-            var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles,
-              _resource = _styles.get(type);
-            if (
-              !_resource &&
-              ((resourceRoot = resourceRoot.ownerDocument || resourceRoot),
-              (_resource = {
-                type: "stylesheet",
-                instance: null,
-                count: 0,
-                state: { loading: NotLoaded, preload: null }
-              }),
-              _styles.set(type, _resource),
-              (_styles = resourceRoot.querySelector(
-                getStylesheetSelectorFromKey(type)
-              )) &&
-                !_styles._p &&
-                ((_resource.instance = _styles),
-                (_resource.state.loading = Loaded | Inserted)),
-              !preloadPropsMap.has(type))
-            ) {
-              var preloadProps = {
-                rel: "preload",
-                as: "style",
-                href: pendingProps.href,
-                crossOrigin: pendingProps.crossOrigin,
-                integrity: pendingProps.integrity,
-                media: pendingProps.media,
-                hrefLang: pendingProps.hrefLang,
-                referrerPolicy: pendingProps.referrerPolicy
-              };
-              preloadPropsMap.set(type, preloadProps);
-              _styles ||
-                preloadStylesheet(
-                  resourceRoot,
-                  type,
-                  preloadProps,
-                  _resource.state
-                );
-            }
-            if (currentProps && null === currentResource)
-              throw (
-                ((pendingProps =
-                  "\n\n  - " +
-                  describeLinkForResourceErrorDEV(currentProps) +
-                  "\n  + " +
-                  describeLinkForResourceErrorDEV(pendingProps)),
-                Error(
-                  "Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." +
-                    pendingProps
-                ))
-              );
-            return _resource;
-          }
-          if (currentProps && null !== currentResource)
-            throw (
-              ((pendingProps =
-                "\n\n  - " +
-                describeLinkForResourceErrorDEV(currentProps) +
-                "\n  + " +
-                describeLinkForResourceErrorDEV(pendingProps)),
-              Error(
-                "Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." +
-                  pendingProps
-              ))
-            );
-          return null;
-        case "script":
-          return (
-            (currentProps = pendingProps.async),
-            (pendingProps = pendingProps.src),
-            "string" === typeof pendingProps &&
-            currentProps &&
-            "function" !== typeof currentProps &&
-            "symbol" !== typeof currentProps
-              ? ((pendingProps = getScriptKey(pendingProps)),
-                (currentProps =
-                  getResourcesFromRoot(resourceRoot).hoistableScripts),
-                (currentResource = currentProps.get(pendingProps)),
-                currentResource ||
-                  ((currentResource = {
-                    type: "script",
-                    instance: null,
-                    count: 0,
-                    state: null
-                  }),
-                  currentProps.set(pendingProps, currentResource)),
-                currentResource)
-              : { type: "void", instance: null, count: 0, state: null }
-          );
-        default:
-          throw Error(
-            'getResource encountered a type it did not expect: "' +
-              type +
-              '". this is a bug in React.'
-          );
-      }
-    }
-    function describeLinkForResourceErrorDEV(props) {
-      var describedProps = 0,
-        description = "<link";
-      "string" === typeof props.rel
-        ? (describedProps++, (description += ' rel="' + props.rel + '"'))
-        : hasOwnProperty.call(props, "rel") &&
-          (describedProps++,
-          (description +=
-            ' rel="' +
-            (null === props.rel ? "null" : "invalid type " + typeof props.rel) +
-            '"'));
-      "string" === typeof props.href
-        ? (describedProps++, (description += ' href="' + props.href + '"'))
-        : hasOwnProperty.call(props, "href") &&
-          (describedProps++,
-          (description +=
-            ' href="' +
-            (null === props.href
-              ? "null"
-              : "invalid type " + typeof props.href) +
-            '"'));
-      "string" === typeof props.precedence
-        ? (describedProps++,
-          (description += ' precedence="' + props.precedence + '"'))
-        : hasOwnProperty.call(props, "precedence") &&
-          (describedProps++,
-          (description +=
-            " precedence={" +
-            (null === props.precedence
-              ? "null"
-              : "invalid type " + typeof props.precedence) +
-            "}"));
-      Object.getOwnPropertyNames(props).length > describedProps &&
-        (description += " ...");
-      return description + " />";
-    }
-    function getStyleKey(href) {
-      return (
-        'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"'
-      );
-    }
-    function getStylesheetSelectorFromKey(key) {
-      return 'link[rel="stylesheet"][' + key + "]";
-    }
-    function stylesheetPropsFromRawProps(rawProps) {
-      return assign({}, rawProps, {
-        "data-precedence": rawProps.precedence,
-        precedence: null
-      });
-    }
-    function preloadStylesheet(ownerDocument, key, preloadProps, state) {
-      ownerDocument.querySelector(
-        'link[rel="preload"][as="style"][' + key + "]"
-      )
-        ? (state.loading = Loaded)
-        : ((key = ownerDocument.createElement("link")),
-          (state.preload = key),
-          key.addEventListener("load", function () {
-            return (state.loading |= Loaded);
-          }),
-          key.addEventListener("error", function () {
-            return (state.loading |= Errored);
-          }),
-          setInitialProperties(key, "link", preloadProps),
-          markNodeAsHoistable(key),
-          ownerDocument.head.appendChild(key));
-    }
-    function getScriptKey(src) {
-      return (
-        '[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]'
-      );
-    }
-    function getScriptSelectorFromKey(key) {
-      return "script[async]" + key;
-    }
-    function acquireResource(hoistableRoot, resource, props) {
-      resource.count++;
-      if (null === resource.instance)
-        switch (resource.type) {
-          case "style":
-            var instance = hoistableRoot.querySelector(
-              'style[data-href~="' +
-                escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +
-                '"]'
-            );
-            if (instance)
-              return (
-                (resource.instance = instance),
-                markNodeAsHoistable(instance),
-                instance
-              );
-            var styleProps = assign({}, props, {
-              "data-href": props.href,
-              "data-precedence": props.precedence,
-              href: null,
-              precedence: null
-            });
-            instance = (
-              hoistableRoot.ownerDocument || hoistableRoot
-            ).createElement("style");
-            markNodeAsHoistable(instance);
-            setInitialProperties(instance, "style", styleProps);
-            insertStylesheet(instance, props.precedence, hoistableRoot);
-            return (resource.instance = instance);
-          case "stylesheet":
-            styleProps = getStyleKey(props.href);
-            var _instance = hoistableRoot.querySelector(
-              getStylesheetSelectorFromKey(styleProps)
-            );
-            if (_instance)
-              return (
-                (resource.state.loading |= Inserted),
-                (resource.instance = _instance),
-                markNodeAsHoistable(_instance),
-                _instance
-              );
-            instance = stylesheetPropsFromRawProps(props);
-            (styleProps = preloadPropsMap.get(styleProps)) &&
-              adoptPreloadPropsForStylesheet(instance, styleProps);
-            _instance = (
-              hoistableRoot.ownerDocument || hoistableRoot
-            ).createElement("link");
-            markNodeAsHoistable(_instance);
-            var linkInstance = _instance;
-            linkInstance._p = new Promise(function (resolve, reject) {
-              linkInstance.onload = resolve;
-              linkInstance.onerror = reject;
-            });
-            setInitialProperties(_instance, "link", instance);
-            resource.state.loading |= Inserted;
-            insertStylesheet(_instance, props.precedence, hoistableRoot);
-            return (resource.instance = _instance);
-          case "script":
-            _instance = getScriptKey(props.src);
-            if (
-              (styleProps = hoistableRoot.querySelector(
-                getScriptSelectorFromKey(_instance)
-              ))
-            )
-              return (
-                (resource.instance = styleProps),
-                markNodeAsHoistable(styleProps),
-                styleProps
-              );
-            instance = props;
-            if ((styleProps = preloadPropsMap.get(_instance)))
-              (instance = assign({}, props)),
-                adoptPreloadPropsForScript(instance, styleProps);
-            hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-            styleProps = hoistableRoot.createElement("script");
-            markNodeAsHoistable(styleProps);
-            setInitialProperties(styleProps, "link", instance);
-            hoistableRoot.head.appendChild(styleProps);
-            return (resource.instance = styleProps);
-          case "void":
-            return null;
-          default:
-            throw Error(
-              'acquireResource encountered a resource type it did not expect: "' +
-                resource.type +
-                '". this is a bug in React.'
-            );
-        }
-      else
-        "stylesheet" === resource.type &&
-          (resource.state.loading & Inserted) === NotLoaded &&
-          ((instance = resource.instance),
-          (resource.state.loading |= Inserted),
-          insertStylesheet(instance, props.precedence, hoistableRoot));
-      return resource.instance;
-    }
-    function insertStylesheet(instance, precedence, root) {
-      for (
-        var nodes = root.querySelectorAll(
-            'link[rel="stylesheet"][data-precedence],style[data-precedence]'
-          ),
-          last = nodes.length ? nodes[nodes.length - 1] : null,
-          prior = last,
-          i = 0;
-        i < nodes.length;
-        i++
-      ) {
-        var node = nodes[i];
-        if (node.dataset.precedence === precedence) prior = node;
-        else if (prior !== last) break;
-      }
-      prior
-        ? prior.parentNode.insertBefore(instance, prior.nextSibling)
-        : ((precedence = 9 === root.nodeType ? root.head : root),
-          precedence.insertBefore(instance, precedence.firstChild));
-    }
-    function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
-      null == stylesheetProps.crossOrigin &&
-        (stylesheetProps.crossOrigin = preloadProps.crossOrigin);
-      null == stylesheetProps.referrerPolicy &&
-        (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);
-      null == stylesheetProps.title &&
-        (stylesheetProps.title = preloadProps.title);
-    }
-    function adoptPreloadPropsForScript(scriptProps, preloadProps) {
-      null == scriptProps.crossOrigin &&
-        (scriptProps.crossOrigin = preloadProps.crossOrigin);
-      null == scriptProps.referrerPolicy &&
-        (scriptProps.referrerPolicy = preloadProps.referrerPolicy);
-      null == scriptProps.integrity &&
-        (scriptProps.integrity = preloadProps.integrity);
-    }
-    function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
-      if (null === tagCaches) {
-        var cache = new Map();
-        var caches = (tagCaches = new Map());
-        caches.set(ownerDocument, cache);
-      } else
-        (caches = tagCaches),
-          (cache = caches.get(ownerDocument)),
-          cache || ((cache = new Map()), caches.set(ownerDocument, cache));
-      if (cache.has(type)) return cache;
-      cache.set(type, null);
-      ownerDocument = ownerDocument.getElementsByTagName(type);
-      for (caches = 0; caches < ownerDocument.length; caches++) {
-        var node = ownerDocument[caches];
-        if (
-          !(
-            node[internalHoistableMarker] ||
-            node[internalInstanceKey] ||
-            ("link" === type && "stylesheet" === node.getAttribute("rel"))
-          ) &&
-          node.namespaceURI !== SVG_NAMESPACE
-        ) {
-          var nodeKey = node.getAttribute(keyAttribute) || "";
-          nodeKey = type + nodeKey;
-          var existing = cache.get(nodeKey);
-          existing ? existing.push(node) : cache.set(nodeKey, [node]);
-        }
-      }
-      return cache;
-    }
-    function mountHoistable(hoistableRoot, type, instance) {
-      hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-      hoistableRoot.head.insertBefore(
-        instance,
-        "title" === type ? hoistableRoot.querySelector("head > title") : null
-      );
-    }
-    function isHostHoistableType(type, props, hostContext) {
-      var outsideHostContainerContext =
-        !hostContext.ancestorInfo.containerTagInScope;
-      if (
-        hostContext.context === HostContextNamespaceSvg ||
-        null != props.itemProp
-      )
-        return (
-          !outsideHostContainerContext ||
-            null == props.itemProp ||
-            ("meta" !== type &&
-              "title" !== type &&
-              "style" !== type &&
-              "link" !== type &&
-              "script" !== type) ||
-            console.error(
-              "Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.",
-              type,
-              type
-            ),
-          !1
-        );
-      switch (type) {
-        case "meta":
-        case "title":
-          return !0;
-        case "style":
-          if (
-            "string" !== typeof props.precedence ||
-            "string" !== typeof props.href ||
-            "" === props.href
-          ) {
-            outsideHostContainerContext &&
-              console.error(
-                'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel="stylesheet" ...> tags.  Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence="default"` and `href="some unique resource identifier"`.'
-              );
-            break;
-          }
-          return !0;
-        case "link":
-          if (
-            "string" !== typeof props.rel ||
-            "string" !== typeof props.href ||
-            "" === props.href ||
-            props.onLoad ||
-            props.onError
-          ) {
-            if (
-              "stylesheet" === props.rel &&
-              "string" === typeof props.precedence
-            ) {
-              type = props.href;
-              var onError = props.onError,
-                disabled = props.disabled;
-              hostContext = [];
-              props.onLoad && hostContext.push("`onLoad`");
-              onError && hostContext.push("`onError`");
-              null != disabled && hostContext.push("`disabled`");
-              onError = propNamesListJoin(hostContext, "and");
-              onError += 1 === hostContext.length ? " prop" : " props";
-              disabled =
-                1 === hostContext.length ? "an " + onError : "the " + onError;
-              hostContext.length &&
-                console.error(
-                  'React encountered a <link rel="stylesheet" href="%s" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                  type,
-                  disabled,
-                  onError
-                );
-            }
-            outsideHostContainerContext &&
-              ("string" !== typeof props.rel ||
-              "string" !== typeof props.href ||
-              "" === props.href
-                ? console.error(
-                    "Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag"
-                  )
-                : (props.onError || props.onLoad) &&
-                  console.error(
-                    "Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
-                  ));
-            break;
-          }
-          switch (props.rel) {
-            case "stylesheet":
-              return (
-                (type = props.precedence),
-                (props = props.disabled),
-                "string" !== typeof type &&
-                  outsideHostContainerContext &&
-                  console.error(
-                    'Cannot render a <link rel="stylesheet" /> outside the main document without knowing its precedence. Consider adding precedence="default" or moving it into the root <head> tag.'
-                  ),
-                "string" === typeof type && null == props
-              );
-            default:
-              return !0;
-          }
-        case "script":
-          type =
-            props.async &&
-            "function" !== typeof props.async &&
-            "symbol" !== typeof props.async;
-          if (
-            !type ||
-            props.onLoad ||
-            props.onError ||
-            !props.src ||
-            "string" !== typeof props.src
-          ) {
-            outsideHostContainerContext &&
-              (type
-                ? props.onLoad || props.onError
-                  ? console.error(
-                      "Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
-                    )
-                  : console.error(
-                      "Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>."
-                    )
-                : console.error(
-                    'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async="" or moving it into the root <head> tag.'
-                  ));
-            break;
-          }
-          return !0;
-        case "noscript":
-        case "template":
-          outsideHostContainerContext &&
-            console.error(
-              "Cannot render <%s> outside the main document. Try moving it into the root <head> tag.",
-              type
-            );
-      }
-      return !1;
-    }
-    function preloadResource(resource) {
-      return "stylesheet" === resource.type &&
-        (resource.state.loading & Settled) === NotLoaded
-        ? !1
-        : !0;
-    }
-    function suspendResource(state, hoistableRoot, resource, props) {
-      if (
-        "stylesheet" === resource.type &&
-        ("string" !== typeof props.media ||
-          !1 !== matchMedia(props.media).matches) &&
-        (resource.state.loading & Inserted) === NotLoaded
-      ) {
-        if (null === resource.instance) {
-          var key = getStyleKey(props.href),
-            instance = hoistableRoot.querySelector(
-              getStylesheetSelectorFromKey(key)
-            );
-          if (instance) {
-            hoistableRoot = instance._p;
-            null !== hoistableRoot &&
-              "object" === typeof hoistableRoot &&
-              "function" === typeof hoistableRoot.then &&
-              (state.count++,
-              (state = onUnsuspend.bind(state)),
-              hoistableRoot.then(state, state));
-            resource.state.loading |= Inserted;
-            resource.instance = instance;
-            markNodeAsHoistable(instance);
-            return;
-          }
-          instance = hoistableRoot.ownerDocument || hoistableRoot;
-          props = stylesheetPropsFromRawProps(props);
-          (key = preloadPropsMap.get(key)) &&
-            adoptPreloadPropsForStylesheet(props, key);
-          instance = instance.createElement("link");
-          markNodeAsHoistable(instance);
-          var linkInstance = instance;
-          linkInstance._p = new Promise(function (resolve, reject) {
-            linkInstance.onload = resolve;
-            linkInstance.onerror = reject;
-          });
-          setInitialProperties(instance, "link", props);
-          resource.instance = instance;
-        }
-        null === state.stylesheets && (state.stylesheets = new Map());
-        state.stylesheets.set(resource, hoistableRoot);
-        (hoistableRoot = resource.state.preload) &&
-          (resource.state.loading & Settled) === NotLoaded &&
-          (state.count++,
-          (resource = onUnsuspend.bind(state)),
-          hoistableRoot.addEventListener("load", resource),
-          hoistableRoot.addEventListener("error", resource));
-      }
-    }
-    function waitForCommitToBeReady(state, timeoutOffset) {
-      state.stylesheets &&
-        0 === state.count &&
-        insertSuspendedStylesheets(state, state.stylesheets);
-      return 0 < state.count || 0 < state.imgCount
-        ? function (commit) {
-            var stylesheetTimer = setTimeout(function () {
-              state.stylesheets &&
-                insertSuspendedStylesheets(state, state.stylesheets);
-              if (state.unsuspend) {
-                var unsuspend = state.unsuspend;
-                state.unsuspend = null;
-                unsuspend();
-              }
-            }, SUSPENSEY_STYLESHEET_TIMEOUT + timeoutOffset);
-            0 < state.imgBytes &&
-              0 === estimatedBytesWithinLimit &&
-              (estimatedBytesWithinLimit =
-                125 * estimateBandwidth() * SUSPENSEY_IMAGE_TIME_ESTIMATE);
-            var imgTimer = setTimeout(
-              function () {
-                state.waitingForImages = !1;
-                if (
-                  0 === state.count &&
-                  (state.stylesheets &&
-                    insertSuspendedStylesheets(state, state.stylesheets),
-                  state.unsuspend)
-                ) {
-                  var unsuspend = state.unsuspend;
-                  state.unsuspend = null;
-                  unsuspend();
-                }
-              },
-              (state.imgBytes > estimatedBytesWithinLimit
-                ? 50
-                : SUSPENSEY_IMAGE_TIMEOUT) + timeoutOffset
-            );
-            state.unsuspend = commit;
-            return function () {
-              state.unsuspend = null;
-              clearTimeout(stylesheetTimer);
-              clearTimeout(imgTimer);
-            };
-          }
-        : null;
-    }
-    function onUnsuspend() {
-      this.count--;
-      if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))
-        if (this.stylesheets)
-          insertSuspendedStylesheets(this, this.stylesheets);
-        else if (this.unsuspend) {
-          var unsuspend = this.unsuspend;
-          this.unsuspend = null;
-          unsuspend();
-        }
-    }
-    function insertSuspendedStylesheets(state, resources) {
-      state.stylesheets = null;
-      null !== state.unsuspend &&
-        (state.count++,
-        (precedencesByRoot = new Map()),
-        resources.forEach(insertStylesheetIntoRoot, state),
-        (precedencesByRoot = null),
-        onUnsuspend.call(state));
-    }
-    function insertStylesheetIntoRoot(root, resource) {
-      if (!(resource.state.loading & Inserted)) {
-        var precedences = precedencesByRoot.get(root);
-        if (precedences) var last = precedences.get(LAST_PRECEDENCE);
-        else {
-          precedences = new Map();
-          precedencesByRoot.set(root, precedences);
-          for (
-            var nodes = root.querySelectorAll(
-                "link[data-precedence],style[data-precedence]"
-              ),
-              i = 0;
-            i < nodes.length;
-            i++
-          ) {
-            var node = nodes[i];
-            if (
-              "LINK" === node.nodeName ||
-              "not all" !== node.getAttribute("media")
-            )
-              precedences.set(node.dataset.precedence, node), (last = node);
-          }
-          last && precedences.set(LAST_PRECEDENCE, last);
-        }
-        nodes = resource.instance;
-        node = nodes.getAttribute("data-precedence");
-        i = precedences.get(node) || last;
-        i === last && precedences.set(LAST_PRECEDENCE, nodes);
-        precedences.set(node, nodes);
-        this.count++;
-        last = onUnsuspend.bind(this);
-        nodes.addEventListener("load", last);
-        nodes.addEventListener("error", last);
-        i
-          ? i.parentNode.insertBefore(nodes, i.nextSibling)
-          : ((root = 9 === root.nodeType ? root.head : root),
-            root.insertBefore(nodes, root.firstChild));
-        resource.state.loading |= Inserted;
-      }
-    }
-    function FiberRootNode(
-      containerInfo,
-      tag,
-      hydrate,
-      identifierPrefix,
-      onUncaughtError,
-      onCaughtError,
-      onRecoverableError,
-      onDefaultTransitionIndicator,
-      formState
-    ) {
-      this.tag = 1;
-      this.containerInfo = containerInfo;
-      this.pingCache = this.current = this.pendingChildren = null;
-      this.timeoutHandle = noTimeout;
-      this.callbackNode =
-        this.next =
-        this.pendingContext =
-        this.context =
-        this.cancelPendingCommit =
-          null;
-      this.callbackPriority = 0;
-      this.expirationTimes = createLaneMap(-1);
-      this.entangledLanes =
-        this.shellSuspendCounter =
-        this.errorRecoveryDisabledLanes =
-        this.expiredLanes =
-        this.warmLanes =
-        this.pingedLanes =
-        this.suspendedLanes =
-        this.pendingLanes =
-          0;
-      this.entanglements = createLaneMap(0);
-      this.hiddenUpdates = createLaneMap(null);
-      this.identifierPrefix = identifierPrefix;
-      this.onUncaughtError = onUncaughtError;
-      this.onCaughtError = onCaughtError;
-      this.onRecoverableError = onRecoverableError;
-      this.pooledCache = null;
-      this.pooledCacheLanes = 0;
-      this.formState = formState;
-      this.incompleteTransitions = new Map();
-      this.passiveEffectDuration = this.effectDuration = -0;
-      this.memoizedUpdaters = new Set();
-      containerInfo = this.pendingUpdatersLaneMap = [];
-      for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set());
-      this._debugRootType = hydrate ? "hydrateRoot()" : "createRoot()";
-    }
-    function createFiberRoot(
-      containerInfo,
-      tag,
-      hydrate,
-      initialChildren,
-      hydrationCallbacks,
-      isStrictMode,
-      identifierPrefix,
-      formState,
-      onUncaughtError,
-      onCaughtError,
-      onRecoverableError,
-      onDefaultTransitionIndicator
-    ) {
-      containerInfo = new FiberRootNode(
-        containerInfo,
-        tag,
-        hydrate,
-        identifierPrefix,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        onDefaultTransitionIndicator,
-        formState
-      );
-      tag = ConcurrentMode;
-      !0 === isStrictMode && (tag |= StrictLegacyMode | StrictEffectsMode);
-      tag |= ProfileMode;
-      isStrictMode = createFiber(3, null, null, tag);
-      containerInfo.current = isStrictMode;
-      isStrictMode.stateNode = containerInfo;
-      tag = createCache();
-      retainCache(tag);
-      containerInfo.pooledCache = tag;
-      retainCache(tag);
-      isStrictMode.memoizedState = {
-        element: initialChildren,
-        isDehydrated: hydrate,
-        cache: tag
-      };
-      initializeUpdateQueue(isStrictMode);
-      return containerInfo;
-    }
-    function createPortal$1(children, containerInfo, implementation) {
-      var key =
-        3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
-      willCoercionThrow(key) &&
-        (console.error(
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          typeName(key)
-        ),
-        testStringCoercion(key));
-      return {
-        $$typeof: REACT_PORTAL_TYPE,
-        key: null == key ? null : "" + key,
-        children: children,
-        containerInfo: containerInfo,
-        implementation: implementation
-      };
-    }
-    function getContextForSubtree(parentComponent) {
-      if (!parentComponent) return emptyContextObject;
-      parentComponent = emptyContextObject;
-      return parentComponent;
-    }
-    function updateContainerImpl(
-      rootFiber,
-      lane,
-      element,
-      container,
-      parentComponent,
-      callback
-    ) {
-      if (
-        injectedHook &&
-        "function" === typeof injectedHook.onScheduleFiberRoot
-      )
-        try {
-          injectedHook.onScheduleFiberRoot(rendererID, container, element);
-        } catch (err) {
-          hasLoggedError ||
-            ((hasLoggedError = !0),
-            console.error(
-              "React instrumentation encountered an error: %o",
-              err
-            ));
-        }
-      parentComponent = getContextForSubtree(parentComponent);
-      null === container.context
-        ? (container.context = parentComponent)
-        : (container.pendingContext = parentComponent);
-      isRendering &&
-        null !== current &&
-        !didWarnAboutNestedUpdates &&
-        ((didWarnAboutNestedUpdates = !0),
-        console.error(
-          "Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\n\nCheck the render method of %s.",
-          getComponentNameFromFiber(current) || "Unknown"
-        ));
-      container = createUpdate(lane);
-      container.payload = { element: element };
-      callback = void 0 === callback ? null : callback;
-      null !== callback &&
-        ("function" !== typeof callback &&
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ),
-        (container.callback = callback));
-      element = enqueueUpdate(rootFiber, container, lane);
-      null !== element &&
-        (startUpdateTimerByLane(lane, "root.render()", null),
-        scheduleUpdateOnFiber(element, rootFiber, lane),
-        entangleTransitions(element, rootFiber, lane));
-    }
-    function markRetryLaneImpl(fiber, retryLane) {
-      fiber = fiber.memoizedState;
-      if (null !== fiber && null !== fiber.dehydrated) {
-        var a = fiber.retryLane;
-        fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;
-      }
-    }
-    function markRetryLaneIfNotHydrated(fiber, retryLane) {
-      markRetryLaneImpl(fiber, retryLane);
-      (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);
-    }
-    function attemptContinuousHydration(fiber) {
-      if (13 === fiber.tag || 31 === fiber.tag) {
-        var root = enqueueConcurrentRenderForLane(fiber, 67108864);
-        null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);
-        markRetryLaneIfNotHydrated(fiber, 67108864);
-      }
-    }
-    function attemptHydrationAtCurrentPriority(fiber) {
-      if (13 === fiber.tag || 31 === fiber.tag) {
-        var lane = requestUpdateLane(fiber);
-        lane = getBumpedLaneForHydrationByLane(lane);
-        var root = enqueueConcurrentRenderForLane(fiber, lane);
-        null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-        markRetryLaneIfNotHydrated(fiber, lane);
-      }
-    }
-    function getCurrentFiberForDevTools() {
-      return current;
-    }
-    function dispatchDiscreteEvent(
-      domEventName,
-      eventSystemFlags,
-      container,
-      nativeEvent
-    ) {
-      var prevTransition = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        (ReactDOMSharedInternals.p = DiscreteEventPriority),
-          dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = prevTransition);
-      }
-    }
-    function dispatchContinuousEvent(
-      domEventName,
-      eventSystemFlags,
-      container,
-      nativeEvent
-    ) {
-      var prevTransition = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      try {
-        (ReactDOMSharedInternals.p = ContinuousEventPriority),
-          dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-      } finally {
-        (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = prevTransition);
-      }
-    }
-    function dispatchEvent(
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      if (_enabled) {
-        var blockedOn = findInstanceBlockingEvent(nativeEvent);
-        if (null === blockedOn)
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            return_targetInst,
-            targetContainer
-          ),
-            clearIfContinuousEvent(domEventName, nativeEvent);
-        else if (
-          queueIfContinuousEvent(
-            blockedOn,
-            domEventName,
-            eventSystemFlags,
-            targetContainer,
-            nativeEvent
-          )
-        )
-          nativeEvent.stopPropagation();
-        else if (
-          (clearIfContinuousEvent(domEventName, nativeEvent),
-          eventSystemFlags & 4 &&
-            -1 < discreteReplayableEvents.indexOf(domEventName))
-        ) {
-          for (; null !== blockedOn; ) {
-            var fiber = getInstanceFromNode(blockedOn);
-            if (null !== fiber)
-              switch (fiber.tag) {
-                case 3:
-                  fiber = fiber.stateNode;
-                  if (fiber.current.memoizedState.isDehydrated) {
-                    var lanes = getHighestPriorityLanes(fiber.pendingLanes);
-                    if (0 !== lanes) {
-                      var root = fiber;
-                      root.pendingLanes |= 2;
-                      for (root.entangledLanes |= 2; lanes; ) {
-                        var lane = 1 << (31 - clz32(lanes));
-                        root.entanglements[1] |= lane;
-                        lanes &= ~lane;
-                      }
-                      ensureRootIsScheduled(fiber);
-                      (executionContext & (RenderContext | CommitContext)) ===
-                        NoContext &&
-                        ((workInProgressRootRenderTargetTime =
-                          now$1() + RENDER_TIMEOUT_MS),
-                        flushSyncWorkAcrossRoots_impl(0, !1));
-                    }
-                  }
-                  break;
-                case 31:
-                case 13:
-                  (root = enqueueConcurrentRenderForLane(fiber, 2)),
-                    null !== root && scheduleUpdateOnFiber(root, fiber, 2),
-                    flushSyncWork$1(),
-                    markRetryLaneIfNotHydrated(fiber, 2);
-              }
-            fiber = findInstanceBlockingEvent(nativeEvent);
-            null === fiber &&
-              dispatchEventForPluginEventSystem(
-                domEventName,
-                eventSystemFlags,
-                nativeEvent,
-                return_targetInst,
-                targetContainer
-              );
-            if (fiber === blockedOn) break;
-            blockedOn = fiber;
-          }
-          null !== blockedOn && nativeEvent.stopPropagation();
-        } else
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            null,
-            targetContainer
-          );
-      }
-    }
-    function findInstanceBlockingEvent(nativeEvent) {
-      nativeEvent = getEventTarget(nativeEvent);
-      return findInstanceBlockingTarget(nativeEvent);
-    }
-    function findInstanceBlockingTarget(targetNode) {
-      return_targetInst = null;
-      targetNode = getClosestInstanceFromNode(targetNode);
-      if (null !== targetNode) {
-        var nearestMounted = getNearestMountedFiber(targetNode);
-        if (null === nearestMounted) targetNode = null;
-        else {
-          var tag = nearestMounted.tag;
-          if (13 === tag) {
-            targetNode = getSuspenseInstanceFromFiber(nearestMounted);
-            if (null !== targetNode) return targetNode;
-            targetNode = null;
-          } else if (31 === tag) {
-            targetNode = getActivityInstanceFromFiber(nearestMounted);
-            if (null !== targetNode) return targetNode;
-            targetNode = null;
-          } else if (3 === tag) {
-            if (nearestMounted.stateNode.current.memoizedState.isDehydrated)
-              return 3 === nearestMounted.tag
-                ? nearestMounted.stateNode.containerInfo
-                : null;
-            targetNode = null;
-          } else nearestMounted !== targetNode && (targetNode = null);
-        }
-      }
-      return_targetInst = targetNode;
-      return null;
-    }
-    function getEventPriority(domEventName) {
-      switch (domEventName) {
-        case "beforetoggle":
-        case "cancel":
-        case "click":
-        case "close":
-        case "contextmenu":
-        case "copy":
-        case "cut":
-        case "auxclick":
-        case "dblclick":
-        case "dragend":
-        case "dragstart":
-        case "drop":
-        case "focusin":
-        case "focusout":
-        case "input":
-        case "invalid":
-        case "keydown":
-        case "keypress":
-        case "keyup":
-        case "mousedown":
-        case "mouseup":
-        case "paste":
-        case "pause":
-        case "play":
-        case "pointercancel":
-        case "pointerdown":
-        case "pointerup":
-        case "ratechange":
-        case "reset":
-        case "resize":
-        case "seeked":
-        case "submit":
-        case "toggle":
-        case "touchcancel":
-        case "touchend":
-        case "touchstart":
-        case "volumechange":
-        case "change":
-        case "selectionchange":
-        case "textInput":
-        case "compositionstart":
-        case "compositionend":
-        case "compositionupdate":
-        case "beforeblur":
-        case "afterblur":
-        case "beforeinput":
-        case "blur":
-        case "fullscreenchange":
-        case "focus":
-        case "hashchange":
-        case "popstate":
-        case "select":
-        case "selectstart":
-          return DiscreteEventPriority;
-        case "drag":
-        case "dragenter":
-        case "dragexit":
-        case "dragleave":
-        case "dragover":
-        case "mousemove":
-        case "mouseout":
-        case "mouseover":
-        case "pointermove":
-        case "pointerout":
-        case "pointerover":
-        case "scroll":
-        case "touchmove":
-        case "wheel":
-        case "mouseenter":
-        case "mouseleave":
-        case "pointerenter":
-        case "pointerleave":
-          return ContinuousEventPriority;
-        case "message":
-          switch (getCurrentPriorityLevel()) {
-            case ImmediatePriority:
-              return DiscreteEventPriority;
-            case UserBlockingPriority:
-              return ContinuousEventPriority;
-            case NormalPriority$1:
-            case LowPriority:
-              return DefaultEventPriority;
-            case IdlePriority:
-              return IdleEventPriority;
-            default:
-              return DefaultEventPriority;
-          }
-        default:
-          return DefaultEventPriority;
-      }
-    }
-    function clearIfContinuousEvent(domEventName, nativeEvent) {
-      switch (domEventName) {
-        case "focusin":
-        case "focusout":
-          queuedFocus = null;
-          break;
-        case "dragenter":
-        case "dragleave":
-          queuedDrag = null;
-          break;
-        case "mouseover":
-        case "mouseout":
-          queuedMouse = null;
-          break;
-        case "pointerover":
-        case "pointerout":
-          queuedPointers.delete(nativeEvent.pointerId);
-          break;
-        case "gotpointercapture":
-        case "lostpointercapture":
-          queuedPointerCaptures.delete(nativeEvent.pointerId);
-      }
-    }
-    function accumulateOrCreateContinuousQueuedReplayableEvent(
-      existingQueuedEvent,
-      blockedOn,
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      if (
-        null === existingQueuedEvent ||
-        existingQueuedEvent.nativeEvent !== nativeEvent
-      )
-        return (
-          (existingQueuedEvent = {
-            blockedOn: blockedOn,
-            domEventName: domEventName,
-            eventSystemFlags: eventSystemFlags,
-            nativeEvent: nativeEvent,
-            targetContainers: [targetContainer]
-          }),
-          null !== blockedOn &&
-            ((blockedOn = getInstanceFromNode(blockedOn)),
-            null !== blockedOn && attemptContinuousHydration(blockedOn)),
-          existingQueuedEvent
-        );
-      existingQueuedEvent.eventSystemFlags |= eventSystemFlags;
-      blockedOn = existingQueuedEvent.targetContainers;
-      null !== targetContainer &&
-        -1 === blockedOn.indexOf(targetContainer) &&
-        blockedOn.push(targetContainer);
-      return existingQueuedEvent;
-    }
-    function queueIfContinuousEvent(
-      blockedOn,
-      domEventName,
-      eventSystemFlags,
-      targetContainer,
-      nativeEvent
-    ) {
-      switch (domEventName) {
-        case "focusin":
-          return (
-            (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedFocus,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "dragenter":
-          return (
-            (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedDrag,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "mouseover":
-          return (
-            (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedMouse,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )),
-            !0
-          );
-        case "pointerover":
-          var pointerId = nativeEvent.pointerId;
-          queuedPointers.set(
-            pointerId,
-            accumulateOrCreateContinuousQueuedReplayableEvent(
-              queuedPointers.get(pointerId) || null,
-              blockedOn,
-              domEventName,
-              eventSystemFlags,
-              targetContainer,
-              nativeEvent
-            )
-          );
-          return !0;
-        case "gotpointercapture":
-          return (
-            (pointerId = nativeEvent.pointerId),
-            queuedPointerCaptures.set(
-              pointerId,
-              accumulateOrCreateContinuousQueuedReplayableEvent(
-                queuedPointerCaptures.get(pointerId) || null,
-                blockedOn,
-                domEventName,
-                eventSystemFlags,
-                targetContainer,
-                nativeEvent
-              )
-            ),
-            !0
-          );
-      }
-      return !1;
-    }
-    function attemptExplicitHydrationTarget(queuedTarget) {
-      var targetInst = getClosestInstanceFromNode(queuedTarget.target);
-      if (null !== targetInst) {
-        var nearestMounted = getNearestMountedFiber(targetInst);
-        if (null !== nearestMounted)
-          if (((targetInst = nearestMounted.tag), 13 === targetInst)) {
-            if (
-              ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),
-              null !== targetInst)
-            ) {
-              queuedTarget.blockedOn = targetInst;
-              runWithPriority(queuedTarget.priority, function () {
-                attemptHydrationAtCurrentPriority(nearestMounted);
-              });
-              return;
-            }
-          } else if (31 === targetInst) {
-            if (
-              ((targetInst = getActivityInstanceFromFiber(nearestMounted)),
-              null !== targetInst)
-            ) {
-              queuedTarget.blockedOn = targetInst;
-              runWithPriority(queuedTarget.priority, function () {
-                attemptHydrationAtCurrentPriority(nearestMounted);
-              });
-              return;
-            }
-          } else if (
-            3 === targetInst &&
-            nearestMounted.stateNode.current.memoizedState.isDehydrated
-          ) {
-            queuedTarget.blockedOn =
-              3 === nearestMounted.tag
-                ? nearestMounted.stateNode.containerInfo
-                : null;
-            return;
-          }
-      }
-      queuedTarget.blockedOn = null;
-    }
-    function attemptReplayContinuousQueuedEvent(queuedEvent) {
-      if (null !== queuedEvent.blockedOn) return !1;
-      for (
-        var targetContainers = queuedEvent.targetContainers;
-        0 < targetContainers.length;
-
-      ) {
-        var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);
-        if (null === nextBlockedOn) {
-          nextBlockedOn = queuedEvent.nativeEvent;
-          var nativeEventClone = new nextBlockedOn.constructor(
-              nextBlockedOn.type,
-              nextBlockedOn
-            ),
-            event = nativeEventClone;
-          null !== currentReplayingEvent &&
-            console.error(
-              "Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue."
-            );
-          currentReplayingEvent = event;
-          nextBlockedOn.target.dispatchEvent(nativeEventClone);
-          null === currentReplayingEvent &&
-            console.error(
-              "Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue."
-            );
-          currentReplayingEvent = null;
-        } else
-          return (
-            (targetContainers = getInstanceFromNode(nextBlockedOn)),
-            null !== targetContainers &&
-              attemptContinuousHydration(targetContainers),
-            (queuedEvent.blockedOn = nextBlockedOn),
-            !1
-          );
-        targetContainers.shift();
-      }
-      return !0;
-    }
-    function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {
-      attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);
-    }
-    function replayUnblockedEvents() {
-      hasScheduledReplayAttempt = !1;
-      null !== queuedFocus &&
-        attemptReplayContinuousQueuedEvent(queuedFocus) &&
-        (queuedFocus = null);
-      null !== queuedDrag &&
-        attemptReplayContinuousQueuedEvent(queuedDrag) &&
-        (queuedDrag = null);
-      null !== queuedMouse &&
-        attemptReplayContinuousQueuedEvent(queuedMouse) &&
-        (queuedMouse = null);
-      queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);
-      queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);
-    }
-    function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {
-      queuedEvent.blockedOn === unblocked &&
-        ((queuedEvent.blockedOn = null),
-        hasScheduledReplayAttempt ||
-          ((hasScheduledReplayAttempt = !0),
-          Scheduler.unstable_scheduleCallback(
-            Scheduler.unstable_NormalPriority,
-            replayUnblockedEvents
-          )));
-    }
-    function scheduleReplayQueueIfNeeded(formReplayingQueue) {
-      lastScheduledReplayQueue !== formReplayingQueue &&
-        ((lastScheduledReplayQueue = formReplayingQueue),
-        Scheduler.unstable_scheduleCallback(
-          Scheduler.unstable_NormalPriority,
-          function () {
-            lastScheduledReplayQueue === formReplayingQueue &&
-              (lastScheduledReplayQueue = null);
-            for (var i = 0; i < formReplayingQueue.length; i += 3) {
-              var form = formReplayingQueue[i],
-                submitterOrAction = formReplayingQueue[i + 1],
-                formData = formReplayingQueue[i + 2];
-              if ("function" !== typeof submitterOrAction)
-                if (
-                  null === findInstanceBlockingTarget(submitterOrAction || form)
-                )
-                  continue;
-                else break;
-              var formInst = getInstanceFromNode(form);
-              null !== formInst &&
-                (formReplayingQueue.splice(i, 3),
-                (i -= 3),
-                (form = {
-                  pending: !0,
-                  data: formData,
-                  method: form.method,
-                  action: submitterOrAction
-                }),
-                Object.freeze(form),
-                startHostTransition(
-                  formInst,
-                  form,
-                  submitterOrAction,
-                  formData
-                ));
-            }
-          }
-        ));
-    }
-    function retryIfBlockedOn(unblocked) {
-      function unblock(queuedEvent) {
-        return scheduleCallbackIfUnblocked(queuedEvent, unblocked);
-      }
-      null !== queuedFocus &&
-        scheduleCallbackIfUnblocked(queuedFocus, unblocked);
-      null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);
-      null !== queuedMouse &&
-        scheduleCallbackIfUnblocked(queuedMouse, unblocked);
-      queuedPointers.forEach(unblock);
-      queuedPointerCaptures.forEach(unblock);
-      for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {
-        var queuedTarget = queuedExplicitHydrationTargets[i];
-        queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);
-      }
-      for (
-        ;
-        0 < queuedExplicitHydrationTargets.length &&
-        ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);
-
-      )
-        attemptExplicitHydrationTarget(i),
-          null === i.blockedOn && queuedExplicitHydrationTargets.shift();
-      i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;
-      if (null != i)
-        for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {
-          var form = i[queuedTarget],
-            submitterOrAction = i[queuedTarget + 1],
-            formProps = form[internalPropsKey] || null;
-          if ("function" === typeof submitterOrAction)
-            formProps || scheduleReplayQueueIfNeeded(i);
-          else if (formProps) {
-            var action = null;
-            if (
-              submitterOrAction &&
-              submitterOrAction.hasAttribute("formAction")
-            )
-              if (
-                ((form = submitterOrAction),
-                (formProps = submitterOrAction[internalPropsKey] || null))
-              )
-                action = formProps.formAction;
-              else {
-                if (null !== findInstanceBlockingTarget(form)) continue;
-              }
-            else action = formProps.action;
-            "function" === typeof action
-              ? (i[queuedTarget + 1] = action)
-              : (i.splice(queuedTarget, 3), (queuedTarget -= 3));
-            scheduleReplayQueueIfNeeded(i);
-          }
-        }
-    }
-    function defaultOnDefaultTransitionIndicator() {
-      function handleNavigate(event) {
-        event.canIntercept &&
-          "react-transition" === event.info &&
-          event.intercept({
-            handler: function () {
-              return new Promise(function (resolve) {
-                return (pendingResolve = resolve);
-              });
-            },
-            focusReset: "manual",
-            scroll: "manual"
-          });
-      }
-      function handleNavigateComplete() {
-        null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-        isCancelled || setTimeout(startFakeNavigation, 20);
-      }
-      function startFakeNavigation() {
-        if (!isCancelled && !navigation.transition) {
-          var currentEntry = navigation.currentEntry;
-          currentEntry &&
-            null != currentEntry.url &&
-            navigation.navigate(currentEntry.url, {
-              state: currentEntry.getState(),
-              info: "react-transition",
-              history: "replace"
-            });
-        }
-      }
-      if ("object" === typeof navigation) {
-        var isCancelled = !1,
-          pendingResolve = null;
-        navigation.addEventListener("navigate", handleNavigate);
-        navigation.addEventListener("navigatesuccess", handleNavigateComplete);
-        navigation.addEventListener("navigateerror", handleNavigateComplete);
-        setTimeout(startFakeNavigation, 100);
-        return function () {
-          isCancelled = !0;
-          navigation.removeEventListener("navigate", handleNavigate);
-          navigation.removeEventListener(
-            "navigatesuccess",
-            handleNavigateComplete
-          );
-          navigation.removeEventListener(
-            "navigateerror",
-            handleNavigateComplete
-          );
-          null !== pendingResolve &&
-            (pendingResolve(), (pendingResolve = null));
-        };
-      }
-    }
-    function ReactDOMRoot(internalRoot) {
-      this._internalRoot = internalRoot;
-    }
-    function ReactDOMHydrationRoot(internalRoot) {
-      this._internalRoot = internalRoot;
-    }
-    function warnIfReactDOMContainerInDEV(container) {
-      container[internalContainerInstanceKey] &&
-        (container._reactRootContainer
-          ? console.error(
-              "You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported."
-            )
-          : console.error(
-              "You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it."
-            ));
-    }
-    function getCrossOriginStringAs(as, input) {
-      if ("font" === as) return "";
-      if ("string" === typeof input)
-        return "use-credentials" === input ? input : "";
-    }
-    function getValueDescriptorExpectingObjectForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : 'something with type "' + typeof thing + '"';
-    }
-    function getValueDescriptorExpectingEnumForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : "string" === typeof thing
-              ? JSON.stringify(thing)
-              : "number" === typeof thing
-                ? "`" + thing + "`"
-                : 'something with type "' + typeof thing + '"';
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var Scheduler = require("scheduler"),
-      React = require("react"),
-      ReactDOM = require("react-dom"),
-      assign = Object.assign,
-      REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy");
-    Symbol.for("react.scope");
-    var REACT_ACTIVITY_TYPE = Symbol.for("react.activity");
-    Symbol.for("react.legacy_hidden");
-    Symbol.for("react.tracing_marker");
-    var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
-    Symbol.for("react.view_transition");
-    var MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      isArrayImpl = Array.isArray,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      valueStack = [];
-    var fiberStack = [];
-    var index$jscomp$0 = -1,
-      contextStackCursor = createCursor(null),
-      contextFiberStackCursor = createCursor(null),
-      rootInstanceStackCursor = createCursor(null),
-      hostTransitionProviderCursor = createCursor(null),
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var current = null,
-      isRendering = !1,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      scheduleCallback$3 = Scheduler.unstable_scheduleCallback,
-      cancelCallback$1 = Scheduler.unstable_cancelCallback,
-      shouldYield = Scheduler.unstable_shouldYield,
-      requestPaint = Scheduler.unstable_requestPaint,
-      now$1 = Scheduler.unstable_now,
-      getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,
-      ImmediatePriority = Scheduler.unstable_ImmediatePriority,
-      UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,
-      NormalPriority$1 = Scheduler.unstable_NormalPriority,
-      LowPriority = Scheduler.unstable_LowPriority,
-      IdlePriority = Scheduler.unstable_IdlePriority,
-      log$1 = Scheduler.log,
-      unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,
-      rendererID = null,
-      injectedHook = null,
-      hasLoggedError = !1,
-      isDevToolsPresent = "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__,
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      nextTransitionUpdateLane = 256,
-      nextTransitionDeferredLane = 262144,
-      nextRetryLane = 4194304,
-      DiscreteEventPriority = 2,
-      ContinuousEventPriority = 8,
-      DefaultEventPriority = 32,
-      IdleEventPriority = 268435456,
-      randomKey = Math.random().toString(36).slice(2),
-      internalInstanceKey = "__reactFiber$" + randomKey,
-      internalPropsKey = "__reactProps$" + randomKey,
-      internalContainerInstanceKey = "__reactContainer$" + randomKey,
-      internalEventHandlersKey = "__reactEvents$" + randomKey,
-      internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
-      internalEventHandlesSetKey = "__reactHandles$" + randomKey,
-      internalRootNodeResourcesKey = "__reactResources$" + randomKey,
-      internalHoistableMarker = "__reactMarker$" + randomKey,
-      allNativeEvents = new Set(),
-      registrationNameDependencies = {},
-      possibleRegistrationNames = {},
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g,
-      didWarnValueDefaultValue$1 = !1,
-      didWarnCheckedDefaultChecked = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnInvalidChild = !1,
-      didWarnInvalidInnerHTML = !1;
-    var didWarnValueDefaultValue = !1;
-    var valuePropNames = ["value", "defaultValue"],
-      didWarnValDefaultVal = !1,
-      needsEscaping = /["'&<>\n\t]|^\s|\s$/,
-      specialTags =
-        "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split(
-          " "
-        ),
-      inScopeTags =
-        "applet caption html table td th marquee object template foreignObject desc title".split(
-          " "
-        ),
-      buttonScopeTags = inScopeTags.concat(["button"]),
-      impliedEndTags = "dd dt li option optgroup p rp rt".split(" "),
-      emptyAncestorInfoDev = {
-        current: null,
-        formTag: null,
-        aTagInScope: null,
-        buttonTagInScope: null,
-        nobrTagInScope: null,
-        pTagInButtonScope: null,
-        listItemTagAutoclosing: null,
-        dlItemTagAutoclosing: null,
-        containerTagInScope: null,
-        implicitRootScope: !1
-      },
-      didWarn = {},
-      shorthandToLonghand = {
-        animation:
-          "animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction".split(
-            " "
-          ),
-        background:
-          "backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize".split(
-            " "
-          ),
-        backgroundPosition: ["backgroundPositionX", "backgroundPositionY"],
-        border:
-          "borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth".split(
-            " "
-          ),
-        borderBlockEnd: [
-          "borderBlockEndColor",
-          "borderBlockEndStyle",
-          "borderBlockEndWidth"
-        ],
-        borderBlockStart: [
-          "borderBlockStartColor",
-          "borderBlockStartStyle",
-          "borderBlockStartWidth"
-        ],
-        borderBottom: [
-          "borderBottomColor",
-          "borderBottomStyle",
-          "borderBottomWidth"
-        ],
-        borderColor: [
-          "borderBottomColor",
-          "borderLeftColor",
-          "borderRightColor",
-          "borderTopColor"
-        ],
-        borderImage: [
-          "borderImageOutset",
-          "borderImageRepeat",
-          "borderImageSlice",
-          "borderImageSource",
-          "borderImageWidth"
-        ],
-        borderInlineEnd: [
-          "borderInlineEndColor",
-          "borderInlineEndStyle",
-          "borderInlineEndWidth"
-        ],
-        borderInlineStart: [
-          "borderInlineStartColor",
-          "borderInlineStartStyle",
-          "borderInlineStartWidth"
-        ],
-        borderLeft: ["borderLeftColor", "borderLeftStyle", "borderLeftWidth"],
-        borderRadius: [
-          "borderBottomLeftRadius",
-          "borderBottomRightRadius",
-          "borderTopLeftRadius",
-          "borderTopRightRadius"
-        ],
-        borderRight: [
-          "borderRightColor",
-          "borderRightStyle",
-          "borderRightWidth"
-        ],
-        borderStyle: [
-          "borderBottomStyle",
-          "borderLeftStyle",
-          "borderRightStyle",
-          "borderTopStyle"
-        ],
-        borderTop: ["borderTopColor", "borderTopStyle", "borderTopWidth"],
-        borderWidth: [
-          "borderBottomWidth",
-          "borderLeftWidth",
-          "borderRightWidth",
-          "borderTopWidth"
-        ],
-        columnRule: ["columnRuleColor", "columnRuleStyle", "columnRuleWidth"],
-        columns: ["columnCount", "columnWidth"],
-        flex: ["flexBasis", "flexGrow", "flexShrink"],
-        flexFlow: ["flexDirection", "flexWrap"],
-        font: "fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight".split(
-          " "
-        ),
-        fontVariant:
-          "fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition".split(
-            " "
-          ),
-        gap: ["columnGap", "rowGap"],
-        grid: "gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows".split(
-          " "
-        ),
-        gridArea: [
-          "gridColumnEnd",
-          "gridColumnStart",
-          "gridRowEnd",
-          "gridRowStart"
-        ],
-        gridColumn: ["gridColumnEnd", "gridColumnStart"],
-        gridColumnGap: ["columnGap"],
-        gridGap: ["columnGap", "rowGap"],
-        gridRow: ["gridRowEnd", "gridRowStart"],
-        gridRowGap: ["rowGap"],
-        gridTemplate: [
-          "gridTemplateAreas",
-          "gridTemplateColumns",
-          "gridTemplateRows"
-        ],
-        listStyle: ["listStyleImage", "listStylePosition", "listStyleType"],
-        margin: ["marginBottom", "marginLeft", "marginRight", "marginTop"],
-        marker: ["markerEnd", "markerMid", "markerStart"],
-        mask: "maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize".split(
-          " "
-        ),
-        maskPosition: ["maskPositionX", "maskPositionY"],
-        outline: ["outlineColor", "outlineStyle", "outlineWidth"],
-        overflow: ["overflowX", "overflowY"],
-        padding: ["paddingBottom", "paddingLeft", "paddingRight", "paddingTop"],
-        placeContent: ["alignContent", "justifyContent"],
-        placeItems: ["alignItems", "justifyItems"],
-        placeSelf: ["alignSelf", "justifySelf"],
-        textDecoration: [
-          "textDecorationColor",
-          "textDecorationLine",
-          "textDecorationStyle"
-        ],
-        textEmphasis: ["textEmphasisColor", "textEmphasisStyle"],
-        transition: [
-          "transitionDelay",
-          "transitionDuration",
-          "transitionProperty",
-          "transitionTimingFunction"
-        ],
-        wordWrap: ["overflowWrap"]
-      },
-      uppercasePattern = /([A-Z])/g,
-      msPattern$1 = /^ms-/,
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      MATH_NAMESPACE = "http://www.w3.org/1998/Math/MathML",
-      SVG_NAMESPACE = "http://www.w3.org/2000/svg",
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      currentReplayingEvent = null,
-      restoreTarget = null,
-      restoreQueue = null,
-      isInsideEventHandler = !1,
-      canUseDOM = !(
-        "undefined" === typeof window ||
-        "undefined" === typeof window.document ||
-        "undefined" === typeof window.document.createElement
-      ),
-      passiveBrowserEventsSupported = !1;
-    if (canUseDOM)
-      try {
-        var options$jscomp$0 = {};
-        Object.defineProperty(options$jscomp$0, "passive", {
-          get: function () {
-            passiveBrowserEventsSupported = !0;
-          }
-        });
-        window.addEventListener("test", options$jscomp$0, options$jscomp$0);
-        window.removeEventListener("test", options$jscomp$0, options$jscomp$0);
-      } catch (e) {
-        passiveBrowserEventsSupported = !1;
-      }
-    var root = null,
-      startText = null,
-      fallbackText = null,
-      EventInterface = {
-        eventPhase: 0,
-        bubbles: 0,
-        cancelable: 0,
-        timeStamp: function (event) {
-          return event.timeStamp || Date.now();
-        },
-        defaultPrevented: 0,
-        isTrusted: 0
-      },
-      SyntheticEvent = createSyntheticEvent(EventInterface),
-      UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),
-      SyntheticUIEvent = createSyntheticEvent(UIEventInterface),
-      lastMovementX,
-      lastMovementY,
-      lastMouseEvent,
-      MouseEventInterface = assign({}, UIEventInterface, {
-        screenX: 0,
-        screenY: 0,
-        clientX: 0,
-        clientY: 0,
-        pageX: 0,
-        pageY: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        altKey: 0,
-        metaKey: 0,
-        getModifierState: getEventModifierState,
-        button: 0,
-        buttons: 0,
-        relatedTarget: function (event) {
-          return void 0 === event.relatedTarget
-            ? event.fromElement === event.srcElement
-              ? event.toElement
-              : event.fromElement
-            : event.relatedTarget;
-        },
-        movementX: function (event) {
-          if ("movementX" in event) return event.movementX;
-          event !== lastMouseEvent &&
-            (lastMouseEvent && "mousemove" === event.type
-              ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),
-                (lastMovementY = event.screenY - lastMouseEvent.screenY))
-              : (lastMovementY = lastMovementX = 0),
-            (lastMouseEvent = event));
-          return lastMovementX;
-        },
-        movementY: function (event) {
-          return "movementY" in event ? event.movementY : lastMovementY;
-        }
-      }),
-      SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),
-      DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),
-      SyntheticDragEvent = createSyntheticEvent(DragEventInterface),
-      FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),
-      SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),
-      AnimationEventInterface = assign({}, EventInterface, {
-        animationName: 0,
-        elapsedTime: 0,
-        pseudoElement: 0
-      }),
-      SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),
-      ClipboardEventInterface = assign({}, EventInterface, {
-        clipboardData: function (event) {
-          return "clipboardData" in event
-            ? event.clipboardData
-            : window.clipboardData;
-        }
-      }),
-      SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),
-      CompositionEventInterface = assign({}, EventInterface, { data: 0 }),
-      SyntheticCompositionEvent = createSyntheticEvent(
-        CompositionEventInterface
-      ),
-      SyntheticInputEvent = SyntheticCompositionEvent,
-      normalizeKey = {
-        Esc: "Escape",
-        Spacebar: " ",
-        Left: "ArrowLeft",
-        Up: "ArrowUp",
-        Right: "ArrowRight",
-        Down: "ArrowDown",
-        Del: "Delete",
-        Win: "OS",
-        Menu: "ContextMenu",
-        Apps: "ContextMenu",
-        Scroll: "ScrollLock",
-        MozPrintableKey: "Unidentified"
-      },
-      translateToKey = {
-        8: "Backspace",
-        9: "Tab",
-        12: "Clear",
-        13: "Enter",
-        16: "Shift",
-        17: "Control",
-        18: "Alt",
-        19: "Pause",
-        20: "CapsLock",
-        27: "Escape",
-        32: " ",
-        33: "PageUp",
-        34: "PageDown",
-        35: "End",
-        36: "Home",
-        37: "ArrowLeft",
-        38: "ArrowUp",
-        39: "ArrowRight",
-        40: "ArrowDown",
-        45: "Insert",
-        46: "Delete",
-        112: "F1",
-        113: "F2",
-        114: "F3",
-        115: "F4",
-        116: "F5",
-        117: "F6",
-        118: "F7",
-        119: "F8",
-        120: "F9",
-        121: "F10",
-        122: "F11",
-        123: "F12",
-        144: "NumLock",
-        145: "ScrollLock",
-        224: "Meta"
-      },
-      modifierKeyToProp = {
-        Alt: "altKey",
-        Control: "ctrlKey",
-        Meta: "metaKey",
-        Shift: "shiftKey"
-      },
-      KeyboardEventInterface = assign({}, UIEventInterface, {
-        key: function (nativeEvent) {
-          if (nativeEvent.key) {
-            var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
-            if ("Unidentified" !== key) return key;
-          }
-          return "keypress" === nativeEvent.type
-            ? ((nativeEvent = getEventCharCode(nativeEvent)),
-              13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent))
-            : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type
-              ? translateToKey[nativeEvent.keyCode] || "Unidentified"
-              : "";
-        },
-        code: 0,
-        location: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        altKey: 0,
-        metaKey: 0,
-        repeat: 0,
-        locale: 0,
-        getModifierState: getEventModifierState,
-        charCode: function (event) {
-          return "keypress" === event.type ? getEventCharCode(event) : 0;
-        },
-        keyCode: function (event) {
-          return "keydown" === event.type || "keyup" === event.type
-            ? event.keyCode
-            : 0;
-        },
-        which: function (event) {
-          return "keypress" === event.type
-            ? getEventCharCode(event)
-            : "keydown" === event.type || "keyup" === event.type
-              ? event.keyCode
-              : 0;
-        }
-      }),
-      SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),
-      PointerEventInterface = assign({}, MouseEventInterface, {
-        pointerId: 0,
-        width: 0,
-        height: 0,
-        pressure: 0,
-        tangentialPressure: 0,
-        tiltX: 0,
-        tiltY: 0,
-        twist: 0,
-        pointerType: 0,
-        isPrimary: 0
-      }),
-      SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),
-      TouchEventInterface = assign({}, UIEventInterface, {
-        touches: 0,
-        targetTouches: 0,
-        changedTouches: 0,
-        altKey: 0,
-        metaKey: 0,
-        ctrlKey: 0,
-        shiftKey: 0,
-        getModifierState: getEventModifierState
-      }),
-      SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),
-      TransitionEventInterface = assign({}, EventInterface, {
-        propertyName: 0,
-        elapsedTime: 0,
-        pseudoElement: 0
-      }),
-      SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),
-      WheelEventInterface = assign({}, MouseEventInterface, {
-        deltaX: function (event) {
-          return "deltaX" in event
-            ? event.deltaX
-            : "wheelDeltaX" in event
-              ? -event.wheelDeltaX
-              : 0;
-        },
-        deltaY: function (event) {
-          return "deltaY" in event
-            ? event.deltaY
-            : "wheelDeltaY" in event
-              ? -event.wheelDeltaY
-              : "wheelDelta" in event
-                ? -event.wheelDelta
-                : 0;
-        },
-        deltaZ: 0,
-        deltaMode: 0
-      }),
-      SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),
-      ToggleEventInterface = assign({}, EventInterface, {
-        newState: 0,
-        oldState: 0
-      }),
-      SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),
-      END_KEYCODES = [9, 13, 27, 32],
-      START_KEYCODE = 229,
-      canUseCompositionEvent = canUseDOM && "CompositionEvent" in window,
-      documentMode = null;
-    canUseDOM &&
-      "documentMode" in document &&
-      (documentMode = document.documentMode);
-    var canUseTextInputEvent =
-        canUseDOM && "TextEvent" in window && !documentMode,
-      useFallbackCompositionData =
-        canUseDOM &&
-        (!canUseCompositionEvent ||
-          (documentMode && 8 < documentMode && 11 >= documentMode)),
-      SPACEBAR_CODE = 32,
-      SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE),
-      hasSpaceKeypress = !1,
-      isComposing = !1,
-      supportedInputTypes = {
-        color: !0,
-        date: !0,
-        datetime: !0,
-        "datetime-local": !0,
-        email: !0,
-        month: !0,
-        number: !0,
-        password: !0,
-        range: !0,
-        search: !0,
-        tel: !0,
-        text: !0,
-        time: !0,
-        url: !0,
-        week: !0
-      },
-      activeElement$1 = null,
-      activeElementInst$1 = null,
-      isInputEventSupported = !1;
-    canUseDOM &&
-      (isInputEventSupported =
-        isEventSupported("input") &&
-        (!document.documentMode || 9 < document.documentMode));
-    var objectIs = "function" === typeof Object.is ? Object.is : is,
-      skipSelectionChangeEvent =
-        canUseDOM && "documentMode" in document && 11 >= document.documentMode,
-      activeElement = null,
-      activeElementInst = null,
-      lastSelection = null,
-      mouseDown = !1,
-      vendorPrefixes = {
-        animationend: makePrefixMap("Animation", "AnimationEnd"),
-        animationiteration: makePrefixMap("Animation", "AnimationIteration"),
-        animationstart: makePrefixMap("Animation", "AnimationStart"),
-        transitionrun: makePrefixMap("Transition", "TransitionRun"),
-        transitionstart: makePrefixMap("Transition", "TransitionStart"),
-        transitioncancel: makePrefixMap("Transition", "TransitionCancel"),
-        transitionend: makePrefixMap("Transition", "TransitionEnd")
-      },
-      prefixedEventNames = {},
-      style = {};
-    canUseDOM &&
-      ((style = document.createElement("div").style),
-      "AnimationEvent" in window ||
-        (delete vendorPrefixes.animationend.animation,
-        delete vendorPrefixes.animationiteration.animation,
-        delete vendorPrefixes.animationstart.animation),
-      "TransitionEvent" in window ||
-        delete vendorPrefixes.transitionend.transition);
-    var ANIMATION_END = getVendorPrefixedEventName("animationend"),
-      ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"),
-      ANIMATION_START = getVendorPrefixedEventName("animationstart"),
-      TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"),
-      TRANSITION_START = getVendorPrefixedEventName("transitionstart"),
-      TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"),
-      TRANSITION_END = getVendorPrefixedEventName("transitionend"),
-      topLevelEventsToReactNames = new Map(),
-      simpleEventPluginEvents =
-        "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
-          " "
-        );
-    simpleEventPluginEvents.push("scrollEnd");
-    var lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var reportGlobalError =
-        "function" === typeof reportError
-          ? reportError
-          : function (error) {
-              if (
-                "object" === typeof window &&
-                "function" === typeof window.ErrorEvent
-              ) {
-                var event = new window.ErrorEvent("error", {
-                  bubbles: !0,
-                  cancelable: !0,
-                  message:
-                    "object" === typeof error &&
-                    null !== error &&
-                    "string" === typeof error.message
-                      ? String(error.message)
-                      : String(error),
-                  error: error
-                });
-                if (!window.dispatchEvent(event)) return;
-              } else if (
-                "object" === typeof process &&
-                "function" === typeof process.emit
-              ) {
-                process.emit("uncaughtException", error);
-                return;
-              }
-              console.error(error);
-            },
-      OMITTED_PROP_ERROR =
-        "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.",
-      EMPTY_ARRAY = 0,
-      COMPLEX_ARRAY = 1,
-      PRIMITIVE_ARRAY = 2,
-      ENTRIES_ARRAY = 3,
-      REMOVED = "\u2013\u00a0",
-      ADDED = "+\u00a0",
-      UNCHANGED = "\u2007\u00a0",
-      supportsUserTiming =
-        "undefined" !== typeof console &&
-        "function" === typeof console.timeStamp &&
-        "undefined" !== typeof performance &&
-        "function" === typeof performance.measure,
-      COMPONENTS_TRACK = "Components \u269b",
-      LANES_TRACK_GROUP = "Scheduler \u269b",
-      currentTrack = "Blocking",
-      alreadyWarnedForDeepEquality = !1,
-      reusableComponentDevToolDetails = {
-        color: "primary",
-        properties: null,
-        tooltipText: "",
-        track: COMPONENTS_TRACK
-      },
-      reusableComponentOptions = {
-        start: -0,
-        end: -0,
-        detail: { devtools: reusableComponentDevToolDetails }
-      },
-      resuableChangedPropsEntry = ["Changed Props", ""],
-      DEEP_EQUALITY_WARNING =
-        "This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner.",
-      reusableDeeplyEqualPropsEntry = ["Changed Props", DEEP_EQUALITY_WARNING],
-      OffscreenVisible = 1,
-      OffscreenPassiveEffectsConnected = 2,
-      concurrentQueues = [],
-      concurrentQueuesIndex = 0,
-      concurrentlyUpdatedLanes = 0,
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var resolveFamily = null,
-      failedBoundaries = null,
-      NoMode = 0,
-      ConcurrentMode = 1,
-      ProfileMode = 2,
-      StrictLegacyMode = 8,
-      StrictEffectsMode = 16,
-      SuspenseyImagesMode = 32;
-    var hasBadMapPolyfill = !1;
-    try {
-      var nonExtensibleObject = Object.preventExtensions({});
-      new Map([[nonExtensibleObject, null]]);
-      new Set([nonExtensibleObject]);
-    } catch (e$3) {
-      hasBadMapPolyfill = !0;
-    }
-    var CapturedStacks = new WeakMap(),
-      forkStack = [],
-      forkStackIndex = 0,
-      treeForkProvider = null,
-      treeForkCount = 0,
-      idStack = [],
-      idStackIndex = 0,
-      treeContextProvider = null,
-      treeContextId = 1,
-      treeContextOverflow = "",
-      hydrationParentFiber = null,
-      nextHydratableInstance = null,
-      isHydrating = !1,
-      didSuspendOrErrorDEV = !1,
-      hydrationDiffRootDEV = null,
-      hydrationErrors = null,
-      rootOrSingletonContext = !1,
-      HydrationMismatchException = Error(
-        "Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
-      ),
-      valueCursor = createCursor(null);
-    var rendererCursorDEV = createCursor(null);
-    var rendererSigil = {};
-    var currentlyRenderingFiber$1 = null,
-      lastContextDependency = null,
-      isDisallowedContextReadInDEV = !1,
-      AbortControllerLocal =
-        "undefined" !== typeof AbortController
-          ? AbortController
-          : function () {
-              var listeners = [],
-                signal = (this.signal = {
-                  aborted: !1,
-                  addEventListener: function (type, listener) {
-                    listeners.push(listener);
-                  }
-                });
-              this.abort = function () {
-                signal.aborted = !0;
-                listeners.forEach(function (listener) {
-                  return listener();
-                });
-              };
-            },
-      scheduleCallback$2 = Scheduler.unstable_scheduleCallback,
-      NormalPriority = Scheduler.unstable_NormalPriority,
-      CacheContext = {
-        $$typeof: REACT_CONTEXT_TYPE,
-        Consumer: null,
-        Provider: null,
-        _currentValue: null,
-        _currentValue2: null,
-        _threadCount: 0,
-        _currentRenderer: null,
-        _currentRenderer2: null
-      },
-      now = Scheduler.unstable_now,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          },
-      SPAWNED_UPDATE = 1,
-      PINGED_UPDATE = 2,
-      renderStartTime = -0,
-      commitStartTime = -0,
-      commitEndTime = -0,
-      commitErrors = null,
-      profilerStartTime = -1.1,
-      profilerEffectDuration = -0,
-      componentEffectDuration = -0,
-      componentEffectStartTime = -1.1,
-      componentEffectEndTime = -1.1,
-      componentEffectErrors = null,
-      componentEffectSpawnedUpdate = !1,
-      blockingClampTime = -0,
-      blockingUpdateTime = -1.1,
-      blockingUpdateTask = null,
-      blockingUpdateType = 0,
-      blockingUpdateMethodName = null,
-      blockingUpdateComponentName = null,
-      blockingEventTime = -1.1,
-      blockingEventType = null,
-      blockingEventRepeatTime = -1.1,
-      blockingSuspendedTime = -1.1,
-      transitionClampTime = -0,
-      transitionStartTime = -1.1,
-      transitionUpdateTime = -1.1,
-      transitionUpdateType = 0,
-      transitionUpdateTask = null,
-      transitionUpdateMethodName = null,
-      transitionUpdateComponentName = null,
-      transitionEventTime = -1.1,
-      transitionEventType = null,
-      transitionEventRepeatTime = -1.1,
-      transitionSuspendedTime = -1.1,
-      retryClampTime = -0,
-      idleClampTime = -0,
-      animatingLanes = 0,
-      animatingTask = null,
-      yieldReason = 0,
-      yieldStartTime = -1.1,
-      currentUpdateIsNested = !1,
-      nestedUpdateScheduled = !1,
-      currentEntangledListeners = null,
-      currentEntangledPendingCount = 0,
-      currentEntangledLane = 0,
-      currentEntangledActionThenable = null,
-      prevOnStartTransitionFinish = ReactSharedInternals.S;
-    ReactSharedInternals.S = function (transition, returnValue) {
-      globalMostRecentTransitionTime = now$1();
-      if (
-        "object" === typeof returnValue &&
-        null !== returnValue &&
-        "function" === typeof returnValue.then
-      ) {
-        if (0 > transitionStartTime && 0 > transitionUpdateTime) {
-          transitionStartTime = now();
-          var newEventTime = resolveEventTimeStamp(),
-            newEventType = resolveEventType();
-          if (
-            newEventTime !== transitionEventRepeatTime ||
-            newEventType !== transitionEventType
-          )
-            transitionEventRepeatTime = -1.1;
-          transitionEventTime = newEventTime;
-          transitionEventType = newEventType;
-        }
-        entangleAsyncAction(transition, returnValue);
-      }
-      null !== prevOnStartTransitionFinish &&
-        prevOnStartTransitionFinish(transition, returnValue);
-    };
-    var resumedCache = createCursor(null),
-      ReactStrictModeWarnings = {
-        recordUnsafeLifecycleWarnings: function () {},
-        flushPendingUnsafeLifecycleWarnings: function () {},
-        recordLegacyContextWarning: function () {},
-        flushLegacyContextWarning: function () {},
-        discardPendingWarnings: function () {}
-      },
-      pendingComponentWillMountWarnings = [],
-      pendingUNSAFE_ComponentWillMountWarnings = [],
-      pendingComponentWillReceivePropsWarnings = [],
-      pendingUNSAFE_ComponentWillReceivePropsWarnings = [],
-      pendingComponentWillUpdateWarnings = [],
-      pendingUNSAFE_ComponentWillUpdateWarnings = [],
-      didWarnAboutUnsafeLifecycles = new Set();
-    ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (
-      fiber,
-      instance
-    ) {
-      didWarnAboutUnsafeLifecycles.has(fiber.type) ||
-        ("function" === typeof instance.componentWillMount &&
-          !0 !== instance.componentWillMount.__suppressDeprecationWarning &&
-          pendingComponentWillMountWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillMount &&
-          pendingUNSAFE_ComponentWillMountWarnings.push(fiber),
-        "function" === typeof instance.componentWillReceiveProps &&
-          !0 !==
-            instance.componentWillReceiveProps.__suppressDeprecationWarning &&
-          pendingComponentWillReceivePropsWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-          pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber),
-        "function" === typeof instance.componentWillUpdate &&
-          !0 !== instance.componentWillUpdate.__suppressDeprecationWarning &&
-          pendingComponentWillUpdateWarnings.push(fiber),
-        fiber.mode & StrictLegacyMode &&
-          "function" === typeof instance.UNSAFE_componentWillUpdate &&
-          pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber));
-    };
-    ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {
-      var componentWillMountUniqueNames = new Set();
-      0 < pendingComponentWillMountWarnings.length &&
-        (pendingComponentWillMountWarnings.forEach(function (fiber) {
-          componentWillMountUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillMountWarnings = []));
-      var UNSAFE_componentWillMountUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillMountWarnings.length &&
-        (pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {
-          UNSAFE_componentWillMountUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingUNSAFE_ComponentWillMountWarnings = []));
-      var componentWillReceivePropsUniqueNames = new Set();
-      0 < pendingComponentWillReceivePropsWarnings.length &&
-        (pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {
-          componentWillReceivePropsUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillReceivePropsWarnings = []));
-      var UNSAFE_componentWillReceivePropsUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillReceivePropsWarnings.length &&
-        (pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(
-          function (fiber) {
-            UNSAFE_componentWillReceivePropsUniqueNames.add(
-              getComponentNameFromFiber(fiber) || "Component"
-            );
-            didWarnAboutUnsafeLifecycles.add(fiber.type);
-          }
-        ),
-        (pendingUNSAFE_ComponentWillReceivePropsWarnings = []));
-      var componentWillUpdateUniqueNames = new Set();
-      0 < pendingComponentWillUpdateWarnings.length &&
-        (pendingComponentWillUpdateWarnings.forEach(function (fiber) {
-          componentWillUpdateUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingComponentWillUpdateWarnings = []));
-      var UNSAFE_componentWillUpdateUniqueNames = new Set();
-      0 < pendingUNSAFE_ComponentWillUpdateWarnings.length &&
-        (pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {
-          UNSAFE_componentWillUpdateUniqueNames.add(
-            getComponentNameFromFiber(fiber) || "Component"
-          );
-          didWarnAboutUnsafeLifecycles.add(fiber.type);
-        }),
-        (pendingUNSAFE_ComponentWillUpdateWarnings = []));
-      if (0 < UNSAFE_componentWillMountUniqueNames.size) {
-        var sortedNames = setToSortedString(
-          UNSAFE_componentWillMountUniqueNames
-        );
-        console.error(
-          "Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n\nPlease update the following components: %s",
-          sortedNames
-        );
-      }
-      0 < UNSAFE_componentWillReceivePropsUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          UNSAFE_componentWillReceivePropsUniqueNames
-        )),
-        console.error(
-          "Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < UNSAFE_componentWillUpdateUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          UNSAFE_componentWillUpdateUniqueNames
-        )),
-        console.error(
-          "Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillMountUniqueNames.size &&
-        ((sortedNames = setToSortedString(componentWillMountUniqueNames)),
-        console.warn(
-          "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillReceivePropsUniqueNames.size &&
-        ((sortedNames = setToSortedString(
-          componentWillReceivePropsUniqueNames
-        )),
-        console.warn(
-          "componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-      0 < componentWillUpdateUniqueNames.size &&
-        ((sortedNames = setToSortedString(componentWillUpdateUniqueNames)),
-        console.warn(
-          "componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
-          sortedNames
-        ));
-    };
-    var pendingLegacyContextWarning = new Map(),
-      didWarnAboutLegacyContext = new Set();
-    ReactStrictModeWarnings.recordLegacyContextWarning = function (
-      fiber,
-      instance
-    ) {
-      var strictRoot = null;
-      for (var node = fiber; null !== node; )
-        node.mode & StrictLegacyMode && (strictRoot = node),
-          (node = node.return);
-      null === strictRoot
-        ? console.error(
-            "Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue."
-          )
-        : !didWarnAboutLegacyContext.has(fiber.type) &&
-          ((node = pendingLegacyContextWarning.get(strictRoot)),
-          null != fiber.type.contextTypes ||
-            null != fiber.type.childContextTypes ||
-            (null !== instance &&
-              "function" === typeof instance.getChildContext)) &&
-          (void 0 === node &&
-            ((node = []), pendingLegacyContextWarning.set(strictRoot, node)),
-          node.push(fiber));
-    };
-    ReactStrictModeWarnings.flushLegacyContextWarning = function () {
-      pendingLegacyContextWarning.forEach(function (fiberArray) {
-        if (0 !== fiberArray.length) {
-          var firstFiber = fiberArray[0],
-            uniqueNames = new Set();
-          fiberArray.forEach(function (fiber) {
-            uniqueNames.add(getComponentNameFromFiber(fiber) || "Component");
-            didWarnAboutLegacyContext.add(fiber.type);
-          });
-          var sortedNames = setToSortedString(uniqueNames);
-          runWithFiberInDEV(firstFiber, function () {
-            console.error(
-              "Legacy context API has been detected within a strict-mode tree.\n\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\n\nPlease update the following components: %s\n\nLearn more about this warning here: https://react.dev/link/legacy-context",
-              sortedNames
-            );
-          });
-        }
-      });
-    };
-    ReactStrictModeWarnings.discardPendingWarnings = function () {
-      pendingComponentWillMountWarnings = [];
-      pendingUNSAFE_ComponentWillMountWarnings = [];
-      pendingComponentWillReceivePropsWarnings = [];
-      pendingUNSAFE_ComponentWillReceivePropsWarnings = [];
-      pendingComponentWillUpdateWarnings = [];
-      pendingUNSAFE_ComponentWillUpdateWarnings = [];
-      pendingLegacyContextWarning = new Map();
-    };
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          var wasRendering = isRendering;
-          isRendering = !0;
-          try {
-            return Component(props, secondArg);
-          } finally {
-            isRendering = wasRendering;
-          }
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          var wasRendering = isRendering;
-          isRendering = !0;
-          try {
-            return instance.render();
-          } finally {
-            isRendering = wasRendering;
-          }
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callComponentDidMount = {
-        react_stack_bottom_frame: function (finishedWork, instance) {
-          try {
-            instance.componentDidMount();
-          } catch (error) {
-            captureCommitPhaseError(finishedWork, finishedWork.return, error);
-          }
-        }
-      },
-      callComponentDidMountInDEV =
-        callComponentDidMount.react_stack_bottom_frame.bind(
-          callComponentDidMount
-        ),
-      callComponentDidUpdate = {
-        react_stack_bottom_frame: function (
-          finishedWork,
-          instance,
-          prevProps,
-          prevState,
-          snapshot
-        ) {
-          try {
-            instance.componentDidUpdate(prevProps, prevState, snapshot);
-          } catch (error) {
-            captureCommitPhaseError(finishedWork, finishedWork.return, error);
-          }
-        }
-      },
-      callComponentDidUpdateInDEV =
-        callComponentDidUpdate.react_stack_bottom_frame.bind(
-          callComponentDidUpdate
-        ),
-      callComponentDidCatch = {
-        react_stack_bottom_frame: function (instance, errorInfo) {
-          var stack = errorInfo.stack;
-          instance.componentDidCatch(errorInfo.value, {
-            componentStack: null !== stack ? stack : ""
-          });
-        }
-      },
-      callComponentDidCatchInDEV =
-        callComponentDidCatch.react_stack_bottom_frame.bind(
-          callComponentDidCatch
-        ),
-      callComponentWillUnmount = {
-        react_stack_bottom_frame: function (
-          current,
-          nearestMountedAncestor,
-          instance
-        ) {
-          try {
-            instance.componentWillUnmount();
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          }
-        }
-      },
-      callComponentWillUnmountInDEV =
-        callComponentWillUnmount.react_stack_bottom_frame.bind(
-          callComponentWillUnmount
-        ),
-      callCreate = {
-        react_stack_bottom_frame: function (effect) {
-          var create = effect.create;
-          effect = effect.inst;
-          create = create();
-          return (effect.destroy = create);
-        }
-      },
-      callCreateInDEV = callCreate.react_stack_bottom_frame.bind(callCreate),
-      callDestroy = {
-        react_stack_bottom_frame: function (
-          current,
-          nearestMountedAncestor,
-          destroy
-        ) {
-          try {
-            destroy();
-          } catch (error) {
-            captureCommitPhaseError(current, nearestMountedAncestor, error);
-          }
-        }
-      },
-      callDestroyInDEV = callDestroy.react_stack_bottom_frame.bind(callDestroy),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      SuspenseyCommitException = Error(
-        "Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
-      ),
-      SuspenseActionException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary."
-      ),
-      noopSuspenseyCommitThenable = {
-        then: function () {
-          console.error(
-            'Internal React error: A listener was unexpectedly attached to a "noop" thenable. This is a bug in React. Please file an issue.'
-          );
-        }
-      },
-      suspendedThenable = null,
-      needsToResetSuspendedThenableDEV = !1,
-      thenableState$1 = null,
-      thenableIndexCounter$1 = 0,
-      currentDebugInfo = null,
-      didWarnAboutMaps;
-    var didWarnAboutGenerators = (didWarnAboutMaps = !1);
-    var ownerHasKeyUseWarning = {};
-    var ownerHasFunctionTypeWarning = {};
-    var ownerHasSymbolTypeWarning = {};
-    warnForMissingKey = function (returnFiber, workInProgress, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var componentName = getComponentNameFromFiber(returnFiber),
-          componentKey = componentName || "null";
-        if (!ownerHasKeyUseWarning[componentKey]) {
-          ownerHasKeyUseWarning[componentKey] = !0;
-          child = child._owner;
-          returnFiber = returnFiber._debugOwner;
-          var currentComponentErrorInfo = "";
-          returnFiber &&
-            "number" === typeof returnFiber.tag &&
-            (componentKey = getComponentNameFromFiber(returnFiber)) &&
-            (currentComponentErrorInfo =
-              "\n\nCheck the render method of `" + componentKey + "`.");
-          currentComponentErrorInfo ||
-            (componentName &&
-              (currentComponentErrorInfo =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          var childOwnerAppendix = "";
-          null != child &&
-            returnFiber !== child &&
-            ((componentName = null),
-            "number" === typeof child.tag
-              ? (componentName = getComponentNameFromFiber(child))
-              : "string" === typeof child.name && (componentName = child.name),
-            componentName &&
-              (childOwnerAppendix =
-                " It was passed a child from " + componentName + "."));
-          runWithFiberInDEV(workInProgress, function () {
-            console.error(
-              'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-              currentComponentErrorInfo,
-              childOwnerAppendix
-            );
-          });
-        }
-      }
-    };
-    var reconcileChildFibers = createChildReconciler(!0),
-      mountChildFibers = createChildReconciler(!1),
-      UpdateState = 0,
-      ReplaceState = 1,
-      ForceUpdate = 2,
-      CaptureUpdate = 3,
-      hasForceUpdate = !1;
-    var didWarnUpdateInsideUpdate = !1;
-    var currentlyProcessingQueue = null;
-    var didReadFromEntangledAsyncAction = !1,
-      currentTreeHiddenStackCursor = createCursor(null),
-      prevEntangledRenderLanesCursor = createCursor(0),
-      suspenseHandlerStackCursor = createCursor(null),
-      shellBoundary = null,
-      SubtreeSuspenseContextMask = 1,
-      ForceSuspenseFallback = 2,
-      suspenseStackCursor = createCursor(0),
-      NoFlags = 0,
-      HasEffect = 1,
-      Insertion = 2,
-      Layout = 4,
-      Passive = 8,
-      didWarnUncachedGetSnapshot;
-    var didWarnAboutMismatchedHooksForComponent = new Set();
-    var didWarnAboutUseWrappedInTryCatch = new Set();
-    var didWarnAboutAsyncClientComponent = new Set();
-    var didWarnAboutUseFormState = new Set();
-    var renderLanes = 0,
-      currentlyRenderingFiber = null,
-      currentHook = null,
-      workInProgressHook = null,
-      didScheduleRenderPhaseUpdate = !1,
-      didScheduleRenderPhaseUpdateDuringThisPass = !1,
-      shouldDoubleInvokeUserFnsInHooksDEV = !1,
-      localIdCounter = 0,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      globalClientIdCounter = 0,
-      RE_RENDER_LIMIT = 25,
-      currentHookNameInDev = null,
-      hookTypesDev = null,
-      hookTypesUpdateIndexDev = -1,
-      ignorePreviousDependencies = !1,
-      ContextOnlyDispatcher = {
-        readContext: readContext,
-        use: use,
-        useCallback: throwInvalidHookError,
-        useContext: throwInvalidHookError,
-        useEffect: throwInvalidHookError,
-        useImperativeHandle: throwInvalidHookError,
-        useLayoutEffect: throwInvalidHookError,
-        useInsertionEffect: throwInvalidHookError,
-        useMemo: throwInvalidHookError,
-        useReducer: throwInvalidHookError,
-        useRef: throwInvalidHookError,
-        useState: throwInvalidHookError,
-        useDebugValue: throwInvalidHookError,
-        useDeferredValue: throwInvalidHookError,
-        useTransition: throwInvalidHookError,
-        useSyncExternalStore: throwInvalidHookError,
-        useId: throwInvalidHookError,
-        useHostTransitionStatus: throwInvalidHookError,
-        useFormState: throwInvalidHookError,
-        useActionState: throwInvalidHookError,
-        useOptimistic: throwInvalidHookError,
-        useMemoCache: throwInvalidHookError,
-        useCacheRefresh: throwInvalidHookError
-      };
-    ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;
-    var HooksDispatcherOnMountInDEV = null,
-      HooksDispatcherOnMountWithHookTypesInDEV = null,
-      HooksDispatcherOnUpdateInDEV = null,
-      HooksDispatcherOnRerenderInDEV = null,
-      InvalidNestedHooksDispatcherOnMountInDEV = null,
-      InvalidNestedHooksDispatcherOnUpdateInDEV = null,
-      InvalidNestedHooksDispatcherOnRerenderInDEV = null;
-    HooksDispatcherOnMountInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        mountHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        mountHookTypesDev();
-        checkDepsAreArrayDev(deps);
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        mountHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        mountHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        mountHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        mountHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        mountHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        mountHookTypesDev();
-        return mountId();
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        mountHookTypesDev();
-        warnOnUseFormStateInDev();
-        return mountActionState(action, initialState);
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        mountHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        mountHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        mountHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    HooksDispatcherOnMountWithHookTypesInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return mountId();
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    HooksDispatcherOnUpdateInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return updateDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return updateTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return updateActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return updateOptimistic(passthrough, reducer);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    HooksDispatcherOnRerenderInDEV = {
-      readContext: function (context) {
-        return readContext(context);
-      },
-      use: use,
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return rerenderReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;
-        try {
-          return rerenderReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        updateHookTypesDev();
-        return rerenderDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        updateHookTypesDev();
-        return rerenderTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        updateHookTypesDev();
-        warnOnUseFormStateInDev();
-        return rerenderActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        updateHookTypesDev();
-        return rerenderOptimistic(passthrough, reducer);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useMemoCache: useMemoCache,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnMountInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountEffect(create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        mountEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountLayoutEffect(create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function (initialValue) {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountRef(initialValue);
-      },
-      useState: function (initialState) {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;
-        try {
-          return mountState(initialState);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountId();
-      },
-      useFormState: function (action, initialState) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useActionState: function (action, initialState) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountActionState(action, initialState);
-      },
-      useOptimistic: function (passthrough) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountOptimistic(passthrough);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        mountHookTypesDev();
-        return mountRefresh();
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        mountHookTypesDev();
-        return mountEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnUpdateInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateOptimistic(passthrough, reducer);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    InvalidNestedHooksDispatcherOnRerenderInDEV = {
-      readContext: function (context) {
-        warnInvalidContextAccess();
-        return readContext(context);
-      },
-      use: function (usable) {
-        warnInvalidHookAccess();
-        return use(usable);
-      },
-      useCallback: function (callback, deps) {
-        currentHookNameInDev = "useCallback";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateCallback(callback, deps);
-      },
-      useContext: function (context) {
-        currentHookNameInDev = "useContext";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return readContext(context);
-      },
-      useEffect: function (create, deps) {
-        currentHookNameInDev = "useEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        updateEffectImpl(2048, Passive, create, deps);
-      },
-      useImperativeHandle: function (ref, create, deps) {
-        currentHookNameInDev = "useImperativeHandle";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateImperativeHandle(ref, create, deps);
-      },
-      useInsertionEffect: function (create, deps) {
-        currentHookNameInDev = "useInsertionEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Insertion, create, deps);
-      },
-      useLayoutEffect: function (create, deps) {
-        currentHookNameInDev = "useLayoutEffect";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEffectImpl(4, Layout, create, deps);
-      },
-      useMemo: function (create, deps) {
-        currentHookNameInDev = "useMemo";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return updateMemo(create, deps);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useReducer: function (reducer, initialArg, init) {
-        currentHookNameInDev = "useReducer";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return rerenderReducer(reducer, initialArg, init);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useRef: function () {
-        currentHookNameInDev = "useRef";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useState: function () {
-        currentHookNameInDev = "useState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        var prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;
-        try {
-          return rerenderReducer(basicStateReducer);
-        } finally {
-          ReactSharedInternals.H = prevDispatcher;
-        }
-      },
-      useDebugValue: function () {
-        currentHookNameInDev = "useDebugValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-      },
-      useDeferredValue: function (value, initialValue) {
-        currentHookNameInDev = "useDeferredValue";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderDeferredValue(value, initialValue);
-      },
-      useTransition: function () {
-        currentHookNameInDev = "useTransition";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderTransition();
-      },
-      useSyncExternalStore: function (
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      ) {
-        currentHookNameInDev = "useSyncExternalStore";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateSyncExternalStore(
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        );
-      },
-      useId: function () {
-        currentHookNameInDev = "useId";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useFormState: function (action) {
-        currentHookNameInDev = "useFormState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useActionState: function (action) {
-        currentHookNameInDev = "useActionState";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderActionState(action);
-      },
-      useOptimistic: function (passthrough, reducer) {
-        currentHookNameInDev = "useOptimistic";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return rerenderOptimistic(passthrough, reducer);
-      },
-      useMemoCache: function (size) {
-        warnInvalidHookAccess();
-        return useMemoCache(size);
-      },
-      useHostTransitionStatus: useHostTransitionStatus,
-      useCacheRefresh: function () {
-        currentHookNameInDev = "useCacheRefresh";
-        updateHookTypesDev();
-        return updateWorkInProgressHook().memoizedState;
-      },
-      useEffectEvent: function (callback) {
-        currentHookNameInDev = "useEffectEvent";
-        warnInvalidHookAccess();
-        updateHookTypesDev();
-        return updateEvent(callback);
-      }
-    };
-    var fakeInternalInstance = {};
-    var didWarnAboutStateAssignmentForComponent = new Set();
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    Object.freeze(fakeInternalInstance);
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.payload = payload;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          payload = enqueueUpdate(inst, update, lane);
-          null !== payload &&
-            (startUpdateTimerByLane(lane, "this.setState()", inst),
-            scheduleUpdateOnFiber(payload, inst, lane),
-            entangleTransitions(payload, inst, lane));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.tag = ReplaceState;
-          update.payload = payload;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          payload = enqueueUpdate(inst, update, lane);
-          null !== payload &&
-            (startUpdateTimerByLane(lane, "this.replaceState()", inst),
-            scheduleUpdateOnFiber(payload, inst, lane),
-            entangleTransitions(payload, inst, lane));
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          inst = inst._reactInternals;
-          var lane = requestUpdateLane(inst),
-            update = createUpdate(lane);
-          update.tag = ForceUpdate;
-          void 0 !== callback &&
-            null !== callback &&
-            (warnOnInvalidCallback(callback), (update.callback = callback));
-          callback = enqueueUpdate(inst, update, lane);
-          null !== callback &&
-            (startUpdateTimerByLane(lane, "this.forceUpdate()", inst),
-            scheduleUpdateOnFiber(callback, inst, lane),
-            entangleTransitions(callback, inst, lane));
-        }
-      },
-      componentName = null,
-      errorBoundaryName = null,
-      SelectiveHydrationException = Error(
-        "This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."
-      ),
-      didReceiveUpdate = !1;
-    var didWarnAboutBadClass = {};
-    var didWarnAboutContextTypeOnFunctionComponent = {};
-    var didWarnAboutContextTypes = {};
-    var didWarnAboutGetDerivedStateOnFunctionComponent = {};
-    var didWarnAboutReassigningProps = !1;
-    var didWarnAboutRevealOrder = {};
-    var didWarnAboutTailOptions = {};
-    var SUSPENDED_MARKER = {
-        dehydrated: null,
-        treeContext: null,
-        retryLane: 0,
-        hydrationErrors: null
-      },
-      hasWarnedAboutUsingNoValuePropOnContextProvider = !1,
-      didWarnAboutUndefinedSnapshotBeforeUpdate = null;
-    didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();
-    var offscreenSubtreeIsHidden = !1,
-      offscreenSubtreeWasHidden = !1,
-      needsFormReset = !1,
-      PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set,
-      nextEffect = null,
-      inProgressLanes = null,
-      inProgressRoot = null,
-      hostParent = null,
-      hostParentIsContainer = !1,
-      currentHoistableRoot = null,
-      inHydratedSubtree = !1,
-      suspenseyCommitFlag = 8192,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function (resourceType) {
-          var cache = readContext(CacheContext),
-            cacheForType = cache.data.get(resourceType);
-          void 0 === cacheForType &&
-            ((cacheForType = resourceType()),
-            cache.data.set(resourceType, cacheForType));
-          return cacheForType;
-        },
-        cacheSignal: function () {
-          return readContext(CacheContext).controller.signal;
-        },
-        getOwner: function () {
-          return current;
-        }
-      };
-    if ("function" === typeof Symbol && Symbol.for) {
-      var symbolFor = Symbol.for;
-      symbolFor("selector.component");
-      symbolFor("selector.has_pseudo_class");
-      symbolFor("selector.role");
-      symbolFor("selector.test_id");
-      symbolFor("selector.text");
-    }
-    var commitHooks = [],
-      PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map,
-      NoContext = 0,
-      RenderContext = 2,
-      CommitContext = 4,
-      RootInProgress = 0,
-      RootFatalErrored = 1,
-      RootErrored = 2,
-      RootSuspended = 3,
-      RootSuspendedWithDelay = 4,
-      RootSuspendedAtTheShell = 6,
-      RootCompleted = 5,
-      executionContext = NoContext,
-      workInProgressRoot = null,
-      workInProgress = null,
-      workInProgressRootRenderLanes = 0,
-      NotSuspended = 0,
-      SuspendedOnError = 1,
-      SuspendedOnData = 2,
-      SuspendedOnImmediate = 3,
-      SuspendedOnInstance = 4,
-      SuspendedOnInstanceAndReadyToContinue = 5,
-      SuspendedOnDeprecatedThrowPromise = 6,
-      SuspendedAndReadyToContinue = 7,
-      SuspendedOnHydration = 8,
-      SuspendedOnAction = 9,
-      workInProgressSuspendedReason = NotSuspended,
-      workInProgressThrownValue = null,
-      workInProgressRootDidSkipSuspendedSiblings = !1,
-      workInProgressRootIsPrerendering = !1,
-      workInProgressRootDidAttachPingListener = !1,
-      entangledRenderLanes = 0,
-      workInProgressRootExitStatus = RootInProgress,
-      workInProgressRootSkippedLanes = 0,
-      workInProgressRootInterleavedUpdatedLanes = 0,
-      workInProgressRootPingedLanes = 0,
-      workInProgressDeferredLane = 0,
-      workInProgressSuspendedRetryLanes = 0,
-      workInProgressRootConcurrentErrors = null,
-      workInProgressRootRecoverableErrors = null,
-      workInProgressRootDidIncludeRecursiveRenderUpdate = !1,
-      globalMostRecentFallbackTime = 0,
-      globalMostRecentTransitionTime = 0,
-      FALLBACK_THROTTLE_MS = 300,
-      workInProgressRootRenderTargetTime = Infinity,
-      RENDER_TIMEOUT_MS = 500,
-      workInProgressTransitions = null,
-      workInProgressUpdateTask = null,
-      legacyErrorBoundariesThatAlreadyFailed = null,
-      IMMEDIATE_COMMIT = 0,
-      ABORTED_VIEW_TRANSITION_COMMIT = 1,
-      DELAYED_PASSIVE_COMMIT = 2,
-      ANIMATION_STARTED_COMMIT = 3,
-      NO_PENDING_EFFECTS = 0,
-      PENDING_MUTATION_PHASE = 1,
-      PENDING_LAYOUT_PHASE = 2,
-      PENDING_AFTER_MUTATION_PHASE = 3,
-      PENDING_SPAWNED_WORK = 4,
-      PENDING_PASSIVE_PHASE = 5,
-      pendingEffectsStatus = 0,
-      pendingEffectsRoot = null,
-      pendingFinishedWork = null,
-      pendingEffectsLanes = 0,
-      pendingEffectsRemainingLanes = 0,
-      pendingEffectsRenderEndTime = -0,
-      pendingPassiveTransitions = null,
-      pendingRecoverableErrors = null,
-      pendingSuspendedCommitReason = null,
-      pendingDelayedCommitReason = IMMEDIATE_COMMIT,
-      pendingSuspendedViewTransitionReason = null,
-      NESTED_UPDATE_LIMIT = 50,
-      nestedUpdateCount = 0,
-      rootWithNestedUpdates = null,
-      isFlushingPassiveEffects = !1,
-      didScheduleUpdateDuringPassiveEffects = !1,
-      NESTED_PASSIVE_UPDATE_LIMIT = 50,
-      nestedPassiveUpdateCount = 0,
-      rootWithPassiveNestedUpdates = null,
-      isRunningInsertionEffect = !1,
-      didWarnStateUpdateForNotYetMountedComponent = null,
-      didWarnAboutUpdateInRender = !1;
-    var didWarnAboutUpdateInRenderForAnotherComponent = new Set();
-    var fakeActCallbackNode$1 = {},
-      firstScheduledRoot = null,
-      lastScheduledRoot = null,
-      didScheduleMicrotask = !1,
-      didScheduleMicrotask_act = !1,
-      mightHavePendingSyncWork = !1,
-      isFlushingWork = !1,
-      currentEventTransitionLane = 0,
-      fakeActCallbackNode = {};
-    (function () {
-      for (var i = 0; i < simpleEventPluginEvents.length; i++) {
-        var eventName = simpleEventPluginEvents[i],
-          domEventName = eventName.toLowerCase();
-        eventName = eventName[0].toUpperCase() + eventName.slice(1);
-        registerSimpleEvent(domEventName, "on" + eventName);
-      }
-      registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
-      registerSimpleEvent(ANIMATION_ITERATION, "onAnimationIteration");
-      registerSimpleEvent(ANIMATION_START, "onAnimationStart");
-      registerSimpleEvent("dblclick", "onDoubleClick");
-      registerSimpleEvent("focusin", "onFocus");
-      registerSimpleEvent("focusout", "onBlur");
-      registerSimpleEvent(TRANSITION_RUN, "onTransitionRun");
-      registerSimpleEvent(TRANSITION_START, "onTransitionStart");
-      registerSimpleEvent(TRANSITION_CANCEL, "onTransitionCancel");
-      registerSimpleEvent(TRANSITION_END, "onTransitionEnd");
-    })();
-    registerDirectEvent("onMouseEnter", ["mouseout", "mouseover"]);
-    registerDirectEvent("onMouseLeave", ["mouseout", "mouseover"]);
-    registerDirectEvent("onPointerEnter", ["pointerout", "pointerover"]);
-    registerDirectEvent("onPointerLeave", ["pointerout", "pointerover"]);
-    registerTwoPhaseEvent(
-      "onChange",
-      "change click focusin focusout input keydown keyup selectionchange".split(
-        " "
-      )
-    );
-    registerTwoPhaseEvent(
-      "onSelect",
-      "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(
-        " "
-      )
-    );
-    registerTwoPhaseEvent("onBeforeInput", [
-      "compositionend",
-      "keypress",
-      "textInput",
-      "paste"
-    ]);
-    registerTwoPhaseEvent(
-      "onCompositionEnd",
-      "compositionend focusout keydown keypress keyup mousedown".split(" ")
-    );
-    registerTwoPhaseEvent(
-      "onCompositionStart",
-      "compositionstart focusout keydown keypress keyup mousedown".split(" ")
-    );
-    registerTwoPhaseEvent(
-      "onCompositionUpdate",
-      "compositionupdate focusout keydown keypress keyup mousedown".split(" ")
-    );
-    var mediaEventTypes =
-        "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
-          " "
-        ),
-      nonDelegatedEvents = new Set(
-        "beforetoggle cancel close invalid load scroll scrollend toggle"
-          .split(" ")
-          .concat(mediaEventTypes)
-      ),
-      listeningMarker = "_reactListening" + Math.random().toString(36).slice(2),
-      didWarnControlledToUncontrolled = !1,
-      didWarnUncontrolledToControlled = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      didWarnPopoverTargetObject = !1;
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var NORMALIZE_NEWLINES_REGEX = /\r\n?/g,
-      NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g,
-      xlinkNamespace = "http://www.w3.org/1999/xlink",
-      xmlNamespace = "http://www.w3.org/XML/1998/namespace",
-      EXPECTED_FORM_ACTION_URL =
-        "javascript:throw new Error('React form unexpectedly submitted.')",
-      SUPPRESS_HYDRATION_WARNING = "suppressHydrationWarning",
-      ACTIVITY_START_DATA = "&",
-      ACTIVITY_END_DATA = "/&",
-      SUSPENSE_START_DATA = "$",
-      SUSPENSE_END_DATA = "/$",
-      SUSPENSE_PENDING_START_DATA = "$?",
-      SUSPENSE_QUEUED_START_DATA = "$~",
-      SUSPENSE_FALLBACK_START_DATA = "$!",
-      PREAMBLE_CONTRIBUTION_HTML = "html",
-      PREAMBLE_CONTRIBUTION_BODY = "body",
-      PREAMBLE_CONTRIBUTION_HEAD = "head",
-      FORM_STATE_IS_MATCHING = "F!",
-      FORM_STATE_IS_NOT_MATCHING = "F",
-      DOCUMENT_READY_STATE_LOADING = "loading",
-      STYLE = "style",
-      HostContextNamespaceNone = 0,
-      HostContextNamespaceSvg = 1,
-      HostContextNamespaceMath = 2,
-      eventsEnabled = null,
-      selectionInformation = null,
-      warnedUnknownTags = { dialog: !0, webview: !0 },
-      currentPopstateTransitionEvent = null,
-      schedulerEvent = void 0,
-      scheduleTimeout = "function" === typeof setTimeout ? setTimeout : void 0,
-      cancelTimeout =
-        "function" === typeof clearTimeout ? clearTimeout : void 0,
-      noTimeout = -1,
-      localPromise = "function" === typeof Promise ? Promise : void 0,
-      scheduleMicrotask =
-        "function" === typeof queueMicrotask
-          ? queueMicrotask
-          : "undefined" !== typeof localPromise
-            ? function (callback) {
-                return localPromise
-                  .resolve(null)
-                  .then(callback)
-                  .catch(handleErrorInNextTick);
-              }
-            : scheduleTimeout,
-      previousHydratableOnEnteringScopedSingleton = null,
-      NotLoaded = 0,
-      Loaded = 1,
-      Errored = 2,
-      Settled = 3,
-      Inserted = 4,
-      preloadPropsMap = new Map(),
-      preconnectsSet = new Set(),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: function () {
-        var previousWasRendering = previousDispatcher.f(),
-          wasRendering = flushSyncWork$1();
-        return previousWasRendering || wasRendering;
-      },
-      r: function (form) {
-        var formInst = getInstanceFromNode(form);
-        null !== formInst && 5 === formInst.tag && "form" === formInst.type
-          ? requestFormReset$2(formInst)
-          : previousDispatcher.r(form);
-      },
-      D: function (href) {
-        previousDispatcher.D(href);
-        preconnectAs("dns-prefetch", href, null);
-      },
-      C: function (href, crossOrigin) {
-        previousDispatcher.C(href, crossOrigin);
-        preconnectAs("preconnect", href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        previousDispatcher.L(href, as, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href && as) {
-          var preloadSelector =
-            'link[rel="preload"][as="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-            '"]';
-          "image" === as
-            ? options && options.imageSrcSet
-              ? ((preloadSelector +=
-                  '[imagesrcset="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(
-                    options.imageSrcSet
-                  ) +
-                  '"]'),
-                "string" === typeof options.imageSizes &&
-                  (preloadSelector +=
-                    '[imagesizes="' +
-                    escapeSelectorAttributeValueInsideDoubleQuotes(
-                      options.imageSizes
-                    ) +
-                    '"]'))
-              : (preloadSelector +=
-                  '[href="' +
-                  escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-                  '"]')
-            : (preloadSelector +=
-                '[href="' +
-                escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-                '"]');
-          var key = preloadSelector;
-          switch (as) {
-            case "style":
-              key = getStyleKey(href);
-              break;
-            case "script":
-              key = getScriptKey(href);
-          }
-          preloadPropsMap.has(key) ||
-            ((href = assign(
-              {
-                rel: "preload",
-                href:
-                  "image" === as && options && options.imageSrcSet
-                    ? void 0
-                    : href,
-                as: as
-              },
-              options
-            )),
-            preloadPropsMap.set(key, href),
-            null !== ownerDocument.querySelector(preloadSelector) ||
-              ("style" === as &&
-                ownerDocument.querySelector(
-                  getStylesheetSelectorFromKey(key)
-                )) ||
-              ("script" === as &&
-                ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||
-              ((as = ownerDocument.createElement("link")),
-              setInitialProperties(as, "link", href),
-              markNodeAsHoistable(as),
-              ownerDocument.head.appendChild(as)));
-        }
-      },
-      m: function (href, options) {
-        previousDispatcher.m(href, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href) {
-          var as =
-              options && "string" === typeof options.as ? options.as : "script",
-            preloadSelector =
-              'link[rel="modulepreload"][as="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-              '"][href="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-              '"]',
-            key = preloadSelector;
-          switch (as) {
-            case "audioworklet":
-            case "paintworklet":
-            case "serviceworker":
-            case "sharedworker":
-            case "worker":
-            case "script":
-              key = getScriptKey(href);
-          }
-          if (
-            !preloadPropsMap.has(key) &&
-            ((href = assign({ rel: "modulepreload", href: href }, options)),
-            preloadPropsMap.set(key, href),
-            null === ownerDocument.querySelector(preloadSelector))
-          ) {
-            switch (as) {
-              case "audioworklet":
-              case "paintworklet":
-              case "serviceworker":
-              case "sharedworker":
-              case "worker":
-              case "script":
-                if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))
-                  return;
-            }
-            as = ownerDocument.createElement("link");
-            setInitialProperties(as, "link", href);
-            markNodeAsHoistable(as);
-            ownerDocument.head.appendChild(as);
-          }
-        }
-      },
-      X: function (src, options) {
-        previousDispatcher.X(src, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && src) {
-          var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-            key = getScriptKey(src),
-            resource = scripts.get(key);
-          resource ||
-            ((resource = ownerDocument.querySelector(
-              getScriptSelectorFromKey(key)
-            )),
-            resource ||
-              ((src = assign({ src: src, async: !0 }, options)),
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForScript(src, options),
-              (resource = ownerDocument.createElement("script")),
-              markNodeAsHoistable(resource),
-              setInitialProperties(resource, "link", src),
-              ownerDocument.head.appendChild(resource)),
-            (resource = {
-              type: "script",
-              instance: resource,
-              count: 1,
-              state: null
-            }),
-            scripts.set(key, resource));
-        }
-      },
-      S: function (href, precedence, options) {
-        previousDispatcher.S(href, precedence, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && href) {
-          var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,
-            key = getStyleKey(href);
-          precedence = precedence || "default";
-          var resource = styles.get(key);
-          if (!resource) {
-            var state = { loading: NotLoaded, preload: null };
-            if (
-              (resource = ownerDocument.querySelector(
-                getStylesheetSelectorFromKey(key)
-              ))
-            )
-              state.loading = Loaded | Inserted;
-            else {
-              href = assign(
-                {
-                  rel: "stylesheet",
-                  href: href,
-                  "data-precedence": precedence
-                },
-                options
-              );
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForStylesheet(href, options);
-              var link = (resource = ownerDocument.createElement("link"));
-              markNodeAsHoistable(link);
-              setInitialProperties(link, "link", href);
-              link._p = new Promise(function (resolve, reject) {
-                link.onload = resolve;
-                link.onerror = reject;
-              });
-              link.addEventListener("load", function () {
-                state.loading |= Loaded;
-              });
-              link.addEventListener("error", function () {
-                state.loading |= Errored;
-              });
-              state.loading |= Inserted;
-              insertStylesheet(resource, precedence, ownerDocument);
-            }
-            resource = {
-              type: "stylesheet",
-              instance: resource,
-              count: 1,
-              state: state
-            };
-            styles.set(key, resource);
-          }
-        }
-      },
-      M: function (src, options) {
-        previousDispatcher.M(src, options);
-        var ownerDocument = globalDocument;
-        if (ownerDocument && src) {
-          var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-            key = getScriptKey(src),
-            resource = scripts.get(key);
-          resource ||
-            ((resource = ownerDocument.querySelector(
-              getScriptSelectorFromKey(key)
-            )),
-            resource ||
-              ((src = assign({ src: src, async: !0, type: "module" }, options)),
-              (options = preloadPropsMap.get(key)) &&
-                adoptPreloadPropsForScript(src, options),
-              (resource = ownerDocument.createElement("script")),
-              markNodeAsHoistable(resource),
-              setInitialProperties(resource, "link", src),
-              ownerDocument.head.appendChild(resource)),
-            (resource = {
-              type: "script",
-              instance: resource,
-              count: 1,
-              state: null
-            }),
-            scripts.set(key, resource));
-        }
-      }
-    };
-    var globalDocument = "undefined" === typeof document ? null : document,
-      tagCaches = null,
-      SUSPENSEY_STYLESHEET_TIMEOUT = 6e4,
-      SUSPENSEY_IMAGE_TIMEOUT = 800,
-      SUSPENSEY_IMAGE_TIME_ESTIMATE = 500,
-      estimatedBytesWithinLimit = 0,
-      LAST_PRECEDENCE = null,
-      precedencesByRoot = null,
-      NotPendingTransition = NotPending,
-      HostTransitionContext = {
-        $$typeof: REACT_CONTEXT_TYPE,
-        Provider: null,
-        Consumer: null,
-        _currentValue: NotPendingTransition,
-        _currentValue2: NotPendingTransition,
-        _threadCount: 0
-      },
-      badgeFormat = "%c%s%c",
-      badgeStyle =
-        "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-      resetStyle = "",
-      pad = " ",
-      bind = Function.prototype.bind;
-    var didWarnAboutNestedUpdates = !1;
-    var overrideHookState = null,
-      overrideHookStateDeletePath = null,
-      overrideHookStateRenamePath = null,
-      overrideProps = null,
-      overridePropsDeletePath = null,
-      overridePropsRenamePath = null,
-      scheduleUpdate = null,
-      scheduleRetry = null,
-      setErrorHandler = null,
-      setSuspenseHandler = null;
-    overrideHookState = function (fiber, id, path, value) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((path = copyWithSetImpl(id.memoizedState, path, 0, value)),
-        (id.memoizedState = path),
-        (id.baseState = path),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (path = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== path && scheduleUpdateOnFiber(path, fiber, 2));
-    };
-    overrideHookStateDeletePath = function (fiber, id, path) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((path = copyWithDeleteImpl(id.memoizedState, path, 0)),
-        (id.memoizedState = path),
-        (id.baseState = path),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (path = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== path && scheduleUpdateOnFiber(path, fiber, 2));
-    };
-    overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {
-      id = findHook(fiber, id);
-      null !== id &&
-        ((oldPath = copyWithRename(id.memoizedState, oldPath, newPath)),
-        (id.memoizedState = oldPath),
-        (id.baseState = oldPath),
-        (fiber.memoizedProps = assign({}, fiber.memoizedProps)),
-        (oldPath = enqueueConcurrentRenderForLane(fiber, 2)),
-        null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2));
-    };
-    overrideProps = function (fiber, path, value) {
-      fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path, 0, value);
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      path = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== path && scheduleUpdateOnFiber(path, fiber, 2);
-    };
-    overridePropsDeletePath = function (fiber, path) {
-      fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path, 0);
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      path = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== path && scheduleUpdateOnFiber(path, fiber, 2);
-    };
-    overridePropsRenamePath = function (fiber, oldPath, newPath) {
-      fiber.pendingProps = copyWithRename(
-        fiber.memoizedProps,
-        oldPath,
-        newPath
-      );
-      fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
-      oldPath = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2);
-    };
-    scheduleUpdate = function (fiber) {
-      var root = enqueueConcurrentRenderForLane(fiber, 2);
-      null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-    };
-    scheduleRetry = function (fiber) {
-      var lane = claimNextRetryLane(),
-        root = enqueueConcurrentRenderForLane(fiber, lane);
-      null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-    };
-    setErrorHandler = function (newShouldErrorImpl) {
-      shouldErrorImpl = newShouldErrorImpl;
-    };
-    setSuspenseHandler = function (newShouldSuspendImpl) {
-      shouldSuspendImpl = newShouldSuspendImpl;
-    };
-    var _enabled = !0,
-      return_targetInst = null,
-      hasScheduledReplayAttempt = !1,
-      queuedFocus = null,
-      queuedDrag = null,
-      queuedMouse = null,
-      queuedPointers = new Map(),
-      queuedPointerCaptures = new Map(),
-      queuedExplicitHydrationTargets = [],
-      discreteReplayableEvents =
-        "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(
-          " "
-        ),
-      lastScheduledReplayQueue = null;
-    ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =
-      function (children) {
-        var root = this._internalRoot;
-        if (null === root) throw Error("Cannot update an unmounted root.");
-        var args = arguments;
-        "function" === typeof args[1]
-          ? console.error(
-              "does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect()."
-            )
-          : isValidContainer(args[1])
-            ? console.error(
-                "You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root."
-              )
-            : "undefined" !== typeof args[1] &&
-              console.error(
-                "You passed a second argument to root.render(...) but it only accepts one argument."
-              );
-        args = children;
-        var current = root.current,
-          lane = requestUpdateLane(current);
-        updateContainerImpl(current, lane, args, root, null, null);
-      };
-    ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =
-      function () {
-        var args = arguments;
-        "function" === typeof args[0] &&
-          console.error(
-            "does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect()."
-          );
-        args = this._internalRoot;
-        if (null !== args) {
-          this._internalRoot = null;
-          var container = args.containerInfo;
-          (executionContext & (RenderContext | CommitContext)) !== NoContext &&
-            console.error(
-              "Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition."
-            );
-          updateContainerImpl(args.current, 2, null, args, null, null);
-          flushSyncWork$1();
-          container[internalContainerInstanceKey] = null;
-        }
-      };
-    ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (
-      target
-    ) {
-      if (target) {
-        var updatePriority = resolveUpdatePriority();
-        target = { blockedOn: null, target: target, priority: updatePriority };
-        for (
-          var i = 0;
-          i < queuedExplicitHydrationTargets.length &&
-          0 !== updatePriority &&
-          updatePriority < queuedExplicitHydrationTargets[i].priority;
-          i++
-        );
-        queuedExplicitHydrationTargets.splice(i, 0, target);
-        0 === i && attemptExplicitHydrationTarget(target);
-      }
-    };
-    (function () {
-      var isomorphicReactPackageVersion = React.version;
-      if ("19.2.3" !== isomorphicReactPackageVersion)
-        throw Error(
-          'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-            (isomorphicReactPackageVersion +
-              "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-        );
-    })();
-    ("function" === typeof Map &&
-      null != Map.prototype &&
-      "function" === typeof Map.prototype.forEach &&
-      "function" === typeof Set &&
-      null != Set.prototype &&
-      "function" === typeof Set.prototype.clear &&
-      "function" === typeof Set.prototype.forEach) ||
-      console.error(
-        "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills"
-      );
-    ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
-      var fiber = componentOrElement._reactInternals;
-      if (void 0 === fiber) {
-        if ("function" === typeof componentOrElement.render)
-          throw Error("Unable to find node on an unmounted component.");
-        componentOrElement = Object.keys(componentOrElement).join(",");
-        throw Error(
-          "Argument appears to not be a ReactComponent. Keys: " +
-            componentOrElement
-        );
-      }
-      componentOrElement = findCurrentFiberUsingSlowPath(fiber);
-      componentOrElement =
-        null !== componentOrElement
-          ? findCurrentHostFiberImpl(componentOrElement)
-          : null;
-      componentOrElement =
-        null === componentOrElement ? null : componentOrElement.stateNode;
-      return componentOrElement;
-    };
-    if (
-      !(function () {
-        var internals = {
-          bundleType: 1,
-          version: "19.2.3",
-          rendererPackageName: "react-dom",
-          currentDispatcherRef: ReactSharedInternals,
-          reconcilerVersion: "19.2.3"
-        };
-        internals.overrideHookState = overrideHookState;
-        internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
-        internals.overrideHookStateRenamePath = overrideHookStateRenamePath;
-        internals.overrideProps = overrideProps;
-        internals.overridePropsDeletePath = overridePropsDeletePath;
-        internals.overridePropsRenamePath = overridePropsRenamePath;
-        internals.scheduleUpdate = scheduleUpdate;
-        internals.scheduleRetry = scheduleRetry;
-        internals.setErrorHandler = setErrorHandler;
-        internals.setSuspenseHandler = setSuspenseHandler;
-        internals.scheduleRefresh = scheduleRefresh;
-        internals.scheduleRoot = scheduleRoot;
-        internals.setRefreshHandler = setRefreshHandler;
-        internals.getCurrentFiber = getCurrentFiberForDevTools;
-        return injectInternals(internals);
-      })() &&
-      canUseDOM &&
-      window.top === window.self &&
-      ((-1 < navigator.userAgent.indexOf("Chrome") &&
-        -1 === navigator.userAgent.indexOf("Edge")) ||
-        -1 < navigator.userAgent.indexOf("Firefox"))
-    ) {
-      var protocol = window.location.protocol;
-      /^(https?|file):$/.test(protocol) &&
-        console.info(
-          "%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools" +
-            ("file:" === protocol
-              ? "\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq"
-              : ""),
-          "font-weight:bold"
-        );
-    }
-    var Internals = {
-      d: {
-        f: noop$1,
-        r: function () {
-          throw Error(
-            "Invalid form element. requestFormReset must be passed a form that was rendered by React."
-          );
-        },
-        D: noop$1,
-        C: noop$1,
-        L: noop$1,
-        m: noop$1,
-        X: noop$1,
-        S: noop$1,
-        M: noop$1
-      },
-      p: 0,
-      findDOMNode: null
-    };
-    ("function" === typeof Map &&
-      null != Map.prototype &&
-      "function" === typeof Map.prototype.forEach &&
-      "function" === typeof Set &&
-      null != Set.prototype &&
-      "function" === typeof Set.prototype.clear &&
-      "function" === typeof Set.prototype.forEach) ||
-      console.error(
-        "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
-      );
-    exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-      Internals;
-    exports.createPortal = function (children, container) {
-      var key =
-        2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
-      if (!isValidContainer(container))
-        throw Error("Target container is not a DOM element.");
-      return createPortal$1(children, container, null, key);
-    };
-    exports.createRoot = function (container, options) {
-      if (!isValidContainer(container))
-        throw Error("Target container is not a DOM element.");
-      warnIfReactDOMContainerInDEV(container);
-      var isStrictMode = !1,
-        identifierPrefix = "",
-        onUncaughtError = defaultOnUncaughtError,
-        onCaughtError = defaultOnCaughtError,
-        onRecoverableError = defaultOnRecoverableError;
-      null !== options &&
-        void 0 !== options &&
-        (options.hydrate
-          ? console.warn(
-              "hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead."
-            )
-          : "object" === typeof options &&
-            null !== options &&
-            options.$$typeof === REACT_ELEMENT_TYPE &&
-            console.error(
-              "You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\n\n  let root = createRoot(domContainer);\n  root.render(<App />);"
-            ),
-        !0 === options.unstable_strictMode && (isStrictMode = !0),
-        void 0 !== options.identifierPrefix &&
-          (identifierPrefix = options.identifierPrefix),
-        void 0 !== options.onUncaughtError &&
-          (onUncaughtError = options.onUncaughtError),
-        void 0 !== options.onCaughtError &&
-          (onCaughtError = options.onCaughtError),
-        void 0 !== options.onRecoverableError &&
-          (onRecoverableError = options.onRecoverableError));
-      options = createFiberRoot(
-        container,
-        1,
-        !1,
-        null,
-        null,
-        isStrictMode,
-        identifierPrefix,
-        null,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        defaultOnDefaultTransitionIndicator
-      );
-      container[internalContainerInstanceKey] = options.current;
-      listenToAllSupportedEvents(container);
-      return new ReactDOMRoot(options);
-    };
-    exports.flushSync = function (fn) {
-      var previousTransition = ReactSharedInternals.T,
-        previousUpdatePriority = ReactDOMSharedInternals.p;
-      try {
-        if (
-          ((ReactSharedInternals.T = null),
-          (ReactDOMSharedInternals.p = DiscreteEventPriority),
-          fn)
-        )
-          return fn();
-      } finally {
-        (ReactSharedInternals.T = previousTransition),
-          (ReactDOMSharedInternals.p = previousUpdatePriority),
-          ReactDOMSharedInternals.d.f() &&
-            console.error(
-              "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."
-            );
-      }
-    };
-    exports.hydrateRoot = function (container, initialChildren, options) {
-      if (!isValidContainer(container))
-        throw Error("Target container is not a DOM element.");
-      warnIfReactDOMContainerInDEV(container);
-      void 0 === initialChildren &&
-        console.error(
-          "Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)"
-        );
-      var isStrictMode = !1,
-        identifierPrefix = "",
-        onUncaughtError = defaultOnUncaughtError,
-        onCaughtError = defaultOnCaughtError,
-        onRecoverableError = defaultOnRecoverableError,
-        formState = null;
-      null !== options &&
-        void 0 !== options &&
-        (!0 === options.unstable_strictMode && (isStrictMode = !0),
-        void 0 !== options.identifierPrefix &&
-          (identifierPrefix = options.identifierPrefix),
-        void 0 !== options.onUncaughtError &&
-          (onUncaughtError = options.onUncaughtError),
-        void 0 !== options.onCaughtError &&
-          (onCaughtError = options.onCaughtError),
-        void 0 !== options.onRecoverableError &&
-          (onRecoverableError = options.onRecoverableError),
-        void 0 !== options.formState && (formState = options.formState));
-      initialChildren = createFiberRoot(
-        container,
-        1,
-        !0,
-        initialChildren,
-        null != options ? options : null,
-        isStrictMode,
-        identifierPrefix,
-        formState,
-        onUncaughtError,
-        onCaughtError,
-        onRecoverableError,
-        defaultOnDefaultTransitionIndicator
-      );
-      initialChildren.context = getContextForSubtree(null);
-      options = initialChildren.current;
-      isStrictMode = requestUpdateLane(options);
-      isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);
-      identifierPrefix = createUpdate(isStrictMode);
-      identifierPrefix.callback = null;
-      enqueueUpdate(options, identifierPrefix, isStrictMode);
-      startUpdateTimerByLane(isStrictMode, "hydrateRoot()", null);
-      options = isStrictMode;
-      initialChildren.current.lanes = options;
-      markRootUpdated$1(initialChildren, options);
-      ensureRootIsScheduled(initialChildren);
-      container[internalContainerInstanceKey] = initialChildren.current;
-      listenToAllSupportedEvents(container);
-      return new ReactDOMHydrationRoot(initialChildren);
-    };
-    exports.preconnect = function (href, options) {
-      "string" === typeof href && href
-        ? null != options && "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : null != options &&
-            "string" !== typeof options.crossOrigin &&
-            console.error(
-              "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
-              getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
-            )
-        : console.error(
-            "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      "string" === typeof href &&
-        (options
-          ? ((options = options.crossOrigin),
-            (options =
-              "string" === typeof options
-                ? "use-credentials" === options
-                  ? options
-                  : ""
-                : void 0))
-          : (options = null),
-        ReactDOMSharedInternals.d.C(href, options));
-    };
-    exports.prefetchDNS = function (href) {
-      if ("string" !== typeof href || !href)
-        console.error(
-          "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-          getValueDescriptorExpectingObjectForWarning(href)
-        );
-      else if (1 < arguments.length) {
-        var options = arguments[1];
-        "object" === typeof options && options.hasOwnProperty("crossOrigin")
-          ? console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            );
-      }
-      "string" === typeof href && ReactDOMSharedInternals.d.D(href);
-    };
-    exports.preinit = function (href, options) {
-      "string" === typeof href && href
-        ? null == options || "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : "style" !== options.as &&
-            "script" !== options.as &&
-            console.error(
-              'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
-              getValueDescriptorExpectingEnumForWarning(options.as)
-            )
-        : console.error(
-            "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      if (
-        "string" === typeof href &&
-        options &&
-        "string" === typeof options.as
-      ) {
-        var as = options.as,
-          crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-          integrity =
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          fetchPriority =
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0;
-        "style" === as
-          ? ReactDOMSharedInternals.d.S(
-              href,
-              "string" === typeof options.precedence
-                ? options.precedence
-                : void 0,
-              {
-                crossOrigin: crossOrigin,
-                integrity: integrity,
-                fetchPriority: fetchPriority
-              }
-            )
-          : "script" === as &&
-            ReactDOMSharedInternals.d.X(href, {
-              crossOrigin: crossOrigin,
-              integrity: integrity,
-              fetchPriority: fetchPriority,
-              nonce: "string" === typeof options.nonce ? options.nonce : void 0
-            });
-      }
-    };
-    exports.preinitModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "script" !== options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingEnumForWarning(options.as) +
-            ".");
-      if (encountered)
-        console.error(
-          "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
-          encountered
-        );
-      else
-        switch (
-          ((encountered =
-            options && "string" === typeof options.as ? options.as : "script"),
-          encountered)
-        ) {
-          case "script":
-            break;
-          default:
-            (encountered =
-              getValueDescriptorExpectingEnumForWarning(encountered)),
-              console.error(
-                'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
-                encountered,
-                href
-              );
-        }
-      if ("string" === typeof href)
-        if ("object" === typeof options && null !== options) {
-          if (null == options.as || "script" === options.as)
-            (encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-              ReactDOMSharedInternals.d.M(href, {
-                crossOrigin: encountered,
-                integrity:
-                  "string" === typeof options.integrity
-                    ? options.integrity
-                    : void 0,
-                nonce:
-                  "string" === typeof options.nonce ? options.nonce : void 0
-              });
-        } else null == options && ReactDOMSharedInternals.d.M(href);
-    };
-    exports.preload = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      null == options || "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : ("string" === typeof options.as && options.as) ||
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
-          encountered
-        );
-      if (
-        "string" === typeof href &&
-        "object" === typeof options &&
-        null !== options &&
-        "string" === typeof options.as
-      ) {
-        encountered = options.as;
-        var crossOrigin = getCrossOriginStringAs(
-          encountered,
-          options.crossOrigin
-        );
-        ReactDOMSharedInternals.d.L(href, encountered, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-          type: "string" === typeof options.type ? options.type : void 0,
-          fetchPriority:
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0,
-          referrerPolicy:
-            "string" === typeof options.referrerPolicy
-              ? options.referrerPolicy
-              : void 0,
-          imageSrcSet:
-            "string" === typeof options.imageSrcSet
-              ? options.imageSrcSet
-              : void 0,
-          imageSizes:
-            "string" === typeof options.imageSizes
-              ? options.imageSizes
-              : void 0,
-          media: "string" === typeof options.media ? options.media : void 0
-        });
-      }
-    };
-    exports.preloadModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "string" !== typeof options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
-          encountered
-        );
-      "string" === typeof href &&
-        (options
-          ? ((encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-            ReactDOMSharedInternals.d.m(href, {
-              as:
-                "string" === typeof options.as && "script" !== options.as
-                  ? options.as
-                  : void 0,
-              crossOrigin: encountered,
-              integrity:
-                "string" === typeof options.integrity
-                  ? options.integrity
-                  : void 0
-            }))
-          : ReactDOMSharedInternals.d.m(href));
-    };
-    exports.requestFormReset = function (form) {
-      ReactDOMSharedInternals.d.r(form);
-    };
-    exports.unstable_batchedUpdates = function (fn, a) {
-      return fn(a);
-    };
-    exports.useFormState = function (action, initialState, permalink) {
-      return resolveDispatcher().useFormState(action, initialState, permalink);
-    };
-    exports.useFormStatus = function () {
-      return resolveDispatcher().useHostTransitionStatus();
-    };
-    exports.version = "19.2.3";
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/react-dom/cjs/react-dom-profiling.profiling.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-profiling.profiling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18068 +1,0 @@
-/**
- * @license React
- * react-dom-profiling.profiling.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.
- */
-
-/*
- Modernizr 3.0.0pre (Custom Build) | MIT
-*/
-"use strict";
-"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-  "function" ===
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-var Scheduler = require("scheduler"),
-  React = require("react"),
-  ReactDOM = require("react-dom");
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-function isValidContainer(node) {
-  return !(
-    !node ||
-    (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)
-  );
-}
-function getNearestMountedFiber(fiber) {
-  var node = fiber,
-    nearestMounted = fiber;
-  if (fiber.alternate) for (; node.return; ) node = node.return;
-  else {
-    fiber = node;
-    do
-      (node = fiber),
-        0 !== (node.flags & 4098) && (nearestMounted = node.return),
-        (fiber = node.return);
-    while (fiber);
-  }
-  return 3 === node.tag ? nearestMounted : null;
-}
-function getSuspenseInstanceFromFiber(fiber) {
-  if (13 === fiber.tag) {
-    var suspenseState = fiber.memoizedState;
-    null === suspenseState &&
-      ((fiber = fiber.alternate),
-      null !== fiber && (suspenseState = fiber.memoizedState));
-    if (null !== suspenseState) return suspenseState.dehydrated;
-  }
-  return null;
-}
-function getActivityInstanceFromFiber(fiber) {
-  if (31 === fiber.tag) {
-    var activityState = fiber.memoizedState;
-    null === activityState &&
-      ((fiber = fiber.alternate),
-      null !== fiber && (activityState = fiber.memoizedState));
-    if (null !== activityState) return activityState.dehydrated;
-  }
-  return null;
-}
-function assertIsMounted(fiber) {
-  if (getNearestMountedFiber(fiber) !== fiber)
-    throw Error(formatProdErrorMessage(188));
-}
-function findCurrentFiberUsingSlowPath(fiber) {
-  var alternate = fiber.alternate;
-  if (!alternate) {
-    alternate = getNearestMountedFiber(fiber);
-    if (null === alternate) throw Error(formatProdErrorMessage(188));
-    return alternate !== fiber ? null : fiber;
-  }
-  for (var a = fiber, b = alternate; ; ) {
-    var parentA = a.return;
-    if (null === parentA) break;
-    var parentB = parentA.alternate;
-    if (null === parentB) {
-      b = parentA.return;
-      if (null !== b) {
-        a = b;
-        continue;
-      }
-      break;
-    }
-    if (parentA.child === parentB.child) {
-      for (parentB = parentA.child; parentB; ) {
-        if (parentB === a) return assertIsMounted(parentA), fiber;
-        if (parentB === b) return assertIsMounted(parentA), alternate;
-        parentB = parentB.sibling;
-      }
-      throw Error(formatProdErrorMessage(188));
-    }
-    if (a.return !== b.return) (a = parentA), (b = parentB);
-    else {
-      for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {
-        if (child$0 === a) {
-          didFindChild = !0;
-          a = parentA;
-          b = parentB;
-          break;
-        }
-        if (child$0 === b) {
-          didFindChild = !0;
-          b = parentA;
-          a = parentB;
-          break;
-        }
-        child$0 = child$0.sibling;
-      }
-      if (!didFindChild) {
-        for (child$0 = parentB.child; child$0; ) {
-          if (child$0 === a) {
-            didFindChild = !0;
-            a = parentB;
-            b = parentA;
-            break;
-          }
-          if (child$0 === b) {
-            didFindChild = !0;
-            b = parentB;
-            a = parentA;
-            break;
-          }
-          child$0 = child$0.sibling;
-        }
-        if (!didFindChild) throw Error(formatProdErrorMessage(189));
-      }
-    }
-    if (a.alternate !== b) throw Error(formatProdErrorMessage(190));
-  }
-  if (3 !== a.tag) throw Error(formatProdErrorMessage(188));
-  return a.stateNode.current === a ? fiber : alternate;
-}
-function findCurrentHostFiberImpl(node) {
-  var tag = node.tag;
-  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;
-  for (node = node.child; null !== node; ) {
-    tag = findCurrentHostFiberImpl(node);
-    if (null !== tag) return tag;
-    node = node.sibling;
-  }
-  return null;
-}
-var assign = Object.assign,
-  REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy");
-Symbol.for("react.scope");
-var REACT_ACTIVITY_TYPE = Symbol.for("react.activity");
-Symbol.for("react.legacy_hidden");
-Symbol.for("react.tracing_marker");
-var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel");
-Symbol.for("react.view_transition");
-var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-function getComponentNameFromFiber(fiber) {
-  var type = fiber.type;
-  switch (fiber.tag) {
-    case 31:
-      return "Activity";
-    case 24:
-      return "Cache";
-    case 9:
-      return (type._context.displayName || "Context") + ".Consumer";
-    case 10:
-      return type.displayName || "Context";
-    case 18:
-      return "DehydratedFragment";
-    case 11:
-      return (
-        (fiber = type.render),
-        (fiber = fiber.displayName || fiber.name || ""),
-        type.displayName ||
-          ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef")
-      );
-    case 7:
-      return "Fragment";
-    case 26:
-    case 27:
-    case 5:
-      return type;
-    case 4:
-      return "Portal";
-    case 3:
-      return "Root";
-    case 6:
-      return "Text";
-    case 16:
-      return getComponentNameFromType(type);
-    case 8:
-      return type === REACT_STRICT_MODE_TYPE ? "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 14:
-    case 15:
-      if ("function" === typeof type)
-        return type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-  }
-  return null;
-}
-var isArrayImpl = Array.isArray,
-  ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  valueStack = [],
-  index = -1;
-function createCursor(defaultValue) {
-  return { current: defaultValue };
-}
-function pop(cursor) {
-  0 > index ||
-    ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);
-}
-function push(cursor, value) {
-  index++;
-  valueStack[index] = cursor.current;
-  cursor.current = value;
-}
-var contextStackCursor = createCursor(null),
-  contextFiberStackCursor = createCursor(null),
-  rootInstanceStackCursor = createCursor(null),
-  hostTransitionProviderCursor = createCursor(null);
-function pushHostContainer(fiber, nextRootInstance) {
-  push(rootInstanceStackCursor, nextRootInstance);
-  push(contextFiberStackCursor, fiber);
-  push(contextStackCursor, null);
-  switch (nextRootInstance.nodeType) {
-    case 9:
-    case 11:
-      fiber = (fiber = nextRootInstance.documentElement)
-        ? (fiber = fiber.namespaceURI)
-          ? getOwnHostContext(fiber)
-          : 0
-        : 0;
-      break;
-    default:
-      if (
-        ((fiber = nextRootInstance.tagName),
-        (nextRootInstance = nextRootInstance.namespaceURI))
-      )
-        (nextRootInstance = getOwnHostContext(nextRootInstance)),
-          (fiber = getChildHostContextProd(nextRootInstance, fiber));
-      else
-        switch (fiber) {
-          case "svg":
-            fiber = 1;
-            break;
-          case "math":
-            fiber = 2;
-            break;
-          default:
-            fiber = 0;
-        }
-  }
-  pop(contextStackCursor);
-  push(contextStackCursor, fiber);
-}
-function popHostContainer() {
-  pop(contextStackCursor);
-  pop(contextFiberStackCursor);
-  pop(rootInstanceStackCursor);
-}
-function pushHostContext(fiber) {
-  null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);
-  var context = contextStackCursor.current;
-  var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);
-  context !== JSCompiler_inline_result &&
-    (push(contextFiberStackCursor, fiber),
-    push(contextStackCursor, JSCompiler_inline_result));
-}
-function popHostContext(fiber) {
-  contextFiberStackCursor.current === fiber &&
-    (pop(contextStackCursor), pop(contextFiberStackCursor));
-  hostTransitionProviderCursor.current === fiber &&
-    (pop(hostTransitionProviderCursor),
-    (HostTransitionContext._currentValue = sharedNotPendingObject));
-}
-var prefix, suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$1) {
-                control = x$1;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$2) {
-              control = x$2;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeFiber(fiber, childFiber) {
-  switch (fiber.tag) {
-    case 26:
-    case 27:
-    case 5:
-      return describeBuiltInComponentFrame(fiber.type);
-    case 16:
-      return describeBuiltInComponentFrame("Lazy");
-    case 13:
-      return fiber.child !== childFiber && null !== childFiber
-        ? describeBuiltInComponentFrame("Suspense Fallback")
-        : describeBuiltInComponentFrame("Suspense");
-    case 19:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case 0:
-    case 15:
-      return describeNativeComponentFrame(fiber.type, !1);
-    case 11:
-      return describeNativeComponentFrame(fiber.type.render, !1);
-    case 1:
-      return describeNativeComponentFrame(fiber.type, !0);
-    case 31:
-      return describeBuiltInComponentFrame("Activity");
-    default:
-      return "";
-  }
-}
-function getStackByFiberInDevAndProd(workInProgress) {
-  try {
-    var info = "",
-      previous = null;
-    do
-      (info += describeFiber(workInProgress, previous)),
-        (previous = workInProgress),
-        (workInProgress = workInProgress.return);
-    while (workInProgress);
-    return info;
-  } catch (x) {
-    return "\nError generating stack: " + x.message + "\n" + x.stack;
-  }
-}
-var hasOwnProperty = Object.prototype.hasOwnProperty,
-  scheduleCallback$3 = Scheduler.unstable_scheduleCallback,
-  cancelCallback$1 = Scheduler.unstable_cancelCallback,
-  shouldYield = Scheduler.unstable_shouldYield,
-  requestPaint = Scheduler.unstable_requestPaint,
-  now$1 = Scheduler.unstable_now,
-  getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,
-  ImmediatePriority = Scheduler.unstable_ImmediatePriority,
-  UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,
-  NormalPriority$1 = Scheduler.unstable_NormalPriority,
-  LowPriority = Scheduler.unstable_LowPriority,
-  IdlePriority = Scheduler.unstable_IdlePriority,
-  log$1 = Scheduler.log,
-  unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,
-  rendererID = null,
-  injectedHook = null,
-  isDevToolsPresent = "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__;
-function setIsStrictModeForDevtools(newIsStrictMode) {
-  "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);
-  if (injectedHook && "function" === typeof injectedHook.setStrictMode)
-    try {
-      injectedHook.setStrictMode(rendererID, newIsStrictMode);
-    } catch (err) {}
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-var nextTransitionUpdateLane = 256,
-  nextTransitionDeferredLane = 262144,
-  nextRetryLane = 4194304;
-function getHighestPriorityLanes(lanes) {
-  var pendingSyncLanes = lanes & 42;
-  if (0 !== pendingSyncLanes) return pendingSyncLanes;
-  switch (lanes & -lanes) {
-    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:
-      return 64;
-    case 128:
-      return 128;
-    case 256:
-    case 512:
-    case 1024:
-    case 2048:
-    case 4096:
-    case 8192:
-    case 16384:
-    case 32768:
-    case 65536:
-    case 131072:
-      return lanes & 261888;
-    case 262144:
-    case 524288:
-    case 1048576:
-    case 2097152:
-      return lanes & 3932160;
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      return lanes & 62914560;
-    case 67108864:
-      return 67108864;
-    case 134217728:
-      return 134217728;
-    case 268435456:
-      return 268435456;
-    case 536870912:
-      return 536870912;
-    case 1073741824:
-      return 0;
-    default:
-      return lanes;
-  }
-}
-function getNextLanes(root, wipLanes, rootHasPendingCommit) {
-  var pendingLanes = root.pendingLanes;
-  if (0 === pendingLanes) return 0;
-  var nextLanes = 0,
-    suspendedLanes = root.suspendedLanes,
-    pingedLanes = root.pingedLanes;
-  root = root.warmLanes;
-  var nonIdlePendingLanes = pendingLanes & 134217727;
-  0 !== nonIdlePendingLanes
-    ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),
-      0 !== pendingLanes
-        ? (nextLanes = getHighestPriorityLanes(pendingLanes))
-        : ((pingedLanes &= nonIdlePendingLanes),
-          0 !== pingedLanes
-            ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-            : rootHasPendingCommit ||
-              ((rootHasPendingCommit = nonIdlePendingLanes & ~root),
-              0 !== rootHasPendingCommit &&
-                (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))
-    : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),
-      0 !== nonIdlePendingLanes
-        ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
-        : 0 !== pingedLanes
-          ? (nextLanes = getHighestPriorityLanes(pingedLanes))
-          : rootHasPendingCommit ||
-            ((rootHasPendingCommit = pendingLanes & ~root),
-            0 !== rootHasPendingCommit &&
-              (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));
-  return 0 === nextLanes
-    ? 0
-    : 0 !== wipLanes &&
-        wipLanes !== nextLanes &&
-        0 === (wipLanes & suspendedLanes) &&
-        ((suspendedLanes = nextLanes & -nextLanes),
-        (rootHasPendingCommit = wipLanes & -wipLanes),
-        suspendedLanes >= rootHasPendingCommit ||
-          (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))
-      ? wipLanes
-      : nextLanes;
-}
-function checkIfRootIsPrerendering(root, renderLanes) {
-  return (
-    0 ===
-    (root.pendingLanes &
-      ~(root.suspendedLanes & ~root.pingedLanes) &
-      renderLanes)
-  );
-}
-function computeExpirationTime(lane, currentTime) {
-  switch (lane) {
-    case 1:
-    case 2:
-    case 4:
-    case 8:
-    case 64:
-      return currentTime + 250;
-    case 16:
-    case 32:
-    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 currentTime + 5e3;
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      return -1;
-    case 67108864:
-    case 134217728:
-    case 268435456:
-    case 536870912:
-    case 1073741824:
-      return -1;
-    default:
-      return -1;
-  }
-}
-function claimNextRetryLane() {
-  var lane = nextRetryLane;
-  nextRetryLane <<= 1;
-  0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);
-  return lane;
-}
-function createLaneMap(initial) {
-  for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);
-  return laneMap;
-}
-function markRootUpdated$1(root, updateLane) {
-  root.pendingLanes |= updateLane;
-  268435456 !== updateLane &&
-    ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));
-}
-function markRootFinished(
-  root,
-  finishedLanes,
-  remainingLanes,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes
-) {
-  var previouslyPendingLanes = root.pendingLanes;
-  root.pendingLanes = remainingLanes;
-  root.suspendedLanes = 0;
-  root.pingedLanes = 0;
-  root.warmLanes = 0;
-  root.expiredLanes &= remainingLanes;
-  root.entangledLanes &= remainingLanes;
-  root.errorRecoveryDisabledLanes &= remainingLanes;
-  root.shellSuspendCounter = 0;
-  var entanglements = root.entanglements,
-    expirationTimes = root.expirationTimes,
-    hiddenUpdates = root.hiddenUpdates;
-  for (
-    remainingLanes = previouslyPendingLanes & ~remainingLanes;
-    0 < remainingLanes;
-
-  ) {
-    var index$7 = 31 - clz32(remainingLanes),
-      lane = 1 << index$7;
-    entanglements[index$7] = 0;
-    expirationTimes[index$7] = -1;
-    var hiddenUpdatesForLane = hiddenUpdates[index$7];
-    if (null !== hiddenUpdatesForLane)
-      for (
-        hiddenUpdates[index$7] = null, index$7 = 0;
-        index$7 < hiddenUpdatesForLane.length;
-        index$7++
-      ) {
-        var update = hiddenUpdatesForLane[index$7];
-        null !== update && (update.lane &= -536870913);
-      }
-    remainingLanes &= ~lane;
-  }
-  0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
-  0 !== suspendedRetryLanes &&
-    0 === updatedLanes &&
-    0 !== root.tag &&
-    (root.suspendedLanes |=
-      suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
-}
-function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {
-  root.pendingLanes |= spawnedLane;
-  root.suspendedLanes &= ~spawnedLane;
-  var spawnedLaneIndex = 31 - clz32(spawnedLane);
-  root.entangledLanes |= spawnedLane;
-  root.entanglements[spawnedLaneIndex] =
-    root.entanglements[spawnedLaneIndex] |
-    1073741824 |
-    (entangledLanes & 261930);
-}
-function markRootEntangled(root, entangledLanes) {
-  var rootEntangledLanes = (root.entangledLanes |= entangledLanes);
-  for (root = root.entanglements; rootEntangledLanes; ) {
-    var index$8 = 31 - clz32(rootEntangledLanes),
-      lane = 1 << index$8;
-    (lane & entangledLanes) | (root[index$8] & entangledLanes) &&
-      (root[index$8] |= entangledLanes);
-    rootEntangledLanes &= ~lane;
-  }
-}
-function getBumpedLaneForHydration(root, renderLanes) {
-  var renderLane = renderLanes & -renderLanes;
-  renderLane =
-    0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);
-  return 0 !== (renderLane & (root.suspendedLanes | renderLanes))
-    ? 0
-    : renderLane;
-}
-function getBumpedLaneForHydrationByLane(lane) {
-  switch (lane) {
-    case 2:
-      lane = 1;
-      break;
-    case 8:
-      lane = 4;
-      break;
-    case 32:
-      lane = 16;
-      break;
-    case 256:
-    case 512:
-    case 1024:
-    case 2048:
-    case 4096:
-    case 8192:
-    case 16384:
-    case 32768:
-    case 65536:
-    case 131072:
-    case 262144:
-    case 524288:
-    case 1048576:
-    case 2097152:
-    case 4194304:
-    case 8388608:
-    case 16777216:
-    case 33554432:
-      lane = 128;
-      break;
-    case 268435456:
-      lane = 134217728;
-      break;
-    default:
-      lane = 0;
-  }
-  return lane;
-}
-function addFiberToLanesMap(root, fiber, lanes) {
-  if (isDevToolsPresent)
-    for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {
-      var index$10 = 31 - clz32(lanes),
-        lane = 1 << index$10;
-      root[index$10].add(fiber);
-      lanes &= ~lane;
-    }
-}
-function movePendingFibersToMemoized(root, lanes) {
-  if (isDevToolsPresent)
-    for (
-      var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,
-        memoizedUpdaters = root.memoizedUpdaters;
-      0 < lanes;
-
-    ) {
-      var index$11 = 31 - clz32(lanes);
-      root = 1 << index$11;
-      index$11 = pendingUpdatersLaneMap[index$11];
-      0 < index$11.size &&
-        (index$11.forEach(function (fiber) {
-          var alternate = fiber.alternate;
-          (null !== alternate && memoizedUpdaters.has(alternate)) ||
-            memoizedUpdaters.add(fiber);
-        }),
-        index$11.clear());
-      lanes &= ~root;
-    }
-}
-function lanesToEventPriority(lanes) {
-  lanes &= -lanes;
-  return 2 < lanes
-    ? 8 < lanes
-      ? 0 !== (lanes & 134217727)
-        ? 32
-        : 268435456
-      : 8
-    : 2;
-}
-function resolveUpdatePriority() {
-  var updatePriority = ReactDOMSharedInternals.p;
-  if (0 !== updatePriority) return updatePriority;
-  updatePriority = window.event;
-  return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);
-}
-function runWithPriority(priority, fn) {
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    return (ReactDOMSharedInternals.p = priority), fn();
-  } finally {
-    ReactDOMSharedInternals.p = previousPriority;
-  }
-}
-var randomKey = Math.random().toString(36).slice(2),
-  internalInstanceKey = "__reactFiber$" + randomKey,
-  internalPropsKey = "__reactProps$" + randomKey,
-  internalContainerInstanceKey = "__reactContainer$" + randomKey,
-  internalEventHandlersKey = "__reactEvents$" + randomKey,
-  internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
-  internalEventHandlesSetKey = "__reactHandles$" + randomKey,
-  internalRootNodeResourcesKey = "__reactResources$" + randomKey,
-  internalHoistableMarker = "__reactMarker$" + randomKey;
-function detachDeletedInstance(node) {
-  delete node[internalInstanceKey];
-  delete node[internalPropsKey];
-  delete node[internalEventHandlersKey];
-  delete node[internalEventHandlerListenersKey];
-  delete node[internalEventHandlesSetKey];
-}
-function getClosestInstanceFromNode(targetNode) {
-  var targetInst = targetNode[internalInstanceKey];
-  if (targetInst) return targetInst;
-  for (var parentNode = targetNode.parentNode; parentNode; ) {
-    if (
-      (targetInst =
-        parentNode[internalContainerInstanceKey] ||
-        parentNode[internalInstanceKey])
-    ) {
-      parentNode = targetInst.alternate;
-      if (
-        null !== targetInst.child ||
-        (null !== parentNode && null !== parentNode.child)
-      )
-        for (
-          targetNode = getParentHydrationBoundary(targetNode);
-          null !== targetNode;
-
-        ) {
-          if ((parentNode = targetNode[internalInstanceKey])) return parentNode;
-          targetNode = getParentHydrationBoundary(targetNode);
-        }
-      return targetInst;
-    }
-    targetNode = parentNode;
-    parentNode = targetNode.parentNode;
-  }
-  return null;
-}
-function getInstanceFromNode(node) {
-  if (
-    (node = node[internalInstanceKey] || node[internalContainerInstanceKey])
-  ) {
-    var tag = node.tag;
-    if (
-      5 === tag ||
-      6 === tag ||
-      13 === tag ||
-      31 === tag ||
-      26 === tag ||
-      27 === tag ||
-      3 === tag
-    )
-      return node;
-  }
-  return null;
-}
-function getNodeFromInstance(inst) {
-  var tag = inst.tag;
-  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;
-  throw Error(formatProdErrorMessage(33));
-}
-function getResourcesFromRoot(root) {
-  var resources = root[internalRootNodeResourcesKey];
-  resources ||
-    (resources = root[internalRootNodeResourcesKey] =
-      { hoistableStyles: new Map(), hoistableScripts: new Map() });
-  return resources;
-}
-function markNodeAsHoistable(node) {
-  node[internalHoistableMarker] = !0;
-}
-var allNativeEvents = new Set(),
-  registrationNameDependencies = {};
-function registerTwoPhaseEvent(registrationName, dependencies) {
-  registerDirectEvent(registrationName, dependencies);
-  registerDirectEvent(registrationName + "Capture", dependencies);
-}
-function registerDirectEvent(registrationName, dependencies) {
-  registrationNameDependencies[registrationName] = dependencies;
-  for (
-    registrationName = 0;
-    registrationName < dependencies.length;
-    registrationName++
-  )
-    allNativeEvents.add(dependencies[registrationName]);
-}
-var VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-function setValueForAttribute(node, name, value) {
-  if (isAttributeNameSafe(name))
-    if (null === value) node.removeAttribute(name);
-    else {
-      switch (typeof value) {
-        case "undefined":
-        case "function":
-        case "symbol":
-          node.removeAttribute(name);
-          return;
-        case "boolean":
-          var prefix$12 = name.toLowerCase().slice(0, 5);
-          if ("data-" !== prefix$12 && "aria-" !== prefix$12) {
-            node.removeAttribute(name);
-            return;
-          }
-      }
-      node.setAttribute(name, "" + value);
-    }
-}
-function setValueForKnownAttribute(node, name, value) {
-  if (null === value) node.removeAttribute(name);
-  else {
-    switch (typeof value) {
-      case "undefined":
-      case "function":
-      case "symbol":
-      case "boolean":
-        node.removeAttribute(name);
-        return;
-    }
-    node.setAttribute(name, "" + value);
-  }
-}
-function setValueForNamespacedAttribute(node, namespace, name, value) {
-  if (null === value) node.removeAttribute(name);
-  else {
-    switch (typeof value) {
-      case "undefined":
-      case "function":
-      case "symbol":
-      case "boolean":
-        node.removeAttribute(name);
-        return;
-    }
-    node.setAttributeNS(namespace, name, "" + value);
-  }
-}
-function getToStringValue(value) {
-  switch (typeof value) {
-    case "bigint":
-    case "boolean":
-    case "number":
-    case "string":
-    case "undefined":
-      return value;
-    case "object":
-      return value;
-    default:
-      return "";
-  }
-}
-function isCheckable(elem) {
-  var type = elem.type;
-  return (
-    (elem = elem.nodeName) &&
-    "input" === elem.toLowerCase() &&
-    ("checkbox" === type || "radio" === type)
-  );
-}
-function trackValueOnNode(node, valueField, currentValue) {
-  var descriptor = Object.getOwnPropertyDescriptor(
-    node.constructor.prototype,
-    valueField
-  );
-  if (
-    !node.hasOwnProperty(valueField) &&
-    "undefined" !== typeof descriptor &&
-    "function" === typeof descriptor.get &&
-    "function" === typeof descriptor.set
-  ) {
-    var get = descriptor.get,
-      set = descriptor.set;
-    Object.defineProperty(node, valueField, {
-      configurable: !0,
-      get: function () {
-        return get.call(this);
-      },
-      set: function (value) {
-        currentValue = "" + value;
-        set.call(this, value);
-      }
-    });
-    Object.defineProperty(node, valueField, {
-      enumerable: descriptor.enumerable
-    });
-    return {
-      getValue: function () {
-        return currentValue;
-      },
-      setValue: function (value) {
-        currentValue = "" + value;
-      },
-      stopTracking: function () {
-        node._valueTracker = null;
-        delete node[valueField];
-      }
-    };
-  }
-}
-function track(node) {
-  if (!node._valueTracker) {
-    var valueField = isCheckable(node) ? "checked" : "value";
-    node._valueTracker = trackValueOnNode(
-      node,
-      valueField,
-      "" + node[valueField]
-    );
-  }
-}
-function updateValueIfChanged(node) {
-  if (!node) return !1;
-  var tracker = node._valueTracker;
-  if (!tracker) return !0;
-  var lastValue = tracker.getValue();
-  var value = "";
-  node &&
-    (value = isCheckable(node)
-      ? node.checked
-        ? "true"
-        : "false"
-      : node.value);
-  node = value;
-  return node !== lastValue ? (tracker.setValue(node), !0) : !1;
-}
-function getActiveElement(doc) {
-  doc = doc || ("undefined" !== typeof document ? document : void 0);
-  if ("undefined" === typeof doc) return null;
-  try {
-    return doc.activeElement || doc.body;
-  } catch (e) {
-    return doc.body;
-  }
-}
-var escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g;
-function escapeSelectorAttributeValueInsideDoubleQuotes(value) {
-  return value.replace(
-    escapeSelectorAttributeValueInsideDoubleQuotesRegex,
-    function (ch) {
-      return "\\" + ch.charCodeAt(0).toString(16) + " ";
-    }
-  );
-}
-function updateInput(
-  element,
-  value,
-  defaultValue,
-  lastDefaultValue,
-  checked,
-  defaultChecked,
-  type,
-  name
-) {
-  element.name = "";
-  null != type &&
-  "function" !== typeof type &&
-  "symbol" !== typeof type &&
-  "boolean" !== typeof type
-    ? (element.type = type)
-    : element.removeAttribute("type");
-  if (null != value)
-    if ("number" === type) {
-      if ((0 === value && "" === element.value) || element.value != value)
-        element.value = "" + getToStringValue(value);
-    } else
-      element.value !== "" + getToStringValue(value) &&
-        (element.value = "" + getToStringValue(value));
-  else
-    ("submit" !== type && "reset" !== type) || element.removeAttribute("value");
-  null != value
-    ? setDefaultValue(element, type, getToStringValue(value))
-    : null != defaultValue
-      ? setDefaultValue(element, type, getToStringValue(defaultValue))
-      : null != lastDefaultValue && element.removeAttribute("value");
-  null == checked &&
-    null != defaultChecked &&
-    (element.defaultChecked = !!defaultChecked);
-  null != checked &&
-    (element.checked =
-      checked && "function" !== typeof checked && "symbol" !== typeof checked);
-  null != name &&
-  "function" !== typeof name &&
-  "symbol" !== typeof name &&
-  "boolean" !== typeof name
-    ? (element.name = "" + getToStringValue(name))
-    : element.removeAttribute("name");
-}
-function initInput(
-  element,
-  value,
-  defaultValue,
-  checked,
-  defaultChecked,
-  type,
-  name,
-  isHydrating
-) {
-  null != type &&
-    "function" !== typeof type &&
-    "symbol" !== typeof type &&
-    "boolean" !== typeof type &&
-    (element.type = type);
-  if (null != value || null != defaultValue) {
-    if (
-      !(
-        ("submit" !== type && "reset" !== type) ||
-        (void 0 !== value && null !== value)
-      )
-    ) {
-      track(element);
-      return;
-    }
-    defaultValue =
-      null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-    value = null != value ? "" + getToStringValue(value) : defaultValue;
-    isHydrating || value === element.value || (element.value = value);
-    element.defaultValue = value;
-  }
-  checked = null != checked ? checked : defaultChecked;
-  checked =
-    "function" !== typeof checked && "symbol" !== typeof checked && !!checked;
-  element.checked = isHydrating ? element.checked : !!checked;
-  element.defaultChecked = !!checked;
-  null != name &&
-    "function" !== typeof name &&
-    "symbol" !== typeof name &&
-    "boolean" !== typeof name &&
-    (element.name = name);
-  track(element);
-}
-function setDefaultValue(node, type, value) {
-  ("number" === type && getActiveElement(node.ownerDocument) === node) ||
-    node.defaultValue === "" + value ||
-    (node.defaultValue = "" + value);
-}
-function updateOptions(node, multiple, propValue, setDefaultSelected) {
-  node = node.options;
-  if (multiple) {
-    multiple = {};
-    for (var i = 0; i < propValue.length; i++)
-      multiple["$" + propValue[i]] = !0;
-    for (propValue = 0; propValue < node.length; propValue++)
-      (i = multiple.hasOwnProperty("$" + node[propValue].value)),
-        node[propValue].selected !== i && (node[propValue].selected = i),
-        i && setDefaultSelected && (node[propValue].defaultSelected = !0);
-  } else {
-    propValue = "" + getToStringValue(propValue);
-    multiple = null;
-    for (i = 0; i < node.length; i++) {
-      if (node[i].value === propValue) {
-        node[i].selected = !0;
-        setDefaultSelected && (node[i].defaultSelected = !0);
-        return;
-      }
-      null !== multiple || node[i].disabled || (multiple = node[i]);
-    }
-    null !== multiple && (multiple.selected = !0);
-  }
-}
-function updateTextarea(element, value, defaultValue) {
-  if (
-    null != value &&
-    ((value = "" + getToStringValue(value)),
-    value !== element.value && (element.value = value),
-    null == defaultValue)
-  ) {
-    element.defaultValue !== value && (element.defaultValue = value);
-    return;
-  }
-  element.defaultValue =
-    null != defaultValue ? "" + getToStringValue(defaultValue) : "";
-}
-function initTextarea(element, value, defaultValue, children) {
-  if (null == value) {
-    if (null != children) {
-      if (null != defaultValue) throw Error(formatProdErrorMessage(92));
-      if (isArrayImpl(children)) {
-        if (1 < children.length) throw Error(formatProdErrorMessage(93));
-        children = children[0];
-      }
-      defaultValue = children;
-    }
-    null == defaultValue && (defaultValue = "");
-    value = defaultValue;
-  }
-  defaultValue = getToStringValue(value);
-  element.defaultValue = defaultValue;
-  children = element.textContent;
-  children === defaultValue &&
-    "" !== children &&
-    null !== children &&
-    (element.value = children);
-  track(element);
-}
-function setTextContent(node, text) {
-  if (text) {
-    var firstChild = node.firstChild;
-    if (
-      firstChild &&
-      firstChild === node.lastChild &&
-      3 === firstChild.nodeType
-    ) {
-      firstChild.nodeValue = text;
-      return;
-    }
-  }
-  node.textContent = text;
-}
-var unitlessNumbers = new Set(
-  "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-    " "
-  )
-);
-function setValueForStyle(style, styleName, value) {
-  var isCustomProperty = 0 === styleName.indexOf("--");
-  null == value || "boolean" === typeof value || "" === value
-    ? isCustomProperty
-      ? style.setProperty(styleName, "")
-      : "float" === styleName
-        ? (style.cssFloat = "")
-        : (style[styleName] = "")
-    : isCustomProperty
-      ? style.setProperty(styleName, value)
-      : "number" !== typeof value ||
-          0 === value ||
-          unitlessNumbers.has(styleName)
-        ? "float" === styleName
-          ? (style.cssFloat = value)
-          : (style[styleName] = ("" + value).trim())
-        : (style[styleName] = value + "px");
-}
-function setValueForStyles(node, styles, prevStyles) {
-  if (null != styles && "object" !== typeof styles)
-    throw Error(formatProdErrorMessage(62));
-  node = node.style;
-  if (null != prevStyles) {
-    for (var styleName in prevStyles)
-      !prevStyles.hasOwnProperty(styleName) ||
-        (null != styles && styles.hasOwnProperty(styleName)) ||
-        (0 === styleName.indexOf("--")
-          ? node.setProperty(styleName, "")
-          : "float" === styleName
-            ? (node.cssFloat = "")
-            : (node[styleName] = ""));
-    for (var styleName$18 in styles)
-      (styleName = styles[styleName$18]),
-        styles.hasOwnProperty(styleName$18) &&
-          prevStyles[styleName$18] !== styleName &&
-          setValueForStyle(node, styleName$18, styleName);
-  } else
-    for (var styleName$19 in styles)
-      styles.hasOwnProperty(styleName$19) &&
-        setValueForStyle(node, styleName$19, styles[styleName$19]);
-}
-function isCustomElement(tagName) {
-  if (-1 === tagName.indexOf("-")) return !1;
-  switch (tagName) {
-    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 aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-function noop$1() {}
-var currentReplayingEvent = null;
-function getEventTarget(nativeEvent) {
-  nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;
-  nativeEvent.correspondingUseElement &&
-    (nativeEvent = nativeEvent.correspondingUseElement);
-  return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;
-}
-var restoreTarget = null,
-  restoreQueue = null;
-function restoreStateOfTarget(target) {
-  var internalInstance = getInstanceFromNode(target);
-  if (internalInstance && (target = internalInstance.stateNode)) {
-    var props = target[internalPropsKey] || null;
-    a: switch (((target = internalInstance.stateNode), internalInstance.type)) {
-      case "input":
-        updateInput(
-          target,
-          props.value,
-          props.defaultValue,
-          props.defaultValue,
-          props.checked,
-          props.defaultChecked,
-          props.type,
-          props.name
-        );
-        internalInstance = props.name;
-        if ("radio" === props.type && null != internalInstance) {
-          for (props = target; props.parentNode; ) props = props.parentNode;
-          props = props.querySelectorAll(
-            'input[name="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(
-                "" + internalInstance
-              ) +
-              '"][type="radio"]'
-          );
-          for (
-            internalInstance = 0;
-            internalInstance < props.length;
-            internalInstance++
-          ) {
-            var otherNode = props[internalInstance];
-            if (otherNode !== target && otherNode.form === target.form) {
-              var otherProps = otherNode[internalPropsKey] || null;
-              if (!otherProps) throw Error(formatProdErrorMessage(90));
-              updateInput(
-                otherNode,
-                otherProps.value,
-                otherProps.defaultValue,
-                otherProps.defaultValue,
-                otherProps.checked,
-                otherProps.defaultChecked,
-                otherProps.type,
-                otherProps.name
-              );
-            }
-          }
-          for (
-            internalInstance = 0;
-            internalInstance < props.length;
-            internalInstance++
-          )
-            (otherNode = props[internalInstance]),
-              otherNode.form === target.form && updateValueIfChanged(otherNode);
-        }
-        break a;
-      case "textarea":
-        updateTextarea(target, props.value, props.defaultValue);
-        break a;
-      case "select":
-        (internalInstance = props.value),
-          null != internalInstance &&
-            updateOptions(target, !!props.multiple, internalInstance, !1);
-    }
-  }
-}
-var isInsideEventHandler = !1;
-function batchedUpdates$2(fn, a, b) {
-  if (isInsideEventHandler) return fn(a, b);
-  isInsideEventHandler = !0;
-  try {
-    var JSCompiler_inline_result = fn(a);
-    return JSCompiler_inline_result;
-  } finally {
-    if (
-      ((isInsideEventHandler = !1),
-      null !== restoreTarget || null !== restoreQueue)
-    )
-      if (
-        (flushSyncWork$1(),
-        restoreTarget &&
-          ((a = restoreTarget),
-          (fn = restoreQueue),
-          (restoreQueue = restoreTarget = null),
-          restoreStateOfTarget(a),
-          fn))
-      )
-        for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);
-  }
-}
-function getListener(inst, registrationName) {
-  var stateNode = inst.stateNode;
-  if (null === stateNode) return null;
-  var props = stateNode[internalPropsKey] || null;
-  if (null === props) return null;
-  stateNode = props[registrationName];
-  a: switch (registrationName) {
-    case "onClick":
-    case "onClickCapture":
-    case "onDoubleClick":
-    case "onDoubleClickCapture":
-    case "onMouseDown":
-    case "onMouseDownCapture":
-    case "onMouseMove":
-    case "onMouseMoveCapture":
-    case "onMouseUp":
-    case "onMouseUpCapture":
-    case "onMouseEnter":
-      (props = !props.disabled) ||
-        ((inst = inst.type),
-        (props = !(
-          "button" === inst ||
-          "input" === inst ||
-          "select" === inst ||
-          "textarea" === inst
-        )));
-      inst = !props;
-      break a;
-    default:
-      inst = !1;
-  }
-  if (inst) return null;
-  if (stateNode && "function" !== typeof stateNode)
-    throw Error(
-      formatProdErrorMessage(231, registrationName, typeof stateNode)
-    );
-  return stateNode;
-}
-var canUseDOM = !(
-    "undefined" === typeof window ||
-    "undefined" === typeof window.document ||
-    "undefined" === typeof window.document.createElement
-  ),
-  passiveBrowserEventsSupported = !1;
-if (canUseDOM)
-  try {
-    var options = {};
-    Object.defineProperty(options, "passive", {
-      get: function () {
-        passiveBrowserEventsSupported = !0;
-      }
-    });
-    window.addEventListener("test", options, options);
-    window.removeEventListener("test", options, options);
-  } catch (e) {
-    passiveBrowserEventsSupported = !1;
-  }
-var root = null,
-  startText = null,
-  fallbackText = null;
-function getData() {
-  if (fallbackText) return fallbackText;
-  var start,
-    startValue = startText,
-    startLength = startValue.length,
-    end,
-    endValue = "value" in root ? root.value : root.textContent,
-    endLength = endValue.length;
-  for (
-    start = 0;
-    start < startLength && startValue[start] === endValue[start];
-    start++
-  );
-  var minEnd = startLength - start;
-  for (
-    end = 1;
-    end <= minEnd &&
-    startValue[startLength - end] === endValue[endLength - end];
-    end++
-  );
-  return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));
-}
-function getEventCharCode(nativeEvent) {
-  var keyCode = nativeEvent.keyCode;
-  "charCode" in nativeEvent
-    ? ((nativeEvent = nativeEvent.charCode),
-      0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))
-    : (nativeEvent = keyCode);
-  10 === nativeEvent && (nativeEvent = 13);
-  return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;
-}
-function functionThatReturnsTrue() {
-  return !0;
-}
-function functionThatReturnsFalse() {
-  return !1;
-}
-function createSyntheticEvent(Interface) {
-  function SyntheticBaseEvent(
-    reactName,
-    reactEventType,
-    targetInst,
-    nativeEvent,
-    nativeEventTarget
-  ) {
-    this._reactName = reactName;
-    this._targetInst = targetInst;
-    this.type = reactEventType;
-    this.nativeEvent = nativeEvent;
-    this.target = nativeEventTarget;
-    this.currentTarget = null;
-    for (var propName in Interface)
-      Interface.hasOwnProperty(propName) &&
-        ((reactName = Interface[propName]),
-        (this[propName] = reactName
-          ? reactName(nativeEvent)
-          : nativeEvent[propName]));
-    this.isDefaultPrevented = (
-      null != nativeEvent.defaultPrevented
-        ? nativeEvent.defaultPrevented
-        : !1 === nativeEvent.returnValue
-    )
-      ? functionThatReturnsTrue
-      : functionThatReturnsFalse;
-    this.isPropagationStopped = functionThatReturnsFalse;
-    return this;
-  }
-  assign(SyntheticBaseEvent.prototype, {
-    preventDefault: function () {
-      this.defaultPrevented = !0;
-      var event = this.nativeEvent;
-      event &&
-        (event.preventDefault
-          ? event.preventDefault()
-          : "unknown" !== typeof event.returnValue && (event.returnValue = !1),
-        (this.isDefaultPrevented = functionThatReturnsTrue));
-    },
-    stopPropagation: function () {
-      var event = this.nativeEvent;
-      event &&
-        (event.stopPropagation
-          ? event.stopPropagation()
-          : "unknown" !== typeof event.cancelBubble &&
-            (event.cancelBubble = !0),
-        (this.isPropagationStopped = functionThatReturnsTrue));
-    },
-    persist: function () {},
-    isPersistent: functionThatReturnsTrue
-  });
-  return SyntheticBaseEvent;
-}
-var EventInterface = {
-    eventPhase: 0,
-    bubbles: 0,
-    cancelable: 0,
-    timeStamp: function (event) {
-      return event.timeStamp || Date.now();
-    },
-    defaultPrevented: 0,
-    isTrusted: 0
-  },
-  SyntheticEvent = createSyntheticEvent(EventInterface),
-  UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),
-  SyntheticUIEvent = createSyntheticEvent(UIEventInterface),
-  lastMovementX,
-  lastMovementY,
-  lastMouseEvent,
-  MouseEventInterface = assign({}, UIEventInterface, {
-    screenX: 0,
-    screenY: 0,
-    clientX: 0,
-    clientY: 0,
-    pageX: 0,
-    pageY: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    altKey: 0,
-    metaKey: 0,
-    getModifierState: getEventModifierState,
-    button: 0,
-    buttons: 0,
-    relatedTarget: function (event) {
-      return void 0 === event.relatedTarget
-        ? event.fromElement === event.srcElement
-          ? event.toElement
-          : event.fromElement
-        : event.relatedTarget;
-    },
-    movementX: function (event) {
-      if ("movementX" in event) return event.movementX;
-      event !== lastMouseEvent &&
-        (lastMouseEvent && "mousemove" === event.type
-          ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),
-            (lastMovementY = event.screenY - lastMouseEvent.screenY))
-          : (lastMovementY = lastMovementX = 0),
-        (lastMouseEvent = event));
-      return lastMovementX;
-    },
-    movementY: function (event) {
-      return "movementY" in event ? event.movementY : lastMovementY;
-    }
-  }),
-  SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),
-  DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),
-  SyntheticDragEvent = createSyntheticEvent(DragEventInterface),
-  FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),
-  SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),
-  AnimationEventInterface = assign({}, EventInterface, {
-    animationName: 0,
-    elapsedTime: 0,
-    pseudoElement: 0
-  }),
-  SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),
-  ClipboardEventInterface = assign({}, EventInterface, {
-    clipboardData: function (event) {
-      return "clipboardData" in event
-        ? event.clipboardData
-        : window.clipboardData;
-    }
-  }),
-  SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),
-  CompositionEventInterface = assign({}, EventInterface, { data: 0 }),
-  SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),
-  normalizeKey = {
-    Esc: "Escape",
-    Spacebar: " ",
-    Left: "ArrowLeft",
-    Up: "ArrowUp",
-    Right: "ArrowRight",
-    Down: "ArrowDown",
-    Del: "Delete",
-    Win: "OS",
-    Menu: "ContextMenu",
-    Apps: "ContextMenu",
-    Scroll: "ScrollLock",
-    MozPrintableKey: "Unidentified"
-  },
-  translateToKey = {
-    8: "Backspace",
-    9: "Tab",
-    12: "Clear",
-    13: "Enter",
-    16: "Shift",
-    17: "Control",
-    18: "Alt",
-    19: "Pause",
-    20: "CapsLock",
-    27: "Escape",
-    32: " ",
-    33: "PageUp",
-    34: "PageDown",
-    35: "End",
-    36: "Home",
-    37: "ArrowLeft",
-    38: "ArrowUp",
-    39: "ArrowRight",
-    40: "ArrowDown",
-    45: "Insert",
-    46: "Delete",
-    112: "F1",
-    113: "F2",
-    114: "F3",
-    115: "F4",
-    116: "F5",
-    117: "F6",
-    118: "F7",
-    119: "F8",
-    120: "F9",
-    121: "F10",
-    122: "F11",
-    123: "F12",
-    144: "NumLock",
-    145: "ScrollLock",
-    224: "Meta"
-  },
-  modifierKeyToProp = {
-    Alt: "altKey",
-    Control: "ctrlKey",
-    Meta: "metaKey",
-    Shift: "shiftKey"
-  };
-function modifierStateGetter(keyArg) {
-  var nativeEvent = this.nativeEvent;
-  return nativeEvent.getModifierState
-    ? nativeEvent.getModifierState(keyArg)
-    : (keyArg = modifierKeyToProp[keyArg])
-      ? !!nativeEvent[keyArg]
-      : !1;
-}
-function getEventModifierState() {
-  return modifierStateGetter;
-}
-var KeyboardEventInterface = assign({}, UIEventInterface, {
-    key: function (nativeEvent) {
-      if (nativeEvent.key) {
-        var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
-        if ("Unidentified" !== key) return key;
-      }
-      return "keypress" === nativeEvent.type
-        ? ((nativeEvent = getEventCharCode(nativeEvent)),
-          13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent))
-        : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type
-          ? translateToKey[nativeEvent.keyCode] || "Unidentified"
-          : "";
-    },
-    code: 0,
-    location: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    altKey: 0,
-    metaKey: 0,
-    repeat: 0,
-    locale: 0,
-    getModifierState: getEventModifierState,
-    charCode: function (event) {
-      return "keypress" === event.type ? getEventCharCode(event) : 0;
-    },
-    keyCode: function (event) {
-      return "keydown" === event.type || "keyup" === event.type
-        ? event.keyCode
-        : 0;
-    },
-    which: function (event) {
-      return "keypress" === event.type
-        ? getEventCharCode(event)
-        : "keydown" === event.type || "keyup" === event.type
-          ? event.keyCode
-          : 0;
-    }
-  }),
-  SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),
-  PointerEventInterface = assign({}, MouseEventInterface, {
-    pointerId: 0,
-    width: 0,
-    height: 0,
-    pressure: 0,
-    tangentialPressure: 0,
-    tiltX: 0,
-    tiltY: 0,
-    twist: 0,
-    pointerType: 0,
-    isPrimary: 0
-  }),
-  SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),
-  TouchEventInterface = assign({}, UIEventInterface, {
-    touches: 0,
-    targetTouches: 0,
-    changedTouches: 0,
-    altKey: 0,
-    metaKey: 0,
-    ctrlKey: 0,
-    shiftKey: 0,
-    getModifierState: getEventModifierState
-  }),
-  SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),
-  TransitionEventInterface = assign({}, EventInterface, {
-    propertyName: 0,
-    elapsedTime: 0,
-    pseudoElement: 0
-  }),
-  SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),
-  WheelEventInterface = assign({}, MouseEventInterface, {
-    deltaX: function (event) {
-      return "deltaX" in event
-        ? event.deltaX
-        : "wheelDeltaX" in event
-          ? -event.wheelDeltaX
-          : 0;
-    },
-    deltaY: function (event) {
-      return "deltaY" in event
-        ? event.deltaY
-        : "wheelDeltaY" in event
-          ? -event.wheelDeltaY
-          : "wheelDelta" in event
-            ? -event.wheelDelta
-            : 0;
-    },
-    deltaZ: 0,
-    deltaMode: 0
-  }),
-  SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),
-  ToggleEventInterface = assign({}, EventInterface, {
-    newState: 0,
-    oldState: 0
-  }),
-  SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),
-  END_KEYCODES = [9, 13, 27, 32],
-  canUseCompositionEvent = canUseDOM && "CompositionEvent" in window,
-  documentMode = null;
-canUseDOM &&
-  "documentMode" in document &&
-  (documentMode = document.documentMode);
-var canUseTextInputEvent = canUseDOM && "TextEvent" in window && !documentMode,
-  useFallbackCompositionData =
-    canUseDOM &&
-    (!canUseCompositionEvent ||
-      (documentMode && 8 < documentMode && 11 >= documentMode)),
-  SPACEBAR_CHAR = String.fromCharCode(32),
-  hasSpaceKeypress = !1;
-function isFallbackCompositionEnd(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "keyup":
-      return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);
-    case "keydown":
-      return 229 !== nativeEvent.keyCode;
-    case "keypress":
-    case "mousedown":
-    case "focusout":
-      return !0;
-    default:
-      return !1;
-  }
-}
-function getDataFromCustomEvent(nativeEvent) {
-  nativeEvent = nativeEvent.detail;
-  return "object" === typeof nativeEvent && "data" in nativeEvent
-    ? nativeEvent.data
-    : null;
-}
-var isComposing = !1;
-function getNativeBeforeInputChars(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "compositionend":
-      return getDataFromCustomEvent(nativeEvent);
-    case "keypress":
-      if (32 !== nativeEvent.which) return null;
-      hasSpaceKeypress = !0;
-      return SPACEBAR_CHAR;
-    case "textInput":
-      return (
-        (domEventName = nativeEvent.data),
-        domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName
-      );
-    default:
-      return null;
-  }
-}
-function getFallbackBeforeInputChars(domEventName, nativeEvent) {
-  if (isComposing)
-    return "compositionend" === domEventName ||
-      (!canUseCompositionEvent &&
-        isFallbackCompositionEnd(domEventName, nativeEvent))
-      ? ((domEventName = getData()),
-        (fallbackText = startText = root = null),
-        (isComposing = !1),
-        domEventName)
-      : null;
-  switch (domEventName) {
-    case "paste":
-      return null;
-    case "keypress":
-      if (
-        !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||
-        (nativeEvent.ctrlKey && nativeEvent.altKey)
-      ) {
-        if (nativeEvent.char && 1 < nativeEvent.char.length)
-          return nativeEvent.char;
-        if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);
-      }
-      return null;
-    case "compositionend":
-      return useFallbackCompositionData && "ko" !== nativeEvent.locale
-        ? null
-        : nativeEvent.data;
-    default:
-      return null;
-  }
-}
-var supportedInputTypes = {
-  color: !0,
-  date: !0,
-  datetime: !0,
-  "datetime-local": !0,
-  email: !0,
-  month: !0,
-  number: !0,
-  password: !0,
-  range: !0,
-  search: !0,
-  tel: !0,
-  text: !0,
-  time: !0,
-  url: !0,
-  week: !0
-};
-function isTextInputElement(elem) {
-  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-  return "input" === nodeName
-    ? !!supportedInputTypes[elem.type]
-    : "textarea" === nodeName
-      ? !0
-      : !1;
-}
-function createAndAccumulateChangeEvent(
-  dispatchQueue,
-  inst,
-  nativeEvent,
-  target
-) {
-  restoreTarget
-    ? restoreQueue
-      ? restoreQueue.push(target)
-      : (restoreQueue = [target])
-    : (restoreTarget = target);
-  inst = accumulateTwoPhaseListeners(inst, "onChange");
-  0 < inst.length &&
-    ((nativeEvent = new SyntheticEvent(
-      "onChange",
-      "change",
-      null,
-      nativeEvent,
-      target
-    )),
-    dispatchQueue.push({ event: nativeEvent, listeners: inst }));
-}
-var activeElement$1 = null,
-  activeElementInst$1 = null;
-function runEventInBatch(dispatchQueue) {
-  processDispatchQueue(dispatchQueue, 0);
-}
-function getInstIfValueChanged(targetInst) {
-  var targetNode = getNodeFromInstance(targetInst);
-  if (updateValueIfChanged(targetNode)) return targetInst;
-}
-function getTargetInstForChangeEvent(domEventName, targetInst) {
-  if ("change" === domEventName) return targetInst;
-}
-var isInputEventSupported = !1;
-if (canUseDOM) {
-  var JSCompiler_inline_result$jscomp$330;
-  if (canUseDOM) {
-    var isSupported$jscomp$inline_473 = "oninput" in document;
-    if (!isSupported$jscomp$inline_473) {
-      var element$jscomp$inline_474 = document.createElement("div");
-      element$jscomp$inline_474.setAttribute("oninput", "return;");
-      isSupported$jscomp$inline_473 =
-        "function" === typeof element$jscomp$inline_474.oninput;
-    }
-    JSCompiler_inline_result$jscomp$330 = isSupported$jscomp$inline_473;
-  } else JSCompiler_inline_result$jscomp$330 = !1;
-  isInputEventSupported =
-    JSCompiler_inline_result$jscomp$330 &&
-    (!document.documentMode || 9 < document.documentMode);
-}
-function stopWatchingForValueChange() {
-  activeElement$1 &&
-    (activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
-    (activeElementInst$1 = activeElement$1 = null));
-}
-function handlePropertyChange(nativeEvent) {
-  if (
-    "value" === nativeEvent.propertyName &&
-    getInstIfValueChanged(activeElementInst$1)
-  ) {
-    var dispatchQueue = [];
-    createAndAccumulateChangeEvent(
-      dispatchQueue,
-      activeElementInst$1,
-      nativeEvent,
-      getEventTarget(nativeEvent)
-    );
-    batchedUpdates$2(runEventInBatch, dispatchQueue);
-  }
-}
-function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
-  "focusin" === domEventName
-    ? (stopWatchingForValueChange(),
-      (activeElement$1 = target),
-      (activeElementInst$1 = targetInst),
-      activeElement$1.attachEvent("onpropertychange", handlePropertyChange))
-    : "focusout" === domEventName && stopWatchingForValueChange();
-}
-function getTargetInstForInputEventPolyfill(domEventName) {
-  if (
-    "selectionchange" === domEventName ||
-    "keyup" === domEventName ||
-    "keydown" === domEventName
-  )
-    return getInstIfValueChanged(activeElementInst$1);
-}
-function getTargetInstForClickEvent(domEventName, targetInst) {
-  if ("click" === domEventName) return getInstIfValueChanged(targetInst);
-}
-function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {
-  if ("input" === domEventName || "change" === domEventName)
-    return getInstIfValueChanged(targetInst);
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is;
-function shallowEqual(objA, objB) {
-  if (objectIs(objA, objB)) return !0;
-  if (
-    "object" !== typeof objA ||
-    null === objA ||
-    "object" !== typeof objB ||
-    null === objB
-  )
-    return !1;
-  var keysA = Object.keys(objA),
-    keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return !1;
-  for (keysB = 0; keysB < keysA.length; keysB++) {
-    var currentKey = keysA[keysB];
-    if (
-      !hasOwnProperty.call(objB, currentKey) ||
-      !objectIs(objA[currentKey], objB[currentKey])
-    )
-      return !1;
-  }
-  return !0;
-}
-function getLeafNode(node) {
-  for (; node && node.firstChild; ) node = node.firstChild;
-  return node;
-}
-function getNodeForCharacterOffset(root, offset) {
-  var node = getLeafNode(root);
-  root = 0;
-  for (var nodeEnd; node; ) {
-    if (3 === node.nodeType) {
-      nodeEnd = root + node.textContent.length;
-      if (root <= offset && nodeEnd >= offset)
-        return { node: node, offset: offset - root };
-      root = nodeEnd;
-    }
-    a: {
-      for (; node; ) {
-        if (node.nextSibling) {
-          node = node.nextSibling;
-          break a;
-        }
-        node = node.parentNode;
-      }
-      node = void 0;
-    }
-    node = getLeafNode(node);
-  }
-}
-function containsNode(outerNode, innerNode) {
-  return outerNode && innerNode
-    ? outerNode === innerNode
-      ? !0
-      : outerNode && 3 === outerNode.nodeType
-        ? !1
-        : innerNode && 3 === innerNode.nodeType
-          ? containsNode(outerNode, innerNode.parentNode)
-          : "contains" in outerNode
-            ? outerNode.contains(innerNode)
-            : outerNode.compareDocumentPosition
-              ? !!(outerNode.compareDocumentPosition(innerNode) & 16)
-              : !1
-    : !1;
-}
-function getActiveElementDeep(containerInfo) {
-  containerInfo =
-    null != containerInfo &&
-    null != containerInfo.ownerDocument &&
-    null != containerInfo.ownerDocument.defaultView
-      ? containerInfo.ownerDocument.defaultView
-      : window;
-  for (
-    var element = getActiveElement(containerInfo.document);
-    element instanceof containerInfo.HTMLIFrameElement;
-
-  ) {
-    try {
-      var JSCompiler_inline_result =
-        "string" === typeof element.contentWindow.location.href;
-    } catch (err) {
-      JSCompiler_inline_result = !1;
-    }
-    if (JSCompiler_inline_result) containerInfo = element.contentWindow;
-    else break;
-    element = getActiveElement(containerInfo.document);
-  }
-  return element;
-}
-function hasSelectionCapabilities(elem) {
-  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-  return (
-    nodeName &&
-    (("input" === nodeName &&
-      ("text" === elem.type ||
-        "search" === elem.type ||
-        "tel" === elem.type ||
-        "url" === elem.type ||
-        "password" === elem.type)) ||
-      "textarea" === nodeName ||
-      "true" === elem.contentEditable)
-  );
-}
-var skipSelectionChangeEvent =
-    canUseDOM && "documentMode" in document && 11 >= document.documentMode,
-  activeElement = null,
-  activeElementInst = null,
-  lastSelection = null,
-  mouseDown = !1;
-function constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {
-  var doc =
-    nativeEventTarget.window === nativeEventTarget
-      ? nativeEventTarget.document
-      : 9 === nativeEventTarget.nodeType
-        ? nativeEventTarget
-        : nativeEventTarget.ownerDocument;
-  mouseDown ||
-    null == activeElement ||
-    activeElement !== getActiveElement(doc) ||
-    ((doc = activeElement),
-    "selectionStart" in doc && hasSelectionCapabilities(doc)
-      ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })
-      : ((doc = (
-          (doc.ownerDocument && doc.ownerDocument.defaultView) ||
-          window
-        ).getSelection()),
-        (doc = {
-          anchorNode: doc.anchorNode,
-          anchorOffset: doc.anchorOffset,
-          focusNode: doc.focusNode,
-          focusOffset: doc.focusOffset
-        })),
-    (lastSelection && shallowEqual(lastSelection, doc)) ||
-      ((lastSelection = doc),
-      (doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect")),
-      0 < doc.length &&
-        ((nativeEvent = new SyntheticEvent(
-          "onSelect",
-          "select",
-          null,
-          nativeEvent,
-          nativeEventTarget
-        )),
-        dispatchQueue.push({ event: nativeEvent, listeners: doc }),
-        (nativeEvent.target = activeElement))));
-}
-function makePrefixMap(styleProp, eventName) {
-  var prefixes = {};
-  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
-  prefixes["Webkit" + styleProp] = "webkit" + eventName;
-  prefixes["Moz" + styleProp] = "moz" + eventName;
-  return prefixes;
-}
-var vendorPrefixes = {
-    animationend: makePrefixMap("Animation", "AnimationEnd"),
-    animationiteration: makePrefixMap("Animation", "AnimationIteration"),
-    animationstart: makePrefixMap("Animation", "AnimationStart"),
-    transitionrun: makePrefixMap("Transition", "TransitionRun"),
-    transitionstart: makePrefixMap("Transition", "TransitionStart"),
-    transitioncancel: makePrefixMap("Transition", "TransitionCancel"),
-    transitionend: makePrefixMap("Transition", "TransitionEnd")
-  },
-  prefixedEventNames = {},
-  style = {};
-canUseDOM &&
-  ((style = document.createElement("div").style),
-  "AnimationEvent" in window ||
-    (delete vendorPrefixes.animationend.animation,
-    delete vendorPrefixes.animationiteration.animation,
-    delete vendorPrefixes.animationstart.animation),
-  "TransitionEvent" in window ||
-    delete vendorPrefixes.transitionend.transition);
-function getVendorPrefixedEventName(eventName) {
-  if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];
-  if (!vendorPrefixes[eventName]) return eventName;
-  var prefixMap = vendorPrefixes[eventName],
-    styleProp;
-  for (styleProp in prefixMap)
-    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)
-      return (prefixedEventNames[eventName] = prefixMap[styleProp]);
-  return eventName;
-}
-var ANIMATION_END = getVendorPrefixedEventName("animationend"),
-  ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"),
-  ANIMATION_START = getVendorPrefixedEventName("animationstart"),
-  TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"),
-  TRANSITION_START = getVendorPrefixedEventName("transitionstart"),
-  TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"),
-  TRANSITION_END = getVendorPrefixedEventName("transitionend"),
-  topLevelEventsToReactNames = new Map(),
-  simpleEventPluginEvents =
-    "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
-      " "
-    );
-simpleEventPluginEvents.push("scrollEnd");
-function registerSimpleEvent(domEventName, reactName) {
-  topLevelEventsToReactNames.set(domEventName, reactName);
-  registerTwoPhaseEvent(reactName, [domEventName]);
-}
-var reportGlobalError =
-    "function" === typeof reportError
-      ? reportError
-      : function (error) {
-          if (
-            "object" === typeof window &&
-            "function" === typeof window.ErrorEvent
-          ) {
-            var event = new window.ErrorEvent("error", {
-              bubbles: !0,
-              cancelable: !0,
-              message:
-                "object" === typeof error &&
-                null !== error &&
-                "string" === typeof error.message
-                  ? String(error.message)
-                  : String(error),
-              error: error
-            });
-            if (!window.dispatchEvent(event)) return;
-          } else if (
-            "object" === typeof process &&
-            "function" === typeof process.emit
-          ) {
-            process.emit("uncaughtException", error);
-            return;
-          }
-          console.error(error);
-        },
-  supportsUserTiming =
-    "undefined" !== typeof console &&
-    "function" === typeof console.timeStamp &&
-    !0,
-  currentTrack = "Blocking";
-function setCurrentTrackFromLanes(lanes) {
-  currentTrack =
-    lanes & 63
-      ? "Blocking"
-      : lanes & 64
-        ? "Gesture"
-        : lanes & 4194176
-          ? "Transition"
-          : lanes & 62914560
-            ? "Suspense"
-            : lanes & 2080374784
-              ? "Idle"
-              : "Other";
-}
-function logComponentTrigger(fiber, startTime, endTime, trigger) {
-  supportsUserTiming &&
-    ((reusableComponentOptions.start = startTime),
-    (reusableComponentOptions.end = endTime),
-    (reusableComponentDevToolDetails.color = "warning"),
-    (reusableComponentDevToolDetails.tooltipText = trigger),
-    (reusableComponentDevToolDetails.properties = null),
-    performance.measure(trigger, reusableComponentOptions));
-}
-function logComponentReappeared(fiber, startTime, endTime) {
-  logComponentTrigger(fiber, startTime, endTime, "Reconnect");
-}
-var reusableComponentDevToolDetails = {
-    color: "primary",
-    properties: null,
-    tooltipText: "",
-    track: "Components \u269b"
-  },
-  reusableComponentOptions = {
-    start: -0,
-    end: -0,
-    detail: { devtools: reusableComponentDevToolDetails }
-  };
-function logComponentRender(fiber, startTime, endTime, wasHydrated) {
-  var name = getComponentNameFromFiber(fiber);
-  if (null !== name && supportsUserTiming) {
-    var alternate = fiber.alternate,
-      selfTime = fiber.actualDuration;
-    if (null === alternate || alternate.child !== fiber.child)
-      for (fiber = fiber.child; null !== fiber; fiber = fiber.sibling)
-        selfTime -= fiber.actualDuration;
-    console.timeStamp(
-      name,
-      startTime,
-      endTime,
-      "Components \u269b",
-      void 0,
-      0.5 > selfTime
-        ? wasHydrated
-          ? "tertiary-light"
-          : "primary-light"
-        : 10 > selfTime
-          ? wasHydrated
-            ? "tertiary"
-            : "primary"
-          : 100 > selfTime
-            ? wasHydrated
-              ? "tertiary-dark"
-              : "primary-dark"
-            : "error"
-    );
-  }
-}
-function logComponentErrored(fiber, startTime, endTime) {
-  supportsUserTiming &&
-    ((fiber = getComponentNameFromFiber(fiber)),
-    null !== fiber &&
-      console.timeStamp(
-        fiber,
-        startTime,
-        endTime,
-        "Components \u269b",
-        void 0,
-        "error"
-      ));
-}
-function logComponentEffect(fiber, startTime, endTime, selfTime, errors) {
-  null !== errors
-    ? supportsUserTiming &&
-      ((selfTime = getComponentNameFromFiber(fiber)),
-      null !== selfTime &&
-        console.timeStamp(
-          selfTime,
-          startTime,
-          endTime,
-          "Components \u269b",
-          void 0,
-          "error"
-        ))
-    : ((fiber = getComponentNameFromFiber(fiber)),
-      null !== fiber &&
-        supportsUserTiming &&
-        console.timeStamp(
-          fiber,
-          startTime,
-          endTime,
-          "Components \u269b",
-          void 0,
-          1 > selfTime
-            ? "secondary-light"
-            : 100 > selfTime
-              ? "secondary"
-              : 500 > selfTime
-                ? "secondary-dark"
-                : "error"
-        ));
-}
-function logSuspendedRenderPhase(startTime, endTime, lanes) {
-  !supportsUserTiming ||
-    endTime <= startTime ||
-    console.timeStamp(
-      "Prewarm",
-      startTime,
-      endTime,
-      currentTrack,
-      "Scheduler \u269b",
-      (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"
-    );
-}
-function logSuspendedWithDelayPhase(startTime, endTime, lanes) {
-  !supportsUserTiming ||
-    endTime <= startTime ||
-    console.timeStamp(
-      "Suspended",
-      startTime,
-      endTime,
-      currentTrack,
-      "Scheduler \u269b",
-      (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"
-    );
-}
-function logErroredRenderPhase(startTime, endTime) {
-  !supportsUserTiming ||
-    endTime <= startTime ||
-    console.timeStamp(
-      "Errored",
-      startTime,
-      endTime,
-      currentTrack,
-      "Scheduler \u269b",
-      "error"
-    );
-}
-function logCommitErrored(startTime, endTime) {
-  !supportsUserTiming ||
-    endTime <= startTime ||
-    console.timeStamp(
-      "Errored",
-      startTime,
-      endTime,
-      currentTrack,
-      "Scheduler \u269b",
-      "error"
-    );
-}
-var concurrentQueues = [],
-  concurrentQueuesIndex = 0,
-  concurrentlyUpdatedLanes = 0;
-function finishQueueingConcurrentUpdates() {
-  for (
-    var endIndex = concurrentQueuesIndex,
-      i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);
-    i < endIndex;
-
-  ) {
-    var fiber = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var queue = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var update = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    var lane = concurrentQueues[i];
-    concurrentQueues[i++] = null;
-    if (null !== queue && null !== update) {
-      var pending = queue.pending;
-      null === pending
-        ? (update.next = update)
-        : ((update.next = pending.next), (pending.next = update));
-      queue.pending = update;
-    }
-    0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);
-  }
-}
-function enqueueUpdate$1(fiber, queue, update, lane) {
-  concurrentQueues[concurrentQueuesIndex++] = fiber;
-  concurrentQueues[concurrentQueuesIndex++] = queue;
-  concurrentQueues[concurrentQueuesIndex++] = update;
-  concurrentQueues[concurrentQueuesIndex++] = lane;
-  concurrentlyUpdatedLanes |= lane;
-  fiber.lanes |= lane;
-  fiber = fiber.alternate;
-  null !== fiber && (fiber.lanes |= lane);
-}
-function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {
-  enqueueUpdate$1(fiber, queue, update, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function enqueueConcurrentRenderForLane(fiber, lane) {
-  enqueueUpdate$1(fiber, null, null, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {
-  sourceFiber.lanes |= lane;
-  var alternate = sourceFiber.alternate;
-  null !== alternate && (alternate.lanes |= lane);
-  for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )
-    (parent.childLanes |= lane),
-      (alternate = parent.alternate),
-      null !== alternate && (alternate.childLanes |= lane),
-      22 === parent.tag &&
-        ((sourceFiber = parent.stateNode),
-        null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),
-      (sourceFiber = parent),
-      (parent = parent.return);
-  return 3 === sourceFiber.tag
-    ? ((parent = sourceFiber.stateNode),
-      isHidden &&
-        null !== update &&
-        ((isHidden = 31 - clz32(lane)),
-        (sourceFiber = parent.hiddenUpdates),
-        (alternate = sourceFiber[isHidden]),
-        null === alternate
-          ? (sourceFiber[isHidden] = [update])
-          : alternate.push(update),
-        (update.lane = lane | 536870912)),
-      parent)
-    : null;
-}
-function getRootForUpdatedFiber(sourceFiber) {
-  if (50 < nestedUpdateCount)
-    throw (
-      ((nestedUpdateCount = 0),
-      (rootWithNestedUpdates = null),
-      Error(formatProdErrorMessage(185)))
-    );
-  for (var parent = sourceFiber.return; null !== parent; )
-    (sourceFiber = parent), (parent = sourceFiber.return);
-  return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;
-}
-var emptyContextObject = {};
-function FiberNode(tag, pendingProps, key, mode) {
-  this.tag = tag;
-  this.key = key;
-  this.sibling =
-    this.child =
-    this.return =
-    this.stateNode =
-    this.type =
-    this.elementType =
-      null;
-  this.index = 0;
-  this.refCleanup = this.ref = null;
-  this.pendingProps = pendingProps;
-  this.dependencies =
-    this.memoizedState =
-    this.updateQueue =
-    this.memoizedProps =
-      null;
-  this.mode = mode;
-  this.subtreeFlags = this.flags = 0;
-  this.deletions = null;
-  this.childLanes = this.lanes = 0;
-  this.alternate = null;
-  this.actualDuration = -0;
-  this.actualStartTime = -1.1;
-  this.treeBaseDuration = this.selfBaseDuration = -0;
-}
-function createFiberImplClass(tag, pendingProps, key, mode) {
-  return new FiberNode(tag, pendingProps, key, mode);
-}
-function shouldConstruct(Component) {
-  Component = Component.prototype;
-  return !(!Component || !Component.isReactComponent);
-}
-function createWorkInProgress(current, pendingProps) {
-  var workInProgress = current.alternate;
-  null === workInProgress
-    ? ((workInProgress = createFiberImplClass(
-        current.tag,
-        pendingProps,
-        current.key,
-        current.mode
-      )),
-      (workInProgress.elementType = current.elementType),
-      (workInProgress.type = current.type),
-      (workInProgress.stateNode = current.stateNode),
-      (workInProgress.alternate = current),
-      (current.alternate = workInProgress))
-    : ((workInProgress.pendingProps = pendingProps),
-      (workInProgress.type = current.type),
-      (workInProgress.flags = 0),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.deletions = null),
-      (workInProgress.actualDuration = -0),
-      (workInProgress.actualStartTime = -1.1));
-  workInProgress.flags = current.flags & 65011712;
-  workInProgress.childLanes = current.childLanes;
-  workInProgress.lanes = current.lanes;
-  workInProgress.child = current.child;
-  workInProgress.memoizedProps = current.memoizedProps;
-  workInProgress.memoizedState = current.memoizedState;
-  workInProgress.updateQueue = current.updateQueue;
-  pendingProps = current.dependencies;
-  workInProgress.dependencies =
-    null === pendingProps
-      ? null
-      : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };
-  workInProgress.sibling = current.sibling;
-  workInProgress.index = current.index;
-  workInProgress.ref = current.ref;
-  workInProgress.refCleanup = current.refCleanup;
-  workInProgress.selfBaseDuration = current.selfBaseDuration;
-  workInProgress.treeBaseDuration = current.treeBaseDuration;
-  return workInProgress;
-}
-function resetWorkInProgress(workInProgress, renderLanes) {
-  workInProgress.flags &= 65011714;
-  var current = workInProgress.alternate;
-  null === current
-    ? ((workInProgress.childLanes = 0),
-      (workInProgress.lanes = renderLanes),
-      (workInProgress.child = null),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.memoizedProps = null),
-      (workInProgress.memoizedState = null),
-      (workInProgress.updateQueue = null),
-      (workInProgress.dependencies = null),
-      (workInProgress.stateNode = null),
-      (workInProgress.selfBaseDuration = 0),
-      (workInProgress.treeBaseDuration = 0))
-    : ((workInProgress.childLanes = current.childLanes),
-      (workInProgress.lanes = current.lanes),
-      (workInProgress.child = current.child),
-      (workInProgress.subtreeFlags = 0),
-      (workInProgress.deletions = null),
-      (workInProgress.memoizedProps = current.memoizedProps),
-      (workInProgress.memoizedState = current.memoizedState),
-      (workInProgress.updateQueue = current.updateQueue),
-      (workInProgress.type = current.type),
-      (renderLanes = current.dependencies),
-      (workInProgress.dependencies =
-        null === renderLanes
-          ? null
-          : {
-              lanes: renderLanes.lanes,
-              firstContext: renderLanes.firstContext
-            }),
-      (workInProgress.selfBaseDuration = current.selfBaseDuration),
-      (workInProgress.treeBaseDuration = current.treeBaseDuration));
-  return workInProgress;
-}
-function createFiberFromTypeAndProps(
-  type,
-  key,
-  pendingProps,
-  owner,
-  mode,
-  lanes
-) {
-  var fiberTag = 0;
-  owner = type;
-  if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1);
-  else if ("string" === typeof type)
-    fiberTag = isHostHoistableType(
-      type,
-      pendingProps,
-      contextStackCursor.current
-    )
-      ? 26
-      : "html" === type || "head" === type || "body" === type
-        ? 27
-        : 5;
-  else
-    a: switch (type) {
-      case REACT_ACTIVITY_TYPE:
-        return (
-          (type = createFiberImplClass(31, pendingProps, key, mode)),
-          (type.elementType = REACT_ACTIVITY_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      case REACT_FRAGMENT_TYPE:
-        return createFiberFromFragment(pendingProps.children, mode, lanes, key);
-      case REACT_STRICT_MODE_TYPE:
-        fiberTag = 8;
-        mode |= 24;
-        break;
-      case REACT_PROFILER_TYPE:
-        return (
-          (type = createFiberImplClass(12, pendingProps, key, mode | 2)),
-          (type.elementType = REACT_PROFILER_TYPE),
-          (type.lanes = lanes),
-          (type.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),
-          type
-        );
-      case REACT_SUSPENSE_TYPE:
-        return (
-          (type = createFiberImplClass(13, pendingProps, key, mode)),
-          (type.elementType = REACT_SUSPENSE_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      case REACT_SUSPENSE_LIST_TYPE:
-        return (
-          (type = createFiberImplClass(19, pendingProps, key, mode)),
-          (type.elementType = REACT_SUSPENSE_LIST_TYPE),
-          (type.lanes = lanes),
-          type
-        );
-      default:
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_CONTEXT_TYPE:
-              fiberTag = 10;
-              break a;
-            case REACT_CONSUMER_TYPE:
-              fiberTag = 9;
-              break a;
-            case REACT_FORWARD_REF_TYPE:
-              fiberTag = 11;
-              break a;
-            case REACT_MEMO_TYPE:
-              fiberTag = 14;
-              break a;
-            case REACT_LAZY_TYPE:
-              fiberTag = 16;
-              owner = null;
-              break a;
-          }
-        fiberTag = 29;
-        pendingProps = Error(
-          formatProdErrorMessage(130, null === type ? "null" : typeof type, "")
-        );
-        owner = null;
-    }
-  key = createFiberImplClass(fiberTag, pendingProps, key, mode);
-  key.elementType = type;
-  key.type = owner;
-  key.lanes = lanes;
-  return key;
-}
-function createFiberFromFragment(elements, mode, lanes, key) {
-  elements = createFiberImplClass(7, elements, key, mode);
-  elements.lanes = lanes;
-  return elements;
-}
-function createFiberFromText(content, mode, lanes) {
-  content = createFiberImplClass(6, content, null, mode);
-  content.lanes = lanes;
-  return content;
-}
-function createFiberFromDehydratedFragment(dehydratedNode) {
-  var fiber = createFiberImplClass(18, null, null, 0);
-  fiber.stateNode = dehydratedNode;
-  return fiber;
-}
-function createFiberFromPortal(portal, mode, lanes) {
-  mode = createFiberImplClass(
-    4,
-    null !== portal.children ? portal.children : [],
-    portal.key,
-    mode
-  );
-  mode.lanes = lanes;
-  mode.stateNode = {
-    containerInfo: portal.containerInfo,
-    pendingChildren: null,
-    implementation: portal.implementation
-  };
-  return mode;
-}
-var CapturedStacks = new WeakMap();
-function createCapturedValueAtFiber(value, source) {
-  if ("object" === typeof value && null !== value) {
-    var existing = CapturedStacks.get(value);
-    if (void 0 !== existing) return existing;
-    source = {
-      value: value,
-      source: source,
-      stack: getStackByFiberInDevAndProd(source)
-    };
-    CapturedStacks.set(value, source);
-    return source;
-  }
-  return {
-    value: value,
-    source: source,
-    stack: getStackByFiberInDevAndProd(source)
-  };
-}
-var forkStack = [],
-  forkStackIndex = 0,
-  treeForkProvider = null,
-  treeForkCount = 0,
-  idStack = [],
-  idStackIndex = 0,
-  treeContextProvider = null,
-  treeContextId = 1,
-  treeContextOverflow = "";
-function pushTreeFork(workInProgress, totalChildren) {
-  forkStack[forkStackIndex++] = treeForkCount;
-  forkStack[forkStackIndex++] = treeForkProvider;
-  treeForkProvider = workInProgress;
-  treeForkCount = totalChildren;
-}
-function pushTreeId(workInProgress, totalChildren, index) {
-  idStack[idStackIndex++] = treeContextId;
-  idStack[idStackIndex++] = treeContextOverflow;
-  idStack[idStackIndex++] = treeContextProvider;
-  treeContextProvider = workInProgress;
-  var baseIdWithLeadingBit = treeContextId;
-  workInProgress = treeContextOverflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    treeContextId =
-      (1 << (32 - clz32(totalChildren) + baseLength)) |
-      (index << baseLength) |
-      baseIdWithLeadingBit;
-    treeContextOverflow = length + workInProgress;
-  } else
-    (treeContextId =
-      (1 << length) | (index << baseLength) | baseIdWithLeadingBit),
-      (treeContextOverflow = workInProgress);
-}
-function pushMaterializedTreeId(workInProgress) {
-  null !== workInProgress.return &&
-    (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));
-}
-function popTreeContext(workInProgress) {
-  for (; workInProgress === treeForkProvider; )
-    (treeForkProvider = forkStack[--forkStackIndex]),
-      (forkStack[forkStackIndex] = null),
-      (treeForkCount = forkStack[--forkStackIndex]),
-      (forkStack[forkStackIndex] = null);
-  for (; workInProgress === treeContextProvider; )
-    (treeContextProvider = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null),
-      (treeContextOverflow = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null),
-      (treeContextId = idStack[--idStackIndex]),
-      (idStack[idStackIndex] = null);
-}
-function restoreSuspendedTreeContext(workInProgress, suspendedContext) {
-  idStack[idStackIndex++] = treeContextId;
-  idStack[idStackIndex++] = treeContextOverflow;
-  idStack[idStackIndex++] = treeContextProvider;
-  treeContextId = suspendedContext.id;
-  treeContextOverflow = suspendedContext.overflow;
-  treeContextProvider = workInProgress;
-}
-var hydrationParentFiber = null,
-  nextHydratableInstance = null,
-  isHydrating = !1,
-  hydrationErrors = null,
-  rootOrSingletonContext = !1,
-  HydrationMismatchException = Error(formatProdErrorMessage(519));
-function throwOnHydrationMismatch(fiber) {
-  var error = Error(
-    formatProdErrorMessage(
-      418,
-      1 < arguments.length && void 0 !== arguments[1] && arguments[1]
-        ? "text"
-        : "HTML",
-      ""
-    )
-  );
-  queueHydrationError(createCapturedValueAtFiber(error, fiber));
-  throw HydrationMismatchException;
-}
-function prepareToHydrateHostInstance(fiber) {
-  var instance = fiber.stateNode,
-    type = fiber.type,
-    props = fiber.memoizedProps;
-  instance[internalInstanceKey] = fiber;
-  instance[internalPropsKey] = props;
-  switch (type) {
-    case "dialog":
-      listenToNonDelegatedEvent("cancel", instance);
-      listenToNonDelegatedEvent("close", instance);
-      break;
-    case "iframe":
-    case "object":
-    case "embed":
-      listenToNonDelegatedEvent("load", instance);
-      break;
-    case "video":
-    case "audio":
-      for (type = 0; type < mediaEventTypes.length; type++)
-        listenToNonDelegatedEvent(mediaEventTypes[type], instance);
-      break;
-    case "source":
-      listenToNonDelegatedEvent("error", instance);
-      break;
-    case "img":
-    case "image":
-    case "link":
-      listenToNonDelegatedEvent("error", instance);
-      listenToNonDelegatedEvent("load", instance);
-      break;
-    case "details":
-      listenToNonDelegatedEvent("toggle", instance);
-      break;
-    case "input":
-      listenToNonDelegatedEvent("invalid", instance);
-      initInput(
-        instance,
-        props.value,
-        props.defaultValue,
-        props.checked,
-        props.defaultChecked,
-        props.type,
-        props.name,
-        !0
-      );
-      break;
-    case "select":
-      listenToNonDelegatedEvent("invalid", instance);
-      break;
-    case "textarea":
-      listenToNonDelegatedEvent("invalid", instance),
-        initTextarea(instance, props.value, props.defaultValue, props.children);
-  }
-  type = props.children;
-  ("string" !== typeof type &&
-    "number" !== typeof type &&
-    "bigint" !== typeof type) ||
-  instance.textContent === "" + type ||
-  !0 === props.suppressHydrationWarning ||
-  checkForUnmatchedText(instance.textContent, type)
-    ? (null != props.popover &&
-        (listenToNonDelegatedEvent("beforetoggle", instance),
-        listenToNonDelegatedEvent("toggle", instance)),
-      null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
-      null != props.onScrollEnd &&
-        listenToNonDelegatedEvent("scrollend", instance),
-      null != props.onClick && (instance.onclick = noop$1),
-      (instance = !0))
-    : (instance = !1);
-  instance || throwOnHydrationMismatch(fiber, !0);
-}
-function popToNextHostParent(fiber) {
-  for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
-    switch (hydrationParentFiber.tag) {
-      case 5:
-      case 31:
-      case 13:
-        rootOrSingletonContext = !1;
-        return;
-      case 27:
-      case 3:
-        rootOrSingletonContext = !0;
-        return;
-      default:
-        hydrationParentFiber = hydrationParentFiber.return;
-    }
-}
-function popHydrationState(fiber) {
-  if (fiber !== hydrationParentFiber) return !1;
-  if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;
-  var tag = fiber.tag,
-    JSCompiler_temp;
-  if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
-    if ((JSCompiler_temp = 5 === tag))
-      (JSCompiler_temp = fiber.type),
-        (JSCompiler_temp =
-          !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) ||
-          shouldSetTextContent(fiber.type, fiber.memoizedProps));
-    JSCompiler_temp = !JSCompiler_temp;
-  }
-  JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);
-  popToNextHostParent(fiber);
-  if (13 === tag) {
-    fiber = fiber.memoizedState;
-    fiber = null !== fiber ? fiber.dehydrated : null;
-    if (!fiber) throw Error(formatProdErrorMessage(317));
-    nextHydratableInstance =
-      getNextHydratableInstanceAfterHydrationBoundary(fiber);
-  } else if (31 === tag) {
-    fiber = fiber.memoizedState;
-    fiber = null !== fiber ? fiber.dehydrated : null;
-    if (!fiber) throw Error(formatProdErrorMessage(317));
-    nextHydratableInstance =
-      getNextHydratableInstanceAfterHydrationBoundary(fiber);
-  } else
-    27 === tag
-      ? ((tag = nextHydratableInstance),
-        isSingletonScope(fiber.type)
-          ? ((fiber = previousHydratableOnEnteringScopedSingleton),
-            (previousHydratableOnEnteringScopedSingleton = null),
-            (nextHydratableInstance = fiber))
-          : (nextHydratableInstance = tag))
-      : (nextHydratableInstance = hydrationParentFiber
-          ? getNextHydratable(fiber.stateNode.nextSibling)
-          : null);
-  return !0;
-}
-function resetHydrationState() {
-  nextHydratableInstance = hydrationParentFiber = null;
-  isHydrating = !1;
-}
-function upgradeHydrationErrorsToRecoverable() {
-  var queuedErrors = hydrationErrors;
-  null !== queuedErrors &&
-    (null === workInProgressRootRecoverableErrors
-      ? (workInProgressRootRecoverableErrors = queuedErrors)
-      : workInProgressRootRecoverableErrors.push.apply(
-          workInProgressRootRecoverableErrors,
-          queuedErrors
-        ),
-    (hydrationErrors = null));
-  return queuedErrors;
-}
-function queueHydrationError(error) {
-  null === hydrationErrors
-    ? (hydrationErrors = [error])
-    : hydrationErrors.push(error);
-}
-var valueCursor = createCursor(null),
-  currentlyRenderingFiber$1 = null,
-  lastContextDependency = null;
-function pushProvider(providerFiber, context, nextValue) {
-  push(valueCursor, context._currentValue);
-  context._currentValue = nextValue;
-}
-function popProvider(context) {
-  context._currentValue = valueCursor.current;
-  pop(valueCursor);
-}
-function scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {
-  for (; null !== parent; ) {
-    var alternate = parent.alternate;
-    (parent.childLanes & renderLanes) !== renderLanes
-      ? ((parent.childLanes |= renderLanes),
-        null !== alternate && (alternate.childLanes |= renderLanes))
-      : null !== alternate &&
-        (alternate.childLanes & renderLanes) !== renderLanes &&
-        (alternate.childLanes |= renderLanes);
-    if (parent === propagationRoot) break;
-    parent = parent.return;
-  }
-}
-function propagateContextChanges(
-  workInProgress,
-  contexts,
-  renderLanes,
-  forcePropagateEntireTree
-) {
-  var fiber = workInProgress.child;
-  null !== fiber && (fiber.return = workInProgress);
-  for (; null !== fiber; ) {
-    var list = fiber.dependencies;
-    if (null !== list) {
-      var nextFiber = fiber.child;
-      list = list.firstContext;
-      a: for (; null !== list; ) {
-        var dependency = list;
-        list = fiber;
-        for (var i = 0; i < contexts.length; i++)
-          if (dependency.context === contexts[i]) {
-            list.lanes |= renderLanes;
-            dependency = list.alternate;
-            null !== dependency && (dependency.lanes |= renderLanes);
-            scheduleContextWorkOnParentPath(
-              list.return,
-              renderLanes,
-              workInProgress
-            );
-            forcePropagateEntireTree || (nextFiber = null);
-            break a;
-          }
-        list = dependency.next;
-      }
-    } else if (18 === fiber.tag) {
-      nextFiber = fiber.return;
-      if (null === nextFiber) throw Error(formatProdErrorMessage(341));
-      nextFiber.lanes |= renderLanes;
-      list = nextFiber.alternate;
-      null !== list && (list.lanes |= renderLanes);
-      scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);
-      nextFiber = null;
-    } else nextFiber = fiber.child;
-    if (null !== nextFiber) nextFiber.return = fiber;
-    else
-      for (nextFiber = fiber; null !== nextFiber; ) {
-        if (nextFiber === workInProgress) {
-          nextFiber = null;
-          break;
-        }
-        fiber = nextFiber.sibling;
-        if (null !== fiber) {
-          fiber.return = nextFiber.return;
-          nextFiber = fiber;
-          break;
-        }
-        nextFiber = nextFiber.return;
-      }
-    fiber = nextFiber;
-  }
-}
-function propagateParentContextChanges(
-  current,
-  workInProgress,
-  renderLanes,
-  forcePropagateEntireTree
-) {
-  current = null;
-  for (
-    var parent = workInProgress, isInsidePropagationBailout = !1;
-    null !== parent;
-
-  ) {
-    if (!isInsidePropagationBailout)
-      if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;
-      else if (0 !== (parent.flags & 262144)) break;
-    if (10 === parent.tag) {
-      var currentParent = parent.alternate;
-      if (null === currentParent) throw Error(formatProdErrorMessage(387));
-      currentParent = currentParent.memoizedProps;
-      if (null !== currentParent) {
-        var context = parent.type;
-        objectIs(parent.pendingProps.value, currentParent.value) ||
-          (null !== current ? current.push(context) : (current = [context]));
-      }
-    } else if (parent === hostTransitionProviderCursor.current) {
-      currentParent = parent.alternate;
-      if (null === currentParent) throw Error(formatProdErrorMessage(387));
-      currentParent.memoizedState.memoizedState !==
-        parent.memoizedState.memoizedState &&
-        (null !== current
-          ? current.push(HostTransitionContext)
-          : (current = [HostTransitionContext]));
-    }
-    parent = parent.return;
-  }
-  null !== current &&
-    propagateContextChanges(
-      workInProgress,
-      current,
-      renderLanes,
-      forcePropagateEntireTree
-    );
-  workInProgress.flags |= 262144;
-}
-function checkIfContextChanged(currentDependencies) {
-  for (
-    currentDependencies = currentDependencies.firstContext;
-    null !== currentDependencies;
-
-  ) {
-    if (
-      !objectIs(
-        currentDependencies.context._currentValue,
-        currentDependencies.memoizedValue
-      )
-    )
-      return !0;
-    currentDependencies = currentDependencies.next;
-  }
-  return !1;
-}
-function prepareToReadContext(workInProgress) {
-  currentlyRenderingFiber$1 = workInProgress;
-  lastContextDependency = null;
-  workInProgress = workInProgress.dependencies;
-  null !== workInProgress && (workInProgress.firstContext = null);
-}
-function readContext(context) {
-  return readContextForConsumer(currentlyRenderingFiber$1, context);
-}
-function readContextDuringReconciliation(consumer, context) {
-  null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);
-  return readContextForConsumer(consumer, context);
-}
-function readContextForConsumer(consumer, context) {
-  var value = context._currentValue;
-  context = { context: context, memoizedValue: value, next: null };
-  if (null === lastContextDependency) {
-    if (null === consumer) throw Error(formatProdErrorMessage(308));
-    lastContextDependency = context;
-    consumer.dependencies = { lanes: 0, firstContext: context };
-    consumer.flags |= 524288;
-  } else lastContextDependency = lastContextDependency.next = context;
-  return value;
-}
-var AbortControllerLocal =
-    "undefined" !== typeof AbortController
-      ? AbortController
-      : function () {
-          var listeners = [],
-            signal = (this.signal = {
-              aborted: !1,
-              addEventListener: function (type, listener) {
-                listeners.push(listener);
-              }
-            });
-          this.abort = function () {
-            signal.aborted = !0;
-            listeners.forEach(function (listener) {
-              return listener();
-            });
-          };
-        },
-  scheduleCallback$2 = Scheduler.unstable_scheduleCallback,
-  NormalPriority = Scheduler.unstable_NormalPriority,
-  CacheContext = {
-    $$typeof: REACT_CONTEXT_TYPE,
-    Consumer: null,
-    Provider: null,
-    _currentValue: null,
-    _currentValue2: null,
-    _threadCount: 0
-  };
-function createCache() {
-  return {
-    controller: new AbortControllerLocal(),
-    data: new Map(),
-    refCount: 0
-  };
-}
-function releaseCache(cache) {
-  cache.refCount--;
-  0 === cache.refCount &&
-    scheduleCallback$2(NormalPriority, function () {
-      cache.controller.abort();
-    });
-}
-var now = Scheduler.unstable_now,
-  renderStartTime = -0,
-  commitStartTime = -0,
-  commitEndTime = -0,
-  commitErrors = null,
-  profilerStartTime = -1.1,
-  profilerEffectDuration = -0,
-  componentEffectDuration = -0,
-  componentEffectStartTime = -1.1,
-  componentEffectEndTime = -1.1,
-  componentEffectErrors = null,
-  componentEffectSpawnedUpdate = !1,
-  blockingClampTime = -0,
-  blockingUpdateTime = -1.1,
-  blockingUpdateType = 0,
-  blockingEventTime = -1.1,
-  blockingEventType = null,
-  blockingEventRepeatTime = -1.1,
-  blockingSuspendedTime = -1.1,
-  transitionClampTime = -0,
-  transitionStartTime = -1.1,
-  transitionUpdateTime = -1.1,
-  transitionUpdateType = 0,
-  transitionEventTime = -1.1,
-  transitionEventType = null,
-  transitionEventRepeatTime = -1.1,
-  transitionSuspendedTime = -1.1,
-  yieldReason = 0,
-  yieldStartTime = -1.1;
-function startUpdateTimerByLane(lane) {
-  if (0 !== (lane & 127)) {
-    if (0 > blockingUpdateTime) {
-      blockingUpdateTime = now();
-      0 !== (executionContext & 6) &&
-        ((componentEffectSpawnedUpdate = !0), (blockingUpdateType = 1));
-      lane = resolveEventTimeStamp();
-      var newEventType$30 = resolveEventType();
-      lane !== blockingEventRepeatTime || newEventType$30 !== blockingEventType
-        ? (blockingEventRepeatTime = -1.1)
-        : null !== newEventType$30 && (blockingUpdateType = 1);
-      blockingEventTime = lane;
-      blockingEventType = newEventType$30;
-    }
-  } else if (
-    0 !== (lane & 4194048) &&
-    0 > transitionUpdateTime &&
-    ((transitionUpdateTime = now()), 0 > transitionStartTime)
-  ) {
-    lane = resolveEventTimeStamp();
-    newEventType$30 = resolveEventType();
-    if (
-      lane !== transitionEventRepeatTime ||
-      newEventType$30 !== transitionEventType
-    )
-      transitionEventRepeatTime = -1.1;
-    transitionEventTime = lane;
-    transitionEventType = newEventType$30;
-  }
-}
-function startHostActionTimer() {
-  if (0 > blockingUpdateTime) {
-    blockingUpdateTime = now();
-    0 !== (executionContext & 6) && (blockingUpdateType = 1);
-    var newEventTime = resolveEventTimeStamp(),
-      newEventType = resolveEventType();
-    newEventTime !== blockingEventRepeatTime ||
-    newEventType !== blockingEventType
-      ? (blockingEventRepeatTime = -1.1)
-      : null !== newEventType && (blockingUpdateType = 1);
-    blockingEventTime = newEventTime;
-    blockingEventType = newEventType;
-  }
-  if (
-    0 > transitionUpdateTime &&
-    ((transitionUpdateTime = now()), 0 > transitionStartTime)
-  ) {
-    newEventTime = resolveEventTimeStamp();
-    newEventType = resolveEventType();
-    if (
-      newEventTime !== transitionEventRepeatTime ||
-      newEventType !== transitionEventType
-    )
-      transitionEventRepeatTime = -1.1;
-    transitionEventTime = newEventTime;
-    transitionEventType = newEventType;
-  }
-}
-function pushNestedEffectDurations() {
-  var prevEffectDuration = profilerEffectDuration;
-  profilerEffectDuration = 0;
-  return prevEffectDuration;
-}
-function popNestedEffectDurations(prevEffectDuration) {
-  var elapsedTime = profilerEffectDuration;
-  profilerEffectDuration = prevEffectDuration;
-  return elapsedTime;
-}
-function bubbleNestedEffectDurations(prevEffectDuration) {
-  var elapsedTime = profilerEffectDuration;
-  profilerEffectDuration += prevEffectDuration;
-  return elapsedTime;
-}
-function resetComponentEffectTimers() {
-  componentEffectEndTime = componentEffectStartTime = -1.1;
-}
-function pushComponentEffectStart() {
-  var prevEffectStart = componentEffectStartTime;
-  componentEffectStartTime = -1.1;
-  return prevEffectStart;
-}
-function popComponentEffectStart(prevEffectStart) {
-  0 <= prevEffectStart && (componentEffectStartTime = prevEffectStart);
-}
-function pushComponentEffectDuration() {
-  var prevEffectDuration = componentEffectDuration;
-  componentEffectDuration = -0;
-  return prevEffectDuration;
-}
-function popComponentEffectDuration(prevEffectDuration) {
-  0 <= prevEffectDuration && (componentEffectDuration = prevEffectDuration);
-}
-function pushComponentEffectErrors() {
-  var prevErrors = componentEffectErrors;
-  componentEffectErrors = null;
-  return prevErrors;
-}
-function pushComponentEffectDidSpawnUpdate() {
-  var prev = componentEffectSpawnedUpdate;
-  componentEffectSpawnedUpdate = !1;
-  return prev;
-}
-var currentUpdateIsNested = !1,
-  nestedUpdateScheduled = !1;
-function startProfilerTimer(fiber) {
-  profilerStartTime = now();
-  0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime);
-}
-function stopProfilerTimerIfRunningAndRecordDuration(fiber) {
-  if (0 <= profilerStartTime) {
-    var elapsedTime = now() - profilerStartTime;
-    fiber.actualDuration += elapsedTime;
-    fiber.selfBaseDuration = elapsedTime;
-    profilerStartTime = -1;
-  }
-}
-function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {
-  if (0 <= profilerStartTime) {
-    var elapsedTime = now() - profilerStartTime;
-    fiber.actualDuration += elapsedTime;
-    profilerStartTime = -1;
-  }
-}
-function recordEffectDuration() {
-  if (0 <= profilerStartTime) {
-    var endTime = now(),
-      elapsedTime = endTime - profilerStartTime;
-    profilerStartTime = -1;
-    profilerEffectDuration += elapsedTime;
-    componentEffectDuration += elapsedTime;
-    componentEffectEndTime = endTime;
-  }
-}
-function recordEffectError(errorInfo) {
-  null === componentEffectErrors && (componentEffectErrors = []);
-  componentEffectErrors.push(errorInfo);
-  null === commitErrors && (commitErrors = []);
-  commitErrors.push(errorInfo);
-}
-function startEffectTimer() {
-  profilerStartTime = now();
-  0 > componentEffectStartTime &&
-    (componentEffectStartTime = profilerStartTime);
-}
-function transferActualDuration(fiber) {
-  for (var child = fiber.child; child; )
-    (fiber.actualDuration += child.actualDuration), (child = child.sibling);
-}
-var currentEntangledListeners = null,
-  currentEntangledPendingCount = 0,
-  currentEntangledLane = 0,
-  currentEntangledActionThenable = null;
-function entangleAsyncAction(transition, thenable) {
-  if (null === currentEntangledListeners) {
-    var entangledListeners = (currentEntangledListeners = []);
-    currentEntangledPendingCount = 0;
-    currentEntangledLane = requestTransitionLane();
-    currentEntangledActionThenable = {
-      status: "pending",
-      value: void 0,
-      then: function (resolve) {
-        entangledListeners.push(resolve);
-      }
-    };
-  }
-  currentEntangledPendingCount++;
-  thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);
-  return thenable;
-}
-function pingEngtangledActionScope() {
-  if (
-    0 === --currentEntangledPendingCount &&
-    (-1 < transitionUpdateTime || (transitionStartTime = -1.1),
-    null !== currentEntangledListeners)
-  ) {
-    null !== currentEntangledActionThenable &&
-      (currentEntangledActionThenable.status = "fulfilled");
-    var listeners = currentEntangledListeners;
-    currentEntangledListeners = null;
-    currentEntangledLane = 0;
-    currentEntangledActionThenable = null;
-    for (var i = 0; i < listeners.length; i++) (0, listeners[i])();
-  }
-}
-function chainThenableValue(thenable, result) {
-  var listeners = [],
-    thenableWithOverride = {
-      status: "pending",
-      value: null,
-      reason: null,
-      then: function (resolve) {
-        listeners.push(resolve);
-      }
-    };
-  thenable.then(
-    function () {
-      thenableWithOverride.status = "fulfilled";
-      thenableWithOverride.value = result;
-      for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);
-    },
-    function (error) {
-      thenableWithOverride.status = "rejected";
-      thenableWithOverride.reason = error;
-      for (error = 0; error < listeners.length; error++)
-        (0, listeners[error])(void 0);
-    }
-  );
-  return thenableWithOverride;
-}
-var prevOnStartTransitionFinish = ReactSharedInternals.S;
-ReactSharedInternals.S = function (transition, returnValue) {
-  globalMostRecentTransitionTime = now$1();
-  if (
-    "object" === typeof returnValue &&
-    null !== returnValue &&
-    "function" === typeof returnValue.then
-  ) {
-    if (0 > transitionStartTime && 0 > transitionUpdateTime) {
-      transitionStartTime = now();
-      var newEventTime = resolveEventTimeStamp(),
-        newEventType = resolveEventType();
-      if (
-        newEventTime !== transitionEventRepeatTime ||
-        newEventType !== transitionEventType
-      )
-        transitionEventRepeatTime = -1.1;
-      transitionEventTime = newEventTime;
-      transitionEventType = newEventType;
-    }
-    entangleAsyncAction(transition, returnValue);
-  }
-  null !== prevOnStartTransitionFinish &&
-    prevOnStartTransitionFinish(transition, returnValue);
-};
-var resumedCache = createCursor(null);
-function peekCacheFromPool() {
-  var cacheResumedFromPreviousRender = resumedCache.current;
-  return null !== cacheResumedFromPreviousRender
-    ? cacheResumedFromPreviousRender
-    : workInProgressRoot.pooledCache;
-}
-function pushTransition(offscreenWorkInProgress, prevCachePool) {
-  null === prevCachePool
-    ? push(resumedCache, resumedCache.current)
-    : push(resumedCache, prevCachePool.pool);
-}
-function getSuspendedCache() {
-  var cacheFromPool = peekCacheFromPool();
-  return null === cacheFromPool
-    ? null
-    : { parent: CacheContext._currentValue, pool: cacheFromPool };
-}
-var SuspenseException = Error(formatProdErrorMessage(460)),
-  SuspenseyCommitException = Error(formatProdErrorMessage(474)),
-  SuspenseActionException = Error(formatProdErrorMessage(542)),
-  noopSuspenseyCommitThenable = { then: function () {} };
-function isThenableResolved(thenable) {
-  thenable = thenable.status;
-  return "fulfilled" === thenable || "rejected" === thenable;
-}
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw (
-        ((thenableState = thenable.reason),
-        checkIfUseWrappedInAsyncCatch(thenableState),
-        thenableState)
-      );
-    default:
-      if ("string" === typeof thenable.status) thenable.then(noop$1, noop$1);
-      else {
-        thenableState = workInProgressRoot;
-        if (null !== thenableState && 100 < thenableState.shellSuspendCounter)
-          throw Error(formatProdErrorMessage(482));
-        thenableState = thenable;
-        thenableState.status = "pending";
-        thenableState.then(
-          function (fulfilledValue) {
-            if ("pending" === thenable.status) {
-              var fulfilledThenable = thenable;
-              fulfilledThenable.status = "fulfilled";
-              fulfilledThenable.value = fulfilledValue;
-            }
-          },
-          function (error) {
-            if ("pending" === thenable.status) {
-              var rejectedThenable = thenable;
-              rejectedThenable.status = "rejected";
-              rejectedThenable.reason = error;
-            }
-          }
-        );
-      }
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw (
-            ((thenableState = thenable.reason),
-            checkIfUseWrappedInAsyncCatch(thenableState),
-            thenableState)
-          );
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-function resolveLazy(lazyType) {
-  try {
-    var init = lazyType._init;
-    return init(lazyType._payload);
-  } catch (x) {
-    if (null !== x && "object" === typeof x && "function" === typeof x.then)
-      throw ((suspendedThenable = x), SuspenseException);
-    throw x;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function checkIfUseWrappedInAsyncCatch(rejectedReason) {
-  if (
-    rejectedReason === SuspenseException ||
-    rejectedReason === SuspenseActionException
-  )
-    throw Error(formatProdErrorMessage(483));
-}
-var thenableState$1 = null,
-  thenableIndexCounter$1 = 0;
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter$1;
-  thenableIndexCounter$1 += 1;
-  null === thenableState$1 && (thenableState$1 = []);
-  return trackUsedThenable(thenableState$1, thenable, index);
-}
-function coerceRef(workInProgress, element) {
-  element = element.props.ref;
-  workInProgress.ref = void 0 !== element ? element : null;
-}
-function throwOnInvalidObjectTypeImpl(returnFiber, newChild) {
-  if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)
-    throw Error(formatProdErrorMessage(525));
-  returnFiber = Object.prototype.toString.call(newChild);
-  throw Error(
-    formatProdErrorMessage(
-      31,
-      "[object Object]" === returnFiber
-        ? "object with keys {" + Object.keys(newChild).join(", ") + "}"
-        : returnFiber
-    )
-  );
-}
-function createChildReconciler(shouldTrackSideEffects) {
-  function deleteChild(returnFiber, childToDelete) {
-    if (shouldTrackSideEffects) {
-      var deletions = returnFiber.deletions;
-      null === deletions
-        ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))
-        : deletions.push(childToDelete);
-    }
-  }
-  function deleteRemainingChildren(returnFiber, currentFirstChild) {
-    if (!shouldTrackSideEffects) return null;
-    for (; null !== currentFirstChild; )
-      deleteChild(returnFiber, currentFirstChild),
-        (currentFirstChild = currentFirstChild.sibling);
-    return null;
-  }
-  function mapRemainingChildren(currentFirstChild) {
-    for (var existingChildren = new Map(); null !== currentFirstChild; )
-      null !== currentFirstChild.key
-        ? existingChildren.set(currentFirstChild.key, currentFirstChild)
-        : existingChildren.set(currentFirstChild.index, currentFirstChild),
-        (currentFirstChild = currentFirstChild.sibling);
-    return existingChildren;
-  }
-  function useFiber(fiber, pendingProps) {
-    fiber = createWorkInProgress(fiber, pendingProps);
-    fiber.index = 0;
-    fiber.sibling = null;
-    return fiber;
-  }
-  function placeChild(newFiber, lastPlacedIndex, newIndex) {
-    newFiber.index = newIndex;
-    if (!shouldTrackSideEffects)
-      return (newFiber.flags |= 1048576), lastPlacedIndex;
-    newIndex = newFiber.alternate;
-    if (null !== newIndex)
-      return (
-        (newIndex = newIndex.index),
-        newIndex < lastPlacedIndex
-          ? ((newFiber.flags |= 67108866), lastPlacedIndex)
-          : newIndex
-      );
-    newFiber.flags |= 67108866;
-    return lastPlacedIndex;
-  }
-  function placeSingleChild(newFiber) {
-    shouldTrackSideEffects &&
-      null === newFiber.alternate &&
-      (newFiber.flags |= 67108866);
-    return newFiber;
-  }
-  function updateTextNode(returnFiber, current, textContent, lanes) {
-    if (null === current || 6 !== current.tag)
-      return (
-        (current = createFiberFromText(textContent, returnFiber.mode, lanes)),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, textContent);
-    current.return = returnFiber;
-    return current;
-  }
-  function updateElement(returnFiber, current, element, lanes) {
-    var elementType = element.type;
-    if (elementType === REACT_FRAGMENT_TYPE)
-      return updateFragment(
-        returnFiber,
-        current,
-        element.props.children,
-        lanes,
-        element.key
-      );
-    if (
-      null !== current &&
-      (current.elementType === elementType ||
-        ("object" === typeof elementType &&
-          null !== elementType &&
-          elementType.$$typeof === REACT_LAZY_TYPE &&
-          resolveLazy(elementType) === current.type))
-    )
-      return (
-        (current = useFiber(current, element.props)),
-        coerceRef(current, element),
-        (current.return = returnFiber),
-        current
-      );
-    current = createFiberFromTypeAndProps(
-      element.type,
-      element.key,
-      element.props,
-      null,
-      returnFiber.mode,
-      lanes
-    );
-    coerceRef(current, element);
-    current.return = returnFiber;
-    return current;
-  }
-  function updatePortal(returnFiber, current, portal, lanes) {
-    if (
-      null === current ||
-      4 !== current.tag ||
-      current.stateNode.containerInfo !== portal.containerInfo ||
-      current.stateNode.implementation !== portal.implementation
-    )
-      return (
-        (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, portal.children || []);
-    current.return = returnFiber;
-    return current;
-  }
-  function updateFragment(returnFiber, current, fragment, lanes, key) {
-    if (null === current || 7 !== current.tag)
-      return (
-        (current = createFiberFromFragment(
-          fragment,
-          returnFiber.mode,
-          lanes,
-          key
-        )),
-        (current.return = returnFiber),
-        current
-      );
-    current = useFiber(current, fragment);
-    current.return = returnFiber;
-    return current;
-  }
-  function createChild(returnFiber, newChild, lanes) {
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return (
-        (newChild = createFiberFromText(
-          "" + newChild,
-          returnFiber.mode,
-          lanes
-        )),
-        (newChild.return = returnFiber),
-        newChild
-      );
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return (
-            (lanes = createFiberFromTypeAndProps(
-              newChild.type,
-              newChild.key,
-              newChild.props,
-              null,
-              returnFiber.mode,
-              lanes
-            )),
-            coerceRef(lanes, newChild),
-            (lanes.return = returnFiber),
-            lanes
-          );
-        case REACT_PORTAL_TYPE:
-          return (
-            (newChild = createFiberFromPortal(
-              newChild,
-              returnFiber.mode,
-              lanes
-            )),
-            (newChild.return = returnFiber),
-            newChild
-          );
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            createChild(returnFiber, newChild, lanes)
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return (
-          (newChild = createFiberFromFragment(
-            newChild,
-            returnFiber.mode,
-            lanes,
-            null
-          )),
-          (newChild.return = returnFiber),
-          newChild
-        );
-      if ("function" === typeof newChild.then)
-        return createChild(returnFiber, unwrapThenable(newChild), lanes);
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return createChild(
-          returnFiber,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function updateSlot(returnFiber, oldFiber, newChild, lanes) {
-    var key = null !== oldFiber ? oldFiber.key : null;
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return null !== key
-        ? null
-        : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return newChild.key === key
-            ? updateElement(returnFiber, oldFiber, newChild, lanes)
-            : null;
-        case REACT_PORTAL_TYPE:
-          return newChild.key === key
-            ? updatePortal(returnFiber, oldFiber, newChild, lanes)
-            : null;
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            updateSlot(returnFiber, oldFiber, newChild, lanes)
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return null !== key
-          ? null
-          : updateFragment(returnFiber, oldFiber, newChild, lanes, null);
-      if ("function" === typeof newChild.then)
-        return updateSlot(
-          returnFiber,
-          oldFiber,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return updateSlot(
-          returnFiber,
-          oldFiber,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function updateFromMap(
-    existingChildren,
-    returnFiber,
-    newIdx,
-    newChild,
-    lanes
-  ) {
-    if (
-      ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-    )
-      return (
-        (existingChildren = existingChildren.get(newIdx) || null),
-        updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
-      );
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          return (
-            (existingChildren =
-              existingChildren.get(
-                null === newChild.key ? newIdx : newChild.key
-              ) || null),
-            updateElement(returnFiber, existingChildren, newChild, lanes)
-          );
-        case REACT_PORTAL_TYPE:
-          return (
-            (existingChildren =
-              existingChildren.get(
-                null === newChild.key ? newIdx : newChild.key
-              ) || null),
-            updatePortal(returnFiber, existingChildren, newChild, lanes)
-          );
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            updateFromMap(
-              existingChildren,
-              returnFiber,
-              newIdx,
-              newChild,
-              lanes
-            )
-          );
-      }
-      if (isArrayImpl(newChild) || getIteratorFn(newChild))
-        return (
-          (existingChildren = existingChildren.get(newIdx) || null),
-          updateFragment(returnFiber, existingChildren, newChild, lanes, null)
-        );
-      if ("function" === typeof newChild.then)
-        return updateFromMap(
-          existingChildren,
-          returnFiber,
-          newIdx,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return updateFromMap(
-          existingChildren,
-          returnFiber,
-          newIdx,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return null;
-  }
-  function reconcileChildrenArray(
-    returnFiber,
-    currentFirstChild,
-    newChildren,
-    lanes
-  ) {
-    for (
-      var resultingFirstChild = null,
-        previousNewFiber = null,
-        oldFiber = currentFirstChild,
-        newIdx = (currentFirstChild = 0),
-        nextOldFiber = null;
-      null !== oldFiber && newIdx < newChildren.length;
-      newIdx++
-    ) {
-      oldFiber.index > newIdx
-        ? ((nextOldFiber = oldFiber), (oldFiber = null))
-        : (nextOldFiber = oldFiber.sibling);
-      var newFiber = updateSlot(
-        returnFiber,
-        oldFiber,
-        newChildren[newIdx],
-        lanes
-      );
-      if (null === newFiber) {
-        null === oldFiber && (oldFiber = nextOldFiber);
-        break;
-      }
-      shouldTrackSideEffects &&
-        oldFiber &&
-        null === newFiber.alternate &&
-        deleteChild(returnFiber, oldFiber);
-      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-      null === previousNewFiber
-        ? (resultingFirstChild = newFiber)
-        : (previousNewFiber.sibling = newFiber);
-      previousNewFiber = newFiber;
-      oldFiber = nextOldFiber;
-    }
-    if (newIdx === newChildren.length)
-      return (
-        deleteRemainingChildren(returnFiber, oldFiber),
-        isHydrating && pushTreeFork(returnFiber, newIdx),
-        resultingFirstChild
-      );
-    if (null === oldFiber) {
-      for (; newIdx < newChildren.length; newIdx++)
-        (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
-          null !== oldFiber &&
-            ((currentFirstChild = placeChild(
-              oldFiber,
-              currentFirstChild,
-              newIdx
-            )),
-            null === previousNewFiber
-              ? (resultingFirstChild = oldFiber)
-              : (previousNewFiber.sibling = oldFiber),
-            (previousNewFiber = oldFiber));
-      isHydrating && pushTreeFork(returnFiber, newIdx);
-      return resultingFirstChild;
-    }
-    for (
-      oldFiber = mapRemainingChildren(oldFiber);
-      newIdx < newChildren.length;
-      newIdx++
-    )
-      (nextOldFiber = updateFromMap(
-        oldFiber,
-        returnFiber,
-        newIdx,
-        newChildren[newIdx],
-        lanes
-      )),
-        null !== nextOldFiber &&
-          (shouldTrackSideEffects &&
-            null !== nextOldFiber.alternate &&
-            oldFiber.delete(
-              null === nextOldFiber.key ? newIdx : nextOldFiber.key
-            ),
-          (currentFirstChild = placeChild(
-            nextOldFiber,
-            currentFirstChild,
-            newIdx
-          )),
-          null === previousNewFiber
-            ? (resultingFirstChild = nextOldFiber)
-            : (previousNewFiber.sibling = nextOldFiber),
-          (previousNewFiber = nextOldFiber));
-    shouldTrackSideEffects &&
-      oldFiber.forEach(function (child) {
-        return deleteChild(returnFiber, child);
-      });
-    isHydrating && pushTreeFork(returnFiber, newIdx);
-    return resultingFirstChild;
-  }
-  function reconcileChildrenIterator(
-    returnFiber,
-    currentFirstChild,
-    newChildren,
-    lanes
-  ) {
-    if (null == newChildren) throw Error(formatProdErrorMessage(151));
-    for (
-      var resultingFirstChild = null,
-        previousNewFiber = null,
-        oldFiber = currentFirstChild,
-        newIdx = (currentFirstChild = 0),
-        nextOldFiber = null,
-        step = newChildren.next();
-      null !== oldFiber && !step.done;
-      newIdx++, step = newChildren.next()
-    ) {
-      oldFiber.index > newIdx
-        ? ((nextOldFiber = oldFiber), (oldFiber = null))
-        : (nextOldFiber = oldFiber.sibling);
-      var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);
-      if (null === newFiber) {
-        null === oldFiber && (oldFiber = nextOldFiber);
-        break;
-      }
-      shouldTrackSideEffects &&
-        oldFiber &&
-        null === newFiber.alternate &&
-        deleteChild(returnFiber, oldFiber);
-      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
-      null === previousNewFiber
-        ? (resultingFirstChild = newFiber)
-        : (previousNewFiber.sibling = newFiber);
-      previousNewFiber = newFiber;
-      oldFiber = nextOldFiber;
-    }
-    if (step.done)
-      return (
-        deleteRemainingChildren(returnFiber, oldFiber),
-        isHydrating && pushTreeFork(returnFiber, newIdx),
-        resultingFirstChild
-      );
-    if (null === oldFiber) {
-      for (; !step.done; newIdx++, step = newChildren.next())
-        (step = createChild(returnFiber, step.value, lanes)),
-          null !== step &&
-            ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),
-            null === previousNewFiber
-              ? (resultingFirstChild = step)
-              : (previousNewFiber.sibling = step),
-            (previousNewFiber = step));
-      isHydrating && pushTreeFork(returnFiber, newIdx);
-      return resultingFirstChild;
-    }
-    for (
-      oldFiber = mapRemainingChildren(oldFiber);
-      !step.done;
-      newIdx++, step = newChildren.next()
-    )
-      (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),
-        null !== step &&
-          (shouldTrackSideEffects &&
-            null !== step.alternate &&
-            oldFiber.delete(null === step.key ? newIdx : step.key),
-          (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),
-          null === previousNewFiber
-            ? (resultingFirstChild = step)
-            : (previousNewFiber.sibling = step),
-          (previousNewFiber = step));
-    shouldTrackSideEffects &&
-      oldFiber.forEach(function (child) {
-        return deleteChild(returnFiber, child);
-      });
-    isHydrating && pushTreeFork(returnFiber, newIdx);
-    return resultingFirstChild;
-  }
-  function reconcileChildFibersImpl(
-    returnFiber,
-    currentFirstChild,
-    newChild,
-    lanes
-  ) {
-    "object" === typeof newChild &&
-      null !== newChild &&
-      newChild.type === REACT_FRAGMENT_TYPE &&
-      null === newChild.key &&
-      (newChild = newChild.props.children);
-    if ("object" === typeof newChild && null !== newChild) {
-      switch (newChild.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          a: {
-            for (var key = newChild.key; null !== currentFirstChild; ) {
-              if (currentFirstChild.key === key) {
-                key = newChild.type;
-                if (key === REACT_FRAGMENT_TYPE) {
-                  if (7 === currentFirstChild.tag) {
-                    deleteRemainingChildren(
-                      returnFiber,
-                      currentFirstChild.sibling
-                    );
-                    lanes = useFiber(
-                      currentFirstChild,
-                      newChild.props.children
-                    );
-                    lanes.return = returnFiber;
-                    returnFiber = lanes;
-                    break a;
-                  }
-                } else if (
-                  currentFirstChild.elementType === key ||
-                  ("object" === typeof key &&
-                    null !== key &&
-                    key.$$typeof === REACT_LAZY_TYPE &&
-                    resolveLazy(key) === currentFirstChild.type)
-                ) {
-                  deleteRemainingChildren(
-                    returnFiber,
-                    currentFirstChild.sibling
-                  );
-                  lanes = useFiber(currentFirstChild, newChild.props);
-                  coerceRef(lanes, newChild);
-                  lanes.return = returnFiber;
-                  returnFiber = lanes;
-                  break a;
-                }
-                deleteRemainingChildren(returnFiber, currentFirstChild);
-                break;
-              } else deleteChild(returnFiber, currentFirstChild);
-              currentFirstChild = currentFirstChild.sibling;
-            }
-            newChild.type === REACT_FRAGMENT_TYPE
-              ? ((lanes = createFiberFromFragment(
-                  newChild.props.children,
-                  returnFiber.mode,
-                  lanes,
-                  newChild.key
-                )),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes))
-              : ((lanes = createFiberFromTypeAndProps(
-                  newChild.type,
-                  newChild.key,
-                  newChild.props,
-                  null,
-                  returnFiber.mode,
-                  lanes
-                )),
-                coerceRef(lanes, newChild),
-                (lanes.return = returnFiber),
-                (returnFiber = lanes));
-          }
-          return placeSingleChild(returnFiber);
-        case REACT_PORTAL_TYPE:
-          a: {
-            for (key = newChild.key; null !== currentFirstChild; ) {
-              if (currentFirstChild.key === key)
-                if (
-                  4 === currentFirstChild.tag &&
-                  currentFirstChild.stateNode.containerInfo ===
-                    newChild.containerInfo &&
-                  currentFirstChild.stateNode.implementation ===
-                    newChild.implementation
-                ) {
-                  deleteRemainingChildren(
-                    returnFiber,
-                    currentFirstChild.sibling
-                  );
-                  lanes = useFiber(currentFirstChild, newChild.children || []);
-                  lanes.return = returnFiber;
-                  returnFiber = lanes;
-                  break a;
-                } else {
-                  deleteRemainingChildren(returnFiber, currentFirstChild);
-                  break;
-                }
-              else deleteChild(returnFiber, currentFirstChild);
-              currentFirstChild = currentFirstChild.sibling;
-            }
-            lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);
-            lanes.return = returnFiber;
-            returnFiber = lanes;
-          }
-          return placeSingleChild(returnFiber);
-        case REACT_LAZY_TYPE:
-          return (
-            (newChild = resolveLazy(newChild)),
-            reconcileChildFibersImpl(
-              returnFiber,
-              currentFirstChild,
-              newChild,
-              lanes
-            )
-          );
-      }
-      if (isArrayImpl(newChild))
-        return reconcileChildrenArray(
-          returnFiber,
-          currentFirstChild,
-          newChild,
-          lanes
-        );
-      if (getIteratorFn(newChild)) {
-        key = getIteratorFn(newChild);
-        if ("function" !== typeof key) throw Error(formatProdErrorMessage(150));
-        newChild = key.call(newChild);
-        return reconcileChildrenIterator(
-          returnFiber,
-          currentFirstChild,
-          newChild,
-          lanes
-        );
-      }
-      if ("function" === typeof newChild.then)
-        return reconcileChildFibersImpl(
-          returnFiber,
-          currentFirstChild,
-          unwrapThenable(newChild),
-          lanes
-        );
-      if (newChild.$$typeof === REACT_CONTEXT_TYPE)
-        return reconcileChildFibersImpl(
-          returnFiber,
-          currentFirstChild,
-          readContextDuringReconciliation(returnFiber, newChild),
-          lanes
-        );
-      throwOnInvalidObjectTypeImpl(returnFiber, newChild);
-    }
-    return ("string" === typeof newChild && "" !== newChild) ||
-      "number" === typeof newChild ||
-      "bigint" === typeof newChild
-      ? ((newChild = "" + newChild),
-        null !== currentFirstChild && 6 === currentFirstChild.tag
-          ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
-            (lanes = useFiber(currentFirstChild, newChild)),
-            (lanes.return = returnFiber),
-            (returnFiber = lanes))
-          : (deleteRemainingChildren(returnFiber, currentFirstChild),
-            (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),
-            (lanes.return = returnFiber),
-            (returnFiber = lanes)),
-        placeSingleChild(returnFiber))
-      : deleteRemainingChildren(returnFiber, currentFirstChild);
-  }
-  return function (returnFiber, currentFirstChild, newChild, lanes) {
-    try {
-      thenableIndexCounter$1 = 0;
-      var firstChildFiber = reconcileChildFibersImpl(
-        returnFiber,
-        currentFirstChild,
-        newChild,
-        lanes
-      );
-      thenableState$1 = null;
-      return firstChildFiber;
-    } catch (x) {
-      if (x === SuspenseException || x === SuspenseActionException) throw x;
-      var fiber = createFiberImplClass(29, x, null, returnFiber.mode);
-      fiber.lanes = lanes;
-      fiber.return = returnFiber;
-      return fiber;
-    } finally {
-    }
-  };
-}
-var reconcileChildFibers = createChildReconciler(!0),
-  mountChildFibers = createChildReconciler(!1),
-  hasForceUpdate = !1;
-function initializeUpdateQueue(fiber) {
-  fiber.updateQueue = {
-    baseState: fiber.memoizedState,
-    firstBaseUpdate: null,
-    lastBaseUpdate: null,
-    shared: { pending: null, lanes: 0, hiddenCallbacks: null },
-    callbacks: null
-  };
-}
-function cloneUpdateQueue(current, workInProgress) {
-  current = current.updateQueue;
-  workInProgress.updateQueue === current &&
-    (workInProgress.updateQueue = {
-      baseState: current.baseState,
-      firstBaseUpdate: current.firstBaseUpdate,
-      lastBaseUpdate: current.lastBaseUpdate,
-      shared: current.shared,
-      callbacks: null
-    });
-}
-function createUpdate(lane) {
-  return { lane: lane, tag: 0, payload: null, callback: null, next: null };
-}
-function enqueueUpdate(fiber, update, lane) {
-  var updateQueue = fiber.updateQueue;
-  if (null === updateQueue) return null;
-  updateQueue = updateQueue.shared;
-  if (0 !== (executionContext & 2)) {
-    var pending = updateQueue.pending;
-    null === pending
-      ? (update.next = update)
-      : ((update.next = pending.next), (pending.next = update));
-    updateQueue.pending = update;
-    update = getRootForUpdatedFiber(fiber);
-    markUpdateLaneFromFiberToRoot(fiber, null, lane);
-    return update;
-  }
-  enqueueUpdate$1(fiber, updateQueue, update, lane);
-  return getRootForUpdatedFiber(fiber);
-}
-function entangleTransitions(root, fiber, lane) {
-  fiber = fiber.updateQueue;
-  if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {
-    var queueLanes = fiber.lanes;
-    queueLanes &= root.pendingLanes;
-    lane |= queueLanes;
-    fiber.lanes = lane;
-    markRootEntangled(root, lane);
-  }
-}
-function enqueueCapturedUpdate(workInProgress, capturedUpdate) {
-  var queue = workInProgress.updateQueue,
-    current = workInProgress.alternate;
-  if (
-    null !== current &&
-    ((current = current.updateQueue), queue === current)
-  ) {
-    var newFirst = null,
-      newLast = null;
-    queue = queue.firstBaseUpdate;
-    if (null !== queue) {
-      do {
-        var clone = {
-          lane: queue.lane,
-          tag: queue.tag,
-          payload: queue.payload,
-          callback: null,
-          next: null
-        };
-        null === newLast
-          ? (newFirst = newLast = clone)
-          : (newLast = newLast.next = clone);
-        queue = queue.next;
-      } while (null !== queue);
-      null === newLast
-        ? (newFirst = newLast = capturedUpdate)
-        : (newLast = newLast.next = capturedUpdate);
-    } else newFirst = newLast = capturedUpdate;
-    queue = {
-      baseState: current.baseState,
-      firstBaseUpdate: newFirst,
-      lastBaseUpdate: newLast,
-      shared: current.shared,
-      callbacks: current.callbacks
-    };
-    workInProgress.updateQueue = queue;
-    return;
-  }
-  workInProgress = queue.lastBaseUpdate;
-  null === workInProgress
-    ? (queue.firstBaseUpdate = capturedUpdate)
-    : (workInProgress.next = capturedUpdate);
-  queue.lastBaseUpdate = capturedUpdate;
-}
-var didReadFromEntangledAsyncAction = !1;
-function suspendIfUpdateReadFromEntangledAsyncAction() {
-  if (didReadFromEntangledAsyncAction) {
-    var entangledActionThenable = currentEntangledActionThenable;
-    if (null !== entangledActionThenable) throw entangledActionThenable;
-  }
-}
-function processUpdateQueue(
-  workInProgress$jscomp$0,
-  props,
-  instance$jscomp$0,
-  renderLanes
-) {
-  didReadFromEntangledAsyncAction = !1;
-  var queue = workInProgress$jscomp$0.updateQueue;
-  hasForceUpdate = !1;
-  var firstBaseUpdate = queue.firstBaseUpdate,
-    lastBaseUpdate = queue.lastBaseUpdate,
-    pendingQueue = queue.shared.pending;
-  if (null !== pendingQueue) {
-    queue.shared.pending = null;
-    var lastPendingUpdate = pendingQueue,
-      firstPendingUpdate = lastPendingUpdate.next;
-    lastPendingUpdate.next = null;
-    null === lastBaseUpdate
-      ? (firstBaseUpdate = firstPendingUpdate)
-      : (lastBaseUpdate.next = firstPendingUpdate);
-    lastBaseUpdate = lastPendingUpdate;
-    var current = workInProgress$jscomp$0.alternate;
-    null !== current &&
-      ((current = current.updateQueue),
-      (pendingQueue = current.lastBaseUpdate),
-      pendingQueue !== lastBaseUpdate &&
-        (null === pendingQueue
-          ? (current.firstBaseUpdate = firstPendingUpdate)
-          : (pendingQueue.next = firstPendingUpdate),
-        (current.lastBaseUpdate = lastPendingUpdate)));
-  }
-  if (null !== firstBaseUpdate) {
-    var newState = queue.baseState;
-    lastBaseUpdate = 0;
-    current = firstPendingUpdate = lastPendingUpdate = null;
-    pendingQueue = firstBaseUpdate;
-    do {
-      var updateLane = pendingQueue.lane & -536870913,
-        isHiddenUpdate = updateLane !== pendingQueue.lane;
-      if (
-        isHiddenUpdate
-          ? (workInProgressRootRenderLanes & updateLane) === updateLane
-          : (renderLanes & updateLane) === updateLane
-      ) {
-        0 !== updateLane &&
-          updateLane === currentEntangledLane &&
-          (didReadFromEntangledAsyncAction = !0);
-        null !== current &&
-          (current = current.next =
-            {
-              lane: 0,
-              tag: pendingQueue.tag,
-              payload: pendingQueue.payload,
-              callback: null,
-              next: null
-            });
-        a: {
-          var workInProgress = workInProgress$jscomp$0,
-            update = pendingQueue;
-          updateLane = props;
-          var instance = instance$jscomp$0;
-          switch (update.tag) {
-            case 1:
-              workInProgress = update.payload;
-              if ("function" === typeof workInProgress) {
-                newState = workInProgress.call(instance, newState, updateLane);
-                break a;
-              }
-              newState = workInProgress;
-              break a;
-            case 3:
-              workInProgress.flags = (workInProgress.flags & -65537) | 128;
-            case 0:
-              workInProgress = update.payload;
-              updateLane =
-                "function" === typeof workInProgress
-                  ? workInProgress.call(instance, newState, updateLane)
-                  : workInProgress;
-              if (null === updateLane || void 0 === updateLane) break a;
-              newState = assign({}, newState, updateLane);
-              break a;
-            case 2:
-              hasForceUpdate = !0;
-          }
-        }
-        updateLane = pendingQueue.callback;
-        null !== updateLane &&
-          ((workInProgress$jscomp$0.flags |= 64),
-          isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),
-          (isHiddenUpdate = queue.callbacks),
-          null === isHiddenUpdate
-            ? (queue.callbacks = [updateLane])
-            : isHiddenUpdate.push(updateLane));
-      } else
-        (isHiddenUpdate = {
-          lane: updateLane,
-          tag: pendingQueue.tag,
-          payload: pendingQueue.payload,
-          callback: pendingQueue.callback,
-          next: null
-        }),
-          null === current
-            ? ((firstPendingUpdate = current = isHiddenUpdate),
-              (lastPendingUpdate = newState))
-            : (current = current.next = isHiddenUpdate),
-          (lastBaseUpdate |= updateLane);
-      pendingQueue = pendingQueue.next;
-      if (null === pendingQueue)
-        if (((pendingQueue = queue.shared.pending), null === pendingQueue))
-          break;
-        else
-          (isHiddenUpdate = pendingQueue),
-            (pendingQueue = isHiddenUpdate.next),
-            (isHiddenUpdate.next = null),
-            (queue.lastBaseUpdate = isHiddenUpdate),
-            (queue.shared.pending = null);
-    } while (1);
-    null === current && (lastPendingUpdate = newState);
-    queue.baseState = lastPendingUpdate;
-    queue.firstBaseUpdate = firstPendingUpdate;
-    queue.lastBaseUpdate = current;
-    null === firstBaseUpdate && (queue.shared.lanes = 0);
-    workInProgressRootSkippedLanes |= lastBaseUpdate;
-    workInProgress$jscomp$0.lanes = lastBaseUpdate;
-    workInProgress$jscomp$0.memoizedState = newState;
-  }
-}
-function callCallback(callback, context) {
-  if ("function" !== typeof callback)
-    throw Error(formatProdErrorMessage(191, callback));
-  callback.call(context);
-}
-function commitCallbacks(updateQueue, context) {
-  var callbacks = updateQueue.callbacks;
-  if (null !== callbacks)
-    for (
-      updateQueue.callbacks = null, updateQueue = 0;
-      updateQueue < callbacks.length;
-      updateQueue++
-    )
-      callCallback(callbacks[updateQueue], context);
-}
-var currentTreeHiddenStackCursor = createCursor(null),
-  prevEntangledRenderLanesCursor = createCursor(0);
-function pushHiddenContext(fiber, context) {
-  fiber = entangledRenderLanes;
-  push(prevEntangledRenderLanesCursor, fiber);
-  push(currentTreeHiddenStackCursor, context);
-  entangledRenderLanes = fiber | context.baseLanes;
-}
-function reuseHiddenContextOnStack() {
-  push(prevEntangledRenderLanesCursor, entangledRenderLanes);
-  push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);
-}
-function popHiddenContext() {
-  entangledRenderLanes = prevEntangledRenderLanesCursor.current;
-  pop(currentTreeHiddenStackCursor);
-  pop(prevEntangledRenderLanesCursor);
-}
-var suspenseHandlerStackCursor = createCursor(null),
-  shellBoundary = null;
-function pushPrimaryTreeSuspenseHandler(handler) {
-  var current = handler.alternate;
-  push(suspenseStackCursor, suspenseStackCursor.current & 1);
-  push(suspenseHandlerStackCursor, handler);
-  null === shellBoundary &&
-    (null === current || null !== currentTreeHiddenStackCursor.current
-      ? (shellBoundary = handler)
-      : null !== current.memoizedState && (shellBoundary = handler));
-}
-function pushDehydratedActivitySuspenseHandler(fiber) {
-  push(suspenseStackCursor, suspenseStackCursor.current);
-  push(suspenseHandlerStackCursor, fiber);
-  null === shellBoundary && (shellBoundary = fiber);
-}
-function pushOffscreenSuspenseHandler(fiber) {
-  22 === fiber.tag
-    ? (push(suspenseStackCursor, suspenseStackCursor.current),
-      push(suspenseHandlerStackCursor, fiber),
-      null === shellBoundary && (shellBoundary = fiber))
-    : reuseSuspenseHandlerOnStack(fiber);
-}
-function reuseSuspenseHandlerOnStack() {
-  push(suspenseStackCursor, suspenseStackCursor.current);
-  push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);
-}
-function popSuspenseHandler(fiber) {
-  pop(suspenseHandlerStackCursor);
-  shellBoundary === fiber && (shellBoundary = null);
-  pop(suspenseStackCursor);
-}
-var suspenseStackCursor = createCursor(0);
-function findFirstSuspended(row) {
-  for (var node = row; null !== node; ) {
-    if (13 === node.tag) {
-      var state = node.memoizedState;
-      if (
-        null !== state &&
-        ((state = state.dehydrated),
-        null === state ||
-          isSuspenseInstancePending(state) ||
-          isSuspenseInstanceFallback(state))
-      )
-        return node;
-    } else if (
-      19 === node.tag &&
-      ("forwards" === node.memoizedProps.revealOrder ||
-        "backwards" === node.memoizedProps.revealOrder ||
-        "unstable_legacy-backwards" === node.memoizedProps.revealOrder ||
-        "together" === node.memoizedProps.revealOrder)
-    ) {
-      if (0 !== (node.flags & 128)) return node;
-    } else if (null !== node.child) {
-      node.child.return = node;
-      node = node.child;
-      continue;
-    }
-    if (node === row) break;
-    for (; null === node.sibling; ) {
-      if (null === node.return || node.return === row) return null;
-      node = node.return;
-    }
-    node.sibling.return = node.return;
-    node = node.sibling;
-  }
-  return null;
-}
-var renderLanes = 0,
-  currentlyRenderingFiber = null,
-  currentHook = null,
-  workInProgressHook = null,
-  didScheduleRenderPhaseUpdate = !1,
-  didScheduleRenderPhaseUpdateDuringThisPass = !1,
-  shouldDoubleInvokeUserFnsInHooksDEV = !1,
-  localIdCounter = 0,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  globalClientIdCounter = 0;
-function throwInvalidHookError() {
-  throw Error(formatProdErrorMessage(321));
-}
-function areHookInputsEqual(nextDeps, prevDeps) {
-  if (null === prevDeps) return !1;
-  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)
-    if (!objectIs(nextDeps[i], prevDeps[i])) return !1;
-  return !0;
-}
-function renderWithHooks(
-  current,
-  workInProgress,
-  Component,
-  props,
-  secondArg,
-  nextRenderLanes
-) {
-  renderLanes = nextRenderLanes;
-  currentlyRenderingFiber = workInProgress;
-  workInProgress.memoizedState = null;
-  workInProgress.updateQueue = null;
-  workInProgress.lanes = 0;
-  ReactSharedInternals.H =
-    null === current || null === current.memoizedState
-      ? HooksDispatcherOnMount
-      : HooksDispatcherOnUpdate;
-  shouldDoubleInvokeUserFnsInHooksDEV = !1;
-  nextRenderLanes = Component(props, secondArg);
-  shouldDoubleInvokeUserFnsInHooksDEV = !1;
-  didScheduleRenderPhaseUpdateDuringThisPass &&
-    (nextRenderLanes = renderWithHooksAgain(
-      workInProgress,
-      Component,
-      props,
-      secondArg
-    ));
-  finishRenderingHooks(current);
-  return nextRenderLanes;
-}
-function finishRenderingHooks(current) {
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;
-  renderLanes = 0;
-  workInProgressHook = currentHook = currentlyRenderingFiber = null;
-  didScheduleRenderPhaseUpdate = !1;
-  thenableIndexCounter = 0;
-  thenableState = null;
-  if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));
-  null === current ||
-    didReceiveUpdate ||
-    ((current = current.dependencies),
-    null !== current &&
-      checkIfContextChanged(current) &&
-      (didReceiveUpdate = !0));
-}
-function renderWithHooksAgain(workInProgress, Component, props, secondArg) {
-  currentlyRenderingFiber = workInProgress;
-  var numberOfReRenders = 0;
-  do {
-    didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);
-    thenableIndexCounter = 0;
-    didScheduleRenderPhaseUpdateDuringThisPass = !1;
-    if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));
-    numberOfReRenders += 1;
-    workInProgressHook = currentHook = null;
-    if (null != workInProgress.updateQueue) {
-      var children = workInProgress.updateQueue;
-      children.lastEffect = null;
-      children.events = null;
-      children.stores = null;
-      null != children.memoCache && (children.memoCache.index = 0);
-    }
-    ReactSharedInternals.H = HooksDispatcherOnRerender;
-    children = Component(props, secondArg);
-  } while (didScheduleRenderPhaseUpdateDuringThisPass);
-  return children;
-}
-function TransitionAwareHostComponent() {
-  var dispatcher = ReactSharedInternals.H,
-    maybeThenable = dispatcher.useState()[0];
-  maybeThenable =
-    "function" === typeof maybeThenable.then
-      ? useThenable(maybeThenable)
-      : maybeThenable;
-  dispatcher = dispatcher.useState()[0];
-  (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&
-    (currentlyRenderingFiber.flags |= 1024);
-  return maybeThenable;
-}
-function checkDidRenderIdHook() {
-  var didRenderIdHook = 0 !== localIdCounter;
-  localIdCounter = 0;
-  return didRenderIdHook;
-}
-function bailoutHooks(current, workInProgress, lanes) {
-  workInProgress.updateQueue = current.updateQueue;
-  workInProgress.flags &= -2053;
-  current.lanes &= ~lanes;
-}
-function resetHooksOnUnwind(workInProgress) {
-  if (didScheduleRenderPhaseUpdate) {
-    for (
-      workInProgress = workInProgress.memoizedState;
-      null !== workInProgress;
-
-    ) {
-      var queue = workInProgress.queue;
-      null !== queue && (queue.pending = null);
-      workInProgress = workInProgress.next;
-    }
-    didScheduleRenderPhaseUpdate = !1;
-  }
-  renderLanes = 0;
-  workInProgressHook = currentHook = currentlyRenderingFiber = null;
-  didScheduleRenderPhaseUpdateDuringThisPass = !1;
-  thenableIndexCounter = localIdCounter = 0;
-  thenableState = null;
-}
-function mountWorkInProgressHook() {
-  var hook = {
-    memoizedState: null,
-    baseState: null,
-    baseQueue: null,
-    queue: null,
-    next: null
-  };
-  null === workInProgressHook
-    ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)
-    : (workInProgressHook = workInProgressHook.next = hook);
-  return workInProgressHook;
-}
-function updateWorkInProgressHook() {
-  if (null === currentHook) {
-    var nextCurrentHook = currentlyRenderingFiber.alternate;
-    nextCurrentHook =
-      null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;
-  } else nextCurrentHook = currentHook.next;
-  var nextWorkInProgressHook =
-    null === workInProgressHook
-      ? currentlyRenderingFiber.memoizedState
-      : workInProgressHook.next;
-  if (null !== nextWorkInProgressHook)
-    (workInProgressHook = nextWorkInProgressHook),
-      (currentHook = nextCurrentHook);
-  else {
-    if (null === nextCurrentHook) {
-      if (null === currentlyRenderingFiber.alternate)
-        throw Error(formatProdErrorMessage(467));
-      throw Error(formatProdErrorMessage(310));
-    }
-    currentHook = nextCurrentHook;
-    nextCurrentHook = {
-      memoizedState: currentHook.memoizedState,
-      baseState: currentHook.baseState,
-      baseQueue: currentHook.baseQueue,
-      queue: currentHook.queue,
-      next: null
-    };
-    null === workInProgressHook
-      ? (currentlyRenderingFiber.memoizedState = workInProgressHook =
-          nextCurrentHook)
-      : (workInProgressHook = workInProgressHook.next = nextCurrentHook);
-  }
-  return workInProgressHook;
-}
-function createFunctionComponentUpdateQueue() {
-  return { lastEffect: null, events: null, stores: null, memoCache: null };
-}
-function useThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  thenable = trackUsedThenable(thenableState, thenable, index);
-  index = currentlyRenderingFiber;
-  null ===
-    (null === workInProgressHook
-      ? index.memoizedState
-      : workInProgressHook.next) &&
-    ((index = index.alternate),
-    (ReactSharedInternals.H =
-      null === index || null === index.memoizedState
-        ? HooksDispatcherOnMount
-        : HooksDispatcherOnUpdate));
-  return thenable;
-}
-function use(usable) {
-  if (null !== usable && "object" === typeof usable) {
-    if ("function" === typeof usable.then) return useThenable(usable);
-    if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);
-  }
-  throw Error(formatProdErrorMessage(438, String(usable)));
-}
-function useMemoCache(size) {
-  var memoCache = null,
-    updateQueue = currentlyRenderingFiber.updateQueue;
-  null !== updateQueue && (memoCache = updateQueue.memoCache);
-  if (null == memoCache) {
-    var current = currentlyRenderingFiber.alternate;
-    null !== current &&
-      ((current = current.updateQueue),
-      null !== current &&
-        ((current = current.memoCache),
-        null != current &&
-          (memoCache = {
-            data: current.data.map(function (array) {
-              return array.slice();
-            }),
-            index: 0
-          })));
-  }
-  null == memoCache && (memoCache = { data: [], index: 0 });
-  null === updateQueue &&
-    ((updateQueue = createFunctionComponentUpdateQueue()),
-    (currentlyRenderingFiber.updateQueue = updateQueue));
-  updateQueue.memoCache = memoCache;
-  updateQueue = memoCache.data[memoCache.index];
-  if (void 0 === updateQueue)
-    for (
-      updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;
-      current < size;
-      current++
-    )
-      updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;
-  memoCache.index++;
-  return updateQueue;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function updateReducer(reducer) {
-  var hook = updateWorkInProgressHook();
-  return updateReducerImpl(hook, currentHook, reducer);
-}
-function updateReducerImpl(hook, current, reducer) {
-  var queue = hook.queue;
-  if (null === queue) throw Error(formatProdErrorMessage(311));
-  queue.lastRenderedReducer = reducer;
-  var baseQueue = hook.baseQueue,
-    pendingQueue = queue.pending;
-  if (null !== pendingQueue) {
-    if (null !== baseQueue) {
-      var baseFirst = baseQueue.next;
-      baseQueue.next = pendingQueue.next;
-      pendingQueue.next = baseFirst;
-    }
-    current.baseQueue = baseQueue = pendingQueue;
-    queue.pending = null;
-  }
-  pendingQueue = hook.baseState;
-  if (null === baseQueue) hook.memoizedState = pendingQueue;
-  else {
-    current = baseQueue.next;
-    var newBaseQueueFirst = (baseFirst = null),
-      newBaseQueueLast = null,
-      update = current,
-      didReadFromEntangledAsyncAction$69 = !1;
-    do {
-      var updateLane = update.lane & -536870913;
-      if (
-        updateLane !== update.lane
-          ? (workInProgressRootRenderLanes & updateLane) === updateLane
-          : (renderLanes & updateLane) === updateLane
-      ) {
-        var revertLane = update.revertLane;
-        if (0 === revertLane)
-          null !== newBaseQueueLast &&
-            (newBaseQueueLast = newBaseQueueLast.next =
-              {
-                lane: 0,
-                revertLane: 0,
-                gesture: null,
-                action: update.action,
-                hasEagerState: update.hasEagerState,
-                eagerState: update.eagerState,
-                next: null
-              }),
-            updateLane === currentEntangledLane &&
-              (didReadFromEntangledAsyncAction$69 = !0);
-        else if ((renderLanes & revertLane) === revertLane) {
-          update = update.next;
-          revertLane === currentEntangledLane &&
-            (didReadFromEntangledAsyncAction$69 = !0);
-          continue;
-        } else
-          (updateLane = {
-            lane: 0,
-            revertLane: update.revertLane,
-            gesture: null,
-            action: update.action,
-            hasEagerState: update.hasEagerState,
-            eagerState: update.eagerState,
-            next: null
-          }),
-            null === newBaseQueueLast
-              ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),
-                (baseFirst = pendingQueue))
-              : (newBaseQueueLast = newBaseQueueLast.next = updateLane),
-            (currentlyRenderingFiber.lanes |= revertLane),
-            (workInProgressRootSkippedLanes |= revertLane);
-        updateLane = update.action;
-        shouldDoubleInvokeUserFnsInHooksDEV &&
-          reducer(pendingQueue, updateLane);
-        pendingQueue = update.hasEagerState
-          ? update.eagerState
-          : reducer(pendingQueue, updateLane);
-      } else
-        (revertLane = {
-          lane: updateLane,
-          revertLane: update.revertLane,
-          gesture: update.gesture,
-          action: update.action,
-          hasEagerState: update.hasEagerState,
-          eagerState: update.eagerState,
-          next: null
-        }),
-          null === newBaseQueueLast
-            ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),
-              (baseFirst = pendingQueue))
-            : (newBaseQueueLast = newBaseQueueLast.next = revertLane),
-          (currentlyRenderingFiber.lanes |= updateLane),
-          (workInProgressRootSkippedLanes |= updateLane);
-      update = update.next;
-    } while (null !== update && update !== current);
-    null === newBaseQueueLast
-      ? (baseFirst = pendingQueue)
-      : (newBaseQueueLast.next = newBaseQueueFirst);
-    if (
-      !objectIs(pendingQueue, hook.memoizedState) &&
-      ((didReceiveUpdate = !0),
-      didReadFromEntangledAsyncAction$69 &&
-        ((reducer = currentEntangledActionThenable), null !== reducer))
-    )
-      throw reducer;
-    hook.memoizedState = pendingQueue;
-    hook.baseState = baseFirst;
-    hook.baseQueue = newBaseQueueLast;
-    queue.lastRenderedState = pendingQueue;
-  }
-  null === baseQueue && (queue.lanes = 0);
-  return [hook.memoizedState, queue.dispatch];
-}
-function rerenderReducer(reducer) {
-  var hook = updateWorkInProgressHook(),
-    queue = hook.queue;
-  if (null === queue) throw Error(formatProdErrorMessage(311));
-  queue.lastRenderedReducer = reducer;
-  var dispatch = queue.dispatch,
-    lastRenderPhaseUpdate = queue.pending,
-    newState = hook.memoizedState;
-  if (null !== lastRenderPhaseUpdate) {
-    queue.pending = null;
-    var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);
-    do (newState = reducer(newState, update.action)), (update = update.next);
-    while (update !== lastRenderPhaseUpdate);
-    objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);
-    hook.memoizedState = newState;
-    null === hook.baseQueue && (hook.baseState = newState);
-    queue.lastRenderedState = newState;
-  }
-  return [newState, dispatch];
-}
-function updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
-  var fiber = currentlyRenderingFiber,
-    hook = updateWorkInProgressHook(),
-    isHydrating$jscomp$0 = isHydrating;
-  if (isHydrating$jscomp$0) {
-    if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));
-    getServerSnapshot = getServerSnapshot();
-  } else getServerSnapshot = getSnapshot();
-  var snapshotChanged = !objectIs(
-    (currentHook || hook).memoizedState,
-    getServerSnapshot
-  );
-  snapshotChanged &&
-    ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));
-  hook = hook.queue;
-  updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [
-    subscribe
-  ]);
-  if (
-    hook.getSnapshot !== getSnapshot ||
-    snapshotChanged ||
-    (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)
-  ) {
-    fiber.flags |= 2048;
-    pushSimpleEffect(
-      9,
-      { destroy: void 0 },
-      updateStoreInstance.bind(
-        null,
-        fiber,
-        hook,
-        getServerSnapshot,
-        getSnapshot
-      ),
-      null
-    );
-    if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));
-    isHydrating$jscomp$0 ||
-      0 !== (renderLanes & 127) ||
-      pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-  }
-  return getServerSnapshot;
-}
-function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {
-  fiber.flags |= 16384;
-  fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };
-  getSnapshot = currentlyRenderingFiber.updateQueue;
-  null === getSnapshot
-    ? ((getSnapshot = createFunctionComponentUpdateQueue()),
-      (currentlyRenderingFiber.updateQueue = getSnapshot),
-      (getSnapshot.stores = [fiber]))
-    : ((renderedSnapshot = getSnapshot.stores),
-      null === renderedSnapshot
-        ? (getSnapshot.stores = [fiber])
-        : renderedSnapshot.push(fiber));
-}
-function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {
-  inst.value = nextSnapshot;
-  inst.getSnapshot = getSnapshot;
-  checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);
-}
-function subscribeToStore(fiber, inst, subscribe) {
-  return subscribe(function () {
-    checkIfSnapshotChanged(inst) &&
-      (startUpdateTimerByLane(2), forceStoreRerender(fiber));
-  });
-}
-function checkIfSnapshotChanged(inst) {
-  var latestGetSnapshot = inst.getSnapshot;
-  inst = inst.value;
-  try {
-    var nextValue = latestGetSnapshot();
-    return !objectIs(inst, nextValue);
-  } catch (error) {
-    return !0;
-  }
-}
-function forceStoreRerender(fiber) {
-  var root = enqueueConcurrentRenderForLane(fiber, 2);
-  null !== root && scheduleUpdateOnFiber(root, fiber, 2);
-}
-function mountStateImpl(initialState) {
-  var hook = mountWorkInProgressHook();
-  if ("function" === typeof initialState) {
-    var initialStateInitializer = initialState;
-    initialState = initialStateInitializer();
-    if (shouldDoubleInvokeUserFnsInHooksDEV) {
-      setIsStrictModeForDevtools(!0);
-      try {
-        initialStateInitializer();
-      } finally {
-        setIsStrictModeForDevtools(!1);
-      }
-    }
-  }
-  hook.memoizedState = hook.baseState = initialState;
-  hook.queue = {
-    pending: null,
-    lanes: 0,
-    dispatch: null,
-    lastRenderedReducer: basicStateReducer,
-    lastRenderedState: initialState
-  };
-  return hook;
-}
-function updateOptimisticImpl(hook, current, passthrough, reducer) {
-  hook.baseState = passthrough;
-  return updateReducerImpl(
-    hook,
-    currentHook,
-    "function" === typeof reducer ? reducer : basicStateReducer
-  );
-}
-function dispatchActionState(
-  fiber,
-  actionQueue,
-  setPendingState,
-  setState,
-  payload
-) {
-  if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));
-  fiber = actionQueue.action;
-  if (null !== fiber) {
-    var actionNode = {
-      payload: payload,
-      action: fiber,
-      next: null,
-      isTransition: !0,
-      status: "pending",
-      value: null,
-      reason: null,
-      listeners: [],
-      then: function (listener) {
-        actionNode.listeners.push(listener);
-      }
-    };
-    null !== ReactSharedInternals.T
-      ? setPendingState(!0)
-      : (actionNode.isTransition = !1);
-    setState(actionNode);
-    setPendingState = actionQueue.pending;
-    null === setPendingState
-      ? ((actionNode.next = actionQueue.pending = actionNode),
-        runActionStateAction(actionQueue, actionNode))
-      : ((actionNode.next = setPendingState.next),
-        (actionQueue.pending = setPendingState.next = actionNode));
-  }
-}
-function runActionStateAction(actionQueue, node) {
-  var action = node.action,
-    payload = node.payload,
-    prevState = actionQueue.state;
-  if (node.isTransition) {
-    var prevTransition = ReactSharedInternals.T,
-      currentTransition = {};
-    ReactSharedInternals.T = currentTransition;
-    try {
-      var returnValue = action(prevState, payload),
-        onStartTransitionFinish = ReactSharedInternals.S;
-      null !== onStartTransitionFinish &&
-        onStartTransitionFinish(currentTransition, returnValue);
-      handleActionReturnValue(actionQueue, node, returnValue);
-    } catch (error) {
-      onActionError(actionQueue, node, error);
-    } finally {
-      null !== prevTransition &&
-        null !== currentTransition.types &&
-        (prevTransition.types = currentTransition.types),
-        (ReactSharedInternals.T = prevTransition);
-    }
-  } else
-    try {
-      (prevTransition = action(prevState, payload)),
-        handleActionReturnValue(actionQueue, node, prevTransition);
-    } catch (error$75) {
-      onActionError(actionQueue, node, error$75);
-    }
-}
-function handleActionReturnValue(actionQueue, node, returnValue) {
-  null !== returnValue &&
-  "object" === typeof returnValue &&
-  "function" === typeof returnValue.then
-    ? returnValue.then(
-        function (nextState) {
-          onActionSuccess(actionQueue, node, nextState);
-        },
-        function (error) {
-          return onActionError(actionQueue, node, error);
-        }
-      )
-    : onActionSuccess(actionQueue, node, returnValue);
-}
-function onActionSuccess(actionQueue, actionNode, nextState) {
-  actionNode.status = "fulfilled";
-  actionNode.value = nextState;
-  notifyActionListeners(actionNode);
-  actionQueue.state = nextState;
-  actionNode = actionQueue.pending;
-  null !== actionNode &&
-    ((nextState = actionNode.next),
-    nextState === actionNode
-      ? (actionQueue.pending = null)
-      : ((nextState = nextState.next),
-        (actionNode.next = nextState),
-        runActionStateAction(actionQueue, nextState)));
-}
-function onActionError(actionQueue, actionNode, error) {
-  var last = actionQueue.pending;
-  actionQueue.pending = null;
-  if (null !== last) {
-    last = last.next;
-    do
-      (actionNode.status = "rejected"),
-        (actionNode.reason = error),
-        notifyActionListeners(actionNode),
-        (actionNode = actionNode.next);
-    while (actionNode !== last);
-  }
-  actionQueue.action = null;
-}
-function notifyActionListeners(actionNode) {
-  actionNode = actionNode.listeners;
-  for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();
-}
-function actionStateReducer(oldState, newState) {
-  return newState;
-}
-function mountActionState(action, initialStateProp) {
-  if (isHydrating) {
-    var ssrFormState = workInProgressRoot.formState;
-    if (null !== ssrFormState) {
-      a: {
-        var JSCompiler_inline_result = currentlyRenderingFiber;
-        if (isHydrating) {
-          if (nextHydratableInstance) {
-            b: {
-              var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;
-              for (
-                var inRootOrSingleton = rootOrSingletonContext;
-                8 !== JSCompiler_inline_result$jscomp$0.nodeType;
-
-              ) {
-                if (!inRootOrSingleton) {
-                  JSCompiler_inline_result$jscomp$0 = null;
-                  break b;
-                }
-                JSCompiler_inline_result$jscomp$0 = getNextHydratable(
-                  JSCompiler_inline_result$jscomp$0.nextSibling
-                );
-                if (null === JSCompiler_inline_result$jscomp$0) {
-                  JSCompiler_inline_result$jscomp$0 = null;
-                  break b;
-                }
-              }
-              inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;
-              JSCompiler_inline_result$jscomp$0 =
-                "F!" === inRootOrSingleton || "F" === inRootOrSingleton
-                  ? JSCompiler_inline_result$jscomp$0
-                  : null;
-            }
-            if (JSCompiler_inline_result$jscomp$0) {
-              nextHydratableInstance = getNextHydratable(
-                JSCompiler_inline_result$jscomp$0.nextSibling
-              );
-              JSCompiler_inline_result =
-                "F!" === JSCompiler_inline_result$jscomp$0.data;
-              break a;
-            }
-          }
-          throwOnHydrationMismatch(JSCompiler_inline_result);
-        }
-        JSCompiler_inline_result = !1;
-      }
-      JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);
-    }
-  }
-  ssrFormState = mountWorkInProgressHook();
-  ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;
-  JSCompiler_inline_result = {
-    pending: null,
-    lanes: 0,
-    dispatch: null,
-    lastRenderedReducer: actionStateReducer,
-    lastRenderedState: initialStateProp
-  };
-  ssrFormState.queue = JSCompiler_inline_result;
-  ssrFormState = dispatchSetState.bind(
-    null,
-    currentlyRenderingFiber,
-    JSCompiler_inline_result
-  );
-  JSCompiler_inline_result.dispatch = ssrFormState;
-  JSCompiler_inline_result = mountStateImpl(!1);
-  inRootOrSingleton = dispatchOptimisticSetState.bind(
-    null,
-    currentlyRenderingFiber,
-    !1,
-    JSCompiler_inline_result.queue
-  );
-  JSCompiler_inline_result = mountWorkInProgressHook();
-  JSCompiler_inline_result$jscomp$0 = {
-    state: initialStateProp,
-    dispatch: null,
-    action: action,
-    pending: null
-  };
-  JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;
-  ssrFormState = dispatchActionState.bind(
-    null,
-    currentlyRenderingFiber,
-    JSCompiler_inline_result$jscomp$0,
-    inRootOrSingleton,
-    ssrFormState
-  );
-  JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;
-  JSCompiler_inline_result.memoizedState = action;
-  return [initialStateProp, ssrFormState, !1];
-}
-function updateActionState(action) {
-  var stateHook = updateWorkInProgressHook();
-  return updateActionStateImpl(stateHook, currentHook, action);
-}
-function updateActionStateImpl(stateHook, currentStateHook, action) {
-  currentStateHook = updateReducerImpl(
-    stateHook,
-    currentStateHook,
-    actionStateReducer
-  )[0];
-  stateHook = updateReducer(basicStateReducer)[0];
-  if (
-    "object" === typeof currentStateHook &&
-    null !== currentStateHook &&
-    "function" === typeof currentStateHook.then
-  )
-    try {
-      var state = useThenable(currentStateHook);
-    } catch (x) {
-      if (x === SuspenseException) throw SuspenseActionException;
-      throw x;
-    }
-  else state = currentStateHook;
-  currentStateHook = updateWorkInProgressHook();
-  var actionQueue = currentStateHook.queue,
-    dispatch = actionQueue.dispatch;
-  action !== currentStateHook.memoizedState &&
-    ((currentlyRenderingFiber.flags |= 2048),
-    pushSimpleEffect(
-      9,
-      { destroy: void 0 },
-      actionStateActionEffect.bind(null, actionQueue, action),
-      null
-    ));
-  return [state, dispatch, stateHook];
-}
-function actionStateActionEffect(actionQueue, action) {
-  actionQueue.action = action;
-}
-function rerenderActionState(action) {
-  var stateHook = updateWorkInProgressHook(),
-    currentStateHook = currentHook;
-  if (null !== currentStateHook)
-    return updateActionStateImpl(stateHook, currentStateHook, action);
-  updateWorkInProgressHook();
-  stateHook = stateHook.memoizedState;
-  currentStateHook = updateWorkInProgressHook();
-  var dispatch = currentStateHook.queue.dispatch;
-  currentStateHook.memoizedState = action;
-  return [stateHook, dispatch, !1];
-}
-function pushSimpleEffect(tag, inst, create, deps) {
-  tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };
-  inst = currentlyRenderingFiber.updateQueue;
-  null === inst &&
-    ((inst = createFunctionComponentUpdateQueue()),
-    (currentlyRenderingFiber.updateQueue = inst));
-  create = inst.lastEffect;
-  null === create
-    ? (inst.lastEffect = tag.next = tag)
-    : ((deps = create.next),
-      (create.next = tag),
-      (tag.next = deps),
-      (inst.lastEffect = tag));
-  return tag;
-}
-function updateRef() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function mountEffectImpl(fiberFlags, hookFlags, create, deps) {
-  var hook = mountWorkInProgressHook();
-  currentlyRenderingFiber.flags |= fiberFlags;
-  hook.memoizedState = pushSimpleEffect(
-    1 | hookFlags,
-    { destroy: void 0 },
-    create,
-    void 0 === deps ? null : deps
-  );
-}
-function updateEffectImpl(fiberFlags, hookFlags, create, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var inst = hook.memoizedState.inst;
-  null !== currentHook &&
-  null !== deps &&
-  areHookInputsEqual(deps, currentHook.memoizedState.deps)
-    ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))
-    : ((currentlyRenderingFiber.flags |= fiberFlags),
-      (hook.memoizedState = pushSimpleEffect(
-        1 | hookFlags,
-        inst,
-        create,
-        deps
-      )));
-}
-function mountEffect(create, deps) {
-  mountEffectImpl(8390656, 8, create, deps);
-}
-function updateEffect(create, deps) {
-  updateEffectImpl(2048, 8, create, deps);
-}
-function useEffectEventImpl(payload) {
-  currentlyRenderingFiber.flags |= 4;
-  var componentUpdateQueue = currentlyRenderingFiber.updateQueue;
-  if (null === componentUpdateQueue)
-    (componentUpdateQueue = createFunctionComponentUpdateQueue()),
-      (currentlyRenderingFiber.updateQueue = componentUpdateQueue),
-      (componentUpdateQueue.events = [payload]);
-  else {
-    var events = componentUpdateQueue.events;
-    null === events
-      ? (componentUpdateQueue.events = [payload])
-      : events.push(payload);
-  }
-}
-function updateEvent(callback) {
-  var ref = updateWorkInProgressHook().memoizedState;
-  useEffectEventImpl({ ref: ref, nextImpl: callback });
-  return function () {
-    if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));
-    return ref.impl.apply(void 0, arguments);
-  };
-}
-function updateInsertionEffect(create, deps) {
-  return updateEffectImpl(4, 2, create, deps);
-}
-function updateLayoutEffect(create, deps) {
-  return updateEffectImpl(4, 4, create, deps);
-}
-function imperativeHandleEffect(create, ref) {
-  if ("function" === typeof ref) {
-    create = create();
-    var refCleanup = ref(create);
-    return function () {
-      "function" === typeof refCleanup ? refCleanup() : ref(null);
-    };
-  }
-  if (null !== ref && void 0 !== ref)
-    return (
-      (create = create()),
-      (ref.current = create),
-      function () {
-        ref.current = null;
-      }
-    );
-}
-function updateImperativeHandle(ref, create, deps) {
-  deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-  updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);
-}
-function mountDebugValue() {}
-function updateCallback(callback, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var prevState = hook.memoizedState;
-  if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-    return prevState[0];
-  hook.memoizedState = [callback, deps];
-  return callback;
-}
-function updateMemo(nextCreate, deps) {
-  var hook = updateWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  var prevState = hook.memoizedState;
-  if (null !== deps && areHookInputsEqual(deps, prevState[1]))
-    return prevState[0];
-  prevState = nextCreate();
-  if (shouldDoubleInvokeUserFnsInHooksDEV) {
-    setIsStrictModeForDevtools(!0);
-    try {
-      nextCreate();
-    } finally {
-      setIsStrictModeForDevtools(!1);
-    }
-  }
-  hook.memoizedState = [prevState, deps];
-  return prevState;
-}
-function mountDeferredValueImpl(hook, value, initialValue) {
-  if (
-    void 0 === initialValue ||
-    (0 !== (renderLanes & 1073741824) &&
-      0 === (workInProgressRootRenderLanes & 261930))
-  )
-    return (hook.memoizedState = value);
-  hook.memoizedState = initialValue;
-  hook = requestDeferredLane();
-  currentlyRenderingFiber.lanes |= hook;
-  workInProgressRootSkippedLanes |= hook;
-  return initialValue;
-}
-function updateDeferredValueImpl(hook, prevValue, value, initialValue) {
-  if (objectIs(value, prevValue)) return value;
-  if (null !== currentTreeHiddenStackCursor.current)
-    return (
-      (hook = mountDeferredValueImpl(hook, value, initialValue)),
-      objectIs(hook, prevValue) || (didReceiveUpdate = !0),
-      hook
-    );
-  if (
-    0 === (renderLanes & 42) ||
-    (0 !== (renderLanes & 1073741824) &&
-      0 === (workInProgressRootRenderLanes & 261930))
-  )
-    return (didReceiveUpdate = !0), (hook.memoizedState = value);
-  hook = requestDeferredLane();
-  currentlyRenderingFiber.lanes |= hook;
-  workInProgressRootSkippedLanes |= hook;
-  return prevValue;
-}
-function startTransition(fiber, queue, pendingState, finishedState, callback) {
-  var previousPriority = ReactDOMSharedInternals.p;
-  ReactDOMSharedInternals.p =
-    0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;
-  var prevTransition = ReactSharedInternals.T,
-    currentTransition = {};
-  ReactSharedInternals.T = currentTransition;
-  dispatchOptimisticSetState(fiber, !1, queue, pendingState);
-  try {
-    var returnValue = callback(),
-      onStartTransitionFinish = ReactSharedInternals.S;
-    null !== onStartTransitionFinish &&
-      onStartTransitionFinish(currentTransition, returnValue);
-    if (
-      null !== returnValue &&
-      "object" === typeof returnValue &&
-      "function" === typeof returnValue.then
-    ) {
-      var thenableForFinishedState = chainThenableValue(
-        returnValue,
-        finishedState
-      );
-      dispatchSetStateInternal(
-        fiber,
-        queue,
-        thenableForFinishedState,
-        requestUpdateLane(fiber)
-      );
-    } else
-      dispatchSetStateInternal(
-        fiber,
-        queue,
-        finishedState,
-        requestUpdateLane(fiber)
-      );
-  } catch (error) {
-    dispatchSetStateInternal(
-      fiber,
-      queue,
-      { then: function () {}, status: "rejected", reason: error },
-      requestUpdateLane()
-    );
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      null !== prevTransition &&
-        null !== currentTransition.types &&
-        (prevTransition.types = currentTransition.types),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function noop() {}
-function startHostTransition(formFiber, pendingState, action, formData) {
-  if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));
-  var queue = ensureFormComponentIsStateful(formFiber).queue;
-  startHostActionTimer();
-  startTransition(
-    formFiber,
-    queue,
-    pendingState,
-    sharedNotPendingObject,
-    null === action
-      ? noop
-      : function () {
-          requestFormReset$2(formFiber);
-          return action(formData);
-        }
-  );
-}
-function ensureFormComponentIsStateful(formFiber) {
-  var existingStateHook = formFiber.memoizedState;
-  if (null !== existingStateHook) return existingStateHook;
-  existingStateHook = {
-    memoizedState: sharedNotPendingObject,
-    baseState: sharedNotPendingObject,
-    baseQueue: null,
-    queue: {
-      pending: null,
-      lanes: 0,
-      dispatch: null,
-      lastRenderedReducer: basicStateReducer,
-      lastRenderedState: sharedNotPendingObject
-    },
-    next: null
-  };
-  var initialResetState = {};
-  existingStateHook.next = {
-    memoizedState: initialResetState,
-    baseState: initialResetState,
-    baseQueue: null,
-    queue: {
-      pending: null,
-      lanes: 0,
-      dispatch: null,
-      lastRenderedReducer: basicStateReducer,
-      lastRenderedState: initialResetState
-    },
-    next: null
-  };
-  formFiber.memoizedState = existingStateHook;
-  formFiber = formFiber.alternate;
-  null !== formFiber && (formFiber.memoizedState = existingStateHook);
-  return existingStateHook;
-}
-function requestFormReset$2(formFiber) {
-  var stateHook = ensureFormComponentIsStateful(formFiber);
-  null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);
-  dispatchSetStateInternal(
-    formFiber,
-    stateHook.next.queue,
-    {},
-    requestUpdateLane()
-  );
-}
-function useHostTransitionStatus() {
-  return readContext(HostTransitionContext);
-}
-function updateId() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function updateRefresh() {
-  return updateWorkInProgressHook().memoizedState;
-}
-function refreshCache(fiber) {
-  for (var provider = fiber.return; null !== provider; ) {
-    switch (provider.tag) {
-      case 24:
-      case 3:
-        var lane = requestUpdateLane();
-        fiber = createUpdate(lane);
-        var root$78 = enqueueUpdate(provider, fiber, lane);
-        null !== root$78 &&
-          (startUpdateTimerByLane(lane),
-          scheduleUpdateOnFiber(root$78, provider, lane),
-          entangleTransitions(root$78, provider, lane));
-        provider = { cache: createCache() };
-        fiber.payload = provider;
-        return;
-    }
-    provider = provider.return;
-  }
-}
-function dispatchReducerAction(fiber, queue, action) {
-  var lane = requestUpdateLane();
-  action = {
-    lane: lane,
-    revertLane: 0,
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  isRenderPhaseUpdate(fiber)
-    ? enqueueRenderPhaseUpdate(queue, action)
-    : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),
-      null !== action &&
-        (startUpdateTimerByLane(lane),
-        scheduleUpdateOnFiber(action, fiber, lane),
-        entangleTransitionUpdate(action, queue, lane)));
-}
-function dispatchSetState(fiber, queue, action) {
-  var lane = requestUpdateLane();
-  dispatchSetStateInternal(fiber, queue, action, lane) &&
-    startUpdateTimerByLane(lane);
-}
-function dispatchSetStateInternal(fiber, queue, action, lane) {
-  var update = {
-    lane: lane,
-    revertLane: 0,
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);
-  else {
-    var alternate = fiber.alternate;
-    if (
-      0 === fiber.lanes &&
-      (null === alternate || 0 === alternate.lanes) &&
-      ((alternate = queue.lastRenderedReducer), null !== alternate)
-    )
-      try {
-        var currentState = queue.lastRenderedState,
-          eagerState = alternate(currentState, action);
-        update.hasEagerState = !0;
-        update.eagerState = eagerState;
-        if (objectIs(eagerState, currentState))
-          return (
-            enqueueUpdate$1(fiber, queue, update, 0),
-            null === workInProgressRoot && finishQueueingConcurrentUpdates(),
-            !1
-          );
-      } catch (error) {
-      } finally {
-      }
-    action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);
-    if (null !== action)
-      return (
-        scheduleUpdateOnFiber(action, fiber, lane),
-        entangleTransitionUpdate(action, queue, lane),
-        !0
-      );
-  }
-  return !1;
-}
-function dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {
-  action = {
-    lane: 2,
-    revertLane: requestTransitionLane(),
-    gesture: null,
-    action: action,
-    hasEagerState: !1,
-    eagerState: null,
-    next: null
-  };
-  if (isRenderPhaseUpdate(fiber)) {
-    if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));
-  } else
-    (throwIfDuringRender = enqueueConcurrentHookUpdate(
-      fiber,
-      queue,
-      action,
-      2
-    )),
-      null !== throwIfDuringRender &&
-        (startUpdateTimerByLane(2),
-        scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2));
-}
-function isRenderPhaseUpdate(fiber) {
-  var alternate = fiber.alternate;
-  return (
-    fiber === currentlyRenderingFiber ||
-    (null !== alternate && alternate === currentlyRenderingFiber)
-  );
-}
-function enqueueRenderPhaseUpdate(queue, update) {
-  didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =
-    !0;
-  var pending = queue.pending;
-  null === pending
-    ? (update.next = update)
-    : ((update.next = pending.next), (pending.next = update));
-  queue.pending = update;
-}
-function entangleTransitionUpdate(root, queue, lane) {
-  if (0 !== (lane & 4194048)) {
-    var queueLanes = queue.lanes;
-    queueLanes &= root.pendingLanes;
-    lane |= queueLanes;
-    queue.lanes = lane;
-    markRootEntangled(root, lane);
-  }
-}
-var ContextOnlyDispatcher = {
-  readContext: readContext,
-  use: use,
-  useCallback: throwInvalidHookError,
-  useContext: throwInvalidHookError,
-  useEffect: throwInvalidHookError,
-  useImperativeHandle: throwInvalidHookError,
-  useLayoutEffect: throwInvalidHookError,
-  useInsertionEffect: throwInvalidHookError,
-  useMemo: throwInvalidHookError,
-  useReducer: throwInvalidHookError,
-  useRef: throwInvalidHookError,
-  useState: throwInvalidHookError,
-  useDebugValue: throwInvalidHookError,
-  useDeferredValue: throwInvalidHookError,
-  useTransition: throwInvalidHookError,
-  useSyncExternalStore: throwInvalidHookError,
-  useId: throwInvalidHookError,
-  useHostTransitionStatus: throwInvalidHookError,
-  useFormState: throwInvalidHookError,
-  useActionState: throwInvalidHookError,
-  useOptimistic: throwInvalidHookError,
-  useMemoCache: throwInvalidHookError,
-  useCacheRefresh: throwInvalidHookError
-};
-ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;
-var HooksDispatcherOnMount = {
-    readContext: readContext,
-    use: use,
-    useCallback: function (callback, deps) {
-      mountWorkInProgressHook().memoizedState = [
-        callback,
-        void 0 === deps ? null : deps
-      ];
-      return callback;
-    },
-    useContext: readContext,
-    useEffect: mountEffect,
-    useImperativeHandle: function (ref, create, deps) {
-      deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;
-      mountEffectImpl(
-        4194308,
-        4,
-        imperativeHandleEffect.bind(null, create, ref),
-        deps
-      );
-    },
-    useLayoutEffect: function (create, deps) {
-      return mountEffectImpl(4194308, 4, create, deps);
-    },
-    useInsertionEffect: function (create, deps) {
-      mountEffectImpl(4, 2, create, deps);
-    },
-    useMemo: function (nextCreate, deps) {
-      var hook = mountWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      var nextValue = nextCreate();
-      if (shouldDoubleInvokeUserFnsInHooksDEV) {
-        setIsStrictModeForDevtools(!0);
-        try {
-          nextCreate();
-        } finally {
-          setIsStrictModeForDevtools(!1);
-        }
-      }
-      hook.memoizedState = [nextValue, deps];
-      return nextValue;
-    },
-    useReducer: function (reducer, initialArg, init) {
-      var hook = mountWorkInProgressHook();
-      if (void 0 !== init) {
-        var initialState = init(initialArg);
-        if (shouldDoubleInvokeUserFnsInHooksDEV) {
-          setIsStrictModeForDevtools(!0);
-          try {
-            init(initialArg);
-          } finally {
-            setIsStrictModeForDevtools(!1);
-          }
-        }
-      } else initialState = initialArg;
-      hook.memoizedState = hook.baseState = initialState;
-      reducer = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: reducer,
-        lastRenderedState: initialState
-      };
-      hook.queue = reducer;
-      reducer = reducer.dispatch = dispatchReducerAction.bind(
-        null,
-        currentlyRenderingFiber,
-        reducer
-      );
-      return [hook.memoizedState, reducer];
-    },
-    useRef: function (initialValue) {
-      var hook = mountWorkInProgressHook();
-      initialValue = { current: initialValue };
-      return (hook.memoizedState = initialValue);
-    },
-    useState: function (initialState) {
-      initialState = mountStateImpl(initialState);
-      var queue = initialState.queue,
-        dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);
-      queue.dispatch = dispatch;
-      return [initialState.memoizedState, dispatch];
-    },
-    useDebugValue: mountDebugValue,
-    useDeferredValue: function (value, initialValue) {
-      var hook = mountWorkInProgressHook();
-      return mountDeferredValueImpl(hook, value, initialValue);
-    },
-    useTransition: function () {
-      var stateHook = mountStateImpl(!1);
-      stateHook = startTransition.bind(
-        null,
-        currentlyRenderingFiber,
-        stateHook.queue,
-        !0,
-        !1
-      );
-      mountWorkInProgressHook().memoizedState = stateHook;
-      return [!1, stateHook];
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      var fiber = currentlyRenderingFiber,
-        hook = mountWorkInProgressHook();
-      if (isHydrating) {
-        if (void 0 === getServerSnapshot)
-          throw Error(formatProdErrorMessage(407));
-        getServerSnapshot = getServerSnapshot();
-      } else {
-        getServerSnapshot = getSnapshot();
-        if (null === workInProgressRoot)
-          throw Error(formatProdErrorMessage(349));
-        0 !== (workInProgressRootRenderLanes & 127) ||
-          pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);
-      }
-      hook.memoizedState = getServerSnapshot;
-      var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };
-      hook.queue = inst;
-      mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [
-        subscribe
-      ]);
-      fiber.flags |= 2048;
-      pushSimpleEffect(
-        9,
-        { destroy: void 0 },
-        updateStoreInstance.bind(
-          null,
-          fiber,
-          inst,
-          getServerSnapshot,
-          getSnapshot
-        ),
-        null
-      );
-      return getServerSnapshot;
-    },
-    useId: function () {
-      var hook = mountWorkInProgressHook(),
-        identifierPrefix = workInProgressRoot.identifierPrefix;
-      if (isHydrating) {
-        var JSCompiler_inline_result = treeContextOverflow;
-        var idWithLeadingBit = treeContextId;
-        JSCompiler_inline_result =
-          (
-            idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))
-          ).toString(32) + JSCompiler_inline_result;
-        identifierPrefix =
-          "_" + identifierPrefix + "R_" + JSCompiler_inline_result;
-        JSCompiler_inline_result = localIdCounter++;
-        0 < JSCompiler_inline_result &&
-          (identifierPrefix += "H" + JSCompiler_inline_result.toString(32));
-        identifierPrefix += "_";
-      } else
-        (JSCompiler_inline_result = globalClientIdCounter++),
-          (identifierPrefix =
-            "_" +
-            identifierPrefix +
-            "r_" +
-            JSCompiler_inline_result.toString(32) +
-            "_");
-      return (hook.memoizedState = identifierPrefix);
-    },
-    useHostTransitionStatus: useHostTransitionStatus,
-    useFormState: mountActionState,
-    useActionState: mountActionState,
-    useOptimistic: function (passthrough) {
-      var hook = mountWorkInProgressHook();
-      hook.memoizedState = hook.baseState = passthrough;
-      var queue = {
-        pending: null,
-        lanes: 0,
-        dispatch: null,
-        lastRenderedReducer: null,
-        lastRenderedState: null
-      };
-      hook.queue = queue;
-      hook = dispatchOptimisticSetState.bind(
-        null,
-        currentlyRenderingFiber,
-        !0,
-        queue
-      );
-      queue.dispatch = hook;
-      return [passthrough, hook];
-    },
-    useMemoCache: useMemoCache,
-    useCacheRefresh: function () {
-      return (mountWorkInProgressHook().memoizedState = refreshCache.bind(
-        null,
-        currentlyRenderingFiber
-      ));
-    },
-    useEffectEvent: function (callback) {
-      var hook = mountWorkInProgressHook(),
-        ref = { impl: callback };
-      hook.memoizedState = ref;
-      return function () {
-        if (0 !== (executionContext & 2))
-          throw Error(formatProdErrorMessage(440));
-        return ref.impl.apply(void 0, arguments);
-      };
-    }
-  },
-  HooksDispatcherOnUpdate = {
-    readContext: readContext,
-    use: use,
-    useCallback: updateCallback,
-    useContext: readContext,
-    useEffect: updateEffect,
-    useImperativeHandle: updateImperativeHandle,
-    useInsertionEffect: updateInsertionEffect,
-    useLayoutEffect: updateLayoutEffect,
-    useMemo: updateMemo,
-    useReducer: updateReducer,
-    useRef: updateRef,
-    useState: function () {
-      return updateReducer(basicStateReducer);
-    },
-    useDebugValue: mountDebugValue,
-    useDeferredValue: function (value, initialValue) {
-      var hook = updateWorkInProgressHook();
-      return updateDeferredValueImpl(
-        hook,
-        currentHook.memoizedState,
-        value,
-        initialValue
-      );
-    },
-    useTransition: function () {
-      var booleanOrThenable = updateReducer(basicStateReducer)[0],
-        start = updateWorkInProgressHook().memoizedState;
-      return [
-        "boolean" === typeof booleanOrThenable
-          ? booleanOrThenable
-          : useThenable(booleanOrThenable),
-        start
-      ];
-    },
-    useSyncExternalStore: updateSyncExternalStore,
-    useId: updateId,
-    useHostTransitionStatus: useHostTransitionStatus,
-    useFormState: updateActionState,
-    useActionState: updateActionState,
-    useOptimistic: function (passthrough, reducer) {
-      var hook = updateWorkInProgressHook();
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    },
-    useMemoCache: useMemoCache,
-    useCacheRefresh: updateRefresh
-  };
-HooksDispatcherOnUpdate.useEffectEvent = updateEvent;
-var HooksDispatcherOnRerender = {
-  readContext: readContext,
-  use: use,
-  useCallback: updateCallback,
-  useContext: readContext,
-  useEffect: updateEffect,
-  useImperativeHandle: updateImperativeHandle,
-  useInsertionEffect: updateInsertionEffect,
-  useLayoutEffect: updateLayoutEffect,
-  useMemo: updateMemo,
-  useReducer: rerenderReducer,
-  useRef: updateRef,
-  useState: function () {
-    return rerenderReducer(basicStateReducer);
-  },
-  useDebugValue: mountDebugValue,
-  useDeferredValue: function (value, initialValue) {
-    var hook = updateWorkInProgressHook();
-    return null === currentHook
-      ? mountDeferredValueImpl(hook, value, initialValue)
-      : updateDeferredValueImpl(
-          hook,
-          currentHook.memoizedState,
-          value,
-          initialValue
-        );
-  },
-  useTransition: function () {
-    var booleanOrThenable = rerenderReducer(basicStateReducer)[0],
-      start = updateWorkInProgressHook().memoizedState;
-    return [
-      "boolean" === typeof booleanOrThenable
-        ? booleanOrThenable
-        : useThenable(booleanOrThenable),
-      start
-    ];
-  },
-  useSyncExternalStore: updateSyncExternalStore,
-  useId: updateId,
-  useHostTransitionStatus: useHostTransitionStatus,
-  useFormState: rerenderActionState,
-  useActionState: rerenderActionState,
-  useOptimistic: function (passthrough, reducer) {
-    var hook = updateWorkInProgressHook();
-    if (null !== currentHook)
-      return updateOptimisticImpl(hook, currentHook, passthrough, reducer);
-    hook.baseState = passthrough;
-    return [passthrough, hook.queue.dispatch];
-  },
-  useMemoCache: useMemoCache,
-  useCacheRefresh: updateRefresh
-};
-HooksDispatcherOnRerender.useEffectEvent = updateEvent;
-function applyDerivedStateFromProps(
-  workInProgress,
-  ctor,
-  getDerivedStateFromProps,
-  nextProps
-) {
-  ctor = workInProgress.memoizedState;
-  getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);
-  getDerivedStateFromProps =
-    null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps
-      ? ctor
-      : assign({}, ctor, getDerivedStateFromProps);
-  workInProgress.memoizedState = getDerivedStateFromProps;
-  0 === workInProgress.lanes &&
-    (workInProgress.updateQueue.baseState = getDerivedStateFromProps);
-}
-var classComponentUpdater = {
-  enqueueSetState: function (inst, payload, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.payload = payload;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    payload = enqueueUpdate(inst, update, lane);
-    null !== payload &&
-      (startUpdateTimerByLane(lane),
-      scheduleUpdateOnFiber(payload, inst, lane),
-      entangleTransitions(payload, inst, lane));
-  },
-  enqueueReplaceState: function (inst, payload, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.tag = 1;
-    update.payload = payload;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    payload = enqueueUpdate(inst, update, lane);
-    null !== payload &&
-      (startUpdateTimerByLane(lane),
-      scheduleUpdateOnFiber(payload, inst, lane),
-      entangleTransitions(payload, inst, lane));
-  },
-  enqueueForceUpdate: function (inst, callback) {
-    inst = inst._reactInternals;
-    var lane = requestUpdateLane(),
-      update = createUpdate(lane);
-    update.tag = 2;
-    void 0 !== callback && null !== callback && (update.callback = callback);
-    callback = enqueueUpdate(inst, update, lane);
-    null !== callback &&
-      (startUpdateTimerByLane(lane),
-      scheduleUpdateOnFiber(callback, inst, lane),
-      entangleTransitions(callback, inst, lane));
-  }
-};
-function checkShouldComponentUpdate(
-  workInProgress,
-  ctor,
-  oldProps,
-  newProps,
-  oldState,
-  newState,
-  nextContext
-) {
-  workInProgress = workInProgress.stateNode;
-  return "function" === typeof workInProgress.shouldComponentUpdate
-    ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)
-    : ctor.prototype && ctor.prototype.isPureReactComponent
-      ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)
-      : !0;
-}
-function callComponentWillReceiveProps(
-  workInProgress,
-  instance,
-  newProps,
-  nextContext
-) {
-  workInProgress = instance.state;
-  "function" === typeof instance.componentWillReceiveProps &&
-    instance.componentWillReceiveProps(newProps, nextContext);
-  "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);
-  instance.state !== workInProgress &&
-    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);
-}
-function resolveClassComponentProps(Component, baseProps) {
-  var newProps = baseProps;
-  if ("ref" in baseProps) {
-    newProps = {};
-    for (var propName in baseProps)
-      "ref" !== propName && (newProps[propName] = baseProps[propName]);
-  }
-  if ((Component = Component.defaultProps)) {
-    newProps === baseProps && (newProps = assign({}, newProps));
-    for (var propName$82 in Component)
-      void 0 === newProps[propName$82] &&
-        (newProps[propName$82] = Component[propName$82]);
-  }
-  return newProps;
-}
-function defaultOnUncaughtError(error) {
-  reportGlobalError(error);
-}
-function defaultOnCaughtError(error) {
-  console.error(error);
-}
-function defaultOnRecoverableError(error) {
-  reportGlobalError(error);
-}
-function logUncaughtError(root, errorInfo) {
-  try {
-    var onUncaughtError = root.onUncaughtError;
-    onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });
-  } catch (e$83) {
-    setTimeout(function () {
-      throw e$83;
-    });
-  }
-}
-function logCaughtError(root, boundary, errorInfo) {
-  try {
-    var onCaughtError = root.onCaughtError;
-    onCaughtError(errorInfo.value, {
-      componentStack: errorInfo.stack,
-      errorBoundary: 1 === boundary.tag ? boundary.stateNode : null
-    });
-  } catch (e$84) {
-    setTimeout(function () {
-      throw e$84;
-    });
-  }
-}
-function createRootErrorUpdate(root, errorInfo, lane) {
-  lane = createUpdate(lane);
-  lane.tag = 3;
-  lane.payload = { element: null };
-  lane.callback = function () {
-    logUncaughtError(root, errorInfo);
-  };
-  return lane;
-}
-function createClassErrorUpdate(lane) {
-  lane = createUpdate(lane);
-  lane.tag = 3;
-  return lane;
-}
-function initializeClassErrorUpdate(update, root, fiber, errorInfo) {
-  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;
-  if ("function" === typeof getDerivedStateFromError) {
-    var error = errorInfo.value;
-    update.payload = function () {
-      return getDerivedStateFromError(error);
-    };
-    update.callback = function () {
-      logCaughtError(root, fiber, errorInfo);
-    };
-  }
-  var inst = fiber.stateNode;
-  null !== inst &&
-    "function" === typeof inst.componentDidCatch &&
-    (update.callback = function () {
-      logCaughtError(root, fiber, errorInfo);
-      "function" !== typeof getDerivedStateFromError &&
-        (null === legacyErrorBoundariesThatAlreadyFailed
-          ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))
-          : legacyErrorBoundariesThatAlreadyFailed.add(this));
-      var stack = errorInfo.stack;
-      this.componentDidCatch(errorInfo.value, {
-        componentStack: null !== stack ? stack : ""
-      });
-    });
-}
-function throwException(
-  root,
-  returnFiber,
-  sourceFiber,
-  value,
-  rootRenderLanes
-) {
-  sourceFiber.flags |= 32768;
-  isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes);
-  if (
-    null !== value &&
-    "object" === typeof value &&
-    "function" === typeof value.then
-  ) {
-    returnFiber = sourceFiber.alternate;
-    null !== returnFiber &&
-      propagateParentContextChanges(
-        returnFiber,
-        sourceFiber,
-        rootRenderLanes,
-        !0
-      );
-    sourceFiber = suspenseHandlerStackCursor.current;
-    if (null !== sourceFiber) {
-      switch (sourceFiber.tag) {
-        case 31:
-        case 13:
-          return (
-            null === shellBoundary
-              ? renderDidSuspendDelayIfPossible()
-              : null === sourceFiber.alternate &&
-                0 === workInProgressRootExitStatus &&
-                (workInProgressRootExitStatus = 3),
-            (sourceFiber.flags &= -257),
-            (sourceFiber.flags |= 65536),
-            (sourceFiber.lanes = rootRenderLanes),
-            value === noopSuspenseyCommitThenable
-              ? (sourceFiber.flags |= 16384)
-              : ((returnFiber = sourceFiber.updateQueue),
-                null === returnFiber
-                  ? (sourceFiber.updateQueue = new Set([value]))
-                  : returnFiber.add(value),
-                attachPingListener(root, value, rootRenderLanes)),
-            !1
-          );
-        case 22:
-          return (
-            (sourceFiber.flags |= 65536),
-            value === noopSuspenseyCommitThenable
-              ? (sourceFiber.flags |= 16384)
-              : ((returnFiber = sourceFiber.updateQueue),
-                null === returnFiber
-                  ? ((returnFiber = {
-                      transitions: null,
-                      markerInstances: null,
-                      retryQueue: new Set([value])
-                    }),
-                    (sourceFiber.updateQueue = returnFiber))
-                  : ((sourceFiber = returnFiber.retryQueue),
-                    null === sourceFiber
-                      ? (returnFiber.retryQueue = new Set([value]))
-                      : sourceFiber.add(value)),
-                attachPingListener(root, value, rootRenderLanes)),
-            !1
-          );
-      }
-      throw Error(formatProdErrorMessage(435, sourceFiber.tag));
-    }
-    attachPingListener(root, value, rootRenderLanes);
-    renderDidSuspendDelayIfPossible();
-    return !1;
-  }
-  if (isHydrating)
-    return (
-      (returnFiber = suspenseHandlerStackCursor.current),
-      null !== returnFiber
-        ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),
-          (returnFiber.flags |= 65536),
-          (returnFiber.lanes = rootRenderLanes),
-          value !== HydrationMismatchException &&
-            ((root = Error(formatProdErrorMessage(422), { cause: value })),
-            queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))
-        : (value !== HydrationMismatchException &&
-            ((returnFiber = Error(formatProdErrorMessage(423), {
-              cause: value
-            })),
-            queueHydrationError(
-              createCapturedValueAtFiber(returnFiber, sourceFiber)
-            )),
-          (root = root.current.alternate),
-          (root.flags |= 65536),
-          (rootRenderLanes &= -rootRenderLanes),
-          (root.lanes |= rootRenderLanes),
-          (value = createCapturedValueAtFiber(value, sourceFiber)),
-          (rootRenderLanes = createRootErrorUpdate(
-            root.stateNode,
-            value,
-            rootRenderLanes
-          )),
-          enqueueCapturedUpdate(root, rootRenderLanes),
-          4 !== workInProgressRootExitStatus &&
-            (workInProgressRootExitStatus = 2)),
-      !1
-    );
-  var wrapperError = Error(formatProdErrorMessage(520), { cause: value });
-  wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);
-  null === workInProgressRootConcurrentErrors
-    ? (workInProgressRootConcurrentErrors = [wrapperError])
-    : workInProgressRootConcurrentErrors.push(wrapperError);
-  4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);
-  if (null === returnFiber) return !0;
-  value = createCapturedValueAtFiber(value, sourceFiber);
-  sourceFiber = returnFiber;
-  do {
-    switch (sourceFiber.tag) {
-      case 3:
-        return (
-          (sourceFiber.flags |= 65536),
-          (root = rootRenderLanes & -rootRenderLanes),
-          (sourceFiber.lanes |= root),
-          (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),
-          enqueueCapturedUpdate(sourceFiber, root),
-          !1
-        );
-      case 1:
-        if (
-          ((returnFiber = sourceFiber.type),
-          (wrapperError = sourceFiber.stateNode),
-          0 === (sourceFiber.flags & 128) &&
-            ("function" === typeof returnFiber.getDerivedStateFromError ||
-              (null !== wrapperError &&
-                "function" === typeof wrapperError.componentDidCatch &&
-                (null === legacyErrorBoundariesThatAlreadyFailed ||
-                  !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))
-        )
-          return (
-            (sourceFiber.flags |= 65536),
-            (rootRenderLanes &= -rootRenderLanes),
-            (sourceFiber.lanes |= rootRenderLanes),
-            (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),
-            initializeClassErrorUpdate(
-              rootRenderLanes,
-              root,
-              sourceFiber,
-              value
-            ),
-            enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
-            !1
-          );
-    }
-    sourceFiber = sourceFiber.return;
-  } while (null !== sourceFiber);
-  return !1;
-}
-var SelectiveHydrationException = Error(formatProdErrorMessage(461)),
-  didReceiveUpdate = !1;
-function reconcileChildren(current, workInProgress, nextChildren, renderLanes) {
-  workInProgress.child =
-    null === current
-      ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)
-      : reconcileChildFibers(
-          workInProgress,
-          current.child,
-          nextChildren,
-          renderLanes
-        );
-}
-function updateForwardRef(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  Component = Component.render;
-  var ref = workInProgress.ref;
-  if ("ref" in nextProps) {
-    var propsWithoutRef = {};
-    for (var key in nextProps)
-      "ref" !== key && (propsWithoutRef[key] = nextProps[key]);
-  } else propsWithoutRef = nextProps;
-  prepareToReadContext(workInProgress);
-  nextProps = renderWithHooks(
-    current,
-    workInProgress,
-    Component,
-    propsWithoutRef,
-    ref,
-    renderLanes
-  );
-  key = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && key && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  return workInProgress.child;
-}
-function updateMemoComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  if (null === current) {
-    var type = Component.type;
-    if (
-      "function" === typeof type &&
-      !shouldConstruct(type) &&
-      void 0 === type.defaultProps &&
-      null === Component.compare
-    )
-      return (
-        (workInProgress.tag = 15),
-        (workInProgress.type = type),
-        updateSimpleMemoComponent(
-          current,
-          workInProgress,
-          type,
-          nextProps,
-          renderLanes
-        )
-      );
-    current = createFiberFromTypeAndProps(
-      Component.type,
-      null,
-      nextProps,
-      workInProgress,
-      workInProgress.mode,
-      renderLanes
-    );
-    current.ref = workInProgress.ref;
-    current.return = workInProgress;
-    return (workInProgress.child = current);
-  }
-  type = current.child;
-  if (!checkScheduledUpdateOrContext(current, renderLanes)) {
-    var prevProps = type.memoizedProps;
-    Component = Component.compare;
-    Component = null !== Component ? Component : shallowEqual;
-    if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)
-      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-  }
-  workInProgress.flags |= 1;
-  current = createWorkInProgress(type, nextProps);
-  current.ref = workInProgress.ref;
-  current.return = workInProgress;
-  return (workInProgress.child = current);
-}
-function updateSimpleMemoComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  if (null !== current) {
-    var prevProps = current.memoizedProps;
-    if (
-      shallowEqual(prevProps, nextProps) &&
-      current.ref === workInProgress.ref
-    )
-      if (
-        ((didReceiveUpdate = !1),
-        (workInProgress.pendingProps = nextProps = prevProps),
-        checkScheduledUpdateOrContext(current, renderLanes))
-      )
-        0 !== (current.flags & 131072) && (didReceiveUpdate = !0);
-      else
-        return (
-          (workInProgress.lanes = current.lanes),
-          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-        );
-  }
-  return updateFunctionComponent(
-    current,
-    workInProgress,
-    Component,
-    nextProps,
-    renderLanes
-  );
-}
-function updateOffscreenComponent(
-  current,
-  workInProgress,
-  renderLanes,
-  nextProps
-) {
-  var nextChildren = nextProps.children,
-    prevState = null !== current ? current.memoizedState : null;
-  null === current &&
-    null === workInProgress.stateNode &&
-    (workInProgress.stateNode = {
-      _visibility: 1,
-      _pendingMarkers: null,
-      _retryCache: null,
-      _transitions: null
-    });
-  if ("hidden" === nextProps.mode) {
-    if (0 !== (workInProgress.flags & 128)) {
-      prevState =
-        null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;
-      if (null !== current) {
-        nextProps = workInProgress.child = current.child;
-        for (nextChildren = 0; null !== nextProps; )
-          (nextChildren =
-            nextChildren | nextProps.lanes | nextProps.childLanes),
-            (nextProps = nextProps.sibling);
-        nextProps = nextChildren & ~prevState;
-      } else (nextProps = 0), (workInProgress.child = null);
-      return deferHiddenOffscreenComponent(
-        current,
-        workInProgress,
-        prevState,
-        renderLanes,
-        nextProps
-      );
-    }
-    if (0 !== (renderLanes & 536870912))
-      (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),
-        null !== current &&
-          pushTransition(
-            workInProgress,
-            null !== prevState ? prevState.cachePool : null
-          ),
-        null !== prevState
-          ? pushHiddenContext(workInProgress, prevState)
-          : reuseHiddenContextOnStack(),
-        pushOffscreenSuspenseHandler(workInProgress);
-    else
-      return (
-        (nextProps = workInProgress.lanes = 536870912),
-        deferHiddenOffscreenComponent(
-          current,
-          workInProgress,
-          null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,
-          renderLanes,
-          nextProps
-        )
-      );
-  } else
-    null !== prevState
-      ? (pushTransition(workInProgress, prevState.cachePool),
-        pushHiddenContext(workInProgress, prevState),
-        reuseSuspenseHandlerOnStack(workInProgress),
-        (workInProgress.memoizedState = null))
-      : (null !== current && pushTransition(workInProgress, null),
-        reuseHiddenContextOnStack(),
-        reuseSuspenseHandlerOnStack(workInProgress));
-  reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-  return workInProgress.child;
-}
-function bailoutOffscreenComponent(current, workInProgress) {
-  (null !== current && 22 === current.tag) ||
-    null !== workInProgress.stateNode ||
-    (workInProgress.stateNode = {
-      _visibility: 1,
-      _pendingMarkers: null,
-      _retryCache: null,
-      _transitions: null
-    });
-  return workInProgress.sibling;
-}
-function deferHiddenOffscreenComponent(
-  current,
-  workInProgress,
-  nextBaseLanes,
-  renderLanes,
-  remainingChildLanes
-) {
-  var JSCompiler_inline_result = peekCacheFromPool();
-  JSCompiler_inline_result =
-    null === JSCompiler_inline_result
-      ? null
-      : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };
-  workInProgress.memoizedState = {
-    baseLanes: nextBaseLanes,
-    cachePool: JSCompiler_inline_result
-  };
-  null !== current && pushTransition(workInProgress, null);
-  reuseHiddenContextOnStack();
-  pushOffscreenSuspenseHandler(workInProgress);
-  null !== current &&
-    propagateParentContextChanges(current, workInProgress, renderLanes, !0);
-  workInProgress.childLanes = remainingChildLanes;
-  return null;
-}
-function mountActivityChildren(workInProgress, nextProps) {
-  nextProps = mountWorkInProgressOffscreenFiber(
-    { mode: nextProps.mode, children: nextProps.children },
-    workInProgress.mode
-  );
-  nextProps.ref = workInProgress.ref;
-  workInProgress.child = nextProps;
-  nextProps.return = workInProgress;
-  return nextProps;
-}
-function retryActivityComponentWithoutHydrating(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-  current = mountActivityChildren(workInProgress, workInProgress.pendingProps);
-  current.flags |= 2;
-  popSuspenseHandler(workInProgress);
-  workInProgress.memoizedState = null;
-  return current;
-}
-function updateActivityComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    didSuspend = 0 !== (workInProgress.flags & 128);
-  workInProgress.flags &= -129;
-  if (null === current) {
-    if (isHydrating) {
-      if ("hidden" === nextProps.mode)
-        return (
-          (current = mountActivityChildren(workInProgress, nextProps)),
-          (workInProgress.lanes = 536870912),
-          bailoutOffscreenComponent(null, current)
-        );
-      pushDehydratedActivitySuspenseHandler(workInProgress);
-      (current = nextHydratableInstance)
-        ? ((current = canHydrateHydrationBoundary(
-            current,
-            rootOrSingletonContext
-          )),
-          (current = null !== current && "&" === current.data ? current : null),
-          null !== current &&
-            ((workInProgress.memoizedState = {
-              dehydrated: current,
-              treeContext:
-                null !== treeContextProvider
-                  ? { id: treeContextId, overflow: treeContextOverflow }
-                  : null,
-              retryLane: 536870912,
-              hydrationErrors: null
-            }),
-            (renderLanes = createFiberFromDehydratedFragment(current)),
-            (renderLanes.return = workInProgress),
-            (workInProgress.child = renderLanes),
-            (hydrationParentFiber = workInProgress),
-            (nextHydratableInstance = null)))
-        : (current = null);
-      if (null === current) throw throwOnHydrationMismatch(workInProgress);
-      workInProgress.lanes = 536870912;
-      return null;
-    }
-    return mountActivityChildren(workInProgress, nextProps);
-  }
-  var prevState = current.memoizedState;
-  if (null !== prevState) {
-    var dehydrated = prevState.dehydrated;
-    pushDehydratedActivitySuspenseHandler(workInProgress);
-    if (didSuspend)
-      if (workInProgress.flags & 256)
-        (workInProgress.flags &= -257),
-          (workInProgress = retryActivityComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          ));
-      else if (null !== workInProgress.memoizedState)
-        (workInProgress.child = current.child),
-          (workInProgress.flags |= 128),
-          (workInProgress = null);
-      else throw Error(formatProdErrorMessage(558));
-    else if (
-      (didReceiveUpdate ||
-        propagateParentContextChanges(current, workInProgress, renderLanes, !1),
-      (didSuspend = 0 !== (renderLanes & current.childLanes)),
-      didReceiveUpdate || didSuspend)
-    ) {
-      nextProps = workInProgressRoot;
-      if (
-        null !== nextProps &&
-        ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),
-        0 !== dehydrated && dehydrated !== prevState.retryLane)
-      )
-        throw (
-          ((prevState.retryLane = dehydrated),
-          enqueueConcurrentRenderForLane(current, dehydrated),
-          scheduleUpdateOnFiber(nextProps, current, dehydrated),
-          SelectiveHydrationException)
-        );
-      renderDidSuspendDelayIfPossible();
-      workInProgress = retryActivityComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else
-      (current = prevState.treeContext),
-        (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),
-        (hydrationParentFiber = workInProgress),
-        (isHydrating = !0),
-        (hydrationErrors = null),
-        (rootOrSingletonContext = !1),
-        null !== current &&
-          restoreSuspendedTreeContext(workInProgress, current),
-        (workInProgress = mountActivityChildren(workInProgress, nextProps)),
-        (workInProgress.flags |= 4096);
-    return workInProgress;
-  }
-  current = createWorkInProgress(current.child, {
-    mode: nextProps.mode,
-    children: nextProps.children
-  });
-  current.ref = workInProgress.ref;
-  workInProgress.child = current;
-  current.return = workInProgress;
-  return current;
-}
-function markRef(current, workInProgress) {
-  var ref = workInProgress.ref;
-  if (null === ref)
-    null !== current &&
-      null !== current.ref &&
-      (workInProgress.flags |= 4194816);
-  else {
-    if ("function" !== typeof ref && "object" !== typeof ref)
-      throw Error(formatProdErrorMessage(284));
-    if (null === current || current.ref !== ref)
-      workInProgress.flags |= 4194816;
-  }
-}
-function updateFunctionComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  Component = renderWithHooks(
-    current,
-    workInProgress,
-    Component,
-    nextProps,
-    void 0,
-    renderLanes
-  );
-  nextProps = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && nextProps && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, Component, renderLanes);
-  return workInProgress.child;
-}
-function replayFunctionComponent(
-  current,
-  workInProgress,
-  nextProps,
-  Component,
-  secondArg,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  workInProgress.updateQueue = null;
-  nextProps = renderWithHooksAgain(
-    workInProgress,
-    Component,
-    nextProps,
-    secondArg
-  );
-  finishRenderingHooks(current);
-  Component = checkDidRenderIdHook();
-  if (null !== current && !didReceiveUpdate)
-    return (
-      bailoutHooks(current, workInProgress, renderLanes),
-      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
-    );
-  isHydrating && Component && pushMaterializedTreeId(workInProgress);
-  workInProgress.flags |= 1;
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  return workInProgress.child;
-}
-function updateClassComponent(
-  current,
-  workInProgress,
-  Component,
-  nextProps,
-  renderLanes
-) {
-  prepareToReadContext(workInProgress);
-  if (null === workInProgress.stateNode) {
-    var context = emptyContextObject,
-      contextType = Component.contextType;
-    "object" === typeof contextType &&
-      null !== contextType &&
-      (context = readContext(contextType));
-    context = new Component(nextProps, context);
-    workInProgress.memoizedState =
-      null !== context.state && void 0 !== context.state ? context.state : null;
-    context.updater = classComponentUpdater;
-    workInProgress.stateNode = context;
-    context._reactInternals = workInProgress;
-    context = workInProgress.stateNode;
-    context.props = nextProps;
-    context.state = workInProgress.memoizedState;
-    context.refs = {};
-    initializeUpdateQueue(workInProgress);
-    contextType = Component.contextType;
-    context.context =
-      "object" === typeof contextType && null !== contextType
-        ? readContext(contextType)
-        : emptyContextObject;
-    context.state = workInProgress.memoizedState;
-    contextType = Component.getDerivedStateFromProps;
-    "function" === typeof contextType &&
-      (applyDerivedStateFromProps(
-        workInProgress,
-        Component,
-        contextType,
-        nextProps
-      ),
-      (context.state = workInProgress.memoizedState));
-    "function" === typeof Component.getDerivedStateFromProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate ||
-      ("function" !== typeof context.UNSAFE_componentWillMount &&
-        "function" !== typeof context.componentWillMount) ||
-      ((contextType = context.state),
-      "function" === typeof context.componentWillMount &&
-        context.componentWillMount(),
-      "function" === typeof context.UNSAFE_componentWillMount &&
-        context.UNSAFE_componentWillMount(),
-      contextType !== context.state &&
-        classComponentUpdater.enqueueReplaceState(context, context.state, null),
-      processUpdateQueue(workInProgress, nextProps, context, renderLanes),
-      suspendIfUpdateReadFromEntangledAsyncAction(),
-      (context.state = workInProgress.memoizedState));
-    "function" === typeof context.componentDidMount &&
-      (workInProgress.flags |= 4194308);
-    nextProps = !0;
-  } else if (null === current) {
-    context = workInProgress.stateNode;
-    var unresolvedOldProps = workInProgress.memoizedProps,
-      oldProps = resolveClassComponentProps(Component, unresolvedOldProps);
-    context.props = oldProps;
-    var oldContext = context.context,
-      contextType$jscomp$0 = Component.contextType;
-    contextType = emptyContextObject;
-    "object" === typeof contextType$jscomp$0 &&
-      null !== contextType$jscomp$0 &&
-      (contextType = readContext(contextType$jscomp$0));
-    var getDerivedStateFromProps = Component.getDerivedStateFromProps;
-    contextType$jscomp$0 =
-      "function" === typeof getDerivedStateFromProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate;
-    unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;
-    contextType$jscomp$0 ||
-      ("function" !== typeof context.UNSAFE_componentWillReceiveProps &&
-        "function" !== typeof context.componentWillReceiveProps) ||
-      ((unresolvedOldProps || oldContext !== contextType) &&
-        callComponentWillReceiveProps(
-          workInProgress,
-          context,
-          nextProps,
-          contextType
-        ));
-    hasForceUpdate = !1;
-    var oldState = workInProgress.memoizedState;
-    context.state = oldState;
-    processUpdateQueue(workInProgress, nextProps, context, renderLanes);
-    suspendIfUpdateReadFromEntangledAsyncAction();
-    oldContext = workInProgress.memoizedState;
-    unresolvedOldProps || oldState !== oldContext || hasForceUpdate
-      ? ("function" === typeof getDerivedStateFromProps &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            getDerivedStateFromProps,
-            nextProps
-          ),
-          (oldContext = workInProgress.memoizedState)),
-        (oldProps =
-          hasForceUpdate ||
-          checkShouldComponentUpdate(
-            workInProgress,
-            Component,
-            oldProps,
-            nextProps,
-            oldState,
-            oldContext,
-            contextType
-          ))
-          ? (contextType$jscomp$0 ||
-              ("function" !== typeof context.UNSAFE_componentWillMount &&
-                "function" !== typeof context.componentWillMount) ||
-              ("function" === typeof context.componentWillMount &&
-                context.componentWillMount(),
-              "function" === typeof context.UNSAFE_componentWillMount &&
-                context.UNSAFE_componentWillMount()),
-            "function" === typeof context.componentDidMount &&
-              (workInProgress.flags |= 4194308))
-          : ("function" === typeof context.componentDidMount &&
-              (workInProgress.flags |= 4194308),
-            (workInProgress.memoizedProps = nextProps),
-            (workInProgress.memoizedState = oldContext)),
-        (context.props = nextProps),
-        (context.state = oldContext),
-        (context.context = contextType),
-        (nextProps = oldProps))
-      : ("function" === typeof context.componentDidMount &&
-          (workInProgress.flags |= 4194308),
-        (nextProps = !1));
-  } else {
-    context = workInProgress.stateNode;
-    cloneUpdateQueue(current, workInProgress);
-    contextType = workInProgress.memoizedProps;
-    contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);
-    context.props = contextType$jscomp$0;
-    getDerivedStateFromProps = workInProgress.pendingProps;
-    oldState = context.context;
-    oldContext = Component.contextType;
-    oldProps = emptyContextObject;
-    "object" === typeof oldContext &&
-      null !== oldContext &&
-      (oldProps = readContext(oldContext));
-    unresolvedOldProps = Component.getDerivedStateFromProps;
-    (oldContext =
-      "function" === typeof unresolvedOldProps ||
-      "function" === typeof context.getSnapshotBeforeUpdate) ||
-      ("function" !== typeof context.UNSAFE_componentWillReceiveProps &&
-        "function" !== typeof context.componentWillReceiveProps) ||
-      ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&
-        callComponentWillReceiveProps(
-          workInProgress,
-          context,
-          nextProps,
-          oldProps
-        ));
-    hasForceUpdate = !1;
-    oldState = workInProgress.memoizedState;
-    context.state = oldState;
-    processUpdateQueue(workInProgress, nextProps, context, renderLanes);
-    suspendIfUpdateReadFromEntangledAsyncAction();
-    var newState = workInProgress.memoizedState;
-    contextType !== getDerivedStateFromProps ||
-    oldState !== newState ||
-    hasForceUpdate ||
-    (null !== current &&
-      null !== current.dependencies &&
-      checkIfContextChanged(current.dependencies))
-      ? ("function" === typeof unresolvedOldProps &&
-          (applyDerivedStateFromProps(
-            workInProgress,
-            Component,
-            unresolvedOldProps,
-            nextProps
-          ),
-          (newState = workInProgress.memoizedState)),
-        (contextType$jscomp$0 =
-          hasForceUpdate ||
-          checkShouldComponentUpdate(
-            workInProgress,
-            Component,
-            contextType$jscomp$0,
-            nextProps,
-            oldState,
-            newState,
-            oldProps
-          ) ||
-          (null !== current &&
-            null !== current.dependencies &&
-            checkIfContextChanged(current.dependencies)))
-          ? (oldContext ||
-              ("function" !== typeof context.UNSAFE_componentWillUpdate &&
-                "function" !== typeof context.componentWillUpdate) ||
-              ("function" === typeof context.componentWillUpdate &&
-                context.componentWillUpdate(nextProps, newState, oldProps),
-              "function" === typeof context.UNSAFE_componentWillUpdate &&
-                context.UNSAFE_componentWillUpdate(
-                  nextProps,
-                  newState,
-                  oldProps
-                )),
-            "function" === typeof context.componentDidUpdate &&
-              (workInProgress.flags |= 4),
-            "function" === typeof context.getSnapshotBeforeUpdate &&
-              (workInProgress.flags |= 1024))
-          : ("function" !== typeof context.componentDidUpdate ||
-              (contextType === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 4),
-            "function" !== typeof context.getSnapshotBeforeUpdate ||
-              (contextType === current.memoizedProps &&
-                oldState === current.memoizedState) ||
-              (workInProgress.flags |= 1024),
-            (workInProgress.memoizedProps = nextProps),
-            (workInProgress.memoizedState = newState)),
-        (context.props = nextProps),
-        (context.state = newState),
-        (context.context = oldProps),
-        (nextProps = contextType$jscomp$0))
-      : ("function" !== typeof context.componentDidUpdate ||
-          (contextType === current.memoizedProps &&
-            oldState === current.memoizedState) ||
-          (workInProgress.flags |= 4),
-        "function" !== typeof context.getSnapshotBeforeUpdate ||
-          (contextType === current.memoizedProps &&
-            oldState === current.memoizedState) ||
-          (workInProgress.flags |= 1024),
-        (nextProps = !1));
-  }
-  context = nextProps;
-  markRef(current, workInProgress);
-  nextProps = 0 !== (workInProgress.flags & 128);
-  context || nextProps
-    ? ((context = workInProgress.stateNode),
-      nextProps && "function" !== typeof Component.getDerivedStateFromError
-        ? ((Component = null), (profilerStartTime = -1))
-        : (Component = context.render()),
-      (workInProgress.flags |= 1),
-      null !== current && nextProps
-        ? ((workInProgress.child = reconcileChildFibers(
-            workInProgress,
-            current.child,
-            null,
-            renderLanes
-          )),
-          (workInProgress.child = reconcileChildFibers(
-            workInProgress,
-            null,
-            Component,
-            renderLanes
-          )))
-        : reconcileChildren(current, workInProgress, Component, renderLanes),
-      (workInProgress.memoizedState = context.state),
-      (current = workInProgress.child))
-    : (current = bailoutOnAlreadyFinishedWork(
-        current,
-        workInProgress,
-        renderLanes
-      ));
-  return current;
-}
-function mountHostRootWithoutHydrating(
-  current,
-  workInProgress,
-  nextChildren,
-  renderLanes
-) {
-  resetHydrationState();
-  workInProgress.flags |= 256;
-  reconcileChildren(current, workInProgress, nextChildren, renderLanes);
-  return workInProgress.child;
-}
-var SUSPENDED_MARKER = {
-  dehydrated: null,
-  treeContext: null,
-  retryLane: 0,
-  hydrationErrors: null
-};
-function mountSuspenseOffscreenState(renderLanes) {
-  return { baseLanes: renderLanes, cachePool: getSuspendedCache() };
-}
-function getRemainingWorkInPrimaryTree(
-  current,
-  primaryTreeDidDefer,
-  renderLanes
-) {
-  current = null !== current ? current.childLanes & ~renderLanes : 0;
-  primaryTreeDidDefer && (current |= workInProgressDeferredLane);
-  return current;
-}
-function updateSuspenseComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    showFallback = !1,
-    didSuspend = 0 !== (workInProgress.flags & 128),
-    JSCompiler_temp;
-  (JSCompiler_temp = didSuspend) ||
-    (JSCompiler_temp =
-      null !== current && null === current.memoizedState
-        ? !1
-        : 0 !== (suspenseStackCursor.current & 2));
-  JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));
-  JSCompiler_temp = 0 !== (workInProgress.flags & 32);
-  workInProgress.flags &= -33;
-  if (null === current) {
-    if (isHydrating) {
-      showFallback
-        ? pushPrimaryTreeSuspenseHandler(workInProgress)
-        : reuseSuspenseHandlerOnStack(workInProgress);
-      (current = nextHydratableInstance)
-        ? ((current = canHydrateHydrationBoundary(
-            current,
-            rootOrSingletonContext
-          )),
-          (current = null !== current && "&" !== current.data ? current : null),
-          null !== current &&
-            ((workInProgress.memoizedState = {
-              dehydrated: current,
-              treeContext:
-                null !== treeContextProvider
-                  ? { id: treeContextId, overflow: treeContextOverflow }
-                  : null,
-              retryLane: 536870912,
-              hydrationErrors: null
-            }),
-            (renderLanes = createFiberFromDehydratedFragment(current)),
-            (renderLanes.return = workInProgress),
-            (workInProgress.child = renderLanes),
-            (hydrationParentFiber = workInProgress),
-            (nextHydratableInstance = null)))
-        : (current = null);
-      if (null === current) throw throwOnHydrationMismatch(workInProgress);
-      isSuspenseInstanceFallback(current)
-        ? (workInProgress.lanes = 32)
-        : (workInProgress.lanes = 536870912);
-      return null;
-    }
-    var nextPrimaryChildren = nextProps.children;
-    nextProps = nextProps.fallback;
-    if (showFallback)
-      return (
-        reuseSuspenseHandlerOnStack(workInProgress),
-        (showFallback = workInProgress.mode),
-        (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(
-          { mode: "hidden", children: nextPrimaryChildren },
-          showFallback
-        )),
-        (nextProps = createFiberFromFragment(
-          nextProps,
-          showFallback,
-          renderLanes,
-          null
-        )),
-        (nextPrimaryChildren.return = workInProgress),
-        (nextProps.return = workInProgress),
-        (nextPrimaryChildren.sibling = nextProps),
-        (workInProgress.child = nextPrimaryChildren),
-        (nextProps = workInProgress.child),
-        (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),
-        (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-          current,
-          JSCompiler_temp,
-          renderLanes
-        )),
-        (workInProgress.memoizedState = SUSPENDED_MARKER),
-        bailoutOffscreenComponent(null, nextProps)
-      );
-    pushPrimaryTreeSuspenseHandler(workInProgress);
-    return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);
-  }
-  var prevState = current.memoizedState;
-  if (
-    null !== prevState &&
-    ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)
-  ) {
-    if (didSuspend)
-      workInProgress.flags & 256
-        ? (pushPrimaryTreeSuspenseHandler(workInProgress),
-          (workInProgress.flags &= -257),
-          (workInProgress = retrySuspenseComponentWithoutHydrating(
-            current,
-            workInProgress,
-            renderLanes
-          )))
-        : null !== workInProgress.memoizedState
-          ? (reuseSuspenseHandlerOnStack(workInProgress),
-            (workInProgress.child = current.child),
-            (workInProgress.flags |= 128),
-            (workInProgress = null))
-          : (reuseSuspenseHandlerOnStack(workInProgress),
-            (nextPrimaryChildren = nextProps.fallback),
-            (showFallback = workInProgress.mode),
-            (nextProps = mountWorkInProgressOffscreenFiber(
-              { mode: "visible", children: nextProps.children },
-              showFallback
-            )),
-            (nextPrimaryChildren = createFiberFromFragment(
-              nextPrimaryChildren,
-              showFallback,
-              renderLanes,
-              null
-            )),
-            (nextPrimaryChildren.flags |= 2),
-            (nextProps.return = workInProgress),
-            (nextPrimaryChildren.return = workInProgress),
-            (nextProps.sibling = nextPrimaryChildren),
-            (workInProgress.child = nextProps),
-            reconcileChildFibers(
-              workInProgress,
-              current.child,
-              null,
-              renderLanes
-            ),
-            (nextProps = workInProgress.child),
-            (nextProps.memoizedState =
-              mountSuspenseOffscreenState(renderLanes)),
-            (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-              current,
-              JSCompiler_temp,
-              renderLanes
-            )),
-            (workInProgress.memoizedState = SUSPENDED_MARKER),
-            (workInProgress = bailoutOffscreenComponent(null, nextProps)));
-    else if (
-      (pushPrimaryTreeSuspenseHandler(workInProgress),
-      isSuspenseInstanceFallback(nextPrimaryChildren))
-    ) {
-      JSCompiler_temp =
-        nextPrimaryChildren.nextSibling &&
-        nextPrimaryChildren.nextSibling.dataset;
-      if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;
-      JSCompiler_temp = digest;
-      nextProps = Error(formatProdErrorMessage(419));
-      nextProps.stack = "";
-      nextProps.digest = JSCompiler_temp;
-      queueHydrationError({ value: nextProps, source: null, stack: null });
-      workInProgress = retrySuspenseComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else if (
-      (didReceiveUpdate ||
-        propagateParentContextChanges(current, workInProgress, renderLanes, !1),
-      (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),
-      didReceiveUpdate || JSCompiler_temp)
-    ) {
-      JSCompiler_temp = workInProgressRoot;
-      if (
-        null !== JSCompiler_temp &&
-        ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),
-        0 !== nextProps && nextProps !== prevState.retryLane)
-      )
-        throw (
-          ((prevState.retryLane = nextProps),
-          enqueueConcurrentRenderForLane(current, nextProps),
-          scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),
-          SelectiveHydrationException)
-        );
-      isSuspenseInstancePending(nextPrimaryChildren) ||
-        renderDidSuspendDelayIfPossible();
-      workInProgress = retrySuspenseComponentWithoutHydrating(
-        current,
-        workInProgress,
-        renderLanes
-      );
-    } else
-      isSuspenseInstancePending(nextPrimaryChildren)
-        ? ((workInProgress.flags |= 192),
-          (workInProgress.child = current.child),
-          (workInProgress = null))
-        : ((current = prevState.treeContext),
-          (nextHydratableInstance = getNextHydratable(
-            nextPrimaryChildren.nextSibling
-          )),
-          (hydrationParentFiber = workInProgress),
-          (isHydrating = !0),
-          (hydrationErrors = null),
-          (rootOrSingletonContext = !1),
-          null !== current &&
-            restoreSuspendedTreeContext(workInProgress, current),
-          (workInProgress = mountSuspensePrimaryChildren(
-            workInProgress,
-            nextProps.children
-          )),
-          (workInProgress.flags |= 4096));
-    return workInProgress;
-  }
-  if (showFallback)
-    return (
-      reuseSuspenseHandlerOnStack(workInProgress),
-      (nextPrimaryChildren = nextProps.fallback),
-      (showFallback = workInProgress.mode),
-      (prevState = current.child),
-      (digest = prevState.sibling),
-      (nextProps = createWorkInProgress(prevState, {
-        mode: "hidden",
-        children: nextProps.children
-      })),
-      (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),
-      null !== digest
-        ? (nextPrimaryChildren = createWorkInProgress(
-            digest,
-            nextPrimaryChildren
-          ))
-        : ((nextPrimaryChildren = createFiberFromFragment(
-            nextPrimaryChildren,
-            showFallback,
-            renderLanes,
-            null
-          )),
-          (nextPrimaryChildren.flags |= 2)),
-      (nextPrimaryChildren.return = workInProgress),
-      (nextProps.return = workInProgress),
-      (nextProps.sibling = nextPrimaryChildren),
-      (workInProgress.child = nextProps),
-      bailoutOffscreenComponent(null, nextProps),
-      (nextProps = workInProgress.child),
-      (nextPrimaryChildren = current.child.memoizedState),
-      null === nextPrimaryChildren
-        ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))
-        : ((showFallback = nextPrimaryChildren.cachePool),
-          null !== showFallback
-            ? ((prevState = CacheContext._currentValue),
-              (showFallback =
-                showFallback.parent !== prevState
-                  ? { parent: prevState, pool: prevState }
-                  : showFallback))
-            : (showFallback = getSuspendedCache()),
-          (nextPrimaryChildren = {
-            baseLanes: nextPrimaryChildren.baseLanes | renderLanes,
-            cachePool: showFallback
-          })),
-      (nextProps.memoizedState = nextPrimaryChildren),
-      (nextProps.childLanes = getRemainingWorkInPrimaryTree(
-        current,
-        JSCompiler_temp,
-        renderLanes
-      )),
-      (workInProgress.memoizedState = SUSPENDED_MARKER),
-      bailoutOffscreenComponent(current.child, nextProps)
-    );
-  pushPrimaryTreeSuspenseHandler(workInProgress);
-  renderLanes = current.child;
-  current = renderLanes.sibling;
-  renderLanes = createWorkInProgress(renderLanes, {
-    mode: "visible",
-    children: nextProps.children
-  });
-  renderLanes.return = workInProgress;
-  renderLanes.sibling = null;
-  null !== current &&
-    ((JSCompiler_temp = workInProgress.deletions),
-    null === JSCompiler_temp
-      ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))
-      : JSCompiler_temp.push(current));
-  workInProgress.child = renderLanes;
-  workInProgress.memoizedState = null;
-  return renderLanes;
-}
-function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {
-  primaryChildren = mountWorkInProgressOffscreenFiber(
-    { mode: "visible", children: primaryChildren },
-    workInProgress.mode
-  );
-  primaryChildren.return = workInProgress;
-  return (workInProgress.child = primaryChildren);
-}
-function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {
-  offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);
-  offscreenProps.lanes = 0;
-  return offscreenProps;
-}
-function retrySuspenseComponentWithoutHydrating(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  reconcileChildFibers(workInProgress, current.child, null, renderLanes);
-  current = mountSuspensePrimaryChildren(
-    workInProgress,
-    workInProgress.pendingProps.children
-  );
-  current.flags |= 2;
-  workInProgress.memoizedState = null;
-  return current;
-}
-function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {
-  fiber.lanes |= renderLanes;
-  var alternate = fiber.alternate;
-  null !== alternate && (alternate.lanes |= renderLanes);
-  scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);
-}
-function initSuspenseListRenderState(
-  workInProgress,
-  isBackwards,
-  tail,
-  lastContentRow,
-  tailMode,
-  treeForkCount
-) {
-  var renderState = workInProgress.memoizedState;
-  null === renderState
-    ? (workInProgress.memoizedState = {
-        isBackwards: isBackwards,
-        rendering: null,
-        renderingStartTime: 0,
-        last: lastContentRow,
-        tail: tail,
-        tailMode: tailMode,
-        treeForkCount: treeForkCount
-      })
-    : ((renderState.isBackwards = isBackwards),
-      (renderState.rendering = null),
-      (renderState.renderingStartTime = 0),
-      (renderState.last = lastContentRow),
-      (renderState.tail = tail),
-      (renderState.tailMode = tailMode),
-      (renderState.treeForkCount = treeForkCount));
-}
-function updateSuspenseListComponent(current, workInProgress, renderLanes) {
-  var nextProps = workInProgress.pendingProps,
-    revealOrder = nextProps.revealOrder,
-    tailMode = nextProps.tail;
-  nextProps = nextProps.children;
-  var suspenseContext = suspenseStackCursor.current,
-    shouldForceFallback = 0 !== (suspenseContext & 2);
-  shouldForceFallback
-    ? ((suspenseContext = (suspenseContext & 1) | 2),
-      (workInProgress.flags |= 128))
-    : (suspenseContext &= 1);
-  push(suspenseStackCursor, suspenseContext);
-  reconcileChildren(current, workInProgress, nextProps, renderLanes);
-  nextProps = isHydrating ? treeForkCount : 0;
-  if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))
-    a: for (current = workInProgress.child; null !== current; ) {
-      if (13 === current.tag)
-        null !== current.memoizedState &&
-          scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-      else if (19 === current.tag)
-        scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
-      else if (null !== current.child) {
-        current.child.return = current;
-        current = current.child;
-        continue;
-      }
-      if (current === workInProgress) break a;
-      for (; null === current.sibling; ) {
-        if (null === current.return || current.return === workInProgress)
-          break a;
-        current = current.return;
-      }
-      current.sibling.return = current.return;
-      current = current.sibling;
-    }
-  switch (revealOrder) {
-    case "forwards":
-      renderLanes = workInProgress.child;
-      for (revealOrder = null; null !== renderLanes; )
-        (current = renderLanes.alternate),
-          null !== current &&
-            null === findFirstSuspended(current) &&
-            (revealOrder = renderLanes),
-          (renderLanes = renderLanes.sibling);
-      renderLanes = revealOrder;
-      null === renderLanes
-        ? ((revealOrder = workInProgress.child), (workInProgress.child = null))
-        : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));
-      initSuspenseListRenderState(
-        workInProgress,
-        !1,
-        revealOrder,
-        renderLanes,
-        tailMode,
-        nextProps
-      );
-      break;
-    case "backwards":
-    case "unstable_legacy-backwards":
-      renderLanes = null;
-      revealOrder = workInProgress.child;
-      for (workInProgress.child = null; null !== revealOrder; ) {
-        current = revealOrder.alternate;
-        if (null !== current && null === findFirstSuspended(current)) {
-          workInProgress.child = revealOrder;
-          break;
-        }
-        current = revealOrder.sibling;
-        revealOrder.sibling = renderLanes;
-        renderLanes = revealOrder;
-        revealOrder = current;
-      }
-      initSuspenseListRenderState(
-        workInProgress,
-        !0,
-        renderLanes,
-        null,
-        tailMode,
-        nextProps
-      );
-      break;
-    case "together":
-      initSuspenseListRenderState(
-        workInProgress,
-        !1,
-        null,
-        null,
-        void 0,
-        nextProps
-      );
-      break;
-    default:
-      workInProgress.memoizedState = null;
-  }
-  return workInProgress.child;
-}
-function bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {
-  null !== current && (workInProgress.dependencies = current.dependencies);
-  profilerStartTime = -1;
-  workInProgressRootSkippedLanes |= workInProgress.lanes;
-  if (0 === (renderLanes & workInProgress.childLanes))
-    if (null !== current) {
-      if (
-        (propagateParentContextChanges(
-          current,
-          workInProgress,
-          renderLanes,
-          !1
-        ),
-        0 === (renderLanes & workInProgress.childLanes))
-      )
-        return null;
-    } else return null;
-  if (null !== current && workInProgress.child !== current.child)
-    throw Error(formatProdErrorMessage(153));
-  if (null !== workInProgress.child) {
-    current = workInProgress.child;
-    renderLanes = createWorkInProgress(current, current.pendingProps);
-    workInProgress.child = renderLanes;
-    for (renderLanes.return = workInProgress; null !== current.sibling; )
-      (current = current.sibling),
-        (renderLanes = renderLanes.sibling =
-          createWorkInProgress(current, current.pendingProps)),
-        (renderLanes.return = workInProgress);
-    renderLanes.sibling = null;
-  }
-  return workInProgress.child;
-}
-function checkScheduledUpdateOrContext(current, renderLanes) {
-  if (0 !== (current.lanes & renderLanes)) return !0;
-  current = current.dependencies;
-  return null !== current && checkIfContextChanged(current) ? !0 : !1;
-}
-function attemptEarlyBailoutIfNoScheduledUpdate(
-  current,
-  workInProgress,
-  renderLanes
-) {
-  switch (workInProgress.tag) {
-    case 3:
-      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
-      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);
-      resetHydrationState();
-      break;
-    case 27:
-    case 5:
-      pushHostContext(workInProgress);
-      break;
-    case 4:
-      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
-      break;
-    case 10:
-      pushProvider(
-        workInProgress,
-        workInProgress.type,
-        workInProgress.memoizedProps.value
-      );
-      break;
-    case 12:
-      0 !== (renderLanes & workInProgress.childLanes) &&
-        (workInProgress.flags |= 4);
-      workInProgress.flags |= 2048;
-      var stateNode = workInProgress.stateNode;
-      stateNode.effectDuration = -0;
-      stateNode.passiveEffectDuration = -0;
-      break;
-    case 31:
-      if (null !== workInProgress.memoizedState)
-        return (
-          (workInProgress.flags |= 128),
-          pushDehydratedActivitySuspenseHandler(workInProgress),
-          null
-        );
-      break;
-    case 13:
-      stateNode = workInProgress.memoizedState;
-      if (null !== stateNode) {
-        if (null !== stateNode.dehydrated)
-          return (
-            pushPrimaryTreeSuspenseHandler(workInProgress),
-            (workInProgress.flags |= 128),
-            null
-          );
-        if (0 !== (renderLanes & workInProgress.child.childLanes))
-          return updateSuspenseComponent(current, workInProgress, renderLanes);
-        pushPrimaryTreeSuspenseHandler(workInProgress);
-        current = bailoutOnAlreadyFinishedWork(
-          current,
-          workInProgress,
-          renderLanes
-        );
-        return null !== current ? current.sibling : null;
-      }
-      pushPrimaryTreeSuspenseHandler(workInProgress);
-      break;
-    case 19:
-      var didSuspendBefore = 0 !== (current.flags & 128);
-      stateNode = 0 !== (renderLanes & workInProgress.childLanes);
-      stateNode ||
-        (propagateParentContextChanges(
-          current,
-          workInProgress,
-          renderLanes,
-          !1
-        ),
-        (stateNode = 0 !== (renderLanes & workInProgress.childLanes)));
-      if (didSuspendBefore) {
-        if (stateNode)
-          return updateSuspenseListComponent(
-            current,
-            workInProgress,
-            renderLanes
-          );
-        workInProgress.flags |= 128;
-      }
-      didSuspendBefore = workInProgress.memoizedState;
-      null !== didSuspendBefore &&
-        ((didSuspendBefore.rendering = null),
-        (didSuspendBefore.tail = null),
-        (didSuspendBefore.lastEffect = null));
-      push(suspenseStackCursor, suspenseStackCursor.current);
-      if (stateNode) break;
-      else return null;
-    case 22:
-      return (
-        (workInProgress.lanes = 0),
-        updateOffscreenComponent(
-          current,
-          workInProgress,
-          renderLanes,
-          workInProgress.pendingProps
-        )
-      );
-    case 24:
-      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);
-  }
-  return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);
-}
-function beginWork(current, workInProgress, renderLanes) {
-  if (null !== current)
-    if (current.memoizedProps !== workInProgress.pendingProps)
-      didReceiveUpdate = !0;
-    else {
-      if (
-        !checkScheduledUpdateOrContext(current, renderLanes) &&
-        0 === (workInProgress.flags & 128)
-      )
-        return (
-          (didReceiveUpdate = !1),
-          attemptEarlyBailoutIfNoScheduledUpdate(
-            current,
-            workInProgress,
-            renderLanes
-          )
-        );
-      didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;
-    }
-  else
-    (didReceiveUpdate = !1),
-      isHydrating &&
-        0 !== (workInProgress.flags & 1048576) &&
-        pushTreeId(workInProgress, treeForkCount, workInProgress.index);
-  workInProgress.lanes = 0;
-  switch (workInProgress.tag) {
-    case 16:
-      a: {
-        var props = workInProgress.pendingProps;
-        current = resolveLazy(workInProgress.elementType);
-        workInProgress.type = current;
-        if ("function" === typeof current)
-          shouldConstruct(current)
-            ? ((props = resolveClassComponentProps(current, props)),
-              (workInProgress.tag = 1),
-              (workInProgress = updateClassComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              )))
-            : ((workInProgress.tag = 0),
-              (workInProgress = updateFunctionComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              )));
-        else {
-          if (void 0 !== current && null !== current) {
-            var $$typeof = current.$$typeof;
-            if ($$typeof === REACT_FORWARD_REF_TYPE) {
-              workInProgress.tag = 11;
-              workInProgress = updateForwardRef(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              );
-              break a;
-            } else if ($$typeof === REACT_MEMO_TYPE) {
-              workInProgress.tag = 14;
-              workInProgress = updateMemoComponent(
-                null,
-                workInProgress,
-                current,
-                props,
-                renderLanes
-              );
-              break a;
-            }
-          }
-          workInProgress = getComponentNameFromType(current) || current;
-          throw Error(formatProdErrorMessage(306, workInProgress, ""));
-        }
-      }
-      return workInProgress;
-    case 0:
-      return updateFunctionComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 1:
-      return (
-        (props = workInProgress.type),
-        ($$typeof = resolveClassComponentProps(
-          props,
-          workInProgress.pendingProps
-        )),
-        updateClassComponent(
-          current,
-          workInProgress,
-          props,
-          $$typeof,
-          renderLanes
-        )
-      );
-    case 3:
-      a: {
-        pushHostContainer(
-          workInProgress,
-          workInProgress.stateNode.containerInfo
-        );
-        if (null === current) throw Error(formatProdErrorMessage(387));
-        props = workInProgress.pendingProps;
-        var prevState = workInProgress.memoizedState;
-        $$typeof = prevState.element;
-        cloneUpdateQueue(current, workInProgress);
-        processUpdateQueue(workInProgress, props, null, renderLanes);
-        var nextState = workInProgress.memoizedState;
-        props = nextState.cache;
-        pushProvider(workInProgress, CacheContext, props);
-        props !== prevState.cache &&
-          propagateContextChanges(
-            workInProgress,
-            [CacheContext],
-            renderLanes,
-            !0
-          );
-        suspendIfUpdateReadFromEntangledAsyncAction();
-        props = nextState.element;
-        if (prevState.isDehydrated)
-          if (
-            ((prevState = {
-              element: props,
-              isDehydrated: !1,
-              cache: nextState.cache
-            }),
-            (workInProgress.updateQueue.baseState = prevState),
-            (workInProgress.memoizedState = prevState),
-            workInProgress.flags & 256)
-          ) {
-            workInProgress = mountHostRootWithoutHydrating(
-              current,
-              workInProgress,
-              props,
-              renderLanes
-            );
-            break a;
-          } else if (props !== $$typeof) {
-            $$typeof = createCapturedValueAtFiber(
-              Error(formatProdErrorMessage(424)),
-              workInProgress
-            );
-            queueHydrationError($$typeof);
-            workInProgress = mountHostRootWithoutHydrating(
-              current,
-              workInProgress,
-              props,
-              renderLanes
-            );
-            break a;
-          } else {
-            current = workInProgress.stateNode.containerInfo;
-            switch (current.nodeType) {
-              case 9:
-                current = current.body;
-                break;
-              default:
-                current =
-                  "HTML" === current.nodeName
-                    ? current.ownerDocument.body
-                    : current;
-            }
-            nextHydratableInstance = getNextHydratable(current.firstChild);
-            hydrationParentFiber = workInProgress;
-            isHydrating = !0;
-            hydrationErrors = null;
-            rootOrSingletonContext = !0;
-            renderLanes = mountChildFibers(
-              workInProgress,
-              null,
-              props,
-              renderLanes
-            );
-            for (workInProgress.child = renderLanes; renderLanes; )
-              (renderLanes.flags = (renderLanes.flags & -3) | 4096),
-                (renderLanes = renderLanes.sibling);
-          }
-        else {
-          resetHydrationState();
-          if (props === $$typeof) {
-            workInProgress = bailoutOnAlreadyFinishedWork(
-              current,
-              workInProgress,
-              renderLanes
-            );
-            break a;
-          }
-          reconcileChildren(current, workInProgress, props, renderLanes);
-        }
-        workInProgress = workInProgress.child;
-      }
-      return workInProgress;
-    case 26:
-      return (
-        markRef(current, workInProgress),
-        null === current
-          ? (renderLanes = getResource(
-              workInProgress.type,
-              null,
-              workInProgress.pendingProps,
-              null
-            ))
-            ? (workInProgress.memoizedState = renderLanes)
-            : isHydrating ||
-              ((renderLanes = workInProgress.type),
-              (current = workInProgress.pendingProps),
-              (props = getOwnerDocumentFromRootContainer(
-                rootInstanceStackCursor.current
-              ).createElement(renderLanes)),
-              (props[internalInstanceKey] = workInProgress),
-              (props[internalPropsKey] = current),
-              setInitialProperties(props, renderLanes, current),
-              markNodeAsHoistable(props),
-              (workInProgress.stateNode = props))
-          : (workInProgress.memoizedState = getResource(
-              workInProgress.type,
-              current.memoizedProps,
-              workInProgress.pendingProps,
-              current.memoizedState
-            )),
-        null
-      );
-    case 27:
-      return (
-        pushHostContext(workInProgress),
-        null === current &&
-          isHydrating &&
-          ((props = workInProgress.stateNode =
-            resolveSingletonInstance(
-              workInProgress.type,
-              workInProgress.pendingProps,
-              rootInstanceStackCursor.current
-            )),
-          (hydrationParentFiber = workInProgress),
-          (rootOrSingletonContext = !0),
-          ($$typeof = nextHydratableInstance),
-          isSingletonScope(workInProgress.type)
-            ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),
-              (nextHydratableInstance = getNextHydratable(props.firstChild)))
-            : (nextHydratableInstance = $$typeof)),
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        markRef(current, workInProgress),
-        null === current && (workInProgress.flags |= 4194304),
-        workInProgress.child
-      );
-    case 5:
-      if (null === current && isHydrating) {
-        if (($$typeof = props = nextHydratableInstance))
-          (props = canHydrateInstance(
-            props,
-            workInProgress.type,
-            workInProgress.pendingProps,
-            rootOrSingletonContext
-          )),
-            null !== props
-              ? ((workInProgress.stateNode = props),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = getNextHydratable(props.firstChild)),
-                (rootOrSingletonContext = !1),
-                ($$typeof = !0))
-              : ($$typeof = !1);
-        $$typeof || throwOnHydrationMismatch(workInProgress);
-      }
-      pushHostContext(workInProgress);
-      $$typeof = workInProgress.type;
-      prevState = workInProgress.pendingProps;
-      nextState = null !== current ? current.memoizedProps : null;
-      props = prevState.children;
-      shouldSetTextContent($$typeof, prevState)
-        ? (props = null)
-        : null !== nextState &&
-          shouldSetTextContent($$typeof, nextState) &&
-          (workInProgress.flags |= 32);
-      null !== workInProgress.memoizedState &&
-        (($$typeof = renderWithHooks(
-          current,
-          workInProgress,
-          TransitionAwareHostComponent,
-          null,
-          null,
-          renderLanes
-        )),
-        (HostTransitionContext._currentValue = $$typeof));
-      markRef(current, workInProgress);
-      reconcileChildren(current, workInProgress, props, renderLanes);
-      return workInProgress.child;
-    case 6:
-      if (null === current && isHydrating) {
-        if ((current = renderLanes = nextHydratableInstance))
-          (renderLanes = canHydrateTextInstance(
-            renderLanes,
-            workInProgress.pendingProps,
-            rootOrSingletonContext
-          )),
-            null !== renderLanes
-              ? ((workInProgress.stateNode = renderLanes),
-                (hydrationParentFiber = workInProgress),
-                (nextHydratableInstance = null),
-                (current = !0))
-              : (current = !1);
-        current || throwOnHydrationMismatch(workInProgress);
-      }
-      return null;
-    case 13:
-      return updateSuspenseComponent(current, workInProgress, renderLanes);
-    case 4:
-      return (
-        pushHostContainer(
-          workInProgress,
-          workInProgress.stateNode.containerInfo
-        ),
-        (props = workInProgress.pendingProps),
-        null === current
-          ? (workInProgress.child = reconcileChildFibers(
-              workInProgress,
-              null,
-              props,
-              renderLanes
-            ))
-          : reconcileChildren(current, workInProgress, props, renderLanes),
-        workInProgress.child
-      );
-    case 11:
-      return updateForwardRef(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 7:
-      return (
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 8:
-      return (
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 12:
-      return (
-        (workInProgress.flags |= 4),
-        (workInProgress.flags |= 2048),
-        (props = workInProgress.stateNode),
-        (props.effectDuration = -0),
-        (props.passiveEffectDuration = -0),
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 10:
-      return (
-        (props = workInProgress.pendingProps),
-        pushProvider(workInProgress, workInProgress.type, props.value),
-        reconcileChildren(current, workInProgress, props.children, renderLanes),
-        workInProgress.child
-      );
-    case 9:
-      return (
-        ($$typeof = workInProgress.type._context),
-        (props = workInProgress.pendingProps.children),
-        prepareToReadContext(workInProgress),
-        ($$typeof = readContext($$typeof)),
-        (props = props($$typeof)),
-        (workInProgress.flags |= 1),
-        reconcileChildren(current, workInProgress, props, renderLanes),
-        workInProgress.child
-      );
-    case 14:
-      return updateMemoComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 15:
-      return updateSimpleMemoComponent(
-        current,
-        workInProgress,
-        workInProgress.type,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-    case 19:
-      return updateSuspenseListComponent(current, workInProgress, renderLanes);
-    case 31:
-      return updateActivityComponent(current, workInProgress, renderLanes);
-    case 22:
-      return updateOffscreenComponent(
-        current,
-        workInProgress,
-        renderLanes,
-        workInProgress.pendingProps
-      );
-    case 24:
-      return (
-        prepareToReadContext(workInProgress),
-        (props = readContext(CacheContext)),
-        null === current
-          ? (($$typeof = peekCacheFromPool()),
-            null === $$typeof &&
-              (($$typeof = workInProgressRoot),
-              (prevState = createCache()),
-              ($$typeof.pooledCache = prevState),
-              prevState.refCount++,
-              null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),
-              ($$typeof = prevState)),
-            (workInProgress.memoizedState = { parent: props, cache: $$typeof }),
-            initializeUpdateQueue(workInProgress),
-            pushProvider(workInProgress, CacheContext, $$typeof))
-          : (0 !== (current.lanes & renderLanes) &&
-              (cloneUpdateQueue(current, workInProgress),
-              processUpdateQueue(workInProgress, null, null, renderLanes),
-              suspendIfUpdateReadFromEntangledAsyncAction()),
-            ($$typeof = current.memoizedState),
-            (prevState = workInProgress.memoizedState),
-            $$typeof.parent !== props
-              ? (($$typeof = { parent: props, cache: props }),
-                (workInProgress.memoizedState = $$typeof),
-                0 === workInProgress.lanes &&
-                  (workInProgress.memoizedState =
-                    workInProgress.updateQueue.baseState =
-                      $$typeof),
-                pushProvider(workInProgress, CacheContext, props))
-              : ((props = prevState.cache),
-                pushProvider(workInProgress, CacheContext, props),
-                props !== $$typeof.cache &&
-                  propagateContextChanges(
-                    workInProgress,
-                    [CacheContext],
-                    renderLanes,
-                    !0
-                  ))),
-        reconcileChildren(
-          current,
-          workInProgress,
-          workInProgress.pendingProps.children,
-          renderLanes
-        ),
-        workInProgress.child
-      );
-    case 29:
-      throw workInProgress.pendingProps;
-  }
-  throw Error(formatProdErrorMessage(156, workInProgress.tag));
-}
-function markUpdate(workInProgress) {
-  workInProgress.flags |= 4;
-}
-function preloadInstanceAndSuspendIfNeeded(
-  workInProgress,
-  type,
-  oldProps,
-  newProps,
-  renderLanes
-) {
-  if ((type = 0 !== (workInProgress.mode & 32))) type = !1;
-  if (type) {
-    if (
-      ((workInProgress.flags |= 16777216),
-      (renderLanes & 335544128) === renderLanes)
-    )
-      if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;
-      else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-      else
-        throw (
-          ((suspendedThenable = noopSuspenseyCommitThenable),
-          SuspenseyCommitException)
-        );
-  } else workInProgress.flags &= -16777217;
-}
-function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {
-  if ("stylesheet" !== resource.type || 0 !== (resource.state.loading & 4))
-    workInProgress.flags &= -16777217;
-  else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))
-    if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;
-    else
-      throw (
-        ((suspendedThenable = noopSuspenseyCommitThenable),
-        SuspenseyCommitException)
-      );
-}
-function scheduleRetryEffect(workInProgress, retryQueue) {
-  null !== retryQueue && (workInProgress.flags |= 4);
-  workInProgress.flags & 16384 &&
-    ((retryQueue =
-      22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
-    (workInProgress.lanes |= retryQueue),
-    (workInProgressSuspendedRetryLanes |= retryQueue));
-}
-function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
-  if (!isHydrating)
-    switch (renderState.tailMode) {
-      case "hidden":
-        hasRenderedATailFallback = renderState.tail;
-        for (var lastTailNode = null; null !== hasRenderedATailFallback; )
-          null !== hasRenderedATailFallback.alternate &&
-            (lastTailNode = hasRenderedATailFallback),
-            (hasRenderedATailFallback = hasRenderedATailFallback.sibling);
-        null === lastTailNode
-          ? (renderState.tail = null)
-          : (lastTailNode.sibling = null);
-        break;
-      case "collapsed":
-        lastTailNode = renderState.tail;
-        for (var lastTailNode$116 = null; null !== lastTailNode; )
-          null !== lastTailNode.alternate && (lastTailNode$116 = lastTailNode),
-            (lastTailNode = lastTailNode.sibling);
-        null === lastTailNode$116
-          ? hasRenderedATailFallback || null === renderState.tail
-            ? (renderState.tail = null)
-            : (renderState.tail.sibling = null)
-          : (lastTailNode$116.sibling = null);
-    }
-}
-function bubbleProperties(completedWork) {
-  var didBailout =
-      null !== completedWork.alternate &&
-      completedWork.alternate.child === completedWork.child,
-    newChildLanes = 0,
-    subtreeFlags = 0;
-  if (didBailout)
-    if (0 !== (completedWork.mode & 2)) {
-      for (
-        var treeBaseDuration$118 = completedWork.selfBaseDuration,
-          child$119 = completedWork.child;
-        null !== child$119;
-
-      )
-        (newChildLanes |= child$119.lanes | child$119.childLanes),
-          (subtreeFlags |= child$119.subtreeFlags & 65011712),
-          (subtreeFlags |= child$119.flags & 65011712),
-          (treeBaseDuration$118 += child$119.treeBaseDuration),
-          (child$119 = child$119.sibling);
-      completedWork.treeBaseDuration = treeBaseDuration$118;
-    } else
-      for (
-        treeBaseDuration$118 = completedWork.child;
-        null !== treeBaseDuration$118;
-
-      )
-        (newChildLanes |=
-          treeBaseDuration$118.lanes | treeBaseDuration$118.childLanes),
-          (subtreeFlags |= treeBaseDuration$118.subtreeFlags & 65011712),
-          (subtreeFlags |= treeBaseDuration$118.flags & 65011712),
-          (treeBaseDuration$118.return = completedWork),
-          (treeBaseDuration$118 = treeBaseDuration$118.sibling);
-  else if (0 !== (completedWork.mode & 2)) {
-    treeBaseDuration$118 = completedWork.actualDuration;
-    child$119 = completedWork.selfBaseDuration;
-    for (var child = completedWork.child; null !== child; )
-      (newChildLanes |= child.lanes | child.childLanes),
-        (subtreeFlags |= child.subtreeFlags),
-        (subtreeFlags |= child.flags),
-        (treeBaseDuration$118 += child.actualDuration),
-        (child$119 += child.treeBaseDuration),
-        (child = child.sibling);
-    completedWork.actualDuration = treeBaseDuration$118;
-    completedWork.treeBaseDuration = child$119;
-  } else
-    for (
-      treeBaseDuration$118 = completedWork.child;
-      null !== treeBaseDuration$118;
-
-    )
-      (newChildLanes |=
-        treeBaseDuration$118.lanes | treeBaseDuration$118.childLanes),
-        (subtreeFlags |= treeBaseDuration$118.subtreeFlags),
-        (subtreeFlags |= treeBaseDuration$118.flags),
-        (treeBaseDuration$118.return = completedWork),
-        (treeBaseDuration$118 = treeBaseDuration$118.sibling);
-  completedWork.subtreeFlags |= subtreeFlags;
-  completedWork.childLanes = newChildLanes;
-  return didBailout;
-}
-function completeWork(current, workInProgress, renderLanes) {
-  var newProps = workInProgress.pendingProps;
-  popTreeContext(workInProgress);
-  switch (workInProgress.tag) {
-    case 16:
-    case 15:
-    case 0:
-    case 11:
-    case 7:
-    case 8:
-    case 12:
-    case 9:
-    case 14:
-      return bubbleProperties(workInProgress), null;
-    case 1:
-      return bubbleProperties(workInProgress), null;
-    case 3:
-      renderLanes = workInProgress.stateNode;
-      newProps = null;
-      null !== current && (newProps = current.memoizedState.cache);
-      workInProgress.memoizedState.cache !== newProps &&
-        (workInProgress.flags |= 2048);
-      popProvider(CacheContext);
-      popHostContainer();
-      renderLanes.pendingContext &&
-        ((renderLanes.context = renderLanes.pendingContext),
-        (renderLanes.pendingContext = null));
-      if (null === current || null === current.child)
-        popHydrationState(workInProgress)
-          ? markUpdate(workInProgress)
-          : null === current ||
-            (current.memoizedState.isDehydrated &&
-              0 === (workInProgress.flags & 256)) ||
-            ((workInProgress.flags |= 1024),
-            upgradeHydrationErrorsToRecoverable());
-      bubbleProperties(workInProgress);
-      return null;
-    case 26:
-      var type = workInProgress.type,
-        nextResource = workInProgress.memoizedState;
-      null === current
-        ? (markUpdate(workInProgress),
-          null !== nextResource
-            ? (bubbleProperties(workInProgress),
-              preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))
-            : (bubbleProperties(workInProgress),
-              preloadInstanceAndSuspendIfNeeded(
-                workInProgress,
-                type,
-                null,
-                newProps,
-                renderLanes
-              )))
-        : nextResource
-          ? nextResource !== current.memoizedState
-            ? (markUpdate(workInProgress),
-              bubbleProperties(workInProgress),
-              preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))
-            : (bubbleProperties(workInProgress),
-              (workInProgress.flags &= -16777217))
-          : ((current = current.memoizedProps),
-            current !== newProps && markUpdate(workInProgress),
-            bubbleProperties(workInProgress),
-            preloadInstanceAndSuspendIfNeeded(
-              workInProgress,
-              type,
-              current,
-              newProps,
-              renderLanes
-            ));
-      return null;
-    case 27:
-      popHostContext(workInProgress);
-      renderLanes = rootInstanceStackCursor.current;
-      type = workInProgress.type;
-      if (null !== current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if (!newProps) {
-          if (null === workInProgress.stateNode)
-            throw Error(formatProdErrorMessage(166));
-          bubbleProperties(workInProgress);
-          return null;
-        }
-        current = contextStackCursor.current;
-        popHydrationState(workInProgress)
-          ? prepareToHydrateHostInstance(workInProgress, current)
-          : ((current = resolveSingletonInstance(type, newProps, renderLanes)),
-            (workInProgress.stateNode = current),
-            markUpdate(workInProgress));
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 5:
-      popHostContext(workInProgress);
-      type = workInProgress.type;
-      if (null !== current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if (!newProps) {
-          if (null === workInProgress.stateNode)
-            throw Error(formatProdErrorMessage(166));
-          bubbleProperties(workInProgress);
-          return null;
-        }
-        nextResource = contextStackCursor.current;
-        if (popHydrationState(workInProgress))
-          prepareToHydrateHostInstance(workInProgress, nextResource);
-        else {
-          var ownerDocument = getOwnerDocumentFromRootContainer(
-            rootInstanceStackCursor.current
-          );
-          switch (nextResource) {
-            case 1:
-              nextResource = ownerDocument.createElementNS(
-                "http://www.w3.org/2000/svg",
-                type
-              );
-              break;
-            case 2:
-              nextResource = ownerDocument.createElementNS(
-                "http://www.w3.org/1998/Math/MathML",
-                type
-              );
-              break;
-            default:
-              switch (type) {
-                case "svg":
-                  nextResource = ownerDocument.createElementNS(
-                    "http://www.w3.org/2000/svg",
-                    type
-                  );
-                  break;
-                case "math":
-                  nextResource = ownerDocument.createElementNS(
-                    "http://www.w3.org/1998/Math/MathML",
-                    type
-                  );
-                  break;
-                case "script":
-                  nextResource = ownerDocument.createElement("div");
-                  nextResource.innerHTML = "<script>\x3c/script>";
-                  nextResource = nextResource.removeChild(
-                    nextResource.firstChild
-                  );
-                  break;
-                case "select":
-                  nextResource =
-                    "string" === typeof newProps.is
-                      ? ownerDocument.createElement("select", {
-                          is: newProps.is
-                        })
-                      : ownerDocument.createElement("select");
-                  newProps.multiple
-                    ? (nextResource.multiple = !0)
-                    : newProps.size && (nextResource.size = newProps.size);
-                  break;
-                default:
-                  nextResource =
-                    "string" === typeof newProps.is
-                      ? ownerDocument.createElement(type, { is: newProps.is })
-                      : ownerDocument.createElement(type);
-              }
-          }
-          nextResource[internalInstanceKey] = workInProgress;
-          nextResource[internalPropsKey] = newProps;
-          a: for (
-            ownerDocument = workInProgress.child;
-            null !== ownerDocument;
-
-          ) {
-            if (5 === ownerDocument.tag || 6 === ownerDocument.tag)
-              nextResource.appendChild(ownerDocument.stateNode);
-            else if (
-              4 !== ownerDocument.tag &&
-              27 !== ownerDocument.tag &&
-              null !== ownerDocument.child
-            ) {
-              ownerDocument.child.return = ownerDocument;
-              ownerDocument = ownerDocument.child;
-              continue;
-            }
-            if (ownerDocument === workInProgress) break a;
-            for (; null === ownerDocument.sibling; ) {
-              if (
-                null === ownerDocument.return ||
-                ownerDocument.return === workInProgress
-              )
-                break a;
-              ownerDocument = ownerDocument.return;
-            }
-            ownerDocument.sibling.return = ownerDocument.return;
-            ownerDocument = ownerDocument.sibling;
-          }
-          workInProgress.stateNode = nextResource;
-          a: switch (
-            (setInitialProperties(nextResource, type, newProps), type)
-          ) {
-            case "button":
-            case "input":
-            case "select":
-            case "textarea":
-              newProps = !!newProps.autoFocus;
-              break a;
-            case "img":
-              newProps = !0;
-              break a;
-            default:
-              newProps = !1;
-          }
-          newProps && markUpdate(workInProgress);
-        }
-      }
-      bubbleProperties(workInProgress);
-      preloadInstanceAndSuspendIfNeeded(
-        workInProgress,
-        workInProgress.type,
-        null === current ? null : current.memoizedProps,
-        workInProgress.pendingProps,
-        renderLanes
-      );
-      return null;
-    case 6:
-      if (current && null != workInProgress.stateNode)
-        current.memoizedProps !== newProps && markUpdate(workInProgress);
-      else {
-        if ("string" !== typeof newProps && null === workInProgress.stateNode)
-          throw Error(formatProdErrorMessage(166));
-        current = rootInstanceStackCursor.current;
-        if (popHydrationState(workInProgress)) {
-          current = workInProgress.stateNode;
-          renderLanes = workInProgress.memoizedProps;
-          newProps = null;
-          type = hydrationParentFiber;
-          if (null !== type)
-            switch (type.tag) {
-              case 27:
-              case 5:
-                newProps = type.memoizedProps;
-            }
-          current[internalInstanceKey] = workInProgress;
-          current =
-            current.nodeValue === renderLanes ||
-            (null !== newProps && !0 === newProps.suppressHydrationWarning) ||
-            checkForUnmatchedText(current.nodeValue, renderLanes)
-              ? !0
-              : !1;
-          current || throwOnHydrationMismatch(workInProgress, !0);
-        } else
-          (current =
-            getOwnerDocumentFromRootContainer(current).createTextNode(
-              newProps
-            )),
-            (current[internalInstanceKey] = workInProgress),
-            (workInProgress.stateNode = current);
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 31:
-      renderLanes = workInProgress.memoizedState;
-      if (null === current || null !== current.memoizedState) {
-        newProps = popHydrationState(workInProgress);
-        if (null !== renderLanes) {
-          if (null === current) {
-            if (!newProps) throw Error(formatProdErrorMessage(318));
-            current = workInProgress.memoizedState;
-            current = null !== current ? current.dehydrated : null;
-            if (!current) throw Error(formatProdErrorMessage(557));
-            current[internalInstanceKey] = workInProgress;
-            bubbleProperties(workInProgress);
-            0 !== (workInProgress.mode & 2) &&
-              null !== renderLanes &&
-              ((current = workInProgress.child),
-              null !== current &&
-                (workInProgress.treeBaseDuration -= current.treeBaseDuration));
-          } else
-            resetHydrationState(),
-              0 === (workInProgress.flags & 128) &&
-                (renderLanes = workInProgress.memoizedState = null),
-              (workInProgress.flags |= 4),
-              bubbleProperties(workInProgress),
-              0 !== (workInProgress.mode & 2) &&
-                null !== renderLanes &&
-                ((current = workInProgress.child),
-                null !== current &&
-                  (workInProgress.treeBaseDuration -=
-                    current.treeBaseDuration));
-          current = !1;
-        } else
-          (renderLanes = upgradeHydrationErrorsToRecoverable()),
-            null !== current &&
-              null !== current.memoizedState &&
-              (current.memoizedState.hydrationErrors = renderLanes),
-            (current = !0);
-        if (!current) {
-          if (workInProgress.flags & 256)
-            return popSuspenseHandler(workInProgress), workInProgress;
-          popSuspenseHandler(workInProgress);
-          return null;
-        }
-        if (0 !== (workInProgress.flags & 128))
-          throw Error(formatProdErrorMessage(558));
-      }
-      bubbleProperties(workInProgress);
-      return null;
-    case 13:
-      newProps = workInProgress.memoizedState;
-      if (
-        null === current ||
-        (null !== current.memoizedState &&
-          null !== current.memoizedState.dehydrated)
-      ) {
-        type = newProps;
-        nextResource = popHydrationState(workInProgress);
-        if (null !== type && null !== type.dehydrated) {
-          if (null === current) {
-            if (!nextResource) throw Error(formatProdErrorMessage(318));
-            nextResource = workInProgress.memoizedState;
-            nextResource =
-              null !== nextResource ? nextResource.dehydrated : null;
-            if (!nextResource) throw Error(formatProdErrorMessage(317));
-            nextResource[internalInstanceKey] = workInProgress;
-            bubbleProperties(workInProgress);
-            0 !== (workInProgress.mode & 2) &&
-              null !== type &&
-              ((type = workInProgress.child),
-              null !== type &&
-                (workInProgress.treeBaseDuration -= type.treeBaseDuration));
-          } else
-            resetHydrationState(),
-              0 === (workInProgress.flags & 128) &&
-                (type = workInProgress.memoizedState = null),
-              (workInProgress.flags |= 4),
-              bubbleProperties(workInProgress),
-              0 !== (workInProgress.mode & 2) &&
-                null !== type &&
-                ((type = workInProgress.child),
-                null !== type &&
-                  (workInProgress.treeBaseDuration -= type.treeBaseDuration));
-          type = !1;
-        } else
-          (type = upgradeHydrationErrorsToRecoverable()),
-            null !== current &&
-              null !== current.memoizedState &&
-              (current.memoizedState.hydrationErrors = type),
-            (type = !0);
-        if (!type) {
-          if (workInProgress.flags & 256)
-            return popSuspenseHandler(workInProgress), workInProgress;
-          popSuspenseHandler(workInProgress);
-          return null;
-        }
-      }
-      popSuspenseHandler(workInProgress);
-      if (0 !== (workInProgress.flags & 128))
-        return (
-          (workInProgress.lanes = renderLanes),
-          0 !== (workInProgress.mode & 2) &&
-            transferActualDuration(workInProgress),
-          workInProgress
-        );
-      renderLanes = null !== newProps;
-      current = null !== current && null !== current.memoizedState;
-      renderLanes &&
-        ((newProps = workInProgress.child),
-        (type = null),
-        null !== newProps.alternate &&
-          null !== newProps.alternate.memoizedState &&
-          null !== newProps.alternate.memoizedState.cachePool &&
-          (type = newProps.alternate.memoizedState.cachePool.pool),
-        (nextResource = null),
-        null !== newProps.memoizedState &&
-          null !== newProps.memoizedState.cachePool &&
-          (nextResource = newProps.memoizedState.cachePool.pool),
-        nextResource !== type && (newProps.flags |= 2048));
-      renderLanes !== current &&
-        renderLanes &&
-        (workInProgress.child.flags |= 8192);
-      scheduleRetryEffect(workInProgress, workInProgress.updateQueue);
-      bubbleProperties(workInProgress);
-      0 !== (workInProgress.mode & 2) &&
-        renderLanes &&
-        ((current = workInProgress.child),
-        null !== current &&
-          (workInProgress.treeBaseDuration -= current.treeBaseDuration));
-      return null;
-    case 4:
-      return (
-        popHostContainer(),
-        null === current &&
-          listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),
-        bubbleProperties(workInProgress),
-        null
-      );
-    case 10:
-      return (
-        popProvider(workInProgress.type), bubbleProperties(workInProgress), null
-      );
-    case 19:
-      pop(suspenseStackCursor);
-      newProps = workInProgress.memoizedState;
-      if (null === newProps) return bubbleProperties(workInProgress), null;
-      type = 0 !== (workInProgress.flags & 128);
-      nextResource = newProps.rendering;
-      if (null === nextResource)
-        if (type) cutOffTailIfNeeded(newProps, !1);
-        else {
-          if (
-            0 !== workInProgressRootExitStatus ||
-            (null !== current && 0 !== (current.flags & 128))
-          )
-            for (current = workInProgress.child; null !== current; ) {
-              nextResource = findFirstSuspended(current);
-              if (null !== nextResource) {
-                workInProgress.flags |= 128;
-                cutOffTailIfNeeded(newProps, !1);
-                current = nextResource.updateQueue;
-                workInProgress.updateQueue = current;
-                scheduleRetryEffect(workInProgress, current);
-                workInProgress.subtreeFlags = 0;
-                current = renderLanes;
-                for (renderLanes = workInProgress.child; null !== renderLanes; )
-                  resetWorkInProgress(renderLanes, current),
-                    (renderLanes = renderLanes.sibling);
-                push(
-                  suspenseStackCursor,
-                  (suspenseStackCursor.current & 1) | 2
-                );
-                isHydrating &&
-                  pushTreeFork(workInProgress, newProps.treeForkCount);
-                return workInProgress.child;
-              }
-              current = current.sibling;
-            }
-          null !== newProps.tail &&
-            now$1() > workInProgressRootRenderTargetTime &&
-            ((workInProgress.flags |= 128),
-            (type = !0),
-            cutOffTailIfNeeded(newProps, !1),
-            (workInProgress.lanes = 4194304));
-        }
-      else {
-        if (!type)
-          if (
-            ((current = findFirstSuspended(nextResource)), null !== current)
-          ) {
-            if (
-              ((workInProgress.flags |= 128),
-              (type = !0),
-              (current = current.updateQueue),
-              (workInProgress.updateQueue = current),
-              scheduleRetryEffect(workInProgress, current),
-              cutOffTailIfNeeded(newProps, !0),
-              null === newProps.tail &&
-                "hidden" === newProps.tailMode &&
-                !nextResource.alternate &&
-                !isHydrating)
-            )
-              return bubbleProperties(workInProgress), null;
-          } else
-            2 * now$1() - newProps.renderingStartTime >
-              workInProgressRootRenderTargetTime &&
-              536870912 !== renderLanes &&
-              ((workInProgress.flags |= 128),
-              (type = !0),
-              cutOffTailIfNeeded(newProps, !1),
-              (workInProgress.lanes = 4194304));
-        newProps.isBackwards
-          ? ((nextResource.sibling = workInProgress.child),
-            (workInProgress.child = nextResource))
-          : ((current = newProps.last),
-            null !== current
-              ? (current.sibling = nextResource)
-              : (workInProgress.child = nextResource),
-            (newProps.last = nextResource));
-      }
-      if (null !== newProps.tail)
-        return (
-          (current = newProps.tail),
-          (newProps.rendering = current),
-          (newProps.tail = current.sibling),
-          (newProps.renderingStartTime = now$1()),
-          (current.sibling = null),
-          (renderLanes = suspenseStackCursor.current),
-          push(
-            suspenseStackCursor,
-            type ? (renderLanes & 1) | 2 : renderLanes & 1
-          ),
-          isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),
-          current
-        );
-      bubbleProperties(workInProgress);
-      return null;
-    case 22:
-    case 23:
-      return (
-        popSuspenseHandler(workInProgress),
-        popHiddenContext(),
-        (newProps = null !== workInProgress.memoizedState),
-        null !== current
-          ? (null !== current.memoizedState) !== newProps &&
-            (workInProgress.flags |= 8192)
-          : newProps && (workInProgress.flags |= 8192),
-        newProps
-          ? 0 !== (renderLanes & 536870912) &&
-            0 === (workInProgress.flags & 128) &&
-            (bubbleProperties(workInProgress),
-            workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))
-          : bubbleProperties(workInProgress),
-        (renderLanes = workInProgress.updateQueue),
-        null !== renderLanes &&
-          scheduleRetryEffect(workInProgress, renderLanes.retryQueue),
-        (renderLanes = null),
-        null !== current &&
-          null !== current.memoizedState &&
-          null !== current.memoizedState.cachePool &&
-          (renderLanes = current.memoizedState.cachePool.pool),
-        (newProps = null),
-        null !== workInProgress.memoizedState &&
-          null !== workInProgress.memoizedState.cachePool &&
-          (newProps = workInProgress.memoizedState.cachePool.pool),
-        newProps !== renderLanes && (workInProgress.flags |= 2048),
-        null !== current && pop(resumedCache),
-        null
-      );
-    case 24:
-      return (
-        (renderLanes = null),
-        null !== current && (renderLanes = current.memoizedState.cache),
-        workInProgress.memoizedState.cache !== renderLanes &&
-          (workInProgress.flags |= 2048),
-        popProvider(CacheContext),
-        bubbleProperties(workInProgress),
-        null
-      );
-    case 25:
-      return null;
-    case 30:
-      return null;
-  }
-  throw Error(formatProdErrorMessage(156, workInProgress.tag));
-}
-function unwindWork(current, workInProgress) {
-  popTreeContext(workInProgress);
-  switch (workInProgress.tag) {
-    case 1:
-      return (
-        (current = workInProgress.flags),
-        current & 65536
-          ? ((workInProgress.flags = (current & -65537) | 128),
-            0 !== (workInProgress.mode & 2) &&
-              transferActualDuration(workInProgress),
-            workInProgress)
-          : null
-      );
-    case 3:
-      return (
-        popProvider(CacheContext),
-        popHostContainer(),
-        (current = workInProgress.flags),
-        0 !== (current & 65536) && 0 === (current & 128)
-          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)
-          : null
-      );
-    case 26:
-    case 27:
-    case 5:
-      return popHostContext(workInProgress), null;
-    case 31:
-      if (null !== workInProgress.memoizedState) {
-        popSuspenseHandler(workInProgress);
-        if (null === workInProgress.alternate)
-          throw Error(formatProdErrorMessage(340));
-        resetHydrationState();
-      }
-      current = workInProgress.flags;
-      return current & 65536
-        ? ((workInProgress.flags = (current & -65537) | 128),
-          0 !== (workInProgress.mode & 2) &&
-            transferActualDuration(workInProgress),
-          workInProgress)
-        : null;
-    case 13:
-      popSuspenseHandler(workInProgress);
-      current = workInProgress.memoizedState;
-      if (null !== current && null !== current.dehydrated) {
-        if (null === workInProgress.alternate)
-          throw Error(formatProdErrorMessage(340));
-        resetHydrationState();
-      }
-      current = workInProgress.flags;
-      return current & 65536
-        ? ((workInProgress.flags = (current & -65537) | 128),
-          0 !== (workInProgress.mode & 2) &&
-            transferActualDuration(workInProgress),
-          workInProgress)
-        : null;
-    case 19:
-      return pop(suspenseStackCursor), null;
-    case 4:
-      return popHostContainer(), null;
-    case 10:
-      return popProvider(workInProgress.type), null;
-    case 22:
-    case 23:
-      return (
-        popSuspenseHandler(workInProgress),
-        popHiddenContext(),
-        null !== current && pop(resumedCache),
-        (current = workInProgress.flags),
-        current & 65536
-          ? ((workInProgress.flags = (current & -65537) | 128),
-            0 !== (workInProgress.mode & 2) &&
-              transferActualDuration(workInProgress),
-            workInProgress)
-          : null
-      );
-    case 24:
-      return popProvider(CacheContext), null;
-    case 25:
-      return null;
-    default:
-      return null;
-  }
-}
-function unwindInterruptedWork(current, interruptedWork) {
-  popTreeContext(interruptedWork);
-  switch (interruptedWork.tag) {
-    case 3:
-      popProvider(CacheContext);
-      popHostContainer();
-      break;
-    case 26:
-    case 27:
-    case 5:
-      popHostContext(interruptedWork);
-      break;
-    case 4:
-      popHostContainer();
-      break;
-    case 31:
-      null !== interruptedWork.memoizedState &&
-        popSuspenseHandler(interruptedWork);
-      break;
-    case 13:
-      popSuspenseHandler(interruptedWork);
-      break;
-    case 19:
-      pop(suspenseStackCursor);
-      break;
-    case 10:
-      popProvider(interruptedWork.type);
-      break;
-    case 22:
-    case 23:
-      popSuspenseHandler(interruptedWork);
-      popHiddenContext();
-      null !== current && pop(resumedCache);
-      break;
-    case 24:
-      popProvider(CacheContext);
-  }
-}
-function shouldProfile(current) {
-  return 0 !== (current.mode & 2);
-}
-function commitHookLayoutEffects(finishedWork, hookFlags) {
-  shouldProfile(finishedWork)
-    ? (startEffectTimer(),
-      commitHookEffectListMount(hookFlags, finishedWork),
-      recordEffectDuration())
-    : commitHookEffectListMount(hookFlags, finishedWork);
-}
-function commitHookLayoutUnmountEffects(
-  finishedWork,
-  nearestMountedAncestor,
-  hookFlags
-) {
-  shouldProfile(finishedWork)
-    ? (startEffectTimer(),
-      commitHookEffectListUnmount(
-        hookFlags,
-        finishedWork,
-        nearestMountedAncestor
-      ),
-      recordEffectDuration())
-    : commitHookEffectListUnmount(
-        hookFlags,
-        finishedWork,
-        nearestMountedAncestor
-      );
-}
-function commitHookEffectListMount(flags, finishedWork) {
-  try {
-    var updateQueue = finishedWork.updateQueue,
-      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-    if (null !== lastEffect) {
-      var firstEffect = lastEffect.next;
-      updateQueue = firstEffect;
-      do {
-        if ((updateQueue.tag & flags) === flags) {
-          lastEffect = void 0;
-          var create = updateQueue.create,
-            inst = updateQueue.inst;
-          lastEffect = create();
-          inst.destroy = lastEffect;
-        }
-        updateQueue = updateQueue.next;
-      } while (updateQueue !== firstEffect);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHookEffectListUnmount(
-  flags,
-  finishedWork,
-  nearestMountedAncestor$jscomp$0
-) {
-  try {
-    var updateQueue = finishedWork.updateQueue,
-      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;
-    if (null !== lastEffect) {
-      var firstEffect = lastEffect.next;
-      updateQueue = firstEffect;
-      do {
-        if ((updateQueue.tag & flags) === flags) {
-          var inst = updateQueue.inst,
-            destroy = inst.destroy;
-          if (void 0 !== destroy) {
-            inst.destroy = void 0;
-            lastEffect = finishedWork;
-            var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
-              destroy_ = destroy;
-            try {
-              destroy_();
-            } catch (error) {
-              captureCommitPhaseError(
-                lastEffect,
-                nearestMountedAncestor,
-                error
-              );
-            }
-          }
-        }
-        updateQueue = updateQueue.next;
-      } while (updateQueue !== firstEffect);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHookPassiveMountEffects(finishedWork, hookFlags) {
-  shouldProfile(finishedWork)
-    ? (startEffectTimer(),
-      commitHookEffectListMount(hookFlags, finishedWork),
-      recordEffectDuration())
-    : commitHookEffectListMount(hookFlags, finishedWork);
-}
-function commitHookPassiveUnmountEffects(
-  finishedWork,
-  nearestMountedAncestor,
-  hookFlags
-) {
-  shouldProfile(finishedWork)
-    ? (startEffectTimer(),
-      commitHookEffectListUnmount(
-        hookFlags,
-        finishedWork,
-        nearestMountedAncestor
-      ),
-      recordEffectDuration())
-    : commitHookEffectListUnmount(
-        hookFlags,
-        finishedWork,
-        nearestMountedAncestor
-      );
-}
-function commitClassCallbacks(finishedWork) {
-  var updateQueue = finishedWork.updateQueue;
-  if (null !== updateQueue) {
-    var instance = finishedWork.stateNode;
-    try {
-      commitCallbacks(updateQueue, instance);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-  }
-}
-function safelyCallComponentWillUnmount(
-  current,
-  nearestMountedAncestor,
-  instance
-) {
-  instance.props = resolveClassComponentProps(
-    current.type,
-    current.memoizedProps
-  );
-  instance.state = current.memoizedState;
-  if (shouldProfile(current)) {
-    startEffectTimer();
-    try {
-      instance.componentWillUnmount();
-    } catch (error) {
-      captureCommitPhaseError(current, nearestMountedAncestor, error);
-    }
-    recordEffectDuration();
-  } else
-    try {
-      instance.componentWillUnmount();
-    } catch (error$159) {
-      captureCommitPhaseError(current, nearestMountedAncestor, error$159);
-    }
-}
-function safelyAttachRef(current, nearestMountedAncestor) {
-  try {
-    var ref = current.ref;
-    if (null !== ref) {
-      switch (current.tag) {
-        case 26:
-        case 27:
-        case 5:
-          var instanceToUse = current.stateNode;
-          break;
-        case 30:
-          instanceToUse = current.stateNode;
-          break;
-        default:
-          instanceToUse = current.stateNode;
-      }
-      if ("function" === typeof ref)
-        if (shouldProfile(current))
-          try {
-            startEffectTimer(), (current.refCleanup = ref(instanceToUse));
-          } finally {
-            recordEffectDuration();
-          }
-        else current.refCleanup = ref(instanceToUse);
-      else ref.current = instanceToUse;
-    }
-  } catch (error) {
-    captureCommitPhaseError(current, nearestMountedAncestor, error);
-  }
-}
-function safelyDetachRef(current, nearestMountedAncestor) {
-  var ref = current.ref,
-    refCleanup = current.refCleanup;
-  if (null !== ref)
-    if ("function" === typeof refCleanup)
-      try {
-        if (shouldProfile(current))
-          try {
-            startEffectTimer(), refCleanup();
-          } finally {
-            recordEffectDuration(current);
-          }
-        else refCleanup();
-      } catch (error) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error);
-      } finally {
-        (current.refCleanup = null),
-          (current = current.alternate),
-          null != current && (current.refCleanup = null);
-      }
-    else if ("function" === typeof ref)
-      try {
-        if (shouldProfile(current))
-          try {
-            startEffectTimer(), ref(null);
-          } finally {
-            recordEffectDuration(current);
-          }
-        else ref(null);
-      } catch (error$160) {
-        captureCommitPhaseError(current, nearestMountedAncestor, error$160);
-      }
-    else ref.current = null;
-}
-function commitProfilerUpdate(
-  finishedWork,
-  current,
-  commitStartTime,
-  effectDuration
-) {
-  try {
-    var _finishedWork$memoize = finishedWork.memoizedProps,
-      id = _finishedWork$memoize.id,
-      onCommit = _finishedWork$memoize.onCommit,
-      onRender = _finishedWork$memoize.onRender;
-    current = null === current ? "mount" : "update";
-    currentUpdateIsNested && (current = "nested-update");
-    "function" === typeof onRender &&
-      onRender(
-        id,
-        current,
-        finishedWork.actualDuration,
-        finishedWork.treeBaseDuration,
-        finishedWork.actualStartTime,
-        commitStartTime
-      );
-    "function" === typeof onCommit &&
-      onCommit(id, current, effectDuration, commitStartTime);
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHostMount(finishedWork) {
-  var type = finishedWork.type,
-    props = finishedWork.memoizedProps,
-    instance = finishedWork.stateNode;
-  try {
-    a: switch (type) {
-      case "button":
-      case "input":
-      case "select":
-      case "textarea":
-        props.autoFocus && instance.focus();
-        break a;
-      case "img":
-        props.src
-          ? (instance.src = props.src)
-          : props.srcSet && (instance.srcset = props.srcSet);
-    }
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function commitHostUpdate(finishedWork, newProps, oldProps) {
-  try {
-    var domElement = finishedWork.stateNode;
-    updateProperties(domElement, finishedWork.type, oldProps, newProps);
-    domElement[internalPropsKey] = newProps;
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-function isHostParent(fiber) {
-  return (
-    5 === fiber.tag ||
-    3 === fiber.tag ||
-    26 === fiber.tag ||
-    (27 === fiber.tag && isSingletonScope(fiber.type)) ||
-    4 === fiber.tag
-  );
-}
-function getHostSibling(fiber) {
-  a: for (;;) {
-    for (; null === fiber.sibling; ) {
-      if (null === fiber.return || isHostParent(fiber.return)) return null;
-      fiber = fiber.return;
-    }
-    fiber.sibling.return = fiber.return;
-    for (
-      fiber = fiber.sibling;
-      5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
-
-    ) {
-      if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;
-      if (fiber.flags & 2) continue a;
-      if (null === fiber.child || 4 === fiber.tag) continue a;
-      else (fiber.child.return = fiber), (fiber = fiber.child);
-    }
-    if (!(fiber.flags & 2)) return fiber.stateNode;
-  }
-}
-function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
-  var tag = node.tag;
-  if (5 === tag || 6 === tag)
-    (node = node.stateNode),
-      before
-        ? (9 === parent.nodeType
-            ? parent.body
-            : "HTML" === parent.nodeName
-              ? parent.ownerDocument.body
-              : parent
-          ).insertBefore(node, before)
-        : ((before =
-            9 === parent.nodeType
-              ? parent.body
-              : "HTML" === parent.nodeName
-                ? parent.ownerDocument.body
-                : parent),
-          before.appendChild(node),
-          (parent = parent._reactRootContainer),
-          (null !== parent && void 0 !== parent) ||
-            null !== before.onclick ||
-            (before.onclick = noop$1));
-  else if (
-    4 !== tag &&
-    (27 === tag &&
-      isSingletonScope(node.type) &&
-      ((parent = node.stateNode), (before = null)),
-    (node = node.child),
-    null !== node)
-  )
-    for (
-      insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-        node = node.sibling;
-      null !== node;
-
-    )
-      insertOrAppendPlacementNodeIntoContainer(node, before, parent),
-        (node = node.sibling);
-}
-function insertOrAppendPlacementNode(node, before, parent) {
-  var tag = node.tag;
-  if (5 === tag || 6 === tag)
-    (node = node.stateNode),
-      before ? parent.insertBefore(node, before) : parent.appendChild(node);
-  else if (
-    4 !== tag &&
-    (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),
-    (node = node.child),
-    null !== node)
-  )
-    for (
-      insertOrAppendPlacementNode(node, before, parent), node = node.sibling;
-      null !== node;
-
-    )
-      insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);
-}
-function commitHostSingletonAcquisition(finishedWork) {
-  var singleton = finishedWork.stateNode,
-    props = finishedWork.memoizedProps;
-  try {
-    for (
-      var type = finishedWork.type, attributes = singleton.attributes;
-      attributes.length;
-
-    )
-      singleton.removeAttributeNode(attributes[0]);
-    setInitialProperties(singleton, type, props);
-    singleton[internalInstanceKey] = finishedWork;
-    singleton[internalPropsKey] = props;
-  } catch (error) {
-    captureCommitPhaseError(finishedWork, finishedWork.return, error);
-  }
-}
-var offscreenSubtreeIsHidden = !1,
-  offscreenSubtreeWasHidden = !1,
-  needsFormReset = !1,
-  PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set,
-  nextEffect = null,
-  inProgressLanes = null,
-  inProgressRoot = null;
-function isHydratingParent(current, finishedWork) {
-  return 31 === finishedWork.tag
-    ? ((finishedWork = finishedWork.memoizedState),
-      null !== current.memoizedState && null === finishedWork)
-    : 13 === finishedWork.tag
-      ? ((current = current.memoizedState),
-        (finishedWork = finishedWork.memoizedState),
-        null !== current &&
-          null !== current.dehydrated &&
-          (null === finishedWork || null === finishedWork.dehydrated))
-      : 3 === finishedWork.tag
-        ? current.memoizedState.isDehydrated && 0 === (finishedWork.flags & 256)
-        : !1;
-}
-function commitBeforeMutationEffects(root, firstChild) {
-  root = root.containerInfo;
-  eventsEnabled = _enabled;
-  root = getActiveElementDeep(root);
-  if (hasSelectionCapabilities(root)) {
-    if ("selectionStart" in root)
-      var JSCompiler_temp = {
-        start: root.selectionStart,
-        end: root.selectionEnd
-      };
-    else
-      a: {
-        JSCompiler_temp =
-          ((JSCompiler_temp = root.ownerDocument) &&
-            JSCompiler_temp.defaultView) ||
-          window;
-        var selection =
-          JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();
-        if (selection && 0 !== selection.rangeCount) {
-          JSCompiler_temp = selection.anchorNode;
-          var anchorOffset = selection.anchorOffset,
-            focusNode = selection.focusNode;
-          selection = selection.focusOffset;
-          try {
-            JSCompiler_temp.nodeType, focusNode.nodeType;
-          } catch (e$22) {
-            JSCompiler_temp = null;
-            break a;
-          }
-          var length = 0,
-            start = -1,
-            end = -1,
-            indexWithinAnchor = 0,
-            indexWithinFocus = 0,
-            node = root,
-            parentNode = null;
-          b: for (;;) {
-            for (var next; ; ) {
-              node !== JSCompiler_temp ||
-                (0 !== anchorOffset && 3 !== node.nodeType) ||
-                (start = length + anchorOffset);
-              node !== focusNode ||
-                (0 !== selection && 3 !== node.nodeType) ||
-                (end = length + selection);
-              3 === node.nodeType && (length += node.nodeValue.length);
-              if (null === (next = node.firstChild)) break;
-              parentNode = node;
-              node = next;
-            }
-            for (;;) {
-              if (node === root) break b;
-              parentNode === JSCompiler_temp &&
-                ++indexWithinAnchor === anchorOffset &&
-                (start = length);
-              parentNode === focusNode &&
-                ++indexWithinFocus === selection &&
-                (end = length);
-              if (null !== (next = node.nextSibling)) break;
-              node = parentNode;
-              parentNode = node.parentNode;
-            }
-            node = next;
-          }
-          JSCompiler_temp =
-            -1 === start || -1 === end ? null : { start: start, end: end };
-        } else JSCompiler_temp = null;
-      }
-    JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };
-  } else JSCompiler_temp = null;
-  selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };
-  _enabled = !1;
-  for (nextEffect = firstChild; null !== nextEffect; )
-    if (
-      ((firstChild = nextEffect),
-      (root = firstChild.child),
-      0 !== (firstChild.subtreeFlags & 1028) && null !== root)
-    )
-      (root.return = firstChild), (nextEffect = root);
-    else
-      for (; null !== nextEffect; ) {
-        firstChild = nextEffect;
-        focusNode = firstChild.alternate;
-        root = firstChild.flags;
-        switch (firstChild.tag) {
-          case 0:
-            if (
-              0 !== (root & 4) &&
-              ((root = firstChild.updateQueue),
-              (root = null !== root ? root.events : null),
-              null !== root)
-            )
-              for (
-                JSCompiler_temp = 0;
-                JSCompiler_temp < root.length;
-                JSCompiler_temp++
-              )
-                (anchorOffset = root[JSCompiler_temp]),
-                  (anchorOffset.ref.impl = anchorOffset.nextImpl);
-            break;
-          case 11:
-          case 15:
-            break;
-          case 1:
-            if (0 !== (root & 1024) && null !== focusNode) {
-              root = void 0;
-              JSCompiler_temp = firstChild;
-              anchorOffset = focusNode.memoizedProps;
-              focusNode = focusNode.memoizedState;
-              selection = JSCompiler_temp.stateNode;
-              try {
-                var resolvedPrevProps = resolveClassComponentProps(
-                  JSCompiler_temp.type,
-                  anchorOffset
-                );
-                root = selection.getSnapshotBeforeUpdate(
-                  resolvedPrevProps,
-                  focusNode
-                );
-                selection.__reactInternalSnapshotBeforeUpdate = root;
-              } catch (error) {
-                captureCommitPhaseError(
-                  JSCompiler_temp,
-                  JSCompiler_temp.return,
-                  error
-                );
-              }
-            }
-            break;
-          case 3:
-            if (0 !== (root & 1024))
-              if (
-                ((root = firstChild.stateNode.containerInfo),
-                (JSCompiler_temp = root.nodeType),
-                9 === JSCompiler_temp)
-              )
-                clearContainerSparingly(root);
-              else if (1 === JSCompiler_temp)
-                switch (root.nodeName) {
-                  case "HEAD":
-                  case "HTML":
-                  case "BODY":
-                    clearContainerSparingly(root);
-                    break;
-                  default:
-                    root.textContent = "";
-                }
-            break;
-          case 5:
-          case 26:
-          case 27:
-          case 6:
-          case 4:
-          case 17:
-            break;
-          default:
-            if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));
-        }
-        root = firstChild.sibling;
-        if (null !== root) {
-          root.return = firstChild.return;
-          nextEffect = root;
-          break;
-        }
-        nextEffect = firstChild.return;
-      }
-}
-function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {
-  var prevEffectStart = pushComponentEffectStart(),
-    prevEffectDuration = pushComponentEffectDuration(),
-    prevEffectErrors = pushComponentEffectErrors(),
-    prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-    flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitHookLayoutEffects(finishedWork, 5);
-      break;
-    case 1:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      if (flags & 4)
-        if (((finishedRoot = finishedWork.stateNode), null === current))
-          if (shouldProfile(finishedWork)) {
-            startEffectTimer();
-            try {
-              finishedRoot.componentDidMount();
-            } catch (error) {
-              captureCommitPhaseError(finishedWork, finishedWork.return, error);
-            }
-            recordEffectDuration();
-          } else
-            try {
-              finishedRoot.componentDidMount();
-            } catch (error$156) {
-              captureCommitPhaseError(
-                finishedWork,
-                finishedWork.return,
-                error$156
-              );
-            }
-        else {
-          var prevProps = resolveClassComponentProps(
-            finishedWork.type,
-            current.memoizedProps
-          );
-          current = current.memoizedState;
-          if (shouldProfile(finishedWork)) {
-            startEffectTimer();
-            try {
-              finishedRoot.componentDidUpdate(
-                prevProps,
-                current,
-                finishedRoot.__reactInternalSnapshotBeforeUpdate
-              );
-            } catch (error$157) {
-              captureCommitPhaseError(
-                finishedWork,
-                finishedWork.return,
-                error$157
-              );
-            }
-            recordEffectDuration();
-          } else
-            try {
-              finishedRoot.componentDidUpdate(
-                prevProps,
-                current,
-                finishedRoot.__reactInternalSnapshotBeforeUpdate
-              );
-            } catch (error$158) {
-              captureCommitPhaseError(
-                finishedWork,
-                finishedWork.return,
-                error$158
-              );
-            }
-        }
-      flags & 64 && commitClassCallbacks(finishedWork);
-      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-      break;
-    case 3:
-      current = pushNestedEffectDurations();
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      if (flags & 64 && ((flags = finishedWork.updateQueue), null !== flags)) {
-        prevProps = null;
-        if (null !== finishedWork.child)
-          switch (finishedWork.child.tag) {
-            case 27:
-            case 5:
-              prevProps = finishedWork.child.stateNode;
-              break;
-            case 1:
-              prevProps = finishedWork.child.stateNode;
-          }
-        try {
-          commitCallbacks(flags, prevProps);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      finishedRoot.effectDuration += popNestedEffectDurations(current);
-      break;
-    case 27:
-      null === current &&
-        flags & 4 &&
-        commitHostSingletonAcquisition(finishedWork);
-    case 26:
-    case 5:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      null === current && flags & 4 && commitHostMount(finishedWork);
-      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);
-      break;
-    case 12:
-      flags & 4
-        ? ((flags = pushNestedEffectDurations()),
-          recursivelyTraverseLayoutEffects(finishedRoot, finishedWork),
-          (finishedRoot = finishedWork.stateNode),
-          (finishedRoot.effectDuration += bubbleNestedEffectDurations(flags)),
-          commitProfilerUpdate(
-            finishedWork,
-            current,
-            commitStartTime,
-            finishedRoot.effectDuration
-          ))
-        : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      break;
-    case 31:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-      break;
-    case 13:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-      flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-      flags & 64 &&
-        ((finishedRoot = finishedWork.memoizedState),
-        null !== finishedRoot &&
-          ((finishedRoot = finishedRoot.dehydrated),
-          null !== finishedRoot &&
-            ((current = retryDehydratedSuspenseBoundary.bind(
-              null,
-              finishedWork
-            )),
-            registerSuspenseInstanceRetry(finishedRoot, current))));
-      break;
-    case 22:
-      flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;
-      if (!flags) {
-        current =
-          (null !== current && null !== current.memoizedState) ||
-          offscreenSubtreeWasHidden;
-        prevProps = offscreenSubtreeIsHidden;
-        var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-        offscreenSubtreeIsHidden = flags;
-        (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden
-          ? (recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              0 !== (finishedWork.subtreeFlags & 8772)
-            ),
-            0 !== (finishedWork.mode & 2) &&
-              0 <= componentEffectStartTime &&
-              0 <= componentEffectEndTime &&
-              0.05 < componentEffectEndTime - componentEffectStartTime &&
-              logComponentReappeared(
-                finishedWork,
-                componentEffectStartTime,
-                componentEffectEndTime
-              ))
-          : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-        offscreenSubtreeIsHidden = prevProps;
-        offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-      }
-      break;
-    case 30:
-      break;
-    default:
-      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);
-  }
-  0 !== (finishedWork.mode & 2) &&
-    0 <= componentEffectStartTime &&
-    0 <= componentEffectEndTime &&
-    ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        finishedWork,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      ),
-    null === finishedWork.alternate &&
-      null !== finishedWork.return &&
-      null !== finishedWork.return.alternate &&
-      0.05 < componentEffectEndTime - componentEffectStartTime &&
-      (isHydratingParent(finishedWork.return.alternate, finishedWork.return) ||
-        logComponentTrigger(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          "Mount"
-        )));
-  popComponentEffectStart(prevEffectStart);
-  popComponentEffectDuration(prevEffectDuration);
-  componentEffectErrors = prevEffectErrors;
-  componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-}
-function detachFiberAfterEffects(fiber) {
-  var alternate = fiber.alternate;
-  null !== alternate &&
-    ((fiber.alternate = null), detachFiberAfterEffects(alternate));
-  fiber.child = null;
-  fiber.deletions = null;
-  fiber.sibling = null;
-  5 === fiber.tag &&
-    ((alternate = fiber.stateNode),
-    null !== alternate && detachDeletedInstance(alternate));
-  fiber.stateNode = null;
-  fiber.return = null;
-  fiber.dependencies = null;
-  fiber.memoizedProps = null;
-  fiber.memoizedState = null;
-  fiber.pendingProps = null;
-  fiber.stateNode = null;
-  fiber.updateQueue = null;
-}
-var hostParent = null,
-  hostParentIsContainer = !1;
-function recursivelyTraverseDeletionEffects(
-  finishedRoot,
-  nearestMountedAncestor,
-  parent
-) {
-  for (parent = parent.child; null !== parent; )
-    commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),
-      (parent = parent.sibling);
-}
-function commitDeletionEffectsOnFiber(
-  finishedRoot,
-  nearestMountedAncestor,
-  deletedFiber
-) {
-  if (injectedHook && "function" === typeof injectedHook.onCommitFiberUnmount)
-    try {
-      injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);
-    } catch (err) {}
-  var prevEffectStart = pushComponentEffectStart(),
-    prevEffectDuration = pushComponentEffectDuration(),
-    prevEffectErrors = pushComponentEffectErrors(),
-    prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-  switch (deletedFiber.tag) {
-    case 26:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      deletedFiber.memoizedState
-        ? deletedFiber.memoizedState.count--
-        : deletedFiber.stateNode &&
-          ((finishedRoot = deletedFiber.stateNode),
-          finishedRoot.parentNode.removeChild(finishedRoot));
-      break;
-    case 27:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-      var prevHostParent = hostParent,
-        prevHostParentIsContainer = hostParentIsContainer;
-      isSingletonScope(deletedFiber.type) &&
-        ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      releaseSingletonInstance(deletedFiber.stateNode);
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      break;
-    case 5:
-      offscreenSubtreeWasHidden ||
-        safelyDetachRef(deletedFiber, nearestMountedAncestor);
-    case 6:
-      prevHostParent = hostParent;
-      prevHostParentIsContainer = hostParentIsContainer;
-      hostParent = null;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      if (null !== hostParent)
-        if (hostParentIsContainer)
-          try {
-            (9 === hostParent.nodeType
-              ? hostParent.body
-              : "HTML" === hostParent.nodeName
-                ? hostParent.ownerDocument.body
-                : hostParent
-            ).removeChild(deletedFiber.stateNode);
-          } catch (error) {
-            captureCommitPhaseError(
-              deletedFiber,
-              nearestMountedAncestor,
-              error
-            );
-          }
-        else
-          try {
-            hostParent.removeChild(deletedFiber.stateNode);
-          } catch (error) {
-            captureCommitPhaseError(
-              deletedFiber,
-              nearestMountedAncestor,
-              error
-            );
-          }
-      break;
-    case 18:
-      null !== hostParent &&
-        (hostParentIsContainer
-          ? ((finishedRoot = hostParent),
-            clearHydrationBoundary(
-              9 === finishedRoot.nodeType
-                ? finishedRoot.body
-                : "HTML" === finishedRoot.nodeName
-                  ? finishedRoot.ownerDocument.body
-                  : finishedRoot,
-              deletedFiber.stateNode
-            ),
-            retryIfBlockedOn(finishedRoot))
-          : clearHydrationBoundary(hostParent, deletedFiber.stateNode));
-      break;
-    case 4:
-      prevHostParent = hostParent;
-      prevHostParentIsContainer = hostParentIsContainer;
-      hostParent = deletedFiber.stateNode.containerInfo;
-      hostParentIsContainer = !0;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      hostParent = prevHostParent;
-      hostParentIsContainer = prevHostParentIsContainer;
-      break;
-    case 0:
-    case 11:
-    case 14:
-    case 15:
-      commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);
-      offscreenSubtreeWasHidden ||
-        commitHookLayoutUnmountEffects(deletedFiber, nearestMountedAncestor, 4);
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 1:
-      offscreenSubtreeWasHidden ||
-        (safelyDetachRef(deletedFiber, nearestMountedAncestor),
-        (prevHostParent = deletedFiber.stateNode),
-        "function" === typeof prevHostParent.componentWillUnmount &&
-          safelyCallComponentWillUnmount(
-            deletedFiber,
-            nearestMountedAncestor,
-            prevHostParent
-          ));
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 21:
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      break;
-    case 22:
-      offscreenSubtreeWasHidden =
-        (prevHostParent = offscreenSubtreeWasHidden) ||
-        null !== deletedFiber.memoizedState;
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-      offscreenSubtreeWasHidden = prevHostParent;
-      break;
-    default:
-      recursivelyTraverseDeletionEffects(
-        finishedRoot,
-        nearestMountedAncestor,
-        deletedFiber
-      );
-  }
-  0 !== (deletedFiber.mode & 2) &&
-    0 <= componentEffectStartTime &&
-    0 <= componentEffectEndTime &&
-    (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-    logComponentEffect(
-      deletedFiber,
-      componentEffectStartTime,
-      componentEffectEndTime,
-      componentEffectDuration,
-      componentEffectErrors
-    );
-  popComponentEffectStart(prevEffectStart);
-  popComponentEffectDuration(prevEffectDuration);
-  componentEffectErrors = prevEffectErrors;
-  componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-}
-function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {
-  if (
-    null === finishedWork.memoizedState &&
-    ((finishedRoot = finishedWork.alternate),
-    null !== finishedRoot &&
-      ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))
-  ) {
-    finishedRoot = finishedRoot.dehydrated;
-    try {
-      retryIfBlockedOn(finishedRoot);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-  }
-}
-function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {
-  if (
-    null === finishedWork.memoizedState &&
-    ((finishedRoot = finishedWork.alternate),
-    null !== finishedRoot &&
-      ((finishedRoot = finishedRoot.memoizedState),
-      null !== finishedRoot &&
-        ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))
-  )
-    try {
-      retryIfBlockedOn(finishedRoot);
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-}
-function getRetryCache(finishedWork) {
-  switch (finishedWork.tag) {
-    case 31:
-    case 13:
-    case 19:
-      var retryCache = finishedWork.stateNode;
-      null === retryCache &&
-        (retryCache = finishedWork.stateNode = new PossiblyWeakSet());
-      return retryCache;
-    case 22:
-      return (
-        (finishedWork = finishedWork.stateNode),
-        (retryCache = finishedWork._retryCache),
-        null === retryCache &&
-          (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),
-        retryCache
-      );
-    default:
-      throw Error(formatProdErrorMessage(435, finishedWork.tag));
-  }
-}
-function attachSuspenseRetryListeners(finishedWork, wakeables) {
-  var retryCache = getRetryCache(finishedWork);
-  wakeables.forEach(function (wakeable) {
-    if (!retryCache.has(wakeable)) {
-      retryCache.add(wakeable);
-      if (isDevToolsPresent)
-        if (null !== inProgressLanes && null !== inProgressRoot)
-          restorePendingUpdaters(inProgressRoot, inProgressLanes);
-        else throw Error(formatProdErrorMessage(413));
-      var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);
-      wakeable.then(retry, retry);
-    }
-  });
-}
-function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (null !== deletions)
-    for (var i = 0; i < deletions.length; i++) {
-      var childToDelete = deletions[i],
-        root = root$jscomp$0,
-        returnFiber = parentFiber,
-        prevEffectStart = pushComponentEffectStart(),
-        parent = returnFiber;
-      a: for (; null !== parent; ) {
-        switch (parent.tag) {
-          case 27:
-            if (isSingletonScope(parent.type)) {
-              hostParent = parent.stateNode;
-              hostParentIsContainer = !1;
-              break a;
-            }
-            break;
-          case 5:
-            hostParent = parent.stateNode;
-            hostParentIsContainer = !1;
-            break a;
-          case 3:
-          case 4:
-            hostParent = parent.stateNode.containerInfo;
-            hostParentIsContainer = !0;
-            break a;
-        }
-        parent = parent.return;
-      }
-      if (null === hostParent) throw Error(formatProdErrorMessage(160));
-      commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);
-      hostParent = null;
-      hostParentIsContainer = !1;
-      0 !== (childToDelete.mode & 2) &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        0.05 < componentEffectEndTime - componentEffectStartTime &&
-        logComponentTrigger(
-          childToDelete,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          "Unmount"
-        );
-      popComponentEffectStart(prevEffectStart);
-      root = childToDelete.alternate;
-      null !== root && (root.return = null);
-      childToDelete.return = null;
-    }
-  if (parentFiber.subtreeFlags & 13886)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),
-        (parentFiber = parentFiber.sibling);
-}
-var currentHoistableRoot = null;
-function commitMutationEffectsOnFiber(finishedWork, root) {
-  var prevEffectStart = pushComponentEffectStart(),
-    prevEffectDuration = pushComponentEffectDuration(),
-    prevEffectErrors = pushComponentEffectErrors(),
-    prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-    current = finishedWork.alternate,
-    flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 14:
-    case 15:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),
-        commitHookEffectListMount(3, finishedWork),
-        commitHookLayoutUnmountEffects(finishedWork, finishedWork.return, 5));
-      break;
-    case 1:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      if (
-        flags & 64 &&
-        offscreenSubtreeIsHidden &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags && ((current = flags.callbacks), null !== current))
-      ) {
-        var existingHiddenCallbacks = flags.shared.hiddenCallbacks;
-        flags.shared.hiddenCallbacks =
-          null === existingHiddenCallbacks
-            ? current
-            : existingHiddenCallbacks.concat(current);
-      }
-      break;
-    case 26:
-      existingHiddenCallbacks = currentHoistableRoot;
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      if (flags & 4) {
-        var currentResource = null !== current ? current.memoizedState : null;
-        flags = finishedWork.memoizedState;
-        if (null === current)
-          if (null === flags)
-            if (null === finishedWork.stateNode) {
-              a: {
-                flags = finishedWork.type;
-                current = finishedWork.memoizedProps;
-                existingHiddenCallbacks =
-                  existingHiddenCallbacks.ownerDocument ||
-                  existingHiddenCallbacks;
-                b: switch (flags) {
-                  case "title":
-                    currentResource =
-                      existingHiddenCallbacks.getElementsByTagName("title")[0];
-                    if (
-                      !currentResource ||
-                      currentResource[internalHoistableMarker] ||
-                      currentResource[internalInstanceKey] ||
-                      "http://www.w3.org/2000/svg" ===
-                        currentResource.namespaceURI ||
-                      currentResource.hasAttribute("itemprop")
-                    )
-                      (currentResource =
-                        existingHiddenCallbacks.createElement(flags)),
-                        existingHiddenCallbacks.head.insertBefore(
-                          currentResource,
-                          existingHiddenCallbacks.querySelector("head > title")
-                        );
-                    setInitialProperties(currentResource, flags, current);
-                    currentResource[internalInstanceKey] = finishedWork;
-                    markNodeAsHoistable(currentResource);
-                    flags = currentResource;
-                    break a;
-                  case "link":
-                    var maybeNodes = getHydratableHoistableCache(
-                      "link",
-                      "href",
-                      existingHiddenCallbacks
-                    ).get(flags + (current.href || ""));
-                    if (maybeNodes)
-                      for (var i = 0; i < maybeNodes.length; i++)
-                        if (
-                          ((currentResource = maybeNodes[i]),
-                          currentResource.getAttribute("href") ===
-                            (null == current.href || "" === current.href
-                              ? null
-                              : current.href) &&
-                            currentResource.getAttribute("rel") ===
-                              (null == current.rel ? null : current.rel) &&
-                            currentResource.getAttribute("title") ===
-                              (null == current.title ? null : current.title) &&
-                            currentResource.getAttribute("crossorigin") ===
-                              (null == current.crossOrigin
-                                ? null
-                                : current.crossOrigin))
-                        ) {
-                          maybeNodes.splice(i, 1);
-                          break b;
-                        }
-                    currentResource =
-                      existingHiddenCallbacks.createElement(flags);
-                    setInitialProperties(currentResource, flags, current);
-                    existingHiddenCallbacks.head.appendChild(currentResource);
-                    break;
-                  case "meta":
-                    if (
-                      (maybeNodes = getHydratableHoistableCache(
-                        "meta",
-                        "content",
-                        existingHiddenCallbacks
-                      ).get(flags + (current.content || "")))
-                    )
-                      for (i = 0; i < maybeNodes.length; i++)
-                        if (
-                          ((currentResource = maybeNodes[i]),
-                          currentResource.getAttribute("content") ===
-                            (null == current.content
-                              ? null
-                              : "" + current.content) &&
-                            currentResource.getAttribute("name") ===
-                              (null == current.name ? null : current.name) &&
-                            currentResource.getAttribute("property") ===
-                              (null == current.property
-                                ? null
-                                : current.property) &&
-                            currentResource.getAttribute("http-equiv") ===
-                              (null == current.httpEquiv
-                                ? null
-                                : current.httpEquiv) &&
-                            currentResource.getAttribute("charset") ===
-                              (null == current.charSet
-                                ? null
-                                : current.charSet))
-                        ) {
-                          maybeNodes.splice(i, 1);
-                          break b;
-                        }
-                    currentResource =
-                      existingHiddenCallbacks.createElement(flags);
-                    setInitialProperties(currentResource, flags, current);
-                    existingHiddenCallbacks.head.appendChild(currentResource);
-                    break;
-                  default:
-                    throw Error(formatProdErrorMessage(468, flags));
-                }
-                currentResource[internalInstanceKey] = finishedWork;
-                markNodeAsHoistable(currentResource);
-                flags = currentResource;
-              }
-              finishedWork.stateNode = flags;
-            } else
-              mountHoistable(
-                existingHiddenCallbacks,
-                finishedWork.type,
-                finishedWork.stateNode
-              );
-          else
-            finishedWork.stateNode = acquireResource(
-              existingHiddenCallbacks,
-              flags,
-              finishedWork.memoizedProps
-            );
-        else
-          currentResource !== flags
-            ? (null === currentResource
-                ? null !== current.stateNode &&
-                  ((current = current.stateNode),
-                  current.parentNode.removeChild(current))
-                : currentResource.count--,
-              null === flags
-                ? mountHoistable(
-                    existingHiddenCallbacks,
-                    finishedWork.type,
-                    finishedWork.stateNode
-                  )
-                : acquireResource(
-                    existingHiddenCallbacks,
-                    flags,
-                    finishedWork.memoizedProps
-                  ))
-            : null === flags &&
-              null !== finishedWork.stateNode &&
-              commitHostUpdate(
-                finishedWork,
-                finishedWork.memoizedProps,
-                current.memoizedProps
-              );
-      }
-      break;
-    case 27:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      null !== current &&
-        flags & 4 &&
-        commitHostUpdate(
-          finishedWork,
-          finishedWork.memoizedProps,
-          current.memoizedProps
-        );
-      break;
-    case 5:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 512 &&
-        (offscreenSubtreeWasHidden ||
-          null === current ||
-          safelyDetachRef(current, current.return));
-      if (finishedWork.flags & 32) {
-        existingHiddenCallbacks = finishedWork.stateNode;
-        try {
-          setTextContent(existingHiddenCallbacks, "");
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      flags & 4 &&
-        null != finishedWork.stateNode &&
-        ((existingHiddenCallbacks = finishedWork.memoizedProps),
-        commitHostUpdate(
-          finishedWork,
-          existingHiddenCallbacks,
-          null !== current ? current.memoizedProps : existingHiddenCallbacks
-        ));
-      flags & 1024 && (needsFormReset = !0);
-      break;
-    case 6:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      if (flags & 4) {
-        if (null === finishedWork.stateNode)
-          throw Error(formatProdErrorMessage(162));
-        flags = finishedWork.memoizedProps;
-        current = finishedWork.stateNode;
-        try {
-          current.nodeValue = flags;
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      }
-      break;
-    case 3:
-      existingHiddenCallbacks = pushNestedEffectDurations();
-      tagCaches = null;
-      currentResource = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(root.containerInfo);
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      currentHoistableRoot = currentResource;
-      commitReconciliationEffects(finishedWork);
-      if (flags & 4 && null !== current && current.memoizedState.isDehydrated)
-        try {
-          retryIfBlockedOn(root.containerInfo);
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      needsFormReset &&
-        ((needsFormReset = !1), recursivelyResetForms(finishedWork));
-      root.effectDuration += popNestedEffectDurations(existingHiddenCallbacks);
-      break;
-    case 4:
-      flags = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(
-        finishedWork.stateNode.containerInfo
-      );
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      currentHoistableRoot = flags;
-      break;
-    case 12:
-      flags = pushNestedEffectDurations();
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      finishedWork.stateNode.effectDuration +=
-        bubbleNestedEffectDurations(flags);
-      break;
-    case 31:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 13:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      finishedWork.child.flags & 8192 &&
-        (null !== finishedWork.memoizedState) !==
-          (null !== current && null !== current.memoizedState) &&
-        (globalMostRecentFallbackTime = now$1());
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 22:
-      existingHiddenCallbacks = null !== finishedWork.memoizedState;
-      var wasHidden = null !== current && null !== current.memoizedState,
-        prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,
-        prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;
-      offscreenSubtreeIsHidden =
-        prevOffscreenSubtreeIsHidden || existingHiddenCallbacks;
-      offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
-      offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
-      wasHidden &&
-        !existingHiddenCallbacks &&
-        !prevOffscreenSubtreeIsHidden &&
-        !prevOffscreenSubtreeWasHidden &&
-        0 !== (finishedWork.mode & 2) &&
-        0 <= componentEffectStartTime &&
-        0 <= componentEffectEndTime &&
-        0.05 < componentEffectEndTime - componentEffectStartTime &&
-        logComponentReappeared(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime
-        );
-      commitReconciliationEffects(finishedWork);
-      if (flags & 8192)
-        a: for (
-          root = finishedWork.stateNode,
-            root._visibility = existingHiddenCallbacks
-              ? root._visibility & -2
-              : root._visibility | 1,
-            !existingHiddenCallbacks ||
-              null === current ||
-              wasHidden ||
-              offscreenSubtreeIsHidden ||
-              offscreenSubtreeWasHidden ||
-              (recursivelyTraverseDisappearLayoutEffects(finishedWork),
-              0 !== (finishedWork.mode & 2) &&
-                0 <= componentEffectStartTime &&
-                0 <= componentEffectEndTime &&
-                0.05 < componentEffectEndTime - componentEffectStartTime &&
-                logComponentTrigger(
-                  finishedWork,
-                  componentEffectStartTime,
-                  componentEffectEndTime,
-                  "Disconnect"
-                )),
-            current = null,
-            root = finishedWork;
-          ;
-
-        ) {
-          if (5 === root.tag || 26 === root.tag) {
-            if (null === current) {
-              wasHidden = current = root;
-              try {
-                if (
-                  ((currentResource = wasHidden.stateNode),
-                  existingHiddenCallbacks)
-                )
-                  (maybeNodes = currentResource.style),
-                    "function" === typeof maybeNodes.setProperty
-                      ? maybeNodes.setProperty("display", "none", "important")
-                      : (maybeNodes.display = "none");
-                else {
-                  i = wasHidden.stateNode;
-                  var styleProp = wasHidden.memoizedProps.style,
-                    display =
-                      void 0 !== styleProp &&
-                      null !== styleProp &&
-                      styleProp.hasOwnProperty("display")
-                        ? styleProp.display
-                        : null;
-                  i.style.display =
-                    null == display || "boolean" === typeof display
-                      ? ""
-                      : ("" + display).trim();
-                }
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (6 === root.tag) {
-            if (null === current) {
-              wasHidden = root;
-              try {
-                wasHidden.stateNode.nodeValue = existingHiddenCallbacks
-                  ? ""
-                  : wasHidden.memoizedProps;
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (18 === root.tag) {
-            if (null === current) {
-              wasHidden = root;
-              try {
-                var instance = wasHidden.stateNode;
-                existingHiddenCallbacks
-                  ? hideOrUnhideDehydratedBoundary(instance, !0)
-                  : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);
-              } catch (error) {
-                captureCommitPhaseError(wasHidden, wasHidden.return, error);
-              }
-            }
-          } else if (
-            ((22 !== root.tag && 23 !== root.tag) ||
-              null === root.memoizedState ||
-              root === finishedWork) &&
-            null !== root.child
-          ) {
-            root.child.return = root;
-            root = root.child;
-            continue;
-          }
-          if (root === finishedWork) break a;
-          for (; null === root.sibling; ) {
-            if (null === root.return || root.return === finishedWork) break a;
-            current === root && (current = null);
-            root = root.return;
-          }
-          current === root && (current = null);
-          root.sibling.return = root.return;
-          root = root.sibling;
-        }
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((current = flags.retryQueue),
-          null !== current &&
-            ((flags.retryQueue = null),
-            attachSuspenseRetryListeners(finishedWork, current))));
-      break;
-    case 19:
-      recursivelyTraverseMutationEffects(root, finishedWork);
-      commitReconciliationEffects(finishedWork);
-      flags & 4 &&
-        ((flags = finishedWork.updateQueue),
-        null !== flags &&
-          ((finishedWork.updateQueue = null),
-          attachSuspenseRetryListeners(finishedWork, flags)));
-      break;
-    case 30:
-      break;
-    case 21:
-      break;
-    default:
-      recursivelyTraverseMutationEffects(root, finishedWork),
-        commitReconciliationEffects(finishedWork);
-  }
-  0 !== (finishedWork.mode & 2) &&
-    0 <= componentEffectStartTime &&
-    0 <= componentEffectEndTime &&
-    ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        finishedWork,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      ),
-    null === finishedWork.alternate &&
-      null !== finishedWork.return &&
-      null !== finishedWork.return.alternate &&
-      0.05 < componentEffectEndTime - componentEffectStartTime &&
-      (isHydratingParent(finishedWork.return.alternate, finishedWork.return) ||
-        logComponentTrigger(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          "Mount"
-        )));
-  popComponentEffectStart(prevEffectStart);
-  popComponentEffectDuration(prevEffectDuration);
-  componentEffectErrors = prevEffectErrors;
-  componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-}
-function commitReconciliationEffects(finishedWork) {
-  var flags = finishedWork.flags;
-  if (flags & 2) {
-    try {
-      for (
-        var hostParentFiber, parentFiber = finishedWork.return;
-        null !== parentFiber;
-
-      ) {
-        if (isHostParent(parentFiber)) {
-          hostParentFiber = parentFiber;
-          break;
-        }
-        parentFiber = parentFiber.return;
-      }
-      if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));
-      switch (hostParentFiber.tag) {
-        case 27:
-          var parent = hostParentFiber.stateNode,
-            before = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(finishedWork, before, parent);
-          break;
-        case 5:
-          var parent$161 = hostParentFiber.stateNode;
-          hostParentFiber.flags & 32 &&
-            (setTextContent(parent$161, ""), (hostParentFiber.flags &= -33));
-          var before$162 = getHostSibling(finishedWork);
-          insertOrAppendPlacementNode(finishedWork, before$162, parent$161);
-          break;
-        case 3:
-        case 4:
-          var parent$163 = hostParentFiber.stateNode.containerInfo,
-            before$164 = getHostSibling(finishedWork);
-          insertOrAppendPlacementNodeIntoContainer(
-            finishedWork,
-            before$164,
-            parent$163
-          );
-          break;
-        default:
-          throw Error(formatProdErrorMessage(161));
-      }
-    } catch (error) {
-      captureCommitPhaseError(finishedWork, finishedWork.return, error);
-    }
-    finishedWork.flags &= -3;
-  }
-  flags & 4096 && (finishedWork.flags &= -4097);
-}
-function recursivelyResetForms(parentFiber) {
-  if (parentFiber.subtreeFlags & 1024)
-    for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-      var fiber = parentFiber;
-      recursivelyResetForms(fiber);
-      5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();
-      parentFiber = parentFiber.sibling;
-    }
-}
-function recursivelyTraverseLayoutEffects(root, parentFiber) {
-  if (parentFiber.subtreeFlags & 8772)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),
-        (parentFiber = parentFiber.sibling);
-}
-function recursivelyTraverseDisappearLayoutEffects(parentFiber) {
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    var finishedWork = parentFiber,
-      prevEffectStart = pushComponentEffectStart(),
-      prevEffectDuration = pushComponentEffectDuration(),
-      prevEffectErrors = pushComponentEffectErrors(),
-      prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-    switch (finishedWork.tag) {
-      case 0:
-      case 11:
-      case 14:
-      case 15:
-        commitHookLayoutUnmountEffects(finishedWork, finishedWork.return, 4);
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 1:
-        safelyDetachRef(finishedWork, finishedWork.return);
-        var instance = finishedWork.stateNode;
-        "function" === typeof instance.componentWillUnmount &&
-          safelyCallComponentWillUnmount(
-            finishedWork,
-            finishedWork.return,
-            instance
-          );
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 27:
-        releaseSingletonInstance(finishedWork.stateNode);
-      case 26:
-      case 5:
-        safelyDetachRef(finishedWork, finishedWork.return);
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 22:
-        null === finishedWork.memoizedState &&
-          recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      case 30:
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-        break;
-      default:
-        recursivelyTraverseDisappearLayoutEffects(finishedWork);
-    }
-    0 !== (finishedWork.mode & 2) &&
-      0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        finishedWork,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      );
-    popComponentEffectStart(prevEffectStart);
-    popComponentEffectDuration(prevEffectDuration);
-    componentEffectErrors = prevEffectErrors;
-    componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    parentFiber = parentFiber.sibling;
-  }
-}
-function recursivelyTraverseReappearLayoutEffects(
-  finishedRoot$jscomp$0,
-  parentFiber,
-  includeWorkInProgressEffects
-) {
-  includeWorkInProgressEffects =
-    includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    var current = parentFiber.alternate,
-      finishedRoot = finishedRoot$jscomp$0,
-      finishedWork = parentFiber,
-      prevEffectStart = pushComponentEffectStart(),
-      prevEffectDuration = pushComponentEffectDuration(),
-      prevEffectErrors = pushComponentEffectErrors(),
-      prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-      flags = finishedWork.flags;
-    switch (finishedWork.tag) {
-      case 0:
-      case 11:
-      case 15:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        commitHookLayoutEffects(finishedWork, 4);
-        break;
-      case 1:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        current = finishedWork;
-        finishedRoot = current.stateNode;
-        if ("function" === typeof finishedRoot.componentDidMount)
-          try {
-            finishedRoot.componentDidMount();
-          } catch (error) {
-            captureCommitPhaseError(current, current.return, error);
-          }
-        current = finishedWork;
-        finishedRoot = current.updateQueue;
-        if (null !== finishedRoot) {
-          var instance = current.stateNode;
-          try {
-            var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;
-            if (null !== hiddenCallbacks)
-              for (
-                finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;
-                finishedRoot < hiddenCallbacks.length;
-                finishedRoot++
-              )
-                callCallback(hiddenCallbacks[finishedRoot], instance);
-          } catch (error) {
-            captureCommitPhaseError(current, current.return, error);
-          }
-        }
-        includeWorkInProgressEffects &&
-          flags & 64 &&
-          commitClassCallbacks(finishedWork);
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 27:
-        commitHostSingletonAcquisition(finishedWork);
-      case 26:
-      case 5:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          null === current &&
-          flags & 4 &&
-          commitHostMount(finishedWork);
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 12:
-        includeWorkInProgressEffects && flags & 4
-          ? ((flags = pushNestedEffectDurations()),
-            recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            ),
-            (finishedRoot = finishedWork.stateNode),
-            (finishedRoot.effectDuration += bubbleNestedEffectDurations(flags)),
-            commitProfilerUpdate(
-              finishedWork,
-              current,
-              commitStartTime,
-              finishedRoot.effectDuration
-            ))
-          : recursivelyTraverseReappearLayoutEffects(
-              finishedRoot,
-              finishedWork,
-              includeWorkInProgressEffects
-            );
-        break;
-      case 31:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          flags & 4 &&
-          commitActivityHydrationCallbacks(finishedRoot, finishedWork);
-        break;
-      case 13:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-        includeWorkInProgressEffects &&
-          flags & 4 &&
-          commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);
-        break;
-      case 22:
-        null === finishedWork.memoizedState &&
-          recursivelyTraverseReappearLayoutEffects(
-            finishedRoot,
-            finishedWork,
-            includeWorkInProgressEffects
-          );
-        safelyAttachRef(finishedWork, finishedWork.return);
-        break;
-      case 30:
-        break;
-      default:
-        recursivelyTraverseReappearLayoutEffects(
-          finishedRoot,
-          finishedWork,
-          includeWorkInProgressEffects
-        );
-    }
-    0 !== (finishedWork.mode & 2) &&
-      0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        finishedWork,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      );
-    popComponentEffectStart(prevEffectStart);
-    popComponentEffectDuration(prevEffectDuration);
-    componentEffectErrors = prevEffectErrors;
-    componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    parentFiber = parentFiber.sibling;
-  }
-}
-function commitOffscreenPassiveMountEffects(current, finishedWork) {
-  var previousCache = null;
-  null !== current &&
-    null !== current.memoizedState &&
-    null !== current.memoizedState.cachePool &&
-    (previousCache = current.memoizedState.cachePool.pool);
-  current = null;
-  null !== finishedWork.memoizedState &&
-    null !== finishedWork.memoizedState.cachePool &&
-    (current = finishedWork.memoizedState.cachePool.pool);
-  current !== previousCache &&
-    (null != current && current.refCount++,
-    null != previousCache && releaseCache(previousCache));
-}
-function commitCachePassiveMountEffect(current, finishedWork) {
-  current = null;
-  null !== finishedWork.alternate &&
-    (current = finishedWork.alternate.memoizedState.cache);
-  finishedWork = finishedWork.memoizedState.cache;
-  finishedWork !== current &&
-    (finishedWork.refCount++, null != current && releaseCache(current));
-}
-function recursivelyTraversePassiveMountEffects(
-  root,
-  parentFiber,
-  committedLanes,
-  committedTransitions,
-  endTime
-) {
-  if (
-    parentFiber.subtreeFlags & 10256 ||
-    (0 !== parentFiber.actualDuration &&
-      (null === parentFiber.alternate ||
-        parentFiber.alternate.child !== parentFiber.child))
-  )
-    for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-      var nextSibling = parentFiber.sibling;
-      commitPassiveMountOnFiber(
-        root,
-        parentFiber,
-        committedLanes,
-        committedTransitions,
-        null !== nextSibling ? nextSibling.actualStartTime : endTime
-      );
-      parentFiber = nextSibling;
-    }
-}
-var inHydratedSubtree = !1;
-function commitPassiveMountOnFiber(
-  finishedRoot,
-  finishedWork,
-  committedLanes,
-  committedTransitions,
-  endTime
-) {
-  var prevEffectStart = pushComponentEffectStart(),
-    prevEffectDuration = pushComponentEffectDuration(),
-    prevEffectErrors = pushComponentEffectErrors(),
-    prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),
-    flags = finishedWork.flags;
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      0 !== (finishedWork.mode & 2) &&
-        0 < finishedWork.actualStartTime &&
-        0 !== (finishedWork.flags & 1) &&
-        logComponentRender(
-          finishedWork,
-          finishedWork.actualStartTime,
-          endTime,
-          inHydratedSubtree
-        );
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      flags & 2048 && commitHookPassiveMountEffects(finishedWork, 9);
-      break;
-    case 1:
-      0 !== (finishedWork.mode & 2) &&
-        0 < finishedWork.actualStartTime &&
-        (0 !== (finishedWork.flags & 128)
-          ? logComponentErrored(
-              finishedWork,
-              finishedWork.actualStartTime,
-              endTime
-            )
-          : 0 !== (finishedWork.flags & 1) &&
-            logComponentRender(
-              finishedWork,
-              finishedWork.actualStartTime,
-              endTime,
-              inHydratedSubtree
-            ));
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      break;
-    case 3:
-      var prevProfilerEffectDuration = pushNestedEffectDurations(),
-        wasInHydratedSubtree = inHydratedSubtree;
-      inHydratedSubtree =
-        null !== finishedWork.alternate &&
-        finishedWork.alternate.memoizedState.isDehydrated &&
-        0 === (finishedWork.flags & 256);
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      inHydratedSubtree = wasInHydratedSubtree;
-      flags & 2048 &&
-        ((committedLanes = null),
-        null !== finishedWork.alternate &&
-          (committedLanes = finishedWork.alternate.memoizedState.cache),
-        (committedTransitions = finishedWork.memoizedState.cache),
-        committedTransitions !== committedLanes &&
-          (committedTransitions.refCount++,
-          null != committedLanes && releaseCache(committedLanes)));
-      finishedRoot.passiveEffectDuration += popNestedEffectDurations(
-        prevProfilerEffectDuration
-      );
-      break;
-    case 12:
-      if (flags & 2048) {
-        flags = pushNestedEffectDurations();
-        recursivelyTraversePassiveMountEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions,
-          endTime
-        );
-        finishedRoot = finishedWork.stateNode;
-        finishedRoot.passiveEffectDuration +=
-          bubbleNestedEffectDurations(flags);
-        try {
-          prevProfilerEffectDuration = finishedWork.memoizedProps;
-          wasInHydratedSubtree = prevProfilerEffectDuration.id;
-          var onPostCommit = prevProfilerEffectDuration.onPostCommit,
-            phase = null === finishedWork.alternate ? "mount" : "update";
-          currentUpdateIsNested && (phase = "nested-update");
-          "function" === typeof onPostCommit &&
-            onPostCommit(
-              wasInHydratedSubtree,
-              phase,
-              finishedRoot.passiveEffectDuration,
-              commitStartTime
-            );
-        } catch (error) {
-          captureCommitPhaseError(finishedWork, finishedWork.return, error);
-        }
-      } else
-        recursivelyTraversePassiveMountEffects(
-          finishedRoot,
-          finishedWork,
-          committedLanes,
-          committedTransitions,
-          endTime
-        );
-      break;
-    case 31:
-      flags = inHydratedSubtree;
-      prevProfilerEffectDuration =
-        null !== finishedWork.alternate
-          ? finishedWork.alternate.memoizedState
-          : null;
-      wasInHydratedSubtree = finishedWork.memoizedState;
-      null !== prevProfilerEffectDuration && null === wasInHydratedSubtree
-        ? ((wasInHydratedSubtree = finishedWork.deletions),
-          null !== wasInHydratedSubtree &&
-          0 < wasInHydratedSubtree.length &&
-          18 === wasInHydratedSubtree[0].tag
-            ? ((inHydratedSubtree = !1),
-              null !== prevProfilerEffectDuration.hydrationErrors &&
-                logComponentErrored(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime
-                ))
-            : (inHydratedSubtree = !0))
-        : (inHydratedSubtree = !1);
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      inHydratedSubtree = flags;
-      break;
-    case 13:
-      flags = inHydratedSubtree;
-      prevProfilerEffectDuration =
-        null !== finishedWork.alternate
-          ? finishedWork.alternate.memoizedState
-          : null;
-      wasInHydratedSubtree = finishedWork.memoizedState;
-      null === prevProfilerEffectDuration ||
-      null === prevProfilerEffectDuration.dehydrated ||
-      (null !== wasInHydratedSubtree &&
-        null !== wasInHydratedSubtree.dehydrated)
-        ? (inHydratedSubtree = !1)
-        : ((wasInHydratedSubtree = finishedWork.deletions),
-          null !== wasInHydratedSubtree &&
-          0 < wasInHydratedSubtree.length &&
-          18 === wasInHydratedSubtree[0].tag
-            ? ((inHydratedSubtree = !1),
-              null !== prevProfilerEffectDuration.hydrationErrors &&
-                logComponentErrored(
-                  finishedWork,
-                  finishedWork.actualStartTime,
-                  endTime
-                ))
-            : (inHydratedSubtree = !0));
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      inHydratedSubtree = flags;
-      break;
-    case 23:
-      break;
-    case 22:
-      wasInHydratedSubtree = finishedWork.stateNode;
-      prevProfilerEffectDuration = finishedWork.alternate;
-      null !== finishedWork.memoizedState
-        ? wasInHydratedSubtree._visibility & 2
-          ? recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            )
-          : recursivelyTraverseAtomicPassiveEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            )
-        : wasInHydratedSubtree._visibility & 2
-          ? recursivelyTraversePassiveMountEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              endTime
-            )
-          : ((wasInHydratedSubtree._visibility |= 2),
-            recursivelyTraverseReconnectPassiveEffects(
-              finishedRoot,
-              finishedWork,
-              committedLanes,
-              committedTransitions,
-              0 !== (finishedWork.subtreeFlags & 10256) ||
-                (0 !== finishedWork.actualDuration &&
-                  (null === finishedWork.alternate ||
-                    finishedWork.alternate.child !== finishedWork.child)),
-              endTime
-            ),
-            0 === (finishedWork.mode & 2) ||
-              inHydratedSubtree ||
-              ((finishedRoot = finishedWork.actualStartTime),
-              0 <= finishedRoot &&
-                0.05 < endTime - finishedRoot &&
-                logComponentReappeared(finishedWork, finishedRoot, endTime),
-              0 <= componentEffectStartTime &&
-                0 <= componentEffectEndTime &&
-                0.05 < componentEffectEndTime - componentEffectStartTime &&
-                logComponentReappeared(
-                  finishedWork,
-                  componentEffectStartTime,
-                  componentEffectEndTime
-                )));
-      flags & 2048 &&
-        commitOffscreenPassiveMountEffects(
-          prevProfilerEffectDuration,
-          finishedWork
-        );
-      break;
-    case 24:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-      flags & 2048 &&
-        commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);
-      break;
-    default:
-      recursivelyTraversePassiveMountEffects(
-        finishedRoot,
-        finishedWork,
-        committedLanes,
-        committedTransitions,
-        endTime
-      );
-  }
-  if (0 !== (finishedWork.mode & 2)) {
-    if (
-      (finishedRoot =
-        !inHydratedSubtree &&
-        null === finishedWork.alternate &&
-        null !== finishedWork.return &&
-        null !== finishedWork.return.alternate)
-    )
-      (committedLanes = finishedWork.actualStartTime),
-        0 <= committedLanes &&
-          0.05 < endTime - committedLanes &&
-          logComponentTrigger(finishedWork, committedLanes, endTime, "Mount");
-    0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-        logComponentEffect(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          componentEffectDuration,
-          componentEffectErrors
-        ),
-      finishedRoot &&
-        0.05 < componentEffectEndTime - componentEffectStartTime &&
-        logComponentTrigger(
-          finishedWork,
-          componentEffectStartTime,
-          componentEffectEndTime,
-          "Mount"
-        ));
-  }
-  popComponentEffectStart(prevEffectStart);
-  popComponentEffectDuration(prevEffectDuration);
-  componentEffectErrors = prevEffectErrors;
-  componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-}
-function recursivelyTraverseReconnectPassiveEffects(
-  finishedRoot$jscomp$0,
-  parentFiber,
-  committedLanes$jscomp$0,
-  committedTransitions$jscomp$0,
-  includeWorkInProgressEffects,
-  endTime$jscomp$0
-) {
-  includeWorkInProgressEffects =
-    includeWorkInProgressEffects &&
-    (0 !== (parentFiber.subtreeFlags & 10256) ||
-      (0 !== parentFiber.actualDuration &&
-        (null === parentFiber.alternate ||
-          parentFiber.alternate.child !== parentFiber.child)));
-  for (var child = parentFiber.child; null !== child; ) {
-    parentFiber = child.sibling;
-    var finishedRoot = finishedRoot$jscomp$0,
-      committedLanes = committedLanes$jscomp$0,
-      committedTransitions = committedTransitions$jscomp$0,
-      endTime =
-        null !== parentFiber ? parentFiber.actualStartTime : endTime$jscomp$0,
-      prevEffectStart = pushComponentEffectStart(),
-      prevEffectDuration = pushComponentEffectDuration(),
-      prevEffectErrors = pushComponentEffectErrors(),
-      prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-    includeWorkInProgressEffects &&
-      0 !== (child.mode & 2) &&
-      0 < child.actualStartTime &&
-      0 !== (child.flags & 1) &&
-      logComponentRender(
-        child,
-        child.actualStartTime,
-        endTime,
-        inHydratedSubtree
-      );
-    var flags = child.flags;
-    switch (child.tag) {
-      case 0:
-      case 11:
-      case 15:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          child,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects,
-          endTime
-        );
-        commitHookPassiveMountEffects(child, 8);
-        break;
-      case 23:
-        break;
-      case 22:
-        var instance = child.stateNode;
-        null !== child.memoizedState
-          ? instance._visibility & 2
-            ? recursivelyTraverseReconnectPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                includeWorkInProgressEffects,
-                endTime
-              )
-            : recursivelyTraverseAtomicPassiveEffects(
-                finishedRoot,
-                child,
-                committedLanes,
-                committedTransitions,
-                endTime
-              )
-          : ((instance._visibility |= 2),
-            recursivelyTraverseReconnectPassiveEffects(
-              finishedRoot,
-              child,
-              committedLanes,
-              committedTransitions,
-              includeWorkInProgressEffects,
-              endTime
-            ));
-        includeWorkInProgressEffects &&
-          flags & 2048 &&
-          commitOffscreenPassiveMountEffects(child.alternate, child);
-        break;
-      case 24:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          child,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects,
-          endTime
-        );
-        includeWorkInProgressEffects &&
-          flags & 2048 &&
-          commitCachePassiveMountEffect(child.alternate, child);
-        break;
-      default:
-        recursivelyTraverseReconnectPassiveEffects(
-          finishedRoot,
-          child,
-          committedLanes,
-          committedTransitions,
-          includeWorkInProgressEffects,
-          endTime
-        );
-    }
-    0 !== (child.mode & 2) &&
-      0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        child,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      );
-    popComponentEffectStart(prevEffectStart);
-    popComponentEffectDuration(prevEffectDuration);
-    componentEffectErrors = prevEffectErrors;
-    componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    child = parentFiber;
-  }
-}
-function recursivelyTraverseAtomicPassiveEffects(
-  finishedRoot$jscomp$0,
-  parentFiber,
-  committedLanes$jscomp$0,
-  committedTransitions$jscomp$0,
-  endTime$jscomp$0
-) {
-  if (
-    parentFiber.subtreeFlags & 10256 ||
-    (0 !== parentFiber.actualDuration &&
-      (null === parentFiber.alternate ||
-        parentFiber.alternate.child !== parentFiber.child))
-  )
-    for (var child = parentFiber.child; null !== child; ) {
-      parentFiber = child.sibling;
-      var finishedRoot = finishedRoot$jscomp$0,
-        committedLanes = committedLanes$jscomp$0,
-        committedTransitions = committedTransitions$jscomp$0,
-        endTime =
-          null !== parentFiber ? parentFiber.actualStartTime : endTime$jscomp$0;
-      0 !== (child.mode & 2) &&
-        0 < child.actualStartTime &&
-        0 !== (child.flags & 1) &&
-        logComponentRender(
-          child,
-          child.actualStartTime,
-          endTime,
-          inHydratedSubtree
-        );
-      var flags = child.flags;
-      switch (child.tag) {
-        case 22:
-          recursivelyTraverseAtomicPassiveEffects(
-            finishedRoot,
-            child,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 &&
-            commitOffscreenPassiveMountEffects(child.alternate, child);
-          break;
-        case 24:
-          recursivelyTraverseAtomicPassiveEffects(
-            finishedRoot,
-            child,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-          flags & 2048 && commitCachePassiveMountEffect(child.alternate, child);
-          break;
-        default:
-          recursivelyTraverseAtomicPassiveEffects(
-            finishedRoot,
-            child,
-            committedLanes,
-            committedTransitions,
-            endTime
-          );
-      }
-      child = parentFiber;
-    }
-}
-var suspenseyCommitFlag = 8192;
-function recursivelyAccumulateSuspenseyCommit(
-  parentFiber,
-  committedLanes,
-  suspendedState
-) {
-  if (parentFiber.subtreeFlags & suspenseyCommitFlag)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      accumulateSuspenseyCommitOnFiber(
-        parentFiber,
-        committedLanes,
-        suspendedState
-      ),
-        (parentFiber = parentFiber.sibling);
-}
-function accumulateSuspenseyCommitOnFiber(
-  fiber,
-  committedLanes,
-  suspendedState
-) {
-  switch (fiber.tag) {
-    case 26:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      fiber.flags & suspenseyCommitFlag &&
-        null !== fiber.memoizedState &&
-        suspendResource(
-          suspendedState,
-          currentHoistableRoot,
-          fiber.memoizedState,
-          fiber.memoizedProps
-        );
-      break;
-    case 5:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      break;
-    case 3:
-    case 4:
-      var previousHoistableRoot = currentHoistableRoot;
-      currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-      currentHoistableRoot = previousHoistableRoot;
-      break;
-    case 22:
-      null === fiber.memoizedState &&
-        ((previousHoistableRoot = fiber.alternate),
-        null !== previousHoistableRoot &&
-        null !== previousHoistableRoot.memoizedState
-          ? ((previousHoistableRoot = suspenseyCommitFlag),
-            (suspenseyCommitFlag = 16777216),
-            recursivelyAccumulateSuspenseyCommit(
-              fiber,
-              committedLanes,
-              suspendedState
-            ),
-            (suspenseyCommitFlag = previousHoistableRoot))
-          : recursivelyAccumulateSuspenseyCommit(
-              fiber,
-              committedLanes,
-              suspendedState
-            ));
-      break;
-    default:
-      recursivelyAccumulateSuspenseyCommit(
-        fiber,
-        committedLanes,
-        suspendedState
-      );
-  }
-}
-function detachAlternateSiblings(parentFiber) {
-  var previousFiber = parentFiber.alternate;
-  if (
-    null !== previousFiber &&
-    ((parentFiber = previousFiber.child), null !== parentFiber)
-  ) {
-    previousFiber.child = null;
-    do
-      (previousFiber = parentFiber.sibling),
-        (parentFiber.sibling = null),
-        (parentFiber = previousFiber);
-    while (null !== parentFiber);
-  }
-}
-function recursivelyTraversePassiveUnmountEffects(parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (0 !== (parentFiber.flags & 16)) {
-    if (null !== deletions)
-      for (var i = 0; i < deletions.length; i++) {
-        var childToDelete = deletions[i],
-          prevEffectStart = pushComponentEffectStart();
-        nextEffect = childToDelete;
-        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-          childToDelete,
-          parentFiber
-        );
-        0 !== (childToDelete.mode & 2) &&
-          0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          logComponentTrigger(
-            childToDelete,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            "Unmount"
-          );
-        popComponentEffectStart(prevEffectStart);
-      }
-    detachAlternateSiblings(parentFiber);
-  }
-  if (parentFiber.subtreeFlags & 10256)
-    for (parentFiber = parentFiber.child; null !== parentFiber; )
-      commitPassiveUnmountOnFiber(parentFiber),
-        (parentFiber = parentFiber.sibling);
-}
-function commitPassiveUnmountOnFiber(finishedWork) {
-  var prevEffectStart = pushComponentEffectStart(),
-    prevEffectDuration = pushComponentEffectDuration(),
-    prevEffectErrors = pushComponentEffectErrors(),
-    prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-  switch (finishedWork.tag) {
-    case 0:
-    case 11:
-    case 15:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      finishedWork.flags & 2048 &&
-        commitHookPassiveUnmountEffects(finishedWork, finishedWork.return, 9);
-      break;
-    case 3:
-      var prevProfilerEffectDuration = pushNestedEffectDurations();
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      finishedWork.stateNode.passiveEffectDuration += popNestedEffectDurations(
-        prevProfilerEffectDuration
-      );
-      break;
-    case 12:
-      prevProfilerEffectDuration = pushNestedEffectDurations();
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-      finishedWork.stateNode.passiveEffectDuration +=
-        bubbleNestedEffectDurations(prevProfilerEffectDuration);
-      break;
-    case 22:
-      prevProfilerEffectDuration = finishedWork.stateNode;
-      null !== finishedWork.memoizedState &&
-      prevProfilerEffectDuration._visibility & 2 &&
-      (null === finishedWork.return || 13 !== finishedWork.return.tag)
-        ? ((prevProfilerEffectDuration._visibility &= -3),
-          recursivelyTraverseDisconnectPassiveEffects(finishedWork),
-          0 !== (finishedWork.mode & 2) &&
-            0 <= componentEffectStartTime &&
-            0 <= componentEffectEndTime &&
-            0.05 < componentEffectEndTime - componentEffectStartTime &&
-            logComponentTrigger(
-              finishedWork,
-              componentEffectStartTime,
-              componentEffectEndTime,
-              "Disconnect"
-            ))
-        : recursivelyTraversePassiveUnmountEffects(finishedWork);
-      break;
-    default:
-      recursivelyTraversePassiveUnmountEffects(finishedWork);
-  }
-  0 !== (finishedWork.mode & 2) &&
-    0 <= componentEffectStartTime &&
-    0 <= componentEffectEndTime &&
-    (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-    logComponentEffect(
-      finishedWork,
-      componentEffectStartTime,
-      componentEffectEndTime,
-      componentEffectDuration,
-      componentEffectErrors
-    );
-  popComponentEffectStart(prevEffectStart);
-  popComponentEffectDuration(prevEffectDuration);
-  componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-  componentEffectErrors = prevEffectErrors;
-}
-function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {
-  var deletions = parentFiber.deletions;
-  if (0 !== (parentFiber.flags & 16)) {
-    if (null !== deletions)
-      for (var i = 0; i < deletions.length; i++) {
-        var childToDelete = deletions[i],
-          prevEffectStart = pushComponentEffectStart();
-        nextEffect = childToDelete;
-        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-          childToDelete,
-          parentFiber
-        );
-        0 !== (childToDelete.mode & 2) &&
-          0 <= componentEffectStartTime &&
-          0 <= componentEffectEndTime &&
-          0.05 < componentEffectEndTime - componentEffectStartTime &&
-          logComponentTrigger(
-            childToDelete,
-            componentEffectStartTime,
-            componentEffectEndTime,
-            "Unmount"
-          );
-        popComponentEffectStart(prevEffectStart);
-      }
-    detachAlternateSiblings(parentFiber);
-  }
-  for (parentFiber = parentFiber.child; null !== parentFiber; ) {
-    deletions = parentFiber;
-    i = pushComponentEffectStart();
-    childToDelete = pushComponentEffectDuration();
-    prevEffectStart = pushComponentEffectErrors();
-    var prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-    switch (deletions.tag) {
-      case 0:
-      case 11:
-      case 15:
-        commitHookPassiveUnmountEffects(deletions, deletions.return, 8);
-        recursivelyTraverseDisconnectPassiveEffects(deletions);
-        break;
-      case 22:
-        var instance = deletions.stateNode;
-        instance._visibility & 2 &&
-          ((instance._visibility &= -3),
-          recursivelyTraverseDisconnectPassiveEffects(deletions));
-        break;
-      default:
-        recursivelyTraverseDisconnectPassiveEffects(deletions);
-    }
-    0 !== (deletions.mode & 2) &&
-      0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        deletions,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      );
-    popComponentEffectStart(i);
-    popComponentEffectDuration(childToDelete);
-    componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    componentEffectErrors = prevEffectStart;
-    parentFiber = parentFiber.sibling;
-  }
-}
-function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
-  deletedSubtreeRoot,
-  nearestMountedAncestor$jscomp$0
-) {
-  for (; null !== nextEffect; ) {
-    var fiber = nextEffect,
-      nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
-      prevEffectStart = pushComponentEffectStart(),
-      prevEffectDuration = pushComponentEffectDuration(),
-      prevEffectErrors = pushComponentEffectErrors(),
-      prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
-    switch (fiber.tag) {
-      case 0:
-      case 11:
-      case 15:
-        commitHookPassiveUnmountEffects(fiber, nearestMountedAncestor, 8);
-        break;
-      case 23:
-      case 22:
-        null !== fiber.memoizedState &&
-          null !== fiber.memoizedState.cachePool &&
-          ((nearestMountedAncestor = fiber.memoizedState.cachePool.pool),
-          null != nearestMountedAncestor && nearestMountedAncestor.refCount++);
-        break;
-      case 24:
-        releaseCache(fiber.memoizedState.cache);
-    }
-    0 !== (fiber.mode & 2) &&
-      0 <= componentEffectStartTime &&
-      0 <= componentEffectEndTime &&
-      (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&
-      logComponentEffect(
-        fiber,
-        componentEffectStartTime,
-        componentEffectEndTime,
-        componentEffectDuration,
-        componentEffectErrors
-      );
-    popComponentEffectStart(prevEffectStart);
-    popComponentEffectDuration(prevEffectDuration);
-    componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;
-    componentEffectErrors = prevEffectErrors;
-    prevEffectStart = fiber.child;
-    if (null !== prevEffectStart)
-      (prevEffectStart.return = fiber), (nextEffect = prevEffectStart);
-    else
-      a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {
-        prevEffectStart = nextEffect;
-        prevEffectDuration = prevEffectStart.sibling;
-        prevEffectErrors = prevEffectStart.return;
-        detachFiberAfterEffects(prevEffectStart);
-        if (prevEffectStart === fiber) {
-          nextEffect = null;
-          break a;
-        }
-        if (null !== prevEffectDuration) {
-          prevEffectDuration.return = prevEffectErrors;
-          nextEffect = prevEffectDuration;
-          break a;
-        }
-        nextEffect = prevEffectErrors;
-      }
-  }
-}
-var DefaultAsyncDispatcher = {
-    getCacheForType: function (resourceType) {
-      var cache = readContext(CacheContext),
-        cacheForType = cache.data.get(resourceType);
-      void 0 === cacheForType &&
-        ((cacheForType = resourceType()),
-        cache.data.set(resourceType, cacheForType));
-      return cacheForType;
-    },
-    cacheSignal: function () {
-      return readContext(CacheContext).controller.signal;
-    }
-  },
-  PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map,
-  executionContext = 0,
-  workInProgressRoot = null,
-  workInProgress = null,
-  workInProgressRootRenderLanes = 0,
-  workInProgressSuspendedReason = 0,
-  workInProgressThrownValue = null,
-  workInProgressRootDidSkipSuspendedSiblings = !1,
-  workInProgressRootIsPrerendering = !1,
-  workInProgressRootDidAttachPingListener = !1,
-  entangledRenderLanes = 0,
-  workInProgressRootExitStatus = 0,
-  workInProgressRootSkippedLanes = 0,
-  workInProgressRootInterleavedUpdatedLanes = 0,
-  workInProgressRootPingedLanes = 0,
-  workInProgressDeferredLane = 0,
-  workInProgressSuspendedRetryLanes = 0,
-  workInProgressRootConcurrentErrors = null,
-  workInProgressRootRecoverableErrors = null,
-  workInProgressRootDidIncludeRecursiveRenderUpdate = !1,
-  globalMostRecentFallbackTime = 0,
-  globalMostRecentTransitionTime = 0,
-  workInProgressRootRenderTargetTime = Infinity,
-  workInProgressTransitions = null,
-  legacyErrorBoundariesThatAlreadyFailed = null,
-  pendingEffectsStatus = 0,
-  pendingEffectsRoot = null,
-  pendingFinishedWork = null,
-  pendingEffectsLanes = 0,
-  pendingEffectsRemainingLanes = 0,
-  pendingEffectsRenderEndTime = -0,
-  pendingPassiveTransitions = null,
-  pendingRecoverableErrors = null,
-  pendingSuspendedCommitReason = null,
-  pendingDelayedCommitReason = 0,
-  pendingSuspendedViewTransitionReason = null,
-  nestedUpdateCount = 0,
-  rootWithNestedUpdates = null;
-function requestUpdateLane() {
-  return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes
-    ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes
-    : null !== ReactSharedInternals.T
-      ? requestTransitionLane()
-      : resolveUpdatePriority();
-}
-function requestDeferredLane() {
-  if (0 === workInProgressDeferredLane)
-    if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {
-      var lane = nextTransitionDeferredLane;
-      nextTransitionDeferredLane <<= 1;
-      0 === (nextTransitionDeferredLane & 3932160) &&
-        (nextTransitionDeferredLane = 262144);
-      workInProgressDeferredLane = lane;
-    } else workInProgressDeferredLane = 536870912;
-  lane = suspenseHandlerStackCursor.current;
-  null !== lane && (lane.flags |= 32);
-  return workInProgressDeferredLane;
-}
-function scheduleUpdateOnFiber(root, fiber, lane) {
-  if (
-    (root === workInProgressRoot &&
-      (2 === workInProgressSuspendedReason ||
-        9 === workInProgressSuspendedReason)) ||
-    null !== root.cancelPendingCommit
-  )
-    prepareFreshStack(root, 0),
-      markRootSuspended(
-        root,
-        workInProgressRootRenderLanes,
-        workInProgressDeferredLane,
-        !1
-      );
-  markRootUpdated$1(root, lane);
-  if (0 === (executionContext & 2) || root !== workInProgressRoot)
-    isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),
-      root === workInProgressRoot &&
-        (0 === (executionContext & 2) &&
-          (workInProgressRootInterleavedUpdatedLanes |= lane),
-        4 === workInProgressRootExitStatus &&
-          markRootSuspended(
-            root,
-            workInProgressRootRenderLanes,
-            workInProgressDeferredLane,
-            !1
-          )),
-      ensureRootIsScheduled(root);
-}
-function performWorkOnRoot(root$jscomp$0, lanes, forceSync) {
-  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));
-  if (0 !== workInProgressRootRenderLanes && null !== workInProgress) {
-    var yieldEndTime = now$1();
-    switch (yieldReason) {
-      case 3:
-      case 2:
-        supportsUserTiming &&
-          console.timeStamp(
-            "Suspended",
-            yieldStartTime,
-            yieldEndTime,
-            "Components \u269b",
-            void 0,
-            "primary-light"
-          );
-        break;
-      case 9:
-        supportsUserTiming &&
-          console.timeStamp(
-            "Action",
-            yieldStartTime,
-            yieldEndTime,
-            "Components \u269b",
-            void 0,
-            "primary-light"
-          );
-        break;
-      default:
-        if (supportsUserTiming) {
-          var yieldDuration = yieldEndTime - yieldStartTime;
-          3 > yieldDuration ||
-            console.timeStamp(
-              "Blocked",
-              yieldStartTime,
-              yieldEndTime,
-              "Components \u269b",
-              void 0,
-              5 > yieldDuration
-                ? "primary-light"
-                : 10 > yieldDuration
-                  ? "primary"
-                  : 100 > yieldDuration
-                    ? "primary-dark"
-                    : "error"
-            );
-        }
-    }
-  }
-  var exitStatus = (yieldEndTime =
-      (!forceSync &&
-        0 === (lanes & 127) &&
-        0 === (lanes & root$jscomp$0.expiredLanes)) ||
-      checkIfRootIsPrerendering(root$jscomp$0, lanes))
-      ? renderRootConcurrent(root$jscomp$0, lanes)
-      : renderRootSync(root$jscomp$0, lanes, !0),
-    renderWasConcurrent = yieldEndTime;
-  do {
-    if (0 === exitStatus) {
-      workInProgressRootIsPrerendering &&
-        !yieldEndTime &&
-        markRootSuspended(root$jscomp$0, lanes, 0, !1);
-      lanes = workInProgressSuspendedReason;
-      yieldStartTime = now();
-      yieldReason = lanes;
-      break;
-    } else {
-      yieldDuration = now$1();
-      forceSync = root$jscomp$0.current.alternate;
-      if (
-        renderWasConcurrent &&
-        !isRenderConsistentWithExternalStores(forceSync)
-      ) {
-        setCurrentTrackFromLanes(lanes);
-        !supportsUserTiming ||
-          yieldDuration <= renderStartTime ||
-          console.timeStamp(
-            "Teared Render",
-            renderStartTime,
-            yieldDuration,
-            currentTrack,
-            "Scheduler \u269b",
-            "error"
-          );
-        finalizeRender(lanes, yieldDuration);
-        exitStatus = renderRootSync(root$jscomp$0, lanes, !1);
-        renderWasConcurrent = !1;
-        continue;
-      }
-      if (2 === exitStatus) {
-        renderWasConcurrent = lanes;
-        if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)
-          var JSCompiler_inline_result = 0;
-        else
-          (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),
-            (JSCompiler_inline_result =
-              0 !== JSCompiler_inline_result
-                ? JSCompiler_inline_result
-                : JSCompiler_inline_result & 536870912
-                  ? 536870912
-                  : 0);
-        if (0 !== JSCompiler_inline_result) {
-          setCurrentTrackFromLanes(lanes);
-          logErroredRenderPhase(renderStartTime, yieldDuration);
-          finalizeRender(lanes, yieldDuration);
-          lanes = JSCompiler_inline_result;
-          var root = root$jscomp$0;
-          yieldDuration = workInProgressRootConcurrentErrors;
-          var wasRootDehydrated = root.current.memoizedState.isDehydrated;
-          wasRootDehydrated &&
-            (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);
-          exitStatus = renderRootSync(root, JSCompiler_inline_result, !1);
-          2 !== exitStatus &&
-            (workInProgressRootDidAttachPingListener && !wasRootDehydrated
-              ? ((root.errorRecoveryDisabledLanes |= renderWasConcurrent),
-                (workInProgressRootInterleavedUpdatedLanes |=
-                  renderWasConcurrent),
-                (exitStatus = 4))
-              : ((renderWasConcurrent = workInProgressRootRecoverableErrors),
-                (workInProgressRootRecoverableErrors = yieldDuration),
-                null !== renderWasConcurrent &&
-                  ((yieldDuration = renderWasConcurrent),
-                  null === workInProgressRootRecoverableErrors
-                    ? (workInProgressRootRecoverableErrors = yieldDuration)
-                    : workInProgressRootRecoverableErrors.push.apply(
-                        workInProgressRootRecoverableErrors,
-                        yieldDuration
-                      ))));
-          renderWasConcurrent = !1;
-          if (2 !== exitStatus) continue;
-          else yieldDuration = now$1();
-        }
-      }
-      if (1 === exitStatus) {
-        setCurrentTrackFromLanes(lanes);
-        logErroredRenderPhase(renderStartTime, yieldDuration);
-        finalizeRender(lanes, yieldDuration);
-        prepareFreshStack(root$jscomp$0, 0);
-        markRootSuspended(root$jscomp$0, lanes, 0, !0);
-        break;
-      }
-      a: {
-        yieldEndTime = root$jscomp$0;
-        renderWasConcurrent = exitStatus;
-        switch (renderWasConcurrent) {
-          case 0:
-          case 1:
-            throw Error(formatProdErrorMessage(345));
-          case 4:
-            if ((lanes & 4194048) !== lanes) break;
-          case 6:
-            setCurrentTrackFromLanes(lanes);
-            logSuspendedRenderPhase(renderStartTime, yieldDuration, lanes);
-            finalizeRender(lanes, yieldDuration);
-            forceSync = lanes;
-            0 !== (forceSync & 127)
-              ? (blockingSuspendedTime = yieldDuration)
-              : 0 !== (forceSync & 4194048) &&
-                (transitionSuspendedTime = yieldDuration);
-            markRootSuspended(
-              yieldEndTime,
-              lanes,
-              workInProgressDeferredLane,
-              !workInProgressRootDidSkipSuspendedSiblings
-            );
-            break a;
-          case 2:
-            workInProgressRootRecoverableErrors = null;
-            break;
-          case 3:
-          case 5:
-            break;
-          default:
-            throw Error(formatProdErrorMessage(329));
-        }
-        if (
-          (lanes & 62914560) === lanes &&
-          ((exitStatus = globalMostRecentFallbackTime + 300 - now$1()),
-          10 < exitStatus)
-        ) {
-          markRootSuspended(
-            yieldEndTime,
-            lanes,
-            workInProgressDeferredLane,
-            !workInProgressRootDidSkipSuspendedSiblings
-          );
-          if (0 !== getNextLanes(yieldEndTime, 0, !0)) break a;
-          pendingEffectsLanes = lanes;
-          yieldEndTime.timeoutHandle = scheduleTimeout(
-            commitRootWhenReady.bind(
-              null,
-              yieldEndTime,
-              forceSync,
-              workInProgressRootRecoverableErrors,
-              workInProgressTransitions,
-              workInProgressRootDidIncludeRecursiveRenderUpdate,
-              lanes,
-              workInProgressDeferredLane,
-              workInProgressRootInterleavedUpdatedLanes,
-              workInProgressSuspendedRetryLanes,
-              workInProgressRootDidSkipSuspendedSiblings,
-              renderWasConcurrent,
-              "Throttled",
-              renderStartTime,
-              yieldDuration
-            ),
-            exitStatus
-          );
-          break a;
-        }
-        commitRootWhenReady(
-          yieldEndTime,
-          forceSync,
-          workInProgressRootRecoverableErrors,
-          workInProgressTransitions,
-          workInProgressRootDidIncludeRecursiveRenderUpdate,
-          lanes,
-          workInProgressDeferredLane,
-          workInProgressRootInterleavedUpdatedLanes,
-          workInProgressSuspendedRetryLanes,
-          workInProgressRootDidSkipSuspendedSiblings,
-          renderWasConcurrent,
-          null,
-          renderStartTime,
-          yieldDuration
-        );
-      }
-    }
-    break;
-  } while (1);
-  ensureRootIsScheduled(root$jscomp$0);
-}
-function commitRootWhenReady(
-  root,
-  finishedWork,
-  recoverableErrors,
-  transitions,
-  didIncludeRenderPhaseUpdate,
-  lanes,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes,
-  didSkipSuspendedSiblings,
-  exitStatus,
-  suspendedCommitReason,
-  completedRenderStartTime,
-  completedRenderEndTime
-) {
-  root.timeoutHandle = -1;
-  var subtreeFlags = finishedWork.subtreeFlags,
-    suspendedState = null;
-  if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408))
-    if (
-      ((suspendedState = {
-        stylesheets: null,
-        count: 0,
-        imgCount: 0,
-        imgBytes: 0,
-        suspenseyImages: [],
-        waitingForImages: !0,
-        waitingForViewTransition: !1,
-        unsuspend: noop$1
-      }),
-      accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState),
-      (subtreeFlags =
-        (lanes & 62914560) === lanes
-          ? globalMostRecentFallbackTime - now$1()
-          : (lanes & 4194048) === lanes
-            ? globalMostRecentTransitionTime - now$1()
-            : 0),
-      (subtreeFlags = waitForCommitToBeReady(suspendedState, subtreeFlags)),
-      null !== subtreeFlags)
-    ) {
-      pendingEffectsLanes = lanes;
-      root.cancelPendingCommit = subtreeFlags(
-        commitRoot.bind(
-          null,
-          root,
-          finishedWork,
-          lanes,
-          recoverableErrors,
-          transitions,
-          didIncludeRenderPhaseUpdate,
-          spawnedLane,
-          updatedLanes,
-          suspendedRetryLanes,
-          exitStatus,
-          suspendedState,
-          suspendedState.waitingForViewTransition
-            ? "Waiting for the previous Animation"
-            : 0 < suspendedState.count
-              ? 0 < suspendedState.imgCount
-                ? "Suspended on CSS and Images"
-                : "Suspended on CSS"
-              : 1 === suspendedState.imgCount
-                ? "Suspended on an Image"
-                : 0 < suspendedState.imgCount
-                  ? "Suspended on Images"
-                  : null,
-          completedRenderStartTime,
-          completedRenderEndTime
-        )
-      );
-      markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);
-      return;
-    }
-  commitRoot(
-    root,
-    finishedWork,
-    lanes,
-    recoverableErrors,
-    transitions,
-    didIncludeRenderPhaseUpdate,
-    spawnedLane,
-    updatedLanes,
-    suspendedRetryLanes,
-    exitStatus,
-    suspendedState,
-    suspendedCommitReason,
-    completedRenderStartTime,
-    completedRenderEndTime
-  );
-}
-function isRenderConsistentWithExternalStores(finishedWork) {
-  for (var node = finishedWork; ; ) {
-    var tag = node.tag;
-    if (
-      (0 === tag || 11 === tag || 15 === tag) &&
-      node.flags & 16384 &&
-      ((tag = node.updateQueue),
-      null !== tag && ((tag = tag.stores), null !== tag))
-    )
-      for (var i = 0; i < tag.length; i++) {
-        var check = tag[i],
-          getSnapshot = check.getSnapshot;
-        check = check.value;
-        try {
-          if (!objectIs(getSnapshot(), check)) return !1;
-        } catch (error) {
-          return !1;
-        }
-      }
-    tag = node.child;
-    if (node.subtreeFlags & 16384 && null !== tag)
-      (tag.return = node), (node = tag);
-    else {
-      if (node === finishedWork) break;
-      for (; null === node.sibling; ) {
-        if (null === node.return || node.return === finishedWork) return !0;
-        node = node.return;
-      }
-      node.sibling.return = node.return;
-      node = node.sibling;
-    }
-  }
-  return !0;
-}
-function markRootSuspended(
-  root,
-  suspendedLanes,
-  spawnedLane,
-  didAttemptEntireTree
-) {
-  suspendedLanes &= ~workInProgressRootPingedLanes;
-  suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
-  root.suspendedLanes |= suspendedLanes;
-  root.pingedLanes &= ~suspendedLanes;
-  didAttemptEntireTree && (root.warmLanes |= suspendedLanes);
-  didAttemptEntireTree = root.expirationTimes;
-  for (var lanes = suspendedLanes; 0 < lanes; ) {
-    var index$6 = 31 - clz32(lanes),
-      lane = 1 << index$6;
-    didAttemptEntireTree[index$6] = -1;
-    lanes &= ~lane;
-  }
-  0 !== spawnedLane &&
-    markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);
-}
-function flushSyncWork$1() {
-  return 0 === (executionContext & 6)
-    ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)
-    : !0;
-}
-function resetWorkInProgressStack() {
-  if (null !== workInProgress) {
-    if (0 === workInProgressSuspendedReason)
-      var interruptedWork = workInProgress.return;
-    else
-      (interruptedWork = workInProgress),
-        (lastContextDependency = currentlyRenderingFiber$1 = null),
-        resetHooksOnUnwind(interruptedWork),
-        (thenableState$1 = null),
-        (thenableIndexCounter$1 = 0),
-        (interruptedWork = workInProgress);
-    for (; null !== interruptedWork; )
-      unwindInterruptedWork(interruptedWork.alternate, interruptedWork),
-        (interruptedWork = interruptedWork.return);
-    workInProgress = null;
-  }
-}
-function finalizeRender(lanes, finalizationTime) {
-  0 !== (lanes & 127) && (blockingClampTime = finalizationTime);
-  0 !== (lanes & 4194048) && (transitionClampTime = finalizationTime);
-}
-function prepareFreshStack(root, lanes) {
-  supportsUserTiming &&
-    (console.timeStamp(
-      "Blocking Track",
-      0.003,
-      0.003,
-      "Blocking",
-      "Scheduler \u269b",
-      "primary-light"
-    ),
-    console.timeStamp(
-      "Transition Track",
-      0.003,
-      0.003,
-      "Transition",
-      "Scheduler \u269b",
-      "primary-light"
-    ),
-    console.timeStamp(
-      "Suspense Track",
-      0.003,
-      0.003,
-      "Suspense",
-      "Scheduler \u269b",
-      "primary-light"
-    ),
-    console.timeStamp(
-      "Idle Track",
-      0.003,
-      0.003,
-      "Idle",
-      "Scheduler \u269b",
-      "primary-light"
-    ));
-  var previousRenderStartTime = renderStartTime;
-  renderStartTime = now();
-  if (0 !== workInProgressRootRenderLanes && 0 < previousRenderStartTime) {
-    setCurrentTrackFromLanes(workInProgressRootRenderLanes);
-    if (
-      3 === workInProgressRootExitStatus ||
-      4 === workInProgressRootExitStatus
-    )
-      logSuspendedRenderPhase(previousRenderStartTime, renderStartTime, lanes);
-    else {
-      var endTime = renderStartTime;
-      !supportsUserTiming ||
-        endTime <= previousRenderStartTime ||
-        console.timeStamp(
-          (lanes & 536870912) === lanes
-            ? "Prewarm"
-            : (lanes & 201326741) === lanes
-              ? "Interrupted Hydration"
-              : "Interrupted Render",
-          previousRenderStartTime,
-          endTime,
-          currentTrack,
-          "Scheduler \u269b",
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"
-        );
-    }
-    finalizeRender(workInProgressRootRenderLanes, renderStartTime);
-  }
-  if (0 !== (lanes & 127)) {
-    previousRenderStartTime =
-      0 <= blockingUpdateTime && blockingUpdateTime < blockingClampTime
-        ? blockingClampTime
-        : blockingUpdateTime;
-    endTime =
-      0 <= blockingEventTime && blockingEventTime < blockingClampTime
-        ? blockingClampTime
-        : blockingEventTime;
-    var clampedRenderStartTime$203 =
-      0 <= endTime
-        ? endTime
-        : 0 <= previousRenderStartTime
-          ? previousRenderStartTime
-          : renderStartTime;
-    0 <= blockingSuspendedTime &&
-      (setCurrentTrackFromLanes(2),
-      logSuspendedWithDelayPhase(
-        blockingSuspendedTime,
-        clampedRenderStartTime$203,
-        lanes
-      ));
-    clampedRenderStartTime$203 = blockingEventType;
-    var eventIsRepeat = 0 < blockingEventRepeatTime,
-      isSpawnedUpdate = 1 === blockingUpdateType,
-      isPingedUpdate = 2 === blockingUpdateType,
-      renderStartTime$jscomp$0 = renderStartTime;
-    supportsUserTiming &&
-      ((currentTrack = "Blocking"),
-      0 < previousRenderStartTime
-        ? previousRenderStartTime > renderStartTime$jscomp$0 &&
-          (previousRenderStartTime = renderStartTime$jscomp$0)
-        : (previousRenderStartTime = renderStartTime$jscomp$0),
-      0 < endTime
-        ? endTime > previousRenderStartTime &&
-          (endTime = previousRenderStartTime)
-        : (endTime = previousRenderStartTime),
-      null !== clampedRenderStartTime$203 &&
-        previousRenderStartTime > endTime &&
-        console.timeStamp(
-          eventIsRepeat
-            ? "Consecutive"
-            : "Event: " + clampedRenderStartTime$203,
-          endTime,
-          previousRenderStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          eventIsRepeat ? "secondary-light" : "warning"
-        ),
-      renderStartTime$jscomp$0 > previousRenderStartTime &&
-        console.timeStamp(
-          isPingedUpdate
-            ? "Promise Resolved"
-            : isSpawnedUpdate
-              ? "Cascading Update"
-              : 5 < renderStartTime$jscomp$0 - previousRenderStartTime
-                ? "Update Blocked"
-                : "Update",
-          previousRenderStartTime,
-          renderStartTime$jscomp$0,
-          currentTrack,
-          "Scheduler \u269b",
-          isSpawnedUpdate
-            ? "error"
-            : (lanes & 738197653) === lanes
-              ? "tertiary-light"
-              : "primary-light"
-        ));
-    blockingUpdateTime = -1.1;
-    blockingUpdateType = 0;
-    blockingSuspendedTime = -1.1;
-    blockingEventRepeatTime = blockingEventTime;
-    blockingEventTime = -1.1;
-    blockingClampTime = now();
-  }
-  0 !== (lanes & 4194048) &&
-    ((previousRenderStartTime =
-      0 <= transitionStartTime && transitionStartTime < transitionClampTime
-        ? transitionClampTime
-        : transitionStartTime),
-    (endTime =
-      0 <= transitionUpdateTime && transitionUpdateTime < transitionClampTime
-        ? transitionClampTime
-        : transitionUpdateTime),
-    (clampedRenderStartTime$203 =
-      0 <= transitionEventTime && transitionEventTime < transitionClampTime
-        ? transitionClampTime
-        : transitionEventTime),
-    (eventIsRepeat =
-      0 <= clampedRenderStartTime$203
-        ? clampedRenderStartTime$203
-        : 0 <= endTime
-          ? endTime
-          : renderStartTime),
-    0 <= transitionSuspendedTime &&
-      (setCurrentTrackFromLanes(256),
-      logSuspendedWithDelayPhase(
-        transitionSuspendedTime,
-        eventIsRepeat,
-        lanes
-      )),
-    (eventIsRepeat = transitionEventType),
-    (isSpawnedUpdate = 0 < transitionEventRepeatTime),
-    (isPingedUpdate = 2 === transitionUpdateType),
-    (renderStartTime$jscomp$0 = renderStartTime),
-    supportsUserTiming &&
-      ((currentTrack = "Transition"),
-      0 < endTime
-        ? endTime > renderStartTime$jscomp$0 &&
-          (endTime = renderStartTime$jscomp$0)
-        : (endTime = renderStartTime$jscomp$0),
-      0 < previousRenderStartTime
-        ? previousRenderStartTime > endTime &&
-          (previousRenderStartTime = endTime)
-        : (previousRenderStartTime = endTime),
-      0 < clampedRenderStartTime$203
-        ? clampedRenderStartTime$203 > previousRenderStartTime &&
-          (clampedRenderStartTime$203 = previousRenderStartTime)
-        : (clampedRenderStartTime$203 = previousRenderStartTime),
-      previousRenderStartTime > clampedRenderStartTime$203 &&
-        null !== eventIsRepeat &&
-        console.timeStamp(
-          isSpawnedUpdate ? "Consecutive" : "Event: " + eventIsRepeat,
-          clampedRenderStartTime$203,
-          previousRenderStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          isSpawnedUpdate ? "secondary-light" : "warning"
-        ),
-      endTime > previousRenderStartTime &&
-        console.timeStamp(
-          "Action",
-          previousRenderStartTime,
-          endTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "primary-dark"
-        ),
-      renderStartTime$jscomp$0 > endTime &&
-        console.timeStamp(
-          isPingedUpdate
-            ? "Promise Resolved"
-            : 5 < renderStartTime$jscomp$0 - endTime
-              ? "Update Blocked"
-              : "Update",
-          endTime,
-          renderStartTime$jscomp$0,
-          currentTrack,
-          "Scheduler \u269b",
-          "primary-light"
-        )),
-    (transitionUpdateTime = transitionStartTime = -1.1),
-    (transitionUpdateType = 0),
-    (transitionSuspendedTime = -1.1),
-    (transitionEventRepeatTime = transitionEventTime),
-    (transitionEventTime = -1.1),
-    (transitionClampTime = now()));
-  previousRenderStartTime = root.timeoutHandle;
-  -1 !== previousRenderStartTime &&
-    ((root.timeoutHandle = -1), cancelTimeout(previousRenderStartTime));
-  previousRenderStartTime = root.cancelPendingCommit;
-  null !== previousRenderStartTime &&
-    ((root.cancelPendingCommit = null), previousRenderStartTime());
-  pendingEffectsLanes = 0;
-  resetWorkInProgressStack();
-  workInProgressRoot = root;
-  workInProgress = previousRenderStartTime = createWorkInProgress(
-    root.current,
-    null
-  );
-  workInProgressRootRenderLanes = lanes;
-  workInProgressSuspendedReason = 0;
-  workInProgressThrownValue = null;
-  workInProgressRootDidSkipSuspendedSiblings = !1;
-  workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);
-  workInProgressRootDidAttachPingListener = !1;
-  workInProgressSuspendedRetryLanes =
-    workInProgressDeferredLane =
-    workInProgressRootPingedLanes =
-    workInProgressRootInterleavedUpdatedLanes =
-    workInProgressRootSkippedLanes =
-    workInProgressRootExitStatus =
-      0;
-  workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =
-    null;
-  workInProgressRootDidIncludeRecursiveRenderUpdate = !1;
-  0 !== (lanes & 8) && (lanes |= lanes & 32);
-  endTime = root.entangledLanes;
-  if (0 !== endTime)
-    for (root = root.entanglements, endTime &= lanes; 0 < endTime; )
-      (clampedRenderStartTime$203 = 31 - clz32(endTime)),
-        (eventIsRepeat = 1 << clampedRenderStartTime$203),
-        (lanes |= root[clampedRenderStartTime$203]),
-        (endTime &= ~eventIsRepeat);
-  entangledRenderLanes = lanes;
-  finishQueueingConcurrentUpdates();
-  return previousRenderStartTime;
-}
-function handleThrow(root, thrownValue) {
-  currentlyRenderingFiber = null;
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  thrownValue === SuspenseException || thrownValue === SuspenseActionException
-    ? ((thrownValue = getSuspendedThenable()),
-      (workInProgressSuspendedReason = 3))
-    : thrownValue === SuspenseyCommitException
-      ? ((thrownValue = getSuspendedThenable()),
-        (workInProgressSuspendedReason = 4))
-      : (workInProgressSuspendedReason =
-          thrownValue === SelectiveHydrationException
-            ? 8
-            : null !== thrownValue &&
-                "object" === typeof thrownValue &&
-                "function" === typeof thrownValue.then
-              ? 6
-              : 1);
-  workInProgressThrownValue = thrownValue;
-  var erroredWork = workInProgress;
-  null === erroredWork
-    ? ((workInProgressRootExitStatus = 1),
-      logUncaughtError(
-        root,
-        createCapturedValueAtFiber(thrownValue, root.current)
-      ))
-    : erroredWork.mode & 2 &&
-      stopProfilerTimerIfRunningAndRecordDuration(erroredWork);
-}
-function shouldRemainOnPreviousScreen() {
-  var handler = suspenseHandlerStackCursor.current;
-  return null === handler
-    ? !0
-    : (workInProgressRootRenderLanes & 4194048) ===
-        workInProgressRootRenderLanes
-      ? null === shellBoundary
-        ? !0
-        : !1
-      : (workInProgressRootRenderLanes & 62914560) ===
-            workInProgressRootRenderLanes ||
-          0 !== (workInProgressRootRenderLanes & 536870912)
-        ? handler === shellBoundary
-        : !1;
-}
-function pushDispatcher() {
-  var prevDispatcher = ReactSharedInternals.H;
-  ReactSharedInternals.H = ContextOnlyDispatcher;
-  return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;
-}
-function pushAsyncDispatcher() {
-  var prevAsyncDispatcher = ReactSharedInternals.A;
-  ReactSharedInternals.A = DefaultAsyncDispatcher;
-  return prevAsyncDispatcher;
-}
-function renderDidSuspendDelayIfPossible() {
-  workInProgressRootExitStatus = 4;
-  workInProgressRootDidSkipSuspendedSiblings ||
-    ((workInProgressRootRenderLanes & 4194048) !==
-      workInProgressRootRenderLanes &&
-      null !== suspenseHandlerStackCursor.current) ||
-    (workInProgressRootIsPrerendering = !0);
-  (0 === (workInProgressRootSkippedLanes & 134217727) &&
-    0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||
-    null === workInProgressRoot ||
-    markRootSuspended(
-      workInProgressRoot,
-      workInProgressRootRenderLanes,
-      workInProgressDeferredLane,
-      !1
-    );
-}
-function renderRootSync(root, lanes, shouldYieldForPrerendering) {
-  var prevExecutionContext = executionContext;
-  executionContext |= 2;
-  var prevDispatcher = pushDispatcher(),
-    prevAsyncDispatcher = pushAsyncDispatcher();
-  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {
-    if (isDevToolsPresent) {
-      var memoizedUpdaters = root.memoizedUpdaters;
-      0 < memoizedUpdaters.size &&
-        (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-        memoizedUpdaters.clear());
-      movePendingFibersToMemoized(root, lanes);
-    }
-    workInProgressTransitions = null;
-    prepareFreshStack(root, lanes);
-  }
-  lanes = !1;
-  memoizedUpdaters = workInProgressRootExitStatus;
-  a: do
-    try {
-      if (0 !== workInProgressSuspendedReason && null !== workInProgress) {
-        var unitOfWork = workInProgress,
-          thrownValue = workInProgressThrownValue;
-        switch (workInProgressSuspendedReason) {
-          case 8:
-            resetWorkInProgressStack();
-            memoizedUpdaters = 6;
-            break a;
-          case 3:
-          case 2:
-          case 9:
-          case 6:
-            null === suspenseHandlerStackCursor.current && (lanes = !0);
-            var reason = workInProgressSuspendedReason;
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-            if (
-              shouldYieldForPrerendering &&
-              workInProgressRootIsPrerendering
-            ) {
-              memoizedUpdaters = 0;
-              break a;
-            }
-            break;
-          default:
-            (reason = workInProgressSuspendedReason),
-              (workInProgressSuspendedReason = 0),
-              (workInProgressThrownValue = null),
-              throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);
-        }
-      }
-      workLoopSync();
-      memoizedUpdaters = workInProgressRootExitStatus;
-      break;
-    } catch (thrownValue$208) {
-      handleThrow(root, thrownValue$208);
-    }
-  while (1);
-  lanes && root.shellSuspendCounter++;
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  executionContext = prevExecutionContext;
-  ReactSharedInternals.H = prevDispatcher;
-  ReactSharedInternals.A = prevAsyncDispatcher;
-  null === workInProgress &&
-    ((workInProgressRoot = null),
-    (workInProgressRootRenderLanes = 0),
-    finishQueueingConcurrentUpdates());
-  return memoizedUpdaters;
-}
-function workLoopSync() {
-  for (; null !== workInProgress; ) performUnitOfWork(workInProgress);
-}
-function renderRootConcurrent(root, lanes) {
-  var prevExecutionContext = executionContext;
-  executionContext |= 2;
-  var prevDispatcher = pushDispatcher(),
-    prevAsyncDispatcher = pushAsyncDispatcher();
-  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {
-    if (isDevToolsPresent) {
-      var memoizedUpdaters = root.memoizedUpdaters;
-      0 < memoizedUpdaters.size &&
-        (restorePendingUpdaters(root, workInProgressRootRenderLanes),
-        memoizedUpdaters.clear());
-      movePendingFibersToMemoized(root, lanes);
-    }
-    workInProgressTransitions = null;
-    workInProgressRootRenderTargetTime = now$1() + 500;
-    prepareFreshStack(root, lanes);
-  } else
-    workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);
-  a: do
-    try {
-      if (0 !== workInProgressSuspendedReason && null !== workInProgress)
-        b: switch (
-          ((lanes = workInProgress),
-          (memoizedUpdaters = workInProgressThrownValue),
-          workInProgressSuspendedReason)
-        ) {
-          case 1:
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, memoizedUpdaters, 1);
-            break;
-          case 2:
-          case 9:
-            if (isThenableResolved(memoizedUpdaters)) {
-              workInProgressSuspendedReason = 0;
-              workInProgressThrownValue = null;
-              replaySuspendedUnitOfWork(lanes);
-              break;
-            }
-            lanes = function () {
-              (2 !== workInProgressSuspendedReason &&
-                9 !== workInProgressSuspendedReason) ||
-                workInProgressRoot !== root ||
-                (workInProgressSuspendedReason = 7);
-              ensureRootIsScheduled(root);
-            };
-            memoizedUpdaters.then(lanes, lanes);
-            break a;
-          case 3:
-            workInProgressSuspendedReason = 7;
-            break a;
-          case 4:
-            workInProgressSuspendedReason = 5;
-            break a;
-          case 7:
-            isThenableResolved(memoizedUpdaters)
-              ? ((workInProgressSuspendedReason = 0),
-                (workInProgressThrownValue = null),
-                replaySuspendedUnitOfWork(lanes))
-              : ((workInProgressSuspendedReason = 0),
-                (workInProgressThrownValue = null),
-                throwAndUnwindWorkLoop(root, lanes, memoizedUpdaters, 7));
-            break;
-          case 5:
-            var resource = null;
-            switch (workInProgress.tag) {
-              case 26:
-                resource = workInProgress.memoizedState;
-              case 5:
-              case 27:
-                var hostFiber = workInProgress;
-                if (
-                  resource
-                    ? preloadResource(resource)
-                    : hostFiber.stateNode.complete
-                ) {
-                  workInProgressSuspendedReason = 0;
-                  workInProgressThrownValue = null;
-                  var sibling = hostFiber.sibling;
-                  if (null !== sibling) workInProgress = sibling;
-                  else {
-                    var returnFiber = hostFiber.return;
-                    null !== returnFiber
-                      ? ((workInProgress = returnFiber),
-                        completeUnitOfWork(returnFiber))
-                      : (workInProgress = null);
-                  }
-                  break b;
-                }
-            }
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, memoizedUpdaters, 5);
-            break;
-          case 6:
-            workInProgressSuspendedReason = 0;
-            workInProgressThrownValue = null;
-            throwAndUnwindWorkLoop(root, lanes, memoizedUpdaters, 6);
-            break;
-          case 8:
-            resetWorkInProgressStack();
-            workInProgressRootExitStatus = 6;
-            break a;
-          default:
-            throw Error(formatProdErrorMessage(462));
-        }
-      workLoopConcurrentByScheduler();
-      break;
-    } catch (thrownValue$210) {
-      handleThrow(root, thrownValue$210);
-    }
-  while (1);
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  ReactSharedInternals.H = prevDispatcher;
-  ReactSharedInternals.A = prevAsyncDispatcher;
-  executionContext = prevExecutionContext;
-  if (null !== workInProgress) return 0;
-  workInProgressRoot = null;
-  workInProgressRootRenderLanes = 0;
-  finishQueueingConcurrentUpdates();
-  return workInProgressRootExitStatus;
-}
-function workLoopConcurrentByScheduler() {
-  for (; null !== workInProgress && !shouldYield(); )
-    performUnitOfWork(workInProgress);
-}
-function performUnitOfWork(unitOfWork) {
-  var current = unitOfWork.alternate;
-  0 !== (unitOfWork.mode & 2)
-    ? (startProfilerTimer(unitOfWork),
-      (current = beginWork(current, unitOfWork, entangledRenderLanes)),
-      stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))
-    : (current = beginWork(current, unitOfWork, entangledRenderLanes));
-  unitOfWork.memoizedProps = unitOfWork.pendingProps;
-  null === current
-    ? completeUnitOfWork(unitOfWork)
-    : (workInProgress = current);
-}
-function replaySuspendedUnitOfWork(unitOfWork) {
-  var next = unitOfWork;
-  var current = next.alternate,
-    isProfilingMode = 0 !== (next.mode & 2);
-  isProfilingMode && startProfilerTimer(next);
-  switch (next.tag) {
-    case 15:
-    case 0:
-      current = replayFunctionComponent(
-        current,
-        next,
-        next.pendingProps,
-        next.type,
-        void 0,
-        workInProgressRootRenderLanes
-      );
-      break;
-    case 11:
-      current = replayFunctionComponent(
-        current,
-        next,
-        next.pendingProps,
-        next.type.render,
-        next.ref,
-        workInProgressRootRenderLanes
-      );
-      break;
-    case 5:
-      resetHooksOnUnwind(next);
-    default:
-      unwindInterruptedWork(current, next),
-        (next = workInProgress =
-          resetWorkInProgress(next, entangledRenderLanes)),
-        (current = beginWork(current, next, entangledRenderLanes));
-  }
-  isProfilingMode && stopProfilerTimerIfRunningAndRecordDuration(next);
-  next = current;
-  unitOfWork.memoizedProps = unitOfWork.pendingProps;
-  null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);
-}
-function throwAndUnwindWorkLoop(
-  root,
-  unitOfWork,
-  thrownValue,
-  suspendedReason
-) {
-  lastContextDependency = currentlyRenderingFiber$1 = null;
-  resetHooksOnUnwind(unitOfWork);
-  thenableState$1 = null;
-  thenableIndexCounter$1 = 0;
-  var returnFiber = unitOfWork.return;
-  try {
-    if (
-      throwException(
-        root,
-        returnFiber,
-        unitOfWork,
-        thrownValue,
-        workInProgressRootRenderLanes
-      )
-    ) {
-      workInProgressRootExitStatus = 1;
-      logUncaughtError(
-        root,
-        createCapturedValueAtFiber(thrownValue, root.current)
-      );
-      workInProgress = null;
-      return;
-    }
-  } catch (error) {
-    if (null !== returnFiber) throw ((workInProgress = returnFiber), error);
-    workInProgressRootExitStatus = 1;
-    logUncaughtError(
-      root,
-      createCapturedValueAtFiber(thrownValue, root.current)
-    );
-    workInProgress = null;
-    return;
-  }
-  if (unitOfWork.flags & 32768) {
-    if (isHydrating || 1 === suspendedReason) root = !0;
-    else if (
-      workInProgressRootIsPrerendering ||
-      0 !== (workInProgressRootRenderLanes & 536870912)
-    )
-      root = !1;
-    else if (
-      ((workInProgressRootDidSkipSuspendedSiblings = root = !0),
-      2 === suspendedReason ||
-        9 === suspendedReason ||
-        3 === suspendedReason ||
-        6 === suspendedReason)
-    )
-      (suspendedReason = suspenseHandlerStackCursor.current),
-        null !== suspendedReason &&
-          13 === suspendedReason.tag &&
-          (suspendedReason.flags |= 16384);
-    unwindUnitOfWork(unitOfWork, root);
-  } else completeUnitOfWork(unitOfWork);
-}
-function completeUnitOfWork(unitOfWork) {
-  var completedWork = unitOfWork;
-  do {
-    if (0 !== (completedWork.flags & 32768)) {
-      unwindUnitOfWork(
-        completedWork,
-        workInProgressRootDidSkipSuspendedSiblings
-      );
-      return;
-    }
-    var current = completedWork.alternate;
-    unitOfWork = completedWork.return;
-    startProfilerTimer(completedWork);
-    current = completeWork(current, completedWork, entangledRenderLanes);
-    0 !== (completedWork.mode & 2) &&
-      stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork);
-    if (null !== current) {
-      workInProgress = current;
-      return;
-    }
-    completedWork = completedWork.sibling;
-    if (null !== completedWork) {
-      workInProgress = completedWork;
-      return;
-    }
-    workInProgress = completedWork = unitOfWork;
-  } while (null !== completedWork);
-  0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);
-}
-function unwindUnitOfWork(unitOfWork, skipSiblings) {
-  do {
-    var next = unwindWork(unitOfWork.alternate, unitOfWork);
-    if (null !== next) {
-      next.flags &= 32767;
-      workInProgress = next;
-      return;
-    }
-    if (0 !== (unitOfWork.mode & 2)) {
-      stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork);
-      next = unitOfWork.actualDuration;
-      for (var child = unitOfWork.child; null !== child; )
-        (next += child.actualDuration), (child = child.sibling);
-      unitOfWork.actualDuration = next;
-    }
-    next = unitOfWork.return;
-    null !== next &&
-      ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));
-    if (
-      !skipSiblings &&
-      ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)
-    ) {
-      workInProgress = unitOfWork;
-      return;
-    }
-    workInProgress = unitOfWork = next;
-  } while (null !== unitOfWork);
-  workInProgressRootExitStatus = 6;
-  workInProgress = null;
-}
-function commitRoot(
-  root,
-  finishedWork,
-  lanes,
-  recoverableErrors,
-  transitions,
-  didIncludeRenderPhaseUpdate,
-  spawnedLane,
-  updatedLanes,
-  suspendedRetryLanes,
-  exitStatus,
-  suspendedState,
-  suspendedCommitReason,
-  completedRenderStartTime,
-  completedRenderEndTime
-) {
-  root.cancelPendingCommit = null;
-  do flushPendingEffects();
-  while (0 !== pendingEffectsStatus);
-  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));
-  setCurrentTrackFromLanes(lanes);
-  2 === exitStatus
-    ? logErroredRenderPhase(completedRenderStartTime, completedRenderEndTime)
-    : null !== recoverableErrors
-      ? !supportsUserTiming ||
-        completedRenderEndTime <= completedRenderStartTime ||
-        console.timeStamp(
-          "Recovered",
-          completedRenderStartTime,
-          completedRenderEndTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "error"
-        )
-      : !supportsUserTiming ||
-        completedRenderEndTime <= completedRenderStartTime ||
-        console.timeStamp(
-          (lanes & 536870912) === lanes
-            ? "Prepared"
-            : (lanes & 201326741) === lanes
-              ? "Hydrated"
-              : "Render",
-          completedRenderStartTime,
-          completedRenderEndTime,
-          currentTrack,
-          "Scheduler \u269b",
-          (lanes & 738197653) === lanes ? "tertiary-dark" : "primary-dark"
-        );
-  if (null !== finishedWork) {
-    if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));
-    didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;
-    didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;
-    markRootFinished(
-      root,
-      lanes,
-      didIncludeRenderPhaseUpdate,
-      spawnedLane,
-      updatedLanes,
-      suspendedRetryLanes
-    );
-    root === workInProgressRoot &&
-      ((workInProgress = workInProgressRoot = null),
-      (workInProgressRootRenderLanes = 0));
-    pendingFinishedWork = finishedWork;
-    pendingEffectsRoot = root;
-    pendingEffectsLanes = lanes;
-    pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;
-    pendingPassiveTransitions = transitions;
-    pendingRecoverableErrors = recoverableErrors;
-    pendingEffectsRenderEndTime = completedRenderEndTime;
-    pendingSuspendedCommitReason = suspendedCommitReason;
-    pendingDelayedCommitReason = 0;
-    pendingSuspendedViewTransitionReason = null;
-    0 !== finishedWork.actualDuration ||
-    0 !== (finishedWork.subtreeFlags & 10256) ||
-    0 !== (finishedWork.flags & 10256)
-      ? ((root.callbackNode = null),
-        (root.callbackPriority = 0),
-        scheduleCallback$1(NormalPriority$1, function () {
-          schedulerEvent = window.event;
-          0 === pendingDelayedCommitReason && (pendingDelayedCommitReason = 2);
-          flushPassiveEffects();
-          return null;
-        }))
-      : ((root.callbackNode = null), (root.callbackPriority = 0));
-    commitErrors = null;
-    commitStartTime = now();
-    null !== suspendedCommitReason &&
-      (!supportsUserTiming ||
-        commitStartTime <= completedRenderEndTime ||
-        console.timeStamp(
-          suspendedCommitReason,
-          completedRenderEndTime,
-          commitStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "secondary-light"
-        ));
-    recoverableErrors = 0 !== (finishedWork.flags & 13878);
-    if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {
-      recoverableErrors = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      transitions = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      spawnedLane = executionContext;
-      executionContext |= 4;
-      try {
-        commitBeforeMutationEffects(root, finishedWork, lanes);
-      } finally {
-        (executionContext = spawnedLane),
-          (ReactDOMSharedInternals.p = transitions),
-          (ReactSharedInternals.T = recoverableErrors);
-      }
-    }
-    pendingEffectsStatus = 1;
-    flushMutationEffects();
-    flushLayoutEffects();
-    flushSpawnedWork();
-  }
-}
-function flushMutationEffects() {
-  if (1 === pendingEffectsStatus) {
-    pendingEffectsStatus = 0;
-    var root = pendingEffectsRoot,
-      finishedWork = pendingFinishedWork,
-      lanes = pendingEffectsLanes,
-      rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);
-    if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {
-      rootMutationHasEffect = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      var prevExecutionContext = executionContext;
-      executionContext |= 4;
-      try {
-        inProgressLanes = lanes;
-        inProgressRoot = root;
-        resetComponentEffectTimers();
-        commitMutationEffectsOnFiber(finishedWork, root);
-        inProgressRoot = inProgressLanes = null;
-        lanes = selectionInformation;
-        var curFocusedElem = getActiveElementDeep(root.containerInfo),
-          priorFocusedElem = lanes.focusedElem,
-          priorSelectionRange = lanes.selectionRange;
-        if (
-          curFocusedElem !== priorFocusedElem &&
-          priorFocusedElem &&
-          priorFocusedElem.ownerDocument &&
-          containsNode(
-            priorFocusedElem.ownerDocument.documentElement,
-            priorFocusedElem
-          )
-        ) {
-          if (
-            null !== priorSelectionRange &&
-            hasSelectionCapabilities(priorFocusedElem)
-          ) {
-            var start = priorSelectionRange.start,
-              end = priorSelectionRange.end;
-            void 0 === end && (end = start);
-            if ("selectionStart" in priorFocusedElem)
-              (priorFocusedElem.selectionStart = start),
-                (priorFocusedElem.selectionEnd = Math.min(
-                  end,
-                  priorFocusedElem.value.length
-                ));
-            else {
-              var doc = priorFocusedElem.ownerDocument || document,
-                win = (doc && doc.defaultView) || window;
-              if (win.getSelection) {
-                var selection = win.getSelection(),
-                  length = priorFocusedElem.textContent.length,
-                  start$jscomp$0 = Math.min(priorSelectionRange.start, length),
-                  end$jscomp$0 =
-                    void 0 === priorSelectionRange.end
-                      ? start$jscomp$0
-                      : Math.min(priorSelectionRange.end, length);
-                !selection.extend &&
-                  start$jscomp$0 > end$jscomp$0 &&
-                  ((curFocusedElem = end$jscomp$0),
-                  (end$jscomp$0 = start$jscomp$0),
-                  (start$jscomp$0 = curFocusedElem));
-                var startMarker = getNodeForCharacterOffset(
-                    priorFocusedElem,
-                    start$jscomp$0
-                  ),
-                  endMarker = getNodeForCharacterOffset(
-                    priorFocusedElem,
-                    end$jscomp$0
-                  );
-                if (
-                  startMarker &&
-                  endMarker &&
-                  (1 !== selection.rangeCount ||
-                    selection.anchorNode !== startMarker.node ||
-                    selection.anchorOffset !== startMarker.offset ||
-                    selection.focusNode !== endMarker.node ||
-                    selection.focusOffset !== endMarker.offset)
-                ) {
-                  var range = doc.createRange();
-                  range.setStart(startMarker.node, startMarker.offset);
-                  selection.removeAllRanges();
-                  start$jscomp$0 > end$jscomp$0
-                    ? (selection.addRange(range),
-                      selection.extend(endMarker.node, endMarker.offset))
-                    : (range.setEnd(endMarker.node, endMarker.offset),
-                      selection.addRange(range));
-                }
-              }
-            }
-          }
-          doc = [];
-          for (
-            selection = priorFocusedElem;
-            (selection = selection.parentNode);
-
-          )
-            1 === selection.nodeType &&
-              doc.push({
-                element: selection,
-                left: selection.scrollLeft,
-                top: selection.scrollTop
-              });
-          "function" === typeof priorFocusedElem.focus &&
-            priorFocusedElem.focus();
-          for (
-            priorFocusedElem = 0;
-            priorFocusedElem < doc.length;
-            priorFocusedElem++
-          ) {
-            var info = doc[priorFocusedElem];
-            info.element.scrollLeft = info.left;
-            info.element.scrollTop = info.top;
-          }
-        }
-        _enabled = !!eventsEnabled;
-        selectionInformation = eventsEnabled = null;
-      } finally {
-        (executionContext = prevExecutionContext),
-          (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = rootMutationHasEffect);
-      }
-    }
-    root.current = finishedWork;
-    pendingEffectsStatus = 2;
-  }
-}
-function flushLayoutEffects() {
-  if (2 === pendingEffectsStatus) {
-    pendingEffectsStatus = 0;
-    var suspendedViewTransitionReason = pendingSuspendedViewTransitionReason;
-    null !== suspendedViewTransitionReason &&
-      ((commitStartTime = now()),
-      !supportsUserTiming ||
-        commitStartTime <= commitEndTime ||
-        console.timeStamp(
-          suspendedViewTransitionReason,
-          commitEndTime,
-          commitStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "secondary-light"
-        ));
-    suspendedViewTransitionReason = pendingEffectsRoot;
-    var finishedWork = pendingFinishedWork,
-      lanes = pendingEffectsLanes,
-      rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);
-    if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {
-      rootHasLayoutEffect = ReactSharedInternals.T;
-      ReactSharedInternals.T = null;
-      var previousPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      var prevExecutionContext = executionContext;
-      executionContext |= 4;
-      try {
-        (inProgressLanes = lanes),
-          (inProgressRoot = suspendedViewTransitionReason),
-          resetComponentEffectTimers(),
-          commitLayoutEffectOnFiber(
-            suspendedViewTransitionReason,
-            finishedWork.alternate,
-            finishedWork
-          ),
-          (inProgressRoot = inProgressLanes = null);
-      } finally {
-        (executionContext = prevExecutionContext),
-          (ReactDOMSharedInternals.p = previousPriority),
-          (ReactSharedInternals.T = rootHasLayoutEffect);
-      }
-    }
-    suspendedViewTransitionReason = pendingEffectsRenderEndTime;
-    finishedWork = pendingSuspendedCommitReason;
-    commitEndTime = now();
-    suspendedViewTransitionReason =
-      null === finishedWork ? suspendedViewTransitionReason : commitStartTime;
-    finishedWork = commitEndTime;
-    lanes = 1 === pendingDelayedCommitReason;
-    null !== commitErrors
-      ? logCommitErrored(suspendedViewTransitionReason, finishedWork)
-      : !supportsUserTiming ||
-        finishedWork <= suspendedViewTransitionReason ||
-        console.timeStamp(
-          lanes ? "Commit Interrupted View Transition" : "Commit",
-          suspendedViewTransitionReason,
-          finishedWork,
-          currentTrack,
-          "Scheduler \u269b",
-          lanes ? "error" : "secondary-dark"
-        );
-    pendingEffectsStatus = 3;
-  }
-}
-function flushSpawnedWork() {
-  if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {
-    if (4 === pendingEffectsStatus) {
-      var startViewTransitionStartTime = commitEndTime;
-      commitEndTime = now();
-      var abortedViewTransition = 1 === pendingDelayedCommitReason;
-      !supportsUserTiming ||
-        commitEndTime <= startViewTransitionStartTime ||
-        console.timeStamp(
-          abortedViewTransition
-            ? "Interrupted View Transition"
-            : "Starting Animation",
-          startViewTransitionStartTime,
-          commitEndTime,
-          currentTrack,
-          "Scheduler \u269b",
-          abortedViewTransition ? " error" : "secondary-light"
-        );
-      1 !== pendingDelayedCommitReason && (pendingDelayedCommitReason = 3);
-    }
-    pendingEffectsStatus = 0;
-    requestPaint();
-    startViewTransitionStartTime = pendingEffectsRoot;
-    var finishedWork = pendingFinishedWork;
-    abortedViewTransition = pendingEffectsLanes;
-    var recoverableErrors = pendingRecoverableErrors,
-      rootDidHavePassiveEffects =
-        0 !== finishedWork.actualDuration ||
-        0 !== (finishedWork.subtreeFlags & 10256) ||
-        0 !== (finishedWork.flags & 10256);
-    rootDidHavePassiveEffects
-      ? (pendingEffectsStatus = 5)
-      : ((pendingEffectsStatus = 0),
-        (pendingFinishedWork = pendingEffectsRoot = null),
-        releaseRootPooledCache(
-          startViewTransitionStartTime,
-          startViewTransitionStartTime.pendingLanes
-        ));
-    var remainingLanes = startViewTransitionStartTime.pendingLanes;
-    0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);
-    remainingLanes = lanesToEventPriority(abortedViewTransition);
-    finishedWork = finishedWork.stateNode;
-    if (injectedHook && "function" === typeof injectedHook.onCommitFiberRoot)
-      try {
-        var didError = 128 === (finishedWork.current.flags & 128);
-        switch (remainingLanes) {
-          case 2:
-            var schedulerPriority = ImmediatePriority;
-            break;
-          case 8:
-            schedulerPriority = UserBlockingPriority;
-            break;
-          case 32:
-            schedulerPriority = NormalPriority$1;
-            break;
-          case 268435456:
-            schedulerPriority = IdlePriority;
-            break;
-          default:
-            schedulerPriority = NormalPriority$1;
-        }
-        injectedHook.onCommitFiberRoot(
-          rendererID,
-          finishedWork,
-          schedulerPriority,
-          didError
-        );
-      } catch (err) {}
-    isDevToolsPresent && startViewTransitionStartTime.memoizedUpdaters.clear();
-    if (null !== recoverableErrors) {
-      didError = ReactSharedInternals.T;
-      schedulerPriority = ReactDOMSharedInternals.p;
-      ReactDOMSharedInternals.p = 2;
-      ReactSharedInternals.T = null;
-      try {
-        var onRecoverableError =
-          startViewTransitionStartTime.onRecoverableError;
-        for (
-          finishedWork = 0;
-          finishedWork < recoverableErrors.length;
-          finishedWork++
-        ) {
-          var recoverableError = recoverableErrors[finishedWork];
-          onRecoverableError(recoverableError.value, {
-            componentStack: recoverableError.stack
-          });
-        }
-      } finally {
-        (ReactSharedInternals.T = didError),
-          (ReactDOMSharedInternals.p = schedulerPriority);
-      }
-    }
-    0 !== (pendingEffectsLanes & 3) && flushPendingEffects();
-    ensureRootIsScheduled(startViewTransitionStartTime);
-    remainingLanes = startViewTransitionStartTime.pendingLanes;
-    0 !== (abortedViewTransition & 261930) && 0 !== (remainingLanes & 42)
-      ? ((nestedUpdateScheduled = !0),
-        startViewTransitionStartTime === rootWithNestedUpdates
-          ? nestedUpdateCount++
-          : ((nestedUpdateCount = 0),
-            (rootWithNestedUpdates = startViewTransitionStartTime)))
-      : (nestedUpdateCount = 0);
-    rootDidHavePassiveEffects ||
-      finalizeRender(abortedViewTransition, commitEndTime);
-    flushSyncWorkAcrossRoots_impl(0, !1);
-  }
-}
-function releaseRootPooledCache(root, remainingLanes) {
-  0 === (root.pooledCacheLanes &= remainingLanes) &&
-    ((remainingLanes = root.pooledCache),
-    null != remainingLanes &&
-      ((root.pooledCache = null), releaseCache(remainingLanes)));
-}
-function flushPendingEffects() {
-  flushMutationEffects();
-  flushLayoutEffects();
-  flushSpawnedWork();
-  return flushPassiveEffects();
-}
-function flushPassiveEffects() {
-  if (5 !== pendingEffectsStatus) return !1;
-  var root = pendingEffectsRoot,
-    remainingLanes = pendingEffectsRemainingLanes;
-  pendingEffectsRemainingLanes = 0;
-  var renderPriority = lanesToEventPriority(pendingEffectsLanes),
-    prevTransition = ReactSharedInternals.T,
-    previousPriority = ReactDOMSharedInternals.p;
-  try {
-    ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;
-    ReactSharedInternals.T = null;
-    var transitions = pendingPassiveTransitions;
-    pendingPassiveTransitions = null;
-    renderPriority = pendingEffectsRoot;
-    var lanes = pendingEffectsLanes;
-    pendingEffectsStatus = 0;
-    pendingFinishedWork = pendingEffectsRoot = null;
-    pendingEffectsLanes = 0;
-    if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));
-    setCurrentTrackFromLanes(lanes);
-    var passiveEffectStartTime = 0;
-    commitErrors = null;
-    passiveEffectStartTime = now$1();
-    3 === pendingDelayedCommitReason
-      ? !supportsUserTiming ||
-        passiveEffectStartTime <= commitEndTime ||
-        console.timeStamp(
-          "Animating",
-          commitEndTime,
-          passiveEffectStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "secondary-dark"
-        )
-      : !supportsUserTiming ||
-        passiveEffectStartTime <= commitEndTime ||
-        console.timeStamp(
-          2 === pendingDelayedCommitReason ? "Waiting for Paint" : "Waiting",
-          commitEndTime,
-          passiveEffectStartTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "secondary-light"
-        );
-    var prevExecutionContext = executionContext;
-    executionContext |= 4;
-    var finishedWork = renderPriority.current;
-    resetComponentEffectTimers();
-    commitPassiveUnmountOnFiber(finishedWork);
-    var finishedWork$jscomp$0 = renderPriority.current;
-    finishedWork = pendingEffectsRenderEndTime;
-    resetComponentEffectTimers();
-    commitPassiveMountOnFiber(
-      renderPriority,
-      finishedWork$jscomp$0,
-      lanes,
-      transitions,
-      finishedWork
-    );
-    executionContext = prevExecutionContext;
-    var passiveEffectsEndTime = now$1();
-    finishedWork$jscomp$0 = passiveEffectStartTime;
-    null !== commitErrors
-      ? logCommitErrored(finishedWork$jscomp$0, passiveEffectsEndTime)
-      : !supportsUserTiming ||
-        passiveEffectsEndTime <= finishedWork$jscomp$0 ||
-        console.timeStamp(
-          "Remaining Effects",
-          finishedWork$jscomp$0,
-          passiveEffectsEndTime,
-          currentTrack,
-          "Scheduler \u269b",
-          "secondary-dark"
-        );
-    finalizeRender(lanes, passiveEffectsEndTime);
-    flushSyncWorkAcrossRoots_impl(0, !1);
-    if (
-      injectedHook &&
-      "function" === typeof injectedHook.onPostCommitFiberRoot
-    )
-      try {
-        injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);
-      } catch (err) {}
-    var stateNode = renderPriority.current.stateNode;
-    stateNode.effectDuration = 0;
-    stateNode.passiveEffectDuration = 0;
-    return !0;
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition),
-      releaseRootPooledCache(root, remainingLanes);
-  }
-}
-function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {
-  sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-  recordEffectError(sourceFiber);
-  sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);
-  rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);
-  null !== rootFiber &&
-    (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));
-}
-function captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {
-  if (3 === sourceFiber.tag)
-    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);
-  else
-    for (; null !== nearestMountedAncestor; ) {
-      if (3 === nearestMountedAncestor.tag) {
-        captureCommitPhaseErrorOnRoot(
-          nearestMountedAncestor,
-          sourceFiber,
-          error
-        );
-        break;
-      } else if (1 === nearestMountedAncestor.tag) {
-        var instance = nearestMountedAncestor.stateNode;
-        if (
-          "function" ===
-            typeof nearestMountedAncestor.type.getDerivedStateFromError ||
-          ("function" === typeof instance.componentDidCatch &&
-            (null === legacyErrorBoundariesThatAlreadyFailed ||
-              !legacyErrorBoundariesThatAlreadyFailed.has(instance)))
-        ) {
-          sourceFiber = createCapturedValueAtFiber(error, sourceFiber);
-          recordEffectError(sourceFiber);
-          error = createClassErrorUpdate(2);
-          instance = enqueueUpdate(nearestMountedAncestor, error, 2);
-          null !== instance &&
-            (initializeClassErrorUpdate(
-              error,
-              instance,
-              nearestMountedAncestor,
-              sourceFiber
-            ),
-            markRootUpdated$1(instance, 2),
-            ensureRootIsScheduled(instance));
-          break;
-        }
-      }
-      nearestMountedAncestor = nearestMountedAncestor.return;
-    }
-}
-function attachPingListener(root, wakeable, lanes) {
-  var pingCache = root.pingCache;
-  if (null === pingCache) {
-    pingCache = root.pingCache = new PossiblyWeakMap();
-    var threadIDs = new Set();
-    pingCache.set(wakeable, threadIDs);
-  } else
-    (threadIDs = pingCache.get(wakeable)),
-      void 0 === threadIDs &&
-        ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));
-  threadIDs.has(lanes) ||
-    ((workInProgressRootDidAttachPingListener = !0),
-    threadIDs.add(lanes),
-    (pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),
-    isDevToolsPresent && restorePendingUpdaters(root, lanes),
-    wakeable.then(pingCache, pingCache));
-}
-function pingSuspendedRoot(root, wakeable, pingedLanes) {
-  var pingCache = root.pingCache;
-  null !== pingCache && pingCache.delete(wakeable);
-  root.pingedLanes |= root.suspendedLanes & pingedLanes;
-  root.warmLanes &= ~pingedLanes;
-  0 !== (pingedLanes & 127)
-    ? 0 > blockingUpdateTime &&
-      ((blockingClampTime = blockingUpdateTime = now()),
-      (blockingUpdateType = 2))
-    : 0 !== (pingedLanes & 4194048) &&
-      0 > transitionUpdateTime &&
-      ((transitionClampTime = transitionUpdateTime = now()),
-      (transitionUpdateType = 2));
-  workInProgressRoot === root &&
-    (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&
-    (4 === workInProgressRootExitStatus ||
-    (3 === workInProgressRootExitStatus &&
-      (workInProgressRootRenderLanes & 62914560) ===
-        workInProgressRootRenderLanes &&
-      300 > now$1() - globalMostRecentFallbackTime)
-      ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)
-      : (workInProgressRootPingedLanes |= pingedLanes),
-    workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&
-      (workInProgressSuspendedRetryLanes = 0));
-  ensureRootIsScheduled(root);
-}
-function retryTimedOutBoundary(boundaryFiber, retryLane) {
-  0 === retryLane && (retryLane = claimNextRetryLane());
-  boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);
-  null !== boundaryFiber &&
-    (markRootUpdated$1(boundaryFiber, retryLane),
-    ensureRootIsScheduled(boundaryFiber));
-}
-function retryDehydratedSuspenseBoundary(boundaryFiber) {
-  var suspenseState = boundaryFiber.memoizedState,
-    retryLane = 0;
-  null !== suspenseState && (retryLane = suspenseState.retryLane);
-  retryTimedOutBoundary(boundaryFiber, retryLane);
-}
-function resolveRetryWakeable(boundaryFiber, wakeable) {
-  var retryLane = 0;
-  switch (boundaryFiber.tag) {
-    case 31:
-    case 13:
-      var retryCache = boundaryFiber.stateNode;
-      var suspenseState = boundaryFiber.memoizedState;
-      null !== suspenseState && (retryLane = suspenseState.retryLane);
-      break;
-    case 19:
-      retryCache = boundaryFiber.stateNode;
-      break;
-    case 22:
-      retryCache = boundaryFiber.stateNode._retryCache;
-      break;
-    default:
-      throw Error(formatProdErrorMessage(314));
-  }
-  null !== retryCache && retryCache.delete(wakeable);
-  retryTimedOutBoundary(boundaryFiber, retryLane);
-}
-function restorePendingUpdaters(root, lanes) {
-  isDevToolsPresent &&
-    root.memoizedUpdaters.forEach(function (schedulingFiber) {
-      addFiberToLanesMap(root, schedulingFiber, lanes);
-    });
-}
-function scheduleCallback$1(priorityLevel, callback) {
-  return scheduleCallback$3(priorityLevel, callback);
-}
-var firstScheduledRoot = null,
-  lastScheduledRoot = null,
-  didScheduleMicrotask = !1,
-  mightHavePendingSyncWork = !1,
-  isFlushingWork = !1,
-  currentEventTransitionLane = 0;
-function ensureRootIsScheduled(root) {
-  root !== lastScheduledRoot &&
-    null === root.next &&
-    (null === lastScheduledRoot
-      ? (firstScheduledRoot = lastScheduledRoot = root)
-      : (lastScheduledRoot = lastScheduledRoot.next = root));
-  mightHavePendingSyncWork = !0;
-  didScheduleMicrotask ||
-    ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());
-}
-function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {
-  if (!isFlushingWork && mightHavePendingSyncWork) {
-    isFlushingWork = !0;
-    do {
-      var didPerformSomeWork = !1;
-      for (var root$213 = firstScheduledRoot; null !== root$213; ) {
-        if (!onlyLegacy)
-          if (0 !== syncTransitionLanes) {
-            var pendingLanes = root$213.pendingLanes;
-            if (0 === pendingLanes) var JSCompiler_inline_result = 0;
-            else {
-              var suspendedLanes = root$213.suspendedLanes,
-                pingedLanes = root$213.pingedLanes;
-              JSCompiler_inline_result =
-                (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;
-              JSCompiler_inline_result &=
-                pendingLanes & ~(suspendedLanes & ~pingedLanes);
-              JSCompiler_inline_result =
-                JSCompiler_inline_result & 201326741
-                  ? (JSCompiler_inline_result & 201326741) | 1
-                  : JSCompiler_inline_result
-                    ? JSCompiler_inline_result | 2
-                    : 0;
-            }
-            0 !== JSCompiler_inline_result &&
-              ((didPerformSomeWork = !0),
-              performSyncWorkOnRoot(root$213, JSCompiler_inline_result));
-          } else
-            (JSCompiler_inline_result = workInProgressRootRenderLanes),
-              (JSCompiler_inline_result = getNextLanes(
-                root$213,
-                root$213 === workInProgressRoot ? JSCompiler_inline_result : 0,
-                null !== root$213.cancelPendingCommit ||
-                  -1 !== root$213.timeoutHandle
-              )),
-              0 === (JSCompiler_inline_result & 3) ||
-                checkIfRootIsPrerendering(root$213, JSCompiler_inline_result) ||
-                ((didPerformSomeWork = !0),
-                performSyncWorkOnRoot(root$213, JSCompiler_inline_result));
-        root$213 = root$213.next;
-      }
-    } while (didPerformSomeWork);
-    isFlushingWork = !1;
-  }
-}
-function processRootScheduleInImmediateTask() {
-  schedulerEvent = window.event;
-  processRootScheduleInMicrotask();
-}
-function processRootScheduleInMicrotask() {
-  mightHavePendingSyncWork = didScheduleMicrotask = !1;
-  var syncTransitionLanes = 0;
-  0 !== currentEventTransitionLane &&
-    shouldAttemptEagerTransition() &&
-    (syncTransitionLanes = currentEventTransitionLane);
-  for (
-    var currentTime = now$1(), prev = null, root = firstScheduledRoot;
-    null !== root;
-
-  ) {
-    var next = root.next,
-      nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);
-    if (0 === nextLanes)
-      (root.next = null),
-        null === prev ? (firstScheduledRoot = next) : (prev.next = next),
-        null === next && (lastScheduledRoot = prev);
-    else if (
-      ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))
-    )
-      mightHavePendingSyncWork = !0;
-    root = next;
-  }
-  (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||
-    flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);
-  0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);
-}
-function scheduleTaskForRootDuringMicrotask(root, currentTime) {
-  for (
-    var suspendedLanes = root.suspendedLanes,
-      pingedLanes = root.pingedLanes,
-      expirationTimes = root.expirationTimes,
-      lanes = root.pendingLanes & -62914561;
-    0 < lanes;
-
-  ) {
-    var index$5 = 31 - clz32(lanes),
-      lane = 1 << index$5,
-      expirationTime = expirationTimes[index$5];
-    if (-1 === expirationTime) {
-      if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))
-        expirationTimes[index$5] = computeExpirationTime(lane, currentTime);
-    } else expirationTime <= currentTime && (root.expiredLanes |= lane);
-    lanes &= ~lane;
-  }
-  currentTime = workInProgressRoot;
-  suspendedLanes = workInProgressRootRenderLanes;
-  suspendedLanes = getNextLanes(
-    root,
-    root === currentTime ? suspendedLanes : 0,
-    null !== root.cancelPendingCommit || -1 !== root.timeoutHandle
-  );
-  pingedLanes = root.callbackNode;
-  if (
-    0 === suspendedLanes ||
-    (root === currentTime &&
-      (2 === workInProgressSuspendedReason ||
-        9 === workInProgressSuspendedReason)) ||
-    null !== root.cancelPendingCommit
-  )
-    return (
-      null !== pingedLanes &&
-        null !== pingedLanes &&
-        cancelCallback$1(pingedLanes),
-      (root.callbackNode = null),
-      (root.callbackPriority = 0)
-    );
-  if (
-    0 === (suspendedLanes & 3) ||
-    checkIfRootIsPrerendering(root, suspendedLanes)
-  ) {
-    currentTime = suspendedLanes & -suspendedLanes;
-    if (currentTime === root.callbackPriority) return currentTime;
-    null !== pingedLanes && cancelCallback$1(pingedLanes);
-    switch (lanesToEventPriority(suspendedLanes)) {
-      case 2:
-      case 8:
-        suspendedLanes = UserBlockingPriority;
-        break;
-      case 32:
-        suspendedLanes = NormalPriority$1;
-        break;
-      case 268435456:
-        suspendedLanes = IdlePriority;
-        break;
-      default:
-        suspendedLanes = NormalPriority$1;
-    }
-    pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);
-    suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);
-    root.callbackPriority = currentTime;
-    root.callbackNode = suspendedLanes;
-    return currentTime;
-  }
-  null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);
-  root.callbackPriority = 2;
-  root.callbackNode = null;
-  return 2;
-}
-function performWorkOnRootViaSchedulerTask(root, didTimeout) {
-  nestedUpdateScheduled = currentUpdateIsNested = !1;
-  schedulerEvent = window.event;
-  if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)
-    return (root.callbackNode = null), (root.callbackPriority = 0), null;
-  var originalCallbackNode = root.callbackNode;
-  0 === pendingDelayedCommitReason && (pendingDelayedCommitReason = 2);
-  if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)
-    return null;
-  var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;
-  workInProgressRootRenderLanes$jscomp$0 = getNextLanes(
-    root,
-    root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,
-    null !== root.cancelPendingCommit || -1 !== root.timeoutHandle
-  );
-  if (0 === workInProgressRootRenderLanes$jscomp$0) return null;
-  performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);
-  scheduleTaskForRootDuringMicrotask(root, now$1());
-  return null != root.callbackNode && root.callbackNode === originalCallbackNode
-    ? performWorkOnRootViaSchedulerTask.bind(null, root)
-    : null;
-}
-function performSyncWorkOnRoot(root, lanes) {
-  if (flushPendingEffects()) return null;
-  currentUpdateIsNested = nestedUpdateScheduled;
-  nestedUpdateScheduled = !1;
-  performWorkOnRoot(root, lanes, !0);
-}
-function scheduleImmediateRootScheduleTask() {
-  scheduleMicrotask(function () {
-    0 !== (executionContext & 6)
-      ? scheduleCallback$3(
-          ImmediatePriority,
-          processRootScheduleInImmediateTask
-        )
-      : processRootScheduleInMicrotask();
-  });
-}
-function requestTransitionLane() {
-  if (0 === currentEventTransitionLane) {
-    var actionScopeLane = currentEntangledLane;
-    0 === actionScopeLane &&
-      ((actionScopeLane = nextTransitionUpdateLane),
-      (nextTransitionUpdateLane <<= 1),
-      0 === (nextTransitionUpdateLane & 261888) &&
-        (nextTransitionUpdateLane = 256));
-    currentEventTransitionLane = actionScopeLane;
-  }
-  return currentEventTransitionLane;
-}
-function coerceFormActionProp(actionProp) {
-  return null == actionProp ||
-    "symbol" === typeof actionProp ||
-    "boolean" === typeof actionProp
-    ? null
-    : "function" === typeof actionProp
-      ? actionProp
-      : sanitizeURL("" + actionProp);
-}
-function createFormDataWithSubmitter(form, submitter) {
-  var temp = submitter.ownerDocument.createElement("input");
-  temp.name = submitter.name;
-  temp.value = submitter.value;
-  form.id && temp.setAttribute("form", form.id);
-  submitter.parentNode.insertBefore(temp, submitter);
-  form = new FormData(form);
-  temp.parentNode.removeChild(temp);
-  return form;
-}
-function extractEvents$1(
-  dispatchQueue,
-  domEventName,
-  maybeTargetInst,
-  nativeEvent,
-  nativeEventTarget
-) {
-  if (
-    "submit" === domEventName &&
-    maybeTargetInst &&
-    maybeTargetInst.stateNode === nativeEventTarget
-  ) {
-    var action = coerceFormActionProp(
-        (nativeEventTarget[internalPropsKey] || null).action
-      ),
-      submitter = nativeEvent.submitter;
-    submitter &&
-      ((domEventName = (domEventName = submitter[internalPropsKey] || null)
-        ? coerceFormActionProp(domEventName.formAction)
-        : submitter.getAttribute("formAction")),
-      null !== domEventName && ((action = domEventName), (submitter = null)));
-    var event = new SyntheticEvent(
-      "action",
-      "action",
-      null,
-      nativeEvent,
-      nativeEventTarget
-    );
-    dispatchQueue.push({
-      event: event,
-      listeners: [
-        {
-          instance: null,
-          listener: function () {
-            if (nativeEvent.defaultPrevented) {
-              if (0 !== currentEventTransitionLane) {
-                var formData = submitter
-                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)
-                  : new FormData(nativeEventTarget);
-                startHostTransition(
-                  maybeTargetInst,
-                  {
-                    pending: !0,
-                    data: formData,
-                    method: nativeEventTarget.method,
-                    action: action
-                  },
-                  null,
-                  formData
-                );
-              }
-            } else
-              "function" === typeof action &&
-                (event.preventDefault(),
-                (formData = submitter
-                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)
-                  : new FormData(nativeEventTarget)),
-                startHostTransition(
-                  maybeTargetInst,
-                  {
-                    pending: !0,
-                    data: formData,
-                    method: nativeEventTarget.method,
-                    action: action
-                  },
-                  action,
-                  formData
-                ));
-          },
-          currentTarget: nativeEventTarget
-        }
-      ]
-    });
-  }
-}
-for (
-  var i$jscomp$inline_1875 = 0;
-  i$jscomp$inline_1875 < simpleEventPluginEvents.length;
-  i$jscomp$inline_1875++
-) {
-  var eventName$jscomp$inline_1876 =
-      simpleEventPluginEvents[i$jscomp$inline_1875],
-    domEventName$jscomp$inline_1877 =
-      eventName$jscomp$inline_1876.toLowerCase(),
-    capitalizedEvent$jscomp$inline_1878 =
-      eventName$jscomp$inline_1876[0].toUpperCase() +
-      eventName$jscomp$inline_1876.slice(1);
-  registerSimpleEvent(
-    domEventName$jscomp$inline_1877,
-    "on" + capitalizedEvent$jscomp$inline_1878
-  );
-}
-registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
-registerSimpleEvent(ANIMATION_ITERATION, "onAnimationIteration");
-registerSimpleEvent(ANIMATION_START, "onAnimationStart");
-registerSimpleEvent("dblclick", "onDoubleClick");
-registerSimpleEvent("focusin", "onFocus");
-registerSimpleEvent("focusout", "onBlur");
-registerSimpleEvent(TRANSITION_RUN, "onTransitionRun");
-registerSimpleEvent(TRANSITION_START, "onTransitionStart");
-registerSimpleEvent(TRANSITION_CANCEL, "onTransitionCancel");
-registerSimpleEvent(TRANSITION_END, "onTransitionEnd");
-registerDirectEvent("onMouseEnter", ["mouseout", "mouseover"]);
-registerDirectEvent("onMouseLeave", ["mouseout", "mouseover"]);
-registerDirectEvent("onPointerEnter", ["pointerout", "pointerover"]);
-registerDirectEvent("onPointerLeave", ["pointerout", "pointerover"]);
-registerTwoPhaseEvent(
-  "onChange",
-  "change click focusin focusout input keydown keyup selectionchange".split(" ")
-);
-registerTwoPhaseEvent(
-  "onSelect",
-  "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(
-    " "
-  )
-);
-registerTwoPhaseEvent("onBeforeInput", [
-  "compositionend",
-  "keypress",
-  "textInput",
-  "paste"
-]);
-registerTwoPhaseEvent(
-  "onCompositionEnd",
-  "compositionend focusout keydown keypress keyup mousedown".split(" ")
-);
-registerTwoPhaseEvent(
-  "onCompositionStart",
-  "compositionstart focusout keydown keypress keyup mousedown".split(" ")
-);
-registerTwoPhaseEvent(
-  "onCompositionUpdate",
-  "compositionupdate focusout keydown keypress keyup mousedown".split(" ")
-);
-var mediaEventTypes =
-    "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
-      " "
-    ),
-  nonDelegatedEvents = new Set(
-    "beforetoggle cancel close invalid load scroll scrollend toggle"
-      .split(" ")
-      .concat(mediaEventTypes)
-  );
-function processDispatchQueue(dispatchQueue, eventSystemFlags) {
-  eventSystemFlags = 0 !== (eventSystemFlags & 4);
-  for (var i = 0; i < dispatchQueue.length; i++) {
-    var _dispatchQueue$i = dispatchQueue[i],
-      event = _dispatchQueue$i.event;
-    _dispatchQueue$i = _dispatchQueue$i.listeners;
-    a: {
-      var previousInstance = void 0;
-      if (eventSystemFlags)
-        for (
-          var i$jscomp$0 = _dispatchQueue$i.length - 1;
-          0 <= i$jscomp$0;
-          i$jscomp$0--
-        ) {
-          var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],
-            instance = _dispatchListeners$i.instance,
-            currentTarget = _dispatchListeners$i.currentTarget;
-          _dispatchListeners$i = _dispatchListeners$i.listener;
-          if (instance !== previousInstance && event.isPropagationStopped())
-            break a;
-          previousInstance = _dispatchListeners$i;
-          event.currentTarget = currentTarget;
-          try {
-            previousInstance(event);
-          } catch (error) {
-            reportGlobalError(error);
-          }
-          event.currentTarget = null;
-          previousInstance = instance;
-        }
-      else
-        for (
-          i$jscomp$0 = 0;
-          i$jscomp$0 < _dispatchQueue$i.length;
-          i$jscomp$0++
-        ) {
-          _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];
-          instance = _dispatchListeners$i.instance;
-          currentTarget = _dispatchListeners$i.currentTarget;
-          _dispatchListeners$i = _dispatchListeners$i.listener;
-          if (instance !== previousInstance && event.isPropagationStopped())
-            break a;
-          previousInstance = _dispatchListeners$i;
-          event.currentTarget = currentTarget;
-          try {
-            previousInstance(event);
-          } catch (error) {
-            reportGlobalError(error);
-          }
-          event.currentTarget = null;
-          previousInstance = instance;
-        }
-    }
-  }
-}
-function listenToNonDelegatedEvent(domEventName, targetElement) {
-  var JSCompiler_inline_result = targetElement[internalEventHandlersKey];
-  void 0 === JSCompiler_inline_result &&
-    (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =
-      new Set());
-  var listenerSetKey = domEventName + "__bubble";
-  JSCompiler_inline_result.has(listenerSetKey) ||
-    (addTrappedEventListener(targetElement, domEventName, 2, !1),
-    JSCompiler_inline_result.add(listenerSetKey));
-}
-function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {
-  var eventSystemFlags = 0;
-  isCapturePhaseListener && (eventSystemFlags |= 4);
-  addTrappedEventListener(
-    target,
-    domEventName,
-    eventSystemFlags,
-    isCapturePhaseListener
-  );
-}
-var listeningMarker = "_reactListening" + Math.random().toString(36).slice(2);
-function listenToAllSupportedEvents(rootContainerElement) {
-  if (!rootContainerElement[listeningMarker]) {
-    rootContainerElement[listeningMarker] = !0;
-    allNativeEvents.forEach(function (domEventName) {
-      "selectionchange" !== domEventName &&
-        (nonDelegatedEvents.has(domEventName) ||
-          listenToNativeEvent(domEventName, !1, rootContainerElement),
-        listenToNativeEvent(domEventName, !0, rootContainerElement));
-    });
-    var ownerDocument =
-      9 === rootContainerElement.nodeType
-        ? rootContainerElement
-        : rootContainerElement.ownerDocument;
-    null === ownerDocument ||
-      ownerDocument[listeningMarker] ||
-      ((ownerDocument[listeningMarker] = !0),
-      listenToNativeEvent("selectionchange", !1, ownerDocument));
-  }
-}
-function addTrappedEventListener(
-  targetContainer,
-  domEventName,
-  eventSystemFlags,
-  isCapturePhaseListener
-) {
-  switch (getEventPriority(domEventName)) {
-    case 2:
-      var listenerWrapper = dispatchDiscreteEvent;
-      break;
-    case 8:
-      listenerWrapper = dispatchContinuousEvent;
-      break;
-    default:
-      listenerWrapper = dispatchEvent;
-  }
-  eventSystemFlags = listenerWrapper.bind(
-    null,
-    domEventName,
-    eventSystemFlags,
-    targetContainer
-  );
-  listenerWrapper = void 0;
-  !passiveBrowserEventsSupported ||
-    ("touchstart" !== domEventName &&
-      "touchmove" !== domEventName &&
-      "wheel" !== domEventName) ||
-    (listenerWrapper = !0);
-  isCapturePhaseListener
-    ? void 0 !== listenerWrapper
-      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-          capture: !0,
-          passive: listenerWrapper
-        })
-      : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)
-    : void 0 !== listenerWrapper
-      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {
-          passive: listenerWrapper
-        })
-      : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);
-}
-function dispatchEventForPluginEventSystem(
-  domEventName,
-  eventSystemFlags,
-  nativeEvent,
-  targetInst$jscomp$0,
-  targetContainer
-) {
-  var ancestorInst = targetInst$jscomp$0;
-  if (
-    0 === (eventSystemFlags & 1) &&
-    0 === (eventSystemFlags & 2) &&
-    null !== targetInst$jscomp$0
-  )
-    a: for (;;) {
-      if (null === targetInst$jscomp$0) return;
-      var nodeTag = targetInst$jscomp$0.tag;
-      if (3 === nodeTag || 4 === nodeTag) {
-        var container = targetInst$jscomp$0.stateNode.containerInfo;
-        if (container === targetContainer) break;
-        if (4 === nodeTag)
-          for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
-            var grandTag = nodeTag.tag;
-            if (
-              (3 === grandTag || 4 === grandTag) &&
-              nodeTag.stateNode.containerInfo === targetContainer
-            )
-              return;
-            nodeTag = nodeTag.return;
-          }
-        for (; null !== container; ) {
-          nodeTag = getClosestInstanceFromNode(container);
-          if (null === nodeTag) return;
-          grandTag = nodeTag.tag;
-          if (
-            5 === grandTag ||
-            6 === grandTag ||
-            26 === grandTag ||
-            27 === grandTag
-          ) {
-            targetInst$jscomp$0 = ancestorInst = nodeTag;
-            continue a;
-          }
-          container = container.parentNode;
-        }
-      }
-      targetInst$jscomp$0 = targetInst$jscomp$0.return;
-    }
-  batchedUpdates$2(function () {
-    var targetInst = ancestorInst,
-      nativeEventTarget = getEventTarget(nativeEvent),
-      dispatchQueue = [];
-    a: {
-      var reactName = topLevelEventsToReactNames.get(domEventName);
-      if (void 0 !== reactName) {
-        var SyntheticEventCtor = SyntheticEvent,
-          reactEventType = domEventName;
-        switch (domEventName) {
-          case "keypress":
-            if (0 === getEventCharCode(nativeEvent)) break a;
-          case "keydown":
-          case "keyup":
-            SyntheticEventCtor = SyntheticKeyboardEvent;
-            break;
-          case "focusin":
-            reactEventType = "focus";
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "focusout":
-            reactEventType = "blur";
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "beforeblur":
-          case "afterblur":
-            SyntheticEventCtor = SyntheticFocusEvent;
-            break;
-          case "click":
-            if (2 === nativeEvent.button) break a;
-          case "auxclick":
-          case "dblclick":
-          case "mousedown":
-          case "mousemove":
-          case "mouseup":
-          case "mouseout":
-          case "mouseover":
-          case "contextmenu":
-            SyntheticEventCtor = SyntheticMouseEvent;
-            break;
-          case "drag":
-          case "dragend":
-          case "dragenter":
-          case "dragexit":
-          case "dragleave":
-          case "dragover":
-          case "dragstart":
-          case "drop":
-            SyntheticEventCtor = SyntheticDragEvent;
-            break;
-          case "touchcancel":
-          case "touchend":
-          case "touchmove":
-          case "touchstart":
-            SyntheticEventCtor = SyntheticTouchEvent;
-            break;
-          case ANIMATION_END:
-          case ANIMATION_ITERATION:
-          case ANIMATION_START:
-            SyntheticEventCtor = SyntheticAnimationEvent;
-            break;
-          case TRANSITION_END:
-            SyntheticEventCtor = SyntheticTransitionEvent;
-            break;
-          case "scroll":
-          case "scrollend":
-            SyntheticEventCtor = SyntheticUIEvent;
-            break;
-          case "wheel":
-            SyntheticEventCtor = SyntheticWheelEvent;
-            break;
-          case "copy":
-          case "cut":
-          case "paste":
-            SyntheticEventCtor = SyntheticClipboardEvent;
-            break;
-          case "gotpointercapture":
-          case "lostpointercapture":
-          case "pointercancel":
-          case "pointerdown":
-          case "pointermove":
-          case "pointerout":
-          case "pointerover":
-          case "pointerup":
-            SyntheticEventCtor = SyntheticPointerEvent;
-            break;
-          case "toggle":
-          case "beforetoggle":
-            SyntheticEventCtor = SyntheticToggleEvent;
-        }
-        var inCapturePhase = 0 !== (eventSystemFlags & 4),
-          accumulateTargetOnly =
-            !inCapturePhase &&
-            ("scroll" === domEventName || "scrollend" === domEventName),
-          reactEventName = inCapturePhase
-            ? null !== reactName
-              ? reactName + "Capture"
-              : null
-            : reactName;
-        inCapturePhase = [];
-        for (
-          var instance = targetInst, lastHostComponent;
-          null !== instance;
-
-        ) {
-          var _instance = instance;
-          lastHostComponent = _instance.stateNode;
-          _instance = _instance.tag;
-          (5 !== _instance && 26 !== _instance && 27 !== _instance) ||
-            null === lastHostComponent ||
-            null === reactEventName ||
-            ((_instance = getListener(instance, reactEventName)),
-            null != _instance &&
-              inCapturePhase.push(
-                createDispatchListener(instance, _instance, lastHostComponent)
-              ));
-          if (accumulateTargetOnly) break;
-          instance = instance.return;
-        }
-        0 < inCapturePhase.length &&
-          ((reactName = new SyntheticEventCtor(
-            reactName,
-            reactEventType,
-            null,
-            nativeEvent,
-            nativeEventTarget
-          )),
-          dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));
-      }
-    }
-    if (0 === (eventSystemFlags & 7)) {
-      a: {
-        reactName =
-          "mouseover" === domEventName || "pointerover" === domEventName;
-        SyntheticEventCtor =
-          "mouseout" === domEventName || "pointerout" === domEventName;
-        if (
-          reactName &&
-          nativeEvent !== currentReplayingEvent &&
-          (reactEventType =
-            nativeEvent.relatedTarget || nativeEvent.fromElement) &&
-          (getClosestInstanceFromNode(reactEventType) ||
-            reactEventType[internalContainerInstanceKey])
-        )
-          break a;
-        if (SyntheticEventCtor || reactName) {
-          reactName =
-            nativeEventTarget.window === nativeEventTarget
-              ? nativeEventTarget
-              : (reactName = nativeEventTarget.ownerDocument)
-                ? reactName.defaultView || reactName.parentWindow
-                : window;
-          if (SyntheticEventCtor) {
-            if (
-              ((reactEventType =
-                nativeEvent.relatedTarget || nativeEvent.toElement),
-              (SyntheticEventCtor = targetInst),
-              (reactEventType = reactEventType
-                ? getClosestInstanceFromNode(reactEventType)
-                : null),
-              null !== reactEventType &&
-                ((accumulateTargetOnly =
-                  getNearestMountedFiber(reactEventType)),
-                (inCapturePhase = reactEventType.tag),
-                reactEventType !== accumulateTargetOnly ||
-                  (5 !== inCapturePhase &&
-                    27 !== inCapturePhase &&
-                    6 !== inCapturePhase)))
-            )
-              reactEventType = null;
-          } else (SyntheticEventCtor = null), (reactEventType = targetInst);
-          if (SyntheticEventCtor !== reactEventType) {
-            inCapturePhase = SyntheticMouseEvent;
-            _instance = "onMouseLeave";
-            reactEventName = "onMouseEnter";
-            instance = "mouse";
-            if ("pointerout" === domEventName || "pointerover" === domEventName)
-              (inCapturePhase = SyntheticPointerEvent),
-                (_instance = "onPointerLeave"),
-                (reactEventName = "onPointerEnter"),
-                (instance = "pointer");
-            accumulateTargetOnly =
-              null == SyntheticEventCtor
-                ? reactName
-                : getNodeFromInstance(SyntheticEventCtor);
-            lastHostComponent =
-              null == reactEventType
-                ? reactName
-                : getNodeFromInstance(reactEventType);
-            reactName = new inCapturePhase(
-              _instance,
-              instance + "leave",
-              SyntheticEventCtor,
-              nativeEvent,
-              nativeEventTarget
-            );
-            reactName.target = accumulateTargetOnly;
-            reactName.relatedTarget = lastHostComponent;
-            _instance = null;
-            getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
-              ((inCapturePhase = new inCapturePhase(
-                reactEventName,
-                instance + "enter",
-                reactEventType,
-                nativeEvent,
-                nativeEventTarget
-              )),
-              (inCapturePhase.target = lastHostComponent),
-              (inCapturePhase.relatedTarget = accumulateTargetOnly),
-              (_instance = inCapturePhase));
-            accumulateTargetOnly = _instance;
-            if (SyntheticEventCtor && reactEventType)
-              b: {
-                inCapturePhase = getParent;
-                reactEventName = SyntheticEventCtor;
-                instance = reactEventType;
-                lastHostComponent = 0;
-                for (
-                  _instance = reactEventName;
-                  _instance;
-                  _instance = inCapturePhase(_instance)
-                )
-                  lastHostComponent++;
-                _instance = 0;
-                for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))
-                  _instance++;
-                for (; 0 < lastHostComponent - _instance; )
-                  (reactEventName = inCapturePhase(reactEventName)),
-                    lastHostComponent--;
-                for (; 0 < _instance - lastHostComponent; )
-                  (instance = inCapturePhase(instance)), _instance--;
-                for (; lastHostComponent--; ) {
-                  if (
-                    reactEventName === instance ||
-                    (null !== instance && reactEventName === instance.alternate)
-                  ) {
-                    inCapturePhase = reactEventName;
-                    break b;
-                  }
-                  reactEventName = inCapturePhase(reactEventName);
-                  instance = inCapturePhase(instance);
-                }
-                inCapturePhase = null;
-              }
-            else inCapturePhase = null;
-            null !== SyntheticEventCtor &&
-              accumulateEnterLeaveListenersForEvent(
-                dispatchQueue,
-                reactName,
-                SyntheticEventCtor,
-                inCapturePhase,
-                !1
-              );
-            null !== reactEventType &&
-              null !== accumulateTargetOnly &&
-              accumulateEnterLeaveListenersForEvent(
-                dispatchQueue,
-                accumulateTargetOnly,
-                reactEventType,
-                inCapturePhase,
-                !0
-              );
-          }
-        }
-      }
-      a: {
-        reactName = targetInst ? getNodeFromInstance(targetInst) : window;
-        SyntheticEventCtor =
-          reactName.nodeName && reactName.nodeName.toLowerCase();
-        if (
-          "select" === SyntheticEventCtor ||
-          ("input" === SyntheticEventCtor && "file" === reactName.type)
-        )
-          var getTargetInstFunc = getTargetInstForChangeEvent;
-        else if (isTextInputElement(reactName))
-          if (isInputEventSupported)
-            getTargetInstFunc = getTargetInstForInputOrChangeEvent;
-          else {
-            getTargetInstFunc = getTargetInstForInputEventPolyfill;
-            var handleEventFunc = handleEventsForInputEventPolyfill;
-          }
-        else
-          (SyntheticEventCtor = reactName.nodeName),
-            !SyntheticEventCtor ||
-            "input" !== SyntheticEventCtor.toLowerCase() ||
-            ("checkbox" !== reactName.type && "radio" !== reactName.type)
-              ? targetInst &&
-                isCustomElement(targetInst.elementType) &&
-                (getTargetInstFunc = getTargetInstForChangeEvent)
-              : (getTargetInstFunc = getTargetInstForClickEvent);
-        if (
-          getTargetInstFunc &&
-          (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))
-        ) {
-          createAndAccumulateChangeEvent(
-            dispatchQueue,
-            getTargetInstFunc,
-            nativeEvent,
-            nativeEventTarget
-          );
-          break a;
-        }
-        handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);
-        "focusout" === domEventName &&
-          targetInst &&
-          "number" === reactName.type &&
-          null != targetInst.memoizedProps.value &&
-          setDefaultValue(reactName, "number", reactName.value);
-      }
-      handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;
-      switch (domEventName) {
-        case "focusin":
-          if (
-            isTextInputElement(handleEventFunc) ||
-            "true" === handleEventFunc.contentEditable
-          )
-            (activeElement = handleEventFunc),
-              (activeElementInst = targetInst),
-              (lastSelection = null);
-          break;
-        case "focusout":
-          lastSelection = activeElementInst = activeElement = null;
-          break;
-        case "mousedown":
-          mouseDown = !0;
-          break;
-        case "contextmenu":
-        case "mouseup":
-        case "dragend":
-          mouseDown = !1;
-          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
-          break;
-        case "selectionchange":
-          if (skipSelectionChangeEvent) break;
-        case "keydown":
-        case "keyup":
-          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);
-      }
-      var fallbackData;
-      if (canUseCompositionEvent)
-        b: {
-          switch (domEventName) {
-            case "compositionstart":
-              var eventType = "onCompositionStart";
-              break b;
-            case "compositionend":
-              eventType = "onCompositionEnd";
-              break b;
-            case "compositionupdate":
-              eventType = "onCompositionUpdate";
-              break b;
-          }
-          eventType = void 0;
-        }
-      else
-        isComposing
-          ? isFallbackCompositionEnd(domEventName, nativeEvent) &&
-            (eventType = "onCompositionEnd")
-          : "keydown" === domEventName &&
-            229 === nativeEvent.keyCode &&
-            (eventType = "onCompositionStart");
-      eventType &&
-        (useFallbackCompositionData &&
-          "ko" !== nativeEvent.locale &&
-          (isComposing || "onCompositionStart" !== eventType
-            ? "onCompositionEnd" === eventType &&
-              isComposing &&
-              (fallbackData = getData())
-            : ((root = nativeEventTarget),
-              (startText = "value" in root ? root.value : root.textContent),
-              (isComposing = !0))),
-        (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),
-        0 < handleEventFunc.length &&
-          ((eventType = new SyntheticCompositionEvent(
-            eventType,
-            domEventName,
-            null,
-            nativeEvent,
-            nativeEventTarget
-          )),
-          dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),
-          fallbackData
-            ? (eventType.data = fallbackData)
-            : ((fallbackData = getDataFromCustomEvent(nativeEvent)),
-              null !== fallbackData && (eventType.data = fallbackData))));
-      if (
-        (fallbackData = canUseTextInputEvent
-          ? getNativeBeforeInputChars(domEventName, nativeEvent)
-          : getFallbackBeforeInputChars(domEventName, nativeEvent))
-      )
-        (eventType = accumulateTwoPhaseListeners(targetInst, "onBeforeInput")),
-          0 < eventType.length &&
-            ((handleEventFunc = new SyntheticCompositionEvent(
-              "onBeforeInput",
-              "beforeinput",
-              null,
-              nativeEvent,
-              nativeEventTarget
-            )),
-            dispatchQueue.push({
-              event: handleEventFunc,
-              listeners: eventType
-            }),
-            (handleEventFunc.data = fallbackData));
-      extractEvents$1(
-        dispatchQueue,
-        domEventName,
-        targetInst,
-        nativeEvent,
-        nativeEventTarget
-      );
-    }
-    processDispatchQueue(dispatchQueue, eventSystemFlags);
-  });
-}
-function createDispatchListener(instance, listener, currentTarget) {
-  return {
-    instance: instance,
-    listener: listener,
-    currentTarget: currentTarget
-  };
-}
-function accumulateTwoPhaseListeners(targetFiber, reactName) {
-  for (
-    var captureName = reactName + "Capture", listeners = [];
-    null !== targetFiber;
-
-  ) {
-    var _instance2 = targetFiber,
-      stateNode = _instance2.stateNode;
-    _instance2 = _instance2.tag;
-    (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||
-      null === stateNode ||
-      ((_instance2 = getListener(targetFiber, captureName)),
-      null != _instance2 &&
-        listeners.unshift(
-          createDispatchListener(targetFiber, _instance2, stateNode)
-        ),
-      (_instance2 = getListener(targetFiber, reactName)),
-      null != _instance2 &&
-        listeners.push(
-          createDispatchListener(targetFiber, _instance2, stateNode)
-        ));
-    if (3 === targetFiber.tag) return listeners;
-    targetFiber = targetFiber.return;
-  }
-  return [];
-}
-function getParent(inst) {
-  if (null === inst) return null;
-  do inst = inst.return;
-  while (inst && 5 !== inst.tag && 27 !== inst.tag);
-  return inst ? inst : null;
-}
-function accumulateEnterLeaveListenersForEvent(
-  dispatchQueue,
-  event,
-  target,
-  common,
-  inCapturePhase
-) {
-  for (
-    var registrationName = event._reactName, listeners = [];
-    null !== target && target !== common;
-
-  ) {
-    var _instance3 = target,
-      alternate = _instance3.alternate,
-      stateNode = _instance3.stateNode;
-    _instance3 = _instance3.tag;
-    if (null !== alternate && alternate === common) break;
-    (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||
-      null === stateNode ||
-      ((alternate = stateNode),
-      inCapturePhase
-        ? ((stateNode = getListener(target, registrationName)),
-          null != stateNode &&
-            listeners.unshift(
-              createDispatchListener(target, stateNode, alternate)
-            ))
-        : inCapturePhase ||
-          ((stateNode = getListener(target, registrationName)),
-          null != stateNode &&
-            listeners.push(
-              createDispatchListener(target, stateNode, alternate)
-            )));
-    target = target.return;
-  }
-  0 !== listeners.length &&
-    dispatchQueue.push({ event: event, listeners: listeners });
-}
-var NORMALIZE_NEWLINES_REGEX = /\r\n?/g,
-  NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g;
-function normalizeMarkupForTextOrAttribute(markup) {
-  return ("string" === typeof markup ? markup : "" + markup)
-    .replace(NORMALIZE_NEWLINES_REGEX, "\n")
-    .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, "");
-}
-function checkForUnmatchedText(serverText, clientText) {
-  clientText = normalizeMarkupForTextOrAttribute(clientText);
-  return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;
-}
-function setProp(domElement, tag, key, value, props, prevValue) {
-  switch (key) {
-    case "children":
-      "string" === typeof value
-        ? "body" === tag ||
-          ("textarea" === tag && "" === value) ||
-          setTextContent(domElement, value)
-        : ("number" === typeof value || "bigint" === typeof value) &&
-          "body" !== tag &&
-          setTextContent(domElement, "" + value);
-      break;
-    case "className":
-      setValueForKnownAttribute(domElement, "class", value);
-      break;
-    case "tabIndex":
-      setValueForKnownAttribute(domElement, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      setValueForKnownAttribute(domElement, key, value);
-      break;
-    case "style":
-      setValueForStyles(domElement, value, prevValue);
-      break;
-    case "data":
-      if ("object" !== tag) {
-        setValueForKnownAttribute(domElement, "data", value);
-        break;
-      }
-    case "src":
-    case "href":
-      if ("" === value && ("a" !== tag || "href" !== key)) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      ) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      value = sanitizeURL("" + value);
-      domElement.setAttribute(key, value);
-      break;
-    case "action":
-    case "formAction":
-      if ("function" === typeof value) {
-        domElement.setAttribute(
-          key,
-          "javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"
-        );
-        break;
-      } else
-        "function" === typeof prevValue &&
-          ("formAction" === key
-            ? ("input" !== tag &&
-                setProp(domElement, tag, "name", props.name, props, null),
-              setProp(
-                domElement,
-                tag,
-                "formEncType",
-                props.formEncType,
-                props,
-                null
-              ),
-              setProp(
-                domElement,
-                tag,
-                "formMethod",
-                props.formMethod,
-                props,
-                null
-              ),
-              setProp(
-                domElement,
-                tag,
-                "formTarget",
-                props.formTarget,
-                props,
-                null
-              ))
-            : (setProp(domElement, tag, "encType", props.encType, props, null),
-              setProp(domElement, tag, "method", props.method, props, null),
-              setProp(domElement, tag, "target", props.target, props, null)));
-      if (
-        null == value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      ) {
-        domElement.removeAttribute(key);
-        break;
-      }
-      value = sanitizeURL("" + value);
-      domElement.setAttribute(key, value);
-      break;
-    case "onClick":
-      null != value && (domElement.onclick = noop$1);
-      break;
-    case "onScroll":
-      null != value && listenToNonDelegatedEvent("scroll", domElement);
-      break;
-    case "onScrollEnd":
-      null != value && listenToNonDelegatedEvent("scrollend", domElement);
-      break;
-    case "dangerouslySetInnerHTML":
-      if (null != value) {
-        if ("object" !== typeof value || !("__html" in value))
-          throw Error(formatProdErrorMessage(61));
-        key = value.__html;
-        if (null != key) {
-          if (null != props.children) throw Error(formatProdErrorMessage(60));
-          domElement.innerHTML = key;
-        }
-      }
-      break;
-    case "multiple":
-      domElement.multiple =
-        value && "function" !== typeof value && "symbol" !== typeof value;
-      break;
-    case "muted":
-      domElement.muted =
-        value && "function" !== typeof value && "symbol" !== typeof value;
-      break;
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "ref":
-      break;
-    case "autoFocus":
-      break;
-    case "xlinkHref":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "boolean" === typeof value ||
-        "symbol" === typeof value
-      ) {
-        domElement.removeAttribute("xlink:href");
-        break;
-      }
-      key = sanitizeURL("" + value);
-      domElement.setAttributeNS(
-        "http://www.w3.org/1999/xlink",
-        "xlink:href",
-        key
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      null != value && "function" !== typeof value && "symbol" !== typeof value
-        ? domElement.setAttribute(key, "" + value)
-        : domElement.removeAttribute(key);
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value && "function" !== typeof value && "symbol" !== typeof value
-        ? domElement.setAttribute(key, "")
-        : domElement.removeAttribute(key);
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? domElement.setAttribute(key, "")
-        : !1 !== value &&
-            null != value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value
-          ? domElement.setAttribute(key, value)
-          : domElement.removeAttribute(key);
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      null != value &&
-      "function" !== typeof value &&
-      "symbol" !== typeof value &&
-      !isNaN(value) &&
-      1 <= value
-        ? domElement.setAttribute(key, value)
-        : domElement.removeAttribute(key);
-      break;
-    case "rowSpan":
-    case "start":
-      null == value ||
-      "function" === typeof value ||
-      "symbol" === typeof value ||
-      isNaN(value)
-        ? domElement.removeAttribute(key)
-        : domElement.setAttribute(key, value);
-      break;
-    case "popover":
-      listenToNonDelegatedEvent("beforetoggle", domElement);
-      listenToNonDelegatedEvent("toggle", domElement);
-      setValueForAttribute(domElement, "popover", value);
-      break;
-    case "xlinkActuate":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:actuate",
-        value
-      );
-      break;
-    case "xlinkArcrole":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:arcrole",
-        value
-      );
-      break;
-    case "xlinkRole":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:role",
-        value
-      );
-      break;
-    case "xlinkShow":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:show",
-        value
-      );
-      break;
-    case "xlinkTitle":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:title",
-        value
-      );
-      break;
-    case "xlinkType":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/1999/xlink",
-        "xlink:type",
-        value
-      );
-      break;
-    case "xmlBase":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:base",
-        value
-      );
-      break;
-    case "xmlLang":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:lang",
-        value
-      );
-      break;
-    case "xmlSpace":
-      setValueForNamespacedAttribute(
-        domElement,
-        "http://www.w3.org/XML/1998/namespace",
-        "xml:space",
-        value
-      );
-      break;
-    case "is":
-      setValueForAttribute(domElement, "is", value);
-      break;
-    case "innerText":
-    case "textContent":
-      break;
-    default:
-      if (
-        !(2 < key.length) ||
-        ("o" !== key[0] && "O" !== key[0]) ||
-        ("n" !== key[1] && "N" !== key[1])
-      )
-        (key = aliases.get(key) || key),
-          setValueForAttribute(domElement, key, value);
-  }
-}
-function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
-  switch (key) {
-    case "style":
-      setValueForStyles(domElement, value, prevValue);
-      break;
-    case "dangerouslySetInnerHTML":
-      if (null != value) {
-        if ("object" !== typeof value || !("__html" in value))
-          throw Error(formatProdErrorMessage(61));
-        key = value.__html;
-        if (null != key) {
-          if (null != props.children) throw Error(formatProdErrorMessage(60));
-          domElement.innerHTML = key;
-        }
-      }
-      break;
-    case "children":
-      "string" === typeof value
-        ? setTextContent(domElement, value)
-        : ("number" === typeof value || "bigint" === typeof value) &&
-          setTextContent(domElement, "" + value);
-      break;
-    case "onScroll":
-      null != value && listenToNonDelegatedEvent("scroll", domElement);
-      break;
-    case "onScrollEnd":
-      null != value && listenToNonDelegatedEvent("scrollend", domElement);
-      break;
-    case "onClick":
-      null != value && (domElement.onclick = noop$1);
-      break;
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "innerHTML":
-    case "ref":
-      break;
-    case "innerText":
-    case "textContent":
-      break;
-    default:
-      if (!registrationNameDependencies.hasOwnProperty(key))
-        a: {
-          if (
-            "o" === key[0] &&
-            "n" === key[1] &&
-            ((props = key.endsWith("Capture")),
-            (tag = key.slice(2, props ? key.length - 7 : void 0)),
-            (prevValue = domElement[internalPropsKey] || null),
-            (prevValue = null != prevValue ? prevValue[key] : null),
-            "function" === typeof prevValue &&
-              domElement.removeEventListener(tag, prevValue, props),
-            "function" === typeof value)
-          ) {
-            "function" !== typeof prevValue &&
-              null !== prevValue &&
-              (key in domElement
-                ? (domElement[key] = null)
-                : domElement.hasAttribute(key) &&
-                  domElement.removeAttribute(key));
-            domElement.addEventListener(tag, value, props);
-            break a;
-          }
-          key in domElement
-            ? (domElement[key] = value)
-            : !0 === value
-              ? domElement.setAttribute(key, "")
-              : setValueForAttribute(domElement, key, value);
-        }
-  }
-}
-function setInitialProperties(domElement, tag, props) {
-  switch (tag) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-    case "a":
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "img":
-      listenToNonDelegatedEvent("error", domElement);
-      listenToNonDelegatedEvent("load", domElement);
-      var hasSrc = !1,
-        hasSrcSet = !1,
-        propKey;
-      for (propKey in props)
-        if (props.hasOwnProperty(propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "src":
-                hasSrc = !0;
-                break;
-              case "srcSet":
-                hasSrcSet = !0;
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(137, tag));
-              default:
-                setProp(domElement, tag, propKey, propValue, props, null);
-            }
-        }
-      hasSrcSet &&
-        setProp(domElement, tag, "srcSet", props.srcSet, props, null);
-      hasSrc && setProp(domElement, tag, "src", props.src, props, null);
-      return;
-    case "input":
-      listenToNonDelegatedEvent("invalid", domElement);
-      var defaultValue = (propKey = propValue = hasSrcSet = null),
-        checked = null,
-        defaultChecked = null;
-      for (hasSrc in props)
-        if (props.hasOwnProperty(hasSrc)) {
-          var propValue$227 = props[hasSrc];
-          if (null != propValue$227)
-            switch (hasSrc) {
-              case "name":
-                hasSrcSet = propValue$227;
-                break;
-              case "type":
-                propValue = propValue$227;
-                break;
-              case "checked":
-                checked = propValue$227;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$227;
-                break;
-              case "value":
-                propKey = propValue$227;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$227;
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                if (null != propValue$227)
-                  throw Error(formatProdErrorMessage(137, tag));
-                break;
-              default:
-                setProp(domElement, tag, hasSrc, propValue$227, props, null);
-            }
-        }
-      initInput(
-        domElement,
-        propKey,
-        defaultValue,
-        checked,
-        defaultChecked,
-        propValue,
-        hasSrcSet,
-        !1
-      );
-      return;
-    case "select":
-      listenToNonDelegatedEvent("invalid", domElement);
-      hasSrc = propValue = propKey = null;
-      for (hasSrcSet in props)
-        if (
-          props.hasOwnProperty(hasSrcSet) &&
-          ((defaultValue = props[hasSrcSet]), null != defaultValue)
-        )
-          switch (hasSrcSet) {
-            case "value":
-              propKey = defaultValue;
-              break;
-            case "defaultValue":
-              propValue = defaultValue;
-              break;
-            case "multiple":
-              hasSrc = defaultValue;
-            default:
-              setProp(domElement, tag, hasSrcSet, defaultValue, props, null);
-          }
-      tag = propKey;
-      props = propValue;
-      domElement.multiple = !!hasSrc;
-      null != tag
-        ? updateOptions(domElement, !!hasSrc, tag, !1)
-        : null != props && updateOptions(domElement, !!hasSrc, props, !0);
-      return;
-    case "textarea":
-      listenToNonDelegatedEvent("invalid", domElement);
-      propKey = hasSrcSet = hasSrc = null;
-      for (propValue in props)
-        if (
-          props.hasOwnProperty(propValue) &&
-          ((defaultValue = props[propValue]), null != defaultValue)
-        )
-          switch (propValue) {
-            case "value":
-              hasSrc = defaultValue;
-              break;
-            case "defaultValue":
-              hasSrcSet = defaultValue;
-              break;
-            case "children":
-              propKey = defaultValue;
-              break;
-            case "dangerouslySetInnerHTML":
-              if (null != defaultValue) throw Error(formatProdErrorMessage(91));
-              break;
-            default:
-              setProp(domElement, tag, propValue, defaultValue, props, null);
-          }
-      initTextarea(domElement, hasSrc, hasSrcSet, propKey);
-      return;
-    case "option":
-      for (checked in props)
-        if (
-          props.hasOwnProperty(checked) &&
-          ((hasSrc = props[checked]), null != hasSrc)
-        )
-          switch (checked) {
-            case "selected":
-              domElement.selected =
-                hasSrc &&
-                "function" !== typeof hasSrc &&
-                "symbol" !== typeof hasSrc;
-              break;
-            default:
-              setProp(domElement, tag, checked, hasSrc, props, null);
-          }
-      return;
-    case "dialog":
-      listenToNonDelegatedEvent("beforetoggle", domElement);
-      listenToNonDelegatedEvent("toggle", domElement);
-      listenToNonDelegatedEvent("cancel", domElement);
-      listenToNonDelegatedEvent("close", domElement);
-      break;
-    case "iframe":
-    case "object":
-      listenToNonDelegatedEvent("load", domElement);
-      break;
-    case "video":
-    case "audio":
-      for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)
-        listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);
-      break;
-    case "image":
-      listenToNonDelegatedEvent("error", domElement);
-      listenToNonDelegatedEvent("load", domElement);
-      break;
-    case "details":
-      listenToNonDelegatedEvent("toggle", domElement);
-      break;
-    case "embed":
-    case "source":
-    case "link":
-      listenToNonDelegatedEvent("error", domElement),
-        listenToNonDelegatedEvent("load", domElement);
-    case "area":
-    case "base":
-    case "br":
-    case "col":
-    case "hr":
-    case "keygen":
-    case "meta":
-    case "param":
-    case "track":
-    case "wbr":
-    case "menuitem":
-      for (defaultChecked in props)
-        if (
-          props.hasOwnProperty(defaultChecked) &&
-          ((hasSrc = props[defaultChecked]), null != hasSrc)
-        )
-          switch (defaultChecked) {
-            case "children":
-            case "dangerouslySetInnerHTML":
-              throw Error(formatProdErrorMessage(137, tag));
-            default:
-              setProp(domElement, tag, defaultChecked, hasSrc, props, null);
-          }
-      return;
-    default:
-      if (isCustomElement(tag)) {
-        for (propValue$227 in props)
-          props.hasOwnProperty(propValue$227) &&
-            ((hasSrc = props[propValue$227]),
-            void 0 !== hasSrc &&
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                propValue$227,
-                hasSrc,
-                props,
-                void 0
-              ));
-        return;
-      }
-  }
-  for (defaultValue in props)
-    props.hasOwnProperty(defaultValue) &&
-      ((hasSrc = props[defaultValue]),
-      null != hasSrc &&
-        setProp(domElement, tag, defaultValue, hasSrc, props, null));
-}
-function updateProperties(domElement, tag, lastProps, nextProps) {
-  switch (tag) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-    case "a":
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "input":
-      var name = null,
-        type = null,
-        value = null,
-        defaultValue = null,
-        lastDefaultValue = null,
-        checked = null,
-        defaultChecked = null;
-      for (propKey in lastProps) {
-        var lastProp = lastProps[propKey];
-        if (lastProps.hasOwnProperty(propKey) && null != lastProp)
-          switch (propKey) {
-            case "checked":
-              break;
-            case "value":
-              break;
-            case "defaultValue":
-              lastDefaultValue = lastProp;
-            default:
-              nextProps.hasOwnProperty(propKey) ||
-                setProp(domElement, tag, propKey, null, nextProps, lastProp);
-          }
-      }
-      for (var propKey$244 in nextProps) {
-        var propKey = nextProps[propKey$244];
-        lastProp = lastProps[propKey$244];
-        if (
-          nextProps.hasOwnProperty(propKey$244) &&
-          (null != propKey || null != lastProp)
-        )
-          switch (propKey$244) {
-            case "type":
-              type = propKey;
-              break;
-            case "name":
-              name = propKey;
-              break;
-            case "checked":
-              checked = propKey;
-              break;
-            case "defaultChecked":
-              defaultChecked = propKey;
-              break;
-            case "value":
-              value = propKey;
-              break;
-            case "defaultValue":
-              defaultValue = propKey;
-              break;
-            case "children":
-            case "dangerouslySetInnerHTML":
-              if (null != propKey)
-                throw Error(formatProdErrorMessage(137, tag));
-              break;
-            default:
-              propKey !== lastProp &&
-                setProp(
-                  domElement,
-                  tag,
-                  propKey$244,
-                  propKey,
-                  nextProps,
-                  lastProp
-                );
-          }
-      }
-      updateInput(
-        domElement,
-        value,
-        defaultValue,
-        lastDefaultValue,
-        checked,
-        defaultChecked,
-        type,
-        name
-      );
-      return;
-    case "select":
-      propKey = value = defaultValue = propKey$244 = null;
-      for (type in lastProps)
-        if (
-          ((lastDefaultValue = lastProps[type]),
-          lastProps.hasOwnProperty(type) && null != lastDefaultValue)
-        )
-          switch (type) {
-            case "value":
-              break;
-            case "multiple":
-              propKey = lastDefaultValue;
-            default:
-              nextProps.hasOwnProperty(type) ||
-                setProp(
-                  domElement,
-                  tag,
-                  type,
-                  null,
-                  nextProps,
-                  lastDefaultValue
-                );
-          }
-      for (name in nextProps)
-        if (
-          ((type = nextProps[name]),
-          (lastDefaultValue = lastProps[name]),
-          nextProps.hasOwnProperty(name) &&
-            (null != type || null != lastDefaultValue))
-        )
-          switch (name) {
-            case "value":
-              propKey$244 = type;
-              break;
-            case "defaultValue":
-              defaultValue = type;
-              break;
-            case "multiple":
-              value = type;
-            default:
-              type !== lastDefaultValue &&
-                setProp(
-                  domElement,
-                  tag,
-                  name,
-                  type,
-                  nextProps,
-                  lastDefaultValue
-                );
-          }
-      tag = defaultValue;
-      lastProps = value;
-      nextProps = propKey;
-      null != propKey$244
-        ? updateOptions(domElement, !!lastProps, propKey$244, !1)
-        : !!nextProps !== !!lastProps &&
-          (null != tag
-            ? updateOptions(domElement, !!lastProps, tag, !0)
-            : updateOptions(domElement, !!lastProps, lastProps ? [] : "", !1));
-      return;
-    case "textarea":
-      propKey = propKey$244 = null;
-      for (defaultValue in lastProps)
-        if (
-          ((name = lastProps[defaultValue]),
-          lastProps.hasOwnProperty(defaultValue) &&
-            null != name &&
-            !nextProps.hasOwnProperty(defaultValue))
-        )
-          switch (defaultValue) {
-            case "value":
-              break;
-            case "children":
-              break;
-            default:
-              setProp(domElement, tag, defaultValue, null, nextProps, name);
-          }
-      for (value in nextProps)
-        if (
-          ((name = nextProps[value]),
-          (type = lastProps[value]),
-          nextProps.hasOwnProperty(value) && (null != name || null != type))
-        )
-          switch (value) {
-            case "value":
-              propKey$244 = name;
-              break;
-            case "defaultValue":
-              propKey = name;
-              break;
-            case "children":
-              break;
-            case "dangerouslySetInnerHTML":
-              if (null != name) throw Error(formatProdErrorMessage(91));
-              break;
-            default:
-              name !== type &&
-                setProp(domElement, tag, value, name, nextProps, type);
-          }
-      updateTextarea(domElement, propKey$244, propKey);
-      return;
-    case "option":
-      for (var propKey$260 in lastProps)
-        if (
-          ((propKey$244 = lastProps[propKey$260]),
-          lastProps.hasOwnProperty(propKey$260) &&
-            null != propKey$244 &&
-            !nextProps.hasOwnProperty(propKey$260))
-        )
-          switch (propKey$260) {
-            case "selected":
-              domElement.selected = !1;
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                propKey$260,
-                null,
-                nextProps,
-                propKey$244
-              );
-          }
-      for (lastDefaultValue in nextProps)
-        if (
-          ((propKey$244 = nextProps[lastDefaultValue]),
-          (propKey = lastProps[lastDefaultValue]),
-          nextProps.hasOwnProperty(lastDefaultValue) &&
-            propKey$244 !== propKey &&
-            (null != propKey$244 || null != propKey))
-        )
-          switch (lastDefaultValue) {
-            case "selected":
-              domElement.selected =
-                propKey$244 &&
-                "function" !== typeof propKey$244 &&
-                "symbol" !== typeof propKey$244;
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                lastDefaultValue,
-                propKey$244,
-                nextProps,
-                propKey
-              );
-          }
-      return;
-    case "img":
-    case "link":
-    case "area":
-    case "base":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "meta":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-    case "menuitem":
-      for (var propKey$265 in lastProps)
-        (propKey$244 = lastProps[propKey$265]),
-          lastProps.hasOwnProperty(propKey$265) &&
-            null != propKey$244 &&
-            !nextProps.hasOwnProperty(propKey$265) &&
-            setProp(domElement, tag, propKey$265, null, nextProps, propKey$244);
-      for (checked in nextProps)
-        if (
-          ((propKey$244 = nextProps[checked]),
-          (propKey = lastProps[checked]),
-          nextProps.hasOwnProperty(checked) &&
-            propKey$244 !== propKey &&
-            (null != propKey$244 || null != propKey))
-        )
-          switch (checked) {
-            case "children":
-            case "dangerouslySetInnerHTML":
-              if (null != propKey$244)
-                throw Error(formatProdErrorMessage(137, tag));
-              break;
-            default:
-              setProp(
-                domElement,
-                tag,
-                checked,
-                propKey$244,
-                nextProps,
-                propKey
-              );
-          }
-      return;
-    default:
-      if (isCustomElement(tag)) {
-        for (var propKey$270 in lastProps)
-          (propKey$244 = lastProps[propKey$270]),
-            lastProps.hasOwnProperty(propKey$270) &&
-              void 0 !== propKey$244 &&
-              !nextProps.hasOwnProperty(propKey$270) &&
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                propKey$270,
-                void 0,
-                nextProps,
-                propKey$244
-              );
-        for (defaultChecked in nextProps)
-          (propKey$244 = nextProps[defaultChecked]),
-            (propKey = lastProps[defaultChecked]),
-            !nextProps.hasOwnProperty(defaultChecked) ||
-              propKey$244 === propKey ||
-              (void 0 === propKey$244 && void 0 === propKey) ||
-              setPropOnCustomElement(
-                domElement,
-                tag,
-                defaultChecked,
-                propKey$244,
-                nextProps,
-                propKey
-              );
-        return;
-      }
-  }
-  for (var propKey$275 in lastProps)
-    (propKey$244 = lastProps[propKey$275]),
-      lastProps.hasOwnProperty(propKey$275) &&
-        null != propKey$244 &&
-        !nextProps.hasOwnProperty(propKey$275) &&
-        setProp(domElement, tag, propKey$275, null, nextProps, propKey$244);
-  for (lastProp in nextProps)
-    (propKey$244 = nextProps[lastProp]),
-      (propKey = lastProps[lastProp]),
-      !nextProps.hasOwnProperty(lastProp) ||
-        propKey$244 === propKey ||
-        (null == propKey$244 && null == propKey) ||
-        setProp(domElement, tag, lastProp, propKey$244, nextProps, propKey);
-}
-function isLikelyStaticResource(initiatorType) {
-  switch (initiatorType) {
-    case "css":
-    case "script":
-    case "font":
-    case "img":
-    case "image":
-    case "input":
-    case "link":
-      return !0;
-    default:
-      return !1;
-  }
-}
-function estimateBandwidth() {
-  if ("function" === typeof performance.getEntriesByType) {
-    for (
-      var count = 0,
-        bits = 0,
-        resourceEntries = performance.getEntriesByType("resource"),
-        i = 0;
-      i < resourceEntries.length;
-      i++
-    ) {
-      var entry = resourceEntries[i],
-        transferSize = entry.transferSize,
-        initiatorType = entry.initiatorType,
-        duration = entry.duration;
-      if (transferSize && duration && isLikelyStaticResource(initiatorType)) {
-        initiatorType = 0;
-        duration = entry.responseEnd;
-        for (i += 1; i < resourceEntries.length; i++) {
-          var overlapEntry = resourceEntries[i],
-            overlapStartTime = overlapEntry.startTime;
-          if (overlapStartTime > duration) break;
-          var overlapTransferSize = overlapEntry.transferSize,
-            overlapInitiatorType = overlapEntry.initiatorType;
-          overlapTransferSize &&
-            isLikelyStaticResource(overlapInitiatorType) &&
-            ((overlapEntry = overlapEntry.responseEnd),
-            (initiatorType +=
-              overlapTransferSize *
-              (overlapEntry < duration
-                ? 1
-                : (duration - overlapStartTime) /
-                  (overlapEntry - overlapStartTime))));
-        }
-        --i;
-        bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);
-        count++;
-        if (10 < count) break;
-      }
-    }
-    if (0 < count) return bits / count / 1e6;
-  }
-  return navigator.connection &&
-    ((count = navigator.connection.downlink), "number" === typeof count)
-    ? count
-    : 5;
-}
-var eventsEnabled = null,
-  selectionInformation = null;
-function getOwnerDocumentFromRootContainer(rootContainerElement) {
-  return 9 === rootContainerElement.nodeType
-    ? rootContainerElement
-    : rootContainerElement.ownerDocument;
-}
-function getOwnHostContext(namespaceURI) {
-  switch (namespaceURI) {
-    case "http://www.w3.org/2000/svg":
-      return 1;
-    case "http://www.w3.org/1998/Math/MathML":
-      return 2;
-    default:
-      return 0;
-  }
-}
-function getChildHostContextProd(parentNamespace, type) {
-  if (0 === parentNamespace)
-    switch (type) {
-      case "svg":
-        return 1;
-      case "math":
-        return 2;
-      default:
-        return 0;
-    }
-  return 1 === parentNamespace && "foreignObject" === type
-    ? 0
-    : parentNamespace;
-}
-function shouldSetTextContent(type, props) {
-  return (
-    "textarea" === type ||
-    "noscript" === type ||
-    "string" === typeof props.children ||
-    "number" === typeof props.children ||
-    "bigint" === typeof props.children ||
-    ("object" === typeof props.dangerouslySetInnerHTML &&
-      null !== props.dangerouslySetInnerHTML &&
-      null != props.dangerouslySetInnerHTML.__html)
-  );
-}
-var currentPopstateTransitionEvent = null;
-function shouldAttemptEagerTransition() {
-  var event = window.event;
-  if (event && "popstate" === event.type) {
-    if (event === currentPopstateTransitionEvent) return !1;
-    currentPopstateTransitionEvent = event;
-    return !0;
-  }
-  currentPopstateTransitionEvent = null;
-  return !1;
-}
-var schedulerEvent = void 0;
-function resolveEventType() {
-  var event = window.event;
-  return event && event !== schedulerEvent ? event.type : null;
-}
-function resolveEventTimeStamp() {
-  var event = window.event;
-  return event && event !== schedulerEvent ? event.timeStamp : -1.1;
-}
-var scheduleTimeout = "function" === typeof setTimeout ? setTimeout : void 0,
-  cancelTimeout = "function" === typeof clearTimeout ? clearTimeout : void 0,
-  localPromise = "function" === typeof Promise ? Promise : void 0,
-  scheduleMicrotask =
-    "function" === typeof queueMicrotask
-      ? queueMicrotask
-      : "undefined" !== typeof localPromise
-        ? function (callback) {
-            return localPromise
-              .resolve(null)
-              .then(callback)
-              .catch(handleErrorInNextTick);
-          }
-        : scheduleTimeout;
-function handleErrorInNextTick(error) {
-  setTimeout(function () {
-    throw error;
-  });
-}
-function isSingletonScope(type) {
-  return "head" === type;
-}
-function clearHydrationBoundary(parentInstance, hydrationInstance) {
-  var node = hydrationInstance,
-    depth = 0;
-  do {
-    var nextNode = node.nextSibling;
-    parentInstance.removeChild(node);
-    if (nextNode && 8 === nextNode.nodeType)
-      if (((node = nextNode.data), "/$" === node || "/&" === node)) {
-        if (0 === depth) {
-          parentInstance.removeChild(nextNode);
-          retryIfBlockedOn(hydrationInstance);
-          return;
-        }
-        depth--;
-      } else if (
-        "$" === node ||
-        "$?" === node ||
-        "$~" === node ||
-        "$!" === node ||
-        "&" === node
-      )
-        depth++;
-      else if ("html" === node)
-        releaseSingletonInstance(parentInstance.ownerDocument.documentElement);
-      else if ("head" === node) {
-        node = parentInstance.ownerDocument.head;
-        releaseSingletonInstance(node);
-        for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {
-          var nextNode$jscomp$0 = node$jscomp$0.nextSibling,
-            nodeName = node$jscomp$0.nodeName;
-          node$jscomp$0[internalHoistableMarker] ||
-            "SCRIPT" === nodeName ||
-            "STYLE" === nodeName ||
-            ("LINK" === nodeName &&
-              "stylesheet" === node$jscomp$0.rel.toLowerCase()) ||
-            node.removeChild(node$jscomp$0);
-          node$jscomp$0 = nextNode$jscomp$0;
-        }
-      } else
-        "body" === node &&
-          releaseSingletonInstance(parentInstance.ownerDocument.body);
-    node = nextNode;
-  } while (node);
-  retryIfBlockedOn(hydrationInstance);
-}
-function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {
-  var node = suspenseInstance;
-  suspenseInstance = 0;
-  do {
-    var nextNode = node.nextSibling;
-    1 === node.nodeType
-      ? isHidden
-        ? ((node._stashedDisplay = node.style.display),
-          (node.style.display = "none"))
-        : ((node.style.display = node._stashedDisplay || ""),
-          "" === node.getAttribute("style") && node.removeAttribute("style"))
-      : 3 === node.nodeType &&
-        (isHidden
-          ? ((node._stashedText = node.nodeValue), (node.nodeValue = ""))
-          : (node.nodeValue = node._stashedText || ""));
-    if (nextNode && 8 === nextNode.nodeType)
-      if (((node = nextNode.data), "/$" === node))
-        if (0 === suspenseInstance) break;
-        else suspenseInstance--;
-      else
-        ("$" !== node && "$?" !== node && "$~" !== node && "$!" !== node) ||
-          suspenseInstance++;
-    node = nextNode;
-  } while (node);
-}
-function clearContainerSparingly(container) {
-  var nextNode = container.firstChild;
-  nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);
-  for (; nextNode; ) {
-    var node = nextNode;
-    nextNode = nextNode.nextSibling;
-    switch (node.nodeName) {
-      case "HTML":
-      case "HEAD":
-      case "BODY":
-        clearContainerSparingly(node);
-        detachDeletedInstance(node);
-        continue;
-      case "SCRIPT":
-      case "STYLE":
-        continue;
-      case "LINK":
-        if ("stylesheet" === node.rel.toLowerCase()) continue;
-    }
-    container.removeChild(node);
-  }
-}
-function canHydrateInstance(instance, type, props, inRootOrSingleton) {
-  for (; 1 === instance.nodeType; ) {
-    var anyProps = props;
-    if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
-      if (
-        !inRootOrSingleton &&
-        ("INPUT" !== instance.nodeName || "hidden" !== instance.type)
-      )
-        break;
-    } else if (!inRootOrSingleton)
-      if ("input" === type && "hidden" === instance.type) {
-        var name = null == anyProps.name ? null : "" + anyProps.name;
-        if (
-          "hidden" === anyProps.type &&
-          instance.getAttribute("name") === name
-        )
-          return instance;
-      } else return instance;
-    else if (!instance[internalHoistableMarker])
-      switch (type) {
-        case "meta":
-          if (!instance.hasAttribute("itemprop")) break;
-          return instance;
-        case "link":
-          name = instance.getAttribute("rel");
-          if ("stylesheet" === name && instance.hasAttribute("data-precedence"))
-            break;
-          else if (
-            name !== anyProps.rel ||
-            instance.getAttribute("href") !==
-              (null == anyProps.href || "" === anyProps.href
-                ? null
-                : anyProps.href) ||
-            instance.getAttribute("crossorigin") !==
-              (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||
-            instance.getAttribute("title") !==
-              (null == anyProps.title ? null : anyProps.title)
-          )
-            break;
-          return instance;
-        case "style":
-          if (instance.hasAttribute("data-precedence")) break;
-          return instance;
-        case "script":
-          name = instance.getAttribute("src");
-          if (
-            (name !== (null == anyProps.src ? null : anyProps.src) ||
-              instance.getAttribute("type") !==
-                (null == anyProps.type ? null : anyProps.type) ||
-              instance.getAttribute("crossorigin") !==
-                (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&
-            name &&
-            instance.hasAttribute("async") &&
-            !instance.hasAttribute("itemprop")
-          )
-            break;
-          return instance;
-        default:
-          return instance;
-      }
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) break;
-  }
-  return null;
-}
-function canHydrateTextInstance(instance, text, inRootOrSingleton) {
-  if ("" === text) return null;
-  for (; 3 !== instance.nodeType; ) {
-    if (
-      (1 !== instance.nodeType ||
-        "INPUT" !== instance.nodeName ||
-        "hidden" !== instance.type) &&
-      !inRootOrSingleton
-    )
-      return null;
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) return null;
-  }
-  return instance;
-}
-function canHydrateHydrationBoundary(instance, inRootOrSingleton) {
-  for (; 8 !== instance.nodeType; ) {
-    if (
-      (1 !== instance.nodeType ||
-        "INPUT" !== instance.nodeName ||
-        "hidden" !== instance.type) &&
-      !inRootOrSingleton
-    )
-      return null;
-    instance = getNextHydratable(instance.nextSibling);
-    if (null === instance) return null;
-  }
-  return instance;
-}
-function isSuspenseInstancePending(instance) {
-  return "$?" === instance.data || "$~" === instance.data;
-}
-function isSuspenseInstanceFallback(instance) {
-  return (
-    "$!" === instance.data ||
-    ("$?" === instance.data && "loading" !== instance.ownerDocument.readyState)
-  );
-}
-function registerSuspenseInstanceRetry(instance, callback) {
-  var ownerDocument = instance.ownerDocument;
-  if ("$~" === instance.data) instance._reactRetry = callback;
-  else if ("$?" !== instance.data || "loading" !== ownerDocument.readyState)
-    callback();
-  else {
-    var listener = function () {
-      callback();
-      ownerDocument.removeEventListener("DOMContentLoaded", listener);
-    };
-    ownerDocument.addEventListener("DOMContentLoaded", listener);
-    instance._reactRetry = listener;
-  }
-}
-function getNextHydratable(node) {
-  for (; null != node; node = node.nextSibling) {
-    var nodeType = node.nodeType;
-    if (1 === nodeType || 3 === nodeType) break;
-    if (8 === nodeType) {
-      nodeType = node.data;
-      if (
-        "$" === nodeType ||
-        "$!" === nodeType ||
-        "$?" === nodeType ||
-        "$~" === nodeType ||
-        "&" === nodeType ||
-        "F!" === nodeType ||
-        "F" === nodeType
-      )
-        break;
-      if ("/$" === nodeType || "/&" === nodeType) return null;
-    }
-  }
-  return node;
-}
-var previousHydratableOnEnteringScopedSingleton = null;
-function getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {
-  hydrationInstance = hydrationInstance.nextSibling;
-  for (var depth = 0; hydrationInstance; ) {
-    if (8 === hydrationInstance.nodeType) {
-      var data = hydrationInstance.data;
-      if ("/$" === data || "/&" === data) {
-        if (0 === depth)
-          return getNextHydratable(hydrationInstance.nextSibling);
-        depth--;
-      } else
-        ("$" !== data &&
-          "$!" !== data &&
-          "$?" !== data &&
-          "$~" !== data &&
-          "&" !== data) ||
-          depth++;
-    }
-    hydrationInstance = hydrationInstance.nextSibling;
-  }
-  return null;
-}
-function getParentHydrationBoundary(targetInstance) {
-  targetInstance = targetInstance.previousSibling;
-  for (var depth = 0; targetInstance; ) {
-    if (8 === targetInstance.nodeType) {
-      var data = targetInstance.data;
-      if (
-        "$" === data ||
-        "$!" === data ||
-        "$?" === data ||
-        "$~" === data ||
-        "&" === data
-      ) {
-        if (0 === depth) return targetInstance;
-        depth--;
-      } else ("/$" !== data && "/&" !== data) || depth++;
-    }
-    targetInstance = targetInstance.previousSibling;
-  }
-  return null;
-}
-function resolveSingletonInstance(type, props, rootContainerInstance) {
-  props = getOwnerDocumentFromRootContainer(rootContainerInstance);
-  switch (type) {
-    case "html":
-      type = props.documentElement;
-      if (!type) throw Error(formatProdErrorMessage(452));
-      return type;
-    case "head":
-      type = props.head;
-      if (!type) throw Error(formatProdErrorMessage(453));
-      return type;
-    case "body":
-      type = props.body;
-      if (!type) throw Error(formatProdErrorMessage(454));
-      return type;
-    default:
-      throw Error(formatProdErrorMessage(451));
-  }
-}
-function releaseSingletonInstance(instance) {
-  for (var attributes = instance.attributes; attributes.length; )
-    instance.removeAttributeNode(attributes[0]);
-  detachDeletedInstance(instance);
-}
-var preloadPropsMap = new Map(),
-  preconnectsSet = new Set();
-function getHoistableRoot(container) {
-  return "function" === typeof container.getRootNode
-    ? container.getRootNode()
-    : 9 === container.nodeType
-      ? container
-      : container.ownerDocument;
-}
-var previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: flushSyncWork,
-  r: requestFormReset$1,
-  D: prefetchDNS$1,
-  C: preconnect$1,
-  L: preload$1,
-  m: preloadModule$1,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-function flushSyncWork() {
-  var previousWasRendering = previousDispatcher.f(),
-    wasRendering = flushSyncWork$1();
-  return previousWasRendering || wasRendering;
-}
-function requestFormReset$1(form) {
-  var formInst = getInstanceFromNode(form);
-  null !== formInst && 5 === formInst.tag && "form" === formInst.type
-    ? requestFormReset$2(formInst)
-    : previousDispatcher.r(form);
-}
-var globalDocument = "undefined" === typeof document ? null : document;
-function preconnectAs(rel, href, crossOrigin) {
-  var ownerDocument = globalDocument;
-  if (ownerDocument && "string" === typeof href && href) {
-    var limitedEscapedHref =
-      escapeSelectorAttributeValueInsideDoubleQuotes(href);
-    limitedEscapedHref =
-      'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]';
-    "string" === typeof crossOrigin &&
-      (limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]');
-    preconnectsSet.has(limitedEscapedHref) ||
-      (preconnectsSet.add(limitedEscapedHref),
-      (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),
-      null === ownerDocument.querySelector(limitedEscapedHref) &&
-        ((href = ownerDocument.createElement("link")),
-        setInitialProperties(href, "link", rel),
-        markNodeAsHoistable(href),
-        ownerDocument.head.appendChild(href)));
-  }
-}
-function prefetchDNS$1(href) {
-  previousDispatcher.D(href);
-  preconnectAs("dns-prefetch", href, null);
-}
-function preconnect$1(href, crossOrigin) {
-  previousDispatcher.C(href, crossOrigin);
-  preconnectAs("preconnect", href, crossOrigin);
-}
-function preload$1(href, as, options) {
-  previousDispatcher.L(href, as, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href && as) {
-    var preloadSelector =
-      'link[rel="preload"][as="' +
-      escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-      '"]';
-    "image" === as
-      ? options && options.imageSrcSet
-        ? ((preloadSelector +=
-            '[imagesrcset="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(
-              options.imageSrcSet
-            ) +
-            '"]'),
-          "string" === typeof options.imageSizes &&
-            (preloadSelector +=
-              '[imagesizes="' +
-              escapeSelectorAttributeValueInsideDoubleQuotes(
-                options.imageSizes
-              ) +
-              '"]'))
-        : (preloadSelector +=
-            '[href="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-            '"]')
-      : (preloadSelector +=
-          '[href="' +
-          escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-          '"]');
-    var key = preloadSelector;
-    switch (as) {
-      case "style":
-        key = getStyleKey(href);
-        break;
-      case "script":
-        key = getScriptKey(href);
-    }
-    preloadPropsMap.has(key) ||
-      ((href = assign(
-        {
-          rel: "preload",
-          href:
-            "image" === as && options && options.imageSrcSet ? void 0 : href,
-          as: as
-        },
-        options
-      )),
-      preloadPropsMap.set(key, href),
-      null !== ownerDocument.querySelector(preloadSelector) ||
-        ("style" === as &&
-          ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||
-        ("script" === as &&
-          ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||
-        ((as = ownerDocument.createElement("link")),
-        setInitialProperties(as, "link", href),
-        markNodeAsHoistable(as),
-        ownerDocument.head.appendChild(as)));
-  }
-}
-function preloadModule$1(href, options) {
-  previousDispatcher.m(href, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href) {
-    var as = options && "string" === typeof options.as ? options.as : "script",
-      preloadSelector =
-        'link[rel="modulepreload"][as="' +
-        escapeSelectorAttributeValueInsideDoubleQuotes(as) +
-        '"][href="' +
-        escapeSelectorAttributeValueInsideDoubleQuotes(href) +
-        '"]',
-      key = preloadSelector;
-    switch (as) {
-      case "audioworklet":
-      case "paintworklet":
-      case "serviceworker":
-      case "sharedworker":
-      case "worker":
-      case "script":
-        key = getScriptKey(href);
-    }
-    if (
-      !preloadPropsMap.has(key) &&
-      ((href = assign({ rel: "modulepreload", href: href }, options)),
-      preloadPropsMap.set(key, href),
-      null === ownerDocument.querySelector(preloadSelector))
-    ) {
-      switch (as) {
-        case "audioworklet":
-        case "paintworklet":
-        case "serviceworker":
-        case "sharedworker":
-        case "worker":
-        case "script":
-          if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))
-            return;
-      }
-      as = ownerDocument.createElement("link");
-      setInitialProperties(as, "link", href);
-      markNodeAsHoistable(as);
-      ownerDocument.head.appendChild(as);
-    }
-  }
-}
-function preinitStyle(href, precedence, options) {
-  previousDispatcher.S(href, precedence, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && href) {
-    var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,
-      key = getStyleKey(href);
-    precedence = precedence || "default";
-    var resource = styles.get(key);
-    if (!resource) {
-      var state = { loading: 0, preload: null };
-      if (
-        (resource = ownerDocument.querySelector(
-          getStylesheetSelectorFromKey(key)
-        ))
-      )
-        state.loading = 5;
-      else {
-        href = assign(
-          { rel: "stylesheet", href: href, "data-precedence": precedence },
-          options
-        );
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForStylesheet(href, options);
-        var link = (resource = ownerDocument.createElement("link"));
-        markNodeAsHoistable(link);
-        setInitialProperties(link, "link", href);
-        link._p = new Promise(function (resolve, reject) {
-          link.onload = resolve;
-          link.onerror = reject;
-        });
-        link.addEventListener("load", function () {
-          state.loading |= 1;
-        });
-        link.addEventListener("error", function () {
-          state.loading |= 2;
-        });
-        state.loading |= 4;
-        insertStylesheet(resource, precedence, ownerDocument);
-      }
-      resource = {
-        type: "stylesheet",
-        instance: resource,
-        count: 1,
-        state: state
-      };
-      styles.set(key, resource);
-    }
-  }
-}
-function preinitScript(src, options) {
-  previousDispatcher.X(src, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && src) {
-    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-      key = getScriptKey(src),
-      resource = scripts.get(key);
-    resource ||
-      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),
-      resource ||
-        ((src = assign({ src: src, async: !0 }, options)),
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForScript(src, options),
-        (resource = ownerDocument.createElement("script")),
-        markNodeAsHoistable(resource),
-        setInitialProperties(resource, "link", src),
-        ownerDocument.head.appendChild(resource)),
-      (resource = {
-        type: "script",
-        instance: resource,
-        count: 1,
-        state: null
-      }),
-      scripts.set(key, resource));
-  }
-}
-function preinitModuleScript(src, options) {
-  previousDispatcher.M(src, options);
-  var ownerDocument = globalDocument;
-  if (ownerDocument && src) {
-    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
-      key = getScriptKey(src),
-      resource = scripts.get(key);
-    resource ||
-      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),
-      resource ||
-        ((src = assign({ src: src, async: !0, type: "module" }, options)),
-        (options = preloadPropsMap.get(key)) &&
-          adoptPreloadPropsForScript(src, options),
-        (resource = ownerDocument.createElement("script")),
-        markNodeAsHoistable(resource),
-        setInitialProperties(resource, "link", src),
-        ownerDocument.head.appendChild(resource)),
-      (resource = {
-        type: "script",
-        instance: resource,
-        count: 1,
-        state: null
-      }),
-      scripts.set(key, resource));
-  }
-}
-function getResource(type, currentProps, pendingProps, currentResource) {
-  var JSCompiler_inline_result = (JSCompiler_inline_result =
-    rootInstanceStackCursor.current)
-    ? getHoistableRoot(JSCompiler_inline_result)
-    : null;
-  if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));
-  switch (type) {
-    case "meta":
-    case "title":
-      return null;
-    case "style":
-      return "string" === typeof pendingProps.precedence &&
-        "string" === typeof pendingProps.href
-        ? ((currentProps = getStyleKey(pendingProps.href)),
-          (pendingProps = getResourcesFromRoot(
-            JSCompiler_inline_result
-          ).hoistableStyles),
-          (currentResource = pendingProps.get(currentProps)),
-          currentResource ||
-            ((currentResource = {
-              type: "style",
-              instance: null,
-              count: 0,
-              state: null
-            }),
-            pendingProps.set(currentProps, currentResource)),
-          currentResource)
-        : { type: "void", instance: null, count: 0, state: null };
-    case "link":
-      if (
-        "stylesheet" === pendingProps.rel &&
-        "string" === typeof pendingProps.href &&
-        "string" === typeof pendingProps.precedence
-      ) {
-        type = getStyleKey(pendingProps.href);
-        var styles$286 = getResourcesFromRoot(
-            JSCompiler_inline_result
-          ).hoistableStyles,
-          resource$287 = styles$286.get(type);
-        resource$287 ||
-          ((JSCompiler_inline_result =
-            JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),
-          (resource$287 = {
-            type: "stylesheet",
-            instance: null,
-            count: 0,
-            state: { loading: 0, preload: null }
-          }),
-          styles$286.set(type, resource$287),
-          (styles$286 = JSCompiler_inline_result.querySelector(
-            getStylesheetSelectorFromKey(type)
-          )) &&
-            !styles$286._p &&
-            ((resource$287.instance = styles$286),
-            (resource$287.state.loading = 5)),
-          preloadPropsMap.has(type) ||
-            ((pendingProps = {
-              rel: "preload",
-              as: "style",
-              href: pendingProps.href,
-              crossOrigin: pendingProps.crossOrigin,
-              integrity: pendingProps.integrity,
-              media: pendingProps.media,
-              hrefLang: pendingProps.hrefLang,
-              referrerPolicy: pendingProps.referrerPolicy
-            }),
-            preloadPropsMap.set(type, pendingProps),
-            styles$286 ||
-              preloadStylesheet(
-                JSCompiler_inline_result,
-                type,
-                pendingProps,
-                resource$287.state
-              )));
-        if (currentProps && null === currentResource)
-          throw Error(formatProdErrorMessage(528, ""));
-        return resource$287;
-      }
-      if (currentProps && null !== currentResource)
-        throw Error(formatProdErrorMessage(529, ""));
-      return null;
-    case "script":
-      return (
-        (currentProps = pendingProps.async),
-        (pendingProps = pendingProps.src),
-        "string" === typeof pendingProps &&
-        currentProps &&
-        "function" !== typeof currentProps &&
-        "symbol" !== typeof currentProps
-          ? ((currentProps = getScriptKey(pendingProps)),
-            (pendingProps = getResourcesFromRoot(
-              JSCompiler_inline_result
-            ).hoistableScripts),
-            (currentResource = pendingProps.get(currentProps)),
-            currentResource ||
-              ((currentResource = {
-                type: "script",
-                instance: null,
-                count: 0,
-                state: null
-              }),
-              pendingProps.set(currentProps, currentResource)),
-            currentResource)
-          : { type: "void", instance: null, count: 0, state: null }
-      );
-    default:
-      throw Error(formatProdErrorMessage(444, type));
-  }
-}
-function getStyleKey(href) {
-  return 'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"';
-}
-function getStylesheetSelectorFromKey(key) {
-  return 'link[rel="stylesheet"][' + key + "]";
-}
-function stylesheetPropsFromRawProps(rawProps) {
-  return assign({}, rawProps, {
-    "data-precedence": rawProps.precedence,
-    precedence: null
-  });
-}
-function preloadStylesheet(ownerDocument, key, preloadProps, state) {
-  ownerDocument.querySelector('link[rel="preload"][as="style"][' + key + "]")
-    ? (state.loading = 1)
-    : ((key = ownerDocument.createElement("link")),
-      (state.preload = key),
-      key.addEventListener("load", function () {
-        return (state.loading |= 1);
-      }),
-      key.addEventListener("error", function () {
-        return (state.loading |= 2);
-      }),
-      setInitialProperties(key, "link", preloadProps),
-      markNodeAsHoistable(key),
-      ownerDocument.head.appendChild(key));
-}
-function getScriptKey(src) {
-  return '[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]';
-}
-function getScriptSelectorFromKey(key) {
-  return "script[async]" + key;
-}
-function acquireResource(hoistableRoot, resource, props) {
-  resource.count++;
-  if (null === resource.instance)
-    switch (resource.type) {
-      case "style":
-        var instance = hoistableRoot.querySelector(
-          'style[data-href~="' +
-            escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +
-            '"]'
-        );
-        if (instance)
-          return (
-            (resource.instance = instance),
-            markNodeAsHoistable(instance),
-            instance
-          );
-        var styleProps = assign({}, props, {
-          "data-href": props.href,
-          "data-precedence": props.precedence,
-          href: null,
-          precedence: null
-        });
-        instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(
-          "style"
-        );
-        markNodeAsHoistable(instance);
-        setInitialProperties(instance, "style", styleProps);
-        insertStylesheet(instance, props.precedence, hoistableRoot);
-        return (resource.instance = instance);
-      case "stylesheet":
-        styleProps = getStyleKey(props.href);
-        var instance$292 = hoistableRoot.querySelector(
-          getStylesheetSelectorFromKey(styleProps)
-        );
-        if (instance$292)
-          return (
-            (resource.state.loading |= 4),
-            (resource.instance = instance$292),
-            markNodeAsHoistable(instance$292),
-            instance$292
-          );
-        instance = stylesheetPropsFromRawProps(props);
-        (styleProps = preloadPropsMap.get(styleProps)) &&
-          adoptPreloadPropsForStylesheet(instance, styleProps);
-        instance$292 = (
-          hoistableRoot.ownerDocument || hoistableRoot
-        ).createElement("link");
-        markNodeAsHoistable(instance$292);
-        var linkInstance = instance$292;
-        linkInstance._p = new Promise(function (resolve, reject) {
-          linkInstance.onload = resolve;
-          linkInstance.onerror = reject;
-        });
-        setInitialProperties(instance$292, "link", instance);
-        resource.state.loading |= 4;
-        insertStylesheet(instance$292, props.precedence, hoistableRoot);
-        return (resource.instance = instance$292);
-      case "script":
-        instance$292 = getScriptKey(props.src);
-        if (
-          (styleProps = hoistableRoot.querySelector(
-            getScriptSelectorFromKey(instance$292)
-          ))
-        )
-          return (
-            (resource.instance = styleProps),
-            markNodeAsHoistable(styleProps),
-            styleProps
-          );
-        instance = props;
-        if ((styleProps = preloadPropsMap.get(instance$292)))
-          (instance = assign({}, props)),
-            adoptPreloadPropsForScript(instance, styleProps);
-        hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-        styleProps = hoistableRoot.createElement("script");
-        markNodeAsHoistable(styleProps);
-        setInitialProperties(styleProps, "link", instance);
-        hoistableRoot.head.appendChild(styleProps);
-        return (resource.instance = styleProps);
-      case "void":
-        return null;
-      default:
-        throw Error(formatProdErrorMessage(443, resource.type));
-    }
-  else
-    "stylesheet" === resource.type &&
-      0 === (resource.state.loading & 4) &&
-      ((instance = resource.instance),
-      (resource.state.loading |= 4),
-      insertStylesheet(instance, props.precedence, hoistableRoot));
-  return resource.instance;
-}
-function insertStylesheet(instance, precedence, root) {
-  for (
-    var nodes = root.querySelectorAll(
-        'link[rel="stylesheet"][data-precedence],style[data-precedence]'
-      ),
-      last = nodes.length ? nodes[nodes.length - 1] : null,
-      prior = last,
-      i = 0;
-    i < nodes.length;
-    i++
-  ) {
-    var node = nodes[i];
-    if (node.dataset.precedence === precedence) prior = node;
-    else if (prior !== last) break;
-  }
-  prior
-    ? prior.parentNode.insertBefore(instance, prior.nextSibling)
-    : ((precedence = 9 === root.nodeType ? root.head : root),
-      precedence.insertBefore(instance, precedence.firstChild));
-}
-function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
-  null == stylesheetProps.crossOrigin &&
-    (stylesheetProps.crossOrigin = preloadProps.crossOrigin);
-  null == stylesheetProps.referrerPolicy &&
-    (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);
-  null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);
-}
-function adoptPreloadPropsForScript(scriptProps, preloadProps) {
-  null == scriptProps.crossOrigin &&
-    (scriptProps.crossOrigin = preloadProps.crossOrigin);
-  null == scriptProps.referrerPolicy &&
-    (scriptProps.referrerPolicy = preloadProps.referrerPolicy);
-  null == scriptProps.integrity &&
-    (scriptProps.integrity = preloadProps.integrity);
-}
-var tagCaches = null;
-function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
-  if (null === tagCaches) {
-    var cache = new Map();
-    var caches = (tagCaches = new Map());
-    caches.set(ownerDocument, cache);
-  } else
-    (caches = tagCaches),
-      (cache = caches.get(ownerDocument)),
-      cache || ((cache = new Map()), caches.set(ownerDocument, cache));
-  if (cache.has(type)) return cache;
-  cache.set(type, null);
-  ownerDocument = ownerDocument.getElementsByTagName(type);
-  for (caches = 0; caches < ownerDocument.length; caches++) {
-    var node = ownerDocument[caches];
-    if (
-      !(
-        node[internalHoistableMarker] ||
-        node[internalInstanceKey] ||
-        ("link" === type && "stylesheet" === node.getAttribute("rel"))
-      ) &&
-      "http://www.w3.org/2000/svg" !== node.namespaceURI
-    ) {
-      var nodeKey = node.getAttribute(keyAttribute) || "";
-      nodeKey = type + nodeKey;
-      var existing = cache.get(nodeKey);
-      existing ? existing.push(node) : cache.set(nodeKey, [node]);
-    }
-  }
-  return cache;
-}
-function mountHoistable(hoistableRoot, type, instance) {
-  hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
-  hoistableRoot.head.insertBefore(
-    instance,
-    "title" === type ? hoistableRoot.querySelector("head > title") : null
-  );
-}
-function isHostHoistableType(type, props, hostContext) {
-  if (1 === hostContext || null != props.itemProp) return !1;
-  switch (type) {
-    case "meta":
-    case "title":
-      return !0;
-    case "style":
-      if (
-        "string" !== typeof props.precedence ||
-        "string" !== typeof props.href ||
-        "" === props.href
-      )
-        break;
-      return !0;
-    case "link":
-      if (
-        "string" !== typeof props.rel ||
-        "string" !== typeof props.href ||
-        "" === props.href ||
-        props.onLoad ||
-        props.onError
-      )
-        break;
-      switch (props.rel) {
-        case "stylesheet":
-          return (
-            (type = props.disabled),
-            "string" === typeof props.precedence && null == type
-          );
-        default:
-          return !0;
-      }
-    case "script":
-      if (
-        props.async &&
-        "function" !== typeof props.async &&
-        "symbol" !== typeof props.async &&
-        !props.onLoad &&
-        !props.onError &&
-        props.src &&
-        "string" === typeof props.src
-      )
-        return !0;
-  }
-  return !1;
-}
-function preloadResource(resource) {
-  return "stylesheet" === resource.type && 0 === (resource.state.loading & 3)
-    ? !1
-    : !0;
-}
-function suspendResource(state, hoistableRoot, resource, props) {
-  if (
-    "stylesheet" === resource.type &&
-    ("string" !== typeof props.media ||
-      !1 !== matchMedia(props.media).matches) &&
-    0 === (resource.state.loading & 4)
-  ) {
-    if (null === resource.instance) {
-      var key = getStyleKey(props.href),
-        instance = hoistableRoot.querySelector(
-          getStylesheetSelectorFromKey(key)
-        );
-      if (instance) {
-        hoistableRoot = instance._p;
-        null !== hoistableRoot &&
-          "object" === typeof hoistableRoot &&
-          "function" === typeof hoistableRoot.then &&
-          (state.count++,
-          (state = onUnsuspend.bind(state)),
-          hoistableRoot.then(state, state));
-        resource.state.loading |= 4;
-        resource.instance = instance;
-        markNodeAsHoistable(instance);
-        return;
-      }
-      instance = hoistableRoot.ownerDocument || hoistableRoot;
-      props = stylesheetPropsFromRawProps(props);
-      (key = preloadPropsMap.get(key)) &&
-        adoptPreloadPropsForStylesheet(props, key);
-      instance = instance.createElement("link");
-      markNodeAsHoistable(instance);
-      var linkInstance = instance;
-      linkInstance._p = new Promise(function (resolve, reject) {
-        linkInstance.onload = resolve;
-        linkInstance.onerror = reject;
-      });
-      setInitialProperties(instance, "link", props);
-      resource.instance = instance;
-    }
-    null === state.stylesheets && (state.stylesheets = new Map());
-    state.stylesheets.set(resource, hoistableRoot);
-    (hoistableRoot = resource.state.preload) &&
-      0 === (resource.state.loading & 3) &&
-      (state.count++,
-      (resource = onUnsuspend.bind(state)),
-      hoistableRoot.addEventListener("load", resource),
-      hoistableRoot.addEventListener("error", resource));
-  }
-}
-var estimatedBytesWithinLimit = 0;
-function waitForCommitToBeReady(state, timeoutOffset) {
-  state.stylesheets &&
-    0 === state.count &&
-    insertSuspendedStylesheets(state, state.stylesheets);
-  return 0 < state.count || 0 < state.imgCount
-    ? function (commit) {
-        var stylesheetTimer = setTimeout(function () {
-          state.stylesheets &&
-            insertSuspendedStylesheets(state, state.stylesheets);
-          if (state.unsuspend) {
-            var unsuspend = state.unsuspend;
-            state.unsuspend = null;
-            unsuspend();
-          }
-        }, 6e4 + timeoutOffset);
-        0 < state.imgBytes &&
-          0 === estimatedBytesWithinLimit &&
-          (estimatedBytesWithinLimit = 62500 * estimateBandwidth());
-        var imgTimer = setTimeout(
-          function () {
-            state.waitingForImages = !1;
-            if (
-              0 === state.count &&
-              (state.stylesheets &&
-                insertSuspendedStylesheets(state, state.stylesheets),
-              state.unsuspend)
-            ) {
-              var unsuspend = state.unsuspend;
-              state.unsuspend = null;
-              unsuspend();
-            }
-          },
-          (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +
-            timeoutOffset
-        );
-        state.unsuspend = commit;
-        return function () {
-          state.unsuspend = null;
-          clearTimeout(stylesheetTimer);
-          clearTimeout(imgTimer);
-        };
-      }
-    : null;
-}
-function onUnsuspend() {
-  this.count--;
-  if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))
-    if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);
-    else if (this.unsuspend) {
-      var unsuspend = this.unsuspend;
-      this.unsuspend = null;
-      unsuspend();
-    }
-}
-var precedencesByRoot = null;
-function insertSuspendedStylesheets(state, resources) {
-  state.stylesheets = null;
-  null !== state.unsuspend &&
-    (state.count++,
-    (precedencesByRoot = new Map()),
-    resources.forEach(insertStylesheetIntoRoot, state),
-    (precedencesByRoot = null),
-    onUnsuspend.call(state));
-}
-function insertStylesheetIntoRoot(root, resource) {
-  if (!(resource.state.loading & 4)) {
-    var precedences = precedencesByRoot.get(root);
-    if (precedences) var last = precedences.get(null);
-    else {
-      precedences = new Map();
-      precedencesByRoot.set(root, precedences);
-      for (
-        var nodes = root.querySelectorAll(
-            "link[data-precedence],style[data-precedence]"
-          ),
-          i = 0;
-        i < nodes.length;
-        i++
-      ) {
-        var node = nodes[i];
-        if (
-          "LINK" === node.nodeName ||
-          "not all" !== node.getAttribute("media")
-        )
-          precedences.set(node.dataset.precedence, node), (last = node);
-      }
-      last && precedences.set(null, last);
-    }
-    nodes = resource.instance;
-    node = nodes.getAttribute("data-precedence");
-    i = precedences.get(node) || last;
-    i === last && precedences.set(null, nodes);
-    precedences.set(node, nodes);
-    this.count++;
-    last = onUnsuspend.bind(this);
-    nodes.addEventListener("load", last);
-    nodes.addEventListener("error", last);
-    i
-      ? i.parentNode.insertBefore(nodes, i.nextSibling)
-      : ((root = 9 === root.nodeType ? root.head : root),
-        root.insertBefore(nodes, root.firstChild));
-    resource.state.loading |= 4;
-  }
-}
-var HostTransitionContext = {
-  $$typeof: REACT_CONTEXT_TYPE,
-  Provider: null,
-  Consumer: null,
-  _currentValue: sharedNotPendingObject,
-  _currentValue2: sharedNotPendingObject,
-  _threadCount: 0
-};
-function FiberRootNode(
-  containerInfo,
-  tag,
-  hydrate,
-  identifierPrefix,
-  onUncaughtError,
-  onCaughtError,
-  onRecoverableError,
-  onDefaultTransitionIndicator,
-  formState
-) {
-  this.tag = 1;
-  this.containerInfo = containerInfo;
-  this.pingCache = this.current = this.pendingChildren = null;
-  this.timeoutHandle = -1;
-  this.callbackNode =
-    this.next =
-    this.pendingContext =
-    this.context =
-    this.cancelPendingCommit =
-      null;
-  this.callbackPriority = 0;
-  this.expirationTimes = createLaneMap(-1);
-  this.entangledLanes =
-    this.shellSuspendCounter =
-    this.errorRecoveryDisabledLanes =
-    this.expiredLanes =
-    this.warmLanes =
-    this.pingedLanes =
-    this.suspendedLanes =
-    this.pendingLanes =
-      0;
-  this.entanglements = createLaneMap(0);
-  this.hiddenUpdates = createLaneMap(null);
-  this.identifierPrefix = identifierPrefix;
-  this.onUncaughtError = onUncaughtError;
-  this.onCaughtError = onCaughtError;
-  this.onRecoverableError = onRecoverableError;
-  this.pooledCache = null;
-  this.pooledCacheLanes = 0;
-  this.formState = formState;
-  this.incompleteTransitions = new Map();
-  this.passiveEffectDuration = this.effectDuration = -0;
-  this.memoizedUpdaters = new Set();
-  containerInfo = this.pendingUpdatersLaneMap = [];
-  for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set());
-}
-function createFiberRoot(
-  containerInfo,
-  tag,
-  hydrate,
-  initialChildren,
-  hydrationCallbacks,
-  isStrictMode,
-  identifierPrefix,
-  formState,
-  onUncaughtError,
-  onCaughtError,
-  onRecoverableError,
-  onDefaultTransitionIndicator
-) {
-  containerInfo = new FiberRootNode(
-    containerInfo,
-    tag,
-    hydrate,
-    identifierPrefix,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    onDefaultTransitionIndicator,
-    formState
-  );
-  tag = 1;
-  !0 === isStrictMode && (tag |= 24);
-  isDevToolsPresent && (tag |= 2);
-  isStrictMode = createFiberImplClass(3, null, null, tag);
-  containerInfo.current = isStrictMode;
-  isStrictMode.stateNode = containerInfo;
-  tag = createCache();
-  tag.refCount++;
-  containerInfo.pooledCache = tag;
-  tag.refCount++;
-  isStrictMode.memoizedState = {
-    element: initialChildren,
-    isDehydrated: hydrate,
-    cache: tag
-  };
-  initializeUpdateQueue(isStrictMode);
-  return containerInfo;
-}
-function createPortal$1(children, containerInfo, implementation) {
-  var key =
-    3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
-  return {
-    $$typeof: REACT_PORTAL_TYPE,
-    key: null == key ? null : "" + key,
-    children: children,
-    containerInfo: containerInfo,
-    implementation: implementation
-  };
-}
-function getContextForSubtree(parentComponent) {
-  if (!parentComponent) return emptyContextObject;
-  parentComponent = emptyContextObject;
-  return parentComponent;
-}
-function updateContainerImpl(
-  rootFiber,
-  lane,
-  element,
-  container,
-  parentComponent,
-  callback
-) {
-  parentComponent = getContextForSubtree(parentComponent);
-  null === container.context
-    ? (container.context = parentComponent)
-    : (container.pendingContext = parentComponent);
-  container = createUpdate(lane);
-  container.payload = { element: element };
-  callback = void 0 === callback ? null : callback;
-  null !== callback && (container.callback = callback);
-  element = enqueueUpdate(rootFiber, container, lane);
-  null !== element &&
-    (startUpdateTimerByLane(lane),
-    scheduleUpdateOnFiber(element, rootFiber, lane),
-    entangleTransitions(element, rootFiber, lane));
-}
-function markRetryLaneImpl(fiber, retryLane) {
-  fiber = fiber.memoizedState;
-  if (null !== fiber && null !== fiber.dehydrated) {
-    var a = fiber.retryLane;
-    fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;
-  }
-}
-function markRetryLaneIfNotHydrated(fiber, retryLane) {
-  markRetryLaneImpl(fiber, retryLane);
-  (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);
-}
-function attemptContinuousHydration(fiber) {
-  if (13 === fiber.tag || 31 === fiber.tag) {
-    var root = enqueueConcurrentRenderForLane(fiber, 67108864);
-    null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);
-    markRetryLaneIfNotHydrated(fiber, 67108864);
-  }
-}
-function attemptHydrationAtCurrentPriority(fiber) {
-  if (13 === fiber.tag || 31 === fiber.tag) {
-    var lane = requestUpdateLane();
-    lane = getBumpedLaneForHydrationByLane(lane);
-    var root = enqueueConcurrentRenderForLane(fiber, lane);
-    null !== root && scheduleUpdateOnFiber(root, fiber, lane);
-    markRetryLaneIfNotHydrated(fiber, lane);
-  }
-}
-var _enabled = !0;
-function dispatchDiscreteEvent(
-  domEventName,
-  eventSystemFlags,
-  container,
-  nativeEvent
-) {
-  var prevTransition = ReactSharedInternals.T;
-  ReactSharedInternals.T = null;
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    (ReactDOMSharedInternals.p = 2),
-      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function dispatchContinuousEvent(
-  domEventName,
-  eventSystemFlags,
-  container,
-  nativeEvent
-) {
-  var prevTransition = ReactSharedInternals.T;
-  ReactSharedInternals.T = null;
-  var previousPriority = ReactDOMSharedInternals.p;
-  try {
-    (ReactDOMSharedInternals.p = 8),
-      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);
-  } finally {
-    (ReactDOMSharedInternals.p = previousPriority),
-      (ReactSharedInternals.T = prevTransition);
-  }
-}
-function dispatchEvent(
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  if (_enabled) {
-    var blockedOn = findInstanceBlockingEvent(nativeEvent);
-    if (null === blockedOn)
-      dispatchEventForPluginEventSystem(
-        domEventName,
-        eventSystemFlags,
-        nativeEvent,
-        return_targetInst,
-        targetContainer
-      ),
-        clearIfContinuousEvent(domEventName, nativeEvent);
-    else if (
-      queueIfContinuousEvent(
-        blockedOn,
-        domEventName,
-        eventSystemFlags,
-        targetContainer,
-        nativeEvent
-      )
-    )
-      nativeEvent.stopPropagation();
-    else if (
-      (clearIfContinuousEvent(domEventName, nativeEvent),
-      eventSystemFlags & 4 &&
-        -1 < discreteReplayableEvents.indexOf(domEventName))
-    ) {
-      for (; null !== blockedOn; ) {
-        var fiber = getInstanceFromNode(blockedOn);
-        if (null !== fiber)
-          switch (fiber.tag) {
-            case 3:
-              fiber = fiber.stateNode;
-              if (fiber.current.memoizedState.isDehydrated) {
-                var lanes = getHighestPriorityLanes(fiber.pendingLanes);
-                if (0 !== lanes) {
-                  var root = fiber;
-                  root.pendingLanes |= 2;
-                  for (root.entangledLanes |= 2; lanes; ) {
-                    var lane = 1 << (31 - clz32(lanes));
-                    root.entanglements[1] |= lane;
-                    lanes &= ~lane;
-                  }
-                  ensureRootIsScheduled(fiber);
-                  0 === (executionContext & 6) &&
-                    ((workInProgressRootRenderTargetTime = now$1() + 500),
-                    flushSyncWorkAcrossRoots_impl(0, !1));
-                }
-              }
-              break;
-            case 31:
-            case 13:
-              (root = enqueueConcurrentRenderForLane(fiber, 2)),
-                null !== root && scheduleUpdateOnFiber(root, fiber, 2),
-                flushSyncWork$1(),
-                markRetryLaneIfNotHydrated(fiber, 2);
-          }
-        fiber = findInstanceBlockingEvent(nativeEvent);
-        null === fiber &&
-          dispatchEventForPluginEventSystem(
-            domEventName,
-            eventSystemFlags,
-            nativeEvent,
-            return_targetInst,
-            targetContainer
-          );
-        if (fiber === blockedOn) break;
-        blockedOn = fiber;
-      }
-      null !== blockedOn && nativeEvent.stopPropagation();
-    } else
-      dispatchEventForPluginEventSystem(
-        domEventName,
-        eventSystemFlags,
-        nativeEvent,
-        null,
-        targetContainer
-      );
-  }
-}
-function findInstanceBlockingEvent(nativeEvent) {
-  nativeEvent = getEventTarget(nativeEvent);
-  return findInstanceBlockingTarget(nativeEvent);
-}
-var return_targetInst = null;
-function findInstanceBlockingTarget(targetNode) {
-  return_targetInst = null;
-  targetNode = getClosestInstanceFromNode(targetNode);
-  if (null !== targetNode) {
-    var nearestMounted = getNearestMountedFiber(targetNode);
-    if (null === nearestMounted) targetNode = null;
-    else {
-      var tag = nearestMounted.tag;
-      if (13 === tag) {
-        targetNode = getSuspenseInstanceFromFiber(nearestMounted);
-        if (null !== targetNode) return targetNode;
-        targetNode = null;
-      } else if (31 === tag) {
-        targetNode = getActivityInstanceFromFiber(nearestMounted);
-        if (null !== targetNode) return targetNode;
-        targetNode = null;
-      } else if (3 === tag) {
-        if (nearestMounted.stateNode.current.memoizedState.isDehydrated)
-          return 3 === nearestMounted.tag
-            ? nearestMounted.stateNode.containerInfo
-            : null;
-        targetNode = null;
-      } else nearestMounted !== targetNode && (targetNode = null);
-    }
-  }
-  return_targetInst = targetNode;
-  return null;
-}
-function getEventPriority(domEventName) {
-  switch (domEventName) {
-    case "beforetoggle":
-    case "cancel":
-    case "click":
-    case "close":
-    case "contextmenu":
-    case "copy":
-    case "cut":
-    case "auxclick":
-    case "dblclick":
-    case "dragend":
-    case "dragstart":
-    case "drop":
-    case "focusin":
-    case "focusout":
-    case "input":
-    case "invalid":
-    case "keydown":
-    case "keypress":
-    case "keyup":
-    case "mousedown":
-    case "mouseup":
-    case "paste":
-    case "pause":
-    case "play":
-    case "pointercancel":
-    case "pointerdown":
-    case "pointerup":
-    case "ratechange":
-    case "reset":
-    case "resize":
-    case "seeked":
-    case "submit":
-    case "toggle":
-    case "touchcancel":
-    case "touchend":
-    case "touchstart":
-    case "volumechange":
-    case "change":
-    case "selectionchange":
-    case "textInput":
-    case "compositionstart":
-    case "compositionend":
-    case "compositionupdate":
-    case "beforeblur":
-    case "afterblur":
-    case "beforeinput":
-    case "blur":
-    case "fullscreenchange":
-    case "focus":
-    case "hashchange":
-    case "popstate":
-    case "select":
-    case "selectstart":
-      return 2;
-    case "drag":
-    case "dragenter":
-    case "dragexit":
-    case "dragleave":
-    case "dragover":
-    case "mousemove":
-    case "mouseout":
-    case "mouseover":
-    case "pointermove":
-    case "pointerout":
-    case "pointerover":
-    case "scroll":
-    case "touchmove":
-    case "wheel":
-    case "mouseenter":
-    case "mouseleave":
-    case "pointerenter":
-    case "pointerleave":
-      return 8;
-    case "message":
-      switch (getCurrentPriorityLevel()) {
-        case ImmediatePriority:
-          return 2;
-        case UserBlockingPriority:
-          return 8;
-        case NormalPriority$1:
-        case LowPriority:
-          return 32;
-        case IdlePriority:
-          return 268435456;
-        default:
-          return 32;
-      }
-    default:
-      return 32;
-  }
-}
-var hasScheduledReplayAttempt = !1,
-  queuedFocus = null,
-  queuedDrag = null,
-  queuedMouse = null,
-  queuedPointers = new Map(),
-  queuedPointerCaptures = new Map(),
-  queuedExplicitHydrationTargets = [],
-  discreteReplayableEvents =
-    "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(
-      " "
-    );
-function clearIfContinuousEvent(domEventName, nativeEvent) {
-  switch (domEventName) {
-    case "focusin":
-    case "focusout":
-      queuedFocus = null;
-      break;
-    case "dragenter":
-    case "dragleave":
-      queuedDrag = null;
-      break;
-    case "mouseover":
-    case "mouseout":
-      queuedMouse = null;
-      break;
-    case "pointerover":
-    case "pointerout":
-      queuedPointers.delete(nativeEvent.pointerId);
-      break;
-    case "gotpointercapture":
-    case "lostpointercapture":
-      queuedPointerCaptures.delete(nativeEvent.pointerId);
-  }
-}
-function accumulateOrCreateContinuousQueuedReplayableEvent(
-  existingQueuedEvent,
-  blockedOn,
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  if (
-    null === existingQueuedEvent ||
-    existingQueuedEvent.nativeEvent !== nativeEvent
-  )
-    return (
-      (existingQueuedEvent = {
-        blockedOn: blockedOn,
-        domEventName: domEventName,
-        eventSystemFlags: eventSystemFlags,
-        nativeEvent: nativeEvent,
-        targetContainers: [targetContainer]
-      }),
-      null !== blockedOn &&
-        ((blockedOn = getInstanceFromNode(blockedOn)),
-        null !== blockedOn && attemptContinuousHydration(blockedOn)),
-      existingQueuedEvent
-    );
-  existingQueuedEvent.eventSystemFlags |= eventSystemFlags;
-  blockedOn = existingQueuedEvent.targetContainers;
-  null !== targetContainer &&
-    -1 === blockedOn.indexOf(targetContainer) &&
-    blockedOn.push(targetContainer);
-  return existingQueuedEvent;
-}
-function queueIfContinuousEvent(
-  blockedOn,
-  domEventName,
-  eventSystemFlags,
-  targetContainer,
-  nativeEvent
-) {
-  switch (domEventName) {
-    case "focusin":
-      return (
-        (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedFocus,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "dragenter":
-      return (
-        (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedDrag,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "mouseover":
-      return (
-        (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedMouse,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )),
-        !0
-      );
-    case "pointerover":
-      var pointerId = nativeEvent.pointerId;
-      queuedPointers.set(
-        pointerId,
-        accumulateOrCreateContinuousQueuedReplayableEvent(
-          queuedPointers.get(pointerId) || null,
-          blockedOn,
-          domEventName,
-          eventSystemFlags,
-          targetContainer,
-          nativeEvent
-        )
-      );
-      return !0;
-    case "gotpointercapture":
-      return (
-        (pointerId = nativeEvent.pointerId),
-        queuedPointerCaptures.set(
-          pointerId,
-          accumulateOrCreateContinuousQueuedReplayableEvent(
-            queuedPointerCaptures.get(pointerId) || null,
-            blockedOn,
-            domEventName,
-            eventSystemFlags,
-            targetContainer,
-            nativeEvent
-          )
-        ),
-        !0
-      );
-  }
-  return !1;
-}
-function attemptExplicitHydrationTarget(queuedTarget) {
-  var targetInst = getClosestInstanceFromNode(queuedTarget.target);
-  if (null !== targetInst) {
-    var nearestMounted = getNearestMountedFiber(targetInst);
-    if (null !== nearestMounted)
-      if (((targetInst = nearestMounted.tag), 13 === targetInst)) {
-        if (
-          ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),
-          null !== targetInst)
-        ) {
-          queuedTarget.blockedOn = targetInst;
-          runWithPriority(queuedTarget.priority, function () {
-            attemptHydrationAtCurrentPriority(nearestMounted);
-          });
-          return;
-        }
-      } else if (31 === targetInst) {
-        if (
-          ((targetInst = getActivityInstanceFromFiber(nearestMounted)),
-          null !== targetInst)
-        ) {
-          queuedTarget.blockedOn = targetInst;
-          runWithPriority(queuedTarget.priority, function () {
-            attemptHydrationAtCurrentPriority(nearestMounted);
-          });
-          return;
-        }
-      } else if (
-        3 === targetInst &&
-        nearestMounted.stateNode.current.memoizedState.isDehydrated
-      ) {
-        queuedTarget.blockedOn =
-          3 === nearestMounted.tag
-            ? nearestMounted.stateNode.containerInfo
-            : null;
-        return;
-      }
-  }
-  queuedTarget.blockedOn = null;
-}
-function attemptReplayContinuousQueuedEvent(queuedEvent) {
-  if (null !== queuedEvent.blockedOn) return !1;
-  for (
-    var targetContainers = queuedEvent.targetContainers;
-    0 < targetContainers.length;
-
-  ) {
-    var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);
-    if (null === nextBlockedOn) {
-      nextBlockedOn = queuedEvent.nativeEvent;
-      var nativeEventClone = new nextBlockedOn.constructor(
-        nextBlockedOn.type,
-        nextBlockedOn
-      );
-      currentReplayingEvent = nativeEventClone;
-      nextBlockedOn.target.dispatchEvent(nativeEventClone);
-      currentReplayingEvent = null;
-    } else
-      return (
-        (targetContainers = getInstanceFromNode(nextBlockedOn)),
-        null !== targetContainers &&
-          attemptContinuousHydration(targetContainers),
-        (queuedEvent.blockedOn = nextBlockedOn),
-        !1
-      );
-    targetContainers.shift();
-  }
-  return !0;
-}
-function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {
-  attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);
-}
-function replayUnblockedEvents() {
-  hasScheduledReplayAttempt = !1;
-  null !== queuedFocus &&
-    attemptReplayContinuousQueuedEvent(queuedFocus) &&
-    (queuedFocus = null);
-  null !== queuedDrag &&
-    attemptReplayContinuousQueuedEvent(queuedDrag) &&
-    (queuedDrag = null);
-  null !== queuedMouse &&
-    attemptReplayContinuousQueuedEvent(queuedMouse) &&
-    (queuedMouse = null);
-  queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);
-  queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);
-}
-function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {
-  queuedEvent.blockedOn === unblocked &&
-    ((queuedEvent.blockedOn = null),
-    hasScheduledReplayAttempt ||
-      ((hasScheduledReplayAttempt = !0),
-      Scheduler.unstable_scheduleCallback(
-        Scheduler.unstable_NormalPriority,
-        replayUnblockedEvents
-      )));
-}
-var lastScheduledReplayQueue = null;
-function scheduleReplayQueueIfNeeded(formReplayingQueue) {
-  lastScheduledReplayQueue !== formReplayingQueue &&
-    ((lastScheduledReplayQueue = formReplayingQueue),
-    Scheduler.unstable_scheduleCallback(
-      Scheduler.unstable_NormalPriority,
-      function () {
-        lastScheduledReplayQueue === formReplayingQueue &&
-          (lastScheduledReplayQueue = null);
-        for (var i = 0; i < formReplayingQueue.length; i += 3) {
-          var form = formReplayingQueue[i],
-            submitterOrAction = formReplayingQueue[i + 1],
-            formData = formReplayingQueue[i + 2];
-          if ("function" !== typeof submitterOrAction)
-            if (null === findInstanceBlockingTarget(submitterOrAction || form))
-              continue;
-            else break;
-          var formInst = getInstanceFromNode(form);
-          null !== formInst &&
-            (formReplayingQueue.splice(i, 3),
-            (i -= 3),
-            startHostTransition(
-              formInst,
-              {
-                pending: !0,
-                data: formData,
-                method: form.method,
-                action: submitterOrAction
-              },
-              submitterOrAction,
-              formData
-            ));
-        }
-      }
-    ));
-}
-function retryIfBlockedOn(unblocked) {
-  function unblock(queuedEvent) {
-    return scheduleCallbackIfUnblocked(queuedEvent, unblocked);
-  }
-  null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);
-  null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);
-  null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);
-  queuedPointers.forEach(unblock);
-  queuedPointerCaptures.forEach(unblock);
-  for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {
-    var queuedTarget = queuedExplicitHydrationTargets[i];
-    queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);
-  }
-  for (
-    ;
-    0 < queuedExplicitHydrationTargets.length &&
-    ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);
-
-  )
-    attemptExplicitHydrationTarget(i),
-      null === i.blockedOn && queuedExplicitHydrationTargets.shift();
-  i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;
-  if (null != i)
-    for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {
-      var form = i[queuedTarget],
-        submitterOrAction = i[queuedTarget + 1],
-        formProps = form[internalPropsKey] || null;
-      if ("function" === typeof submitterOrAction)
-        formProps || scheduleReplayQueueIfNeeded(i);
-      else if (formProps) {
-        var action = null;
-        if (submitterOrAction && submitterOrAction.hasAttribute("formAction"))
-          if (
-            ((form = submitterOrAction),
-            (formProps = submitterOrAction[internalPropsKey] || null))
-          )
-            action = formProps.formAction;
-          else {
-            if (null !== findInstanceBlockingTarget(form)) continue;
-          }
-        else action = formProps.action;
-        "function" === typeof action
-          ? (i[queuedTarget + 1] = action)
-          : (i.splice(queuedTarget, 3), (queuedTarget -= 3));
-        scheduleReplayQueueIfNeeded(i);
-      }
-    }
-}
-function defaultOnDefaultTransitionIndicator() {
-  function handleNavigate(event) {
-    event.canIntercept &&
-      "react-transition" === event.info &&
-      event.intercept({
-        handler: function () {
-          return new Promise(function (resolve) {
-            return (pendingResolve = resolve);
-          });
-        },
-        focusReset: "manual",
-        scroll: "manual"
-      });
-  }
-  function handleNavigateComplete() {
-    null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-    isCancelled || setTimeout(startFakeNavigation, 20);
-  }
-  function startFakeNavigation() {
-    if (!isCancelled && !navigation.transition) {
-      var currentEntry = navigation.currentEntry;
-      currentEntry &&
-        null != currentEntry.url &&
-        navigation.navigate(currentEntry.url, {
-          state: currentEntry.getState(),
-          info: "react-transition",
-          history: "replace"
-        });
-    }
-  }
-  if ("object" === typeof navigation) {
-    var isCancelled = !1,
-      pendingResolve = null;
-    navigation.addEventListener("navigate", handleNavigate);
-    navigation.addEventListener("navigatesuccess", handleNavigateComplete);
-    navigation.addEventListener("navigateerror", handleNavigateComplete);
-    setTimeout(startFakeNavigation, 100);
-    return function () {
-      isCancelled = !0;
-      navigation.removeEventListener("navigate", handleNavigate);
-      navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
-      navigation.removeEventListener("navigateerror", handleNavigateComplete);
-      null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
-    };
-  }
-}
-function ReactDOMRoot(internalRoot) {
-  this._internalRoot = internalRoot;
-}
-ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =
-  function (children) {
-    var root = this._internalRoot;
-    if (null === root) throw Error(formatProdErrorMessage(409));
-    var current = root.current,
-      lane = requestUpdateLane();
-    updateContainerImpl(current, lane, children, root, null, null);
-  };
-ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =
-  function () {
-    var root = this._internalRoot;
-    if (null !== root) {
-      this._internalRoot = null;
-      var container = root.containerInfo;
-      updateContainerImpl(root.current, 2, null, root, null, null);
-      flushSyncWork$1();
-      container[internalContainerInstanceKey] = null;
-    }
-  };
-function ReactDOMHydrationRoot(internalRoot) {
-  this._internalRoot = internalRoot;
-}
-ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
-  if (target) {
-    var updatePriority = resolveUpdatePriority();
-    target = { blockedOn: null, target: target, priority: updatePriority };
-    for (
-      var i = 0;
-      i < queuedExplicitHydrationTargets.length &&
-      0 !== updatePriority &&
-      updatePriority < queuedExplicitHydrationTargets[i].priority;
-      i++
-    );
-    queuedExplicitHydrationTargets.splice(i, 0, target);
-    0 === i && attemptExplicitHydrationTarget(target);
-  }
-};
-var isomorphicReactPackageVersion$jscomp$inline_2138 = React.version;
-if (
-  "19.2.3" !==
-  isomorphicReactPackageVersion$jscomp$inline_2138
-)
-  throw Error(
-    formatProdErrorMessage(
-      527,
-      isomorphicReactPackageVersion$jscomp$inline_2138,
-      "19.2.3"
-    )
-  );
-ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
-  var fiber = componentOrElement._reactInternals;
-  if (void 0 === fiber) {
-    if ("function" === typeof componentOrElement.render)
-      throw Error(formatProdErrorMessage(188));
-    componentOrElement = Object.keys(componentOrElement).join(",");
-    throw Error(formatProdErrorMessage(268, componentOrElement));
-  }
-  componentOrElement = findCurrentFiberUsingSlowPath(fiber);
-  componentOrElement =
-    null !== componentOrElement
-      ? findCurrentHostFiberImpl(componentOrElement)
-      : null;
-  componentOrElement =
-    null === componentOrElement ? null : componentOrElement.stateNode;
-  return componentOrElement;
-};
-var internals$jscomp$inline_2658 = {
-  bundleType: 0,
-  version: "19.2.3",
-  rendererPackageName: "react-dom",
-  currentDispatcherRef: ReactSharedInternals,
-  reconcilerVersion: "19.2.3"
-};
-if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
-  var hook$jscomp$inline_2659 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
-  if (
-    !hook$jscomp$inline_2659.isDisabled &&
-    hook$jscomp$inline_2659.supportsFiber
-  )
-    try {
-      (rendererID = hook$jscomp$inline_2659.inject(
-        internals$jscomp$inline_2658
-      )),
-        (injectedHook = hook$jscomp$inline_2659);
-    } catch (err) {}
-}
-function getCrossOriginStringAs(as, input) {
-  if ("font" === as) return "";
-  if ("string" === typeof input)
-    return "use-credentials" === input ? input : "";
-}
-exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = {
-  d: {
-    f: noop$1,
-    r: function () {
-      throw Error(formatProdErrorMessage(522));
-    },
-    D: noop$1,
-    C: noop$1,
-    L: noop$1,
-    m: noop$1,
-    X: noop$1,
-    S: noop$1,
-    M: noop$1
-  },
-  p: 0,
-  findDOMNode: null
-};
-exports.createPortal = function (children, container) {
-  var key =
-    2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
-  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));
-  return createPortal$1(children, container, null, key);
-};
-exports.createRoot = function (container, options) {
-  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));
-  var isStrictMode = !1,
-    identifierPrefix = "",
-    onUncaughtError = defaultOnUncaughtError,
-    onCaughtError = defaultOnCaughtError,
-    onRecoverableError = defaultOnRecoverableError;
-  null !== options &&
-    void 0 !== options &&
-    (!0 === options.unstable_strictMode && (isStrictMode = !0),
-    void 0 !== options.identifierPrefix &&
-      (identifierPrefix = options.identifierPrefix),
-    void 0 !== options.onUncaughtError &&
-      (onUncaughtError = options.onUncaughtError),
-    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),
-    void 0 !== options.onRecoverableError &&
-      (onRecoverableError = options.onRecoverableError));
-  options = createFiberRoot(
-    container,
-    1,
-    !1,
-    null,
-    null,
-    isStrictMode,
-    identifierPrefix,
-    null,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    defaultOnDefaultTransitionIndicator
-  );
-  container[internalContainerInstanceKey] = options.current;
-  listenToAllSupportedEvents(container);
-  return new ReactDOMRoot(options);
-};
-exports.flushSync = function (fn) {
-  var previousTransition = ReactSharedInternals.T,
-    previousUpdatePriority = ReactDOMSharedInternals.p;
-  try {
-    if (((ReactSharedInternals.T = null), (ReactDOMSharedInternals.p = 2), fn))
-      return fn();
-  } finally {
-    (ReactSharedInternals.T = previousTransition),
-      (ReactDOMSharedInternals.p = previousUpdatePriority),
-      ReactDOMSharedInternals.d.f();
-  }
-};
-exports.hydrateRoot = function (container, initialChildren, options) {
-  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));
-  var isStrictMode = !1,
-    identifierPrefix = "",
-    onUncaughtError = defaultOnUncaughtError,
-    onCaughtError = defaultOnCaughtError,
-    onRecoverableError = defaultOnRecoverableError,
-    formState = null;
-  null !== options &&
-    void 0 !== options &&
-    (!0 === options.unstable_strictMode && (isStrictMode = !0),
-    void 0 !== options.identifierPrefix &&
-      (identifierPrefix = options.identifierPrefix),
-    void 0 !== options.onUncaughtError &&
-      (onUncaughtError = options.onUncaughtError),
-    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),
-    void 0 !== options.onRecoverableError &&
-      (onRecoverableError = options.onRecoverableError),
-    void 0 !== options.formState && (formState = options.formState));
-  initialChildren = createFiberRoot(
-    container,
-    1,
-    !0,
-    initialChildren,
-    null != options ? options : null,
-    isStrictMode,
-    identifierPrefix,
-    formState,
-    onUncaughtError,
-    onCaughtError,
-    onRecoverableError,
-    defaultOnDefaultTransitionIndicator
-  );
-  initialChildren.context = getContextForSubtree(null);
-  options = initialChildren.current;
-  isStrictMode = requestUpdateLane();
-  isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);
-  identifierPrefix = createUpdate(isStrictMode);
-  identifierPrefix.callback = null;
-  enqueueUpdate(options, identifierPrefix, isStrictMode);
-  startUpdateTimerByLane(isStrictMode);
-  options = isStrictMode;
-  initialChildren.current.lanes = options;
-  markRootUpdated$1(initialChildren, options);
-  ensureRootIsScheduled(initialChildren);
-  container[internalContainerInstanceKey] = initialChildren.current;
-  listenToAllSupportedEvents(container);
-  return new ReactDOMHydrationRoot(initialChildren);
-};
-exports.preconnect = function (href, options) {
-  "string" === typeof href &&
-    (options
-      ? ((options = options.crossOrigin),
-        (options =
-          "string" === typeof options
-            ? "use-credentials" === options
-              ? options
-              : ""
-            : void 0))
-      : (options = null),
-    ReactDOMSharedInternals.d.C(href, options));
-};
-exports.prefetchDNS = function (href) {
-  "string" === typeof href && ReactDOMSharedInternals.d.D(href);
-};
-exports.preinit = function (href, options) {
-  if ("string" === typeof href && options && "string" === typeof options.as) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-      integrity =
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      fetchPriority =
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0;
-    "style" === as
-      ? ReactDOMSharedInternals.d.S(
-          href,
-          "string" === typeof options.precedence ? options.precedence : void 0,
-          {
-            crossOrigin: crossOrigin,
-            integrity: integrity,
-            fetchPriority: fetchPriority
-          }
-        )
-      : "script" === as &&
-        ReactDOMSharedInternals.d.X(href, {
-          crossOrigin: crossOrigin,
-          integrity: integrity,
-          fetchPriority: fetchPriority,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-  }
-};
-exports.preinitModule = function (href, options) {
-  if ("string" === typeof href)
-    if ("object" === typeof options && null !== options) {
-      if (null == options.as || "script" === options.as) {
-        var crossOrigin = getCrossOriginStringAs(
-          options.as,
-          options.crossOrigin
-        );
-        ReactDOMSharedInternals.d.M(href, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-      }
-    } else null == options && ReactDOMSharedInternals.d.M(href);
-};
-exports.preload = function (href, options) {
-  if (
-    "string" === typeof href &&
-    "object" === typeof options &&
-    null !== options &&
-    "string" === typeof options.as
-  ) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);
-    ReactDOMSharedInternals.d.L(href, as, {
-      crossOrigin: crossOrigin,
-      integrity:
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-      type: "string" === typeof options.type ? options.type : void 0,
-      fetchPriority:
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0,
-      referrerPolicy:
-        "string" === typeof options.referrerPolicy
-          ? options.referrerPolicy
-          : void 0,
-      imageSrcSet:
-        "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
-      imageSizes:
-        "string" === typeof options.imageSizes ? options.imageSizes : void 0,
-      media: "string" === typeof options.media ? options.media : void 0
-    });
-  }
-};
-exports.preloadModule = function (href, options) {
-  if ("string" === typeof href)
-    if (options) {
-      var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);
-      ReactDOMSharedInternals.d.m(href, {
-        as:
-          "string" === typeof options.as && "script" !== options.as
-            ? options.as
-            : void 0,
-        crossOrigin: crossOrigin,
-        integrity:
-          "string" === typeof options.integrity ? options.integrity : void 0
-      });
-    } else ReactDOMSharedInternals.d.m(href);
-};
-exports.requestFormReset = function (form) {
-  ReactDOMSharedInternals.d.r(form);
-};
-exports.unstable_batchedUpdates = function (fn, a) {
-  return fn(a);
-};
-exports.useFormState = function (action, initialState, permalink) {
-  return ReactSharedInternals.H.useFormState(action, initialState, permalink);
-};
-exports.useFormStatus = function () {
-  return ReactSharedInternals.H.useHostTransitionStatus();
-};
-exports.version = "19.2.3";
-"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-  "function" ===
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
Index: de_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9877 +1,0 @@
-/**
- * @license React
- * react-dom-server-legacy.browser.development.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function styleReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-    }
-    function scriptReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function objectName(object) {
-      object = Object.prototype.toString.call(object);
-      return object.slice(8, object.length - 1);
-    }
-    function describeKeyForErrorMessage(key) {
-      var encodedKey = JSON.stringify(key);
-      return '"' + key + '"' === encodedKey ? key : encodedKey;
-    }
-    function describeValueForErrorMessage(value) {
-      switch (typeof value) {
-        case "string":
-          return JSON.stringify(
-            10 >= value.length ? value : value.slice(0, 10) + "..."
-          );
-        case "object":
-          if (isArrayImpl(value)) return "[...]";
-          if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-            return "client";
-          value = objectName(value);
-          return "Object" === value ? "{...}" : value;
-        case "function":
-          return value.$$typeof === CLIENT_REFERENCE_TAG
-            ? "client"
-            : (value = value.displayName || value.name)
-              ? "function " + value
-              : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describeElementType(type) {
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-      }
-      if ("object" === typeof type)
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeElementType(type.render);
-          case REACT_MEMO_TYPE:
-            return describeElementType(type.type);
-          case REACT_LAZY_TYPE:
-            var payload = type._payload;
-            type = type._init;
-            try {
-              return describeElementType(type(payload));
-            } catch (x) {}
-        }
-      return "";
-    }
-    function describeObjectForErrorMessage(objectOrArray, expandedName) {
-      var objKind = objectName(objectOrArray);
-      if ("Object" !== objKind && "Array" !== objKind) return objKind;
-      var start = -1,
-        length = 0;
-      if (isArrayImpl(objectOrArray))
-        if (jsxChildrenParents.has(objectOrArray)) {
-          var type = jsxChildrenParents.get(objectOrArray);
-          objKind = "<" + describeElementType(type) + ">";
-          for (var i = 0; i < objectOrArray.length; i++) {
-            var value = objectOrArray[i];
-            value =
-              "string" === typeof value
-                ? value
-                : "object" === typeof value && null !== value
-                  ? "{" + describeObjectForErrorMessage(value) + "}"
-                  : "{" + describeValueForErrorMessage(value) + "}";
-            "" + i === expandedName
-              ? ((start = objKind.length),
-                (length = value.length),
-                (objKind += value))
-              : (objKind =
-                  15 > value.length && 40 > objKind.length + value.length
-                    ? objKind + value
-                    : objKind + "{...}");
-          }
-          objKind += "</" + describeElementType(type) + ">";
-        } else {
-          objKind = "[";
-          for (type = 0; type < objectOrArray.length; type++)
-            0 < type && (objKind += ", "),
-              (i = objectOrArray[type]),
-              (i =
-                "object" === typeof i && null !== i
-                  ? describeObjectForErrorMessage(i)
-                  : describeValueForErrorMessage(i)),
-              "" + type === expandedName
-                ? ((start = objKind.length),
-                  (length = i.length),
-                  (objKind += i))
-                : (objKind =
-                    10 > i.length && 40 > objKind.length + i.length
-                      ? objKind + i
-                      : objKind + "...");
-          objKind += "]";
-        }
-      else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-        objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-      else {
-        if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-        if (jsxPropsParents.has(objectOrArray)) {
-          objKind = jsxPropsParents.get(objectOrArray);
-          objKind = "<" + (describeElementType(objKind) || "...");
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++) {
-            objKind += " ";
-            value = type[i];
-            objKind += describeKeyForErrorMessage(value) + "=";
-            var _value2 = objectOrArray[value];
-            var _substr2 =
-              value === expandedName &&
-              "object" === typeof _value2 &&
-              null !== _value2
-                ? describeObjectForErrorMessage(_value2)
-                : describeValueForErrorMessage(_value2);
-            "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-            value === expandedName
-              ? ((start = objKind.length),
-                (length = _substr2.length),
-                (objKind += _substr2))
-              : (objKind =
-                  10 > _substr2.length && 40 > objKind.length + _substr2.length
-                    ? objKind + _substr2
-                    : objKind + "...");
-          }
-          objKind += ">";
-        } else {
-          objKind = "{";
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++)
-            0 < i && (objKind += ", "),
-              (value = type[i]),
-              (objKind += describeKeyForErrorMessage(value) + ": "),
-              (_value2 = objectOrArray[value]),
-              (_value2 =
-                "object" === typeof _value2 && null !== _value2
-                  ? describeObjectForErrorMessage(_value2)
-                  : describeValueForErrorMessage(_value2)),
-              value === expandedName
-                ? ((start = objKind.length),
-                  (length = _value2.length),
-                  (objKind += _value2))
-                : (objKind =
-                    10 > _value2.length && 40 > objKind.length + _value2.length
-                      ? objKind + _value2
-                      : objKind + "...");
-          objKind += "}";
-        }
-      }
-      return void 0 === expandedName
-        ? objKind
-        : -1 < start && 0 < length
-          ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-            "\n  " + objKind + "\n  " + objectOrArray)
-          : "\n  " + objKind;
-    }
-    function murmurhash3_32_gc(key, seed) {
-      var remainder = key.length & 3;
-      var bytes = key.length - remainder;
-      var h1 = seed;
-      for (seed = 0; seed < bytes; ) {
-        var k1 =
-          (key.charCodeAt(seed) & 255) |
-          ((key.charCodeAt(++seed) & 255) << 8) |
-          ((key.charCodeAt(++seed) & 255) << 16) |
-          ((key.charCodeAt(++seed) & 255) << 24);
-        ++seed;
-        k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        k1 = (k1 << 15) | (k1 >>> 17);
-        k1 =
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        h1 ^= k1;
-        h1 = (h1 << 13) | (h1 >>> 19);
-        h1 =
-          (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-        h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-      }
-      k1 = 0;
-      switch (remainder) {
-        case 3:
-          k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-        case 2:
-          k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-        case 1:
-          (k1 ^= key.charCodeAt(seed) & 255),
-            (k1 =
-              (3432918353 * (k1 & 65535) +
-                (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295),
-            (k1 = (k1 << 15) | (k1 >>> 17)),
-            (h1 ^=
-              (461845907 * (k1 & 65535) +
-                (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295);
-      }
-      h1 ^= key.length;
-      h1 ^= h1 >>> 16;
-      h1 =
-        (2246822507 * (h1 & 65535) +
-          (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      h1 ^= h1 >>> 13;
-      h1 =
-        (3266489909 * (h1 & 65535) +
-          (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      return (h1 ^ (h1 >>> 16)) >>> 0;
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkHtmlStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function escapeTextForBrowser(text) {
-      if (
-        "boolean" === typeof text ||
-        "number" === typeof text ||
-        "bigint" === typeof text
-      )
-        return "" + text;
-      checkHtmlStringCoercion(text);
-      text = "" + text;
-      var match = matchHtmlRegExp.exec(text);
-      if (match) {
-        var html = "",
-          index,
-          lastIndex = 0;
-        for (index = match.index; index < text.length; index++) {
-          switch (text.charCodeAt(index)) {
-            case 34:
-              match = "&quot;";
-              break;
-            case 38:
-              match = "&amp;";
-              break;
-            case 39:
-              match = "&#x27;";
-              break;
-            case 60:
-              match = "&lt;";
-              break;
-            case 62:
-              match = "&gt;";
-              break;
-            default:
-              continue;
-          }
-          lastIndex !== index && (html += text.slice(lastIndex, index));
-          lastIndex = index + 1;
-          html += match;
-        }
-        text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-      }
-      return text;
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function escapeEntireInlineScriptContent(scriptText) {
-      checkHtmlStringCoercion(scriptText);
-      return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-    }
-    function createResumableState(
-      identifierPrefix,
-      externalRuntimeConfig,
-      bootstrapScriptContent,
-      bootstrapScripts,
-      bootstrapModules
-    ) {
-      return {
-        idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-        nextFormID: 0,
-        streamingFormat: 0,
-        bootstrapScriptContent: bootstrapScriptContent,
-        bootstrapScripts: bootstrapScripts,
-        bootstrapModules: bootstrapModules,
-        instructions: NothingSent,
-        hasBody: !1,
-        hasHtml: !1,
-        unknownResources: {},
-        dnsResources: {},
-        connectResources: { default: {}, anonymous: {}, credentials: {} },
-        imageResources: {},
-        styleResources: {},
-        scriptResources: {},
-        moduleUnknownResources: {},
-        moduleScriptResources: {}
-      };
-    }
-    function createFormatContext(
-      insertionMode,
-      selectedValue,
-      tagScope,
-      viewTransition
-    ) {
-      return {
-        insertionMode: insertionMode,
-        selectedValue: selectedValue,
-        tagScope: tagScope,
-        viewTransition: viewTransition
-      };
-    }
-    function getChildFormatContext(parentContext, type, props) {
-      var subtreeScope = parentContext.tagScope & -25;
-      switch (type) {
-        case "noscript":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-        case "select":
-          return createFormatContext(
-            HTML_MODE,
-            null != props.value ? props.value : props.defaultValue,
-            subtreeScope,
-            null
-          );
-        case "svg":
-          return createFormatContext(SVG_MODE, null, subtreeScope, null);
-        case "picture":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-        case "math":
-          return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-        case "foreignObject":
-          return createFormatContext(HTML_MODE, null, subtreeScope, null);
-        case "table":
-          return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-        case "thead":
-        case "tbody":
-        case "tfoot":
-          return createFormatContext(
-            HTML_TABLE_BODY_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "colgroup":
-          return createFormatContext(
-            HTML_COLGROUP_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "tr":
-          return createFormatContext(
-            HTML_TABLE_ROW_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "head":
-          if (parentContext.insertionMode < HTML_MODE)
-            return createFormatContext(
-              HTML_HEAD_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-          break;
-        case "html":
-          if (parentContext.insertionMode === ROOT_HTML_MODE)
-            return createFormatContext(
-              HTML_HTML_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-      }
-      return parentContext.insertionMode >= HTML_TABLE_MODE ||
-        parentContext.insertionMode < HTML_MODE
-        ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-        : parentContext.tagScope !== subtreeScope
-          ? createFormatContext(
-              parentContext.insertionMode,
-              parentContext.selectedValue,
-              subtreeScope,
-              null
-            )
-          : parentContext;
-    }
-    function getSuspenseViewTransition(parentViewTransition) {
-      return null === parentViewTransition
-        ? null
-        : {
-            update: parentViewTransition.update,
-            enter: "none",
-            exit: "none",
-            share: parentViewTransition.update,
-            name: parentViewTransition.autoName,
-            autoName: parentViewTransition.autoName,
-            nameIdx: 0
-          };
-    }
-    function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-      parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        parentContext.tagScope | 12,
-        getSuspenseViewTransition(parentContext.viewTransition)
-      );
-    }
-    function getSuspenseContentFormatContext(resumableState, parentContext) {
-      resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-      var subtreeScope = parentContext.tagScope | 16;
-      null !== resumableState &&
-        "none" !== resumableState.share &&
-        (subtreeScope |= 64);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        subtreeScope,
-        resumableState
-      );
-    }
-    function pushStyleAttribute(target, style) {
-      if ("object" !== typeof style)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      var isFirst = !0,
-        styleName;
-      for (styleName in style)
-        if (hasOwnProperty.call(style, styleName)) {
-          var styleValue = style[styleName];
-          if (
-            null != styleValue &&
-            "boolean" !== typeof styleValue &&
-            "" !== styleValue
-          ) {
-            if (0 === styleName.indexOf("--")) {
-              var nameChunk = escapeTextForBrowser(styleName);
-              checkCSSPropertyStringCoercion(styleValue, styleName);
-              styleValue = escapeTextForBrowser(("" + styleValue).trim());
-            } else {
-              nameChunk = styleName;
-              var value = styleValue;
-              if (-1 < nameChunk.indexOf("-")) {
-                var name = nameChunk;
-                (warnedStyleNames.hasOwnProperty(name) &&
-                  warnedStyleNames[name]) ||
-                  ((warnedStyleNames[name] = !0),
-                  console.error(
-                    "Unsupported style property %s. Did you mean %s?",
-                    name,
-                    camelize(name.replace(msPattern$1, "ms-"))
-                  ));
-              } else if (badVendoredStyleNamePattern.test(nameChunk))
-                (name = nameChunk),
-                  (warnedStyleNames.hasOwnProperty(name) &&
-                    warnedStyleNames[name]) ||
-                    ((warnedStyleNames[name] = !0),
-                    console.error(
-                      "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                      name,
-                      name.charAt(0).toUpperCase() + name.slice(1)
-                    ));
-              else if (badStyleValueWithSemicolonPattern.test(value)) {
-                name = nameChunk;
-                var value$jscomp$0 = value;
-                (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-                  warnedStyleValues[value$jscomp$0]) ||
-                  ((warnedStyleValues[value$jscomp$0] = !0),
-                  console.error(
-                    'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                    name,
-                    value$jscomp$0.replace(
-                      badStyleValueWithSemicolonPattern,
-                      ""
-                    )
-                  ));
-              }
-              "number" === typeof value &&
-                (isNaN(value)
-                  ? warnedForNaNValue ||
-                    ((warnedForNaNValue = !0),
-                    console.error(
-                      "`NaN` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    ))
-                  : isFinite(value) ||
-                    warnedForInfinityValue ||
-                    ((warnedForInfinityValue = !0),
-                    console.error(
-                      "`Infinity` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    )));
-              nameChunk = styleName;
-              value = styleNameCache.get(nameChunk);
-              void 0 !== value
-                ? (nameChunk = value)
-                : ((value = escapeTextForBrowser(
-                    nameChunk
-                      .replace(uppercasePattern, "-$1")
-                      .toLowerCase()
-                      .replace(msPattern, "-ms-")
-                  )),
-                  styleNameCache.set(nameChunk, value),
-                  (nameChunk = value));
-              "number" === typeof styleValue
-                ? (styleValue =
-                    0 === styleValue || unitlessNumbers.has(styleName)
-                      ? "" + styleValue
-                      : styleValue + "px")
-                : (checkCSSPropertyStringCoercion(styleValue, styleName),
-                  (styleValue = escapeTextForBrowser(
-                    ("" + styleValue).trim()
-                  )));
-            }
-            isFirst
-              ? ((isFirst = !1),
-                target.push(
-                  styleAttributeStart,
-                  nameChunk,
-                  styleAssign,
-                  styleValue
-                ))
-              : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-          }
-        }
-      isFirst || target.push(attributeEnd);
-    }
-    function pushBooleanAttribute(target, name, value) {
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(attributeSeparator, name, attributeEmptyString);
-    }
-    function pushStringAttribute(target, name, value) {
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        "boolean" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-    }
-    function pushAdditionalFormField(value, key) {
-      this.push('<input type="hidden"');
-      validateAdditionalFormField(value);
-      pushStringAttribute(this, "name", key);
-      pushStringAttribute(this, "value", value);
-      this.push(endOfStartTagSelfClosing);
-    }
-    function validateAdditionalFormField(value) {
-      if ("string" !== typeof value)
-        throw Error(
-          "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-        );
-    }
-    function getCustomFormFields(resumableState, formAction) {
-      if ("function" === typeof formAction.$$FORM_ACTION) {
-        var id = resumableState.nextFormID++;
-        resumableState = resumableState.idPrefix + id;
-        try {
-          var customFields = formAction.$$FORM_ACTION(resumableState);
-          if (customFields) {
-            var formData = customFields.data;
-            null != formData && formData.forEach(validateAdditionalFormField);
-          }
-          return customFields;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            "function" === typeof x.then
-          )
-            throw x;
-          console.error(
-            "Failed to serialize an action for progressive enhancement:\n%s",
-            x
-          );
-        }
-      }
-      return null;
-    }
-    function pushFormActionAttribute(
-      target,
-      resumableState,
-      renderState,
-      formAction,
-      formEncType,
-      formMethod,
-      formTarget,
-      name
-    ) {
-      var formData = null;
-      if ("function" === typeof formAction) {
-        null === name ||
-          didWarnFormActionName ||
-          ((didWarnFormActionName = !0),
-          console.error(
-            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-          ));
-        (null === formEncType && null === formMethod) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(resumableState, formAction);
-        null !== customFields
-          ? ((name = customFields.name),
-            (formAction = customFields.action || ""),
-            (formEncType = customFields.encType),
-            (formMethod = customFields.method),
-            (formTarget = customFields.target),
-            (formData = customFields.data))
-          : (target.push(
-              attributeSeparator,
-              "formAction",
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget = formMethod = formEncType = formAction = name = null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != name && pushAttribute(target, "name", name);
-      null != formAction && pushAttribute(target, "formAction", formAction);
-      null != formEncType && pushAttribute(target, "formEncType", formEncType);
-      null != formMethod && pushAttribute(target, "formMethod", formMethod);
-      null != formTarget && pushAttribute(target, "formTarget", formTarget);
-      return formData;
-    }
-    function pushAttribute(target, name, value) {
-      switch (name) {
-        case "className":
-          pushStringAttribute(target, "class", value);
-          break;
-        case "tabIndex":
-          pushStringAttribute(target, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          pushStringAttribute(target, name, value);
-          break;
-        case "style":
-          pushStyleAttribute(target, value);
-          break;
-        case "src":
-        case "href":
-          if ("" === value) {
-            "src" === name
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                );
-            break;
-          }
-        case "action":
-        case "formAction":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "ref":
-          break;
-        case "autoFocus":
-        case "multiple":
-        case "muted":
-          pushBooleanAttribute(target, name.toLowerCase(), value);
-          break;
-        case "xlinkHref":
-          if (
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            "xlink:href",
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[name] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              name
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(attributeSeparator, name, attributeEmptyString);
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? target.push(attributeSeparator, name, attributeEmptyString)
-            : !1 !== value &&
-              "function" !== typeof value &&
-              "symbol" !== typeof value &&
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            !isNaN(value) &&
-            1 <= value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "rowSpan":
-        case "start":
-          "function" === typeof value ||
-            "symbol" === typeof value ||
-            isNaN(value) ||
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "xlinkActuate":
-          pushStringAttribute(target, "xlink:actuate", value);
-          break;
-        case "xlinkArcrole":
-          pushStringAttribute(target, "xlink:arcrole", value);
-          break;
-        case "xlinkRole":
-          pushStringAttribute(target, "xlink:role", value);
-          break;
-        case "xlinkShow":
-          pushStringAttribute(target, "xlink:show", value);
-          break;
-        case "xlinkTitle":
-          pushStringAttribute(target, "xlink:title", value);
-          break;
-        case "xlinkType":
-          pushStringAttribute(target, "xlink:type", value);
-          break;
-        case "xmlBase":
-          pushStringAttribute(target, "xml:base", value);
-          break;
-        case "xmlLang":
-          pushStringAttribute(target, "xml:lang", value);
-          break;
-        case "xmlSpace":
-          pushStringAttribute(target, "xml:space", value);
-          break;
-        default:
-          if (
-            !(2 < name.length) ||
-            ("o" !== name[0] && "O" !== name[0]) ||
-            ("n" !== name[1] && "N" !== name[1])
-          )
-            if (
-              ((name = aliases.get(name) || name), isAttributeNameSafe(name))
-            ) {
-              switch (typeof value) {
-                case "function":
-                case "symbol":
-                  return;
-                case "boolean":
-                  var prefix = name.toLowerCase().slice(0, 5);
-                  if ("data-" !== prefix && "aria-" !== prefix) return;
-              }
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-            }
-      }
-    }
-    function pushInnerHTML(target, innerHTML, children) {
-      if (null != innerHTML) {
-        if (null != children)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        innerHTML = innerHTML.__html;
-        null !== innerHTML &&
-          void 0 !== innerHTML &&
-          (checkHtmlStringCoercion(innerHTML), target.push("" + innerHTML));
-      }
-    }
-    function checkSelectProp(props, propName) {
-      var value = props[propName];
-      null != value &&
-        ((value = isArrayImpl(value)),
-        props.multiple && !value
-          ? console.error(
-              "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-              propName
-            )
-          : !props.multiple &&
-            value &&
-            console.error(
-              "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-              propName
-            ));
-    }
-    function flattenOptionChildren(children) {
-      var content = "";
-      React.Children.forEach(children, function (child) {
-        null != child &&
-          ((content += child),
-          didWarnInvalidOptionChildren ||
-            "string" === typeof child ||
-            "number" === typeof child ||
-            "bigint" === typeof child ||
-            ((didWarnInvalidOptionChildren = !0),
-            console.error(
-              "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-            )));
-      });
-      return content;
-    }
-    function injectFormReplayingRuntime(resumableState, renderState) {
-      if ((resumableState.instructions & 16) === NothingSent) {
-        resumableState.instructions |= 16;
-        var preamble = renderState.preamble,
-          bootstrapChunks = renderState.bootstrapChunks;
-        (preamble.htmlChunks || preamble.headChunks) &&
-        0 === bootstrapChunks.length
-          ? (bootstrapChunks.push(renderState.startInlineScript),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            ))
-          : bootstrapChunks.unshift(
-              renderState.startInlineScript,
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            );
-      }
-    }
-    function pushLinkImpl(target, props) {
-      target.push(startChunkForTag("link"));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function escapeStyleTextContent(styleText) {
-      checkHtmlStringCoercion(styleText);
-      return ("" + styleText).replace(styleRegex, styleReplacer);
-    }
-    function pushSelfClosing(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  tag +
-                    " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function pushTitleImpl(target, props) {
-      target.push(startChunkForTag("title"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      props = Array.isArray(children)
-        ? 2 > children.length
-          ? children[0]
-          : null
-        : children;
-      "function" !== typeof props &&
-        "symbol" !== typeof props &&
-        null !== props &&
-        void 0 !== props &&
-        target.push(escapeTextForBrowser("" + props));
-      pushInnerHTML(target, innerHTML, children);
-      target.push(endChunkForTag("title"));
-      return null;
-    }
-    function pushScriptImpl(target, props) {
-      target.push(startChunkForTag("script"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      null != children &&
-        "string" !== typeof children &&
-        ((props =
-          "number" === typeof children
-            ? "a number for children"
-            : Array.isArray(children)
-              ? "an array for children"
-              : "something unexpected for children"),
-        console.error(
-          "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-          props
-        ));
-      pushInnerHTML(target, innerHTML, children);
-      "string" === typeof children &&
-        target.push(escapeEntireInlineScriptContent(children));
-      target.push(endChunkForTag("script"));
-      return null;
-    }
-    function pushStartSingletonElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return tag;
-    }
-    function pushStartGenericElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return "string" === typeof tag
-        ? (target.push(escapeTextForBrowser(tag)), null)
-        : tag;
-    }
-    function startChunkForTag(tag) {
-      var tagStartChunk = validatedTagCache.get(tag);
-      if (void 0 === tagStartChunk) {
-        if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-        tagStartChunk = "<" + tag;
-        validatedTagCache.set(tag, tagStartChunk);
-      }
-      return tagStartChunk;
-    }
-    function pushStartInstance(
-      target$jscomp$0,
-      type,
-      props,
-      resumableState,
-      renderState,
-      preambleState,
-      hoistableState,
-      formatContext,
-      textEmbedded
-    ) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-      else
-        switch (type) {
-          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":
-            JSCompiler_inline_result = !1;
-            break b;
-          default:
-            JSCompiler_inline_result = !0;
-        }
-      JSCompiler_inline_result ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, null);
-      !props.suppressContentEditableWarning &&
-        props.contentEditable &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-      formatContext.insertionMode !== SVG_MODE &&
-        formatContext.insertionMode !== MATHML_MODE &&
-        -1 === type.indexOf("-") &&
-        type.toLowerCase() !== type &&
-        console.error(
-          "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-          type
-        );
-      switch (type) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-          break;
-        case "a":
-          target$jscomp$0.push(startChunkForTag("a"));
-          var children = null,
-            innerHTML = null,
-            propKey;
-          for (propKey in props)
-            if (hasOwnProperty.call(props, propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "children":
-                    children = propValue;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML = propValue;
-                    break;
-                  case "href":
-                    "" === propValue
-                      ? pushStringAttribute(target$jscomp$0, "href", "")
-                      : pushAttribute(target$jscomp$0, propKey, propValue);
-                    break;
-                  default:
-                    pushAttribute(target$jscomp$0, propKey, propValue);
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML, children);
-          if ("string" === typeof children) {
-            target$jscomp$0.push(escapeTextForBrowser(children));
-            var JSCompiler_inline_result$jscomp$0 = null;
-          } else JSCompiler_inline_result$jscomp$0 = children;
-          return JSCompiler_inline_result$jscomp$0;
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          checkSelectProp(props, "value");
-          checkSelectProp(props, "defaultValue");
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultSelectValue ||
-            (console.error(
-              "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultSelectValue = !0));
-          target$jscomp$0.push(startChunkForTag("select"));
-          var children$jscomp$0 = null,
-            innerHTML$jscomp$0 = null,
-            propKey$jscomp$0;
-          for (propKey$jscomp$0 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-              var propValue$jscomp$0 = props[propKey$jscomp$0];
-              if (null != propValue$jscomp$0)
-                switch (propKey$jscomp$0) {
-                  case "children":
-                    children$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "defaultValue":
-                  case "value":
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$0,
-                      propValue$jscomp$0
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-          return children$jscomp$0;
-        case "option":
-          var selectedValue = formatContext.selectedValue;
-          target$jscomp$0.push(startChunkForTag("option"));
-          var children$jscomp$1 = null,
-            value = null,
-            selected = null,
-            innerHTML$jscomp$1 = null,
-            propKey$jscomp$1;
-          for (propKey$jscomp$1 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-              var propValue$jscomp$1 = props[propKey$jscomp$1];
-              if (null != propValue$jscomp$1)
-                switch (propKey$jscomp$1) {
-                  case "children":
-                    children$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "selected":
-                    selected = propValue$jscomp$1;
-                    didWarnSelectedSetOnOption ||
-                      (console.error(
-                        "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                      ),
-                      (didWarnSelectedSetOnOption = !0));
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "value":
-                    value = propValue$jscomp$1;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$1,
-                      propValue$jscomp$1
-                    );
-                }
-            }
-          if (null != selectedValue) {
-            if (null !== value) {
-              checkAttributeStringCoercion(value, "value");
-              var stringValue = "" + value;
-            } else
-              null === innerHTML$jscomp$1 ||
-                didWarnInvalidOptionInnerHTML ||
-                ((didWarnInvalidOptionInnerHTML = !0),
-                console.error(
-                  "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-                )),
-                (stringValue = flattenOptionChildren(children$jscomp$1));
-            if (isArrayImpl(selectedValue))
-              for (var i = 0; i < selectedValue.length; i++) {
-                if (
-                  (checkAttributeStringCoercion(selectedValue[i], "value"),
-                  "" + selectedValue[i] === stringValue)
-                ) {
-                  target$jscomp$0.push(' selected=""');
-                  break;
-                }
-              }
-            else
-              checkAttributeStringCoercion(selectedValue, "select.value"),
-                "" + selectedValue === stringValue &&
-                  target$jscomp$0.push(' selected=""');
-          } else selected && target$jscomp$0.push(' selected=""');
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-          return children$jscomp$1;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultTextareaValue ||
-            (console.error(
-              "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultTextareaValue = !0));
-          target$jscomp$0.push(startChunkForTag("textarea"));
-          var value$jscomp$0 = null,
-            defaultValue = null,
-            children$jscomp$2 = null,
-            propKey$jscomp$2;
-          for (propKey$jscomp$2 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-              var propValue$jscomp$2 = props[propKey$jscomp$2];
-              if (null != propValue$jscomp$2)
-                switch (propKey$jscomp$2) {
-                  case "children":
-                    children$jscomp$2 = propValue$jscomp$2;
-                    break;
-                  case "value":
-                    value$jscomp$0 = propValue$jscomp$2;
-                    break;
-                  case "defaultValue":
-                    defaultValue = propValue$jscomp$2;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$2,
-                      propValue$jscomp$2
-                    );
-                }
-            }
-          null === value$jscomp$0 &&
-            null !== defaultValue &&
-            (value$jscomp$0 = defaultValue);
-          target$jscomp$0.push(endOfStartTag);
-          if (null != children$jscomp$2) {
-            console.error(
-              "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-            );
-            if (null != value$jscomp$0)
-              throw Error(
-                "If you supply `defaultValue` on a <textarea>, do not pass children."
-              );
-            if (isArrayImpl(children$jscomp$2)) {
-              if (1 < children$jscomp$2.length)
-                throw Error("<textarea> can only have at most one child.");
-              checkHtmlStringCoercion(children$jscomp$2[0]);
-              value$jscomp$0 = "" + children$jscomp$2[0];
-            }
-            checkHtmlStringCoercion(children$jscomp$2);
-            value$jscomp$0 = "" + children$jscomp$2;
-          }
-          "string" === typeof value$jscomp$0 &&
-            "\n" === value$jscomp$0[0] &&
-            target$jscomp$0.push(leadingNewline);
-          null !== value$jscomp$0 &&
-            (checkAttributeStringCoercion(value$jscomp$0, "value"),
-            target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)));
-          return null;
-        case "input":
-          checkControlledValueProps("input", props);
-          target$jscomp$0.push(startChunkForTag("input"));
-          var name = null,
-            formAction = null,
-            formEncType = null,
-            formMethod = null,
-            formTarget = null,
-            value$jscomp$1 = null,
-            defaultValue$jscomp$0 = null,
-            checked = null,
-            defaultChecked = null,
-            propKey$jscomp$3;
-          for (propKey$jscomp$3 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-              var propValue$jscomp$3 = props[propKey$jscomp$3];
-              if (null != propValue$jscomp$3)
-                switch (propKey$jscomp$3) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  case "name":
-                    name = propValue$jscomp$3;
-                    break;
-                  case "formAction":
-                    formAction = propValue$jscomp$3;
-                    break;
-                  case "formEncType":
-                    formEncType = propValue$jscomp$3;
-                    break;
-                  case "formMethod":
-                    formMethod = propValue$jscomp$3;
-                    break;
-                  case "formTarget":
-                    formTarget = propValue$jscomp$3;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = propValue$jscomp$3;
-                    break;
-                  case "defaultValue":
-                    defaultValue$jscomp$0 = propValue$jscomp$3;
-                    break;
-                  case "checked":
-                    checked = propValue$jscomp$3;
-                    break;
-                  case "value":
-                    value$jscomp$1 = propValue$jscomp$3;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$3,
-                      propValue$jscomp$3
-                    );
-                }
-            }
-          null === formAction ||
-            "image" === props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'An input can only specify a formAction along with type="submit" or type="image".'
-            ));
-          var formData = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction,
-            formEncType,
-            formMethod,
-            formTarget,
-            name
-          );
-          null === checked ||
-            null === defaultChecked ||
-            didWarnDefaultChecked ||
-            (console.error(
-              "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultChecked = !0));
-          null === value$jscomp$1 ||
-            null === defaultValue$jscomp$0 ||
-            didWarnDefaultInputValue ||
-            (console.error(
-              "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultInputValue = !0));
-          null !== checked
-            ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-            : null !== defaultChecked &&
-              pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-          null !== value$jscomp$1
-            ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-            : null !== defaultValue$jscomp$0 &&
-              pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-          target$jscomp$0.push(endOfStartTagSelfClosing);
-          null != formData &&
-            formData.forEach(pushAdditionalFormField, target$jscomp$0);
-          return null;
-        case "button":
-          target$jscomp$0.push(startChunkForTag("button"));
-          var children$jscomp$3 = null,
-            innerHTML$jscomp$2 = null,
-            name$jscomp$0 = null,
-            formAction$jscomp$0 = null,
-            formEncType$jscomp$0 = null,
-            formMethod$jscomp$0 = null,
-            formTarget$jscomp$0 = null,
-            propKey$jscomp$4;
-          for (propKey$jscomp$4 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-              var propValue$jscomp$4 = props[propKey$jscomp$4];
-              if (null != propValue$jscomp$4)
-                switch (propKey$jscomp$4) {
-                  case "children":
-                    children$jscomp$3 = propValue$jscomp$4;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$2 = propValue$jscomp$4;
-                    break;
-                  case "name":
-                    name$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formAction":
-                    formAction$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formEncType":
-                    formEncType$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formMethod":
-                    formMethod$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formTarget":
-                    formTarget$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$4,
-                      propValue$jscomp$4
-                    );
-                }
-            }
-          null === formAction$jscomp$0 ||
-            null == props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'A button can only specify a formAction along with type="submit" or no type.'
-            ));
-          var formData$jscomp$0 = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction$jscomp$0,
-            formEncType$jscomp$0,
-            formMethod$jscomp$0,
-            formTarget$jscomp$0,
-            name$jscomp$0
-          );
-          target$jscomp$0.push(endOfStartTag);
-          null != formData$jscomp$0 &&
-            formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-          if ("string" === typeof children$jscomp$3) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-            var JSCompiler_inline_result$jscomp$1 = null;
-          } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-          return JSCompiler_inline_result$jscomp$1;
-        case "form":
-          target$jscomp$0.push(startChunkForTag("form"));
-          var children$jscomp$4 = null,
-            innerHTML$jscomp$3 = null,
-            formAction$jscomp$1 = null,
-            formEncType$jscomp$1 = null,
-            formMethod$jscomp$1 = null,
-            formTarget$jscomp$1 = null,
-            propKey$jscomp$5;
-          for (propKey$jscomp$5 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-              var propValue$jscomp$5 = props[propKey$jscomp$5];
-              if (null != propValue$jscomp$5)
-                switch (propKey$jscomp$5) {
-                  case "children":
-                    children$jscomp$4 = propValue$jscomp$5;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$3 = propValue$jscomp$5;
-                    break;
-                  case "action":
-                    formAction$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "encType":
-                    formEncType$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "method":
-                    formMethod$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "target":
-                    formTarget$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$5,
-                      propValue$jscomp$5
-                    );
-                }
-            }
-          var formData$jscomp$1 = null,
-            formActionName = null;
-          if ("function" === typeof formAction$jscomp$1) {
-            (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-              didWarnFormActionMethod ||
-              ((didWarnFormActionMethod = !0),
-              console.error(
-                "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-              ));
-            null === formTarget$jscomp$1 ||
-              didWarnFormActionTarget ||
-              ((didWarnFormActionTarget = !0),
-              console.error(
-                "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-              ));
-            var customFields = getCustomFormFields(
-              resumableState,
-              formAction$jscomp$1
-            );
-            null !== customFields
-              ? ((formAction$jscomp$1 = customFields.action || ""),
-                (formEncType$jscomp$1 = customFields.encType),
-                (formMethod$jscomp$1 = customFields.method),
-                (formTarget$jscomp$1 = customFields.target),
-                (formData$jscomp$1 = customFields.data),
-                (formActionName = customFields.name))
-              : (target$jscomp$0.push(
-                  attributeSeparator,
-                  "action",
-                  attributeAssign,
-                  actionJavaScriptURL,
-                  attributeEnd
-                ),
-                (formTarget$jscomp$1 =
-                  formMethod$jscomp$1 =
-                  formEncType$jscomp$1 =
-                  formAction$jscomp$1 =
-                    null),
-                injectFormReplayingRuntime(resumableState, renderState));
-          }
-          null != formAction$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-          null != formEncType$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-          null != formMethod$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-          null != formTarget$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-          target$jscomp$0.push(endOfStartTag);
-          null !== formActionName &&
-            (target$jscomp$0.push('<input type="hidden"'),
-            pushStringAttribute(target$jscomp$0, "name", formActionName),
-            target$jscomp$0.push(endOfStartTagSelfClosing),
-            null != formData$jscomp$1 &&
-              formData$jscomp$1.forEach(
-                pushAdditionalFormField,
-                target$jscomp$0
-              ));
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-          if ("string" === typeof children$jscomp$4) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-            var JSCompiler_inline_result$jscomp$2 = null;
-          } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-          return JSCompiler_inline_result$jscomp$2;
-        case "menuitem":
-          target$jscomp$0.push(startChunkForTag("menuitem"));
-          for (var propKey$jscomp$6 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-              var propValue$jscomp$6 = props[propKey$jscomp$6];
-              if (null != propValue$jscomp$6)
-                switch (propKey$jscomp$6) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$6,
-                      propValue$jscomp$6
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          return null;
-        case "object":
-          target$jscomp$0.push(startChunkForTag("object"));
-          var children$jscomp$5 = null,
-            innerHTML$jscomp$4 = null,
-            propKey$jscomp$7;
-          for (propKey$jscomp$7 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-              var propValue$jscomp$7 = props[propKey$jscomp$7];
-              if (null != propValue$jscomp$7)
-                switch (propKey$jscomp$7) {
-                  case "children":
-                    children$jscomp$5 = propValue$jscomp$7;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$4 = propValue$jscomp$7;
-                    break;
-                  case "data":
-                    checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                    var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                    if ("" === sanitizedValue) {
-                      console.error(
-                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                        propKey$jscomp$7,
-                        propKey$jscomp$7
-                      );
-                      break;
-                    }
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      "data",
-                      attributeAssign,
-                      escapeTextForBrowser(sanitizedValue),
-                      attributeEnd
-                    );
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$7,
-                      propValue$jscomp$7
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-          if ("string" === typeof children$jscomp$5) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-            var JSCompiler_inline_result$jscomp$3 = null;
-          } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-          return JSCompiler_inline_result$jscomp$3;
-        case "title":
-          var noscriptTagInScope = formatContext.tagScope & 1,
-            isFallback = formatContext.tagScope & 4;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$6 = props.children,
-              child = Array.isArray(children$jscomp$6)
-                ? 2 > children$jscomp$6.length
-                  ? children$jscomp$6[0]
-                  : null
-                : children$jscomp$6;
-            Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-              ? console.error(
-                  "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-                  children$jscomp$6.length
-                )
-              : "function" === typeof child || "symbol" === typeof child
-                ? console.error(
-                    "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                    "function" === typeof child ? "a Function" : "a Sybmol"
-                  )
-                : child &&
-                  child.toString === {}.toString &&
-                  (null != child.$$typeof
-                    ? console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                      )
-                    : console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                      ));
-          }
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-              target$jscomp$0,
-              props
-            );
-          else
-            isFallback
-              ? (JSCompiler_inline_result$jscomp$4 = null)
-              : (pushTitleImpl(renderState.hoistableChunks, props),
-                (JSCompiler_inline_result$jscomp$4 = void 0));
-          return JSCompiler_inline_result$jscomp$4;
-        case "link":
-          var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-            isFallback$jscomp$0 = formatContext.tagScope & 4,
-            rel = props.rel,
-            href = props.href,
-            precedence = props.precedence;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$0 ||
-            null != props.itemProp ||
-            "string" !== typeof rel ||
-            "string" !== typeof href ||
-            "" === href
-          ) {
-            "stylesheet" === rel &&
-              "string" === typeof props.precedence &&
-              (("string" === typeof href && href) ||
-                console.error(
-                  'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-                  null === href
-                    ? "`null`"
-                    : void 0 === href
-                      ? "`undefined`"
-                      : "" === href
-                        ? "an empty string"
-                        : 'something with type "' + typeof href + '"'
-                ));
-            pushLinkImpl(target$jscomp$0, props);
-            var JSCompiler_inline_result$jscomp$5 = null;
-          } else if ("stylesheet" === props.rel)
-            if (
-              "string" !== typeof precedence ||
-              null != props.disabled ||
-              props.onLoad ||
-              props.onError
-            ) {
-              if ("string" === typeof precedence)
-                if (null != props.disabled)
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-                  );
-                else if (props.onLoad || props.onError) {
-                  var propDescription =
-                    props.onLoad && props.onError
-                      ? "`onLoad` and `onError` props"
-                      : props.onLoad
-                        ? "`onLoad` prop"
-                        : "`onError` prop";
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                    propDescription,
-                    propDescription
-                  );
-                }
-              JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                target$jscomp$0,
-                props
-              );
-            } else {
-              var styleQueue = renderState.styles.get(precedence),
-                resourceState = resumableState.styleResources.hasOwnProperty(
-                  href
-                )
-                  ? resumableState.styleResources[href]
-                  : void 0;
-              if (resourceState !== EXISTS) {
-                resumableState.styleResources[href] = EXISTS;
-                styleQueue ||
-                  ((styleQueue = {
-                    precedence: escapeTextForBrowser(precedence),
-                    rules: [],
-                    hrefs: [],
-                    sheets: new Map()
-                  }),
-                  renderState.styles.set(precedence, styleQueue));
-                var resource = {
-                  state: PENDING$1,
-                  props: assign({}, props, {
-                    "data-precedence": props.precedence,
-                    precedence: null
-                  })
-                };
-                if (resourceState) {
-                  2 === resourceState.length &&
-                    adoptPreloadCredentials(resource.props, resourceState);
-                  var preloadResource =
-                    renderState.preloads.stylesheets.get(href);
-                  preloadResource && 0 < preloadResource.length
-                    ? (preloadResource.length = 0)
-                    : (resource.state = PRELOADED);
-                }
-                styleQueue.sheets.set(href, resource);
-                hoistableState && hoistableState.stylesheets.add(resource);
-              } else if (styleQueue) {
-                var _resource = styleQueue.sheets.get(href);
-                _resource &&
-                  hoistableState &&
-                  hoistableState.stylesheets.add(_resource);
-              }
-              textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-              JSCompiler_inline_result$jscomp$5 = null;
-            }
-          else
-            props.onLoad || props.onError
-              ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                  target$jscomp$0,
-                  props
-                ))
-              : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-                (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-                  ? null
-                  : pushLinkImpl(renderState.hoistableChunks, props)));
-          return JSCompiler_inline_result$jscomp$5;
-        case "script":
-          var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-            asyncProp = props.async;
-          if (
-            "string" !== typeof props.src ||
-            !props.src ||
-            !asyncProp ||
-            "function" === typeof asyncProp ||
-            "symbol" === typeof asyncProp ||
-            props.onLoad ||
-            props.onError ||
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$1 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-              target$jscomp$0,
-              props
-            );
-          else {
-            var key = props.src;
-            if ("module" === props.type) {
-              var resources = resumableState.moduleScriptResources;
-              var preloads = renderState.preloads.moduleScripts;
-            } else
-              (resources = resumableState.scriptResources),
-                (preloads = renderState.preloads.scripts);
-            var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-              ? resources[key]
-              : void 0;
-            if (resourceState$jscomp$0 !== EXISTS) {
-              resources[key] = EXISTS;
-              var scriptProps = props;
-              if (resourceState$jscomp$0) {
-                2 === resourceState$jscomp$0.length &&
-                  ((scriptProps = assign({}, props)),
-                  adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-                var preloadResource$jscomp$0 = preloads.get(key);
-                preloadResource$jscomp$0 &&
-                  (preloadResource$jscomp$0.length = 0);
-              }
-              var resource$jscomp$0 = [];
-              renderState.scripts.add(resource$jscomp$0);
-              pushScriptImpl(resource$jscomp$0, scriptProps);
-            }
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-            JSCompiler_inline_result$jscomp$6 = null;
-          }
-          return JSCompiler_inline_result$jscomp$6;
-        case "style":
-          var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$7 = props.children,
-              child$jscomp$0 = Array.isArray(children$jscomp$7)
-                ? 2 > children$jscomp$7.length
-                  ? children$jscomp$7[0]
-                  : null
-                : children$jscomp$7;
-            ("function" === typeof child$jscomp$0 ||
-              "symbol" === typeof child$jscomp$0 ||
-              Array.isArray(child$jscomp$0)) &&
-              console.error(
-                "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-                "function" === typeof child$jscomp$0
-                  ? "a Function"
-                  : "symbol" === typeof child$jscomp$0
-                    ? "a Sybmol"
-                    : "an Array"
-              );
-          }
-          var precedence$jscomp$0 = props.precedence,
-            href$jscomp$0 = props.href,
-            nonce = props.nonce;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$2 ||
-            null != props.itemProp ||
-            "string" !== typeof precedence$jscomp$0 ||
-            "string" !== typeof href$jscomp$0 ||
-            "" === href$jscomp$0
-          ) {
-            target$jscomp$0.push(startChunkForTag("style"));
-            var children$jscomp$8 = null,
-              innerHTML$jscomp$5 = null,
-              propKey$jscomp$8;
-            for (propKey$jscomp$8 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-                var propValue$jscomp$8 = props[propKey$jscomp$8];
-                if (null != propValue$jscomp$8)
-                  switch (propKey$jscomp$8) {
-                    case "children":
-                      children$jscomp$8 = propValue$jscomp$8;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$5 = propValue$jscomp$8;
-                      break;
-                    default:
-                      pushAttribute(
-                        target$jscomp$0,
-                        propKey$jscomp$8,
-                        propValue$jscomp$8
-                      );
-                  }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            var child$jscomp$1 = Array.isArray(children$jscomp$8)
-              ? 2 > children$jscomp$8.length
-                ? children$jscomp$8[0]
-                : null
-              : children$jscomp$8;
-            "function" !== typeof child$jscomp$1 &&
-              "symbol" !== typeof child$jscomp$1 &&
-              null !== child$jscomp$1 &&
-              void 0 !== child$jscomp$1 &&
-              target$jscomp$0.push(escapeStyleTextContent(child$jscomp$1));
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$5,
-              children$jscomp$8
-            );
-            target$jscomp$0.push(endChunkForTag("style"));
-            var JSCompiler_inline_result$jscomp$7 = null;
-          } else {
-            href$jscomp$0.includes(" ") &&
-              console.error(
-                'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-                href$jscomp$0
-              );
-            var styleQueue$jscomp$0 =
-                renderState.styles.get(precedence$jscomp$0),
-              resourceState$jscomp$1 =
-                resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-                  ? resumableState.styleResources[href$jscomp$0]
-                  : void 0;
-            if (resourceState$jscomp$1 !== EXISTS) {
-              resumableState.styleResources[href$jscomp$0] = EXISTS;
-              resourceState$jscomp$1 &&
-                console.error(
-                  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-                  href$jscomp$0
-                );
-              styleQueue$jscomp$0 ||
-                ((styleQueue$jscomp$0 = {
-                  precedence: escapeTextForBrowser(precedence$jscomp$0),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(
-                  precedence$jscomp$0,
-                  styleQueue$jscomp$0
-                ));
-              var nonceStyle = renderState.nonce.style;
-              if (nonceStyle && nonceStyle !== nonce)
-                console.error(
-                  'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-                  precedence$jscomp$0,
-                  nonce,
-                  nonceStyle
-                );
-              else {
-                !nonceStyle &&
-                  nonce &&
-                  console.error(
-                    'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                    precedence$jscomp$0,
-                    nonce
-                  );
-                styleQueue$jscomp$0.hrefs.push(
-                  escapeTextForBrowser(href$jscomp$0)
-                );
-                var target = styleQueue$jscomp$0.rules,
-                  children$jscomp$9 = null,
-                  innerHTML$jscomp$6 = null,
-                  propKey$jscomp$9;
-                for (propKey$jscomp$9 in props)
-                  if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                    var propValue$jscomp$9 = props[propKey$jscomp$9];
-                    if (null != propValue$jscomp$9)
-                      switch (propKey$jscomp$9) {
-                        case "children":
-                          children$jscomp$9 = propValue$jscomp$9;
-                          break;
-                        case "dangerouslySetInnerHTML":
-                          innerHTML$jscomp$6 = propValue$jscomp$9;
-                      }
-                  }
-                var child$jscomp$2 = Array.isArray(children$jscomp$9)
-                  ? 2 > children$jscomp$9.length
-                    ? children$jscomp$9[0]
-                    : null
-                  : children$jscomp$9;
-                "function" !== typeof child$jscomp$2 &&
-                  "symbol" !== typeof child$jscomp$2 &&
-                  null !== child$jscomp$2 &&
-                  void 0 !== child$jscomp$2 &&
-                  target.push(escapeStyleTextContent(child$jscomp$2));
-                pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-              }
-            }
-            styleQueue$jscomp$0 &&
-              hoistableState &&
-              hoistableState.styles.add(styleQueue$jscomp$0);
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-            JSCompiler_inline_result$jscomp$7 = void 0;
-          }
-          return JSCompiler_inline_result$jscomp$7;
-        case "meta":
-          var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-            isFallback$jscomp$1 = formatContext.tagScope & 4;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$3 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-              target$jscomp$0,
-              props,
-              "meta"
-            );
-          else
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-              (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-                ? null
-                : "string" === typeof props.charSet
-                  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-                  : "viewport" === props.name
-                    ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                    : pushSelfClosing(
-                        renderState.hoistableChunks,
-                        props,
-                        "meta"
-                      ));
-          return JSCompiler_inline_result$jscomp$8;
-        case "listing":
-        case "pre":
-          target$jscomp$0.push(startChunkForTag(type));
-          var children$jscomp$10 = null,
-            innerHTML$jscomp$7 = null,
-            propKey$jscomp$10;
-          for (propKey$jscomp$10 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-              var propValue$jscomp$10 = props[propKey$jscomp$10];
-              if (null != propValue$jscomp$10)
-                switch (propKey$jscomp$10) {
-                  case "children":
-                    children$jscomp$10 = propValue$jscomp$10;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$7 = propValue$jscomp$10;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$10,
-                      propValue$jscomp$10
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          if (null != innerHTML$jscomp$7) {
-            if (null != children$jscomp$10)
-              throw Error(
-                "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-              );
-            if (
-              "object" !== typeof innerHTML$jscomp$7 ||
-              !("__html" in innerHTML$jscomp$7)
-            )
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            var html = innerHTML$jscomp$7.__html;
-            null !== html &&
-              void 0 !== html &&
-              ("string" === typeof html && 0 < html.length && "\n" === html[0]
-                ? target$jscomp$0.push(leadingNewline, html)
-                : (checkHtmlStringCoercion(html),
-                  target$jscomp$0.push("" + html)));
-          }
-          "string" === typeof children$jscomp$10 &&
-            "\n" === children$jscomp$10[0] &&
-            target$jscomp$0.push(leadingNewline);
-          return children$jscomp$10;
-        case "img":
-          var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-            src = props.src,
-            srcSet = props.srcSet;
-          if (
-            !(
-              "lazy" === props.loading ||
-              (!src && !srcSet) ||
-              ("string" !== typeof src && null != src) ||
-              ("string" !== typeof srcSet && null != srcSet) ||
-              "low" === props.fetchPriority ||
-              pictureOrNoScriptTagInScope
-            ) &&
-            ("string" !== typeof src ||
-              ":" !== src[4] ||
-              ("d" !== src[0] && "D" !== src[0]) ||
-              ("a" !== src[1] && "A" !== src[1]) ||
-              ("t" !== src[2] && "T" !== src[2]) ||
-              ("a" !== src[3] && "A" !== src[3])) &&
-            ("string" !== typeof srcSet ||
-              ":" !== srcSet[4] ||
-              ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-              ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-              ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-              ("a" !== srcSet[3] && "A" !== srcSet[3]))
-          ) {
-            null !== hoistableState &&
-              formatContext.tagScope & 64 &&
-              (hoistableState.suspenseyImages = !0);
-            var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-              key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-              promotablePreloads = renderState.preloads.images,
-              resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-            if (resource$jscomp$1) {
-              if (
-                "high" === props.fetchPriority ||
-                10 > renderState.highImagePreloads.size
-              )
-                promotablePreloads.delete(key$jscomp$0),
-                  renderState.highImagePreloads.add(resource$jscomp$1);
-            } else if (
-              !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-            ) {
-              resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-              var input = props.crossOrigin;
-              var crossOrigin =
-                "string" === typeof input
-                  ? "use-credentials" === input
-                    ? input
-                    : ""
-                  : void 0;
-              var headers = renderState.headers,
-                header;
-              headers &&
-              0 < headers.remainingCapacity &&
-              "string" !== typeof props.srcSet &&
-              ("high" === props.fetchPriority ||
-                500 > headers.highImagePreloads.length) &&
-              ((header = getPreloadAsHeader(src, "image", {
-                imageSrcSet: props.srcSet,
-                imageSizes: props.sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                nonce: props.nonce,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.refererPolicy
-              })),
-              0 <= (headers.remainingCapacity -= header.length + 2))
-                ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-                  headers.highImagePreloads &&
-                    (headers.highImagePreloads += ", "),
-                  (headers.highImagePreloads += header))
-                : ((resource$jscomp$1 = []),
-                  pushLinkImpl(resource$jscomp$1, {
-                    rel: "preload",
-                    as: "image",
-                    href: srcSet ? void 0 : src,
-                    imageSrcSet: srcSet,
-                    imageSizes: sizes,
-                    crossOrigin: crossOrigin,
-                    integrity: props.integrity,
-                    type: props.type,
-                    fetchPriority: props.fetchPriority,
-                    referrerPolicy: props.referrerPolicy
-                  }),
-                  "high" === props.fetchPriority ||
-                  10 > renderState.highImagePreloads.size
-                    ? renderState.highImagePreloads.add(resource$jscomp$1)
-                    : (renderState.bulkPreloads.add(resource$jscomp$1),
-                      promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-            }
-          }
-          return pushSelfClosing(target$jscomp$0, props, "img");
-        case "base":
-        case "area":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-          return pushSelfClosing(target$jscomp$0, props, type);
-        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":
-          break;
-        case "head":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble = preambleState || renderState.preamble;
-            if (preamble.headChunks)
-              throw Error("The `<head>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-            preamble.headChunks = [];
-            var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-              preamble.headChunks,
-              props,
-              "head"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "head"
-            );
-          return JSCompiler_inline_result$jscomp$9;
-        case "body":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble$jscomp$0 = preambleState || renderState.preamble;
-            if (preamble$jscomp$0.bodyChunks)
-              throw Error("The `<body>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-            preamble$jscomp$0.bodyChunks = [];
-            var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-              preamble$jscomp$0.bodyChunks,
-              props,
-              "body"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "body"
-            );
-          return JSCompiler_inline_result$jscomp$10;
-        case "html":
-          if (formatContext.insertionMode === ROOT_HTML_MODE) {
-            var preamble$jscomp$1 = preambleState || renderState.preamble;
-            if (preamble$jscomp$1.htmlChunks)
-              throw Error("The `<html>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-            preamble$jscomp$1.htmlChunks = [doctypeChunk];
-            var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-              preamble$jscomp$1.htmlChunks,
-              props,
-              "html"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "html"
-            );
-          return JSCompiler_inline_result$jscomp$11;
-        default:
-          if (-1 !== type.indexOf("-")) {
-            target$jscomp$0.push(startChunkForTag(type));
-            var children$jscomp$11 = null,
-              innerHTML$jscomp$8 = null,
-              propKey$jscomp$11;
-            for (propKey$jscomp$11 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-                var propValue$jscomp$11 = props[propKey$jscomp$11];
-                if (null != propValue$jscomp$11) {
-                  var attributeName = propKey$jscomp$11;
-                  switch (propKey$jscomp$11) {
-                    case "children":
-                      children$jscomp$11 = propValue$jscomp$11;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$8 = propValue$jscomp$11;
-                      break;
-                    case "style":
-                      pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                      break;
-                    case "suppressContentEditableWarning":
-                    case "suppressHydrationWarning":
-                    case "ref":
-                      break;
-                    case "className":
-                      attributeName = "class";
-                    default:
-                      if (
-                        isAttributeNameSafe(propKey$jscomp$11) &&
-                        "function" !== typeof propValue$jscomp$11 &&
-                        "symbol" !== typeof propValue$jscomp$11 &&
-                        !1 !== propValue$jscomp$11
-                      ) {
-                        if (!0 === propValue$jscomp$11)
-                          propValue$jscomp$11 = "";
-                        else if ("object" === typeof propValue$jscomp$11)
-                          continue;
-                        target$jscomp$0.push(
-                          attributeSeparator,
-                          attributeName,
-                          attributeAssign,
-                          escapeTextForBrowser(propValue$jscomp$11),
-                          attributeEnd
-                        );
-                      }
-                  }
-                }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$8,
-              children$jscomp$11
-            );
-            return children$jscomp$11;
-          }
-      }
-      return pushStartGenericElement(target$jscomp$0, props, type);
-    }
-    function endChunkForTag(tag) {
-      var chunk = endTagCache.get(tag);
-      void 0 === chunk &&
-        ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-      return chunk;
-    }
-    function hoistPreambleState(renderState, preambleState) {
-      renderState = renderState.preamble;
-      null === renderState.htmlChunks &&
-        preambleState.htmlChunks &&
-        (renderState.htmlChunks = preambleState.htmlChunks);
-      null === renderState.headChunks &&
-        preambleState.headChunks &&
-        (renderState.headChunks = preambleState.headChunks);
-      null === renderState.bodyChunks &&
-        preambleState.bodyChunks &&
-        (renderState.bodyChunks = preambleState.bodyChunks);
-    }
-    function writeBootstrap(destination, renderState) {
-      renderState = renderState.bootstrapChunks;
-      for (var i = 0; i < renderState.length - 1; i++)
-        destination.push(renderState[i]);
-      return i < renderState.length
-        ? ((i = renderState[i]), (renderState.length = 0), destination.push(i))
-        : !0;
-    }
-    function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-      destination.push(startPendingSuspenseBoundary1);
-      if (null === id)
-        throw Error(
-          "An ID must have been assigned before we can complete the boundary."
-        );
-      destination.push(renderState.boundaryPrefix);
-      renderState = id.toString(16);
-      destination.push(renderState);
-      return destination.push(startPendingSuspenseBoundary2);
-    }
-    function writeStartSegment(destination, renderState, formatContext, id) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return (
-            destination.push(startSegmentHTML),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentHTML2)
-          );
-        case SVG_MODE:
-          return (
-            destination.push(startSegmentSVG),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentSVG2)
-          );
-        case MATHML_MODE:
-          return (
-            destination.push(startSegmentMathML),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentMathML2)
-          );
-        case HTML_TABLE_MODE:
-          return (
-            destination.push(startSegmentTable),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTable2)
-          );
-        case HTML_TABLE_BODY_MODE:
-          return (
-            destination.push(startSegmentTableBody),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTableBody2)
-          );
-        case HTML_TABLE_ROW_MODE:
-          return (
-            destination.push(startSegmentTableRow),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTableRow2)
-          );
-        case HTML_COLGROUP_MODE:
-          return (
-            destination.push(startSegmentColGroup),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentColGroup2)
-          );
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function writeEndSegment(destination, formatContext) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return destination.push(endSegmentHTML);
-        case SVG_MODE:
-          return destination.push(endSegmentSVG);
-        case MATHML_MODE:
-          return destination.push(endSegmentMathML);
-        case HTML_TABLE_MODE:
-          return destination.push(endSegmentTable);
-        case HTML_TABLE_BODY_MODE:
-          return destination.push(endSegmentTableBody);
-        case HTML_TABLE_ROW_MODE:
-          return destination.push(endSegmentTableRow);
-        case HTML_COLGROUP_MODE:
-          return destination.push(endSegmentColGroup);
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function escapeJSStringsForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInInstructionScripts,
-        function (match) {
-          switch (match) {
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function escapeJSObjectForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInScripts,
-        function (match) {
-          switch (match) {
-            case "&":
-              return "\\u0026";
-            case ">":
-              return "\\u003e";
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function flushStyleTagsLateForBoundary(styleQueue) {
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      0 < rules.length &&
-        0 === hrefs.length &&
-        console.error(
-          "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-        );
-      var i = 0;
-      if (hrefs.length) {
-        this.push(currentlyFlushingRenderState.startInlineStyle);
-        this.push(lateStyleTagResourceOpen1);
-        this.push(styleQueue.precedence);
-        for (this.push(lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-          this.push(hrefs[i]), this.push(spaceSeparator);
-        this.push(hrefs[i]);
-        this.push(lateStyleTagResourceOpen3);
-        for (i = 0; i < rules.length; i++) this.push(rules[i]);
-        destinationHasCapacity = this.push(lateStyleTagTemplateClose);
-        currentlyRenderingBoundaryHasStylesToHoist = !0;
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function hasStylesToHoist(stylesheet) {
-      return stylesheet.state !== PREAMBLE
-        ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-        : !1;
-    }
-    function writeHoistablesForBoundary(
-      destination,
-      hoistableState,
-      renderState
-    ) {
-      currentlyRenderingBoundaryHasStylesToHoist = !1;
-      destinationHasCapacity = !0;
-      currentlyFlushingRenderState = renderState;
-      hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-      currentlyFlushingRenderState = null;
-      hoistableState.stylesheets.forEach(hasStylesToHoist);
-      currentlyRenderingBoundaryHasStylesToHoist &&
-        (renderState.stylesToHoist = !0);
-      return destinationHasCapacity;
-    }
-    function flushResource(resource) {
-      for (var i = 0; i < resource.length; i++) this.push(resource[i]);
-      resource.length = 0;
-    }
-    function flushStyleInPreamble(stylesheet) {
-      pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-      for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-        this.push(stylesheetFlushingQueue[i]);
-      stylesheetFlushingQueue.length = 0;
-      stylesheet.state = PREAMBLE;
-    }
-    function flushStylesInPreamble(styleQueue) {
-      var hasStylesheets = 0 < styleQueue.sheets.size;
-      styleQueue.sheets.forEach(flushStyleInPreamble, this);
-      styleQueue.sheets.clear();
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      if (!hasStylesheets || hrefs.length) {
-        this.push(currentlyFlushingRenderState.startInlineStyle);
-        this.push(styleTagResourceOpen1);
-        this.push(styleQueue.precedence);
-        styleQueue = 0;
-        if (hrefs.length) {
-          for (
-            this.push(styleTagResourceOpen2);
-            styleQueue < hrefs.length - 1;
-            styleQueue++
-          )
-            this.push(hrefs[styleQueue]), this.push(spaceSeparator);
-          this.push(hrefs[styleQueue]);
-        }
-        this.push(styleTagResourceOpen3);
-        for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-          this.push(rules[styleQueue]);
-        this.push(styleTagResourceClose);
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function preloadLateStyle(stylesheet) {
-      if (stylesheet.state === PENDING$1) {
-        stylesheet.state = PRELOADED;
-        var props = stylesheet.props;
-        pushLinkImpl(stylesheetFlushingQueue, {
-          rel: "preload",
-          as: "style",
-          href: stylesheet.props.href,
-          crossOrigin: props.crossOrigin,
-          fetchPriority: props.fetchPriority,
-          integrity: props.integrity,
-          media: props.media,
-          hrefLang: props.hrefLang,
-          referrerPolicy: props.referrerPolicy
-        });
-        for (
-          stylesheet = 0;
-          stylesheet < stylesheetFlushingQueue.length;
-          stylesheet++
-        )
-          this.push(stylesheetFlushingQueue[stylesheet]);
-        stylesheetFlushingQueue.length = 0;
-      }
-    }
-    function preloadLateStyles(styleQueue) {
-      styleQueue.sheets.forEach(preloadLateStyle, this);
-      styleQueue.sheets.clear();
-    }
-    function pushCompletedShellIdAttribute(target, resumableState) {
-      (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-        ((resumableState.instructions |= SentCompletedShellId),
-        target.push(
-          completedShellIdAttributeStart,
-          escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-          attributeEnd
-        ));
-    }
-    function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-      destination.push(arrayFirstOpenBracket);
-      var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-      hoistableState.stylesheets.forEach(function (resource) {
-        if (resource.state !== PREAMBLE)
-          if (resource.state === LATE)
-            destination.push(nextArrayOpenBrackChunk),
-              (resource = resource.props.href),
-              checkAttributeStringCoercion(resource, "href"),
-              (resource = escapeJSObjectForInstructionScripts("" + resource)),
-              destination.push(resource),
-              destination.push(arrayCloseBracket),
-              (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-          else {
-            destination.push(nextArrayOpenBrackChunk);
-            var precedence = resource.props["data-precedence"],
-              props = resource.props,
-              coercedHref = sanitizeURL("" + resource.props.href);
-            coercedHref = escapeJSObjectForInstructionScripts(coercedHref);
-            destination.push(coercedHref);
-            checkAttributeStringCoercion(precedence, "precedence");
-            precedence = "" + precedence;
-            destination.push(arrayInterstitial);
-            precedence = escapeJSObjectForInstructionScripts(precedence);
-            destination.push(precedence);
-            for (var propKey in props)
-              if (
-                hasOwnProperty.call(props, propKey) &&
-                ((precedence = props[propKey]), null != precedence)
-              )
-                switch (propKey) {
-                  case "href":
-                  case "rel":
-                  case "precedence":
-                  case "data-precedence":
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    writeStyleResourceAttributeInJS(
-                      destination,
-                      propKey,
-                      precedence
-                    );
-                }
-            destination.push(arrayCloseBracket);
-            nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-            resource.state = LATE;
-          }
-      });
-      destination.push(arrayCloseBracket);
-    }
-    function writeStyleResourceAttributeInJS(destination, name, value) {
-      var attributeName = name.toLowerCase();
-      switch (typeof value) {
-        case "function":
-        case "symbol":
-          return;
-      }
-      switch (name) {
-        case "innerHTML":
-        case "dangerouslySetInnerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "style":
-        case "ref":
-          return;
-        case "className":
-          attributeName = "class";
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        case "hidden":
-          if (!1 === value) return;
-          name = "";
-          break;
-        case "src":
-        case "href":
-          value = sanitizeURL(value);
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        default:
-          if (
-            (2 < name.length &&
-              ("o" === name[0] || "O" === name[0]) &&
-              ("n" === name[1] || "N" === name[1])) ||
-            !isAttributeNameSafe(name)
-          )
-            return;
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-      }
-      destination.push(arrayInterstitial);
-      attributeName = escapeJSObjectForInstructionScripts(attributeName);
-      destination.push(attributeName);
-      destination.push(arrayInterstitial);
-      attributeName = escapeJSObjectForInstructionScripts(name);
-      destination.push(attributeName);
-    }
-    function createHoistableState() {
-      return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-    }
-    function preloadBootstrapScriptOrModule(
-      resumableState,
-      renderState,
-      href,
-      props
-    ) {
-      (resumableState.scriptResources.hasOwnProperty(href) ||
-        resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-        console.error(
-          'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-          href
-        );
-      resumableState.scriptResources[href] = EXISTS;
-      resumableState.moduleScriptResources[href] = EXISTS;
-      resumableState = [];
-      pushLinkImpl(resumableState, props);
-      renderState.bootstrapScripts.add(resumableState);
-    }
-    function adoptPreloadCredentials(target, preloadState) {
-      null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-      null == target.integrity && (target.integrity = preloadState[1]);
-    }
-    function getPreloadAsHeader(href, as, params) {
-      href = escapeHrefForLinkHeaderURLContext(href);
-      as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-      as = "<" + href + '>; rel=preload; as="' + as + '"';
-      for (var paramName in params)
-        hasOwnProperty.call(params, paramName) &&
-          ((href = params[paramName]),
-          "string" === typeof href &&
-            (as +=
-              "; " +
-              paramName.toLowerCase() +
-              '="' +
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                href,
-                paramName
-              ) +
-              '"'));
-      return as;
-    }
-    function escapeHrefForLinkHeaderURLContext(hrefInput) {
-      checkAttributeStringCoercion(hrefInput, "href");
-      return ("" + hrefInput).replace(
-        regexForHrefInLinkHeaderURLContext,
-        escapeHrefForLinkHeaderURLContextReplacer
-      );
-    }
-    function escapeHrefForLinkHeaderURLContextReplacer(match) {
-      switch (match) {
-        case "<":
-          return "%3C";
-        case ">":
-          return "%3E";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-      willCoercionThrow(value) &&
-        (console.error(
-          "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-          name,
-          typeName(value)
-        ),
-        testStringCoercion(value));
-      return ("" + value).replace(
-        regexForLinkHeaderQuotedParamValueContext,
-        escapeStringForLinkHeaderQuotedParamValueContextReplacer
-      );
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-      switch (match) {
-        case '"':
-          return "%22";
-        case "'":
-          return "%27";
-        case ";":
-          return "%3B";
-        case ",":
-          return "%2C";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function hoistStyleQueueDependency(styleQueue) {
-      this.styles.add(styleQueue);
-    }
-    function hoistStylesheetDependency(stylesheet) {
-      this.stylesheets.add(stylesheet);
-    }
-    function hoistHoistables(parentState, childState) {
-      childState.styles.forEach(hoistStyleQueueDependency, parentState);
-      childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-      childState.suspenseyImages && (parentState.suspenseyImages = !0);
-    }
-    function createRenderState(resumableState, generateStaticMarkup) {
-      var idPrefix = resumableState.idPrefix,
-        bootstrapChunks = [],
-        bootstrapScriptContent = resumableState.bootstrapScriptContent,
-        bootstrapScripts = resumableState.bootstrapScripts,
-        bootstrapModules = resumableState.bootstrapModules;
-      void 0 !== bootstrapScriptContent &&
-        (bootstrapChunks.push("<script"),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          escapeEntireInlineScriptContent(bootstrapScriptContent),
-          endInlineScript
-        ));
-      idPrefix = {
-        placeholderPrefix: idPrefix + "P:",
-        segmentPrefix: idPrefix + "S:",
-        boundaryPrefix: idPrefix + "B:",
-        startInlineScript: "<script",
-        startInlineStyle: "<style",
-        preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
-        externalRuntimeScript: null,
-        bootstrapChunks: bootstrapChunks,
-        importMapChunks: [],
-        onHeaders: void 0,
-        headers: null,
-        resets: {
-          font: {},
-          dns: {},
-          connect: { default: {}, anonymous: {}, credentials: {} },
-          image: {},
-          style: {}
-        },
-        charsetChunks: [],
-        viewportChunks: [],
-        hoistableChunks: [],
-        preconnects: new Set(),
-        fontPreloads: new Set(),
-        highImagePreloads: new Set(),
-        styles: new Map(),
-        bootstrapScripts: new Set(),
-        scripts: new Set(),
-        bulkPreloads: new Set(),
-        preloads: {
-          images: new Map(),
-          stylesheets: new Map(),
-          scripts: new Map(),
-          moduleScripts: new Map()
-        },
-        nonce: { script: void 0, style: void 0 },
-        hoistableState: null,
-        stylesToHoist: !1
-      };
-      if (void 0 !== bootstrapScripts)
-        for (
-          bootstrapScriptContent = 0;
-          bootstrapScriptContent < bootstrapScripts.length;
-          bootstrapScriptContent++
-        ) {
-          var scriptConfig = bootstrapScripts[bootstrapScriptContent],
-            src,
-            crossOrigin = void 0,
-            integrity = void 0,
-            props = {
-              rel: "preload",
-              as: "script",
-              fetchPriority: "low",
-              nonce: void 0
-            };
-          "string" === typeof scriptConfig
-            ? (props.href = src = scriptConfig)
-            : ((props.href = src = scriptConfig.src),
-              (props.integrity = integrity =
-                "string" === typeof scriptConfig.integrity
-                  ? scriptConfig.integrity
-                  : void 0),
-              (props.crossOrigin = crossOrigin =
-                "string" === typeof scriptConfig ||
-                null == scriptConfig.crossOrigin
-                  ? void 0
-                  : "use-credentials" === scriptConfig.crossOrigin
-                    ? "use-credentials"
-                    : ""));
-          preloadBootstrapScriptOrModule(resumableState, idPrefix, src, props);
-          bootstrapChunks.push(
-            '<script src="',
-            escapeTextForBrowser(src),
-            attributeEnd
-          );
-          "string" === typeof integrity &&
-            bootstrapChunks.push(
-              ' integrity="',
-              escapeTextForBrowser(integrity),
-              attributeEnd
-            );
-          "string" === typeof crossOrigin &&
-            bootstrapChunks.push(
-              ' crossorigin="',
-              escapeTextForBrowser(crossOrigin),
-              attributeEnd
-            );
-          pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
-          bootstrapChunks.push(' async="">\x3c/script>');
-        }
-      if (void 0 !== bootstrapModules)
-        for (
-          bootstrapScripts = 0;
-          bootstrapScripts < bootstrapModules.length;
-          bootstrapScripts++
-        )
-          (bootstrapScriptContent = bootstrapModules[bootstrapScripts]),
-            (crossOrigin = src = void 0),
-            (integrity = {
-              rel: "modulepreload",
-              fetchPriority: "low",
-              nonce: void 0
-            }),
-            "string" === typeof bootstrapScriptContent
-              ? (integrity.href = scriptConfig = bootstrapScriptContent)
-              : ((integrity.href = scriptConfig = bootstrapScriptContent.src),
-                (integrity.integrity = crossOrigin =
-                  "string" === typeof bootstrapScriptContent.integrity
-                    ? bootstrapScriptContent.integrity
-                    : void 0),
-                (integrity.crossOrigin = src =
-                  "string" === typeof bootstrapScriptContent ||
-                  null == bootstrapScriptContent.crossOrigin
-                    ? void 0
-                    : "use-credentials" === bootstrapScriptContent.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              idPrefix,
-              scriptConfig,
-              integrity
-            ),
-            bootstrapChunks.push(
-              '<script type="module" src="',
-              escapeTextForBrowser(scriptConfig),
-              attributeEnd
-            ),
-            "string" === typeof crossOrigin &&
-              bootstrapChunks.push(
-                ' integrity="',
-                escapeTextForBrowser(crossOrigin),
-                attributeEnd
-              ),
-            "string" === typeof src &&
-              bootstrapChunks.push(
-                ' crossorigin="',
-                escapeTextForBrowser(src),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(' async="">\x3c/script>');
-      return {
-        placeholderPrefix: idPrefix.placeholderPrefix,
-        segmentPrefix: idPrefix.segmentPrefix,
-        boundaryPrefix: idPrefix.boundaryPrefix,
-        startInlineScript: idPrefix.startInlineScript,
-        startInlineStyle: idPrefix.startInlineStyle,
-        preamble: idPrefix.preamble,
-        externalRuntimeScript: idPrefix.externalRuntimeScript,
-        bootstrapChunks: idPrefix.bootstrapChunks,
-        importMapChunks: idPrefix.importMapChunks,
-        onHeaders: idPrefix.onHeaders,
-        headers: idPrefix.headers,
-        resets: idPrefix.resets,
-        charsetChunks: idPrefix.charsetChunks,
-        viewportChunks: idPrefix.viewportChunks,
-        hoistableChunks: idPrefix.hoistableChunks,
-        preconnects: idPrefix.preconnects,
-        fontPreloads: idPrefix.fontPreloads,
-        highImagePreloads: idPrefix.highImagePreloads,
-        styles: idPrefix.styles,
-        bootstrapScripts: idPrefix.bootstrapScripts,
-        scripts: idPrefix.scripts,
-        bulkPreloads: idPrefix.bulkPreloads,
-        preloads: idPrefix.preloads,
-        nonce: idPrefix.nonce,
-        stylesToHoist: idPrefix.stylesToHoist,
-        generateStaticMarkup: generateStaticMarkup
-      };
-    }
-    function pushTextInstance(target, text, renderState, textEmbedded) {
-      if (renderState.generateStaticMarkup)
-        return target.push(escapeTextForBrowser(text)), !1;
-      "" === text
-        ? (target = textEmbedded)
-        : (textEmbedded && target.push("\x3c!-- --\x3e"),
-          target.push(escapeTextForBrowser(text)),
-          (target = !0));
-      return target;
-    }
-    function pushSegmentFinale(
-      target,
-      renderState,
-      lastPushedText,
-      textEmbedded
-    ) {
-      renderState.generateStaticMarkup ||
-        (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e"));
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function popToNearestCommonAncestor(prev, next) {
-      if (prev !== next) {
-        prev.context._currentValue2 = prev.parentValue;
-        prev = prev.parent;
-        var parentNext = next.parent;
-        if (null === prev) {
-          if (null !== parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-        } else {
-          if (null === parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-          popToNearestCommonAncestor(prev, parentNext);
-        }
-        next.context._currentValue2 = next.value;
-      }
-    }
-    function popAllPrevious(prev) {
-      prev.context._currentValue2 = prev.parentValue;
-      prev = prev.parent;
-      null !== prev && popAllPrevious(prev);
-    }
-    function pushAllNext(next) {
-      var parentNext = next.parent;
-      null !== parentNext && pushAllNext(parentNext);
-      next.context._currentValue2 = next.value;
-    }
-    function popPreviousToCommonLevel(prev, next) {
-      prev.context._currentValue2 = prev.parentValue;
-      prev = prev.parent;
-      if (null === prev)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === next.depth
-        ? popToNearestCommonAncestor(prev, next)
-        : popPreviousToCommonLevel(prev, next);
-    }
-    function popNextToCommonLevel(prev, next) {
-      var parentNext = next.parent;
-      if (null === parentNext)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === parentNext.depth
-        ? popToNearestCommonAncestor(prev, parentNext)
-        : popNextToCommonLevel(prev, parentNext);
-      next.context._currentValue2 = next.value;
-    }
-    function switchContext(newSnapshot) {
-      var prev = currentActiveSnapshot;
-      prev !== newSnapshot &&
-        (null === prev
-          ? pushAllNext(newSnapshot)
-          : null === newSnapshot
-            ? popAllPrevious(prev)
-            : prev.depth === newSnapshot.depth
-              ? popToNearestCommonAncestor(prev, newSnapshot)
-              : prev.depth > newSnapshot.depth
-                ? popPreviousToCommonLevel(prev, newSnapshot)
-                : popNextToCommonLevel(prev, newSnapshot),
-        (currentActiveSnapshot = newSnapshot));
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          getComponentNameFromType(publicInstance)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnAboutNoopUpdateForComponent[warningKey] ||
-        (console.error(
-          "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-    }
-    function pushTreeContext(baseContext, totalChildren, index) {
-      var baseIdWithLeadingBit = baseContext.id;
-      baseContext = baseContext.overflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        return {
-          id:
-            (1 << (32 - clz32(totalChildren) + baseLength)) |
-            (index << baseLength) |
-            baseIdWithLeadingBit,
-          overflow: length + baseContext
-        };
-      }
-      return {
-        id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-        overflow: baseContext
-      };
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function noop() {}
-    function trackUsedThenable(thenableState, thenable, index) {
-      index = thenableState[index];
-      void 0 === index
-        ? thenableState.push(thenable)
-        : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          "string" === typeof thenable.status
-            ? thenable.then(noop, noop)
-            : ((thenableState = thenable),
-              (thenableState.status = "pending"),
-              thenableState.then(
-                function (fulfilledValue) {
-                  if ("pending" === thenable.status) {
-                    var fulfilledThenable = thenable;
-                    fulfilledThenable.status = "fulfilled";
-                    fulfilledThenable.value = fulfilledValue;
-                  }
-                },
-                function (error) {
-                  if ("pending" === thenable.status) {
-                    var rejectedThenable = thenable;
-                    rejectedThenable.status = "rejected";
-                    rejectedThenable.reason = error;
-                  }
-                }
-              ));
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-          suspendedThenable = thenable;
-          throw SuspenseException;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      return thenable;
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function resolveCurrentlyRenderingComponent() {
-      if (null === currentlyRenderingComponent)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      isInHookUserCodeInDev &&
-        console.error(
-          "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-        );
-      return currentlyRenderingComponent;
-    }
-    function createHook() {
-      if (0 < numberOfReRenders)
-        throw Error("Rendered more hooks than during the previous render");
-      return { memoizedState: null, queue: null, next: null };
-    }
-    function createWorkInProgressHook() {
-      null === workInProgressHook
-        ? null === firstWorkInProgressHook
-          ? ((isReRender = !1),
-            (firstWorkInProgressHook = workInProgressHook = createHook()))
-          : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-        : null === workInProgressHook.next
-          ? ((isReRender = !1),
-            (workInProgressHook = workInProgressHook.next = createHook()))
-          : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-      return workInProgressHook;
-    }
-    function getThenableStateAfterSuspending() {
-      var state = thenableState;
-      thenableState = null;
-      return state;
-    }
-    function resetHooksState() {
-      isInHookUserCodeInDev = !1;
-      currentlyRenderingKeyPath =
-        currentlyRenderingRequest =
-        currentlyRenderingTask =
-        currentlyRenderingComponent =
-          null;
-      didScheduleRenderPhaseUpdate = !1;
-      firstWorkInProgressHook = null;
-      numberOfReRenders = 0;
-      workInProgressHook = renderPhaseUpdates = null;
-    }
-    function readContext(context) {
-      isInHookUserCodeInDev &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return context._currentValue2;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function useReducer(reducer, initialArg, init) {
-      reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      if (isReRender) {
-        init = workInProgressHook.queue;
-        initialArg = init.dispatch;
-        if (null !== renderPhaseUpdates) {
-          var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-          if (void 0 !== firstRenderPhaseUpdate) {
-            renderPhaseUpdates.delete(init);
-            init = workInProgressHook.memoizedState;
-            do {
-              var action = firstRenderPhaseUpdate.action;
-              isInHookUserCodeInDev = !0;
-              init = reducer(init, action);
-              isInHookUserCodeInDev = !1;
-              firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-            } while (null !== firstRenderPhaseUpdate);
-            workInProgressHook.memoizedState = init;
-            return [init, initialArg];
-          }
-        }
-        return [workInProgressHook.memoizedState, initialArg];
-      }
-      isInHookUserCodeInDev = !0;
-      reducer =
-        reducer === basicStateReducer
-          ? "function" === typeof initialArg
-            ? initialArg()
-            : initialArg
-          : void 0 !== init
-            ? init(initialArg)
-            : initialArg;
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = reducer;
-      reducer = workInProgressHook.queue = { last: null, dispatch: null };
-      reducer = reducer.dispatch = dispatchAction.bind(
-        null,
-        currentlyRenderingComponent,
-        reducer
-      );
-      return [workInProgressHook.memoizedState, reducer];
-    }
-    function useMemo(nextCreate, deps) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      if (null !== workInProgressHook) {
-        var prevState = workInProgressHook.memoizedState;
-        if (null !== prevState && null !== deps) {
-          a: {
-            var JSCompiler_inline_result = prevState[1];
-            if (null === JSCompiler_inline_result)
-              console.error(
-                "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-                currentHookNameInDev
-              ),
-                (JSCompiler_inline_result = !1);
-            else {
-              deps.length !== JSCompiler_inline_result.length &&
-                console.error(
-                  "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-                  currentHookNameInDev,
-                  "[" + deps.join(", ") + "]",
-                  "[" + JSCompiler_inline_result.join(", ") + "]"
-                );
-              for (
-                var i = 0;
-                i < JSCompiler_inline_result.length && i < deps.length;
-                i++
-              )
-                if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-                  JSCompiler_inline_result = !1;
-                  break a;
-                }
-              JSCompiler_inline_result = !0;
-            }
-          }
-          if (JSCompiler_inline_result) return prevState[0];
-        }
-      }
-      isInHookUserCodeInDev = !0;
-      nextCreate = nextCreate();
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = [nextCreate, deps];
-      return nextCreate;
-    }
-    function dispatchAction(componentIdentity, queue, action) {
-      if (25 <= numberOfReRenders)
-        throw Error(
-          "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-        );
-      if (componentIdentity === currentlyRenderingComponent)
-        if (
-          ((didScheduleRenderPhaseUpdate = !0),
-          (componentIdentity = { action: action, next: null }),
-          null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-          (action = renderPhaseUpdates.get(queue)),
-          void 0 === action)
-        )
-          renderPhaseUpdates.set(queue, componentIdentity);
-        else {
-          for (queue = action; null !== queue.next; ) queue = queue.next;
-          queue.next = componentIdentity;
-        }
-    }
-    function throwOnUseEffectEventCall() {
-      throw Error(
-        "A function wrapped in useEffectEvent can't be called during rendering."
-      );
-    }
-    function unsupportedStartTransition() {
-      throw Error("startTransition cannot be called during server rendering.");
-    }
-    function unsupportedSetOptimisticState() {
-      throw Error("Cannot update optimistic state while rendering.");
-    }
-    function useActionState(action, initialState, permalink) {
-      resolveCurrentlyRenderingComponent();
-      var actionStateHookIndex = actionStateCounter++,
-        request = currentlyRenderingRequest;
-      if ("function" === typeof action.$$FORM_ACTION) {
-        var nextPostbackStateKey = null,
-          componentKeyPath = currentlyRenderingKeyPath;
-        request = request.formState;
-        var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-        if (null !== request && "function" === typeof isSignatureEqual) {
-          var postbackKey = request[1];
-          isSignatureEqual.call(action, request[2], request[3]) &&
-            ((nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-            postbackKey === nextPostbackStateKey &&
-              ((actionStateMatchingIndex = actionStateHookIndex),
-              (initialState = request[0])));
-        }
-        var boundAction = action.bind(null, initialState);
-        action = function (payload) {
-          boundAction(payload);
-        };
-        "function" === typeof boundAction.$$FORM_ACTION &&
-          (action.$$FORM_ACTION = function (prefix) {
-            prefix = boundAction.$$FORM_ACTION(prefix);
-            void 0 !== permalink &&
-              (checkAttributeStringCoercion(permalink, "target"),
-              (permalink += ""),
-              (prefix.action = permalink));
-            var formData = prefix.data;
-            formData &&
-              (null === nextPostbackStateKey &&
-                (nextPostbackStateKey =
-                  void 0 !== permalink
-                    ? "p" + permalink
-                    : "k" +
-                      murmurhash3_32_gc(
-                        JSON.stringify([
-                          componentKeyPath,
-                          null,
-                          actionStateHookIndex
-                        ]),
-                        0
-                      )),
-              formData.append("$ACTION_KEY", nextPostbackStateKey));
-            return prefix;
-          });
-        return [initialState, action, !1];
-      }
-      var _boundAction = action.bind(null, initialState);
-      return [
-        initialState,
-        function (payload) {
-          _boundAction(payload);
-        },
-        !1
-      ];
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = []);
-      return trackUsedThenable(thenableState, thenable, index);
-    }
-    function unsupportedRefresh() {
-      throw Error("Cache cannot be refreshed during server rendering.");
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeComponentStackByType(type) {
-      if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-      if ("function" === typeof type)
-        return type.prototype && type.prototype.isReactComponent
-          ? describeNativeComponentFrame(type, !0)
-          : describeNativeComponentFrame(type, !1);
-      if ("object" === typeof type && null !== type) {
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeNativeComponentFrame(type.render, !1);
-          case REACT_MEMO_TYPE:
-            return describeNativeComponentFrame(type.type, !1);
-          case REACT_LAZY_TYPE:
-            var lazyComponent = type,
-              payload = lazyComponent._payload;
-            lazyComponent = lazyComponent._init;
-            try {
-              type = lazyComponent(payload);
-            } catch (x) {
-              return describeBuiltInComponentFrame("Lazy");
-            }
-            return describeComponentStackByType(type);
-        }
-        if ("string" === typeof type.name) {
-          a: {
-            payload = type.name;
-            lazyComponent = type.env;
-            type = type.debugLocation;
-            if (null != type) {
-              type = formatOwnerStack(type);
-              var idx = type.lastIndexOf("\n");
-              type = -1 === idx ? type : type.slice(idx + 1);
-              if (-1 !== type.indexOf(payload)) {
-                payload = "\n" + type;
-                break a;
-              }
-            }
-            payload = describeBuiltInComponentFrame(
-              payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-            );
-          }
-          return payload;
-        }
-      }
-      switch (type) {
-        case REACT_SUSPENSE_LIST_TYPE:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case REACT_SUSPENSE_TYPE:
-          return describeBuiltInComponentFrame("Suspense");
-      }
-      return "";
-    }
-    function isEligibleForOutlining(request, boundary) {
-      return (
-        (500 < boundary.byteSize || !1) && null === boundary.contentPreamble
-      );
-    }
-    function defaultErrorHandler(error) {
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [error].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              "[%s] " + error[0],
-              " " + JSCompiler_inline_result + " "
-            )
-          : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else console.error(error);
-      return null;
-    }
-    function RequestInstance(
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var abortSet = new Set();
-      this.destination = null;
-      this.flushScheduled = !1;
-      this.resumableState = resumableState;
-      this.renderState = renderState;
-      this.rootFormatContext = rootFormatContext;
-      this.progressiveChunkSize =
-        void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-      this.status = 10;
-      this.fatalError = null;
-      this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-      this.completedPreambleSegments = this.completedRootSegment = null;
-      this.byteSize = 0;
-      this.abortableTasks = abortSet;
-      this.pingedTasks = [];
-      this.clientRenderedBoundaries = [];
-      this.completedBoundaries = [];
-      this.partialBoundaries = [];
-      this.trackedPostpones = null;
-      this.onError = void 0 === onError ? defaultErrorHandler : onError;
-      this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-      this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-      this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-      this.onShellError = void 0 === onShellError ? noop : onShellError;
-      this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-      this.formState = void 0 === formState ? null : formState;
-      this.didWarnForKey = null;
-    }
-    function createRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var now = getCurrentTime();
-      1e3 < now - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = now));
-      resumableState = new RequestInstance(
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        formState
-      );
-      renderState = createPendingSegment(
-        resumableState,
-        0,
-        null,
-        rootFormatContext,
-        !1,
-        !1
-      );
-      renderState.parentFlushed = !0;
-      children = createRenderTask(
-        resumableState,
-        null,
-        children,
-        -1,
-        null,
-        renderState,
-        null,
-        null,
-        resumableState.abortableTasks,
-        null,
-        rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      resumableState.pingedTasks.push(children);
-      return resumableState;
-    }
-    function pingTask(request, task) {
-      request.pingedTasks.push(task);
-      1 === request.pingedTasks.length &&
-        ((request.flushScheduled = null !== request.destination),
-        performWork(request));
-    }
-    function createSuspenseBoundary(
-      request,
-      row,
-      fallbackAbortableTasks,
-      contentPreamble,
-      fallbackPreamble
-    ) {
-      fallbackAbortableTasks = {
-        status: PENDING,
-        rootSegmentID: -1,
-        parentFlushed: !1,
-        pendingTasks: 0,
-        row: row,
-        completedSegments: [],
-        byteSize: 0,
-        fallbackAbortableTasks: fallbackAbortableTasks,
-        errorDigest: null,
-        contentState: createHoistableState(),
-        fallbackState: createHoistableState(),
-        contentPreamble: contentPreamble,
-        fallbackPreamble: fallbackPreamble,
-        trackedContentKeyPath: null,
-        trackedFallbackNode: null,
-        errorMessage: null,
-        errorStack: null,
-        errorComponentStack: null
-      };
-      null !== row &&
-        (row.pendingTasks++,
-        (contentPreamble = row.boundaries),
-        null !== contentPreamble &&
-          (request.allPendingTasks++,
-          fallbackAbortableTasks.pendingTasks++,
-          contentPreamble.push(fallbackAbortableTasks)),
-        (request = row.inheritedHoistables),
-        null !== request &&
-          hoistHoistables(fallbackAbortableTasks.contentState, request));
-      return fallbackAbortableTasks;
-    }
-    function createRenderTask(
-      request,
-      thenableState,
-      node,
-      childIndex,
-      blockedBoundary,
-      blockedSegment,
-      blockedPreamble,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      var task = {
-        replay: null,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: blockedSegment,
-        blockedPreamble: blockedPreamble,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createReplayTask(
-      request,
-      thenableState,
-      replay,
-      node,
-      childIndex,
-      blockedBoundary,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      replay.pendingTasks++;
-      var task = {
-        replay: replay,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: null,
-        blockedPreamble: null,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createPendingSegment(
-      request,
-      index,
-      boundary,
-      parentFormatContext,
-      lastPushedText,
-      textEmbedded
-    ) {
-      return {
-        status: PENDING,
-        parentFlushed: !1,
-        id: -1,
-        index: index,
-        chunks: [],
-        children: [],
-        preambleChildren: [],
-        parentFormatContext: parentFormatContext,
-        boundary: boundary,
-        lastPushedText: lastPushedText,
-        textEmbedded: textEmbedded
-      };
-    }
-    function getCurrentStackInDEV() {
-      if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-        return "";
-      var componentStack = currentTaskInDEV.componentStack;
-      try {
-        var info = "";
-        if ("string" === typeof componentStack.type)
-          info += describeBuiltInComponentFrame(componentStack.type);
-        else if ("function" === typeof componentStack.type) {
-          if (!componentStack.owner) {
-            var JSCompiler_temp_const = info,
-              fn = componentStack.type,
-              name = fn ? fn.displayName || fn.name : "";
-            var JSCompiler_inline_result = name
-              ? describeBuiltInComponentFrame(name)
-              : "";
-            info = JSCompiler_temp_const + JSCompiler_inline_result;
-          }
-        } else
-          componentStack.owner ||
-            (info += describeComponentStackByType(componentStack.type));
-        for (; componentStack; )
-          (JSCompiler_temp_const = null),
-            null != componentStack.debugStack
-              ? (JSCompiler_temp_const = formatOwnerStack(
-                  componentStack.debugStack
-                ))
-              : ((JSCompiler_inline_result = componentStack),
-                null != JSCompiler_inline_result.stack &&
-                  (JSCompiler_temp_const =
-                    "string" !== typeof JSCompiler_inline_result.stack
-                      ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                          JSCompiler_inline_result.stack
-                        ))
-                      : JSCompiler_inline_result.stack)),
-            (componentStack = componentStack.owner) &&
-              JSCompiler_temp_const &&
-              (info += "\n" + JSCompiler_temp_const);
-        var JSCompiler_inline_result$jscomp$0 = info;
-      } catch (x) {
-        JSCompiler_inline_result$jscomp$0 =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result$jscomp$0;
-    }
-    function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--) {
-          var info = debugInfo[i];
-          if ("string" === typeof info.name) break;
-          if ("number" === typeof info.time) break;
-          if (null != info.awaited) {
-            var bestStack = null == info.debugStack ? info.awaited : info;
-            if (void 0 !== bestStack.debugStack) {
-              task.componentStack = {
-                parent: task.componentStack,
-                type: info,
-                owner: bestStack.owner,
-                stack: bestStack.debugStack
-              };
-              task.debugTask = bestStack.debugTask;
-              break;
-            }
-          }
-        }
-    }
-    function pushServerComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var componentInfo = debugInfo[i];
-          "string" === typeof componentInfo.name &&
-            void 0 !== componentInfo.debugStack &&
-            ((task.componentStack = {
-              parent: task.componentStack,
-              type: componentInfo,
-              owner: componentInfo.owner,
-              stack: componentInfo.debugStack
-            }),
-            (task.debugTask = componentInfo.debugTask));
-        }
-    }
-    function pushComponentStack(task) {
-      var node = task.node;
-      if ("object" === typeof node && null !== node)
-        switch (node.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-            var type = node.type,
-              owner = node._owner,
-              stack = node._debugStack;
-            pushServerComponentStack(task, node._debugInfo);
-            task.debugTask = node._debugTask;
-            task.componentStack = {
-              parent: task.componentStack,
-              type: type,
-              owner: owner,
-              stack: stack
-            };
-            break;
-          case REACT_LAZY_TYPE:
-            pushServerComponentStack(task, node._debugInfo);
-            break;
-          default:
-            "function" === typeof node.then &&
-              pushServerComponentStack(task, node._debugInfo);
-        }
-    }
-    function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-      componentStack
-    ) {
-      return null === componentStack
-        ? null
-        : {
-            parent: componentStack.parent,
-            type: "Suspense Fallback",
-            owner: componentStack.owner,
-            stack: componentStack.stack
-          };
-    }
-    function getThrownInfo(node$jscomp$0) {
-      var errorInfo = {};
-      node$jscomp$0 &&
-        Object.defineProperty(errorInfo, "componentStack", {
-          configurable: !0,
-          enumerable: !0,
-          get: function () {
-            try {
-              var info = "",
-                node = node$jscomp$0;
-              do
-                (info += describeComponentStackByType(node.type)),
-                  (node = node.parent);
-              while (node);
-              var stack = info;
-            } catch (x) {
-              stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-            }
-            Object.defineProperty(errorInfo, "componentStack", {
-              value: stack
-            });
-            return stack;
-          }
-        });
-      return errorInfo;
-    }
-    function encodeErrorForBoundary(
-      boundary,
-      digest,
-      error,
-      thrownInfo,
-      wasAborted
-    ) {
-      boundary.errorDigest = digest;
-      error instanceof Error
-        ? ((digest = String(error.message)), (error = String(error.stack)))
-        : ((digest =
-            "object" === typeof error && null !== error
-              ? describeObjectForErrorMessage(error)
-              : String(error)),
-          (error = null));
-      wasAborted = wasAborted
-        ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-        : "Switched to client rendering because the server rendering errored:\n\n";
-      boundary.errorMessage = wasAborted + digest;
-      boundary.errorStack = null !== error ? wasAborted + error : null;
-      boundary.errorComponentStack = thrownInfo.componentStack;
-    }
-    function logRecoverableError(request, error, errorInfo, debugTask) {
-      request = request.onError;
-      error = debugTask
-        ? debugTask.run(request.bind(null, error, errorInfo))
-        : request(error, errorInfo);
-      if (null != error && "string" !== typeof error)
-        console.error(
-          'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-          typeof error
-        );
-      else return error;
-    }
-    function fatalError(request, error, errorInfo, debugTask) {
-      errorInfo = request.onShellError;
-      var onFatalError = request.onFatalError;
-      debugTask
-        ? (debugTask.run(errorInfo.bind(null, error)),
-          debugTask.run(onFatalError.bind(null, error)))
-        : (errorInfo(error), onFatalError(error));
-      null !== request.destination
-        ? ((request.status = CLOSED), request.destination.destroy(error))
-        : ((request.status = 13), (request.fatalError = error));
-    }
-    function finishSuspenseListRow(request, row) {
-      unblockSuspenseListRow(request, row.next, row.hoistables);
-    }
-    function unblockSuspenseListRow(
-      request,
-      unblockedRow,
-      inheritedHoistables
-    ) {
-      for (; null !== unblockedRow; ) {
-        null !== inheritedHoistables &&
-          (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-          (unblockedRow.inheritedHoistables = inheritedHoistables));
-        var unblockedBoundaries = unblockedRow.boundaries;
-        if (null !== unblockedBoundaries) {
-          unblockedRow.boundaries = null;
-          for (var i = 0; i < unblockedBoundaries.length; i++) {
-            var unblockedBoundary = unblockedBoundaries[i];
-            null !== inheritedHoistables &&
-              hoistHoistables(
-                unblockedBoundary.contentState,
-                inheritedHoistables
-              );
-            finishedTask(request, unblockedBoundary, null, null);
-          }
-        }
-        unblockedRow.pendingTasks--;
-        if (0 < unblockedRow.pendingTasks) break;
-        inheritedHoistables = unblockedRow.hoistables;
-        unblockedRow = unblockedRow.next;
-      }
-    }
-    function tryToResolveTogetherRow(request, togetherRow) {
-      var boundaries = togetherRow.boundaries;
-      if (
-        null !== boundaries &&
-        togetherRow.pendingTasks === boundaries.length
-      ) {
-        for (
-          var allCompleteAndInlinable = !0, i = 0;
-          i < boundaries.length;
-          i++
-        ) {
-          var rowBoundary = boundaries[i];
-          if (
-            1 !== rowBoundary.pendingTasks ||
-            rowBoundary.parentFlushed ||
-            isEligibleForOutlining(request, rowBoundary)
-          ) {
-            allCompleteAndInlinable = !1;
-            break;
-          }
-        }
-        allCompleteAndInlinable &&
-          unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-      }
-    }
-    function createSuspenseListRow(previousRow) {
-      var newRow = {
-        pendingTasks: 1,
-        boundaries: null,
-        hoistables: createHoistableState(),
-        inheritedHoistables: null,
-        together: !1,
-        next: null
-      };
-      null !== previousRow &&
-        0 < previousRow.pendingTasks &&
-        (newRow.pendingTasks++,
-        (newRow.boundaries = []),
-        (previousRow.next = newRow));
-      return newRow;
-    }
-    function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-      var prevKeyPath = task.keyPath,
-        prevTreeContext = task.treeContext,
-        prevRow = task.row,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node.props.children._debugInfo);
-      task.keyPath = keyPath;
-      keyPath = rows.length;
-      var previousSuspenseListRow = null;
-      if (null !== task.replay) {
-        var resumeSlots = task.replay.slots;
-        if (null !== resumeSlots && "object" === typeof resumeSlots)
-          for (var n = 0; n < keyPath; n++) {
-            var i =
-                "backwards" !== revealOrder &&
-                "unstable_legacy-backwards" !== revealOrder
-                  ? n
-                  : keyPath - 1 - n,
-              node = rows[i];
-            task.row = previousSuspenseListRow = createSuspenseListRow(
-              previousSuspenseListRow
-            );
-            task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-            var resumeSegmentID = resumeSlots[i];
-            "number" === typeof resumeSegmentID
-              ? (resumeNode(request, task, resumeSegmentID, node, i),
-                delete resumeSlots[i])
-              : renderNode(request, task, node, i);
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-          }
-        else
-          for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-            (n =
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder
-                ? resumeSlots
-                : keyPath - 1 - resumeSlots),
-              (i = rows[n]),
-              warnForMissingKey(request, task, i),
-              (task.row = previousSuspenseListRow =
-                createSuspenseListRow(previousSuspenseListRow)),
-              (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-              renderNode(request, task, i, n),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-      } else if (
-        "backwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder
-      )
-        for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-          (resumeSlots = rows[revealOrder]),
-            warnForMissingKey(request, task, resumeSlots),
-            (task.row = previousSuspenseListRow =
-              createSuspenseListRow(previousSuspenseListRow)),
-            (task.treeContext = pushTreeContext(
-              prevTreeContext,
-              keyPath,
-              revealOrder
-            )),
-            renderNode(request, task, resumeSlots, revealOrder),
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-      else {
-        revealOrder = task.blockedSegment;
-        resumeSlots = revealOrder.children.length;
-        n = revealOrder.chunks.length;
-        for (i = keyPath - 1; 0 <= i; i--) {
-          node = rows[i];
-          task.row = previousSuspenseListRow = createSuspenseListRow(
-            previousSuspenseListRow
-          );
-          task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-          resumeSegmentID = createPendingSegment(
-            request,
-            n,
-            null,
-            task.formatContext,
-            0 === i ? revealOrder.lastPushedText : !0,
-            !0
-          );
-          revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-          task.blockedSegment = resumeSegmentID;
-          warnForMissingKey(request, task, node);
-          try {
-            renderNode(request, task, node, i),
-              pushSegmentFinale(
-                resumeSegmentID.chunks,
-                request.renderState,
-                resumeSegmentID.lastPushedText,
-                resumeSegmentID.textEmbedded
-              ),
-              (resumeSegmentID.status = COMPLETED),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-          } catch (thrownValue) {
-            throw (
-              ((resumeSegmentID.status =
-                12 === request.status ? ABORTED : ERRORED),
-              thrownValue)
-            );
-          }
-        }
-        task.blockedSegment = revealOrder;
-        revealOrder.lastPushedText = !1;
-      }
-      null !== prevRow &&
-        null !== previousSuspenseListRow &&
-        0 < previousSuspenseListRow.pendingTasks &&
-        (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-      task.treeContext = prevTreeContext;
-      task.row = prevRow;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function renderWithHooks(
-      request,
-      task,
-      keyPath,
-      Component,
-      props,
-      secondArg
-    ) {
-      var prevThenableState = task.thenableState;
-      task.thenableState = null;
-      currentlyRenderingComponent = {};
-      currentlyRenderingTask = task;
-      currentlyRenderingRequest = request;
-      currentlyRenderingKeyPath = keyPath;
-      isInHookUserCodeInDev = !1;
-      actionStateCounter = localIdCounter = 0;
-      actionStateMatchingIndex = -1;
-      thenableIndexCounter = 0;
-      thenableState = prevThenableState;
-      for (
-        request = callComponentInDEV(Component, props, secondArg);
-        didScheduleRenderPhaseUpdate;
-
-      )
-        (didScheduleRenderPhaseUpdate = !1),
-          (actionStateCounter = localIdCounter = 0),
-          (actionStateMatchingIndex = -1),
-          (thenableIndexCounter = 0),
-          (numberOfReRenders += 1),
-          (workInProgressHook = null),
-          (request = Component(props, secondArg));
-      resetHooksState();
-      return request;
-    }
-    function finishFunctionComponent(
-      request,
-      task,
-      keyPath,
-      children,
-      hasId,
-      actionStateCount,
-      actionStateMatchingIndex
-    ) {
-      var didEmitActionStateMarkers = !1;
-      if (0 !== actionStateCount && null !== request.formState) {
-        var segment = task.blockedSegment;
-        if (null !== segment) {
-          didEmitActionStateMarkers = !0;
-          segment = segment.chunks;
-          for (var i = 0; i < actionStateCount; i++)
-            i === actionStateMatchingIndex
-              ? segment.push("\x3c!--F!--\x3e")
-              : segment.push("\x3c!--F--\x3e");
-        }
-      }
-      actionStateCount = task.keyPath;
-      task.keyPath = keyPath;
-      hasId
-        ? ((keyPath = task.treeContext),
-          (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-          renderNode(request, task, children, -1),
-          (task.treeContext = keyPath))
-        : didEmitActionStateMarkers
-          ? renderNode(request, task, children, -1)
-          : renderNodeDestructive(request, task, children, -1);
-      task.keyPath = actionStateCount;
-    }
-    function renderElement(request, task, keyPath, type, props, ref) {
-      if ("function" === typeof type)
-        if (type.prototype && type.prototype.isReactComponent) {
-          var newProps = props;
-          if ("ref" in props) {
-            newProps = {};
-            for (var propName in props)
-              "ref" !== propName && (newProps[propName] = props[propName]);
-          }
-          var defaultProps = type.defaultProps;
-          if (defaultProps) {
-            newProps === props && (newProps = assign({}, newProps, props));
-            for (var _propName in defaultProps)
-              void 0 === newProps[_propName] &&
-                (newProps[_propName] = defaultProps[_propName]);
-          }
-          var resolvedProps = newProps;
-          var context = emptyContextObject,
-            contextType = type.contextType;
-          if (
-            "contextType" in type &&
-            null !== contextType &&
-            (void 0 === contextType ||
-              contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-            !didWarnAboutInvalidateContextType.has(type)
-          ) {
-            didWarnAboutInvalidateContextType.add(type);
-            var addendum =
-              void 0 === contextType
-                ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-                : "object" !== typeof contextType
-                  ? " However, it is set to a " + typeof contextType + "."
-                  : contextType.$$typeof === REACT_CONSUMER_TYPE
-                    ? " Did you accidentally pass the Context.Consumer instead?"
-                    : " However, it is set to an object with keys {" +
-                      Object.keys(contextType).join(", ") +
-                      "}.";
-            console.error(
-              "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-              getComponentNameFromType(type) || "Component",
-              addendum
-            );
-          }
-          "object" === typeof contextType &&
-            null !== contextType &&
-            (context = contextType._currentValue2);
-          var instance = new type(resolvedProps, context);
-          if (
-            "function" === typeof type.getDerivedStateFromProps &&
-            (null === instance.state || void 0 === instance.state)
-          ) {
-            var componentName = getComponentNameFromType(type) || "Component";
-            didWarnAboutUninitializedState.has(componentName) ||
-              (didWarnAboutUninitializedState.add(componentName),
-              console.error(
-                "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-                componentName,
-                null === instance.state ? "null" : "undefined",
-                componentName
-              ));
-          }
-          if (
-            "function" === typeof type.getDerivedStateFromProps ||
-            "function" === typeof instance.getSnapshotBeforeUpdate
-          ) {
-            var foundWillMountName = null,
-              foundWillReceivePropsName = null,
-              foundWillUpdateName = null;
-            "function" === typeof instance.componentWillMount &&
-            !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ? (foundWillMountName = "componentWillMount")
-              : "function" === typeof instance.UNSAFE_componentWillMount &&
-                (foundWillMountName = "UNSAFE_componentWillMount");
-            "function" === typeof instance.componentWillReceiveProps &&
-            !0 !==
-              instance.componentWillReceiveProps.__suppressDeprecationWarning
-              ? (foundWillReceivePropsName = "componentWillReceiveProps")
-              : "function" ===
-                  typeof instance.UNSAFE_componentWillReceiveProps &&
-                (foundWillReceivePropsName =
-                  "UNSAFE_componentWillReceiveProps");
-            "function" === typeof instance.componentWillUpdate &&
-            !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-              ? (foundWillUpdateName = "componentWillUpdate")
-              : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-                (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-            if (
-              null !== foundWillMountName ||
-              null !== foundWillReceivePropsName ||
-              null !== foundWillUpdateName
-            ) {
-              var _componentName =
-                  getComponentNameFromType(type) || "Component",
-                newApiName =
-                  "function" === typeof type.getDerivedStateFromProps
-                    ? "getDerivedStateFromProps()"
-                    : "getSnapshotBeforeUpdate()";
-              didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-                (didWarnAboutLegacyLifecyclesAndDerivedState.add(
-                  _componentName
-                ),
-                console.error(
-                  "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                  _componentName,
-                  newApiName,
-                  null !== foundWillMountName
-                    ? "\n  " + foundWillMountName
-                    : "",
-                  null !== foundWillReceivePropsName
-                    ? "\n  " + foundWillReceivePropsName
-                    : "",
-                  null !== foundWillUpdateName
-                    ? "\n  " + foundWillUpdateName
-                    : ""
-                ));
-            }
-          }
-          var name = getComponentNameFromType(type) || "Component";
-          instance.render ||
-            (type.prototype && "function" === typeof type.prototype.render
-              ? console.error(
-                  "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                  name
-                )
-              : console.error(
-                  "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                  name
-                ));
-          !instance.getInitialState ||
-            instance.getInitialState.isReactClassApproved ||
-            instance.state ||
-            console.error(
-              "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-              name
-            );
-          instance.getDefaultProps &&
-            !instance.getDefaultProps.isReactClassApproved &&
-            console.error(
-              "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-              name
-            );
-          instance.contextType &&
-            console.error(
-              "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-              name
-            );
-          type.childContextTypes &&
-            !didWarnAboutChildContextTypes.has(type) &&
-            (didWarnAboutChildContextTypes.add(type),
-            console.error(
-              "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          type.contextTypes &&
-            !didWarnAboutContextTypes$1.has(type) &&
-            (didWarnAboutContextTypes$1.add(type),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          "function" === typeof instance.componentShouldUpdate &&
-            console.error(
-              "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-              name
-            );
-          type.prototype &&
-            type.prototype.isPureReactComponent &&
-            "undefined" !== typeof instance.shouldComponentUpdate &&
-            console.error(
-              "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-              getComponentNameFromType(type) || "A pure component"
-            );
-          "function" === typeof instance.componentDidUnmount &&
-            console.error(
-              "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-              name
-            );
-          "function" === typeof instance.componentDidReceiveProps &&
-            console.error(
-              "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-              name
-            );
-          "function" === typeof instance.componentWillRecieveProps &&
-            console.error(
-              "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-              name
-            );
-          "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-            console.error(
-              "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-              name
-            );
-          var hasMutatedProps = instance.props !== resolvedProps;
-          void 0 !== instance.props &&
-            hasMutatedProps &&
-            console.error(
-              "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-              name
-            );
-          instance.defaultProps &&
-            console.error(
-              "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-              name,
-              name
-            );
-          "function" !== typeof instance.getSnapshotBeforeUpdate ||
-            "function" === typeof instance.componentDidUpdate ||
-            didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-            (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-            console.error(
-              "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-              getComponentNameFromType(type)
-            ));
-          "function" === typeof instance.getDerivedStateFromProps &&
-            console.error(
-              "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof instance.getDerivedStateFromError &&
-            console.error(
-              "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof type.getSnapshotBeforeUpdate &&
-            console.error(
-              "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-              name
-            );
-          var state = instance.state;
-          state &&
-            ("object" !== typeof state || isArrayImpl(state)) &&
-            console.error("%s.state: must be set to an object or null", name);
-          "function" === typeof instance.getChildContext &&
-            "object" !== typeof type.childContextTypes &&
-            console.error(
-              "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-              name
-            );
-          var initialState = void 0 !== instance.state ? instance.state : null;
-          instance.updater = classComponentUpdater;
-          instance.props = resolvedProps;
-          instance.state = initialState;
-          var internalInstance = { queue: [], replace: !1 };
-          instance._reactInternals = internalInstance;
-          var contextType$jscomp$0 = type.contextType;
-          instance.context =
-            "object" === typeof contextType$jscomp$0 &&
-            null !== contextType$jscomp$0
-              ? contextType$jscomp$0._currentValue2
-              : emptyContextObject;
-          if (instance.state === resolvedProps) {
-            var componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Component";
-            didWarnAboutDirectlyAssigningPropsToState.has(
-              componentName$jscomp$0
-            ) ||
-              (didWarnAboutDirectlyAssigningPropsToState.add(
-                componentName$jscomp$0
-              ),
-              console.error(
-                "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-                componentName$jscomp$0
-              ));
-          }
-          var getDerivedStateFromProps = type.getDerivedStateFromProps;
-          if ("function" === typeof getDerivedStateFromProps) {
-            var partialState = getDerivedStateFromProps(
-              resolvedProps,
-              initialState
-            );
-            if (void 0 === partialState) {
-              var componentName$jscomp$1 =
-                getComponentNameFromType(type) || "Component";
-              didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-                (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-                console.error(
-                  "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-                  componentName$jscomp$1
-                ));
-            }
-            var JSCompiler_inline_result =
-              null === partialState || void 0 === partialState
-                ? initialState
-                : assign({}, initialState, partialState);
-            instance.state = JSCompiler_inline_result;
-          }
-          if (
-            "function" !== typeof type.getDerivedStateFromProps &&
-            "function" !== typeof instance.getSnapshotBeforeUpdate &&
-            ("function" === typeof instance.UNSAFE_componentWillMount ||
-              "function" === typeof instance.componentWillMount)
-          ) {
-            var oldState = instance.state;
-            if ("function" === typeof instance.componentWillMount) {
-              if (
-                !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ) {
-                var componentName$jscomp$2 =
-                  getComponentNameFromType(type) || "Unknown";
-                didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-                  (console.warn(
-                    "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                    componentName$jscomp$2
-                  ),
-                  (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] =
-                    !0));
-              }
-              instance.componentWillMount();
-            }
-            "function" === typeof instance.UNSAFE_componentWillMount &&
-              instance.UNSAFE_componentWillMount();
-            oldState !== instance.state &&
-              (console.error(
-                "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-                getComponentNameFromType(type) || "Component"
-              ),
-              classComponentUpdater.enqueueReplaceState(
-                instance,
-                instance.state,
-                null
-              ));
-            if (
-              null !== internalInstance.queue &&
-              0 < internalInstance.queue.length
-            ) {
-              var oldQueue = internalInstance.queue,
-                oldReplace = internalInstance.replace;
-              internalInstance.queue = null;
-              internalInstance.replace = !1;
-              if (oldReplace && 1 === oldQueue.length)
-                instance.state = oldQueue[0];
-              else {
-                for (
-                  var nextState = oldReplace ? oldQueue[0] : instance.state,
-                    dontMutate = !0,
-                    i = oldReplace ? 1 : 0;
-                  i < oldQueue.length;
-                  i++
-                ) {
-                  var partial = oldQueue[i],
-                    partialState$jscomp$0 =
-                      "function" === typeof partial
-                        ? partial.call(
-                            instance,
-                            nextState,
-                            resolvedProps,
-                            void 0
-                          )
-                        : partial;
-                  null != partialState$jscomp$0 &&
-                    (dontMutate
-                      ? ((dontMutate = !1),
-                        (nextState = assign(
-                          {},
-                          nextState,
-                          partialState$jscomp$0
-                        )))
-                      : assign(nextState, partialState$jscomp$0));
-                }
-                instance.state = nextState;
-              }
-            } else internalInstance.queue = null;
-          }
-          var nextChildren = callRenderInDEV(instance);
-          if (12 === request.status) throw null;
-          instance.props !== resolvedProps &&
-            (didWarnAboutReassigningProps ||
-              console.error(
-                "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-                getComponentNameFromType(type) || "a component"
-              ),
-            (didWarnAboutReassigningProps = !0));
-          var prevKeyPath = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, nextChildren, -1);
-          task.keyPath = prevKeyPath;
-        } else {
-          if (type.prototype && "function" === typeof type.prototype.render) {
-            var componentName$jscomp$3 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutBadClass[componentName$jscomp$3] ||
-              (console.error(
-                "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-                componentName$jscomp$3,
-                componentName$jscomp$3
-              ),
-              (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-          }
-          var value = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type,
-            props,
-            void 0
-          );
-          if (12 === request.status) throw null;
-          var hasId = 0 !== localIdCounter,
-            actionStateCount = actionStateCounter,
-            actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-          if (type.contextTypes) {
-            var _componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypes[_componentName$jscomp$0] ||
-              ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-              console.error(
-                "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-                _componentName$jscomp$0
-              ));
-          }
-          type &&
-            type.childContextTypes &&
-            console.error(
-              "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-              type.displayName || type.name || "Component"
-            );
-          if ("function" === typeof type.getDerivedStateFromProps) {
-            var componentName$jscomp$4 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutGetDerivedStateOnFunctionComponent[
-              componentName$jscomp$4
-            ] ||
-              (console.error(
-                "%s: Function components do not support getDerivedStateFromProps.",
-                componentName$jscomp$4
-              ),
-              (didWarnAboutGetDerivedStateOnFunctionComponent[
-                componentName$jscomp$4
-              ] = !0));
-          }
-          if (
-            "object" === typeof type.contextType &&
-            null !== type.contextType
-          ) {
-            var _componentName2 = getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-              (console.error(
-                "%s: Function components do not support contextType.",
-                _componentName2
-              ),
-              (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
-                !0));
-          }
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            value,
-            hasId,
-            actionStateCount,
-            actionStateMatchingIndex$jscomp$0
-          );
-        }
-      else if ("string" === typeof type) {
-        var segment = task.blockedSegment;
-        if (null === segment) {
-          var children = props.children,
-            prevContext = task.formatContext,
-            prevKeyPath$jscomp$0 = task.keyPath;
-          task.formatContext = getChildFormatContext(prevContext, type, props);
-          task.keyPath = keyPath;
-          renderNode(request, task, children, -1);
-          task.formatContext = prevContext;
-          task.keyPath = prevKeyPath$jscomp$0;
-        } else {
-          var _children = pushStartInstance(
-            segment.chunks,
-            type,
-            props,
-            request.resumableState,
-            request.renderState,
-            task.blockedPreamble,
-            task.hoistableState,
-            task.formatContext,
-            segment.lastPushedText
-          );
-          segment.lastPushedText = !1;
-          var _prevContext2 = task.formatContext,
-            _prevKeyPath3 = task.keyPath;
-          task.keyPath = keyPath;
-          if (
-            (task.formatContext = getChildFormatContext(
-              _prevContext2,
-              type,
-              props
-            )).insertionMode === HTML_HEAD_MODE
-          ) {
-            var preambleSegment = createPendingSegment(
-              request,
-              0,
-              null,
-              task.formatContext,
-              !1,
-              !1
-            );
-            segment.preambleChildren.push(preambleSegment);
-            task.blockedSegment = preambleSegment;
-            try {
-              (preambleSegment.status = 6),
-                renderNode(request, task, _children, -1),
-                pushSegmentFinale(
-                  preambleSegment.chunks,
-                  request.renderState,
-                  preambleSegment.lastPushedText,
-                  preambleSegment.textEmbedded
-                ),
-                (preambleSegment.status = COMPLETED);
-            } finally {
-              task.blockedSegment = segment;
-            }
-          } else renderNode(request, task, _children, -1);
-          task.formatContext = _prevContext2;
-          task.keyPath = _prevKeyPath3;
-          a: {
-            var target = segment.chunks,
-              resumableState = request.resumableState;
-            switch (type) {
-              case "title":
-              case "style":
-              case "script":
-              case "area":
-              case "base":
-              case "br":
-              case "col":
-              case "embed":
-              case "hr":
-              case "img":
-              case "input":
-              case "keygen":
-              case "link":
-              case "meta":
-              case "param":
-              case "source":
-              case "track":
-              case "wbr":
-                break a;
-              case "body":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-                  resumableState.hasBody = !0;
-                  break a;
-                }
-                break;
-              case "html":
-                if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-                  resumableState.hasHtml = !0;
-                  break a;
-                }
-                break;
-              case "head":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-            }
-            target.push(endChunkForTag(type));
-          }
-          segment.lastPushedText = !1;
-        }
-      } else {
-        switch (type) {
-          case REACT_LEGACY_HIDDEN_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_FRAGMENT_TYPE:
-            var prevKeyPath$jscomp$1 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$1;
-            return;
-          case REACT_ACTIVITY_TYPE:
-            var segment$jscomp$0 = task.blockedSegment;
-            if (null === segment$jscomp$0) {
-              if ("hidden" !== props.mode) {
-                var prevKeyPath$jscomp$2 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNode(request, task, props.children, -1);
-                task.keyPath = prevKeyPath$jscomp$2;
-              }
-            } else if ("hidden" !== props.mode) {
-              request.renderState.generateStaticMarkup ||
-                segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
-              segment$jscomp$0.lastPushedText = !1;
-              var _prevKeyPath4 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNode(request, task, props.children, -1);
-              task.keyPath = _prevKeyPath4;
-              request.renderState.generateStaticMarkup ||
-                segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
-              segment$jscomp$0.lastPushedText = !1;
-            }
-            return;
-          case REACT_SUSPENSE_LIST_TYPE:
-            a: {
-              var children$jscomp$0 = props.children,
-                revealOrder = props.revealOrder;
-              if (
-                "forwards" === revealOrder ||
-                "backwards" === revealOrder ||
-                "unstable_legacy-backwards" === revealOrder
-              ) {
-                if (isArrayImpl(children$jscomp$0)) {
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                  break a;
-                }
-                var iteratorFn = getIteratorFn(children$jscomp$0);
-                if (iteratorFn) {
-                  var iterator = iteratorFn.call(children$jscomp$0);
-                  if (iterator) {
-                    validateIterable(
-                      task,
-                      children$jscomp$0,
-                      -1,
-                      iterator,
-                      iteratorFn
-                    );
-                    var step = iterator.next();
-                    if (!step.done) {
-                      var rows = [];
-                      do rows.push(step.value), (step = iterator.next());
-                      while (!step.done);
-                      renderSuspenseListRows(
-                        request,
-                        task,
-                        keyPath,
-                        children$jscomp$0,
-                        revealOrder
-                      );
-                    }
-                    break a;
-                  }
-                }
-              }
-              if ("together" === revealOrder) {
-                var _prevKeyPath2 = task.keyPath,
-                  prevRow = task.row,
-                  newRow = (task.row = createSuspenseListRow(null));
-                newRow.boundaries = [];
-                newRow.together = !0;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                0 === --newRow.pendingTasks &&
-                  finishSuspenseListRow(request, newRow);
-                task.keyPath = _prevKeyPath2;
-                task.row = prevRow;
-                null !== prevRow &&
-                  0 < newRow.pendingTasks &&
-                  (prevRow.pendingTasks++, (newRow.next = prevRow));
-              } else {
-                var prevKeyPath$jscomp$3 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                task.keyPath = prevKeyPath$jscomp$3;
-              }
-            }
-            return;
-          case REACT_VIEW_TRANSITION_TYPE:
-          case REACT_SCOPE_TYPE:
-            throw Error(
-              "ReactDOMServer does not yet support scope components."
-            );
-          case REACT_SUSPENSE_TYPE:
-            a: if (null !== task.replay) {
-              var _prevKeyPath = task.keyPath,
-                _prevContext = task.formatContext,
-                _prevRow = task.row;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                _prevContext
-              );
-              task.row = null;
-              var _content = props.children;
-              try {
-                renderNode(request, task, _content, -1);
-              } finally {
-                (task.keyPath = _prevKeyPath),
-                  (task.formatContext = _prevContext),
-                  (task.row = _prevRow);
-              }
-            } else {
-              var prevKeyPath$jscomp$4 = task.keyPath,
-                prevContext$jscomp$0 = task.formatContext,
-                prevRow$jscomp$0 = task.row,
-                parentBoundary = task.blockedBoundary,
-                parentPreamble = task.blockedPreamble,
-                parentHoistableState = task.hoistableState,
-                parentSegment = task.blockedSegment,
-                fallback = props.fallback,
-                content = props.children,
-                fallbackAbortSet = new Set();
-              var newBoundary = createSuspenseBoundary(
-                request,
-                task.row,
-                fallbackAbortSet,
-                null,
-                null
-              );
-              null !== request.trackedPostpones &&
-                (newBoundary.trackedContentKeyPath = keyPath);
-              var boundarySegment = createPendingSegment(
-                request,
-                parentSegment.chunks.length,
-                newBoundary,
-                task.formatContext,
-                !1,
-                !1
-              );
-              parentSegment.children.push(boundarySegment);
-              parentSegment.lastPushedText = !1;
-              var contentRootSegment = createPendingSegment(
-                request,
-                0,
-                null,
-                task.formatContext,
-                !1,
-                !1
-              );
-              contentRootSegment.parentFlushed = !0;
-              if (null !== request.trackedPostpones) {
-                var suspenseComponentStack = task.componentStack,
-                  fallbackKeyPath = [
-                    keyPath[0],
-                    "Suspense Fallback",
-                    keyPath[2]
-                  ],
-                  fallbackReplayNode = [
-                    fallbackKeyPath[1],
-                    fallbackKeyPath[2],
-                    [],
-                    null
-                  ];
-                request.trackedPostpones.workingMap.set(
-                  fallbackKeyPath,
-                  fallbackReplayNode
-                );
-                newBoundary.trackedFallbackNode = fallbackReplayNode;
-                task.blockedSegment = boundarySegment;
-                task.blockedPreamble = newBoundary.fallbackPreamble;
-                task.keyPath = fallbackKeyPath;
-                task.formatContext = getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.componentStack =
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    suspenseComponentStack
-                  );
-                boundarySegment.status = 6;
-                try {
-                  renderNode(request, task, fallback, -1),
-                    pushSegmentFinale(
-                      boundarySegment.chunks,
-                      request.renderState,
-                      boundarySegment.lastPushedText,
-                      boundarySegment.textEmbedded
-                    ),
-                    (boundarySegment.status = COMPLETED);
-                } catch (thrownValue) {
-                  throw (
-                    ((boundarySegment.status =
-                      12 === request.status ? ABORTED : ERRORED),
-                    thrownValue)
-                  );
-                } finally {
-                  (task.blockedSegment = parentSegment),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0);
-                }
-                var suspendedPrimaryTask = createRenderTask(
-                  request,
-                  null,
-                  content,
-                  -1,
-                  newBoundary,
-                  contentRootSegment,
-                  newBoundary.contentPreamble,
-                  newBoundary.contentState,
-                  task.abortSet,
-                  keyPath,
-                  getSuspenseContentFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  null,
-                  suspenseComponentStack,
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedPrimaryTask);
-                request.pingedTasks.push(suspendedPrimaryTask);
-              } else {
-                task.blockedBoundary = newBoundary;
-                task.blockedPreamble = newBoundary.contentPreamble;
-                task.hoistableState = newBoundary.contentState;
-                task.blockedSegment = contentRootSegment;
-                task.keyPath = keyPath;
-                task.formatContext = getSuspenseContentFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.row = null;
-                contentRootSegment.status = 6;
-                try {
-                  if (
-                    (renderNode(request, task, content, -1),
-                    pushSegmentFinale(
-                      contentRootSegment.chunks,
-                      request.renderState,
-                      contentRootSegment.lastPushedText,
-                      contentRootSegment.textEmbedded
-                    ),
-                    (contentRootSegment.status = COMPLETED),
-                    queueCompletedSegment(newBoundary, contentRootSegment),
-                    0 === newBoundary.pendingTasks &&
-                      newBoundary.status === PENDING)
-                  ) {
-                    if (
-                      ((newBoundary.status = COMPLETED),
-                      !isEligibleForOutlining(request, newBoundary))
-                    ) {
-                      null !== prevRow$jscomp$0 &&
-                        0 === --prevRow$jscomp$0.pendingTasks &&
-                        finishSuspenseListRow(request, prevRow$jscomp$0);
-                      0 === request.pendingRootTasks &&
-                        task.blockedPreamble &&
-                        preparePreamble(request);
-                      break a;
-                    }
-                  } else
-                    null !== prevRow$jscomp$0 &&
-                      prevRow$jscomp$0.together &&
-                      tryToResolveTogetherRow(request, prevRow$jscomp$0);
-                } catch (thrownValue$2) {
-                  newBoundary.status = CLIENT_RENDERED;
-                  if (12 === request.status) {
-                    contentRootSegment.status = ABORTED;
-                    var error = request.fatalError;
-                  } else
-                    (contentRootSegment.status = ERRORED),
-                      (error = thrownValue$2);
-                  var thrownInfo = getThrownInfo(task.componentStack);
-                  var errorDigest = logRecoverableError(
-                    request,
-                    error,
-                    thrownInfo,
-                    task.debugTask
-                  );
-                  encodeErrorForBoundary(
-                    newBoundary,
-                    errorDigest,
-                    error,
-                    thrownInfo,
-                    !1
-                  );
-                  untrackBoundary(request, newBoundary);
-                } finally {
-                  (task.blockedBoundary = parentBoundary),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.hoistableState = parentHoistableState),
-                    (task.blockedSegment = parentSegment),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0),
-                    (task.row = prevRow$jscomp$0);
-                }
-                var suspendedFallbackTask = createRenderTask(
-                  request,
-                  null,
-                  fallback,
-                  -1,
-                  parentBoundary,
-                  boundarySegment,
-                  newBoundary.fallbackPreamble,
-                  newBoundary.fallbackState,
-                  fallbackAbortSet,
-                  [keyPath[0], "Suspense Fallback", keyPath[2]],
-                  getSuspenseFallbackFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  task.row,
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    task.componentStack
-                  ),
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedFallbackTask);
-                request.pingedTasks.push(suspendedFallbackTask);
-              }
-            }
-            return;
-        }
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_FORWARD_REF_TYPE:
-              if ("ref" in props) {
-                var propsWithoutRef = {};
-                for (var key in props)
-                  "ref" !== key && (propsWithoutRef[key] = props[key]);
-              } else propsWithoutRef = props;
-              var children$jscomp$1 = renderWithHooks(
-                request,
-                task,
-                keyPath,
-                type.render,
-                propsWithoutRef,
-                ref
-              );
-              finishFunctionComponent(
-                request,
-                task,
-                keyPath,
-                children$jscomp$1,
-                0 !== localIdCounter,
-                actionStateCounter,
-                actionStateMatchingIndex
-              );
-              return;
-            case REACT_MEMO_TYPE:
-              renderElement(request, task, keyPath, type.type, props, ref);
-              return;
-            case REACT_CONTEXT_TYPE:
-              var value$jscomp$0 = props.value,
-                children$jscomp$2 = props.children;
-              var prevSnapshot = task.context;
-              var prevKeyPath$jscomp$5 = task.keyPath;
-              var prevValue = type._currentValue2;
-              type._currentValue2 = value$jscomp$0;
-              void 0 !== type._currentRenderer2 &&
-                null !== type._currentRenderer2 &&
-                type._currentRenderer2 !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer2 = rendererSigil;
-              var prevNode = currentActiveSnapshot,
-                newNode = {
-                  parent: prevNode,
-                  depth: null === prevNode ? 0 : prevNode.depth + 1,
-                  context: type,
-                  parentValue: prevValue,
-                  value: value$jscomp$0
-                };
-              currentActiveSnapshot = newNode;
-              task.context = newNode;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, children$jscomp$2, -1);
-              var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-              if (null === prevSnapshot$jscomp$0)
-                throw Error(
-                  "Tried to pop a Context at the root of the app. This is a bug in React."
-                );
-              prevSnapshot$jscomp$0.context !== type &&
-                console.error(
-                  "The parent context is not the expected context. This is probably a bug in React."
-                );
-              prevSnapshot$jscomp$0.context._currentValue2 =
-                prevSnapshot$jscomp$0.parentValue;
-              void 0 !== type._currentRenderer2 &&
-                null !== type._currentRenderer2 &&
-                type._currentRenderer2 !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer2 = rendererSigil;
-              var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-                prevSnapshot$jscomp$0.parent);
-              task.context = JSCompiler_inline_result$jscomp$0;
-              task.keyPath = prevKeyPath$jscomp$5;
-              prevSnapshot !== task.context &&
-                console.error(
-                  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-                );
-              return;
-            case REACT_CONSUMER_TYPE:
-              var context$jscomp$0 = type._context,
-                render = props.children;
-              "function" !== typeof render &&
-                console.error(
-                  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-                );
-              var newChildren = render(context$jscomp$0._currentValue2),
-                prevKeyPath$jscomp$6 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, newChildren, -1);
-              task.keyPath = prevKeyPath$jscomp$6;
-              return;
-            case REACT_LAZY_TYPE:
-              var Component = callLazyInitInDEV(type);
-              if (12 === request.status) throw null;
-              renderElement(request, task, keyPath, Component, props, ref);
-              return;
-          }
-        var info = "";
-        if (
-          void 0 === type ||
-          ("object" === typeof type &&
-            null !== type &&
-            0 === Object.keys(type).length)
-        )
-          info +=
-            " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-        throw Error(
-          "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-            ((null == type ? type : typeof type) + "." + info)
-        );
-      }
-    }
-    function resumeNode(request, task, segmentId, node, childIndex) {
-      var prevReplay = task.replay,
-        blockedBoundary = task.blockedBoundary,
-        resumedSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-      resumedSegment.id = segmentId;
-      resumedSegment.parentFlushed = !0;
-      try {
-        (task.replay = null),
-          (task.blockedSegment = resumedSegment),
-          renderNode(request, task, node, childIndex),
-          (resumedSegment.status = COMPLETED),
-          null === blockedBoundary
-            ? (request.completedRootSegment = resumedSegment)
-            : (queueCompletedSegment(blockedBoundary, resumedSegment),
-              blockedBoundary.parentFlushed &&
-                request.partialBoundaries.push(blockedBoundary));
-      } finally {
-        (task.replay = prevReplay), (task.blockedSegment = null);
-      }
-    }
-    function replayElement(
-      request,
-      task,
-      keyPath,
-      name,
-      keyOrIndex,
-      childIndex,
-      type,
-      props,
-      ref,
-      replay
-    ) {
-      childIndex = replay.nodes;
-      for (var i = 0; i < childIndex.length; i++) {
-        var node = childIndex[i];
-        if (keyOrIndex === node[1]) {
-          if (4 === node.length) {
-            if (null !== name && name !== node[0])
-              throw Error(
-                "Expected the resume to render <" +
-                  node[0] +
-                  "> in this slot but instead it rendered <" +
-                  name +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            var childNodes = node[2];
-            name = node[3];
-            keyOrIndex = task.node;
-            task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-            try {
-              renderElement(request, task, keyPath, type, props, ref);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw (
-                  (task.node === keyOrIndex
-                    ? (task.replay = replay)
-                    : childIndex.splice(i, 1),
-                  x)
-                );
-              task.replay.pendingTasks--;
-              type = getThrownInfo(task.componentStack);
-              props = request;
-              request = task.blockedBoundary;
-              keyPath = x;
-              ref = name;
-              name = logRecoverableError(props, keyPath, type, task.debugTask);
-              abortRemainingReplayNodes(
-                props,
-                request,
-                childNodes,
-                ref,
-                keyPath,
-                name,
-                type,
-                !1
-              );
-            }
-            task.replay = replay;
-          } else {
-            if (type !== REACT_SUSPENSE_TYPE)
-              throw Error(
-                "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                  (getComponentNameFromType(type) || "Unknown") +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            a: {
-              replay = void 0;
-              name = node[5];
-              type = node[2];
-              ref = node[3];
-              keyOrIndex = null === node[4] ? [] : node[4][2];
-              node = null === node[4] ? null : node[4][3];
-              var prevKeyPath = task.keyPath,
-                prevContext = task.formatContext,
-                prevRow = task.row,
-                previousReplaySet = task.replay,
-                parentBoundary = task.blockedBoundary,
-                parentHoistableState = task.hoistableState,
-                content = props.children,
-                fallback = props.fallback,
-                fallbackAbortSet = new Set();
-              props = createSuspenseBoundary(
-                request,
-                task.row,
-                fallbackAbortSet,
-                null,
-                null
-              );
-              props.parentFlushed = !0;
-              props.rootSegmentID = name;
-              task.blockedBoundary = props;
-              task.hoistableState = props.contentState;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                prevContext
-              );
-              task.row = null;
-              task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-              try {
-                renderNode(request, task, content, -1);
-                if (
-                  1 === task.replay.pendingTasks &&
-                  0 < task.replay.nodes.length
-                )
-                  throw Error(
-                    "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                  );
-                task.replay.pendingTasks--;
-                if (0 === props.pendingTasks && props.status === PENDING) {
-                  props.status = COMPLETED;
-                  request.completedBoundaries.push(props);
-                  break a;
-                }
-              } catch (error) {
-                (props.status = CLIENT_RENDERED),
-                  (childNodes = getThrownInfo(task.componentStack)),
-                  (replay = logRecoverableError(
-                    request,
-                    error,
-                    childNodes,
-                    task.debugTask
-                  )),
-                  encodeErrorForBoundary(props, replay, error, childNodes, !1),
-                  task.replay.pendingTasks--,
-                  request.clientRenderedBoundaries.push(props);
-              } finally {
-                (task.blockedBoundary = parentBoundary),
-                  (task.hoistableState = parentHoistableState),
-                  (task.replay = previousReplaySet),
-                  (task.keyPath = prevKeyPath),
-                  (task.formatContext = prevContext),
-                  (task.row = prevRow);
-              }
-              props = createReplayTask(
-                request,
-                null,
-                { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-                fallback,
-                -1,
-                parentBoundary,
-                props.fallbackState,
-                fallbackAbortSet,
-                [keyPath[0], "Suspense Fallback", keyPath[2]],
-                getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  task.formatContext
-                ),
-                task.context,
-                task.treeContext,
-                task.row,
-                replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                  task.componentStack
-                ),
-                emptyContextObject,
-                task.debugTask
-              );
-              pushComponentStack(props);
-              request.pingedTasks.push(props);
-            }
-          }
-          childIndex.splice(i, 1);
-          break;
-        }
-      }
-    }
-    function validateIterable(
-      task,
-      iterable,
-      childIndex,
-      iterator,
-      iteratorFn
-    ) {
-      if (iterator === iterable) {
-        if (
-          -1 !== childIndex ||
-          null === task.componentStack ||
-          "function" !== typeof task.componentStack.type ||
-          "[object GeneratorFunction]" !==
-            Object.prototype.toString.call(task.componentStack.type) ||
-          "[object Generator]" !== Object.prototype.toString.call(iterator)
-        )
-          didWarnAboutGenerators ||
-            console.error(
-              "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-            ),
-            (didWarnAboutGenerators = !0);
-      } else
-        iterable.entries !== iteratorFn ||
-          didWarnAboutMaps ||
-          (console.error(
-            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-          ),
-          (didWarnAboutMaps = !0));
-    }
-    function renderNodeDestructive(request, task, node, childIndex) {
-      null !== task.replay && "number" === typeof task.replay.slots
-        ? resumeNode(request, task, task.replay.slots, node, childIndex)
-        : ((task.node = node),
-          (task.childIndex = childIndex),
-          (node = task.componentStack),
-          (childIndex = task.debugTask),
-          pushComponentStack(task),
-          retryNode(request, task),
-          (task.componentStack = node),
-          (task.debugTask = childIndex));
-    }
-    function retryNode(request, task) {
-      var node = task.node,
-        childIndex = task.childIndex;
-      if (null !== node) {
-        if ("object" === typeof node) {
-          switch (node.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var type = node.type,
-                key = node.key;
-              node = node.props;
-              var refProp = node.ref;
-              refProp = void 0 !== refProp ? refProp : null;
-              var debugTask = task.debugTask,
-                name = getComponentNameFromType(type);
-              key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-              var keyPath = [task.keyPath, name, key];
-              null !== task.replay
-                ? debugTask
-                  ? debugTask.run(
-                      replayElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        name,
-                        key,
-                        childIndex,
-                        type,
-                        node,
-                        refProp,
-                        task.replay
-                      )
-                    )
-                  : replayElement(
-                      request,
-                      task,
-                      keyPath,
-                      name,
-                      key,
-                      childIndex,
-                      type,
-                      node,
-                      refProp,
-                      task.replay
-                    )
-                : debugTask
-                  ? debugTask.run(
-                      renderElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        type,
-                        node,
-                        refProp
-                      )
-                    )
-                  : renderElement(request, task, keyPath, type, node, refProp);
-              return;
-            case REACT_PORTAL_TYPE:
-              throw Error(
-                "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-              );
-            case REACT_LAZY_TYPE:
-              type = callLazyInitInDEV(node);
-              if (12 === request.status) throw null;
-              renderNodeDestructive(request, task, type, childIndex);
-              return;
-          }
-          if (isArrayImpl(node)) {
-            renderChildrenArray(request, task, node, childIndex);
-            return;
-          }
-          if ((key = getIteratorFn(node)))
-            if ((type = key.call(node))) {
-              validateIterable(task, node, childIndex, type, key);
-              node = type.next();
-              if (!node.done) {
-                key = [];
-                do key.push(node.value), (node = type.next());
-                while (!node.done);
-                renderChildrenArray(request, task, key, childIndex);
-              }
-              return;
-            }
-          if ("function" === typeof node.then)
-            return (
-              (task.thenableState = null),
-              renderNodeDestructive(
-                request,
-                task,
-                unwrapThenable(node),
-                childIndex
-              )
-            );
-          if (node.$$typeof === REACT_CONTEXT_TYPE)
-            return renderNodeDestructive(
-              request,
-              task,
-              node._currentValue2,
-              childIndex
-            );
-          request = Object.prototype.toString.call(node);
-          throw Error(
-            "Objects are not valid as a React child (found: " +
-              ("[object Object]" === request
-                ? "object with keys {" + Object.keys(node).join(", ") + "}"
-                : request) +
-              "). If you meant to render a collection of children, use an array instead."
-          );
-        }
-        "string" === typeof node
-          ? ((task = task.blockedSegment),
-            null !== task &&
-              (task.lastPushedText = pushTextInstance(
-                task.chunks,
-                node,
-                request.renderState,
-                task.lastPushedText
-              )))
-          : "number" === typeof node || "bigint" === typeof node
-            ? ((task = task.blockedSegment),
-              null !== task &&
-                (task.lastPushedText = pushTextInstance(
-                  task.chunks,
-                  "" + node,
-                  request.renderState,
-                  task.lastPushedText
-                )))
-            : ("function" === typeof node &&
-                ((request = node.displayName || node.name || "Component"),
-                console.error(
-                  "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-                  request,
-                  request
-                )),
-              "symbol" === typeof node &&
-                console.error(
-                  "Symbols are not valid as a React child.\n  %s",
-                  String(node)
-                ));
-      }
-    }
-    function warnForMissingKey(request, task, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        (child.$$typeof === REACT_ELEMENT_TYPE ||
-          child.$$typeof === REACT_PORTAL_TYPE) &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var didWarnForKey = request.didWarnForKey;
-        null == didWarnForKey &&
-          (didWarnForKey = request.didWarnForKey = new WeakSet());
-        request = task.componentStack;
-        if (null !== request && !didWarnForKey.has(request)) {
-          didWarnForKey.add(request);
-          var componentName = getComponentNameFromType(child.type);
-          didWarnForKey = child._owner;
-          var parentOwner = request.owner;
-          request = "";
-          if (parentOwner && "undefined" !== typeof parentOwner.type) {
-            var name = getComponentNameFromType(parentOwner.type);
-            name &&
-              (request = "\n\nCheck the render method of `" + name + "`.");
-          }
-          request ||
-            (componentName &&
-              (request =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          componentName = "";
-          null != didWarnForKey &&
-            parentOwner !== didWarnForKey &&
-            ((parentOwner = null),
-            "undefined" !== typeof didWarnForKey.type
-              ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-              : "string" === typeof didWarnForKey.name &&
-                (parentOwner = didWarnForKey.name),
-            parentOwner &&
-              (componentName =
-                " It was passed a child from " + parentOwner + "."));
-          didWarnForKey = task.componentStack;
-          task.componentStack = {
-            parent: task.componentStack,
-            type: child.type,
-            owner: child._owner,
-            stack: child._debugStack
-          };
-          console.error(
-            'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-            request,
-            componentName
-          );
-          task.componentStack = didWarnForKey;
-        }
-      }
-    }
-    function renderChildrenArray(request, task, children, childIndex) {
-      var prevKeyPath = task.keyPath,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node._debugInfo);
-      if (
-        -1 !== childIndex &&
-        ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-        null !== task.replay)
-      ) {
-        for (
-          var replay = task.replay, replayNodes = replay.nodes, j = 0;
-          j < replayNodes.length;
-          j++
-        ) {
-          var node = replayNodes[j];
-          if (node[1] === childIndex) {
-            childIndex = node[2];
-            node = node[3];
-            task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-            try {
-              renderChildrenArray(request, task, children, -1);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw x;
-              task.replay.pendingTasks--;
-              var thrownInfo = getThrownInfo(task.componentStack);
-              children = task.blockedBoundary;
-              var error = x,
-                resumeSlots = node;
-              node = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              abortRemainingReplayNodes(
-                request,
-                children,
-                childIndex,
-                resumeSlots,
-                error,
-                node,
-                thrownInfo,
-                !1
-              );
-            }
-            task.replay = replay;
-            replayNodes.splice(j, 1);
-            break;
-          }
-        }
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      replay = task.treeContext;
-      replayNodes = children.length;
-      if (
-        null !== task.replay &&
-        ((j = task.replay.slots), null !== j && "object" === typeof j)
-      ) {
-        for (childIndex = 0; childIndex < replayNodes; childIndex++)
-          (node = children[childIndex]),
-            (task.treeContext = pushTreeContext(
-              replay,
-              replayNodes,
-              childIndex
-            )),
-            (error = j[childIndex]),
-            "number" === typeof error
-              ? (resumeNode(request, task, error, node, childIndex),
-                delete j[childIndex])
-              : renderNode(request, task, node, childIndex);
-        task.treeContext = replay;
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      for (j = 0; j < replayNodes; j++)
-        (childIndex = children[j]),
-          warnForMissingKey(request, task, childIndex),
-          (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-          renderNode(request, task, childIndex, j);
-      task.treeContext = replay;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function trackPostponedBoundary(request, trackedPostpones, boundary) {
-      boundary.status = POSTPONED;
-      boundary.rootSegmentID = request.nextSegmentId++;
-      request = boundary.trackedContentKeyPath;
-      if (null === request)
-        throw Error(
-          "It should not be possible to postpone at the root. This is a bug in React."
-        );
-      var fallbackReplayNode = boundary.trackedFallbackNode,
-        children = [],
-        boundaryNode = trackedPostpones.workingMap.get(request);
-      if (void 0 === boundaryNode)
-        return (
-          (boundary = [
-            request[1],
-            request[2],
-            children,
-            null,
-            fallbackReplayNode,
-            boundary.rootSegmentID
-          ]),
-          trackedPostpones.workingMap.set(request, boundary),
-          addToReplayParent(boundary, request[0], trackedPostpones),
-          boundary
-        );
-      boundaryNode[4] = fallbackReplayNode;
-      boundaryNode[5] = boundary.rootSegmentID;
-      return boundaryNode;
-    }
-    function trackPostpone(request, trackedPostpones, task, segment) {
-      segment.status = POSTPONED;
-      var keyPath = task.keyPath,
-        boundary = task.blockedBoundary;
-      if (null === boundary)
-        (segment.id = request.nextSegmentId++),
-          (trackedPostpones.rootSlots = segment.id),
-          null !== request.completedRootSegment &&
-            (request.completedRootSegment.status = POSTPONED);
-      else {
-        if (null !== boundary && boundary.status === PENDING) {
-          var boundaryNode = trackPostponedBoundary(
-            request,
-            trackedPostpones,
-            boundary
-          );
-          if (
-            boundary.trackedContentKeyPath === keyPath &&
-            -1 === task.childIndex
-          ) {
-            -1 === segment.id &&
-              (segment.id = segment.parentFlushed
-                ? boundary.rootSegmentID
-                : request.nextSegmentId++);
-            boundaryNode[3] = segment.id;
-            return;
-          }
-        }
-        -1 === segment.id &&
-          (segment.id =
-            segment.parentFlushed && null !== boundary
-              ? boundary.rootSegmentID
-              : request.nextSegmentId++);
-        if (-1 === task.childIndex)
-          null === keyPath
-            ? (trackedPostpones.rootSlots = segment.id)
-            : ((task = trackedPostpones.workingMap.get(keyPath)),
-              void 0 === task
-                ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-                  addToReplayParent(task, keyPath[0], trackedPostpones))
-                : (task[3] = segment.id));
-        else {
-          if (null === keyPath)
-            if (((request = trackedPostpones.rootSlots), null === request))
-              request = trackedPostpones.rootSlots = {};
-            else {
-              if ("number" === typeof request)
-                throw Error(
-                  "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-                );
-            }
-          else if (
-            ((boundary = trackedPostpones.workingMap),
-            (boundaryNode = boundary.get(keyPath)),
-            void 0 === boundaryNode)
-          )
-            (request = {}),
-              (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-              boundary.set(keyPath, boundaryNode),
-              addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-          else if (((request = boundaryNode[3]), null === request))
-            request = boundaryNode[3] = {};
-          else if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-          request[task.childIndex] = segment.id;
-        }
-      }
-    }
-    function untrackBoundary(request, boundary) {
-      request = request.trackedPostpones;
-      null !== request &&
-        ((boundary = boundary.trackedContentKeyPath),
-        null !== boundary &&
-          ((boundary = request.workingMap.get(boundary)),
-          void 0 !== boundary &&
-            ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-    }
-    function spawnNewSuspendedReplayTask(request, task, thenableState) {
-      return createReplayTask(
-        request,
-        thenableState,
-        task.replay,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function spawnNewSuspendedRenderTask(request, task, thenableState) {
-      var segment = task.blockedSegment,
-        newSegment = createPendingSegment(
-          request,
-          segment.chunks.length,
-          null,
-          task.formatContext,
-          segment.lastPushedText,
-          !0
-        );
-      segment.children.push(newSegment);
-      segment.lastPushedText = !1;
-      return createRenderTask(
-        request,
-        thenableState,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        newSegment,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function renderNode(request, task, node, childIndex) {
-      var previousFormatContext = task.formatContext,
-        previousContext = task.context,
-        previousKeyPath = task.keyPath,
-        previousTreeContext = task.treeContext,
-        previousComponentStack = task.componentStack,
-        previousDebugTask = task.debugTask,
-        segment = task.blockedSegment;
-      if (null === segment) {
-        segment = task.replay;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue) {
-          if (
-            (resetHooksState(),
-            (node =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              childIndex =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedReplayTask(
-                request,
-                task,
-                childIndex
-              ).ping;
-              node.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              node =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              node = spawnNewSuspendedReplayTask(request, task, node);
-              request.pingedTasks.push(node);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      } else {
-        var childrenLength = segment.children.length,
-          chunkLength = segment.chunks.length;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue$3) {
-          if (
-            (resetHooksState(),
-            (segment.children.length = childrenLength),
-            (segment.chunks.length = chunkLength),
-            (node =
-              thrownValue$3 === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue$3),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              segment = node;
-              node =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedRenderTask(request, task, node).ping;
-              segment.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              segment =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              segment = spawnNewSuspendedRenderTask(request, task, segment);
-              request.pingedTasks.push(segment);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      }
-      task.formatContext = previousFormatContext;
-      task.context = previousContext;
-      task.keyPath = previousKeyPath;
-      task.treeContext = previousTreeContext;
-      switchContext(previousContext);
-      throw node;
-    }
-    function abortTaskSoft(task) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      null !== segment &&
-        ((segment.status = ABORTED),
-        finishedTask(this, boundary, task.row, segment));
-    }
-    function abortRemainingReplayNodes(
-      request$jscomp$0,
-      boundary,
-      nodes,
-      slots,
-      error$jscomp$0,
-      errorDigest$jscomp$0,
-      errorInfo$jscomp$0,
-      aborted
-    ) {
-      for (var i = 0; i < nodes.length; i++) {
-        var node = nodes[i];
-        if (4 === node.length)
-          abortRemainingReplayNodes(
-            request$jscomp$0,
-            boundary,
-            node[2],
-            node[3],
-            error$jscomp$0,
-            errorDigest$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          );
-        else {
-          var request = request$jscomp$0;
-          node = node[5];
-          var error = error$jscomp$0,
-            errorDigest = errorDigest$jscomp$0,
-            errorInfo = errorInfo$jscomp$0,
-            wasAborted = aborted,
-            resumedBoundary = createSuspenseBoundary(
-              request,
-              null,
-              new Set(),
-              null,
-              null
-            );
-          resumedBoundary.parentFlushed = !0;
-          resumedBoundary.rootSegmentID = node;
-          resumedBoundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(
-            resumedBoundary,
-            errorDigest,
-            error,
-            errorInfo,
-            wasAborted
-          );
-          resumedBoundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(resumedBoundary);
-        }
-      }
-      nodes.length = 0;
-      if (null !== slots) {
-        if (null === boundary)
-          throw Error(
-            "We should not have any resumable nodes in the shell. This is a bug in React."
-          );
-        boundary.status !== CLIENT_RENDERED &&
-          ((boundary.status = CLIENT_RENDERED),
-          encodeErrorForBoundary(
-            boundary,
-            errorDigest$jscomp$0,
-            error$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          ),
-          boundary.parentFlushed &&
-            request$jscomp$0.clientRenderedBoundaries.push(boundary));
-        if ("object" === typeof slots)
-          for (var index in slots) delete slots[index];
-      }
-    }
-    function abortTask(task, request, error) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      if (null !== segment) {
-        if (6 === segment.status) return;
-        segment.status = ABORTED;
-      }
-      var errorInfo = getThrownInfo(task.componentStack),
-        node = task.node;
-      null !== node &&
-        "object" === typeof node &&
-        pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-      if (null === boundary) {
-        if (13 !== request.status && request.status !== CLOSED) {
-          boundary = task.replay;
-          if (null === boundary) {
-            null !== request.trackedPostpones && null !== segment
-              ? ((boundary = request.trackedPostpones),
-                logRecoverableError(request, error, errorInfo, task.debugTask),
-                trackPostpone(request, boundary, task, segment),
-                finishedTask(request, null, task.row, segment))
-              : (logRecoverableError(request, error, errorInfo, task.debugTask),
-                fatalError(request, error, errorInfo, task.debugTask));
-            return;
-          }
-          boundary.pendingTasks--;
-          0 === boundary.pendingTasks &&
-            0 < boundary.nodes.length &&
-            ((segment = logRecoverableError(request, error, errorInfo, null)),
-            abortRemainingReplayNodes(
-              request,
-              null,
-              boundary.nodes,
-              boundary.slots,
-              error,
-              segment,
-              errorInfo,
-              !0
-            ));
-          request.pendingRootTasks--;
-          0 === request.pendingRootTasks && completeShell(request);
-        }
-      } else {
-        node = request.trackedPostpones;
-        if (boundary.status !== CLIENT_RENDERED) {
-          if (null !== node && null !== segment)
-            return (
-              logRecoverableError(request, error, errorInfo, task.debugTask),
-              trackPostpone(request, node, task, segment),
-              boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-                return abortTask(fallbackTask, request, error);
-              }),
-              boundary.fallbackAbortableTasks.clear(),
-              finishedTask(request, boundary, task.row, segment)
-            );
-          boundary.status = CLIENT_RENDERED;
-          segment = logRecoverableError(
-            request,
-            error,
-            errorInfo,
-            task.debugTask
-          );
-          boundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-          untrackBoundary(request, boundary);
-          boundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(boundary);
-        }
-        boundary.pendingTasks--;
-        errorInfo = boundary.row;
-        null !== errorInfo &&
-          0 === --errorInfo.pendingTasks &&
-          finishSuspenseListRow(request, errorInfo);
-        boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-          return abortTask(fallbackTask, request, error);
-        });
-        boundary.fallbackAbortableTasks.clear();
-      }
-      task = task.row;
-      null !== task &&
-        0 === --task.pendingTasks &&
-        finishSuspenseListRow(request, task);
-      request.allPendingTasks--;
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function safelyEmitEarlyPreloads(request, shellComplete) {
-      try {
-        var renderState = request.renderState,
-          onHeaders = renderState.onHeaders;
-        if (onHeaders) {
-          var headers = renderState.headers;
-          if (headers) {
-            renderState.headers = null;
-            var linkHeader = headers.preconnects;
-            headers.fontPreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.fontPreloads));
-            headers.highImagePreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.highImagePreloads));
-            if (!shellComplete) {
-              var queueIter = renderState.styles.values(),
-                queueStep = queueIter.next();
-              b: for (
-                ;
-                0 < headers.remainingCapacity && !queueStep.done;
-                queueStep = queueIter.next()
-              )
-                for (
-                  var sheetIter = queueStep.value.sheets.values(),
-                    sheetStep = sheetIter.next();
-                  0 < headers.remainingCapacity && !sheetStep.done;
-                  sheetStep = sheetIter.next()
-                ) {
-                  var sheet = sheetStep.value,
-                    props = sheet.props,
-                    key = props.href,
-                    props$jscomp$0 = sheet.props;
-                  var header = getPreloadAsHeader(
-                    props$jscomp$0.href,
-                    "style",
-                    {
-                      crossOrigin: props$jscomp$0.crossOrigin,
-                      integrity: props$jscomp$0.integrity,
-                      nonce: props$jscomp$0.nonce,
-                      type: props$jscomp$0.type,
-                      fetchPriority: props$jscomp$0.fetchPriority,
-                      referrerPolicy: props$jscomp$0.referrerPolicy,
-                      media: props$jscomp$0.media
-                    }
-                  );
-                  if (0 <= (headers.remainingCapacity -= header.length + 2))
-                    (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                      linkHeader && (linkHeader += ", "),
-                      (linkHeader += header),
-                      (renderState.resets.style[key] =
-                        "string" === typeof props.crossOrigin ||
-                        "string" === typeof props.integrity
-                          ? [props.crossOrigin, props.integrity]
-                          : PRELOAD_NO_CREDS);
-                  else break b;
-                }
-            }
-            linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-          }
-        }
-      } catch (error) {
-        logRecoverableError(request, error, {}, null);
-      }
-    }
-    function completeShell(request) {
-      null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-      null === request.trackedPostpones && preparePreamble(request);
-      request.onShellError = noop;
-      request = request.onShellReady;
-      request();
-    }
-    function completeAll(request) {
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? !0
-          : null === request.completedRootSegment ||
-              request.completedRootSegment.status !== POSTPONED
-      );
-      preparePreamble(request);
-      request = request.onAllReady;
-      request();
-    }
-    function queueCompletedSegment(boundary, segment) {
-      if (
-        0 === segment.chunks.length &&
-        1 === segment.children.length &&
-        null === segment.children[0].boundary &&
-        -1 === segment.children[0].id
-      ) {
-        var childSegment = segment.children[0];
-        childSegment.id = segment.id;
-        childSegment.parentFlushed = !0;
-        (childSegment.status !== COMPLETED &&
-          childSegment.status !== ABORTED &&
-          childSegment.status !== ERRORED) ||
-          queueCompletedSegment(boundary, childSegment);
-      } else boundary.completedSegments.push(segment);
-    }
-    function finishedTask(request, boundary, row, segment) {
-      null !== row &&
-        (0 === --row.pendingTasks
-          ? finishSuspenseListRow(request, row)
-          : row.together && tryToResolveTogetherRow(request, row));
-      request.allPendingTasks--;
-      if (null === boundary) {
-        if (null !== segment && segment.parentFlushed) {
-          if (null !== request.completedRootSegment)
-            throw Error(
-              "There can only be one root segment. This is a bug in React."
-            );
-          request.completedRootSegment = segment;
-        }
-        request.pendingRootTasks--;
-        0 === request.pendingRootTasks && completeShell(request);
-      } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-        if (0 === boundary.pendingTasks)
-          if (
-            (boundary.status === PENDING && (boundary.status = COMPLETED),
-            null !== segment &&
-              segment.parentFlushed &&
-              (segment.status === COMPLETED || segment.status === ABORTED) &&
-              queueCompletedSegment(boundary, segment),
-            boundary.parentFlushed &&
-              request.completedBoundaries.push(boundary),
-            boundary.status === COMPLETED)
-          )
-            (row = boundary.row),
-              null !== row &&
-                hoistHoistables(row.hoistables, boundary.contentState),
-              isEligibleForOutlining(request, boundary) ||
-                (boundary.fallbackAbortableTasks.forEach(
-                  abortTaskSoft,
-                  request
-                ),
-                boundary.fallbackAbortableTasks.clear(),
-                null !== row &&
-                  0 === --row.pendingTasks &&
-                  finishSuspenseListRow(request, row)),
-              0 === request.pendingRootTasks &&
-                null === request.trackedPostpones &&
-                null !== boundary.contentPreamble &&
-                preparePreamble(request);
-          else {
-            if (
-              boundary.status === POSTPONED &&
-              ((boundary = boundary.row), null !== boundary)
-            ) {
-              if (null !== request.trackedPostpones) {
-                row = request.trackedPostpones;
-                var postponedRow = boundary.next;
-                if (
-                  null !== postponedRow &&
-                  ((segment = postponedRow.boundaries), null !== segment)
-                )
-                  for (
-                    postponedRow.boundaries = null, postponedRow = 0;
-                    postponedRow < segment.length;
-                    postponedRow++
-                  ) {
-                    var postponedBoundary = segment[postponedRow];
-                    trackPostponedBoundary(request, row, postponedBoundary);
-                    finishedTask(request, postponedBoundary, null, null);
-                  }
-              }
-              0 === --boundary.pendingTasks &&
-                finishSuspenseListRow(request, boundary);
-            }
-          }
-        else
-          null === segment ||
-            !segment.parentFlushed ||
-            (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-            (queueCompletedSegment(boundary, segment),
-            1 === boundary.completedSegments.length &&
-              boundary.parentFlushed &&
-              request.partialBoundaries.push(boundary)),
-            (boundary = boundary.row),
-            null !== boundary &&
-              boundary.together &&
-              tryToResolveTogetherRow(request, boundary);
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function performWork(request$jscomp$2) {
-      if (
-        request$jscomp$2.status !== CLOSED &&
-        13 !== request$jscomp$2.status
-      ) {
-        var prevContext = currentActiveSnapshot,
-          prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = HooksDispatcher;
-        var prevAsyncDispatcher = ReactSharedInternals.A;
-        ReactSharedInternals.A = DefaultAsyncDispatcher;
-        var prevRequest = currentRequest;
-        currentRequest = request$jscomp$2;
-        var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        var prevResumableState = currentResumableState;
-        currentResumableState = request$jscomp$2.resumableState;
-        try {
-          var pingedTasks = request$jscomp$2.pingedTasks,
-            i;
-          for (i = 0; i < pingedTasks.length; i++) {
-            var request = request$jscomp$2,
-              task = pingedTasks[i],
-              segment = task.blockedSegment;
-            if (null === segment) {
-              var prevTaskInDEV = void 0,
-                request$jscomp$0 = request;
-              request = task;
-              if (0 !== request.replay.pendingTasks) {
-                switchContext(request.context);
-                prevTaskInDEV = currentTaskInDEV;
-                currentTaskInDEV = request;
-                try {
-                  "number" === typeof request.replay.slots
-                    ? resumeNode(
-                        request$jscomp$0,
-                        request,
-                        request.replay.slots,
-                        request.node,
-                        request.childIndex
-                      )
-                    : retryNode(request$jscomp$0, request);
-                  if (
-                    1 === request.replay.pendingTasks &&
-                    0 < request.replay.nodes.length
-                  )
-                    throw Error(
-                      "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                    );
-                  request.replay.pendingTasks--;
-                  request.abortSet.delete(request);
-                  finishedTask(
-                    request$jscomp$0,
-                    request.blockedBoundary,
-                    request.row,
-                    null
-                  );
-                } catch (thrownValue) {
-                  resetHooksState();
-                  var x =
-                    thrownValue === SuspenseException
-                      ? getSuspendedThenable()
-                      : thrownValue;
-                  if (
-                    "object" === typeof x &&
-                    null !== x &&
-                    "function" === typeof x.then
-                  ) {
-                    var ping = request.ping;
-                    x.then(ping, ping);
-                    request.thenableState =
-                      thrownValue === SuspenseException
-                        ? getThenableStateAfterSuspending()
-                        : null;
-                  } else {
-                    request.replay.pendingTasks--;
-                    request.abortSet.delete(request);
-                    var errorInfo = getThrownInfo(request.componentStack),
-                      errorDigest = void 0,
-                      request$jscomp$1 = request$jscomp$0,
-                      boundary = request.blockedBoundary,
-                      error$jscomp$0 =
-                        12 === request$jscomp$0.status
-                          ? request$jscomp$0.fatalError
-                          : x,
-                      errorInfo$jscomp$0 = errorInfo,
-                      replayNodes = request.replay.nodes,
-                      resumeSlots = request.replay.slots;
-                    errorDigest = logRecoverableError(
-                      request$jscomp$1,
-                      error$jscomp$0,
-                      errorInfo$jscomp$0,
-                      request.debugTask
-                    );
-                    abortRemainingReplayNodes(
-                      request$jscomp$1,
-                      boundary,
-                      replayNodes,
-                      resumeSlots,
-                      error$jscomp$0,
-                      errorDigest,
-                      errorInfo$jscomp$0,
-                      !1
-                    );
-                    request$jscomp$0.pendingRootTasks--;
-                    0 === request$jscomp$0.pendingRootTasks &&
-                      completeShell(request$jscomp$0);
-                    request$jscomp$0.allPendingTasks--;
-                    0 === request$jscomp$0.allPendingTasks &&
-                      completeAll(request$jscomp$0);
-                  }
-                } finally {
-                  currentTaskInDEV = prevTaskInDEV;
-                }
-              }
-            } else if (
-              ((request$jscomp$0 = prevTaskInDEV = void 0),
-              (errorDigest = task),
-              (request$jscomp$1 = segment),
-              request$jscomp$1.status === PENDING)
-            ) {
-              request$jscomp$1.status = 6;
-              switchContext(errorDigest.context);
-              request$jscomp$0 = currentTaskInDEV;
-              currentTaskInDEV = errorDigest;
-              var childrenLength = request$jscomp$1.children.length,
-                chunkLength = request$jscomp$1.chunks.length;
-              try {
-                retryNode(request, errorDigest),
-                  pushSegmentFinale(
-                    request$jscomp$1.chunks,
-                    request.renderState,
-                    request$jscomp$1.lastPushedText,
-                    request$jscomp$1.textEmbedded
-                  ),
-                  errorDigest.abortSet.delete(errorDigest),
-                  (request$jscomp$1.status = COMPLETED),
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-              } catch (thrownValue) {
-                resetHooksState();
-                request$jscomp$1.children.length = childrenLength;
-                request$jscomp$1.chunks.length = chunkLength;
-                var x$jscomp$0 =
-                  thrownValue === SuspenseException
-                    ? getSuspendedThenable()
-                    : 12 === request.status
-                      ? request.fatalError
-                      : thrownValue;
-                if (
-                  12 === request.status &&
-                  null !== request.trackedPostpones
-                ) {
-                  var trackedPostpones = request.trackedPostpones,
-                    thrownInfo = getThrownInfo(errorDigest.componentStack);
-                  errorDigest.abortSet.delete(errorDigest);
-                  logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    thrownInfo,
-                    errorDigest.debugTask
-                  );
-                  trackPostpone(
-                    request,
-                    trackedPostpones,
-                    errorDigest,
-                    request$jscomp$1
-                  );
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-                } else if (
-                  "object" === typeof x$jscomp$0 &&
-                  null !== x$jscomp$0 &&
-                  "function" === typeof x$jscomp$0.then
-                ) {
-                  request$jscomp$1.status = PENDING;
-                  errorDigest.thenableState =
-                    thrownValue === SuspenseException
-                      ? getThenableStateAfterSuspending()
-                      : null;
-                  var ping$jscomp$0 = errorDigest.ping;
-                  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-                } else {
-                  var errorInfo$jscomp$1 = getThrownInfo(
-                    errorDigest.componentStack
-                  );
-                  errorDigest.abortSet.delete(errorDigest);
-                  request$jscomp$1.status = ERRORED;
-                  var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                    row = errorDigest.row,
-                    debugTask = errorDigest.debugTask;
-                  null !== row &&
-                    0 === --row.pendingTasks &&
-                    finishSuspenseListRow(request, row);
-                  request.allPendingTasks--;
-                  prevTaskInDEV = logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    errorInfo$jscomp$1,
-                    debugTask
-                  );
-                  if (null === boundary$jscomp$0)
-                    fatalError(
-                      request,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      debugTask
-                    );
-                  else if (
-                    (boundary$jscomp$0.pendingTasks--,
-                    boundary$jscomp$0.status !== CLIENT_RENDERED)
-                  ) {
-                    boundary$jscomp$0.status = CLIENT_RENDERED;
-                    encodeErrorForBoundary(
-                      boundary$jscomp$0,
-                      prevTaskInDEV,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      !1
-                    );
-                    untrackBoundary(request, boundary$jscomp$0);
-                    var boundaryRow = boundary$jscomp$0.row;
-                    null !== boundaryRow &&
-                      0 === --boundaryRow.pendingTasks &&
-                      finishSuspenseListRow(request, boundaryRow);
-                    boundary$jscomp$0.parentFlushed &&
-                      request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                    0 === request.pendingRootTasks &&
-                      null === request.trackedPostpones &&
-                      null !== boundary$jscomp$0.contentPreamble &&
-                      preparePreamble(request);
-                  }
-                  0 === request.allPendingTasks && completeAll(request);
-                }
-              } finally {
-                currentTaskInDEV = request$jscomp$0;
-              }
-            }
-          }
-          pingedTasks.splice(0, i);
-          null !== request$jscomp$2.destination &&
-            flushCompletedQueues(
-              request$jscomp$2,
-              request$jscomp$2.destination
-            );
-        } catch (error) {
-          (pingedTasks = {}),
-            logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-            fatalError(request$jscomp$2, error, pingedTasks, null);
-        } finally {
-          (currentResumableState = prevResumableState),
-            (ReactSharedInternals.H = prevDispatcher),
-            (ReactSharedInternals.A = prevAsyncDispatcher),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-            prevDispatcher === HooksDispatcher && switchContext(prevContext),
-            (currentRequest = prevRequest);
-        }
-      }
-    }
-    function preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      segment.preambleChildren.length &&
-        collectedPreambleSegments.push(segment.preambleChildren);
-      for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-        pendingPreambles =
-          preparePreambleFromSegment(
-            request,
-            segment.children[i],
-            collectedPreambleSegments
-          ) || pendingPreambles;
-      return pendingPreambles;
-    }
-    function preparePreambleFromSegment(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return preparePreambleFromSubtree(
-          request,
-          segment,
-          collectedPreambleSegments
-        );
-      var preamble = boundary.contentPreamble,
-        fallbackPreamble = boundary.fallbackPreamble;
-      if (null === preamble || null === fallbackPreamble) return !1;
-      switch (boundary.status) {
-        case COMPLETED:
-          hoistPreambleState(request.renderState, preamble);
-          request.byteSize += boundary.byteSize;
-          segment = boundary.completedSegments[0];
-          if (!segment)
-            throw Error(
-              "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-            );
-          return preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          );
-        case POSTPONED:
-          if (null !== request.trackedPostpones) return !0;
-        case CLIENT_RENDERED:
-          if (segment.status === COMPLETED)
-            return (
-              hoistPreambleState(request.renderState, fallbackPreamble),
-              preparePreambleFromSubtree(
-                request,
-                segment,
-                collectedPreambleSegments
-              )
-            );
-        default:
-          return !0;
-      }
-    }
-    function preparePreamble(request) {
-      if (
-        request.completedRootSegment &&
-        null === request.completedPreambleSegments
-      ) {
-        var collectedPreambleSegments = [],
-          originalRequestByteSize = request.byteSize,
-          hasPendingPreambles = preparePreambleFromSegment(
-            request,
-            request.completedRootSegment,
-            collectedPreambleSegments
-          ),
-          preamble = request.renderState.preamble;
-        !1 === hasPendingPreambles ||
-        (preamble.headChunks && preamble.bodyChunks)
-          ? (request.completedPreambleSegments = collectedPreambleSegments)
-          : (request.byteSize = originalRequestByteSize);
-      }
-    }
-    function flushSubtree(request, destination, segment, hoistableState) {
-      segment.parentFlushed = !0;
-      switch (segment.status) {
-        case PENDING:
-          segment.id = request.nextSegmentId++;
-        case POSTPONED:
-          return (
-            (hoistableState = segment.id),
-            (segment.lastPushedText = !1),
-            (segment.textEmbedded = !1),
-            (request = request.renderState),
-            destination.push(placeholder1),
-            destination.push(request.placeholderPrefix),
-            (request = hoistableState.toString(16)),
-            destination.push(request),
-            destination.push(placeholder2)
-          );
-        case COMPLETED:
-          segment.status = FLUSHED;
-          var r = !0,
-            chunks = segment.chunks,
-            chunkIdx = 0;
-          segment = segment.children;
-          for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-            for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-              destination.push(chunks[chunkIdx]);
-            r = flushSegment(request, destination, r, hoistableState);
-          }
-          for (; chunkIdx < chunks.length - 1; chunkIdx++)
-            destination.push(chunks[chunkIdx]);
-          chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
-          return r;
-        case ABORTED:
-          return !0;
-        default:
-          throw Error(
-            "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-          );
-      }
-    }
-    function flushSegment(request, destination, segment, hoistableState) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return flushSubtree(request, destination, segment, hoistableState);
-      boundary.parentFlushed = !0;
-      if (boundary.status === CLIENT_RENDERED) {
-        var row = boundary.row;
-        null !== row &&
-          0 === --row.pendingTasks &&
-          finishSuspenseListRow(request, row);
-        if (!request.renderState.generateStaticMarkup) {
-          var errorDigest = boundary.errorDigest,
-            errorMessage = boundary.errorMessage;
-          row = boundary.errorStack;
-          boundary = boundary.errorComponentStack;
-          destination.push(startClientRenderedSuspenseBoundary);
-          destination.push(clientRenderedSuspenseBoundaryError1);
-          errorDigest &&
-            (destination.push(clientRenderedSuspenseBoundaryError1A),
-            (errorDigest = escapeTextForBrowser(errorDigest)),
-            destination.push(errorDigest),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          errorMessage &&
-            (destination.push(clientRenderedSuspenseBoundaryError1B),
-            (errorMessage = escapeTextForBrowser(errorMessage)),
-            destination.push(errorMessage),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          row &&
-            (destination.push(clientRenderedSuspenseBoundaryError1C),
-            (row = escapeTextForBrowser(row)),
-            destination.push(row),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          boundary &&
-            (destination.push(clientRenderedSuspenseBoundaryError1D),
-            (row = escapeTextForBrowser(boundary)),
-            destination.push(row),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          destination.push(clientRenderedSuspenseBoundaryError2);
-        }
-        flushSubtree(request, destination, segment, hoistableState);
-        request = request.renderState.generateStaticMarkup
-          ? !0
-          : destination.push(endSuspenseBoundary);
-        return request;
-      }
-      if (boundary.status !== COMPLETED)
-        return (
-          boundary.status === PENDING &&
-            (boundary.rootSegmentID = request.nextSegmentId++),
-          0 < boundary.completedSegments.length &&
-            request.partialBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          hoistableState &&
-            hoistHoistables(hoistableState, boundary.fallbackState),
-          flushSubtree(request, destination, segment, hoistableState),
-          destination.push(endSuspenseBoundary)
-        );
-      if (
-        !flushingPartialBoundaries &&
-        isEligibleForOutlining(request, boundary) &&
-        flushedByteSize + boundary.byteSize > request.progressiveChunkSize
-      )
-        return (
-          (boundary.rootSegmentID = request.nextSegmentId++),
-          request.completedBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          flushSubtree(request, destination, segment, hoistableState),
-          destination.push(endSuspenseBoundary)
-        );
-      flushedByteSize += boundary.byteSize;
-      hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-      segment = boundary.row;
-      null !== segment &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --segment.pendingTasks &&
-        finishSuspenseListRow(request, segment);
-      request.renderState.generateStaticMarkup ||
-        destination.push(startCompletedSuspenseBoundary);
-      segment = boundary.completedSegments;
-      if (1 !== segment.length)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      flushSegment(request, destination, segment[0], hoistableState);
-      request = request.renderState.generateStaticMarkup
-        ? !0
-        : destination.push(endSuspenseBoundary);
-      return request;
-    }
-    function flushSegmentContainer(
-      request,
-      destination,
-      segment,
-      hoistableState
-    ) {
-      writeStartSegment(
-        destination,
-        request.renderState,
-        segment.parentFormatContext,
-        segment.id
-      );
-      flushSegment(request, destination, segment, hoistableState);
-      return writeEndSegment(destination, segment.parentFormatContext);
-    }
-    function flushCompletedBoundary(request, destination, boundary) {
-      flushedByteSize = boundary.byteSize;
-      for (
-        var completedSegments = boundary.completedSegments, i = 0;
-        i < completedSegments.length;
-        i++
-      )
-        flushPartiallyCompletedSegment(
-          request,
-          destination,
-          boundary,
-          completedSegments[i]
-        );
-      completedSegments.length = 0;
-      completedSegments = boundary.row;
-      null !== completedSegments &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --completedSegments.pendingTasks &&
-        finishSuspenseListRow(request, completedSegments);
-      writeHoistablesForBoundary(
-        destination,
-        boundary.contentState,
-        request.renderState
-      );
-      completedSegments = request.resumableState;
-      request = request.renderState;
-      i = boundary.rootSegmentID;
-      boundary = boundary.contentState;
-      var requiresStyleInsertion = request.stylesToHoist;
-      request.stylesToHoist = !1;
-      destination.push(request.startInlineScript);
-      destination.push(endOfStartTag);
-      requiresStyleInsertion
-        ? ((completedSegments.instructions & SentClientRenderFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentClientRenderFunction),
-            destination.push(clientRenderScriptFunctionOnly)),
-          (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            destination.push(completeBoundaryScriptFunctionOnly)),
-          (completedSegments.instructions & SentStyleInsertionFunction) ===
-          NothingSent
-            ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-              destination.push(completeBoundaryWithStylesScript1FullPartial))
-            : destination.push(completeBoundaryWithStylesScript1Partial))
-        : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            destination.push(completeBoundaryScriptFunctionOnly)),
-          destination.push(completeBoundaryScript1Partial));
-      completedSegments = i.toString(16);
-      destination.push(request.boundaryPrefix);
-      destination.push(completedSegments);
-      destination.push(completeBoundaryScript2);
-      destination.push(request.segmentPrefix);
-      destination.push(completedSegments);
-      requiresStyleInsertion
-        ? (destination.push(completeBoundaryScript3a),
-          writeStyleResourceDependenciesInJS(destination, boundary))
-        : destination.push(completeBoundaryScript3b);
-      boundary = destination.push(completeBoundaryScriptEnd);
-      return writeBootstrap(destination, request) && boundary;
-    }
-    function flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      segment
-    ) {
-      if (segment.status === FLUSHED) return !0;
-      var hoistableState = boundary.contentState,
-        segmentID = segment.id;
-      if (-1 === segmentID) {
-        if (-1 === (segment.id = boundary.rootSegmentID))
-          throw Error(
-            "A root segment ID must have been assigned by now. This is a bug in React."
-          );
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      }
-      if (segmentID === boundary.rootSegmentID)
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      flushSegmentContainer(request, destination, segment, hoistableState);
-      boundary = request.resumableState;
-      request = request.renderState;
-      destination.push(request.startInlineScript);
-      destination.push(endOfStartTag);
-      (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-        ? ((boundary.instructions |= SentCompleteSegmentFunction),
-          destination.push(completeSegmentScript1Full))
-        : destination.push(completeSegmentScript1Partial);
-      destination.push(request.segmentPrefix);
-      segmentID = segmentID.toString(16);
-      destination.push(segmentID);
-      destination.push(completeSegmentScript2);
-      destination.push(request.placeholderPrefix);
-      destination.push(segmentID);
-      destination = destination.push(completeSegmentScriptEnd);
-      return destination;
-    }
-    function flushCompletedQueues(request, destination) {
-      try {
-        if (!(0 < request.pendingRootTasks)) {
-          var i,
-            completedRootSegment = request.completedRootSegment;
-          if (null !== completedRootSegment) {
-            if (completedRootSegment.status === POSTPONED) return;
-            var completedPreambleSegments = request.completedPreambleSegments;
-            if (null === completedPreambleSegments) return;
-            flushedByteSize = request.byteSize;
-            var resumableState = request.resumableState,
-              renderState = request.renderState,
-              preamble = renderState.preamble,
-              htmlChunks = preamble.htmlChunks,
-              headChunks = preamble.headChunks,
-              i$jscomp$0;
-            if (htmlChunks) {
-              for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-                destination.push(htmlChunks[i$jscomp$0]);
-              if (headChunks)
-                for (
-                  i$jscomp$0 = 0;
-                  i$jscomp$0 < headChunks.length;
-                  i$jscomp$0++
-                )
-                  destination.push(headChunks[i$jscomp$0]);
-              else {
-                var chunk = startChunkForTag("head");
-                destination.push(chunk);
-                destination.push(endOfStartTag);
-              }
-            } else if (headChunks)
-              for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-                destination.push(headChunks[i$jscomp$0]);
-            var charsetChunks = renderState.charsetChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < charsetChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(charsetChunks[i$jscomp$0]);
-            charsetChunks.length = 0;
-            renderState.preconnects.forEach(flushResource, destination);
-            renderState.preconnects.clear();
-            var viewportChunks = renderState.viewportChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < viewportChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(viewportChunks[i$jscomp$0]);
-            viewportChunks.length = 0;
-            renderState.fontPreloads.forEach(flushResource, destination);
-            renderState.fontPreloads.clear();
-            renderState.highImagePreloads.forEach(flushResource, destination);
-            renderState.highImagePreloads.clear();
-            currentlyFlushingRenderState = renderState;
-            renderState.styles.forEach(flushStylesInPreamble, destination);
-            currentlyFlushingRenderState = null;
-            var importMapChunks = renderState.importMapChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < importMapChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(importMapChunks[i$jscomp$0]);
-            importMapChunks.length = 0;
-            renderState.bootstrapScripts.forEach(flushResource, destination);
-            renderState.scripts.forEach(flushResource, destination);
-            renderState.scripts.clear();
-            renderState.bulkPreloads.forEach(flushResource, destination);
-            renderState.bulkPreloads.clear();
-            resumableState.instructions |= SentCompletedShellId;
-            var hoistableChunks = renderState.hoistableChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < hoistableChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(hoistableChunks[i$jscomp$0]);
-            for (
-              resumableState = hoistableChunks.length = 0;
-              resumableState < completedPreambleSegments.length;
-              resumableState++
-            ) {
-              var segments = completedPreambleSegments[resumableState];
-              for (
-                renderState = 0;
-                renderState < segments.length;
-                renderState++
-              )
-                flushSegment(request, destination, segments[renderState], null);
-            }
-            var preamble$jscomp$0 = request.renderState.preamble,
-              headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-            if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) {
-              var chunk$jscomp$0 = endChunkForTag("head");
-              destination.push(chunk$jscomp$0);
-            }
-            var bodyChunks = preamble$jscomp$0.bodyChunks;
-            if (bodyChunks)
-              for (
-                completedPreambleSegments = 0;
-                completedPreambleSegments < bodyChunks.length;
-                completedPreambleSegments++
-              )
-                destination.push(bodyChunks[completedPreambleSegments]);
-            flushSegment(request, destination, completedRootSegment, null);
-            request.completedRootSegment = null;
-            var renderState$jscomp$0 = request.renderState;
-            if (
-              0 !== request.allPendingTasks ||
-              0 !== request.clientRenderedBoundaries.length ||
-              0 !== request.completedBoundaries.length ||
-              (null !== request.trackedPostpones &&
-                (0 !== request.trackedPostpones.rootNodes.length ||
-                  null !== request.trackedPostpones.rootSlots))
-            ) {
-              var resumableState$jscomp$0 = request.resumableState;
-              if (
-                (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-                NothingSent
-              ) {
-                resumableState$jscomp$0.instructions |= SentMarkShellTime;
-                destination.push(renderState$jscomp$0.startInlineScript);
-                if (
-                  (resumableState$jscomp$0.instructions &
-                    SentCompletedShellId) ===
-                  NothingSent
-                ) {
-                  resumableState$jscomp$0.instructions |= SentCompletedShellId;
-                  var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-                  destination.push(completedShellIdAttributeStart);
-                  var chunk$jscomp$1 = escapeTextForBrowser(shellId);
-                  destination.push(chunk$jscomp$1);
-                  destination.push(attributeEnd);
-                }
-                destination.push(endOfStartTag);
-                destination.push(shellTimeRuntimeScript);
-                destination.push(endInlineScript);
-              }
-            }
-            writeBootstrap(destination, renderState$jscomp$0);
-          }
-          var renderState$jscomp$1 = request.renderState;
-          completedRootSegment = 0;
-          var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < viewportChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            destination.push(viewportChunks$jscomp$0[completedRootSegment]);
-          viewportChunks$jscomp$0.length = 0;
-          renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-          renderState$jscomp$1.preconnects.clear();
-          renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.fontPreloads.clear();
-          renderState$jscomp$1.highImagePreloads.forEach(
-            flushResource,
-            destination
-          );
-          renderState$jscomp$1.highImagePreloads.clear();
-          renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-          renderState$jscomp$1.scripts.forEach(flushResource, destination);
-          renderState$jscomp$1.scripts.clear();
-          renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.bulkPreloads.clear();
-          var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < hoistableChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            destination.push(hoistableChunks$jscomp$0[completedRootSegment]);
-          hoistableChunks$jscomp$0.length = 0;
-          var clientRenderedBoundaries = request.clientRenderedBoundaries;
-          for (i = 0; i < clientRenderedBoundaries.length; i++) {
-            var boundary = clientRenderedBoundaries[i];
-            renderState$jscomp$1 = destination;
-            var resumableState$jscomp$1 = request.resumableState,
-              renderState$jscomp$2 = request.renderState,
-              id = boundary.rootSegmentID,
-              errorDigest = boundary.errorDigest,
-              errorMessage = boundary.errorMessage,
-              errorStack = boundary.errorStack,
-              errorComponentStack = boundary.errorComponentStack;
-            renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
-            renderState$jscomp$1.push(endOfStartTag);
-            (resumableState$jscomp$1.instructions &
-              SentClientRenderFunction) ===
-            NothingSent
-              ? ((resumableState$jscomp$1.instructions |=
-                  SentClientRenderFunction),
-                renderState$jscomp$1.push(clientRenderScript1Full))
-              : renderState$jscomp$1.push(clientRenderScript1Partial);
-            renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
-            var chunk$jscomp$2 = id.toString(16);
-            renderState$jscomp$1.push(chunk$jscomp$2);
-            renderState$jscomp$1.push(clientRenderScript1A);
-            if (
-              errorDigest ||
-              errorMessage ||
-              errorStack ||
-              errorComponentStack
-            ) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
-                errorDigest || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$3);
-            }
-            if (errorMessage || errorStack || errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$4 = escapeJSStringsForInstructionScripts(
-                errorMessage || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$4);
-            }
-            if (errorStack || errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$5 = escapeJSStringsForInstructionScripts(
-                errorStack || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$5);
-            }
-            if (errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$6 =
-                escapeJSStringsForInstructionScripts(errorComponentStack);
-              renderState$jscomp$1.push(chunk$jscomp$6);
-            }
-            var JSCompiler_inline_result = renderState$jscomp$1.push(
-              clientRenderScriptEnd
-            );
-            if (!JSCompiler_inline_result) {
-              request.destination = null;
-              i++;
-              clientRenderedBoundaries.splice(0, i);
-              return;
-            }
-          }
-          clientRenderedBoundaries.splice(0, i);
-          var completedBoundaries = request.completedBoundaries;
-          for (i = 0; i < completedBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(
-                request,
-                destination,
-                completedBoundaries[i]
-              )
-            ) {
-              request.destination = null;
-              i++;
-              completedBoundaries.splice(0, i);
-              return;
-            }
-          completedBoundaries.splice(0, i);
-          flushingPartialBoundaries = !0;
-          var partialBoundaries = request.partialBoundaries;
-          for (i = 0; i < partialBoundaries.length; i++) {
-            a: {
-              clientRenderedBoundaries = request;
-              boundary = destination;
-              var boundary$jscomp$0 = partialBoundaries[i];
-              flushedByteSize = boundary$jscomp$0.byteSize;
-              var completedSegments = boundary$jscomp$0.completedSegments;
-              for (
-                JSCompiler_inline_result = 0;
-                JSCompiler_inline_result < completedSegments.length;
-                JSCompiler_inline_result++
-              )
-                if (
-                  !flushPartiallyCompletedSegment(
-                    clientRenderedBoundaries,
-                    boundary,
-                    boundary$jscomp$0,
-                    completedSegments[JSCompiler_inline_result]
-                  )
-                ) {
-                  JSCompiler_inline_result++;
-                  completedSegments.splice(0, JSCompiler_inline_result);
-                  var JSCompiler_inline_result$jscomp$0 = !1;
-                  break a;
-                }
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var row = boundary$jscomp$0.row;
-              null !== row &&
-                row.together &&
-                1 === boundary$jscomp$0.pendingTasks &&
-                (1 === row.pendingTasks
-                  ? unblockSuspenseListRow(
-                      clientRenderedBoundaries,
-                      row,
-                      row.hoistables
-                    )
-                  : row.pendingTasks--);
-              JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-                boundary,
-                boundary$jscomp$0.contentState,
-                clientRenderedBoundaries.renderState
-              );
-            }
-            if (!JSCompiler_inline_result$jscomp$0) {
-              request.destination = null;
-              i++;
-              partialBoundaries.splice(0, i);
-              return;
-            }
-          }
-          partialBoundaries.splice(0, i);
-          flushingPartialBoundaries = !1;
-          var largeBoundaries = request.completedBoundaries;
-          for (i = 0; i < largeBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(request, destination, largeBoundaries[i])
-            ) {
-              request.destination = null;
-              i++;
-              largeBoundaries.splice(0, i);
-              return;
-            }
-          largeBoundaries.splice(0, i);
-        }
-      } finally {
-        (flushingPartialBoundaries = !1),
-          0 === request.allPendingTasks &&
-            0 === request.clientRenderedBoundaries.length &&
-            0 === request.completedBoundaries.length &&
-            ((request.flushScheduled = !1),
-            (i = request.resumableState),
-            i.hasBody &&
-              ((partialBoundaries = endChunkForTag("body")),
-              destination.push(partialBoundaries)),
-            i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
-            0 !== request.abortableTasks.size &&
-              console.error(
-                "There was still abortable task at the root when we closed. This is a bug in React."
-              ),
-            (request.status = CLOSED),
-            destination.push(null),
-            (request.destination = null));
-      }
-    }
-    function startWork(request) {
-      request.flushScheduled = null !== request.destination;
-      performWork(request);
-      10 === request.status && (request.status = 11);
-      null === request.trackedPostpones &&
-        safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-    }
-    function enqueueFlush(request) {
-      if (
-        !1 === request.flushScheduled &&
-        0 === request.pingedTasks.length &&
-        null !== request.destination
-      ) {
-        request.flushScheduled = !0;
-        var destination = request.destination;
-        destination
-          ? flushCompletedQueues(request, destination)
-          : (request.flushScheduled = !1);
-      }
-    }
-    function startFlowing(request, destination) {
-      if (13 === request.status)
-        (request.status = CLOSED), destination.destroy(request.fatalError);
-      else if (request.status !== CLOSED && null === request.destination) {
-        request.destination = destination;
-        try {
-          flushCompletedQueues(request, destination);
-        } catch (error) {
-          (destination = {}),
-            logRecoverableError(request, error, destination, null),
-            fatalError(request, error, destination, null);
-        }
-      }
-    }
-    function abort(request, reason) {
-      if (11 === request.status || 10 === request.status) request.status = 12;
-      try {
-        var abortableTasks = request.abortableTasks;
-        if (0 < abortableTasks.size) {
-          var error =
-            void 0 === reason
-              ? Error("The render was aborted by the server without a reason.")
-              : "object" === typeof reason &&
-                  null !== reason &&
-                  "function" === typeof reason.then
-                ? Error("The render was aborted by the server with a promise.")
-                : reason;
-          request.fatalError = error;
-          abortableTasks.forEach(function (task) {
-            var prevTaskInDEV = currentTaskInDEV,
-              prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-            currentTaskInDEV = task;
-            ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-            try {
-              abortTask(task, request, error);
-            } finally {
-              (currentTaskInDEV = prevTaskInDEV),
-                (ReactSharedInternals.getCurrentStack =
-                  prevGetCurrentStackImpl);
-            }
-          });
-          abortableTasks.clear();
-        }
-        null !== request.destination &&
-          flushCompletedQueues(request, request.destination);
-      } catch (error$4) {
-        (reason = {}),
-          logRecoverableError(request, error$4, reason, null),
-          fatalError(request, error$4, reason, null);
-      }
-    }
-    function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-      if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-      else {
-        var workingMap = trackedPostpones.workingMap,
-          parentNode = workingMap.get(parentKeyPath);
-        void 0 === parentNode &&
-          ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-          workingMap.set(parentKeyPath, parentNode),
-          addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-        parentNode[2].push(node);
-      }
-    }
-    function onError() {}
-    function renderToStringImpl(
-      children,
-      options,
-      generateStaticMarkup,
-      abortReason
-    ) {
-      var didFatal = !1,
-        fatalError = null,
-        result = "",
-        readyToStream = !1;
-      options = createResumableState(
-        options ? options.identifierPrefix : void 0
-      );
-      children = createRequest(
-        children,
-        options,
-        createRenderState(options, generateStaticMarkup),
-        createFormatContext(ROOT_HTML_MODE, null, 0, null),
-        Infinity,
-        onError,
-        void 0,
-        function () {
-          readyToStream = !0;
-        },
-        void 0,
-        void 0,
-        void 0
-      );
-      startWork(children);
-      abort(children, abortReason);
-      startFlowing(children, {
-        push: function (chunk) {
-          null !== chunk && (result += chunk);
-          return !0;
-        },
-        destroy: function (error) {
-          didFatal = !0;
-          fatalError = error;
-        }
-      });
-      if (didFatal && fatalError !== abortReason) throw fatalError;
-      if (!readyToStream)
-        throw Error(
-          "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition."
-        );
-      return result;
-    }
-    var React = require("react"),
-      ReactDOM = require("react-dom"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-      REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      isArrayImpl = Array.isArray,
-      jsxPropsParents = new WeakMap(),
-      jsxChildrenParents = new WeakMap(),
-      CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
-      assign = Object.assign,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern$1 = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      matchHtmlRegExp = /["'&<>]/,
-      uppercasePattern = /([A-Z])/g,
-      msPattern = /^ms-/,
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: previousDispatcher.f,
-      r: previousDispatcher.r,
-      D: function (href) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            if (!resumableState.dnsResources.hasOwnProperty(href)) {
-              resumableState.dnsResources[href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              )
-                JSCompiler_temp =
-                  ((header =
-                    "<" +
-                    escapeHrefForLinkHeaderURLContext(href) +
-                    ">; rel=dns-prefetch"),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              JSCompiler_temp
-                ? ((renderState.resets.dns[href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((header = []),
-                  pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-                  renderState.preconnects.add(header));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.D(href);
-      },
-      C: function (href, crossOrigin) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            var bucket =
-              "use-credentials" === crossOrigin
-                ? "credentials"
-                : "string" === typeof crossOrigin
-                  ? "anonymous"
-                  : "default";
-            if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-              resumableState.connectResources[bucket][href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              ) {
-                JSCompiler_temp =
-                  "<" +
-                  escapeHrefForLinkHeaderURLContext(href) +
-                  ">; rel=preconnect";
-                if ("string" === typeof crossOrigin) {
-                  var escapedCrossOrigin =
-                    escapeStringForLinkHeaderQuotedParamValueContext(
-                      crossOrigin,
-                      "crossOrigin"
-                    );
-                  JSCompiler_temp +=
-                    '; crossorigin="' + escapedCrossOrigin + '"';
-                }
-                JSCompiler_temp =
-                  ((header = JSCompiler_temp),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              }
-              JSCompiler_temp
-                ? ((renderState.resets.connect[bucket][href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((bucket = []),
-                  pushLinkImpl(bucket, {
-                    rel: "preconnect",
-                    href: href,
-                    crossOrigin: crossOrigin
-                  }),
-                  renderState.preconnects.add(bucket));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.C(href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (as && href) {
-            switch (as) {
-              case "image":
-                if (options) {
-                  var imageSrcSet = options.imageSrcSet;
-                  var imageSizes = options.imageSizes;
-                  var fetchPriority = options.fetchPriority;
-                }
-                var key = imageSrcSet
-                  ? imageSrcSet + "\n" + (imageSizes || "")
-                  : href;
-                if (resumableState.imageResources.hasOwnProperty(key)) return;
-                resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-                resumableState = renderState.headers;
-                var header;
-                resumableState &&
-                0 < resumableState.remainingCapacity &&
-                "string" !== typeof imageSrcSet &&
-                "high" === fetchPriority &&
-                ((header = getPreloadAsHeader(href, as, options)),
-                0 <= (resumableState.remainingCapacity -= header.length + 2))
-                  ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-                    resumableState.highImagePreloads &&
-                      (resumableState.highImagePreloads += ", "),
-                    (resumableState.highImagePreloads += header))
-                  : ((resumableState = []),
-                    pushLinkImpl(
-                      resumableState,
-                      assign(
-                        {
-                          rel: "preload",
-                          href: imageSrcSet ? void 0 : href,
-                          as: as
-                        },
-                        options
-                      )
-                    ),
-                    "high" === fetchPriority
-                      ? renderState.highImagePreloads.add(resumableState)
-                      : (renderState.bulkPreloads.add(resumableState),
-                        renderState.preloads.images.set(key, resumableState)));
-                break;
-              case "style":
-                if (resumableState.styleResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.styleResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.stylesheets.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                break;
-              case "script":
-                if (resumableState.scriptResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                renderState.preloads.scripts.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.scriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                break;
-              default:
-                if (resumableState.unknownResources.hasOwnProperty(as)) {
-                  if (
-                    ((imageSrcSet = resumableState.unknownResources[as]),
-                    imageSrcSet.hasOwnProperty(href))
-                  )
-                    return;
-                } else
-                  (imageSrcSet = {}),
-                    (resumableState.unknownResources[as] = imageSrcSet);
-                imageSrcSet[href] = PRELOAD_NO_CREDS;
-                if (
-                  (resumableState = renderState.headers) &&
-                  0 < resumableState.remainingCapacity &&
-                  "font" === as &&
-                  ((key = getPreloadAsHeader(href, as, options)),
-                  0 <= (resumableState.remainingCapacity -= key.length + 2))
-                )
-                  (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-                    resumableState.fontPreloads &&
-                      (resumableState.fontPreloads += ", "),
-                    (resumableState.fontPreloads += key);
-                else
-                  switch (
-                    ((resumableState = []),
-                    (href = assign(
-                      { rel: "preload", href: href, as: as },
-                      options
-                    )),
-                    pushLinkImpl(resumableState, href),
-                    as)
-                  ) {
-                    case "font":
-                      renderState.fontPreloads.add(resumableState);
-                      break;
-                    default:
-                      renderState.bulkPreloads.add(resumableState);
-                  }
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.L(href, as, options);
-      },
-      m: function (href, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            var as =
-              options && "string" === typeof options.as ? options.as : "script";
-            switch (as) {
-              case "script":
-                if (resumableState.moduleScriptResources.hasOwnProperty(href))
-                  return;
-                as = [];
-                resumableState.moduleScriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.moduleScripts.set(href, as);
-                break;
-              default:
-                if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-                  var resources = resumableState.unknownResources[as];
-                  if (resources.hasOwnProperty(href)) return;
-                } else
-                  (resources = {}),
-                    (resumableState.moduleUnknownResources[as] = resources);
-                as = [];
-                resources[href] = PRELOAD_NO_CREDS;
-            }
-            pushLinkImpl(
-              as,
-              assign({ rel: "modulepreload", href: href }, options)
-            );
-            renderState.bulkPreloads.add(as);
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.m(href, options);
-      },
-      X: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState = resumableState.scriptResources.hasOwnProperty(
-              src
-            )
-              ? resumableState.scriptResources[src]
-              : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.scriptResources[src] = EXISTS),
-              (options = assign({ src: src, async: !0 }, options)),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.scripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.X(src, options);
-      },
-      S: function (href, precedence, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            precedence = precedence || "default";
-            var styleQueue = renderState.styles.get(precedence),
-              resourceState = resumableState.styleResources.hasOwnProperty(href)
-                ? resumableState.styleResources[href]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.styleResources[href] = EXISTS),
-              styleQueue ||
-                ((styleQueue = {
-                  precedence: escapeTextForBrowser(precedence),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(precedence, styleQueue)),
-              (precedence = {
-                state: PENDING$1,
-                props: assign(
-                  {
-                    rel: "stylesheet",
-                    href: href,
-                    "data-precedence": precedence
-                  },
-                  options
-                )
-              }),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(precedence.props, resourceState),
-                (renderState = renderState.preloads.stylesheets.get(href)) &&
-                0 < renderState.length
-                  ? (renderState.length = 0)
-                  : (precedence.state = PRELOADED)),
-              styleQueue.sheets.set(href, precedence),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.S(href, precedence, options);
-      },
-      M: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState =
-              resumableState.moduleScriptResources.hasOwnProperty(src)
-                ? resumableState.moduleScriptResources[src]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.moduleScriptResources[src] = EXISTS),
-              (options = assign(
-                { src: src, type: "module", async: !0 },
-                options
-              )),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.moduleScripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.M(src, options);
-      }
-    };
-    var NothingSent = 0,
-      SentCompleteSegmentFunction = 1,
-      SentCompleteBoundaryFunction = 2,
-      SentClientRenderFunction = 4,
-      SentStyleInsertionFunction = 8,
-      SentCompletedShellId = 32,
-      SentMarkShellTime = 64,
-      EXISTS = null,
-      PRELOAD_NO_CREDS = [];
-    Object.freeze(PRELOAD_NO_CREDS);
-    var currentlyFlushingRenderState = null,
-      endInlineScript = "\x3c/script>",
-      scriptRegex = /(<\/|<)(s)(cript)/gi;
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var ROOT_HTML_MODE = 0,
-      HTML_HTML_MODE = 1,
-      HTML_MODE = 2,
-      HTML_HEAD_MODE = 3,
-      SVG_MODE = 4,
-      MATHML_MODE = 5,
-      HTML_TABLE_MODE = 6,
-      HTML_TABLE_BODY_MODE = 7,
-      HTML_TABLE_ROW_MODE = 8,
-      HTML_COLGROUP_MODE = 9,
-      styleNameCache = new Map(),
-      styleAttributeStart = ' style="',
-      styleAssign = ":",
-      styleSeparator = ";",
-      attributeSeparator = " ",
-      attributeAssign = '="',
-      attributeEnd = '"',
-      attributeEmptyString = '=""',
-      actionJavaScriptURL = escapeTextForBrowser(
-        "javascript:throw new Error('React form unexpectedly submitted.')"
-      ),
-      endOfStartTag = ">",
-      endOfStartTagSelfClosing = "/>",
-      didWarnDefaultInputValue = !1,
-      didWarnDefaultChecked = !1,
-      didWarnDefaultSelectValue = !1,
-      didWarnDefaultTextareaValue = !1,
-      didWarnInvalidOptionChildren = !1,
-      didWarnInvalidOptionInnerHTML = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      formReplayingRuntimeScript =
-        'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-      styleRegex = /(<\/|<)(s)(tyle)/gi,
-      leadingNewline = "\n",
-      VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-      validatedTagCache = new Map(),
-      endTagCache = new Map(),
-      shellTimeRuntimeScript =
-        "requestAnimationFrame(function(){$RT=performance.now()});",
-      placeholder1 = '<template id="',
-      placeholder2 = '"></template>',
-      startCompletedSuspenseBoundary = "\x3c!--$--\x3e",
-      startPendingSuspenseBoundary1 = '\x3c!--$?--\x3e<template id="',
-      startPendingSuspenseBoundary2 = '"></template>',
-      startClientRenderedSuspenseBoundary = "\x3c!--$!--\x3e",
-      endSuspenseBoundary = "\x3c!--/$--\x3e",
-      clientRenderedSuspenseBoundaryError1 = "<template",
-      clientRenderedSuspenseBoundaryErrorAttrInterstitial = '"',
-      clientRenderedSuspenseBoundaryError1A = ' data-dgst="',
-      clientRenderedSuspenseBoundaryError1B = ' data-msg="',
-      clientRenderedSuspenseBoundaryError1C = ' data-stck="',
-      clientRenderedSuspenseBoundaryError1D = ' data-cstck="',
-      clientRenderedSuspenseBoundaryError2 = "></template>",
-      startSegmentHTML = '<div hidden id="',
-      startSegmentHTML2 = '">',
-      endSegmentHTML = "</div>",
-      startSegmentSVG = '<svg aria-hidden="true" style="display:none" id="',
-      startSegmentSVG2 = '">',
-      endSegmentSVG = "</svg>",
-      startSegmentMathML = '<math aria-hidden="true" style="display:none" id="',
-      startSegmentMathML2 = '">',
-      endSegmentMathML = "</math>",
-      startSegmentTable = '<table hidden id="',
-      startSegmentTable2 = '">',
-      endSegmentTable = "</table>",
-      startSegmentTableBody = '<table hidden><tbody id="',
-      startSegmentTableBody2 = '">',
-      endSegmentTableBody = "</tbody></table>",
-      startSegmentTableRow = '<table hidden><tr id="',
-      startSegmentTableRow2 = '">',
-      endSegmentTableRow = "</tr></table>",
-      startSegmentColGroup = '<table hidden><colgroup id="',
-      startSegmentColGroup2 = '">',
-      endSegmentColGroup = "</colgroup></table>",
-      completeSegmentScript1Full =
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("',
-      completeSegmentScript1Partial = '$RS("',
-      completeSegmentScript2 = '","',
-      completeSegmentScriptEnd = '")\x3c/script>',
-      completeBoundaryScriptFunctionOnly =
-        '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};',
-      completeBoundaryScript1Partial = '$RC("',
-      completeBoundaryWithStylesScript1FullPartial =
-        '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("',
-      completeBoundaryWithStylesScript1Partial = '$RR("',
-      completeBoundaryScript2 = '","',
-      completeBoundaryScript3a = '",',
-      completeBoundaryScript3b = '"',
-      completeBoundaryScriptEnd = ")\x3c/script>",
-      clientRenderScriptFunctionOnly =
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};',
-      clientRenderScript1Full =
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("',
-      clientRenderScript1Partial = '$RX("',
-      clientRenderScript1A = '"',
-      clientRenderErrorScriptArgInterstitial = ",",
-      clientRenderScriptEnd = ")\x3c/script>",
-      regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
-      regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
-      lateStyleTagResourceOpen1 = ' media="not all" data-precedence="',
-      lateStyleTagResourceOpen2 = '" data-href="',
-      lateStyleTagResourceOpen3 = '">',
-      lateStyleTagTemplateClose = "</style>",
-      currentlyRenderingBoundaryHasStylesToHoist = !1,
-      destinationHasCapacity = !0,
-      stylesheetFlushingQueue = [],
-      styleTagResourceOpen1 = ' data-precedence="',
-      styleTagResourceOpen2 = '" data-href="',
-      spaceSeparator = " ",
-      styleTagResourceOpen3 = '">',
-      styleTagResourceClose = "</style>",
-      completedShellIdAttributeStart = ' id="',
-      arrayFirstOpenBracket = "[",
-      arraySubsequentOpenBracket = ",[",
-      arrayInterstitial = ",",
-      arrayCloseBracket = "]",
-      PENDING$1 = 0,
-      PRELOADED = 1,
-      PREAMBLE = 2,
-      LATE = 3,
-      regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g,
-      regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g,
-      doctypeChunk = "",
-      bind = Function.prototype.bind,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var rendererSigil = {};
-    var currentActiveSnapshot = null,
-      didWarnAboutNoopUpdateForComponent = {},
-      didWarnAboutDeprecatedWillMount = {};
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          var internals = inst._reactInternals;
-          null === internals.queue
-            ? warnNoop(inst, "setState")
-            : (internals.queue.push(payload),
-              void 0 !== callback &&
-                null !== callback &&
-                warnOnInvalidCallback(callback));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          inst.replace = !0;
-          inst.queue = [payload];
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback);
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          null === inst._reactInternals.queue
-            ? warnNoop(inst, "forceUpdate")
-            : void 0 !== callback &&
-              null !== callback &&
-              warnOnInvalidCallback(callback);
-        }
-      },
-      emptyTreeContext = { id: 1, overflow: "" },
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      suspendedThenable = null,
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      currentlyRenderingComponent = null,
-      currentlyRenderingTask = null,
-      currentlyRenderingRequest = null,
-      currentlyRenderingKeyPath = null,
-      firstWorkInProgressHook = null,
-      workInProgressHook = null,
-      isReRender = !1,
-      didScheduleRenderPhaseUpdate = !1,
-      localIdCounter = 0,
-      actionStateCounter = 0,
-      actionStateMatchingIndex = -1,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      renderPhaseUpdates = null,
-      numberOfReRenders = 0,
-      isInHookUserCodeInDev = !1,
-      currentHookNameInDev,
-      HooksDispatcher = {
-        readContext: readContext,
-        use: function (usable) {
-          if (null !== usable && "object" === typeof usable) {
-            if ("function" === typeof usable.then)
-              return unwrapThenable(usable);
-            if (usable.$$typeof === REACT_CONTEXT_TYPE)
-              return readContext(usable);
-          }
-          throw Error(
-            "An unsupported type was passed to use(): " + String(usable)
-          );
-        },
-        useContext: function (context) {
-          currentHookNameInDev = "useContext";
-          resolveCurrentlyRenderingComponent();
-          return context._currentValue2;
-        },
-        useMemo: useMemo,
-        useReducer: useReducer,
-        useRef: function (initialValue) {
-          currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-          workInProgressHook = createWorkInProgressHook();
-          var previousRef = workInProgressHook.memoizedState;
-          return null === previousRef
-            ? ((initialValue = { current: initialValue }),
-              Object.seal(initialValue),
-              (workInProgressHook.memoizedState = initialValue))
-            : previousRef;
-        },
-        useState: function (initialState) {
-          currentHookNameInDev = "useState";
-          return useReducer(basicStateReducer, initialState);
-        },
-        useInsertionEffect: noop,
-        useLayoutEffect: noop,
-        useCallback: function (callback, deps) {
-          return useMemo(function () {
-            return callback;
-          }, deps);
-        },
-        useImperativeHandle: noop,
-        useEffect: noop,
-        useDebugValue: noop,
-        useDeferredValue: function (value, initialValue) {
-          resolveCurrentlyRenderingComponent();
-          return void 0 !== initialValue ? initialValue : value;
-        },
-        useTransition: function () {
-          resolveCurrentlyRenderingComponent();
-          return [!1, unsupportedStartTransition];
-        },
-        useId: function () {
-          var treeId = currentlyRenderingTask.treeContext;
-          var overflow = treeId.overflow;
-          treeId = treeId.id;
-          treeId =
-            (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-          var resumableState = currentResumableState;
-          if (null === resumableState)
-            throw Error(
-              "Invalid hook call. Hooks can only be called inside of the body of a function component."
-            );
-          overflow = localIdCounter++;
-          treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-          0 < overflow && (treeId += "H" + overflow.toString(32));
-          return treeId + "_";
-        },
-        useSyncExternalStore: function (
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        ) {
-          if (void 0 === getServerSnapshot)
-            throw Error(
-              "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-            );
-          return getServerSnapshot();
-        },
-        useOptimistic: function (passthrough) {
-          resolveCurrentlyRenderingComponent();
-          return [passthrough, unsupportedSetOptimisticState];
-        },
-        useActionState: useActionState,
-        useFormState: useActionState,
-        useHostTransitionStatus: function () {
-          resolveCurrentlyRenderingComponent();
-          return NotPending;
-        },
-        useMemoCache: function (size) {
-          for (var data = Array(size), i = 0; i < size; i++)
-            data[i] = REACT_MEMO_CACHE_SENTINEL;
-          return data;
-        },
-        useCacheRefresh: function () {
-          return unsupportedRefresh;
-        },
-        useEffectEvent: function () {
-          return throwOnUseEffectEventCall;
-        }
-      },
-      currentResumableState = null,
-      currentTaskInDEV = null,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function () {
-          throw Error("Not implemented.");
-        },
-        cacheSignal: function () {
-          throw Error("Not implemented.");
-        },
-        getOwner: function () {
-          return null === currentTaskInDEV
-            ? null
-            : currentTaskInDEV.componentStack;
-        }
-      },
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          return Component(props, secondArg);
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          return instance.render();
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var CLIENT_RENDERED = 4,
-      PENDING = 0,
-      COMPLETED = 1,
-      FLUSHED = 2,
-      ABORTED = 3,
-      ERRORED = 4,
-      POSTPONED = 5,
-      CLOSED = 14,
-      currentRequest = null,
-      didWarnAboutBadClass = {},
-      didWarnAboutContextTypes = {},
-      didWarnAboutContextTypeOnFunctionComponent = {},
-      didWarnAboutGetDerivedStateOnFunctionComponent = {},
-      didWarnAboutReassigningProps = !1,
-      didWarnAboutGenerators = !1,
-      didWarnAboutMaps = !1,
-      flushedByteSize = 0,
-      flushingPartialBoundaries = !1;
-    exports.renderToStaticMarkup = function (children, options) {
-      return renderToStringImpl(
-        children,
-        options,
-        !0,
-        'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
-      );
-    };
-    exports.renderToString = function (children, options) {
-      return renderToStringImpl(
-        children,
-        options,
-        !1,
-        'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
-      );
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6603 +1,0 @@
-/**
- * @license React
- * react-dom-server-legacy.browser.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom");
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray;
-function murmurhash3_32_gc(key, seed) {
-  var remainder = key.length & 3;
-  var bytes = key.length - remainder;
-  var h1 = seed;
-  for (seed = 0; seed < bytes; ) {
-    var k1 =
-      (key.charCodeAt(seed) & 255) |
-      ((key.charCodeAt(++seed) & 255) << 8) |
-      ((key.charCodeAt(++seed) & 255) << 16) |
-      ((key.charCodeAt(++seed) & 255) << 24);
-    ++seed;
-    k1 =
-      (3432918353 * (k1 & 65535) +
-        (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    k1 = (k1 << 15) | (k1 >>> 17);
-    k1 =
-      (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    h1 ^= k1;
-    h1 = (h1 << 13) | (h1 >>> 19);
-    h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-    h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-  }
-  k1 = 0;
-  switch (remainder) {
-    case 3:
-      k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-    case 2:
-      k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-    case 1:
-      (k1 ^= key.charCodeAt(seed) & 255),
-        (k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295),
-        (k1 = (k1 << 15) | (k1 >>> 17)),
-        (h1 ^=
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295);
-  }
-  h1 ^= key.length;
-  h1 ^= h1 >>> 16;
-  h1 =
-    (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  h1 ^= h1 >>> 13;
-  h1 =
-    (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  return (h1 ^ (h1 >>> 16)) >>> 0;
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null,
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-var styleNameCache = new Map();
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style) throw Error(formatProdErrorMessage(62));
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = escapeTextForBrowser(styleName);
-          styleValue = escapeTextForBrowser(("" + styleValue).trim());
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = escapeTextForBrowser(
-                styleName
-                  .replace(uppercasePattern, "-$1")
-                  .toLowerCase()
-                  .replace(msPattern, "-ms-")
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? "" + styleValue
-                  : styleValue + "px"
-                : escapeTextForBrowser(("" + styleValue).trim()));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(' style="', nameChunk, ":", styleValue))
-          : target.push(";", nameChunk, ":", styleValue);
-      }
-    }
-  isFirst || target.push('"');
-}
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(" ", name, '=""');
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-}
-var actionJavaScriptURL = escapeTextForBrowser(
-  "javascript:throw new Error('React form unexpectedly submitted.')"
-);
-function pushAdditionalFormField(value, key) {
-  this.push('<input type="hidden"');
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push("/>");
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value) throw Error(formatProdErrorMessage(480));
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"');
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '=""');
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(" ", name, '=""')
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-        }
-  }
-}
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children) throw Error(formatProdErrorMessage(60));
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(formatProdErrorMessage(61));
-    innerHTML = innerHTML.__html;
-    null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML);
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        );
-  }
-}
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(formatProdErrorMessage(399, "link"));
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(formatProdErrorMessage(399, tag));
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(escapeTextForBrowser("" + props));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(("" + children).replace(scriptRegex, scriptReplacer));
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(escapeTextForBrowser(tag)), null)
-    : tag;
-}
-var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag))
-      throw Error(formatProdErrorMessage(65, tag));
-    tagStartChunk = "<" + tag;
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(escapeTextForBrowser(children));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(' selected=""');
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(' selected=""');
-      } else selected && target$jscomp$0.push(' selected=""');
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(91));
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(">");
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92));
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error(formatProdErrorMessage(93));
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push("\n");
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0));
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(399, "input"));
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push("/>");
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(">");
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              " ",
-              "action",
-              '="',
-              actionJavaScriptURL,
-              '"'
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(">");
-      null !== formActionName &&
-        (target$jscomp$0.push('<input type="hidden"'),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push("/>"),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(400));
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  " ",
-                  "data",
-                  '="',
-                  escapeTextForBrowser(sanitizedValue),
-                  '"'
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: escapeTextForBrowser(precedence),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(">");
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer));
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: escapeTextForBrowser(precedence$jscomp$0),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8) throw Error(formatProdErrorMessage(60));
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(formatProdErrorMessage(61));
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push("\n", html)
-            : target$jscomp$0.push("" + html));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push("\n");
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error(formatProdErrorMessage(545, "`<head>`"));
-        null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error(formatProdErrorMessage(545, "`<body>`"));
-        null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error(formatProdErrorMessage(545, "`<html>`"));
-        null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-        preamble$jscomp$1.htmlChunks = [""];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      " ",
-                      attributeName,
-                      '="',
-                      escapeTextForBrowser(propValue$jscomp$11),
-                      '"'
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(">");
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    destination.push(renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]), (renderState.length = 0), destination.push(i))
-    : !0;
-}
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  destination.push('\x3c!--$?--\x3e<template id="');
-  if (null === id) throw Error(formatProdErrorMessage(395));
-  destination.push(renderState.boundaryPrefix);
-  renderState = id.toString(16);
-  destination.push(renderState);
-  return destination.push('"></template>');
-}
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        destination.push('<div hidden id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 4:
-      return (
-        destination.push('<svg aria-hidden="true" style="display:none" id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 5:
-      return (
-        destination.push('<math aria-hidden="true" style="display:none" id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 6:
-      return (
-        destination.push('<table hidden id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 7:
-      return (
-        destination.push('<table hidden><tbody id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 8:
-      return (
-        destination.push('<table hidden><tr id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 9:
-      return (
-        destination.push('<table hidden><colgroup id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    default:
-      throw Error(formatProdErrorMessage(397));
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return destination.push("</div>");
-    case 4:
-      return destination.push("</svg>");
-    case 5:
-      return destination.push("</math>");
-    case 6:
-      return destination.push("</table>");
-    case 7:
-      return destination.push("</tbody></table>");
-    case 8:
-      return destination.push("</tr></table>");
-    case 9:
-      return destination.push("</colgroup></table>");
-    default:
-      throw Error(formatProdErrorMessage(397));
-  }
-}
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    this.push(currentlyFlushingRenderState.startInlineStyle);
-    this.push(' media="not all" data-precedence="');
-    this.push(styleQueue.precedence);
-    for (this.push('" data-href="'); i < hrefs.length - 1; i++)
-      this.push(hrefs[i]), this.push(" ");
-    this.push(hrefs[i]);
-    this.push('">');
-    for (i = 0; i < rules.length; i++) this.push(rules[i]);
-    destinationHasCapacity = this.push("</style>");
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) this.push(resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    this.push(stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    this.push(currentlyFlushingRenderState.startInlineStyle);
-    this.push(' data-precedence="');
-    this.push(styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        this.push('" data-href="');
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        this.push(hrefs[styleQueue]), this.push(" ");
-      this.push(hrefs[styleQueue]);
-    }
-    this.push('">');
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      this.push(rules[styleQueue]);
-    this.push("</style>");
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      this.push(stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      ' id="',
-      escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-      '"'
-    ));
-}
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  destination.push("[");
-  var nextArrayOpenBrackChunk = "[";
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        destination.push(nextArrayOpenBrackChunk),
-          (resource = escapeJSObjectForInstructionScripts(
-            "" + resource.props.href
-          )),
-          destination.push(resource),
-          destination.push("]"),
-          (nextArrayOpenBrackChunk = ",[");
-      else {
-        destination.push(nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        coercedHref = escapeJSObjectForInstructionScripts(coercedHref);
-        destination.push(coercedHref);
-        precedence = "" + precedence;
-        destination.push(",");
-        precedence = escapeJSObjectForInstructionScripts(precedence);
-        destination.push(precedence);
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(399, "link"));
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        destination.push("]");
-        nextArrayOpenBrackChunk = ",[";
-        resource.state = 3;
-      }
-  });
-  destination.push("]");
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  destination.push(",");
-  attributeName = escapeJSObjectForInstructionScripts(attributeName);
-  destination.push(attributeName);
-  destination.push(",");
-  attributeName = escapeJSObjectForInstructionScripts(name);
-  destination.push(attributeName);
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: escapeTextForBrowser(precedence),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function createRenderState(resumableState, generateStaticMarkup) {
-  var idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push("<script"),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      ">",
-      ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
-      "\x3c/script>"
-    ));
-  bootstrapScriptContent = idPrefix + "P:";
-  var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:";
-  idPrefix += "B:";
-  var JSCompiler_object_inline_preconnects_1687 = new Set(),
-    JSCompiler_object_inline_fontPreloads_1688 = new Set(),
-    JSCompiler_object_inline_highImagePreloads_1689 = new Set(),
-    JSCompiler_object_inline_styles_1690 = new Map(),
-    JSCompiler_object_inline_bootstrapScripts_1691 = new Set(),
-    JSCompiler_object_inline_scripts_1692 = new Set(),
-    JSCompiler_object_inline_bulkPreloads_1693 = new Set(),
-    JSCompiler_object_inline_preloads_1694 = {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    };
-  if (void 0 !== bootstrapScripts)
-    for (var i = 0; i < bootstrapScripts.length; i++) {
-      var scriptConfig = bootstrapScripts[i],
-        src,
-        crossOrigin = void 0,
-        integrity = void 0,
-        props = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: void 0
-        };
-      "string" === typeof scriptConfig
-        ? (props.href = src = scriptConfig)
-        : ((props.href = src = scriptConfig.src),
-          (props.integrity = integrity =
-            "string" === typeof scriptConfig.integrity
-              ? scriptConfig.integrity
-              : void 0),
-          (props.crossOrigin = crossOrigin =
-            "string" === typeof scriptConfig || null == scriptConfig.crossOrigin
-              ? void 0
-              : "use-credentials" === scriptConfig.crossOrigin
-                ? "use-credentials"
-                : ""));
-      scriptConfig = resumableState;
-      var href = src;
-      scriptConfig.scriptResources[href] = null;
-      scriptConfig.moduleScriptResources[href] = null;
-      scriptConfig = [];
-      pushLinkImpl(scriptConfig, props);
-      JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig);
-      bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
-      "string" === typeof integrity &&
-        bootstrapChunks.push(
-          ' integrity="',
-          escapeTextForBrowser(integrity),
-          '"'
-        );
-      "string" === typeof crossOrigin &&
-        bootstrapChunks.push(
-          ' crossorigin="',
-          escapeTextForBrowser(crossOrigin),
-          '"'
-        );
-      pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
-      bootstrapChunks.push(' async="">\x3c/script>');
-    }
-  if (void 0 !== bootstrapModules)
-    for (
-      bootstrapScripts = 0;
-      bootstrapScripts < bootstrapModules.length;
-      bootstrapScripts++
-    )
-      (props = bootstrapModules[bootstrapScripts]),
-        (crossOrigin = src = void 0),
-        (integrity = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: void 0
-        }),
-        "string" === typeof props
-          ? (integrity.href = i = props)
-          : ((integrity.href = i = props.src),
-            (integrity.integrity = crossOrigin =
-              "string" === typeof props.integrity ? props.integrity : void 0),
-            (integrity.crossOrigin = src =
-              "string" === typeof props || null == props.crossOrigin
-                ? void 0
-                : "use-credentials" === props.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (props = resumableState),
-        (scriptConfig = i),
-        (props.scriptResources[scriptConfig] = null),
-        (props.moduleScriptResources[scriptConfig] = null),
-        (props = []),
-        pushLinkImpl(props, integrity),
-        JSCompiler_object_inline_bootstrapScripts_1691.add(props),
-        bootstrapChunks.push(
-          '<script type="module" src="',
-          escapeTextForBrowser(i),
-          '"'
-        ),
-        "string" === typeof crossOrigin &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(crossOrigin),
-            '"'
-          ),
-        "string" === typeof src &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(src),
-            '"'
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  return {
-    placeholderPrefix: bootstrapScriptContent,
-    segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673,
-    boundaryPrefix: idPrefix,
-    startInlineScript: "<script",
-    startInlineStyle: "<style",
-    preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: [],
-    onHeaders: void 0,
-    headers: null,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: JSCompiler_object_inline_preconnects_1687,
-    fontPreloads: JSCompiler_object_inline_fontPreloads_1688,
-    highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689,
-    styles: JSCompiler_object_inline_styles_1690,
-    bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691,
-    scripts: JSCompiler_object_inline_scripts_1692,
-    bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693,
-    preloads: JSCompiler_object_inline_preloads_1694,
-    nonce: { script: void 0, style: void 0 },
-    stylesToHoist: !1,
-    generateStaticMarkup: generateStaticMarkup
-  };
-}
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if (renderState.generateStaticMarkup)
-    return target.push(escapeTextForBrowser(text)), !1;
-  "" === text
-    ? (target = textEmbedded)
-    : (textEmbedded && target.push("\x3c!-- --\x3e"),
-      target.push(escapeTextForBrowser(text)),
-      (target = !0));
-  return target;
-}
-function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {
-  renderState.generateStaticMarkup ||
-    (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e"));
-}
-var bind = Function.prototype.bind,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue2 = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext) throw Error(formatProdErrorMessage(401));
-    } else {
-      if (null === parentNext) throw Error(formatProdErrorMessage(401));
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue2 = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue2 = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue2 = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue2 = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev) throw Error(formatProdErrorMessage(402));
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext) throw Error(formatProdErrorMessage(402));
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue2 = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(formatProdErrorMessage(460));
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(formatProdErrorMessage(321));
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders) throw Error(formatProdErrorMessage(312));
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(formatProdErrorMessage(440));
-}
-function unsupportedStartTransition() {
-  throw Error(formatProdErrorMessage(394));
-}
-function unsupportedSetOptimisticState() {
-  throw Error(formatProdErrorMessage(479));
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              murmurhash3_32_gc(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex]),
-                0
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error(formatProdErrorMessage(393));
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue2;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE)
-          return usable._currentValue2;
-      }
-      throw Error(formatProdErrorMessage(438, String(usable)));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue2;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState) throw Error(formatProdErrorMessage(404));
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(formatProdErrorMessage(407));
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error(formatProdErrorMessage(248));
-    },
-    cacheSignal: function () {
-      throw Error(formatProdErrorMessage(248));
-    }
-  },
-  prefix,
-  suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = void 0),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble;
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "[%s] " + error[0],
-          " " + JSCompiler_inline_result + " "
-        )
-      : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-var currentRequest = null;
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    performWork(request));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), request.destination.destroy(error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          pushSegmentFinale(
-            resumeSegmentID.chunks,
-            request.renderState,
-            resumeSegmentID.lastPushedText,
-            resumeSegmentID.textEmbedded
-          ),
-          (resumeSegmentID.status = 1),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push("\x3c!--F!--\x3e")
-          : segment.push("\x3c!--F--\x3e");
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$43 in defaultProps)
-          void 0 === newProps[propName$43] &&
-            (newProps[propName$43] = defaultProps[propName$43]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue2);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue2
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$43 = type[ref]),
-                (propName$43 =
-                  "function" === typeof propName$43
-                    ? propName$43.call(newProps, defaultProps, props, void 0)
-                    : propName$43),
-                null != propName$43 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$43)))
-                    : assign(defaultProps, propName$43));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            pushSegmentFinale(
-              keyPath.chunks,
-              request.renderState,
-              keyPath.lastPushedText,
-              keyPath.textEmbedded
-            ),
-            (keyPath.status = 1);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (request.renderState.generateStaticMarkup ||
-              type.chunks.push("\x3c!--&--\x3e"),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            request.renderState.generateStaticMarkup ||
-              type.chunks.push("\x3c!--/&--\x3e"),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error(formatProdErrorMessage(343));
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row,
-            parentBoundary = task.blockedBoundary;
-          propName$43 = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState;
-          propName = task.blockedSegment;
-          var fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary = createSuspenseBoundary(
-            request,
-            task.row,
-            fallbackAbortSet,
-            null,
-            null
-          );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            propName.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          propName.children.push(boundarySegment);
-          propName.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                pushSegmentFinale(
-                  boundarySegment.chunks,
-                  request.renderState,
-                  boundarySegment.lastPushedText,
-                  boundarySegment.textEmbedded
-                ),
-                (boundarySegment.status = 1);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = propName),
-                (task.blockedPreamble = propName$43),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                pushSegmentFinale(
-                  contentRootSegment.chunks,
-                  request.renderState,
-                  contentRootSegment.lastPushedText,
-                  contentRootSegment.textEmbedded
-                ),
-                (contentRootSegment.status = 1),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$30) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$30)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = parentBoundary),
-                (task.blockedPreamble = propName$43),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              parentBoundary,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (fallback in ((newProps = {}), props))
-              "ref" !== fallback && (newProps[fallback] = props[fallback]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue2;
-          type._currentValue2 = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request) throw Error(formatProdErrorMessage(403));
-          request.context._currentValue2 = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue2);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      formatProdErrorMessage(130, null == type ? type : typeof type, "")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        formatProdErrorMessage(490, node$jscomp$0[0], name)
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(formatProdErrorMessage(488));
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        formatProdErrorMessage(
-                          490,
-                          "Suspense",
-                          getComponentNameFromType(type) || "Unknown"
-                        )
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props = createSuspenseBoundary(
-                        request,
-                        task.row,
-                        fallbackAbortSet,
-                        null,
-                        null
-                      );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(formatProdErrorMessage(488));
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(formatProdErrorMessage(257));
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue2,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        formatProdErrorMessage(
-          31,
-          "[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex
-        )
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(formatProdErrorMessage(488));
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request) throw Error(formatProdErrorMessage(486));
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(formatProdErrorMessage(491));
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(formatProdErrorMessage(491));
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$62) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$62 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$62),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary) throw Error(formatProdErrorMessage(487));
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$63 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$63 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$63, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(formatProdErrorMessage(389));
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(formatProdErrorMessage(488));
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              pushSegmentFinale(
-                request$jscomp$1.chunks,
-                request.renderState,
-                request$jscomp$1.lastPushedText,
-                request$jscomp$1.textEmbedded
-              ),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment) throw Error(formatProdErrorMessage(391));
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        destination.push('<template id="'),
-        destination.push(request.placeholderPrefix),
-        (request = hoistableState.toString(16)),
-        destination.push(request),
-        destination.push('"></template>')
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          destination.push(chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        destination.push(chunks[chunkIdx]);
-      chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(formatProdErrorMessage(390));
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    request.renderState.generateStaticMarkup ||
-      ((boundary = boundary.errorDigest),
-      destination.push("\x3c!--$!--\x3e"),
-      destination.push("<template"),
-      boundary &&
-        (destination.push(' data-dgst="'),
-        (boundary = escapeTextForBrowser(boundary)),
-        destination.push(boundary),
-        destination.push('"')),
-      destination.push("></template>"));
-    flushSubtree(request, destination, segment, hoistableState);
-    request = request.renderState.generateStaticMarkup
-      ? !0
-      : destination.push("\x3c!--/$--\x3e");
-    return request;
-  }
-  if (1 !== boundary.status)
-    return (
-      0 === boundary.status &&
-        (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState),
-      destination.push("\x3c!--/$--\x3e")
-    );
-  if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    flushedByteSize + boundary.byteSize > request.progressiveChunkSize
-  )
-    return (
-      (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState),
-      destination.push("\x3c!--/$--\x3e")
-    );
-  flushedByteSize += boundary.byteSize;
-  hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-  segment = boundary.row;
-  null !== segment &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --segment.pendingTasks &&
-    finishSuspenseListRow(request, segment);
-  request.renderState.generateStaticMarkup ||
-    destination.push("\x3c!--$--\x3e");
-  segment = boundary.completedSegments;
-  if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
-  flushSegment(request, destination, segment[0], hoistableState);
-  request = request.renderState.generateStaticMarkup
-    ? !0
-    : destination.push("\x3c!--/$--\x3e");
-  return request;
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  destination.push(request.startInlineScript);
-  destination.push(">");
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        destination.push(
-          '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-        )),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        destination.push(
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          destination.push(
-            '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-          ))
-        : destination.push('$RR("'))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        destination.push(
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      destination.push('$RC("'));
-  completedSegments = i.toString(16);
-  destination.push(request.boundaryPrefix);
-  destination.push(completedSegments);
-  destination.push('","');
-  destination.push(request.segmentPrefix);
-  destination.push(completedSegments);
-  requiresStyleInsertion
-    ? (destination.push('",'),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : destination.push('"');
-  boundary = destination.push(")\x3c/script>");
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(formatProdErrorMessage(392));
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  destination.push(request.startInlineScript);
-  destination.push(">");
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      destination.push(
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ))
-    : destination.push('$RS("');
-  destination.push(request.segmentPrefix);
-  segmentID = segmentID.toString(16);
-  destination.push(segmentID);
-  destination.push('","');
-  destination.push(request.placeholderPrefix);
-  destination.push(segmentID);
-  destination = destination.push('")\x3c/script>');
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            destination.push(htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              destination.push(headChunks[i$jscomp$0]);
-          else {
-            var chunk = startChunkForTag("head");
-            destination.push(chunk);
-            destination.push(">");
-          }
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            destination.push(headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          destination.push(charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          destination.push(viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          destination.push(importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        resumableState.instructions |= 32;
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          destination.push(hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) {
-          var chunk$jscomp$0 = endChunkForTag("head");
-          destination.push(chunk$jscomp$0);
-        }
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            destination.push(bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            destination.push(renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              destination.push(' id="');
-              var chunk$jscomp$1 = escapeTextForBrowser(shellId);
-              destination.push(chunk$jscomp$1);
-              destination.push('"');
-            }
-            destination.push(">");
-            destination.push(
-              "requestAnimationFrame(function(){$RT=performance.now()});"
-            );
-            destination.push("\x3c/script>");
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        destination.push(viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        destination.push(hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
-        renderState$jscomp$1.push(">");
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            renderState$jscomp$1.push(
-              '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-            ))
-          : renderState$jscomp$1.push('$RX("');
-        renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
-        var chunk$jscomp$2 = id.toString(16);
-        renderState$jscomp$1.push(chunk$jscomp$2);
-        renderState$jscomp$1.push('"');
-        if (errorDigest) {
-          renderState$jscomp$1.push(",");
-          var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
-            errorDigest || ""
-          );
-          renderState$jscomp$1.push(chunk$jscomp$3);
-        }
-        var JSCompiler_inline_result =
-          renderState$jscomp$1.push(")\x3c/script>");
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$69 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$69.byteSize;
-          var completedSegments = boundary$69.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$69,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$69.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$69.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$69.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-        0 === request.clientRenderedBoundaries.length &&
-        0 === request.completedBoundaries.length &&
-        ((request.flushScheduled = !1),
-        (i = request.resumableState),
-        i.hasBody &&
-          ((partialBoundaries = endChunkForTag("body")),
-          destination.push(partialBoundaries)),
-        i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
-        (request.status = 14),
-        destination.push(null),
-        (request.destination = null));
-  }
-}
-function enqueueFlush(request) {
-  if (
-    !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination
-  ) {
-    request.flushScheduled = !0;
-    var destination = request.destination;
-    destination
-      ? flushCompletedQueues(request, destination)
-      : (request.flushScheduled = !1);
-  }
-}
-function startFlowing(request, destination) {
-  if (13 === request.status)
-    (request.status = 14), destination.destroy(request.fatalError);
-  else if (14 !== request.status && null === request.destination) {
-    request.destination = destination;
-    try {
-      flushCompletedQueues(request, destination);
-    } catch (error) {
-      logRecoverableError(request, error, {}), fatalError(request, error);
-    }
-  }
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error(formatProdErrorMessage(432))
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error(formatProdErrorMessage(530))
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$71) {
-    logRecoverableError(request, error$71, {}), fatalError(request, error$71);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-function onError() {}
-function renderToStringImpl(
-  children,
-  options,
-  generateStaticMarkup,
-  abortReason
-) {
-  var didFatal = !1,
-    fatalError = null,
-    result = "",
-    readyToStream = !1;
-  options = createResumableState(options ? options.identifierPrefix : void 0);
-  children = createRequest(
-    children,
-    options,
-    createRenderState(options, generateStaticMarkup),
-    createFormatContext(0, null, 0, null),
-    Infinity,
-    onError,
-    void 0,
-    function () {
-      readyToStream = !0;
-    },
-    void 0,
-    void 0,
-    void 0
-  );
-  children.flushScheduled = null !== children.destination;
-  performWork(children);
-  10 === children.status && (children.status = 11);
-  null === children.trackedPostpones &&
-    safelyEmitEarlyPreloads(children, 0 === children.pendingRootTasks);
-  abort(children, abortReason);
-  startFlowing(children, {
-    push: function (chunk) {
-      null !== chunk && (result += chunk);
-      return !0;
-    },
-    destroy: function (error) {
-      didFatal = !0;
-      fatalError = error;
-    }
-  });
-  if (didFatal && fatalError !== abortReason) throw fatalError;
-  if (!readyToStream) throw Error(formatProdErrorMessage(426));
-  return result;
-}
-exports.renderToStaticMarkup = function (children, options) {
-  return renderToStringImpl(
-    children,
-    options,
-    !0,
-    'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
-  );
-};
-exports.renderToString = function (children, options) {
-  return renderToStringImpl(
-    children,
-    options,
-    !1,
-    'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
-  );
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server-legacy.node.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9877 +1,0 @@
-/**
- * @license React
- * react-dom-server-legacy.node.development.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function styleReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-    }
-    function scriptReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function objectName(object) {
-      object = Object.prototype.toString.call(object);
-      return object.slice(8, object.length - 1);
-    }
-    function describeKeyForErrorMessage(key) {
-      var encodedKey = JSON.stringify(key);
-      return '"' + key + '"' === encodedKey ? key : encodedKey;
-    }
-    function describeValueForErrorMessage(value) {
-      switch (typeof value) {
-        case "string":
-          return JSON.stringify(
-            10 >= value.length ? value : value.slice(0, 10) + "..."
-          );
-        case "object":
-          if (isArrayImpl(value)) return "[...]";
-          if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-            return "client";
-          value = objectName(value);
-          return "Object" === value ? "{...}" : value;
-        case "function":
-          return value.$$typeof === CLIENT_REFERENCE_TAG
-            ? "client"
-            : (value = value.displayName || value.name)
-              ? "function " + value
-              : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describeElementType(type) {
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-      }
-      if ("object" === typeof type)
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeElementType(type.render);
-          case REACT_MEMO_TYPE:
-            return describeElementType(type.type);
-          case REACT_LAZY_TYPE:
-            var payload = type._payload;
-            type = type._init;
-            try {
-              return describeElementType(type(payload));
-            } catch (x) {}
-        }
-      return "";
-    }
-    function describeObjectForErrorMessage(objectOrArray, expandedName) {
-      var objKind = objectName(objectOrArray);
-      if ("Object" !== objKind && "Array" !== objKind) return objKind;
-      var start = -1,
-        length = 0;
-      if (isArrayImpl(objectOrArray))
-        if (jsxChildrenParents.has(objectOrArray)) {
-          var type = jsxChildrenParents.get(objectOrArray);
-          objKind = "<" + describeElementType(type) + ">";
-          for (var i = 0; i < objectOrArray.length; i++) {
-            var value = objectOrArray[i];
-            value =
-              "string" === typeof value
-                ? value
-                : "object" === typeof value && null !== value
-                  ? "{" + describeObjectForErrorMessage(value) + "}"
-                  : "{" + describeValueForErrorMessage(value) + "}";
-            "" + i === expandedName
-              ? ((start = objKind.length),
-                (length = value.length),
-                (objKind += value))
-              : (objKind =
-                  15 > value.length && 40 > objKind.length + value.length
-                    ? objKind + value
-                    : objKind + "{...}");
-          }
-          objKind += "</" + describeElementType(type) + ">";
-        } else {
-          objKind = "[";
-          for (type = 0; type < objectOrArray.length; type++)
-            0 < type && (objKind += ", "),
-              (i = objectOrArray[type]),
-              (i =
-                "object" === typeof i && null !== i
-                  ? describeObjectForErrorMessage(i)
-                  : describeValueForErrorMessage(i)),
-              "" + type === expandedName
-                ? ((start = objKind.length),
-                  (length = i.length),
-                  (objKind += i))
-                : (objKind =
-                    10 > i.length && 40 > objKind.length + i.length
-                      ? objKind + i
-                      : objKind + "...");
-          objKind += "]";
-        }
-      else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-        objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-      else {
-        if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-        if (jsxPropsParents.has(objectOrArray)) {
-          objKind = jsxPropsParents.get(objectOrArray);
-          objKind = "<" + (describeElementType(objKind) || "...");
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++) {
-            objKind += " ";
-            value = type[i];
-            objKind += describeKeyForErrorMessage(value) + "=";
-            var _value2 = objectOrArray[value];
-            var _substr2 =
-              value === expandedName &&
-              "object" === typeof _value2 &&
-              null !== _value2
-                ? describeObjectForErrorMessage(_value2)
-                : describeValueForErrorMessage(_value2);
-            "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-            value === expandedName
-              ? ((start = objKind.length),
-                (length = _substr2.length),
-                (objKind += _substr2))
-              : (objKind =
-                  10 > _substr2.length && 40 > objKind.length + _substr2.length
-                    ? objKind + _substr2
-                    : objKind + "...");
-          }
-          objKind += ">";
-        } else {
-          objKind = "{";
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++)
-            0 < i && (objKind += ", "),
-              (value = type[i]),
-              (objKind += describeKeyForErrorMessage(value) + ": "),
-              (_value2 = objectOrArray[value]),
-              (_value2 =
-                "object" === typeof _value2 && null !== _value2
-                  ? describeObjectForErrorMessage(_value2)
-                  : describeValueForErrorMessage(_value2)),
-              value === expandedName
-                ? ((start = objKind.length),
-                  (length = _value2.length),
-                  (objKind += _value2))
-                : (objKind =
-                    10 > _value2.length && 40 > objKind.length + _value2.length
-                      ? objKind + _value2
-                      : objKind + "...");
-          objKind += "}";
-        }
-      }
-      return void 0 === expandedName
-        ? objKind
-        : -1 < start && 0 < length
-          ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-            "\n  " + objKind + "\n  " + objectOrArray)
-          : "\n  " + objKind;
-    }
-    function murmurhash3_32_gc(key, seed) {
-      var remainder = key.length & 3;
-      var bytes = key.length - remainder;
-      var h1 = seed;
-      for (seed = 0; seed < bytes; ) {
-        var k1 =
-          (key.charCodeAt(seed) & 255) |
-          ((key.charCodeAt(++seed) & 255) << 8) |
-          ((key.charCodeAt(++seed) & 255) << 16) |
-          ((key.charCodeAt(++seed) & 255) << 24);
-        ++seed;
-        k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        k1 = (k1 << 15) | (k1 >>> 17);
-        k1 =
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        h1 ^= k1;
-        h1 = (h1 << 13) | (h1 >>> 19);
-        h1 =
-          (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-        h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-      }
-      k1 = 0;
-      switch (remainder) {
-        case 3:
-          k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-        case 2:
-          k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-        case 1:
-          (k1 ^= key.charCodeAt(seed) & 255),
-            (k1 =
-              (3432918353 * (k1 & 65535) +
-                (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295),
-            (k1 = (k1 << 15) | (k1 >>> 17)),
-            (h1 ^=
-              (461845907 * (k1 & 65535) +
-                (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295);
-      }
-      h1 ^= key.length;
-      h1 ^= h1 >>> 16;
-      h1 =
-        (2246822507 * (h1 & 65535) +
-          (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      h1 ^= h1 >>> 13;
-      h1 =
-        (3266489909 * (h1 & 65535) +
-          (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      return (h1 ^ (h1 >>> 16)) >>> 0;
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkHtmlStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function escapeTextForBrowser(text) {
-      if (
-        "boolean" === typeof text ||
-        "number" === typeof text ||
-        "bigint" === typeof text
-      )
-        return "" + text;
-      checkHtmlStringCoercion(text);
-      text = "" + text;
-      var match = matchHtmlRegExp.exec(text);
-      if (match) {
-        var html = "",
-          index,
-          lastIndex = 0;
-        for (index = match.index; index < text.length; index++) {
-          switch (text.charCodeAt(index)) {
-            case 34:
-              match = "&quot;";
-              break;
-            case 38:
-              match = "&amp;";
-              break;
-            case 39:
-              match = "&#x27;";
-              break;
-            case 60:
-              match = "&lt;";
-              break;
-            case 62:
-              match = "&gt;";
-              break;
-            default:
-              continue;
-          }
-          lastIndex !== index && (html += text.slice(lastIndex, index));
-          lastIndex = index + 1;
-          html += match;
-        }
-        text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-      }
-      return text;
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function escapeEntireInlineScriptContent(scriptText) {
-      checkHtmlStringCoercion(scriptText);
-      return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-    }
-    function createResumableState(
-      identifierPrefix,
-      externalRuntimeConfig,
-      bootstrapScriptContent,
-      bootstrapScripts,
-      bootstrapModules
-    ) {
-      return {
-        idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-        nextFormID: 0,
-        streamingFormat: 0,
-        bootstrapScriptContent: bootstrapScriptContent,
-        bootstrapScripts: bootstrapScripts,
-        bootstrapModules: bootstrapModules,
-        instructions: NothingSent,
-        hasBody: !1,
-        hasHtml: !1,
-        unknownResources: {},
-        dnsResources: {},
-        connectResources: { default: {}, anonymous: {}, credentials: {} },
-        imageResources: {},
-        styleResources: {},
-        scriptResources: {},
-        moduleUnknownResources: {},
-        moduleScriptResources: {}
-      };
-    }
-    function createFormatContext(
-      insertionMode,
-      selectedValue,
-      tagScope,
-      viewTransition
-    ) {
-      return {
-        insertionMode: insertionMode,
-        selectedValue: selectedValue,
-        tagScope: tagScope,
-        viewTransition: viewTransition
-      };
-    }
-    function getChildFormatContext(parentContext, type, props) {
-      var subtreeScope = parentContext.tagScope & -25;
-      switch (type) {
-        case "noscript":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-        case "select":
-          return createFormatContext(
-            HTML_MODE,
-            null != props.value ? props.value : props.defaultValue,
-            subtreeScope,
-            null
-          );
-        case "svg":
-          return createFormatContext(SVG_MODE, null, subtreeScope, null);
-        case "picture":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-        case "math":
-          return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-        case "foreignObject":
-          return createFormatContext(HTML_MODE, null, subtreeScope, null);
-        case "table":
-          return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-        case "thead":
-        case "tbody":
-        case "tfoot":
-          return createFormatContext(
-            HTML_TABLE_BODY_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "colgroup":
-          return createFormatContext(
-            HTML_COLGROUP_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "tr":
-          return createFormatContext(
-            HTML_TABLE_ROW_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "head":
-          if (parentContext.insertionMode < HTML_MODE)
-            return createFormatContext(
-              HTML_HEAD_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-          break;
-        case "html":
-          if (parentContext.insertionMode === ROOT_HTML_MODE)
-            return createFormatContext(
-              HTML_HTML_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-      }
-      return parentContext.insertionMode >= HTML_TABLE_MODE ||
-        parentContext.insertionMode < HTML_MODE
-        ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-        : parentContext.tagScope !== subtreeScope
-          ? createFormatContext(
-              parentContext.insertionMode,
-              parentContext.selectedValue,
-              subtreeScope,
-              null
-            )
-          : parentContext;
-    }
-    function getSuspenseViewTransition(parentViewTransition) {
-      return null === parentViewTransition
-        ? null
-        : {
-            update: parentViewTransition.update,
-            enter: "none",
-            exit: "none",
-            share: parentViewTransition.update,
-            name: parentViewTransition.autoName,
-            autoName: parentViewTransition.autoName,
-            nameIdx: 0
-          };
-    }
-    function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-      parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        parentContext.tagScope | 12,
-        getSuspenseViewTransition(parentContext.viewTransition)
-      );
-    }
-    function getSuspenseContentFormatContext(resumableState, parentContext) {
-      resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-      var subtreeScope = parentContext.tagScope | 16;
-      null !== resumableState &&
-        "none" !== resumableState.share &&
-        (subtreeScope |= 64);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        subtreeScope,
-        resumableState
-      );
-    }
-    function pushStyleAttribute(target, style) {
-      if ("object" !== typeof style)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      var isFirst = !0,
-        styleName;
-      for (styleName in style)
-        if (hasOwnProperty.call(style, styleName)) {
-          var styleValue = style[styleName];
-          if (
-            null != styleValue &&
-            "boolean" !== typeof styleValue &&
-            "" !== styleValue
-          ) {
-            if (0 === styleName.indexOf("--")) {
-              var nameChunk = escapeTextForBrowser(styleName);
-              checkCSSPropertyStringCoercion(styleValue, styleName);
-              styleValue = escapeTextForBrowser(("" + styleValue).trim());
-            } else {
-              nameChunk = styleName;
-              var value = styleValue;
-              if (-1 < nameChunk.indexOf("-")) {
-                var name = nameChunk;
-                (warnedStyleNames.hasOwnProperty(name) &&
-                  warnedStyleNames[name]) ||
-                  ((warnedStyleNames[name] = !0),
-                  console.error(
-                    "Unsupported style property %s. Did you mean %s?",
-                    name,
-                    camelize(name.replace(msPattern$1, "ms-"))
-                  ));
-              } else if (badVendoredStyleNamePattern.test(nameChunk))
-                (name = nameChunk),
-                  (warnedStyleNames.hasOwnProperty(name) &&
-                    warnedStyleNames[name]) ||
-                    ((warnedStyleNames[name] = !0),
-                    console.error(
-                      "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                      name,
-                      name.charAt(0).toUpperCase() + name.slice(1)
-                    ));
-              else if (badStyleValueWithSemicolonPattern.test(value)) {
-                name = nameChunk;
-                var value$jscomp$0 = value;
-                (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-                  warnedStyleValues[value$jscomp$0]) ||
-                  ((warnedStyleValues[value$jscomp$0] = !0),
-                  console.error(
-                    'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                    name,
-                    value$jscomp$0.replace(
-                      badStyleValueWithSemicolonPattern,
-                      ""
-                    )
-                  ));
-              }
-              "number" === typeof value &&
-                (isNaN(value)
-                  ? warnedForNaNValue ||
-                    ((warnedForNaNValue = !0),
-                    console.error(
-                      "`NaN` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    ))
-                  : isFinite(value) ||
-                    warnedForInfinityValue ||
-                    ((warnedForInfinityValue = !0),
-                    console.error(
-                      "`Infinity` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    )));
-              nameChunk = styleName;
-              value = styleNameCache.get(nameChunk);
-              void 0 !== value
-                ? (nameChunk = value)
-                : ((value = escapeTextForBrowser(
-                    nameChunk
-                      .replace(uppercasePattern, "-$1")
-                      .toLowerCase()
-                      .replace(msPattern, "-ms-")
-                  )),
-                  styleNameCache.set(nameChunk, value),
-                  (nameChunk = value));
-              "number" === typeof styleValue
-                ? (styleValue =
-                    0 === styleValue || unitlessNumbers.has(styleName)
-                      ? "" + styleValue
-                      : styleValue + "px")
-                : (checkCSSPropertyStringCoercion(styleValue, styleName),
-                  (styleValue = escapeTextForBrowser(
-                    ("" + styleValue).trim()
-                  )));
-            }
-            isFirst
-              ? ((isFirst = !1),
-                target.push(
-                  styleAttributeStart,
-                  nameChunk,
-                  styleAssign,
-                  styleValue
-                ))
-              : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-          }
-        }
-      isFirst || target.push(attributeEnd);
-    }
-    function pushBooleanAttribute(target, name, value) {
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(attributeSeparator, name, attributeEmptyString);
-    }
-    function pushStringAttribute(target, name, value) {
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        "boolean" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-    }
-    function pushAdditionalFormField(value, key) {
-      this.push('<input type="hidden"');
-      validateAdditionalFormField(value);
-      pushStringAttribute(this, "name", key);
-      pushStringAttribute(this, "value", value);
-      this.push(endOfStartTagSelfClosing);
-    }
-    function validateAdditionalFormField(value) {
-      if ("string" !== typeof value)
-        throw Error(
-          "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-        );
-    }
-    function getCustomFormFields(resumableState, formAction) {
-      if ("function" === typeof formAction.$$FORM_ACTION) {
-        var id = resumableState.nextFormID++;
-        resumableState = resumableState.idPrefix + id;
-        try {
-          var customFields = formAction.$$FORM_ACTION(resumableState);
-          if (customFields) {
-            var formData = customFields.data;
-            null != formData && formData.forEach(validateAdditionalFormField);
-          }
-          return customFields;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            "function" === typeof x.then
-          )
-            throw x;
-          console.error(
-            "Failed to serialize an action for progressive enhancement:\n%s",
-            x
-          );
-        }
-      }
-      return null;
-    }
-    function pushFormActionAttribute(
-      target,
-      resumableState,
-      renderState,
-      formAction,
-      formEncType,
-      formMethod,
-      formTarget,
-      name
-    ) {
-      var formData = null;
-      if ("function" === typeof formAction) {
-        null === name ||
-          didWarnFormActionName ||
-          ((didWarnFormActionName = !0),
-          console.error(
-            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-          ));
-        (null === formEncType && null === formMethod) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(resumableState, formAction);
-        null !== customFields
-          ? ((name = customFields.name),
-            (formAction = customFields.action || ""),
-            (formEncType = customFields.encType),
-            (formMethod = customFields.method),
-            (formTarget = customFields.target),
-            (formData = customFields.data))
-          : (target.push(
-              attributeSeparator,
-              "formAction",
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget = formMethod = formEncType = formAction = name = null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != name && pushAttribute(target, "name", name);
-      null != formAction && pushAttribute(target, "formAction", formAction);
-      null != formEncType && pushAttribute(target, "formEncType", formEncType);
-      null != formMethod && pushAttribute(target, "formMethod", formMethod);
-      null != formTarget && pushAttribute(target, "formTarget", formTarget);
-      return formData;
-    }
-    function pushAttribute(target, name, value) {
-      switch (name) {
-        case "className":
-          pushStringAttribute(target, "class", value);
-          break;
-        case "tabIndex":
-          pushStringAttribute(target, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          pushStringAttribute(target, name, value);
-          break;
-        case "style":
-          pushStyleAttribute(target, value);
-          break;
-        case "src":
-        case "href":
-          if ("" === value) {
-            "src" === name
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                );
-            break;
-          }
-        case "action":
-        case "formAction":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "ref":
-          break;
-        case "autoFocus":
-        case "multiple":
-        case "muted":
-          pushBooleanAttribute(target, name.toLowerCase(), value);
-          break;
-        case "xlinkHref":
-          if (
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            "xlink:href",
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[name] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              name
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(attributeSeparator, name, attributeEmptyString);
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? target.push(attributeSeparator, name, attributeEmptyString)
-            : !1 !== value &&
-              "function" !== typeof value &&
-              "symbol" !== typeof value &&
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            !isNaN(value) &&
-            1 <= value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "rowSpan":
-        case "start":
-          "function" === typeof value ||
-            "symbol" === typeof value ||
-            isNaN(value) ||
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "xlinkActuate":
-          pushStringAttribute(target, "xlink:actuate", value);
-          break;
-        case "xlinkArcrole":
-          pushStringAttribute(target, "xlink:arcrole", value);
-          break;
-        case "xlinkRole":
-          pushStringAttribute(target, "xlink:role", value);
-          break;
-        case "xlinkShow":
-          pushStringAttribute(target, "xlink:show", value);
-          break;
-        case "xlinkTitle":
-          pushStringAttribute(target, "xlink:title", value);
-          break;
-        case "xlinkType":
-          pushStringAttribute(target, "xlink:type", value);
-          break;
-        case "xmlBase":
-          pushStringAttribute(target, "xml:base", value);
-          break;
-        case "xmlLang":
-          pushStringAttribute(target, "xml:lang", value);
-          break;
-        case "xmlSpace":
-          pushStringAttribute(target, "xml:space", value);
-          break;
-        default:
-          if (
-            !(2 < name.length) ||
-            ("o" !== name[0] && "O" !== name[0]) ||
-            ("n" !== name[1] && "N" !== name[1])
-          )
-            if (
-              ((name = aliases.get(name) || name), isAttributeNameSafe(name))
-            ) {
-              switch (typeof value) {
-                case "function":
-                case "symbol":
-                  return;
-                case "boolean":
-                  var prefix = name.toLowerCase().slice(0, 5);
-                  if ("data-" !== prefix && "aria-" !== prefix) return;
-              }
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-            }
-      }
-    }
-    function pushInnerHTML(target, innerHTML, children) {
-      if (null != innerHTML) {
-        if (null != children)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        innerHTML = innerHTML.__html;
-        null !== innerHTML &&
-          void 0 !== innerHTML &&
-          (checkHtmlStringCoercion(innerHTML), target.push("" + innerHTML));
-      }
-    }
-    function checkSelectProp(props, propName) {
-      var value = props[propName];
-      null != value &&
-        ((value = isArrayImpl(value)),
-        props.multiple && !value
-          ? console.error(
-              "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-              propName
-            )
-          : !props.multiple &&
-            value &&
-            console.error(
-              "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-              propName
-            ));
-    }
-    function flattenOptionChildren(children) {
-      var content = "";
-      React.Children.forEach(children, function (child) {
-        null != child &&
-          ((content += child),
-          didWarnInvalidOptionChildren ||
-            "string" === typeof child ||
-            "number" === typeof child ||
-            "bigint" === typeof child ||
-            ((didWarnInvalidOptionChildren = !0),
-            console.error(
-              "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-            )));
-      });
-      return content;
-    }
-    function injectFormReplayingRuntime(resumableState, renderState) {
-      if ((resumableState.instructions & 16) === NothingSent) {
-        resumableState.instructions |= 16;
-        var preamble = renderState.preamble,
-          bootstrapChunks = renderState.bootstrapChunks;
-        (preamble.htmlChunks || preamble.headChunks) &&
-        0 === bootstrapChunks.length
-          ? (bootstrapChunks.push(renderState.startInlineScript),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            ))
-          : bootstrapChunks.unshift(
-              renderState.startInlineScript,
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            );
-      }
-    }
-    function pushLinkImpl(target, props) {
-      target.push(startChunkForTag("link"));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function escapeStyleTextContent(styleText) {
-      checkHtmlStringCoercion(styleText);
-      return ("" + styleText).replace(styleRegex, styleReplacer);
-    }
-    function pushSelfClosing(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  tag +
-                    " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function pushTitleImpl(target, props) {
-      target.push(startChunkForTag("title"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      props = Array.isArray(children)
-        ? 2 > children.length
-          ? children[0]
-          : null
-        : children;
-      "function" !== typeof props &&
-        "symbol" !== typeof props &&
-        null !== props &&
-        void 0 !== props &&
-        target.push(escapeTextForBrowser("" + props));
-      pushInnerHTML(target, innerHTML, children);
-      target.push(endChunkForTag("title"));
-      return null;
-    }
-    function pushScriptImpl(target, props) {
-      target.push(startChunkForTag("script"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      null != children &&
-        "string" !== typeof children &&
-        ((props =
-          "number" === typeof children
-            ? "a number for children"
-            : Array.isArray(children)
-              ? "an array for children"
-              : "something unexpected for children"),
-        console.error(
-          "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-          props
-        ));
-      pushInnerHTML(target, innerHTML, children);
-      "string" === typeof children &&
-        target.push(escapeEntireInlineScriptContent(children));
-      target.push(endChunkForTag("script"));
-      return null;
-    }
-    function pushStartSingletonElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return tag;
-    }
-    function pushStartGenericElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return "string" === typeof tag
-        ? (target.push(escapeTextForBrowser(tag)), null)
-        : tag;
-    }
-    function startChunkForTag(tag) {
-      var tagStartChunk = validatedTagCache.get(tag);
-      if (void 0 === tagStartChunk) {
-        if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-        tagStartChunk = "<" + tag;
-        validatedTagCache.set(tag, tagStartChunk);
-      }
-      return tagStartChunk;
-    }
-    function pushStartInstance(
-      target$jscomp$0,
-      type,
-      props,
-      resumableState,
-      renderState,
-      preambleState,
-      hoistableState,
-      formatContext,
-      textEmbedded
-    ) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-      else
-        switch (type) {
-          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":
-            JSCompiler_inline_result = !1;
-            break b;
-          default:
-            JSCompiler_inline_result = !0;
-        }
-      JSCompiler_inline_result ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, null);
-      !props.suppressContentEditableWarning &&
-        props.contentEditable &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-      formatContext.insertionMode !== SVG_MODE &&
-        formatContext.insertionMode !== MATHML_MODE &&
-        -1 === type.indexOf("-") &&
-        type.toLowerCase() !== type &&
-        console.error(
-          "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-          type
-        );
-      switch (type) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-          break;
-        case "a":
-          target$jscomp$0.push(startChunkForTag("a"));
-          var children = null,
-            innerHTML = null,
-            propKey;
-          for (propKey in props)
-            if (hasOwnProperty.call(props, propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "children":
-                    children = propValue;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML = propValue;
-                    break;
-                  case "href":
-                    "" === propValue
-                      ? pushStringAttribute(target$jscomp$0, "href", "")
-                      : pushAttribute(target$jscomp$0, propKey, propValue);
-                    break;
-                  default:
-                    pushAttribute(target$jscomp$0, propKey, propValue);
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML, children);
-          if ("string" === typeof children) {
-            target$jscomp$0.push(escapeTextForBrowser(children));
-            var JSCompiler_inline_result$jscomp$0 = null;
-          } else JSCompiler_inline_result$jscomp$0 = children;
-          return JSCompiler_inline_result$jscomp$0;
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          checkSelectProp(props, "value");
-          checkSelectProp(props, "defaultValue");
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultSelectValue ||
-            (console.error(
-              "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultSelectValue = !0));
-          target$jscomp$0.push(startChunkForTag("select"));
-          var children$jscomp$0 = null,
-            innerHTML$jscomp$0 = null,
-            propKey$jscomp$0;
-          for (propKey$jscomp$0 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-              var propValue$jscomp$0 = props[propKey$jscomp$0];
-              if (null != propValue$jscomp$0)
-                switch (propKey$jscomp$0) {
-                  case "children":
-                    children$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "defaultValue":
-                  case "value":
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$0,
-                      propValue$jscomp$0
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-          return children$jscomp$0;
-        case "option":
-          var selectedValue = formatContext.selectedValue;
-          target$jscomp$0.push(startChunkForTag("option"));
-          var children$jscomp$1 = null,
-            value = null,
-            selected = null,
-            innerHTML$jscomp$1 = null,
-            propKey$jscomp$1;
-          for (propKey$jscomp$1 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-              var propValue$jscomp$1 = props[propKey$jscomp$1];
-              if (null != propValue$jscomp$1)
-                switch (propKey$jscomp$1) {
-                  case "children":
-                    children$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "selected":
-                    selected = propValue$jscomp$1;
-                    didWarnSelectedSetOnOption ||
-                      (console.error(
-                        "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                      ),
-                      (didWarnSelectedSetOnOption = !0));
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "value":
-                    value = propValue$jscomp$1;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$1,
-                      propValue$jscomp$1
-                    );
-                }
-            }
-          if (null != selectedValue) {
-            if (null !== value) {
-              checkAttributeStringCoercion(value, "value");
-              var stringValue = "" + value;
-            } else
-              null === innerHTML$jscomp$1 ||
-                didWarnInvalidOptionInnerHTML ||
-                ((didWarnInvalidOptionInnerHTML = !0),
-                console.error(
-                  "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-                )),
-                (stringValue = flattenOptionChildren(children$jscomp$1));
-            if (isArrayImpl(selectedValue))
-              for (var i = 0; i < selectedValue.length; i++) {
-                if (
-                  (checkAttributeStringCoercion(selectedValue[i], "value"),
-                  "" + selectedValue[i] === stringValue)
-                ) {
-                  target$jscomp$0.push(' selected=""');
-                  break;
-                }
-              }
-            else
-              checkAttributeStringCoercion(selectedValue, "select.value"),
-                "" + selectedValue === stringValue &&
-                  target$jscomp$0.push(' selected=""');
-          } else selected && target$jscomp$0.push(' selected=""');
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-          return children$jscomp$1;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultTextareaValue ||
-            (console.error(
-              "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultTextareaValue = !0));
-          target$jscomp$0.push(startChunkForTag("textarea"));
-          var value$jscomp$0 = null,
-            defaultValue = null,
-            children$jscomp$2 = null,
-            propKey$jscomp$2;
-          for (propKey$jscomp$2 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-              var propValue$jscomp$2 = props[propKey$jscomp$2];
-              if (null != propValue$jscomp$2)
-                switch (propKey$jscomp$2) {
-                  case "children":
-                    children$jscomp$2 = propValue$jscomp$2;
-                    break;
-                  case "value":
-                    value$jscomp$0 = propValue$jscomp$2;
-                    break;
-                  case "defaultValue":
-                    defaultValue = propValue$jscomp$2;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$2,
-                      propValue$jscomp$2
-                    );
-                }
-            }
-          null === value$jscomp$0 &&
-            null !== defaultValue &&
-            (value$jscomp$0 = defaultValue);
-          target$jscomp$0.push(endOfStartTag);
-          if (null != children$jscomp$2) {
-            console.error(
-              "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-            );
-            if (null != value$jscomp$0)
-              throw Error(
-                "If you supply `defaultValue` on a <textarea>, do not pass children."
-              );
-            if (isArrayImpl(children$jscomp$2)) {
-              if (1 < children$jscomp$2.length)
-                throw Error("<textarea> can only have at most one child.");
-              checkHtmlStringCoercion(children$jscomp$2[0]);
-              value$jscomp$0 = "" + children$jscomp$2[0];
-            }
-            checkHtmlStringCoercion(children$jscomp$2);
-            value$jscomp$0 = "" + children$jscomp$2;
-          }
-          "string" === typeof value$jscomp$0 &&
-            "\n" === value$jscomp$0[0] &&
-            target$jscomp$0.push(leadingNewline);
-          null !== value$jscomp$0 &&
-            (checkAttributeStringCoercion(value$jscomp$0, "value"),
-            target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)));
-          return null;
-        case "input":
-          checkControlledValueProps("input", props);
-          target$jscomp$0.push(startChunkForTag("input"));
-          var name = null,
-            formAction = null,
-            formEncType = null,
-            formMethod = null,
-            formTarget = null,
-            value$jscomp$1 = null,
-            defaultValue$jscomp$0 = null,
-            checked = null,
-            defaultChecked = null,
-            propKey$jscomp$3;
-          for (propKey$jscomp$3 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-              var propValue$jscomp$3 = props[propKey$jscomp$3];
-              if (null != propValue$jscomp$3)
-                switch (propKey$jscomp$3) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  case "name":
-                    name = propValue$jscomp$3;
-                    break;
-                  case "formAction":
-                    formAction = propValue$jscomp$3;
-                    break;
-                  case "formEncType":
-                    formEncType = propValue$jscomp$3;
-                    break;
-                  case "formMethod":
-                    formMethod = propValue$jscomp$3;
-                    break;
-                  case "formTarget":
-                    formTarget = propValue$jscomp$3;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = propValue$jscomp$3;
-                    break;
-                  case "defaultValue":
-                    defaultValue$jscomp$0 = propValue$jscomp$3;
-                    break;
-                  case "checked":
-                    checked = propValue$jscomp$3;
-                    break;
-                  case "value":
-                    value$jscomp$1 = propValue$jscomp$3;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$3,
-                      propValue$jscomp$3
-                    );
-                }
-            }
-          null === formAction ||
-            "image" === props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'An input can only specify a formAction along with type="submit" or type="image".'
-            ));
-          var formData = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction,
-            formEncType,
-            formMethod,
-            formTarget,
-            name
-          );
-          null === checked ||
-            null === defaultChecked ||
-            didWarnDefaultChecked ||
-            (console.error(
-              "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultChecked = !0));
-          null === value$jscomp$1 ||
-            null === defaultValue$jscomp$0 ||
-            didWarnDefaultInputValue ||
-            (console.error(
-              "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultInputValue = !0));
-          null !== checked
-            ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-            : null !== defaultChecked &&
-              pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-          null !== value$jscomp$1
-            ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-            : null !== defaultValue$jscomp$0 &&
-              pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-          target$jscomp$0.push(endOfStartTagSelfClosing);
-          null != formData &&
-            formData.forEach(pushAdditionalFormField, target$jscomp$0);
-          return null;
-        case "button":
-          target$jscomp$0.push(startChunkForTag("button"));
-          var children$jscomp$3 = null,
-            innerHTML$jscomp$2 = null,
-            name$jscomp$0 = null,
-            formAction$jscomp$0 = null,
-            formEncType$jscomp$0 = null,
-            formMethod$jscomp$0 = null,
-            formTarget$jscomp$0 = null,
-            propKey$jscomp$4;
-          for (propKey$jscomp$4 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-              var propValue$jscomp$4 = props[propKey$jscomp$4];
-              if (null != propValue$jscomp$4)
-                switch (propKey$jscomp$4) {
-                  case "children":
-                    children$jscomp$3 = propValue$jscomp$4;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$2 = propValue$jscomp$4;
-                    break;
-                  case "name":
-                    name$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formAction":
-                    formAction$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formEncType":
-                    formEncType$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formMethod":
-                    formMethod$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formTarget":
-                    formTarget$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$4,
-                      propValue$jscomp$4
-                    );
-                }
-            }
-          null === formAction$jscomp$0 ||
-            null == props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'A button can only specify a formAction along with type="submit" or no type.'
-            ));
-          var formData$jscomp$0 = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction$jscomp$0,
-            formEncType$jscomp$0,
-            formMethod$jscomp$0,
-            formTarget$jscomp$0,
-            name$jscomp$0
-          );
-          target$jscomp$0.push(endOfStartTag);
-          null != formData$jscomp$0 &&
-            formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-          if ("string" === typeof children$jscomp$3) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-            var JSCompiler_inline_result$jscomp$1 = null;
-          } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-          return JSCompiler_inline_result$jscomp$1;
-        case "form":
-          target$jscomp$0.push(startChunkForTag("form"));
-          var children$jscomp$4 = null,
-            innerHTML$jscomp$3 = null,
-            formAction$jscomp$1 = null,
-            formEncType$jscomp$1 = null,
-            formMethod$jscomp$1 = null,
-            formTarget$jscomp$1 = null,
-            propKey$jscomp$5;
-          for (propKey$jscomp$5 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-              var propValue$jscomp$5 = props[propKey$jscomp$5];
-              if (null != propValue$jscomp$5)
-                switch (propKey$jscomp$5) {
-                  case "children":
-                    children$jscomp$4 = propValue$jscomp$5;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$3 = propValue$jscomp$5;
-                    break;
-                  case "action":
-                    formAction$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "encType":
-                    formEncType$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "method":
-                    formMethod$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "target":
-                    formTarget$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$5,
-                      propValue$jscomp$5
-                    );
-                }
-            }
-          var formData$jscomp$1 = null,
-            formActionName = null;
-          if ("function" === typeof formAction$jscomp$1) {
-            (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-              didWarnFormActionMethod ||
-              ((didWarnFormActionMethod = !0),
-              console.error(
-                "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-              ));
-            null === formTarget$jscomp$1 ||
-              didWarnFormActionTarget ||
-              ((didWarnFormActionTarget = !0),
-              console.error(
-                "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-              ));
-            var customFields = getCustomFormFields(
-              resumableState,
-              formAction$jscomp$1
-            );
-            null !== customFields
-              ? ((formAction$jscomp$1 = customFields.action || ""),
-                (formEncType$jscomp$1 = customFields.encType),
-                (formMethod$jscomp$1 = customFields.method),
-                (formTarget$jscomp$1 = customFields.target),
-                (formData$jscomp$1 = customFields.data),
-                (formActionName = customFields.name))
-              : (target$jscomp$0.push(
-                  attributeSeparator,
-                  "action",
-                  attributeAssign,
-                  actionJavaScriptURL,
-                  attributeEnd
-                ),
-                (formTarget$jscomp$1 =
-                  formMethod$jscomp$1 =
-                  formEncType$jscomp$1 =
-                  formAction$jscomp$1 =
-                    null),
-                injectFormReplayingRuntime(resumableState, renderState));
-          }
-          null != formAction$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-          null != formEncType$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-          null != formMethod$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-          null != formTarget$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-          target$jscomp$0.push(endOfStartTag);
-          null !== formActionName &&
-            (target$jscomp$0.push('<input type="hidden"'),
-            pushStringAttribute(target$jscomp$0, "name", formActionName),
-            target$jscomp$0.push(endOfStartTagSelfClosing),
-            null != formData$jscomp$1 &&
-              formData$jscomp$1.forEach(
-                pushAdditionalFormField,
-                target$jscomp$0
-              ));
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-          if ("string" === typeof children$jscomp$4) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-            var JSCompiler_inline_result$jscomp$2 = null;
-          } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-          return JSCompiler_inline_result$jscomp$2;
-        case "menuitem":
-          target$jscomp$0.push(startChunkForTag("menuitem"));
-          for (var propKey$jscomp$6 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-              var propValue$jscomp$6 = props[propKey$jscomp$6];
-              if (null != propValue$jscomp$6)
-                switch (propKey$jscomp$6) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$6,
-                      propValue$jscomp$6
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          return null;
-        case "object":
-          target$jscomp$0.push(startChunkForTag("object"));
-          var children$jscomp$5 = null,
-            innerHTML$jscomp$4 = null,
-            propKey$jscomp$7;
-          for (propKey$jscomp$7 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-              var propValue$jscomp$7 = props[propKey$jscomp$7];
-              if (null != propValue$jscomp$7)
-                switch (propKey$jscomp$7) {
-                  case "children":
-                    children$jscomp$5 = propValue$jscomp$7;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$4 = propValue$jscomp$7;
-                    break;
-                  case "data":
-                    checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                    var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                    if ("" === sanitizedValue) {
-                      console.error(
-                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                        propKey$jscomp$7,
-                        propKey$jscomp$7
-                      );
-                      break;
-                    }
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      "data",
-                      attributeAssign,
-                      escapeTextForBrowser(sanitizedValue),
-                      attributeEnd
-                    );
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$7,
-                      propValue$jscomp$7
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-          if ("string" === typeof children$jscomp$5) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-            var JSCompiler_inline_result$jscomp$3 = null;
-          } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-          return JSCompiler_inline_result$jscomp$3;
-        case "title":
-          var noscriptTagInScope = formatContext.tagScope & 1,
-            isFallback = formatContext.tagScope & 4;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$6 = props.children,
-              child = Array.isArray(children$jscomp$6)
-                ? 2 > children$jscomp$6.length
-                  ? children$jscomp$6[0]
-                  : null
-                : children$jscomp$6;
-            Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-              ? console.error(
-                  "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-                  children$jscomp$6.length
-                )
-              : "function" === typeof child || "symbol" === typeof child
-                ? console.error(
-                    "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                    "function" === typeof child ? "a Function" : "a Sybmol"
-                  )
-                : child &&
-                  child.toString === {}.toString &&
-                  (null != child.$$typeof
-                    ? console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                      )
-                    : console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                      ));
-          }
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-              target$jscomp$0,
-              props
-            );
-          else
-            isFallback
-              ? (JSCompiler_inline_result$jscomp$4 = null)
-              : (pushTitleImpl(renderState.hoistableChunks, props),
-                (JSCompiler_inline_result$jscomp$4 = void 0));
-          return JSCompiler_inline_result$jscomp$4;
-        case "link":
-          var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-            isFallback$jscomp$0 = formatContext.tagScope & 4,
-            rel = props.rel,
-            href = props.href,
-            precedence = props.precedence;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$0 ||
-            null != props.itemProp ||
-            "string" !== typeof rel ||
-            "string" !== typeof href ||
-            "" === href
-          ) {
-            "stylesheet" === rel &&
-              "string" === typeof props.precedence &&
-              (("string" === typeof href && href) ||
-                console.error(
-                  'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-                  null === href
-                    ? "`null`"
-                    : void 0 === href
-                      ? "`undefined`"
-                      : "" === href
-                        ? "an empty string"
-                        : 'something with type "' + typeof href + '"'
-                ));
-            pushLinkImpl(target$jscomp$0, props);
-            var JSCompiler_inline_result$jscomp$5 = null;
-          } else if ("stylesheet" === props.rel)
-            if (
-              "string" !== typeof precedence ||
-              null != props.disabled ||
-              props.onLoad ||
-              props.onError
-            ) {
-              if ("string" === typeof precedence)
-                if (null != props.disabled)
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-                  );
-                else if (props.onLoad || props.onError) {
-                  var propDescription =
-                    props.onLoad && props.onError
-                      ? "`onLoad` and `onError` props"
-                      : props.onLoad
-                        ? "`onLoad` prop"
-                        : "`onError` prop";
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                    propDescription,
-                    propDescription
-                  );
-                }
-              JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                target$jscomp$0,
-                props
-              );
-            } else {
-              var styleQueue = renderState.styles.get(precedence),
-                resourceState = resumableState.styleResources.hasOwnProperty(
-                  href
-                )
-                  ? resumableState.styleResources[href]
-                  : void 0;
-              if (resourceState !== EXISTS) {
-                resumableState.styleResources[href] = EXISTS;
-                styleQueue ||
-                  ((styleQueue = {
-                    precedence: escapeTextForBrowser(precedence),
-                    rules: [],
-                    hrefs: [],
-                    sheets: new Map()
-                  }),
-                  renderState.styles.set(precedence, styleQueue));
-                var resource = {
-                  state: PENDING$1,
-                  props: assign({}, props, {
-                    "data-precedence": props.precedence,
-                    precedence: null
-                  })
-                };
-                if (resourceState) {
-                  2 === resourceState.length &&
-                    adoptPreloadCredentials(resource.props, resourceState);
-                  var preloadResource =
-                    renderState.preloads.stylesheets.get(href);
-                  preloadResource && 0 < preloadResource.length
-                    ? (preloadResource.length = 0)
-                    : (resource.state = PRELOADED);
-                }
-                styleQueue.sheets.set(href, resource);
-                hoistableState && hoistableState.stylesheets.add(resource);
-              } else if (styleQueue) {
-                var _resource = styleQueue.sheets.get(href);
-                _resource &&
-                  hoistableState &&
-                  hoistableState.stylesheets.add(_resource);
-              }
-              textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-              JSCompiler_inline_result$jscomp$5 = null;
-            }
-          else
-            props.onLoad || props.onError
-              ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                  target$jscomp$0,
-                  props
-                ))
-              : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-                (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-                  ? null
-                  : pushLinkImpl(renderState.hoistableChunks, props)));
-          return JSCompiler_inline_result$jscomp$5;
-        case "script":
-          var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-            asyncProp = props.async;
-          if (
-            "string" !== typeof props.src ||
-            !props.src ||
-            !asyncProp ||
-            "function" === typeof asyncProp ||
-            "symbol" === typeof asyncProp ||
-            props.onLoad ||
-            props.onError ||
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$1 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-              target$jscomp$0,
-              props
-            );
-          else {
-            var key = props.src;
-            if ("module" === props.type) {
-              var resources = resumableState.moduleScriptResources;
-              var preloads = renderState.preloads.moduleScripts;
-            } else
-              (resources = resumableState.scriptResources),
-                (preloads = renderState.preloads.scripts);
-            var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-              ? resources[key]
-              : void 0;
-            if (resourceState$jscomp$0 !== EXISTS) {
-              resources[key] = EXISTS;
-              var scriptProps = props;
-              if (resourceState$jscomp$0) {
-                2 === resourceState$jscomp$0.length &&
-                  ((scriptProps = assign({}, props)),
-                  adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-                var preloadResource$jscomp$0 = preloads.get(key);
-                preloadResource$jscomp$0 &&
-                  (preloadResource$jscomp$0.length = 0);
-              }
-              var resource$jscomp$0 = [];
-              renderState.scripts.add(resource$jscomp$0);
-              pushScriptImpl(resource$jscomp$0, scriptProps);
-            }
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-            JSCompiler_inline_result$jscomp$6 = null;
-          }
-          return JSCompiler_inline_result$jscomp$6;
-        case "style":
-          var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$7 = props.children,
-              child$jscomp$0 = Array.isArray(children$jscomp$7)
-                ? 2 > children$jscomp$7.length
-                  ? children$jscomp$7[0]
-                  : null
-                : children$jscomp$7;
-            ("function" === typeof child$jscomp$0 ||
-              "symbol" === typeof child$jscomp$0 ||
-              Array.isArray(child$jscomp$0)) &&
-              console.error(
-                "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-                "function" === typeof child$jscomp$0
-                  ? "a Function"
-                  : "symbol" === typeof child$jscomp$0
-                    ? "a Sybmol"
-                    : "an Array"
-              );
-          }
-          var precedence$jscomp$0 = props.precedence,
-            href$jscomp$0 = props.href,
-            nonce = props.nonce;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$2 ||
-            null != props.itemProp ||
-            "string" !== typeof precedence$jscomp$0 ||
-            "string" !== typeof href$jscomp$0 ||
-            "" === href$jscomp$0
-          ) {
-            target$jscomp$0.push(startChunkForTag("style"));
-            var children$jscomp$8 = null,
-              innerHTML$jscomp$5 = null,
-              propKey$jscomp$8;
-            for (propKey$jscomp$8 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-                var propValue$jscomp$8 = props[propKey$jscomp$8];
-                if (null != propValue$jscomp$8)
-                  switch (propKey$jscomp$8) {
-                    case "children":
-                      children$jscomp$8 = propValue$jscomp$8;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$5 = propValue$jscomp$8;
-                      break;
-                    default:
-                      pushAttribute(
-                        target$jscomp$0,
-                        propKey$jscomp$8,
-                        propValue$jscomp$8
-                      );
-                  }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            var child$jscomp$1 = Array.isArray(children$jscomp$8)
-              ? 2 > children$jscomp$8.length
-                ? children$jscomp$8[0]
-                : null
-              : children$jscomp$8;
-            "function" !== typeof child$jscomp$1 &&
-              "symbol" !== typeof child$jscomp$1 &&
-              null !== child$jscomp$1 &&
-              void 0 !== child$jscomp$1 &&
-              target$jscomp$0.push(escapeStyleTextContent(child$jscomp$1));
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$5,
-              children$jscomp$8
-            );
-            target$jscomp$0.push(endChunkForTag("style"));
-            var JSCompiler_inline_result$jscomp$7 = null;
-          } else {
-            href$jscomp$0.includes(" ") &&
-              console.error(
-                'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-                href$jscomp$0
-              );
-            var styleQueue$jscomp$0 =
-                renderState.styles.get(precedence$jscomp$0),
-              resourceState$jscomp$1 =
-                resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-                  ? resumableState.styleResources[href$jscomp$0]
-                  : void 0;
-            if (resourceState$jscomp$1 !== EXISTS) {
-              resumableState.styleResources[href$jscomp$0] = EXISTS;
-              resourceState$jscomp$1 &&
-                console.error(
-                  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-                  href$jscomp$0
-                );
-              styleQueue$jscomp$0 ||
-                ((styleQueue$jscomp$0 = {
-                  precedence: escapeTextForBrowser(precedence$jscomp$0),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(
-                  precedence$jscomp$0,
-                  styleQueue$jscomp$0
-                ));
-              var nonceStyle = renderState.nonce.style;
-              if (nonceStyle && nonceStyle !== nonce)
-                console.error(
-                  'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-                  precedence$jscomp$0,
-                  nonce,
-                  nonceStyle
-                );
-              else {
-                !nonceStyle &&
-                  nonce &&
-                  console.error(
-                    'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                    precedence$jscomp$0,
-                    nonce
-                  );
-                styleQueue$jscomp$0.hrefs.push(
-                  escapeTextForBrowser(href$jscomp$0)
-                );
-                var target = styleQueue$jscomp$0.rules,
-                  children$jscomp$9 = null,
-                  innerHTML$jscomp$6 = null,
-                  propKey$jscomp$9;
-                for (propKey$jscomp$9 in props)
-                  if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                    var propValue$jscomp$9 = props[propKey$jscomp$9];
-                    if (null != propValue$jscomp$9)
-                      switch (propKey$jscomp$9) {
-                        case "children":
-                          children$jscomp$9 = propValue$jscomp$9;
-                          break;
-                        case "dangerouslySetInnerHTML":
-                          innerHTML$jscomp$6 = propValue$jscomp$9;
-                      }
-                  }
-                var child$jscomp$2 = Array.isArray(children$jscomp$9)
-                  ? 2 > children$jscomp$9.length
-                    ? children$jscomp$9[0]
-                    : null
-                  : children$jscomp$9;
-                "function" !== typeof child$jscomp$2 &&
-                  "symbol" !== typeof child$jscomp$2 &&
-                  null !== child$jscomp$2 &&
-                  void 0 !== child$jscomp$2 &&
-                  target.push(escapeStyleTextContent(child$jscomp$2));
-                pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-              }
-            }
-            styleQueue$jscomp$0 &&
-              hoistableState &&
-              hoistableState.styles.add(styleQueue$jscomp$0);
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-            JSCompiler_inline_result$jscomp$7 = void 0;
-          }
-          return JSCompiler_inline_result$jscomp$7;
-        case "meta":
-          var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-            isFallback$jscomp$1 = formatContext.tagScope & 4;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$3 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-              target$jscomp$0,
-              props,
-              "meta"
-            );
-          else
-            textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-              (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-                ? null
-                : "string" === typeof props.charSet
-                  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-                  : "viewport" === props.name
-                    ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                    : pushSelfClosing(
-                        renderState.hoistableChunks,
-                        props,
-                        "meta"
-                      ));
-          return JSCompiler_inline_result$jscomp$8;
-        case "listing":
-        case "pre":
-          target$jscomp$0.push(startChunkForTag(type));
-          var children$jscomp$10 = null,
-            innerHTML$jscomp$7 = null,
-            propKey$jscomp$10;
-          for (propKey$jscomp$10 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-              var propValue$jscomp$10 = props[propKey$jscomp$10];
-              if (null != propValue$jscomp$10)
-                switch (propKey$jscomp$10) {
-                  case "children":
-                    children$jscomp$10 = propValue$jscomp$10;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$7 = propValue$jscomp$10;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$10,
-                      propValue$jscomp$10
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          if (null != innerHTML$jscomp$7) {
-            if (null != children$jscomp$10)
-              throw Error(
-                "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-              );
-            if (
-              "object" !== typeof innerHTML$jscomp$7 ||
-              !("__html" in innerHTML$jscomp$7)
-            )
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            var html = innerHTML$jscomp$7.__html;
-            null !== html &&
-              void 0 !== html &&
-              ("string" === typeof html && 0 < html.length && "\n" === html[0]
-                ? target$jscomp$0.push(leadingNewline, html)
-                : (checkHtmlStringCoercion(html),
-                  target$jscomp$0.push("" + html)));
-          }
-          "string" === typeof children$jscomp$10 &&
-            "\n" === children$jscomp$10[0] &&
-            target$jscomp$0.push(leadingNewline);
-          return children$jscomp$10;
-        case "img":
-          var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-            src = props.src,
-            srcSet = props.srcSet;
-          if (
-            !(
-              "lazy" === props.loading ||
-              (!src && !srcSet) ||
-              ("string" !== typeof src && null != src) ||
-              ("string" !== typeof srcSet && null != srcSet) ||
-              "low" === props.fetchPriority ||
-              pictureOrNoScriptTagInScope
-            ) &&
-            ("string" !== typeof src ||
-              ":" !== src[4] ||
-              ("d" !== src[0] && "D" !== src[0]) ||
-              ("a" !== src[1] && "A" !== src[1]) ||
-              ("t" !== src[2] && "T" !== src[2]) ||
-              ("a" !== src[3] && "A" !== src[3])) &&
-            ("string" !== typeof srcSet ||
-              ":" !== srcSet[4] ||
-              ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-              ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-              ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-              ("a" !== srcSet[3] && "A" !== srcSet[3]))
-          ) {
-            null !== hoistableState &&
-              formatContext.tagScope & 64 &&
-              (hoistableState.suspenseyImages = !0);
-            var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-              key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-              promotablePreloads = renderState.preloads.images,
-              resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-            if (resource$jscomp$1) {
-              if (
-                "high" === props.fetchPriority ||
-                10 > renderState.highImagePreloads.size
-              )
-                promotablePreloads.delete(key$jscomp$0),
-                  renderState.highImagePreloads.add(resource$jscomp$1);
-            } else if (
-              !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-            ) {
-              resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-              var input = props.crossOrigin;
-              var crossOrigin =
-                "string" === typeof input
-                  ? "use-credentials" === input
-                    ? input
-                    : ""
-                  : void 0;
-              var headers = renderState.headers,
-                header;
-              headers &&
-              0 < headers.remainingCapacity &&
-              "string" !== typeof props.srcSet &&
-              ("high" === props.fetchPriority ||
-                500 > headers.highImagePreloads.length) &&
-              ((header = getPreloadAsHeader(src, "image", {
-                imageSrcSet: props.srcSet,
-                imageSizes: props.sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                nonce: props.nonce,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.refererPolicy
-              })),
-              0 <= (headers.remainingCapacity -= header.length + 2))
-                ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-                  headers.highImagePreloads &&
-                    (headers.highImagePreloads += ", "),
-                  (headers.highImagePreloads += header))
-                : ((resource$jscomp$1 = []),
-                  pushLinkImpl(resource$jscomp$1, {
-                    rel: "preload",
-                    as: "image",
-                    href: srcSet ? void 0 : src,
-                    imageSrcSet: srcSet,
-                    imageSizes: sizes,
-                    crossOrigin: crossOrigin,
-                    integrity: props.integrity,
-                    type: props.type,
-                    fetchPriority: props.fetchPriority,
-                    referrerPolicy: props.referrerPolicy
-                  }),
-                  "high" === props.fetchPriority ||
-                  10 > renderState.highImagePreloads.size
-                    ? renderState.highImagePreloads.add(resource$jscomp$1)
-                    : (renderState.bulkPreloads.add(resource$jscomp$1),
-                      promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-            }
-          }
-          return pushSelfClosing(target$jscomp$0, props, "img");
-        case "base":
-        case "area":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-          return pushSelfClosing(target$jscomp$0, props, type);
-        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":
-          break;
-        case "head":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble = preambleState || renderState.preamble;
-            if (preamble.headChunks)
-              throw Error("The `<head>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-            preamble.headChunks = [];
-            var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-              preamble.headChunks,
-              props,
-              "head"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "head"
-            );
-          return JSCompiler_inline_result$jscomp$9;
-        case "body":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble$jscomp$0 = preambleState || renderState.preamble;
-            if (preamble$jscomp$0.bodyChunks)
-              throw Error("The `<body>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-            preamble$jscomp$0.bodyChunks = [];
-            var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-              preamble$jscomp$0.bodyChunks,
-              props,
-              "body"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "body"
-            );
-          return JSCompiler_inline_result$jscomp$10;
-        case "html":
-          if (formatContext.insertionMode === ROOT_HTML_MODE) {
-            var preamble$jscomp$1 = preambleState || renderState.preamble;
-            if (preamble$jscomp$1.htmlChunks)
-              throw Error("The `<html>` tag may only be rendered once.");
-            null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-            preamble$jscomp$1.htmlChunks = [doctypeChunk];
-            var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-              preamble$jscomp$1.htmlChunks,
-              props,
-              "html"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "html"
-            );
-          return JSCompiler_inline_result$jscomp$11;
-        default:
-          if (-1 !== type.indexOf("-")) {
-            target$jscomp$0.push(startChunkForTag(type));
-            var children$jscomp$11 = null,
-              innerHTML$jscomp$8 = null,
-              propKey$jscomp$11;
-            for (propKey$jscomp$11 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-                var propValue$jscomp$11 = props[propKey$jscomp$11];
-                if (null != propValue$jscomp$11) {
-                  var attributeName = propKey$jscomp$11;
-                  switch (propKey$jscomp$11) {
-                    case "children":
-                      children$jscomp$11 = propValue$jscomp$11;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$8 = propValue$jscomp$11;
-                      break;
-                    case "style":
-                      pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                      break;
-                    case "suppressContentEditableWarning":
-                    case "suppressHydrationWarning":
-                    case "ref":
-                      break;
-                    case "className":
-                      attributeName = "class";
-                    default:
-                      if (
-                        isAttributeNameSafe(propKey$jscomp$11) &&
-                        "function" !== typeof propValue$jscomp$11 &&
-                        "symbol" !== typeof propValue$jscomp$11 &&
-                        !1 !== propValue$jscomp$11
-                      ) {
-                        if (!0 === propValue$jscomp$11)
-                          propValue$jscomp$11 = "";
-                        else if ("object" === typeof propValue$jscomp$11)
-                          continue;
-                        target$jscomp$0.push(
-                          attributeSeparator,
-                          attributeName,
-                          attributeAssign,
-                          escapeTextForBrowser(propValue$jscomp$11),
-                          attributeEnd
-                        );
-                      }
-                  }
-                }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$8,
-              children$jscomp$11
-            );
-            return children$jscomp$11;
-          }
-      }
-      return pushStartGenericElement(target$jscomp$0, props, type);
-    }
-    function endChunkForTag(tag) {
-      var chunk = endTagCache.get(tag);
-      void 0 === chunk &&
-        ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-      return chunk;
-    }
-    function hoistPreambleState(renderState, preambleState) {
-      renderState = renderState.preamble;
-      null === renderState.htmlChunks &&
-        preambleState.htmlChunks &&
-        (renderState.htmlChunks = preambleState.htmlChunks);
-      null === renderState.headChunks &&
-        preambleState.headChunks &&
-        (renderState.headChunks = preambleState.headChunks);
-      null === renderState.bodyChunks &&
-        preambleState.bodyChunks &&
-        (renderState.bodyChunks = preambleState.bodyChunks);
-    }
-    function writeBootstrap(destination, renderState) {
-      renderState = renderState.bootstrapChunks;
-      for (var i = 0; i < renderState.length - 1; i++)
-        destination.push(renderState[i]);
-      return i < renderState.length
-        ? ((i = renderState[i]), (renderState.length = 0), destination.push(i))
-        : !0;
-    }
-    function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-      destination.push(startPendingSuspenseBoundary1);
-      if (null === id)
-        throw Error(
-          "An ID must have been assigned before we can complete the boundary."
-        );
-      destination.push(renderState.boundaryPrefix);
-      renderState = id.toString(16);
-      destination.push(renderState);
-      return destination.push(startPendingSuspenseBoundary2);
-    }
-    function writeStartSegment(destination, renderState, formatContext, id) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return (
-            destination.push(startSegmentHTML),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentHTML2)
-          );
-        case SVG_MODE:
-          return (
-            destination.push(startSegmentSVG),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentSVG2)
-          );
-        case MATHML_MODE:
-          return (
-            destination.push(startSegmentMathML),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentMathML2)
-          );
-        case HTML_TABLE_MODE:
-          return (
-            destination.push(startSegmentTable),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTable2)
-          );
-        case HTML_TABLE_BODY_MODE:
-          return (
-            destination.push(startSegmentTableBody),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTableBody2)
-          );
-        case HTML_TABLE_ROW_MODE:
-          return (
-            destination.push(startSegmentTableRow),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentTableRow2)
-          );
-        case HTML_COLGROUP_MODE:
-          return (
-            destination.push(startSegmentColGroup),
-            destination.push(renderState.segmentPrefix),
-            (renderState = id.toString(16)),
-            destination.push(renderState),
-            destination.push(startSegmentColGroup2)
-          );
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function writeEndSegment(destination, formatContext) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return destination.push(endSegmentHTML);
-        case SVG_MODE:
-          return destination.push(endSegmentSVG);
-        case MATHML_MODE:
-          return destination.push(endSegmentMathML);
-        case HTML_TABLE_MODE:
-          return destination.push(endSegmentTable);
-        case HTML_TABLE_BODY_MODE:
-          return destination.push(endSegmentTableBody);
-        case HTML_TABLE_ROW_MODE:
-          return destination.push(endSegmentTableRow);
-        case HTML_COLGROUP_MODE:
-          return destination.push(endSegmentColGroup);
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function escapeJSStringsForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInInstructionScripts,
-        function (match) {
-          switch (match) {
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function escapeJSObjectForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInScripts,
-        function (match) {
-          switch (match) {
-            case "&":
-              return "\\u0026";
-            case ">":
-              return "\\u003e";
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function flushStyleTagsLateForBoundary(styleQueue) {
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      0 < rules.length &&
-        0 === hrefs.length &&
-        console.error(
-          "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-        );
-      var i = 0;
-      if (hrefs.length) {
-        this.push(currentlyFlushingRenderState.startInlineStyle);
-        this.push(lateStyleTagResourceOpen1);
-        this.push(styleQueue.precedence);
-        for (this.push(lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-          this.push(hrefs[i]), this.push(spaceSeparator);
-        this.push(hrefs[i]);
-        this.push(lateStyleTagResourceOpen3);
-        for (i = 0; i < rules.length; i++) this.push(rules[i]);
-        destinationHasCapacity = this.push(lateStyleTagTemplateClose);
-        currentlyRenderingBoundaryHasStylesToHoist = !0;
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function hasStylesToHoist(stylesheet) {
-      return stylesheet.state !== PREAMBLE
-        ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-        : !1;
-    }
-    function writeHoistablesForBoundary(
-      destination,
-      hoistableState,
-      renderState
-    ) {
-      currentlyRenderingBoundaryHasStylesToHoist = !1;
-      destinationHasCapacity = !0;
-      currentlyFlushingRenderState = renderState;
-      hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-      currentlyFlushingRenderState = null;
-      hoistableState.stylesheets.forEach(hasStylesToHoist);
-      currentlyRenderingBoundaryHasStylesToHoist &&
-        (renderState.stylesToHoist = !0);
-      return destinationHasCapacity;
-    }
-    function flushResource(resource) {
-      for (var i = 0; i < resource.length; i++) this.push(resource[i]);
-      resource.length = 0;
-    }
-    function flushStyleInPreamble(stylesheet) {
-      pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-      for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-        this.push(stylesheetFlushingQueue[i]);
-      stylesheetFlushingQueue.length = 0;
-      stylesheet.state = PREAMBLE;
-    }
-    function flushStylesInPreamble(styleQueue) {
-      var hasStylesheets = 0 < styleQueue.sheets.size;
-      styleQueue.sheets.forEach(flushStyleInPreamble, this);
-      styleQueue.sheets.clear();
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      if (!hasStylesheets || hrefs.length) {
-        this.push(currentlyFlushingRenderState.startInlineStyle);
-        this.push(styleTagResourceOpen1);
-        this.push(styleQueue.precedence);
-        styleQueue = 0;
-        if (hrefs.length) {
-          for (
-            this.push(styleTagResourceOpen2);
-            styleQueue < hrefs.length - 1;
-            styleQueue++
-          )
-            this.push(hrefs[styleQueue]), this.push(spaceSeparator);
-          this.push(hrefs[styleQueue]);
-        }
-        this.push(styleTagResourceOpen3);
-        for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-          this.push(rules[styleQueue]);
-        this.push(styleTagResourceClose);
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function preloadLateStyle(stylesheet) {
-      if (stylesheet.state === PENDING$1) {
-        stylesheet.state = PRELOADED;
-        var props = stylesheet.props;
-        pushLinkImpl(stylesheetFlushingQueue, {
-          rel: "preload",
-          as: "style",
-          href: stylesheet.props.href,
-          crossOrigin: props.crossOrigin,
-          fetchPriority: props.fetchPriority,
-          integrity: props.integrity,
-          media: props.media,
-          hrefLang: props.hrefLang,
-          referrerPolicy: props.referrerPolicy
-        });
-        for (
-          stylesheet = 0;
-          stylesheet < stylesheetFlushingQueue.length;
-          stylesheet++
-        )
-          this.push(stylesheetFlushingQueue[stylesheet]);
-        stylesheetFlushingQueue.length = 0;
-      }
-    }
-    function preloadLateStyles(styleQueue) {
-      styleQueue.sheets.forEach(preloadLateStyle, this);
-      styleQueue.sheets.clear();
-    }
-    function pushCompletedShellIdAttribute(target, resumableState) {
-      (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-        ((resumableState.instructions |= SentCompletedShellId),
-        target.push(
-          completedShellIdAttributeStart,
-          escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-          attributeEnd
-        ));
-    }
-    function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-      destination.push(arrayFirstOpenBracket);
-      var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-      hoistableState.stylesheets.forEach(function (resource) {
-        if (resource.state !== PREAMBLE)
-          if (resource.state === LATE)
-            destination.push(nextArrayOpenBrackChunk),
-              (resource = resource.props.href),
-              checkAttributeStringCoercion(resource, "href"),
-              (resource = escapeJSObjectForInstructionScripts("" + resource)),
-              destination.push(resource),
-              destination.push(arrayCloseBracket),
-              (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-          else {
-            destination.push(nextArrayOpenBrackChunk);
-            var precedence = resource.props["data-precedence"],
-              props = resource.props,
-              coercedHref = sanitizeURL("" + resource.props.href);
-            coercedHref = escapeJSObjectForInstructionScripts(coercedHref);
-            destination.push(coercedHref);
-            checkAttributeStringCoercion(precedence, "precedence");
-            precedence = "" + precedence;
-            destination.push(arrayInterstitial);
-            precedence = escapeJSObjectForInstructionScripts(precedence);
-            destination.push(precedence);
-            for (var propKey in props)
-              if (
-                hasOwnProperty.call(props, propKey) &&
-                ((precedence = props[propKey]), null != precedence)
-              )
-                switch (propKey) {
-                  case "href":
-                  case "rel":
-                  case "precedence":
-                  case "data-precedence":
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    writeStyleResourceAttributeInJS(
-                      destination,
-                      propKey,
-                      precedence
-                    );
-                }
-            destination.push(arrayCloseBracket);
-            nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-            resource.state = LATE;
-          }
-      });
-      destination.push(arrayCloseBracket);
-    }
-    function writeStyleResourceAttributeInJS(destination, name, value) {
-      var attributeName = name.toLowerCase();
-      switch (typeof value) {
-        case "function":
-        case "symbol":
-          return;
-      }
-      switch (name) {
-        case "innerHTML":
-        case "dangerouslySetInnerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "style":
-        case "ref":
-          return;
-        case "className":
-          attributeName = "class";
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        case "hidden":
-          if (!1 === value) return;
-          name = "";
-          break;
-        case "src":
-        case "href":
-          value = sanitizeURL(value);
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        default:
-          if (
-            (2 < name.length &&
-              ("o" === name[0] || "O" === name[0]) &&
-              ("n" === name[1] || "N" === name[1])) ||
-            !isAttributeNameSafe(name)
-          )
-            return;
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-      }
-      destination.push(arrayInterstitial);
-      attributeName = escapeJSObjectForInstructionScripts(attributeName);
-      destination.push(attributeName);
-      destination.push(arrayInterstitial);
-      attributeName = escapeJSObjectForInstructionScripts(name);
-      destination.push(attributeName);
-    }
-    function createHoistableState() {
-      return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-    }
-    function preloadBootstrapScriptOrModule(
-      resumableState,
-      renderState,
-      href,
-      props
-    ) {
-      (resumableState.scriptResources.hasOwnProperty(href) ||
-        resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-        console.error(
-          'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-          href
-        );
-      resumableState.scriptResources[href] = EXISTS;
-      resumableState.moduleScriptResources[href] = EXISTS;
-      resumableState = [];
-      pushLinkImpl(resumableState, props);
-      renderState.bootstrapScripts.add(resumableState);
-    }
-    function adoptPreloadCredentials(target, preloadState) {
-      null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-      null == target.integrity && (target.integrity = preloadState[1]);
-    }
-    function getPreloadAsHeader(href, as, params) {
-      href = escapeHrefForLinkHeaderURLContext(href);
-      as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-      as = "<" + href + '>; rel=preload; as="' + as + '"';
-      for (var paramName in params)
-        hasOwnProperty.call(params, paramName) &&
-          ((href = params[paramName]),
-          "string" === typeof href &&
-            (as +=
-              "; " +
-              paramName.toLowerCase() +
-              '="' +
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                href,
-                paramName
-              ) +
-              '"'));
-      return as;
-    }
-    function escapeHrefForLinkHeaderURLContext(hrefInput) {
-      checkAttributeStringCoercion(hrefInput, "href");
-      return ("" + hrefInput).replace(
-        regexForHrefInLinkHeaderURLContext,
-        escapeHrefForLinkHeaderURLContextReplacer
-      );
-    }
-    function escapeHrefForLinkHeaderURLContextReplacer(match) {
-      switch (match) {
-        case "<":
-          return "%3C";
-        case ">":
-          return "%3E";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-      willCoercionThrow(value) &&
-        (console.error(
-          "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-          name,
-          typeName(value)
-        ),
-        testStringCoercion(value));
-      return ("" + value).replace(
-        regexForLinkHeaderQuotedParamValueContext,
-        escapeStringForLinkHeaderQuotedParamValueContextReplacer
-      );
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-      switch (match) {
-        case '"':
-          return "%22";
-        case "'":
-          return "%27";
-        case ";":
-          return "%3B";
-        case ",":
-          return "%2C";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function hoistStyleQueueDependency(styleQueue) {
-      this.styles.add(styleQueue);
-    }
-    function hoistStylesheetDependency(stylesheet) {
-      this.stylesheets.add(stylesheet);
-    }
-    function hoistHoistables(parentState, childState) {
-      childState.styles.forEach(hoistStyleQueueDependency, parentState);
-      childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-      childState.suspenseyImages && (parentState.suspenseyImages = !0);
-    }
-    function createRenderState(resumableState, generateStaticMarkup) {
-      var idPrefix = resumableState.idPrefix,
-        bootstrapChunks = [],
-        bootstrapScriptContent = resumableState.bootstrapScriptContent,
-        bootstrapScripts = resumableState.bootstrapScripts,
-        bootstrapModules = resumableState.bootstrapModules;
-      void 0 !== bootstrapScriptContent &&
-        (bootstrapChunks.push("<script"),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          escapeEntireInlineScriptContent(bootstrapScriptContent),
-          endInlineScript
-        ));
-      idPrefix = {
-        placeholderPrefix: idPrefix + "P:",
-        segmentPrefix: idPrefix + "S:",
-        boundaryPrefix: idPrefix + "B:",
-        startInlineScript: "<script",
-        startInlineStyle: "<style",
-        preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
-        externalRuntimeScript: null,
-        bootstrapChunks: bootstrapChunks,
-        importMapChunks: [],
-        onHeaders: void 0,
-        headers: null,
-        resets: {
-          font: {},
-          dns: {},
-          connect: { default: {}, anonymous: {}, credentials: {} },
-          image: {},
-          style: {}
-        },
-        charsetChunks: [],
-        viewportChunks: [],
-        hoistableChunks: [],
-        preconnects: new Set(),
-        fontPreloads: new Set(),
-        highImagePreloads: new Set(),
-        styles: new Map(),
-        bootstrapScripts: new Set(),
-        scripts: new Set(),
-        bulkPreloads: new Set(),
-        preloads: {
-          images: new Map(),
-          stylesheets: new Map(),
-          scripts: new Map(),
-          moduleScripts: new Map()
-        },
-        nonce: { script: void 0, style: void 0 },
-        hoistableState: null,
-        stylesToHoist: !1
-      };
-      if (void 0 !== bootstrapScripts)
-        for (
-          bootstrapScriptContent = 0;
-          bootstrapScriptContent < bootstrapScripts.length;
-          bootstrapScriptContent++
-        ) {
-          var scriptConfig = bootstrapScripts[bootstrapScriptContent],
-            src,
-            crossOrigin = void 0,
-            integrity = void 0,
-            props = {
-              rel: "preload",
-              as: "script",
-              fetchPriority: "low",
-              nonce: void 0
-            };
-          "string" === typeof scriptConfig
-            ? (props.href = src = scriptConfig)
-            : ((props.href = src = scriptConfig.src),
-              (props.integrity = integrity =
-                "string" === typeof scriptConfig.integrity
-                  ? scriptConfig.integrity
-                  : void 0),
-              (props.crossOrigin = crossOrigin =
-                "string" === typeof scriptConfig ||
-                null == scriptConfig.crossOrigin
-                  ? void 0
-                  : "use-credentials" === scriptConfig.crossOrigin
-                    ? "use-credentials"
-                    : ""));
-          preloadBootstrapScriptOrModule(resumableState, idPrefix, src, props);
-          bootstrapChunks.push(
-            '<script src="',
-            escapeTextForBrowser(src),
-            attributeEnd
-          );
-          "string" === typeof integrity &&
-            bootstrapChunks.push(
-              ' integrity="',
-              escapeTextForBrowser(integrity),
-              attributeEnd
-            );
-          "string" === typeof crossOrigin &&
-            bootstrapChunks.push(
-              ' crossorigin="',
-              escapeTextForBrowser(crossOrigin),
-              attributeEnd
-            );
-          pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
-          bootstrapChunks.push(' async="">\x3c/script>');
-        }
-      if (void 0 !== bootstrapModules)
-        for (
-          bootstrapScripts = 0;
-          bootstrapScripts < bootstrapModules.length;
-          bootstrapScripts++
-        )
-          (bootstrapScriptContent = bootstrapModules[bootstrapScripts]),
-            (crossOrigin = src = void 0),
-            (integrity = {
-              rel: "modulepreload",
-              fetchPriority: "low",
-              nonce: void 0
-            }),
-            "string" === typeof bootstrapScriptContent
-              ? (integrity.href = scriptConfig = bootstrapScriptContent)
-              : ((integrity.href = scriptConfig = bootstrapScriptContent.src),
-                (integrity.integrity = crossOrigin =
-                  "string" === typeof bootstrapScriptContent.integrity
-                    ? bootstrapScriptContent.integrity
-                    : void 0),
-                (integrity.crossOrigin = src =
-                  "string" === typeof bootstrapScriptContent ||
-                  null == bootstrapScriptContent.crossOrigin
-                    ? void 0
-                    : "use-credentials" === bootstrapScriptContent.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              idPrefix,
-              scriptConfig,
-              integrity
-            ),
-            bootstrapChunks.push(
-              '<script type="module" src="',
-              escapeTextForBrowser(scriptConfig),
-              attributeEnd
-            ),
-            "string" === typeof crossOrigin &&
-              bootstrapChunks.push(
-                ' integrity="',
-                escapeTextForBrowser(crossOrigin),
-                attributeEnd
-              ),
-            "string" === typeof src &&
-              bootstrapChunks.push(
-                ' crossorigin="',
-                escapeTextForBrowser(src),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(' async="">\x3c/script>');
-      return {
-        placeholderPrefix: idPrefix.placeholderPrefix,
-        segmentPrefix: idPrefix.segmentPrefix,
-        boundaryPrefix: idPrefix.boundaryPrefix,
-        startInlineScript: idPrefix.startInlineScript,
-        startInlineStyle: idPrefix.startInlineStyle,
-        preamble: idPrefix.preamble,
-        externalRuntimeScript: idPrefix.externalRuntimeScript,
-        bootstrapChunks: idPrefix.bootstrapChunks,
-        importMapChunks: idPrefix.importMapChunks,
-        onHeaders: idPrefix.onHeaders,
-        headers: idPrefix.headers,
-        resets: idPrefix.resets,
-        charsetChunks: idPrefix.charsetChunks,
-        viewportChunks: idPrefix.viewportChunks,
-        hoistableChunks: idPrefix.hoistableChunks,
-        preconnects: idPrefix.preconnects,
-        fontPreloads: idPrefix.fontPreloads,
-        highImagePreloads: idPrefix.highImagePreloads,
-        styles: idPrefix.styles,
-        bootstrapScripts: idPrefix.bootstrapScripts,
-        scripts: idPrefix.scripts,
-        bulkPreloads: idPrefix.bulkPreloads,
-        preloads: idPrefix.preloads,
-        nonce: idPrefix.nonce,
-        stylesToHoist: idPrefix.stylesToHoist,
-        generateStaticMarkup: generateStaticMarkup
-      };
-    }
-    function pushTextInstance(target, text, renderState, textEmbedded) {
-      if (renderState.generateStaticMarkup)
-        return target.push(escapeTextForBrowser(text)), !1;
-      "" === text
-        ? (target = textEmbedded)
-        : (textEmbedded && target.push("\x3c!-- --\x3e"),
-          target.push(escapeTextForBrowser(text)),
-          (target = !0));
-      return target;
-    }
-    function pushSegmentFinale(
-      target,
-      renderState,
-      lastPushedText,
-      textEmbedded
-    ) {
-      renderState.generateStaticMarkup ||
-        (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e"));
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function popToNearestCommonAncestor(prev, next) {
-      if (prev !== next) {
-        prev.context._currentValue2 = prev.parentValue;
-        prev = prev.parent;
-        var parentNext = next.parent;
-        if (null === prev) {
-          if (null !== parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-        } else {
-          if (null === parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-          popToNearestCommonAncestor(prev, parentNext);
-        }
-        next.context._currentValue2 = next.value;
-      }
-    }
-    function popAllPrevious(prev) {
-      prev.context._currentValue2 = prev.parentValue;
-      prev = prev.parent;
-      null !== prev && popAllPrevious(prev);
-    }
-    function pushAllNext(next) {
-      var parentNext = next.parent;
-      null !== parentNext && pushAllNext(parentNext);
-      next.context._currentValue2 = next.value;
-    }
-    function popPreviousToCommonLevel(prev, next) {
-      prev.context._currentValue2 = prev.parentValue;
-      prev = prev.parent;
-      if (null === prev)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === next.depth
-        ? popToNearestCommonAncestor(prev, next)
-        : popPreviousToCommonLevel(prev, next);
-    }
-    function popNextToCommonLevel(prev, next) {
-      var parentNext = next.parent;
-      if (null === parentNext)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === parentNext.depth
-        ? popToNearestCommonAncestor(prev, parentNext)
-        : popNextToCommonLevel(prev, parentNext);
-      next.context._currentValue2 = next.value;
-    }
-    function switchContext(newSnapshot) {
-      var prev = currentActiveSnapshot;
-      prev !== newSnapshot &&
-        (null === prev
-          ? pushAllNext(newSnapshot)
-          : null === newSnapshot
-            ? popAllPrevious(prev)
-            : prev.depth === newSnapshot.depth
-              ? popToNearestCommonAncestor(prev, newSnapshot)
-              : prev.depth > newSnapshot.depth
-                ? popPreviousToCommonLevel(prev, newSnapshot)
-                : popNextToCommonLevel(prev, newSnapshot),
-        (currentActiveSnapshot = newSnapshot));
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          getComponentNameFromType(publicInstance)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnAboutNoopUpdateForComponent[warningKey] ||
-        (console.error(
-          "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-    }
-    function pushTreeContext(baseContext, totalChildren, index) {
-      var baseIdWithLeadingBit = baseContext.id;
-      baseContext = baseContext.overflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        return {
-          id:
-            (1 << (32 - clz32(totalChildren) + baseLength)) |
-            (index << baseLength) |
-            baseIdWithLeadingBit,
-          overflow: length + baseContext
-        };
-      }
-      return {
-        id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-        overflow: baseContext
-      };
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function noop() {}
-    function trackUsedThenable(thenableState, thenable, index) {
-      index = thenableState[index];
-      void 0 === index
-        ? thenableState.push(thenable)
-        : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          "string" === typeof thenable.status
-            ? thenable.then(noop, noop)
-            : ((thenableState = thenable),
-              (thenableState.status = "pending"),
-              thenableState.then(
-                function (fulfilledValue) {
-                  if ("pending" === thenable.status) {
-                    var fulfilledThenable = thenable;
-                    fulfilledThenable.status = "fulfilled";
-                    fulfilledThenable.value = fulfilledValue;
-                  }
-                },
-                function (error) {
-                  if ("pending" === thenable.status) {
-                    var rejectedThenable = thenable;
-                    rejectedThenable.status = "rejected";
-                    rejectedThenable.reason = error;
-                  }
-                }
-              ));
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-          suspendedThenable = thenable;
-          throw SuspenseException;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      return thenable;
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function resolveCurrentlyRenderingComponent() {
-      if (null === currentlyRenderingComponent)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      isInHookUserCodeInDev &&
-        console.error(
-          "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-        );
-      return currentlyRenderingComponent;
-    }
-    function createHook() {
-      if (0 < numberOfReRenders)
-        throw Error("Rendered more hooks than during the previous render");
-      return { memoizedState: null, queue: null, next: null };
-    }
-    function createWorkInProgressHook() {
-      null === workInProgressHook
-        ? null === firstWorkInProgressHook
-          ? ((isReRender = !1),
-            (firstWorkInProgressHook = workInProgressHook = createHook()))
-          : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-        : null === workInProgressHook.next
-          ? ((isReRender = !1),
-            (workInProgressHook = workInProgressHook.next = createHook()))
-          : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-      return workInProgressHook;
-    }
-    function getThenableStateAfterSuspending() {
-      var state = thenableState;
-      thenableState = null;
-      return state;
-    }
-    function resetHooksState() {
-      isInHookUserCodeInDev = !1;
-      currentlyRenderingKeyPath =
-        currentlyRenderingRequest =
-        currentlyRenderingTask =
-        currentlyRenderingComponent =
-          null;
-      didScheduleRenderPhaseUpdate = !1;
-      firstWorkInProgressHook = null;
-      numberOfReRenders = 0;
-      workInProgressHook = renderPhaseUpdates = null;
-    }
-    function readContext(context) {
-      isInHookUserCodeInDev &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return context._currentValue2;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function useReducer(reducer, initialArg, init) {
-      reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      if (isReRender) {
-        init = workInProgressHook.queue;
-        initialArg = init.dispatch;
-        if (null !== renderPhaseUpdates) {
-          var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-          if (void 0 !== firstRenderPhaseUpdate) {
-            renderPhaseUpdates.delete(init);
-            init = workInProgressHook.memoizedState;
-            do {
-              var action = firstRenderPhaseUpdate.action;
-              isInHookUserCodeInDev = !0;
-              init = reducer(init, action);
-              isInHookUserCodeInDev = !1;
-              firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-            } while (null !== firstRenderPhaseUpdate);
-            workInProgressHook.memoizedState = init;
-            return [init, initialArg];
-          }
-        }
-        return [workInProgressHook.memoizedState, initialArg];
-      }
-      isInHookUserCodeInDev = !0;
-      reducer =
-        reducer === basicStateReducer
-          ? "function" === typeof initialArg
-            ? initialArg()
-            : initialArg
-          : void 0 !== init
-            ? init(initialArg)
-            : initialArg;
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = reducer;
-      reducer = workInProgressHook.queue = { last: null, dispatch: null };
-      reducer = reducer.dispatch = dispatchAction.bind(
-        null,
-        currentlyRenderingComponent,
-        reducer
-      );
-      return [workInProgressHook.memoizedState, reducer];
-    }
-    function useMemo(nextCreate, deps) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      if (null !== workInProgressHook) {
-        var prevState = workInProgressHook.memoizedState;
-        if (null !== prevState && null !== deps) {
-          a: {
-            var JSCompiler_inline_result = prevState[1];
-            if (null === JSCompiler_inline_result)
-              console.error(
-                "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-                currentHookNameInDev
-              ),
-                (JSCompiler_inline_result = !1);
-            else {
-              deps.length !== JSCompiler_inline_result.length &&
-                console.error(
-                  "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-                  currentHookNameInDev,
-                  "[" + deps.join(", ") + "]",
-                  "[" + JSCompiler_inline_result.join(", ") + "]"
-                );
-              for (
-                var i = 0;
-                i < JSCompiler_inline_result.length && i < deps.length;
-                i++
-              )
-                if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-                  JSCompiler_inline_result = !1;
-                  break a;
-                }
-              JSCompiler_inline_result = !0;
-            }
-          }
-          if (JSCompiler_inline_result) return prevState[0];
-        }
-      }
-      isInHookUserCodeInDev = !0;
-      nextCreate = nextCreate();
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = [nextCreate, deps];
-      return nextCreate;
-    }
-    function dispatchAction(componentIdentity, queue, action) {
-      if (25 <= numberOfReRenders)
-        throw Error(
-          "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-        );
-      if (componentIdentity === currentlyRenderingComponent)
-        if (
-          ((didScheduleRenderPhaseUpdate = !0),
-          (componentIdentity = { action: action, next: null }),
-          null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-          (action = renderPhaseUpdates.get(queue)),
-          void 0 === action)
-        )
-          renderPhaseUpdates.set(queue, componentIdentity);
-        else {
-          for (queue = action; null !== queue.next; ) queue = queue.next;
-          queue.next = componentIdentity;
-        }
-    }
-    function throwOnUseEffectEventCall() {
-      throw Error(
-        "A function wrapped in useEffectEvent can't be called during rendering."
-      );
-    }
-    function unsupportedStartTransition() {
-      throw Error("startTransition cannot be called during server rendering.");
-    }
-    function unsupportedSetOptimisticState() {
-      throw Error("Cannot update optimistic state while rendering.");
-    }
-    function useActionState(action, initialState, permalink) {
-      resolveCurrentlyRenderingComponent();
-      var actionStateHookIndex = actionStateCounter++,
-        request = currentlyRenderingRequest;
-      if ("function" === typeof action.$$FORM_ACTION) {
-        var nextPostbackStateKey = null,
-          componentKeyPath = currentlyRenderingKeyPath;
-        request = request.formState;
-        var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-        if (null !== request && "function" === typeof isSignatureEqual) {
-          var postbackKey = request[1];
-          isSignatureEqual.call(action, request[2], request[3]) &&
-            ((nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-            postbackKey === nextPostbackStateKey &&
-              ((actionStateMatchingIndex = actionStateHookIndex),
-              (initialState = request[0])));
-        }
-        var boundAction = action.bind(null, initialState);
-        action = function (payload) {
-          boundAction(payload);
-        };
-        "function" === typeof boundAction.$$FORM_ACTION &&
-          (action.$$FORM_ACTION = function (prefix) {
-            prefix = boundAction.$$FORM_ACTION(prefix);
-            void 0 !== permalink &&
-              (checkAttributeStringCoercion(permalink, "target"),
-              (permalink += ""),
-              (prefix.action = permalink));
-            var formData = prefix.data;
-            formData &&
-              (null === nextPostbackStateKey &&
-                (nextPostbackStateKey =
-                  void 0 !== permalink
-                    ? "p" + permalink
-                    : "k" +
-                      murmurhash3_32_gc(
-                        JSON.stringify([
-                          componentKeyPath,
-                          null,
-                          actionStateHookIndex
-                        ]),
-                        0
-                      )),
-              formData.append("$ACTION_KEY", nextPostbackStateKey));
-            return prefix;
-          });
-        return [initialState, action, !1];
-      }
-      var _boundAction = action.bind(null, initialState);
-      return [
-        initialState,
-        function (payload) {
-          _boundAction(payload);
-        },
-        !1
-      ];
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = []);
-      return trackUsedThenable(thenableState, thenable, index);
-    }
-    function unsupportedRefresh() {
-      throw Error("Cache cannot be refreshed during server rendering.");
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeComponentStackByType(type) {
-      if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-      if ("function" === typeof type)
-        return type.prototype && type.prototype.isReactComponent
-          ? describeNativeComponentFrame(type, !0)
-          : describeNativeComponentFrame(type, !1);
-      if ("object" === typeof type && null !== type) {
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeNativeComponentFrame(type.render, !1);
-          case REACT_MEMO_TYPE:
-            return describeNativeComponentFrame(type.type, !1);
-          case REACT_LAZY_TYPE:
-            var lazyComponent = type,
-              payload = lazyComponent._payload;
-            lazyComponent = lazyComponent._init;
-            try {
-              type = lazyComponent(payload);
-            } catch (x) {
-              return describeBuiltInComponentFrame("Lazy");
-            }
-            return describeComponentStackByType(type);
-        }
-        if ("string" === typeof type.name) {
-          a: {
-            payload = type.name;
-            lazyComponent = type.env;
-            type = type.debugLocation;
-            if (null != type) {
-              type = formatOwnerStack(type);
-              var idx = type.lastIndexOf("\n");
-              type = -1 === idx ? type : type.slice(idx + 1);
-              if (-1 !== type.indexOf(payload)) {
-                payload = "\n" + type;
-                break a;
-              }
-            }
-            payload = describeBuiltInComponentFrame(
-              payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-            );
-          }
-          return payload;
-        }
-      }
-      switch (type) {
-        case REACT_SUSPENSE_LIST_TYPE:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case REACT_SUSPENSE_TYPE:
-          return describeBuiltInComponentFrame("Suspense");
-      }
-      return "";
-    }
-    function isEligibleForOutlining(request, boundary) {
-      return (
-        (500 < boundary.byteSize || !1) && null === boundary.contentPreamble
-      );
-    }
-    function defaultErrorHandler(error) {
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [error].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              "[%s] " + error[0],
-              " " + JSCompiler_inline_result + " "
-            )
-          : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else console.error(error);
-      return null;
-    }
-    function RequestInstance(
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var abortSet = new Set();
-      this.destination = null;
-      this.flushScheduled = !1;
-      this.resumableState = resumableState;
-      this.renderState = renderState;
-      this.rootFormatContext = rootFormatContext;
-      this.progressiveChunkSize =
-        void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-      this.status = 10;
-      this.fatalError = null;
-      this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-      this.completedPreambleSegments = this.completedRootSegment = null;
-      this.byteSize = 0;
-      this.abortableTasks = abortSet;
-      this.pingedTasks = [];
-      this.clientRenderedBoundaries = [];
-      this.completedBoundaries = [];
-      this.partialBoundaries = [];
-      this.trackedPostpones = null;
-      this.onError = void 0 === onError ? defaultErrorHandler : onError;
-      this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-      this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-      this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-      this.onShellError = void 0 === onShellError ? noop : onShellError;
-      this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-      this.formState = void 0 === formState ? null : formState;
-      this.didWarnForKey = null;
-    }
-    function createRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var now = getCurrentTime();
-      1e3 < now - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = now));
-      resumableState = new RequestInstance(
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        formState
-      );
-      renderState = createPendingSegment(
-        resumableState,
-        0,
-        null,
-        rootFormatContext,
-        !1,
-        !1
-      );
-      renderState.parentFlushed = !0;
-      children = createRenderTask(
-        resumableState,
-        null,
-        children,
-        -1,
-        null,
-        renderState,
-        null,
-        null,
-        resumableState.abortableTasks,
-        null,
-        rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      resumableState.pingedTasks.push(children);
-      return resumableState;
-    }
-    function pingTask(request, task) {
-      request.pingedTasks.push(task);
-      1 === request.pingedTasks.length &&
-        ((request.flushScheduled = null !== request.destination),
-        performWork(request));
-    }
-    function createSuspenseBoundary(
-      request,
-      row,
-      fallbackAbortableTasks,
-      contentPreamble,
-      fallbackPreamble
-    ) {
-      fallbackAbortableTasks = {
-        status: PENDING,
-        rootSegmentID: -1,
-        parentFlushed: !1,
-        pendingTasks: 0,
-        row: row,
-        completedSegments: [],
-        byteSize: 0,
-        fallbackAbortableTasks: fallbackAbortableTasks,
-        errorDigest: null,
-        contentState: createHoistableState(),
-        fallbackState: createHoistableState(),
-        contentPreamble: contentPreamble,
-        fallbackPreamble: fallbackPreamble,
-        trackedContentKeyPath: null,
-        trackedFallbackNode: null,
-        errorMessage: null,
-        errorStack: null,
-        errorComponentStack: null
-      };
-      null !== row &&
-        (row.pendingTasks++,
-        (contentPreamble = row.boundaries),
-        null !== contentPreamble &&
-          (request.allPendingTasks++,
-          fallbackAbortableTasks.pendingTasks++,
-          contentPreamble.push(fallbackAbortableTasks)),
-        (request = row.inheritedHoistables),
-        null !== request &&
-          hoistHoistables(fallbackAbortableTasks.contentState, request));
-      return fallbackAbortableTasks;
-    }
-    function createRenderTask(
-      request,
-      thenableState,
-      node,
-      childIndex,
-      blockedBoundary,
-      blockedSegment,
-      blockedPreamble,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      var task = {
-        replay: null,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: blockedSegment,
-        blockedPreamble: blockedPreamble,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createReplayTask(
-      request,
-      thenableState,
-      replay,
-      node,
-      childIndex,
-      blockedBoundary,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      replay.pendingTasks++;
-      var task = {
-        replay: replay,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: null,
-        blockedPreamble: null,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createPendingSegment(
-      request,
-      index,
-      boundary,
-      parentFormatContext,
-      lastPushedText,
-      textEmbedded
-    ) {
-      return {
-        status: PENDING,
-        parentFlushed: !1,
-        id: -1,
-        index: index,
-        chunks: [],
-        children: [],
-        preambleChildren: [],
-        parentFormatContext: parentFormatContext,
-        boundary: boundary,
-        lastPushedText: lastPushedText,
-        textEmbedded: textEmbedded
-      };
-    }
-    function getCurrentStackInDEV() {
-      if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-        return "";
-      var componentStack = currentTaskInDEV.componentStack;
-      try {
-        var info = "";
-        if ("string" === typeof componentStack.type)
-          info += describeBuiltInComponentFrame(componentStack.type);
-        else if ("function" === typeof componentStack.type) {
-          if (!componentStack.owner) {
-            var JSCompiler_temp_const = info,
-              fn = componentStack.type,
-              name = fn ? fn.displayName || fn.name : "";
-            var JSCompiler_inline_result = name
-              ? describeBuiltInComponentFrame(name)
-              : "";
-            info = JSCompiler_temp_const + JSCompiler_inline_result;
-          }
-        } else
-          componentStack.owner ||
-            (info += describeComponentStackByType(componentStack.type));
-        for (; componentStack; )
-          (JSCompiler_temp_const = null),
-            null != componentStack.debugStack
-              ? (JSCompiler_temp_const = formatOwnerStack(
-                  componentStack.debugStack
-                ))
-              : ((JSCompiler_inline_result = componentStack),
-                null != JSCompiler_inline_result.stack &&
-                  (JSCompiler_temp_const =
-                    "string" !== typeof JSCompiler_inline_result.stack
-                      ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                          JSCompiler_inline_result.stack
-                        ))
-                      : JSCompiler_inline_result.stack)),
-            (componentStack = componentStack.owner) &&
-              JSCompiler_temp_const &&
-              (info += "\n" + JSCompiler_temp_const);
-        var JSCompiler_inline_result$jscomp$0 = info;
-      } catch (x) {
-        JSCompiler_inline_result$jscomp$0 =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result$jscomp$0;
-    }
-    function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--) {
-          var info = debugInfo[i];
-          if ("string" === typeof info.name) break;
-          if ("number" === typeof info.time) break;
-          if (null != info.awaited) {
-            var bestStack = null == info.debugStack ? info.awaited : info;
-            if (void 0 !== bestStack.debugStack) {
-              task.componentStack = {
-                parent: task.componentStack,
-                type: info,
-                owner: bestStack.owner,
-                stack: bestStack.debugStack
-              };
-              task.debugTask = bestStack.debugTask;
-              break;
-            }
-          }
-        }
-    }
-    function pushServerComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var componentInfo = debugInfo[i];
-          "string" === typeof componentInfo.name &&
-            void 0 !== componentInfo.debugStack &&
-            ((task.componentStack = {
-              parent: task.componentStack,
-              type: componentInfo,
-              owner: componentInfo.owner,
-              stack: componentInfo.debugStack
-            }),
-            (task.debugTask = componentInfo.debugTask));
-        }
-    }
-    function pushComponentStack(task) {
-      var node = task.node;
-      if ("object" === typeof node && null !== node)
-        switch (node.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-            var type = node.type,
-              owner = node._owner,
-              stack = node._debugStack;
-            pushServerComponentStack(task, node._debugInfo);
-            task.debugTask = node._debugTask;
-            task.componentStack = {
-              parent: task.componentStack,
-              type: type,
-              owner: owner,
-              stack: stack
-            };
-            break;
-          case REACT_LAZY_TYPE:
-            pushServerComponentStack(task, node._debugInfo);
-            break;
-          default:
-            "function" === typeof node.then &&
-              pushServerComponentStack(task, node._debugInfo);
-        }
-    }
-    function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-      componentStack
-    ) {
-      return null === componentStack
-        ? null
-        : {
-            parent: componentStack.parent,
-            type: "Suspense Fallback",
-            owner: componentStack.owner,
-            stack: componentStack.stack
-          };
-    }
-    function getThrownInfo(node$jscomp$0) {
-      var errorInfo = {};
-      node$jscomp$0 &&
-        Object.defineProperty(errorInfo, "componentStack", {
-          configurable: !0,
-          enumerable: !0,
-          get: function () {
-            try {
-              var info = "",
-                node = node$jscomp$0;
-              do
-                (info += describeComponentStackByType(node.type)),
-                  (node = node.parent);
-              while (node);
-              var stack = info;
-            } catch (x) {
-              stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-            }
-            Object.defineProperty(errorInfo, "componentStack", {
-              value: stack
-            });
-            return stack;
-          }
-        });
-      return errorInfo;
-    }
-    function encodeErrorForBoundary(
-      boundary,
-      digest,
-      error,
-      thrownInfo,
-      wasAborted
-    ) {
-      boundary.errorDigest = digest;
-      error instanceof Error
-        ? ((digest = String(error.message)), (error = String(error.stack)))
-        : ((digest =
-            "object" === typeof error && null !== error
-              ? describeObjectForErrorMessage(error)
-              : String(error)),
-          (error = null));
-      wasAborted = wasAborted
-        ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-        : "Switched to client rendering because the server rendering errored:\n\n";
-      boundary.errorMessage = wasAborted + digest;
-      boundary.errorStack = null !== error ? wasAborted + error : null;
-      boundary.errorComponentStack = thrownInfo.componentStack;
-    }
-    function logRecoverableError(request, error, errorInfo, debugTask) {
-      request = request.onError;
-      error = debugTask
-        ? debugTask.run(request.bind(null, error, errorInfo))
-        : request(error, errorInfo);
-      if (null != error && "string" !== typeof error)
-        console.error(
-          'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-          typeof error
-        );
-      else return error;
-    }
-    function fatalError(request, error, errorInfo, debugTask) {
-      errorInfo = request.onShellError;
-      var onFatalError = request.onFatalError;
-      debugTask
-        ? (debugTask.run(errorInfo.bind(null, error)),
-          debugTask.run(onFatalError.bind(null, error)))
-        : (errorInfo(error), onFatalError(error));
-      null !== request.destination
-        ? ((request.status = CLOSED), request.destination.destroy(error))
-        : ((request.status = 13), (request.fatalError = error));
-    }
-    function finishSuspenseListRow(request, row) {
-      unblockSuspenseListRow(request, row.next, row.hoistables);
-    }
-    function unblockSuspenseListRow(
-      request,
-      unblockedRow,
-      inheritedHoistables
-    ) {
-      for (; null !== unblockedRow; ) {
-        null !== inheritedHoistables &&
-          (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-          (unblockedRow.inheritedHoistables = inheritedHoistables));
-        var unblockedBoundaries = unblockedRow.boundaries;
-        if (null !== unblockedBoundaries) {
-          unblockedRow.boundaries = null;
-          for (var i = 0; i < unblockedBoundaries.length; i++) {
-            var unblockedBoundary = unblockedBoundaries[i];
-            null !== inheritedHoistables &&
-              hoistHoistables(
-                unblockedBoundary.contentState,
-                inheritedHoistables
-              );
-            finishedTask(request, unblockedBoundary, null, null);
-          }
-        }
-        unblockedRow.pendingTasks--;
-        if (0 < unblockedRow.pendingTasks) break;
-        inheritedHoistables = unblockedRow.hoistables;
-        unblockedRow = unblockedRow.next;
-      }
-    }
-    function tryToResolveTogetherRow(request, togetherRow) {
-      var boundaries = togetherRow.boundaries;
-      if (
-        null !== boundaries &&
-        togetherRow.pendingTasks === boundaries.length
-      ) {
-        for (
-          var allCompleteAndInlinable = !0, i = 0;
-          i < boundaries.length;
-          i++
-        ) {
-          var rowBoundary = boundaries[i];
-          if (
-            1 !== rowBoundary.pendingTasks ||
-            rowBoundary.parentFlushed ||
-            isEligibleForOutlining(request, rowBoundary)
-          ) {
-            allCompleteAndInlinable = !1;
-            break;
-          }
-        }
-        allCompleteAndInlinable &&
-          unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-      }
-    }
-    function createSuspenseListRow(previousRow) {
-      var newRow = {
-        pendingTasks: 1,
-        boundaries: null,
-        hoistables: createHoistableState(),
-        inheritedHoistables: null,
-        together: !1,
-        next: null
-      };
-      null !== previousRow &&
-        0 < previousRow.pendingTasks &&
-        (newRow.pendingTasks++,
-        (newRow.boundaries = []),
-        (previousRow.next = newRow));
-      return newRow;
-    }
-    function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-      var prevKeyPath = task.keyPath,
-        prevTreeContext = task.treeContext,
-        prevRow = task.row,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node.props.children._debugInfo);
-      task.keyPath = keyPath;
-      keyPath = rows.length;
-      var previousSuspenseListRow = null;
-      if (null !== task.replay) {
-        var resumeSlots = task.replay.slots;
-        if (null !== resumeSlots && "object" === typeof resumeSlots)
-          for (var n = 0; n < keyPath; n++) {
-            var i =
-                "backwards" !== revealOrder &&
-                "unstable_legacy-backwards" !== revealOrder
-                  ? n
-                  : keyPath - 1 - n,
-              node = rows[i];
-            task.row = previousSuspenseListRow = createSuspenseListRow(
-              previousSuspenseListRow
-            );
-            task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-            var resumeSegmentID = resumeSlots[i];
-            "number" === typeof resumeSegmentID
-              ? (resumeNode(request, task, resumeSegmentID, node, i),
-                delete resumeSlots[i])
-              : renderNode(request, task, node, i);
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-          }
-        else
-          for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-            (n =
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder
-                ? resumeSlots
-                : keyPath - 1 - resumeSlots),
-              (i = rows[n]),
-              warnForMissingKey(request, task, i),
-              (task.row = previousSuspenseListRow =
-                createSuspenseListRow(previousSuspenseListRow)),
-              (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-              renderNode(request, task, i, n),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-      } else if (
-        "backwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder
-      )
-        for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-          (resumeSlots = rows[revealOrder]),
-            warnForMissingKey(request, task, resumeSlots),
-            (task.row = previousSuspenseListRow =
-              createSuspenseListRow(previousSuspenseListRow)),
-            (task.treeContext = pushTreeContext(
-              prevTreeContext,
-              keyPath,
-              revealOrder
-            )),
-            renderNode(request, task, resumeSlots, revealOrder),
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-      else {
-        revealOrder = task.blockedSegment;
-        resumeSlots = revealOrder.children.length;
-        n = revealOrder.chunks.length;
-        for (i = keyPath - 1; 0 <= i; i--) {
-          node = rows[i];
-          task.row = previousSuspenseListRow = createSuspenseListRow(
-            previousSuspenseListRow
-          );
-          task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-          resumeSegmentID = createPendingSegment(
-            request,
-            n,
-            null,
-            task.formatContext,
-            0 === i ? revealOrder.lastPushedText : !0,
-            !0
-          );
-          revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-          task.blockedSegment = resumeSegmentID;
-          warnForMissingKey(request, task, node);
-          try {
-            renderNode(request, task, node, i),
-              pushSegmentFinale(
-                resumeSegmentID.chunks,
-                request.renderState,
-                resumeSegmentID.lastPushedText,
-                resumeSegmentID.textEmbedded
-              ),
-              (resumeSegmentID.status = COMPLETED),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-          } catch (thrownValue) {
-            throw (
-              ((resumeSegmentID.status =
-                12 === request.status ? ABORTED : ERRORED),
-              thrownValue)
-            );
-          }
-        }
-        task.blockedSegment = revealOrder;
-        revealOrder.lastPushedText = !1;
-      }
-      null !== prevRow &&
-        null !== previousSuspenseListRow &&
-        0 < previousSuspenseListRow.pendingTasks &&
-        (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-      task.treeContext = prevTreeContext;
-      task.row = prevRow;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function renderWithHooks(
-      request,
-      task,
-      keyPath,
-      Component,
-      props,
-      secondArg
-    ) {
-      var prevThenableState = task.thenableState;
-      task.thenableState = null;
-      currentlyRenderingComponent = {};
-      currentlyRenderingTask = task;
-      currentlyRenderingRequest = request;
-      currentlyRenderingKeyPath = keyPath;
-      isInHookUserCodeInDev = !1;
-      actionStateCounter = localIdCounter = 0;
-      actionStateMatchingIndex = -1;
-      thenableIndexCounter = 0;
-      thenableState = prevThenableState;
-      for (
-        request = callComponentInDEV(Component, props, secondArg);
-        didScheduleRenderPhaseUpdate;
-
-      )
-        (didScheduleRenderPhaseUpdate = !1),
-          (actionStateCounter = localIdCounter = 0),
-          (actionStateMatchingIndex = -1),
-          (thenableIndexCounter = 0),
-          (numberOfReRenders += 1),
-          (workInProgressHook = null),
-          (request = Component(props, secondArg));
-      resetHooksState();
-      return request;
-    }
-    function finishFunctionComponent(
-      request,
-      task,
-      keyPath,
-      children,
-      hasId,
-      actionStateCount,
-      actionStateMatchingIndex
-    ) {
-      var didEmitActionStateMarkers = !1;
-      if (0 !== actionStateCount && null !== request.formState) {
-        var segment = task.blockedSegment;
-        if (null !== segment) {
-          didEmitActionStateMarkers = !0;
-          segment = segment.chunks;
-          for (var i = 0; i < actionStateCount; i++)
-            i === actionStateMatchingIndex
-              ? segment.push("\x3c!--F!--\x3e")
-              : segment.push("\x3c!--F--\x3e");
-        }
-      }
-      actionStateCount = task.keyPath;
-      task.keyPath = keyPath;
-      hasId
-        ? ((keyPath = task.treeContext),
-          (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-          renderNode(request, task, children, -1),
-          (task.treeContext = keyPath))
-        : didEmitActionStateMarkers
-          ? renderNode(request, task, children, -1)
-          : renderNodeDestructive(request, task, children, -1);
-      task.keyPath = actionStateCount;
-    }
-    function renderElement(request, task, keyPath, type, props, ref) {
-      if ("function" === typeof type)
-        if (type.prototype && type.prototype.isReactComponent) {
-          var newProps = props;
-          if ("ref" in props) {
-            newProps = {};
-            for (var propName in props)
-              "ref" !== propName && (newProps[propName] = props[propName]);
-          }
-          var defaultProps = type.defaultProps;
-          if (defaultProps) {
-            newProps === props && (newProps = assign({}, newProps, props));
-            for (var _propName in defaultProps)
-              void 0 === newProps[_propName] &&
-                (newProps[_propName] = defaultProps[_propName]);
-          }
-          var resolvedProps = newProps;
-          var context = emptyContextObject,
-            contextType = type.contextType;
-          if (
-            "contextType" in type &&
-            null !== contextType &&
-            (void 0 === contextType ||
-              contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-            !didWarnAboutInvalidateContextType.has(type)
-          ) {
-            didWarnAboutInvalidateContextType.add(type);
-            var addendum =
-              void 0 === contextType
-                ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-                : "object" !== typeof contextType
-                  ? " However, it is set to a " + typeof contextType + "."
-                  : contextType.$$typeof === REACT_CONSUMER_TYPE
-                    ? " Did you accidentally pass the Context.Consumer instead?"
-                    : " However, it is set to an object with keys {" +
-                      Object.keys(contextType).join(", ") +
-                      "}.";
-            console.error(
-              "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-              getComponentNameFromType(type) || "Component",
-              addendum
-            );
-          }
-          "object" === typeof contextType &&
-            null !== contextType &&
-            (context = contextType._currentValue2);
-          var instance = new type(resolvedProps, context);
-          if (
-            "function" === typeof type.getDerivedStateFromProps &&
-            (null === instance.state || void 0 === instance.state)
-          ) {
-            var componentName = getComponentNameFromType(type) || "Component";
-            didWarnAboutUninitializedState.has(componentName) ||
-              (didWarnAboutUninitializedState.add(componentName),
-              console.error(
-                "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-                componentName,
-                null === instance.state ? "null" : "undefined",
-                componentName
-              ));
-          }
-          if (
-            "function" === typeof type.getDerivedStateFromProps ||
-            "function" === typeof instance.getSnapshotBeforeUpdate
-          ) {
-            var foundWillMountName = null,
-              foundWillReceivePropsName = null,
-              foundWillUpdateName = null;
-            "function" === typeof instance.componentWillMount &&
-            !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ? (foundWillMountName = "componentWillMount")
-              : "function" === typeof instance.UNSAFE_componentWillMount &&
-                (foundWillMountName = "UNSAFE_componentWillMount");
-            "function" === typeof instance.componentWillReceiveProps &&
-            !0 !==
-              instance.componentWillReceiveProps.__suppressDeprecationWarning
-              ? (foundWillReceivePropsName = "componentWillReceiveProps")
-              : "function" ===
-                  typeof instance.UNSAFE_componentWillReceiveProps &&
-                (foundWillReceivePropsName =
-                  "UNSAFE_componentWillReceiveProps");
-            "function" === typeof instance.componentWillUpdate &&
-            !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-              ? (foundWillUpdateName = "componentWillUpdate")
-              : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-                (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-            if (
-              null !== foundWillMountName ||
-              null !== foundWillReceivePropsName ||
-              null !== foundWillUpdateName
-            ) {
-              var _componentName =
-                  getComponentNameFromType(type) || "Component",
-                newApiName =
-                  "function" === typeof type.getDerivedStateFromProps
-                    ? "getDerivedStateFromProps()"
-                    : "getSnapshotBeforeUpdate()";
-              didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-                (didWarnAboutLegacyLifecyclesAndDerivedState.add(
-                  _componentName
-                ),
-                console.error(
-                  "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                  _componentName,
-                  newApiName,
-                  null !== foundWillMountName
-                    ? "\n  " + foundWillMountName
-                    : "",
-                  null !== foundWillReceivePropsName
-                    ? "\n  " + foundWillReceivePropsName
-                    : "",
-                  null !== foundWillUpdateName
-                    ? "\n  " + foundWillUpdateName
-                    : ""
-                ));
-            }
-          }
-          var name = getComponentNameFromType(type) || "Component";
-          instance.render ||
-            (type.prototype && "function" === typeof type.prototype.render
-              ? console.error(
-                  "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                  name
-                )
-              : console.error(
-                  "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                  name
-                ));
-          !instance.getInitialState ||
-            instance.getInitialState.isReactClassApproved ||
-            instance.state ||
-            console.error(
-              "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-              name
-            );
-          instance.getDefaultProps &&
-            !instance.getDefaultProps.isReactClassApproved &&
-            console.error(
-              "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-              name
-            );
-          instance.contextType &&
-            console.error(
-              "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-              name
-            );
-          type.childContextTypes &&
-            !didWarnAboutChildContextTypes.has(type) &&
-            (didWarnAboutChildContextTypes.add(type),
-            console.error(
-              "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          type.contextTypes &&
-            !didWarnAboutContextTypes$1.has(type) &&
-            (didWarnAboutContextTypes$1.add(type),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          "function" === typeof instance.componentShouldUpdate &&
-            console.error(
-              "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-              name
-            );
-          type.prototype &&
-            type.prototype.isPureReactComponent &&
-            "undefined" !== typeof instance.shouldComponentUpdate &&
-            console.error(
-              "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-              getComponentNameFromType(type) || "A pure component"
-            );
-          "function" === typeof instance.componentDidUnmount &&
-            console.error(
-              "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-              name
-            );
-          "function" === typeof instance.componentDidReceiveProps &&
-            console.error(
-              "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-              name
-            );
-          "function" === typeof instance.componentWillRecieveProps &&
-            console.error(
-              "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-              name
-            );
-          "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-            console.error(
-              "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-              name
-            );
-          var hasMutatedProps = instance.props !== resolvedProps;
-          void 0 !== instance.props &&
-            hasMutatedProps &&
-            console.error(
-              "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-              name
-            );
-          instance.defaultProps &&
-            console.error(
-              "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-              name,
-              name
-            );
-          "function" !== typeof instance.getSnapshotBeforeUpdate ||
-            "function" === typeof instance.componentDidUpdate ||
-            didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-            (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-            console.error(
-              "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-              getComponentNameFromType(type)
-            ));
-          "function" === typeof instance.getDerivedStateFromProps &&
-            console.error(
-              "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof instance.getDerivedStateFromError &&
-            console.error(
-              "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof type.getSnapshotBeforeUpdate &&
-            console.error(
-              "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-              name
-            );
-          var state = instance.state;
-          state &&
-            ("object" !== typeof state || isArrayImpl(state)) &&
-            console.error("%s.state: must be set to an object or null", name);
-          "function" === typeof instance.getChildContext &&
-            "object" !== typeof type.childContextTypes &&
-            console.error(
-              "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-              name
-            );
-          var initialState = void 0 !== instance.state ? instance.state : null;
-          instance.updater = classComponentUpdater;
-          instance.props = resolvedProps;
-          instance.state = initialState;
-          var internalInstance = { queue: [], replace: !1 };
-          instance._reactInternals = internalInstance;
-          var contextType$jscomp$0 = type.contextType;
-          instance.context =
-            "object" === typeof contextType$jscomp$0 &&
-            null !== contextType$jscomp$0
-              ? contextType$jscomp$0._currentValue2
-              : emptyContextObject;
-          if (instance.state === resolvedProps) {
-            var componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Component";
-            didWarnAboutDirectlyAssigningPropsToState.has(
-              componentName$jscomp$0
-            ) ||
-              (didWarnAboutDirectlyAssigningPropsToState.add(
-                componentName$jscomp$0
-              ),
-              console.error(
-                "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-                componentName$jscomp$0
-              ));
-          }
-          var getDerivedStateFromProps = type.getDerivedStateFromProps;
-          if ("function" === typeof getDerivedStateFromProps) {
-            var partialState = getDerivedStateFromProps(
-              resolvedProps,
-              initialState
-            );
-            if (void 0 === partialState) {
-              var componentName$jscomp$1 =
-                getComponentNameFromType(type) || "Component";
-              didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-                (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-                console.error(
-                  "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-                  componentName$jscomp$1
-                ));
-            }
-            var JSCompiler_inline_result =
-              null === partialState || void 0 === partialState
-                ? initialState
-                : assign({}, initialState, partialState);
-            instance.state = JSCompiler_inline_result;
-          }
-          if (
-            "function" !== typeof type.getDerivedStateFromProps &&
-            "function" !== typeof instance.getSnapshotBeforeUpdate &&
-            ("function" === typeof instance.UNSAFE_componentWillMount ||
-              "function" === typeof instance.componentWillMount)
-          ) {
-            var oldState = instance.state;
-            if ("function" === typeof instance.componentWillMount) {
-              if (
-                !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ) {
-                var componentName$jscomp$2 =
-                  getComponentNameFromType(type) || "Unknown";
-                didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-                  (console.warn(
-                    "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                    componentName$jscomp$2
-                  ),
-                  (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] =
-                    !0));
-              }
-              instance.componentWillMount();
-            }
-            "function" === typeof instance.UNSAFE_componentWillMount &&
-              instance.UNSAFE_componentWillMount();
-            oldState !== instance.state &&
-              (console.error(
-                "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-                getComponentNameFromType(type) || "Component"
-              ),
-              classComponentUpdater.enqueueReplaceState(
-                instance,
-                instance.state,
-                null
-              ));
-            if (
-              null !== internalInstance.queue &&
-              0 < internalInstance.queue.length
-            ) {
-              var oldQueue = internalInstance.queue,
-                oldReplace = internalInstance.replace;
-              internalInstance.queue = null;
-              internalInstance.replace = !1;
-              if (oldReplace && 1 === oldQueue.length)
-                instance.state = oldQueue[0];
-              else {
-                for (
-                  var nextState = oldReplace ? oldQueue[0] : instance.state,
-                    dontMutate = !0,
-                    i = oldReplace ? 1 : 0;
-                  i < oldQueue.length;
-                  i++
-                ) {
-                  var partial = oldQueue[i],
-                    partialState$jscomp$0 =
-                      "function" === typeof partial
-                        ? partial.call(
-                            instance,
-                            nextState,
-                            resolvedProps,
-                            void 0
-                          )
-                        : partial;
-                  null != partialState$jscomp$0 &&
-                    (dontMutate
-                      ? ((dontMutate = !1),
-                        (nextState = assign(
-                          {},
-                          nextState,
-                          partialState$jscomp$0
-                        )))
-                      : assign(nextState, partialState$jscomp$0));
-                }
-                instance.state = nextState;
-              }
-            } else internalInstance.queue = null;
-          }
-          var nextChildren = callRenderInDEV(instance);
-          if (12 === request.status) throw null;
-          instance.props !== resolvedProps &&
-            (didWarnAboutReassigningProps ||
-              console.error(
-                "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-                getComponentNameFromType(type) || "a component"
-              ),
-            (didWarnAboutReassigningProps = !0));
-          var prevKeyPath = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, nextChildren, -1);
-          task.keyPath = prevKeyPath;
-        } else {
-          if (type.prototype && "function" === typeof type.prototype.render) {
-            var componentName$jscomp$3 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutBadClass[componentName$jscomp$3] ||
-              (console.error(
-                "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-                componentName$jscomp$3,
-                componentName$jscomp$3
-              ),
-              (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-          }
-          var value = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type,
-            props,
-            void 0
-          );
-          if (12 === request.status) throw null;
-          var hasId = 0 !== localIdCounter,
-            actionStateCount = actionStateCounter,
-            actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-          if (type.contextTypes) {
-            var _componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypes[_componentName$jscomp$0] ||
-              ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-              console.error(
-                "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-                _componentName$jscomp$0
-              ));
-          }
-          type &&
-            type.childContextTypes &&
-            console.error(
-              "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-              type.displayName || type.name || "Component"
-            );
-          if ("function" === typeof type.getDerivedStateFromProps) {
-            var componentName$jscomp$4 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutGetDerivedStateOnFunctionComponent[
-              componentName$jscomp$4
-            ] ||
-              (console.error(
-                "%s: Function components do not support getDerivedStateFromProps.",
-                componentName$jscomp$4
-              ),
-              (didWarnAboutGetDerivedStateOnFunctionComponent[
-                componentName$jscomp$4
-              ] = !0));
-          }
-          if (
-            "object" === typeof type.contextType &&
-            null !== type.contextType
-          ) {
-            var _componentName2 = getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-              (console.error(
-                "%s: Function components do not support contextType.",
-                _componentName2
-              ),
-              (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
-                !0));
-          }
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            value,
-            hasId,
-            actionStateCount,
-            actionStateMatchingIndex$jscomp$0
-          );
-        }
-      else if ("string" === typeof type) {
-        var segment = task.blockedSegment;
-        if (null === segment) {
-          var children = props.children,
-            prevContext = task.formatContext,
-            prevKeyPath$jscomp$0 = task.keyPath;
-          task.formatContext = getChildFormatContext(prevContext, type, props);
-          task.keyPath = keyPath;
-          renderNode(request, task, children, -1);
-          task.formatContext = prevContext;
-          task.keyPath = prevKeyPath$jscomp$0;
-        } else {
-          var _children = pushStartInstance(
-            segment.chunks,
-            type,
-            props,
-            request.resumableState,
-            request.renderState,
-            task.blockedPreamble,
-            task.hoistableState,
-            task.formatContext,
-            segment.lastPushedText
-          );
-          segment.lastPushedText = !1;
-          var _prevContext2 = task.formatContext,
-            _prevKeyPath3 = task.keyPath;
-          task.keyPath = keyPath;
-          if (
-            (task.formatContext = getChildFormatContext(
-              _prevContext2,
-              type,
-              props
-            )).insertionMode === HTML_HEAD_MODE
-          ) {
-            var preambleSegment = createPendingSegment(
-              request,
-              0,
-              null,
-              task.formatContext,
-              !1,
-              !1
-            );
-            segment.preambleChildren.push(preambleSegment);
-            task.blockedSegment = preambleSegment;
-            try {
-              (preambleSegment.status = 6),
-                renderNode(request, task, _children, -1),
-                pushSegmentFinale(
-                  preambleSegment.chunks,
-                  request.renderState,
-                  preambleSegment.lastPushedText,
-                  preambleSegment.textEmbedded
-                ),
-                (preambleSegment.status = COMPLETED);
-            } finally {
-              task.blockedSegment = segment;
-            }
-          } else renderNode(request, task, _children, -1);
-          task.formatContext = _prevContext2;
-          task.keyPath = _prevKeyPath3;
-          a: {
-            var target = segment.chunks,
-              resumableState = request.resumableState;
-            switch (type) {
-              case "title":
-              case "style":
-              case "script":
-              case "area":
-              case "base":
-              case "br":
-              case "col":
-              case "embed":
-              case "hr":
-              case "img":
-              case "input":
-              case "keygen":
-              case "link":
-              case "meta":
-              case "param":
-              case "source":
-              case "track":
-              case "wbr":
-                break a;
-              case "body":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-                  resumableState.hasBody = !0;
-                  break a;
-                }
-                break;
-              case "html":
-                if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-                  resumableState.hasHtml = !0;
-                  break a;
-                }
-                break;
-              case "head":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-            }
-            target.push(endChunkForTag(type));
-          }
-          segment.lastPushedText = !1;
-        }
-      } else {
-        switch (type) {
-          case REACT_LEGACY_HIDDEN_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_FRAGMENT_TYPE:
-            var prevKeyPath$jscomp$1 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$1;
-            return;
-          case REACT_ACTIVITY_TYPE:
-            var segment$jscomp$0 = task.blockedSegment;
-            if (null === segment$jscomp$0) {
-              if ("hidden" !== props.mode) {
-                var prevKeyPath$jscomp$2 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNode(request, task, props.children, -1);
-                task.keyPath = prevKeyPath$jscomp$2;
-              }
-            } else if ("hidden" !== props.mode) {
-              request.renderState.generateStaticMarkup ||
-                segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
-              segment$jscomp$0.lastPushedText = !1;
-              var _prevKeyPath4 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNode(request, task, props.children, -1);
-              task.keyPath = _prevKeyPath4;
-              request.renderState.generateStaticMarkup ||
-                segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
-              segment$jscomp$0.lastPushedText = !1;
-            }
-            return;
-          case REACT_SUSPENSE_LIST_TYPE:
-            a: {
-              var children$jscomp$0 = props.children,
-                revealOrder = props.revealOrder;
-              if (
-                "forwards" === revealOrder ||
-                "backwards" === revealOrder ||
-                "unstable_legacy-backwards" === revealOrder
-              ) {
-                if (isArrayImpl(children$jscomp$0)) {
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                  break a;
-                }
-                var iteratorFn = getIteratorFn(children$jscomp$0);
-                if (iteratorFn) {
-                  var iterator = iteratorFn.call(children$jscomp$0);
-                  if (iterator) {
-                    validateIterable(
-                      task,
-                      children$jscomp$0,
-                      -1,
-                      iterator,
-                      iteratorFn
-                    );
-                    var step = iterator.next();
-                    if (!step.done) {
-                      var rows = [];
-                      do rows.push(step.value), (step = iterator.next());
-                      while (!step.done);
-                      renderSuspenseListRows(
-                        request,
-                        task,
-                        keyPath,
-                        children$jscomp$0,
-                        revealOrder
-                      );
-                    }
-                    break a;
-                  }
-                }
-              }
-              if ("together" === revealOrder) {
-                var _prevKeyPath2 = task.keyPath,
-                  prevRow = task.row,
-                  newRow = (task.row = createSuspenseListRow(null));
-                newRow.boundaries = [];
-                newRow.together = !0;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                0 === --newRow.pendingTasks &&
-                  finishSuspenseListRow(request, newRow);
-                task.keyPath = _prevKeyPath2;
-                task.row = prevRow;
-                null !== prevRow &&
-                  0 < newRow.pendingTasks &&
-                  (prevRow.pendingTasks++, (newRow.next = prevRow));
-              } else {
-                var prevKeyPath$jscomp$3 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                task.keyPath = prevKeyPath$jscomp$3;
-              }
-            }
-            return;
-          case REACT_VIEW_TRANSITION_TYPE:
-          case REACT_SCOPE_TYPE:
-            throw Error(
-              "ReactDOMServer does not yet support scope components."
-            );
-          case REACT_SUSPENSE_TYPE:
-            a: if (null !== task.replay) {
-              var _prevKeyPath = task.keyPath,
-                _prevContext = task.formatContext,
-                _prevRow = task.row;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                _prevContext
-              );
-              task.row = null;
-              var _content = props.children;
-              try {
-                renderNode(request, task, _content, -1);
-              } finally {
-                (task.keyPath = _prevKeyPath),
-                  (task.formatContext = _prevContext),
-                  (task.row = _prevRow);
-              }
-            } else {
-              var prevKeyPath$jscomp$4 = task.keyPath,
-                prevContext$jscomp$0 = task.formatContext,
-                prevRow$jscomp$0 = task.row,
-                parentBoundary = task.blockedBoundary,
-                parentPreamble = task.blockedPreamble,
-                parentHoistableState = task.hoistableState,
-                parentSegment = task.blockedSegment,
-                fallback = props.fallback,
-                content = props.children,
-                fallbackAbortSet = new Set();
-              var newBoundary = createSuspenseBoundary(
-                request,
-                task.row,
-                fallbackAbortSet,
-                null,
-                null
-              );
-              null !== request.trackedPostpones &&
-                (newBoundary.trackedContentKeyPath = keyPath);
-              var boundarySegment = createPendingSegment(
-                request,
-                parentSegment.chunks.length,
-                newBoundary,
-                task.formatContext,
-                !1,
-                !1
-              );
-              parentSegment.children.push(boundarySegment);
-              parentSegment.lastPushedText = !1;
-              var contentRootSegment = createPendingSegment(
-                request,
-                0,
-                null,
-                task.formatContext,
-                !1,
-                !1
-              );
-              contentRootSegment.parentFlushed = !0;
-              if (null !== request.trackedPostpones) {
-                var suspenseComponentStack = task.componentStack,
-                  fallbackKeyPath = [
-                    keyPath[0],
-                    "Suspense Fallback",
-                    keyPath[2]
-                  ],
-                  fallbackReplayNode = [
-                    fallbackKeyPath[1],
-                    fallbackKeyPath[2],
-                    [],
-                    null
-                  ];
-                request.trackedPostpones.workingMap.set(
-                  fallbackKeyPath,
-                  fallbackReplayNode
-                );
-                newBoundary.trackedFallbackNode = fallbackReplayNode;
-                task.blockedSegment = boundarySegment;
-                task.blockedPreamble = newBoundary.fallbackPreamble;
-                task.keyPath = fallbackKeyPath;
-                task.formatContext = getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.componentStack =
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    suspenseComponentStack
-                  );
-                boundarySegment.status = 6;
-                try {
-                  renderNode(request, task, fallback, -1),
-                    pushSegmentFinale(
-                      boundarySegment.chunks,
-                      request.renderState,
-                      boundarySegment.lastPushedText,
-                      boundarySegment.textEmbedded
-                    ),
-                    (boundarySegment.status = COMPLETED);
-                } catch (thrownValue) {
-                  throw (
-                    ((boundarySegment.status =
-                      12 === request.status ? ABORTED : ERRORED),
-                    thrownValue)
-                  );
-                } finally {
-                  (task.blockedSegment = parentSegment),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0);
-                }
-                var suspendedPrimaryTask = createRenderTask(
-                  request,
-                  null,
-                  content,
-                  -1,
-                  newBoundary,
-                  contentRootSegment,
-                  newBoundary.contentPreamble,
-                  newBoundary.contentState,
-                  task.abortSet,
-                  keyPath,
-                  getSuspenseContentFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  null,
-                  suspenseComponentStack,
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedPrimaryTask);
-                request.pingedTasks.push(suspendedPrimaryTask);
-              } else {
-                task.blockedBoundary = newBoundary;
-                task.blockedPreamble = newBoundary.contentPreamble;
-                task.hoistableState = newBoundary.contentState;
-                task.blockedSegment = contentRootSegment;
-                task.keyPath = keyPath;
-                task.formatContext = getSuspenseContentFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.row = null;
-                contentRootSegment.status = 6;
-                try {
-                  if (
-                    (renderNode(request, task, content, -1),
-                    pushSegmentFinale(
-                      contentRootSegment.chunks,
-                      request.renderState,
-                      contentRootSegment.lastPushedText,
-                      contentRootSegment.textEmbedded
-                    ),
-                    (contentRootSegment.status = COMPLETED),
-                    queueCompletedSegment(newBoundary, contentRootSegment),
-                    0 === newBoundary.pendingTasks &&
-                      newBoundary.status === PENDING)
-                  ) {
-                    if (
-                      ((newBoundary.status = COMPLETED),
-                      !isEligibleForOutlining(request, newBoundary))
-                    ) {
-                      null !== prevRow$jscomp$0 &&
-                        0 === --prevRow$jscomp$0.pendingTasks &&
-                        finishSuspenseListRow(request, prevRow$jscomp$0);
-                      0 === request.pendingRootTasks &&
-                        task.blockedPreamble &&
-                        preparePreamble(request);
-                      break a;
-                    }
-                  } else
-                    null !== prevRow$jscomp$0 &&
-                      prevRow$jscomp$0.together &&
-                      tryToResolveTogetherRow(request, prevRow$jscomp$0);
-                } catch (thrownValue$2) {
-                  newBoundary.status = CLIENT_RENDERED;
-                  if (12 === request.status) {
-                    contentRootSegment.status = ABORTED;
-                    var error = request.fatalError;
-                  } else
-                    (contentRootSegment.status = ERRORED),
-                      (error = thrownValue$2);
-                  var thrownInfo = getThrownInfo(task.componentStack);
-                  var errorDigest = logRecoverableError(
-                    request,
-                    error,
-                    thrownInfo,
-                    task.debugTask
-                  );
-                  encodeErrorForBoundary(
-                    newBoundary,
-                    errorDigest,
-                    error,
-                    thrownInfo,
-                    !1
-                  );
-                  untrackBoundary(request, newBoundary);
-                } finally {
-                  (task.blockedBoundary = parentBoundary),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.hoistableState = parentHoistableState),
-                    (task.blockedSegment = parentSegment),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0),
-                    (task.row = prevRow$jscomp$0);
-                }
-                var suspendedFallbackTask = createRenderTask(
-                  request,
-                  null,
-                  fallback,
-                  -1,
-                  parentBoundary,
-                  boundarySegment,
-                  newBoundary.fallbackPreamble,
-                  newBoundary.fallbackState,
-                  fallbackAbortSet,
-                  [keyPath[0], "Suspense Fallback", keyPath[2]],
-                  getSuspenseFallbackFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  task.row,
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    task.componentStack
-                  ),
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedFallbackTask);
-                request.pingedTasks.push(suspendedFallbackTask);
-              }
-            }
-            return;
-        }
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_FORWARD_REF_TYPE:
-              if ("ref" in props) {
-                var propsWithoutRef = {};
-                for (var key in props)
-                  "ref" !== key && (propsWithoutRef[key] = props[key]);
-              } else propsWithoutRef = props;
-              var children$jscomp$1 = renderWithHooks(
-                request,
-                task,
-                keyPath,
-                type.render,
-                propsWithoutRef,
-                ref
-              );
-              finishFunctionComponent(
-                request,
-                task,
-                keyPath,
-                children$jscomp$1,
-                0 !== localIdCounter,
-                actionStateCounter,
-                actionStateMatchingIndex
-              );
-              return;
-            case REACT_MEMO_TYPE:
-              renderElement(request, task, keyPath, type.type, props, ref);
-              return;
-            case REACT_CONTEXT_TYPE:
-              var value$jscomp$0 = props.value,
-                children$jscomp$2 = props.children;
-              var prevSnapshot = task.context;
-              var prevKeyPath$jscomp$5 = task.keyPath;
-              var prevValue = type._currentValue2;
-              type._currentValue2 = value$jscomp$0;
-              void 0 !== type._currentRenderer2 &&
-                null !== type._currentRenderer2 &&
-                type._currentRenderer2 !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer2 = rendererSigil;
-              var prevNode = currentActiveSnapshot,
-                newNode = {
-                  parent: prevNode,
-                  depth: null === prevNode ? 0 : prevNode.depth + 1,
-                  context: type,
-                  parentValue: prevValue,
-                  value: value$jscomp$0
-                };
-              currentActiveSnapshot = newNode;
-              task.context = newNode;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, children$jscomp$2, -1);
-              var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-              if (null === prevSnapshot$jscomp$0)
-                throw Error(
-                  "Tried to pop a Context at the root of the app. This is a bug in React."
-                );
-              prevSnapshot$jscomp$0.context !== type &&
-                console.error(
-                  "The parent context is not the expected context. This is probably a bug in React."
-                );
-              prevSnapshot$jscomp$0.context._currentValue2 =
-                prevSnapshot$jscomp$0.parentValue;
-              void 0 !== type._currentRenderer2 &&
-                null !== type._currentRenderer2 &&
-                type._currentRenderer2 !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer2 = rendererSigil;
-              var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-                prevSnapshot$jscomp$0.parent);
-              task.context = JSCompiler_inline_result$jscomp$0;
-              task.keyPath = prevKeyPath$jscomp$5;
-              prevSnapshot !== task.context &&
-                console.error(
-                  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-                );
-              return;
-            case REACT_CONSUMER_TYPE:
-              var context$jscomp$0 = type._context,
-                render = props.children;
-              "function" !== typeof render &&
-                console.error(
-                  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-                );
-              var newChildren = render(context$jscomp$0._currentValue2),
-                prevKeyPath$jscomp$6 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, newChildren, -1);
-              task.keyPath = prevKeyPath$jscomp$6;
-              return;
-            case REACT_LAZY_TYPE:
-              var Component = callLazyInitInDEV(type);
-              if (12 === request.status) throw null;
-              renderElement(request, task, keyPath, Component, props, ref);
-              return;
-          }
-        var info = "";
-        if (
-          void 0 === type ||
-          ("object" === typeof type &&
-            null !== type &&
-            0 === Object.keys(type).length)
-        )
-          info +=
-            " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-        throw Error(
-          "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-            ((null == type ? type : typeof type) + "." + info)
-        );
-      }
-    }
-    function resumeNode(request, task, segmentId, node, childIndex) {
-      var prevReplay = task.replay,
-        blockedBoundary = task.blockedBoundary,
-        resumedSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-      resumedSegment.id = segmentId;
-      resumedSegment.parentFlushed = !0;
-      try {
-        (task.replay = null),
-          (task.blockedSegment = resumedSegment),
-          renderNode(request, task, node, childIndex),
-          (resumedSegment.status = COMPLETED),
-          null === blockedBoundary
-            ? (request.completedRootSegment = resumedSegment)
-            : (queueCompletedSegment(blockedBoundary, resumedSegment),
-              blockedBoundary.parentFlushed &&
-                request.partialBoundaries.push(blockedBoundary));
-      } finally {
-        (task.replay = prevReplay), (task.blockedSegment = null);
-      }
-    }
-    function replayElement(
-      request,
-      task,
-      keyPath,
-      name,
-      keyOrIndex,
-      childIndex,
-      type,
-      props,
-      ref,
-      replay
-    ) {
-      childIndex = replay.nodes;
-      for (var i = 0; i < childIndex.length; i++) {
-        var node = childIndex[i];
-        if (keyOrIndex === node[1]) {
-          if (4 === node.length) {
-            if (null !== name && name !== node[0])
-              throw Error(
-                "Expected the resume to render <" +
-                  node[0] +
-                  "> in this slot but instead it rendered <" +
-                  name +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            var childNodes = node[2];
-            name = node[3];
-            keyOrIndex = task.node;
-            task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-            try {
-              renderElement(request, task, keyPath, type, props, ref);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw (
-                  (task.node === keyOrIndex
-                    ? (task.replay = replay)
-                    : childIndex.splice(i, 1),
-                  x)
-                );
-              task.replay.pendingTasks--;
-              type = getThrownInfo(task.componentStack);
-              props = request;
-              request = task.blockedBoundary;
-              keyPath = x;
-              ref = name;
-              name = logRecoverableError(props, keyPath, type, task.debugTask);
-              abortRemainingReplayNodes(
-                props,
-                request,
-                childNodes,
-                ref,
-                keyPath,
-                name,
-                type,
-                !1
-              );
-            }
-            task.replay = replay;
-          } else {
-            if (type !== REACT_SUSPENSE_TYPE)
-              throw Error(
-                "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                  (getComponentNameFromType(type) || "Unknown") +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            a: {
-              replay = void 0;
-              name = node[5];
-              type = node[2];
-              ref = node[3];
-              keyOrIndex = null === node[4] ? [] : node[4][2];
-              node = null === node[4] ? null : node[4][3];
-              var prevKeyPath = task.keyPath,
-                prevContext = task.formatContext,
-                prevRow = task.row,
-                previousReplaySet = task.replay,
-                parentBoundary = task.blockedBoundary,
-                parentHoistableState = task.hoistableState,
-                content = props.children,
-                fallback = props.fallback,
-                fallbackAbortSet = new Set();
-              props = createSuspenseBoundary(
-                request,
-                task.row,
-                fallbackAbortSet,
-                null,
-                null
-              );
-              props.parentFlushed = !0;
-              props.rootSegmentID = name;
-              task.blockedBoundary = props;
-              task.hoistableState = props.contentState;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                prevContext
-              );
-              task.row = null;
-              task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-              try {
-                renderNode(request, task, content, -1);
-                if (
-                  1 === task.replay.pendingTasks &&
-                  0 < task.replay.nodes.length
-                )
-                  throw Error(
-                    "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                  );
-                task.replay.pendingTasks--;
-                if (0 === props.pendingTasks && props.status === PENDING) {
-                  props.status = COMPLETED;
-                  request.completedBoundaries.push(props);
-                  break a;
-                }
-              } catch (error) {
-                (props.status = CLIENT_RENDERED),
-                  (childNodes = getThrownInfo(task.componentStack)),
-                  (replay = logRecoverableError(
-                    request,
-                    error,
-                    childNodes,
-                    task.debugTask
-                  )),
-                  encodeErrorForBoundary(props, replay, error, childNodes, !1),
-                  task.replay.pendingTasks--,
-                  request.clientRenderedBoundaries.push(props);
-              } finally {
-                (task.blockedBoundary = parentBoundary),
-                  (task.hoistableState = parentHoistableState),
-                  (task.replay = previousReplaySet),
-                  (task.keyPath = prevKeyPath),
-                  (task.formatContext = prevContext),
-                  (task.row = prevRow);
-              }
-              props = createReplayTask(
-                request,
-                null,
-                { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-                fallback,
-                -1,
-                parentBoundary,
-                props.fallbackState,
-                fallbackAbortSet,
-                [keyPath[0], "Suspense Fallback", keyPath[2]],
-                getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  task.formatContext
-                ),
-                task.context,
-                task.treeContext,
-                task.row,
-                replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                  task.componentStack
-                ),
-                emptyContextObject,
-                task.debugTask
-              );
-              pushComponentStack(props);
-              request.pingedTasks.push(props);
-            }
-          }
-          childIndex.splice(i, 1);
-          break;
-        }
-      }
-    }
-    function validateIterable(
-      task,
-      iterable,
-      childIndex,
-      iterator,
-      iteratorFn
-    ) {
-      if (iterator === iterable) {
-        if (
-          -1 !== childIndex ||
-          null === task.componentStack ||
-          "function" !== typeof task.componentStack.type ||
-          "[object GeneratorFunction]" !==
-            Object.prototype.toString.call(task.componentStack.type) ||
-          "[object Generator]" !== Object.prototype.toString.call(iterator)
-        )
-          didWarnAboutGenerators ||
-            console.error(
-              "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-            ),
-            (didWarnAboutGenerators = !0);
-      } else
-        iterable.entries !== iteratorFn ||
-          didWarnAboutMaps ||
-          (console.error(
-            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-          ),
-          (didWarnAboutMaps = !0));
-    }
-    function renderNodeDestructive(request, task, node, childIndex) {
-      null !== task.replay && "number" === typeof task.replay.slots
-        ? resumeNode(request, task, task.replay.slots, node, childIndex)
-        : ((task.node = node),
-          (task.childIndex = childIndex),
-          (node = task.componentStack),
-          (childIndex = task.debugTask),
-          pushComponentStack(task),
-          retryNode(request, task),
-          (task.componentStack = node),
-          (task.debugTask = childIndex));
-    }
-    function retryNode(request, task) {
-      var node = task.node,
-        childIndex = task.childIndex;
-      if (null !== node) {
-        if ("object" === typeof node) {
-          switch (node.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var type = node.type,
-                key = node.key;
-              node = node.props;
-              var refProp = node.ref;
-              refProp = void 0 !== refProp ? refProp : null;
-              var debugTask = task.debugTask,
-                name = getComponentNameFromType(type);
-              key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-              var keyPath = [task.keyPath, name, key];
-              null !== task.replay
-                ? debugTask
-                  ? debugTask.run(
-                      replayElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        name,
-                        key,
-                        childIndex,
-                        type,
-                        node,
-                        refProp,
-                        task.replay
-                      )
-                    )
-                  : replayElement(
-                      request,
-                      task,
-                      keyPath,
-                      name,
-                      key,
-                      childIndex,
-                      type,
-                      node,
-                      refProp,
-                      task.replay
-                    )
-                : debugTask
-                  ? debugTask.run(
-                      renderElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        type,
-                        node,
-                        refProp
-                      )
-                    )
-                  : renderElement(request, task, keyPath, type, node, refProp);
-              return;
-            case REACT_PORTAL_TYPE:
-              throw Error(
-                "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-              );
-            case REACT_LAZY_TYPE:
-              type = callLazyInitInDEV(node);
-              if (12 === request.status) throw null;
-              renderNodeDestructive(request, task, type, childIndex);
-              return;
-          }
-          if (isArrayImpl(node)) {
-            renderChildrenArray(request, task, node, childIndex);
-            return;
-          }
-          if ((key = getIteratorFn(node)))
-            if ((type = key.call(node))) {
-              validateIterable(task, node, childIndex, type, key);
-              node = type.next();
-              if (!node.done) {
-                key = [];
-                do key.push(node.value), (node = type.next());
-                while (!node.done);
-                renderChildrenArray(request, task, key, childIndex);
-              }
-              return;
-            }
-          if ("function" === typeof node.then)
-            return (
-              (task.thenableState = null),
-              renderNodeDestructive(
-                request,
-                task,
-                unwrapThenable(node),
-                childIndex
-              )
-            );
-          if (node.$$typeof === REACT_CONTEXT_TYPE)
-            return renderNodeDestructive(
-              request,
-              task,
-              node._currentValue2,
-              childIndex
-            );
-          request = Object.prototype.toString.call(node);
-          throw Error(
-            "Objects are not valid as a React child (found: " +
-              ("[object Object]" === request
-                ? "object with keys {" + Object.keys(node).join(", ") + "}"
-                : request) +
-              "). If you meant to render a collection of children, use an array instead."
-          );
-        }
-        "string" === typeof node
-          ? ((task = task.blockedSegment),
-            null !== task &&
-              (task.lastPushedText = pushTextInstance(
-                task.chunks,
-                node,
-                request.renderState,
-                task.lastPushedText
-              )))
-          : "number" === typeof node || "bigint" === typeof node
-            ? ((task = task.blockedSegment),
-              null !== task &&
-                (task.lastPushedText = pushTextInstance(
-                  task.chunks,
-                  "" + node,
-                  request.renderState,
-                  task.lastPushedText
-                )))
-            : ("function" === typeof node &&
-                ((request = node.displayName || node.name || "Component"),
-                console.error(
-                  "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-                  request,
-                  request
-                )),
-              "symbol" === typeof node &&
-                console.error(
-                  "Symbols are not valid as a React child.\n  %s",
-                  String(node)
-                ));
-      }
-    }
-    function warnForMissingKey(request, task, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        (child.$$typeof === REACT_ELEMENT_TYPE ||
-          child.$$typeof === REACT_PORTAL_TYPE) &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var didWarnForKey = request.didWarnForKey;
-        null == didWarnForKey &&
-          (didWarnForKey = request.didWarnForKey = new WeakSet());
-        request = task.componentStack;
-        if (null !== request && !didWarnForKey.has(request)) {
-          didWarnForKey.add(request);
-          var componentName = getComponentNameFromType(child.type);
-          didWarnForKey = child._owner;
-          var parentOwner = request.owner;
-          request = "";
-          if (parentOwner && "undefined" !== typeof parentOwner.type) {
-            var name = getComponentNameFromType(parentOwner.type);
-            name &&
-              (request = "\n\nCheck the render method of `" + name + "`.");
-          }
-          request ||
-            (componentName &&
-              (request =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          componentName = "";
-          null != didWarnForKey &&
-            parentOwner !== didWarnForKey &&
-            ((parentOwner = null),
-            "undefined" !== typeof didWarnForKey.type
-              ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-              : "string" === typeof didWarnForKey.name &&
-                (parentOwner = didWarnForKey.name),
-            parentOwner &&
-              (componentName =
-                " It was passed a child from " + parentOwner + "."));
-          didWarnForKey = task.componentStack;
-          task.componentStack = {
-            parent: task.componentStack,
-            type: child.type,
-            owner: child._owner,
-            stack: child._debugStack
-          };
-          console.error(
-            'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-            request,
-            componentName
-          );
-          task.componentStack = didWarnForKey;
-        }
-      }
-    }
-    function renderChildrenArray(request, task, children, childIndex) {
-      var prevKeyPath = task.keyPath,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node._debugInfo);
-      if (
-        -1 !== childIndex &&
-        ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-        null !== task.replay)
-      ) {
-        for (
-          var replay = task.replay, replayNodes = replay.nodes, j = 0;
-          j < replayNodes.length;
-          j++
-        ) {
-          var node = replayNodes[j];
-          if (node[1] === childIndex) {
-            childIndex = node[2];
-            node = node[3];
-            task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-            try {
-              renderChildrenArray(request, task, children, -1);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw x;
-              task.replay.pendingTasks--;
-              var thrownInfo = getThrownInfo(task.componentStack);
-              children = task.blockedBoundary;
-              var error = x,
-                resumeSlots = node;
-              node = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              abortRemainingReplayNodes(
-                request,
-                children,
-                childIndex,
-                resumeSlots,
-                error,
-                node,
-                thrownInfo,
-                !1
-              );
-            }
-            task.replay = replay;
-            replayNodes.splice(j, 1);
-            break;
-          }
-        }
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      replay = task.treeContext;
-      replayNodes = children.length;
-      if (
-        null !== task.replay &&
-        ((j = task.replay.slots), null !== j && "object" === typeof j)
-      ) {
-        for (childIndex = 0; childIndex < replayNodes; childIndex++)
-          (node = children[childIndex]),
-            (task.treeContext = pushTreeContext(
-              replay,
-              replayNodes,
-              childIndex
-            )),
-            (error = j[childIndex]),
-            "number" === typeof error
-              ? (resumeNode(request, task, error, node, childIndex),
-                delete j[childIndex])
-              : renderNode(request, task, node, childIndex);
-        task.treeContext = replay;
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      for (j = 0; j < replayNodes; j++)
-        (childIndex = children[j]),
-          warnForMissingKey(request, task, childIndex),
-          (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-          renderNode(request, task, childIndex, j);
-      task.treeContext = replay;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function trackPostponedBoundary(request, trackedPostpones, boundary) {
-      boundary.status = POSTPONED;
-      boundary.rootSegmentID = request.nextSegmentId++;
-      request = boundary.trackedContentKeyPath;
-      if (null === request)
-        throw Error(
-          "It should not be possible to postpone at the root. This is a bug in React."
-        );
-      var fallbackReplayNode = boundary.trackedFallbackNode,
-        children = [],
-        boundaryNode = trackedPostpones.workingMap.get(request);
-      if (void 0 === boundaryNode)
-        return (
-          (boundary = [
-            request[1],
-            request[2],
-            children,
-            null,
-            fallbackReplayNode,
-            boundary.rootSegmentID
-          ]),
-          trackedPostpones.workingMap.set(request, boundary),
-          addToReplayParent(boundary, request[0], trackedPostpones),
-          boundary
-        );
-      boundaryNode[4] = fallbackReplayNode;
-      boundaryNode[5] = boundary.rootSegmentID;
-      return boundaryNode;
-    }
-    function trackPostpone(request, trackedPostpones, task, segment) {
-      segment.status = POSTPONED;
-      var keyPath = task.keyPath,
-        boundary = task.blockedBoundary;
-      if (null === boundary)
-        (segment.id = request.nextSegmentId++),
-          (trackedPostpones.rootSlots = segment.id),
-          null !== request.completedRootSegment &&
-            (request.completedRootSegment.status = POSTPONED);
-      else {
-        if (null !== boundary && boundary.status === PENDING) {
-          var boundaryNode = trackPostponedBoundary(
-            request,
-            trackedPostpones,
-            boundary
-          );
-          if (
-            boundary.trackedContentKeyPath === keyPath &&
-            -1 === task.childIndex
-          ) {
-            -1 === segment.id &&
-              (segment.id = segment.parentFlushed
-                ? boundary.rootSegmentID
-                : request.nextSegmentId++);
-            boundaryNode[3] = segment.id;
-            return;
-          }
-        }
-        -1 === segment.id &&
-          (segment.id =
-            segment.parentFlushed && null !== boundary
-              ? boundary.rootSegmentID
-              : request.nextSegmentId++);
-        if (-1 === task.childIndex)
-          null === keyPath
-            ? (trackedPostpones.rootSlots = segment.id)
-            : ((task = trackedPostpones.workingMap.get(keyPath)),
-              void 0 === task
-                ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-                  addToReplayParent(task, keyPath[0], trackedPostpones))
-                : (task[3] = segment.id));
-        else {
-          if (null === keyPath)
-            if (((request = trackedPostpones.rootSlots), null === request))
-              request = trackedPostpones.rootSlots = {};
-            else {
-              if ("number" === typeof request)
-                throw Error(
-                  "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-                );
-            }
-          else if (
-            ((boundary = trackedPostpones.workingMap),
-            (boundaryNode = boundary.get(keyPath)),
-            void 0 === boundaryNode)
-          )
-            (request = {}),
-              (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-              boundary.set(keyPath, boundaryNode),
-              addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-          else if (((request = boundaryNode[3]), null === request))
-            request = boundaryNode[3] = {};
-          else if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-          request[task.childIndex] = segment.id;
-        }
-      }
-    }
-    function untrackBoundary(request, boundary) {
-      request = request.trackedPostpones;
-      null !== request &&
-        ((boundary = boundary.trackedContentKeyPath),
-        null !== boundary &&
-          ((boundary = request.workingMap.get(boundary)),
-          void 0 !== boundary &&
-            ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-    }
-    function spawnNewSuspendedReplayTask(request, task, thenableState) {
-      return createReplayTask(
-        request,
-        thenableState,
-        task.replay,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function spawnNewSuspendedRenderTask(request, task, thenableState) {
-      var segment = task.blockedSegment,
-        newSegment = createPendingSegment(
-          request,
-          segment.chunks.length,
-          null,
-          task.formatContext,
-          segment.lastPushedText,
-          !0
-        );
-      segment.children.push(newSegment);
-      segment.lastPushedText = !1;
-      return createRenderTask(
-        request,
-        thenableState,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        newSegment,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function renderNode(request, task, node, childIndex) {
-      var previousFormatContext = task.formatContext,
-        previousContext = task.context,
-        previousKeyPath = task.keyPath,
-        previousTreeContext = task.treeContext,
-        previousComponentStack = task.componentStack,
-        previousDebugTask = task.debugTask,
-        segment = task.blockedSegment;
-      if (null === segment) {
-        segment = task.replay;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue) {
-          if (
-            (resetHooksState(),
-            (node =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              childIndex =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedReplayTask(
-                request,
-                task,
-                childIndex
-              ).ping;
-              node.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              node =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              node = spawnNewSuspendedReplayTask(request, task, node);
-              request.pingedTasks.push(node);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      } else {
-        var childrenLength = segment.children.length,
-          chunkLength = segment.chunks.length;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue$3) {
-          if (
-            (resetHooksState(),
-            (segment.children.length = childrenLength),
-            (segment.chunks.length = chunkLength),
-            (node =
-              thrownValue$3 === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue$3),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              segment = node;
-              node =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedRenderTask(request, task, node).ping;
-              segment.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              segment =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              segment = spawnNewSuspendedRenderTask(request, task, segment);
-              request.pingedTasks.push(segment);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      }
-      task.formatContext = previousFormatContext;
-      task.context = previousContext;
-      task.keyPath = previousKeyPath;
-      task.treeContext = previousTreeContext;
-      switchContext(previousContext);
-      throw node;
-    }
-    function abortTaskSoft(task) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      null !== segment &&
-        ((segment.status = ABORTED),
-        finishedTask(this, boundary, task.row, segment));
-    }
-    function abortRemainingReplayNodes(
-      request$jscomp$0,
-      boundary,
-      nodes,
-      slots,
-      error$jscomp$0,
-      errorDigest$jscomp$0,
-      errorInfo$jscomp$0,
-      aborted
-    ) {
-      for (var i = 0; i < nodes.length; i++) {
-        var node = nodes[i];
-        if (4 === node.length)
-          abortRemainingReplayNodes(
-            request$jscomp$0,
-            boundary,
-            node[2],
-            node[3],
-            error$jscomp$0,
-            errorDigest$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          );
-        else {
-          var request = request$jscomp$0;
-          node = node[5];
-          var error = error$jscomp$0,
-            errorDigest = errorDigest$jscomp$0,
-            errorInfo = errorInfo$jscomp$0,
-            wasAborted = aborted,
-            resumedBoundary = createSuspenseBoundary(
-              request,
-              null,
-              new Set(),
-              null,
-              null
-            );
-          resumedBoundary.parentFlushed = !0;
-          resumedBoundary.rootSegmentID = node;
-          resumedBoundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(
-            resumedBoundary,
-            errorDigest,
-            error,
-            errorInfo,
-            wasAborted
-          );
-          resumedBoundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(resumedBoundary);
-        }
-      }
-      nodes.length = 0;
-      if (null !== slots) {
-        if (null === boundary)
-          throw Error(
-            "We should not have any resumable nodes in the shell. This is a bug in React."
-          );
-        boundary.status !== CLIENT_RENDERED &&
-          ((boundary.status = CLIENT_RENDERED),
-          encodeErrorForBoundary(
-            boundary,
-            errorDigest$jscomp$0,
-            error$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          ),
-          boundary.parentFlushed &&
-            request$jscomp$0.clientRenderedBoundaries.push(boundary));
-        if ("object" === typeof slots)
-          for (var index in slots) delete slots[index];
-      }
-    }
-    function abortTask(task, request, error) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      if (null !== segment) {
-        if (6 === segment.status) return;
-        segment.status = ABORTED;
-      }
-      var errorInfo = getThrownInfo(task.componentStack),
-        node = task.node;
-      null !== node &&
-        "object" === typeof node &&
-        pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-      if (null === boundary) {
-        if (13 !== request.status && request.status !== CLOSED) {
-          boundary = task.replay;
-          if (null === boundary) {
-            null !== request.trackedPostpones && null !== segment
-              ? ((boundary = request.trackedPostpones),
-                logRecoverableError(request, error, errorInfo, task.debugTask),
-                trackPostpone(request, boundary, task, segment),
-                finishedTask(request, null, task.row, segment))
-              : (logRecoverableError(request, error, errorInfo, task.debugTask),
-                fatalError(request, error, errorInfo, task.debugTask));
-            return;
-          }
-          boundary.pendingTasks--;
-          0 === boundary.pendingTasks &&
-            0 < boundary.nodes.length &&
-            ((segment = logRecoverableError(request, error, errorInfo, null)),
-            abortRemainingReplayNodes(
-              request,
-              null,
-              boundary.nodes,
-              boundary.slots,
-              error,
-              segment,
-              errorInfo,
-              !0
-            ));
-          request.pendingRootTasks--;
-          0 === request.pendingRootTasks && completeShell(request);
-        }
-      } else {
-        node = request.trackedPostpones;
-        if (boundary.status !== CLIENT_RENDERED) {
-          if (null !== node && null !== segment)
-            return (
-              logRecoverableError(request, error, errorInfo, task.debugTask),
-              trackPostpone(request, node, task, segment),
-              boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-                return abortTask(fallbackTask, request, error);
-              }),
-              boundary.fallbackAbortableTasks.clear(),
-              finishedTask(request, boundary, task.row, segment)
-            );
-          boundary.status = CLIENT_RENDERED;
-          segment = logRecoverableError(
-            request,
-            error,
-            errorInfo,
-            task.debugTask
-          );
-          boundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-          untrackBoundary(request, boundary);
-          boundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(boundary);
-        }
-        boundary.pendingTasks--;
-        errorInfo = boundary.row;
-        null !== errorInfo &&
-          0 === --errorInfo.pendingTasks &&
-          finishSuspenseListRow(request, errorInfo);
-        boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-          return abortTask(fallbackTask, request, error);
-        });
-        boundary.fallbackAbortableTasks.clear();
-      }
-      task = task.row;
-      null !== task &&
-        0 === --task.pendingTasks &&
-        finishSuspenseListRow(request, task);
-      request.allPendingTasks--;
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function safelyEmitEarlyPreloads(request, shellComplete) {
-      try {
-        var renderState = request.renderState,
-          onHeaders = renderState.onHeaders;
-        if (onHeaders) {
-          var headers = renderState.headers;
-          if (headers) {
-            renderState.headers = null;
-            var linkHeader = headers.preconnects;
-            headers.fontPreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.fontPreloads));
-            headers.highImagePreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.highImagePreloads));
-            if (!shellComplete) {
-              var queueIter = renderState.styles.values(),
-                queueStep = queueIter.next();
-              b: for (
-                ;
-                0 < headers.remainingCapacity && !queueStep.done;
-                queueStep = queueIter.next()
-              )
-                for (
-                  var sheetIter = queueStep.value.sheets.values(),
-                    sheetStep = sheetIter.next();
-                  0 < headers.remainingCapacity && !sheetStep.done;
-                  sheetStep = sheetIter.next()
-                ) {
-                  var sheet = sheetStep.value,
-                    props = sheet.props,
-                    key = props.href,
-                    props$jscomp$0 = sheet.props;
-                  var header = getPreloadAsHeader(
-                    props$jscomp$0.href,
-                    "style",
-                    {
-                      crossOrigin: props$jscomp$0.crossOrigin,
-                      integrity: props$jscomp$0.integrity,
-                      nonce: props$jscomp$0.nonce,
-                      type: props$jscomp$0.type,
-                      fetchPriority: props$jscomp$0.fetchPriority,
-                      referrerPolicy: props$jscomp$0.referrerPolicy,
-                      media: props$jscomp$0.media
-                    }
-                  );
-                  if (0 <= (headers.remainingCapacity -= header.length + 2))
-                    (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                      linkHeader && (linkHeader += ", "),
-                      (linkHeader += header),
-                      (renderState.resets.style[key] =
-                        "string" === typeof props.crossOrigin ||
-                        "string" === typeof props.integrity
-                          ? [props.crossOrigin, props.integrity]
-                          : PRELOAD_NO_CREDS);
-                  else break b;
-                }
-            }
-            linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-          }
-        }
-      } catch (error) {
-        logRecoverableError(request, error, {}, null);
-      }
-    }
-    function completeShell(request) {
-      null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-      null === request.trackedPostpones && preparePreamble(request);
-      request.onShellError = noop;
-      request = request.onShellReady;
-      request();
-    }
-    function completeAll(request) {
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? !0
-          : null === request.completedRootSegment ||
-              request.completedRootSegment.status !== POSTPONED
-      );
-      preparePreamble(request);
-      request = request.onAllReady;
-      request();
-    }
-    function queueCompletedSegment(boundary, segment) {
-      if (
-        0 === segment.chunks.length &&
-        1 === segment.children.length &&
-        null === segment.children[0].boundary &&
-        -1 === segment.children[0].id
-      ) {
-        var childSegment = segment.children[0];
-        childSegment.id = segment.id;
-        childSegment.parentFlushed = !0;
-        (childSegment.status !== COMPLETED &&
-          childSegment.status !== ABORTED &&
-          childSegment.status !== ERRORED) ||
-          queueCompletedSegment(boundary, childSegment);
-      } else boundary.completedSegments.push(segment);
-    }
-    function finishedTask(request, boundary, row, segment) {
-      null !== row &&
-        (0 === --row.pendingTasks
-          ? finishSuspenseListRow(request, row)
-          : row.together && tryToResolveTogetherRow(request, row));
-      request.allPendingTasks--;
-      if (null === boundary) {
-        if (null !== segment && segment.parentFlushed) {
-          if (null !== request.completedRootSegment)
-            throw Error(
-              "There can only be one root segment. This is a bug in React."
-            );
-          request.completedRootSegment = segment;
-        }
-        request.pendingRootTasks--;
-        0 === request.pendingRootTasks && completeShell(request);
-      } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-        if (0 === boundary.pendingTasks)
-          if (
-            (boundary.status === PENDING && (boundary.status = COMPLETED),
-            null !== segment &&
-              segment.parentFlushed &&
-              (segment.status === COMPLETED || segment.status === ABORTED) &&
-              queueCompletedSegment(boundary, segment),
-            boundary.parentFlushed &&
-              request.completedBoundaries.push(boundary),
-            boundary.status === COMPLETED)
-          )
-            (row = boundary.row),
-              null !== row &&
-                hoistHoistables(row.hoistables, boundary.contentState),
-              isEligibleForOutlining(request, boundary) ||
-                (boundary.fallbackAbortableTasks.forEach(
-                  abortTaskSoft,
-                  request
-                ),
-                boundary.fallbackAbortableTasks.clear(),
-                null !== row &&
-                  0 === --row.pendingTasks &&
-                  finishSuspenseListRow(request, row)),
-              0 === request.pendingRootTasks &&
-                null === request.trackedPostpones &&
-                null !== boundary.contentPreamble &&
-                preparePreamble(request);
-          else {
-            if (
-              boundary.status === POSTPONED &&
-              ((boundary = boundary.row), null !== boundary)
-            ) {
-              if (null !== request.trackedPostpones) {
-                row = request.trackedPostpones;
-                var postponedRow = boundary.next;
-                if (
-                  null !== postponedRow &&
-                  ((segment = postponedRow.boundaries), null !== segment)
-                )
-                  for (
-                    postponedRow.boundaries = null, postponedRow = 0;
-                    postponedRow < segment.length;
-                    postponedRow++
-                  ) {
-                    var postponedBoundary = segment[postponedRow];
-                    trackPostponedBoundary(request, row, postponedBoundary);
-                    finishedTask(request, postponedBoundary, null, null);
-                  }
-              }
-              0 === --boundary.pendingTasks &&
-                finishSuspenseListRow(request, boundary);
-            }
-          }
-        else
-          null === segment ||
-            !segment.parentFlushed ||
-            (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-            (queueCompletedSegment(boundary, segment),
-            1 === boundary.completedSegments.length &&
-              boundary.parentFlushed &&
-              request.partialBoundaries.push(boundary)),
-            (boundary = boundary.row),
-            null !== boundary &&
-              boundary.together &&
-              tryToResolveTogetherRow(request, boundary);
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function performWork(request$jscomp$2) {
-      if (
-        request$jscomp$2.status !== CLOSED &&
-        13 !== request$jscomp$2.status
-      ) {
-        var prevContext = currentActiveSnapshot,
-          prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = HooksDispatcher;
-        var prevAsyncDispatcher = ReactSharedInternals.A;
-        ReactSharedInternals.A = DefaultAsyncDispatcher;
-        var prevRequest = currentRequest;
-        currentRequest = request$jscomp$2;
-        var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        var prevResumableState = currentResumableState;
-        currentResumableState = request$jscomp$2.resumableState;
-        try {
-          var pingedTasks = request$jscomp$2.pingedTasks,
-            i;
-          for (i = 0; i < pingedTasks.length; i++) {
-            var request = request$jscomp$2,
-              task = pingedTasks[i],
-              segment = task.blockedSegment;
-            if (null === segment) {
-              var prevTaskInDEV = void 0,
-                request$jscomp$0 = request;
-              request = task;
-              if (0 !== request.replay.pendingTasks) {
-                switchContext(request.context);
-                prevTaskInDEV = currentTaskInDEV;
-                currentTaskInDEV = request;
-                try {
-                  "number" === typeof request.replay.slots
-                    ? resumeNode(
-                        request$jscomp$0,
-                        request,
-                        request.replay.slots,
-                        request.node,
-                        request.childIndex
-                      )
-                    : retryNode(request$jscomp$0, request);
-                  if (
-                    1 === request.replay.pendingTasks &&
-                    0 < request.replay.nodes.length
-                  )
-                    throw Error(
-                      "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                    );
-                  request.replay.pendingTasks--;
-                  request.abortSet.delete(request);
-                  finishedTask(
-                    request$jscomp$0,
-                    request.blockedBoundary,
-                    request.row,
-                    null
-                  );
-                } catch (thrownValue) {
-                  resetHooksState();
-                  var x =
-                    thrownValue === SuspenseException
-                      ? getSuspendedThenable()
-                      : thrownValue;
-                  if (
-                    "object" === typeof x &&
-                    null !== x &&
-                    "function" === typeof x.then
-                  ) {
-                    var ping = request.ping;
-                    x.then(ping, ping);
-                    request.thenableState =
-                      thrownValue === SuspenseException
-                        ? getThenableStateAfterSuspending()
-                        : null;
-                  } else {
-                    request.replay.pendingTasks--;
-                    request.abortSet.delete(request);
-                    var errorInfo = getThrownInfo(request.componentStack),
-                      errorDigest = void 0,
-                      request$jscomp$1 = request$jscomp$0,
-                      boundary = request.blockedBoundary,
-                      error$jscomp$0 =
-                        12 === request$jscomp$0.status
-                          ? request$jscomp$0.fatalError
-                          : x,
-                      errorInfo$jscomp$0 = errorInfo,
-                      replayNodes = request.replay.nodes,
-                      resumeSlots = request.replay.slots;
-                    errorDigest = logRecoverableError(
-                      request$jscomp$1,
-                      error$jscomp$0,
-                      errorInfo$jscomp$0,
-                      request.debugTask
-                    );
-                    abortRemainingReplayNodes(
-                      request$jscomp$1,
-                      boundary,
-                      replayNodes,
-                      resumeSlots,
-                      error$jscomp$0,
-                      errorDigest,
-                      errorInfo$jscomp$0,
-                      !1
-                    );
-                    request$jscomp$0.pendingRootTasks--;
-                    0 === request$jscomp$0.pendingRootTasks &&
-                      completeShell(request$jscomp$0);
-                    request$jscomp$0.allPendingTasks--;
-                    0 === request$jscomp$0.allPendingTasks &&
-                      completeAll(request$jscomp$0);
-                  }
-                } finally {
-                  currentTaskInDEV = prevTaskInDEV;
-                }
-              }
-            } else if (
-              ((request$jscomp$0 = prevTaskInDEV = void 0),
-              (errorDigest = task),
-              (request$jscomp$1 = segment),
-              request$jscomp$1.status === PENDING)
-            ) {
-              request$jscomp$1.status = 6;
-              switchContext(errorDigest.context);
-              request$jscomp$0 = currentTaskInDEV;
-              currentTaskInDEV = errorDigest;
-              var childrenLength = request$jscomp$1.children.length,
-                chunkLength = request$jscomp$1.chunks.length;
-              try {
-                retryNode(request, errorDigest),
-                  pushSegmentFinale(
-                    request$jscomp$1.chunks,
-                    request.renderState,
-                    request$jscomp$1.lastPushedText,
-                    request$jscomp$1.textEmbedded
-                  ),
-                  errorDigest.abortSet.delete(errorDigest),
-                  (request$jscomp$1.status = COMPLETED),
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-              } catch (thrownValue) {
-                resetHooksState();
-                request$jscomp$1.children.length = childrenLength;
-                request$jscomp$1.chunks.length = chunkLength;
-                var x$jscomp$0 =
-                  thrownValue === SuspenseException
-                    ? getSuspendedThenable()
-                    : 12 === request.status
-                      ? request.fatalError
-                      : thrownValue;
-                if (
-                  12 === request.status &&
-                  null !== request.trackedPostpones
-                ) {
-                  var trackedPostpones = request.trackedPostpones,
-                    thrownInfo = getThrownInfo(errorDigest.componentStack);
-                  errorDigest.abortSet.delete(errorDigest);
-                  logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    thrownInfo,
-                    errorDigest.debugTask
-                  );
-                  trackPostpone(
-                    request,
-                    trackedPostpones,
-                    errorDigest,
-                    request$jscomp$1
-                  );
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-                } else if (
-                  "object" === typeof x$jscomp$0 &&
-                  null !== x$jscomp$0 &&
-                  "function" === typeof x$jscomp$0.then
-                ) {
-                  request$jscomp$1.status = PENDING;
-                  errorDigest.thenableState =
-                    thrownValue === SuspenseException
-                      ? getThenableStateAfterSuspending()
-                      : null;
-                  var ping$jscomp$0 = errorDigest.ping;
-                  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-                } else {
-                  var errorInfo$jscomp$1 = getThrownInfo(
-                    errorDigest.componentStack
-                  );
-                  errorDigest.abortSet.delete(errorDigest);
-                  request$jscomp$1.status = ERRORED;
-                  var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                    row = errorDigest.row,
-                    debugTask = errorDigest.debugTask;
-                  null !== row &&
-                    0 === --row.pendingTasks &&
-                    finishSuspenseListRow(request, row);
-                  request.allPendingTasks--;
-                  prevTaskInDEV = logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    errorInfo$jscomp$1,
-                    debugTask
-                  );
-                  if (null === boundary$jscomp$0)
-                    fatalError(
-                      request,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      debugTask
-                    );
-                  else if (
-                    (boundary$jscomp$0.pendingTasks--,
-                    boundary$jscomp$0.status !== CLIENT_RENDERED)
-                  ) {
-                    boundary$jscomp$0.status = CLIENT_RENDERED;
-                    encodeErrorForBoundary(
-                      boundary$jscomp$0,
-                      prevTaskInDEV,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      !1
-                    );
-                    untrackBoundary(request, boundary$jscomp$0);
-                    var boundaryRow = boundary$jscomp$0.row;
-                    null !== boundaryRow &&
-                      0 === --boundaryRow.pendingTasks &&
-                      finishSuspenseListRow(request, boundaryRow);
-                    boundary$jscomp$0.parentFlushed &&
-                      request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                    0 === request.pendingRootTasks &&
-                      null === request.trackedPostpones &&
-                      null !== boundary$jscomp$0.contentPreamble &&
-                      preparePreamble(request);
-                  }
-                  0 === request.allPendingTasks && completeAll(request);
-                }
-              } finally {
-                currentTaskInDEV = request$jscomp$0;
-              }
-            }
-          }
-          pingedTasks.splice(0, i);
-          null !== request$jscomp$2.destination &&
-            flushCompletedQueues(
-              request$jscomp$2,
-              request$jscomp$2.destination
-            );
-        } catch (error) {
-          (pingedTasks = {}),
-            logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-            fatalError(request$jscomp$2, error, pingedTasks, null);
-        } finally {
-          (currentResumableState = prevResumableState),
-            (ReactSharedInternals.H = prevDispatcher),
-            (ReactSharedInternals.A = prevAsyncDispatcher),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-            prevDispatcher === HooksDispatcher && switchContext(prevContext),
-            (currentRequest = prevRequest);
-        }
-      }
-    }
-    function preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      segment.preambleChildren.length &&
-        collectedPreambleSegments.push(segment.preambleChildren);
-      for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-        pendingPreambles =
-          preparePreambleFromSegment(
-            request,
-            segment.children[i],
-            collectedPreambleSegments
-          ) || pendingPreambles;
-      return pendingPreambles;
-    }
-    function preparePreambleFromSegment(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return preparePreambleFromSubtree(
-          request,
-          segment,
-          collectedPreambleSegments
-        );
-      var preamble = boundary.contentPreamble,
-        fallbackPreamble = boundary.fallbackPreamble;
-      if (null === preamble || null === fallbackPreamble) return !1;
-      switch (boundary.status) {
-        case COMPLETED:
-          hoistPreambleState(request.renderState, preamble);
-          request.byteSize += boundary.byteSize;
-          segment = boundary.completedSegments[0];
-          if (!segment)
-            throw Error(
-              "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-            );
-          return preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          );
-        case POSTPONED:
-          if (null !== request.trackedPostpones) return !0;
-        case CLIENT_RENDERED:
-          if (segment.status === COMPLETED)
-            return (
-              hoistPreambleState(request.renderState, fallbackPreamble),
-              preparePreambleFromSubtree(
-                request,
-                segment,
-                collectedPreambleSegments
-              )
-            );
-        default:
-          return !0;
-      }
-    }
-    function preparePreamble(request) {
-      if (
-        request.completedRootSegment &&
-        null === request.completedPreambleSegments
-      ) {
-        var collectedPreambleSegments = [],
-          originalRequestByteSize = request.byteSize,
-          hasPendingPreambles = preparePreambleFromSegment(
-            request,
-            request.completedRootSegment,
-            collectedPreambleSegments
-          ),
-          preamble = request.renderState.preamble;
-        !1 === hasPendingPreambles ||
-        (preamble.headChunks && preamble.bodyChunks)
-          ? (request.completedPreambleSegments = collectedPreambleSegments)
-          : (request.byteSize = originalRequestByteSize);
-      }
-    }
-    function flushSubtree(request, destination, segment, hoistableState) {
-      segment.parentFlushed = !0;
-      switch (segment.status) {
-        case PENDING:
-          segment.id = request.nextSegmentId++;
-        case POSTPONED:
-          return (
-            (hoistableState = segment.id),
-            (segment.lastPushedText = !1),
-            (segment.textEmbedded = !1),
-            (request = request.renderState),
-            destination.push(placeholder1),
-            destination.push(request.placeholderPrefix),
-            (request = hoistableState.toString(16)),
-            destination.push(request),
-            destination.push(placeholder2)
-          );
-        case COMPLETED:
-          segment.status = FLUSHED;
-          var r = !0,
-            chunks = segment.chunks,
-            chunkIdx = 0;
-          segment = segment.children;
-          for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-            for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-              destination.push(chunks[chunkIdx]);
-            r = flushSegment(request, destination, r, hoistableState);
-          }
-          for (; chunkIdx < chunks.length - 1; chunkIdx++)
-            destination.push(chunks[chunkIdx]);
-          chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
-          return r;
-        case ABORTED:
-          return !0;
-        default:
-          throw Error(
-            "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-          );
-      }
-    }
-    function flushSegment(request, destination, segment, hoistableState) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return flushSubtree(request, destination, segment, hoistableState);
-      boundary.parentFlushed = !0;
-      if (boundary.status === CLIENT_RENDERED) {
-        var row = boundary.row;
-        null !== row &&
-          0 === --row.pendingTasks &&
-          finishSuspenseListRow(request, row);
-        if (!request.renderState.generateStaticMarkup) {
-          var errorDigest = boundary.errorDigest,
-            errorMessage = boundary.errorMessage;
-          row = boundary.errorStack;
-          boundary = boundary.errorComponentStack;
-          destination.push(startClientRenderedSuspenseBoundary);
-          destination.push(clientRenderedSuspenseBoundaryError1);
-          errorDigest &&
-            (destination.push(clientRenderedSuspenseBoundaryError1A),
-            (errorDigest = escapeTextForBrowser(errorDigest)),
-            destination.push(errorDigest),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          errorMessage &&
-            (destination.push(clientRenderedSuspenseBoundaryError1B),
-            (errorMessage = escapeTextForBrowser(errorMessage)),
-            destination.push(errorMessage),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          row &&
-            (destination.push(clientRenderedSuspenseBoundaryError1C),
-            (row = escapeTextForBrowser(row)),
-            destination.push(row),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          boundary &&
-            (destination.push(clientRenderedSuspenseBoundaryError1D),
-            (row = escapeTextForBrowser(boundary)),
-            destination.push(row),
-            destination.push(
-              clientRenderedSuspenseBoundaryErrorAttrInterstitial
-            ));
-          destination.push(clientRenderedSuspenseBoundaryError2);
-        }
-        flushSubtree(request, destination, segment, hoistableState);
-        request = request.renderState.generateStaticMarkup
-          ? !0
-          : destination.push(endSuspenseBoundary);
-        return request;
-      }
-      if (boundary.status !== COMPLETED)
-        return (
-          boundary.status === PENDING &&
-            (boundary.rootSegmentID = request.nextSegmentId++),
-          0 < boundary.completedSegments.length &&
-            request.partialBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          hoistableState &&
-            hoistHoistables(hoistableState, boundary.fallbackState),
-          flushSubtree(request, destination, segment, hoistableState),
-          destination.push(endSuspenseBoundary)
-        );
-      if (
-        !flushingPartialBoundaries &&
-        isEligibleForOutlining(request, boundary) &&
-        flushedByteSize + boundary.byteSize > request.progressiveChunkSize
-      )
-        return (
-          (boundary.rootSegmentID = request.nextSegmentId++),
-          request.completedBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          flushSubtree(request, destination, segment, hoistableState),
-          destination.push(endSuspenseBoundary)
-        );
-      flushedByteSize += boundary.byteSize;
-      hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-      segment = boundary.row;
-      null !== segment &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --segment.pendingTasks &&
-        finishSuspenseListRow(request, segment);
-      request.renderState.generateStaticMarkup ||
-        destination.push(startCompletedSuspenseBoundary);
-      segment = boundary.completedSegments;
-      if (1 !== segment.length)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      flushSegment(request, destination, segment[0], hoistableState);
-      request = request.renderState.generateStaticMarkup
-        ? !0
-        : destination.push(endSuspenseBoundary);
-      return request;
-    }
-    function flushSegmentContainer(
-      request,
-      destination,
-      segment,
-      hoistableState
-    ) {
-      writeStartSegment(
-        destination,
-        request.renderState,
-        segment.parentFormatContext,
-        segment.id
-      );
-      flushSegment(request, destination, segment, hoistableState);
-      return writeEndSegment(destination, segment.parentFormatContext);
-    }
-    function flushCompletedBoundary(request, destination, boundary) {
-      flushedByteSize = boundary.byteSize;
-      for (
-        var completedSegments = boundary.completedSegments, i = 0;
-        i < completedSegments.length;
-        i++
-      )
-        flushPartiallyCompletedSegment(
-          request,
-          destination,
-          boundary,
-          completedSegments[i]
-        );
-      completedSegments.length = 0;
-      completedSegments = boundary.row;
-      null !== completedSegments &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --completedSegments.pendingTasks &&
-        finishSuspenseListRow(request, completedSegments);
-      writeHoistablesForBoundary(
-        destination,
-        boundary.contentState,
-        request.renderState
-      );
-      completedSegments = request.resumableState;
-      request = request.renderState;
-      i = boundary.rootSegmentID;
-      boundary = boundary.contentState;
-      var requiresStyleInsertion = request.stylesToHoist;
-      request.stylesToHoist = !1;
-      destination.push(request.startInlineScript);
-      destination.push(endOfStartTag);
-      requiresStyleInsertion
-        ? ((completedSegments.instructions & SentClientRenderFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentClientRenderFunction),
-            destination.push(clientRenderScriptFunctionOnly)),
-          (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            destination.push(completeBoundaryScriptFunctionOnly)),
-          (completedSegments.instructions & SentStyleInsertionFunction) ===
-          NothingSent
-            ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-              destination.push(completeBoundaryWithStylesScript1FullPartial))
-            : destination.push(completeBoundaryWithStylesScript1Partial))
-        : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            destination.push(completeBoundaryScriptFunctionOnly)),
-          destination.push(completeBoundaryScript1Partial));
-      completedSegments = i.toString(16);
-      destination.push(request.boundaryPrefix);
-      destination.push(completedSegments);
-      destination.push(completeBoundaryScript2);
-      destination.push(request.segmentPrefix);
-      destination.push(completedSegments);
-      requiresStyleInsertion
-        ? (destination.push(completeBoundaryScript3a),
-          writeStyleResourceDependenciesInJS(destination, boundary))
-        : destination.push(completeBoundaryScript3b);
-      boundary = destination.push(completeBoundaryScriptEnd);
-      return writeBootstrap(destination, request) && boundary;
-    }
-    function flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      segment
-    ) {
-      if (segment.status === FLUSHED) return !0;
-      var hoistableState = boundary.contentState,
-        segmentID = segment.id;
-      if (-1 === segmentID) {
-        if (-1 === (segment.id = boundary.rootSegmentID))
-          throw Error(
-            "A root segment ID must have been assigned by now. This is a bug in React."
-          );
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      }
-      if (segmentID === boundary.rootSegmentID)
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      flushSegmentContainer(request, destination, segment, hoistableState);
-      boundary = request.resumableState;
-      request = request.renderState;
-      destination.push(request.startInlineScript);
-      destination.push(endOfStartTag);
-      (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-        ? ((boundary.instructions |= SentCompleteSegmentFunction),
-          destination.push(completeSegmentScript1Full))
-        : destination.push(completeSegmentScript1Partial);
-      destination.push(request.segmentPrefix);
-      segmentID = segmentID.toString(16);
-      destination.push(segmentID);
-      destination.push(completeSegmentScript2);
-      destination.push(request.placeholderPrefix);
-      destination.push(segmentID);
-      destination = destination.push(completeSegmentScriptEnd);
-      return destination;
-    }
-    function flushCompletedQueues(request, destination) {
-      try {
-        if (!(0 < request.pendingRootTasks)) {
-          var i,
-            completedRootSegment = request.completedRootSegment;
-          if (null !== completedRootSegment) {
-            if (completedRootSegment.status === POSTPONED) return;
-            var completedPreambleSegments = request.completedPreambleSegments;
-            if (null === completedPreambleSegments) return;
-            flushedByteSize = request.byteSize;
-            var resumableState = request.resumableState,
-              renderState = request.renderState,
-              preamble = renderState.preamble,
-              htmlChunks = preamble.htmlChunks,
-              headChunks = preamble.headChunks,
-              i$jscomp$0;
-            if (htmlChunks) {
-              for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-                destination.push(htmlChunks[i$jscomp$0]);
-              if (headChunks)
-                for (
-                  i$jscomp$0 = 0;
-                  i$jscomp$0 < headChunks.length;
-                  i$jscomp$0++
-                )
-                  destination.push(headChunks[i$jscomp$0]);
-              else {
-                var chunk = startChunkForTag("head");
-                destination.push(chunk);
-                destination.push(endOfStartTag);
-              }
-            } else if (headChunks)
-              for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-                destination.push(headChunks[i$jscomp$0]);
-            var charsetChunks = renderState.charsetChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < charsetChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(charsetChunks[i$jscomp$0]);
-            charsetChunks.length = 0;
-            renderState.preconnects.forEach(flushResource, destination);
-            renderState.preconnects.clear();
-            var viewportChunks = renderState.viewportChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < viewportChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(viewportChunks[i$jscomp$0]);
-            viewportChunks.length = 0;
-            renderState.fontPreloads.forEach(flushResource, destination);
-            renderState.fontPreloads.clear();
-            renderState.highImagePreloads.forEach(flushResource, destination);
-            renderState.highImagePreloads.clear();
-            currentlyFlushingRenderState = renderState;
-            renderState.styles.forEach(flushStylesInPreamble, destination);
-            currentlyFlushingRenderState = null;
-            var importMapChunks = renderState.importMapChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < importMapChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(importMapChunks[i$jscomp$0]);
-            importMapChunks.length = 0;
-            renderState.bootstrapScripts.forEach(flushResource, destination);
-            renderState.scripts.forEach(flushResource, destination);
-            renderState.scripts.clear();
-            renderState.bulkPreloads.forEach(flushResource, destination);
-            renderState.bulkPreloads.clear();
-            resumableState.instructions |= SentCompletedShellId;
-            var hoistableChunks = renderState.hoistableChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < hoistableChunks.length;
-              i$jscomp$0++
-            )
-              destination.push(hoistableChunks[i$jscomp$0]);
-            for (
-              resumableState = hoistableChunks.length = 0;
-              resumableState < completedPreambleSegments.length;
-              resumableState++
-            ) {
-              var segments = completedPreambleSegments[resumableState];
-              for (
-                renderState = 0;
-                renderState < segments.length;
-                renderState++
-              )
-                flushSegment(request, destination, segments[renderState], null);
-            }
-            var preamble$jscomp$0 = request.renderState.preamble,
-              headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-            if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) {
-              var chunk$jscomp$0 = endChunkForTag("head");
-              destination.push(chunk$jscomp$0);
-            }
-            var bodyChunks = preamble$jscomp$0.bodyChunks;
-            if (bodyChunks)
-              for (
-                completedPreambleSegments = 0;
-                completedPreambleSegments < bodyChunks.length;
-                completedPreambleSegments++
-              )
-                destination.push(bodyChunks[completedPreambleSegments]);
-            flushSegment(request, destination, completedRootSegment, null);
-            request.completedRootSegment = null;
-            var renderState$jscomp$0 = request.renderState;
-            if (
-              0 !== request.allPendingTasks ||
-              0 !== request.clientRenderedBoundaries.length ||
-              0 !== request.completedBoundaries.length ||
-              (null !== request.trackedPostpones &&
-                (0 !== request.trackedPostpones.rootNodes.length ||
-                  null !== request.trackedPostpones.rootSlots))
-            ) {
-              var resumableState$jscomp$0 = request.resumableState;
-              if (
-                (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-                NothingSent
-              ) {
-                resumableState$jscomp$0.instructions |= SentMarkShellTime;
-                destination.push(renderState$jscomp$0.startInlineScript);
-                if (
-                  (resumableState$jscomp$0.instructions &
-                    SentCompletedShellId) ===
-                  NothingSent
-                ) {
-                  resumableState$jscomp$0.instructions |= SentCompletedShellId;
-                  var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-                  destination.push(completedShellIdAttributeStart);
-                  var chunk$jscomp$1 = escapeTextForBrowser(shellId);
-                  destination.push(chunk$jscomp$1);
-                  destination.push(attributeEnd);
-                }
-                destination.push(endOfStartTag);
-                destination.push(shellTimeRuntimeScript);
-                destination.push(endInlineScript);
-              }
-            }
-            writeBootstrap(destination, renderState$jscomp$0);
-          }
-          var renderState$jscomp$1 = request.renderState;
-          completedRootSegment = 0;
-          var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < viewportChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            destination.push(viewportChunks$jscomp$0[completedRootSegment]);
-          viewportChunks$jscomp$0.length = 0;
-          renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-          renderState$jscomp$1.preconnects.clear();
-          renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.fontPreloads.clear();
-          renderState$jscomp$1.highImagePreloads.forEach(
-            flushResource,
-            destination
-          );
-          renderState$jscomp$1.highImagePreloads.clear();
-          renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-          renderState$jscomp$1.scripts.forEach(flushResource, destination);
-          renderState$jscomp$1.scripts.clear();
-          renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.bulkPreloads.clear();
-          var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < hoistableChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            destination.push(hoistableChunks$jscomp$0[completedRootSegment]);
-          hoistableChunks$jscomp$0.length = 0;
-          var clientRenderedBoundaries = request.clientRenderedBoundaries;
-          for (i = 0; i < clientRenderedBoundaries.length; i++) {
-            var boundary = clientRenderedBoundaries[i];
-            renderState$jscomp$1 = destination;
-            var resumableState$jscomp$1 = request.resumableState,
-              renderState$jscomp$2 = request.renderState,
-              id = boundary.rootSegmentID,
-              errorDigest = boundary.errorDigest,
-              errorMessage = boundary.errorMessage,
-              errorStack = boundary.errorStack,
-              errorComponentStack = boundary.errorComponentStack;
-            renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
-            renderState$jscomp$1.push(endOfStartTag);
-            (resumableState$jscomp$1.instructions &
-              SentClientRenderFunction) ===
-            NothingSent
-              ? ((resumableState$jscomp$1.instructions |=
-                  SentClientRenderFunction),
-                renderState$jscomp$1.push(clientRenderScript1Full))
-              : renderState$jscomp$1.push(clientRenderScript1Partial);
-            renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
-            var chunk$jscomp$2 = id.toString(16);
-            renderState$jscomp$1.push(chunk$jscomp$2);
-            renderState$jscomp$1.push(clientRenderScript1A);
-            if (
-              errorDigest ||
-              errorMessage ||
-              errorStack ||
-              errorComponentStack
-            ) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
-                errorDigest || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$3);
-            }
-            if (errorMessage || errorStack || errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$4 = escapeJSStringsForInstructionScripts(
-                errorMessage || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$4);
-            }
-            if (errorStack || errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$5 = escapeJSStringsForInstructionScripts(
-                errorStack || ""
-              );
-              renderState$jscomp$1.push(chunk$jscomp$5);
-            }
-            if (errorComponentStack) {
-              renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
-              var chunk$jscomp$6 =
-                escapeJSStringsForInstructionScripts(errorComponentStack);
-              renderState$jscomp$1.push(chunk$jscomp$6);
-            }
-            var JSCompiler_inline_result = renderState$jscomp$1.push(
-              clientRenderScriptEnd
-            );
-            if (!JSCompiler_inline_result) {
-              request.destination = null;
-              i++;
-              clientRenderedBoundaries.splice(0, i);
-              return;
-            }
-          }
-          clientRenderedBoundaries.splice(0, i);
-          var completedBoundaries = request.completedBoundaries;
-          for (i = 0; i < completedBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(
-                request,
-                destination,
-                completedBoundaries[i]
-              )
-            ) {
-              request.destination = null;
-              i++;
-              completedBoundaries.splice(0, i);
-              return;
-            }
-          completedBoundaries.splice(0, i);
-          flushingPartialBoundaries = !0;
-          var partialBoundaries = request.partialBoundaries;
-          for (i = 0; i < partialBoundaries.length; i++) {
-            a: {
-              clientRenderedBoundaries = request;
-              boundary = destination;
-              var boundary$jscomp$0 = partialBoundaries[i];
-              flushedByteSize = boundary$jscomp$0.byteSize;
-              var completedSegments = boundary$jscomp$0.completedSegments;
-              for (
-                JSCompiler_inline_result = 0;
-                JSCompiler_inline_result < completedSegments.length;
-                JSCompiler_inline_result++
-              )
-                if (
-                  !flushPartiallyCompletedSegment(
-                    clientRenderedBoundaries,
-                    boundary,
-                    boundary$jscomp$0,
-                    completedSegments[JSCompiler_inline_result]
-                  )
-                ) {
-                  JSCompiler_inline_result++;
-                  completedSegments.splice(0, JSCompiler_inline_result);
-                  var JSCompiler_inline_result$jscomp$0 = !1;
-                  break a;
-                }
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var row = boundary$jscomp$0.row;
-              null !== row &&
-                row.together &&
-                1 === boundary$jscomp$0.pendingTasks &&
-                (1 === row.pendingTasks
-                  ? unblockSuspenseListRow(
-                      clientRenderedBoundaries,
-                      row,
-                      row.hoistables
-                    )
-                  : row.pendingTasks--);
-              JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-                boundary,
-                boundary$jscomp$0.contentState,
-                clientRenderedBoundaries.renderState
-              );
-            }
-            if (!JSCompiler_inline_result$jscomp$0) {
-              request.destination = null;
-              i++;
-              partialBoundaries.splice(0, i);
-              return;
-            }
-          }
-          partialBoundaries.splice(0, i);
-          flushingPartialBoundaries = !1;
-          var largeBoundaries = request.completedBoundaries;
-          for (i = 0; i < largeBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(request, destination, largeBoundaries[i])
-            ) {
-              request.destination = null;
-              i++;
-              largeBoundaries.splice(0, i);
-              return;
-            }
-          largeBoundaries.splice(0, i);
-        }
-      } finally {
-        (flushingPartialBoundaries = !1),
-          0 === request.allPendingTasks &&
-            0 === request.clientRenderedBoundaries.length &&
-            0 === request.completedBoundaries.length &&
-            ((request.flushScheduled = !1),
-            (i = request.resumableState),
-            i.hasBody &&
-              ((partialBoundaries = endChunkForTag("body")),
-              destination.push(partialBoundaries)),
-            i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
-            0 !== request.abortableTasks.size &&
-              console.error(
-                "There was still abortable task at the root when we closed. This is a bug in React."
-              ),
-            (request.status = CLOSED),
-            destination.push(null),
-            (request.destination = null));
-      }
-    }
-    function startWork(request) {
-      request.flushScheduled = null !== request.destination;
-      performWork(request);
-      10 === request.status && (request.status = 11);
-      null === request.trackedPostpones &&
-        safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-    }
-    function enqueueFlush(request) {
-      if (
-        !1 === request.flushScheduled &&
-        0 === request.pingedTasks.length &&
-        null !== request.destination
-      ) {
-        request.flushScheduled = !0;
-        var destination = request.destination;
-        destination
-          ? flushCompletedQueues(request, destination)
-          : (request.flushScheduled = !1);
-      }
-    }
-    function startFlowing(request, destination) {
-      if (13 === request.status)
-        (request.status = CLOSED), destination.destroy(request.fatalError);
-      else if (request.status !== CLOSED && null === request.destination) {
-        request.destination = destination;
-        try {
-          flushCompletedQueues(request, destination);
-        } catch (error) {
-          (destination = {}),
-            logRecoverableError(request, error, destination, null),
-            fatalError(request, error, destination, null);
-        }
-      }
-    }
-    function abort(request, reason) {
-      if (11 === request.status || 10 === request.status) request.status = 12;
-      try {
-        var abortableTasks = request.abortableTasks;
-        if (0 < abortableTasks.size) {
-          var error =
-            void 0 === reason
-              ? Error("The render was aborted by the server without a reason.")
-              : "object" === typeof reason &&
-                  null !== reason &&
-                  "function" === typeof reason.then
-                ? Error("The render was aborted by the server with a promise.")
-                : reason;
-          request.fatalError = error;
-          abortableTasks.forEach(function (task) {
-            var prevTaskInDEV = currentTaskInDEV,
-              prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-            currentTaskInDEV = task;
-            ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-            try {
-              abortTask(task, request, error);
-            } finally {
-              (currentTaskInDEV = prevTaskInDEV),
-                (ReactSharedInternals.getCurrentStack =
-                  prevGetCurrentStackImpl);
-            }
-          });
-          abortableTasks.clear();
-        }
-        null !== request.destination &&
-          flushCompletedQueues(request, request.destination);
-      } catch (error$4) {
-        (reason = {}),
-          logRecoverableError(request, error$4, reason, null),
-          fatalError(request, error$4, reason, null);
-      }
-    }
-    function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-      if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-      else {
-        var workingMap = trackedPostpones.workingMap,
-          parentNode = workingMap.get(parentKeyPath);
-        void 0 === parentNode &&
-          ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-          workingMap.set(parentKeyPath, parentNode),
-          addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-        parentNode[2].push(node);
-      }
-    }
-    function onError() {}
-    function renderToStringImpl(
-      children,
-      options,
-      generateStaticMarkup,
-      abortReason
-    ) {
-      var didFatal = !1,
-        fatalError = null,
-        result = "",
-        readyToStream = !1;
-      options = createResumableState(
-        options ? options.identifierPrefix : void 0
-      );
-      children = createRequest(
-        children,
-        options,
-        createRenderState(options, generateStaticMarkup),
-        createFormatContext(ROOT_HTML_MODE, null, 0, null),
-        Infinity,
-        onError,
-        void 0,
-        function () {
-          readyToStream = !0;
-        },
-        void 0,
-        void 0,
-        void 0
-      );
-      startWork(children);
-      abort(children, abortReason);
-      startFlowing(children, {
-        push: function (chunk) {
-          null !== chunk && (result += chunk);
-          return !0;
-        },
-        destroy: function (error) {
-          didFatal = !0;
-          fatalError = error;
-        }
-      });
-      if (didFatal && fatalError !== abortReason) throw fatalError;
-      if (!readyToStream)
-        throw Error(
-          "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition."
-        );
-      return result;
-    }
-    var React = require("react"),
-      ReactDOM = require("react-dom"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-      REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      isArrayImpl = Array.isArray,
-      jsxPropsParents = new WeakMap(),
-      jsxChildrenParents = new WeakMap(),
-      CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
-      assign = Object.assign,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern$1 = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      matchHtmlRegExp = /["'&<>]/,
-      uppercasePattern = /([A-Z])/g,
-      msPattern = /^ms-/,
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: previousDispatcher.f,
-      r: previousDispatcher.r,
-      D: function (href) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            if (!resumableState.dnsResources.hasOwnProperty(href)) {
-              resumableState.dnsResources[href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              )
-                JSCompiler_temp =
-                  ((header =
-                    "<" +
-                    escapeHrefForLinkHeaderURLContext(href) +
-                    ">; rel=dns-prefetch"),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              JSCompiler_temp
-                ? ((renderState.resets.dns[href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((header = []),
-                  pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-                  renderState.preconnects.add(header));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.D(href);
-      },
-      C: function (href, crossOrigin) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            var bucket =
-              "use-credentials" === crossOrigin
-                ? "credentials"
-                : "string" === typeof crossOrigin
-                  ? "anonymous"
-                  : "default";
-            if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-              resumableState.connectResources[bucket][href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              ) {
-                JSCompiler_temp =
-                  "<" +
-                  escapeHrefForLinkHeaderURLContext(href) +
-                  ">; rel=preconnect";
-                if ("string" === typeof crossOrigin) {
-                  var escapedCrossOrigin =
-                    escapeStringForLinkHeaderQuotedParamValueContext(
-                      crossOrigin,
-                      "crossOrigin"
-                    );
-                  JSCompiler_temp +=
-                    '; crossorigin="' + escapedCrossOrigin + '"';
-                }
-                JSCompiler_temp =
-                  ((header = JSCompiler_temp),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              }
-              JSCompiler_temp
-                ? ((renderState.resets.connect[bucket][href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((bucket = []),
-                  pushLinkImpl(bucket, {
-                    rel: "preconnect",
-                    href: href,
-                    crossOrigin: crossOrigin
-                  }),
-                  renderState.preconnects.add(bucket));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.C(href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (as && href) {
-            switch (as) {
-              case "image":
-                if (options) {
-                  var imageSrcSet = options.imageSrcSet;
-                  var imageSizes = options.imageSizes;
-                  var fetchPriority = options.fetchPriority;
-                }
-                var key = imageSrcSet
-                  ? imageSrcSet + "\n" + (imageSizes || "")
-                  : href;
-                if (resumableState.imageResources.hasOwnProperty(key)) return;
-                resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-                resumableState = renderState.headers;
-                var header;
-                resumableState &&
-                0 < resumableState.remainingCapacity &&
-                "string" !== typeof imageSrcSet &&
-                "high" === fetchPriority &&
-                ((header = getPreloadAsHeader(href, as, options)),
-                0 <= (resumableState.remainingCapacity -= header.length + 2))
-                  ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-                    resumableState.highImagePreloads &&
-                      (resumableState.highImagePreloads += ", "),
-                    (resumableState.highImagePreloads += header))
-                  : ((resumableState = []),
-                    pushLinkImpl(
-                      resumableState,
-                      assign(
-                        {
-                          rel: "preload",
-                          href: imageSrcSet ? void 0 : href,
-                          as: as
-                        },
-                        options
-                      )
-                    ),
-                    "high" === fetchPriority
-                      ? renderState.highImagePreloads.add(resumableState)
-                      : (renderState.bulkPreloads.add(resumableState),
-                        renderState.preloads.images.set(key, resumableState)));
-                break;
-              case "style":
-                if (resumableState.styleResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.styleResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.stylesheets.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                break;
-              case "script":
-                if (resumableState.scriptResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                renderState.preloads.scripts.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.scriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                break;
-              default:
-                if (resumableState.unknownResources.hasOwnProperty(as)) {
-                  if (
-                    ((imageSrcSet = resumableState.unknownResources[as]),
-                    imageSrcSet.hasOwnProperty(href))
-                  )
-                    return;
-                } else
-                  (imageSrcSet = {}),
-                    (resumableState.unknownResources[as] = imageSrcSet);
-                imageSrcSet[href] = PRELOAD_NO_CREDS;
-                if (
-                  (resumableState = renderState.headers) &&
-                  0 < resumableState.remainingCapacity &&
-                  "font" === as &&
-                  ((key = getPreloadAsHeader(href, as, options)),
-                  0 <= (resumableState.remainingCapacity -= key.length + 2))
-                )
-                  (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-                    resumableState.fontPreloads &&
-                      (resumableState.fontPreloads += ", "),
-                    (resumableState.fontPreloads += key);
-                else
-                  switch (
-                    ((resumableState = []),
-                    (href = assign(
-                      { rel: "preload", href: href, as: as },
-                      options
-                    )),
-                    pushLinkImpl(resumableState, href),
-                    as)
-                  ) {
-                    case "font":
-                      renderState.fontPreloads.add(resumableState);
-                      break;
-                    default:
-                      renderState.bulkPreloads.add(resumableState);
-                  }
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.L(href, as, options);
-      },
-      m: function (href, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            var as =
-              options && "string" === typeof options.as ? options.as : "script";
-            switch (as) {
-              case "script":
-                if (resumableState.moduleScriptResources.hasOwnProperty(href))
-                  return;
-                as = [];
-                resumableState.moduleScriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.moduleScripts.set(href, as);
-                break;
-              default:
-                if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-                  var resources = resumableState.unknownResources[as];
-                  if (resources.hasOwnProperty(href)) return;
-                } else
-                  (resources = {}),
-                    (resumableState.moduleUnknownResources[as] = resources);
-                as = [];
-                resources[href] = PRELOAD_NO_CREDS;
-            }
-            pushLinkImpl(
-              as,
-              assign({ rel: "modulepreload", href: href }, options)
-            );
-            renderState.bulkPreloads.add(as);
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.m(href, options);
-      },
-      X: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState = resumableState.scriptResources.hasOwnProperty(
-              src
-            )
-              ? resumableState.scriptResources[src]
-              : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.scriptResources[src] = EXISTS),
-              (options = assign({ src: src, async: !0 }, options)),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.scripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.X(src, options);
-      },
-      S: function (href, precedence, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            precedence = precedence || "default";
-            var styleQueue = renderState.styles.get(precedence),
-              resourceState = resumableState.styleResources.hasOwnProperty(href)
-                ? resumableState.styleResources[href]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.styleResources[href] = EXISTS),
-              styleQueue ||
-                ((styleQueue = {
-                  precedence: escapeTextForBrowser(precedence),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(precedence, styleQueue)),
-              (precedence = {
-                state: PENDING$1,
-                props: assign(
-                  {
-                    rel: "stylesheet",
-                    href: href,
-                    "data-precedence": precedence
-                  },
-                  options
-                )
-              }),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(precedence.props, resourceState),
-                (renderState = renderState.preloads.stylesheets.get(href)) &&
-                0 < renderState.length
-                  ? (renderState.length = 0)
-                  : (precedence.state = PRELOADED)),
-              styleQueue.sheets.set(href, precedence),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.S(href, precedence, options);
-      },
-      M: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState =
-              resumableState.moduleScriptResources.hasOwnProperty(src)
-                ? resumableState.moduleScriptResources[src]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.moduleScriptResources[src] = EXISTS),
-              (options = assign(
-                { src: src, type: "module", async: !0 },
-                options
-              )),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.moduleScripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.M(src, options);
-      }
-    };
-    var NothingSent = 0,
-      SentCompleteSegmentFunction = 1,
-      SentCompleteBoundaryFunction = 2,
-      SentClientRenderFunction = 4,
-      SentStyleInsertionFunction = 8,
-      SentCompletedShellId = 32,
-      SentMarkShellTime = 64,
-      EXISTS = null,
-      PRELOAD_NO_CREDS = [];
-    Object.freeze(PRELOAD_NO_CREDS);
-    var currentlyFlushingRenderState = null,
-      endInlineScript = "\x3c/script>",
-      scriptRegex = /(<\/|<)(s)(cript)/gi;
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var ROOT_HTML_MODE = 0,
-      HTML_HTML_MODE = 1,
-      HTML_MODE = 2,
-      HTML_HEAD_MODE = 3,
-      SVG_MODE = 4,
-      MATHML_MODE = 5,
-      HTML_TABLE_MODE = 6,
-      HTML_TABLE_BODY_MODE = 7,
-      HTML_TABLE_ROW_MODE = 8,
-      HTML_COLGROUP_MODE = 9,
-      styleNameCache = new Map(),
-      styleAttributeStart = ' style="',
-      styleAssign = ":",
-      styleSeparator = ";",
-      attributeSeparator = " ",
-      attributeAssign = '="',
-      attributeEnd = '"',
-      attributeEmptyString = '=""',
-      actionJavaScriptURL = escapeTextForBrowser(
-        "javascript:throw new Error('React form unexpectedly submitted.')"
-      ),
-      endOfStartTag = ">",
-      endOfStartTagSelfClosing = "/>",
-      didWarnDefaultInputValue = !1,
-      didWarnDefaultChecked = !1,
-      didWarnDefaultSelectValue = !1,
-      didWarnDefaultTextareaValue = !1,
-      didWarnInvalidOptionChildren = !1,
-      didWarnInvalidOptionInnerHTML = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      formReplayingRuntimeScript =
-        'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-      styleRegex = /(<\/|<)(s)(tyle)/gi,
-      leadingNewline = "\n",
-      VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-      validatedTagCache = new Map(),
-      endTagCache = new Map(),
-      shellTimeRuntimeScript =
-        "requestAnimationFrame(function(){$RT=performance.now()});",
-      placeholder1 = '<template id="',
-      placeholder2 = '"></template>',
-      startCompletedSuspenseBoundary = "\x3c!--$--\x3e",
-      startPendingSuspenseBoundary1 = '\x3c!--$?--\x3e<template id="',
-      startPendingSuspenseBoundary2 = '"></template>',
-      startClientRenderedSuspenseBoundary = "\x3c!--$!--\x3e",
-      endSuspenseBoundary = "\x3c!--/$--\x3e",
-      clientRenderedSuspenseBoundaryError1 = "<template",
-      clientRenderedSuspenseBoundaryErrorAttrInterstitial = '"',
-      clientRenderedSuspenseBoundaryError1A = ' data-dgst="',
-      clientRenderedSuspenseBoundaryError1B = ' data-msg="',
-      clientRenderedSuspenseBoundaryError1C = ' data-stck="',
-      clientRenderedSuspenseBoundaryError1D = ' data-cstck="',
-      clientRenderedSuspenseBoundaryError2 = "></template>",
-      startSegmentHTML = '<div hidden id="',
-      startSegmentHTML2 = '">',
-      endSegmentHTML = "</div>",
-      startSegmentSVG = '<svg aria-hidden="true" style="display:none" id="',
-      startSegmentSVG2 = '">',
-      endSegmentSVG = "</svg>",
-      startSegmentMathML = '<math aria-hidden="true" style="display:none" id="',
-      startSegmentMathML2 = '">',
-      endSegmentMathML = "</math>",
-      startSegmentTable = '<table hidden id="',
-      startSegmentTable2 = '">',
-      endSegmentTable = "</table>",
-      startSegmentTableBody = '<table hidden><tbody id="',
-      startSegmentTableBody2 = '">',
-      endSegmentTableBody = "</tbody></table>",
-      startSegmentTableRow = '<table hidden><tr id="',
-      startSegmentTableRow2 = '">',
-      endSegmentTableRow = "</tr></table>",
-      startSegmentColGroup = '<table hidden><colgroup id="',
-      startSegmentColGroup2 = '">',
-      endSegmentColGroup = "</colgroup></table>",
-      completeSegmentScript1Full =
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("',
-      completeSegmentScript1Partial = '$RS("',
-      completeSegmentScript2 = '","',
-      completeSegmentScriptEnd = '")\x3c/script>',
-      completeBoundaryScriptFunctionOnly =
-        '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};',
-      completeBoundaryScript1Partial = '$RC("',
-      completeBoundaryWithStylesScript1FullPartial =
-        '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("',
-      completeBoundaryWithStylesScript1Partial = '$RR("',
-      completeBoundaryScript2 = '","',
-      completeBoundaryScript3a = '",',
-      completeBoundaryScript3b = '"',
-      completeBoundaryScriptEnd = ")\x3c/script>",
-      clientRenderScriptFunctionOnly =
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};',
-      clientRenderScript1Full =
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("',
-      clientRenderScript1Partial = '$RX("',
-      clientRenderScript1A = '"',
-      clientRenderErrorScriptArgInterstitial = ",",
-      clientRenderScriptEnd = ")\x3c/script>",
-      regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
-      regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
-      lateStyleTagResourceOpen1 = ' media="not all" data-precedence="',
-      lateStyleTagResourceOpen2 = '" data-href="',
-      lateStyleTagResourceOpen3 = '">',
-      lateStyleTagTemplateClose = "</style>",
-      currentlyRenderingBoundaryHasStylesToHoist = !1,
-      destinationHasCapacity = !0,
-      stylesheetFlushingQueue = [],
-      styleTagResourceOpen1 = ' data-precedence="',
-      styleTagResourceOpen2 = '" data-href="',
-      spaceSeparator = " ",
-      styleTagResourceOpen3 = '">',
-      styleTagResourceClose = "</style>",
-      completedShellIdAttributeStart = ' id="',
-      arrayFirstOpenBracket = "[",
-      arraySubsequentOpenBracket = ",[",
-      arrayInterstitial = ",",
-      arrayCloseBracket = "]",
-      PENDING$1 = 0,
-      PRELOADED = 1,
-      PREAMBLE = 2,
-      LATE = 3,
-      regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g,
-      regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g,
-      doctypeChunk = "",
-      bind = Function.prototype.bind,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var rendererSigil = {};
-    var currentActiveSnapshot = null,
-      didWarnAboutNoopUpdateForComponent = {},
-      didWarnAboutDeprecatedWillMount = {};
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          var internals = inst._reactInternals;
-          null === internals.queue
-            ? warnNoop(inst, "setState")
-            : (internals.queue.push(payload),
-              void 0 !== callback &&
-                null !== callback &&
-                warnOnInvalidCallback(callback));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          inst.replace = !0;
-          inst.queue = [payload];
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback);
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          null === inst._reactInternals.queue
-            ? warnNoop(inst, "forceUpdate")
-            : void 0 !== callback &&
-              null !== callback &&
-              warnOnInvalidCallback(callback);
-        }
-      },
-      emptyTreeContext = { id: 1, overflow: "" },
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      suspendedThenable = null,
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      currentlyRenderingComponent = null,
-      currentlyRenderingTask = null,
-      currentlyRenderingRequest = null,
-      currentlyRenderingKeyPath = null,
-      firstWorkInProgressHook = null,
-      workInProgressHook = null,
-      isReRender = !1,
-      didScheduleRenderPhaseUpdate = !1,
-      localIdCounter = 0,
-      actionStateCounter = 0,
-      actionStateMatchingIndex = -1,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      renderPhaseUpdates = null,
-      numberOfReRenders = 0,
-      isInHookUserCodeInDev = !1,
-      currentHookNameInDev,
-      HooksDispatcher = {
-        readContext: readContext,
-        use: function (usable) {
-          if (null !== usable && "object" === typeof usable) {
-            if ("function" === typeof usable.then)
-              return unwrapThenable(usable);
-            if (usable.$$typeof === REACT_CONTEXT_TYPE)
-              return readContext(usable);
-          }
-          throw Error(
-            "An unsupported type was passed to use(): " + String(usable)
-          );
-        },
-        useContext: function (context) {
-          currentHookNameInDev = "useContext";
-          resolveCurrentlyRenderingComponent();
-          return context._currentValue2;
-        },
-        useMemo: useMemo,
-        useReducer: useReducer,
-        useRef: function (initialValue) {
-          currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-          workInProgressHook = createWorkInProgressHook();
-          var previousRef = workInProgressHook.memoizedState;
-          return null === previousRef
-            ? ((initialValue = { current: initialValue }),
-              Object.seal(initialValue),
-              (workInProgressHook.memoizedState = initialValue))
-            : previousRef;
-        },
-        useState: function (initialState) {
-          currentHookNameInDev = "useState";
-          return useReducer(basicStateReducer, initialState);
-        },
-        useInsertionEffect: noop,
-        useLayoutEffect: noop,
-        useCallback: function (callback, deps) {
-          return useMemo(function () {
-            return callback;
-          }, deps);
-        },
-        useImperativeHandle: noop,
-        useEffect: noop,
-        useDebugValue: noop,
-        useDeferredValue: function (value, initialValue) {
-          resolveCurrentlyRenderingComponent();
-          return void 0 !== initialValue ? initialValue : value;
-        },
-        useTransition: function () {
-          resolveCurrentlyRenderingComponent();
-          return [!1, unsupportedStartTransition];
-        },
-        useId: function () {
-          var treeId = currentlyRenderingTask.treeContext;
-          var overflow = treeId.overflow;
-          treeId = treeId.id;
-          treeId =
-            (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-          var resumableState = currentResumableState;
-          if (null === resumableState)
-            throw Error(
-              "Invalid hook call. Hooks can only be called inside of the body of a function component."
-            );
-          overflow = localIdCounter++;
-          treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-          0 < overflow && (treeId += "H" + overflow.toString(32));
-          return treeId + "_";
-        },
-        useSyncExternalStore: function (
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        ) {
-          if (void 0 === getServerSnapshot)
-            throw Error(
-              "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-            );
-          return getServerSnapshot();
-        },
-        useOptimistic: function (passthrough) {
-          resolveCurrentlyRenderingComponent();
-          return [passthrough, unsupportedSetOptimisticState];
-        },
-        useActionState: useActionState,
-        useFormState: useActionState,
-        useHostTransitionStatus: function () {
-          resolveCurrentlyRenderingComponent();
-          return NotPending;
-        },
-        useMemoCache: function (size) {
-          for (var data = Array(size), i = 0; i < size; i++)
-            data[i] = REACT_MEMO_CACHE_SENTINEL;
-          return data;
-        },
-        useCacheRefresh: function () {
-          return unsupportedRefresh;
-        },
-        useEffectEvent: function () {
-          return throwOnUseEffectEventCall;
-        }
-      },
-      currentResumableState = null,
-      currentTaskInDEV = null,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function () {
-          throw Error("Not implemented.");
-        },
-        cacheSignal: function () {
-          throw Error("Not implemented.");
-        },
-        getOwner: function () {
-          return null === currentTaskInDEV
-            ? null
-            : currentTaskInDEV.componentStack;
-        }
-      },
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          return Component(props, secondArg);
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          return instance.render();
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var CLIENT_RENDERED = 4,
-      PENDING = 0,
-      COMPLETED = 1,
-      FLUSHED = 2,
-      ABORTED = 3,
-      ERRORED = 4,
-      POSTPONED = 5,
-      CLOSED = 14,
-      currentRequest = null,
-      didWarnAboutBadClass = {},
-      didWarnAboutContextTypes = {},
-      didWarnAboutContextTypeOnFunctionComponent = {},
-      didWarnAboutGetDerivedStateOnFunctionComponent = {},
-      didWarnAboutReassigningProps = !1,
-      didWarnAboutGenerators = !1,
-      didWarnAboutMaps = !1,
-      flushedByteSize = 0,
-      flushingPartialBoundaries = !1;
-    exports.renderToStaticMarkup = function (children, options) {
-      return renderToStringImpl(
-        children,
-        options,
-        !0,
-        'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
-      );
-    };
-    exports.renderToString = function (children, options) {
-      return renderToStringImpl(
-        children,
-        options,
-        !1,
-        'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
-      );
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom-server-legacy.node.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6692 +1,0 @@
-/**
- * @license React
- * react-dom-server-legacy.node.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray;
-function murmurhash3_32_gc(key, seed) {
-  var remainder = key.length & 3;
-  var bytes = key.length - remainder;
-  var h1 = seed;
-  for (seed = 0; seed < bytes; ) {
-    var k1 =
-      (key.charCodeAt(seed) & 255) |
-      ((key.charCodeAt(++seed) & 255) << 8) |
-      ((key.charCodeAt(++seed) & 255) << 16) |
-      ((key.charCodeAt(++seed) & 255) << 24);
-    ++seed;
-    k1 =
-      (3432918353 * (k1 & 65535) +
-        (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    k1 = (k1 << 15) | (k1 >>> 17);
-    k1 =
-      (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    h1 ^= k1;
-    h1 = (h1 << 13) | (h1 >>> 19);
-    h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-    h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-  }
-  k1 = 0;
-  switch (remainder) {
-    case 3:
-      k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-    case 2:
-      k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-    case 1:
-      (k1 ^= key.charCodeAt(seed) & 255),
-        (k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295),
-        (k1 = (k1 << 15) | (k1 >>> 17)),
-        (h1 ^=
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295);
-  }
-  h1 ^= key.length;
-  h1 ^= h1 >>> 16;
-  h1 =
-    (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  h1 ^= h1 >>> 13;
-  h1 =
-    (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  return (h1 ^ (h1 >>> 16)) >>> 0;
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null,
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-var styleNameCache = new Map();
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style)
-    throw Error(
-      "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-    );
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = escapeTextForBrowser(styleName);
-          styleValue = escapeTextForBrowser(("" + styleValue).trim());
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = escapeTextForBrowser(
-                styleName
-                  .replace(uppercasePattern, "-$1")
-                  .toLowerCase()
-                  .replace(msPattern, "-ms-")
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? "" + styleValue
-                  : styleValue + "px"
-                : escapeTextForBrowser(("" + styleValue).trim()));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(' style="', nameChunk, ":", styleValue))
-          : target.push(";", nameChunk, ":", styleValue);
-      }
-    }
-  isFirst || target.push('"');
-}
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(" ", name, '=""');
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-}
-var actionJavaScriptURL = escapeTextForBrowser(
-  "javascript:throw new Error('React form unexpectedly submitted.')"
-);
-function pushAdditionalFormField(value, key) {
-  this.push('<input type="hidden"');
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push("/>");
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value)
-    throw Error(
-      "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-    );
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"');
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '=""');
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(" ", name, '=""')
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-        }
-  }
-}
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children)
-      throw Error(
-        "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-      );
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(
-        "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-      );
-    innerHTML = innerHTML.__html;
-    null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML);
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        );
-  }
-}
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              tag +
-                " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(escapeTextForBrowser("" + props));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(("" + children).replace(scriptRegex, scriptReplacer));
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(escapeTextForBrowser(tag)), null)
-    : tag;
-}
-var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-    tagStartChunk = "<" + tag;
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(escapeTextForBrowser(children));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(' selected=""');
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(' selected=""');
-      } else selected && target$jscomp$0.push(' selected=""');
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(">");
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0)
-          throw Error(
-            "If you supply `defaultValue` on a <textarea>, do not pass children."
-          );
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error("<textarea> can only have at most one child.");
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push("\n");
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0));
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push("/>");
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(">");
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              " ",
-              "action",
-              '="',
-              actionJavaScriptURL,
-              '"'
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(">");
-      null !== formActionName &&
-        (target$jscomp$0.push('<input type="hidden"'),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push("/>"),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  " ",
-                  "data",
-                  '="',
-                  escapeTextForBrowser(sanitizedValue),
-                  '"'
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: escapeTextForBrowser(precedence),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(">");
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer));
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: escapeTextForBrowser(precedence$jscomp$0),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push("\n", html)
-            : target$jscomp$0.push("" + html));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push("\n");
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error("The `<head>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error("The `<body>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error("The `<html>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-        preamble$jscomp$1.htmlChunks = [""];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      " ",
-                      attributeName,
-                      '="',
-                      escapeTextForBrowser(propValue$jscomp$11),
-                      '"'
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(">");
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    destination.push(renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]), (renderState.length = 0), destination.push(i))
-    : !0;
-}
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  destination.push('\x3c!--$?--\x3e<template id="');
-  if (null === id)
-    throw Error(
-      "An ID must have been assigned before we can complete the boundary."
-    );
-  destination.push(renderState.boundaryPrefix);
-  renderState = id.toString(16);
-  destination.push(renderState);
-  return destination.push('"></template>');
-}
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        destination.push('<div hidden id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 4:
-      return (
-        destination.push('<svg aria-hidden="true" style="display:none" id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 5:
-      return (
-        destination.push('<math aria-hidden="true" style="display:none" id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 6:
-      return (
-        destination.push('<table hidden id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 7:
-      return (
-        destination.push('<table hidden><tbody id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 8:
-      return (
-        destination.push('<table hidden><tr id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    case 9:
-      return (
-        destination.push('<table hidden><colgroup id="'),
-        destination.push(renderState.segmentPrefix),
-        (renderState = id.toString(16)),
-        destination.push(renderState),
-        destination.push('">')
-      );
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return destination.push("</div>");
-    case 4:
-      return destination.push("</svg>");
-    case 5:
-      return destination.push("</math>");
-    case 6:
-      return destination.push("</table>");
-    case 7:
-      return destination.push("</tbody></table>");
-    case 8:
-      return destination.push("</tr></table>");
-    case 9:
-      return destination.push("</colgroup></table>");
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    this.push(currentlyFlushingRenderState.startInlineStyle);
-    this.push(' media="not all" data-precedence="');
-    this.push(styleQueue.precedence);
-    for (this.push('" data-href="'); i < hrefs.length - 1; i++)
-      this.push(hrefs[i]), this.push(" ");
-    this.push(hrefs[i]);
-    this.push('">');
-    for (i = 0; i < rules.length; i++) this.push(rules[i]);
-    destinationHasCapacity = this.push("</style>");
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) this.push(resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    this.push(stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    this.push(currentlyFlushingRenderState.startInlineStyle);
-    this.push(' data-precedence="');
-    this.push(styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        this.push('" data-href="');
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        this.push(hrefs[styleQueue]), this.push(" ");
-      this.push(hrefs[styleQueue]);
-    }
-    this.push('">');
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      this.push(rules[styleQueue]);
-    this.push("</style>");
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      this.push(stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      ' id="',
-      escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-      '"'
-    ));
-}
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  destination.push("[");
-  var nextArrayOpenBrackChunk = "[";
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        destination.push(nextArrayOpenBrackChunk),
-          (resource = escapeJSObjectForInstructionScripts(
-            "" + resource.props.href
-          )),
-          destination.push(resource),
-          destination.push("]"),
-          (nextArrayOpenBrackChunk = ",[");
-      else {
-        destination.push(nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        coercedHref = escapeJSObjectForInstructionScripts(coercedHref);
-        destination.push(coercedHref);
-        precedence = "" + precedence;
-        destination.push(",");
-        precedence = escapeJSObjectForInstructionScripts(precedence);
-        destination.push(precedence);
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        destination.push("]");
-        nextArrayOpenBrackChunk = ",[";
-        resource.state = 3;
-      }
-  });
-  destination.push("]");
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  destination.push(",");
-  attributeName = escapeJSObjectForInstructionScripts(attributeName);
-  destination.push(attributeName);
-  destination.push(",");
-  attributeName = escapeJSObjectForInstructionScripts(name);
-  destination.push(attributeName);
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: escapeTextForBrowser(precedence),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function createRenderState(resumableState, generateStaticMarkup) {
-  var idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push("<script"),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      ">",
-      ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
-      "\x3c/script>"
-    ));
-  bootstrapScriptContent = idPrefix + "P:";
-  var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:";
-  idPrefix += "B:";
-  var JSCompiler_object_inline_preconnects_1687 = new Set(),
-    JSCompiler_object_inline_fontPreloads_1688 = new Set(),
-    JSCompiler_object_inline_highImagePreloads_1689 = new Set(),
-    JSCompiler_object_inline_styles_1690 = new Map(),
-    JSCompiler_object_inline_bootstrapScripts_1691 = new Set(),
-    JSCompiler_object_inline_scripts_1692 = new Set(),
-    JSCompiler_object_inline_bulkPreloads_1693 = new Set(),
-    JSCompiler_object_inline_preloads_1694 = {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    };
-  if (void 0 !== bootstrapScripts)
-    for (var i = 0; i < bootstrapScripts.length; i++) {
-      var scriptConfig = bootstrapScripts[i],
-        src,
-        crossOrigin = void 0,
-        integrity = void 0,
-        props = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: void 0
-        };
-      "string" === typeof scriptConfig
-        ? (props.href = src = scriptConfig)
-        : ((props.href = src = scriptConfig.src),
-          (props.integrity = integrity =
-            "string" === typeof scriptConfig.integrity
-              ? scriptConfig.integrity
-              : void 0),
-          (props.crossOrigin = crossOrigin =
-            "string" === typeof scriptConfig || null == scriptConfig.crossOrigin
-              ? void 0
-              : "use-credentials" === scriptConfig.crossOrigin
-                ? "use-credentials"
-                : ""));
-      scriptConfig = resumableState;
-      var href = src;
-      scriptConfig.scriptResources[href] = null;
-      scriptConfig.moduleScriptResources[href] = null;
-      scriptConfig = [];
-      pushLinkImpl(scriptConfig, props);
-      JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig);
-      bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
-      "string" === typeof integrity &&
-        bootstrapChunks.push(
-          ' integrity="',
-          escapeTextForBrowser(integrity),
-          '"'
-        );
-      "string" === typeof crossOrigin &&
-        bootstrapChunks.push(
-          ' crossorigin="',
-          escapeTextForBrowser(crossOrigin),
-          '"'
-        );
-      pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
-      bootstrapChunks.push(' async="">\x3c/script>');
-    }
-  if (void 0 !== bootstrapModules)
-    for (
-      bootstrapScripts = 0;
-      bootstrapScripts < bootstrapModules.length;
-      bootstrapScripts++
-    )
-      (props = bootstrapModules[bootstrapScripts]),
-        (crossOrigin = src = void 0),
-        (integrity = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: void 0
-        }),
-        "string" === typeof props
-          ? (integrity.href = i = props)
-          : ((integrity.href = i = props.src),
-            (integrity.integrity = crossOrigin =
-              "string" === typeof props.integrity ? props.integrity : void 0),
-            (integrity.crossOrigin = src =
-              "string" === typeof props || null == props.crossOrigin
-                ? void 0
-                : "use-credentials" === props.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (props = resumableState),
-        (scriptConfig = i),
-        (props.scriptResources[scriptConfig] = null),
-        (props.moduleScriptResources[scriptConfig] = null),
-        (props = []),
-        pushLinkImpl(props, integrity),
-        JSCompiler_object_inline_bootstrapScripts_1691.add(props),
-        bootstrapChunks.push(
-          '<script type="module" src="',
-          escapeTextForBrowser(i),
-          '"'
-        ),
-        "string" === typeof crossOrigin &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(crossOrigin),
-            '"'
-          ),
-        "string" === typeof src &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(src),
-            '"'
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  return {
-    placeholderPrefix: bootstrapScriptContent,
-    segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673,
-    boundaryPrefix: idPrefix,
-    startInlineScript: "<script",
-    startInlineStyle: "<style",
-    preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: [],
-    onHeaders: void 0,
-    headers: null,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: JSCompiler_object_inline_preconnects_1687,
-    fontPreloads: JSCompiler_object_inline_fontPreloads_1688,
-    highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689,
-    styles: JSCompiler_object_inline_styles_1690,
-    bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691,
-    scripts: JSCompiler_object_inline_scripts_1692,
-    bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693,
-    preloads: JSCompiler_object_inline_preloads_1694,
-    nonce: { script: void 0, style: void 0 },
-    stylesToHoist: !1,
-    generateStaticMarkup: generateStaticMarkup
-  };
-}
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if (renderState.generateStaticMarkup)
-    return target.push(escapeTextForBrowser(text)), !1;
-  "" === text
-    ? (target = textEmbedded)
-    : (textEmbedded && target.push("\x3c!-- --\x3e"),
-      target.push(escapeTextForBrowser(text)),
-      (target = !0));
-  return target;
-}
-function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {
-  renderState.generateStaticMarkup ||
-    (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e"));
-}
-var bind = Function.prototype.bind,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue2 = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-    } else {
-      if (null === parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue2 = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue2 = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue2 = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue2 = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue2 = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(
-  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-);
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable)
-    throw Error(
-      "Expected a suspended thenable. This is a bug in React. Please file an issue."
-    );
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(
-      "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-    );
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders)
-    throw Error("Rendered more hooks than during the previous render");
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders)
-    throw Error(
-      "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-    );
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(
-    "A function wrapped in useEffectEvent can't be called during rendering."
-  );
-}
-function unsupportedStartTransition() {
-  throw Error("startTransition cannot be called during server rendering.");
-}
-function unsupportedSetOptimisticState() {
-  throw Error("Cannot update optimistic state while rendering.");
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              murmurhash3_32_gc(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex]),
-                0
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error("Cache cannot be refreshed during server rendering.");
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue2;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE)
-          return usable._currentValue2;
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue2;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component."
-        );
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(
-          "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-        );
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error("Not implemented.");
-    },
-    cacheSignal: function () {
-      throw Error("Not implemented.");
-    }
-  },
-  prefix,
-  suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = void 0),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble;
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "[%s] " + error[0],
-          " " + JSCompiler_inline_result + " "
-        )
-      : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-var currentRequest = null;
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    performWork(request));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), request.destination.destroy(error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          pushSegmentFinale(
-            resumeSegmentID.chunks,
-            request.renderState,
-            resumeSegmentID.lastPushedText,
-            resumeSegmentID.textEmbedded
-          ),
-          (resumeSegmentID.status = 1),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push("\x3c!--F!--\x3e")
-          : segment.push("\x3c!--F--\x3e");
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$43 in defaultProps)
-          void 0 === newProps[propName$43] &&
-            (newProps[propName$43] = defaultProps[propName$43]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue2);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue2
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$43 = type[ref]),
-                (propName$43 =
-                  "function" === typeof propName$43
-                    ? propName$43.call(newProps, defaultProps, props, void 0)
-                    : propName$43),
-                null != propName$43 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$43)))
-                    : assign(defaultProps, propName$43));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            pushSegmentFinale(
-              keyPath.chunks,
-              request.renderState,
-              keyPath.lastPushedText,
-              keyPath.textEmbedded
-            ),
-            (keyPath.status = 1);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (request.renderState.generateStaticMarkup ||
-              type.chunks.push("\x3c!--&--\x3e"),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            request.renderState.generateStaticMarkup ||
-              type.chunks.push("\x3c!--/&--\x3e"),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error("ReactDOMServer does not yet support scope components.");
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row,
-            parentBoundary = task.blockedBoundary;
-          propName$43 = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState;
-          propName = task.blockedSegment;
-          var fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary = createSuspenseBoundary(
-            request,
-            task.row,
-            fallbackAbortSet,
-            null,
-            null
-          );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            propName.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          propName.children.push(boundarySegment);
-          propName.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                pushSegmentFinale(
-                  boundarySegment.chunks,
-                  request.renderState,
-                  boundarySegment.lastPushedText,
-                  boundarySegment.textEmbedded
-                ),
-                (boundarySegment.status = 1);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = propName),
-                (task.blockedPreamble = propName$43),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                pushSegmentFinale(
-                  contentRootSegment.chunks,
-                  request.renderState,
-                  contentRootSegment.lastPushedText,
-                  contentRootSegment.textEmbedded
-                ),
-                (contentRootSegment.status = 1),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$30) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$30)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = parentBoundary),
-                (task.blockedPreamble = propName$43),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              parentBoundary,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (fallback in ((newProps = {}), props))
-              "ref" !== fallback && (newProps[fallback] = props[fallback]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue2;
-          type._currentValue2 = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request)
-            throw Error(
-              "Tried to pop a Context at the root of the app. This is a bug in React."
-            );
-          request.context._currentValue2 = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue2);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-        ((null == type ? type : typeof type) + ".")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        "Expected the resume to render <" +
-                          node$jscomp$0[0] +
-                          "> in this slot but instead it rendered <" +
-                          name +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(
-                          "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                        );
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                          (getComponentNameFromType(type) || "Unknown") +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props = createSuspenseBoundary(
-                        request,
-                        task.row,
-                        fallbackAbortSet,
-                        null,
-                        null
-                      );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(
-                            "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                          );
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(
-            "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-          );
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue2,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request)
-    throw Error(
-      "It should not be possible to postpone at the root. This is a bug in React."
-    );
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(
-          "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-        );
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$62) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$62 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$62),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary)
-      throw Error(
-        "We should not have any resumable nodes in the shell. This is a bug in React."
-      );
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$63 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$63 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$63, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(
-          "There can only be one root segment. This is a bug in React."
-        );
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              pushSegmentFinale(
-                request$jscomp$1.chunks,
-                request.renderState,
-                request$jscomp$1.lastPushedText,
-                request$jscomp$1.textEmbedded
-              ),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        destination.push('<template id="'),
-        destination.push(request.placeholderPrefix),
-        (request = hoistableState.toString(16)),
-        destination.push(request),
-        destination.push('"></template>')
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          destination.push(chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        destination.push(chunks[chunkIdx]);
-      chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(
-        "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-      );
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    request.renderState.generateStaticMarkup ||
-      ((boundary = boundary.errorDigest),
-      destination.push("\x3c!--$!--\x3e"),
-      destination.push("<template"),
-      boundary &&
-        (destination.push(' data-dgst="'),
-        (boundary = escapeTextForBrowser(boundary)),
-        destination.push(boundary),
-        destination.push('"')),
-      destination.push("></template>"));
-    flushSubtree(request, destination, segment, hoistableState);
-    request = request.renderState.generateStaticMarkup
-      ? !0
-      : destination.push("\x3c!--/$--\x3e");
-    return request;
-  }
-  if (1 !== boundary.status)
-    return (
-      0 === boundary.status &&
-        (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState),
-      destination.push("\x3c!--/$--\x3e")
-    );
-  if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    flushedByteSize + boundary.byteSize > request.progressiveChunkSize
-  )
-    return (
-      (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState),
-      destination.push("\x3c!--/$--\x3e")
-    );
-  flushedByteSize += boundary.byteSize;
-  hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-  segment = boundary.row;
-  null !== segment &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --segment.pendingTasks &&
-    finishSuspenseListRow(request, segment);
-  request.renderState.generateStaticMarkup ||
-    destination.push("\x3c!--$--\x3e");
-  segment = boundary.completedSegments;
-  if (1 !== segment.length)
-    throw Error(
-      "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-    );
-  flushSegment(request, destination, segment[0], hoistableState);
-  request = request.renderState.generateStaticMarkup
-    ? !0
-    : destination.push("\x3c!--/$--\x3e");
-  return request;
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  destination.push(request.startInlineScript);
-  destination.push(">");
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        destination.push(
-          '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-        )),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        destination.push(
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          destination.push(
-            '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-          ))
-        : destination.push('$RR("'))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        destination.push(
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      destination.push('$RC("'));
-  completedSegments = i.toString(16);
-  destination.push(request.boundaryPrefix);
-  destination.push(completedSegments);
-  destination.push('","');
-  destination.push(request.segmentPrefix);
-  destination.push(completedSegments);
-  requiresStyleInsertion
-    ? (destination.push('",'),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : destination.push('"');
-  boundary = destination.push(")\x3c/script>");
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(
-        "A root segment ID must have been assigned by now. This is a bug in React."
-      );
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  destination.push(request.startInlineScript);
-  destination.push(">");
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      destination.push(
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ))
-    : destination.push('$RS("');
-  destination.push(request.segmentPrefix);
-  segmentID = segmentID.toString(16);
-  destination.push(segmentID);
-  destination.push('","');
-  destination.push(request.placeholderPrefix);
-  destination.push(segmentID);
-  destination = destination.push('")\x3c/script>');
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            destination.push(htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              destination.push(headChunks[i$jscomp$0]);
-          else {
-            var chunk = startChunkForTag("head");
-            destination.push(chunk);
-            destination.push(">");
-          }
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            destination.push(headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          destination.push(charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          destination.push(viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          destination.push(importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        resumableState.instructions |= 32;
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          destination.push(hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) {
-          var chunk$jscomp$0 = endChunkForTag("head");
-          destination.push(chunk$jscomp$0);
-        }
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            destination.push(bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            destination.push(renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              destination.push(' id="');
-              var chunk$jscomp$1 = escapeTextForBrowser(shellId);
-              destination.push(chunk$jscomp$1);
-              destination.push('"');
-            }
-            destination.push(">");
-            destination.push(
-              "requestAnimationFrame(function(){$RT=performance.now()});"
-            );
-            destination.push("\x3c/script>");
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        destination.push(viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        destination.push(hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
-        renderState$jscomp$1.push(">");
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            renderState$jscomp$1.push(
-              '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-            ))
-          : renderState$jscomp$1.push('$RX("');
-        renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
-        var chunk$jscomp$2 = id.toString(16);
-        renderState$jscomp$1.push(chunk$jscomp$2);
-        renderState$jscomp$1.push('"');
-        if (errorDigest) {
-          renderState$jscomp$1.push(",");
-          var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
-            errorDigest || ""
-          );
-          renderState$jscomp$1.push(chunk$jscomp$3);
-        }
-        var JSCompiler_inline_result =
-          renderState$jscomp$1.push(")\x3c/script>");
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$69 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$69.byteSize;
-          var completedSegments = boundary$69.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$69,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$69.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$69.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$69.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-        0 === request.clientRenderedBoundaries.length &&
-        0 === request.completedBoundaries.length &&
-        ((request.flushScheduled = !1),
-        (i = request.resumableState),
-        i.hasBody &&
-          ((partialBoundaries = endChunkForTag("body")),
-          destination.push(partialBoundaries)),
-        i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
-        (request.status = 14),
-        destination.push(null),
-        (request.destination = null));
-  }
-}
-function enqueueFlush(request) {
-  if (
-    !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination
-  ) {
-    request.flushScheduled = !0;
-    var destination = request.destination;
-    destination
-      ? flushCompletedQueues(request, destination)
-      : (request.flushScheduled = !1);
-  }
-}
-function startFlowing(request, destination) {
-  if (13 === request.status)
-    (request.status = 14), destination.destroy(request.fatalError);
-  else if (14 !== request.status && null === request.destination) {
-    request.destination = destination;
-    try {
-      flushCompletedQueues(request, destination);
-    } catch (error) {
-      logRecoverableError(request, error, {}), fatalError(request, error);
-    }
-  }
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error("The render was aborted by the server without a reason.")
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error("The render was aborted by the server with a promise.")
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$71) {
-    logRecoverableError(request, error$71, {}), fatalError(request, error$71);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-function onError() {}
-function renderToStringImpl(
-  children,
-  options,
-  generateStaticMarkup,
-  abortReason
-) {
-  var didFatal = !1,
-    fatalError = null,
-    result = "",
-    readyToStream = !1;
-  options = createResumableState(options ? options.identifierPrefix : void 0);
-  children = createRequest(
-    children,
-    options,
-    createRenderState(options, generateStaticMarkup),
-    createFormatContext(0, null, 0, null),
-    Infinity,
-    onError,
-    void 0,
-    function () {
-      readyToStream = !0;
-    },
-    void 0,
-    void 0,
-    void 0
-  );
-  children.flushScheduled = null !== children.destination;
-  performWork(children);
-  10 === children.status && (children.status = 11);
-  null === children.trackedPostpones &&
-    safelyEmitEarlyPreloads(children, 0 === children.pendingRootTasks);
-  abort(children, abortReason);
-  startFlowing(children, {
-    push: function (chunk) {
-      null !== chunk && (result += chunk);
-      return !0;
-    },
-    destroy: function (error) {
-      didFatal = !0;
-      fatalError = error;
-    }
-  });
-  if (didFatal && fatalError !== abortReason) throw fatalError;
-  if (!readyToStream)
-    throw Error(
-      "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition."
-    );
-  return result;
-}
-exports.renderToStaticMarkup = function (children, options) {
-  return renderToStringImpl(
-    children,
-    options,
-    !0,
-    'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
-  );
-};
-exports.renderToString = function (children, options) {
-  return renderToStringImpl(
-    children,
-    options,
-    !1,
-    'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
-  );
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server.browser.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.browser.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10601 +1,0 @@
-/**
- * @license React
- * react-dom-server.browser.development.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function styleReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-    }
-    function scriptReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function objectName(object) {
-      object = Object.prototype.toString.call(object);
-      return object.slice(8, object.length - 1);
-    }
-    function describeKeyForErrorMessage(key) {
-      var encodedKey = JSON.stringify(key);
-      return '"' + key + '"' === encodedKey ? key : encodedKey;
-    }
-    function describeValueForErrorMessage(value) {
-      switch (typeof value) {
-        case "string":
-          return JSON.stringify(
-            10 >= value.length ? value : value.slice(0, 10) + "..."
-          );
-        case "object":
-          if (isArrayImpl(value)) return "[...]";
-          if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-            return "client";
-          value = objectName(value);
-          return "Object" === value ? "{...}" : value;
-        case "function":
-          return value.$$typeof === CLIENT_REFERENCE_TAG
-            ? "client"
-            : (value = value.displayName || value.name)
-              ? "function " + value
-              : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describeElementType(type) {
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-      }
-      if ("object" === typeof type)
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeElementType(type.render);
-          case REACT_MEMO_TYPE:
-            return describeElementType(type.type);
-          case REACT_LAZY_TYPE:
-            var payload = type._payload;
-            type = type._init;
-            try {
-              return describeElementType(type(payload));
-            } catch (x) {}
-        }
-      return "";
-    }
-    function describeObjectForErrorMessage(objectOrArray, expandedName) {
-      var objKind = objectName(objectOrArray);
-      if ("Object" !== objKind && "Array" !== objKind) return objKind;
-      var start = -1,
-        length = 0;
-      if (isArrayImpl(objectOrArray))
-        if (jsxChildrenParents.has(objectOrArray)) {
-          var type = jsxChildrenParents.get(objectOrArray);
-          objKind = "<" + describeElementType(type) + ">";
-          for (var i = 0; i < objectOrArray.length; i++) {
-            var value = objectOrArray[i];
-            value =
-              "string" === typeof value
-                ? value
-                : "object" === typeof value && null !== value
-                  ? "{" + describeObjectForErrorMessage(value) + "}"
-                  : "{" + describeValueForErrorMessage(value) + "}";
-            "" + i === expandedName
-              ? ((start = objKind.length),
-                (length = value.length),
-                (objKind += value))
-              : (objKind =
-                  15 > value.length && 40 > objKind.length + value.length
-                    ? objKind + value
-                    : objKind + "{...}");
-          }
-          objKind += "</" + describeElementType(type) + ">";
-        } else {
-          objKind = "[";
-          for (type = 0; type < objectOrArray.length; type++)
-            0 < type && (objKind += ", "),
-              (i = objectOrArray[type]),
-              (i =
-                "object" === typeof i && null !== i
-                  ? describeObjectForErrorMessage(i)
-                  : describeValueForErrorMessage(i)),
-              "" + type === expandedName
-                ? ((start = objKind.length),
-                  (length = i.length),
-                  (objKind += i))
-                : (objKind =
-                    10 > i.length && 40 > objKind.length + i.length
-                      ? objKind + i
-                      : objKind + "...");
-          objKind += "]";
-        }
-      else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-        objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-      else {
-        if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-        if (jsxPropsParents.has(objectOrArray)) {
-          objKind = jsxPropsParents.get(objectOrArray);
-          objKind = "<" + (describeElementType(objKind) || "...");
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++) {
-            objKind += " ";
-            value = type[i];
-            objKind += describeKeyForErrorMessage(value) + "=";
-            var _value2 = objectOrArray[value];
-            var _substr2 =
-              value === expandedName &&
-              "object" === typeof _value2 &&
-              null !== _value2
-                ? describeObjectForErrorMessage(_value2)
-                : describeValueForErrorMessage(_value2);
-            "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-            value === expandedName
-              ? ((start = objKind.length),
-                (length = _substr2.length),
-                (objKind += _substr2))
-              : (objKind =
-                  10 > _substr2.length && 40 > objKind.length + _substr2.length
-                    ? objKind + _substr2
-                    : objKind + "...");
-          }
-          objKind += ">";
-        } else {
-          objKind = "{";
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++)
-            0 < i && (objKind += ", "),
-              (value = type[i]),
-              (objKind += describeKeyForErrorMessage(value) + ": "),
-              (_value2 = objectOrArray[value]),
-              (_value2 =
-                "object" === typeof _value2 && null !== _value2
-                  ? describeObjectForErrorMessage(_value2)
-                  : describeValueForErrorMessage(_value2)),
-              value === expandedName
-                ? ((start = objKind.length),
-                  (length = _value2.length),
-                  (objKind += _value2))
-                : (objKind =
-                    10 > _value2.length && 40 > objKind.length + _value2.length
-                      ? objKind + _value2
-                      : objKind + "...");
-          objKind += "}";
-        }
-      }
-      return void 0 === expandedName
-        ? objKind
-        : -1 < start && 0 < length
-          ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-            "\n  " + objKind + "\n  " + objectOrArray)
-          : "\n  " + objKind;
-    }
-    function murmurhash3_32_gc(key, seed) {
-      var remainder = key.length & 3;
-      var bytes = key.length - remainder;
-      var h1 = seed;
-      for (seed = 0; seed < bytes; ) {
-        var k1 =
-          (key.charCodeAt(seed) & 255) |
-          ((key.charCodeAt(++seed) & 255) << 8) |
-          ((key.charCodeAt(++seed) & 255) << 16) |
-          ((key.charCodeAt(++seed) & 255) << 24);
-        ++seed;
-        k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        k1 = (k1 << 15) | (k1 >>> 17);
-        k1 =
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        h1 ^= k1;
-        h1 = (h1 << 13) | (h1 >>> 19);
-        h1 =
-          (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-        h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-      }
-      k1 = 0;
-      switch (remainder) {
-        case 3:
-          k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-        case 2:
-          k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-        case 1:
-          (k1 ^= key.charCodeAt(seed) & 255),
-            (k1 =
-              (3432918353 * (k1 & 65535) +
-                (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295),
-            (k1 = (k1 << 15) | (k1 >>> 17)),
-            (h1 ^=
-              (461845907 * (k1 & 65535) +
-                (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295);
-      }
-      h1 ^= key.length;
-      h1 ^= h1 >>> 16;
-      h1 =
-        (2246822507 * (h1 & 65535) +
-          (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      h1 ^= h1 >>> 13;
-      h1 =
-        (3266489909 * (h1 & 65535) +
-          (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      return (h1 ^ (h1 >>> 16)) >>> 0;
-    }
-    function scheduleWork(callback) {
-      taskQueue.push(callback);
-      channel.port2.postMessage(null);
-    }
-    function handleErrorInNextTick(error) {
-      setTimeout(function () {
-        throw error;
-      });
-    }
-    function writeChunk(destination, chunk) {
-      if (0 !== chunk.byteLength)
-        if (2048 < chunk.byteLength)
-          0 < writtenBytes &&
-            (destination.enqueue(
-              new Uint8Array(currentView.buffer, 0, writtenBytes)
-            ),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0)),
-            destination.enqueue(chunk);
-        else {
-          var allowableBytes = currentView.length - writtenBytes;
-          allowableBytes < chunk.byteLength &&
-            (0 === allowableBytes
-              ? destination.enqueue(currentView)
-              : (currentView.set(
-                  chunk.subarray(0, allowableBytes),
-                  writtenBytes
-                ),
-                destination.enqueue(currentView),
-                (chunk = chunk.subarray(allowableBytes))),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0));
-          currentView.set(chunk, writtenBytes);
-          writtenBytes += chunk.byteLength;
-        }
-    }
-    function writeChunkAndReturn(destination, chunk) {
-      writeChunk(destination, chunk);
-      return !0;
-    }
-    function completeWriting(destination) {
-      currentView &&
-        0 < writtenBytes &&
-        (destination.enqueue(
-          new Uint8Array(currentView.buffer, 0, writtenBytes)
-        ),
-        (currentView = null),
-        (writtenBytes = 0));
-    }
-    function stringToChunk(content) {
-      return textEncoder.encode(content);
-    }
-    function stringToPrecomputedChunk(content) {
-      content = textEncoder.encode(content);
-      2048 < content.byteLength &&
-        console.error(
-          "precomputed chunks must be smaller than the view size configured for this host. This is a bug in React."
-        );
-      return content;
-    }
-    function byteLengthOfChunk(chunk) {
-      return chunk.byteLength;
-    }
-    function closeWithError(destination, error) {
-      "function" === typeof destination.error
-        ? destination.error(error)
-        : destination.close();
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkHtmlStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function escapeTextForBrowser(text) {
-      if (
-        "boolean" === typeof text ||
-        "number" === typeof text ||
-        "bigint" === typeof text
-      )
-        return "" + text;
-      checkHtmlStringCoercion(text);
-      text = "" + text;
-      var match = matchHtmlRegExp.exec(text);
-      if (match) {
-        var html = "",
-          index,
-          lastIndex = 0;
-        for (index = match.index; index < text.length; index++) {
-          switch (text.charCodeAt(index)) {
-            case 34:
-              match = "&quot;";
-              break;
-            case 38:
-              match = "&amp;";
-              break;
-            case 39:
-              match = "&#x27;";
-              break;
-            case 60:
-              match = "&lt;";
-              break;
-            case 62:
-              match = "&gt;";
-              break;
-            default:
-              continue;
-          }
-          lastIndex !== index && (html += text.slice(lastIndex, index));
-          lastIndex = index + 1;
-          html += match;
-        }
-        text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-      }
-      return text;
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function escapeEntireInlineScriptContent(scriptText) {
-      checkHtmlStringCoercion(scriptText);
-      return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-    }
-    function createRenderState(
-      resumableState,
-      nonce,
-      externalRuntimeConfig,
-      importMap,
-      onHeaders,
-      maxHeadersLength
-    ) {
-      externalRuntimeConfig =
-        "string" === typeof nonce ? nonce : nonce && nonce.script;
-      var inlineScriptWithNonce =
-          void 0 === externalRuntimeConfig
-            ? startInlineScript
-            : stringToPrecomputedChunk(
-                '<script nonce="' +
-                  escapeTextForBrowser(externalRuntimeConfig) +
-                  '"'
-              ),
-        nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-        inlineStyleWithNonce =
-          void 0 === nonceStyle
-            ? startInlineStyle
-            : stringToPrecomputedChunk(
-                '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-              ),
-        idPrefix = resumableState.idPrefix,
-        bootstrapChunks = [],
-        bootstrapScriptContent = resumableState.bootstrapScriptContent,
-        bootstrapScripts = resumableState.bootstrapScripts,
-        bootstrapModules = resumableState.bootstrapModules;
-      void 0 !== bootstrapScriptContent &&
-        (bootstrapChunks.push(inlineScriptWithNonce),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          stringToChunk(
-            escapeEntireInlineScriptContent(bootstrapScriptContent)
-          ),
-          endInlineScript
-        ));
-      bootstrapScriptContent = [];
-      void 0 !== importMap &&
-        (bootstrapScriptContent.push(importMapScriptStart),
-        bootstrapScriptContent.push(
-          stringToChunk(
-            escapeEntireInlineScriptContent(JSON.stringify(importMap))
-          )
-        ),
-        bootstrapScriptContent.push(importMapScriptEnd));
-      onHeaders &&
-        "number" === typeof maxHeadersLength &&
-        0 >= maxHeadersLength &&
-        console.error(
-          "React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.",
-          0 === maxHeadersLength ? "zero" : maxHeadersLength
-        );
-      importMap = onHeaders
-        ? {
-            preconnects: "",
-            fontPreloads: "",
-            highImagePreloads: "",
-            remainingCapacity:
-              2 +
-              ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-          }
-        : null;
-      onHeaders = {
-        placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-        segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-        boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-        startInlineScript: inlineScriptWithNonce,
-        startInlineStyle: inlineStyleWithNonce,
-        preamble: createPreambleState(),
-        externalRuntimeScript: null,
-        bootstrapChunks: bootstrapChunks,
-        importMapChunks: bootstrapScriptContent,
-        onHeaders: onHeaders,
-        headers: importMap,
-        resets: {
-          font: {},
-          dns: {},
-          connect: { default: {}, anonymous: {}, credentials: {} },
-          image: {},
-          style: {}
-        },
-        charsetChunks: [],
-        viewportChunks: [],
-        hoistableChunks: [],
-        preconnects: new Set(),
-        fontPreloads: new Set(),
-        highImagePreloads: new Set(),
-        styles: new Map(),
-        bootstrapScripts: new Set(),
-        scripts: new Set(),
-        bulkPreloads: new Set(),
-        preloads: {
-          images: new Map(),
-          stylesheets: new Map(),
-          scripts: new Map(),
-          moduleScripts: new Map()
-        },
-        nonce: { script: externalRuntimeConfig, style: nonceStyle },
-        hoistableState: null,
-        stylesToHoist: !1
-      };
-      if (void 0 !== bootstrapScripts)
-        for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-          (maxHeadersLength = bootstrapScripts[importMap]),
-            (inlineStyleWithNonce = nonceStyle = void 0),
-            (idPrefix = {
-              rel: "preload",
-              as: "script",
-              fetchPriority: "low",
-              nonce: nonce
-            }),
-            "string" === typeof maxHeadersLength
-              ? (idPrefix.href = inlineScriptWithNonce = maxHeadersLength)
-              : ((idPrefix.href = inlineScriptWithNonce = maxHeadersLength.src),
-                (idPrefix.integrity = inlineStyleWithNonce =
-                  "string" === typeof maxHeadersLength.integrity
-                    ? maxHeadersLength.integrity
-                    : void 0),
-                (idPrefix.crossOrigin = nonceStyle =
-                  "string" === typeof maxHeadersLength ||
-                  null == maxHeadersLength.crossOrigin
-                    ? void 0
-                    : "use-credentials" === maxHeadersLength.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              inlineScriptWithNonce,
-              idPrefix
-            ),
-            bootstrapChunks.push(
-              startScriptSrc,
-              stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-                attributeEnd
-              ),
-            "string" === typeof inlineStyleWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                stringToChunk(escapeTextForBrowser(inlineStyleWithNonce)),
-                attributeEnd
-              ),
-            "string" === typeof nonceStyle &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                stringToChunk(escapeTextForBrowser(nonceStyle)),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      if (void 0 !== bootstrapModules)
-        for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-          (bootstrapScripts = bootstrapModules[nonce]),
-            (inlineScriptWithNonce = maxHeadersLength = void 0),
-            (nonceStyle = {
-              rel: "modulepreload",
-              fetchPriority: "low",
-              nonce: externalRuntimeConfig
-            }),
-            "string" === typeof bootstrapScripts
-              ? (nonceStyle.href = importMap = bootstrapScripts)
-              : ((nonceStyle.href = importMap = bootstrapScripts.src),
-                (nonceStyle.integrity = inlineScriptWithNonce =
-                  "string" === typeof bootstrapScripts.integrity
-                    ? bootstrapScripts.integrity
-                    : void 0),
-                (nonceStyle.crossOrigin = maxHeadersLength =
-                  "string" === typeof bootstrapScripts ||
-                  null == bootstrapScripts.crossOrigin
-                    ? void 0
-                    : "use-credentials" === bootstrapScripts.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              importMap,
-              nonceStyle
-            ),
-            bootstrapChunks.push(
-              startModuleSrc,
-              stringToChunk(escapeTextForBrowser(importMap)),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-                attributeEnd
-              ),
-            "string" === typeof inlineScriptWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-                attributeEnd
-              ),
-            "string" === typeof maxHeadersLength &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      return onHeaders;
-    }
-    function createResumableState(
-      identifierPrefix,
-      externalRuntimeConfig,
-      bootstrapScriptContent,
-      bootstrapScripts,
-      bootstrapModules
-    ) {
-      return {
-        idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-        nextFormID: 0,
-        streamingFormat: 0,
-        bootstrapScriptContent: bootstrapScriptContent,
-        bootstrapScripts: bootstrapScripts,
-        bootstrapModules: bootstrapModules,
-        instructions: NothingSent,
-        hasBody: !1,
-        hasHtml: !1,
-        unknownResources: {},
-        dnsResources: {},
-        connectResources: { default: {}, anonymous: {}, credentials: {} },
-        imageResources: {},
-        styleResources: {},
-        scriptResources: {},
-        moduleUnknownResources: {},
-        moduleScriptResources: {}
-      };
-    }
-    function createPreambleState() {
-      return { htmlChunks: null, headChunks: null, bodyChunks: null };
-    }
-    function createFormatContext(
-      insertionMode,
-      selectedValue,
-      tagScope,
-      viewTransition
-    ) {
-      return {
-        insertionMode: insertionMode,
-        selectedValue: selectedValue,
-        tagScope: tagScope,
-        viewTransition: viewTransition
-      };
-    }
-    function createRootFormatContext(namespaceURI) {
-      return createFormatContext(
-        "http://www.w3.org/2000/svg" === namespaceURI
-          ? SVG_MODE
-          : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-            ? MATHML_MODE
-            : ROOT_HTML_MODE,
-        null,
-        0,
-        null
-      );
-    }
-    function getChildFormatContext(parentContext, type, props) {
-      var subtreeScope = parentContext.tagScope & -25;
-      switch (type) {
-        case "noscript":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-        case "select":
-          return createFormatContext(
-            HTML_MODE,
-            null != props.value ? props.value : props.defaultValue,
-            subtreeScope,
-            null
-          );
-        case "svg":
-          return createFormatContext(SVG_MODE, null, subtreeScope, null);
-        case "picture":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-        case "math":
-          return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-        case "foreignObject":
-          return createFormatContext(HTML_MODE, null, subtreeScope, null);
-        case "table":
-          return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-        case "thead":
-        case "tbody":
-        case "tfoot":
-          return createFormatContext(
-            HTML_TABLE_BODY_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "colgroup":
-          return createFormatContext(
-            HTML_COLGROUP_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "tr":
-          return createFormatContext(
-            HTML_TABLE_ROW_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "head":
-          if (parentContext.insertionMode < HTML_MODE)
-            return createFormatContext(
-              HTML_HEAD_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-          break;
-        case "html":
-          if (parentContext.insertionMode === ROOT_HTML_MODE)
-            return createFormatContext(
-              HTML_HTML_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-      }
-      return parentContext.insertionMode >= HTML_TABLE_MODE ||
-        parentContext.insertionMode < HTML_MODE
-        ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-        : parentContext.tagScope !== subtreeScope
-          ? createFormatContext(
-              parentContext.insertionMode,
-              parentContext.selectedValue,
-              subtreeScope,
-              null
-            )
-          : parentContext;
-    }
-    function getSuspenseViewTransition(parentViewTransition) {
-      return null === parentViewTransition
-        ? null
-        : {
-            update: parentViewTransition.update,
-            enter: "none",
-            exit: "none",
-            share: parentViewTransition.update,
-            name: parentViewTransition.autoName,
-            autoName: parentViewTransition.autoName,
-            nameIdx: 0
-          };
-    }
-    function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-      parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        parentContext.tagScope | 12,
-        getSuspenseViewTransition(parentContext.viewTransition)
-      );
-    }
-    function getSuspenseContentFormatContext(resumableState, parentContext) {
-      resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-      var subtreeScope = parentContext.tagScope | 16;
-      null !== resumableState &&
-        "none" !== resumableState.share &&
-        (subtreeScope |= 64);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        subtreeScope,
-        resumableState
-      );
-    }
-    function pushTextInstance(target, text, renderState, textEmbedded) {
-      if ("" === text) return textEmbedded;
-      textEmbedded && target.push(textSeparator);
-      target.push(stringToChunk(escapeTextForBrowser(text)));
-      return !0;
-    }
-    function pushStyleAttribute(target, style) {
-      if ("object" !== typeof style)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      var isFirst = !0,
-        styleName;
-      for (styleName in style)
-        if (hasOwnProperty.call(style, styleName)) {
-          var styleValue = style[styleName];
-          if (
-            null != styleValue &&
-            "boolean" !== typeof styleValue &&
-            "" !== styleValue
-          ) {
-            if (0 === styleName.indexOf("--")) {
-              var nameChunk = stringToChunk(escapeTextForBrowser(styleName));
-              checkCSSPropertyStringCoercion(styleValue, styleName);
-              styleValue = stringToChunk(
-                escapeTextForBrowser(("" + styleValue).trim())
-              );
-            } else {
-              nameChunk = styleName;
-              var value = styleValue;
-              if (-1 < nameChunk.indexOf("-")) {
-                var name = nameChunk;
-                (warnedStyleNames.hasOwnProperty(name) &&
-                  warnedStyleNames[name]) ||
-                  ((warnedStyleNames[name] = !0),
-                  console.error(
-                    "Unsupported style property %s. Did you mean %s?",
-                    name,
-                    camelize(name.replace(msPattern$1, "ms-"))
-                  ));
-              } else if (badVendoredStyleNamePattern.test(nameChunk))
-                (name = nameChunk),
-                  (warnedStyleNames.hasOwnProperty(name) &&
-                    warnedStyleNames[name]) ||
-                    ((warnedStyleNames[name] = !0),
-                    console.error(
-                      "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                      name,
-                      name.charAt(0).toUpperCase() + name.slice(1)
-                    ));
-              else if (badStyleValueWithSemicolonPattern.test(value)) {
-                name = nameChunk;
-                var value$jscomp$0 = value;
-                (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-                  warnedStyleValues[value$jscomp$0]) ||
-                  ((warnedStyleValues[value$jscomp$0] = !0),
-                  console.error(
-                    'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                    name,
-                    value$jscomp$0.replace(
-                      badStyleValueWithSemicolonPattern,
-                      ""
-                    )
-                  ));
-              }
-              "number" === typeof value &&
-                (isNaN(value)
-                  ? warnedForNaNValue ||
-                    ((warnedForNaNValue = !0),
-                    console.error(
-                      "`NaN` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    ))
-                  : isFinite(value) ||
-                    warnedForInfinityValue ||
-                    ((warnedForInfinityValue = !0),
-                    console.error(
-                      "`Infinity` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    )));
-              nameChunk = styleName;
-              value = styleNameCache.get(nameChunk);
-              void 0 !== value
-                ? (nameChunk = value)
-                : ((value = stringToPrecomputedChunk(
-                    escapeTextForBrowser(
-                      nameChunk
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern, "-ms-")
-                    )
-                  )),
-                  styleNameCache.set(nameChunk, value),
-                  (nameChunk = value));
-              "number" === typeof styleValue
-                ? (styleValue =
-                    0 === styleValue || unitlessNumbers.has(styleName)
-                      ? stringToChunk("" + styleValue)
-                      : stringToChunk(styleValue + "px"))
-                : (checkCSSPropertyStringCoercion(styleValue, styleName),
-                  (styleValue = stringToChunk(
-                    escapeTextForBrowser(("" + styleValue).trim())
-                  )));
-            }
-            isFirst
-              ? ((isFirst = !1),
-                target.push(
-                  styleAttributeStart,
-                  nameChunk,
-                  styleAssign,
-                  styleValue
-                ))
-              : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-          }
-        }
-      isFirst || target.push(attributeEnd);
-    }
-    function pushBooleanAttribute(target, name, value) {
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeEmptyString
-        );
-    }
-    function pushStringAttribute(target, name, value) {
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        "boolean" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-    }
-    function pushAdditionalFormField(value, key) {
-      this.push(startHiddenInputChunk);
-      validateAdditionalFormField(value);
-      pushStringAttribute(this, "name", key);
-      pushStringAttribute(this, "value", value);
-      this.push(endOfStartTagSelfClosing);
-    }
-    function validateAdditionalFormField(value) {
-      if ("string" !== typeof value)
-        throw Error(
-          "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-        );
-    }
-    function getCustomFormFields(resumableState, formAction) {
-      if ("function" === typeof formAction.$$FORM_ACTION) {
-        var id = resumableState.nextFormID++;
-        resumableState = resumableState.idPrefix + id;
-        try {
-          var customFields = formAction.$$FORM_ACTION(resumableState);
-          if (customFields) {
-            var formData = customFields.data;
-            null != formData && formData.forEach(validateAdditionalFormField);
-          }
-          return customFields;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            "function" === typeof x.then
-          )
-            throw x;
-          console.error(
-            "Failed to serialize an action for progressive enhancement:\n%s",
-            x
-          );
-        }
-      }
-      return null;
-    }
-    function pushFormActionAttribute(
-      target,
-      resumableState,
-      renderState,
-      formAction,
-      formEncType,
-      formMethod,
-      formTarget,
-      name
-    ) {
-      var formData = null;
-      if ("function" === typeof formAction) {
-        null === name ||
-          didWarnFormActionName ||
-          ((didWarnFormActionName = !0),
-          console.error(
-            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-          ));
-        (null === formEncType && null === formMethod) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(resumableState, formAction);
-        null !== customFields
-          ? ((name = customFields.name),
-            (formAction = customFields.action || ""),
-            (formEncType = customFields.encType),
-            (formMethod = customFields.method),
-            (formTarget = customFields.target),
-            (formData = customFields.data))
-          : (target.push(
-              attributeSeparator,
-              stringToChunk("formAction"),
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget = formMethod = formEncType = formAction = name = null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != name && pushAttribute(target, "name", name);
-      null != formAction && pushAttribute(target, "formAction", formAction);
-      null != formEncType && pushAttribute(target, "formEncType", formEncType);
-      null != formMethod && pushAttribute(target, "formMethod", formMethod);
-      null != formTarget && pushAttribute(target, "formTarget", formTarget);
-      return formData;
-    }
-    function pushAttribute(target, name, value) {
-      switch (name) {
-        case "className":
-          pushStringAttribute(target, "class", value);
-          break;
-        case "tabIndex":
-          pushStringAttribute(target, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          pushStringAttribute(target, name, value);
-          break;
-        case "style":
-          pushStyleAttribute(target, value);
-          break;
-        case "src":
-        case "href":
-          if ("" === value) {
-            "src" === name
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                );
-            break;
-          }
-        case "action":
-        case "formAction":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-          break;
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "ref":
-          break;
-        case "autoFocus":
-        case "multiple":
-        case "muted":
-          pushBooleanAttribute(target, name.toLowerCase(), value);
-          break;
-        case "xlinkHref":
-          if (
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            stringToChunk("xlink:href"),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[name] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              name
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeEmptyString
-            );
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeEmptyString
-              )
-            : !1 !== value &&
-              "function" !== typeof value &&
-              "symbol" !== typeof value &&
-              target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeAssign,
-                stringToChunk(escapeTextForBrowser(value)),
-                attributeEnd
-              );
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            !isNaN(value) &&
-            1 <= value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "rowSpan":
-        case "start":
-          "function" === typeof value ||
-            "symbol" === typeof value ||
-            isNaN(value) ||
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "xlinkActuate":
-          pushStringAttribute(target, "xlink:actuate", value);
-          break;
-        case "xlinkArcrole":
-          pushStringAttribute(target, "xlink:arcrole", value);
-          break;
-        case "xlinkRole":
-          pushStringAttribute(target, "xlink:role", value);
-          break;
-        case "xlinkShow":
-          pushStringAttribute(target, "xlink:show", value);
-          break;
-        case "xlinkTitle":
-          pushStringAttribute(target, "xlink:title", value);
-          break;
-        case "xlinkType":
-          pushStringAttribute(target, "xlink:type", value);
-          break;
-        case "xmlBase":
-          pushStringAttribute(target, "xml:base", value);
-          break;
-        case "xmlLang":
-          pushStringAttribute(target, "xml:lang", value);
-          break;
-        case "xmlSpace":
-          pushStringAttribute(target, "xml:space", value);
-          break;
-        default:
-          if (
-            !(2 < name.length) ||
-            ("o" !== name[0] && "O" !== name[0]) ||
-            ("n" !== name[1] && "N" !== name[1])
-          )
-            if (
-              ((name = aliases.get(name) || name), isAttributeNameSafe(name))
-            ) {
-              switch (typeof value) {
-                case "function":
-                case "symbol":
-                  return;
-                case "boolean":
-                  var prefix = name.toLowerCase().slice(0, 5);
-                  if ("data-" !== prefix && "aria-" !== prefix) return;
-              }
-              target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeAssign,
-                stringToChunk(escapeTextForBrowser(value)),
-                attributeEnd
-              );
-            }
-      }
-    }
-    function pushInnerHTML(target, innerHTML, children) {
-      if (null != innerHTML) {
-        if (null != children)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        innerHTML = innerHTML.__html;
-        null !== innerHTML &&
-          void 0 !== innerHTML &&
-          (checkHtmlStringCoercion(innerHTML),
-          target.push(stringToChunk("" + innerHTML)));
-      }
-    }
-    function checkSelectProp(props, propName) {
-      var value = props[propName];
-      null != value &&
-        ((value = isArrayImpl(value)),
-        props.multiple && !value
-          ? console.error(
-              "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-              propName
-            )
-          : !props.multiple &&
-            value &&
-            console.error(
-              "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-              propName
-            ));
-    }
-    function flattenOptionChildren(children) {
-      var content = "";
-      React.Children.forEach(children, function (child) {
-        null != child &&
-          ((content += child),
-          didWarnInvalidOptionChildren ||
-            "string" === typeof child ||
-            "number" === typeof child ||
-            "bigint" === typeof child ||
-            ((didWarnInvalidOptionChildren = !0),
-            console.error(
-              "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-            )));
-      });
-      return content;
-    }
-    function injectFormReplayingRuntime(resumableState, renderState) {
-      if ((resumableState.instructions & 16) === NothingSent) {
-        resumableState.instructions |= 16;
-        var preamble = renderState.preamble,
-          bootstrapChunks = renderState.bootstrapChunks;
-        (preamble.htmlChunks || preamble.headChunks) &&
-        0 === bootstrapChunks.length
-          ? (bootstrapChunks.push(renderState.startInlineScript),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            ))
-          : bootstrapChunks.unshift(
-              renderState.startInlineScript,
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            );
-      }
-    }
-    function pushLinkImpl(target, props) {
-      target.push(startChunkForTag("link"));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function escapeStyleTextContent(styleText) {
-      checkHtmlStringCoercion(styleText);
-      return ("" + styleText).replace(styleRegex, styleReplacer);
-    }
-    function pushSelfClosing(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  tag +
-                    " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function pushTitleImpl(target, props) {
-      target.push(startChunkForTag("title"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      props = Array.isArray(children)
-        ? 2 > children.length
-          ? children[0]
-          : null
-        : children;
-      "function" !== typeof props &&
-        "symbol" !== typeof props &&
-        null !== props &&
-        void 0 !== props &&
-        target.push(stringToChunk(escapeTextForBrowser("" + props)));
-      pushInnerHTML(target, innerHTML, children);
-      target.push(endChunkForTag("title"));
-      return null;
-    }
-    function pushScriptImpl(target, props) {
-      target.push(startChunkForTag("script"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      null != children &&
-        "string" !== typeof children &&
-        ((props =
-          "number" === typeof children
-            ? "a number for children"
-            : Array.isArray(children)
-              ? "an array for children"
-              : "something unexpected for children"),
-        console.error(
-          "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-          props
-        ));
-      pushInnerHTML(target, innerHTML, children);
-      "string" === typeof children &&
-        target.push(stringToChunk(escapeEntireInlineScriptContent(children)));
-      target.push(endChunkForTag("script"));
-      return null;
-    }
-    function pushStartSingletonElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return tag;
-    }
-    function pushStartGenericElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return "string" === typeof tag
-        ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null)
-        : tag;
-    }
-    function startChunkForTag(tag) {
-      var tagStartChunk = validatedTagCache.get(tag);
-      if (void 0 === tagStartChunk) {
-        if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-        tagStartChunk = stringToPrecomputedChunk("<" + tag);
-        validatedTagCache.set(tag, tagStartChunk);
-      }
-      return tagStartChunk;
-    }
-    function pushStartInstance(
-      target$jscomp$0,
-      type,
-      props,
-      resumableState,
-      renderState,
-      preambleState,
-      hoistableState,
-      formatContext,
-      textEmbedded
-    ) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-      else
-        switch (type) {
-          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":
-            JSCompiler_inline_result = !1;
-            break b;
-          default:
-            JSCompiler_inline_result = !0;
-        }
-      JSCompiler_inline_result ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, null);
-      !props.suppressContentEditableWarning &&
-        props.contentEditable &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-      formatContext.insertionMode !== SVG_MODE &&
-        formatContext.insertionMode !== MATHML_MODE &&
-        -1 === type.indexOf("-") &&
-        type.toLowerCase() !== type &&
-        console.error(
-          "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-          type
-        );
-      switch (type) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-          break;
-        case "a":
-          target$jscomp$0.push(startChunkForTag("a"));
-          var children = null,
-            innerHTML = null,
-            propKey;
-          for (propKey in props)
-            if (hasOwnProperty.call(props, propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "children":
-                    children = propValue;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML = propValue;
-                    break;
-                  case "href":
-                    "" === propValue
-                      ? pushStringAttribute(target$jscomp$0, "href", "")
-                      : pushAttribute(target$jscomp$0, propKey, propValue);
-                    break;
-                  default:
-                    pushAttribute(target$jscomp$0, propKey, propValue);
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML, children);
-          if ("string" === typeof children) {
-            target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children)));
-            var JSCompiler_inline_result$jscomp$0 = null;
-          } else JSCompiler_inline_result$jscomp$0 = children;
-          return JSCompiler_inline_result$jscomp$0;
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          checkSelectProp(props, "value");
-          checkSelectProp(props, "defaultValue");
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultSelectValue ||
-            (console.error(
-              "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultSelectValue = !0));
-          target$jscomp$0.push(startChunkForTag("select"));
-          var children$jscomp$0 = null,
-            innerHTML$jscomp$0 = null,
-            propKey$jscomp$0;
-          for (propKey$jscomp$0 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-              var propValue$jscomp$0 = props[propKey$jscomp$0];
-              if (null != propValue$jscomp$0)
-                switch (propKey$jscomp$0) {
-                  case "children":
-                    children$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "defaultValue":
-                  case "value":
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$0,
-                      propValue$jscomp$0
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-          return children$jscomp$0;
-        case "option":
-          var selectedValue = formatContext.selectedValue;
-          target$jscomp$0.push(startChunkForTag("option"));
-          var children$jscomp$1 = null,
-            value = null,
-            selected = null,
-            innerHTML$jscomp$1 = null,
-            propKey$jscomp$1;
-          for (propKey$jscomp$1 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-              var propValue$jscomp$1 = props[propKey$jscomp$1];
-              if (null != propValue$jscomp$1)
-                switch (propKey$jscomp$1) {
-                  case "children":
-                    children$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "selected":
-                    selected = propValue$jscomp$1;
-                    didWarnSelectedSetOnOption ||
-                      (console.error(
-                        "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                      ),
-                      (didWarnSelectedSetOnOption = !0));
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "value":
-                    value = propValue$jscomp$1;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$1,
-                      propValue$jscomp$1
-                    );
-                }
-            }
-          if (null != selectedValue) {
-            if (null !== value) {
-              checkAttributeStringCoercion(value, "value");
-              var stringValue = "" + value;
-            } else
-              null === innerHTML$jscomp$1 ||
-                didWarnInvalidOptionInnerHTML ||
-                ((didWarnInvalidOptionInnerHTML = !0),
-                console.error(
-                  "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-                )),
-                (stringValue = flattenOptionChildren(children$jscomp$1));
-            if (isArrayImpl(selectedValue))
-              for (var i = 0; i < selectedValue.length; i++) {
-                if (
-                  (checkAttributeStringCoercion(selectedValue[i], "value"),
-                  "" + selectedValue[i] === stringValue)
-                ) {
-                  target$jscomp$0.push(selectedMarkerAttribute);
-                  break;
-                }
-              }
-            else
-              checkAttributeStringCoercion(selectedValue, "select.value"),
-                "" + selectedValue === stringValue &&
-                  target$jscomp$0.push(selectedMarkerAttribute);
-          } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-          return children$jscomp$1;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultTextareaValue ||
-            (console.error(
-              "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultTextareaValue = !0));
-          target$jscomp$0.push(startChunkForTag("textarea"));
-          var value$jscomp$0 = null,
-            defaultValue = null,
-            children$jscomp$2 = null,
-            propKey$jscomp$2;
-          for (propKey$jscomp$2 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-              var propValue$jscomp$2 = props[propKey$jscomp$2];
-              if (null != propValue$jscomp$2)
-                switch (propKey$jscomp$2) {
-                  case "children":
-                    children$jscomp$2 = propValue$jscomp$2;
-                    break;
-                  case "value":
-                    value$jscomp$0 = propValue$jscomp$2;
-                    break;
-                  case "defaultValue":
-                    defaultValue = propValue$jscomp$2;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$2,
-                      propValue$jscomp$2
-                    );
-                }
-            }
-          null === value$jscomp$0 &&
-            null !== defaultValue &&
-            (value$jscomp$0 = defaultValue);
-          target$jscomp$0.push(endOfStartTag);
-          if (null != children$jscomp$2) {
-            console.error(
-              "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-            );
-            if (null != value$jscomp$0)
-              throw Error(
-                "If you supply `defaultValue` on a <textarea>, do not pass children."
-              );
-            if (isArrayImpl(children$jscomp$2)) {
-              if (1 < children$jscomp$2.length)
-                throw Error("<textarea> can only have at most one child.");
-              checkHtmlStringCoercion(children$jscomp$2[0]);
-              value$jscomp$0 = "" + children$jscomp$2[0];
-            }
-            checkHtmlStringCoercion(children$jscomp$2);
-            value$jscomp$0 = "" + children$jscomp$2;
-          }
-          "string" === typeof value$jscomp$0 &&
-            "\n" === value$jscomp$0[0] &&
-            target$jscomp$0.push(leadingNewline);
-          null !== value$jscomp$0 &&
-            (checkAttributeStringCoercion(value$jscomp$0, "value"),
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser("" + value$jscomp$0))
-            ));
-          return null;
-        case "input":
-          checkControlledValueProps("input", props);
-          target$jscomp$0.push(startChunkForTag("input"));
-          var name = null,
-            formAction = null,
-            formEncType = null,
-            formMethod = null,
-            formTarget = null,
-            value$jscomp$1 = null,
-            defaultValue$jscomp$0 = null,
-            checked = null,
-            defaultChecked = null,
-            propKey$jscomp$3;
-          for (propKey$jscomp$3 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-              var propValue$jscomp$3 = props[propKey$jscomp$3];
-              if (null != propValue$jscomp$3)
-                switch (propKey$jscomp$3) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  case "name":
-                    name = propValue$jscomp$3;
-                    break;
-                  case "formAction":
-                    formAction = propValue$jscomp$3;
-                    break;
-                  case "formEncType":
-                    formEncType = propValue$jscomp$3;
-                    break;
-                  case "formMethod":
-                    formMethod = propValue$jscomp$3;
-                    break;
-                  case "formTarget":
-                    formTarget = propValue$jscomp$3;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = propValue$jscomp$3;
-                    break;
-                  case "defaultValue":
-                    defaultValue$jscomp$0 = propValue$jscomp$3;
-                    break;
-                  case "checked":
-                    checked = propValue$jscomp$3;
-                    break;
-                  case "value":
-                    value$jscomp$1 = propValue$jscomp$3;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$3,
-                      propValue$jscomp$3
-                    );
-                }
-            }
-          null === formAction ||
-            "image" === props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'An input can only specify a formAction along with type="submit" or type="image".'
-            ));
-          var formData = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction,
-            formEncType,
-            formMethod,
-            formTarget,
-            name
-          );
-          null === checked ||
-            null === defaultChecked ||
-            didWarnDefaultChecked ||
-            (console.error(
-              "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultChecked = !0));
-          null === value$jscomp$1 ||
-            null === defaultValue$jscomp$0 ||
-            didWarnDefaultInputValue ||
-            (console.error(
-              "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultInputValue = !0));
-          null !== checked
-            ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-            : null !== defaultChecked &&
-              pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-          null !== value$jscomp$1
-            ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-            : null !== defaultValue$jscomp$0 &&
-              pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-          target$jscomp$0.push(endOfStartTagSelfClosing);
-          null != formData &&
-            formData.forEach(pushAdditionalFormField, target$jscomp$0);
-          return null;
-        case "button":
-          target$jscomp$0.push(startChunkForTag("button"));
-          var children$jscomp$3 = null,
-            innerHTML$jscomp$2 = null,
-            name$jscomp$0 = null,
-            formAction$jscomp$0 = null,
-            formEncType$jscomp$0 = null,
-            formMethod$jscomp$0 = null,
-            formTarget$jscomp$0 = null,
-            propKey$jscomp$4;
-          for (propKey$jscomp$4 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-              var propValue$jscomp$4 = props[propKey$jscomp$4];
-              if (null != propValue$jscomp$4)
-                switch (propKey$jscomp$4) {
-                  case "children":
-                    children$jscomp$3 = propValue$jscomp$4;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$2 = propValue$jscomp$4;
-                    break;
-                  case "name":
-                    name$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formAction":
-                    formAction$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formEncType":
-                    formEncType$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formMethod":
-                    formMethod$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formTarget":
-                    formTarget$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$4,
-                      propValue$jscomp$4
-                    );
-                }
-            }
-          null === formAction$jscomp$0 ||
-            null == props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'A button can only specify a formAction along with type="submit" or no type.'
-            ));
-          var formData$jscomp$0 = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction$jscomp$0,
-            formEncType$jscomp$0,
-            formMethod$jscomp$0,
-            formTarget$jscomp$0,
-            name$jscomp$0
-          );
-          target$jscomp$0.push(endOfStartTag);
-          null != formData$jscomp$0 &&
-            formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-          if ("string" === typeof children$jscomp$3) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$3))
-            );
-            var JSCompiler_inline_result$jscomp$1 = null;
-          } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-          return JSCompiler_inline_result$jscomp$1;
-        case "form":
-          target$jscomp$0.push(startChunkForTag("form"));
-          var children$jscomp$4 = null,
-            innerHTML$jscomp$3 = null,
-            formAction$jscomp$1 = null,
-            formEncType$jscomp$1 = null,
-            formMethod$jscomp$1 = null,
-            formTarget$jscomp$1 = null,
-            propKey$jscomp$5;
-          for (propKey$jscomp$5 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-              var propValue$jscomp$5 = props[propKey$jscomp$5];
-              if (null != propValue$jscomp$5)
-                switch (propKey$jscomp$5) {
-                  case "children":
-                    children$jscomp$4 = propValue$jscomp$5;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$3 = propValue$jscomp$5;
-                    break;
-                  case "action":
-                    formAction$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "encType":
-                    formEncType$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "method":
-                    formMethod$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "target":
-                    formTarget$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$5,
-                      propValue$jscomp$5
-                    );
-                }
-            }
-          var formData$jscomp$1 = null,
-            formActionName = null;
-          if ("function" === typeof formAction$jscomp$1) {
-            (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-              didWarnFormActionMethod ||
-              ((didWarnFormActionMethod = !0),
-              console.error(
-                "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-              ));
-            null === formTarget$jscomp$1 ||
-              didWarnFormActionTarget ||
-              ((didWarnFormActionTarget = !0),
-              console.error(
-                "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-              ));
-            var customFields = getCustomFormFields(
-              resumableState,
-              formAction$jscomp$1
-            );
-            null !== customFields
-              ? ((formAction$jscomp$1 = customFields.action || ""),
-                (formEncType$jscomp$1 = customFields.encType),
-                (formMethod$jscomp$1 = customFields.method),
-                (formTarget$jscomp$1 = customFields.target),
-                (formData$jscomp$1 = customFields.data),
-                (formActionName = customFields.name))
-              : (target$jscomp$0.push(
-                  attributeSeparator,
-                  stringToChunk("action"),
-                  attributeAssign,
-                  actionJavaScriptURL,
-                  attributeEnd
-                ),
-                (formTarget$jscomp$1 =
-                  formMethod$jscomp$1 =
-                  formEncType$jscomp$1 =
-                  formAction$jscomp$1 =
-                    null),
-                injectFormReplayingRuntime(resumableState, renderState));
-          }
-          null != formAction$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-          null != formEncType$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-          null != formMethod$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-          null != formTarget$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-          target$jscomp$0.push(endOfStartTag);
-          null !== formActionName &&
-            (target$jscomp$0.push(startHiddenInputChunk),
-            pushStringAttribute(target$jscomp$0, "name", formActionName),
-            target$jscomp$0.push(endOfStartTagSelfClosing),
-            null != formData$jscomp$1 &&
-              formData$jscomp$1.forEach(
-                pushAdditionalFormField,
-                target$jscomp$0
-              ));
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-          if ("string" === typeof children$jscomp$4) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$4))
-            );
-            var JSCompiler_inline_result$jscomp$2 = null;
-          } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-          return JSCompiler_inline_result$jscomp$2;
-        case "menuitem":
-          target$jscomp$0.push(startChunkForTag("menuitem"));
-          for (var propKey$jscomp$6 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-              var propValue$jscomp$6 = props[propKey$jscomp$6];
-              if (null != propValue$jscomp$6)
-                switch (propKey$jscomp$6) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$6,
-                      propValue$jscomp$6
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          return null;
-        case "object":
-          target$jscomp$0.push(startChunkForTag("object"));
-          var children$jscomp$5 = null,
-            innerHTML$jscomp$4 = null,
-            propKey$jscomp$7;
-          for (propKey$jscomp$7 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-              var propValue$jscomp$7 = props[propKey$jscomp$7];
-              if (null != propValue$jscomp$7)
-                switch (propKey$jscomp$7) {
-                  case "children":
-                    children$jscomp$5 = propValue$jscomp$7;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$4 = propValue$jscomp$7;
-                    break;
-                  case "data":
-                    checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                    var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                    if ("" === sanitizedValue) {
-                      console.error(
-                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                        propKey$jscomp$7,
-                        propKey$jscomp$7
-                      );
-                      break;
-                    }
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      stringToChunk("data"),
-                      attributeAssign,
-                      stringToChunk(escapeTextForBrowser(sanitizedValue)),
-                      attributeEnd
-                    );
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$7,
-                      propValue$jscomp$7
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-          if ("string" === typeof children$jscomp$5) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$5))
-            );
-            var JSCompiler_inline_result$jscomp$3 = null;
-          } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-          return JSCompiler_inline_result$jscomp$3;
-        case "title":
-          var noscriptTagInScope = formatContext.tagScope & 1,
-            isFallback = formatContext.tagScope & 4;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$6 = props.children,
-              child = Array.isArray(children$jscomp$6)
-                ? 2 > children$jscomp$6.length
-                  ? children$jscomp$6[0]
-                  : null
-                : children$jscomp$6;
-            Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-              ? console.error(
-                  "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-                  children$jscomp$6.length
-                )
-              : "function" === typeof child || "symbol" === typeof child
-                ? console.error(
-                    "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                    "function" === typeof child ? "a Function" : "a Sybmol"
-                  )
-                : child &&
-                  child.toString === {}.toString &&
-                  (null != child.$$typeof
-                    ? console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                      )
-                    : console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                      ));
-          }
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-              target$jscomp$0,
-              props
-            );
-          else
-            isFallback
-              ? (JSCompiler_inline_result$jscomp$4 = null)
-              : (pushTitleImpl(renderState.hoistableChunks, props),
-                (JSCompiler_inline_result$jscomp$4 = void 0));
-          return JSCompiler_inline_result$jscomp$4;
-        case "link":
-          var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-            isFallback$jscomp$0 = formatContext.tagScope & 4,
-            rel = props.rel,
-            href = props.href,
-            precedence = props.precedence;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$0 ||
-            null != props.itemProp ||
-            "string" !== typeof rel ||
-            "string" !== typeof href ||
-            "" === href
-          ) {
-            "stylesheet" === rel &&
-              "string" === typeof props.precedence &&
-              (("string" === typeof href && href) ||
-                console.error(
-                  'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-                  null === href
-                    ? "`null`"
-                    : void 0 === href
-                      ? "`undefined`"
-                      : "" === href
-                        ? "an empty string"
-                        : 'something with type "' + typeof href + '"'
-                ));
-            pushLinkImpl(target$jscomp$0, props);
-            var JSCompiler_inline_result$jscomp$5 = null;
-          } else if ("stylesheet" === props.rel)
-            if (
-              "string" !== typeof precedence ||
-              null != props.disabled ||
-              props.onLoad ||
-              props.onError
-            ) {
-              if ("string" === typeof precedence)
-                if (null != props.disabled)
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-                  );
-                else if (props.onLoad || props.onError) {
-                  var propDescription =
-                    props.onLoad && props.onError
-                      ? "`onLoad` and `onError` props"
-                      : props.onLoad
-                        ? "`onLoad` prop"
-                        : "`onError` prop";
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                    propDescription,
-                    propDescription
-                  );
-                }
-              JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                target$jscomp$0,
-                props
-              );
-            } else {
-              var styleQueue = renderState.styles.get(precedence),
-                resourceState = resumableState.styleResources.hasOwnProperty(
-                  href
-                )
-                  ? resumableState.styleResources[href]
-                  : void 0;
-              if (resourceState !== EXISTS) {
-                resumableState.styleResources[href] = EXISTS;
-                styleQueue ||
-                  ((styleQueue = {
-                    precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                    rules: [],
-                    hrefs: [],
-                    sheets: new Map()
-                  }),
-                  renderState.styles.set(precedence, styleQueue));
-                var resource = {
-                  state: PENDING$1,
-                  props: assign({}, props, {
-                    "data-precedence": props.precedence,
-                    precedence: null
-                  })
-                };
-                if (resourceState) {
-                  2 === resourceState.length &&
-                    adoptPreloadCredentials(resource.props, resourceState);
-                  var preloadResource =
-                    renderState.preloads.stylesheets.get(href);
-                  preloadResource && 0 < preloadResource.length
-                    ? (preloadResource.length = 0)
-                    : (resource.state = PRELOADED);
-                }
-                styleQueue.sheets.set(href, resource);
-                hoistableState && hoistableState.stylesheets.add(resource);
-              } else if (styleQueue) {
-                var _resource = styleQueue.sheets.get(href);
-                _resource &&
-                  hoistableState &&
-                  hoistableState.stylesheets.add(_resource);
-              }
-              textEmbedded && target$jscomp$0.push(textSeparator);
-              JSCompiler_inline_result$jscomp$5 = null;
-            }
-          else
-            props.onLoad || props.onError
-              ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                  target$jscomp$0,
-                  props
-                ))
-              : (textEmbedded && target$jscomp$0.push(textSeparator),
-                (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-                  ? null
-                  : pushLinkImpl(renderState.hoistableChunks, props)));
-          return JSCompiler_inline_result$jscomp$5;
-        case "script":
-          var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-            asyncProp = props.async;
-          if (
-            "string" !== typeof props.src ||
-            !props.src ||
-            !asyncProp ||
-            "function" === typeof asyncProp ||
-            "symbol" === typeof asyncProp ||
-            props.onLoad ||
-            props.onError ||
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$1 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-              target$jscomp$0,
-              props
-            );
-          else {
-            var key = props.src;
-            if ("module" === props.type) {
-              var resources = resumableState.moduleScriptResources;
-              var preloads = renderState.preloads.moduleScripts;
-            } else
-              (resources = resumableState.scriptResources),
-                (preloads = renderState.preloads.scripts);
-            var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-              ? resources[key]
-              : void 0;
-            if (resourceState$jscomp$0 !== EXISTS) {
-              resources[key] = EXISTS;
-              var scriptProps = props;
-              if (resourceState$jscomp$0) {
-                2 === resourceState$jscomp$0.length &&
-                  ((scriptProps = assign({}, props)),
-                  adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-                var preloadResource$jscomp$0 = preloads.get(key);
-                preloadResource$jscomp$0 &&
-                  (preloadResource$jscomp$0.length = 0);
-              }
-              var resource$jscomp$0 = [];
-              renderState.scripts.add(resource$jscomp$0);
-              pushScriptImpl(resource$jscomp$0, scriptProps);
-            }
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$6 = null;
-          }
-          return JSCompiler_inline_result$jscomp$6;
-        case "style":
-          var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$7 = props.children,
-              child$jscomp$0 = Array.isArray(children$jscomp$7)
-                ? 2 > children$jscomp$7.length
-                  ? children$jscomp$7[0]
-                  : null
-                : children$jscomp$7;
-            ("function" === typeof child$jscomp$0 ||
-              "symbol" === typeof child$jscomp$0 ||
-              Array.isArray(child$jscomp$0)) &&
-              console.error(
-                "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-                "function" === typeof child$jscomp$0
-                  ? "a Function"
-                  : "symbol" === typeof child$jscomp$0
-                    ? "a Sybmol"
-                    : "an Array"
-              );
-          }
-          var precedence$jscomp$0 = props.precedence,
-            href$jscomp$0 = props.href,
-            nonce = props.nonce;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$2 ||
-            null != props.itemProp ||
-            "string" !== typeof precedence$jscomp$0 ||
-            "string" !== typeof href$jscomp$0 ||
-            "" === href$jscomp$0
-          ) {
-            target$jscomp$0.push(startChunkForTag("style"));
-            var children$jscomp$8 = null,
-              innerHTML$jscomp$5 = null,
-              propKey$jscomp$8;
-            for (propKey$jscomp$8 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-                var propValue$jscomp$8 = props[propKey$jscomp$8];
-                if (null != propValue$jscomp$8)
-                  switch (propKey$jscomp$8) {
-                    case "children":
-                      children$jscomp$8 = propValue$jscomp$8;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$5 = propValue$jscomp$8;
-                      break;
-                    default:
-                      pushAttribute(
-                        target$jscomp$0,
-                        propKey$jscomp$8,
-                        propValue$jscomp$8
-                      );
-                  }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            var child$jscomp$1 = Array.isArray(children$jscomp$8)
-              ? 2 > children$jscomp$8.length
-                ? children$jscomp$8[0]
-                : null
-              : children$jscomp$8;
-            "function" !== typeof child$jscomp$1 &&
-              "symbol" !== typeof child$jscomp$1 &&
-              null !== child$jscomp$1 &&
-              void 0 !== child$jscomp$1 &&
-              target$jscomp$0.push(
-                stringToChunk(escapeStyleTextContent(child$jscomp$1))
-              );
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$5,
-              children$jscomp$8
-            );
-            target$jscomp$0.push(endChunkForTag("style"));
-            var JSCompiler_inline_result$jscomp$7 = null;
-          } else {
-            href$jscomp$0.includes(" ") &&
-              console.error(
-                'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-                href$jscomp$0
-              );
-            var styleQueue$jscomp$0 =
-                renderState.styles.get(precedence$jscomp$0),
-              resourceState$jscomp$1 =
-                resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-                  ? resumableState.styleResources[href$jscomp$0]
-                  : void 0;
-            if (resourceState$jscomp$1 !== EXISTS) {
-              resumableState.styleResources[href$jscomp$0] = EXISTS;
-              resourceState$jscomp$1 &&
-                console.error(
-                  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-                  href$jscomp$0
-                );
-              styleQueue$jscomp$0 ||
-                ((styleQueue$jscomp$0 = {
-                  precedence: stringToChunk(
-                    escapeTextForBrowser(precedence$jscomp$0)
-                  ),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(
-                  precedence$jscomp$0,
-                  styleQueue$jscomp$0
-                ));
-              var nonceStyle = renderState.nonce.style;
-              if (nonceStyle && nonceStyle !== nonce)
-                console.error(
-                  'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-                  precedence$jscomp$0,
-                  nonce,
-                  nonceStyle
-                );
-              else {
-                !nonceStyle &&
-                  nonce &&
-                  console.error(
-                    'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                    precedence$jscomp$0,
-                    nonce
-                  );
-                styleQueue$jscomp$0.hrefs.push(
-                  stringToChunk(escapeTextForBrowser(href$jscomp$0))
-                );
-                var target = styleQueue$jscomp$0.rules,
-                  children$jscomp$9 = null,
-                  innerHTML$jscomp$6 = null,
-                  propKey$jscomp$9;
-                for (propKey$jscomp$9 in props)
-                  if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                    var propValue$jscomp$9 = props[propKey$jscomp$9];
-                    if (null != propValue$jscomp$9)
-                      switch (propKey$jscomp$9) {
-                        case "children":
-                          children$jscomp$9 = propValue$jscomp$9;
-                          break;
-                        case "dangerouslySetInnerHTML":
-                          innerHTML$jscomp$6 = propValue$jscomp$9;
-                      }
-                  }
-                var child$jscomp$2 = Array.isArray(children$jscomp$9)
-                  ? 2 > children$jscomp$9.length
-                    ? children$jscomp$9[0]
-                    : null
-                  : children$jscomp$9;
-                "function" !== typeof child$jscomp$2 &&
-                  "symbol" !== typeof child$jscomp$2 &&
-                  null !== child$jscomp$2 &&
-                  void 0 !== child$jscomp$2 &&
-                  target.push(
-                    stringToChunk(escapeStyleTextContent(child$jscomp$2))
-                  );
-                pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-              }
-            }
-            styleQueue$jscomp$0 &&
-              hoistableState &&
-              hoistableState.styles.add(styleQueue$jscomp$0);
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$7 = void 0;
-          }
-          return JSCompiler_inline_result$jscomp$7;
-        case "meta":
-          var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-            isFallback$jscomp$1 = formatContext.tagScope & 4;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$3 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-              target$jscomp$0,
-              props,
-              "meta"
-            );
-          else
-            textEmbedded && target$jscomp$0.push(textSeparator),
-              (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-                ? null
-                : "string" === typeof props.charSet
-                  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-                  : "viewport" === props.name
-                    ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                    : pushSelfClosing(
-                        renderState.hoistableChunks,
-                        props,
-                        "meta"
-                      ));
-          return JSCompiler_inline_result$jscomp$8;
-        case "listing":
-        case "pre":
-          target$jscomp$0.push(startChunkForTag(type));
-          var children$jscomp$10 = null,
-            innerHTML$jscomp$7 = null,
-            propKey$jscomp$10;
-          for (propKey$jscomp$10 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-              var propValue$jscomp$10 = props[propKey$jscomp$10];
-              if (null != propValue$jscomp$10)
-                switch (propKey$jscomp$10) {
-                  case "children":
-                    children$jscomp$10 = propValue$jscomp$10;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$7 = propValue$jscomp$10;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$10,
-                      propValue$jscomp$10
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          if (null != innerHTML$jscomp$7) {
-            if (null != children$jscomp$10)
-              throw Error(
-                "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-              );
-            if (
-              "object" !== typeof innerHTML$jscomp$7 ||
-              !("__html" in innerHTML$jscomp$7)
-            )
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            var html = innerHTML$jscomp$7.__html;
-            null !== html &&
-              void 0 !== html &&
-              ("string" === typeof html && 0 < html.length && "\n" === html[0]
-                ? target$jscomp$0.push(leadingNewline, stringToChunk(html))
-                : (checkHtmlStringCoercion(html),
-                  target$jscomp$0.push(stringToChunk("" + html))));
-          }
-          "string" === typeof children$jscomp$10 &&
-            "\n" === children$jscomp$10[0] &&
-            target$jscomp$0.push(leadingNewline);
-          return children$jscomp$10;
-        case "img":
-          var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-            src = props.src,
-            srcSet = props.srcSet;
-          if (
-            !(
-              "lazy" === props.loading ||
-              (!src && !srcSet) ||
-              ("string" !== typeof src && null != src) ||
-              ("string" !== typeof srcSet && null != srcSet) ||
-              "low" === props.fetchPriority ||
-              pictureOrNoScriptTagInScope
-            ) &&
-            ("string" !== typeof src ||
-              ":" !== src[4] ||
-              ("d" !== src[0] && "D" !== src[0]) ||
-              ("a" !== src[1] && "A" !== src[1]) ||
-              ("t" !== src[2] && "T" !== src[2]) ||
-              ("a" !== src[3] && "A" !== src[3])) &&
-            ("string" !== typeof srcSet ||
-              ":" !== srcSet[4] ||
-              ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-              ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-              ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-              ("a" !== srcSet[3] && "A" !== srcSet[3]))
-          ) {
-            null !== hoistableState &&
-              formatContext.tagScope & 64 &&
-              (hoistableState.suspenseyImages = !0);
-            var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-              key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-              promotablePreloads = renderState.preloads.images,
-              resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-            if (resource$jscomp$1) {
-              if (
-                "high" === props.fetchPriority ||
-                10 > renderState.highImagePreloads.size
-              )
-                promotablePreloads.delete(key$jscomp$0),
-                  renderState.highImagePreloads.add(resource$jscomp$1);
-            } else if (
-              !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-            ) {
-              resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-              var input = props.crossOrigin;
-              var crossOrigin =
-                "string" === typeof input
-                  ? "use-credentials" === input
-                    ? input
-                    : ""
-                  : void 0;
-              var headers = renderState.headers,
-                header;
-              headers &&
-              0 < headers.remainingCapacity &&
-              "string" !== typeof props.srcSet &&
-              ("high" === props.fetchPriority ||
-                500 > headers.highImagePreloads.length) &&
-              ((header = getPreloadAsHeader(src, "image", {
-                imageSrcSet: props.srcSet,
-                imageSizes: props.sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                nonce: props.nonce,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.refererPolicy
-              })),
-              0 <= (headers.remainingCapacity -= header.length + 2))
-                ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-                  headers.highImagePreloads &&
-                    (headers.highImagePreloads += ", "),
-                  (headers.highImagePreloads += header))
-                : ((resource$jscomp$1 = []),
-                  pushLinkImpl(resource$jscomp$1, {
-                    rel: "preload",
-                    as: "image",
-                    href: srcSet ? void 0 : src,
-                    imageSrcSet: srcSet,
-                    imageSizes: sizes,
-                    crossOrigin: crossOrigin,
-                    integrity: props.integrity,
-                    type: props.type,
-                    fetchPriority: props.fetchPriority,
-                    referrerPolicy: props.referrerPolicy
-                  }),
-                  "high" === props.fetchPriority ||
-                  10 > renderState.highImagePreloads.size
-                    ? renderState.highImagePreloads.add(resource$jscomp$1)
-                    : (renderState.bulkPreloads.add(resource$jscomp$1),
-                      promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-            }
-          }
-          return pushSelfClosing(target$jscomp$0, props, "img");
-        case "base":
-        case "area":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-          return pushSelfClosing(target$jscomp$0, props, type);
-        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":
-          break;
-        case "head":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble = preambleState || renderState.preamble;
-            if (preamble.headChunks)
-              throw Error("The `<head>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(headPreambleContributionChunk);
-            preamble.headChunks = [];
-            var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-              preamble.headChunks,
-              props,
-              "head"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "head"
-            );
-          return JSCompiler_inline_result$jscomp$9;
-        case "body":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble$jscomp$0 = preambleState || renderState.preamble;
-            if (preamble$jscomp$0.bodyChunks)
-              throw Error("The `<body>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(bodyPreambleContributionChunk);
-            preamble$jscomp$0.bodyChunks = [];
-            var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-              preamble$jscomp$0.bodyChunks,
-              props,
-              "body"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "body"
-            );
-          return JSCompiler_inline_result$jscomp$10;
-        case "html":
-          if (formatContext.insertionMode === ROOT_HTML_MODE) {
-            var preamble$jscomp$1 = preambleState || renderState.preamble;
-            if (preamble$jscomp$1.htmlChunks)
-              throw Error("The `<html>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(htmlPreambleContributionChunk);
-            preamble$jscomp$1.htmlChunks = [doctypeChunk];
-            var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-              preamble$jscomp$1.htmlChunks,
-              props,
-              "html"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "html"
-            );
-          return JSCompiler_inline_result$jscomp$11;
-        default:
-          if (-1 !== type.indexOf("-")) {
-            target$jscomp$0.push(startChunkForTag(type));
-            var children$jscomp$11 = null,
-              innerHTML$jscomp$8 = null,
-              propKey$jscomp$11;
-            for (propKey$jscomp$11 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-                var propValue$jscomp$11 = props[propKey$jscomp$11];
-                if (null != propValue$jscomp$11) {
-                  var attributeName = propKey$jscomp$11;
-                  switch (propKey$jscomp$11) {
-                    case "children":
-                      children$jscomp$11 = propValue$jscomp$11;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$8 = propValue$jscomp$11;
-                      break;
-                    case "style":
-                      pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                      break;
-                    case "suppressContentEditableWarning":
-                    case "suppressHydrationWarning":
-                    case "ref":
-                      break;
-                    case "className":
-                      attributeName = "class";
-                    default:
-                      if (
-                        isAttributeNameSafe(propKey$jscomp$11) &&
-                        "function" !== typeof propValue$jscomp$11 &&
-                        "symbol" !== typeof propValue$jscomp$11 &&
-                        !1 !== propValue$jscomp$11
-                      ) {
-                        if (!0 === propValue$jscomp$11)
-                          propValue$jscomp$11 = "";
-                        else if ("object" === typeof propValue$jscomp$11)
-                          continue;
-                        target$jscomp$0.push(
-                          attributeSeparator,
-                          stringToChunk(attributeName),
-                          attributeAssign,
-                          stringToChunk(
-                            escapeTextForBrowser(propValue$jscomp$11)
-                          ),
-                          attributeEnd
-                        );
-                      }
-                  }
-                }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$8,
-              children$jscomp$11
-            );
-            return children$jscomp$11;
-          }
-      }
-      return pushStartGenericElement(target$jscomp$0, props, type);
-    }
-    function endChunkForTag(tag) {
-      var chunk = endTagCache.get(tag);
-      void 0 === chunk &&
-        ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-        endTagCache.set(tag, chunk));
-      return chunk;
-    }
-    function hoistPreambleState(renderState, preambleState) {
-      renderState = renderState.preamble;
-      null === renderState.htmlChunks &&
-        preambleState.htmlChunks &&
-        (renderState.htmlChunks = preambleState.htmlChunks);
-      null === renderState.headChunks &&
-        preambleState.headChunks &&
-        (renderState.headChunks = preambleState.headChunks);
-      null === renderState.bodyChunks &&
-        preambleState.bodyChunks &&
-        (renderState.bodyChunks = preambleState.bodyChunks);
-    }
-    function writeBootstrap(destination, renderState) {
-      renderState = renderState.bootstrapChunks;
-      for (var i = 0; i < renderState.length - 1; i++)
-        writeChunk(destination, renderState[i]);
-      return i < renderState.length
-        ? ((i = renderState[i]),
-          (renderState.length = 0),
-          writeChunkAndReturn(destination, i))
-        : !0;
-    }
-    function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-      writeChunk(destination, startPendingSuspenseBoundary1);
-      if (null === id)
-        throw Error(
-          "An ID must have been assigned before we can complete the boundary."
-        );
-      writeChunk(destination, renderState.boundaryPrefix);
-      writeChunk(destination, stringToChunk(id.toString(16)));
-      return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-    }
-    function writeStartSegment(destination, renderState, formatContext, id) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return (
-            writeChunk(destination, startSegmentHTML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentHTML2)
-          );
-        case SVG_MODE:
-          return (
-            writeChunk(destination, startSegmentSVG),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentSVG2)
-          );
-        case MATHML_MODE:
-          return (
-            writeChunk(destination, startSegmentMathML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentMathML2)
-          );
-        case HTML_TABLE_MODE:
-          return (
-            writeChunk(destination, startSegmentTable),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTable2)
-          );
-        case HTML_TABLE_BODY_MODE:
-          return (
-            writeChunk(destination, startSegmentTableBody),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTableBody2)
-          );
-        case HTML_TABLE_ROW_MODE:
-          return (
-            writeChunk(destination, startSegmentTableRow),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTableRow2)
-          );
-        case HTML_COLGROUP_MODE:
-          return (
-            writeChunk(destination, startSegmentColGroup),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentColGroup2)
-          );
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function writeEndSegment(destination, formatContext) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return writeChunkAndReturn(destination, endSegmentHTML);
-        case SVG_MODE:
-          return writeChunkAndReturn(destination, endSegmentSVG);
-        case MATHML_MODE:
-          return writeChunkAndReturn(destination, endSegmentMathML);
-        case HTML_TABLE_MODE:
-          return writeChunkAndReturn(destination, endSegmentTable);
-        case HTML_TABLE_BODY_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableBody);
-        case HTML_TABLE_ROW_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableRow);
-        case HTML_COLGROUP_MODE:
-          return writeChunkAndReturn(destination, endSegmentColGroup);
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function escapeJSStringsForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInInstructionScripts,
-        function (match) {
-          switch (match) {
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function escapeJSObjectForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInScripts,
-        function (match) {
-          switch (match) {
-            case "&":
-              return "\\u0026";
-            case ">":
-              return "\\u003e";
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function flushStyleTagsLateForBoundary(styleQueue) {
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      0 < rules.length &&
-        0 === hrefs.length &&
-        console.error(
-          "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-        );
-      var i = 0;
-      if (hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, lateStyleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        for (
-          writeChunk(this, lateStyleTagResourceOpen2);
-          i < hrefs.length - 1;
-          i++
-        )
-          writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-        writeChunk(this, hrefs[i]);
-        writeChunk(this, lateStyleTagResourceOpen3);
-        for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-        destinationHasCapacity = writeChunkAndReturn(
-          this,
-          lateStyleTagTemplateClose
-        );
-        currentlyRenderingBoundaryHasStylesToHoist = !0;
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function hasStylesToHoist(stylesheet) {
-      return stylesheet.state !== PREAMBLE
-        ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-        : !1;
-    }
-    function writeHoistablesForBoundary(
-      destination,
-      hoistableState,
-      renderState
-    ) {
-      currentlyRenderingBoundaryHasStylesToHoist = !1;
-      destinationHasCapacity = !0;
-      currentlyFlushingRenderState = renderState;
-      hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-      currentlyFlushingRenderState = null;
-      hoistableState.stylesheets.forEach(hasStylesToHoist);
-      currentlyRenderingBoundaryHasStylesToHoist &&
-        (renderState.stylesToHoist = !0);
-      return destinationHasCapacity;
-    }
-    function flushResource(resource) {
-      for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-      resource.length = 0;
-    }
-    function flushStyleInPreamble(stylesheet) {
-      pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-      for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-        writeChunk(this, stylesheetFlushingQueue[i]);
-      stylesheetFlushingQueue.length = 0;
-      stylesheet.state = PREAMBLE;
-    }
-    function flushStylesInPreamble(styleQueue) {
-      var hasStylesheets = 0 < styleQueue.sheets.size;
-      styleQueue.sheets.forEach(flushStyleInPreamble, this);
-      styleQueue.sheets.clear();
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      if (!hasStylesheets || hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, styleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        styleQueue = 0;
-        if (hrefs.length) {
-          for (
-            writeChunk(this, styleTagResourceOpen2);
-            styleQueue < hrefs.length - 1;
-            styleQueue++
-          )
-            writeChunk(this, hrefs[styleQueue]),
-              writeChunk(this, spaceSeparator);
-          writeChunk(this, hrefs[styleQueue]);
-        }
-        writeChunk(this, styleTagResourceOpen3);
-        for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-          writeChunk(this, rules[styleQueue]);
-        writeChunk(this, styleTagResourceClose);
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function preloadLateStyle(stylesheet) {
-      if (stylesheet.state === PENDING$1) {
-        stylesheet.state = PRELOADED;
-        var props = stylesheet.props;
-        pushLinkImpl(stylesheetFlushingQueue, {
-          rel: "preload",
-          as: "style",
-          href: stylesheet.props.href,
-          crossOrigin: props.crossOrigin,
-          fetchPriority: props.fetchPriority,
-          integrity: props.integrity,
-          media: props.media,
-          hrefLang: props.hrefLang,
-          referrerPolicy: props.referrerPolicy
-        });
-        for (
-          stylesheet = 0;
-          stylesheet < stylesheetFlushingQueue.length;
-          stylesheet++
-        )
-          writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-        stylesheetFlushingQueue.length = 0;
-      }
-    }
-    function preloadLateStyles(styleQueue) {
-      styleQueue.sheets.forEach(preloadLateStyle, this);
-      styleQueue.sheets.clear();
-    }
-    function pushCompletedShellIdAttribute(target, resumableState) {
-      (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-        ((resumableState.instructions |= SentCompletedShellId),
-        target.push(
-          completedShellIdAttributeStart,
-          stringToChunk(
-            escapeTextForBrowser("_" + resumableState.idPrefix + "R_")
-          ),
-          attributeEnd
-        ));
-    }
-    function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-      writeChunk(destination, arrayFirstOpenBracket);
-      var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-      hoistableState.stylesheets.forEach(function (resource) {
-        if (resource.state !== PREAMBLE)
-          if (resource.state === LATE)
-            writeChunk(destination, nextArrayOpenBrackChunk),
-              (resource = resource.props.href),
-              checkAttributeStringCoercion(resource, "href"),
-              writeChunk(
-                destination,
-                stringToChunk(
-                  escapeJSObjectForInstructionScripts("" + resource)
-                )
-              ),
-              writeChunk(destination, arrayCloseBracket),
-              (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-          else {
-            writeChunk(destination, nextArrayOpenBrackChunk);
-            var precedence = resource.props["data-precedence"],
-              props = resource.props,
-              coercedHref = sanitizeURL("" + resource.props.href);
-            writeChunk(
-              destination,
-              stringToChunk(escapeJSObjectForInstructionScripts(coercedHref))
-            );
-            checkAttributeStringCoercion(precedence, "precedence");
-            precedence = "" + precedence;
-            writeChunk(destination, arrayInterstitial);
-            writeChunk(
-              destination,
-              stringToChunk(escapeJSObjectForInstructionScripts(precedence))
-            );
-            for (var propKey in props)
-              if (
-                hasOwnProperty.call(props, propKey) &&
-                ((precedence = props[propKey]), null != precedence)
-              )
-                switch (propKey) {
-                  case "href":
-                  case "rel":
-                  case "precedence":
-                  case "data-precedence":
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    writeStyleResourceAttributeInJS(
-                      destination,
-                      propKey,
-                      precedence
-                    );
-                }
-            writeChunk(destination, arrayCloseBracket);
-            nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-            resource.state = LATE;
-          }
-      });
-      writeChunk(destination, arrayCloseBracket);
-    }
-    function writeStyleResourceAttributeInJS(destination, name, value) {
-      var attributeName = name.toLowerCase();
-      switch (typeof value) {
-        case "function":
-        case "symbol":
-          return;
-      }
-      switch (name) {
-        case "innerHTML":
-        case "dangerouslySetInnerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "style":
-        case "ref":
-          return;
-        case "className":
-          attributeName = "class";
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        case "hidden":
-          if (!1 === value) return;
-          name = "";
-          break;
-        case "src":
-        case "href":
-          value = sanitizeURL(value);
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        default:
-          if (
-            (2 < name.length &&
-              ("o" === name[0] || "O" === name[0]) &&
-              ("n" === name[1] || "N" === name[1])) ||
-            !isAttributeNameSafe(name)
-          )
-            return;
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-      }
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(
-        destination,
-        stringToChunk(escapeJSObjectForInstructionScripts(attributeName))
-      );
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(
-        destination,
-        stringToChunk(escapeJSObjectForInstructionScripts(name))
-      );
-    }
-    function createHoistableState() {
-      return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-    }
-    function preloadBootstrapScriptOrModule(
-      resumableState,
-      renderState,
-      href,
-      props
-    ) {
-      (resumableState.scriptResources.hasOwnProperty(href) ||
-        resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-        console.error(
-          'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-          href
-        );
-      resumableState.scriptResources[href] = EXISTS;
-      resumableState.moduleScriptResources[href] = EXISTS;
-      resumableState = [];
-      pushLinkImpl(resumableState, props);
-      renderState.bootstrapScripts.add(resumableState);
-    }
-    function adoptPreloadCredentials(target, preloadState) {
-      null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-      null == target.integrity && (target.integrity = preloadState[1]);
-    }
-    function getPreloadAsHeader(href, as, params) {
-      href = escapeHrefForLinkHeaderURLContext(href);
-      as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-      as = "<" + href + '>; rel=preload; as="' + as + '"';
-      for (var paramName in params)
-        hasOwnProperty.call(params, paramName) &&
-          ((href = params[paramName]),
-          "string" === typeof href &&
-            (as +=
-              "; " +
-              paramName.toLowerCase() +
-              '="' +
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                href,
-                paramName
-              ) +
-              '"'));
-      return as;
-    }
-    function escapeHrefForLinkHeaderURLContext(hrefInput) {
-      checkAttributeStringCoercion(hrefInput, "href");
-      return ("" + hrefInput).replace(
-        regexForHrefInLinkHeaderURLContext,
-        escapeHrefForLinkHeaderURLContextReplacer
-      );
-    }
-    function escapeHrefForLinkHeaderURLContextReplacer(match) {
-      switch (match) {
-        case "<":
-          return "%3C";
-        case ">":
-          return "%3E";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-      willCoercionThrow(value) &&
-        (console.error(
-          "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-          name,
-          typeName(value)
-        ),
-        testStringCoercion(value));
-      return ("" + value).replace(
-        regexForLinkHeaderQuotedParamValueContext,
-        escapeStringForLinkHeaderQuotedParamValueContextReplacer
-      );
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-      switch (match) {
-        case '"':
-          return "%22";
-        case "'":
-          return "%27";
-        case ";":
-          return "%3B";
-        case ",":
-          return "%2C";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function hoistStyleQueueDependency(styleQueue) {
-      this.styles.add(styleQueue);
-    }
-    function hoistStylesheetDependency(stylesheet) {
-      this.stylesheets.add(stylesheet);
-    }
-    function hoistHoistables(parentState, childState) {
-      childState.styles.forEach(hoistStyleQueueDependency, parentState);
-      childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-      childState.suspenseyImages && (parentState.suspenseyImages = !0);
-    }
-    function hasSuspenseyContent(hoistableState) {
-      return (
-        0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages
-      );
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function popToNearestCommonAncestor(prev, next) {
-      if (prev !== next) {
-        prev.context._currentValue = prev.parentValue;
-        prev = prev.parent;
-        var parentNext = next.parent;
-        if (null === prev) {
-          if (null !== parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-        } else {
-          if (null === parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-          popToNearestCommonAncestor(prev, parentNext);
-        }
-        next.context._currentValue = next.value;
-      }
-    }
-    function popAllPrevious(prev) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      null !== prev && popAllPrevious(prev);
-    }
-    function pushAllNext(next) {
-      var parentNext = next.parent;
-      null !== parentNext && pushAllNext(parentNext);
-      next.context._currentValue = next.value;
-    }
-    function popPreviousToCommonLevel(prev, next) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      if (null === prev)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === next.depth
-        ? popToNearestCommonAncestor(prev, next)
-        : popPreviousToCommonLevel(prev, next);
-    }
-    function popNextToCommonLevel(prev, next) {
-      var parentNext = next.parent;
-      if (null === parentNext)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === parentNext.depth
-        ? popToNearestCommonAncestor(prev, parentNext)
-        : popNextToCommonLevel(prev, parentNext);
-      next.context._currentValue = next.value;
-    }
-    function switchContext(newSnapshot) {
-      var prev = currentActiveSnapshot;
-      prev !== newSnapshot &&
-        (null === prev
-          ? pushAllNext(newSnapshot)
-          : null === newSnapshot
-            ? popAllPrevious(prev)
-            : prev.depth === newSnapshot.depth
-              ? popToNearestCommonAncestor(prev, newSnapshot)
-              : prev.depth > newSnapshot.depth
-                ? popPreviousToCommonLevel(prev, newSnapshot)
-                : popNextToCommonLevel(prev, newSnapshot),
-        (currentActiveSnapshot = newSnapshot));
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          getComponentNameFromType(publicInstance)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnAboutNoopUpdateForComponent[warningKey] ||
-        (console.error(
-          "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-    }
-    function pushTreeContext(baseContext, totalChildren, index) {
-      var baseIdWithLeadingBit = baseContext.id;
-      baseContext = baseContext.overflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        return {
-          id:
-            (1 << (32 - clz32(totalChildren) + baseLength)) |
-            (index << baseLength) |
-            baseIdWithLeadingBit,
-          overflow: length + baseContext
-        };
-      }
-      return {
-        id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-        overflow: baseContext
-      };
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function noop() {}
-    function trackUsedThenable(thenableState, thenable, index) {
-      index = thenableState[index];
-      void 0 === index
-        ? thenableState.push(thenable)
-        : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          "string" === typeof thenable.status
-            ? thenable.then(noop, noop)
-            : ((thenableState = thenable),
-              (thenableState.status = "pending"),
-              thenableState.then(
-                function (fulfilledValue) {
-                  if ("pending" === thenable.status) {
-                    var fulfilledThenable = thenable;
-                    fulfilledThenable.status = "fulfilled";
-                    fulfilledThenable.value = fulfilledValue;
-                  }
-                },
-                function (error) {
-                  if ("pending" === thenable.status) {
-                    var rejectedThenable = thenable;
-                    rejectedThenable.status = "rejected";
-                    rejectedThenable.reason = error;
-                  }
-                }
-              ));
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-          suspendedThenable = thenable;
-          throw SuspenseException;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      return thenable;
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function resolveCurrentlyRenderingComponent() {
-      if (null === currentlyRenderingComponent)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      isInHookUserCodeInDev &&
-        console.error(
-          "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-        );
-      return currentlyRenderingComponent;
-    }
-    function createHook() {
-      if (0 < numberOfReRenders)
-        throw Error("Rendered more hooks than during the previous render");
-      return { memoizedState: null, queue: null, next: null };
-    }
-    function createWorkInProgressHook() {
-      null === workInProgressHook
-        ? null === firstWorkInProgressHook
-          ? ((isReRender = !1),
-            (firstWorkInProgressHook = workInProgressHook = createHook()))
-          : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-        : null === workInProgressHook.next
-          ? ((isReRender = !1),
-            (workInProgressHook = workInProgressHook.next = createHook()))
-          : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-      return workInProgressHook;
-    }
-    function getThenableStateAfterSuspending() {
-      var state = thenableState;
-      thenableState = null;
-      return state;
-    }
-    function resetHooksState() {
-      isInHookUserCodeInDev = !1;
-      currentlyRenderingKeyPath =
-        currentlyRenderingRequest =
-        currentlyRenderingTask =
-        currentlyRenderingComponent =
-          null;
-      didScheduleRenderPhaseUpdate = !1;
-      firstWorkInProgressHook = null;
-      numberOfReRenders = 0;
-      workInProgressHook = renderPhaseUpdates = null;
-    }
-    function readContext(context) {
-      isInHookUserCodeInDev &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return context._currentValue;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function useReducer(reducer, initialArg, init) {
-      reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      if (isReRender) {
-        init = workInProgressHook.queue;
-        initialArg = init.dispatch;
-        if (null !== renderPhaseUpdates) {
-          var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-          if (void 0 !== firstRenderPhaseUpdate) {
-            renderPhaseUpdates.delete(init);
-            init = workInProgressHook.memoizedState;
-            do {
-              var action = firstRenderPhaseUpdate.action;
-              isInHookUserCodeInDev = !0;
-              init = reducer(init, action);
-              isInHookUserCodeInDev = !1;
-              firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-            } while (null !== firstRenderPhaseUpdate);
-            workInProgressHook.memoizedState = init;
-            return [init, initialArg];
-          }
-        }
-        return [workInProgressHook.memoizedState, initialArg];
-      }
-      isInHookUserCodeInDev = !0;
-      reducer =
-        reducer === basicStateReducer
-          ? "function" === typeof initialArg
-            ? initialArg()
-            : initialArg
-          : void 0 !== init
-            ? init(initialArg)
-            : initialArg;
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = reducer;
-      reducer = workInProgressHook.queue = { last: null, dispatch: null };
-      reducer = reducer.dispatch = dispatchAction.bind(
-        null,
-        currentlyRenderingComponent,
-        reducer
-      );
-      return [workInProgressHook.memoizedState, reducer];
-    }
-    function useMemo(nextCreate, deps) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      if (null !== workInProgressHook) {
-        var prevState = workInProgressHook.memoizedState;
-        if (null !== prevState && null !== deps) {
-          a: {
-            var JSCompiler_inline_result = prevState[1];
-            if (null === JSCompiler_inline_result)
-              console.error(
-                "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-                currentHookNameInDev
-              ),
-                (JSCompiler_inline_result = !1);
-            else {
-              deps.length !== JSCompiler_inline_result.length &&
-                console.error(
-                  "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-                  currentHookNameInDev,
-                  "[" + deps.join(", ") + "]",
-                  "[" + JSCompiler_inline_result.join(", ") + "]"
-                );
-              for (
-                var i = 0;
-                i < JSCompiler_inline_result.length && i < deps.length;
-                i++
-              )
-                if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-                  JSCompiler_inline_result = !1;
-                  break a;
-                }
-              JSCompiler_inline_result = !0;
-            }
-          }
-          if (JSCompiler_inline_result) return prevState[0];
-        }
-      }
-      isInHookUserCodeInDev = !0;
-      nextCreate = nextCreate();
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = [nextCreate, deps];
-      return nextCreate;
-    }
-    function dispatchAction(componentIdentity, queue, action) {
-      if (25 <= numberOfReRenders)
-        throw Error(
-          "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-        );
-      if (componentIdentity === currentlyRenderingComponent)
-        if (
-          ((didScheduleRenderPhaseUpdate = !0),
-          (componentIdentity = { action: action, next: null }),
-          null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-          (action = renderPhaseUpdates.get(queue)),
-          void 0 === action)
-        )
-          renderPhaseUpdates.set(queue, componentIdentity);
-        else {
-          for (queue = action; null !== queue.next; ) queue = queue.next;
-          queue.next = componentIdentity;
-        }
-    }
-    function throwOnUseEffectEventCall() {
-      throw Error(
-        "A function wrapped in useEffectEvent can't be called during rendering."
-      );
-    }
-    function unsupportedStartTransition() {
-      throw Error("startTransition cannot be called during server rendering.");
-    }
-    function unsupportedSetOptimisticState() {
-      throw Error("Cannot update optimistic state while rendering.");
-    }
-    function useActionState(action, initialState, permalink) {
-      resolveCurrentlyRenderingComponent();
-      var actionStateHookIndex = actionStateCounter++,
-        request = currentlyRenderingRequest;
-      if ("function" === typeof action.$$FORM_ACTION) {
-        var nextPostbackStateKey = null,
-          componentKeyPath = currentlyRenderingKeyPath;
-        request = request.formState;
-        var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-        if (null !== request && "function" === typeof isSignatureEqual) {
-          var postbackKey = request[1];
-          isSignatureEqual.call(action, request[2], request[3]) &&
-            ((nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-            postbackKey === nextPostbackStateKey &&
-              ((actionStateMatchingIndex = actionStateHookIndex),
-              (initialState = request[0])));
-        }
-        var boundAction = action.bind(null, initialState);
-        action = function (payload) {
-          boundAction(payload);
-        };
-        "function" === typeof boundAction.$$FORM_ACTION &&
-          (action.$$FORM_ACTION = function (prefix) {
-            prefix = boundAction.$$FORM_ACTION(prefix);
-            void 0 !== permalink &&
-              (checkAttributeStringCoercion(permalink, "target"),
-              (permalink += ""),
-              (prefix.action = permalink));
-            var formData = prefix.data;
-            formData &&
-              (null === nextPostbackStateKey &&
-                (nextPostbackStateKey =
-                  void 0 !== permalink
-                    ? "p" + permalink
-                    : "k" +
-                      murmurhash3_32_gc(
-                        JSON.stringify([
-                          componentKeyPath,
-                          null,
-                          actionStateHookIndex
-                        ]),
-                        0
-                      )),
-              formData.append("$ACTION_KEY", nextPostbackStateKey));
-            return prefix;
-          });
-        return [initialState, action, !1];
-      }
-      var _boundAction = action.bind(null, initialState);
-      return [
-        initialState,
-        function (payload) {
-          _boundAction(payload);
-        },
-        !1
-      ];
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = []);
-      return trackUsedThenable(thenableState, thenable, index);
-    }
-    function unsupportedRefresh() {
-      throw Error("Cache cannot be refreshed during server rendering.");
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = void 0;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeComponentStackByType(type) {
-      if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-      if ("function" === typeof type)
-        return type.prototype && type.prototype.isReactComponent
-          ? describeNativeComponentFrame(type, !0)
-          : describeNativeComponentFrame(type, !1);
-      if ("object" === typeof type && null !== type) {
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeNativeComponentFrame(type.render, !1);
-          case REACT_MEMO_TYPE:
-            return describeNativeComponentFrame(type.type, !1);
-          case REACT_LAZY_TYPE:
-            var lazyComponent = type,
-              payload = lazyComponent._payload;
-            lazyComponent = lazyComponent._init;
-            try {
-              type = lazyComponent(payload);
-            } catch (x) {
-              return describeBuiltInComponentFrame("Lazy");
-            }
-            return describeComponentStackByType(type);
-        }
-        if ("string" === typeof type.name) {
-          a: {
-            payload = type.name;
-            lazyComponent = type.env;
-            type = type.debugLocation;
-            if (null != type) {
-              type = formatOwnerStack(type);
-              var idx = type.lastIndexOf("\n");
-              type = -1 === idx ? type : type.slice(idx + 1);
-              if (-1 !== type.indexOf(payload)) {
-                payload = "\n" + type;
-                break a;
-              }
-            }
-            payload = describeBuiltInComponentFrame(
-              payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-            );
-          }
-          return payload;
-        }
-      }
-      switch (type) {
-        case REACT_SUSPENSE_LIST_TYPE:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case REACT_SUSPENSE_TYPE:
-          return describeBuiltInComponentFrame("Suspense");
-      }
-      return "";
-    }
-    function resetOwnerStackLimit() {
-      var now = getCurrentTime();
-      1e3 < now - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = now));
-    }
-    function isEligibleForOutlining(request, boundary) {
-      return (
-        (500 < boundary.byteSize ||
-          hasSuspenseyContent(boundary.contentState)) &&
-        null === boundary.contentPreamble
-      );
-    }
-    function defaultErrorHandler(error) {
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [error].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              "%c%s%c " + error[0],
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            )
-          : error.splice(
-              0,
-              0,
-              "%c%s%c",
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            );
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else console.error(error);
-      return null;
-    }
-    function RequestInstance(
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var abortSet = new Set();
-      this.destination = null;
-      this.flushScheduled = !1;
-      this.resumableState = resumableState;
-      this.renderState = renderState;
-      this.rootFormatContext = rootFormatContext;
-      this.progressiveChunkSize =
-        void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-      this.status = 10;
-      this.fatalError = null;
-      this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-      this.completedPreambleSegments = this.completedRootSegment = null;
-      this.byteSize = 0;
-      this.abortableTasks = abortSet;
-      this.pingedTasks = [];
-      this.clientRenderedBoundaries = [];
-      this.completedBoundaries = [];
-      this.partialBoundaries = [];
-      this.trackedPostpones = null;
-      this.onError = void 0 === onError ? defaultErrorHandler : onError;
-      this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-      this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-      this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-      this.onShellError = void 0 === onShellError ? noop : onShellError;
-      this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-      this.formState = void 0 === formState ? null : formState;
-      this.didWarnForKey = null;
-    }
-    function createRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      resetOwnerStackLimit();
-      resumableState = new RequestInstance(
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        formState
-      );
-      renderState = createPendingSegment(
-        resumableState,
-        0,
-        null,
-        rootFormatContext,
-        !1,
-        !1
-      );
-      renderState.parentFlushed = !0;
-      children = createRenderTask(
-        resumableState,
-        null,
-        children,
-        -1,
-        null,
-        renderState,
-        null,
-        null,
-        resumableState.abortableTasks,
-        null,
-        rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      resumableState.pingedTasks.push(children);
-      return resumableState;
-    }
-    function createPrerenderRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = createRequest(
-        children,
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        void 0
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function resumeRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      resetOwnerStackLimit();
-      renderState = new RequestInstance(
-        postponedState.resumableState,
-        renderState,
-        postponedState.rootFormatContext,
-        postponedState.progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        null
-      );
-      renderState.nextSegmentId = postponedState.nextSegmentId;
-      if ("number" === typeof postponedState.replaySlots)
-        return (
-          (onError = createPendingSegment(
-            renderState,
-            0,
-            null,
-            postponedState.rootFormatContext,
-            !1,
-            !1
-          )),
-          (onError.parentFlushed = !0),
-          (children = createRenderTask(
-            renderState,
-            null,
-            children,
-            -1,
-            null,
-            onError,
-            null,
-            null,
-            renderState.abortableTasks,
-            null,
-            postponedState.rootFormatContext,
-            null,
-            emptyTreeContext,
-            null,
-            null,
-            emptyContextObject,
-            null
-          )),
-          pushComponentStack(children),
-          renderState.pingedTasks.push(children),
-          renderState
-        );
-      children = createReplayTask(
-        renderState,
-        null,
-        {
-          nodes: postponedState.replayNodes,
-          slots: postponedState.replaySlots,
-          pendingTasks: 0
-        },
-        children,
-        -1,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      renderState.pingedTasks.push(children);
-      return renderState;
-    }
-    function resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = resumeRequest(
-        children,
-        postponedState,
-        renderState,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function pingTask(request, task) {
-      request.pingedTasks.push(task);
-      1 === request.pingedTasks.length &&
-        ((request.flushScheduled = null !== request.destination),
-        null !== request.trackedPostpones || 10 === request.status
-          ? scheduleMicrotask(function () {
-              return performWork(request);
-            })
-          : scheduleWork(function () {
-              return performWork(request);
-            }));
-    }
-    function createSuspenseBoundary(
-      request,
-      row,
-      fallbackAbortableTasks,
-      contentPreamble,
-      fallbackPreamble
-    ) {
-      fallbackAbortableTasks = {
-        status: PENDING,
-        rootSegmentID: -1,
-        parentFlushed: !1,
-        pendingTasks: 0,
-        row: row,
-        completedSegments: [],
-        byteSize: 0,
-        fallbackAbortableTasks: fallbackAbortableTasks,
-        errorDigest: null,
-        contentState: createHoistableState(),
-        fallbackState: createHoistableState(),
-        contentPreamble: contentPreamble,
-        fallbackPreamble: fallbackPreamble,
-        trackedContentKeyPath: null,
-        trackedFallbackNode: null,
-        errorMessage: null,
-        errorStack: null,
-        errorComponentStack: null
-      };
-      null !== row &&
-        (row.pendingTasks++,
-        (contentPreamble = row.boundaries),
-        null !== contentPreamble &&
-          (request.allPendingTasks++,
-          fallbackAbortableTasks.pendingTasks++,
-          contentPreamble.push(fallbackAbortableTasks)),
-        (request = row.inheritedHoistables),
-        null !== request &&
-          hoistHoistables(fallbackAbortableTasks.contentState, request));
-      return fallbackAbortableTasks;
-    }
-    function createRenderTask(
-      request,
-      thenableState,
-      node,
-      childIndex,
-      blockedBoundary,
-      blockedSegment,
-      blockedPreamble,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      var task = {
-        replay: null,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: blockedSegment,
-        blockedPreamble: blockedPreamble,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createReplayTask(
-      request,
-      thenableState,
-      replay,
-      node,
-      childIndex,
-      blockedBoundary,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      replay.pendingTasks++;
-      var task = {
-        replay: replay,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: null,
-        blockedPreamble: null,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createPendingSegment(
-      request,
-      index,
-      boundary,
-      parentFormatContext,
-      lastPushedText,
-      textEmbedded
-    ) {
-      return {
-        status: PENDING,
-        parentFlushed: !1,
-        id: -1,
-        index: index,
-        chunks: [],
-        children: [],
-        preambleChildren: [],
-        parentFormatContext: parentFormatContext,
-        boundary: boundary,
-        lastPushedText: lastPushedText,
-        textEmbedded: textEmbedded
-      };
-    }
-    function getCurrentStackInDEV() {
-      if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-        return "";
-      var componentStack = currentTaskInDEV.componentStack;
-      try {
-        var info = "";
-        if ("string" === typeof componentStack.type)
-          info += describeBuiltInComponentFrame(componentStack.type);
-        else if ("function" === typeof componentStack.type) {
-          if (!componentStack.owner) {
-            var JSCompiler_temp_const = info,
-              fn = componentStack.type,
-              name = fn ? fn.displayName || fn.name : "";
-            var JSCompiler_inline_result = name
-              ? describeBuiltInComponentFrame(name)
-              : "";
-            info = JSCompiler_temp_const + JSCompiler_inline_result;
-          }
-        } else
-          componentStack.owner ||
-            (info += describeComponentStackByType(componentStack.type));
-        for (; componentStack; )
-          (JSCompiler_temp_const = null),
-            null != componentStack.debugStack
-              ? (JSCompiler_temp_const = formatOwnerStack(
-                  componentStack.debugStack
-                ))
-              : ((JSCompiler_inline_result = componentStack),
-                null != JSCompiler_inline_result.stack &&
-                  (JSCompiler_temp_const =
-                    "string" !== typeof JSCompiler_inline_result.stack
-                      ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                          JSCompiler_inline_result.stack
-                        ))
-                      : JSCompiler_inline_result.stack)),
-            (componentStack = componentStack.owner) &&
-              JSCompiler_temp_const &&
-              (info += "\n" + JSCompiler_temp_const);
-        var JSCompiler_inline_result$jscomp$0 = info;
-      } catch (x) {
-        JSCompiler_inline_result$jscomp$0 =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result$jscomp$0;
-    }
-    function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--) {
-          var info = debugInfo[i];
-          if ("string" === typeof info.name) break;
-          if ("number" === typeof info.time) break;
-          if (null != info.awaited) {
-            var bestStack = null == info.debugStack ? info.awaited : info;
-            if (void 0 !== bestStack.debugStack) {
-              task.componentStack = {
-                parent: task.componentStack,
-                type: info,
-                owner: bestStack.owner,
-                stack: bestStack.debugStack
-              };
-              task.debugTask = bestStack.debugTask;
-              break;
-            }
-          }
-        }
-    }
-    function pushServerComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var componentInfo = debugInfo[i];
-          "string" === typeof componentInfo.name &&
-            void 0 !== componentInfo.debugStack &&
-            ((task.componentStack = {
-              parent: task.componentStack,
-              type: componentInfo,
-              owner: componentInfo.owner,
-              stack: componentInfo.debugStack
-            }),
-            (task.debugTask = componentInfo.debugTask));
-        }
-    }
-    function pushComponentStack(task) {
-      var node = task.node;
-      if ("object" === typeof node && null !== node)
-        switch (node.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-            var type = node.type,
-              owner = node._owner,
-              stack = node._debugStack;
-            pushServerComponentStack(task, node._debugInfo);
-            task.debugTask = node._debugTask;
-            task.componentStack = {
-              parent: task.componentStack,
-              type: type,
-              owner: owner,
-              stack: stack
-            };
-            break;
-          case REACT_LAZY_TYPE:
-            pushServerComponentStack(task, node._debugInfo);
-            break;
-          default:
-            "function" === typeof node.then &&
-              pushServerComponentStack(task, node._debugInfo);
-        }
-    }
-    function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-      componentStack
-    ) {
-      return null === componentStack
-        ? null
-        : {
-            parent: componentStack.parent,
-            type: "Suspense Fallback",
-            owner: componentStack.owner,
-            stack: componentStack.stack
-          };
-    }
-    function getThrownInfo(node$jscomp$0) {
-      var errorInfo = {};
-      node$jscomp$0 &&
-        Object.defineProperty(errorInfo, "componentStack", {
-          configurable: !0,
-          enumerable: !0,
-          get: function () {
-            try {
-              var info = "",
-                node = node$jscomp$0;
-              do
-                (info += describeComponentStackByType(node.type)),
-                  (node = node.parent);
-              while (node);
-              var stack = info;
-            } catch (x) {
-              stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-            }
-            Object.defineProperty(errorInfo, "componentStack", {
-              value: stack
-            });
-            return stack;
-          }
-        });
-      return errorInfo;
-    }
-    function encodeErrorForBoundary(
-      boundary,
-      digest,
-      error,
-      thrownInfo,
-      wasAborted
-    ) {
-      boundary.errorDigest = digest;
-      error instanceof Error
-        ? ((digest = String(error.message)), (error = String(error.stack)))
-        : ((digest =
-            "object" === typeof error && null !== error
-              ? describeObjectForErrorMessage(error)
-              : String(error)),
-          (error = null));
-      wasAborted = wasAborted
-        ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-        : "Switched to client rendering because the server rendering errored:\n\n";
-      boundary.errorMessage = wasAborted + digest;
-      boundary.errorStack = null !== error ? wasAborted + error : null;
-      boundary.errorComponentStack = thrownInfo.componentStack;
-    }
-    function logRecoverableError(request, error, errorInfo, debugTask) {
-      request = request.onError;
-      error = debugTask
-        ? debugTask.run(request.bind(null, error, errorInfo))
-        : request(error, errorInfo);
-      if (null != error && "string" !== typeof error)
-        console.error(
-          'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-          typeof error
-        );
-      else return error;
-    }
-    function fatalError(request, error, errorInfo, debugTask) {
-      errorInfo = request.onShellError;
-      var onFatalError = request.onFatalError;
-      debugTask
-        ? (debugTask.run(errorInfo.bind(null, error)),
-          debugTask.run(onFatalError.bind(null, error)))
-        : (errorInfo(error), onFatalError(error));
-      null !== request.destination
-        ? ((request.status = CLOSED),
-          closeWithError(request.destination, error))
-        : ((request.status = 13), (request.fatalError = error));
-    }
-    function finishSuspenseListRow(request, row) {
-      unblockSuspenseListRow(request, row.next, row.hoistables);
-    }
-    function unblockSuspenseListRow(
-      request,
-      unblockedRow,
-      inheritedHoistables
-    ) {
-      for (; null !== unblockedRow; ) {
-        null !== inheritedHoistables &&
-          (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-          (unblockedRow.inheritedHoistables = inheritedHoistables));
-        var unblockedBoundaries = unblockedRow.boundaries;
-        if (null !== unblockedBoundaries) {
-          unblockedRow.boundaries = null;
-          for (var i = 0; i < unblockedBoundaries.length; i++) {
-            var unblockedBoundary = unblockedBoundaries[i];
-            null !== inheritedHoistables &&
-              hoistHoistables(
-                unblockedBoundary.contentState,
-                inheritedHoistables
-              );
-            finishedTask(request, unblockedBoundary, null, null);
-          }
-        }
-        unblockedRow.pendingTasks--;
-        if (0 < unblockedRow.pendingTasks) break;
-        inheritedHoistables = unblockedRow.hoistables;
-        unblockedRow = unblockedRow.next;
-      }
-    }
-    function tryToResolveTogetherRow(request, togetherRow) {
-      var boundaries = togetherRow.boundaries;
-      if (
-        null !== boundaries &&
-        togetherRow.pendingTasks === boundaries.length
-      ) {
-        for (
-          var allCompleteAndInlinable = !0, i = 0;
-          i < boundaries.length;
-          i++
-        ) {
-          var rowBoundary = boundaries[i];
-          if (
-            1 !== rowBoundary.pendingTasks ||
-            rowBoundary.parentFlushed ||
-            isEligibleForOutlining(request, rowBoundary)
-          ) {
-            allCompleteAndInlinable = !1;
-            break;
-          }
-        }
-        allCompleteAndInlinable &&
-          unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-      }
-    }
-    function createSuspenseListRow(previousRow) {
-      var newRow = {
-        pendingTasks: 1,
-        boundaries: null,
-        hoistables: createHoistableState(),
-        inheritedHoistables: null,
-        together: !1,
-        next: null
-      };
-      null !== previousRow &&
-        0 < previousRow.pendingTasks &&
-        (newRow.pendingTasks++,
-        (newRow.boundaries = []),
-        (previousRow.next = newRow));
-      return newRow;
-    }
-    function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-      var prevKeyPath = task.keyPath,
-        prevTreeContext = task.treeContext,
-        prevRow = task.row,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node.props.children._debugInfo);
-      task.keyPath = keyPath;
-      keyPath = rows.length;
-      var previousSuspenseListRow = null;
-      if (null !== task.replay) {
-        var resumeSlots = task.replay.slots;
-        if (null !== resumeSlots && "object" === typeof resumeSlots)
-          for (var n = 0; n < keyPath; n++) {
-            var i =
-                "backwards" !== revealOrder &&
-                "unstable_legacy-backwards" !== revealOrder
-                  ? n
-                  : keyPath - 1 - n,
-              node = rows[i];
-            task.row = previousSuspenseListRow = createSuspenseListRow(
-              previousSuspenseListRow
-            );
-            task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-            var resumeSegmentID = resumeSlots[i];
-            "number" === typeof resumeSegmentID
-              ? (resumeNode(request, task, resumeSegmentID, node, i),
-                delete resumeSlots[i])
-              : renderNode(request, task, node, i);
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-          }
-        else
-          for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-            (n =
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder
-                ? resumeSlots
-                : keyPath - 1 - resumeSlots),
-              (i = rows[n]),
-              warnForMissingKey(request, task, i),
-              (task.row = previousSuspenseListRow =
-                createSuspenseListRow(previousSuspenseListRow)),
-              (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-              renderNode(request, task, i, n),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-      } else if (
-        "backwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder
-      )
-        for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-          (resumeSlots = rows[revealOrder]),
-            warnForMissingKey(request, task, resumeSlots),
-            (task.row = previousSuspenseListRow =
-              createSuspenseListRow(previousSuspenseListRow)),
-            (task.treeContext = pushTreeContext(
-              prevTreeContext,
-              keyPath,
-              revealOrder
-            )),
-            renderNode(request, task, resumeSlots, revealOrder),
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-      else {
-        revealOrder = task.blockedSegment;
-        resumeSlots = revealOrder.children.length;
-        n = revealOrder.chunks.length;
-        for (i = keyPath - 1; 0 <= i; i--) {
-          node = rows[i];
-          task.row = previousSuspenseListRow = createSuspenseListRow(
-            previousSuspenseListRow
-          );
-          task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-          resumeSegmentID = createPendingSegment(
-            request,
-            n,
-            null,
-            task.formatContext,
-            0 === i ? revealOrder.lastPushedText : !0,
-            !0
-          );
-          revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-          task.blockedSegment = resumeSegmentID;
-          warnForMissingKey(request, task, node);
-          try {
-            renderNode(request, task, node, i),
-              resumeSegmentID.lastPushedText &&
-                resumeSegmentID.textEmbedded &&
-                resumeSegmentID.chunks.push(textSeparator),
-              (resumeSegmentID.status = COMPLETED),
-              finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-          } catch (thrownValue) {
-            throw (
-              ((resumeSegmentID.status =
-                12 === request.status ? ABORTED : ERRORED),
-              thrownValue)
-            );
-          }
-        }
-        task.blockedSegment = revealOrder;
-        revealOrder.lastPushedText = !1;
-      }
-      null !== prevRow &&
-        null !== previousSuspenseListRow &&
-        0 < previousSuspenseListRow.pendingTasks &&
-        (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-      task.treeContext = prevTreeContext;
-      task.row = prevRow;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function renderWithHooks(
-      request,
-      task,
-      keyPath,
-      Component,
-      props,
-      secondArg
-    ) {
-      var prevThenableState = task.thenableState;
-      task.thenableState = null;
-      currentlyRenderingComponent = {};
-      currentlyRenderingTask = task;
-      currentlyRenderingRequest = request;
-      currentlyRenderingKeyPath = keyPath;
-      isInHookUserCodeInDev = !1;
-      actionStateCounter = localIdCounter = 0;
-      actionStateMatchingIndex = -1;
-      thenableIndexCounter = 0;
-      thenableState = prevThenableState;
-      for (
-        request = callComponentInDEV(Component, props, secondArg);
-        didScheduleRenderPhaseUpdate;
-
-      )
-        (didScheduleRenderPhaseUpdate = !1),
-          (actionStateCounter = localIdCounter = 0),
-          (actionStateMatchingIndex = -1),
-          (thenableIndexCounter = 0),
-          (numberOfReRenders += 1),
-          (workInProgressHook = null),
-          (request = Component(props, secondArg));
-      resetHooksState();
-      return request;
-    }
-    function finishFunctionComponent(
-      request,
-      task,
-      keyPath,
-      children,
-      hasId,
-      actionStateCount,
-      actionStateMatchingIndex
-    ) {
-      var didEmitActionStateMarkers = !1;
-      if (0 !== actionStateCount && null !== request.formState) {
-        var segment = task.blockedSegment;
-        if (null !== segment) {
-          didEmitActionStateMarkers = !0;
-          segment = segment.chunks;
-          for (var i = 0; i < actionStateCount; i++)
-            i === actionStateMatchingIndex
-              ? segment.push(formStateMarkerIsMatching)
-              : segment.push(formStateMarkerIsNotMatching);
-        }
-      }
-      actionStateCount = task.keyPath;
-      task.keyPath = keyPath;
-      hasId
-        ? ((keyPath = task.treeContext),
-          (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-          renderNode(request, task, children, -1),
-          (task.treeContext = keyPath))
-        : didEmitActionStateMarkers
-          ? renderNode(request, task, children, -1)
-          : renderNodeDestructive(request, task, children, -1);
-      task.keyPath = actionStateCount;
-    }
-    function renderElement(request, task, keyPath, type, props, ref) {
-      if ("function" === typeof type)
-        if (type.prototype && type.prototype.isReactComponent) {
-          var newProps = props;
-          if ("ref" in props) {
-            newProps = {};
-            for (var propName in props)
-              "ref" !== propName && (newProps[propName] = props[propName]);
-          }
-          var defaultProps = type.defaultProps;
-          if (defaultProps) {
-            newProps === props && (newProps = assign({}, newProps, props));
-            for (var _propName in defaultProps)
-              void 0 === newProps[_propName] &&
-                (newProps[_propName] = defaultProps[_propName]);
-          }
-          var resolvedProps = newProps;
-          var context = emptyContextObject,
-            contextType = type.contextType;
-          if (
-            "contextType" in type &&
-            null !== contextType &&
-            (void 0 === contextType ||
-              contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-            !didWarnAboutInvalidateContextType.has(type)
-          ) {
-            didWarnAboutInvalidateContextType.add(type);
-            var addendum =
-              void 0 === contextType
-                ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-                : "object" !== typeof contextType
-                  ? " However, it is set to a " + typeof contextType + "."
-                  : contextType.$$typeof === REACT_CONSUMER_TYPE
-                    ? " Did you accidentally pass the Context.Consumer instead?"
-                    : " However, it is set to an object with keys {" +
-                      Object.keys(contextType).join(", ") +
-                      "}.";
-            console.error(
-              "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-              getComponentNameFromType(type) || "Component",
-              addendum
-            );
-          }
-          "object" === typeof contextType &&
-            null !== contextType &&
-            (context = contextType._currentValue);
-          var instance = new type(resolvedProps, context);
-          if (
-            "function" === typeof type.getDerivedStateFromProps &&
-            (null === instance.state || void 0 === instance.state)
-          ) {
-            var componentName = getComponentNameFromType(type) || "Component";
-            didWarnAboutUninitializedState.has(componentName) ||
-              (didWarnAboutUninitializedState.add(componentName),
-              console.error(
-                "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-                componentName,
-                null === instance.state ? "null" : "undefined",
-                componentName
-              ));
-          }
-          if (
-            "function" === typeof type.getDerivedStateFromProps ||
-            "function" === typeof instance.getSnapshotBeforeUpdate
-          ) {
-            var foundWillMountName = null,
-              foundWillReceivePropsName = null,
-              foundWillUpdateName = null;
-            "function" === typeof instance.componentWillMount &&
-            !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ? (foundWillMountName = "componentWillMount")
-              : "function" === typeof instance.UNSAFE_componentWillMount &&
-                (foundWillMountName = "UNSAFE_componentWillMount");
-            "function" === typeof instance.componentWillReceiveProps &&
-            !0 !==
-              instance.componentWillReceiveProps.__suppressDeprecationWarning
-              ? (foundWillReceivePropsName = "componentWillReceiveProps")
-              : "function" ===
-                  typeof instance.UNSAFE_componentWillReceiveProps &&
-                (foundWillReceivePropsName =
-                  "UNSAFE_componentWillReceiveProps");
-            "function" === typeof instance.componentWillUpdate &&
-            !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-              ? (foundWillUpdateName = "componentWillUpdate")
-              : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-                (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-            if (
-              null !== foundWillMountName ||
-              null !== foundWillReceivePropsName ||
-              null !== foundWillUpdateName
-            ) {
-              var _componentName =
-                  getComponentNameFromType(type) || "Component",
-                newApiName =
-                  "function" === typeof type.getDerivedStateFromProps
-                    ? "getDerivedStateFromProps()"
-                    : "getSnapshotBeforeUpdate()";
-              didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-                (didWarnAboutLegacyLifecyclesAndDerivedState.add(
-                  _componentName
-                ),
-                console.error(
-                  "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                  _componentName,
-                  newApiName,
-                  null !== foundWillMountName
-                    ? "\n  " + foundWillMountName
-                    : "",
-                  null !== foundWillReceivePropsName
-                    ? "\n  " + foundWillReceivePropsName
-                    : "",
-                  null !== foundWillUpdateName
-                    ? "\n  " + foundWillUpdateName
-                    : ""
-                ));
-            }
-          }
-          var name = getComponentNameFromType(type) || "Component";
-          instance.render ||
-            (type.prototype && "function" === typeof type.prototype.render
-              ? console.error(
-                  "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                  name
-                )
-              : console.error(
-                  "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                  name
-                ));
-          !instance.getInitialState ||
-            instance.getInitialState.isReactClassApproved ||
-            instance.state ||
-            console.error(
-              "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-              name
-            );
-          instance.getDefaultProps &&
-            !instance.getDefaultProps.isReactClassApproved &&
-            console.error(
-              "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-              name
-            );
-          instance.contextType &&
-            console.error(
-              "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-              name
-            );
-          type.childContextTypes &&
-            !didWarnAboutChildContextTypes.has(type) &&
-            (didWarnAboutChildContextTypes.add(type),
-            console.error(
-              "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          type.contextTypes &&
-            !didWarnAboutContextTypes$1.has(type) &&
-            (didWarnAboutContextTypes$1.add(type),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          "function" === typeof instance.componentShouldUpdate &&
-            console.error(
-              "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-              name
-            );
-          type.prototype &&
-            type.prototype.isPureReactComponent &&
-            "undefined" !== typeof instance.shouldComponentUpdate &&
-            console.error(
-              "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-              getComponentNameFromType(type) || "A pure component"
-            );
-          "function" === typeof instance.componentDidUnmount &&
-            console.error(
-              "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-              name
-            );
-          "function" === typeof instance.componentDidReceiveProps &&
-            console.error(
-              "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-              name
-            );
-          "function" === typeof instance.componentWillRecieveProps &&
-            console.error(
-              "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-              name
-            );
-          "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-            console.error(
-              "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-              name
-            );
-          var hasMutatedProps = instance.props !== resolvedProps;
-          void 0 !== instance.props &&
-            hasMutatedProps &&
-            console.error(
-              "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-              name
-            );
-          instance.defaultProps &&
-            console.error(
-              "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-              name,
-              name
-            );
-          "function" !== typeof instance.getSnapshotBeforeUpdate ||
-            "function" === typeof instance.componentDidUpdate ||
-            didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-            (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-            console.error(
-              "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-              getComponentNameFromType(type)
-            ));
-          "function" === typeof instance.getDerivedStateFromProps &&
-            console.error(
-              "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof instance.getDerivedStateFromError &&
-            console.error(
-              "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof type.getSnapshotBeforeUpdate &&
-            console.error(
-              "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-              name
-            );
-          var state = instance.state;
-          state &&
-            ("object" !== typeof state || isArrayImpl(state)) &&
-            console.error("%s.state: must be set to an object or null", name);
-          "function" === typeof instance.getChildContext &&
-            "object" !== typeof type.childContextTypes &&
-            console.error(
-              "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-              name
-            );
-          var initialState = void 0 !== instance.state ? instance.state : null;
-          instance.updater = classComponentUpdater;
-          instance.props = resolvedProps;
-          instance.state = initialState;
-          var internalInstance = { queue: [], replace: !1 };
-          instance._reactInternals = internalInstance;
-          var contextType$jscomp$0 = type.contextType;
-          instance.context =
-            "object" === typeof contextType$jscomp$0 &&
-            null !== contextType$jscomp$0
-              ? contextType$jscomp$0._currentValue
-              : emptyContextObject;
-          if (instance.state === resolvedProps) {
-            var componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Component";
-            didWarnAboutDirectlyAssigningPropsToState.has(
-              componentName$jscomp$0
-            ) ||
-              (didWarnAboutDirectlyAssigningPropsToState.add(
-                componentName$jscomp$0
-              ),
-              console.error(
-                "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-                componentName$jscomp$0
-              ));
-          }
-          var getDerivedStateFromProps = type.getDerivedStateFromProps;
-          if ("function" === typeof getDerivedStateFromProps) {
-            var partialState = getDerivedStateFromProps(
-              resolvedProps,
-              initialState
-            );
-            if (void 0 === partialState) {
-              var componentName$jscomp$1 =
-                getComponentNameFromType(type) || "Component";
-              didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-                (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-                console.error(
-                  "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-                  componentName$jscomp$1
-                ));
-            }
-            var JSCompiler_inline_result =
-              null === partialState || void 0 === partialState
-                ? initialState
-                : assign({}, initialState, partialState);
-            instance.state = JSCompiler_inline_result;
-          }
-          if (
-            "function" !== typeof type.getDerivedStateFromProps &&
-            "function" !== typeof instance.getSnapshotBeforeUpdate &&
-            ("function" === typeof instance.UNSAFE_componentWillMount ||
-              "function" === typeof instance.componentWillMount)
-          ) {
-            var oldState = instance.state;
-            if ("function" === typeof instance.componentWillMount) {
-              if (
-                !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ) {
-                var componentName$jscomp$2 =
-                  getComponentNameFromType(type) || "Unknown";
-                didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-                  (console.warn(
-                    "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                    componentName$jscomp$2
-                  ),
-                  (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] =
-                    !0));
-              }
-              instance.componentWillMount();
-            }
-            "function" === typeof instance.UNSAFE_componentWillMount &&
-              instance.UNSAFE_componentWillMount();
-            oldState !== instance.state &&
-              (console.error(
-                "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-                getComponentNameFromType(type) || "Component"
-              ),
-              classComponentUpdater.enqueueReplaceState(
-                instance,
-                instance.state,
-                null
-              ));
-            if (
-              null !== internalInstance.queue &&
-              0 < internalInstance.queue.length
-            ) {
-              var oldQueue = internalInstance.queue,
-                oldReplace = internalInstance.replace;
-              internalInstance.queue = null;
-              internalInstance.replace = !1;
-              if (oldReplace && 1 === oldQueue.length)
-                instance.state = oldQueue[0];
-              else {
-                for (
-                  var nextState = oldReplace ? oldQueue[0] : instance.state,
-                    dontMutate = !0,
-                    i = oldReplace ? 1 : 0;
-                  i < oldQueue.length;
-                  i++
-                ) {
-                  var partial = oldQueue[i],
-                    partialState$jscomp$0 =
-                      "function" === typeof partial
-                        ? partial.call(
-                            instance,
-                            nextState,
-                            resolvedProps,
-                            void 0
-                          )
-                        : partial;
-                  null != partialState$jscomp$0 &&
-                    (dontMutate
-                      ? ((dontMutate = !1),
-                        (nextState = assign(
-                          {},
-                          nextState,
-                          partialState$jscomp$0
-                        )))
-                      : assign(nextState, partialState$jscomp$0));
-                }
-                instance.state = nextState;
-              }
-            } else internalInstance.queue = null;
-          }
-          var nextChildren = callRenderInDEV(instance);
-          if (12 === request.status) throw null;
-          instance.props !== resolvedProps &&
-            (didWarnAboutReassigningProps ||
-              console.error(
-                "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-                getComponentNameFromType(type) || "a component"
-              ),
-            (didWarnAboutReassigningProps = !0));
-          var prevKeyPath = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, nextChildren, -1);
-          task.keyPath = prevKeyPath;
-        } else {
-          if (type.prototype && "function" === typeof type.prototype.render) {
-            var componentName$jscomp$3 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutBadClass[componentName$jscomp$3] ||
-              (console.error(
-                "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-                componentName$jscomp$3,
-                componentName$jscomp$3
-              ),
-              (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-          }
-          var value = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type,
-            props,
-            void 0
-          );
-          if (12 === request.status) throw null;
-          var hasId = 0 !== localIdCounter,
-            actionStateCount = actionStateCounter,
-            actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-          if (type.contextTypes) {
-            var _componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypes[_componentName$jscomp$0] ||
-              ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-              console.error(
-                "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-                _componentName$jscomp$0
-              ));
-          }
-          type &&
-            type.childContextTypes &&
-            console.error(
-              "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-              type.displayName || type.name || "Component"
-            );
-          if ("function" === typeof type.getDerivedStateFromProps) {
-            var componentName$jscomp$4 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutGetDerivedStateOnFunctionComponent[
-              componentName$jscomp$4
-            ] ||
-              (console.error(
-                "%s: Function components do not support getDerivedStateFromProps.",
-                componentName$jscomp$4
-              ),
-              (didWarnAboutGetDerivedStateOnFunctionComponent[
-                componentName$jscomp$4
-              ] = !0));
-          }
-          if (
-            "object" === typeof type.contextType &&
-            null !== type.contextType
-          ) {
-            var _componentName2 = getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-              (console.error(
-                "%s: Function components do not support contextType.",
-                _componentName2
-              ),
-              (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
-                !0));
-          }
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            value,
-            hasId,
-            actionStateCount,
-            actionStateMatchingIndex$jscomp$0
-          );
-        }
-      else if ("string" === typeof type) {
-        var segment = task.blockedSegment;
-        if (null === segment) {
-          var children = props.children,
-            prevContext = task.formatContext,
-            prevKeyPath$jscomp$0 = task.keyPath;
-          task.formatContext = getChildFormatContext(prevContext, type, props);
-          task.keyPath = keyPath;
-          renderNode(request, task, children, -1);
-          task.formatContext = prevContext;
-          task.keyPath = prevKeyPath$jscomp$0;
-        } else {
-          var _children = pushStartInstance(
-            segment.chunks,
-            type,
-            props,
-            request.resumableState,
-            request.renderState,
-            task.blockedPreamble,
-            task.hoistableState,
-            task.formatContext,
-            segment.lastPushedText
-          );
-          segment.lastPushedText = !1;
-          var _prevContext2 = task.formatContext,
-            _prevKeyPath3 = task.keyPath;
-          task.keyPath = keyPath;
-          if (
-            (task.formatContext = getChildFormatContext(
-              _prevContext2,
-              type,
-              props
-            )).insertionMode === HTML_HEAD_MODE
-          ) {
-            var preambleSegment = createPendingSegment(
-              request,
-              0,
-              null,
-              task.formatContext,
-              !1,
-              !1
-            );
-            segment.preambleChildren.push(preambleSegment);
-            task.blockedSegment = preambleSegment;
-            try {
-              (preambleSegment.status = 6),
-                renderNode(request, task, _children, -1),
-                preambleSegment.lastPushedText &&
-                  preambleSegment.textEmbedded &&
-                  preambleSegment.chunks.push(textSeparator),
-                (preambleSegment.status = COMPLETED),
-                finishedSegment(request, task.blockedBoundary, preambleSegment);
-            } finally {
-              task.blockedSegment = segment;
-            }
-          } else renderNode(request, task, _children, -1);
-          task.formatContext = _prevContext2;
-          task.keyPath = _prevKeyPath3;
-          a: {
-            var target = segment.chunks,
-              resumableState = request.resumableState;
-            switch (type) {
-              case "title":
-              case "style":
-              case "script":
-              case "area":
-              case "base":
-              case "br":
-              case "col":
-              case "embed":
-              case "hr":
-              case "img":
-              case "input":
-              case "keygen":
-              case "link":
-              case "meta":
-              case "param":
-              case "source":
-              case "track":
-              case "wbr":
-                break a;
-              case "body":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-                  resumableState.hasBody = !0;
-                  break a;
-                }
-                break;
-              case "html":
-                if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-                  resumableState.hasHtml = !0;
-                  break a;
-                }
-                break;
-              case "head":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-            }
-            target.push(endChunkForTag(type));
-          }
-          segment.lastPushedText = !1;
-        }
-      } else {
-        switch (type) {
-          case REACT_LEGACY_HIDDEN_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_FRAGMENT_TYPE:
-            var prevKeyPath$jscomp$1 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$1;
-            return;
-          case REACT_ACTIVITY_TYPE:
-            var segment$jscomp$0 = task.blockedSegment;
-            if (null === segment$jscomp$0) {
-              if ("hidden" !== props.mode) {
-                var prevKeyPath$jscomp$2 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNode(request, task, props.children, -1);
-                task.keyPath = prevKeyPath$jscomp$2;
-              }
-            } else if ("hidden" !== props.mode) {
-              segment$jscomp$0.chunks.push(startActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-              var _prevKeyPath4 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNode(request, task, props.children, -1);
-              task.keyPath = _prevKeyPath4;
-              segment$jscomp$0.chunks.push(endActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-            }
-            return;
-          case REACT_SUSPENSE_LIST_TYPE:
-            a: {
-              var children$jscomp$0 = props.children,
-                revealOrder = props.revealOrder;
-              if (
-                "forwards" === revealOrder ||
-                "backwards" === revealOrder ||
-                "unstable_legacy-backwards" === revealOrder
-              ) {
-                if (isArrayImpl(children$jscomp$0)) {
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                  break a;
-                }
-                var iteratorFn = getIteratorFn(children$jscomp$0);
-                if (iteratorFn) {
-                  var iterator = iteratorFn.call(children$jscomp$0);
-                  if (iterator) {
-                    validateIterable(
-                      task,
-                      children$jscomp$0,
-                      -1,
-                      iterator,
-                      iteratorFn
-                    );
-                    var step = iterator.next();
-                    if (!step.done) {
-                      var rows = [];
-                      do rows.push(step.value), (step = iterator.next());
-                      while (!step.done);
-                      renderSuspenseListRows(
-                        request,
-                        task,
-                        keyPath,
-                        children$jscomp$0,
-                        revealOrder
-                      );
-                    }
-                    break a;
-                  }
-                }
-              }
-              if ("together" === revealOrder) {
-                var _prevKeyPath2 = task.keyPath,
-                  prevRow = task.row,
-                  newRow = (task.row = createSuspenseListRow(null));
-                newRow.boundaries = [];
-                newRow.together = !0;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                0 === --newRow.pendingTasks &&
-                  finishSuspenseListRow(request, newRow);
-                task.keyPath = _prevKeyPath2;
-                task.row = prevRow;
-                null !== prevRow &&
-                  0 < newRow.pendingTasks &&
-                  (prevRow.pendingTasks++, (newRow.next = prevRow));
-              } else {
-                var prevKeyPath$jscomp$3 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                task.keyPath = prevKeyPath$jscomp$3;
-              }
-            }
-            return;
-          case REACT_VIEW_TRANSITION_TYPE:
-          case REACT_SCOPE_TYPE:
-            throw Error(
-              "ReactDOMServer does not yet support scope components."
-            );
-          case REACT_SUSPENSE_TYPE:
-            a: if (null !== task.replay) {
-              var _prevKeyPath = task.keyPath,
-                _prevContext = task.formatContext,
-                _prevRow = task.row;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                _prevContext
-              );
-              task.row = null;
-              var _content = props.children;
-              try {
-                renderNode(request, task, _content, -1);
-              } finally {
-                (task.keyPath = _prevKeyPath),
-                  (task.formatContext = _prevContext),
-                  (task.row = _prevRow);
-              }
-            } else {
-              var prevKeyPath$jscomp$4 = task.keyPath,
-                prevContext$jscomp$0 = task.formatContext,
-                prevRow$jscomp$0 = task.row,
-                parentBoundary = task.blockedBoundary,
-                parentPreamble = task.blockedPreamble,
-                parentHoistableState = task.hoistableState,
-                parentSegment = task.blockedSegment,
-                fallback = props.fallback,
-                content = props.children,
-                fallbackAbortSet = new Set();
-              var newBoundary =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              null !== request.trackedPostpones &&
-                (newBoundary.trackedContentKeyPath = keyPath);
-              var boundarySegment = createPendingSegment(
-                request,
-                parentSegment.chunks.length,
-                newBoundary,
-                task.formatContext,
-                !1,
-                !1
-              );
-              parentSegment.children.push(boundarySegment);
-              parentSegment.lastPushedText = !1;
-              var contentRootSegment = createPendingSegment(
-                request,
-                0,
-                null,
-                task.formatContext,
-                !1,
-                !1
-              );
-              contentRootSegment.parentFlushed = !0;
-              if (null !== request.trackedPostpones) {
-                var suspenseComponentStack = task.componentStack,
-                  fallbackKeyPath = [
-                    keyPath[0],
-                    "Suspense Fallback",
-                    keyPath[2]
-                  ],
-                  fallbackReplayNode = [
-                    fallbackKeyPath[1],
-                    fallbackKeyPath[2],
-                    [],
-                    null
-                  ];
-                request.trackedPostpones.workingMap.set(
-                  fallbackKeyPath,
-                  fallbackReplayNode
-                );
-                newBoundary.trackedFallbackNode = fallbackReplayNode;
-                task.blockedSegment = boundarySegment;
-                task.blockedPreamble = newBoundary.fallbackPreamble;
-                task.keyPath = fallbackKeyPath;
-                task.formatContext = getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.componentStack =
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    suspenseComponentStack
-                  );
-                boundarySegment.status = 6;
-                try {
-                  renderNode(request, task, fallback, -1),
-                    boundarySegment.lastPushedText &&
-                      boundarySegment.textEmbedded &&
-                      boundarySegment.chunks.push(textSeparator),
-                    (boundarySegment.status = COMPLETED),
-                    finishedSegment(request, parentBoundary, boundarySegment);
-                } catch (thrownValue) {
-                  throw (
-                    ((boundarySegment.status =
-                      12 === request.status ? ABORTED : ERRORED),
-                    thrownValue)
-                  );
-                } finally {
-                  (task.blockedSegment = parentSegment),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0);
-                }
-                var suspendedPrimaryTask = createRenderTask(
-                  request,
-                  null,
-                  content,
-                  -1,
-                  newBoundary,
-                  contentRootSegment,
-                  newBoundary.contentPreamble,
-                  newBoundary.contentState,
-                  task.abortSet,
-                  keyPath,
-                  getSuspenseContentFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  null,
-                  suspenseComponentStack,
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedPrimaryTask);
-                request.pingedTasks.push(suspendedPrimaryTask);
-              } else {
-                task.blockedBoundary = newBoundary;
-                task.blockedPreamble = newBoundary.contentPreamble;
-                task.hoistableState = newBoundary.contentState;
-                task.blockedSegment = contentRootSegment;
-                task.keyPath = keyPath;
-                task.formatContext = getSuspenseContentFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.row = null;
-                contentRootSegment.status = 6;
-                try {
-                  if (
-                    (renderNode(request, task, content, -1),
-                    contentRootSegment.lastPushedText &&
-                      contentRootSegment.textEmbedded &&
-                      contentRootSegment.chunks.push(textSeparator),
-                    (contentRootSegment.status = COMPLETED),
-                    finishedSegment(request, newBoundary, contentRootSegment),
-                    queueCompletedSegment(newBoundary, contentRootSegment),
-                    0 === newBoundary.pendingTasks &&
-                      newBoundary.status === PENDING)
-                  ) {
-                    if (
-                      ((newBoundary.status = COMPLETED),
-                      !isEligibleForOutlining(request, newBoundary))
-                    ) {
-                      null !== prevRow$jscomp$0 &&
-                        0 === --prevRow$jscomp$0.pendingTasks &&
-                        finishSuspenseListRow(request, prevRow$jscomp$0);
-                      0 === request.pendingRootTasks &&
-                        task.blockedPreamble &&
-                        preparePreamble(request);
-                      break a;
-                    }
-                  } else
-                    null !== prevRow$jscomp$0 &&
-                      prevRow$jscomp$0.together &&
-                      tryToResolveTogetherRow(request, prevRow$jscomp$0);
-                } catch (thrownValue$2) {
-                  newBoundary.status = CLIENT_RENDERED;
-                  if (12 === request.status) {
-                    contentRootSegment.status = ABORTED;
-                    var error = request.fatalError;
-                  } else
-                    (contentRootSegment.status = ERRORED),
-                      (error = thrownValue$2);
-                  var thrownInfo = getThrownInfo(task.componentStack);
-                  var errorDigest = logRecoverableError(
-                    request,
-                    error,
-                    thrownInfo,
-                    task.debugTask
-                  );
-                  encodeErrorForBoundary(
-                    newBoundary,
-                    errorDigest,
-                    error,
-                    thrownInfo,
-                    !1
-                  );
-                  untrackBoundary(request, newBoundary);
-                } finally {
-                  (task.blockedBoundary = parentBoundary),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.hoistableState = parentHoistableState),
-                    (task.blockedSegment = parentSegment),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0),
-                    (task.row = prevRow$jscomp$0);
-                }
-                var suspendedFallbackTask = createRenderTask(
-                  request,
-                  null,
-                  fallback,
-                  -1,
-                  parentBoundary,
-                  boundarySegment,
-                  newBoundary.fallbackPreamble,
-                  newBoundary.fallbackState,
-                  fallbackAbortSet,
-                  [keyPath[0], "Suspense Fallback", keyPath[2]],
-                  getSuspenseFallbackFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  task.row,
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    task.componentStack
-                  ),
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedFallbackTask);
-                request.pingedTasks.push(suspendedFallbackTask);
-              }
-            }
-            return;
-        }
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_FORWARD_REF_TYPE:
-              if ("ref" in props) {
-                var propsWithoutRef = {};
-                for (var key in props)
-                  "ref" !== key && (propsWithoutRef[key] = props[key]);
-              } else propsWithoutRef = props;
-              var children$jscomp$1 = renderWithHooks(
-                request,
-                task,
-                keyPath,
-                type.render,
-                propsWithoutRef,
-                ref
-              );
-              finishFunctionComponent(
-                request,
-                task,
-                keyPath,
-                children$jscomp$1,
-                0 !== localIdCounter,
-                actionStateCounter,
-                actionStateMatchingIndex
-              );
-              return;
-            case REACT_MEMO_TYPE:
-              renderElement(request, task, keyPath, type.type, props, ref);
-              return;
-            case REACT_CONTEXT_TYPE:
-              var value$jscomp$0 = props.value,
-                children$jscomp$2 = props.children;
-              var prevSnapshot = task.context;
-              var prevKeyPath$jscomp$5 = task.keyPath;
-              var prevValue = type._currentValue;
-              type._currentValue = value$jscomp$0;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var prevNode = currentActiveSnapshot,
-                newNode = {
-                  parent: prevNode,
-                  depth: null === prevNode ? 0 : prevNode.depth + 1,
-                  context: type,
-                  parentValue: prevValue,
-                  value: value$jscomp$0
-                };
-              currentActiveSnapshot = newNode;
-              task.context = newNode;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, children$jscomp$2, -1);
-              var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-              if (null === prevSnapshot$jscomp$0)
-                throw Error(
-                  "Tried to pop a Context at the root of the app. This is a bug in React."
-                );
-              prevSnapshot$jscomp$0.context !== type &&
-                console.error(
-                  "The parent context is not the expected context. This is probably a bug in React."
-                );
-              prevSnapshot$jscomp$0.context._currentValue =
-                prevSnapshot$jscomp$0.parentValue;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-                prevSnapshot$jscomp$0.parent);
-              task.context = JSCompiler_inline_result$jscomp$0;
-              task.keyPath = prevKeyPath$jscomp$5;
-              prevSnapshot !== task.context &&
-                console.error(
-                  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-                );
-              return;
-            case REACT_CONSUMER_TYPE:
-              var context$jscomp$0 = type._context,
-                render = props.children;
-              "function" !== typeof render &&
-                console.error(
-                  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-                );
-              var newChildren = render(context$jscomp$0._currentValue),
-                prevKeyPath$jscomp$6 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, newChildren, -1);
-              task.keyPath = prevKeyPath$jscomp$6;
-              return;
-            case REACT_LAZY_TYPE:
-              var Component = callLazyInitInDEV(type);
-              if (12 === request.status) throw null;
-              renderElement(request, task, keyPath, Component, props, ref);
-              return;
-          }
-        var info = "";
-        if (
-          void 0 === type ||
-          ("object" === typeof type &&
-            null !== type &&
-            0 === Object.keys(type).length)
-        )
-          info +=
-            " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-        throw Error(
-          "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-            ((null == type ? type : typeof type) + "." + info)
-        );
-      }
-    }
-    function resumeNode(request, task, segmentId, node, childIndex) {
-      var prevReplay = task.replay,
-        blockedBoundary = task.blockedBoundary,
-        resumedSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-      resumedSegment.id = segmentId;
-      resumedSegment.parentFlushed = !0;
-      try {
-        (task.replay = null),
-          (task.blockedSegment = resumedSegment),
-          renderNode(request, task, node, childIndex),
-          (resumedSegment.status = COMPLETED),
-          finishedSegment(request, blockedBoundary, resumedSegment),
-          null === blockedBoundary
-            ? (request.completedRootSegment = resumedSegment)
-            : (queueCompletedSegment(blockedBoundary, resumedSegment),
-              blockedBoundary.parentFlushed &&
-                request.partialBoundaries.push(blockedBoundary));
-      } finally {
-        (task.replay = prevReplay), (task.blockedSegment = null);
-      }
-    }
-    function replayElement(
-      request,
-      task,
-      keyPath,
-      name,
-      keyOrIndex,
-      childIndex,
-      type,
-      props,
-      ref,
-      replay
-    ) {
-      childIndex = replay.nodes;
-      for (var i = 0; i < childIndex.length; i++) {
-        var node = childIndex[i];
-        if (keyOrIndex === node[1]) {
-          if (4 === node.length) {
-            if (null !== name && name !== node[0])
-              throw Error(
-                "Expected the resume to render <" +
-                  node[0] +
-                  "> in this slot but instead it rendered <" +
-                  name +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            var childNodes = node[2];
-            name = node[3];
-            keyOrIndex = task.node;
-            task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-            try {
-              renderElement(request, task, keyPath, type, props, ref);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw (
-                  (task.node === keyOrIndex
-                    ? (task.replay = replay)
-                    : childIndex.splice(i, 1),
-                  x)
-                );
-              task.replay.pendingTasks--;
-              type = getThrownInfo(task.componentStack);
-              props = request;
-              request = task.blockedBoundary;
-              keyPath = x;
-              ref = name;
-              name = logRecoverableError(props, keyPath, type, task.debugTask);
-              abortRemainingReplayNodes(
-                props,
-                request,
-                childNodes,
-                ref,
-                keyPath,
-                name,
-                type,
-                !1
-              );
-            }
-            task.replay = replay;
-          } else {
-            if (type !== REACT_SUSPENSE_TYPE)
-              throw Error(
-                "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                  (getComponentNameFromType(type) || "Unknown") +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            a: {
-              replay = void 0;
-              name = node[5];
-              type = node[2];
-              ref = node[3];
-              keyOrIndex = null === node[4] ? [] : node[4][2];
-              node = null === node[4] ? null : node[4][3];
-              var prevKeyPath = task.keyPath,
-                prevContext = task.formatContext,
-                prevRow = task.row,
-                previousReplaySet = task.replay,
-                parentBoundary = task.blockedBoundary,
-                parentHoistableState = task.hoistableState,
-                content = props.children,
-                fallback = props.fallback,
-                fallbackAbortSet = new Set();
-              props =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              props.parentFlushed = !0;
-              props.rootSegmentID = name;
-              task.blockedBoundary = props;
-              task.hoistableState = props.contentState;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                prevContext
-              );
-              task.row = null;
-              task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-              try {
-                renderNode(request, task, content, -1);
-                if (
-                  1 === task.replay.pendingTasks &&
-                  0 < task.replay.nodes.length
-                )
-                  throw Error(
-                    "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                  );
-                task.replay.pendingTasks--;
-                if (0 === props.pendingTasks && props.status === PENDING) {
-                  props.status = COMPLETED;
-                  request.completedBoundaries.push(props);
-                  break a;
-                }
-              } catch (error) {
-                (props.status = CLIENT_RENDERED),
-                  (childNodes = getThrownInfo(task.componentStack)),
-                  (replay = logRecoverableError(
-                    request,
-                    error,
-                    childNodes,
-                    task.debugTask
-                  )),
-                  encodeErrorForBoundary(props, replay, error, childNodes, !1),
-                  task.replay.pendingTasks--,
-                  request.clientRenderedBoundaries.push(props);
-              } finally {
-                (task.blockedBoundary = parentBoundary),
-                  (task.hoistableState = parentHoistableState),
-                  (task.replay = previousReplaySet),
-                  (task.keyPath = prevKeyPath),
-                  (task.formatContext = prevContext),
-                  (task.row = prevRow);
-              }
-              props = createReplayTask(
-                request,
-                null,
-                { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-                fallback,
-                -1,
-                parentBoundary,
-                props.fallbackState,
-                fallbackAbortSet,
-                [keyPath[0], "Suspense Fallback", keyPath[2]],
-                getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  task.formatContext
-                ),
-                task.context,
-                task.treeContext,
-                task.row,
-                replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                  task.componentStack
-                ),
-                emptyContextObject,
-                task.debugTask
-              );
-              pushComponentStack(props);
-              request.pingedTasks.push(props);
-            }
-          }
-          childIndex.splice(i, 1);
-          break;
-        }
-      }
-    }
-    function validateIterable(
-      task,
-      iterable,
-      childIndex,
-      iterator,
-      iteratorFn
-    ) {
-      if (iterator === iterable) {
-        if (
-          -1 !== childIndex ||
-          null === task.componentStack ||
-          "function" !== typeof task.componentStack.type ||
-          "[object GeneratorFunction]" !==
-            Object.prototype.toString.call(task.componentStack.type) ||
-          "[object Generator]" !== Object.prototype.toString.call(iterator)
-        )
-          didWarnAboutGenerators ||
-            console.error(
-              "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-            ),
-            (didWarnAboutGenerators = !0);
-      } else
-        iterable.entries !== iteratorFn ||
-          didWarnAboutMaps ||
-          (console.error(
-            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-          ),
-          (didWarnAboutMaps = !0));
-    }
-    function renderNodeDestructive(request, task, node, childIndex) {
-      null !== task.replay && "number" === typeof task.replay.slots
-        ? resumeNode(request, task, task.replay.slots, node, childIndex)
-        : ((task.node = node),
-          (task.childIndex = childIndex),
-          (node = task.componentStack),
-          (childIndex = task.debugTask),
-          pushComponentStack(task),
-          retryNode(request, task),
-          (task.componentStack = node),
-          (task.debugTask = childIndex));
-    }
-    function retryNode(request, task) {
-      var node = task.node,
-        childIndex = task.childIndex;
-      if (null !== node) {
-        if ("object" === typeof node) {
-          switch (node.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var type = node.type,
-                key = node.key;
-              node = node.props;
-              var refProp = node.ref;
-              refProp = void 0 !== refProp ? refProp : null;
-              var debugTask = task.debugTask,
-                name = getComponentNameFromType(type);
-              key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-              var keyPath = [task.keyPath, name, key];
-              null !== task.replay
-                ? debugTask
-                  ? debugTask.run(
-                      replayElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        name,
-                        key,
-                        childIndex,
-                        type,
-                        node,
-                        refProp,
-                        task.replay
-                      )
-                    )
-                  : replayElement(
-                      request,
-                      task,
-                      keyPath,
-                      name,
-                      key,
-                      childIndex,
-                      type,
-                      node,
-                      refProp,
-                      task.replay
-                    )
-                : debugTask
-                  ? debugTask.run(
-                      renderElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        type,
-                        node,
-                        refProp
-                      )
-                    )
-                  : renderElement(request, task, keyPath, type, node, refProp);
-              return;
-            case REACT_PORTAL_TYPE:
-              throw Error(
-                "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-              );
-            case REACT_LAZY_TYPE:
-              type = callLazyInitInDEV(node);
-              if (12 === request.status) throw null;
-              renderNodeDestructive(request, task, type, childIndex);
-              return;
-          }
-          if (isArrayImpl(node)) {
-            renderChildrenArray(request, task, node, childIndex);
-            return;
-          }
-          if ((key = getIteratorFn(node)))
-            if ((type = key.call(node))) {
-              validateIterable(task, node, childIndex, type, key);
-              node = type.next();
-              if (!node.done) {
-                key = [];
-                do key.push(node.value), (node = type.next());
-                while (!node.done);
-                renderChildrenArray(request, task, key, childIndex);
-              }
-              return;
-            }
-          if ("function" === typeof node.then)
-            return (
-              (task.thenableState = null),
-              renderNodeDestructive(
-                request,
-                task,
-                unwrapThenable(node),
-                childIndex
-              )
-            );
-          if (node.$$typeof === REACT_CONTEXT_TYPE)
-            return renderNodeDestructive(
-              request,
-              task,
-              node._currentValue,
-              childIndex
-            );
-          request = Object.prototype.toString.call(node);
-          throw Error(
-            "Objects are not valid as a React child (found: " +
-              ("[object Object]" === request
-                ? "object with keys {" + Object.keys(node).join(", ") + "}"
-                : request) +
-              "). If you meant to render a collection of children, use an array instead."
-          );
-        }
-        "string" === typeof node
-          ? ((task = task.blockedSegment),
-            null !== task &&
-              (task.lastPushedText = pushTextInstance(
-                task.chunks,
-                node,
-                request.renderState,
-                task.lastPushedText
-              )))
-          : "number" === typeof node || "bigint" === typeof node
-            ? ((task = task.blockedSegment),
-              null !== task &&
-                (task.lastPushedText = pushTextInstance(
-                  task.chunks,
-                  "" + node,
-                  request.renderState,
-                  task.lastPushedText
-                )))
-            : ("function" === typeof node &&
-                ((request = node.displayName || node.name || "Component"),
-                console.error(
-                  "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-                  request,
-                  request
-                )),
-              "symbol" === typeof node &&
-                console.error(
-                  "Symbols are not valid as a React child.\n  %s",
-                  String(node)
-                ));
-      }
-    }
-    function warnForMissingKey(request, task, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        (child.$$typeof === REACT_ELEMENT_TYPE ||
-          child.$$typeof === REACT_PORTAL_TYPE) &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var didWarnForKey = request.didWarnForKey;
-        null == didWarnForKey &&
-          (didWarnForKey = request.didWarnForKey = new WeakSet());
-        request = task.componentStack;
-        if (null !== request && !didWarnForKey.has(request)) {
-          didWarnForKey.add(request);
-          var componentName = getComponentNameFromType(child.type);
-          didWarnForKey = child._owner;
-          var parentOwner = request.owner;
-          request = "";
-          if (parentOwner && "undefined" !== typeof parentOwner.type) {
-            var name = getComponentNameFromType(parentOwner.type);
-            name &&
-              (request = "\n\nCheck the render method of `" + name + "`.");
-          }
-          request ||
-            (componentName &&
-              (request =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          componentName = "";
-          null != didWarnForKey &&
-            parentOwner !== didWarnForKey &&
-            ((parentOwner = null),
-            "undefined" !== typeof didWarnForKey.type
-              ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-              : "string" === typeof didWarnForKey.name &&
-                (parentOwner = didWarnForKey.name),
-            parentOwner &&
-              (componentName =
-                " It was passed a child from " + parentOwner + "."));
-          didWarnForKey = task.componentStack;
-          task.componentStack = {
-            parent: task.componentStack,
-            type: child.type,
-            owner: child._owner,
-            stack: child._debugStack
-          };
-          console.error(
-            'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-            request,
-            componentName
-          );
-          task.componentStack = didWarnForKey;
-        }
-      }
-    }
-    function renderChildrenArray(request, task, children, childIndex) {
-      var prevKeyPath = task.keyPath,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node._debugInfo);
-      if (
-        -1 !== childIndex &&
-        ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-        null !== task.replay)
-      ) {
-        for (
-          var replay = task.replay, replayNodes = replay.nodes, j = 0;
-          j < replayNodes.length;
-          j++
-        ) {
-          var node = replayNodes[j];
-          if (node[1] === childIndex) {
-            childIndex = node[2];
-            node = node[3];
-            task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-            try {
-              renderChildrenArray(request, task, children, -1);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw x;
-              task.replay.pendingTasks--;
-              var thrownInfo = getThrownInfo(task.componentStack);
-              children = task.blockedBoundary;
-              var error = x,
-                resumeSlots = node;
-              node = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              abortRemainingReplayNodes(
-                request,
-                children,
-                childIndex,
-                resumeSlots,
-                error,
-                node,
-                thrownInfo,
-                !1
-              );
-            }
-            task.replay = replay;
-            replayNodes.splice(j, 1);
-            break;
-          }
-        }
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      replay = task.treeContext;
-      replayNodes = children.length;
-      if (
-        null !== task.replay &&
-        ((j = task.replay.slots), null !== j && "object" === typeof j)
-      ) {
-        for (childIndex = 0; childIndex < replayNodes; childIndex++)
-          (node = children[childIndex]),
-            (task.treeContext = pushTreeContext(
-              replay,
-              replayNodes,
-              childIndex
-            )),
-            (error = j[childIndex]),
-            "number" === typeof error
-              ? (resumeNode(request, task, error, node, childIndex),
-                delete j[childIndex])
-              : renderNode(request, task, node, childIndex);
-        task.treeContext = replay;
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      for (j = 0; j < replayNodes; j++)
-        (childIndex = children[j]),
-          warnForMissingKey(request, task, childIndex),
-          (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-          renderNode(request, task, childIndex, j);
-      task.treeContext = replay;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function trackPostponedBoundary(request, trackedPostpones, boundary) {
-      boundary.status = POSTPONED;
-      boundary.rootSegmentID = request.nextSegmentId++;
-      request = boundary.trackedContentKeyPath;
-      if (null === request)
-        throw Error(
-          "It should not be possible to postpone at the root. This is a bug in React."
-        );
-      var fallbackReplayNode = boundary.trackedFallbackNode,
-        children = [],
-        boundaryNode = trackedPostpones.workingMap.get(request);
-      if (void 0 === boundaryNode)
-        return (
-          (boundary = [
-            request[1],
-            request[2],
-            children,
-            null,
-            fallbackReplayNode,
-            boundary.rootSegmentID
-          ]),
-          trackedPostpones.workingMap.set(request, boundary),
-          addToReplayParent(boundary, request[0], trackedPostpones),
-          boundary
-        );
-      boundaryNode[4] = fallbackReplayNode;
-      boundaryNode[5] = boundary.rootSegmentID;
-      return boundaryNode;
-    }
-    function trackPostpone(request, trackedPostpones, task, segment) {
-      segment.status = POSTPONED;
-      var keyPath = task.keyPath,
-        boundary = task.blockedBoundary;
-      if (null === boundary)
-        (segment.id = request.nextSegmentId++),
-          (trackedPostpones.rootSlots = segment.id),
-          null !== request.completedRootSegment &&
-            (request.completedRootSegment.status = POSTPONED);
-      else {
-        if (null !== boundary && boundary.status === PENDING) {
-          var boundaryNode = trackPostponedBoundary(
-            request,
-            trackedPostpones,
-            boundary
-          );
-          if (
-            boundary.trackedContentKeyPath === keyPath &&
-            -1 === task.childIndex
-          ) {
-            -1 === segment.id &&
-              (segment.id = segment.parentFlushed
-                ? boundary.rootSegmentID
-                : request.nextSegmentId++);
-            boundaryNode[3] = segment.id;
-            return;
-          }
-        }
-        -1 === segment.id &&
-          (segment.id =
-            segment.parentFlushed && null !== boundary
-              ? boundary.rootSegmentID
-              : request.nextSegmentId++);
-        if (-1 === task.childIndex)
-          null === keyPath
-            ? (trackedPostpones.rootSlots = segment.id)
-            : ((task = trackedPostpones.workingMap.get(keyPath)),
-              void 0 === task
-                ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-                  addToReplayParent(task, keyPath[0], trackedPostpones))
-                : (task[3] = segment.id));
-        else {
-          if (null === keyPath)
-            if (((request = trackedPostpones.rootSlots), null === request))
-              request = trackedPostpones.rootSlots = {};
-            else {
-              if ("number" === typeof request)
-                throw Error(
-                  "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-                );
-            }
-          else if (
-            ((boundary = trackedPostpones.workingMap),
-            (boundaryNode = boundary.get(keyPath)),
-            void 0 === boundaryNode)
-          )
-            (request = {}),
-              (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-              boundary.set(keyPath, boundaryNode),
-              addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-          else if (((request = boundaryNode[3]), null === request))
-            request = boundaryNode[3] = {};
-          else if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-          request[task.childIndex] = segment.id;
-        }
-      }
-    }
-    function untrackBoundary(request, boundary) {
-      request = request.trackedPostpones;
-      null !== request &&
-        ((boundary = boundary.trackedContentKeyPath),
-        null !== boundary &&
-          ((boundary = request.workingMap.get(boundary)),
-          void 0 !== boundary &&
-            ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-    }
-    function spawnNewSuspendedReplayTask(request, task, thenableState) {
-      return createReplayTask(
-        request,
-        thenableState,
-        task.replay,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function spawnNewSuspendedRenderTask(request, task, thenableState) {
-      var segment = task.blockedSegment,
-        newSegment = createPendingSegment(
-          request,
-          segment.chunks.length,
-          null,
-          task.formatContext,
-          segment.lastPushedText,
-          !0
-        );
-      segment.children.push(newSegment);
-      segment.lastPushedText = !1;
-      return createRenderTask(
-        request,
-        thenableState,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        newSegment,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function renderNode(request, task, node, childIndex) {
-      var previousFormatContext = task.formatContext,
-        previousContext = task.context,
-        previousKeyPath = task.keyPath,
-        previousTreeContext = task.treeContext,
-        previousComponentStack = task.componentStack,
-        previousDebugTask = task.debugTask,
-        segment = task.blockedSegment;
-      if (null === segment) {
-        segment = task.replay;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue) {
-          if (
-            (resetHooksState(),
-            (node =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              childIndex =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedReplayTask(
-                request,
-                task,
-                childIndex
-              ).ping;
-              node.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              node =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              node = spawnNewSuspendedReplayTask(request, task, node);
-              request.pingedTasks.push(node);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      } else {
-        var childrenLength = segment.children.length,
-          chunkLength = segment.chunks.length;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue$3) {
-          if (
-            (resetHooksState(),
-            (segment.children.length = childrenLength),
-            (segment.chunks.length = chunkLength),
-            (node =
-              thrownValue$3 === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue$3),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              segment = node;
-              node =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedRenderTask(request, task, node).ping;
-              segment.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              segment =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              segment = spawnNewSuspendedRenderTask(request, task, segment);
-              request.pingedTasks.push(segment);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      }
-      task.formatContext = previousFormatContext;
-      task.context = previousContext;
-      task.keyPath = previousKeyPath;
-      task.treeContext = previousTreeContext;
-      switchContext(previousContext);
-      throw node;
-    }
-    function abortTaskSoft(task) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      null !== segment &&
-        ((segment.status = ABORTED),
-        finishedTask(this, boundary, task.row, segment));
-    }
-    function abortRemainingReplayNodes(
-      request$jscomp$0,
-      boundary,
-      nodes,
-      slots,
-      error$jscomp$0,
-      errorDigest$jscomp$0,
-      errorInfo$jscomp$0,
-      aborted
-    ) {
-      for (var i = 0; i < nodes.length; i++) {
-        var node = nodes[i];
-        if (4 === node.length)
-          abortRemainingReplayNodes(
-            request$jscomp$0,
-            boundary,
-            node[2],
-            node[3],
-            error$jscomp$0,
-            errorDigest$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          );
-        else {
-          var request = request$jscomp$0;
-          node = node[5];
-          var error = error$jscomp$0,
-            errorDigest = errorDigest$jscomp$0,
-            errorInfo = errorInfo$jscomp$0,
-            wasAborted = aborted,
-            resumedBoundary = createSuspenseBoundary(
-              request,
-              null,
-              new Set(),
-              null,
-              null
-            );
-          resumedBoundary.parentFlushed = !0;
-          resumedBoundary.rootSegmentID = node;
-          resumedBoundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(
-            resumedBoundary,
-            errorDigest,
-            error,
-            errorInfo,
-            wasAborted
-          );
-          resumedBoundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(resumedBoundary);
-        }
-      }
-      nodes.length = 0;
-      if (null !== slots) {
-        if (null === boundary)
-          throw Error(
-            "We should not have any resumable nodes in the shell. This is a bug in React."
-          );
-        boundary.status !== CLIENT_RENDERED &&
-          ((boundary.status = CLIENT_RENDERED),
-          encodeErrorForBoundary(
-            boundary,
-            errorDigest$jscomp$0,
-            error$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          ),
-          boundary.parentFlushed &&
-            request$jscomp$0.clientRenderedBoundaries.push(boundary));
-        if ("object" === typeof slots)
-          for (var index in slots) delete slots[index];
-      }
-    }
-    function abortTask(task, request, error) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      if (null !== segment) {
-        if (6 === segment.status) return;
-        segment.status = ABORTED;
-      }
-      var errorInfo = getThrownInfo(task.componentStack),
-        node = task.node;
-      null !== node &&
-        "object" === typeof node &&
-        pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-      if (null === boundary) {
-        if (13 !== request.status && request.status !== CLOSED) {
-          boundary = task.replay;
-          if (null === boundary) {
-            null !== request.trackedPostpones && null !== segment
-              ? ((boundary = request.trackedPostpones),
-                logRecoverableError(request, error, errorInfo, task.debugTask),
-                trackPostpone(request, boundary, task, segment),
-                finishedTask(request, null, task.row, segment))
-              : (logRecoverableError(request, error, errorInfo, task.debugTask),
-                fatalError(request, error, errorInfo, task.debugTask));
-            return;
-          }
-          boundary.pendingTasks--;
-          0 === boundary.pendingTasks &&
-            0 < boundary.nodes.length &&
-            ((segment = logRecoverableError(request, error, errorInfo, null)),
-            abortRemainingReplayNodes(
-              request,
-              null,
-              boundary.nodes,
-              boundary.slots,
-              error,
-              segment,
-              errorInfo,
-              !0
-            ));
-          request.pendingRootTasks--;
-          0 === request.pendingRootTasks && completeShell(request);
-        }
-      } else {
-        node = request.trackedPostpones;
-        if (boundary.status !== CLIENT_RENDERED) {
-          if (null !== node && null !== segment)
-            return (
-              logRecoverableError(request, error, errorInfo, task.debugTask),
-              trackPostpone(request, node, task, segment),
-              boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-                return abortTask(fallbackTask, request, error);
-              }),
-              boundary.fallbackAbortableTasks.clear(),
-              finishedTask(request, boundary, task.row, segment)
-            );
-          boundary.status = CLIENT_RENDERED;
-          segment = logRecoverableError(
-            request,
-            error,
-            errorInfo,
-            task.debugTask
-          );
-          boundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-          untrackBoundary(request, boundary);
-          boundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(boundary);
-        }
-        boundary.pendingTasks--;
-        errorInfo = boundary.row;
-        null !== errorInfo &&
-          0 === --errorInfo.pendingTasks &&
-          finishSuspenseListRow(request, errorInfo);
-        boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-          return abortTask(fallbackTask, request, error);
-        });
-        boundary.fallbackAbortableTasks.clear();
-      }
-      task = task.row;
-      null !== task &&
-        0 === --task.pendingTasks &&
-        finishSuspenseListRow(request, task);
-      request.allPendingTasks--;
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function safelyEmitEarlyPreloads(request, shellComplete) {
-      try {
-        var renderState = request.renderState,
-          onHeaders = renderState.onHeaders;
-        if (onHeaders) {
-          var headers = renderState.headers;
-          if (headers) {
-            renderState.headers = null;
-            var linkHeader = headers.preconnects;
-            headers.fontPreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.fontPreloads));
-            headers.highImagePreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.highImagePreloads));
-            if (!shellComplete) {
-              var queueIter = renderState.styles.values(),
-                queueStep = queueIter.next();
-              b: for (
-                ;
-                0 < headers.remainingCapacity && !queueStep.done;
-                queueStep = queueIter.next()
-              )
-                for (
-                  var sheetIter = queueStep.value.sheets.values(),
-                    sheetStep = sheetIter.next();
-                  0 < headers.remainingCapacity && !sheetStep.done;
-                  sheetStep = sheetIter.next()
-                ) {
-                  var sheet = sheetStep.value,
-                    props = sheet.props,
-                    key = props.href,
-                    props$jscomp$0 = sheet.props;
-                  var header = getPreloadAsHeader(
-                    props$jscomp$0.href,
-                    "style",
-                    {
-                      crossOrigin: props$jscomp$0.crossOrigin,
-                      integrity: props$jscomp$0.integrity,
-                      nonce: props$jscomp$0.nonce,
-                      type: props$jscomp$0.type,
-                      fetchPriority: props$jscomp$0.fetchPriority,
-                      referrerPolicy: props$jscomp$0.referrerPolicy,
-                      media: props$jscomp$0.media
-                    }
-                  );
-                  if (0 <= (headers.remainingCapacity -= header.length + 2))
-                    (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                      linkHeader && (linkHeader += ", "),
-                      (linkHeader += header),
-                      (renderState.resets.style[key] =
-                        "string" === typeof props.crossOrigin ||
-                        "string" === typeof props.integrity
-                          ? [props.crossOrigin, props.integrity]
-                          : PRELOAD_NO_CREDS);
-                  else break b;
-                }
-            }
-            linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-          }
-        }
-      } catch (error) {
-        logRecoverableError(request, error, {}, null);
-      }
-    }
-    function completeShell(request) {
-      null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-      null === request.trackedPostpones && preparePreamble(request);
-      request.onShellError = noop;
-      request = request.onShellReady;
-      request();
-    }
-    function completeAll(request) {
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? !0
-          : null === request.completedRootSegment ||
-              request.completedRootSegment.status !== POSTPONED
-      );
-      preparePreamble(request);
-      request = request.onAllReady;
-      request();
-    }
-    function queueCompletedSegment(boundary, segment) {
-      if (
-        0 === segment.chunks.length &&
-        1 === segment.children.length &&
-        null === segment.children[0].boundary &&
-        -1 === segment.children[0].id
-      ) {
-        var childSegment = segment.children[0];
-        childSegment.id = segment.id;
-        childSegment.parentFlushed = !0;
-        (childSegment.status !== COMPLETED &&
-          childSegment.status !== ABORTED &&
-          childSegment.status !== ERRORED) ||
-          queueCompletedSegment(boundary, childSegment);
-      } else boundary.completedSegments.push(segment);
-    }
-    function finishedSegment(request, boundary, segment) {
-      if (null !== byteLengthOfChunk) {
-        segment = segment.chunks;
-        for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-          segmentByteSize += segment[i].byteLength;
-        null === boundary
-          ? (request.byteSize += segmentByteSize)
-          : (boundary.byteSize += segmentByteSize);
-      }
-    }
-    function finishedTask(request, boundary, row, segment) {
-      null !== row &&
-        (0 === --row.pendingTasks
-          ? finishSuspenseListRow(request, row)
-          : row.together && tryToResolveTogetherRow(request, row));
-      request.allPendingTasks--;
-      if (null === boundary) {
-        if (null !== segment && segment.parentFlushed) {
-          if (null !== request.completedRootSegment)
-            throw Error(
-              "There can only be one root segment. This is a bug in React."
-            );
-          request.completedRootSegment = segment;
-        }
-        request.pendingRootTasks--;
-        0 === request.pendingRootTasks && completeShell(request);
-      } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-        if (0 === boundary.pendingTasks)
-          if (
-            (boundary.status === PENDING && (boundary.status = COMPLETED),
-            null !== segment &&
-              segment.parentFlushed &&
-              (segment.status === COMPLETED || segment.status === ABORTED) &&
-              queueCompletedSegment(boundary, segment),
-            boundary.parentFlushed &&
-              request.completedBoundaries.push(boundary),
-            boundary.status === COMPLETED)
-          )
-            (row = boundary.row),
-              null !== row &&
-                hoistHoistables(row.hoistables, boundary.contentState),
-              isEligibleForOutlining(request, boundary) ||
-                (boundary.fallbackAbortableTasks.forEach(
-                  abortTaskSoft,
-                  request
-                ),
-                boundary.fallbackAbortableTasks.clear(),
-                null !== row &&
-                  0 === --row.pendingTasks &&
-                  finishSuspenseListRow(request, row)),
-              0 === request.pendingRootTasks &&
-                null === request.trackedPostpones &&
-                null !== boundary.contentPreamble &&
-                preparePreamble(request);
-          else {
-            if (
-              boundary.status === POSTPONED &&
-              ((boundary = boundary.row), null !== boundary)
-            ) {
-              if (null !== request.trackedPostpones) {
-                row = request.trackedPostpones;
-                var postponedRow = boundary.next;
-                if (
-                  null !== postponedRow &&
-                  ((segment = postponedRow.boundaries), null !== segment)
-                )
-                  for (
-                    postponedRow.boundaries = null, postponedRow = 0;
-                    postponedRow < segment.length;
-                    postponedRow++
-                  ) {
-                    var postponedBoundary = segment[postponedRow];
-                    trackPostponedBoundary(request, row, postponedBoundary);
-                    finishedTask(request, postponedBoundary, null, null);
-                  }
-              }
-              0 === --boundary.pendingTasks &&
-                finishSuspenseListRow(request, boundary);
-            }
-          }
-        else
-          null === segment ||
-            !segment.parentFlushed ||
-            (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-            (queueCompletedSegment(boundary, segment),
-            1 === boundary.completedSegments.length &&
-              boundary.parentFlushed &&
-              request.partialBoundaries.push(boundary)),
-            (boundary = boundary.row),
-            null !== boundary &&
-              boundary.together &&
-              tryToResolveTogetherRow(request, boundary);
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function performWork(request$jscomp$2) {
-      if (
-        request$jscomp$2.status !== CLOSED &&
-        13 !== request$jscomp$2.status
-      ) {
-        var prevContext = currentActiveSnapshot,
-          prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = HooksDispatcher;
-        var prevAsyncDispatcher = ReactSharedInternals.A;
-        ReactSharedInternals.A = DefaultAsyncDispatcher;
-        var prevRequest = currentRequest;
-        currentRequest = request$jscomp$2;
-        var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        var prevResumableState = currentResumableState;
-        currentResumableState = request$jscomp$2.resumableState;
-        try {
-          var pingedTasks = request$jscomp$2.pingedTasks,
-            i;
-          for (i = 0; i < pingedTasks.length; i++) {
-            var request = request$jscomp$2,
-              task = pingedTasks[i],
-              segment = task.blockedSegment;
-            if (null === segment) {
-              var prevTaskInDEV = void 0,
-                request$jscomp$0 = request;
-              request = task;
-              if (0 !== request.replay.pendingTasks) {
-                switchContext(request.context);
-                prevTaskInDEV = currentTaskInDEV;
-                currentTaskInDEV = request;
-                try {
-                  "number" === typeof request.replay.slots
-                    ? resumeNode(
-                        request$jscomp$0,
-                        request,
-                        request.replay.slots,
-                        request.node,
-                        request.childIndex
-                      )
-                    : retryNode(request$jscomp$0, request);
-                  if (
-                    1 === request.replay.pendingTasks &&
-                    0 < request.replay.nodes.length
-                  )
-                    throw Error(
-                      "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                    );
-                  request.replay.pendingTasks--;
-                  request.abortSet.delete(request);
-                  finishedTask(
-                    request$jscomp$0,
-                    request.blockedBoundary,
-                    request.row,
-                    null
-                  );
-                } catch (thrownValue) {
-                  resetHooksState();
-                  var x =
-                    thrownValue === SuspenseException
-                      ? getSuspendedThenable()
-                      : thrownValue;
-                  if (
-                    "object" === typeof x &&
-                    null !== x &&
-                    "function" === typeof x.then
-                  ) {
-                    var ping = request.ping;
-                    x.then(ping, ping);
-                    request.thenableState =
-                      thrownValue === SuspenseException
-                        ? getThenableStateAfterSuspending()
-                        : null;
-                  } else {
-                    request.replay.pendingTasks--;
-                    request.abortSet.delete(request);
-                    var errorInfo = getThrownInfo(request.componentStack),
-                      errorDigest = void 0,
-                      request$jscomp$1 = request$jscomp$0,
-                      boundary = request.blockedBoundary,
-                      error$jscomp$0 =
-                        12 === request$jscomp$0.status
-                          ? request$jscomp$0.fatalError
-                          : x,
-                      errorInfo$jscomp$0 = errorInfo,
-                      replayNodes = request.replay.nodes,
-                      resumeSlots = request.replay.slots;
-                    errorDigest = logRecoverableError(
-                      request$jscomp$1,
-                      error$jscomp$0,
-                      errorInfo$jscomp$0,
-                      request.debugTask
-                    );
-                    abortRemainingReplayNodes(
-                      request$jscomp$1,
-                      boundary,
-                      replayNodes,
-                      resumeSlots,
-                      error$jscomp$0,
-                      errorDigest,
-                      errorInfo$jscomp$0,
-                      !1
-                    );
-                    request$jscomp$0.pendingRootTasks--;
-                    0 === request$jscomp$0.pendingRootTasks &&
-                      completeShell(request$jscomp$0);
-                    request$jscomp$0.allPendingTasks--;
-                    0 === request$jscomp$0.allPendingTasks &&
-                      completeAll(request$jscomp$0);
-                  }
-                } finally {
-                  currentTaskInDEV = prevTaskInDEV;
-                }
-              }
-            } else if (
-              ((request$jscomp$0 = prevTaskInDEV = void 0),
-              (errorDigest = task),
-              (request$jscomp$1 = segment),
-              request$jscomp$1.status === PENDING)
-            ) {
-              request$jscomp$1.status = 6;
-              switchContext(errorDigest.context);
-              request$jscomp$0 = currentTaskInDEV;
-              currentTaskInDEV = errorDigest;
-              var childrenLength = request$jscomp$1.children.length,
-                chunkLength = request$jscomp$1.chunks.length;
-              try {
-                retryNode(request, errorDigest),
-                  request$jscomp$1.lastPushedText &&
-                    request$jscomp$1.textEmbedded &&
-                    request$jscomp$1.chunks.push(textSeparator),
-                  errorDigest.abortSet.delete(errorDigest),
-                  (request$jscomp$1.status = COMPLETED),
-                  finishedSegment(
-                    request,
-                    errorDigest.blockedBoundary,
-                    request$jscomp$1
-                  ),
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-              } catch (thrownValue) {
-                resetHooksState();
-                request$jscomp$1.children.length = childrenLength;
-                request$jscomp$1.chunks.length = chunkLength;
-                var x$jscomp$0 =
-                  thrownValue === SuspenseException
-                    ? getSuspendedThenable()
-                    : 12 === request.status
-                      ? request.fatalError
-                      : thrownValue;
-                if (
-                  12 === request.status &&
-                  null !== request.trackedPostpones
-                ) {
-                  var trackedPostpones = request.trackedPostpones,
-                    thrownInfo = getThrownInfo(errorDigest.componentStack);
-                  errorDigest.abortSet.delete(errorDigest);
-                  logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    thrownInfo,
-                    errorDigest.debugTask
-                  );
-                  trackPostpone(
-                    request,
-                    trackedPostpones,
-                    errorDigest,
-                    request$jscomp$1
-                  );
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-                } else if (
-                  "object" === typeof x$jscomp$0 &&
-                  null !== x$jscomp$0 &&
-                  "function" === typeof x$jscomp$0.then
-                ) {
-                  request$jscomp$1.status = PENDING;
-                  errorDigest.thenableState =
-                    thrownValue === SuspenseException
-                      ? getThenableStateAfterSuspending()
-                      : null;
-                  var ping$jscomp$0 = errorDigest.ping;
-                  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-                } else {
-                  var errorInfo$jscomp$1 = getThrownInfo(
-                    errorDigest.componentStack
-                  );
-                  errorDigest.abortSet.delete(errorDigest);
-                  request$jscomp$1.status = ERRORED;
-                  var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                    row = errorDigest.row,
-                    debugTask = errorDigest.debugTask;
-                  null !== row &&
-                    0 === --row.pendingTasks &&
-                    finishSuspenseListRow(request, row);
-                  request.allPendingTasks--;
-                  prevTaskInDEV = logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    errorInfo$jscomp$1,
-                    debugTask
-                  );
-                  if (null === boundary$jscomp$0)
-                    fatalError(
-                      request,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      debugTask
-                    );
-                  else if (
-                    (boundary$jscomp$0.pendingTasks--,
-                    boundary$jscomp$0.status !== CLIENT_RENDERED)
-                  ) {
-                    boundary$jscomp$0.status = CLIENT_RENDERED;
-                    encodeErrorForBoundary(
-                      boundary$jscomp$0,
-                      prevTaskInDEV,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      !1
-                    );
-                    untrackBoundary(request, boundary$jscomp$0);
-                    var boundaryRow = boundary$jscomp$0.row;
-                    null !== boundaryRow &&
-                      0 === --boundaryRow.pendingTasks &&
-                      finishSuspenseListRow(request, boundaryRow);
-                    boundary$jscomp$0.parentFlushed &&
-                      request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                    0 === request.pendingRootTasks &&
-                      null === request.trackedPostpones &&
-                      null !== boundary$jscomp$0.contentPreamble &&
-                      preparePreamble(request);
-                  }
-                  0 === request.allPendingTasks && completeAll(request);
-                }
-              } finally {
-                currentTaskInDEV = request$jscomp$0;
-              }
-            }
-          }
-          pingedTasks.splice(0, i);
-          null !== request$jscomp$2.destination &&
-            flushCompletedQueues(
-              request$jscomp$2,
-              request$jscomp$2.destination
-            );
-        } catch (error) {
-          (pingedTasks = {}),
-            logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-            fatalError(request$jscomp$2, error, pingedTasks, null);
-        } finally {
-          (currentResumableState = prevResumableState),
-            (ReactSharedInternals.H = prevDispatcher),
-            (ReactSharedInternals.A = prevAsyncDispatcher),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-            prevDispatcher === HooksDispatcher && switchContext(prevContext),
-            (currentRequest = prevRequest);
-        }
-      }
-    }
-    function preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      segment.preambleChildren.length &&
-        collectedPreambleSegments.push(segment.preambleChildren);
-      for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-        pendingPreambles =
-          preparePreambleFromSegment(
-            request,
-            segment.children[i],
-            collectedPreambleSegments
-          ) || pendingPreambles;
-      return pendingPreambles;
-    }
-    function preparePreambleFromSegment(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return preparePreambleFromSubtree(
-          request,
-          segment,
-          collectedPreambleSegments
-        );
-      var preamble = boundary.contentPreamble,
-        fallbackPreamble = boundary.fallbackPreamble;
-      if (null === preamble || null === fallbackPreamble) return !1;
-      switch (boundary.status) {
-        case COMPLETED:
-          hoistPreambleState(request.renderState, preamble);
-          request.byteSize += boundary.byteSize;
-          segment = boundary.completedSegments[0];
-          if (!segment)
-            throw Error(
-              "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-            );
-          return preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          );
-        case POSTPONED:
-          if (null !== request.trackedPostpones) return !0;
-        case CLIENT_RENDERED:
-          if (segment.status === COMPLETED)
-            return (
-              hoistPreambleState(request.renderState, fallbackPreamble),
-              preparePreambleFromSubtree(
-                request,
-                segment,
-                collectedPreambleSegments
-              )
-            );
-        default:
-          return !0;
-      }
-    }
-    function preparePreamble(request) {
-      if (
-        request.completedRootSegment &&
-        null === request.completedPreambleSegments
-      ) {
-        var collectedPreambleSegments = [],
-          originalRequestByteSize = request.byteSize,
-          hasPendingPreambles = preparePreambleFromSegment(
-            request,
-            request.completedRootSegment,
-            collectedPreambleSegments
-          ),
-          preamble = request.renderState.preamble;
-        !1 === hasPendingPreambles ||
-        (preamble.headChunks && preamble.bodyChunks)
-          ? (request.completedPreambleSegments = collectedPreambleSegments)
-          : (request.byteSize = originalRequestByteSize);
-      }
-    }
-    function flushSubtree(request, destination, segment, hoistableState) {
-      segment.parentFlushed = !0;
-      switch (segment.status) {
-        case PENDING:
-          segment.id = request.nextSegmentId++;
-        case POSTPONED:
-          return (
-            (hoistableState = segment.id),
-            (segment.lastPushedText = !1),
-            (segment.textEmbedded = !1),
-            (request = request.renderState),
-            writeChunk(destination, placeholder1),
-            writeChunk(destination, request.placeholderPrefix),
-            (request = stringToChunk(hoistableState.toString(16))),
-            writeChunk(destination, request),
-            writeChunkAndReturn(destination, placeholder2)
-          );
-        case COMPLETED:
-          segment.status = FLUSHED;
-          var r = !0,
-            chunks = segment.chunks,
-            chunkIdx = 0;
-          segment = segment.children;
-          for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-            for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-              writeChunk(destination, chunks[chunkIdx]);
-            r = flushSegment(request, destination, r, hoistableState);
-          }
-          for (; chunkIdx < chunks.length - 1; chunkIdx++)
-            writeChunk(destination, chunks[chunkIdx]);
-          chunkIdx < chunks.length &&
-            (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-          return r;
-        case ABORTED:
-          return !0;
-        default:
-          throw Error(
-            "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-          );
-      }
-    }
-    function flushSegment(request, destination, segment, hoistableState) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return flushSubtree(request, destination, segment, hoistableState);
-      boundary.parentFlushed = !0;
-      if (boundary.status === CLIENT_RENDERED) {
-        var row = boundary.row;
-        null !== row &&
-          0 === --row.pendingTasks &&
-          finishSuspenseListRow(request, row);
-        row = boundary.errorDigest;
-        var errorMessage = boundary.errorMessage,
-          errorStack = boundary.errorStack;
-        boundary = boundary.errorComponentStack;
-        writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-        writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-        row &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-          writeChunk(destination, stringToChunk(escapeTextForBrowser(row))),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorMessage &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1B),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(errorMessage))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorStack &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1C),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(errorStack))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        boundary &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1D),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(boundary))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-        flushSubtree(request, destination, segment, hoistableState);
-      } else if (boundary.status !== COMPLETED)
-        boundary.status === PENDING &&
-          (boundary.rootSegmentID = request.nextSegmentId++),
-          0 < boundary.completedSegments.length &&
-            request.partialBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          hoistableState &&
-            hoistHoistables(hoistableState, boundary.fallbackState),
-          flushSubtree(request, destination, segment, hoistableState);
-      else if (
-        !flushingPartialBoundaries &&
-        isEligibleForOutlining(request, boundary) &&
-        (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-          hasSuspenseyContent(boundary.contentState))
-      )
-        (boundary.rootSegmentID = request.nextSegmentId++),
-          request.completedBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          flushSubtree(request, destination, segment, hoistableState);
-      else {
-        flushedByteSize += boundary.byteSize;
-        hoistableState &&
-          hoistHoistables(hoistableState, boundary.contentState);
-        segment = boundary.row;
-        null !== segment &&
-          isEligibleForOutlining(request, boundary) &&
-          0 === --segment.pendingTasks &&
-          finishSuspenseListRow(request, segment);
-        writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-        segment = boundary.completedSegments;
-        if (1 !== segment.length)
-          throw Error(
-            "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-          );
-        flushSegment(request, destination, segment[0], hoistableState);
-      }
-      return writeChunkAndReturn(destination, endSuspenseBoundary);
-    }
-    function flushSegmentContainer(
-      request,
-      destination,
-      segment,
-      hoistableState
-    ) {
-      writeStartSegment(
-        destination,
-        request.renderState,
-        segment.parentFormatContext,
-        segment.id
-      );
-      flushSegment(request, destination, segment, hoistableState);
-      return writeEndSegment(destination, segment.parentFormatContext);
-    }
-    function flushCompletedBoundary(request, destination, boundary) {
-      flushedByteSize = boundary.byteSize;
-      for (
-        var completedSegments = boundary.completedSegments, i = 0;
-        i < completedSegments.length;
-        i++
-      )
-        flushPartiallyCompletedSegment(
-          request,
-          destination,
-          boundary,
-          completedSegments[i]
-        );
-      completedSegments.length = 0;
-      completedSegments = boundary.row;
-      null !== completedSegments &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --completedSegments.pendingTasks &&
-        finishSuspenseListRow(request, completedSegments);
-      writeHoistablesForBoundary(
-        destination,
-        boundary.contentState,
-        request.renderState
-      );
-      completedSegments = request.resumableState;
-      request = request.renderState;
-      i = boundary.rootSegmentID;
-      boundary = boundary.contentState;
-      var requiresStyleInsertion = request.stylesToHoist;
-      request.stylesToHoist = !1;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      requiresStyleInsertion
-        ? ((completedSegments.instructions & SentClientRenderFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentClientRenderFunction),
-            writeChunk(destination, clientRenderScriptFunctionOnly)),
-          (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          (completedSegments.instructions & SentStyleInsertionFunction) ===
-          NothingSent
-            ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-              writeChunk(
-                destination,
-                completeBoundaryWithStylesScript1FullPartial
-              ))
-            : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-        : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          writeChunk(destination, completeBoundaryScript1Partial));
-      completedSegments = stringToChunk(i.toString(16));
-      writeChunk(destination, request.boundaryPrefix);
-      writeChunk(destination, completedSegments);
-      writeChunk(destination, completeBoundaryScript2);
-      writeChunk(destination, request.segmentPrefix);
-      writeChunk(destination, completedSegments);
-      requiresStyleInsertion
-        ? (writeChunk(destination, completeBoundaryScript3a),
-          writeStyleResourceDependenciesInJS(destination, boundary))
-        : writeChunk(destination, completeBoundaryScript3b);
-      boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-      return writeBootstrap(destination, request) && boundary;
-    }
-    function flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      segment
-    ) {
-      if (segment.status === FLUSHED) return !0;
-      var hoistableState = boundary.contentState,
-        segmentID = segment.id;
-      if (-1 === segmentID) {
-        if (-1 === (segment.id = boundary.rootSegmentID))
-          throw Error(
-            "A root segment ID must have been assigned by now. This is a bug in React."
-          );
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      }
-      if (segmentID === boundary.rootSegmentID)
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      flushSegmentContainer(request, destination, segment, hoistableState);
-      boundary = request.resumableState;
-      request = request.renderState;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-        ? ((boundary.instructions |= SentCompleteSegmentFunction),
-          writeChunk(destination, completeSegmentScript1Full))
-        : writeChunk(destination, completeSegmentScript1Partial);
-      writeChunk(destination, request.segmentPrefix);
-      segmentID = stringToChunk(segmentID.toString(16));
-      writeChunk(destination, segmentID);
-      writeChunk(destination, completeSegmentScript2);
-      writeChunk(destination, request.placeholderPrefix);
-      writeChunk(destination, segmentID);
-      destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-      return destination;
-    }
-    function flushCompletedQueues(request, destination) {
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      try {
-        if (!(0 < request.pendingRootTasks)) {
-          var i,
-            completedRootSegment = request.completedRootSegment;
-          if (null !== completedRootSegment) {
-            if (completedRootSegment.status === POSTPONED) return;
-            var completedPreambleSegments = request.completedPreambleSegments;
-            if (null === completedPreambleSegments) return;
-            flushedByteSize = request.byteSize;
-            var resumableState = request.resumableState,
-              renderState = request.renderState,
-              preamble = renderState.preamble,
-              htmlChunks = preamble.htmlChunks,
-              headChunks = preamble.headChunks,
-              i$jscomp$0;
-            if (htmlChunks) {
-              for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-                writeChunk(destination, htmlChunks[i$jscomp$0]);
-              if (headChunks)
-                for (
-                  i$jscomp$0 = 0;
-                  i$jscomp$0 < headChunks.length;
-                  i$jscomp$0++
-                )
-                  writeChunk(destination, headChunks[i$jscomp$0]);
-              else
-                writeChunk(destination, startChunkForTag("head")),
-                  writeChunk(destination, endOfStartTag);
-            } else if (headChunks)
-              for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-                writeChunk(destination, headChunks[i$jscomp$0]);
-            var charsetChunks = renderState.charsetChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < charsetChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, charsetChunks[i$jscomp$0]);
-            charsetChunks.length = 0;
-            renderState.preconnects.forEach(flushResource, destination);
-            renderState.preconnects.clear();
-            var viewportChunks = renderState.viewportChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < viewportChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, viewportChunks[i$jscomp$0]);
-            viewportChunks.length = 0;
-            renderState.fontPreloads.forEach(flushResource, destination);
-            renderState.fontPreloads.clear();
-            renderState.highImagePreloads.forEach(flushResource, destination);
-            renderState.highImagePreloads.clear();
-            currentlyFlushingRenderState = renderState;
-            renderState.styles.forEach(flushStylesInPreamble, destination);
-            currentlyFlushingRenderState = null;
-            var importMapChunks = renderState.importMapChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < importMapChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, importMapChunks[i$jscomp$0]);
-            importMapChunks.length = 0;
-            renderState.bootstrapScripts.forEach(flushResource, destination);
-            renderState.scripts.forEach(flushResource, destination);
-            renderState.scripts.clear();
-            renderState.bulkPreloads.forEach(flushResource, destination);
-            renderState.bulkPreloads.clear();
-            htmlChunks ||
-              headChunks ||
-              (resumableState.instructions |= SentCompletedShellId);
-            var hoistableChunks = renderState.hoistableChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < hoistableChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, hoistableChunks[i$jscomp$0]);
-            for (
-              resumableState = hoistableChunks.length = 0;
-              resumableState < completedPreambleSegments.length;
-              resumableState++
-            ) {
-              var segments = completedPreambleSegments[resumableState];
-              for (
-                renderState = 0;
-                renderState < segments.length;
-                renderState++
-              )
-                flushSegment(request, destination, segments[renderState], null);
-            }
-            var preamble$jscomp$0 = request.renderState.preamble,
-              headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-            (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-              writeChunk(destination, endChunkForTag("head"));
-            var bodyChunks = preamble$jscomp$0.bodyChunks;
-            if (bodyChunks)
-              for (
-                completedPreambleSegments = 0;
-                completedPreambleSegments < bodyChunks.length;
-                completedPreambleSegments++
-              )
-                writeChunk(destination, bodyChunks[completedPreambleSegments]);
-            flushSegment(request, destination, completedRootSegment, null);
-            request.completedRootSegment = null;
-            var renderState$jscomp$0 = request.renderState;
-            if (
-              0 !== request.allPendingTasks ||
-              0 !== request.clientRenderedBoundaries.length ||
-              0 !== request.completedBoundaries.length ||
-              (null !== request.trackedPostpones &&
-                (0 !== request.trackedPostpones.rootNodes.length ||
-                  null !== request.trackedPostpones.rootSlots))
-            ) {
-              var resumableState$jscomp$0 = request.resumableState;
-              if (
-                (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-                NothingSent
-              ) {
-                resumableState$jscomp$0.instructions |= SentMarkShellTime;
-                writeChunk(destination, renderState$jscomp$0.startInlineScript);
-                if (
-                  (resumableState$jscomp$0.instructions &
-                    SentCompletedShellId) ===
-                  NothingSent
-                ) {
-                  resumableState$jscomp$0.instructions |= SentCompletedShellId;
-                  var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-                  writeChunk(destination, completedShellIdAttributeStart);
-                  writeChunk(
-                    destination,
-                    stringToChunk(escapeTextForBrowser(shellId))
-                  );
-                  writeChunk(destination, attributeEnd);
-                }
-                writeChunk(destination, endOfStartTag);
-                writeChunk(destination, shellTimeRuntimeScript);
-                writeChunkAndReturn(destination, endInlineScript);
-              }
-            }
-            writeBootstrap(destination, renderState$jscomp$0);
-          }
-          var renderState$jscomp$1 = request.renderState;
-          completedRootSegment = 0;
-          var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < viewportChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              viewportChunks$jscomp$0[completedRootSegment]
-            );
-          viewportChunks$jscomp$0.length = 0;
-          renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-          renderState$jscomp$1.preconnects.clear();
-          renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.fontPreloads.clear();
-          renderState$jscomp$1.highImagePreloads.forEach(
-            flushResource,
-            destination
-          );
-          renderState$jscomp$1.highImagePreloads.clear();
-          renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-          renderState$jscomp$1.scripts.forEach(flushResource, destination);
-          renderState$jscomp$1.scripts.clear();
-          renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.bulkPreloads.clear();
-          var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < hoistableChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              hoistableChunks$jscomp$0[completedRootSegment]
-            );
-          hoistableChunks$jscomp$0.length = 0;
-          var clientRenderedBoundaries = request.clientRenderedBoundaries;
-          for (i = 0; i < clientRenderedBoundaries.length; i++) {
-            var boundary = clientRenderedBoundaries[i];
-            renderState$jscomp$1 = destination;
-            var resumableState$jscomp$1 = request.resumableState,
-              renderState$jscomp$2 = request.renderState,
-              id = boundary.rootSegmentID,
-              errorDigest = boundary.errorDigest,
-              errorMessage = boundary.errorMessage,
-              errorStack = boundary.errorStack,
-              errorComponentStack = boundary.errorComponentStack;
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.startInlineScript
-            );
-            writeChunk(renderState$jscomp$1, endOfStartTag);
-            (resumableState$jscomp$1.instructions &
-              SentClientRenderFunction) ===
-            NothingSent
-              ? ((resumableState$jscomp$1.instructions |=
-                  SentClientRenderFunction),
-                writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-              : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.boundaryPrefix
-            );
-            writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16)));
-            writeChunk(renderState$jscomp$1, clientRenderScript1A);
-            if (
-              errorDigest ||
-              errorMessage ||
-              errorStack ||
-              errorComponentStack
-            )
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorDigest || "")
-                  )
-                );
-            if (errorMessage || errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorMessage || "")
-                  )
-                );
-            if (errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorStack || "")
-                  )
-                );
-            errorComponentStack &&
-              (writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-              writeChunk(
-                renderState$jscomp$1,
-                stringToChunk(
-                  escapeJSStringsForInstructionScripts(errorComponentStack)
-                )
-              ));
-            var JSCompiler_inline_result = writeChunkAndReturn(
-              renderState$jscomp$1,
-              clientRenderScriptEnd
-            );
-            if (!JSCompiler_inline_result) {
-              request.destination = null;
-              i++;
-              clientRenderedBoundaries.splice(0, i);
-              return;
-            }
-          }
-          clientRenderedBoundaries.splice(0, i);
-          var completedBoundaries = request.completedBoundaries;
-          for (i = 0; i < completedBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(
-                request,
-                destination,
-                completedBoundaries[i]
-              )
-            ) {
-              request.destination = null;
-              i++;
-              completedBoundaries.splice(0, i);
-              return;
-            }
-          completedBoundaries.splice(0, i);
-          completeWriting(destination);
-          currentView = new Uint8Array(2048);
-          writtenBytes = 0;
-          flushingPartialBoundaries = !0;
-          var partialBoundaries = request.partialBoundaries;
-          for (i = 0; i < partialBoundaries.length; i++) {
-            a: {
-              clientRenderedBoundaries = request;
-              boundary = destination;
-              var boundary$jscomp$0 = partialBoundaries[i];
-              flushedByteSize = boundary$jscomp$0.byteSize;
-              var completedSegments = boundary$jscomp$0.completedSegments;
-              for (
-                JSCompiler_inline_result = 0;
-                JSCompiler_inline_result < completedSegments.length;
-                JSCompiler_inline_result++
-              )
-                if (
-                  !flushPartiallyCompletedSegment(
-                    clientRenderedBoundaries,
-                    boundary,
-                    boundary$jscomp$0,
-                    completedSegments[JSCompiler_inline_result]
-                  )
-                ) {
-                  JSCompiler_inline_result++;
-                  completedSegments.splice(0, JSCompiler_inline_result);
-                  var JSCompiler_inline_result$jscomp$0 = !1;
-                  break a;
-                }
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var row = boundary$jscomp$0.row;
-              null !== row &&
-                row.together &&
-                1 === boundary$jscomp$0.pendingTasks &&
-                (1 === row.pendingTasks
-                  ? unblockSuspenseListRow(
-                      clientRenderedBoundaries,
-                      row,
-                      row.hoistables
-                    )
-                  : row.pendingTasks--);
-              JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-                boundary,
-                boundary$jscomp$0.contentState,
-                clientRenderedBoundaries.renderState
-              );
-            }
-            if (!JSCompiler_inline_result$jscomp$0) {
-              request.destination = null;
-              i++;
-              partialBoundaries.splice(0, i);
-              return;
-            }
-          }
-          partialBoundaries.splice(0, i);
-          flushingPartialBoundaries = !1;
-          var largeBoundaries = request.completedBoundaries;
-          for (i = 0; i < largeBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(request, destination, largeBoundaries[i])
-            ) {
-              request.destination = null;
-              i++;
-              largeBoundaries.splice(0, i);
-              return;
-            }
-          largeBoundaries.splice(0, i);
-        }
-      } finally {
-        (flushingPartialBoundaries = !1),
-          0 === request.allPendingTasks &&
-          0 === request.clientRenderedBoundaries.length &&
-          0 === request.completedBoundaries.length
-            ? ((request.flushScheduled = !1),
-              (i = request.resumableState),
-              i.hasBody && writeChunk(destination, endChunkForTag("body")),
-              i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-              completeWriting(destination),
-              0 !== request.abortableTasks.size &&
-                console.error(
-                  "There was still abortable task at the root when we closed. This is a bug in React."
-                ),
-              (request.status = CLOSED),
-              destination.close(),
-              (request.destination = null))
-            : completeWriting(destination);
-      }
-    }
-    function startWork(request) {
-      request.flushScheduled = null !== request.destination;
-      scheduleMicrotask(function () {
-        return performWork(request);
-      });
-      scheduleWork(function () {
-        10 === request.status && (request.status = 11);
-        null === request.trackedPostpones &&
-          safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-      });
-    }
-    function enqueueFlush(request) {
-      !1 === request.flushScheduled &&
-        0 === request.pingedTasks.length &&
-        null !== request.destination &&
-        ((request.flushScheduled = !0),
-        scheduleWork(function () {
-          var destination = request.destination;
-          destination
-            ? flushCompletedQueues(request, destination)
-            : (request.flushScheduled = !1);
-        }));
-    }
-    function startFlowing(request, destination) {
-      if (13 === request.status)
-        (request.status = CLOSED),
-          closeWithError(destination, request.fatalError);
-      else if (request.status !== CLOSED && null === request.destination) {
-        request.destination = destination;
-        try {
-          flushCompletedQueues(request, destination);
-        } catch (error) {
-          (destination = {}),
-            logRecoverableError(request, error, destination, null),
-            fatalError(request, error, destination, null);
-        }
-      }
-    }
-    function abort(request, reason) {
-      if (11 === request.status || 10 === request.status) request.status = 12;
-      try {
-        var abortableTasks = request.abortableTasks;
-        if (0 < abortableTasks.size) {
-          var error =
-            void 0 === reason
-              ? Error("The render was aborted by the server without a reason.")
-              : "object" === typeof reason &&
-                  null !== reason &&
-                  "function" === typeof reason.then
-                ? Error("The render was aborted by the server with a promise.")
-                : reason;
-          request.fatalError = error;
-          abortableTasks.forEach(function (task) {
-            var prevTaskInDEV = currentTaskInDEV,
-              prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-            currentTaskInDEV = task;
-            ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-            try {
-              abortTask(task, request, error);
-            } finally {
-              (currentTaskInDEV = prevTaskInDEV),
-                (ReactSharedInternals.getCurrentStack =
-                  prevGetCurrentStackImpl);
-            }
-          });
-          abortableTasks.clear();
-        }
-        null !== request.destination &&
-          flushCompletedQueues(request, request.destination);
-      } catch (error$4) {
-        (reason = {}),
-          logRecoverableError(request, error$4, reason, null),
-          fatalError(request, error$4, reason, null);
-      }
-    }
-    function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-      if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-      else {
-        var workingMap = trackedPostpones.workingMap,
-          parentNode = workingMap.get(parentKeyPath);
-        void 0 === parentNode &&
-          ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-          workingMap.set(parentKeyPath, parentNode),
-          addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-        parentNode[2].push(node);
-      }
-    }
-    function getPostponedState(request) {
-      var trackedPostpones = request.trackedPostpones;
-      if (
-        null === trackedPostpones ||
-        (0 === trackedPostpones.rootNodes.length &&
-          null === trackedPostpones.rootSlots)
-      )
-        return (request.trackedPostpones = null);
-      if (
-        null === request.completedRootSegment ||
-        (request.completedRootSegment.status !== POSTPONED &&
-          null !== request.completedPreambleSegments)
-      ) {
-        var nextSegmentId = request.nextSegmentId;
-        var replaySlots = trackedPostpones.rootSlots;
-        var resumableState = request.resumableState;
-        resumableState.bootstrapScriptContent = void 0;
-        resumableState.bootstrapScripts = void 0;
-        resumableState.bootstrapModules = void 0;
-      } else {
-        nextSegmentId = 0;
-        replaySlots = -1;
-        resumableState = request.resumableState;
-        var renderState = request.renderState;
-        resumableState.nextFormID = 0;
-        resumableState.hasBody = !1;
-        resumableState.hasHtml = !1;
-        resumableState.unknownResources = { font: renderState.resets.font };
-        resumableState.dnsResources = renderState.resets.dns;
-        resumableState.connectResources = renderState.resets.connect;
-        resumableState.imageResources = renderState.resets.image;
-        resumableState.styleResources = renderState.resets.style;
-        resumableState.scriptResources = {};
-        resumableState.moduleUnknownResources = {};
-        resumableState.moduleScriptResources = {};
-        resumableState.instructions = NothingSent;
-      }
-      return {
-        nextSegmentId: nextSegmentId,
-        rootFormatContext: request.rootFormatContext,
-        progressiveChunkSize: request.progressiveChunkSize,
-        resumableState: request.resumableState,
-        replayNodes: trackedPostpones.rootNodes,
-        replaySlots: replaySlots
-      };
-    }
-    function ensureCorrectIsomorphicReactVersion() {
-      var isomorphicReactPackageVersion = React.version;
-      if ("19.2.3" !== isomorphicReactPackageVersion)
-        throw Error(
-          'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-            (isomorphicReactPackageVersion +
-              "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-        );
-    }
-    var React = require("react"),
-      ReactDOM = require("react-dom"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-      REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      isArrayImpl = Array.isArray,
-      jsxPropsParents = new WeakMap(),
-      jsxChildrenParents = new WeakMap(),
-      CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
-      channel = new MessageChannel(),
-      taskQueue = [];
-    channel.port1.onmessage = function () {
-      var task = taskQueue.shift();
-      task && task();
-    };
-    var LocalPromise = Promise,
-      scheduleMicrotask =
-        "function" === typeof queueMicrotask
-          ? queueMicrotask
-          : function (callback) {
-              LocalPromise.resolve(null)
-                .then(callback)
-                .catch(handleErrorInNextTick);
-            },
-      currentView = null,
-      writtenBytes = 0,
-      textEncoder = new TextEncoder(),
-      assign = Object.assign,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern$1 = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      matchHtmlRegExp = /["'&<>]/,
-      uppercasePattern = /([A-Z])/g,
-      msPattern = /^ms-/,
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: previousDispatcher.f,
-      r: previousDispatcher.r,
-      D: function (href) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            if (!resumableState.dnsResources.hasOwnProperty(href)) {
-              resumableState.dnsResources[href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              )
-                JSCompiler_temp =
-                  ((header =
-                    "<" +
-                    escapeHrefForLinkHeaderURLContext(href) +
-                    ">; rel=dns-prefetch"),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              JSCompiler_temp
-                ? ((renderState.resets.dns[href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((header = []),
-                  pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-                  renderState.preconnects.add(header));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.D(href);
-      },
-      C: function (href, crossOrigin) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            var bucket =
-              "use-credentials" === crossOrigin
-                ? "credentials"
-                : "string" === typeof crossOrigin
-                  ? "anonymous"
-                  : "default";
-            if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-              resumableState.connectResources[bucket][href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              ) {
-                JSCompiler_temp =
-                  "<" +
-                  escapeHrefForLinkHeaderURLContext(href) +
-                  ">; rel=preconnect";
-                if ("string" === typeof crossOrigin) {
-                  var escapedCrossOrigin =
-                    escapeStringForLinkHeaderQuotedParamValueContext(
-                      crossOrigin,
-                      "crossOrigin"
-                    );
-                  JSCompiler_temp +=
-                    '; crossorigin="' + escapedCrossOrigin + '"';
-                }
-                JSCompiler_temp =
-                  ((header = JSCompiler_temp),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              }
-              JSCompiler_temp
-                ? ((renderState.resets.connect[bucket][href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((bucket = []),
-                  pushLinkImpl(bucket, {
-                    rel: "preconnect",
-                    href: href,
-                    crossOrigin: crossOrigin
-                  }),
-                  renderState.preconnects.add(bucket));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.C(href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (as && href) {
-            switch (as) {
-              case "image":
-                if (options) {
-                  var imageSrcSet = options.imageSrcSet;
-                  var imageSizes = options.imageSizes;
-                  var fetchPriority = options.fetchPriority;
-                }
-                var key = imageSrcSet
-                  ? imageSrcSet + "\n" + (imageSizes || "")
-                  : href;
-                if (resumableState.imageResources.hasOwnProperty(key)) return;
-                resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-                resumableState = renderState.headers;
-                var header;
-                resumableState &&
-                0 < resumableState.remainingCapacity &&
-                "string" !== typeof imageSrcSet &&
-                "high" === fetchPriority &&
-                ((header = getPreloadAsHeader(href, as, options)),
-                0 <= (resumableState.remainingCapacity -= header.length + 2))
-                  ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-                    resumableState.highImagePreloads &&
-                      (resumableState.highImagePreloads += ", "),
-                    (resumableState.highImagePreloads += header))
-                  : ((resumableState = []),
-                    pushLinkImpl(
-                      resumableState,
-                      assign(
-                        {
-                          rel: "preload",
-                          href: imageSrcSet ? void 0 : href,
-                          as: as
-                        },
-                        options
-                      )
-                    ),
-                    "high" === fetchPriority
-                      ? renderState.highImagePreloads.add(resumableState)
-                      : (renderState.bulkPreloads.add(resumableState),
-                        renderState.preloads.images.set(key, resumableState)));
-                break;
-              case "style":
-                if (resumableState.styleResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.styleResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.stylesheets.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                break;
-              case "script":
-                if (resumableState.scriptResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                renderState.preloads.scripts.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.scriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                break;
-              default:
-                if (resumableState.unknownResources.hasOwnProperty(as)) {
-                  if (
-                    ((imageSrcSet = resumableState.unknownResources[as]),
-                    imageSrcSet.hasOwnProperty(href))
-                  )
-                    return;
-                } else
-                  (imageSrcSet = {}),
-                    (resumableState.unknownResources[as] = imageSrcSet);
-                imageSrcSet[href] = PRELOAD_NO_CREDS;
-                if (
-                  (resumableState = renderState.headers) &&
-                  0 < resumableState.remainingCapacity &&
-                  "font" === as &&
-                  ((key = getPreloadAsHeader(href, as, options)),
-                  0 <= (resumableState.remainingCapacity -= key.length + 2))
-                )
-                  (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-                    resumableState.fontPreloads &&
-                      (resumableState.fontPreloads += ", "),
-                    (resumableState.fontPreloads += key);
-                else
-                  switch (
-                    ((resumableState = []),
-                    (href = assign(
-                      { rel: "preload", href: href, as: as },
-                      options
-                    )),
-                    pushLinkImpl(resumableState, href),
-                    as)
-                  ) {
-                    case "font":
-                      renderState.fontPreloads.add(resumableState);
-                      break;
-                    default:
-                      renderState.bulkPreloads.add(resumableState);
-                  }
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.L(href, as, options);
-      },
-      m: function (href, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            var as =
-              options && "string" === typeof options.as ? options.as : "script";
-            switch (as) {
-              case "script":
-                if (resumableState.moduleScriptResources.hasOwnProperty(href))
-                  return;
-                as = [];
-                resumableState.moduleScriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.moduleScripts.set(href, as);
-                break;
-              default:
-                if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-                  var resources = resumableState.unknownResources[as];
-                  if (resources.hasOwnProperty(href)) return;
-                } else
-                  (resources = {}),
-                    (resumableState.moduleUnknownResources[as] = resources);
-                as = [];
-                resources[href] = PRELOAD_NO_CREDS;
-            }
-            pushLinkImpl(
-              as,
-              assign({ rel: "modulepreload", href: href }, options)
-            );
-            renderState.bulkPreloads.add(as);
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.m(href, options);
-      },
-      X: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState = resumableState.scriptResources.hasOwnProperty(
-              src
-            )
-              ? resumableState.scriptResources[src]
-              : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.scriptResources[src] = EXISTS),
-              (options = assign({ src: src, async: !0 }, options)),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.scripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.X(src, options);
-      },
-      S: function (href, precedence, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            precedence = precedence || "default";
-            var styleQueue = renderState.styles.get(precedence),
-              resourceState = resumableState.styleResources.hasOwnProperty(href)
-                ? resumableState.styleResources[href]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.styleResources[href] = EXISTS),
-              styleQueue ||
-                ((styleQueue = {
-                  precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(precedence, styleQueue)),
-              (precedence = {
-                state: PENDING$1,
-                props: assign(
-                  {
-                    rel: "stylesheet",
-                    href: href,
-                    "data-precedence": precedence
-                  },
-                  options
-                )
-              }),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(precedence.props, resourceState),
-                (renderState = renderState.preloads.stylesheets.get(href)) &&
-                0 < renderState.length
-                  ? (renderState.length = 0)
-                  : (precedence.state = PRELOADED)),
-              styleQueue.sheets.set(href, precedence),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.S(href, precedence, options);
-      },
-      M: function (src, options) {
-        var request = currentRequest ? currentRequest : null;
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState =
-              resumableState.moduleScriptResources.hasOwnProperty(src)
-                ? resumableState.moduleScriptResources[src]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.moduleScriptResources[src] = EXISTS),
-              (options = assign(
-                { src: src, type: "module", async: !0 },
-                options
-              )),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.moduleScripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.M(src, options);
-      }
-    };
-    var NothingSent = 0,
-      SentCompleteSegmentFunction = 1,
-      SentCompleteBoundaryFunction = 2,
-      SentClientRenderFunction = 4,
-      SentStyleInsertionFunction = 8,
-      SentCompletedShellId = 32,
-      SentMarkShellTime = 64,
-      EXISTS = null,
-      PRELOAD_NO_CREDS = [];
-    Object.freeze(PRELOAD_NO_CREDS);
-    var currentlyFlushingRenderState = null;
-    stringToPrecomputedChunk('"></template>');
-    var startInlineScript = stringToPrecomputedChunk("<script"),
-      endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-      startScriptSrc = stringToPrecomputedChunk('<script src="'),
-      startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-      scriptNonce = stringToPrecomputedChunk(' nonce="'),
-      scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-      scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-      endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-      startInlineStyle = stringToPrecomputedChunk("<style"),
-      scriptRegex = /(<\/|<)(s)(cript)/gi,
-      importMapScriptStart = stringToPrecomputedChunk(
-        '<script type="importmap">'
-      ),
-      importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var ROOT_HTML_MODE = 0,
-      HTML_HTML_MODE = 1,
-      HTML_MODE = 2,
-      HTML_HEAD_MODE = 3,
-      SVG_MODE = 4,
-      MATHML_MODE = 5,
-      HTML_TABLE_MODE = 6,
-      HTML_TABLE_BODY_MODE = 7,
-      HTML_TABLE_ROW_MODE = 8,
-      HTML_COLGROUP_MODE = 9,
-      textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"),
-      styleNameCache = new Map(),
-      styleAttributeStart = stringToPrecomputedChunk(' style="'),
-      styleAssign = stringToPrecomputedChunk(":"),
-      styleSeparator = stringToPrecomputedChunk(";"),
-      attributeSeparator = stringToPrecomputedChunk(" "),
-      attributeAssign = stringToPrecomputedChunk('="'),
-      attributeEnd = stringToPrecomputedChunk('"'),
-      attributeEmptyString = stringToPrecomputedChunk('=""'),
-      actionJavaScriptURL = stringToPrecomputedChunk(
-        escapeTextForBrowser(
-          "javascript:throw new Error('React form unexpectedly submitted.')"
-        )
-      ),
-      startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'),
-      endOfStartTag = stringToPrecomputedChunk(">"),
-      endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"),
-      didWarnDefaultInputValue = !1,
-      didWarnDefaultChecked = !1,
-      didWarnDefaultSelectValue = !1,
-      didWarnDefaultTextareaValue = !1,
-      didWarnInvalidOptionChildren = !1,
-      didWarnInvalidOptionInnerHTML = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-      formReplayingRuntimeScript = stringToPrecomputedChunk(
-        'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-      ),
-      formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-      formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"),
-      styleRegex = /(<\/|<)(s)(tyle)/gi,
-      headPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--head--\x3e"),
-      bodyPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--body--\x3e"),
-      htmlPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--html--\x3e"),
-      leadingNewline = stringToPrecomputedChunk("\n"),
-      VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-      validatedTagCache = new Map(),
-      doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"),
-      endTagCache = new Map(),
-      shellTimeRuntimeScript = stringToPrecomputedChunk(
-        "requestAnimationFrame(function(){$RT=performance.now()});"
-      ),
-      placeholder1 = stringToPrecomputedChunk('<template id="'),
-      placeholder2 = stringToPrecomputedChunk('"></template>'),
-      startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-      endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-      startCompletedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$--\x3e"),
-      startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-        '\x3c!--$?--\x3e<template id="'
-      ),
-      startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-      startClientRenderedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-      endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-      clientRenderedSuspenseBoundaryError1 =
-        stringToPrecomputedChunk("<template"),
-      clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-        stringToPrecomputedChunk('"'),
-      clientRenderedSuspenseBoundaryError1A =
-        stringToPrecomputedChunk(' data-dgst="'),
-      clientRenderedSuspenseBoundaryError1B =
-        stringToPrecomputedChunk(' data-msg="'),
-      clientRenderedSuspenseBoundaryError1C =
-        stringToPrecomputedChunk(' data-stck="'),
-      clientRenderedSuspenseBoundaryError1D =
-        stringToPrecomputedChunk(' data-cstck="'),
-      clientRenderedSuspenseBoundaryError2 =
-        stringToPrecomputedChunk("></template>"),
-      startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-      startSegmentHTML2 = stringToPrecomputedChunk('">'),
-      endSegmentHTML = stringToPrecomputedChunk("</div>"),
-      startSegmentSVG = stringToPrecomputedChunk(
-        '<svg aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentSVG2 = stringToPrecomputedChunk('">'),
-      endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-      startSegmentMathML = stringToPrecomputedChunk(
-        '<math aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentMathML2 = stringToPrecomputedChunk('">'),
-      endSegmentMathML = stringToPrecomputedChunk("</math>"),
-      startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-      startSegmentTable2 = stringToPrecomputedChunk('">'),
-      endSegmentTable = stringToPrecomputedChunk("</table>"),
-      startSegmentTableBody = stringToPrecomputedChunk(
-        '<table hidden><tbody id="'
-      ),
-      startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-      endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-      startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-      startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-      endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-      startSegmentColGroup = stringToPrecomputedChunk(
-        '<table hidden><colgroup id="'
-      ),
-      startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-      endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"),
-      completeSegmentScript1Full = stringToPrecomputedChunk(
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ),
-      completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-      completeSegmentScript2 = stringToPrecomputedChunk('","'),
-      completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-    stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-    stringToPrecomputedChunk('" data-pid="');
-    var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-      '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-    );
-    stringToChunk(
-      '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);'
-    );
-    var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-      completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-        '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-      ),
-      completeBoundaryWithStylesScript1Partial =
-        stringToPrecomputedChunk('$RR("'),
-      completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-      completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-      completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-      completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rci="" data-bid="');
-    stringToPrecomputedChunk('<template data-rri="" data-bid="');
-    stringToPrecomputedChunk('" data-sid="');
-    stringToPrecomputedChunk('" data-sty="');
-    var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-      ),
-      clientRenderScript1Full = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-      ),
-      clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-      clientRenderScript1A = stringToPrecomputedChunk('"'),
-      clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-      clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-    stringToPrecomputedChunk('" data-dgst="');
-    stringToPrecomputedChunk('" data-msg="');
-    stringToPrecomputedChunk('" data-stck="');
-    stringToPrecomputedChunk('" data-cstck="');
-    var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
-      regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
-      lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-        ' media="not all" data-precedence="'
-      ),
-      lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-      currentlyRenderingBoundaryHasStylesToHoist = !1,
-      destinationHasCapacity = !0,
-      stylesheetFlushingQueue = [],
-      styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-      styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      spaceSeparator = stringToPrecomputedChunk(" "),
-      styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      styleTagResourceClose = stringToPrecomputedChunk("</style>");
-    stringToPrecomputedChunk('<link rel="expect" href="#');
-    stringToPrecomputedChunk('" blocking="render"/>');
-    var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'),
-      arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-      arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-      arrayInterstitial = stringToPrecomputedChunk(","),
-      arrayCloseBracket = stringToPrecomputedChunk("]"),
-      PENDING$1 = 0,
-      PRELOADED = 1,
-      PREAMBLE = 2,
-      LATE = 3,
-      regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g,
-      regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g,
-      bind = Function.prototype.bind,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var rendererSigil = {};
-    var currentActiveSnapshot = null,
-      didWarnAboutNoopUpdateForComponent = {},
-      didWarnAboutDeprecatedWillMount = {};
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          var internals = inst._reactInternals;
-          null === internals.queue
-            ? warnNoop(inst, "setState")
-            : (internals.queue.push(payload),
-              void 0 !== callback &&
-                null !== callback &&
-                warnOnInvalidCallback(callback));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          inst.replace = !0;
-          inst.queue = [payload];
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback);
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          null === inst._reactInternals.queue
-            ? warnNoop(inst, "forceUpdate")
-            : void 0 !== callback &&
-              null !== callback &&
-              warnOnInvalidCallback(callback);
-        }
-      },
-      emptyTreeContext = { id: 1, overflow: "" },
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      suspendedThenable = null,
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      currentlyRenderingComponent = null,
-      currentlyRenderingTask = null,
-      currentlyRenderingRequest = null,
-      currentlyRenderingKeyPath = null,
-      firstWorkInProgressHook = null,
-      workInProgressHook = null,
-      isReRender = !1,
-      didScheduleRenderPhaseUpdate = !1,
-      localIdCounter = 0,
-      actionStateCounter = 0,
-      actionStateMatchingIndex = -1,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      renderPhaseUpdates = null,
-      numberOfReRenders = 0,
-      isInHookUserCodeInDev = !1,
-      currentHookNameInDev,
-      HooksDispatcher = {
-        readContext: readContext,
-        use: function (usable) {
-          if (null !== usable && "object" === typeof usable) {
-            if ("function" === typeof usable.then)
-              return unwrapThenable(usable);
-            if (usable.$$typeof === REACT_CONTEXT_TYPE)
-              return readContext(usable);
-          }
-          throw Error(
-            "An unsupported type was passed to use(): " + String(usable)
-          );
-        },
-        useContext: function (context) {
-          currentHookNameInDev = "useContext";
-          resolveCurrentlyRenderingComponent();
-          return context._currentValue;
-        },
-        useMemo: useMemo,
-        useReducer: useReducer,
-        useRef: function (initialValue) {
-          currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-          workInProgressHook = createWorkInProgressHook();
-          var previousRef = workInProgressHook.memoizedState;
-          return null === previousRef
-            ? ((initialValue = { current: initialValue }),
-              Object.seal(initialValue),
-              (workInProgressHook.memoizedState = initialValue))
-            : previousRef;
-        },
-        useState: function (initialState) {
-          currentHookNameInDev = "useState";
-          return useReducer(basicStateReducer, initialState);
-        },
-        useInsertionEffect: noop,
-        useLayoutEffect: noop,
-        useCallback: function (callback, deps) {
-          return useMemo(function () {
-            return callback;
-          }, deps);
-        },
-        useImperativeHandle: noop,
-        useEffect: noop,
-        useDebugValue: noop,
-        useDeferredValue: function (value, initialValue) {
-          resolveCurrentlyRenderingComponent();
-          return void 0 !== initialValue ? initialValue : value;
-        },
-        useTransition: function () {
-          resolveCurrentlyRenderingComponent();
-          return [!1, unsupportedStartTransition];
-        },
-        useId: function () {
-          var treeId = currentlyRenderingTask.treeContext;
-          var overflow = treeId.overflow;
-          treeId = treeId.id;
-          treeId =
-            (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-          var resumableState = currentResumableState;
-          if (null === resumableState)
-            throw Error(
-              "Invalid hook call. Hooks can only be called inside of the body of a function component."
-            );
-          overflow = localIdCounter++;
-          treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-          0 < overflow && (treeId += "H" + overflow.toString(32));
-          return treeId + "_";
-        },
-        useSyncExternalStore: function (
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        ) {
-          if (void 0 === getServerSnapshot)
-            throw Error(
-              "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-            );
-          return getServerSnapshot();
-        },
-        useOptimistic: function (passthrough) {
-          resolveCurrentlyRenderingComponent();
-          return [passthrough, unsupportedSetOptimisticState];
-        },
-        useActionState: useActionState,
-        useFormState: useActionState,
-        useHostTransitionStatus: function () {
-          resolveCurrentlyRenderingComponent();
-          return NotPending;
-        },
-        useMemoCache: function (size) {
-          for (var data = Array(size), i = 0; i < size; i++)
-            data[i] = REACT_MEMO_CACHE_SENTINEL;
-          return data;
-        },
-        useCacheRefresh: function () {
-          return unsupportedRefresh;
-        },
-        useEffectEvent: function () {
-          return throwOnUseEffectEventCall;
-        }
-      },
-      currentResumableState = null,
-      currentTaskInDEV = null,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function () {
-          throw Error("Not implemented.");
-        },
-        cacheSignal: function () {
-          throw Error("Not implemented.");
-        },
-        getOwner: function () {
-          return null === currentTaskInDEV
-            ? null
-            : currentTaskInDEV.componentStack;
-        }
-      },
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          return Component(props, secondArg);
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          return instance.render();
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var CLIENT_RENDERED = 4,
-      PENDING = 0,
-      COMPLETED = 1,
-      FLUSHED = 2,
-      ABORTED = 3,
-      ERRORED = 4,
-      POSTPONED = 5,
-      CLOSED = 14,
-      currentRequest = null,
-      didWarnAboutBadClass = {},
-      didWarnAboutContextTypes = {},
-      didWarnAboutContextTypeOnFunctionComponent = {},
-      didWarnAboutGetDerivedStateOnFunctionComponent = {},
-      didWarnAboutReassigningProps = !1,
-      didWarnAboutGenerators = !1,
-      didWarnAboutMaps = !1,
-      flushedByteSize = 0,
-      flushingPartialBoundaries = !1;
-    ensureCorrectIsomorphicReactVersion();
-    ensureCorrectIsomorphicReactVersion();
-    exports.prerender = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resources = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createPrerenderRequest(
-            children,
-            resources,
-            createRenderState(
-              resources,
-              void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream = {
-                postponed: getPostponedState(request),
-                prelude: stream
-              };
-              resolve(stream);
-            },
-            void 0,
-            void 0,
-            reject,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.renderToReadableStream = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resumableState = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createRequest(
-            children,
-            resumableState,
-            createRenderState(
-              resumableState,
-              options ? options.nonce : void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0,
-            options ? options.formState : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resume = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          request = resumeRequest(
-            children,
-            postponedState,
-            createRenderState(
-              postponedState.resumableState,
-              options ? options.nonce : void 0,
-              void 0,
-              void 0,
-              void 0,
-              void 0
-            ),
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resumeAndPrerender = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var request = resumeAndPrerenderRequest(
-          children,
-          postponedState,
-          createRenderState(
-            postponedState.resumableState,
-            void 0,
-            void 0,
-            void 0,
-            void 0,
-            void 0
-          ),
-          options ? options.onError : void 0,
-          function () {
-            var stream = new ReadableStream(
-              {
-                type: "bytes",
-                pull: function (controller) {
-                  startFlowing(request, controller);
-                },
-                cancel: function (reason) {
-                  request.destination = null;
-                  abort(request, reason);
-                }
-              },
-              { highWaterMark: 0 }
-            );
-            stream = { postponed: getPostponedState(request), prelude: stream };
-            resolve(stream);
-          },
-          void 0,
-          void 0,
-          reject,
-          options ? options.onPostpone : void 0
-        );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom-server.browser.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.browser.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7410 +1,0 @@
-/**
- * @license React
- * react-dom-server.browser.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom");
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray;
-function murmurhash3_32_gc(key, seed) {
-  var remainder = key.length & 3;
-  var bytes = key.length - remainder;
-  var h1 = seed;
-  for (seed = 0; seed < bytes; ) {
-    var k1 =
-      (key.charCodeAt(seed) & 255) |
-      ((key.charCodeAt(++seed) & 255) << 8) |
-      ((key.charCodeAt(++seed) & 255) << 16) |
-      ((key.charCodeAt(++seed) & 255) << 24);
-    ++seed;
-    k1 =
-      (3432918353 * (k1 & 65535) +
-        (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    k1 = (k1 << 15) | (k1 >>> 17);
-    k1 =
-      (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    h1 ^= k1;
-    h1 = (h1 << 13) | (h1 >>> 19);
-    h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-    h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-  }
-  k1 = 0;
-  switch (remainder) {
-    case 3:
-      k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-    case 2:
-      k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-    case 1:
-      (k1 ^= key.charCodeAt(seed) & 255),
-        (k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295),
-        (k1 = (k1 << 15) | (k1 >>> 17)),
-        (h1 ^=
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295);
-  }
-  h1 ^= key.length;
-  h1 ^= h1 >>> 16;
-  h1 =
-    (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  h1 ^= h1 >>> 13;
-  h1 =
-    (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  return (h1 ^ (h1 >>> 16)) >>> 0;
-}
-var channel = new MessageChannel(),
-  taskQueue = [];
-channel.port1.onmessage = function () {
-  var task = taskQueue.shift();
-  task && task();
-};
-function scheduleWork(callback) {
-  taskQueue.push(callback);
-  channel.port2.postMessage(null);
-}
-function handleErrorInNextTick(error) {
-  setTimeout(function () {
-    throw error;
-  });
-}
-var LocalPromise = Promise,
-  scheduleMicrotask =
-    "function" === typeof queueMicrotask
-      ? queueMicrotask
-      : function (callback) {
-          LocalPromise.resolve(null)
-            .then(callback)
-            .catch(handleErrorInNextTick);
-        },
-  currentView = null,
-  writtenBytes = 0;
-function writeChunk(destination, chunk) {
-  if (0 !== chunk.byteLength)
-    if (2048 < chunk.byteLength)
-      0 < writtenBytes &&
-        (destination.enqueue(
-          new Uint8Array(currentView.buffer, 0, writtenBytes)
-        ),
-        (currentView = new Uint8Array(2048)),
-        (writtenBytes = 0)),
-        destination.enqueue(chunk);
-    else {
-      var allowableBytes = currentView.length - writtenBytes;
-      allowableBytes < chunk.byteLength &&
-        (0 === allowableBytes
-          ? destination.enqueue(currentView)
-          : (currentView.set(chunk.subarray(0, allowableBytes), writtenBytes),
-            destination.enqueue(currentView),
-            (chunk = chunk.subarray(allowableBytes))),
-        (currentView = new Uint8Array(2048)),
-        (writtenBytes = 0));
-      currentView.set(chunk, writtenBytes);
-      writtenBytes += chunk.byteLength;
-    }
-}
-function writeChunkAndReturn(destination, chunk) {
-  writeChunk(destination, chunk);
-  return !0;
-}
-function completeWriting(destination) {
-  currentView &&
-    0 < writtenBytes &&
-    (destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes)),
-    (currentView = null),
-    (writtenBytes = 0));
-}
-var textEncoder = new TextEncoder();
-function stringToChunk(content) {
-  return textEncoder.encode(content);
-}
-function stringToPrecomputedChunk(content) {
-  return textEncoder.encode(content);
-}
-function byteLengthOfChunk(chunk) {
-  return chunk.byteLength;
-}
-function closeWithError(destination, error) {
-  "function" === typeof destination.error
-    ? destination.error(error)
-    : destination.close();
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null;
-stringToPrecomputedChunk('"></template>');
-var startInlineScript = stringToPrecomputedChunk("<script"),
-  endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-  startScriptSrc = stringToPrecomputedChunk('<script src="'),
-  startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-  scriptNonce = stringToPrecomputedChunk(' nonce="'),
-  scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-  scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-  endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-  startInlineStyle = stringToPrecomputedChunk("<style"),
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-var importMapScriptStart = stringToPrecomputedChunk(
-    '<script type="importmap">'
-  ),
-  importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-function createRenderState(
-  resumableState,
-  nonce,
-  externalRuntimeConfig,
-  importMap,
-  onHeaders,
-  maxHeadersLength
-) {
-  externalRuntimeConfig =
-    "string" === typeof nonce ? nonce : nonce && nonce.script;
-  var inlineScriptWithNonce =
-      void 0 === externalRuntimeConfig
-        ? startInlineScript
-        : stringToPrecomputedChunk(
-            '<script nonce="' +
-              escapeTextForBrowser(externalRuntimeConfig) +
-              '"'
-          ),
-    nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-    inlineStyleWithNonce =
-      void 0 === nonceStyle
-        ? startInlineStyle
-        : stringToPrecomputedChunk(
-            '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-          ),
-    idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push(inlineScriptWithNonce),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      endOfStartTag,
-      stringToChunk(
-        ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer)
-      ),
-      endInlineScript
-    ));
-  bootstrapScriptContent = [];
-  void 0 !== importMap &&
-    (bootstrapScriptContent.push(importMapScriptStart),
-    bootstrapScriptContent.push(
-      stringToChunk(
-        ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer)
-      )
-    ),
-    bootstrapScriptContent.push(importMapScriptEnd));
-  importMap = onHeaders
-    ? {
-        preconnects: "",
-        fontPreloads: "",
-        highImagePreloads: "",
-        remainingCapacity:
-          2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-      }
-    : null;
-  onHeaders = {
-    placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-    segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-    boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-    startInlineScript: inlineScriptWithNonce,
-    startInlineStyle: inlineStyleWithNonce,
-    preamble: createPreambleState(),
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: bootstrapScriptContent,
-    onHeaders: onHeaders,
-    headers: importMap,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: new Set(),
-    fontPreloads: new Set(),
-    highImagePreloads: new Set(),
-    styles: new Map(),
-    bootstrapScripts: new Set(),
-    scripts: new Set(),
-    bulkPreloads: new Set(),
-    preloads: {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    },
-    nonce: { script: externalRuntimeConfig, style: nonceStyle },
-    hoistableState: null,
-    stylesToHoist: !1
-  };
-  if (void 0 !== bootstrapScripts)
-    for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-      (idPrefix = bootstrapScripts[importMap]),
-        (nonceStyle = inlineScriptWithNonce = void 0),
-        (inlineStyleWithNonce = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: nonce
-        }),
-        "string" === typeof idPrefix
-          ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
-          : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
-            (inlineStyleWithNonce.integrity = nonceStyle =
-              "string" === typeof idPrefix.integrity
-                ? idPrefix.integrity
-                : void 0),
-            (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
-              "string" === typeof idPrefix || null == idPrefix.crossOrigin
-                ? void 0
-                : "use-credentials" === idPrefix.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (idPrefix = resumableState),
-        (bootstrapScriptContent = maxHeadersLength),
-        (idPrefix.scriptResources[bootstrapScriptContent] = null),
-        (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
-        (idPrefix = []),
-        pushLinkImpl(idPrefix, inlineStyleWithNonce),
-        onHeaders.bootstrapScripts.add(idPrefix),
-        bootstrapChunks.push(
-          startScriptSrc,
-          stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-            attributeEnd
-          ),
-        "string" === typeof nonceStyle &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            stringToChunk(escapeTextForBrowser(nonceStyle)),
-            attributeEnd
-          ),
-        "string" === typeof inlineScriptWithNonce &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  if (void 0 !== bootstrapModules)
-    for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-      (nonceStyle = bootstrapModules[nonce]),
-        (maxHeadersLength = importMap = void 0),
-        (inlineScriptWithNonce = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: externalRuntimeConfig
-        }),
-        "string" === typeof nonceStyle
-          ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
-          : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
-            (inlineScriptWithNonce.integrity = maxHeadersLength =
-              "string" === typeof nonceStyle.integrity
-                ? nonceStyle.integrity
-                : void 0),
-            (inlineScriptWithNonce.crossOrigin = importMap =
-              "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
-                ? void 0
-                : "use-credentials" === nonceStyle.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (nonceStyle = resumableState),
-        (inlineStyleWithNonce = bootstrapScripts),
-        (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle = []),
-        pushLinkImpl(nonceStyle, inlineScriptWithNonce),
-        onHeaders.bootstrapScripts.add(nonceStyle),
-        bootstrapChunks.push(
-          startModuleSrc,
-          stringToChunk(escapeTextForBrowser(bootstrapScripts)),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-            attributeEnd
-          ),
-        "string" === typeof maxHeadersLength &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-            attributeEnd
-          ),
-        "string" === typeof importMap &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            stringToChunk(escapeTextForBrowser(importMap)),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  return onHeaders;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createPreambleState() {
-  return { htmlChunks: null, headChunks: null, bodyChunks: null };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function createRootFormatContext(namespaceURI) {
-  return createFormatContext(
-    "http://www.w3.org/2000/svg" === namespaceURI
-      ? 4
-      : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-        ? 5
-        : 0,
-    null,
-    0,
-    null
-  );
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e");
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if ("" === text) return textEmbedded;
-  textEmbedded && target.push(textSeparator);
-  target.push(stringToChunk(escapeTextForBrowser(text)));
-  return !0;
-}
-var styleNameCache = new Map(),
-  styleAttributeStart = stringToPrecomputedChunk(' style="'),
-  styleAssign = stringToPrecomputedChunk(":"),
-  styleSeparator = stringToPrecomputedChunk(";");
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style) throw Error(formatProdErrorMessage(62));
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = stringToChunk(escapeTextForBrowser(styleName));
-          styleValue = stringToChunk(
-            escapeTextForBrowser(("" + styleValue).trim())
-          );
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = stringToPrecomputedChunk(
-                escapeTextForBrowser(
-                  styleName
-                    .replace(uppercasePattern, "-$1")
-                    .toLowerCase()
-                    .replace(msPattern, "-ms-")
-                )
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? stringToChunk("" + styleValue)
-                  : stringToChunk(styleValue + "px")
-                : stringToChunk(
-                    escapeTextForBrowser(("" + styleValue).trim())
-                  ));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(
-              styleAttributeStart,
-              nameChunk,
-              styleAssign,
-              styleValue
-            ))
-          : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-      }
-    }
-  isFirst || target.push(attributeEnd);
-}
-var attributeSeparator = stringToPrecomputedChunk(" "),
-  attributeAssign = stringToPrecomputedChunk('="'),
-  attributeEnd = stringToPrecomputedChunk('"'),
-  attributeEmptyString = stringToPrecomputedChunk('=""');
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(
-      attributeSeparator,
-      stringToChunk(name),
-      attributeAssign,
-      stringToChunk(escapeTextForBrowser(value)),
-      attributeEnd
-    );
-}
-var actionJavaScriptURL = stringToPrecomputedChunk(
-    escapeTextForBrowser(
-      "javascript:throw new Error('React form unexpectedly submitted.')"
-    )
-  ),
-  startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"');
-function pushAdditionalFormField(value, key) {
-  this.push(startHiddenInputChunk);
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push(endOfStartTagSelfClosing);
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value) throw Error(formatProdErrorMessage(480));
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(
-          attributeSeparator,
-          stringToChunk("formAction"),
-          attributeAssign,
-          actionJavaScriptURL,
-          attributeEnd
-        ),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        stringToChunk(name),
-        attributeAssign,
-        stringToChunk(escapeTextForBrowser(value)),
-        attributeEnd
-      );
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        stringToChunk("xlink:href"),
-        attributeAssign,
-        stringToChunk(escapeTextForBrowser(value)),
-        attributeEnd
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeEmptyString
-        );
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeEmptyString
-          )
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-        }
-  }
-}
-var endOfStartTag = stringToPrecomputedChunk(">"),
-  endOfStartTagSelfClosing = stringToPrecomputedChunk("/>");
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children) throw Error(formatProdErrorMessage(60));
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(formatProdErrorMessage(61));
-    innerHTML = innerHTML.__html;
-    null !== innerHTML &&
-      void 0 !== innerHTML &&
-      target.push(stringToChunk("" + innerHTML));
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-  formReplayingRuntimeScript = stringToPrecomputedChunk(
-    'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-  );
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        );
-  }
-}
-var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-  formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e");
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(formatProdErrorMessage(399, "link"));
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(formatProdErrorMessage(399, tag));
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(stringToChunk(escapeTextForBrowser("" + props)));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-var headPreambleContributionChunk =
-    stringToPrecomputedChunk("\x3c!--head--\x3e"),
-  bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"),
-  htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e");
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(
-      stringToChunk(("" + children).replace(scriptRegex, scriptReplacer))
-    );
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null)
-    : tag;
-}
-var leadingNewline = stringToPrecomputedChunk("\n"),
-  VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag))
-      throw Error(formatProdErrorMessage(65, tag));
-    tagStartChunk = stringToPrecomputedChunk("<" + tag);
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>");
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children)));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(selectedMarkerAttribute);
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(selectedMarkerAttribute);
-      } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(91));
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(endOfStartTag);
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92));
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error(formatProdErrorMessage(93));
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push(leadingNewline);
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser("" + value$jscomp$0))
-        );
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(399, "input"));
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push(endOfStartTagSelfClosing);
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(endOfStartTag);
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$3))
-        );
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              attributeSeparator,
-              stringToChunk("action"),
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(endOfStartTag);
-      null !== formActionName &&
-        (target$jscomp$0.push(startHiddenInputChunk),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push(endOfStartTagSelfClosing),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$4))
-        );
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(400));
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  attributeSeparator,
-                  stringToChunk("data"),
-                  attributeAssign,
-                  stringToChunk(escapeTextForBrowser(sanitizedValue)),
-                  attributeEnd
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$5))
-        );
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push(textSeparator);
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push(textSeparator),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(
-            stringToChunk(("" + child).replace(styleRegex, styleReplacer))
-          );
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: stringToChunk(
-                escapeTextForBrowser(precedence$jscomp$0)
-              ),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(
-              stringToChunk(escapeTextForBrowser(href$jscomp$0))
-            );
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                stringToChunk(
-                  ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-                )
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push(textSeparator),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8) throw Error(formatProdErrorMessage(60));
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(formatProdErrorMessage(61));
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push(leadingNewline, stringToChunk(html))
-            : target$jscomp$0.push(stringToChunk("" + html)));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push(leadingNewline);
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error(formatProdErrorMessage(545, "`<head>`"));
-        null !== preambleState &&
-          target$jscomp$0.push(headPreambleContributionChunk);
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error(formatProdErrorMessage(545, "`<body>`"));
-        null !== preambleState &&
-          target$jscomp$0.push(bodyPreambleContributionChunk);
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error(formatProdErrorMessage(545, "`<html>`"));
-        null !== preambleState &&
-          target$jscomp$0.push(htmlPreambleContributionChunk);
-        preamble$jscomp$1.htmlChunks = [doctypeChunk];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      stringToChunk(attributeName),
-                      attributeAssign,
-                      stringToChunk(escapeTextForBrowser(propValue$jscomp$11)),
-                      attributeEnd
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk &&
-    ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-    endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    writeChunk(destination, renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]),
-      (renderState.length = 0),
-      writeChunkAndReturn(destination, i))
-    : !0;
-}
-var shellTimeRuntimeScript = stringToPrecomputedChunk(
-    "requestAnimationFrame(function(){$RT=performance.now()});"
-  ),
-  placeholder1 = stringToPrecomputedChunk('<template id="'),
-  placeholder2 = stringToPrecomputedChunk('"></template>'),
-  startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-  endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-  startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"),
-  startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-    '\x3c!--$?--\x3e<template id="'
-  ),
-  startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-  startClientRenderedSuspenseBoundary =
-    stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-  endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-  clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"),
-  clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-    stringToPrecomputedChunk('"'),
-  clientRenderedSuspenseBoundaryError1A =
-    stringToPrecomputedChunk(' data-dgst="');
-stringToPrecomputedChunk(' data-msg="');
-stringToPrecomputedChunk(' data-stck="');
-stringToPrecomputedChunk(' data-cstck="');
-var clientRenderedSuspenseBoundaryError2 =
-  stringToPrecomputedChunk("></template>");
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  writeChunk(destination, startPendingSuspenseBoundary1);
-  if (null === id) throw Error(formatProdErrorMessage(395));
-  writeChunk(destination, renderState.boundaryPrefix);
-  writeChunk(destination, stringToChunk(id.toString(16)));
-  return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-}
-var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-  startSegmentHTML2 = stringToPrecomputedChunk('">'),
-  endSegmentHTML = stringToPrecomputedChunk("</div>"),
-  startSegmentSVG = stringToPrecomputedChunk(
-    '<svg aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentSVG2 = stringToPrecomputedChunk('">'),
-  endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-  startSegmentMathML = stringToPrecomputedChunk(
-    '<math aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentMathML2 = stringToPrecomputedChunk('">'),
-  endSegmentMathML = stringToPrecomputedChunk("</math>"),
-  startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-  startSegmentTable2 = stringToPrecomputedChunk('">'),
-  endSegmentTable = stringToPrecomputedChunk("</table>"),
-  startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'),
-  startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-  endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-  startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-  startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-  endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-  startSegmentColGroup = stringToPrecomputedChunk(
-    '<table hidden><colgroup id="'
-  ),
-  startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-  endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>");
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        writeChunk(destination, startSegmentHTML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentHTML2)
-      );
-    case 4:
-      return (
-        writeChunk(destination, startSegmentSVG),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentSVG2)
-      );
-    case 5:
-      return (
-        writeChunk(destination, startSegmentMathML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentMathML2)
-      );
-    case 6:
-      return (
-        writeChunk(destination, startSegmentTable),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTable2)
-      );
-    case 7:
-      return (
-        writeChunk(destination, startSegmentTableBody),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTableBody2)
-      );
-    case 8:
-      return (
-        writeChunk(destination, startSegmentTableRow),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTableRow2)
-      );
-    case 9:
-      return (
-        writeChunk(destination, startSegmentColGroup),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentColGroup2)
-      );
-    default:
-      throw Error(formatProdErrorMessage(397));
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return writeChunkAndReturn(destination, endSegmentHTML);
-    case 4:
-      return writeChunkAndReturn(destination, endSegmentSVG);
-    case 5:
-      return writeChunkAndReturn(destination, endSegmentMathML);
-    case 6:
-      return writeChunkAndReturn(destination, endSegmentTable);
-    case 7:
-      return writeChunkAndReturn(destination, endSegmentTableBody);
-    case 8:
-      return writeChunkAndReturn(destination, endSegmentTableRow);
-    case 9:
-      return writeChunkAndReturn(destination, endSegmentColGroup);
-    default:
-      throw Error(formatProdErrorMessage(397));
-  }
-}
-var completeSegmentScript1Full = stringToPrecomputedChunk(
-    '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-  ),
-  completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-  completeSegmentScript2 = stringToPrecomputedChunk('","'),
-  completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-stringToPrecomputedChunk('" data-pid="');
-var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-  '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-);
-stringToChunk(
-  '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);'
-);
-var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-    '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-  ),
-  completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'),
-  completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-  completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-  completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-  completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rci="" data-bid="');
-stringToPrecomputedChunk('<template data-rri="" data-bid="');
-stringToPrecomputedChunk('" data-sid="');
-stringToPrecomputedChunk('" data-sty="');
-var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-  ),
-  clientRenderScript1Full = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-  ),
-  clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-  clientRenderScript1A = stringToPrecomputedChunk('"'),
-  clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-  clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-stringToPrecomputedChunk('" data-dgst="');
-stringToPrecomputedChunk('" data-msg="');
-stringToPrecomputedChunk('" data-stck="');
-stringToPrecomputedChunk('" data-cstck="');
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-    ' media="not all" data-precedence="'
-  ),
-  lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-  currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, lateStyleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-      writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-    writeChunk(this, hrefs[i]);
-    writeChunk(this, lateStyleTagResourceOpen3);
-    for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-    destinationHasCapacity = writeChunkAndReturn(
-      this,
-      lateStyleTagTemplateClose
-    );
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    writeChunk(this, stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-  styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  spaceSeparator = stringToPrecomputedChunk(" "),
-  styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  styleTagResourceClose = stringToPrecomputedChunk("</style>");
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, styleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        writeChunk(this, styleTagResourceOpen2);
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator);
-      writeChunk(this, hrefs[styleQueue]);
-    }
-    writeChunk(this, styleTagResourceOpen3);
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      writeChunk(this, rules[styleQueue]);
-    writeChunk(this, styleTagResourceClose);
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-stringToPrecomputedChunk('<link rel="expect" href="#');
-stringToPrecomputedChunk('" blocking="render"/>');
-var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="');
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      completedShellIdAttributeStart,
-      stringToChunk(escapeTextForBrowser("_" + resumableState.idPrefix + "R_")),
-      attributeEnd
-    ));
-}
-var arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-  arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-  arrayInterstitial = stringToPrecomputedChunk(","),
-  arrayCloseBracket = stringToPrecomputedChunk("]");
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  writeChunk(destination, arrayFirstOpenBracket);
-  var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        writeChunk(destination, nextArrayOpenBrackChunk),
-          writeChunk(
-            destination,
-            stringToChunk(
-              escapeJSObjectForInstructionScripts("" + resource.props.href)
-            )
-          ),
-          writeChunk(destination, arrayCloseBracket),
-          (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-      else {
-        writeChunk(destination, nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        writeChunk(
-          destination,
-          stringToChunk(escapeJSObjectForInstructionScripts(coercedHref))
-        );
-        precedence = "" + precedence;
-        writeChunk(destination, arrayInterstitial);
-        writeChunk(
-          destination,
-          stringToChunk(escapeJSObjectForInstructionScripts(precedence))
-        );
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(formatProdErrorMessage(399, "link"));
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        writeChunk(destination, arrayCloseBracket);
-        nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-        resource.state = 3;
-      }
-  });
-  writeChunk(destination, arrayCloseBracket);
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(
-    destination,
-    stringToChunk(escapeJSObjectForInstructionScripts(attributeName))
-  );
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(
-    destination,
-    stringToChunk(escapeJSObjectForInstructionScripts(name))
-  );
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: stringToChunk(escapeTextForBrowser(precedence)),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function hasSuspenseyContent(hoistableState) {
-  return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
-}
-var bind = Function.prototype.bind,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext) throw Error(formatProdErrorMessage(401));
-    } else {
-      if (null === parentNext) throw Error(formatProdErrorMessage(401));
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev) throw Error(formatProdErrorMessage(402));
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext) throw Error(formatProdErrorMessage(402));
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(formatProdErrorMessage(460));
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(formatProdErrorMessage(321));
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders) throw Error(formatProdErrorMessage(312));
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(formatProdErrorMessage(440));
-}
-function unsupportedStartTransition() {
-  throw Error(formatProdErrorMessage(394));
-}
-function unsupportedSetOptimisticState() {
-  throw Error(formatProdErrorMessage(479));
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              murmurhash3_32_gc(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex]),
-                0
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error(formatProdErrorMessage(393));
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue;
-      }
-      throw Error(formatProdErrorMessage(438, String(usable)));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState) throw Error(formatProdErrorMessage(404));
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(formatProdErrorMessage(407));
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error(formatProdErrorMessage(248));
-    },
-    cacheSignal: function () {
-      throw Error(formatProdErrorMessage(248));
-    }
-  },
-  prefix,
-  suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = void 0),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (
-    (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
-    null === boundary.contentPreamble
-  );
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "%c%s%c " + error[0],
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        )
-      : error.splice(
-          0,
-          0,
-          "%c%s%c",
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        );
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-function createPrerenderRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = createRequest(
-    children,
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    void 0
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-function resumeRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  renderState = new RequestInstance(
-    postponedState.resumableState,
-    renderState,
-    postponedState.rootFormatContext,
-    postponedState.progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    null
-  );
-  renderState.nextSegmentId = postponedState.nextSegmentId;
-  if ("number" === typeof postponedState.replaySlots)
-    return (
-      (onError = createPendingSegment(
-        renderState,
-        0,
-        null,
-        postponedState.rootFormatContext,
-        !1,
-        !1
-      )),
-      (onError.parentFlushed = !0),
-      (children = createRenderTask(
-        renderState,
-        null,
-        children,
-        -1,
-        null,
-        onError,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null
-      )),
-      pushComponentStack(children),
-      renderState.pingedTasks.push(children),
-      renderState
-    );
-  children = createReplayTask(
-    renderState,
-    null,
-    {
-      nodes: postponedState.replayNodes,
-      slots: postponedState.replaySlots,
-      pendingTasks: 0
-    },
-    children,
-    -1,
-    null,
-    null,
-    renderState.abortableTasks,
-    null,
-    postponedState.rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  renderState.pingedTasks.push(children);
-  return renderState;
-}
-function resumeAndPrerenderRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = resumeRequest(
-    children,
-    postponedState,
-    renderState,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-var currentRequest = null;
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    null !== request.trackedPostpones || 10 === request.status
-      ? scheduleMicrotask(function () {
-          return performWork(request);
-        })
-      : scheduleWork(function () {
-          return performWork(request);
-        }));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), closeWithError(request.destination, error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          resumeSegmentID.lastPushedText &&
-            resumeSegmentID.textEmbedded &&
-            resumeSegmentID.chunks.push(textSeparator),
-          (resumeSegmentID.status = 1),
-          finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push(formStateMarkerIsMatching)
-          : segment.push(formStateMarkerIsNotMatching);
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$44 in defaultProps)
-          void 0 === newProps[propName$44] &&
-            (newProps[propName$44] = defaultProps[propName$44]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$44 = type[ref]),
-                (propName$44 =
-                  "function" === typeof propName$44
-                    ? propName$44.call(newProps, defaultProps, props, void 0)
-                    : propName$44),
-                null != propName$44 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$44)))
-                    : assign(defaultProps, propName$44));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            keyPath.lastPushedText &&
-              keyPath.textEmbedded &&
-              keyPath.chunks.push(textSeparator),
-            (keyPath.status = 1),
-            finishedSegment(request, task.blockedBoundary, keyPath);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (type.chunks.push(startActivityBoundary),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            type.chunks.push(endActivityBoundary),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error(formatProdErrorMessage(343));
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row;
-          propName$44 = task.blockedBoundary;
-          propName = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState,
-            parentSegment = task.blockedSegment,
-            fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary =
-            2 > task.formatContext.insertionMode
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            parentSegment.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          parentSegment.children.push(boundarySegment);
-          parentSegment.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                boundarySegment.lastPushedText &&
-                  boundarySegment.textEmbedded &&
-                  boundarySegment.chunks.push(textSeparator),
-                (boundarySegment.status = 1),
-                finishedSegment(request, propName$44, boundarySegment);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = parentSegment),
-                (task.blockedPreamble = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                contentRootSegment.lastPushedText &&
-                  contentRootSegment.textEmbedded &&
-                  contentRootSegment.chunks.push(textSeparator),
-                (contentRootSegment.status = 1),
-                finishedSegment(request, newBoundary, contentRootSegment),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$31) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$31)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = propName$44),
-                (task.blockedPreamble = propName),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = parentSegment),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              propName$44,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (parentSegment in ((newProps = {}), props))
-              "ref" !== parentSegment &&
-                (newProps[parentSegment] = props[parentSegment]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue;
-          type._currentValue = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request) throw Error(formatProdErrorMessage(403));
-          request.context._currentValue = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      formatProdErrorMessage(130, null == type ? type : typeof type, "")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      finishedSegment(request, blockedBoundary, resumedSegment),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        formatProdErrorMessage(490, node$jscomp$0[0], name)
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(formatProdErrorMessage(488));
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        formatProdErrorMessage(
-                          490,
-                          "Suspense",
-                          getComponentNameFromType(type) || "Unknown"
-                        )
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props =
-                        2 > task.formatContext.insertionMode
-                          ? createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              createPreambleState(),
-                              createPreambleState()
-                            )
-                          : createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              null,
-                              null
-                            );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(formatProdErrorMessage(488));
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(formatProdErrorMessage(257));
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        formatProdErrorMessage(
-          31,
-          "[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex
-        )
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(formatProdErrorMessage(488));
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request) throw Error(formatProdErrorMessage(486));
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(formatProdErrorMessage(491));
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(formatProdErrorMessage(491));
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$63) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$63 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$63),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary) throw Error(formatProdErrorMessage(487));
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$64 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$64 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$64, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedSegment(request, boundary, segment) {
-  if (null !== byteLengthOfChunk) {
-    segment = segment.chunks;
-    for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-      segmentByteSize += segment[i].byteLength;
-    null === boundary
-      ? (request.byteSize += segmentByteSize)
-      : (boundary.byteSize += segmentByteSize);
-  }
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(formatProdErrorMessage(389));
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(formatProdErrorMessage(488));
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              request$jscomp$1.lastPushedText &&
-                request$jscomp$1.textEmbedded &&
-                request$jscomp$1.chunks.push(textSeparator),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedSegment(request, task.blockedBoundary, request$jscomp$1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment) throw Error(formatProdErrorMessage(391));
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        writeChunk(destination, placeholder1),
-        writeChunk(destination, request.placeholderPrefix),
-        (request = stringToChunk(hoistableState.toString(16))),
-        writeChunk(destination, request),
-        writeChunkAndReturn(destination, placeholder2)
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          writeChunk(destination, chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        writeChunk(destination, chunks[chunkIdx]);
-      chunkIdx < chunks.length &&
-        (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(formatProdErrorMessage(390));
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    boundary = boundary.errorDigest;
-    writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-    writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-    boundary &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-      writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-    flushSubtree(request, destination, segment, hoistableState);
-  } else if (1 !== boundary.status)
-    0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState);
-  else if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-      hasSuspenseyContent(boundary.contentState))
-  )
-    (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState);
-  else {
-    flushedByteSize += boundary.byteSize;
-    hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-    segment = boundary.row;
-    null !== segment &&
-      isEligibleForOutlining(request, boundary) &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-    segment = boundary.completedSegments;
-    if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
-    flushSegment(request, destination, segment[0], hoistableState);
-  }
-  return writeChunkAndReturn(destination, endSuspenseBoundary);
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        writeChunk(destination, clientRenderScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
-        : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      writeChunk(destination, completeBoundaryScript1Partial));
-  completedSegments = stringToChunk(i.toString(16));
-  writeChunk(destination, request.boundaryPrefix);
-  writeChunk(destination, completedSegments);
-  writeChunk(destination, completeBoundaryScript2);
-  writeChunk(destination, request.segmentPrefix);
-  writeChunk(destination, completedSegments);
-  requiresStyleInsertion
-    ? (writeChunk(destination, completeBoundaryScript3a),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : writeChunk(destination, completeBoundaryScript3b);
-  boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(formatProdErrorMessage(392));
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      writeChunk(destination, completeSegmentScript1Full))
-    : writeChunk(destination, completeSegmentScript1Partial);
-  writeChunk(destination, request.segmentPrefix);
-  segmentID = stringToChunk(segmentID.toString(16));
-  writeChunk(destination, segmentID);
-  writeChunk(destination, completeSegmentScript2);
-  writeChunk(destination, request.placeholderPrefix);
-  writeChunk(destination, segmentID);
-  destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  currentView = new Uint8Array(2048);
-  writtenBytes = 0;
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            writeChunk(destination, htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              writeChunk(destination, headChunks[i$jscomp$0]);
-          else
-            writeChunk(destination, startChunkForTag("head")),
-              writeChunk(destination, endOfStartTag);
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            writeChunk(destination, headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          writeChunk(destination, charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          writeChunk(destination, viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          writeChunk(destination, importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        htmlChunks || headChunks || (resumableState.instructions |= 32);
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          writeChunk(destination, hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-          writeChunk(destination, endChunkForTag("head"));
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            writeChunk(destination, bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            writeChunk(destination, renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              writeChunk(destination, completedShellIdAttributeStart);
-              writeChunk(
-                destination,
-                stringToChunk(escapeTextForBrowser(shellId))
-              );
-              writeChunk(destination, attributeEnd);
-            }
-            writeChunk(destination, endOfStartTag);
-            writeChunk(destination, shellTimeRuntimeScript);
-            writeChunkAndReturn(destination, endInlineScript);
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        writeChunk(
-          renderState$jscomp$1,
-          renderState$jscomp$2.startInlineScript
-        );
-        writeChunk(renderState$jscomp$1, endOfStartTag);
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-          : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-        writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
-        writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16)));
-        writeChunk(renderState$jscomp$1, clientRenderScript1A);
-        errorDigest &&
-          (writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-          writeChunk(
-            renderState$jscomp$1,
-            stringToChunk(
-              escapeJSStringsForInstructionScripts(errorDigest || "")
-            )
-          ));
-        var JSCompiler_inline_result = writeChunkAndReturn(
-          renderState$jscomp$1,
-          clientRenderScriptEnd
-        );
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      completeWriting(destination);
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$70 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$70.byteSize;
-          var completedSegments = boundary$70.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$70,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$70.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$70.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$70.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-      0 === request.clientRenderedBoundaries.length &&
-      0 === request.completedBoundaries.length
-        ? ((request.flushScheduled = !1),
-          (i = request.resumableState),
-          i.hasBody && writeChunk(destination, endChunkForTag("body")),
-          i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-          completeWriting(destination),
-          (request.status = 14),
-          destination.close(),
-          (request.destination = null))
-        : completeWriting(destination);
-  }
-}
-function startWork(request) {
-  request.flushScheduled = null !== request.destination;
-  scheduleMicrotask(function () {
-    return performWork(request);
-  });
-  scheduleWork(function () {
-    10 === request.status && (request.status = 11);
-    null === request.trackedPostpones &&
-      safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-  });
-}
-function enqueueFlush(request) {
-  !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination &&
-    ((request.flushScheduled = !0),
-    scheduleWork(function () {
-      var destination = request.destination;
-      destination
-        ? flushCompletedQueues(request, destination)
-        : (request.flushScheduled = !1);
-    }));
-}
-function startFlowing(request, destination) {
-  if (13 === request.status)
-    (request.status = 14), closeWithError(destination, request.fatalError);
-  else if (14 !== request.status && null === request.destination) {
-    request.destination = destination;
-    try {
-      flushCompletedQueues(request, destination);
-    } catch (error) {
-      logRecoverableError(request, error, {}), fatalError(request, error);
-    }
-  }
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error(formatProdErrorMessage(432))
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error(formatProdErrorMessage(530))
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$72) {
-    logRecoverableError(request, error$72, {}), fatalError(request, error$72);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-function getPostponedState(request) {
-  var trackedPostpones = request.trackedPostpones;
-  if (
-    null === trackedPostpones ||
-    (0 === trackedPostpones.rootNodes.length &&
-      null === trackedPostpones.rootSlots)
-  )
-    return (request.trackedPostpones = null);
-  if (
-    null === request.completedRootSegment ||
-    (5 !== request.completedRootSegment.status &&
-      null !== request.completedPreambleSegments)
-  ) {
-    var nextSegmentId = request.nextSegmentId;
-    var replaySlots = trackedPostpones.rootSlots;
-    var resumableState = request.resumableState;
-    resumableState.bootstrapScriptContent = void 0;
-    resumableState.bootstrapScripts = void 0;
-    resumableState.bootstrapModules = void 0;
-  } else {
-    nextSegmentId = 0;
-    replaySlots = -1;
-    resumableState = request.resumableState;
-    var renderState = request.renderState;
-    resumableState.nextFormID = 0;
-    resumableState.hasBody = !1;
-    resumableState.hasHtml = !1;
-    resumableState.unknownResources = { font: renderState.resets.font };
-    resumableState.dnsResources = renderState.resets.dns;
-    resumableState.connectResources = renderState.resets.connect;
-    resumableState.imageResources = renderState.resets.image;
-    resumableState.styleResources = renderState.resets.style;
-    resumableState.scriptResources = {};
-    resumableState.moduleUnknownResources = {};
-    resumableState.moduleScriptResources = {};
-    resumableState.instructions = 0;
-  }
-  return {
-    nextSegmentId: nextSegmentId,
-    rootFormatContext: request.rootFormatContext,
-    progressiveChunkSize: request.progressiveChunkSize,
-    resumableState: request.resumableState,
-    replayNodes: trackedPostpones.rootNodes,
-    replaySlots: replaySlots
-  };
-}
-function ensureCorrectIsomorphicReactVersion() {
-  var isomorphicReactPackageVersion = React.version;
-  if ("19.2.3" !== isomorphicReactPackageVersion)
-    throw Error(
-      formatProdErrorMessage(
-        527,
-        isomorphicReactPackageVersion,
-        "19.2.3"
-      )
-    );
-}
-ensureCorrectIsomorphicReactVersion();
-ensureCorrectIsomorphicReactVersion();
-exports.prerender = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resources = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createPrerenderRequest(
-        children,
-        resources,
-        createRenderState(
-          resources,
-          void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream = { postponed: getPostponedState(request), prelude: stream };
-          resolve(stream);
-        },
-        void 0,
-        void 0,
-        reject,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.renderToReadableStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resume = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      request = resumeRequest(
-        children,
-        postponedState,
-        createRenderState(
-          postponedState.resumableState,
-          options ? options.nonce : void 0,
-          void 0,
-          void 0,
-          void 0,
-          void 0
-        ),
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resumeAndPrerender = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var request = resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      createRenderState(
-        postponedState.resumableState,
-        void 0,
-        void 0,
-        void 0,
-        void 0,
-        void 0
-      ),
-      options ? options.onError : void 0,
-      function () {
-        var stream = new ReadableStream(
-          {
-            type: "bytes",
-            pull: function (controller) {
-              startFlowing(request, controller);
-            },
-            cancel: function (reason) {
-              request.destination = null;
-              abort(request, reason);
-            }
-          },
-          { highWaterMark: 0 }
-        );
-        stream = { postponed: getPostponedState(request), prelude: stream };
-        resolve(stream);
-      },
-      void 0,
-      void 0,
-      reject,
-      options ? options.onPostpone : void 0
-    );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server.bun.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.bun.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9605 +1,0 @@
-/**
-* @license React
- * react-dom-server.bun.development.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.
- */
-
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray,
-  jsxPropsParents = new WeakMap(),
-  jsxChildrenParents = new WeakMap();
-function objectName(object) {
-  object = Object.prototype.toString.call(object);
-  return object.slice(8, object.length - 1);
-}
-function describeKeyForErrorMessage(key) {
-  var encodedKey = JSON.stringify(key);
-  return '"' + key + '"' === encodedKey ? key : encodedKey;
-}
-function describeValueForErrorMessage(value) {
-  switch (typeof value) {
-    case "string":
-      return JSON.stringify(
-        10 >= value.length ? value : value.slice(0, 10) + "..."
-      );
-    case "object":
-      if (isArrayImpl(value)) return "[...]";
-      if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-        return "client";
-      value = objectName(value);
-      return "Object" === value ? "{...}" : value;
-    case "function":
-      return value.$$typeof === CLIENT_REFERENCE_TAG
-        ? "client"
-        : (value = value.displayName || value.name)
-          ? "function " + value
-          : "function";
-    default:
-      return String(value);
-  }
-}
-function describeElementType(type) {
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeElementType(type.render);
-      case REACT_MEMO_TYPE:
-        return describeElementType(type.type);
-      case REACT_LAZY_TYPE:
-        var payload = type._payload;
-        type = type._init;
-        try {
-          return describeElementType(type(payload));
-        } catch (x) {}
-    }
-  return "";
-}
-var CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference");
-function describeObjectForErrorMessage(objectOrArray, expandedName) {
-  var objKind = objectName(objectOrArray);
-  if ("Object" !== objKind && "Array" !== objKind) return objKind;
-  var start = -1,
-    length = 0;
-  if (isArrayImpl(objectOrArray))
-    if (jsxChildrenParents.has(objectOrArray)) {
-      var type = jsxChildrenParents.get(objectOrArray);
-      objKind = "<" + describeElementType(type) + ">";
-      for (var i = 0; i < objectOrArray.length; i++) {
-        var value = objectOrArray[i];
-        value =
-          "string" === typeof value
-            ? value
-            : "object" === typeof value && null !== value
-              ? "{" + describeObjectForErrorMessage(value) + "}"
-              : "{" + describeValueForErrorMessage(value) + "}";
-        "" + i === expandedName
-          ? ((start = objKind.length),
-            (length = value.length),
-            (objKind += value))
-          : (objKind =
-              15 > value.length && 40 > objKind.length + value.length
-                ? objKind + value
-                : objKind + "{...}");
-      }
-      objKind += "</" + describeElementType(type) + ">";
-    } else {
-      objKind = "[";
-      for (type = 0; type < objectOrArray.length; type++)
-        0 < type && (objKind += ", "),
-          (i = objectOrArray[type]),
-          (i =
-            "object" === typeof i && null !== i
-              ? describeObjectForErrorMessage(i)
-              : describeValueForErrorMessage(i)),
-          "" + type === expandedName
-            ? ((start = objKind.length), (length = i.length), (objKind += i))
-            : (objKind =
-                10 > i.length && 40 > objKind.length + i.length
-                  ? objKind + i
-                  : objKind + "...");
-      objKind += "]";
-    }
-  else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-    objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-  else {
-    if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-    if (jsxPropsParents.has(objectOrArray)) {
-      objKind = jsxPropsParents.get(objectOrArray);
-      objKind = "<" + (describeElementType(objKind) || "...");
-      type = Object.keys(objectOrArray);
-      for (i = 0; i < type.length; i++) {
-        objKind += " ";
-        value = type[i];
-        objKind += describeKeyForErrorMessage(value) + "=";
-        var _value2 = objectOrArray[value];
-        var _substr2 =
-          value === expandedName &&
-          "object" === typeof _value2 &&
-          null !== _value2
-            ? describeObjectForErrorMessage(_value2)
-            : describeValueForErrorMessage(_value2);
-        "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-        value === expandedName
-          ? ((start = objKind.length),
-            (length = _substr2.length),
-            (objKind += _substr2))
-          : (objKind =
-              10 > _substr2.length && 40 > objKind.length + _substr2.length
-                ? objKind + _substr2
-                : objKind + "...");
-      }
-      objKind += ">";
-    } else {
-      objKind = "{";
-      type = Object.keys(objectOrArray);
-      for (i = 0; i < type.length; i++)
-        0 < i && (objKind += ", "),
-          (value = type[i]),
-          (objKind += describeKeyForErrorMessage(value) + ": "),
-          (_value2 = objectOrArray[value]),
-          (_value2 =
-            "object" === typeof _value2 && null !== _value2
-              ? describeObjectForErrorMessage(_value2)
-              : describeValueForErrorMessage(_value2)),
-          value === expandedName
-            ? ((start = objKind.length),
-              (length = _value2.length),
-              (objKind += _value2))
-            : (objKind =
-                10 > _value2.length && 40 > objKind.length + _value2.length
-                  ? objKind + _value2
-                  : objKind + "...");
-      objKind += "}";
-    }
-  }
-  return void 0 === expandedName
-    ? objKind
-    : -1 < start && 0 < length
-      ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-        "\n  " + objKind + "\n  " + objectOrArray)
-      : "\n  " + objKind;
-}
-var scheduleMicrotask = queueMicrotask;
-function flushBuffered(destination) {
-  "function" === typeof destination.flush && destination.flush();
-}
-function writeChunk(destination, chunk) {
-  0 !== chunk.length && destination.write(chunk);
-}
-function byteLengthOfChunk(chunk) {
-  return Buffer.byteLength(chunk, "utf8");
-}
-function closeWithError(destination, error) {
-  "function" === typeof destination.error
-    ? destination.error(error)
-    : destination.close();
-}
-var assign = Object.assign;
-function typeName(value) {
-  return (
-    ("function" === typeof Symbol &&
-      Symbol.toStringTag &&
-      value[Symbol.toStringTag]) ||
-    value.constructor.name ||
-    "Object"
-  );
-}
-function willCoercionThrow(value) {
-  try {
-    return testStringCoercion(value), !1;
-  } catch (e) {
-    return !0;
-  }
-}
-function testStringCoercion(value) {
-  return "" + value;
-}
-function checkAttributeStringCoercion(value, attributeName) {
-  if (willCoercionThrow(value))
-    return (
-      console.error(
-        "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-        attributeName,
-        typeName(value)
-      ),
-      testStringCoercion(value)
-    );
-}
-function checkCSSPropertyStringCoercion(value, propName) {
-  if (willCoercionThrow(value))
-    return (
-      console.error(
-        "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-        propName,
-        typeName(value)
-      ),
-      testStringCoercion(value)
-    );
-}
-function checkHtmlStringCoercion(value) {
-  if (willCoercionThrow(value))
-    return (
-      console.error(
-        "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-        typeName(value)
-      ),
-      testStringCoercion(value)
-    );
-}
-var hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  console.error("Invalid attribute name: `%s`", attributeName);
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  hasReadOnlyValue = {
-    button: !0,
-    checkbox: !0,
-    image: !0,
-    hidden: !0,
-    radio: !0,
-    reset: !0,
-    submit: !0
-  };
-function checkControlledValueProps(tagName, props) {
-  hasReadOnlyValue[props.type] ||
-    props.onChange ||
-    props.onInput ||
-    props.readOnly ||
-    props.disabled ||
-    null == props.value ||
-    ("select" === tagName
-      ? console.error(
-          "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-        )
-      : console.error(
-          "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-        ));
-  props.onChange ||
-    props.readOnly ||
-    props.disabled ||
-    null == props.checked ||
-    console.error(
-      "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-    );
-}
-var ariaProperties = {
-    "aria-current": 0,
-    "aria-description": 0,
-    "aria-details": 0,
-    "aria-disabled": 0,
-    "aria-hidden": 0,
-    "aria-invalid": 0,
-    "aria-keyshortcuts": 0,
-    "aria-label": 0,
-    "aria-roledescription": 0,
-    "aria-autocomplete": 0,
-    "aria-checked": 0,
-    "aria-expanded": 0,
-    "aria-haspopup": 0,
-    "aria-level": 0,
-    "aria-modal": 0,
-    "aria-multiline": 0,
-    "aria-multiselectable": 0,
-    "aria-orientation": 0,
-    "aria-placeholder": 0,
-    "aria-pressed": 0,
-    "aria-readonly": 0,
-    "aria-required": 0,
-    "aria-selected": 0,
-    "aria-sort": 0,
-    "aria-valuemax": 0,
-    "aria-valuemin": 0,
-    "aria-valuenow": 0,
-    "aria-valuetext": 0,
-    "aria-atomic": 0,
-    "aria-busy": 0,
-    "aria-live": 0,
-    "aria-relevant": 0,
-    "aria-dropeffect": 0,
-    "aria-grabbed": 0,
-    "aria-activedescendant": 0,
-    "aria-colcount": 0,
-    "aria-colindex": 0,
-    "aria-colspan": 0,
-    "aria-controls": 0,
-    "aria-describedby": 0,
-    "aria-errormessage": 0,
-    "aria-flowto": 0,
-    "aria-labelledby": 0,
-    "aria-owns": 0,
-    "aria-posinset": 0,
-    "aria-rowcount": 0,
-    "aria-rowindex": 0,
-    "aria-rowspan": 0,
-    "aria-setsize": 0,
-    "aria-braillelabel": 0,
-    "aria-brailleroledescription": 0,
-    "aria-colindextext": 0,
-    "aria-rowindextext": 0
-  },
-  warnedProperties$1 = {},
-  rARIA$1 = RegExp(
-    "^(aria)-[: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]*$"
-  ),
-  rARIACamel$1 = RegExp(
-    "^(aria)[A-Z][: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]*$"
-  );
-function validateProperty$1(tagName, name) {
-  if (hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name])
-    return !0;
-  if (rARIACamel$1.test(name)) {
-    tagName = "aria-" + name.slice(4).toLowerCase();
-    tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-    if (null == tagName)
-      return (
-        console.error(
-          "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-          name
-        ),
-        (warnedProperties$1[name] = !0)
-      );
-    if (name !== tagName)
-      return (
-        console.error(
-          "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-          name,
-          tagName
-        ),
-        (warnedProperties$1[name] = !0)
-      );
-  }
-  if (rARIA$1.test(name)) {
-    tagName = name.toLowerCase();
-    tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-    if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-    name !== tagName &&
-      (console.error(
-        "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-        name,
-        tagName
-      ),
-      (warnedProperties$1[name] = !0));
-  }
-  return !0;
-}
-function validateProperties$2(type, props) {
-  var invalidProps = [],
-    key;
-  for (key in props) validateProperty$1(type, key) || invalidProps.push(key);
-  props = invalidProps
-    .map(function (prop) {
-      return "`" + prop + "`";
-    })
-    .join(", ");
-  1 === invalidProps.length
-    ? console.error(
-        "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-        props,
-        type
-      )
-    : 1 < invalidProps.length &&
-      console.error(
-        "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-        props,
-        type
-      );
-}
-var didWarnValueNull = !1,
-  possibleStandardNames = {
-    accept: "accept",
-    acceptcharset: "acceptCharset",
-    "accept-charset": "acceptCharset",
-    accesskey: "accessKey",
-    action: "action",
-    allowfullscreen: "allowFullScreen",
-    alt: "alt",
-    as: "as",
-    async: "async",
-    autocapitalize: "autoCapitalize",
-    autocomplete: "autoComplete",
-    autocorrect: "autoCorrect",
-    autofocus: "autoFocus",
-    autoplay: "autoPlay",
-    autosave: "autoSave",
-    capture: "capture",
-    cellpadding: "cellPadding",
-    cellspacing: "cellSpacing",
-    challenge: "challenge",
-    charset: "charSet",
-    checked: "checked",
-    children: "children",
-    cite: "cite",
-    class: "className",
-    classid: "classID",
-    classname: "className",
-    cols: "cols",
-    colspan: "colSpan",
-    content: "content",
-    contenteditable: "contentEditable",
-    contextmenu: "contextMenu",
-    controls: "controls",
-    controlslist: "controlsList",
-    coords: "coords",
-    crossorigin: "crossOrigin",
-    dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-    data: "data",
-    datetime: "dateTime",
-    default: "default",
-    defaultchecked: "defaultChecked",
-    defaultvalue: "defaultValue",
-    defer: "defer",
-    dir: "dir",
-    disabled: "disabled",
-    disablepictureinpicture: "disablePictureInPicture",
-    disableremoteplayback: "disableRemotePlayback",
-    download: "download",
-    draggable: "draggable",
-    enctype: "encType",
-    enterkeyhint: "enterKeyHint",
-    fetchpriority: "fetchPriority",
-    for: "htmlFor",
-    form: "form",
-    formmethod: "formMethod",
-    formaction: "formAction",
-    formenctype: "formEncType",
-    formnovalidate: "formNoValidate",
-    formtarget: "formTarget",
-    frameborder: "frameBorder",
-    headers: "headers",
-    height: "height",
-    hidden: "hidden",
-    high: "high",
-    href: "href",
-    hreflang: "hrefLang",
-    htmlfor: "htmlFor",
-    httpequiv: "httpEquiv",
-    "http-equiv": "httpEquiv",
-    icon: "icon",
-    id: "id",
-    imagesizes: "imageSizes",
-    imagesrcset: "imageSrcSet",
-    inert: "inert",
-    innerhtml: "innerHTML",
-    inputmode: "inputMode",
-    integrity: "integrity",
-    is: "is",
-    itemid: "itemID",
-    itemprop: "itemProp",
-    itemref: "itemRef",
-    itemscope: "itemScope",
-    itemtype: "itemType",
-    keyparams: "keyParams",
-    keytype: "keyType",
-    kind: "kind",
-    label: "label",
-    lang: "lang",
-    list: "list",
-    loop: "loop",
-    low: "low",
-    manifest: "manifest",
-    marginwidth: "marginWidth",
-    marginheight: "marginHeight",
-    max: "max",
-    maxlength: "maxLength",
-    media: "media",
-    mediagroup: "mediaGroup",
-    method: "method",
-    min: "min",
-    minlength: "minLength",
-    multiple: "multiple",
-    muted: "muted",
-    name: "name",
-    nomodule: "noModule",
-    nonce: "nonce",
-    novalidate: "noValidate",
-    open: "open",
-    optimum: "optimum",
-    pattern: "pattern",
-    placeholder: "placeholder",
-    playsinline: "playsInline",
-    poster: "poster",
-    preload: "preload",
-    profile: "profile",
-    radiogroup: "radioGroup",
-    readonly: "readOnly",
-    referrerpolicy: "referrerPolicy",
-    rel: "rel",
-    required: "required",
-    reversed: "reversed",
-    role: "role",
-    rows: "rows",
-    rowspan: "rowSpan",
-    sandbox: "sandbox",
-    scope: "scope",
-    scoped: "scoped",
-    scrolling: "scrolling",
-    seamless: "seamless",
-    selected: "selected",
-    shape: "shape",
-    size: "size",
-    sizes: "sizes",
-    span: "span",
-    spellcheck: "spellCheck",
-    src: "src",
-    srcdoc: "srcDoc",
-    srclang: "srcLang",
-    srcset: "srcSet",
-    start: "start",
-    step: "step",
-    style: "style",
-    summary: "summary",
-    tabindex: "tabIndex",
-    target: "target",
-    title: "title",
-    type: "type",
-    usemap: "useMap",
-    value: "value",
-    width: "width",
-    wmode: "wmode",
-    wrap: "wrap",
-    about: "about",
-    accentheight: "accentHeight",
-    "accent-height": "accentHeight",
-    accumulate: "accumulate",
-    additive: "additive",
-    alignmentbaseline: "alignmentBaseline",
-    "alignment-baseline": "alignmentBaseline",
-    allowreorder: "allowReorder",
-    alphabetic: "alphabetic",
-    amplitude: "amplitude",
-    arabicform: "arabicForm",
-    "arabic-form": "arabicForm",
-    ascent: "ascent",
-    attributename: "attributeName",
-    attributetype: "attributeType",
-    autoreverse: "autoReverse",
-    azimuth: "azimuth",
-    basefrequency: "baseFrequency",
-    baselineshift: "baselineShift",
-    "baseline-shift": "baselineShift",
-    baseprofile: "baseProfile",
-    bbox: "bbox",
-    begin: "begin",
-    bias: "bias",
-    by: "by",
-    calcmode: "calcMode",
-    capheight: "capHeight",
-    "cap-height": "capHeight",
-    clip: "clip",
-    clippath: "clipPath",
-    "clip-path": "clipPath",
-    clippathunits: "clipPathUnits",
-    cliprule: "clipRule",
-    "clip-rule": "clipRule",
-    color: "color",
-    colorinterpolation: "colorInterpolation",
-    "color-interpolation": "colorInterpolation",
-    colorinterpolationfilters: "colorInterpolationFilters",
-    "color-interpolation-filters": "colorInterpolationFilters",
-    colorprofile: "colorProfile",
-    "color-profile": "colorProfile",
-    colorrendering: "colorRendering",
-    "color-rendering": "colorRendering",
-    contentscripttype: "contentScriptType",
-    contentstyletype: "contentStyleType",
-    cursor: "cursor",
-    cx: "cx",
-    cy: "cy",
-    d: "d",
-    datatype: "datatype",
-    decelerate: "decelerate",
-    descent: "descent",
-    diffuseconstant: "diffuseConstant",
-    direction: "direction",
-    display: "display",
-    divisor: "divisor",
-    dominantbaseline: "dominantBaseline",
-    "dominant-baseline": "dominantBaseline",
-    dur: "dur",
-    dx: "dx",
-    dy: "dy",
-    edgemode: "edgeMode",
-    elevation: "elevation",
-    enablebackground: "enableBackground",
-    "enable-background": "enableBackground",
-    end: "end",
-    exponent: "exponent",
-    externalresourcesrequired: "externalResourcesRequired",
-    fill: "fill",
-    fillopacity: "fillOpacity",
-    "fill-opacity": "fillOpacity",
-    fillrule: "fillRule",
-    "fill-rule": "fillRule",
-    filter: "filter",
-    filterres: "filterRes",
-    filterunits: "filterUnits",
-    floodopacity: "floodOpacity",
-    "flood-opacity": "floodOpacity",
-    floodcolor: "floodColor",
-    "flood-color": "floodColor",
-    focusable: "focusable",
-    fontfamily: "fontFamily",
-    "font-family": "fontFamily",
-    fontsize: "fontSize",
-    "font-size": "fontSize",
-    fontsizeadjust: "fontSizeAdjust",
-    "font-size-adjust": "fontSizeAdjust",
-    fontstretch: "fontStretch",
-    "font-stretch": "fontStretch",
-    fontstyle: "fontStyle",
-    "font-style": "fontStyle",
-    fontvariant: "fontVariant",
-    "font-variant": "fontVariant",
-    fontweight: "fontWeight",
-    "font-weight": "fontWeight",
-    format: "format",
-    from: "from",
-    fx: "fx",
-    fy: "fy",
-    g1: "g1",
-    g2: "g2",
-    glyphname: "glyphName",
-    "glyph-name": "glyphName",
-    glyphorientationhorizontal: "glyphOrientationHorizontal",
-    "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-    glyphorientationvertical: "glyphOrientationVertical",
-    "glyph-orientation-vertical": "glyphOrientationVertical",
-    glyphref: "glyphRef",
-    gradienttransform: "gradientTransform",
-    gradientunits: "gradientUnits",
-    hanging: "hanging",
-    horizadvx: "horizAdvX",
-    "horiz-adv-x": "horizAdvX",
-    horizoriginx: "horizOriginX",
-    "horiz-origin-x": "horizOriginX",
-    ideographic: "ideographic",
-    imagerendering: "imageRendering",
-    "image-rendering": "imageRendering",
-    in2: "in2",
-    in: "in",
-    inlist: "inlist",
-    intercept: "intercept",
-    k1: "k1",
-    k2: "k2",
-    k3: "k3",
-    k4: "k4",
-    k: "k",
-    kernelmatrix: "kernelMatrix",
-    kernelunitlength: "kernelUnitLength",
-    kerning: "kerning",
-    keypoints: "keyPoints",
-    keysplines: "keySplines",
-    keytimes: "keyTimes",
-    lengthadjust: "lengthAdjust",
-    letterspacing: "letterSpacing",
-    "letter-spacing": "letterSpacing",
-    lightingcolor: "lightingColor",
-    "lighting-color": "lightingColor",
-    limitingconeangle: "limitingConeAngle",
-    local: "local",
-    markerend: "markerEnd",
-    "marker-end": "markerEnd",
-    markerheight: "markerHeight",
-    markermid: "markerMid",
-    "marker-mid": "markerMid",
-    markerstart: "markerStart",
-    "marker-start": "markerStart",
-    markerunits: "markerUnits",
-    markerwidth: "markerWidth",
-    mask: "mask",
-    maskcontentunits: "maskContentUnits",
-    maskunits: "maskUnits",
-    mathematical: "mathematical",
-    mode: "mode",
-    numoctaves: "numOctaves",
-    offset: "offset",
-    opacity: "opacity",
-    operator: "operator",
-    order: "order",
-    orient: "orient",
-    orientation: "orientation",
-    origin: "origin",
-    overflow: "overflow",
-    overlineposition: "overlinePosition",
-    "overline-position": "overlinePosition",
-    overlinethickness: "overlineThickness",
-    "overline-thickness": "overlineThickness",
-    paintorder: "paintOrder",
-    "paint-order": "paintOrder",
-    panose1: "panose1",
-    "panose-1": "panose1",
-    pathlength: "pathLength",
-    patterncontentunits: "patternContentUnits",
-    patterntransform: "patternTransform",
-    patternunits: "patternUnits",
-    pointerevents: "pointerEvents",
-    "pointer-events": "pointerEvents",
-    points: "points",
-    pointsatx: "pointsAtX",
-    pointsaty: "pointsAtY",
-    pointsatz: "pointsAtZ",
-    popover: "popover",
-    popovertarget: "popoverTarget",
-    popovertargetaction: "popoverTargetAction",
-    prefix: "prefix",
-    preservealpha: "preserveAlpha",
-    preserveaspectratio: "preserveAspectRatio",
-    primitiveunits: "primitiveUnits",
-    property: "property",
-    r: "r",
-    radius: "radius",
-    refx: "refX",
-    refy: "refY",
-    renderingintent: "renderingIntent",
-    "rendering-intent": "renderingIntent",
-    repeatcount: "repeatCount",
-    repeatdur: "repeatDur",
-    requiredextensions: "requiredExtensions",
-    requiredfeatures: "requiredFeatures",
-    resource: "resource",
-    restart: "restart",
-    result: "result",
-    results: "results",
-    rotate: "rotate",
-    rx: "rx",
-    ry: "ry",
-    scale: "scale",
-    security: "security",
-    seed: "seed",
-    shaperendering: "shapeRendering",
-    "shape-rendering": "shapeRendering",
-    slope: "slope",
-    spacing: "spacing",
-    specularconstant: "specularConstant",
-    specularexponent: "specularExponent",
-    speed: "speed",
-    spreadmethod: "spreadMethod",
-    startoffset: "startOffset",
-    stddeviation: "stdDeviation",
-    stemh: "stemh",
-    stemv: "stemv",
-    stitchtiles: "stitchTiles",
-    stopcolor: "stopColor",
-    "stop-color": "stopColor",
-    stopopacity: "stopOpacity",
-    "stop-opacity": "stopOpacity",
-    strikethroughposition: "strikethroughPosition",
-    "strikethrough-position": "strikethroughPosition",
-    strikethroughthickness: "strikethroughThickness",
-    "strikethrough-thickness": "strikethroughThickness",
-    string: "string",
-    stroke: "stroke",
-    strokedasharray: "strokeDasharray",
-    "stroke-dasharray": "strokeDasharray",
-    strokedashoffset: "strokeDashoffset",
-    "stroke-dashoffset": "strokeDashoffset",
-    strokelinecap: "strokeLinecap",
-    "stroke-linecap": "strokeLinecap",
-    strokelinejoin: "strokeLinejoin",
-    "stroke-linejoin": "strokeLinejoin",
-    strokemiterlimit: "strokeMiterlimit",
-    "stroke-miterlimit": "strokeMiterlimit",
-    strokewidth: "strokeWidth",
-    "stroke-width": "strokeWidth",
-    strokeopacity: "strokeOpacity",
-    "stroke-opacity": "strokeOpacity",
-    suppresscontenteditablewarning: "suppressContentEditableWarning",
-    suppresshydrationwarning: "suppressHydrationWarning",
-    surfacescale: "surfaceScale",
-    systemlanguage: "systemLanguage",
-    tablevalues: "tableValues",
-    targetx: "targetX",
-    targety: "targetY",
-    textanchor: "textAnchor",
-    "text-anchor": "textAnchor",
-    textdecoration: "textDecoration",
-    "text-decoration": "textDecoration",
-    textlength: "textLength",
-    textrendering: "textRendering",
-    "text-rendering": "textRendering",
-    to: "to",
-    transform: "transform",
-    transformorigin: "transformOrigin",
-    "transform-origin": "transformOrigin",
-    typeof: "typeof",
-    u1: "u1",
-    u2: "u2",
-    underlineposition: "underlinePosition",
-    "underline-position": "underlinePosition",
-    underlinethickness: "underlineThickness",
-    "underline-thickness": "underlineThickness",
-    unicode: "unicode",
-    unicodebidi: "unicodeBidi",
-    "unicode-bidi": "unicodeBidi",
-    unicoderange: "unicodeRange",
-    "unicode-range": "unicodeRange",
-    unitsperem: "unitsPerEm",
-    "units-per-em": "unitsPerEm",
-    unselectable: "unselectable",
-    valphabetic: "vAlphabetic",
-    "v-alphabetic": "vAlphabetic",
-    values: "values",
-    vectoreffect: "vectorEffect",
-    "vector-effect": "vectorEffect",
-    version: "version",
-    vertadvy: "vertAdvY",
-    "vert-adv-y": "vertAdvY",
-    vertoriginx: "vertOriginX",
-    "vert-origin-x": "vertOriginX",
-    vertoriginy: "vertOriginY",
-    "vert-origin-y": "vertOriginY",
-    vhanging: "vHanging",
-    "v-hanging": "vHanging",
-    videographic: "vIdeographic",
-    "v-ideographic": "vIdeographic",
-    viewbox: "viewBox",
-    viewtarget: "viewTarget",
-    visibility: "visibility",
-    vmathematical: "vMathematical",
-    "v-mathematical": "vMathematical",
-    vocab: "vocab",
-    widths: "widths",
-    wordspacing: "wordSpacing",
-    "word-spacing": "wordSpacing",
-    writingmode: "writingMode",
-    "writing-mode": "writingMode",
-    x1: "x1",
-    x2: "x2",
-    x: "x",
-    xchannelselector: "xChannelSelector",
-    xheight: "xHeight",
-    "x-height": "xHeight",
-    xlinkactuate: "xlinkActuate",
-    "xlink:actuate": "xlinkActuate",
-    xlinkarcrole: "xlinkArcrole",
-    "xlink:arcrole": "xlinkArcrole",
-    xlinkhref: "xlinkHref",
-    "xlink:href": "xlinkHref",
-    xlinkrole: "xlinkRole",
-    "xlink:role": "xlinkRole",
-    xlinkshow: "xlinkShow",
-    "xlink:show": "xlinkShow",
-    xlinktitle: "xlinkTitle",
-    "xlink:title": "xlinkTitle",
-    xlinktype: "xlinkType",
-    "xlink:type": "xlinkType",
-    xmlbase: "xmlBase",
-    "xml:base": "xmlBase",
-    xmllang: "xmlLang",
-    "xml:lang": "xmlLang",
-    xmlns: "xmlns",
-    "xml:space": "xmlSpace",
-    xmlnsxlink: "xmlnsXlink",
-    "xmlns:xlink": "xmlnsXlink",
-    xmlspace: "xmlSpace",
-    y1: "y1",
-    y2: "y2",
-    y: "y",
-    ychannelselector: "yChannelSelector",
-    z: "z",
-    zoomandpan: "zoomAndPan"
-  },
-  warnedProperties = {},
-  EVENT_NAME_REGEX = /^on./,
-  INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-  rARIA = RegExp(
-    "^(aria)-[: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]*$"
-  ),
-  rARIACamel = RegExp(
-    "^(aria)[A-Z][: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]*$"
-  );
-function validateProperty(tagName, name, value, eventRegistry) {
-  if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-    return !0;
-  var lowerCasedName = name.toLowerCase();
-  if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-    return (
-      console.error(
-        "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-      ),
-      (warnedProperties[name] = !0)
-    );
-  if (
-    "function" === typeof value &&
-    (("form" === tagName && "action" === name) ||
-      ("input" === tagName && "formAction" === name) ||
-      ("button" === tagName && "formAction" === name))
-  )
-    return !0;
-  if (null != eventRegistry) {
-    tagName = eventRegistry.possibleRegistrationNames;
-    if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-      return !0;
-    eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-      ? tagName[lowerCasedName]
-      : null;
-    if (null != eventRegistry)
-      return (
-        console.error(
-          "Invalid event handler property `%s`. Did you mean `%s`?",
-          name,
-          eventRegistry
-        ),
-        (warnedProperties[name] = !0)
-      );
-    if (EVENT_NAME_REGEX.test(name))
-      return (
-        console.error(
-          "Unknown event handler property `%s`. It will be ignored.",
-          name
-        ),
-        (warnedProperties[name] = !0)
-      );
-  } else if (EVENT_NAME_REGEX.test(name))
-    return (
-      INVALID_EVENT_NAME_REGEX.test(name) &&
-        console.error(
-          "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-          name
-        ),
-      (warnedProperties[name] = !0)
-    );
-  if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-  if ("innerhtml" === lowerCasedName)
-    return (
-      console.error(
-        "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-      ),
-      (warnedProperties[name] = !0)
-    );
-  if ("aria" === lowerCasedName)
-    return (
-      console.error(
-        "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-      ),
-      (warnedProperties[name] = !0)
-    );
-  if (
-    "is" === lowerCasedName &&
-    null !== value &&
-    void 0 !== value &&
-    "string" !== typeof value
-  )
-    return (
-      console.error(
-        "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-        typeof value
-      ),
-      (warnedProperties[name] = !0)
-    );
-  if ("number" === typeof value && isNaN(value))
-    return (
-      console.error(
-        "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-        name
-      ),
-      (warnedProperties[name] = !0)
-    );
-  if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-    if (
-      ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-      lowerCasedName !== name)
-    )
-      return (
-        console.error(
-          "Invalid DOM property `%s`. Did you mean `%s`?",
-          name,
-          lowerCasedName
-        ),
-        (warnedProperties[name] = !0)
-      );
-  } else if (name !== lowerCasedName)
-    return (
-      console.error(
-        "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-        name,
-        lowerCasedName
-      ),
-      (warnedProperties[name] = !0)
-    );
-  switch (name) {
-    case "dangerouslySetInnerHTML":
-    case "children":
-    case "style":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "ref":
-      return !0;
-    case "innerText":
-    case "textContent":
-      return !0;
-  }
-  switch (typeof value) {
-    case "boolean":
-      switch (name) {
-        case "autoFocus":
-        case "checked":
-        case "multiple":
-        case "muted":
-        case "selected":
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-        case "capture":
-        case "download":
-        case "inert":
-          return !0;
-        default:
-          lowerCasedName = name.toLowerCase().slice(0, 5);
-          if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-            return !0;
-          value
-            ? console.error(
-                'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                value,
-                name,
-                name,
-                value,
-                name
-              )
-            : console.error(
-                'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                value,
-                name,
-                name,
-                value,
-                name,
-                name,
-                name
-              );
-          return (warnedProperties[name] = !0);
-      }
-    case "function":
-    case "symbol":
-      return (warnedProperties[name] = !0), !1;
-    case "string":
-      if ("false" === value || "true" === value) {
-        switch (name) {
-          case "checked":
-          case "selected":
-          case "multiple":
-          case "muted":
-          case "allowFullScreen":
-          case "async":
-          case "autoPlay":
-          case "controls":
-          case "default":
-          case "defer":
-          case "disabled":
-          case "disablePictureInPicture":
-          case "disableRemotePlayback":
-          case "formNoValidate":
-          case "hidden":
-          case "loop":
-          case "noModule":
-          case "noValidate":
-          case "open":
-          case "playsInline":
-          case "readOnly":
-          case "required":
-          case "reversed":
-          case "scoped":
-          case "seamless":
-          case "itemScope":
-          case "inert":
-            break;
-          default:
-            return !0;
-        }
-        console.error(
-          "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-          value,
-          name,
-          "false" === value
-            ? "The browser will interpret it as a truthy value."
-            : 'Although this works, it will not work as expected if you pass the string "false".',
-          name,
-          value
-        );
-        warnedProperties[name] = !0;
-      }
-  }
-  return !0;
-}
-function warnUnknownProperties(type, props, eventRegistry) {
-  var unknownProps = [],
-    key;
-  for (key in props)
-    validateProperty(type, key, props[key], eventRegistry) ||
-      unknownProps.push(key);
-  props = unknownProps
-    .map(function (prop) {
-      return "`" + prop + "`";
-    })
-    .join(", ");
-  1 === unknownProps.length
-    ? console.error(
-        "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-        props,
-        type
-      )
-    : 1 < unknownProps.length &&
-      console.error(
-        "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-        props,
-        type
-      );
-}
-var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-  msPattern$1 = /^-ms-/,
-  hyphenPattern = /-(.)/g,
-  badStyleValueWithSemicolonPattern = /;\s*$/,
-  warnedStyleNames = {},
-  warnedStyleValues = {},
-  warnedForNaNValue = !1,
-  warnedForInfinityValue = !1;
-function camelize(string) {
-  return string.replace(hyphenPattern, function (_, character) {
-    return character.toUpperCase();
-  });
-}
-var matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  checkHtmlStringCoercion(text);
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  NotPending = Object.freeze({
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  }),
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var NothingSent = 0,
-  SentCompleteSegmentFunction = 1,
-  SentCompleteBoundaryFunction = 2,
-  SentClientRenderFunction = 4,
-  SentStyleInsertionFunction = 8,
-  SentCompletedShellId = 32,
-  SentMarkShellTime = 64,
-  EXISTS = null,
-  PRELOAD_NO_CREDS = [];
-Object.freeze(PRELOAD_NO_CREDS);
-var currentlyFlushingRenderState = null,
-  endInlineScript = "\x3c/script>";
-function escapeEntireInlineScriptContent(scriptText) {
-  checkHtmlStringCoercion(scriptText);
-  return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-}
-var scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-var didWarnForNewBooleanPropsWithEmptyValue;
-didWarnForNewBooleanPropsWithEmptyValue = {};
-function createRenderState(
-  resumableState,
-  nonce,
-  externalRuntimeConfig,
-  importMap,
-  onHeaders,
-  maxHeadersLength
-) {
-  externalRuntimeConfig =
-    "string" === typeof nonce ? nonce : nonce && nonce.script;
-  var inlineScriptWithNonce =
-      void 0 === externalRuntimeConfig
-        ? "<script"
-        : '<script nonce="' + escapeTextForBrowser(externalRuntimeConfig) + '"',
-    nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-    inlineStyleWithNonce =
-      void 0 === nonceStyle
-        ? "<style"
-        : '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"',
-    idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push(inlineScriptWithNonce),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      endOfStartTag,
-      escapeEntireInlineScriptContent(bootstrapScriptContent),
-      endInlineScript
-    ));
-  bootstrapScriptContent = [];
-  void 0 !== importMap &&
-    (bootstrapScriptContent.push('<script type="importmap">'),
-    bootstrapScriptContent.push(
-      escapeEntireInlineScriptContent(JSON.stringify(importMap))
-    ),
-    bootstrapScriptContent.push("\x3c/script>"));
-  onHeaders &&
-    "number" === typeof maxHeadersLength &&
-    0 >= maxHeadersLength &&
-    console.error(
-      "React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.",
-      0 === maxHeadersLength ? "zero" : maxHeadersLength
-    );
-  importMap = onHeaders
-    ? {
-        preconnects: "",
-        fontPreloads: "",
-        highImagePreloads: "",
-        remainingCapacity:
-          2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-      }
-    : null;
-  onHeaders = {
-    placeholderPrefix: idPrefix + "P:",
-    segmentPrefix: idPrefix + "S:",
-    boundaryPrefix: idPrefix + "B:",
-    startInlineScript: inlineScriptWithNonce,
-    startInlineStyle: inlineStyleWithNonce,
-    preamble: createPreambleState(),
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: bootstrapScriptContent,
-    onHeaders: onHeaders,
-    headers: importMap,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: new Set(),
-    fontPreloads: new Set(),
-    highImagePreloads: new Set(),
-    styles: new Map(),
-    bootstrapScripts: new Set(),
-    scripts: new Set(),
-    bulkPreloads: new Set(),
-    preloads: {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    },
-    nonce: { script: externalRuntimeConfig, style: nonceStyle },
-    hoistableState: null,
-    stylesToHoist: !1
-  };
-  if (void 0 !== bootstrapScripts)
-    for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-      (maxHeadersLength = bootstrapScripts[importMap]),
-        (inlineStyleWithNonce = nonceStyle = void 0),
-        (idPrefix = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: nonce
-        }),
-        "string" === typeof maxHeadersLength
-          ? (idPrefix.href = inlineScriptWithNonce = maxHeadersLength)
-          : ((idPrefix.href = inlineScriptWithNonce = maxHeadersLength.src),
-            (idPrefix.integrity = inlineStyleWithNonce =
-              "string" === typeof maxHeadersLength.integrity
-                ? maxHeadersLength.integrity
-                : void 0),
-            (idPrefix.crossOrigin = nonceStyle =
-              "string" === typeof maxHeadersLength ||
-              null == maxHeadersLength.crossOrigin
-                ? void 0
-                : "use-credentials" === maxHeadersLength.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        preloadBootstrapScriptOrModule(
-          resumableState,
-          onHeaders,
-          inlineScriptWithNonce,
-          idPrefix
-        ),
-        bootstrapChunks.push(
-          '<script src="',
-          escapeTextForBrowser(inlineScriptWithNonce),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            ' nonce="',
-            escapeTextForBrowser(externalRuntimeConfig),
-            attributeEnd
-          ),
-        "string" === typeof inlineStyleWithNonce &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(inlineStyleWithNonce),
-            attributeEnd
-          ),
-        "string" === typeof nonceStyle &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(nonceStyle),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  if (void 0 !== bootstrapModules)
-    for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-      (bootstrapScripts = bootstrapModules[nonce]),
-        (inlineScriptWithNonce = maxHeadersLength = void 0),
-        (nonceStyle = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: externalRuntimeConfig
-        }),
-        "string" === typeof bootstrapScripts
-          ? (nonceStyle.href = importMap = bootstrapScripts)
-          : ((nonceStyle.href = importMap = bootstrapScripts.src),
-            (nonceStyle.integrity = inlineScriptWithNonce =
-              "string" === typeof bootstrapScripts.integrity
-                ? bootstrapScripts.integrity
-                : void 0),
-            (nonceStyle.crossOrigin = maxHeadersLength =
-              "string" === typeof bootstrapScripts ||
-              null == bootstrapScripts.crossOrigin
-                ? void 0
-                : "use-credentials" === bootstrapScripts.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        preloadBootstrapScriptOrModule(
-          resumableState,
-          onHeaders,
-          importMap,
-          nonceStyle
-        ),
-        bootstrapChunks.push(
-          '<script type="module" src="',
-          escapeTextForBrowser(importMap),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            ' nonce="',
-            escapeTextForBrowser(externalRuntimeConfig),
-            attributeEnd
-          ),
-        "string" === typeof inlineScriptWithNonce &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(inlineScriptWithNonce),
-            attributeEnd
-          ),
-        "string" === typeof maxHeadersLength &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(maxHeadersLength),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  return onHeaders;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: NothingSent,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createPreambleState() {
-  return { htmlChunks: null, headChunks: null, bodyChunks: null };
-}
-var ROOT_HTML_MODE = 0,
-  HTML_HTML_MODE = 1,
-  HTML_MODE = 2,
-  HTML_HEAD_MODE = 3,
-  SVG_MODE = 4,
-  MATHML_MODE = 5,
-  HTML_TABLE_MODE = 6,
-  HTML_TABLE_BODY_MODE = 7,
-  HTML_TABLE_ROW_MODE = 8,
-  HTML_COLGROUP_MODE = 9;
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function createRootFormatContext(namespaceURI) {
-  return createFormatContext(
-    "http://www.w3.org/2000/svg" === namespaceURI
-      ? SVG_MODE
-      : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-        ? MATHML_MODE
-        : ROOT_HTML_MODE,
-    null,
-    0,
-    null
-  );
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        HTML_MODE,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(SVG_MODE, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(HTML_MODE, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(
-        HTML_TABLE_BODY_MODE,
-        null,
-        subtreeScope,
-        null
-      );
-    case "colgroup":
-      return createFormatContext(HTML_COLGROUP_MODE, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(HTML_TABLE_ROW_MODE, null, subtreeScope, null);
-    case "head":
-      if (parentContext.insertionMode < HTML_MODE)
-        return createFormatContext(HTML_HEAD_MODE, null, subtreeScope, null);
-      break;
-    case "html":
-      if (parentContext.insertionMode === ROOT_HTML_MODE)
-        return createFormatContext(HTML_HTML_MODE, null, subtreeScope, null);
-  }
-  return parentContext.insertionMode >= HTML_TABLE_MODE ||
-    parentContext.insertionMode < HTML_MODE
-    ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if ("" === text) return textEmbedded;
-  textEmbedded && target.push("\x3c!-- --\x3e");
-  target.push(escapeTextForBrowser(text));
-  return !0;
-}
-function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {
-  lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e");
-}
-var styleNameCache = new Map(),
-  styleAttributeStart = ' style="',
-  styleAssign = ":",
-  styleSeparator = ";";
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style)
-    throw Error(
-      "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-    );
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = escapeTextForBrowser(styleName);
-          checkCSSPropertyStringCoercion(styleValue, styleName);
-          styleValue = escapeTextForBrowser(("" + styleValue).trim());
-        } else {
-          nameChunk = styleName;
-          var value = styleValue;
-          if (-1 < nameChunk.indexOf("-")) {
-            var name = nameChunk;
-            (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) ||
-              ((warnedStyleNames[name] = !0),
-              console.error(
-                "Unsupported style property %s. Did you mean %s?",
-                name,
-                camelize(name.replace(msPattern$1, "ms-"))
-              ));
-          } else if (badVendoredStyleNamePattern.test(nameChunk))
-            (name = nameChunk),
-              (warnedStyleNames.hasOwnProperty(name) &&
-                warnedStyleNames[name]) ||
-                ((warnedStyleNames[name] = !0),
-                console.error(
-                  "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                  name,
-                  name.charAt(0).toUpperCase() + name.slice(1)
-                ));
-          else if (badStyleValueWithSemicolonPattern.test(value)) {
-            name = nameChunk;
-            var value$jscomp$0 = value;
-            (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-              warnedStyleValues[value$jscomp$0]) ||
-              ((warnedStyleValues[value$jscomp$0] = !0),
-              console.error(
-                'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                name,
-                value$jscomp$0.replace(badStyleValueWithSemicolonPattern, "")
-              ));
-          }
-          "number" === typeof value &&
-            (isNaN(value)
-              ? warnedForNaNValue ||
-                ((warnedForNaNValue = !0),
-                console.error(
-                  "`NaN` is an invalid value for the `%s` css style property.",
-                  nameChunk
-                ))
-              : isFinite(value) ||
-                warnedForInfinityValue ||
-                ((warnedForInfinityValue = !0),
-                console.error(
-                  "`Infinity` is an invalid value for the `%s` css style property.",
-                  nameChunk
-                )));
-          nameChunk = styleName;
-          value = styleNameCache.get(nameChunk);
-          void 0 !== value
-            ? (nameChunk = value)
-            : ((value = escapeTextForBrowser(
-                nameChunk
-                  .replace(uppercasePattern, "-$1")
-                  .toLowerCase()
-                  .replace(msPattern, "-ms-")
-              )),
-              styleNameCache.set(nameChunk, value),
-              (nameChunk = value));
-          "number" === typeof styleValue
-            ? (styleValue =
-                0 === styleValue || unitlessNumbers.has(styleName)
-                  ? "" + styleValue
-                  : styleValue + "px")
-            : (checkCSSPropertyStringCoercion(styleValue, styleName),
-              (styleValue = escapeTextForBrowser(("" + styleValue).trim())));
-        }
-        isFirst
-          ? ((isFirst = !1),
-            target.push(
-              styleAttributeStart,
-              nameChunk,
-              styleAssign,
-              styleValue
-            ))
-          : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-      }
-    }
-  isFirst || target.push(attributeEnd);
-}
-var attributeSeparator = " ",
-  attributeAssign = '="',
-  attributeEnd = '"',
-  attributeEmptyString = '=""';
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(attributeSeparator, name, attributeEmptyString);
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(
-      attributeSeparator,
-      name,
-      attributeAssign,
-      escapeTextForBrowser(value),
-      attributeEnd
-    );
-}
-var actionJavaScriptURL = escapeTextForBrowser(
-  "javascript:throw new Error('React form unexpectedly submitted.')"
-);
-function pushAdditionalFormField(value, key) {
-  this.push('<input type="hidden"');
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push(endOfStartTagSelfClosing);
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value)
-    throw Error(
-      "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-    );
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-      console.error(
-        "Failed to serialize an action for progressive enhancement:\n%s",
-        x
-      );
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    null === name ||
-      didWarnFormActionName ||
-      ((didWarnFormActionName = !0),
-      console.error(
-        'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-      ));
-    (null === formEncType && null === formMethod) ||
-      didWarnFormActionMethod ||
-      ((didWarnFormActionMethod = !0),
-      console.error(
-        "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-      ));
-    null === formTarget ||
-      didWarnFormActionTarget ||
-      ((didWarnFormActionTarget = !0),
-      console.error(
-        "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-      ));
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(
-          attributeSeparator,
-          "formAction",
-          attributeAssign,
-          actionJavaScriptURL,
-          attributeEnd
-        ),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) {
-        "src" === name
-          ? console.error(
-              'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-              name,
-              name
-            )
-          : console.error(
-              'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-              name,
-              name
-            );
-        break;
-      }
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      checkAttributeStringCoercion(value, name);
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        name,
-        attributeAssign,
-        escapeTextForBrowser(value),
-        attributeEnd
-      );
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      checkAttributeStringCoercion(value, name);
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        "xlink:href",
-        attributeAssign,
-        escapeTextForBrowser(value),
-        attributeEnd
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "inert":
-      "" !== value ||
-        didWarnForNewBooleanPropsWithEmptyValue[name] ||
-        ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-        console.error(
-          "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-          name
-        ));
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(attributeSeparator, name, attributeEmptyString);
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(attributeSeparator, name, attributeEmptyString)
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix && "aria-" !== prefix) return;
-          }
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-        }
-  }
-}
-var endOfStartTag = ">",
-  endOfStartTagSelfClosing = "/>";
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children)
-      throw Error(
-        "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-      );
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(
-        "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-      );
-    innerHTML = innerHTML.__html;
-    null !== innerHTML &&
-      void 0 !== innerHTML &&
-      (checkHtmlStringCoercion(innerHTML), target.push("" + innerHTML));
-  }
-}
-var didWarnDefaultInputValue = !1,
-  didWarnDefaultChecked = !1,
-  didWarnDefaultSelectValue = !1,
-  didWarnDefaultTextareaValue = !1,
-  didWarnInvalidOptionChildren = !1,
-  didWarnInvalidOptionInnerHTML = !1,
-  didWarnSelectedSetOnOption = !1,
-  didWarnFormActionType = !1,
-  didWarnFormActionName = !1,
-  didWarnFormActionTarget = !1,
-  didWarnFormActionMethod = !1;
-function checkSelectProp(props, propName) {
-  var value = props[propName];
-  null != value &&
-    ((value = isArrayImpl(value)),
-    props.multiple && !value
-      ? console.error(
-          "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-          propName
-        )
-      : !props.multiple &&
-        value &&
-        console.error(
-          "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-          propName
-        ));
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child &&
-      ((content += child),
-      didWarnInvalidOptionChildren ||
-        "string" === typeof child ||
-        "number" === typeof child ||
-        "bigint" === typeof child ||
-        ((didWarnInvalidOptionChildren = !0),
-        console.error(
-          "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-        )));
-  });
-  return content;
-}
-var formReplayingRuntimeScript =
-  'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});';
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if ((resumableState.instructions & 16) === NothingSent) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        );
-  }
-}
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-function escapeStyleTextContent(styleText) {
-  checkHtmlStringCoercion(styleText);
-  return ("" + styleText).replace(styleRegex, styleReplacer);
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              tag +
-                " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(escapeTextForBrowser("" + props));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  null != children &&
-    "string" !== typeof children &&
-    ((props =
-      "number" === typeof children
-        ? "a number for children"
-        : Array.isArray(children)
-          ? "an array for children"
-          : "something unexpected for children"),
-    console.error(
-      "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-      props
-    ));
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(escapeEntireInlineScriptContent(children));
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(escapeTextForBrowser(tag)), null)
-    : tag;
-}
-var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-    tagStartChunk = "<" + tag;
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  validateProperties$2(type, props);
-  ("input" !== type && "textarea" !== type && "select" !== type) ||
-    null == props ||
-    null !== props.value ||
-    didWarnValueNull ||
-    ((didWarnValueNull = !0),
-    "select" === type && props.multiple
-      ? console.error(
-          "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-          type
-        )
-      : console.error(
-          "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-          type
-        ));
-  b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-  else
-    switch (type) {
-      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":
-        JSCompiler_inline_result = !1;
-        break b;
-      default:
-        JSCompiler_inline_result = !0;
-    }
-  JSCompiler_inline_result ||
-    "string" === typeof props.is ||
-    warnUnknownProperties(type, props, null);
-  !props.suppressContentEditableWarning &&
-    props.contentEditable &&
-    null != props.children &&
-    console.error(
-      "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-    );
-  formatContext.insertionMode !== SVG_MODE &&
-    formatContext.insertionMode !== MATHML_MODE &&
-    -1 === type.indexOf("-") &&
-    type.toLowerCase() !== type &&
-    console.error(
-      "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-      type
-    );
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(escapeTextForBrowser(children));
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children;
-      return JSCompiler_inline_result$jscomp$0;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      checkControlledValueProps("select", props);
-      checkSelectProp(props, "value");
-      checkSelectProp(props, "defaultValue");
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnDefaultSelectValue ||
-        (console.error(
-          "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-        ),
-        (didWarnDefaultSelectValue = !0));
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                didWarnSelectedSetOnOption ||
-                  (console.error(
-                    "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                  ),
-                  (didWarnSelectedSetOnOption = !0));
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        if (null !== value) {
-          checkAttributeStringCoercion(value, "value");
-          var stringValue = "" + value;
-        } else
-          null === innerHTML$jscomp$1 ||
-            didWarnInvalidOptionInnerHTML ||
-            ((didWarnInvalidOptionInnerHTML = !0),
-            console.error(
-              "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-            )),
-            (stringValue = flattenOptionChildren(children$jscomp$1));
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if (
-              (checkAttributeStringCoercion(selectedValue[i], "value"),
-              "" + selectedValue[i] === stringValue)
-            ) {
-              target$jscomp$0.push(' selected=""');
-              break;
-            }
-          }
-        else
-          checkAttributeStringCoercion(selectedValue, "select.value"),
-            "" + selectedValue === stringValue &&
-              target$jscomp$0.push(' selected=""');
-      } else selected && target$jscomp$0.push(' selected=""');
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      checkControlledValueProps("textarea", props);
-      void 0 === props.value ||
-        void 0 === props.defaultValue ||
-        didWarnDefaultTextareaValue ||
-        (console.error(
-          "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-        ),
-        (didWarnDefaultTextareaValue = !0));
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(endOfStartTag);
-      if (null != children$jscomp$2) {
-        console.error(
-          "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-        );
-        if (null != value$jscomp$0)
-          throw Error(
-            "If you supply `defaultValue` on a <textarea>, do not pass children."
-          );
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error("<textarea> can only have at most one child.");
-          checkHtmlStringCoercion(children$jscomp$2[0]);
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        checkHtmlStringCoercion(children$jscomp$2);
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push("\n");
-      null !== value$jscomp$0 &&
-        (checkAttributeStringCoercion(value$jscomp$0, "value"),
-        target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)));
-      return null;
-    case "input":
-      checkControlledValueProps("input", props);
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      null === formAction ||
-        "image" === props.type ||
-        "submit" === props.type ||
-        didWarnFormActionType ||
-        ((didWarnFormActionType = !0),
-        console.error(
-          'An input can only specify a formAction along with type="submit" or type="image".'
-        ));
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null === checked ||
-        null === defaultChecked ||
-        didWarnDefaultChecked ||
-        (console.error(
-          "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          "A component",
-          props.type
-        ),
-        (didWarnDefaultChecked = !0));
-      null === value$jscomp$1 ||
-        null === defaultValue$jscomp$0 ||
-        didWarnDefaultInputValue ||
-        (console.error(
-          "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-          "A component",
-          props.type
-        ),
-        (didWarnDefaultInputValue = !0));
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push(endOfStartTagSelfClosing);
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      null === formAction$jscomp$0 ||
-        null == props.type ||
-        "submit" === props.type ||
-        didWarnFormActionType ||
-        ((didWarnFormActionType = !0),
-        console.error(
-          'A button can only specify a formAction along with type="submit" or no type.'
-        ));
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(endOfStartTag);
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$1;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget$jscomp$1 ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              attributeSeparator,
-              "action",
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(endOfStartTag);
-      null !== formActionName &&
-        (target$jscomp$0.push('<input type="hidden"'),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push(endOfStartTagSelfClosing),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$2;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) {
-                  console.error(
-                    'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                    propKey$jscomp$7,
-                    propKey$jscomp$7
-                  );
-                  break;
-                }
-                target$jscomp$0.push(
-                  attributeSeparator,
-                  "data",
-                  attributeAssign,
-                  escapeTextForBrowser(sanitizedValue),
-                  attributeEnd
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-        var JSCompiler_inline_result$jscomp$3 = null;
-      } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$3;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (hasOwnProperty.call(props, "children")) {
-        var children$jscomp$6 = props.children,
-          child = Array.isArray(children$jscomp$6)
-            ? 2 > children$jscomp$6.length
-              ? children$jscomp$6[0]
-              : null
-            : children$jscomp$6;
-        Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-          ? console.error(
-              "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-              children$jscomp$6.length
-            )
-          : "function" === typeof child || "symbol" === typeof child
-            ? console.error(
-                "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                "function" === typeof child ? "a Function" : "a Sybmol"
-              )
-            : child &&
-              child.toString === {}.toString &&
-              (null != child.$$typeof
-                ? console.error(
-                    "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                  )
-                : console.error(
-                    "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                  ));
-      }
-      if (
-        formatContext.insertionMode === SVG_MODE ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$4 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$4 = void 0));
-      return JSCompiler_inline_result$jscomp$4;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        formatContext.insertionMode === SVG_MODE ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        "stylesheet" === rel &&
-          "string" === typeof props.precedence &&
-          (("string" === typeof href && href) ||
-            console.error(
-              'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-              null === href
-                ? "`null`"
-                : void 0 === href
-                  ? "`undefined`"
-                  : "" === href
-                    ? "an empty string"
-                    : 'something with type "' + typeof href + '"'
-            ));
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$5 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        ) {
-          if ("string" === typeof precedence)
-            if (null != props.disabled)
-              console.error(
-                'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-              );
-            else if (props.onLoad || props.onError) {
-              var propDescription =
-                props.onLoad && props.onError
-                  ? "`onLoad` and `onError` props"
-                  : props.onLoad
-                    ? "`onLoad` prop"
-                    : "`onError` prop";
-              console.error(
-                'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                propDescription,
-                propDescription
-              );
-            }
-          JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        } else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (resourceState !== EXISTS) {
-            resumableState.styleResources[href] = EXISTS;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: escapeTextForBrowser(precedence),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: PENDING$1,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = PRELOADED);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var _resource = styleQueue.sheets.get(href);
-            _resource &&
-              hoistableState &&
-              hoistableState.stylesheets.add(_resource);
-          }
-          textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-          JSCompiler_inline_result$jscomp$5 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-            (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$5;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        formatContext.insertionMode === SVG_MODE ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (resourceState$jscomp$0 !== EXISTS) {
-          resources[key] = EXISTS;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$6 = null;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-      if (hasOwnProperty.call(props, "children")) {
-        var children$jscomp$7 = props.children,
-          child$jscomp$0 = Array.isArray(children$jscomp$7)
-            ? 2 > children$jscomp$7.length
-              ? children$jscomp$7[0]
-              : null
-            : children$jscomp$7;
-        ("function" === typeof child$jscomp$0 ||
-          "symbol" === typeof child$jscomp$0 ||
-          Array.isArray(child$jscomp$0)) &&
-          console.error(
-            "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-            "function" === typeof child$jscomp$0
-              ? "a Function"
-              : "symbol" === typeof child$jscomp$0
-                ? "a Sybmol"
-                : "an Array"
-          );
-      }
-      var precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        formatContext.insertionMode === SVG_MODE ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$8 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$8 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        var child$jscomp$1 = Array.isArray(children$jscomp$8)
-          ? 2 > children$jscomp$8.length
-            ? children$jscomp$8[0]
-            : null
-          : children$jscomp$8;
-        "function" !== typeof child$jscomp$1 &&
-          "symbol" !== typeof child$jscomp$1 &&
-          null !== child$jscomp$1 &&
-          void 0 !== child$jscomp$1 &&
-          target$jscomp$0.push(escapeStyleTextContent(child$jscomp$1));
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$8);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$7 = null;
-      } else {
-        href$jscomp$0.includes(" ") &&
-          console.error(
-            'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-            href$jscomp$0
-          );
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0),
-          resourceState$jscomp$1 = resumableState.styleResources.hasOwnProperty(
-            href$jscomp$0
-          )
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0;
-        if (resourceState$jscomp$1 !== EXISTS) {
-          resumableState.styleResources[href$jscomp$0] = EXISTS;
-          resourceState$jscomp$1 &&
-            console.error(
-              'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-              href$jscomp$0
-            );
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: escapeTextForBrowser(precedence$jscomp$0),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (nonceStyle && nonceStyle !== nonce)
-            console.error(
-              'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-              precedence$jscomp$0,
-              nonce,
-              nonceStyle
-            );
-          else {
-            !nonceStyle &&
-              nonce &&
-              console.error(
-                'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                precedence$jscomp$0,
-                nonce
-              );
-            styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$9 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$9 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$2 = Array.isArray(children$jscomp$9)
-              ? 2 > children$jscomp$9.length
-                ? children$jscomp$9[0]
-                : null
-              : children$jscomp$9;
-            "function" !== typeof child$jscomp$2 &&
-              "symbol" !== typeof child$jscomp$2 &&
-              null !== child$jscomp$2 &&
-              void 0 !== child$jscomp$2 &&
-              target.push(escapeStyleTextContent(child$jscomp$2));
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$7 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$7;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        formatContext.insertionMode === SVG_MODE ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-          (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$8;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$10 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$10 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$10)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push("\n", html)
-            : (checkHtmlStringCoercion(html), target$jscomp$0.push("" + html)));
-      }
-      "string" === typeof children$jscomp$10 &&
-        "\n" === children$jscomp$10[0] &&
-        target$jscomp$0.push("\n");
-      return children$jscomp$10;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var crossOrigin =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: crossOrigin,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (formatContext.insertionMode < HTML_MODE) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error("The `<head>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (formatContext.insertionMode < HTML_MODE) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error("The `<body>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (formatContext.insertionMode === ROOT_HTML_MODE) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error("The `<html>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-        preamble$jscomp$1.htmlChunks = ["<!DOCTYPE html>"];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$11 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$11 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      attributeName,
-                      attributeAssign,
-                      escapeTextForBrowser(propValue$jscomp$11),
-                      attributeEnd
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$11);
-        return children$jscomp$11;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    writeChunk(destination, renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]), (renderState.length = 0), !!destination.write(i))
-    : !0;
-}
-var shellTimeRuntimeScript =
-    "requestAnimationFrame(function(){$RT=performance.now()});",
-  placeholder1 = '<template id="',
-  placeholder2 = '"></template>',
-  startCompletedSuspenseBoundary = "\x3c!--$--\x3e",
-  startPendingSuspenseBoundary1 = '\x3c!--$?--\x3e<template id="',
-  startPendingSuspenseBoundary2 = '"></template>',
-  startClientRenderedSuspenseBoundary = "\x3c!--$!--\x3e",
-  endSuspenseBoundary = "\x3c!--/$--\x3e",
-  clientRenderedSuspenseBoundaryError1 = "<template",
-  clientRenderedSuspenseBoundaryErrorAttrInterstitial = '"',
-  clientRenderedSuspenseBoundaryError1A = ' data-dgst="',
-  clientRenderedSuspenseBoundaryError1B = ' data-msg="',
-  clientRenderedSuspenseBoundaryError1C = ' data-stck="',
-  clientRenderedSuspenseBoundaryError1D = ' data-cstck="',
-  clientRenderedSuspenseBoundaryError2 = "></template>";
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  writeChunk(destination, startPendingSuspenseBoundary1);
-  if (null === id)
-    throw Error(
-      "An ID must have been assigned before we can complete the boundary."
-    );
-  writeChunk(destination, renderState.boundaryPrefix);
-  writeChunk(destination, id.toString(16));
-  return !!destination.write(startPendingSuspenseBoundary2);
-}
-var startSegmentHTML = '<div hidden id="',
-  startSegmentHTML2 = '">',
-  endSegmentHTML = "</div>",
-  startSegmentSVG = '<svg aria-hidden="true" style="display:none" id="',
-  startSegmentSVG2 = '">',
-  endSegmentSVG = "</svg>",
-  startSegmentMathML = '<math aria-hidden="true" style="display:none" id="',
-  startSegmentMathML2 = '">',
-  endSegmentMathML = "</math>",
-  startSegmentTable = '<table hidden id="',
-  startSegmentTable2 = '">',
-  endSegmentTable = "</table>",
-  startSegmentTableBody = '<table hidden><tbody id="',
-  startSegmentTableBody2 = '">',
-  endSegmentTableBody = "</tbody></table>",
-  startSegmentTableRow = '<table hidden><tr id="',
-  startSegmentTableRow2 = '">',
-  endSegmentTableRow = "</tr></table>",
-  startSegmentColGroup = '<table hidden><colgroup id="',
-  startSegmentColGroup2 = '">',
-  endSegmentColGroup = "</colgroup></table>";
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case ROOT_HTML_MODE:
-    case HTML_HTML_MODE:
-    case HTML_HEAD_MODE:
-    case HTML_MODE:
-      return (
-        writeChunk(destination, startSegmentHTML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentHTML2)
-      );
-    case SVG_MODE:
-      return (
-        writeChunk(destination, startSegmentSVG),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentSVG2)
-      );
-    case MATHML_MODE:
-      return (
-        writeChunk(destination, startSegmentMathML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentMathML2)
-      );
-    case HTML_TABLE_MODE:
-      return (
-        writeChunk(destination, startSegmentTable),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentTable2)
-      );
-    case HTML_TABLE_BODY_MODE:
-      return (
-        writeChunk(destination, startSegmentTableBody),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentTableBody2)
-      );
-    case HTML_TABLE_ROW_MODE:
-      return (
-        writeChunk(destination, startSegmentTableRow),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentTableRow2)
-      );
-    case HTML_COLGROUP_MODE:
-      return (
-        writeChunk(destination, startSegmentColGroup),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write(startSegmentColGroup2)
-      );
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case ROOT_HTML_MODE:
-    case HTML_HTML_MODE:
-    case HTML_HEAD_MODE:
-    case HTML_MODE:
-      return !!destination.write(endSegmentHTML);
-    case SVG_MODE:
-      return !!destination.write(endSegmentSVG);
-    case MATHML_MODE:
-      return !!destination.write(endSegmentMathML);
-    case HTML_TABLE_MODE:
-      return !!destination.write(endSegmentTable);
-    case HTML_TABLE_BODY_MODE:
-      return !!destination.write(endSegmentTableBody);
-    case HTML_TABLE_ROW_MODE:
-      return !!destination.write(endSegmentTableRow);
-    case HTML_COLGROUP_MODE:
-      return !!destination.write(endSegmentColGroup);
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-var completeSegmentScript1Full =
-    '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("',
-  completeSegmentScript1Partial = '$RS("',
-  completeSegmentScript2 = '","',
-  completeSegmentScriptEnd = '")\x3c/script>',
-  completeBoundaryScriptFunctionOnly =
-    '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};',
-  completeBoundaryScript1Partial = '$RC("',
-  completeBoundaryWithStylesScript1FullPartial =
-    '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("',
-  completeBoundaryWithStylesScript1Partial = '$RR("',
-  completeBoundaryScript2 = '","',
-  completeBoundaryScript3a = '",',
-  completeBoundaryScript3b = '"',
-  completeBoundaryScriptEnd = ")\x3c/script>",
-  clientRenderScriptFunctionOnly =
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};',
-  clientRenderScript1Full =
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("',
-  clientRenderScript1Partial = '$RX("',
-  clientRenderScript1A = '"',
-  clientRenderErrorScriptArgInterstitial = ",",
-  clientRenderScriptEnd = ")\x3c/script>",
-  regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var lateStyleTagResourceOpen1 = ' media="not all" data-precedence="',
-  lateStyleTagResourceOpen2 = '" data-href="',
-  lateStyleTagResourceOpen3 = '">',
-  lateStyleTagTemplateClose = "</style>",
-  currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  0 < rules.length &&
-    0 === hrefs.length &&
-    console.error(
-      "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-    );
-  var i = 0;
-  if (hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, lateStyleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-      writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-    writeChunk(this, hrefs[i]);
-    writeChunk(this, lateStyleTagResourceOpen3);
-    for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-    destinationHasCapacity = !!this.write(lateStyleTagTemplateClose);
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return stylesheet.state !== PREAMBLE
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    writeChunk(this, stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = PREAMBLE;
-}
-var styleTagResourceOpen1 = ' data-precedence="',
-  styleTagResourceOpen2 = '" data-href="',
-  spaceSeparator = " ",
-  styleTagResourceOpen3 = '">',
-  styleTagResourceClose = "</style>";
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, styleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        writeChunk(this, styleTagResourceOpen2);
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator);
-      writeChunk(this, hrefs[styleQueue]);
-    }
-    writeChunk(this, styleTagResourceOpen3);
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      writeChunk(this, rules[styleQueue]);
-    writeChunk(this, styleTagResourceClose);
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (stylesheet.state === PENDING$1) {
-    stylesheet.state = PRELOADED;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-var completedShellIdAttributeStart = ' id="';
-function pushCompletedShellIdAttribute(target, resumableState) {
-  (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-    ((resumableState.instructions |= SentCompletedShellId),
-    target.push(
-      completedShellIdAttributeStart,
-      escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-      attributeEnd
-    ));
-}
-var arrayFirstOpenBracket = "[",
-  arraySubsequentOpenBracket = ",[",
-  arrayInterstitial = ",",
-  arrayCloseBracket = "]";
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  writeChunk(destination, arrayFirstOpenBracket);
-  var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (resource.state !== PREAMBLE)
-      if (resource.state === LATE)
-        writeChunk(destination, nextArrayOpenBrackChunk),
-          (resource = resource.props.href),
-          checkAttributeStringCoercion(resource, "href"),
-          writeChunk(
-            destination,
-            escapeJSObjectForInstructionScripts("" + resource)
-          ),
-          writeChunk(destination, arrayCloseBracket),
-          (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-      else {
-        writeChunk(destination, nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(coercedHref)
-        );
-        checkAttributeStringCoercion(precedence, "precedence");
-        precedence = "" + precedence;
-        writeChunk(destination, arrayInterstitial);
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(precedence)
-        );
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        writeChunk(destination, arrayCloseBracket);
-        nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-        resource.state = LATE;
-      }
-  });
-  writeChunk(destination, arrayCloseBracket);
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      checkAttributeStringCoercion(value, attributeName);
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      checkAttributeStringCoercion(value, attributeName);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      checkAttributeStringCoercion(value, attributeName);
-      name = "" + value;
-  }
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(destination, escapeJSObjectForInstructionScripts(attributeName));
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(destination, escapeJSObjectForInstructionScripts(name));
-}
-var PENDING$1 = 0,
-  PRELOADED = 1,
-  PREAMBLE = 2,
-  LATE = 3;
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = EXISTS;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              escapeHrefForLinkHeaderURLContext(href) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = EXISTS),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = EXISTS;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" + escapeHrefForLinkHeaderURLContext(href) + ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin =
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                crossOrigin,
-                "crossOrigin"
-              );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = EXISTS),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      resourceState !== EXISTS &&
-        ((resumableState.styleResources[href] = EXISTS),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: escapeTextForBrowser(precedence),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: PENDING$1,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = PRELOADED)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      resourceState !== EXISTS &&
-        ((resumableState.scriptResources[src] = EXISTS),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      resourceState !== EXISTS &&
-        ((resumableState.moduleScriptResources[src] = EXISTS),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function preloadBootstrapScriptOrModule(
-  resumableState,
-  renderState,
-  href,
-  props
-) {
-  (resumableState.scriptResources.hasOwnProperty(href) ||
-    resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-    console.error(
-      'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-      href
-    );
-  resumableState.scriptResources[href] = EXISTS;
-  resumableState.moduleScriptResources[href] = EXISTS;
-  resumableState = [];
-  pushLinkImpl(resumableState, props);
-  renderState.bootstrapScripts.add(resumableState);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = escapeHrefForLinkHeaderURLContext(href);
-  as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          escapeStringForLinkHeaderQuotedParamValueContext(href, paramName) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContext(hrefInput) {
-  checkAttributeStringCoercion(hrefInput, "href");
-  return ("" + hrefInput).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-}
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-  willCoercionThrow(value) &&
-    (console.error(
-      "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-      name,
-      typeName(value)
-    ),
-    testStringCoercion(value));
-  return ("" + value).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-}
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function hasSuspenseyContent(hoistableState) {
-  return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
-}
-var bind = Function.prototype.bind,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (
-      ("number" === typeof type.tag &&
-        console.error(
-          "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-        ),
-      type.$$typeof)
-    ) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {};
-Object.freeze(emptyContextObject);
-var rendererSigil;
-rendererSigil = {};
-var currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-    } else {
-      if (null === parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var didWarnAboutNoopUpdateForComponent = {},
-  didWarnAboutDeprecatedWillMount = {},
-  didWarnAboutUninitializedState,
-  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate,
-  didWarnAboutLegacyLifecyclesAndDerivedState,
-  didWarnAboutUndefinedDerivedState,
-  didWarnAboutDirectlyAssigningPropsToState,
-  didWarnAboutContextTypes$1,
-  didWarnAboutChildContextTypes,
-  didWarnAboutInvalidateContextType,
-  didWarnOnInvalidCallback;
-didWarnAboutUninitializedState = new Set();
-didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-didWarnAboutDirectlyAssigningPropsToState = new Set();
-didWarnAboutUndefinedDerivedState = new Set();
-didWarnAboutContextTypes$1 = new Set();
-didWarnAboutChildContextTypes = new Set();
-didWarnAboutInvalidateContextType = new Set();
-didWarnOnInvalidCallback = new Set();
-function warnOnInvalidCallback(callback) {
-  if (null !== callback && "function" !== typeof callback) {
-    var key = String(callback);
-    didWarnOnInvalidCallback.has(key) ||
-      (didWarnOnInvalidCallback.add(key),
-      console.error(
-        "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-        callback
-      ));
-  }
-}
-function warnNoop(publicInstance, callerName) {
-  publicInstance =
-    ((publicInstance = publicInstance.constructor) &&
-      getComponentNameFromType(publicInstance)) ||
-    "ReactClass";
-  var warningKey = publicInstance + "." + callerName;
-  didWarnAboutNoopUpdateForComponent[warningKey] ||
-    (console.error(
-      "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-      callerName,
-      publicInstance
-    ),
-    (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload, callback) {
-      var internals = inst._reactInternals;
-      null === internals.queue
-        ? warnNoop(inst, "setState")
-        : (internals.queue.push(payload),
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback));
-    },
-    enqueueReplaceState: function (inst, payload, callback) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-      void 0 !== callback &&
-        null !== callback &&
-        warnOnInvalidCallback(callback);
-    },
-    enqueueForceUpdate: function (inst, callback) {
-      null === inst._reactInternals.queue
-        ? warnNoop(inst, "forceUpdate")
-        : void 0 !== callback &&
-          null !== callback &&
-          warnOnInvalidCallback(callback);
-    }
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(
-  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-);
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable)
-    throw Error(
-      "Expected a suspended thenable. This is a bug in React. Please file an issue."
-    );
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0,
-  isInHookUserCodeInDev = !1,
-  currentHookNameInDev;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(
-      "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-    );
-  isInHookUserCodeInDev &&
-    console.error(
-      "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-    );
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders)
-    throw Error("Rendered more hooks than during the previous render");
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  isInHookUserCodeInDev = !1;
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function readContext(context) {
-  isInHookUserCodeInDev &&
-    console.error(
-      "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-    );
-  return context._currentValue;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    init = workInProgressHook.queue;
-    initialArg = init.dispatch;
-    if (null !== renderPhaseUpdates) {
-      var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-      if (void 0 !== firstRenderPhaseUpdate) {
-        renderPhaseUpdates.delete(init);
-        init = workInProgressHook.memoizedState;
-        do {
-          var action = firstRenderPhaseUpdate.action;
-          isInHookUserCodeInDev = !0;
-          init = reducer(init, action);
-          isInHookUserCodeInDev = !1;
-          firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-        } while (null !== firstRenderPhaseUpdate);
-        workInProgressHook.memoizedState = init;
-        return [init, initialArg];
-      }
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  isInHookUserCodeInDev = !0;
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  isInHookUserCodeInDev = !1;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      a: {
-        var JSCompiler_inline_result = prevState[1];
-        if (null === JSCompiler_inline_result)
-          console.error(
-            "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-            currentHookNameInDev
-          ),
-            (JSCompiler_inline_result = !1);
-        else {
-          deps.length !== JSCompiler_inline_result.length &&
-            console.error(
-              "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-              currentHookNameInDev,
-              "[" + deps.join(", ") + "]",
-              "[" + JSCompiler_inline_result.join(", ") + "]"
-            );
-          for (
-            var i = 0;
-            i < JSCompiler_inline_result.length && i < deps.length;
-            i++
-          )
-            if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-              JSCompiler_inline_result = !1;
-              break a;
-            }
-          JSCompiler_inline_result = !0;
-        }
-      }
-      if (JSCompiler_inline_result) return prevState[0];
-    }
-  }
-  isInHookUserCodeInDev = !0;
-  nextCreate = nextCreate();
-  isInHookUserCodeInDev = !1;
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders)
-    throw Error(
-      "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-    );
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(
-    "A function wrapped in useEffectEvent can't be called during rendering."
-  );
-}
-function unsupportedStartTransition() {
-  throw Error("startTransition cannot be called during server rendering.");
-}
-function unsupportedSetOptimisticState() {
-  throw Error("Cannot update optimistic state while rendering.");
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              Bun.hash(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex])
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          (checkAttributeStringCoercion(permalink, "target"),
-          (permalink += ""),
-          (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  Bun.hash(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ])
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var _boundAction = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      _boundAction(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error("Cache cannot be refreshed during server rendering.");
-}
-var HooksDispatcher = {
-    readContext: readContext,
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    },
-    useContext: function (context) {
-      currentHookNameInDev = "useContext";
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          Object.seal(initialValue),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      currentHookNameInDev = "useState";
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var treeId = currentlyRenderingTask.treeContext;
-      var overflow = treeId.overflow;
-      treeId = treeId.id;
-      treeId =
-        (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component."
-        );
-      overflow = localIdCounter++;
-      treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-      0 < overflow && (treeId += "H" + overflow.toString(32));
-      return treeId + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(
-          "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-        );
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return NotPending;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  currentTaskInDEV = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error("Not implemented.");
-    },
-    cacheSignal: function () {
-      throw Error("Not implemented.");
-    },
-    getOwner: function () {
-      return null === currentTaskInDEV ? null : currentTaskInDEV.componentStack;
-    }
-  },
-  disabledDepth = 0,
-  prevLog,
-  prevInfo,
-  prevWarn,
-  prevError,
-  prevGroup,
-  prevGroupCollapsed,
-  prevGroupEnd;
-function disabledLog() {}
-disabledLog.__reactDisabledLog = !0;
-function disableLogs() {
-  if (0 === disabledDepth) {
-    prevLog = console.log;
-    prevInfo = console.info;
-    prevWarn = console.warn;
-    prevError = console.error;
-    prevGroup = console.group;
-    prevGroupCollapsed = console.groupCollapsed;
-    prevGroupEnd = console.groupEnd;
-    var props = {
-      configurable: !0,
-      enumerable: !0,
-      value: disabledLog,
-      writable: !0
-    };
-    Object.defineProperties(console, {
-      info: props,
-      log: props,
-      warn: props,
-      error: props,
-      group: props,
-      groupCollapsed: props,
-      groupEnd: props
-    });
-  }
-  disabledDepth++;
-}
-function reenableLogs() {
-  disabledDepth--;
-  if (0 === disabledDepth) {
-    var props = { configurable: !0, enumerable: !0, writable: !0 };
-    Object.defineProperties(console, {
-      log: assign({}, props, { value: prevLog }),
-      info: assign({}, props, { value: prevInfo }),
-      warn: assign({}, props, { value: prevWarn }),
-      error: assign({}, props, { value: prevError }),
-      group: assign({}, props, { value: prevGroup }),
-      groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-      groupEnd: assign({}, props, { value: prevGroupEnd })
-    });
-  }
-  0 > disabledDepth &&
-    console.error(
-      "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-    );
-}
-function formatOwnerStack(error) {
-  var prevPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  error = error.stack;
-  Error.prepareStackTrace = prevPrepareStackTrace;
-  error.startsWith("Error: react-stack-top-frame\n") &&
-    (error = error.slice(29));
-  prevPrepareStackTrace = error.indexOf("\n");
-  -1 !== prevPrepareStackTrace &&
-    (error = error.slice(prevPrepareStackTrace + 1));
-  prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-  -1 !== prevPrepareStackTrace &&
-    (prevPrepareStackTrace = error.lastIndexOf("\n", prevPrepareStackTrace));
-  if (-1 !== prevPrepareStackTrace)
-    error = error.slice(0, prevPrepareStackTrace);
-  else return "";
-  return error;
-}
-var prefix, suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1,
-  componentFrameCache;
-componentFrameCache = new ("function" === typeof WeakMap ? WeakMap : Map)();
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  var frame = componentFrameCache.get(fn);
-  if (void 0 !== frame) return frame;
-  reentry = !0;
-  frame = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  var previousDispatcher = null;
-  previousDispatcher = ReactSharedInternals.H;
-  ReactSharedInternals.H = null;
-  disableLogs();
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$0) {
-                control = x$0;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$1) {
-              control = x$1;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        _RunInRootFrame$Deter = namePropDescriptor = 0;
-        namePropDescriptor < sampleLines.length &&
-        !sampleLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      for (
-        ;
-        _RunInRootFrame$Deter < controlLines.length &&
-        !controlLines[_RunInRootFrame$Deter].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        _RunInRootFrame$Deter++;
-      if (
-        namePropDescriptor === sampleLines.length ||
-        _RunInRootFrame$Deter === controlLines.length
-      )
-        for (
-          namePropDescriptor = sampleLines.length - 1,
-            _RunInRootFrame$Deter = controlLines.length - 1;
-          1 <= namePropDescriptor &&
-          0 <= _RunInRootFrame$Deter &&
-          sampleLines[namePropDescriptor] !==
-            controlLines[_RunInRootFrame$Deter];
-
-        )
-          _RunInRootFrame$Deter--;
-      for (
-        ;
-        1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-        namePropDescriptor--, _RunInRootFrame$Deter--
-      )
-        if (
-          sampleLines[namePropDescriptor] !==
-          controlLines[_RunInRootFrame$Deter]
-        ) {
-          if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-            do
-              if (
-                (namePropDescriptor--,
-                _RunInRootFrame$Deter--,
-                0 > _RunInRootFrame$Deter ||
-                  sampleLines[namePropDescriptor] !==
-                    controlLines[_RunInRootFrame$Deter])
-              ) {
-                var _frame =
-                  "\n" +
-                  sampleLines[namePropDescriptor].replace(" at new ", " at ");
-                fn.displayName &&
-                  _frame.includes("<anonymous>") &&
-                  (_frame = _frame.replace("<anonymous>", fn.displayName));
-                "function" === typeof fn && componentFrameCache.set(fn, _frame);
-                return _frame;
-              }
-            while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1),
-      (ReactSharedInternals.H = previousDispatcher),
-      reenableLogs(),
-      (Error.prepareStackTrace = frame);
-  }
-  sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(sampleLines)
-    : "";
-  "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-  return sampleLines;
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        type = type.debugLocation;
-        if (null != type) {
-          type = formatOwnerStack(type);
-          var idx = type.lastIndexOf("\n");
-          type = -1 === idx ? type : type.slice(idx + 1);
-          if (-1 !== type.indexOf(payload)) {
-            payload = "\n" + type;
-            break a;
-          }
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-var callComponent = {
-    react_stack_bottom_frame: function (Component, props, secondArg) {
-      return Component(props, secondArg);
-    }
-  },
-  callComponentInDEV =
-    callComponent.react_stack_bottom_frame.bind(callComponent),
-  callRender = {
-    react_stack_bottom_frame: function (instance) {
-      return instance.render();
-    }
-  },
-  callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-  callLazyInit = {
-    react_stack_bottom_frame: function (lazy) {
-      var init = lazy._init;
-      return init(lazy._payload);
-    }
-  },
-  callLazyInitInDEV = callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-  lastResetTime = 0,
-  getCurrentTime;
-if ("object" === typeof performance && "function" === typeof performance.now) {
-  var localPerformance = performance;
-  getCurrentTime = function () {
-    return localPerformance.now();
-  };
-} else {
-  var localDate = Date;
-  getCurrentTime = function () {
-    return localDate.now();
-  };
-}
-var CLIENT_RENDERED = 4,
-  PENDING = 0,
-  COMPLETED = 1,
-  FLUSHED = 2,
-  ABORTED = 3,
-  ERRORED = 4,
-  POSTPONED = 5,
-  CLOSED = 14;
-function isEligibleForOutlining(request, boundary) {
-  return (
-    (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
-    null === boundary.contentPreamble
-  );
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "%c%s%c " + error[0],
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        )
-      : error.splice(
-          0,
-          0,
-          "%c%s%c",
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        );
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-  this.didWarnForKey = null;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var now = getCurrentTime();
-  1e3 < now - lastResetTime &&
-    ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-    (lastResetTime = now));
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null,
-    emptyContextObject,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-var currentRequest = null;
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    null !== request.trackedPostpones || 10 === request.status
-      ? scheduleMicrotask(function () {
-          return performWork(request);
-        })
-      : setTimeout(function () {
-          return performWork(request);
-        }, 0));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: PENDING,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null,
-    errorMessage: null,
-    errorStack: null,
-    errorComponentStack: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack,
-  legacyContext,
-  debugTask
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  task.debugTask = debugTask;
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack,
-  legacyContext,
-  debugTask
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  task.debugTask = debugTask;
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: PENDING,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function getCurrentStackInDEV() {
-  if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-    return "";
-  var componentStack = currentTaskInDEV.componentStack;
-  try {
-    var info = "";
-    if ("string" === typeof componentStack.type)
-      info += describeBuiltInComponentFrame(componentStack.type);
-    else if ("function" === typeof componentStack.type) {
-      if (!componentStack.owner) {
-        var JSCompiler_temp_const = info,
-          fn = componentStack.type,
-          name = fn ? fn.displayName || fn.name : "";
-        var JSCompiler_inline_result = name
-          ? describeBuiltInComponentFrame(name)
-          : "";
-        info = JSCompiler_temp_const + JSCompiler_inline_result;
-      }
-    } else
-      componentStack.owner ||
-        (info += describeComponentStackByType(componentStack.type));
-    for (; componentStack; )
-      (JSCompiler_temp_const = null),
-        null != componentStack.debugStack
-          ? (JSCompiler_temp_const = formatOwnerStack(
-              componentStack.debugStack
-            ))
-          : ((JSCompiler_inline_result = componentStack),
-            null != JSCompiler_inline_result.stack &&
-              (JSCompiler_temp_const =
-                "string" !== typeof JSCompiler_inline_result.stack
-                  ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                      JSCompiler_inline_result.stack
-                    ))
-                  : JSCompiler_inline_result.stack)),
-        (componentStack = componentStack.owner) &&
-          JSCompiler_temp_const &&
-          (info += "\n" + JSCompiler_temp_const);
-    var JSCompiler_inline_result$jscomp$0 = info;
-  } catch (x) {
-    JSCompiler_inline_result$jscomp$0 =
-      "\nError generating stack: " + x.message + "\n" + x.stack;
-  }
-  return JSCompiler_inline_result$jscomp$0;
-}
-function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-  if (null != debugInfo)
-    for (var i = debugInfo.length - 1; 0 <= i; i--) {
-      var info = debugInfo[i];
-      if ("string" === typeof info.name) break;
-      if ("number" === typeof info.time) break;
-      if (null != info.awaited) {
-        var bestStack = null == info.debugStack ? info.awaited : info;
-        if (void 0 !== bestStack.debugStack) {
-          task.componentStack = {
-            parent: task.componentStack,
-            type: info,
-            owner: bestStack.owner,
-            stack: bestStack.debugStack
-          };
-          task.debugTask = bestStack.debugTask;
-          break;
-        }
-      }
-    }
-}
-function pushServerComponentStack(task, debugInfo) {
-  if (null != debugInfo)
-    for (var i = 0; i < debugInfo.length; i++) {
-      var componentInfo = debugInfo[i];
-      "string" === typeof componentInfo.name &&
-        void 0 !== componentInfo.debugStack &&
-        ((task.componentStack = {
-          parent: task.componentStack,
-          type: componentInfo,
-          owner: componentInfo.owner,
-          stack: componentInfo.debugStack
-        }),
-        (task.debugTask = componentInfo.debugTask));
-    }
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        var type = node.type,
-          owner = node._owner,
-          stack = node._debugStack;
-        pushServerComponentStack(task, node._debugInfo);
-        task.debugTask = node._debugTask;
-        task.componentStack = {
-          parent: task.componentStack,
-          type: type,
-          owner: owner,
-          stack: stack
-        };
-        break;
-      case REACT_LAZY_TYPE:
-        pushServerComponentStack(task, node._debugInfo);
-        break;
-      default:
-        "function" === typeof node.then &&
-          pushServerComponentStack(task, node._debugInfo);
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : {
-        parent: componentStack.parent,
-        type: "Suspense Fallback",
-        owner: componentStack.owner,
-        stack: componentStack.stack
-      };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var stack = info;
-        } catch (x) {
-          stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", { value: stack });
-        return stack;
-      }
-    });
-  return errorInfo;
-}
-function encodeErrorForBoundary(
-  boundary,
-  digest,
-  error,
-  thrownInfo,
-  wasAborted
-) {
-  boundary.errorDigest = digest;
-  error instanceof Error
-    ? ((digest = String(error.message)), (error = String(error.stack)))
-    : ((digest =
-        "object" === typeof error && null !== error
-          ? describeObjectForErrorMessage(error)
-          : String(error)),
-      (error = null));
-  wasAborted = wasAborted
-    ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-    : "Switched to client rendering because the server rendering errored:\n\n";
-  boundary.errorMessage = wasAborted + digest;
-  boundary.errorStack = null !== error ? wasAborted + error : null;
-  boundary.errorComponentStack = thrownInfo.componentStack;
-}
-function logRecoverableError(request, error, errorInfo, debugTask) {
-  request = request.onError;
-  error = debugTask
-    ? debugTask.run(request.bind(null, error, errorInfo))
-    : request(error, errorInfo);
-  if (null != error && "string" !== typeof error)
-    console.error(
-      'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-      typeof error
-    );
-  else return error;
-}
-function fatalError(request, error, errorInfo, debugTask) {
-  errorInfo = request.onShellError;
-  var onFatalError = request.onFatalError;
-  debugTask
-    ? (debugTask.run(errorInfo.bind(null, error)),
-      debugTask.run(onFatalError.bind(null, error)))
-    : (errorInfo(error), onFatalError(error));
-  null !== request.destination
-    ? ((request.status = CLOSED), closeWithError(request.destination, error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row,
-    previousComponentStack = task.componentStack;
-  var previousDebugTask = task.debugTask;
-  pushServerComponentStack(task, task.node.props.children._debugInfo);
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          warnForMissingKey(request, task, i),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        warnForMissingKey(request, task, resumeSlots),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      warnForMissingKey(request, task, node);
-      try {
-        renderNode(request, task, node, i),
-          pushSegmentFinale(
-            resumeSegmentID.chunks,
-            request.renderState,
-            resumeSegmentID.lastPushedText,
-            resumeSegmentID.textEmbedded
-          ),
-          (resumeSegmentID.status = COMPLETED),
-          finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? ABORTED : ERRORED),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-  task.componentStack = previousComponentStack;
-  task.debugTask = previousDebugTask;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  isInHookUserCodeInDev = !1;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (
-    request = callComponentInDEV(Component, props, secondArg);
-    didScheduleRenderPhaseUpdate;
-
-  )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-var didWarnAboutBadClass = {},
-  didWarnAboutContextTypes = {},
-  didWarnAboutContextTypeOnFunctionComponent = {},
-  didWarnAboutGetDerivedStateOnFunctionComponent = {},
-  didWarnAboutReassigningProps = !1,
-  didWarnAboutGenerators = !1,
-  didWarnAboutMaps = !1;
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push("\x3c!--F!--\x3e")
-          : segment.push("\x3c!--F--\x3e");
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var _propName in defaultProps)
-          void 0 === newProps[_propName] &&
-            (newProps[_propName] = defaultProps[_propName]);
-      }
-      var resolvedProps = newProps;
-      var context = emptyContextObject,
-        contextType = type.contextType;
-      if (
-        "contextType" in type &&
-        null !== contextType &&
-        (void 0 === contextType ||
-          contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-        !didWarnAboutInvalidateContextType.has(type)
-      ) {
-        didWarnAboutInvalidateContextType.add(type);
-        var addendum =
-          void 0 === contextType
-            ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-            : "object" !== typeof contextType
-              ? " However, it is set to a " + typeof contextType + "."
-              : contextType.$$typeof === REACT_CONSUMER_TYPE
-                ? " Did you accidentally pass the Context.Consumer instead?"
-                : " However, it is set to an object with keys {" +
-                  Object.keys(contextType).join(", ") +
-                  "}.";
-        console.error(
-          "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-          getComponentNameFromType(type) || "Component",
-          addendum
-        );
-      }
-      "object" === typeof contextType &&
-        null !== contextType &&
-        (context = contextType._currentValue);
-      var instance = new type(resolvedProps, context);
-      if (
-        "function" === typeof type.getDerivedStateFromProps &&
-        (null === instance.state || void 0 === instance.state)
-      ) {
-        var componentName = getComponentNameFromType(type) || "Component";
-        didWarnAboutUninitializedState.has(componentName) ||
-          (didWarnAboutUninitializedState.add(componentName),
-          console.error(
-            "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-            componentName,
-            null === instance.state ? "null" : "undefined",
-            componentName
-          ));
-      }
-      if (
-        "function" === typeof type.getDerivedStateFromProps ||
-        "function" === typeof instance.getSnapshotBeforeUpdate
-      ) {
-        var foundWillMountName = null,
-          foundWillReceivePropsName = null,
-          foundWillUpdateName = null;
-        "function" === typeof instance.componentWillMount &&
-        !0 !== instance.componentWillMount.__suppressDeprecationWarning
-          ? (foundWillMountName = "componentWillMount")
-          : "function" === typeof instance.UNSAFE_componentWillMount &&
-            (foundWillMountName = "UNSAFE_componentWillMount");
-        "function" === typeof instance.componentWillReceiveProps &&
-        !0 !== instance.componentWillReceiveProps.__suppressDeprecationWarning
-          ? (foundWillReceivePropsName = "componentWillReceiveProps")
-          : "function" === typeof instance.UNSAFE_componentWillReceiveProps &&
-            (foundWillReceivePropsName = "UNSAFE_componentWillReceiveProps");
-        "function" === typeof instance.componentWillUpdate &&
-        !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-          ? (foundWillUpdateName = "componentWillUpdate")
-          : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-            (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-        if (
-          null !== foundWillMountName ||
-          null !== foundWillReceivePropsName ||
-          null !== foundWillUpdateName
-        ) {
-          var _componentName = getComponentNameFromType(type) || "Component",
-            newApiName =
-              "function" === typeof type.getDerivedStateFromProps
-                ? "getDerivedStateFromProps()"
-                : "getSnapshotBeforeUpdate()";
-          didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-            (didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName),
-            console.error(
-              "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-              _componentName,
-              newApiName,
-              null !== foundWillMountName ? "\n  " + foundWillMountName : "",
-              null !== foundWillReceivePropsName
-                ? "\n  " + foundWillReceivePropsName
-                : "",
-              null !== foundWillUpdateName ? "\n  " + foundWillUpdateName : ""
-            ));
-        }
-      }
-      var name = getComponentNameFromType(type) || "Component";
-      instance.render ||
-        (type.prototype && "function" === typeof type.prototype.render
-          ? console.error(
-              "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-              name
-            )
-          : console.error(
-              "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-              name
-            ));
-      !instance.getInitialState ||
-        instance.getInitialState.isReactClassApproved ||
-        instance.state ||
-        console.error(
-          "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-          name
-        );
-      instance.getDefaultProps &&
-        !instance.getDefaultProps.isReactClassApproved &&
-        console.error(
-          "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-          name
-        );
-      instance.contextType &&
-        console.error(
-          "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-          name
-        );
-      type.childContextTypes &&
-        !didWarnAboutChildContextTypes.has(type) &&
-        (didWarnAboutChildContextTypes.add(type),
-        console.error(
-          "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-          name
-        ));
-      type.contextTypes &&
-        !didWarnAboutContextTypes$1.has(type) &&
-        (didWarnAboutContextTypes$1.add(type),
-        console.error(
-          "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-          name
-        ));
-      "function" === typeof instance.componentShouldUpdate &&
-        console.error(
-          "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-          name
-        );
-      type.prototype &&
-        type.prototype.isPureReactComponent &&
-        "undefined" !== typeof instance.shouldComponentUpdate &&
-        console.error(
-          "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-          getComponentNameFromType(type) || "A pure component"
-        );
-      "function" === typeof instance.componentDidUnmount &&
-        console.error(
-          "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-          name
-        );
-      "function" === typeof instance.componentDidReceiveProps &&
-        console.error(
-          "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-          name
-        );
-      "function" === typeof instance.componentWillRecieveProps &&
-        console.error(
-          "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-          name
-        );
-      "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-        console.error(
-          "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-          name
-        );
-      var hasMutatedProps = instance.props !== resolvedProps;
-      void 0 !== instance.props &&
-        hasMutatedProps &&
-        console.error(
-          "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-          name
-        );
-      instance.defaultProps &&
-        console.error(
-          "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-          name,
-          name
-        );
-      "function" !== typeof instance.getSnapshotBeforeUpdate ||
-        "function" === typeof instance.componentDidUpdate ||
-        didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-        (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-        console.error(
-          "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-          getComponentNameFromType(type)
-        ));
-      "function" === typeof instance.getDerivedStateFromProps &&
-        console.error(
-          "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-          name
-        );
-      "function" === typeof instance.getDerivedStateFromError &&
-        console.error(
-          "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-          name
-        );
-      "function" === typeof type.getSnapshotBeforeUpdate &&
-        console.error(
-          "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-          name
-        );
-      var state = instance.state;
-      state &&
-        ("object" !== typeof state || isArrayImpl(state)) &&
-        console.error("%s.state: must be set to an object or null", name);
-      "function" === typeof instance.getChildContext &&
-        "object" !== typeof type.childContextTypes &&
-        console.error(
-          "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-          name
-        );
-      var initialState = void 0 !== instance.state ? instance.state : null;
-      instance.updater = classComponentUpdater;
-      instance.props = resolvedProps;
-      instance.state = initialState;
-      var internalInstance = { queue: [], replace: !1 };
-      instance._reactInternals = internalInstance;
-      var contextType$jscomp$0 = type.contextType;
-      instance.context =
-        "object" === typeof contextType$jscomp$0 &&
-        null !== contextType$jscomp$0
-          ? contextType$jscomp$0._currentValue
-          : emptyContextObject;
-      if (instance.state === resolvedProps) {
-        var componentName$jscomp$0 =
-          getComponentNameFromType(type) || "Component";
-        didWarnAboutDirectlyAssigningPropsToState.has(componentName$jscomp$0) ||
-          (didWarnAboutDirectlyAssigningPropsToState.add(
-            componentName$jscomp$0
-          ),
-          console.error(
-            "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-            componentName$jscomp$0
-          ));
-      }
-      var getDerivedStateFromProps = type.getDerivedStateFromProps;
-      if ("function" === typeof getDerivedStateFromProps) {
-        var partialState = getDerivedStateFromProps(
-          resolvedProps,
-          initialState
-        );
-        if (void 0 === partialState) {
-          var componentName$jscomp$1 =
-            getComponentNameFromType(type) || "Component";
-          didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-            (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-            console.error(
-              "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-              componentName$jscomp$1
-            ));
-        }
-        var JSCompiler_inline_result =
-          null === partialState || void 0 === partialState
-            ? initialState
-            : assign({}, initialState, partialState);
-        instance.state = JSCompiler_inline_result;
-      }
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof instance.getSnapshotBeforeUpdate &&
-        ("function" === typeof instance.UNSAFE_componentWillMount ||
-          "function" === typeof instance.componentWillMount)
-      ) {
-        var oldState = instance.state;
-        if ("function" === typeof instance.componentWillMount) {
-          if (!0 !== instance.componentWillMount.__suppressDeprecationWarning) {
-            var componentName$jscomp$2 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-              (console.warn(
-                "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                componentName$jscomp$2
-              ),
-              (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] = !0));
-          }
-          instance.componentWillMount();
-        }
-        "function" === typeof instance.UNSAFE_componentWillMount &&
-          instance.UNSAFE_componentWillMount();
-        oldState !== instance.state &&
-          (console.error(
-            "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-            getComponentNameFromType(type) || "Component"
-          ),
-          classComponentUpdater.enqueueReplaceState(
-            instance,
-            instance.state,
-            null
-          ));
-        if (
-          null !== internalInstance.queue &&
-          0 < internalInstance.queue.length
-        ) {
-          var oldQueue = internalInstance.queue,
-            oldReplace = internalInstance.replace;
-          internalInstance.queue = null;
-          internalInstance.replace = !1;
-          if (oldReplace && 1 === oldQueue.length) instance.state = oldQueue[0];
-          else {
-            for (
-              var nextState = oldReplace ? oldQueue[0] : instance.state,
-                dontMutate = !0,
-                i = oldReplace ? 1 : 0;
-              i < oldQueue.length;
-              i++
-            ) {
-              var partial = oldQueue[i],
-                partialState$jscomp$0 =
-                  "function" === typeof partial
-                    ? partial.call(instance, nextState, resolvedProps, void 0)
-                    : partial;
-              null != partialState$jscomp$0 &&
-                (dontMutate
-                  ? ((dontMutate = !1),
-                    (nextState = assign({}, nextState, partialState$jscomp$0)))
-                  : assign(nextState, partialState$jscomp$0));
-            }
-            instance.state = nextState;
-          }
-        } else internalInstance.queue = null;
-      }
-      var nextChildren = callRenderInDEV(instance);
-      if (12 === request.status) throw null;
-      instance.props !== resolvedProps &&
-        (didWarnAboutReassigningProps ||
-          console.error(
-            "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-            getComponentNameFromType(type) || "a component"
-          ),
-        (didWarnAboutReassigningProps = !0));
-      var prevKeyPath = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, nextChildren, -1);
-      task.keyPath = prevKeyPath;
-    } else {
-      if (type.prototype && "function" === typeof type.prototype.render) {
-        var componentName$jscomp$3 =
-          getComponentNameFromType(type) || "Unknown";
-        didWarnAboutBadClass[componentName$jscomp$3] ||
-          (console.error(
-            "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-            componentName$jscomp$3,
-            componentName$jscomp$3
-          ),
-          (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-      }
-      var value = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      var hasId = 0 !== localIdCounter,
-        actionStateCount = actionStateCounter,
-        actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-      if (type.contextTypes) {
-        var _componentName$jscomp$0 =
-          getComponentNameFromType(type) || "Unknown";
-        didWarnAboutContextTypes[_componentName$jscomp$0] ||
-          ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-          console.error(
-            "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-            _componentName$jscomp$0
-          ));
-      }
-      type &&
-        type.childContextTypes &&
-        console.error(
-          "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-          type.displayName || type.name || "Component"
-        );
-      if ("function" === typeof type.getDerivedStateFromProps) {
-        var componentName$jscomp$4 =
-          getComponentNameFromType(type) || "Unknown";
-        didWarnAboutGetDerivedStateOnFunctionComponent[
-          componentName$jscomp$4
-        ] ||
-          (console.error(
-            "%s: Function components do not support getDerivedStateFromProps.",
-            componentName$jscomp$4
-          ),
-          (didWarnAboutGetDerivedStateOnFunctionComponent[
-            componentName$jscomp$4
-          ] = !0));
-      }
-      if ("object" === typeof type.contextType && null !== type.contextType) {
-        var _componentName2 = getComponentNameFromType(type) || "Unknown";
-        didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-          (console.error(
-            "%s: Function components do not support contextType.",
-            _componentName2
-          ),
-          (didWarnAboutContextTypeOnFunctionComponent[_componentName2] = !0));
-      }
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        value,
-        hasId,
-        actionStateCount,
-        actionStateMatchingIndex$jscomp$0
-      );
-    }
-  else if ("string" === typeof type) {
-    var segment = task.blockedSegment;
-    if (null === segment) {
-      var children = props.children,
-        prevContext = task.formatContext,
-        prevKeyPath$jscomp$0 = task.keyPath;
-      task.formatContext = getChildFormatContext(prevContext, type, props);
-      task.keyPath = keyPath;
-      renderNode(request, task, children, -1);
-      task.formatContext = prevContext;
-      task.keyPath = prevKeyPath$jscomp$0;
-    } else {
-      var _children = pushStartInstance(
-        segment.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        segment.lastPushedText
-      );
-      segment.lastPushedText = !1;
-      var _prevContext2 = task.formatContext,
-        _prevKeyPath3 = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        (task.formatContext = getChildFormatContext(_prevContext2, type, props))
-          .insertionMode === HTML_HEAD_MODE
-      ) {
-        var preambleSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        segment.preambleChildren.push(preambleSegment);
-        task.blockedSegment = preambleSegment;
-        try {
-          (preambleSegment.status = 6),
-            renderNode(request, task, _children, -1),
-            pushSegmentFinale(
-              preambleSegment.chunks,
-              request.renderState,
-              preambleSegment.lastPushedText,
-              preambleSegment.textEmbedded
-            ),
-            (preambleSegment.status = COMPLETED),
-            finishedSegment(request, task.blockedBoundary, preambleSegment);
-        } finally {
-          task.blockedSegment = segment;
-        }
-      } else renderNode(request, task, _children, -1);
-      task.formatContext = _prevContext2;
-      task.keyPath = _prevKeyPath3;
-      a: {
-        var target = segment.chunks,
-          resumableState = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-              resumableState.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-              resumableState.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-        }
-        target.push(endChunkForTag(type));
-      }
-      segment.lastPushedText = !1;
-    }
-  } else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        var prevKeyPath$jscomp$1 = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = prevKeyPath$jscomp$1;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        var segment$jscomp$0 = task.blockedSegment;
-        if (null === segment$jscomp$0) {
-          if ("hidden" !== props.mode) {
-            var prevKeyPath$jscomp$2 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNode(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$2;
-          }
-        } else if ("hidden" !== props.mode) {
-          segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
-          segment$jscomp$0.lastPushedText = !1;
-          var _prevKeyPath4 = task.keyPath;
-          task.keyPath = keyPath;
-          renderNode(request, task, props.children, -1);
-          task.keyPath = _prevKeyPath4;
-          segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
-          segment$jscomp$0.lastPushedText = !1;
-        }
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          var children$jscomp$0 = props.children,
-            revealOrder = props.revealOrder;
-          if (
-            "forwards" === revealOrder ||
-            "backwards" === revealOrder ||
-            "unstable_legacy-backwards" === revealOrder
-          ) {
-            if (isArrayImpl(children$jscomp$0)) {
-              renderSuspenseListRows(
-                request,
-                task,
-                keyPath,
-                children$jscomp$0,
-                revealOrder
-              );
-              break a;
-            }
-            var iteratorFn = getIteratorFn(children$jscomp$0);
-            if (iteratorFn) {
-              var iterator = iteratorFn.call(children$jscomp$0);
-              if (iterator) {
-                validateIterable(
-                  task,
-                  children$jscomp$0,
-                  -1,
-                  iterator,
-                  iteratorFn
-                );
-                var step = iterator.next();
-                if (!step.done) {
-                  var rows = [];
-                  do rows.push(step.value), (step = iterator.next());
-                  while (!step.done);
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                }
-                break a;
-              }
-            }
-          }
-          if ("together" === revealOrder) {
-            var _prevKeyPath2 = task.keyPath,
-              prevRow = task.row,
-              newRow = (task.row = createSuspenseListRow(null));
-            newRow.boundaries = [];
-            newRow.together = !0;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, children$jscomp$0, -1);
-            0 === --newRow.pendingTasks &&
-              finishSuspenseListRow(request, newRow);
-            task.keyPath = _prevKeyPath2;
-            task.row = prevRow;
-            null !== prevRow &&
-              0 < newRow.pendingTasks &&
-              (prevRow.pendingTasks++, (newRow.next = prevRow));
-          } else {
-            var prevKeyPath$jscomp$3 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, children$jscomp$0, -1);
-            task.keyPath = prevKeyPath$jscomp$3;
-          }
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error("ReactDOMServer does not yet support scope components.");
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          var _prevKeyPath = task.keyPath,
-            _prevContext = task.formatContext,
-            _prevRow = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            _prevContext
-          );
-          task.row = null;
-          var _content = props.children;
-          try {
-            renderNode(request, task, _content, -1);
-          } finally {
-            (task.keyPath = _prevKeyPath),
-              (task.formatContext = _prevContext),
-              (task.row = _prevRow);
-          }
-        } else {
-          var prevKeyPath$jscomp$4 = task.keyPath,
-            prevContext$jscomp$0 = task.formatContext,
-            prevRow$jscomp$0 = task.row,
-            parentBoundary = task.blockedBoundary,
-            parentPreamble = task.blockedPreamble,
-            parentHoistableState = task.hoistableState,
-            parentSegment = task.blockedSegment,
-            fallback = props.fallback,
-            content = props.children,
-            fallbackAbortSet = new Set();
-          var newBoundary =
-            task.formatContext.insertionMode < HTML_MODE
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            parentSegment.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          parentSegment.children.push(boundarySegment);
-          parentSegment.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            var suspenseComponentStack = task.componentStack,
-              fallbackKeyPath = [keyPath[0], "Suspense Fallback", keyPath[2]],
-              fallbackReplayNode = [
-                fallbackKeyPath[1],
-                fallbackKeyPath[2],
-                [],
-                null
-              ];
-            request.trackedPostpones.workingMap.set(
-              fallbackKeyPath,
-              fallbackReplayNode
-            );
-            newBoundary.trackedFallbackNode = fallbackReplayNode;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = fallbackKeyPath;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              prevContext$jscomp$0
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                suspenseComponentStack
-              );
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                pushSegmentFinale(
-                  boundarySegment.chunks,
-                  request.renderState,
-                  boundarySegment.lastPushedText,
-                  boundarySegment.textEmbedded
-                ),
-                (boundarySegment.status = COMPLETED),
-                finishedSegment(request, parentBoundary, boundarySegment);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status =
-                  12 === request.status ? ABORTED : ERRORED),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = parentSegment),
-                (task.blockedPreamble = parentPreamble),
-                (task.keyPath = prevKeyPath$jscomp$4),
-                (task.formatContext = prevContext$jscomp$0);
-            }
-            var suspendedPrimaryTask = createRenderTask(
-              request,
-              null,
-              content,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              suspenseComponentStack,
-              emptyContextObject,
-              task.debugTask
-            );
-            pushComponentStack(suspendedPrimaryTask);
-            request.pingedTasks.push(suspendedPrimaryTask);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              prevContext$jscomp$0
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, content, -1),
-                pushSegmentFinale(
-                  contentRootSegment.chunks,
-                  request.renderState,
-                  contentRootSegment.lastPushedText,
-                  contentRootSegment.textEmbedded
-                ),
-                (contentRootSegment.status = COMPLETED),
-                finishedSegment(request, newBoundary, contentRootSegment),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks &&
-                  newBoundary.status === PENDING)
-              ) {
-                if (
-                  ((newBoundary.status = COMPLETED),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow$jscomp$0 &&
-                    0 === --prevRow$jscomp$0.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow$jscomp$0);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow$jscomp$0 &&
-                  prevRow$jscomp$0.together &&
-                  tryToResolveTogetherRow(request, prevRow$jscomp$0);
-            } catch (thrownValue$2) {
-              newBoundary.status = CLIENT_RENDERED;
-              if (12 === request.status) {
-                contentRootSegment.status = ABORTED;
-                var error = request.fatalError;
-              } else
-                (contentRootSegment.status = ERRORED), (error = thrownValue$2);
-              var thrownInfo = getThrownInfo(task.componentStack);
-              var errorDigest = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              encodeErrorForBoundary(
-                newBoundary,
-                errorDigest,
-                error,
-                thrownInfo,
-                !1
-              );
-              untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = parentBoundary),
-                (task.blockedPreamble = parentPreamble),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = parentSegment),
-                (task.keyPath = prevKeyPath$jscomp$4),
-                (task.formatContext = prevContext$jscomp$0),
-                (task.row = prevRow$jscomp$0);
-            }
-            var suspendedFallbackTask = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              parentBoundary,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              ),
-              emptyContextObject,
-              task.debugTask
-            );
-            pushComponentStack(suspendedFallbackTask);
-            request.pingedTasks.push(suspendedFallbackTask);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props) {
-            var propsWithoutRef = {};
-            for (var key in props)
-              "ref" !== key && (propsWithoutRef[key] = props[key]);
-          } else propsWithoutRef = props;
-          var children$jscomp$1 = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            propsWithoutRef,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            children$jscomp$1,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          var value$jscomp$0 = props.value,
-            children$jscomp$2 = props.children;
-          var prevSnapshot = task.context;
-          var prevKeyPath$jscomp$5 = task.keyPath;
-          var prevValue = type._currentValue;
-          type._currentValue = value$jscomp$0;
-          void 0 !== type._currentRenderer &&
-            null !== type._currentRenderer &&
-            type._currentRenderer !== rendererSigil &&
-            console.error(
-              "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-            );
-          type._currentRenderer = rendererSigil;
-          var prevNode = currentActiveSnapshot,
-            newNode = {
-              parent: prevNode,
-              depth: null === prevNode ? 0 : prevNode.depth + 1,
-              context: type,
-              parentValue: prevValue,
-              value: value$jscomp$0
-            };
-          currentActiveSnapshot = newNode;
-          task.context = newNode;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, children$jscomp$2, -1);
-          var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-          if (null === prevSnapshot$jscomp$0)
-            throw Error(
-              "Tried to pop a Context at the root of the app. This is a bug in React."
-            );
-          prevSnapshot$jscomp$0.context !== type &&
-            console.error(
-              "The parent context is not the expected context. This is probably a bug in React."
-            );
-          prevSnapshot$jscomp$0.context._currentValue =
-            prevSnapshot$jscomp$0.parentValue;
-          void 0 !== type._currentRenderer &&
-            null !== type._currentRenderer &&
-            type._currentRenderer !== rendererSigil &&
-            console.error(
-              "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-            );
-          type._currentRenderer = rendererSigil;
-          var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-            prevSnapshot$jscomp$0.parent);
-          task.context = JSCompiler_inline_result$jscomp$0;
-          task.keyPath = prevKeyPath$jscomp$5;
-          prevSnapshot !== task.context &&
-            console.error(
-              "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-            );
-          return;
-        case REACT_CONSUMER_TYPE:
-          var context$jscomp$0 = type._context,
-            render = props.children;
-          "function" !== typeof render &&
-            console.error(
-              "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-            );
-          var newChildren = render(context$jscomp$0._currentValue),
-            prevKeyPath$jscomp$6 = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, newChildren, -1);
-          task.keyPath = prevKeyPath$jscomp$6;
-          return;
-        case REACT_LAZY_TYPE:
-          var Component = callLazyInitInDEV(type);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, Component, props, ref);
-          return;
-      }
-    var info = "";
-    if (
-      void 0 === type ||
-      ("object" === typeof type &&
-        null !== type &&
-        0 === Object.keys(type).length)
-    )
-      info +=
-        " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-    throw Error(
-      "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-        ((null == type ? type : typeof type) + "." + info)
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = COMPLETED),
-      finishedSegment(request, blockedBoundary, resumedSegment),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function replayElement(
-  request,
-  task,
-  keyPath,
-  name,
-  keyOrIndex,
-  childIndex,
-  type,
-  props,
-  ref,
-  replay
-) {
-  childIndex = replay.nodes;
-  for (var i = 0; i < childIndex.length; i++) {
-    var node = childIndex[i];
-    if (keyOrIndex === node[1]) {
-      if (4 === node.length) {
-        if (null !== name && name !== node[0])
-          throw Error(
-            "Expected the resume to render <" +
-              node[0] +
-              "> in this slot but instead it rendered <" +
-              name +
-              ">. The tree doesn't match so React will fallback to client rendering."
-          );
-        var childNodes = node[2];
-        name = node[3];
-        keyOrIndex = task.node;
-        task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-        try {
-          renderElement(request, task, keyPath, type, props, ref);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw (
-              (task.node === keyOrIndex
-                ? (task.replay = replay)
-                : childIndex.splice(i, 1),
-              x)
-            );
-          task.replay.pendingTasks--;
-          type = getThrownInfo(task.componentStack);
-          props = request;
-          request = task.blockedBoundary;
-          keyPath = x;
-          ref = name;
-          name = logRecoverableError(props, keyPath, type, task.debugTask);
-          abortRemainingReplayNodes(
-            props,
-            request,
-            childNodes,
-            ref,
-            keyPath,
-            name,
-            type,
-            !1
-          );
-        }
-        task.replay = replay;
-      } else {
-        if (type !== REACT_SUSPENSE_TYPE)
-          throw Error(
-            "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-              (getComponentNameFromType(type) || "Unknown") +
-              ">. The tree doesn't match so React will fallback to client rendering."
-          );
-        a: {
-          replay = void 0;
-          name = node[5];
-          type = node[2];
-          ref = node[3];
-          keyOrIndex = null === node[4] ? [] : node[4][2];
-          node = null === node[4] ? null : node[4][3];
-          var prevKeyPath = task.keyPath,
-            prevContext = task.formatContext,
-            prevRow = task.row,
-            previousReplaySet = task.replay,
-            parentBoundary = task.blockedBoundary,
-            parentHoistableState = task.hoistableState,
-            content = props.children,
-            fallback = props.fallback,
-            fallbackAbortSet = new Set();
-          props =
-            task.formatContext.insertionMode < HTML_MODE
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          props.parentFlushed = !0;
-          props.rootSegmentID = name;
-          task.blockedBoundary = props;
-          task.hoistableState = props.contentState;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            prevContext
-          );
-          task.row = null;
-          task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-          try {
-            renderNode(request, task, content, -1);
-            if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-              throw Error(
-                "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-              );
-            task.replay.pendingTasks--;
-            if (0 === props.pendingTasks && props.status === PENDING) {
-              props.status = COMPLETED;
-              request.completedBoundaries.push(props);
-              break a;
-            }
-          } catch (error) {
-            (props.status = CLIENT_RENDERED),
-              (childNodes = getThrownInfo(task.componentStack)),
-              (replay = logRecoverableError(
-                request,
-                error,
-                childNodes,
-                task.debugTask
-              )),
-              encodeErrorForBoundary(props, replay, error, childNodes, !1),
-              task.replay.pendingTasks--,
-              request.clientRenderedBoundaries.push(props);
-          } finally {
-            (task.blockedBoundary = parentBoundary),
-              (task.hoistableState = parentHoistableState),
-              (task.replay = previousReplaySet),
-              (task.keyPath = prevKeyPath),
-              (task.formatContext = prevContext),
-              (task.row = prevRow);
-          }
-          props = createReplayTask(
-            request,
-            null,
-            { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-            fallback,
-            -1,
-            parentBoundary,
-            props.fallbackState,
-            fallbackAbortSet,
-            [keyPath[0], "Suspense Fallback", keyPath[2]],
-            getSuspenseFallbackFormatContext(
-              request.resumableState,
-              task.formatContext
-            ),
-            task.context,
-            task.treeContext,
-            task.row,
-            replaceSuspenseComponentStackWithSuspenseFallbackStack(
-              task.componentStack
-            ),
-            emptyContextObject,
-            task.debugTask
-          );
-          pushComponentStack(props);
-          request.pingedTasks.push(props);
-        }
-      }
-      childIndex.splice(i, 1);
-      break;
-    }
-  }
-}
-function validateIterable(task, iterable, childIndex, iterator, iteratorFn) {
-  if (iterator === iterable) {
-    if (
-      -1 !== childIndex ||
-      null === task.componentStack ||
-      "function" !== typeof task.componentStack.type ||
-      "[object GeneratorFunction]" !==
-        Object.prototype.toString.call(task.componentStack.type) ||
-      "[object Generator]" !== Object.prototype.toString.call(iterator)
-    )
-      didWarnAboutGenerators ||
-        console.error(
-          "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-        ),
-        (didWarnAboutGenerators = !0);
-  } else
-    iterable.entries !== iteratorFn ||
-      didWarnAboutMaps ||
-      (console.error(
-        "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-      ),
-      (didWarnAboutMaps = !0));
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      (childIndex = task.debugTask),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node),
-      (task.debugTask = childIndex));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key;
-          node = node.props;
-          var refProp = node.ref;
-          refProp = void 0 !== refProp ? refProp : null;
-          var debugTask = task.debugTask,
-            name = getComponentNameFromType(type);
-          key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          var keyPath = [task.keyPath, name, key];
-          null !== task.replay
-            ? debugTask
-              ? debugTask.run(
-                  replayElement.bind(
-                    null,
-                    request,
-                    task,
-                    keyPath,
-                    name,
-                    key,
-                    childIndex,
-                    type,
-                    node,
-                    refProp,
-                    task.replay
-                  )
-                )
-              : replayElement(
-                  request,
-                  task,
-                  keyPath,
-                  name,
-                  key,
-                  childIndex,
-                  type,
-                  node,
-                  refProp,
-                  task.replay
-                )
-            : debugTask
-              ? debugTask.run(
-                  renderElement.bind(
-                    null,
-                    request,
-                    task,
-                    keyPath,
-                    type,
-                    node,
-                    refProp
-                  )
-                )
-              : renderElement(request, task, keyPath, type, node, refProp);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(
-            "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-          );
-        case REACT_LAZY_TYPE:
-          type = callLazyInitInDEV(node);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, type, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((key = getIteratorFn(node)))
-        if ((type = key.call(node))) {
-          validateIterable(task, node, childIndex, type, key);
-          node = type.next();
-          if (!node.done) {
-            key = [];
-            do key.push(node.value), (node = type.next());
-            while (!node.done);
-            renderChildrenArray(request, task, key, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue,
-          childIndex
-        );
-      request = Object.prototype.toString.call(node);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === request
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : request) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    "string" === typeof node
-      ? ((task = task.blockedSegment),
-        null !== task &&
-          (task.lastPushedText = pushTextInstance(
-            task.chunks,
-            node,
-            request.renderState,
-            task.lastPushedText
-          )))
-      : "number" === typeof node || "bigint" === typeof node
-        ? ((task = task.blockedSegment),
-          null !== task &&
-            (task.lastPushedText = pushTextInstance(
-              task.chunks,
-              "" + node,
-              request.renderState,
-              task.lastPushedText
-            )))
-        : ("function" === typeof node &&
-            ((request = node.displayName || node.name || "Component"),
-            console.error(
-              "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-              request,
-              request
-            )),
-          "symbol" === typeof node &&
-            console.error(
-              "Symbols are not valid as a React child.\n  %s",
-              String(node)
-            ));
-  }
-}
-function warnForMissingKey(request, task, child) {
-  if (
-    null !== child &&
-    "object" === typeof child &&
-    (child.$$typeof === REACT_ELEMENT_TYPE ||
-      child.$$typeof === REACT_PORTAL_TYPE) &&
-    child._store &&
-    ((!child._store.validated && null == child.key) ||
-      2 === child._store.validated)
-  ) {
-    if ("object" !== typeof child._store)
-      throw Error(
-        "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-      );
-    child._store.validated = 1;
-    var didWarnForKey = request.didWarnForKey;
-    null == didWarnForKey &&
-      (didWarnForKey = request.didWarnForKey = new WeakSet());
-    request = task.componentStack;
-    if (null !== request && !didWarnForKey.has(request)) {
-      didWarnForKey.add(request);
-      var componentName = getComponentNameFromType(child.type);
-      didWarnForKey = child._owner;
-      var parentOwner = request.owner;
-      request = "";
-      if (parentOwner && "undefined" !== typeof parentOwner.type) {
-        var name = getComponentNameFromType(parentOwner.type);
-        name && (request = "\n\nCheck the render method of `" + name + "`.");
-      }
-      request ||
-        (componentName &&
-          (request =
-            "\n\nCheck the top-level render call using <" +
-            componentName +
-            ">."));
-      componentName = "";
-      null != didWarnForKey &&
-        parentOwner !== didWarnForKey &&
-        ((parentOwner = null),
-        "undefined" !== typeof didWarnForKey.type
-          ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-          : "string" === typeof didWarnForKey.name &&
-            (parentOwner = didWarnForKey.name),
-        parentOwner &&
-          (componentName = " It was passed a child from " + parentOwner + "."));
-      didWarnForKey = task.componentStack;
-      task.componentStack = {
-        parent: task.componentStack,
-        type: child.type,
-        owner: child._owner,
-        stack: child._debugStack
-      };
-      console.error(
-        'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-        request,
-        componentName
-      );
-      task.componentStack = didWarnForKey;
-    }
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath,
-    previousComponentStack = task.componentStack;
-  var previousDebugTask = task.debugTask;
-  pushServerComponentStack(task, task.node._debugInfo);
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          var thrownInfo = getThrownInfo(task.componentStack);
-          children = task.blockedBoundary;
-          var error = x,
-            resumeSlots = node;
-          node = logRecoverableError(
-            request,
-            error,
-            thrownInfo,
-            task.debugTask
-          );
-          abortRemainingReplayNodes(
-            request,
-            children,
-            childIndex,
-            resumeSlots,
-            error,
-            node,
-            thrownInfo,
-            !1
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    task.componentStack = previousComponentStack;
-    task.debugTask = previousDebugTask;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (error = j[childIndex]),
-        "number" === typeof error
-          ? (resumeNode(request, task, error, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    task.componentStack = previousComponentStack;
-    task.debugTask = previousDebugTask;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      warnForMissingKey(request, task, childIndex),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-  task.componentStack = previousComponentStack;
-  task.debugTask = previousDebugTask;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = POSTPONED;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request)
-    throw Error(
-      "It should not be possible to postpone at the root. This is a bug in React."
-    );
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = POSTPONED;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = POSTPONED);
-  else {
-    if (null !== boundary && boundary.status === PENDING) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(
-          "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-        );
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack,
-    emptyContextObject,
-    task.debugTask
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack,
-    emptyContextObject,
-    task.debugTask
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    previousDebugTask = task.debugTask,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          task.debugTask = previousDebugTask;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          task.debugTask = previousDebugTask;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$3) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$3 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$3),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$3 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.debugTask = previousDebugTask;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$3 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.debugTask = previousDebugTask;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = ABORTED),
-    finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error$jscomp$0,
-  errorDigest$jscomp$0,
-  errorInfo$jscomp$0,
-  aborted
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error$jscomp$0,
-        errorDigest$jscomp$0,
-        errorInfo$jscomp$0,
-        aborted
-      );
-    else {
-      var request = request$jscomp$0;
-      node = node[5];
-      var error = error$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        errorInfo = errorInfo$jscomp$0,
-        wasAborted = aborted,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = CLIENT_RENDERED;
-      encodeErrorForBoundary(
-        resumedBoundary,
-        errorDigest,
-        error,
-        errorInfo,
-        wasAborted
-      );
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary)
-      throw Error(
-        "We should not have any resumable nodes in the shell. This is a bug in React."
-      );
-    boundary.status !== CLIENT_RENDERED &&
-      ((boundary.status = CLIENT_RENDERED),
-      encodeErrorForBoundary(
-        boundary,
-        errorDigest$jscomp$0,
-        error$jscomp$0,
-        errorInfo$jscomp$0,
-        aborted
-      ),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = ABORTED;
-  }
-  var errorInfo = getThrownInfo(task.componentStack),
-    node = task.node;
-  null !== node &&
-    "object" === typeof node &&
-    pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-  if (null === boundary) {
-    if (13 !== request.status && request.status !== CLOSED) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo, task.debugTask),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo, task.debugTask),
-            fatalError(request, error, errorInfo, task.debugTask));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo, null)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment,
-          errorInfo,
-          !0
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    node = request.trackedPostpones;
-    if (boundary.status !== CLIENT_RENDERED) {
-      if (null !== node && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo, task.debugTask),
-          trackPostpone(request, node, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = CLIENT_RENDERED;
-      segment = logRecoverableError(request, error, errorInfo, task.debugTask);
-      boundary.status = CLIENT_RENDERED;
-      encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    errorInfo = boundary.row;
-    null !== errorInfo &&
-      0 === --errorInfo.pendingTasks &&
-      finishSuspenseListRow(request, errorInfo);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props;
-              var header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                crossOrigin: props$jscomp$0.crossOrigin,
-                integrity: props$jscomp$0.integrity,
-                nonce: props$jscomp$0.nonce,
-                type: props$jscomp$0.type,
-                fetchPriority: props$jscomp$0.fetchPriority,
-                referrerPolicy: props$jscomp$0.referrerPolicy,
-                media: props$jscomp$0.media
-              });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {}, null);
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          request.completedRootSegment.status !== POSTPONED
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (childSegment.status !== COMPLETED &&
-      childSegment.status !== ABORTED &&
-      childSegment.status !== ERRORED) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedSegment(request, boundary, segment) {
-  if (null !== byteLengthOfChunk) {
-    segment = segment.chunks;
-    for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-      segmentByteSize += byteLengthOfChunk(segment[i]);
-    null === boundary
-      ? (request.byteSize += segmentByteSize)
-      : (boundary.byteSize += segmentByteSize);
-  }
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(
-          "There can only be one root segment. This is a bug in React."
-        );
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-    if (0 === boundary.pendingTasks)
-      if (
-        (boundary.status === PENDING && (boundary.status = COMPLETED),
-        null !== segment &&
-          segment.parentFlushed &&
-          (segment.status === COMPLETED || segment.status === ABORTED) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        boundary.status === COMPLETED)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          boundary.status === POSTPONED &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (request$jscomp$2.status !== CLOSED && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-    ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var request = request$jscomp$2,
-          task = pingedTasks[i],
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var prevTaskInDEV = void 0,
-            request$jscomp$0 = request;
-          request = task;
-          if (0 !== request.replay.pendingTasks) {
-            switchContext(request.context);
-            prevTaskInDEV = currentTaskInDEV;
-            currentTaskInDEV = request;
-            try {
-              "number" === typeof request.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    request,
-                    request.replay.slots,
-                    request.node,
-                    request.childIndex
-                  )
-                : retryNode(request$jscomp$0, request);
-              if (
-                1 === request.replay.pendingTasks &&
-                0 < request.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              request.replay.pendingTasks--;
-              request.abortSet.delete(request);
-              finishedTask(
-                request$jscomp$0,
-                request.blockedBoundary,
-                request.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = request.ping;
-                x.then(ping, ping);
-                request.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                request.replay.pendingTasks--;
-                request.abortSet.delete(request);
-                var errorInfo = getThrownInfo(request.componentStack),
-                  errorDigest = void 0,
-                  request$jscomp$1 = request$jscomp$0,
-                  boundary = request.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  errorInfo$jscomp$0 = errorInfo,
-                  replayNodes = request.replay.nodes,
-                  resumeSlots = request.replay.slots;
-                errorDigest = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo$jscomp$0,
-                  request.debugTask
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  errorDigest,
-                  errorInfo$jscomp$0,
-                  !1
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-              currentTaskInDEV = prevTaskInDEV;
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = prevTaskInDEV = void 0),
-          (errorDigest = task),
-          (request$jscomp$1 = segment),
-          request$jscomp$1.status === PENDING)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(errorDigest.context);
-          request$jscomp$0 = currentTaskInDEV;
-          currentTaskInDEV = errorDigest;
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, errorDigest),
-              pushSegmentFinale(
-                request$jscomp$1.chunks,
-                request.renderState,
-                request$jscomp$1.lastPushedText,
-                request$jscomp$1.textEmbedded
-              ),
-              errorDigest.abortSet.delete(errorDigest),
-              (request$jscomp$1.status = COMPLETED),
-              finishedSegment(
-                request,
-                errorDigest.blockedBoundary,
-                request$jscomp$1
-              ),
-              finishedTask(
-                request,
-                errorDigest.blockedBoundary,
-                errorDigest.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(errorDigest.componentStack);
-              errorDigest.abortSet.delete(errorDigest);
-              logRecoverableError(
-                request,
-                x$jscomp$0,
-                thrownInfo,
-                errorDigest.debugTask
-              );
-              trackPostpone(
-                request,
-                trackedPostpones,
-                errorDigest,
-                request$jscomp$1
-              );
-              finishedTask(
-                request,
-                errorDigest.blockedBoundary,
-                errorDigest.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = PENDING;
-              errorDigest.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = errorDigest.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$1 = getThrownInfo(
-                errorDigest.componentStack
-              );
-              errorDigest.abortSet.delete(errorDigest);
-              request$jscomp$1.status = ERRORED;
-              var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                row = errorDigest.row,
-                debugTask = errorDigest.debugTask;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              prevTaskInDEV = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$1,
-                debugTask
-              );
-              if (null === boundary$jscomp$0)
-                fatalError(request, x$jscomp$0, errorInfo$jscomp$1, debugTask);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                boundary$jscomp$0.status !== CLIENT_RENDERED)
-              ) {
-                boundary$jscomp$0.status = CLIENT_RENDERED;
-                encodeErrorForBoundary(
-                  boundary$jscomp$0,
-                  prevTaskInDEV,
-                  x$jscomp$0,
-                  errorInfo$jscomp$1,
-                  !1
-                );
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-            currentTaskInDEV = request$jscomp$0;
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      (pingedTasks = {}),
-        logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-        fatalError(request$jscomp$2, error, pingedTasks, null);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case COMPLETED:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case POSTPONED:
-      if (null !== request.trackedPostpones) return !0;
-    case CLIENT_RENDERED:
-      if (segment.status === COMPLETED)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case PENDING:
-      segment.id = request.nextSegmentId++;
-    case POSTPONED:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        writeChunk(destination, placeholder1),
-        writeChunk(destination, request.placeholderPrefix),
-        (request = hoistableState.toString(16)),
-        writeChunk(destination, request),
-        !!destination.write(placeholder2)
-      );
-    case COMPLETED:
-      segment.status = FLUSHED;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          writeChunk(destination, chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        writeChunk(destination, chunks[chunkIdx]);
-      chunkIdx < chunks.length && (r = !!destination.write(chunks[chunkIdx]));
-      return r;
-    case ABORTED:
-      return !0;
-    default:
-      throw Error(
-        "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-      );
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (boundary.status === CLIENT_RENDERED) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    row = boundary.errorDigest;
-    var errorMessage = boundary.errorMessage,
-      errorStack = boundary.errorStack;
-    boundary = boundary.errorComponentStack;
-    destination.write(startClientRenderedSuspenseBoundary);
-    writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-    row &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-      writeChunk(destination, escapeTextForBrowser(row)),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    errorMessage &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1B),
-      writeChunk(destination, escapeTextForBrowser(errorMessage)),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    errorStack &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1C),
-      writeChunk(destination, escapeTextForBrowser(errorStack)),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    boundary &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1D),
-      writeChunk(destination, escapeTextForBrowser(boundary)),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    destination.write(clientRenderedSuspenseBoundaryError2);
-    flushSubtree(request, destination, segment, hoistableState);
-  } else if (boundary.status !== COMPLETED)
-    boundary.status === PENDING &&
-      (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState);
-  else if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-      hasSuspenseyContent(boundary.contentState))
-  )
-    (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState);
-  else {
-    flushedByteSize += boundary.byteSize;
-    hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-    segment = boundary.row;
-    null !== segment &&
-      isEligibleForOutlining(request, boundary) &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    destination.write(startCompletedSuspenseBoundary);
-    segment = boundary.completedSegments;
-    if (1 !== segment.length)
-      throw Error(
-        "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-      );
-    flushSegment(request, destination, segment[0], hoistableState);
-  }
-  return !!destination.write(endSuspenseBoundary);
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  requiresStyleInsertion
-    ? ((completedSegments.instructions & SentClientRenderFunction) ===
-        NothingSent &&
-        ((completedSegments.instructions |= SentClientRenderFunction),
-        writeChunk(destination, clientRenderScriptFunctionOnly)),
-      (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-        NothingSent &&
-        ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      (completedSegments.instructions & SentStyleInsertionFunction) ===
-      NothingSent
-        ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-          writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
-        : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-    : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-        NothingSent &&
-        ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      writeChunk(destination, completeBoundaryScript1Partial));
-  completedSegments = i.toString(16);
-  writeChunk(destination, request.boundaryPrefix);
-  writeChunk(destination, completedSegments);
-  writeChunk(destination, completeBoundaryScript2);
-  writeChunk(destination, request.segmentPrefix);
-  writeChunk(destination, completedSegments);
-  requiresStyleInsertion
-    ? (writeChunk(destination, completeBoundaryScript3a),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : writeChunk(destination, completeBoundaryScript3b);
-  boundary = !!destination.write(completeBoundaryScriptEnd);
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (segment.status === FLUSHED) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(
-        "A root segment ID must have been assigned by now. This is a bug in React."
-      );
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-    ? ((boundary.instructions |= SentCompleteSegmentFunction),
-      writeChunk(destination, completeSegmentScript1Full))
-    : writeChunk(destination, completeSegmentScript1Partial);
-  writeChunk(destination, request.segmentPrefix);
-  segmentID = segmentID.toString(16);
-  writeChunk(destination, segmentID);
-  writeChunk(destination, completeSegmentScript2);
-  writeChunk(destination, request.placeholderPrefix);
-  writeChunk(destination, segmentID);
-  destination = !!destination.write(completeSegmentScriptEnd);
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (completedRootSegment.status === POSTPONED) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            writeChunk(destination, htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              writeChunk(destination, headChunks[i$jscomp$0]);
-          else
-            writeChunk(destination, startChunkForTag("head")),
-              writeChunk(destination, endOfStartTag);
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            writeChunk(destination, headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          writeChunk(destination, charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          writeChunk(destination, viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          writeChunk(destination, importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        htmlChunks ||
-          headChunks ||
-          (resumableState.instructions |= SentCompletedShellId);
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          writeChunk(destination, hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-          writeChunk(destination, endChunkForTag("head"));
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            writeChunk(destination, bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (
-            (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-            NothingSent
-          ) {
-            resumableState$jscomp$0.instructions |= SentMarkShellTime;
-            writeChunk(destination, renderState$jscomp$0.startInlineScript);
-            if (
-              (resumableState$jscomp$0.instructions & SentCompletedShellId) ===
-              NothingSent
-            ) {
-              resumableState$jscomp$0.instructions |= SentCompletedShellId;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              writeChunk(destination, completedShellIdAttributeStart);
-              writeChunk(destination, escapeTextForBrowser(shellId));
-              writeChunk(destination, attributeEnd);
-            }
-            writeChunk(destination, endOfStartTag);
-            writeChunk(destination, shellTimeRuntimeScript);
-            destination.write(endInlineScript);
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest,
-          errorMessage = boundary.errorMessage,
-          errorStack = boundary.errorStack,
-          errorComponentStack = boundary.errorComponentStack;
-        writeChunk(
-          renderState$jscomp$1,
-          renderState$jscomp$2.startInlineScript
-        );
-        writeChunk(renderState$jscomp$1, endOfStartTag);
-        (resumableState$jscomp$1.instructions & SentClientRenderFunction) ===
-        NothingSent
-          ? ((resumableState$jscomp$1.instructions |= SentClientRenderFunction),
-            writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-          : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-        writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
-        writeChunk(renderState$jscomp$1, id.toString(16));
-        writeChunk(renderState$jscomp$1, clientRenderScript1A);
-        if (errorDigest || errorMessage || errorStack || errorComponentStack)
-          writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-            writeChunk(
-              renderState$jscomp$1,
-              escapeJSStringsForInstructionScripts(errorDigest || "")
-            );
-        if (errorMessage || errorStack || errorComponentStack)
-          writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-            writeChunk(
-              renderState$jscomp$1,
-              escapeJSStringsForInstructionScripts(errorMessage || "")
-            );
-        if (errorStack || errorComponentStack)
-          writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-            writeChunk(
-              renderState$jscomp$1,
-              escapeJSStringsForInstructionScripts(errorStack || "")
-            );
-        errorComponentStack &&
-          (writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-          writeChunk(
-            renderState$jscomp$1,
-            escapeJSStringsForInstructionScripts(errorComponentStack)
-          ));
-        var JSCompiler_inline_result = !!renderState$jscomp$1.write(
-          clientRenderScriptEnd
-        );
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          var boundary$jscomp$0 = partialBoundaries[i];
-          flushedByteSize = boundary$jscomp$0.byteSize;
-          var completedSegments = boundary$jscomp$0.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$jscomp$0,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$jscomp$0.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$jscomp$0.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$jscomp$0.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-      0 === request.clientRenderedBoundaries.length &&
-      0 === request.completedBoundaries.length
-        ? ((request.flushScheduled = !1),
-          (i = request.resumableState),
-          i.hasBody && writeChunk(destination, endChunkForTag("body")),
-          i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-          flushBuffered(destination),
-          0 !== request.abortableTasks.size &&
-            console.error(
-              "There was still abortable task at the root when we closed. This is a bug in React."
-            ),
-          (request.status = CLOSED),
-          destination.end(),
-          (request.destination = null))
-        : flushBuffered(destination);
-  }
-}
-function startWork(request) {
-  request.flushScheduled = null !== request.destination;
-  scheduleMicrotask(function () {
-    return performWork(request);
-  });
-  setTimeout(function () {
-    10 === request.status && (request.status = 11);
-    null === request.trackedPostpones &&
-      safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-  }, 0);
-}
-function enqueueFlush(request) {
-  !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination &&
-    ((request.flushScheduled = !0),
-    setTimeout(function () {
-      var destination = request.destination;
-      destination
-        ? flushCompletedQueues(request, destination)
-        : (request.flushScheduled = !1);
-    }, 0));
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error("The render was aborted by the server without a reason.")
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error("The render was aborted by the server with a promise.")
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        var prevTaskInDEV = currentTaskInDEV,
-          prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        currentTaskInDEV = task;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        try {
-          abortTask(task, request, error);
-        } finally {
-          (currentTaskInDEV = prevTaskInDEV),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl);
-        }
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$4) {
-    (reason = {}),
-      logRecoverableError(request, error$4, reason, null),
-      fatalError(request, error$4, reason, null);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-var isomorphicReactPackageVersion$jscomp$inline_766 = React.version;
-if (
-  "19.2.3" !==
-  isomorphicReactPackageVersion$jscomp$inline_766
-)
-  throw Error(
-    'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-      (isomorphicReactPackageVersion$jscomp$inline_766 +
-        "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-  );
-exports.renderToReadableStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request$jscomp$0 = createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "direct",
-              pull: function (controller) {
-                var request = request$jscomp$0;
-                if (13 === request.status)
-                  (request.status = CLOSED),
-                    closeWithError(controller, request.fatalError);
-                else if (
-                  request.status !== CLOSED &&
-                  null === request.destination
-                ) {
-                  request.destination = controller;
-                  try {
-                    flushCompletedQueues(request, controller);
-                  } catch (error) {
-                    (controller = {}),
-                      logRecoverableError(request, error, controller, null),
-                      fatalError(request, error, controller, null);
-                  }
-                }
-              },
-              cancel: function (reason) {
-                request$jscomp$0.destination = null;
-                abort(request$jscomp$0, reason);
-              }
-            },
-            { highWaterMark: 2048 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request$jscomp$0, signal.reason);
-      else {
-        var listener = function () {
-          abort(request$jscomp$0, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request$jscomp$0);
-  });
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server.bun.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.bun.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6745 +1,0 @@
-/**
- * @license React
- * react-dom-server.bun.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.
- */
-
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray,
-  scheduleMicrotask = queueMicrotask;
-function flushBuffered(destination) {
-  "function" === typeof destination.flush && destination.flush();
-}
-function writeChunk(destination, chunk) {
-  0 !== chunk.length && destination.write(chunk);
-}
-function byteLengthOfChunk(chunk) {
-  return Buffer.byteLength(chunk, "utf8");
-}
-function closeWithError(destination, error) {
-  "function" === typeof destination.error
-    ? destination.error(error)
-    : destination.close();
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null,
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-function createRenderState(
-  resumableState,
-  nonce,
-  externalRuntimeConfig,
-  importMap,
-  onHeaders,
-  maxHeadersLength
-) {
-  externalRuntimeConfig =
-    "string" === typeof nonce ? nonce : nonce && nonce.script;
-  var inlineScriptWithNonce =
-      void 0 === externalRuntimeConfig
-        ? "<script"
-        : '<script nonce="' + escapeTextForBrowser(externalRuntimeConfig) + '"',
-    nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-    inlineStyleWithNonce =
-      void 0 === nonceStyle
-        ? "<style"
-        : '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"',
-    idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push(inlineScriptWithNonce),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      ">",
-      ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
-      "\x3c/script>"
-    ));
-  bootstrapScriptContent = [];
-  void 0 !== importMap &&
-    (bootstrapScriptContent.push('<script type="importmap">'),
-    bootstrapScriptContent.push(
-      ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer)
-    ),
-    bootstrapScriptContent.push("\x3c/script>"));
-  importMap = onHeaders
-    ? {
-        preconnects: "",
-        fontPreloads: "",
-        highImagePreloads: "",
-        remainingCapacity:
-          2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-      }
-    : null;
-  onHeaders = {
-    placeholderPrefix: idPrefix + "P:",
-    segmentPrefix: idPrefix + "S:",
-    boundaryPrefix: idPrefix + "B:",
-    startInlineScript: inlineScriptWithNonce,
-    startInlineStyle: inlineStyleWithNonce,
-    preamble: createPreambleState(),
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: bootstrapScriptContent,
-    onHeaders: onHeaders,
-    headers: importMap,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: new Set(),
-    fontPreloads: new Set(),
-    highImagePreloads: new Set(),
-    styles: new Map(),
-    bootstrapScripts: new Set(),
-    scripts: new Set(),
-    bulkPreloads: new Set(),
-    preloads: {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    },
-    nonce: { script: externalRuntimeConfig, style: nonceStyle },
-    hoistableState: null,
-    stylesToHoist: !1
-  };
-  if (void 0 !== bootstrapScripts)
-    for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-      (idPrefix = bootstrapScripts[importMap]),
-        (nonceStyle = inlineScriptWithNonce = void 0),
-        (inlineStyleWithNonce = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: nonce
-        }),
-        "string" === typeof idPrefix
-          ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
-          : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
-            (inlineStyleWithNonce.integrity = nonceStyle =
-              "string" === typeof idPrefix.integrity
-                ? idPrefix.integrity
-                : void 0),
-            (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
-              "string" === typeof idPrefix || null == idPrefix.crossOrigin
-                ? void 0
-                : "use-credentials" === idPrefix.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (idPrefix = resumableState),
-        (bootstrapScriptContent = maxHeadersLength),
-        (idPrefix.scriptResources[bootstrapScriptContent] = null),
-        (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
-        (idPrefix = []),
-        pushLinkImpl(idPrefix, inlineStyleWithNonce),
-        onHeaders.bootstrapScripts.add(idPrefix),
-        bootstrapChunks.push(
-          '<script src="',
-          escapeTextForBrowser(maxHeadersLength),
-          '"'
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            ' nonce="',
-            escapeTextForBrowser(externalRuntimeConfig),
-            '"'
-          ),
-        "string" === typeof nonceStyle &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(nonceStyle),
-            '"'
-          ),
-        "string" === typeof inlineScriptWithNonce &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(inlineScriptWithNonce),
-            '"'
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  if (void 0 !== bootstrapModules)
-    for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-      (nonceStyle = bootstrapModules[nonce]),
-        (maxHeadersLength = importMap = void 0),
-        (inlineScriptWithNonce = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: externalRuntimeConfig
-        }),
-        "string" === typeof nonceStyle
-          ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
-          : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
-            (inlineScriptWithNonce.integrity = maxHeadersLength =
-              "string" === typeof nonceStyle.integrity
-                ? nonceStyle.integrity
-                : void 0),
-            (inlineScriptWithNonce.crossOrigin = importMap =
-              "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
-                ? void 0
-                : "use-credentials" === nonceStyle.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (nonceStyle = resumableState),
-        (inlineStyleWithNonce = bootstrapScripts),
-        (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle = []),
-        pushLinkImpl(nonceStyle, inlineScriptWithNonce),
-        onHeaders.bootstrapScripts.add(nonceStyle),
-        bootstrapChunks.push(
-          '<script type="module" src="',
-          escapeTextForBrowser(bootstrapScripts),
-          '"'
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            ' nonce="',
-            escapeTextForBrowser(externalRuntimeConfig),
-            '"'
-          ),
-        "string" === typeof maxHeadersLength &&
-          bootstrapChunks.push(
-            ' integrity="',
-            escapeTextForBrowser(maxHeadersLength),
-            '"'
-          ),
-        "string" === typeof importMap &&
-          bootstrapChunks.push(
-            ' crossorigin="',
-            escapeTextForBrowser(importMap),
-            '"'
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(' async="">\x3c/script>');
-  return onHeaders;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createPreambleState() {
-  return { htmlChunks: null, headChunks: null, bodyChunks: null };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function createRootFormatContext(namespaceURI) {
-  return createFormatContext(
-    "http://www.w3.org/2000/svg" === namespaceURI
-      ? 4
-      : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-        ? 5
-        : 0,
-    null,
-    0,
-    null
-  );
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if ("" === text) return textEmbedded;
-  textEmbedded && target.push("\x3c!-- --\x3e");
-  target.push(escapeTextForBrowser(text));
-  return !0;
-}
-function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {
-  lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e");
-}
-var styleNameCache = new Map();
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style)
-    throw Error(
-      "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-    );
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = escapeTextForBrowser(styleName);
-          styleValue = escapeTextForBrowser(("" + styleValue).trim());
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = escapeTextForBrowser(
-                styleName
-                  .replace(uppercasePattern, "-$1")
-                  .toLowerCase()
-                  .replace(msPattern, "-ms-")
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? "" + styleValue
-                  : styleValue + "px"
-                : escapeTextForBrowser(("" + styleValue).trim()));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(' style="', nameChunk, ":", styleValue))
-          : target.push(";", nameChunk, ":", styleValue);
-      }
-    }
-  isFirst || target.push('"');
-}
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(" ", name, '=""');
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-}
-var actionJavaScriptURL = escapeTextForBrowser(
-  "javascript:throw new Error('React form unexpectedly submitted.')"
-);
-function pushAdditionalFormField(value, key) {
-  this.push('<input type="hidden"');
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push("/>");
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value)
-    throw Error(
-      "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-    );
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"');
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(" ", name, '=""');
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(" ", name, '=""')
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(" ", name, '="', escapeTextForBrowser(value), '"');
-        }
-  }
-}
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children)
-      throw Error(
-        "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-      );
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(
-        "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-      );
-    innerHTML = innerHTML.__html;
-    null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML);
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          ">",
-          'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
-          "\x3c/script>"
-        );
-  }
-}
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              tag +
-                " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push("/>");
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(escapeTextForBrowser("" + props));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(("" + children).replace(scriptRegex, scriptReplacer));
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(">");
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(escapeTextForBrowser(tag)), null)
-    : tag;
-}
-var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-    tagStartChunk = "<" + tag;
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(escapeTextForBrowser(children));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(' selected=""');
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(' selected=""');
-      } else selected && target$jscomp$0.push(' selected=""');
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(">");
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0)
-          throw Error(
-            "If you supply `defaultValue` on a <textarea>, do not pass children."
-          );
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error("<textarea> can only have at most one child.");
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push("\n");
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0));
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push("/>");
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(">");
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              " ",
-              "action",
-              '="',
-              actionJavaScriptURL,
-              '"'
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(">");
-      null !== formActionName &&
-        (target$jscomp$0.push('<input type="hidden"'),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push("/>"),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  " ",
-                  "data",
-                  '="',
-                  escapeTextForBrowser(sanitizedValue),
-                  '"'
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: escapeTextForBrowser(precedence),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(">");
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer));
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: escapeTextForBrowser(precedence$jscomp$0),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e");
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(">");
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push("\n", html)
-            : target$jscomp$0.push("" + html));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push("\n");
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error("The `<head>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error("The `<body>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error("The `<html>` tag may only be rendered once.");
-        null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
-        preamble$jscomp$1.htmlChunks = ["<!DOCTYPE html>"];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      " ",
-                      attributeName,
-                      '="',
-                      escapeTextForBrowser(propValue$jscomp$11),
-                      '"'
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(">");
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    writeChunk(destination, renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]), (renderState.length = 0), !!destination.write(i))
-    : !0;
-}
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  writeChunk(destination, '\x3c!--$?--\x3e<template id="');
-  if (null === id)
-    throw Error(
-      "An ID must have been assigned before we can complete the boundary."
-    );
-  writeChunk(destination, renderState.boundaryPrefix);
-  writeChunk(destination, id.toString(16));
-  return !!destination.write('"></template>');
-}
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        writeChunk(destination, '<div hidden id="'),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 4:
-      return (
-        writeChunk(
-          destination,
-          '<svg aria-hidden="true" style="display:none" id="'
-        ),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 5:
-      return (
-        writeChunk(
-          destination,
-          '<math aria-hidden="true" style="display:none" id="'
-        ),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 6:
-      return (
-        writeChunk(destination, '<table hidden id="'),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 7:
-      return (
-        writeChunk(destination, '<table hidden><tbody id="'),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 8:
-      return (
-        writeChunk(destination, '<table hidden><tr id="'),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    case 9:
-      return (
-        writeChunk(destination, '<table hidden><colgroup id="'),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        !!destination.write('">')
-      );
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return !!destination.write("</div>");
-    case 4:
-      return !!destination.write("</svg>");
-    case 5:
-      return !!destination.write("</math>");
-    case 6:
-      return !!destination.write("</table>");
-    case 7:
-      return !!destination.write("</tbody></table>");
-    case 8:
-      return !!destination.write("</tr></table>");
-    case 9:
-      return !!destination.write("</colgroup></table>");
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, ' media="not all" data-precedence="');
-    writeChunk(this, styleQueue.precedence);
-    for (writeChunk(this, '" data-href="'); i < hrefs.length - 1; i++)
-      writeChunk(this, hrefs[i]), writeChunk(this, " ");
-    writeChunk(this, hrefs[i]);
-    writeChunk(this, '">');
-    for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-    destinationHasCapacity = !!this.write("</style>");
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    writeChunk(this, stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, ' data-precedence="');
-    writeChunk(this, styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        writeChunk(this, '" data-href="');
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        writeChunk(this, hrefs[styleQueue]), writeChunk(this, " ");
-      writeChunk(this, hrefs[styleQueue]);
-    }
-    writeChunk(this, '">');
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      writeChunk(this, rules[styleQueue]);
-    writeChunk(this, "</style>");
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      ' id="',
-      escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-      '"'
-    ));
-}
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  writeChunk(destination, "[");
-  var nextArrayOpenBrackChunk = "[";
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        writeChunk(destination, nextArrayOpenBrackChunk),
-          writeChunk(
-            destination,
-            escapeJSObjectForInstructionScripts("" + resource.props.href)
-          ),
-          writeChunk(destination, "]"),
-          (nextArrayOpenBrackChunk = ",[");
-      else {
-        writeChunk(destination, nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(coercedHref)
-        );
-        precedence = "" + precedence;
-        writeChunk(destination, ",");
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(precedence)
-        );
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        writeChunk(destination, "]");
-        nextArrayOpenBrackChunk = ",[";
-        resource.state = 3;
-      }
-  });
-  writeChunk(destination, "]");
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  writeChunk(destination, ",");
-  writeChunk(destination, escapeJSObjectForInstructionScripts(attributeName));
-  writeChunk(destination, ",");
-  writeChunk(destination, escapeJSObjectForInstructionScripts(name));
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: escapeTextForBrowser(precedence),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = currentRequest ? currentRequest : null;
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function hasSuspenseyContent(hoistableState) {
-  return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
-}
-var bind = Function.prototype.bind,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-    } else {
-      if (null === parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(
-  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-);
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable)
-    throw Error(
-      "Expected a suspended thenable. This is a bug in React. Please file an issue."
-    );
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(
-      "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-    );
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders)
-    throw Error("Rendered more hooks than during the previous render");
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders)
-    throw Error(
-      "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-    );
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(
-    "A function wrapped in useEffectEvent can't be called during rendering."
-  );
-}
-function unsupportedStartTransition() {
-  throw Error("startTransition cannot be called during server rendering.");
-}
-function unsupportedSetOptimisticState() {
-  throw Error("Cannot update optimistic state while rendering.");
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              Bun.hash(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex])
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  Bun.hash(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ])
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error("Cache cannot be refreshed during server rendering.");
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue;
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component."
-        );
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(
-          "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-        );
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error("Not implemented.");
-    },
-    cacheSignal: function () {
-      throw Error("Not implemented.");
-    }
-  },
-  prefix,
-  suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = void 0;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = void 0),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (
-    (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
-    null === boundary.contentPreamble
-  );
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "%c%s%c " + error[0],
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        )
-      : error.splice(
-          0,
-          0,
-          "%c%s%c",
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        );
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-var currentRequest = null;
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    null !== request.trackedPostpones || 10 === request.status
-      ? scheduleMicrotask(function () {
-          return performWork(request);
-        })
-      : setTimeout(function () {
-          return performWork(request);
-        }, 0));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), closeWithError(request.destination, error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          pushSegmentFinale(
-            resumeSegmentID.chunks,
-            request.renderState,
-            resumeSegmentID.lastPushedText,
-            resumeSegmentID.textEmbedded
-          ),
-          (resumeSegmentID.status = 1),
-          finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push("\x3c!--F!--\x3e")
-          : segment.push("\x3c!--F--\x3e");
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$43 in defaultProps)
-          void 0 === newProps[propName$43] &&
-            (newProps[propName$43] = defaultProps[propName$43]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$43 = type[ref]),
-                (propName$43 =
-                  "function" === typeof propName$43
-                    ? propName$43.call(newProps, defaultProps, props, void 0)
-                    : propName$43),
-                null != propName$43 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$43)))
-                    : assign(defaultProps, propName$43));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            pushSegmentFinale(
-              keyPath.chunks,
-              request.renderState,
-              keyPath.lastPushedText,
-              keyPath.textEmbedded
-            ),
-            (keyPath.status = 1),
-            finishedSegment(request, task.blockedBoundary, keyPath);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (type.chunks.push("\x3c!--&--\x3e"),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            type.chunks.push("\x3c!--/&--\x3e"),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error("ReactDOMServer does not yet support scope components.");
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row;
-          propName$43 = task.blockedBoundary;
-          propName = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState,
-            parentSegment = task.blockedSegment,
-            fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary =
-            2 > task.formatContext.insertionMode
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            parentSegment.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          parentSegment.children.push(boundarySegment);
-          parentSegment.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                pushSegmentFinale(
-                  boundarySegment.chunks,
-                  request.renderState,
-                  boundarySegment.lastPushedText,
-                  boundarySegment.textEmbedded
-                ),
-                (boundarySegment.status = 1),
-                finishedSegment(request, propName$43, boundarySegment);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = parentSegment),
-                (task.blockedPreamble = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                pushSegmentFinale(
-                  contentRootSegment.chunks,
-                  request.renderState,
-                  contentRootSegment.lastPushedText,
-                  contentRootSegment.textEmbedded
-                ),
-                (contentRootSegment.status = 1),
-                finishedSegment(request, newBoundary, contentRootSegment),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$30) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$30)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = propName$43),
-                (task.blockedPreamble = propName),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = parentSegment),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              propName$43,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (parentSegment in ((newProps = {}), props))
-              "ref" !== parentSegment &&
-                (newProps[parentSegment] = props[parentSegment]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue;
-          type._currentValue = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request)
-            throw Error(
-              "Tried to pop a Context at the root of the app. This is a bug in React."
-            );
-          request.context._currentValue = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-        ((null == type ? type : typeof type) + ".")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      finishedSegment(request, blockedBoundary, resumedSegment),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        "Expected the resume to render <" +
-                          node$jscomp$0[0] +
-                          "> in this slot but instead it rendered <" +
-                          name +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(
-                          "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                        );
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                          (getComponentNameFromType(type) || "Unknown") +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props =
-                        2 > task.formatContext.insertionMode
-                          ? createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              createPreambleState(),
-                              createPreambleState()
-                            )
-                          : createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              null,
-                              null
-                            );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(
-                            "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                          );
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(
-            "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-          );
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request)
-    throw Error(
-      "It should not be possible to postpone at the root. This is a bug in React."
-    );
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(
-          "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-        );
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$62) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$62 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$62),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$62 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary)
-      throw Error(
-        "We should not have any resumable nodes in the shell. This is a bug in React."
-      );
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$63 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$63 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$63, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedSegment(request, boundary, segment) {
-  if (null !== byteLengthOfChunk) {
-    segment = segment.chunks;
-    for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-      segmentByteSize += byteLengthOfChunk(segment[i]);
-    null === boundary
-      ? (request.byteSize += segmentByteSize)
-      : (boundary.byteSize += segmentByteSize);
-  }
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(
-          "There can only be one root segment. This is a bug in React."
-        );
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              pushSegmentFinale(
-                request$jscomp$1.chunks,
-                request.renderState,
-                request$jscomp$1.lastPushedText,
-                request$jscomp$1.textEmbedded
-              ),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedSegment(request, task.blockedBoundary, request$jscomp$1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        writeChunk(destination, '<template id="'),
-        writeChunk(destination, request.placeholderPrefix),
-        (request = hoistableState.toString(16)),
-        writeChunk(destination, request),
-        !!destination.write('"></template>')
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          writeChunk(destination, chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        writeChunk(destination, chunks[chunkIdx]);
-      chunkIdx < chunks.length && (r = !!destination.write(chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(
-        "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-      );
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    boundary = boundary.errorDigest;
-    destination.write("\x3c!--$!--\x3e");
-    writeChunk(destination, "<template");
-    boundary &&
-      (writeChunk(destination, ' data-dgst="'),
-      writeChunk(destination, escapeTextForBrowser(boundary)),
-      writeChunk(destination, '"'));
-    destination.write("></template>");
-    flushSubtree(request, destination, segment, hoistableState);
-  } else if (1 !== boundary.status)
-    0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState);
-  else if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-      hasSuspenseyContent(boundary.contentState))
-  )
-    (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState);
-  else {
-    flushedByteSize += boundary.byteSize;
-    hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-    segment = boundary.row;
-    null !== segment &&
-      isEligibleForOutlining(request, boundary) &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    destination.write("\x3c!--$--\x3e");
-    segment = boundary.completedSegments;
-    if (1 !== segment.length)
-      throw Error(
-        "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-      );
-    flushSegment(request, destination, segment[0], hoistableState);
-  }
-  return !!destination.write("\x3c!--/$--\x3e");
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, ">");
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        writeChunk(
-          destination,
-          '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-        )),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(
-          destination,
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          writeChunk(
-            destination,
-            '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-          ))
-        : writeChunk(destination, '$RR("'))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(
-          destination,
-          '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-        )),
-      writeChunk(destination, '$RC("'));
-  completedSegments = i.toString(16);
-  writeChunk(destination, request.boundaryPrefix);
-  writeChunk(destination, completedSegments);
-  writeChunk(destination, '","');
-  writeChunk(destination, request.segmentPrefix);
-  writeChunk(destination, completedSegments);
-  requiresStyleInsertion
-    ? (writeChunk(destination, '",'),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : writeChunk(destination, '"');
-  boundary = !!destination.write(")\x3c/script>");
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(
-        "A root segment ID must have been assigned by now. This is a bug in React."
-      );
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, ">");
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      writeChunk(
-        destination,
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ))
-    : writeChunk(destination, '$RS("');
-  writeChunk(destination, request.segmentPrefix);
-  segmentID = segmentID.toString(16);
-  writeChunk(destination, segmentID);
-  writeChunk(destination, '","');
-  writeChunk(destination, request.placeholderPrefix);
-  writeChunk(destination, segmentID);
-  destination = !!destination.write('")\x3c/script>');
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            writeChunk(destination, htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              writeChunk(destination, headChunks[i$jscomp$0]);
-          else
-            writeChunk(destination, startChunkForTag("head")),
-              writeChunk(destination, ">");
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            writeChunk(destination, headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          writeChunk(destination, charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          writeChunk(destination, viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          writeChunk(destination, importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        htmlChunks || headChunks || (resumableState.instructions |= 32);
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          writeChunk(destination, hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-          writeChunk(destination, endChunkForTag("head"));
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            writeChunk(destination, bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            writeChunk(destination, renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              writeChunk(destination, ' id="');
-              writeChunk(destination, escapeTextForBrowser(shellId));
-              writeChunk(destination, '"');
-            }
-            writeChunk(destination, ">");
-            writeChunk(
-              destination,
-              "requestAnimationFrame(function(){$RT=performance.now()});"
-            );
-            destination.write("\x3c/script>");
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        writeChunk(
-          renderState$jscomp$1,
-          renderState$jscomp$2.startInlineScript
-        );
-        writeChunk(renderState$jscomp$1, ">");
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            writeChunk(
-              renderState$jscomp$1,
-              '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-            ))
-          : writeChunk(renderState$jscomp$1, '$RX("');
-        writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
-        writeChunk(renderState$jscomp$1, id.toString(16));
-        writeChunk(renderState$jscomp$1, '"');
-        errorDigest &&
-          (writeChunk(renderState$jscomp$1, ","),
-          writeChunk(
-            renderState$jscomp$1,
-            escapeJSStringsForInstructionScripts(errorDigest || "")
-          ));
-        var JSCompiler_inline_result =
-          !!renderState$jscomp$1.write(")\x3c/script>");
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$69 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$69.byteSize;
-          var completedSegments = boundary$69.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$69,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$69.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$69.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$69.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-      0 === request.clientRenderedBoundaries.length &&
-      0 === request.completedBoundaries.length
-        ? ((request.flushScheduled = !1),
-          (i = request.resumableState),
-          i.hasBody && writeChunk(destination, endChunkForTag("body")),
-          i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-          flushBuffered(destination),
-          (request.status = 14),
-          destination.end(),
-          (request.destination = null))
-        : flushBuffered(destination);
-  }
-}
-function startWork(request) {
-  request.flushScheduled = null !== request.destination;
-  scheduleMicrotask(function () {
-    return performWork(request);
-  });
-  setTimeout(function () {
-    10 === request.status && (request.status = 11);
-    null === request.trackedPostpones &&
-      safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-  }, 0);
-}
-function enqueueFlush(request) {
-  !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination &&
-    ((request.flushScheduled = !0),
-    setTimeout(function () {
-      var destination = request.destination;
-      destination
-        ? flushCompletedQueues(request, destination)
-        : (request.flushScheduled = !1);
-    }, 0));
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error("The render was aborted by the server without a reason.")
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error("The render was aborted by the server with a promise.")
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$71) {
-    logRecoverableError(request, error$71, {}), fatalError(request, error$71);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-var isomorphicReactPackageVersion$jscomp$inline_821 = React.version;
-if (
-  "19.2.3" !==
-  isomorphicReactPackageVersion$jscomp$inline_821
-)
-  throw Error(
-    'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-      (isomorphicReactPackageVersion$jscomp$inline_821 +
-        "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-  );
-exports.renderToReadableStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "direct",
-              pull: function (controller) {
-                if (13 === request.status)
-                  (request.status = 14),
-                    closeWithError(controller, request.fatalError);
-                else if (
-                  14 !== request.status &&
-                  null === request.destination
-                ) {
-                  request.destination = controller;
-                  try {
-                    flushCompletedQueues(request, controller);
-                  } catch (error) {
-                    logRecoverableError(request, error, {}),
-                      fatalError(request, error);
-                  }
-                }
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 2048 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server.edge.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.edge.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10620 +1,0 @@
-/**
- * @license React
- * react-dom-server.edge.development.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function styleReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-    }
-    function scriptReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function objectName(object) {
-      object = Object.prototype.toString.call(object);
-      return object.slice(8, object.length - 1);
-    }
-    function describeKeyForErrorMessage(key) {
-      var encodedKey = JSON.stringify(key);
-      return '"' + key + '"' === encodedKey ? key : encodedKey;
-    }
-    function describeValueForErrorMessage(value) {
-      switch (typeof value) {
-        case "string":
-          return JSON.stringify(
-            10 >= value.length ? value : value.slice(0, 10) + "..."
-          );
-        case "object":
-          if (isArrayImpl(value)) return "[...]";
-          if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-            return "client";
-          value = objectName(value);
-          return "Object" === value ? "{...}" : value;
-        case "function":
-          return value.$$typeof === CLIENT_REFERENCE_TAG
-            ? "client"
-            : (value = value.displayName || value.name)
-              ? "function " + value
-              : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describeElementType(type) {
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-      }
-      if ("object" === typeof type)
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeElementType(type.render);
-          case REACT_MEMO_TYPE:
-            return describeElementType(type.type);
-          case REACT_LAZY_TYPE:
-            var payload = type._payload;
-            type = type._init;
-            try {
-              return describeElementType(type(payload));
-            } catch (x) {}
-        }
-      return "";
-    }
-    function describeObjectForErrorMessage(objectOrArray, expandedName) {
-      var objKind = objectName(objectOrArray);
-      if ("Object" !== objKind && "Array" !== objKind) return objKind;
-      var start = -1,
-        length = 0;
-      if (isArrayImpl(objectOrArray))
-        if (jsxChildrenParents.has(objectOrArray)) {
-          var type = jsxChildrenParents.get(objectOrArray);
-          objKind = "<" + describeElementType(type) + ">";
-          for (var i = 0; i < objectOrArray.length; i++) {
-            var value = objectOrArray[i];
-            value =
-              "string" === typeof value
-                ? value
-                : "object" === typeof value && null !== value
-                  ? "{" + describeObjectForErrorMessage(value) + "}"
-                  : "{" + describeValueForErrorMessage(value) + "}";
-            "" + i === expandedName
-              ? ((start = objKind.length),
-                (length = value.length),
-                (objKind += value))
-              : (objKind =
-                  15 > value.length && 40 > objKind.length + value.length
-                    ? objKind + value
-                    : objKind + "{...}");
-          }
-          objKind += "</" + describeElementType(type) + ">";
-        } else {
-          objKind = "[";
-          for (type = 0; type < objectOrArray.length; type++)
-            0 < type && (objKind += ", "),
-              (i = objectOrArray[type]),
-              (i =
-                "object" === typeof i && null !== i
-                  ? describeObjectForErrorMessage(i)
-                  : describeValueForErrorMessage(i)),
-              "" + type === expandedName
-                ? ((start = objKind.length),
-                  (length = i.length),
-                  (objKind += i))
-                : (objKind =
-                    10 > i.length && 40 > objKind.length + i.length
-                      ? objKind + i
-                      : objKind + "...");
-          objKind += "]";
-        }
-      else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-        objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-      else {
-        if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-        if (jsxPropsParents.has(objectOrArray)) {
-          objKind = jsxPropsParents.get(objectOrArray);
-          objKind = "<" + (describeElementType(objKind) || "...");
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++) {
-            objKind += " ";
-            value = type[i];
-            objKind += describeKeyForErrorMessage(value) + "=";
-            var _value2 = objectOrArray[value];
-            var _substr2 =
-              value === expandedName &&
-              "object" === typeof _value2 &&
-              null !== _value2
-                ? describeObjectForErrorMessage(_value2)
-                : describeValueForErrorMessage(_value2);
-            "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-            value === expandedName
-              ? ((start = objKind.length),
-                (length = _substr2.length),
-                (objKind += _substr2))
-              : (objKind =
-                  10 > _substr2.length && 40 > objKind.length + _substr2.length
-                    ? objKind + _substr2
-                    : objKind + "...");
-          }
-          objKind += ">";
-        } else {
-          objKind = "{";
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++)
-            0 < i && (objKind += ", "),
-              (value = type[i]),
-              (objKind += describeKeyForErrorMessage(value) + ": "),
-              (_value2 = objectOrArray[value]),
-              (_value2 =
-                "object" === typeof _value2 && null !== _value2
-                  ? describeObjectForErrorMessage(_value2)
-                  : describeValueForErrorMessage(_value2)),
-              value === expandedName
-                ? ((start = objKind.length),
-                  (length = _value2.length),
-                  (objKind += _value2))
-                : (objKind =
-                    10 > _value2.length && 40 > objKind.length + _value2.length
-                      ? objKind + _value2
-                      : objKind + "...");
-          objKind += "}";
-        }
-      }
-      return void 0 === expandedName
-        ? objKind
-        : -1 < start && 0 < length
-          ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-            "\n  " + objKind + "\n  " + objectOrArray)
-          : "\n  " + objKind;
-    }
-    function murmurhash3_32_gc(key, seed) {
-      var remainder = key.length & 3;
-      var bytes = key.length - remainder;
-      var h1 = seed;
-      for (seed = 0; seed < bytes; ) {
-        var k1 =
-          (key.charCodeAt(seed) & 255) |
-          ((key.charCodeAt(++seed) & 255) << 8) |
-          ((key.charCodeAt(++seed) & 255) << 16) |
-          ((key.charCodeAt(++seed) & 255) << 24);
-        ++seed;
-        k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        k1 = (k1 << 15) | (k1 >>> 17);
-        k1 =
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295;
-        h1 ^= k1;
-        h1 = (h1 << 13) | (h1 >>> 19);
-        h1 =
-          (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-        h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-      }
-      k1 = 0;
-      switch (remainder) {
-        case 3:
-          k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-        case 2:
-          k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-        case 1:
-          (k1 ^= key.charCodeAt(seed) & 255),
-            (k1 =
-              (3432918353 * (k1 & 65535) +
-                (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295),
-            (k1 = (k1 << 15) | (k1 >>> 17)),
-            (h1 ^=
-              (461845907 * (k1 & 65535) +
-                (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-              4294967295);
-      }
-      h1 ^= key.length;
-      h1 ^= h1 >>> 16;
-      h1 =
-        (2246822507 * (h1 & 65535) +
-          (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      h1 ^= h1 >>> 13;
-      h1 =
-        (3266489909 * (h1 & 65535) +
-          (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-        4294967295;
-      return (h1 ^ (h1 >>> 16)) >>> 0;
-    }
-    function handleErrorInNextTick(error) {
-      setTimeout(function () {
-        throw error;
-      });
-    }
-    function writeChunk(destination, chunk) {
-      if (0 !== chunk.byteLength)
-        if (2048 < chunk.byteLength)
-          0 < writtenBytes &&
-            (destination.enqueue(
-              new Uint8Array(currentView.buffer, 0, writtenBytes)
-            ),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0)),
-            destination.enqueue(chunk);
-        else {
-          var allowableBytes = currentView.length - writtenBytes;
-          allowableBytes < chunk.byteLength &&
-            (0 === allowableBytes
-              ? destination.enqueue(currentView)
-              : (currentView.set(
-                  chunk.subarray(0, allowableBytes),
-                  writtenBytes
-                ),
-                destination.enqueue(currentView),
-                (chunk = chunk.subarray(allowableBytes))),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0));
-          currentView.set(chunk, writtenBytes);
-          writtenBytes += chunk.byteLength;
-        }
-    }
-    function writeChunkAndReturn(destination, chunk) {
-      writeChunk(destination, chunk);
-      return !0;
-    }
-    function completeWriting(destination) {
-      currentView &&
-        0 < writtenBytes &&
-        (destination.enqueue(
-          new Uint8Array(currentView.buffer, 0, writtenBytes)
-        ),
-        (currentView = null),
-        (writtenBytes = 0));
-    }
-    function stringToChunk(content) {
-      return textEncoder.encode(content);
-    }
-    function stringToPrecomputedChunk(content) {
-      content = textEncoder.encode(content);
-      2048 < content.byteLength &&
-        console.error(
-          "precomputed chunks must be smaller than the view size configured for this host. This is a bug in React."
-        );
-      return content;
-    }
-    function byteLengthOfChunk(chunk) {
-      return chunk.byteLength;
-    }
-    function closeWithError(destination, error) {
-      "function" === typeof destination.error
-        ? destination.error(error)
-        : destination.close();
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkHtmlStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function escapeTextForBrowser(text) {
-      if (
-        "boolean" === typeof text ||
-        "number" === typeof text ||
-        "bigint" === typeof text
-      )
-        return "" + text;
-      checkHtmlStringCoercion(text);
-      text = "" + text;
-      var match = matchHtmlRegExp.exec(text);
-      if (match) {
-        var html = "",
-          index,
-          lastIndex = 0;
-        for (index = match.index; index < text.length; index++) {
-          switch (text.charCodeAt(index)) {
-            case 34:
-              match = "&quot;";
-              break;
-            case 38:
-              match = "&amp;";
-              break;
-            case 39:
-              match = "&#x27;";
-              break;
-            case 60:
-              match = "&lt;";
-              break;
-            case 62:
-              match = "&gt;";
-              break;
-            default:
-              continue;
-          }
-          lastIndex !== index && (html += text.slice(lastIndex, index));
-          lastIndex = index + 1;
-          html += match;
-        }
-        text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-      }
-      return text;
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function escapeEntireInlineScriptContent(scriptText) {
-      checkHtmlStringCoercion(scriptText);
-      return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-    }
-    function createRenderState(
-      resumableState,
-      nonce,
-      externalRuntimeConfig,
-      importMap,
-      onHeaders,
-      maxHeadersLength
-    ) {
-      externalRuntimeConfig =
-        "string" === typeof nonce ? nonce : nonce && nonce.script;
-      var inlineScriptWithNonce =
-          void 0 === externalRuntimeConfig
-            ? startInlineScript
-            : stringToPrecomputedChunk(
-                '<script nonce="' +
-                  escapeTextForBrowser(externalRuntimeConfig) +
-                  '"'
-              ),
-        nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-        inlineStyleWithNonce =
-          void 0 === nonceStyle
-            ? startInlineStyle
-            : stringToPrecomputedChunk(
-                '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-              ),
-        idPrefix = resumableState.idPrefix,
-        bootstrapChunks = [],
-        bootstrapScriptContent = resumableState.bootstrapScriptContent,
-        bootstrapScripts = resumableState.bootstrapScripts,
-        bootstrapModules = resumableState.bootstrapModules;
-      void 0 !== bootstrapScriptContent &&
-        (bootstrapChunks.push(inlineScriptWithNonce),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          stringToChunk(
-            escapeEntireInlineScriptContent(bootstrapScriptContent)
-          ),
-          endInlineScript
-        ));
-      bootstrapScriptContent = [];
-      void 0 !== importMap &&
-        (bootstrapScriptContent.push(importMapScriptStart),
-        bootstrapScriptContent.push(
-          stringToChunk(
-            escapeEntireInlineScriptContent(JSON.stringify(importMap))
-          )
-        ),
-        bootstrapScriptContent.push(importMapScriptEnd));
-      onHeaders &&
-        "number" === typeof maxHeadersLength &&
-        0 >= maxHeadersLength &&
-        console.error(
-          "React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.",
-          0 === maxHeadersLength ? "zero" : maxHeadersLength
-        );
-      importMap = onHeaders
-        ? {
-            preconnects: "",
-            fontPreloads: "",
-            highImagePreloads: "",
-            remainingCapacity:
-              2 +
-              ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-          }
-        : null;
-      onHeaders = {
-        placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-        segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-        boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-        startInlineScript: inlineScriptWithNonce,
-        startInlineStyle: inlineStyleWithNonce,
-        preamble: createPreambleState(),
-        externalRuntimeScript: null,
-        bootstrapChunks: bootstrapChunks,
-        importMapChunks: bootstrapScriptContent,
-        onHeaders: onHeaders,
-        headers: importMap,
-        resets: {
-          font: {},
-          dns: {},
-          connect: { default: {}, anonymous: {}, credentials: {} },
-          image: {},
-          style: {}
-        },
-        charsetChunks: [],
-        viewportChunks: [],
-        hoistableChunks: [],
-        preconnects: new Set(),
-        fontPreloads: new Set(),
-        highImagePreloads: new Set(),
-        styles: new Map(),
-        bootstrapScripts: new Set(),
-        scripts: new Set(),
-        bulkPreloads: new Set(),
-        preloads: {
-          images: new Map(),
-          stylesheets: new Map(),
-          scripts: new Map(),
-          moduleScripts: new Map()
-        },
-        nonce: { script: externalRuntimeConfig, style: nonceStyle },
-        hoistableState: null,
-        stylesToHoist: !1
-      };
-      if (void 0 !== bootstrapScripts)
-        for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-          (maxHeadersLength = bootstrapScripts[importMap]),
-            (inlineStyleWithNonce = nonceStyle = void 0),
-            (idPrefix = {
-              rel: "preload",
-              as: "script",
-              fetchPriority: "low",
-              nonce: nonce
-            }),
-            "string" === typeof maxHeadersLength
-              ? (idPrefix.href = inlineScriptWithNonce = maxHeadersLength)
-              : ((idPrefix.href = inlineScriptWithNonce = maxHeadersLength.src),
-                (idPrefix.integrity = inlineStyleWithNonce =
-                  "string" === typeof maxHeadersLength.integrity
-                    ? maxHeadersLength.integrity
-                    : void 0),
-                (idPrefix.crossOrigin = nonceStyle =
-                  "string" === typeof maxHeadersLength ||
-                  null == maxHeadersLength.crossOrigin
-                    ? void 0
-                    : "use-credentials" === maxHeadersLength.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              inlineScriptWithNonce,
-              idPrefix
-            ),
-            bootstrapChunks.push(
-              startScriptSrc,
-              stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-                attributeEnd
-              ),
-            "string" === typeof inlineStyleWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                stringToChunk(escapeTextForBrowser(inlineStyleWithNonce)),
-                attributeEnd
-              ),
-            "string" === typeof nonceStyle &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                stringToChunk(escapeTextForBrowser(nonceStyle)),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      if (void 0 !== bootstrapModules)
-        for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-          (bootstrapScripts = bootstrapModules[nonce]),
-            (inlineScriptWithNonce = maxHeadersLength = void 0),
-            (nonceStyle = {
-              rel: "modulepreload",
-              fetchPriority: "low",
-              nonce: externalRuntimeConfig
-            }),
-            "string" === typeof bootstrapScripts
-              ? (nonceStyle.href = importMap = bootstrapScripts)
-              : ((nonceStyle.href = importMap = bootstrapScripts.src),
-                (nonceStyle.integrity = inlineScriptWithNonce =
-                  "string" === typeof bootstrapScripts.integrity
-                    ? bootstrapScripts.integrity
-                    : void 0),
-                (nonceStyle.crossOrigin = maxHeadersLength =
-                  "string" === typeof bootstrapScripts ||
-                  null == bootstrapScripts.crossOrigin
-                    ? void 0
-                    : "use-credentials" === bootstrapScripts.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              importMap,
-              nonceStyle
-            ),
-            bootstrapChunks.push(
-              startModuleSrc,
-              stringToChunk(escapeTextForBrowser(importMap)),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-                attributeEnd
-              ),
-            "string" === typeof inlineScriptWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-                attributeEnd
-              ),
-            "string" === typeof maxHeadersLength &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      return onHeaders;
-    }
-    function createResumableState(
-      identifierPrefix,
-      externalRuntimeConfig,
-      bootstrapScriptContent,
-      bootstrapScripts,
-      bootstrapModules
-    ) {
-      return {
-        idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-        nextFormID: 0,
-        streamingFormat: 0,
-        bootstrapScriptContent: bootstrapScriptContent,
-        bootstrapScripts: bootstrapScripts,
-        bootstrapModules: bootstrapModules,
-        instructions: NothingSent,
-        hasBody: !1,
-        hasHtml: !1,
-        unknownResources: {},
-        dnsResources: {},
-        connectResources: { default: {}, anonymous: {}, credentials: {} },
-        imageResources: {},
-        styleResources: {},
-        scriptResources: {},
-        moduleUnknownResources: {},
-        moduleScriptResources: {}
-      };
-    }
-    function createPreambleState() {
-      return { htmlChunks: null, headChunks: null, bodyChunks: null };
-    }
-    function createFormatContext(
-      insertionMode,
-      selectedValue,
-      tagScope,
-      viewTransition
-    ) {
-      return {
-        insertionMode: insertionMode,
-        selectedValue: selectedValue,
-        tagScope: tagScope,
-        viewTransition: viewTransition
-      };
-    }
-    function createRootFormatContext(namespaceURI) {
-      return createFormatContext(
-        "http://www.w3.org/2000/svg" === namespaceURI
-          ? SVG_MODE
-          : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-            ? MATHML_MODE
-            : ROOT_HTML_MODE,
-        null,
-        0,
-        null
-      );
-    }
-    function getChildFormatContext(parentContext, type, props) {
-      var subtreeScope = parentContext.tagScope & -25;
-      switch (type) {
-        case "noscript":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-        case "select":
-          return createFormatContext(
-            HTML_MODE,
-            null != props.value ? props.value : props.defaultValue,
-            subtreeScope,
-            null
-          );
-        case "svg":
-          return createFormatContext(SVG_MODE, null, subtreeScope, null);
-        case "picture":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-        case "math":
-          return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-        case "foreignObject":
-          return createFormatContext(HTML_MODE, null, subtreeScope, null);
-        case "table":
-          return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-        case "thead":
-        case "tbody":
-        case "tfoot":
-          return createFormatContext(
-            HTML_TABLE_BODY_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "colgroup":
-          return createFormatContext(
-            HTML_COLGROUP_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "tr":
-          return createFormatContext(
-            HTML_TABLE_ROW_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "head":
-          if (parentContext.insertionMode < HTML_MODE)
-            return createFormatContext(
-              HTML_HEAD_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-          break;
-        case "html":
-          if (parentContext.insertionMode === ROOT_HTML_MODE)
-            return createFormatContext(
-              HTML_HTML_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-      }
-      return parentContext.insertionMode >= HTML_TABLE_MODE ||
-        parentContext.insertionMode < HTML_MODE
-        ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-        : parentContext.tagScope !== subtreeScope
-          ? createFormatContext(
-              parentContext.insertionMode,
-              parentContext.selectedValue,
-              subtreeScope,
-              null
-            )
-          : parentContext;
-    }
-    function getSuspenseViewTransition(parentViewTransition) {
-      return null === parentViewTransition
-        ? null
-        : {
-            update: parentViewTransition.update,
-            enter: "none",
-            exit: "none",
-            share: parentViewTransition.update,
-            name: parentViewTransition.autoName,
-            autoName: parentViewTransition.autoName,
-            nameIdx: 0
-          };
-    }
-    function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-      parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        parentContext.tagScope | 12,
-        getSuspenseViewTransition(parentContext.viewTransition)
-      );
-    }
-    function getSuspenseContentFormatContext(resumableState, parentContext) {
-      resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-      var subtreeScope = parentContext.tagScope | 16;
-      null !== resumableState &&
-        "none" !== resumableState.share &&
-        (subtreeScope |= 64);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        subtreeScope,
-        resumableState
-      );
-    }
-    function pushTextInstance(target, text, renderState, textEmbedded) {
-      if ("" === text) return textEmbedded;
-      textEmbedded && target.push(textSeparator);
-      target.push(stringToChunk(escapeTextForBrowser(text)));
-      return !0;
-    }
-    function pushStyleAttribute(target, style) {
-      if ("object" !== typeof style)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      var isFirst = !0,
-        styleName;
-      for (styleName in style)
-        if (hasOwnProperty.call(style, styleName)) {
-          var styleValue = style[styleName];
-          if (
-            null != styleValue &&
-            "boolean" !== typeof styleValue &&
-            "" !== styleValue
-          ) {
-            if (0 === styleName.indexOf("--")) {
-              var nameChunk = stringToChunk(escapeTextForBrowser(styleName));
-              checkCSSPropertyStringCoercion(styleValue, styleName);
-              styleValue = stringToChunk(
-                escapeTextForBrowser(("" + styleValue).trim())
-              );
-            } else {
-              nameChunk = styleName;
-              var value = styleValue;
-              if (-1 < nameChunk.indexOf("-")) {
-                var name = nameChunk;
-                (warnedStyleNames.hasOwnProperty(name) &&
-                  warnedStyleNames[name]) ||
-                  ((warnedStyleNames[name] = !0),
-                  console.error(
-                    "Unsupported style property %s. Did you mean %s?",
-                    name,
-                    camelize(name.replace(msPattern$1, "ms-"))
-                  ));
-              } else if (badVendoredStyleNamePattern.test(nameChunk))
-                (name = nameChunk),
-                  (warnedStyleNames.hasOwnProperty(name) &&
-                    warnedStyleNames[name]) ||
-                    ((warnedStyleNames[name] = !0),
-                    console.error(
-                      "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                      name,
-                      name.charAt(0).toUpperCase() + name.slice(1)
-                    ));
-              else if (badStyleValueWithSemicolonPattern.test(value)) {
-                name = nameChunk;
-                var value$jscomp$0 = value;
-                (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-                  warnedStyleValues[value$jscomp$0]) ||
-                  ((warnedStyleValues[value$jscomp$0] = !0),
-                  console.error(
-                    'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                    name,
-                    value$jscomp$0.replace(
-                      badStyleValueWithSemicolonPattern,
-                      ""
-                    )
-                  ));
-              }
-              "number" === typeof value &&
-                (isNaN(value)
-                  ? warnedForNaNValue ||
-                    ((warnedForNaNValue = !0),
-                    console.error(
-                      "`NaN` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    ))
-                  : isFinite(value) ||
-                    warnedForInfinityValue ||
-                    ((warnedForInfinityValue = !0),
-                    console.error(
-                      "`Infinity` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    )));
-              nameChunk = styleName;
-              value = styleNameCache.get(nameChunk);
-              void 0 !== value
-                ? (nameChunk = value)
-                : ((value = stringToPrecomputedChunk(
-                    escapeTextForBrowser(
-                      nameChunk
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern, "-ms-")
-                    )
-                  )),
-                  styleNameCache.set(nameChunk, value),
-                  (nameChunk = value));
-              "number" === typeof styleValue
-                ? (styleValue =
-                    0 === styleValue || unitlessNumbers.has(styleName)
-                      ? stringToChunk("" + styleValue)
-                      : stringToChunk(styleValue + "px"))
-                : (checkCSSPropertyStringCoercion(styleValue, styleName),
-                  (styleValue = stringToChunk(
-                    escapeTextForBrowser(("" + styleValue).trim())
-                  )));
-            }
-            isFirst
-              ? ((isFirst = !1),
-                target.push(
-                  styleAttributeStart,
-                  nameChunk,
-                  styleAssign,
-                  styleValue
-                ))
-              : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-          }
-        }
-      isFirst || target.push(attributeEnd);
-    }
-    function pushBooleanAttribute(target, name, value) {
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeEmptyString
-        );
-    }
-    function pushStringAttribute(target, name, value) {
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        "boolean" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-    }
-    function pushAdditionalFormField(value, key) {
-      this.push(startHiddenInputChunk);
-      validateAdditionalFormField(value);
-      pushStringAttribute(this, "name", key);
-      pushStringAttribute(this, "value", value);
-      this.push(endOfStartTagSelfClosing);
-    }
-    function validateAdditionalFormField(value) {
-      if ("string" !== typeof value)
-        throw Error(
-          "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-        );
-    }
-    function getCustomFormFields(resumableState, formAction) {
-      if ("function" === typeof formAction.$$FORM_ACTION) {
-        var id = resumableState.nextFormID++;
-        resumableState = resumableState.idPrefix + id;
-        try {
-          var customFields = formAction.$$FORM_ACTION(resumableState);
-          if (customFields) {
-            var formData = customFields.data;
-            null != formData && formData.forEach(validateAdditionalFormField);
-          }
-          return customFields;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            "function" === typeof x.then
-          )
-            throw x;
-          console.error(
-            "Failed to serialize an action for progressive enhancement:\n%s",
-            x
-          );
-        }
-      }
-      return null;
-    }
-    function pushFormActionAttribute(
-      target,
-      resumableState,
-      renderState,
-      formAction,
-      formEncType,
-      formMethod,
-      formTarget,
-      name
-    ) {
-      var formData = null;
-      if ("function" === typeof formAction) {
-        null === name ||
-          didWarnFormActionName ||
-          ((didWarnFormActionName = !0),
-          console.error(
-            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-          ));
-        (null === formEncType && null === formMethod) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(resumableState, formAction);
-        null !== customFields
-          ? ((name = customFields.name),
-            (formAction = customFields.action || ""),
-            (formEncType = customFields.encType),
-            (formMethod = customFields.method),
-            (formTarget = customFields.target),
-            (formData = customFields.data))
-          : (target.push(
-              attributeSeparator,
-              stringToChunk("formAction"),
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget = formMethod = formEncType = formAction = name = null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != name && pushAttribute(target, "name", name);
-      null != formAction && pushAttribute(target, "formAction", formAction);
-      null != formEncType && pushAttribute(target, "formEncType", formEncType);
-      null != formMethod && pushAttribute(target, "formMethod", formMethod);
-      null != formTarget && pushAttribute(target, "formTarget", formTarget);
-      return formData;
-    }
-    function pushAttribute(target, name, value) {
-      switch (name) {
-        case "className":
-          pushStringAttribute(target, "class", value);
-          break;
-        case "tabIndex":
-          pushStringAttribute(target, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          pushStringAttribute(target, name, value);
-          break;
-        case "style":
-          pushStyleAttribute(target, value);
-          break;
-        case "src":
-        case "href":
-          if ("" === value) {
-            "src" === name
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                );
-            break;
-          }
-        case "action":
-        case "formAction":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-          break;
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "ref":
-          break;
-        case "autoFocus":
-        case "multiple":
-        case "muted":
-          pushBooleanAttribute(target, name.toLowerCase(), value);
-          break;
-        case "xlinkHref":
-          if (
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            stringToChunk("xlink:href"),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[name] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              name
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeEmptyString
-            );
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeEmptyString
-              )
-            : !1 !== value &&
-              "function" !== typeof value &&
-              "symbol" !== typeof value &&
-              target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeAssign,
-                stringToChunk(escapeTextForBrowser(value)),
-                attributeEnd
-              );
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            !isNaN(value) &&
-            1 <= value &&
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "rowSpan":
-        case "start":
-          "function" === typeof value ||
-            "symbol" === typeof value ||
-            isNaN(value) ||
-            target.push(
-              attributeSeparator,
-              stringToChunk(name),
-              attributeAssign,
-              stringToChunk(escapeTextForBrowser(value)),
-              attributeEnd
-            );
-          break;
-        case "xlinkActuate":
-          pushStringAttribute(target, "xlink:actuate", value);
-          break;
-        case "xlinkArcrole":
-          pushStringAttribute(target, "xlink:arcrole", value);
-          break;
-        case "xlinkRole":
-          pushStringAttribute(target, "xlink:role", value);
-          break;
-        case "xlinkShow":
-          pushStringAttribute(target, "xlink:show", value);
-          break;
-        case "xlinkTitle":
-          pushStringAttribute(target, "xlink:title", value);
-          break;
-        case "xlinkType":
-          pushStringAttribute(target, "xlink:type", value);
-          break;
-        case "xmlBase":
-          pushStringAttribute(target, "xml:base", value);
-          break;
-        case "xmlLang":
-          pushStringAttribute(target, "xml:lang", value);
-          break;
-        case "xmlSpace":
-          pushStringAttribute(target, "xml:space", value);
-          break;
-        default:
-          if (
-            !(2 < name.length) ||
-            ("o" !== name[0] && "O" !== name[0]) ||
-            ("n" !== name[1] && "N" !== name[1])
-          )
-            if (
-              ((name = aliases.get(name) || name), isAttributeNameSafe(name))
-            ) {
-              switch (typeof value) {
-                case "function":
-                case "symbol":
-                  return;
-                case "boolean":
-                  var prefix = name.toLowerCase().slice(0, 5);
-                  if ("data-" !== prefix && "aria-" !== prefix) return;
-              }
-              target.push(
-                attributeSeparator,
-                stringToChunk(name),
-                attributeAssign,
-                stringToChunk(escapeTextForBrowser(value)),
-                attributeEnd
-              );
-            }
-      }
-    }
-    function pushInnerHTML(target, innerHTML, children) {
-      if (null != innerHTML) {
-        if (null != children)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        innerHTML = innerHTML.__html;
-        null !== innerHTML &&
-          void 0 !== innerHTML &&
-          (checkHtmlStringCoercion(innerHTML),
-          target.push(stringToChunk("" + innerHTML)));
-      }
-    }
-    function checkSelectProp(props, propName) {
-      var value = props[propName];
-      null != value &&
-        ((value = isArrayImpl(value)),
-        props.multiple && !value
-          ? console.error(
-              "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-              propName
-            )
-          : !props.multiple &&
-            value &&
-            console.error(
-              "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-              propName
-            ));
-    }
-    function flattenOptionChildren(children) {
-      var content = "";
-      React.Children.forEach(children, function (child) {
-        null != child &&
-          ((content += child),
-          didWarnInvalidOptionChildren ||
-            "string" === typeof child ||
-            "number" === typeof child ||
-            "bigint" === typeof child ||
-            ((didWarnInvalidOptionChildren = !0),
-            console.error(
-              "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-            )));
-      });
-      return content;
-    }
-    function injectFormReplayingRuntime(resumableState, renderState) {
-      if ((resumableState.instructions & 16) === NothingSent) {
-        resumableState.instructions |= 16;
-        var preamble = renderState.preamble,
-          bootstrapChunks = renderState.bootstrapChunks;
-        (preamble.htmlChunks || preamble.headChunks) &&
-        0 === bootstrapChunks.length
-          ? (bootstrapChunks.push(renderState.startInlineScript),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            ))
-          : bootstrapChunks.unshift(
-              renderState.startInlineScript,
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            );
-      }
-    }
-    function pushLinkImpl(target, props) {
-      target.push(startChunkForTag("link"));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function escapeStyleTextContent(styleText) {
-      checkHtmlStringCoercion(styleText);
-      return ("" + styleText).replace(styleRegex, styleReplacer);
-    }
-    function pushSelfClosing(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  tag +
-                    " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function pushTitleImpl(target, props) {
-      target.push(startChunkForTag("title"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      props = Array.isArray(children)
-        ? 2 > children.length
-          ? children[0]
-          : null
-        : children;
-      "function" !== typeof props &&
-        "symbol" !== typeof props &&
-        null !== props &&
-        void 0 !== props &&
-        target.push(stringToChunk(escapeTextForBrowser("" + props)));
-      pushInnerHTML(target, innerHTML, children);
-      target.push(endChunkForTag("title"));
-      return null;
-    }
-    function pushScriptImpl(target, props) {
-      target.push(startChunkForTag("script"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      null != children &&
-        "string" !== typeof children &&
-        ((props =
-          "number" === typeof children
-            ? "a number for children"
-            : Array.isArray(children)
-              ? "an array for children"
-              : "something unexpected for children"),
-        console.error(
-          "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-          props
-        ));
-      pushInnerHTML(target, innerHTML, children);
-      "string" === typeof children &&
-        target.push(stringToChunk(escapeEntireInlineScriptContent(children)));
-      target.push(endChunkForTag("script"));
-      return null;
-    }
-    function pushStartSingletonElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return tag;
-    }
-    function pushStartGenericElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return "string" === typeof tag
-        ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null)
-        : tag;
-    }
-    function startChunkForTag(tag) {
-      var tagStartChunk = validatedTagCache.get(tag);
-      if (void 0 === tagStartChunk) {
-        if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-        tagStartChunk = stringToPrecomputedChunk("<" + tag);
-        validatedTagCache.set(tag, tagStartChunk);
-      }
-      return tagStartChunk;
-    }
-    function pushStartInstance(
-      target$jscomp$0,
-      type,
-      props,
-      resumableState,
-      renderState,
-      preambleState,
-      hoistableState,
-      formatContext,
-      textEmbedded
-    ) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-      else
-        switch (type) {
-          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":
-            JSCompiler_inline_result = !1;
-            break b;
-          default:
-            JSCompiler_inline_result = !0;
-        }
-      JSCompiler_inline_result ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, null);
-      !props.suppressContentEditableWarning &&
-        props.contentEditable &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-      formatContext.insertionMode !== SVG_MODE &&
-        formatContext.insertionMode !== MATHML_MODE &&
-        -1 === type.indexOf("-") &&
-        type.toLowerCase() !== type &&
-        console.error(
-          "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-          type
-        );
-      switch (type) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-          break;
-        case "a":
-          target$jscomp$0.push(startChunkForTag("a"));
-          var children = null,
-            innerHTML = null,
-            propKey;
-          for (propKey in props)
-            if (hasOwnProperty.call(props, propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "children":
-                    children = propValue;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML = propValue;
-                    break;
-                  case "href":
-                    "" === propValue
-                      ? pushStringAttribute(target$jscomp$0, "href", "")
-                      : pushAttribute(target$jscomp$0, propKey, propValue);
-                    break;
-                  default:
-                    pushAttribute(target$jscomp$0, propKey, propValue);
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML, children);
-          if ("string" === typeof children) {
-            target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children)));
-            var JSCompiler_inline_result$jscomp$0 = null;
-          } else JSCompiler_inline_result$jscomp$0 = children;
-          return JSCompiler_inline_result$jscomp$0;
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          checkSelectProp(props, "value");
-          checkSelectProp(props, "defaultValue");
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultSelectValue ||
-            (console.error(
-              "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultSelectValue = !0));
-          target$jscomp$0.push(startChunkForTag("select"));
-          var children$jscomp$0 = null,
-            innerHTML$jscomp$0 = null,
-            propKey$jscomp$0;
-          for (propKey$jscomp$0 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-              var propValue$jscomp$0 = props[propKey$jscomp$0];
-              if (null != propValue$jscomp$0)
-                switch (propKey$jscomp$0) {
-                  case "children":
-                    children$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "defaultValue":
-                  case "value":
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$0,
-                      propValue$jscomp$0
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-          return children$jscomp$0;
-        case "option":
-          var selectedValue = formatContext.selectedValue;
-          target$jscomp$0.push(startChunkForTag("option"));
-          var children$jscomp$1 = null,
-            value = null,
-            selected = null,
-            innerHTML$jscomp$1 = null,
-            propKey$jscomp$1;
-          for (propKey$jscomp$1 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-              var propValue$jscomp$1 = props[propKey$jscomp$1];
-              if (null != propValue$jscomp$1)
-                switch (propKey$jscomp$1) {
-                  case "children":
-                    children$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "selected":
-                    selected = propValue$jscomp$1;
-                    didWarnSelectedSetOnOption ||
-                      (console.error(
-                        "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                      ),
-                      (didWarnSelectedSetOnOption = !0));
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "value":
-                    value = propValue$jscomp$1;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$1,
-                      propValue$jscomp$1
-                    );
-                }
-            }
-          if (null != selectedValue) {
-            if (null !== value) {
-              checkAttributeStringCoercion(value, "value");
-              var stringValue = "" + value;
-            } else
-              null === innerHTML$jscomp$1 ||
-                didWarnInvalidOptionInnerHTML ||
-                ((didWarnInvalidOptionInnerHTML = !0),
-                console.error(
-                  "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-                )),
-                (stringValue = flattenOptionChildren(children$jscomp$1));
-            if (isArrayImpl(selectedValue))
-              for (var i = 0; i < selectedValue.length; i++) {
-                if (
-                  (checkAttributeStringCoercion(selectedValue[i], "value"),
-                  "" + selectedValue[i] === stringValue)
-                ) {
-                  target$jscomp$0.push(selectedMarkerAttribute);
-                  break;
-                }
-              }
-            else
-              checkAttributeStringCoercion(selectedValue, "select.value"),
-                "" + selectedValue === stringValue &&
-                  target$jscomp$0.push(selectedMarkerAttribute);
-          } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-          return children$jscomp$1;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultTextareaValue ||
-            (console.error(
-              "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultTextareaValue = !0));
-          target$jscomp$0.push(startChunkForTag("textarea"));
-          var value$jscomp$0 = null,
-            defaultValue = null,
-            children$jscomp$2 = null,
-            propKey$jscomp$2;
-          for (propKey$jscomp$2 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-              var propValue$jscomp$2 = props[propKey$jscomp$2];
-              if (null != propValue$jscomp$2)
-                switch (propKey$jscomp$2) {
-                  case "children":
-                    children$jscomp$2 = propValue$jscomp$2;
-                    break;
-                  case "value":
-                    value$jscomp$0 = propValue$jscomp$2;
-                    break;
-                  case "defaultValue":
-                    defaultValue = propValue$jscomp$2;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$2,
-                      propValue$jscomp$2
-                    );
-                }
-            }
-          null === value$jscomp$0 &&
-            null !== defaultValue &&
-            (value$jscomp$0 = defaultValue);
-          target$jscomp$0.push(endOfStartTag);
-          if (null != children$jscomp$2) {
-            console.error(
-              "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-            );
-            if (null != value$jscomp$0)
-              throw Error(
-                "If you supply `defaultValue` on a <textarea>, do not pass children."
-              );
-            if (isArrayImpl(children$jscomp$2)) {
-              if (1 < children$jscomp$2.length)
-                throw Error("<textarea> can only have at most one child.");
-              checkHtmlStringCoercion(children$jscomp$2[0]);
-              value$jscomp$0 = "" + children$jscomp$2[0];
-            }
-            checkHtmlStringCoercion(children$jscomp$2);
-            value$jscomp$0 = "" + children$jscomp$2;
-          }
-          "string" === typeof value$jscomp$0 &&
-            "\n" === value$jscomp$0[0] &&
-            target$jscomp$0.push(leadingNewline);
-          null !== value$jscomp$0 &&
-            (checkAttributeStringCoercion(value$jscomp$0, "value"),
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser("" + value$jscomp$0))
-            ));
-          return null;
-        case "input":
-          checkControlledValueProps("input", props);
-          target$jscomp$0.push(startChunkForTag("input"));
-          var name = null,
-            formAction = null,
-            formEncType = null,
-            formMethod = null,
-            formTarget = null,
-            value$jscomp$1 = null,
-            defaultValue$jscomp$0 = null,
-            checked = null,
-            defaultChecked = null,
-            propKey$jscomp$3;
-          for (propKey$jscomp$3 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-              var propValue$jscomp$3 = props[propKey$jscomp$3];
-              if (null != propValue$jscomp$3)
-                switch (propKey$jscomp$3) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  case "name":
-                    name = propValue$jscomp$3;
-                    break;
-                  case "formAction":
-                    formAction = propValue$jscomp$3;
-                    break;
-                  case "formEncType":
-                    formEncType = propValue$jscomp$3;
-                    break;
-                  case "formMethod":
-                    formMethod = propValue$jscomp$3;
-                    break;
-                  case "formTarget":
-                    formTarget = propValue$jscomp$3;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = propValue$jscomp$3;
-                    break;
-                  case "defaultValue":
-                    defaultValue$jscomp$0 = propValue$jscomp$3;
-                    break;
-                  case "checked":
-                    checked = propValue$jscomp$3;
-                    break;
-                  case "value":
-                    value$jscomp$1 = propValue$jscomp$3;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$3,
-                      propValue$jscomp$3
-                    );
-                }
-            }
-          null === formAction ||
-            "image" === props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'An input can only specify a formAction along with type="submit" or type="image".'
-            ));
-          var formData = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction,
-            formEncType,
-            formMethod,
-            formTarget,
-            name
-          );
-          null === checked ||
-            null === defaultChecked ||
-            didWarnDefaultChecked ||
-            (console.error(
-              "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultChecked = !0));
-          null === value$jscomp$1 ||
-            null === defaultValue$jscomp$0 ||
-            didWarnDefaultInputValue ||
-            (console.error(
-              "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultInputValue = !0));
-          null !== checked
-            ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-            : null !== defaultChecked &&
-              pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-          null !== value$jscomp$1
-            ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-            : null !== defaultValue$jscomp$0 &&
-              pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-          target$jscomp$0.push(endOfStartTagSelfClosing);
-          null != formData &&
-            formData.forEach(pushAdditionalFormField, target$jscomp$0);
-          return null;
-        case "button":
-          target$jscomp$0.push(startChunkForTag("button"));
-          var children$jscomp$3 = null,
-            innerHTML$jscomp$2 = null,
-            name$jscomp$0 = null,
-            formAction$jscomp$0 = null,
-            formEncType$jscomp$0 = null,
-            formMethod$jscomp$0 = null,
-            formTarget$jscomp$0 = null,
-            propKey$jscomp$4;
-          for (propKey$jscomp$4 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-              var propValue$jscomp$4 = props[propKey$jscomp$4];
-              if (null != propValue$jscomp$4)
-                switch (propKey$jscomp$4) {
-                  case "children":
-                    children$jscomp$3 = propValue$jscomp$4;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$2 = propValue$jscomp$4;
-                    break;
-                  case "name":
-                    name$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formAction":
-                    formAction$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formEncType":
-                    formEncType$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formMethod":
-                    formMethod$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formTarget":
-                    formTarget$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$4,
-                      propValue$jscomp$4
-                    );
-                }
-            }
-          null === formAction$jscomp$0 ||
-            null == props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'A button can only specify a formAction along with type="submit" or no type.'
-            ));
-          var formData$jscomp$0 = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction$jscomp$0,
-            formEncType$jscomp$0,
-            formMethod$jscomp$0,
-            formTarget$jscomp$0,
-            name$jscomp$0
-          );
-          target$jscomp$0.push(endOfStartTag);
-          null != formData$jscomp$0 &&
-            formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-          if ("string" === typeof children$jscomp$3) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$3))
-            );
-            var JSCompiler_inline_result$jscomp$1 = null;
-          } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-          return JSCompiler_inline_result$jscomp$1;
-        case "form":
-          target$jscomp$0.push(startChunkForTag("form"));
-          var children$jscomp$4 = null,
-            innerHTML$jscomp$3 = null,
-            formAction$jscomp$1 = null,
-            formEncType$jscomp$1 = null,
-            formMethod$jscomp$1 = null,
-            formTarget$jscomp$1 = null,
-            propKey$jscomp$5;
-          for (propKey$jscomp$5 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-              var propValue$jscomp$5 = props[propKey$jscomp$5];
-              if (null != propValue$jscomp$5)
-                switch (propKey$jscomp$5) {
-                  case "children":
-                    children$jscomp$4 = propValue$jscomp$5;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$3 = propValue$jscomp$5;
-                    break;
-                  case "action":
-                    formAction$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "encType":
-                    formEncType$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "method":
-                    formMethod$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "target":
-                    formTarget$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$5,
-                      propValue$jscomp$5
-                    );
-                }
-            }
-          var formData$jscomp$1 = null,
-            formActionName = null;
-          if ("function" === typeof formAction$jscomp$1) {
-            (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-              didWarnFormActionMethod ||
-              ((didWarnFormActionMethod = !0),
-              console.error(
-                "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-              ));
-            null === formTarget$jscomp$1 ||
-              didWarnFormActionTarget ||
-              ((didWarnFormActionTarget = !0),
-              console.error(
-                "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-              ));
-            var customFields = getCustomFormFields(
-              resumableState,
-              formAction$jscomp$1
-            );
-            null !== customFields
-              ? ((formAction$jscomp$1 = customFields.action || ""),
-                (formEncType$jscomp$1 = customFields.encType),
-                (formMethod$jscomp$1 = customFields.method),
-                (formTarget$jscomp$1 = customFields.target),
-                (formData$jscomp$1 = customFields.data),
-                (formActionName = customFields.name))
-              : (target$jscomp$0.push(
-                  attributeSeparator,
-                  stringToChunk("action"),
-                  attributeAssign,
-                  actionJavaScriptURL,
-                  attributeEnd
-                ),
-                (formTarget$jscomp$1 =
-                  formMethod$jscomp$1 =
-                  formEncType$jscomp$1 =
-                  formAction$jscomp$1 =
-                    null),
-                injectFormReplayingRuntime(resumableState, renderState));
-          }
-          null != formAction$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-          null != formEncType$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-          null != formMethod$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-          null != formTarget$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-          target$jscomp$0.push(endOfStartTag);
-          null !== formActionName &&
-            (target$jscomp$0.push(startHiddenInputChunk),
-            pushStringAttribute(target$jscomp$0, "name", formActionName),
-            target$jscomp$0.push(endOfStartTagSelfClosing),
-            null != formData$jscomp$1 &&
-              formData$jscomp$1.forEach(
-                pushAdditionalFormField,
-                target$jscomp$0
-              ));
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-          if ("string" === typeof children$jscomp$4) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$4))
-            );
-            var JSCompiler_inline_result$jscomp$2 = null;
-          } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-          return JSCompiler_inline_result$jscomp$2;
-        case "menuitem":
-          target$jscomp$0.push(startChunkForTag("menuitem"));
-          for (var propKey$jscomp$6 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-              var propValue$jscomp$6 = props[propKey$jscomp$6];
-              if (null != propValue$jscomp$6)
-                switch (propKey$jscomp$6) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$6,
-                      propValue$jscomp$6
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          return null;
-        case "object":
-          target$jscomp$0.push(startChunkForTag("object"));
-          var children$jscomp$5 = null,
-            innerHTML$jscomp$4 = null,
-            propKey$jscomp$7;
-          for (propKey$jscomp$7 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-              var propValue$jscomp$7 = props[propKey$jscomp$7];
-              if (null != propValue$jscomp$7)
-                switch (propKey$jscomp$7) {
-                  case "children":
-                    children$jscomp$5 = propValue$jscomp$7;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$4 = propValue$jscomp$7;
-                    break;
-                  case "data":
-                    checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                    var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                    if ("" === sanitizedValue) {
-                      console.error(
-                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                        propKey$jscomp$7,
-                        propKey$jscomp$7
-                      );
-                      break;
-                    }
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      stringToChunk("data"),
-                      attributeAssign,
-                      stringToChunk(escapeTextForBrowser(sanitizedValue)),
-                      attributeEnd
-                    );
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$7,
-                      propValue$jscomp$7
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-          if ("string" === typeof children$jscomp$5) {
-            target$jscomp$0.push(
-              stringToChunk(escapeTextForBrowser(children$jscomp$5))
-            );
-            var JSCompiler_inline_result$jscomp$3 = null;
-          } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-          return JSCompiler_inline_result$jscomp$3;
-        case "title":
-          var noscriptTagInScope = formatContext.tagScope & 1,
-            isFallback = formatContext.tagScope & 4;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$6 = props.children,
-              child = Array.isArray(children$jscomp$6)
-                ? 2 > children$jscomp$6.length
-                  ? children$jscomp$6[0]
-                  : null
-                : children$jscomp$6;
-            Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-              ? console.error(
-                  "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-                  children$jscomp$6.length
-                )
-              : "function" === typeof child || "symbol" === typeof child
-                ? console.error(
-                    "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                    "function" === typeof child ? "a Function" : "a Sybmol"
-                  )
-                : child &&
-                  child.toString === {}.toString &&
-                  (null != child.$$typeof
-                    ? console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                      )
-                    : console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                      ));
-          }
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-              target$jscomp$0,
-              props
-            );
-          else
-            isFallback
-              ? (JSCompiler_inline_result$jscomp$4 = null)
-              : (pushTitleImpl(renderState.hoistableChunks, props),
-                (JSCompiler_inline_result$jscomp$4 = void 0));
-          return JSCompiler_inline_result$jscomp$4;
-        case "link":
-          var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-            isFallback$jscomp$0 = formatContext.tagScope & 4,
-            rel = props.rel,
-            href = props.href,
-            precedence = props.precedence;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$0 ||
-            null != props.itemProp ||
-            "string" !== typeof rel ||
-            "string" !== typeof href ||
-            "" === href
-          ) {
-            "stylesheet" === rel &&
-              "string" === typeof props.precedence &&
-              (("string" === typeof href && href) ||
-                console.error(
-                  'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-                  null === href
-                    ? "`null`"
-                    : void 0 === href
-                      ? "`undefined`"
-                      : "" === href
-                        ? "an empty string"
-                        : 'something with type "' + typeof href + '"'
-                ));
-            pushLinkImpl(target$jscomp$0, props);
-            var JSCompiler_inline_result$jscomp$5 = null;
-          } else if ("stylesheet" === props.rel)
-            if (
-              "string" !== typeof precedence ||
-              null != props.disabled ||
-              props.onLoad ||
-              props.onError
-            ) {
-              if ("string" === typeof precedence)
-                if (null != props.disabled)
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-                  );
-                else if (props.onLoad || props.onError) {
-                  var propDescription =
-                    props.onLoad && props.onError
-                      ? "`onLoad` and `onError` props"
-                      : props.onLoad
-                        ? "`onLoad` prop"
-                        : "`onError` prop";
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                    propDescription,
-                    propDescription
-                  );
-                }
-              JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                target$jscomp$0,
-                props
-              );
-            } else {
-              var styleQueue = renderState.styles.get(precedence),
-                resourceState = resumableState.styleResources.hasOwnProperty(
-                  href
-                )
-                  ? resumableState.styleResources[href]
-                  : void 0;
-              if (resourceState !== EXISTS) {
-                resumableState.styleResources[href] = EXISTS;
-                styleQueue ||
-                  ((styleQueue = {
-                    precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                    rules: [],
-                    hrefs: [],
-                    sheets: new Map()
-                  }),
-                  renderState.styles.set(precedence, styleQueue));
-                var resource = {
-                  state: PENDING$1,
-                  props: assign({}, props, {
-                    "data-precedence": props.precedence,
-                    precedence: null
-                  })
-                };
-                if (resourceState) {
-                  2 === resourceState.length &&
-                    adoptPreloadCredentials(resource.props, resourceState);
-                  var preloadResource =
-                    renderState.preloads.stylesheets.get(href);
-                  preloadResource && 0 < preloadResource.length
-                    ? (preloadResource.length = 0)
-                    : (resource.state = PRELOADED);
-                }
-                styleQueue.sheets.set(href, resource);
-                hoistableState && hoistableState.stylesheets.add(resource);
-              } else if (styleQueue) {
-                var _resource = styleQueue.sheets.get(href);
-                _resource &&
-                  hoistableState &&
-                  hoistableState.stylesheets.add(_resource);
-              }
-              textEmbedded && target$jscomp$0.push(textSeparator);
-              JSCompiler_inline_result$jscomp$5 = null;
-            }
-          else
-            props.onLoad || props.onError
-              ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                  target$jscomp$0,
-                  props
-                ))
-              : (textEmbedded && target$jscomp$0.push(textSeparator),
-                (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-                  ? null
-                  : pushLinkImpl(renderState.hoistableChunks, props)));
-          return JSCompiler_inline_result$jscomp$5;
-        case "script":
-          var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-            asyncProp = props.async;
-          if (
-            "string" !== typeof props.src ||
-            !props.src ||
-            !asyncProp ||
-            "function" === typeof asyncProp ||
-            "symbol" === typeof asyncProp ||
-            props.onLoad ||
-            props.onError ||
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$1 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-              target$jscomp$0,
-              props
-            );
-          else {
-            var key = props.src;
-            if ("module" === props.type) {
-              var resources = resumableState.moduleScriptResources;
-              var preloads = renderState.preloads.moduleScripts;
-            } else
-              (resources = resumableState.scriptResources),
-                (preloads = renderState.preloads.scripts);
-            var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-              ? resources[key]
-              : void 0;
-            if (resourceState$jscomp$0 !== EXISTS) {
-              resources[key] = EXISTS;
-              var scriptProps = props;
-              if (resourceState$jscomp$0) {
-                2 === resourceState$jscomp$0.length &&
-                  ((scriptProps = assign({}, props)),
-                  adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-                var preloadResource$jscomp$0 = preloads.get(key);
-                preloadResource$jscomp$0 &&
-                  (preloadResource$jscomp$0.length = 0);
-              }
-              var resource$jscomp$0 = [];
-              renderState.scripts.add(resource$jscomp$0);
-              pushScriptImpl(resource$jscomp$0, scriptProps);
-            }
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$6 = null;
-          }
-          return JSCompiler_inline_result$jscomp$6;
-        case "style":
-          var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$7 = props.children,
-              child$jscomp$0 = Array.isArray(children$jscomp$7)
-                ? 2 > children$jscomp$7.length
-                  ? children$jscomp$7[0]
-                  : null
-                : children$jscomp$7;
-            ("function" === typeof child$jscomp$0 ||
-              "symbol" === typeof child$jscomp$0 ||
-              Array.isArray(child$jscomp$0)) &&
-              console.error(
-                "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-                "function" === typeof child$jscomp$0
-                  ? "a Function"
-                  : "symbol" === typeof child$jscomp$0
-                    ? "a Sybmol"
-                    : "an Array"
-              );
-          }
-          var precedence$jscomp$0 = props.precedence,
-            href$jscomp$0 = props.href,
-            nonce = props.nonce;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$2 ||
-            null != props.itemProp ||
-            "string" !== typeof precedence$jscomp$0 ||
-            "string" !== typeof href$jscomp$0 ||
-            "" === href$jscomp$0
-          ) {
-            target$jscomp$0.push(startChunkForTag("style"));
-            var children$jscomp$8 = null,
-              innerHTML$jscomp$5 = null,
-              propKey$jscomp$8;
-            for (propKey$jscomp$8 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-                var propValue$jscomp$8 = props[propKey$jscomp$8];
-                if (null != propValue$jscomp$8)
-                  switch (propKey$jscomp$8) {
-                    case "children":
-                      children$jscomp$8 = propValue$jscomp$8;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$5 = propValue$jscomp$8;
-                      break;
-                    default:
-                      pushAttribute(
-                        target$jscomp$0,
-                        propKey$jscomp$8,
-                        propValue$jscomp$8
-                      );
-                  }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            var child$jscomp$1 = Array.isArray(children$jscomp$8)
-              ? 2 > children$jscomp$8.length
-                ? children$jscomp$8[0]
-                : null
-              : children$jscomp$8;
-            "function" !== typeof child$jscomp$1 &&
-              "symbol" !== typeof child$jscomp$1 &&
-              null !== child$jscomp$1 &&
-              void 0 !== child$jscomp$1 &&
-              target$jscomp$0.push(
-                stringToChunk(escapeStyleTextContent(child$jscomp$1))
-              );
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$5,
-              children$jscomp$8
-            );
-            target$jscomp$0.push(endChunkForTag("style"));
-            var JSCompiler_inline_result$jscomp$7 = null;
-          } else {
-            href$jscomp$0.includes(" ") &&
-              console.error(
-                'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-                href$jscomp$0
-              );
-            var styleQueue$jscomp$0 =
-                renderState.styles.get(precedence$jscomp$0),
-              resourceState$jscomp$1 =
-                resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-                  ? resumableState.styleResources[href$jscomp$0]
-                  : void 0;
-            if (resourceState$jscomp$1 !== EXISTS) {
-              resumableState.styleResources[href$jscomp$0] = EXISTS;
-              resourceState$jscomp$1 &&
-                console.error(
-                  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-                  href$jscomp$0
-                );
-              styleQueue$jscomp$0 ||
-                ((styleQueue$jscomp$0 = {
-                  precedence: stringToChunk(
-                    escapeTextForBrowser(precedence$jscomp$0)
-                  ),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(
-                  precedence$jscomp$0,
-                  styleQueue$jscomp$0
-                ));
-              var nonceStyle = renderState.nonce.style;
-              if (nonceStyle && nonceStyle !== nonce)
-                console.error(
-                  'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-                  precedence$jscomp$0,
-                  nonce,
-                  nonceStyle
-                );
-              else {
-                !nonceStyle &&
-                  nonce &&
-                  console.error(
-                    'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                    precedence$jscomp$0,
-                    nonce
-                  );
-                styleQueue$jscomp$0.hrefs.push(
-                  stringToChunk(escapeTextForBrowser(href$jscomp$0))
-                );
-                var target = styleQueue$jscomp$0.rules,
-                  children$jscomp$9 = null,
-                  innerHTML$jscomp$6 = null,
-                  propKey$jscomp$9;
-                for (propKey$jscomp$9 in props)
-                  if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                    var propValue$jscomp$9 = props[propKey$jscomp$9];
-                    if (null != propValue$jscomp$9)
-                      switch (propKey$jscomp$9) {
-                        case "children":
-                          children$jscomp$9 = propValue$jscomp$9;
-                          break;
-                        case "dangerouslySetInnerHTML":
-                          innerHTML$jscomp$6 = propValue$jscomp$9;
-                      }
-                  }
-                var child$jscomp$2 = Array.isArray(children$jscomp$9)
-                  ? 2 > children$jscomp$9.length
-                    ? children$jscomp$9[0]
-                    : null
-                  : children$jscomp$9;
-                "function" !== typeof child$jscomp$2 &&
-                  "symbol" !== typeof child$jscomp$2 &&
-                  null !== child$jscomp$2 &&
-                  void 0 !== child$jscomp$2 &&
-                  target.push(
-                    stringToChunk(escapeStyleTextContent(child$jscomp$2))
-                  );
-                pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-              }
-            }
-            styleQueue$jscomp$0 &&
-              hoistableState &&
-              hoistableState.styles.add(styleQueue$jscomp$0);
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$7 = void 0;
-          }
-          return JSCompiler_inline_result$jscomp$7;
-        case "meta":
-          var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-            isFallback$jscomp$1 = formatContext.tagScope & 4;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$3 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-              target$jscomp$0,
-              props,
-              "meta"
-            );
-          else
-            textEmbedded && target$jscomp$0.push(textSeparator),
-              (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-                ? null
-                : "string" === typeof props.charSet
-                  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-                  : "viewport" === props.name
-                    ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                    : pushSelfClosing(
-                        renderState.hoistableChunks,
-                        props,
-                        "meta"
-                      ));
-          return JSCompiler_inline_result$jscomp$8;
-        case "listing":
-        case "pre":
-          target$jscomp$0.push(startChunkForTag(type));
-          var children$jscomp$10 = null,
-            innerHTML$jscomp$7 = null,
-            propKey$jscomp$10;
-          for (propKey$jscomp$10 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-              var propValue$jscomp$10 = props[propKey$jscomp$10];
-              if (null != propValue$jscomp$10)
-                switch (propKey$jscomp$10) {
-                  case "children":
-                    children$jscomp$10 = propValue$jscomp$10;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$7 = propValue$jscomp$10;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$10,
-                      propValue$jscomp$10
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          if (null != innerHTML$jscomp$7) {
-            if (null != children$jscomp$10)
-              throw Error(
-                "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-              );
-            if (
-              "object" !== typeof innerHTML$jscomp$7 ||
-              !("__html" in innerHTML$jscomp$7)
-            )
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            var html = innerHTML$jscomp$7.__html;
-            null !== html &&
-              void 0 !== html &&
-              ("string" === typeof html && 0 < html.length && "\n" === html[0]
-                ? target$jscomp$0.push(leadingNewline, stringToChunk(html))
-                : (checkHtmlStringCoercion(html),
-                  target$jscomp$0.push(stringToChunk("" + html))));
-          }
-          "string" === typeof children$jscomp$10 &&
-            "\n" === children$jscomp$10[0] &&
-            target$jscomp$0.push(leadingNewline);
-          return children$jscomp$10;
-        case "img":
-          var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-            src = props.src,
-            srcSet = props.srcSet;
-          if (
-            !(
-              "lazy" === props.loading ||
-              (!src && !srcSet) ||
-              ("string" !== typeof src && null != src) ||
-              ("string" !== typeof srcSet && null != srcSet) ||
-              "low" === props.fetchPriority ||
-              pictureOrNoScriptTagInScope
-            ) &&
-            ("string" !== typeof src ||
-              ":" !== src[4] ||
-              ("d" !== src[0] && "D" !== src[0]) ||
-              ("a" !== src[1] && "A" !== src[1]) ||
-              ("t" !== src[2] && "T" !== src[2]) ||
-              ("a" !== src[3] && "A" !== src[3])) &&
-            ("string" !== typeof srcSet ||
-              ":" !== srcSet[4] ||
-              ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-              ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-              ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-              ("a" !== srcSet[3] && "A" !== srcSet[3]))
-          ) {
-            null !== hoistableState &&
-              formatContext.tagScope & 64 &&
-              (hoistableState.suspenseyImages = !0);
-            var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-              key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-              promotablePreloads = renderState.preloads.images,
-              resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-            if (resource$jscomp$1) {
-              if (
-                "high" === props.fetchPriority ||
-                10 > renderState.highImagePreloads.size
-              )
-                promotablePreloads.delete(key$jscomp$0),
-                  renderState.highImagePreloads.add(resource$jscomp$1);
-            } else if (
-              !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-            ) {
-              resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-              var input = props.crossOrigin;
-              var crossOrigin =
-                "string" === typeof input
-                  ? "use-credentials" === input
-                    ? input
-                    : ""
-                  : void 0;
-              var headers = renderState.headers,
-                header;
-              headers &&
-              0 < headers.remainingCapacity &&
-              "string" !== typeof props.srcSet &&
-              ("high" === props.fetchPriority ||
-                500 > headers.highImagePreloads.length) &&
-              ((header = getPreloadAsHeader(src, "image", {
-                imageSrcSet: props.srcSet,
-                imageSizes: props.sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                nonce: props.nonce,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.refererPolicy
-              })),
-              0 <= (headers.remainingCapacity -= header.length + 2))
-                ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-                  headers.highImagePreloads &&
-                    (headers.highImagePreloads += ", "),
-                  (headers.highImagePreloads += header))
-                : ((resource$jscomp$1 = []),
-                  pushLinkImpl(resource$jscomp$1, {
-                    rel: "preload",
-                    as: "image",
-                    href: srcSet ? void 0 : src,
-                    imageSrcSet: srcSet,
-                    imageSizes: sizes,
-                    crossOrigin: crossOrigin,
-                    integrity: props.integrity,
-                    type: props.type,
-                    fetchPriority: props.fetchPriority,
-                    referrerPolicy: props.referrerPolicy
-                  }),
-                  "high" === props.fetchPriority ||
-                  10 > renderState.highImagePreloads.size
-                    ? renderState.highImagePreloads.add(resource$jscomp$1)
-                    : (renderState.bulkPreloads.add(resource$jscomp$1),
-                      promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-            }
-          }
-          return pushSelfClosing(target$jscomp$0, props, "img");
-        case "base":
-        case "area":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-          return pushSelfClosing(target$jscomp$0, props, type);
-        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":
-          break;
-        case "head":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble = preambleState || renderState.preamble;
-            if (preamble.headChunks)
-              throw Error("The `<head>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(headPreambleContributionChunk);
-            preamble.headChunks = [];
-            var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-              preamble.headChunks,
-              props,
-              "head"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "head"
-            );
-          return JSCompiler_inline_result$jscomp$9;
-        case "body":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble$jscomp$0 = preambleState || renderState.preamble;
-            if (preamble$jscomp$0.bodyChunks)
-              throw Error("The `<body>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(bodyPreambleContributionChunk);
-            preamble$jscomp$0.bodyChunks = [];
-            var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-              preamble$jscomp$0.bodyChunks,
-              props,
-              "body"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "body"
-            );
-          return JSCompiler_inline_result$jscomp$10;
-        case "html":
-          if (formatContext.insertionMode === ROOT_HTML_MODE) {
-            var preamble$jscomp$1 = preambleState || renderState.preamble;
-            if (preamble$jscomp$1.htmlChunks)
-              throw Error("The `<html>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(htmlPreambleContributionChunk);
-            preamble$jscomp$1.htmlChunks = [doctypeChunk];
-            var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-              preamble$jscomp$1.htmlChunks,
-              props,
-              "html"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "html"
-            );
-          return JSCompiler_inline_result$jscomp$11;
-        default:
-          if (-1 !== type.indexOf("-")) {
-            target$jscomp$0.push(startChunkForTag(type));
-            var children$jscomp$11 = null,
-              innerHTML$jscomp$8 = null,
-              propKey$jscomp$11;
-            for (propKey$jscomp$11 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-                var propValue$jscomp$11 = props[propKey$jscomp$11];
-                if (null != propValue$jscomp$11) {
-                  var attributeName = propKey$jscomp$11;
-                  switch (propKey$jscomp$11) {
-                    case "children":
-                      children$jscomp$11 = propValue$jscomp$11;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$8 = propValue$jscomp$11;
-                      break;
-                    case "style":
-                      pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                      break;
-                    case "suppressContentEditableWarning":
-                    case "suppressHydrationWarning":
-                    case "ref":
-                      break;
-                    case "className":
-                      attributeName = "class";
-                    default:
-                      if (
-                        isAttributeNameSafe(propKey$jscomp$11) &&
-                        "function" !== typeof propValue$jscomp$11 &&
-                        "symbol" !== typeof propValue$jscomp$11 &&
-                        !1 !== propValue$jscomp$11
-                      ) {
-                        if (!0 === propValue$jscomp$11)
-                          propValue$jscomp$11 = "";
-                        else if ("object" === typeof propValue$jscomp$11)
-                          continue;
-                        target$jscomp$0.push(
-                          attributeSeparator,
-                          stringToChunk(attributeName),
-                          attributeAssign,
-                          stringToChunk(
-                            escapeTextForBrowser(propValue$jscomp$11)
-                          ),
-                          attributeEnd
-                        );
-                      }
-                  }
-                }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$8,
-              children$jscomp$11
-            );
-            return children$jscomp$11;
-          }
-      }
-      return pushStartGenericElement(target$jscomp$0, props, type);
-    }
-    function endChunkForTag(tag) {
-      var chunk = endTagCache.get(tag);
-      void 0 === chunk &&
-        ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-        endTagCache.set(tag, chunk));
-      return chunk;
-    }
-    function hoistPreambleState(renderState, preambleState) {
-      renderState = renderState.preamble;
-      null === renderState.htmlChunks &&
-        preambleState.htmlChunks &&
-        (renderState.htmlChunks = preambleState.htmlChunks);
-      null === renderState.headChunks &&
-        preambleState.headChunks &&
-        (renderState.headChunks = preambleState.headChunks);
-      null === renderState.bodyChunks &&
-        preambleState.bodyChunks &&
-        (renderState.bodyChunks = preambleState.bodyChunks);
-    }
-    function writeBootstrap(destination, renderState) {
-      renderState = renderState.bootstrapChunks;
-      for (var i = 0; i < renderState.length - 1; i++)
-        writeChunk(destination, renderState[i]);
-      return i < renderState.length
-        ? ((i = renderState[i]),
-          (renderState.length = 0),
-          writeChunkAndReturn(destination, i))
-        : !0;
-    }
-    function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-      writeChunk(destination, startPendingSuspenseBoundary1);
-      if (null === id)
-        throw Error(
-          "An ID must have been assigned before we can complete the boundary."
-        );
-      writeChunk(destination, renderState.boundaryPrefix);
-      writeChunk(destination, stringToChunk(id.toString(16)));
-      return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-    }
-    function writeStartSegment(destination, renderState, formatContext, id) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return (
-            writeChunk(destination, startSegmentHTML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentHTML2)
-          );
-        case SVG_MODE:
-          return (
-            writeChunk(destination, startSegmentSVG),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentSVG2)
-          );
-        case MATHML_MODE:
-          return (
-            writeChunk(destination, startSegmentMathML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentMathML2)
-          );
-        case HTML_TABLE_MODE:
-          return (
-            writeChunk(destination, startSegmentTable),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTable2)
-          );
-        case HTML_TABLE_BODY_MODE:
-          return (
-            writeChunk(destination, startSegmentTableBody),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTableBody2)
-          );
-        case HTML_TABLE_ROW_MODE:
-          return (
-            writeChunk(destination, startSegmentTableRow),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentTableRow2)
-          );
-        case HTML_COLGROUP_MODE:
-          return (
-            writeChunk(destination, startSegmentColGroup),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, stringToChunk(id.toString(16))),
-            writeChunkAndReturn(destination, startSegmentColGroup2)
-          );
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function writeEndSegment(destination, formatContext) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return writeChunkAndReturn(destination, endSegmentHTML);
-        case SVG_MODE:
-          return writeChunkAndReturn(destination, endSegmentSVG);
-        case MATHML_MODE:
-          return writeChunkAndReturn(destination, endSegmentMathML);
-        case HTML_TABLE_MODE:
-          return writeChunkAndReturn(destination, endSegmentTable);
-        case HTML_TABLE_BODY_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableBody);
-        case HTML_TABLE_ROW_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableRow);
-        case HTML_COLGROUP_MODE:
-          return writeChunkAndReturn(destination, endSegmentColGroup);
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function escapeJSStringsForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInInstructionScripts,
-        function (match) {
-          switch (match) {
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function escapeJSObjectForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInScripts,
-        function (match) {
-          switch (match) {
-            case "&":
-              return "\\u0026";
-            case ">":
-              return "\\u003e";
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function flushStyleTagsLateForBoundary(styleQueue) {
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      0 < rules.length &&
-        0 === hrefs.length &&
-        console.error(
-          "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-        );
-      var i = 0;
-      if (hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, lateStyleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        for (
-          writeChunk(this, lateStyleTagResourceOpen2);
-          i < hrefs.length - 1;
-          i++
-        )
-          writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-        writeChunk(this, hrefs[i]);
-        writeChunk(this, lateStyleTagResourceOpen3);
-        for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-        destinationHasCapacity = writeChunkAndReturn(
-          this,
-          lateStyleTagTemplateClose
-        );
-        currentlyRenderingBoundaryHasStylesToHoist = !0;
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function hasStylesToHoist(stylesheet) {
-      return stylesheet.state !== PREAMBLE
-        ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-        : !1;
-    }
-    function writeHoistablesForBoundary(
-      destination,
-      hoistableState,
-      renderState
-    ) {
-      currentlyRenderingBoundaryHasStylesToHoist = !1;
-      destinationHasCapacity = !0;
-      currentlyFlushingRenderState = renderState;
-      hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-      currentlyFlushingRenderState = null;
-      hoistableState.stylesheets.forEach(hasStylesToHoist);
-      currentlyRenderingBoundaryHasStylesToHoist &&
-        (renderState.stylesToHoist = !0);
-      return destinationHasCapacity;
-    }
-    function flushResource(resource) {
-      for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-      resource.length = 0;
-    }
-    function flushStyleInPreamble(stylesheet) {
-      pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-      for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-        writeChunk(this, stylesheetFlushingQueue[i]);
-      stylesheetFlushingQueue.length = 0;
-      stylesheet.state = PREAMBLE;
-    }
-    function flushStylesInPreamble(styleQueue) {
-      var hasStylesheets = 0 < styleQueue.sheets.size;
-      styleQueue.sheets.forEach(flushStyleInPreamble, this);
-      styleQueue.sheets.clear();
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      if (!hasStylesheets || hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, styleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        styleQueue = 0;
-        if (hrefs.length) {
-          for (
-            writeChunk(this, styleTagResourceOpen2);
-            styleQueue < hrefs.length - 1;
-            styleQueue++
-          )
-            writeChunk(this, hrefs[styleQueue]),
-              writeChunk(this, spaceSeparator);
-          writeChunk(this, hrefs[styleQueue]);
-        }
-        writeChunk(this, styleTagResourceOpen3);
-        for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-          writeChunk(this, rules[styleQueue]);
-        writeChunk(this, styleTagResourceClose);
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function preloadLateStyle(stylesheet) {
-      if (stylesheet.state === PENDING$1) {
-        stylesheet.state = PRELOADED;
-        var props = stylesheet.props;
-        pushLinkImpl(stylesheetFlushingQueue, {
-          rel: "preload",
-          as: "style",
-          href: stylesheet.props.href,
-          crossOrigin: props.crossOrigin,
-          fetchPriority: props.fetchPriority,
-          integrity: props.integrity,
-          media: props.media,
-          hrefLang: props.hrefLang,
-          referrerPolicy: props.referrerPolicy
-        });
-        for (
-          stylesheet = 0;
-          stylesheet < stylesheetFlushingQueue.length;
-          stylesheet++
-        )
-          writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-        stylesheetFlushingQueue.length = 0;
-      }
-    }
-    function preloadLateStyles(styleQueue) {
-      styleQueue.sheets.forEach(preloadLateStyle, this);
-      styleQueue.sheets.clear();
-    }
-    function pushCompletedShellIdAttribute(target, resumableState) {
-      (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-        ((resumableState.instructions |= SentCompletedShellId),
-        target.push(
-          completedShellIdAttributeStart,
-          stringToChunk(
-            escapeTextForBrowser("_" + resumableState.idPrefix + "R_")
-          ),
-          attributeEnd
-        ));
-    }
-    function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-      writeChunk(destination, arrayFirstOpenBracket);
-      var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-      hoistableState.stylesheets.forEach(function (resource) {
-        if (resource.state !== PREAMBLE)
-          if (resource.state === LATE)
-            writeChunk(destination, nextArrayOpenBrackChunk),
-              (resource = resource.props.href),
-              checkAttributeStringCoercion(resource, "href"),
-              writeChunk(
-                destination,
-                stringToChunk(
-                  escapeJSObjectForInstructionScripts("" + resource)
-                )
-              ),
-              writeChunk(destination, arrayCloseBracket),
-              (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-          else {
-            writeChunk(destination, nextArrayOpenBrackChunk);
-            var precedence = resource.props["data-precedence"],
-              props = resource.props,
-              coercedHref = sanitizeURL("" + resource.props.href);
-            writeChunk(
-              destination,
-              stringToChunk(escapeJSObjectForInstructionScripts(coercedHref))
-            );
-            checkAttributeStringCoercion(precedence, "precedence");
-            precedence = "" + precedence;
-            writeChunk(destination, arrayInterstitial);
-            writeChunk(
-              destination,
-              stringToChunk(escapeJSObjectForInstructionScripts(precedence))
-            );
-            for (var propKey in props)
-              if (
-                hasOwnProperty.call(props, propKey) &&
-                ((precedence = props[propKey]), null != precedence)
-              )
-                switch (propKey) {
-                  case "href":
-                  case "rel":
-                  case "precedence":
-                  case "data-precedence":
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    writeStyleResourceAttributeInJS(
-                      destination,
-                      propKey,
-                      precedence
-                    );
-                }
-            writeChunk(destination, arrayCloseBracket);
-            nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-            resource.state = LATE;
-          }
-      });
-      writeChunk(destination, arrayCloseBracket);
-    }
-    function writeStyleResourceAttributeInJS(destination, name, value) {
-      var attributeName = name.toLowerCase();
-      switch (typeof value) {
-        case "function":
-        case "symbol":
-          return;
-      }
-      switch (name) {
-        case "innerHTML":
-        case "dangerouslySetInnerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "style":
-        case "ref":
-          return;
-        case "className":
-          attributeName = "class";
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        case "hidden":
-          if (!1 === value) return;
-          name = "";
-          break;
-        case "src":
-        case "href":
-          value = sanitizeURL(value);
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        default:
-          if (
-            (2 < name.length &&
-              ("o" === name[0] || "O" === name[0]) &&
-              ("n" === name[1] || "N" === name[1])) ||
-            !isAttributeNameSafe(name)
-          )
-            return;
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-      }
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(
-        destination,
-        stringToChunk(escapeJSObjectForInstructionScripts(attributeName))
-      );
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(
-        destination,
-        stringToChunk(escapeJSObjectForInstructionScripts(name))
-      );
-    }
-    function createHoistableState() {
-      return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-    }
-    function preloadBootstrapScriptOrModule(
-      resumableState,
-      renderState,
-      href,
-      props
-    ) {
-      (resumableState.scriptResources.hasOwnProperty(href) ||
-        resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-        console.error(
-          'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-          href
-        );
-      resumableState.scriptResources[href] = EXISTS;
-      resumableState.moduleScriptResources[href] = EXISTS;
-      resumableState = [];
-      pushLinkImpl(resumableState, props);
-      renderState.bootstrapScripts.add(resumableState);
-    }
-    function adoptPreloadCredentials(target, preloadState) {
-      null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-      null == target.integrity && (target.integrity = preloadState[1]);
-    }
-    function getPreloadAsHeader(href, as, params) {
-      href = escapeHrefForLinkHeaderURLContext(href);
-      as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-      as = "<" + href + '>; rel=preload; as="' + as + '"';
-      for (var paramName in params)
-        hasOwnProperty.call(params, paramName) &&
-          ((href = params[paramName]),
-          "string" === typeof href &&
-            (as +=
-              "; " +
-              paramName.toLowerCase() +
-              '="' +
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                href,
-                paramName
-              ) +
-              '"'));
-      return as;
-    }
-    function escapeHrefForLinkHeaderURLContext(hrefInput) {
-      checkAttributeStringCoercion(hrefInput, "href");
-      return ("" + hrefInput).replace(
-        regexForHrefInLinkHeaderURLContext,
-        escapeHrefForLinkHeaderURLContextReplacer
-      );
-    }
-    function escapeHrefForLinkHeaderURLContextReplacer(match) {
-      switch (match) {
-        case "<":
-          return "%3C";
-        case ">":
-          return "%3E";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-      willCoercionThrow(value) &&
-        (console.error(
-          "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-          name,
-          typeName(value)
-        ),
-        testStringCoercion(value));
-      return ("" + value).replace(
-        regexForLinkHeaderQuotedParamValueContext,
-        escapeStringForLinkHeaderQuotedParamValueContextReplacer
-      );
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-      switch (match) {
-        case '"':
-          return "%22";
-        case "'":
-          return "%27";
-        case ";":
-          return "%3B";
-        case ",":
-          return "%2C";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function hoistStyleQueueDependency(styleQueue) {
-      this.styles.add(styleQueue);
-    }
-    function hoistStylesheetDependency(stylesheet) {
-      this.stylesheets.add(stylesheet);
-    }
-    function hoistHoistables(parentState, childState) {
-      childState.styles.forEach(hoistStyleQueueDependency, parentState);
-      childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-      childState.suspenseyImages && (parentState.suspenseyImages = !0);
-    }
-    function hasSuspenseyContent(hoistableState) {
-      return (
-        0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages
-      );
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function popToNearestCommonAncestor(prev, next) {
-      if (prev !== next) {
-        prev.context._currentValue = prev.parentValue;
-        prev = prev.parent;
-        var parentNext = next.parent;
-        if (null === prev) {
-          if (null !== parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-        } else {
-          if (null === parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-          popToNearestCommonAncestor(prev, parentNext);
-        }
-        next.context._currentValue = next.value;
-      }
-    }
-    function popAllPrevious(prev) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      null !== prev && popAllPrevious(prev);
-    }
-    function pushAllNext(next) {
-      var parentNext = next.parent;
-      null !== parentNext && pushAllNext(parentNext);
-      next.context._currentValue = next.value;
-    }
-    function popPreviousToCommonLevel(prev, next) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      if (null === prev)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === next.depth
-        ? popToNearestCommonAncestor(prev, next)
-        : popPreviousToCommonLevel(prev, next);
-    }
-    function popNextToCommonLevel(prev, next) {
-      var parentNext = next.parent;
-      if (null === parentNext)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === parentNext.depth
-        ? popToNearestCommonAncestor(prev, parentNext)
-        : popNextToCommonLevel(prev, parentNext);
-      next.context._currentValue = next.value;
-    }
-    function switchContext(newSnapshot) {
-      var prev = currentActiveSnapshot;
-      prev !== newSnapshot &&
-        (null === prev
-          ? pushAllNext(newSnapshot)
-          : null === newSnapshot
-            ? popAllPrevious(prev)
-            : prev.depth === newSnapshot.depth
-              ? popToNearestCommonAncestor(prev, newSnapshot)
-              : prev.depth > newSnapshot.depth
-                ? popPreviousToCommonLevel(prev, newSnapshot)
-                : popNextToCommonLevel(prev, newSnapshot),
-        (currentActiveSnapshot = newSnapshot));
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          getComponentNameFromType(publicInstance)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnAboutNoopUpdateForComponent[warningKey] ||
-        (console.error(
-          "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-    }
-    function pushTreeContext(baseContext, totalChildren, index) {
-      var baseIdWithLeadingBit = baseContext.id;
-      baseContext = baseContext.overflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        return {
-          id:
-            (1 << (32 - clz32(totalChildren) + baseLength)) |
-            (index << baseLength) |
-            baseIdWithLeadingBit,
-          overflow: length + baseContext
-        };
-      }
-      return {
-        id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-        overflow: baseContext
-      };
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function noop() {}
-    function trackUsedThenable(thenableState, thenable, index) {
-      index = thenableState[index];
-      void 0 === index
-        ? thenableState.push(thenable)
-        : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          "string" === typeof thenable.status
-            ? thenable.then(noop, noop)
-            : ((thenableState = thenable),
-              (thenableState.status = "pending"),
-              thenableState.then(
-                function (fulfilledValue) {
-                  if ("pending" === thenable.status) {
-                    var fulfilledThenable = thenable;
-                    fulfilledThenable.status = "fulfilled";
-                    fulfilledThenable.value = fulfilledValue;
-                  }
-                },
-                function (error) {
-                  if ("pending" === thenable.status) {
-                    var rejectedThenable = thenable;
-                    rejectedThenable.status = "rejected";
-                    rejectedThenable.reason = error;
-                  }
-                }
-              ));
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-          suspendedThenable = thenable;
-          throw SuspenseException;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      return thenable;
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function resolveCurrentlyRenderingComponent() {
-      if (null === currentlyRenderingComponent)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      isInHookUserCodeInDev &&
-        console.error(
-          "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-        );
-      return currentlyRenderingComponent;
-    }
-    function createHook() {
-      if (0 < numberOfReRenders)
-        throw Error("Rendered more hooks than during the previous render");
-      return { memoizedState: null, queue: null, next: null };
-    }
-    function createWorkInProgressHook() {
-      null === workInProgressHook
-        ? null === firstWorkInProgressHook
-          ? ((isReRender = !1),
-            (firstWorkInProgressHook = workInProgressHook = createHook()))
-          : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-        : null === workInProgressHook.next
-          ? ((isReRender = !1),
-            (workInProgressHook = workInProgressHook.next = createHook()))
-          : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-      return workInProgressHook;
-    }
-    function getThenableStateAfterSuspending() {
-      var state = thenableState;
-      thenableState = null;
-      return state;
-    }
-    function resetHooksState() {
-      isInHookUserCodeInDev = !1;
-      currentlyRenderingKeyPath =
-        currentlyRenderingRequest =
-        currentlyRenderingTask =
-        currentlyRenderingComponent =
-          null;
-      didScheduleRenderPhaseUpdate = !1;
-      firstWorkInProgressHook = null;
-      numberOfReRenders = 0;
-      workInProgressHook = renderPhaseUpdates = null;
-    }
-    function readContext(context) {
-      isInHookUserCodeInDev &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return context._currentValue;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function useReducer(reducer, initialArg, init) {
-      reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      if (isReRender) {
-        init = workInProgressHook.queue;
-        initialArg = init.dispatch;
-        if (null !== renderPhaseUpdates) {
-          var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-          if (void 0 !== firstRenderPhaseUpdate) {
-            renderPhaseUpdates.delete(init);
-            init = workInProgressHook.memoizedState;
-            do {
-              var action = firstRenderPhaseUpdate.action;
-              isInHookUserCodeInDev = !0;
-              init = reducer(init, action);
-              isInHookUserCodeInDev = !1;
-              firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-            } while (null !== firstRenderPhaseUpdate);
-            workInProgressHook.memoizedState = init;
-            return [init, initialArg];
-          }
-        }
-        return [workInProgressHook.memoizedState, initialArg];
-      }
-      isInHookUserCodeInDev = !0;
-      reducer =
-        reducer === basicStateReducer
-          ? "function" === typeof initialArg
-            ? initialArg()
-            : initialArg
-          : void 0 !== init
-            ? init(initialArg)
-            : initialArg;
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = reducer;
-      reducer = workInProgressHook.queue = { last: null, dispatch: null };
-      reducer = reducer.dispatch = dispatchAction.bind(
-        null,
-        currentlyRenderingComponent,
-        reducer
-      );
-      return [workInProgressHook.memoizedState, reducer];
-    }
-    function useMemo(nextCreate, deps) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      if (null !== workInProgressHook) {
-        var prevState = workInProgressHook.memoizedState;
-        if (null !== prevState && null !== deps) {
-          a: {
-            var JSCompiler_inline_result = prevState[1];
-            if (null === JSCompiler_inline_result)
-              console.error(
-                "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-                currentHookNameInDev
-              ),
-                (JSCompiler_inline_result = !1);
-            else {
-              deps.length !== JSCompiler_inline_result.length &&
-                console.error(
-                  "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-                  currentHookNameInDev,
-                  "[" + deps.join(", ") + "]",
-                  "[" + JSCompiler_inline_result.join(", ") + "]"
-                );
-              for (
-                var i = 0;
-                i < JSCompiler_inline_result.length && i < deps.length;
-                i++
-              )
-                if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-                  JSCompiler_inline_result = !1;
-                  break a;
-                }
-              JSCompiler_inline_result = !0;
-            }
-          }
-          if (JSCompiler_inline_result) return prevState[0];
-        }
-      }
-      isInHookUserCodeInDev = !0;
-      nextCreate = nextCreate();
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = [nextCreate, deps];
-      return nextCreate;
-    }
-    function dispatchAction(componentIdentity, queue, action) {
-      if (25 <= numberOfReRenders)
-        throw Error(
-          "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-        );
-      if (componentIdentity === currentlyRenderingComponent)
-        if (
-          ((didScheduleRenderPhaseUpdate = !0),
-          (componentIdentity = { action: action, next: null }),
-          null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-          (action = renderPhaseUpdates.get(queue)),
-          void 0 === action)
-        )
-          renderPhaseUpdates.set(queue, componentIdentity);
-        else {
-          for (queue = action; null !== queue.next; ) queue = queue.next;
-          queue.next = componentIdentity;
-        }
-    }
-    function throwOnUseEffectEventCall() {
-      throw Error(
-        "A function wrapped in useEffectEvent can't be called during rendering."
-      );
-    }
-    function unsupportedStartTransition() {
-      throw Error("startTransition cannot be called during server rendering.");
-    }
-    function unsupportedSetOptimisticState() {
-      throw Error("Cannot update optimistic state while rendering.");
-    }
-    function useActionState(action, initialState, permalink) {
-      resolveCurrentlyRenderingComponent();
-      var actionStateHookIndex = actionStateCounter++,
-        request = currentlyRenderingRequest;
-      if ("function" === typeof action.$$FORM_ACTION) {
-        var nextPostbackStateKey = null,
-          componentKeyPath = currentlyRenderingKeyPath;
-        request = request.formState;
-        var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-        if (null !== request && "function" === typeof isSignatureEqual) {
-          var postbackKey = request[1];
-          isSignatureEqual.call(action, request[2], request[3]) &&
-            ((nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-            postbackKey === nextPostbackStateKey &&
-              ((actionStateMatchingIndex = actionStateHookIndex),
-              (initialState = request[0])));
-        }
-        var boundAction = action.bind(null, initialState);
-        action = function (payload) {
-          boundAction(payload);
-        };
-        "function" === typeof boundAction.$$FORM_ACTION &&
-          (action.$$FORM_ACTION = function (prefix) {
-            prefix = boundAction.$$FORM_ACTION(prefix);
-            void 0 !== permalink &&
-              (checkAttributeStringCoercion(permalink, "target"),
-              (permalink += ""),
-              (prefix.action = permalink));
-            var formData = prefix.data;
-            formData &&
-              (null === nextPostbackStateKey &&
-                (nextPostbackStateKey =
-                  void 0 !== permalink
-                    ? "p" + permalink
-                    : "k" +
-                      murmurhash3_32_gc(
-                        JSON.stringify([
-                          componentKeyPath,
-                          null,
-                          actionStateHookIndex
-                        ]),
-                        0
-                      )),
-              formData.append("$ACTION_KEY", nextPostbackStateKey));
-            return prefix;
-          });
-        return [initialState, action, !1];
-      }
-      var _boundAction = action.bind(null, initialState);
-      return [
-        initialState,
-        function (payload) {
-          _boundAction(payload);
-        },
-        !1
-      ];
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = []);
-      return trackUsedThenable(thenableState, thenable, index);
-    }
-    function unsupportedRefresh() {
-      throw Error("Cache cannot be refreshed during server rendering.");
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function prepareStackTrace(error, structuredStackTrace) {
-      error = (error.name || "Error") + ": " + (error.message || "");
-      for (var i = 0; i < structuredStackTrace.length; i++)
-        error += "\n    at " + structuredStackTrace[i].toString();
-      return error;
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = prepareStackTrace;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = prepareStackTrace;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeComponentStackByType(type) {
-      if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-      if ("function" === typeof type)
-        return type.prototype && type.prototype.isReactComponent
-          ? describeNativeComponentFrame(type, !0)
-          : describeNativeComponentFrame(type, !1);
-      if ("object" === typeof type && null !== type) {
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeNativeComponentFrame(type.render, !1);
-          case REACT_MEMO_TYPE:
-            return describeNativeComponentFrame(type.type, !1);
-          case REACT_LAZY_TYPE:
-            var lazyComponent = type,
-              payload = lazyComponent._payload;
-            lazyComponent = lazyComponent._init;
-            try {
-              type = lazyComponent(payload);
-            } catch (x) {
-              return describeBuiltInComponentFrame("Lazy");
-            }
-            return describeComponentStackByType(type);
-        }
-        if ("string" === typeof type.name) {
-          a: {
-            payload = type.name;
-            lazyComponent = type.env;
-            type = type.debugLocation;
-            if (null != type) {
-              type = formatOwnerStack(type);
-              var idx = type.lastIndexOf("\n");
-              type = -1 === idx ? type : type.slice(idx + 1);
-              if (-1 !== type.indexOf(payload)) {
-                payload = "\n" + type;
-                break a;
-              }
-            }
-            payload = describeBuiltInComponentFrame(
-              payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-            );
-          }
-          return payload;
-        }
-      }
-      switch (type) {
-        case REACT_SUSPENSE_LIST_TYPE:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case REACT_SUSPENSE_TYPE:
-          return describeBuiltInComponentFrame("Suspense");
-      }
-      return "";
-    }
-    function resetOwnerStackLimit() {
-      var now = getCurrentTime();
-      1e3 < now - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = now));
-    }
-    function isEligibleForOutlining(request, boundary) {
-      return (
-        (500 < boundary.byteSize ||
-          hasSuspenseyContent(boundary.contentState)) &&
-        null === boundary.contentPreamble
-      );
-    }
-    function defaultErrorHandler(error) {
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [error].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0],
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            )
-          : error.splice(
-              0,
-              0,
-              "\u001b[0m\u001b[7m%c%s\u001b[0m%c",
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            );
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else console.error(error);
-      return null;
-    }
-    function RequestInstance(
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var abortSet = new Set();
-      this.destination = null;
-      this.flushScheduled = !1;
-      this.resumableState = resumableState;
-      this.renderState = renderState;
-      this.rootFormatContext = rootFormatContext;
-      this.progressiveChunkSize =
-        void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-      this.status = 10;
-      this.fatalError = null;
-      this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-      this.completedPreambleSegments = this.completedRootSegment = null;
-      this.byteSize = 0;
-      this.abortableTasks = abortSet;
-      this.pingedTasks = [];
-      this.clientRenderedBoundaries = [];
-      this.completedBoundaries = [];
-      this.partialBoundaries = [];
-      this.trackedPostpones = null;
-      this.onError = void 0 === onError ? defaultErrorHandler : onError;
-      this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-      this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-      this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-      this.onShellError = void 0 === onShellError ? noop : onShellError;
-      this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-      this.formState = void 0 === formState ? null : formState;
-      this.didWarnForKey = null;
-    }
-    function createRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      resetOwnerStackLimit();
-      resumableState = new RequestInstance(
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        formState
-      );
-      renderState = createPendingSegment(
-        resumableState,
-        0,
-        null,
-        rootFormatContext,
-        !1,
-        !1
-      );
-      renderState.parentFlushed = !0;
-      children = createRenderTask(
-        resumableState,
-        null,
-        children,
-        -1,
-        null,
-        renderState,
-        null,
-        null,
-        resumableState.abortableTasks,
-        null,
-        rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      resumableState.pingedTasks.push(children);
-      return resumableState;
-    }
-    function createPrerenderRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = createRequest(
-        children,
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        void 0
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function resumeRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      resetOwnerStackLimit();
-      renderState = new RequestInstance(
-        postponedState.resumableState,
-        renderState,
-        postponedState.rootFormatContext,
-        postponedState.progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        null
-      );
-      renderState.nextSegmentId = postponedState.nextSegmentId;
-      if ("number" === typeof postponedState.replaySlots)
-        return (
-          (onError = createPendingSegment(
-            renderState,
-            0,
-            null,
-            postponedState.rootFormatContext,
-            !1,
-            !1
-          )),
-          (onError.parentFlushed = !0),
-          (children = createRenderTask(
-            renderState,
-            null,
-            children,
-            -1,
-            null,
-            onError,
-            null,
-            null,
-            renderState.abortableTasks,
-            null,
-            postponedState.rootFormatContext,
-            null,
-            emptyTreeContext,
-            null,
-            null,
-            emptyContextObject,
-            null
-          )),
-          pushComponentStack(children),
-          renderState.pingedTasks.push(children),
-          renderState
-        );
-      children = createReplayTask(
-        renderState,
-        null,
-        {
-          nodes: postponedState.replayNodes,
-          slots: postponedState.replaySlots,
-          pendingTasks: 0
-        },
-        children,
-        -1,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      renderState.pingedTasks.push(children);
-      return renderState;
-    }
-    function resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = resumeRequest(
-        children,
-        postponedState,
-        renderState,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function resolveRequest() {
-      if (currentRequest) return currentRequest;
-      if (supportsRequestStorage) {
-        var store = requestStorage.getStore();
-        if (store) return store;
-      }
-      return null;
-    }
-    function pingTask(request, task) {
-      request.pingedTasks.push(task);
-      1 === request.pingedTasks.length &&
-        ((request.flushScheduled = null !== request.destination),
-        null !== request.trackedPostpones || 10 === request.status
-          ? scheduleMicrotask(function () {
-              return performWork(request);
-            })
-          : setTimeout(function () {
-              return performWork(request);
-            }, 0));
-    }
-    function createSuspenseBoundary(
-      request,
-      row,
-      fallbackAbortableTasks,
-      contentPreamble,
-      fallbackPreamble
-    ) {
-      fallbackAbortableTasks = {
-        status: PENDING,
-        rootSegmentID: -1,
-        parentFlushed: !1,
-        pendingTasks: 0,
-        row: row,
-        completedSegments: [],
-        byteSize: 0,
-        fallbackAbortableTasks: fallbackAbortableTasks,
-        errorDigest: null,
-        contentState: createHoistableState(),
-        fallbackState: createHoistableState(),
-        contentPreamble: contentPreamble,
-        fallbackPreamble: fallbackPreamble,
-        trackedContentKeyPath: null,
-        trackedFallbackNode: null,
-        errorMessage: null,
-        errorStack: null,
-        errorComponentStack: null
-      };
-      null !== row &&
-        (row.pendingTasks++,
-        (contentPreamble = row.boundaries),
-        null !== contentPreamble &&
-          (request.allPendingTasks++,
-          fallbackAbortableTasks.pendingTasks++,
-          contentPreamble.push(fallbackAbortableTasks)),
-        (request = row.inheritedHoistables),
-        null !== request &&
-          hoistHoistables(fallbackAbortableTasks.contentState, request));
-      return fallbackAbortableTasks;
-    }
-    function createRenderTask(
-      request,
-      thenableState,
-      node,
-      childIndex,
-      blockedBoundary,
-      blockedSegment,
-      blockedPreamble,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      var task = {
-        replay: null,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: blockedSegment,
-        blockedPreamble: blockedPreamble,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createReplayTask(
-      request,
-      thenableState,
-      replay,
-      node,
-      childIndex,
-      blockedBoundary,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      replay.pendingTasks++;
-      var task = {
-        replay: replay,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: null,
-        blockedPreamble: null,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createPendingSegment(
-      request,
-      index,
-      boundary,
-      parentFormatContext,
-      lastPushedText,
-      textEmbedded
-    ) {
-      return {
-        status: PENDING,
-        parentFlushed: !1,
-        id: -1,
-        index: index,
-        chunks: [],
-        children: [],
-        preambleChildren: [],
-        parentFormatContext: parentFormatContext,
-        boundary: boundary,
-        lastPushedText: lastPushedText,
-        textEmbedded: textEmbedded
-      };
-    }
-    function getCurrentStackInDEV() {
-      if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-        return "";
-      var componentStack = currentTaskInDEV.componentStack;
-      try {
-        var info = "";
-        if ("string" === typeof componentStack.type)
-          info += describeBuiltInComponentFrame(componentStack.type);
-        else if ("function" === typeof componentStack.type) {
-          if (!componentStack.owner) {
-            var JSCompiler_temp_const = info,
-              fn = componentStack.type,
-              name = fn ? fn.displayName || fn.name : "";
-            var JSCompiler_inline_result = name
-              ? describeBuiltInComponentFrame(name)
-              : "";
-            info = JSCompiler_temp_const + JSCompiler_inline_result;
-          }
-        } else
-          componentStack.owner ||
-            (info += describeComponentStackByType(componentStack.type));
-        for (; componentStack; )
-          (JSCompiler_temp_const = null),
-            null != componentStack.debugStack
-              ? (JSCompiler_temp_const = formatOwnerStack(
-                  componentStack.debugStack
-                ))
-              : ((JSCompiler_inline_result = componentStack),
-                null != JSCompiler_inline_result.stack &&
-                  (JSCompiler_temp_const =
-                    "string" !== typeof JSCompiler_inline_result.stack
-                      ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                          JSCompiler_inline_result.stack
-                        ))
-                      : JSCompiler_inline_result.stack)),
-            (componentStack = componentStack.owner) &&
-              JSCompiler_temp_const &&
-              (info += "\n" + JSCompiler_temp_const);
-        var JSCompiler_inline_result$jscomp$0 = info;
-      } catch (x) {
-        JSCompiler_inline_result$jscomp$0 =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result$jscomp$0;
-    }
-    function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--) {
-          var info = debugInfo[i];
-          if ("string" === typeof info.name) break;
-          if ("number" === typeof info.time) break;
-          if (null != info.awaited) {
-            var bestStack = null == info.debugStack ? info.awaited : info;
-            if (void 0 !== bestStack.debugStack) {
-              task.componentStack = {
-                parent: task.componentStack,
-                type: info,
-                owner: bestStack.owner,
-                stack: bestStack.debugStack
-              };
-              task.debugTask = bestStack.debugTask;
-              break;
-            }
-          }
-        }
-    }
-    function pushServerComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var componentInfo = debugInfo[i];
-          "string" === typeof componentInfo.name &&
-            void 0 !== componentInfo.debugStack &&
-            ((task.componentStack = {
-              parent: task.componentStack,
-              type: componentInfo,
-              owner: componentInfo.owner,
-              stack: componentInfo.debugStack
-            }),
-            (task.debugTask = componentInfo.debugTask));
-        }
-    }
-    function pushComponentStack(task) {
-      var node = task.node;
-      if ("object" === typeof node && null !== node)
-        switch (node.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-            var type = node.type,
-              owner = node._owner,
-              stack = node._debugStack;
-            pushServerComponentStack(task, node._debugInfo);
-            task.debugTask = node._debugTask;
-            task.componentStack = {
-              parent: task.componentStack,
-              type: type,
-              owner: owner,
-              stack: stack
-            };
-            break;
-          case REACT_LAZY_TYPE:
-            pushServerComponentStack(task, node._debugInfo);
-            break;
-          default:
-            "function" === typeof node.then &&
-              pushServerComponentStack(task, node._debugInfo);
-        }
-    }
-    function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-      componentStack
-    ) {
-      return null === componentStack
-        ? null
-        : {
-            parent: componentStack.parent,
-            type: "Suspense Fallback",
-            owner: componentStack.owner,
-            stack: componentStack.stack
-          };
-    }
-    function getThrownInfo(node$jscomp$0) {
-      var errorInfo = {};
-      node$jscomp$0 &&
-        Object.defineProperty(errorInfo, "componentStack", {
-          configurable: !0,
-          enumerable: !0,
-          get: function () {
-            try {
-              var info = "",
-                node = node$jscomp$0;
-              do
-                (info += describeComponentStackByType(node.type)),
-                  (node = node.parent);
-              while (node);
-              var stack = info;
-            } catch (x) {
-              stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-            }
-            Object.defineProperty(errorInfo, "componentStack", {
-              value: stack
-            });
-            return stack;
-          }
-        });
-      return errorInfo;
-    }
-    function encodeErrorForBoundary(
-      boundary,
-      digest,
-      error,
-      thrownInfo,
-      wasAborted
-    ) {
-      boundary.errorDigest = digest;
-      error instanceof Error
-        ? ((digest = String(error.message)), (error = String(error.stack)))
-        : ((digest =
-            "object" === typeof error && null !== error
-              ? describeObjectForErrorMessage(error)
-              : String(error)),
-          (error = null));
-      wasAborted = wasAborted
-        ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-        : "Switched to client rendering because the server rendering errored:\n\n";
-      boundary.errorMessage = wasAborted + digest;
-      boundary.errorStack = null !== error ? wasAborted + error : null;
-      boundary.errorComponentStack = thrownInfo.componentStack;
-    }
-    function logRecoverableError(request, error, errorInfo, debugTask) {
-      request = request.onError;
-      error = debugTask
-        ? debugTask.run(request.bind(null, error, errorInfo))
-        : request(error, errorInfo);
-      if (null != error && "string" !== typeof error)
-        console.error(
-          'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-          typeof error
-        );
-      else return error;
-    }
-    function fatalError(request, error, errorInfo, debugTask) {
-      errorInfo = request.onShellError;
-      var onFatalError = request.onFatalError;
-      debugTask
-        ? (debugTask.run(errorInfo.bind(null, error)),
-          debugTask.run(onFatalError.bind(null, error)))
-        : (errorInfo(error), onFatalError(error));
-      null !== request.destination
-        ? ((request.status = CLOSED),
-          closeWithError(request.destination, error))
-        : ((request.status = 13), (request.fatalError = error));
-    }
-    function finishSuspenseListRow(request, row) {
-      unblockSuspenseListRow(request, row.next, row.hoistables);
-    }
-    function unblockSuspenseListRow(
-      request,
-      unblockedRow,
-      inheritedHoistables
-    ) {
-      for (; null !== unblockedRow; ) {
-        null !== inheritedHoistables &&
-          (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-          (unblockedRow.inheritedHoistables = inheritedHoistables));
-        var unblockedBoundaries = unblockedRow.boundaries;
-        if (null !== unblockedBoundaries) {
-          unblockedRow.boundaries = null;
-          for (var i = 0; i < unblockedBoundaries.length; i++) {
-            var unblockedBoundary = unblockedBoundaries[i];
-            null !== inheritedHoistables &&
-              hoistHoistables(
-                unblockedBoundary.contentState,
-                inheritedHoistables
-              );
-            finishedTask(request, unblockedBoundary, null, null);
-          }
-        }
-        unblockedRow.pendingTasks--;
-        if (0 < unblockedRow.pendingTasks) break;
-        inheritedHoistables = unblockedRow.hoistables;
-        unblockedRow = unblockedRow.next;
-      }
-    }
-    function tryToResolveTogetherRow(request, togetherRow) {
-      var boundaries = togetherRow.boundaries;
-      if (
-        null !== boundaries &&
-        togetherRow.pendingTasks === boundaries.length
-      ) {
-        for (
-          var allCompleteAndInlinable = !0, i = 0;
-          i < boundaries.length;
-          i++
-        ) {
-          var rowBoundary = boundaries[i];
-          if (
-            1 !== rowBoundary.pendingTasks ||
-            rowBoundary.parentFlushed ||
-            isEligibleForOutlining(request, rowBoundary)
-          ) {
-            allCompleteAndInlinable = !1;
-            break;
-          }
-        }
-        allCompleteAndInlinable &&
-          unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-      }
-    }
-    function createSuspenseListRow(previousRow) {
-      var newRow = {
-        pendingTasks: 1,
-        boundaries: null,
-        hoistables: createHoistableState(),
-        inheritedHoistables: null,
-        together: !1,
-        next: null
-      };
-      null !== previousRow &&
-        0 < previousRow.pendingTasks &&
-        (newRow.pendingTasks++,
-        (newRow.boundaries = []),
-        (previousRow.next = newRow));
-      return newRow;
-    }
-    function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-      var prevKeyPath = task.keyPath,
-        prevTreeContext = task.treeContext,
-        prevRow = task.row,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node.props.children._debugInfo);
-      task.keyPath = keyPath;
-      keyPath = rows.length;
-      var previousSuspenseListRow = null;
-      if (null !== task.replay) {
-        var resumeSlots = task.replay.slots;
-        if (null !== resumeSlots && "object" === typeof resumeSlots)
-          for (var n = 0; n < keyPath; n++) {
-            var i =
-                "backwards" !== revealOrder &&
-                "unstable_legacy-backwards" !== revealOrder
-                  ? n
-                  : keyPath - 1 - n,
-              node = rows[i];
-            task.row = previousSuspenseListRow = createSuspenseListRow(
-              previousSuspenseListRow
-            );
-            task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-            var resumeSegmentID = resumeSlots[i];
-            "number" === typeof resumeSegmentID
-              ? (resumeNode(request, task, resumeSegmentID, node, i),
-                delete resumeSlots[i])
-              : renderNode(request, task, node, i);
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-          }
-        else
-          for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-            (n =
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder
-                ? resumeSlots
-                : keyPath - 1 - resumeSlots),
-              (i = rows[n]),
-              warnForMissingKey(request, task, i),
-              (task.row = previousSuspenseListRow =
-                createSuspenseListRow(previousSuspenseListRow)),
-              (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-              renderNode(request, task, i, n),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-      } else if (
-        "backwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder
-      )
-        for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-          (resumeSlots = rows[revealOrder]),
-            warnForMissingKey(request, task, resumeSlots),
-            (task.row = previousSuspenseListRow =
-              createSuspenseListRow(previousSuspenseListRow)),
-            (task.treeContext = pushTreeContext(
-              prevTreeContext,
-              keyPath,
-              revealOrder
-            )),
-            renderNode(request, task, resumeSlots, revealOrder),
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-      else {
-        revealOrder = task.blockedSegment;
-        resumeSlots = revealOrder.children.length;
-        n = revealOrder.chunks.length;
-        for (i = keyPath - 1; 0 <= i; i--) {
-          node = rows[i];
-          task.row = previousSuspenseListRow = createSuspenseListRow(
-            previousSuspenseListRow
-          );
-          task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-          resumeSegmentID = createPendingSegment(
-            request,
-            n,
-            null,
-            task.formatContext,
-            0 === i ? revealOrder.lastPushedText : !0,
-            !0
-          );
-          revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-          task.blockedSegment = resumeSegmentID;
-          warnForMissingKey(request, task, node);
-          try {
-            renderNode(request, task, node, i),
-              resumeSegmentID.lastPushedText &&
-                resumeSegmentID.textEmbedded &&
-                resumeSegmentID.chunks.push(textSeparator),
-              (resumeSegmentID.status = COMPLETED),
-              finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-          } catch (thrownValue) {
-            throw (
-              ((resumeSegmentID.status =
-                12 === request.status ? ABORTED : ERRORED),
-              thrownValue)
-            );
-          }
-        }
-        task.blockedSegment = revealOrder;
-        revealOrder.lastPushedText = !1;
-      }
-      null !== prevRow &&
-        null !== previousSuspenseListRow &&
-        0 < previousSuspenseListRow.pendingTasks &&
-        (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-      task.treeContext = prevTreeContext;
-      task.row = prevRow;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function renderWithHooks(
-      request,
-      task,
-      keyPath,
-      Component,
-      props,
-      secondArg
-    ) {
-      var prevThenableState = task.thenableState;
-      task.thenableState = null;
-      currentlyRenderingComponent = {};
-      currentlyRenderingTask = task;
-      currentlyRenderingRequest = request;
-      currentlyRenderingKeyPath = keyPath;
-      isInHookUserCodeInDev = !1;
-      actionStateCounter = localIdCounter = 0;
-      actionStateMatchingIndex = -1;
-      thenableIndexCounter = 0;
-      thenableState = prevThenableState;
-      for (
-        request = callComponentInDEV(Component, props, secondArg);
-        didScheduleRenderPhaseUpdate;
-
-      )
-        (didScheduleRenderPhaseUpdate = !1),
-          (actionStateCounter = localIdCounter = 0),
-          (actionStateMatchingIndex = -1),
-          (thenableIndexCounter = 0),
-          (numberOfReRenders += 1),
-          (workInProgressHook = null),
-          (request = Component(props, secondArg));
-      resetHooksState();
-      return request;
-    }
-    function finishFunctionComponent(
-      request,
-      task,
-      keyPath,
-      children,
-      hasId,
-      actionStateCount,
-      actionStateMatchingIndex
-    ) {
-      var didEmitActionStateMarkers = !1;
-      if (0 !== actionStateCount && null !== request.formState) {
-        var segment = task.blockedSegment;
-        if (null !== segment) {
-          didEmitActionStateMarkers = !0;
-          segment = segment.chunks;
-          for (var i = 0; i < actionStateCount; i++)
-            i === actionStateMatchingIndex
-              ? segment.push(formStateMarkerIsMatching)
-              : segment.push(formStateMarkerIsNotMatching);
-        }
-      }
-      actionStateCount = task.keyPath;
-      task.keyPath = keyPath;
-      hasId
-        ? ((keyPath = task.treeContext),
-          (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-          renderNode(request, task, children, -1),
-          (task.treeContext = keyPath))
-        : didEmitActionStateMarkers
-          ? renderNode(request, task, children, -1)
-          : renderNodeDestructive(request, task, children, -1);
-      task.keyPath = actionStateCount;
-    }
-    function renderElement(request, task, keyPath, type, props, ref) {
-      if ("function" === typeof type)
-        if (type.prototype && type.prototype.isReactComponent) {
-          var newProps = props;
-          if ("ref" in props) {
-            newProps = {};
-            for (var propName in props)
-              "ref" !== propName && (newProps[propName] = props[propName]);
-          }
-          var defaultProps = type.defaultProps;
-          if (defaultProps) {
-            newProps === props && (newProps = assign({}, newProps, props));
-            for (var _propName in defaultProps)
-              void 0 === newProps[_propName] &&
-                (newProps[_propName] = defaultProps[_propName]);
-          }
-          var resolvedProps = newProps;
-          var context = emptyContextObject,
-            contextType = type.contextType;
-          if (
-            "contextType" in type &&
-            null !== contextType &&
-            (void 0 === contextType ||
-              contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-            !didWarnAboutInvalidateContextType.has(type)
-          ) {
-            didWarnAboutInvalidateContextType.add(type);
-            var addendum =
-              void 0 === contextType
-                ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-                : "object" !== typeof contextType
-                  ? " However, it is set to a " + typeof contextType + "."
-                  : contextType.$$typeof === REACT_CONSUMER_TYPE
-                    ? " Did you accidentally pass the Context.Consumer instead?"
-                    : " However, it is set to an object with keys {" +
-                      Object.keys(contextType).join(", ") +
-                      "}.";
-            console.error(
-              "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-              getComponentNameFromType(type) || "Component",
-              addendum
-            );
-          }
-          "object" === typeof contextType &&
-            null !== contextType &&
-            (context = contextType._currentValue);
-          var instance = new type(resolvedProps, context);
-          if (
-            "function" === typeof type.getDerivedStateFromProps &&
-            (null === instance.state || void 0 === instance.state)
-          ) {
-            var componentName = getComponentNameFromType(type) || "Component";
-            didWarnAboutUninitializedState.has(componentName) ||
-              (didWarnAboutUninitializedState.add(componentName),
-              console.error(
-                "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-                componentName,
-                null === instance.state ? "null" : "undefined",
-                componentName
-              ));
-          }
-          if (
-            "function" === typeof type.getDerivedStateFromProps ||
-            "function" === typeof instance.getSnapshotBeforeUpdate
-          ) {
-            var foundWillMountName = null,
-              foundWillReceivePropsName = null,
-              foundWillUpdateName = null;
-            "function" === typeof instance.componentWillMount &&
-            !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ? (foundWillMountName = "componentWillMount")
-              : "function" === typeof instance.UNSAFE_componentWillMount &&
-                (foundWillMountName = "UNSAFE_componentWillMount");
-            "function" === typeof instance.componentWillReceiveProps &&
-            !0 !==
-              instance.componentWillReceiveProps.__suppressDeprecationWarning
-              ? (foundWillReceivePropsName = "componentWillReceiveProps")
-              : "function" ===
-                  typeof instance.UNSAFE_componentWillReceiveProps &&
-                (foundWillReceivePropsName =
-                  "UNSAFE_componentWillReceiveProps");
-            "function" === typeof instance.componentWillUpdate &&
-            !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-              ? (foundWillUpdateName = "componentWillUpdate")
-              : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-                (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-            if (
-              null !== foundWillMountName ||
-              null !== foundWillReceivePropsName ||
-              null !== foundWillUpdateName
-            ) {
-              var _componentName =
-                  getComponentNameFromType(type) || "Component",
-                newApiName =
-                  "function" === typeof type.getDerivedStateFromProps
-                    ? "getDerivedStateFromProps()"
-                    : "getSnapshotBeforeUpdate()";
-              didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-                (didWarnAboutLegacyLifecyclesAndDerivedState.add(
-                  _componentName
-                ),
-                console.error(
-                  "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                  _componentName,
-                  newApiName,
-                  null !== foundWillMountName
-                    ? "\n  " + foundWillMountName
-                    : "",
-                  null !== foundWillReceivePropsName
-                    ? "\n  " + foundWillReceivePropsName
-                    : "",
-                  null !== foundWillUpdateName
-                    ? "\n  " + foundWillUpdateName
-                    : ""
-                ));
-            }
-          }
-          var name = getComponentNameFromType(type) || "Component";
-          instance.render ||
-            (type.prototype && "function" === typeof type.prototype.render
-              ? console.error(
-                  "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                  name
-                )
-              : console.error(
-                  "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                  name
-                ));
-          !instance.getInitialState ||
-            instance.getInitialState.isReactClassApproved ||
-            instance.state ||
-            console.error(
-              "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-              name
-            );
-          instance.getDefaultProps &&
-            !instance.getDefaultProps.isReactClassApproved &&
-            console.error(
-              "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-              name
-            );
-          instance.contextType &&
-            console.error(
-              "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-              name
-            );
-          type.childContextTypes &&
-            !didWarnAboutChildContextTypes.has(type) &&
-            (didWarnAboutChildContextTypes.add(type),
-            console.error(
-              "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          type.contextTypes &&
-            !didWarnAboutContextTypes$1.has(type) &&
-            (didWarnAboutContextTypes$1.add(type),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          "function" === typeof instance.componentShouldUpdate &&
-            console.error(
-              "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-              name
-            );
-          type.prototype &&
-            type.prototype.isPureReactComponent &&
-            "undefined" !== typeof instance.shouldComponentUpdate &&
-            console.error(
-              "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-              getComponentNameFromType(type) || "A pure component"
-            );
-          "function" === typeof instance.componentDidUnmount &&
-            console.error(
-              "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-              name
-            );
-          "function" === typeof instance.componentDidReceiveProps &&
-            console.error(
-              "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-              name
-            );
-          "function" === typeof instance.componentWillRecieveProps &&
-            console.error(
-              "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-              name
-            );
-          "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-            console.error(
-              "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-              name
-            );
-          var hasMutatedProps = instance.props !== resolvedProps;
-          void 0 !== instance.props &&
-            hasMutatedProps &&
-            console.error(
-              "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-              name
-            );
-          instance.defaultProps &&
-            console.error(
-              "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-              name,
-              name
-            );
-          "function" !== typeof instance.getSnapshotBeforeUpdate ||
-            "function" === typeof instance.componentDidUpdate ||
-            didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-            (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-            console.error(
-              "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-              getComponentNameFromType(type)
-            ));
-          "function" === typeof instance.getDerivedStateFromProps &&
-            console.error(
-              "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof instance.getDerivedStateFromError &&
-            console.error(
-              "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof type.getSnapshotBeforeUpdate &&
-            console.error(
-              "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-              name
-            );
-          var state = instance.state;
-          state &&
-            ("object" !== typeof state || isArrayImpl(state)) &&
-            console.error("%s.state: must be set to an object or null", name);
-          "function" === typeof instance.getChildContext &&
-            "object" !== typeof type.childContextTypes &&
-            console.error(
-              "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-              name
-            );
-          var initialState = void 0 !== instance.state ? instance.state : null;
-          instance.updater = classComponentUpdater;
-          instance.props = resolvedProps;
-          instance.state = initialState;
-          var internalInstance = { queue: [], replace: !1 };
-          instance._reactInternals = internalInstance;
-          var contextType$jscomp$0 = type.contextType;
-          instance.context =
-            "object" === typeof contextType$jscomp$0 &&
-            null !== contextType$jscomp$0
-              ? contextType$jscomp$0._currentValue
-              : emptyContextObject;
-          if (instance.state === resolvedProps) {
-            var componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Component";
-            didWarnAboutDirectlyAssigningPropsToState.has(
-              componentName$jscomp$0
-            ) ||
-              (didWarnAboutDirectlyAssigningPropsToState.add(
-                componentName$jscomp$0
-              ),
-              console.error(
-                "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-                componentName$jscomp$0
-              ));
-          }
-          var getDerivedStateFromProps = type.getDerivedStateFromProps;
-          if ("function" === typeof getDerivedStateFromProps) {
-            var partialState = getDerivedStateFromProps(
-              resolvedProps,
-              initialState
-            );
-            if (void 0 === partialState) {
-              var componentName$jscomp$1 =
-                getComponentNameFromType(type) || "Component";
-              didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-                (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-                console.error(
-                  "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-                  componentName$jscomp$1
-                ));
-            }
-            var JSCompiler_inline_result =
-              null === partialState || void 0 === partialState
-                ? initialState
-                : assign({}, initialState, partialState);
-            instance.state = JSCompiler_inline_result;
-          }
-          if (
-            "function" !== typeof type.getDerivedStateFromProps &&
-            "function" !== typeof instance.getSnapshotBeforeUpdate &&
-            ("function" === typeof instance.UNSAFE_componentWillMount ||
-              "function" === typeof instance.componentWillMount)
-          ) {
-            var oldState = instance.state;
-            if ("function" === typeof instance.componentWillMount) {
-              if (
-                !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ) {
-                var componentName$jscomp$2 =
-                  getComponentNameFromType(type) || "Unknown";
-                didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-                  (console.warn(
-                    "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                    componentName$jscomp$2
-                  ),
-                  (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] =
-                    !0));
-              }
-              instance.componentWillMount();
-            }
-            "function" === typeof instance.UNSAFE_componentWillMount &&
-              instance.UNSAFE_componentWillMount();
-            oldState !== instance.state &&
-              (console.error(
-                "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-                getComponentNameFromType(type) || "Component"
-              ),
-              classComponentUpdater.enqueueReplaceState(
-                instance,
-                instance.state,
-                null
-              ));
-            if (
-              null !== internalInstance.queue &&
-              0 < internalInstance.queue.length
-            ) {
-              var oldQueue = internalInstance.queue,
-                oldReplace = internalInstance.replace;
-              internalInstance.queue = null;
-              internalInstance.replace = !1;
-              if (oldReplace && 1 === oldQueue.length)
-                instance.state = oldQueue[0];
-              else {
-                for (
-                  var nextState = oldReplace ? oldQueue[0] : instance.state,
-                    dontMutate = !0,
-                    i = oldReplace ? 1 : 0;
-                  i < oldQueue.length;
-                  i++
-                ) {
-                  var partial = oldQueue[i],
-                    partialState$jscomp$0 =
-                      "function" === typeof partial
-                        ? partial.call(
-                            instance,
-                            nextState,
-                            resolvedProps,
-                            void 0
-                          )
-                        : partial;
-                  null != partialState$jscomp$0 &&
-                    (dontMutate
-                      ? ((dontMutate = !1),
-                        (nextState = assign(
-                          {},
-                          nextState,
-                          partialState$jscomp$0
-                        )))
-                      : assign(nextState, partialState$jscomp$0));
-                }
-                instance.state = nextState;
-              }
-            } else internalInstance.queue = null;
-          }
-          var nextChildren = callRenderInDEV(instance);
-          if (12 === request.status) throw null;
-          instance.props !== resolvedProps &&
-            (didWarnAboutReassigningProps ||
-              console.error(
-                "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-                getComponentNameFromType(type) || "a component"
-              ),
-            (didWarnAboutReassigningProps = !0));
-          var prevKeyPath = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, nextChildren, -1);
-          task.keyPath = prevKeyPath;
-        } else {
-          if (type.prototype && "function" === typeof type.prototype.render) {
-            var componentName$jscomp$3 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutBadClass[componentName$jscomp$3] ||
-              (console.error(
-                "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-                componentName$jscomp$3,
-                componentName$jscomp$3
-              ),
-              (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-          }
-          var value = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type,
-            props,
-            void 0
-          );
-          if (12 === request.status) throw null;
-          var hasId = 0 !== localIdCounter,
-            actionStateCount = actionStateCounter,
-            actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-          if (type.contextTypes) {
-            var _componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypes[_componentName$jscomp$0] ||
-              ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-              console.error(
-                "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-                _componentName$jscomp$0
-              ));
-          }
-          type &&
-            type.childContextTypes &&
-            console.error(
-              "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-              type.displayName || type.name || "Component"
-            );
-          if ("function" === typeof type.getDerivedStateFromProps) {
-            var componentName$jscomp$4 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutGetDerivedStateOnFunctionComponent[
-              componentName$jscomp$4
-            ] ||
-              (console.error(
-                "%s: Function components do not support getDerivedStateFromProps.",
-                componentName$jscomp$4
-              ),
-              (didWarnAboutGetDerivedStateOnFunctionComponent[
-                componentName$jscomp$4
-              ] = !0));
-          }
-          if (
-            "object" === typeof type.contextType &&
-            null !== type.contextType
-          ) {
-            var _componentName2 = getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-              (console.error(
-                "%s: Function components do not support contextType.",
-                _componentName2
-              ),
-              (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
-                !0));
-          }
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            value,
-            hasId,
-            actionStateCount,
-            actionStateMatchingIndex$jscomp$0
-          );
-        }
-      else if ("string" === typeof type) {
-        var segment = task.blockedSegment;
-        if (null === segment) {
-          var children = props.children,
-            prevContext = task.formatContext,
-            prevKeyPath$jscomp$0 = task.keyPath;
-          task.formatContext = getChildFormatContext(prevContext, type, props);
-          task.keyPath = keyPath;
-          renderNode(request, task, children, -1);
-          task.formatContext = prevContext;
-          task.keyPath = prevKeyPath$jscomp$0;
-        } else {
-          var _children = pushStartInstance(
-            segment.chunks,
-            type,
-            props,
-            request.resumableState,
-            request.renderState,
-            task.blockedPreamble,
-            task.hoistableState,
-            task.formatContext,
-            segment.lastPushedText
-          );
-          segment.lastPushedText = !1;
-          var _prevContext2 = task.formatContext,
-            _prevKeyPath3 = task.keyPath;
-          task.keyPath = keyPath;
-          if (
-            (task.formatContext = getChildFormatContext(
-              _prevContext2,
-              type,
-              props
-            )).insertionMode === HTML_HEAD_MODE
-          ) {
-            var preambleSegment = createPendingSegment(
-              request,
-              0,
-              null,
-              task.formatContext,
-              !1,
-              !1
-            );
-            segment.preambleChildren.push(preambleSegment);
-            task.blockedSegment = preambleSegment;
-            try {
-              (preambleSegment.status = 6),
-                renderNode(request, task, _children, -1),
-                preambleSegment.lastPushedText &&
-                  preambleSegment.textEmbedded &&
-                  preambleSegment.chunks.push(textSeparator),
-                (preambleSegment.status = COMPLETED),
-                finishedSegment(request, task.blockedBoundary, preambleSegment);
-            } finally {
-              task.blockedSegment = segment;
-            }
-          } else renderNode(request, task, _children, -1);
-          task.formatContext = _prevContext2;
-          task.keyPath = _prevKeyPath3;
-          a: {
-            var target = segment.chunks,
-              resumableState = request.resumableState;
-            switch (type) {
-              case "title":
-              case "style":
-              case "script":
-              case "area":
-              case "base":
-              case "br":
-              case "col":
-              case "embed":
-              case "hr":
-              case "img":
-              case "input":
-              case "keygen":
-              case "link":
-              case "meta":
-              case "param":
-              case "source":
-              case "track":
-              case "wbr":
-                break a;
-              case "body":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-                  resumableState.hasBody = !0;
-                  break a;
-                }
-                break;
-              case "html":
-                if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-                  resumableState.hasHtml = !0;
-                  break a;
-                }
-                break;
-              case "head":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-            }
-            target.push(endChunkForTag(type));
-          }
-          segment.lastPushedText = !1;
-        }
-      } else {
-        switch (type) {
-          case REACT_LEGACY_HIDDEN_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_FRAGMENT_TYPE:
-            var prevKeyPath$jscomp$1 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$1;
-            return;
-          case REACT_ACTIVITY_TYPE:
-            var segment$jscomp$0 = task.blockedSegment;
-            if (null === segment$jscomp$0) {
-              if ("hidden" !== props.mode) {
-                var prevKeyPath$jscomp$2 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNode(request, task, props.children, -1);
-                task.keyPath = prevKeyPath$jscomp$2;
-              }
-            } else if ("hidden" !== props.mode) {
-              segment$jscomp$0.chunks.push(startActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-              var _prevKeyPath4 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNode(request, task, props.children, -1);
-              task.keyPath = _prevKeyPath4;
-              segment$jscomp$0.chunks.push(endActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-            }
-            return;
-          case REACT_SUSPENSE_LIST_TYPE:
-            a: {
-              var children$jscomp$0 = props.children,
-                revealOrder = props.revealOrder;
-              if (
-                "forwards" === revealOrder ||
-                "backwards" === revealOrder ||
-                "unstable_legacy-backwards" === revealOrder
-              ) {
-                if (isArrayImpl(children$jscomp$0)) {
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                  break a;
-                }
-                var iteratorFn = getIteratorFn(children$jscomp$0);
-                if (iteratorFn) {
-                  var iterator = iteratorFn.call(children$jscomp$0);
-                  if (iterator) {
-                    validateIterable(
-                      task,
-                      children$jscomp$0,
-                      -1,
-                      iterator,
-                      iteratorFn
-                    );
-                    var step = iterator.next();
-                    if (!step.done) {
-                      var rows = [];
-                      do rows.push(step.value), (step = iterator.next());
-                      while (!step.done);
-                      renderSuspenseListRows(
-                        request,
-                        task,
-                        keyPath,
-                        children$jscomp$0,
-                        revealOrder
-                      );
-                    }
-                    break a;
-                  }
-                }
-              }
-              if ("together" === revealOrder) {
-                var _prevKeyPath2 = task.keyPath,
-                  prevRow = task.row,
-                  newRow = (task.row = createSuspenseListRow(null));
-                newRow.boundaries = [];
-                newRow.together = !0;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                0 === --newRow.pendingTasks &&
-                  finishSuspenseListRow(request, newRow);
-                task.keyPath = _prevKeyPath2;
-                task.row = prevRow;
-                null !== prevRow &&
-                  0 < newRow.pendingTasks &&
-                  (prevRow.pendingTasks++, (newRow.next = prevRow));
-              } else {
-                var prevKeyPath$jscomp$3 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                task.keyPath = prevKeyPath$jscomp$3;
-              }
-            }
-            return;
-          case REACT_VIEW_TRANSITION_TYPE:
-          case REACT_SCOPE_TYPE:
-            throw Error(
-              "ReactDOMServer does not yet support scope components."
-            );
-          case REACT_SUSPENSE_TYPE:
-            a: if (null !== task.replay) {
-              var _prevKeyPath = task.keyPath,
-                _prevContext = task.formatContext,
-                _prevRow = task.row;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                _prevContext
-              );
-              task.row = null;
-              var _content = props.children;
-              try {
-                renderNode(request, task, _content, -1);
-              } finally {
-                (task.keyPath = _prevKeyPath),
-                  (task.formatContext = _prevContext),
-                  (task.row = _prevRow);
-              }
-            } else {
-              var prevKeyPath$jscomp$4 = task.keyPath,
-                prevContext$jscomp$0 = task.formatContext,
-                prevRow$jscomp$0 = task.row,
-                parentBoundary = task.blockedBoundary,
-                parentPreamble = task.blockedPreamble,
-                parentHoistableState = task.hoistableState,
-                parentSegment = task.blockedSegment,
-                fallback = props.fallback,
-                content = props.children,
-                fallbackAbortSet = new Set();
-              var newBoundary =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              null !== request.trackedPostpones &&
-                (newBoundary.trackedContentKeyPath = keyPath);
-              var boundarySegment = createPendingSegment(
-                request,
-                parentSegment.chunks.length,
-                newBoundary,
-                task.formatContext,
-                !1,
-                !1
-              );
-              parentSegment.children.push(boundarySegment);
-              parentSegment.lastPushedText = !1;
-              var contentRootSegment = createPendingSegment(
-                request,
-                0,
-                null,
-                task.formatContext,
-                !1,
-                !1
-              );
-              contentRootSegment.parentFlushed = !0;
-              if (null !== request.trackedPostpones) {
-                var suspenseComponentStack = task.componentStack,
-                  fallbackKeyPath = [
-                    keyPath[0],
-                    "Suspense Fallback",
-                    keyPath[2]
-                  ],
-                  fallbackReplayNode = [
-                    fallbackKeyPath[1],
-                    fallbackKeyPath[2],
-                    [],
-                    null
-                  ];
-                request.trackedPostpones.workingMap.set(
-                  fallbackKeyPath,
-                  fallbackReplayNode
-                );
-                newBoundary.trackedFallbackNode = fallbackReplayNode;
-                task.blockedSegment = boundarySegment;
-                task.blockedPreamble = newBoundary.fallbackPreamble;
-                task.keyPath = fallbackKeyPath;
-                task.formatContext = getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.componentStack =
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    suspenseComponentStack
-                  );
-                boundarySegment.status = 6;
-                try {
-                  renderNode(request, task, fallback, -1),
-                    boundarySegment.lastPushedText &&
-                      boundarySegment.textEmbedded &&
-                      boundarySegment.chunks.push(textSeparator),
-                    (boundarySegment.status = COMPLETED),
-                    finishedSegment(request, parentBoundary, boundarySegment);
-                } catch (thrownValue) {
-                  throw (
-                    ((boundarySegment.status =
-                      12 === request.status ? ABORTED : ERRORED),
-                    thrownValue)
-                  );
-                } finally {
-                  (task.blockedSegment = parentSegment),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0);
-                }
-                var suspendedPrimaryTask = createRenderTask(
-                  request,
-                  null,
-                  content,
-                  -1,
-                  newBoundary,
-                  contentRootSegment,
-                  newBoundary.contentPreamble,
-                  newBoundary.contentState,
-                  task.abortSet,
-                  keyPath,
-                  getSuspenseContentFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  null,
-                  suspenseComponentStack,
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedPrimaryTask);
-                request.pingedTasks.push(suspendedPrimaryTask);
-              } else {
-                task.blockedBoundary = newBoundary;
-                task.blockedPreamble = newBoundary.contentPreamble;
-                task.hoistableState = newBoundary.contentState;
-                task.blockedSegment = contentRootSegment;
-                task.keyPath = keyPath;
-                task.formatContext = getSuspenseContentFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.row = null;
-                contentRootSegment.status = 6;
-                try {
-                  if (
-                    (renderNode(request, task, content, -1),
-                    contentRootSegment.lastPushedText &&
-                      contentRootSegment.textEmbedded &&
-                      contentRootSegment.chunks.push(textSeparator),
-                    (contentRootSegment.status = COMPLETED),
-                    finishedSegment(request, newBoundary, contentRootSegment),
-                    queueCompletedSegment(newBoundary, contentRootSegment),
-                    0 === newBoundary.pendingTasks &&
-                      newBoundary.status === PENDING)
-                  ) {
-                    if (
-                      ((newBoundary.status = COMPLETED),
-                      !isEligibleForOutlining(request, newBoundary))
-                    ) {
-                      null !== prevRow$jscomp$0 &&
-                        0 === --prevRow$jscomp$0.pendingTasks &&
-                        finishSuspenseListRow(request, prevRow$jscomp$0);
-                      0 === request.pendingRootTasks &&
-                        task.blockedPreamble &&
-                        preparePreamble(request);
-                      break a;
-                    }
-                  } else
-                    null !== prevRow$jscomp$0 &&
-                      prevRow$jscomp$0.together &&
-                      tryToResolveTogetherRow(request, prevRow$jscomp$0);
-                } catch (thrownValue$2) {
-                  newBoundary.status = CLIENT_RENDERED;
-                  if (12 === request.status) {
-                    contentRootSegment.status = ABORTED;
-                    var error = request.fatalError;
-                  } else
-                    (contentRootSegment.status = ERRORED),
-                      (error = thrownValue$2);
-                  var thrownInfo = getThrownInfo(task.componentStack);
-                  var errorDigest = logRecoverableError(
-                    request,
-                    error,
-                    thrownInfo,
-                    task.debugTask
-                  );
-                  encodeErrorForBoundary(
-                    newBoundary,
-                    errorDigest,
-                    error,
-                    thrownInfo,
-                    !1
-                  );
-                  untrackBoundary(request, newBoundary);
-                } finally {
-                  (task.blockedBoundary = parentBoundary),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.hoistableState = parentHoistableState),
-                    (task.blockedSegment = parentSegment),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0),
-                    (task.row = prevRow$jscomp$0);
-                }
-                var suspendedFallbackTask = createRenderTask(
-                  request,
-                  null,
-                  fallback,
-                  -1,
-                  parentBoundary,
-                  boundarySegment,
-                  newBoundary.fallbackPreamble,
-                  newBoundary.fallbackState,
-                  fallbackAbortSet,
-                  [keyPath[0], "Suspense Fallback", keyPath[2]],
-                  getSuspenseFallbackFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  task.row,
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    task.componentStack
-                  ),
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedFallbackTask);
-                request.pingedTasks.push(suspendedFallbackTask);
-              }
-            }
-            return;
-        }
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_FORWARD_REF_TYPE:
-              if ("ref" in props) {
-                var propsWithoutRef = {};
-                for (var key in props)
-                  "ref" !== key && (propsWithoutRef[key] = props[key]);
-              } else propsWithoutRef = props;
-              var children$jscomp$1 = renderWithHooks(
-                request,
-                task,
-                keyPath,
-                type.render,
-                propsWithoutRef,
-                ref
-              );
-              finishFunctionComponent(
-                request,
-                task,
-                keyPath,
-                children$jscomp$1,
-                0 !== localIdCounter,
-                actionStateCounter,
-                actionStateMatchingIndex
-              );
-              return;
-            case REACT_MEMO_TYPE:
-              renderElement(request, task, keyPath, type.type, props, ref);
-              return;
-            case REACT_CONTEXT_TYPE:
-              var value$jscomp$0 = props.value,
-                children$jscomp$2 = props.children;
-              var prevSnapshot = task.context;
-              var prevKeyPath$jscomp$5 = task.keyPath;
-              var prevValue = type._currentValue;
-              type._currentValue = value$jscomp$0;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var prevNode = currentActiveSnapshot,
-                newNode = {
-                  parent: prevNode,
-                  depth: null === prevNode ? 0 : prevNode.depth + 1,
-                  context: type,
-                  parentValue: prevValue,
-                  value: value$jscomp$0
-                };
-              currentActiveSnapshot = newNode;
-              task.context = newNode;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, children$jscomp$2, -1);
-              var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-              if (null === prevSnapshot$jscomp$0)
-                throw Error(
-                  "Tried to pop a Context at the root of the app. This is a bug in React."
-                );
-              prevSnapshot$jscomp$0.context !== type &&
-                console.error(
-                  "The parent context is not the expected context. This is probably a bug in React."
-                );
-              prevSnapshot$jscomp$0.context._currentValue =
-                prevSnapshot$jscomp$0.parentValue;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-                prevSnapshot$jscomp$0.parent);
-              task.context = JSCompiler_inline_result$jscomp$0;
-              task.keyPath = prevKeyPath$jscomp$5;
-              prevSnapshot !== task.context &&
-                console.error(
-                  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-                );
-              return;
-            case REACT_CONSUMER_TYPE:
-              var context$jscomp$0 = type._context,
-                render = props.children;
-              "function" !== typeof render &&
-                console.error(
-                  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-                );
-              var newChildren = render(context$jscomp$0._currentValue),
-                prevKeyPath$jscomp$6 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, newChildren, -1);
-              task.keyPath = prevKeyPath$jscomp$6;
-              return;
-            case REACT_LAZY_TYPE:
-              var Component = callLazyInitInDEV(type);
-              if (12 === request.status) throw null;
-              renderElement(request, task, keyPath, Component, props, ref);
-              return;
-          }
-        var info = "";
-        if (
-          void 0 === type ||
-          ("object" === typeof type &&
-            null !== type &&
-            0 === Object.keys(type).length)
-        )
-          info +=
-            " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-        throw Error(
-          "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-            ((null == type ? type : typeof type) + "." + info)
-        );
-      }
-    }
-    function resumeNode(request, task, segmentId, node, childIndex) {
-      var prevReplay = task.replay,
-        blockedBoundary = task.blockedBoundary,
-        resumedSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-      resumedSegment.id = segmentId;
-      resumedSegment.parentFlushed = !0;
-      try {
-        (task.replay = null),
-          (task.blockedSegment = resumedSegment),
-          renderNode(request, task, node, childIndex),
-          (resumedSegment.status = COMPLETED),
-          finishedSegment(request, blockedBoundary, resumedSegment),
-          null === blockedBoundary
-            ? (request.completedRootSegment = resumedSegment)
-            : (queueCompletedSegment(blockedBoundary, resumedSegment),
-              blockedBoundary.parentFlushed &&
-                request.partialBoundaries.push(blockedBoundary));
-      } finally {
-        (task.replay = prevReplay), (task.blockedSegment = null);
-      }
-    }
-    function replayElement(
-      request,
-      task,
-      keyPath,
-      name,
-      keyOrIndex,
-      childIndex,
-      type,
-      props,
-      ref,
-      replay
-    ) {
-      childIndex = replay.nodes;
-      for (var i = 0; i < childIndex.length; i++) {
-        var node = childIndex[i];
-        if (keyOrIndex === node[1]) {
-          if (4 === node.length) {
-            if (null !== name && name !== node[0])
-              throw Error(
-                "Expected the resume to render <" +
-                  node[0] +
-                  "> in this slot but instead it rendered <" +
-                  name +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            var childNodes = node[2];
-            name = node[3];
-            keyOrIndex = task.node;
-            task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-            try {
-              renderElement(request, task, keyPath, type, props, ref);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw (
-                  (task.node === keyOrIndex
-                    ? (task.replay = replay)
-                    : childIndex.splice(i, 1),
-                  x)
-                );
-              task.replay.pendingTasks--;
-              type = getThrownInfo(task.componentStack);
-              props = request;
-              request = task.blockedBoundary;
-              keyPath = x;
-              ref = name;
-              name = logRecoverableError(props, keyPath, type, task.debugTask);
-              abortRemainingReplayNodes(
-                props,
-                request,
-                childNodes,
-                ref,
-                keyPath,
-                name,
-                type,
-                !1
-              );
-            }
-            task.replay = replay;
-          } else {
-            if (type !== REACT_SUSPENSE_TYPE)
-              throw Error(
-                "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                  (getComponentNameFromType(type) || "Unknown") +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            a: {
-              replay = void 0;
-              name = node[5];
-              type = node[2];
-              ref = node[3];
-              keyOrIndex = null === node[4] ? [] : node[4][2];
-              node = null === node[4] ? null : node[4][3];
-              var prevKeyPath = task.keyPath,
-                prevContext = task.formatContext,
-                prevRow = task.row,
-                previousReplaySet = task.replay,
-                parentBoundary = task.blockedBoundary,
-                parentHoistableState = task.hoistableState,
-                content = props.children,
-                fallback = props.fallback,
-                fallbackAbortSet = new Set();
-              props =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              props.parentFlushed = !0;
-              props.rootSegmentID = name;
-              task.blockedBoundary = props;
-              task.hoistableState = props.contentState;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                prevContext
-              );
-              task.row = null;
-              task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-              try {
-                renderNode(request, task, content, -1);
-                if (
-                  1 === task.replay.pendingTasks &&
-                  0 < task.replay.nodes.length
-                )
-                  throw Error(
-                    "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                  );
-                task.replay.pendingTasks--;
-                if (0 === props.pendingTasks && props.status === PENDING) {
-                  props.status = COMPLETED;
-                  request.completedBoundaries.push(props);
-                  break a;
-                }
-              } catch (error) {
-                (props.status = CLIENT_RENDERED),
-                  (childNodes = getThrownInfo(task.componentStack)),
-                  (replay = logRecoverableError(
-                    request,
-                    error,
-                    childNodes,
-                    task.debugTask
-                  )),
-                  encodeErrorForBoundary(props, replay, error, childNodes, !1),
-                  task.replay.pendingTasks--,
-                  request.clientRenderedBoundaries.push(props);
-              } finally {
-                (task.blockedBoundary = parentBoundary),
-                  (task.hoistableState = parentHoistableState),
-                  (task.replay = previousReplaySet),
-                  (task.keyPath = prevKeyPath),
-                  (task.formatContext = prevContext),
-                  (task.row = prevRow);
-              }
-              props = createReplayTask(
-                request,
-                null,
-                { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-                fallback,
-                -1,
-                parentBoundary,
-                props.fallbackState,
-                fallbackAbortSet,
-                [keyPath[0], "Suspense Fallback", keyPath[2]],
-                getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  task.formatContext
-                ),
-                task.context,
-                task.treeContext,
-                task.row,
-                replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                  task.componentStack
-                ),
-                emptyContextObject,
-                task.debugTask
-              );
-              pushComponentStack(props);
-              request.pingedTasks.push(props);
-            }
-          }
-          childIndex.splice(i, 1);
-          break;
-        }
-      }
-    }
-    function validateIterable(
-      task,
-      iterable,
-      childIndex,
-      iterator,
-      iteratorFn
-    ) {
-      if (iterator === iterable) {
-        if (
-          -1 !== childIndex ||
-          null === task.componentStack ||
-          "function" !== typeof task.componentStack.type ||
-          "[object GeneratorFunction]" !==
-            Object.prototype.toString.call(task.componentStack.type) ||
-          "[object Generator]" !== Object.prototype.toString.call(iterator)
-        )
-          didWarnAboutGenerators ||
-            console.error(
-              "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-            ),
-            (didWarnAboutGenerators = !0);
-      } else
-        iterable.entries !== iteratorFn ||
-          didWarnAboutMaps ||
-          (console.error(
-            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-          ),
-          (didWarnAboutMaps = !0));
-    }
-    function renderNodeDestructive(request, task, node, childIndex) {
-      null !== task.replay && "number" === typeof task.replay.slots
-        ? resumeNode(request, task, task.replay.slots, node, childIndex)
-        : ((task.node = node),
-          (task.childIndex = childIndex),
-          (node = task.componentStack),
-          (childIndex = task.debugTask),
-          pushComponentStack(task),
-          retryNode(request, task),
-          (task.componentStack = node),
-          (task.debugTask = childIndex));
-    }
-    function retryNode(request, task) {
-      var node = task.node,
-        childIndex = task.childIndex;
-      if (null !== node) {
-        if ("object" === typeof node) {
-          switch (node.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var type = node.type,
-                key = node.key;
-              node = node.props;
-              var refProp = node.ref;
-              refProp = void 0 !== refProp ? refProp : null;
-              var debugTask = task.debugTask,
-                name = getComponentNameFromType(type);
-              key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-              var keyPath = [task.keyPath, name, key];
-              null !== task.replay
-                ? debugTask
-                  ? debugTask.run(
-                      replayElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        name,
-                        key,
-                        childIndex,
-                        type,
-                        node,
-                        refProp,
-                        task.replay
-                      )
-                    )
-                  : replayElement(
-                      request,
-                      task,
-                      keyPath,
-                      name,
-                      key,
-                      childIndex,
-                      type,
-                      node,
-                      refProp,
-                      task.replay
-                    )
-                : debugTask
-                  ? debugTask.run(
-                      renderElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        type,
-                        node,
-                        refProp
-                      )
-                    )
-                  : renderElement(request, task, keyPath, type, node, refProp);
-              return;
-            case REACT_PORTAL_TYPE:
-              throw Error(
-                "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-              );
-            case REACT_LAZY_TYPE:
-              type = callLazyInitInDEV(node);
-              if (12 === request.status) throw null;
-              renderNodeDestructive(request, task, type, childIndex);
-              return;
-          }
-          if (isArrayImpl(node)) {
-            renderChildrenArray(request, task, node, childIndex);
-            return;
-          }
-          if ((key = getIteratorFn(node)))
-            if ((type = key.call(node))) {
-              validateIterable(task, node, childIndex, type, key);
-              node = type.next();
-              if (!node.done) {
-                key = [];
-                do key.push(node.value), (node = type.next());
-                while (!node.done);
-                renderChildrenArray(request, task, key, childIndex);
-              }
-              return;
-            }
-          if ("function" === typeof node.then)
-            return (
-              (task.thenableState = null),
-              renderNodeDestructive(
-                request,
-                task,
-                unwrapThenable(node),
-                childIndex
-              )
-            );
-          if (node.$$typeof === REACT_CONTEXT_TYPE)
-            return renderNodeDestructive(
-              request,
-              task,
-              node._currentValue,
-              childIndex
-            );
-          request = Object.prototype.toString.call(node);
-          throw Error(
-            "Objects are not valid as a React child (found: " +
-              ("[object Object]" === request
-                ? "object with keys {" + Object.keys(node).join(", ") + "}"
-                : request) +
-              "). If you meant to render a collection of children, use an array instead."
-          );
-        }
-        "string" === typeof node
-          ? ((task = task.blockedSegment),
-            null !== task &&
-              (task.lastPushedText = pushTextInstance(
-                task.chunks,
-                node,
-                request.renderState,
-                task.lastPushedText
-              )))
-          : "number" === typeof node || "bigint" === typeof node
-            ? ((task = task.blockedSegment),
-              null !== task &&
-                (task.lastPushedText = pushTextInstance(
-                  task.chunks,
-                  "" + node,
-                  request.renderState,
-                  task.lastPushedText
-                )))
-            : ("function" === typeof node &&
-                ((request = node.displayName || node.name || "Component"),
-                console.error(
-                  "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-                  request,
-                  request
-                )),
-              "symbol" === typeof node &&
-                console.error(
-                  "Symbols are not valid as a React child.\n  %s",
-                  String(node)
-                ));
-      }
-    }
-    function warnForMissingKey(request, task, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        (child.$$typeof === REACT_ELEMENT_TYPE ||
-          child.$$typeof === REACT_PORTAL_TYPE) &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var didWarnForKey = request.didWarnForKey;
-        null == didWarnForKey &&
-          (didWarnForKey = request.didWarnForKey = new WeakSet());
-        request = task.componentStack;
-        if (null !== request && !didWarnForKey.has(request)) {
-          didWarnForKey.add(request);
-          var componentName = getComponentNameFromType(child.type);
-          didWarnForKey = child._owner;
-          var parentOwner = request.owner;
-          request = "";
-          if (parentOwner && "undefined" !== typeof parentOwner.type) {
-            var name = getComponentNameFromType(parentOwner.type);
-            name &&
-              (request = "\n\nCheck the render method of `" + name + "`.");
-          }
-          request ||
-            (componentName &&
-              (request =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          componentName = "";
-          null != didWarnForKey &&
-            parentOwner !== didWarnForKey &&
-            ((parentOwner = null),
-            "undefined" !== typeof didWarnForKey.type
-              ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-              : "string" === typeof didWarnForKey.name &&
-                (parentOwner = didWarnForKey.name),
-            parentOwner &&
-              (componentName =
-                " It was passed a child from " + parentOwner + "."));
-          didWarnForKey = task.componentStack;
-          task.componentStack = {
-            parent: task.componentStack,
-            type: child.type,
-            owner: child._owner,
-            stack: child._debugStack
-          };
-          console.error(
-            'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-            request,
-            componentName
-          );
-          task.componentStack = didWarnForKey;
-        }
-      }
-    }
-    function renderChildrenArray(request, task, children, childIndex) {
-      var prevKeyPath = task.keyPath,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node._debugInfo);
-      if (
-        -1 !== childIndex &&
-        ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-        null !== task.replay)
-      ) {
-        for (
-          var replay = task.replay, replayNodes = replay.nodes, j = 0;
-          j < replayNodes.length;
-          j++
-        ) {
-          var node = replayNodes[j];
-          if (node[1] === childIndex) {
-            childIndex = node[2];
-            node = node[3];
-            task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-            try {
-              renderChildrenArray(request, task, children, -1);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw x;
-              task.replay.pendingTasks--;
-              var thrownInfo = getThrownInfo(task.componentStack);
-              children = task.blockedBoundary;
-              var error = x,
-                resumeSlots = node;
-              node = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              abortRemainingReplayNodes(
-                request,
-                children,
-                childIndex,
-                resumeSlots,
-                error,
-                node,
-                thrownInfo,
-                !1
-              );
-            }
-            task.replay = replay;
-            replayNodes.splice(j, 1);
-            break;
-          }
-        }
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      replay = task.treeContext;
-      replayNodes = children.length;
-      if (
-        null !== task.replay &&
-        ((j = task.replay.slots), null !== j && "object" === typeof j)
-      ) {
-        for (childIndex = 0; childIndex < replayNodes; childIndex++)
-          (node = children[childIndex]),
-            (task.treeContext = pushTreeContext(
-              replay,
-              replayNodes,
-              childIndex
-            )),
-            (error = j[childIndex]),
-            "number" === typeof error
-              ? (resumeNode(request, task, error, node, childIndex),
-                delete j[childIndex])
-              : renderNode(request, task, node, childIndex);
-        task.treeContext = replay;
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      for (j = 0; j < replayNodes; j++)
-        (childIndex = children[j]),
-          warnForMissingKey(request, task, childIndex),
-          (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-          renderNode(request, task, childIndex, j);
-      task.treeContext = replay;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function trackPostponedBoundary(request, trackedPostpones, boundary) {
-      boundary.status = POSTPONED;
-      boundary.rootSegmentID = request.nextSegmentId++;
-      request = boundary.trackedContentKeyPath;
-      if (null === request)
-        throw Error(
-          "It should not be possible to postpone at the root. This is a bug in React."
-        );
-      var fallbackReplayNode = boundary.trackedFallbackNode,
-        children = [],
-        boundaryNode = trackedPostpones.workingMap.get(request);
-      if (void 0 === boundaryNode)
-        return (
-          (boundary = [
-            request[1],
-            request[2],
-            children,
-            null,
-            fallbackReplayNode,
-            boundary.rootSegmentID
-          ]),
-          trackedPostpones.workingMap.set(request, boundary),
-          addToReplayParent(boundary, request[0], trackedPostpones),
-          boundary
-        );
-      boundaryNode[4] = fallbackReplayNode;
-      boundaryNode[5] = boundary.rootSegmentID;
-      return boundaryNode;
-    }
-    function trackPostpone(request, trackedPostpones, task, segment) {
-      segment.status = POSTPONED;
-      var keyPath = task.keyPath,
-        boundary = task.blockedBoundary;
-      if (null === boundary)
-        (segment.id = request.nextSegmentId++),
-          (trackedPostpones.rootSlots = segment.id),
-          null !== request.completedRootSegment &&
-            (request.completedRootSegment.status = POSTPONED);
-      else {
-        if (null !== boundary && boundary.status === PENDING) {
-          var boundaryNode = trackPostponedBoundary(
-            request,
-            trackedPostpones,
-            boundary
-          );
-          if (
-            boundary.trackedContentKeyPath === keyPath &&
-            -1 === task.childIndex
-          ) {
-            -1 === segment.id &&
-              (segment.id = segment.parentFlushed
-                ? boundary.rootSegmentID
-                : request.nextSegmentId++);
-            boundaryNode[3] = segment.id;
-            return;
-          }
-        }
-        -1 === segment.id &&
-          (segment.id =
-            segment.parentFlushed && null !== boundary
-              ? boundary.rootSegmentID
-              : request.nextSegmentId++);
-        if (-1 === task.childIndex)
-          null === keyPath
-            ? (trackedPostpones.rootSlots = segment.id)
-            : ((task = trackedPostpones.workingMap.get(keyPath)),
-              void 0 === task
-                ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-                  addToReplayParent(task, keyPath[0], trackedPostpones))
-                : (task[3] = segment.id));
-        else {
-          if (null === keyPath)
-            if (((request = trackedPostpones.rootSlots), null === request))
-              request = trackedPostpones.rootSlots = {};
-            else {
-              if ("number" === typeof request)
-                throw Error(
-                  "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-                );
-            }
-          else if (
-            ((boundary = trackedPostpones.workingMap),
-            (boundaryNode = boundary.get(keyPath)),
-            void 0 === boundaryNode)
-          )
-            (request = {}),
-              (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-              boundary.set(keyPath, boundaryNode),
-              addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-          else if (((request = boundaryNode[3]), null === request))
-            request = boundaryNode[3] = {};
-          else if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-          request[task.childIndex] = segment.id;
-        }
-      }
-    }
-    function untrackBoundary(request, boundary) {
-      request = request.trackedPostpones;
-      null !== request &&
-        ((boundary = boundary.trackedContentKeyPath),
-        null !== boundary &&
-          ((boundary = request.workingMap.get(boundary)),
-          void 0 !== boundary &&
-            ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-    }
-    function spawnNewSuspendedReplayTask(request, task, thenableState) {
-      return createReplayTask(
-        request,
-        thenableState,
-        task.replay,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function spawnNewSuspendedRenderTask(request, task, thenableState) {
-      var segment = task.blockedSegment,
-        newSegment = createPendingSegment(
-          request,
-          segment.chunks.length,
-          null,
-          task.formatContext,
-          segment.lastPushedText,
-          !0
-        );
-      segment.children.push(newSegment);
-      segment.lastPushedText = !1;
-      return createRenderTask(
-        request,
-        thenableState,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        newSegment,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function renderNode(request, task, node, childIndex) {
-      var previousFormatContext = task.formatContext,
-        previousContext = task.context,
-        previousKeyPath = task.keyPath,
-        previousTreeContext = task.treeContext,
-        previousComponentStack = task.componentStack,
-        previousDebugTask = task.debugTask,
-        segment = task.blockedSegment;
-      if (null === segment) {
-        segment = task.replay;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue) {
-          if (
-            (resetHooksState(),
-            (node =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              childIndex =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedReplayTask(
-                request,
-                task,
-                childIndex
-              ).ping;
-              node.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              node =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              node = spawnNewSuspendedReplayTask(request, task, node);
-              request.pingedTasks.push(node);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      } else {
-        var childrenLength = segment.children.length,
-          chunkLength = segment.chunks.length;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue$3) {
-          if (
-            (resetHooksState(),
-            (segment.children.length = childrenLength),
-            (segment.chunks.length = chunkLength),
-            (node =
-              thrownValue$3 === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue$3),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              segment = node;
-              node =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedRenderTask(request, task, node).ping;
-              segment.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              segment =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              segment = spawnNewSuspendedRenderTask(request, task, segment);
-              request.pingedTasks.push(segment);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      }
-      task.formatContext = previousFormatContext;
-      task.context = previousContext;
-      task.keyPath = previousKeyPath;
-      task.treeContext = previousTreeContext;
-      switchContext(previousContext);
-      throw node;
-    }
-    function abortTaskSoft(task) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      null !== segment &&
-        ((segment.status = ABORTED),
-        finishedTask(this, boundary, task.row, segment));
-    }
-    function abortRemainingReplayNodes(
-      request$jscomp$0,
-      boundary,
-      nodes,
-      slots,
-      error$jscomp$0,
-      errorDigest$jscomp$0,
-      errorInfo$jscomp$0,
-      aborted
-    ) {
-      for (var i = 0; i < nodes.length; i++) {
-        var node = nodes[i];
-        if (4 === node.length)
-          abortRemainingReplayNodes(
-            request$jscomp$0,
-            boundary,
-            node[2],
-            node[3],
-            error$jscomp$0,
-            errorDigest$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          );
-        else {
-          var request = request$jscomp$0;
-          node = node[5];
-          var error = error$jscomp$0,
-            errorDigest = errorDigest$jscomp$0,
-            errorInfo = errorInfo$jscomp$0,
-            wasAborted = aborted,
-            resumedBoundary = createSuspenseBoundary(
-              request,
-              null,
-              new Set(),
-              null,
-              null
-            );
-          resumedBoundary.parentFlushed = !0;
-          resumedBoundary.rootSegmentID = node;
-          resumedBoundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(
-            resumedBoundary,
-            errorDigest,
-            error,
-            errorInfo,
-            wasAborted
-          );
-          resumedBoundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(resumedBoundary);
-        }
-      }
-      nodes.length = 0;
-      if (null !== slots) {
-        if (null === boundary)
-          throw Error(
-            "We should not have any resumable nodes in the shell. This is a bug in React."
-          );
-        boundary.status !== CLIENT_RENDERED &&
-          ((boundary.status = CLIENT_RENDERED),
-          encodeErrorForBoundary(
-            boundary,
-            errorDigest$jscomp$0,
-            error$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          ),
-          boundary.parentFlushed &&
-            request$jscomp$0.clientRenderedBoundaries.push(boundary));
-        if ("object" === typeof slots)
-          for (var index in slots) delete slots[index];
-      }
-    }
-    function abortTask(task, request, error) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      if (null !== segment) {
-        if (6 === segment.status) return;
-        segment.status = ABORTED;
-      }
-      var errorInfo = getThrownInfo(task.componentStack),
-        node = task.node;
-      null !== node &&
-        "object" === typeof node &&
-        pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-      if (null === boundary) {
-        if (13 !== request.status && request.status !== CLOSED) {
-          boundary = task.replay;
-          if (null === boundary) {
-            null !== request.trackedPostpones && null !== segment
-              ? ((boundary = request.trackedPostpones),
-                logRecoverableError(request, error, errorInfo, task.debugTask),
-                trackPostpone(request, boundary, task, segment),
-                finishedTask(request, null, task.row, segment))
-              : (logRecoverableError(request, error, errorInfo, task.debugTask),
-                fatalError(request, error, errorInfo, task.debugTask));
-            return;
-          }
-          boundary.pendingTasks--;
-          0 === boundary.pendingTasks &&
-            0 < boundary.nodes.length &&
-            ((segment = logRecoverableError(request, error, errorInfo, null)),
-            abortRemainingReplayNodes(
-              request,
-              null,
-              boundary.nodes,
-              boundary.slots,
-              error,
-              segment,
-              errorInfo,
-              !0
-            ));
-          request.pendingRootTasks--;
-          0 === request.pendingRootTasks && completeShell(request);
-        }
-      } else {
-        node = request.trackedPostpones;
-        if (boundary.status !== CLIENT_RENDERED) {
-          if (null !== node && null !== segment)
-            return (
-              logRecoverableError(request, error, errorInfo, task.debugTask),
-              trackPostpone(request, node, task, segment),
-              boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-                return abortTask(fallbackTask, request, error);
-              }),
-              boundary.fallbackAbortableTasks.clear(),
-              finishedTask(request, boundary, task.row, segment)
-            );
-          boundary.status = CLIENT_RENDERED;
-          segment = logRecoverableError(
-            request,
-            error,
-            errorInfo,
-            task.debugTask
-          );
-          boundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-          untrackBoundary(request, boundary);
-          boundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(boundary);
-        }
-        boundary.pendingTasks--;
-        errorInfo = boundary.row;
-        null !== errorInfo &&
-          0 === --errorInfo.pendingTasks &&
-          finishSuspenseListRow(request, errorInfo);
-        boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-          return abortTask(fallbackTask, request, error);
-        });
-        boundary.fallbackAbortableTasks.clear();
-      }
-      task = task.row;
-      null !== task &&
-        0 === --task.pendingTasks &&
-        finishSuspenseListRow(request, task);
-      request.allPendingTasks--;
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function safelyEmitEarlyPreloads(request, shellComplete) {
-      try {
-        var renderState = request.renderState,
-          onHeaders = renderState.onHeaders;
-        if (onHeaders) {
-          var headers = renderState.headers;
-          if (headers) {
-            renderState.headers = null;
-            var linkHeader = headers.preconnects;
-            headers.fontPreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.fontPreloads));
-            headers.highImagePreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.highImagePreloads));
-            if (!shellComplete) {
-              var queueIter = renderState.styles.values(),
-                queueStep = queueIter.next();
-              b: for (
-                ;
-                0 < headers.remainingCapacity && !queueStep.done;
-                queueStep = queueIter.next()
-              )
-                for (
-                  var sheetIter = queueStep.value.sheets.values(),
-                    sheetStep = sheetIter.next();
-                  0 < headers.remainingCapacity && !sheetStep.done;
-                  sheetStep = sheetIter.next()
-                ) {
-                  var sheet = sheetStep.value,
-                    props = sheet.props,
-                    key = props.href,
-                    props$jscomp$0 = sheet.props;
-                  var header = getPreloadAsHeader(
-                    props$jscomp$0.href,
-                    "style",
-                    {
-                      crossOrigin: props$jscomp$0.crossOrigin,
-                      integrity: props$jscomp$0.integrity,
-                      nonce: props$jscomp$0.nonce,
-                      type: props$jscomp$0.type,
-                      fetchPriority: props$jscomp$0.fetchPriority,
-                      referrerPolicy: props$jscomp$0.referrerPolicy,
-                      media: props$jscomp$0.media
-                    }
-                  );
-                  if (0 <= (headers.remainingCapacity -= header.length + 2))
-                    (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                      linkHeader && (linkHeader += ", "),
-                      (linkHeader += header),
-                      (renderState.resets.style[key] =
-                        "string" === typeof props.crossOrigin ||
-                        "string" === typeof props.integrity
-                          ? [props.crossOrigin, props.integrity]
-                          : PRELOAD_NO_CREDS);
-                  else break b;
-                }
-            }
-            linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-          }
-        }
-      } catch (error) {
-        logRecoverableError(request, error, {}, null);
-      }
-    }
-    function completeShell(request) {
-      null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-      null === request.trackedPostpones && preparePreamble(request);
-      request.onShellError = noop;
-      request = request.onShellReady;
-      request();
-    }
-    function completeAll(request) {
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? !0
-          : null === request.completedRootSegment ||
-              request.completedRootSegment.status !== POSTPONED
-      );
-      preparePreamble(request);
-      request = request.onAllReady;
-      request();
-    }
-    function queueCompletedSegment(boundary, segment) {
-      if (
-        0 === segment.chunks.length &&
-        1 === segment.children.length &&
-        null === segment.children[0].boundary &&
-        -1 === segment.children[0].id
-      ) {
-        var childSegment = segment.children[0];
-        childSegment.id = segment.id;
-        childSegment.parentFlushed = !0;
-        (childSegment.status !== COMPLETED &&
-          childSegment.status !== ABORTED &&
-          childSegment.status !== ERRORED) ||
-          queueCompletedSegment(boundary, childSegment);
-      } else boundary.completedSegments.push(segment);
-    }
-    function finishedSegment(request, boundary, segment) {
-      if (null !== byteLengthOfChunk) {
-        segment = segment.chunks;
-        for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-          segmentByteSize += segment[i].byteLength;
-        null === boundary
-          ? (request.byteSize += segmentByteSize)
-          : (boundary.byteSize += segmentByteSize);
-      }
-    }
-    function finishedTask(request, boundary, row, segment) {
-      null !== row &&
-        (0 === --row.pendingTasks
-          ? finishSuspenseListRow(request, row)
-          : row.together && tryToResolveTogetherRow(request, row));
-      request.allPendingTasks--;
-      if (null === boundary) {
-        if (null !== segment && segment.parentFlushed) {
-          if (null !== request.completedRootSegment)
-            throw Error(
-              "There can only be one root segment. This is a bug in React."
-            );
-          request.completedRootSegment = segment;
-        }
-        request.pendingRootTasks--;
-        0 === request.pendingRootTasks && completeShell(request);
-      } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-        if (0 === boundary.pendingTasks)
-          if (
-            (boundary.status === PENDING && (boundary.status = COMPLETED),
-            null !== segment &&
-              segment.parentFlushed &&
-              (segment.status === COMPLETED || segment.status === ABORTED) &&
-              queueCompletedSegment(boundary, segment),
-            boundary.parentFlushed &&
-              request.completedBoundaries.push(boundary),
-            boundary.status === COMPLETED)
-          )
-            (row = boundary.row),
-              null !== row &&
-                hoistHoistables(row.hoistables, boundary.contentState),
-              isEligibleForOutlining(request, boundary) ||
-                (boundary.fallbackAbortableTasks.forEach(
-                  abortTaskSoft,
-                  request
-                ),
-                boundary.fallbackAbortableTasks.clear(),
-                null !== row &&
-                  0 === --row.pendingTasks &&
-                  finishSuspenseListRow(request, row)),
-              0 === request.pendingRootTasks &&
-                null === request.trackedPostpones &&
-                null !== boundary.contentPreamble &&
-                preparePreamble(request);
-          else {
-            if (
-              boundary.status === POSTPONED &&
-              ((boundary = boundary.row), null !== boundary)
-            ) {
-              if (null !== request.trackedPostpones) {
-                row = request.trackedPostpones;
-                var postponedRow = boundary.next;
-                if (
-                  null !== postponedRow &&
-                  ((segment = postponedRow.boundaries), null !== segment)
-                )
-                  for (
-                    postponedRow.boundaries = null, postponedRow = 0;
-                    postponedRow < segment.length;
-                    postponedRow++
-                  ) {
-                    var postponedBoundary = segment[postponedRow];
-                    trackPostponedBoundary(request, row, postponedBoundary);
-                    finishedTask(request, postponedBoundary, null, null);
-                  }
-              }
-              0 === --boundary.pendingTasks &&
-                finishSuspenseListRow(request, boundary);
-            }
-          }
-        else
-          null === segment ||
-            !segment.parentFlushed ||
-            (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-            (queueCompletedSegment(boundary, segment),
-            1 === boundary.completedSegments.length &&
-              boundary.parentFlushed &&
-              request.partialBoundaries.push(boundary)),
-            (boundary = boundary.row),
-            null !== boundary &&
-              boundary.together &&
-              tryToResolveTogetherRow(request, boundary);
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function performWork(request$jscomp$2) {
-      if (
-        request$jscomp$2.status !== CLOSED &&
-        13 !== request$jscomp$2.status
-      ) {
-        var prevContext = currentActiveSnapshot,
-          prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = HooksDispatcher;
-        var prevAsyncDispatcher = ReactSharedInternals.A;
-        ReactSharedInternals.A = DefaultAsyncDispatcher;
-        var prevRequest = currentRequest;
-        currentRequest = request$jscomp$2;
-        var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        var prevResumableState = currentResumableState;
-        currentResumableState = request$jscomp$2.resumableState;
-        try {
-          var pingedTasks = request$jscomp$2.pingedTasks,
-            i;
-          for (i = 0; i < pingedTasks.length; i++) {
-            var request = request$jscomp$2,
-              task = pingedTasks[i],
-              segment = task.blockedSegment;
-            if (null === segment) {
-              var prevTaskInDEV = void 0,
-                request$jscomp$0 = request;
-              request = task;
-              if (0 !== request.replay.pendingTasks) {
-                switchContext(request.context);
-                prevTaskInDEV = currentTaskInDEV;
-                currentTaskInDEV = request;
-                try {
-                  "number" === typeof request.replay.slots
-                    ? resumeNode(
-                        request$jscomp$0,
-                        request,
-                        request.replay.slots,
-                        request.node,
-                        request.childIndex
-                      )
-                    : retryNode(request$jscomp$0, request);
-                  if (
-                    1 === request.replay.pendingTasks &&
-                    0 < request.replay.nodes.length
-                  )
-                    throw Error(
-                      "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                    );
-                  request.replay.pendingTasks--;
-                  request.abortSet.delete(request);
-                  finishedTask(
-                    request$jscomp$0,
-                    request.blockedBoundary,
-                    request.row,
-                    null
-                  );
-                } catch (thrownValue) {
-                  resetHooksState();
-                  var x =
-                    thrownValue === SuspenseException
-                      ? getSuspendedThenable()
-                      : thrownValue;
-                  if (
-                    "object" === typeof x &&
-                    null !== x &&
-                    "function" === typeof x.then
-                  ) {
-                    var ping = request.ping;
-                    x.then(ping, ping);
-                    request.thenableState =
-                      thrownValue === SuspenseException
-                        ? getThenableStateAfterSuspending()
-                        : null;
-                  } else {
-                    request.replay.pendingTasks--;
-                    request.abortSet.delete(request);
-                    var errorInfo = getThrownInfo(request.componentStack),
-                      errorDigest = void 0,
-                      request$jscomp$1 = request$jscomp$0,
-                      boundary = request.blockedBoundary,
-                      error$jscomp$0 =
-                        12 === request$jscomp$0.status
-                          ? request$jscomp$0.fatalError
-                          : x,
-                      errorInfo$jscomp$0 = errorInfo,
-                      replayNodes = request.replay.nodes,
-                      resumeSlots = request.replay.slots;
-                    errorDigest = logRecoverableError(
-                      request$jscomp$1,
-                      error$jscomp$0,
-                      errorInfo$jscomp$0,
-                      request.debugTask
-                    );
-                    abortRemainingReplayNodes(
-                      request$jscomp$1,
-                      boundary,
-                      replayNodes,
-                      resumeSlots,
-                      error$jscomp$0,
-                      errorDigest,
-                      errorInfo$jscomp$0,
-                      !1
-                    );
-                    request$jscomp$0.pendingRootTasks--;
-                    0 === request$jscomp$0.pendingRootTasks &&
-                      completeShell(request$jscomp$0);
-                    request$jscomp$0.allPendingTasks--;
-                    0 === request$jscomp$0.allPendingTasks &&
-                      completeAll(request$jscomp$0);
-                  }
-                } finally {
-                  currentTaskInDEV = prevTaskInDEV;
-                }
-              }
-            } else if (
-              ((request$jscomp$0 = prevTaskInDEV = void 0),
-              (errorDigest = task),
-              (request$jscomp$1 = segment),
-              request$jscomp$1.status === PENDING)
-            ) {
-              request$jscomp$1.status = 6;
-              switchContext(errorDigest.context);
-              request$jscomp$0 = currentTaskInDEV;
-              currentTaskInDEV = errorDigest;
-              var childrenLength = request$jscomp$1.children.length,
-                chunkLength = request$jscomp$1.chunks.length;
-              try {
-                retryNode(request, errorDigest),
-                  request$jscomp$1.lastPushedText &&
-                    request$jscomp$1.textEmbedded &&
-                    request$jscomp$1.chunks.push(textSeparator),
-                  errorDigest.abortSet.delete(errorDigest),
-                  (request$jscomp$1.status = COMPLETED),
-                  finishedSegment(
-                    request,
-                    errorDigest.blockedBoundary,
-                    request$jscomp$1
-                  ),
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-              } catch (thrownValue) {
-                resetHooksState();
-                request$jscomp$1.children.length = childrenLength;
-                request$jscomp$1.chunks.length = chunkLength;
-                var x$jscomp$0 =
-                  thrownValue === SuspenseException
-                    ? getSuspendedThenable()
-                    : 12 === request.status
-                      ? request.fatalError
-                      : thrownValue;
-                if (
-                  12 === request.status &&
-                  null !== request.trackedPostpones
-                ) {
-                  var trackedPostpones = request.trackedPostpones,
-                    thrownInfo = getThrownInfo(errorDigest.componentStack);
-                  errorDigest.abortSet.delete(errorDigest);
-                  logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    thrownInfo,
-                    errorDigest.debugTask
-                  );
-                  trackPostpone(
-                    request,
-                    trackedPostpones,
-                    errorDigest,
-                    request$jscomp$1
-                  );
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-                } else if (
-                  "object" === typeof x$jscomp$0 &&
-                  null !== x$jscomp$0 &&
-                  "function" === typeof x$jscomp$0.then
-                ) {
-                  request$jscomp$1.status = PENDING;
-                  errorDigest.thenableState =
-                    thrownValue === SuspenseException
-                      ? getThenableStateAfterSuspending()
-                      : null;
-                  var ping$jscomp$0 = errorDigest.ping;
-                  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-                } else {
-                  var errorInfo$jscomp$1 = getThrownInfo(
-                    errorDigest.componentStack
-                  );
-                  errorDigest.abortSet.delete(errorDigest);
-                  request$jscomp$1.status = ERRORED;
-                  var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                    row = errorDigest.row,
-                    debugTask = errorDigest.debugTask;
-                  null !== row &&
-                    0 === --row.pendingTasks &&
-                    finishSuspenseListRow(request, row);
-                  request.allPendingTasks--;
-                  prevTaskInDEV = logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    errorInfo$jscomp$1,
-                    debugTask
-                  );
-                  if (null === boundary$jscomp$0)
-                    fatalError(
-                      request,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      debugTask
-                    );
-                  else if (
-                    (boundary$jscomp$0.pendingTasks--,
-                    boundary$jscomp$0.status !== CLIENT_RENDERED)
-                  ) {
-                    boundary$jscomp$0.status = CLIENT_RENDERED;
-                    encodeErrorForBoundary(
-                      boundary$jscomp$0,
-                      prevTaskInDEV,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      !1
-                    );
-                    untrackBoundary(request, boundary$jscomp$0);
-                    var boundaryRow = boundary$jscomp$0.row;
-                    null !== boundaryRow &&
-                      0 === --boundaryRow.pendingTasks &&
-                      finishSuspenseListRow(request, boundaryRow);
-                    boundary$jscomp$0.parentFlushed &&
-                      request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                    0 === request.pendingRootTasks &&
-                      null === request.trackedPostpones &&
-                      null !== boundary$jscomp$0.contentPreamble &&
-                      preparePreamble(request);
-                  }
-                  0 === request.allPendingTasks && completeAll(request);
-                }
-              } finally {
-                currentTaskInDEV = request$jscomp$0;
-              }
-            }
-          }
-          pingedTasks.splice(0, i);
-          null !== request$jscomp$2.destination &&
-            flushCompletedQueues(
-              request$jscomp$2,
-              request$jscomp$2.destination
-            );
-        } catch (error) {
-          (pingedTasks = {}),
-            logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-            fatalError(request$jscomp$2, error, pingedTasks, null);
-        } finally {
-          (currentResumableState = prevResumableState),
-            (ReactSharedInternals.H = prevDispatcher),
-            (ReactSharedInternals.A = prevAsyncDispatcher),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-            prevDispatcher === HooksDispatcher && switchContext(prevContext),
-            (currentRequest = prevRequest);
-        }
-      }
-    }
-    function preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      segment.preambleChildren.length &&
-        collectedPreambleSegments.push(segment.preambleChildren);
-      for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-        pendingPreambles =
-          preparePreambleFromSegment(
-            request,
-            segment.children[i],
-            collectedPreambleSegments
-          ) || pendingPreambles;
-      return pendingPreambles;
-    }
-    function preparePreambleFromSegment(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return preparePreambleFromSubtree(
-          request,
-          segment,
-          collectedPreambleSegments
-        );
-      var preamble = boundary.contentPreamble,
-        fallbackPreamble = boundary.fallbackPreamble;
-      if (null === preamble || null === fallbackPreamble) return !1;
-      switch (boundary.status) {
-        case COMPLETED:
-          hoistPreambleState(request.renderState, preamble);
-          request.byteSize += boundary.byteSize;
-          segment = boundary.completedSegments[0];
-          if (!segment)
-            throw Error(
-              "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-            );
-          return preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          );
-        case POSTPONED:
-          if (null !== request.trackedPostpones) return !0;
-        case CLIENT_RENDERED:
-          if (segment.status === COMPLETED)
-            return (
-              hoistPreambleState(request.renderState, fallbackPreamble),
-              preparePreambleFromSubtree(
-                request,
-                segment,
-                collectedPreambleSegments
-              )
-            );
-        default:
-          return !0;
-      }
-    }
-    function preparePreamble(request) {
-      if (
-        request.completedRootSegment &&
-        null === request.completedPreambleSegments
-      ) {
-        var collectedPreambleSegments = [],
-          originalRequestByteSize = request.byteSize,
-          hasPendingPreambles = preparePreambleFromSegment(
-            request,
-            request.completedRootSegment,
-            collectedPreambleSegments
-          ),
-          preamble = request.renderState.preamble;
-        !1 === hasPendingPreambles ||
-        (preamble.headChunks && preamble.bodyChunks)
-          ? (request.completedPreambleSegments = collectedPreambleSegments)
-          : (request.byteSize = originalRequestByteSize);
-      }
-    }
-    function flushSubtree(request, destination, segment, hoistableState) {
-      segment.parentFlushed = !0;
-      switch (segment.status) {
-        case PENDING:
-          segment.id = request.nextSegmentId++;
-        case POSTPONED:
-          return (
-            (hoistableState = segment.id),
-            (segment.lastPushedText = !1),
-            (segment.textEmbedded = !1),
-            (request = request.renderState),
-            writeChunk(destination, placeholder1),
-            writeChunk(destination, request.placeholderPrefix),
-            (request = stringToChunk(hoistableState.toString(16))),
-            writeChunk(destination, request),
-            writeChunkAndReturn(destination, placeholder2)
-          );
-        case COMPLETED:
-          segment.status = FLUSHED;
-          var r = !0,
-            chunks = segment.chunks,
-            chunkIdx = 0;
-          segment = segment.children;
-          for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-            for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-              writeChunk(destination, chunks[chunkIdx]);
-            r = flushSegment(request, destination, r, hoistableState);
-          }
-          for (; chunkIdx < chunks.length - 1; chunkIdx++)
-            writeChunk(destination, chunks[chunkIdx]);
-          chunkIdx < chunks.length &&
-            (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-          return r;
-        case ABORTED:
-          return !0;
-        default:
-          throw Error(
-            "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-          );
-      }
-    }
-    function flushSegment(request, destination, segment, hoistableState) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return flushSubtree(request, destination, segment, hoistableState);
-      boundary.parentFlushed = !0;
-      if (boundary.status === CLIENT_RENDERED) {
-        var row = boundary.row;
-        null !== row &&
-          0 === --row.pendingTasks &&
-          finishSuspenseListRow(request, row);
-        row = boundary.errorDigest;
-        var errorMessage = boundary.errorMessage,
-          errorStack = boundary.errorStack;
-        boundary = boundary.errorComponentStack;
-        writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-        writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-        row &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-          writeChunk(destination, stringToChunk(escapeTextForBrowser(row))),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorMessage &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1B),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(errorMessage))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorStack &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1C),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(errorStack))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        boundary &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1D),
-          writeChunk(
-            destination,
-            stringToChunk(escapeTextForBrowser(boundary))
-          ),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-        flushSubtree(request, destination, segment, hoistableState);
-      } else if (boundary.status !== COMPLETED)
-        boundary.status === PENDING &&
-          (boundary.rootSegmentID = request.nextSegmentId++),
-          0 < boundary.completedSegments.length &&
-            request.partialBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          hoistableState &&
-            hoistHoistables(hoistableState, boundary.fallbackState),
-          flushSubtree(request, destination, segment, hoistableState);
-      else if (
-        !flushingPartialBoundaries &&
-        isEligibleForOutlining(request, boundary) &&
-        (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-          hasSuspenseyContent(boundary.contentState))
-      )
-        (boundary.rootSegmentID = request.nextSegmentId++),
-          request.completedBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          flushSubtree(request, destination, segment, hoistableState);
-      else {
-        flushedByteSize += boundary.byteSize;
-        hoistableState &&
-          hoistHoistables(hoistableState, boundary.contentState);
-        segment = boundary.row;
-        null !== segment &&
-          isEligibleForOutlining(request, boundary) &&
-          0 === --segment.pendingTasks &&
-          finishSuspenseListRow(request, segment);
-        writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-        segment = boundary.completedSegments;
-        if (1 !== segment.length)
-          throw Error(
-            "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-          );
-        flushSegment(request, destination, segment[0], hoistableState);
-      }
-      return writeChunkAndReturn(destination, endSuspenseBoundary);
-    }
-    function flushSegmentContainer(
-      request,
-      destination,
-      segment,
-      hoistableState
-    ) {
-      writeStartSegment(
-        destination,
-        request.renderState,
-        segment.parentFormatContext,
-        segment.id
-      );
-      flushSegment(request, destination, segment, hoistableState);
-      return writeEndSegment(destination, segment.parentFormatContext);
-    }
-    function flushCompletedBoundary(request, destination, boundary) {
-      flushedByteSize = boundary.byteSize;
-      for (
-        var completedSegments = boundary.completedSegments, i = 0;
-        i < completedSegments.length;
-        i++
-      )
-        flushPartiallyCompletedSegment(
-          request,
-          destination,
-          boundary,
-          completedSegments[i]
-        );
-      completedSegments.length = 0;
-      completedSegments = boundary.row;
-      null !== completedSegments &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --completedSegments.pendingTasks &&
-        finishSuspenseListRow(request, completedSegments);
-      writeHoistablesForBoundary(
-        destination,
-        boundary.contentState,
-        request.renderState
-      );
-      completedSegments = request.resumableState;
-      request = request.renderState;
-      i = boundary.rootSegmentID;
-      boundary = boundary.contentState;
-      var requiresStyleInsertion = request.stylesToHoist;
-      request.stylesToHoist = !1;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      requiresStyleInsertion
-        ? ((completedSegments.instructions & SentClientRenderFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentClientRenderFunction),
-            writeChunk(destination, clientRenderScriptFunctionOnly)),
-          (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          (completedSegments.instructions & SentStyleInsertionFunction) ===
-          NothingSent
-            ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-              writeChunk(
-                destination,
-                completeBoundaryWithStylesScript1FullPartial
-              ))
-            : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-        : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          writeChunk(destination, completeBoundaryScript1Partial));
-      completedSegments = stringToChunk(i.toString(16));
-      writeChunk(destination, request.boundaryPrefix);
-      writeChunk(destination, completedSegments);
-      writeChunk(destination, completeBoundaryScript2);
-      writeChunk(destination, request.segmentPrefix);
-      writeChunk(destination, completedSegments);
-      requiresStyleInsertion
-        ? (writeChunk(destination, completeBoundaryScript3a),
-          writeStyleResourceDependenciesInJS(destination, boundary))
-        : writeChunk(destination, completeBoundaryScript3b);
-      boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-      return writeBootstrap(destination, request) && boundary;
-    }
-    function flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      segment
-    ) {
-      if (segment.status === FLUSHED) return !0;
-      var hoistableState = boundary.contentState,
-        segmentID = segment.id;
-      if (-1 === segmentID) {
-        if (-1 === (segment.id = boundary.rootSegmentID))
-          throw Error(
-            "A root segment ID must have been assigned by now. This is a bug in React."
-          );
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      }
-      if (segmentID === boundary.rootSegmentID)
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      flushSegmentContainer(request, destination, segment, hoistableState);
-      boundary = request.resumableState;
-      request = request.renderState;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-        ? ((boundary.instructions |= SentCompleteSegmentFunction),
-          writeChunk(destination, completeSegmentScript1Full))
-        : writeChunk(destination, completeSegmentScript1Partial);
-      writeChunk(destination, request.segmentPrefix);
-      segmentID = stringToChunk(segmentID.toString(16));
-      writeChunk(destination, segmentID);
-      writeChunk(destination, completeSegmentScript2);
-      writeChunk(destination, request.placeholderPrefix);
-      writeChunk(destination, segmentID);
-      destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-      return destination;
-    }
-    function flushCompletedQueues(request, destination) {
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      try {
-        if (!(0 < request.pendingRootTasks)) {
-          var i,
-            completedRootSegment = request.completedRootSegment;
-          if (null !== completedRootSegment) {
-            if (completedRootSegment.status === POSTPONED) return;
-            var completedPreambleSegments = request.completedPreambleSegments;
-            if (null === completedPreambleSegments) return;
-            flushedByteSize = request.byteSize;
-            var resumableState = request.resumableState,
-              renderState = request.renderState,
-              preamble = renderState.preamble,
-              htmlChunks = preamble.htmlChunks,
-              headChunks = preamble.headChunks,
-              i$jscomp$0;
-            if (htmlChunks) {
-              for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-                writeChunk(destination, htmlChunks[i$jscomp$0]);
-              if (headChunks)
-                for (
-                  i$jscomp$0 = 0;
-                  i$jscomp$0 < headChunks.length;
-                  i$jscomp$0++
-                )
-                  writeChunk(destination, headChunks[i$jscomp$0]);
-              else
-                writeChunk(destination, startChunkForTag("head")),
-                  writeChunk(destination, endOfStartTag);
-            } else if (headChunks)
-              for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-                writeChunk(destination, headChunks[i$jscomp$0]);
-            var charsetChunks = renderState.charsetChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < charsetChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, charsetChunks[i$jscomp$0]);
-            charsetChunks.length = 0;
-            renderState.preconnects.forEach(flushResource, destination);
-            renderState.preconnects.clear();
-            var viewportChunks = renderState.viewportChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < viewportChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, viewportChunks[i$jscomp$0]);
-            viewportChunks.length = 0;
-            renderState.fontPreloads.forEach(flushResource, destination);
-            renderState.fontPreloads.clear();
-            renderState.highImagePreloads.forEach(flushResource, destination);
-            renderState.highImagePreloads.clear();
-            currentlyFlushingRenderState = renderState;
-            renderState.styles.forEach(flushStylesInPreamble, destination);
-            currentlyFlushingRenderState = null;
-            var importMapChunks = renderState.importMapChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < importMapChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, importMapChunks[i$jscomp$0]);
-            importMapChunks.length = 0;
-            renderState.bootstrapScripts.forEach(flushResource, destination);
-            renderState.scripts.forEach(flushResource, destination);
-            renderState.scripts.clear();
-            renderState.bulkPreloads.forEach(flushResource, destination);
-            renderState.bulkPreloads.clear();
-            htmlChunks ||
-              headChunks ||
-              (resumableState.instructions |= SentCompletedShellId);
-            var hoistableChunks = renderState.hoistableChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < hoistableChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, hoistableChunks[i$jscomp$0]);
-            for (
-              resumableState = hoistableChunks.length = 0;
-              resumableState < completedPreambleSegments.length;
-              resumableState++
-            ) {
-              var segments = completedPreambleSegments[resumableState];
-              for (
-                renderState = 0;
-                renderState < segments.length;
-                renderState++
-              )
-                flushSegment(request, destination, segments[renderState], null);
-            }
-            var preamble$jscomp$0 = request.renderState.preamble,
-              headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-            (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-              writeChunk(destination, endChunkForTag("head"));
-            var bodyChunks = preamble$jscomp$0.bodyChunks;
-            if (bodyChunks)
-              for (
-                completedPreambleSegments = 0;
-                completedPreambleSegments < bodyChunks.length;
-                completedPreambleSegments++
-              )
-                writeChunk(destination, bodyChunks[completedPreambleSegments]);
-            flushSegment(request, destination, completedRootSegment, null);
-            request.completedRootSegment = null;
-            var renderState$jscomp$0 = request.renderState;
-            if (
-              0 !== request.allPendingTasks ||
-              0 !== request.clientRenderedBoundaries.length ||
-              0 !== request.completedBoundaries.length ||
-              (null !== request.trackedPostpones &&
-                (0 !== request.trackedPostpones.rootNodes.length ||
-                  null !== request.trackedPostpones.rootSlots))
-            ) {
-              var resumableState$jscomp$0 = request.resumableState;
-              if (
-                (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-                NothingSent
-              ) {
-                resumableState$jscomp$0.instructions |= SentMarkShellTime;
-                writeChunk(destination, renderState$jscomp$0.startInlineScript);
-                if (
-                  (resumableState$jscomp$0.instructions &
-                    SentCompletedShellId) ===
-                  NothingSent
-                ) {
-                  resumableState$jscomp$0.instructions |= SentCompletedShellId;
-                  var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-                  writeChunk(destination, completedShellIdAttributeStart);
-                  writeChunk(
-                    destination,
-                    stringToChunk(escapeTextForBrowser(shellId))
-                  );
-                  writeChunk(destination, attributeEnd);
-                }
-                writeChunk(destination, endOfStartTag);
-                writeChunk(destination, shellTimeRuntimeScript);
-                writeChunkAndReturn(destination, endInlineScript);
-              }
-            }
-            writeBootstrap(destination, renderState$jscomp$0);
-          }
-          var renderState$jscomp$1 = request.renderState;
-          completedRootSegment = 0;
-          var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < viewportChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              viewportChunks$jscomp$0[completedRootSegment]
-            );
-          viewportChunks$jscomp$0.length = 0;
-          renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-          renderState$jscomp$1.preconnects.clear();
-          renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.fontPreloads.clear();
-          renderState$jscomp$1.highImagePreloads.forEach(
-            flushResource,
-            destination
-          );
-          renderState$jscomp$1.highImagePreloads.clear();
-          renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-          renderState$jscomp$1.scripts.forEach(flushResource, destination);
-          renderState$jscomp$1.scripts.clear();
-          renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.bulkPreloads.clear();
-          var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < hoistableChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              hoistableChunks$jscomp$0[completedRootSegment]
-            );
-          hoistableChunks$jscomp$0.length = 0;
-          var clientRenderedBoundaries = request.clientRenderedBoundaries;
-          for (i = 0; i < clientRenderedBoundaries.length; i++) {
-            var boundary = clientRenderedBoundaries[i];
-            renderState$jscomp$1 = destination;
-            var resumableState$jscomp$1 = request.resumableState,
-              renderState$jscomp$2 = request.renderState,
-              id = boundary.rootSegmentID,
-              errorDigest = boundary.errorDigest,
-              errorMessage = boundary.errorMessage,
-              errorStack = boundary.errorStack,
-              errorComponentStack = boundary.errorComponentStack;
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.startInlineScript
-            );
-            writeChunk(renderState$jscomp$1, endOfStartTag);
-            (resumableState$jscomp$1.instructions &
-              SentClientRenderFunction) ===
-            NothingSent
-              ? ((resumableState$jscomp$1.instructions |=
-                  SentClientRenderFunction),
-                writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-              : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.boundaryPrefix
-            );
-            writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16)));
-            writeChunk(renderState$jscomp$1, clientRenderScript1A);
-            if (
-              errorDigest ||
-              errorMessage ||
-              errorStack ||
-              errorComponentStack
-            )
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorDigest || "")
-                  )
-                );
-            if (errorMessage || errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorMessage || "")
-                  )
-                );
-            if (errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  stringToChunk(
-                    escapeJSStringsForInstructionScripts(errorStack || "")
-                  )
-                );
-            errorComponentStack &&
-              (writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-              writeChunk(
-                renderState$jscomp$1,
-                stringToChunk(
-                  escapeJSStringsForInstructionScripts(errorComponentStack)
-                )
-              ));
-            var JSCompiler_inline_result = writeChunkAndReturn(
-              renderState$jscomp$1,
-              clientRenderScriptEnd
-            );
-            if (!JSCompiler_inline_result) {
-              request.destination = null;
-              i++;
-              clientRenderedBoundaries.splice(0, i);
-              return;
-            }
-          }
-          clientRenderedBoundaries.splice(0, i);
-          var completedBoundaries = request.completedBoundaries;
-          for (i = 0; i < completedBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(
-                request,
-                destination,
-                completedBoundaries[i]
-              )
-            ) {
-              request.destination = null;
-              i++;
-              completedBoundaries.splice(0, i);
-              return;
-            }
-          completedBoundaries.splice(0, i);
-          completeWriting(destination);
-          currentView = new Uint8Array(2048);
-          writtenBytes = 0;
-          flushingPartialBoundaries = !0;
-          var partialBoundaries = request.partialBoundaries;
-          for (i = 0; i < partialBoundaries.length; i++) {
-            a: {
-              clientRenderedBoundaries = request;
-              boundary = destination;
-              var boundary$jscomp$0 = partialBoundaries[i];
-              flushedByteSize = boundary$jscomp$0.byteSize;
-              var completedSegments = boundary$jscomp$0.completedSegments;
-              for (
-                JSCompiler_inline_result = 0;
-                JSCompiler_inline_result < completedSegments.length;
-                JSCompiler_inline_result++
-              )
-                if (
-                  !flushPartiallyCompletedSegment(
-                    clientRenderedBoundaries,
-                    boundary,
-                    boundary$jscomp$0,
-                    completedSegments[JSCompiler_inline_result]
-                  )
-                ) {
-                  JSCompiler_inline_result++;
-                  completedSegments.splice(0, JSCompiler_inline_result);
-                  var JSCompiler_inline_result$jscomp$0 = !1;
-                  break a;
-                }
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var row = boundary$jscomp$0.row;
-              null !== row &&
-                row.together &&
-                1 === boundary$jscomp$0.pendingTasks &&
-                (1 === row.pendingTasks
-                  ? unblockSuspenseListRow(
-                      clientRenderedBoundaries,
-                      row,
-                      row.hoistables
-                    )
-                  : row.pendingTasks--);
-              JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-                boundary,
-                boundary$jscomp$0.contentState,
-                clientRenderedBoundaries.renderState
-              );
-            }
-            if (!JSCompiler_inline_result$jscomp$0) {
-              request.destination = null;
-              i++;
-              partialBoundaries.splice(0, i);
-              return;
-            }
-          }
-          partialBoundaries.splice(0, i);
-          flushingPartialBoundaries = !1;
-          var largeBoundaries = request.completedBoundaries;
-          for (i = 0; i < largeBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(request, destination, largeBoundaries[i])
-            ) {
-              request.destination = null;
-              i++;
-              largeBoundaries.splice(0, i);
-              return;
-            }
-          largeBoundaries.splice(0, i);
-        }
-      } finally {
-        (flushingPartialBoundaries = !1),
-          0 === request.allPendingTasks &&
-          0 === request.clientRenderedBoundaries.length &&
-          0 === request.completedBoundaries.length
-            ? ((request.flushScheduled = !1),
-              (i = request.resumableState),
-              i.hasBody && writeChunk(destination, endChunkForTag("body")),
-              i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-              completeWriting(destination),
-              0 !== request.abortableTasks.size &&
-                console.error(
-                  "There was still abortable task at the root when we closed. This is a bug in React."
-                ),
-              (request.status = CLOSED),
-              destination.close(),
-              (request.destination = null))
-            : completeWriting(destination);
-      }
-    }
-    function startWork(request) {
-      request.flushScheduled = null !== request.destination;
-      supportsRequestStorage
-        ? scheduleMicrotask(function () {
-            return requestStorage.run(request, performWork, request);
-          })
-        : scheduleMicrotask(function () {
-            return performWork(request);
-          });
-      setTimeout(function () {
-        10 === request.status && (request.status = 11);
-        null === request.trackedPostpones &&
-          (supportsRequestStorage
-            ? requestStorage.run(
-                request,
-                enqueueEarlyPreloadsAfterInitialWork,
-                request
-              )
-            : enqueueEarlyPreloadsAfterInitialWork(request));
-      }, 0);
-    }
-    function enqueueEarlyPreloadsAfterInitialWork(request) {
-      safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-    }
-    function enqueueFlush(request) {
-      !1 === request.flushScheduled &&
-        0 === request.pingedTasks.length &&
-        null !== request.destination &&
-        ((request.flushScheduled = !0),
-        setTimeout(function () {
-          var destination = request.destination;
-          destination
-            ? flushCompletedQueues(request, destination)
-            : (request.flushScheduled = !1);
-        }, 0));
-    }
-    function startFlowing(request, destination) {
-      if (13 === request.status)
-        (request.status = CLOSED),
-          closeWithError(destination, request.fatalError);
-      else if (request.status !== CLOSED && null === request.destination) {
-        request.destination = destination;
-        try {
-          flushCompletedQueues(request, destination);
-        } catch (error) {
-          (destination = {}),
-            logRecoverableError(request, error, destination, null),
-            fatalError(request, error, destination, null);
-        }
-      }
-    }
-    function abort(request, reason) {
-      if (11 === request.status || 10 === request.status) request.status = 12;
-      try {
-        var abortableTasks = request.abortableTasks;
-        if (0 < abortableTasks.size) {
-          var error =
-            void 0 === reason
-              ? Error("The render was aborted by the server without a reason.")
-              : "object" === typeof reason &&
-                  null !== reason &&
-                  "function" === typeof reason.then
-                ? Error("The render was aborted by the server with a promise.")
-                : reason;
-          request.fatalError = error;
-          abortableTasks.forEach(function (task) {
-            var prevTaskInDEV = currentTaskInDEV,
-              prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-            currentTaskInDEV = task;
-            ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-            try {
-              abortTask(task, request, error);
-            } finally {
-              (currentTaskInDEV = prevTaskInDEV),
-                (ReactSharedInternals.getCurrentStack =
-                  prevGetCurrentStackImpl);
-            }
-          });
-          abortableTasks.clear();
-        }
-        null !== request.destination &&
-          flushCompletedQueues(request, request.destination);
-      } catch (error$4) {
-        (reason = {}),
-          logRecoverableError(request, error$4, reason, null),
-          fatalError(request, error$4, reason, null);
-      }
-    }
-    function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-      if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-      else {
-        var workingMap = trackedPostpones.workingMap,
-          parentNode = workingMap.get(parentKeyPath);
-        void 0 === parentNode &&
-          ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-          workingMap.set(parentKeyPath, parentNode),
-          addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-        parentNode[2].push(node);
-      }
-    }
-    function getPostponedState(request) {
-      var trackedPostpones = request.trackedPostpones;
-      if (
-        null === trackedPostpones ||
-        (0 === trackedPostpones.rootNodes.length &&
-          null === trackedPostpones.rootSlots)
-      )
-        return (request.trackedPostpones = null);
-      if (
-        null === request.completedRootSegment ||
-        (request.completedRootSegment.status !== POSTPONED &&
-          null !== request.completedPreambleSegments)
-      ) {
-        var nextSegmentId = request.nextSegmentId;
-        var replaySlots = trackedPostpones.rootSlots;
-        var resumableState = request.resumableState;
-        resumableState.bootstrapScriptContent = void 0;
-        resumableState.bootstrapScripts = void 0;
-        resumableState.bootstrapModules = void 0;
-      } else {
-        nextSegmentId = 0;
-        replaySlots = -1;
-        resumableState = request.resumableState;
-        var renderState = request.renderState;
-        resumableState.nextFormID = 0;
-        resumableState.hasBody = !1;
-        resumableState.hasHtml = !1;
-        resumableState.unknownResources = { font: renderState.resets.font };
-        resumableState.dnsResources = renderState.resets.dns;
-        resumableState.connectResources = renderState.resets.connect;
-        resumableState.imageResources = renderState.resets.image;
-        resumableState.styleResources = renderState.resets.style;
-        resumableState.scriptResources = {};
-        resumableState.moduleUnknownResources = {};
-        resumableState.moduleScriptResources = {};
-        resumableState.instructions = NothingSent;
-      }
-      return {
-        nextSegmentId: nextSegmentId,
-        rootFormatContext: request.rootFormatContext,
-        progressiveChunkSize: request.progressiveChunkSize,
-        resumableState: request.resumableState,
-        replayNodes: trackedPostpones.rootNodes,
-        replaySlots: replaySlots
-      };
-    }
-    function ensureCorrectIsomorphicReactVersion() {
-      var isomorphicReactPackageVersion = React.version;
-      if ("19.2.3" !== isomorphicReactPackageVersion)
-        throw Error(
-          'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-            (isomorphicReactPackageVersion +
-              "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-        );
-    }
-    var React = require("react"),
-      ReactDOM = require("react-dom"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-      REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      isArrayImpl = Array.isArray,
-      jsxPropsParents = new WeakMap(),
-      jsxChildrenParents = new WeakMap(),
-      CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
-      LocalPromise = Promise,
-      scheduleMicrotask =
-        "function" === typeof queueMicrotask
-          ? queueMicrotask
-          : function (callback) {
-              LocalPromise.resolve(null)
-                .then(callback)
-                .catch(handleErrorInNextTick);
-            },
-      currentView = null,
-      writtenBytes = 0,
-      textEncoder = new TextEncoder(),
-      assign = Object.assign,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern$1 = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      matchHtmlRegExp = /["'&<>]/,
-      uppercasePattern = /([A-Z])/g,
-      msPattern = /^ms-/,
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: previousDispatcher.f,
-      r: previousDispatcher.r,
-      D: function (href) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            if (!resumableState.dnsResources.hasOwnProperty(href)) {
-              resumableState.dnsResources[href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              )
-                JSCompiler_temp =
-                  ((header =
-                    "<" +
-                    escapeHrefForLinkHeaderURLContext(href) +
-                    ">; rel=dns-prefetch"),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              JSCompiler_temp
-                ? ((renderState.resets.dns[href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((header = []),
-                  pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-                  renderState.preconnects.add(header));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.D(href);
-      },
-      C: function (href, crossOrigin) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            var bucket =
-              "use-credentials" === crossOrigin
-                ? "credentials"
-                : "string" === typeof crossOrigin
-                  ? "anonymous"
-                  : "default";
-            if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-              resumableState.connectResources[bucket][href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              ) {
-                JSCompiler_temp =
-                  "<" +
-                  escapeHrefForLinkHeaderURLContext(href) +
-                  ">; rel=preconnect";
-                if ("string" === typeof crossOrigin) {
-                  var escapedCrossOrigin =
-                    escapeStringForLinkHeaderQuotedParamValueContext(
-                      crossOrigin,
-                      "crossOrigin"
-                    );
-                  JSCompiler_temp +=
-                    '; crossorigin="' + escapedCrossOrigin + '"';
-                }
-                JSCompiler_temp =
-                  ((header = JSCompiler_temp),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              }
-              JSCompiler_temp
-                ? ((renderState.resets.connect[bucket][href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((bucket = []),
-                  pushLinkImpl(bucket, {
-                    rel: "preconnect",
-                    href: href,
-                    crossOrigin: crossOrigin
-                  }),
-                  renderState.preconnects.add(bucket));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.C(href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (as && href) {
-            switch (as) {
-              case "image":
-                if (options) {
-                  var imageSrcSet = options.imageSrcSet;
-                  var imageSizes = options.imageSizes;
-                  var fetchPriority = options.fetchPriority;
-                }
-                var key = imageSrcSet
-                  ? imageSrcSet + "\n" + (imageSizes || "")
-                  : href;
-                if (resumableState.imageResources.hasOwnProperty(key)) return;
-                resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-                resumableState = renderState.headers;
-                var header;
-                resumableState &&
-                0 < resumableState.remainingCapacity &&
-                "string" !== typeof imageSrcSet &&
-                "high" === fetchPriority &&
-                ((header = getPreloadAsHeader(href, as, options)),
-                0 <= (resumableState.remainingCapacity -= header.length + 2))
-                  ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-                    resumableState.highImagePreloads &&
-                      (resumableState.highImagePreloads += ", "),
-                    (resumableState.highImagePreloads += header))
-                  : ((resumableState = []),
-                    pushLinkImpl(
-                      resumableState,
-                      assign(
-                        {
-                          rel: "preload",
-                          href: imageSrcSet ? void 0 : href,
-                          as: as
-                        },
-                        options
-                      )
-                    ),
-                    "high" === fetchPriority
-                      ? renderState.highImagePreloads.add(resumableState)
-                      : (renderState.bulkPreloads.add(resumableState),
-                        renderState.preloads.images.set(key, resumableState)));
-                break;
-              case "style":
-                if (resumableState.styleResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.styleResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.stylesheets.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                break;
-              case "script":
-                if (resumableState.scriptResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                renderState.preloads.scripts.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.scriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                break;
-              default:
-                if (resumableState.unknownResources.hasOwnProperty(as)) {
-                  if (
-                    ((imageSrcSet = resumableState.unknownResources[as]),
-                    imageSrcSet.hasOwnProperty(href))
-                  )
-                    return;
-                } else
-                  (imageSrcSet = {}),
-                    (resumableState.unknownResources[as] = imageSrcSet);
-                imageSrcSet[href] = PRELOAD_NO_CREDS;
-                if (
-                  (resumableState = renderState.headers) &&
-                  0 < resumableState.remainingCapacity &&
-                  "font" === as &&
-                  ((key = getPreloadAsHeader(href, as, options)),
-                  0 <= (resumableState.remainingCapacity -= key.length + 2))
-                )
-                  (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-                    resumableState.fontPreloads &&
-                      (resumableState.fontPreloads += ", "),
-                    (resumableState.fontPreloads += key);
-                else
-                  switch (
-                    ((resumableState = []),
-                    (href = assign(
-                      { rel: "preload", href: href, as: as },
-                      options
-                    )),
-                    pushLinkImpl(resumableState, href),
-                    as)
-                  ) {
-                    case "font":
-                      renderState.fontPreloads.add(resumableState);
-                      break;
-                    default:
-                      renderState.bulkPreloads.add(resumableState);
-                  }
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.L(href, as, options);
-      },
-      m: function (href, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            var as =
-              options && "string" === typeof options.as ? options.as : "script";
-            switch (as) {
-              case "script":
-                if (resumableState.moduleScriptResources.hasOwnProperty(href))
-                  return;
-                as = [];
-                resumableState.moduleScriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.moduleScripts.set(href, as);
-                break;
-              default:
-                if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-                  var resources = resumableState.unknownResources[as];
-                  if (resources.hasOwnProperty(href)) return;
-                } else
-                  (resources = {}),
-                    (resumableState.moduleUnknownResources[as] = resources);
-                as = [];
-                resources[href] = PRELOAD_NO_CREDS;
-            }
-            pushLinkImpl(
-              as,
-              assign({ rel: "modulepreload", href: href }, options)
-            );
-            renderState.bulkPreloads.add(as);
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.m(href, options);
-      },
-      X: function (src, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState = resumableState.scriptResources.hasOwnProperty(
-              src
-            )
-              ? resumableState.scriptResources[src]
-              : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.scriptResources[src] = EXISTS),
-              (options = assign({ src: src, async: !0 }, options)),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.scripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.X(src, options);
-      },
-      S: function (href, precedence, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            precedence = precedence || "default";
-            var styleQueue = renderState.styles.get(precedence),
-              resourceState = resumableState.styleResources.hasOwnProperty(href)
-                ? resumableState.styleResources[href]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.styleResources[href] = EXISTS),
-              styleQueue ||
-                ((styleQueue = {
-                  precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(precedence, styleQueue)),
-              (precedence = {
-                state: PENDING$1,
-                props: assign(
-                  {
-                    rel: "stylesheet",
-                    href: href,
-                    "data-precedence": precedence
-                  },
-                  options
-                )
-              }),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(precedence.props, resourceState),
-                (renderState = renderState.preloads.stylesheets.get(href)) &&
-                0 < renderState.length
-                  ? (renderState.length = 0)
-                  : (precedence.state = PRELOADED)),
-              styleQueue.sheets.set(href, precedence),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.S(href, precedence, options);
-      },
-      M: function (src, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState =
-              resumableState.moduleScriptResources.hasOwnProperty(src)
-                ? resumableState.moduleScriptResources[src]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.moduleScriptResources[src] = EXISTS),
-              (options = assign(
-                { src: src, type: "module", async: !0 },
-                options
-              )),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.moduleScripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.M(src, options);
-      }
-    };
-    var NothingSent = 0,
-      SentCompleteSegmentFunction = 1,
-      SentCompleteBoundaryFunction = 2,
-      SentClientRenderFunction = 4,
-      SentStyleInsertionFunction = 8,
-      SentCompletedShellId = 32,
-      SentMarkShellTime = 64,
-      EXISTS = null,
-      PRELOAD_NO_CREDS = [];
-    Object.freeze(PRELOAD_NO_CREDS);
-    var currentlyFlushingRenderState = null;
-    stringToPrecomputedChunk('"></template>');
-    var startInlineScript = stringToPrecomputedChunk("<script"),
-      endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-      startScriptSrc = stringToPrecomputedChunk('<script src="'),
-      startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-      scriptNonce = stringToPrecomputedChunk(' nonce="'),
-      scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-      scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-      endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-      startInlineStyle = stringToPrecomputedChunk("<style"),
-      scriptRegex = /(<\/|<)(s)(cript)/gi,
-      importMapScriptStart = stringToPrecomputedChunk(
-        '<script type="importmap">'
-      ),
-      importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var ROOT_HTML_MODE = 0,
-      HTML_HTML_MODE = 1,
-      HTML_MODE = 2,
-      HTML_HEAD_MODE = 3,
-      SVG_MODE = 4,
-      MATHML_MODE = 5,
-      HTML_TABLE_MODE = 6,
-      HTML_TABLE_BODY_MODE = 7,
-      HTML_TABLE_ROW_MODE = 8,
-      HTML_COLGROUP_MODE = 9,
-      textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"),
-      styleNameCache = new Map(),
-      styleAttributeStart = stringToPrecomputedChunk(' style="'),
-      styleAssign = stringToPrecomputedChunk(":"),
-      styleSeparator = stringToPrecomputedChunk(";"),
-      attributeSeparator = stringToPrecomputedChunk(" "),
-      attributeAssign = stringToPrecomputedChunk('="'),
-      attributeEnd = stringToPrecomputedChunk('"'),
-      attributeEmptyString = stringToPrecomputedChunk('=""'),
-      actionJavaScriptURL = stringToPrecomputedChunk(
-        escapeTextForBrowser(
-          "javascript:throw new Error('React form unexpectedly submitted.')"
-        )
-      ),
-      startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'),
-      endOfStartTag = stringToPrecomputedChunk(">"),
-      endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"),
-      didWarnDefaultInputValue = !1,
-      didWarnDefaultChecked = !1,
-      didWarnDefaultSelectValue = !1,
-      didWarnDefaultTextareaValue = !1,
-      didWarnInvalidOptionChildren = !1,
-      didWarnInvalidOptionInnerHTML = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-      formReplayingRuntimeScript = stringToPrecomputedChunk(
-        'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-      ),
-      formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-      formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"),
-      styleRegex = /(<\/|<)(s)(tyle)/gi,
-      headPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--head--\x3e"),
-      bodyPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--body--\x3e"),
-      htmlPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--html--\x3e"),
-      leadingNewline = stringToPrecomputedChunk("\n"),
-      VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-      validatedTagCache = new Map(),
-      doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"),
-      endTagCache = new Map(),
-      shellTimeRuntimeScript = stringToPrecomputedChunk(
-        "requestAnimationFrame(function(){$RT=performance.now()});"
-      ),
-      placeholder1 = stringToPrecomputedChunk('<template id="'),
-      placeholder2 = stringToPrecomputedChunk('"></template>'),
-      startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-      endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-      startCompletedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$--\x3e"),
-      startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-        '\x3c!--$?--\x3e<template id="'
-      ),
-      startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-      startClientRenderedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-      endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-      clientRenderedSuspenseBoundaryError1 =
-        stringToPrecomputedChunk("<template"),
-      clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-        stringToPrecomputedChunk('"'),
-      clientRenderedSuspenseBoundaryError1A =
-        stringToPrecomputedChunk(' data-dgst="'),
-      clientRenderedSuspenseBoundaryError1B =
-        stringToPrecomputedChunk(' data-msg="'),
-      clientRenderedSuspenseBoundaryError1C =
-        stringToPrecomputedChunk(' data-stck="'),
-      clientRenderedSuspenseBoundaryError1D =
-        stringToPrecomputedChunk(' data-cstck="'),
-      clientRenderedSuspenseBoundaryError2 =
-        stringToPrecomputedChunk("></template>"),
-      startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-      startSegmentHTML2 = stringToPrecomputedChunk('">'),
-      endSegmentHTML = stringToPrecomputedChunk("</div>"),
-      startSegmentSVG = stringToPrecomputedChunk(
-        '<svg aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentSVG2 = stringToPrecomputedChunk('">'),
-      endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-      startSegmentMathML = stringToPrecomputedChunk(
-        '<math aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentMathML2 = stringToPrecomputedChunk('">'),
-      endSegmentMathML = stringToPrecomputedChunk("</math>"),
-      startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-      startSegmentTable2 = stringToPrecomputedChunk('">'),
-      endSegmentTable = stringToPrecomputedChunk("</table>"),
-      startSegmentTableBody = stringToPrecomputedChunk(
-        '<table hidden><tbody id="'
-      ),
-      startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-      endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-      startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-      startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-      endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-      startSegmentColGroup = stringToPrecomputedChunk(
-        '<table hidden><colgroup id="'
-      ),
-      startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-      endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"),
-      completeSegmentScript1Full = stringToPrecomputedChunk(
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ),
-      completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-      completeSegmentScript2 = stringToPrecomputedChunk('","'),
-      completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-    stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-    stringToPrecomputedChunk('" data-pid="');
-    var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-      '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-    );
-    stringToChunk(
-      '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);'
-    );
-    var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-      completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-        '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-      ),
-      completeBoundaryWithStylesScript1Partial =
-        stringToPrecomputedChunk('$RR("'),
-      completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-      completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-      completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-      completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rci="" data-bid="');
-    stringToPrecomputedChunk('<template data-rri="" data-bid="');
-    stringToPrecomputedChunk('" data-sid="');
-    stringToPrecomputedChunk('" data-sty="');
-    var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-      ),
-      clientRenderScript1Full = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-      ),
-      clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-      clientRenderScript1A = stringToPrecomputedChunk('"'),
-      clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-      clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-    stringToPrecomputedChunk('" data-dgst="');
-    stringToPrecomputedChunk('" data-msg="');
-    stringToPrecomputedChunk('" data-stck="');
-    stringToPrecomputedChunk('" data-cstck="');
-    var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
-      regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
-      lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-        ' media="not all" data-precedence="'
-      ),
-      lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-      currentlyRenderingBoundaryHasStylesToHoist = !1,
-      destinationHasCapacity = !0,
-      stylesheetFlushingQueue = [],
-      styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-      styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      spaceSeparator = stringToPrecomputedChunk(" "),
-      styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      styleTagResourceClose = stringToPrecomputedChunk("</style>");
-    stringToPrecomputedChunk('<link rel="expect" href="#');
-    stringToPrecomputedChunk('" blocking="render"/>');
-    var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'),
-      arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-      arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-      arrayInterstitial = stringToPrecomputedChunk(","),
-      arrayCloseBracket = stringToPrecomputedChunk("]"),
-      PENDING$1 = 0,
-      PRELOADED = 1,
-      PREAMBLE = 2,
-      LATE = 3,
-      regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g,
-      regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g,
-      bind = Function.prototype.bind,
-      supportsRequestStorage = "function" === typeof AsyncLocalStorage,
-      requestStorage = supportsRequestStorage ? new AsyncLocalStorage() : null,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var rendererSigil = {};
-    var currentActiveSnapshot = null,
-      didWarnAboutNoopUpdateForComponent = {},
-      didWarnAboutDeprecatedWillMount = {};
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          var internals = inst._reactInternals;
-          null === internals.queue
-            ? warnNoop(inst, "setState")
-            : (internals.queue.push(payload),
-              void 0 !== callback &&
-                null !== callback &&
-                warnOnInvalidCallback(callback));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          inst.replace = !0;
-          inst.queue = [payload];
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback);
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          null === inst._reactInternals.queue
-            ? warnNoop(inst, "forceUpdate")
-            : void 0 !== callback &&
-              null !== callback &&
-              warnOnInvalidCallback(callback);
-        }
-      },
-      emptyTreeContext = { id: 1, overflow: "" },
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      suspendedThenable = null,
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      currentlyRenderingComponent = null,
-      currentlyRenderingTask = null,
-      currentlyRenderingRequest = null,
-      currentlyRenderingKeyPath = null,
-      firstWorkInProgressHook = null,
-      workInProgressHook = null,
-      isReRender = !1,
-      didScheduleRenderPhaseUpdate = !1,
-      localIdCounter = 0,
-      actionStateCounter = 0,
-      actionStateMatchingIndex = -1,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      renderPhaseUpdates = null,
-      numberOfReRenders = 0,
-      isInHookUserCodeInDev = !1,
-      currentHookNameInDev,
-      HooksDispatcher = {
-        readContext: readContext,
-        use: function (usable) {
-          if (null !== usable && "object" === typeof usable) {
-            if ("function" === typeof usable.then)
-              return unwrapThenable(usable);
-            if (usable.$$typeof === REACT_CONTEXT_TYPE)
-              return readContext(usable);
-          }
-          throw Error(
-            "An unsupported type was passed to use(): " + String(usable)
-          );
-        },
-        useContext: function (context) {
-          currentHookNameInDev = "useContext";
-          resolveCurrentlyRenderingComponent();
-          return context._currentValue;
-        },
-        useMemo: useMemo,
-        useReducer: useReducer,
-        useRef: function (initialValue) {
-          currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-          workInProgressHook = createWorkInProgressHook();
-          var previousRef = workInProgressHook.memoizedState;
-          return null === previousRef
-            ? ((initialValue = { current: initialValue }),
-              Object.seal(initialValue),
-              (workInProgressHook.memoizedState = initialValue))
-            : previousRef;
-        },
-        useState: function (initialState) {
-          currentHookNameInDev = "useState";
-          return useReducer(basicStateReducer, initialState);
-        },
-        useInsertionEffect: noop,
-        useLayoutEffect: noop,
-        useCallback: function (callback, deps) {
-          return useMemo(function () {
-            return callback;
-          }, deps);
-        },
-        useImperativeHandle: noop,
-        useEffect: noop,
-        useDebugValue: noop,
-        useDeferredValue: function (value, initialValue) {
-          resolveCurrentlyRenderingComponent();
-          return void 0 !== initialValue ? initialValue : value;
-        },
-        useTransition: function () {
-          resolveCurrentlyRenderingComponent();
-          return [!1, unsupportedStartTransition];
-        },
-        useId: function () {
-          var treeId = currentlyRenderingTask.treeContext;
-          var overflow = treeId.overflow;
-          treeId = treeId.id;
-          treeId =
-            (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-          var resumableState = currentResumableState;
-          if (null === resumableState)
-            throw Error(
-              "Invalid hook call. Hooks can only be called inside of the body of a function component."
-            );
-          overflow = localIdCounter++;
-          treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-          0 < overflow && (treeId += "H" + overflow.toString(32));
-          return treeId + "_";
-        },
-        useSyncExternalStore: function (
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        ) {
-          if (void 0 === getServerSnapshot)
-            throw Error(
-              "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-            );
-          return getServerSnapshot();
-        },
-        useOptimistic: function (passthrough) {
-          resolveCurrentlyRenderingComponent();
-          return [passthrough, unsupportedSetOptimisticState];
-        },
-        useActionState: useActionState,
-        useFormState: useActionState,
-        useHostTransitionStatus: function () {
-          resolveCurrentlyRenderingComponent();
-          return NotPending;
-        },
-        useMemoCache: function (size) {
-          for (var data = Array(size), i = 0; i < size; i++)
-            data[i] = REACT_MEMO_CACHE_SENTINEL;
-          return data;
-        },
-        useCacheRefresh: function () {
-          return unsupportedRefresh;
-        },
-        useEffectEvent: function () {
-          return throwOnUseEffectEventCall;
-        }
-      },
-      currentResumableState = null,
-      currentTaskInDEV = null,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function () {
-          throw Error("Not implemented.");
-        },
-        cacheSignal: function () {
-          throw Error("Not implemented.");
-        },
-        getOwner: function () {
-          return null === currentTaskInDEV
-            ? null
-            : currentTaskInDEV.componentStack;
-        }
-      },
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          return Component(props, secondArg);
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          return instance.render();
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var CLIENT_RENDERED = 4,
-      PENDING = 0,
-      COMPLETED = 1,
-      FLUSHED = 2,
-      ABORTED = 3,
-      ERRORED = 4,
-      POSTPONED = 5,
-      CLOSED = 14,
-      currentRequest = null,
-      didWarnAboutBadClass = {},
-      didWarnAboutContextTypes = {},
-      didWarnAboutContextTypeOnFunctionComponent = {},
-      didWarnAboutGetDerivedStateOnFunctionComponent = {},
-      didWarnAboutReassigningProps = !1,
-      didWarnAboutGenerators = !1,
-      didWarnAboutMaps = !1,
-      flushedByteSize = 0,
-      flushingPartialBoundaries = !1;
-    ensureCorrectIsomorphicReactVersion();
-    ensureCorrectIsomorphicReactVersion();
-    exports.prerender = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resources = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createPrerenderRequest(
-            children,
-            resources,
-            createRenderState(
-              resources,
-              void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream = {
-                postponed: getPostponedState(request),
-                prelude: stream
-              };
-              resolve(stream);
-            },
-            void 0,
-            void 0,
-            reject,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.renderToReadableStream = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resumableState = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createRequest(
-            children,
-            resumableState,
-            createRenderState(
-              resumableState,
-              options ? options.nonce : void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0,
-            options ? options.formState : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resume = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          request = resumeRequest(
-            children,
-            postponedState,
-            createRenderState(
-              postponedState.resumableState,
-              options ? options.nonce : void 0,
-              void 0,
-              void 0,
-              void 0,
-              void 0
-            ),
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  pull: function (controller) {
-                    startFlowing(request, controller);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resumeAndPrerender = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var request = resumeAndPrerenderRequest(
-          children,
-          postponedState,
-          createRenderState(
-            postponedState.resumableState,
-            void 0,
-            void 0,
-            void 0,
-            void 0,
-            void 0
-          ),
-          options ? options.onError : void 0,
-          function () {
-            var stream = new ReadableStream(
-              {
-                type: "bytes",
-                pull: function (controller) {
-                  startFlowing(request, controller);
-                },
-                cancel: function (reason) {
-                  request.destination = null;
-                  abort(request, reason);
-                }
-              },
-              { highWaterMark: 0 }
-            );
-            stream = { postponed: getPostponedState(request), prelude: stream };
-            resolve(stream);
-          },
-          void 0,
-          void 0,
-          reject,
-          options ? options.onPostpone : void 0
-        );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom-server.edge.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.edge.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7512 +1,0 @@
-/**
- * @license React
- * react-dom-server.edge.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.
- */
-
-/*
-
-
- JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
-
- Copyright (c) 2011 Gary Court
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-"use strict";
-var React = require("react"),
-  ReactDOM = require("react-dom"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray;
-function murmurhash3_32_gc(key, seed) {
-  var remainder = key.length & 3;
-  var bytes = key.length - remainder;
-  var h1 = seed;
-  for (seed = 0; seed < bytes; ) {
-    var k1 =
-      (key.charCodeAt(seed) & 255) |
-      ((key.charCodeAt(++seed) & 255) << 8) |
-      ((key.charCodeAt(++seed) & 255) << 16) |
-      ((key.charCodeAt(++seed) & 255) << 24);
-    ++seed;
-    k1 =
-      (3432918353 * (k1 & 65535) +
-        (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    k1 = (k1 << 15) | (k1 >>> 17);
-    k1 =
-      (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-      4294967295;
-    h1 ^= k1;
-    h1 = (h1 << 13) | (h1 >>> 19);
-    h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
-    h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
-  }
-  k1 = 0;
-  switch (remainder) {
-    case 3:
-      k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
-    case 2:
-      k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
-    case 1:
-      (k1 ^= key.charCodeAt(seed) & 255),
-        (k1 =
-          (3432918353 * (k1 & 65535) +
-            (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295),
-        (k1 = (k1 << 15) | (k1 >>> 17)),
-        (h1 ^=
-          (461845907 * (k1 & 65535) +
-            (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
-          4294967295);
-  }
-  h1 ^= key.length;
-  h1 ^= h1 >>> 16;
-  h1 =
-    (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  h1 ^= h1 >>> 13;
-  h1 =
-    (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
-    4294967295;
-  return (h1 ^ (h1 >>> 16)) >>> 0;
-}
-function handleErrorInNextTick(error) {
-  setTimeout(function () {
-    throw error;
-  });
-}
-var LocalPromise = Promise,
-  scheduleMicrotask =
-    "function" === typeof queueMicrotask
-      ? queueMicrotask
-      : function (callback) {
-          LocalPromise.resolve(null)
-            .then(callback)
-            .catch(handleErrorInNextTick);
-        },
-  currentView = null,
-  writtenBytes = 0;
-function writeChunk(destination, chunk) {
-  if (0 !== chunk.byteLength)
-    if (2048 < chunk.byteLength)
-      0 < writtenBytes &&
-        (destination.enqueue(
-          new Uint8Array(currentView.buffer, 0, writtenBytes)
-        ),
-        (currentView = new Uint8Array(2048)),
-        (writtenBytes = 0)),
-        destination.enqueue(chunk);
-    else {
-      var allowableBytes = currentView.length - writtenBytes;
-      allowableBytes < chunk.byteLength &&
-        (0 === allowableBytes
-          ? destination.enqueue(currentView)
-          : (currentView.set(chunk.subarray(0, allowableBytes), writtenBytes),
-            destination.enqueue(currentView),
-            (chunk = chunk.subarray(allowableBytes))),
-        (currentView = new Uint8Array(2048)),
-        (writtenBytes = 0));
-      currentView.set(chunk, writtenBytes);
-      writtenBytes += chunk.byteLength;
-    }
-}
-function writeChunkAndReturn(destination, chunk) {
-  writeChunk(destination, chunk);
-  return !0;
-}
-function completeWriting(destination) {
-  currentView &&
-    0 < writtenBytes &&
-    (destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes)),
-    (currentView = null),
-    (writtenBytes = 0));
-}
-var textEncoder = new TextEncoder();
-function stringToChunk(content) {
-  return textEncoder.encode(content);
-}
-function stringToPrecomputedChunk(content) {
-  return textEncoder.encode(content);
-}
-function byteLengthOfChunk(chunk) {
-  return chunk.byteLength;
-}
-function closeWithError(destination, error) {
-  "function" === typeof destination.error
-    ? destination.error(error)
-    : destination.close();
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null;
-stringToPrecomputedChunk('"></template>');
-var startInlineScript = stringToPrecomputedChunk("<script"),
-  endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-  startScriptSrc = stringToPrecomputedChunk('<script src="'),
-  startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-  scriptNonce = stringToPrecomputedChunk(' nonce="'),
-  scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-  scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-  endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-  startInlineStyle = stringToPrecomputedChunk("<style"),
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-var importMapScriptStart = stringToPrecomputedChunk(
-    '<script type="importmap">'
-  ),
-  importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-function createRenderState(
-  resumableState,
-  nonce,
-  externalRuntimeConfig,
-  importMap,
-  onHeaders,
-  maxHeadersLength
-) {
-  externalRuntimeConfig =
-    "string" === typeof nonce ? nonce : nonce && nonce.script;
-  var inlineScriptWithNonce =
-      void 0 === externalRuntimeConfig
-        ? startInlineScript
-        : stringToPrecomputedChunk(
-            '<script nonce="' +
-              escapeTextForBrowser(externalRuntimeConfig) +
-              '"'
-          ),
-    nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-    inlineStyleWithNonce =
-      void 0 === nonceStyle
-        ? startInlineStyle
-        : stringToPrecomputedChunk(
-            '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-          ),
-    idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push(inlineScriptWithNonce),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      endOfStartTag,
-      stringToChunk(
-        ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer)
-      ),
-      endInlineScript
-    ));
-  bootstrapScriptContent = [];
-  void 0 !== importMap &&
-    (bootstrapScriptContent.push(importMapScriptStart),
-    bootstrapScriptContent.push(
-      stringToChunk(
-        ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer)
-      )
-    ),
-    bootstrapScriptContent.push(importMapScriptEnd));
-  importMap = onHeaders
-    ? {
-        preconnects: "",
-        fontPreloads: "",
-        highImagePreloads: "",
-        remainingCapacity:
-          2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-      }
-    : null;
-  onHeaders = {
-    placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-    segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-    boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-    startInlineScript: inlineScriptWithNonce,
-    startInlineStyle: inlineStyleWithNonce,
-    preamble: createPreambleState(),
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: bootstrapScriptContent,
-    onHeaders: onHeaders,
-    headers: importMap,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: new Set(),
-    fontPreloads: new Set(),
-    highImagePreloads: new Set(),
-    styles: new Map(),
-    bootstrapScripts: new Set(),
-    scripts: new Set(),
-    bulkPreloads: new Set(),
-    preloads: {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    },
-    nonce: { script: externalRuntimeConfig, style: nonceStyle },
-    hoistableState: null,
-    stylesToHoist: !1
-  };
-  if (void 0 !== bootstrapScripts)
-    for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-      (idPrefix = bootstrapScripts[importMap]),
-        (nonceStyle = inlineScriptWithNonce = void 0),
-        (inlineStyleWithNonce = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: nonce
-        }),
-        "string" === typeof idPrefix
-          ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
-          : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
-            (inlineStyleWithNonce.integrity = nonceStyle =
-              "string" === typeof idPrefix.integrity
-                ? idPrefix.integrity
-                : void 0),
-            (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
-              "string" === typeof idPrefix || null == idPrefix.crossOrigin
-                ? void 0
-                : "use-credentials" === idPrefix.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (idPrefix = resumableState),
-        (bootstrapScriptContent = maxHeadersLength),
-        (idPrefix.scriptResources[bootstrapScriptContent] = null),
-        (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
-        (idPrefix = []),
-        pushLinkImpl(idPrefix, inlineStyleWithNonce),
-        onHeaders.bootstrapScripts.add(idPrefix),
-        bootstrapChunks.push(
-          startScriptSrc,
-          stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-            attributeEnd
-          ),
-        "string" === typeof nonceStyle &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            stringToChunk(escapeTextForBrowser(nonceStyle)),
-            attributeEnd
-          ),
-        "string" === typeof inlineScriptWithNonce &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  if (void 0 !== bootstrapModules)
-    for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-      (nonceStyle = bootstrapModules[nonce]),
-        (maxHeadersLength = importMap = void 0),
-        (inlineScriptWithNonce = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: externalRuntimeConfig
-        }),
-        "string" === typeof nonceStyle
-          ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
-          : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
-            (inlineScriptWithNonce.integrity = maxHeadersLength =
-              "string" === typeof nonceStyle.integrity
-                ? nonceStyle.integrity
-                : void 0),
-            (inlineScriptWithNonce.crossOrigin = importMap =
-              "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
-                ? void 0
-                : "use-credentials" === nonceStyle.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (nonceStyle = resumableState),
-        (inlineStyleWithNonce = bootstrapScripts),
-        (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle = []),
-        pushLinkImpl(nonceStyle, inlineScriptWithNonce),
-        onHeaders.bootstrapScripts.add(nonceStyle),
-        bootstrapChunks.push(
-          startModuleSrc,
-          stringToChunk(escapeTextForBrowser(bootstrapScripts)),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
-            attributeEnd
-          ),
-        "string" === typeof maxHeadersLength &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            stringToChunk(escapeTextForBrowser(maxHeadersLength)),
-            attributeEnd
-          ),
-        "string" === typeof importMap &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            stringToChunk(escapeTextForBrowser(importMap)),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  return onHeaders;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createPreambleState() {
-  return { htmlChunks: null, headChunks: null, bodyChunks: null };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function createRootFormatContext(namespaceURI) {
-  return createFormatContext(
-    "http://www.w3.org/2000/svg" === namespaceURI
-      ? 4
-      : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-        ? 5
-        : 0,
-    null,
-    0,
-    null
-  );
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e");
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if ("" === text) return textEmbedded;
-  textEmbedded && target.push(textSeparator);
-  target.push(stringToChunk(escapeTextForBrowser(text)));
-  return !0;
-}
-var styleNameCache = new Map(),
-  styleAttributeStart = stringToPrecomputedChunk(' style="'),
-  styleAssign = stringToPrecomputedChunk(":"),
-  styleSeparator = stringToPrecomputedChunk(";");
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style)
-    throw Error(
-      "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-    );
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = stringToChunk(escapeTextForBrowser(styleName));
-          styleValue = stringToChunk(
-            escapeTextForBrowser(("" + styleValue).trim())
-          );
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = stringToPrecomputedChunk(
-                escapeTextForBrowser(
-                  styleName
-                    .replace(uppercasePattern, "-$1")
-                    .toLowerCase()
-                    .replace(msPattern, "-ms-")
-                )
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? stringToChunk("" + styleValue)
-                  : stringToChunk(styleValue + "px")
-                : stringToChunk(
-                    escapeTextForBrowser(("" + styleValue).trim())
-                  ));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(
-              styleAttributeStart,
-              nameChunk,
-              styleAssign,
-              styleValue
-            ))
-          : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-      }
-    }
-  isFirst || target.push(attributeEnd);
-}
-var attributeSeparator = stringToPrecomputedChunk(" "),
-  attributeAssign = stringToPrecomputedChunk('="'),
-  attributeEnd = stringToPrecomputedChunk('"'),
-  attributeEmptyString = stringToPrecomputedChunk('=""');
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(
-      attributeSeparator,
-      stringToChunk(name),
-      attributeAssign,
-      stringToChunk(escapeTextForBrowser(value)),
-      attributeEnd
-    );
-}
-var actionJavaScriptURL = stringToPrecomputedChunk(
-    escapeTextForBrowser(
-      "javascript:throw new Error('React form unexpectedly submitted.')"
-    )
-  ),
-  startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"');
-function pushAdditionalFormField(value, key) {
-  this.push(startHiddenInputChunk);
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push(endOfStartTagSelfClosing);
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value)
-    throw Error(
-      "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-    );
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(
-          attributeSeparator,
-          stringToChunk("formAction"),
-          attributeAssign,
-          actionJavaScriptURL,
-          attributeEnd
-        ),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        stringToChunk(name),
-        attributeAssign,
-        stringToChunk(escapeTextForBrowser(value)),
-        attributeEnd
-      );
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        stringToChunk("xlink:href"),
-        attributeAssign,
-        stringToChunk(escapeTextForBrowser(value)),
-        attributeEnd
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeEmptyString
-        );
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeEmptyString
-          )
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(
-          attributeSeparator,
-          stringToChunk(name),
-          attributeAssign,
-          stringToChunk(escapeTextForBrowser(value)),
-          attributeEnd
-        );
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(
-            attributeSeparator,
-            stringToChunk(name),
-            attributeAssign,
-            stringToChunk(escapeTextForBrowser(value)),
-            attributeEnd
-          );
-        }
-  }
-}
-var endOfStartTag = stringToPrecomputedChunk(">"),
-  endOfStartTagSelfClosing = stringToPrecomputedChunk("/>");
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children)
-      throw Error(
-        "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-      );
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(
-        "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-      );
-    innerHTML = innerHTML.__html;
-    null !== innerHTML &&
-      void 0 !== innerHTML &&
-      target.push(stringToChunk("" + innerHTML));
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-  formReplayingRuntimeScript = stringToPrecomputedChunk(
-    'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-  );
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        );
-  }
-}
-var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-  formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e");
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              tag +
-                " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(stringToChunk(escapeTextForBrowser("" + props)));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-var headPreambleContributionChunk =
-    stringToPrecomputedChunk("\x3c!--head--\x3e"),
-  bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"),
-  htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e");
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(
-      stringToChunk(("" + children).replace(scriptRegex, scriptReplacer))
-    );
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null)
-    : tag;
-}
-var leadingNewline = stringToPrecomputedChunk("\n"),
-  VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-    tagStartChunk = stringToPrecomputedChunk("<" + tag);
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>");
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children)));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(selectedMarkerAttribute);
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(selectedMarkerAttribute);
-      } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(endOfStartTag);
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0)
-          throw Error(
-            "If you supply `defaultValue` on a <textarea>, do not pass children."
-          );
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error("<textarea> can only have at most one child.");
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push(leadingNewline);
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser("" + value$jscomp$0))
-        );
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push(endOfStartTagSelfClosing);
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(endOfStartTag);
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$3))
-        );
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              attributeSeparator,
-              stringToChunk("action"),
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(endOfStartTag);
-      null !== formActionName &&
-        (target$jscomp$0.push(startHiddenInputChunk),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push(endOfStartTagSelfClosing),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$4))
-        );
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  attributeSeparator,
-                  stringToChunk("data"),
-                  attributeAssign,
-                  stringToChunk(escapeTextForBrowser(sanitizedValue)),
-                  attributeEnd
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(
-          stringToChunk(escapeTextForBrowser(children$jscomp$5))
-        );
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: stringToChunk(escapeTextForBrowser(precedence)),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push(textSeparator);
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push(textSeparator),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(
-            stringToChunk(("" + child).replace(styleRegex, styleReplacer))
-          );
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: stringToChunk(
-                escapeTextForBrowser(precedence$jscomp$0)
-              ),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(
-              stringToChunk(escapeTextForBrowser(href$jscomp$0))
-            );
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                stringToChunk(
-                  ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-                )
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push(textSeparator),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push(leadingNewline, stringToChunk(html))
-            : target$jscomp$0.push(stringToChunk("" + html)));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push(leadingNewline);
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error("The `<head>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(headPreambleContributionChunk);
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error("The `<body>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(bodyPreambleContributionChunk);
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error("The `<html>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(htmlPreambleContributionChunk);
-        preamble$jscomp$1.htmlChunks = [doctypeChunk];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      stringToChunk(attributeName),
-                      attributeAssign,
-                      stringToChunk(escapeTextForBrowser(propValue$jscomp$11)),
-                      attributeEnd
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk &&
-    ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-    endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    writeChunk(destination, renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]),
-      (renderState.length = 0),
-      writeChunkAndReturn(destination, i))
-    : !0;
-}
-var shellTimeRuntimeScript = stringToPrecomputedChunk(
-    "requestAnimationFrame(function(){$RT=performance.now()});"
-  ),
-  placeholder1 = stringToPrecomputedChunk('<template id="'),
-  placeholder2 = stringToPrecomputedChunk('"></template>'),
-  startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-  endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-  startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"),
-  startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-    '\x3c!--$?--\x3e<template id="'
-  ),
-  startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-  startClientRenderedSuspenseBoundary =
-    stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-  endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-  clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"),
-  clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-    stringToPrecomputedChunk('"'),
-  clientRenderedSuspenseBoundaryError1A =
-    stringToPrecomputedChunk(' data-dgst="');
-stringToPrecomputedChunk(' data-msg="');
-stringToPrecomputedChunk(' data-stck="');
-stringToPrecomputedChunk(' data-cstck="');
-var clientRenderedSuspenseBoundaryError2 =
-  stringToPrecomputedChunk("></template>");
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  writeChunk(destination, startPendingSuspenseBoundary1);
-  if (null === id)
-    throw Error(
-      "An ID must have been assigned before we can complete the boundary."
-    );
-  writeChunk(destination, renderState.boundaryPrefix);
-  writeChunk(destination, stringToChunk(id.toString(16)));
-  return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-}
-var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-  startSegmentHTML2 = stringToPrecomputedChunk('">'),
-  endSegmentHTML = stringToPrecomputedChunk("</div>"),
-  startSegmentSVG = stringToPrecomputedChunk(
-    '<svg aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentSVG2 = stringToPrecomputedChunk('">'),
-  endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-  startSegmentMathML = stringToPrecomputedChunk(
-    '<math aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentMathML2 = stringToPrecomputedChunk('">'),
-  endSegmentMathML = stringToPrecomputedChunk("</math>"),
-  startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-  startSegmentTable2 = stringToPrecomputedChunk('">'),
-  endSegmentTable = stringToPrecomputedChunk("</table>"),
-  startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'),
-  startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-  endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-  startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-  startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-  endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-  startSegmentColGroup = stringToPrecomputedChunk(
-    '<table hidden><colgroup id="'
-  ),
-  startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-  endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>");
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        writeChunk(destination, startSegmentHTML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentHTML2)
-      );
-    case 4:
-      return (
-        writeChunk(destination, startSegmentSVG),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentSVG2)
-      );
-    case 5:
-      return (
-        writeChunk(destination, startSegmentMathML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentMathML2)
-      );
-    case 6:
-      return (
-        writeChunk(destination, startSegmentTable),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTable2)
-      );
-    case 7:
-      return (
-        writeChunk(destination, startSegmentTableBody),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTableBody2)
-      );
-    case 8:
-      return (
-        writeChunk(destination, startSegmentTableRow),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentTableRow2)
-      );
-    case 9:
-      return (
-        writeChunk(destination, startSegmentColGroup),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, stringToChunk(id.toString(16))),
-        writeChunkAndReturn(destination, startSegmentColGroup2)
-      );
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return writeChunkAndReturn(destination, endSegmentHTML);
-    case 4:
-      return writeChunkAndReturn(destination, endSegmentSVG);
-    case 5:
-      return writeChunkAndReturn(destination, endSegmentMathML);
-    case 6:
-      return writeChunkAndReturn(destination, endSegmentTable);
-    case 7:
-      return writeChunkAndReturn(destination, endSegmentTableBody);
-    case 8:
-      return writeChunkAndReturn(destination, endSegmentTableRow);
-    case 9:
-      return writeChunkAndReturn(destination, endSegmentColGroup);
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-var completeSegmentScript1Full = stringToPrecomputedChunk(
-    '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-  ),
-  completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-  completeSegmentScript2 = stringToPrecomputedChunk('","'),
-  completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-stringToPrecomputedChunk('" data-pid="');
-var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-  '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-);
-stringToChunk(
-  '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);'
-);
-var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-    '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-  ),
-  completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'),
-  completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-  completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-  completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-  completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rci="" data-bid="');
-stringToPrecomputedChunk('<template data-rri="" data-bid="');
-stringToPrecomputedChunk('" data-sid="');
-stringToPrecomputedChunk('" data-sty="');
-var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-  ),
-  clientRenderScript1Full = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-  ),
-  clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-  clientRenderScript1A = stringToPrecomputedChunk('"'),
-  clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-  clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-stringToPrecomputedChunk('" data-dgst="');
-stringToPrecomputedChunk('" data-msg="');
-stringToPrecomputedChunk('" data-stck="');
-stringToPrecomputedChunk('" data-cstck="');
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-    ' media="not all" data-precedence="'
-  ),
-  lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-  currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, lateStyleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-      writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-    writeChunk(this, hrefs[i]);
-    writeChunk(this, lateStyleTagResourceOpen3);
-    for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-    destinationHasCapacity = writeChunkAndReturn(
-      this,
-      lateStyleTagTemplateClose
-    );
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    writeChunk(this, stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-  styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  spaceSeparator = stringToPrecomputedChunk(" "),
-  styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  styleTagResourceClose = stringToPrecomputedChunk("</style>");
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, styleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        writeChunk(this, styleTagResourceOpen2);
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator);
-      writeChunk(this, hrefs[styleQueue]);
-    }
-    writeChunk(this, styleTagResourceOpen3);
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      writeChunk(this, rules[styleQueue]);
-    writeChunk(this, styleTagResourceClose);
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-stringToPrecomputedChunk('<link rel="expect" href="#');
-stringToPrecomputedChunk('" blocking="render"/>');
-var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="');
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      completedShellIdAttributeStart,
-      stringToChunk(escapeTextForBrowser("_" + resumableState.idPrefix + "R_")),
-      attributeEnd
-    ));
-}
-var arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-  arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-  arrayInterstitial = stringToPrecomputedChunk(","),
-  arrayCloseBracket = stringToPrecomputedChunk("]");
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  writeChunk(destination, arrayFirstOpenBracket);
-  var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        writeChunk(destination, nextArrayOpenBrackChunk),
-          writeChunk(
-            destination,
-            stringToChunk(
-              escapeJSObjectForInstructionScripts("" + resource.props.href)
-            )
-          ),
-          writeChunk(destination, arrayCloseBracket),
-          (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-      else {
-        writeChunk(destination, nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        writeChunk(
-          destination,
-          stringToChunk(escapeJSObjectForInstructionScripts(coercedHref))
-        );
-        precedence = "" + precedence;
-        writeChunk(destination, arrayInterstitial);
-        writeChunk(
-          destination,
-          stringToChunk(escapeJSObjectForInstructionScripts(precedence))
-        );
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        writeChunk(destination, arrayCloseBracket);
-        nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-        resource.state = 3;
-      }
-  });
-  writeChunk(destination, arrayCloseBracket);
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(
-    destination,
-    stringToChunk(escapeJSObjectForInstructionScripts(attributeName))
-  );
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(
-    destination,
-    stringToChunk(escapeJSObjectForInstructionScripts(name))
-  );
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: stringToChunk(escapeTextForBrowser(precedence)),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function hasSuspenseyContent(hoistableState) {
-  return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
-}
-var bind = Function.prototype.bind,
-  supportsRequestStorage = "function" === typeof AsyncLocalStorage,
-  requestStorage = supportsRequestStorage ? new AsyncLocalStorage() : null,
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-    } else {
-      if (null === parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(
-  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-);
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable)
-    throw Error(
-      "Expected a suspended thenable. This is a bug in React. Please file an issue."
-    );
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(
-      "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-    );
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders)
-    throw Error("Rendered more hooks than during the previous render");
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders)
-    throw Error(
-      "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-    );
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(
-    "A function wrapped in useEffectEvent can't be called during rendering."
-  );
-}
-function unsupportedStartTransition() {
-  throw Error("startTransition cannot be called during server rendering.");
-}
-function unsupportedSetOptimisticState() {
-  throw Error("Cannot update optimistic state while rendering.");
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey =
-          void 0 !== permalink
-            ? "p" + permalink
-            : "k" +
-              murmurhash3_32_gc(
-                JSON.stringify([componentKeyPath, null, actionStateHookIndex]),
-                0
-              )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey =
-              void 0 !== permalink
-                ? "p" + permalink
-                : "k" +
-                  murmurhash3_32_gc(
-                    JSON.stringify([
-                      componentKeyPath,
-                      null,
-                      actionStateHookIndex
-                    ]),
-                    0
-                  )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error("Cache cannot be refreshed during server rendering.");
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue;
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component."
-        );
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(
-          "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-        );
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error("Not implemented.");
-    },
-    cacheSignal: function () {
-      throw Error("Not implemented.");
-    }
-  };
-function prepareStackTrace(error, structuredStackTrace) {
-  error = (error.name || "Error") + ": " + (error.message || "");
-  for (var i = 0; i < structuredStackTrace.length; i++)
-    error += "\n    at " + structuredStackTrace[i].toString();
-  return error;
-}
-var prefix, suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = prepareStackTrace;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = prepareStackTrace),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (
-    (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
-    null === boundary.contentPreamble
-  );
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0],
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        )
-      : error.splice(
-          0,
-          0,
-          "\u001b[0m\u001b[7m%c%s\u001b[0m%c",
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        );
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-function createPrerenderRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = createRequest(
-    children,
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    void 0
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-function resumeRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  renderState = new RequestInstance(
-    postponedState.resumableState,
-    renderState,
-    postponedState.rootFormatContext,
-    postponedState.progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    null
-  );
-  renderState.nextSegmentId = postponedState.nextSegmentId;
-  if ("number" === typeof postponedState.replaySlots)
-    return (
-      (onError = createPendingSegment(
-        renderState,
-        0,
-        null,
-        postponedState.rootFormatContext,
-        !1,
-        !1
-      )),
-      (onError.parentFlushed = !0),
-      (children = createRenderTask(
-        renderState,
-        null,
-        children,
-        -1,
-        null,
-        onError,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null
-      )),
-      pushComponentStack(children),
-      renderState.pingedTasks.push(children),
-      renderState
-    );
-  children = createReplayTask(
-    renderState,
-    null,
-    {
-      nodes: postponedState.replayNodes,
-      slots: postponedState.replaySlots,
-      pendingTasks: 0
-    },
-    children,
-    -1,
-    null,
-    null,
-    renderState.abortableTasks,
-    null,
-    postponedState.rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  renderState.pingedTasks.push(children);
-  return renderState;
-}
-function resumeAndPrerenderRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = resumeRequest(
-    children,
-    postponedState,
-    renderState,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-var currentRequest = null;
-function resolveRequest() {
-  if (currentRequest) return currentRequest;
-  if (supportsRequestStorage) {
-    var store = requestStorage.getStore();
-    if (store) return store;
-  }
-  return null;
-}
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    null !== request.trackedPostpones || 10 === request.status
-      ? scheduleMicrotask(function () {
-          return performWork(request);
-        })
-      : setTimeout(function () {
-          return performWork(request);
-        }, 0));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), closeWithError(request.destination, error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          resumeSegmentID.lastPushedText &&
-            resumeSegmentID.textEmbedded &&
-            resumeSegmentID.chunks.push(textSeparator),
-          (resumeSegmentID.status = 1),
-          finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push(formStateMarkerIsMatching)
-          : segment.push(formStateMarkerIsNotMatching);
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$44 in defaultProps)
-          void 0 === newProps[propName$44] &&
-            (newProps[propName$44] = defaultProps[propName$44]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$44 = type[ref]),
-                (propName$44 =
-                  "function" === typeof propName$44
-                    ? propName$44.call(newProps, defaultProps, props, void 0)
-                    : propName$44),
-                null != propName$44 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$44)))
-                    : assign(defaultProps, propName$44));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            keyPath.lastPushedText &&
-              keyPath.textEmbedded &&
-              keyPath.chunks.push(textSeparator),
-            (keyPath.status = 1),
-            finishedSegment(request, task.blockedBoundary, keyPath);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (type.chunks.push(startActivityBoundary),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            type.chunks.push(endActivityBoundary),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error("ReactDOMServer does not yet support scope components.");
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row;
-          propName$44 = task.blockedBoundary;
-          propName = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState,
-            parentSegment = task.blockedSegment,
-            fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary =
-            2 > task.formatContext.insertionMode
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            parentSegment.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          parentSegment.children.push(boundarySegment);
-          parentSegment.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                boundarySegment.lastPushedText &&
-                  boundarySegment.textEmbedded &&
-                  boundarySegment.chunks.push(textSeparator),
-                (boundarySegment.status = 1),
-                finishedSegment(request, propName$44, boundarySegment);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = parentSegment),
-                (task.blockedPreamble = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                contentRootSegment.lastPushedText &&
-                  contentRootSegment.textEmbedded &&
-                  contentRootSegment.chunks.push(textSeparator),
-                (contentRootSegment.status = 1),
-                finishedSegment(request, newBoundary, contentRootSegment),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$31) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$31)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = propName$44),
-                (task.blockedPreamble = propName),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = parentSegment),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              propName$44,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (parentSegment in ((newProps = {}), props))
-              "ref" !== parentSegment &&
-                (newProps[parentSegment] = props[parentSegment]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue;
-          type._currentValue = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request)
-            throw Error(
-              "Tried to pop a Context at the root of the app. This is a bug in React."
-            );
-          request.context._currentValue = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-        ((null == type ? type : typeof type) + ".")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      finishedSegment(request, blockedBoundary, resumedSegment),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        "Expected the resume to render <" +
-                          node$jscomp$0[0] +
-                          "> in this slot but instead it rendered <" +
-                          name +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(
-                          "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                        );
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                          (getComponentNameFromType(type) || "Unknown") +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props =
-                        2 > task.formatContext.insertionMode
-                          ? createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              createPreambleState(),
-                              createPreambleState()
-                            )
-                          : createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              null,
-                              null
-                            );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(
-                            "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                          );
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(
-            "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-          );
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request)
-    throw Error(
-      "It should not be possible to postpone at the root. This is a bug in React."
-    );
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(
-          "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-        );
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$63) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$63 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$63),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary)
-      throw Error(
-        "We should not have any resumable nodes in the shell. This is a bug in React."
-      );
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$64 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$64 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$64, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedSegment(request, boundary, segment) {
-  if (null !== byteLengthOfChunk) {
-    segment = segment.chunks;
-    for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-      segmentByteSize += segment[i].byteLength;
-    null === boundary
-      ? (request.byteSize += segmentByteSize)
-      : (boundary.byteSize += segmentByteSize);
-  }
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(
-          "There can only be one root segment. This is a bug in React."
-        );
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              request$jscomp$1.lastPushedText &&
-                request$jscomp$1.textEmbedded &&
-                request$jscomp$1.chunks.push(textSeparator),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedSegment(request, task.blockedBoundary, request$jscomp$1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        writeChunk(destination, placeholder1),
-        writeChunk(destination, request.placeholderPrefix),
-        (request = stringToChunk(hoistableState.toString(16))),
-        writeChunk(destination, request),
-        writeChunkAndReturn(destination, placeholder2)
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          writeChunk(destination, chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        writeChunk(destination, chunks[chunkIdx]);
-      chunkIdx < chunks.length &&
-        (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(
-        "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-      );
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    boundary = boundary.errorDigest;
-    writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-    writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-    boundary &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-      writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-    flushSubtree(request, destination, segment, hoistableState);
-  } else if (1 !== boundary.status)
-    0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState);
-  else if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-      hasSuspenseyContent(boundary.contentState))
-  )
-    (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState);
-  else {
-    flushedByteSize += boundary.byteSize;
-    hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-    segment = boundary.row;
-    null !== segment &&
-      isEligibleForOutlining(request, boundary) &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-    segment = boundary.completedSegments;
-    if (1 !== segment.length)
-      throw Error(
-        "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-      );
-    flushSegment(request, destination, segment[0], hoistableState);
-  }
-  return writeChunkAndReturn(destination, endSuspenseBoundary);
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        writeChunk(destination, clientRenderScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
-        : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      writeChunk(destination, completeBoundaryScript1Partial));
-  completedSegments = stringToChunk(i.toString(16));
-  writeChunk(destination, request.boundaryPrefix);
-  writeChunk(destination, completedSegments);
-  writeChunk(destination, completeBoundaryScript2);
-  writeChunk(destination, request.segmentPrefix);
-  writeChunk(destination, completedSegments);
-  requiresStyleInsertion
-    ? (writeChunk(destination, completeBoundaryScript3a),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : writeChunk(destination, completeBoundaryScript3b);
-  boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(
-        "A root segment ID must have been assigned by now. This is a bug in React."
-      );
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      writeChunk(destination, completeSegmentScript1Full))
-    : writeChunk(destination, completeSegmentScript1Partial);
-  writeChunk(destination, request.segmentPrefix);
-  segmentID = stringToChunk(segmentID.toString(16));
-  writeChunk(destination, segmentID);
-  writeChunk(destination, completeSegmentScript2);
-  writeChunk(destination, request.placeholderPrefix);
-  writeChunk(destination, segmentID);
-  destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  currentView = new Uint8Array(2048);
-  writtenBytes = 0;
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            writeChunk(destination, htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              writeChunk(destination, headChunks[i$jscomp$0]);
-          else
-            writeChunk(destination, startChunkForTag("head")),
-              writeChunk(destination, endOfStartTag);
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            writeChunk(destination, headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          writeChunk(destination, charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          writeChunk(destination, viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          writeChunk(destination, importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        htmlChunks || headChunks || (resumableState.instructions |= 32);
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          writeChunk(destination, hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-          writeChunk(destination, endChunkForTag("head"));
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            writeChunk(destination, bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            writeChunk(destination, renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              writeChunk(destination, completedShellIdAttributeStart);
-              writeChunk(
-                destination,
-                stringToChunk(escapeTextForBrowser(shellId))
-              );
-              writeChunk(destination, attributeEnd);
-            }
-            writeChunk(destination, endOfStartTag);
-            writeChunk(destination, shellTimeRuntimeScript);
-            writeChunkAndReturn(destination, endInlineScript);
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        writeChunk(
-          renderState$jscomp$1,
-          renderState$jscomp$2.startInlineScript
-        );
-        writeChunk(renderState$jscomp$1, endOfStartTag);
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-          : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-        writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
-        writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16)));
-        writeChunk(renderState$jscomp$1, clientRenderScript1A);
-        errorDigest &&
-          (writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-          writeChunk(
-            renderState$jscomp$1,
-            stringToChunk(
-              escapeJSStringsForInstructionScripts(errorDigest || "")
-            )
-          ));
-        var JSCompiler_inline_result = writeChunkAndReturn(
-          renderState$jscomp$1,
-          clientRenderScriptEnd
-        );
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      completeWriting(destination);
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      flushingPartialBoundaries = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$70 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$70.byteSize;
-          var completedSegments = boundary$70.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$70,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$70.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$70.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$70.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-      0 === request.clientRenderedBoundaries.length &&
-      0 === request.completedBoundaries.length
-        ? ((request.flushScheduled = !1),
-          (i = request.resumableState),
-          i.hasBody && writeChunk(destination, endChunkForTag("body")),
-          i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-          completeWriting(destination),
-          (request.status = 14),
-          destination.close(),
-          (request.destination = null))
-        : completeWriting(destination);
-  }
-}
-function startWork(request) {
-  request.flushScheduled = null !== request.destination;
-  supportsRequestStorage
-    ? scheduleMicrotask(function () {
-        return requestStorage.run(request, performWork, request);
-      })
-    : scheduleMicrotask(function () {
-        return performWork(request);
-      });
-  setTimeout(function () {
-    10 === request.status && (request.status = 11);
-    null === request.trackedPostpones &&
-      (supportsRequestStorage
-        ? requestStorage.run(
-            request,
-            enqueueEarlyPreloadsAfterInitialWork,
-            request
-          )
-        : enqueueEarlyPreloadsAfterInitialWork(request));
-  }, 0);
-}
-function enqueueEarlyPreloadsAfterInitialWork(request) {
-  safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-}
-function enqueueFlush(request) {
-  !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination &&
-    ((request.flushScheduled = !0),
-    setTimeout(function () {
-      var destination = request.destination;
-      destination
-        ? flushCompletedQueues(request, destination)
-        : (request.flushScheduled = !1);
-    }, 0));
-}
-function startFlowing(request, destination) {
-  if (13 === request.status)
-    (request.status = 14), closeWithError(destination, request.fatalError);
-  else if (14 !== request.status && null === request.destination) {
-    request.destination = destination;
-    try {
-      flushCompletedQueues(request, destination);
-    } catch (error) {
-      logRecoverableError(request, error, {}), fatalError(request, error);
-    }
-  }
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error("The render was aborted by the server without a reason.")
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error("The render was aborted by the server with a promise.")
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$72) {
-    logRecoverableError(request, error$72, {}), fatalError(request, error$72);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-function getPostponedState(request) {
-  var trackedPostpones = request.trackedPostpones;
-  if (
-    null === trackedPostpones ||
-    (0 === trackedPostpones.rootNodes.length &&
-      null === trackedPostpones.rootSlots)
-  )
-    return (request.trackedPostpones = null);
-  if (
-    null === request.completedRootSegment ||
-    (5 !== request.completedRootSegment.status &&
-      null !== request.completedPreambleSegments)
-  ) {
-    var nextSegmentId = request.nextSegmentId;
-    var replaySlots = trackedPostpones.rootSlots;
-    var resumableState = request.resumableState;
-    resumableState.bootstrapScriptContent = void 0;
-    resumableState.bootstrapScripts = void 0;
-    resumableState.bootstrapModules = void 0;
-  } else {
-    nextSegmentId = 0;
-    replaySlots = -1;
-    resumableState = request.resumableState;
-    var renderState = request.renderState;
-    resumableState.nextFormID = 0;
-    resumableState.hasBody = !1;
-    resumableState.hasHtml = !1;
-    resumableState.unknownResources = { font: renderState.resets.font };
-    resumableState.dnsResources = renderState.resets.dns;
-    resumableState.connectResources = renderState.resets.connect;
-    resumableState.imageResources = renderState.resets.image;
-    resumableState.styleResources = renderState.resets.style;
-    resumableState.scriptResources = {};
-    resumableState.moduleUnknownResources = {};
-    resumableState.moduleScriptResources = {};
-    resumableState.instructions = 0;
-  }
-  return {
-    nextSegmentId: nextSegmentId,
-    rootFormatContext: request.rootFormatContext,
-    progressiveChunkSize: request.progressiveChunkSize,
-    resumableState: request.resumableState,
-    replayNodes: trackedPostpones.rootNodes,
-    replaySlots: replaySlots
-  };
-}
-function ensureCorrectIsomorphicReactVersion() {
-  var isomorphicReactPackageVersion = React.version;
-  if ("19.2.3" !== isomorphicReactPackageVersion)
-    throw Error(
-      'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-        (isomorphicReactPackageVersion +
-          "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-    );
-}
-ensureCorrectIsomorphicReactVersion();
-ensureCorrectIsomorphicReactVersion();
-exports.prerender = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resources = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createPrerenderRequest(
-        children,
-        resources,
-        createRenderState(
-          resources,
-          void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream = { postponed: getPostponedState(request), prelude: stream };
-          resolve(stream);
-        },
-        void 0,
-        void 0,
-        reject,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.renderToReadableStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resume = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      request = resumeRequest(
-        children,
-        postponedState,
-        createRenderState(
-          postponedState.resumableState,
-          options ? options.nonce : void 0,
-          void 0,
-          void 0,
-          void 0,
-          void 0
-        ),
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var stream = new ReadableStream(
-            {
-              type: "bytes",
-              pull: function (controller) {
-                startFlowing(request, controller);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resumeAndPrerender = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var request = resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      createRenderState(
-        postponedState.resumableState,
-        void 0,
-        void 0,
-        void 0,
-        void 0,
-        void 0
-      ),
-      options ? options.onError : void 0,
-      function () {
-        var stream = new ReadableStream(
-          {
-            type: "bytes",
-            pull: function (controller) {
-              startFlowing(request, controller);
-            },
-            cancel: function (reason) {
-              request.destination = null;
-              abort(request, reason);
-            }
-          },
-          { highWaterMark: 0 }
-        );
-        stream = { postponed: getPostponedState(request), prelude: stream };
-        resolve(stream);
-      },
-      void 0,
-      void 0,
-      reject,
-      options ? options.onPostpone : void 0
-    );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-server.node.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.node.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10802 +1,0 @@
-/**
- * @license React
- * react-dom-server.node.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function styleReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-    }
-    function scriptReplacer(match, prefix, s, suffix) {
-      return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function objectName(object) {
-      object = Object.prototype.toString.call(object);
-      return object.slice(8, object.length - 1);
-    }
-    function describeKeyForErrorMessage(key) {
-      var encodedKey = JSON.stringify(key);
-      return '"' + key + '"' === encodedKey ? key : encodedKey;
-    }
-    function describeValueForErrorMessage(value) {
-      switch (typeof value) {
-        case "string":
-          return JSON.stringify(
-            10 >= value.length ? value : value.slice(0, 10) + "..."
-          );
-        case "object":
-          if (isArrayImpl(value)) return "[...]";
-          if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)
-            return "client";
-          value = objectName(value);
-          return "Object" === value ? "{...}" : value;
-        case "function":
-          return value.$$typeof === CLIENT_REFERENCE_TAG
-            ? "client"
-            : (value = value.displayName || value.name)
-              ? "function " + value
-              : "function";
-        default:
-          return String(value);
-      }
-    }
-    function describeElementType(type) {
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-      }
-      if ("object" === typeof type)
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeElementType(type.render);
-          case REACT_MEMO_TYPE:
-            return describeElementType(type.type);
-          case REACT_LAZY_TYPE:
-            var payload = type._payload;
-            type = type._init;
-            try {
-              return describeElementType(type(payload));
-            } catch (x) {}
-        }
-      return "";
-    }
-    function describeObjectForErrorMessage(objectOrArray, expandedName) {
-      var objKind = objectName(objectOrArray);
-      if ("Object" !== objKind && "Array" !== objKind) return objKind;
-      var start = -1,
-        length = 0;
-      if (isArrayImpl(objectOrArray))
-        if (jsxChildrenParents.has(objectOrArray)) {
-          var type = jsxChildrenParents.get(objectOrArray);
-          objKind = "<" + describeElementType(type) + ">";
-          for (var i = 0; i < objectOrArray.length; i++) {
-            var value = objectOrArray[i];
-            value =
-              "string" === typeof value
-                ? value
-                : "object" === typeof value && null !== value
-                  ? "{" + describeObjectForErrorMessage(value) + "}"
-                  : "{" + describeValueForErrorMessage(value) + "}";
-            "" + i === expandedName
-              ? ((start = objKind.length),
-                (length = value.length),
-                (objKind += value))
-              : (objKind =
-                  15 > value.length && 40 > objKind.length + value.length
-                    ? objKind + value
-                    : objKind + "{...}");
-          }
-          objKind += "</" + describeElementType(type) + ">";
-        } else {
-          objKind = "[";
-          for (type = 0; type < objectOrArray.length; type++)
-            0 < type && (objKind += ", "),
-              (i = objectOrArray[type]),
-              (i =
-                "object" === typeof i && null !== i
-                  ? describeObjectForErrorMessage(i)
-                  : describeValueForErrorMessage(i)),
-              "" + type === expandedName
-                ? ((start = objKind.length),
-                  (length = i.length),
-                  (objKind += i))
-                : (objKind =
-                    10 > i.length && 40 > objKind.length + i.length
-                      ? objKind + i
-                      : objKind + "...");
-          objKind += "]";
-        }
-      else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)
-        objKind = "<" + describeElementType(objectOrArray.type) + "/>";
-      else {
-        if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return "client";
-        if (jsxPropsParents.has(objectOrArray)) {
-          objKind = jsxPropsParents.get(objectOrArray);
-          objKind = "<" + (describeElementType(objKind) || "...");
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++) {
-            objKind += " ";
-            value = type[i];
-            objKind += describeKeyForErrorMessage(value) + "=";
-            var _value2 = objectOrArray[value];
-            var _substr2 =
-              value === expandedName &&
-              "object" === typeof _value2 &&
-              null !== _value2
-                ? describeObjectForErrorMessage(_value2)
-                : describeValueForErrorMessage(_value2);
-            "string" !== typeof _value2 && (_substr2 = "{" + _substr2 + "}");
-            value === expandedName
-              ? ((start = objKind.length),
-                (length = _substr2.length),
-                (objKind += _substr2))
-              : (objKind =
-                  10 > _substr2.length && 40 > objKind.length + _substr2.length
-                    ? objKind + _substr2
-                    : objKind + "...");
-          }
-          objKind += ">";
-        } else {
-          objKind = "{";
-          type = Object.keys(objectOrArray);
-          for (i = 0; i < type.length; i++)
-            0 < i && (objKind += ", "),
-              (value = type[i]),
-              (objKind += describeKeyForErrorMessage(value) + ": "),
-              (_value2 = objectOrArray[value]),
-              (_value2 =
-                "object" === typeof _value2 && null !== _value2
-                  ? describeObjectForErrorMessage(_value2)
-                  : describeValueForErrorMessage(_value2)),
-              value === expandedName
-                ? ((start = objKind.length),
-                  (length = _value2.length),
-                  (objKind += _value2))
-                : (objKind =
-                    10 > _value2.length && 40 > objKind.length + _value2.length
-                      ? objKind + _value2
-                      : objKind + "...");
-          objKind += "}";
-        }
-      }
-      return void 0 === expandedName
-        ? objKind
-        : -1 < start && 0 < length
-          ? ((objectOrArray = " ".repeat(start) + "^".repeat(length)),
-            "\n  " + objKind + "\n  " + objectOrArray)
-          : "\n  " + objKind;
-    }
-    function flushBuffered(destination) {
-      "function" === typeof destination.flush && destination.flush();
-    }
-    function writeChunk(destination, chunk) {
-      if ("string" === typeof chunk) {
-        if (0 !== chunk.length)
-          if (2048 < 3 * chunk.length)
-            0 < writtenBytes &&
-              (writeToDestination(
-                destination,
-                currentView.subarray(0, writtenBytes)
-              ),
-              (currentView = new Uint8Array(2048)),
-              (writtenBytes = 0)),
-              writeToDestination(destination, chunk);
-          else {
-            var target = currentView;
-            0 < writtenBytes && (target = currentView.subarray(writtenBytes));
-            target = textEncoder.encodeInto(chunk, target);
-            var read = target.read;
-            writtenBytes += target.written;
-            read < chunk.length &&
-              (writeToDestination(
-                destination,
-                currentView.subarray(0, writtenBytes)
-              ),
-              (currentView = new Uint8Array(2048)),
-              (writtenBytes = textEncoder.encodeInto(
-                chunk.slice(read),
-                currentView
-              ).written));
-            2048 === writtenBytes &&
-              (writeToDestination(destination, currentView),
-              (currentView = new Uint8Array(2048)),
-              (writtenBytes = 0));
-          }
-      } else
-        0 !== chunk.byteLength &&
-          (2048 < chunk.byteLength
-            ? (0 < writtenBytes &&
-                (writeToDestination(
-                  destination,
-                  currentView.subarray(0, writtenBytes)
-                ),
-                (currentView = new Uint8Array(2048)),
-                (writtenBytes = 0)),
-              writeToDestination(destination, chunk))
-            : ((target = currentView.length - writtenBytes),
-              target < chunk.byteLength &&
-                (0 === target
-                  ? writeToDestination(destination, currentView)
-                  : (currentView.set(chunk.subarray(0, target), writtenBytes),
-                    (writtenBytes += target),
-                    writeToDestination(destination, currentView),
-                    (chunk = chunk.subarray(target))),
-                (currentView = new Uint8Array(2048)),
-                (writtenBytes = 0)),
-              currentView.set(chunk, writtenBytes),
-              (writtenBytes += chunk.byteLength),
-              2048 === writtenBytes &&
-                (writeToDestination(destination, currentView),
-                (currentView = new Uint8Array(2048)),
-                (writtenBytes = 0))));
-    }
-    function writeToDestination(destination, view) {
-      destination = destination.write(view);
-      destinationHasCapacity$1 = destinationHasCapacity$1 && destination;
-    }
-    function writeChunkAndReturn(destination, chunk) {
-      writeChunk(destination, chunk);
-      return destinationHasCapacity$1;
-    }
-    function completeWriting(destination) {
-      currentView &&
-        0 < writtenBytes &&
-        destination.write(currentView.subarray(0, writtenBytes));
-      currentView = null;
-      writtenBytes = 0;
-      destinationHasCapacity$1 = !0;
-    }
-    function stringToPrecomputedChunk(content) {
-      content = textEncoder.encode(content);
-      2048 < content.byteLength &&
-        console.error(
-          "precomputed chunks must be smaller than the view size configured for this host. This is a bug in React."
-        );
-      return content;
-    }
-    function byteLengthOfChunk(chunk) {
-      return "string" === typeof chunk
-        ? Buffer.byteLength(chunk, "utf8")
-        : chunk.byteLength;
-    }
-    function typeName(value) {
-      return (
-        ("function" === typeof Symbol &&
-          Symbol.toStringTag &&
-          value[Symbol.toStringTag]) ||
-        value.constructor.name ||
-        "Object"
-      );
-    }
-    function willCoercionThrow(value) {
-      try {
-        return testStringCoercion(value), !1;
-      } catch (e) {
-        return !0;
-      }
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkAttributeStringCoercion(value, attributeName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",
-            attributeName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkCSSPropertyStringCoercion(value, propName) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",
-            propName,
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function checkHtmlStringCoercion(value) {
-      if (willCoercionThrow(value))
-        return (
-          console.error(
-            "The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.",
-            typeName(value)
-          ),
-          testStringCoercion(value)
-        );
-    }
-    function isAttributeNameSafe(attributeName) {
-      if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-        return !0;
-      if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))
-        return !1;
-      if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-        return (validatedAttributeNameCache[attributeName] = !0);
-      illegalAttributeNameCache[attributeName] = !0;
-      console.error("Invalid attribute name: `%s`", attributeName);
-      return !1;
-    }
-    function checkControlledValueProps(tagName, props) {
-      hasReadOnlyValue[props.type] ||
-        props.onChange ||
-        props.onInput ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.value ||
-        ("select" === tagName
-          ? console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`."
-            )
-          : console.error(
-              "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
-            ));
-      props.onChange ||
-        props.readOnly ||
-        props.disabled ||
-        null == props.checked ||
-        console.error(
-          "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
-        );
-    }
-    function validateProperty$1(tagName, name) {
-      if (
-        hasOwnProperty.call(warnedProperties$1, name) &&
-        warnedProperties$1[name]
-      )
-        return !0;
-      if (rARIACamel$1.test(name)) {
-        tagName = "aria-" + name.slice(4).toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",
-              name
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-        if (name !== tagName)
-          return (
-            console.error(
-              "Invalid ARIA attribute `%s`. Did you mean `%s`?",
-              name,
-              tagName
-            ),
-            (warnedProperties$1[name] = !0)
-          );
-      }
-      if (rARIA$1.test(name)) {
-        tagName = name.toLowerCase();
-        tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;
-        if (null == tagName) return (warnedProperties$1[name] = !0), !1;
-        name !== tagName &&
-          (console.error(
-            "Unknown ARIA attribute `%s`. Did you mean `%s`?",
-            name,
-            tagName
-          ),
-          (warnedProperties$1[name] = !0));
-      }
-      return !0;
-    }
-    function validateProperties$2(type, props) {
-      var invalidProps = [],
-        key;
-      for (key in props)
-        validateProperty$1(type, key) || invalidProps.push(key);
-      props = invalidProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === invalidProps.length
-        ? console.error(
-            "Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          )
-        : 1 < invalidProps.length &&
-          console.error(
-            "Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props",
-            props,
-            type
-          );
-    }
-    function validateProperty(tagName, name, value, eventRegistry) {
-      if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
-        return !0;
-      var lowerCasedName = name.toLowerCase();
-      if ("onfocusin" === lowerCasedName || "onfocusout" === lowerCasedName)
-        return (
-          console.error(
-            "React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "function" === typeof value &&
-        (("form" === tagName && "action" === name) ||
-          ("input" === tagName && "formAction" === name) ||
-          ("button" === tagName && "formAction" === name))
-      )
-        return !0;
-      if (null != eventRegistry) {
-        tagName = eventRegistry.possibleRegistrationNames;
-        if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
-          return !0;
-        eventRegistry = tagName.hasOwnProperty(lowerCasedName)
-          ? tagName[lowerCasedName]
-          : null;
-        if (null != eventRegistry)
-          return (
-            console.error(
-              "Invalid event handler property `%s`. Did you mean `%s`?",
-              name,
-              eventRegistry
-            ),
-            (warnedProperties[name] = !0)
-          );
-        if (EVENT_NAME_REGEX.test(name))
-          return (
-            console.error(
-              "Unknown event handler property `%s`. It will be ignored.",
-              name
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (EVENT_NAME_REGEX.test(name))
-        return (
-          INVALID_EVENT_NAME_REGEX.test(name) &&
-            console.error(
-              "Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",
-              name
-            ),
-          (warnedProperties[name] = !0)
-        );
-      if (rARIA.test(name) || rARIACamel.test(name)) return !0;
-      if ("innerhtml" === lowerCasedName)
-        return (
-          console.error(
-            "Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("aria" === lowerCasedName)
-        return (
-          console.error(
-            "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (
-        "is" === lowerCasedName &&
-        null !== value &&
-        void 0 !== value &&
-        "string" !== typeof value
-      )
-        return (
-          console.error(
-            "Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",
-            typeof value
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if ("number" === typeof value && isNaN(value))
-        return (
-          console.error(
-            "Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",
-            name
-          ),
-          (warnedProperties[name] = !0)
-        );
-      if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
-        if (
-          ((lowerCasedName = possibleStandardNames[lowerCasedName]),
-          lowerCasedName !== name)
-        )
-          return (
-            console.error(
-              "Invalid DOM property `%s`. Did you mean `%s`?",
-              name,
-              lowerCasedName
-            ),
-            (warnedProperties[name] = !0)
-          );
-      } else if (name !== lowerCasedName)
-        return (
-          console.error(
-            "React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",
-            name,
-            lowerCasedName
-          ),
-          (warnedProperties[name] = !0)
-        );
-      switch (name) {
-        case "dangerouslySetInnerHTML":
-        case "children":
-        case "style":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "ref":
-          return !0;
-        case "innerText":
-        case "textContent":
-          return !0;
-      }
-      switch (typeof value) {
-        case "boolean":
-          switch (name) {
-            case "autoFocus":
-            case "checked":
-            case "multiple":
-            case "muted":
-            case "selected":
-            case "contentEditable":
-            case "spellCheck":
-            case "draggable":
-            case "value":
-            case "autoReverse":
-            case "externalResourcesRequired":
-            case "focusable":
-            case "preserveAlpha":
-            case "allowFullScreen":
-            case "async":
-            case "autoPlay":
-            case "controls":
-            case "default":
-            case "defer":
-            case "disabled":
-            case "disablePictureInPicture":
-            case "disableRemotePlayback":
-            case "formNoValidate":
-            case "hidden":
-            case "loop":
-            case "noModule":
-            case "noValidate":
-            case "open":
-            case "playsInline":
-            case "readOnly":
-            case "required":
-            case "reversed":
-            case "scoped":
-            case "seamless":
-            case "itemScope":
-            case "capture":
-            case "download":
-            case "inert":
-              return !0;
-            default:
-              lowerCasedName = name.toLowerCase().slice(0, 5);
-              if ("data-" === lowerCasedName || "aria-" === lowerCasedName)
-                return !0;
-              value
-                ? console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name
-                  )
-                : console.error(
-                    'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
-                    value,
-                    name,
-                    name,
-                    value,
-                    name,
-                    name,
-                    name
-                  );
-              return (warnedProperties[name] = !0);
-          }
-        case "function":
-        case "symbol":
-          return (warnedProperties[name] = !0), !1;
-        case "string":
-          if ("false" === value || "true" === value) {
-            switch (name) {
-              case "checked":
-              case "selected":
-              case "multiple":
-              case "muted":
-              case "allowFullScreen":
-              case "async":
-              case "autoPlay":
-              case "controls":
-              case "default":
-              case "defer":
-              case "disabled":
-              case "disablePictureInPicture":
-              case "disableRemotePlayback":
-              case "formNoValidate":
-              case "hidden":
-              case "loop":
-              case "noModule":
-              case "noValidate":
-              case "open":
-              case "playsInline":
-              case "readOnly":
-              case "required":
-              case "reversed":
-              case "scoped":
-              case "seamless":
-              case "itemScope":
-              case "inert":
-                break;
-              default:
-                return !0;
-            }
-            console.error(
-              "Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",
-              value,
-              name,
-              "false" === value
-                ? "The browser will interpret it as a truthy value."
-                : 'Although this works, it will not work as expected if you pass the string "false".',
-              name,
-              value
-            );
-            warnedProperties[name] = !0;
-          }
-      }
-      return !0;
-    }
-    function warnUnknownProperties(type, props, eventRegistry) {
-      var unknownProps = [],
-        key;
-      for (key in props)
-        validateProperty(type, key, props[key], eventRegistry) ||
-          unknownProps.push(key);
-      props = unknownProps
-        .map(function (prop) {
-          return "`" + prop + "`";
-        })
-        .join(", ");
-      1 === unknownProps.length
-        ? console.error(
-            "Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          )
-        : 1 < unknownProps.length &&
-          console.error(
-            "Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ",
-            props,
-            type
-          );
-    }
-    function camelize(string) {
-      return string.replace(hyphenPattern, function (_, character) {
-        return character.toUpperCase();
-      });
-    }
-    function escapeTextForBrowser(text) {
-      if (
-        "boolean" === typeof text ||
-        "number" === typeof text ||
-        "bigint" === typeof text
-      )
-        return "" + text;
-      checkHtmlStringCoercion(text);
-      text = "" + text;
-      var match = matchHtmlRegExp.exec(text);
-      if (match) {
-        var html = "",
-          index,
-          lastIndex = 0;
-        for (index = match.index; index < text.length; index++) {
-          switch (text.charCodeAt(index)) {
-            case 34:
-              match = "&quot;";
-              break;
-            case 38:
-              match = "&amp;";
-              break;
-            case 39:
-              match = "&#x27;";
-              break;
-            case 60:
-              match = "&lt;";
-              break;
-            case 62:
-              match = "&gt;";
-              break;
-            default:
-              continue;
-          }
-          lastIndex !== index && (html += text.slice(lastIndex, index));
-          lastIndex = index + 1;
-          html += match;
-        }
-        text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-      }
-      return text;
-    }
-    function sanitizeURL(url) {
-      return isJavaScriptProtocol.test("" + url)
-        ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-        : url;
-    }
-    function escapeEntireInlineScriptContent(scriptText) {
-      checkHtmlStringCoercion(scriptText);
-      return ("" + scriptText).replace(scriptRegex, scriptReplacer);
-    }
-    function createRenderState(
-      resumableState,
-      nonce,
-      externalRuntimeConfig,
-      importMap,
-      onHeaders,
-      maxHeadersLength
-    ) {
-      externalRuntimeConfig =
-        "string" === typeof nonce ? nonce : nonce && nonce.script;
-      var inlineScriptWithNonce =
-          void 0 === externalRuntimeConfig
-            ? startInlineScript
-            : stringToPrecomputedChunk(
-                '<script nonce="' +
-                  escapeTextForBrowser(externalRuntimeConfig) +
-                  '"'
-              ),
-        nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-        inlineStyleWithNonce =
-          void 0 === nonceStyle
-            ? startInlineStyle
-            : stringToPrecomputedChunk(
-                '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-              ),
-        idPrefix = resumableState.idPrefix,
-        bootstrapChunks = [],
-        bootstrapScriptContent = resumableState.bootstrapScriptContent,
-        bootstrapScripts = resumableState.bootstrapScripts,
-        bootstrapModules = resumableState.bootstrapModules;
-      void 0 !== bootstrapScriptContent &&
-        (bootstrapChunks.push(inlineScriptWithNonce),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          escapeEntireInlineScriptContent(bootstrapScriptContent),
-          endInlineScript
-        ));
-      bootstrapScriptContent = [];
-      void 0 !== importMap &&
-        (bootstrapScriptContent.push(importMapScriptStart),
-        bootstrapScriptContent.push(
-          escapeEntireInlineScriptContent(JSON.stringify(importMap))
-        ),
-        bootstrapScriptContent.push(importMapScriptEnd));
-      onHeaders &&
-        "number" === typeof maxHeadersLength &&
-        0 >= maxHeadersLength &&
-        console.error(
-          "React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.",
-          0 === maxHeadersLength ? "zero" : maxHeadersLength
-        );
-      importMap = onHeaders
-        ? {
-            preconnects: "",
-            fontPreloads: "",
-            highImagePreloads: "",
-            remainingCapacity:
-              2 +
-              ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-          }
-        : null;
-      onHeaders = {
-        placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-        segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-        boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-        startInlineScript: inlineScriptWithNonce,
-        startInlineStyle: inlineStyleWithNonce,
-        preamble: createPreambleState(),
-        externalRuntimeScript: null,
-        bootstrapChunks: bootstrapChunks,
-        importMapChunks: bootstrapScriptContent,
-        onHeaders: onHeaders,
-        headers: importMap,
-        resets: {
-          font: {},
-          dns: {},
-          connect: { default: {}, anonymous: {}, credentials: {} },
-          image: {},
-          style: {}
-        },
-        charsetChunks: [],
-        viewportChunks: [],
-        hoistableChunks: [],
-        preconnects: new Set(),
-        fontPreloads: new Set(),
-        highImagePreloads: new Set(),
-        styles: new Map(),
-        bootstrapScripts: new Set(),
-        scripts: new Set(),
-        bulkPreloads: new Set(),
-        preloads: {
-          images: new Map(),
-          stylesheets: new Map(),
-          scripts: new Map(),
-          moduleScripts: new Map()
-        },
-        nonce: { script: externalRuntimeConfig, style: nonceStyle },
-        hoistableState: null,
-        stylesToHoist: !1
-      };
-      if (void 0 !== bootstrapScripts)
-        for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-          (maxHeadersLength = bootstrapScripts[importMap]),
-            (inlineStyleWithNonce = nonceStyle = void 0),
-            (idPrefix = {
-              rel: "preload",
-              as: "script",
-              fetchPriority: "low",
-              nonce: nonce
-            }),
-            "string" === typeof maxHeadersLength
-              ? (idPrefix.href = inlineScriptWithNonce = maxHeadersLength)
-              : ((idPrefix.href = inlineScriptWithNonce = maxHeadersLength.src),
-                (idPrefix.integrity = inlineStyleWithNonce =
-                  "string" === typeof maxHeadersLength.integrity
-                    ? maxHeadersLength.integrity
-                    : void 0),
-                (idPrefix.crossOrigin = nonceStyle =
-                  "string" === typeof maxHeadersLength ||
-                  null == maxHeadersLength.crossOrigin
-                    ? void 0
-                    : "use-credentials" === maxHeadersLength.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              inlineScriptWithNonce,
-              idPrefix
-            ),
-            bootstrapChunks.push(
-              startScriptSrc,
-              escapeTextForBrowser(inlineScriptWithNonce),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                escapeTextForBrowser(externalRuntimeConfig),
-                attributeEnd
-              ),
-            "string" === typeof inlineStyleWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                escapeTextForBrowser(inlineStyleWithNonce),
-                attributeEnd
-              ),
-            "string" === typeof nonceStyle &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                escapeTextForBrowser(nonceStyle),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      if (void 0 !== bootstrapModules)
-        for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-          (bootstrapScripts = bootstrapModules[nonce]),
-            (inlineScriptWithNonce = maxHeadersLength = void 0),
-            (nonceStyle = {
-              rel: "modulepreload",
-              fetchPriority: "low",
-              nonce: externalRuntimeConfig
-            }),
-            "string" === typeof bootstrapScripts
-              ? (nonceStyle.href = importMap = bootstrapScripts)
-              : ((nonceStyle.href = importMap = bootstrapScripts.src),
-                (nonceStyle.integrity = inlineScriptWithNonce =
-                  "string" === typeof bootstrapScripts.integrity
-                    ? bootstrapScripts.integrity
-                    : void 0),
-                (nonceStyle.crossOrigin = maxHeadersLength =
-                  "string" === typeof bootstrapScripts ||
-                  null == bootstrapScripts.crossOrigin
-                    ? void 0
-                    : "use-credentials" === bootstrapScripts.crossOrigin
-                      ? "use-credentials"
-                      : "")),
-            preloadBootstrapScriptOrModule(
-              resumableState,
-              onHeaders,
-              importMap,
-              nonceStyle
-            ),
-            bootstrapChunks.push(
-              startModuleSrc,
-              escapeTextForBrowser(importMap),
-              attributeEnd
-            ),
-            externalRuntimeConfig &&
-              bootstrapChunks.push(
-                scriptNonce,
-                escapeTextForBrowser(externalRuntimeConfig),
-                attributeEnd
-              ),
-            "string" === typeof inlineScriptWithNonce &&
-              bootstrapChunks.push(
-                scriptIntegirty,
-                escapeTextForBrowser(inlineScriptWithNonce),
-                attributeEnd
-              ),
-            "string" === typeof maxHeadersLength &&
-              bootstrapChunks.push(
-                scriptCrossOrigin,
-                escapeTextForBrowser(maxHeadersLength),
-                attributeEnd
-              ),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(endAsyncScript);
-      return onHeaders;
-    }
-    function createResumableState(
-      identifierPrefix,
-      externalRuntimeConfig,
-      bootstrapScriptContent,
-      bootstrapScripts,
-      bootstrapModules
-    ) {
-      return {
-        idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-        nextFormID: 0,
-        streamingFormat: 0,
-        bootstrapScriptContent: bootstrapScriptContent,
-        bootstrapScripts: bootstrapScripts,
-        bootstrapModules: bootstrapModules,
-        instructions: NothingSent,
-        hasBody: !1,
-        hasHtml: !1,
-        unknownResources: {},
-        dnsResources: {},
-        connectResources: { default: {}, anonymous: {}, credentials: {} },
-        imageResources: {},
-        styleResources: {},
-        scriptResources: {},
-        moduleUnknownResources: {},
-        moduleScriptResources: {}
-      };
-    }
-    function createPreambleState() {
-      return { htmlChunks: null, headChunks: null, bodyChunks: null };
-    }
-    function createFormatContext(
-      insertionMode,
-      selectedValue,
-      tagScope,
-      viewTransition
-    ) {
-      return {
-        insertionMode: insertionMode,
-        selectedValue: selectedValue,
-        tagScope: tagScope,
-        viewTransition: viewTransition
-      };
-    }
-    function createRootFormatContext(namespaceURI) {
-      return createFormatContext(
-        "http://www.w3.org/2000/svg" === namespaceURI
-          ? SVG_MODE
-          : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-            ? MATHML_MODE
-            : ROOT_HTML_MODE,
-        null,
-        0,
-        null
-      );
-    }
-    function getChildFormatContext(parentContext, type, props) {
-      var subtreeScope = parentContext.tagScope & -25;
-      switch (type) {
-        case "noscript":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
-        case "select":
-          return createFormatContext(
-            HTML_MODE,
-            null != props.value ? props.value : props.defaultValue,
-            subtreeScope,
-            null
-          );
-        case "svg":
-          return createFormatContext(SVG_MODE, null, subtreeScope, null);
-        case "picture":
-          return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
-        case "math":
-          return createFormatContext(MATHML_MODE, null, subtreeScope, null);
-        case "foreignObject":
-          return createFormatContext(HTML_MODE, null, subtreeScope, null);
-        case "table":
-          return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
-        case "thead":
-        case "tbody":
-        case "tfoot":
-          return createFormatContext(
-            HTML_TABLE_BODY_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "colgroup":
-          return createFormatContext(
-            HTML_COLGROUP_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "tr":
-          return createFormatContext(
-            HTML_TABLE_ROW_MODE,
-            null,
-            subtreeScope,
-            null
-          );
-        case "head":
-          if (parentContext.insertionMode < HTML_MODE)
-            return createFormatContext(
-              HTML_HEAD_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-          break;
-        case "html":
-          if (parentContext.insertionMode === ROOT_HTML_MODE)
-            return createFormatContext(
-              HTML_HTML_MODE,
-              null,
-              subtreeScope,
-              null
-            );
-      }
-      return parentContext.insertionMode >= HTML_TABLE_MODE ||
-        parentContext.insertionMode < HTML_MODE
-        ? createFormatContext(HTML_MODE, null, subtreeScope, null)
-        : parentContext.tagScope !== subtreeScope
-          ? createFormatContext(
-              parentContext.insertionMode,
-              parentContext.selectedValue,
-              subtreeScope,
-              null
-            )
-          : parentContext;
-    }
-    function getSuspenseViewTransition(parentViewTransition) {
-      return null === parentViewTransition
-        ? null
-        : {
-            update: parentViewTransition.update,
-            enter: "none",
-            exit: "none",
-            share: parentViewTransition.update,
-            name: parentViewTransition.autoName,
-            autoName: parentViewTransition.autoName,
-            nameIdx: 0
-          };
-    }
-    function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-      parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        parentContext.tagScope | 12,
-        getSuspenseViewTransition(parentContext.viewTransition)
-      );
-    }
-    function getSuspenseContentFormatContext(resumableState, parentContext) {
-      resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-      var subtreeScope = parentContext.tagScope | 16;
-      null !== resumableState &&
-        "none" !== resumableState.share &&
-        (subtreeScope |= 64);
-      return createFormatContext(
-        parentContext.insertionMode,
-        parentContext.selectedValue,
-        subtreeScope,
-        resumableState
-      );
-    }
-    function pushTextInstance(target, text, renderState, textEmbedded) {
-      if ("" === text) return textEmbedded;
-      textEmbedded && target.push(textSeparator);
-      target.push(escapeTextForBrowser(text));
-      return !0;
-    }
-    function pushStyleAttribute(target, style) {
-      if ("object" !== typeof style)
-        throw Error(
-          "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-        );
-      var isFirst = !0,
-        styleName;
-      for (styleName in style)
-        if (hasOwnProperty.call(style, styleName)) {
-          var styleValue = style[styleName];
-          if (
-            null != styleValue &&
-            "boolean" !== typeof styleValue &&
-            "" !== styleValue
-          ) {
-            if (0 === styleName.indexOf("--")) {
-              var nameChunk = escapeTextForBrowser(styleName);
-              checkCSSPropertyStringCoercion(styleValue, styleName);
-              styleValue = escapeTextForBrowser(("" + styleValue).trim());
-            } else {
-              nameChunk = styleName;
-              var value = styleValue;
-              if (-1 < nameChunk.indexOf("-")) {
-                var name = nameChunk;
-                (warnedStyleNames.hasOwnProperty(name) &&
-                  warnedStyleNames[name]) ||
-                  ((warnedStyleNames[name] = !0),
-                  console.error(
-                    "Unsupported style property %s. Did you mean %s?",
-                    name,
-                    camelize(name.replace(msPattern$1, "ms-"))
-                  ));
-              } else if (badVendoredStyleNamePattern.test(nameChunk))
-                (name = nameChunk),
-                  (warnedStyleNames.hasOwnProperty(name) &&
-                    warnedStyleNames[name]) ||
-                    ((warnedStyleNames[name] = !0),
-                    console.error(
-                      "Unsupported vendor-prefixed style property %s. Did you mean %s?",
-                      name,
-                      name.charAt(0).toUpperCase() + name.slice(1)
-                    ));
-              else if (badStyleValueWithSemicolonPattern.test(value)) {
-                name = nameChunk;
-                var value$jscomp$0 = value;
-                (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&
-                  warnedStyleValues[value$jscomp$0]) ||
-                  ((warnedStyleValues[value$jscomp$0] = !0),
-                  console.error(
-                    'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
-                    name,
-                    value$jscomp$0.replace(
-                      badStyleValueWithSemicolonPattern,
-                      ""
-                    )
-                  ));
-              }
-              "number" === typeof value &&
-                (isNaN(value)
-                  ? warnedForNaNValue ||
-                    ((warnedForNaNValue = !0),
-                    console.error(
-                      "`NaN` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    ))
-                  : isFinite(value) ||
-                    warnedForInfinityValue ||
-                    ((warnedForInfinityValue = !0),
-                    console.error(
-                      "`Infinity` is an invalid value for the `%s` css style property.",
-                      nameChunk
-                    )));
-              nameChunk = styleName;
-              value = styleNameCache.get(nameChunk);
-              void 0 !== value
-                ? (nameChunk = value)
-                : ((value = stringToPrecomputedChunk(
-                    escapeTextForBrowser(
-                      nameChunk
-                        .replace(uppercasePattern, "-$1")
-                        .toLowerCase()
-                        .replace(msPattern, "-ms-")
-                    )
-                  )),
-                  styleNameCache.set(nameChunk, value),
-                  (nameChunk = value));
-              "number" === typeof styleValue
-                ? (styleValue =
-                    0 === styleValue || unitlessNumbers.has(styleName)
-                      ? "" + styleValue
-                      : styleValue + "px")
-                : (checkCSSPropertyStringCoercion(styleValue, styleName),
-                  (styleValue = escapeTextForBrowser(
-                    ("" + styleValue).trim()
-                  )));
-            }
-            isFirst
-              ? ((isFirst = !1),
-                target.push(
-                  styleAttributeStart,
-                  nameChunk,
-                  styleAssign,
-                  styleValue
-                ))
-              : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-          }
-        }
-      isFirst || target.push(attributeEnd);
-    }
-    function pushBooleanAttribute(target, name, value) {
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(attributeSeparator, name, attributeEmptyString);
-    }
-    function pushStringAttribute(target, name, value) {
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        "boolean" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-    }
-    function pushAdditionalFormField(value, key) {
-      this.push(startHiddenInputChunk);
-      validateAdditionalFormField(value);
-      pushStringAttribute(this, "name", key);
-      pushStringAttribute(this, "value", value);
-      this.push(endOfStartTagSelfClosing);
-    }
-    function validateAdditionalFormField(value) {
-      if ("string" !== typeof value)
-        throw Error(
-          "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-        );
-    }
-    function getCustomFormFields(resumableState, formAction) {
-      if ("function" === typeof formAction.$$FORM_ACTION) {
-        var id = resumableState.nextFormID++;
-        resumableState = resumableState.idPrefix + id;
-        try {
-          var customFields = formAction.$$FORM_ACTION(resumableState);
-          if (customFields) {
-            var formData = customFields.data;
-            null != formData && formData.forEach(validateAdditionalFormField);
-          }
-          return customFields;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            "function" === typeof x.then
-          )
-            throw x;
-          console.error(
-            "Failed to serialize an action for progressive enhancement:\n%s",
-            x
-          );
-        }
-      }
-      return null;
-    }
-    function pushFormActionAttribute(
-      target,
-      resumableState,
-      renderState,
-      formAction,
-      formEncType,
-      formMethod,
-      formTarget,
-      name
-    ) {
-      var formData = null;
-      if ("function" === typeof formAction) {
-        null === name ||
-          didWarnFormActionName ||
-          ((didWarnFormActionName = !0),
-          console.error(
-            'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
-          ));
-        (null === formEncType && null === formMethod) ||
-          didWarnFormActionMethod ||
-          ((didWarnFormActionMethod = !0),
-          console.error(
-            "Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden."
-          ));
-        null === formTarget ||
-          didWarnFormActionTarget ||
-          ((didWarnFormActionTarget = !0),
-          console.error(
-            "Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window."
-          ));
-        var customFields = getCustomFormFields(resumableState, formAction);
-        null !== customFields
-          ? ((name = customFields.name),
-            (formAction = customFields.action || ""),
-            (formEncType = customFields.encType),
-            (formMethod = customFields.method),
-            (formTarget = customFields.target),
-            (formData = customFields.data))
-          : (target.push(
-              attributeSeparator,
-              "formAction",
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget = formMethod = formEncType = formAction = name = null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != name && pushAttribute(target, "name", name);
-      null != formAction && pushAttribute(target, "formAction", formAction);
-      null != formEncType && pushAttribute(target, "formEncType", formEncType);
-      null != formMethod && pushAttribute(target, "formMethod", formMethod);
-      null != formTarget && pushAttribute(target, "formTarget", formTarget);
-      return formData;
-    }
-    function pushAttribute(target, name, value) {
-      switch (name) {
-        case "className":
-          pushStringAttribute(target, "class", value);
-          break;
-        case "tabIndex":
-          pushStringAttribute(target, "tabindex", value);
-          break;
-        case "dir":
-        case "role":
-        case "viewBox":
-        case "width":
-        case "height":
-          pushStringAttribute(target, name, value);
-          break;
-        case "style":
-          pushStyleAttribute(target, value);
-          break;
-        case "src":
-        case "href":
-          if ("" === value) {
-            "src" === name
-              ? console.error(
-                  'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                )
-              : console.error(
-                  'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                  name,
-                  name
-                );
-            break;
-          }
-        case "action":
-        case "formAction":
-          if (
-            null == value ||
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "defaultValue":
-        case "defaultChecked":
-        case "innerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "ref":
-          break;
-        case "autoFocus":
-        case "multiple":
-        case "muted":
-          pushBooleanAttribute(target, name.toLowerCase(), value);
-          break;
-        case "xlinkHref":
-          if (
-            "function" === typeof value ||
-            "symbol" === typeof value ||
-            "boolean" === typeof value
-          )
-            break;
-          checkAttributeStringCoercion(value, name);
-          value = sanitizeURL("" + value);
-          target.push(
-            attributeSeparator,
-            "xlink:href",
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-          break;
-        case "contentEditable":
-        case "spellCheck":
-        case "draggable":
-        case "value":
-        case "autoReverse":
-        case "externalResourcesRequired":
-        case "focusable":
-        case "preserveAlpha":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "inert":
-          "" !== value ||
-            didWarnForNewBooleanPropsWithEmptyValue[name] ||
-            ((didWarnForNewBooleanPropsWithEmptyValue[name] = !0),
-            console.error(
-              "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
-              name
-            ));
-        case "allowFullScreen":
-        case "async":
-        case "autoPlay":
-        case "controls":
-        case "default":
-        case "defer":
-        case "disabled":
-        case "disablePictureInPicture":
-        case "disableRemotePlayback":
-        case "formNoValidate":
-        case "hidden":
-        case "loop":
-        case "noModule":
-        case "noValidate":
-        case "open":
-        case "playsInline":
-        case "readOnly":
-        case "required":
-        case "reversed":
-        case "scoped":
-        case "seamless":
-        case "itemScope":
-          value &&
-            "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            target.push(attributeSeparator, name, attributeEmptyString);
-          break;
-        case "capture":
-        case "download":
-          !0 === value
-            ? target.push(attributeSeparator, name, attributeEmptyString)
-            : !1 !== value &&
-              "function" !== typeof value &&
-              "symbol" !== typeof value &&
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-          break;
-        case "cols":
-        case "rows":
-        case "size":
-        case "span":
-          "function" !== typeof value &&
-            "symbol" !== typeof value &&
-            !isNaN(value) &&
-            1 <= value &&
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "rowSpan":
-        case "start":
-          "function" === typeof value ||
-            "symbol" === typeof value ||
-            isNaN(value) ||
-            target.push(
-              attributeSeparator,
-              name,
-              attributeAssign,
-              escapeTextForBrowser(value),
-              attributeEnd
-            );
-          break;
-        case "xlinkActuate":
-          pushStringAttribute(target, "xlink:actuate", value);
-          break;
-        case "xlinkArcrole":
-          pushStringAttribute(target, "xlink:arcrole", value);
-          break;
-        case "xlinkRole":
-          pushStringAttribute(target, "xlink:role", value);
-          break;
-        case "xlinkShow":
-          pushStringAttribute(target, "xlink:show", value);
-          break;
-        case "xlinkTitle":
-          pushStringAttribute(target, "xlink:title", value);
-          break;
-        case "xlinkType":
-          pushStringAttribute(target, "xlink:type", value);
-          break;
-        case "xmlBase":
-          pushStringAttribute(target, "xml:base", value);
-          break;
-        case "xmlLang":
-          pushStringAttribute(target, "xml:lang", value);
-          break;
-        case "xmlSpace":
-          pushStringAttribute(target, "xml:space", value);
-          break;
-        default:
-          if (
-            !(2 < name.length) ||
-            ("o" !== name[0] && "O" !== name[0]) ||
-            ("n" !== name[1] && "N" !== name[1])
-          )
-            if (
-              ((name = aliases.get(name) || name), isAttributeNameSafe(name))
-            ) {
-              switch (typeof value) {
-                case "function":
-                case "symbol":
-                  return;
-                case "boolean":
-                  var prefix = name.toLowerCase().slice(0, 5);
-                  if ("data-" !== prefix && "aria-" !== prefix) return;
-              }
-              target.push(
-                attributeSeparator,
-                name,
-                attributeAssign,
-                escapeTextForBrowser(value),
-                attributeEnd
-              );
-            }
-      }
-    }
-    function pushInnerHTML(target, innerHTML, children) {
-      if (null != innerHTML) {
-        if (null != children)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        innerHTML = innerHTML.__html;
-        null !== innerHTML &&
-          void 0 !== innerHTML &&
-          (checkHtmlStringCoercion(innerHTML), target.push("" + innerHTML));
-      }
-    }
-    function checkSelectProp(props, propName) {
-      var value = props[propName];
-      null != value &&
-        ((value = isArrayImpl(value)),
-        props.multiple && !value
-          ? console.error(
-              "The `%s` prop supplied to <select> must be an array if `multiple` is true.",
-              propName
-            )
-          : !props.multiple &&
-            value &&
-            console.error(
-              "The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.",
-              propName
-            ));
-    }
-    function flattenOptionChildren(children) {
-      var content = "";
-      React.Children.forEach(children, function (child) {
-        null != child &&
-          ((content += child),
-          didWarnInvalidOptionChildren ||
-            "string" === typeof child ||
-            "number" === typeof child ||
-            "bigint" === typeof child ||
-            ((didWarnInvalidOptionChildren = !0),
-            console.error(
-              "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>."
-            )));
-      });
-      return content;
-    }
-    function injectFormReplayingRuntime(resumableState, renderState) {
-      if ((resumableState.instructions & 16) === NothingSent) {
-        resumableState.instructions |= 16;
-        var preamble = renderState.preamble,
-          bootstrapChunks = renderState.bootstrapChunks;
-        (preamble.htmlChunks || preamble.headChunks) &&
-        0 === bootstrapChunks.length
-          ? (bootstrapChunks.push(renderState.startInlineScript),
-            pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-            bootstrapChunks.push(
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            ))
-          : bootstrapChunks.unshift(
-              renderState.startInlineScript,
-              endOfStartTag,
-              formReplayingRuntimeScript,
-              endInlineScript
-            );
-      }
-    }
-    function pushLinkImpl(target, props) {
-      target.push(startChunkForTag("link"));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function escapeStyleTextContent(styleText) {
-      checkHtmlStringCoercion(styleText);
-      return ("" + styleText).replace(styleRegex, styleReplacer);
-    }
-    function pushSelfClosing(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      for (var propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  tag +
-                    " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTagSelfClosing);
-      return null;
-    }
-    function pushTitleImpl(target, props) {
-      target.push(startChunkForTag("title"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      props = Array.isArray(children)
-        ? 2 > children.length
-          ? children[0]
-          : null
-        : children;
-      "function" !== typeof props &&
-        "symbol" !== typeof props &&
-        null !== props &&
-        void 0 !== props &&
-        target.push(escapeTextForBrowser("" + props));
-      pushInnerHTML(target, innerHTML, children);
-      target.push(endChunkForTag("title"));
-      return null;
-    }
-    function pushScriptImpl(target, props) {
-      target.push(startChunkForTag("script"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      null != children &&
-        "string" !== typeof children &&
-        ((props =
-          "number" === typeof children
-            ? "a number for children"
-            : Array.isArray(children)
-              ? "an array for children"
-              : "something unexpected for children"),
-        console.error(
-          "A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.",
-          props
-        ));
-      pushInnerHTML(target, innerHTML, children);
-      "string" === typeof children &&
-        target.push(escapeEntireInlineScriptContent(children));
-      target.push(endChunkForTag("script"));
-      return null;
-    }
-    function pushStartSingletonElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return tag;
-    }
-    function pushStartGenericElement(target, props, tag) {
-      target.push(startChunkForTag(tag));
-      var innerHTML = (tag = null),
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                tag = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              default:
-                pushAttribute(target, propKey, propValue);
-            }
-        }
-      target.push(endOfStartTag);
-      pushInnerHTML(target, innerHTML, tag);
-      return "string" === typeof tag
-        ? (target.push(escapeTextForBrowser(tag)), null)
-        : tag;
-    }
-    function startChunkForTag(tag) {
-      var tagStartChunk = validatedTagCache.get(tag);
-      if (void 0 === tagStartChunk) {
-        if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-        tagStartChunk = stringToPrecomputedChunk("<" + tag);
-        validatedTagCache.set(tag, tagStartChunk);
-      }
-      return tagStartChunk;
-    }
-    function pushStartInstance(
-      target$jscomp$0,
-      type,
-      props,
-      resumableState,
-      renderState,
-      preambleState,
-      hoistableState,
-      formatContext,
-      textEmbedded
-    ) {
-      validateProperties$2(type, props);
-      ("input" !== type && "textarea" !== type && "select" !== type) ||
-        null == props ||
-        null !== props.value ||
-        didWarnValueNull ||
-        ((didWarnValueNull = !0),
-        "select" === type && props.multiple
-          ? console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",
-              type
-            )
-          : console.error(
-              "`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",
-              type
-            ));
-      b: if (-1 === type.indexOf("-")) var JSCompiler_inline_result = !1;
-      else
-        switch (type) {
-          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":
-            JSCompiler_inline_result = !1;
-            break b;
-          default:
-            JSCompiler_inline_result = !0;
-        }
-      JSCompiler_inline_result ||
-        "string" === typeof props.is ||
-        warnUnknownProperties(type, props, null);
-      !props.suppressContentEditableWarning &&
-        props.contentEditable &&
-        null != props.children &&
-        console.error(
-          "A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."
-        );
-      formatContext.insertionMode !== SVG_MODE &&
-        formatContext.insertionMode !== MATHML_MODE &&
-        -1 === type.indexOf("-") &&
-        type.toLowerCase() !== type &&
-        console.error(
-          "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",
-          type
-        );
-      switch (type) {
-        case "div":
-        case "span":
-        case "svg":
-        case "path":
-          break;
-        case "a":
-          target$jscomp$0.push(startChunkForTag("a"));
-          var children = null,
-            innerHTML = null,
-            propKey;
-          for (propKey in props)
-            if (hasOwnProperty.call(props, propKey)) {
-              var propValue = props[propKey];
-              if (null != propValue)
-                switch (propKey) {
-                  case "children":
-                    children = propValue;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML = propValue;
-                    break;
-                  case "href":
-                    "" === propValue
-                      ? pushStringAttribute(target$jscomp$0, "href", "")
-                      : pushAttribute(target$jscomp$0, propKey, propValue);
-                    break;
-                  default:
-                    pushAttribute(target$jscomp$0, propKey, propValue);
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML, children);
-          if ("string" === typeof children) {
-            target$jscomp$0.push(escapeTextForBrowser(children));
-            var JSCompiler_inline_result$jscomp$0 = null;
-          } else JSCompiler_inline_result$jscomp$0 = children;
-          return JSCompiler_inline_result$jscomp$0;
-        case "g":
-        case "p":
-        case "li":
-          break;
-        case "select":
-          checkControlledValueProps("select", props);
-          checkSelectProp(props, "value");
-          checkSelectProp(props, "defaultValue");
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultSelectValue ||
-            (console.error(
-              "Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultSelectValue = !0));
-          target$jscomp$0.push(startChunkForTag("select"));
-          var children$jscomp$0 = null,
-            innerHTML$jscomp$0 = null,
-            propKey$jscomp$0;
-          for (propKey$jscomp$0 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-              var propValue$jscomp$0 = props[propKey$jscomp$0];
-              if (null != propValue$jscomp$0)
-                switch (propKey$jscomp$0) {
-                  case "children":
-                    children$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$0 = propValue$jscomp$0;
-                    break;
-                  case "defaultValue":
-                  case "value":
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$0,
-                      propValue$jscomp$0
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-          return children$jscomp$0;
-        case "option":
-          var selectedValue = formatContext.selectedValue;
-          target$jscomp$0.push(startChunkForTag("option"));
-          var children$jscomp$1 = null,
-            value = null,
-            selected = null,
-            innerHTML$jscomp$1 = null,
-            propKey$jscomp$1;
-          for (propKey$jscomp$1 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-              var propValue$jscomp$1 = props[propKey$jscomp$1];
-              if (null != propValue$jscomp$1)
-                switch (propKey$jscomp$1) {
-                  case "children":
-                    children$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "selected":
-                    selected = propValue$jscomp$1;
-                    didWarnSelectedSetOnOption ||
-                      (console.error(
-                        "Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."
-                      ),
-                      (didWarnSelectedSetOnOption = !0));
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$1 = propValue$jscomp$1;
-                    break;
-                  case "value":
-                    value = propValue$jscomp$1;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$1,
-                      propValue$jscomp$1
-                    );
-                }
-            }
-          if (null != selectedValue) {
-            if (null !== value) {
-              checkAttributeStringCoercion(value, "value");
-              var stringValue = "" + value;
-            } else
-              null === innerHTML$jscomp$1 ||
-                didWarnInvalidOptionInnerHTML ||
-                ((didWarnInvalidOptionInnerHTML = !0),
-                console.error(
-                  "Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."
-                )),
-                (stringValue = flattenOptionChildren(children$jscomp$1));
-            if (isArrayImpl(selectedValue))
-              for (var i = 0; i < selectedValue.length; i++) {
-                if (
-                  (checkAttributeStringCoercion(selectedValue[i], "value"),
-                  "" + selectedValue[i] === stringValue)
-                ) {
-                  target$jscomp$0.push(selectedMarkerAttribute);
-                  break;
-                }
-              }
-            else
-              checkAttributeStringCoercion(selectedValue, "select.value"),
-                "" + selectedValue === stringValue &&
-                  target$jscomp$0.push(selectedMarkerAttribute);
-          } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-          return children$jscomp$1;
-        case "textarea":
-          checkControlledValueProps("textarea", props);
-          void 0 === props.value ||
-            void 0 === props.defaultValue ||
-            didWarnDefaultTextareaValue ||
-            (console.error(
-              "Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components"
-            ),
-            (didWarnDefaultTextareaValue = !0));
-          target$jscomp$0.push(startChunkForTag("textarea"));
-          var value$jscomp$0 = null,
-            defaultValue = null,
-            children$jscomp$2 = null,
-            propKey$jscomp$2;
-          for (propKey$jscomp$2 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-              var propValue$jscomp$2 = props[propKey$jscomp$2];
-              if (null != propValue$jscomp$2)
-                switch (propKey$jscomp$2) {
-                  case "children":
-                    children$jscomp$2 = propValue$jscomp$2;
-                    break;
-                  case "value":
-                    value$jscomp$0 = propValue$jscomp$2;
-                    break;
-                  case "defaultValue":
-                    defaultValue = propValue$jscomp$2;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$2,
-                      propValue$jscomp$2
-                    );
-                }
-            }
-          null === value$jscomp$0 &&
-            null !== defaultValue &&
-            (value$jscomp$0 = defaultValue);
-          target$jscomp$0.push(endOfStartTag);
-          if (null != children$jscomp$2) {
-            console.error(
-              "Use the `defaultValue` or `value` props instead of setting children on <textarea>."
-            );
-            if (null != value$jscomp$0)
-              throw Error(
-                "If you supply `defaultValue` on a <textarea>, do not pass children."
-              );
-            if (isArrayImpl(children$jscomp$2)) {
-              if (1 < children$jscomp$2.length)
-                throw Error("<textarea> can only have at most one child.");
-              checkHtmlStringCoercion(children$jscomp$2[0]);
-              value$jscomp$0 = "" + children$jscomp$2[0];
-            }
-            checkHtmlStringCoercion(children$jscomp$2);
-            value$jscomp$0 = "" + children$jscomp$2;
-          }
-          "string" === typeof value$jscomp$0 &&
-            "\n" === value$jscomp$0[0] &&
-            target$jscomp$0.push(leadingNewline);
-          null !== value$jscomp$0 &&
-            (checkAttributeStringCoercion(value$jscomp$0, "value"),
-            target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)));
-          return null;
-        case "input":
-          checkControlledValueProps("input", props);
-          target$jscomp$0.push(startChunkForTag("input"));
-          var name = null,
-            formAction = null,
-            formEncType = null,
-            formMethod = null,
-            formTarget = null,
-            value$jscomp$1 = null,
-            defaultValue$jscomp$0 = null,
-            checked = null,
-            defaultChecked = null,
-            propKey$jscomp$3;
-          for (propKey$jscomp$3 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-              var propValue$jscomp$3 = props[propKey$jscomp$3];
-              if (null != propValue$jscomp$3)
-                switch (propKey$jscomp$3) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  case "name":
-                    name = propValue$jscomp$3;
-                    break;
-                  case "formAction":
-                    formAction = propValue$jscomp$3;
-                    break;
-                  case "formEncType":
-                    formEncType = propValue$jscomp$3;
-                    break;
-                  case "formMethod":
-                    formMethod = propValue$jscomp$3;
-                    break;
-                  case "formTarget":
-                    formTarget = propValue$jscomp$3;
-                    break;
-                  case "defaultChecked":
-                    defaultChecked = propValue$jscomp$3;
-                    break;
-                  case "defaultValue":
-                    defaultValue$jscomp$0 = propValue$jscomp$3;
-                    break;
-                  case "checked":
-                    checked = propValue$jscomp$3;
-                    break;
-                  case "value":
-                    value$jscomp$1 = propValue$jscomp$3;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$3,
-                      propValue$jscomp$3
-                    );
-                }
-            }
-          null === formAction ||
-            "image" === props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'An input can only specify a formAction along with type="submit" or type="image".'
-            ));
-          var formData = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction,
-            formEncType,
-            formMethod,
-            formTarget,
-            name
-          );
-          null === checked ||
-            null === defaultChecked ||
-            didWarnDefaultChecked ||
-            (console.error(
-              "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultChecked = !0));
-          null === value$jscomp$1 ||
-            null === defaultValue$jscomp$0 ||
-            didWarnDefaultInputValue ||
-            (console.error(
-              "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",
-              "A component",
-              props.type
-            ),
-            (didWarnDefaultInputValue = !0));
-          null !== checked
-            ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-            : null !== defaultChecked &&
-              pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-          null !== value$jscomp$1
-            ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-            : null !== defaultValue$jscomp$0 &&
-              pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-          target$jscomp$0.push(endOfStartTagSelfClosing);
-          null != formData &&
-            formData.forEach(pushAdditionalFormField, target$jscomp$0);
-          return null;
-        case "button":
-          target$jscomp$0.push(startChunkForTag("button"));
-          var children$jscomp$3 = null,
-            innerHTML$jscomp$2 = null,
-            name$jscomp$0 = null,
-            formAction$jscomp$0 = null,
-            formEncType$jscomp$0 = null,
-            formMethod$jscomp$0 = null,
-            formTarget$jscomp$0 = null,
-            propKey$jscomp$4;
-          for (propKey$jscomp$4 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-              var propValue$jscomp$4 = props[propKey$jscomp$4];
-              if (null != propValue$jscomp$4)
-                switch (propKey$jscomp$4) {
-                  case "children":
-                    children$jscomp$3 = propValue$jscomp$4;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$2 = propValue$jscomp$4;
-                    break;
-                  case "name":
-                    name$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formAction":
-                    formAction$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formEncType":
-                    formEncType$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formMethod":
-                    formMethod$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  case "formTarget":
-                    formTarget$jscomp$0 = propValue$jscomp$4;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$4,
-                      propValue$jscomp$4
-                    );
-                }
-            }
-          null === formAction$jscomp$0 ||
-            null == props.type ||
-            "submit" === props.type ||
-            didWarnFormActionType ||
-            ((didWarnFormActionType = !0),
-            console.error(
-              'A button can only specify a formAction along with type="submit" or no type.'
-            ));
-          var formData$jscomp$0 = pushFormActionAttribute(
-            target$jscomp$0,
-            resumableState,
-            renderState,
-            formAction$jscomp$0,
-            formEncType$jscomp$0,
-            formMethod$jscomp$0,
-            formTarget$jscomp$0,
-            name$jscomp$0
-          );
-          target$jscomp$0.push(endOfStartTag);
-          null != formData$jscomp$0 &&
-            formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-          if ("string" === typeof children$jscomp$3) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-            var JSCompiler_inline_result$jscomp$1 = null;
-          } else JSCompiler_inline_result$jscomp$1 = children$jscomp$3;
-          return JSCompiler_inline_result$jscomp$1;
-        case "form":
-          target$jscomp$0.push(startChunkForTag("form"));
-          var children$jscomp$4 = null,
-            innerHTML$jscomp$3 = null,
-            formAction$jscomp$1 = null,
-            formEncType$jscomp$1 = null,
-            formMethod$jscomp$1 = null,
-            formTarget$jscomp$1 = null,
-            propKey$jscomp$5;
-          for (propKey$jscomp$5 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-              var propValue$jscomp$5 = props[propKey$jscomp$5];
-              if (null != propValue$jscomp$5)
-                switch (propKey$jscomp$5) {
-                  case "children":
-                    children$jscomp$4 = propValue$jscomp$5;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$3 = propValue$jscomp$5;
-                    break;
-                  case "action":
-                    formAction$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "encType":
-                    formEncType$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "method":
-                    formMethod$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  case "target":
-                    formTarget$jscomp$1 = propValue$jscomp$5;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$5,
-                      propValue$jscomp$5
-                    );
-                }
-            }
-          var formData$jscomp$1 = null,
-            formActionName = null;
-          if ("function" === typeof formAction$jscomp$1) {
-            (null === formEncType$jscomp$1 && null === formMethod$jscomp$1) ||
-              didWarnFormActionMethod ||
-              ((didWarnFormActionMethod = !0),
-              console.error(
-                "Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden."
-              ));
-            null === formTarget$jscomp$1 ||
-              didWarnFormActionTarget ||
-              ((didWarnFormActionTarget = !0),
-              console.error(
-                "Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window."
-              ));
-            var customFields = getCustomFormFields(
-              resumableState,
-              formAction$jscomp$1
-            );
-            null !== customFields
-              ? ((formAction$jscomp$1 = customFields.action || ""),
-                (formEncType$jscomp$1 = customFields.encType),
-                (formMethod$jscomp$1 = customFields.method),
-                (formTarget$jscomp$1 = customFields.target),
-                (formData$jscomp$1 = customFields.data),
-                (formActionName = customFields.name))
-              : (target$jscomp$0.push(
-                  attributeSeparator,
-                  "action",
-                  attributeAssign,
-                  actionJavaScriptURL,
-                  attributeEnd
-                ),
-                (formTarget$jscomp$1 =
-                  formMethod$jscomp$1 =
-                  formEncType$jscomp$1 =
-                  formAction$jscomp$1 =
-                    null),
-                injectFormReplayingRuntime(resumableState, renderState));
-          }
-          null != formAction$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-          null != formEncType$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-          null != formMethod$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-          null != formTarget$jscomp$1 &&
-            pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-          target$jscomp$0.push(endOfStartTag);
-          null !== formActionName &&
-            (target$jscomp$0.push(startHiddenInputChunk),
-            pushStringAttribute(target$jscomp$0, "name", formActionName),
-            target$jscomp$0.push(endOfStartTagSelfClosing),
-            null != formData$jscomp$1 &&
-              formData$jscomp$1.forEach(
-                pushAdditionalFormField,
-                target$jscomp$0
-              ));
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-          if ("string" === typeof children$jscomp$4) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-            var JSCompiler_inline_result$jscomp$2 = null;
-          } else JSCompiler_inline_result$jscomp$2 = children$jscomp$4;
-          return JSCompiler_inline_result$jscomp$2;
-        case "menuitem":
-          target$jscomp$0.push(startChunkForTag("menuitem"));
-          for (var propKey$jscomp$6 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-              var propValue$jscomp$6 = props[propKey$jscomp$6];
-              if (null != propValue$jscomp$6)
-                switch (propKey$jscomp$6) {
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$6,
-                      propValue$jscomp$6
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          return null;
-        case "object":
-          target$jscomp$0.push(startChunkForTag("object"));
-          var children$jscomp$5 = null,
-            innerHTML$jscomp$4 = null,
-            propKey$jscomp$7;
-          for (propKey$jscomp$7 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-              var propValue$jscomp$7 = props[propKey$jscomp$7];
-              if (null != propValue$jscomp$7)
-                switch (propKey$jscomp$7) {
-                  case "children":
-                    children$jscomp$5 = propValue$jscomp$7;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$4 = propValue$jscomp$7;
-                    break;
-                  case "data":
-                    checkAttributeStringCoercion(propValue$jscomp$7, "data");
-                    var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                    if ("" === sanitizedValue) {
-                      console.error(
-                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
-                        propKey$jscomp$7,
-                        propKey$jscomp$7
-                      );
-                      break;
-                    }
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      "data",
-                      attributeAssign,
-                      escapeTextForBrowser(sanitizedValue),
-                      attributeEnd
-                    );
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$7,
-                      propValue$jscomp$7
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-          if ("string" === typeof children$jscomp$5) {
-            target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-            var JSCompiler_inline_result$jscomp$3 = null;
-          } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
-          return JSCompiler_inline_result$jscomp$3;
-        case "title":
-          var noscriptTagInScope = formatContext.tagScope & 1,
-            isFallback = formatContext.tagScope & 4;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$6 = props.children,
-              child = Array.isArray(children$jscomp$6)
-                ? 2 > children$jscomp$6.length
-                  ? children$jscomp$6[0]
-                  : null
-                : children$jscomp$6;
-            Array.isArray(children$jscomp$6) && 1 < children$jscomp$6.length
-              ? console.error(
-                  "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.",
-                  children$jscomp$6.length
-                )
-              : "function" === typeof child || "symbol" === typeof child
-                ? console.error(
-                    "React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.",
-                    "function" === typeof child ? "a Function" : "a Sybmol"
-                  )
-                : child &&
-                  child.toString === {}.toString &&
-                  (null != child.$$typeof
-                    ? console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML."
-                      )
-                    : console.error(
-                        "React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>."
-                      ));
-          }
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$4 = pushTitleImpl(
-              target$jscomp$0,
-              props
-            );
-          else
-            isFallback
-              ? (JSCompiler_inline_result$jscomp$4 = null)
-              : (pushTitleImpl(renderState.hoistableChunks, props),
-                (JSCompiler_inline_result$jscomp$4 = void 0));
-          return JSCompiler_inline_result$jscomp$4;
-        case "link":
-          var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-            isFallback$jscomp$0 = formatContext.tagScope & 4,
-            rel = props.rel,
-            href = props.href,
-            precedence = props.precedence;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$0 ||
-            null != props.itemProp ||
-            "string" !== typeof rel ||
-            "string" !== typeof href ||
-            "" === href
-          ) {
-            "stylesheet" === rel &&
-              "string" === typeof props.precedence &&
-              (("string" === typeof href && href) ||
-                console.error(
-                  'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
-                  null === href
-                    ? "`null`"
-                    : void 0 === href
-                      ? "`undefined`"
-                      : "" === href
-                        ? "an empty string"
-                        : 'something with type "' + typeof href + '"'
-                ));
-            pushLinkImpl(target$jscomp$0, props);
-            var JSCompiler_inline_result$jscomp$5 = null;
-          } else if ("stylesheet" === props.rel)
-            if (
-              "string" !== typeof precedence ||
-              null != props.disabled ||
-              props.onLoad ||
-              props.onError
-            ) {
-              if ("string" === typeof precedence)
-                if (null != props.disabled)
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
-                  );
-                else if (props.onLoad || props.onError) {
-                  var propDescription =
-                    props.onLoad && props.onError
-                      ? "`onLoad` and `onError` props"
-                      : props.onLoad
-                        ? "`onLoad` prop"
-                        : "`onError` prop";
-                  console.error(
-                    'React encountered a `<link rel="stylesheet" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
-                    propDescription,
-                    propDescription
-                  );
-                }
-              JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                target$jscomp$0,
-                props
-              );
-            } else {
-              var styleQueue = renderState.styles.get(precedence),
-                resourceState = resumableState.styleResources.hasOwnProperty(
-                  href
-                )
-                  ? resumableState.styleResources[href]
-                  : void 0;
-              if (resourceState !== EXISTS) {
-                resumableState.styleResources[href] = EXISTS;
-                styleQueue ||
-                  ((styleQueue = {
-                    precedence: escapeTextForBrowser(precedence),
-                    rules: [],
-                    hrefs: [],
-                    sheets: new Map()
-                  }),
-                  renderState.styles.set(precedence, styleQueue));
-                var resource = {
-                  state: PENDING$1,
-                  props: assign({}, props, {
-                    "data-precedence": props.precedence,
-                    precedence: null
-                  })
-                };
-                if (resourceState) {
-                  2 === resourceState.length &&
-                    adoptPreloadCredentials(resource.props, resourceState);
-                  var preloadResource =
-                    renderState.preloads.stylesheets.get(href);
-                  preloadResource && 0 < preloadResource.length
-                    ? (preloadResource.length = 0)
-                    : (resource.state = PRELOADED);
-                }
-                styleQueue.sheets.set(href, resource);
-                hoistableState && hoistableState.stylesheets.add(resource);
-              } else if (styleQueue) {
-                var _resource = styleQueue.sheets.get(href);
-                _resource &&
-                  hoistableState &&
-                  hoistableState.stylesheets.add(_resource);
-              }
-              textEmbedded && target$jscomp$0.push(textSeparator);
-              JSCompiler_inline_result$jscomp$5 = null;
-            }
-          else
-            props.onLoad || props.onError
-              ? (JSCompiler_inline_result$jscomp$5 = pushLinkImpl(
-                  target$jscomp$0,
-                  props
-                ))
-              : (textEmbedded && target$jscomp$0.push(textSeparator),
-                (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
-                  ? null
-                  : pushLinkImpl(renderState.hoistableChunks, props)));
-          return JSCompiler_inline_result$jscomp$5;
-        case "script":
-          var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-            asyncProp = props.async;
-          if (
-            "string" !== typeof props.src ||
-            !props.src ||
-            !asyncProp ||
-            "function" === typeof asyncProp ||
-            "symbol" === typeof asyncProp ||
-            props.onLoad ||
-            props.onError ||
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$1 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
-              target$jscomp$0,
-              props
-            );
-          else {
-            var key = props.src;
-            if ("module" === props.type) {
-              var resources = resumableState.moduleScriptResources;
-              var preloads = renderState.preloads.moduleScripts;
-            } else
-              (resources = resumableState.scriptResources),
-                (preloads = renderState.preloads.scripts);
-            var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-              ? resources[key]
-              : void 0;
-            if (resourceState$jscomp$0 !== EXISTS) {
-              resources[key] = EXISTS;
-              var scriptProps = props;
-              if (resourceState$jscomp$0) {
-                2 === resourceState$jscomp$0.length &&
-                  ((scriptProps = assign({}, props)),
-                  adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-                var preloadResource$jscomp$0 = preloads.get(key);
-                preloadResource$jscomp$0 &&
-                  (preloadResource$jscomp$0.length = 0);
-              }
-              var resource$jscomp$0 = [];
-              renderState.scripts.add(resource$jscomp$0);
-              pushScriptImpl(resource$jscomp$0, scriptProps);
-            }
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$6 = null;
-          }
-          return JSCompiler_inline_result$jscomp$6;
-        case "style":
-          var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
-          if (hasOwnProperty.call(props, "children")) {
-            var children$jscomp$7 = props.children,
-              child$jscomp$0 = Array.isArray(children$jscomp$7)
-                ? 2 > children$jscomp$7.length
-                  ? children$jscomp$7[0]
-                  : null
-                : children$jscomp$7;
-            ("function" === typeof child$jscomp$0 ||
-              "symbol" === typeof child$jscomp$0 ||
-              Array.isArray(child$jscomp$0)) &&
-              console.error(
-                "React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.",
-                "function" === typeof child$jscomp$0
-                  ? "a Function"
-                  : "symbol" === typeof child$jscomp$0
-                    ? "a Sybmol"
-                    : "an Array"
-              );
-          }
-          var precedence$jscomp$0 = props.precedence,
-            href$jscomp$0 = props.href,
-            nonce = props.nonce;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$2 ||
-            null != props.itemProp ||
-            "string" !== typeof precedence$jscomp$0 ||
-            "string" !== typeof href$jscomp$0 ||
-            "" === href$jscomp$0
-          ) {
-            target$jscomp$0.push(startChunkForTag("style"));
-            var children$jscomp$8 = null,
-              innerHTML$jscomp$5 = null,
-              propKey$jscomp$8;
-            for (propKey$jscomp$8 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-                var propValue$jscomp$8 = props[propKey$jscomp$8];
-                if (null != propValue$jscomp$8)
-                  switch (propKey$jscomp$8) {
-                    case "children":
-                      children$jscomp$8 = propValue$jscomp$8;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$5 = propValue$jscomp$8;
-                      break;
-                    default:
-                      pushAttribute(
-                        target$jscomp$0,
-                        propKey$jscomp$8,
-                        propValue$jscomp$8
-                      );
-                  }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            var child$jscomp$1 = Array.isArray(children$jscomp$8)
-              ? 2 > children$jscomp$8.length
-                ? children$jscomp$8[0]
-                : null
-              : children$jscomp$8;
-            "function" !== typeof child$jscomp$1 &&
-              "symbol" !== typeof child$jscomp$1 &&
-              null !== child$jscomp$1 &&
-              void 0 !== child$jscomp$1 &&
-              target$jscomp$0.push(escapeStyleTextContent(child$jscomp$1));
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$5,
-              children$jscomp$8
-            );
-            target$jscomp$0.push(endChunkForTag("style"));
-            var JSCompiler_inline_result$jscomp$7 = null;
-          } else {
-            href$jscomp$0.includes(" ") &&
-              console.error(
-                'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is "%s".',
-                href$jscomp$0
-              );
-            var styleQueue$jscomp$0 =
-                renderState.styles.get(precedence$jscomp$0),
-              resourceState$jscomp$1 =
-                resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-                  ? resumableState.styleResources[href$jscomp$0]
-                  : void 0;
-            if (resourceState$jscomp$1 !== EXISTS) {
-              resumableState.styleResources[href$jscomp$0] = EXISTS;
-              resourceState$jscomp$1 &&
-                console.error(
-                  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
-                  href$jscomp$0
-                );
-              styleQueue$jscomp$0 ||
-                ((styleQueue$jscomp$0 = {
-                  precedence: escapeTextForBrowser(precedence$jscomp$0),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(
-                  precedence$jscomp$0,
-                  styleQueue$jscomp$0
-                ));
-              var nonceStyle = renderState.nonce.style;
-              if (nonceStyle && nonceStyle !== nonce)
-                console.error(
-                  'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
-                  precedence$jscomp$0,
-                  nonce,
-                  nonceStyle
-                );
-              else {
-                !nonceStyle &&
-                  nonce &&
-                  console.error(
-                    'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
-                    precedence$jscomp$0,
-                    nonce
-                  );
-                styleQueue$jscomp$0.hrefs.push(
-                  escapeTextForBrowser(href$jscomp$0)
-                );
-                var target = styleQueue$jscomp$0.rules,
-                  children$jscomp$9 = null,
-                  innerHTML$jscomp$6 = null,
-                  propKey$jscomp$9;
-                for (propKey$jscomp$9 in props)
-                  if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                    var propValue$jscomp$9 = props[propKey$jscomp$9];
-                    if (null != propValue$jscomp$9)
-                      switch (propKey$jscomp$9) {
-                        case "children":
-                          children$jscomp$9 = propValue$jscomp$9;
-                          break;
-                        case "dangerouslySetInnerHTML":
-                          innerHTML$jscomp$6 = propValue$jscomp$9;
-                      }
-                  }
-                var child$jscomp$2 = Array.isArray(children$jscomp$9)
-                  ? 2 > children$jscomp$9.length
-                    ? children$jscomp$9[0]
-                    : null
-                  : children$jscomp$9;
-                "function" !== typeof child$jscomp$2 &&
-                  "symbol" !== typeof child$jscomp$2 &&
-                  null !== child$jscomp$2 &&
-                  void 0 !== child$jscomp$2 &&
-                  target.push(escapeStyleTextContent(child$jscomp$2));
-                pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
-              }
-            }
-            styleQueue$jscomp$0 &&
-              hoistableState &&
-              hoistableState.styles.add(styleQueue$jscomp$0);
-            textEmbedded && target$jscomp$0.push(textSeparator);
-            JSCompiler_inline_result$jscomp$7 = void 0;
-          }
-          return JSCompiler_inline_result$jscomp$7;
-        case "meta":
-          var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-            isFallback$jscomp$1 = formatContext.tagScope & 4;
-          if (
-            formatContext.insertionMode === SVG_MODE ||
-            noscriptTagInScope$jscomp$3 ||
-            null != props.itemProp
-          )
-            var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
-              target$jscomp$0,
-              props,
-              "meta"
-            );
-          else
-            textEmbedded && target$jscomp$0.push(textSeparator),
-              (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
-                ? null
-                : "string" === typeof props.charSet
-                  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-                  : "viewport" === props.name
-                    ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                    : pushSelfClosing(
-                        renderState.hoistableChunks,
-                        props,
-                        "meta"
-                      ));
-          return JSCompiler_inline_result$jscomp$8;
-        case "listing":
-        case "pre":
-          target$jscomp$0.push(startChunkForTag(type));
-          var children$jscomp$10 = null,
-            innerHTML$jscomp$7 = null,
-            propKey$jscomp$10;
-          for (propKey$jscomp$10 in props)
-            if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-              var propValue$jscomp$10 = props[propKey$jscomp$10];
-              if (null != propValue$jscomp$10)
-                switch (propKey$jscomp$10) {
-                  case "children":
-                    children$jscomp$10 = propValue$jscomp$10;
-                    break;
-                  case "dangerouslySetInnerHTML":
-                    innerHTML$jscomp$7 = propValue$jscomp$10;
-                    break;
-                  default:
-                    pushAttribute(
-                      target$jscomp$0,
-                      propKey$jscomp$10,
-                      propValue$jscomp$10
-                    );
-                }
-            }
-          target$jscomp$0.push(endOfStartTag);
-          if (null != innerHTML$jscomp$7) {
-            if (null != children$jscomp$10)
-              throw Error(
-                "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-              );
-            if (
-              "object" !== typeof innerHTML$jscomp$7 ||
-              !("__html" in innerHTML$jscomp$7)
-            )
-              throw Error(
-                "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-              );
-            var html = innerHTML$jscomp$7.__html;
-            null !== html &&
-              void 0 !== html &&
-              ("string" === typeof html && 0 < html.length && "\n" === html[0]
-                ? target$jscomp$0.push(leadingNewline, html)
-                : (checkHtmlStringCoercion(html),
-                  target$jscomp$0.push("" + html)));
-          }
-          "string" === typeof children$jscomp$10 &&
-            "\n" === children$jscomp$10[0] &&
-            target$jscomp$0.push(leadingNewline);
-          return children$jscomp$10;
-        case "img":
-          var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-            src = props.src,
-            srcSet = props.srcSet;
-          if (
-            !(
-              "lazy" === props.loading ||
-              (!src && !srcSet) ||
-              ("string" !== typeof src && null != src) ||
-              ("string" !== typeof srcSet && null != srcSet) ||
-              "low" === props.fetchPriority ||
-              pictureOrNoScriptTagInScope
-            ) &&
-            ("string" !== typeof src ||
-              ":" !== src[4] ||
-              ("d" !== src[0] && "D" !== src[0]) ||
-              ("a" !== src[1] && "A" !== src[1]) ||
-              ("t" !== src[2] && "T" !== src[2]) ||
-              ("a" !== src[3] && "A" !== src[3])) &&
-            ("string" !== typeof srcSet ||
-              ":" !== srcSet[4] ||
-              ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-              ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-              ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-              ("a" !== srcSet[3] && "A" !== srcSet[3]))
-          ) {
-            null !== hoistableState &&
-              formatContext.tagScope & 64 &&
-              (hoistableState.suspenseyImages = !0);
-            var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-              key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-              promotablePreloads = renderState.preloads.images,
-              resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-            if (resource$jscomp$1) {
-              if (
-                "high" === props.fetchPriority ||
-                10 > renderState.highImagePreloads.size
-              )
-                promotablePreloads.delete(key$jscomp$0),
-                  renderState.highImagePreloads.add(resource$jscomp$1);
-            } else if (
-              !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-            ) {
-              resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-              var input = props.crossOrigin;
-              var crossOrigin =
-                "string" === typeof input
-                  ? "use-credentials" === input
-                    ? input
-                    : ""
-                  : void 0;
-              var headers = renderState.headers,
-                header;
-              headers &&
-              0 < headers.remainingCapacity &&
-              "string" !== typeof props.srcSet &&
-              ("high" === props.fetchPriority ||
-                500 > headers.highImagePreloads.length) &&
-              ((header = getPreloadAsHeader(src, "image", {
-                imageSrcSet: props.srcSet,
-                imageSizes: props.sizes,
-                crossOrigin: crossOrigin,
-                integrity: props.integrity,
-                nonce: props.nonce,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.refererPolicy
-              })),
-              0 <= (headers.remainingCapacity -= header.length + 2))
-                ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-                  headers.highImagePreloads &&
-                    (headers.highImagePreloads += ", "),
-                  (headers.highImagePreloads += header))
-                : ((resource$jscomp$1 = []),
-                  pushLinkImpl(resource$jscomp$1, {
-                    rel: "preload",
-                    as: "image",
-                    href: srcSet ? void 0 : src,
-                    imageSrcSet: srcSet,
-                    imageSizes: sizes,
-                    crossOrigin: crossOrigin,
-                    integrity: props.integrity,
-                    type: props.type,
-                    fetchPriority: props.fetchPriority,
-                    referrerPolicy: props.referrerPolicy
-                  }),
-                  "high" === props.fetchPriority ||
-                  10 > renderState.highImagePreloads.size
-                    ? renderState.highImagePreloads.add(resource$jscomp$1)
-                    : (renderState.bulkPreloads.add(resource$jscomp$1),
-                      promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-            }
-          }
-          return pushSelfClosing(target$jscomp$0, props, "img");
-        case "base":
-        case "area":
-        case "br":
-        case "col":
-        case "embed":
-        case "hr":
-        case "keygen":
-        case "param":
-        case "source":
-        case "track":
-        case "wbr":
-          return pushSelfClosing(target$jscomp$0, props, type);
-        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":
-          break;
-        case "head":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble = preambleState || renderState.preamble;
-            if (preamble.headChunks)
-              throw Error("The `<head>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(headPreambleContributionChunk);
-            preamble.headChunks = [];
-            var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-              preamble.headChunks,
-              props,
-              "head"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "head"
-            );
-          return JSCompiler_inline_result$jscomp$9;
-        case "body":
-          if (formatContext.insertionMode < HTML_MODE) {
-            var preamble$jscomp$0 = preambleState || renderState.preamble;
-            if (preamble$jscomp$0.bodyChunks)
-              throw Error("The `<body>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(bodyPreambleContributionChunk);
-            preamble$jscomp$0.bodyChunks = [];
-            var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-              preamble$jscomp$0.bodyChunks,
-              props,
-              "body"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "body"
-            );
-          return JSCompiler_inline_result$jscomp$10;
-        case "html":
-          if (formatContext.insertionMode === ROOT_HTML_MODE) {
-            var preamble$jscomp$1 = preambleState || renderState.preamble;
-            if (preamble$jscomp$1.htmlChunks)
-              throw Error("The `<html>` tag may only be rendered once.");
-            null !== preambleState &&
-              target$jscomp$0.push(htmlPreambleContributionChunk);
-            preamble$jscomp$1.htmlChunks = [doctypeChunk];
-            var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-              preamble$jscomp$1.htmlChunks,
-              props,
-              "html"
-            );
-          } else
-            JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-              target$jscomp$0,
-              props,
-              "html"
-            );
-          return JSCompiler_inline_result$jscomp$11;
-        default:
-          if (-1 !== type.indexOf("-")) {
-            target$jscomp$0.push(startChunkForTag(type));
-            var children$jscomp$11 = null,
-              innerHTML$jscomp$8 = null,
-              propKey$jscomp$11;
-            for (propKey$jscomp$11 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-                var propValue$jscomp$11 = props[propKey$jscomp$11];
-                if (null != propValue$jscomp$11) {
-                  var attributeName = propKey$jscomp$11;
-                  switch (propKey$jscomp$11) {
-                    case "children":
-                      children$jscomp$11 = propValue$jscomp$11;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$8 = propValue$jscomp$11;
-                      break;
-                    case "style":
-                      pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                      break;
-                    case "suppressContentEditableWarning":
-                    case "suppressHydrationWarning":
-                    case "ref":
-                      break;
-                    case "className":
-                      attributeName = "class";
-                    default:
-                      if (
-                        isAttributeNameSafe(propKey$jscomp$11) &&
-                        "function" !== typeof propValue$jscomp$11 &&
-                        "symbol" !== typeof propValue$jscomp$11 &&
-                        !1 !== propValue$jscomp$11
-                      ) {
-                        if (!0 === propValue$jscomp$11)
-                          propValue$jscomp$11 = "";
-                        else if ("object" === typeof propValue$jscomp$11)
-                          continue;
-                        target$jscomp$0.push(
-                          attributeSeparator,
-                          attributeName,
-                          attributeAssign,
-                          escapeTextForBrowser(propValue$jscomp$11),
-                          attributeEnd
-                        );
-                      }
-                  }
-                }
-              }
-            target$jscomp$0.push(endOfStartTag);
-            pushInnerHTML(
-              target$jscomp$0,
-              innerHTML$jscomp$8,
-              children$jscomp$11
-            );
-            return children$jscomp$11;
-          }
-      }
-      return pushStartGenericElement(target$jscomp$0, props, type);
-    }
-    function endChunkForTag(tag) {
-      var chunk = endTagCache.get(tag);
-      void 0 === chunk &&
-        ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-        endTagCache.set(tag, chunk));
-      return chunk;
-    }
-    function hoistPreambleState(renderState, preambleState) {
-      renderState = renderState.preamble;
-      null === renderState.htmlChunks &&
-        preambleState.htmlChunks &&
-        (renderState.htmlChunks = preambleState.htmlChunks);
-      null === renderState.headChunks &&
-        preambleState.headChunks &&
-        (renderState.headChunks = preambleState.headChunks);
-      null === renderState.bodyChunks &&
-        preambleState.bodyChunks &&
-        (renderState.bodyChunks = preambleState.bodyChunks);
-    }
-    function writeBootstrap(destination, renderState) {
-      renderState = renderState.bootstrapChunks;
-      for (var i = 0; i < renderState.length - 1; i++)
-        writeChunk(destination, renderState[i]);
-      return i < renderState.length
-        ? ((i = renderState[i]),
-          (renderState.length = 0),
-          writeChunkAndReturn(destination, i))
-        : !0;
-    }
-    function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-      writeChunk(destination, startPendingSuspenseBoundary1);
-      if (null === id)
-        throw Error(
-          "An ID must have been assigned before we can complete the boundary."
-        );
-      writeChunk(destination, renderState.boundaryPrefix);
-      writeChunk(destination, id.toString(16));
-      return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-    }
-    function writeStartSegment(destination, renderState, formatContext, id) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return (
-            writeChunk(destination, startSegmentHTML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentHTML2)
-          );
-        case SVG_MODE:
-          return (
-            writeChunk(destination, startSegmentSVG),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentSVG2)
-          );
-        case MATHML_MODE:
-          return (
-            writeChunk(destination, startSegmentMathML),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentMathML2)
-          );
-        case HTML_TABLE_MODE:
-          return (
-            writeChunk(destination, startSegmentTable),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentTable2)
-          );
-        case HTML_TABLE_BODY_MODE:
-          return (
-            writeChunk(destination, startSegmentTableBody),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentTableBody2)
-          );
-        case HTML_TABLE_ROW_MODE:
-          return (
-            writeChunk(destination, startSegmentTableRow),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentTableRow2)
-          );
-        case HTML_COLGROUP_MODE:
-          return (
-            writeChunk(destination, startSegmentColGroup),
-            writeChunk(destination, renderState.segmentPrefix),
-            writeChunk(destination, id.toString(16)),
-            writeChunkAndReturn(destination, startSegmentColGroup2)
-          );
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function writeEndSegment(destination, formatContext) {
-      switch (formatContext.insertionMode) {
-        case ROOT_HTML_MODE:
-        case HTML_HTML_MODE:
-        case HTML_HEAD_MODE:
-        case HTML_MODE:
-          return writeChunkAndReturn(destination, endSegmentHTML);
-        case SVG_MODE:
-          return writeChunkAndReturn(destination, endSegmentSVG);
-        case MATHML_MODE:
-          return writeChunkAndReturn(destination, endSegmentMathML);
-        case HTML_TABLE_MODE:
-          return writeChunkAndReturn(destination, endSegmentTable);
-        case HTML_TABLE_BODY_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableBody);
-        case HTML_TABLE_ROW_MODE:
-          return writeChunkAndReturn(destination, endSegmentTableRow);
-        case HTML_COLGROUP_MODE:
-          return writeChunkAndReturn(destination, endSegmentColGroup);
-        default:
-          throw Error("Unknown insertion mode. This is a bug in React.");
-      }
-    }
-    function escapeJSStringsForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInInstructionScripts,
-        function (match) {
-          switch (match) {
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function escapeJSObjectForInstructionScripts(input) {
-      return JSON.stringify(input).replace(
-        regexForJSStringsInScripts,
-        function (match) {
-          switch (match) {
-            case "&":
-              return "\\u0026";
-            case ">":
-              return "\\u003e";
-            case "<":
-              return "\\u003c";
-            case "\u2028":
-              return "\\u2028";
-            case "\u2029":
-              return "\\u2029";
-            default:
-              throw Error(
-                "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-              );
-          }
-        }
-      );
-    }
-    function flushStyleTagsLateForBoundary(styleQueue) {
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      0 < rules.length &&
-        0 === hrefs.length &&
-        console.error(
-          "React expected to have at least one href for an a hoistable style but found none. This is a bug in React."
-        );
-      var i = 0;
-      if (hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, lateStyleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        for (
-          writeChunk(this, lateStyleTagResourceOpen2);
-          i < hrefs.length - 1;
-          i++
-        )
-          writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-        writeChunk(this, hrefs[i]);
-        writeChunk(this, lateStyleTagResourceOpen3);
-        for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-        destinationHasCapacity = writeChunkAndReturn(
-          this,
-          lateStyleTagTemplateClose
-        );
-        currentlyRenderingBoundaryHasStylesToHoist = !0;
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function hasStylesToHoist(stylesheet) {
-      return stylesheet.state !== PREAMBLE
-        ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-        : !1;
-    }
-    function writeHoistablesForBoundary(
-      destination,
-      hoistableState,
-      renderState
-    ) {
-      currentlyRenderingBoundaryHasStylesToHoist = !1;
-      destinationHasCapacity = !0;
-      currentlyFlushingRenderState = renderState;
-      hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-      currentlyFlushingRenderState = null;
-      hoistableState.stylesheets.forEach(hasStylesToHoist);
-      currentlyRenderingBoundaryHasStylesToHoist &&
-        (renderState.stylesToHoist = !0);
-      return destinationHasCapacity;
-    }
-    function flushResource(resource) {
-      for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-      resource.length = 0;
-    }
-    function flushStyleInPreamble(stylesheet) {
-      pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-      for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-        writeChunk(this, stylesheetFlushingQueue[i]);
-      stylesheetFlushingQueue.length = 0;
-      stylesheet.state = PREAMBLE;
-    }
-    function flushStylesInPreamble(styleQueue) {
-      var hasStylesheets = 0 < styleQueue.sheets.size;
-      styleQueue.sheets.forEach(flushStyleInPreamble, this);
-      styleQueue.sheets.clear();
-      var rules = styleQueue.rules,
-        hrefs = styleQueue.hrefs;
-      if (!hasStylesheets || hrefs.length) {
-        writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-        writeChunk(this, styleTagResourceOpen1);
-        writeChunk(this, styleQueue.precedence);
-        styleQueue = 0;
-        if (hrefs.length) {
-          for (
-            writeChunk(this, styleTagResourceOpen2);
-            styleQueue < hrefs.length - 1;
-            styleQueue++
-          )
-            writeChunk(this, hrefs[styleQueue]),
-              writeChunk(this, spaceSeparator);
-          writeChunk(this, hrefs[styleQueue]);
-        }
-        writeChunk(this, styleTagResourceOpen3);
-        for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-          writeChunk(this, rules[styleQueue]);
-        writeChunk(this, styleTagResourceClose);
-        rules.length = 0;
-        hrefs.length = 0;
-      }
-    }
-    function preloadLateStyle(stylesheet) {
-      if (stylesheet.state === PENDING$1) {
-        stylesheet.state = PRELOADED;
-        var props = stylesheet.props;
-        pushLinkImpl(stylesheetFlushingQueue, {
-          rel: "preload",
-          as: "style",
-          href: stylesheet.props.href,
-          crossOrigin: props.crossOrigin,
-          fetchPriority: props.fetchPriority,
-          integrity: props.integrity,
-          media: props.media,
-          hrefLang: props.hrefLang,
-          referrerPolicy: props.referrerPolicy
-        });
-        for (
-          stylesheet = 0;
-          stylesheet < stylesheetFlushingQueue.length;
-          stylesheet++
-        )
-          writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-        stylesheetFlushingQueue.length = 0;
-      }
-    }
-    function preloadLateStyles(styleQueue) {
-      styleQueue.sheets.forEach(preloadLateStyle, this);
-      styleQueue.sheets.clear();
-    }
-    function pushCompletedShellIdAttribute(target, resumableState) {
-      (resumableState.instructions & SentCompletedShellId) === NothingSent &&
-        ((resumableState.instructions |= SentCompletedShellId),
-        target.push(
-          completedShellIdAttributeStart,
-          escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-          attributeEnd
-        ));
-    }
-    function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-      writeChunk(destination, arrayFirstOpenBracket);
-      var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-      hoistableState.stylesheets.forEach(function (resource) {
-        if (resource.state !== PREAMBLE)
-          if (resource.state === LATE)
-            writeChunk(destination, nextArrayOpenBrackChunk),
-              (resource = resource.props.href),
-              checkAttributeStringCoercion(resource, "href"),
-              writeChunk(
-                destination,
-                escapeJSObjectForInstructionScripts("" + resource)
-              ),
-              writeChunk(destination, arrayCloseBracket),
-              (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-          else {
-            writeChunk(destination, nextArrayOpenBrackChunk);
-            var precedence = resource.props["data-precedence"],
-              props = resource.props,
-              coercedHref = sanitizeURL("" + resource.props.href);
-            writeChunk(
-              destination,
-              escapeJSObjectForInstructionScripts(coercedHref)
-            );
-            checkAttributeStringCoercion(precedence, "precedence");
-            precedence = "" + precedence;
-            writeChunk(destination, arrayInterstitial);
-            writeChunk(
-              destination,
-              escapeJSObjectForInstructionScripts(precedence)
-            );
-            for (var propKey in props)
-              if (
-                hasOwnProperty.call(props, propKey) &&
-                ((precedence = props[propKey]), null != precedence)
-              )
-                switch (propKey) {
-                  case "href":
-                  case "rel":
-                  case "precedence":
-                  case "data-precedence":
-                    break;
-                  case "children":
-                  case "dangerouslySetInnerHTML":
-                    throw Error(
-                      "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                    );
-                  default:
-                    writeStyleResourceAttributeInJS(
-                      destination,
-                      propKey,
-                      precedence
-                    );
-                }
-            writeChunk(destination, arrayCloseBracket);
-            nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-            resource.state = LATE;
-          }
-      });
-      writeChunk(destination, arrayCloseBracket);
-    }
-    function writeStyleResourceAttributeInJS(destination, name, value) {
-      var attributeName = name.toLowerCase();
-      switch (typeof value) {
-        case "function":
-        case "symbol":
-          return;
-      }
-      switch (name) {
-        case "innerHTML":
-        case "dangerouslySetInnerHTML":
-        case "suppressContentEditableWarning":
-        case "suppressHydrationWarning":
-        case "style":
-        case "ref":
-          return;
-        case "className":
-          attributeName = "class";
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        case "hidden":
-          if (!1 === value) return;
-          name = "";
-          break;
-        case "src":
-        case "href":
-          value = sanitizeURL(value);
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-          break;
-        default:
-          if (
-            (2 < name.length &&
-              ("o" === name[0] || "O" === name[0]) &&
-              ("n" === name[1] || "N" === name[1])) ||
-            !isAttributeNameSafe(name)
-          )
-            return;
-          checkAttributeStringCoercion(value, attributeName);
-          name = "" + value;
-      }
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(
-        destination,
-        escapeJSObjectForInstructionScripts(attributeName)
-      );
-      writeChunk(destination, arrayInterstitial);
-      writeChunk(destination, escapeJSObjectForInstructionScripts(name));
-    }
-    function createHoistableState() {
-      return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-    }
-    function preloadBootstrapScriptOrModule(
-      resumableState,
-      renderState,
-      href,
-      props
-    ) {
-      (resumableState.scriptResources.hasOwnProperty(href) ||
-        resumableState.moduleScriptResources.hasOwnProperty(href)) &&
-        console.error(
-          'Internal React Error: React expected bootstrap script or module with src "%s" to not have been preloaded already. please file an issue',
-          href
-        );
-      resumableState.scriptResources[href] = EXISTS;
-      resumableState.moduleScriptResources[href] = EXISTS;
-      resumableState = [];
-      pushLinkImpl(resumableState, props);
-      renderState.bootstrapScripts.add(resumableState);
-    }
-    function adoptPreloadCredentials(target, preloadState) {
-      null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-      null == target.integrity && (target.integrity = preloadState[1]);
-    }
-    function getPreloadAsHeader(href, as, params) {
-      href = escapeHrefForLinkHeaderURLContext(href);
-      as = escapeStringForLinkHeaderQuotedParamValueContext(as, "as");
-      as = "<" + href + '>; rel=preload; as="' + as + '"';
-      for (var paramName in params)
-        hasOwnProperty.call(params, paramName) &&
-          ((href = params[paramName]),
-          "string" === typeof href &&
-            (as +=
-              "; " +
-              paramName.toLowerCase() +
-              '="' +
-              escapeStringForLinkHeaderQuotedParamValueContext(
-                href,
-                paramName
-              ) +
-              '"'));
-      return as;
-    }
-    function escapeHrefForLinkHeaderURLContext(hrefInput) {
-      checkAttributeStringCoercion(hrefInput, "href");
-      return ("" + hrefInput).replace(
-        regexForHrefInLinkHeaderURLContext,
-        escapeHrefForLinkHeaderURLContextReplacer
-      );
-    }
-    function escapeHrefForLinkHeaderURLContextReplacer(match) {
-      switch (match) {
-        case "<":
-          return "%3C";
-        case ">":
-          return "%3E";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {
-      willCoercionThrow(value) &&
-        (console.error(
-          "The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.",
-          name,
-          typeName(value)
-        ),
-        testStringCoercion(value));
-      return ("" + value).replace(
-        regexForLinkHeaderQuotedParamValueContext,
-        escapeStringForLinkHeaderQuotedParamValueContextReplacer
-      );
-    }
-    function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-      switch (match) {
-        case '"':
-          return "%22";
-        case "'":
-          return "%27";
-        case ";":
-          return "%3B";
-        case ",":
-          return "%2C";
-        case "\n":
-          return "%0A";
-        case "\r":
-          return "%0D";
-        default:
-          throw Error(
-            "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-    function hoistStyleQueueDependency(styleQueue) {
-      this.styles.add(styleQueue);
-    }
-    function hoistStylesheetDependency(stylesheet) {
-      this.stylesheets.add(stylesheet);
-    }
-    function hoistHoistables(parentState, childState) {
-      childState.styles.forEach(hoistStyleQueueDependency, parentState);
-      childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-      childState.suspenseyImages && (parentState.suspenseyImages = !0);
-    }
-    function hasSuspenseyContent(hoistableState) {
-      return (
-        0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages
-      );
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function popToNearestCommonAncestor(prev, next) {
-      if (prev !== next) {
-        prev.context._currentValue = prev.parentValue;
-        prev = prev.parent;
-        var parentNext = next.parent;
-        if (null === prev) {
-          if (null !== parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-        } else {
-          if (null === parentNext)
-            throw Error(
-              "The stacks must reach the root at the same time. This is a bug in React."
-            );
-          popToNearestCommonAncestor(prev, parentNext);
-        }
-        next.context._currentValue = next.value;
-      }
-    }
-    function popAllPrevious(prev) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      null !== prev && popAllPrevious(prev);
-    }
-    function pushAllNext(next) {
-      var parentNext = next.parent;
-      null !== parentNext && pushAllNext(parentNext);
-      next.context._currentValue = next.value;
-    }
-    function popPreviousToCommonLevel(prev, next) {
-      prev.context._currentValue = prev.parentValue;
-      prev = prev.parent;
-      if (null === prev)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === next.depth
-        ? popToNearestCommonAncestor(prev, next)
-        : popPreviousToCommonLevel(prev, next);
-    }
-    function popNextToCommonLevel(prev, next) {
-      var parentNext = next.parent;
-      if (null === parentNext)
-        throw Error(
-          "The depth must equal at least at zero before reaching the root. This is a bug in React."
-        );
-      prev.depth === parentNext.depth
-        ? popToNearestCommonAncestor(prev, parentNext)
-        : popNextToCommonLevel(prev, parentNext);
-      next.context._currentValue = next.value;
-    }
-    function switchContext(newSnapshot) {
-      var prev = currentActiveSnapshot;
-      prev !== newSnapshot &&
-        (null === prev
-          ? pushAllNext(newSnapshot)
-          : null === newSnapshot
-            ? popAllPrevious(prev)
-            : prev.depth === newSnapshot.depth
-              ? popToNearestCommonAncestor(prev, newSnapshot)
-              : prev.depth > newSnapshot.depth
-                ? popPreviousToCommonLevel(prev, newSnapshot)
-                : popNextToCommonLevel(prev, newSnapshot),
-        (currentActiveSnapshot = newSnapshot));
-    }
-    function warnOnInvalidCallback(callback) {
-      if (null !== callback && "function" !== typeof callback) {
-        var key = String(callback);
-        didWarnOnInvalidCallback.has(key) ||
-          (didWarnOnInvalidCallback.add(key),
-          console.error(
-            "Expected the last optional `callback` argument to be a function. Instead received: %s.",
-            callback
-          ));
-      }
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          getComponentNameFromType(publicInstance)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnAboutNoopUpdateForComponent[warningKey] ||
-        (console.error(
-          "Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\n\nPlease check the code for the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnAboutNoopUpdateForComponent[warningKey] = !0));
-    }
-    function pushTreeContext(baseContext, totalChildren, index) {
-      var baseIdWithLeadingBit = baseContext.id;
-      baseContext = baseContext.overflow;
-      var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-      baseIdWithLeadingBit &= ~(1 << baseLength);
-      index += 1;
-      var length = 32 - clz32(totalChildren) + baseLength;
-      if (30 < length) {
-        var numberOfOverflowBits = baseLength - (baseLength % 5);
-        length = (
-          baseIdWithLeadingBit &
-          ((1 << numberOfOverflowBits) - 1)
-        ).toString(32);
-        baseIdWithLeadingBit >>= numberOfOverflowBits;
-        baseLength -= numberOfOverflowBits;
-        return {
-          id:
-            (1 << (32 - clz32(totalChildren) + baseLength)) |
-            (index << baseLength) |
-            baseIdWithLeadingBit,
-          overflow: length + baseContext
-        };
-      }
-      return {
-        id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-        overflow: baseContext
-      };
-    }
-    function clz32Fallback(x) {
-      x >>>= 0;
-      return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-    }
-    function noop() {}
-    function trackUsedThenable(thenableState, thenable, index) {
-      index = thenableState[index];
-      void 0 === index
-        ? thenableState.push(thenable)
-        : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          "string" === typeof thenable.status
-            ? thenable.then(noop, noop)
-            : ((thenableState = thenable),
-              (thenableState.status = "pending"),
-              thenableState.then(
-                function (fulfilledValue) {
-                  if ("pending" === thenable.status) {
-                    var fulfilledThenable = thenable;
-                    fulfilledThenable.status = "fulfilled";
-                    fulfilledThenable.value = fulfilledValue;
-                  }
-                },
-                function (error) {
-                  if ("pending" === thenable.status) {
-                    var rejectedThenable = thenable;
-                    rejectedThenable.status = "rejected";
-                    rejectedThenable.reason = error;
-                  }
-                }
-              ));
-          switch (thenable.status) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-          suspendedThenable = thenable;
-          throw SuspenseException;
-      }
-    }
-    function getSuspendedThenable() {
-      if (null === suspendedThenable)
-        throw Error(
-          "Expected a suspended thenable. This is a bug in React. Please file an issue."
-        );
-      var thenable = suspendedThenable;
-      suspendedThenable = null;
-      return thenable;
-    }
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function resolveCurrentlyRenderingComponent() {
-      if (null === currentlyRenderingComponent)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      isInHookUserCodeInDev &&
-        console.error(
-          "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks"
-        );
-      return currentlyRenderingComponent;
-    }
-    function createHook() {
-      if (0 < numberOfReRenders)
-        throw Error("Rendered more hooks than during the previous render");
-      return { memoizedState: null, queue: null, next: null };
-    }
-    function createWorkInProgressHook() {
-      null === workInProgressHook
-        ? null === firstWorkInProgressHook
-          ? ((isReRender = !1),
-            (firstWorkInProgressHook = workInProgressHook = createHook()))
-          : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-        : null === workInProgressHook.next
-          ? ((isReRender = !1),
-            (workInProgressHook = workInProgressHook.next = createHook()))
-          : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-      return workInProgressHook;
-    }
-    function getThenableStateAfterSuspending() {
-      var state = thenableState;
-      thenableState = null;
-      return state;
-    }
-    function resetHooksState() {
-      isInHookUserCodeInDev = !1;
-      currentlyRenderingKeyPath =
-        currentlyRenderingRequest =
-        currentlyRenderingTask =
-        currentlyRenderingComponent =
-          null;
-      didScheduleRenderPhaseUpdate = !1;
-      firstWorkInProgressHook = null;
-      numberOfReRenders = 0;
-      workInProgressHook = renderPhaseUpdates = null;
-    }
-    function readContext(context) {
-      isInHookUserCodeInDev &&
-        console.error(
-          "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."
-        );
-      return context._currentValue;
-    }
-    function basicStateReducer(state, action) {
-      return "function" === typeof action ? action(state) : action;
-    }
-    function useReducer(reducer, initialArg, init) {
-      reducer !== basicStateReducer && (currentHookNameInDev = "useReducer");
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      if (isReRender) {
-        init = workInProgressHook.queue;
-        initialArg = init.dispatch;
-        if (null !== renderPhaseUpdates) {
-          var firstRenderPhaseUpdate = renderPhaseUpdates.get(init);
-          if (void 0 !== firstRenderPhaseUpdate) {
-            renderPhaseUpdates.delete(init);
-            init = workInProgressHook.memoizedState;
-            do {
-              var action = firstRenderPhaseUpdate.action;
-              isInHookUserCodeInDev = !0;
-              init = reducer(init, action);
-              isInHookUserCodeInDev = !1;
-              firstRenderPhaseUpdate = firstRenderPhaseUpdate.next;
-            } while (null !== firstRenderPhaseUpdate);
-            workInProgressHook.memoizedState = init;
-            return [init, initialArg];
-          }
-        }
-        return [workInProgressHook.memoizedState, initialArg];
-      }
-      isInHookUserCodeInDev = !0;
-      reducer =
-        reducer === basicStateReducer
-          ? "function" === typeof initialArg
-            ? initialArg()
-            : initialArg
-          : void 0 !== init
-            ? init(initialArg)
-            : initialArg;
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = reducer;
-      reducer = workInProgressHook.queue = { last: null, dispatch: null };
-      reducer = reducer.dispatch = dispatchAction.bind(
-        null,
-        currentlyRenderingComponent,
-        reducer
-      );
-      return [workInProgressHook.memoizedState, reducer];
-    }
-    function useMemo(nextCreate, deps) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      deps = void 0 === deps ? null : deps;
-      if (null !== workInProgressHook) {
-        var prevState = workInProgressHook.memoizedState;
-        if (null !== prevState && null !== deps) {
-          a: {
-            var JSCompiler_inline_result = prevState[1];
-            if (null === JSCompiler_inline_result)
-              console.error(
-                "%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",
-                currentHookNameInDev
-              ),
-                (JSCompiler_inline_result = !1);
-            else {
-              deps.length !== JSCompiler_inline_result.length &&
-                console.error(
-                  "The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s",
-                  currentHookNameInDev,
-                  "[" + deps.join(", ") + "]",
-                  "[" + JSCompiler_inline_result.join(", ") + "]"
-                );
-              for (
-                var i = 0;
-                i < JSCompiler_inline_result.length && i < deps.length;
-                i++
-              )
-                if (!objectIs(deps[i], JSCompiler_inline_result[i])) {
-                  JSCompiler_inline_result = !1;
-                  break a;
-                }
-              JSCompiler_inline_result = !0;
-            }
-          }
-          if (JSCompiler_inline_result) return prevState[0];
-        }
-      }
-      isInHookUserCodeInDev = !0;
-      nextCreate = nextCreate();
-      isInHookUserCodeInDev = !1;
-      workInProgressHook.memoizedState = [nextCreate, deps];
-      return nextCreate;
-    }
-    function dispatchAction(componentIdentity, queue, action) {
-      if (25 <= numberOfReRenders)
-        throw Error(
-          "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-        );
-      if (componentIdentity === currentlyRenderingComponent)
-        if (
-          ((didScheduleRenderPhaseUpdate = !0),
-          (componentIdentity = { action: action, next: null }),
-          null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-          (action = renderPhaseUpdates.get(queue)),
-          void 0 === action)
-        )
-          renderPhaseUpdates.set(queue, componentIdentity);
-        else {
-          for (queue = action; null !== queue.next; ) queue = queue.next;
-          queue.next = componentIdentity;
-        }
-    }
-    function throwOnUseEffectEventCall() {
-      throw Error(
-        "A function wrapped in useEffectEvent can't be called during rendering."
-      );
-    }
-    function unsupportedStartTransition() {
-      throw Error("startTransition cannot be called during server rendering.");
-    }
-    function unsupportedSetOptimisticState() {
-      throw Error("Cannot update optimistic state while rendering.");
-    }
-    function createPostbackActionStateKey(
-      permalink,
-      componentKeyPath,
-      hookIndex
-    ) {
-      if (void 0 !== permalink) return "p" + permalink;
-      permalink = JSON.stringify([componentKeyPath, null, hookIndex]);
-      componentKeyPath = crypto.createHash("md5");
-      componentKeyPath.update(permalink);
-      return "k" + componentKeyPath.digest("hex");
-    }
-    function useActionState(action, initialState, permalink) {
-      resolveCurrentlyRenderingComponent();
-      var actionStateHookIndex = actionStateCounter++,
-        request = currentlyRenderingRequest;
-      if ("function" === typeof action.$$FORM_ACTION) {
-        var nextPostbackStateKey = null,
-          componentKeyPath = currentlyRenderingKeyPath;
-        request = request.formState;
-        var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-        if (null !== request && "function" === typeof isSignatureEqual) {
-          var postbackKey = request[1];
-          isSignatureEqual.call(action, request[2], request[3]) &&
-            ((nextPostbackStateKey = createPostbackActionStateKey(
-              permalink,
-              componentKeyPath,
-              actionStateHookIndex
-            )),
-            postbackKey === nextPostbackStateKey &&
-              ((actionStateMatchingIndex = actionStateHookIndex),
-              (initialState = request[0])));
-        }
-        var boundAction = action.bind(null, initialState);
-        action = function (payload) {
-          boundAction(payload);
-        };
-        "function" === typeof boundAction.$$FORM_ACTION &&
-          (action.$$FORM_ACTION = function (prefix) {
-            prefix = boundAction.$$FORM_ACTION(prefix);
-            void 0 !== permalink &&
-              (checkAttributeStringCoercion(permalink, "target"),
-              (permalink += ""),
-              (prefix.action = permalink));
-            var formData = prefix.data;
-            formData &&
-              (null === nextPostbackStateKey &&
-                (nextPostbackStateKey = createPostbackActionStateKey(
-                  permalink,
-                  componentKeyPath,
-                  actionStateHookIndex
-                )),
-              formData.append("$ACTION_KEY", nextPostbackStateKey));
-            return prefix;
-          });
-        return [initialState, action, !1];
-      }
-      var _boundAction = action.bind(null, initialState);
-      return [
-        initialState,
-        function (payload) {
-          _boundAction(payload);
-        },
-        !1
-      ];
-    }
-    function unwrapThenable(thenable) {
-      var index = thenableIndexCounter;
-      thenableIndexCounter += 1;
-      null === thenableState && (thenableState = []);
-      return trackUsedThenable(thenableState, thenable, index);
-    }
-    function unsupportedRefresh() {
-      throw Error("Cache cannot be refreshed during server rendering.");
-    }
-    function disabledLog() {}
-    function disableLogs() {
-      if (0 === disabledDepth) {
-        prevLog = console.log;
-        prevInfo = console.info;
-        prevWarn = console.warn;
-        prevError = console.error;
-        prevGroup = console.group;
-        prevGroupCollapsed = console.groupCollapsed;
-        prevGroupEnd = console.groupEnd;
-        var props = {
-          configurable: !0,
-          enumerable: !0,
-          value: disabledLog,
-          writable: !0
-        };
-        Object.defineProperties(console, {
-          info: props,
-          log: props,
-          warn: props,
-          error: props,
-          group: props,
-          groupCollapsed: props,
-          groupEnd: props
-        });
-      }
-      disabledDepth++;
-    }
-    function reenableLogs() {
-      disabledDepth--;
-      if (0 === disabledDepth) {
-        var props = { configurable: !0, enumerable: !0, writable: !0 };
-        Object.defineProperties(console, {
-          log: assign({}, props, { value: prevLog }),
-          info: assign({}, props, { value: prevInfo }),
-          warn: assign({}, props, { value: prevWarn }),
-          error: assign({}, props, { value: prevError }),
-          group: assign({}, props, { value: prevGroup }),
-          groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
-          groupEnd: assign({}, props, { value: prevGroupEnd })
-        });
-      }
-      0 > disabledDepth &&
-        console.error(
-          "disabledDepth fell below zero. This is a bug in React. Please file an issue."
-        );
-    }
-    function prepareStackTrace(error, structuredStackTrace) {
-      error = (error.name || "Error") + ": " + (error.message || "");
-      for (var i = 0; i < structuredStackTrace.length; i++)
-        error += "\n    at " + structuredStackTrace[i].toString();
-      return error;
-    }
-    function formatOwnerStack(error) {
-      var prevPrepareStackTrace = Error.prepareStackTrace;
-      Error.prepareStackTrace = prepareStackTrace;
-      error = error.stack;
-      Error.prepareStackTrace = prevPrepareStackTrace;
-      error.startsWith("Error: react-stack-top-frame\n") &&
-        (error = error.slice(29));
-      prevPrepareStackTrace = error.indexOf("\n");
-      -1 !== prevPrepareStackTrace &&
-        (error = error.slice(prevPrepareStackTrace + 1));
-      prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
-      -1 !== prevPrepareStackTrace &&
-        (prevPrepareStackTrace = error.lastIndexOf(
-          "\n",
-          prevPrepareStackTrace
-        ));
-      if (-1 !== prevPrepareStackTrace)
-        error = error.slice(0, prevPrepareStackTrace);
-      else return "";
-      return error;
-    }
-    function describeBuiltInComponentFrame(name) {
-      if (void 0 === prefix)
-        try {
-          throw Error();
-        } catch (x) {
-          var match = x.stack.trim().match(/\n( *(at )?)/);
-          prefix = (match && match[1]) || "";
-          suffix =
-            -1 < x.stack.indexOf("\n    at")
-              ? " (<anonymous>)"
-              : -1 < x.stack.indexOf("@")
-                ? "@unknown:0:0"
-                : "";
-        }
-      return "\n" + prefix + name + suffix;
-    }
-    function describeNativeComponentFrame(fn, construct) {
-      if (!fn || reentry) return "";
-      var frame = componentFrameCache.get(fn);
-      if (void 0 !== frame) return frame;
-      reentry = !0;
-      frame = Error.prepareStackTrace;
-      Error.prepareStackTrace = prepareStackTrace;
-      var previousDispatcher = null;
-      previousDispatcher = ReactSharedInternals.H;
-      ReactSharedInternals.H = null;
-      disableLogs();
-      try {
-        var RunInRootFrame = {
-          DetermineComponentFrameRoot: function () {
-            try {
-              if (construct) {
-                var Fake = function () {
-                  throw Error();
-                };
-                Object.defineProperty(Fake.prototype, "props", {
-                  set: function () {
-                    throw Error();
-                  }
-                });
-                if ("object" === typeof Reflect && Reflect.construct) {
-                  try {
-                    Reflect.construct(Fake, []);
-                  } catch (x) {
-                    var control = x;
-                  }
-                  Reflect.construct(fn, [], Fake);
-                } else {
-                  try {
-                    Fake.call();
-                  } catch (x$0) {
-                    control = x$0;
-                  }
-                  fn.call(Fake.prototype);
-                }
-              } else {
-                try {
-                  throw Error();
-                } catch (x$1) {
-                  control = x$1;
-                }
-                (Fake = fn()) &&
-                  "function" === typeof Fake.catch &&
-                  Fake.catch(function () {});
-              }
-            } catch (sample) {
-              if (sample && control && "string" === typeof sample.stack)
-                return [sample.stack, control.stack];
-            }
-            return [null, null];
-          }
-        };
-        RunInRootFrame.DetermineComponentFrameRoot.displayName =
-          "DetermineComponentFrameRoot";
-        var namePropDescriptor = Object.getOwnPropertyDescriptor(
-          RunInRootFrame.DetermineComponentFrameRoot,
-          "name"
-        );
-        namePropDescriptor &&
-          namePropDescriptor.configurable &&
-          Object.defineProperty(
-            RunInRootFrame.DetermineComponentFrameRoot,
-            "name",
-            { value: "DetermineComponentFrameRoot" }
-          );
-        var _RunInRootFrame$Deter =
-            RunInRootFrame.DetermineComponentFrameRoot(),
-          sampleStack = _RunInRootFrame$Deter[0],
-          controlStack = _RunInRootFrame$Deter[1];
-        if (sampleStack && controlStack) {
-          var sampleLines = sampleStack.split("\n"),
-            controlLines = controlStack.split("\n");
-          for (
-            _RunInRootFrame$Deter = namePropDescriptor = 0;
-            namePropDescriptor < sampleLines.length &&
-            !sampleLines[namePropDescriptor].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            namePropDescriptor++;
-          for (
-            ;
-            _RunInRootFrame$Deter < controlLines.length &&
-            !controlLines[_RunInRootFrame$Deter].includes(
-              "DetermineComponentFrameRoot"
-            );
-
-          )
-            _RunInRootFrame$Deter++;
-          if (
-            namePropDescriptor === sampleLines.length ||
-            _RunInRootFrame$Deter === controlLines.length
-          )
-            for (
-              namePropDescriptor = sampleLines.length - 1,
-                _RunInRootFrame$Deter = controlLines.length - 1;
-              1 <= namePropDescriptor &&
-              0 <= _RunInRootFrame$Deter &&
-              sampleLines[namePropDescriptor] !==
-                controlLines[_RunInRootFrame$Deter];
-
-            )
-              _RunInRootFrame$Deter--;
-          for (
-            ;
-            1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
-            namePropDescriptor--, _RunInRootFrame$Deter--
-          )
-            if (
-              sampleLines[namePropDescriptor] !==
-              controlLines[_RunInRootFrame$Deter]
-            ) {
-              if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
-                do
-                  if (
-                    (namePropDescriptor--,
-                    _RunInRootFrame$Deter--,
-                    0 > _RunInRootFrame$Deter ||
-                      sampleLines[namePropDescriptor] !==
-                        controlLines[_RunInRootFrame$Deter])
-                  ) {
-                    var _frame =
-                      "\n" +
-                      sampleLines[namePropDescriptor].replace(
-                        " at new ",
-                        " at "
-                      );
-                    fn.displayName &&
-                      _frame.includes("<anonymous>") &&
-                      (_frame = _frame.replace("<anonymous>", fn.displayName));
-                    "function" === typeof fn &&
-                      componentFrameCache.set(fn, _frame);
-                    return _frame;
-                  }
-                while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);
-              }
-              break;
-            }
-        }
-      } finally {
-        (reentry = !1),
-          (ReactSharedInternals.H = previousDispatcher),
-          reenableLogs(),
-          (Error.prepareStackTrace = frame);
-      }
-      sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "")
-        ? describeBuiltInComponentFrame(sampleLines)
-        : "";
-      "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
-      return sampleLines;
-    }
-    function describeComponentStackByType(type) {
-      if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-      if ("function" === typeof type)
-        return type.prototype && type.prototype.isReactComponent
-          ? describeNativeComponentFrame(type, !0)
-          : describeNativeComponentFrame(type, !1);
-      if ("object" === typeof type && null !== type) {
-        switch (type.$$typeof) {
-          case REACT_FORWARD_REF_TYPE:
-            return describeNativeComponentFrame(type.render, !1);
-          case REACT_MEMO_TYPE:
-            return describeNativeComponentFrame(type.type, !1);
-          case REACT_LAZY_TYPE:
-            var lazyComponent = type,
-              payload = lazyComponent._payload;
-            lazyComponent = lazyComponent._init;
-            try {
-              type = lazyComponent(payload);
-            } catch (x) {
-              return describeBuiltInComponentFrame("Lazy");
-            }
-            return describeComponentStackByType(type);
-        }
-        if ("string" === typeof type.name) {
-          a: {
-            payload = type.name;
-            lazyComponent = type.env;
-            type = type.debugLocation;
-            if (null != type) {
-              type = formatOwnerStack(type);
-              var idx = type.lastIndexOf("\n");
-              type = -1 === idx ? type : type.slice(idx + 1);
-              if (-1 !== type.indexOf(payload)) {
-                payload = "\n" + type;
-                break a;
-              }
-            }
-            payload = describeBuiltInComponentFrame(
-              payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-            );
-          }
-          return payload;
-        }
-      }
-      switch (type) {
-        case REACT_SUSPENSE_LIST_TYPE:
-          return describeBuiltInComponentFrame("SuspenseList");
-        case REACT_SUSPENSE_TYPE:
-          return describeBuiltInComponentFrame("Suspense");
-      }
-      return "";
-    }
-    function resetOwnerStackLimit() {
-      var now = getCurrentTime();
-      1e3 < now - lastResetTime &&
-        ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
-        (lastResetTime = now));
-    }
-    function isEligibleForOutlining(request, boundary) {
-      return (
-        (500 < boundary.byteSize ||
-          hasSuspenseyContent(boundary.contentState)) &&
-        null === boundary.contentPreamble
-      );
-    }
-    function defaultErrorHandler(error) {
-      if (
-        "object" === typeof error &&
-        null !== error &&
-        "string" === typeof error.environmentName
-      ) {
-        var JSCompiler_inline_result = error.environmentName;
-        error = [error].slice(0);
-        "string" === typeof error[0]
-          ? error.splice(
-              0,
-              1,
-              "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0],
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            )
-          : error.splice(
-              0,
-              0,
-              "\u001b[0m\u001b[7m%c%s\u001b[0m%c",
-              "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-              " " + JSCompiler_inline_result + " ",
-              ""
-            );
-        error.unshift(console);
-        JSCompiler_inline_result = bind.apply(console.error, error);
-        JSCompiler_inline_result();
-      } else console.error(error);
-      return null;
-    }
-    function RequestInstance(
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      var abortSet = new Set();
-      this.destination = null;
-      this.flushScheduled = !1;
-      this.resumableState = resumableState;
-      this.renderState = renderState;
-      this.rootFormatContext = rootFormatContext;
-      this.progressiveChunkSize =
-        void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-      this.status = 10;
-      this.fatalError = null;
-      this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-      this.completedPreambleSegments = this.completedRootSegment = null;
-      this.byteSize = 0;
-      this.abortableTasks = abortSet;
-      this.pingedTasks = [];
-      this.clientRenderedBoundaries = [];
-      this.completedBoundaries = [];
-      this.partialBoundaries = [];
-      this.trackedPostpones = null;
-      this.onError = void 0 === onError ? defaultErrorHandler : onError;
-      this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-      this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-      this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-      this.onShellError = void 0 === onShellError ? noop : onShellError;
-      this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-      this.formState = void 0 === formState ? null : formState;
-      this.didWarnForKey = null;
-    }
-    function createRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone,
-      formState
-    ) {
-      resetOwnerStackLimit();
-      resumableState = new RequestInstance(
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        formState
-      );
-      renderState = createPendingSegment(
-        resumableState,
-        0,
-        null,
-        rootFormatContext,
-        !1,
-        !1
-      );
-      renderState.parentFlushed = !0;
-      children = createRenderTask(
-        resumableState,
-        null,
-        children,
-        -1,
-        null,
-        renderState,
-        null,
-        null,
-        resumableState.abortableTasks,
-        null,
-        rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      resumableState.pingedTasks.push(children);
-      return resumableState;
-    }
-    function createPrerenderRequest(
-      children,
-      resumableState,
-      renderState,
-      rootFormatContext,
-      progressiveChunkSize,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = createRequest(
-        children,
-        resumableState,
-        renderState,
-        rootFormatContext,
-        progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        void 0
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function resumeRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      resetOwnerStackLimit();
-      renderState = new RequestInstance(
-        postponedState.resumableState,
-        renderState,
-        postponedState.rootFormatContext,
-        postponedState.progressiveChunkSize,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone,
-        null
-      );
-      renderState.nextSegmentId = postponedState.nextSegmentId;
-      if ("number" === typeof postponedState.replaySlots)
-        return (
-          (onError = createPendingSegment(
-            renderState,
-            0,
-            null,
-            postponedState.rootFormatContext,
-            !1,
-            !1
-          )),
-          (onError.parentFlushed = !0),
-          (children = createRenderTask(
-            renderState,
-            null,
-            children,
-            -1,
-            null,
-            onError,
-            null,
-            null,
-            renderState.abortableTasks,
-            null,
-            postponedState.rootFormatContext,
-            null,
-            emptyTreeContext,
-            null,
-            null,
-            emptyContextObject,
-            null
-          )),
-          pushComponentStack(children),
-          renderState.pingedTasks.push(children),
-          renderState
-        );
-      children = createReplayTask(
-        renderState,
-        null,
-        {
-          nodes: postponedState.replayNodes,
-          slots: postponedState.replaySlots,
-          pendingTasks: 0
-        },
-        children,
-        -1,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null,
-        emptyContextObject,
-        null
-      );
-      pushComponentStack(children);
-      renderState.pingedTasks.push(children);
-      return renderState;
-    }
-    function resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      renderState,
-      onError,
-      onAllReady,
-      onShellReady,
-      onShellError,
-      onFatalError,
-      onPostpone
-    ) {
-      children = resumeRequest(
-        children,
-        postponedState,
-        renderState,
-        onError,
-        onAllReady,
-        onShellReady,
-        onShellError,
-        onFatalError,
-        onPostpone
-      );
-      children.trackedPostpones = {
-        workingMap: new Map(),
-        rootNodes: [],
-        rootSlots: null
-      };
-      return children;
-    }
-    function resolveRequest() {
-      if (currentRequest) return currentRequest;
-      var store = requestStorage.getStore();
-      return store ? store : null;
-    }
-    function pingTask(request, task) {
-      request.pingedTasks.push(task);
-      1 === request.pingedTasks.length &&
-        ((request.flushScheduled = null !== request.destination),
-        null !== request.trackedPostpones || 10 === request.status
-          ? scheduleMicrotask(function () {
-              return performWork(request);
-            })
-          : setImmediate(function () {
-              return performWork(request);
-            }));
-    }
-    function createSuspenseBoundary(
-      request,
-      row,
-      fallbackAbortableTasks,
-      contentPreamble,
-      fallbackPreamble
-    ) {
-      fallbackAbortableTasks = {
-        status: PENDING,
-        rootSegmentID: -1,
-        parentFlushed: !1,
-        pendingTasks: 0,
-        row: row,
-        completedSegments: [],
-        byteSize: 0,
-        fallbackAbortableTasks: fallbackAbortableTasks,
-        errorDigest: null,
-        contentState: createHoistableState(),
-        fallbackState: createHoistableState(),
-        contentPreamble: contentPreamble,
-        fallbackPreamble: fallbackPreamble,
-        trackedContentKeyPath: null,
-        trackedFallbackNode: null,
-        errorMessage: null,
-        errorStack: null,
-        errorComponentStack: null
-      };
-      null !== row &&
-        (row.pendingTasks++,
-        (contentPreamble = row.boundaries),
-        null !== contentPreamble &&
-          (request.allPendingTasks++,
-          fallbackAbortableTasks.pendingTasks++,
-          contentPreamble.push(fallbackAbortableTasks)),
-        (request = row.inheritedHoistables),
-        null !== request &&
-          hoistHoistables(fallbackAbortableTasks.contentState, request));
-      return fallbackAbortableTasks;
-    }
-    function createRenderTask(
-      request,
-      thenableState,
-      node,
-      childIndex,
-      blockedBoundary,
-      blockedSegment,
-      blockedPreamble,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      var task = {
-        replay: null,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: blockedSegment,
-        blockedPreamble: blockedPreamble,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createReplayTask(
-      request,
-      thenableState,
-      replay,
-      node,
-      childIndex,
-      blockedBoundary,
-      hoistableState,
-      abortSet,
-      keyPath,
-      formatContext,
-      context,
-      treeContext,
-      row,
-      componentStack,
-      legacyContext,
-      debugTask
-    ) {
-      request.allPendingTasks++;
-      null === blockedBoundary
-        ? request.pendingRootTasks++
-        : blockedBoundary.pendingTasks++;
-      null !== row && row.pendingTasks++;
-      replay.pendingTasks++;
-      var task = {
-        replay: replay,
-        node: node,
-        childIndex: childIndex,
-        ping: function () {
-          return pingTask(request, task);
-        },
-        blockedBoundary: blockedBoundary,
-        blockedSegment: null,
-        blockedPreamble: null,
-        hoistableState: hoistableState,
-        abortSet: abortSet,
-        keyPath: keyPath,
-        formatContext: formatContext,
-        context: context,
-        treeContext: treeContext,
-        row: row,
-        componentStack: componentStack,
-        thenableState: thenableState
-      };
-      task.debugTask = debugTask;
-      abortSet.add(task);
-      return task;
-    }
-    function createPendingSegment(
-      request,
-      index,
-      boundary,
-      parentFormatContext,
-      lastPushedText,
-      textEmbedded
-    ) {
-      return {
-        status: PENDING,
-        parentFlushed: !1,
-        id: -1,
-        index: index,
-        chunks: [],
-        children: [],
-        preambleChildren: [],
-        parentFormatContext: parentFormatContext,
-        boundary: boundary,
-        lastPushedText: lastPushedText,
-        textEmbedded: textEmbedded
-      };
-    }
-    function getCurrentStackInDEV() {
-      if (null === currentTaskInDEV || null === currentTaskInDEV.componentStack)
-        return "";
-      var componentStack = currentTaskInDEV.componentStack;
-      try {
-        var info = "";
-        if ("string" === typeof componentStack.type)
-          info += describeBuiltInComponentFrame(componentStack.type);
-        else if ("function" === typeof componentStack.type) {
-          if (!componentStack.owner) {
-            var JSCompiler_temp_const = info,
-              fn = componentStack.type,
-              name = fn ? fn.displayName || fn.name : "";
-            var JSCompiler_inline_result = name
-              ? describeBuiltInComponentFrame(name)
-              : "";
-            info = JSCompiler_temp_const + JSCompiler_inline_result;
-          }
-        } else
-          componentStack.owner ||
-            (info += describeComponentStackByType(componentStack.type));
-        for (; componentStack; )
-          (JSCompiler_temp_const = null),
-            null != componentStack.debugStack
-              ? (JSCompiler_temp_const = formatOwnerStack(
-                  componentStack.debugStack
-                ))
-              : ((JSCompiler_inline_result = componentStack),
-                null != JSCompiler_inline_result.stack &&
-                  (JSCompiler_temp_const =
-                    "string" !== typeof JSCompiler_inline_result.stack
-                      ? (JSCompiler_inline_result.stack = formatOwnerStack(
-                          JSCompiler_inline_result.stack
-                        ))
-                      : JSCompiler_inline_result.stack)),
-            (componentStack = componentStack.owner) &&
-              JSCompiler_temp_const &&
-              (info += "\n" + JSCompiler_temp_const);
-        var JSCompiler_inline_result$jscomp$0 = info;
-      } catch (x) {
-        JSCompiler_inline_result$jscomp$0 =
-          "\nError generating stack: " + x.message + "\n" + x.stack;
-      }
-      return JSCompiler_inline_result$jscomp$0;
-    }
-    function pushHaltedAwaitOnComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = debugInfo.length - 1; 0 <= i; i--) {
-          var info = debugInfo[i];
-          if ("string" === typeof info.name) break;
-          if ("number" === typeof info.time) break;
-          if (null != info.awaited) {
-            var bestStack = null == info.debugStack ? info.awaited : info;
-            if (void 0 !== bestStack.debugStack) {
-              task.componentStack = {
-                parent: task.componentStack,
-                type: info,
-                owner: bestStack.owner,
-                stack: bestStack.debugStack
-              };
-              task.debugTask = bestStack.debugTask;
-              break;
-            }
-          }
-        }
-    }
-    function pushServerComponentStack(task, debugInfo) {
-      if (null != debugInfo)
-        for (var i = 0; i < debugInfo.length; i++) {
-          var componentInfo = debugInfo[i];
-          "string" === typeof componentInfo.name &&
-            void 0 !== componentInfo.debugStack &&
-            ((task.componentStack = {
-              parent: task.componentStack,
-              type: componentInfo,
-              owner: componentInfo.owner,
-              stack: componentInfo.debugStack
-            }),
-            (task.debugTask = componentInfo.debugTask));
-        }
-    }
-    function pushComponentStack(task) {
-      var node = task.node;
-      if ("object" === typeof node && null !== node)
-        switch (node.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-            var type = node.type,
-              owner = node._owner,
-              stack = node._debugStack;
-            pushServerComponentStack(task, node._debugInfo);
-            task.debugTask = node._debugTask;
-            task.componentStack = {
-              parent: task.componentStack,
-              type: type,
-              owner: owner,
-              stack: stack
-            };
-            break;
-          case REACT_LAZY_TYPE:
-            pushServerComponentStack(task, node._debugInfo);
-            break;
-          default:
-            "function" === typeof node.then &&
-              pushServerComponentStack(task, node._debugInfo);
-        }
-    }
-    function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-      componentStack
-    ) {
-      return null === componentStack
-        ? null
-        : {
-            parent: componentStack.parent,
-            type: "Suspense Fallback",
-            owner: componentStack.owner,
-            stack: componentStack.stack
-          };
-    }
-    function getThrownInfo(node$jscomp$0) {
-      var errorInfo = {};
-      node$jscomp$0 &&
-        Object.defineProperty(errorInfo, "componentStack", {
-          configurable: !0,
-          enumerable: !0,
-          get: function () {
-            try {
-              var info = "",
-                node = node$jscomp$0;
-              do
-                (info += describeComponentStackByType(node.type)),
-                  (node = node.parent);
-              while (node);
-              var stack = info;
-            } catch (x) {
-              stack = "\nError generating stack: " + x.message + "\n" + x.stack;
-            }
-            Object.defineProperty(errorInfo, "componentStack", {
-              value: stack
-            });
-            return stack;
-          }
-        });
-      return errorInfo;
-    }
-    function encodeErrorForBoundary(
-      boundary,
-      digest,
-      error,
-      thrownInfo,
-      wasAborted
-    ) {
-      boundary.errorDigest = digest;
-      error instanceof Error
-        ? ((digest = String(error.message)), (error = String(error.stack)))
-        : ((digest =
-            "object" === typeof error && null !== error
-              ? describeObjectForErrorMessage(error)
-              : String(error)),
-          (error = null));
-      wasAborted = wasAborted
-        ? "Switched to client rendering because the server rendering aborted due to:\n\n"
-        : "Switched to client rendering because the server rendering errored:\n\n";
-      boundary.errorMessage = wasAborted + digest;
-      boundary.errorStack = null !== error ? wasAborted + error : null;
-      boundary.errorComponentStack = thrownInfo.componentStack;
-    }
-    function logRecoverableError(request, error, errorInfo, debugTask) {
-      request = request.onError;
-      error = debugTask
-        ? debugTask.run(request.bind(null, error, errorInfo))
-        : request(error, errorInfo);
-      if (null != error && "string" !== typeof error)
-        console.error(
-          'onError returned something with a type other than "string". onError should return a string and may return null or undefined but must not return anything else. It received something of type "%s" instead',
-          typeof error
-        );
-      else return error;
-    }
-    function fatalError(request, error, errorInfo, debugTask) {
-      errorInfo = request.onShellError;
-      var onFatalError = request.onFatalError;
-      debugTask
-        ? (debugTask.run(errorInfo.bind(null, error)),
-          debugTask.run(onFatalError.bind(null, error)))
-        : (errorInfo(error), onFatalError(error));
-      null !== request.destination
-        ? ((request.status = CLOSED), request.destination.destroy(error))
-        : ((request.status = 13), (request.fatalError = error));
-    }
-    function finishSuspenseListRow(request, row) {
-      unblockSuspenseListRow(request, row.next, row.hoistables);
-    }
-    function unblockSuspenseListRow(
-      request,
-      unblockedRow,
-      inheritedHoistables
-    ) {
-      for (; null !== unblockedRow; ) {
-        null !== inheritedHoistables &&
-          (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-          (unblockedRow.inheritedHoistables = inheritedHoistables));
-        var unblockedBoundaries = unblockedRow.boundaries;
-        if (null !== unblockedBoundaries) {
-          unblockedRow.boundaries = null;
-          for (var i = 0; i < unblockedBoundaries.length; i++) {
-            var unblockedBoundary = unblockedBoundaries[i];
-            null !== inheritedHoistables &&
-              hoistHoistables(
-                unblockedBoundary.contentState,
-                inheritedHoistables
-              );
-            finishedTask(request, unblockedBoundary, null, null);
-          }
-        }
-        unblockedRow.pendingTasks--;
-        if (0 < unblockedRow.pendingTasks) break;
-        inheritedHoistables = unblockedRow.hoistables;
-        unblockedRow = unblockedRow.next;
-      }
-    }
-    function tryToResolveTogetherRow(request, togetherRow) {
-      var boundaries = togetherRow.boundaries;
-      if (
-        null !== boundaries &&
-        togetherRow.pendingTasks === boundaries.length
-      ) {
-        for (
-          var allCompleteAndInlinable = !0, i = 0;
-          i < boundaries.length;
-          i++
-        ) {
-          var rowBoundary = boundaries[i];
-          if (
-            1 !== rowBoundary.pendingTasks ||
-            rowBoundary.parentFlushed ||
-            isEligibleForOutlining(request, rowBoundary)
-          ) {
-            allCompleteAndInlinable = !1;
-            break;
-          }
-        }
-        allCompleteAndInlinable &&
-          unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-      }
-    }
-    function createSuspenseListRow(previousRow) {
-      var newRow = {
-        pendingTasks: 1,
-        boundaries: null,
-        hoistables: createHoistableState(),
-        inheritedHoistables: null,
-        together: !1,
-        next: null
-      };
-      null !== previousRow &&
-        0 < previousRow.pendingTasks &&
-        (newRow.pendingTasks++,
-        (newRow.boundaries = []),
-        (previousRow.next = newRow));
-      return newRow;
-    }
-    function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-      var prevKeyPath = task.keyPath,
-        prevTreeContext = task.treeContext,
-        prevRow = task.row,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node.props.children._debugInfo);
-      task.keyPath = keyPath;
-      keyPath = rows.length;
-      var previousSuspenseListRow = null;
-      if (null !== task.replay) {
-        var resumeSlots = task.replay.slots;
-        if (null !== resumeSlots && "object" === typeof resumeSlots)
-          for (var n = 0; n < keyPath; n++) {
-            var i =
-                "backwards" !== revealOrder &&
-                "unstable_legacy-backwards" !== revealOrder
-                  ? n
-                  : keyPath - 1 - n,
-              node = rows[i];
-            task.row = previousSuspenseListRow = createSuspenseListRow(
-              previousSuspenseListRow
-            );
-            task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-            var resumeSegmentID = resumeSlots[i];
-            "number" === typeof resumeSegmentID
-              ? (resumeNode(request, task, resumeSegmentID, node, i),
-                delete resumeSlots[i])
-              : renderNode(request, task, node, i);
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-          }
-        else
-          for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-            (n =
-              "backwards" !== revealOrder &&
-              "unstable_legacy-backwards" !== revealOrder
-                ? resumeSlots
-                : keyPath - 1 - resumeSlots),
-              (i = rows[n]),
-              warnForMissingKey(request, task, i),
-              (task.row = previousSuspenseListRow =
-                createSuspenseListRow(previousSuspenseListRow)),
-              (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-              renderNode(request, task, i, n),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-      } else if (
-        "backwards" !== revealOrder &&
-        "unstable_legacy-backwards" !== revealOrder
-      )
-        for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-          (resumeSlots = rows[revealOrder]),
-            warnForMissingKey(request, task, resumeSlots),
-            (task.row = previousSuspenseListRow =
-              createSuspenseListRow(previousSuspenseListRow)),
-            (task.treeContext = pushTreeContext(
-              prevTreeContext,
-              keyPath,
-              revealOrder
-            )),
-            renderNode(request, task, resumeSlots, revealOrder),
-            0 === --previousSuspenseListRow.pendingTasks &&
-              finishSuspenseListRow(request, previousSuspenseListRow);
-      else {
-        revealOrder = task.blockedSegment;
-        resumeSlots = revealOrder.children.length;
-        n = revealOrder.chunks.length;
-        for (i = keyPath - 1; 0 <= i; i--) {
-          node = rows[i];
-          task.row = previousSuspenseListRow = createSuspenseListRow(
-            previousSuspenseListRow
-          );
-          task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-          resumeSegmentID = createPendingSegment(
-            request,
-            n,
-            null,
-            task.formatContext,
-            0 === i ? revealOrder.lastPushedText : !0,
-            !0
-          );
-          revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-          task.blockedSegment = resumeSegmentID;
-          warnForMissingKey(request, task, node);
-          try {
-            renderNode(request, task, node, i),
-              resumeSegmentID.lastPushedText &&
-                resumeSegmentID.textEmbedded &&
-                resumeSegmentID.chunks.push(textSeparator),
-              (resumeSegmentID.status = COMPLETED),
-              finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-              0 === --previousSuspenseListRow.pendingTasks &&
-                finishSuspenseListRow(request, previousSuspenseListRow);
-          } catch (thrownValue) {
-            throw (
-              ((resumeSegmentID.status =
-                12 === request.status ? ABORTED : ERRORED),
-              thrownValue)
-            );
-          }
-        }
-        task.blockedSegment = revealOrder;
-        revealOrder.lastPushedText = !1;
-      }
-      null !== prevRow &&
-        null !== previousSuspenseListRow &&
-        0 < previousSuspenseListRow.pendingTasks &&
-        (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-      task.treeContext = prevTreeContext;
-      task.row = prevRow;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function renderWithHooks(
-      request,
-      task,
-      keyPath,
-      Component,
-      props,
-      secondArg
-    ) {
-      var prevThenableState = task.thenableState;
-      task.thenableState = null;
-      currentlyRenderingComponent = {};
-      currentlyRenderingTask = task;
-      currentlyRenderingRequest = request;
-      currentlyRenderingKeyPath = keyPath;
-      isInHookUserCodeInDev = !1;
-      actionStateCounter = localIdCounter = 0;
-      actionStateMatchingIndex = -1;
-      thenableIndexCounter = 0;
-      thenableState = prevThenableState;
-      for (
-        request = callComponentInDEV(Component, props, secondArg);
-        didScheduleRenderPhaseUpdate;
-
-      )
-        (didScheduleRenderPhaseUpdate = !1),
-          (actionStateCounter = localIdCounter = 0),
-          (actionStateMatchingIndex = -1),
-          (thenableIndexCounter = 0),
-          (numberOfReRenders += 1),
-          (workInProgressHook = null),
-          (request = Component(props, secondArg));
-      resetHooksState();
-      return request;
-    }
-    function finishFunctionComponent(
-      request,
-      task,
-      keyPath,
-      children,
-      hasId,
-      actionStateCount,
-      actionStateMatchingIndex
-    ) {
-      var didEmitActionStateMarkers = !1;
-      if (0 !== actionStateCount && null !== request.formState) {
-        var segment = task.blockedSegment;
-        if (null !== segment) {
-          didEmitActionStateMarkers = !0;
-          segment = segment.chunks;
-          for (var i = 0; i < actionStateCount; i++)
-            i === actionStateMatchingIndex
-              ? segment.push(formStateMarkerIsMatching)
-              : segment.push(formStateMarkerIsNotMatching);
-        }
-      }
-      actionStateCount = task.keyPath;
-      task.keyPath = keyPath;
-      hasId
-        ? ((keyPath = task.treeContext),
-          (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-          renderNode(request, task, children, -1),
-          (task.treeContext = keyPath))
-        : didEmitActionStateMarkers
-          ? renderNode(request, task, children, -1)
-          : renderNodeDestructive(request, task, children, -1);
-      task.keyPath = actionStateCount;
-    }
-    function renderElement(request, task, keyPath, type, props, ref) {
-      if ("function" === typeof type)
-        if (type.prototype && type.prototype.isReactComponent) {
-          var newProps = props;
-          if ("ref" in props) {
-            newProps = {};
-            for (var propName in props)
-              "ref" !== propName && (newProps[propName] = props[propName]);
-          }
-          var defaultProps = type.defaultProps;
-          if (defaultProps) {
-            newProps === props && (newProps = assign({}, newProps, props));
-            for (var _propName in defaultProps)
-              void 0 === newProps[_propName] &&
-                (newProps[_propName] = defaultProps[_propName]);
-          }
-          var resolvedProps = newProps;
-          var context = emptyContextObject,
-            contextType = type.contextType;
-          if (
-            "contextType" in type &&
-            null !== contextType &&
-            (void 0 === contextType ||
-              contextType.$$typeof !== REACT_CONTEXT_TYPE) &&
-            !didWarnAboutInvalidateContextType.has(type)
-          ) {
-            didWarnAboutInvalidateContextType.add(type);
-            var addendum =
-              void 0 === contextType
-                ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file."
-                : "object" !== typeof contextType
-                  ? " However, it is set to a " + typeof contextType + "."
-                  : contextType.$$typeof === REACT_CONSUMER_TYPE
-                    ? " Did you accidentally pass the Context.Consumer instead?"
-                    : " However, it is set to an object with keys {" +
-                      Object.keys(contextType).join(", ") +
-                      "}.";
-            console.error(
-              "%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",
-              getComponentNameFromType(type) || "Component",
-              addendum
-            );
-          }
-          "object" === typeof contextType &&
-            null !== contextType &&
-            (context = contextType._currentValue);
-          var instance = new type(resolvedProps, context);
-          if (
-            "function" === typeof type.getDerivedStateFromProps &&
-            (null === instance.state || void 0 === instance.state)
-          ) {
-            var componentName = getComponentNameFromType(type) || "Component";
-            didWarnAboutUninitializedState.has(componentName) ||
-              (didWarnAboutUninitializedState.add(componentName),
-              console.error(
-                "`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",
-                componentName,
-                null === instance.state ? "null" : "undefined",
-                componentName
-              ));
-          }
-          if (
-            "function" === typeof type.getDerivedStateFromProps ||
-            "function" === typeof instance.getSnapshotBeforeUpdate
-          ) {
-            var foundWillMountName = null,
-              foundWillReceivePropsName = null,
-              foundWillUpdateName = null;
-            "function" === typeof instance.componentWillMount &&
-            !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ? (foundWillMountName = "componentWillMount")
-              : "function" === typeof instance.UNSAFE_componentWillMount &&
-                (foundWillMountName = "UNSAFE_componentWillMount");
-            "function" === typeof instance.componentWillReceiveProps &&
-            !0 !==
-              instance.componentWillReceiveProps.__suppressDeprecationWarning
-              ? (foundWillReceivePropsName = "componentWillReceiveProps")
-              : "function" ===
-                  typeof instance.UNSAFE_componentWillReceiveProps &&
-                (foundWillReceivePropsName =
-                  "UNSAFE_componentWillReceiveProps");
-            "function" === typeof instance.componentWillUpdate &&
-            !0 !== instance.componentWillUpdate.__suppressDeprecationWarning
-              ? (foundWillUpdateName = "componentWillUpdate")
-              : "function" === typeof instance.UNSAFE_componentWillUpdate &&
-                (foundWillUpdateName = "UNSAFE_componentWillUpdate");
-            if (
-              null !== foundWillMountName ||
-              null !== foundWillReceivePropsName ||
-              null !== foundWillUpdateName
-            ) {
-              var _componentName =
-                  getComponentNameFromType(type) || "Component",
-                newApiName =
-                  "function" === typeof type.getDerivedStateFromProps
-                    ? "getDerivedStateFromProps()"
-                    : "getSnapshotBeforeUpdate()";
-              didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName) ||
-                (didWarnAboutLegacyLifecyclesAndDerivedState.add(
-                  _componentName
-                ),
-                console.error(
-                  "Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles",
-                  _componentName,
-                  newApiName,
-                  null !== foundWillMountName
-                    ? "\n  " + foundWillMountName
-                    : "",
-                  null !== foundWillReceivePropsName
-                    ? "\n  " + foundWillReceivePropsName
-                    : "",
-                  null !== foundWillUpdateName
-                    ? "\n  " + foundWillUpdateName
-                    : ""
-                ));
-            }
-          }
-          var name = getComponentNameFromType(type) || "Component";
-          instance.render ||
-            (type.prototype && "function" === typeof type.prototype.render
-              ? console.error(
-                  "No `render` method found on the %s instance: did you accidentally return an object from the constructor?",
-                  name
-                )
-              : console.error(
-                  "No `render` method found on the %s instance: you may have forgotten to define `render`.",
-                  name
-                ));
-          !instance.getInitialState ||
-            instance.getInitialState.isReactClassApproved ||
-            instance.state ||
-            console.error(
-              "getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",
-              name
-            );
-          instance.getDefaultProps &&
-            !instance.getDefaultProps.isReactClassApproved &&
-            console.error(
-              "getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",
-              name
-            );
-          instance.contextType &&
-            console.error(
-              "contextType was defined as an instance property on %s. Use a static property to define contextType instead.",
-              name
-            );
-          type.childContextTypes &&
-            !didWarnAboutChildContextTypes.has(type) &&
-            (didWarnAboutChildContextTypes.add(type),
-            console.error(
-              "%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          type.contextTypes &&
-            !didWarnAboutContextTypes$1.has(type) &&
-            (didWarnAboutContextTypes$1.add(type),
-            console.error(
-              "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)",
-              name
-            ));
-          "function" === typeof instance.componentShouldUpdate &&
-            console.error(
-              "%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",
-              name
-            );
-          type.prototype &&
-            type.prototype.isPureReactComponent &&
-            "undefined" !== typeof instance.shouldComponentUpdate &&
-            console.error(
-              "%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",
-              getComponentNameFromType(type) || "A pure component"
-            );
-          "function" === typeof instance.componentDidUnmount &&
-            console.error(
-              "%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",
-              name
-            );
-          "function" === typeof instance.componentDidReceiveProps &&
-            console.error(
-              "%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",
-              name
-            );
-          "function" === typeof instance.componentWillRecieveProps &&
-            console.error(
-              "%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",
-              name
-            );
-          "function" === typeof instance.UNSAFE_componentWillRecieveProps &&
-            console.error(
-              "%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",
-              name
-            );
-          var hasMutatedProps = instance.props !== resolvedProps;
-          void 0 !== instance.props &&
-            hasMutatedProps &&
-            console.error(
-              "When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
-              name
-            );
-          instance.defaultProps &&
-            console.error(
-              "Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",
-              name,
-              name
-            );
-          "function" !== typeof instance.getSnapshotBeforeUpdate ||
-            "function" === typeof instance.componentDidUpdate ||
-            didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(type) ||
-            (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(type),
-            console.error(
-              "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",
-              getComponentNameFromType(type)
-            ));
-          "function" === typeof instance.getDerivedStateFromProps &&
-            console.error(
-              "%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof instance.getDerivedStateFromError &&
-            console.error(
-              "%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",
-              name
-            );
-          "function" === typeof type.getSnapshotBeforeUpdate &&
-            console.error(
-              "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",
-              name
-            );
-          var state = instance.state;
-          state &&
-            ("object" !== typeof state || isArrayImpl(state)) &&
-            console.error("%s.state: must be set to an object or null", name);
-          "function" === typeof instance.getChildContext &&
-            "object" !== typeof type.childContextTypes &&
-            console.error(
-              "%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",
-              name
-            );
-          var initialState = void 0 !== instance.state ? instance.state : null;
-          instance.updater = classComponentUpdater;
-          instance.props = resolvedProps;
-          instance.state = initialState;
-          var internalInstance = { queue: [], replace: !1 };
-          instance._reactInternals = internalInstance;
-          var contextType$jscomp$0 = type.contextType;
-          instance.context =
-            "object" === typeof contextType$jscomp$0 &&
-            null !== contextType$jscomp$0
-              ? contextType$jscomp$0._currentValue
-              : emptyContextObject;
-          if (instance.state === resolvedProps) {
-            var componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Component";
-            didWarnAboutDirectlyAssigningPropsToState.has(
-              componentName$jscomp$0
-            ) ||
-              (didWarnAboutDirectlyAssigningPropsToState.add(
-                componentName$jscomp$0
-              ),
-              console.error(
-                "%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
-                componentName$jscomp$0
-              ));
-          }
-          var getDerivedStateFromProps = type.getDerivedStateFromProps;
-          if ("function" === typeof getDerivedStateFromProps) {
-            var partialState = getDerivedStateFromProps(
-              resolvedProps,
-              initialState
-            );
-            if (void 0 === partialState) {
-              var componentName$jscomp$1 =
-                getComponentNameFromType(type) || "Component";
-              didWarnAboutUndefinedDerivedState.has(componentName$jscomp$1) ||
-                (didWarnAboutUndefinedDerivedState.add(componentName$jscomp$1),
-                console.error(
-                  "%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",
-                  componentName$jscomp$1
-                ));
-            }
-            var JSCompiler_inline_result =
-              null === partialState || void 0 === partialState
-                ? initialState
-                : assign({}, initialState, partialState);
-            instance.state = JSCompiler_inline_result;
-          }
-          if (
-            "function" !== typeof type.getDerivedStateFromProps &&
-            "function" !== typeof instance.getSnapshotBeforeUpdate &&
-            ("function" === typeof instance.UNSAFE_componentWillMount ||
-              "function" === typeof instance.componentWillMount)
-          ) {
-            var oldState = instance.state;
-            if ("function" === typeof instance.componentWillMount) {
-              if (
-                !0 !== instance.componentWillMount.__suppressDeprecationWarning
-              ) {
-                var componentName$jscomp$2 =
-                  getComponentNameFromType(type) || "Unknown";
-                didWarnAboutDeprecatedWillMount[componentName$jscomp$2] ||
-                  (console.warn(
-                    "componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\n\nPlease update the following components: %s",
-                    componentName$jscomp$2
-                  ),
-                  (didWarnAboutDeprecatedWillMount[componentName$jscomp$2] =
-                    !0));
-              }
-              instance.componentWillMount();
-            }
-            "function" === typeof instance.UNSAFE_componentWillMount &&
-              instance.UNSAFE_componentWillMount();
-            oldState !== instance.state &&
-              (console.error(
-                "%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
-                getComponentNameFromType(type) || "Component"
-              ),
-              classComponentUpdater.enqueueReplaceState(
-                instance,
-                instance.state,
-                null
-              ));
-            if (
-              null !== internalInstance.queue &&
-              0 < internalInstance.queue.length
-            ) {
-              var oldQueue = internalInstance.queue,
-                oldReplace = internalInstance.replace;
-              internalInstance.queue = null;
-              internalInstance.replace = !1;
-              if (oldReplace && 1 === oldQueue.length)
-                instance.state = oldQueue[0];
-              else {
-                for (
-                  var nextState = oldReplace ? oldQueue[0] : instance.state,
-                    dontMutate = !0,
-                    i = oldReplace ? 1 : 0;
-                  i < oldQueue.length;
-                  i++
-                ) {
-                  var partial = oldQueue[i],
-                    partialState$jscomp$0 =
-                      "function" === typeof partial
-                        ? partial.call(
-                            instance,
-                            nextState,
-                            resolvedProps,
-                            void 0
-                          )
-                        : partial;
-                  null != partialState$jscomp$0 &&
-                    (dontMutate
-                      ? ((dontMutate = !1),
-                        (nextState = assign(
-                          {},
-                          nextState,
-                          partialState$jscomp$0
-                        )))
-                      : assign(nextState, partialState$jscomp$0));
-                }
-                instance.state = nextState;
-              }
-            } else internalInstance.queue = null;
-          }
-          var nextChildren = callRenderInDEV(instance);
-          if (12 === request.status) throw null;
-          instance.props !== resolvedProps &&
-            (didWarnAboutReassigningProps ||
-              console.error(
-                "It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",
-                getComponentNameFromType(type) || "a component"
-              ),
-            (didWarnAboutReassigningProps = !0));
-          var prevKeyPath = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, nextChildren, -1);
-          task.keyPath = prevKeyPath;
-        } else {
-          if (type.prototype && "function" === typeof type.prototype.render) {
-            var componentName$jscomp$3 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutBadClass[componentName$jscomp$3] ||
-              (console.error(
-                "The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
-                componentName$jscomp$3,
-                componentName$jscomp$3
-              ),
-              (didWarnAboutBadClass[componentName$jscomp$3] = !0));
-          }
-          var value = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type,
-            props,
-            void 0
-          );
-          if (12 === request.status) throw null;
-          var hasId = 0 !== localIdCounter,
-            actionStateCount = actionStateCounter,
-            actionStateMatchingIndex$jscomp$0 = actionStateMatchingIndex;
-          if (type.contextTypes) {
-            var _componentName$jscomp$0 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypes[_componentName$jscomp$0] ||
-              ((didWarnAboutContextTypes[_componentName$jscomp$0] = !0),
-              console.error(
-                "%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)",
-                _componentName$jscomp$0
-              ));
-          }
-          type &&
-            type.childContextTypes &&
-            console.error(
-              "childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...",
-              type.displayName || type.name || "Component"
-            );
-          if ("function" === typeof type.getDerivedStateFromProps) {
-            var componentName$jscomp$4 =
-              getComponentNameFromType(type) || "Unknown";
-            didWarnAboutGetDerivedStateOnFunctionComponent[
-              componentName$jscomp$4
-            ] ||
-              (console.error(
-                "%s: Function components do not support getDerivedStateFromProps.",
-                componentName$jscomp$4
-              ),
-              (didWarnAboutGetDerivedStateOnFunctionComponent[
-                componentName$jscomp$4
-              ] = !0));
-          }
-          if (
-            "object" === typeof type.contextType &&
-            null !== type.contextType
-          ) {
-            var _componentName2 = getComponentNameFromType(type) || "Unknown";
-            didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
-              (console.error(
-                "%s: Function components do not support contextType.",
-                _componentName2
-              ),
-              (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
-                !0));
-          }
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            value,
-            hasId,
-            actionStateCount,
-            actionStateMatchingIndex$jscomp$0
-          );
-        }
-      else if ("string" === typeof type) {
-        var segment = task.blockedSegment;
-        if (null === segment) {
-          var children = props.children,
-            prevContext = task.formatContext,
-            prevKeyPath$jscomp$0 = task.keyPath;
-          task.formatContext = getChildFormatContext(prevContext, type, props);
-          task.keyPath = keyPath;
-          renderNode(request, task, children, -1);
-          task.formatContext = prevContext;
-          task.keyPath = prevKeyPath$jscomp$0;
-        } else {
-          var _children = pushStartInstance(
-            segment.chunks,
-            type,
-            props,
-            request.resumableState,
-            request.renderState,
-            task.blockedPreamble,
-            task.hoistableState,
-            task.formatContext,
-            segment.lastPushedText
-          );
-          segment.lastPushedText = !1;
-          var _prevContext2 = task.formatContext,
-            _prevKeyPath3 = task.keyPath;
-          task.keyPath = keyPath;
-          if (
-            (task.formatContext = getChildFormatContext(
-              _prevContext2,
-              type,
-              props
-            )).insertionMode === HTML_HEAD_MODE
-          ) {
-            var preambleSegment = createPendingSegment(
-              request,
-              0,
-              null,
-              task.formatContext,
-              !1,
-              !1
-            );
-            segment.preambleChildren.push(preambleSegment);
-            task.blockedSegment = preambleSegment;
-            try {
-              (preambleSegment.status = 6),
-                renderNode(request, task, _children, -1),
-                preambleSegment.lastPushedText &&
-                  preambleSegment.textEmbedded &&
-                  preambleSegment.chunks.push(textSeparator),
-                (preambleSegment.status = COMPLETED),
-                finishedSegment(request, task.blockedBoundary, preambleSegment);
-            } finally {
-              task.blockedSegment = segment;
-            }
-          } else renderNode(request, task, _children, -1);
-          task.formatContext = _prevContext2;
-          task.keyPath = _prevKeyPath3;
-          a: {
-            var target = segment.chunks,
-              resumableState = request.resumableState;
-            switch (type) {
-              case "title":
-              case "style":
-              case "script":
-              case "area":
-              case "base":
-              case "br":
-              case "col":
-              case "embed":
-              case "hr":
-              case "img":
-              case "input":
-              case "keygen":
-              case "link":
-              case "meta":
-              case "param":
-              case "source":
-              case "track":
-              case "wbr":
-                break a;
-              case "body":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
-                  resumableState.hasBody = !0;
-                  break a;
-                }
-                break;
-              case "html":
-                if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
-                  resumableState.hasHtml = !0;
-                  break a;
-                }
-                break;
-              case "head":
-                if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
-            }
-            target.push(endChunkForTag(type));
-          }
-          segment.lastPushedText = !1;
-        }
-      } else {
-        switch (type) {
-          case REACT_LEGACY_HIDDEN_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_FRAGMENT_TYPE:
-            var prevKeyPath$jscomp$1 = task.keyPath;
-            task.keyPath = keyPath;
-            renderNodeDestructive(request, task, props.children, -1);
-            task.keyPath = prevKeyPath$jscomp$1;
-            return;
-          case REACT_ACTIVITY_TYPE:
-            var segment$jscomp$0 = task.blockedSegment;
-            if (null === segment$jscomp$0) {
-              if ("hidden" !== props.mode) {
-                var prevKeyPath$jscomp$2 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNode(request, task, props.children, -1);
-                task.keyPath = prevKeyPath$jscomp$2;
-              }
-            } else if ("hidden" !== props.mode) {
-              segment$jscomp$0.chunks.push(startActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-              var _prevKeyPath4 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNode(request, task, props.children, -1);
-              task.keyPath = _prevKeyPath4;
-              segment$jscomp$0.chunks.push(endActivityBoundary);
-              segment$jscomp$0.lastPushedText = !1;
-            }
-            return;
-          case REACT_SUSPENSE_LIST_TYPE:
-            a: {
-              var children$jscomp$0 = props.children,
-                revealOrder = props.revealOrder;
-              if (
-                "forwards" === revealOrder ||
-                "backwards" === revealOrder ||
-                "unstable_legacy-backwards" === revealOrder
-              ) {
-                if (isArrayImpl(children$jscomp$0)) {
-                  renderSuspenseListRows(
-                    request,
-                    task,
-                    keyPath,
-                    children$jscomp$0,
-                    revealOrder
-                  );
-                  break a;
-                }
-                var iteratorFn = getIteratorFn(children$jscomp$0);
-                if (iteratorFn) {
-                  var iterator = iteratorFn.call(children$jscomp$0);
-                  if (iterator) {
-                    validateIterable(
-                      task,
-                      children$jscomp$0,
-                      -1,
-                      iterator,
-                      iteratorFn
-                    );
-                    var step = iterator.next();
-                    if (!step.done) {
-                      var rows = [];
-                      do rows.push(step.value), (step = iterator.next());
-                      while (!step.done);
-                      renderSuspenseListRows(
-                        request,
-                        task,
-                        keyPath,
-                        children$jscomp$0,
-                        revealOrder
-                      );
-                    }
-                    break a;
-                  }
-                }
-              }
-              if ("together" === revealOrder) {
-                var _prevKeyPath2 = task.keyPath,
-                  prevRow = task.row,
-                  newRow = (task.row = createSuspenseListRow(null));
-                newRow.boundaries = [];
-                newRow.together = !0;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                0 === --newRow.pendingTasks &&
-                  finishSuspenseListRow(request, newRow);
-                task.keyPath = _prevKeyPath2;
-                task.row = prevRow;
-                null !== prevRow &&
-                  0 < newRow.pendingTasks &&
-                  (prevRow.pendingTasks++, (newRow.next = prevRow));
-              } else {
-                var prevKeyPath$jscomp$3 = task.keyPath;
-                task.keyPath = keyPath;
-                renderNodeDestructive(request, task, children$jscomp$0, -1);
-                task.keyPath = prevKeyPath$jscomp$3;
-              }
-            }
-            return;
-          case REACT_VIEW_TRANSITION_TYPE:
-          case REACT_SCOPE_TYPE:
-            throw Error(
-              "ReactDOMServer does not yet support scope components."
-            );
-          case REACT_SUSPENSE_TYPE:
-            a: if (null !== task.replay) {
-              var _prevKeyPath = task.keyPath,
-                _prevContext = task.formatContext,
-                _prevRow = task.row;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                _prevContext
-              );
-              task.row = null;
-              var _content = props.children;
-              try {
-                renderNode(request, task, _content, -1);
-              } finally {
-                (task.keyPath = _prevKeyPath),
-                  (task.formatContext = _prevContext),
-                  (task.row = _prevRow);
-              }
-            } else {
-              var prevKeyPath$jscomp$4 = task.keyPath,
-                prevContext$jscomp$0 = task.formatContext,
-                prevRow$jscomp$0 = task.row,
-                parentBoundary = task.blockedBoundary,
-                parentPreamble = task.blockedPreamble,
-                parentHoistableState = task.hoistableState,
-                parentSegment = task.blockedSegment,
-                fallback = props.fallback,
-                content = props.children,
-                fallbackAbortSet = new Set();
-              var newBoundary =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              null !== request.trackedPostpones &&
-                (newBoundary.trackedContentKeyPath = keyPath);
-              var boundarySegment = createPendingSegment(
-                request,
-                parentSegment.chunks.length,
-                newBoundary,
-                task.formatContext,
-                !1,
-                !1
-              );
-              parentSegment.children.push(boundarySegment);
-              parentSegment.lastPushedText = !1;
-              var contentRootSegment = createPendingSegment(
-                request,
-                0,
-                null,
-                task.formatContext,
-                !1,
-                !1
-              );
-              contentRootSegment.parentFlushed = !0;
-              if (null !== request.trackedPostpones) {
-                var suspenseComponentStack = task.componentStack,
-                  fallbackKeyPath = [
-                    keyPath[0],
-                    "Suspense Fallback",
-                    keyPath[2]
-                  ],
-                  fallbackReplayNode = [
-                    fallbackKeyPath[1],
-                    fallbackKeyPath[2],
-                    [],
-                    null
-                  ];
-                request.trackedPostpones.workingMap.set(
-                  fallbackKeyPath,
-                  fallbackReplayNode
-                );
-                newBoundary.trackedFallbackNode = fallbackReplayNode;
-                task.blockedSegment = boundarySegment;
-                task.blockedPreamble = newBoundary.fallbackPreamble;
-                task.keyPath = fallbackKeyPath;
-                task.formatContext = getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.componentStack =
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    suspenseComponentStack
-                  );
-                boundarySegment.status = 6;
-                try {
-                  renderNode(request, task, fallback, -1),
-                    boundarySegment.lastPushedText &&
-                      boundarySegment.textEmbedded &&
-                      boundarySegment.chunks.push(textSeparator),
-                    (boundarySegment.status = COMPLETED),
-                    finishedSegment(request, parentBoundary, boundarySegment);
-                } catch (thrownValue) {
-                  throw (
-                    ((boundarySegment.status =
-                      12 === request.status ? ABORTED : ERRORED),
-                    thrownValue)
-                  );
-                } finally {
-                  (task.blockedSegment = parentSegment),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0);
-                }
-                var suspendedPrimaryTask = createRenderTask(
-                  request,
-                  null,
-                  content,
-                  -1,
-                  newBoundary,
-                  contentRootSegment,
-                  newBoundary.contentPreamble,
-                  newBoundary.contentState,
-                  task.abortSet,
-                  keyPath,
-                  getSuspenseContentFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  null,
-                  suspenseComponentStack,
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedPrimaryTask);
-                request.pingedTasks.push(suspendedPrimaryTask);
-              } else {
-                task.blockedBoundary = newBoundary;
-                task.blockedPreamble = newBoundary.contentPreamble;
-                task.hoistableState = newBoundary.contentState;
-                task.blockedSegment = contentRootSegment;
-                task.keyPath = keyPath;
-                task.formatContext = getSuspenseContentFormatContext(
-                  request.resumableState,
-                  prevContext$jscomp$0
-                );
-                task.row = null;
-                contentRootSegment.status = 6;
-                try {
-                  if (
-                    (renderNode(request, task, content, -1),
-                    contentRootSegment.lastPushedText &&
-                      contentRootSegment.textEmbedded &&
-                      contentRootSegment.chunks.push(textSeparator),
-                    (contentRootSegment.status = COMPLETED),
-                    finishedSegment(request, newBoundary, contentRootSegment),
-                    queueCompletedSegment(newBoundary, contentRootSegment),
-                    0 === newBoundary.pendingTasks &&
-                      newBoundary.status === PENDING)
-                  ) {
-                    if (
-                      ((newBoundary.status = COMPLETED),
-                      !isEligibleForOutlining(request, newBoundary))
-                    ) {
-                      null !== prevRow$jscomp$0 &&
-                        0 === --prevRow$jscomp$0.pendingTasks &&
-                        finishSuspenseListRow(request, prevRow$jscomp$0);
-                      0 === request.pendingRootTasks &&
-                        task.blockedPreamble &&
-                        preparePreamble(request);
-                      break a;
-                    }
-                  } else
-                    null !== prevRow$jscomp$0 &&
-                      prevRow$jscomp$0.together &&
-                      tryToResolveTogetherRow(request, prevRow$jscomp$0);
-                } catch (thrownValue$2) {
-                  newBoundary.status = CLIENT_RENDERED;
-                  if (12 === request.status) {
-                    contentRootSegment.status = ABORTED;
-                    var error = request.fatalError;
-                  } else
-                    (contentRootSegment.status = ERRORED),
-                      (error = thrownValue$2);
-                  var thrownInfo = getThrownInfo(task.componentStack);
-                  var errorDigest = logRecoverableError(
-                    request,
-                    error,
-                    thrownInfo,
-                    task.debugTask
-                  );
-                  encodeErrorForBoundary(
-                    newBoundary,
-                    errorDigest,
-                    error,
-                    thrownInfo,
-                    !1
-                  );
-                  untrackBoundary(request, newBoundary);
-                } finally {
-                  (task.blockedBoundary = parentBoundary),
-                    (task.blockedPreamble = parentPreamble),
-                    (task.hoistableState = parentHoistableState),
-                    (task.blockedSegment = parentSegment),
-                    (task.keyPath = prevKeyPath$jscomp$4),
-                    (task.formatContext = prevContext$jscomp$0),
-                    (task.row = prevRow$jscomp$0);
-                }
-                var suspendedFallbackTask = createRenderTask(
-                  request,
-                  null,
-                  fallback,
-                  -1,
-                  parentBoundary,
-                  boundarySegment,
-                  newBoundary.fallbackPreamble,
-                  newBoundary.fallbackState,
-                  fallbackAbortSet,
-                  [keyPath[0], "Suspense Fallback", keyPath[2]],
-                  getSuspenseFallbackFormatContext(
-                    request.resumableState,
-                    task.formatContext
-                  ),
-                  task.context,
-                  task.treeContext,
-                  task.row,
-                  replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                    task.componentStack
-                  ),
-                  emptyContextObject,
-                  task.debugTask
-                );
-                pushComponentStack(suspendedFallbackTask);
-                request.pingedTasks.push(suspendedFallbackTask);
-              }
-            }
-            return;
-        }
-        if ("object" === typeof type && null !== type)
-          switch (type.$$typeof) {
-            case REACT_FORWARD_REF_TYPE:
-              if ("ref" in props) {
-                var propsWithoutRef = {};
-                for (var key in props)
-                  "ref" !== key && (propsWithoutRef[key] = props[key]);
-              } else propsWithoutRef = props;
-              var children$jscomp$1 = renderWithHooks(
-                request,
-                task,
-                keyPath,
-                type.render,
-                propsWithoutRef,
-                ref
-              );
-              finishFunctionComponent(
-                request,
-                task,
-                keyPath,
-                children$jscomp$1,
-                0 !== localIdCounter,
-                actionStateCounter,
-                actionStateMatchingIndex
-              );
-              return;
-            case REACT_MEMO_TYPE:
-              renderElement(request, task, keyPath, type.type, props, ref);
-              return;
-            case REACT_CONTEXT_TYPE:
-              var value$jscomp$0 = props.value,
-                children$jscomp$2 = props.children;
-              var prevSnapshot = task.context;
-              var prevKeyPath$jscomp$5 = task.keyPath;
-              var prevValue = type._currentValue;
-              type._currentValue = value$jscomp$0;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var prevNode = currentActiveSnapshot,
-                newNode = {
-                  parent: prevNode,
-                  depth: null === prevNode ? 0 : prevNode.depth + 1,
-                  context: type,
-                  parentValue: prevValue,
-                  value: value$jscomp$0
-                };
-              currentActiveSnapshot = newNode;
-              task.context = newNode;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, children$jscomp$2, -1);
-              var prevSnapshot$jscomp$0 = currentActiveSnapshot;
-              if (null === prevSnapshot$jscomp$0)
-                throw Error(
-                  "Tried to pop a Context at the root of the app. This is a bug in React."
-                );
-              prevSnapshot$jscomp$0.context !== type &&
-                console.error(
-                  "The parent context is not the expected context. This is probably a bug in React."
-                );
-              prevSnapshot$jscomp$0.context._currentValue =
-                prevSnapshot$jscomp$0.parentValue;
-              void 0 !== type._currentRenderer &&
-                null !== type._currentRenderer &&
-                type._currentRenderer !== rendererSigil &&
-                console.error(
-                  "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."
-                );
-              type._currentRenderer = rendererSigil;
-              var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
-                prevSnapshot$jscomp$0.parent);
-              task.context = JSCompiler_inline_result$jscomp$0;
-              task.keyPath = prevKeyPath$jscomp$5;
-              prevSnapshot !== task.context &&
-                console.error(
-                  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
-                );
-              return;
-            case REACT_CONSUMER_TYPE:
-              var context$jscomp$0 = type._context,
-                render = props.children;
-              "function" !== typeof render &&
-                console.error(
-                  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
-                );
-              var newChildren = render(context$jscomp$0._currentValue),
-                prevKeyPath$jscomp$6 = task.keyPath;
-              task.keyPath = keyPath;
-              renderNodeDestructive(request, task, newChildren, -1);
-              task.keyPath = prevKeyPath$jscomp$6;
-              return;
-            case REACT_LAZY_TYPE:
-              var Component = callLazyInitInDEV(type);
-              if (12 === request.status) throw null;
-              renderElement(request, task, keyPath, Component, props, ref);
-              return;
-          }
-        var info = "";
-        if (
-          void 0 === type ||
-          ("object" === typeof type &&
-            null !== type &&
-            0 === Object.keys(type).length)
-        )
-          info +=
-            " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
-        throw Error(
-          "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-            ((null == type ? type : typeof type) + "." + info)
-        );
-      }
-    }
-    function resumeNode(request, task, segmentId, node, childIndex) {
-      var prevReplay = task.replay,
-        blockedBoundary = task.blockedBoundary,
-        resumedSegment = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-      resumedSegment.id = segmentId;
-      resumedSegment.parentFlushed = !0;
-      try {
-        (task.replay = null),
-          (task.blockedSegment = resumedSegment),
-          renderNode(request, task, node, childIndex),
-          (resumedSegment.status = COMPLETED),
-          finishedSegment(request, blockedBoundary, resumedSegment),
-          null === blockedBoundary
-            ? (request.completedRootSegment = resumedSegment)
-            : (queueCompletedSegment(blockedBoundary, resumedSegment),
-              blockedBoundary.parentFlushed &&
-                request.partialBoundaries.push(blockedBoundary));
-      } finally {
-        (task.replay = prevReplay), (task.blockedSegment = null);
-      }
-    }
-    function replayElement(
-      request,
-      task,
-      keyPath,
-      name,
-      keyOrIndex,
-      childIndex,
-      type,
-      props,
-      ref,
-      replay
-    ) {
-      childIndex = replay.nodes;
-      for (var i = 0; i < childIndex.length; i++) {
-        var node = childIndex[i];
-        if (keyOrIndex === node[1]) {
-          if (4 === node.length) {
-            if (null !== name && name !== node[0])
-              throw Error(
-                "Expected the resume to render <" +
-                  node[0] +
-                  "> in this slot but instead it rendered <" +
-                  name +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            var childNodes = node[2];
-            name = node[3];
-            keyOrIndex = task.node;
-            task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
-            try {
-              renderElement(request, task, keyPath, type, props, ref);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw (
-                  (task.node === keyOrIndex
-                    ? (task.replay = replay)
-                    : childIndex.splice(i, 1),
-                  x)
-                );
-              task.replay.pendingTasks--;
-              type = getThrownInfo(task.componentStack);
-              props = request;
-              request = task.blockedBoundary;
-              keyPath = x;
-              ref = name;
-              name = logRecoverableError(props, keyPath, type, task.debugTask);
-              abortRemainingReplayNodes(
-                props,
-                request,
-                childNodes,
-                ref,
-                keyPath,
-                name,
-                type,
-                !1
-              );
-            }
-            task.replay = replay;
-          } else {
-            if (type !== REACT_SUSPENSE_TYPE)
-              throw Error(
-                "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                  (getComponentNameFromType(type) || "Unknown") +
-                  ">. The tree doesn't match so React will fallback to client rendering."
-              );
-            a: {
-              replay = void 0;
-              name = node[5];
-              type = node[2];
-              ref = node[3];
-              keyOrIndex = null === node[4] ? [] : node[4][2];
-              node = null === node[4] ? null : node[4][3];
-              var prevKeyPath = task.keyPath,
-                prevContext = task.formatContext,
-                prevRow = task.row,
-                previousReplaySet = task.replay,
-                parentBoundary = task.blockedBoundary,
-                parentHoistableState = task.hoistableState,
-                content = props.children,
-                fallback = props.fallback,
-                fallbackAbortSet = new Set();
-              props =
-                task.formatContext.insertionMode < HTML_MODE
-                  ? createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      createPreambleState(),
-                      createPreambleState()
-                    )
-                  : createSuspenseBoundary(
-                      request,
-                      task.row,
-                      fallbackAbortSet,
-                      null,
-                      null
-                    );
-              props.parentFlushed = !0;
-              props.rootSegmentID = name;
-              task.blockedBoundary = props;
-              task.hoistableState = props.contentState;
-              task.keyPath = keyPath;
-              task.formatContext = getSuspenseContentFormatContext(
-                request.resumableState,
-                prevContext
-              );
-              task.row = null;
-              task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
-              try {
-                renderNode(request, task, content, -1);
-                if (
-                  1 === task.replay.pendingTasks &&
-                  0 < task.replay.nodes.length
-                )
-                  throw Error(
-                    "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                  );
-                task.replay.pendingTasks--;
-                if (0 === props.pendingTasks && props.status === PENDING) {
-                  props.status = COMPLETED;
-                  request.completedBoundaries.push(props);
-                  break a;
-                }
-              } catch (error) {
-                (props.status = CLIENT_RENDERED),
-                  (childNodes = getThrownInfo(task.componentStack)),
-                  (replay = logRecoverableError(
-                    request,
-                    error,
-                    childNodes,
-                    task.debugTask
-                  )),
-                  encodeErrorForBoundary(props, replay, error, childNodes, !1),
-                  task.replay.pendingTasks--,
-                  request.clientRenderedBoundaries.push(props);
-              } finally {
-                (task.blockedBoundary = parentBoundary),
-                  (task.hoistableState = parentHoistableState),
-                  (task.replay = previousReplaySet),
-                  (task.keyPath = prevKeyPath),
-                  (task.formatContext = prevContext),
-                  (task.row = prevRow);
-              }
-              props = createReplayTask(
-                request,
-                null,
-                { nodes: keyOrIndex, slots: node, pendingTasks: 0 },
-                fallback,
-                -1,
-                parentBoundary,
-                props.fallbackState,
-                fallbackAbortSet,
-                [keyPath[0], "Suspense Fallback", keyPath[2]],
-                getSuspenseFallbackFormatContext(
-                  request.resumableState,
-                  task.formatContext
-                ),
-                task.context,
-                task.treeContext,
-                task.row,
-                replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                  task.componentStack
-                ),
-                emptyContextObject,
-                task.debugTask
-              );
-              pushComponentStack(props);
-              request.pingedTasks.push(props);
-            }
-          }
-          childIndex.splice(i, 1);
-          break;
-        }
-      }
-    }
-    function validateIterable(
-      task,
-      iterable,
-      childIndex,
-      iterator,
-      iteratorFn
-    ) {
-      if (iterator === iterable) {
-        if (
-          -1 !== childIndex ||
-          null === task.componentStack ||
-          "function" !== typeof task.componentStack.type ||
-          "[object GeneratorFunction]" !==
-            Object.prototype.toString.call(task.componentStack.type) ||
-          "[object Generator]" !== Object.prototype.toString.call(iterator)
-        )
-          didWarnAboutGenerators ||
-            console.error(
-              "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
-            ),
-            (didWarnAboutGenerators = !0);
-      } else
-        iterable.entries !== iteratorFn ||
-          didWarnAboutMaps ||
-          (console.error(
-            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-          ),
-          (didWarnAboutMaps = !0));
-    }
-    function renderNodeDestructive(request, task, node, childIndex) {
-      null !== task.replay && "number" === typeof task.replay.slots
-        ? resumeNode(request, task, task.replay.slots, node, childIndex)
-        : ((task.node = node),
-          (task.childIndex = childIndex),
-          (node = task.componentStack),
-          (childIndex = task.debugTask),
-          pushComponentStack(task),
-          retryNode(request, task),
-          (task.componentStack = node),
-          (task.debugTask = childIndex));
-    }
-    function retryNode(request, task) {
-      var node = task.node,
-        childIndex = task.childIndex;
-      if (null !== node) {
-        if ("object" === typeof node) {
-          switch (node.$$typeof) {
-            case REACT_ELEMENT_TYPE:
-              var type = node.type,
-                key = node.key;
-              node = node.props;
-              var refProp = node.ref;
-              refProp = void 0 !== refProp ? refProp : null;
-              var debugTask = task.debugTask,
-                name = getComponentNameFromType(type);
-              key = null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-              var keyPath = [task.keyPath, name, key];
-              null !== task.replay
-                ? debugTask
-                  ? debugTask.run(
-                      replayElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        name,
-                        key,
-                        childIndex,
-                        type,
-                        node,
-                        refProp,
-                        task.replay
-                      )
-                    )
-                  : replayElement(
-                      request,
-                      task,
-                      keyPath,
-                      name,
-                      key,
-                      childIndex,
-                      type,
-                      node,
-                      refProp,
-                      task.replay
-                    )
-                : debugTask
-                  ? debugTask.run(
-                      renderElement.bind(
-                        null,
-                        request,
-                        task,
-                        keyPath,
-                        type,
-                        node,
-                        refProp
-                      )
-                    )
-                  : renderElement(request, task, keyPath, type, node, refProp);
-              return;
-            case REACT_PORTAL_TYPE:
-              throw Error(
-                "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-              );
-            case REACT_LAZY_TYPE:
-              type = callLazyInitInDEV(node);
-              if (12 === request.status) throw null;
-              renderNodeDestructive(request, task, type, childIndex);
-              return;
-          }
-          if (isArrayImpl(node)) {
-            renderChildrenArray(request, task, node, childIndex);
-            return;
-          }
-          if ((key = getIteratorFn(node)))
-            if ((type = key.call(node))) {
-              validateIterable(task, node, childIndex, type, key);
-              node = type.next();
-              if (!node.done) {
-                key = [];
-                do key.push(node.value), (node = type.next());
-                while (!node.done);
-                renderChildrenArray(request, task, key, childIndex);
-              }
-              return;
-            }
-          if ("function" === typeof node.then)
-            return (
-              (task.thenableState = null),
-              renderNodeDestructive(
-                request,
-                task,
-                unwrapThenable(node),
-                childIndex
-              )
-            );
-          if (node.$$typeof === REACT_CONTEXT_TYPE)
-            return renderNodeDestructive(
-              request,
-              task,
-              node._currentValue,
-              childIndex
-            );
-          request = Object.prototype.toString.call(node);
-          throw Error(
-            "Objects are not valid as a React child (found: " +
-              ("[object Object]" === request
-                ? "object with keys {" + Object.keys(node).join(", ") + "}"
-                : request) +
-              "). If you meant to render a collection of children, use an array instead."
-          );
-        }
-        "string" === typeof node
-          ? ((task = task.blockedSegment),
-            null !== task &&
-              (task.lastPushedText = pushTextInstance(
-                task.chunks,
-                node,
-                request.renderState,
-                task.lastPushedText
-              )))
-          : "number" === typeof node || "bigint" === typeof node
-            ? ((task = task.blockedSegment),
-              null !== task &&
-                (task.lastPushedText = pushTextInstance(
-                  task.chunks,
-                  "" + node,
-                  request.renderState,
-                  task.lastPushedText
-                )))
-            : ("function" === typeof node &&
-                ((request = node.displayName || node.name || "Component"),
-                console.error(
-                  "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.",
-                  request,
-                  request
-                )),
-              "symbol" === typeof node &&
-                console.error(
-                  "Symbols are not valid as a React child.\n  %s",
-                  String(node)
-                ));
-      }
-    }
-    function warnForMissingKey(request, task, child) {
-      if (
-        null !== child &&
-        "object" === typeof child &&
-        (child.$$typeof === REACT_ELEMENT_TYPE ||
-          child.$$typeof === REACT_PORTAL_TYPE) &&
-        child._store &&
-        ((!child._store.validated && null == child.key) ||
-          2 === child._store.validated)
-      ) {
-        if ("object" !== typeof child._store)
-          throw Error(
-            "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
-          );
-        child._store.validated = 1;
-        var didWarnForKey = request.didWarnForKey;
-        null == didWarnForKey &&
-          (didWarnForKey = request.didWarnForKey = new WeakSet());
-        request = task.componentStack;
-        if (null !== request && !didWarnForKey.has(request)) {
-          didWarnForKey.add(request);
-          var componentName = getComponentNameFromType(child.type);
-          didWarnForKey = child._owner;
-          var parentOwner = request.owner;
-          request = "";
-          if (parentOwner && "undefined" !== typeof parentOwner.type) {
-            var name = getComponentNameFromType(parentOwner.type);
-            name &&
-              (request = "\n\nCheck the render method of `" + name + "`.");
-          }
-          request ||
-            (componentName &&
-              (request =
-                "\n\nCheck the top-level render call using <" +
-                componentName +
-                ">."));
-          componentName = "";
-          null != didWarnForKey &&
-            parentOwner !== didWarnForKey &&
-            ((parentOwner = null),
-            "undefined" !== typeof didWarnForKey.type
-              ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
-              : "string" === typeof didWarnForKey.name &&
-                (parentOwner = didWarnForKey.name),
-            parentOwner &&
-              (componentName =
-                " It was passed a child from " + parentOwner + "."));
-          didWarnForKey = task.componentStack;
-          task.componentStack = {
-            parent: task.componentStack,
-            type: child.type,
-            owner: child._owner,
-            stack: child._debugStack
-          };
-          console.error(
-            'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
-            request,
-            componentName
-          );
-          task.componentStack = didWarnForKey;
-        }
-      }
-    }
-    function renderChildrenArray(request, task, children, childIndex) {
-      var prevKeyPath = task.keyPath,
-        previousComponentStack = task.componentStack;
-      var previousDebugTask = task.debugTask;
-      pushServerComponentStack(task, task.node._debugInfo);
-      if (
-        -1 !== childIndex &&
-        ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-        null !== task.replay)
-      ) {
-        for (
-          var replay = task.replay, replayNodes = replay.nodes, j = 0;
-          j < replayNodes.length;
-          j++
-        ) {
-          var node = replayNodes[j];
-          if (node[1] === childIndex) {
-            childIndex = node[2];
-            node = node[3];
-            task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-            try {
-              renderChildrenArray(request, task, children, -1);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-            } catch (x) {
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                (x === SuspenseException || "function" === typeof x.then)
-              )
-                throw x;
-              task.replay.pendingTasks--;
-              var thrownInfo = getThrownInfo(task.componentStack);
-              children = task.blockedBoundary;
-              var error = x,
-                resumeSlots = node;
-              node = logRecoverableError(
-                request,
-                error,
-                thrownInfo,
-                task.debugTask
-              );
-              abortRemainingReplayNodes(
-                request,
-                children,
-                childIndex,
-                resumeSlots,
-                error,
-                node,
-                thrownInfo,
-                !1
-              );
-            }
-            task.replay = replay;
-            replayNodes.splice(j, 1);
-            break;
-          }
-        }
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      replay = task.treeContext;
-      replayNodes = children.length;
-      if (
-        null !== task.replay &&
-        ((j = task.replay.slots), null !== j && "object" === typeof j)
-      ) {
-        for (childIndex = 0; childIndex < replayNodes; childIndex++)
-          (node = children[childIndex]),
-            (task.treeContext = pushTreeContext(
-              replay,
-              replayNodes,
-              childIndex
-            )),
-            (error = j[childIndex]),
-            "number" === typeof error
-              ? (resumeNode(request, task, error, node, childIndex),
-                delete j[childIndex])
-              : renderNode(request, task, node, childIndex);
-        task.treeContext = replay;
-        task.keyPath = prevKeyPath;
-        task.componentStack = previousComponentStack;
-        task.debugTask = previousDebugTask;
-        return;
-      }
-      for (j = 0; j < replayNodes; j++)
-        (childIndex = children[j]),
-          warnForMissingKey(request, task, childIndex),
-          (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-          renderNode(request, task, childIndex, j);
-      task.treeContext = replay;
-      task.keyPath = prevKeyPath;
-      task.componentStack = previousComponentStack;
-      task.debugTask = previousDebugTask;
-    }
-    function trackPostponedBoundary(request, trackedPostpones, boundary) {
-      boundary.status = POSTPONED;
-      boundary.rootSegmentID = request.nextSegmentId++;
-      request = boundary.trackedContentKeyPath;
-      if (null === request)
-        throw Error(
-          "It should not be possible to postpone at the root. This is a bug in React."
-        );
-      var fallbackReplayNode = boundary.trackedFallbackNode,
-        children = [],
-        boundaryNode = trackedPostpones.workingMap.get(request);
-      if (void 0 === boundaryNode)
-        return (
-          (boundary = [
-            request[1],
-            request[2],
-            children,
-            null,
-            fallbackReplayNode,
-            boundary.rootSegmentID
-          ]),
-          trackedPostpones.workingMap.set(request, boundary),
-          addToReplayParent(boundary, request[0], trackedPostpones),
-          boundary
-        );
-      boundaryNode[4] = fallbackReplayNode;
-      boundaryNode[5] = boundary.rootSegmentID;
-      return boundaryNode;
-    }
-    function trackPostpone(request, trackedPostpones, task, segment) {
-      segment.status = POSTPONED;
-      var keyPath = task.keyPath,
-        boundary = task.blockedBoundary;
-      if (null === boundary)
-        (segment.id = request.nextSegmentId++),
-          (trackedPostpones.rootSlots = segment.id),
-          null !== request.completedRootSegment &&
-            (request.completedRootSegment.status = POSTPONED);
-      else {
-        if (null !== boundary && boundary.status === PENDING) {
-          var boundaryNode = trackPostponedBoundary(
-            request,
-            trackedPostpones,
-            boundary
-          );
-          if (
-            boundary.trackedContentKeyPath === keyPath &&
-            -1 === task.childIndex
-          ) {
-            -1 === segment.id &&
-              (segment.id = segment.parentFlushed
-                ? boundary.rootSegmentID
-                : request.nextSegmentId++);
-            boundaryNode[3] = segment.id;
-            return;
-          }
-        }
-        -1 === segment.id &&
-          (segment.id =
-            segment.parentFlushed && null !== boundary
-              ? boundary.rootSegmentID
-              : request.nextSegmentId++);
-        if (-1 === task.childIndex)
-          null === keyPath
-            ? (trackedPostpones.rootSlots = segment.id)
-            : ((task = trackedPostpones.workingMap.get(keyPath)),
-              void 0 === task
-                ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-                  addToReplayParent(task, keyPath[0], trackedPostpones))
-                : (task[3] = segment.id));
-        else {
-          if (null === keyPath)
-            if (((request = trackedPostpones.rootSlots), null === request))
-              request = trackedPostpones.rootSlots = {};
-            else {
-              if ("number" === typeof request)
-                throw Error(
-                  "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-                );
-            }
-          else if (
-            ((boundary = trackedPostpones.workingMap),
-            (boundaryNode = boundary.get(keyPath)),
-            void 0 === boundaryNode)
-          )
-            (request = {}),
-              (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-              boundary.set(keyPath, boundaryNode),
-              addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-          else if (((request = boundaryNode[3]), null === request))
-            request = boundaryNode[3] = {};
-          else if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-          request[task.childIndex] = segment.id;
-        }
-      }
-    }
-    function untrackBoundary(request, boundary) {
-      request = request.trackedPostpones;
-      null !== request &&
-        ((boundary = boundary.trackedContentKeyPath),
-        null !== boundary &&
-          ((boundary = request.workingMap.get(boundary)),
-          void 0 !== boundary &&
-            ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-    }
-    function spawnNewSuspendedReplayTask(request, task, thenableState) {
-      return createReplayTask(
-        request,
-        thenableState,
-        task.replay,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function spawnNewSuspendedRenderTask(request, task, thenableState) {
-      var segment = task.blockedSegment,
-        newSegment = createPendingSegment(
-          request,
-          segment.chunks.length,
-          null,
-          task.formatContext,
-          segment.lastPushedText,
-          !0
-        );
-      segment.children.push(newSegment);
-      segment.lastPushedText = !1;
-      return createRenderTask(
-        request,
-        thenableState,
-        task.node,
-        task.childIndex,
-        task.blockedBoundary,
-        newSegment,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.abortSet,
-        task.keyPath,
-        task.formatContext,
-        task.context,
-        task.treeContext,
-        task.row,
-        task.componentStack,
-        emptyContextObject,
-        task.debugTask
-      );
-    }
-    function renderNode(request, task, node, childIndex) {
-      var previousFormatContext = task.formatContext,
-        previousContext = task.context,
-        previousKeyPath = task.keyPath,
-        previousTreeContext = task.treeContext,
-        previousComponentStack = task.componentStack,
-        previousDebugTask = task.debugTask,
-        segment = task.blockedSegment;
-      if (null === segment) {
-        segment = task.replay;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue) {
-          if (
-            (resetHooksState(),
-            (node =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              childIndex =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedReplayTask(
-                request,
-                task,
-                childIndex
-              ).ping;
-              node.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              node =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              node = spawnNewSuspendedReplayTask(request, task, node);
-              request.pingedTasks.push(node);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.replay = segment;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      } else {
-        var childrenLength = segment.children.length,
-          chunkLength = segment.chunks.length;
-        try {
-          return renderNodeDestructive(request, task, node, childIndex);
-        } catch (thrownValue$3) {
-          if (
-            (resetHooksState(),
-            (segment.children.length = childrenLength),
-            (segment.chunks.length = chunkLength),
-            (node =
-              thrownValue$3 === SuspenseException
-                ? getSuspendedThenable()
-                : thrownValue$3),
-            12 !== request.status && "object" === typeof node && null !== node)
-          ) {
-            if ("function" === typeof node.then) {
-              segment = node;
-              node =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              request = spawnNewSuspendedRenderTask(request, task, node).ping;
-              segment.then(request, request);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-            if ("Maximum call stack size exceeded" === node.message) {
-              segment =
-                thrownValue$3 === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              segment = spawnNewSuspendedRenderTask(request, task, segment);
-              request.pingedTasks.push(segment);
-              task.formatContext = previousFormatContext;
-              task.context = previousContext;
-              task.keyPath = previousKeyPath;
-              task.treeContext = previousTreeContext;
-              task.componentStack = previousComponentStack;
-              task.debugTask = previousDebugTask;
-              switchContext(previousContext);
-              return;
-            }
-          }
-        }
-      }
-      task.formatContext = previousFormatContext;
-      task.context = previousContext;
-      task.keyPath = previousKeyPath;
-      task.treeContext = previousTreeContext;
-      switchContext(previousContext);
-      throw node;
-    }
-    function abortTaskSoft(task) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      null !== segment &&
-        ((segment.status = ABORTED),
-        finishedTask(this, boundary, task.row, segment));
-    }
-    function abortRemainingReplayNodes(
-      request$jscomp$0,
-      boundary,
-      nodes,
-      slots,
-      error$jscomp$0,
-      errorDigest$jscomp$0,
-      errorInfo$jscomp$0,
-      aborted
-    ) {
-      for (var i = 0; i < nodes.length; i++) {
-        var node = nodes[i];
-        if (4 === node.length)
-          abortRemainingReplayNodes(
-            request$jscomp$0,
-            boundary,
-            node[2],
-            node[3],
-            error$jscomp$0,
-            errorDigest$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          );
-        else {
-          var request = request$jscomp$0;
-          node = node[5];
-          var error = error$jscomp$0,
-            errorDigest = errorDigest$jscomp$0,
-            errorInfo = errorInfo$jscomp$0,
-            wasAborted = aborted,
-            resumedBoundary = createSuspenseBoundary(
-              request,
-              null,
-              new Set(),
-              null,
-              null
-            );
-          resumedBoundary.parentFlushed = !0;
-          resumedBoundary.rootSegmentID = node;
-          resumedBoundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(
-            resumedBoundary,
-            errorDigest,
-            error,
-            errorInfo,
-            wasAborted
-          );
-          resumedBoundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(resumedBoundary);
-        }
-      }
-      nodes.length = 0;
-      if (null !== slots) {
-        if (null === boundary)
-          throw Error(
-            "We should not have any resumable nodes in the shell. This is a bug in React."
-          );
-        boundary.status !== CLIENT_RENDERED &&
-          ((boundary.status = CLIENT_RENDERED),
-          encodeErrorForBoundary(
-            boundary,
-            errorDigest$jscomp$0,
-            error$jscomp$0,
-            errorInfo$jscomp$0,
-            aborted
-          ),
-          boundary.parentFlushed &&
-            request$jscomp$0.clientRenderedBoundaries.push(boundary));
-        if ("object" === typeof slots)
-          for (var index in slots) delete slots[index];
-      }
-    }
-    function abortTask(task, request, error) {
-      var boundary = task.blockedBoundary,
-        segment = task.blockedSegment;
-      if (null !== segment) {
-        if (6 === segment.status) return;
-        segment.status = ABORTED;
-      }
-      var errorInfo = getThrownInfo(task.componentStack),
-        node = task.node;
-      null !== node &&
-        "object" === typeof node &&
-        pushHaltedAwaitOnComponentStack(task, node._debugInfo);
-      if (null === boundary) {
-        if (13 !== request.status && request.status !== CLOSED) {
-          boundary = task.replay;
-          if (null === boundary) {
-            null !== request.trackedPostpones && null !== segment
-              ? ((boundary = request.trackedPostpones),
-                logRecoverableError(request, error, errorInfo, task.debugTask),
-                trackPostpone(request, boundary, task, segment),
-                finishedTask(request, null, task.row, segment))
-              : (logRecoverableError(request, error, errorInfo, task.debugTask),
-                fatalError(request, error, errorInfo, task.debugTask));
-            return;
-          }
-          boundary.pendingTasks--;
-          0 === boundary.pendingTasks &&
-            0 < boundary.nodes.length &&
-            ((segment = logRecoverableError(request, error, errorInfo, null)),
-            abortRemainingReplayNodes(
-              request,
-              null,
-              boundary.nodes,
-              boundary.slots,
-              error,
-              segment,
-              errorInfo,
-              !0
-            ));
-          request.pendingRootTasks--;
-          0 === request.pendingRootTasks && completeShell(request);
-        }
-      } else {
-        node = request.trackedPostpones;
-        if (boundary.status !== CLIENT_RENDERED) {
-          if (null !== node && null !== segment)
-            return (
-              logRecoverableError(request, error, errorInfo, task.debugTask),
-              trackPostpone(request, node, task, segment),
-              boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-                return abortTask(fallbackTask, request, error);
-              }),
-              boundary.fallbackAbortableTasks.clear(),
-              finishedTask(request, boundary, task.row, segment)
-            );
-          boundary.status = CLIENT_RENDERED;
-          segment = logRecoverableError(
-            request,
-            error,
-            errorInfo,
-            task.debugTask
-          );
-          boundary.status = CLIENT_RENDERED;
-          encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
-          untrackBoundary(request, boundary);
-          boundary.parentFlushed &&
-            request.clientRenderedBoundaries.push(boundary);
-        }
-        boundary.pendingTasks--;
-        errorInfo = boundary.row;
-        null !== errorInfo &&
-          0 === --errorInfo.pendingTasks &&
-          finishSuspenseListRow(request, errorInfo);
-        boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-          return abortTask(fallbackTask, request, error);
-        });
-        boundary.fallbackAbortableTasks.clear();
-      }
-      task = task.row;
-      null !== task &&
-        0 === --task.pendingTasks &&
-        finishSuspenseListRow(request, task);
-      request.allPendingTasks--;
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function safelyEmitEarlyPreloads(request, shellComplete) {
-      try {
-        var renderState = request.renderState,
-          onHeaders = renderState.onHeaders;
-        if (onHeaders) {
-          var headers = renderState.headers;
-          if (headers) {
-            renderState.headers = null;
-            var linkHeader = headers.preconnects;
-            headers.fontPreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.fontPreloads));
-            headers.highImagePreloads &&
-              (linkHeader && (linkHeader += ", "),
-              (linkHeader += headers.highImagePreloads));
-            if (!shellComplete) {
-              var queueIter = renderState.styles.values(),
-                queueStep = queueIter.next();
-              b: for (
-                ;
-                0 < headers.remainingCapacity && !queueStep.done;
-                queueStep = queueIter.next()
-              )
-                for (
-                  var sheetIter = queueStep.value.sheets.values(),
-                    sheetStep = sheetIter.next();
-                  0 < headers.remainingCapacity && !sheetStep.done;
-                  sheetStep = sheetIter.next()
-                ) {
-                  var sheet = sheetStep.value,
-                    props = sheet.props,
-                    key = props.href,
-                    props$jscomp$0 = sheet.props;
-                  var header = getPreloadAsHeader(
-                    props$jscomp$0.href,
-                    "style",
-                    {
-                      crossOrigin: props$jscomp$0.crossOrigin,
-                      integrity: props$jscomp$0.integrity,
-                      nonce: props$jscomp$0.nonce,
-                      type: props$jscomp$0.type,
-                      fetchPriority: props$jscomp$0.fetchPriority,
-                      referrerPolicy: props$jscomp$0.referrerPolicy,
-                      media: props$jscomp$0.media
-                    }
-                  );
-                  if (0 <= (headers.remainingCapacity -= header.length + 2))
-                    (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                      linkHeader && (linkHeader += ", "),
-                      (linkHeader += header),
-                      (renderState.resets.style[key] =
-                        "string" === typeof props.crossOrigin ||
-                        "string" === typeof props.integrity
-                          ? [props.crossOrigin, props.integrity]
-                          : PRELOAD_NO_CREDS);
-                  else break b;
-                }
-            }
-            linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-          }
-        }
-      } catch (error) {
-        logRecoverableError(request, error, {}, null);
-      }
-    }
-    function completeShell(request) {
-      null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-      null === request.trackedPostpones && preparePreamble(request);
-      request.onShellError = noop;
-      request = request.onShellReady;
-      request();
-    }
-    function completeAll(request) {
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? !0
-          : null === request.completedRootSegment ||
-              request.completedRootSegment.status !== POSTPONED
-      );
-      preparePreamble(request);
-      request = request.onAllReady;
-      request();
-    }
-    function queueCompletedSegment(boundary, segment) {
-      if (
-        0 === segment.chunks.length &&
-        1 === segment.children.length &&
-        null === segment.children[0].boundary &&
-        -1 === segment.children[0].id
-      ) {
-        var childSegment = segment.children[0];
-        childSegment.id = segment.id;
-        childSegment.parentFlushed = !0;
-        (childSegment.status !== COMPLETED &&
-          childSegment.status !== ABORTED &&
-          childSegment.status !== ERRORED) ||
-          queueCompletedSegment(boundary, childSegment);
-      } else boundary.completedSegments.push(segment);
-    }
-    function finishedSegment(request, boundary, segment) {
-      if (null !== byteLengthOfChunk) {
-        segment = segment.chunks;
-        for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-          segmentByteSize += byteLengthOfChunk(segment[i]);
-        null === boundary
-          ? (request.byteSize += segmentByteSize)
-          : (boundary.byteSize += segmentByteSize);
-      }
-    }
-    function finishedTask(request, boundary, row, segment) {
-      null !== row &&
-        (0 === --row.pendingTasks
-          ? finishSuspenseListRow(request, row)
-          : row.together && tryToResolveTogetherRow(request, row));
-      request.allPendingTasks--;
-      if (null === boundary) {
-        if (null !== segment && segment.parentFlushed) {
-          if (null !== request.completedRootSegment)
-            throw Error(
-              "There can only be one root segment. This is a bug in React."
-            );
-          request.completedRootSegment = segment;
-        }
-        request.pendingRootTasks--;
-        0 === request.pendingRootTasks && completeShell(request);
-      } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
-        if (0 === boundary.pendingTasks)
-          if (
-            (boundary.status === PENDING && (boundary.status = COMPLETED),
-            null !== segment &&
-              segment.parentFlushed &&
-              (segment.status === COMPLETED || segment.status === ABORTED) &&
-              queueCompletedSegment(boundary, segment),
-            boundary.parentFlushed &&
-              request.completedBoundaries.push(boundary),
-            boundary.status === COMPLETED)
-          )
-            (row = boundary.row),
-              null !== row &&
-                hoistHoistables(row.hoistables, boundary.contentState),
-              isEligibleForOutlining(request, boundary) ||
-                (boundary.fallbackAbortableTasks.forEach(
-                  abortTaskSoft,
-                  request
-                ),
-                boundary.fallbackAbortableTasks.clear(),
-                null !== row &&
-                  0 === --row.pendingTasks &&
-                  finishSuspenseListRow(request, row)),
-              0 === request.pendingRootTasks &&
-                null === request.trackedPostpones &&
-                null !== boundary.contentPreamble &&
-                preparePreamble(request);
-          else {
-            if (
-              boundary.status === POSTPONED &&
-              ((boundary = boundary.row), null !== boundary)
-            ) {
-              if (null !== request.trackedPostpones) {
-                row = request.trackedPostpones;
-                var postponedRow = boundary.next;
-                if (
-                  null !== postponedRow &&
-                  ((segment = postponedRow.boundaries), null !== segment)
-                )
-                  for (
-                    postponedRow.boundaries = null, postponedRow = 0;
-                    postponedRow < segment.length;
-                    postponedRow++
-                  ) {
-                    var postponedBoundary = segment[postponedRow];
-                    trackPostponedBoundary(request, row, postponedBoundary);
-                    finishedTask(request, postponedBoundary, null, null);
-                  }
-              }
-              0 === --boundary.pendingTasks &&
-                finishSuspenseListRow(request, boundary);
-            }
-          }
-        else
-          null === segment ||
-            !segment.parentFlushed ||
-            (segment.status !== COMPLETED && segment.status !== ABORTED) ||
-            (queueCompletedSegment(boundary, segment),
-            1 === boundary.completedSegments.length &&
-              boundary.parentFlushed &&
-              request.partialBoundaries.push(boundary)),
-            (boundary = boundary.row),
-            null !== boundary &&
-              boundary.together &&
-              tryToResolveTogetherRow(request, boundary);
-      0 === request.allPendingTasks && completeAll(request);
-    }
-    function performWork(request$jscomp$2) {
-      if (
-        request$jscomp$2.status !== CLOSED &&
-        13 !== request$jscomp$2.status
-      ) {
-        var prevContext = currentActiveSnapshot,
-          prevDispatcher = ReactSharedInternals.H;
-        ReactSharedInternals.H = HooksDispatcher;
-        var prevAsyncDispatcher = ReactSharedInternals.A;
-        ReactSharedInternals.A = DefaultAsyncDispatcher;
-        var prevRequest = currentRequest;
-        currentRequest = request$jscomp$2;
-        var prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-        ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-        var prevResumableState = currentResumableState;
-        currentResumableState = request$jscomp$2.resumableState;
-        try {
-          var pingedTasks = request$jscomp$2.pingedTasks,
-            i;
-          for (i = 0; i < pingedTasks.length; i++) {
-            var request = request$jscomp$2,
-              task = pingedTasks[i],
-              segment = task.blockedSegment;
-            if (null === segment) {
-              var prevTaskInDEV = void 0,
-                request$jscomp$0 = request;
-              request = task;
-              if (0 !== request.replay.pendingTasks) {
-                switchContext(request.context);
-                prevTaskInDEV = currentTaskInDEV;
-                currentTaskInDEV = request;
-                try {
-                  "number" === typeof request.replay.slots
-                    ? resumeNode(
-                        request$jscomp$0,
-                        request,
-                        request.replay.slots,
-                        request.node,
-                        request.childIndex
-                      )
-                    : retryNode(request$jscomp$0, request);
-                  if (
-                    1 === request.replay.pendingTasks &&
-                    0 < request.replay.nodes.length
-                  )
-                    throw Error(
-                      "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                    );
-                  request.replay.pendingTasks--;
-                  request.abortSet.delete(request);
-                  finishedTask(
-                    request$jscomp$0,
-                    request.blockedBoundary,
-                    request.row,
-                    null
-                  );
-                } catch (thrownValue) {
-                  resetHooksState();
-                  var x =
-                    thrownValue === SuspenseException
-                      ? getSuspendedThenable()
-                      : thrownValue;
-                  if (
-                    "object" === typeof x &&
-                    null !== x &&
-                    "function" === typeof x.then
-                  ) {
-                    var ping = request.ping;
-                    x.then(ping, ping);
-                    request.thenableState =
-                      thrownValue === SuspenseException
-                        ? getThenableStateAfterSuspending()
-                        : null;
-                  } else {
-                    request.replay.pendingTasks--;
-                    request.abortSet.delete(request);
-                    var errorInfo = getThrownInfo(request.componentStack),
-                      errorDigest = void 0,
-                      request$jscomp$1 = request$jscomp$0,
-                      boundary = request.blockedBoundary,
-                      error$jscomp$0 =
-                        12 === request$jscomp$0.status
-                          ? request$jscomp$0.fatalError
-                          : x,
-                      errorInfo$jscomp$0 = errorInfo,
-                      replayNodes = request.replay.nodes,
-                      resumeSlots = request.replay.slots;
-                    errorDigest = logRecoverableError(
-                      request$jscomp$1,
-                      error$jscomp$0,
-                      errorInfo$jscomp$0,
-                      request.debugTask
-                    );
-                    abortRemainingReplayNodes(
-                      request$jscomp$1,
-                      boundary,
-                      replayNodes,
-                      resumeSlots,
-                      error$jscomp$0,
-                      errorDigest,
-                      errorInfo$jscomp$0,
-                      !1
-                    );
-                    request$jscomp$0.pendingRootTasks--;
-                    0 === request$jscomp$0.pendingRootTasks &&
-                      completeShell(request$jscomp$0);
-                    request$jscomp$0.allPendingTasks--;
-                    0 === request$jscomp$0.allPendingTasks &&
-                      completeAll(request$jscomp$0);
-                  }
-                } finally {
-                  currentTaskInDEV = prevTaskInDEV;
-                }
-              }
-            } else if (
-              ((request$jscomp$0 = prevTaskInDEV = void 0),
-              (errorDigest = task),
-              (request$jscomp$1 = segment),
-              request$jscomp$1.status === PENDING)
-            ) {
-              request$jscomp$1.status = 6;
-              switchContext(errorDigest.context);
-              request$jscomp$0 = currentTaskInDEV;
-              currentTaskInDEV = errorDigest;
-              var childrenLength = request$jscomp$1.children.length,
-                chunkLength = request$jscomp$1.chunks.length;
-              try {
-                retryNode(request, errorDigest),
-                  request$jscomp$1.lastPushedText &&
-                    request$jscomp$1.textEmbedded &&
-                    request$jscomp$1.chunks.push(textSeparator),
-                  errorDigest.abortSet.delete(errorDigest),
-                  (request$jscomp$1.status = COMPLETED),
-                  finishedSegment(
-                    request,
-                    errorDigest.blockedBoundary,
-                    request$jscomp$1
-                  ),
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-              } catch (thrownValue) {
-                resetHooksState();
-                request$jscomp$1.children.length = childrenLength;
-                request$jscomp$1.chunks.length = chunkLength;
-                var x$jscomp$0 =
-                  thrownValue === SuspenseException
-                    ? getSuspendedThenable()
-                    : 12 === request.status
-                      ? request.fatalError
-                      : thrownValue;
-                if (
-                  12 === request.status &&
-                  null !== request.trackedPostpones
-                ) {
-                  var trackedPostpones = request.trackedPostpones,
-                    thrownInfo = getThrownInfo(errorDigest.componentStack);
-                  errorDigest.abortSet.delete(errorDigest);
-                  logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    thrownInfo,
-                    errorDigest.debugTask
-                  );
-                  trackPostpone(
-                    request,
-                    trackedPostpones,
-                    errorDigest,
-                    request$jscomp$1
-                  );
-                  finishedTask(
-                    request,
-                    errorDigest.blockedBoundary,
-                    errorDigest.row,
-                    request$jscomp$1
-                  );
-                } else if (
-                  "object" === typeof x$jscomp$0 &&
-                  null !== x$jscomp$0 &&
-                  "function" === typeof x$jscomp$0.then
-                ) {
-                  request$jscomp$1.status = PENDING;
-                  errorDigest.thenableState =
-                    thrownValue === SuspenseException
-                      ? getThenableStateAfterSuspending()
-                      : null;
-                  var ping$jscomp$0 = errorDigest.ping;
-                  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-                } else {
-                  var errorInfo$jscomp$1 = getThrownInfo(
-                    errorDigest.componentStack
-                  );
-                  errorDigest.abortSet.delete(errorDigest);
-                  request$jscomp$1.status = ERRORED;
-                  var boundary$jscomp$0 = errorDigest.blockedBoundary,
-                    row = errorDigest.row,
-                    debugTask = errorDigest.debugTask;
-                  null !== row &&
-                    0 === --row.pendingTasks &&
-                    finishSuspenseListRow(request, row);
-                  request.allPendingTasks--;
-                  prevTaskInDEV = logRecoverableError(
-                    request,
-                    x$jscomp$0,
-                    errorInfo$jscomp$1,
-                    debugTask
-                  );
-                  if (null === boundary$jscomp$0)
-                    fatalError(
-                      request,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      debugTask
-                    );
-                  else if (
-                    (boundary$jscomp$0.pendingTasks--,
-                    boundary$jscomp$0.status !== CLIENT_RENDERED)
-                  ) {
-                    boundary$jscomp$0.status = CLIENT_RENDERED;
-                    encodeErrorForBoundary(
-                      boundary$jscomp$0,
-                      prevTaskInDEV,
-                      x$jscomp$0,
-                      errorInfo$jscomp$1,
-                      !1
-                    );
-                    untrackBoundary(request, boundary$jscomp$0);
-                    var boundaryRow = boundary$jscomp$0.row;
-                    null !== boundaryRow &&
-                      0 === --boundaryRow.pendingTasks &&
-                      finishSuspenseListRow(request, boundaryRow);
-                    boundary$jscomp$0.parentFlushed &&
-                      request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                    0 === request.pendingRootTasks &&
-                      null === request.trackedPostpones &&
-                      null !== boundary$jscomp$0.contentPreamble &&
-                      preparePreamble(request);
-                  }
-                  0 === request.allPendingTasks && completeAll(request);
-                }
-              } finally {
-                currentTaskInDEV = request$jscomp$0;
-              }
-            }
-          }
-          pingedTasks.splice(0, i);
-          null !== request$jscomp$2.destination &&
-            flushCompletedQueues(
-              request$jscomp$2,
-              request$jscomp$2.destination
-            );
-        } catch (error) {
-          (pingedTasks = {}),
-            logRecoverableError(request$jscomp$2, error, pingedTasks, null),
-            fatalError(request$jscomp$2, error, pingedTasks, null);
-        } finally {
-          (currentResumableState = prevResumableState),
-            (ReactSharedInternals.H = prevDispatcher),
-            (ReactSharedInternals.A = prevAsyncDispatcher),
-            (ReactSharedInternals.getCurrentStack = prevGetCurrentStackImpl),
-            prevDispatcher === HooksDispatcher && switchContext(prevContext),
-            (currentRequest = prevRequest);
-        }
-      }
-    }
-    function preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      segment.preambleChildren.length &&
-        collectedPreambleSegments.push(segment.preambleChildren);
-      for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-        pendingPreambles =
-          preparePreambleFromSegment(
-            request,
-            segment.children[i],
-            collectedPreambleSegments
-          ) || pendingPreambles;
-      return pendingPreambles;
-    }
-    function preparePreambleFromSegment(
-      request,
-      segment,
-      collectedPreambleSegments
-    ) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return preparePreambleFromSubtree(
-          request,
-          segment,
-          collectedPreambleSegments
-        );
-      var preamble = boundary.contentPreamble,
-        fallbackPreamble = boundary.fallbackPreamble;
-      if (null === preamble || null === fallbackPreamble) return !1;
-      switch (boundary.status) {
-        case COMPLETED:
-          hoistPreambleState(request.renderState, preamble);
-          request.byteSize += boundary.byteSize;
-          segment = boundary.completedSegments[0];
-          if (!segment)
-            throw Error(
-              "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-            );
-          return preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          );
-        case POSTPONED:
-          if (null !== request.trackedPostpones) return !0;
-        case CLIENT_RENDERED:
-          if (segment.status === COMPLETED)
-            return (
-              hoistPreambleState(request.renderState, fallbackPreamble),
-              preparePreambleFromSubtree(
-                request,
-                segment,
-                collectedPreambleSegments
-              )
-            );
-        default:
-          return !0;
-      }
-    }
-    function preparePreamble(request) {
-      if (
-        request.completedRootSegment &&
-        null === request.completedPreambleSegments
-      ) {
-        var collectedPreambleSegments = [],
-          originalRequestByteSize = request.byteSize,
-          hasPendingPreambles = preparePreambleFromSegment(
-            request,
-            request.completedRootSegment,
-            collectedPreambleSegments
-          ),
-          preamble = request.renderState.preamble;
-        !1 === hasPendingPreambles ||
-        (preamble.headChunks && preamble.bodyChunks)
-          ? (request.completedPreambleSegments = collectedPreambleSegments)
-          : (request.byteSize = originalRequestByteSize);
-      }
-    }
-    function flushSubtree(request, destination, segment, hoistableState) {
-      segment.parentFlushed = !0;
-      switch (segment.status) {
-        case PENDING:
-          segment.id = request.nextSegmentId++;
-        case POSTPONED:
-          return (
-            (hoistableState = segment.id),
-            (segment.lastPushedText = !1),
-            (segment.textEmbedded = !1),
-            (request = request.renderState),
-            writeChunk(destination, placeholder1),
-            writeChunk(destination, request.placeholderPrefix),
-            (request = hoistableState.toString(16)),
-            writeChunk(destination, request),
-            writeChunkAndReturn(destination, placeholder2)
-          );
-        case COMPLETED:
-          segment.status = FLUSHED;
-          var r = !0,
-            chunks = segment.chunks,
-            chunkIdx = 0;
-          segment = segment.children;
-          for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-            for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-              writeChunk(destination, chunks[chunkIdx]);
-            r = flushSegment(request, destination, r, hoistableState);
-          }
-          for (; chunkIdx < chunks.length - 1; chunkIdx++)
-            writeChunk(destination, chunks[chunkIdx]);
-          chunkIdx < chunks.length &&
-            (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-          return r;
-        case ABORTED:
-          return !0;
-        default:
-          throw Error(
-            "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-          );
-      }
-    }
-    function flushSegment(request, destination, segment, hoistableState) {
-      var boundary = segment.boundary;
-      if (null === boundary)
-        return flushSubtree(request, destination, segment, hoistableState);
-      boundary.parentFlushed = !0;
-      if (boundary.status === CLIENT_RENDERED) {
-        var row = boundary.row;
-        null !== row &&
-          0 === --row.pendingTasks &&
-          finishSuspenseListRow(request, row);
-        row = boundary.errorDigest;
-        var errorMessage = boundary.errorMessage,
-          errorStack = boundary.errorStack;
-        boundary = boundary.errorComponentStack;
-        writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-        writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-        row &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-          writeChunk(destination, escapeTextForBrowser(row)),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorMessage &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1B),
-          writeChunk(destination, escapeTextForBrowser(errorMessage)),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        errorStack &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1C),
-          writeChunk(destination, escapeTextForBrowser(errorStack)),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        boundary &&
-          (writeChunk(destination, clientRenderedSuspenseBoundaryError1D),
-          writeChunk(destination, escapeTextForBrowser(boundary)),
-          writeChunk(
-            destination,
-            clientRenderedSuspenseBoundaryErrorAttrInterstitial
-          ));
-        writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-        flushSubtree(request, destination, segment, hoistableState);
-      } else if (boundary.status !== COMPLETED)
-        boundary.status === PENDING &&
-          (boundary.rootSegmentID = request.nextSegmentId++),
-          0 < boundary.completedSegments.length &&
-            request.partialBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          hoistableState &&
-            hoistHoistables(hoistableState, boundary.fallbackState),
-          flushSubtree(request, destination, segment, hoistableState);
-      else if (
-        !flushingPartialBoundaries &&
-        isEligibleForOutlining(request, boundary) &&
-        (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-          hasSuspenseyContent(boundary.contentState))
-      )
-        (boundary.rootSegmentID = request.nextSegmentId++),
-          request.completedBoundaries.push(boundary),
-          writeStartPendingSuspenseBoundary(
-            destination,
-            request.renderState,
-            boundary.rootSegmentID
-          ),
-          flushSubtree(request, destination, segment, hoistableState);
-      else {
-        flushedByteSize += boundary.byteSize;
-        hoistableState &&
-          hoistHoistables(hoistableState, boundary.contentState);
-        segment = boundary.row;
-        null !== segment &&
-          isEligibleForOutlining(request, boundary) &&
-          0 === --segment.pendingTasks &&
-          finishSuspenseListRow(request, segment);
-        writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-        segment = boundary.completedSegments;
-        if (1 !== segment.length)
-          throw Error(
-            "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-          );
-        flushSegment(request, destination, segment[0], hoistableState);
-      }
-      return writeChunkAndReturn(destination, endSuspenseBoundary);
-    }
-    function flushSegmentContainer(
-      request,
-      destination,
-      segment,
-      hoistableState
-    ) {
-      writeStartSegment(
-        destination,
-        request.renderState,
-        segment.parentFormatContext,
-        segment.id
-      );
-      flushSegment(request, destination, segment, hoistableState);
-      return writeEndSegment(destination, segment.parentFormatContext);
-    }
-    function flushCompletedBoundary(request, destination, boundary) {
-      flushedByteSize = boundary.byteSize;
-      for (
-        var completedSegments = boundary.completedSegments, i = 0;
-        i < completedSegments.length;
-        i++
-      )
-        flushPartiallyCompletedSegment(
-          request,
-          destination,
-          boundary,
-          completedSegments[i]
-        );
-      completedSegments.length = 0;
-      completedSegments = boundary.row;
-      null !== completedSegments &&
-        isEligibleForOutlining(request, boundary) &&
-        0 === --completedSegments.pendingTasks &&
-        finishSuspenseListRow(request, completedSegments);
-      writeHoistablesForBoundary(
-        destination,
-        boundary.contentState,
-        request.renderState
-      );
-      completedSegments = request.resumableState;
-      request = request.renderState;
-      i = boundary.rootSegmentID;
-      boundary = boundary.contentState;
-      var requiresStyleInsertion = request.stylesToHoist;
-      request.stylesToHoist = !1;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      requiresStyleInsertion
-        ? ((completedSegments.instructions & SentClientRenderFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentClientRenderFunction),
-            writeChunk(destination, clientRenderScriptFunctionOnly)),
-          (completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          (completedSegments.instructions & SentStyleInsertionFunction) ===
-          NothingSent
-            ? ((completedSegments.instructions |= SentStyleInsertionFunction),
-              writeChunk(
-                destination,
-                completeBoundaryWithStylesScript1FullPartial
-              ))
-            : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-        : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
-            NothingSent &&
-            ((completedSegments.instructions |= SentCompleteBoundaryFunction),
-            writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-          writeChunk(destination, completeBoundaryScript1Partial));
-      completedSegments = i.toString(16);
-      writeChunk(destination, request.boundaryPrefix);
-      writeChunk(destination, completedSegments);
-      writeChunk(destination, completeBoundaryScript2);
-      writeChunk(destination, request.segmentPrefix);
-      writeChunk(destination, completedSegments);
-      requiresStyleInsertion
-        ? (writeChunk(destination, completeBoundaryScript3a),
-          writeStyleResourceDependenciesInJS(destination, boundary))
-        : writeChunk(destination, completeBoundaryScript3b);
-      boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-      return writeBootstrap(destination, request) && boundary;
-    }
-    function flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      segment
-    ) {
-      if (segment.status === FLUSHED) return !0;
-      var hoistableState = boundary.contentState,
-        segmentID = segment.id;
-      if (-1 === segmentID) {
-        if (-1 === (segment.id = boundary.rootSegmentID))
-          throw Error(
-            "A root segment ID must have been assigned by now. This is a bug in React."
-          );
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      }
-      if (segmentID === boundary.rootSegmentID)
-        return flushSegmentContainer(
-          request,
-          destination,
-          segment,
-          hoistableState
-        );
-      flushSegmentContainer(request, destination, segment, hoistableState);
-      boundary = request.resumableState;
-      request = request.renderState;
-      writeChunk(destination, request.startInlineScript);
-      writeChunk(destination, endOfStartTag);
-      (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
-        ? ((boundary.instructions |= SentCompleteSegmentFunction),
-          writeChunk(destination, completeSegmentScript1Full))
-        : writeChunk(destination, completeSegmentScript1Partial);
-      writeChunk(destination, request.segmentPrefix);
-      segmentID = segmentID.toString(16);
-      writeChunk(destination, segmentID);
-      writeChunk(destination, completeSegmentScript2);
-      writeChunk(destination, request.placeholderPrefix);
-      writeChunk(destination, segmentID);
-      destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-      return destination;
-    }
-    function flushCompletedQueues(request, destination) {
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      destinationHasCapacity$1 = !0;
-      try {
-        if (!(0 < request.pendingRootTasks)) {
-          var i,
-            completedRootSegment = request.completedRootSegment;
-          if (null !== completedRootSegment) {
-            if (completedRootSegment.status === POSTPONED) return;
-            var completedPreambleSegments = request.completedPreambleSegments;
-            if (null === completedPreambleSegments) return;
-            flushedByteSize = request.byteSize;
-            var resumableState = request.resumableState,
-              renderState = request.renderState,
-              preamble = renderState.preamble,
-              htmlChunks = preamble.htmlChunks,
-              headChunks = preamble.headChunks,
-              i$jscomp$0;
-            if (htmlChunks) {
-              for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-                writeChunk(destination, htmlChunks[i$jscomp$0]);
-              if (headChunks)
-                for (
-                  i$jscomp$0 = 0;
-                  i$jscomp$0 < headChunks.length;
-                  i$jscomp$0++
-                )
-                  writeChunk(destination, headChunks[i$jscomp$0]);
-              else
-                writeChunk(destination, startChunkForTag("head")),
-                  writeChunk(destination, endOfStartTag);
-            } else if (headChunks)
-              for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-                writeChunk(destination, headChunks[i$jscomp$0]);
-            var charsetChunks = renderState.charsetChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < charsetChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, charsetChunks[i$jscomp$0]);
-            charsetChunks.length = 0;
-            renderState.preconnects.forEach(flushResource, destination);
-            renderState.preconnects.clear();
-            var viewportChunks = renderState.viewportChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < viewportChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, viewportChunks[i$jscomp$0]);
-            viewportChunks.length = 0;
-            renderState.fontPreloads.forEach(flushResource, destination);
-            renderState.fontPreloads.clear();
-            renderState.highImagePreloads.forEach(flushResource, destination);
-            renderState.highImagePreloads.clear();
-            currentlyFlushingRenderState = renderState;
-            renderState.styles.forEach(flushStylesInPreamble, destination);
-            currentlyFlushingRenderState = null;
-            var importMapChunks = renderState.importMapChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < importMapChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, importMapChunks[i$jscomp$0]);
-            importMapChunks.length = 0;
-            renderState.bootstrapScripts.forEach(flushResource, destination);
-            renderState.scripts.forEach(flushResource, destination);
-            renderState.scripts.clear();
-            renderState.bulkPreloads.forEach(flushResource, destination);
-            renderState.bulkPreloads.clear();
-            htmlChunks ||
-              headChunks ||
-              (resumableState.instructions |= SentCompletedShellId);
-            var hoistableChunks = renderState.hoistableChunks;
-            for (
-              i$jscomp$0 = 0;
-              i$jscomp$0 < hoistableChunks.length;
-              i$jscomp$0++
-            )
-              writeChunk(destination, hoistableChunks[i$jscomp$0]);
-            for (
-              resumableState = hoistableChunks.length = 0;
-              resumableState < completedPreambleSegments.length;
-              resumableState++
-            ) {
-              var segments = completedPreambleSegments[resumableState];
-              for (
-                renderState = 0;
-                renderState < segments.length;
-                renderState++
-              )
-                flushSegment(request, destination, segments[renderState], null);
-            }
-            var preamble$jscomp$0 = request.renderState.preamble,
-              headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-            (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-              writeChunk(destination, endChunkForTag("head"));
-            var bodyChunks = preamble$jscomp$0.bodyChunks;
-            if (bodyChunks)
-              for (
-                completedPreambleSegments = 0;
-                completedPreambleSegments < bodyChunks.length;
-                completedPreambleSegments++
-              )
-                writeChunk(destination, bodyChunks[completedPreambleSegments]);
-            flushSegment(request, destination, completedRootSegment, null);
-            request.completedRootSegment = null;
-            var renderState$jscomp$0 = request.renderState;
-            if (
-              0 !== request.allPendingTasks ||
-              0 !== request.clientRenderedBoundaries.length ||
-              0 !== request.completedBoundaries.length ||
-              (null !== request.trackedPostpones &&
-                (0 !== request.trackedPostpones.rootNodes.length ||
-                  null !== request.trackedPostpones.rootSlots))
-            ) {
-              var resumableState$jscomp$0 = request.resumableState;
-              if (
-                (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
-                NothingSent
-              ) {
-                resumableState$jscomp$0.instructions |= SentMarkShellTime;
-                writeChunk(destination, renderState$jscomp$0.startInlineScript);
-                if (
-                  (resumableState$jscomp$0.instructions &
-                    SentCompletedShellId) ===
-                  NothingSent
-                ) {
-                  resumableState$jscomp$0.instructions |= SentCompletedShellId;
-                  var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-                  writeChunk(destination, completedShellIdAttributeStart);
-                  writeChunk(destination, escapeTextForBrowser(shellId));
-                  writeChunk(destination, attributeEnd);
-                }
-                writeChunk(destination, endOfStartTag);
-                writeChunk(destination, shellTimeRuntimeScript);
-                writeChunkAndReturn(destination, endInlineScript);
-              }
-            }
-            writeBootstrap(destination, renderState$jscomp$0);
-          }
-          var renderState$jscomp$1 = request.renderState;
-          completedRootSegment = 0;
-          var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < viewportChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              viewportChunks$jscomp$0[completedRootSegment]
-            );
-          viewportChunks$jscomp$0.length = 0;
-          renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-          renderState$jscomp$1.preconnects.clear();
-          renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.fontPreloads.clear();
-          renderState$jscomp$1.highImagePreloads.forEach(
-            flushResource,
-            destination
-          );
-          renderState$jscomp$1.highImagePreloads.clear();
-          renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-          renderState$jscomp$1.scripts.forEach(flushResource, destination);
-          renderState$jscomp$1.scripts.clear();
-          renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-          renderState$jscomp$1.bulkPreloads.clear();
-          var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-          for (
-            completedRootSegment = 0;
-            completedRootSegment < hoistableChunks$jscomp$0.length;
-            completedRootSegment++
-          )
-            writeChunk(
-              destination,
-              hoistableChunks$jscomp$0[completedRootSegment]
-            );
-          hoistableChunks$jscomp$0.length = 0;
-          var clientRenderedBoundaries = request.clientRenderedBoundaries;
-          for (i = 0; i < clientRenderedBoundaries.length; i++) {
-            var boundary = clientRenderedBoundaries[i];
-            renderState$jscomp$1 = destination;
-            var resumableState$jscomp$1 = request.resumableState,
-              renderState$jscomp$2 = request.renderState,
-              id = boundary.rootSegmentID,
-              errorDigest = boundary.errorDigest,
-              errorMessage = boundary.errorMessage,
-              errorStack = boundary.errorStack,
-              errorComponentStack = boundary.errorComponentStack;
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.startInlineScript
-            );
-            writeChunk(renderState$jscomp$1, endOfStartTag);
-            (resumableState$jscomp$1.instructions &
-              SentClientRenderFunction) ===
-            NothingSent
-              ? ((resumableState$jscomp$1.instructions |=
-                  SentClientRenderFunction),
-                writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-              : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-            writeChunk(
-              renderState$jscomp$1,
-              renderState$jscomp$2.boundaryPrefix
-            );
-            writeChunk(renderState$jscomp$1, id.toString(16));
-            writeChunk(renderState$jscomp$1, clientRenderScript1A);
-            if (
-              errorDigest ||
-              errorMessage ||
-              errorStack ||
-              errorComponentStack
-            )
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  escapeJSStringsForInstructionScripts(errorDigest || "")
-                );
-            if (errorMessage || errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  escapeJSStringsForInstructionScripts(errorMessage || "")
-                );
-            if (errorStack || errorComponentStack)
-              writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-                writeChunk(
-                  renderState$jscomp$1,
-                  escapeJSStringsForInstructionScripts(errorStack || "")
-                );
-            errorComponentStack &&
-              (writeChunk(
-                renderState$jscomp$1,
-                clientRenderErrorScriptArgInterstitial
-              ),
-              writeChunk(
-                renderState$jscomp$1,
-                escapeJSStringsForInstructionScripts(errorComponentStack)
-              ));
-            var JSCompiler_inline_result = writeChunkAndReturn(
-              renderState$jscomp$1,
-              clientRenderScriptEnd
-            );
-            if (!JSCompiler_inline_result) {
-              request.destination = null;
-              i++;
-              clientRenderedBoundaries.splice(0, i);
-              return;
-            }
-          }
-          clientRenderedBoundaries.splice(0, i);
-          var completedBoundaries = request.completedBoundaries;
-          for (i = 0; i < completedBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(
-                request,
-                destination,
-                completedBoundaries[i]
-              )
-            ) {
-              request.destination = null;
-              i++;
-              completedBoundaries.splice(0, i);
-              return;
-            }
-          completedBoundaries.splice(0, i);
-          completeWriting(destination);
-          currentView = new Uint8Array(2048);
-          writtenBytes = 0;
-          flushingPartialBoundaries = destinationHasCapacity$1 = !0;
-          var partialBoundaries = request.partialBoundaries;
-          for (i = 0; i < partialBoundaries.length; i++) {
-            a: {
-              clientRenderedBoundaries = request;
-              boundary = destination;
-              var boundary$jscomp$0 = partialBoundaries[i];
-              flushedByteSize = boundary$jscomp$0.byteSize;
-              var completedSegments = boundary$jscomp$0.completedSegments;
-              for (
-                JSCompiler_inline_result = 0;
-                JSCompiler_inline_result < completedSegments.length;
-                JSCompiler_inline_result++
-              )
-                if (
-                  !flushPartiallyCompletedSegment(
-                    clientRenderedBoundaries,
-                    boundary,
-                    boundary$jscomp$0,
-                    completedSegments[JSCompiler_inline_result]
-                  )
-                ) {
-                  JSCompiler_inline_result++;
-                  completedSegments.splice(0, JSCompiler_inline_result);
-                  var JSCompiler_inline_result$jscomp$0 = !1;
-                  break a;
-                }
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var row = boundary$jscomp$0.row;
-              null !== row &&
-                row.together &&
-                1 === boundary$jscomp$0.pendingTasks &&
-                (1 === row.pendingTasks
-                  ? unblockSuspenseListRow(
-                      clientRenderedBoundaries,
-                      row,
-                      row.hoistables
-                    )
-                  : row.pendingTasks--);
-              JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-                boundary,
-                boundary$jscomp$0.contentState,
-                clientRenderedBoundaries.renderState
-              );
-            }
-            if (!JSCompiler_inline_result$jscomp$0) {
-              request.destination = null;
-              i++;
-              partialBoundaries.splice(0, i);
-              return;
-            }
-          }
-          partialBoundaries.splice(0, i);
-          flushingPartialBoundaries = !1;
-          var largeBoundaries = request.completedBoundaries;
-          for (i = 0; i < largeBoundaries.length; i++)
-            if (
-              !flushCompletedBoundary(request, destination, largeBoundaries[i])
-            ) {
-              request.destination = null;
-              i++;
-              largeBoundaries.splice(0, i);
-              return;
-            }
-          largeBoundaries.splice(0, i);
-        }
-      } finally {
-        (flushingPartialBoundaries = !1),
-          0 === request.allPendingTasks &&
-          0 === request.clientRenderedBoundaries.length &&
-          0 === request.completedBoundaries.length
-            ? ((request.flushScheduled = !1),
-              (i = request.resumableState),
-              i.hasBody && writeChunk(destination, endChunkForTag("body")),
-              i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-              completeWriting(destination),
-              flushBuffered(destination),
-              0 !== request.abortableTasks.size &&
-                console.error(
-                  "There was still abortable task at the root when we closed. This is a bug in React."
-                ),
-              (request.status = CLOSED),
-              destination.end(),
-              (request.destination = null))
-            : (completeWriting(destination), flushBuffered(destination));
-      }
-    }
-    function startWork(request) {
-      request.flushScheduled = null !== request.destination;
-      scheduleMicrotask(function () {
-        return requestStorage.run(request, performWork, request);
-      });
-      setImmediate(function () {
-        10 === request.status && (request.status = 11);
-        null === request.trackedPostpones &&
-          requestStorage.run(
-            request,
-            enqueueEarlyPreloadsAfterInitialWork,
-            request
-          );
-      });
-    }
-    function enqueueEarlyPreloadsAfterInitialWork(request) {
-      safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-    }
-    function enqueueFlush(request) {
-      !1 === request.flushScheduled &&
-        0 === request.pingedTasks.length &&
-        null !== request.destination &&
-        ((request.flushScheduled = !0),
-        setImmediate(function () {
-          var destination = request.destination;
-          destination
-            ? flushCompletedQueues(request, destination)
-            : (request.flushScheduled = !1);
-        }));
-    }
-    function startFlowing(request, destination) {
-      if (13 === request.status)
-        (request.status = CLOSED), destination.destroy(request.fatalError);
-      else if (request.status !== CLOSED && null === request.destination) {
-        request.destination = destination;
-        try {
-          flushCompletedQueues(request, destination);
-        } catch (error) {
-          (destination = {}),
-            logRecoverableError(request, error, destination, null),
-            fatalError(request, error, destination, null);
-        }
-      }
-    }
-    function abort(request, reason) {
-      if (11 === request.status || 10 === request.status) request.status = 12;
-      try {
-        var abortableTasks = request.abortableTasks;
-        if (0 < abortableTasks.size) {
-          var error =
-            void 0 === reason
-              ? Error("The render was aborted by the server without a reason.")
-              : "object" === typeof reason &&
-                  null !== reason &&
-                  "function" === typeof reason.then
-                ? Error("The render was aborted by the server with a promise.")
-                : reason;
-          request.fatalError = error;
-          abortableTasks.forEach(function (task) {
-            var prevTaskInDEV = currentTaskInDEV,
-              prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
-            currentTaskInDEV = task;
-            ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
-            try {
-              abortTask(task, request, error);
-            } finally {
-              (currentTaskInDEV = prevTaskInDEV),
-                (ReactSharedInternals.getCurrentStack =
-                  prevGetCurrentStackImpl);
-            }
-          });
-          abortableTasks.clear();
-        }
-        null !== request.destination &&
-          flushCompletedQueues(request, request.destination);
-      } catch (error$4) {
-        (reason = {}),
-          logRecoverableError(request, error$4, reason, null),
-          fatalError(request, error$4, reason, null);
-      }
-    }
-    function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-      if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-      else {
-        var workingMap = trackedPostpones.workingMap,
-          parentNode = workingMap.get(parentKeyPath);
-        void 0 === parentNode &&
-          ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-          workingMap.set(parentKeyPath, parentNode),
-          addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-        parentNode[2].push(node);
-      }
-    }
-    function getPostponedState(request) {
-      var trackedPostpones = request.trackedPostpones;
-      if (
-        null === trackedPostpones ||
-        (0 === trackedPostpones.rootNodes.length &&
-          null === trackedPostpones.rootSlots)
-      )
-        return (request.trackedPostpones = null);
-      if (
-        null === request.completedRootSegment ||
-        (request.completedRootSegment.status !== POSTPONED &&
-          null !== request.completedPreambleSegments)
-      ) {
-        var nextSegmentId = request.nextSegmentId;
-        var replaySlots = trackedPostpones.rootSlots;
-        var resumableState = request.resumableState;
-        resumableState.bootstrapScriptContent = void 0;
-        resumableState.bootstrapScripts = void 0;
-        resumableState.bootstrapModules = void 0;
-      } else {
-        nextSegmentId = 0;
-        replaySlots = -1;
-        resumableState = request.resumableState;
-        var renderState = request.renderState;
-        resumableState.nextFormID = 0;
-        resumableState.hasBody = !1;
-        resumableState.hasHtml = !1;
-        resumableState.unknownResources = { font: renderState.resets.font };
-        resumableState.dnsResources = renderState.resets.dns;
-        resumableState.connectResources = renderState.resets.connect;
-        resumableState.imageResources = renderState.resets.image;
-        resumableState.styleResources = renderState.resets.style;
-        resumableState.scriptResources = {};
-        resumableState.moduleUnknownResources = {};
-        resumableState.moduleScriptResources = {};
-        resumableState.instructions = NothingSent;
-      }
-      return {
-        nextSegmentId: nextSegmentId,
-        rootFormatContext: request.rootFormatContext,
-        progressiveChunkSize: request.progressiveChunkSize,
-        resumableState: request.resumableState,
-        replayNodes: trackedPostpones.rootNodes,
-        replaySlots: replaySlots
-      };
-    }
-    function ensureCorrectIsomorphicReactVersion() {
-      var isomorphicReactPackageVersion = React.version;
-      if ("19.2.3" !== isomorphicReactPackageVersion)
-        throw Error(
-          'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-            (isomorphicReactPackageVersion +
-              "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-        );
-    }
-    function createDrainHandler(destination, request) {
-      return function () {
-        return startFlowing(request, destination);
-      };
-    }
-    function createCancelHandler(request, reason) {
-      return function () {
-        request.destination = null;
-        abort(request, Error(reason));
-      };
-    }
-    function createRequestImpl(children, options) {
-      var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      );
-      return createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          options ? options.onHeaders : void 0,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        options ? options.onAllReady : void 0,
-        options ? options.onShellReady : void 0,
-        options ? options.onShellError : void 0,
-        void 0,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    }
-    function createFakeWritableFromReadableStreamController$1(controller) {
-      return {
-        write: function (chunk) {
-          "string" === typeof chunk && (chunk = textEncoder.encode(chunk));
-          controller.enqueue(chunk);
-          return !0;
-        },
-        end: function () {
-          controller.close();
-        },
-        destroy: function (error) {
-          "function" === typeof controller.error
-            ? controller.error(error)
-            : controller.close();
-        }
-      };
-    }
-    function resumeRequestImpl(children, postponedState, options) {
-      return resumeRequest(
-        children,
-        postponedState,
-        createRenderState(
-          postponedState.resumableState,
-          options ? options.nonce : void 0,
-          void 0,
-          void 0,
-          void 0,
-          void 0
-        ),
-        options ? options.onError : void 0,
-        options ? options.onAllReady : void 0,
-        options ? options.onShellReady : void 0,
-        options ? options.onShellError : void 0,
-        void 0,
-        options ? options.onPostpone : void 0
-      );
-    }
-    function createFakeWritableFromReadableStreamController(controller) {
-      return {
-        write: function (chunk) {
-          "string" === typeof chunk && (chunk = textEncoder.encode(chunk));
-          controller.enqueue(chunk);
-          return !0;
-        },
-        end: function () {
-          controller.close();
-        },
-        destroy: function (error) {
-          "function" === typeof controller.error
-            ? controller.error(error)
-            : controller.close();
-        }
-      };
-    }
-    function createFakeWritableFromReadable(readable) {
-      return {
-        write: function (chunk) {
-          return readable.push(chunk);
-        },
-        end: function () {
-          readable.push(null);
-        },
-        destroy: function (error) {
-          readable.destroy(error);
-        }
-      };
-    }
-    var util = require("util"),
-      crypto = require("crypto"),
-      async_hooks = require("async_hooks"),
-      React = require("react"),
-      ReactDOM = require("react-dom"),
-      stream = require("stream"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-      REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      isArrayImpl = Array.isArray,
-      jsxPropsParents = new WeakMap(),
-      jsxChildrenParents = new WeakMap(),
-      CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
-      scheduleMicrotask = queueMicrotask,
-      currentView = null,
-      writtenBytes = 0,
-      destinationHasCapacity$1 = !0,
-      textEncoder = new util.TextEncoder(),
-      assign = Object.assign,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-        "^[: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]*$"
-      ),
-      illegalAttributeNameCache = {},
-      validatedAttributeNameCache = {},
-      unitlessNumbers = new Set(
-        "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-          " "
-        )
-      ),
-      aliases = new Map([
-        ["acceptCharset", "accept-charset"],
-        ["htmlFor", "for"],
-        ["httpEquiv", "http-equiv"],
-        ["crossOrigin", "crossorigin"],
-        ["accentHeight", "accent-height"],
-        ["alignmentBaseline", "alignment-baseline"],
-        ["arabicForm", "arabic-form"],
-        ["baselineShift", "baseline-shift"],
-        ["capHeight", "cap-height"],
-        ["clipPath", "clip-path"],
-        ["clipRule", "clip-rule"],
-        ["colorInterpolation", "color-interpolation"],
-        ["colorInterpolationFilters", "color-interpolation-filters"],
-        ["colorProfile", "color-profile"],
-        ["colorRendering", "color-rendering"],
-        ["dominantBaseline", "dominant-baseline"],
-        ["enableBackground", "enable-background"],
-        ["fillOpacity", "fill-opacity"],
-        ["fillRule", "fill-rule"],
-        ["floodColor", "flood-color"],
-        ["floodOpacity", "flood-opacity"],
-        ["fontFamily", "font-family"],
-        ["fontSize", "font-size"],
-        ["fontSizeAdjust", "font-size-adjust"],
-        ["fontStretch", "font-stretch"],
-        ["fontStyle", "font-style"],
-        ["fontVariant", "font-variant"],
-        ["fontWeight", "font-weight"],
-        ["glyphName", "glyph-name"],
-        ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-        ["glyphOrientationVertical", "glyph-orientation-vertical"],
-        ["horizAdvX", "horiz-adv-x"],
-        ["horizOriginX", "horiz-origin-x"],
-        ["imageRendering", "image-rendering"],
-        ["letterSpacing", "letter-spacing"],
-        ["lightingColor", "lighting-color"],
-        ["markerEnd", "marker-end"],
-        ["markerMid", "marker-mid"],
-        ["markerStart", "marker-start"],
-        ["overlinePosition", "overline-position"],
-        ["overlineThickness", "overline-thickness"],
-        ["paintOrder", "paint-order"],
-        ["panose-1", "panose-1"],
-        ["pointerEvents", "pointer-events"],
-        ["renderingIntent", "rendering-intent"],
-        ["shapeRendering", "shape-rendering"],
-        ["stopColor", "stop-color"],
-        ["stopOpacity", "stop-opacity"],
-        ["strikethroughPosition", "strikethrough-position"],
-        ["strikethroughThickness", "strikethrough-thickness"],
-        ["strokeDasharray", "stroke-dasharray"],
-        ["strokeDashoffset", "stroke-dashoffset"],
-        ["strokeLinecap", "stroke-linecap"],
-        ["strokeLinejoin", "stroke-linejoin"],
-        ["strokeMiterlimit", "stroke-miterlimit"],
-        ["strokeOpacity", "stroke-opacity"],
-        ["strokeWidth", "stroke-width"],
-        ["textAnchor", "text-anchor"],
-        ["textDecoration", "text-decoration"],
-        ["textRendering", "text-rendering"],
-        ["transformOrigin", "transform-origin"],
-        ["underlinePosition", "underline-position"],
-        ["underlineThickness", "underline-thickness"],
-        ["unicodeBidi", "unicode-bidi"],
-        ["unicodeRange", "unicode-range"],
-        ["unitsPerEm", "units-per-em"],
-        ["vAlphabetic", "v-alphabetic"],
-        ["vHanging", "v-hanging"],
-        ["vIdeographic", "v-ideographic"],
-        ["vMathematical", "v-mathematical"],
-        ["vectorEffect", "vector-effect"],
-        ["vertAdvY", "vert-adv-y"],
-        ["vertOriginX", "vert-origin-x"],
-        ["vertOriginY", "vert-origin-y"],
-        ["wordSpacing", "word-spacing"],
-        ["writingMode", "writing-mode"],
-        ["xmlnsXlink", "xmlns:xlink"],
-        ["xHeight", "x-height"]
-      ]),
-      hasReadOnlyValue = {
-        button: !0,
-        checkbox: !0,
-        image: !0,
-        hidden: !0,
-        radio: !0,
-        reset: !0,
-        submit: !0
-      },
-      ariaProperties = {
-        "aria-current": 0,
-        "aria-description": 0,
-        "aria-details": 0,
-        "aria-disabled": 0,
-        "aria-hidden": 0,
-        "aria-invalid": 0,
-        "aria-keyshortcuts": 0,
-        "aria-label": 0,
-        "aria-roledescription": 0,
-        "aria-autocomplete": 0,
-        "aria-checked": 0,
-        "aria-expanded": 0,
-        "aria-haspopup": 0,
-        "aria-level": 0,
-        "aria-modal": 0,
-        "aria-multiline": 0,
-        "aria-multiselectable": 0,
-        "aria-orientation": 0,
-        "aria-placeholder": 0,
-        "aria-pressed": 0,
-        "aria-readonly": 0,
-        "aria-required": 0,
-        "aria-selected": 0,
-        "aria-sort": 0,
-        "aria-valuemax": 0,
-        "aria-valuemin": 0,
-        "aria-valuenow": 0,
-        "aria-valuetext": 0,
-        "aria-atomic": 0,
-        "aria-busy": 0,
-        "aria-live": 0,
-        "aria-relevant": 0,
-        "aria-dropeffect": 0,
-        "aria-grabbed": 0,
-        "aria-activedescendant": 0,
-        "aria-colcount": 0,
-        "aria-colindex": 0,
-        "aria-colspan": 0,
-        "aria-controls": 0,
-        "aria-describedby": 0,
-        "aria-errormessage": 0,
-        "aria-flowto": 0,
-        "aria-labelledby": 0,
-        "aria-owns": 0,
-        "aria-posinset": 0,
-        "aria-rowcount": 0,
-        "aria-rowindex": 0,
-        "aria-rowspan": 0,
-        "aria-setsize": 0,
-        "aria-braillelabel": 0,
-        "aria-brailleroledescription": 0,
-        "aria-colindextext": 0,
-        "aria-rowindextext": 0
-      },
-      warnedProperties$1 = {},
-      rARIA$1 = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel$1 = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      didWarnValueNull = !1,
-      possibleStandardNames = {
-        accept: "accept",
-        acceptcharset: "acceptCharset",
-        "accept-charset": "acceptCharset",
-        accesskey: "accessKey",
-        action: "action",
-        allowfullscreen: "allowFullScreen",
-        alt: "alt",
-        as: "as",
-        async: "async",
-        autocapitalize: "autoCapitalize",
-        autocomplete: "autoComplete",
-        autocorrect: "autoCorrect",
-        autofocus: "autoFocus",
-        autoplay: "autoPlay",
-        autosave: "autoSave",
-        capture: "capture",
-        cellpadding: "cellPadding",
-        cellspacing: "cellSpacing",
-        challenge: "challenge",
-        charset: "charSet",
-        checked: "checked",
-        children: "children",
-        cite: "cite",
-        class: "className",
-        classid: "classID",
-        classname: "className",
-        cols: "cols",
-        colspan: "colSpan",
-        content: "content",
-        contenteditable: "contentEditable",
-        contextmenu: "contextMenu",
-        controls: "controls",
-        controlslist: "controlsList",
-        coords: "coords",
-        crossorigin: "crossOrigin",
-        dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
-        data: "data",
-        datetime: "dateTime",
-        default: "default",
-        defaultchecked: "defaultChecked",
-        defaultvalue: "defaultValue",
-        defer: "defer",
-        dir: "dir",
-        disabled: "disabled",
-        disablepictureinpicture: "disablePictureInPicture",
-        disableremoteplayback: "disableRemotePlayback",
-        download: "download",
-        draggable: "draggable",
-        enctype: "encType",
-        enterkeyhint: "enterKeyHint",
-        fetchpriority: "fetchPriority",
-        for: "htmlFor",
-        form: "form",
-        formmethod: "formMethod",
-        formaction: "formAction",
-        formenctype: "formEncType",
-        formnovalidate: "formNoValidate",
-        formtarget: "formTarget",
-        frameborder: "frameBorder",
-        headers: "headers",
-        height: "height",
-        hidden: "hidden",
-        high: "high",
-        href: "href",
-        hreflang: "hrefLang",
-        htmlfor: "htmlFor",
-        httpequiv: "httpEquiv",
-        "http-equiv": "httpEquiv",
-        icon: "icon",
-        id: "id",
-        imagesizes: "imageSizes",
-        imagesrcset: "imageSrcSet",
-        inert: "inert",
-        innerhtml: "innerHTML",
-        inputmode: "inputMode",
-        integrity: "integrity",
-        is: "is",
-        itemid: "itemID",
-        itemprop: "itemProp",
-        itemref: "itemRef",
-        itemscope: "itemScope",
-        itemtype: "itemType",
-        keyparams: "keyParams",
-        keytype: "keyType",
-        kind: "kind",
-        label: "label",
-        lang: "lang",
-        list: "list",
-        loop: "loop",
-        low: "low",
-        manifest: "manifest",
-        marginwidth: "marginWidth",
-        marginheight: "marginHeight",
-        max: "max",
-        maxlength: "maxLength",
-        media: "media",
-        mediagroup: "mediaGroup",
-        method: "method",
-        min: "min",
-        minlength: "minLength",
-        multiple: "multiple",
-        muted: "muted",
-        name: "name",
-        nomodule: "noModule",
-        nonce: "nonce",
-        novalidate: "noValidate",
-        open: "open",
-        optimum: "optimum",
-        pattern: "pattern",
-        placeholder: "placeholder",
-        playsinline: "playsInline",
-        poster: "poster",
-        preload: "preload",
-        profile: "profile",
-        radiogroup: "radioGroup",
-        readonly: "readOnly",
-        referrerpolicy: "referrerPolicy",
-        rel: "rel",
-        required: "required",
-        reversed: "reversed",
-        role: "role",
-        rows: "rows",
-        rowspan: "rowSpan",
-        sandbox: "sandbox",
-        scope: "scope",
-        scoped: "scoped",
-        scrolling: "scrolling",
-        seamless: "seamless",
-        selected: "selected",
-        shape: "shape",
-        size: "size",
-        sizes: "sizes",
-        span: "span",
-        spellcheck: "spellCheck",
-        src: "src",
-        srcdoc: "srcDoc",
-        srclang: "srcLang",
-        srcset: "srcSet",
-        start: "start",
-        step: "step",
-        style: "style",
-        summary: "summary",
-        tabindex: "tabIndex",
-        target: "target",
-        title: "title",
-        type: "type",
-        usemap: "useMap",
-        value: "value",
-        width: "width",
-        wmode: "wmode",
-        wrap: "wrap",
-        about: "about",
-        accentheight: "accentHeight",
-        "accent-height": "accentHeight",
-        accumulate: "accumulate",
-        additive: "additive",
-        alignmentbaseline: "alignmentBaseline",
-        "alignment-baseline": "alignmentBaseline",
-        allowreorder: "allowReorder",
-        alphabetic: "alphabetic",
-        amplitude: "amplitude",
-        arabicform: "arabicForm",
-        "arabic-form": "arabicForm",
-        ascent: "ascent",
-        attributename: "attributeName",
-        attributetype: "attributeType",
-        autoreverse: "autoReverse",
-        azimuth: "azimuth",
-        basefrequency: "baseFrequency",
-        baselineshift: "baselineShift",
-        "baseline-shift": "baselineShift",
-        baseprofile: "baseProfile",
-        bbox: "bbox",
-        begin: "begin",
-        bias: "bias",
-        by: "by",
-        calcmode: "calcMode",
-        capheight: "capHeight",
-        "cap-height": "capHeight",
-        clip: "clip",
-        clippath: "clipPath",
-        "clip-path": "clipPath",
-        clippathunits: "clipPathUnits",
-        cliprule: "clipRule",
-        "clip-rule": "clipRule",
-        color: "color",
-        colorinterpolation: "colorInterpolation",
-        "color-interpolation": "colorInterpolation",
-        colorinterpolationfilters: "colorInterpolationFilters",
-        "color-interpolation-filters": "colorInterpolationFilters",
-        colorprofile: "colorProfile",
-        "color-profile": "colorProfile",
-        colorrendering: "colorRendering",
-        "color-rendering": "colorRendering",
-        contentscripttype: "contentScriptType",
-        contentstyletype: "contentStyleType",
-        cursor: "cursor",
-        cx: "cx",
-        cy: "cy",
-        d: "d",
-        datatype: "datatype",
-        decelerate: "decelerate",
-        descent: "descent",
-        diffuseconstant: "diffuseConstant",
-        direction: "direction",
-        display: "display",
-        divisor: "divisor",
-        dominantbaseline: "dominantBaseline",
-        "dominant-baseline": "dominantBaseline",
-        dur: "dur",
-        dx: "dx",
-        dy: "dy",
-        edgemode: "edgeMode",
-        elevation: "elevation",
-        enablebackground: "enableBackground",
-        "enable-background": "enableBackground",
-        end: "end",
-        exponent: "exponent",
-        externalresourcesrequired: "externalResourcesRequired",
-        fill: "fill",
-        fillopacity: "fillOpacity",
-        "fill-opacity": "fillOpacity",
-        fillrule: "fillRule",
-        "fill-rule": "fillRule",
-        filter: "filter",
-        filterres: "filterRes",
-        filterunits: "filterUnits",
-        floodopacity: "floodOpacity",
-        "flood-opacity": "floodOpacity",
-        floodcolor: "floodColor",
-        "flood-color": "floodColor",
-        focusable: "focusable",
-        fontfamily: "fontFamily",
-        "font-family": "fontFamily",
-        fontsize: "fontSize",
-        "font-size": "fontSize",
-        fontsizeadjust: "fontSizeAdjust",
-        "font-size-adjust": "fontSizeAdjust",
-        fontstretch: "fontStretch",
-        "font-stretch": "fontStretch",
-        fontstyle: "fontStyle",
-        "font-style": "fontStyle",
-        fontvariant: "fontVariant",
-        "font-variant": "fontVariant",
-        fontweight: "fontWeight",
-        "font-weight": "fontWeight",
-        format: "format",
-        from: "from",
-        fx: "fx",
-        fy: "fy",
-        g1: "g1",
-        g2: "g2",
-        glyphname: "glyphName",
-        "glyph-name": "glyphName",
-        glyphorientationhorizontal: "glyphOrientationHorizontal",
-        "glyph-orientation-horizontal": "glyphOrientationHorizontal",
-        glyphorientationvertical: "glyphOrientationVertical",
-        "glyph-orientation-vertical": "glyphOrientationVertical",
-        glyphref: "glyphRef",
-        gradienttransform: "gradientTransform",
-        gradientunits: "gradientUnits",
-        hanging: "hanging",
-        horizadvx: "horizAdvX",
-        "horiz-adv-x": "horizAdvX",
-        horizoriginx: "horizOriginX",
-        "horiz-origin-x": "horizOriginX",
-        ideographic: "ideographic",
-        imagerendering: "imageRendering",
-        "image-rendering": "imageRendering",
-        in2: "in2",
-        in: "in",
-        inlist: "inlist",
-        intercept: "intercept",
-        k1: "k1",
-        k2: "k2",
-        k3: "k3",
-        k4: "k4",
-        k: "k",
-        kernelmatrix: "kernelMatrix",
-        kernelunitlength: "kernelUnitLength",
-        kerning: "kerning",
-        keypoints: "keyPoints",
-        keysplines: "keySplines",
-        keytimes: "keyTimes",
-        lengthadjust: "lengthAdjust",
-        letterspacing: "letterSpacing",
-        "letter-spacing": "letterSpacing",
-        lightingcolor: "lightingColor",
-        "lighting-color": "lightingColor",
-        limitingconeangle: "limitingConeAngle",
-        local: "local",
-        markerend: "markerEnd",
-        "marker-end": "markerEnd",
-        markerheight: "markerHeight",
-        markermid: "markerMid",
-        "marker-mid": "markerMid",
-        markerstart: "markerStart",
-        "marker-start": "markerStart",
-        markerunits: "markerUnits",
-        markerwidth: "markerWidth",
-        mask: "mask",
-        maskcontentunits: "maskContentUnits",
-        maskunits: "maskUnits",
-        mathematical: "mathematical",
-        mode: "mode",
-        numoctaves: "numOctaves",
-        offset: "offset",
-        opacity: "opacity",
-        operator: "operator",
-        order: "order",
-        orient: "orient",
-        orientation: "orientation",
-        origin: "origin",
-        overflow: "overflow",
-        overlineposition: "overlinePosition",
-        "overline-position": "overlinePosition",
-        overlinethickness: "overlineThickness",
-        "overline-thickness": "overlineThickness",
-        paintorder: "paintOrder",
-        "paint-order": "paintOrder",
-        panose1: "panose1",
-        "panose-1": "panose1",
-        pathlength: "pathLength",
-        patterncontentunits: "patternContentUnits",
-        patterntransform: "patternTransform",
-        patternunits: "patternUnits",
-        pointerevents: "pointerEvents",
-        "pointer-events": "pointerEvents",
-        points: "points",
-        pointsatx: "pointsAtX",
-        pointsaty: "pointsAtY",
-        pointsatz: "pointsAtZ",
-        popover: "popover",
-        popovertarget: "popoverTarget",
-        popovertargetaction: "popoverTargetAction",
-        prefix: "prefix",
-        preservealpha: "preserveAlpha",
-        preserveaspectratio: "preserveAspectRatio",
-        primitiveunits: "primitiveUnits",
-        property: "property",
-        r: "r",
-        radius: "radius",
-        refx: "refX",
-        refy: "refY",
-        renderingintent: "renderingIntent",
-        "rendering-intent": "renderingIntent",
-        repeatcount: "repeatCount",
-        repeatdur: "repeatDur",
-        requiredextensions: "requiredExtensions",
-        requiredfeatures: "requiredFeatures",
-        resource: "resource",
-        restart: "restart",
-        result: "result",
-        results: "results",
-        rotate: "rotate",
-        rx: "rx",
-        ry: "ry",
-        scale: "scale",
-        security: "security",
-        seed: "seed",
-        shaperendering: "shapeRendering",
-        "shape-rendering": "shapeRendering",
-        slope: "slope",
-        spacing: "spacing",
-        specularconstant: "specularConstant",
-        specularexponent: "specularExponent",
-        speed: "speed",
-        spreadmethod: "spreadMethod",
-        startoffset: "startOffset",
-        stddeviation: "stdDeviation",
-        stemh: "stemh",
-        stemv: "stemv",
-        stitchtiles: "stitchTiles",
-        stopcolor: "stopColor",
-        "stop-color": "stopColor",
-        stopopacity: "stopOpacity",
-        "stop-opacity": "stopOpacity",
-        strikethroughposition: "strikethroughPosition",
-        "strikethrough-position": "strikethroughPosition",
-        strikethroughthickness: "strikethroughThickness",
-        "strikethrough-thickness": "strikethroughThickness",
-        string: "string",
-        stroke: "stroke",
-        strokedasharray: "strokeDasharray",
-        "stroke-dasharray": "strokeDasharray",
-        strokedashoffset: "strokeDashoffset",
-        "stroke-dashoffset": "strokeDashoffset",
-        strokelinecap: "strokeLinecap",
-        "stroke-linecap": "strokeLinecap",
-        strokelinejoin: "strokeLinejoin",
-        "stroke-linejoin": "strokeLinejoin",
-        strokemiterlimit: "strokeMiterlimit",
-        "stroke-miterlimit": "strokeMiterlimit",
-        strokewidth: "strokeWidth",
-        "stroke-width": "strokeWidth",
-        strokeopacity: "strokeOpacity",
-        "stroke-opacity": "strokeOpacity",
-        suppresscontenteditablewarning: "suppressContentEditableWarning",
-        suppresshydrationwarning: "suppressHydrationWarning",
-        surfacescale: "surfaceScale",
-        systemlanguage: "systemLanguage",
-        tablevalues: "tableValues",
-        targetx: "targetX",
-        targety: "targetY",
-        textanchor: "textAnchor",
-        "text-anchor": "textAnchor",
-        textdecoration: "textDecoration",
-        "text-decoration": "textDecoration",
-        textlength: "textLength",
-        textrendering: "textRendering",
-        "text-rendering": "textRendering",
-        to: "to",
-        transform: "transform",
-        transformorigin: "transformOrigin",
-        "transform-origin": "transformOrigin",
-        typeof: "typeof",
-        u1: "u1",
-        u2: "u2",
-        underlineposition: "underlinePosition",
-        "underline-position": "underlinePosition",
-        underlinethickness: "underlineThickness",
-        "underline-thickness": "underlineThickness",
-        unicode: "unicode",
-        unicodebidi: "unicodeBidi",
-        "unicode-bidi": "unicodeBidi",
-        unicoderange: "unicodeRange",
-        "unicode-range": "unicodeRange",
-        unitsperem: "unitsPerEm",
-        "units-per-em": "unitsPerEm",
-        unselectable: "unselectable",
-        valphabetic: "vAlphabetic",
-        "v-alphabetic": "vAlphabetic",
-        values: "values",
-        vectoreffect: "vectorEffect",
-        "vector-effect": "vectorEffect",
-        version: "version",
-        vertadvy: "vertAdvY",
-        "vert-adv-y": "vertAdvY",
-        vertoriginx: "vertOriginX",
-        "vert-origin-x": "vertOriginX",
-        vertoriginy: "vertOriginY",
-        "vert-origin-y": "vertOriginY",
-        vhanging: "vHanging",
-        "v-hanging": "vHanging",
-        videographic: "vIdeographic",
-        "v-ideographic": "vIdeographic",
-        viewbox: "viewBox",
-        viewtarget: "viewTarget",
-        visibility: "visibility",
-        vmathematical: "vMathematical",
-        "v-mathematical": "vMathematical",
-        vocab: "vocab",
-        widths: "widths",
-        wordspacing: "wordSpacing",
-        "word-spacing": "wordSpacing",
-        writingmode: "writingMode",
-        "writing-mode": "writingMode",
-        x1: "x1",
-        x2: "x2",
-        x: "x",
-        xchannelselector: "xChannelSelector",
-        xheight: "xHeight",
-        "x-height": "xHeight",
-        xlinkactuate: "xlinkActuate",
-        "xlink:actuate": "xlinkActuate",
-        xlinkarcrole: "xlinkArcrole",
-        "xlink:arcrole": "xlinkArcrole",
-        xlinkhref: "xlinkHref",
-        "xlink:href": "xlinkHref",
-        xlinkrole: "xlinkRole",
-        "xlink:role": "xlinkRole",
-        xlinkshow: "xlinkShow",
-        "xlink:show": "xlinkShow",
-        xlinktitle: "xlinkTitle",
-        "xlink:title": "xlinkTitle",
-        xlinktype: "xlinkType",
-        "xlink:type": "xlinkType",
-        xmlbase: "xmlBase",
-        "xml:base": "xmlBase",
-        xmllang: "xmlLang",
-        "xml:lang": "xmlLang",
-        xmlns: "xmlns",
-        "xml:space": "xmlSpace",
-        xmlnsxlink: "xmlnsXlink",
-        "xmlns:xlink": "xmlnsXlink",
-        xmlspace: "xmlSpace",
-        y1: "y1",
-        y2: "y2",
-        y: "y",
-        ychannelselector: "yChannelSelector",
-        z: "z",
-        zoomandpan: "zoomAndPan"
-      },
-      warnedProperties = {},
-      EVENT_NAME_REGEX = /^on./,
-      INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
-      rARIA = RegExp(
-        "^(aria)-[: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]*$"
-      ),
-      rARIACamel = RegExp(
-        "^(aria)[A-Z][: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]*$"
-      ),
-      badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
-      msPattern$1 = /^-ms-/,
-      hyphenPattern = /-(.)/g,
-      badStyleValueWithSemicolonPattern = /;\s*$/,
-      warnedStyleNames = {},
-      warnedStyleValues = {},
-      warnedForNaNValue = !1,
-      warnedForInfinityValue = !1,
-      matchHtmlRegExp = /["'&<>]/,
-      uppercasePattern = /([A-Z])/g,
-      msPattern = /^ms-/,
-      isJavaScriptProtocol =
-        /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      ReactDOMSharedInternals =
-        ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      NotPending = Object.freeze({
-        pending: !1,
-        data: null,
-        method: null,
-        action: null
-      }),
-      previousDispatcher = ReactDOMSharedInternals.d;
-    ReactDOMSharedInternals.d = {
-      f: previousDispatcher.f,
-      r: previousDispatcher.r,
-      D: function (href) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            if (!resumableState.dnsResources.hasOwnProperty(href)) {
-              resumableState.dnsResources[href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              )
-                JSCompiler_temp =
-                  ((header =
-                    "<" +
-                    escapeHrefForLinkHeaderURLContext(href) +
-                    ">; rel=dns-prefetch"),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              JSCompiler_temp
-                ? ((renderState.resets.dns[href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((header = []),
-                  pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-                  renderState.preconnects.add(header));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.D(href);
-      },
-      C: function (href, crossOrigin) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if ("string" === typeof href && href) {
-            var bucket =
-              "use-credentials" === crossOrigin
-                ? "credentials"
-                : "string" === typeof crossOrigin
-                  ? "anonymous"
-                  : "default";
-            if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-              resumableState.connectResources[bucket][href] = EXISTS;
-              resumableState = renderState.headers;
-              var header, JSCompiler_temp;
-              if (
-                (JSCompiler_temp =
-                  resumableState && 0 < resumableState.remainingCapacity)
-              ) {
-                JSCompiler_temp =
-                  "<" +
-                  escapeHrefForLinkHeaderURLContext(href) +
-                  ">; rel=preconnect";
-                if ("string" === typeof crossOrigin) {
-                  var escapedCrossOrigin =
-                    escapeStringForLinkHeaderQuotedParamValueContext(
-                      crossOrigin,
-                      "crossOrigin"
-                    );
-                  JSCompiler_temp +=
-                    '; crossorigin="' + escapedCrossOrigin + '"';
-                }
-                JSCompiler_temp =
-                  ((header = JSCompiler_temp),
-                  0 <= (resumableState.remainingCapacity -= header.length + 2));
-              }
-              JSCompiler_temp
-                ? ((renderState.resets.connect[bucket][href] = EXISTS),
-                  resumableState.preconnects &&
-                    (resumableState.preconnects += ", "),
-                  (resumableState.preconnects += header))
-                : ((bucket = []),
-                  pushLinkImpl(bucket, {
-                    rel: "preconnect",
-                    href: href,
-                    crossOrigin: crossOrigin
-                  }),
-                  renderState.preconnects.add(bucket));
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.C(href, crossOrigin);
-      },
-      L: function (href, as, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (as && href) {
-            switch (as) {
-              case "image":
-                if (options) {
-                  var imageSrcSet = options.imageSrcSet;
-                  var imageSizes = options.imageSizes;
-                  var fetchPriority = options.fetchPriority;
-                }
-                var key = imageSrcSet
-                  ? imageSrcSet + "\n" + (imageSizes || "")
-                  : href;
-                if (resumableState.imageResources.hasOwnProperty(key)) return;
-                resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-                resumableState = renderState.headers;
-                var header;
-                resumableState &&
-                0 < resumableState.remainingCapacity &&
-                "string" !== typeof imageSrcSet &&
-                "high" === fetchPriority &&
-                ((header = getPreloadAsHeader(href, as, options)),
-                0 <= (resumableState.remainingCapacity -= header.length + 2))
-                  ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-                    resumableState.highImagePreloads &&
-                      (resumableState.highImagePreloads += ", "),
-                    (resumableState.highImagePreloads += header))
-                  : ((resumableState = []),
-                    pushLinkImpl(
-                      resumableState,
-                      assign(
-                        {
-                          rel: "preload",
-                          href: imageSrcSet ? void 0 : href,
-                          as: as
-                        },
-                        options
-                      )
-                    ),
-                    "high" === fetchPriority
-                      ? renderState.highImagePreloads.add(resumableState)
-                      : (renderState.bulkPreloads.add(resumableState),
-                        renderState.preloads.images.set(key, resumableState)));
-                break;
-              case "style":
-                if (resumableState.styleResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.styleResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.stylesheets.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                break;
-              case "script":
-                if (resumableState.scriptResources.hasOwnProperty(href)) return;
-                imageSrcSet = [];
-                renderState.preloads.scripts.set(href, imageSrcSet);
-                renderState.bulkPreloads.add(imageSrcSet);
-                pushLinkImpl(
-                  imageSrcSet,
-                  assign({ rel: "preload", href: href, as: as }, options)
-                );
-                resumableState.scriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                break;
-              default:
-                if (resumableState.unknownResources.hasOwnProperty(as)) {
-                  if (
-                    ((imageSrcSet = resumableState.unknownResources[as]),
-                    imageSrcSet.hasOwnProperty(href))
-                  )
-                    return;
-                } else
-                  (imageSrcSet = {}),
-                    (resumableState.unknownResources[as] = imageSrcSet);
-                imageSrcSet[href] = PRELOAD_NO_CREDS;
-                if (
-                  (resumableState = renderState.headers) &&
-                  0 < resumableState.remainingCapacity &&
-                  "font" === as &&
-                  ((key = getPreloadAsHeader(href, as, options)),
-                  0 <= (resumableState.remainingCapacity -= key.length + 2))
-                )
-                  (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-                    resumableState.fontPreloads &&
-                      (resumableState.fontPreloads += ", "),
-                    (resumableState.fontPreloads += key);
-                else
-                  switch (
-                    ((resumableState = []),
-                    (href = assign(
-                      { rel: "preload", href: href, as: as },
-                      options
-                    )),
-                    pushLinkImpl(resumableState, href),
-                    as)
-                  ) {
-                    case "font":
-                      renderState.fontPreloads.add(resumableState);
-                      break;
-                    default:
-                      renderState.bulkPreloads.add(resumableState);
-                  }
-            }
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.L(href, as, options);
-      },
-      m: function (href, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            var as =
-              options && "string" === typeof options.as ? options.as : "script";
-            switch (as) {
-              case "script":
-                if (resumableState.moduleScriptResources.hasOwnProperty(href))
-                  return;
-                as = [];
-                resumableState.moduleScriptResources[href] =
-                  !options ||
-                  ("string" !== typeof options.crossOrigin &&
-                    "string" !== typeof options.integrity)
-                    ? PRELOAD_NO_CREDS
-                    : [options.crossOrigin, options.integrity];
-                renderState.preloads.moduleScripts.set(href, as);
-                break;
-              default:
-                if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-                  var resources = resumableState.unknownResources[as];
-                  if (resources.hasOwnProperty(href)) return;
-                } else
-                  (resources = {}),
-                    (resumableState.moduleUnknownResources[as] = resources);
-                as = [];
-                resources[href] = PRELOAD_NO_CREDS;
-            }
-            pushLinkImpl(
-              as,
-              assign({ rel: "modulepreload", href: href }, options)
-            );
-            renderState.bulkPreloads.add(as);
-            enqueueFlush(request);
-          }
-        } else previousDispatcher.m(href, options);
-      },
-      X: function (src, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState = resumableState.scriptResources.hasOwnProperty(
-              src
-            )
-              ? resumableState.scriptResources[src]
-              : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.scriptResources[src] = EXISTS),
-              (options = assign({ src: src, async: !0 }, options)),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.scripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.X(src, options);
-      },
-      S: function (href, precedence, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (href) {
-            precedence = precedence || "default";
-            var styleQueue = renderState.styles.get(precedence),
-              resourceState = resumableState.styleResources.hasOwnProperty(href)
-                ? resumableState.styleResources[href]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.styleResources[href] = EXISTS),
-              styleQueue ||
-                ((styleQueue = {
-                  precedence: escapeTextForBrowser(precedence),
-                  rules: [],
-                  hrefs: [],
-                  sheets: new Map()
-                }),
-                renderState.styles.set(precedence, styleQueue)),
-              (precedence = {
-                state: PENDING$1,
-                props: assign(
-                  {
-                    rel: "stylesheet",
-                    href: href,
-                    "data-precedence": precedence
-                  },
-                  options
-                )
-              }),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(precedence.props, resourceState),
-                (renderState = renderState.preloads.stylesheets.get(href)) &&
-                0 < renderState.length
-                  ? (renderState.length = 0)
-                  : (precedence.state = PRELOADED)),
-              styleQueue.sheets.set(href, precedence),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.S(href, precedence, options);
-      },
-      M: function (src, options) {
-        var request = resolveRequest();
-        if (request) {
-          var resumableState = request.resumableState,
-            renderState = request.renderState;
-          if (src) {
-            var resourceState =
-              resumableState.moduleScriptResources.hasOwnProperty(src)
-                ? resumableState.moduleScriptResources[src]
-                : void 0;
-            resourceState !== EXISTS &&
-              ((resumableState.moduleScriptResources[src] = EXISTS),
-              (options = assign(
-                { src: src, type: "module", async: !0 },
-                options
-              )),
-              resourceState &&
-                (2 === resourceState.length &&
-                  adoptPreloadCredentials(options, resourceState),
-                (src = renderState.preloads.moduleScripts.get(src))) &&
-                (src.length = 0),
-              (src = []),
-              renderState.scripts.add(src),
-              pushScriptImpl(src, options),
-              enqueueFlush(request));
-          }
-        } else previousDispatcher.M(src, options);
-      }
-    };
-    var NothingSent = 0,
-      SentCompleteSegmentFunction = 1,
-      SentCompleteBoundaryFunction = 2,
-      SentClientRenderFunction = 4,
-      SentStyleInsertionFunction = 8,
-      SentCompletedShellId = 32,
-      SentMarkShellTime = 64,
-      EXISTS = null,
-      PRELOAD_NO_CREDS = [];
-    Object.freeze(PRELOAD_NO_CREDS);
-    var currentlyFlushingRenderState = null;
-    stringToPrecomputedChunk('"></template>');
-    var startInlineScript = stringToPrecomputedChunk("<script"),
-      endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-      startScriptSrc = stringToPrecomputedChunk('<script src="'),
-      startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-      scriptNonce = stringToPrecomputedChunk(' nonce="'),
-      scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-      scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-      endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-      startInlineStyle = stringToPrecomputedChunk("<style"),
-      scriptRegex = /(<\/|<)(s)(cript)/gi,
-      importMapScriptStart = stringToPrecomputedChunk(
-        '<script type="importmap">'
-      ),
-      importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-    var didWarnForNewBooleanPropsWithEmptyValue = {};
-    var ROOT_HTML_MODE = 0,
-      HTML_HTML_MODE = 1,
-      HTML_MODE = 2,
-      HTML_HEAD_MODE = 3,
-      SVG_MODE = 4,
-      MATHML_MODE = 5,
-      HTML_TABLE_MODE = 6,
-      HTML_TABLE_BODY_MODE = 7,
-      HTML_TABLE_ROW_MODE = 8,
-      HTML_COLGROUP_MODE = 9,
-      textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"),
-      styleNameCache = new Map(),
-      styleAttributeStart = stringToPrecomputedChunk(' style="'),
-      styleAssign = stringToPrecomputedChunk(":"),
-      styleSeparator = stringToPrecomputedChunk(";"),
-      attributeSeparator = stringToPrecomputedChunk(" "),
-      attributeAssign = stringToPrecomputedChunk('="'),
-      attributeEnd = stringToPrecomputedChunk('"'),
-      attributeEmptyString = stringToPrecomputedChunk('=""'),
-      actionJavaScriptURL = stringToPrecomputedChunk(
-        escapeTextForBrowser(
-          "javascript:throw new Error('React form unexpectedly submitted.')"
-        )
-      ),
-      startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'),
-      endOfStartTag = stringToPrecomputedChunk(">"),
-      endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"),
-      didWarnDefaultInputValue = !1,
-      didWarnDefaultChecked = !1,
-      didWarnDefaultSelectValue = !1,
-      didWarnDefaultTextareaValue = !1,
-      didWarnInvalidOptionChildren = !1,
-      didWarnInvalidOptionInnerHTML = !1,
-      didWarnSelectedSetOnOption = !1,
-      didWarnFormActionType = !1,
-      didWarnFormActionName = !1,
-      didWarnFormActionTarget = !1,
-      didWarnFormActionMethod = !1,
-      selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-      formReplayingRuntimeScript = stringToPrecomputedChunk(
-        'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-      ),
-      formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-      formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"),
-      styleRegex = /(<\/|<)(s)(tyle)/gi,
-      headPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--head--\x3e"),
-      bodyPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--body--\x3e"),
-      htmlPreambleContributionChunk =
-        stringToPrecomputedChunk("\x3c!--html--\x3e"),
-      leadingNewline = stringToPrecomputedChunk("\n"),
-      VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-      validatedTagCache = new Map(),
-      doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"),
-      endTagCache = new Map(),
-      shellTimeRuntimeScript = stringToPrecomputedChunk(
-        "requestAnimationFrame(function(){$RT=performance.now()});"
-      ),
-      placeholder1 = stringToPrecomputedChunk('<template id="'),
-      placeholder2 = stringToPrecomputedChunk('"></template>'),
-      startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-      endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-      startCompletedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$--\x3e"),
-      startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-        '\x3c!--$?--\x3e<template id="'
-      ),
-      startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-      startClientRenderedSuspenseBoundary =
-        stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-      endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-      clientRenderedSuspenseBoundaryError1 =
-        stringToPrecomputedChunk("<template"),
-      clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-        stringToPrecomputedChunk('"'),
-      clientRenderedSuspenseBoundaryError1A =
-        stringToPrecomputedChunk(' data-dgst="'),
-      clientRenderedSuspenseBoundaryError1B =
-        stringToPrecomputedChunk(' data-msg="'),
-      clientRenderedSuspenseBoundaryError1C =
-        stringToPrecomputedChunk(' data-stck="'),
-      clientRenderedSuspenseBoundaryError1D =
-        stringToPrecomputedChunk(' data-cstck="'),
-      clientRenderedSuspenseBoundaryError2 =
-        stringToPrecomputedChunk("></template>"),
-      startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-      startSegmentHTML2 = stringToPrecomputedChunk('">'),
-      endSegmentHTML = stringToPrecomputedChunk("</div>"),
-      startSegmentSVG = stringToPrecomputedChunk(
-        '<svg aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentSVG2 = stringToPrecomputedChunk('">'),
-      endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-      startSegmentMathML = stringToPrecomputedChunk(
-        '<math aria-hidden="true" style="display:none" id="'
-      ),
-      startSegmentMathML2 = stringToPrecomputedChunk('">'),
-      endSegmentMathML = stringToPrecomputedChunk("</math>"),
-      startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-      startSegmentTable2 = stringToPrecomputedChunk('">'),
-      endSegmentTable = stringToPrecomputedChunk("</table>"),
-      startSegmentTableBody = stringToPrecomputedChunk(
-        '<table hidden><tbody id="'
-      ),
-      startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-      endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-      startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-      startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-      endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-      startSegmentColGroup = stringToPrecomputedChunk(
-        '<table hidden><colgroup id="'
-      ),
-      startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-      endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"),
-      completeSegmentScript1Full = stringToPrecomputedChunk(
-        '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-      ),
-      completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-      completeSegmentScript2 = stringToPrecomputedChunk('","'),
-      completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-    stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-    stringToPrecomputedChunk('" data-pid="');
-    var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-        '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-      ),
-      completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-      completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-        '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-      ),
-      completeBoundaryWithStylesScript1Partial =
-        stringToPrecomputedChunk('$RR("'),
-      completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-      completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-      completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-      completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rci="" data-bid="');
-    stringToPrecomputedChunk('<template data-rri="" data-bid="');
-    stringToPrecomputedChunk('" data-sid="');
-    stringToPrecomputedChunk('" data-sty="');
-    var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-      ),
-      clientRenderScript1Full = stringToPrecomputedChunk(
-        '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-      ),
-      clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-      clientRenderScript1A = stringToPrecomputedChunk('"'),
-      clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-      clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-    stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-    stringToPrecomputedChunk('" data-dgst="');
-    stringToPrecomputedChunk('" data-msg="');
-    stringToPrecomputedChunk('" data-stck="');
-    stringToPrecomputedChunk('" data-cstck="');
-    var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
-      regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
-      lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-        ' media="not all" data-precedence="'
-      ),
-      lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-      currentlyRenderingBoundaryHasStylesToHoist = !1,
-      destinationHasCapacity = !0,
-      stylesheetFlushingQueue = [],
-      styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-      styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-      spaceSeparator = stringToPrecomputedChunk(" "),
-      styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-      styleTagResourceClose = stringToPrecomputedChunk("</style>");
-    stringToPrecomputedChunk('<link rel="expect" href="#');
-    stringToPrecomputedChunk('" blocking="render"/>');
-    var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'),
-      arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-      arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-      arrayInterstitial = stringToPrecomputedChunk(","),
-      arrayCloseBracket = stringToPrecomputedChunk("]"),
-      PENDING$1 = 0,
-      PRELOADED = 1,
-      PREAMBLE = 2,
-      LATE = 3,
-      regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g,
-      regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g,
-      bind = Function.prototype.bind,
-      requestStorage = new async_hooks.AsyncLocalStorage(),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      emptyContextObject = {};
-    Object.freeze(emptyContextObject);
-    var rendererSigil = {};
-    var currentActiveSnapshot = null,
-      didWarnAboutNoopUpdateForComponent = {},
-      didWarnAboutDeprecatedWillMount = {};
-    var didWarnAboutUninitializedState = new Set();
-    var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
-    var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
-    var didWarnAboutDirectlyAssigningPropsToState = new Set();
-    var didWarnAboutUndefinedDerivedState = new Set();
-    var didWarnAboutContextTypes$1 = new Set();
-    var didWarnAboutChildContextTypes = new Set();
-    var didWarnAboutInvalidateContextType = new Set();
-    var didWarnOnInvalidCallback = new Set();
-    var classComponentUpdater = {
-        enqueueSetState: function (inst, payload, callback) {
-          var internals = inst._reactInternals;
-          null === internals.queue
-            ? warnNoop(inst, "setState")
-            : (internals.queue.push(payload),
-              void 0 !== callback &&
-                null !== callback &&
-                warnOnInvalidCallback(callback));
-        },
-        enqueueReplaceState: function (inst, payload, callback) {
-          inst = inst._reactInternals;
-          inst.replace = !0;
-          inst.queue = [payload];
-          void 0 !== callback &&
-            null !== callback &&
-            warnOnInvalidCallback(callback);
-        },
-        enqueueForceUpdate: function (inst, callback) {
-          null === inst._reactInternals.queue
-            ? warnNoop(inst, "forceUpdate")
-            : void 0 !== callback &&
-              null !== callback &&
-              warnOnInvalidCallback(callback);
-        }
-      },
-      emptyTreeContext = { id: 1, overflow: "" },
-      clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-      log = Math.log,
-      LN2 = Math.LN2,
-      SuspenseException = Error(
-        "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-      ),
-      suspendedThenable = null,
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      currentlyRenderingComponent = null,
-      currentlyRenderingTask = null,
-      currentlyRenderingRequest = null,
-      currentlyRenderingKeyPath = null,
-      firstWorkInProgressHook = null,
-      workInProgressHook = null,
-      isReRender = !1,
-      didScheduleRenderPhaseUpdate = !1,
-      localIdCounter = 0,
-      actionStateCounter = 0,
-      actionStateMatchingIndex = -1,
-      thenableIndexCounter = 0,
-      thenableState = null,
-      renderPhaseUpdates = null,
-      numberOfReRenders = 0,
-      isInHookUserCodeInDev = !1,
-      currentHookNameInDev,
-      HooksDispatcher = {
-        readContext: readContext,
-        use: function (usable) {
-          if (null !== usable && "object" === typeof usable) {
-            if ("function" === typeof usable.then)
-              return unwrapThenable(usable);
-            if (usable.$$typeof === REACT_CONTEXT_TYPE)
-              return readContext(usable);
-          }
-          throw Error(
-            "An unsupported type was passed to use(): " + String(usable)
-          );
-        },
-        useContext: function (context) {
-          currentHookNameInDev = "useContext";
-          resolveCurrentlyRenderingComponent();
-          return context._currentValue;
-        },
-        useMemo: useMemo,
-        useReducer: useReducer,
-        useRef: function (initialValue) {
-          currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-          workInProgressHook = createWorkInProgressHook();
-          var previousRef = workInProgressHook.memoizedState;
-          return null === previousRef
-            ? ((initialValue = { current: initialValue }),
-              Object.seal(initialValue),
-              (workInProgressHook.memoizedState = initialValue))
-            : previousRef;
-        },
-        useState: function (initialState) {
-          currentHookNameInDev = "useState";
-          return useReducer(basicStateReducer, initialState);
-        },
-        useInsertionEffect: noop,
-        useLayoutEffect: noop,
-        useCallback: function (callback, deps) {
-          return useMemo(function () {
-            return callback;
-          }, deps);
-        },
-        useImperativeHandle: noop,
-        useEffect: noop,
-        useDebugValue: noop,
-        useDeferredValue: function (value, initialValue) {
-          resolveCurrentlyRenderingComponent();
-          return void 0 !== initialValue ? initialValue : value;
-        },
-        useTransition: function () {
-          resolveCurrentlyRenderingComponent();
-          return [!1, unsupportedStartTransition];
-        },
-        useId: function () {
-          var treeId = currentlyRenderingTask.treeContext;
-          var overflow = treeId.overflow;
-          treeId = treeId.id;
-          treeId =
-            (treeId & ~(1 << (32 - clz32(treeId) - 1))).toString(32) + overflow;
-          var resumableState = currentResumableState;
-          if (null === resumableState)
-            throw Error(
-              "Invalid hook call. Hooks can only be called inside of the body of a function component."
-            );
-          overflow = localIdCounter++;
-          treeId = "_" + resumableState.idPrefix + "R_" + treeId;
-          0 < overflow && (treeId += "H" + overflow.toString(32));
-          return treeId + "_";
-        },
-        useSyncExternalStore: function (
-          subscribe,
-          getSnapshot,
-          getServerSnapshot
-        ) {
-          if (void 0 === getServerSnapshot)
-            throw Error(
-              "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-            );
-          return getServerSnapshot();
-        },
-        useOptimistic: function (passthrough) {
-          resolveCurrentlyRenderingComponent();
-          return [passthrough, unsupportedSetOptimisticState];
-        },
-        useActionState: useActionState,
-        useFormState: useActionState,
-        useHostTransitionStatus: function () {
-          resolveCurrentlyRenderingComponent();
-          return NotPending;
-        },
-        useMemoCache: function (size) {
-          for (var data = Array(size), i = 0; i < size; i++)
-            data[i] = REACT_MEMO_CACHE_SENTINEL;
-          return data;
-        },
-        useCacheRefresh: function () {
-          return unsupportedRefresh;
-        },
-        useEffectEvent: function () {
-          return throwOnUseEffectEventCall;
-        }
-      },
-      currentResumableState = null,
-      currentTaskInDEV = null,
-      DefaultAsyncDispatcher = {
-        getCacheForType: function () {
-          throw Error("Not implemented.");
-        },
-        cacheSignal: function () {
-          throw Error("Not implemented.");
-        },
-        getOwner: function () {
-          return null === currentTaskInDEV
-            ? null
-            : currentTaskInDEV.componentStack;
-        }
-      },
-      disabledDepth = 0,
-      prevLog,
-      prevInfo,
-      prevWarn,
-      prevError,
-      prevGroup,
-      prevGroupCollapsed,
-      prevGroupEnd;
-    disabledLog.__reactDisabledLog = !0;
-    var prefix,
-      suffix,
-      reentry = !1;
-    var componentFrameCache = new (
-      "function" === typeof WeakMap ? WeakMap : Map
-    )();
-    var callComponent = {
-        react_stack_bottom_frame: function (Component, props, secondArg) {
-          return Component(props, secondArg);
-        }
-      },
-      callComponentInDEV =
-        callComponent.react_stack_bottom_frame.bind(callComponent),
-      callRender = {
-        react_stack_bottom_frame: function (instance) {
-          return instance.render();
-        }
-      },
-      callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
-      callLazyInit = {
-        react_stack_bottom_frame: function (lazy) {
-          var init = lazy._init;
-          return init(lazy._payload);
-        }
-      },
-      callLazyInitInDEV =
-        callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
-      lastResetTime = 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date;
-      getCurrentTime = function () {
-        return localDate.now();
-      };
-    }
-    var CLIENT_RENDERED = 4,
-      PENDING = 0,
-      COMPLETED = 1,
-      FLUSHED = 2,
-      ABORTED = 3,
-      ERRORED = 4,
-      POSTPONED = 5,
-      CLOSED = 14,
-      currentRequest = null,
-      didWarnAboutBadClass = {},
-      didWarnAboutContextTypes = {},
-      didWarnAboutContextTypeOnFunctionComponent = {},
-      didWarnAboutGetDerivedStateOnFunctionComponent = {},
-      didWarnAboutReassigningProps = !1,
-      didWarnAboutGenerators = !1,
-      didWarnAboutMaps = !1,
-      flushedByteSize = 0,
-      flushingPartialBoundaries = !1;
-    ensureCorrectIsomorphicReactVersion();
-    ensureCorrectIsomorphicReactVersion();
-    exports.prerender = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resources = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createPrerenderRequest(
-            children,
-            resources,
-            createRenderState(
-              resources,
-              void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            function () {
-              var writable,
-                stream = new ReadableStream(
-                  {
-                    type: "bytes",
-                    start: function (controller) {
-                      writable =
-                        createFakeWritableFromReadableStreamController(
-                          controller
-                        );
-                    },
-                    pull: function () {
-                      startFlowing(request, writable);
-                    },
-                    cancel: function (reason) {
-                      request.destination = null;
-                      abort(request, reason);
-                    }
-                  },
-                  { highWaterMark: 0 }
-                );
-              stream = {
-                postponed: getPostponedState(request),
-                prelude: stream
-              };
-              resolve(stream);
-            },
-            void 0,
-            void 0,
-            reject,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.prerenderToNodeStream = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var resumableState = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createPrerenderRequest(
-            children,
-            resumableState,
-            createRenderState(
-              resumableState,
-              void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              options ? options.onHeaders : void 0,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            function () {
-              var readable = new stream.Readable({
-                  read: function () {
-                    startFlowing(request, writable);
-                  }
-                }),
-                writable = createFakeWritableFromReadable(readable);
-              readable = {
-                postponed: getPostponedState(request),
-                prelude: readable
-              };
-              resolve(readable);
-            },
-            void 0,
-            void 0,
-            reject,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.renderToPipeableStream = function (children, options) {
-      var request = createRequestImpl(children, options),
-        hasStartedFlowing = !1;
-      startWork(request);
-      return {
-        pipe: function (destination) {
-          if (hasStartedFlowing)
-            throw Error(
-              "React currently only supports piping to one writable stream."
-            );
-          hasStartedFlowing = !0;
-          safelyEmitEarlyPreloads(
-            request,
-            null === request.trackedPostpones
-              ? 0 === request.pendingRootTasks
-              : null === request.completedRootSegment
-                ? 0 === request.pendingRootTasks
-                : request.completedRootSegment.status !== POSTPONED
-          );
-          startFlowing(request, destination);
-          destination.on("drain", createDrainHandler(destination, request));
-          destination.on(
-            "error",
-            createCancelHandler(
-              request,
-              "The destination stream errored while writing data."
-            )
-          );
-          destination.on(
-            "close",
-            createCancelHandler(request, "The destination stream closed early.")
-          );
-          return destination;
-        },
-        abort: function (reason) {
-          abort(request, reason);
-        }
-      };
-    };
-    exports.renderToReadableStream = function (children, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          onHeaders = options ? options.onHeaders : void 0,
-          onHeadersImpl;
-        onHeaders &&
-          (onHeadersImpl = function (headersDescriptor) {
-            onHeaders(new Headers(headersDescriptor));
-          });
-        var resumableState = createResumableState(
-            options ? options.identifierPrefix : void 0,
-            options ? options.unstable_externalRuntimeSrc : void 0,
-            options ? options.bootstrapScriptContent : void 0,
-            options ? options.bootstrapScripts : void 0,
-            options ? options.bootstrapModules : void 0
-          ),
-          request = createRequest(
-            children,
-            resumableState,
-            createRenderState(
-              resumableState,
-              options ? options.nonce : void 0,
-              options ? options.unstable_externalRuntimeSrc : void 0,
-              options ? options.importMap : void 0,
-              onHeadersImpl,
-              options ? options.maxHeadersLength : void 0
-            ),
-            createRootFormatContext(options ? options.namespaceURI : void 0),
-            options ? options.progressiveChunkSize : void 0,
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var writable,
-                stream = new ReadableStream(
-                  {
-                    type: "bytes",
-                    start: function (controller) {
-                      writable =
-                        createFakeWritableFromReadableStreamController$1(
-                          controller
-                        );
-                    },
-                    pull: function () {
-                      startFlowing(request, writable);
-                    },
-                    cancel: function (reason) {
-                      request.destination = null;
-                      abort(request, reason);
-                    }
-                  },
-                  { highWaterMark: 0 }
-                );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0,
-            options ? options.formState : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resume = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var onFatalError,
-          onAllReady,
-          allReady = new Promise(function (res, rej) {
-            onAllReady = res;
-            onFatalError = rej;
-          }),
-          request = resumeRequest(
-            children,
-            postponedState,
-            createRenderState(
-              postponedState.resumableState,
-              options ? options.nonce : void 0,
-              void 0,
-              void 0,
-              void 0,
-              void 0
-            ),
-            options ? options.onError : void 0,
-            onAllReady,
-            function () {
-              var writable,
-                stream = new ReadableStream(
-                  {
-                    type: "bytes",
-                    start: function (controller) {
-                      writable =
-                        createFakeWritableFromReadableStreamController$1(
-                          controller
-                        );
-                    },
-                    pull: function () {
-                      startFlowing(request, writable);
-                    },
-                    cancel: function (reason) {
-                      request.destination = null;
-                      abort(request, reason);
-                    }
-                  },
-                  { highWaterMark: 0 }
-                );
-              stream.allReady = allReady;
-              resolve(stream);
-            },
-            function (error) {
-              allReady.catch(function () {});
-              reject(error);
-            },
-            onFatalError,
-            options ? options.onPostpone : void 0
-          );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resumeAndPrerender = function (children, postponedState, options) {
-      return new Promise(function (resolve, reject) {
-        var request = resumeAndPrerenderRequest(
-          children,
-          postponedState,
-          createRenderState(
-            postponedState.resumableState,
-            void 0,
-            void 0,
-            void 0,
-            void 0,
-            void 0
-          ),
-          options ? options.onError : void 0,
-          function () {
-            var writable,
-              stream = new ReadableStream(
-                {
-                  type: "bytes",
-                  start: function (controller) {
-                    writable =
-                      createFakeWritableFromReadableStreamController(
-                        controller
-                      );
-                  },
-                  pull: function () {
-                    startFlowing(request, writable);
-                  },
-                  cancel: function (reason) {
-                    request.destination = null;
-                    abort(request, reason);
-                  }
-                },
-                { highWaterMark: 0 }
-              );
-            stream = { postponed: getPostponedState(request), prelude: stream };
-            resolve(stream);
-          },
-          void 0,
-          void 0,
-          reject,
-          options ? options.onPostpone : void 0
-        );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resumeAndPrerenderToNodeStream = function (
-      children,
-      postponedState,
-      options
-    ) {
-      return new Promise(function (resolve, reject) {
-        var request = resumeAndPrerenderRequest(
-          children,
-          postponedState,
-          createRenderState(
-            postponedState.resumableState,
-            void 0,
-            void 0,
-            void 0,
-            void 0,
-            void 0
-          ),
-          options ? options.onError : void 0,
-          function () {
-            var readable = new stream.Readable({
-                read: function () {
-                  startFlowing(request, writable);
-                }
-              }),
-              writable = createFakeWritableFromReadable(readable);
-            readable = {
-              postponed: getPostponedState(request),
-              prelude: readable
-            };
-            resolve(readable);
-          },
-          void 0,
-          void 0,
-          reject,
-          options ? options.onPostpone : void 0
-        );
-        if (options && options.signal) {
-          var signal = options.signal;
-          if (signal.aborted) abort(request, signal.reason);
-          else {
-            var listener = function () {
-              abort(request, signal.reason);
-              signal.removeEventListener("abort", listener);
-            };
-            signal.addEventListener("abort", listener);
-          }
-        }
-        startWork(request);
-      });
-    };
-    exports.resumeToPipeableStream = function (
-      children,
-      postponedState,
-      options
-    ) {
-      var request = resumeRequestImpl(children, postponedState, options),
-        hasStartedFlowing = !1;
-      startWork(request);
-      return {
-        pipe: function (destination) {
-          if (hasStartedFlowing)
-            throw Error(
-              "React currently only supports piping to one writable stream."
-            );
-          hasStartedFlowing = !0;
-          startFlowing(request, destination);
-          destination.on("drain", createDrainHandler(destination, request));
-          destination.on(
-            "error",
-            createCancelHandler(
-              request,
-              "The destination stream errored while writing data."
-            )
-          );
-          destination.on(
-            "close",
-            createCancelHandler(request, "The destination stream closed early.")
-          );
-          return destination;
-        },
-        abort: function (reason) {
-          abort(request, reason);
-        }
-      };
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom-server.node.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-server.node.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7707 +1,0 @@
-/**
- * @license React
- * react-dom-server.node.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.
- */
-
-"use strict";
-var util = require("util"),
-  crypto = require("crypto"),
-  async_hooks = require("async_hooks"),
-  React = require("react"),
-  ReactDOM = require("react-dom"),
-  stream = require("stream"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_SCOPE_TYPE = Symbol.for("react.scope"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
-  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var isArrayImpl = Array.isArray,
-  scheduleMicrotask = queueMicrotask;
-function flushBuffered(destination) {
-  "function" === typeof destination.flush && destination.flush();
-}
-var currentView = null,
-  writtenBytes = 0,
-  destinationHasCapacity$1 = !0;
-function writeChunk(destination, chunk) {
-  if ("string" === typeof chunk) {
-    if (0 !== chunk.length)
-      if (2048 < 3 * chunk.length)
-        0 < writtenBytes &&
-          (writeToDestination(
-            destination,
-            currentView.subarray(0, writtenBytes)
-          ),
-          (currentView = new Uint8Array(2048)),
-          (writtenBytes = 0)),
-          writeToDestination(destination, chunk);
-      else {
-        var target = currentView;
-        0 < writtenBytes && (target = currentView.subarray(writtenBytes));
-        target = textEncoder.encodeInto(chunk, target);
-        var read = target.read;
-        writtenBytes += target.written;
-        read < chunk.length &&
-          (writeToDestination(
-            destination,
-            currentView.subarray(0, writtenBytes)
-          ),
-          (currentView = new Uint8Array(2048)),
-          (writtenBytes = textEncoder.encodeInto(
-            chunk.slice(read),
-            currentView
-          ).written));
-        2048 === writtenBytes &&
-          (writeToDestination(destination, currentView),
-          (currentView = new Uint8Array(2048)),
-          (writtenBytes = 0));
-      }
-  } else
-    0 !== chunk.byteLength &&
-      (2048 < chunk.byteLength
-        ? (0 < writtenBytes &&
-            (writeToDestination(
-              destination,
-              currentView.subarray(0, writtenBytes)
-            ),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0)),
-          writeToDestination(destination, chunk))
-        : ((target = currentView.length - writtenBytes),
-          target < chunk.byteLength &&
-            (0 === target
-              ? writeToDestination(destination, currentView)
-              : (currentView.set(chunk.subarray(0, target), writtenBytes),
-                (writtenBytes += target),
-                writeToDestination(destination, currentView),
-                (chunk = chunk.subarray(target))),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0)),
-          currentView.set(chunk, writtenBytes),
-          (writtenBytes += chunk.byteLength),
-          2048 === writtenBytes &&
-            (writeToDestination(destination, currentView),
-            (currentView = new Uint8Array(2048)),
-            (writtenBytes = 0))));
-}
-function writeToDestination(destination, view) {
-  destination = destination.write(view);
-  destinationHasCapacity$1 = destinationHasCapacity$1 && destination;
-}
-function writeChunkAndReturn(destination, chunk) {
-  writeChunk(destination, chunk);
-  return destinationHasCapacity$1;
-}
-function completeWriting(destination) {
-  currentView &&
-    0 < writtenBytes &&
-    destination.write(currentView.subarray(0, writtenBytes));
-  currentView = null;
-  writtenBytes = 0;
-  destinationHasCapacity$1 = !0;
-}
-var textEncoder = new util.TextEncoder();
-function stringToPrecomputedChunk(content) {
-  return textEncoder.encode(content);
-}
-function byteLengthOfChunk(chunk) {
-  return "string" === typeof chunk
-    ? Buffer.byteLength(chunk, "utf8")
-    : chunk.byteLength;
-}
-var assign = Object.assign,
-  hasOwnProperty = Object.prototype.hasOwnProperty,
-  VALID_ATTRIBUTE_NAME_REGEX = RegExp(
-    "^[: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]*$"
-  ),
-  illegalAttributeNameCache = {},
-  validatedAttributeNameCache = {};
-function isAttributeNameSafe(attributeName) {
-  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
-    return !0;
-  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
-  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
-    return (validatedAttributeNameCache[attributeName] = !0);
-  illegalAttributeNameCache[attributeName] = !0;
-  return !1;
-}
-var unitlessNumbers = new Set(
-    "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
-      " "
-    )
-  ),
-  aliases = new Map([
-    ["acceptCharset", "accept-charset"],
-    ["htmlFor", "for"],
-    ["httpEquiv", "http-equiv"],
-    ["crossOrigin", "crossorigin"],
-    ["accentHeight", "accent-height"],
-    ["alignmentBaseline", "alignment-baseline"],
-    ["arabicForm", "arabic-form"],
-    ["baselineShift", "baseline-shift"],
-    ["capHeight", "cap-height"],
-    ["clipPath", "clip-path"],
-    ["clipRule", "clip-rule"],
-    ["colorInterpolation", "color-interpolation"],
-    ["colorInterpolationFilters", "color-interpolation-filters"],
-    ["colorProfile", "color-profile"],
-    ["colorRendering", "color-rendering"],
-    ["dominantBaseline", "dominant-baseline"],
-    ["enableBackground", "enable-background"],
-    ["fillOpacity", "fill-opacity"],
-    ["fillRule", "fill-rule"],
-    ["floodColor", "flood-color"],
-    ["floodOpacity", "flood-opacity"],
-    ["fontFamily", "font-family"],
-    ["fontSize", "font-size"],
-    ["fontSizeAdjust", "font-size-adjust"],
-    ["fontStretch", "font-stretch"],
-    ["fontStyle", "font-style"],
-    ["fontVariant", "font-variant"],
-    ["fontWeight", "font-weight"],
-    ["glyphName", "glyph-name"],
-    ["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
-    ["glyphOrientationVertical", "glyph-orientation-vertical"],
-    ["horizAdvX", "horiz-adv-x"],
-    ["horizOriginX", "horiz-origin-x"],
-    ["imageRendering", "image-rendering"],
-    ["letterSpacing", "letter-spacing"],
-    ["lightingColor", "lighting-color"],
-    ["markerEnd", "marker-end"],
-    ["markerMid", "marker-mid"],
-    ["markerStart", "marker-start"],
-    ["overlinePosition", "overline-position"],
-    ["overlineThickness", "overline-thickness"],
-    ["paintOrder", "paint-order"],
-    ["panose-1", "panose-1"],
-    ["pointerEvents", "pointer-events"],
-    ["renderingIntent", "rendering-intent"],
-    ["shapeRendering", "shape-rendering"],
-    ["stopColor", "stop-color"],
-    ["stopOpacity", "stop-opacity"],
-    ["strikethroughPosition", "strikethrough-position"],
-    ["strikethroughThickness", "strikethrough-thickness"],
-    ["strokeDasharray", "stroke-dasharray"],
-    ["strokeDashoffset", "stroke-dashoffset"],
-    ["strokeLinecap", "stroke-linecap"],
-    ["strokeLinejoin", "stroke-linejoin"],
-    ["strokeMiterlimit", "stroke-miterlimit"],
-    ["strokeOpacity", "stroke-opacity"],
-    ["strokeWidth", "stroke-width"],
-    ["textAnchor", "text-anchor"],
-    ["textDecoration", "text-decoration"],
-    ["textRendering", "text-rendering"],
-    ["transformOrigin", "transform-origin"],
-    ["underlinePosition", "underline-position"],
-    ["underlineThickness", "underline-thickness"],
-    ["unicodeBidi", "unicode-bidi"],
-    ["unicodeRange", "unicode-range"],
-    ["unitsPerEm", "units-per-em"],
-    ["vAlphabetic", "v-alphabetic"],
-    ["vHanging", "v-hanging"],
-    ["vIdeographic", "v-ideographic"],
-    ["vMathematical", "v-mathematical"],
-    ["vectorEffect", "vector-effect"],
-    ["vertAdvY", "vert-adv-y"],
-    ["vertOriginX", "vert-origin-x"],
-    ["vertOriginY", "vert-origin-y"],
-    ["wordSpacing", "word-spacing"],
-    ["writingMode", "writing-mode"],
-    ["xmlnsXlink", "xmlns:xlink"],
-    ["xHeight", "x-height"]
-  ]),
-  matchHtmlRegExp = /["'&<>]/;
-function escapeTextForBrowser(text) {
-  if (
-    "boolean" === typeof text ||
-    "number" === typeof text ||
-    "bigint" === typeof text
-  )
-    return "" + text;
-  text = "" + text;
-  var match = matchHtmlRegExp.exec(text);
-  if (match) {
-    var html = "",
-      index,
-      lastIndex = 0;
-    for (index = match.index; index < text.length; index++) {
-      switch (text.charCodeAt(index)) {
-        case 34:
-          match = "&quot;";
-          break;
-        case 38:
-          match = "&amp;";
-          break;
-        case 39:
-          match = "&#x27;";
-          break;
-        case 60:
-          match = "&lt;";
-          break;
-        case 62:
-          match = "&gt;";
-          break;
-        default:
-          continue;
-      }
-      lastIndex !== index && (html += text.slice(lastIndex, index));
-      lastIndex = index + 1;
-      html += match;
-    }
-    text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
-  }
-  return text;
-}
-var uppercasePattern = /([A-Z])/g,
-  msPattern = /^ms-/,
-  isJavaScriptProtocol =
-    /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-function sanitizeURL(url) {
-  return isJavaScriptProtocol.test("" + url)
-    ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
-    : url;
-}
-var ReactSharedInternals =
-    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  ReactDOMSharedInternals =
-    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-  sharedNotPendingObject = {
-    pending: !1,
-    data: null,
-    method: null,
-    action: null
-  },
-  previousDispatcher = ReactDOMSharedInternals.d;
-ReactDOMSharedInternals.d = {
-  f: previousDispatcher.f,
-  r: previousDispatcher.r,
-  D: prefetchDNS,
-  C: preconnect,
-  L: preload,
-  m: preloadModule,
-  X: preinitScript,
-  S: preinitStyle,
-  M: preinitModuleScript
-};
-var PRELOAD_NO_CREDS = [],
-  currentlyFlushingRenderState = null;
-stringToPrecomputedChunk('"></template>');
-var startInlineScript = stringToPrecomputedChunk("<script"),
-  endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
-  startScriptSrc = stringToPrecomputedChunk('<script src="'),
-  startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
-  scriptNonce = stringToPrecomputedChunk(' nonce="'),
-  scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
-  scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
-  endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
-  startInlineStyle = stringToPrecomputedChunk("<style"),
-  scriptRegex = /(<\/|<)(s)(cript)/gi;
-function scriptReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
-}
-var importMapScriptStart = stringToPrecomputedChunk(
-    '<script type="importmap">'
-  ),
-  importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
-function createRenderState(
-  resumableState,
-  nonce,
-  externalRuntimeConfig,
-  importMap,
-  onHeaders,
-  maxHeadersLength
-) {
-  externalRuntimeConfig =
-    "string" === typeof nonce ? nonce : nonce && nonce.script;
-  var inlineScriptWithNonce =
-      void 0 === externalRuntimeConfig
-        ? startInlineScript
-        : stringToPrecomputedChunk(
-            '<script nonce="' +
-              escapeTextForBrowser(externalRuntimeConfig) +
-              '"'
-          ),
-    nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
-    inlineStyleWithNonce =
-      void 0 === nonceStyle
-        ? startInlineStyle
-        : stringToPrecomputedChunk(
-            '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
-          ),
-    idPrefix = resumableState.idPrefix,
-    bootstrapChunks = [],
-    bootstrapScriptContent = resumableState.bootstrapScriptContent,
-    bootstrapScripts = resumableState.bootstrapScripts,
-    bootstrapModules = resumableState.bootstrapModules;
-  void 0 !== bootstrapScriptContent &&
-    (bootstrapChunks.push(inlineScriptWithNonce),
-    pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-    bootstrapChunks.push(
-      endOfStartTag,
-      ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
-      endInlineScript
-    ));
-  bootstrapScriptContent = [];
-  void 0 !== importMap &&
-    (bootstrapScriptContent.push(importMapScriptStart),
-    bootstrapScriptContent.push(
-      ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer)
-    ),
-    bootstrapScriptContent.push(importMapScriptEnd));
-  importMap = onHeaders
-    ? {
-        preconnects: "",
-        fontPreloads: "",
-        highImagePreloads: "",
-        remainingCapacity:
-          2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
-      }
-    : null;
-  onHeaders = {
-    placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
-    segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
-    boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
-    startInlineScript: inlineScriptWithNonce,
-    startInlineStyle: inlineStyleWithNonce,
-    preamble: createPreambleState(),
-    externalRuntimeScript: null,
-    bootstrapChunks: bootstrapChunks,
-    importMapChunks: bootstrapScriptContent,
-    onHeaders: onHeaders,
-    headers: importMap,
-    resets: {
-      font: {},
-      dns: {},
-      connect: { default: {}, anonymous: {}, credentials: {} },
-      image: {},
-      style: {}
-    },
-    charsetChunks: [],
-    viewportChunks: [],
-    hoistableChunks: [],
-    preconnects: new Set(),
-    fontPreloads: new Set(),
-    highImagePreloads: new Set(),
-    styles: new Map(),
-    bootstrapScripts: new Set(),
-    scripts: new Set(),
-    bulkPreloads: new Set(),
-    preloads: {
-      images: new Map(),
-      stylesheets: new Map(),
-      scripts: new Map(),
-      moduleScripts: new Map()
-    },
-    nonce: { script: externalRuntimeConfig, style: nonceStyle },
-    hoistableState: null,
-    stylesToHoist: !1
-  };
-  if (void 0 !== bootstrapScripts)
-    for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
-      (idPrefix = bootstrapScripts[importMap]),
-        (nonceStyle = inlineScriptWithNonce = void 0),
-        (inlineStyleWithNonce = {
-          rel: "preload",
-          as: "script",
-          fetchPriority: "low",
-          nonce: nonce
-        }),
-        "string" === typeof idPrefix
-          ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
-          : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
-            (inlineStyleWithNonce.integrity = nonceStyle =
-              "string" === typeof idPrefix.integrity
-                ? idPrefix.integrity
-                : void 0),
-            (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
-              "string" === typeof idPrefix || null == idPrefix.crossOrigin
-                ? void 0
-                : "use-credentials" === idPrefix.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (idPrefix = resumableState),
-        (bootstrapScriptContent = maxHeadersLength),
-        (idPrefix.scriptResources[bootstrapScriptContent] = null),
-        (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
-        (idPrefix = []),
-        pushLinkImpl(idPrefix, inlineStyleWithNonce),
-        onHeaders.bootstrapScripts.add(idPrefix),
-        bootstrapChunks.push(
-          startScriptSrc,
-          escapeTextForBrowser(maxHeadersLength),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            escapeTextForBrowser(externalRuntimeConfig),
-            attributeEnd
-          ),
-        "string" === typeof nonceStyle &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            escapeTextForBrowser(nonceStyle),
-            attributeEnd
-          ),
-        "string" === typeof inlineScriptWithNonce &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            escapeTextForBrowser(inlineScriptWithNonce),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  if (void 0 !== bootstrapModules)
-    for (nonce = 0; nonce < bootstrapModules.length; nonce++)
-      (nonceStyle = bootstrapModules[nonce]),
-        (maxHeadersLength = importMap = void 0),
-        (inlineScriptWithNonce = {
-          rel: "modulepreload",
-          fetchPriority: "low",
-          nonce: externalRuntimeConfig
-        }),
-        "string" === typeof nonceStyle
-          ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
-          : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
-            (inlineScriptWithNonce.integrity = maxHeadersLength =
-              "string" === typeof nonceStyle.integrity
-                ? nonceStyle.integrity
-                : void 0),
-            (inlineScriptWithNonce.crossOrigin = importMap =
-              "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
-                ? void 0
-                : "use-credentials" === nonceStyle.crossOrigin
-                  ? "use-credentials"
-                  : "")),
-        (nonceStyle = resumableState),
-        (inlineStyleWithNonce = bootstrapScripts),
-        (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
-        (nonceStyle = []),
-        pushLinkImpl(nonceStyle, inlineScriptWithNonce),
-        onHeaders.bootstrapScripts.add(nonceStyle),
-        bootstrapChunks.push(
-          startModuleSrc,
-          escapeTextForBrowser(bootstrapScripts),
-          attributeEnd
-        ),
-        externalRuntimeConfig &&
-          bootstrapChunks.push(
-            scriptNonce,
-            escapeTextForBrowser(externalRuntimeConfig),
-            attributeEnd
-          ),
-        "string" === typeof maxHeadersLength &&
-          bootstrapChunks.push(
-            scriptIntegirty,
-            escapeTextForBrowser(maxHeadersLength),
-            attributeEnd
-          ),
-        "string" === typeof importMap &&
-          bootstrapChunks.push(
-            scriptCrossOrigin,
-            escapeTextForBrowser(importMap),
-            attributeEnd
-          ),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(endAsyncScript);
-  return onHeaders;
-}
-function createResumableState(
-  identifierPrefix,
-  externalRuntimeConfig,
-  bootstrapScriptContent,
-  bootstrapScripts,
-  bootstrapModules
-) {
-  return {
-    idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
-    nextFormID: 0,
-    streamingFormat: 0,
-    bootstrapScriptContent: bootstrapScriptContent,
-    bootstrapScripts: bootstrapScripts,
-    bootstrapModules: bootstrapModules,
-    instructions: 0,
-    hasBody: !1,
-    hasHtml: !1,
-    unknownResources: {},
-    dnsResources: {},
-    connectResources: { default: {}, anonymous: {}, credentials: {} },
-    imageResources: {},
-    styleResources: {},
-    scriptResources: {},
-    moduleUnknownResources: {},
-    moduleScriptResources: {}
-  };
-}
-function createPreambleState() {
-  return { htmlChunks: null, headChunks: null, bodyChunks: null };
-}
-function createFormatContext(
-  insertionMode,
-  selectedValue,
-  tagScope,
-  viewTransition
-) {
-  return {
-    insertionMode: insertionMode,
-    selectedValue: selectedValue,
-    tagScope: tagScope,
-    viewTransition: viewTransition
-  };
-}
-function createRootFormatContext(namespaceURI) {
-  return createFormatContext(
-    "http://www.w3.org/2000/svg" === namespaceURI
-      ? 4
-      : "http://www.w3.org/1998/Math/MathML" === namespaceURI
-        ? 5
-        : 0,
-    null,
-    0,
-    null
-  );
-}
-function getChildFormatContext(parentContext, type, props) {
-  var subtreeScope = parentContext.tagScope & -25;
-  switch (type) {
-    case "noscript":
-      return createFormatContext(2, null, subtreeScope | 1, null);
-    case "select":
-      return createFormatContext(
-        2,
-        null != props.value ? props.value : props.defaultValue,
-        subtreeScope,
-        null
-      );
-    case "svg":
-      return createFormatContext(4, null, subtreeScope, null);
-    case "picture":
-      return createFormatContext(2, null, subtreeScope | 2, null);
-    case "math":
-      return createFormatContext(5, null, subtreeScope, null);
-    case "foreignObject":
-      return createFormatContext(2, null, subtreeScope, null);
-    case "table":
-      return createFormatContext(6, null, subtreeScope, null);
-    case "thead":
-    case "tbody":
-    case "tfoot":
-      return createFormatContext(7, null, subtreeScope, null);
-    case "colgroup":
-      return createFormatContext(9, null, subtreeScope, null);
-    case "tr":
-      return createFormatContext(8, null, subtreeScope, null);
-    case "head":
-      if (2 > parentContext.insertionMode)
-        return createFormatContext(3, null, subtreeScope, null);
-      break;
-    case "html":
-      if (0 === parentContext.insertionMode)
-        return createFormatContext(1, null, subtreeScope, null);
-  }
-  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
-    ? createFormatContext(2, null, subtreeScope, null)
-    : parentContext.tagScope !== subtreeScope
-      ? createFormatContext(
-          parentContext.insertionMode,
-          parentContext.selectedValue,
-          subtreeScope,
-          null
-        )
-      : parentContext;
-}
-function getSuspenseViewTransition(parentViewTransition) {
-  return null === parentViewTransition
-    ? null
-    : {
-        update: parentViewTransition.update,
-        enter: "none",
-        exit: "none",
-        share: parentViewTransition.update,
-        name: parentViewTransition.autoName,
-        autoName: parentViewTransition.autoName,
-        nameIdx: 0
-      };
-}
-function getSuspenseFallbackFormatContext(resumableState, parentContext) {
-  parentContext.tagScope & 32 && (resumableState.instructions |= 128);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    parentContext.tagScope | 12,
-    getSuspenseViewTransition(parentContext.viewTransition)
-  );
-}
-function getSuspenseContentFormatContext(resumableState, parentContext) {
-  resumableState = getSuspenseViewTransition(parentContext.viewTransition);
-  var subtreeScope = parentContext.tagScope | 16;
-  null !== resumableState &&
-    "none" !== resumableState.share &&
-    (subtreeScope |= 64);
-  return createFormatContext(
-    parentContext.insertionMode,
-    parentContext.selectedValue,
-    subtreeScope,
-    resumableState
-  );
-}
-var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e");
-function pushTextInstance(target, text, renderState, textEmbedded) {
-  if ("" === text) return textEmbedded;
-  textEmbedded && target.push(textSeparator);
-  target.push(escapeTextForBrowser(text));
-  return !0;
-}
-var styleNameCache = new Map(),
-  styleAttributeStart = stringToPrecomputedChunk(' style="'),
-  styleAssign = stringToPrecomputedChunk(":"),
-  styleSeparator = stringToPrecomputedChunk(";");
-function pushStyleAttribute(target, style) {
-  if ("object" !== typeof style)
-    throw Error(
-      "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
-    );
-  var isFirst = !0,
-    styleName;
-  for (styleName in style)
-    if (hasOwnProperty.call(style, styleName)) {
-      var styleValue = style[styleName];
-      if (
-        null != styleValue &&
-        "boolean" !== typeof styleValue &&
-        "" !== styleValue
-      ) {
-        if (0 === styleName.indexOf("--")) {
-          var nameChunk = escapeTextForBrowser(styleName);
-          styleValue = escapeTextForBrowser(("" + styleValue).trim());
-        } else
-          (nameChunk = styleNameCache.get(styleName)),
-            void 0 === nameChunk &&
-              ((nameChunk = stringToPrecomputedChunk(
-                escapeTextForBrowser(
-                  styleName
-                    .replace(uppercasePattern, "-$1")
-                    .toLowerCase()
-                    .replace(msPattern, "-ms-")
-                )
-              )),
-              styleNameCache.set(styleName, nameChunk)),
-            (styleValue =
-              "number" === typeof styleValue
-                ? 0 === styleValue || unitlessNumbers.has(styleName)
-                  ? "" + styleValue
-                  : styleValue + "px"
-                : escapeTextForBrowser(("" + styleValue).trim()));
-        isFirst
-          ? ((isFirst = !1),
-            target.push(
-              styleAttributeStart,
-              nameChunk,
-              styleAssign,
-              styleValue
-            ))
-          : target.push(styleSeparator, nameChunk, styleAssign, styleValue);
-      }
-    }
-  isFirst || target.push(attributeEnd);
-}
-var attributeSeparator = stringToPrecomputedChunk(" "),
-  attributeAssign = stringToPrecomputedChunk('="'),
-  attributeEnd = stringToPrecomputedChunk('"'),
-  attributeEmptyString = stringToPrecomputedChunk('=""');
-function pushBooleanAttribute(target, name, value) {
-  value &&
-    "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    target.push(attributeSeparator, name, attributeEmptyString);
-}
-function pushStringAttribute(target, name, value) {
-  "function" !== typeof value &&
-    "symbol" !== typeof value &&
-    "boolean" !== typeof value &&
-    target.push(
-      attributeSeparator,
-      name,
-      attributeAssign,
-      escapeTextForBrowser(value),
-      attributeEnd
-    );
-}
-var actionJavaScriptURL = stringToPrecomputedChunk(
-    escapeTextForBrowser(
-      "javascript:throw new Error('React form unexpectedly submitted.')"
-    )
-  ),
-  startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"');
-function pushAdditionalFormField(value, key) {
-  this.push(startHiddenInputChunk);
-  validateAdditionalFormField(value);
-  pushStringAttribute(this, "name", key);
-  pushStringAttribute(this, "value", value);
-  this.push(endOfStartTagSelfClosing);
-}
-function validateAdditionalFormField(value) {
-  if ("string" !== typeof value)
-    throw Error(
-      "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration."
-    );
-}
-function getCustomFormFields(resumableState, formAction) {
-  if ("function" === typeof formAction.$$FORM_ACTION) {
-    var id = resumableState.nextFormID++;
-    resumableState = resumableState.idPrefix + id;
-    try {
-      var customFields = formAction.$$FORM_ACTION(resumableState);
-      if (customFields) {
-        var formData = customFields.data;
-        null != formData && formData.forEach(validateAdditionalFormField);
-      }
-      return customFields;
-    } catch (x) {
-      if ("object" === typeof x && null !== x && "function" === typeof x.then)
-        throw x;
-    }
-  }
-  return null;
-}
-function pushFormActionAttribute(
-  target,
-  resumableState,
-  renderState,
-  formAction,
-  formEncType,
-  formMethod,
-  formTarget,
-  name
-) {
-  var formData = null;
-  if ("function" === typeof formAction) {
-    var customFields = getCustomFormFields(resumableState, formAction);
-    null !== customFields
-      ? ((name = customFields.name),
-        (formAction = customFields.action || ""),
-        (formEncType = customFields.encType),
-        (formMethod = customFields.method),
-        (formTarget = customFields.target),
-        (formData = customFields.data))
-      : (target.push(
-          attributeSeparator,
-          "formAction",
-          attributeAssign,
-          actionJavaScriptURL,
-          attributeEnd
-        ),
-        (formTarget = formMethod = formEncType = formAction = name = null),
-        injectFormReplayingRuntime(resumableState, renderState));
-  }
-  null != name && pushAttribute(target, "name", name);
-  null != formAction && pushAttribute(target, "formAction", formAction);
-  null != formEncType && pushAttribute(target, "formEncType", formEncType);
-  null != formMethod && pushAttribute(target, "formMethod", formMethod);
-  null != formTarget && pushAttribute(target, "formTarget", formTarget);
-  return formData;
-}
-function pushAttribute(target, name, value) {
-  switch (name) {
-    case "className":
-      pushStringAttribute(target, "class", value);
-      break;
-    case "tabIndex":
-      pushStringAttribute(target, "tabindex", value);
-      break;
-    case "dir":
-    case "role":
-    case "viewBox":
-    case "width":
-    case "height":
-      pushStringAttribute(target, name, value);
-      break;
-    case "style":
-      pushStyleAttribute(target, value);
-      break;
-    case "src":
-    case "href":
-      if ("" === value) break;
-    case "action":
-    case "formAction":
-      if (
-        null == value ||
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        name,
-        attributeAssign,
-        escapeTextForBrowser(value),
-        attributeEnd
-      );
-      break;
-    case "defaultValue":
-    case "defaultChecked":
-    case "innerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "ref":
-      break;
-    case "autoFocus":
-    case "multiple":
-    case "muted":
-      pushBooleanAttribute(target, name.toLowerCase(), value);
-      break;
-    case "xlinkHref":
-      if (
-        "function" === typeof value ||
-        "symbol" === typeof value ||
-        "boolean" === typeof value
-      )
-        break;
-      value = sanitizeURL("" + value);
-      target.push(
-        attributeSeparator,
-        "xlink:href",
-        attributeAssign,
-        escapeTextForBrowser(value),
-        attributeEnd
-      );
-      break;
-    case "contentEditable":
-    case "spellCheck":
-    case "draggable":
-    case "value":
-    case "autoReverse":
-    case "externalResourcesRequired":
-    case "focusable":
-    case "preserveAlpha":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "inert":
-    case "allowFullScreen":
-    case "async":
-    case "autoPlay":
-    case "controls":
-    case "default":
-    case "defer":
-    case "disabled":
-    case "disablePictureInPicture":
-    case "disableRemotePlayback":
-    case "formNoValidate":
-    case "hidden":
-    case "loop":
-    case "noModule":
-    case "noValidate":
-    case "open":
-    case "playsInline":
-    case "readOnly":
-    case "required":
-    case "reversed":
-    case "scoped":
-    case "seamless":
-    case "itemScope":
-      value &&
-        "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        target.push(attributeSeparator, name, attributeEmptyString);
-      break;
-    case "capture":
-    case "download":
-      !0 === value
-        ? target.push(attributeSeparator, name, attributeEmptyString)
-        : !1 !== value &&
-          "function" !== typeof value &&
-          "symbol" !== typeof value &&
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-      break;
-    case "cols":
-    case "rows":
-    case "size":
-    case "span":
-      "function" !== typeof value &&
-        "symbol" !== typeof value &&
-        !isNaN(value) &&
-        1 <= value &&
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "rowSpan":
-    case "start":
-      "function" === typeof value ||
-        "symbol" === typeof value ||
-        isNaN(value) ||
-        target.push(
-          attributeSeparator,
-          name,
-          attributeAssign,
-          escapeTextForBrowser(value),
-          attributeEnd
-        );
-      break;
-    case "xlinkActuate":
-      pushStringAttribute(target, "xlink:actuate", value);
-      break;
-    case "xlinkArcrole":
-      pushStringAttribute(target, "xlink:arcrole", value);
-      break;
-    case "xlinkRole":
-      pushStringAttribute(target, "xlink:role", value);
-      break;
-    case "xlinkShow":
-      pushStringAttribute(target, "xlink:show", value);
-      break;
-    case "xlinkTitle":
-      pushStringAttribute(target, "xlink:title", value);
-      break;
-    case "xlinkType":
-      pushStringAttribute(target, "xlink:type", value);
-      break;
-    case "xmlBase":
-      pushStringAttribute(target, "xml:base", value);
-      break;
-    case "xmlLang":
-      pushStringAttribute(target, "xml:lang", value);
-      break;
-    case "xmlSpace":
-      pushStringAttribute(target, "xml:space", value);
-      break;
-    default:
-      if (
-        !(2 < name.length) ||
-        ("o" !== name[0] && "O" !== name[0]) ||
-        ("n" !== name[1] && "N" !== name[1])
-      )
-        if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
-          switch (typeof value) {
-            case "function":
-            case "symbol":
-              return;
-            case "boolean":
-              var prefix$8 = name.toLowerCase().slice(0, 5);
-              if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
-          }
-          target.push(
-            attributeSeparator,
-            name,
-            attributeAssign,
-            escapeTextForBrowser(value),
-            attributeEnd
-          );
-        }
-  }
-}
-var endOfStartTag = stringToPrecomputedChunk(">"),
-  endOfStartTagSelfClosing = stringToPrecomputedChunk("/>");
-function pushInnerHTML(target, innerHTML, children) {
-  if (null != innerHTML) {
-    if (null != children)
-      throw Error(
-        "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-      );
-    if ("object" !== typeof innerHTML || !("__html" in innerHTML))
-      throw Error(
-        "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-      );
-    innerHTML = innerHTML.__html;
-    null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML);
-  }
-}
-function flattenOptionChildren(children) {
-  var content = "";
-  React.Children.forEach(children, function (child) {
-    null != child && (content += child);
-  });
-  return content;
-}
-var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
-  formReplayingRuntimeScript = stringToPrecomputedChunk(
-    'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
-  );
-function injectFormReplayingRuntime(resumableState, renderState) {
-  if (0 === (resumableState.instructions & 16)) {
-    resumableState.instructions |= 16;
-    var preamble = renderState.preamble,
-      bootstrapChunks = renderState.bootstrapChunks;
-    (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
-      ? (bootstrapChunks.push(renderState.startInlineScript),
-        pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
-        bootstrapChunks.push(
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        ))
-      : bootstrapChunks.unshift(
-          renderState.startInlineScript,
-          endOfStartTag,
-          formReplayingRuntimeScript,
-          endInlineScript
-        );
-  }
-}
-var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
-  formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e");
-function pushLinkImpl(target, props) {
-  target.push(startChunkForTag("link"));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-var styleRegex = /(<\/|<)(s)(tyle)/gi;
-function styleReplacer(match, prefix, s, suffix) {
-  return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
-}
-function pushSelfClosing(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  for (var propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-          case "dangerouslySetInnerHTML":
-            throw Error(
-              tag +
-                " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-            );
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTagSelfClosing);
-  return null;
-}
-function pushTitleImpl(target, props) {
-  target.push(startChunkForTag("title"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  props = Array.isArray(children)
-    ? 2 > children.length
-      ? children[0]
-      : null
-    : children;
-  "function" !== typeof props &&
-    "symbol" !== typeof props &&
-    null !== props &&
-    void 0 !== props &&
-    target.push(escapeTextForBrowser("" + props));
-  pushInnerHTML(target, innerHTML, children);
-  target.push(endChunkForTag("title"));
-  return null;
-}
-var headPreambleContributionChunk =
-    stringToPrecomputedChunk("\x3c!--head--\x3e"),
-  bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"),
-  htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e");
-function pushScriptImpl(target, props) {
-  target.push(startChunkForTag("script"));
-  var children = null,
-    innerHTML = null,
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            children = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, children);
-  "string" === typeof children &&
-    target.push(("" + children).replace(scriptRegex, scriptReplacer));
-  target.push(endChunkForTag("script"));
-  return null;
-}
-function pushStartSingletonElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return tag;
-}
-function pushStartGenericElement(target, props, tag) {
-  target.push(startChunkForTag(tag));
-  var innerHTML = (tag = null),
-    propKey;
-  for (propKey in props)
-    if (hasOwnProperty.call(props, propKey)) {
-      var propValue = props[propKey];
-      if (null != propValue)
-        switch (propKey) {
-          case "children":
-            tag = propValue;
-            break;
-          case "dangerouslySetInnerHTML":
-            innerHTML = propValue;
-            break;
-          default:
-            pushAttribute(target, propKey, propValue);
-        }
-    }
-  target.push(endOfStartTag);
-  pushInnerHTML(target, innerHTML, tag);
-  return "string" === typeof tag
-    ? (target.push(escapeTextForBrowser(tag)), null)
-    : tag;
-}
-var leadingNewline = stringToPrecomputedChunk("\n"),
-  VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
-  validatedTagCache = new Map();
-function startChunkForTag(tag) {
-  var tagStartChunk = validatedTagCache.get(tag);
-  if (void 0 === tagStartChunk) {
-    if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag);
-    tagStartChunk = stringToPrecomputedChunk("<" + tag);
-    validatedTagCache.set(tag, tagStartChunk);
-  }
-  return tagStartChunk;
-}
-var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>");
-function pushStartInstance(
-  target$jscomp$0,
-  type,
-  props,
-  resumableState,
-  renderState,
-  preambleState,
-  hoistableState,
-  formatContext,
-  textEmbedded
-) {
-  switch (type) {
-    case "div":
-    case "span":
-    case "svg":
-    case "path":
-      break;
-    case "a":
-      target$jscomp$0.push(startChunkForTag("a"));
-      var children = null,
-        innerHTML = null,
-        propKey;
-      for (propKey in props)
-        if (hasOwnProperty.call(props, propKey)) {
-          var propValue = props[propKey];
-          if (null != propValue)
-            switch (propKey) {
-              case "children":
-                children = propValue;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML = propValue;
-                break;
-              case "href":
-                "" === propValue
-                  ? pushStringAttribute(target$jscomp$0, "href", "")
-                  : pushAttribute(target$jscomp$0, propKey, propValue);
-                break;
-              default:
-                pushAttribute(target$jscomp$0, propKey, propValue);
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML, children);
-      if ("string" === typeof children) {
-        target$jscomp$0.push(escapeTextForBrowser(children));
-        var JSCompiler_inline_result = null;
-      } else JSCompiler_inline_result = children;
-      return JSCompiler_inline_result;
-    case "g":
-    case "p":
-    case "li":
-      break;
-    case "select":
-      target$jscomp$0.push(startChunkForTag("select"));
-      var children$jscomp$0 = null,
-        innerHTML$jscomp$0 = null,
-        propKey$jscomp$0;
-      for (propKey$jscomp$0 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$0)) {
-          var propValue$jscomp$0 = props[propKey$jscomp$0];
-          if (null != propValue$jscomp$0)
-            switch (propKey$jscomp$0) {
-              case "children":
-                children$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$0 = propValue$jscomp$0;
-                break;
-              case "defaultValue":
-              case "value":
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$0,
-                  propValue$jscomp$0
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
-      return children$jscomp$0;
-    case "option":
-      var selectedValue = formatContext.selectedValue;
-      target$jscomp$0.push(startChunkForTag("option"));
-      var children$jscomp$1 = null,
-        value = null,
-        selected = null,
-        innerHTML$jscomp$1 = null,
-        propKey$jscomp$1;
-      for (propKey$jscomp$1 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$1)) {
-          var propValue$jscomp$1 = props[propKey$jscomp$1];
-          if (null != propValue$jscomp$1)
-            switch (propKey$jscomp$1) {
-              case "children":
-                children$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "selected":
-                selected = propValue$jscomp$1;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$1 = propValue$jscomp$1;
-                break;
-              case "value":
-                value = propValue$jscomp$1;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$1,
-                  propValue$jscomp$1
-                );
-            }
-        }
-      if (null != selectedValue) {
-        var stringValue =
-          null !== value
-            ? "" + value
-            : flattenOptionChildren(children$jscomp$1);
-        if (isArrayImpl(selectedValue))
-          for (var i = 0; i < selectedValue.length; i++) {
-            if ("" + selectedValue[i] === stringValue) {
-              target$jscomp$0.push(selectedMarkerAttribute);
-              break;
-            }
-          }
-        else
-          "" + selectedValue === stringValue &&
-            target$jscomp$0.push(selectedMarkerAttribute);
-      } else selected && target$jscomp$0.push(selectedMarkerAttribute);
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
-      return children$jscomp$1;
-    case "textarea":
-      target$jscomp$0.push(startChunkForTag("textarea"));
-      var value$jscomp$0 = null,
-        defaultValue = null,
-        children$jscomp$2 = null,
-        propKey$jscomp$2;
-      for (propKey$jscomp$2 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$2)) {
-          var propValue$jscomp$2 = props[propKey$jscomp$2];
-          if (null != propValue$jscomp$2)
-            switch (propKey$jscomp$2) {
-              case "children":
-                children$jscomp$2 = propValue$jscomp$2;
-                break;
-              case "value":
-                value$jscomp$0 = propValue$jscomp$2;
-                break;
-              case "defaultValue":
-                defaultValue = propValue$jscomp$2;
-                break;
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "`dangerouslySetInnerHTML` does not make sense on <textarea>."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$2,
-                  propValue$jscomp$2
-                );
-            }
-        }
-      null === value$jscomp$0 &&
-        null !== defaultValue &&
-        (value$jscomp$0 = defaultValue);
-      target$jscomp$0.push(endOfStartTag);
-      if (null != children$jscomp$2) {
-        if (null != value$jscomp$0)
-          throw Error(
-            "If you supply `defaultValue` on a <textarea>, do not pass children."
-          );
-        if (isArrayImpl(children$jscomp$2)) {
-          if (1 < children$jscomp$2.length)
-            throw Error("<textarea> can only have at most one child.");
-          value$jscomp$0 = "" + children$jscomp$2[0];
-        }
-        value$jscomp$0 = "" + children$jscomp$2;
-      }
-      "string" === typeof value$jscomp$0 &&
-        "\n" === value$jscomp$0[0] &&
-        target$jscomp$0.push(leadingNewline);
-      null !== value$jscomp$0 &&
-        target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0));
-      return null;
-    case "input":
-      target$jscomp$0.push(startChunkForTag("input"));
-      var name = null,
-        formAction = null,
-        formEncType = null,
-        formMethod = null,
-        formTarget = null,
-        value$jscomp$1 = null,
-        defaultValue$jscomp$0 = null,
-        checked = null,
-        defaultChecked = null,
-        propKey$jscomp$3;
-      for (propKey$jscomp$3 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$3)) {
-          var propValue$jscomp$3 = props[propKey$jscomp$3];
-          if (null != propValue$jscomp$3)
-            switch (propKey$jscomp$3) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              case "name":
-                name = propValue$jscomp$3;
-                break;
-              case "formAction":
-                formAction = propValue$jscomp$3;
-                break;
-              case "formEncType":
-                formEncType = propValue$jscomp$3;
-                break;
-              case "formMethod":
-                formMethod = propValue$jscomp$3;
-                break;
-              case "formTarget":
-                formTarget = propValue$jscomp$3;
-                break;
-              case "defaultChecked":
-                defaultChecked = propValue$jscomp$3;
-                break;
-              case "defaultValue":
-                defaultValue$jscomp$0 = propValue$jscomp$3;
-                break;
-              case "checked":
-                checked = propValue$jscomp$3;
-                break;
-              case "value":
-                value$jscomp$1 = propValue$jscomp$3;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$3,
-                  propValue$jscomp$3
-                );
-            }
-        }
-      var formData = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction,
-        formEncType,
-        formMethod,
-        formTarget,
-        name
-      );
-      null !== checked
-        ? pushBooleanAttribute(target$jscomp$0, "checked", checked)
-        : null !== defaultChecked &&
-          pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked);
-      null !== value$jscomp$1
-        ? pushAttribute(target$jscomp$0, "value", value$jscomp$1)
-        : null !== defaultValue$jscomp$0 &&
-          pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0);
-      target$jscomp$0.push(endOfStartTagSelfClosing);
-      null != formData &&
-        formData.forEach(pushAdditionalFormField, target$jscomp$0);
-      return null;
-    case "button":
-      target$jscomp$0.push(startChunkForTag("button"));
-      var children$jscomp$3 = null,
-        innerHTML$jscomp$2 = null,
-        name$jscomp$0 = null,
-        formAction$jscomp$0 = null,
-        formEncType$jscomp$0 = null,
-        formMethod$jscomp$0 = null,
-        formTarget$jscomp$0 = null,
-        propKey$jscomp$4;
-      for (propKey$jscomp$4 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$4)) {
-          var propValue$jscomp$4 = props[propKey$jscomp$4];
-          if (null != propValue$jscomp$4)
-            switch (propKey$jscomp$4) {
-              case "children":
-                children$jscomp$3 = propValue$jscomp$4;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$2 = propValue$jscomp$4;
-                break;
-              case "name":
-                name$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formAction":
-                formAction$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formEncType":
-                formEncType$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formMethod":
-                formMethod$jscomp$0 = propValue$jscomp$4;
-                break;
-              case "formTarget":
-                formTarget$jscomp$0 = propValue$jscomp$4;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$4,
-                  propValue$jscomp$4
-                );
-            }
-        }
-      var formData$jscomp$0 = pushFormActionAttribute(
-        target$jscomp$0,
-        resumableState,
-        renderState,
-        formAction$jscomp$0,
-        formEncType$jscomp$0,
-        formMethod$jscomp$0,
-        formTarget$jscomp$0,
-        name$jscomp$0
-      );
-      target$jscomp$0.push(endOfStartTag);
-      null != formData$jscomp$0 &&
-        formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);
-      if ("string" === typeof children$jscomp$3) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));
-        var JSCompiler_inline_result$jscomp$0 = null;
-      } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;
-      return JSCompiler_inline_result$jscomp$0;
-    case "form":
-      target$jscomp$0.push(startChunkForTag("form"));
-      var children$jscomp$4 = null,
-        innerHTML$jscomp$3 = null,
-        formAction$jscomp$1 = null,
-        formEncType$jscomp$1 = null,
-        formMethod$jscomp$1 = null,
-        formTarget$jscomp$1 = null,
-        propKey$jscomp$5;
-      for (propKey$jscomp$5 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$5)) {
-          var propValue$jscomp$5 = props[propKey$jscomp$5];
-          if (null != propValue$jscomp$5)
-            switch (propKey$jscomp$5) {
-              case "children":
-                children$jscomp$4 = propValue$jscomp$5;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$3 = propValue$jscomp$5;
-                break;
-              case "action":
-                formAction$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "encType":
-                formEncType$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "method":
-                formMethod$jscomp$1 = propValue$jscomp$5;
-                break;
-              case "target":
-                formTarget$jscomp$1 = propValue$jscomp$5;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$5,
-                  propValue$jscomp$5
-                );
-            }
-        }
-      var formData$jscomp$1 = null,
-        formActionName = null;
-      if ("function" === typeof formAction$jscomp$1) {
-        var customFields = getCustomFormFields(
-          resumableState,
-          formAction$jscomp$1
-        );
-        null !== customFields
-          ? ((formAction$jscomp$1 = customFields.action || ""),
-            (formEncType$jscomp$1 = customFields.encType),
-            (formMethod$jscomp$1 = customFields.method),
-            (formTarget$jscomp$1 = customFields.target),
-            (formData$jscomp$1 = customFields.data),
-            (formActionName = customFields.name))
-          : (target$jscomp$0.push(
-              attributeSeparator,
-              "action",
-              attributeAssign,
-              actionJavaScriptURL,
-              attributeEnd
-            ),
-            (formTarget$jscomp$1 =
-              formMethod$jscomp$1 =
-              formEncType$jscomp$1 =
-              formAction$jscomp$1 =
-                null),
-            injectFormReplayingRuntime(resumableState, renderState));
-      }
-      null != formAction$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "action", formAction$jscomp$1);
-      null != formEncType$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1);
-      null != formMethod$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1);
-      null != formTarget$jscomp$1 &&
-        pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1);
-      target$jscomp$0.push(endOfStartTag);
-      null !== formActionName &&
-        (target$jscomp$0.push(startHiddenInputChunk),
-        pushStringAttribute(target$jscomp$0, "name", formActionName),
-        target$jscomp$0.push(endOfStartTagSelfClosing),
-        null != formData$jscomp$1 &&
-          formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);
-      if ("string" === typeof children$jscomp$4) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));
-        var JSCompiler_inline_result$jscomp$1 = null;
-      } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;
-      return JSCompiler_inline_result$jscomp$1;
-    case "menuitem":
-      target$jscomp$0.push(startChunkForTag("menuitem"));
-      for (var propKey$jscomp$6 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$6)) {
-          var propValue$jscomp$6 = props[propKey$jscomp$6];
-          if (null != propValue$jscomp$6)
-            switch (propKey$jscomp$6) {
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "menuitems cannot have `children` nor `dangerouslySetInnerHTML`."
-                );
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$6,
-                  propValue$jscomp$6
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      return null;
-    case "object":
-      target$jscomp$0.push(startChunkForTag("object"));
-      var children$jscomp$5 = null,
-        innerHTML$jscomp$4 = null,
-        propKey$jscomp$7;
-      for (propKey$jscomp$7 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$7)) {
-          var propValue$jscomp$7 = props[propKey$jscomp$7];
-          if (null != propValue$jscomp$7)
-            switch (propKey$jscomp$7) {
-              case "children":
-                children$jscomp$5 = propValue$jscomp$7;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$4 = propValue$jscomp$7;
-                break;
-              case "data":
-                var sanitizedValue = sanitizeURL("" + propValue$jscomp$7);
-                if ("" === sanitizedValue) break;
-                target$jscomp$0.push(
-                  attributeSeparator,
-                  "data",
-                  attributeAssign,
-                  escapeTextForBrowser(sanitizedValue),
-                  attributeEnd
-                );
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$7,
-                  propValue$jscomp$7
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);
-      if ("string" === typeof children$jscomp$5) {
-        target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));
-        var JSCompiler_inline_result$jscomp$2 = null;
-      } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
-      return JSCompiler_inline_result$jscomp$2;
-    case "title":
-      var noscriptTagInScope = formatContext.tagScope & 1,
-        isFallback = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
-          target$jscomp$0,
-          props
-        );
-      else
-        isFallback
-          ? (JSCompiler_inline_result$jscomp$3 = null)
-          : (pushTitleImpl(renderState.hoistableChunks, props),
-            (JSCompiler_inline_result$jscomp$3 = void 0));
-      return JSCompiler_inline_result$jscomp$3;
-    case "link":
-      var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
-        isFallback$jscomp$0 = formatContext.tagScope & 4,
-        rel = props.rel,
-        href = props.href,
-        precedence = props.precedence;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$0 ||
-        null != props.itemProp ||
-        "string" !== typeof rel ||
-        "string" !== typeof href ||
-        "" === href
-      ) {
-        pushLinkImpl(target$jscomp$0, props);
-        var JSCompiler_inline_result$jscomp$4 = null;
-      } else if ("stylesheet" === props.rel)
-        if (
-          "string" !== typeof precedence ||
-          null != props.disabled ||
-          props.onLoad ||
-          props.onError
-        )
-          JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-            target$jscomp$0,
-            props
-          );
-        else {
-          var styleQueue = renderState.styles.get(precedence),
-            resourceState = resumableState.styleResources.hasOwnProperty(href)
-              ? resumableState.styleResources[href]
-              : void 0;
-          if (null !== resourceState) {
-            resumableState.styleResources[href] = null;
-            styleQueue ||
-              ((styleQueue = {
-                precedence: escapeTextForBrowser(precedence),
-                rules: [],
-                hrefs: [],
-                sheets: new Map()
-              }),
-              renderState.styles.set(precedence, styleQueue));
-            var resource = {
-              state: 0,
-              props: assign({}, props, {
-                "data-precedence": props.precedence,
-                precedence: null
-              })
-            };
-            if (resourceState) {
-              2 === resourceState.length &&
-                adoptPreloadCredentials(resource.props, resourceState);
-              var preloadResource = renderState.preloads.stylesheets.get(href);
-              preloadResource && 0 < preloadResource.length
-                ? (preloadResource.length = 0)
-                : (resource.state = 1);
-            }
-            styleQueue.sheets.set(href, resource);
-            hoistableState && hoistableState.stylesheets.add(resource);
-          } else if (styleQueue) {
-            var resource$9 = styleQueue.sheets.get(href);
-            resource$9 &&
-              hoistableState &&
-              hoistableState.stylesheets.add(resource$9);
-          }
-          textEmbedded && target$jscomp$0.push(textSeparator);
-          JSCompiler_inline_result$jscomp$4 = null;
-        }
-      else
-        props.onLoad || props.onError
-          ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl(
-              target$jscomp$0,
-              props
-            ))
-          : (textEmbedded && target$jscomp$0.push(textSeparator),
-            (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
-              ? null
-              : pushLinkImpl(renderState.hoistableChunks, props)));
-      return JSCompiler_inline_result$jscomp$4;
-    case "script":
-      var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
-        asyncProp = props.async;
-      if (
-        "string" !== typeof props.src ||
-        !props.src ||
-        !asyncProp ||
-        "function" === typeof asyncProp ||
-        "symbol" === typeof asyncProp ||
-        props.onLoad ||
-        props.onError ||
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$1 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
-          target$jscomp$0,
-          props
-        );
-      else {
-        var key = props.src;
-        if ("module" === props.type) {
-          var resources = resumableState.moduleScriptResources;
-          var preloads = renderState.preloads.moduleScripts;
-        } else
-          (resources = resumableState.scriptResources),
-            (preloads = renderState.preloads.scripts);
-        var resourceState$jscomp$0 = resources.hasOwnProperty(key)
-          ? resources[key]
-          : void 0;
-        if (null !== resourceState$jscomp$0) {
-          resources[key] = null;
-          var scriptProps = props;
-          if (resourceState$jscomp$0) {
-            2 === resourceState$jscomp$0.length &&
-              ((scriptProps = assign({}, props)),
-              adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));
-            var preloadResource$jscomp$0 = preloads.get(key);
-            preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);
-          }
-          var resource$jscomp$0 = [];
-          renderState.scripts.add(resource$jscomp$0);
-          pushScriptImpl(resource$jscomp$0, scriptProps);
-        }
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$5 = null;
-      }
-      return JSCompiler_inline_result$jscomp$5;
-    case "style":
-      var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
-        precedence$jscomp$0 = props.precedence,
-        href$jscomp$0 = props.href,
-        nonce = props.nonce;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$2 ||
-        null != props.itemProp ||
-        "string" !== typeof precedence$jscomp$0 ||
-        "string" !== typeof href$jscomp$0 ||
-        "" === href$jscomp$0
-      ) {
-        target$jscomp$0.push(startChunkForTag("style"));
-        var children$jscomp$6 = null,
-          innerHTML$jscomp$5 = null,
-          propKey$jscomp$8;
-        for (propKey$jscomp$8 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$8)) {
-            var propValue$jscomp$8 = props[propKey$jscomp$8];
-            if (null != propValue$jscomp$8)
-              switch (propKey$jscomp$8) {
-                case "children":
-                  children$jscomp$6 = propValue$jscomp$8;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$5 = propValue$jscomp$8;
-                  break;
-                default:
-                  pushAttribute(
-                    target$jscomp$0,
-                    propKey$jscomp$8,
-                    propValue$jscomp$8
-                  );
-              }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        var child = Array.isArray(children$jscomp$6)
-          ? 2 > children$jscomp$6.length
-            ? children$jscomp$6[0]
-            : null
-          : children$jscomp$6;
-        "function" !== typeof child &&
-          "symbol" !== typeof child &&
-          null !== child &&
-          void 0 !== child &&
-          target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer));
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);
-        target$jscomp$0.push(endChunkForTag("style"));
-        var JSCompiler_inline_result$jscomp$6 = null;
-      } else {
-        var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);
-        if (
-          null !==
-          (resumableState.styleResources.hasOwnProperty(href$jscomp$0)
-            ? resumableState.styleResources[href$jscomp$0]
-            : void 0)
-        ) {
-          resumableState.styleResources[href$jscomp$0] = null;
-          styleQueue$jscomp$0 ||
-            ((styleQueue$jscomp$0 = {
-              precedence: escapeTextForBrowser(precedence$jscomp$0),
-              rules: [],
-              hrefs: [],
-              sheets: new Map()
-            }),
-            renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
-          var nonceStyle = renderState.nonce.style;
-          if (!nonceStyle || nonceStyle === nonce) {
-            styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
-            var target = styleQueue$jscomp$0.rules,
-              children$jscomp$7 = null,
-              innerHTML$jscomp$6 = null,
-              propKey$jscomp$9;
-            for (propKey$jscomp$9 in props)
-              if (hasOwnProperty.call(props, propKey$jscomp$9)) {
-                var propValue$jscomp$9 = props[propKey$jscomp$9];
-                if (null != propValue$jscomp$9)
-                  switch (propKey$jscomp$9) {
-                    case "children":
-                      children$jscomp$7 = propValue$jscomp$9;
-                      break;
-                    case "dangerouslySetInnerHTML":
-                      innerHTML$jscomp$6 = propValue$jscomp$9;
-                  }
-              }
-            var child$jscomp$0 = Array.isArray(children$jscomp$7)
-              ? 2 > children$jscomp$7.length
-                ? children$jscomp$7[0]
-                : null
-              : children$jscomp$7;
-            "function" !== typeof child$jscomp$0 &&
-              "symbol" !== typeof child$jscomp$0 &&
-              null !== child$jscomp$0 &&
-              void 0 !== child$jscomp$0 &&
-              target.push(
-                ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
-              );
-            pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
-          }
-        }
-        styleQueue$jscomp$0 &&
-          hoistableState &&
-          hoistableState.styles.add(styleQueue$jscomp$0);
-        textEmbedded && target$jscomp$0.push(textSeparator);
-        JSCompiler_inline_result$jscomp$6 = void 0;
-      }
-      return JSCompiler_inline_result$jscomp$6;
-    case "meta":
-      var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
-        isFallback$jscomp$1 = formatContext.tagScope & 4;
-      if (
-        4 === formatContext.insertionMode ||
-        noscriptTagInScope$jscomp$3 ||
-        null != props.itemProp
-      )
-        var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
-          target$jscomp$0,
-          props,
-          "meta"
-        );
-      else
-        textEmbedded && target$jscomp$0.push(textSeparator),
-          (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
-            ? null
-            : "string" === typeof props.charSet
-              ? pushSelfClosing(renderState.charsetChunks, props, "meta")
-              : "viewport" === props.name
-                ? pushSelfClosing(renderState.viewportChunks, props, "meta")
-                : pushSelfClosing(renderState.hoistableChunks, props, "meta"));
-      return JSCompiler_inline_result$jscomp$7;
-    case "listing":
-    case "pre":
-      target$jscomp$0.push(startChunkForTag(type));
-      var children$jscomp$8 = null,
-        innerHTML$jscomp$7 = null,
-        propKey$jscomp$10;
-      for (propKey$jscomp$10 in props)
-        if (hasOwnProperty.call(props, propKey$jscomp$10)) {
-          var propValue$jscomp$10 = props[propKey$jscomp$10];
-          if (null != propValue$jscomp$10)
-            switch (propKey$jscomp$10) {
-              case "children":
-                children$jscomp$8 = propValue$jscomp$10;
-                break;
-              case "dangerouslySetInnerHTML":
-                innerHTML$jscomp$7 = propValue$jscomp$10;
-                break;
-              default:
-                pushAttribute(
-                  target$jscomp$0,
-                  propKey$jscomp$10,
-                  propValue$jscomp$10
-                );
-            }
-        }
-      target$jscomp$0.push(endOfStartTag);
-      if (null != innerHTML$jscomp$7) {
-        if (null != children$jscomp$8)
-          throw Error(
-            "Can only set one of `children` or `props.dangerouslySetInnerHTML`."
-          );
-        if (
-          "object" !== typeof innerHTML$jscomp$7 ||
-          !("__html" in innerHTML$jscomp$7)
-        )
-          throw Error(
-            "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information."
-          );
-        var html = innerHTML$jscomp$7.__html;
-        null !== html &&
-          void 0 !== html &&
-          ("string" === typeof html && 0 < html.length && "\n" === html[0]
-            ? target$jscomp$0.push(leadingNewline, html)
-            : target$jscomp$0.push("" + html));
-      }
-      "string" === typeof children$jscomp$8 &&
-        "\n" === children$jscomp$8[0] &&
-        target$jscomp$0.push(leadingNewline);
-      return children$jscomp$8;
-    case "img":
-      var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
-        src = props.src,
-        srcSet = props.srcSet;
-      if (
-        !(
-          "lazy" === props.loading ||
-          (!src && !srcSet) ||
-          ("string" !== typeof src && null != src) ||
-          ("string" !== typeof srcSet && null != srcSet) ||
-          "low" === props.fetchPriority ||
-          pictureOrNoScriptTagInScope
-        ) &&
-        ("string" !== typeof src ||
-          ":" !== src[4] ||
-          ("d" !== src[0] && "D" !== src[0]) ||
-          ("a" !== src[1] && "A" !== src[1]) ||
-          ("t" !== src[2] && "T" !== src[2]) ||
-          ("a" !== src[3] && "A" !== src[3])) &&
-        ("string" !== typeof srcSet ||
-          ":" !== srcSet[4] ||
-          ("d" !== srcSet[0] && "D" !== srcSet[0]) ||
-          ("a" !== srcSet[1] && "A" !== srcSet[1]) ||
-          ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
-          ("a" !== srcSet[3] && "A" !== srcSet[3]))
-      ) {
-        null !== hoistableState &&
-          formatContext.tagScope & 64 &&
-          (hoistableState.suspenseyImages = !0);
-        var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
-          key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
-          promotablePreloads = renderState.preloads.images,
-          resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);
-        if (resource$jscomp$1) {
-          if (
-            "high" === props.fetchPriority ||
-            10 > renderState.highImagePreloads.size
-          )
-            promotablePreloads.delete(key$jscomp$0),
-              renderState.highImagePreloads.add(resource$jscomp$1);
-        } else if (
-          !resumableState.imageResources.hasOwnProperty(key$jscomp$0)
-        ) {
-          resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;
-          var input = props.crossOrigin;
-          var JSCompiler_inline_result$jscomp$8 =
-            "string" === typeof input
-              ? "use-credentials" === input
-                ? input
-                : ""
-              : void 0;
-          var headers = renderState.headers,
-            header;
-          headers &&
-          0 < headers.remainingCapacity &&
-          "string" !== typeof props.srcSet &&
-          ("high" === props.fetchPriority ||
-            500 > headers.highImagePreloads.length) &&
-          ((header = getPreloadAsHeader(src, "image", {
-            imageSrcSet: props.srcSet,
-            imageSizes: props.sizes,
-            crossOrigin: JSCompiler_inline_result$jscomp$8,
-            integrity: props.integrity,
-            nonce: props.nonce,
-            type: props.type,
-            fetchPriority: props.fetchPriority,
-            referrerPolicy: props.refererPolicy
-          })),
-          0 <= (headers.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS),
-              headers.highImagePreloads && (headers.highImagePreloads += ", "),
-              (headers.highImagePreloads += header))
-            : ((resource$jscomp$1 = []),
-              pushLinkImpl(resource$jscomp$1, {
-                rel: "preload",
-                as: "image",
-                href: srcSet ? void 0 : src,
-                imageSrcSet: srcSet,
-                imageSizes: sizes,
-                crossOrigin: JSCompiler_inline_result$jscomp$8,
-                integrity: props.integrity,
-                type: props.type,
-                fetchPriority: props.fetchPriority,
-                referrerPolicy: props.referrerPolicy
-              }),
-              "high" === props.fetchPriority ||
-              10 > renderState.highImagePreloads.size
-                ? renderState.highImagePreloads.add(resource$jscomp$1)
-                : (renderState.bulkPreloads.add(resource$jscomp$1),
-                  promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));
-        }
-      }
-      return pushSelfClosing(target$jscomp$0, props, "img");
-    case "base":
-    case "area":
-    case "br":
-    case "col":
-    case "embed":
-    case "hr":
-    case "keygen":
-    case "param":
-    case "source":
-    case "track":
-    case "wbr":
-      return pushSelfClosing(target$jscomp$0, props, type);
-    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":
-      break;
-    case "head":
-      if (2 > formatContext.insertionMode) {
-        var preamble = preambleState || renderState.preamble;
-        if (preamble.headChunks)
-          throw Error("The `<head>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(headPreambleContributionChunk);
-        preamble.headChunks = [];
-        var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
-          preamble.headChunks,
-          props,
-          "head"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "head"
-        );
-      return JSCompiler_inline_result$jscomp$9;
-    case "body":
-      if (2 > formatContext.insertionMode) {
-        var preamble$jscomp$0 = preambleState || renderState.preamble;
-        if (preamble$jscomp$0.bodyChunks)
-          throw Error("The `<body>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(bodyPreambleContributionChunk);
-        preamble$jscomp$0.bodyChunks = [];
-        var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
-          preamble$jscomp$0.bodyChunks,
-          props,
-          "body"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "body"
-        );
-      return JSCompiler_inline_result$jscomp$10;
-    case "html":
-      if (0 === formatContext.insertionMode) {
-        var preamble$jscomp$1 = preambleState || renderState.preamble;
-        if (preamble$jscomp$1.htmlChunks)
-          throw Error("The `<html>` tag may only be rendered once.");
-        null !== preambleState &&
-          target$jscomp$0.push(htmlPreambleContributionChunk);
-        preamble$jscomp$1.htmlChunks = [doctypeChunk];
-        var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
-          preamble$jscomp$1.htmlChunks,
-          props,
-          "html"
-        );
-      } else
-        JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(
-          target$jscomp$0,
-          props,
-          "html"
-        );
-      return JSCompiler_inline_result$jscomp$11;
-    default:
-      if (-1 !== type.indexOf("-")) {
-        target$jscomp$0.push(startChunkForTag(type));
-        var children$jscomp$9 = null,
-          innerHTML$jscomp$8 = null,
-          propKey$jscomp$11;
-        for (propKey$jscomp$11 in props)
-          if (hasOwnProperty.call(props, propKey$jscomp$11)) {
-            var propValue$jscomp$11 = props[propKey$jscomp$11];
-            if (null != propValue$jscomp$11) {
-              var attributeName = propKey$jscomp$11;
-              switch (propKey$jscomp$11) {
-                case "children":
-                  children$jscomp$9 = propValue$jscomp$11;
-                  break;
-                case "dangerouslySetInnerHTML":
-                  innerHTML$jscomp$8 = propValue$jscomp$11;
-                  break;
-                case "style":
-                  pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);
-                  break;
-                case "suppressContentEditableWarning":
-                case "suppressHydrationWarning":
-                case "ref":
-                  break;
-                case "className":
-                  attributeName = "class";
-                default:
-                  if (
-                    isAttributeNameSafe(propKey$jscomp$11) &&
-                    "function" !== typeof propValue$jscomp$11 &&
-                    "symbol" !== typeof propValue$jscomp$11 &&
-                    !1 !== propValue$jscomp$11
-                  ) {
-                    if (!0 === propValue$jscomp$11) propValue$jscomp$11 = "";
-                    else if ("object" === typeof propValue$jscomp$11) continue;
-                    target$jscomp$0.push(
-                      attributeSeparator,
-                      attributeName,
-                      attributeAssign,
-                      escapeTextForBrowser(propValue$jscomp$11),
-                      attributeEnd
-                    );
-                  }
-              }
-            }
-          }
-        target$jscomp$0.push(endOfStartTag);
-        pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);
-        return children$jscomp$9;
-      }
-  }
-  return pushStartGenericElement(target$jscomp$0, props, type);
-}
-var endTagCache = new Map();
-function endChunkForTag(tag) {
-  var chunk = endTagCache.get(tag);
-  void 0 === chunk &&
-    ((chunk = stringToPrecomputedChunk("</" + tag + ">")),
-    endTagCache.set(tag, chunk));
-  return chunk;
-}
-function hoistPreambleState(renderState, preambleState) {
-  renderState = renderState.preamble;
-  null === renderState.htmlChunks &&
-    preambleState.htmlChunks &&
-    (renderState.htmlChunks = preambleState.htmlChunks);
-  null === renderState.headChunks &&
-    preambleState.headChunks &&
-    (renderState.headChunks = preambleState.headChunks);
-  null === renderState.bodyChunks &&
-    preambleState.bodyChunks &&
-    (renderState.bodyChunks = preambleState.bodyChunks);
-}
-function writeBootstrap(destination, renderState) {
-  renderState = renderState.bootstrapChunks;
-  for (var i = 0; i < renderState.length - 1; i++)
-    writeChunk(destination, renderState[i]);
-  return i < renderState.length
-    ? ((i = renderState[i]),
-      (renderState.length = 0),
-      writeChunkAndReturn(destination, i))
-    : !0;
-}
-var shellTimeRuntimeScript = stringToPrecomputedChunk(
-    "requestAnimationFrame(function(){$RT=performance.now()});"
-  ),
-  placeholder1 = stringToPrecomputedChunk('<template id="'),
-  placeholder2 = stringToPrecomputedChunk('"></template>'),
-  startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
-  endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
-  startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"),
-  startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
-    '\x3c!--$?--\x3e<template id="'
-  ),
-  startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'),
-  startClientRenderedSuspenseBoundary =
-    stringToPrecomputedChunk("\x3c!--$!--\x3e"),
-  endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"),
-  clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"),
-  clientRenderedSuspenseBoundaryErrorAttrInterstitial =
-    stringToPrecomputedChunk('"'),
-  clientRenderedSuspenseBoundaryError1A =
-    stringToPrecomputedChunk(' data-dgst="');
-stringToPrecomputedChunk(' data-msg="');
-stringToPrecomputedChunk(' data-stck="');
-stringToPrecomputedChunk(' data-cstck="');
-var clientRenderedSuspenseBoundaryError2 =
-  stringToPrecomputedChunk("></template>");
-function writeStartPendingSuspenseBoundary(destination, renderState, id) {
-  writeChunk(destination, startPendingSuspenseBoundary1);
-  if (null === id)
-    throw Error(
-      "An ID must have been assigned before we can complete the boundary."
-    );
-  writeChunk(destination, renderState.boundaryPrefix);
-  writeChunk(destination, id.toString(16));
-  return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
-}
-var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
-  startSegmentHTML2 = stringToPrecomputedChunk('">'),
-  endSegmentHTML = stringToPrecomputedChunk("</div>"),
-  startSegmentSVG = stringToPrecomputedChunk(
-    '<svg aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentSVG2 = stringToPrecomputedChunk('">'),
-  endSegmentSVG = stringToPrecomputedChunk("</svg>"),
-  startSegmentMathML = stringToPrecomputedChunk(
-    '<math aria-hidden="true" style="display:none" id="'
-  ),
-  startSegmentMathML2 = stringToPrecomputedChunk('">'),
-  endSegmentMathML = stringToPrecomputedChunk("</math>"),
-  startSegmentTable = stringToPrecomputedChunk('<table hidden id="'),
-  startSegmentTable2 = stringToPrecomputedChunk('">'),
-  endSegmentTable = stringToPrecomputedChunk("</table>"),
-  startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'),
-  startSegmentTableBody2 = stringToPrecomputedChunk('">'),
-  endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"),
-  startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'),
-  startSegmentTableRow2 = stringToPrecomputedChunk('">'),
-  endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"),
-  startSegmentColGroup = stringToPrecomputedChunk(
-    '<table hidden><colgroup id="'
-  ),
-  startSegmentColGroup2 = stringToPrecomputedChunk('">'),
-  endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>");
-function writeStartSegment(destination, renderState, formatContext, id) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return (
-        writeChunk(destination, startSegmentHTML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentHTML2)
-      );
-    case 4:
-      return (
-        writeChunk(destination, startSegmentSVG),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentSVG2)
-      );
-    case 5:
-      return (
-        writeChunk(destination, startSegmentMathML),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentMathML2)
-      );
-    case 6:
-      return (
-        writeChunk(destination, startSegmentTable),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentTable2)
-      );
-    case 7:
-      return (
-        writeChunk(destination, startSegmentTableBody),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentTableBody2)
-      );
-    case 8:
-      return (
-        writeChunk(destination, startSegmentTableRow),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentTableRow2)
-      );
-    case 9:
-      return (
-        writeChunk(destination, startSegmentColGroup),
-        writeChunk(destination, renderState.segmentPrefix),
-        writeChunk(destination, id.toString(16)),
-        writeChunkAndReturn(destination, startSegmentColGroup2)
-      );
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-function writeEndSegment(destination, formatContext) {
-  switch (formatContext.insertionMode) {
-    case 0:
-    case 1:
-    case 3:
-    case 2:
-      return writeChunkAndReturn(destination, endSegmentHTML);
-    case 4:
-      return writeChunkAndReturn(destination, endSegmentSVG);
-    case 5:
-      return writeChunkAndReturn(destination, endSegmentMathML);
-    case 6:
-      return writeChunkAndReturn(destination, endSegmentTable);
-    case 7:
-      return writeChunkAndReturn(destination, endSegmentTableBody);
-    case 8:
-      return writeChunkAndReturn(destination, endSegmentTableRow);
-    case 9:
-      return writeChunkAndReturn(destination, endSegmentColGroup);
-    default:
-      throw Error("Unknown insertion mode. This is a bug in React.");
-  }
-}
-var completeSegmentScript1Full = stringToPrecomputedChunk(
-    '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'
-  ),
-  completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'),
-  completeSegmentScript2 = stringToPrecomputedChunk('","'),
-  completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
-stringToPrecomputedChunk('<template data-rsi="" data-sid="');
-stringToPrecomputedChunk('" data-pid="');
-var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
-    '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
-  ),
-  completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
-  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
-    '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
-  ),
-  completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'),
-  completeBoundaryScript2 = stringToPrecomputedChunk('","'),
-  completeBoundaryScript3a = stringToPrecomputedChunk('",'),
-  completeBoundaryScript3b = stringToPrecomputedChunk('"'),
-  completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rci="" data-bid="');
-stringToPrecomputedChunk('<template data-rri="" data-bid="');
-stringToPrecomputedChunk('" data-sid="');
-stringToPrecomputedChunk('" data-sty="');
-var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
-  ),
-  clientRenderScript1Full = stringToPrecomputedChunk(
-    '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
-  ),
-  clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
-  clientRenderScript1A = stringToPrecomputedChunk('"'),
-  clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","),
-  clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>");
-stringToPrecomputedChunk('<template data-rxi="" data-bid="');
-stringToPrecomputedChunk('" data-dgst="');
-stringToPrecomputedChunk('" data-msg="');
-stringToPrecomputedChunk('" data-stck="');
-stringToPrecomputedChunk('" data-cstck="');
-var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g;
-function escapeJSStringsForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInInstructionScripts,
-    function (match) {
-      switch (match) {
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var regexForJSStringsInScripts = /[&><\u2028\u2029]/g;
-function escapeJSObjectForInstructionScripts(input) {
-  return JSON.stringify(input).replace(
-    regexForJSStringsInScripts,
-    function (match) {
-      switch (match) {
-        case "&":
-          return "\\u0026";
-        case ">":
-          return "\\u003e";
-        case "<":
-          return "\\u003c";
-        case "\u2028":
-          return "\\u2028";
-        case "\u2029":
-          return "\\u2029";
-        default:
-          throw Error(
-            "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-          );
-      }
-    }
-  );
-}
-var lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
-    ' media="not all" data-precedence="'
-  ),
-  lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"),
-  currentlyRenderingBoundaryHasStylesToHoist = !1,
-  destinationHasCapacity = !0;
-function flushStyleTagsLateForBoundary(styleQueue) {
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs,
-    i = 0;
-  if (hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, lateStyleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
-      writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator);
-    writeChunk(this, hrefs[i]);
-    writeChunk(this, lateStyleTagResourceOpen3);
-    for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]);
-    destinationHasCapacity = writeChunkAndReturn(
-      this,
-      lateStyleTagTemplateClose
-    );
-    currentlyRenderingBoundaryHasStylesToHoist = !0;
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function hasStylesToHoist(stylesheet) {
-  return 2 !== stylesheet.state
-    ? (currentlyRenderingBoundaryHasStylesToHoist = !0)
-    : !1;
-}
-function writeHoistablesForBoundary(destination, hoistableState, renderState) {
-  currentlyRenderingBoundaryHasStylesToHoist = !1;
-  destinationHasCapacity = !0;
-  currentlyFlushingRenderState = renderState;
-  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
-  currentlyFlushingRenderState = null;
-  hoistableState.stylesheets.forEach(hasStylesToHoist);
-  currentlyRenderingBoundaryHasStylesToHoist &&
-    (renderState.stylesToHoist = !0);
-  return destinationHasCapacity;
-}
-function flushResource(resource) {
-  for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]);
-  resource.length = 0;
-}
-var stylesheetFlushingQueue = [];
-function flushStyleInPreamble(stylesheet) {
-  pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);
-  for (var i = 0; i < stylesheetFlushingQueue.length; i++)
-    writeChunk(this, stylesheetFlushingQueue[i]);
-  stylesheetFlushingQueue.length = 0;
-  stylesheet.state = 2;
-}
-var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
-  styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
-  spaceSeparator = stringToPrecomputedChunk(" "),
-  styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
-  styleTagResourceClose = stringToPrecomputedChunk("</style>");
-function flushStylesInPreamble(styleQueue) {
-  var hasStylesheets = 0 < styleQueue.sheets.size;
-  styleQueue.sheets.forEach(flushStyleInPreamble, this);
-  styleQueue.sheets.clear();
-  var rules = styleQueue.rules,
-    hrefs = styleQueue.hrefs;
-  if (!hasStylesheets || hrefs.length) {
-    writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
-    writeChunk(this, styleTagResourceOpen1);
-    writeChunk(this, styleQueue.precedence);
-    styleQueue = 0;
-    if (hrefs.length) {
-      for (
-        writeChunk(this, styleTagResourceOpen2);
-        styleQueue < hrefs.length - 1;
-        styleQueue++
-      )
-        writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator);
-      writeChunk(this, hrefs[styleQueue]);
-    }
-    writeChunk(this, styleTagResourceOpen3);
-    for (styleQueue = 0; styleQueue < rules.length; styleQueue++)
-      writeChunk(this, rules[styleQueue]);
-    writeChunk(this, styleTagResourceClose);
-    rules.length = 0;
-    hrefs.length = 0;
-  }
-}
-function preloadLateStyle(stylesheet) {
-  if (0 === stylesheet.state) {
-    stylesheet.state = 1;
-    var props = stylesheet.props;
-    pushLinkImpl(stylesheetFlushingQueue, {
-      rel: "preload",
-      as: "style",
-      href: stylesheet.props.href,
-      crossOrigin: props.crossOrigin,
-      fetchPriority: props.fetchPriority,
-      integrity: props.integrity,
-      media: props.media,
-      hrefLang: props.hrefLang,
-      referrerPolicy: props.referrerPolicy
-    });
-    for (
-      stylesheet = 0;
-      stylesheet < stylesheetFlushingQueue.length;
-      stylesheet++
-    )
-      writeChunk(this, stylesheetFlushingQueue[stylesheet]);
-    stylesheetFlushingQueue.length = 0;
-  }
-}
-function preloadLateStyles(styleQueue) {
-  styleQueue.sheets.forEach(preloadLateStyle, this);
-  styleQueue.sheets.clear();
-}
-stringToPrecomputedChunk('<link rel="expect" href="#');
-stringToPrecomputedChunk('" blocking="render"/>');
-var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="');
-function pushCompletedShellIdAttribute(target, resumableState) {
-  0 === (resumableState.instructions & 32) &&
-    ((resumableState.instructions |= 32),
-    target.push(
-      completedShellIdAttributeStart,
-      escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
-      attributeEnd
-    ));
-}
-var arrayFirstOpenBracket = stringToPrecomputedChunk("["),
-  arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
-  arrayInterstitial = stringToPrecomputedChunk(","),
-  arrayCloseBracket = stringToPrecomputedChunk("]");
-function writeStyleResourceDependenciesInJS(destination, hoistableState) {
-  writeChunk(destination, arrayFirstOpenBracket);
-  var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
-  hoistableState.stylesheets.forEach(function (resource) {
-    if (2 !== resource.state)
-      if (3 === resource.state)
-        writeChunk(destination, nextArrayOpenBrackChunk),
-          writeChunk(
-            destination,
-            escapeJSObjectForInstructionScripts("" + resource.props.href)
-          ),
-          writeChunk(destination, arrayCloseBracket),
-          (nextArrayOpenBrackChunk = arraySubsequentOpenBracket);
-      else {
-        writeChunk(destination, nextArrayOpenBrackChunk);
-        var precedence = resource.props["data-precedence"],
-          props = resource.props,
-          coercedHref = sanitizeURL("" + resource.props.href);
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(coercedHref)
-        );
-        precedence = "" + precedence;
-        writeChunk(destination, arrayInterstitial);
-        writeChunk(
-          destination,
-          escapeJSObjectForInstructionScripts(precedence)
-        );
-        for (var propKey in props)
-          if (
-            hasOwnProperty.call(props, propKey) &&
-            ((precedence = props[propKey]), null != precedence)
-          )
-            switch (propKey) {
-              case "href":
-              case "rel":
-              case "precedence":
-              case "data-precedence":
-                break;
-              case "children":
-              case "dangerouslySetInnerHTML":
-                throw Error(
-                  "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`."
-                );
-              default:
-                writeStyleResourceAttributeInJS(
-                  destination,
-                  propKey,
-                  precedence
-                );
-            }
-        writeChunk(destination, arrayCloseBracket);
-        nextArrayOpenBrackChunk = arraySubsequentOpenBracket;
-        resource.state = 3;
-      }
-  });
-  writeChunk(destination, arrayCloseBracket);
-}
-function writeStyleResourceAttributeInJS(destination, name, value) {
-  var attributeName = name.toLowerCase();
-  switch (typeof value) {
-    case "function":
-    case "symbol":
-      return;
-  }
-  switch (name) {
-    case "innerHTML":
-    case "dangerouslySetInnerHTML":
-    case "suppressContentEditableWarning":
-    case "suppressHydrationWarning":
-    case "style":
-    case "ref":
-      return;
-    case "className":
-      attributeName = "class";
-      name = "" + value;
-      break;
-    case "hidden":
-      if (!1 === value) return;
-      name = "";
-      break;
-    case "src":
-    case "href":
-      value = sanitizeURL(value);
-      name = "" + value;
-      break;
-    default:
-      if (
-        (2 < name.length &&
-          ("o" === name[0] || "O" === name[0]) &&
-          ("n" === name[1] || "N" === name[1])) ||
-        !isAttributeNameSafe(name)
-      )
-        return;
-      name = "" + value;
-  }
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(destination, escapeJSObjectForInstructionScripts(attributeName));
-  writeChunk(destination, arrayInterstitial);
-  writeChunk(destination, escapeJSObjectForInstructionScripts(name));
-}
-function createHoistableState() {
-  return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
-}
-function prefetchDNS(href) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      if (!resumableState.dnsResources.hasOwnProperty(href)) {
-        resumableState.dnsResources[href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        )
-          JSCompiler_temp =
-            ((header =
-              "<" +
-              ("" + href).replace(
-                regexForHrefInLinkHeaderURLContext,
-                escapeHrefForLinkHeaderURLContextReplacer
-              ) +
-              ">; rel=dns-prefetch"),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        JSCompiler_temp
-          ? ((renderState.resets.dns[href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((header = []),
-            pushLinkImpl(header, { href: href, rel: "dns-prefetch" }),
-            renderState.preconnects.add(header));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.D(href);
-}
-function preconnect(href, crossOrigin) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if ("string" === typeof href && href) {
-      var bucket =
-        "use-credentials" === crossOrigin
-          ? "credentials"
-          : "string" === typeof crossOrigin
-            ? "anonymous"
-            : "default";
-      if (!resumableState.connectResources[bucket].hasOwnProperty(href)) {
-        resumableState.connectResources[bucket][href] = null;
-        resumableState = renderState.headers;
-        var header, JSCompiler_temp;
-        if (
-          (JSCompiler_temp =
-            resumableState && 0 < resumableState.remainingCapacity)
-        ) {
-          JSCompiler_temp =
-            "<" +
-            ("" + href).replace(
-              regexForHrefInLinkHeaderURLContext,
-              escapeHrefForLinkHeaderURLContextReplacer
-            ) +
-            ">; rel=preconnect";
-          if ("string" === typeof crossOrigin) {
-            var escapedCrossOrigin = ("" + crossOrigin).replace(
-              regexForLinkHeaderQuotedParamValueContext,
-              escapeStringForLinkHeaderQuotedParamValueContextReplacer
-            );
-            JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"';
-          }
-          JSCompiler_temp =
-            ((header = JSCompiler_temp),
-            0 <= (resumableState.remainingCapacity -= header.length + 2));
-        }
-        JSCompiler_temp
-          ? ((renderState.resets.connect[bucket][href] = null),
-            resumableState.preconnects && (resumableState.preconnects += ", "),
-            (resumableState.preconnects += header))
-          : ((bucket = []),
-            pushLinkImpl(bucket, {
-              rel: "preconnect",
-              href: href,
-              crossOrigin: crossOrigin
-            }),
-            renderState.preconnects.add(bucket));
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.C(href, crossOrigin);
-}
-function preload(href, as, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (as && href) {
-      switch (as) {
-        case "image":
-          if (options) {
-            var imageSrcSet = options.imageSrcSet;
-            var imageSizes = options.imageSizes;
-            var fetchPriority = options.fetchPriority;
-          }
-          var key = imageSrcSet
-            ? imageSrcSet + "\n" + (imageSizes || "")
-            : href;
-          if (resumableState.imageResources.hasOwnProperty(key)) return;
-          resumableState.imageResources[key] = PRELOAD_NO_CREDS;
-          resumableState = renderState.headers;
-          var header;
-          resumableState &&
-          0 < resumableState.remainingCapacity &&
-          "string" !== typeof imageSrcSet &&
-          "high" === fetchPriority &&
-          ((header = getPreloadAsHeader(href, as, options)),
-          0 <= (resumableState.remainingCapacity -= header.length + 2))
-            ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS),
-              resumableState.highImagePreloads &&
-                (resumableState.highImagePreloads += ", "),
-              (resumableState.highImagePreloads += header))
-            : ((resumableState = []),
-              pushLinkImpl(
-                resumableState,
-                assign(
-                  { rel: "preload", href: imageSrcSet ? void 0 : href, as: as },
-                  options
-                )
-              ),
-              "high" === fetchPriority
-                ? renderState.highImagePreloads.add(resumableState)
-                : (renderState.bulkPreloads.add(resumableState),
-                  renderState.preloads.images.set(key, resumableState)));
-          break;
-        case "style":
-          if (resumableState.styleResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.styleResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.stylesheets.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          break;
-        case "script":
-          if (resumableState.scriptResources.hasOwnProperty(href)) return;
-          imageSrcSet = [];
-          renderState.preloads.scripts.set(href, imageSrcSet);
-          renderState.bulkPreloads.add(imageSrcSet);
-          pushLinkImpl(
-            imageSrcSet,
-            assign({ rel: "preload", href: href, as: as }, options)
-          );
-          resumableState.scriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          break;
-        default:
-          if (resumableState.unknownResources.hasOwnProperty(as)) {
-            if (
-              ((imageSrcSet = resumableState.unknownResources[as]),
-              imageSrcSet.hasOwnProperty(href))
-            )
-              return;
-          } else
-            (imageSrcSet = {}),
-              (resumableState.unknownResources[as] = imageSrcSet);
-          imageSrcSet[href] = PRELOAD_NO_CREDS;
-          if (
-            (resumableState = renderState.headers) &&
-            0 < resumableState.remainingCapacity &&
-            "font" === as &&
-            ((key = getPreloadAsHeader(href, as, options)),
-            0 <= (resumableState.remainingCapacity -= key.length + 2))
-          )
-            (renderState.resets.font[href] = PRELOAD_NO_CREDS),
-              resumableState.fontPreloads &&
-                (resumableState.fontPreloads += ", "),
-              (resumableState.fontPreloads += key);
-          else
-            switch (
-              ((resumableState = []),
-              (href = assign({ rel: "preload", href: href, as: as }, options)),
-              pushLinkImpl(resumableState, href),
-              as)
-            ) {
-              case "font":
-                renderState.fontPreloads.add(resumableState);
-                break;
-              default:
-                renderState.bulkPreloads.add(resumableState);
-            }
-      }
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.L(href, as, options);
-}
-function preloadModule(href, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      var as =
-        options && "string" === typeof options.as ? options.as : "script";
-      switch (as) {
-        case "script":
-          if (resumableState.moduleScriptResources.hasOwnProperty(href)) return;
-          as = [];
-          resumableState.moduleScriptResources[href] =
-            !options ||
-            ("string" !== typeof options.crossOrigin &&
-              "string" !== typeof options.integrity)
-              ? PRELOAD_NO_CREDS
-              : [options.crossOrigin, options.integrity];
-          renderState.preloads.moduleScripts.set(href, as);
-          break;
-        default:
-          if (resumableState.moduleUnknownResources.hasOwnProperty(as)) {
-            var resources = resumableState.unknownResources[as];
-            if (resources.hasOwnProperty(href)) return;
-          } else
-            (resources = {}),
-              (resumableState.moduleUnknownResources[as] = resources);
-          as = [];
-          resources[href] = PRELOAD_NO_CREDS;
-      }
-      pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options));
-      renderState.bulkPreloads.add(as);
-      enqueueFlush(request);
-    }
-  } else previousDispatcher.m(href, options);
-}
-function preinitStyle(href, precedence, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (href) {
-      precedence = precedence || "default";
-      var styleQueue = renderState.styles.get(precedence),
-        resourceState = resumableState.styleResources.hasOwnProperty(href)
-          ? resumableState.styleResources[href]
-          : void 0;
-      null !== resourceState &&
-        ((resumableState.styleResources[href] = null),
-        styleQueue ||
-          ((styleQueue = {
-            precedence: escapeTextForBrowser(precedence),
-            rules: [],
-            hrefs: [],
-            sheets: new Map()
-          }),
-          renderState.styles.set(precedence, styleQueue)),
-        (precedence = {
-          state: 0,
-          props: assign(
-            { rel: "stylesheet", href: href, "data-precedence": precedence },
-            options
-          )
-        }),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(precedence.props, resourceState),
-          (renderState = renderState.preloads.stylesheets.get(href)) &&
-          0 < renderState.length
-            ? (renderState.length = 0)
-            : (precedence.state = 1)),
-        styleQueue.sheets.set(href, precedence),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.S(href, precedence, options);
-}
-function preinitScript(src, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.scriptResources.hasOwnProperty(src)
-        ? resumableState.scriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.scriptResources[src] = null),
-        (options = assign({ src: src, async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.scripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.X(src, options);
-}
-function preinitModuleScript(src, options) {
-  var request = resolveRequest();
-  if (request) {
-    var resumableState = request.resumableState,
-      renderState = request.renderState;
-    if (src) {
-      var resourceState = resumableState.moduleScriptResources.hasOwnProperty(
-        src
-      )
-        ? resumableState.moduleScriptResources[src]
-        : void 0;
-      null !== resourceState &&
-        ((resumableState.moduleScriptResources[src] = null),
-        (options = assign({ src: src, type: "module", async: !0 }, options)),
-        resourceState &&
-          (2 === resourceState.length &&
-            adoptPreloadCredentials(options, resourceState),
-          (src = renderState.preloads.moduleScripts.get(src))) &&
-          (src.length = 0),
-        (src = []),
-        renderState.scripts.add(src),
-        pushScriptImpl(src, options),
-        enqueueFlush(request));
-    }
-  } else previousDispatcher.M(src, options);
-}
-function adoptPreloadCredentials(target, preloadState) {
-  null == target.crossOrigin && (target.crossOrigin = preloadState[0]);
-  null == target.integrity && (target.integrity = preloadState[1]);
-}
-function getPreloadAsHeader(href, as, params) {
-  href = ("" + href).replace(
-    regexForHrefInLinkHeaderURLContext,
-    escapeHrefForLinkHeaderURLContextReplacer
-  );
-  as = ("" + as).replace(
-    regexForLinkHeaderQuotedParamValueContext,
-    escapeStringForLinkHeaderQuotedParamValueContextReplacer
-  );
-  as = "<" + href + '>; rel=preload; as="' + as + '"';
-  for (var paramName in params)
-    hasOwnProperty.call(params, paramName) &&
-      ((href = params[paramName]),
-      "string" === typeof href &&
-        (as +=
-          "; " +
-          paramName.toLowerCase() +
-          '="' +
-          ("" + href).replace(
-            regexForLinkHeaderQuotedParamValueContext,
-            escapeStringForLinkHeaderQuotedParamValueContextReplacer
-          ) +
-          '"'));
-  return as;
-}
-var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g;
-function escapeHrefForLinkHeaderURLContextReplacer(match) {
-  switch (match) {
-    case "<":
-      return "%3C";
-    case ">":
-      return "%3E";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g;
-function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {
-  switch (match) {
-    case '"':
-      return "%22";
-    case "'":
-      return "%27";
-    case ";":
-      return "%3B";
-    case ",":
-      return "%2C";
-    case "\n":
-      return "%0A";
-    case "\r":
-      return "%0D";
-    default:
-      throw Error(
-        "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React"
-      );
-  }
-}
-function hoistStyleQueueDependency(styleQueue) {
-  this.styles.add(styleQueue);
-}
-function hoistStylesheetDependency(stylesheet) {
-  this.stylesheets.add(stylesheet);
-}
-function hoistHoistables(parentState, childState) {
-  childState.styles.forEach(hoistStyleQueueDependency, parentState);
-  childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
-  childState.suspenseyImages && (parentState.suspenseyImages = !0);
-}
-function hasSuspenseyContent(hoistableState) {
-  return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
-}
-var bind = Function.prototype.bind,
-  requestStorage = new async_hooks.AsyncLocalStorage(),
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function getComponentNameFromType(type) {
-  if (null == type) return null;
-  if ("function" === typeof type)
-    return type.$$typeof === REACT_CLIENT_REFERENCE
-      ? null
-      : type.displayName || type.name || null;
-  if ("string" === typeof type) return type;
-  switch (type) {
-    case REACT_FRAGMENT_TYPE:
-      return "Fragment";
-    case REACT_PROFILER_TYPE:
-      return "Profiler";
-    case REACT_STRICT_MODE_TYPE:
-      return "StrictMode";
-    case REACT_SUSPENSE_TYPE:
-      return "Suspense";
-    case REACT_SUSPENSE_LIST_TYPE:
-      return "SuspenseList";
-    case REACT_ACTIVITY_TYPE:
-      return "Activity";
-  }
-  if ("object" === typeof type)
-    switch (type.$$typeof) {
-      case REACT_PORTAL_TYPE:
-        return "Portal";
-      case REACT_CONTEXT_TYPE:
-        return type.displayName || "Context";
-      case REACT_CONSUMER_TYPE:
-        return (type._context.displayName || "Context") + ".Consumer";
-      case REACT_FORWARD_REF_TYPE:
-        var innerType = type.render;
-        type = type.displayName;
-        type ||
-          ((type = innerType.displayName || innerType.name || ""),
-          (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-        return type;
-      case REACT_MEMO_TYPE:
-        return (
-          (innerType = type.displayName || null),
-          null !== innerType
-            ? innerType
-            : getComponentNameFromType(type.type) || "Memo"
-        );
-      case REACT_LAZY_TYPE:
-        innerType = type._payload;
-        type = type._init;
-        try {
-          return getComponentNameFromType(type(innerType));
-        } catch (x) {}
-    }
-  return null;
-}
-var emptyContextObject = {},
-  currentActiveSnapshot = null;
-function popToNearestCommonAncestor(prev, next) {
-  if (prev !== next) {
-    prev.context._currentValue = prev.parentValue;
-    prev = prev.parent;
-    var parentNext = next.parent;
-    if (null === prev) {
-      if (null !== parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-    } else {
-      if (null === parentNext)
-        throw Error(
-          "The stacks must reach the root at the same time. This is a bug in React."
-        );
-      popToNearestCommonAncestor(prev, parentNext);
-    }
-    next.context._currentValue = next.value;
-  }
-}
-function popAllPrevious(prev) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  null !== prev && popAllPrevious(prev);
-}
-function pushAllNext(next) {
-  var parentNext = next.parent;
-  null !== parentNext && pushAllNext(parentNext);
-  next.context._currentValue = next.value;
-}
-function popPreviousToCommonLevel(prev, next) {
-  prev.context._currentValue = prev.parentValue;
-  prev = prev.parent;
-  if (null === prev)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === next.depth
-    ? popToNearestCommonAncestor(prev, next)
-    : popPreviousToCommonLevel(prev, next);
-}
-function popNextToCommonLevel(prev, next) {
-  var parentNext = next.parent;
-  if (null === parentNext)
-    throw Error(
-      "The depth must equal at least at zero before reaching the root. This is a bug in React."
-    );
-  prev.depth === parentNext.depth
-    ? popToNearestCommonAncestor(prev, parentNext)
-    : popNextToCommonLevel(prev, parentNext);
-  next.context._currentValue = next.value;
-}
-function switchContext(newSnapshot) {
-  var prev = currentActiveSnapshot;
-  prev !== newSnapshot &&
-    (null === prev
-      ? pushAllNext(newSnapshot)
-      : null === newSnapshot
-        ? popAllPrevious(prev)
-        : prev.depth === newSnapshot.depth
-          ? popToNearestCommonAncestor(prev, newSnapshot)
-          : prev.depth > newSnapshot.depth
-            ? popPreviousToCommonLevel(prev, newSnapshot)
-            : popNextToCommonLevel(prev, newSnapshot),
-    (currentActiveSnapshot = newSnapshot));
-}
-var classComponentUpdater = {
-    enqueueSetState: function (inst, payload) {
-      inst = inst._reactInternals;
-      null !== inst.queue && inst.queue.push(payload);
-    },
-    enqueueReplaceState: function (inst, payload) {
-      inst = inst._reactInternals;
-      inst.replace = !0;
-      inst.queue = [payload];
-    },
-    enqueueForceUpdate: function () {}
-  },
-  emptyTreeContext = { id: 1, overflow: "" };
-function pushTreeContext(baseContext, totalChildren, index) {
-  var baseIdWithLeadingBit = baseContext.id;
-  baseContext = baseContext.overflow;
-  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;
-  baseIdWithLeadingBit &= ~(1 << baseLength);
-  index += 1;
-  var length = 32 - clz32(totalChildren) + baseLength;
-  if (30 < length) {
-    var numberOfOverflowBits = baseLength - (baseLength % 5);
-    length = (
-      baseIdWithLeadingBit &
-      ((1 << numberOfOverflowBits) - 1)
-    ).toString(32);
-    baseIdWithLeadingBit >>= numberOfOverflowBits;
-    baseLength -= numberOfOverflowBits;
-    return {
-      id:
-        (1 << (32 - clz32(totalChildren) + baseLength)) |
-        (index << baseLength) |
-        baseIdWithLeadingBit,
-      overflow: length + baseContext
-    };
-  }
-  return {
-    id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit,
-    overflow: baseContext
-  };
-}
-var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
-  log = Math.log,
-  LN2 = Math.LN2;
-function clz32Fallback(x) {
-  x >>>= 0;
-  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
-}
-function noop() {}
-var SuspenseException = Error(
-  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
-);
-function trackUsedThenable(thenableState, thenable, index) {
-  index = thenableState[index];
-  void 0 === index
-    ? thenableState.push(thenable)
-    : index !== thenable && (thenable.then(noop, noop), (thenable = index));
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      "string" === typeof thenable.status
-        ? thenable.then(noop, noop)
-        : ((thenableState = thenable),
-          (thenableState.status = "pending"),
-          thenableState.then(
-            function (fulfilledValue) {
-              if ("pending" === thenable.status) {
-                var fulfilledThenable = thenable;
-                fulfilledThenable.status = "fulfilled";
-                fulfilledThenable.value = fulfilledValue;
-              }
-            },
-            function (error) {
-              if ("pending" === thenable.status) {
-                var rejectedThenable = thenable;
-                rejectedThenable.status = "rejected";
-                rejectedThenable.reason = error;
-              }
-            }
-          ));
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-      suspendedThenable = thenable;
-      throw SuspenseException;
-  }
-}
-var suspendedThenable = null;
-function getSuspendedThenable() {
-  if (null === suspendedThenable)
-    throw Error(
-      "Expected a suspended thenable. This is a bug in React. Please file an issue."
-    );
-  var thenable = suspendedThenable;
-  suspendedThenable = null;
-  return thenable;
-}
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  currentlyRenderingComponent = null,
-  currentlyRenderingTask = null,
-  currentlyRenderingRequest = null,
-  currentlyRenderingKeyPath = null,
-  firstWorkInProgressHook = null,
-  workInProgressHook = null,
-  isReRender = !1,
-  didScheduleRenderPhaseUpdate = !1,
-  localIdCounter = 0,
-  actionStateCounter = 0,
-  actionStateMatchingIndex = -1,
-  thenableIndexCounter = 0,
-  thenableState = null,
-  renderPhaseUpdates = null,
-  numberOfReRenders = 0;
-function resolveCurrentlyRenderingComponent() {
-  if (null === currentlyRenderingComponent)
-    throw Error(
-      "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-    );
-  return currentlyRenderingComponent;
-}
-function createHook() {
-  if (0 < numberOfReRenders)
-    throw Error("Rendered more hooks than during the previous render");
-  return { memoizedState: null, queue: null, next: null };
-}
-function createWorkInProgressHook() {
-  null === workInProgressHook
-    ? null === firstWorkInProgressHook
-      ? ((isReRender = !1),
-        (firstWorkInProgressHook = workInProgressHook = createHook()))
-      : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook))
-    : null === workInProgressHook.next
-      ? ((isReRender = !1),
-        (workInProgressHook = workInProgressHook.next = createHook()))
-      : ((isReRender = !0), (workInProgressHook = workInProgressHook.next));
-  return workInProgressHook;
-}
-function getThenableStateAfterSuspending() {
-  var state = thenableState;
-  thenableState = null;
-  return state;
-}
-function resetHooksState() {
-  currentlyRenderingKeyPath =
-    currentlyRenderingRequest =
-    currentlyRenderingTask =
-    currentlyRenderingComponent =
-      null;
-  didScheduleRenderPhaseUpdate = !1;
-  firstWorkInProgressHook = null;
-  numberOfReRenders = 0;
-  workInProgressHook = renderPhaseUpdates = null;
-}
-function basicStateReducer(state, action) {
-  return "function" === typeof action ? action(state) : action;
-}
-function useReducer(reducer, initialArg, init) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  if (isReRender) {
-    var queue = workInProgressHook.queue;
-    initialArg = queue.dispatch;
-    if (
-      null !== renderPhaseUpdates &&
-      ((init = renderPhaseUpdates.get(queue)), void 0 !== init)
-    ) {
-      renderPhaseUpdates.delete(queue);
-      queue = workInProgressHook.memoizedState;
-      do (queue = reducer(queue, init.action)), (init = init.next);
-      while (null !== init);
-      workInProgressHook.memoizedState = queue;
-      return [queue, initialArg];
-    }
-    return [workInProgressHook.memoizedState, initialArg];
-  }
-  reducer =
-    reducer === basicStateReducer
-      ? "function" === typeof initialArg
-        ? initialArg()
-        : initialArg
-      : void 0 !== init
-        ? init(initialArg)
-        : initialArg;
-  workInProgressHook.memoizedState = reducer;
-  reducer = workInProgressHook.queue = { last: null, dispatch: null };
-  reducer = reducer.dispatch = dispatchAction.bind(
-    null,
-    currentlyRenderingComponent,
-    reducer
-  );
-  return [workInProgressHook.memoizedState, reducer];
-}
-function useMemo(nextCreate, deps) {
-  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-  workInProgressHook = createWorkInProgressHook();
-  deps = void 0 === deps ? null : deps;
-  if (null !== workInProgressHook) {
-    var prevState = workInProgressHook.memoizedState;
-    if (null !== prevState && null !== deps) {
-      var prevDeps = prevState[1];
-      a: if (null === prevDeps) prevDeps = !1;
-      else {
-        for (var i = 0; i < prevDeps.length && i < deps.length; i++)
-          if (!objectIs(deps[i], prevDeps[i])) {
-            prevDeps = !1;
-            break a;
-          }
-        prevDeps = !0;
-      }
-      if (prevDeps) return prevState[0];
-    }
-  }
-  nextCreate = nextCreate();
-  workInProgressHook.memoizedState = [nextCreate, deps];
-  return nextCreate;
-}
-function dispatchAction(componentIdentity, queue, action) {
-  if (25 <= numberOfReRenders)
-    throw Error(
-      "Too many re-renders. React limits the number of renders to prevent an infinite loop."
-    );
-  if (componentIdentity === currentlyRenderingComponent)
-    if (
-      ((didScheduleRenderPhaseUpdate = !0),
-      (componentIdentity = { action: action, next: null }),
-      null === renderPhaseUpdates && (renderPhaseUpdates = new Map()),
-      (action = renderPhaseUpdates.get(queue)),
-      void 0 === action)
-    )
-      renderPhaseUpdates.set(queue, componentIdentity);
-    else {
-      for (queue = action; null !== queue.next; ) queue = queue.next;
-      queue.next = componentIdentity;
-    }
-}
-function throwOnUseEffectEventCall() {
-  throw Error(
-    "A function wrapped in useEffectEvent can't be called during rendering."
-  );
-}
-function unsupportedStartTransition() {
-  throw Error("startTransition cannot be called during server rendering.");
-}
-function unsupportedSetOptimisticState() {
-  throw Error("Cannot update optimistic state while rendering.");
-}
-function createPostbackActionStateKey(permalink, componentKeyPath, hookIndex) {
-  if (void 0 !== permalink) return "p" + permalink;
-  permalink = JSON.stringify([componentKeyPath, null, hookIndex]);
-  componentKeyPath = crypto.createHash("md5");
-  componentKeyPath.update(permalink);
-  return "k" + componentKeyPath.digest("hex");
-}
-function useActionState(action, initialState, permalink) {
-  resolveCurrentlyRenderingComponent();
-  var actionStateHookIndex = actionStateCounter++,
-    request = currentlyRenderingRequest;
-  if ("function" === typeof action.$$FORM_ACTION) {
-    var nextPostbackStateKey = null,
-      componentKeyPath = currentlyRenderingKeyPath;
-    request = request.formState;
-    var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;
-    if (null !== request && "function" === typeof isSignatureEqual) {
-      var postbackKey = request[1];
-      isSignatureEqual.call(action, request[2], request[3]) &&
-        ((nextPostbackStateKey = createPostbackActionStateKey(
-          permalink,
-          componentKeyPath,
-          actionStateHookIndex
-        )),
-        postbackKey === nextPostbackStateKey &&
-          ((actionStateMatchingIndex = actionStateHookIndex),
-          (initialState = request[0])));
-    }
-    var boundAction = action.bind(null, initialState);
-    action = function (payload) {
-      boundAction(payload);
-    };
-    "function" === typeof boundAction.$$FORM_ACTION &&
-      (action.$$FORM_ACTION = function (prefix) {
-        prefix = boundAction.$$FORM_ACTION(prefix);
-        void 0 !== permalink &&
-          ((permalink += ""), (prefix.action = permalink));
-        var formData = prefix.data;
-        formData &&
-          (null === nextPostbackStateKey &&
-            (nextPostbackStateKey = createPostbackActionStateKey(
-              permalink,
-              componentKeyPath,
-              actionStateHookIndex
-            )),
-          formData.append("$ACTION_KEY", nextPostbackStateKey));
-        return prefix;
-      });
-    return [initialState, action, !1];
-  }
-  var boundAction$22 = action.bind(null, initialState);
-  return [
-    initialState,
-    function (payload) {
-      boundAction$22(payload);
-    },
-    !1
-  ];
-}
-function unwrapThenable(thenable) {
-  var index = thenableIndexCounter;
-  thenableIndexCounter += 1;
-  null === thenableState && (thenableState = []);
-  return trackUsedThenable(thenableState, thenable, index);
-}
-function unsupportedRefresh() {
-  throw Error("Cache cannot be refreshed during server rendering.");
-}
-var HooksDispatcher = {
-    readContext: function (context) {
-      return context._currentValue;
-    },
-    use: function (usable) {
-      if (null !== usable && "object" === typeof usable) {
-        if ("function" === typeof usable.then) return unwrapThenable(usable);
-        if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue;
-      }
-      throw Error("An unsupported type was passed to use(): " + String(usable));
-    },
-    useContext: function (context) {
-      resolveCurrentlyRenderingComponent();
-      return context._currentValue;
-    },
-    useMemo: useMemo,
-    useReducer: useReducer,
-    useRef: function (initialValue) {
-      currentlyRenderingComponent = resolveCurrentlyRenderingComponent();
-      workInProgressHook = createWorkInProgressHook();
-      var previousRef = workInProgressHook.memoizedState;
-      return null === previousRef
-        ? ((initialValue = { current: initialValue }),
-          (workInProgressHook.memoizedState = initialValue))
-        : previousRef;
-    },
-    useState: function (initialState) {
-      return useReducer(basicStateReducer, initialState);
-    },
-    useInsertionEffect: noop,
-    useLayoutEffect: noop,
-    useCallback: function (callback, deps) {
-      return useMemo(function () {
-        return callback;
-      }, deps);
-    },
-    useImperativeHandle: noop,
-    useEffect: noop,
-    useDebugValue: noop,
-    useDeferredValue: function (value, initialValue) {
-      resolveCurrentlyRenderingComponent();
-      return void 0 !== initialValue ? initialValue : value;
-    },
-    useTransition: function () {
-      resolveCurrentlyRenderingComponent();
-      return [!1, unsupportedStartTransition];
-    },
-    useId: function () {
-      var JSCompiler_inline_result = currentlyRenderingTask.treeContext;
-      var overflow = JSCompiler_inline_result.overflow;
-      JSCompiler_inline_result = JSCompiler_inline_result.id;
-      JSCompiler_inline_result =
-        (
-          JSCompiler_inline_result &
-          ~(1 << (32 - clz32(JSCompiler_inline_result) - 1))
-        ).toString(32) + overflow;
-      var resumableState = currentResumableState;
-      if (null === resumableState)
-        throw Error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component."
-        );
-      overflow = localIdCounter++;
-      JSCompiler_inline_result =
-        "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
-      0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
-      return JSCompiler_inline_result + "_";
-    },
-    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
-      if (void 0 === getServerSnapshot)
-        throw Error(
-          "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering."
-        );
-      return getServerSnapshot();
-    },
-    useOptimistic: function (passthrough) {
-      resolveCurrentlyRenderingComponent();
-      return [passthrough, unsupportedSetOptimisticState];
-    },
-    useActionState: useActionState,
-    useFormState: useActionState,
-    useHostTransitionStatus: function () {
-      resolveCurrentlyRenderingComponent();
-      return sharedNotPendingObject;
-    },
-    useMemoCache: function (size) {
-      for (var data = Array(size), i = 0; i < size; i++)
-        data[i] = REACT_MEMO_CACHE_SENTINEL;
-      return data;
-    },
-    useCacheRefresh: function () {
-      return unsupportedRefresh;
-    },
-    useEffectEvent: function () {
-      return throwOnUseEffectEventCall;
-    }
-  },
-  currentResumableState = null,
-  DefaultAsyncDispatcher = {
-    getCacheForType: function () {
-      throw Error("Not implemented.");
-    },
-    cacheSignal: function () {
-      throw Error("Not implemented.");
-    }
-  };
-function prepareStackTrace(error, structuredStackTrace) {
-  error = (error.name || "Error") + ": " + (error.message || "");
-  for (var i = 0; i < structuredStackTrace.length; i++)
-    error += "\n    at " + structuredStackTrace[i].toString();
-  return error;
-}
-var prefix, suffix;
-function describeBuiltInComponentFrame(name) {
-  if (void 0 === prefix)
-    try {
-      throw Error();
-    } catch (x) {
-      var match = x.stack.trim().match(/\n( *(at )?)/);
-      prefix = (match && match[1]) || "";
-      suffix =
-        -1 < x.stack.indexOf("\n    at")
-          ? " (<anonymous>)"
-          : -1 < x.stack.indexOf("@")
-            ? "@unknown:0:0"
-            : "";
-    }
-  return "\n" + prefix + name + suffix;
-}
-var reentry = !1;
-function describeNativeComponentFrame(fn, construct) {
-  if (!fn || reentry) return "";
-  reentry = !0;
-  var previousPrepareStackTrace = Error.prepareStackTrace;
-  Error.prepareStackTrace = prepareStackTrace;
-  try {
-    var RunInRootFrame = {
-      DetermineComponentFrameRoot: function () {
-        try {
-          if (construct) {
-            var Fake = function () {
-              throw Error();
-            };
-            Object.defineProperty(Fake.prototype, "props", {
-              set: function () {
-                throw Error();
-              }
-            });
-            if ("object" === typeof Reflect && Reflect.construct) {
-              try {
-                Reflect.construct(Fake, []);
-              } catch (x) {
-                var control = x;
-              }
-              Reflect.construct(fn, [], Fake);
-            } else {
-              try {
-                Fake.call();
-              } catch (x$24) {
-                control = x$24;
-              }
-              fn.call(Fake.prototype);
-            }
-          } else {
-            try {
-              throw Error();
-            } catch (x$25) {
-              control = x$25;
-            }
-            (Fake = fn()) &&
-              "function" === typeof Fake.catch &&
-              Fake.catch(function () {});
-          }
-        } catch (sample) {
-          if (sample && control && "string" === typeof sample.stack)
-            return [sample.stack, control.stack];
-        }
-        return [null, null];
-      }
-    };
-    RunInRootFrame.DetermineComponentFrameRoot.displayName =
-      "DetermineComponentFrameRoot";
-    var namePropDescriptor = Object.getOwnPropertyDescriptor(
-      RunInRootFrame.DetermineComponentFrameRoot,
-      "name"
-    );
-    namePropDescriptor &&
-      namePropDescriptor.configurable &&
-      Object.defineProperty(
-        RunInRootFrame.DetermineComponentFrameRoot,
-        "name",
-        { value: "DetermineComponentFrameRoot" }
-      );
-    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),
-      sampleStack = _RunInRootFrame$Deter[0],
-      controlStack = _RunInRootFrame$Deter[1];
-    if (sampleStack && controlStack) {
-      var sampleLines = sampleStack.split("\n"),
-        controlLines = controlStack.split("\n");
-      for (
-        namePropDescriptor = RunInRootFrame = 0;
-        RunInRootFrame < sampleLines.length &&
-        !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot");
-
-      )
-        RunInRootFrame++;
-      for (
-        ;
-        namePropDescriptor < controlLines.length &&
-        !controlLines[namePropDescriptor].includes(
-          "DetermineComponentFrameRoot"
-        );
-
-      )
-        namePropDescriptor++;
-      if (
-        RunInRootFrame === sampleLines.length ||
-        namePropDescriptor === controlLines.length
-      )
-        for (
-          RunInRootFrame = sampleLines.length - 1,
-            namePropDescriptor = controlLines.length - 1;
-          1 <= RunInRootFrame &&
-          0 <= namePropDescriptor &&
-          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];
-
-        )
-          namePropDescriptor--;
-      for (
-        ;
-        1 <= RunInRootFrame && 0 <= namePropDescriptor;
-        RunInRootFrame--, namePropDescriptor--
-      )
-        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {
-          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {
-            do
-              if (
-                (RunInRootFrame--,
-                namePropDescriptor--,
-                0 > namePropDescriptor ||
-                  sampleLines[RunInRootFrame] !==
-                    controlLines[namePropDescriptor])
-              ) {
-                var frame =
-                  "\n" +
-                  sampleLines[RunInRootFrame].replace(" at new ", " at ");
-                fn.displayName &&
-                  frame.includes("<anonymous>") &&
-                  (frame = frame.replace("<anonymous>", fn.displayName));
-                return frame;
-              }
-            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);
-          }
-          break;
-        }
-    }
-  } finally {
-    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);
-  }
-  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "")
-    ? describeBuiltInComponentFrame(previousPrepareStackTrace)
-    : "";
-}
-function describeComponentStackByType(type) {
-  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
-  if ("function" === typeof type)
-    return type.prototype && type.prototype.isReactComponent
-      ? describeNativeComponentFrame(type, !0)
-      : describeNativeComponentFrame(type, !1);
-  if ("object" === typeof type && null !== type) {
-    switch (type.$$typeof) {
-      case REACT_FORWARD_REF_TYPE:
-        return describeNativeComponentFrame(type.render, !1);
-      case REACT_MEMO_TYPE:
-        return describeNativeComponentFrame(type.type, !1);
-      case REACT_LAZY_TYPE:
-        var lazyComponent = type,
-          payload = lazyComponent._payload;
-        lazyComponent = lazyComponent._init;
-        try {
-          type = lazyComponent(payload);
-        } catch (x) {
-          return describeBuiltInComponentFrame("Lazy");
-        }
-        return describeComponentStackByType(type);
-    }
-    if ("string" === typeof type.name) {
-      a: {
-        payload = type.name;
-        lazyComponent = type.env;
-        var location = type.debugLocation;
-        if (
-          null != location &&
-          ((type = Error.prepareStackTrace),
-          (Error.prepareStackTrace = prepareStackTrace),
-          (location = location.stack),
-          (Error.prepareStackTrace = type),
-          location.startsWith("Error: react-stack-top-frame\n") &&
-            (location = location.slice(29)),
-          (type = location.indexOf("\n")),
-          -1 !== type && (location = location.slice(type + 1)),
-          (type = location.indexOf("react_stack_bottom_frame")),
-          -1 !== type && (type = location.lastIndexOf("\n", type)),
-          (type = -1 !== type ? (location = location.slice(0, type)) : ""),
-          (location = type.lastIndexOf("\n")),
-          (type = -1 === location ? type : type.slice(location + 1)),
-          -1 !== type.indexOf(payload))
-        ) {
-          payload = "\n" + type;
-          break a;
-        }
-        payload = describeBuiltInComponentFrame(
-          payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
-        );
-      }
-      return payload;
-    }
-  }
-  switch (type) {
-    case REACT_SUSPENSE_LIST_TYPE:
-      return describeBuiltInComponentFrame("SuspenseList");
-    case REACT_SUSPENSE_TYPE:
-      return describeBuiltInComponentFrame("Suspense");
-  }
-  return "";
-}
-function isEligibleForOutlining(request, boundary) {
-  return (
-    (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
-    null === boundary.contentPreamble
-  );
-}
-function defaultErrorHandler(error) {
-  if (
-    "object" === typeof error &&
-    null !== error &&
-    "string" === typeof error.environmentName
-  ) {
-    var JSCompiler_inline_result = error.environmentName;
-    error = [error].slice(0);
-    "string" === typeof error[0]
-      ? error.splice(
-          0,
-          1,
-          "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0],
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        )
-      : error.splice(
-          0,
-          0,
-          "\u001b[0m\u001b[7m%c%s\u001b[0m%c",
-          "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
-          " " + JSCompiler_inline_result + " ",
-          ""
-        );
-    error.unshift(console);
-    JSCompiler_inline_result = bind.apply(console.error, error);
-    JSCompiler_inline_result();
-  } else console.error(error);
-  return null;
-}
-function RequestInstance(
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  var abortSet = new Set();
-  this.destination = null;
-  this.flushScheduled = !1;
-  this.resumableState = resumableState;
-  this.renderState = renderState;
-  this.rootFormatContext = rootFormatContext;
-  this.progressiveChunkSize =
-    void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize;
-  this.status = 10;
-  this.fatalError = null;
-  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
-  this.completedPreambleSegments = this.completedRootSegment = null;
-  this.byteSize = 0;
-  this.abortableTasks = abortSet;
-  this.pingedTasks = [];
-  this.clientRenderedBoundaries = [];
-  this.completedBoundaries = [];
-  this.partialBoundaries = [];
-  this.trackedPostpones = null;
-  this.onError = void 0 === onError ? defaultErrorHandler : onError;
-  this.onPostpone = void 0 === onPostpone ? noop : onPostpone;
-  this.onAllReady = void 0 === onAllReady ? noop : onAllReady;
-  this.onShellReady = void 0 === onShellReady ? noop : onShellReady;
-  this.onShellError = void 0 === onShellError ? noop : onShellError;
-  this.onFatalError = void 0 === onFatalError ? noop : onFatalError;
-  this.formState = void 0 === formState ? null : formState;
-}
-function createRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone,
-  formState
-) {
-  resumableState = new RequestInstance(
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    formState
-  );
-  renderState = createPendingSegment(
-    resumableState,
-    0,
-    null,
-    rootFormatContext,
-    !1,
-    !1
-  );
-  renderState.parentFlushed = !0;
-  children = createRenderTask(
-    resumableState,
-    null,
-    children,
-    -1,
-    null,
-    renderState,
-    null,
-    null,
-    resumableState.abortableTasks,
-    null,
-    rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  resumableState.pingedTasks.push(children);
-  return resumableState;
-}
-function createPrerenderRequest(
-  children,
-  resumableState,
-  renderState,
-  rootFormatContext,
-  progressiveChunkSize,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = createRequest(
-    children,
-    resumableState,
-    renderState,
-    rootFormatContext,
-    progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    void 0
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-function resumeRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  renderState = new RequestInstance(
-    postponedState.resumableState,
-    renderState,
-    postponedState.rootFormatContext,
-    postponedState.progressiveChunkSize,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone,
-    null
-  );
-  renderState.nextSegmentId = postponedState.nextSegmentId;
-  if ("number" === typeof postponedState.replaySlots)
-    return (
-      (onError = createPendingSegment(
-        renderState,
-        0,
-        null,
-        postponedState.rootFormatContext,
-        !1,
-        !1
-      )),
-      (onError.parentFlushed = !0),
-      (children = createRenderTask(
-        renderState,
-        null,
-        children,
-        -1,
-        null,
-        onError,
-        null,
-        null,
-        renderState.abortableTasks,
-        null,
-        postponedState.rootFormatContext,
-        null,
-        emptyTreeContext,
-        null,
-        null
-      )),
-      pushComponentStack(children),
-      renderState.pingedTasks.push(children),
-      renderState
-    );
-  children = createReplayTask(
-    renderState,
-    null,
-    {
-      nodes: postponedState.replayNodes,
-      slots: postponedState.replaySlots,
-      pendingTasks: 0
-    },
-    children,
-    -1,
-    null,
-    null,
-    renderState.abortableTasks,
-    null,
-    postponedState.rootFormatContext,
-    null,
-    emptyTreeContext,
-    null,
-    null
-  );
-  pushComponentStack(children);
-  renderState.pingedTasks.push(children);
-  return renderState;
-}
-function resumeAndPrerenderRequest(
-  children,
-  postponedState,
-  renderState,
-  onError,
-  onAllReady,
-  onShellReady,
-  onShellError,
-  onFatalError,
-  onPostpone
-) {
-  children = resumeRequest(
-    children,
-    postponedState,
-    renderState,
-    onError,
-    onAllReady,
-    onShellReady,
-    onShellError,
-    onFatalError,
-    onPostpone
-  );
-  children.trackedPostpones = {
-    workingMap: new Map(),
-    rootNodes: [],
-    rootSlots: null
-  };
-  return children;
-}
-var currentRequest = null;
-function resolveRequest() {
-  if (currentRequest) return currentRequest;
-  var store = requestStorage.getStore();
-  return store ? store : null;
-}
-function pingTask(request, task) {
-  request.pingedTasks.push(task);
-  1 === request.pingedTasks.length &&
-    ((request.flushScheduled = null !== request.destination),
-    null !== request.trackedPostpones || 10 === request.status
-      ? scheduleMicrotask(function () {
-          return performWork(request);
-        })
-      : setImmediate(function () {
-          return performWork(request);
-        }));
-}
-function createSuspenseBoundary(
-  request,
-  row,
-  fallbackAbortableTasks,
-  contentPreamble,
-  fallbackPreamble
-) {
-  fallbackAbortableTasks = {
-    status: 0,
-    rootSegmentID: -1,
-    parentFlushed: !1,
-    pendingTasks: 0,
-    row: row,
-    completedSegments: [],
-    byteSize: 0,
-    fallbackAbortableTasks: fallbackAbortableTasks,
-    errorDigest: null,
-    contentState: createHoistableState(),
-    fallbackState: createHoistableState(),
-    contentPreamble: contentPreamble,
-    fallbackPreamble: fallbackPreamble,
-    trackedContentKeyPath: null,
-    trackedFallbackNode: null
-  };
-  null !== row &&
-    (row.pendingTasks++,
-    (contentPreamble = row.boundaries),
-    null !== contentPreamble &&
-      (request.allPendingTasks++,
-      fallbackAbortableTasks.pendingTasks++,
-      contentPreamble.push(fallbackAbortableTasks)),
-    (request = row.inheritedHoistables),
-    null !== request &&
-      hoistHoistables(fallbackAbortableTasks.contentState, request));
-  return fallbackAbortableTasks;
-}
-function createRenderTask(
-  request,
-  thenableState,
-  node,
-  childIndex,
-  blockedBoundary,
-  blockedSegment,
-  blockedPreamble,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  var task = {
-    replay: null,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: blockedSegment,
-    blockedPreamble: blockedPreamble,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createReplayTask(
-  request,
-  thenableState,
-  replay,
-  node,
-  childIndex,
-  blockedBoundary,
-  hoistableState,
-  abortSet,
-  keyPath,
-  formatContext,
-  context,
-  treeContext,
-  row,
-  componentStack
-) {
-  request.allPendingTasks++;
-  null === blockedBoundary
-    ? request.pendingRootTasks++
-    : blockedBoundary.pendingTasks++;
-  null !== row && row.pendingTasks++;
-  replay.pendingTasks++;
-  var task = {
-    replay: replay,
-    node: node,
-    childIndex: childIndex,
-    ping: function () {
-      return pingTask(request, task);
-    },
-    blockedBoundary: blockedBoundary,
-    blockedSegment: null,
-    blockedPreamble: null,
-    hoistableState: hoistableState,
-    abortSet: abortSet,
-    keyPath: keyPath,
-    formatContext: formatContext,
-    context: context,
-    treeContext: treeContext,
-    row: row,
-    componentStack: componentStack,
-    thenableState: thenableState
-  };
-  abortSet.add(task);
-  return task;
-}
-function createPendingSegment(
-  request,
-  index,
-  boundary,
-  parentFormatContext,
-  lastPushedText,
-  textEmbedded
-) {
-  return {
-    status: 0,
-    parentFlushed: !1,
-    id: -1,
-    index: index,
-    chunks: [],
-    children: [],
-    preambleChildren: [],
-    parentFormatContext: parentFormatContext,
-    boundary: boundary,
-    lastPushedText: lastPushedText,
-    textEmbedded: textEmbedded
-  };
-}
-function pushComponentStack(task) {
-  var node = task.node;
-  if ("object" === typeof node && null !== node)
-    switch (node.$$typeof) {
-      case REACT_ELEMENT_TYPE:
-        task.componentStack = { parent: task.componentStack, type: node.type };
-    }
-}
-function replaceSuspenseComponentStackWithSuspenseFallbackStack(
-  componentStack
-) {
-  return null === componentStack
-    ? null
-    : { parent: componentStack.parent, type: "Suspense Fallback" };
-}
-function getThrownInfo(node$jscomp$0) {
-  var errorInfo = {};
-  node$jscomp$0 &&
-    Object.defineProperty(errorInfo, "componentStack", {
-      configurable: !0,
-      enumerable: !0,
-      get: function () {
-        try {
-          var info = "",
-            node = node$jscomp$0;
-          do
-            (info += describeComponentStackByType(node.type)),
-              (node = node.parent);
-          while (node);
-          var JSCompiler_inline_result = info;
-        } catch (x) {
-          JSCompiler_inline_result =
-            "\nError generating stack: " + x.message + "\n" + x.stack;
-        }
-        Object.defineProperty(errorInfo, "componentStack", {
-          value: JSCompiler_inline_result
-        });
-        return JSCompiler_inline_result;
-      }
-    });
-  return errorInfo;
-}
-function logRecoverableError(request, error, errorInfo) {
-  request = request.onError;
-  error = request(error, errorInfo);
-  if (null == error || "string" === typeof error) return error;
-}
-function fatalError(request, error) {
-  var onShellError = request.onShellError,
-    onFatalError = request.onFatalError;
-  onShellError(error);
-  onFatalError(error);
-  null !== request.destination
-    ? ((request.status = 14), request.destination.destroy(error))
-    : ((request.status = 13), (request.fatalError = error));
-}
-function finishSuspenseListRow(request, row) {
-  unblockSuspenseListRow(request, row.next, row.hoistables);
-}
-function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
-  for (; null !== unblockedRow; ) {
-    null !== inheritedHoistables &&
-      (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
-      (unblockedRow.inheritedHoistables = inheritedHoistables));
-    var unblockedBoundaries = unblockedRow.boundaries;
-    if (null !== unblockedBoundaries) {
-      unblockedRow.boundaries = null;
-      for (var i = 0; i < unblockedBoundaries.length; i++) {
-        var unblockedBoundary = unblockedBoundaries[i];
-        null !== inheritedHoistables &&
-          hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
-        finishedTask(request, unblockedBoundary, null, null);
-      }
-    }
-    unblockedRow.pendingTasks--;
-    if (0 < unblockedRow.pendingTasks) break;
-    inheritedHoistables = unblockedRow.hoistables;
-    unblockedRow = unblockedRow.next;
-  }
-}
-function tryToResolveTogetherRow(request, togetherRow) {
-  var boundaries = togetherRow.boundaries;
-  if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
-    for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
-      var rowBoundary = boundaries[i];
-      if (
-        1 !== rowBoundary.pendingTasks ||
-        rowBoundary.parentFlushed ||
-        isEligibleForOutlining(request, rowBoundary)
-      ) {
-        allCompleteAndInlinable = !1;
-        break;
-      }
-    }
-    allCompleteAndInlinable &&
-      unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
-  }
-}
-function createSuspenseListRow(previousRow) {
-  var newRow = {
-    pendingTasks: 1,
-    boundaries: null,
-    hoistables: createHoistableState(),
-    inheritedHoistables: null,
-    together: !1,
-    next: null
-  };
-  null !== previousRow &&
-    0 < previousRow.pendingTasks &&
-    (newRow.pendingTasks++,
-    (newRow.boundaries = []),
-    (previousRow.next = newRow));
-  return newRow;
-}
-function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
-  var prevKeyPath = task.keyPath,
-    prevTreeContext = task.treeContext,
-    prevRow = task.row;
-  task.keyPath = keyPath;
-  keyPath = rows.length;
-  var previousSuspenseListRow = null;
-  if (null !== task.replay) {
-    var resumeSlots = task.replay.slots;
-    if (null !== resumeSlots && "object" === typeof resumeSlots)
-      for (var n = 0; n < keyPath; n++) {
-        var i =
-            "backwards" !== revealOrder &&
-            "unstable_legacy-backwards" !== revealOrder
-              ? n
-              : keyPath - 1 - n,
-          node = rows[i];
-        task.row = previousSuspenseListRow = createSuspenseListRow(
-          previousSuspenseListRow
-        );
-        task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-        var resumeSegmentID = resumeSlots[i];
-        "number" === typeof resumeSegmentID
-          ? (resumeNode(request, task, resumeSegmentID, node, i),
-            delete resumeSlots[i])
-          : renderNode(request, task, node, i);
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-      }
-    else
-      for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
-        (n =
-          "backwards" !== revealOrder &&
-          "unstable_legacy-backwards" !== revealOrder
-            ? resumeSlots
-            : keyPath - 1 - resumeSlots),
-          (i = rows[n]),
-          (task.row = previousSuspenseListRow =
-            createSuspenseListRow(previousSuspenseListRow)),
-          (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
-          renderNode(request, task, i, n),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-  } else if (
-    "backwards" !== revealOrder &&
-    "unstable_legacy-backwards" !== revealOrder
-  )
-    for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
-      (resumeSlots = rows[revealOrder]),
-        (task.row = previousSuspenseListRow =
-          createSuspenseListRow(previousSuspenseListRow)),
-        (task.treeContext = pushTreeContext(
-          prevTreeContext,
-          keyPath,
-          revealOrder
-        )),
-        renderNode(request, task, resumeSlots, revealOrder),
-        0 === --previousSuspenseListRow.pendingTasks &&
-          finishSuspenseListRow(request, previousSuspenseListRow);
-  else {
-    revealOrder = task.blockedSegment;
-    resumeSlots = revealOrder.children.length;
-    n = revealOrder.chunks.length;
-    for (i = keyPath - 1; 0 <= i; i--) {
-      node = rows[i];
-      task.row = previousSuspenseListRow = createSuspenseListRow(
-        previousSuspenseListRow
-      );
-      task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
-      resumeSegmentID = createPendingSegment(
-        request,
-        n,
-        null,
-        task.formatContext,
-        0 === i ? revealOrder.lastPushedText : !0,
-        !0
-      );
-      revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
-      task.blockedSegment = resumeSegmentID;
-      try {
-        renderNode(request, task, node, i),
-          resumeSegmentID.lastPushedText &&
-            resumeSegmentID.textEmbedded &&
-            resumeSegmentID.chunks.push(textSeparator),
-          (resumeSegmentID.status = 1),
-          finishedSegment(request, task.blockedBoundary, resumeSegmentID),
-          0 === --previousSuspenseListRow.pendingTasks &&
-            finishSuspenseListRow(request, previousSuspenseListRow);
-      } catch (thrownValue) {
-        throw (
-          ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
-          thrownValue)
-        );
-      }
-    }
-    task.blockedSegment = revealOrder;
-    revealOrder.lastPushedText = !1;
-  }
-  null !== prevRow &&
-    null !== previousSuspenseListRow &&
-    0 < previousSuspenseListRow.pendingTasks &&
-    (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
-  task.treeContext = prevTreeContext;
-  task.row = prevRow;
-  task.keyPath = prevKeyPath;
-}
-function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
-  var prevThenableState = task.thenableState;
-  task.thenableState = null;
-  currentlyRenderingComponent = {};
-  currentlyRenderingTask = task;
-  currentlyRenderingRequest = request;
-  currentlyRenderingKeyPath = keyPath;
-  actionStateCounter = localIdCounter = 0;
-  actionStateMatchingIndex = -1;
-  thenableIndexCounter = 0;
-  thenableState = prevThenableState;
-  for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; )
-    (didScheduleRenderPhaseUpdate = !1),
-      (actionStateCounter = localIdCounter = 0),
-      (actionStateMatchingIndex = -1),
-      (thenableIndexCounter = 0),
-      (numberOfReRenders += 1),
-      (workInProgressHook = null),
-      (request = Component(props, secondArg));
-  resetHooksState();
-  return request;
-}
-function finishFunctionComponent(
-  request,
-  task,
-  keyPath,
-  children,
-  hasId,
-  actionStateCount,
-  actionStateMatchingIndex
-) {
-  var didEmitActionStateMarkers = !1;
-  if (0 !== actionStateCount && null !== request.formState) {
-    var segment = task.blockedSegment;
-    if (null !== segment) {
-      didEmitActionStateMarkers = !0;
-      segment = segment.chunks;
-      for (var i = 0; i < actionStateCount; i++)
-        i === actionStateMatchingIndex
-          ? segment.push(formStateMarkerIsMatching)
-          : segment.push(formStateMarkerIsNotMatching);
-    }
-  }
-  actionStateCount = task.keyPath;
-  task.keyPath = keyPath;
-  hasId
-    ? ((keyPath = task.treeContext),
-      (task.treeContext = pushTreeContext(keyPath, 1, 0)),
-      renderNode(request, task, children, -1),
-      (task.treeContext = keyPath))
-    : didEmitActionStateMarkers
-      ? renderNode(request, task, children, -1)
-      : renderNodeDestructive(request, task, children, -1);
-  task.keyPath = actionStateCount;
-}
-function renderElement(request, task, keyPath, type, props, ref) {
-  if ("function" === typeof type)
-    if (type.prototype && type.prototype.isReactComponent) {
-      var newProps = props;
-      if ("ref" in props) {
-        newProps = {};
-        for (var propName in props)
-          "ref" !== propName && (newProps[propName] = props[propName]);
-      }
-      var defaultProps = type.defaultProps;
-      if (defaultProps) {
-        newProps === props && (newProps = assign({}, newProps, props));
-        for (var propName$44 in defaultProps)
-          void 0 === newProps[propName$44] &&
-            (newProps[propName$44] = defaultProps[propName$44]);
-      }
-      props = newProps;
-      newProps = emptyContextObject;
-      defaultProps = type.contextType;
-      "object" === typeof defaultProps &&
-        null !== defaultProps &&
-        (newProps = defaultProps._currentValue);
-      newProps = new type(props, newProps);
-      var initialState = void 0 !== newProps.state ? newProps.state : null;
-      newProps.updater = classComponentUpdater;
-      newProps.props = props;
-      newProps.state = initialState;
-      defaultProps = { queue: [], replace: !1 };
-      newProps._reactInternals = defaultProps;
-      ref = type.contextType;
-      newProps.context =
-        "object" === typeof ref && null !== ref
-          ? ref._currentValue
-          : emptyContextObject;
-      ref = type.getDerivedStateFromProps;
-      "function" === typeof ref &&
-        ((ref = ref(props, initialState)),
-        (initialState =
-          null === ref || void 0 === ref
-            ? initialState
-            : assign({}, initialState, ref)),
-        (newProps.state = initialState));
-      if (
-        "function" !== typeof type.getDerivedStateFromProps &&
-        "function" !== typeof newProps.getSnapshotBeforeUpdate &&
-        ("function" === typeof newProps.UNSAFE_componentWillMount ||
-          "function" === typeof newProps.componentWillMount)
-      )
-        if (
-          ((type = newProps.state),
-          "function" === typeof newProps.componentWillMount &&
-            newProps.componentWillMount(),
-          "function" === typeof newProps.UNSAFE_componentWillMount &&
-            newProps.UNSAFE_componentWillMount(),
-          type !== newProps.state &&
-            classComponentUpdater.enqueueReplaceState(
-              newProps,
-              newProps.state,
-              null
-            ),
-          null !== defaultProps.queue && 0 < defaultProps.queue.length)
-        )
-          if (
-            ((type = defaultProps.queue),
-            (ref = defaultProps.replace),
-            (defaultProps.queue = null),
-            (defaultProps.replace = !1),
-            ref && 1 === type.length)
-          )
-            newProps.state = type[0];
-          else {
-            defaultProps = ref ? type[0] : newProps.state;
-            initialState = !0;
-            for (ref = ref ? 1 : 0; ref < type.length; ref++)
-              (propName$44 = type[ref]),
-                (propName$44 =
-                  "function" === typeof propName$44
-                    ? propName$44.call(newProps, defaultProps, props, void 0)
-                    : propName$44),
-                null != propName$44 &&
-                  (initialState
-                    ? ((initialState = !1),
-                      (defaultProps = assign({}, defaultProps, propName$44)))
-                    : assign(defaultProps, propName$44));
-            newProps.state = defaultProps;
-          }
-        else defaultProps.queue = null;
-      type = newProps.render();
-      if (12 === request.status) throw null;
-      props = task.keyPath;
-      task.keyPath = keyPath;
-      renderNodeDestructive(request, task, type, -1);
-      task.keyPath = props;
-    } else {
-      type = renderWithHooks(request, task, keyPath, type, props, void 0);
-      if (12 === request.status) throw null;
-      finishFunctionComponent(
-        request,
-        task,
-        keyPath,
-        type,
-        0 !== localIdCounter,
-        actionStateCounter,
-        actionStateMatchingIndex
-      );
-    }
-  else if ("string" === typeof type)
-    if (((newProps = task.blockedSegment), null === newProps))
-      (newProps = props.children),
-        (defaultProps = task.formatContext),
-        (initialState = task.keyPath),
-        (task.formatContext = getChildFormatContext(defaultProps, type, props)),
-        (task.keyPath = keyPath),
-        renderNode(request, task, newProps, -1),
-        (task.formatContext = defaultProps),
-        (task.keyPath = initialState);
-    else {
-      initialState = pushStartInstance(
-        newProps.chunks,
-        type,
-        props,
-        request.resumableState,
-        request.renderState,
-        task.blockedPreamble,
-        task.hoistableState,
-        task.formatContext,
-        newProps.lastPushedText
-      );
-      newProps.lastPushedText = !1;
-      defaultProps = task.formatContext;
-      ref = task.keyPath;
-      task.keyPath = keyPath;
-      if (
-        3 ===
-        (task.formatContext = getChildFormatContext(defaultProps, type, props))
-          .insertionMode
-      ) {
-        keyPath = createPendingSegment(
-          request,
-          0,
-          null,
-          task.formatContext,
-          !1,
-          !1
-        );
-        newProps.preambleChildren.push(keyPath);
-        task.blockedSegment = keyPath;
-        try {
-          (keyPath.status = 6),
-            renderNode(request, task, initialState, -1),
-            keyPath.lastPushedText &&
-              keyPath.textEmbedded &&
-              keyPath.chunks.push(textSeparator),
-            (keyPath.status = 1),
-            finishedSegment(request, task.blockedBoundary, keyPath);
-        } finally {
-          task.blockedSegment = newProps;
-        }
-      } else renderNode(request, task, initialState, -1);
-      task.formatContext = defaultProps;
-      task.keyPath = ref;
-      a: {
-        task = newProps.chunks;
-        request = request.resumableState;
-        switch (type) {
-          case "title":
-          case "style":
-          case "script":
-          case "area":
-          case "base":
-          case "br":
-          case "col":
-          case "embed":
-          case "hr":
-          case "img":
-          case "input":
-          case "keygen":
-          case "link":
-          case "meta":
-          case "param":
-          case "source":
-          case "track":
-          case "wbr":
-            break a;
-          case "body":
-            if (1 >= defaultProps.insertionMode) {
-              request.hasBody = !0;
-              break a;
-            }
-            break;
-          case "html":
-            if (0 === defaultProps.insertionMode) {
-              request.hasHtml = !0;
-              break a;
-            }
-            break;
-          case "head":
-            if (1 >= defaultProps.insertionMode) break a;
-        }
-        task.push(endChunkForTag(type));
-      }
-      newProps.lastPushedText = !1;
-    }
-  else {
-    switch (type) {
-      case REACT_LEGACY_HIDDEN_TYPE:
-      case REACT_STRICT_MODE_TYPE:
-      case REACT_PROFILER_TYPE:
-      case REACT_FRAGMENT_TYPE:
-        type = task.keyPath;
-        task.keyPath = keyPath;
-        renderNodeDestructive(request, task, props.children, -1);
-        task.keyPath = type;
-        return;
-      case REACT_ACTIVITY_TYPE:
-        type = task.blockedSegment;
-        null === type
-          ? "hidden" !== props.mode &&
-            ((type = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = type))
-          : "hidden" !== props.mode &&
-            (type.chunks.push(startActivityBoundary),
-            (type.lastPushedText = !1),
-            (newProps = task.keyPath),
-            (task.keyPath = keyPath),
-            renderNode(request, task, props.children, -1),
-            (task.keyPath = newProps),
-            type.chunks.push(endActivityBoundary),
-            (type.lastPushedText = !1));
-        return;
-      case REACT_SUSPENSE_LIST_TYPE:
-        a: {
-          type = props.children;
-          props = props.revealOrder;
-          if (
-            "forwards" === props ||
-            "backwards" === props ||
-            "unstable_legacy-backwards" === props
-          ) {
-            if (isArrayImpl(type)) {
-              renderSuspenseListRows(request, task, keyPath, type, props);
-              break a;
-            }
-            if ((newProps = getIteratorFn(type)))
-              if ((newProps = newProps.call(type))) {
-                defaultProps = newProps.next();
-                if (!defaultProps.done) {
-                  do defaultProps = newProps.next();
-                  while (!defaultProps.done);
-                  renderSuspenseListRows(request, task, keyPath, type, props);
-                }
-                break a;
-              }
-          }
-          "together" === props
-            ? ((props = task.keyPath),
-              (newProps = task.row),
-              (defaultProps = task.row = createSuspenseListRow(null)),
-              (defaultProps.boundaries = []),
-              (defaultProps.together = !0),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              0 === --defaultProps.pendingTasks &&
-                finishSuspenseListRow(request, defaultProps),
-              (task.keyPath = props),
-              (task.row = newProps),
-              null !== newProps &&
-                0 < defaultProps.pendingTasks &&
-                (newProps.pendingTasks++, (defaultProps.next = newProps)))
-            : ((props = task.keyPath),
-              (task.keyPath = keyPath),
-              renderNodeDestructive(request, task, type, -1),
-              (task.keyPath = props));
-        }
-        return;
-      case REACT_VIEW_TRANSITION_TYPE:
-      case REACT_SCOPE_TYPE:
-        throw Error("ReactDOMServer does not yet support scope components.");
-      case REACT_SUSPENSE_TYPE:
-        a: if (null !== task.replay) {
-          type = task.keyPath;
-          newProps = task.formatContext;
-          defaultProps = task.row;
-          task.keyPath = keyPath;
-          task.formatContext = getSuspenseContentFormatContext(
-            request.resumableState,
-            newProps
-          );
-          task.row = null;
-          keyPath = props.children;
-          try {
-            renderNode(request, task, keyPath, -1);
-          } finally {
-            (task.keyPath = type),
-              (task.formatContext = newProps),
-              (task.row = defaultProps);
-          }
-        } else {
-          type = task.keyPath;
-          ref = task.formatContext;
-          var prevRow = task.row;
-          propName$44 = task.blockedBoundary;
-          propName = task.blockedPreamble;
-          var parentHoistableState = task.hoistableState,
-            parentSegment = task.blockedSegment,
-            fallback = props.fallback;
-          props = props.children;
-          var fallbackAbortSet = new Set();
-          var newBoundary =
-            2 > task.formatContext.insertionMode
-              ? createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  createPreambleState(),
-                  createPreambleState()
-                )
-              : createSuspenseBoundary(
-                  request,
-                  task.row,
-                  fallbackAbortSet,
-                  null,
-                  null
-                );
-          null !== request.trackedPostpones &&
-            (newBoundary.trackedContentKeyPath = keyPath);
-          var boundarySegment = createPendingSegment(
-            request,
-            parentSegment.chunks.length,
-            newBoundary,
-            task.formatContext,
-            !1,
-            !1
-          );
-          parentSegment.children.push(boundarySegment);
-          parentSegment.lastPushedText = !1;
-          var contentRootSegment = createPendingSegment(
-            request,
-            0,
-            null,
-            task.formatContext,
-            !1,
-            !1
-          );
-          contentRootSegment.parentFlushed = !0;
-          if (null !== request.trackedPostpones) {
-            newProps = task.componentStack;
-            defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
-            initialState = [defaultProps[1], defaultProps[2], [], null];
-            request.trackedPostpones.workingMap.set(defaultProps, initialState);
-            newBoundary.trackedFallbackNode = initialState;
-            task.blockedSegment = boundarySegment;
-            task.blockedPreamble = newBoundary.fallbackPreamble;
-            task.keyPath = defaultProps;
-            task.formatContext = getSuspenseFallbackFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.componentStack =
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
-            boundarySegment.status = 6;
-            try {
-              renderNode(request, task, fallback, -1),
-                boundarySegment.lastPushedText &&
-                  boundarySegment.textEmbedded &&
-                  boundarySegment.chunks.push(textSeparator),
-                (boundarySegment.status = 1),
-                finishedSegment(request, propName$44, boundarySegment);
-            } catch (thrownValue) {
-              throw (
-                ((boundarySegment.status = 12 === request.status ? 3 : 4),
-                thrownValue)
-              );
-            } finally {
-              (task.blockedSegment = parentSegment),
-                (task.blockedPreamble = propName),
-                (task.keyPath = type),
-                (task.formatContext = ref);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              props,
-              -1,
-              newBoundary,
-              contentRootSegment,
-              newBoundary.contentPreamble,
-              newBoundary.contentState,
-              task.abortSet,
-              keyPath,
-              getSuspenseContentFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              null,
-              newProps
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          } else {
-            task.blockedBoundary = newBoundary;
-            task.blockedPreamble = newBoundary.contentPreamble;
-            task.hoistableState = newBoundary.contentState;
-            task.blockedSegment = contentRootSegment;
-            task.keyPath = keyPath;
-            task.formatContext = getSuspenseContentFormatContext(
-              request.resumableState,
-              ref
-            );
-            task.row = null;
-            contentRootSegment.status = 6;
-            try {
-              if (
-                (renderNode(request, task, props, -1),
-                contentRootSegment.lastPushedText &&
-                  contentRootSegment.textEmbedded &&
-                  contentRootSegment.chunks.push(textSeparator),
-                (contentRootSegment.status = 1),
-                finishedSegment(request, newBoundary, contentRootSegment),
-                queueCompletedSegment(newBoundary, contentRootSegment),
-                0 === newBoundary.pendingTasks && 0 === newBoundary.status)
-              ) {
-                if (
-                  ((newBoundary.status = 1),
-                  !isEligibleForOutlining(request, newBoundary))
-                ) {
-                  null !== prevRow &&
-                    0 === --prevRow.pendingTasks &&
-                    finishSuspenseListRow(request, prevRow);
-                  0 === request.pendingRootTasks &&
-                    task.blockedPreamble &&
-                    preparePreamble(request);
-                  break a;
-                }
-              } else
-                null !== prevRow &&
-                  prevRow.together &&
-                  tryToResolveTogetherRow(request, prevRow);
-            } catch (thrownValue$31) {
-              (newBoundary.status = 4),
-                12 === request.status
-                  ? ((contentRootSegment.status = 3),
-                    (newProps = request.fatalError))
-                  : ((contentRootSegment.status = 4),
-                    (newProps = thrownValue$31)),
-                (defaultProps = getThrownInfo(task.componentStack)),
-                (initialState = logRecoverableError(
-                  request,
-                  newProps,
-                  defaultProps
-                )),
-                (newBoundary.errorDigest = initialState),
-                untrackBoundary(request, newBoundary);
-            } finally {
-              (task.blockedBoundary = propName$44),
-                (task.blockedPreamble = propName),
-                (task.hoistableState = parentHoistableState),
-                (task.blockedSegment = parentSegment),
-                (task.keyPath = type),
-                (task.formatContext = ref),
-                (task.row = prevRow);
-            }
-            task = createRenderTask(
-              request,
-              null,
-              fallback,
-              -1,
-              propName$44,
-              boundarySegment,
-              newBoundary.fallbackPreamble,
-              newBoundary.fallbackState,
-              fallbackAbortSet,
-              [keyPath[0], "Suspense Fallback", keyPath[2]],
-              getSuspenseFallbackFormatContext(
-                request.resumableState,
-                task.formatContext
-              ),
-              task.context,
-              task.treeContext,
-              task.row,
-              replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                task.componentStack
-              )
-            );
-            pushComponentStack(task);
-            request.pingedTasks.push(task);
-          }
-        }
-        return;
-    }
-    if ("object" === typeof type && null !== type)
-      switch (type.$$typeof) {
-        case REACT_FORWARD_REF_TYPE:
-          if ("ref" in props)
-            for (parentSegment in ((newProps = {}), props))
-              "ref" !== parentSegment &&
-                (newProps[parentSegment] = props[parentSegment]);
-          else newProps = props;
-          type = renderWithHooks(
-            request,
-            task,
-            keyPath,
-            type.render,
-            newProps,
-            ref
-          );
-          finishFunctionComponent(
-            request,
-            task,
-            keyPath,
-            type,
-            0 !== localIdCounter,
-            actionStateCounter,
-            actionStateMatchingIndex
-          );
-          return;
-        case REACT_MEMO_TYPE:
-          renderElement(request, task, keyPath, type.type, props, ref);
-          return;
-        case REACT_CONTEXT_TYPE:
-          defaultProps = props.children;
-          newProps = task.keyPath;
-          props = props.value;
-          initialState = type._currentValue;
-          type._currentValue = props;
-          ref = currentActiveSnapshot;
-          currentActiveSnapshot = type = {
-            parent: ref,
-            depth: null === ref ? 0 : ref.depth + 1,
-            context: type,
-            parentValue: initialState,
-            value: props
-          };
-          task.context = type;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, defaultProps, -1);
-          request = currentActiveSnapshot;
-          if (null === request)
-            throw Error(
-              "Tried to pop a Context at the root of the app. This is a bug in React."
-            );
-          request.context._currentValue = request.parentValue;
-          request = currentActiveSnapshot = request.parent;
-          task.context = request;
-          task.keyPath = newProps;
-          return;
-        case REACT_CONSUMER_TYPE:
-          props = props.children;
-          type = props(type._context._currentValue);
-          props = task.keyPath;
-          task.keyPath = keyPath;
-          renderNodeDestructive(request, task, type, -1);
-          task.keyPath = props;
-          return;
-        case REACT_LAZY_TYPE:
-          newProps = type._init;
-          type = newProps(type._payload);
-          if (12 === request.status) throw null;
-          renderElement(request, task, keyPath, type, props, ref);
-          return;
-      }
-    throw Error(
-      "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
-        ((null == type ? type : typeof type) + ".")
-    );
-  }
-}
-function resumeNode(request, task, segmentId, node, childIndex) {
-  var prevReplay = task.replay,
-    blockedBoundary = task.blockedBoundary,
-    resumedSegment = createPendingSegment(
-      request,
-      0,
-      null,
-      task.formatContext,
-      !1,
-      !1
-    );
-  resumedSegment.id = segmentId;
-  resumedSegment.parentFlushed = !0;
-  try {
-    (task.replay = null),
-      (task.blockedSegment = resumedSegment),
-      renderNode(request, task, node, childIndex),
-      (resumedSegment.status = 1),
-      finishedSegment(request, blockedBoundary, resumedSegment),
-      null === blockedBoundary
-        ? (request.completedRootSegment = resumedSegment)
-        : (queueCompletedSegment(blockedBoundary, resumedSegment),
-          blockedBoundary.parentFlushed &&
-            request.partialBoundaries.push(blockedBoundary));
-  } finally {
-    (task.replay = prevReplay), (task.blockedSegment = null);
-  }
-}
-function renderNodeDestructive(request, task, node, childIndex) {
-  null !== task.replay && "number" === typeof task.replay.slots
-    ? resumeNode(request, task, task.replay.slots, node, childIndex)
-    : ((task.node = node),
-      (task.childIndex = childIndex),
-      (node = task.componentStack),
-      pushComponentStack(task),
-      retryNode(request, task),
-      (task.componentStack = node));
-}
-function retryNode(request, task) {
-  var node = task.node,
-    childIndex = task.childIndex;
-  if (null !== node) {
-    if ("object" === typeof node) {
-      switch (node.$$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = node.type,
-            key = node.key,
-            props = node.props;
-          node = props.ref;
-          var ref = void 0 !== node ? node : null,
-            name = getComponentNameFromType(type),
-            keyOrIndex =
-              null == key ? (-1 === childIndex ? 0 : childIndex) : key;
-          key = [task.keyPath, name, keyOrIndex];
-          if (null !== task.replay)
-            a: {
-              var replay = task.replay;
-              childIndex = replay.nodes;
-              for (node = 0; node < childIndex.length; node++) {
-                var node$jscomp$0 = childIndex[node];
-                if (keyOrIndex === node$jscomp$0[1]) {
-                  if (4 === node$jscomp$0.length) {
-                    if (null !== name && name !== node$jscomp$0[0])
-                      throw Error(
-                        "Expected the resume to render <" +
-                          node$jscomp$0[0] +
-                          "> in this slot but instead it rendered <" +
-                          name +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    var childNodes = node$jscomp$0[2];
-                    name = node$jscomp$0[3];
-                    keyOrIndex = task.node;
-                    task.replay = {
-                      nodes: childNodes,
-                      slots: name,
-                      pendingTasks: 1
-                    };
-                    try {
-                      renderElement(request, task, key, type, props, ref);
-                      if (
-                        1 === task.replay.pendingTasks &&
-                        0 < task.replay.nodes.length
-                      )
-                        throw Error(
-                          "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                        );
-                      task.replay.pendingTasks--;
-                    } catch (x) {
-                      if (
-                        "object" === typeof x &&
-                        null !== x &&
-                        (x === SuspenseException ||
-                          "function" === typeof x.then)
-                      )
-                        throw (
-                          (task.node === keyOrIndex
-                            ? (task.replay = replay)
-                            : childIndex.splice(node, 1),
-                          x)
-                        );
-                      task.replay.pendingTasks--;
-                      props = getThrownInfo(task.componentStack);
-                      key = request;
-                      request = task.blockedBoundary;
-                      type = x;
-                      props = logRecoverableError(key, type, props);
-                      abortRemainingReplayNodes(
-                        key,
-                        request,
-                        childNodes,
-                        name,
-                        type,
-                        props
-                      );
-                    }
-                    task.replay = replay;
-                  } else {
-                    if (type !== REACT_SUSPENSE_TYPE)
-                      throw Error(
-                        "Expected the resume to render <Suspense> in this slot but instead it rendered <" +
-                          (getComponentNameFromType(type) || "Unknown") +
-                          ">. The tree doesn't match so React will fallback to client rendering."
-                      );
-                    b: {
-                      replay = void 0;
-                      type = node$jscomp$0[5];
-                      ref = node$jscomp$0[2];
-                      name = node$jscomp$0[3];
-                      keyOrIndex =
-                        null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2];
-                      node$jscomp$0 =
-                        null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
-                      var prevKeyPath = task.keyPath,
-                        prevContext = task.formatContext,
-                        prevRow = task.row,
-                        previousReplaySet = task.replay,
-                        parentBoundary = task.blockedBoundary,
-                        parentHoistableState = task.hoistableState,
-                        content = props.children,
-                        fallback = props.fallback,
-                        fallbackAbortSet = new Set();
-                      props =
-                        2 > task.formatContext.insertionMode
-                          ? createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              createPreambleState(),
-                              createPreambleState()
-                            )
-                          : createSuspenseBoundary(
-                              request,
-                              task.row,
-                              fallbackAbortSet,
-                              null,
-                              null
-                            );
-                      props.parentFlushed = !0;
-                      props.rootSegmentID = type;
-                      task.blockedBoundary = props;
-                      task.hoistableState = props.contentState;
-                      task.keyPath = key;
-                      task.formatContext = getSuspenseContentFormatContext(
-                        request.resumableState,
-                        prevContext
-                      );
-                      task.row = null;
-                      task.replay = {
-                        nodes: ref,
-                        slots: name,
-                        pendingTasks: 1
-                      };
-                      try {
-                        renderNode(request, task, content, -1);
-                        if (
-                          1 === task.replay.pendingTasks &&
-                          0 < task.replay.nodes.length
-                        )
-                          throw Error(
-                            "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                          );
-                        task.replay.pendingTasks--;
-                        if (0 === props.pendingTasks && 0 === props.status) {
-                          props.status = 1;
-                          request.completedBoundaries.push(props);
-                          break b;
-                        }
-                      } catch (error) {
-                        (props.status = 4),
-                          (childNodes = getThrownInfo(task.componentStack)),
-                          (replay = logRecoverableError(
-                            request,
-                            error,
-                            childNodes
-                          )),
-                          (props.errorDigest = replay),
-                          task.replay.pendingTasks--,
-                          request.clientRenderedBoundaries.push(props);
-                      } finally {
-                        (task.blockedBoundary = parentBoundary),
-                          (task.hoistableState = parentHoistableState),
-                          (task.replay = previousReplaySet),
-                          (task.keyPath = prevKeyPath),
-                          (task.formatContext = prevContext),
-                          (task.row = prevRow);
-                      }
-                      childNodes = createReplayTask(
-                        request,
-                        null,
-                        {
-                          nodes: keyOrIndex,
-                          slots: node$jscomp$0,
-                          pendingTasks: 0
-                        },
-                        fallback,
-                        -1,
-                        parentBoundary,
-                        props.fallbackState,
-                        fallbackAbortSet,
-                        [key[0], "Suspense Fallback", key[2]],
-                        getSuspenseFallbackFormatContext(
-                          request.resumableState,
-                          task.formatContext
-                        ),
-                        task.context,
-                        task.treeContext,
-                        task.row,
-                        replaceSuspenseComponentStackWithSuspenseFallbackStack(
-                          task.componentStack
-                        )
-                      );
-                      pushComponentStack(childNodes);
-                      request.pingedTasks.push(childNodes);
-                    }
-                  }
-                  childIndex.splice(node, 1);
-                  break a;
-                }
-              }
-            }
-          else renderElement(request, task, key, type, props, ref);
-          return;
-        case REACT_PORTAL_TYPE:
-          throw Error(
-            "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
-          );
-        case REACT_LAZY_TYPE:
-          childNodes = node._init;
-          node = childNodes(node._payload);
-          if (12 === request.status) throw null;
-          renderNodeDestructive(request, task, node, childIndex);
-          return;
-      }
-      if (isArrayImpl(node)) {
-        renderChildrenArray(request, task, node, childIndex);
-        return;
-      }
-      if ((childNodes = getIteratorFn(node)))
-        if ((childNodes = childNodes.call(node))) {
-          node = childNodes.next();
-          if (!node.done) {
-            props = [];
-            do props.push(node.value), (node = childNodes.next());
-            while (!node.done);
-            renderChildrenArray(request, task, props, childIndex);
-          }
-          return;
-        }
-      if ("function" === typeof node.then)
-        return (
-          (task.thenableState = null),
-          renderNodeDestructive(request, task, unwrapThenable(node), childIndex)
-        );
-      if (node.$$typeof === REACT_CONTEXT_TYPE)
-        return renderNodeDestructive(
-          request,
-          task,
-          node._currentValue,
-          childIndex
-        );
-      childIndex = Object.prototype.toString.call(node);
-      throw Error(
-        "Objects are not valid as a React child (found: " +
-          ("[object Object]" === childIndex
-            ? "object with keys {" + Object.keys(node).join(", ") + "}"
-            : childIndex) +
-          "). If you meant to render a collection of children, use an array instead."
-      );
-    }
-    if ("string" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-    else if ("number" === typeof node || "bigint" === typeof node)
-      (childIndex = task.blockedSegment),
-        null !== childIndex &&
-          (childIndex.lastPushedText = pushTextInstance(
-            childIndex.chunks,
-            "" + node,
-            request.renderState,
-            childIndex.lastPushedText
-          ));
-  }
-}
-function renderChildrenArray(request, task, children, childIndex) {
-  var prevKeyPath = task.keyPath;
-  if (
-    -1 !== childIndex &&
-    ((task.keyPath = [task.keyPath, "Fragment", childIndex]),
-    null !== task.replay)
-  ) {
-    for (
-      var replay = task.replay, replayNodes = replay.nodes, j = 0;
-      j < replayNodes.length;
-      j++
-    ) {
-      var node = replayNodes[j];
-      if (node[1] === childIndex) {
-        childIndex = node[2];
-        node = node[3];
-        task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 };
-        try {
-          renderChildrenArray(request, task, children, -1);
-          if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length)
-            throw Error(
-              "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-            );
-          task.replay.pendingTasks--;
-        } catch (x) {
-          if (
-            "object" === typeof x &&
-            null !== x &&
-            (x === SuspenseException || "function" === typeof x.then)
-          )
-            throw x;
-          task.replay.pendingTasks--;
-          children = getThrownInfo(task.componentStack);
-          var boundary = task.blockedBoundary,
-            error = x;
-          children = logRecoverableError(request, error, children);
-          abortRemainingReplayNodes(
-            request,
-            boundary,
-            childIndex,
-            node,
-            error,
-            children
-          );
-        }
-        task.replay = replay;
-        replayNodes.splice(j, 1);
-        break;
-      }
-    }
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  replay = task.treeContext;
-  replayNodes = children.length;
-  if (
-    null !== task.replay &&
-    ((j = task.replay.slots), null !== j && "object" === typeof j)
-  ) {
-    for (childIndex = 0; childIndex < replayNodes; childIndex++)
-      (node = children[childIndex]),
-        (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)),
-        (boundary = j[childIndex]),
-        "number" === typeof boundary
-          ? (resumeNode(request, task, boundary, node, childIndex),
-            delete j[childIndex])
-          : renderNode(request, task, node, childIndex);
-    task.treeContext = replay;
-    task.keyPath = prevKeyPath;
-    return;
-  }
-  for (j = 0; j < replayNodes; j++)
-    (childIndex = children[j]),
-      (task.treeContext = pushTreeContext(replay, replayNodes, j)),
-      renderNode(request, task, childIndex, j);
-  task.treeContext = replay;
-  task.keyPath = prevKeyPath;
-}
-function trackPostponedBoundary(request, trackedPostpones, boundary) {
-  boundary.status = 5;
-  boundary.rootSegmentID = request.nextSegmentId++;
-  request = boundary.trackedContentKeyPath;
-  if (null === request)
-    throw Error(
-      "It should not be possible to postpone at the root. This is a bug in React."
-    );
-  var fallbackReplayNode = boundary.trackedFallbackNode,
-    children = [],
-    boundaryNode = trackedPostpones.workingMap.get(request);
-  if (void 0 === boundaryNode)
-    return (
-      (boundary = [
-        request[1],
-        request[2],
-        children,
-        null,
-        fallbackReplayNode,
-        boundary.rootSegmentID
-      ]),
-      trackedPostpones.workingMap.set(request, boundary),
-      addToReplayParent(boundary, request[0], trackedPostpones),
-      boundary
-    );
-  boundaryNode[4] = fallbackReplayNode;
-  boundaryNode[5] = boundary.rootSegmentID;
-  return boundaryNode;
-}
-function trackPostpone(request, trackedPostpones, task, segment) {
-  segment.status = 5;
-  var keyPath = task.keyPath,
-    boundary = task.blockedBoundary;
-  if (null === boundary)
-    (segment.id = request.nextSegmentId++),
-      (trackedPostpones.rootSlots = segment.id),
-      null !== request.completedRootSegment &&
-        (request.completedRootSegment.status = 5);
-  else {
-    if (null !== boundary && 0 === boundary.status) {
-      var boundaryNode = trackPostponedBoundary(
-        request,
-        trackedPostpones,
-        boundary
-      );
-      if (
-        boundary.trackedContentKeyPath === keyPath &&
-        -1 === task.childIndex
-      ) {
-        -1 === segment.id &&
-          (segment.id = segment.parentFlushed
-            ? boundary.rootSegmentID
-            : request.nextSegmentId++);
-        boundaryNode[3] = segment.id;
-        return;
-      }
-    }
-    -1 === segment.id &&
-      (segment.id =
-        segment.parentFlushed && null !== boundary
-          ? boundary.rootSegmentID
-          : request.nextSegmentId++);
-    if (-1 === task.childIndex)
-      null === keyPath
-        ? (trackedPostpones.rootSlots = segment.id)
-        : ((task = trackedPostpones.workingMap.get(keyPath)),
-          void 0 === task
-            ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
-              addToReplayParent(task, keyPath[0], trackedPostpones))
-            : (task[3] = segment.id));
-    else {
-      if (null === keyPath)
-        if (((request = trackedPostpones.rootSlots), null === request))
-          request = trackedPostpones.rootSlots = {};
-        else {
-          if ("number" === typeof request)
-            throw Error(
-              "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-            );
-        }
-      else if (
-        ((boundary = trackedPostpones.workingMap),
-        (boundaryNode = boundary.get(keyPath)),
-        void 0 === boundaryNode)
-      )
-        (request = {}),
-          (boundaryNode = [keyPath[1], keyPath[2], [], request]),
-          boundary.set(keyPath, boundaryNode),
-          addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
-      else if (((request = boundaryNode[3]), null === request))
-        request = boundaryNode[3] = {};
-      else if ("number" === typeof request)
-        throw Error(
-          "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
-        );
-      request[task.childIndex] = segment.id;
-    }
-  }
-}
-function untrackBoundary(request, boundary) {
-  request = request.trackedPostpones;
-  null !== request &&
-    ((boundary = boundary.trackedContentKeyPath),
-    null !== boundary &&
-      ((boundary = request.workingMap.get(boundary)),
-      void 0 !== boundary &&
-        ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null))));
-}
-function spawnNewSuspendedReplayTask(request, task, thenableState) {
-  return createReplayTask(
-    request,
-    thenableState,
-    task.replay,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function spawnNewSuspendedRenderTask(request, task, thenableState) {
-  var segment = task.blockedSegment,
-    newSegment = createPendingSegment(
-      request,
-      segment.chunks.length,
-      null,
-      task.formatContext,
-      segment.lastPushedText,
-      !0
-    );
-  segment.children.push(newSegment);
-  segment.lastPushedText = !1;
-  return createRenderTask(
-    request,
-    thenableState,
-    task.node,
-    task.childIndex,
-    task.blockedBoundary,
-    newSegment,
-    task.blockedPreamble,
-    task.hoistableState,
-    task.abortSet,
-    task.keyPath,
-    task.formatContext,
-    task.context,
-    task.treeContext,
-    task.row,
-    task.componentStack
-  );
-}
-function renderNode(request, task, node, childIndex) {
-  var previousFormatContext = task.formatContext,
-    previousContext = task.context,
-    previousKeyPath = task.keyPath,
-    previousTreeContext = task.treeContext,
-    previousComponentStack = task.componentStack,
-    segment = task.blockedSegment;
-  if (null === segment) {
-    segment = task.replay;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue) {
-      if (
-        (resetHooksState(),
-        (node =
-          thrownValue === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          childIndex =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
-          node.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          node =
-            thrownValue === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          node = spawnNewSuspendedReplayTask(request, task, node);
-          request.pingedTasks.push(node);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          task.replay = segment;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  } else {
-    var childrenLength = segment.children.length,
-      chunkLength = segment.chunks.length;
-    try {
-      return renderNodeDestructive(request, task, node, childIndex);
-    } catch (thrownValue$63) {
-      if (
-        (resetHooksState(),
-        (segment.children.length = childrenLength),
-        (segment.chunks.length = chunkLength),
-        (node =
-          thrownValue$63 === SuspenseException
-            ? getSuspendedThenable()
-            : thrownValue$63),
-        12 !== request.status && "object" === typeof node && null !== node)
-      ) {
-        if ("function" === typeof node.then) {
-          segment = node;
-          node =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          request = spawnNewSuspendedRenderTask(request, task, node).ping;
-          segment.then(request, request);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-        if ("Maximum call stack size exceeded" === node.message) {
-          segment =
-            thrownValue$63 === SuspenseException
-              ? getThenableStateAfterSuspending()
-              : null;
-          segment = spawnNewSuspendedRenderTask(request, task, segment);
-          request.pingedTasks.push(segment);
-          task.formatContext = previousFormatContext;
-          task.context = previousContext;
-          task.keyPath = previousKeyPath;
-          task.treeContext = previousTreeContext;
-          task.componentStack = previousComponentStack;
-          switchContext(previousContext);
-          return;
-        }
-      }
-    }
-  }
-  task.formatContext = previousFormatContext;
-  task.context = previousContext;
-  task.keyPath = previousKeyPath;
-  task.treeContext = previousTreeContext;
-  switchContext(previousContext);
-  throw node;
-}
-function abortTaskSoft(task) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  null !== segment &&
-    ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
-}
-function abortRemainingReplayNodes(
-  request$jscomp$0,
-  boundary,
-  nodes,
-  slots,
-  error,
-  errorDigest$jscomp$0
-) {
-  for (var i = 0; i < nodes.length; i++) {
-    var node = nodes[i];
-    if (4 === node.length)
-      abortRemainingReplayNodes(
-        request$jscomp$0,
-        boundary,
-        node[2],
-        node[3],
-        error,
-        errorDigest$jscomp$0
-      );
-    else {
-      node = node[5];
-      var request = request$jscomp$0,
-        errorDigest = errorDigest$jscomp$0,
-        resumedBoundary = createSuspenseBoundary(
-          request,
-          null,
-          new Set(),
-          null,
-          null
-        );
-      resumedBoundary.parentFlushed = !0;
-      resumedBoundary.rootSegmentID = node;
-      resumedBoundary.status = 4;
-      resumedBoundary.errorDigest = errorDigest;
-      resumedBoundary.parentFlushed &&
-        request.clientRenderedBoundaries.push(resumedBoundary);
-    }
-  }
-  nodes.length = 0;
-  if (null !== slots) {
-    if (null === boundary)
-      throw Error(
-        "We should not have any resumable nodes in the shell. This is a bug in React."
-      );
-    4 !== boundary.status &&
-      ((boundary.status = 4),
-      (boundary.errorDigest = errorDigest$jscomp$0),
-      boundary.parentFlushed &&
-        request$jscomp$0.clientRenderedBoundaries.push(boundary));
-    if ("object" === typeof slots) for (var index in slots) delete slots[index];
-  }
-}
-function abortTask(task, request, error) {
-  var boundary = task.blockedBoundary,
-    segment = task.blockedSegment;
-  if (null !== segment) {
-    if (6 === segment.status) return;
-    segment.status = 3;
-  }
-  var errorInfo = getThrownInfo(task.componentStack);
-  if (null === boundary) {
-    if (13 !== request.status && 14 !== request.status) {
-      boundary = task.replay;
-      if (null === boundary) {
-        null !== request.trackedPostpones && null !== segment
-          ? ((boundary = request.trackedPostpones),
-            logRecoverableError(request, error, errorInfo),
-            trackPostpone(request, boundary, task, segment),
-            finishedTask(request, null, task.row, segment))
-          : (logRecoverableError(request, error, errorInfo),
-            fatalError(request, error));
-        return;
-      }
-      boundary.pendingTasks--;
-      0 === boundary.pendingTasks &&
-        0 < boundary.nodes.length &&
-        ((segment = logRecoverableError(request, error, errorInfo)),
-        abortRemainingReplayNodes(
-          request,
-          null,
-          boundary.nodes,
-          boundary.slots,
-          error,
-          segment
-        ));
-      request.pendingRootTasks--;
-      0 === request.pendingRootTasks && completeShell(request);
-    }
-  } else {
-    var trackedPostpones$64 = request.trackedPostpones;
-    if (4 !== boundary.status) {
-      if (null !== trackedPostpones$64 && null !== segment)
-        return (
-          logRecoverableError(request, error, errorInfo),
-          trackPostpone(request, trackedPostpones$64, task, segment),
-          boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-            return abortTask(fallbackTask, request, error);
-          }),
-          boundary.fallbackAbortableTasks.clear(),
-          finishedTask(request, boundary, task.row, segment)
-        );
-      boundary.status = 4;
-      segment = logRecoverableError(request, error, errorInfo);
-      boundary.status = 4;
-      boundary.errorDigest = segment;
-      untrackBoundary(request, boundary);
-      boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
-    }
-    boundary.pendingTasks--;
-    segment = boundary.row;
-    null !== segment &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
-      return abortTask(fallbackTask, request, error);
-    });
-    boundary.fallbackAbortableTasks.clear();
-  }
-  task = task.row;
-  null !== task &&
-    0 === --task.pendingTasks &&
-    finishSuspenseListRow(request, task);
-  request.allPendingTasks--;
-  0 === request.allPendingTasks && completeAll(request);
-}
-function safelyEmitEarlyPreloads(request, shellComplete) {
-  try {
-    var renderState = request.renderState,
-      onHeaders = renderState.onHeaders;
-    if (onHeaders) {
-      var headers = renderState.headers;
-      if (headers) {
-        renderState.headers = null;
-        var linkHeader = headers.preconnects;
-        headers.fontPreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.fontPreloads));
-        headers.highImagePreloads &&
-          (linkHeader && (linkHeader += ", "),
-          (linkHeader += headers.highImagePreloads));
-        if (!shellComplete) {
-          var queueIter = renderState.styles.values(),
-            queueStep = queueIter.next();
-          b: for (
-            ;
-            0 < headers.remainingCapacity && !queueStep.done;
-            queueStep = queueIter.next()
-          )
-            for (
-              var sheetIter = queueStep.value.sheets.values(),
-                sheetStep = sheetIter.next();
-              0 < headers.remainingCapacity && !sheetStep.done;
-              sheetStep = sheetIter.next()
-            ) {
-              var sheet = sheetStep.value,
-                props = sheet.props,
-                key = props.href,
-                props$jscomp$0 = sheet.props,
-                header = getPreloadAsHeader(props$jscomp$0.href, "style", {
-                  crossOrigin: props$jscomp$0.crossOrigin,
-                  integrity: props$jscomp$0.integrity,
-                  nonce: props$jscomp$0.nonce,
-                  type: props$jscomp$0.type,
-                  fetchPriority: props$jscomp$0.fetchPriority,
-                  referrerPolicy: props$jscomp$0.referrerPolicy,
-                  media: props$jscomp$0.media
-                });
-              if (0 <= (headers.remainingCapacity -= header.length + 2))
-                (renderState.resets.style[key] = PRELOAD_NO_CREDS),
-                  linkHeader && (linkHeader += ", "),
-                  (linkHeader += header),
-                  (renderState.resets.style[key] =
-                    "string" === typeof props.crossOrigin ||
-                    "string" === typeof props.integrity
-                      ? [props.crossOrigin, props.integrity]
-                      : PRELOAD_NO_CREDS);
-              else break b;
-            }
-        }
-        linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({});
-      }
-    }
-  } catch (error) {
-    logRecoverableError(request, error, {});
-  }
-}
-function completeShell(request) {
-  null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0);
-  null === request.trackedPostpones && preparePreamble(request);
-  request.onShellError = noop;
-  request = request.onShellReady;
-  request();
-}
-function completeAll(request) {
-  safelyEmitEarlyPreloads(
-    request,
-    null === request.trackedPostpones
-      ? !0
-      : null === request.completedRootSegment ||
-          5 !== request.completedRootSegment.status
-  );
-  preparePreamble(request);
-  request = request.onAllReady;
-  request();
-}
-function queueCompletedSegment(boundary, segment) {
-  if (
-    0 === segment.chunks.length &&
-    1 === segment.children.length &&
-    null === segment.children[0].boundary &&
-    -1 === segment.children[0].id
-  ) {
-    var childSegment = segment.children[0];
-    childSegment.id = segment.id;
-    childSegment.parentFlushed = !0;
-    (1 !== childSegment.status &&
-      3 !== childSegment.status &&
-      4 !== childSegment.status) ||
-      queueCompletedSegment(boundary, childSegment);
-  } else boundary.completedSegments.push(segment);
-}
-function finishedSegment(request, boundary, segment) {
-  if (null !== byteLengthOfChunk) {
-    segment = segment.chunks;
-    for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
-      segmentByteSize += byteLengthOfChunk(segment[i]);
-    null === boundary
-      ? (request.byteSize += segmentByteSize)
-      : (boundary.byteSize += segmentByteSize);
-  }
-}
-function finishedTask(request, boundary, row, segment) {
-  null !== row &&
-    (0 === --row.pendingTasks
-      ? finishSuspenseListRow(request, row)
-      : row.together && tryToResolveTogetherRow(request, row));
-  request.allPendingTasks--;
-  if (null === boundary) {
-    if (null !== segment && segment.parentFlushed) {
-      if (null !== request.completedRootSegment)
-        throw Error(
-          "There can only be one root segment. This is a bug in React."
-        );
-      request.completedRootSegment = segment;
-    }
-    request.pendingRootTasks--;
-    0 === request.pendingRootTasks && completeShell(request);
-  } else if ((boundary.pendingTasks--, 4 !== boundary.status))
-    if (0 === boundary.pendingTasks)
-      if (
-        (0 === boundary.status && (boundary.status = 1),
-        null !== segment &&
-          segment.parentFlushed &&
-          (1 === segment.status || 3 === segment.status) &&
-          queueCompletedSegment(boundary, segment),
-        boundary.parentFlushed && request.completedBoundaries.push(boundary),
-        1 === boundary.status)
-      )
-        (row = boundary.row),
-          null !== row &&
-            hoistHoistables(row.hoistables, boundary.contentState),
-          isEligibleForOutlining(request, boundary) ||
-            (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
-            boundary.fallbackAbortableTasks.clear(),
-            null !== row &&
-              0 === --row.pendingTasks &&
-              finishSuspenseListRow(request, row)),
-          0 === request.pendingRootTasks &&
-            null === request.trackedPostpones &&
-            null !== boundary.contentPreamble &&
-            preparePreamble(request);
-      else {
-        if (
-          5 === boundary.status &&
-          ((boundary = boundary.row), null !== boundary)
-        ) {
-          if (null !== request.trackedPostpones) {
-            row = request.trackedPostpones;
-            var postponedRow = boundary.next;
-            if (
-              null !== postponedRow &&
-              ((segment = postponedRow.boundaries), null !== segment)
-            )
-              for (
-                postponedRow.boundaries = null, postponedRow = 0;
-                postponedRow < segment.length;
-                postponedRow++
-              ) {
-                var postponedBoundary = segment[postponedRow];
-                trackPostponedBoundary(request, row, postponedBoundary);
-                finishedTask(request, postponedBoundary, null, null);
-              }
-          }
-          0 === --boundary.pendingTasks &&
-            finishSuspenseListRow(request, boundary);
-        }
-      }
-    else
-      null === segment ||
-        !segment.parentFlushed ||
-        (1 !== segment.status && 3 !== segment.status) ||
-        (queueCompletedSegment(boundary, segment),
-        1 === boundary.completedSegments.length &&
-          boundary.parentFlushed &&
-          request.partialBoundaries.push(boundary)),
-        (boundary = boundary.row),
-        null !== boundary &&
-          boundary.together &&
-          tryToResolveTogetherRow(request, boundary);
-  0 === request.allPendingTasks && completeAll(request);
-}
-function performWork(request$jscomp$2) {
-  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
-    var prevContext = currentActiveSnapshot,
-      prevDispatcher = ReactSharedInternals.H;
-    ReactSharedInternals.H = HooksDispatcher;
-    var prevAsyncDispatcher = ReactSharedInternals.A;
-    ReactSharedInternals.A = DefaultAsyncDispatcher;
-    var prevRequest = currentRequest;
-    currentRequest = request$jscomp$2;
-    var prevResumableState = currentResumableState;
-    currentResumableState = request$jscomp$2.resumableState;
-    try {
-      var pingedTasks = request$jscomp$2.pingedTasks,
-        i;
-      for (i = 0; i < pingedTasks.length; i++) {
-        var task = pingedTasks[i],
-          request = request$jscomp$2,
-          segment = task.blockedSegment;
-        if (null === segment) {
-          var request$jscomp$0 = request;
-          if (0 !== task.replay.pendingTasks) {
-            switchContext(task.context);
-            try {
-              "number" === typeof task.replay.slots
-                ? resumeNode(
-                    request$jscomp$0,
-                    task,
-                    task.replay.slots,
-                    task.node,
-                    task.childIndex
-                  )
-                : retryNode(request$jscomp$0, task);
-              if (
-                1 === task.replay.pendingTasks &&
-                0 < task.replay.nodes.length
-              )
-                throw Error(
-                  "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering."
-                );
-              task.replay.pendingTasks--;
-              task.abortSet.delete(task);
-              finishedTask(
-                request$jscomp$0,
-                task.blockedBoundary,
-                task.row,
-                null
-              );
-            } catch (thrownValue) {
-              resetHooksState();
-              var x =
-                thrownValue === SuspenseException
-                  ? getSuspendedThenable()
-                  : thrownValue;
-              if (
-                "object" === typeof x &&
-                null !== x &&
-                "function" === typeof x.then
-              ) {
-                var ping = task.ping;
-                x.then(ping, ping);
-                task.thenableState =
-                  thrownValue === SuspenseException
-                    ? getThenableStateAfterSuspending()
-                    : null;
-              } else {
-                task.replay.pendingTasks--;
-                task.abortSet.delete(task);
-                var errorInfo = getThrownInfo(task.componentStack);
-                request = void 0;
-                var request$jscomp$1 = request$jscomp$0,
-                  boundary = task.blockedBoundary,
-                  error$jscomp$0 =
-                    12 === request$jscomp$0.status
-                      ? request$jscomp$0.fatalError
-                      : x,
-                  replayNodes = task.replay.nodes,
-                  resumeSlots = task.replay.slots;
-                request = logRecoverableError(
-                  request$jscomp$1,
-                  error$jscomp$0,
-                  errorInfo
-                );
-                abortRemainingReplayNodes(
-                  request$jscomp$1,
-                  boundary,
-                  replayNodes,
-                  resumeSlots,
-                  error$jscomp$0,
-                  request
-                );
-                request$jscomp$0.pendingRootTasks--;
-                0 === request$jscomp$0.pendingRootTasks &&
-                  completeShell(request$jscomp$0);
-                request$jscomp$0.allPendingTasks--;
-                0 === request$jscomp$0.allPendingTasks &&
-                  completeAll(request$jscomp$0);
-              }
-            } finally {
-            }
-          }
-        } else if (
-          ((request$jscomp$0 = void 0),
-          (request$jscomp$1 = segment),
-          0 === request$jscomp$1.status)
-        ) {
-          request$jscomp$1.status = 6;
-          switchContext(task.context);
-          var childrenLength = request$jscomp$1.children.length,
-            chunkLength = request$jscomp$1.chunks.length;
-          try {
-            retryNode(request, task),
-              request$jscomp$1.lastPushedText &&
-                request$jscomp$1.textEmbedded &&
-                request$jscomp$1.chunks.push(textSeparator),
-              task.abortSet.delete(task),
-              (request$jscomp$1.status = 1),
-              finishedSegment(request, task.blockedBoundary, request$jscomp$1),
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-          } catch (thrownValue) {
-            resetHooksState();
-            request$jscomp$1.children.length = childrenLength;
-            request$jscomp$1.chunks.length = chunkLength;
-            var x$jscomp$0 =
-              thrownValue === SuspenseException
-                ? getSuspendedThenable()
-                : 12 === request.status
-                  ? request.fatalError
-                  : thrownValue;
-            if (12 === request.status && null !== request.trackedPostpones) {
-              var trackedPostpones = request.trackedPostpones,
-                thrownInfo = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              logRecoverableError(request, x$jscomp$0, thrownInfo);
-              trackPostpone(request, trackedPostpones, task, request$jscomp$1);
-              finishedTask(
-                request,
-                task.blockedBoundary,
-                task.row,
-                request$jscomp$1
-              );
-            } else if (
-              "object" === typeof x$jscomp$0 &&
-              null !== x$jscomp$0 &&
-              "function" === typeof x$jscomp$0.then
-            ) {
-              request$jscomp$1.status = 0;
-              task.thenableState =
-                thrownValue === SuspenseException
-                  ? getThenableStateAfterSuspending()
-                  : null;
-              var ping$jscomp$0 = task.ping;
-              x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
-            } else {
-              var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
-              task.abortSet.delete(task);
-              request$jscomp$1.status = 4;
-              var boundary$jscomp$0 = task.blockedBoundary,
-                row = task.row;
-              null !== row &&
-                0 === --row.pendingTasks &&
-                finishSuspenseListRow(request, row);
-              request.allPendingTasks--;
-              request$jscomp$0 = logRecoverableError(
-                request,
-                x$jscomp$0,
-                errorInfo$jscomp$0
-              );
-              if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
-              else if (
-                (boundary$jscomp$0.pendingTasks--,
-                4 !== boundary$jscomp$0.status)
-              ) {
-                boundary$jscomp$0.status = 4;
-                boundary$jscomp$0.errorDigest = request$jscomp$0;
-                untrackBoundary(request, boundary$jscomp$0);
-                var boundaryRow = boundary$jscomp$0.row;
-                null !== boundaryRow &&
-                  0 === --boundaryRow.pendingTasks &&
-                  finishSuspenseListRow(request, boundaryRow);
-                boundary$jscomp$0.parentFlushed &&
-                  request.clientRenderedBoundaries.push(boundary$jscomp$0);
-                0 === request.pendingRootTasks &&
-                  null === request.trackedPostpones &&
-                  null !== boundary$jscomp$0.contentPreamble &&
-                  preparePreamble(request);
-              }
-              0 === request.allPendingTasks && completeAll(request);
-            }
-          } finally {
-          }
-        }
-      }
-      pingedTasks.splice(0, i);
-      null !== request$jscomp$2.destination &&
-        flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination);
-    } catch (error) {
-      logRecoverableError(request$jscomp$2, error, {}),
-        fatalError(request$jscomp$2, error);
-    } finally {
-      (currentResumableState = prevResumableState),
-        (ReactSharedInternals.H = prevDispatcher),
-        (ReactSharedInternals.A = prevAsyncDispatcher),
-        prevDispatcher === HooksDispatcher && switchContext(prevContext),
-        (currentRequest = prevRequest);
-    }
-  }
-}
-function preparePreambleFromSubtree(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  segment.preambleChildren.length &&
-    collectedPreambleSegments.push(segment.preambleChildren);
-  for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++)
-    pendingPreambles =
-      preparePreambleFromSegment(
-        request,
-        segment.children[i],
-        collectedPreambleSegments
-      ) || pendingPreambles;
-  return pendingPreambles;
-}
-function preparePreambleFromSegment(
-  request,
-  segment,
-  collectedPreambleSegments
-) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return preparePreambleFromSubtree(
-      request,
-      segment,
-      collectedPreambleSegments
-    );
-  var preamble = boundary.contentPreamble,
-    fallbackPreamble = boundary.fallbackPreamble;
-  if (null === preamble || null === fallbackPreamble) return !1;
-  switch (boundary.status) {
-    case 1:
-      hoistPreambleState(request.renderState, preamble);
-      request.byteSize += boundary.byteSize;
-      segment = boundary.completedSegments[0];
-      if (!segment)
-        throw Error(
-          "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-        );
-      return preparePreambleFromSubtree(
-        request,
-        segment,
-        collectedPreambleSegments
-      );
-    case 5:
-      if (null !== request.trackedPostpones) return !0;
-    case 4:
-      if (1 === segment.status)
-        return (
-          hoistPreambleState(request.renderState, fallbackPreamble),
-          preparePreambleFromSubtree(
-            request,
-            segment,
-            collectedPreambleSegments
-          )
-        );
-    default:
-      return !0;
-  }
-}
-function preparePreamble(request) {
-  if (
-    request.completedRootSegment &&
-    null === request.completedPreambleSegments
-  ) {
-    var collectedPreambleSegments = [],
-      originalRequestByteSize = request.byteSize,
-      hasPendingPreambles = preparePreambleFromSegment(
-        request,
-        request.completedRootSegment,
-        collectedPreambleSegments
-      ),
-      preamble = request.renderState.preamble;
-    !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
-      ? (request.completedPreambleSegments = collectedPreambleSegments)
-      : (request.byteSize = originalRequestByteSize);
-  }
-}
-function flushSubtree(request, destination, segment, hoistableState) {
-  segment.parentFlushed = !0;
-  switch (segment.status) {
-    case 0:
-      segment.id = request.nextSegmentId++;
-    case 5:
-      return (
-        (hoistableState = segment.id),
-        (segment.lastPushedText = !1),
-        (segment.textEmbedded = !1),
-        (request = request.renderState),
-        writeChunk(destination, placeholder1),
-        writeChunk(destination, request.placeholderPrefix),
-        (request = hoistableState.toString(16)),
-        writeChunk(destination, request),
-        writeChunkAndReturn(destination, placeholder2)
-      );
-    case 1:
-      segment.status = 2;
-      var r = !0,
-        chunks = segment.chunks,
-        chunkIdx = 0;
-      segment = segment.children;
-      for (var childIdx = 0; childIdx < segment.length; childIdx++) {
-        for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++)
-          writeChunk(destination, chunks[chunkIdx]);
-        r = flushSegment(request, destination, r, hoistableState);
-      }
-      for (; chunkIdx < chunks.length - 1; chunkIdx++)
-        writeChunk(destination, chunks[chunkIdx]);
-      chunkIdx < chunks.length &&
-        (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
-      return r;
-    case 3:
-      return !0;
-    default:
-      throw Error(
-        "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
-      );
-  }
-}
-var flushedByteSize = 0;
-function flushSegment(request, destination, segment, hoistableState) {
-  var boundary = segment.boundary;
-  if (null === boundary)
-    return flushSubtree(request, destination, segment, hoistableState);
-  boundary.parentFlushed = !0;
-  if (4 === boundary.status) {
-    var row = boundary.row;
-    null !== row &&
-      0 === --row.pendingTasks &&
-      finishSuspenseListRow(request, row);
-    boundary = boundary.errorDigest;
-    writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
-    writeChunk(destination, clientRenderedSuspenseBoundaryError1);
-    boundary &&
-      (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
-      writeChunk(destination, escapeTextForBrowser(boundary)),
-      writeChunk(
-        destination,
-        clientRenderedSuspenseBoundaryErrorAttrInterstitial
-      ));
-    writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
-    flushSubtree(request, destination, segment, hoistableState);
-  } else if (1 !== boundary.status)
-    0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
-      0 < boundary.completedSegments.length &&
-        request.partialBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
-      flushSubtree(request, destination, segment, hoistableState);
-  else if (
-    !flushingPartialBoundaries &&
-    isEligibleForOutlining(request, boundary) &&
-    (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
-      hasSuspenseyContent(boundary.contentState))
-  )
-    (boundary.rootSegmentID = request.nextSegmentId++),
-      request.completedBoundaries.push(boundary),
-      writeStartPendingSuspenseBoundary(
-        destination,
-        request.renderState,
-        boundary.rootSegmentID
-      ),
-      flushSubtree(request, destination, segment, hoistableState);
-  else {
-    flushedByteSize += boundary.byteSize;
-    hoistableState && hoistHoistables(hoistableState, boundary.contentState);
-    segment = boundary.row;
-    null !== segment &&
-      isEligibleForOutlining(request, boundary) &&
-      0 === --segment.pendingTasks &&
-      finishSuspenseListRow(request, segment);
-    writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
-    segment = boundary.completedSegments;
-    if (1 !== segment.length)
-      throw Error(
-        "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
-      );
-    flushSegment(request, destination, segment[0], hoistableState);
-  }
-  return writeChunkAndReturn(destination, endSuspenseBoundary);
-}
-function flushSegmentContainer(request, destination, segment, hoistableState) {
-  writeStartSegment(
-    destination,
-    request.renderState,
-    segment.parentFormatContext,
-    segment.id
-  );
-  flushSegment(request, destination, segment, hoistableState);
-  return writeEndSegment(destination, segment.parentFormatContext);
-}
-function flushCompletedBoundary(request, destination, boundary) {
-  flushedByteSize = boundary.byteSize;
-  for (
-    var completedSegments = boundary.completedSegments, i = 0;
-    i < completedSegments.length;
-    i++
-  )
-    flushPartiallyCompletedSegment(
-      request,
-      destination,
-      boundary,
-      completedSegments[i]
-    );
-  completedSegments.length = 0;
-  completedSegments = boundary.row;
-  null !== completedSegments &&
-    isEligibleForOutlining(request, boundary) &&
-    0 === --completedSegments.pendingTasks &&
-    finishSuspenseListRow(request, completedSegments);
-  writeHoistablesForBoundary(
-    destination,
-    boundary.contentState,
-    request.renderState
-  );
-  completedSegments = request.resumableState;
-  request = request.renderState;
-  i = boundary.rootSegmentID;
-  boundary = boundary.contentState;
-  var requiresStyleInsertion = request.stylesToHoist;
-  request.stylesToHoist = !1;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  requiresStyleInsertion
-    ? (0 === (completedSegments.instructions & 4) &&
-        ((completedSegments.instructions |= 4),
-        writeChunk(destination, clientRenderScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      0 === (completedSegments.instructions & 8)
-        ? ((completedSegments.instructions |= 8),
-          writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
-        : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
-    : (0 === (completedSegments.instructions & 2) &&
-        ((completedSegments.instructions |= 2),
-        writeChunk(destination, completeBoundaryScriptFunctionOnly)),
-      writeChunk(destination, completeBoundaryScript1Partial));
-  completedSegments = i.toString(16);
-  writeChunk(destination, request.boundaryPrefix);
-  writeChunk(destination, completedSegments);
-  writeChunk(destination, completeBoundaryScript2);
-  writeChunk(destination, request.segmentPrefix);
-  writeChunk(destination, completedSegments);
-  requiresStyleInsertion
-    ? (writeChunk(destination, completeBoundaryScript3a),
-      writeStyleResourceDependenciesInJS(destination, boundary))
-    : writeChunk(destination, completeBoundaryScript3b);
-  boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd);
-  return writeBootstrap(destination, request) && boundary;
-}
-function flushPartiallyCompletedSegment(
-  request,
-  destination,
-  boundary,
-  segment
-) {
-  if (2 === segment.status) return !0;
-  var hoistableState = boundary.contentState,
-    segmentID = segment.id;
-  if (-1 === segmentID) {
-    if (-1 === (segment.id = boundary.rootSegmentID))
-      throw Error(
-        "A root segment ID must have been assigned by now. This is a bug in React."
-      );
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  }
-  if (segmentID === boundary.rootSegmentID)
-    return flushSegmentContainer(request, destination, segment, hoistableState);
-  flushSegmentContainer(request, destination, segment, hoistableState);
-  boundary = request.resumableState;
-  request = request.renderState;
-  writeChunk(destination, request.startInlineScript);
-  writeChunk(destination, endOfStartTag);
-  0 === (boundary.instructions & 1)
-    ? ((boundary.instructions |= 1),
-      writeChunk(destination, completeSegmentScript1Full))
-    : writeChunk(destination, completeSegmentScript1Partial);
-  writeChunk(destination, request.segmentPrefix);
-  segmentID = segmentID.toString(16);
-  writeChunk(destination, segmentID);
-  writeChunk(destination, completeSegmentScript2);
-  writeChunk(destination, request.placeholderPrefix);
-  writeChunk(destination, segmentID);
-  destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
-  return destination;
-}
-var flushingPartialBoundaries = !1;
-function flushCompletedQueues(request, destination) {
-  currentView = new Uint8Array(2048);
-  writtenBytes = 0;
-  destinationHasCapacity$1 = !0;
-  try {
-    if (!(0 < request.pendingRootTasks)) {
-      var i,
-        completedRootSegment = request.completedRootSegment;
-      if (null !== completedRootSegment) {
-        if (5 === completedRootSegment.status) return;
-        var completedPreambleSegments = request.completedPreambleSegments;
-        if (null === completedPreambleSegments) return;
-        flushedByteSize = request.byteSize;
-        var resumableState = request.resumableState,
-          renderState = request.renderState,
-          preamble = renderState.preamble,
-          htmlChunks = preamble.htmlChunks,
-          headChunks = preamble.headChunks,
-          i$jscomp$0;
-        if (htmlChunks) {
-          for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++)
-            writeChunk(destination, htmlChunks[i$jscomp$0]);
-          if (headChunks)
-            for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-              writeChunk(destination, headChunks[i$jscomp$0]);
-          else
-            writeChunk(destination, startChunkForTag("head")),
-              writeChunk(destination, endOfStartTag);
-        } else if (headChunks)
-          for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++)
-            writeChunk(destination, headChunks[i$jscomp$0]);
-        var charsetChunks = renderState.charsetChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++)
-          writeChunk(destination, charsetChunks[i$jscomp$0]);
-        charsetChunks.length = 0;
-        renderState.preconnects.forEach(flushResource, destination);
-        renderState.preconnects.clear();
-        var viewportChunks = renderState.viewportChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++)
-          writeChunk(destination, viewportChunks[i$jscomp$0]);
-        viewportChunks.length = 0;
-        renderState.fontPreloads.forEach(flushResource, destination);
-        renderState.fontPreloads.clear();
-        renderState.highImagePreloads.forEach(flushResource, destination);
-        renderState.highImagePreloads.clear();
-        currentlyFlushingRenderState = renderState;
-        renderState.styles.forEach(flushStylesInPreamble, destination);
-        currentlyFlushingRenderState = null;
-        var importMapChunks = renderState.importMapChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
-          writeChunk(destination, importMapChunks[i$jscomp$0]);
-        importMapChunks.length = 0;
-        renderState.bootstrapScripts.forEach(flushResource, destination);
-        renderState.scripts.forEach(flushResource, destination);
-        renderState.scripts.clear();
-        renderState.bulkPreloads.forEach(flushResource, destination);
-        renderState.bulkPreloads.clear();
-        htmlChunks || headChunks || (resumableState.instructions |= 32);
-        var hoistableChunks = renderState.hoistableChunks;
-        for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
-          writeChunk(destination, hoistableChunks[i$jscomp$0]);
-        for (
-          resumableState = hoistableChunks.length = 0;
-          resumableState < completedPreambleSegments.length;
-          resumableState++
-        ) {
-          var segments = completedPreambleSegments[resumableState];
-          for (renderState = 0; renderState < segments.length; renderState++)
-            flushSegment(request, destination, segments[renderState], null);
-        }
-        var preamble$jscomp$0 = request.renderState.preamble,
-          headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
-        (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) &&
-          writeChunk(destination, endChunkForTag("head"));
-        var bodyChunks = preamble$jscomp$0.bodyChunks;
-        if (bodyChunks)
-          for (
-            completedPreambleSegments = 0;
-            completedPreambleSegments < bodyChunks.length;
-            completedPreambleSegments++
-          )
-            writeChunk(destination, bodyChunks[completedPreambleSegments]);
-        flushSegment(request, destination, completedRootSegment, null);
-        request.completedRootSegment = null;
-        var renderState$jscomp$0 = request.renderState;
-        if (
-          0 !== request.allPendingTasks ||
-          0 !== request.clientRenderedBoundaries.length ||
-          0 !== request.completedBoundaries.length ||
-          (null !== request.trackedPostpones &&
-            (0 !== request.trackedPostpones.rootNodes.length ||
-              null !== request.trackedPostpones.rootSlots))
-        ) {
-          var resumableState$jscomp$0 = request.resumableState;
-          if (0 === (resumableState$jscomp$0.instructions & 64)) {
-            resumableState$jscomp$0.instructions |= 64;
-            writeChunk(destination, renderState$jscomp$0.startInlineScript);
-            if (0 === (resumableState$jscomp$0.instructions & 32)) {
-              resumableState$jscomp$0.instructions |= 32;
-              var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
-              writeChunk(destination, completedShellIdAttributeStart);
-              writeChunk(destination, escapeTextForBrowser(shellId));
-              writeChunk(destination, attributeEnd);
-            }
-            writeChunk(destination, endOfStartTag);
-            writeChunk(destination, shellTimeRuntimeScript);
-            writeChunkAndReturn(destination, endInlineScript);
-          }
-        }
-        writeBootstrap(destination, renderState$jscomp$0);
-      }
-      var renderState$jscomp$1 = request.renderState;
-      completedRootSegment = 0;
-      var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < viewportChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
-      viewportChunks$jscomp$0.length = 0;
-      renderState$jscomp$1.preconnects.forEach(flushResource, destination);
-      renderState$jscomp$1.preconnects.clear();
-      renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.fontPreloads.clear();
-      renderState$jscomp$1.highImagePreloads.forEach(
-        flushResource,
-        destination
-      );
-      renderState$jscomp$1.highImagePreloads.clear();
-      renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
-      renderState$jscomp$1.scripts.forEach(flushResource, destination);
-      renderState$jscomp$1.scripts.clear();
-      renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
-      renderState$jscomp$1.bulkPreloads.clear();
-      var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
-      for (
-        completedRootSegment = 0;
-        completedRootSegment < hoistableChunks$jscomp$0.length;
-        completedRootSegment++
-      )
-        writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]);
-      hoistableChunks$jscomp$0.length = 0;
-      var clientRenderedBoundaries = request.clientRenderedBoundaries;
-      for (i = 0; i < clientRenderedBoundaries.length; i++) {
-        var boundary = clientRenderedBoundaries[i];
-        renderState$jscomp$1 = destination;
-        var resumableState$jscomp$1 = request.resumableState,
-          renderState$jscomp$2 = request.renderState,
-          id = boundary.rootSegmentID,
-          errorDigest = boundary.errorDigest;
-        writeChunk(
-          renderState$jscomp$1,
-          renderState$jscomp$2.startInlineScript
-        );
-        writeChunk(renderState$jscomp$1, endOfStartTag);
-        0 === (resumableState$jscomp$1.instructions & 4)
-          ? ((resumableState$jscomp$1.instructions |= 4),
-            writeChunk(renderState$jscomp$1, clientRenderScript1Full))
-          : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
-        writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
-        writeChunk(renderState$jscomp$1, id.toString(16));
-        writeChunk(renderState$jscomp$1, clientRenderScript1A);
-        errorDigest &&
-          (writeChunk(
-            renderState$jscomp$1,
-            clientRenderErrorScriptArgInterstitial
-          ),
-          writeChunk(
-            renderState$jscomp$1,
-            escapeJSStringsForInstructionScripts(errorDigest || "")
-          ));
-        var JSCompiler_inline_result = writeChunkAndReturn(
-          renderState$jscomp$1,
-          clientRenderScriptEnd
-        );
-        if (!JSCompiler_inline_result) {
-          request.destination = null;
-          i++;
-          clientRenderedBoundaries.splice(0, i);
-          return;
-        }
-      }
-      clientRenderedBoundaries.splice(0, i);
-      var completedBoundaries = request.completedBoundaries;
-      for (i = 0; i < completedBoundaries.length; i++)
-        if (
-          !flushCompletedBoundary(request, destination, completedBoundaries[i])
-        ) {
-          request.destination = null;
-          i++;
-          completedBoundaries.splice(0, i);
-          return;
-        }
-      completedBoundaries.splice(0, i);
-      completeWriting(destination);
-      currentView = new Uint8Array(2048);
-      writtenBytes = 0;
-      flushingPartialBoundaries = destinationHasCapacity$1 = !0;
-      var partialBoundaries = request.partialBoundaries;
-      for (i = 0; i < partialBoundaries.length; i++) {
-        var boundary$70 = partialBoundaries[i];
-        a: {
-          clientRenderedBoundaries = request;
-          boundary = destination;
-          flushedByteSize = boundary$70.byteSize;
-          var completedSegments = boundary$70.completedSegments;
-          for (
-            JSCompiler_inline_result = 0;
-            JSCompiler_inline_result < completedSegments.length;
-            JSCompiler_inline_result++
-          )
-            if (
-              !flushPartiallyCompletedSegment(
-                clientRenderedBoundaries,
-                boundary,
-                boundary$70,
-                completedSegments[JSCompiler_inline_result]
-              )
-            ) {
-              JSCompiler_inline_result++;
-              completedSegments.splice(0, JSCompiler_inline_result);
-              var JSCompiler_inline_result$jscomp$0 = !1;
-              break a;
-            }
-          completedSegments.splice(0, JSCompiler_inline_result);
-          var row = boundary$70.row;
-          null !== row &&
-            row.together &&
-            1 === boundary$70.pendingTasks &&
-            (1 === row.pendingTasks
-              ? unblockSuspenseListRow(
-                  clientRenderedBoundaries,
-                  row,
-                  row.hoistables
-                )
-              : row.pendingTasks--);
-          JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
-            boundary,
-            boundary$70.contentState,
-            clientRenderedBoundaries.renderState
-          );
-        }
-        if (!JSCompiler_inline_result$jscomp$0) {
-          request.destination = null;
-          i++;
-          partialBoundaries.splice(0, i);
-          return;
-        }
-      }
-      partialBoundaries.splice(0, i);
-      flushingPartialBoundaries = !1;
-      var largeBoundaries = request.completedBoundaries;
-      for (i = 0; i < largeBoundaries.length; i++)
-        if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
-          request.destination = null;
-          i++;
-          largeBoundaries.splice(0, i);
-          return;
-        }
-      largeBoundaries.splice(0, i);
-    }
-  } finally {
-    (flushingPartialBoundaries = !1),
-      0 === request.allPendingTasks &&
-      0 === request.clientRenderedBoundaries.length &&
-      0 === request.completedBoundaries.length
-        ? ((request.flushScheduled = !1),
-          (i = request.resumableState),
-          i.hasBody && writeChunk(destination, endChunkForTag("body")),
-          i.hasHtml && writeChunk(destination, endChunkForTag("html")),
-          completeWriting(destination),
-          flushBuffered(destination),
-          (request.status = 14),
-          destination.end(),
-          (request.destination = null))
-        : (completeWriting(destination), flushBuffered(destination));
-  }
-}
-function startWork(request) {
-  request.flushScheduled = null !== request.destination;
-  scheduleMicrotask(function () {
-    return requestStorage.run(request, performWork, request);
-  });
-  setImmediate(function () {
-    10 === request.status && (request.status = 11);
-    null === request.trackedPostpones &&
-      requestStorage.run(
-        request,
-        enqueueEarlyPreloadsAfterInitialWork,
-        request
-      );
-  });
-}
-function enqueueEarlyPreloadsAfterInitialWork(request) {
-  safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks);
-}
-function enqueueFlush(request) {
-  !1 === request.flushScheduled &&
-    0 === request.pingedTasks.length &&
-    null !== request.destination &&
-    ((request.flushScheduled = !0),
-    setImmediate(function () {
-      var destination = request.destination;
-      destination
-        ? flushCompletedQueues(request, destination)
-        : (request.flushScheduled = !1);
-    }));
-}
-function startFlowing(request, destination) {
-  if (13 === request.status)
-    (request.status = 14), destination.destroy(request.fatalError);
-  else if (14 !== request.status && null === request.destination) {
-    request.destination = destination;
-    try {
-      flushCompletedQueues(request, destination);
-    } catch (error) {
-      logRecoverableError(request, error, {}), fatalError(request, error);
-    }
-  }
-}
-function abort(request, reason) {
-  if (11 === request.status || 10 === request.status) request.status = 12;
-  try {
-    var abortableTasks = request.abortableTasks;
-    if (0 < abortableTasks.size) {
-      var error =
-        void 0 === reason
-          ? Error("The render was aborted by the server without a reason.")
-          : "object" === typeof reason &&
-              null !== reason &&
-              "function" === typeof reason.then
-            ? Error("The render was aborted by the server with a promise.")
-            : reason;
-      request.fatalError = error;
-      abortableTasks.forEach(function (task) {
-        return abortTask(task, request, error);
-      });
-      abortableTasks.clear();
-    }
-    null !== request.destination &&
-      flushCompletedQueues(request, request.destination);
-  } catch (error$72) {
-    logRecoverableError(request, error$72, {}), fatalError(request, error$72);
-  }
-}
-function addToReplayParent(node, parentKeyPath, trackedPostpones) {
-  if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
-  else {
-    var workingMap = trackedPostpones.workingMap,
-      parentNode = workingMap.get(parentKeyPath);
-    void 0 === parentNode &&
-      ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
-      workingMap.set(parentKeyPath, parentNode),
-      addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
-    parentNode[2].push(node);
-  }
-}
-function getPostponedState(request) {
-  var trackedPostpones = request.trackedPostpones;
-  if (
-    null === trackedPostpones ||
-    (0 === trackedPostpones.rootNodes.length &&
-      null === trackedPostpones.rootSlots)
-  )
-    return (request.trackedPostpones = null);
-  if (
-    null === request.completedRootSegment ||
-    (5 !== request.completedRootSegment.status &&
-      null !== request.completedPreambleSegments)
-  ) {
-    var nextSegmentId = request.nextSegmentId;
-    var replaySlots = trackedPostpones.rootSlots;
-    var resumableState = request.resumableState;
-    resumableState.bootstrapScriptContent = void 0;
-    resumableState.bootstrapScripts = void 0;
-    resumableState.bootstrapModules = void 0;
-  } else {
-    nextSegmentId = 0;
-    replaySlots = -1;
-    resumableState = request.resumableState;
-    var renderState = request.renderState;
-    resumableState.nextFormID = 0;
-    resumableState.hasBody = !1;
-    resumableState.hasHtml = !1;
-    resumableState.unknownResources = { font: renderState.resets.font };
-    resumableState.dnsResources = renderState.resets.dns;
-    resumableState.connectResources = renderState.resets.connect;
-    resumableState.imageResources = renderState.resets.image;
-    resumableState.styleResources = renderState.resets.style;
-    resumableState.scriptResources = {};
-    resumableState.moduleUnknownResources = {};
-    resumableState.moduleScriptResources = {};
-    resumableState.instructions = 0;
-  }
-  return {
-    nextSegmentId: nextSegmentId,
-    rootFormatContext: request.rootFormatContext,
-    progressiveChunkSize: request.progressiveChunkSize,
-    resumableState: request.resumableState,
-    replayNodes: trackedPostpones.rootNodes,
-    replaySlots: replaySlots
-  };
-}
-function ensureCorrectIsomorphicReactVersion() {
-  var isomorphicReactPackageVersion = React.version;
-  if ("19.2.3" !== isomorphicReactPackageVersion)
-    throw Error(
-      'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n  - react:      ' +
-        (isomorphicReactPackageVersion +
-          "\n  - react-dom:  19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
-    );
-}
-ensureCorrectIsomorphicReactVersion();
-function createDrainHandler(destination, request) {
-  return function () {
-    return startFlowing(request, destination);
-  };
-}
-function createCancelHandler(request, reason) {
-  return function () {
-    request.destination = null;
-    abort(request, Error(reason));
-  };
-}
-function createRequestImpl(children, options) {
-  var resumableState = createResumableState(
-    options ? options.identifierPrefix : void 0,
-    options ? options.unstable_externalRuntimeSrc : void 0,
-    options ? options.bootstrapScriptContent : void 0,
-    options ? options.bootstrapScripts : void 0,
-    options ? options.bootstrapModules : void 0
-  );
-  return createRequest(
-    children,
-    resumableState,
-    createRenderState(
-      resumableState,
-      options ? options.nonce : void 0,
-      options ? options.unstable_externalRuntimeSrc : void 0,
-      options ? options.importMap : void 0,
-      options ? options.onHeaders : void 0,
-      options ? options.maxHeadersLength : void 0
-    ),
-    createRootFormatContext(options ? options.namespaceURI : void 0),
-    options ? options.progressiveChunkSize : void 0,
-    options ? options.onError : void 0,
-    options ? options.onAllReady : void 0,
-    options ? options.onShellReady : void 0,
-    options ? options.onShellError : void 0,
-    void 0,
-    options ? options.onPostpone : void 0,
-    options ? options.formState : void 0
-  );
-}
-function createFakeWritableFromReadableStreamController$1(controller) {
-  return {
-    write: function (chunk) {
-      "string" === typeof chunk && (chunk = textEncoder.encode(chunk));
-      controller.enqueue(chunk);
-      return !0;
-    },
-    end: function () {
-      controller.close();
-    },
-    destroy: function (error) {
-      "function" === typeof controller.error
-        ? controller.error(error)
-        : controller.close();
-    }
-  };
-}
-function resumeRequestImpl(children, postponedState, options) {
-  return resumeRequest(
-    children,
-    postponedState,
-    createRenderState(
-      postponedState.resumableState,
-      options ? options.nonce : void 0,
-      void 0,
-      void 0,
-      void 0,
-      void 0
-    ),
-    options ? options.onError : void 0,
-    options ? options.onAllReady : void 0,
-    options ? options.onShellReady : void 0,
-    options ? options.onShellError : void 0,
-    void 0,
-    options ? options.onPostpone : void 0
-  );
-}
-ensureCorrectIsomorphicReactVersion();
-function createFakeWritableFromReadableStreamController(controller) {
-  return {
-    write: function (chunk) {
-      "string" === typeof chunk && (chunk = textEncoder.encode(chunk));
-      controller.enqueue(chunk);
-      return !0;
-    },
-    end: function () {
-      controller.close();
-    },
-    destroy: function (error) {
-      "function" === typeof controller.error
-        ? controller.error(error)
-        : controller.close();
-    }
-  };
-}
-function createFakeWritableFromReadable(readable) {
-  return {
-    write: function (chunk) {
-      return readable.push(chunk);
-    },
-    end: function () {
-      readable.push(null);
-    },
-    destroy: function (error) {
-      readable.destroy(error);
-    }
-  };
-}
-exports.prerender = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resources = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createPrerenderRequest(
-        children,
-        resources,
-        createRenderState(
-          resources,
-          void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        function () {
-          var writable,
-            stream = new ReadableStream(
-              {
-                type: "bytes",
-                start: function (controller) {
-                  writable =
-                    createFakeWritableFromReadableStreamController(controller);
-                },
-                pull: function () {
-                  startFlowing(request, writable);
-                },
-                cancel: function (reason) {
-                  request.destination = null;
-                  abort(request, reason);
-                }
-              },
-              { highWaterMark: 0 }
-            );
-          stream = { postponed: getPostponedState(request), prelude: stream };
-          resolve(stream);
-        },
-        void 0,
-        void 0,
-        reject,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.prerenderToNodeStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createPrerenderRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          options ? options.onHeaders : void 0,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        function () {
-          var readable = new stream.Readable({
-              read: function () {
-                startFlowing(request, writable);
-              }
-            }),
-            writable = createFakeWritableFromReadable(readable);
-          readable = {
-            postponed: getPostponedState(request),
-            prelude: readable
-          };
-          resolve(readable);
-        },
-        void 0,
-        void 0,
-        reject,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.renderToPipeableStream = function (children, options) {
-  var request = createRequestImpl(children, options),
-    hasStartedFlowing = !1;
-  startWork(request);
-  return {
-    pipe: function (destination) {
-      if (hasStartedFlowing)
-        throw Error(
-          "React currently only supports piping to one writable stream."
-        );
-      hasStartedFlowing = !0;
-      safelyEmitEarlyPreloads(
-        request,
-        null === request.trackedPostpones
-          ? 0 === request.pendingRootTasks
-          : null === request.completedRootSegment
-            ? 0 === request.pendingRootTasks
-            : 5 !== request.completedRootSegment.status
-      );
-      startFlowing(request, destination);
-      destination.on("drain", createDrainHandler(destination, request));
-      destination.on(
-        "error",
-        createCancelHandler(
-          request,
-          "The destination stream errored while writing data."
-        )
-      );
-      destination.on(
-        "close",
-        createCancelHandler(request, "The destination stream closed early.")
-      );
-      return destination;
-    },
-    abort: function (reason) {
-      abort(request, reason);
-    }
-  };
-};
-exports.renderToReadableStream = function (children, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      onHeaders = options ? options.onHeaders : void 0,
-      onHeadersImpl;
-    onHeaders &&
-      (onHeadersImpl = function (headersDescriptor) {
-        onHeaders(new Headers(headersDescriptor));
-      });
-    var resumableState = createResumableState(
-        options ? options.identifierPrefix : void 0,
-        options ? options.unstable_externalRuntimeSrc : void 0,
-        options ? options.bootstrapScriptContent : void 0,
-        options ? options.bootstrapScripts : void 0,
-        options ? options.bootstrapModules : void 0
-      ),
-      request = createRequest(
-        children,
-        resumableState,
-        createRenderState(
-          resumableState,
-          options ? options.nonce : void 0,
-          options ? options.unstable_externalRuntimeSrc : void 0,
-          options ? options.importMap : void 0,
-          onHeadersImpl,
-          options ? options.maxHeadersLength : void 0
-        ),
-        createRootFormatContext(options ? options.namespaceURI : void 0),
-        options ? options.progressiveChunkSize : void 0,
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var writable,
-            stream = new ReadableStream(
-              {
-                type: "bytes",
-                start: function (controller) {
-                  writable =
-                    createFakeWritableFromReadableStreamController$1(
-                      controller
-                    );
-                },
-                pull: function () {
-                  startFlowing(request, writable);
-                },
-                cancel: function (reason) {
-                  request.destination = null;
-                  abort(request, reason);
-                }
-              },
-              { highWaterMark: 0 }
-            );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0,
-        options ? options.formState : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resume = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var onFatalError,
-      onAllReady,
-      allReady = new Promise(function (res, rej) {
-        onAllReady = res;
-        onFatalError = rej;
-      }),
-      request = resumeRequest(
-        children,
-        postponedState,
-        createRenderState(
-          postponedState.resumableState,
-          options ? options.nonce : void 0,
-          void 0,
-          void 0,
-          void 0,
-          void 0
-        ),
-        options ? options.onError : void 0,
-        onAllReady,
-        function () {
-          var writable,
-            stream = new ReadableStream(
-              {
-                type: "bytes",
-                start: function (controller) {
-                  writable =
-                    createFakeWritableFromReadableStreamController$1(
-                      controller
-                    );
-                },
-                pull: function () {
-                  startFlowing(request, writable);
-                },
-                cancel: function (reason) {
-                  request.destination = null;
-                  abort(request, reason);
-                }
-              },
-              { highWaterMark: 0 }
-            );
-          stream.allReady = allReady;
-          resolve(stream);
-        },
-        function (error) {
-          allReady.catch(function () {});
-          reject(error);
-        },
-        onFatalError,
-        options ? options.onPostpone : void 0
-      );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resumeAndPrerender = function (children, postponedState, options) {
-  return new Promise(function (resolve, reject) {
-    var request = resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      createRenderState(
-        postponedState.resumableState,
-        void 0,
-        void 0,
-        void 0,
-        void 0,
-        void 0
-      ),
-      options ? options.onError : void 0,
-      function () {
-        var writable,
-          stream = new ReadableStream(
-            {
-              type: "bytes",
-              start: function (controller) {
-                writable =
-                  createFakeWritableFromReadableStreamController(controller);
-              },
-              pull: function () {
-                startFlowing(request, writable);
-              },
-              cancel: function (reason) {
-                request.destination = null;
-                abort(request, reason);
-              }
-            },
-            { highWaterMark: 0 }
-          );
-        stream = { postponed: getPostponedState(request), prelude: stream };
-        resolve(stream);
-      },
-      void 0,
-      void 0,
-      reject,
-      options ? options.onPostpone : void 0
-    );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resumeAndPrerenderToNodeStream = function (
-  children,
-  postponedState,
-  options
-) {
-  return new Promise(function (resolve, reject) {
-    var request = resumeAndPrerenderRequest(
-      children,
-      postponedState,
-      createRenderState(
-        postponedState.resumableState,
-        void 0,
-        void 0,
-        void 0,
-        void 0,
-        void 0
-      ),
-      options ? options.onError : void 0,
-      function () {
-        var readable = new stream.Readable({
-            read: function () {
-              startFlowing(request, writable);
-            }
-          }),
-          writable = createFakeWritableFromReadable(readable);
-        readable = { postponed: getPostponedState(request), prelude: readable };
-        resolve(readable);
-      },
-      void 0,
-      void 0,
-      reject,
-      options ? options.onPostpone : void 0
-    );
-    if (options && options.signal) {
-      var signal = options.signal;
-      if (signal.aborted) abort(request, signal.reason);
-      else {
-        var listener = function () {
-          abort(request, signal.reason);
-          signal.removeEventListener("abort", listener);
-        };
-        signal.addEventListener("abort", listener);
-      }
-    }
-    startWork(request);
-  });
-};
-exports.resumeToPipeableStream = function (children, postponedState, options) {
-  var request = resumeRequestImpl(children, postponedState, options),
-    hasStartedFlowing = !1;
-  startWork(request);
-  return {
-    pipe: function (destination) {
-      if (hasStartedFlowing)
-        throw Error(
-          "React currently only supports piping to one writable stream."
-        );
-      hasStartedFlowing = !0;
-      startFlowing(request, destination);
-      destination.on("drain", createDrainHandler(destination, request));
-      destination.on(
-        "error",
-        createCancelHandler(
-          request,
-          "The destination stream errored while writing data."
-        )
-      );
-      destination.on(
-        "close",
-        createCancelHandler(request, "The destination stream closed early.")
-      );
-      return destination;
-    },
-    abort: function (reason) {
-      abort(request, reason);
-    }
-  };
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom-test-utils.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-test-utils.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * @license React
- * react-dom-test-utils.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    var React = require("react"),
-      didWarnAboutUsingAct = !1;
-    exports.act = function (callback) {
-      !1 === didWarnAboutUsingAct &&
-        ((didWarnAboutUsingAct = !0),
-        console.error(
-          "`ReactDOMTestUtils.act` is deprecated in favor of `React.act`. Import `act` from `react` instead of `react-dom/test-utils`. See https://react.dev/warnings/react-dom-test-utils for more info."
-        ));
-      return React.act(callback);
-    };
-  })();
Index: de_modules/react-dom/cjs/react-dom-test-utils.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom-test-utils.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * @license React
- * react-dom-test-utils.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.
- */
-
-"use strict";
-var React = require("react"),
-  didWarnAboutUsingAct = !1;
-exports.act = function (callback) {
-  !1 === didWarnAboutUsingAct &&
-    ((didWarnAboutUsingAct = !0),
-    console.error(
-      "`ReactDOMTestUtils.act` is deprecated in favor of `React.act`. Import `act` from `react` instead of `react-dom/test-utils`. See https://react.dev/warnings/react-dom-test-utils for more info."
-    ));
-  return React.act(callback);
-};
Index: de_modules/react-dom/cjs/react-dom.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,424 +1,0 @@
-/**
- * @license React
- * react-dom.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function noop() {}
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function createPortal$1(children, containerInfo, implementation) {
-      var key =
-        3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
-      try {
-        testStringCoercion(key);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      JSCompiler_inline_result &&
-        (console.error(
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            key[Symbol.toStringTag]) ||
-            key.constructor.name ||
-            "Object"
-        ),
-        testStringCoercion(key));
-      return {
-        $$typeof: REACT_PORTAL_TYPE,
-        key: null == key ? null : "" + key,
-        children: children,
-        containerInfo: containerInfo,
-        implementation: implementation
-      };
-    }
-    function getCrossOriginStringAs(as, input) {
-      if ("font" === as) return "";
-      if ("string" === typeof input)
-        return "use-credentials" === input ? input : "";
-    }
-    function getValueDescriptorExpectingObjectForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : 'something with type "' + typeof thing + '"';
-    }
-    function getValueDescriptorExpectingEnumForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : "string" === typeof thing
-              ? JSON.stringify(thing)
-              : "number" === typeof thing
-                ? "`" + thing + "`"
-                : 'something with type "' + typeof thing + '"';
-    }
-    function resolveDispatcher() {
-      var dispatcher = ReactSharedInternals.H;
-      null === dispatcher &&
-        console.error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      return dispatcher;
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var React = require("react"),
-      Internals = {
-        d: {
-          f: noop,
-          r: function () {
-            throw Error(
-              "Invalid form element. requestFormReset must be passed a form that was rendered by React."
-            );
-          },
-          D: noop,
-          C: noop,
-          L: noop,
-          m: noop,
-          X: noop,
-          S: noop,
-          M: noop
-        },
-        p: 0,
-        findDOMNode: null
-      },
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-    ("function" === typeof Map &&
-      null != Map.prototype &&
-      "function" === typeof Map.prototype.forEach &&
-      "function" === typeof Set &&
-      null != Set.prototype &&
-      "function" === typeof Set.prototype.clear &&
-      "function" === typeof Set.prototype.forEach) ||
-      console.error(
-        "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
-      );
-    exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-      Internals;
-    exports.createPortal = function (children, container) {
-      var key =
-        2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
-      if (
-        !container ||
-        (1 !== container.nodeType &&
-          9 !== container.nodeType &&
-          11 !== container.nodeType)
-      )
-        throw Error("Target container is not a DOM element.");
-      return createPortal$1(children, container, null, key);
-    };
-    exports.flushSync = function (fn) {
-      var previousTransition = ReactSharedInternals.T,
-        previousUpdatePriority = Internals.p;
-      try {
-        if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))
-          return fn();
-      } finally {
-        (ReactSharedInternals.T = previousTransition),
-          (Internals.p = previousUpdatePriority),
-          Internals.d.f() &&
-            console.error(
-              "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."
-            );
-      }
-    };
-    exports.preconnect = function (href, options) {
-      "string" === typeof href && href
-        ? null != options && "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : null != options &&
-            "string" !== typeof options.crossOrigin &&
-            console.error(
-              "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
-              getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
-            )
-        : console.error(
-            "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      "string" === typeof href &&
-        (options
-          ? ((options = options.crossOrigin),
-            (options =
-              "string" === typeof options
-                ? "use-credentials" === options
-                  ? options
-                  : ""
-                : void 0))
-          : (options = null),
-        Internals.d.C(href, options));
-    };
-    exports.prefetchDNS = function (href) {
-      if ("string" !== typeof href || !href)
-        console.error(
-          "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-          getValueDescriptorExpectingObjectForWarning(href)
-        );
-      else if (1 < arguments.length) {
-        var options = arguments[1];
-        "object" === typeof options && options.hasOwnProperty("crossOrigin")
-          ? console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            );
-      }
-      "string" === typeof href && Internals.d.D(href);
-    };
-    exports.preinit = function (href, options) {
-      "string" === typeof href && href
-        ? null == options || "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : "style" !== options.as &&
-            "script" !== options.as &&
-            console.error(
-              'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
-              getValueDescriptorExpectingEnumForWarning(options.as)
-            )
-        : console.error(
-            "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      if (
-        "string" === typeof href &&
-        options &&
-        "string" === typeof options.as
-      ) {
-        var as = options.as,
-          crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-          integrity =
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          fetchPriority =
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0;
-        "style" === as
-          ? Internals.d.S(
-              href,
-              "string" === typeof options.precedence
-                ? options.precedence
-                : void 0,
-              {
-                crossOrigin: crossOrigin,
-                integrity: integrity,
-                fetchPriority: fetchPriority
-              }
-            )
-          : "script" === as &&
-            Internals.d.X(href, {
-              crossOrigin: crossOrigin,
-              integrity: integrity,
-              fetchPriority: fetchPriority,
-              nonce: "string" === typeof options.nonce ? options.nonce : void 0
-            });
-      }
-    };
-    exports.preinitModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "script" !== options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingEnumForWarning(options.as) +
-            ".");
-      if (encountered)
-        console.error(
-          "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
-          encountered
-        );
-      else
-        switch (
-          ((encountered =
-            options && "string" === typeof options.as ? options.as : "script"),
-          encountered)
-        ) {
-          case "script":
-            break;
-          default:
-            (encountered =
-              getValueDescriptorExpectingEnumForWarning(encountered)),
-              console.error(
-                'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
-                encountered,
-                href
-              );
-        }
-      if ("string" === typeof href)
-        if ("object" === typeof options && null !== options) {
-          if (null == options.as || "script" === options.as)
-            (encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-              Internals.d.M(href, {
-                crossOrigin: encountered,
-                integrity:
-                  "string" === typeof options.integrity
-                    ? options.integrity
-                    : void 0,
-                nonce:
-                  "string" === typeof options.nonce ? options.nonce : void 0
-              });
-        } else null == options && Internals.d.M(href);
-    };
-    exports.preload = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      null == options || "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : ("string" === typeof options.as && options.as) ||
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
-          encountered
-        );
-      if (
-        "string" === typeof href &&
-        "object" === typeof options &&
-        null !== options &&
-        "string" === typeof options.as
-      ) {
-        encountered = options.as;
-        var crossOrigin = getCrossOriginStringAs(
-          encountered,
-          options.crossOrigin
-        );
-        Internals.d.L(href, encountered, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-          type: "string" === typeof options.type ? options.type : void 0,
-          fetchPriority:
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0,
-          referrerPolicy:
-            "string" === typeof options.referrerPolicy
-              ? options.referrerPolicy
-              : void 0,
-          imageSrcSet:
-            "string" === typeof options.imageSrcSet
-              ? options.imageSrcSet
-              : void 0,
-          imageSizes:
-            "string" === typeof options.imageSizes
-              ? options.imageSizes
-              : void 0,
-          media: "string" === typeof options.media ? options.media : void 0
-        });
-      }
-    };
-    exports.preloadModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "string" !== typeof options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
-          encountered
-        );
-      "string" === typeof href &&
-        (options
-          ? ((encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-            Internals.d.m(href, {
-              as:
-                "string" === typeof options.as && "script" !== options.as
-                  ? options.as
-                  : void 0,
-              crossOrigin: encountered,
-              integrity:
-                "string" === typeof options.integrity
-                  ? options.integrity
-                  : void 0
-            }))
-          : Internals.d.m(href));
-    };
-    exports.requestFormReset = function (form) {
-      Internals.d.r(form);
-    };
-    exports.unstable_batchedUpdates = function (fn, a) {
-      return fn(a);
-    };
-    exports.useFormState = function (action, initialState, permalink) {
-      return resolveDispatcher().useFormState(action, initialState, permalink);
-    };
-    exports.useFormStatus = function () {
-      return resolveDispatcher().useHostTransitionStatus();
-    };
-    exports.version = "19.2.3";
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/react-dom/cjs/react-dom.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,210 +1,0 @@
-/**
- * @license React
- * react-dom.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.
- */
-
-"use strict";
-var React = require("react");
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-function noop() {}
-var Internals = {
-    d: {
-      f: noop,
-      r: function () {
-        throw Error(formatProdErrorMessage(522));
-      },
-      D: noop,
-      C: noop,
-      L: noop,
-      m: noop,
-      X: noop,
-      S: noop,
-      M: noop
-    },
-    p: 0,
-    findDOMNode: null
-  },
-  REACT_PORTAL_TYPE = Symbol.for("react.portal");
-function createPortal$1(children, containerInfo, implementation) {
-  var key =
-    3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
-  return {
-    $$typeof: REACT_PORTAL_TYPE,
-    key: null == key ? null : "" + key,
-    children: children,
-    containerInfo: containerInfo,
-    implementation: implementation
-  };
-}
-var ReactSharedInternals =
-  React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-function getCrossOriginStringAs(as, input) {
-  if ("font" === as) return "";
-  if ("string" === typeof input)
-    return "use-credentials" === input ? input : "";
-}
-exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-  Internals;
-exports.createPortal = function (children, container) {
-  var key =
-    2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
-  if (
-    !container ||
-    (1 !== container.nodeType &&
-      9 !== container.nodeType &&
-      11 !== container.nodeType)
-  )
-    throw Error(formatProdErrorMessage(299));
-  return createPortal$1(children, container, null, key);
-};
-exports.flushSync = function (fn) {
-  var previousTransition = ReactSharedInternals.T,
-    previousUpdatePriority = Internals.p;
-  try {
-    if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();
-  } finally {
-    (ReactSharedInternals.T = previousTransition),
-      (Internals.p = previousUpdatePriority),
-      Internals.d.f();
-  }
-};
-exports.preconnect = function (href, options) {
-  "string" === typeof href &&
-    (options
-      ? ((options = options.crossOrigin),
-        (options =
-          "string" === typeof options
-            ? "use-credentials" === options
-              ? options
-              : ""
-            : void 0))
-      : (options = null),
-    Internals.d.C(href, options));
-};
-exports.prefetchDNS = function (href) {
-  "string" === typeof href && Internals.d.D(href);
-};
-exports.preinit = function (href, options) {
-  if ("string" === typeof href && options && "string" === typeof options.as) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-      integrity =
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      fetchPriority =
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0;
-    "style" === as
-      ? Internals.d.S(
-          href,
-          "string" === typeof options.precedence ? options.precedence : void 0,
-          {
-            crossOrigin: crossOrigin,
-            integrity: integrity,
-            fetchPriority: fetchPriority
-          }
-        )
-      : "script" === as &&
-        Internals.d.X(href, {
-          crossOrigin: crossOrigin,
-          integrity: integrity,
-          fetchPriority: fetchPriority,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-  }
-};
-exports.preinitModule = function (href, options) {
-  if ("string" === typeof href)
-    if ("object" === typeof options && null !== options) {
-      if (null == options.as || "script" === options.as) {
-        var crossOrigin = getCrossOriginStringAs(
-          options.as,
-          options.crossOrigin
-        );
-        Internals.d.M(href, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-      }
-    } else null == options && Internals.d.M(href);
-};
-exports.preload = function (href, options) {
-  if (
-    "string" === typeof href &&
-    "object" === typeof options &&
-    null !== options &&
-    "string" === typeof options.as
-  ) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);
-    Internals.d.L(href, as, {
-      crossOrigin: crossOrigin,
-      integrity:
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-      type: "string" === typeof options.type ? options.type : void 0,
-      fetchPriority:
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0,
-      referrerPolicy:
-        "string" === typeof options.referrerPolicy
-          ? options.referrerPolicy
-          : void 0,
-      imageSrcSet:
-        "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
-      imageSizes:
-        "string" === typeof options.imageSizes ? options.imageSizes : void 0,
-      media: "string" === typeof options.media ? options.media : void 0
-    });
-  }
-};
-exports.preloadModule = function (href, options) {
-  if ("string" === typeof href)
-    if (options) {
-      var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);
-      Internals.d.m(href, {
-        as:
-          "string" === typeof options.as && "script" !== options.as
-            ? options.as
-            : void 0,
-        crossOrigin: crossOrigin,
-        integrity:
-          "string" === typeof options.integrity ? options.integrity : void 0
-      });
-    } else Internals.d.m(href);
-};
-exports.requestFormReset = function (form) {
-  Internals.d.r(form);
-};
-exports.unstable_batchedUpdates = function (fn, a) {
-  return fn(a);
-};
-exports.useFormState = function (action, initialState, permalink) {
-  return ReactSharedInternals.H.useFormState(action, initialState, permalink);
-};
-exports.useFormStatus = function () {
-  return ReactSharedInternals.H.useHostTransitionStatus();
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/cjs/react-dom.react-server.development.js
===================================================================
--- node_modules/react-dom/cjs/react-dom.react-server.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,340 +1,0 @@
-/**
- * @license React
- * react-dom.react-server.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function noop() {}
-    function getCrossOriginStringAs(as, input) {
-      if ("font" === as) return "";
-      if ("string" === typeof input)
-        return "use-credentials" === input ? input : "";
-    }
-    function getValueDescriptorExpectingObjectForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : 'something with type "' + typeof thing + '"';
-    }
-    function getValueDescriptorExpectingEnumForWarning(thing) {
-      return null === thing
-        ? "`null`"
-        : void 0 === thing
-          ? "`undefined`"
-          : "" === thing
-            ? "an empty string"
-            : "string" === typeof thing
-              ? JSON.stringify(thing)
-              : "number" === typeof thing
-                ? "`" + thing + "`"
-                : 'something with type "' + typeof thing + '"';
-    }
-    var React = require("react"),
-      Internals = {
-        d: {
-          f: noop,
-          r: function () {
-            throw Error(
-              "Invalid form element. requestFormReset must be passed a form that was rendered by React."
-            );
-          },
-          D: noop,
-          C: noop,
-          L: noop,
-          m: noop,
-          X: noop,
-          S: noop,
-          M: noop
-        },
-        p: 0,
-        findDOMNode: null
-      };
-    if (!React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)
-      throw Error(
-        'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-      );
-    ("function" === typeof Map &&
-      null != Map.prototype &&
-      "function" === typeof Map.prototype.forEach &&
-      "function" === typeof Set &&
-      null != Set.prototype &&
-      "function" === typeof Set.prototype.clear &&
-      "function" === typeof Set.prototype.forEach) ||
-      console.error(
-        "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
-      );
-    exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-      Internals;
-    exports.preconnect = function (href, options) {
-      "string" === typeof href && href
-        ? null != options && "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : null != options &&
-            "string" !== typeof options.crossOrigin &&
-            console.error(
-              "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
-              getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
-            )
-        : console.error(
-            "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      "string" === typeof href &&
-        (options
-          ? ((options = options.crossOrigin),
-            (options =
-              "string" === typeof options
-                ? "use-credentials" === options
-                  ? options
-                  : ""
-                : void 0))
-          : (options = null),
-        Internals.d.C(href, options));
-    };
-    exports.prefetchDNS = function (href) {
-      if ("string" !== typeof href || !href)
-        console.error(
-          "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-          getValueDescriptorExpectingObjectForWarning(href)
-        );
-      else if (1 < arguments.length) {
-        var options = arguments[1];
-        "object" === typeof options && options.hasOwnProperty("crossOrigin")
-          ? console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : console.error(
-              "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            );
-      }
-      "string" === typeof href && Internals.d.D(href);
-    };
-    exports.preinit = function (href, options) {
-      "string" === typeof href && href
-        ? null == options || "object" !== typeof options
-          ? console.error(
-              "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
-              getValueDescriptorExpectingEnumForWarning(options)
-            )
-          : "style" !== options.as &&
-            "script" !== options.as &&
-            console.error(
-              'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
-              getValueDescriptorExpectingEnumForWarning(options.as)
-            )
-        : console.error(
-            "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
-            getValueDescriptorExpectingObjectForWarning(href)
-          );
-      if (
-        "string" === typeof href &&
-        options &&
-        "string" === typeof options.as
-      ) {
-        var as = options.as,
-          crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-          integrity =
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          fetchPriority =
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0;
-        "style" === as
-          ? Internals.d.S(
-              href,
-              "string" === typeof options.precedence
-                ? options.precedence
-                : void 0,
-              {
-                crossOrigin: crossOrigin,
-                integrity: integrity,
-                fetchPriority: fetchPriority
-              }
-            )
-          : "script" === as &&
-            Internals.d.X(href, {
-              crossOrigin: crossOrigin,
-              integrity: integrity,
-              fetchPriority: fetchPriority,
-              nonce: "string" === typeof options.nonce ? options.nonce : void 0
-            });
-      }
-    };
-    exports.preinitModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "script" !== options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingEnumForWarning(options.as) +
-            ".");
-      if (encountered)
-        console.error(
-          "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
-          encountered
-        );
-      else
-        switch (
-          ((encountered =
-            options && "string" === typeof options.as ? options.as : "script"),
-          encountered)
-        ) {
-          case "script":
-            break;
-          default:
-            (encountered =
-              getValueDescriptorExpectingEnumForWarning(encountered)),
-              console.error(
-                'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
-                encountered,
-                href
-              );
-        }
-      if ("string" === typeof href)
-        if ("object" === typeof options && null !== options) {
-          if (null == options.as || "script" === options.as)
-            (encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-              Internals.d.M(href, {
-                crossOrigin: encountered,
-                integrity:
-                  "string" === typeof options.integrity
-                    ? options.integrity
-                    : void 0,
-                nonce:
-                  "string" === typeof options.nonce ? options.nonce : void 0
-              });
-        } else null == options && Internals.d.M(href);
-    };
-    exports.preload = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      null == options || "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : ("string" === typeof options.as && options.as) ||
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
-          encountered
-        );
-      if (
-        "string" === typeof href &&
-        "object" === typeof options &&
-        null !== options &&
-        "string" === typeof options.as
-      ) {
-        encountered = options.as;
-        var crossOrigin = getCrossOriginStringAs(
-          encountered,
-          options.crossOrigin
-        );
-        Internals.d.L(href, encountered, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-          type: "string" === typeof options.type ? options.type : void 0,
-          fetchPriority:
-            "string" === typeof options.fetchPriority
-              ? options.fetchPriority
-              : void 0,
-          referrerPolicy:
-            "string" === typeof options.referrerPolicy
-              ? options.referrerPolicy
-              : void 0,
-          imageSrcSet:
-            "string" === typeof options.imageSrcSet
-              ? options.imageSrcSet
-              : void 0,
-          imageSizes:
-            "string" === typeof options.imageSizes
-              ? options.imageSizes
-              : void 0,
-          media: "string" === typeof options.media ? options.media : void 0
-        });
-      }
-    };
-    exports.preloadModule = function (href, options) {
-      var encountered = "";
-      ("string" === typeof href && href) ||
-        (encountered +=
-          " The `href` argument encountered was " +
-          getValueDescriptorExpectingObjectForWarning(href) +
-          ".");
-      void 0 !== options && "object" !== typeof options
-        ? (encountered +=
-            " The `options` argument encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options) +
-            ".")
-        : options &&
-          "as" in options &&
-          "string" !== typeof options.as &&
-          (encountered +=
-            " The `as` option encountered was " +
-            getValueDescriptorExpectingObjectForWarning(options.as) +
-            ".");
-      encountered &&
-        console.error(
-          'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
-          encountered
-        );
-      "string" === typeof href &&
-        (options
-          ? ((encountered = getCrossOriginStringAs(
-              options.as,
-              options.crossOrigin
-            )),
-            Internals.d.m(href, {
-              as:
-                "string" === typeof options.as && "script" !== options.as
-                  ? options.as
-                  : void 0,
-              crossOrigin: encountered,
-              integrity:
-                "string" === typeof options.integrity
-                  ? options.integrity
-                  : void 0
-            }))
-          : Internals.d.m(href));
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react-dom/cjs/react-dom.react-server.production.js
===================================================================
--- node_modules/react-dom/cjs/react-dom.react-server.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,152 +1,0 @@
-/**
- * @license React
- * react-dom.react-server.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.
- */
-
-"use strict";
-var React = require("react");
-function noop() {}
-var Internals = {
-  d: {
-    f: noop,
-    r: function () {
-      throw Error(
-        "Invalid form element. requestFormReset must be passed a form that was rendered by React."
-      );
-    },
-    D: noop,
-    C: noop,
-    L: noop,
-    m: noop,
-    X: noop,
-    S: noop,
-    M: noop
-  },
-  p: 0,
-  findDOMNode: null
-};
-if (!React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)
-  throw Error(
-    'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-  );
-function getCrossOriginStringAs(as, input) {
-  if ("font" === as) return "";
-  if ("string" === typeof input)
-    return "use-credentials" === input ? input : "";
-}
-exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-  Internals;
-exports.preconnect = function (href, options) {
-  "string" === typeof href &&
-    (options
-      ? ((options = options.crossOrigin),
-        (options =
-          "string" === typeof options
-            ? "use-credentials" === options
-              ? options
-              : ""
-            : void 0))
-      : (options = null),
-    Internals.d.C(href, options));
-};
-exports.prefetchDNS = function (href) {
-  "string" === typeof href && Internals.d.D(href);
-};
-exports.preinit = function (href, options) {
-  if ("string" === typeof href && options && "string" === typeof options.as) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),
-      integrity =
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      fetchPriority =
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0;
-    "style" === as
-      ? Internals.d.S(
-          href,
-          "string" === typeof options.precedence ? options.precedence : void 0,
-          {
-            crossOrigin: crossOrigin,
-            integrity: integrity,
-            fetchPriority: fetchPriority
-          }
-        )
-      : "script" === as &&
-        Internals.d.X(href, {
-          crossOrigin: crossOrigin,
-          integrity: integrity,
-          fetchPriority: fetchPriority,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-  }
-};
-exports.preinitModule = function (href, options) {
-  if ("string" === typeof href)
-    if ("object" === typeof options && null !== options) {
-      if (null == options.as || "script" === options.as) {
-        var crossOrigin = getCrossOriginStringAs(
-          options.as,
-          options.crossOrigin
-        );
-        Internals.d.M(href, {
-          crossOrigin: crossOrigin,
-          integrity:
-            "string" === typeof options.integrity ? options.integrity : void 0,
-          nonce: "string" === typeof options.nonce ? options.nonce : void 0
-        });
-      }
-    } else null == options && Internals.d.M(href);
-};
-exports.preload = function (href, options) {
-  if (
-    "string" === typeof href &&
-    "object" === typeof options &&
-    null !== options &&
-    "string" === typeof options.as
-  ) {
-    var as = options.as,
-      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);
-    Internals.d.L(href, as, {
-      crossOrigin: crossOrigin,
-      integrity:
-        "string" === typeof options.integrity ? options.integrity : void 0,
-      nonce: "string" === typeof options.nonce ? options.nonce : void 0,
-      type: "string" === typeof options.type ? options.type : void 0,
-      fetchPriority:
-        "string" === typeof options.fetchPriority
-          ? options.fetchPriority
-          : void 0,
-      referrerPolicy:
-        "string" === typeof options.referrerPolicy
-          ? options.referrerPolicy
-          : void 0,
-      imageSrcSet:
-        "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
-      imageSizes:
-        "string" === typeof options.imageSizes ? options.imageSizes : void 0,
-      media: "string" === typeof options.media ? options.media : void 0
-    });
-  }
-};
-exports.preloadModule = function (href, options) {
-  if ("string" === typeof href)
-    if (options) {
-      var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);
-      Internals.d.m(href, {
-        as:
-          "string" === typeof options.as && "script" !== options.as
-            ? options.as
-            : void 0,
-        crossOrigin: crossOrigin,
-        integrity:
-          "string" === typeof options.integrity ? options.integrity : void 0
-      });
-    } else Internals.d.m(href);
-};
-exports.version = "19.2.3";
Index: de_modules/react-dom/client.js
===================================================================
--- node_modules/react-dom/client.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-function checkDCE() {
-  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-  if (
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
-  ) {
-    return;
-  }
-  if (process.env.NODE_ENV !== 'production') {
-    // This branch is unreachable because this function is only called
-    // in production, but the condition is true only in development.
-    // Therefore if the branch is still here, dead code elimination wasn't
-    // properly applied.
-    // Don't change the message. React DevTools relies on it. Also make sure
-    // this message doesn't occur elsewhere in this function, or it will cause
-    // a false positive.
-    throw new Error('^_^');
-  }
-  try {
-    // Verify that the code above has been dead code eliminated (DCE'd).
-    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
-  } catch (err) {
-    // DevTools shouldn't crash React, no matter what.
-    // We should still report in case we break this code.
-    console.error(err);
-  }
-}
-
-if (process.env.NODE_ENV === 'production') {
-  // DCE check should happen before ReactDOM bundle executes so that
-  // DevTools can report bad minification during injection.
-  checkDCE();
-  module.exports = require('./cjs/react-dom-client.production.js');
-} else {
-  module.exports = require('./cjs/react-dom-client.development.js');
-}
Index: de_modules/react-dom/client.react-server.js
===================================================================
--- node_modules/react-dom/client.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-'use strict';
-
-throw new Error(
-  'react-dom/client is not supported in React Server Components.'
-);
Index: de_modules/react-dom/index.js
===================================================================
--- node_modules/react-dom/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-function checkDCE() {
-  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-  if (
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
-  ) {
-    return;
-  }
-  if (process.env.NODE_ENV !== 'production') {
-    // This branch is unreachable because this function is only called
-    // in production, but the condition is true only in development.
-    // Therefore if the branch is still here, dead code elimination wasn't
-    // properly applied.
-    // Don't change the message. React DevTools relies on it. Also make sure
-    // this message doesn't occur elsewhere in this function, or it will cause
-    // a false positive.
-    throw new Error('^_^');
-  }
-  try {
-    // Verify that the code above has been dead code eliminated (DCE'd).
-    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
-  } catch (err) {
-    // DevTools shouldn't crash React, no matter what.
-    // We should still report in case we break this code.
-    console.error(err);
-  }
-}
-
-if (process.env.NODE_ENV === 'production') {
-  // DCE check should happen before ReactDOM bundle executes so that
-  // DevTools can report bad minification during injection.
-  checkDCE();
-  module.exports = require('./cjs/react-dom.production.js');
-} else {
-  module.exports = require('./cjs/react-dom.development.js');
-}
Index: de_modules/react-dom/package.json
===================================================================
--- node_modules/react-dom/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-{
-  "name": "react-dom",
-  "version": "19.2.3",
-  "description": "React package for working with the DOM.",
-  "main": "index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/react-dom"
-  },
-  "keywords": [
-    "react"
-  ],
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/facebook/react/issues"
-  },
-  "homepage": "https://react.dev/",
-  "dependencies": {
-    "scheduler": "^0.27.0"
-  },
-  "peerDependencies": {
-    "react": "^19.2.3"
-  },
-  "files": [
-    "LICENSE",
-    "README.md",
-    "client.js",
-    "client.react-server.js",
-    "index.js",
-    "profiling.js",
-    "profiling.react-server.js",
-    "react-dom.react-server.js",
-    "server.browser.js",
-    "server.bun.js",
-    "server.edge.js",
-    "server.js",
-    "server.node.js",
-    "server.react-server.js",
-    "static.browser.js",
-    "static.edge.js",
-    "static.js",
-    "static.node.js",
-    "static.react-server.js",
-    "test-utils.js",
-    "cjs/"
-  ],
-  "exports": {
-    ".": {
-      "react-server": "./react-dom.react-server.js",
-      "default": "./index.js"
-    },
-    "./client": {
-      "react-server": "./client.react-server.js",
-      "default": "./client.js"
-    },
-    "./server": {
-      "react-server": "./server.react-server.js",
-      "workerd": "./server.edge.js",
-      "bun": "./server.bun.js",
-      "deno": "./server.browser.js",
-      "worker": "./server.browser.js",
-      "node": "./server.node.js",
-      "edge-light": "./server.edge.js",
-      "browser": "./server.browser.js",
-      "default": "./server.node.js"
-    },
-    "./server.browser": {
-      "react-server": "./server.react-server.js",
-      "default": "./server.browser.js"
-    },
-    "./server.bun": {
-      "react-server": "./server.react-server.js",
-      "default": "./server.bun.js"
-    },
-    "./server.edge": {
-      "react-server": "./server.react-server.js",
-      "default": "./server.edge.js"
-    },
-    "./server.node": {
-      "react-server": "./server.react-server.js",
-      "default": "./server.node.js"
-    },
-    "./static": {
-      "react-server": "./static.react-server.js",
-      "workerd": "./static.edge.js",
-      "deno": "./static.browser.js",
-      "worker": "./static.browser.js",
-      "node": "./static.node.js",
-      "edge-light": "./static.edge.js",
-      "browser": "./static.browser.js",
-      "default": "./static.node.js"
-    },
-    "./static.browser": {
-      "react-server": "./static.react-server.js",
-      "default": "./static.browser.js"
-    },
-    "./static.edge": {
-      "react-server": "./static.react-server.js",
-      "default": "./static.edge.js"
-    },
-    "./static.node": {
-      "react-server": "./static.react-server.js",
-      "default": "./static.node.js"
-    },
-    "./profiling": {
-      "react-server": "./profiling.react-server.js",
-      "default": "./profiling.js"
-    },
-    "./test-utils": "./test-utils.js",
-    "./package.json": "./package.json"
-  },
-  "browser": {
-    "./server.js": "./server.browser.js",
-    "./static.js": "./static.browser.js"
-  }
-}
Index: de_modules/react-dom/profiling.js
===================================================================
--- node_modules/react-dom/profiling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-'use strict';
-
-function checkDCE() {
-  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-  if (
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
-    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
-  ) {
-    return;
-  }
-  if (process.env.NODE_ENV !== 'production') {
-    // This branch is unreachable because this function is only called
-    // in production, but the condition is true only in development.
-    // Therefore if the branch is still here, dead code elimination wasn't
-    // properly applied.
-    // Don't change the message. React DevTools relies on it. Also make sure
-    // this message doesn't occur elsewhere in this function, or it will cause
-    // a false positive.
-    throw new Error('^_^');
-  }
-  try {
-    // Verify that the code above has been dead code eliminated (DCE'd).
-    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
-  } catch (err) {
-    // DevTools shouldn't crash React, no matter what.
-    // We should still report in case we break this code.
-    console.error(err);
-  }
-}
-
-if (process.env.NODE_ENV === 'production') {
-  // DCE check should happen before ReactDOM bundle executes so that
-  // DevTools can report bad minification during injection.
-  checkDCE();
-  module.exports = require('./cjs/react-dom-profiling.profiling.js');
-} else {
-  module.exports = require('./cjs/react-dom-profiling.development.js');
-}
Index: de_modules/react-dom/profiling.react-server.js
===================================================================
--- node_modules/react-dom/profiling.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-'use strict';
-
-throw new Error(
-  'react-dom/profiling is not supported in React Server Components.'
-);
Index: de_modules/react-dom/react-dom.react-server.js
===================================================================
--- node_modules/react-dom/react-dom.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-dom.react-server.production.js');
-} else {
-  module.exports = require('./cjs/react-dom.react-server.development.js');
-}
Index: de_modules/react-dom/server.browser.js
===================================================================
--- node_modules/react-dom/server.browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-'use strict';
-
-var l, s;
-if (process.env.NODE_ENV === 'production') {
-  l = require('./cjs/react-dom-server-legacy.browser.production.js');
-  s = require('./cjs/react-dom-server.browser.production.js');
-} else {
-  l = require('./cjs/react-dom-server-legacy.browser.development.js');
-  s = require('./cjs/react-dom-server.browser.development.js');
-}
-
-exports.version = l.version;
-exports.renderToString = l.renderToString;
-exports.renderToStaticMarkup = l.renderToStaticMarkup;
-exports.renderToReadableStream = s.renderToReadableStream;
-exports.resume = s.resume;
Index: de_modules/react-dom/server.bun.js
===================================================================
--- node_modules/react-dom/server.bun.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-var b;
-var l;
-if (process.env.NODE_ENV === 'production') {
-  b = require('./cjs/react-dom-server.bun.production.js');
-  l = require('./cjs/react-dom-server-legacy.browser.production.js');
-} else {
-  b = require('./cjs/react-dom-server.bun.development.js');
-  l = require('./cjs/react-dom-server-legacy.browser.development.js');
-}
-
-exports.version = b.version;
-exports.renderToReadableStream = b.renderToReadableStream;
-exports.resume = b.resume;
-exports.renderToString = l.renderToString;
-exports.renderToStaticMarkup = l.renderToStaticMarkup;
Index: de_modules/react-dom/server.edge.js
===================================================================
--- node_modules/react-dom/server.edge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-var b;
-var l;
-if (process.env.NODE_ENV === 'production') {
-  b = require('./cjs/react-dom-server.edge.production.js');
-  l = require('./cjs/react-dom-server-legacy.browser.production.js');
-} else {
-  b = require('./cjs/react-dom-server.edge.development.js');
-  l = require('./cjs/react-dom-server-legacy.browser.development.js');
-}
-
-exports.version = b.version;
-exports.renderToReadableStream = b.renderToReadableStream;
-exports.renderToString = l.renderToString;
-exports.renderToStaticMarkup = l.renderToStaticMarkup;
-exports.resume = b.resume;
Index: de_modules/react-dom/server.js
===================================================================
--- node_modules/react-dom/server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-'use strict';
-
-module.exports = require('./server.node');
Index: de_modules/react-dom/server.node.js
===================================================================
--- node_modules/react-dom/server.node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-'use strict';
-
-var l, s;
-if (process.env.NODE_ENV === 'production') {
-  l = require('./cjs/react-dom-server-legacy.node.production.js');
-  s = require('./cjs/react-dom-server.node.production.js');
-} else {
-  l = require('./cjs/react-dom-server-legacy.node.development.js');
-  s = require('./cjs/react-dom-server.node.development.js');
-}
-
-exports.version = l.version;
-exports.renderToString = l.renderToString;
-exports.renderToStaticMarkup = l.renderToStaticMarkup;
-exports.renderToPipeableStream = s.renderToPipeableStream;
-exports.renderToReadableStream = s.renderToReadableStream;
-exports.resumeToPipeableStream = s.resumeToPipeableStream;
-exports.resume = s.resume;
Index: de_modules/react-dom/server.react-server.js
===================================================================
--- node_modules/react-dom/server.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-'use strict';
-
-throw new Error(
-  'react-dom/server is not supported in React Server Components.'
-);
Index: de_modules/react-dom/static.browser.js
===================================================================
--- node_modules/react-dom/static.browser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-var s;
-if (process.env.NODE_ENV === 'production') {
-  s = require('./cjs/react-dom-server.browser.production.js');
-} else {
-  s = require('./cjs/react-dom-server.browser.development.js');
-}
-
-exports.version = s.version;
-exports.prerender = s.prerender;
-exports.resumeAndPrerender = s.resumeAndPrerender;
Index: de_modules/react-dom/static.edge.js
===================================================================
--- node_modules/react-dom/static.edge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-'use strict';
-
-var s;
-if (process.env.NODE_ENV === 'production') {
-  s = require('./cjs/react-dom-server.edge.production.js');
-} else {
-  s = require('./cjs/react-dom-server.edge.development.js');
-}
-
-exports.version = s.version;
-exports.prerender = s.prerender;
-exports.resumeAndPrerender = s.resumeAndPrerender;
Index: de_modules/react-dom/static.js
===================================================================
--- node_modules/react-dom/static.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-'use strict';
-
-module.exports = require('./static.node');
Index: de_modules/react-dom/static.node.js
===================================================================
--- node_modules/react-dom/static.node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-'use strict';
-
-var s;
-if (process.env.NODE_ENV === 'production') {
-  s = require('./cjs/react-dom-server.node.production.js');
-} else {
-  s = require('./cjs/react-dom-server.node.development.js');
-}
-
-exports.version = s.version;
-exports.prerenderToNodeStream = s.prerenderToNodeStream;
-exports.prerender = s.prerender;
-exports.resumeAndPrerenderToNodeStream = s.resumeAndPrerenderToNodeStream;
-exports.resumeAndPrerender = s.resumeAndPrerender;
Index: de_modules/react-dom/static.react-server.js
===================================================================
--- node_modules/react-dom/static.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-'use strict';
-
-throw new Error(
-  'react-dom/static is not supported in React Server Components.'
-);
Index: de_modules/react-dom/test-utils.js
===================================================================
--- node_modules/react-dom/test-utils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-dom-test-utils.production.js');
-} else {
-  module.exports = require('./cjs/react-dom-test-utils.development.js');
-}
Index: de_modules/react-is/LICENSE
===================================================================
--- node_modules/react-is/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Meta Platforms, Inc. and affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/react-is/README.md
===================================================================
--- node_modules/react-is/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,103 +1,0 @@
-# `react-is`
-
-This package allows you to test arbitrary values and see if they're a particular React element type.
-
-## Installation
-
-```sh
-# Yarn
-yarn add react-is
-
-# NPM
-npm install react-is
-```
-
-## Usage
-
-### Determining if a Component is Valid
-
-```js
-import React from "react";
-import * as ReactIs from "react-is";
-
-class ClassComponent extends React.Component {
-  render() {
-    return React.createElement("div");
-  }
-}
-
-const FunctionComponent = () => React.createElement("div");
-
-const ForwardRefComponent = React.forwardRef((props, ref) =>
-  React.createElement(Component, { forwardedRef: ref, ...props })
-);
-
-const Context = React.createContext(false);
-
-ReactIs.isValidElementType("div"); // true
-ReactIs.isValidElementType(ClassComponent); // true
-ReactIs.isValidElementType(FunctionComponent); // true
-ReactIs.isValidElementType(ForwardRefComponent); // true
-ReactIs.isValidElementType(Context.Provider); // true
-ReactIs.isValidElementType(Context.Consumer); // true
-```
-
-### Determining an Element's Type
-
-#### Context
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-const ThemeContext = React.createContext("blue");
-
-ReactIs.isContextConsumer(<ThemeContext.Consumer />); // true
-ReactIs.isContextProvider(<ThemeContext.Provider />); // true
-ReactIs.typeOf(<ThemeContext.Provider />) === ReactIs.ContextProvider; // true
-ReactIs.typeOf(<ThemeContext.Consumer />) === ReactIs.ContextConsumer; // true
-```
-
-#### Element
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isElement(<div />); // true
-ReactIs.typeOf(<div />) === ReactIs.Element; // true
-```
-
-#### Fragment
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isFragment(<></>); // true
-ReactIs.typeOf(<></>) === ReactIs.Fragment; // true
-```
-
-#### Portal
-
-```js
-import React from "react";
-import ReactDOM from "react-dom";
-import * as ReactIs from 'react-is';
-
-const div = document.createElement("div");
-const portal = ReactDOM.createPortal(<div />, div);
-
-ReactIs.isPortal(portal); // true
-ReactIs.typeOf(portal) === ReactIs.Portal; // true
-```
-
-#### StrictMode
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isStrictMode(<React.StrictMode />); // true
-ReactIs.typeOf(<React.StrictMode />) === ReactIs.StrictMode; // true
-```
Index: de_modules/react-is/cjs/react-is.development.js
===================================================================
--- node_modules/react-is/cjs/react-is.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-/**
- * @license React
- * react-is.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function typeOf(object) {
-      if ("object" === typeof object && null !== object) {
-        var $$typeof = object.$$typeof;
-        switch ($$typeof) {
-          case REACT_ELEMENT_TYPE:
-            switch (((object = object.type), object)) {
-              case REACT_FRAGMENT_TYPE:
-              case REACT_PROFILER_TYPE:
-              case REACT_STRICT_MODE_TYPE:
-              case REACT_SUSPENSE_TYPE:
-              case REACT_SUSPENSE_LIST_TYPE:
-              case REACT_VIEW_TRANSITION_TYPE:
-                return object;
-              default:
-                switch (((object = object && object.$$typeof), object)) {
-                  case REACT_CONTEXT_TYPE:
-                  case REACT_FORWARD_REF_TYPE:
-                  case REACT_LAZY_TYPE:
-                  case REACT_MEMO_TYPE:
-                    return object;
-                  case REACT_CONSUMER_TYPE:
-                    return object;
-                  default:
-                    return $$typeof;
-                }
-            }
-          case REACT_PORTAL_TYPE:
-            return $$typeof;
-        }
-      }
-    }
-    var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-    exports.ContextConsumer = REACT_CONSUMER_TYPE;
-    exports.ContextProvider = REACT_CONTEXT_TYPE;
-    exports.Element = REACT_ELEMENT_TYPE;
-    exports.ForwardRef = REACT_FORWARD_REF_TYPE;
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.Lazy = REACT_LAZY_TYPE;
-    exports.Memo = REACT_MEMO_TYPE;
-    exports.Portal = REACT_PORTAL_TYPE;
-    exports.Profiler = REACT_PROFILER_TYPE;
-    exports.StrictMode = REACT_STRICT_MODE_TYPE;
-    exports.Suspense = REACT_SUSPENSE_TYPE;
-    exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;
-    exports.isContextConsumer = function (object) {
-      return typeOf(object) === REACT_CONSUMER_TYPE;
-    };
-    exports.isContextProvider = function (object) {
-      return typeOf(object) === REACT_CONTEXT_TYPE;
-    };
-    exports.isElement = function (object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    };
-    exports.isForwardRef = function (object) {
-      return typeOf(object) === REACT_FORWARD_REF_TYPE;
-    };
-    exports.isFragment = function (object) {
-      return typeOf(object) === REACT_FRAGMENT_TYPE;
-    };
-    exports.isLazy = function (object) {
-      return typeOf(object) === REACT_LAZY_TYPE;
-    };
-    exports.isMemo = function (object) {
-      return typeOf(object) === REACT_MEMO_TYPE;
-    };
-    exports.isPortal = function (object) {
-      return typeOf(object) === REACT_PORTAL_TYPE;
-    };
-    exports.isProfiler = function (object) {
-      return typeOf(object) === REACT_PROFILER_TYPE;
-    };
-    exports.isStrictMode = function (object) {
-      return typeOf(object) === REACT_STRICT_MODE_TYPE;
-    };
-    exports.isSuspense = function (object) {
-      return typeOf(object) === REACT_SUSPENSE_TYPE;
-    };
-    exports.isSuspenseList = function (object) {
-      return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
-    };
-    exports.isValidElementType = function (type) {
-      return "string" === typeof type ||
-        "function" === typeof type ||
-        type === REACT_FRAGMENT_TYPE ||
-        type === REACT_PROFILER_TYPE ||
-        type === REACT_STRICT_MODE_TYPE ||
-        type === REACT_SUSPENSE_TYPE ||
-        type === REACT_SUSPENSE_LIST_TYPE ||
-        ("object" === typeof type &&
-          null !== type &&
-          (type.$$typeof === REACT_LAZY_TYPE ||
-            type.$$typeof === REACT_MEMO_TYPE ||
-            type.$$typeof === REACT_CONTEXT_TYPE ||
-            type.$$typeof === REACT_CONSUMER_TYPE ||
-            type.$$typeof === REACT_FORWARD_REF_TYPE ||
-            type.$$typeof === REACT_CLIENT_REFERENCE ||
-            void 0 !== type.getModuleId))
-        ? !0
-        : !1;
-    };
-    exports.typeOf = typeOf;
-  })();
Index: de_modules/react-is/cjs/react-is.production.js
===================================================================
--- node_modules/react-is/cjs/react-is.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,129 +1,0 @@
-/**
- * @license React
- * react-is.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.
- */
-
-"use strict";
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
-  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
-function typeOf(object) {
-  if ("object" === typeof object && null !== object) {
-    var $$typeof = object.$$typeof;
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        switch (((object = object.type), object)) {
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-          case REACT_SUSPENSE_LIST_TYPE:
-          case REACT_VIEW_TRANSITION_TYPE:
-            return object;
-          default:
-            switch (((object = object && object.$$typeof), object)) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-                return object;
-              case REACT_CONSUMER_TYPE:
-                return object;
-              default:
-                return $$typeof;
-            }
-        }
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-}
-exports.ContextConsumer = REACT_CONSUMER_TYPE;
-exports.ContextProvider = REACT_CONTEXT_TYPE;
-exports.Element = REACT_ELEMENT_TYPE;
-exports.ForwardRef = REACT_FORWARD_REF_TYPE;
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.Lazy = REACT_LAZY_TYPE;
-exports.Memo = REACT_MEMO_TYPE;
-exports.Portal = REACT_PORTAL_TYPE;
-exports.Profiler = REACT_PROFILER_TYPE;
-exports.StrictMode = REACT_STRICT_MODE_TYPE;
-exports.Suspense = REACT_SUSPENSE_TYPE;
-exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;
-exports.isContextConsumer = function (object) {
-  return typeOf(object) === REACT_CONSUMER_TYPE;
-};
-exports.isContextProvider = function (object) {
-  return typeOf(object) === REACT_CONTEXT_TYPE;
-};
-exports.isElement = function (object) {
-  return (
-    "object" === typeof object &&
-    null !== object &&
-    object.$$typeof === REACT_ELEMENT_TYPE
-  );
-};
-exports.isForwardRef = function (object) {
-  return typeOf(object) === REACT_FORWARD_REF_TYPE;
-};
-exports.isFragment = function (object) {
-  return typeOf(object) === REACT_FRAGMENT_TYPE;
-};
-exports.isLazy = function (object) {
-  return typeOf(object) === REACT_LAZY_TYPE;
-};
-exports.isMemo = function (object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-};
-exports.isPortal = function (object) {
-  return typeOf(object) === REACT_PORTAL_TYPE;
-};
-exports.isProfiler = function (object) {
-  return typeOf(object) === REACT_PROFILER_TYPE;
-};
-exports.isStrictMode = function (object) {
-  return typeOf(object) === REACT_STRICT_MODE_TYPE;
-};
-exports.isSuspense = function (object) {
-  return typeOf(object) === REACT_SUSPENSE_TYPE;
-};
-exports.isSuspenseList = function (object) {
-  return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
-};
-exports.isValidElementType = function (type) {
-  return "string" === typeof type ||
-    "function" === typeof type ||
-    type === REACT_FRAGMENT_TYPE ||
-    type === REACT_PROFILER_TYPE ||
-    type === REACT_STRICT_MODE_TYPE ||
-    type === REACT_SUSPENSE_TYPE ||
-    type === REACT_SUSPENSE_LIST_TYPE ||
-    ("object" === typeof type &&
-      null !== type &&
-      (type.$$typeof === REACT_LAZY_TYPE ||
-        type.$$typeof === REACT_MEMO_TYPE ||
-        type.$$typeof === REACT_CONTEXT_TYPE ||
-        type.$$typeof === REACT_CONSUMER_TYPE ||
-        type.$$typeof === REACT_FORWARD_REF_TYPE ||
-        type.$$typeof === REACT_CLIENT_REFERENCE ||
-        void 0 !== type.getModuleId))
-    ? !0
-    : !1;
-};
-exports.typeOf = typeOf;
Index: de_modules/react-is/index.js
===================================================================
--- node_modules/react-is/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-is.production.js');
-} else {
-  module.exports = require('./cjs/react-is.development.js');
-}
Index: de_modules/react-is/package.json
===================================================================
--- node_modules/react-is/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-{
-  "name": "react-is",
-  "version": "19.2.3",
-  "description": "Brand checking of React Elements.",
-  "main": "index.js",
-  "sideEffects": false,
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/react-is"
-  },
-  "keywords": [
-    "react"
-  ],
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/facebook/react/issues"
-  },
-  "homepage": "https://react.dev/",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "index.js",
-    "cjs/"
-  ]
-}
Index: de_modules/react-redux/LICENSE.md
===================================================================
--- node_modules/react-redux/LICENSE.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-present Dan Abramov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/react-redux/README.md
===================================================================
--- node_modules/react-redux/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-# React Redux
-
-Official React bindings for [Redux](https://github.com/reduxjs/redux).
-Performant and flexible.
-
-![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reduxjs/react-redux/test.yml?style=flat-square) [![npm version](https://img.shields.io/npm/v/react-redux.svg?style=flat-square)](https://www.npmjs.com/package/react-redux)
-[![npm downloads](https://img.shields.io/npm/dm/react-redux.svg?style=flat-square)](https://www.npmjs.com/package/react-redux)
-[![#redux channel on Discord](https://img.shields.io/badge/discord-redux@reactiflux-61DAFB.svg?style=flat-square)](http://www.reactiflux.com)
-
-## Installation
-
-### Create a React Redux App
-
-The recommended way to start new apps with React and Redux is by using [our official Redux+TS template for Vite](https://github.com/reduxjs/redux-templates), or by creating a new Next.js project using [Next's `with-redux` template](https://github.com/vercel/next.js/tree/canary/examples/with-redux).
-
-Both of these already have Redux Toolkit and React-Redux configured appropriately for that build tool, and come with a small example app that demonstrates how to use several of Redux Toolkit's features.
-
-```bash
-# Vite with our Redux+TS template
-# (using the `degit` tool to clone and extract the template)
-npx degit reduxjs/redux-templates/packages/vite-template-redux my-app
-
-# Next.js using the `with-redux` template
-npx create-next-app --example with-redux my-app
-```
-
-### An Existing React App
-
-React Redux 8.0 requires **React 16.8.3 or later** (or React Native 0.59 or later).
-
-To use React Redux with your React app, install it as a dependency:
-
-```bash
-# If you use npm:
-npm install react-redux
-
-# Or if you use Yarn:
-yarn add react-redux
-```
-
-You'll also need to [install Redux](https://redux.js.org/introduction/installation) and [set up a Redux store](https://redux.js.org/recipes/configuring-your-store/) in your app.
-
-This assumes that you’re using [npm](http://npmjs.com/) package manager
-with a module bundler like [Webpack](https://webpack.js.org/) or
-[Browserify](http://browserify.org/) to consume [CommonJS
-modules](https://webpack.js.org/api/module-methods/#commonjs).
-
-If you don’t yet use [npm](http://npmjs.com/) or a modern module bundler, and would rather prefer a single-file [UMD](https://github.com/umdjs/umd) build that makes `ReactRedux` available as a global object, you can grab a pre-built version from [cdnjs](https://cdnjs.com/libraries/react-redux). We _don’t_ recommend this approach for any serious application, as most of the libraries complementary to Redux are only available on [npm](http://npmjs.com/).
-
-## Documentation
-
-The React Redux docs are published at **https://react-redux.js.org** .
-
-## How Does It Work?
-
-The post [The History and Implementation of React-Redux](https://blog.isquaredsoftware.com/2018/11/react-redux-history-implementation/)
-explains what it does, how it works, and how the API and implementation have evolved over time.
-
-There's also a [Deep Dive into React-Redux](https://blog.isquaredsoftware.com/2019/06/presentation-react-redux-deep-dive/) talk that covers some of the same material at a higher level.
-
-## License
-
-[MIT](LICENSE.md)
Index: de_modules/react-redux/dist/cjs/index.js
===================================================================
--- node_modules/react-redux/dist/cjs/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-'use strict'
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./react-redux.production.min.cjs')
-} else {
-  module.exports = require('./react-redux.development.cjs')
-}
Index: de_modules/react-redux/dist/cjs/react-redux.development.cjs
===================================================================
--- node_modules/react-redux/dist/cjs/react-redux.development.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1116 +1,0 @@
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  Provider: () => Provider_default,
-  ReactReduxContext: () => ReactReduxContext,
-  batch: () => batch,
-  connect: () => connect_default,
-  createDispatchHook: () => createDispatchHook,
-  createSelectorHook: () => createSelectorHook,
-  createStoreHook: () => createStoreHook,
-  shallowEqual: () => shallowEqual,
-  useDispatch: () => useDispatch,
-  useSelector: () => useSelector,
-  useStore: () => useStore
-});
-module.exports = __toCommonJS(src_exports);
-
-// src/utils/react.ts
-var React = __toESM(require("react"));
-
-// src/utils/react-is.ts
-var IS_REACT_19 = /* @__PURE__ */ React.version.startsWith("19");
-var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(
-  IS_REACT_19 ? "react.transitional.element" : "react.element"
-);
-var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
-var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
-var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
-var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
-var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer");
-var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
-var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
-var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
-var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(
-  "react.suspense_list"
-);
-var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
-var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
-var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
-var REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(
-  "react.client.reference"
-);
-var ForwardRef = REACT_FORWARD_REF_TYPE;
-var Memo = REACT_MEMO_TYPE;
-function isValidElementType(type) {
-  return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;
-}
-function typeOf(object) {
-  if (typeof object === "object" && object !== null) {
-    const { $$typeof } = object;
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        switch (object = object.type, object) {
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-          case REACT_SUSPENSE_LIST_TYPE:
-            return object;
-          default:
-            switch (object = object && object.$$typeof, object) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-                return object;
-              case REACT_CONSUMER_TYPE:
-                return object;
-              default:
-                return $$typeof;
-            }
-        }
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-}
-function isContextConsumer(object) {
-  return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;
-}
-function isMemo(object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/connect/verifySubselectors.ts
-function verify(selector, methodName) {
-  if (!selector) {
-    throw new Error(`Unexpected value for ${methodName} in connect.`);
-  } else if (methodName === "mapStateToProps" || methodName === "mapDispatchToProps") {
-    if (!Object.prototype.hasOwnProperty.call(selector, "dependsOnOwnProps")) {
-      warning(
-        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`
-      );
-    }
-  }
-}
-function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {
-  verify(mapStateToProps, "mapStateToProps");
-  verify(mapDispatchToProps, "mapDispatchToProps");
-  verify(mergeProps, "mergeProps");
-}
-
-// src/connect/selectorFactory.ts
-function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {
-  areStatesEqual,
-  areOwnPropsEqual,
-  areStatePropsEqual
-}) {
-  let hasRunAtLeastOnce = false;
-  let state;
-  let ownProps;
-  let stateProps;
-  let dispatchProps;
-  let mergedProps;
-  function handleFirstCall(firstState, firstOwnProps) {
-    state = firstState;
-    ownProps = firstOwnProps;
-    stateProps = mapStateToProps(state, ownProps);
-    dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    hasRunAtLeastOnce = true;
-    return mergedProps;
-  }
-  function handleNewPropsAndNewState() {
-    stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewProps() {
-    if (mapStateToProps.dependsOnOwnProps)
-      stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewState() {
-    const nextStateProps = mapStateToProps(state, ownProps);
-    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
-    stateProps = nextStateProps;
-    if (statePropsChanged)
-      mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleSubsequentCalls(nextState, nextOwnProps) {
-    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
-    const stateChanged = !areStatesEqual(
-      nextState,
-      state,
-      nextOwnProps,
-      ownProps
-    );
-    state = nextState;
-    ownProps = nextOwnProps;
-    if (propsChanged && stateChanged) return handleNewPropsAndNewState();
-    if (propsChanged) return handleNewProps();
-    if (stateChanged) return handleNewState();
-    return mergedProps;
-  }
-  return function pureFinalPropsSelector(nextState, nextOwnProps) {
-    return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
-  };
-}
-function finalPropsSelectorFactory(dispatch, {
-  initMapStateToProps,
-  initMapDispatchToProps,
-  initMergeProps,
-  ...options
-}) {
-  const mapStateToProps = initMapStateToProps(dispatch, options);
-  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
-  const mergeProps = initMergeProps(dispatch, options);
-  if (true) {
-    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);
-  }
-  return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
-}
-
-// src/utils/bindActionCreators.ts
-function bindActionCreators(actionCreators, dispatch) {
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null) return false;
-  const proto = Object.getPrototypeOf(obj);
-  if (proto === null) return true;
-  let baseProto = proto;
-  while (Object.getPrototypeOf(baseProto) !== null) {
-    baseProto = Object.getPrototypeOf(baseProto);
-  }
-  return proto === baseProto;
-}
-
-// src/utils/verifyPlainObject.ts
-function verifyPlainObject(value, displayName, methodName) {
-  if (!isPlainObject(value)) {
-    warning(
-      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`
-    );
-  }
-}
-
-// src/connect/wrapMapToProps.ts
-function wrapMapToPropsConstant(getConstant) {
-  return function initConstantSelector(dispatch) {
-    const constant = getConstant(dispatch);
-    function constantSelector() {
-      return constant;
-    }
-    constantSelector.dependsOnOwnProps = false;
-    return constantSelector;
-  };
-}
-function getDependsOnOwnProps(mapToProps) {
-  return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
-}
-function wrapMapToPropsFunc(mapToProps, methodName) {
-  return function initProxySelector(dispatch, { displayName }) {
-    const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
-      return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);
-    };
-    proxy.dependsOnOwnProps = true;
-    proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
-      proxy.mapToProps = mapToProps;
-      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
-      let props = proxy(stateOrDispatch, ownProps);
-      if (typeof props === "function") {
-        proxy.mapToProps = props;
-        proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
-        props = proxy(stateOrDispatch, ownProps);
-      }
-      if (true)
-        verifyPlainObject(props, displayName, methodName);
-      return props;
-    };
-    return proxy;
-  };
-}
-
-// src/connect/invalidArgFactory.ts
-function createInvalidArgFactory(arg, name) {
-  return (dispatch, options) => {
-    throw new Error(
-      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`
-    );
-  };
-}
-
-// src/connect/mapDispatchToProps.ts
-function mapDispatchToPropsFactory(mapDispatchToProps) {
-  return mapDispatchToProps && typeof mapDispatchToProps === "object" ? wrapMapToPropsConstant(
-    (dispatch) => (
-      // @ts-ignore
-      bindActionCreators(mapDispatchToProps, dispatch)
-    )
-  ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({
-    dispatch
-  })) : typeof mapDispatchToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapDispatchToProps, "mapDispatchToProps")
-  ) : createInvalidArgFactory(mapDispatchToProps, "mapDispatchToProps");
-}
-
-// src/connect/mapStateToProps.ts
-function mapStateToPropsFactory(mapStateToProps) {
-  return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapStateToProps, "mapStateToProps")
-  ) : createInvalidArgFactory(mapStateToProps, "mapStateToProps");
-}
-
-// src/connect/mergeProps.ts
-function defaultMergeProps(stateProps, dispatchProps, ownProps) {
-  return { ...ownProps, ...stateProps, ...dispatchProps };
-}
-function wrapMergePropsFunc(mergeProps) {
-  return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {
-    let hasRunOnce = false;
-    let mergedProps;
-    return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
-      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-      if (hasRunOnce) {
-        if (!areMergedPropsEqual(nextMergedProps, mergedProps))
-          mergedProps = nextMergedProps;
-      } else {
-        hasRunOnce = true;
-        mergedProps = nextMergedProps;
-        if (true)
-          verifyPlainObject(mergedProps, displayName, "mergeProps");
-      }
-      return mergedProps;
-    };
-  };
-}
-function mergePropsFactory(mergeProps) {
-  return !mergeProps ? () => defaultMergeProps : typeof mergeProps === "function" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, "mergeProps");
-}
-
-// src/utils/batch.ts
-function defaultNoopBatch(callback) {
-  callback();
-}
-
-// src/utils/Subscription.ts
-function createListenerCollection() {
-  let first = null;
-  let last = null;
-  return {
-    clear() {
-      first = null;
-      last = null;
-    },
-    notify() {
-      defaultNoopBatch(() => {
-        let listener = first;
-        while (listener) {
-          listener.callback();
-          listener = listener.next;
-        }
-      });
-    },
-    get() {
-      const listeners = [];
-      let listener = first;
-      while (listener) {
-        listeners.push(listener);
-        listener = listener.next;
-      }
-      return listeners;
-    },
-    subscribe(callback) {
-      let isSubscribed = true;
-      const listener = last = {
-        callback,
-        next: null,
-        prev: last
-      };
-      if (listener.prev) {
-        listener.prev.next = listener;
-      } else {
-        first = listener;
-      }
-      return function unsubscribe() {
-        if (!isSubscribed || first === null) return;
-        isSubscribed = false;
-        if (listener.next) {
-          listener.next.prev = listener.prev;
-        } else {
-          last = listener.prev;
-        }
-        if (listener.prev) {
-          listener.prev.next = listener.next;
-        } else {
-          first = listener.next;
-        }
-      };
-    }
-  };
-}
-var nullListeners = {
-  notify() {
-  },
-  get: () => []
-};
-function createSubscription(store, parentSub) {
-  let unsubscribe;
-  let listeners = nullListeners;
-  let subscriptionsAmount = 0;
-  let selfSubscribed = false;
-  function addNestedSub(listener) {
-    trySubscribe();
-    const cleanupListener = listeners.subscribe(listener);
-    let removed = false;
-    return () => {
-      if (!removed) {
-        removed = true;
-        cleanupListener();
-        tryUnsubscribe();
-      }
-    };
-  }
-  function notifyNestedSubs() {
-    listeners.notify();
-  }
-  function handleChangeWrapper() {
-    if (subscription.onStateChange) {
-      subscription.onStateChange();
-    }
-  }
-  function isSubscribed() {
-    return selfSubscribed;
-  }
-  function trySubscribe() {
-    subscriptionsAmount++;
-    if (!unsubscribe) {
-      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);
-      listeners = createListenerCollection();
-    }
-  }
-  function tryUnsubscribe() {
-    subscriptionsAmount--;
-    if (unsubscribe && subscriptionsAmount === 0) {
-      unsubscribe();
-      unsubscribe = void 0;
-      listeners.clear();
-      listeners = nullListeners;
-    }
-  }
-  function trySubscribeSelf() {
-    if (!selfSubscribed) {
-      selfSubscribed = true;
-      trySubscribe();
-    }
-  }
-  function tryUnsubscribeSelf() {
-    if (selfSubscribed) {
-      selfSubscribed = false;
-      tryUnsubscribe();
-    }
-  }
-  const subscription = {
-    addNestedSub,
-    notifyNestedSubs,
-    handleChangeWrapper,
-    isSubscribed,
-    trySubscribe: trySubscribeSelf,
-    tryUnsubscribe: tryUnsubscribeSelf,
-    getListeners: () => listeners
-  };
-  return subscription;
-}
-
-// src/utils/useIsomorphicLayoutEffect.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? React.useLayoutEffect : React.useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-
-// src/utils/shallowEqual.ts
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || y !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function shallowEqual(objA, objB) {
-  if (is(objA, objB)) return true;
-  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
-    return false;
-  }
-  const keysA = Object.keys(objA);
-  const keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return false;
-  for (let i = 0; i < keysA.length; i++) {
-    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-// src/utils/hoistStatics.ts
-var REACT_STATICS = {
-  childContextTypes: true,
-  contextType: true,
-  contextTypes: true,
-  defaultProps: true,
-  displayName: true,
-  getDefaultProps: true,
-  getDerivedStateFromError: true,
-  getDerivedStateFromProps: true,
-  mixins: true,
-  propTypes: true,
-  type: true
-};
-var KNOWN_STATICS = {
-  name: true,
-  length: true,
-  prototype: true,
-  caller: true,
-  callee: true,
-  arguments: true,
-  arity: true
-};
-var FORWARD_REF_STATICS = {
-  $$typeof: true,
-  render: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true
-};
-var MEMO_STATICS = {
-  $$typeof: true,
-  compare: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-  type: true
-};
-var TYPE_STATICS = {
-  [ForwardRef]: FORWARD_REF_STATICS,
-  [Memo]: MEMO_STATICS
-};
-function getStatics(component) {
-  if (isMemo(component)) {
-    return MEMO_STATICS;
-  }
-  return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS;
-}
-var defineProperty = Object.defineProperty;
-var getOwnPropertyNames = Object.getOwnPropertyNames;
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectPrototype = Object.prototype;
-function hoistNonReactStatics(targetComponent, sourceComponent) {
-  if (typeof sourceComponent !== "string") {
-    if (objectPrototype) {
-      const inheritedComponent = getPrototypeOf(sourceComponent);
-      if (inheritedComponent && inheritedComponent !== objectPrototype) {
-        hoistNonReactStatics(targetComponent, inheritedComponent);
-      }
-    }
-    let keys = getOwnPropertyNames(sourceComponent);
-    if (getOwnPropertySymbols) {
-      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
-    }
-    const targetStatics = getStatics(targetComponent);
-    const sourceStatics = getStatics(sourceComponent);
-    for (let i = 0; i < keys.length; ++i) {
-      const key = keys[i];
-      if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
-        const descriptor = getOwnPropertyDescriptor(sourceComponent, key);
-        try {
-          defineProperty(targetComponent, key, descriptor);
-        } catch (e) {
-        }
-      }
-    }
-  }
-  return targetComponent;
-}
-
-// src/components/Context.ts
-var ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);
-var gT = typeof globalThis !== "undefined" ? globalThis : (
-  /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */
-  {}
-);
-function getContext() {
-  if (!React.createContext) return {};
-  const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map();
-  let realContext = contextMap.get(React.createContext);
-  if (!realContext) {
-    realContext = React.createContext(
-      null
-    );
-    if (true) {
-      realContext.displayName = "ReactRedux";
-    }
-    contextMap.set(React.createContext, realContext);
-  }
-  return realContext;
-}
-var ReactReduxContext = /* @__PURE__ */ getContext();
-
-// src/components/connect.tsx
-var NO_SUBSCRIPTION_ARRAY = [null, null];
-var stringifyComponent = (Comp) => {
-  try {
-    return JSON.stringify(Comp);
-  } catch (err) {
-    return String(Comp);
-  }
-};
-function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
-  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);
-}
-function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {
-  lastWrapperProps.current = wrapperProps;
-  renderIsScheduled.current = false;
-  if (childPropsFromStoreUpdate.current) {
-    childPropsFromStoreUpdate.current = null;
-    notifyNestedSubs();
-  }
-}
-function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {
-  if (!shouldHandleStateChanges) return () => {
-  };
-  let didUnsubscribe = false;
-  let lastThrownError = null;
-  const checkForUpdates = () => {
-    if (didUnsubscribe || !isMounted.current) {
-      return;
-    }
-    const latestStoreState = store.getState();
-    let newChildProps, error;
-    try {
-      newChildProps = childPropsSelector(
-        latestStoreState,
-        lastWrapperProps.current
-      );
-    } catch (e) {
-      error = e;
-      lastThrownError = e;
-    }
-    if (!error) {
-      lastThrownError = null;
-    }
-    if (newChildProps === lastChildProps.current) {
-      if (!renderIsScheduled.current) {
-        notifyNestedSubs();
-      }
-    } else {
-      lastChildProps.current = newChildProps;
-      childPropsFromStoreUpdate.current = newChildProps;
-      renderIsScheduled.current = true;
-      additionalSubscribeListener();
-    }
-  };
-  subscription.onStateChange = checkForUpdates;
-  subscription.trySubscribe();
-  checkForUpdates();
-  const unsubscribeWrapper = () => {
-    didUnsubscribe = true;
-    subscription.tryUnsubscribe();
-    subscription.onStateChange = null;
-    if (lastThrownError) {
-      throw lastThrownError;
-    }
-  };
-  return unsubscribeWrapper;
-}
-function strictEqual(a, b) {
-  return a === b;
-}
-var hasWarnedAboutDeprecatedPureOption = false;
-function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
-  // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.
-  // @ts-ignore
-  pure,
-  areStatesEqual = strictEqual,
-  areOwnPropsEqual = shallowEqual,
-  areStatePropsEqual = shallowEqual,
-  areMergedPropsEqual = shallowEqual,
-  // use React's forwardRef to expose a ref of the wrapped component
-  forwardRef = false,
-  // the context consumer to use
-  context = ReactReduxContext
-} = {}) {
-  if (true) {
-    if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {
-      hasWarnedAboutDeprecatedPureOption = true;
-      warning(
-        'The `pure` option has been removed. `connect` is now always a "pure/memoized" component'
-      );
-    }
-  }
-  const Context = context;
-  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);
-  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);
-  const initMergeProps = mergePropsFactory(mergeProps);
-  const shouldHandleStateChanges = Boolean(mapStateToProps);
-  const wrapWithConnect = (WrappedComponent) => {
-    if (true) {
-      const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);
-      if (!isValid)
-        throw new Error(
-          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(
-            WrappedComponent
-          )}`
-        );
-    }
-    const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || "Component";
-    const displayName = `Connect(${wrappedComponentName})`;
-    const selectorFactoryOptions = {
-      shouldHandleStateChanges,
-      displayName,
-      wrappedComponentName,
-      WrappedComponent,
-      // @ts-ignore
-      initMapStateToProps,
-      initMapDispatchToProps,
-      initMergeProps,
-      areStatesEqual,
-      areStatePropsEqual,
-      areOwnPropsEqual,
-      areMergedPropsEqual
-    };
-    function ConnectFunction(props) {
-      const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {
-        const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;
-        return [props.context, reactReduxForwardedRef2, wrapperProps2];
-      }, [props]);
-      const ContextToUse = React.useMemo(() => {
-        let ResultContext = Context;
-        if (propsContext?.Consumer) {
-          if (true) {
-            const isValid = /* @__PURE__ */ isContextConsumer(
-              // @ts-ignore
-              /* @__PURE__ */ React.createElement(propsContext.Consumer, null)
-            );
-            if (!isValid) {
-              throw new Error(
-                "You must pass a valid React context consumer as `props.context`"
-              );
-            }
-            ResultContext = propsContext;
-          }
-        }
-        return ResultContext;
-      }, [propsContext, Context]);
-      const contextValue = React.useContext(ContextToUse);
-      const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
-      const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
-      if (!didStoreComeFromProps && !didStoreComeFromContext) {
-        throw new Error(
-          `Could not find "store" in the context of "${displayName}". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`
-        );
-      }
-      const store = didStoreComeFromProps ? props.store : contextValue.store;
-      const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;
-      const childPropsSelector = React.useMemo(() => {
-        return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);
-      }, [store]);
-      const [subscription, notifyNestedSubs] = React.useMemo(() => {
-        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;
-        const subscription2 = createSubscription(
-          store,
-          didStoreComeFromProps ? void 0 : contextValue.subscription
-        );
-        const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);
-        return [subscription2, notifyNestedSubs2];
-      }, [store, didStoreComeFromProps, contextValue]);
-      const overriddenContextValue = React.useMemo(() => {
-        if (didStoreComeFromProps) {
-          return contextValue;
-        }
-        return {
-          ...contextValue,
-          subscription
-        };
-      }, [didStoreComeFromProps, contextValue, subscription]);
-      const lastChildProps = React.useRef(void 0);
-      const lastWrapperProps = React.useRef(wrapperProps);
-      const childPropsFromStoreUpdate = React.useRef(void 0);
-      const renderIsScheduled = React.useRef(false);
-      const isMounted = React.useRef(false);
-      const latestSubscriptionCallbackError = React.useRef(
-        void 0
-      );
-      useIsomorphicLayoutEffect(() => {
-        isMounted.current = true;
-        return () => {
-          isMounted.current = false;
-        };
-      }, []);
-      const actualChildPropsSelector = React.useMemo(() => {
-        const selector = () => {
-          if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
-            return childPropsFromStoreUpdate.current;
-          }
-          return childPropsSelector(store.getState(), wrapperProps);
-        };
-        return selector;
-      }, [store, wrapperProps]);
-      const subscribeForReact = React.useMemo(() => {
-        const subscribe = (reactListener) => {
-          if (!subscription) {
-            return () => {
-            };
-          }
-          return subscribeUpdates(
-            shouldHandleStateChanges,
-            store,
-            subscription,
-            // @ts-ignore
-            childPropsSelector,
-            lastWrapperProps,
-            lastChildProps,
-            renderIsScheduled,
-            isMounted,
-            childPropsFromStoreUpdate,
-            notifyNestedSubs,
-            reactListener
-          );
-        };
-        return subscribe;
-      }, [subscription]);
-      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [
-        lastWrapperProps,
-        lastChildProps,
-        renderIsScheduled,
-        wrapperProps,
-        childPropsFromStoreUpdate,
-        notifyNestedSubs
-      ]);
-      let actualChildProps;
-      try {
-        actualChildProps = React.useSyncExternalStore(
-          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing
-          subscribeForReact,
-          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,
-          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.
-          actualChildPropsSelector,
-          getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector
-        );
-      } catch (err) {
-        if (latestSubscriptionCallbackError.current) {
-          ;
-          err.message += `
-The error may be correlated with this previous error:
-${latestSubscriptionCallbackError.current.stack}
-
-`;
-        }
-        throw err;
-      }
-      useIsomorphicLayoutEffect(() => {
-        latestSubscriptionCallbackError.current = void 0;
-        childPropsFromStoreUpdate.current = void 0;
-        lastChildProps.current = actualChildProps;
-      });
-      const renderedWrappedComponent = React.useMemo(() => {
-        return (
-          // @ts-ignore
-          /* @__PURE__ */ React.createElement(
-            WrappedComponent,
-            {
-              ...actualChildProps,
-              ref: reactReduxForwardedRef
-            }
-          )
-        );
-      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);
-      const renderedChild = React.useMemo(() => {
-        if (shouldHandleStateChanges) {
-          return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);
-        }
-        return renderedWrappedComponent;
-      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
-      return renderedChild;
-    }
-    const _Connect = React.memo(ConnectFunction);
-    const Connect = _Connect;
-    Connect.WrappedComponent = WrappedComponent;
-    Connect.displayName = ConnectFunction.displayName = displayName;
-    if (forwardRef) {
-      const _forwarded = React.forwardRef(
-        function forwardConnectRef(props, ref) {
-          return /* @__PURE__ */ React.createElement(Connect, { ...props, reactReduxForwardedRef: ref });
-        }
-      );
-      const forwarded = _forwarded;
-      forwarded.displayName = displayName;
-      forwarded.WrappedComponent = WrappedComponent;
-      return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);
-    }
-    return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);
-  };
-  return wrapWithConnect;
-}
-var connect_default = connect;
-
-// src/components/Provider.tsx
-function Provider(providerProps) {
-  const { children, context, serverState, store } = providerProps;
-  const contextValue = React.useMemo(() => {
-    const subscription = createSubscription(store);
-    const baseContextValue = {
-      store,
-      subscription,
-      getServerState: serverState ? () => serverState : void 0
-    };
-    if (false) {
-      return baseContextValue;
-    } else {
-      const { identityFunctionCheck = "once", stabilityCheck = "once" } = providerProps;
-      return /* @__PURE__ */ Object.assign(baseContextValue, {
-        stabilityCheck,
-        identityFunctionCheck
-      });
-    }
-  }, [store, serverState]);
-  const previousState = React.useMemo(() => store.getState(), [store]);
-  useIsomorphicLayoutEffect(() => {
-    const { subscription } = contextValue;
-    subscription.onStateChange = subscription.notifyNestedSubs;
-    subscription.trySubscribe();
-    if (previousState !== store.getState()) {
-      subscription.notifyNestedSubs();
-    }
-    return () => {
-      subscription.tryUnsubscribe();
-      subscription.onStateChange = void 0;
-    };
-  }, [contextValue, previousState]);
-  const Context = context || ReactReduxContext;
-  return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);
-}
-var Provider_default = Provider;
-
-// src/hooks/useReduxContext.ts
-function createReduxContextHook(context = ReactReduxContext) {
-  return function useReduxContext2() {
-    const contextValue = React.useContext(context);
-    if (!contextValue) {
-      throw new Error(
-        "could not find react-redux context value; please ensure the component is wrapped in a <Provider>"
-      );
-    }
-    return contextValue;
-  };
-}
-var useReduxContext = /* @__PURE__ */ createReduxContextHook();
-
-// src/hooks/useStore.ts
-function createStoreHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (
-    // @ts-ignore
-    createReduxContextHook(context)
-  );
-  const useStore2 = () => {
-    const { store } = useReduxContext2();
-    return store;
-  };
-  Object.assign(useStore2, {
-    withTypes: () => useStore2
-  });
-  return useStore2;
-}
-var useStore = /* @__PURE__ */ createStoreHook();
-
-// src/hooks/useDispatch.ts
-function createDispatchHook(context = ReactReduxContext) {
-  const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);
-  const useDispatch2 = () => {
-    const store = useStore2();
-    return store.dispatch;
-  };
-  Object.assign(useDispatch2, {
-    withTypes: () => useDispatch2
-  });
-  return useDispatch2;
-}
-var useDispatch = /* @__PURE__ */ createDispatchHook();
-
-// src/hooks/useSelector.ts
-var import_with_selector = require("use-sync-external-store/with-selector.js");
-var refEquality = (a, b) => a === b;
-function createSelectorHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);
-  const useSelector2 = (selector, equalityFnOrOptions = {}) => {
-    const { equalityFn = refEquality } = typeof equalityFnOrOptions === "function" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;
-    if (true) {
-      if (!selector) {
-        throw new Error(`You must pass a selector to useSelector`);
-      }
-      if (typeof selector !== "function") {
-        throw new Error(`You must pass a function as a selector to useSelector`);
-      }
-      if (typeof equalityFn !== "function") {
-        throw new Error(
-          `You must pass a function as an equality function to useSelector`
-        );
-      }
-    }
-    const reduxContext = useReduxContext2();
-    const { store, subscription, getServerState } = reduxContext;
-    const firstRun = React.useRef(true);
-    const wrappedSelector = React.useCallback(
-      {
-        [selector.name](state) {
-          const selected = selector(state);
-          if (true) {
-            const { devModeChecks = {} } = typeof equalityFnOrOptions === "function" ? {} : equalityFnOrOptions;
-            const { identityFunctionCheck, stabilityCheck } = reduxContext;
-            const {
-              identityFunctionCheck: finalIdentityFunctionCheck,
-              stabilityCheck: finalStabilityCheck
-            } = {
-              stabilityCheck,
-              identityFunctionCheck,
-              ...devModeChecks
-            };
-            if (finalStabilityCheck === "always" || finalStabilityCheck === "once" && firstRun.current) {
-              const toCompare = selector(state);
-              if (!equalityFn(selected, toCompare)) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization",
-                  {
-                    state,
-                    selected,
-                    selected2: toCompare,
-                    stack
-                  }
-                );
-              }
-            }
-            if (finalIdentityFunctionCheck === "always" || finalIdentityFunctionCheck === "once" && firstRun.current) {
-              if (selected === state) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned the root state when called. This can lead to unnecessary rerenders.\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.",
-                  { stack }
-                );
-              }
-            }
-            if (firstRun.current) firstRun.current = false;
-          }
-          return selected;
-        }
-      }[selector.name],
-      [selector]
-    );
-    const selectedState = (0, import_with_selector.useSyncExternalStoreWithSelector)(
-      subscription.addNestedSub,
-      store.getState,
-      getServerState || store.getState,
-      wrappedSelector,
-      equalityFn
-    );
-    React.useDebugValue(selectedState);
-    return selectedState;
-  };
-  Object.assign(useSelector2, {
-    withTypes: () => useSelector2
-  });
-  return useSelector2;
-}
-var useSelector = /* @__PURE__ */ createSelectorHook();
-
-// src/exports.ts
-var batch = defaultNoopBatch;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  Provider,
-  ReactReduxContext,
-  batch,
-  connect,
-  createDispatchHook,
-  createSelectorHook,
-  createStoreHook,
-  shallowEqual,
-  useDispatch,
-  useSelector,
-  useStore
-});
-//# sourceMappingURL=react-redux.development.cjs.map
Index: de_modules/react-redux/dist/cjs/react-redux.development.cjs.map
===================================================================
--- node_modules/react-redux/dist/cjs/react-redux.development.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/utils/react.ts","../../src/utils/react-is.ts","../../src/utils/warning.ts","../../src/connect/verifySubselectors.ts","../../src/connect/selectorFactory.ts","../../src/utils/bindActionCreators.ts","../../src/utils/isPlainObject.ts","../../src/utils/verifyPlainObject.ts","../../src/connect/wrapMapToProps.ts","../../src/connect/invalidArgFactory.ts","../../src/connect/mapDispatchToProps.ts","../../src/connect/mapStateToProps.ts","../../src/connect/mergeProps.ts","../../src/utils/batch.ts","../../src/utils/Subscription.ts","../../src/utils/useIsomorphicLayoutEffect.ts","../../src/utils/shallowEqual.ts","../../src/utils/hoistStatics.ts","../../src/components/Context.ts","../../src/components/connect.tsx","../../src/components/Provider.tsx","../../src/hooks/useReduxContext.ts","../../src/hooks/useStore.ts","../../src/hooks/useDispatch.ts","../../src/hooks/useSelector.ts","../../src/exports.ts"],"sourcesContent":["export * from './exports'\n","import * as React from 'react'\n\nexport { React }\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n  IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n  'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n  'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n  return typeof type === 'string' ||\n    typeof type === 'function' ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (typeof type === 'object' &&\n      type !== null &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        type.getModuleId !== undefined))\n    ? !0\n    : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n  if (typeof object === 'object' && object !== null) {\n    const { $$typeof } = object\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object\n              case REACT_CONSUMER_TYPE:\n                return object\n              default:\n                return $$typeof\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof\n    }\n  }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n  return IS_REACT_19\n    ? typeOf(object) === REACT_CONSUMER_TYPE\n    : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n  return typeOf(object) === REACT_MEMO_TYPE\n}\n","/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\r\nexport default function warning(message: string) {\r\n  /* eslint-disable no-console */\r\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\r\n    console.error(message)\r\n  }\r\n  /* eslint-enable no-console */\r\n  try {\r\n    // This error was thrown as a convenience so that if you enable\r\n    // \"break on all exceptions\" in your console,\r\n    // it would pause the execution at this line.\r\n    throw new Error(message)\r\n    /* eslint-disable no-empty */\r\n  } catch (e) {}\r\n  /* eslint-enable no-empty */\r\n}\r\n","import warning from '../utils/warning'\n\nfunction verify(selector: unknown, methodName: string): void {\n  if (!selector) {\n    throw new Error(`Unexpected value for ${methodName} in connect.`)\n  } else if (\n    methodName === 'mapStateToProps' ||\n    methodName === 'mapDispatchToProps'\n  ) {\n    if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n      warning(\n        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`,\n      )\n    }\n  }\n}\n\nexport default function verifySubselectors(\n  mapStateToProps: unknown,\n  mapDispatchToProps: unknown,\n  mergeProps: unknown,\n): void {\n  verify(mapStateToProps, 'mapStateToProps')\n  verify(mapDispatchToProps, 'mapDispatchToProps')\n  verify(mergeProps, 'mergeProps')\n}\n","import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n  dispatch: Dispatch<Action<string>>,\n  factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n  | null\n  | undefined\n  ? (state: S) => TProps\n  : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n  state: State,\n  ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n  initialState: State,\n  ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n  | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n  | MapStateToProps<TStateProps, TOwnProps, State>\n  | null\n  | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n  | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n  readonly areStatePropsEqual: EqualityFn<TStateProps>\n  readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  dispatch: Dispatch<Action<string>>,\n  {\n    areStatesEqual,\n    areOwnPropsEqual,\n    areStatePropsEqual,\n  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n  let hasRunAtLeastOnce = false\n  let state: State\n  let ownProps: TOwnProps\n  let stateProps: TStateProps\n  let dispatchProps: TDispatchProps\n  let mergedProps: TMergedProps\n\n  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n    state = firstState\n    ownProps = firstOwnProps\n    stateProps = mapStateToProps(state, ownProps)\n    dispatchProps = mapDispatchToProps(dispatch, ownProps)\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    hasRunAtLeastOnce = true\n    return mergedProps\n  }\n\n  function handleNewPropsAndNewState() {\n    stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewProps() {\n    if (mapStateToProps.dependsOnOwnProps)\n      stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewState() {\n    const nextStateProps = mapStateToProps(state, ownProps)\n    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n    stateProps = nextStateProps\n\n    if (statePropsChanged)\n      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n    return mergedProps\n  }\n\n  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n    const stateChanged = !areStatesEqual(\n      nextState,\n      state,\n      nextOwnProps,\n      ownProps,\n    )\n    state = nextState\n    ownProps = nextOwnProps\n\n    if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n    if (propsChanged) return handleNewProps()\n    if (stateChanged) return handleNewState()\n    return mergedProps\n  }\n\n  return function pureFinalPropsSelector(\n    nextState: State,\n    nextOwnProps: TOwnProps,\n  ) {\n    return hasRunAtLeastOnce\n      ? handleSubsequentCalls(nextState, nextOwnProps)\n      : handleFirstCall(nextState, nextOwnProps)\n  }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n  (state: State, ownProps: TOwnProps): TStateProps\n  readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n  readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly shouldHandleStateChanges: boolean\n  readonly displayName: string\n  readonly wrappedComponentName: string\n  readonly WrappedComponent: ComponentType<TOwnProps>\n  readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n  readonly initMapStateToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n  readonly initMapDispatchToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n  readonly initMergeProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  dispatch: Dispatch<Action<string>>,\n  {\n    initMapStateToProps,\n    initMapDispatchToProps,\n    initMergeProps,\n    ...options\n  }: SelectorFactoryOptions<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >,\n) {\n  const mapStateToProps = initMapStateToProps(dispatch, options)\n  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n  const mergeProps = initMergeProps(dispatch, options)\n\n  if (process.env.NODE_ENV !== 'production') {\n    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n  }\n\n  return pureFinalPropsSelectorFactory<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n","import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n  actionCreators: ActionCreatorsMapObject,\n  dispatch: Dispatch,\n): ActionCreatorsMapObject {\n  const boundActionCreators: ActionCreatorsMapObject = {}\n\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key]\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n    }\n  }\n  return boundActionCreators\n}\n","/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: unknown) {\n  if (typeof obj !== 'object' || obj === null) return false\n\n  const proto = Object.getPrototypeOf(obj)\n  if (proto === null) return true\n\n  let baseProto = proto\n  while (Object.getPrototypeOf(baseProto) !== null) {\n    baseProto = Object.getPrototypeOf(baseProto)\n  }\n\n  return proto === baseProto\n}\n","import isPlainObject from './isPlainObject'\nimport warning from './warning'\n\nexport default function verifyPlainObject(\n  value: unknown,\n  displayName: string,\n  methodName: string,\n) {\n  if (!isPlainObject(value)) {\n    warning(\n      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`,\n    )\n  }\n}\n","import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n  // eslint-disable-next-line no-unused-vars\n  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n  dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n  // * Note:\n  //  It seems that the dispatch argument\n  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)\n  // eslint-disable-next-line no-unused-vars\n  getConstant: (dispatch: Dispatch) =>\n    | {\n        dispatch?: Dispatch\n        dependsOnOwnProps?: boolean\n      }\n    | ActionCreatorsMapObject\n    | ActionCreator<any>,\n) {\n  return function initConstantSelector(dispatch: Dispatch) {\n    const constant = getConstant(dispatch)\n\n    function constantSelector() {\n      return constant\n    }\n    constantSelector.dependsOnOwnProps = false\n    return constantSelector\n  }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n  return mapToProps.dependsOnOwnProps\n    ? Boolean(mapToProps.dependsOnOwnProps)\n    : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n//  * Detects whether the mapToProps function being called depends on props, which\n//    is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n//  * On first call, handles mapToProps if returns another function, and treats that\n//    new function as the true mapToProps for subsequent calls.\n//\n//  * On first call, verifies the first result is a plain object, in order to warn\n//    the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n  mapToProps: MapToProps,\n  methodName: string,\n) {\n  return function initProxySelector(\n    dispatch: Dispatch,\n    { displayName }: { displayName: string },\n  ) {\n    const proxy = function mapToPropsProxy(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      return proxy.dependsOnOwnProps\n        ? proxy.mapToProps(stateOrDispatch, ownProps)\n        : proxy.mapToProps(stateOrDispatch, undefined)\n    }\n\n    // allow detectFactoryAndVerify to get ownProps\n    proxy.dependsOnOwnProps = true\n\n    proxy.mapToProps = function detectFactoryAndVerify(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      proxy.mapToProps = mapToProps\n      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n      let props = proxy(stateOrDispatch, ownProps)\n\n      if (typeof props === 'function') {\n        proxy.mapToProps = props\n        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n        props = proxy(stateOrDispatch, ownProps)\n      }\n\n      if (process.env.NODE_ENV !== 'production')\n        verifyPlainObject(props, displayName, methodName)\n\n      return props\n    }\n\n    return proxy\n  }\n}\n","import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n  return (\n    dispatch: Dispatch<Action<string>>,\n    options: { readonly wrappedComponentName: string },\n  ) => {\n    throw new Error(\n      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n        options.wrappedComponentName\n      }.`,\n    )\n  }\n}\n","import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n  mapDispatchToProps:\n    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n    | undefined,\n) {\n  return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n        // @ts-ignore\n        bindActionCreators(mapDispatchToProps, dispatch),\n      )\n    : !mapDispatchToProps\n      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n          dispatch,\n        }))\n      : typeof mapDispatchToProps === 'function'\n        ? // @ts-ignore\n          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n  return !mapStateToProps\n    ? wrapMapToPropsConstant(() => ({}))\n    : typeof mapStateToProps === 'function'\n      ? // @ts-ignore\n        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n","import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n): TMergedProps {\n  // @ts-ignore\n  return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n  dispatch: Dispatch<Action<string>>,\n  options: {\n    readonly displayName: string\n    readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n  },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n  return function initMergePropsProxy(\n    dispatch,\n    { displayName, areMergedPropsEqual },\n  ) {\n    let hasRunOnce = false\n    let mergedProps: TMergedProps\n\n    return function mergePropsProxy(\n      stateProps: TStateProps,\n      dispatchProps: TDispatchProps,\n      ownProps: TOwnProps,\n    ) {\n      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n      if (hasRunOnce) {\n        if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n          mergedProps = nextMergedProps\n      } else {\n        hasRunOnce = true\n        mergedProps = nextMergedProps\n\n        if (process.env.NODE_ENV !== 'production')\n          verifyPlainObject(mergedProps, displayName, 'mergeProps')\n      }\n\n      return mergedProps\n    }\n  }\n}\n\nexport function mergePropsFactory<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n  return !mergeProps\n    ? () => defaultMergeProps\n    : typeof mergeProps === 'function'\n      ? wrapMergePropsFunc(mergeProps)\n      : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n  ConnectedComponent,\n  InferableComponentEnhancer,\n  InferableComponentEnhancerWithProps,\n  ResolveThunks,\n  DispatchProp,\n  ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n  MapStateToPropsParam,\n  MapDispatchToPropsParam,\n  MergeProps,\n  MapDispatchToPropsNonObject,\n  SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n  ReactReduxContextValue,\n  ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n  try {\n    return JSON.stringify(Comp)\n  } catch (err) {\n    return String(Comp)\n  }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n  effectFunc: EffectFunc,\n  effectArgs: any[],\n  dependencies?: React.DependencyList,\n) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  wrapperProps: unknown,\n  // actualChildProps: unknown,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps\n  renderIsScheduled.current = false\n\n  // If the render was from a store update, clear out that reference and cascade the subscriber update\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null\n    notifyNestedSubs()\n  }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n  shouldHandleStateChanges: boolean,\n  store: Store,\n  subscription: Subscription,\n  childPropsSelector: (state: unknown, props: unknown) => unknown,\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  isMounted: React.MutableRefObject<boolean>,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n  // forceComponentUpdateDispatch: React.Dispatch<any>,\n  additionalSubscribeListener: () => void,\n) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}\n\n  // Capture values for checking if and when this component unmounts\n  let didUnsubscribe = false\n  let lastThrownError: Error | null = null\n\n  // We'll run this callback every time a store subscription update propagates to this component\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return\n    }\n\n    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n    const latestStoreState = store.getState()\n\n    let newChildProps, error\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(\n        latestStoreState,\n        lastWrapperProps.current,\n      )\n    } catch (e) {\n      error = e\n      lastThrownError = e as Error | null\n    }\n\n    if (!error) {\n      lastThrownError = null\n    }\n\n    // If the child props haven't changed, nothing to do here - cascade the subscription update\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs()\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps\n      childPropsFromStoreUpdate.current = newChildProps\n      renderIsScheduled.current = true\n\n      // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n      additionalSubscribeListener()\n    }\n  }\n\n  // Actually subscribe to the nearest connected ancestor (or store)\n  subscription.onStateChange = checkForUpdates\n  subscription.trySubscribe()\n\n  // Pull data from the store after first render in case the store has\n  // changed since we began.\n  checkForUpdates()\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true\n    subscription.tryUnsubscribe()\n    subscription.onStateChange = null\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError\n    }\n  }\n\n  return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n  context?: ReactReduxContextInstance\n  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n  store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n  reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n  return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n  TConnector extends InferableComponentEnhancerWithProps<\n    infer TInjectedProps,\n    any\n  >\n    ? unknown extends TInjectedProps\n      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n        ? TInjectedProps\n        : never\n      : TInjectedProps\n    : never\n\nexport interface ConnectOptions<\n  State = unknown,\n  TStateProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n> {\n  forwardRef?: boolean\n  context?: typeof ReactReduxContext\n  areStatesEqual?: (\n    nextState: State,\n    prevState: State,\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areOwnPropsEqual?: (\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areStatePropsEqual?: (\n    nextStateProps: TStateProps,\n    prevStateProps: TStateProps,\n  ) => boolean\n  areMergedPropsEqual?: (\n    nextMergedProps: TMergedProps,\n    prevMergedProps: TMergedProps,\n  ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n  // tslint:disable:no-unnecessary-generics\n  (): InferableComponentEnhancer<DispatchProp>\n\n  /** mapState only */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n  /** mapDispatch only (as a function) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch only (as an object) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (as a function)*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (nullish) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n  /** mapState and mapDispatch (as an object) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mergeProps only */\n  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and mergeProps */\n  <\n    TStateProps = {},\n    no_dispatch = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapDispatch (as a object) and mergeProps */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and options */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n  /** mapDispatch (as a function) and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch (as an object) and options*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as a function), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as an object), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState, mapDispatch, mergeProps, and options */\n  <\n    TStateProps = {},\n    TDispatchProps = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<\n      TStateProps,\n      TDispatchProps,\n      TOwnProps,\n      TMergedProps\n    >,\n    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n  // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n  TStateProps = {},\n  TDispatchProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n  State = unknown,\n>(\n  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  {\n    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n    // @ts-ignore\n    pure,\n    areStatesEqual = strictEqual,\n    areOwnPropsEqual = shallowEqual,\n    areStatePropsEqual = shallowEqual,\n    areMergedPropsEqual = shallowEqual,\n\n    // use React's forwardRef to expose a ref of the wrapped component\n    forwardRef = false,\n\n    // the context consumer to use\n    context = ReactReduxContext,\n  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true\n      warning(\n        'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n      )\n    }\n  }\n\n  const Context = context\n\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n  const initMergeProps = mergePropsFactory(mergeProps)\n\n  const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n  const wrapWithConnect = <TProps,>(\n    WrappedComponent: ComponentType<TProps>,\n  ) => {\n    type WrappedComponentProps = TProps &\n      ConnectPropsMaybeWithoutContext<TProps>\n\n    if (process.env.NODE_ENV !== 'production') {\n      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n      if (!isValid)\n        throw new Error(\n          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n            WrappedComponent,\n          )}`,\n        )\n    }\n\n    const wrappedComponentName =\n      WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n    const displayName = `Connect(${wrappedComponentName})`\n\n    const selectorFactoryOptions: SelectorFactoryOptions<\n      any,\n      any,\n      any,\n      any,\n      State\n    > = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual,\n    }\n\n    function ConnectFunction<TOwnProps>(\n      props: InternalConnectProps & TOwnProps,\n    ) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] =\n        React.useMemo(() => {\n          // Distinguish between actual \"data\" props that were passed to the wrapper component,\n          // and values needed to control behavior (forwarded refs, alternate context instances).\n          // To maintain the wrapperProps object reference, memoize this destructuring.\n          const { reactReduxForwardedRef, ...wrapperProps } = props\n          return [props.context, reactReduxForwardedRef, wrapperProps]\n        }, [props])\n\n      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        let ResultContext = Context\n        if (propsContext?.Consumer) {\n          if (process.env.NODE_ENV !== 'production') {\n            const isValid = /*#__PURE__*/ isContextConsumer(\n              // @ts-ignore\n              <propsContext.Consumer />,\n            )\n            if (!isValid) {\n              throw new Error(\n                'You must pass a valid React context consumer as `props.context`',\n              )\n            }\n            ResultContext = propsContext\n          }\n        }\n        return ResultContext\n      }, [propsContext, Context])\n\n      // Retrieve the store and ancestor subscription via context, if available\n      const contextValue = React.useContext(ContextToUse)\n\n      // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n      const didStoreComeFromProps =\n        Boolean(props.store) &&\n        Boolean(props.store!.getState) &&\n        Boolean(props.store!.dispatch)\n      const didStoreComeFromContext =\n        Boolean(contextValue) && Boolean(contextValue!.store)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        !didStoreComeFromProps &&\n        !didStoreComeFromContext\n      ) {\n        throw new Error(\n          `Could not find \"store\" in the context of ` +\n            `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n            `or pass a custom React context provider to <Provider> and the corresponding ` +\n            `React context consumer to ${displayName} in connect options.`,\n        )\n      }\n\n      // Based on the previous check, one of these must be true\n      const store: Store = didStoreComeFromProps\n        ? props.store!\n        : contextValue!.store\n\n      const getServerState = didStoreComeFromContext\n        ? contextValue!.getServerState\n        : store.getState\n\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n      }, [store])\n\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n        // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n        const subscription = createSubscription(\n          store,\n          didStoreComeFromProps ? undefined : contextValue!.subscription,\n        )\n\n        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n        const notifyNestedSubs =\n          subscription.notifyNestedSubs.bind(subscription)\n\n        return [subscription, notifyNestedSubs]\n      }, [store, didStoreComeFromProps, contextValue])\n\n      // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue!\n        }\n\n        // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n        return {\n          ...contextValue,\n          subscription,\n        } as ReactReduxContextValue\n      }, [didStoreComeFromProps, contextValue, subscription])\n\n      // Set up refs to coordinate values between the subscription effect and the render logic\n      const lastChildProps = React.useRef<unknown>(undefined)\n      const lastWrapperProps = React.useRef(wrapperProps)\n      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n      const renderIsScheduled = React.useRef(false)\n      const isMounted = React.useRef(false)\n\n      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n       */\n      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n        undefined,\n      )\n\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true\n        return () => {\n          isMounted.current = false\n        }\n      }, [])\n\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (\n            childPropsFromStoreUpdate.current &&\n            wrapperProps === lastWrapperProps.current\n          ) {\n            return childPropsFromStoreUpdate.current\n          }\n\n          // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n          return childPropsSelector(store.getState(), wrapperProps)\n        }\n        return selector\n      }, [store, wrapperProps])\n\n      // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = (reactListener: () => void) => {\n          if (!subscription) {\n            return () => {}\n          }\n\n          return subscribeUpdates(\n            shouldHandleStateChanges,\n            store,\n            subscription,\n            // @ts-ignore\n            childPropsSelector,\n            lastWrapperProps,\n            lastChildProps,\n            renderIsScheduled,\n            isMounted,\n            childPropsFromStoreUpdate,\n            notifyNestedSubs,\n            reactListener,\n          )\n        }\n\n        return subscribe\n      }, [subscription])\n\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n        lastWrapperProps,\n        lastChildProps,\n        renderIsScheduled,\n        wrapperProps,\n        childPropsFromStoreUpdate,\n        notifyNestedSubs,\n      ])\n\n      let actualChildProps: Record<string, unknown>\n\n      try {\n        actualChildProps = React.useSyncExternalStore(\n          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n          subscribeForReact,\n          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n          actualChildPropsSelector,\n          getServerState\n            ? () => childPropsSelector(getServerState(), wrapperProps)\n            : actualChildPropsSelector,\n        )\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          // eslint-disable-next-line no-extra-semi\n          ;(err as Error).message +=\n            `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n        }\n\n        throw err\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined\n        childPropsFromStoreUpdate.current = undefined\n        lastChildProps.current = actualChildProps\n      })\n\n      // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          // @ts-ignore\n          <WrappedComponent\n            {...actualChildProps}\n            ref={reactReduxForwardedRef}\n          />\n        )\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n      // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return (\n            <ContextToUse.Provider value={overriddenContextValue}>\n              {renderedWrappedComponent}\n            </ContextToUse.Provider>\n          )\n        }\n\n        return renderedWrappedComponent\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n      return renderedChild\n    }\n\n    const _Connect = React.memo(ConnectFunction)\n\n    type ConnectedWrapperComponent = typeof _Connect & {\n      WrappedComponent: typeof WrappedComponent\n    }\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect as unknown as ConnectedComponent<\n      typeof WrappedComponent,\n      WrappedComponentProps\n    >\n    Connect.WrappedComponent = WrappedComponent\n    Connect.displayName = ConnectFunction.displayName = displayName\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(\n        function forwardConnectRef(props, ref) {\n          // @ts-ignore\n          return <Connect {...props} reactReduxForwardedRef={ref} />\n        },\n      )\n\n      const forwarded = _forwarded as ConnectedWrapperComponent\n      forwarded.displayName = displayName\n      forwarded.WrappedComponent = WrappedComponent\n      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n    }\n\n    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n  }\n\n  return wrapWithConnect\n}\n\nexport default connect as Connect\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import connect from './components/connect'\nexport type {\n  Connect,\n  ConnectProps,\n  ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n  MapDispatchToProps,\n  MapDispatchToPropsFactory,\n  MapDispatchToPropsFunction,\n  MapDispatchToPropsNonObject,\n  MapDispatchToPropsParam,\n  MapStateToProps,\n  MapStateToPropsFactory,\n  MapStateToPropsParam,\n  MergeProps,\n  Selector,\n  SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;;;ACQhB,IAAM,cAA8B,sBAAM,QAAQ,WAAW,IAAI;AAExE,IAAM,qBAAqC,uBAAO;AAAA,EAChD,cAAc,+BAA+B;AAC/C;AACA,IAAM,oBAAoC,uBAAO,IAAI,cAAc;AACnE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,qBAAqC,uBAAO,IAAI,eAAe;AACrE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,2BAA2C,uBAAO;AAAA,EACtD;AACF;AACA,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,uBAAuC,uBAAO,IAAI,iBAAiB;AACzE,IAAM,yBAAyC,uBAAO;AAAA,EACpD;AACF;AAEO,IAAM,aAAa;AACnB,IAAM,OAAO;AAEb,SAAS,mBAAmB,MAAgC;AACjE,SAAO,OAAO,SAAS,YACrB,OAAO,SAAS,cAChB,SAAS,uBACT,SAAS,uBACT,SAAS,0BACT,SAAS,uBACT,SAAS,4BACT,SAAS,wBACR,OAAO,SAAS,YACf,SAAS,SACR,KAAK,aAAa,mBACjB,KAAK,aAAa,mBAClB,KAAK,aAAa,sBAClB,KAAK,aAAa,uBAClB,KAAK,aAAa,0BAClB,KAAK,aAAa,0BAClB,KAAK,gBAAgB,UACvB,OACA;AACN;AAEA,SAAS,OAAO,QAAiC;AAC/C,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,UAAM,EAAE,SAAS,IAAI;AAErB,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,gBAAU,SAAS,OAAO,MAAO,QAAS;AAAA,UACxC,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT;AACE,oBAAU,SAAS,UAAU,OAAO,UAAW,QAAS;AAAA,cACtD,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cACT,KAAK;AACH,uBAAO;AAAA,cACT;AACE,uBAAO;AAAA,YACX;AAAA,QACJ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,IACX;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,QAAqC;AACrE,SAAO,cACH,OAAO,MAAM,MAAM,sBACnB,OAAO,MAAM,MAAM;AACzB;AAEO,SAAS,OAAO,QAAiD;AACtE,SAAO,OAAO,MAAM,MAAM;AAC5B;;;AC1Fe,SAAR,QAAyB,SAAiB;AAE/C,MAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACzE,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,MAAI;AAIF,UAAM,IAAI,MAAM,OAAO;AAAA,EAEzB,SAAS,GAAG;AAAA,EAAC;AAEf;;;AClBA,SAAS,OAAO,UAAmB,YAA0B;AAC3D,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,wBAAwB,UAAU,cAAc;AAAA,EAClE,WACE,eAAe,qBACf,eAAe,sBACf;AACA,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,mBAAmB,GAAG;AACxE;AAAA,QACE,oBAAoB,UAAU;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;AAEe,SAAR,mBACL,iBACA,oBACA,YACM;AACN,SAAO,iBAAiB,iBAAiB;AACzC,SAAO,oBAAoB,oBAAoB;AAC/C,SAAO,YAAY,YAAY;AACjC;;;ACyCA,SAAS,8BAOP,iBACA,oBACA,YACA,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,GACA;AACA,MAAI,oBAAoB;AACxB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,WAAS,gBAAgB,YAAmB,eAA0B;AACpE,YAAQ;AACR,eAAW;AACX,iBAAa,gBAAgB,OAAO,QAAQ;AAC5C,oBAAgB,mBAAmB,UAAU,QAAQ;AACrD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,wBAAoB;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,4BAA4B;AACnC,iBAAa,gBAAgB,OAAO,QAAQ;AAE5C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,QAAI,gBAAgB;AAClB,mBAAa,gBAAgB,OAAO,QAAQ;AAE9C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,UAAM,iBAAiB,gBAAgB,OAAO,QAAQ;AACtD,UAAM,oBAAoB,CAAC,mBAAmB,gBAAgB,UAAU;AACxE,iBAAa;AAEb,QAAI;AACF,oBAAc,WAAW,YAAY,eAAe,QAAQ;AAE9D,WAAO;AAAA,EACT;AAEA,WAAS,sBAAsB,WAAkB,cAAyB;AACxE,UAAM,eAAe,CAAC,iBAAiB,cAAc,QAAQ;AAC7D,UAAM,eAAe,CAAC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,YAAQ;AACR,eAAW;AAEX,QAAI,gBAAgB,aAAc,QAAO,0BAA0B;AACnE,QAAI,aAAc,QAAO,eAAe;AACxC,QAAI,aAAc,QAAO,eAAe;AACxC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,uBACd,WACA,cACA;AACA,WAAO,oBACH,sBAAsB,WAAW,YAAY,IAC7C,gBAAgB,WAAW,YAAY;AAAA,EAC7C;AACF;AAgDe,SAAR,0BAOL,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAOA;AACA,QAAM,kBAAkB,oBAAoB,UAAU,OAAO;AAC7D,QAAM,qBAAqB,uBAAuB,UAAU,OAAO;AACnE,QAAM,aAAa,eAAe,UAAU,OAAO;AAEnD,MAAI,MAAuC;AACzC,uBAAmB,iBAAiB,oBAAoB,UAAU;AAAA,EACpE;AAEA,SAAO,8BAML,iBAAiB,oBAAoB,YAAY,UAAU,OAAO;AACtE;;;AC/Oe,SAAR,mBACL,gBACA,UACyB;AACzB,QAAM,sBAA+C,CAAC;AAEtD,aAAW,OAAO,gBAAgB;AAChC,UAAM,gBAAgB,eAAe,GAAG;AACxC,QAAI,OAAO,kBAAkB,YAAY;AACvC,0BAAoB,GAAG,IAAI,IAAI,SAAS,SAAS,cAAc,GAAG,IAAI,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AACT;;;ACXe,SAAR,cAA+B,KAAc;AAClD,MAAI,OAAO,QAAQ,YAAY,QAAQ,KAAM,QAAO;AAEpD,QAAM,QAAQ,OAAO,eAAe,GAAG;AACvC,MAAI,UAAU,KAAM,QAAO;AAE3B,MAAI,YAAY;AAChB,SAAO,OAAO,eAAe,SAAS,MAAM,MAAM;AAChD,gBAAY,OAAO,eAAe,SAAS;AAAA,EAC7C;AAEA,SAAO,UAAU;AACnB;;;ACbe,SAAR,kBACL,OACA,aACA,YACA;AACA,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB;AAAA,MACE,GAAG,UAAU,SAAS,WAAW,iDAAiD,KAAK;AAAA,IACzF;AAAA,EACF;AACF;;;ACGO,SAAS,uBAMd,aAOA;AACA,SAAO,SAAS,qBAAqB,UAAoB;AACvD,UAAM,WAAW,YAAY,QAAQ;AAErC,aAAS,mBAAmB;AAC1B,aAAO;AAAA,IACT;AACA,qBAAiB,oBAAoB;AACrC,WAAO;AAAA,EACT;AACF;AAUA,SAAS,qBAAqB,YAAwB;AACpD,SAAO,WAAW,oBACd,QAAQ,WAAW,iBAAiB,IACpC,WAAW,WAAW;AAC5B;AAcO,SAAS,mBACd,YACA,YACA;AACA,SAAO,SAAS,kBACd,UACA,EAAE,YAAY,GACd;AACA,UAAM,QAAQ,SAAS,gBACrB,iBACA,UACY;AACZ,aAAO,MAAM,oBACT,MAAM,WAAW,iBAAiB,QAAQ,IAC1C,MAAM,WAAW,iBAAiB,MAAS;AAAA,IACjD;AAGA,UAAM,oBAAoB;AAE1B,UAAM,aAAa,SAAS,uBAC1B,iBACA,UACY;AACZ,YAAM,aAAa;AACnB,YAAM,oBAAoB,qBAAqB,UAAU;AACzD,UAAI,QAAQ,MAAM,iBAAiB,QAAQ;AAE3C,UAAI,OAAO,UAAU,YAAY;AAC/B,cAAM,aAAa;AACnB,cAAM,oBAAoB,qBAAqB,KAAK;AACpD,gBAAQ,MAAM,iBAAiB,QAAQ;AAAA,MACzC;AAEA,UAAI;AACF,0BAAkB,OAAO,aAAa,UAAU;AAElD,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AACF;;;AC3GO,SAAS,wBAAwB,KAAc,MAAc;AAClE,SAAO,CACL,UACA,YACG;AACH,UAAM,IAAI;AAAA,MACR,yBAAyB,OAAO,GAAG,QAAQ,IAAI,uCAC7C,QAAQ,oBACV;AAAA,IACF;AAAA,EACF;AACF;;;ACPO,SAAS,0BACd,oBAGA;AACA,SAAO,sBAAsB,OAAO,uBAAuB,WACvD;AAAA,IAAuB,CAAC;AAAA;AAAA,MAEtB,mBAAmB,oBAAoB,QAAQ;AAAA;AAAA,EACjD,IACA,CAAC,qBACC,uBAAuB,CAAC,cAAwC;AAAA,IAC9D;AAAA,EACF,EAAE,IACF,OAAO,uBAAuB;AAAA;AAAA,IAE5B,mBAAmB,oBAAoB,oBAAoB;AAAA,MAC3D,wBAAwB,oBAAoB,oBAAoB;AAC1E;;;ACpBO,SAAS,uBACd,iBACA;AACA,SAAO,CAAC,kBACJ,uBAAuB,OAAO,CAAC,EAAE,IACjC,OAAO,oBAAoB;AAAA;AAAA,IAEzB,mBAAmB,iBAAiB,iBAAiB;AAAA,MACrD,wBAAwB,iBAAiB,iBAAiB;AAClE;;;ACPA,SAAS,kBAMP,YACA,eACA,UACc;AAEd,SAAO,EAAE,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc;AACxD;AAEA,SAAS,mBAMP,YAOoE;AACpE,SAAO,SAAS,oBACd,UACA,EAAE,aAAa,oBAAoB,GACnC;AACA,QAAI,aAAa;AACjB,QAAI;AAEJ,WAAO,SAAS,gBACd,YACA,eACA,UACA;AACA,YAAM,kBAAkB,WAAW,YAAY,eAAe,QAAQ;AAEtE,UAAI,YAAY;AACd,YAAI,CAAC,oBAAoB,iBAAiB,WAAW;AACnD,wBAAc;AAAA,MAClB,OAAO;AACL,qBAAa;AACb,sBAAc;AAEd,YAAI;AACF,4BAAkB,aAAa,aAAa,YAAY;AAAA,MAC5D;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,SAAS,kBAMd,YACA;AACA,SAAO,CAAC,aACJ,MAAM,oBACN,OAAO,eAAe,aACpB,mBAAmB,UAAU,IAC7B,wBAAwB,YAAY,YAAY;AACxD;;;AC5EO,SAAS,iBAAiB,UAAsB;AACrD,WAAS;AACX;;;ACWA,SAAS,2BAA2B;AAClC,MAAI,QAAyB;AAC7B,MAAI,OAAwB;AAE5B,SAAO;AAAA,IACL,QAAQ;AACN,cAAQ;AACR,aAAO;AAAA,IACT;AAAA,IAEA,SAAS;AACP,uBAAM,MAAM;AACV,YAAI,WAAW;AACf,eAAO,UAAU;AACf,mBAAS,SAAS;AAClB,qBAAW,SAAS;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,MAAM;AACJ,YAAM,YAAwB,CAAC;AAC/B,UAAI,WAAW;AACf,aAAO,UAAU;AACf,kBAAU,KAAK,QAAQ;AACvB,mBAAW,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AAAA,IAEA,UAAU,UAAsB;AAC9B,UAAI,eAAe;AAEnB,YAAM,WAAsB,OAAO;AAAA,QACjC;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAEA,UAAI,SAAS,MAAM;AACjB,iBAAS,KAAK,OAAO;AAAA,MACvB,OAAO;AACL,gBAAQ;AAAA,MACV;AAEA,aAAO,SAAS,cAAc;AAC5B,YAAI,CAAC,gBAAgB,UAAU,KAAM;AACrC,uBAAe;AAEf,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,iBAAO,SAAS;AAAA,QAClB;AACA,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,kBAAQ,SAAS;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAeA,IAAM,gBAAgB;AAAA,EACpB,SAAS;AAAA,EAAC;AAAA,EACV,KAAK,MAAM,CAAC;AACd;AAEO,SAAS,mBAAmB,OAAY,WAA0B;AACvE,MAAI;AACJ,MAAI,YAAgC;AAGpC,MAAI,sBAAsB;AAG1B,MAAI,iBAAiB;AAErB,WAAS,aAAa,UAAsB;AAC1C,iBAAa;AAEb,UAAM,kBAAkB,UAAU,UAAU,QAAQ;AAGpD,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,CAAC,SAAS;AACZ,kBAAU;AACV,wBAAgB;AAChB,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,cAAU,OAAO;AAAA,EACnB;AAEA,WAAS,sBAAsB;AAC7B,QAAI,aAAa,eAAe;AAC9B,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAEA,WAAS,eAAe;AACtB,WAAO;AAAA,EACT;AAEA,WAAS,eAAe;AACtB;AACA,QAAI,CAAC,aAAa;AAChB,oBAAc,YACV,UAAU,aAAa,mBAAmB,IAC1C,MAAM,UAAU,mBAAmB;AAEvC,kBAAY,yBAAyB;AAAA,IACvC;AAAA,EACF;AAEA,WAAS,iBAAiB;AACxB;AACA,QAAI,eAAe,wBAAwB,GAAG;AAC5C,kBAAY;AACZ,oBAAc;AACd,gBAAU,MAAM;AAChB,kBAAY;AAAA,IACd;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,QAAI,CAAC,gBAAgB;AACnB,uBAAiB;AACjB,mBAAa;AAAA,IACf;AAAA,EACF;AAEA,WAAS,qBAAqB;AAC5B,QAAI,gBAAgB;AAClB,uBAAiB;AACjB,qBAAe;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,eAA6B;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,cAAc,MAAM;AAAA,EACtB;AAEA,SAAO;AACT;;;AC1KA,IAAM,YAAY,MAChB,CAAC,EACC,OAAO,WAAW,eAClB,OAAO,OAAO,aAAa,eAC3B,OAAO,OAAO,SAAS,kBAAkB;AAG7C,IAAM,QAAwB,0BAAU;AAWxC,IAAM,yBAAyB,MAC7B,OAAO,cAAc,eAAe,UAAU,YAAY;AAE5D,IAAM,gBAAgC,uCAAuB;AAE7D,IAAM,+BAA+B,MACnC,SAAS,gBAAgB,MAAM,kBAAkB,MAAM;AAElD,IAAM,4BACK,6CAA6B;;;ACvC/C,SAAS,GAAG,GAAY,GAAY;AAClC,MAAI,MAAM,GAAG;AACX,WAAO,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EAC7C,OAAO;AACL,WAAO,MAAM,KAAK,MAAM;AAAA,EAC1B;AACF;AAEe,SAAR,aAA8B,MAAW,MAAW;AACzD,MAAI,GAAG,MAAM,IAAI,EAAG,QAAO;AAE3B,MACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,MACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,QAAM,QAAQ,OAAO,KAAK,IAAI;AAE9B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAE1C,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,CAAC,CAAC,KACpD,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAClC;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;;;ACxBA,IAAM,gBAAgB;AAAA,EACpB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AACT;AAEA,IAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,eAAe;AAAA,EACnB,CAAC,UAAU,GAAG;AAAA,EACd,CAAC,IAAI,GAAG;AACV;AAEA,SAAS,WAAW,WAAgB;AAElC,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AAGA,SAAO,aAAa,UAAU,UAAU,CAAC,KAAK;AAChD;AAkBA,IAAM,iBAAiB,OAAO;AAC9B,IAAM,sBAAsB,OAAO;AACnC,IAAM,wBAAwB,OAAO;AACrC,IAAM,2BAA2B,OAAO;AACxC,IAAM,iBAAiB,OAAO;AAC9B,IAAM,kBAAkB,OAAO;AAEhB,SAAR,qBAOL,iBACA,iBACgD;AAChD,MAAI,OAAO,oBAAoB,UAAU;AAGvC,QAAI,iBAAiB;AACnB,YAAM,qBAAqB,eAAe,eAAe;AACzD,UAAI,sBAAsB,uBAAuB,iBAAiB;AAChE,6BAAqB,iBAAiB,kBAAkB;AAAA,MAC1D;AAAA,IACF;AAEA,QAAI,OAA4B,oBAAoB,eAAe;AAEnE,QAAI,uBAAuB;AACzB,aAAO,KAAK,OAAO,sBAAsB,eAAe,CAAC;AAAA,IAC3D;AAEA,UAAM,gBAAgB,WAAW,eAAe;AAChD,UAAM,gBAAgB,WAAW,eAAe;AAEhD,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,UACE,CAAC,cAAc,GAAiC,KAChD,EAAE,iBAAiB,cAAc,GAAiC,MAClE,EAAE,iBAAiB,cAAc,GAAiC,IAClE;AACA,cAAM,aAAa,yBAAyB,iBAAiB,GAAG;AAChE,YAAI;AAEF,yBAAe,iBAAiB,KAAK,UAAW;AAAA,QAClD,SAAS,GAAG;AAAA,QAEZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;AC3HA,IAAM,aAA6B,uBAAO,IAAI,qBAAqB;AACnE,IAAM,KAMJ,OAAO,eAAe,cAClB;AAAA;AAAA,EAC2F,CAAC;AAAA;AAGlG,SAAS,aAAqD;AAC5D,MAAI,CAAC,MAAM,cAAe,QAAO,CAAC;AAElC,QAAM,aAAc,GAAG,UAAU,MAAM,oBAAI,IAGzC;AACF,MAAI,cAAc,WAAW,IAAI,MAAM,aAAa;AACpD,MAAI,CAAC,aAAa;AAChB,kBAAc,MAAM;AAAA,MAClB;AAAA,IACF;AACA,QAAI,MAAuC;AACzC,kBAAY,cAAc;AAAA,IAC5B;AACA,eAAW,IAAI,MAAM,eAAe,WAAW;AAAA,EACjD;AACA,SAAO;AACT;AAEO,IAAM,oBAAkC,2BAAW;;;ACJ1D,IAAM,wBAAwB,CAAC,MAAM,IAAI;AAIzC,IAAM,qBAAqB,CAAC,SAAkB;AAC5C,MAAI;AACF,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B,SAAS,KAAK;AACZ,WAAO,OAAO,IAAI;AAAA,EACpB;AACF;AAQA,SAAS,kCACP,YACA,YACA,cACA;AACA,4BAA0B,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY;AACzE;AAGA,SAAS,oBACP,kBACA,gBACA,mBACA,cAEA,2BACA,kBACA;AAEA,mBAAiB,UAAU;AAC3B,oBAAkB,UAAU;AAG5B,MAAI,0BAA0B,SAAS;AACrC,8BAA0B,UAAU;AACpC,qBAAiB;AAAA,EACnB;AACF;AAIA,SAAS,iBACP,0BACA,OACA,cACA,oBACA,kBACA,gBACA,mBACA,WACA,2BACA,kBAEA,6BACA;AAEA,MAAI,CAAC,yBAA0B,QAAO,MAAM;AAAA,EAAC;AAG7C,MAAI,iBAAiB;AACrB,MAAI,kBAAgC;AAGpC,QAAM,kBAAkB,MAAM;AAC5B,QAAI,kBAAkB,CAAC,UAAU,SAAS;AAGxC;AAAA,IACF;AAGA,UAAM,mBAAmB,MAAM,SAAS;AAExC,QAAI,eAAe;AACnB,QAAI;AAGF,sBAAgB;AAAA,QACd;AAAA,QACA,iBAAiB;AAAA,MACnB;AAAA,IACF,SAAS,GAAG;AACV,cAAQ;AACR,wBAAkB;AAAA,IACpB;AAEA,QAAI,CAAC,OAAO;AACV,wBAAkB;AAAA,IACpB;AAGA,QAAI,kBAAkB,eAAe,SAAS;AAC5C,UAAI,CAAC,kBAAkB,SAAS;AAC9B,yBAAiB;AAAA,MACnB;AAAA,IACF,OAAO;AAKL,qBAAe,UAAU;AACzB,gCAA0B,UAAU;AACpC,wBAAkB,UAAU;AAI5B,kCAA4B;AAAA,IAC9B;AAAA,EACF;AAGA,eAAa,gBAAgB;AAC7B,eAAa,aAAa;AAI1B,kBAAgB;AAEhB,QAAM,qBAAqB,MAAM;AAC/B,qBAAiB;AACjB,iBAAa,eAAe;AAC5B,iBAAa,gBAAgB;AAE7B,QAAI,iBAAiB;AAMnB,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;AAgBA,SAAS,YAAY,GAAY,GAAY;AAC3C,SAAO,MAAM;AACf;AAmNA,IAAI,qCAAqC;AAsBzC,SAAS,QAOP,iBACA,oBACA,YACA;AAAA;AAAA;AAAA,EAGE;AAAA,EACA,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA;AAAA,EAGtB,aAAa;AAAA;AAAA,EAGb,UAAU;AACZ,IAAwD,CAAC,GAChD;AACT,MAAI,MAAuC;AACzC,QAAI,SAAS,UAAa,CAAC,oCAAoC;AAC7D,2CAAqC;AACrC;AAAA,QACE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU;AAEhB,QAAM,sBAAsB,uBAAuB,eAAe;AAClE,QAAM,yBAAyB,0BAA0B,kBAAkB;AAC3E,QAAM,iBAAiB,kBAAkB,UAAU;AAEnD,QAAM,2BAA2B,QAAQ,eAAe;AAExD,QAAM,kBAAkB,CACtB,qBACG;AAIH,QAAI,MAAuC;AACzC,YAAM,UAAwB,mCAAmB,gBAAgB;AACjE,UAAI,CAAC;AACH,cAAM,IAAI;AAAA,UACR,mFAAmF;AAAA,YACjF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,IACJ;AAEA,UAAM,uBACJ,iBAAiB,eAAe,iBAAiB,QAAQ;AAE3D,UAAM,cAAc,WAAW,oBAAoB;AAEnD,UAAM,yBAMF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,gBACP,OACA;AACA,YAAM,CAAC,cAAc,wBAAwB,YAAY,IACvD,MAAM,QAAQ,MAAM;AAIlB,cAAM,EAAE,wBAAAA,yBAAwB,GAAGC,cAAa,IAAI;AACpD,eAAO,CAAC,MAAM,SAASD,yBAAwBC,aAAY;AAAA,MAC7D,GAAG,CAAC,KAAK,CAAC;AAEZ,YAAM,eAA0C,MAAM,QAAQ,MAAM;AAGlE,YAAI,gBAAgB;AACpB,YAAI,cAAc,UAAU;AAC1B,cAAI,MAAuC;AACzC,kBAAM,UAAwB;AAAA;AAAA,cAE5B,oCAAC,aAAa,UAAb,IAAsB;AAAA,YACzB;AACA,gBAAI,CAAC,SAAS;AACZ,oBAAM,IAAI;AAAA,gBACR;AAAA,cACF;AAAA,YACF;AACA,4BAAgB;AAAA,UAClB;AAAA,QACF;AACA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,OAAO,CAAC;AAG1B,YAAM,eAAe,MAAM,WAAW,YAAY;AAKlD,YAAM,wBACJ,QAAQ,MAAM,KAAK,KACnB,QAAQ,MAAM,MAAO,QAAQ,KAC7B,QAAQ,MAAM,MAAO,QAAQ;AAC/B,YAAM,0BACJ,QAAQ,YAAY,KAAK,QAAQ,aAAc,KAAK;AAEtD,UAEE,CAAC,yBACD,CAAC,yBACD;AACA,cAAM,IAAI;AAAA,UACR,6CACM,WAAW,4JAEc,WAAW;AAAA,QAC5C;AAAA,MACF;AAGA,YAAM,QAAe,wBACjB,MAAM,QACN,aAAc;AAElB,YAAM,iBAAiB,0BACnB,aAAc,iBACd,MAAM;AAEV,YAAM,qBAAqB,MAAM,QAAQ,MAAM;AAG7C,eAAO,0BAAuB,MAAM,UAAU,sBAAsB;AAAA,MACtE,GAAG,CAAC,KAAK,CAAC;AAEV,YAAM,CAAC,cAAc,gBAAgB,IAAI,MAAM,QAAQ,MAAM;AAC3D,YAAI,CAAC,yBAA0B,QAAO;AAItC,cAAMC,gBAAe;AAAA,UACnB;AAAA,UACA,wBAAwB,SAAY,aAAc;AAAA,QACpD;AAMA,cAAMC,oBACJD,cAAa,iBAAiB,KAAKA,aAAY;AAEjD,eAAO,CAACA,eAAcC,iBAAgB;AAAA,MACxC,GAAG,CAAC,OAAO,uBAAuB,YAAY,CAAC;AAI/C,YAAM,yBAAyB,MAAM,QAAQ,MAAM;AACjD,YAAI,uBAAuB;AAIzB,iBAAO;AAAA,QACT;AAIA,eAAO;AAAA,UACL,GAAG;AAAA,UACH;AAAA,QACF;AAAA,MACF,GAAG,CAAC,uBAAuB,cAAc,YAAY,CAAC;AAGtD,YAAM,iBAAiB,MAAM,OAAgB,MAAS;AACtD,YAAM,mBAAmB,MAAM,OAAO,YAAY;AAClD,YAAM,4BAA4B,MAAM,OAAgB,MAAS;AACjE,YAAM,oBAAoB,MAAM,OAAO,KAAK;AAC5C,YAAM,YAAY,MAAM,OAAO,KAAK;AAMpC,YAAM,kCAAkC,MAAM;AAAA,QAC5C;AAAA,MACF;AAEA,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AACpB,eAAO,MAAM;AACX,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF,GAAG,CAAC,CAAC;AAEL,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD,cAAM,WAAW,MAAM;AAOrB,cACE,0BAA0B,WAC1B,iBAAiB,iBAAiB,SAClC;AACA,mBAAO,0BAA0B;AAAA,UACnC;AAMA,iBAAO,mBAAmB,MAAM,SAAS,GAAG,YAAY;AAAA,QAC1D;AACA,eAAO;AAAA,MACT,GAAG,CAAC,OAAO,YAAY,CAAC;AAMxB,YAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,cAAM,YAAY,CAAC,kBAA8B;AAC/C,cAAI,CAAC,cAAc;AACjB,mBAAO,MAAM;AAAA,YAAC;AAAA,UAChB;AAEA,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,CAAC;AAEjB,wCAAkC,qBAAqB;AAAA,QACrD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,UAAI;AAEJ,UAAI;AACF,2BAAmB,MAAM;AAAA;AAAA,UAEvB;AAAA;AAAA;AAAA,UAGA;AAAA,UACA,iBACI,MAAM,mBAAmB,eAAe,GAAG,YAAY,IACvD;AAAA,QACN;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,gCAAgC,SAAS;AAE3C;AAAC,UAAC,IAAc,WACd;AAAA;AAAA,EAA4D,gCAAgC,QAAQ,KAAK;AAAA;AAAA;AAAA,QAC7G;AAEA,cAAM;AAAA,MACR;AAEA,gCAA0B,MAAM;AAC9B,wCAAgC,UAAU;AAC1C,kCAA0B,UAAU;AACpC,uBAAe,UAAU;AAAA,MAC3B,CAAC;AAID,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD;AAAA;AAAA,UAEE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG;AAAA,cACJ,KAAK;AAAA;AAAA,UACP;AAAA;AAAA,MAEJ,GAAG,CAAC,wBAAwB,kBAAkB,gBAAgB,CAAC;AAI/D,YAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,YAAI,0BAA0B;AAI5B,iBACE,oCAAC,aAAa,UAAb,EAAsB,OAAO,0BAC3B,wBACH;AAAA,QAEJ;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,0BAA0B,sBAAsB,CAAC;AAEnE,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe;AAO3C,UAAM,UAAU;AAIhB,YAAQ,mBAAmB;AAC3B,YAAQ,cAAc,gBAAgB,cAAc;AAEpD,QAAI,YAAY;AACd,YAAM,aAAa,MAAM;AAAA,QACvB,SAAS,kBAAkB,OAAO,KAAK;AAErC,iBAAO,oCAAC,WAAS,GAAG,OAAO,wBAAwB,KAAK;AAAA,QAC1D;AAAA,MACF;AAEA,YAAM,YAAY;AAClB,gBAAU,cAAc;AACxB,gBAAU,mBAAmB;AAC7B,aAAqB,qCAAa,WAAW,gBAAgB;AAAA,IAC/D;AAEA,WAAqB,qCAAa,SAAS,gBAAgB;AAAA,EAC7D;AAEA,SAAO;AACT;AAEA,IAAO,kBAAQ;;;ACpvBf,SAAS,SACP,eACA;AACA,QAAM,EAAE,UAAU,SAAS,aAAa,MAAM,IAAI;AAElD,QAAM,eAAe,MAAM,QAAQ,MAAM;AACvC,UAAM,eAAe,mBAAmB,KAAK;AAE7C,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA,gBAAgB,cAAc,MAAM,cAAc;AAAA,IACpD;AAEA,QAAI,OAAuC;AACzC,aAAO;AAAA,IACT,OAAO;AACL,YAAM,EAAE,wBAAwB,QAAQ,iBAAiB,OAAO,IAC9D;AAEF,aAAuB,uBAAO,OAAO,kBAAkB;AAAA,QACrD;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,OAAO,WAAW,CAAC;AAEvB,QAAM,gBAAgB,MAAM,QAAQ,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC;AAEnE,4BAA0B,MAAM;AAC9B,UAAM,EAAE,aAAa,IAAI;AACzB,iBAAa,gBAAgB,aAAa;AAC1C,iBAAa,aAAa;AAE1B,QAAI,kBAAkB,MAAM,SAAS,GAAG;AACtC,mBAAa,iBAAiB;AAAA,IAChC;AACA,WAAO,MAAM;AACX,mBAAa,eAAe;AAC5B,mBAAa,gBAAgB;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,cAAc,aAAa,CAAC;AAEhC,QAAM,UAAU,WAAW;AAE3B,SAAO,oCAAC,QAAQ,UAAR,EAAiB,OAAO,gBAAe,QAAS;AAC1D;AAEA,IAAO,mBAAQ;;;AC7FR,SAAS,uBAAuB,UAAU,mBAAmB;AAClE,SAAO,SAASC,mBAA0C;AACxD,UAAM,eAAe,MAAM,WAAW,OAAO;AAE7C,QAA6C,CAAC,cAAc;AAC1D,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAkBO,IAAM,kBAAgC,uCAAuB;;;ACuC7D,SAAS,gBAKd,UAGY,mBACZ;AACA,QAAMC,mBACJ,YAAY,oBACR;AAAA;AAAA,IAEA,uBAAuB,OAAO;AAAA;AACpC,QAAMC,YAAW,MAAM;AACrB,UAAM,EAAE,MAAM,IAAID,iBAAgB;AAClC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,WAAU;AAAA,IACtB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAiBO,IAAM,WAAyB,gCAAgB;;;ACjE/C,SAAS,mBAKd,UAGY,mBACZ;AACA,QAAMC,YACJ,YAAY,oBAAoB,WAAkB,gBAAgB,OAAO;AAE3E,QAAMC,eAAc,MAAM;AACxB,UAAM,QAAQD,UAAS;AACvB,WAAO,MAAM;AAAA,EACf;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAuBO,IAAM,cAA4B,mCAAmB;;;ACrG5D,2BAAiD;AAoHjD,IAAM,cAA+B,CAAC,GAAG,MAAM,MAAM;AAQ9C,SAAS,mBACd,UAGY,mBACC;AACb,QAAMC,mBACJ,YAAY,oBACR,kBACA,uBAAuB,OAAO;AAEpC,QAAMC,eAAc,CAClB,UACA,sBAE4C,CAAC,MAChC;AACb,UAAM,EAAE,aAAa,YAAY,IAC/B,OAAO,wBAAwB,aAC3B,EAAE,YAAY,oBAAoB,IAClC;AACN,QAAI,MAAuC;AACzC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AACA,UAAI,OAAO,aAAa,YAAY;AAClC,cAAM,IAAI,MAAM,uDAAuD;AAAA,MACzE;AACA,UAAI,OAAO,eAAe,YAAY;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eAAeD,iBAAgB;AAErC,UAAM,EAAE,OAAO,cAAc,eAAe,IAAI;AAEhD,UAAM,WAAW,MAAM,OAAO,IAAI;AAElC,UAAM,kBAAkB,MAAM;AAAA,MAC5B;AAAA,QACE,CAAC,SAAS,IAAI,EAAE,OAAe;AAC7B,gBAAM,WAAW,SAAS,KAAK;AAC/B,cAAI,MAAuC;AACzC,kBAAM,EAAE,gBAAgB,CAAC,EAAE,IACzB,OAAO,wBAAwB,aAC3B,CAAC,IACD;AACN,kBAAM,EAAE,uBAAuB,eAAe,IAAI;AAClD,kBAAM;AAAA,cACJ,uBAAuB;AAAA,cACvB,gBAAgB;AAAA,YAClB,IAAI;AAAA,cACF;AAAA,cACA;AAAA,cACA,GAAG;AAAA,YACL;AACA,gBACE,wBAAwB,YACvB,wBAAwB,UAAU,SAAS,SAC5C;AACA,oBAAM,YAAY,SAAS,KAAK;AAChC,kBAAI,CAAC,WAAW,UAAU,SAAS,GAAG;AACpC,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA,WAAW;AAAA,oBACX;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AACA,gBACE,+BAA+B,YAC9B,+BAA+B,UAAU,SAAS,SACnD;AAEA,kBAAI,aAAa,OAAO;AACtB,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF,EAAE,MAAM;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AACA,gBAAI,SAAS,QAAS,UAAS,UAAU;AAAA,UAC3C;AACA,iBAAO;AAAA,QACT;AAAA,MACF,EAAE,SAAS,IAAI;AAAA,MACf,CAAC,QAAQ;AAAA,IACX;AAEA,UAAM,oBAAgB;AAAA,MACpB,aAAa;AAAA,MACb,MAAM;AAAA,MACN,kBAAkB,MAAM;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AAEA,UAAM,cAAc,aAAa;AAEjC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAyBO,IAAM,cAA4B,mCAAmB;;;AC7O5D,IAAM,QAAQ;","names":["reactReduxForwardedRef","wrapperProps","subscription","notifyNestedSubs","useReduxContext","useReduxContext","useStore","useStore","useDispatch","useReduxContext","useSelector"]}
Index: de_modules/react-redux/dist/cjs/react-redux.production.min.cjs
===================================================================
--- node_modules/react-redux/dist/cjs/react-redux.production.min.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-"use strict";var _e=Object.create;var Y=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var We=Object.getPrototypeOf,Ue=Object.prototype.hasOwnProperty;var qe=(e,t)=>{for(var o in t)Y(e,o,{get:t[o],enumerable:!0})},le=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ve(t))!Ue.call(e,r)&&r!==o&&Y(e,r,{get:()=>t[r],enumerable:!(n=Ie(t,r))||n.enumerable});return e};var Le=(e,t,o)=>(o=e!=null?_e(We(e)):{},le(t||!e||!e.__esModule?Y(o,"default",{value:e,enumerable:!0}):o,e)),je=e=>le(Y({},"__esModule",{value:!0}),e);var kt={};qe(kt,{Provider:()=>Ee,ReactReduxContext:()=>f,batch:()=>Et,connect:()=>Re,createDispatchHook:()=>pe,createSelectorHook:()=>ae,createStoreHook:()=>j,shallowEqual:()=>R,useDispatch:()=>ke,useSelector:()=>Ae,useStore:()=>G});module.exports=je(kt);var p=Le(require("react"));var $e=p.version.startsWith("19"),Ye=Symbol.for($e?"react.transitional.element":"react.element"),He=Symbol.for("react.portal"),Be=Symbol.for("react.fragment"),ze=Symbol.for("react.strict_mode"),Ke=Symbol.for("react.profiler"),Ge=Symbol.for("react.consumer"),Je=Symbol.for("react.context"),Te=Symbol.for("react.forward_ref"),Xe=Symbol.for("react.suspense"),Ze=Symbol.for("react.suspense_list"),re=Symbol.for("react.memo"),Qe=Symbol.for("react.lazy");var fe=Te,Se=re;function et(e){if(typeof e=="object"&&e!==null){let{$$typeof:t}=e;switch(t){case Ye:switch(e=e.type,e){case Be:case Ke:case ze:case Xe:case Ze:return e;default:switch(e=e&&e.$$typeof,e){case Je:case Te:case Qe:case re:return e;case Ge:return e;default:return t}}case He:return t}}}function ye(e){return et(e)===re}function tt(e,t,o,n,{areStatesEqual:r,areOwnPropsEqual:s,areStatePropsEqual:i}){let u=!1,a,c,d,P,l;function x(S,m){return a=S,c=m,d=e(a,c),P=t(n,c),l=o(d,P,c),u=!0,l}function y(){return d=e(a,c),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function M(){return e.dependsOnOwnProps&&(d=e(a,c)),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function T(){let S=e(a,c),m=!i(S,d);return d=S,m&&(l=o(d,P,c)),l}function w(S,m){let C=!s(m,c),v=!r(S,a,m,c);return a=S,c=m,C&&v?y():C?M():v?T():l}return function(m,C){return u?w(m,C):x(m,C)}}function ne(e,{initMapStateToProps:t,initMapDispatchToProps:o,initMergeProps:n,...r}){let s=t(e,r),i=o(e,r),u=n(e,r);return tt(s,i,u,e,r)}function se(e,t){let o={};for(let n in e){let r=e[n];typeof r=="function"&&(o[n]=(...s)=>t(r(...s)))}return o}function U(e){return function(o){let n=e(o);function r(){return n}return r.dependsOnOwnProps=!1,r}}function me(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function H(e,t){return function(n,{displayName:r}){let s=function(u,a){return s.dependsOnOwnProps?s.mapToProps(u,a):s.mapToProps(u,void 0)};return s.dependsOnOwnProps=!0,s.mapToProps=function(u,a){s.mapToProps=e,s.dependsOnOwnProps=me(e);let c=s(u,a);return typeof c=="function"&&(s.mapToProps=c,s.dependsOnOwnProps=me(c),c=s(u,a)),c},s}}function F(e,t){return(o,n)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${n.wrappedComponentName}.`)}}function he(e){return e&&typeof e=="object"?U(t=>se(e,t)):e?typeof e=="function"?H(e,"mapDispatchToProps"):F(e,"mapDispatchToProps"):U(t=>({dispatch:t}))}function we(e){return e?typeof e=="function"?H(e,"mapStateToProps"):F(e,"mapStateToProps"):U(()=>({}))}function ot(e,t,o){return{...o,...e,...t}}function rt(e){return function(o,{displayName:n,areMergedPropsEqual:r}){let s=!1,i;return function(a,c,d){let P=e(a,c,d);return s?r(P,i)||(i=P):(s=!0,i=P),i}}}function xe(e){return e?typeof e=="function"?rt(e):F(e,"mergeProps"):()=>ot}function B(e){e()}function nt(){let e=null,t=null;return{clear(){e=null,t=null},notify(){B(()=>{let o=e;for(;o;)o.callback(),o=o.next})},get(){let o=[],n=e;for(;n;)o.push(n),n=n.next;return o},subscribe(o){let n=!0,r=t={callback:o,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!n||e===null||(n=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var Ce={notify(){},get:()=>[]};function z(e,t){let o,n=Ce,r=0,s=!1;function i(M){d();let T=n.subscribe(M),w=!1;return()=>{w||(w=!0,T(),P())}}function u(){n.notify()}function a(){y.onStateChange&&y.onStateChange()}function c(){return s}function d(){r++,o||(o=t?t.addNestedSub(a):e.subscribe(a),n=nt())}function P(){r--,o&&r===0&&(o(),o=void 0,n.clear(),n=Ce)}function l(){s||(s=!0,d())}function x(){s&&(s=!1,P())}let y={addNestedSub:i,notifyNestedSubs:u,handleChangeWrapper:a,isSubscribed:c,trySubscribe:l,tryUnsubscribe:x,getListeners:()=>n};return y}var st=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",pt=st(),at=()=>typeof navigator<"u"&&navigator.product==="ReactNative",ct=at(),it=()=>pt||ct?p.useLayoutEffect:p.useEffect,A=it();function Oe(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function R(e,t){if(Oe(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let o=Object.keys(e),n=Object.keys(t);if(o.length!==n.length)return!1;for(let r=0;r<o.length;r++)if(!Object.prototype.hasOwnProperty.call(t,o[r])||!Oe(e[o[r]],t[o[r]]))return!1;return!0}var ut={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Pt={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},dt={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Me={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},lt={[fe]:dt,[Se]:Me};function De(e){return ye(e)?Me:lt[e.$$typeof]||ut}var Tt=Object.defineProperty,ft=Object.getOwnPropertyNames,be=Object.getOwnPropertySymbols,St=Object.getOwnPropertyDescriptor,yt=Object.getPrototypeOf,ge=Object.prototype;function q(e,t){if(typeof t!="string"){if(ge){let s=yt(t);s&&s!==ge&&q(e,s)}let o=ft(t);be&&(o=o.concat(be(t)));let n=De(e),r=De(t);for(let s=0;s<o.length;++s){let i=o[s];if(!Pt[i]&&!(r&&r[i])&&!(n&&n[i])){let u=St(t,i);try{Tt(e,i,u)}catch{}}}}return e}var mt=Symbol.for("react-redux-context"),ht=typeof globalThis<"u"?globalThis:{};function wt(){if(!p.createContext)return{};let e=ht[mt]??=new Map,t=e.get(p.createContext);return t||(t=p.createContext(null),e.set(p.createContext,t)),t}var f=wt();var xt=[null,null];function Ct(e,t,o){A(()=>e(...t),o)}function Ot(e,t,o,n,r,s){e.current=n,o.current=!1,r.current&&(r.current=null,s())}function Dt(e,t,o,n,r,s,i,u,a,c,d){if(!e)return()=>{};let P=!1,l=null,x=()=>{if(P||!u.current)return;let M=t.getState(),T,w;try{T=n(M,r.current)}catch(S){w=S,l=S}w||(l=null),T===s.current?i.current||c():(s.current=T,a.current=T,i.current=!0,d())};return o.onStateChange=x,o.trySubscribe(),x(),()=>{if(P=!0,o.tryUnsubscribe(),o.onStateChange=null,l)throw l}}function bt(e,t){return e===t}function gt(e,t,o,{pure:n,areStatesEqual:r=bt,areOwnPropsEqual:s=R,areStatePropsEqual:i=R,areMergedPropsEqual:u=R,forwardRef:a=!1,context:c=f}={}){let d=c,P=we(e),l=he(t),x=xe(o),y=!!e;return T=>{let w=T.displayName||T.name||"Component",S=`Connect(${w})`,m={shouldHandleStateChanges:y,displayName:S,wrappedComponentName:w,WrappedComponent:T,initMapStateToProps:P,initMapDispatchToProps:l,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:i,areOwnPropsEqual:s,areMergedPropsEqual:u};function C(O){let[E,J,b]=p.useMemo(()=>{let{reactReduxForwardedRef:h,...k}=O;return[O.context,h,k]},[O]),_=p.useMemo(()=>{let h=d;return E?.Consumer,h},[E,d]),D=p.useContext(_),I=!!O.store&&!!O.store.getState&&!!O.store.dispatch,ve=!!D&&!!D.store,g=I?O.store:D.store,ce=ve?D.getServerState:g.getState,X=p.useMemo(()=>ne(g.dispatch,m),[g]),[V,ie]=p.useMemo(()=>{if(!y)return xt;let h=z(g,I?void 0:D.subscription),k=h.notifyNestedSubs.bind(h);return[h,k]},[g,I,D]),ue=p.useMemo(()=>I?D:{...D,subscription:V},[I,D,V]),Z=p.useRef(void 0),Q=p.useRef(b),W=p.useRef(void 0),Pe=p.useRef(!1),ee=p.useRef(!1),te=p.useRef(void 0);A(()=>(ee.current=!0,()=>{ee.current=!1}),[]);let de=p.useMemo(()=>()=>W.current&&b===Q.current?W.current:X(g.getState(),b),[g,b]),Ne=p.useMemo(()=>k=>V?Dt(y,g,V,X,Q,Z,Pe,ee,W,ie,k):()=>{},[V]);Ct(Ot,[Q,Z,Pe,b,W,ie]);let $;try{$=p.useSyncExternalStore(Ne,de,ce?()=>X(ce(),b):de)}catch(h){throw te.current&&(h.message+=`
-The error may be correlated with this previous error:
-${te.current.stack}
-
-`),h}A(()=>{te.current=void 0,W.current=void 0,Z.current=$});let oe=p.useMemo(()=>p.createElement(T,{...$,ref:J}),[J,T,$]);return p.useMemo(()=>y?p.createElement(_.Provider,{value:ue},oe):oe,[_,oe,ue])}let N=p.memo(C);if(N.WrappedComponent=T,N.displayName=C.displayName=S,a){let E=p.forwardRef(function(b,_){return p.createElement(N,{...b,reactReduxForwardedRef:_})});return E.displayName=S,E.WrappedComponent=T,q(E,T)}return q(N,T)}}var Re=gt;function Mt(e){let{children:t,context:o,serverState:n,store:r}=e,s=p.useMemo(()=>{let a=z(r);return{store:r,subscription:a,getServerState:n?()=>n:void 0}},[r,n]),i=p.useMemo(()=>r.getState(),[r]);return A(()=>{let{subscription:a}=s;return a.onStateChange=a.notifyNestedSubs,a.trySubscribe(),i!==r.getState()&&a.notifyNestedSubs(),()=>{a.tryUnsubscribe(),a.onStateChange=void 0}},[s,i]),p.createElement((o||f).Provider,{value:s},t)}var Ee=Mt;function L(e=f){return function(){return p.useContext(e)}}var K=L();function j(e=f){let t=e===f?K:L(e),o=()=>{let{store:n}=t();return n};return Object.assign(o,{withTypes:()=>o}),o}var G=j();function pe(e=f){let t=e===f?G:j(e),o=()=>t().dispatch;return Object.assign(o,{withTypes:()=>o}),o}var ke=pe();var Fe=require("use-sync-external-store/with-selector.js");var Rt=(e,t)=>e===t;function ae(e=f){let t=e===f?K:L(e),o=(n,r={})=>{let{equalityFn:s=Rt}=typeof r=="function"?{equalityFn:r}:r,i=t(),{store:u,subscription:a,getServerState:c}=i,d=p.useRef(!0),P=p.useCallback({[n.name](x){let y=n(x);if(0){if((m==="always"||m==="once"&&d.current)&&!s(y,C))try{}catch(N){}if((S==="always"||S==="once"&&d.current)&&y===x)try{}catch(v){}}return y}}[n.name],[n]),l=(0,Fe.useSyncExternalStoreWithSelector)(a.addNestedSub,u.getState,c||u.getState,P,s);return p.useDebugValue(l),l};return Object.assign(o,{withTypes:()=>o}),o}var Ae=ae();var Et=B;0&&(module.exports={Provider,ReactReduxContext,batch,connect,createDispatchHook,createSelectorHook,createStoreHook,shallowEqual,useDispatch,useSelector,useStore});
-//# sourceMappingURL=react-redux.production.min.cjs.map
Index: de_modules/react-redux/dist/cjs/react-redux.production.min.cjs.map
===================================================================
--- node_modules/react-redux/dist/cjs/react-redux.production.min.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/utils/react.ts","../../src/utils/react-is.ts","../../src/connect/selectorFactory.ts","../../src/utils/bindActionCreators.ts","../../src/connect/wrapMapToProps.ts","../../src/connect/invalidArgFactory.ts","../../src/connect/mapDispatchToProps.ts","../../src/connect/mapStateToProps.ts","../../src/connect/mergeProps.ts","../../src/utils/batch.ts","../../src/utils/Subscription.ts","../../src/utils/useIsomorphicLayoutEffect.ts","../../src/utils/shallowEqual.ts","../../src/utils/hoistStatics.ts","../../src/components/Context.ts","../../src/components/connect.tsx","../../src/components/Provider.tsx","../../src/hooks/useReduxContext.ts","../../src/hooks/useStore.ts","../../src/hooks/useDispatch.ts","../../src/hooks/useSelector.ts","../../src/exports.ts"],"sourcesContent":["export * from './exports'\n","import * as React from 'react'\n\nexport { React }\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n  IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n  'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n  'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n  return typeof type === 'string' ||\n    typeof type === 'function' ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (typeof type === 'object' &&\n      type !== null &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        type.getModuleId !== undefined))\n    ? !0\n    : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n  if (typeof object === 'object' && object !== null) {\n    const { $$typeof } = object\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object\n              case REACT_CONSUMER_TYPE:\n                return object\n              default:\n                return $$typeof\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof\n    }\n  }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n  return IS_REACT_19\n    ? typeOf(object) === REACT_CONSUMER_TYPE\n    : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n  return typeOf(object) === REACT_MEMO_TYPE\n}\n","import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n  dispatch: Dispatch<Action<string>>,\n  factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n  | null\n  | undefined\n  ? (state: S) => TProps\n  : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n  state: State,\n  ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n  initialState: State,\n  ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n  | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n  | MapStateToProps<TStateProps, TOwnProps, State>\n  | null\n  | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n  | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n  readonly areStatePropsEqual: EqualityFn<TStateProps>\n  readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  dispatch: Dispatch<Action<string>>,\n  {\n    areStatesEqual,\n    areOwnPropsEqual,\n    areStatePropsEqual,\n  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n  let hasRunAtLeastOnce = false\n  let state: State\n  let ownProps: TOwnProps\n  let stateProps: TStateProps\n  let dispatchProps: TDispatchProps\n  let mergedProps: TMergedProps\n\n  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n    state = firstState\n    ownProps = firstOwnProps\n    stateProps = mapStateToProps(state, ownProps)\n    dispatchProps = mapDispatchToProps(dispatch, ownProps)\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    hasRunAtLeastOnce = true\n    return mergedProps\n  }\n\n  function handleNewPropsAndNewState() {\n    stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewProps() {\n    if (mapStateToProps.dependsOnOwnProps)\n      stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewState() {\n    const nextStateProps = mapStateToProps(state, ownProps)\n    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n    stateProps = nextStateProps\n\n    if (statePropsChanged)\n      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n    return mergedProps\n  }\n\n  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n    const stateChanged = !areStatesEqual(\n      nextState,\n      state,\n      nextOwnProps,\n      ownProps,\n    )\n    state = nextState\n    ownProps = nextOwnProps\n\n    if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n    if (propsChanged) return handleNewProps()\n    if (stateChanged) return handleNewState()\n    return mergedProps\n  }\n\n  return function pureFinalPropsSelector(\n    nextState: State,\n    nextOwnProps: TOwnProps,\n  ) {\n    return hasRunAtLeastOnce\n      ? handleSubsequentCalls(nextState, nextOwnProps)\n      : handleFirstCall(nextState, nextOwnProps)\n  }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n  (state: State, ownProps: TOwnProps): TStateProps\n  readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n  readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly shouldHandleStateChanges: boolean\n  readonly displayName: string\n  readonly wrappedComponentName: string\n  readonly WrappedComponent: ComponentType<TOwnProps>\n  readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n  readonly initMapStateToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n  readonly initMapDispatchToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n  readonly initMergeProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  dispatch: Dispatch<Action<string>>,\n  {\n    initMapStateToProps,\n    initMapDispatchToProps,\n    initMergeProps,\n    ...options\n  }: SelectorFactoryOptions<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >,\n) {\n  const mapStateToProps = initMapStateToProps(dispatch, options)\n  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n  const mergeProps = initMergeProps(dispatch, options)\n\n  if (process.env.NODE_ENV !== 'production') {\n    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n  }\n\n  return pureFinalPropsSelectorFactory<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n","import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n  actionCreators: ActionCreatorsMapObject,\n  dispatch: Dispatch,\n): ActionCreatorsMapObject {\n  const boundActionCreators: ActionCreatorsMapObject = {}\n\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key]\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n    }\n  }\n  return boundActionCreators\n}\n","import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n  // eslint-disable-next-line no-unused-vars\n  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n  dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n  // * Note:\n  //  It seems that the dispatch argument\n  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)\n  // eslint-disable-next-line no-unused-vars\n  getConstant: (dispatch: Dispatch) =>\n    | {\n        dispatch?: Dispatch\n        dependsOnOwnProps?: boolean\n      }\n    | ActionCreatorsMapObject\n    | ActionCreator<any>,\n) {\n  return function initConstantSelector(dispatch: Dispatch) {\n    const constant = getConstant(dispatch)\n\n    function constantSelector() {\n      return constant\n    }\n    constantSelector.dependsOnOwnProps = false\n    return constantSelector\n  }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n  return mapToProps.dependsOnOwnProps\n    ? Boolean(mapToProps.dependsOnOwnProps)\n    : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n//  * Detects whether the mapToProps function being called depends on props, which\n//    is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n//  * On first call, handles mapToProps if returns another function, and treats that\n//    new function as the true mapToProps for subsequent calls.\n//\n//  * On first call, verifies the first result is a plain object, in order to warn\n//    the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n  mapToProps: MapToProps,\n  methodName: string,\n) {\n  return function initProxySelector(\n    dispatch: Dispatch,\n    { displayName }: { displayName: string },\n  ) {\n    const proxy = function mapToPropsProxy(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      return proxy.dependsOnOwnProps\n        ? proxy.mapToProps(stateOrDispatch, ownProps)\n        : proxy.mapToProps(stateOrDispatch, undefined)\n    }\n\n    // allow detectFactoryAndVerify to get ownProps\n    proxy.dependsOnOwnProps = true\n\n    proxy.mapToProps = function detectFactoryAndVerify(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      proxy.mapToProps = mapToProps\n      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n      let props = proxy(stateOrDispatch, ownProps)\n\n      if (typeof props === 'function') {\n        proxy.mapToProps = props\n        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n        props = proxy(stateOrDispatch, ownProps)\n      }\n\n      if (process.env.NODE_ENV !== 'production')\n        verifyPlainObject(props, displayName, methodName)\n\n      return props\n    }\n\n    return proxy\n  }\n}\n","import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n  return (\n    dispatch: Dispatch<Action<string>>,\n    options: { readonly wrappedComponentName: string },\n  ) => {\n    throw new Error(\n      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n        options.wrappedComponentName\n      }.`,\n    )\n  }\n}\n","import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n  mapDispatchToProps:\n    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n    | undefined,\n) {\n  return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n        // @ts-ignore\n        bindActionCreators(mapDispatchToProps, dispatch),\n      )\n    : !mapDispatchToProps\n      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n          dispatch,\n        }))\n      : typeof mapDispatchToProps === 'function'\n        ? // @ts-ignore\n          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n  return !mapStateToProps\n    ? wrapMapToPropsConstant(() => ({}))\n    : typeof mapStateToProps === 'function'\n      ? // @ts-ignore\n        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n","import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n): TMergedProps {\n  // @ts-ignore\n  return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n  dispatch: Dispatch<Action<string>>,\n  options: {\n    readonly displayName: string\n    readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n  },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n  return function initMergePropsProxy(\n    dispatch,\n    { displayName, areMergedPropsEqual },\n  ) {\n    let hasRunOnce = false\n    let mergedProps: TMergedProps\n\n    return function mergePropsProxy(\n      stateProps: TStateProps,\n      dispatchProps: TDispatchProps,\n      ownProps: TOwnProps,\n    ) {\n      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n      if (hasRunOnce) {\n        if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n          mergedProps = nextMergedProps\n      } else {\n        hasRunOnce = true\n        mergedProps = nextMergedProps\n\n        if (process.env.NODE_ENV !== 'production')\n          verifyPlainObject(mergedProps, displayName, 'mergeProps')\n      }\n\n      return mergedProps\n    }\n  }\n}\n\nexport function mergePropsFactory<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n  return !mergeProps\n    ? () => defaultMergeProps\n    : typeof mergeProps === 'function'\n      ? wrapMergePropsFunc(mergeProps)\n      : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n  ConnectedComponent,\n  InferableComponentEnhancer,\n  InferableComponentEnhancerWithProps,\n  ResolveThunks,\n  DispatchProp,\n  ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n  MapStateToPropsParam,\n  MapDispatchToPropsParam,\n  MergeProps,\n  MapDispatchToPropsNonObject,\n  SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n  ReactReduxContextValue,\n  ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n  try {\n    return JSON.stringify(Comp)\n  } catch (err) {\n    return String(Comp)\n  }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n  effectFunc: EffectFunc,\n  effectArgs: any[],\n  dependencies?: React.DependencyList,\n) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  wrapperProps: unknown,\n  // actualChildProps: unknown,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps\n  renderIsScheduled.current = false\n\n  // If the render was from a store update, clear out that reference and cascade the subscriber update\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null\n    notifyNestedSubs()\n  }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n  shouldHandleStateChanges: boolean,\n  store: Store,\n  subscription: Subscription,\n  childPropsSelector: (state: unknown, props: unknown) => unknown,\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  isMounted: React.MutableRefObject<boolean>,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n  // forceComponentUpdateDispatch: React.Dispatch<any>,\n  additionalSubscribeListener: () => void,\n) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}\n\n  // Capture values for checking if and when this component unmounts\n  let didUnsubscribe = false\n  let lastThrownError: Error | null = null\n\n  // We'll run this callback every time a store subscription update propagates to this component\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return\n    }\n\n    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n    const latestStoreState = store.getState()\n\n    let newChildProps, error\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(\n        latestStoreState,\n        lastWrapperProps.current,\n      )\n    } catch (e) {\n      error = e\n      lastThrownError = e as Error | null\n    }\n\n    if (!error) {\n      lastThrownError = null\n    }\n\n    // If the child props haven't changed, nothing to do here - cascade the subscription update\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs()\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps\n      childPropsFromStoreUpdate.current = newChildProps\n      renderIsScheduled.current = true\n\n      // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n      additionalSubscribeListener()\n    }\n  }\n\n  // Actually subscribe to the nearest connected ancestor (or store)\n  subscription.onStateChange = checkForUpdates\n  subscription.trySubscribe()\n\n  // Pull data from the store after first render in case the store has\n  // changed since we began.\n  checkForUpdates()\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true\n    subscription.tryUnsubscribe()\n    subscription.onStateChange = null\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError\n    }\n  }\n\n  return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n  context?: ReactReduxContextInstance\n  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n  store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n  reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n  return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n  TConnector extends InferableComponentEnhancerWithProps<\n    infer TInjectedProps,\n    any\n  >\n    ? unknown extends TInjectedProps\n      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n        ? TInjectedProps\n        : never\n      : TInjectedProps\n    : never\n\nexport interface ConnectOptions<\n  State = unknown,\n  TStateProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n> {\n  forwardRef?: boolean\n  context?: typeof ReactReduxContext\n  areStatesEqual?: (\n    nextState: State,\n    prevState: State,\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areOwnPropsEqual?: (\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areStatePropsEqual?: (\n    nextStateProps: TStateProps,\n    prevStateProps: TStateProps,\n  ) => boolean\n  areMergedPropsEqual?: (\n    nextMergedProps: TMergedProps,\n    prevMergedProps: TMergedProps,\n  ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n  // tslint:disable:no-unnecessary-generics\n  (): InferableComponentEnhancer<DispatchProp>\n\n  /** mapState only */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n  /** mapDispatch only (as a function) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch only (as an object) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (as a function)*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (nullish) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n  /** mapState and mapDispatch (as an object) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mergeProps only */\n  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and mergeProps */\n  <\n    TStateProps = {},\n    no_dispatch = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapDispatch (as a object) and mergeProps */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and options */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n  /** mapDispatch (as a function) and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch (as an object) and options*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as a function), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as an object), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState, mapDispatch, mergeProps, and options */\n  <\n    TStateProps = {},\n    TDispatchProps = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<\n      TStateProps,\n      TDispatchProps,\n      TOwnProps,\n      TMergedProps\n    >,\n    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n  // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n  TStateProps = {},\n  TDispatchProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n  State = unknown,\n>(\n  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  {\n    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n    // @ts-ignore\n    pure,\n    areStatesEqual = strictEqual,\n    areOwnPropsEqual = shallowEqual,\n    areStatePropsEqual = shallowEqual,\n    areMergedPropsEqual = shallowEqual,\n\n    // use React's forwardRef to expose a ref of the wrapped component\n    forwardRef = false,\n\n    // the context consumer to use\n    context = ReactReduxContext,\n  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true\n      warning(\n        'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n      )\n    }\n  }\n\n  const Context = context\n\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n  const initMergeProps = mergePropsFactory(mergeProps)\n\n  const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n  const wrapWithConnect = <TProps,>(\n    WrappedComponent: ComponentType<TProps>,\n  ) => {\n    type WrappedComponentProps = TProps &\n      ConnectPropsMaybeWithoutContext<TProps>\n\n    if (process.env.NODE_ENV !== 'production') {\n      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n      if (!isValid)\n        throw new Error(\n          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n            WrappedComponent,\n          )}`,\n        )\n    }\n\n    const wrappedComponentName =\n      WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n    const displayName = `Connect(${wrappedComponentName})`\n\n    const selectorFactoryOptions: SelectorFactoryOptions<\n      any,\n      any,\n      any,\n      any,\n      State\n    > = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual,\n    }\n\n    function ConnectFunction<TOwnProps>(\n      props: InternalConnectProps & TOwnProps,\n    ) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] =\n        React.useMemo(() => {\n          // Distinguish between actual \"data\" props that were passed to the wrapper component,\n          // and values needed to control behavior (forwarded refs, alternate context instances).\n          // To maintain the wrapperProps object reference, memoize this destructuring.\n          const { reactReduxForwardedRef, ...wrapperProps } = props\n          return [props.context, reactReduxForwardedRef, wrapperProps]\n        }, [props])\n\n      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        let ResultContext = Context\n        if (propsContext?.Consumer) {\n          if (process.env.NODE_ENV !== 'production') {\n            const isValid = /*#__PURE__*/ isContextConsumer(\n              // @ts-ignore\n              <propsContext.Consumer />,\n            )\n            if (!isValid) {\n              throw new Error(\n                'You must pass a valid React context consumer as `props.context`',\n              )\n            }\n            ResultContext = propsContext\n          }\n        }\n        return ResultContext\n      }, [propsContext, Context])\n\n      // Retrieve the store and ancestor subscription via context, if available\n      const contextValue = React.useContext(ContextToUse)\n\n      // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n      const didStoreComeFromProps =\n        Boolean(props.store) &&\n        Boolean(props.store!.getState) &&\n        Boolean(props.store!.dispatch)\n      const didStoreComeFromContext =\n        Boolean(contextValue) && Boolean(contextValue!.store)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        !didStoreComeFromProps &&\n        !didStoreComeFromContext\n      ) {\n        throw new Error(\n          `Could not find \"store\" in the context of ` +\n            `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n            `or pass a custom React context provider to <Provider> and the corresponding ` +\n            `React context consumer to ${displayName} in connect options.`,\n        )\n      }\n\n      // Based on the previous check, one of these must be true\n      const store: Store = didStoreComeFromProps\n        ? props.store!\n        : contextValue!.store\n\n      const getServerState = didStoreComeFromContext\n        ? contextValue!.getServerState\n        : store.getState\n\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n      }, [store])\n\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n        // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n        const subscription = createSubscription(\n          store,\n          didStoreComeFromProps ? undefined : contextValue!.subscription,\n        )\n\n        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n        const notifyNestedSubs =\n          subscription.notifyNestedSubs.bind(subscription)\n\n        return [subscription, notifyNestedSubs]\n      }, [store, didStoreComeFromProps, contextValue])\n\n      // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue!\n        }\n\n        // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n        return {\n          ...contextValue,\n          subscription,\n        } as ReactReduxContextValue\n      }, [didStoreComeFromProps, contextValue, subscription])\n\n      // Set up refs to coordinate values between the subscription effect and the render logic\n      const lastChildProps = React.useRef<unknown>(undefined)\n      const lastWrapperProps = React.useRef(wrapperProps)\n      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n      const renderIsScheduled = React.useRef(false)\n      const isMounted = React.useRef(false)\n\n      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n       */\n      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n        undefined,\n      )\n\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true\n        return () => {\n          isMounted.current = false\n        }\n      }, [])\n\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (\n            childPropsFromStoreUpdate.current &&\n            wrapperProps === lastWrapperProps.current\n          ) {\n            return childPropsFromStoreUpdate.current\n          }\n\n          // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n          return childPropsSelector(store.getState(), wrapperProps)\n        }\n        return selector\n      }, [store, wrapperProps])\n\n      // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = (reactListener: () => void) => {\n          if (!subscription) {\n            return () => {}\n          }\n\n          return subscribeUpdates(\n            shouldHandleStateChanges,\n            store,\n            subscription,\n            // @ts-ignore\n            childPropsSelector,\n            lastWrapperProps,\n            lastChildProps,\n            renderIsScheduled,\n            isMounted,\n            childPropsFromStoreUpdate,\n            notifyNestedSubs,\n            reactListener,\n          )\n        }\n\n        return subscribe\n      }, [subscription])\n\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n        lastWrapperProps,\n        lastChildProps,\n        renderIsScheduled,\n        wrapperProps,\n        childPropsFromStoreUpdate,\n        notifyNestedSubs,\n      ])\n\n      let actualChildProps: Record<string, unknown>\n\n      try {\n        actualChildProps = React.useSyncExternalStore(\n          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n          subscribeForReact,\n          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n          actualChildPropsSelector,\n          getServerState\n            ? () => childPropsSelector(getServerState(), wrapperProps)\n            : actualChildPropsSelector,\n        )\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          // eslint-disable-next-line no-extra-semi\n          ;(err as Error).message +=\n            `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n        }\n\n        throw err\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined\n        childPropsFromStoreUpdate.current = undefined\n        lastChildProps.current = actualChildProps\n      })\n\n      // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          // @ts-ignore\n          <WrappedComponent\n            {...actualChildProps}\n            ref={reactReduxForwardedRef}\n          />\n        )\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n      // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return (\n            <ContextToUse.Provider value={overriddenContextValue}>\n              {renderedWrappedComponent}\n            </ContextToUse.Provider>\n          )\n        }\n\n        return renderedWrappedComponent\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n      return renderedChild\n    }\n\n    const _Connect = React.memo(ConnectFunction)\n\n    type ConnectedWrapperComponent = typeof _Connect & {\n      WrappedComponent: typeof WrappedComponent\n    }\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect as unknown as ConnectedComponent<\n      typeof WrappedComponent,\n      WrappedComponentProps\n    >\n    Connect.WrappedComponent = WrappedComponent\n    Connect.displayName = ConnectFunction.displayName = displayName\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(\n        function forwardConnectRef(props, ref) {\n          // @ts-ignore\n          return <Connect {...props} reactReduxForwardedRef={ref} />\n        },\n      )\n\n      const forwarded = _forwarded as ConnectedWrapperComponent\n      forwarded.displayName = displayName\n      forwarded.WrappedComponent = WrappedComponent\n      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n    }\n\n    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n  }\n\n  return wrapWithConnect\n}\n\nexport default connect as Connect\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import connect from './components/connect'\nexport type {\n  Connect,\n  ConnectProps,\n  ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n  MapDispatchToProps,\n  MapDispatchToPropsFactory,\n  MapDispatchToPropsFunction,\n  MapDispatchToPropsNonObject,\n  MapDispatchToPropsParam,\n  MapStateToProps,\n  MapStateToPropsFactory,\n  MapStateToPropsParam,\n  MergeProps,\n  Selector,\n  SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n"],"mappings":"0kBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,cAAAE,GAAA,sBAAAC,EAAA,UAAAC,GAAA,YAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,EAAA,iBAAAC,EAAA,gBAAAC,GAAA,gBAAAC,GAAA,aAAAC,IAAA,eAAAC,GAAAb,ICAA,IAAAc,EAAuB,qBCQhB,IAAMC,GAA8BC,EAAM,QAAQ,WAAW,IAAI,EAElEC,GAAqC,OAAO,IAChDF,GAAc,6BAA+B,eAC/C,EACMG,GAAoC,OAAO,IAAI,cAAc,EAC7DC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAyC,OAAO,IAAI,mBAAmB,EACvEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAqC,OAAO,IAAI,eAAe,EAC/DC,GAAyC,OAAO,IAAI,mBAAmB,EACvEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAA2C,OAAO,IACtD,qBACF,EACMC,GAAkC,OAAO,IAAI,YAAY,EACzDC,GAAkC,OAAO,IAAI,YAAY,EAMxD,IAAMC,GAAaC,GACbC,GAAOC,GAwBpB,SAASC,GAAOC,EAAiC,CAC/C,GAAI,OAAOA,GAAW,UAAYA,IAAW,KAAM,CACjD,GAAM,CAAE,SAAAC,CAAS,EAAID,EAErB,OAAQC,EAAU,CAChB,KAAKC,GACH,OAAUF,EAASA,EAAO,KAAOA,EAAS,CACxC,KAAKG,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,OAAOP,EACT,QACE,OAAUA,EAASA,GAAUA,EAAO,SAAWA,EAAS,CACtD,KAAKQ,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,OAAOX,EACT,KAAKY,GACH,OAAOZ,EACT,QACE,OAAOC,CACX,CACJ,CACF,KAAKY,GACH,OAAOZ,CACX,CACF,CACF,CAQO,SAASa,GAAOC,EAAiD,CACtE,OAAOC,GAAOD,CAAM,IAAME,EAC5B,CC9BA,SAASC,GAOPC,EACAC,EACAC,EACAC,EACA,CACE,eAAAC,EACA,iBAAAC,EACA,mBAAAC,CACF,EACA,CACA,IAAIC,EAAoB,GACpBC,EACAC,EACAC,EACAC,EACAC,EAEJ,SAASC,EAAgBC,EAAmBC,EAA0B,CACpE,OAAAP,EAAQM,EACRL,EAAWM,EACXL,EAAaV,EAAgBQ,EAAOC,CAAQ,EAC5CE,EAAgBV,EAAmBE,EAAUM,CAAQ,EACrDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EAC5DF,EAAoB,GACbK,CACT,CAEA,SAASI,GAA4B,CACnC,OAAAN,EAAaV,EAAgBQ,EAAOC,CAAQ,EAExCR,EAAmB,oBACrBU,EAAgBV,EAAmBE,EAAUM,CAAQ,GAEvDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EACrDG,CACT,CAEA,SAASK,GAAiB,CACxB,OAAIjB,EAAgB,oBAClBU,EAAaV,EAAgBQ,EAAOC,CAAQ,GAE1CR,EAAmB,oBACrBU,EAAgBV,EAAmBE,EAAUM,CAAQ,GAEvDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EACrDG,CACT,CAEA,SAASM,GAAiB,CACxB,IAAMC,EAAiBnB,EAAgBQ,EAAOC,CAAQ,EAChDW,EAAoB,CAACd,EAAmBa,EAAgBT,CAAU,EACxE,OAAAA,EAAaS,EAETC,IACFR,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,GAEvDG,CACT,CAEA,SAASS,EAAsBC,EAAkBC,EAAyB,CACxE,IAAMC,EAAe,CAACnB,EAAiBkB,EAAcd,CAAQ,EACvDgB,EAAe,CAACrB,EACpBkB,EACAd,EACAe,EACAd,CACF,EAIA,OAHAD,EAAQc,EACRb,EAAWc,EAEPC,GAAgBC,EAAqBT,EAA0B,EAC/DQ,EAAqBP,EAAe,EACpCQ,EAAqBP,EAAe,EACjCN,CACT,CAEA,OAAO,SACLU,EACAC,EACA,CACA,OAAOhB,EACHc,EAAsBC,EAAWC,CAAY,EAC7CV,EAAgBS,EAAWC,CAAY,CAC7C,CACF,CAgDe,SAARG,GAOLvB,EACA,CACE,oBAAAwB,EACA,uBAAAC,EACA,eAAAC,EACA,GAAGC,CACL,EAOA,CACA,IAAM9B,EAAkB2B,EAAoBxB,EAAU2B,CAAO,EACvD7B,EAAqB2B,EAAuBzB,EAAU2B,CAAO,EAC7D5B,EAAa2B,EAAe1B,EAAU2B,CAAO,EAMnD,OAAO/B,GAMLC,EAAiBC,EAAoBC,EAAYC,EAAU2B,CAAO,CACtE,CC/Oe,SAARC,GACLC,EACAC,EACyB,CACzB,IAAMC,EAA+C,CAAC,EAEtD,QAAWC,KAAOH,EAAgB,CAChC,IAAMI,EAAgBJ,EAAeG,CAAG,EACpC,OAAOC,GAAkB,aAC3BF,EAAoBC,CAAG,EAAI,IAAIE,IAASJ,EAASG,EAAc,GAAGC,CAAI,CAAC,EAE3E,CACA,OAAOH,CACT,CCCO,SAASI,EAMdC,EAOA,CACA,OAAO,SAA8BC,EAAoB,CACvD,IAAMC,EAAWF,EAAYC,CAAQ,EAErC,SAASE,GAAmB,CAC1B,OAAOD,CACT,CACA,OAAAC,EAAiB,kBAAoB,GAC9BA,CACT,CACF,CAUA,SAASC,GAAqBC,EAAwB,CACpD,OAAOA,EAAW,kBACd,EAAQA,EAAW,kBACnBA,EAAW,SAAW,CAC5B,CAcO,SAASC,EACdD,EACAE,EACA,CACA,OAAO,SACLN,EACA,CAAE,YAAAO,CAAY,EACd,CACA,IAAMC,EAAQ,SACZC,EACAC,EACY,CACZ,OAAOF,EAAM,kBACTA,EAAM,WAAWC,EAAiBC,CAAQ,EAC1CF,EAAM,WAAWC,EAAiB,MAAS,CACjD,EAGA,OAAAD,EAAM,kBAAoB,GAE1BA,EAAM,WAAa,SACjBC,EACAC,EACY,CACZF,EAAM,WAAaJ,EACnBI,EAAM,kBAAoBL,GAAqBC,CAAU,EACzD,IAAIO,EAAQH,EAAMC,EAAiBC,CAAQ,EAE3C,OAAI,OAAOC,GAAU,aACnBH,EAAM,WAAaG,EACnBH,EAAM,kBAAoBL,GAAqBQ,CAAK,EACpDA,EAAQH,EAAMC,EAAiBC,CAAQ,GAMlCC,CACT,EAEOH,CACT,CACF,CC3GO,SAASI,EAAwBC,EAAcC,EAAc,CAClE,MAAO,CACLC,EACAC,IACG,CACH,MAAM,IAAI,MACR,yBAAyB,OAAOH,CAAG,QAAQC,CAAI,uCAC7CE,EAAQ,oBACV,GACF,CACF,CACF,CCPO,SAASC,GACdC,EAGA,CACA,OAAOA,GAAsB,OAAOA,GAAuB,SACvDC,EAAwBC,GAEtBC,GAAmBH,EAAoBE,CAAQ,CACjD,EACCF,EAIC,OAAOA,GAAuB,WAE5BI,EAAmBJ,EAAoB,oBAAoB,EAC3DK,EAAwBL,EAAoB,oBAAoB,EANlEC,EAAwBC,IAAwC,CAC9D,SAAAA,CACF,EAAE,CAKV,CCpBO,SAASI,GACdC,EACA,CACA,OAAQA,EAEJ,OAAOA,GAAoB,WAEzBC,EAAmBD,EAAiB,iBAAiB,EACrDE,EAAwBF,EAAiB,iBAAiB,EAJ5DG,EAAuB,KAAO,CAAC,EAAE,CAKvC,CCPA,SAASC,GAMPC,EACAC,EACAC,EACc,CAEd,MAAO,CAAE,GAAGA,EAAU,GAAGF,EAAY,GAAGC,CAAc,CACxD,CAEA,SAASE,GAMPC,EAOoE,CACpE,OAAO,SACLC,EACA,CAAE,YAAAC,EAAa,oBAAAC,CAAoB,EACnC,CACA,IAAIC,EAAa,GACbC,EAEJ,OAAO,SACLT,EACAC,EACAC,EACA,CACA,IAAMQ,EAAkBN,EAAWJ,EAAYC,EAAeC,CAAQ,EAEtE,OAAIM,EACGD,EAAoBG,EAAiBD,CAAW,IACnDA,EAAcC,IAEhBF,EAAa,GACbC,EAAcC,GAMTD,CACT,CACF,CACF,CAEO,SAASE,GAMdP,EACA,CACA,OAAQA,EAEJ,OAAOA,GAAe,WACpBD,GAAmBC,CAAU,EAC7BQ,EAAwBR,EAAY,YAAY,EAHlD,IAAML,EAIZ,CC5EO,SAASc,EAAiBC,EAAsB,CACrDA,EAAS,CACX,CCWA,SAASC,IAA2B,CAClC,IAAIC,EAAyB,KACzBC,EAAwB,KAE5B,MAAO,CACL,OAAQ,CACND,EAAQ,KACRC,EAAO,IACT,EAEA,QAAS,CACPC,EAAM,IAAM,CACV,IAAIC,EAAWH,EACf,KAAOG,GACLA,EAAS,SAAS,EAClBA,EAAWA,EAAS,IAExB,CAAC,CACH,EAEA,KAAM,CACJ,IAAMC,EAAwB,CAAC,EAC3BD,EAAWH,EACf,KAAOG,GACLC,EAAU,KAAKD,CAAQ,EACvBA,EAAWA,EAAS,KAEtB,OAAOC,CACT,EAEA,UAAUC,EAAsB,CAC9B,IAAIC,EAAe,GAEbH,EAAsBF,EAAO,CACjC,SAAAI,EACA,KAAM,KACN,KAAMJ,CACR,EAEA,OAAIE,EAAS,KACXA,EAAS,KAAK,KAAOA,EAErBH,EAAQG,EAGH,UAAuB,CACxB,CAACG,GAAgBN,IAAU,OAC/BM,EAAe,GAEXH,EAAS,KACXA,EAAS,KAAK,KAAOA,EAAS,KAE9BF,EAAOE,EAAS,KAEdA,EAAS,KACXA,EAAS,KAAK,KAAOA,EAAS,KAE9BH,EAAQG,EAAS,KAErB,CACF,CACF,CACF,CAeA,IAAMI,GAAgB,CACpB,QAAS,CAAC,EACV,IAAK,IAAM,CAAC,CACd,EAEO,SAASC,EAAmBC,EAAYC,EAA0B,CACvE,IAAIC,EACAP,EAAgCG,GAGhCK,EAAsB,EAGtBC,EAAiB,GAErB,SAASC,EAAaX,EAAsB,CAC1CY,EAAa,EAEb,IAAMC,EAAkBZ,EAAU,UAAUD,CAAQ,EAGhDc,EAAU,GACd,MAAO,IAAM,CACNA,IACHA,EAAU,GACVD,EAAgB,EAChBE,EAAe,EAEnB,CACF,CAEA,SAASC,GAAmB,CAC1Bf,EAAU,OAAO,CACnB,CAEA,SAASgB,GAAsB,CACzBC,EAAa,eACfA,EAAa,cAAc,CAE/B,CAEA,SAASf,GAAe,CACtB,OAAOO,CACT,CAEA,SAASE,GAAe,CACtBH,IACKD,IACHA,EAAcD,EACVA,EAAU,aAAaU,CAAmB,EAC1CX,EAAM,UAAUW,CAAmB,EAEvChB,EAAYL,GAAyB,EAEzC,CAEA,SAASmB,GAAiB,CACxBN,IACID,GAAeC,IAAwB,IACzCD,EAAY,EACZA,EAAc,OACdP,EAAU,MAAM,EAChBA,EAAYG,GAEhB,CAEA,SAASe,GAAmB,CACrBT,IACHA,EAAiB,GACjBE,EAAa,EAEjB,CAEA,SAASQ,GAAqB,CACxBV,IACFA,EAAiB,GACjBK,EAAe,EAEnB,CAEA,IAAMG,EAA6B,CACjC,aAAAP,EACA,iBAAAK,EACA,oBAAAC,EACA,aAAAd,EACA,aAAcgB,EACd,eAAgBC,EAChB,aAAc,IAAMnB,CACtB,EAEA,OAAOiB,CACT,CC1KA,IAAMG,GAAY,IAEd,OAAO,OAAW,KAClB,OAAO,OAAO,SAAa,KAC3B,OAAO,OAAO,SAAS,cAAkB,IAGvCC,GAAwBD,GAAU,EAWlCE,GAAyB,IAC7B,OAAO,UAAc,KAAe,UAAU,UAAY,cAEtDC,GAAgCD,GAAuB,EAEvDE,GAA+B,IACnCH,IAASE,GAAgBE,EAAM,gBAAkBA,EAAM,UAE5CC,EACKF,GAA6B,ECvC/C,SAASG,GAAGC,EAAYC,EAAY,CAClC,OAAID,IAAMC,EACDD,IAAM,GAAKC,IAAM,GAAK,EAAID,IAAM,EAAIC,EAEpCD,IAAMA,GAAKC,IAAMA,CAE5B,CAEe,SAARC,EAA8BC,EAAWC,EAAW,CACzD,GAAIL,GAAGI,EAAMC,CAAI,EAAG,MAAO,GAE3B,GACE,OAAOD,GAAS,UAChBA,IAAS,MACT,OAAOC,GAAS,UAChBA,IAAS,KAET,MAAO,GAGT,IAAMC,EAAQ,OAAO,KAAKF,CAAI,EACxBG,EAAQ,OAAO,KAAKF,CAAI,EAE9B,GAAIC,EAAM,SAAWC,EAAM,OAAQ,MAAO,GAE1C,QAASC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IAChC,GACE,CAAC,OAAO,UAAU,eAAe,KAAKH,EAAMC,EAAME,CAAC,CAAC,GACpD,CAACR,GAAGI,EAAKE,EAAME,CAAC,CAAC,EAAGH,EAAKC,EAAME,CAAC,CAAC,CAAC,EAElC,MAAO,GAIX,MAAO,EACT,CCxBA,IAAMC,GAAgB,CACpB,kBAAmB,GACnB,YAAa,GACb,aAAc,GACd,aAAc,GACd,YAAa,GACb,gBAAiB,GACjB,yBAA0B,GAC1B,yBAA0B,GAC1B,OAAQ,GACR,UAAW,GACX,KAAM,EACR,EAEMC,GAAgB,CACpB,KAAM,GACN,OAAQ,GACR,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,UAAW,GACX,MAAO,EACT,EAEMC,GAAsB,CAC1B,SAAU,GACV,OAAQ,GACR,aAAc,GACd,YAAa,GACb,UAAW,EACb,EAEMC,GAAe,CACnB,SAAU,GACV,QAAS,GACT,aAAc,GACd,YAAa,GACb,UAAW,GACX,KAAM,EACR,EAEMC,GAAe,CACnB,CAACC,EAAU,EAAGH,GACd,CAACI,EAAI,EAAGH,EACV,EAEA,SAASI,GAAWC,EAAgB,CAElC,OAAIC,GAAOD,CAAS,EACXL,GAIFC,GAAaI,EAAU,QAAW,GAAKR,EAChD,CAkBA,IAAMU,GAAiB,OAAO,eACxBC,GAAsB,OAAO,oBAC7BC,GAAwB,OAAO,sBAC/BC,GAA2B,OAAO,yBAClCC,GAAiB,OAAO,eACxBC,GAAkB,OAAO,UAEhB,SAARC,EAOLC,EACAC,EACgD,CAChD,GAAI,OAAOA,GAAoB,SAAU,CAGvC,GAAIH,GAAiB,CACnB,IAAMI,EAAqBL,GAAeI,CAAe,EACrDC,GAAsBA,IAAuBJ,IAC/CC,EAAqBC,EAAiBE,CAAkB,CAE5D,CAEA,IAAIC,EAA4BT,GAAoBO,CAAe,EAE/DN,KACFQ,EAAOA,EAAK,OAAOR,GAAsBM,CAAe,CAAC,GAG3D,IAAMG,EAAgBd,GAAWU,CAAe,EAC1CK,EAAgBf,GAAWW,CAAe,EAEhD,QAASK,EAAI,EAAGA,EAAIH,EAAK,OAAQ,EAAEG,EAAG,CACpC,IAAMC,EAAMJ,EAAKG,CAAC,EAClB,GACE,CAACtB,GAAcuB,CAAiC,GAChD,EAAEF,GAAiBA,EAAcE,CAAiC,IAClE,EAAEH,GAAiBA,EAAcG,CAAiC,GAClE,CACA,IAAMC,EAAaZ,GAAyBK,EAAiBM,CAAG,EAChE,GAAI,CAEFd,GAAeO,EAAiBO,EAAKC,CAAW,CAClD,MAAY,CAEZ,CACF,CACF,CACF,CAEA,OAAOR,CACT,CC3HA,IAAMS,GAA6B,OAAO,IAAI,qBAAqB,EAC7DC,GAMJ,OAAO,WAAe,IAClB,WAC2F,CAAC,EAGlG,SAASC,IAAqD,CAC5D,GAAI,CAACC,EAAM,cAAe,MAAO,CAAC,EAElC,IAAMC,EAAcH,GAAGD,EAAU,IAAM,IAAI,IAIvCK,EAAcD,EAAW,IAAID,EAAM,aAAa,EACpD,OAAKE,IACHA,EAAcF,EAAM,cAClB,IACF,EAIAC,EAAW,IAAID,EAAM,cAAeE,CAAW,GAE1CA,CACT,CAEO,IAAMC,EAAkCJ,GAAW,ECJ1D,IAAMK,GAAwB,CAAC,KAAM,IAAI,EAkBzC,SAASC,GACPC,EACAC,EACAC,EACA,CACAC,EAA0B,IAAMH,EAAW,GAAGC,CAAU,EAAGC,CAAY,CACzE,CAGA,SAASE,GACPC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACA,CAEAL,EAAiB,QAAUG,EAC3BD,EAAkB,QAAU,GAGxBE,EAA0B,UAC5BA,EAA0B,QAAU,KACpCC,EAAiB,EAErB,CAIA,SAASC,GACPC,EACAC,EACAC,EACAC,EACAV,EACAC,EACAC,EACAS,EACAP,EACAC,EAEAO,EACA,CAEA,GAAI,CAACL,EAA0B,MAAO,IAAM,CAAC,EAG7C,IAAIM,EAAiB,GACjBC,EAAgC,KAG9BC,EAAkB,IAAM,CAC5B,GAAIF,GAAkB,CAACF,EAAU,QAG/B,OAIF,IAAMK,EAAmBR,EAAM,SAAS,EAEpCS,EAAeC,EACnB,GAAI,CAGFD,EAAgBP,EACdM,EACAhB,EAAiB,OACnB,CACF,OAASmB,EAAG,CACVD,EAAQC,EACRL,EAAkBK,CACpB,CAEKD,IACHJ,EAAkB,MAIhBG,IAAkBhB,EAAe,QAC9BC,EAAkB,SACrBG,EAAiB,GAOnBJ,EAAe,QAAUgB,EACzBb,EAA0B,QAAUa,EACpCf,EAAkB,QAAU,GAI5BU,EAA4B,EAEhC,EAGA,OAAAH,EAAa,cAAgBM,EAC7BN,EAAa,aAAa,EAI1BM,EAAgB,EAEW,IAAM,CAK/B,GAJAF,EAAiB,GACjBJ,EAAa,eAAe,EAC5BA,EAAa,cAAgB,KAEzBK,EAMF,MAAMA,CAEV,CAGF,CAgBA,SAASM,GAAYC,EAAYC,EAAY,CAC3C,OAAOD,IAAMC,CACf,CAyOA,SAASC,GAOPC,EACAC,EACAC,EACA,CAGE,KAAAC,EACA,eAAAC,EAAiBC,GACjB,iBAAAC,EAAmBC,EACnB,mBAAAC,EAAqBD,EACrB,oBAAAE,EAAsBF,EAGtB,WAAAG,EAAa,GAGb,QAAAC,EAAUC,CACZ,EAAwD,CAAC,EAChD,CAUT,IAAMC,EAAUF,EAEVG,EAAsBC,GAAuBf,CAAe,EAC5DgB,EAAyBC,GAA0BhB,CAAkB,EACrEiB,EAAiBC,GAAkBjB,CAAU,EAE7CkB,EAA2B,EAAQpB,EA4UzC,OAzUEqB,GACG,CAcH,IAAMC,EACJD,EAAiB,aAAeA,EAAiB,MAAQ,YAErDE,EAAc,WAAWD,CAAoB,IAE7CE,EAMF,CACF,yBAAAJ,EACA,YAAAG,EACA,qBAAAD,EACA,iBAAAD,EAEA,oBAAAP,EACA,uBAAAE,EACA,eAAAE,EACA,eAAAd,EACA,mBAAAI,EACA,iBAAAF,EACA,oBAAAG,CACF,EAEA,SAASgB,EACPC,EACA,CACA,GAAM,CAACC,EAAcC,EAAwBC,CAAY,EACvDC,EAAM,QAAQ,IAAM,CAIlB,GAAM,CAAE,uBAAAF,EAAwB,GAAGC,CAAa,EAAIH,EACpD,MAAO,CAACA,EAAM,QAASE,EAAwBC,CAAY,CAC7D,EAAG,CAACH,CAAK,CAAC,EAENK,EAA0CD,EAAM,QAAQ,IAAM,CAGlE,IAAIE,EAAgBnB,EACpB,OAAIc,GAAc,SAcXK,CACT,EAAG,CAACL,EAAcd,CAAO,CAAC,EAGpBoB,EAAeH,EAAM,WAAWC,CAAY,EAK5CG,EACJ,EAAQR,EAAM,OACd,EAAQA,EAAM,MAAO,UACrB,EAAQA,EAAM,MAAO,SACjBS,GACJ,EAAQF,GAAiB,EAAQA,EAAc,MAgB3CG,EAAeF,EACjBR,EAAM,MACNO,EAAc,MAEZI,GAAiBF,GACnBF,EAAc,eACdG,EAAM,SAEJE,EAAqBR,EAAM,QAAQ,IAGhCS,GAAuBH,EAAM,SAAUZ,CAAsB,EACnE,CAACY,CAAK,CAAC,EAEJ,CAACI,EAAcC,EAAgB,EAAIX,EAAM,QAAQ,IAAM,CAC3D,GAAI,CAACV,EAA0B,OAAOsB,GAItC,IAAMF,EAAeG,EACnBP,EACAF,EAAwB,OAAYD,EAAc,YACpD,EAMMQ,EACJD,EAAa,iBAAiB,KAAKA,CAAY,EAEjD,MAAO,CAACA,EAAcC,CAAgB,CACxC,EAAG,CAACL,EAAOF,EAAuBD,CAAY,CAAC,EAIzCW,GAAyBd,EAAM,QAAQ,IACvCI,EAIKD,EAKF,CACL,GAAGA,EACH,aAAAO,CACF,EACC,CAACN,EAAuBD,EAAcO,CAAY,CAAC,EAGhDK,EAAiBf,EAAM,OAAgB,MAAS,EAChDgB,EAAmBhB,EAAM,OAAOD,CAAY,EAC5CkB,EAA4BjB,EAAM,OAAgB,MAAS,EAC3DkB,GAAoBlB,EAAM,OAAO,EAAK,EACtCmB,GAAYnB,EAAM,OAAO,EAAK,EAM9BoB,GAAkCpB,EAAM,OAC5C,MACF,EAEAqB,EAA0B,KACxBF,GAAU,QAAU,GACb,IAAM,CACXA,GAAU,QAAU,EACtB,GACC,CAAC,CAAC,EAEL,IAAMG,GAA2BtB,EAAM,QAAQ,IAC5B,IAQbiB,EAA0B,SAC1BlB,IAAiBiB,EAAiB,QAE3BC,EAA0B,QAO5BT,EAAmBF,EAAM,SAAS,EAAGP,CAAY,EAGzD,CAACO,EAAOP,CAAY,CAAC,EAMlBwB,GAAoBvB,EAAM,QAAQ,IACnBwB,GACZd,EAIEe,GACLnC,EACAgB,EACAI,EAEAF,EACAQ,EACAD,EACAG,GACAC,GACAF,EACAN,GACAa,CACF,EAhBS,IAAM,CAAC,EAoBjB,CAACd,CAAY,CAAC,EAEjBgB,GAAkCC,GAAqB,CACrDX,EACAD,EACAG,GACAnB,EACAkB,EACAN,EACF,CAAC,EAED,IAAIiB,EAEJ,GAAI,CACFA,EAAmB5B,EAAM,qBAEvBuB,GAGAD,GACAf,GACI,IAAMC,EAAmBD,GAAe,EAAGR,CAAY,EACvDuB,EACN,CACF,OAASO,EAAK,CACZ,MAAIT,GAAgC,UAEhCS,EAAc,SACd;AAAA;AAAA,EAA4DT,GAAgC,QAAQ,KAAK;AAAA;AAAA,GAGvGS,CACR,CAEAR,EAA0B,IAAM,CAC9BD,GAAgC,QAAU,OAC1CH,EAA0B,QAAU,OACpCF,EAAe,QAAUa,CAC3B,CAAC,EAID,IAAME,GAA2B9B,EAAM,QAAQ,IAG3CA,EAAA,cAACT,EAAA,CACE,GAAGqC,EACJ,IAAK9B,EACP,EAED,CAACA,EAAwBP,EAAkBqC,CAAgB,CAAC,EAmB/D,OAfsB5B,EAAM,QAAQ,IAC9BV,EAKAU,EAAA,cAACC,EAAa,SAAb,CAAsB,MAAOa,IAC3BgB,EACH,EAIGA,GACN,CAAC7B,EAAc6B,GAA0BhB,EAAsB,CAAC,CAGrE,CASA,IAAMiB,EAPW/B,EAAM,KAAKL,CAAe,EAc3C,GAHAoC,EAAQ,iBAAmBxC,EAC3BwC,EAAQ,YAAcpC,EAAgB,YAAcF,EAEhDb,EAAY,CAQd,IAAMoD,EAPahC,EAAM,WACvB,SAA2BJ,EAAOqC,EAAK,CAErC,OAAOjC,EAAA,cAAC+B,EAAA,CAAS,GAAGnC,EAAO,uBAAwBqC,EAAK,CAC1D,CACF,EAGA,OAAAD,EAAU,YAAcvC,EACxBuC,EAAU,iBAAmBzC,EACR2C,EAAaF,EAAWzC,CAAgB,CAC/D,CAEA,OAAqB2C,EAAaH,EAASxC,CAAgB,CAC7D,CAGF,CAEA,IAAO4C,GAAQlE,GCpvBf,SAASmE,GACPC,EACA,CACA,GAAM,CAAE,SAAAC,EAAU,QAAAC,EAAS,YAAAC,EAAa,MAAAC,CAAM,EAAIJ,EAE5CK,EAAeC,EAAM,QAAQ,IAAM,CACvC,IAAMC,EAAeC,EAAmBJ,CAAK,EAS3C,MAPuB,CACvB,MAAAA,EACA,aAAAG,EACA,eAAgBJ,EAAc,IAAMA,EAAc,MACpD,CAaF,EAAG,CAACC,EAAOD,CAAW,CAAC,EAEjBM,EAAgBH,EAAM,QAAQ,IAAMF,EAAM,SAAS,EAAG,CAACA,CAAK,CAAC,EAEnE,OAAAM,EAA0B,IAAM,CAC9B,GAAM,CAAE,aAAAH,CAAa,EAAIF,EACzB,OAAAE,EAAa,cAAgBA,EAAa,iBAC1CA,EAAa,aAAa,EAEtBE,IAAkBL,EAAM,SAAS,GACnCG,EAAa,iBAAiB,EAEzB,IAAM,CACXA,EAAa,eAAe,EAC5BA,EAAa,cAAgB,MAC/B,CACF,EAAG,CAACF,EAAcI,CAAa,CAAC,EAIzBH,EAAA,eAFSJ,GAAWS,GAEX,SAAR,CAAiB,MAAON,GAAeJ,CAAS,CAC1D,CAEA,IAAOW,GAAQb,GC7FR,SAASc,EAAuBC,EAAUC,EAAmB,CAClE,OAAO,UAAmD,CASxD,OARqBC,EAAM,WAAWF,CAAO,CAS/C,CACF,CAkBO,IAAMG,EAAgCJ,EAAuB,ECuC7D,SAASK,EAKdC,EAGYC,EACZ,CACA,IAAMC,EACJF,IAAYC,EACRC,EAEAC,EAAuBH,CAAO,EAC9BI,EAAW,IAAM,CACrB,GAAM,CAAE,MAAAC,CAAM,EAAIH,EAAgB,EAClC,OAAOG,CACT,EAEA,cAAO,OAAOD,EAAU,CACtB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAiBO,IAAMA,EAAyBL,EAAgB,ECjE/C,SAASO,GAKdC,EAGYC,EACZ,CACA,IAAMC,EACJF,IAAYC,EAAoBC,EAAkBC,EAAgBH,CAAO,EAErEI,EAAc,IACJF,EAAS,EACV,SAGf,cAAO,OAAOE,EAAa,CACzB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAuBO,IAAMA,GAA4BL,GAAmB,ECrG5D,IAAAM,GAAiD,oDAoHjD,IAAMC,GAA+B,CAACC,EAAGC,IAAMD,IAAMC,EAQ9C,SAASC,GACdC,EAGYC,EACC,CACb,IAAMC,EACJF,IAAYC,EACRC,EACAC,EAAuBH,CAAO,EAE9BI,EAAc,CAClBC,EACAC,EAE4C,CAAC,IAChC,CACb,GAAM,CAAE,WAAAC,EAAaX,EAAY,EAC/B,OAAOU,GAAwB,WAC3B,CAAE,WAAYA,CAAoB,EAClCA,EAeAE,EAAeN,EAAgB,EAE/B,CAAE,MAAAO,EAAO,aAAAC,EAAc,eAAAC,CAAe,EAAIH,EAE1CI,EAAWC,EAAM,OAAO,EAAI,EAE5BC,EAAkBD,EAAM,YAC5B,CACE,CAACR,EAAS,IAAI,EAAEU,EAAe,CAC7B,IAAMC,EAAWX,EAASU,CAAK,EAC/B,GAAI,EAAuC,CAczC,IACEE,IAAwB,UACvBA,IAAwB,QAAUL,EAAS,UAGxC,CAACL,EAAWS,EAAUE,CAAS,EAEjC,GAAI,CAEJ,OAASC,EAAG,CAGZ,CAeJ,IACEC,IAA+B,UAC9BA,IAA+B,QAAUR,EAAS,UAG/CI,IAAaD,EAEf,GAAI,CAEJ,OAASI,EAAG,CAGZ,CAWN,CACA,OAAOH,CACT,CACF,EAAEX,EAAS,IAAI,EACf,CAACA,CAAQ,CACX,EAEMgB,KAAgB,qCACpBX,EAAa,aACbD,EAAM,SACNE,GAAkBF,EAAM,SACxBK,EACAP,CACF,EAEA,OAAAM,EAAM,cAAcQ,CAAa,EAE1BA,CACT,EAEA,cAAO,OAAOjB,EAAa,CACzB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAyBO,IAAMA,GAA4BL,GAAmB,EC7O5D,IAAMuB,GAAQC","names":["src_exports","__export","Provider_default","ReactReduxContext","batch","connect_default","createDispatchHook","createSelectorHook","createStoreHook","shallowEqual","useDispatch","useSelector","useStore","__toCommonJS","React","IS_REACT_19","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","ForwardRef","REACT_FORWARD_REF_TYPE","Memo","REACT_MEMO_TYPE","typeOf","object","$$typeof","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_LAZY_TYPE","REACT_MEMO_TYPE","REACT_CONSUMER_TYPE","REACT_PORTAL_TYPE","isMemo","object","typeOf","REACT_MEMO_TYPE","pureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","mergeProps","dispatch","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","state","ownProps","stateProps","dispatchProps","mergedProps","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","options","bindActionCreators","actionCreators","dispatch","boundActionCreators","key","actionCreator","args","wrapMapToPropsConstant","getConstant","dispatch","constant","constantSelector","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","methodName","displayName","proxy","stateOrDispatch","ownProps","props","createInvalidArgFactory","arg","name","dispatch","options","mapDispatchToPropsFactory","mapDispatchToProps","wrapMapToPropsConstant","dispatch","bindActionCreators","wrapMapToPropsFunc","createInvalidArgFactory","mapStateToPropsFactory","mapStateToProps","wrapMapToPropsFunc","createInvalidArgFactory","wrapMapToPropsConstant","defaultMergeProps","stateProps","dispatchProps","ownProps","wrapMergePropsFunc","mergeProps","dispatch","displayName","areMergedPropsEqual","hasRunOnce","mergedProps","nextMergedProps","mergePropsFactory","createInvalidArgFactory","defaultNoopBatch","callback","createListenerCollection","first","last","defaultNoopBatch","listener","listeners","callback","isSubscribed","nullListeners","createSubscription","store","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","addNestedSub","trySubscribe","cleanupListener","removed","tryUnsubscribe","notifyNestedSubs","handleChangeWrapper","subscription","trySubscribeSelf","tryUnsubscribeSelf","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","React","useIsomorphicLayoutEffect","is","x","y","shallowEqual","objA","objB","keysA","keysB","i","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","ForwardRef","Memo","getStatics","component","isMemo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","keys","targetStatics","sourceStatics","i","key","descriptor","ContextKey","gT","getContext","React","contextMap","realContext","ReactReduxContext","NO_SUBSCRIPTION_ARRAY","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","useIsomorphicLayoutEffect","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","notifyNestedSubs","subscribeUpdates","shouldHandleStateChanges","store","subscription","childPropsSelector","isMounted","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","error","e","strictEqual","a","b","connect","mapStateToProps","mapDispatchToProps","mergeProps","pure","areStatesEqual","strictEqual","areOwnPropsEqual","shallowEqual","areStatePropsEqual","areMergedPropsEqual","forwardRef","context","ReactReduxContext","Context","initMapStateToProps","mapStateToPropsFactory","initMapDispatchToProps","mapDispatchToPropsFactory","initMergeProps","mergePropsFactory","shouldHandleStateChanges","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","ConnectFunction","props","propsContext","reactReduxForwardedRef","wrapperProps","React","ContextToUse","ResultContext","contextValue","didStoreComeFromProps","didStoreComeFromContext","store","getServerState","childPropsSelector","finalPropsSelectorFactory","subscription","notifyNestedSubs","NO_SUBSCRIPTION_ARRAY","createSubscription","overriddenContextValue","lastChildProps","lastWrapperProps","childPropsFromStoreUpdate","renderIsScheduled","isMounted","latestSubscriptionCallbackError","useIsomorphicLayoutEffect","actualChildPropsSelector","subscribeForReact","reactListener","subscribeUpdates","useIsomorphicLayoutEffectWithArgs","captureWrapperProps","actualChildProps","err","renderedWrappedComponent","Connect","forwarded","ref","hoistNonReactStatics","connect_default","Provider","providerProps","children","context","serverState","store","contextValue","React","subscription","createSubscription","previousState","useIsomorphicLayoutEffect","ReactReduxContext","Provider_default","createReduxContextHook","context","ReactReduxContext","React","useReduxContext","createStoreHook","context","ReactReduxContext","useReduxContext","createReduxContextHook","useStore","store","createDispatchHook","context","ReactReduxContext","useStore","createStoreHook","useDispatch","import_with_selector","refEquality","a","b","createSelectorHook","context","ReactReduxContext","useReduxContext","createReduxContextHook","useSelector","selector","equalityFnOrOptions","equalityFn","reduxContext","store","subscription","getServerState","firstRun","React","wrappedSelector","state","selected","finalStabilityCheck","toCompare","e","finalIdentityFunctionCheck","selectedState","batch","defaultNoopBatch"]}
Index: de_modules/react-redux/dist/react-redux.browser.mjs
===================================================================
--- node_modules/react-redux/dist/react-redux.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import*as p from"react";var Re=p.version.startsWith("19"),Ee=Symbol.for(Re?"react.transitional.element":"react.element"),ke=Symbol.for("react.portal"),Fe=Symbol.for("react.fragment"),Ae=Symbol.for("react.strict_mode"),ve=Symbol.for("react.profiler"),Ne=Symbol.for("react.consumer"),_e=Symbol.for("react.context"),ue=Symbol.for("react.forward_ref"),Ie=Symbol.for("react.suspense"),Ve=Symbol.for("react.suspense_list"),te=Symbol.for("react.memo"),We=Symbol.for("react.lazy");var Pe=ue,de=te;function Ue(e){if(typeof e=="object"&&e!==null){let{$$typeof:t}=e;switch(t){case Ee:switch(e=e.type,e){case Fe:case ve:case Ae:case Ie:case Ve:return e;default:switch(e=e&&e.$$typeof,e){case _e:case ue:case We:case te:return e;case Ne:return e;default:return t}}case ke:return t}}}function le(e){return Ue(e)===te}function qe(e,t,o,n,{areStatesEqual:r,areOwnPropsEqual:s,areStatePropsEqual:i}){let u=!1,a,c,d,P,l;function x(f,m){return a=f,c=m,d=e(a,c),P=t(n,c),l=o(d,P,c),u=!0,l}function y(){return d=e(a,c),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function M(){return e.dependsOnOwnProps&&(d=e(a,c)),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function T(){let f=e(a,c),m=!i(f,d);return d=f,m&&(l=o(d,P,c)),l}function w(f,m){let C=!s(m,c),v=!r(f,a,m,c);return a=f,c=m,C&&v?y():C?M():v?T():l}return function(m,C){return u?w(m,C):x(m,C)}}function oe(e,{initMapStateToProps:t,initMapDispatchToProps:o,initMergeProps:n,...r}){let s=t(e,r),i=o(e,r),u=n(e,r);return qe(s,i,u,e,r)}function re(e,t){let o={};for(let n in e){let r=e[n];typeof r=="function"&&(o[n]=(...s)=>t(r(...s)))}return o}function U(e){return function(o){let n=e(o);function r(){return n}return r.dependsOnOwnProps=!1,r}}function Te(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function $(e,t){return function(n,{displayName:r}){let s=function(u,a){return s.dependsOnOwnProps?s.mapToProps(u,a):s.mapToProps(u,void 0)};return s.dependsOnOwnProps=!0,s.mapToProps=function(u,a){s.mapToProps=e,s.dependsOnOwnProps=Te(e);let c=s(u,a);return typeof c=="function"&&(s.mapToProps=c,s.dependsOnOwnProps=Te(c),c=s(u,a)),c},s}}function k(e,t){return(o,n)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${n.wrappedComponentName}.`)}}function fe(e){return e&&typeof e=="object"?U(t=>re(e,t)):e?typeof e=="function"?$(e,"mapDispatchToProps"):k(e,"mapDispatchToProps"):U(t=>({dispatch:t}))}function Se(e){return e?typeof e=="function"?$(e,"mapStateToProps"):k(e,"mapStateToProps"):U(()=>({}))}function Le(e,t,o){return{...o,...e,...t}}function je(e){return function(o,{displayName:n,areMergedPropsEqual:r}){let s=!1,i;return function(a,c,d){let P=e(a,c,d);return s?r(P,i)||(i=P):(s=!0,i=P),i}}}function ye(e){return e?typeof e=="function"?je(e):k(e,"mergeProps"):()=>Le}function Y(e){e()}function $e(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Y(()=>{let o=e;for(;o;)o.callback(),o=o.next})},get(){let o=[],n=e;for(;n;)o.push(n),n=n.next;return o},subscribe(o){let n=!0,r=t={callback:o,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!n||e===null||(n=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var me={notify(){},get:()=>[]};function H(e,t){let o,n=me,r=0,s=!1;function i(M){d();let T=n.subscribe(M),w=!1;return()=>{w||(w=!0,T(),P())}}function u(){n.notify()}function a(){y.onStateChange&&y.onStateChange()}function c(){return s}function d(){r++,o||(o=t?t.addNestedSub(a):e.subscribe(a),n=$e())}function P(){r--,o&&r===0&&(o(),o=void 0,n.clear(),n=me)}function l(){s||(s=!0,d())}function x(){s&&(s=!1,P())}let y={addNestedSub:i,notifyNestedSubs:u,handleChangeWrapper:a,isSubscribed:c,trySubscribe:l,tryUnsubscribe:x,getListeners:()=>n};return y}var Ye=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",He=Ye(),Be=()=>typeof navigator<"u"&&navigator.product==="ReactNative",ze=Be(),Ke=()=>He||ze?p.useLayoutEffect:p.useEffect,F=Ke();function he(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function A(e,t){if(he(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let o=Object.keys(e),n=Object.keys(t);if(o.length!==n.length)return!1;for(let r=0;r<o.length;r++)if(!Object.prototype.hasOwnProperty.call(t,o[r])||!he(e[o[r]],t[o[r]]))return!1;return!0}var Ge={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Je={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Xe={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Oe={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Ze={[Pe]:Xe,[de]:Oe};function we(e){return le(e)?Oe:Ze[e.$$typeof]||Ge}var Qe=Object.defineProperty,et=Object.getOwnPropertyNames,xe=Object.getOwnPropertySymbols,tt=Object.getOwnPropertyDescriptor,ot=Object.getPrototypeOf,Ce=Object.prototype;function q(e,t){if(typeof t!="string"){if(Ce){let s=ot(t);s&&s!==Ce&&q(e,s)}let o=et(t);xe&&(o=o.concat(xe(t)));let n=we(e),r=we(t);for(let s=0;s<o.length;++s){let i=o[s];if(!Je[i]&&!(r&&r[i])&&!(n&&n[i])){let u=tt(t,i);try{Qe(e,i,u)}catch{}}}}return e}var rt=Symbol.for("react-redux-context"),nt=typeof globalThis<"u"?globalThis:{};function st(){if(!p.createContext)return{};let e=nt[rt]??=new Map,t=e.get(p.createContext);return t||(t=p.createContext(null),e.set(p.createContext,t)),t}var S=st();var pt=[null,null];function at(e,t,o){F(()=>e(...t),o)}function ct(e,t,o,n,r,s){e.current=n,o.current=!1,r.current&&(r.current=null,s())}function it(e,t,o,n,r,s,i,u,a,c,d){if(!e)return()=>{};let P=!1,l=null,x=()=>{if(P||!u.current)return;let M=t.getState(),T,w;try{T=n(M,r.current)}catch(f){w=f,l=f}w||(l=null),T===s.current?i.current||c():(s.current=T,a.current=T,i.current=!0,d())};return o.onStateChange=x,o.trySubscribe(),x(),()=>{if(P=!0,o.tryUnsubscribe(),o.onStateChange=null,l)throw l}}function ut(e,t){return e===t}function Pt(e,t,o,{pure:n,areStatesEqual:r=ut,areOwnPropsEqual:s=A,areStatePropsEqual:i=A,areMergedPropsEqual:u=A,forwardRef:a=!1,context:c=S}={}){let d=c,P=Se(e),l=fe(t),x=ye(o),y=!!e;return T=>{let w=T.displayName||T.name||"Component",f=`Connect(${w})`,m={shouldHandleStateChanges:y,displayName:f,wrappedComponentName:w,WrappedComponent:T,initMapStateToProps:P,initMapDispatchToProps:l,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:i,areOwnPropsEqual:s,areMergedPropsEqual:u};function C(O){let[R,K,b]=p.useMemo(()=>{let{reactReduxForwardedRef:h,...E}=O;return[O.context,h,E]},[O]),_=p.useMemo(()=>{let h=d;return R?.Consumer,h},[R,d]),D=p.useContext(_),I=!!O.store&&!!O.store.getState&&!!O.store.dispatch,ge=!!D&&!!D.store,g=I?O.store:D.store,se=ge?D.getServerState:g.getState,G=p.useMemo(()=>oe(g.dispatch,m),[g]),[V,pe]=p.useMemo(()=>{if(!y)return pt;let h=H(g,I?void 0:D.subscription),E=h.notifyNestedSubs.bind(h);return[h,E]},[g,I,D]),ae=p.useMemo(()=>I?D:{...D,subscription:V},[I,D,V]),J=p.useRef(void 0),X=p.useRef(b),W=p.useRef(void 0),ce=p.useRef(!1),Z=p.useRef(!1),Q=p.useRef(void 0);F(()=>(Z.current=!0,()=>{Z.current=!1}),[]);let ie=p.useMemo(()=>()=>W.current&&b===X.current?W.current:G(g.getState(),b),[g,b]),Me=p.useMemo(()=>E=>V?it(y,g,V,G,X,J,ce,Z,W,pe,E):()=>{},[V]);at(ct,[X,J,ce,b,W,pe]);let j;try{j=p.useSyncExternalStore(Me,ie,se?()=>G(se(),b):ie)}catch(h){throw Q.current&&(h.message+=`
-The error may be correlated with this previous error:
-${Q.current.stack}
-
-`),h}F(()=>{Q.current=void 0,W.current=void 0,J.current=j});let ee=p.useMemo(()=>p.createElement(T,{...j,ref:K}),[K,T,j]);return p.useMemo(()=>y?p.createElement(_.Provider,{value:ae},ee):ee,[_,ee,ae])}let N=p.memo(C);if(N.WrappedComponent=T,N.displayName=C.displayName=f,a){let R=p.forwardRef(function(b,_){return p.createElement(N,{...b,reactReduxForwardedRef:_})});return R.displayName=f,R.WrappedComponent=T,q(R,T)}return q(N,T)}}var dt=Pt;function lt(e){let{children:t,context:o,serverState:n,store:r}=e,s=p.useMemo(()=>{let a=H(r);return{store:r,subscription:a,getServerState:n?()=>n:void 0}},[r,n]),i=p.useMemo(()=>r.getState(),[r]);return F(()=>{let{subscription:a}=s;return a.onStateChange=a.notifyNestedSubs,a.trySubscribe(),i!==r.getState()&&a.notifyNestedSubs(),()=>{a.tryUnsubscribe(),a.onStateChange=void 0}},[s,i]),p.createElement((o||S).Provider,{value:s},t)}var Tt=lt;function L(e=S){return function(){return p.useContext(e)}}var B=L();function z(e=S){let t=e===S?B:L(e),o=()=>{let{store:n}=t();return n};return Object.assign(o,{withTypes:()=>o}),o}var ne=z();function De(e=S){let t=e===S?ne:z(e),o=()=>t().dispatch;return Object.assign(o,{withTypes:()=>o}),o}var ft=De();import{useSyncExternalStoreWithSelector as St}from"use-sync-external-store/with-selector.js";var yt=(e,t)=>e===t;function be(e=S){let t=e===S?B:L(e),o=(n,r={})=>{let{equalityFn:s=yt}=typeof r=="function"?{equalityFn:r}:r,i=t(),{store:u,subscription:a,getServerState:c}=i,d=p.useRef(!0),P=p.useCallback({[n.name](x){let y=n(x);if(0){if((m==="always"||m==="once"&&d.current)&&!s(y,C))try{}catch(N){}if((f==="always"||f==="once"&&d.current)&&y===x)try{}catch(v){}}return y}}[n.name],[n]),l=St(a.addNestedSub,u.getState,c||u.getState,P,s);return p.useDebugValue(l),l};return Object.assign(o,{withTypes:()=>o}),o}var mt=be();var Mo=Y;export{Tt as Provider,S as ReactReduxContext,Mo as batch,dt as connect,De as createDispatchHook,be as createSelectorHook,z as createStoreHook,A as shallowEqual,ft as useDispatch,mt as useSelector,ne as useStore};
-//# sourceMappingURL=react-redux.browser.mjs.map
Index: de_modules/react-redux/dist/react-redux.browser.mjs.map
===================================================================
--- node_modules/react-redux/dist/react-redux.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/react.ts","../src/utils/react-is.ts","../src/connect/selectorFactory.ts","../src/utils/bindActionCreators.ts","../src/connect/wrapMapToProps.ts","../src/connect/invalidArgFactory.ts","../src/connect/mapDispatchToProps.ts","../src/connect/mapStateToProps.ts","../src/connect/mergeProps.ts","../src/utils/batch.ts","../src/utils/Subscription.ts","../src/utils/useIsomorphicLayoutEffect.ts","../src/utils/shallowEqual.ts","../src/utils/hoistStatics.ts","../src/components/Context.ts","../src/components/connect.tsx","../src/components/Provider.tsx","../src/hooks/useReduxContext.ts","../src/hooks/useStore.ts","../src/hooks/useDispatch.ts","../src/hooks/useSelector.ts","../src/exports.ts"],"sourcesContent":["import * as React from 'react'\n\nexport { React }\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n  IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n  'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n  'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n  return typeof type === 'string' ||\n    typeof type === 'function' ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (typeof type === 'object' &&\n      type !== null &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        type.getModuleId !== undefined))\n    ? !0\n    : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n  if (typeof object === 'object' && object !== null) {\n    const { $$typeof } = object\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object\n              case REACT_CONSUMER_TYPE:\n                return object\n              default:\n                return $$typeof\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof\n    }\n  }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n  return IS_REACT_19\n    ? typeOf(object) === REACT_CONSUMER_TYPE\n    : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n  return typeOf(object) === REACT_MEMO_TYPE\n}\n","import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n  dispatch: Dispatch<Action<string>>,\n  factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n  | null\n  | undefined\n  ? (state: S) => TProps\n  : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n  state: State,\n  ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n  initialState: State,\n  ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n  | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n  | MapStateToProps<TStateProps, TOwnProps, State>\n  | null\n  | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n  | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n  readonly areStatePropsEqual: EqualityFn<TStateProps>\n  readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  dispatch: Dispatch<Action<string>>,\n  {\n    areStatesEqual,\n    areOwnPropsEqual,\n    areStatePropsEqual,\n  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n  let hasRunAtLeastOnce = false\n  let state: State\n  let ownProps: TOwnProps\n  let stateProps: TStateProps\n  let dispatchProps: TDispatchProps\n  let mergedProps: TMergedProps\n\n  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n    state = firstState\n    ownProps = firstOwnProps\n    stateProps = mapStateToProps(state, ownProps)\n    dispatchProps = mapDispatchToProps(dispatch, ownProps)\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    hasRunAtLeastOnce = true\n    return mergedProps\n  }\n\n  function handleNewPropsAndNewState() {\n    stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewProps() {\n    if (mapStateToProps.dependsOnOwnProps)\n      stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewState() {\n    const nextStateProps = mapStateToProps(state, ownProps)\n    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n    stateProps = nextStateProps\n\n    if (statePropsChanged)\n      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n    return mergedProps\n  }\n\n  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n    const stateChanged = !areStatesEqual(\n      nextState,\n      state,\n      nextOwnProps,\n      ownProps,\n    )\n    state = nextState\n    ownProps = nextOwnProps\n\n    if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n    if (propsChanged) return handleNewProps()\n    if (stateChanged) return handleNewState()\n    return mergedProps\n  }\n\n  return function pureFinalPropsSelector(\n    nextState: State,\n    nextOwnProps: TOwnProps,\n  ) {\n    return hasRunAtLeastOnce\n      ? handleSubsequentCalls(nextState, nextOwnProps)\n      : handleFirstCall(nextState, nextOwnProps)\n  }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n  (state: State, ownProps: TOwnProps): TStateProps\n  readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n  readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly shouldHandleStateChanges: boolean\n  readonly displayName: string\n  readonly wrappedComponentName: string\n  readonly WrappedComponent: ComponentType<TOwnProps>\n  readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n  readonly initMapStateToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n  readonly initMapDispatchToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n  readonly initMergeProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  dispatch: Dispatch<Action<string>>,\n  {\n    initMapStateToProps,\n    initMapDispatchToProps,\n    initMergeProps,\n    ...options\n  }: SelectorFactoryOptions<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >,\n) {\n  const mapStateToProps = initMapStateToProps(dispatch, options)\n  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n  const mergeProps = initMergeProps(dispatch, options)\n\n  if (process.env.NODE_ENV !== 'production') {\n    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n  }\n\n  return pureFinalPropsSelectorFactory<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n","import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n  actionCreators: ActionCreatorsMapObject,\n  dispatch: Dispatch,\n): ActionCreatorsMapObject {\n  const boundActionCreators: ActionCreatorsMapObject = {}\n\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key]\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n    }\n  }\n  return boundActionCreators\n}\n","import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n  // eslint-disable-next-line no-unused-vars\n  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n  dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n  // * Note:\n  //  It seems that the dispatch argument\n  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)\n  // eslint-disable-next-line no-unused-vars\n  getConstant: (dispatch: Dispatch) =>\n    | {\n        dispatch?: Dispatch\n        dependsOnOwnProps?: boolean\n      }\n    | ActionCreatorsMapObject\n    | ActionCreator<any>,\n) {\n  return function initConstantSelector(dispatch: Dispatch) {\n    const constant = getConstant(dispatch)\n\n    function constantSelector() {\n      return constant\n    }\n    constantSelector.dependsOnOwnProps = false\n    return constantSelector\n  }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n  return mapToProps.dependsOnOwnProps\n    ? Boolean(mapToProps.dependsOnOwnProps)\n    : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n//  * Detects whether the mapToProps function being called depends on props, which\n//    is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n//  * On first call, handles mapToProps if returns another function, and treats that\n//    new function as the true mapToProps for subsequent calls.\n//\n//  * On first call, verifies the first result is a plain object, in order to warn\n//    the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n  mapToProps: MapToProps,\n  methodName: string,\n) {\n  return function initProxySelector(\n    dispatch: Dispatch,\n    { displayName }: { displayName: string },\n  ) {\n    const proxy = function mapToPropsProxy(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      return proxy.dependsOnOwnProps\n        ? proxy.mapToProps(stateOrDispatch, ownProps)\n        : proxy.mapToProps(stateOrDispatch, undefined)\n    }\n\n    // allow detectFactoryAndVerify to get ownProps\n    proxy.dependsOnOwnProps = true\n\n    proxy.mapToProps = function detectFactoryAndVerify(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      proxy.mapToProps = mapToProps\n      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n      let props = proxy(stateOrDispatch, ownProps)\n\n      if (typeof props === 'function') {\n        proxy.mapToProps = props\n        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n        props = proxy(stateOrDispatch, ownProps)\n      }\n\n      if (process.env.NODE_ENV !== 'production')\n        verifyPlainObject(props, displayName, methodName)\n\n      return props\n    }\n\n    return proxy\n  }\n}\n","import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n  return (\n    dispatch: Dispatch<Action<string>>,\n    options: { readonly wrappedComponentName: string },\n  ) => {\n    throw new Error(\n      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n        options.wrappedComponentName\n      }.`,\n    )\n  }\n}\n","import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n  mapDispatchToProps:\n    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n    | undefined,\n) {\n  return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n        // @ts-ignore\n        bindActionCreators(mapDispatchToProps, dispatch),\n      )\n    : !mapDispatchToProps\n      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n          dispatch,\n        }))\n      : typeof mapDispatchToProps === 'function'\n        ? // @ts-ignore\n          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n  return !mapStateToProps\n    ? wrapMapToPropsConstant(() => ({}))\n    : typeof mapStateToProps === 'function'\n      ? // @ts-ignore\n        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n","import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n): TMergedProps {\n  // @ts-ignore\n  return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n  dispatch: Dispatch<Action<string>>,\n  options: {\n    readonly displayName: string\n    readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n  },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n  return function initMergePropsProxy(\n    dispatch,\n    { displayName, areMergedPropsEqual },\n  ) {\n    let hasRunOnce = false\n    let mergedProps: TMergedProps\n\n    return function mergePropsProxy(\n      stateProps: TStateProps,\n      dispatchProps: TDispatchProps,\n      ownProps: TOwnProps,\n    ) {\n      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n      if (hasRunOnce) {\n        if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n          mergedProps = nextMergedProps\n      } else {\n        hasRunOnce = true\n        mergedProps = nextMergedProps\n\n        if (process.env.NODE_ENV !== 'production')\n          verifyPlainObject(mergedProps, displayName, 'mergeProps')\n      }\n\n      return mergedProps\n    }\n  }\n}\n\nexport function mergePropsFactory<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n  return !mergeProps\n    ? () => defaultMergeProps\n    : typeof mergeProps === 'function'\n      ? wrapMergePropsFunc(mergeProps)\n      : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n  ConnectedComponent,\n  InferableComponentEnhancer,\n  InferableComponentEnhancerWithProps,\n  ResolveThunks,\n  DispatchProp,\n  ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n  MapStateToPropsParam,\n  MapDispatchToPropsParam,\n  MergeProps,\n  MapDispatchToPropsNonObject,\n  SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n  ReactReduxContextValue,\n  ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n  try {\n    return JSON.stringify(Comp)\n  } catch (err) {\n    return String(Comp)\n  }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n  effectFunc: EffectFunc,\n  effectArgs: any[],\n  dependencies?: React.DependencyList,\n) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  wrapperProps: unknown,\n  // actualChildProps: unknown,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps\n  renderIsScheduled.current = false\n\n  // If the render was from a store update, clear out that reference and cascade the subscriber update\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null\n    notifyNestedSubs()\n  }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n  shouldHandleStateChanges: boolean,\n  store: Store,\n  subscription: Subscription,\n  childPropsSelector: (state: unknown, props: unknown) => unknown,\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  isMounted: React.MutableRefObject<boolean>,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n  // forceComponentUpdateDispatch: React.Dispatch<any>,\n  additionalSubscribeListener: () => void,\n) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}\n\n  // Capture values for checking if and when this component unmounts\n  let didUnsubscribe = false\n  let lastThrownError: Error | null = null\n\n  // We'll run this callback every time a store subscription update propagates to this component\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return\n    }\n\n    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n    const latestStoreState = store.getState()\n\n    let newChildProps, error\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(\n        latestStoreState,\n        lastWrapperProps.current,\n      )\n    } catch (e) {\n      error = e\n      lastThrownError = e as Error | null\n    }\n\n    if (!error) {\n      lastThrownError = null\n    }\n\n    // If the child props haven't changed, nothing to do here - cascade the subscription update\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs()\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps\n      childPropsFromStoreUpdate.current = newChildProps\n      renderIsScheduled.current = true\n\n      // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n      additionalSubscribeListener()\n    }\n  }\n\n  // Actually subscribe to the nearest connected ancestor (or store)\n  subscription.onStateChange = checkForUpdates\n  subscription.trySubscribe()\n\n  // Pull data from the store after first render in case the store has\n  // changed since we began.\n  checkForUpdates()\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true\n    subscription.tryUnsubscribe()\n    subscription.onStateChange = null\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError\n    }\n  }\n\n  return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n  context?: ReactReduxContextInstance\n  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n  store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n  reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n  return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n  TConnector extends InferableComponentEnhancerWithProps<\n    infer TInjectedProps,\n    any\n  >\n    ? unknown extends TInjectedProps\n      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n        ? TInjectedProps\n        : never\n      : TInjectedProps\n    : never\n\nexport interface ConnectOptions<\n  State = unknown,\n  TStateProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n> {\n  forwardRef?: boolean\n  context?: typeof ReactReduxContext\n  areStatesEqual?: (\n    nextState: State,\n    prevState: State,\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areOwnPropsEqual?: (\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areStatePropsEqual?: (\n    nextStateProps: TStateProps,\n    prevStateProps: TStateProps,\n  ) => boolean\n  areMergedPropsEqual?: (\n    nextMergedProps: TMergedProps,\n    prevMergedProps: TMergedProps,\n  ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n  // tslint:disable:no-unnecessary-generics\n  (): InferableComponentEnhancer<DispatchProp>\n\n  /** mapState only */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n  /** mapDispatch only (as a function) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch only (as an object) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (as a function)*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (nullish) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n  /** mapState and mapDispatch (as an object) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mergeProps only */\n  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and mergeProps */\n  <\n    TStateProps = {},\n    no_dispatch = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapDispatch (as a object) and mergeProps */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and options */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n  /** mapDispatch (as a function) and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch (as an object) and options*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as a function), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as an object), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState, mapDispatch, mergeProps, and options */\n  <\n    TStateProps = {},\n    TDispatchProps = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<\n      TStateProps,\n      TDispatchProps,\n      TOwnProps,\n      TMergedProps\n    >,\n    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n  // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n  TStateProps = {},\n  TDispatchProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n  State = unknown,\n>(\n  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  {\n    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n    // @ts-ignore\n    pure,\n    areStatesEqual = strictEqual,\n    areOwnPropsEqual = shallowEqual,\n    areStatePropsEqual = shallowEqual,\n    areMergedPropsEqual = shallowEqual,\n\n    // use React's forwardRef to expose a ref of the wrapped component\n    forwardRef = false,\n\n    // the context consumer to use\n    context = ReactReduxContext,\n  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true\n      warning(\n        'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n      )\n    }\n  }\n\n  const Context = context\n\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n  const initMergeProps = mergePropsFactory(mergeProps)\n\n  const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n  const wrapWithConnect = <TProps,>(\n    WrappedComponent: ComponentType<TProps>,\n  ) => {\n    type WrappedComponentProps = TProps &\n      ConnectPropsMaybeWithoutContext<TProps>\n\n    if (process.env.NODE_ENV !== 'production') {\n      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n      if (!isValid)\n        throw new Error(\n          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n            WrappedComponent,\n          )}`,\n        )\n    }\n\n    const wrappedComponentName =\n      WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n    const displayName = `Connect(${wrappedComponentName})`\n\n    const selectorFactoryOptions: SelectorFactoryOptions<\n      any,\n      any,\n      any,\n      any,\n      State\n    > = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual,\n    }\n\n    function ConnectFunction<TOwnProps>(\n      props: InternalConnectProps & TOwnProps,\n    ) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] =\n        React.useMemo(() => {\n          // Distinguish between actual \"data\" props that were passed to the wrapper component,\n          // and values needed to control behavior (forwarded refs, alternate context instances).\n          // To maintain the wrapperProps object reference, memoize this destructuring.\n          const { reactReduxForwardedRef, ...wrapperProps } = props\n          return [props.context, reactReduxForwardedRef, wrapperProps]\n        }, [props])\n\n      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        let ResultContext = Context\n        if (propsContext?.Consumer) {\n          if (process.env.NODE_ENV !== 'production') {\n            const isValid = /*#__PURE__*/ isContextConsumer(\n              // @ts-ignore\n              <propsContext.Consumer />,\n            )\n            if (!isValid) {\n              throw new Error(\n                'You must pass a valid React context consumer as `props.context`',\n              )\n            }\n            ResultContext = propsContext\n          }\n        }\n        return ResultContext\n      }, [propsContext, Context])\n\n      // Retrieve the store and ancestor subscription via context, if available\n      const contextValue = React.useContext(ContextToUse)\n\n      // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n      const didStoreComeFromProps =\n        Boolean(props.store) &&\n        Boolean(props.store!.getState) &&\n        Boolean(props.store!.dispatch)\n      const didStoreComeFromContext =\n        Boolean(contextValue) && Boolean(contextValue!.store)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        !didStoreComeFromProps &&\n        !didStoreComeFromContext\n      ) {\n        throw new Error(\n          `Could not find \"store\" in the context of ` +\n            `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n            `or pass a custom React context provider to <Provider> and the corresponding ` +\n            `React context consumer to ${displayName} in connect options.`,\n        )\n      }\n\n      // Based on the previous check, one of these must be true\n      const store: Store = didStoreComeFromProps\n        ? props.store!\n        : contextValue!.store\n\n      const getServerState = didStoreComeFromContext\n        ? contextValue!.getServerState\n        : store.getState\n\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n      }, [store])\n\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n        // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n        const subscription = createSubscription(\n          store,\n          didStoreComeFromProps ? undefined : contextValue!.subscription,\n        )\n\n        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n        const notifyNestedSubs =\n          subscription.notifyNestedSubs.bind(subscription)\n\n        return [subscription, notifyNestedSubs]\n      }, [store, didStoreComeFromProps, contextValue])\n\n      // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue!\n        }\n\n        // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n        return {\n          ...contextValue,\n          subscription,\n        } as ReactReduxContextValue\n      }, [didStoreComeFromProps, contextValue, subscription])\n\n      // Set up refs to coordinate values between the subscription effect and the render logic\n      const lastChildProps = React.useRef<unknown>(undefined)\n      const lastWrapperProps = React.useRef(wrapperProps)\n      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n      const renderIsScheduled = React.useRef(false)\n      const isMounted = React.useRef(false)\n\n      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n       */\n      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n        undefined,\n      )\n\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true\n        return () => {\n          isMounted.current = false\n        }\n      }, [])\n\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (\n            childPropsFromStoreUpdate.current &&\n            wrapperProps === lastWrapperProps.current\n          ) {\n            return childPropsFromStoreUpdate.current\n          }\n\n          // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n          return childPropsSelector(store.getState(), wrapperProps)\n        }\n        return selector\n      }, [store, wrapperProps])\n\n      // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = (reactListener: () => void) => {\n          if (!subscription) {\n            return () => {}\n          }\n\n          return subscribeUpdates(\n            shouldHandleStateChanges,\n            store,\n            subscription,\n            // @ts-ignore\n            childPropsSelector,\n            lastWrapperProps,\n            lastChildProps,\n            renderIsScheduled,\n            isMounted,\n            childPropsFromStoreUpdate,\n            notifyNestedSubs,\n            reactListener,\n          )\n        }\n\n        return subscribe\n      }, [subscription])\n\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n        lastWrapperProps,\n        lastChildProps,\n        renderIsScheduled,\n        wrapperProps,\n        childPropsFromStoreUpdate,\n        notifyNestedSubs,\n      ])\n\n      let actualChildProps: Record<string, unknown>\n\n      try {\n        actualChildProps = React.useSyncExternalStore(\n          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n          subscribeForReact,\n          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n          actualChildPropsSelector,\n          getServerState\n            ? () => childPropsSelector(getServerState(), wrapperProps)\n            : actualChildPropsSelector,\n        )\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          // eslint-disable-next-line no-extra-semi\n          ;(err as Error).message +=\n            `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n        }\n\n        throw err\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined\n        childPropsFromStoreUpdate.current = undefined\n        lastChildProps.current = actualChildProps\n      })\n\n      // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          // @ts-ignore\n          <WrappedComponent\n            {...actualChildProps}\n            ref={reactReduxForwardedRef}\n          />\n        )\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n      // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return (\n            <ContextToUse.Provider value={overriddenContextValue}>\n              {renderedWrappedComponent}\n            </ContextToUse.Provider>\n          )\n        }\n\n        return renderedWrappedComponent\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n      return renderedChild\n    }\n\n    const _Connect = React.memo(ConnectFunction)\n\n    type ConnectedWrapperComponent = typeof _Connect & {\n      WrappedComponent: typeof WrappedComponent\n    }\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect as unknown as ConnectedComponent<\n      typeof WrappedComponent,\n      WrappedComponentProps\n    >\n    Connect.WrappedComponent = WrappedComponent\n    Connect.displayName = ConnectFunction.displayName = displayName\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(\n        function forwardConnectRef(props, ref) {\n          // @ts-ignore\n          return <Connect {...props} reactReduxForwardedRef={ref} />\n        },\n      )\n\n      const forwarded = _forwarded as ConnectedWrapperComponent\n      forwarded.displayName = displayName\n      forwarded.WrappedComponent = WrappedComponent\n      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n    }\n\n    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n  }\n\n  return wrapWithConnect\n}\n\nexport default connect as Connect\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import connect from './components/connect'\nexport type {\n  Connect,\n  ConnectProps,\n  ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n  MapDispatchToProps,\n  MapDispatchToPropsFactory,\n  MapDispatchToPropsFunction,\n  MapDispatchToPropsNonObject,\n  MapDispatchToPropsParam,\n  MapStateToProps,\n  MapStateToPropsFactory,\n  MapStateToPropsParam,\n  MergeProps,\n  Selector,\n  SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n"],"mappings":"AAAA,UAAYA,MAAW,QCQhB,IAAMC,GAA8BC,EAAM,QAAQ,WAAW,IAAI,EAElEC,GAAqC,OAAO,IAChDF,GAAc,6BAA+B,eAC/C,EACMG,GAAoC,OAAO,IAAI,cAAc,EAC7DC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAyC,OAAO,IAAI,mBAAmB,EACvEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAAqC,OAAO,IAAI,eAAe,EAC/DC,GAAyC,OAAO,IAAI,mBAAmB,EACvEC,GAAsC,OAAO,IAAI,gBAAgB,EACjEC,GAA2C,OAAO,IACtD,qBACF,EACMC,GAAkC,OAAO,IAAI,YAAY,EACzDC,GAAkC,OAAO,IAAI,YAAY,EAMxD,IAAMC,GAAaC,GACbC,GAAOC,GAwBpB,SAASC,GAAOC,EAAiC,CAC/C,GAAI,OAAOA,GAAW,UAAYA,IAAW,KAAM,CACjD,GAAM,CAAE,SAAAC,CAAS,EAAID,EAErB,OAAQC,EAAU,CAChB,KAAKC,GACH,OAAUF,EAASA,EAAO,KAAOA,EAAS,CACxC,KAAKG,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,OAAOP,EACT,QACE,OAAUA,EAASA,GAAUA,EAAO,SAAWA,EAAS,CACtD,KAAKQ,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,OAAOX,EACT,KAAKY,GACH,OAAOZ,EACT,QACE,OAAOC,CACX,CACJ,CACF,KAAKY,GACH,OAAOZ,CACX,CACF,CACF,CAQO,SAASa,GAAOC,EAAiD,CACtE,OAAOC,GAAOD,CAAM,IAAME,EAC5B,CC9BA,SAASC,GAOPC,EACAC,EACAC,EACAC,EACA,CACE,eAAAC,EACA,iBAAAC,EACA,mBAAAC,CACF,EACA,CACA,IAAIC,EAAoB,GACpBC,EACAC,EACAC,EACAC,EACAC,EAEJ,SAASC,EAAgBC,EAAmBC,EAA0B,CACpE,OAAAP,EAAQM,EACRL,EAAWM,EACXL,EAAaV,EAAgBQ,EAAOC,CAAQ,EAC5CE,EAAgBV,EAAmBE,EAAUM,CAAQ,EACrDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EAC5DF,EAAoB,GACbK,CACT,CAEA,SAASI,GAA4B,CACnC,OAAAN,EAAaV,EAAgBQ,EAAOC,CAAQ,EAExCR,EAAmB,oBACrBU,EAAgBV,EAAmBE,EAAUM,CAAQ,GAEvDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EACrDG,CACT,CAEA,SAASK,GAAiB,CACxB,OAAIjB,EAAgB,oBAClBU,EAAaV,EAAgBQ,EAAOC,CAAQ,GAE1CR,EAAmB,oBACrBU,EAAgBV,EAAmBE,EAAUM,CAAQ,GAEvDG,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,EACrDG,CACT,CAEA,SAASM,GAAiB,CACxB,IAAMC,EAAiBnB,EAAgBQ,EAAOC,CAAQ,EAChDW,EAAoB,CAACd,EAAmBa,EAAgBT,CAAU,EACxE,OAAAA,EAAaS,EAETC,IACFR,EAAcV,EAAWQ,EAAYC,EAAeF,CAAQ,GAEvDG,CACT,CAEA,SAASS,EAAsBC,EAAkBC,EAAyB,CACxE,IAAMC,EAAe,CAACnB,EAAiBkB,EAAcd,CAAQ,EACvDgB,EAAe,CAACrB,EACpBkB,EACAd,EACAe,EACAd,CACF,EAIA,OAHAD,EAAQc,EACRb,EAAWc,EAEPC,GAAgBC,EAAqBT,EAA0B,EAC/DQ,EAAqBP,EAAe,EACpCQ,EAAqBP,EAAe,EACjCN,CACT,CAEA,OAAO,SACLU,EACAC,EACA,CACA,OAAOhB,EACHc,EAAsBC,EAAWC,CAAY,EAC7CV,EAAgBS,EAAWC,CAAY,CAC7C,CACF,CAgDe,SAARG,GAOLvB,EACA,CACE,oBAAAwB,EACA,uBAAAC,EACA,eAAAC,EACA,GAAGC,CACL,EAOA,CACA,IAAM9B,EAAkB2B,EAAoBxB,EAAU2B,CAAO,EACvD7B,EAAqB2B,EAAuBzB,EAAU2B,CAAO,EAC7D5B,EAAa2B,EAAe1B,EAAU2B,CAAO,EAMnD,OAAO/B,GAMLC,EAAiBC,EAAoBC,EAAYC,EAAU2B,CAAO,CACtE,CC/Oe,SAARC,GACLC,EACAC,EACyB,CACzB,IAAMC,EAA+C,CAAC,EAEtD,QAAWC,KAAOH,EAAgB,CAChC,IAAMI,EAAgBJ,EAAeG,CAAG,EACpC,OAAOC,GAAkB,aAC3BF,EAAoBC,CAAG,EAAI,IAAIE,IAASJ,EAASG,EAAc,GAAGC,CAAI,CAAC,EAE3E,CACA,OAAOH,CACT,CCCO,SAASI,EAMdC,EAOA,CACA,OAAO,SAA8BC,EAAoB,CACvD,IAAMC,EAAWF,EAAYC,CAAQ,EAErC,SAASE,GAAmB,CAC1B,OAAOD,CACT,CACA,OAAAC,EAAiB,kBAAoB,GAC9BA,CACT,CACF,CAUA,SAASC,GAAqBC,EAAwB,CACpD,OAAOA,EAAW,kBACd,EAAQA,EAAW,kBACnBA,EAAW,SAAW,CAC5B,CAcO,SAASC,EACdD,EACAE,EACA,CACA,OAAO,SACLN,EACA,CAAE,YAAAO,CAAY,EACd,CACA,IAAMC,EAAQ,SACZC,EACAC,EACY,CACZ,OAAOF,EAAM,kBACTA,EAAM,WAAWC,EAAiBC,CAAQ,EAC1CF,EAAM,WAAWC,EAAiB,MAAS,CACjD,EAGA,OAAAD,EAAM,kBAAoB,GAE1BA,EAAM,WAAa,SACjBC,EACAC,EACY,CACZF,EAAM,WAAaJ,EACnBI,EAAM,kBAAoBL,GAAqBC,CAAU,EACzD,IAAIO,EAAQH,EAAMC,EAAiBC,CAAQ,EAE3C,OAAI,OAAOC,GAAU,aACnBH,EAAM,WAAaG,EACnBH,EAAM,kBAAoBL,GAAqBQ,CAAK,EACpDA,EAAQH,EAAMC,EAAiBC,CAAQ,GAMlCC,CACT,EAEOH,CACT,CACF,CC3GO,SAASI,EAAwBC,EAAcC,EAAc,CAClE,MAAO,CACLC,EACAC,IACG,CACH,MAAM,IAAI,MACR,yBAAyB,OAAOH,CAAG,QAAQC,CAAI,uCAC7CE,EAAQ,oBACV,GACF,CACF,CACF,CCPO,SAASC,GACdC,EAGA,CACA,OAAOA,GAAsB,OAAOA,GAAuB,SACvDC,EAAwBC,GAEtBC,GAAmBH,EAAoBE,CAAQ,CACjD,EACCF,EAIC,OAAOA,GAAuB,WAE5BI,EAAmBJ,EAAoB,oBAAoB,EAC3DK,EAAwBL,EAAoB,oBAAoB,EANlEC,EAAwBC,IAAwC,CAC9D,SAAAA,CACF,EAAE,CAKV,CCpBO,SAASI,GACdC,EACA,CACA,OAAQA,EAEJ,OAAOA,GAAoB,WAEzBC,EAAmBD,EAAiB,iBAAiB,EACrDE,EAAwBF,EAAiB,iBAAiB,EAJ5DG,EAAuB,KAAO,CAAC,EAAE,CAKvC,CCPA,SAASC,GAMPC,EACAC,EACAC,EACc,CAEd,MAAO,CAAE,GAAGA,EAAU,GAAGF,EAAY,GAAGC,CAAc,CACxD,CAEA,SAASE,GAMPC,EAOoE,CACpE,OAAO,SACLC,EACA,CAAE,YAAAC,EAAa,oBAAAC,CAAoB,EACnC,CACA,IAAIC,EAAa,GACbC,EAEJ,OAAO,SACLT,EACAC,EACAC,EACA,CACA,IAAMQ,EAAkBN,EAAWJ,EAAYC,EAAeC,CAAQ,EAEtE,OAAIM,EACGD,EAAoBG,EAAiBD,CAAW,IACnDA,EAAcC,IAEhBF,EAAa,GACbC,EAAcC,GAMTD,CACT,CACF,CACF,CAEO,SAASE,GAMdP,EACA,CACA,OAAQA,EAEJ,OAAOA,GAAe,WACpBD,GAAmBC,CAAU,EAC7BQ,EAAwBR,EAAY,YAAY,EAHlD,IAAML,EAIZ,CC5EO,SAASc,EAAiBC,EAAsB,CACrDA,EAAS,CACX,CCWA,SAASC,IAA2B,CAClC,IAAIC,EAAyB,KACzBC,EAAwB,KAE5B,MAAO,CACL,OAAQ,CACND,EAAQ,KACRC,EAAO,IACT,EAEA,QAAS,CACPC,EAAM,IAAM,CACV,IAAIC,EAAWH,EACf,KAAOG,GACLA,EAAS,SAAS,EAClBA,EAAWA,EAAS,IAExB,CAAC,CACH,EAEA,KAAM,CACJ,IAAMC,EAAwB,CAAC,EAC3BD,EAAWH,EACf,KAAOG,GACLC,EAAU,KAAKD,CAAQ,EACvBA,EAAWA,EAAS,KAEtB,OAAOC,CACT,EAEA,UAAUC,EAAsB,CAC9B,IAAIC,EAAe,GAEbH,EAAsBF,EAAO,CACjC,SAAAI,EACA,KAAM,KACN,KAAMJ,CACR,EAEA,OAAIE,EAAS,KACXA,EAAS,KAAK,KAAOA,EAErBH,EAAQG,EAGH,UAAuB,CACxB,CAACG,GAAgBN,IAAU,OAC/BM,EAAe,GAEXH,EAAS,KACXA,EAAS,KAAK,KAAOA,EAAS,KAE9BF,EAAOE,EAAS,KAEdA,EAAS,KACXA,EAAS,KAAK,KAAOA,EAAS,KAE9BH,EAAQG,EAAS,KAErB,CACF,CACF,CACF,CAeA,IAAMI,GAAgB,CACpB,QAAS,CAAC,EACV,IAAK,IAAM,CAAC,CACd,EAEO,SAASC,EAAmBC,EAAYC,EAA0B,CACvE,IAAIC,EACAP,EAAgCG,GAGhCK,EAAsB,EAGtBC,EAAiB,GAErB,SAASC,EAAaX,EAAsB,CAC1CY,EAAa,EAEb,IAAMC,EAAkBZ,EAAU,UAAUD,CAAQ,EAGhDc,EAAU,GACd,MAAO,IAAM,CACNA,IACHA,EAAU,GACVD,EAAgB,EAChBE,EAAe,EAEnB,CACF,CAEA,SAASC,GAAmB,CAC1Bf,EAAU,OAAO,CACnB,CAEA,SAASgB,GAAsB,CACzBC,EAAa,eACfA,EAAa,cAAc,CAE/B,CAEA,SAASf,GAAe,CACtB,OAAOO,CACT,CAEA,SAASE,GAAe,CACtBH,IACKD,IACHA,EAAcD,EACVA,EAAU,aAAaU,CAAmB,EAC1CX,EAAM,UAAUW,CAAmB,EAEvChB,EAAYL,GAAyB,EAEzC,CAEA,SAASmB,GAAiB,CACxBN,IACID,GAAeC,IAAwB,IACzCD,EAAY,EACZA,EAAc,OACdP,EAAU,MAAM,EAChBA,EAAYG,GAEhB,CAEA,SAASe,GAAmB,CACrBT,IACHA,EAAiB,GACjBE,EAAa,EAEjB,CAEA,SAASQ,GAAqB,CACxBV,IACFA,EAAiB,GACjBK,EAAe,EAEnB,CAEA,IAAMG,EAA6B,CACjC,aAAAP,EACA,iBAAAK,EACA,oBAAAC,EACA,aAAAd,EACA,aAAcgB,EACd,eAAgBC,EAChB,aAAc,IAAMnB,CACtB,EAEA,OAAOiB,CACT,CC1KA,IAAMG,GAAY,IAEd,OAAO,OAAW,KAClB,OAAO,OAAO,SAAa,KAC3B,OAAO,OAAO,SAAS,cAAkB,IAGvCC,GAAwBD,GAAU,EAWlCE,GAAyB,IAC7B,OAAO,UAAc,KAAe,UAAU,UAAY,cAEtDC,GAAgCD,GAAuB,EAEvDE,GAA+B,IACnCH,IAASE,GAAgBE,EAAM,gBAAkBA,EAAM,UAE5CC,EACKF,GAA6B,ECvC/C,SAASG,GAAGC,EAAYC,EAAY,CAClC,OAAID,IAAMC,EACDD,IAAM,GAAKC,IAAM,GAAK,EAAID,IAAM,EAAIC,EAEpCD,IAAMA,GAAKC,IAAMA,CAE5B,CAEe,SAARC,EAA8BC,EAAWC,EAAW,CACzD,GAAIL,GAAGI,EAAMC,CAAI,EAAG,MAAO,GAE3B,GACE,OAAOD,GAAS,UAChBA,IAAS,MACT,OAAOC,GAAS,UAChBA,IAAS,KAET,MAAO,GAGT,IAAMC,EAAQ,OAAO,KAAKF,CAAI,EACxBG,EAAQ,OAAO,KAAKF,CAAI,EAE9B,GAAIC,EAAM,SAAWC,EAAM,OAAQ,MAAO,GAE1C,QAASC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IAChC,GACE,CAAC,OAAO,UAAU,eAAe,KAAKH,EAAMC,EAAME,CAAC,CAAC,GACpD,CAACR,GAAGI,EAAKE,EAAME,CAAC,CAAC,EAAGH,EAAKC,EAAME,CAAC,CAAC,CAAC,EAElC,MAAO,GAIX,MAAO,EACT,CCxBA,IAAMC,GAAgB,CACpB,kBAAmB,GACnB,YAAa,GACb,aAAc,GACd,aAAc,GACd,YAAa,GACb,gBAAiB,GACjB,yBAA0B,GAC1B,yBAA0B,GAC1B,OAAQ,GACR,UAAW,GACX,KAAM,EACR,EAEMC,GAAgB,CACpB,KAAM,GACN,OAAQ,GACR,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,UAAW,GACX,MAAO,EACT,EAEMC,GAAsB,CAC1B,SAAU,GACV,OAAQ,GACR,aAAc,GACd,YAAa,GACb,UAAW,EACb,EAEMC,GAAe,CACnB,SAAU,GACV,QAAS,GACT,aAAc,GACd,YAAa,GACb,UAAW,GACX,KAAM,EACR,EAEMC,GAAe,CACnB,CAACC,EAAU,EAAGH,GACd,CAACI,EAAI,EAAGH,EACV,EAEA,SAASI,GAAWC,EAAgB,CAElC,OAAIC,GAAOD,CAAS,EACXL,GAIFC,GAAaI,EAAU,QAAW,GAAKR,EAChD,CAkBA,IAAMU,GAAiB,OAAO,eACxBC,GAAsB,OAAO,oBAC7BC,GAAwB,OAAO,sBAC/BC,GAA2B,OAAO,yBAClCC,GAAiB,OAAO,eACxBC,GAAkB,OAAO,UAEhB,SAARC,EAOLC,EACAC,EACgD,CAChD,GAAI,OAAOA,GAAoB,SAAU,CAGvC,GAAIH,GAAiB,CACnB,IAAMI,EAAqBL,GAAeI,CAAe,EACrDC,GAAsBA,IAAuBJ,IAC/CC,EAAqBC,EAAiBE,CAAkB,CAE5D,CAEA,IAAIC,EAA4BT,GAAoBO,CAAe,EAE/DN,KACFQ,EAAOA,EAAK,OAAOR,GAAsBM,CAAe,CAAC,GAG3D,IAAMG,EAAgBd,GAAWU,CAAe,EAC1CK,EAAgBf,GAAWW,CAAe,EAEhD,QAASK,EAAI,EAAGA,EAAIH,EAAK,OAAQ,EAAEG,EAAG,CACpC,IAAMC,EAAMJ,EAAKG,CAAC,EAClB,GACE,CAACtB,GAAcuB,CAAiC,GAChD,EAAEF,GAAiBA,EAAcE,CAAiC,IAClE,EAAEH,GAAiBA,EAAcG,CAAiC,GAClE,CACA,IAAMC,EAAaZ,GAAyBK,EAAiBM,CAAG,EAChE,GAAI,CAEFd,GAAeO,EAAiBO,EAAKC,CAAW,CAClD,MAAY,CAEZ,CACF,CACF,CACF,CAEA,OAAOR,CACT,CC3HA,IAAMS,GAA6B,OAAO,IAAI,qBAAqB,EAC7DC,GAMJ,OAAO,WAAe,IAClB,WAC2F,CAAC,EAGlG,SAASC,IAAqD,CAC5D,GAAI,CAACC,EAAM,cAAe,MAAO,CAAC,EAElC,IAAMC,EAAcH,GAAGD,EAAU,IAAM,IAAI,IAIvCK,EAAcD,EAAW,IAAID,EAAM,aAAa,EACpD,OAAKE,IACHA,EAAcF,EAAM,cAClB,IACF,EAIAC,EAAW,IAAID,EAAM,cAAeE,CAAW,GAE1CA,CACT,CAEO,IAAMC,EAAkCJ,GAAW,ECJ1D,IAAMK,GAAwB,CAAC,KAAM,IAAI,EAkBzC,SAASC,GACPC,EACAC,EACAC,EACA,CACAC,EAA0B,IAAMH,EAAW,GAAGC,CAAU,EAAGC,CAAY,CACzE,CAGA,SAASE,GACPC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACA,CAEAL,EAAiB,QAAUG,EAC3BD,EAAkB,QAAU,GAGxBE,EAA0B,UAC5BA,EAA0B,QAAU,KACpCC,EAAiB,EAErB,CAIA,SAASC,GACPC,EACAC,EACAC,EACAC,EACAV,EACAC,EACAC,EACAS,EACAP,EACAC,EAEAO,EACA,CAEA,GAAI,CAACL,EAA0B,MAAO,IAAM,CAAC,EAG7C,IAAIM,EAAiB,GACjBC,EAAgC,KAG9BC,EAAkB,IAAM,CAC5B,GAAIF,GAAkB,CAACF,EAAU,QAG/B,OAIF,IAAMK,EAAmBR,EAAM,SAAS,EAEpCS,EAAeC,EACnB,GAAI,CAGFD,EAAgBP,EACdM,EACAhB,EAAiB,OACnB,CACF,OAASmB,EAAG,CACVD,EAAQC,EACRL,EAAkBK,CACpB,CAEKD,IACHJ,EAAkB,MAIhBG,IAAkBhB,EAAe,QAC9BC,EAAkB,SACrBG,EAAiB,GAOnBJ,EAAe,QAAUgB,EACzBb,EAA0B,QAAUa,EACpCf,EAAkB,QAAU,GAI5BU,EAA4B,EAEhC,EAGA,OAAAH,EAAa,cAAgBM,EAC7BN,EAAa,aAAa,EAI1BM,EAAgB,EAEW,IAAM,CAK/B,GAJAF,EAAiB,GACjBJ,EAAa,eAAe,EAC5BA,EAAa,cAAgB,KAEzBK,EAMF,MAAMA,CAEV,CAGF,CAgBA,SAASM,GAAYC,EAAYC,EAAY,CAC3C,OAAOD,IAAMC,CACf,CAyOA,SAASC,GAOPC,EACAC,EACAC,EACA,CAGE,KAAAC,EACA,eAAAC,EAAiBC,GACjB,iBAAAC,EAAmBC,EACnB,mBAAAC,EAAqBD,EACrB,oBAAAE,EAAsBF,EAGtB,WAAAG,EAAa,GAGb,QAAAC,EAAUC,CACZ,EAAwD,CAAC,EAChD,CAUT,IAAMC,EAAUF,EAEVG,EAAsBC,GAAuBf,CAAe,EAC5DgB,EAAyBC,GAA0BhB,CAAkB,EACrEiB,EAAiBC,GAAkBjB,CAAU,EAE7CkB,EAA2B,EAAQpB,EA4UzC,OAzUEqB,GACG,CAcH,IAAMC,EACJD,EAAiB,aAAeA,EAAiB,MAAQ,YAErDE,EAAc,WAAWD,CAAoB,IAE7CE,EAMF,CACF,yBAAAJ,EACA,YAAAG,EACA,qBAAAD,EACA,iBAAAD,EAEA,oBAAAP,EACA,uBAAAE,EACA,eAAAE,EACA,eAAAd,EACA,mBAAAI,EACA,iBAAAF,EACA,oBAAAG,CACF,EAEA,SAASgB,EACPC,EACA,CACA,GAAM,CAACC,EAAcC,EAAwBC,CAAY,EACvDC,EAAM,QAAQ,IAAM,CAIlB,GAAM,CAAE,uBAAAF,EAAwB,GAAGC,CAAa,EAAIH,EACpD,MAAO,CAACA,EAAM,QAASE,EAAwBC,CAAY,CAC7D,EAAG,CAACH,CAAK,CAAC,EAENK,EAA0CD,EAAM,QAAQ,IAAM,CAGlE,IAAIE,EAAgBnB,EACpB,OAAIc,GAAc,SAcXK,CACT,EAAG,CAACL,EAAcd,CAAO,CAAC,EAGpBoB,EAAeH,EAAM,WAAWC,CAAY,EAK5CG,EACJ,EAAQR,EAAM,OACd,EAAQA,EAAM,MAAO,UACrB,EAAQA,EAAM,MAAO,SACjBS,GACJ,EAAQF,GAAiB,EAAQA,EAAc,MAgB3CG,EAAeF,EACjBR,EAAM,MACNO,EAAc,MAEZI,GAAiBF,GACnBF,EAAc,eACdG,EAAM,SAEJE,EAAqBR,EAAM,QAAQ,IAGhCS,GAAuBH,EAAM,SAAUZ,CAAsB,EACnE,CAACY,CAAK,CAAC,EAEJ,CAACI,EAAcC,EAAgB,EAAIX,EAAM,QAAQ,IAAM,CAC3D,GAAI,CAACV,EAA0B,OAAOsB,GAItC,IAAMF,EAAeG,EACnBP,EACAF,EAAwB,OAAYD,EAAc,YACpD,EAMMQ,EACJD,EAAa,iBAAiB,KAAKA,CAAY,EAEjD,MAAO,CAACA,EAAcC,CAAgB,CACxC,EAAG,CAACL,EAAOF,EAAuBD,CAAY,CAAC,EAIzCW,GAAyBd,EAAM,QAAQ,IACvCI,EAIKD,EAKF,CACL,GAAGA,EACH,aAAAO,CACF,EACC,CAACN,EAAuBD,EAAcO,CAAY,CAAC,EAGhDK,EAAiBf,EAAM,OAAgB,MAAS,EAChDgB,EAAmBhB,EAAM,OAAOD,CAAY,EAC5CkB,EAA4BjB,EAAM,OAAgB,MAAS,EAC3DkB,GAAoBlB,EAAM,OAAO,EAAK,EACtCmB,EAAYnB,EAAM,OAAO,EAAK,EAM9BoB,EAAkCpB,EAAM,OAC5C,MACF,EAEAqB,EAA0B,KACxBF,EAAU,QAAU,GACb,IAAM,CACXA,EAAU,QAAU,EACtB,GACC,CAAC,CAAC,EAEL,IAAMG,GAA2BtB,EAAM,QAAQ,IAC5B,IAQbiB,EAA0B,SAC1BlB,IAAiBiB,EAAiB,QAE3BC,EAA0B,QAO5BT,EAAmBF,EAAM,SAAS,EAAGP,CAAY,EAGzD,CAACO,EAAOP,CAAY,CAAC,EAMlBwB,GAAoBvB,EAAM,QAAQ,IACnBwB,GACZd,EAIEe,GACLnC,EACAgB,EACAI,EAEAF,EACAQ,EACAD,EACAG,GACAC,EACAF,EACAN,GACAa,CACF,EAhBS,IAAM,CAAC,EAoBjB,CAACd,CAAY,CAAC,EAEjBgB,GAAkCC,GAAqB,CACrDX,EACAD,EACAG,GACAnB,EACAkB,EACAN,EACF,CAAC,EAED,IAAIiB,EAEJ,GAAI,CACFA,EAAmB5B,EAAM,qBAEvBuB,GAGAD,GACAf,GACI,IAAMC,EAAmBD,GAAe,EAAGR,CAAY,EACvDuB,EACN,CACF,OAASO,EAAK,CACZ,MAAIT,EAAgC,UAEhCS,EAAc,SACd;AAAA;AAAA,EAA4DT,EAAgC,QAAQ,KAAK;AAAA;AAAA,GAGvGS,CACR,CAEAR,EAA0B,IAAM,CAC9BD,EAAgC,QAAU,OAC1CH,EAA0B,QAAU,OACpCF,EAAe,QAAUa,CAC3B,CAAC,EAID,IAAME,GAA2B9B,EAAM,QAAQ,IAG3CA,EAAA,cAACT,EAAA,CACE,GAAGqC,EACJ,IAAK9B,EACP,EAED,CAACA,EAAwBP,EAAkBqC,CAAgB,CAAC,EAmB/D,OAfsB5B,EAAM,QAAQ,IAC9BV,EAKAU,EAAA,cAACC,EAAa,SAAb,CAAsB,MAAOa,IAC3BgB,EACH,EAIGA,GACN,CAAC7B,EAAc6B,GAA0BhB,EAAsB,CAAC,CAGrE,CASA,IAAMiB,EAPW/B,EAAM,KAAKL,CAAe,EAc3C,GAHAoC,EAAQ,iBAAmBxC,EAC3BwC,EAAQ,YAAcpC,EAAgB,YAAcF,EAEhDb,EAAY,CAQd,IAAMoD,EAPahC,EAAM,WACvB,SAA2BJ,EAAOqC,EAAK,CAErC,OAAOjC,EAAA,cAAC+B,EAAA,CAAS,GAAGnC,EAAO,uBAAwBqC,EAAK,CAC1D,CACF,EAGA,OAAAD,EAAU,YAAcvC,EACxBuC,EAAU,iBAAmBzC,EACR2C,EAAaF,EAAWzC,CAAgB,CAC/D,CAEA,OAAqB2C,EAAaH,EAASxC,CAAgB,CAC7D,CAGF,CAEA,IAAO4C,GAAQlE,GCpvBf,SAASmE,GACPC,EACA,CACA,GAAM,CAAE,SAAAC,EAAU,QAAAC,EAAS,YAAAC,EAAa,MAAAC,CAAM,EAAIJ,EAE5CK,EAAeC,EAAM,QAAQ,IAAM,CACvC,IAAMC,EAAeC,EAAmBJ,CAAK,EAS3C,MAPuB,CACvB,MAAAA,EACA,aAAAG,EACA,eAAgBJ,EAAc,IAAMA,EAAc,MACpD,CAaF,EAAG,CAACC,EAAOD,CAAW,CAAC,EAEjBM,EAAgBH,EAAM,QAAQ,IAAMF,EAAM,SAAS,EAAG,CAACA,CAAK,CAAC,EAEnE,OAAAM,EAA0B,IAAM,CAC9B,GAAM,CAAE,aAAAH,CAAa,EAAIF,EACzB,OAAAE,EAAa,cAAgBA,EAAa,iBAC1CA,EAAa,aAAa,EAEtBE,IAAkBL,EAAM,SAAS,GACnCG,EAAa,iBAAiB,EAEzB,IAAM,CACXA,EAAa,eAAe,EAC5BA,EAAa,cAAgB,MAC/B,CACF,EAAG,CAACF,EAAcI,CAAa,CAAC,EAIzBH,EAAA,eAFSJ,GAAWS,GAEX,SAAR,CAAiB,MAAON,GAAeJ,CAAS,CAC1D,CAEA,IAAOW,GAAQb,GC7FR,SAASc,EAAuBC,EAAUC,EAAmB,CAClE,OAAO,UAAmD,CASxD,OARqBC,EAAM,WAAWF,CAAO,CAS/C,CACF,CAkBO,IAAMG,EAAgCJ,EAAuB,ECuC7D,SAASK,EAKdC,EAGYC,EACZ,CACA,IAAMC,EACJF,IAAYC,EACRC,EAEAC,EAAuBH,CAAO,EAC9BI,EAAW,IAAM,CACrB,GAAM,CAAE,MAAAC,CAAM,EAAIH,EAAgB,EAClC,OAAOG,CACT,EAEA,cAAO,OAAOD,EAAU,CACtB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAiBO,IAAMA,GAAyBL,EAAgB,ECjE/C,SAASO,GAKdC,EAGYC,EACZ,CACA,IAAMC,EACJF,IAAYC,EAAoBC,GAAkBC,EAAgBH,CAAO,EAErEI,EAAc,IACJF,EAAS,EACV,SAGf,cAAO,OAAOE,EAAa,CACzB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAuBO,IAAMA,GAA4BL,GAAmB,ECrG5D,OAAS,oCAAAM,OAAwC,2CAoHjD,IAAMC,GAA+B,CAACC,EAAGC,IAAMD,IAAMC,EAQ9C,SAASC,GACdC,EAGYC,EACC,CACb,IAAMC,EACJF,IAAYC,EACRC,EACAC,EAAuBH,CAAO,EAE9BI,EAAc,CAClBC,EACAC,EAE4C,CAAC,IAChC,CACb,GAAM,CAAE,WAAAC,EAAaX,EAAY,EAC/B,OAAOU,GAAwB,WAC3B,CAAE,WAAYA,CAAoB,EAClCA,EAeAE,EAAeN,EAAgB,EAE/B,CAAE,MAAAO,EAAO,aAAAC,EAAc,eAAAC,CAAe,EAAIH,EAE1CI,EAAWC,EAAM,OAAO,EAAI,EAE5BC,EAAkBD,EAAM,YAC5B,CACE,CAACR,EAAS,IAAI,EAAEU,EAAe,CAC7B,IAAMC,EAAWX,EAASU,CAAK,EAC/B,GAAI,EAAuC,CAczC,IACEE,IAAwB,UACvBA,IAAwB,QAAUL,EAAS,UAGxC,CAACL,EAAWS,EAAUE,CAAS,EAEjC,GAAI,CAEJ,OAASC,EAAG,CAGZ,CAeJ,IACEC,IAA+B,UAC9BA,IAA+B,QAAUR,EAAS,UAG/CI,IAAaD,EAEf,GAAI,CAEJ,OAASI,EAAG,CAGZ,CAWN,CACA,OAAOH,CACT,CACF,EAAEX,EAAS,IAAI,EACf,CAACA,CAAQ,CACX,EAEMgB,EAAgBC,GACpBZ,EAAa,aACbD,EAAM,SACNE,GAAkBF,EAAM,SACxBK,EACAP,CACF,EAEA,OAAAM,EAAM,cAAcQ,CAAa,EAE1BA,CACT,EAEA,cAAO,OAAOjB,EAAa,CACzB,UAAW,IAAMA,CACnB,CAAC,EAEMA,CACT,CAyBO,IAAMA,GAA4BL,GAAmB,EC7O5D,IAAMwB,GAAQC","names":["React","IS_REACT_19","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","ForwardRef","REACT_FORWARD_REF_TYPE","Memo","REACT_MEMO_TYPE","typeOf","object","$$typeof","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_LAZY_TYPE","REACT_MEMO_TYPE","REACT_CONSUMER_TYPE","REACT_PORTAL_TYPE","isMemo","object","typeOf","REACT_MEMO_TYPE","pureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","mergeProps","dispatch","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","state","ownProps","stateProps","dispatchProps","mergedProps","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","options","bindActionCreators","actionCreators","dispatch","boundActionCreators","key","actionCreator","args","wrapMapToPropsConstant","getConstant","dispatch","constant","constantSelector","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","methodName","displayName","proxy","stateOrDispatch","ownProps","props","createInvalidArgFactory","arg","name","dispatch","options","mapDispatchToPropsFactory","mapDispatchToProps","wrapMapToPropsConstant","dispatch","bindActionCreators","wrapMapToPropsFunc","createInvalidArgFactory","mapStateToPropsFactory","mapStateToProps","wrapMapToPropsFunc","createInvalidArgFactory","wrapMapToPropsConstant","defaultMergeProps","stateProps","dispatchProps","ownProps","wrapMergePropsFunc","mergeProps","dispatch","displayName","areMergedPropsEqual","hasRunOnce","mergedProps","nextMergedProps","mergePropsFactory","createInvalidArgFactory","defaultNoopBatch","callback","createListenerCollection","first","last","defaultNoopBatch","listener","listeners","callback","isSubscribed","nullListeners","createSubscription","store","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","addNestedSub","trySubscribe","cleanupListener","removed","tryUnsubscribe","notifyNestedSubs","handleChangeWrapper","subscription","trySubscribeSelf","tryUnsubscribeSelf","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","React","useIsomorphicLayoutEffect","is","x","y","shallowEqual","objA","objB","keysA","keysB","i","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","ForwardRef","Memo","getStatics","component","isMemo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","keys","targetStatics","sourceStatics","i","key","descriptor","ContextKey","gT","getContext","React","contextMap","realContext","ReactReduxContext","NO_SUBSCRIPTION_ARRAY","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","useIsomorphicLayoutEffect","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","notifyNestedSubs","subscribeUpdates","shouldHandleStateChanges","store","subscription","childPropsSelector","isMounted","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","error","e","strictEqual","a","b","connect","mapStateToProps","mapDispatchToProps","mergeProps","pure","areStatesEqual","strictEqual","areOwnPropsEqual","shallowEqual","areStatePropsEqual","areMergedPropsEqual","forwardRef","context","ReactReduxContext","Context","initMapStateToProps","mapStateToPropsFactory","initMapDispatchToProps","mapDispatchToPropsFactory","initMergeProps","mergePropsFactory","shouldHandleStateChanges","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","ConnectFunction","props","propsContext","reactReduxForwardedRef","wrapperProps","React","ContextToUse","ResultContext","contextValue","didStoreComeFromProps","didStoreComeFromContext","store","getServerState","childPropsSelector","finalPropsSelectorFactory","subscription","notifyNestedSubs","NO_SUBSCRIPTION_ARRAY","createSubscription","overriddenContextValue","lastChildProps","lastWrapperProps","childPropsFromStoreUpdate","renderIsScheduled","isMounted","latestSubscriptionCallbackError","useIsomorphicLayoutEffect","actualChildPropsSelector","subscribeForReact","reactListener","subscribeUpdates","useIsomorphicLayoutEffectWithArgs","captureWrapperProps","actualChildProps","err","renderedWrappedComponent","Connect","forwarded","ref","hoistNonReactStatics","connect_default","Provider","providerProps","children","context","serverState","store","contextValue","React","subscription","createSubscription","previousState","useIsomorphicLayoutEffect","ReactReduxContext","Provider_default","createReduxContextHook","context","ReactReduxContext","React","useReduxContext","createStoreHook","context","ReactReduxContext","useReduxContext","createReduxContextHook","useStore","store","createDispatchHook","context","ReactReduxContext","useStore","createStoreHook","useDispatch","useSyncExternalStoreWithSelector","refEquality","a","b","createSelectorHook","context","ReactReduxContext","useReduxContext","createReduxContextHook","useSelector","selector","equalityFnOrOptions","equalityFn","reduxContext","store","subscription","getServerState","firstRun","React","wrappedSelector","state","selected","finalStabilityCheck","toCompare","e","finalIdentityFunctionCheck","selectedState","useSyncExternalStoreWithSelector","batch","defaultNoopBatch"]}
Index: de_modules/react-redux/dist/react-redux.d.ts
===================================================================
--- node_modules/react-redux/dist/react-redux.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,566 +1,0 @@
-import * as React from 'react';
-import { MemoExoticComponent, ForwardRefExoticComponent, Context, ReactNode, ComponentType, ComponentClass, ClassAttributes, JSX, FunctionComponent } from 'react';
-import { Action, UnknownAction, Store, Dispatch } from 'redux';
-
-/**
- * Copyright 2015, Yahoo! Inc.
- * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-declare const REACT_STATICS: {
-    readonly childContextTypes: true;
-    readonly contextType: true;
-    readonly contextTypes: true;
-    readonly defaultProps: true;
-    readonly displayName: true;
-    readonly getDefaultProps: true;
-    readonly getDerivedStateFromError: true;
-    readonly getDerivedStateFromProps: true;
-    readonly mixins: true;
-    readonly propTypes: true;
-    readonly type: true;
-};
-declare const KNOWN_STATICS: {
-    readonly name: true;
-    readonly length: true;
-    readonly prototype: true;
-    readonly caller: true;
-    readonly callee: true;
-    readonly arguments: true;
-    readonly arity: true;
-};
-declare const FORWARD_REF_STATICS: {
-    readonly $$typeof: true;
-    readonly render: true;
-    readonly defaultProps: true;
-    readonly displayName: true;
-    readonly propTypes: true;
-};
-declare const MEMO_STATICS: {
-    readonly $$typeof: true;
-    readonly compare: true;
-    readonly defaultProps: true;
-    readonly displayName: true;
-    readonly propTypes: true;
-    readonly type: true;
-};
-type NonReactStatics<Source, C extends {
-    [key: string]: true;
-} = {}> = {
-    [key in Exclude<keyof Source, Source extends MemoExoticComponent<any> ? keyof typeof MEMO_STATICS | keyof C : Source extends ForwardRefExoticComponent<any> ? keyof typeof FORWARD_REF_STATICS | keyof C : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C>]: Source[key];
-};
-
-type VoidFunc = () => void;
-type Listener = {
-    callback: VoidFunc;
-    next: Listener | null;
-    prev: Listener | null;
-};
-declare function createListenerCollection(): {
-    clear(): void;
-    notify(): void;
-    get(): Listener[];
-    subscribe(callback: () => void): () => void;
-};
-type ListenerCollection = ReturnType<typeof createListenerCollection>;
-interface Subscription {
-    addNestedSub: (listener: VoidFunc) => VoidFunc;
-    notifyNestedSubs: VoidFunc;
-    handleChangeWrapper: VoidFunc;
-    isSubscribed: () => boolean;
-    onStateChange?: VoidFunc | null;
-    trySubscribe: VoidFunc;
-    tryUnsubscribe: VoidFunc;
-    getListeners: () => ListenerCollection;
-}
-
-interface ProviderProps<A extends Action<string> = UnknownAction, S = unknown> {
-    /**
-     * The single Redux store in your application.
-     */
-    store: Store<S, A>;
-    /**
-     * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.
-     */
-    serverState?: S;
-    /**
-     * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.
-     * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.
-     * Set the initial value to null, and the hooks will error
-     * if this is not overwritten by Provider.
-     */
-    context?: Context<ReactReduxContextValue<S, A> | null>;
-    /**
-     * Determines the frequency of stability checks for all selectors.
-     * This setting overrides the global configuration for
-     * the `useSelector` stability check, allowing you to specify how often
-     * these checks should occur in development mode.
-     *
-     * @since 8.1.0
-     */
-    stabilityCheck?: DevModeCheckFrequency;
-    /**
-     * Determines the frequency of identity function checks for all selectors.
-     * This setting overrides the global configuration for
-     * the `useSelector` identity function check, allowing you to specify how often
-     * these checks should occur in development mode.
-     *
-     * **Note**: Previously referred to as `noopCheck`.
-     *
-     * @since 9.0.0
-     */
-    identityFunctionCheck?: DevModeCheckFrequency;
-    children: ReactNode;
-}
-declare function Provider<A extends Action<string> = UnknownAction, S = unknown>(providerProps: ProviderProps<A, S>): React.JSX.Element;
-
-interface ReactReduxContextValue<SS = any, A extends Action<string> = UnknownAction> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {
-    store: Store<SS, A>;
-    subscription: Subscription;
-    getServerState?: () => SS;
-}
-declare const ReactReduxContext: Context<ReactReduxContextValue<any, UnknownAction> | null>;
-type ReactReduxContextInstance = typeof ReactReduxContext;
-
-/**
- * The frequency of development mode checks.
- *
- * @since 8.1.0
- * @internal
- */
-type DevModeCheckFrequency = 'never' | 'once' | 'always';
-/**
- * Represents the configuration for development mode checks.
- *
- * @since 9.0.0
- * @internal
- */
-interface DevModeChecks {
-    /**
-     * Overrides the global stability check for the selector.
-     * - `once` - Run only the first time the selector is called.
-     * - `always` - Run every time the selector is called.
-     * - `never` - Never run the stability check.
-     *
-     * @default 'once'
-     *
-     * @since 8.1.0
-     */
-    stabilityCheck: DevModeCheckFrequency;
-    /**
-     * Overrides the global identity function check for the selector.
-     * - `once` - Run only the first time the selector is called.
-     * - `always` - Run every time the selector is called.
-     * - `never` - Never run the identity function check.
-     *
-     * **Note**: Previously referred to as `noopCheck`.
-     *
-     * @default 'once'
-     *
-     * @since 9.0.0
-     */
-    identityFunctionCheck: DevModeCheckFrequency;
-}
-interface UseSelectorOptions<Selected = unknown> {
-    equalityFn?: EqualityFn<Selected>;
-    /**
-     * `useSelector` performs additional checks in development mode to help
-     * identify and warn about potential issues in selector behavior. This
-     * option allows you to customize the behavior of these checks per selector.
-     *
-     * @since 9.0.0
-     */
-    devModeChecks?: Partial<DevModeChecks>;
-}
-/**
- * Represents a custom hook that allows you to extract data from the
- * Redux store state, using a selector function. The selector function
- * takes the current state as an argument and returns a part of the state
- * or some derived data. The hook also supports an optional equality
- * function or options object to customize its behavior.
- *
- * @template StateType - The specific type of state this hook operates on.
- *
- * @public
- */
-interface UseSelector<StateType = unknown> {
-    /**
-     * A function that takes a selector function as its first argument.
-     * The selector function is responsible for selecting a part of
-     * the Redux store's state or computing derived data.
-     *
-     * @param selector - A function that receives the current state and returns a part of the state or some derived data.
-     * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.
-     * @returns The selected part of the state or derived data.
-     *
-     * @template TState - The specific type of state this hook operates on.
-     * @template Selected - The type of the value that the selector function will return.
-     */
-    <TState extends StateType = StateType, Selected = unknown>(selector: (state: TState) => Selected, equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>): Selected;
-    /**
-     * Creates a "pre-typed" version of {@linkcode useSelector useSelector}
-     * where the `state` type is predefined.
-     *
-     * This allows you to set the `state` type once, eliminating the need to
-     * specify it with every {@linkcode useSelector useSelector} call.
-     *
-     * @returns A pre-typed `useSelector` with the state type already defined.
-     *
-     * @example
-     * ```ts
-     * export const useAppSelector = useSelector.withTypes<RootState>()
-     * ```
-     *
-     * @template OverrideStateType - The specific type of state this hook operates on.
-     *
-     * @since 9.1.0
-     */
-    withTypes: <OverrideStateType extends StateType>() => UseSelector<OverrideStateType>;
-}
-/**
- * Hook factory, which creates a `useSelector` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useSelector` hook bound to the specified context.
- */
-declare function createSelectorHook(context?: React.Context<ReactReduxContextValue<any, any> | null>): UseSelector;
-/**
- * A hook to access the redux store's state. This hook takes a selector function
- * as an argument. The selector is called with the store state.
- *
- * This hook takes an optional equality comparison function as the second parameter
- * that allows you to customize the way the selected state is compared to determine
- * whether the component needs to be re-rendered.
- *
- * @param {Function} selector the selector function
- * @param {Function=} equalityFn the function that will be used to determine equality
- *
- * @returns {any} the selected state
- *
- * @example
- *
- * import React from 'react'
- * import { useSelector } from 'react-redux'
- *
- * export const CounterComponent = () => {
- *   const counter = useSelector(state => state.counter)
- *   return <div>{counter}</div>
- * }
- */
-declare const useSelector: UseSelector<unknown>;
-
-type FixTypeLater = any;
-type EqualityFn<T> = (a: T, b: T) => boolean;
-type ExtendedEqualityFn<T, P> = (a: T, b: T, c: P, d: P) => boolean;
-type AnyIfEmpty<T extends object> = keyof T extends never ? any : T;
-type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
-interface DispatchProp<A extends Action<string> = UnknownAction> {
-    dispatch: Dispatch<A>;
-}
-/**
- * A property P will be present if:
- * - it is present in DecorationTargetProps
- *
- * Its value will be dependent on the following conditions
- * - if property P is present in InjectedProps and its definition extends the definition
- *   in DecorationTargetProps, then its definition will be that of DecorationTargetProps[P]
- * - if property P is not present in InjectedProps then its definition will be that of
- *   DecorationTargetProps[P]
- * - if property P is present in InjectedProps but does not extend the
- *   DecorationTargetProps[P] definition, its definition will be that of InjectedProps[P]
- */
-type Matching<InjectedProps, DecorationTargetProps> = {
-    [P in keyof DecorationTargetProps]: P extends keyof InjectedProps ? InjectedProps[P] extends DecorationTargetProps[P] ? DecorationTargetProps[P] : InjectedProps[P] : DecorationTargetProps[P];
-};
-/**
- * a property P will be present if :
- * - it is present in both DecorationTargetProps and InjectedProps
- * - InjectedProps[P] can satisfy DecorationTargetProps[P]
- * ie: decorated component can accept more types than decorator is injecting
- *
- * For decoration, inject props or ownProps are all optionally
- * required by the decorated (right hand side) component.
- * But any property required by the decorated component must be satisfied by the injected property.
- */
-type Shared<InjectedProps, DecorationTargetProps> = {
-    [P in Extract<keyof InjectedProps, keyof DecorationTargetProps>]?: InjectedProps[P] extends DecorationTargetProps[P] ? DecorationTargetProps[P] : never;
-};
-type GetProps<C> = C extends ComponentType<infer P> ? C extends ComponentClass<P> ? ClassAttributes<InstanceType<C>> & P : P : never;
-type GetLibraryManagedProps<C> = JSX.LibraryManagedAttributes<C, GetProps<C>>;
-type ConnectedComponent<C extends ComponentType<any>, P> = FunctionComponent<P> & NonReactStatics<C> & {
-    WrappedComponent: C;
-};
-type ConnectPropsMaybeWithoutContext<TActualOwnProps> = TActualOwnProps extends {
-    context: any;
-} ? Omit<ConnectProps, 'context'> : ConnectProps;
-type Identity<T> = T;
-type Mapped<T> = Identity<{
-    [k in keyof T]: T[k];
-}>;
-type InferableComponentEnhancerWithProps<TInjectedProps, TNeedsProps> = <C extends ComponentType<Matching<TInjectedProps, GetProps<C>>>>(component: C) => ConnectedComponent<C, Mapped<DistributiveOmit<GetLibraryManagedProps<C>, keyof Shared<TInjectedProps, GetLibraryManagedProps<C>>> & TNeedsProps & ConnectPropsMaybeWithoutContext<TNeedsProps & GetProps<C>>>>;
-type InferableComponentEnhancer<TInjectedProps> = InferableComponentEnhancerWithProps<TInjectedProps, {}>;
-type InferThunkActionCreatorType<TActionCreator extends (...args: any[]) => any> = TActionCreator extends (...args: infer TParams) => (...args: any[]) => infer TReturn ? (...args: TParams) => TReturn : TActionCreator;
-type HandleThunkActionCreator<TActionCreator> = TActionCreator extends (...args: any[]) => any ? InferThunkActionCreatorType<TActionCreator> : TActionCreator;
-type ResolveThunks<TDispatchProps> = TDispatchProps extends {
-    [key: string]: any;
-} ? {
-    [C in keyof TDispatchProps]: HandleThunkActionCreator<TDispatchProps[C]>;
-} : TDispatchProps;
-/**
- * This interface allows you to easily create a hook that is properly typed for your
- * store's root state.
- *
- * @example
- *
- * interface RootState {
- *   property: string;
- * }
- *
- * const useTypedSelector: TypedUseSelectorHook<RootState> = useSelector;
- */
-interface TypedUseSelectorHook<TState> {
-    <TSelected>(selector: (state: TState) => TSelected, equalityFn?: EqualityFn<NoInfer<TSelected>>): TSelected;
-    <Selected = unknown>(selector: (state: TState) => Selected, options?: UseSelectorOptions<Selected>): Selected;
-}
-type NoInfer<T> = [T][T extends any ? 0 : never];
-
-type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (dispatch: Dispatch<Action<string>>, factoryOptions: TFactoryOptions) => Selector<S, TProps, TOwnProps>;
-type Selector<S, TProps, TOwnProps = null> = TOwnProps extends null | undefined ? (state: S) => TProps : (state: S, ownProps: TOwnProps) => TProps;
-type MapStateToProps<TStateProps, TOwnProps, State> = (state: State, ownProps: TOwnProps) => TStateProps;
-type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (initialState: State, ownProps: TOwnProps) => MapStateToProps<TStateProps, TOwnProps, State>;
-type MapStateToPropsParam<TStateProps, TOwnProps, State> = MapStateToPropsFactory<TStateProps, TOwnProps, State> | MapStateToProps<TStateProps, TOwnProps, State> | null | undefined;
-type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps) => TDispatchProps;
-type MapDispatchToProps<TDispatchProps, TOwnProps> = MapDispatchToPropsFunction<TDispatchProps, TOwnProps> | TDispatchProps;
-type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>;
-type MapDispatchToPropsParam<TDispatchProps, TOwnProps> = MapDispatchToPropsFactory<TDispatchProps, TOwnProps> | MapDispatchToProps<TDispatchProps, TOwnProps>;
-type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> = MapDispatchToPropsFactory<TDispatchProps, TOwnProps> | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>;
-type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (stateProps: TStateProps, dispatchProps: TDispatchProps, ownProps: TOwnProps) => TMergedProps;
-
-interface ConnectProps {
-    /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */
-    context?: ReactReduxContextInstance;
-    /** A Redux store instance to be used for subscriptions instead of the store from a Provider */
-    store?: Store;
-}
-/**
- * Infers the type of props that a connector will inject into a component.
- */
-type ConnectedProps<TConnector> = TConnector extends InferableComponentEnhancerWithProps<infer TInjectedProps, any> ? unknown extends TInjectedProps ? TConnector extends InferableComponentEnhancer<infer TInjectedProps> ? TInjectedProps : never : TInjectedProps : never;
-interface ConnectOptions<State = unknown, TStateProps = {}, TOwnProps = {}, TMergedProps = {}> {
-    forwardRef?: boolean;
-    context?: typeof ReactReduxContext;
-    areStatesEqual?: (nextState: State, prevState: State, nextOwnProps: TOwnProps, prevOwnProps: TOwnProps) => boolean;
-    areOwnPropsEqual?: (nextOwnProps: TOwnProps, prevOwnProps: TOwnProps) => boolean;
-    areStatePropsEqual?: (nextStateProps: TStateProps, prevStateProps: TStateProps) => boolean;
-    areMergedPropsEqual?: (nextMergedProps: TMergedProps, prevMergedProps: TMergedProps) => boolean;
-}
-/**
- * Connects a React component to a Redux store.
- *
- * - Without arguments, just wraps the component, without changing the behavior / props
- *
- * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior
- * is to override ownProps (as stated in the docs), so what remains is everything that's
- * not a state or dispatch prop
- *
- * - When 3rd param is passed, we don't know if ownProps propagate and whether they
- * should be valid component props, because it depends on mergeProps implementation.
- * As such, it is the user's responsibility to extend ownProps interface from state or
- * dispatch props or both when applicable
- *
- * @param mapStateToProps
- * @param mapDispatchToProps
- * @param mergeProps
- * @param options
- */
-interface Connect<DefaultState = unknown> {
-    (): InferableComponentEnhancer<DispatchProp>;
-    /** mapState only */
-    <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>;
-    /** mapDispatch only (as a function) */
-    <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>;
-    /** mapDispatch only (as an object) */
-    <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>): InferableComponentEnhancerWithProps<ResolveThunks<TDispatchProps>, TOwnProps>;
-    /** mapState and mapDispatch (as a function)*/
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>): InferableComponentEnhancerWithProps<TStateProps & TDispatchProps, TOwnProps>;
-    /** mapState and mapDispatch (nullish) */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: null | undefined): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>;
-    /** mapState and mapDispatch (as an object) */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>): InferableComponentEnhancerWithProps<TStateProps & ResolveThunks<TDispatchProps>, TOwnProps>;
-    /** mergeProps only */
-    <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: null | undefined, mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>;
-    /** mapState and mergeProps */
-    <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: null | undefined, mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>;
-    /** mapDispatch (as a object) and mergeProps */
-    <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>, mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>;
-    /** mapState and options */
-    <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: null | undefined, mergeProps: null | undefined, options: ConnectOptions<State, TStateProps, TOwnProps>): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>;
-    /** mapDispatch (as a function) and options */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>, mergeProps: null | undefined, options: ConnectOptions<{}, TStateProps, TOwnProps>): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>;
-    /** mapDispatch (as an object) and options*/
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(mapStateToProps: null | undefined, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>, mergeProps: null | undefined, options: ConnectOptions<{}, TStateProps, TOwnProps>): InferableComponentEnhancerWithProps<ResolveThunks<TDispatchProps>, TOwnProps>;
-    /** mapState,  mapDispatch (as a function), and options */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>, mergeProps: null | undefined, options: ConnectOptions<State, TStateProps, TOwnProps>): InferableComponentEnhancerWithProps<TStateProps & TDispatchProps, TOwnProps>;
-    /** mapState,  mapDispatch (as an object), and options */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>, mergeProps: null | undefined, options: ConnectOptions<State, TStateProps, TOwnProps>): InferableComponentEnhancerWithProps<TStateProps & ResolveThunks<TDispatchProps>, TOwnProps>;
-    /** mapState, mapDispatch, mergeProps, and options */
-    <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}, State = DefaultState>(mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>, mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>, mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>, options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>;
-}
-declare const _default: Connect;
-
-declare function shallowEqual(objA: any, objB: any): boolean;
-
-declare function defaultNoopBatch(callback: () => void): void;
-
-/**
- * Represents a custom hook that provides a dispatch function
- * from the Redux store.
- *
- * @template DispatchType - The specific type of the dispatch function.
- *
- * @since 9.1.0
- * @public
- */
-interface UseDispatch<DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>> {
-    /**
-     * Returns the dispatch function from the Redux store.
-     *
-     * @returns The dispatch function from the Redux store.
-     *
-     * @template AppDispatch - The specific type of the dispatch function.
-     */
-    <AppDispatch extends DispatchType = DispatchType>(): AppDispatch;
-    /**
-     * Creates a "pre-typed" version of {@linkcode useDispatch useDispatch}
-     * where the type of the `dispatch` function is predefined.
-     *
-     * This allows you to set the `dispatch` type once, eliminating the need to
-     * specify it with every {@linkcode useDispatch useDispatch} call.
-     *
-     * @returns A pre-typed `useDispatch` with the dispatch type already defined.
-     *
-     * @example
-     * ```ts
-     * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()
-     * ```
-     *
-     * @template OverrideDispatchType - The specific type of the dispatch function.
-     *
-     * @since 9.1.0
-     */
-    withTypes: <OverrideDispatchType extends DispatchType>() => UseDispatch<OverrideDispatchType>;
-}
-/**
- * Hook factory, which creates a `useDispatch` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useDispatch` hook bound to the specified context.
- */
-declare function createDispatchHook<StateType = unknown, ActionType extends Action = UnknownAction>(context?: Context<ReactReduxContextValue<StateType, ActionType> | null>): UseDispatch<Dispatch<ActionType>>;
-/**
- * A hook to access the redux `dispatch` function.
- *
- * @returns {any|function} redux store's `dispatch` function
- *
- * @example
- *
- * import React, { useCallback } from 'react'
- * import { useDispatch } from 'react-redux'
- *
- * export const CounterComponent = ({ value }) => {
- *   const dispatch = useDispatch()
- *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
- *   return (
- *     <div>
- *       <span>{value}</span>
- *       <button onClick={increaseCounter}>Increase counter</button>
- *     </div>
- *   )
- * }
- */
-declare const useDispatch: UseDispatch<Dispatch<UnknownAction>>;
-
-/**
- * Represents a type that extracts the action type from a given Redux store.
- *
- * @template StoreType - The specific type of the Redux store.
- *
- * @since 9.1.0
- * @internal
- */
-type ExtractStoreActionType<StoreType extends Store> = StoreType extends Store<any, infer ActionType> ? ActionType : never;
-/**
- * Represents a custom hook that provides access to the Redux store.
- *
- * @template StoreType - The specific type of the Redux store that gets returned.
- *
- * @since 9.1.0
- * @public
- */
-interface UseStore<StoreType extends Store> {
-    /**
-     * Returns the Redux store instance.
-     *
-     * @returns The Redux store instance.
-     */
-    (): StoreType;
-    /**
-     * Returns the Redux store instance with specific state and action types.
-     *
-     * @returns The Redux store with the specified state and action types.
-     *
-     * @template StateType - The specific type of the state used in the store.
-     * @template ActionType - The specific type of the actions used in the store.
-     */
-    <StateType extends ReturnType<StoreType['getState']> = ReturnType<StoreType['getState']>, ActionType extends Action = ExtractStoreActionType<Store>>(): Store<StateType, ActionType>;
-    /**
-     * Creates a "pre-typed" version of {@linkcode useStore useStore}
-     * where the type of the Redux `store` is predefined.
-     *
-     * This allows you to set the `store` type once, eliminating the need to
-     * specify it with every {@linkcode useStore useStore} call.
-     *
-     * @returns A pre-typed `useStore` with the store type already defined.
-     *
-     * @example
-     * ```ts
-     * export const useAppStore = useStore.withTypes<AppStore>()
-     * ```
-     *
-     * @template OverrideStoreType - The specific type of the Redux store that gets returned.
-     *
-     * @since 9.1.0
-     */
-    withTypes: <OverrideStoreType extends StoreType>() => UseStore<OverrideStoreType>;
-}
-/**
- * Hook factory, which creates a `useStore` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useStore` hook bound to the specified context.
- */
-declare function createStoreHook<StateType = unknown, ActionType extends Action = Action>(context?: Context<ReactReduxContextValue<StateType, ActionType> | null>): UseStore<Store<StateType, ActionType>>;
-/**
- * A hook to access the redux store.
- *
- * @returns {any} the redux store
- *
- * @example
- *
- * import React from 'react'
- * import { useStore } from 'react-redux'
- *
- * export const ExampleComponent = () => {
- *   const store = useStore()
- *   return <div>{store.getState()}</div>
- * }
- */
-declare const useStore: UseStore<Store<unknown, Action, unknown>>;
-
-/**
- * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.
- * This is now a no-op that immediately runs the callback.
- */
-declare const batch: typeof defaultNoopBatch;
-
-export { type AnyIfEmpty, type Connect, type ConnectProps, type ConnectPropsMaybeWithoutContext, type ConnectedComponent, type ConnectedProps, type DispatchProp, type DistributiveOmit, type EqualityFn, type ExtendedEqualityFn, type FixTypeLater, type GetLibraryManagedProps, type GetProps, type HandleThunkActionCreator, type InferThunkActionCreatorType, type InferableComponentEnhancer, type InferableComponentEnhancerWithProps, type MapDispatchToProps, type MapDispatchToPropsFactory, type MapDispatchToPropsFunction, type MapDispatchToPropsNonObject, type MapDispatchToPropsParam, type MapStateToProps, type MapStateToPropsFactory, type MapStateToPropsParam, type Mapped, type Matching, type MergeProps, type NoInfer, Provider, type ProviderProps, ReactReduxContext, type ReactReduxContextValue, type ResolveThunks, type Selector, type SelectorFactory, type Shared, type Subscription, type TypedUseSelectorHook, type UseDispatch, type UseSelector, type UseStore, batch, _default as connect, createDispatchHook, createSelectorHook, createStoreHook, shallowEqual, useDispatch, useSelector, useStore };
Index: de_modules/react-redux/dist/react-redux.legacy-esm.js
===================================================================
--- node_modules/react-redux/dist/react-redux.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1103 +1,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-var __objRest = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-
-// src/utils/react.ts
-import * as React from "react";
-
-// src/utils/react-is.ts
-var IS_REACT_19 = /* @__PURE__ */ React.version.startsWith("19");
-var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(
-  IS_REACT_19 ? "react.transitional.element" : "react.element"
-);
-var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
-var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
-var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
-var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
-var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer");
-var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
-var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
-var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
-var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(
-  "react.suspense_list"
-);
-var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
-var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
-var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
-var REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(
-  "react.client.reference"
-);
-var ForwardRef = REACT_FORWARD_REF_TYPE;
-var Memo = REACT_MEMO_TYPE;
-function isValidElementType(type) {
-  return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;
-}
-function typeOf(object) {
-  if (typeof object === "object" && object !== null) {
-    const { $$typeof } = object;
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        switch (object = object.type, object) {
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-          case REACT_SUSPENSE_LIST_TYPE:
-            return object;
-          default:
-            switch (object = object && object.$$typeof, object) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-                return object;
-              case REACT_CONSUMER_TYPE:
-                return object;
-              default:
-                return $$typeof;
-            }
-        }
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-}
-function isContextConsumer(object) {
-  return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;
-}
-function isMemo(object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/connect/verifySubselectors.ts
-function verify(selector, methodName) {
-  if (!selector) {
-    throw new Error(`Unexpected value for ${methodName} in connect.`);
-  } else if (methodName === "mapStateToProps" || methodName === "mapDispatchToProps") {
-    if (!Object.prototype.hasOwnProperty.call(selector, "dependsOnOwnProps")) {
-      warning(
-        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`
-      );
-    }
-  }
-}
-function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {
-  verify(mapStateToProps, "mapStateToProps");
-  verify(mapDispatchToProps, "mapDispatchToProps");
-  verify(mergeProps, "mergeProps");
-}
-
-// src/connect/selectorFactory.ts
-function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {
-  areStatesEqual,
-  areOwnPropsEqual,
-  areStatePropsEqual
-}) {
-  let hasRunAtLeastOnce = false;
-  let state;
-  let ownProps;
-  let stateProps;
-  let dispatchProps;
-  let mergedProps;
-  function handleFirstCall(firstState, firstOwnProps) {
-    state = firstState;
-    ownProps = firstOwnProps;
-    stateProps = mapStateToProps(state, ownProps);
-    dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    hasRunAtLeastOnce = true;
-    return mergedProps;
-  }
-  function handleNewPropsAndNewState() {
-    stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewProps() {
-    if (mapStateToProps.dependsOnOwnProps)
-      stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewState() {
-    const nextStateProps = mapStateToProps(state, ownProps);
-    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
-    stateProps = nextStateProps;
-    if (statePropsChanged)
-      mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleSubsequentCalls(nextState, nextOwnProps) {
-    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
-    const stateChanged = !areStatesEqual(
-      nextState,
-      state,
-      nextOwnProps,
-      ownProps
-    );
-    state = nextState;
-    ownProps = nextOwnProps;
-    if (propsChanged && stateChanged) return handleNewPropsAndNewState();
-    if (propsChanged) return handleNewProps();
-    if (stateChanged) return handleNewState();
-    return mergedProps;
-  }
-  return function pureFinalPropsSelector(nextState, nextOwnProps) {
-    return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
-  };
-}
-function finalPropsSelectorFactory(dispatch, _a) {
-  var _b = _a, {
-    initMapStateToProps,
-    initMapDispatchToProps,
-    initMergeProps
-  } = _b, options = __objRest(_b, [
-    "initMapStateToProps",
-    "initMapDispatchToProps",
-    "initMergeProps"
-  ]);
-  const mapStateToProps = initMapStateToProps(dispatch, options);
-  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
-  const mergeProps = initMergeProps(dispatch, options);
-  if (process.env.NODE_ENV !== "production") {
-    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);
-  }
-  return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
-}
-
-// src/utils/bindActionCreators.ts
-function bindActionCreators(actionCreators, dispatch) {
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null) return false;
-  const proto = Object.getPrototypeOf(obj);
-  if (proto === null) return true;
-  let baseProto = proto;
-  while (Object.getPrototypeOf(baseProto) !== null) {
-    baseProto = Object.getPrototypeOf(baseProto);
-  }
-  return proto === baseProto;
-}
-
-// src/utils/verifyPlainObject.ts
-function verifyPlainObject(value, displayName, methodName) {
-  if (!isPlainObject(value)) {
-    warning(
-      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`
-    );
-  }
-}
-
-// src/connect/wrapMapToProps.ts
-function wrapMapToPropsConstant(getConstant) {
-  return function initConstantSelector(dispatch) {
-    const constant = getConstant(dispatch);
-    function constantSelector() {
-      return constant;
-    }
-    constantSelector.dependsOnOwnProps = false;
-    return constantSelector;
-  };
-}
-function getDependsOnOwnProps(mapToProps) {
-  return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
-}
-function wrapMapToPropsFunc(mapToProps, methodName) {
-  return function initProxySelector(dispatch, { displayName }) {
-    const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
-      return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);
-    };
-    proxy.dependsOnOwnProps = true;
-    proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
-      proxy.mapToProps = mapToProps;
-      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
-      let props = proxy(stateOrDispatch, ownProps);
-      if (typeof props === "function") {
-        proxy.mapToProps = props;
-        proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
-        props = proxy(stateOrDispatch, ownProps);
-      }
-      if (process.env.NODE_ENV !== "production")
-        verifyPlainObject(props, displayName, methodName);
-      return props;
-    };
-    return proxy;
-  };
-}
-
-// src/connect/invalidArgFactory.ts
-function createInvalidArgFactory(arg, name) {
-  return (dispatch, options) => {
-    throw new Error(
-      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`
-    );
-  };
-}
-
-// src/connect/mapDispatchToProps.ts
-function mapDispatchToPropsFactory(mapDispatchToProps) {
-  return mapDispatchToProps && typeof mapDispatchToProps === "object" ? wrapMapToPropsConstant(
-    (dispatch) => (
-      // @ts-ignore
-      bindActionCreators(mapDispatchToProps, dispatch)
-    )
-  ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({
-    dispatch
-  })) : typeof mapDispatchToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapDispatchToProps, "mapDispatchToProps")
-  ) : createInvalidArgFactory(mapDispatchToProps, "mapDispatchToProps");
-}
-
-// src/connect/mapStateToProps.ts
-function mapStateToPropsFactory(mapStateToProps) {
-  return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapStateToProps, "mapStateToProps")
-  ) : createInvalidArgFactory(mapStateToProps, "mapStateToProps");
-}
-
-// src/connect/mergeProps.ts
-function defaultMergeProps(stateProps, dispatchProps, ownProps) {
-  return __spreadValues(__spreadValues(__spreadValues({}, ownProps), stateProps), dispatchProps);
-}
-function wrapMergePropsFunc(mergeProps) {
-  return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {
-    let hasRunOnce = false;
-    let mergedProps;
-    return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
-      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-      if (hasRunOnce) {
-        if (!areMergedPropsEqual(nextMergedProps, mergedProps))
-          mergedProps = nextMergedProps;
-      } else {
-        hasRunOnce = true;
-        mergedProps = nextMergedProps;
-        if (process.env.NODE_ENV !== "production")
-          verifyPlainObject(mergedProps, displayName, "mergeProps");
-      }
-      return mergedProps;
-    };
-  };
-}
-function mergePropsFactory(mergeProps) {
-  return !mergeProps ? () => defaultMergeProps : typeof mergeProps === "function" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, "mergeProps");
-}
-
-// src/utils/batch.ts
-function defaultNoopBatch(callback) {
-  callback();
-}
-
-// src/utils/Subscription.ts
-function createListenerCollection() {
-  let first = null;
-  let last = null;
-  return {
-    clear() {
-      first = null;
-      last = null;
-    },
-    notify() {
-      defaultNoopBatch(() => {
-        let listener = first;
-        while (listener) {
-          listener.callback();
-          listener = listener.next;
-        }
-      });
-    },
-    get() {
-      const listeners = [];
-      let listener = first;
-      while (listener) {
-        listeners.push(listener);
-        listener = listener.next;
-      }
-      return listeners;
-    },
-    subscribe(callback) {
-      let isSubscribed = true;
-      const listener = last = {
-        callback,
-        next: null,
-        prev: last
-      };
-      if (listener.prev) {
-        listener.prev.next = listener;
-      } else {
-        first = listener;
-      }
-      return function unsubscribe() {
-        if (!isSubscribed || first === null) return;
-        isSubscribed = false;
-        if (listener.next) {
-          listener.next.prev = listener.prev;
-        } else {
-          last = listener.prev;
-        }
-        if (listener.prev) {
-          listener.prev.next = listener.next;
-        } else {
-          first = listener.next;
-        }
-      };
-    }
-  };
-}
-var nullListeners = {
-  notify() {
-  },
-  get: () => []
-};
-function createSubscription(store, parentSub) {
-  let unsubscribe;
-  let listeners = nullListeners;
-  let subscriptionsAmount = 0;
-  let selfSubscribed = false;
-  function addNestedSub(listener) {
-    trySubscribe();
-    const cleanupListener = listeners.subscribe(listener);
-    let removed = false;
-    return () => {
-      if (!removed) {
-        removed = true;
-        cleanupListener();
-        tryUnsubscribe();
-      }
-    };
-  }
-  function notifyNestedSubs() {
-    listeners.notify();
-  }
-  function handleChangeWrapper() {
-    if (subscription.onStateChange) {
-      subscription.onStateChange();
-    }
-  }
-  function isSubscribed() {
-    return selfSubscribed;
-  }
-  function trySubscribe() {
-    subscriptionsAmount++;
-    if (!unsubscribe) {
-      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);
-      listeners = createListenerCollection();
-    }
-  }
-  function tryUnsubscribe() {
-    subscriptionsAmount--;
-    if (unsubscribe && subscriptionsAmount === 0) {
-      unsubscribe();
-      unsubscribe = void 0;
-      listeners.clear();
-      listeners = nullListeners;
-    }
-  }
-  function trySubscribeSelf() {
-    if (!selfSubscribed) {
-      selfSubscribed = true;
-      trySubscribe();
-    }
-  }
-  function tryUnsubscribeSelf() {
-    if (selfSubscribed) {
-      selfSubscribed = false;
-      tryUnsubscribe();
-    }
-  }
-  const subscription = {
-    addNestedSub,
-    notifyNestedSubs,
-    handleChangeWrapper,
-    isSubscribed,
-    trySubscribe: trySubscribeSelf,
-    tryUnsubscribe: tryUnsubscribeSelf,
-    getListeners: () => listeners
-  };
-  return subscription;
-}
-
-// src/utils/useIsomorphicLayoutEffect.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? React.useLayoutEffect : React.useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-
-// src/utils/shallowEqual.ts
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || y !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function shallowEqual(objA, objB) {
-  if (is(objA, objB)) return true;
-  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
-    return false;
-  }
-  const keysA = Object.keys(objA);
-  const keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return false;
-  for (let i = 0; i < keysA.length; i++) {
-    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-// src/utils/hoistStatics.ts
-var REACT_STATICS = {
-  childContextTypes: true,
-  contextType: true,
-  contextTypes: true,
-  defaultProps: true,
-  displayName: true,
-  getDefaultProps: true,
-  getDerivedStateFromError: true,
-  getDerivedStateFromProps: true,
-  mixins: true,
-  propTypes: true,
-  type: true
-};
-var KNOWN_STATICS = {
-  name: true,
-  length: true,
-  prototype: true,
-  caller: true,
-  callee: true,
-  arguments: true,
-  arity: true
-};
-var FORWARD_REF_STATICS = {
-  $$typeof: true,
-  render: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true
-};
-var MEMO_STATICS = {
-  $$typeof: true,
-  compare: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-  type: true
-};
-var TYPE_STATICS = {
-  [ForwardRef]: FORWARD_REF_STATICS,
-  [Memo]: MEMO_STATICS
-};
-function getStatics(component) {
-  if (isMemo(component)) {
-    return MEMO_STATICS;
-  }
-  return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS;
-}
-var defineProperty = Object.defineProperty;
-var getOwnPropertyNames = Object.getOwnPropertyNames;
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectPrototype = Object.prototype;
-function hoistNonReactStatics(targetComponent, sourceComponent) {
-  if (typeof sourceComponent !== "string") {
-    if (objectPrototype) {
-      const inheritedComponent = getPrototypeOf(sourceComponent);
-      if (inheritedComponent && inheritedComponent !== objectPrototype) {
-        hoistNonReactStatics(targetComponent, inheritedComponent);
-      }
-    }
-    let keys = getOwnPropertyNames(sourceComponent);
-    if (getOwnPropertySymbols) {
-      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
-    }
-    const targetStatics = getStatics(targetComponent);
-    const sourceStatics = getStatics(sourceComponent);
-    for (let i = 0; i < keys.length; ++i) {
-      const key = keys[i];
-      if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
-        const descriptor = getOwnPropertyDescriptor(sourceComponent, key);
-        try {
-          defineProperty(targetComponent, key, descriptor);
-        } catch (e) {
-        }
-      }
-    }
-  }
-  return targetComponent;
-}
-
-// src/components/Context.ts
-var ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);
-var gT = typeof globalThis !== "undefined" ? globalThis : (
-  /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */
-  {}
-);
-function getContext() {
-  var _a;
-  if (!React.createContext) return {};
-  const contextMap = (_a = gT[ContextKey]) != null ? _a : gT[ContextKey] = /* @__PURE__ */ new Map();
-  let realContext = contextMap.get(React.createContext);
-  if (!realContext) {
-    realContext = React.createContext(
-      null
-    );
-    if (process.env.NODE_ENV !== "production") {
-      realContext.displayName = "ReactRedux";
-    }
-    contextMap.set(React.createContext, realContext);
-  }
-  return realContext;
-}
-var ReactReduxContext = /* @__PURE__ */ getContext();
-
-// src/components/connect.tsx
-var NO_SUBSCRIPTION_ARRAY = [null, null];
-var stringifyComponent = (Comp) => {
-  try {
-    return JSON.stringify(Comp);
-  } catch (err) {
-    return String(Comp);
-  }
-};
-function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
-  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);
-}
-function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {
-  lastWrapperProps.current = wrapperProps;
-  renderIsScheduled.current = false;
-  if (childPropsFromStoreUpdate.current) {
-    childPropsFromStoreUpdate.current = null;
-    notifyNestedSubs();
-  }
-}
-function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {
-  if (!shouldHandleStateChanges) return () => {
-  };
-  let didUnsubscribe = false;
-  let lastThrownError = null;
-  const checkForUpdates = () => {
-    if (didUnsubscribe || !isMounted.current) {
-      return;
-    }
-    const latestStoreState = store.getState();
-    let newChildProps, error;
-    try {
-      newChildProps = childPropsSelector(
-        latestStoreState,
-        lastWrapperProps.current
-      );
-    } catch (e) {
-      error = e;
-      lastThrownError = e;
-    }
-    if (!error) {
-      lastThrownError = null;
-    }
-    if (newChildProps === lastChildProps.current) {
-      if (!renderIsScheduled.current) {
-        notifyNestedSubs();
-      }
-    } else {
-      lastChildProps.current = newChildProps;
-      childPropsFromStoreUpdate.current = newChildProps;
-      renderIsScheduled.current = true;
-      additionalSubscribeListener();
-    }
-  };
-  subscription.onStateChange = checkForUpdates;
-  subscription.trySubscribe();
-  checkForUpdates();
-  const unsubscribeWrapper = () => {
-    didUnsubscribe = true;
-    subscription.tryUnsubscribe();
-    subscription.onStateChange = null;
-    if (lastThrownError) {
-      throw lastThrownError;
-    }
-  };
-  return unsubscribeWrapper;
-}
-function strictEqual(a, b) {
-  return a === b;
-}
-var hasWarnedAboutDeprecatedPureOption = false;
-function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
-  // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.
-  // @ts-ignore
-  pure,
-  areStatesEqual = strictEqual,
-  areOwnPropsEqual = shallowEqual,
-  areStatePropsEqual = shallowEqual,
-  areMergedPropsEqual = shallowEqual,
-  // use React's forwardRef to expose a ref of the wrapped component
-  forwardRef = false,
-  // the context consumer to use
-  context = ReactReduxContext
-} = {}) {
-  if (process.env.NODE_ENV !== "production") {
-    if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {
-      hasWarnedAboutDeprecatedPureOption = true;
-      warning(
-        'The `pure` option has been removed. `connect` is now always a "pure/memoized" component'
-      );
-    }
-  }
-  const Context = context;
-  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);
-  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);
-  const initMergeProps = mergePropsFactory(mergeProps);
-  const shouldHandleStateChanges = Boolean(mapStateToProps);
-  const wrapWithConnect = (WrappedComponent) => {
-    if (process.env.NODE_ENV !== "production") {
-      const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);
-      if (!isValid)
-        throw new Error(
-          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(
-            WrappedComponent
-          )}`
-        );
-    }
-    const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || "Component";
-    const displayName = `Connect(${wrappedComponentName})`;
-    const selectorFactoryOptions = {
-      shouldHandleStateChanges,
-      displayName,
-      wrappedComponentName,
-      WrappedComponent,
-      // @ts-ignore
-      initMapStateToProps,
-      initMapDispatchToProps,
-      initMergeProps,
-      areStatesEqual,
-      areStatePropsEqual,
-      areOwnPropsEqual,
-      areMergedPropsEqual
-    };
-    function ConnectFunction(props) {
-      const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {
-        const _a = props, { reactReduxForwardedRef: reactReduxForwardedRef2 } = _a, wrapperProps2 = __objRest(_a, ["reactReduxForwardedRef"]);
-        return [props.context, reactReduxForwardedRef2, wrapperProps2];
-      }, [props]);
-      const ContextToUse = React.useMemo(() => {
-        let ResultContext = Context;
-        if (propsContext == null ? void 0 : propsContext.Consumer) {
-          if (process.env.NODE_ENV !== "production") {
-            const isValid = /* @__PURE__ */ isContextConsumer(
-              // @ts-ignore
-              /* @__PURE__ */ React.createElement(propsContext.Consumer, null)
-            );
-            if (!isValid) {
-              throw new Error(
-                "You must pass a valid React context consumer as `props.context`"
-              );
-            }
-            ResultContext = propsContext;
-          }
-        }
-        return ResultContext;
-      }, [propsContext, Context]);
-      const contextValue = React.useContext(ContextToUse);
-      const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
-      const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
-      if (process.env.NODE_ENV !== "production" && !didStoreComeFromProps && !didStoreComeFromContext) {
-        throw new Error(
-          `Could not find "store" in the context of "${displayName}". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`
-        );
-      }
-      const store = didStoreComeFromProps ? props.store : contextValue.store;
-      const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;
-      const childPropsSelector = React.useMemo(() => {
-        return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);
-      }, [store]);
-      const [subscription, notifyNestedSubs] = React.useMemo(() => {
-        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;
-        const subscription2 = createSubscription(
-          store,
-          didStoreComeFromProps ? void 0 : contextValue.subscription
-        );
-        const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);
-        return [subscription2, notifyNestedSubs2];
-      }, [store, didStoreComeFromProps, contextValue]);
-      const overriddenContextValue = React.useMemo(() => {
-        if (didStoreComeFromProps) {
-          return contextValue;
-        }
-        return __spreadProps(__spreadValues({}, contextValue), {
-          subscription
-        });
-      }, [didStoreComeFromProps, contextValue, subscription]);
-      const lastChildProps = React.useRef(void 0);
-      const lastWrapperProps = React.useRef(wrapperProps);
-      const childPropsFromStoreUpdate = React.useRef(void 0);
-      const renderIsScheduled = React.useRef(false);
-      const isMounted = React.useRef(false);
-      const latestSubscriptionCallbackError = React.useRef(
-        void 0
-      );
-      useIsomorphicLayoutEffect(() => {
-        isMounted.current = true;
-        return () => {
-          isMounted.current = false;
-        };
-      }, []);
-      const actualChildPropsSelector = React.useMemo(() => {
-        const selector = () => {
-          if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
-            return childPropsFromStoreUpdate.current;
-          }
-          return childPropsSelector(store.getState(), wrapperProps);
-        };
-        return selector;
-      }, [store, wrapperProps]);
-      const subscribeForReact = React.useMemo(() => {
-        const subscribe = (reactListener) => {
-          if (!subscription) {
-            return () => {
-            };
-          }
-          return subscribeUpdates(
-            shouldHandleStateChanges,
-            store,
-            subscription,
-            // @ts-ignore
-            childPropsSelector,
-            lastWrapperProps,
-            lastChildProps,
-            renderIsScheduled,
-            isMounted,
-            childPropsFromStoreUpdate,
-            notifyNestedSubs,
-            reactListener
-          );
-        };
-        return subscribe;
-      }, [subscription]);
-      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [
-        lastWrapperProps,
-        lastChildProps,
-        renderIsScheduled,
-        wrapperProps,
-        childPropsFromStoreUpdate,
-        notifyNestedSubs
-      ]);
-      let actualChildProps;
-      try {
-        actualChildProps = React.useSyncExternalStore(
-          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing
-          subscribeForReact,
-          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,
-          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.
-          actualChildPropsSelector,
-          getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector
-        );
-      } catch (err) {
-        if (latestSubscriptionCallbackError.current) {
-          ;
-          err.message += `
-The error may be correlated with this previous error:
-${latestSubscriptionCallbackError.current.stack}
-
-`;
-        }
-        throw err;
-      }
-      useIsomorphicLayoutEffect(() => {
-        latestSubscriptionCallbackError.current = void 0;
-        childPropsFromStoreUpdate.current = void 0;
-        lastChildProps.current = actualChildProps;
-      });
-      const renderedWrappedComponent = React.useMemo(() => {
-        return (
-          // @ts-ignore
-          /* @__PURE__ */ React.createElement(
-            WrappedComponent,
-            __spreadProps(__spreadValues({}, actualChildProps), {
-              ref: reactReduxForwardedRef
-            })
-          )
-        );
-      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);
-      const renderedChild = React.useMemo(() => {
-        if (shouldHandleStateChanges) {
-          return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);
-        }
-        return renderedWrappedComponent;
-      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
-      return renderedChild;
-    }
-    const _Connect = React.memo(ConnectFunction);
-    const Connect = _Connect;
-    Connect.WrappedComponent = WrappedComponent;
-    Connect.displayName = ConnectFunction.displayName = displayName;
-    if (forwardRef) {
-      const _forwarded = React.forwardRef(
-        function forwardConnectRef(props, ref) {
-          return /* @__PURE__ */ React.createElement(Connect, __spreadProps(__spreadValues({}, props), { reactReduxForwardedRef: ref }));
-        }
-      );
-      const forwarded = _forwarded;
-      forwarded.displayName = displayName;
-      forwarded.WrappedComponent = WrappedComponent;
-      return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);
-    }
-    return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);
-  };
-  return wrapWithConnect;
-}
-var connect_default = connect;
-
-// src/components/Provider.tsx
-function Provider(providerProps) {
-  const { children, context, serverState, store } = providerProps;
-  const contextValue = React.useMemo(() => {
-    const subscription = createSubscription(store);
-    const baseContextValue = {
-      store,
-      subscription,
-      getServerState: serverState ? () => serverState : void 0
-    };
-    if (process.env.NODE_ENV === "production") {
-      return baseContextValue;
-    } else {
-      const { identityFunctionCheck = "once", stabilityCheck = "once" } = providerProps;
-      return /* @__PURE__ */ Object.assign(baseContextValue, {
-        stabilityCheck,
-        identityFunctionCheck
-      });
-    }
-  }, [store, serverState]);
-  const previousState = React.useMemo(() => store.getState(), [store]);
-  useIsomorphicLayoutEffect(() => {
-    const { subscription } = contextValue;
-    subscription.onStateChange = subscription.notifyNestedSubs;
-    subscription.trySubscribe();
-    if (previousState !== store.getState()) {
-      subscription.notifyNestedSubs();
-    }
-    return () => {
-      subscription.tryUnsubscribe();
-      subscription.onStateChange = void 0;
-    };
-  }, [contextValue, previousState]);
-  const Context = context || ReactReduxContext;
-  return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);
-}
-var Provider_default = Provider;
-
-// src/hooks/useReduxContext.ts
-function createReduxContextHook(context = ReactReduxContext) {
-  return function useReduxContext2() {
-    const contextValue = React.useContext(context);
-    if (process.env.NODE_ENV !== "production" && !contextValue) {
-      throw new Error(
-        "could not find react-redux context value; please ensure the component is wrapped in a <Provider>"
-      );
-    }
-    return contextValue;
-  };
-}
-var useReduxContext = /* @__PURE__ */ createReduxContextHook();
-
-// src/hooks/useStore.ts
-function createStoreHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (
-    // @ts-ignore
-    createReduxContextHook(context)
-  );
-  const useStore2 = () => {
-    const { store } = useReduxContext2();
-    return store;
-  };
-  Object.assign(useStore2, {
-    withTypes: () => useStore2
-  });
-  return useStore2;
-}
-var useStore = /* @__PURE__ */ createStoreHook();
-
-// src/hooks/useDispatch.ts
-function createDispatchHook(context = ReactReduxContext) {
-  const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);
-  const useDispatch2 = () => {
-    const store = useStore2();
-    return store.dispatch;
-  };
-  Object.assign(useDispatch2, {
-    withTypes: () => useDispatch2
-  });
-  return useDispatch2;
-}
-var useDispatch = /* @__PURE__ */ createDispatchHook();
-
-// src/hooks/useSelector.ts
-import { useSyncExternalStoreWithSelector } from "use-sync-external-store/with-selector.js";
-var refEquality = (a, b) => a === b;
-function createSelectorHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);
-  const useSelector2 = (selector, equalityFnOrOptions = {}) => {
-    const { equalityFn = refEquality } = typeof equalityFnOrOptions === "function" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;
-    if (process.env.NODE_ENV !== "production") {
-      if (!selector) {
-        throw new Error(`You must pass a selector to useSelector`);
-      }
-      if (typeof selector !== "function") {
-        throw new Error(`You must pass a function as a selector to useSelector`);
-      }
-      if (typeof equalityFn !== "function") {
-        throw new Error(
-          `You must pass a function as an equality function to useSelector`
-        );
-      }
-    }
-    const reduxContext = useReduxContext2();
-    const { store, subscription, getServerState } = reduxContext;
-    const firstRun = React.useRef(true);
-    const wrappedSelector = React.useCallback(
-      {
-        [selector.name](state) {
-          const selected = selector(state);
-          if (process.env.NODE_ENV !== "production") {
-            const { devModeChecks = {} } = typeof equalityFnOrOptions === "function" ? {} : equalityFnOrOptions;
-            const { identityFunctionCheck, stabilityCheck } = reduxContext;
-            const {
-              identityFunctionCheck: finalIdentityFunctionCheck,
-              stabilityCheck: finalStabilityCheck
-            } = __spreadValues({
-              stabilityCheck,
-              identityFunctionCheck
-            }, devModeChecks);
-            if (finalStabilityCheck === "always" || finalStabilityCheck === "once" && firstRun.current) {
-              const toCompare = selector(state);
-              if (!equalityFn(selected, toCompare)) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization",
-                  {
-                    state,
-                    selected,
-                    selected2: toCompare,
-                    stack
-                  }
-                );
-              }
-            }
-            if (finalIdentityFunctionCheck === "always" || finalIdentityFunctionCheck === "once" && firstRun.current) {
-              if (selected === state) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned the root state when called. This can lead to unnecessary rerenders.\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.",
-                  { stack }
-                );
-              }
-            }
-            if (firstRun.current) firstRun.current = false;
-          }
-          return selected;
-        }
-      }[selector.name],
-      [selector]
-    );
-    const selectedState = useSyncExternalStoreWithSelector(
-      subscription.addNestedSub,
-      store.getState,
-      getServerState || store.getState,
-      wrappedSelector,
-      equalityFn
-    );
-    React.useDebugValue(selectedState);
-    return selectedState;
-  };
-  Object.assign(useSelector2, {
-    withTypes: () => useSelector2
-  });
-  return useSelector2;
-}
-var useSelector = /* @__PURE__ */ createSelectorHook();
-
-// src/exports.ts
-var batch = defaultNoopBatch;
-export {
-  Provider_default as Provider,
-  ReactReduxContext,
-  batch,
-  connect_default as connect,
-  createDispatchHook,
-  createSelectorHook,
-  createStoreHook,
-  shallowEqual,
-  useDispatch,
-  useSelector,
-  useStore
-};
-//# sourceMappingURL=react-redux.legacy-esm.js.map
Index: de_modules/react-redux/dist/react-redux.legacy-esm.js.map
===================================================================
--- node_modules/react-redux/dist/react-redux.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/react.ts","../src/utils/react-is.ts","../src/utils/warning.ts","../src/connect/verifySubselectors.ts","../src/connect/selectorFactory.ts","../src/utils/bindActionCreators.ts","../src/utils/isPlainObject.ts","../src/utils/verifyPlainObject.ts","../src/connect/wrapMapToProps.ts","../src/connect/invalidArgFactory.ts","../src/connect/mapDispatchToProps.ts","../src/connect/mapStateToProps.ts","../src/connect/mergeProps.ts","../src/utils/batch.ts","../src/utils/Subscription.ts","../src/utils/useIsomorphicLayoutEffect.ts","../src/utils/shallowEqual.ts","../src/utils/hoistStatics.ts","../src/components/Context.ts","../src/components/connect.tsx","../src/components/Provider.tsx","../src/hooks/useReduxContext.ts","../src/hooks/useStore.ts","../src/hooks/useDispatch.ts","../src/hooks/useSelector.ts","../src/exports.ts"],"sourcesContent":["import * as React from 'react'\n\nexport { React }\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n  IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n  'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n  'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n  return typeof type === 'string' ||\n    typeof type === 'function' ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (typeof type === 'object' &&\n      type !== null &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        type.getModuleId !== undefined))\n    ? !0\n    : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n  if (typeof object === 'object' && object !== null) {\n    const { $$typeof } = object\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object\n              case REACT_CONSUMER_TYPE:\n                return object\n              default:\n                return $$typeof\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof\n    }\n  }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n  return IS_REACT_19\n    ? typeOf(object) === REACT_CONSUMER_TYPE\n    : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n  return typeOf(object) === REACT_MEMO_TYPE\n}\n","/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\r\nexport default function warning(message: string) {\r\n  /* eslint-disable no-console */\r\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\r\n    console.error(message)\r\n  }\r\n  /* eslint-enable no-console */\r\n  try {\r\n    // This error was thrown as a convenience so that if you enable\r\n    // \"break on all exceptions\" in your console,\r\n    // it would pause the execution at this line.\r\n    throw new Error(message)\r\n    /* eslint-disable no-empty */\r\n  } catch (e) {}\r\n  /* eslint-enable no-empty */\r\n}\r\n","import warning from '../utils/warning'\n\nfunction verify(selector: unknown, methodName: string): void {\n  if (!selector) {\n    throw new Error(`Unexpected value for ${methodName} in connect.`)\n  } else if (\n    methodName === 'mapStateToProps' ||\n    methodName === 'mapDispatchToProps'\n  ) {\n    if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n      warning(\n        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`,\n      )\n    }\n  }\n}\n\nexport default function verifySubselectors(\n  mapStateToProps: unknown,\n  mapDispatchToProps: unknown,\n  mergeProps: unknown,\n): void {\n  verify(mapStateToProps, 'mapStateToProps')\n  verify(mapDispatchToProps, 'mapDispatchToProps')\n  verify(mergeProps, 'mergeProps')\n}\n","import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n  dispatch: Dispatch<Action<string>>,\n  factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n  | null\n  | undefined\n  ? (state: S) => TProps\n  : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n  state: State,\n  ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n  initialState: State,\n  ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n  | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n  | MapStateToProps<TStateProps, TOwnProps, State>\n  | null\n  | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n  | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n  readonly areStatePropsEqual: EqualityFn<TStateProps>\n  readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  dispatch: Dispatch<Action<string>>,\n  {\n    areStatesEqual,\n    areOwnPropsEqual,\n    areStatePropsEqual,\n  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n  let hasRunAtLeastOnce = false\n  let state: State\n  let ownProps: TOwnProps\n  let stateProps: TStateProps\n  let dispatchProps: TDispatchProps\n  let mergedProps: TMergedProps\n\n  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n    state = firstState\n    ownProps = firstOwnProps\n    stateProps = mapStateToProps(state, ownProps)\n    dispatchProps = mapDispatchToProps(dispatch, ownProps)\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    hasRunAtLeastOnce = true\n    return mergedProps\n  }\n\n  function handleNewPropsAndNewState() {\n    stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewProps() {\n    if (mapStateToProps.dependsOnOwnProps)\n      stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewState() {\n    const nextStateProps = mapStateToProps(state, ownProps)\n    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n    stateProps = nextStateProps\n\n    if (statePropsChanged)\n      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n    return mergedProps\n  }\n\n  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n    const stateChanged = !areStatesEqual(\n      nextState,\n      state,\n      nextOwnProps,\n      ownProps,\n    )\n    state = nextState\n    ownProps = nextOwnProps\n\n    if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n    if (propsChanged) return handleNewProps()\n    if (stateChanged) return handleNewState()\n    return mergedProps\n  }\n\n  return function pureFinalPropsSelector(\n    nextState: State,\n    nextOwnProps: TOwnProps,\n  ) {\n    return hasRunAtLeastOnce\n      ? handleSubsequentCalls(nextState, nextOwnProps)\n      : handleFirstCall(nextState, nextOwnProps)\n  }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n  (state: State, ownProps: TOwnProps): TStateProps\n  readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n  readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly shouldHandleStateChanges: boolean\n  readonly displayName: string\n  readonly wrappedComponentName: string\n  readonly WrappedComponent: ComponentType<TOwnProps>\n  readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n  readonly initMapStateToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n  readonly initMapDispatchToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n  readonly initMergeProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  dispatch: Dispatch<Action<string>>,\n  {\n    initMapStateToProps,\n    initMapDispatchToProps,\n    initMergeProps,\n    ...options\n  }: SelectorFactoryOptions<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >,\n) {\n  const mapStateToProps = initMapStateToProps(dispatch, options)\n  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n  const mergeProps = initMergeProps(dispatch, options)\n\n  if (process.env.NODE_ENV !== 'production') {\n    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n  }\n\n  return pureFinalPropsSelectorFactory<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n","import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n  actionCreators: ActionCreatorsMapObject,\n  dispatch: Dispatch,\n): ActionCreatorsMapObject {\n  const boundActionCreators: ActionCreatorsMapObject = {}\n\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key]\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n    }\n  }\n  return boundActionCreators\n}\n","/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: unknown) {\n  if (typeof obj !== 'object' || obj === null) return false\n\n  const proto = Object.getPrototypeOf(obj)\n  if (proto === null) return true\n\n  let baseProto = proto\n  while (Object.getPrototypeOf(baseProto) !== null) {\n    baseProto = Object.getPrototypeOf(baseProto)\n  }\n\n  return proto === baseProto\n}\n","import isPlainObject from './isPlainObject'\nimport warning from './warning'\n\nexport default function verifyPlainObject(\n  value: unknown,\n  displayName: string,\n  methodName: string,\n) {\n  if (!isPlainObject(value)) {\n    warning(\n      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`,\n    )\n  }\n}\n","import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n  // eslint-disable-next-line no-unused-vars\n  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n  dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n  // * Note:\n  //  It seems that the dispatch argument\n  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)\n  // eslint-disable-next-line no-unused-vars\n  getConstant: (dispatch: Dispatch) =>\n    | {\n        dispatch?: Dispatch\n        dependsOnOwnProps?: boolean\n      }\n    | ActionCreatorsMapObject\n    | ActionCreator<any>,\n) {\n  return function initConstantSelector(dispatch: Dispatch) {\n    const constant = getConstant(dispatch)\n\n    function constantSelector() {\n      return constant\n    }\n    constantSelector.dependsOnOwnProps = false\n    return constantSelector\n  }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n  return mapToProps.dependsOnOwnProps\n    ? Boolean(mapToProps.dependsOnOwnProps)\n    : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n//  * Detects whether the mapToProps function being called depends on props, which\n//    is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n//  * On first call, handles mapToProps if returns another function, and treats that\n//    new function as the true mapToProps for subsequent calls.\n//\n//  * On first call, verifies the first result is a plain object, in order to warn\n//    the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n  mapToProps: MapToProps,\n  methodName: string,\n) {\n  return function initProxySelector(\n    dispatch: Dispatch,\n    { displayName }: { displayName: string },\n  ) {\n    const proxy = function mapToPropsProxy(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      return proxy.dependsOnOwnProps\n        ? proxy.mapToProps(stateOrDispatch, ownProps)\n        : proxy.mapToProps(stateOrDispatch, undefined)\n    }\n\n    // allow detectFactoryAndVerify to get ownProps\n    proxy.dependsOnOwnProps = true\n\n    proxy.mapToProps = function detectFactoryAndVerify(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      proxy.mapToProps = mapToProps\n      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n      let props = proxy(stateOrDispatch, ownProps)\n\n      if (typeof props === 'function') {\n        proxy.mapToProps = props\n        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n        props = proxy(stateOrDispatch, ownProps)\n      }\n\n      if (process.env.NODE_ENV !== 'production')\n        verifyPlainObject(props, displayName, methodName)\n\n      return props\n    }\n\n    return proxy\n  }\n}\n","import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n  return (\n    dispatch: Dispatch<Action<string>>,\n    options: { readonly wrappedComponentName: string },\n  ) => {\n    throw new Error(\n      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n        options.wrappedComponentName\n      }.`,\n    )\n  }\n}\n","import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n  mapDispatchToProps:\n    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n    | undefined,\n) {\n  return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n        // @ts-ignore\n        bindActionCreators(mapDispatchToProps, dispatch),\n      )\n    : !mapDispatchToProps\n      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n          dispatch,\n        }))\n      : typeof mapDispatchToProps === 'function'\n        ? // @ts-ignore\n          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n  return !mapStateToProps\n    ? wrapMapToPropsConstant(() => ({}))\n    : typeof mapStateToProps === 'function'\n      ? // @ts-ignore\n        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n","import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n): TMergedProps {\n  // @ts-ignore\n  return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n  dispatch: Dispatch<Action<string>>,\n  options: {\n    readonly displayName: string\n    readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n  },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n  return function initMergePropsProxy(\n    dispatch,\n    { displayName, areMergedPropsEqual },\n  ) {\n    let hasRunOnce = false\n    let mergedProps: TMergedProps\n\n    return function mergePropsProxy(\n      stateProps: TStateProps,\n      dispatchProps: TDispatchProps,\n      ownProps: TOwnProps,\n    ) {\n      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n      if (hasRunOnce) {\n        if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n          mergedProps = nextMergedProps\n      } else {\n        hasRunOnce = true\n        mergedProps = nextMergedProps\n\n        if (process.env.NODE_ENV !== 'production')\n          verifyPlainObject(mergedProps, displayName, 'mergeProps')\n      }\n\n      return mergedProps\n    }\n  }\n}\n\nexport function mergePropsFactory<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n  return !mergeProps\n    ? () => defaultMergeProps\n    : typeof mergeProps === 'function'\n      ? wrapMergePropsFunc(mergeProps)\n      : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n  ConnectedComponent,\n  InferableComponentEnhancer,\n  InferableComponentEnhancerWithProps,\n  ResolveThunks,\n  DispatchProp,\n  ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n  MapStateToPropsParam,\n  MapDispatchToPropsParam,\n  MergeProps,\n  MapDispatchToPropsNonObject,\n  SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n  ReactReduxContextValue,\n  ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n  try {\n    return JSON.stringify(Comp)\n  } catch (err) {\n    return String(Comp)\n  }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n  effectFunc: EffectFunc,\n  effectArgs: any[],\n  dependencies?: React.DependencyList,\n) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  wrapperProps: unknown,\n  // actualChildProps: unknown,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps\n  renderIsScheduled.current = false\n\n  // If the render was from a store update, clear out that reference and cascade the subscriber update\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null\n    notifyNestedSubs()\n  }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n  shouldHandleStateChanges: boolean,\n  store: Store,\n  subscription: Subscription,\n  childPropsSelector: (state: unknown, props: unknown) => unknown,\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  isMounted: React.MutableRefObject<boolean>,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n  // forceComponentUpdateDispatch: React.Dispatch<any>,\n  additionalSubscribeListener: () => void,\n) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}\n\n  // Capture values for checking if and when this component unmounts\n  let didUnsubscribe = false\n  let lastThrownError: Error | null = null\n\n  // We'll run this callback every time a store subscription update propagates to this component\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return\n    }\n\n    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n    const latestStoreState = store.getState()\n\n    let newChildProps, error\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(\n        latestStoreState,\n        lastWrapperProps.current,\n      )\n    } catch (e) {\n      error = e\n      lastThrownError = e as Error | null\n    }\n\n    if (!error) {\n      lastThrownError = null\n    }\n\n    // If the child props haven't changed, nothing to do here - cascade the subscription update\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs()\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps\n      childPropsFromStoreUpdate.current = newChildProps\n      renderIsScheduled.current = true\n\n      // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n      additionalSubscribeListener()\n    }\n  }\n\n  // Actually subscribe to the nearest connected ancestor (or store)\n  subscription.onStateChange = checkForUpdates\n  subscription.trySubscribe()\n\n  // Pull data from the store after first render in case the store has\n  // changed since we began.\n  checkForUpdates()\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true\n    subscription.tryUnsubscribe()\n    subscription.onStateChange = null\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError\n    }\n  }\n\n  return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n  context?: ReactReduxContextInstance\n  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n  store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n  reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n  return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n  TConnector extends InferableComponentEnhancerWithProps<\n    infer TInjectedProps,\n    any\n  >\n    ? unknown extends TInjectedProps\n      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n        ? TInjectedProps\n        : never\n      : TInjectedProps\n    : never\n\nexport interface ConnectOptions<\n  State = unknown,\n  TStateProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n> {\n  forwardRef?: boolean\n  context?: typeof ReactReduxContext\n  areStatesEqual?: (\n    nextState: State,\n    prevState: State,\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areOwnPropsEqual?: (\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areStatePropsEqual?: (\n    nextStateProps: TStateProps,\n    prevStateProps: TStateProps,\n  ) => boolean\n  areMergedPropsEqual?: (\n    nextMergedProps: TMergedProps,\n    prevMergedProps: TMergedProps,\n  ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n  // tslint:disable:no-unnecessary-generics\n  (): InferableComponentEnhancer<DispatchProp>\n\n  /** mapState only */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n  /** mapDispatch only (as a function) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch only (as an object) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (as a function)*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (nullish) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n  /** mapState and mapDispatch (as an object) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mergeProps only */\n  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and mergeProps */\n  <\n    TStateProps = {},\n    no_dispatch = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapDispatch (as a object) and mergeProps */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and options */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n  /** mapDispatch (as a function) and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch (as an object) and options*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as a function), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as an object), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState, mapDispatch, mergeProps, and options */\n  <\n    TStateProps = {},\n    TDispatchProps = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<\n      TStateProps,\n      TDispatchProps,\n      TOwnProps,\n      TMergedProps\n    >,\n    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n  // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n  TStateProps = {},\n  TDispatchProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n  State = unknown,\n>(\n  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  {\n    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n    // @ts-ignore\n    pure,\n    areStatesEqual = strictEqual,\n    areOwnPropsEqual = shallowEqual,\n    areStatePropsEqual = shallowEqual,\n    areMergedPropsEqual = shallowEqual,\n\n    // use React's forwardRef to expose a ref of the wrapped component\n    forwardRef = false,\n\n    // the context consumer to use\n    context = ReactReduxContext,\n  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true\n      warning(\n        'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n      )\n    }\n  }\n\n  const Context = context\n\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n  const initMergeProps = mergePropsFactory(mergeProps)\n\n  const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n  const wrapWithConnect = <TProps,>(\n    WrappedComponent: ComponentType<TProps>,\n  ) => {\n    type WrappedComponentProps = TProps &\n      ConnectPropsMaybeWithoutContext<TProps>\n\n    if (process.env.NODE_ENV !== 'production') {\n      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n      if (!isValid)\n        throw new Error(\n          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n            WrappedComponent,\n          )}`,\n        )\n    }\n\n    const wrappedComponentName =\n      WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n    const displayName = `Connect(${wrappedComponentName})`\n\n    const selectorFactoryOptions: SelectorFactoryOptions<\n      any,\n      any,\n      any,\n      any,\n      State\n    > = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual,\n    }\n\n    function ConnectFunction<TOwnProps>(\n      props: InternalConnectProps & TOwnProps,\n    ) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] =\n        React.useMemo(() => {\n          // Distinguish between actual \"data\" props that were passed to the wrapper component,\n          // and values needed to control behavior (forwarded refs, alternate context instances).\n          // To maintain the wrapperProps object reference, memoize this destructuring.\n          const { reactReduxForwardedRef, ...wrapperProps } = props\n          return [props.context, reactReduxForwardedRef, wrapperProps]\n        }, [props])\n\n      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        let ResultContext = Context\n        if (propsContext?.Consumer) {\n          if (process.env.NODE_ENV !== 'production') {\n            const isValid = /*#__PURE__*/ isContextConsumer(\n              // @ts-ignore\n              <propsContext.Consumer />,\n            )\n            if (!isValid) {\n              throw new Error(\n                'You must pass a valid React context consumer as `props.context`',\n              )\n            }\n            ResultContext = propsContext\n          }\n        }\n        return ResultContext\n      }, [propsContext, Context])\n\n      // Retrieve the store and ancestor subscription via context, if available\n      const contextValue = React.useContext(ContextToUse)\n\n      // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n      const didStoreComeFromProps =\n        Boolean(props.store) &&\n        Boolean(props.store!.getState) &&\n        Boolean(props.store!.dispatch)\n      const didStoreComeFromContext =\n        Boolean(contextValue) && Boolean(contextValue!.store)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        !didStoreComeFromProps &&\n        !didStoreComeFromContext\n      ) {\n        throw new Error(\n          `Could not find \"store\" in the context of ` +\n            `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n            `or pass a custom React context provider to <Provider> and the corresponding ` +\n            `React context consumer to ${displayName} in connect options.`,\n        )\n      }\n\n      // Based on the previous check, one of these must be true\n      const store: Store = didStoreComeFromProps\n        ? props.store!\n        : contextValue!.store\n\n      const getServerState = didStoreComeFromContext\n        ? contextValue!.getServerState\n        : store.getState\n\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n      }, [store])\n\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n        // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n        const subscription = createSubscription(\n          store,\n          didStoreComeFromProps ? undefined : contextValue!.subscription,\n        )\n\n        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n        const notifyNestedSubs =\n          subscription.notifyNestedSubs.bind(subscription)\n\n        return [subscription, notifyNestedSubs]\n      }, [store, didStoreComeFromProps, contextValue])\n\n      // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue!\n        }\n\n        // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n        return {\n          ...contextValue,\n          subscription,\n        } as ReactReduxContextValue\n      }, [didStoreComeFromProps, contextValue, subscription])\n\n      // Set up refs to coordinate values between the subscription effect and the render logic\n      const lastChildProps = React.useRef<unknown>(undefined)\n      const lastWrapperProps = React.useRef(wrapperProps)\n      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n      const renderIsScheduled = React.useRef(false)\n      const isMounted = React.useRef(false)\n\n      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n       */\n      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n        undefined,\n      )\n\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true\n        return () => {\n          isMounted.current = false\n        }\n      }, [])\n\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (\n            childPropsFromStoreUpdate.current &&\n            wrapperProps === lastWrapperProps.current\n          ) {\n            return childPropsFromStoreUpdate.current\n          }\n\n          // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n          return childPropsSelector(store.getState(), wrapperProps)\n        }\n        return selector\n      }, [store, wrapperProps])\n\n      // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = (reactListener: () => void) => {\n          if (!subscription) {\n            return () => {}\n          }\n\n          return subscribeUpdates(\n            shouldHandleStateChanges,\n            store,\n            subscription,\n            // @ts-ignore\n            childPropsSelector,\n            lastWrapperProps,\n            lastChildProps,\n            renderIsScheduled,\n            isMounted,\n            childPropsFromStoreUpdate,\n            notifyNestedSubs,\n            reactListener,\n          )\n        }\n\n        return subscribe\n      }, [subscription])\n\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n        lastWrapperProps,\n        lastChildProps,\n        renderIsScheduled,\n        wrapperProps,\n        childPropsFromStoreUpdate,\n        notifyNestedSubs,\n      ])\n\n      let actualChildProps: Record<string, unknown>\n\n      try {\n        actualChildProps = React.useSyncExternalStore(\n          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n          subscribeForReact,\n          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n          actualChildPropsSelector,\n          getServerState\n            ? () => childPropsSelector(getServerState(), wrapperProps)\n            : actualChildPropsSelector,\n        )\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          // eslint-disable-next-line no-extra-semi\n          ;(err as Error).message +=\n            `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n        }\n\n        throw err\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined\n        childPropsFromStoreUpdate.current = undefined\n        lastChildProps.current = actualChildProps\n      })\n\n      // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          // @ts-ignore\n          <WrappedComponent\n            {...actualChildProps}\n            ref={reactReduxForwardedRef}\n          />\n        )\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n      // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return (\n            <ContextToUse.Provider value={overriddenContextValue}>\n              {renderedWrappedComponent}\n            </ContextToUse.Provider>\n          )\n        }\n\n        return renderedWrappedComponent\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n      return renderedChild\n    }\n\n    const _Connect = React.memo(ConnectFunction)\n\n    type ConnectedWrapperComponent = typeof _Connect & {\n      WrappedComponent: typeof WrappedComponent\n    }\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect as unknown as ConnectedComponent<\n      typeof WrappedComponent,\n      WrappedComponentProps\n    >\n    Connect.WrappedComponent = WrappedComponent\n    Connect.displayName = ConnectFunction.displayName = displayName\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(\n        function forwardConnectRef(props, ref) {\n          // @ts-ignore\n          return <Connect {...props} reactReduxForwardedRef={ref} />\n        },\n      )\n\n      const forwarded = _forwarded as ConnectedWrapperComponent\n      forwarded.displayName = displayName\n      forwarded.WrappedComponent = WrappedComponent\n      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n    }\n\n    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n  }\n\n  return wrapWithConnect\n}\n\nexport default connect as Connect\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import connect from './components/connect'\nexport type {\n  Connect,\n  ConnectProps,\n  ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n  MapDispatchToProps,\n  MapDispatchToPropsFactory,\n  MapDispatchToPropsFunction,\n  MapDispatchToPropsNonObject,\n  MapDispatchToPropsParam,\n  MapStateToProps,\n  MapStateToPropsFactory,\n  MapStateToPropsParam,\n  MergeProps,\n  Selector,\n  SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,WAAW;;;ACQhB,IAAM,cAA8B,sBAAM,QAAQ,WAAW,IAAI;AAExE,IAAM,qBAAqC,uBAAO;AAAA,EAChD,cAAc,+BAA+B;AAC/C;AACA,IAAM,oBAAoC,uBAAO,IAAI,cAAc;AACnE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,qBAAqC,uBAAO,IAAI,eAAe;AACrE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,2BAA2C,uBAAO;AAAA,EACtD;AACF;AACA,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,uBAAuC,uBAAO,IAAI,iBAAiB;AACzE,IAAM,yBAAyC,uBAAO;AAAA,EACpD;AACF;AAEO,IAAM,aAAa;AACnB,IAAM,OAAO;AAEb,SAAS,mBAAmB,MAAgC;AACjE,SAAO,OAAO,SAAS,YACrB,OAAO,SAAS,cAChB,SAAS,uBACT,SAAS,uBACT,SAAS,0BACT,SAAS,uBACT,SAAS,4BACT,SAAS,wBACR,OAAO,SAAS,YACf,SAAS,SACR,KAAK,aAAa,mBACjB,KAAK,aAAa,mBAClB,KAAK,aAAa,sBAClB,KAAK,aAAa,uBAClB,KAAK,aAAa,0BAClB,KAAK,aAAa,0BAClB,KAAK,gBAAgB,UACvB,OACA;AACN;AAEA,SAAS,OAAO,QAAiC;AAC/C,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,UAAM,EAAE,SAAS,IAAI;AAErB,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,gBAAU,SAAS,OAAO,MAAO,QAAS;AAAA,UACxC,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT;AACE,oBAAU,SAAS,UAAU,OAAO,UAAW,QAAS;AAAA,cACtD,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cACT,KAAK;AACH,uBAAO;AAAA,cACT;AACE,uBAAO;AAAA,YACX;AAAA,QACJ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,IACX;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,QAAqC;AACrE,SAAO,cACH,OAAO,MAAM,MAAM,sBACnB,OAAO,MAAM,MAAM;AACzB;AAEO,SAAS,OAAO,QAAiD;AACtE,SAAO,OAAO,MAAM,MAAM;AAC5B;;;AC1Fe,SAAR,QAAyB,SAAiB;AAE/C,MAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACzE,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,MAAI;AAIF,UAAM,IAAI,MAAM,OAAO;AAAA,EAEzB,SAAS,GAAG;AAAA,EAAC;AAEf;;;AClBA,SAAS,OAAO,UAAmB,YAA0B;AAC3D,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,wBAAwB,UAAU,cAAc;AAAA,EAClE,WACE,eAAe,qBACf,eAAe,sBACf;AACA,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,mBAAmB,GAAG;AACxE;AAAA,QACE,oBAAoB,UAAU;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;AAEe,SAAR,mBACL,iBACA,oBACA,YACM;AACN,SAAO,iBAAiB,iBAAiB;AACzC,SAAO,oBAAoB,oBAAoB;AAC/C,SAAO,YAAY,YAAY;AACjC;;;ACyCA,SAAS,8BAOP,iBACA,oBACA,YACA,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,GACA;AACA,MAAI,oBAAoB;AACxB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,WAAS,gBAAgB,YAAmB,eAA0B;AACpE,YAAQ;AACR,eAAW;AACX,iBAAa,gBAAgB,OAAO,QAAQ;AAC5C,oBAAgB,mBAAmB,UAAU,QAAQ;AACrD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,wBAAoB;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,4BAA4B;AACnC,iBAAa,gBAAgB,OAAO,QAAQ;AAE5C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,QAAI,gBAAgB;AAClB,mBAAa,gBAAgB,OAAO,QAAQ;AAE9C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,UAAM,iBAAiB,gBAAgB,OAAO,QAAQ;AACtD,UAAM,oBAAoB,CAAC,mBAAmB,gBAAgB,UAAU;AACxE,iBAAa;AAEb,QAAI;AACF,oBAAc,WAAW,YAAY,eAAe,QAAQ;AAE9D,WAAO;AAAA,EACT;AAEA,WAAS,sBAAsB,WAAkB,cAAyB;AACxE,UAAM,eAAe,CAAC,iBAAiB,cAAc,QAAQ;AAC7D,UAAM,eAAe,CAAC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,YAAQ;AACR,eAAW;AAEX,QAAI,gBAAgB,aAAc,QAAO,0BAA0B;AACnE,QAAI,aAAc,QAAO,eAAe;AACxC,QAAI,aAAc,QAAO,eAAe;AACxC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,uBACd,WACA,cACA;AACA,WAAO,oBACH,sBAAsB,WAAW,YAAY,IAC7C,gBAAgB,WAAW,YAAY;AAAA,EAC7C;AACF;AAgDe,SAAR,0BAOL,UACA,IAYA;AAZA,eACE;AAAA;AAAA,IACA;AAAA,IACA;AAAA,EAxNJ,IAqNE,IAIK,oBAJL,IAIK;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAUF,QAAM,kBAAkB,oBAAoB,UAAU,OAAO;AAC7D,QAAM,qBAAqB,uBAAuB,UAAU,OAAO;AACnE,QAAM,aAAa,eAAe,UAAU,OAAO;AAEnD,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,uBAAmB,iBAAiB,oBAAoB,UAAU;AAAA,EACpE;AAEA,SAAO,8BAML,iBAAiB,oBAAoB,YAAY,UAAU,OAAO;AACtE;;;AC/Oe,SAAR,mBACL,gBACA,UACyB;AACzB,QAAM,sBAA+C,CAAC;AAEtD,aAAW,OAAO,gBAAgB;AAChC,UAAM,gBAAgB,eAAe,GAAG;AACxC,QAAI,OAAO,kBAAkB,YAAY;AACvC,0BAAoB,GAAG,IAAI,IAAI,SAAS,SAAS,cAAc,GAAG,IAAI,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AACT;;;ACXe,SAAR,cAA+B,KAAc;AAClD,MAAI,OAAO,QAAQ,YAAY,QAAQ,KAAM,QAAO;AAEpD,QAAM,QAAQ,OAAO,eAAe,GAAG;AACvC,MAAI,UAAU,KAAM,QAAO;AAE3B,MAAI,YAAY;AAChB,SAAO,OAAO,eAAe,SAAS,MAAM,MAAM;AAChD,gBAAY,OAAO,eAAe,SAAS;AAAA,EAC7C;AAEA,SAAO,UAAU;AACnB;;;ACbe,SAAR,kBACL,OACA,aACA,YACA;AACA,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB;AAAA,MACE,GAAG,UAAU,SAAS,WAAW,iDAAiD,KAAK;AAAA,IACzF;AAAA,EACF;AACF;;;ACGO,SAAS,uBAMd,aAOA;AACA,SAAO,SAAS,qBAAqB,UAAoB;AACvD,UAAM,WAAW,YAAY,QAAQ;AAErC,aAAS,mBAAmB;AAC1B,aAAO;AAAA,IACT;AACA,qBAAiB,oBAAoB;AACrC,WAAO;AAAA,EACT;AACF;AAUA,SAAS,qBAAqB,YAAwB;AACpD,SAAO,WAAW,oBACd,QAAQ,WAAW,iBAAiB,IACpC,WAAW,WAAW;AAC5B;AAcO,SAAS,mBACd,YACA,YACA;AACA,SAAO,SAAS,kBACd,UACA,EAAE,YAAY,GACd;AACA,UAAM,QAAQ,SAAS,gBACrB,iBACA,UACY;AACZ,aAAO,MAAM,oBACT,MAAM,WAAW,iBAAiB,QAAQ,IAC1C,MAAM,WAAW,iBAAiB,MAAS;AAAA,IACjD;AAGA,UAAM,oBAAoB;AAE1B,UAAM,aAAa,SAAS,uBAC1B,iBACA,UACY;AACZ,YAAM,aAAa;AACnB,YAAM,oBAAoB,qBAAqB,UAAU;AACzD,UAAI,QAAQ,MAAM,iBAAiB,QAAQ;AAE3C,UAAI,OAAO,UAAU,YAAY;AAC/B,cAAM,aAAa;AACnB,cAAM,oBAAoB,qBAAqB,KAAK;AACpD,gBAAQ,MAAM,iBAAiB,QAAQ;AAAA,MACzC;AAEA,UAAI,QAAQ,IAAI,aAAa;AAC3B,0BAAkB,OAAO,aAAa,UAAU;AAElD,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AACF;;;AC3GO,SAAS,wBAAwB,KAAc,MAAc;AAClE,SAAO,CACL,UACA,YACG;AACH,UAAM,IAAI;AAAA,MACR,yBAAyB,OAAO,GAAG,QAAQ,IAAI,uCAC7C,QAAQ,oBACV;AAAA,IACF;AAAA,EACF;AACF;;;ACPO,SAAS,0BACd,oBAGA;AACA,SAAO,sBAAsB,OAAO,uBAAuB,WACvD;AAAA,IAAuB,CAAC;AAAA;AAAA,MAEtB,mBAAmB,oBAAoB,QAAQ;AAAA;AAAA,EACjD,IACA,CAAC,qBACC,uBAAuB,CAAC,cAAwC;AAAA,IAC9D;AAAA,EACF,EAAE,IACF,OAAO,uBAAuB;AAAA;AAAA,IAE5B,mBAAmB,oBAAoB,oBAAoB;AAAA,MAC3D,wBAAwB,oBAAoB,oBAAoB;AAC1E;;;ACpBO,SAAS,uBACd,iBACA;AACA,SAAO,CAAC,kBACJ,uBAAuB,OAAO,CAAC,EAAE,IACjC,OAAO,oBAAoB;AAAA;AAAA,IAEzB,mBAAmB,iBAAiB,iBAAiB;AAAA,MACrD,wBAAwB,iBAAiB,iBAAiB;AAClE;;;ACPA,SAAS,kBAMP,YACA,eACA,UACc;AAEd,SAAO,iDAAK,WAAa,aAAe;AAC1C;AAEA,SAAS,mBAMP,YAOoE;AACpE,SAAO,SAAS,oBACd,UACA,EAAE,aAAa,oBAAoB,GACnC;AACA,QAAI,aAAa;AACjB,QAAI;AAEJ,WAAO,SAAS,gBACd,YACA,eACA,UACA;AACA,YAAM,kBAAkB,WAAW,YAAY,eAAe,QAAQ;AAEtE,UAAI,YAAY;AACd,YAAI,CAAC,oBAAoB,iBAAiB,WAAW;AACnD,wBAAc;AAAA,MAClB,OAAO;AACL,qBAAa;AACb,sBAAc;AAEd,YAAI,QAAQ,IAAI,aAAa;AAC3B,4BAAkB,aAAa,aAAa,YAAY;AAAA,MAC5D;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,SAAS,kBAMd,YACA;AACA,SAAO,CAAC,aACJ,MAAM,oBACN,OAAO,eAAe,aACpB,mBAAmB,UAAU,IAC7B,wBAAwB,YAAY,YAAY;AACxD;;;AC5EO,SAAS,iBAAiB,UAAsB;AACrD,WAAS;AACX;;;ACWA,SAAS,2BAA2B;AAClC,MAAI,QAAyB;AAC7B,MAAI,OAAwB;AAE5B,SAAO;AAAA,IACL,QAAQ;AACN,cAAQ;AACR,aAAO;AAAA,IACT;AAAA,IAEA,SAAS;AACP,uBAAM,MAAM;AACV,YAAI,WAAW;AACf,eAAO,UAAU;AACf,mBAAS,SAAS;AAClB,qBAAW,SAAS;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,MAAM;AACJ,YAAM,YAAwB,CAAC;AAC/B,UAAI,WAAW;AACf,aAAO,UAAU;AACf,kBAAU,KAAK,QAAQ;AACvB,mBAAW,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AAAA,IAEA,UAAU,UAAsB;AAC9B,UAAI,eAAe;AAEnB,YAAM,WAAsB,OAAO;AAAA,QACjC;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAEA,UAAI,SAAS,MAAM;AACjB,iBAAS,KAAK,OAAO;AAAA,MACvB,OAAO;AACL,gBAAQ;AAAA,MACV;AAEA,aAAO,SAAS,cAAc;AAC5B,YAAI,CAAC,gBAAgB,UAAU,KAAM;AACrC,uBAAe;AAEf,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,iBAAO,SAAS;AAAA,QAClB;AACA,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,kBAAQ,SAAS;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAeA,IAAM,gBAAgB;AAAA,EACpB,SAAS;AAAA,EAAC;AAAA,EACV,KAAK,MAAM,CAAC;AACd;AAEO,SAAS,mBAAmB,OAAY,WAA0B;AACvE,MAAI;AACJ,MAAI,YAAgC;AAGpC,MAAI,sBAAsB;AAG1B,MAAI,iBAAiB;AAErB,WAAS,aAAa,UAAsB;AAC1C,iBAAa;AAEb,UAAM,kBAAkB,UAAU,UAAU,QAAQ;AAGpD,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,CAAC,SAAS;AACZ,kBAAU;AACV,wBAAgB;AAChB,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,cAAU,OAAO;AAAA,EACnB;AAEA,WAAS,sBAAsB;AAC7B,QAAI,aAAa,eAAe;AAC9B,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAEA,WAAS,eAAe;AACtB,WAAO;AAAA,EACT;AAEA,WAAS,eAAe;AACtB;AACA,QAAI,CAAC,aAAa;AAChB,oBAAc,YACV,UAAU,aAAa,mBAAmB,IAC1C,MAAM,UAAU,mBAAmB;AAEvC,kBAAY,yBAAyB;AAAA,IACvC;AAAA,EACF;AAEA,WAAS,iBAAiB;AACxB;AACA,QAAI,eAAe,wBAAwB,GAAG;AAC5C,kBAAY;AACZ,oBAAc;AACd,gBAAU,MAAM;AAChB,kBAAY;AAAA,IACd;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,QAAI,CAAC,gBAAgB;AACnB,uBAAiB;AACjB,mBAAa;AAAA,IACf;AAAA,EACF;AAEA,WAAS,qBAAqB;AAC5B,QAAI,gBAAgB;AAClB,uBAAiB;AACjB,qBAAe;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,eAA6B;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,cAAc,MAAM;AAAA,EACtB;AAEA,SAAO;AACT;;;AC1KA,IAAM,YAAY,MAChB,CAAC,EACC,OAAO,WAAW,eAClB,OAAO,OAAO,aAAa,eAC3B,OAAO,OAAO,SAAS,kBAAkB;AAG7C,IAAM,QAAwB,0BAAU;AAWxC,IAAM,yBAAyB,MAC7B,OAAO,cAAc,eAAe,UAAU,YAAY;AAE5D,IAAM,gBAAgC,uCAAuB;AAE7D,IAAM,+BAA+B,MACnC,SAAS,gBAAgB,MAAM,kBAAkB,MAAM;AAElD,IAAM,4BACK,6CAA6B;;;ACvC/C,SAAS,GAAG,GAAY,GAAY;AAClC,MAAI,MAAM,GAAG;AACX,WAAO,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EAC7C,OAAO;AACL,WAAO,MAAM,KAAK,MAAM;AAAA,EAC1B;AACF;AAEe,SAAR,aAA8B,MAAW,MAAW;AACzD,MAAI,GAAG,MAAM,IAAI,EAAG,QAAO;AAE3B,MACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,MACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,QAAM,QAAQ,OAAO,KAAK,IAAI;AAE9B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAE1C,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,CAAC,CAAC,KACpD,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAClC;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;;;ACxBA,IAAM,gBAAgB;AAAA,EACpB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AACT;AAEA,IAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,eAAe;AAAA,EACnB,CAAC,UAAU,GAAG;AAAA,EACd,CAAC,IAAI,GAAG;AACV;AAEA,SAAS,WAAW,WAAgB;AAElC,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AAGA,SAAO,aAAa,UAAU,UAAU,CAAC,KAAK;AAChD;AAkBA,IAAM,iBAAiB,OAAO;AAC9B,IAAM,sBAAsB,OAAO;AACnC,IAAM,wBAAwB,OAAO;AACrC,IAAM,2BAA2B,OAAO;AACxC,IAAM,iBAAiB,OAAO;AAC9B,IAAM,kBAAkB,OAAO;AAEhB,SAAR,qBAOL,iBACA,iBACgD;AAChD,MAAI,OAAO,oBAAoB,UAAU;AAGvC,QAAI,iBAAiB;AACnB,YAAM,qBAAqB,eAAe,eAAe;AACzD,UAAI,sBAAsB,uBAAuB,iBAAiB;AAChE,6BAAqB,iBAAiB,kBAAkB;AAAA,MAC1D;AAAA,IACF;AAEA,QAAI,OAA4B,oBAAoB,eAAe;AAEnE,QAAI,uBAAuB;AACzB,aAAO,KAAK,OAAO,sBAAsB,eAAe,CAAC;AAAA,IAC3D;AAEA,UAAM,gBAAgB,WAAW,eAAe;AAChD,UAAM,gBAAgB,WAAW,eAAe;AAEhD,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,UACE,CAAC,cAAc,GAAiC,KAChD,EAAE,iBAAiB,cAAc,GAAiC,MAClE,EAAE,iBAAiB,cAAc,GAAiC,IAClE;AACA,cAAM,aAAa,yBAAyB,iBAAiB,GAAG;AAChE,YAAI;AAEF,yBAAe,iBAAiB,KAAK,UAAW;AAAA,QAClD,SAAS,GAAG;AAAA,QAEZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;AC3HA,IAAM,aAA6B,uBAAO,IAAI,qBAAqB;AACnE,IAAM,KAMJ,OAAO,eAAe,cAClB;AAAA;AAAA,EAC2F,CAAC;AAAA;AAGlG,SAAS,aAAqD;AA3B9D;AA4BE,MAAI,CAAC,MAAM,cAAe,QAAO,CAAC;AAElC,QAAM,cAAc,qDAAmB,oBAAI,IAGzC;AACF,MAAI,cAAc,WAAW,IAAI,MAAM,aAAa;AACpD,MAAI,CAAC,aAAa;AAChB,kBAAc,MAAM;AAAA,MAClB;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAY,cAAc;AAAA,IAC5B;AACA,eAAW,IAAI,MAAM,eAAe,WAAW;AAAA,EACjD;AACA,SAAO;AACT;AAEO,IAAM,oBAAkC,2BAAW;;;ACJ1D,IAAM,wBAAwB,CAAC,MAAM,IAAI;AAIzC,IAAM,qBAAqB,CAAC,SAAkB;AAC5C,MAAI;AACF,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B,SAAS,KAAK;AACZ,WAAO,OAAO,IAAI;AAAA,EACpB;AACF;AAQA,SAAS,kCACP,YACA,YACA,cACA;AACA,4BAA0B,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY;AACzE;AAGA,SAAS,oBACP,kBACA,gBACA,mBACA,cAEA,2BACA,kBACA;AAEA,mBAAiB,UAAU;AAC3B,oBAAkB,UAAU;AAG5B,MAAI,0BAA0B,SAAS;AACrC,8BAA0B,UAAU;AACpC,qBAAiB;AAAA,EACnB;AACF;AAIA,SAAS,iBACP,0BACA,OACA,cACA,oBACA,kBACA,gBACA,mBACA,WACA,2BACA,kBAEA,6BACA;AAEA,MAAI,CAAC,yBAA0B,QAAO,MAAM;AAAA,EAAC;AAG7C,MAAI,iBAAiB;AACrB,MAAI,kBAAgC;AAGpC,QAAM,kBAAkB,MAAM;AAC5B,QAAI,kBAAkB,CAAC,UAAU,SAAS;AAGxC;AAAA,IACF;AAGA,UAAM,mBAAmB,MAAM,SAAS;AAExC,QAAI,eAAe;AACnB,QAAI;AAGF,sBAAgB;AAAA,QACd;AAAA,QACA,iBAAiB;AAAA,MACnB;AAAA,IACF,SAAS,GAAG;AACV,cAAQ;AACR,wBAAkB;AAAA,IACpB;AAEA,QAAI,CAAC,OAAO;AACV,wBAAkB;AAAA,IACpB;AAGA,QAAI,kBAAkB,eAAe,SAAS;AAC5C,UAAI,CAAC,kBAAkB,SAAS;AAC9B,yBAAiB;AAAA,MACnB;AAAA,IACF,OAAO;AAKL,qBAAe,UAAU;AACzB,gCAA0B,UAAU;AACpC,wBAAkB,UAAU;AAI5B,kCAA4B;AAAA,IAC9B;AAAA,EACF;AAGA,eAAa,gBAAgB;AAC7B,eAAa,aAAa;AAI1B,kBAAgB;AAEhB,QAAM,qBAAqB,MAAM;AAC/B,qBAAiB;AACjB,iBAAa,eAAe;AAC5B,iBAAa,gBAAgB;AAE7B,QAAI,iBAAiB;AAMnB,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;AAgBA,SAAS,YAAY,GAAY,GAAY;AAC3C,SAAO,MAAM;AACf;AAmNA,IAAI,qCAAqC;AAsBzC,SAAS,QAOP,iBACA,oBACA,YACA;AAAA;AAAA;AAAA,EAGE;AAAA,EACA,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA;AAAA,EAGtB,aAAa;AAAA;AAAA,EAGb,UAAU;AACZ,IAAwD,CAAC,GAChD;AACT,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,SAAS,UAAa,CAAC,oCAAoC;AAC7D,2CAAqC;AACrC;AAAA,QACE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU;AAEhB,QAAM,sBAAsB,uBAAuB,eAAe;AAClE,QAAM,yBAAyB,0BAA0B,kBAAkB;AAC3E,QAAM,iBAAiB,kBAAkB,UAAU;AAEnD,QAAM,2BAA2B,QAAQ,eAAe;AAExD,QAAM,kBAAkB,CACtB,qBACG;AAIH,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAM,UAAwB,mCAAmB,gBAAgB;AACjE,UAAI,CAAC;AACH,cAAM,IAAI;AAAA,UACR,mFAAmF;AAAA,YACjF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,IACJ;AAEA,UAAM,uBACJ,iBAAiB,eAAe,iBAAiB,QAAQ;AAE3D,UAAM,cAAc,WAAW,oBAAoB;AAEnD,UAAM,yBAMF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,gBACP,OACA;AACA,YAAM,CAAC,cAAc,wBAAwB,YAAY,IACvD,MAAM,QAAQ,MAAM;AAIlB,cAAoD,YAA5C,0BAAAA,wBAjhBlB,IAihB8D,IAAjBC,gBAAA,UAAiB,IAAjB,CAA3B;AACR,eAAO,CAAC,MAAM,SAASD,yBAAwBC,aAAY;AAAA,MAC7D,GAAG,CAAC,KAAK,CAAC;AAEZ,YAAM,eAA0C,MAAM,QAAQ,MAAM;AAGlE,YAAI,gBAAgB;AACpB,YAAI,6CAAc,UAAU;AAC1B,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAM,UAAwB;AAAA;AAAA,cAE5B,oCAAC,aAAa,UAAb,IAAsB;AAAA,YACzB;AACA,gBAAI,CAAC,SAAS;AACZ,oBAAM,IAAI;AAAA,gBACR;AAAA,cACF;AAAA,YACF;AACA,4BAAgB;AAAA,UAClB;AAAA,QACF;AACA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,OAAO,CAAC;AAG1B,YAAM,eAAe,MAAM,WAAW,YAAY;AAKlD,YAAM,wBACJ,QAAQ,MAAM,KAAK,KACnB,QAAQ,MAAM,MAAO,QAAQ,KAC7B,QAAQ,MAAM,MAAO,QAAQ;AAC/B,YAAM,0BACJ,QAAQ,YAAY,KAAK,QAAQ,aAAc,KAAK;AAEtD,UACE,QAAQ,IAAI,aAAa,gBACzB,CAAC,yBACD,CAAC,yBACD;AACA,cAAM,IAAI;AAAA,UACR,6CACM,WAAW,4JAEc,WAAW;AAAA,QAC5C;AAAA,MACF;AAGA,YAAM,QAAe,wBACjB,MAAM,QACN,aAAc;AAElB,YAAM,iBAAiB,0BACnB,aAAc,iBACd,MAAM;AAEV,YAAM,qBAAqB,MAAM,QAAQ,MAAM;AAG7C,eAAO,0BAAuB,MAAM,UAAU,sBAAsB;AAAA,MACtE,GAAG,CAAC,KAAK,CAAC;AAEV,YAAM,CAAC,cAAc,gBAAgB,IAAI,MAAM,QAAQ,MAAM;AAC3D,YAAI,CAAC,yBAA0B,QAAO;AAItC,cAAMC,gBAAe;AAAA,UACnB;AAAA,UACA,wBAAwB,SAAY,aAAc;AAAA,QACpD;AAMA,cAAMC,oBACJD,cAAa,iBAAiB,KAAKA,aAAY;AAEjD,eAAO,CAACA,eAAcC,iBAAgB;AAAA,MACxC,GAAG,CAAC,OAAO,uBAAuB,YAAY,CAAC;AAI/C,YAAM,yBAAyB,MAAM,QAAQ,MAAM;AACjD,YAAI,uBAAuB;AAIzB,iBAAO;AAAA,QACT;AAIA,eAAO,iCACF,eADE;AAAA,UAEL;AAAA,QACF;AAAA,MACF,GAAG,CAAC,uBAAuB,cAAc,YAAY,CAAC;AAGtD,YAAM,iBAAiB,MAAM,OAAgB,MAAS;AACtD,YAAM,mBAAmB,MAAM,OAAO,YAAY;AAClD,YAAM,4BAA4B,MAAM,OAAgB,MAAS;AACjE,YAAM,oBAAoB,MAAM,OAAO,KAAK;AAC5C,YAAM,YAAY,MAAM,OAAO,KAAK;AAMpC,YAAM,kCAAkC,MAAM;AAAA,QAC5C;AAAA,MACF;AAEA,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AACpB,eAAO,MAAM;AACX,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF,GAAG,CAAC,CAAC;AAEL,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD,cAAM,WAAW,MAAM;AAOrB,cACE,0BAA0B,WAC1B,iBAAiB,iBAAiB,SAClC;AACA,mBAAO,0BAA0B;AAAA,UACnC;AAMA,iBAAO,mBAAmB,MAAM,SAAS,GAAG,YAAY;AAAA,QAC1D;AACA,eAAO;AAAA,MACT,GAAG,CAAC,OAAO,YAAY,CAAC;AAMxB,YAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,cAAM,YAAY,CAAC,kBAA8B;AAC/C,cAAI,CAAC,cAAc;AACjB,mBAAO,MAAM;AAAA,YAAC;AAAA,UAChB;AAEA,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,CAAC;AAEjB,wCAAkC,qBAAqB;AAAA,QACrD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,UAAI;AAEJ,UAAI;AACF,2BAAmB,MAAM;AAAA;AAAA,UAEvB;AAAA;AAAA;AAAA,UAGA;AAAA,UACA,iBACI,MAAM,mBAAmB,eAAe,GAAG,YAAY,IACvD;AAAA,QACN;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,gCAAgC,SAAS;AAE3C;AAAC,UAAC,IAAc,WACd;AAAA;AAAA,EAA4D,gCAAgC,QAAQ,KAAK;AAAA;AAAA;AAAA,QAC7G;AAEA,cAAM;AAAA,MACR;AAEA,gCAA0B,MAAM;AAC9B,wCAAgC,UAAU;AAC1C,kCAA0B,UAAU;AACpC,uBAAe,UAAU;AAAA,MAC3B,CAAC;AAID,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD;AAAA;AAAA,UAEE;AAAA,YAAC;AAAA,6CACK,mBADL;AAAA,cAEC,KAAK;AAAA;AAAA,UACP;AAAA;AAAA,MAEJ,GAAG,CAAC,wBAAwB,kBAAkB,gBAAgB,CAAC;AAI/D,YAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,YAAI,0BAA0B;AAI5B,iBACE,oCAAC,aAAa,UAAb,EAAsB,OAAO,0BAC3B,wBACH;AAAA,QAEJ;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,0BAA0B,sBAAsB,CAAC;AAEnE,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe;AAO3C,UAAM,UAAU;AAIhB,YAAQ,mBAAmB;AAC3B,YAAQ,cAAc,gBAAgB,cAAc;AAEpD,QAAI,YAAY;AACd,YAAM,aAAa,MAAM;AAAA,QACvB,SAAS,kBAAkB,OAAO,KAAK;AAErC,iBAAO,oCAAC,0CAAY,QAAZ,EAAmB,wBAAwB,MAAK;AAAA,QAC1D;AAAA,MACF;AAEA,YAAM,YAAY;AAClB,gBAAU,cAAc;AACxB,gBAAU,mBAAmB;AAC7B,aAAqB,qCAAa,WAAW,gBAAgB;AAAA,IAC/D;AAEA,WAAqB,qCAAa,SAAS,gBAAgB;AAAA,EAC7D;AAEA,SAAO;AACT;AAEA,IAAO,kBAAQ;;;ACpvBf,SAAS,SACP,eACA;AACA,QAAM,EAAE,UAAU,SAAS,aAAa,MAAM,IAAI;AAElD,QAAM,eAAe,MAAM,QAAQ,MAAM;AACvC,UAAM,eAAe,mBAAmB,KAAK;AAE7C,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA,gBAAgB,cAAc,MAAM,cAAc;AAAA,IACpD;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO;AAAA,IACT,OAAO;AACL,YAAM,EAAE,wBAAwB,QAAQ,iBAAiB,OAAO,IAC9D;AAEF,aAAuB,uBAAO,OAAO,kBAAkB;AAAA,QACrD;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,OAAO,WAAW,CAAC;AAEvB,QAAM,gBAAgB,MAAM,QAAQ,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC;AAEnE,4BAA0B,MAAM;AAC9B,UAAM,EAAE,aAAa,IAAI;AACzB,iBAAa,gBAAgB,aAAa;AAC1C,iBAAa,aAAa;AAE1B,QAAI,kBAAkB,MAAM,SAAS,GAAG;AACtC,mBAAa,iBAAiB;AAAA,IAChC;AACA,WAAO,MAAM;AACX,mBAAa,eAAe;AAC5B,mBAAa,gBAAgB;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,cAAc,aAAa,CAAC;AAEhC,QAAM,UAAU,WAAW;AAE3B,SAAO,oCAAC,QAAQ,UAAR,EAAiB,OAAO,gBAAe,QAAS;AAC1D;AAEA,IAAO,mBAAQ;;;AC7FR,SAAS,uBAAuB,UAAU,mBAAmB;AAClE,SAAO,SAASC,mBAA0C;AACxD,UAAM,eAAe,MAAM,WAAW,OAAO;AAE7C,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,cAAc;AAC1D,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAkBO,IAAM,kBAAgC,uCAAuB;;;ACuC7D,SAAS,gBAKd,UAGY,mBACZ;AACA,QAAMC,mBACJ,YAAY,oBACR;AAAA;AAAA,IAEA,uBAAuB,OAAO;AAAA;AACpC,QAAMC,YAAW,MAAM;AACrB,UAAM,EAAE,MAAM,IAAID,iBAAgB;AAClC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,WAAU;AAAA,IACtB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAiBO,IAAM,WAAyB,gCAAgB;;;ACjE/C,SAAS,mBAKd,UAGY,mBACZ;AACA,QAAMC,YACJ,YAAY,oBAAoB,WAAkB,gBAAgB,OAAO;AAE3E,QAAMC,eAAc,MAAM;AACxB,UAAM,QAAQD,UAAS;AACvB,WAAO,MAAM;AAAA,EACf;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAuBO,IAAM,cAA4B,mCAAmB;;;ACrG5D,SAAS,wCAAwC;AAoHjD,IAAM,cAA+B,CAAC,GAAG,MAAM,MAAM;AAQ9C,SAAS,mBACd,UAGY,mBACC;AACb,QAAMC,mBACJ,YAAY,oBACR,kBACA,uBAAuB,OAAO;AAEpC,QAAMC,eAAc,CAClB,UACA,sBAE4C,CAAC,MAChC;AACb,UAAM,EAAE,aAAa,YAAY,IAC/B,OAAO,wBAAwB,aAC3B,EAAE,YAAY,oBAAoB,IAClC;AACN,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AACA,UAAI,OAAO,aAAa,YAAY;AAClC,cAAM,IAAI,MAAM,uDAAuD;AAAA,MACzE;AACA,UAAI,OAAO,eAAe,YAAY;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eAAeD,iBAAgB;AAErC,UAAM,EAAE,OAAO,cAAc,eAAe,IAAI;AAEhD,UAAM,WAAW,MAAM,OAAO,IAAI;AAElC,UAAM,kBAAkB,MAAM;AAAA,MAC5B;AAAA,QACE,CAAC,SAAS,IAAI,EAAE,OAAe;AAC7B,gBAAM,WAAW,SAAS,KAAK;AAC/B,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAM,EAAE,gBAAgB,CAAC,EAAE,IACzB,OAAO,wBAAwB,aAC3B,CAAC,IACD;AACN,kBAAM,EAAE,uBAAuB,eAAe,IAAI;AAClD,kBAAM;AAAA,cACJ,uBAAuB;AAAA,cACvB,gBAAgB;AAAA,YAClB,IAAI;AAAA,cACF;AAAA,cACA;AAAA,eACG;AAEL,gBACE,wBAAwB,YACvB,wBAAwB,UAAU,SAAS,SAC5C;AACA,oBAAM,YAAY,SAAS,KAAK;AAChC,kBAAI,CAAC,WAAW,UAAU,SAAS,GAAG;AACpC,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA,WAAW;AAAA,oBACX;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AACA,gBACE,+BAA+B,YAC9B,+BAA+B,UAAU,SAAS,SACnD;AAEA,kBAAI,aAAa,OAAO;AACtB,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF,EAAE,MAAM;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AACA,gBAAI,SAAS,QAAS,UAAS,UAAU;AAAA,UAC3C;AACA,iBAAO;AAAA,QACT;AAAA,MACF,EAAE,SAAS,IAAI;AAAA,MACf,CAAC,QAAQ;AAAA,IACX;AAEA,UAAM,gBAAgB;AAAA,MACpB,aAAa;AAAA,MACb,MAAM;AAAA,MACN,kBAAkB,MAAM;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AAEA,UAAM,cAAc,aAAa;AAEjC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAyBO,IAAM,cAA4B,mCAAmB;;;AC7O5D,IAAM,QAAQ;","names":["reactReduxForwardedRef","wrapperProps","subscription","notifyNestedSubs","useReduxContext","useReduxContext","useStore","useStore","useDispatch","useReduxContext","useSelector"]}
Index: de_modules/react-redux/dist/react-redux.mjs
===================================================================
--- node_modules/react-redux/dist/react-redux.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1069 +1,0 @@
-// src/utils/react.ts
-import * as React from "react";
-
-// src/utils/react-is.ts
-var IS_REACT_19 = /* @__PURE__ */ React.version.startsWith("19");
-var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(
-  IS_REACT_19 ? "react.transitional.element" : "react.element"
-);
-var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
-var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
-var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
-var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler");
-var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer");
-var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context");
-var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
-var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense");
-var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(
-  "react.suspense_list"
-);
-var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
-var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
-var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen");
-var REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(
-  "react.client.reference"
-);
-var ForwardRef = REACT_FORWARD_REF_TYPE;
-var Memo = REACT_MEMO_TYPE;
-function isValidElementType(type) {
-  return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;
-}
-function typeOf(object) {
-  if (typeof object === "object" && object !== null) {
-    const { $$typeof } = object;
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        switch (object = object.type, object) {
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-          case REACT_SUSPENSE_LIST_TYPE:
-            return object;
-          default:
-            switch (object = object && object.$$typeof, object) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-                return object;
-              case REACT_CONSUMER_TYPE:
-                return object;
-              default:
-                return $$typeof;
-            }
-        }
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-}
-function isContextConsumer(object) {
-  return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;
-}
-function isMemo(object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/connect/verifySubselectors.ts
-function verify(selector, methodName) {
-  if (!selector) {
-    throw new Error(`Unexpected value for ${methodName} in connect.`);
-  } else if (methodName === "mapStateToProps" || methodName === "mapDispatchToProps") {
-    if (!Object.prototype.hasOwnProperty.call(selector, "dependsOnOwnProps")) {
-      warning(
-        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`
-      );
-    }
-  }
-}
-function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {
-  verify(mapStateToProps, "mapStateToProps");
-  verify(mapDispatchToProps, "mapDispatchToProps");
-  verify(mergeProps, "mergeProps");
-}
-
-// src/connect/selectorFactory.ts
-function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {
-  areStatesEqual,
-  areOwnPropsEqual,
-  areStatePropsEqual
-}) {
-  let hasRunAtLeastOnce = false;
-  let state;
-  let ownProps;
-  let stateProps;
-  let dispatchProps;
-  let mergedProps;
-  function handleFirstCall(firstState, firstOwnProps) {
-    state = firstState;
-    ownProps = firstOwnProps;
-    stateProps = mapStateToProps(state, ownProps);
-    dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    hasRunAtLeastOnce = true;
-    return mergedProps;
-  }
-  function handleNewPropsAndNewState() {
-    stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewProps() {
-    if (mapStateToProps.dependsOnOwnProps)
-      stateProps = mapStateToProps(state, ownProps);
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps);
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleNewState() {
-    const nextStateProps = mapStateToProps(state, ownProps);
-    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
-    stateProps = nextStateProps;
-    if (statePropsChanged)
-      mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-    return mergedProps;
-  }
-  function handleSubsequentCalls(nextState, nextOwnProps) {
-    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
-    const stateChanged = !areStatesEqual(
-      nextState,
-      state,
-      nextOwnProps,
-      ownProps
-    );
-    state = nextState;
-    ownProps = nextOwnProps;
-    if (propsChanged && stateChanged) return handleNewPropsAndNewState();
-    if (propsChanged) return handleNewProps();
-    if (stateChanged) return handleNewState();
-    return mergedProps;
-  }
-  return function pureFinalPropsSelector(nextState, nextOwnProps) {
-    return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
-  };
-}
-function finalPropsSelectorFactory(dispatch, {
-  initMapStateToProps,
-  initMapDispatchToProps,
-  initMergeProps,
-  ...options
-}) {
-  const mapStateToProps = initMapStateToProps(dispatch, options);
-  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
-  const mergeProps = initMergeProps(dispatch, options);
-  if (process.env.NODE_ENV !== "production") {
-    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);
-  }
-  return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
-}
-
-// src/utils/bindActionCreators.ts
-function bindActionCreators(actionCreators, dispatch) {
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null) return false;
-  const proto = Object.getPrototypeOf(obj);
-  if (proto === null) return true;
-  let baseProto = proto;
-  while (Object.getPrototypeOf(baseProto) !== null) {
-    baseProto = Object.getPrototypeOf(baseProto);
-  }
-  return proto === baseProto;
-}
-
-// src/utils/verifyPlainObject.ts
-function verifyPlainObject(value, displayName, methodName) {
-  if (!isPlainObject(value)) {
-    warning(
-      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`
-    );
-  }
-}
-
-// src/connect/wrapMapToProps.ts
-function wrapMapToPropsConstant(getConstant) {
-  return function initConstantSelector(dispatch) {
-    const constant = getConstant(dispatch);
-    function constantSelector() {
-      return constant;
-    }
-    constantSelector.dependsOnOwnProps = false;
-    return constantSelector;
-  };
-}
-function getDependsOnOwnProps(mapToProps) {
-  return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
-}
-function wrapMapToPropsFunc(mapToProps, methodName) {
-  return function initProxySelector(dispatch, { displayName }) {
-    const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
-      return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);
-    };
-    proxy.dependsOnOwnProps = true;
-    proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
-      proxy.mapToProps = mapToProps;
-      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
-      let props = proxy(stateOrDispatch, ownProps);
-      if (typeof props === "function") {
-        proxy.mapToProps = props;
-        proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
-        props = proxy(stateOrDispatch, ownProps);
-      }
-      if (process.env.NODE_ENV !== "production")
-        verifyPlainObject(props, displayName, methodName);
-      return props;
-    };
-    return proxy;
-  };
-}
-
-// src/connect/invalidArgFactory.ts
-function createInvalidArgFactory(arg, name) {
-  return (dispatch, options) => {
-    throw new Error(
-      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`
-    );
-  };
-}
-
-// src/connect/mapDispatchToProps.ts
-function mapDispatchToPropsFactory(mapDispatchToProps) {
-  return mapDispatchToProps && typeof mapDispatchToProps === "object" ? wrapMapToPropsConstant(
-    (dispatch) => (
-      // @ts-ignore
-      bindActionCreators(mapDispatchToProps, dispatch)
-    )
-  ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({
-    dispatch
-  })) : typeof mapDispatchToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapDispatchToProps, "mapDispatchToProps")
-  ) : createInvalidArgFactory(mapDispatchToProps, "mapDispatchToProps");
-}
-
-// src/connect/mapStateToProps.ts
-function mapStateToPropsFactory(mapStateToProps) {
-  return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === "function" ? (
-    // @ts-ignore
-    wrapMapToPropsFunc(mapStateToProps, "mapStateToProps")
-  ) : createInvalidArgFactory(mapStateToProps, "mapStateToProps");
-}
-
-// src/connect/mergeProps.ts
-function defaultMergeProps(stateProps, dispatchProps, ownProps) {
-  return { ...ownProps, ...stateProps, ...dispatchProps };
-}
-function wrapMergePropsFunc(mergeProps) {
-  return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {
-    let hasRunOnce = false;
-    let mergedProps;
-    return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
-      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
-      if (hasRunOnce) {
-        if (!areMergedPropsEqual(nextMergedProps, mergedProps))
-          mergedProps = nextMergedProps;
-      } else {
-        hasRunOnce = true;
-        mergedProps = nextMergedProps;
-        if (process.env.NODE_ENV !== "production")
-          verifyPlainObject(mergedProps, displayName, "mergeProps");
-      }
-      return mergedProps;
-    };
-  };
-}
-function mergePropsFactory(mergeProps) {
-  return !mergeProps ? () => defaultMergeProps : typeof mergeProps === "function" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, "mergeProps");
-}
-
-// src/utils/batch.ts
-function defaultNoopBatch(callback) {
-  callback();
-}
-
-// src/utils/Subscription.ts
-function createListenerCollection() {
-  let first = null;
-  let last = null;
-  return {
-    clear() {
-      first = null;
-      last = null;
-    },
-    notify() {
-      defaultNoopBatch(() => {
-        let listener = first;
-        while (listener) {
-          listener.callback();
-          listener = listener.next;
-        }
-      });
-    },
-    get() {
-      const listeners = [];
-      let listener = first;
-      while (listener) {
-        listeners.push(listener);
-        listener = listener.next;
-      }
-      return listeners;
-    },
-    subscribe(callback) {
-      let isSubscribed = true;
-      const listener = last = {
-        callback,
-        next: null,
-        prev: last
-      };
-      if (listener.prev) {
-        listener.prev.next = listener;
-      } else {
-        first = listener;
-      }
-      return function unsubscribe() {
-        if (!isSubscribed || first === null) return;
-        isSubscribed = false;
-        if (listener.next) {
-          listener.next.prev = listener.prev;
-        } else {
-          last = listener.prev;
-        }
-        if (listener.prev) {
-          listener.prev.next = listener.next;
-        } else {
-          first = listener.next;
-        }
-      };
-    }
-  };
-}
-var nullListeners = {
-  notify() {
-  },
-  get: () => []
-};
-function createSubscription(store, parentSub) {
-  let unsubscribe;
-  let listeners = nullListeners;
-  let subscriptionsAmount = 0;
-  let selfSubscribed = false;
-  function addNestedSub(listener) {
-    trySubscribe();
-    const cleanupListener = listeners.subscribe(listener);
-    let removed = false;
-    return () => {
-      if (!removed) {
-        removed = true;
-        cleanupListener();
-        tryUnsubscribe();
-      }
-    };
-  }
-  function notifyNestedSubs() {
-    listeners.notify();
-  }
-  function handleChangeWrapper() {
-    if (subscription.onStateChange) {
-      subscription.onStateChange();
-    }
-  }
-  function isSubscribed() {
-    return selfSubscribed;
-  }
-  function trySubscribe() {
-    subscriptionsAmount++;
-    if (!unsubscribe) {
-      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);
-      listeners = createListenerCollection();
-    }
-  }
-  function tryUnsubscribe() {
-    subscriptionsAmount--;
-    if (unsubscribe && subscriptionsAmount === 0) {
-      unsubscribe();
-      unsubscribe = void 0;
-      listeners.clear();
-      listeners = nullListeners;
-    }
-  }
-  function trySubscribeSelf() {
-    if (!selfSubscribed) {
-      selfSubscribed = true;
-      trySubscribe();
-    }
-  }
-  function tryUnsubscribeSelf() {
-    if (selfSubscribed) {
-      selfSubscribed = false;
-      tryUnsubscribe();
-    }
-  }
-  const subscription = {
-    addNestedSub,
-    notifyNestedSubs,
-    handleChangeWrapper,
-    isSubscribed,
-    trySubscribe: trySubscribeSelf,
-    tryUnsubscribe: tryUnsubscribeSelf,
-    getListeners: () => listeners
-  };
-  return subscription;
-}
-
-// src/utils/useIsomorphicLayoutEffect.ts
-var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
-var isDOM = /* @__PURE__ */ canUseDOM();
-var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
-var isReactNative = /* @__PURE__ */ isRunningInReactNative();
-var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? React.useLayoutEffect : React.useEffect;
-var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();
-
-// src/utils/shallowEqual.ts
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || y !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function shallowEqual(objA, objB) {
-  if (is(objA, objB)) return true;
-  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
-    return false;
-  }
-  const keysA = Object.keys(objA);
-  const keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return false;
-  for (let i = 0; i < keysA.length; i++) {
-    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-// src/utils/hoistStatics.ts
-var REACT_STATICS = {
-  childContextTypes: true,
-  contextType: true,
-  contextTypes: true,
-  defaultProps: true,
-  displayName: true,
-  getDefaultProps: true,
-  getDerivedStateFromError: true,
-  getDerivedStateFromProps: true,
-  mixins: true,
-  propTypes: true,
-  type: true
-};
-var KNOWN_STATICS = {
-  name: true,
-  length: true,
-  prototype: true,
-  caller: true,
-  callee: true,
-  arguments: true,
-  arity: true
-};
-var FORWARD_REF_STATICS = {
-  $$typeof: true,
-  render: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true
-};
-var MEMO_STATICS = {
-  $$typeof: true,
-  compare: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-  type: true
-};
-var TYPE_STATICS = {
-  [ForwardRef]: FORWARD_REF_STATICS,
-  [Memo]: MEMO_STATICS
-};
-function getStatics(component) {
-  if (isMemo(component)) {
-    return MEMO_STATICS;
-  }
-  return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS;
-}
-var defineProperty = Object.defineProperty;
-var getOwnPropertyNames = Object.getOwnPropertyNames;
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectPrototype = Object.prototype;
-function hoistNonReactStatics(targetComponent, sourceComponent) {
-  if (typeof sourceComponent !== "string") {
-    if (objectPrototype) {
-      const inheritedComponent = getPrototypeOf(sourceComponent);
-      if (inheritedComponent && inheritedComponent !== objectPrototype) {
-        hoistNonReactStatics(targetComponent, inheritedComponent);
-      }
-    }
-    let keys = getOwnPropertyNames(sourceComponent);
-    if (getOwnPropertySymbols) {
-      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
-    }
-    const targetStatics = getStatics(targetComponent);
-    const sourceStatics = getStatics(sourceComponent);
-    for (let i = 0; i < keys.length; ++i) {
-      const key = keys[i];
-      if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
-        const descriptor = getOwnPropertyDescriptor(sourceComponent, key);
-        try {
-          defineProperty(targetComponent, key, descriptor);
-        } catch (e) {
-        }
-      }
-    }
-  }
-  return targetComponent;
-}
-
-// src/components/Context.ts
-var ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);
-var gT = typeof globalThis !== "undefined" ? globalThis : (
-  /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */
-  {}
-);
-function getContext() {
-  if (!React.createContext) return {};
-  const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map();
-  let realContext = contextMap.get(React.createContext);
-  if (!realContext) {
-    realContext = React.createContext(
-      null
-    );
-    if (process.env.NODE_ENV !== "production") {
-      realContext.displayName = "ReactRedux";
-    }
-    contextMap.set(React.createContext, realContext);
-  }
-  return realContext;
-}
-var ReactReduxContext = /* @__PURE__ */ getContext();
-
-// src/components/connect.tsx
-var NO_SUBSCRIPTION_ARRAY = [null, null];
-var stringifyComponent = (Comp) => {
-  try {
-    return JSON.stringify(Comp);
-  } catch (err) {
-    return String(Comp);
-  }
-};
-function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
-  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);
-}
-function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {
-  lastWrapperProps.current = wrapperProps;
-  renderIsScheduled.current = false;
-  if (childPropsFromStoreUpdate.current) {
-    childPropsFromStoreUpdate.current = null;
-    notifyNestedSubs();
-  }
-}
-function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {
-  if (!shouldHandleStateChanges) return () => {
-  };
-  let didUnsubscribe = false;
-  let lastThrownError = null;
-  const checkForUpdates = () => {
-    if (didUnsubscribe || !isMounted.current) {
-      return;
-    }
-    const latestStoreState = store.getState();
-    let newChildProps, error;
-    try {
-      newChildProps = childPropsSelector(
-        latestStoreState,
-        lastWrapperProps.current
-      );
-    } catch (e) {
-      error = e;
-      lastThrownError = e;
-    }
-    if (!error) {
-      lastThrownError = null;
-    }
-    if (newChildProps === lastChildProps.current) {
-      if (!renderIsScheduled.current) {
-        notifyNestedSubs();
-      }
-    } else {
-      lastChildProps.current = newChildProps;
-      childPropsFromStoreUpdate.current = newChildProps;
-      renderIsScheduled.current = true;
-      additionalSubscribeListener();
-    }
-  };
-  subscription.onStateChange = checkForUpdates;
-  subscription.trySubscribe();
-  checkForUpdates();
-  const unsubscribeWrapper = () => {
-    didUnsubscribe = true;
-    subscription.tryUnsubscribe();
-    subscription.onStateChange = null;
-    if (lastThrownError) {
-      throw lastThrownError;
-    }
-  };
-  return unsubscribeWrapper;
-}
-function strictEqual(a, b) {
-  return a === b;
-}
-var hasWarnedAboutDeprecatedPureOption = false;
-function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
-  // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.
-  // @ts-ignore
-  pure,
-  areStatesEqual = strictEqual,
-  areOwnPropsEqual = shallowEqual,
-  areStatePropsEqual = shallowEqual,
-  areMergedPropsEqual = shallowEqual,
-  // use React's forwardRef to expose a ref of the wrapped component
-  forwardRef = false,
-  // the context consumer to use
-  context = ReactReduxContext
-} = {}) {
-  if (process.env.NODE_ENV !== "production") {
-    if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {
-      hasWarnedAboutDeprecatedPureOption = true;
-      warning(
-        'The `pure` option has been removed. `connect` is now always a "pure/memoized" component'
-      );
-    }
-  }
-  const Context = context;
-  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);
-  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);
-  const initMergeProps = mergePropsFactory(mergeProps);
-  const shouldHandleStateChanges = Boolean(mapStateToProps);
-  const wrapWithConnect = (WrappedComponent) => {
-    if (process.env.NODE_ENV !== "production") {
-      const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);
-      if (!isValid)
-        throw new Error(
-          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(
-            WrappedComponent
-          )}`
-        );
-    }
-    const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || "Component";
-    const displayName = `Connect(${wrappedComponentName})`;
-    const selectorFactoryOptions = {
-      shouldHandleStateChanges,
-      displayName,
-      wrappedComponentName,
-      WrappedComponent,
-      // @ts-ignore
-      initMapStateToProps,
-      initMapDispatchToProps,
-      initMergeProps,
-      areStatesEqual,
-      areStatePropsEqual,
-      areOwnPropsEqual,
-      areMergedPropsEqual
-    };
-    function ConnectFunction(props) {
-      const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {
-        const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;
-        return [props.context, reactReduxForwardedRef2, wrapperProps2];
-      }, [props]);
-      const ContextToUse = React.useMemo(() => {
-        let ResultContext = Context;
-        if (propsContext?.Consumer) {
-          if (process.env.NODE_ENV !== "production") {
-            const isValid = /* @__PURE__ */ isContextConsumer(
-              // @ts-ignore
-              /* @__PURE__ */ React.createElement(propsContext.Consumer, null)
-            );
-            if (!isValid) {
-              throw new Error(
-                "You must pass a valid React context consumer as `props.context`"
-              );
-            }
-            ResultContext = propsContext;
-          }
-        }
-        return ResultContext;
-      }, [propsContext, Context]);
-      const contextValue = React.useContext(ContextToUse);
-      const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
-      const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
-      if (process.env.NODE_ENV !== "production" && !didStoreComeFromProps && !didStoreComeFromContext) {
-        throw new Error(
-          `Could not find "store" in the context of "${displayName}". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`
-        );
-      }
-      const store = didStoreComeFromProps ? props.store : contextValue.store;
-      const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;
-      const childPropsSelector = React.useMemo(() => {
-        return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);
-      }, [store]);
-      const [subscription, notifyNestedSubs] = React.useMemo(() => {
-        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;
-        const subscription2 = createSubscription(
-          store,
-          didStoreComeFromProps ? void 0 : contextValue.subscription
-        );
-        const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);
-        return [subscription2, notifyNestedSubs2];
-      }, [store, didStoreComeFromProps, contextValue]);
-      const overriddenContextValue = React.useMemo(() => {
-        if (didStoreComeFromProps) {
-          return contextValue;
-        }
-        return {
-          ...contextValue,
-          subscription
-        };
-      }, [didStoreComeFromProps, contextValue, subscription]);
-      const lastChildProps = React.useRef(void 0);
-      const lastWrapperProps = React.useRef(wrapperProps);
-      const childPropsFromStoreUpdate = React.useRef(void 0);
-      const renderIsScheduled = React.useRef(false);
-      const isMounted = React.useRef(false);
-      const latestSubscriptionCallbackError = React.useRef(
-        void 0
-      );
-      useIsomorphicLayoutEffect(() => {
-        isMounted.current = true;
-        return () => {
-          isMounted.current = false;
-        };
-      }, []);
-      const actualChildPropsSelector = React.useMemo(() => {
-        const selector = () => {
-          if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
-            return childPropsFromStoreUpdate.current;
-          }
-          return childPropsSelector(store.getState(), wrapperProps);
-        };
-        return selector;
-      }, [store, wrapperProps]);
-      const subscribeForReact = React.useMemo(() => {
-        const subscribe = (reactListener) => {
-          if (!subscription) {
-            return () => {
-            };
-          }
-          return subscribeUpdates(
-            shouldHandleStateChanges,
-            store,
-            subscription,
-            // @ts-ignore
-            childPropsSelector,
-            lastWrapperProps,
-            lastChildProps,
-            renderIsScheduled,
-            isMounted,
-            childPropsFromStoreUpdate,
-            notifyNestedSubs,
-            reactListener
-          );
-        };
-        return subscribe;
-      }, [subscription]);
-      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [
-        lastWrapperProps,
-        lastChildProps,
-        renderIsScheduled,
-        wrapperProps,
-        childPropsFromStoreUpdate,
-        notifyNestedSubs
-      ]);
-      let actualChildProps;
-      try {
-        actualChildProps = React.useSyncExternalStore(
-          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing
-          subscribeForReact,
-          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,
-          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.
-          actualChildPropsSelector,
-          getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector
-        );
-      } catch (err) {
-        if (latestSubscriptionCallbackError.current) {
-          ;
-          err.message += `
-The error may be correlated with this previous error:
-${latestSubscriptionCallbackError.current.stack}
-
-`;
-        }
-        throw err;
-      }
-      useIsomorphicLayoutEffect(() => {
-        latestSubscriptionCallbackError.current = void 0;
-        childPropsFromStoreUpdate.current = void 0;
-        lastChildProps.current = actualChildProps;
-      });
-      const renderedWrappedComponent = React.useMemo(() => {
-        return (
-          // @ts-ignore
-          /* @__PURE__ */ React.createElement(
-            WrappedComponent,
-            {
-              ...actualChildProps,
-              ref: reactReduxForwardedRef
-            }
-          )
-        );
-      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);
-      const renderedChild = React.useMemo(() => {
-        if (shouldHandleStateChanges) {
-          return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);
-        }
-        return renderedWrappedComponent;
-      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
-      return renderedChild;
-    }
-    const _Connect = React.memo(ConnectFunction);
-    const Connect = _Connect;
-    Connect.WrappedComponent = WrappedComponent;
-    Connect.displayName = ConnectFunction.displayName = displayName;
-    if (forwardRef) {
-      const _forwarded = React.forwardRef(
-        function forwardConnectRef(props, ref) {
-          return /* @__PURE__ */ React.createElement(Connect, { ...props, reactReduxForwardedRef: ref });
-        }
-      );
-      const forwarded = _forwarded;
-      forwarded.displayName = displayName;
-      forwarded.WrappedComponent = WrappedComponent;
-      return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);
-    }
-    return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);
-  };
-  return wrapWithConnect;
-}
-var connect_default = connect;
-
-// src/components/Provider.tsx
-function Provider(providerProps) {
-  const { children, context, serverState, store } = providerProps;
-  const contextValue = React.useMemo(() => {
-    const subscription = createSubscription(store);
-    const baseContextValue = {
-      store,
-      subscription,
-      getServerState: serverState ? () => serverState : void 0
-    };
-    if (process.env.NODE_ENV === "production") {
-      return baseContextValue;
-    } else {
-      const { identityFunctionCheck = "once", stabilityCheck = "once" } = providerProps;
-      return /* @__PURE__ */ Object.assign(baseContextValue, {
-        stabilityCheck,
-        identityFunctionCheck
-      });
-    }
-  }, [store, serverState]);
-  const previousState = React.useMemo(() => store.getState(), [store]);
-  useIsomorphicLayoutEffect(() => {
-    const { subscription } = contextValue;
-    subscription.onStateChange = subscription.notifyNestedSubs;
-    subscription.trySubscribe();
-    if (previousState !== store.getState()) {
-      subscription.notifyNestedSubs();
-    }
-    return () => {
-      subscription.tryUnsubscribe();
-      subscription.onStateChange = void 0;
-    };
-  }, [contextValue, previousState]);
-  const Context = context || ReactReduxContext;
-  return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);
-}
-var Provider_default = Provider;
-
-// src/hooks/useReduxContext.ts
-function createReduxContextHook(context = ReactReduxContext) {
-  return function useReduxContext2() {
-    const contextValue = React.useContext(context);
-    if (process.env.NODE_ENV !== "production" && !contextValue) {
-      throw new Error(
-        "could not find react-redux context value; please ensure the component is wrapped in a <Provider>"
-      );
-    }
-    return contextValue;
-  };
-}
-var useReduxContext = /* @__PURE__ */ createReduxContextHook();
-
-// src/hooks/useStore.ts
-function createStoreHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (
-    // @ts-ignore
-    createReduxContextHook(context)
-  );
-  const useStore2 = () => {
-    const { store } = useReduxContext2();
-    return store;
-  };
-  Object.assign(useStore2, {
-    withTypes: () => useStore2
-  });
-  return useStore2;
-}
-var useStore = /* @__PURE__ */ createStoreHook();
-
-// src/hooks/useDispatch.ts
-function createDispatchHook(context = ReactReduxContext) {
-  const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);
-  const useDispatch2 = () => {
-    const store = useStore2();
-    return store.dispatch;
-  };
-  Object.assign(useDispatch2, {
-    withTypes: () => useDispatch2
-  });
-  return useDispatch2;
-}
-var useDispatch = /* @__PURE__ */ createDispatchHook();
-
-// src/hooks/useSelector.ts
-import { useSyncExternalStoreWithSelector } from "use-sync-external-store/with-selector.js";
-var refEquality = (a, b) => a === b;
-function createSelectorHook(context = ReactReduxContext) {
-  const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);
-  const useSelector2 = (selector, equalityFnOrOptions = {}) => {
-    const { equalityFn = refEquality } = typeof equalityFnOrOptions === "function" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;
-    if (process.env.NODE_ENV !== "production") {
-      if (!selector) {
-        throw new Error(`You must pass a selector to useSelector`);
-      }
-      if (typeof selector !== "function") {
-        throw new Error(`You must pass a function as a selector to useSelector`);
-      }
-      if (typeof equalityFn !== "function") {
-        throw new Error(
-          `You must pass a function as an equality function to useSelector`
-        );
-      }
-    }
-    const reduxContext = useReduxContext2();
-    const { store, subscription, getServerState } = reduxContext;
-    const firstRun = React.useRef(true);
-    const wrappedSelector = React.useCallback(
-      {
-        [selector.name](state) {
-          const selected = selector(state);
-          if (process.env.NODE_ENV !== "production") {
-            const { devModeChecks = {} } = typeof equalityFnOrOptions === "function" ? {} : equalityFnOrOptions;
-            const { identityFunctionCheck, stabilityCheck } = reduxContext;
-            const {
-              identityFunctionCheck: finalIdentityFunctionCheck,
-              stabilityCheck: finalStabilityCheck
-            } = {
-              stabilityCheck,
-              identityFunctionCheck,
-              ...devModeChecks
-            };
-            if (finalStabilityCheck === "always" || finalStabilityCheck === "once" && firstRun.current) {
-              const toCompare = selector(state);
-              if (!equalityFn(selected, toCompare)) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization",
-                  {
-                    state,
-                    selected,
-                    selected2: toCompare,
-                    stack
-                  }
-                );
-              }
-            }
-            if (finalIdentityFunctionCheck === "always" || finalIdentityFunctionCheck === "once" && firstRun.current) {
-              if (selected === state) {
-                let stack = void 0;
-                try {
-                  throw new Error();
-                } catch (e) {
-                  ;
-                  ({ stack } = e);
-                }
-                console.warn(
-                  "Selector " + (selector.name || "unknown") + " returned the root state when called. This can lead to unnecessary rerenders.\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.",
-                  { stack }
-                );
-              }
-            }
-            if (firstRun.current) firstRun.current = false;
-          }
-          return selected;
-        }
-      }[selector.name],
-      [selector]
-    );
-    const selectedState = useSyncExternalStoreWithSelector(
-      subscription.addNestedSub,
-      store.getState,
-      getServerState || store.getState,
-      wrappedSelector,
-      equalityFn
-    );
-    React.useDebugValue(selectedState);
-    return selectedState;
-  };
-  Object.assign(useSelector2, {
-    withTypes: () => useSelector2
-  });
-  return useSelector2;
-}
-var useSelector = /* @__PURE__ */ createSelectorHook();
-
-// src/exports.ts
-var batch = defaultNoopBatch;
-export {
-  Provider_default as Provider,
-  ReactReduxContext,
-  batch,
-  connect_default as connect,
-  createDispatchHook,
-  createSelectorHook,
-  createStoreHook,
-  shallowEqual,
-  useDispatch,
-  useSelector,
-  useStore
-};
-//# sourceMappingURL=react-redux.mjs.map
Index: de_modules/react-redux/dist/react-redux.mjs.map
===================================================================
--- node_modules/react-redux/dist/react-redux.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/react.ts","../src/utils/react-is.ts","../src/utils/warning.ts","../src/connect/verifySubselectors.ts","../src/connect/selectorFactory.ts","../src/utils/bindActionCreators.ts","../src/utils/isPlainObject.ts","../src/utils/verifyPlainObject.ts","../src/connect/wrapMapToProps.ts","../src/connect/invalidArgFactory.ts","../src/connect/mapDispatchToProps.ts","../src/connect/mapStateToProps.ts","../src/connect/mergeProps.ts","../src/utils/batch.ts","../src/utils/Subscription.ts","../src/utils/useIsomorphicLayoutEffect.ts","../src/utils/shallowEqual.ts","../src/utils/hoistStatics.ts","../src/components/Context.ts","../src/components/connect.tsx","../src/components/Provider.tsx","../src/hooks/useReduxContext.ts","../src/hooks/useStore.ts","../src/hooks/useDispatch.ts","../src/hooks/useSelector.ts","../src/exports.ts"],"sourcesContent":["import * as React from 'react'\n\nexport { React }\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n  IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n  'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n  'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n  return typeof type === 'string' ||\n    typeof type === 'function' ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (typeof type === 'object' &&\n      type !== null &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        type.getModuleId !== undefined))\n    ? !0\n    : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n  if (typeof object === 'object' && object !== null) {\n    const { $$typeof } = object\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object\n              case REACT_CONSUMER_TYPE:\n                return object\n              default:\n                return $$typeof\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof\n    }\n  }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n  return IS_REACT_19\n    ? typeOf(object) === REACT_CONSUMER_TYPE\n    : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n  return typeOf(object) === REACT_MEMO_TYPE\n}\n","/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\r\nexport default function warning(message: string) {\r\n  /* eslint-disable no-console */\r\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\r\n    console.error(message)\r\n  }\r\n  /* eslint-enable no-console */\r\n  try {\r\n    // This error was thrown as a convenience so that if you enable\r\n    // \"break on all exceptions\" in your console,\r\n    // it would pause the execution at this line.\r\n    throw new Error(message)\r\n    /* eslint-disable no-empty */\r\n  } catch (e) {}\r\n  /* eslint-enable no-empty */\r\n}\r\n","import warning from '../utils/warning'\n\nfunction verify(selector: unknown, methodName: string): void {\n  if (!selector) {\n    throw new Error(`Unexpected value for ${methodName} in connect.`)\n  } else if (\n    methodName === 'mapStateToProps' ||\n    methodName === 'mapDispatchToProps'\n  ) {\n    if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n      warning(\n        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`,\n      )\n    }\n  }\n}\n\nexport default function verifySubselectors(\n  mapStateToProps: unknown,\n  mapDispatchToProps: unknown,\n  mergeProps: unknown,\n): void {\n  verify(mapStateToProps, 'mapStateToProps')\n  verify(mapDispatchToProps, 'mapDispatchToProps')\n  verify(mergeProps, 'mergeProps')\n}\n","import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n  dispatch: Dispatch<Action<string>>,\n  factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n  | null\n  | undefined\n  ? (state: S) => TProps\n  : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n  state: State,\n  ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n  initialState: State,\n  ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n  | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n  | MapStateToProps<TStateProps, TOwnProps, State>\n  | null\n  | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n  | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n  dispatch: Dispatch<Action<string>>,\n  ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n  readonly areStatePropsEqual: EqualityFn<TStateProps>\n  readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  dispatch: Dispatch<Action<string>>,\n  {\n    areStatesEqual,\n    areOwnPropsEqual,\n    areStatePropsEqual,\n  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n  let hasRunAtLeastOnce = false\n  let state: State\n  let ownProps: TOwnProps\n  let stateProps: TStateProps\n  let dispatchProps: TDispatchProps\n  let mergedProps: TMergedProps\n\n  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n    state = firstState\n    ownProps = firstOwnProps\n    stateProps = mapStateToProps(state, ownProps)\n    dispatchProps = mapDispatchToProps(dispatch, ownProps)\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    hasRunAtLeastOnce = true\n    return mergedProps\n  }\n\n  function handleNewPropsAndNewState() {\n    stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewProps() {\n    if (mapStateToProps.dependsOnOwnProps)\n      stateProps = mapStateToProps(state, ownProps)\n\n    if (mapDispatchToProps.dependsOnOwnProps)\n      dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n    return mergedProps\n  }\n\n  function handleNewState() {\n    const nextStateProps = mapStateToProps(state, ownProps)\n    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n    stateProps = nextStateProps\n\n    if (statePropsChanged)\n      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n    return mergedProps\n  }\n\n  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n    const stateChanged = !areStatesEqual(\n      nextState,\n      state,\n      nextOwnProps,\n      ownProps,\n    )\n    state = nextState\n    ownProps = nextOwnProps\n\n    if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n    if (propsChanged) return handleNewProps()\n    if (stateChanged) return handleNewState()\n    return mergedProps\n  }\n\n  return function pureFinalPropsSelector(\n    nextState: State,\n    nextOwnProps: TOwnProps,\n  ) {\n    return hasRunAtLeastOnce\n      ? handleSubsequentCalls(nextState, nextOwnProps)\n      : handleFirstCall(nextState, nextOwnProps)\n  }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n  (state: State, ownProps: TOwnProps): TStateProps\n  readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n  readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n  readonly shouldHandleStateChanges: boolean\n  readonly displayName: string\n  readonly wrappedComponentName: string\n  readonly WrappedComponent: ComponentType<TOwnProps>\n  readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n  readonly initMapStateToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n  readonly initMapDispatchToProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n  readonly initMergeProps: (\n    dispatch: Dispatch<Action<string>>,\n    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n  TStateProps,\n  TOwnProps,\n  TDispatchProps,\n  TMergedProps,\n  State,\n>(\n  dispatch: Dispatch<Action<string>>,\n  {\n    initMapStateToProps,\n    initMapDispatchToProps,\n    initMergeProps,\n    ...options\n  }: SelectorFactoryOptions<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >,\n) {\n  const mapStateToProps = initMapStateToProps(dispatch, options)\n  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n  const mergeProps = initMergeProps(dispatch, options)\n\n  if (process.env.NODE_ENV !== 'production') {\n    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n  }\n\n  return pureFinalPropsSelectorFactory<\n    TStateProps,\n    TOwnProps,\n    TDispatchProps,\n    TMergedProps,\n    State\n  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n","import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n  actionCreators: ActionCreatorsMapObject,\n  dispatch: Dispatch,\n): ActionCreatorsMapObject {\n  const boundActionCreators: ActionCreatorsMapObject = {}\n\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key]\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n    }\n  }\n  return boundActionCreators\n}\n","/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: unknown) {\n  if (typeof obj !== 'object' || obj === null) return false\n\n  const proto = Object.getPrototypeOf(obj)\n  if (proto === null) return true\n\n  let baseProto = proto\n  while (Object.getPrototypeOf(baseProto) !== null) {\n    baseProto = Object.getPrototypeOf(baseProto)\n  }\n\n  return proto === baseProto\n}\n","import isPlainObject from './isPlainObject'\nimport warning from './warning'\n\nexport default function verifyPlainObject(\n  value: unknown,\n  displayName: string,\n  methodName: string,\n) {\n  if (!isPlainObject(value)) {\n    warning(\n      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`,\n    )\n  }\n}\n","import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n  // eslint-disable-next-line no-unused-vars\n  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n  dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n  // * Note:\n  //  It seems that the dispatch argument\n  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)\n  // eslint-disable-next-line no-unused-vars\n  getConstant: (dispatch: Dispatch) =>\n    | {\n        dispatch?: Dispatch\n        dependsOnOwnProps?: boolean\n      }\n    | ActionCreatorsMapObject\n    | ActionCreator<any>,\n) {\n  return function initConstantSelector(dispatch: Dispatch) {\n    const constant = getConstant(dispatch)\n\n    function constantSelector() {\n      return constant\n    }\n    constantSelector.dependsOnOwnProps = false\n    return constantSelector\n  }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n  return mapToProps.dependsOnOwnProps\n    ? Boolean(mapToProps.dependsOnOwnProps)\n    : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n//  * Detects whether the mapToProps function being called depends on props, which\n//    is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n//  * On first call, handles mapToProps if returns another function, and treats that\n//    new function as the true mapToProps for subsequent calls.\n//\n//  * On first call, verifies the first result is a plain object, in order to warn\n//    the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n  mapToProps: MapToProps,\n  methodName: string,\n) {\n  return function initProxySelector(\n    dispatch: Dispatch,\n    { displayName }: { displayName: string },\n  ) {\n    const proxy = function mapToPropsProxy(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      return proxy.dependsOnOwnProps\n        ? proxy.mapToProps(stateOrDispatch, ownProps)\n        : proxy.mapToProps(stateOrDispatch, undefined)\n    }\n\n    // allow detectFactoryAndVerify to get ownProps\n    proxy.dependsOnOwnProps = true\n\n    proxy.mapToProps = function detectFactoryAndVerify(\n      stateOrDispatch: StateOrDispatch,\n      ownProps?: P,\n    ): MapToProps {\n      proxy.mapToProps = mapToProps\n      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n      let props = proxy(stateOrDispatch, ownProps)\n\n      if (typeof props === 'function') {\n        proxy.mapToProps = props\n        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n        props = proxy(stateOrDispatch, ownProps)\n      }\n\n      if (process.env.NODE_ENV !== 'production')\n        verifyPlainObject(props, displayName, methodName)\n\n      return props\n    }\n\n    return proxy\n  }\n}\n","import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n  return (\n    dispatch: Dispatch<Action<string>>,\n    options: { readonly wrappedComponentName: string },\n  ) => {\n    throw new Error(\n      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n        options.wrappedComponentName\n      }.`,\n    )\n  }\n}\n","import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n  mapDispatchToProps:\n    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n    | undefined,\n) {\n  return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n        // @ts-ignore\n        bindActionCreators(mapDispatchToProps, dispatch),\n      )\n    : !mapDispatchToProps\n      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n          dispatch,\n        }))\n      : typeof mapDispatchToProps === 'function'\n        ? // @ts-ignore\n          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n  return !mapStateToProps\n    ? wrapMapToPropsConstant(() => ({}))\n    : typeof mapStateToProps === 'function'\n      ? // @ts-ignore\n        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n","import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  stateProps: TStateProps,\n  dispatchProps: TDispatchProps,\n  ownProps: TOwnProps,\n): TMergedProps {\n  // @ts-ignore\n  return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n  dispatch: Dispatch<Action<string>>,\n  options: {\n    readonly displayName: string\n    readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n  },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n  return function initMergePropsProxy(\n    dispatch,\n    { displayName, areMergedPropsEqual },\n  ) {\n    let hasRunOnce = false\n    let mergedProps: TMergedProps\n\n    return function mergePropsProxy(\n      stateProps: TStateProps,\n      dispatchProps: TDispatchProps,\n      ownProps: TOwnProps,\n    ) {\n      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n      if (hasRunOnce) {\n        if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n          mergedProps = nextMergedProps\n      } else {\n        hasRunOnce = true\n        mergedProps = nextMergedProps\n\n        if (process.env.NODE_ENV !== 'production')\n          verifyPlainObject(mergedProps, displayName, 'mergeProps')\n      }\n\n      return mergedProps\n    }\n  }\n}\n\nexport function mergePropsFactory<\n  TStateProps,\n  TDispatchProps,\n  TOwnProps,\n  TMergedProps,\n>(\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n  return !mergeProps\n    ? () => defaultMergeProps\n    : typeof mergeProps === 'function'\n      ? wrapMergePropsFunc(mergeProps)\n      : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n  ConnectedComponent,\n  InferableComponentEnhancer,\n  InferableComponentEnhancerWithProps,\n  ResolveThunks,\n  DispatchProp,\n  ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n  MapStateToPropsParam,\n  MapDispatchToPropsParam,\n  MergeProps,\n  MapDispatchToPropsNonObject,\n  SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n  ReactReduxContextValue,\n  ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n  try {\n    return JSON.stringify(Comp)\n  } catch (err) {\n    return String(Comp)\n  }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n  effectFunc: EffectFunc,\n  effectArgs: any[],\n  dependencies?: React.DependencyList,\n) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  wrapperProps: unknown,\n  // actualChildProps: unknown,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps\n  renderIsScheduled.current = false\n\n  // If the render was from a store update, clear out that reference and cascade the subscriber update\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null\n    notifyNestedSubs()\n  }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n  shouldHandleStateChanges: boolean,\n  store: Store,\n  subscription: Subscription,\n  childPropsSelector: (state: unknown, props: unknown) => unknown,\n  lastWrapperProps: React.MutableRefObject<unknown>,\n  lastChildProps: React.MutableRefObject<unknown>,\n  renderIsScheduled: React.MutableRefObject<boolean>,\n  isMounted: React.MutableRefObject<boolean>,\n  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n  notifyNestedSubs: () => void,\n  // forceComponentUpdateDispatch: React.Dispatch<any>,\n  additionalSubscribeListener: () => void,\n) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}\n\n  // Capture values for checking if and when this component unmounts\n  let didUnsubscribe = false\n  let lastThrownError: Error | null = null\n\n  // We'll run this callback every time a store subscription update propagates to this component\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return\n    }\n\n    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n    const latestStoreState = store.getState()\n\n    let newChildProps, error\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(\n        latestStoreState,\n        lastWrapperProps.current,\n      )\n    } catch (e) {\n      error = e\n      lastThrownError = e as Error | null\n    }\n\n    if (!error) {\n      lastThrownError = null\n    }\n\n    // If the child props haven't changed, nothing to do here - cascade the subscription update\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs()\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps\n      childPropsFromStoreUpdate.current = newChildProps\n      renderIsScheduled.current = true\n\n      // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n      additionalSubscribeListener()\n    }\n  }\n\n  // Actually subscribe to the nearest connected ancestor (or store)\n  subscription.onStateChange = checkForUpdates\n  subscription.trySubscribe()\n\n  // Pull data from the store after first render in case the store has\n  // changed since we began.\n  checkForUpdates()\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true\n    subscription.tryUnsubscribe()\n    subscription.onStateChange = null\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError\n    }\n  }\n\n  return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n  context?: ReactReduxContextInstance\n  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n  store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n  reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n  return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n  TConnector extends InferableComponentEnhancerWithProps<\n    infer TInjectedProps,\n    any\n  >\n    ? unknown extends TInjectedProps\n      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n        ? TInjectedProps\n        : never\n      : TInjectedProps\n    : never\n\nexport interface ConnectOptions<\n  State = unknown,\n  TStateProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n> {\n  forwardRef?: boolean\n  context?: typeof ReactReduxContext\n  areStatesEqual?: (\n    nextState: State,\n    prevState: State,\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areOwnPropsEqual?: (\n    nextOwnProps: TOwnProps,\n    prevOwnProps: TOwnProps,\n  ) => boolean\n\n  areStatePropsEqual?: (\n    nextStateProps: TStateProps,\n    prevStateProps: TStateProps,\n  ) => boolean\n  areMergedPropsEqual?: (\n    nextMergedProps: TMergedProps,\n    prevMergedProps: TMergedProps,\n  ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n  // tslint:disable:no-unnecessary-generics\n  (): InferableComponentEnhancer<DispatchProp>\n\n  /** mapState only */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n  /** mapDispatch only (as a function) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch only (as an object) */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (as a function)*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState and mapDispatch (nullish) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n  /** mapState and mapDispatch (as an object) */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mergeProps only */\n  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and mergeProps */\n  <\n    TStateProps = {},\n    no_dispatch = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapDispatch (as a object) and mergeProps */\n  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n  /** mapState and options */\n  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: null | undefined,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n  /** mapDispatch (as a function) and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n  /** mapDispatch (as an object) and options*/\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n    mapStateToProps: null | undefined,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<{}, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as a function), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & TDispatchProps,\n    TOwnProps\n  >\n\n  /** mapState,  mapDispatch (as an object), and options */\n  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: null | undefined,\n    options: ConnectOptions<State, TStateProps, TOwnProps>,\n  ): InferableComponentEnhancerWithProps<\n    TStateProps & ResolveThunks<TDispatchProps>,\n    TOwnProps\n  >\n\n  /** mapState, mapDispatch, mergeProps, and options */\n  <\n    TStateProps = {},\n    TDispatchProps = {},\n    TOwnProps = {},\n    TMergedProps = {},\n    State = DefaultState,\n  >(\n    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n    mergeProps: MergeProps<\n      TStateProps,\n      TDispatchProps,\n      TOwnProps,\n      TMergedProps\n    >,\n    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n  // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n  TStateProps = {},\n  TDispatchProps = {},\n  TOwnProps = {},\n  TMergedProps = {},\n  State = unknown,\n>(\n  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n  {\n    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n    // @ts-ignore\n    pure,\n    areStatesEqual = strictEqual,\n    areOwnPropsEqual = shallowEqual,\n    areStatePropsEqual = shallowEqual,\n    areMergedPropsEqual = shallowEqual,\n\n    // use React's forwardRef to expose a ref of the wrapped component\n    forwardRef = false,\n\n    // the context consumer to use\n    context = ReactReduxContext,\n  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true\n      warning(\n        'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n      )\n    }\n  }\n\n  const Context = context\n\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n  const initMergeProps = mergePropsFactory(mergeProps)\n\n  const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n  const wrapWithConnect = <TProps,>(\n    WrappedComponent: ComponentType<TProps>,\n  ) => {\n    type WrappedComponentProps = TProps &\n      ConnectPropsMaybeWithoutContext<TProps>\n\n    if (process.env.NODE_ENV !== 'production') {\n      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n      if (!isValid)\n        throw new Error(\n          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n            WrappedComponent,\n          )}`,\n        )\n    }\n\n    const wrappedComponentName =\n      WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n    const displayName = `Connect(${wrappedComponentName})`\n\n    const selectorFactoryOptions: SelectorFactoryOptions<\n      any,\n      any,\n      any,\n      any,\n      State\n    > = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual,\n    }\n\n    function ConnectFunction<TOwnProps>(\n      props: InternalConnectProps & TOwnProps,\n    ) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] =\n        React.useMemo(() => {\n          // Distinguish between actual \"data\" props that were passed to the wrapper component,\n          // and values needed to control behavior (forwarded refs, alternate context instances).\n          // To maintain the wrapperProps object reference, memoize this destructuring.\n          const { reactReduxForwardedRef, ...wrapperProps } = props\n          return [props.context, reactReduxForwardedRef, wrapperProps]\n        }, [props])\n\n      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        let ResultContext = Context\n        if (propsContext?.Consumer) {\n          if (process.env.NODE_ENV !== 'production') {\n            const isValid = /*#__PURE__*/ isContextConsumer(\n              // @ts-ignore\n              <propsContext.Consumer />,\n            )\n            if (!isValid) {\n              throw new Error(\n                'You must pass a valid React context consumer as `props.context`',\n              )\n            }\n            ResultContext = propsContext\n          }\n        }\n        return ResultContext\n      }, [propsContext, Context])\n\n      // Retrieve the store and ancestor subscription via context, if available\n      const contextValue = React.useContext(ContextToUse)\n\n      // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n      const didStoreComeFromProps =\n        Boolean(props.store) &&\n        Boolean(props.store!.getState) &&\n        Boolean(props.store!.dispatch)\n      const didStoreComeFromContext =\n        Boolean(contextValue) && Boolean(contextValue!.store)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        !didStoreComeFromProps &&\n        !didStoreComeFromContext\n      ) {\n        throw new Error(\n          `Could not find \"store\" in the context of ` +\n            `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n            `or pass a custom React context provider to <Provider> and the corresponding ` +\n            `React context consumer to ${displayName} in connect options.`,\n        )\n      }\n\n      // Based on the previous check, one of these must be true\n      const store: Store = didStoreComeFromProps\n        ? props.store!\n        : contextValue!.store\n\n      const getServerState = didStoreComeFromContext\n        ? contextValue!.getServerState\n        : store.getState\n\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n      }, [store])\n\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n        // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n        const subscription = createSubscription(\n          store,\n          didStoreComeFromProps ? undefined : contextValue!.subscription,\n        )\n\n        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n        const notifyNestedSubs =\n          subscription.notifyNestedSubs.bind(subscription)\n\n        return [subscription, notifyNestedSubs]\n      }, [store, didStoreComeFromProps, contextValue])\n\n      // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue!\n        }\n\n        // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n        return {\n          ...contextValue,\n          subscription,\n        } as ReactReduxContextValue\n      }, [didStoreComeFromProps, contextValue, subscription])\n\n      // Set up refs to coordinate values between the subscription effect and the render logic\n      const lastChildProps = React.useRef<unknown>(undefined)\n      const lastWrapperProps = React.useRef(wrapperProps)\n      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n      const renderIsScheduled = React.useRef(false)\n      const isMounted = React.useRef(false)\n\n      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n      /**\n       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n       */\n      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n        undefined,\n      )\n\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true\n        return () => {\n          isMounted.current = false\n        }\n      }, [])\n\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (\n            childPropsFromStoreUpdate.current &&\n            wrapperProps === lastWrapperProps.current\n          ) {\n            return childPropsFromStoreUpdate.current\n          }\n\n          // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n          return childPropsSelector(store.getState(), wrapperProps)\n        }\n        return selector\n      }, [store, wrapperProps])\n\n      // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = (reactListener: () => void) => {\n          if (!subscription) {\n            return () => {}\n          }\n\n          return subscribeUpdates(\n            shouldHandleStateChanges,\n            store,\n            subscription,\n            // @ts-ignore\n            childPropsSelector,\n            lastWrapperProps,\n            lastChildProps,\n            renderIsScheduled,\n            isMounted,\n            childPropsFromStoreUpdate,\n            notifyNestedSubs,\n            reactListener,\n          )\n        }\n\n        return subscribe\n      }, [subscription])\n\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n        lastWrapperProps,\n        lastChildProps,\n        renderIsScheduled,\n        wrapperProps,\n        childPropsFromStoreUpdate,\n        notifyNestedSubs,\n      ])\n\n      let actualChildProps: Record<string, unknown>\n\n      try {\n        actualChildProps = React.useSyncExternalStore(\n          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n          subscribeForReact,\n          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n          actualChildPropsSelector,\n          getServerState\n            ? () => childPropsSelector(getServerState(), wrapperProps)\n            : actualChildPropsSelector,\n        )\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          // eslint-disable-next-line no-extra-semi\n          ;(err as Error).message +=\n            `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n        }\n\n        throw err\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined\n        childPropsFromStoreUpdate.current = undefined\n        lastChildProps.current = actualChildProps\n      })\n\n      // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          // @ts-ignore\n          <WrappedComponent\n            {...actualChildProps}\n            ref={reactReduxForwardedRef}\n          />\n        )\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n      // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return (\n            <ContextToUse.Provider value={overriddenContextValue}>\n              {renderedWrappedComponent}\n            </ContextToUse.Provider>\n          )\n        }\n\n        return renderedWrappedComponent\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n      return renderedChild\n    }\n\n    const _Connect = React.memo(ConnectFunction)\n\n    type ConnectedWrapperComponent = typeof _Connect & {\n      WrappedComponent: typeof WrappedComponent\n    }\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect as unknown as ConnectedComponent<\n      typeof WrappedComponent,\n      WrappedComponentProps\n    >\n    Connect.WrappedComponent = WrappedComponent\n    Connect.displayName = ConnectFunction.displayName = displayName\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(\n        function forwardConnectRef(props, ref) {\n          // @ts-ignore\n          return <Connect {...props} reactReduxForwardedRef={ref} />\n        },\n      )\n\n      const forwarded = _forwarded as ConnectedWrapperComponent\n      forwarded.displayName = displayName\n      forwarded.WrappedComponent = WrappedComponent\n      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n    }\n\n    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n  }\n\n  return wrapWithConnect\n}\n\nexport default connect as Connect\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import connect from './components/connect'\nexport type {\n  Connect,\n  ConnectProps,\n  ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n  MapDispatchToProps,\n  MapDispatchToPropsFactory,\n  MapDispatchToPropsFunction,\n  MapDispatchToPropsNonObject,\n  MapDispatchToPropsParam,\n  MapStateToProps,\n  MapStateToPropsFactory,\n  MapStateToPropsParam,\n  MergeProps,\n  Selector,\n  SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n"],"mappings":";AAAA,YAAY,WAAW;;;ACQhB,IAAM,cAA8B,sBAAM,QAAQ,WAAW,IAAI;AAExE,IAAM,qBAAqC,uBAAO;AAAA,EAChD,cAAc,+BAA+B;AAC/C;AACA,IAAM,oBAAoC,uBAAO,IAAI,cAAc;AACnE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,qBAAqC,uBAAO,IAAI,eAAe;AACrE,IAAM,yBAAyC,uBAAO,IAAI,mBAAmB;AAC7E,IAAM,sBAAsC,uBAAO,IAAI,gBAAgB;AACvE,IAAM,2BAA2C,uBAAO;AAAA,EACtD;AACF;AACA,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,kBAAkC,uBAAO,IAAI,YAAY;AAC/D,IAAM,uBAAuC,uBAAO,IAAI,iBAAiB;AACzE,IAAM,yBAAyC,uBAAO;AAAA,EACpD;AACF;AAEO,IAAM,aAAa;AACnB,IAAM,OAAO;AAEb,SAAS,mBAAmB,MAAgC;AACjE,SAAO,OAAO,SAAS,YACrB,OAAO,SAAS,cAChB,SAAS,uBACT,SAAS,uBACT,SAAS,0BACT,SAAS,uBACT,SAAS,4BACT,SAAS,wBACR,OAAO,SAAS,YACf,SAAS,SACR,KAAK,aAAa,mBACjB,KAAK,aAAa,mBAClB,KAAK,aAAa,sBAClB,KAAK,aAAa,uBAClB,KAAK,aAAa,0BAClB,KAAK,aAAa,0BAClB,KAAK,gBAAgB,UACvB,OACA;AACN;AAEA,SAAS,OAAO,QAAiC;AAC/C,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,UAAM,EAAE,SAAS,IAAI;AAErB,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,gBAAU,SAAS,OAAO,MAAO,QAAS;AAAA,UACxC,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT;AACE,oBAAU,SAAS,UAAU,OAAO,UAAW,QAAS;AAAA,cACtD,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cACT,KAAK;AACH,uBAAO;AAAA,cACT;AACE,uBAAO;AAAA,YACX;AAAA,QACJ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,IACX;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,QAAqC;AACrE,SAAO,cACH,OAAO,MAAM,MAAM,sBACnB,OAAO,MAAM,MAAM;AACzB;AAEO,SAAS,OAAO,QAAiD;AACtE,SAAO,OAAO,MAAM,MAAM;AAC5B;;;AC1Fe,SAAR,QAAyB,SAAiB;AAE/C,MAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACzE,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,MAAI;AAIF,UAAM,IAAI,MAAM,OAAO;AAAA,EAEzB,SAAS,GAAG;AAAA,EAAC;AAEf;;;AClBA,SAAS,OAAO,UAAmB,YAA0B;AAC3D,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,wBAAwB,UAAU,cAAc;AAAA,EAClE,WACE,eAAe,qBACf,eAAe,sBACf;AACA,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,mBAAmB,GAAG;AACxE;AAAA,QACE,oBAAoB,UAAU;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;AAEe,SAAR,mBACL,iBACA,oBACA,YACM;AACN,SAAO,iBAAiB,iBAAiB;AACzC,SAAO,oBAAoB,oBAAoB;AAC/C,SAAO,YAAY,YAAY;AACjC;;;ACyCA,SAAS,8BAOP,iBACA,oBACA,YACA,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,GACA;AACA,MAAI,oBAAoB;AACxB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,WAAS,gBAAgB,YAAmB,eAA0B;AACpE,YAAQ;AACR,eAAW;AACX,iBAAa,gBAAgB,OAAO,QAAQ;AAC5C,oBAAgB,mBAAmB,UAAU,QAAQ;AACrD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,wBAAoB;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,4BAA4B;AACnC,iBAAa,gBAAgB,OAAO,QAAQ;AAE5C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,QAAI,gBAAgB;AAClB,mBAAa,gBAAgB,OAAO,QAAQ;AAE9C,QAAI,mBAAmB;AACrB,sBAAgB,mBAAmB,UAAU,QAAQ;AAEvD,kBAAc,WAAW,YAAY,eAAe,QAAQ;AAC5D,WAAO;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,UAAM,iBAAiB,gBAAgB,OAAO,QAAQ;AACtD,UAAM,oBAAoB,CAAC,mBAAmB,gBAAgB,UAAU;AACxE,iBAAa;AAEb,QAAI;AACF,oBAAc,WAAW,YAAY,eAAe,QAAQ;AAE9D,WAAO;AAAA,EACT;AAEA,WAAS,sBAAsB,WAAkB,cAAyB;AACxE,UAAM,eAAe,CAAC,iBAAiB,cAAc,QAAQ;AAC7D,UAAM,eAAe,CAAC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,YAAQ;AACR,eAAW;AAEX,QAAI,gBAAgB,aAAc,QAAO,0BAA0B;AACnE,QAAI,aAAc,QAAO,eAAe;AACxC,QAAI,aAAc,QAAO,eAAe;AACxC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,uBACd,WACA,cACA;AACA,WAAO,oBACH,sBAAsB,WAAW,YAAY,IAC7C,gBAAgB,WAAW,YAAY;AAAA,EAC7C;AACF;AAgDe,SAAR,0BAOL,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAOA;AACA,QAAM,kBAAkB,oBAAoB,UAAU,OAAO;AAC7D,QAAM,qBAAqB,uBAAuB,UAAU,OAAO;AACnE,QAAM,aAAa,eAAe,UAAU,OAAO;AAEnD,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,uBAAmB,iBAAiB,oBAAoB,UAAU;AAAA,EACpE;AAEA,SAAO,8BAML,iBAAiB,oBAAoB,YAAY,UAAU,OAAO;AACtE;;;AC/Oe,SAAR,mBACL,gBACA,UACyB;AACzB,QAAM,sBAA+C,CAAC;AAEtD,aAAW,OAAO,gBAAgB;AAChC,UAAM,gBAAgB,eAAe,GAAG;AACxC,QAAI,OAAO,kBAAkB,YAAY;AACvC,0BAAoB,GAAG,IAAI,IAAI,SAAS,SAAS,cAAc,GAAG,IAAI,CAAC;AAAA,IACzE;AAAA,EACF;AACA,SAAO;AACT;;;ACXe,SAAR,cAA+B,KAAc;AAClD,MAAI,OAAO,QAAQ,YAAY,QAAQ,KAAM,QAAO;AAEpD,QAAM,QAAQ,OAAO,eAAe,GAAG;AACvC,MAAI,UAAU,KAAM,QAAO;AAE3B,MAAI,YAAY;AAChB,SAAO,OAAO,eAAe,SAAS,MAAM,MAAM;AAChD,gBAAY,OAAO,eAAe,SAAS;AAAA,EAC7C;AAEA,SAAO,UAAU;AACnB;;;ACbe,SAAR,kBACL,OACA,aACA,YACA;AACA,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB;AAAA,MACE,GAAG,UAAU,SAAS,WAAW,iDAAiD,KAAK;AAAA,IACzF;AAAA,EACF;AACF;;;ACGO,SAAS,uBAMd,aAOA;AACA,SAAO,SAAS,qBAAqB,UAAoB;AACvD,UAAM,WAAW,YAAY,QAAQ;AAErC,aAAS,mBAAmB;AAC1B,aAAO;AAAA,IACT;AACA,qBAAiB,oBAAoB;AACrC,WAAO;AAAA,EACT;AACF;AAUA,SAAS,qBAAqB,YAAwB;AACpD,SAAO,WAAW,oBACd,QAAQ,WAAW,iBAAiB,IACpC,WAAW,WAAW;AAC5B;AAcO,SAAS,mBACd,YACA,YACA;AACA,SAAO,SAAS,kBACd,UACA,EAAE,YAAY,GACd;AACA,UAAM,QAAQ,SAAS,gBACrB,iBACA,UACY;AACZ,aAAO,MAAM,oBACT,MAAM,WAAW,iBAAiB,QAAQ,IAC1C,MAAM,WAAW,iBAAiB,MAAS;AAAA,IACjD;AAGA,UAAM,oBAAoB;AAE1B,UAAM,aAAa,SAAS,uBAC1B,iBACA,UACY;AACZ,YAAM,aAAa;AACnB,YAAM,oBAAoB,qBAAqB,UAAU;AACzD,UAAI,QAAQ,MAAM,iBAAiB,QAAQ;AAE3C,UAAI,OAAO,UAAU,YAAY;AAC/B,cAAM,aAAa;AACnB,cAAM,oBAAoB,qBAAqB,KAAK;AACpD,gBAAQ,MAAM,iBAAiB,QAAQ;AAAA,MACzC;AAEA,UAAI,QAAQ,IAAI,aAAa;AAC3B,0BAAkB,OAAO,aAAa,UAAU;AAElD,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AACF;;;AC3GO,SAAS,wBAAwB,KAAc,MAAc;AAClE,SAAO,CACL,UACA,YACG;AACH,UAAM,IAAI;AAAA,MACR,yBAAyB,OAAO,GAAG,QAAQ,IAAI,uCAC7C,QAAQ,oBACV;AAAA,IACF;AAAA,EACF;AACF;;;ACPO,SAAS,0BACd,oBAGA;AACA,SAAO,sBAAsB,OAAO,uBAAuB,WACvD;AAAA,IAAuB,CAAC;AAAA;AAAA,MAEtB,mBAAmB,oBAAoB,QAAQ;AAAA;AAAA,EACjD,IACA,CAAC,qBACC,uBAAuB,CAAC,cAAwC;AAAA,IAC9D;AAAA,EACF,EAAE,IACF,OAAO,uBAAuB;AAAA;AAAA,IAE5B,mBAAmB,oBAAoB,oBAAoB;AAAA,MAC3D,wBAAwB,oBAAoB,oBAAoB;AAC1E;;;ACpBO,SAAS,uBACd,iBACA;AACA,SAAO,CAAC,kBACJ,uBAAuB,OAAO,CAAC,EAAE,IACjC,OAAO,oBAAoB;AAAA;AAAA,IAEzB,mBAAmB,iBAAiB,iBAAiB;AAAA,MACrD,wBAAwB,iBAAiB,iBAAiB;AAClE;;;ACPA,SAAS,kBAMP,YACA,eACA,UACc;AAEd,SAAO,EAAE,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc;AACxD;AAEA,SAAS,mBAMP,YAOoE;AACpE,SAAO,SAAS,oBACd,UACA,EAAE,aAAa,oBAAoB,GACnC;AACA,QAAI,aAAa;AACjB,QAAI;AAEJ,WAAO,SAAS,gBACd,YACA,eACA,UACA;AACA,YAAM,kBAAkB,WAAW,YAAY,eAAe,QAAQ;AAEtE,UAAI,YAAY;AACd,YAAI,CAAC,oBAAoB,iBAAiB,WAAW;AACnD,wBAAc;AAAA,MAClB,OAAO;AACL,qBAAa;AACb,sBAAc;AAEd,YAAI,QAAQ,IAAI,aAAa;AAC3B,4BAAkB,aAAa,aAAa,YAAY;AAAA,MAC5D;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,SAAS,kBAMd,YACA;AACA,SAAO,CAAC,aACJ,MAAM,oBACN,OAAO,eAAe,aACpB,mBAAmB,UAAU,IAC7B,wBAAwB,YAAY,YAAY;AACxD;;;AC5EO,SAAS,iBAAiB,UAAsB;AACrD,WAAS;AACX;;;ACWA,SAAS,2BAA2B;AAClC,MAAI,QAAyB;AAC7B,MAAI,OAAwB;AAE5B,SAAO;AAAA,IACL,QAAQ;AACN,cAAQ;AACR,aAAO;AAAA,IACT;AAAA,IAEA,SAAS;AACP,uBAAM,MAAM;AACV,YAAI,WAAW;AACf,eAAO,UAAU;AACf,mBAAS,SAAS;AAClB,qBAAW,SAAS;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,MAAM;AACJ,YAAM,YAAwB,CAAC;AAC/B,UAAI,WAAW;AACf,aAAO,UAAU;AACf,kBAAU,KAAK,QAAQ;AACvB,mBAAW,SAAS;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AAAA,IAEA,UAAU,UAAsB;AAC9B,UAAI,eAAe;AAEnB,YAAM,WAAsB,OAAO;AAAA,QACjC;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAEA,UAAI,SAAS,MAAM;AACjB,iBAAS,KAAK,OAAO;AAAA,MACvB,OAAO;AACL,gBAAQ;AAAA,MACV;AAEA,aAAO,SAAS,cAAc;AAC5B,YAAI,CAAC,gBAAgB,UAAU,KAAM;AACrC,uBAAe;AAEf,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,iBAAO,SAAS;AAAA,QAClB;AACA,YAAI,SAAS,MAAM;AACjB,mBAAS,KAAK,OAAO,SAAS;AAAA,QAChC,OAAO;AACL,kBAAQ,SAAS;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAeA,IAAM,gBAAgB;AAAA,EACpB,SAAS;AAAA,EAAC;AAAA,EACV,KAAK,MAAM,CAAC;AACd;AAEO,SAAS,mBAAmB,OAAY,WAA0B;AACvE,MAAI;AACJ,MAAI,YAAgC;AAGpC,MAAI,sBAAsB;AAG1B,MAAI,iBAAiB;AAErB,WAAS,aAAa,UAAsB;AAC1C,iBAAa;AAEb,UAAM,kBAAkB,UAAU,UAAU,QAAQ;AAGpD,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,CAAC,SAAS;AACZ,kBAAU;AACV,wBAAgB;AAChB,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,cAAU,OAAO;AAAA,EACnB;AAEA,WAAS,sBAAsB;AAC7B,QAAI,aAAa,eAAe;AAC9B,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAEA,WAAS,eAAe;AACtB,WAAO;AAAA,EACT;AAEA,WAAS,eAAe;AACtB;AACA,QAAI,CAAC,aAAa;AAChB,oBAAc,YACV,UAAU,aAAa,mBAAmB,IAC1C,MAAM,UAAU,mBAAmB;AAEvC,kBAAY,yBAAyB;AAAA,IACvC;AAAA,EACF;AAEA,WAAS,iBAAiB;AACxB;AACA,QAAI,eAAe,wBAAwB,GAAG;AAC5C,kBAAY;AACZ,oBAAc;AACd,gBAAU,MAAM;AAChB,kBAAY;AAAA,IACd;AAAA,EACF;AAEA,WAAS,mBAAmB;AAC1B,QAAI,CAAC,gBAAgB;AACnB,uBAAiB;AACjB,mBAAa;AAAA,IACf;AAAA,EACF;AAEA,WAAS,qBAAqB;AAC5B,QAAI,gBAAgB;AAClB,uBAAiB;AACjB,qBAAe;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,eAA6B;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,cAAc,MAAM;AAAA,EACtB;AAEA,SAAO;AACT;;;AC1KA,IAAM,YAAY,MAChB,CAAC,EACC,OAAO,WAAW,eAClB,OAAO,OAAO,aAAa,eAC3B,OAAO,OAAO,SAAS,kBAAkB;AAG7C,IAAM,QAAwB,0BAAU;AAWxC,IAAM,yBAAyB,MAC7B,OAAO,cAAc,eAAe,UAAU,YAAY;AAE5D,IAAM,gBAAgC,uCAAuB;AAE7D,IAAM,+BAA+B,MACnC,SAAS,gBAAgB,MAAM,kBAAkB,MAAM;AAElD,IAAM,4BACK,6CAA6B;;;ACvC/C,SAAS,GAAG,GAAY,GAAY;AAClC,MAAI,MAAM,GAAG;AACX,WAAO,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EAC7C,OAAO;AACL,WAAO,MAAM,KAAK,MAAM;AAAA,EAC1B;AACF;AAEe,SAAR,aAA8B,MAAW,MAAW;AACzD,MAAI,GAAG,MAAM,IAAI,EAAG,QAAO;AAE3B,MACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,MACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,QAAM,QAAQ,OAAO,KAAK,IAAI;AAE9B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAE1C,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,CAAC,CAAC,KACpD,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAClC;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;;;ACxBA,IAAM,gBAAgB;AAAA,EACpB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AACT;AAEA,IAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,WAAW;AAAA,EACX,MAAM;AACR;AAEA,IAAM,eAAe;AAAA,EACnB,CAAC,UAAU,GAAG;AAAA,EACd,CAAC,IAAI,GAAG;AACV;AAEA,SAAS,WAAW,WAAgB;AAElC,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AAGA,SAAO,aAAa,UAAU,UAAU,CAAC,KAAK;AAChD;AAkBA,IAAM,iBAAiB,OAAO;AAC9B,IAAM,sBAAsB,OAAO;AACnC,IAAM,wBAAwB,OAAO;AACrC,IAAM,2BAA2B,OAAO;AACxC,IAAM,iBAAiB,OAAO;AAC9B,IAAM,kBAAkB,OAAO;AAEhB,SAAR,qBAOL,iBACA,iBACgD;AAChD,MAAI,OAAO,oBAAoB,UAAU;AAGvC,QAAI,iBAAiB;AACnB,YAAM,qBAAqB,eAAe,eAAe;AACzD,UAAI,sBAAsB,uBAAuB,iBAAiB;AAChE,6BAAqB,iBAAiB,kBAAkB;AAAA,MAC1D;AAAA,IACF;AAEA,QAAI,OAA4B,oBAAoB,eAAe;AAEnE,QAAI,uBAAuB;AACzB,aAAO,KAAK,OAAO,sBAAsB,eAAe,CAAC;AAAA,IAC3D;AAEA,UAAM,gBAAgB,WAAW,eAAe;AAChD,UAAM,gBAAgB,WAAW,eAAe;AAEhD,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,UACE,CAAC,cAAc,GAAiC,KAChD,EAAE,iBAAiB,cAAc,GAAiC,MAClE,EAAE,iBAAiB,cAAc,GAAiC,IAClE;AACA,cAAM,aAAa,yBAAyB,iBAAiB,GAAG;AAChE,YAAI;AAEF,yBAAe,iBAAiB,KAAK,UAAW;AAAA,QAClD,SAAS,GAAG;AAAA,QAEZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;AC3HA,IAAM,aAA6B,uBAAO,IAAI,qBAAqB;AACnE,IAAM,KAMJ,OAAO,eAAe,cAClB;AAAA;AAAA,EAC2F,CAAC;AAAA;AAGlG,SAAS,aAAqD;AAC5D,MAAI,CAAC,MAAM,cAAe,QAAO,CAAC;AAElC,QAAM,aAAc,GAAG,UAAU,MAAM,oBAAI,IAGzC;AACF,MAAI,cAAc,WAAW,IAAI,MAAM,aAAa;AACpD,MAAI,CAAC,aAAa;AAChB,kBAAc,MAAM;AAAA,MAClB;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAY,cAAc;AAAA,IAC5B;AACA,eAAW,IAAI,MAAM,eAAe,WAAW;AAAA,EACjD;AACA,SAAO;AACT;AAEO,IAAM,oBAAkC,2BAAW;;;ACJ1D,IAAM,wBAAwB,CAAC,MAAM,IAAI;AAIzC,IAAM,qBAAqB,CAAC,SAAkB;AAC5C,MAAI;AACF,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B,SAAS,KAAK;AACZ,WAAO,OAAO,IAAI;AAAA,EACpB;AACF;AAQA,SAAS,kCACP,YACA,YACA,cACA;AACA,4BAA0B,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY;AACzE;AAGA,SAAS,oBACP,kBACA,gBACA,mBACA,cAEA,2BACA,kBACA;AAEA,mBAAiB,UAAU;AAC3B,oBAAkB,UAAU;AAG5B,MAAI,0BAA0B,SAAS;AACrC,8BAA0B,UAAU;AACpC,qBAAiB;AAAA,EACnB;AACF;AAIA,SAAS,iBACP,0BACA,OACA,cACA,oBACA,kBACA,gBACA,mBACA,WACA,2BACA,kBAEA,6BACA;AAEA,MAAI,CAAC,yBAA0B,QAAO,MAAM;AAAA,EAAC;AAG7C,MAAI,iBAAiB;AACrB,MAAI,kBAAgC;AAGpC,QAAM,kBAAkB,MAAM;AAC5B,QAAI,kBAAkB,CAAC,UAAU,SAAS;AAGxC;AAAA,IACF;AAGA,UAAM,mBAAmB,MAAM,SAAS;AAExC,QAAI,eAAe;AACnB,QAAI;AAGF,sBAAgB;AAAA,QACd;AAAA,QACA,iBAAiB;AAAA,MACnB;AAAA,IACF,SAAS,GAAG;AACV,cAAQ;AACR,wBAAkB;AAAA,IACpB;AAEA,QAAI,CAAC,OAAO;AACV,wBAAkB;AAAA,IACpB;AAGA,QAAI,kBAAkB,eAAe,SAAS;AAC5C,UAAI,CAAC,kBAAkB,SAAS;AAC9B,yBAAiB;AAAA,MACnB;AAAA,IACF,OAAO;AAKL,qBAAe,UAAU;AACzB,gCAA0B,UAAU;AACpC,wBAAkB,UAAU;AAI5B,kCAA4B;AAAA,IAC9B;AAAA,EACF;AAGA,eAAa,gBAAgB;AAC7B,eAAa,aAAa;AAI1B,kBAAgB;AAEhB,QAAM,qBAAqB,MAAM;AAC/B,qBAAiB;AACjB,iBAAa,eAAe;AAC5B,iBAAa,gBAAgB;AAE7B,QAAI,iBAAiB;AAMnB,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;AAgBA,SAAS,YAAY,GAAY,GAAY;AAC3C,SAAO,MAAM;AACf;AAmNA,IAAI,qCAAqC;AAsBzC,SAAS,QAOP,iBACA,oBACA,YACA;AAAA;AAAA;AAAA,EAGE;AAAA,EACA,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA;AAAA,EAGtB,aAAa;AAAA;AAAA,EAGb,UAAU;AACZ,IAAwD,CAAC,GAChD;AACT,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,SAAS,UAAa,CAAC,oCAAoC;AAC7D,2CAAqC;AACrC;AAAA,QACE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU;AAEhB,QAAM,sBAAsB,uBAAuB,eAAe;AAClE,QAAM,yBAAyB,0BAA0B,kBAAkB;AAC3E,QAAM,iBAAiB,kBAAkB,UAAU;AAEnD,QAAM,2BAA2B,QAAQ,eAAe;AAExD,QAAM,kBAAkB,CACtB,qBACG;AAIH,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAM,UAAwB,mCAAmB,gBAAgB;AACjE,UAAI,CAAC;AACH,cAAM,IAAI;AAAA,UACR,mFAAmF;AAAA,YACjF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,IACJ;AAEA,UAAM,uBACJ,iBAAiB,eAAe,iBAAiB,QAAQ;AAE3D,UAAM,cAAc,WAAW,oBAAoB;AAEnD,UAAM,yBAMF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,gBACP,OACA;AACA,YAAM,CAAC,cAAc,wBAAwB,YAAY,IACvD,MAAM,QAAQ,MAAM;AAIlB,cAAM,EAAE,wBAAAA,yBAAwB,GAAGC,cAAa,IAAI;AACpD,eAAO,CAAC,MAAM,SAASD,yBAAwBC,aAAY;AAAA,MAC7D,GAAG,CAAC,KAAK,CAAC;AAEZ,YAAM,eAA0C,MAAM,QAAQ,MAAM;AAGlE,YAAI,gBAAgB;AACpB,YAAI,cAAc,UAAU;AAC1B,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAM,UAAwB;AAAA;AAAA,cAE5B,oCAAC,aAAa,UAAb,IAAsB;AAAA,YACzB;AACA,gBAAI,CAAC,SAAS;AACZ,oBAAM,IAAI;AAAA,gBACR;AAAA,cACF;AAAA,YACF;AACA,4BAAgB;AAAA,UAClB;AAAA,QACF;AACA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,OAAO,CAAC;AAG1B,YAAM,eAAe,MAAM,WAAW,YAAY;AAKlD,YAAM,wBACJ,QAAQ,MAAM,KAAK,KACnB,QAAQ,MAAM,MAAO,QAAQ,KAC7B,QAAQ,MAAM,MAAO,QAAQ;AAC/B,YAAM,0BACJ,QAAQ,YAAY,KAAK,QAAQ,aAAc,KAAK;AAEtD,UACE,QAAQ,IAAI,aAAa,gBACzB,CAAC,yBACD,CAAC,yBACD;AACA,cAAM,IAAI;AAAA,UACR,6CACM,WAAW,4JAEc,WAAW;AAAA,QAC5C;AAAA,MACF;AAGA,YAAM,QAAe,wBACjB,MAAM,QACN,aAAc;AAElB,YAAM,iBAAiB,0BACnB,aAAc,iBACd,MAAM;AAEV,YAAM,qBAAqB,MAAM,QAAQ,MAAM;AAG7C,eAAO,0BAAuB,MAAM,UAAU,sBAAsB;AAAA,MACtE,GAAG,CAAC,KAAK,CAAC;AAEV,YAAM,CAAC,cAAc,gBAAgB,IAAI,MAAM,QAAQ,MAAM;AAC3D,YAAI,CAAC,yBAA0B,QAAO;AAItC,cAAMC,gBAAe;AAAA,UACnB;AAAA,UACA,wBAAwB,SAAY,aAAc;AAAA,QACpD;AAMA,cAAMC,oBACJD,cAAa,iBAAiB,KAAKA,aAAY;AAEjD,eAAO,CAACA,eAAcC,iBAAgB;AAAA,MACxC,GAAG,CAAC,OAAO,uBAAuB,YAAY,CAAC;AAI/C,YAAM,yBAAyB,MAAM,QAAQ,MAAM;AACjD,YAAI,uBAAuB;AAIzB,iBAAO;AAAA,QACT;AAIA,eAAO;AAAA,UACL,GAAG;AAAA,UACH;AAAA,QACF;AAAA,MACF,GAAG,CAAC,uBAAuB,cAAc,YAAY,CAAC;AAGtD,YAAM,iBAAiB,MAAM,OAAgB,MAAS;AACtD,YAAM,mBAAmB,MAAM,OAAO,YAAY;AAClD,YAAM,4BAA4B,MAAM,OAAgB,MAAS;AACjE,YAAM,oBAAoB,MAAM,OAAO,KAAK;AAC5C,YAAM,YAAY,MAAM,OAAO,KAAK;AAMpC,YAAM,kCAAkC,MAAM;AAAA,QAC5C;AAAA,MACF;AAEA,gCAA0B,MAAM;AAC9B,kBAAU,UAAU;AACpB,eAAO,MAAM;AACX,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF,GAAG,CAAC,CAAC;AAEL,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD,cAAM,WAAW,MAAM;AAOrB,cACE,0BAA0B,WAC1B,iBAAiB,iBAAiB,SAClC;AACA,mBAAO,0BAA0B;AAAA,UACnC;AAMA,iBAAO,mBAAmB,MAAM,SAAS,GAAG,YAAY;AAAA,QAC1D;AACA,eAAO;AAAA,MACT,GAAG,CAAC,OAAO,YAAY,CAAC;AAMxB,YAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,cAAM,YAAY,CAAC,kBAA8B;AAC/C,cAAI,CAAC,cAAc;AACjB,mBAAO,MAAM;AAAA,YAAC;AAAA,UAChB;AAEA,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,YAAY,CAAC;AAEjB,wCAAkC,qBAAqB;AAAA,QACrD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,UAAI;AAEJ,UAAI;AACF,2BAAmB,MAAM;AAAA;AAAA,UAEvB;AAAA;AAAA;AAAA,UAGA;AAAA,UACA,iBACI,MAAM,mBAAmB,eAAe,GAAG,YAAY,IACvD;AAAA,QACN;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,gCAAgC,SAAS;AAE3C;AAAC,UAAC,IAAc,WACd;AAAA;AAAA,EAA4D,gCAAgC,QAAQ,KAAK;AAAA;AAAA;AAAA,QAC7G;AAEA,cAAM;AAAA,MACR;AAEA,gCAA0B,MAAM;AAC9B,wCAAgC,UAAU;AAC1C,kCAA0B,UAAU;AACpC,uBAAe,UAAU;AAAA,MAC3B,CAAC;AAID,YAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD;AAAA;AAAA,UAEE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG;AAAA,cACJ,KAAK;AAAA;AAAA,UACP;AAAA;AAAA,MAEJ,GAAG,CAAC,wBAAwB,kBAAkB,gBAAgB,CAAC;AAI/D,YAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,YAAI,0BAA0B;AAI5B,iBACE,oCAAC,aAAa,UAAb,EAAsB,OAAO,0BAC3B,wBACH;AAAA,QAEJ;AAEA,eAAO;AAAA,MACT,GAAG,CAAC,cAAc,0BAA0B,sBAAsB,CAAC;AAEnE,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe;AAO3C,UAAM,UAAU;AAIhB,YAAQ,mBAAmB;AAC3B,YAAQ,cAAc,gBAAgB,cAAc;AAEpD,QAAI,YAAY;AACd,YAAM,aAAa,MAAM;AAAA,QACvB,SAAS,kBAAkB,OAAO,KAAK;AAErC,iBAAO,oCAAC,WAAS,GAAG,OAAO,wBAAwB,KAAK;AAAA,QAC1D;AAAA,MACF;AAEA,YAAM,YAAY;AAClB,gBAAU,cAAc;AACxB,gBAAU,mBAAmB;AAC7B,aAAqB,qCAAa,WAAW,gBAAgB;AAAA,IAC/D;AAEA,WAAqB,qCAAa,SAAS,gBAAgB;AAAA,EAC7D;AAEA,SAAO;AACT;AAEA,IAAO,kBAAQ;;;ACpvBf,SAAS,SACP,eACA;AACA,QAAM,EAAE,UAAU,SAAS,aAAa,MAAM,IAAI;AAElD,QAAM,eAAe,MAAM,QAAQ,MAAM;AACvC,UAAM,eAAe,mBAAmB,KAAK;AAE7C,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA,gBAAgB,cAAc,MAAM,cAAc;AAAA,IACpD;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO;AAAA,IACT,OAAO;AACL,YAAM,EAAE,wBAAwB,QAAQ,iBAAiB,OAAO,IAC9D;AAEF,aAAuB,uBAAO,OAAO,kBAAkB;AAAA,QACrD;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,OAAO,WAAW,CAAC;AAEvB,QAAM,gBAAgB,MAAM,QAAQ,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC;AAEnE,4BAA0B,MAAM;AAC9B,UAAM,EAAE,aAAa,IAAI;AACzB,iBAAa,gBAAgB,aAAa;AAC1C,iBAAa,aAAa;AAE1B,QAAI,kBAAkB,MAAM,SAAS,GAAG;AACtC,mBAAa,iBAAiB;AAAA,IAChC;AACA,WAAO,MAAM;AACX,mBAAa,eAAe;AAC5B,mBAAa,gBAAgB;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,cAAc,aAAa,CAAC;AAEhC,QAAM,UAAU,WAAW;AAE3B,SAAO,oCAAC,QAAQ,UAAR,EAAiB,OAAO,gBAAe,QAAS;AAC1D;AAEA,IAAO,mBAAQ;;;AC7FR,SAAS,uBAAuB,UAAU,mBAAmB;AAClE,SAAO,SAASC,mBAA0C;AACxD,UAAM,eAAe,MAAM,WAAW,OAAO;AAE7C,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,cAAc;AAC1D,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAkBO,IAAM,kBAAgC,uCAAuB;;;ACuC7D,SAAS,gBAKd,UAGY,mBACZ;AACA,QAAMC,mBACJ,YAAY,oBACR;AAAA;AAAA,IAEA,uBAAuB,OAAO;AAAA;AACpC,QAAMC,YAAW,MAAM;AACrB,UAAM,EAAE,MAAM,IAAID,iBAAgB;AAClC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,WAAU;AAAA,IACtB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAiBO,IAAM,WAAyB,gCAAgB;;;ACjE/C,SAAS,mBAKd,UAGY,mBACZ;AACA,QAAMC,YACJ,YAAY,oBAAoB,WAAkB,gBAAgB,OAAO;AAE3E,QAAMC,eAAc,MAAM;AACxB,UAAM,QAAQD,UAAS;AACvB,WAAO,MAAM;AAAA,EACf;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAuBO,IAAM,cAA4B,mCAAmB;;;ACrG5D,SAAS,wCAAwC;AAoHjD,IAAM,cAA+B,CAAC,GAAG,MAAM,MAAM;AAQ9C,SAAS,mBACd,UAGY,mBACC;AACb,QAAMC,mBACJ,YAAY,oBACR,kBACA,uBAAuB,OAAO;AAEpC,QAAMC,eAAc,CAClB,UACA,sBAE4C,CAAC,MAChC;AACb,UAAM,EAAE,aAAa,YAAY,IAC/B,OAAO,wBAAwB,aAC3B,EAAE,YAAY,oBAAoB,IAClC;AACN,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AACA,UAAI,OAAO,aAAa,YAAY;AAClC,cAAM,IAAI,MAAM,uDAAuD;AAAA,MACzE;AACA,UAAI,OAAO,eAAe,YAAY;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eAAeD,iBAAgB;AAErC,UAAM,EAAE,OAAO,cAAc,eAAe,IAAI;AAEhD,UAAM,WAAW,MAAM,OAAO,IAAI;AAElC,UAAM,kBAAkB,MAAM;AAAA,MAC5B;AAAA,QACE,CAAC,SAAS,IAAI,EAAE,OAAe;AAC7B,gBAAM,WAAW,SAAS,KAAK;AAC/B,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAM,EAAE,gBAAgB,CAAC,EAAE,IACzB,OAAO,wBAAwB,aAC3B,CAAC,IACD;AACN,kBAAM,EAAE,uBAAuB,eAAe,IAAI;AAClD,kBAAM;AAAA,cACJ,uBAAuB;AAAA,cACvB,gBAAgB;AAAA,YAClB,IAAI;AAAA,cACF;AAAA,cACA;AAAA,cACA,GAAG;AAAA,YACL;AACA,gBACE,wBAAwB,YACvB,wBAAwB,UAAU,SAAS,SAC5C;AACA,oBAAM,YAAY,SAAS,KAAK;AAChC,kBAAI,CAAC,WAAW,UAAU,SAAS,GAAG;AACpC,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA,WAAW;AAAA,oBACX;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AACA,gBACE,+BAA+B,YAC9B,+BAA+B,UAAU,SAAS,SACnD;AAEA,kBAAI,aAAa,OAAO;AACtB,oBAAI,QAA4B;AAChC,oBAAI;AACF,wBAAM,IAAI,MAAM;AAAA,gBAClB,SAAS,GAAG;AAEV;AAAC,mBAAC,EAAE,MAAM,IAAI;AAAA,gBAChB;AACA,wBAAQ;AAAA,kBACN,eACG,SAAS,QAAQ,aAClB;AAAA,kBAEF,EAAE,MAAM;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AACA,gBAAI,SAAS,QAAS,UAAS,UAAU;AAAA,UAC3C;AACA,iBAAO;AAAA,QACT;AAAA,MACF,EAAE,SAAS,IAAI;AAAA,MACf,CAAC,QAAQ;AAAA,IACX;AAEA,UAAM,gBAAgB;AAAA,MACpB,aAAa;AAAA,MACb,MAAM;AAAA,MACN,kBAAkB,MAAM;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AAEA,UAAM,cAAc,aAAa;AAEjC,WAAO;AAAA,EACT;AAEA,SAAO,OAAOC,cAAa;AAAA,IACzB,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AACT;AAyBO,IAAM,cAA4B,mCAAmB;;;AC7O5D,IAAM,QAAQ;","names":["reactReduxForwardedRef","wrapperProps","subscription","notifyNestedSubs","useReduxContext","useReduxContext","useStore","useStore","useDispatch","useReduxContext","useSelector"]}
Index: de_modules/react-redux/dist/rsc.mjs
===================================================================
--- node_modules/react-redux/dist/rsc.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-// src/utils/shallowEqual.ts
-function is(x, y) {
-  if (x === y) {
-    return x !== 0 || y !== 0 || 1 / x === 1 / y;
-  } else {
-    return x !== x && y !== y;
-  }
-}
-function shallowEqual(objA, objB) {
-  if (is(objA, objB)) return true;
-  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
-    return false;
-  }
-  const keysA = Object.keys(objA);
-  const keysB = Object.keys(objB);
-  if (keysA.length !== keysB.length) return false;
-  for (let i = 0; i < keysA.length; i++) {
-    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-// src/index-rsc.ts
-var throwNotSupportedError = (...args) => {
-  throw new Error(
-    "This function is not supported in React Server Components. Please only use this export in a Client Component."
-  );
-};
-var ReactReduxContext = {};
-export {
-  throwNotSupportedError as Provider,
-  ReactReduxContext,
-  throwNotSupportedError as batch,
-  throwNotSupportedError as connect,
-  throwNotSupportedError as createDispatchHook,
-  throwNotSupportedError as createSelectorHook,
-  throwNotSupportedError as createStoreHook,
-  shallowEqual,
-  throwNotSupportedError as useDispatch,
-  throwNotSupportedError as useSelector,
-  throwNotSupportedError as useStore
-};
-//# sourceMappingURL=rsc.mjs.map
Index: de_modules/react-redux/dist/rsc.mjs.map
===================================================================
--- node_modules/react-redux/dist/rsc.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/shallowEqual.ts","../src/index-rsc.ts"],"sourcesContent":["function is(x: unknown, y: unknown) {\r\n  if (x === y) {\r\n    return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n  } else {\r\n    return x !== x && y !== y\r\n  }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n  if (is(objA, objB)) return true\r\n\r\n  if (\r\n    typeof objA !== 'object' ||\r\n    objA === null ||\r\n    typeof objB !== 'object' ||\r\n    objB === null\r\n  ) {\r\n    return false\r\n  }\r\n\r\n  const keysA = Object.keys(objA)\r\n  const keysB = Object.keys(objB)\r\n\r\n  if (keysA.length !== keysB.length) return false\r\n\r\n  for (let i = 0; i < keysA.length; i++) {\r\n    if (\r\n      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n      !is(objA[keysA[i]], objB[keysA[i]])\r\n    ) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  return true\r\n}\r\n","import type * as normal from './index'\nimport type * as rsc from './index-rsc'\n\n// checks to make sure we didn't forgot to replicate any exports\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _check: typeof normal = {} as typeof rsc\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _check2: typeof rsc = {} as typeof normal\n\n// -------------------------------------------------------------------------------------\n\nconst throwNotSupportedError = ((\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  ...args: any[]\n): any => {\n  throw new Error(\n    'This function is not supported in React Server Components. Please only use this export in a Client Component.',\n  )\n}) as any\n\nexport {\n  throwNotSupportedError as Provider,\n  throwNotSupportedError as batch,\n  throwNotSupportedError as connect,\n  throwNotSupportedError as createDispatchHook,\n  throwNotSupportedError as createSelectorHook,\n  throwNotSupportedError as createStoreHook,\n  throwNotSupportedError as useDispatch,\n  throwNotSupportedError as useSelector,\n  throwNotSupportedError as useStore,\n}\nexport const ReactReduxContext = {} as any\nexport { default as shallowEqual } from './utils/shallowEqual'\n"],"mappings":";AAAA,SAAS,GAAG,GAAY,GAAY;AAClC,MAAI,MAAM,GAAG;AACX,WAAO,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,EAC7C,OAAO;AACL,WAAO,MAAM,KAAK,MAAM;AAAA,EAC1B;AACF;AAEe,SAAR,aAA8B,MAAW,MAAW;AACzD,MAAI,GAAG,MAAM,IAAI,EAAG,QAAO;AAE3B,MACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,MACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,QAAM,QAAQ,OAAO,KAAK,IAAI;AAE9B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAE1C,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,CAAC,CAAC,KACpD,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAClC;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;;;ACvBA,IAAM,yBAA0B,IAE3B,SACK;AACR,QAAM,IAAI;AAAA,IACR;AAAA,EACF;AACF;AAaO,IAAM,oBAAoB,CAAC;","names":[]}
Index: de_modules/react-redux/package.json
===================================================================
--- node_modules/react-redux/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-{
-  "name": "react-redux",
-  "version": "9.2.0",
-  "description": "Official React bindings for Redux",
-  "keywords": [
-    "react",
-    "reactjs",
-    "redux"
-  ],
-  "license": "MIT",
-  "author": "Dan Abramov <dan.abramov@me.com> (https://github.com/gaearon)",
-  "homepage": "https://github.com/reduxjs/react-redux",
-  "repository": "github:reduxjs/react-redux",
-  "bugs": "https://github.com/reduxjs/react-redux/issues",
-  "module": "dist/react-redux.legacy-esm.js",
-  "main": "dist/cjs/index.js",
-  "react-native": "./dist/react-redux.legacy-esm.js",
-  "types": "dist/react-redux.d.ts",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "types": "./dist/react-redux.d.ts",
-      "react-server": "./dist/rsc.mjs",
-      "react-native": "./dist/react-redux.legacy-esm.js",
-      "import": "./dist/react-redux.mjs",
-      "default": "./dist/cjs/index.js"
-    },
-    "./alternate-renderers": {
-      "types": "./dist/react-redux.d.ts",
-      "import": "./dist/react-redux.mjs",
-      "default": "./dist/cjs/index.js"
-    }
-  },
-  "sideEffects": false,
-  "files": [
-    "dist",
-    "src"
-  ],
-  "scripts": {
-    "build": "yarn clean && tsup",
-    "clean": "rimraf lib dist es coverage",
-    "api-types": "api-extractor run --local",
-    "format": "prettier --write \"{src,test}/**/*.{js,ts,tsx}\" \"docs/**/*.md\"",
-    "lint": "eslint src test",
-    "lint:fix": "eslint src test --fix",
-    "prepack": "yarn build",
-    "pretest": "yarn lint",
-    "test": "vitest --run --typecheck",
-    "test:watch": "vitest --watch",
-    "type-tests": "tsc --noEmit -p tsconfig.test.json",
-    "coverage": "codecov"
-  },
-  "peerDependencies": {
-    "@types/react": "^18.2.25 || ^19",
-    "react": "^18.0 || ^19",
-    "redux": "^5.0.0"
-  },
-  "peerDependenciesMeta": {
-    "@types/react": {
-      "optional": true
-    },
-    "redux": {
-      "optional": true
-    }
-  },
-  "dependencies": {
-    "@types/use-sync-external-store": "^0.0.6",
-    "use-sync-external-store": "^1.4.0"
-  },
-  "devDependencies": {
-    "@microsoft/api-extractor": "^7.47.0",
-    "@reduxjs/toolkit": "^2.2.5",
-    "@testing-library/dom": "^10.4.0",
-    "@testing-library/jest-dom": "^6.6.3",
-    "@testing-library/react": "^16.1.0",
-    "@types/node": "^20.14.2",
-    "@types/prop-types": "^15.7.12",
-    "@types/react": "^19.0.1",
-    "@types/react-dom": "^19.0.1",
-    "codecov": "^3.8.3",
-    "cross-env": "^7.0.3",
-    "eslint": "^8.57.0",
-    "eslint-config-prettier": "^9.1.0",
-    "eslint-import-resolver-typescript": "^3.6.1",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-prettier": "^5.1.3",
-    "eslint-plugin-react": "^7.34.2",
-    "jsdom": "^25.0.1",
-    "prettier": "^3.3.3",
-    "react": "^19.0.0",
-    "react-dom": "^19.0.0",
-    "redux": "^5.0.1",
-    "rimraf": "^5.0.7",
-    "tsup": "^8.3.5",
-    "typescript": "^5.5.4",
-    "typescript-eslint": "^7.12.0",
-    "vitest": "^1.6.0"
-  },
-  "packageManager": "yarn@4.4.1"
-}
Index: de_modules/react-redux/src/components/Context.ts
===================================================================
--- node_modules/react-redux/src/components/Context.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import type { Context } from 'react'
-import { React } from '../utils/react'
-import type { Action, Store, UnknownAction } from 'redux'
-import type { Subscription } from '../utils/Subscription'
-import type { ProviderProps } from './Provider'
-
-export interface ReactReduxContextValue<
-  SS = any,
-  A extends Action<string> = UnknownAction,
-> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {
-  store: Store<SS, A>
-  subscription: Subscription
-  getServerState?: () => SS
-}
-
-const ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)
-const gT: {
-  [ContextKey]?: Map<
-    typeof React.createContext,
-    Context<ReactReduxContextValue | null>
-  >
-} = (
-  typeof globalThis !== 'undefined'
-    ? globalThis
-    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}
-) as any
-
-function getContext(): Context<ReactReduxContextValue | null> {
-  if (!React.createContext) return {} as any
-
-  const contextMap = (gT[ContextKey] ??= new Map<
-    typeof React.createContext,
-    Context<ReactReduxContextValue | null>
-  >())
-  let realContext = contextMap.get(React.createContext)
-  if (!realContext) {
-    realContext = React.createContext<ReactReduxContextValue | null>(
-      null as any,
-    )
-    if (process.env.NODE_ENV !== 'production') {
-      realContext.displayName = 'ReactRedux'
-    }
-    contextMap.set(React.createContext, realContext)
-  }
-  return realContext
-}
-
-export const ReactReduxContext = /*#__PURE__*/ getContext()
-
-export type ReactReduxContextInstance = typeof ReactReduxContext
Index: de_modules/react-redux/src/components/Provider.tsx
===================================================================
--- node_modules/react-redux/src/components/Provider.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,105 +1,0 @@
-import type { Context, ReactNode } from 'react'
-import { React } from '../utils/react'
-import type { Action, Store, UnknownAction } from 'redux'
-import type { DevModeCheckFrequency } from '../hooks/useSelector'
-import { createSubscription } from '../utils/Subscription'
-import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'
-import type { ReactReduxContextValue } from './Context'
-import { ReactReduxContext } from './Context'
-
-export interface ProviderProps<
-  A extends Action<string> = UnknownAction,
-  S = unknown,
-> {
-  /**
-   * The single Redux store in your application.
-   */
-  store: Store<S, A>
-
-  /**
-   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.
-   */
-  serverState?: S
-
-  /**
-   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.
-   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.
-   * Set the initial value to null, and the hooks will error
-   * if this is not overwritten by Provider.
-   */
-  context?: Context<ReactReduxContextValue<S, A> | null>
-
-  /**
-   * Determines the frequency of stability checks for all selectors.
-   * This setting overrides the global configuration for
-   * the `useSelector` stability check, allowing you to specify how often
-   * these checks should occur in development mode.
-   *
-   * @since 8.1.0
-   */
-  stabilityCheck?: DevModeCheckFrequency
-
-  /**
-   * Determines the frequency of identity function checks for all selectors.
-   * This setting overrides the global configuration for
-   * the `useSelector` identity function check, allowing you to specify how often
-   * these checks should occur in development mode.
-   *
-   * **Note**: Previously referred to as `noopCheck`.
-   *
-   * @since 9.0.0
-   */
-  identityFunctionCheck?: DevModeCheckFrequency
-
-  children: ReactNode
-}
-
-function Provider<A extends Action<string> = UnknownAction, S = unknown>(
-  providerProps: ProviderProps<A, S>,
-) {
-  const { children, context, serverState, store } = providerProps
-
-  const contextValue = React.useMemo(() => {
-    const subscription = createSubscription(store)
-
-    const baseContextValue = {
-      store,
-      subscription,
-      getServerState: serverState ? () => serverState : undefined,
-    }
-
-    if (process.env.NODE_ENV === 'production') {
-      return baseContextValue
-    } else {
-      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =
-        providerProps
-
-      return /* @__PURE__ */ Object.assign(baseContextValue, {
-        stabilityCheck,
-        identityFunctionCheck,
-      })
-    }
-  }, [store, serverState])
-
-  const previousState = React.useMemo(() => store.getState(), [store])
-
-  useIsomorphicLayoutEffect(() => {
-    const { subscription } = contextValue
-    subscription.onStateChange = subscription.notifyNestedSubs
-    subscription.trySubscribe()
-
-    if (previousState !== store.getState()) {
-      subscription.notifyNestedSubs()
-    }
-    return () => {
-      subscription.tryUnsubscribe()
-      subscription.onStateChange = undefined
-    }
-  }, [contextValue, previousState])
-
-  const Context = context || ReactReduxContext
-
-  return <Context.Provider value={contextValue}>{children}</Context.Provider>
-}
-
-export default Provider
Index: de_modules/react-redux/src/components/connect.tsx
===================================================================
--- node_modules/react-redux/src/components/connect.tsx	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,813 +1,0 @@
-/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */
-import type { ComponentType } from 'react'
-import { React } from '../utils/react'
-import { isValidElementType, isContextConsumer } from '../utils/react-is'
-
-import type { Store } from 'redux'
-
-import type {
-  ConnectedComponent,
-  InferableComponentEnhancer,
-  InferableComponentEnhancerWithProps,
-  ResolveThunks,
-  DispatchProp,
-  ConnectPropsMaybeWithoutContext,
-} from '../types'
-
-import type {
-  MapStateToPropsParam,
-  MapDispatchToPropsParam,
-  MergeProps,
-  MapDispatchToPropsNonObject,
-  SelectorFactoryOptions,
-} from '../connect/selectorFactory'
-import defaultSelectorFactory from '../connect/selectorFactory'
-import { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'
-import { mapStateToPropsFactory } from '../connect/mapStateToProps'
-import { mergePropsFactory } from '../connect/mergeProps'
-
-import type { Subscription } from '../utils/Subscription'
-import { createSubscription } from '../utils/Subscription'
-import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'
-import shallowEqual from '../utils/shallowEqual'
-import hoistStatics from '../utils/hoistStatics'
-import warning from '../utils/warning'
-
-import type {
-  ReactReduxContextValue,
-  ReactReduxContextInstance,
-} from './Context'
-import { ReactReduxContext } from './Context'
-
-// Define some constant arrays just to avoid re-creating these
-const EMPTY_ARRAY: [unknown, number] = [null, 0]
-const NO_SUBSCRIPTION_ARRAY = [null, null]
-
-// Attempts to stringify whatever not-really-a-component value we were given
-// for logging in an error message
-const stringifyComponent = (Comp: unknown) => {
-  try {
-    return JSON.stringify(Comp)
-  } catch (err) {
-    return String(Comp)
-  }
-}
-
-type EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>
-
-// This is "just" a `useLayoutEffect`, but with two modifications:
-// - we need to fall back to `useEffect` in SSR to avoid annoying warnings
-// - we extract this to a separate function to avoid closing over values
-//   and causing memory leaks
-function useIsomorphicLayoutEffectWithArgs(
-  effectFunc: EffectFunc,
-  effectArgs: any[],
-  dependencies?: React.DependencyList,
-) {
-  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)
-}
-
-// Effect callback, extracted: assign the latest props values to refs for later usage
-function captureWrapperProps(
-  lastWrapperProps: React.MutableRefObject<unknown>,
-  lastChildProps: React.MutableRefObject<unknown>,
-  renderIsScheduled: React.MutableRefObject<boolean>,
-  wrapperProps: unknown,
-  // actualChildProps: unknown,
-  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,
-  notifyNestedSubs: () => void,
-) {
-  // We want to capture the wrapper props and child props we used for later comparisons
-  lastWrapperProps.current = wrapperProps
-  renderIsScheduled.current = false
-
-  // If the render was from a store update, clear out that reference and cascade the subscriber update
-  if (childPropsFromStoreUpdate.current) {
-    childPropsFromStoreUpdate.current = null
-    notifyNestedSubs()
-  }
-}
-
-// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,
-// check for updates after dispatched actions, and trigger re-renders.
-function subscribeUpdates(
-  shouldHandleStateChanges: boolean,
-  store: Store,
-  subscription: Subscription,
-  childPropsSelector: (state: unknown, props: unknown) => unknown,
-  lastWrapperProps: React.MutableRefObject<unknown>,
-  lastChildProps: React.MutableRefObject<unknown>,
-  renderIsScheduled: React.MutableRefObject<boolean>,
-  isMounted: React.MutableRefObject<boolean>,
-  childPropsFromStoreUpdate: React.MutableRefObject<unknown>,
-  notifyNestedSubs: () => void,
-  // forceComponentUpdateDispatch: React.Dispatch<any>,
-  additionalSubscribeListener: () => void,
-) {
-  // If we're not subscribed to the store, nothing to do here
-  if (!shouldHandleStateChanges) return () => {}
-
-  // Capture values for checking if and when this component unmounts
-  let didUnsubscribe = false
-  let lastThrownError: Error | null = null
-
-  // We'll run this callback every time a store subscription update propagates to this component
-  const checkForUpdates = () => {
-    if (didUnsubscribe || !isMounted.current) {
-      // Don't run stale listeners.
-      // Redux doesn't guarantee unsubscriptions happen until next dispatch.
-      return
-    }
-
-    // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it
-    const latestStoreState = store.getState()
-
-    let newChildProps, error
-    try {
-      // Actually run the selector with the most recent store state and wrapper props
-      // to determine what the child props should be
-      newChildProps = childPropsSelector(
-        latestStoreState,
-        lastWrapperProps.current,
-      )
-    } catch (e) {
-      error = e
-      lastThrownError = e as Error | null
-    }
-
-    if (!error) {
-      lastThrownError = null
-    }
-
-    // If the child props haven't changed, nothing to do here - cascade the subscription update
-    if (newChildProps === lastChildProps.current) {
-      if (!renderIsScheduled.current) {
-        notifyNestedSubs()
-      }
-    } else {
-      // Save references to the new child props.  Note that we track the "child props from store update"
-      // as a ref instead of a useState/useReducer because we need a way to determine if that value has
-      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without
-      // forcing another re-render, which we don't want.
-      lastChildProps.current = newChildProps
-      childPropsFromStoreUpdate.current = newChildProps
-      renderIsScheduled.current = true
-
-      // TODO This is hacky and not how `uSES` is meant to be used
-      // Trigger the React `useSyncExternalStore` subscriber
-      additionalSubscribeListener()
-    }
-  }
-
-  // Actually subscribe to the nearest connected ancestor (or store)
-  subscription.onStateChange = checkForUpdates
-  subscription.trySubscribe()
-
-  // Pull data from the store after first render in case the store has
-  // changed since we began.
-  checkForUpdates()
-
-  const unsubscribeWrapper = () => {
-    didUnsubscribe = true
-    subscription.tryUnsubscribe()
-    subscription.onStateChange = null
-
-    if (lastThrownError) {
-      // It's possible that we caught an error due to a bad mapState function, but the
-      // parent re-rendered without this component and we're about to unmount.
-      // This shouldn't happen as long as we do top-down subscriptions correctly, but
-      // if we ever do those wrong, this throw will surface the error in our tests.
-      // In that case, throw the error from here so it doesn't get lost.
-      throw lastThrownError
-    }
-  }
-
-  return unsubscribeWrapper
-}
-
-// Reducer initial state creation for our update reducer
-const initStateUpdates = () => EMPTY_ARRAY
-
-export interface ConnectProps {
-  /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */
-  context?: ReactReduxContextInstance
-  /** A Redux store instance to be used for subscriptions instead of the store from a Provider */
-  store?: Store
-}
-
-interface InternalConnectProps extends ConnectProps {
-  reactReduxForwardedRef?: React.ForwardedRef<unknown>
-}
-
-function strictEqual(a: unknown, b: unknown) {
-  return a === b
-}
-
-/**
- * Infers the type of props that a connector will inject into a component.
- */
-export type ConnectedProps<TConnector> =
-  TConnector extends InferableComponentEnhancerWithProps<
-    infer TInjectedProps,
-    any
-  >
-    ? unknown extends TInjectedProps
-      ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>
-        ? TInjectedProps
-        : never
-      : TInjectedProps
-    : never
-
-export interface ConnectOptions<
-  State = unknown,
-  TStateProps = {},
-  TOwnProps = {},
-  TMergedProps = {},
-> {
-  forwardRef?: boolean
-  context?: typeof ReactReduxContext
-  areStatesEqual?: (
-    nextState: State,
-    prevState: State,
-    nextOwnProps: TOwnProps,
-    prevOwnProps: TOwnProps,
-  ) => boolean
-
-  areOwnPropsEqual?: (
-    nextOwnProps: TOwnProps,
-    prevOwnProps: TOwnProps,
-  ) => boolean
-
-  areStatePropsEqual?: (
-    nextStateProps: TStateProps,
-    prevStateProps: TStateProps,
-  ) => boolean
-  areMergedPropsEqual?: (
-    nextMergedProps: TMergedProps,
-    prevMergedProps: TMergedProps,
-  ) => boolean
-}
-
-/**
- * Connects a React component to a Redux store.
- *
- * - Without arguments, just wraps the component, without changing the behavior / props
- *
- * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior
- * is to override ownProps (as stated in the docs), so what remains is everything that's
- * not a state or dispatch prop
- *
- * - When 3rd param is passed, we don't know if ownProps propagate and whether they
- * should be valid component props, because it depends on mergeProps implementation.
- * As such, it is the user's responsibility to extend ownProps interface from state or
- * dispatch props or both when applicable
- *
- * @param mapStateToProps
- * @param mapDispatchToProps
- * @param mergeProps
- * @param options
- */
-export interface Connect<DefaultState = unknown> {
-  // tslint:disable:no-unnecessary-generics
-  (): InferableComponentEnhancer<DispatchProp>
-
-  /** mapState only */
-  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-  ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>
-
-  /** mapDispatch only (as a function) */
-  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>
-
-  /** mapDispatch only (as an object) */
-  <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    ResolveThunks<TDispatchProps>,
-    TOwnProps
-  >
-
-  /** mapState and mapDispatch (as a function)*/
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    TStateProps & TDispatchProps,
-    TOwnProps
-  >
-
-  /** mapState and mapDispatch (nullish) */
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: null | undefined,
-  ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>
-
-  /** mapState and mapDispatch (as an object) */
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    TStateProps & ResolveThunks<TDispatchProps>,
-    TOwnProps
-  >
-
-  /** mergeProps only */
-  <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: null | undefined,
-    mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,
-  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>
-
-  /** mapState and mergeProps */
-  <
-    TStateProps = {},
-    no_dispatch = {},
-    TOwnProps = {},
-    TMergedProps = {},
-    State = DefaultState,
-  >(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: null | undefined,
-    mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,
-  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>
-
-  /** mapDispatch (as a object) and mergeProps */
-  <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-    mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,
-  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>
-
-  /** mapState and options */
-  <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: null | undefined,
-    mergeProps: null | undefined,
-    options: ConnectOptions<State, TStateProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>
-
-  /** mapDispatch (as a function) and options */
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,
-    mergeProps: null | undefined,
-    options: ConnectOptions<{}, TStateProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>
-
-  /** mapDispatch (as an object) and options*/
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(
-    mapStateToProps: null | undefined,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-    mergeProps: null | undefined,
-    options: ConnectOptions<{}, TStateProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    ResolveThunks<TDispatchProps>,
-    TOwnProps
-  >
-
-  /** mapState,  mapDispatch (as a function), and options */
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,
-    mergeProps: null | undefined,
-    options: ConnectOptions<State, TStateProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    TStateProps & TDispatchProps,
-    TOwnProps
-  >
-
-  /** mapState,  mapDispatch (as an object), and options */
-  <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-    mergeProps: null | undefined,
-    options: ConnectOptions<State, TStateProps, TOwnProps>,
-  ): InferableComponentEnhancerWithProps<
-    TStateProps & ResolveThunks<TDispatchProps>,
-    TOwnProps
-  >
-
-  /** mapState, mapDispatch, mergeProps, and options */
-  <
-    TStateProps = {},
-    TDispatchProps = {},
-    TOwnProps = {},
-    TMergedProps = {},
-    State = DefaultState,
-  >(
-    mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-    mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-    mergeProps: MergeProps<
-      TStateProps,
-      TDispatchProps,
-      TOwnProps,
-      TMergedProps
-    >,
-    options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,
-  ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>
-  // tslint:enable:no-unnecessary-generics
-}
-
-let hasWarnedAboutDeprecatedPureOption = false
-
-/**
- * Connects a React component to a Redux store.
- *
- * - Without arguments, just wraps the component, without changing the behavior / props
- *
- * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior
- * is to override ownProps (as stated in the docs), so what remains is everything that's
- * not a state or dispatch prop
- *
- * - When 3rd param is passed, we don't know if ownProps propagate and whether they
- * should be valid component props, because it depends on mergeProps implementation.
- * As such, it is the user's responsibility to extend ownProps interface from state or
- * dispatch props or both when applicable
- *
- * @param mapStateToProps A function that extracts values from state
- * @param mapDispatchToProps Setup for dispatching actions
- * @param mergeProps Optional callback to merge state and dispatch props together
- * @param options Options for configuring the connection
- *
- */
-function connect<
-  TStateProps = {},
-  TDispatchProps = {},
-  TOwnProps = {},
-  TMergedProps = {},
-  State = unknown,
->(
-  mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-  mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,
-  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,
-  {
-    // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.
-    // @ts-ignore
-    pure,
-    areStatesEqual = strictEqual,
-    areOwnPropsEqual = shallowEqual,
-    areStatePropsEqual = shallowEqual,
-    areMergedPropsEqual = shallowEqual,
-
-    // use React's forwardRef to expose a ref of the wrapped component
-    forwardRef = false,
-
-    // the context consumer to use
-    context = ReactReduxContext,
-  }: ConnectOptions<unknown, unknown, unknown, unknown> = {},
-): unknown {
-  if (process.env.NODE_ENV !== 'production') {
-    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {
-      hasWarnedAboutDeprecatedPureOption = true
-      warning(
-        'The `pure` option has been removed. `connect` is now always a "pure/memoized" component',
-      )
-    }
-  }
-
-  const Context = context
-
-  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)
-  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)
-  const initMergeProps = mergePropsFactory(mergeProps)
-
-  const shouldHandleStateChanges = Boolean(mapStateToProps)
-
-  const wrapWithConnect = <TProps,>(
-    WrappedComponent: ComponentType<TProps>,
-  ) => {
-    type WrappedComponentProps = TProps &
-      ConnectPropsMaybeWithoutContext<TProps>
-
-    if (process.env.NODE_ENV !== 'production') {
-      const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)
-      if (!isValid)
-        throw new Error(
-          `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(
-            WrappedComponent,
-          )}`,
-        )
-    }
-
-    const wrappedComponentName =
-      WrappedComponent.displayName || WrappedComponent.name || 'Component'
-
-    const displayName = `Connect(${wrappedComponentName})`
-
-    const selectorFactoryOptions: SelectorFactoryOptions<
-      any,
-      any,
-      any,
-      any,
-      State
-    > = {
-      shouldHandleStateChanges,
-      displayName,
-      wrappedComponentName,
-      WrappedComponent,
-      // @ts-ignore
-      initMapStateToProps,
-      initMapDispatchToProps,
-      initMergeProps,
-      areStatesEqual,
-      areStatePropsEqual,
-      areOwnPropsEqual,
-      areMergedPropsEqual,
-    }
-
-    function ConnectFunction<TOwnProps>(
-      props: InternalConnectProps & TOwnProps,
-    ) {
-      const [propsContext, reactReduxForwardedRef, wrapperProps] =
-        React.useMemo(() => {
-          // Distinguish between actual "data" props that were passed to the wrapper component,
-          // and values needed to control behavior (forwarded refs, alternate context instances).
-          // To maintain the wrapperProps object reference, memoize this destructuring.
-          const { reactReduxForwardedRef, ...wrapperProps } = props
-          return [props.context, reactReduxForwardedRef, wrapperProps]
-        }, [props])
-
-      const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {
-        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
-        // Memoize the check that determines which context instance we should use.
-        let ResultContext = Context
-        if (propsContext?.Consumer) {
-          if (process.env.NODE_ENV !== 'production') {
-            const isValid = /*#__PURE__*/ isContextConsumer(
-              // @ts-ignore
-              <propsContext.Consumer />,
-            )
-            if (!isValid) {
-              throw new Error(
-                'You must pass a valid React context consumer as `props.context`',
-              )
-            }
-            ResultContext = propsContext
-          }
-        }
-        return ResultContext
-      }, [propsContext, Context])
-
-      // Retrieve the store and ancestor subscription via context, if available
-      const contextValue = React.useContext(ContextToUse)
-
-      // The store _must_ exist as either a prop or in context.
-      // We'll check to see if it _looks_ like a Redux store first.
-      // This allows us to pass through a `store` prop that is just a plain value.
-      const didStoreComeFromProps =
-        Boolean(props.store) &&
-        Boolean(props.store!.getState) &&
-        Boolean(props.store!.dispatch)
-      const didStoreComeFromContext =
-        Boolean(contextValue) && Boolean(contextValue!.store)
-
-      if (
-        process.env.NODE_ENV !== 'production' &&
-        !didStoreComeFromProps &&
-        !didStoreComeFromContext
-      ) {
-        throw new Error(
-          `Could not find "store" in the context of ` +
-            `"${displayName}". Either wrap the root component in a <Provider>, ` +
-            `or pass a custom React context provider to <Provider> and the corresponding ` +
-            `React context consumer to ${displayName} in connect options.`,
-        )
-      }
-
-      // Based on the previous check, one of these must be true
-      const store: Store = didStoreComeFromProps
-        ? props.store!
-        : contextValue!.store
-
-      const getServerState = didStoreComeFromContext
-        ? contextValue!.getServerState
-        : store.getState
-
-      const childPropsSelector = React.useMemo(() => {
-        // The child props selector needs the store reference as an input.
-        // Re-create this selector whenever the store changes.
-        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)
-      }, [store])
-
-      const [subscription, notifyNestedSubs] = React.useMemo(() => {
-        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY
-
-        // This Subscription's source should match where store came from: props vs. context. A component
-        // connected to the store via props shouldn't use subscription from context, or vice versa.
-        const subscription = createSubscription(
-          store,
-          didStoreComeFromProps ? undefined : contextValue!.subscription,
-        )
-
-        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
-        // the middle of the notification loop, where `subscription` will then be null. This can
-        // probably be avoided if Subscription's listeners logic is changed to not call listeners
-        // that have been unsubscribed in the  middle of the notification loop.
-        const notifyNestedSubs =
-          subscription.notifyNestedSubs.bind(subscription)
-
-        return [subscription, notifyNestedSubs]
-      }, [store, didStoreComeFromProps, contextValue])
-
-      // Determine what {store, subscription} value should be put into nested context, if necessary,
-      // and memoize that value to avoid unnecessary context updates.
-      const overriddenContextValue = React.useMemo(() => {
-        if (didStoreComeFromProps) {
-          // This component is directly subscribed to a store from props.
-          // We don't want descendants reading from this store - pass down whatever
-          // the existing context value is from the nearest connected ancestor.
-          return contextValue!
-        }
-
-        // Otherwise, put this component's subscription instance into context, so that
-        // connected descendants won't update until after this component is done
-        return {
-          ...contextValue,
-          subscription,
-        } as ReactReduxContextValue
-      }, [didStoreComeFromProps, contextValue, subscription])
-
-      // Set up refs to coordinate values between the subscription effect and the render logic
-      const lastChildProps = React.useRef<unknown>(undefined)
-      const lastWrapperProps = React.useRef(wrapperProps)
-      const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)
-      const renderIsScheduled = React.useRef(false)
-      const isMounted = React.useRef(false)
-
-      // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.
-      /**
-       * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.
-       */
-      const latestSubscriptionCallbackError = React.useRef<Error | undefined>(
-        undefined,
-      )
-
-      useIsomorphicLayoutEffect(() => {
-        isMounted.current = true
-        return () => {
-          isMounted.current = false
-        }
-      }, [])
-
-      const actualChildPropsSelector = React.useMemo(() => {
-        const selector = () => {
-          // Tricky logic here:
-          // - This render may have been triggered by a Redux store update that produced new child props
-          // - However, we may have gotten new wrapper props after that
-          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
-          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
-          // So, we'll use the child props from store update only if the wrapper props are the same as last time.
-          if (
-            childPropsFromStoreUpdate.current &&
-            wrapperProps === lastWrapperProps.current
-          ) {
-            return childPropsFromStoreUpdate.current
-          }
-
-          // TODO We're reading the store directly in render() here. Bad idea?
-          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
-          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
-          // to determine what the child props should be.
-          return childPropsSelector(store.getState(), wrapperProps)
-        }
-        return selector
-      }, [store, wrapperProps])
-
-      // We need this to execute synchronously every time we re-render. However, React warns
-      // about useLayoutEffect in SSR, so we try to detect environment and fall back to
-      // just useEffect instead to avoid the warning, since neither will run anyway.
-
-      const subscribeForReact = React.useMemo(() => {
-        const subscribe = (reactListener: () => void) => {
-          if (!subscription) {
-            return () => {}
-          }
-
-          return subscribeUpdates(
-            shouldHandleStateChanges,
-            store,
-            subscription,
-            // @ts-ignore
-            childPropsSelector,
-            lastWrapperProps,
-            lastChildProps,
-            renderIsScheduled,
-            isMounted,
-            childPropsFromStoreUpdate,
-            notifyNestedSubs,
-            reactListener,
-          )
-        }
-
-        return subscribe
-      }, [subscription])
-
-      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [
-        lastWrapperProps,
-        lastChildProps,
-        renderIsScheduled,
-        wrapperProps,
-        childPropsFromStoreUpdate,
-        notifyNestedSubs,
-      ])
-
-      let actualChildProps: Record<string, unknown>
-
-      try {
-        actualChildProps = React.useSyncExternalStore(
-          // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing
-          subscribeForReact,
-          // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,
-          // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.
-          actualChildPropsSelector,
-          getServerState
-            ? () => childPropsSelector(getServerState(), wrapperProps)
-            : actualChildPropsSelector,
-        )
-      } catch (err) {
-        if (latestSubscriptionCallbackError.current) {
-          // eslint-disable-next-line no-extra-semi
-          ;(err as Error).message +=
-            `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n`
-        }
-
-        throw err
-      }
-
-      useIsomorphicLayoutEffect(() => {
-        latestSubscriptionCallbackError.current = undefined
-        childPropsFromStoreUpdate.current = undefined
-        lastChildProps.current = actualChildProps
-      })
-
-      // Now that all that's done, we can finally try to actually render the child component.
-      // We memoize the elements for the rendered child component as an optimization.
-      const renderedWrappedComponent = React.useMemo(() => {
-        return (
-          // @ts-ignore
-          <WrappedComponent
-            {...actualChildProps}
-            ref={reactReduxForwardedRef}
-          />
-        )
-      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])
-
-      // If React sees the exact same element reference as last time, it bails out of re-rendering
-      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
-      const renderedChild = React.useMemo(() => {
-        if (shouldHandleStateChanges) {
-          // If this component is subscribed to store updates, we need to pass its own
-          // subscription instance down to our descendants. That means rendering the same
-          // Context instance, and putting a different value into the context.
-          return (
-            <ContextToUse.Provider value={overriddenContextValue}>
-              {renderedWrappedComponent}
-            </ContextToUse.Provider>
-          )
-        }
-
-        return renderedWrappedComponent
-      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])
-
-      return renderedChild
-    }
-
-    const _Connect = React.memo(ConnectFunction)
-
-    type ConnectedWrapperComponent = typeof _Connect & {
-      WrappedComponent: typeof WrappedComponent
-    }
-
-    // Add a hacky cast to get the right output type
-    const Connect = _Connect as unknown as ConnectedComponent<
-      typeof WrappedComponent,
-      WrappedComponentProps
-    >
-    Connect.WrappedComponent = WrappedComponent
-    Connect.displayName = ConnectFunction.displayName = displayName
-
-    if (forwardRef) {
-      const _forwarded = React.forwardRef(
-        function forwardConnectRef(props, ref) {
-          // @ts-ignore
-          return <Connect {...props} reactReduxForwardedRef={ref} />
-        },
-      )
-
-      const forwarded = _forwarded as ConnectedWrapperComponent
-      forwarded.displayName = displayName
-      forwarded.WrappedComponent = WrappedComponent
-      return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)
-    }
-
-    return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)
-  }
-
-  return wrapWithConnect
-}
-
-export default connect as Connect
Index: de_modules/react-redux/src/connect/invalidArgFactory.ts
===================================================================
--- node_modules/react-redux/src/connect/invalidArgFactory.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import type { Action, Dispatch } from 'redux'
-
-export function createInvalidArgFactory(arg: unknown, name: string) {
-  return (
-    dispatch: Dispatch<Action<string>>,
-    options: { readonly wrappedComponentName: string },
-  ) => {
-    throw new Error(
-      `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${
-        options.wrappedComponentName
-      }.`,
-    )
-  }
-}
Index: de_modules/react-redux/src/connect/mapDispatchToProps.ts
===================================================================
--- node_modules/react-redux/src/connect/mapDispatchToProps.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import type { Action, Dispatch } from 'redux'
-import bindActionCreators from '../utils/bindActionCreators'
-import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'
-import { createInvalidArgFactory } from './invalidArgFactory'
-import type { MapDispatchToPropsParam } from './selectorFactory'
-
-export function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(
-  mapDispatchToProps:
-    | MapDispatchToPropsParam<TDispatchProps, TOwnProps>
-    | undefined,
-) {
-  return mapDispatchToProps && typeof mapDispatchToProps === 'object'
-    ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>
-        // @ts-ignore
-        bindActionCreators(mapDispatchToProps, dispatch),
-      )
-    : !mapDispatchToProps
-      ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({
-          dispatch,
-        }))
-      : typeof mapDispatchToProps === 'function'
-        ? // @ts-ignore
-          wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')
-        : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')
-}
Index: de_modules/react-redux/src/connect/mapStateToProps.ts
===================================================================
--- node_modules/react-redux/src/connect/mapStateToProps.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'
-import { createInvalidArgFactory } from './invalidArgFactory'
-import type { MapStateToPropsParam } from './selectorFactory'
-
-export function mapStateToPropsFactory<TStateProps, TOwnProps, State>(
-  mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
-) {
-  return !mapStateToProps
-    ? wrapMapToPropsConstant(() => ({}))
-    : typeof mapStateToProps === 'function'
-      ? // @ts-ignore
-        wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')
-      : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')
-}
Index: de_modules/react-redux/src/connect/mergeProps.ts
===================================================================
--- node_modules/react-redux/src/connect/mergeProps.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import type { Action, Dispatch } from 'redux'
-import verifyPlainObject from '../utils/verifyPlainObject'
-import { createInvalidArgFactory } from './invalidArgFactory'
-import type { MergeProps } from './selectorFactory'
-import type { EqualityFn } from '../types'
-
-function defaultMergeProps<
-  TStateProps,
-  TDispatchProps,
-  TOwnProps,
-  TMergedProps,
->(
-  stateProps: TStateProps,
-  dispatchProps: TDispatchProps,
-  ownProps: TOwnProps,
-): TMergedProps {
-  // @ts-ignore
-  return { ...ownProps, ...stateProps, ...dispatchProps }
-}
-
-function wrapMergePropsFunc<
-  TStateProps,
-  TDispatchProps,
-  TOwnProps,
-  TMergedProps,
->(
-  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,
-): (
-  dispatch: Dispatch<Action<string>>,
-  options: {
-    readonly displayName: string
-    readonly areMergedPropsEqual: EqualityFn<TMergedProps>
-  },
-) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {
-  return function initMergePropsProxy(
-    dispatch,
-    { displayName, areMergedPropsEqual },
-  ) {
-    let hasRunOnce = false
-    let mergedProps: TMergedProps
-
-    return function mergePropsProxy(
-      stateProps: TStateProps,
-      dispatchProps: TDispatchProps,
-      ownProps: TOwnProps,
-    ) {
-      const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)
-
-      if (hasRunOnce) {
-        if (!areMergedPropsEqual(nextMergedProps, mergedProps))
-          mergedProps = nextMergedProps
-      } else {
-        hasRunOnce = true
-        mergedProps = nextMergedProps
-
-        if (process.env.NODE_ENV !== 'production')
-          verifyPlainObject(mergedProps, displayName, 'mergeProps')
-      }
-
-      return mergedProps
-    }
-  }
-}
-
-export function mergePropsFactory<
-  TStateProps,
-  TDispatchProps,
-  TOwnProps,
-  TMergedProps,
->(
-  mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,
-) {
-  return !mergeProps
-    ? () => defaultMergeProps
-    : typeof mergeProps === 'function'
-      ? wrapMergePropsFunc(mergeProps)
-      : createInvalidArgFactory(mergeProps, 'mergeProps')
-}
Index: de_modules/react-redux/src/connect/selectorFactory.ts
===================================================================
--- node_modules/react-redux/src/connect/selectorFactory.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,242 +1,0 @@
-import type { Dispatch, Action } from 'redux'
-import type { ComponentType } from 'react'
-import verifySubselectors from './verifySubselectors'
-import type { EqualityFn, ExtendedEqualityFn } from '../types'
-
-export type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (
-  dispatch: Dispatch<Action<string>>,
-  factoryOptions: TFactoryOptions,
-) => Selector<S, TProps, TOwnProps>
-
-export type Selector<S, TProps, TOwnProps = null> = TOwnProps extends
-  | null
-  | undefined
-  ? (state: S) => TProps
-  : (state: S, ownProps: TOwnProps) => TProps
-
-export type MapStateToProps<TStateProps, TOwnProps, State> = (
-  state: State,
-  ownProps: TOwnProps,
-) => TStateProps
-
-export type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (
-  initialState: State,
-  ownProps: TOwnProps,
-) => MapStateToProps<TStateProps, TOwnProps, State>
-
-export type MapStateToPropsParam<TStateProps, TOwnProps, State> =
-  | MapStateToPropsFactory<TStateProps, TOwnProps, State>
-  | MapStateToProps<TStateProps, TOwnProps, State>
-  | null
-  | undefined
-
-export type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (
-  dispatch: Dispatch<Action<string>>,
-  ownProps: TOwnProps,
-) => TDispatchProps
-
-export type MapDispatchToProps<TDispatchProps, TOwnProps> =
-  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>
-  | TDispatchProps
-
-export type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (
-  dispatch: Dispatch<Action<string>>,
-  ownProps: TOwnProps,
-) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>
-
-export type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =
-  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>
-  | MapDispatchToProps<TDispatchProps, TOwnProps>
-
-export type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =
-  | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>
-  | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>
-
-export type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (
-  stateProps: TStateProps,
-  dispatchProps: TDispatchProps,
-  ownProps: TOwnProps,
-) => TMergedProps
-
-interface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {
-  readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>
-  readonly areStatePropsEqual: EqualityFn<TStateProps>
-  readonly areOwnPropsEqual: EqualityFn<TOwnProps>
-}
-
-function pureFinalPropsSelectorFactory<
-  TStateProps,
-  TOwnProps,
-  TDispatchProps,
-  TMergedProps,
-  State,
->(
-  mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,
-  mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,
-  mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,
-  dispatch: Dispatch<Action<string>>,
-  {
-    areStatesEqual,
-    areOwnPropsEqual,
-    areStatePropsEqual,
-  }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,
-) {
-  let hasRunAtLeastOnce = false
-  let state: State
-  let ownProps: TOwnProps
-  let stateProps: TStateProps
-  let dispatchProps: TDispatchProps
-  let mergedProps: TMergedProps
-
-  function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {
-    state = firstState
-    ownProps = firstOwnProps
-    stateProps = mapStateToProps(state, ownProps)
-    dispatchProps = mapDispatchToProps(dispatch, ownProps)
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)
-    hasRunAtLeastOnce = true
-    return mergedProps
-  }
-
-  function handleNewPropsAndNewState() {
-    stateProps = mapStateToProps(state, ownProps)
-
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps)
-
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)
-    return mergedProps
-  }
-
-  function handleNewProps() {
-    if (mapStateToProps.dependsOnOwnProps)
-      stateProps = mapStateToProps(state, ownProps)
-
-    if (mapDispatchToProps.dependsOnOwnProps)
-      dispatchProps = mapDispatchToProps(dispatch, ownProps)
-
-    mergedProps = mergeProps(stateProps, dispatchProps, ownProps)
-    return mergedProps
-  }
-
-  function handleNewState() {
-    const nextStateProps = mapStateToProps(state, ownProps)
-    const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)
-    stateProps = nextStateProps
-
-    if (statePropsChanged)
-      mergedProps = mergeProps(stateProps, dispatchProps, ownProps)
-
-    return mergedProps
-  }
-
-  function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {
-    const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)
-    const stateChanged = !areStatesEqual(
-      nextState,
-      state,
-      nextOwnProps,
-      ownProps,
-    )
-    state = nextState
-    ownProps = nextOwnProps
-
-    if (propsChanged && stateChanged) return handleNewPropsAndNewState()
-    if (propsChanged) return handleNewProps()
-    if (stateChanged) return handleNewState()
-    return mergedProps
-  }
-
-  return function pureFinalPropsSelector(
-    nextState: State,
-    nextOwnProps: TOwnProps,
-  ) {
-    return hasRunAtLeastOnce
-      ? handleSubsequentCalls(nextState, nextOwnProps)
-      : handleFirstCall(nextState, nextOwnProps)
-  }
-}
-
-interface WrappedMapStateToProps<TStateProps, TOwnProps, State> {
-  (state: State, ownProps: TOwnProps): TStateProps
-  readonly dependsOnOwnProps: boolean
-}
-
-interface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {
-  (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps
-  readonly dependsOnOwnProps: boolean
-}
-
-export interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>
-  extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {
-  readonly shouldHandleStateChanges: boolean
-  readonly displayName: string
-  readonly wrappedComponentName: string
-  readonly WrappedComponent: ComponentType<TOwnProps>
-  readonly areMergedPropsEqual: EqualityFn<TMergedProps>
-}
-
-export interface SelectorFactoryOptions<
-  TStateProps,
-  TOwnProps,
-  TDispatchProps,
-  TMergedProps,
-  State,
-> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {
-  readonly initMapStateToProps: (
-    dispatch: Dispatch<Action<string>>,
-    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,
-  ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>
-  readonly initMapDispatchToProps: (
-    dispatch: Dispatch<Action<string>>,
-    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,
-  ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>
-  readonly initMergeProps: (
-    dispatch: Dispatch<Action<string>>,
-    options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,
-  ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>
-}
-
-// TODO: Add more comments
-
-// The selector returned by selectorFactory will memoize its results,
-// allowing connect's shouldComponentUpdate to return false if final
-// props have not changed.
-
-export default function finalPropsSelectorFactory<
-  TStateProps,
-  TOwnProps,
-  TDispatchProps,
-  TMergedProps,
-  State,
->(
-  dispatch: Dispatch<Action<string>>,
-  {
-    initMapStateToProps,
-    initMapDispatchToProps,
-    initMergeProps,
-    ...options
-  }: SelectorFactoryOptions<
-    TStateProps,
-    TOwnProps,
-    TDispatchProps,
-    TMergedProps,
-    State
-  >,
-) {
-  const mapStateToProps = initMapStateToProps(dispatch, options)
-  const mapDispatchToProps = initMapDispatchToProps(dispatch, options)
-  const mergeProps = initMergeProps(dispatch, options)
-
-  if (process.env.NODE_ENV !== 'production') {
-    verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)
-  }
-
-  return pureFinalPropsSelectorFactory<
-    TStateProps,
-    TOwnProps,
-    TDispatchProps,
-    TMergedProps,
-    State
-  >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)
-}
Index: de_modules/react-redux/src/connect/verifySubselectors.ts
===================================================================
--- node_modules/react-redux/src/connect/verifySubselectors.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import warning from '../utils/warning'
-
-function verify(selector: unknown, methodName: string): void {
-  if (!selector) {
-    throw new Error(`Unexpected value for ${methodName} in connect.`)
-  } else if (
-    methodName === 'mapStateToProps' ||
-    methodName === 'mapDispatchToProps'
-  ) {
-    if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {
-      warning(
-        `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`,
-      )
-    }
-  }
-}
-
-export default function verifySubselectors(
-  mapStateToProps: unknown,
-  mapDispatchToProps: unknown,
-  mergeProps: unknown,
-): void {
-  verify(mapStateToProps, 'mapStateToProps')
-  verify(mapDispatchToProps, 'mapDispatchToProps')
-  verify(mergeProps, 'mergeProps')
-}
Index: de_modules/react-redux/src/connect/wrapMapToProps.ts
===================================================================
--- node_modules/react-redux/src/connect/wrapMapToProps.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'
-
-import type { FixTypeLater } from '../types'
-import verifyPlainObject from '../utils/verifyPlainObject'
-
-type AnyState = { [key: string]: any }
-type StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch
-
-type AnyProps = { [key: string]: any }
-
-export type MapToProps<P extends AnyProps = AnyProps> = {
-  // eslint-disable-next-line no-unused-vars
-  (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater
-  dependsOnOwnProps?: boolean
-}
-
-export function wrapMapToPropsConstant(
-  // * Note:
-  //  It seems that the dispatch argument
-  //  could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)
-  //  and a state object in some others (ex: whenMapStateToPropsIsMissing)
-  // eslint-disable-next-line no-unused-vars
-  getConstant: (dispatch: Dispatch) =>
-    | {
-        dispatch?: Dispatch
-        dependsOnOwnProps?: boolean
-      }
-    | ActionCreatorsMapObject
-    | ActionCreator<any>,
-) {
-  return function initConstantSelector(dispatch: Dispatch) {
-    const constant = getConstant(dispatch)
-
-    function constantSelector() {
-      return constant
-    }
-    constantSelector.dependsOnOwnProps = false
-    return constantSelector
-  }
-}
-
-// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
-// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
-// whether mapToProps needs to be invoked when props have changed.
-//
-// A length of one signals that mapToProps does not depend on props from the parent component.
-// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
-// therefore not reporting its length accurately..
-// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?
-function getDependsOnOwnProps(mapToProps: MapToProps) {
-  return mapToProps.dependsOnOwnProps
-    ? Boolean(mapToProps.dependsOnOwnProps)
-    : mapToProps.length !== 1
-}
-
-// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
-// this function wraps mapToProps in a proxy function which does several things:
-//
-//  * Detects whether the mapToProps function being called depends on props, which
-//    is used by selectorFactory to decide if it should reinvoke on props changes.
-//
-//  * On first call, handles mapToProps if returns another function, and treats that
-//    new function as the true mapToProps for subsequent calls.
-//
-//  * On first call, verifies the first result is a plain object, in order to warn
-//    the developer that their mapToProps function is not returning a valid result.
-//
-export function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(
-  mapToProps: MapToProps,
-  methodName: string,
-) {
-  return function initProxySelector(
-    dispatch: Dispatch,
-    { displayName }: { displayName: string },
-  ) {
-    const proxy = function mapToPropsProxy(
-      stateOrDispatch: StateOrDispatch,
-      ownProps?: P,
-    ): MapToProps {
-      return proxy.dependsOnOwnProps
-        ? proxy.mapToProps(stateOrDispatch, ownProps)
-        : proxy.mapToProps(stateOrDispatch, undefined)
-    }
-
-    // allow detectFactoryAndVerify to get ownProps
-    proxy.dependsOnOwnProps = true
-
-    proxy.mapToProps = function detectFactoryAndVerify(
-      stateOrDispatch: StateOrDispatch,
-      ownProps?: P,
-    ): MapToProps {
-      proxy.mapToProps = mapToProps
-      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)
-      let props = proxy(stateOrDispatch, ownProps)
-
-      if (typeof props === 'function') {
-        proxy.mapToProps = props
-        proxy.dependsOnOwnProps = getDependsOnOwnProps(props)
-        props = proxy(stateOrDispatch, ownProps)
-      }
-
-      if (process.env.NODE_ENV !== 'production')
-        verifyPlainObject(props, displayName, methodName)
-
-      return props
-    }
-
-    return proxy
-  }
-}
Index: de_modules/react-redux/src/exports.ts
===================================================================
--- node_modules/react-redux/src/exports.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import connect from './components/connect'
-export type {
-  Connect,
-  ConnectProps,
-  ConnectedProps,
-} from './components/connect'
-
-import shallowEqual from './utils/shallowEqual'
-
-import Provider from './components/Provider'
-import { defaultNoopBatch } from './utils/batch'
-
-export { ReactReduxContext } from './components/Context'
-export type { ReactReduxContextValue } from './components/Context'
-
-export type { ProviderProps } from './components/Provider'
-
-export type {
-  MapDispatchToProps,
-  MapDispatchToPropsFactory,
-  MapDispatchToPropsFunction,
-  MapDispatchToPropsNonObject,
-  MapDispatchToPropsParam,
-  MapStateToProps,
-  MapStateToPropsFactory,
-  MapStateToPropsParam,
-  MergeProps,
-  Selector,
-  SelectorFactory,
-} from './connect/selectorFactory'
-
-export { createDispatchHook, useDispatch } from './hooks/useDispatch'
-export type { UseDispatch } from './hooks/useDispatch'
-
-export { createSelectorHook, useSelector } from './hooks/useSelector'
-export type { UseSelector } from './hooks/useSelector'
-
-export { createStoreHook, useStore } from './hooks/useStore'
-export type { UseStore } from './hooks/useStore'
-
-export type { Subscription } from './utils/Subscription'
-
-export * from './types'
-
-/**
- * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.
- * This is now a no-op that immediately runs the callback.
- */
-const batch = defaultNoopBatch
-
-export { Provider, batch, connect, shallowEqual }
Index: de_modules/react-redux/src/hooks/useDispatch.ts
===================================================================
--- node_modules/react-redux/src/hooks/useDispatch.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-import type { Context } from 'react'
-import type { Action, Dispatch, UnknownAction } from 'redux'
-
-import type { ReactReduxContextValue } from '../components/Context'
-import { ReactReduxContext } from '../components/Context'
-import { createStoreHook, useStore as useDefaultStore } from './useStore'
-
-/**
- * Represents a custom hook that provides a dispatch function
- * from the Redux store.
- *
- * @template DispatchType - The specific type of the dispatch function.
- *
- * @since 9.1.0
- * @public
- */
-export interface UseDispatch<
-  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,
-> {
-  /**
-   * Returns the dispatch function from the Redux store.
-   *
-   * @returns The dispatch function from the Redux store.
-   *
-   * @template AppDispatch - The specific type of the dispatch function.
-   */
-  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch
-
-  /**
-   * Creates a "pre-typed" version of {@linkcode useDispatch useDispatch}
-   * where the type of the `dispatch` function is predefined.
-   *
-   * This allows you to set the `dispatch` type once, eliminating the need to
-   * specify it with every {@linkcode useDispatch useDispatch} call.
-   *
-   * @returns A pre-typed `useDispatch` with the dispatch type already defined.
-   *
-   * @example
-   * ```ts
-   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()
-   * ```
-   *
-   * @template OverrideDispatchType - The specific type of the dispatch function.
-   *
-   * @since 9.1.0
-   */
-  withTypes: <
-    OverrideDispatchType extends DispatchType,
-  >() => UseDispatch<OverrideDispatchType>
-}
-
-/**
- * Hook factory, which creates a `useDispatch` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useDispatch` hook bound to the specified context.
- */
-export function createDispatchHook<
-  StateType = unknown,
-  ActionType extends Action = UnknownAction,
->(
-  // @ts-ignore
-  context?: Context<ReactReduxContextValue<
-    StateType,
-    ActionType
-  > | null> = ReactReduxContext,
-) {
-  const useStore =
-    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)
-
-  const useDispatch = () => {
-    const store = useStore()
-    return store.dispatch
-  }
-
-  Object.assign(useDispatch, {
-    withTypes: () => useDispatch,
-  })
-
-  return useDispatch as UseDispatch<Dispatch<ActionType>>
-}
-
-/**
- * A hook to access the redux `dispatch` function.
- *
- * @returns {any|function} redux store's `dispatch` function
- *
- * @example
- *
- * import React, { useCallback } from 'react'
- * import { useDispatch } from 'react-redux'
- *
- * export const CounterComponent = ({ value }) => {
- *   const dispatch = useDispatch()
- *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
- *   return (
- *     <div>
- *       <span>{value}</span>
- *       <button onClick={increaseCounter}>Increase counter</button>
- *     </div>
- *   )
- * }
- */
-export const useDispatch = /*#__PURE__*/ createDispatchHook()
Index: de_modules/react-redux/src/hooks/useReduxContext.ts
===================================================================
--- node_modules/react-redux/src/hooks/useReduxContext.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { React } from '../utils/react'
-import { ReactReduxContext } from '../components/Context'
-import type { ReactReduxContextValue } from '../components/Context'
-
-/**
- * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level
- * hook that you should usually not need to call directly.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useReduxContext` hook bound to the specified context.
- */
-export function createReduxContextHook(context = ReactReduxContext) {
-  return function useReduxContext(): ReactReduxContextValue {
-    const contextValue = React.useContext(context)
-
-    if (process.env.NODE_ENV !== 'production' && !contextValue) {
-      throw new Error(
-        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',
-      )
-    }
-
-    return contextValue!
-  }
-}
-
-/**
- * A hook to access the value of the `ReactReduxContext`. This is a low-level
- * hook that you should usually not need to call directly.
- *
- * @returns {any} the value of the `ReactReduxContext`
- *
- * @example
- *
- * import React from 'react'
- * import { useReduxContext } from 'react-redux'
- *
- * export const CounterComponent = () => {
- *   const { store } = useReduxContext()
- *   return <div>{store.getState()}</div>
- * }
- */
-export const useReduxContext = /*#__PURE__*/ createReduxContextHook()
Index: de_modules/react-redux/src/hooks/useSelector.ts
===================================================================
--- node_modules/react-redux/src/hooks/useSelector.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,286 +1,0 @@
-//import * as React from 'react'
-import { React } from '../utils/react'
-import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'
-import type { ReactReduxContextValue } from '../components/Context'
-import { ReactReduxContext } from '../components/Context'
-import type { EqualityFn, NoInfer } from '../types'
-import {
-  createReduxContextHook,
-  useReduxContext as useDefaultReduxContext,
-} from './useReduxContext'
-
-/**
- * The frequency of development mode checks.
- *
- * @since 8.1.0
- * @internal
- */
-export type DevModeCheckFrequency = 'never' | 'once' | 'always'
-
-/**
- * Represents the configuration for development mode checks.
- *
- * @since 9.0.0
- * @internal
- */
-export interface DevModeChecks {
-  /**
-   * Overrides the global stability check for the selector.
-   * - `once` - Run only the first time the selector is called.
-   * - `always` - Run every time the selector is called.
-   * - `never` - Never run the stability check.
-   *
-   * @default 'once'
-   *
-   * @since 8.1.0
-   */
-  stabilityCheck: DevModeCheckFrequency
-
-  /**
-   * Overrides the global identity function check for the selector.
-   * - `once` - Run only the first time the selector is called.
-   * - `always` - Run every time the selector is called.
-   * - `never` - Never run the identity function check.
-   *
-   * **Note**: Previously referred to as `noopCheck`.
-   *
-   * @default 'once'
-   *
-   * @since 9.0.0
-   */
-  identityFunctionCheck: DevModeCheckFrequency
-}
-
-export interface UseSelectorOptions<Selected = unknown> {
-  equalityFn?: EqualityFn<Selected>
-
-  /**
-   * `useSelector` performs additional checks in development mode to help
-   * identify and warn about potential issues in selector behavior. This
-   * option allows you to customize the behavior of these checks per selector.
-   *
-   * @since 9.0.0
-   */
-  devModeChecks?: Partial<DevModeChecks>
-}
-
-/**
- * Represents a custom hook that allows you to extract data from the
- * Redux store state, using a selector function. The selector function
- * takes the current state as an argument and returns a part of the state
- * or some derived data. The hook also supports an optional equality
- * function or options object to customize its behavior.
- *
- * @template StateType - The specific type of state this hook operates on.
- *
- * @public
- */
-export interface UseSelector<StateType = unknown> {
-  /**
-   * A function that takes a selector function as its first argument.
-   * The selector function is responsible for selecting a part of
-   * the Redux store's state or computing derived data.
-   *
-   * @param selector - A function that receives the current state and returns a part of the state or some derived data.
-   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.
-   * @returns The selected part of the state or derived data.
-   *
-   * @template TState - The specific type of state this hook operates on.
-   * @template Selected - The type of the value that the selector function will return.
-   */
-  <TState extends StateType = StateType, Selected = unknown>(
-    selector: (state: TState) => Selected,
-    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,
-  ): Selected
-
-  /**
-   * Creates a "pre-typed" version of {@linkcode useSelector useSelector}
-   * where the `state` type is predefined.
-   *
-   * This allows you to set the `state` type once, eliminating the need to
-   * specify it with every {@linkcode useSelector useSelector} call.
-   *
-   * @returns A pre-typed `useSelector` with the state type already defined.
-   *
-   * @example
-   * ```ts
-   * export const useAppSelector = useSelector.withTypes<RootState>()
-   * ```
-   *
-   * @template OverrideStateType - The specific type of state this hook operates on.
-   *
-   * @since 9.1.0
-   */
-  withTypes: <
-    OverrideStateType extends StateType,
-  >() => UseSelector<OverrideStateType>
-}
-
-const refEquality: EqualityFn<any> = (a, b) => a === b
-
-/**
- * Hook factory, which creates a `useSelector` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useSelector` hook bound to the specified context.
- */
-export function createSelectorHook(
-  context: React.Context<ReactReduxContextValue<
-    any,
-    any
-  > | null> = ReactReduxContext,
-): UseSelector {
-  const useReduxContext =
-    context === ReactReduxContext
-      ? useDefaultReduxContext
-      : createReduxContextHook(context)
-
-  const useSelector = <TState, Selected>(
-    selector: (state: TState) => Selected,
-    equalityFnOrOptions:
-      | EqualityFn<NoInfer<Selected>>
-      | UseSelectorOptions<NoInfer<Selected>> = {},
-  ): Selected => {
-    const { equalityFn = refEquality } =
-      typeof equalityFnOrOptions === 'function'
-        ? { equalityFn: equalityFnOrOptions }
-        : equalityFnOrOptions
-    if (process.env.NODE_ENV !== 'production') {
-      if (!selector) {
-        throw new Error(`You must pass a selector to useSelector`)
-      }
-      if (typeof selector !== 'function') {
-        throw new Error(`You must pass a function as a selector to useSelector`)
-      }
-      if (typeof equalityFn !== 'function') {
-        throw new Error(
-          `You must pass a function as an equality function to useSelector`,
-        )
-      }
-    }
-
-    const reduxContext = useReduxContext()
-
-    const { store, subscription, getServerState } = reduxContext
-
-    const firstRun = React.useRef(true)
-
-    const wrappedSelector = React.useCallback<typeof selector>(
-      {
-        [selector.name](state: TState) {
-          const selected = selector(state)
-          if (process.env.NODE_ENV !== 'production') {
-            const { devModeChecks = {} } =
-              typeof equalityFnOrOptions === 'function'
-                ? {}
-                : equalityFnOrOptions
-            const { identityFunctionCheck, stabilityCheck } = reduxContext
-            const {
-              identityFunctionCheck: finalIdentityFunctionCheck,
-              stabilityCheck: finalStabilityCheck,
-            } = {
-              stabilityCheck,
-              identityFunctionCheck,
-              ...devModeChecks,
-            }
-            if (
-              finalStabilityCheck === 'always' ||
-              (finalStabilityCheck === 'once' && firstRun.current)
-            ) {
-              const toCompare = selector(state)
-              if (!equalityFn(selected, toCompare)) {
-                let stack: string | undefined = undefined
-                try {
-                  throw new Error()
-                } catch (e) {
-                  // eslint-disable-next-line no-extra-semi
-                  ;({ stack } = e as Error)
-                }
-                console.warn(
-                  'Selector ' +
-                    (selector.name || 'unknown') +
-                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +
-                    '\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',
-                  {
-                    state,
-                    selected,
-                    selected2: toCompare,
-                    stack,
-                  },
-                )
-              }
-            }
-            if (
-              finalIdentityFunctionCheck === 'always' ||
-              (finalIdentityFunctionCheck === 'once' && firstRun.current)
-            ) {
-              // @ts-ignore
-              if (selected === state) {
-                let stack: string | undefined = undefined
-                try {
-                  throw new Error()
-                } catch (e) {
-                  // eslint-disable-next-line no-extra-semi
-                  ;({ stack } = e as Error)
-                }
-                console.warn(
-                  'Selector ' +
-                    (selector.name || 'unknown') +
-                    ' returned the root state when called. This can lead to unnecessary rerenders.' +
-                    '\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',
-                  { stack },
-                )
-              }
-            }
-            if (firstRun.current) firstRun.current = false
-          }
-          return selected
-        },
-      }[selector.name],
-      [selector],
-    )
-
-    const selectedState = useSyncExternalStoreWithSelector(
-      subscription.addNestedSub,
-      store.getState,
-      getServerState || store.getState,
-      wrappedSelector,
-      equalityFn,
-    )
-
-    React.useDebugValue(selectedState)
-
-    return selectedState
-  }
-
-  Object.assign(useSelector, {
-    withTypes: () => useSelector,
-  })
-
-  return useSelector as UseSelector
-}
-
-/**
- * A hook to access the redux store's state. This hook takes a selector function
- * as an argument. The selector is called with the store state.
- *
- * This hook takes an optional equality comparison function as the second parameter
- * that allows you to customize the way the selected state is compared to determine
- * whether the component needs to be re-rendered.
- *
- * @param {Function} selector the selector function
- * @param {Function=} equalityFn the function that will be used to determine equality
- *
- * @returns {any} the selected state
- *
- * @example
- *
- * import React from 'react'
- * import { useSelector } from 'react-redux'
- *
- * export const CounterComponent = () => {
- *   const counter = useSelector(state => state.counter)
- *   return <div>{counter}</div>
- * }
- */
-export const useSelector = /*#__PURE__*/ createSelectorHook()
Index: de_modules/react-redux/src/hooks/useStore.ts
===================================================================
--- node_modules/react-redux/src/hooks/useStore.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-import type { Context } from 'react'
-import type { Action, Store } from 'redux'
-import type { ReactReduxContextValue } from '../components/Context'
-import { ReactReduxContext } from '../components/Context'
-import {
-  createReduxContextHook,
-  useReduxContext as useDefaultReduxContext,
-} from './useReduxContext'
-
-/**
- * Represents a type that extracts the action type from a given Redux store.
- *
- * @template StoreType - The specific type of the Redux store.
- *
- * @since 9.1.0
- * @internal
- */
-export type ExtractStoreActionType<StoreType extends Store> =
-  StoreType extends Store<any, infer ActionType> ? ActionType : never
-
-/**
- * Represents a custom hook that provides access to the Redux store.
- *
- * @template StoreType - The specific type of the Redux store that gets returned.
- *
- * @since 9.1.0
- * @public
- */
-export interface UseStore<StoreType extends Store> {
-  /**
-   * Returns the Redux store instance.
-   *
-   * @returns The Redux store instance.
-   */
-  (): StoreType
-
-  /**
-   * Returns the Redux store instance with specific state and action types.
-   *
-   * @returns The Redux store with the specified state and action types.
-   *
-   * @template StateType - The specific type of the state used in the store.
-   * @template ActionType - The specific type of the actions used in the store.
-   */
-  <
-    StateType extends ReturnType<StoreType['getState']> = ReturnType<
-      StoreType['getState']
-    >,
-    ActionType extends Action = ExtractStoreActionType<Store>,
-  >(): Store<StateType, ActionType>
-
-  /**
-   * Creates a "pre-typed" version of {@linkcode useStore useStore}
-   * where the type of the Redux `store` is predefined.
-   *
-   * This allows you to set the `store` type once, eliminating the need to
-   * specify it with every {@linkcode useStore useStore} call.
-   *
-   * @returns A pre-typed `useStore` with the store type already defined.
-   *
-   * @example
-   * ```ts
-   * export const useAppStore = useStore.withTypes<AppStore>()
-   * ```
-   *
-   * @template OverrideStoreType - The specific type of the Redux store that gets returned.
-   *
-   * @since 9.1.0
-   */
-  withTypes: <
-    OverrideStoreType extends StoreType,
-  >() => UseStore<OverrideStoreType>
-}
-
-/**
- * Hook factory, which creates a `useStore` hook bound to a given context.
- *
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
- * @returns {Function} A `useStore` hook bound to the specified context.
- */
-export function createStoreHook<
-  StateType = unknown,
-  ActionType extends Action = Action,
->(
-  // @ts-ignore
-  context?: Context<ReactReduxContextValue<
-    StateType,
-    ActionType
-  > | null> = ReactReduxContext,
-) {
-  const useReduxContext =
-    context === ReactReduxContext
-      ? useDefaultReduxContext
-      : // @ts-ignore
-        createReduxContextHook(context)
-  const useStore = () => {
-    const { store } = useReduxContext()
-    return store
-  }
-
-  Object.assign(useStore, {
-    withTypes: () => useStore,
-  })
-
-  return useStore as UseStore<Store<StateType, ActionType>>
-}
-
-/**
- * A hook to access the redux store.
- *
- * @returns {any} the redux store
- *
- * @example
- *
- * import React from 'react'
- * import { useStore } from 'react-redux'
- *
- * export const ExampleComponent = () => {
- *   const store = useStore()
- *   return <div>{store.getState()}</div>
- * }
- */
-export const useStore = /*#__PURE__*/ createStoreHook()
Index: de_modules/react-redux/src/index-rsc.ts
===================================================================
--- node_modules/react-redux/src/index-rsc.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import type * as normal from './index'
-import type * as rsc from './index-rsc'
-
-// checks to make sure we didn't forgot to replicate any exports
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-const _check: typeof normal = {} as typeof rsc
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-const _check2: typeof rsc = {} as typeof normal
-
-// -------------------------------------------------------------------------------------
-
-const throwNotSupportedError = ((
-  // eslint-disable-next-line @typescript-eslint/no-unused-vars
-  ...args: any[]
-): any => {
-  throw new Error(
-    'This function is not supported in React Server Components. Please only use this export in a Client Component.',
-  )
-}) as any
-
-export {
-  throwNotSupportedError as Provider,
-  throwNotSupportedError as batch,
-  throwNotSupportedError as connect,
-  throwNotSupportedError as createDispatchHook,
-  throwNotSupportedError as createSelectorHook,
-  throwNotSupportedError as createStoreHook,
-  throwNotSupportedError as useDispatch,
-  throwNotSupportedError as useSelector,
-  throwNotSupportedError as useStore,
-}
-export const ReactReduxContext = {} as any
-export { default as shallowEqual } from './utils/shallowEqual'
Index: de_modules/react-redux/src/index.ts
===================================================================
--- node_modules/react-redux/src/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export * from './exports'
Index: de_modules/react-redux/src/types.ts
===================================================================
--- node_modules/react-redux/src/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-import type {
-  ClassAttributes,
-  ComponentClass,
-  ComponentType,
-  FunctionComponent,
-  JSX,
-} from 'react'
-
-import type { Action, UnknownAction, Dispatch } from 'redux'
-
-import type { NonReactStatics } from './utils/hoistStatics'
-
-import type { ConnectProps } from './components/connect'
-
-import type { UseSelectorOptions } from './hooks/useSelector'
-
-export type FixTypeLater = any
-
-export type EqualityFn<T> = (a: T, b: T) => boolean
-
-export type ExtendedEqualityFn<T, P> = (a: T, b: T, c: P, d: P) => boolean
-
-export type AnyIfEmpty<T extends object> = keyof T extends never ? any : T
-
-export type DistributiveOmit<T, K extends keyof T> = T extends unknown
-  ? Omit<T, K>
-  : never
-
-export interface DispatchProp<A extends Action<string> = UnknownAction> {
-  dispatch: Dispatch<A>
-}
-
-/**
- * A property P will be present if:
- * - it is present in DecorationTargetProps
- *
- * Its value will be dependent on the following conditions
- * - if property P is present in InjectedProps and its definition extends the definition
- *   in DecorationTargetProps, then its definition will be that of DecorationTargetProps[P]
- * - if property P is not present in InjectedProps then its definition will be that of
- *   DecorationTargetProps[P]
- * - if property P is present in InjectedProps but does not extend the
- *   DecorationTargetProps[P] definition, its definition will be that of InjectedProps[P]
- */
-export type Matching<InjectedProps, DecorationTargetProps> = {
-  [P in keyof DecorationTargetProps]: P extends keyof InjectedProps
-    ? InjectedProps[P] extends DecorationTargetProps[P]
-      ? DecorationTargetProps[P]
-      : InjectedProps[P]
-    : DecorationTargetProps[P]
-}
-
-/**
- * a property P will be present if :
- * - it is present in both DecorationTargetProps and InjectedProps
- * - InjectedProps[P] can satisfy DecorationTargetProps[P]
- * ie: decorated component can accept more types than decorator is injecting
- *
- * For decoration, inject props or ownProps are all optionally
- * required by the decorated (right hand side) component.
- * But any property required by the decorated component must be satisfied by the injected property.
- */
-export type Shared<InjectedProps, DecorationTargetProps> = {
-  [P in Extract<
-    keyof InjectedProps,
-    keyof DecorationTargetProps
-  >]?: InjectedProps[P] extends DecorationTargetProps[P]
-    ? DecorationTargetProps[P]
-    : never
-}
-
-// Infers prop type from component C
-export type GetProps<C> =
-  C extends ComponentType<infer P>
-    ? C extends ComponentClass<P>
-      ? ClassAttributes<InstanceType<C>> & P
-      : P
-    : never
-
-// Applies LibraryManagedAttributes (proper handling of defaultProps
-// and propTypes).
-export type GetLibraryManagedProps<C> = JSX.LibraryManagedAttributes<
-  C,
-  GetProps<C>
->
-
-// Applies LibraryManagedAttributes (proper handling of defaultProps
-// and propTypes), as well as defines WrappedComponent.
-export type ConnectedComponent<
-  C extends ComponentType<any>,
-  P,
-> = FunctionComponent<P> &
-  NonReactStatics<C> & {
-    WrappedComponent: C
-  }
-
-export type ConnectPropsMaybeWithoutContext<TActualOwnProps> =
-  TActualOwnProps extends { context: any }
-    ? Omit<ConnectProps, 'context'>
-    : ConnectProps
-
-type Identity<T> = T
-export type Mapped<T> = Identity<{ [k in keyof T]: T[k] }>
-
-// Injects props and removes them from the prop requirements.
-// Will not pass through the injected props if they are passed in during
-// render. Also adds new prop requirements from TNeedsProps.
-// Uses distributive omit to preserve discriminated unions part of original prop type.
-// Note> Most of the time TNeedsProps is empty, because the overloads in `Connect`
-// just pass in `{}`.  The real props we need come from the component.
-export type InferableComponentEnhancerWithProps<TInjectedProps, TNeedsProps> = <
-  C extends ComponentType<Matching<TInjectedProps, GetProps<C>>>,
->(
-  component: C,
-) => ConnectedComponent<
-  C,
-  Mapped<
-    DistributiveOmit<
-      GetLibraryManagedProps<C>,
-      keyof Shared<TInjectedProps, GetLibraryManagedProps<C>>
-    > &
-      TNeedsProps &
-      ConnectPropsMaybeWithoutContext<TNeedsProps & GetProps<C>>
-  >
->
-
-// Injects props and removes them from the prop requirements.
-// Will not pass through the injected props if they are passed in during
-// render.
-export type InferableComponentEnhancer<TInjectedProps> =
-  InferableComponentEnhancerWithProps<TInjectedProps, {}>
-
-export type InferThunkActionCreatorType<
-  TActionCreator extends (...args: any[]) => any,
-> = TActionCreator extends (
-  ...args: infer TParams
-) => (...args: any[]) => infer TReturn
-  ? (...args: TParams) => TReturn
-  : TActionCreator
-
-export type HandleThunkActionCreator<TActionCreator> = TActionCreator extends (
-  ...args: any[]
-) => any
-  ? InferThunkActionCreatorType<TActionCreator>
-  : TActionCreator
-
-// redux-thunk middleware returns thunk's return value from dispatch call
-// https://github.com/reduxjs/redux-thunk#composition
-export type ResolveThunks<TDispatchProps> = TDispatchProps extends {
-  [key: string]: any
-}
-  ? {
-      [C in keyof TDispatchProps]: HandleThunkActionCreator<TDispatchProps[C]>
-    }
-  : TDispatchProps
-
-/**
- * This interface allows you to easily create a hook that is properly typed for your
- * store's root state.
- *
- * @example
- *
- * interface RootState {
- *   property: string;
- * }
- *
- * const useTypedSelector: TypedUseSelectorHook<RootState> = useSelector;
- */
-export interface TypedUseSelectorHook<TState> {
-  <TSelected>(
-    selector: (state: TState) => TSelected,
-    equalityFn?: EqualityFn<NoInfer<TSelected>>,
-  ): TSelected
-  <Selected = unknown>(
-    selector: (state: TState) => Selected,
-    options?: UseSelectorOptions<Selected>,
-  ): Selected
-}
-
-export type NoInfer<T> = [T][T extends any ? 0 : never]
Index: de_modules/react-redux/src/utils/Subscription.ts
===================================================================
--- node_modules/react-redux/src/utils/Subscription.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,183 +1,0 @@
-import { defaultNoopBatch as batch } from './batch'
-
-// encapsulates the subscription logic for connecting a component to the redux store, as
-// well as nesting subscriptions of descendant components, so that we can ensure the
-// ancestor components re-render before descendants
-
-type VoidFunc = () => void
-
-type Listener = {
-  callback: VoidFunc
-  next: Listener | null
-  prev: Listener | null
-}
-
-function createListenerCollection() {
-  let first: Listener | null = null
-  let last: Listener | null = null
-
-  return {
-    clear() {
-      first = null
-      last = null
-    },
-
-    notify() {
-      batch(() => {
-        let listener = first
-        while (listener) {
-          listener.callback()
-          listener = listener.next
-        }
-      })
-    },
-
-    get() {
-      const listeners: Listener[] = []
-      let listener = first
-      while (listener) {
-        listeners.push(listener)
-        listener = listener.next
-      }
-      return listeners
-    },
-
-    subscribe(callback: () => void) {
-      let isSubscribed = true
-
-      const listener: Listener = (last = {
-        callback,
-        next: null,
-        prev: last,
-      })
-
-      if (listener.prev) {
-        listener.prev.next = listener
-      } else {
-        first = listener
-      }
-
-      return function unsubscribe() {
-        if (!isSubscribed || first === null) return
-        isSubscribed = false
-
-        if (listener.next) {
-          listener.next.prev = listener.prev
-        } else {
-          last = listener.prev
-        }
-        if (listener.prev) {
-          listener.prev.next = listener.next
-        } else {
-          first = listener.next
-        }
-      }
-    },
-  }
-}
-
-type ListenerCollection = ReturnType<typeof createListenerCollection>
-
-export interface Subscription {
-  addNestedSub: (listener: VoidFunc) => VoidFunc
-  notifyNestedSubs: VoidFunc
-  handleChangeWrapper: VoidFunc
-  isSubscribed: () => boolean
-  onStateChange?: VoidFunc | null
-  trySubscribe: VoidFunc
-  tryUnsubscribe: VoidFunc
-  getListeners: () => ListenerCollection
-}
-
-const nullListeners = {
-  notify() {},
-  get: () => [],
-} as unknown as ListenerCollection
-
-export function createSubscription(store: any, parentSub?: Subscription) {
-  let unsubscribe: VoidFunc | undefined
-  let listeners: ListenerCollection = nullListeners
-
-  // Reasons to keep the subscription active
-  let subscriptionsAmount = 0
-
-  // Is this specific subscription subscribed (or only nested ones?)
-  let selfSubscribed = false
-
-  function addNestedSub(listener: () => void) {
-    trySubscribe()
-
-    const cleanupListener = listeners.subscribe(listener)
-
-    // cleanup nested sub
-    let removed = false
-    return () => {
-      if (!removed) {
-        removed = true
-        cleanupListener()
-        tryUnsubscribe()
-      }
-    }
-  }
-
-  function notifyNestedSubs() {
-    listeners.notify()
-  }
-
-  function handleChangeWrapper() {
-    if (subscription.onStateChange) {
-      subscription.onStateChange()
-    }
-  }
-
-  function isSubscribed() {
-    return selfSubscribed
-  }
-
-  function trySubscribe() {
-    subscriptionsAmount++
-    if (!unsubscribe) {
-      unsubscribe = parentSub
-        ? parentSub.addNestedSub(handleChangeWrapper)
-        : store.subscribe(handleChangeWrapper)
-
-      listeners = createListenerCollection()
-    }
-  }
-
-  function tryUnsubscribe() {
-    subscriptionsAmount--
-    if (unsubscribe && subscriptionsAmount === 0) {
-      unsubscribe()
-      unsubscribe = undefined
-      listeners.clear()
-      listeners = nullListeners
-    }
-  }
-
-  function trySubscribeSelf() {
-    if (!selfSubscribed) {
-      selfSubscribed = true
-      trySubscribe()
-    }
-  }
-
-  function tryUnsubscribeSelf() {
-    if (selfSubscribed) {
-      selfSubscribed = false
-      tryUnsubscribe()
-    }
-  }
-
-  const subscription: Subscription = {
-    addNestedSub,
-    notifyNestedSubs,
-    handleChangeWrapper,
-    isSubscribed,
-    trySubscribe: trySubscribeSelf,
-    tryUnsubscribe: tryUnsubscribeSelf,
-    getListeners: () => listeners,
-  }
-
-  return subscription
-}
Index: de_modules/react-redux/src/utils/batch.ts
===================================================================
--- node_modules/react-redux/src/utils/batch.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-// Default to a dummy "batch" implementation that just runs the callback
-export function defaultNoopBatch(callback: () => void) {
-  callback()
-}
Index: de_modules/react-redux/src/utils/bindActionCreators.ts
===================================================================
--- node_modules/react-redux/src/utils/bindActionCreators.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import type { ActionCreatorsMapObject, Dispatch } from 'redux'
-
-export default function bindActionCreators(
-  actionCreators: ActionCreatorsMapObject,
-  dispatch: Dispatch,
-): ActionCreatorsMapObject {
-  const boundActionCreators: ActionCreatorsMapObject = {}
-
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key]
-    if (typeof actionCreator === 'function') {
-      boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))
-    }
-  }
-  return boundActionCreators
-}
Index: de_modules/react-redux/src/utils/hoistStatics.ts
===================================================================
--- node_modules/react-redux/src/utils/hoistStatics.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-// Copied directly from:
-// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js
-// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts
-
-/**
- * Copyright 2015, Yahoo! Inc.
- * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-import type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'
-import { ForwardRef, Memo, isMemo } from '../utils/react-is'
-
-const REACT_STATICS = {
-  childContextTypes: true,
-  contextType: true,
-  contextTypes: true,
-  defaultProps: true,
-  displayName: true,
-  getDefaultProps: true,
-  getDerivedStateFromError: true,
-  getDerivedStateFromProps: true,
-  mixins: true,
-  propTypes: true,
-  type: true,
-} as const
-
-const KNOWN_STATICS = {
-  name: true,
-  length: true,
-  prototype: true,
-  caller: true,
-  callee: true,
-  arguments: true,
-  arity: true,
-} as const
-
-const FORWARD_REF_STATICS = {
-  $$typeof: true,
-  render: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-} as const
-
-const MEMO_STATICS = {
-  $$typeof: true,
-  compare: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-  type: true,
-} as const
-
-const TYPE_STATICS = {
-  [ForwardRef]: FORWARD_REF_STATICS,
-  [Memo]: MEMO_STATICS,
-} as const
-
-function getStatics(component: any) {
-  // React v16.11 and below
-  if (isMemo(component)) {
-    return MEMO_STATICS
-  }
-
-  // React v16.12 and above
-  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS
-}
-
-export type NonReactStatics<
-  Source,
-  C extends {
-    [key: string]: true
-  } = {},
-> = {
-  [key in Exclude<
-    keyof Source,
-    Source extends MemoExoticComponent<any>
-      ? keyof typeof MEMO_STATICS | keyof C
-      : Source extends ForwardRefExoticComponent<any>
-        ? keyof typeof FORWARD_REF_STATICS | keyof C
-        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C
-  >]: Source[key]
-}
-
-const defineProperty = Object.defineProperty
-const getOwnPropertyNames = Object.getOwnPropertyNames
-const getOwnPropertySymbols = Object.getOwnPropertySymbols
-const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
-const getPrototypeOf = Object.getPrototypeOf
-const objectPrototype = Object.prototype
-
-export default function hoistNonReactStatics<
-  Target,
-  Source,
-  CustomStatic extends {
-    [key: string]: true
-  } = {},
->(
-  targetComponent: Target,
-  sourceComponent: Source,
-): Target & NonReactStatics<Source, CustomStatic> {
-  if (typeof sourceComponent !== 'string') {
-    // don't hoist over string (html) components
-
-    if (objectPrototype) {
-      const inheritedComponent = getPrototypeOf(sourceComponent)
-      if (inheritedComponent && inheritedComponent !== objectPrototype) {
-        hoistNonReactStatics(targetComponent, inheritedComponent)
-      }
-    }
-
-    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)
-
-    if (getOwnPropertySymbols) {
-      keys = keys.concat(getOwnPropertySymbols(sourceComponent))
-    }
-
-    const targetStatics = getStatics(targetComponent)
-    const sourceStatics = getStatics(sourceComponent)
-
-    for (let i = 0; i < keys.length; ++i) {
-      const key = keys[i]
-      if (
-        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&
-        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&
-        !(targetStatics && targetStatics[key as keyof typeof targetStatics])
-      ) {
-        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)
-        try {
-          // Avoid failures from read-only properties
-          defineProperty(targetComponent, key, descriptor!)
-        } catch (e) {
-          // ignore
-        }
-      }
-    }
-  }
-
-  return targetComponent as any
-}
Index: de_modules/react-redux/src/utils/isPlainObject.ts
===================================================================
--- node_modules/react-redux/src/utils/isPlainObject.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * @param {any} obj The object to inspect.
- * @returns {boolean} True if the argument appears to be a plain object.
- */
-export default function isPlainObject(obj: unknown) {
-  if (typeof obj !== 'object' || obj === null) return false
-
-  const proto = Object.getPrototypeOf(obj)
-  if (proto === null) return true
-
-  let baseProto = proto
-  while (Object.getPrototypeOf(baseProto) !== null) {
-    baseProto = Object.getPrototypeOf(baseProto)
-  }
-
-  return proto === baseProto
-}
Index: de_modules/react-redux/src/utils/react-is.ts
===================================================================
--- node_modules/react-redux/src/utils/react-is.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-import type { ElementType, MemoExoticComponent, ReactElement } from 'react'
-import { React } from './react'
-
-// Directly ported from:
-// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js
-// It's very possible this could change in the future, but given that
-// we only use these in `connect`, this is a low priority.
-
-export const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')
-
-const REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(
-  IS_REACT_19 ? 'react.transitional.element' : 'react.element',
-)
-const REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')
-const REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')
-const REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')
-const REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')
-const REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')
-const REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')
-const REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')
-const REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')
-const REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(
-  'react.suspense_list',
-)
-const REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')
-const REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')
-const REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')
-const REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(
-  'react.client.reference',
-)
-
-export const ForwardRef = REACT_FORWARD_REF_TYPE
-export const Memo = REACT_MEMO_TYPE
-
-export function isValidElementType(type: any): type is ElementType {
-  return typeof type === 'string' ||
-    typeof type === 'function' ||
-    type === REACT_FRAGMENT_TYPE ||
-    type === REACT_PROFILER_TYPE ||
-    type === REACT_STRICT_MODE_TYPE ||
-    type === REACT_SUSPENSE_TYPE ||
-    type === REACT_SUSPENSE_LIST_TYPE ||
-    type === REACT_OFFSCREEN_TYPE ||
-    (typeof type === 'object' &&
-      type !== null &&
-      (type.$$typeof === REACT_LAZY_TYPE ||
-        type.$$typeof === REACT_MEMO_TYPE ||
-        type.$$typeof === REACT_CONTEXT_TYPE ||
-        type.$$typeof === REACT_CONSUMER_TYPE ||
-        type.$$typeof === REACT_FORWARD_REF_TYPE ||
-        type.$$typeof === REACT_CLIENT_REFERENCE ||
-        type.getModuleId !== undefined))
-    ? !0
-    : !1
-}
-
-function typeOf(object: any): symbol | undefined {
-  if (typeof object === 'object' && object !== null) {
-    const { $$typeof } = object
-
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        switch (((object = object.type), object)) {
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-          case REACT_SUSPENSE_LIST_TYPE:
-            return object
-          default:
-            switch (((object = object && object.$$typeof), object)) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-                return object
-              case REACT_CONSUMER_TYPE:
-                return object
-              default:
-                return $$typeof
-            }
-        }
-      case REACT_PORTAL_TYPE:
-        return $$typeof
-    }
-  }
-}
-
-export function isContextConsumer(object: any): object is ReactElement {
-  return IS_REACT_19
-    ? typeOf(object) === REACT_CONSUMER_TYPE
-    : typeOf(object) === REACT_CONTEXT_TYPE
-}
-
-export function isMemo(object: any): object is MemoExoticComponent<any> {
-  return typeOf(object) === REACT_MEMO_TYPE
-}
Index: de_modules/react-redux/src/utils/react.ts
===================================================================
--- node_modules/react-redux/src/utils/react.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import * as React from 'react'
-
-export { React }
Index: de_modules/react-redux/src/utils/shallowEqual.ts
===================================================================
--- node_modules/react-redux/src/utils/shallowEqual.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-function is(x: unknown, y: unknown) {
-  if (x === y) {
-    return x !== 0 || y !== 0 || 1 / x === 1 / y
-  } else {
-    return x !== x && y !== y
-  }
-}
-
-export default function shallowEqual(objA: any, objB: any) {
-  if (is(objA, objB)) return true
-
-  if (
-    typeof objA !== 'object' ||
-    objA === null ||
-    typeof objB !== 'object' ||
-    objB === null
-  ) {
-    return false
-  }
-
-  const keysA = Object.keys(objA)
-  const keysB = Object.keys(objB)
-
-  if (keysA.length !== keysB.length) return false
-
-  for (let i = 0; i < keysA.length; i++) {
-    if (
-      !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||
-      !is(objA[keysA[i]], objB[keysA[i]])
-    ) {
-      return false
-    }
-  }
-
-  return true
-}
Index: de_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts
===================================================================
--- node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { React } from '../utils/react'
-
-// React currently throws a warning when using useLayoutEffect on the server.
-// To get around it, we can conditionally useEffect on the server (no-op) and
-// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
-// subscription callback always has the selector from the latest render commit
-// available, otherwise a store update may happen between render and the effect,
-// which may cause missed updates; we also must ensure the store subscription
-// is created synchronously, otherwise a store update may occur before the
-// subscription is created and an inconsistent state may be observed
-
-// Matches logic in React's `shared/ExecutionEnvironment` file
-const canUseDOM = () =>
-  !!(
-    typeof window !== 'undefined' &&
-    typeof window.document !== 'undefined' &&
-    typeof window.document.createElement !== 'undefined'
-  )
-
-const isDOM = /* @__PURE__ */ canUseDOM()
-
-// Under React Native, we know that we always want to use useLayoutEffect
-
-/**
- * Checks if the code is running in a React Native environment.
- *
- * @returns Whether the code is running in a React Native environment.
- *
- * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}
- */
-const isRunningInReactNative = () =>
-  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'
-
-const isReactNative = /* @__PURE__ */ isRunningInReactNative()
-
-const getUseIsomorphicLayoutEffect = () =>
-  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect
-
-export const useIsomorphicLayoutEffect =
-  /* @__PURE__ */ getUseIsomorphicLayoutEffect()
Index: de_modules/react-redux/src/utils/useSyncExternalStore.ts
===================================================================
--- node_modules/react-redux/src/utils/useSyncExternalStore.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import type { useSyncExternalStore } from 'use-sync-external-store'
-import type { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector'
-
-export const notInitialized = () => {
-  throw new Error('uSES not initialized!')
-}
-
-export type uSES = typeof useSyncExternalStore
-export type uSESWS = typeof useSyncExternalStoreWithSelector
Index: de_modules/react-redux/src/utils/verifyPlainObject.ts
===================================================================
--- node_modules/react-redux/src/utils/verifyPlainObject.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import isPlainObject from './isPlainObject'
-import warning from './warning'
-
-export default function verifyPlainObject(
-  value: unknown,
-  displayName: string,
-  methodName: string,
-) {
-  if (!isPlainObject(value)) {
-    warning(
-      `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`,
-    )
-  }
-}
Index: de_modules/react-redux/src/utils/warning.ts
===================================================================
--- node_modules/react-redux/src/utils/warning.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Prints a warning in the console if it exists.
- *
- * @param {String} message The warning message.
- * @returns {void}
- */
-export default function warning(message: string) {
-  /* eslint-disable no-console */
-  if (typeof console !== 'undefined' && typeof console.error === 'function') {
-    console.error(message)
-  }
-  /* eslint-enable no-console */
-  try {
-    // This error was thrown as a convenience so that if you enable
-    // "break on all exceptions" in your console,
-    // it would pause the execution at this line.
-    throw new Error(message)
-    /* eslint-disable no-empty */
-  } catch (e) {}
-  /* eslint-enable no-empty */
-}
Index: de_modules/react/LICENSE
===================================================================
--- node_modules/react/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Meta Platforms, Inc. and affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/react/README.md
===================================================================
--- node_modules/react/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-# `react`
-
-React is a JavaScript library for creating user interfaces.
-
-The `react` package contains only the functionality necessary to define React components. It is typically used together with a React renderer like `react-dom` for the web, or `react-native` for the native environments.
-
-**Note:** by default, React will be in development mode. The development version includes extra warnings about common mistakes, whereas the production version includes extra performance optimizations and strips all error messages. Don't forget to use the [production build](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) when deploying your application.
-
-## Usage
-
-```js
-import { useState } from 'react';
-import { createRoot } from 'react-dom/client';
-
-function Counter() {
-  const [count, setCount] = useState(0);
-  return (
-    <>
-      <h1>{count}</h1>
-      <button onClick={() => setCount(count + 1)}>
-        Increment
-      </button>
-    </>
-  );
-}
-
-const root = createRoot(document.getElementById('root'));
-root.render(<Counter />);
-```
-
-## Documentation
-
-See https://react.dev/
-
-## API
-
-See https://react.dev/reference/react
Index: de_modules/react/cjs/react-compiler-runtime.development.js
===================================================================
--- node_modules/react/cjs/react-compiler-runtime.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-/**
- * @license React
- * react-compiler-runtime.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    var ReactSharedInternals =
-      require("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-    exports.c = function (size) {
-      var dispatcher = ReactSharedInternals.H;
-      null === dispatcher &&
-        console.error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      return dispatcher.useMemoCache(size);
-    };
-  })();
Index: de_modules/react/cjs/react-compiler-runtime.production.js
===================================================================
--- node_modules/react/cjs/react-compiler-runtime.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * @license React
- * react-compiler-runtime.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.
- */
-
-"use strict";
-var ReactSharedInternals =
-  require("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-exports.c = function (size) {
-  return ReactSharedInternals.H.useMemoCache(size);
-};
Index: de_modules/react/cjs/react-compiler-runtime.profiling.js
===================================================================
--- node_modules/react/cjs/react-compiler-runtime.profiling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * @license React
- * react-compiler-runtime.profiling.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.
- */
-
-"use strict";
-var ReactSharedInternals =
-  require("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-exports.c = function (size) {
-  return ReactSharedInternals.H.useMemoCache(size);
-};
Index: de_modules/react/cjs/react-jsx-dev-runtime.development.js
===================================================================
--- node_modules/react/cjs/react-jsx-dev-runtime.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,338 +1,0 @@
-/**
- * @license React
- * react-jsx-dev-runtime.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternals.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function jsxDEVImpl(
-      type,
-      config,
-      maybeKey,
-      isStaticChildren,
-      debugStack,
-      debugTask
-    ) {
-      var children = config.children;
-      if (void 0 !== children)
-        if (isStaticChildren)
-          if (isArrayImpl(children)) {
-            for (
-              isStaticChildren = 0;
-              isStaticChildren < children.length;
-              isStaticChildren++
-            )
-              validateChildKeys(children[isStaticChildren]);
-            Object.freeze && Object.freeze(children);
-          } else
-            console.error(
-              "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
-            );
-        else validateChildKeys(children);
-      if (hasOwnProperty.call(config, "key")) {
-        children = getComponentNameFromType(type);
-        var keys = Object.keys(config).filter(function (k) {
-          return "key" !== k;
-        });
-        isStaticChildren =
-          0 < keys.length
-            ? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
-            : "{key: someKey}";
-        didWarnAboutKeySpread[children + isStaticChildren] ||
-          ((keys =
-            0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}"),
-          console.error(
-            'A props object containing a "key" prop is being spread into JSX:\n  let props = %s;\n  <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n  let props = %s;\n  <%s key={someKey} {...props} />',
-            isStaticChildren,
-            children,
-            keys,
-            children
-          ),
-          (didWarnAboutKeySpread[children + isStaticChildren] = !0));
-      }
-      children = null;
-      void 0 !== maybeKey &&
-        (checkKeyStringCoercion(maybeKey), (children = "" + maybeKey));
-      hasValidKey(config) &&
-        (checkKeyStringCoercion(config.key), (children = "" + config.key));
-      if ("key" in config) {
-        maybeKey = {};
-        for (var propName in config)
-          "key" !== propName && (maybeKey[propName] = config[propName]);
-      } else maybeKey = config;
-      children &&
-        defineKeyPropWarningGetter(
-          maybeKey,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      return ReactElement(
-        type,
-        children,
-        maybeKey,
-        getOwner(),
-        debugStack,
-        debugTask
-      );
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    var React = require("react"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      isArrayImpl = Array.isArray,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          };
-    React = {
-      react_stack_bottom_frame: function (callStackForError) {
-        return callStackForError();
-      }
-    };
-    var specialPropKeyWarningShown;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(
-      React,
-      UnknownOwner
-    )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutKeySpread = {};
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.jsxDEV = function (type, config, maybeKey, isStaticChildren) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        isStaticChildren,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-  })();
Index: de_modules/react/cjs/react-jsx-dev-runtime.production.js
===================================================================
--- node_modules/react/cjs/react-jsx-dev-runtime.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * @license React
- * react-jsx-dev-runtime.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.
- */
-
-"use strict";
-var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsxDEV = void 0;
Index: de_modules/react/cjs/react-jsx-dev-runtime.profiling.js
===================================================================
--- node_modules/react/cjs/react-jsx-dev-runtime.profiling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * @license React
- * react-jsx-dev-runtime.profiling.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.
- */
-
-"use strict";
-var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsxDEV = void 0;
Index: de_modules/react/cjs/react-jsx-dev-runtime.react-server.development.js
===================================================================
--- node_modules/react/cjs/react-jsx-dev-runtime.react-server.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,370 +1,0 @@
-/**
- * @license React
- * react-jsx-dev-runtime.react-server.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternalsServer.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function jsxDEVImpl(
-      type,
-      config,
-      maybeKey,
-      isStaticChildren,
-      debugStack,
-      debugTask
-    ) {
-      var children = config.children;
-      if (void 0 !== children)
-        if (isStaticChildren)
-          if (isArrayImpl(children)) {
-            for (
-              isStaticChildren = 0;
-              isStaticChildren < children.length;
-              isStaticChildren++
-            )
-              validateChildKeys(children[isStaticChildren]);
-            Object.freeze && Object.freeze(children);
-          } else
-            console.error(
-              "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
-            );
-        else validateChildKeys(children);
-      if (hasOwnProperty.call(config, "key")) {
-        children = getComponentNameFromType(type);
-        var keys = Object.keys(config).filter(function (k) {
-          return "key" !== k;
-        });
-        isStaticChildren =
-          0 < keys.length
-            ? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
-            : "{key: someKey}";
-        didWarnAboutKeySpread[children + isStaticChildren] ||
-          ((keys =
-            0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}"),
-          console.error(
-            'A props object containing a "key" prop is being spread into JSX:\n  let props = %s;\n  <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n  let props = %s;\n  <%s key={someKey} {...props} />',
-            isStaticChildren,
-            children,
-            keys,
-            children
-          ),
-          (didWarnAboutKeySpread[children + isStaticChildren] = !0));
-      }
-      children = null;
-      void 0 !== maybeKey &&
-        (checkKeyStringCoercion(maybeKey), (children = "" + maybeKey));
-      hasValidKey(config) &&
-        (checkKeyStringCoercion(config.key), (children = "" + config.key));
-      if ("key" in config) {
-        maybeKey = {};
-        for (var propName in config)
-          "key" !== propName && (maybeKey[propName] = config[propName]);
-      } else maybeKey = config;
-      children &&
-        defineKeyPropWarningGetter(
-          maybeKey,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      return ReactElement(
-        type,
-        children,
-        maybeKey,
-        getOwner(),
-        debugStack,
-        debugTask
-      );
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    var React = require("react"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      ReactSharedInternalsServer =
-        React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-    if (!ReactSharedInternalsServer)
-      throw Error(
-        'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-      );
-    var hasOwnProperty = Object.prototype.hasOwnProperty,
-      isArrayImpl = Array.isArray,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          };
-    React = {
-      react_stack_bottom_frame: function (callStackForError) {
-        return callStackForError();
-      }
-    };
-    var specialPropKeyWarningShown;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(
-      React,
-      UnknownOwner
-    )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutKeySpread = {};
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.jsx = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !1,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.jsxDEV = function (type, config, maybeKey, isStaticChildren) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        isStaticChildren,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.jsxs = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !0,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-  })();
Index: de_modules/react/cjs/react-jsx-dev-runtime.react-server.production.js
===================================================================
--- node_modules/react/cjs/react-jsx-dev-runtime.react-server.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-/**
- * @license React
- * react-jsx-dev-runtime.react-server.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.
- */
-
-"use strict";
-var React = require("react"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-if (!React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)
-  throw Error(
-    'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-  );
-function jsxProd(type, config, maybeKey) {
-  var key = null;
-  void 0 !== maybeKey && (key = "" + maybeKey);
-  void 0 !== config.key && (key = "" + config.key);
-  if ("key" in config) {
-    maybeKey = {};
-    for (var propName in config)
-      "key" !== propName && (maybeKey[propName] = config[propName]);
-  } else maybeKey = config;
-  config = maybeKey.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== config ? config : null,
-    props: maybeKey
-  };
-}
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsx = jsxProd;
-exports.jsxDEV = void 0;
-exports.jsxs = jsxProd;
Index: de_modules/react/cjs/react-jsx-runtime.development.js
===================================================================
--- node_modules/react/cjs/react-jsx-runtime.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,352 +1,0 @@
-/**
- * @license React
- * react-jsx-runtime.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternals.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function jsxDEVImpl(
-      type,
-      config,
-      maybeKey,
-      isStaticChildren,
-      debugStack,
-      debugTask
-    ) {
-      var children = config.children;
-      if (void 0 !== children)
-        if (isStaticChildren)
-          if (isArrayImpl(children)) {
-            for (
-              isStaticChildren = 0;
-              isStaticChildren < children.length;
-              isStaticChildren++
-            )
-              validateChildKeys(children[isStaticChildren]);
-            Object.freeze && Object.freeze(children);
-          } else
-            console.error(
-              "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
-            );
-        else validateChildKeys(children);
-      if (hasOwnProperty.call(config, "key")) {
-        children = getComponentNameFromType(type);
-        var keys = Object.keys(config).filter(function (k) {
-          return "key" !== k;
-        });
-        isStaticChildren =
-          0 < keys.length
-            ? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
-            : "{key: someKey}";
-        didWarnAboutKeySpread[children + isStaticChildren] ||
-          ((keys =
-            0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}"),
-          console.error(
-            'A props object containing a "key" prop is being spread into JSX:\n  let props = %s;\n  <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n  let props = %s;\n  <%s key={someKey} {...props} />',
-            isStaticChildren,
-            children,
-            keys,
-            children
-          ),
-          (didWarnAboutKeySpread[children + isStaticChildren] = !0));
-      }
-      children = null;
-      void 0 !== maybeKey &&
-        (checkKeyStringCoercion(maybeKey), (children = "" + maybeKey));
-      hasValidKey(config) &&
-        (checkKeyStringCoercion(config.key), (children = "" + config.key));
-      if ("key" in config) {
-        maybeKey = {};
-        for (var propName in config)
-          "key" !== propName && (maybeKey[propName] = config[propName]);
-      } else maybeKey = config;
-      children &&
-        defineKeyPropWarningGetter(
-          maybeKey,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      return ReactElement(
-        type,
-        children,
-        maybeKey,
-        getOwner(),
-        debugStack,
-        debugTask
-      );
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    var React = require("react"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      ReactSharedInternals =
-        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      isArrayImpl = Array.isArray,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          };
-    React = {
-      react_stack_bottom_frame: function (callStackForError) {
-        return callStackForError();
-      }
-    };
-    var specialPropKeyWarningShown;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(
-      React,
-      UnknownOwner
-    )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutKeySpread = {};
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.jsx = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !1,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.jsxs = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !0,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-  })();
Index: de_modules/react/cjs/react-jsx-runtime.production.js
===================================================================
--- node_modules/react/cjs/react-jsx-runtime.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * @license React
- * react-jsx-runtime.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.
- */
-
-"use strict";
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-function jsxProd(type, config, maybeKey) {
-  var key = null;
-  void 0 !== maybeKey && (key = "" + maybeKey);
-  void 0 !== config.key && (key = "" + config.key);
-  if ("key" in config) {
-    maybeKey = {};
-    for (var propName in config)
-      "key" !== propName && (maybeKey[propName] = config[propName]);
-  } else maybeKey = config;
-  config = maybeKey.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== config ? config : null,
-    props: maybeKey
-  };
-}
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsx = jsxProd;
-exports.jsxs = jsxProd;
Index: de_modules/react/cjs/react-jsx-runtime.profiling.js
===================================================================
--- node_modules/react/cjs/react-jsx-runtime.profiling.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/**
- * @license React
- * react-jsx-runtime.profiling.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.
- */
-
-"use strict";
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-function jsxProd(type, config, maybeKey) {
-  var key = null;
-  void 0 !== maybeKey && (key = "" + maybeKey);
-  void 0 !== config.key && (key = "" + config.key);
-  if ("key" in config) {
-    maybeKey = {};
-    for (var propName in config)
-      "key" !== propName && (maybeKey[propName] = config[propName]);
-  } else maybeKey = config;
-  config = maybeKey.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== config ? config : null,
-    props: maybeKey
-  };
-}
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsx = jsxProd;
-exports.jsxs = jsxProd;
Index: de_modules/react/cjs/react-jsx-runtime.react-server.development.js
===================================================================
--- node_modules/react/cjs/react-jsx-runtime.react-server.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,370 +1,0 @@
-/**
- * @license React
- * react-jsx-runtime.react-server.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternalsServer.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function jsxDEVImpl(
-      type,
-      config,
-      maybeKey,
-      isStaticChildren,
-      debugStack,
-      debugTask
-    ) {
-      var children = config.children;
-      if (void 0 !== children)
-        if (isStaticChildren)
-          if (isArrayImpl(children)) {
-            for (
-              isStaticChildren = 0;
-              isStaticChildren < children.length;
-              isStaticChildren++
-            )
-              validateChildKeys(children[isStaticChildren]);
-            Object.freeze && Object.freeze(children);
-          } else
-            console.error(
-              "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
-            );
-        else validateChildKeys(children);
-      if (hasOwnProperty.call(config, "key")) {
-        children = getComponentNameFromType(type);
-        var keys = Object.keys(config).filter(function (k) {
-          return "key" !== k;
-        });
-        isStaticChildren =
-          0 < keys.length
-            ? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
-            : "{key: someKey}";
-        didWarnAboutKeySpread[children + isStaticChildren] ||
-          ((keys =
-            0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}"),
-          console.error(
-            'A props object containing a "key" prop is being spread into JSX:\n  let props = %s;\n  <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n  let props = %s;\n  <%s key={someKey} {...props} />',
-            isStaticChildren,
-            children,
-            keys,
-            children
-          ),
-          (didWarnAboutKeySpread[children + isStaticChildren] = !0));
-      }
-      children = null;
-      void 0 !== maybeKey &&
-        (checkKeyStringCoercion(maybeKey), (children = "" + maybeKey));
-      hasValidKey(config) &&
-        (checkKeyStringCoercion(config.key), (children = "" + config.key));
-      if ("key" in config) {
-        maybeKey = {};
-        for (var propName in config)
-          "key" !== propName && (maybeKey[propName] = config[propName]);
-      } else maybeKey = config;
-      children &&
-        defineKeyPropWarningGetter(
-          maybeKey,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      return ReactElement(
-        type,
-        children,
-        maybeKey,
-        getOwner(),
-        debugStack,
-        debugTask
-      );
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    var React = require("react"),
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      ReactSharedInternalsServer =
-        React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
-    if (!ReactSharedInternalsServer)
-      throw Error(
-        'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-      );
-    var hasOwnProperty = Object.prototype.hasOwnProperty,
-      isArrayImpl = Array.isArray,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          };
-    React = {
-      react_stack_bottom_frame: function (callStackForError) {
-        return callStackForError();
-      }
-    };
-    var specialPropKeyWarningShown;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(
-      React,
-      UnknownOwner
-    )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutKeySpread = {};
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.jsx = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !1,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.jsxDEV = function (type, config, maybeKey, isStaticChildren) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        isStaticChildren,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.jsxs = function (type, config, maybeKey) {
-      var trackActualOwner =
-        1e4 > ReactSharedInternalsServer.recentlyCreatedOwnerStacks++;
-      return jsxDEVImpl(
-        type,
-        config,
-        maybeKey,
-        !0,
-        trackActualOwner
-          ? Error("react-stack-top-frame")
-          : unknownOwnerDebugStack,
-        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-  })();
Index: de_modules/react/cjs/react-jsx-runtime.react-server.production.js
===================================================================
--- node_modules/react/cjs/react-jsx-runtime.react-server.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-/**
- * @license React
- * react-jsx-runtime.react-server.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.
- */
-
-"use strict";
-var React = require("react"),
-  REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
-if (!React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)
-  throw Error(
-    'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
-  );
-function jsxProd(type, config, maybeKey) {
-  var key = null;
-  void 0 !== maybeKey && (key = "" + maybeKey);
-  void 0 !== config.key && (key = "" + config.key);
-  if ("key" in config) {
-    maybeKey = {};
-    for (var propName in config)
-      "key" !== propName && (maybeKey[propName] = config[propName]);
-  } else maybeKey = config;
-  config = maybeKey.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== config ? config : null,
-    props: maybeKey
-  };
-}
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.jsx = jsxProd;
-exports.jsxDEV = void 0;
-exports.jsxs = jsxProd;
Index: de_modules/react/cjs/react.development.js
===================================================================
--- node_modules/react/cjs/react.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1284 +1,0 @@
-/**
- * @license React
- * react.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function defineDeprecationWarning(methodName, info) {
-      Object.defineProperty(Component.prototype, methodName, {
-        get: function () {
-          console.warn(
-            "%s(...) is deprecated in plain JavaScript React classes. %s",
-            info[0],
-            info[1]
-          );
-        }
-      });
-    }
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function warnNoop(publicInstance, callerName) {
-      publicInstance =
-        ((publicInstance = publicInstance.constructor) &&
-          (publicInstance.displayName || publicInstance.name)) ||
-        "ReactClass";
-      var warningKey = publicInstance + "." + callerName;
-      didWarnStateUpdateForUnmountedComponent[warningKey] ||
-        (console.error(
-          "Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",
-          callerName,
-          publicInstance
-        ),
-        (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));
-    }
-    function Component(props, context, updater) {
-      this.props = props;
-      this.context = context;
-      this.refs = emptyObject;
-      this.updater = updater || ReactNoopUpdateQueue;
-    }
-    function ComponentDummy() {}
-    function PureComponent(props, context, updater) {
-      this.props = props;
-      this.context = context;
-      this.refs = emptyObject;
-      this.updater = updater || ReactNoopUpdateQueue;
-    }
-    function noop() {}
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternals.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function cloneAndReplaceKey(oldElement, newKey) {
-      newKey = ReactElement(
-        oldElement.type,
-        newKey,
-        oldElement.props,
-        oldElement._owner,
-        oldElement._debugStack,
-        oldElement._debugTask
-      );
-      oldElement._store &&
-        (newKey._store.validated = oldElement._store.validated);
-      return newKey;
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    function escape(key) {
-      var escaperLookup = { "=": "=0", ":": "=2" };
-      return (
-        "$" +
-        key.replace(/[=:]/g, function (match) {
-          return escaperLookup[match];
-        })
-      );
-    }
-    function getElementKey(element, index) {
-      return "object" === typeof element &&
-        null !== element &&
-        null != element.key
-        ? (checkKeyStringCoercion(element.key), escape("" + element.key))
-        : index.toString(36);
-    }
-    function resolveThenable(thenable) {
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          switch (
-            ("string" === typeof thenable.status
-              ? thenable.then(noop, noop)
-              : ((thenable.status = "pending"),
-                thenable.then(
-                  function (fulfilledValue) {
-                    "pending" === thenable.status &&
-                      ((thenable.status = "fulfilled"),
-                      (thenable.value = fulfilledValue));
-                  },
-                  function (error) {
-                    "pending" === thenable.status &&
-                      ((thenable.status = "rejected"),
-                      (thenable.reason = error));
-                  }
-                )),
-            thenable.status)
-          ) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-      }
-      throw thenable;
-    }
-    function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
-      var type = typeof children;
-      if ("undefined" === type || "boolean" === type) children = null;
-      var invokeCallback = !1;
-      if (null === children) invokeCallback = !0;
-      else
-        switch (type) {
-          case "bigint":
-          case "string":
-          case "number":
-            invokeCallback = !0;
-            break;
-          case "object":
-            switch (children.$$typeof) {
-              case REACT_ELEMENT_TYPE:
-              case REACT_PORTAL_TYPE:
-                invokeCallback = !0;
-                break;
-              case REACT_LAZY_TYPE:
-                return (
-                  (invokeCallback = children._init),
-                  mapIntoArray(
-                    invokeCallback(children._payload),
-                    array,
-                    escapedPrefix,
-                    nameSoFar,
-                    callback
-                  )
-                );
-            }
-        }
-      if (invokeCallback) {
-        invokeCallback = children;
-        callback = callback(invokeCallback);
-        var childKey =
-          "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar;
-        isArrayImpl(callback)
-          ? ((escapedPrefix = ""),
-            null != childKey &&
-              (escapedPrefix =
-                childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"),
-            mapIntoArray(callback, array, escapedPrefix, "", function (c) {
-              return c;
-            }))
-          : null != callback &&
-            (isValidElement(callback) &&
-              (null != callback.key &&
-                ((invokeCallback && invokeCallback.key === callback.key) ||
-                  checkKeyStringCoercion(callback.key)),
-              (escapedPrefix = cloneAndReplaceKey(
-                callback,
-                escapedPrefix +
-                  (null == callback.key ||
-                  (invokeCallback && invokeCallback.key === callback.key)
-                    ? ""
-                    : ("" + callback.key).replace(
-                        userProvidedKeyEscapeRegex,
-                        "$&/"
-                      ) + "/") +
-                  childKey
-              )),
-              "" !== nameSoFar &&
-                null != invokeCallback &&
-                isValidElement(invokeCallback) &&
-                null == invokeCallback.key &&
-                invokeCallback._store &&
-                !invokeCallback._store.validated &&
-                (escapedPrefix._store.validated = 2),
-              (callback = escapedPrefix)),
-            array.push(callback));
-        return 1;
-      }
-      invokeCallback = 0;
-      childKey = "" === nameSoFar ? "." : nameSoFar + ":";
-      if (isArrayImpl(children))
-        for (var i = 0; i < children.length; i++)
-          (nameSoFar = children[i]),
-            (type = childKey + getElementKey(nameSoFar, i)),
-            (invokeCallback += mapIntoArray(
-              nameSoFar,
-              array,
-              escapedPrefix,
-              type,
-              callback
-            ));
-      else if (((i = getIteratorFn(children)), "function" === typeof i))
-        for (
-          i === children.entries &&
-            (didWarnAboutMaps ||
-              console.warn(
-                "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-              ),
-            (didWarnAboutMaps = !0)),
-            children = i.call(children),
-            i = 0;
-          !(nameSoFar = children.next()).done;
-
-        )
-          (nameSoFar = nameSoFar.value),
-            (type = childKey + getElementKey(nameSoFar, i++)),
-            (invokeCallback += mapIntoArray(
-              nameSoFar,
-              array,
-              escapedPrefix,
-              type,
-              callback
-            ));
-      else if ("object" === type) {
-        if ("function" === typeof children.then)
-          return mapIntoArray(
-            resolveThenable(children),
-            array,
-            escapedPrefix,
-            nameSoFar,
-            callback
-          );
-        array = String(children);
-        throw Error(
-          "Objects are not valid as a React child (found: " +
-            ("[object Object]" === array
-              ? "object with keys {" + Object.keys(children).join(", ") + "}"
-              : array) +
-            "). If you meant to render a collection of children, use an array instead."
-        );
-      }
-      return invokeCallback;
-    }
-    function mapChildren(children, func, context) {
-      if (null == children) return children;
-      var result = [],
-        count = 0;
-      mapIntoArray(children, result, "", "", function (child) {
-        return func.call(context, child, count++);
-      });
-      return result;
-    }
-    function lazyInitializer(payload) {
-      if (-1 === payload._status) {
-        var ioInfo = payload._ioInfo;
-        null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());
-        ioInfo = payload._result;
-        var thenable = ioInfo();
-        thenable.then(
-          function (moduleObject) {
-            if (0 === payload._status || -1 === payload._status) {
-              payload._status = 1;
-              payload._result = moduleObject;
-              var _ioInfo = payload._ioInfo;
-              null != _ioInfo && (_ioInfo.end = performance.now());
-              void 0 === thenable.status &&
-                ((thenable.status = "fulfilled"),
-                (thenable.value = moduleObject));
-            }
-          },
-          function (error) {
-            if (0 === payload._status || -1 === payload._status) {
-              payload._status = 2;
-              payload._result = error;
-              var _ioInfo2 = payload._ioInfo;
-              null != _ioInfo2 && (_ioInfo2.end = performance.now());
-              void 0 === thenable.status &&
-                ((thenable.status = "rejected"), (thenable.reason = error));
-            }
-          }
-        );
-        ioInfo = payload._ioInfo;
-        if (null != ioInfo) {
-          ioInfo.value = thenable;
-          var displayName = thenable.displayName;
-          "string" === typeof displayName && (ioInfo.name = displayName);
-        }
-        -1 === payload._status &&
-          ((payload._status = 0), (payload._result = thenable));
-      }
-      if (1 === payload._status)
-        return (
-          (ioInfo = payload._result),
-          void 0 === ioInfo &&
-            console.error(
-              "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",
-              ioInfo
-            ),
-          "default" in ioInfo ||
-            console.error(
-              "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))",
-              ioInfo
-            ),
-          ioInfo.default
-        );
-      throw payload._result;
-    }
-    function resolveDispatcher() {
-      var dispatcher = ReactSharedInternals.H;
-      null === dispatcher &&
-        console.error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      return dispatcher;
-    }
-    function releaseAsyncTransition() {
-      ReactSharedInternals.asyncTransitions--;
-    }
-    function enqueueTask(task) {
-      if (null === enqueueTaskImpl)
-        try {
-          var requireString = ("require" + Math.random()).slice(0, 7);
-          enqueueTaskImpl = (module && module[requireString]).call(
-            module,
-            "timers"
-          ).setImmediate;
-        } catch (_err) {
-          enqueueTaskImpl = function (callback) {
-            !1 === didWarnAboutMessageChannel &&
-              ((didWarnAboutMessageChannel = !0),
-              "undefined" === typeof MessageChannel &&
-                console.error(
-                  "This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."
-                ));
-            var channel = new MessageChannel();
-            channel.port1.onmessage = callback;
-            channel.port2.postMessage(void 0);
-          };
-        }
-      return enqueueTaskImpl(task);
-    }
-    function aggregateErrors(errors) {
-      return 1 < errors.length && "function" === typeof AggregateError
-        ? new AggregateError(errors)
-        : errors[0];
-    }
-    function popActScope(prevActQueue, prevActScopeDepth) {
-      prevActScopeDepth !== actScopeDepth - 1 &&
-        console.error(
-          "You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "
-        );
-      actScopeDepth = prevActScopeDepth;
-    }
-    function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {
-      var queue = ReactSharedInternals.actQueue;
-      if (null !== queue)
-        if (0 !== queue.length)
-          try {
-            flushActQueue(queue);
-            enqueueTask(function () {
-              return recursivelyFlushAsyncActWork(returnValue, resolve, reject);
-            });
-            return;
-          } catch (error) {
-            ReactSharedInternals.thrownErrors.push(error);
-          }
-        else ReactSharedInternals.actQueue = null;
-      0 < ReactSharedInternals.thrownErrors.length
-        ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),
-          (ReactSharedInternals.thrownErrors.length = 0),
-          reject(queue))
-        : resolve(returnValue);
-    }
-    function flushActQueue(queue) {
-      if (!isFlushing) {
-        isFlushing = !0;
-        var i = 0;
-        try {
-          for (; i < queue.length; i++) {
-            var callback = queue[i];
-            do {
-              ReactSharedInternals.didUsePromise = !1;
-              var continuation = callback(!1);
-              if (null !== continuation) {
-                if (ReactSharedInternals.didUsePromise) {
-                  queue[i] = callback;
-                  queue.splice(0, i);
-                  return;
-                }
-                callback = continuation;
-              } else break;
-            } while (1);
-          }
-          queue.length = 0;
-        } catch (error) {
-          queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);
-        } finally {
-          isFlushing = !1;
-        }
-      }
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      didWarnStateUpdateForUnmountedComponent = {},
-      ReactNoopUpdateQueue = {
-        isMounted: function () {
-          return !1;
-        },
-        enqueueForceUpdate: function (publicInstance) {
-          warnNoop(publicInstance, "forceUpdate");
-        },
-        enqueueReplaceState: function (publicInstance) {
-          warnNoop(publicInstance, "replaceState");
-        },
-        enqueueSetState: function (publicInstance) {
-          warnNoop(publicInstance, "setState");
-        }
-      },
-      assign = Object.assign,
-      emptyObject = {};
-    Object.freeze(emptyObject);
-    Component.prototype.isReactComponent = {};
-    Component.prototype.setState = function (partialState, callback) {
-      if (
-        "object" !== typeof partialState &&
-        "function" !== typeof partialState &&
-        null != partialState
-      )
-        throw Error(
-          "takes an object of state variables to update or a function which returns an object of state variables."
-        );
-      this.updater.enqueueSetState(this, partialState, callback, "setState");
-    };
-    Component.prototype.forceUpdate = function (callback) {
-      this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
-    };
-    var deprecatedAPIs = {
-      isMounted: [
-        "isMounted",
-        "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."
-      ],
-      replaceState: [
-        "replaceState",
-        "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."
-      ]
-    };
-    for (fnName in deprecatedAPIs)
-      deprecatedAPIs.hasOwnProperty(fnName) &&
-        defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
-    ComponentDummy.prototype = Component.prototype;
-    deprecatedAPIs = PureComponent.prototype = new ComponentDummy();
-    deprecatedAPIs.constructor = PureComponent;
-    assign(deprecatedAPIs, Component.prototype);
-    deprecatedAPIs.isPureReactComponent = !0;
-    var isArrayImpl = Array.isArray,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      ReactSharedInternals = {
-        H: null,
-        A: null,
-        T: null,
-        S: null,
-        actQueue: null,
-        asyncTransitions: 0,
-        isBatchingLegacy: !1,
-        didScheduleLegacyUpdate: !1,
-        didUsePromise: !1,
-        thrownErrors: [],
-        getCurrentStack: null,
-        recentlyCreatedOwnerStacks: 0
-      },
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          };
-    deprecatedAPIs = {
-      react_stack_bottom_frame: function (callStackForError) {
-        return callStackForError();
-      }
-    };
-    var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(
-      deprecatedAPIs,
-      UnknownOwner
-    )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutMaps = !1,
-      userProvidedKeyEscapeRegex = /\/+/g,
-      reportGlobalError =
-        "function" === typeof reportError
-          ? reportError
-          : function (error) {
-              if (
-                "object" === typeof window &&
-                "function" === typeof window.ErrorEvent
-              ) {
-                var event = new window.ErrorEvent("error", {
-                  bubbles: !0,
-                  cancelable: !0,
-                  message:
-                    "object" === typeof error &&
-                    null !== error &&
-                    "string" === typeof error.message
-                      ? String(error.message)
-                      : String(error),
-                  error: error
-                });
-                if (!window.dispatchEvent(event)) return;
-              } else if (
-                "object" === typeof process &&
-                "function" === typeof process.emit
-              ) {
-                process.emit("uncaughtException", error);
-                return;
-              }
-              console.error(error);
-            },
-      didWarnAboutMessageChannel = !1,
-      enqueueTaskImpl = null,
-      actScopeDepth = 0,
-      didWarnNoAwaitAct = !1,
-      isFlushing = !1,
-      queueSeveralMicrotasks =
-        "function" === typeof queueMicrotask
-          ? function (callback) {
-              queueMicrotask(function () {
-                return queueMicrotask(callback);
-              });
-            }
-          : enqueueTask;
-    deprecatedAPIs = Object.freeze({
-      __proto__: null,
-      c: function (size) {
-        return resolveDispatcher().useMemoCache(size);
-      }
-    });
-    var fnName = {
-      map: mapChildren,
-      forEach: function (children, forEachFunc, forEachContext) {
-        mapChildren(
-          children,
-          function () {
-            forEachFunc.apply(this, arguments);
-          },
-          forEachContext
-        );
-      },
-      count: function (children) {
-        var n = 0;
-        mapChildren(children, function () {
-          n++;
-        });
-        return n;
-      },
-      toArray: function (children) {
-        return (
-          mapChildren(children, function (child) {
-            return child;
-          }) || []
-        );
-      },
-      only: function (children) {
-        if (!isValidElement(children))
-          throw Error(
-            "React.Children.only expected to receive a single React element child."
-          );
-        return children;
-      }
-    };
-    exports.Activity = REACT_ACTIVITY_TYPE;
-    exports.Children = fnName;
-    exports.Component = Component;
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.Profiler = REACT_PROFILER_TYPE;
-    exports.PureComponent = PureComponent;
-    exports.StrictMode = REACT_STRICT_MODE_TYPE;
-    exports.Suspense = REACT_SUSPENSE_TYPE;
-    exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-      ReactSharedInternals;
-    exports.__COMPILER_RUNTIME = deprecatedAPIs;
-    exports.act = function (callback) {
-      var prevActQueue = ReactSharedInternals.actQueue,
-        prevActScopeDepth = actScopeDepth;
-      actScopeDepth++;
-      var queue = (ReactSharedInternals.actQueue =
-          null !== prevActQueue ? prevActQueue : []),
-        didAwaitActCall = !1;
-      try {
-        var result = callback();
-      } catch (error) {
-        ReactSharedInternals.thrownErrors.push(error);
-      }
-      if (0 < ReactSharedInternals.thrownErrors.length)
-        throw (
-          (popActScope(prevActQueue, prevActScopeDepth),
-          (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),
-          (ReactSharedInternals.thrownErrors.length = 0),
-          callback)
-        );
-      if (
-        null !== result &&
-        "object" === typeof result &&
-        "function" === typeof result.then
-      ) {
-        var thenable = result;
-        queueSeveralMicrotasks(function () {
-          didAwaitActCall ||
-            didWarnNoAwaitAct ||
-            ((didWarnNoAwaitAct = !0),
-            console.error(
-              "You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"
-            ));
-        });
-        return {
-          then: function (resolve, reject) {
-            didAwaitActCall = !0;
-            thenable.then(
-              function (returnValue) {
-                popActScope(prevActQueue, prevActScopeDepth);
-                if (0 === prevActScopeDepth) {
-                  try {
-                    flushActQueue(queue),
-                      enqueueTask(function () {
-                        return recursivelyFlushAsyncActWork(
-                          returnValue,
-                          resolve,
-                          reject
-                        );
-                      });
-                  } catch (error$0) {
-                    ReactSharedInternals.thrownErrors.push(error$0);
-                  }
-                  if (0 < ReactSharedInternals.thrownErrors.length) {
-                    var _thrownError = aggregateErrors(
-                      ReactSharedInternals.thrownErrors
-                    );
-                    ReactSharedInternals.thrownErrors.length = 0;
-                    reject(_thrownError);
-                  }
-                } else resolve(returnValue);
-              },
-              function (error) {
-                popActScope(prevActQueue, prevActScopeDepth);
-                0 < ReactSharedInternals.thrownErrors.length
-                  ? ((error = aggregateErrors(
-                      ReactSharedInternals.thrownErrors
-                    )),
-                    (ReactSharedInternals.thrownErrors.length = 0),
-                    reject(error))
-                  : reject(error);
-              }
-            );
-          }
-        };
-      }
-      var returnValue$jscomp$0 = result;
-      popActScope(prevActQueue, prevActScopeDepth);
-      0 === prevActScopeDepth &&
-        (flushActQueue(queue),
-        0 !== queue.length &&
-          queueSeveralMicrotasks(function () {
-            didAwaitActCall ||
-              didWarnNoAwaitAct ||
-              ((didWarnNoAwaitAct = !0),
-              console.error(
-                "A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"
-              ));
-          }),
-        (ReactSharedInternals.actQueue = null));
-      if (0 < ReactSharedInternals.thrownErrors.length)
-        throw (
-          ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),
-          (ReactSharedInternals.thrownErrors.length = 0),
-          callback)
-        );
-      return {
-        then: function (resolve, reject) {
-          didAwaitActCall = !0;
-          0 === prevActScopeDepth
-            ? ((ReactSharedInternals.actQueue = queue),
-              enqueueTask(function () {
-                return recursivelyFlushAsyncActWork(
-                  returnValue$jscomp$0,
-                  resolve,
-                  reject
-                );
-              }))
-            : resolve(returnValue$jscomp$0);
-        }
-      };
-    };
-    exports.cache = function (fn) {
-      return function () {
-        return fn.apply(null, arguments);
-      };
-    };
-    exports.cacheSignal = function () {
-      return null;
-    };
-    exports.captureOwnerStack = function () {
-      var getCurrentStack = ReactSharedInternals.getCurrentStack;
-      return null === getCurrentStack ? null : getCurrentStack();
-    };
-    exports.cloneElement = function (element, config, children) {
-      if (null === element || void 0 === element)
-        throw Error(
-          "The argument must be a React element, but you passed " +
-            element +
-            "."
-        );
-      var props = assign({}, element.props),
-        key = element.key,
-        owner = element._owner;
-      if (null != config) {
-        var JSCompiler_inline_result;
-        a: {
-          if (
-            hasOwnProperty.call(config, "ref") &&
-            (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(
-              config,
-              "ref"
-            ).get) &&
-            JSCompiler_inline_result.isReactWarning
-          ) {
-            JSCompiler_inline_result = !1;
-            break a;
-          }
-          JSCompiler_inline_result = void 0 !== config.ref;
-        }
-        JSCompiler_inline_result && (owner = getOwner());
-        hasValidKey(config) &&
-          (checkKeyStringCoercion(config.key), (key = "" + config.key));
-        for (propName in config)
-          !hasOwnProperty.call(config, propName) ||
-            "key" === propName ||
-            "__self" === propName ||
-            "__source" === propName ||
-            ("ref" === propName && void 0 === config.ref) ||
-            (props[propName] = config[propName]);
-      }
-      var propName = arguments.length - 2;
-      if (1 === propName) props.children = children;
-      else if (1 < propName) {
-        JSCompiler_inline_result = Array(propName);
-        for (var i = 0; i < propName; i++)
-          JSCompiler_inline_result[i] = arguments[i + 2];
-        props.children = JSCompiler_inline_result;
-      }
-      props = ReactElement(
-        element.type,
-        key,
-        props,
-        owner,
-        element._debugStack,
-        element._debugTask
-      );
-      for (key = 2; key < arguments.length; key++)
-        validateChildKeys(arguments[key]);
-      return props;
-    };
-    exports.createContext = function (defaultValue) {
-      defaultValue = {
-        $$typeof: REACT_CONTEXT_TYPE,
-        _currentValue: defaultValue,
-        _currentValue2: defaultValue,
-        _threadCount: 0,
-        Provider: null,
-        Consumer: null
-      };
-      defaultValue.Provider = defaultValue;
-      defaultValue.Consumer = {
-        $$typeof: REACT_CONSUMER_TYPE,
-        _context: defaultValue
-      };
-      defaultValue._currentRenderer = null;
-      defaultValue._currentRenderer2 = null;
-      return defaultValue;
-    };
-    exports.createElement = function (type, config, children) {
-      for (var i = 2; i < arguments.length; i++)
-        validateChildKeys(arguments[i]);
-      i = {};
-      var key = null;
-      if (null != config)
-        for (propName in (didWarnAboutOldJSXRuntime ||
-          !("__self" in config) ||
-          "key" in config ||
-          ((didWarnAboutOldJSXRuntime = !0),
-          console.warn(
-            "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform"
-          )),
-        hasValidKey(config) &&
-          (checkKeyStringCoercion(config.key), (key = "" + config.key)),
-        config))
-          hasOwnProperty.call(config, propName) &&
-            "key" !== propName &&
-            "__self" !== propName &&
-            "__source" !== propName &&
-            (i[propName] = config[propName]);
-      var childrenLength = arguments.length - 2;
-      if (1 === childrenLength) i.children = children;
-      else if (1 < childrenLength) {
-        for (
-          var childArray = Array(childrenLength), _i = 0;
-          _i < childrenLength;
-          _i++
-        )
-          childArray[_i] = arguments[_i + 2];
-        Object.freeze && Object.freeze(childArray);
-        i.children = childArray;
-      }
-      if (type && type.defaultProps)
-        for (propName in ((childrenLength = type.defaultProps), childrenLength))
-          void 0 === i[propName] && (i[propName] = childrenLength[propName]);
-      key &&
-        defineKeyPropWarningGetter(
-          i,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
-      return ReactElement(
-        type,
-        key,
-        i,
-        getOwner(),
-        propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
-        propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.createRef = function () {
-      var refObject = { current: null };
-      Object.seal(refObject);
-      return refObject;
-    };
-    exports.forwardRef = function (render) {
-      null != render && render.$$typeof === REACT_MEMO_TYPE
-        ? console.error(
-            "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."
-          )
-        : "function" !== typeof render
-          ? console.error(
-              "forwardRef requires a render function but was given %s.",
-              null === render ? "null" : typeof render
-            )
-          : 0 !== render.length &&
-            2 !== render.length &&
-            console.error(
-              "forwardRef render functions accept exactly two parameters: props and ref. %s",
-              1 === render.length
-                ? "Did you forget to use the ref parameter?"
-                : "Any additional parameter will be undefined."
-            );
-      null != render &&
-        null != render.defaultProps &&
-        console.error(
-          "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?"
-        );
-      var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },
-        ownName;
-      Object.defineProperty(elementType, "displayName", {
-        enumerable: !1,
-        configurable: !0,
-        get: function () {
-          return ownName;
-        },
-        set: function (name) {
-          ownName = name;
-          render.name ||
-            render.displayName ||
-            (Object.defineProperty(render, "name", { value: name }),
-            (render.displayName = name));
-        }
-      });
-      return elementType;
-    };
-    exports.isValidElement = isValidElement;
-    exports.lazy = function (ctor) {
-      ctor = { _status: -1, _result: ctor };
-      var lazyType = {
-          $$typeof: REACT_LAZY_TYPE,
-          _payload: ctor,
-          _init: lazyInitializer
-        },
-        ioInfo = {
-          name: "lazy",
-          start: -1,
-          end: -1,
-          value: null,
-          owner: null,
-          debugStack: Error("react-stack-top-frame"),
-          debugTask: console.createTask ? console.createTask("lazy()") : null
-        };
-      ctor._ioInfo = ioInfo;
-      lazyType._debugInfo = [{ awaited: ioInfo }];
-      return lazyType;
-    };
-    exports.memo = function (type, compare) {
-      null == type &&
-        console.error(
-          "memo: The first argument must be a component. Instead received: %s",
-          null === type ? "null" : typeof type
-        );
-      compare = {
-        $$typeof: REACT_MEMO_TYPE,
-        type: type,
-        compare: void 0 === compare ? null : compare
-      };
-      var ownName;
-      Object.defineProperty(compare, "displayName", {
-        enumerable: !1,
-        configurable: !0,
-        get: function () {
-          return ownName;
-        },
-        set: function (name) {
-          ownName = name;
-          type.name ||
-            type.displayName ||
-            (Object.defineProperty(type, "name", { value: name }),
-            (type.displayName = name));
-        }
-      });
-      return compare;
-    };
-    exports.startTransition = function (scope) {
-      var prevTransition = ReactSharedInternals.T,
-        currentTransition = {};
-      currentTransition._updatedFibers = new Set();
-      ReactSharedInternals.T = currentTransition;
-      try {
-        var returnValue = scope(),
-          onStartTransitionFinish = ReactSharedInternals.S;
-        null !== onStartTransitionFinish &&
-          onStartTransitionFinish(currentTransition, returnValue);
-        "object" === typeof returnValue &&
-          null !== returnValue &&
-          "function" === typeof returnValue.then &&
-          (ReactSharedInternals.asyncTransitions++,
-          returnValue.then(releaseAsyncTransition, releaseAsyncTransition),
-          returnValue.then(noop, reportGlobalError));
-      } catch (error) {
-        reportGlobalError(error);
-      } finally {
-        null === prevTransition &&
-          currentTransition._updatedFibers &&
-          ((scope = currentTransition._updatedFibers.size),
-          currentTransition._updatedFibers.clear(),
-          10 < scope &&
-            console.warn(
-              "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
-            )),
-          null !== prevTransition &&
-            null !== currentTransition.types &&
-            (null !== prevTransition.types &&
-              prevTransition.types !== currentTransition.types &&
-              console.error(
-                "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
-              ),
-            (prevTransition.types = currentTransition.types)),
-          (ReactSharedInternals.T = prevTransition);
-      }
-    };
-    exports.unstable_useCacheRefresh = function () {
-      return resolveDispatcher().useCacheRefresh();
-    };
-    exports.use = function (usable) {
-      return resolveDispatcher().use(usable);
-    };
-    exports.useActionState = function (action, initialState, permalink) {
-      return resolveDispatcher().useActionState(
-        action,
-        initialState,
-        permalink
-      );
-    };
-    exports.useCallback = function (callback, deps) {
-      return resolveDispatcher().useCallback(callback, deps);
-    };
-    exports.useContext = function (Context) {
-      var dispatcher = resolveDispatcher();
-      Context.$$typeof === REACT_CONSUMER_TYPE &&
-        console.error(
-          "Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?"
-        );
-      return dispatcher.useContext(Context);
-    };
-    exports.useDebugValue = function (value, formatterFn) {
-      return resolveDispatcher().useDebugValue(value, formatterFn);
-    };
-    exports.useDeferredValue = function (value, initialValue) {
-      return resolveDispatcher().useDeferredValue(value, initialValue);
-    };
-    exports.useEffect = function (create, deps) {
-      null == create &&
-        console.warn(
-          "React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?"
-        );
-      return resolveDispatcher().useEffect(create, deps);
-    };
-    exports.useEffectEvent = function (callback) {
-      return resolveDispatcher().useEffectEvent(callback);
-    };
-    exports.useId = function () {
-      return resolveDispatcher().useId();
-    };
-    exports.useImperativeHandle = function (ref, create, deps) {
-      return resolveDispatcher().useImperativeHandle(ref, create, deps);
-    };
-    exports.useInsertionEffect = function (create, deps) {
-      null == create &&
-        console.warn(
-          "React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?"
-        );
-      return resolveDispatcher().useInsertionEffect(create, deps);
-    };
-    exports.useLayoutEffect = function (create, deps) {
-      null == create &&
-        console.warn(
-          "React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?"
-        );
-      return resolveDispatcher().useLayoutEffect(create, deps);
-    };
-    exports.useMemo = function (create, deps) {
-      return resolveDispatcher().useMemo(create, deps);
-    };
-    exports.useOptimistic = function (passthrough, reducer) {
-      return resolveDispatcher().useOptimistic(passthrough, reducer);
-    };
-    exports.useReducer = function (reducer, initialArg, init) {
-      return resolveDispatcher().useReducer(reducer, initialArg, init);
-    };
-    exports.useRef = function (initialValue) {
-      return resolveDispatcher().useRef(initialValue);
-    };
-    exports.useState = function (initialState) {
-      return resolveDispatcher().useState(initialState);
-    };
-    exports.useSyncExternalStore = function (
-      subscribe,
-      getSnapshot,
-      getServerSnapshot
-    ) {
-      return resolveDispatcher().useSyncExternalStore(
-        subscribe,
-        getSnapshot,
-        getServerSnapshot
-      );
-    };
-    exports.useTransition = function () {
-      return resolveDispatcher().useTransition();
-    };
-    exports.version = "19.2.3";
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/react/cjs/react.production.js
===================================================================
--- node_modules/react/cjs/react.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,542 +1,0 @@
-/**
- * @license React
- * react.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.
- */
-
-"use strict";
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var ReactNoopUpdateQueue = {
-    isMounted: function () {
-      return !1;
-    },
-    enqueueForceUpdate: function () {},
-    enqueueReplaceState: function () {},
-    enqueueSetState: function () {}
-  },
-  assign = Object.assign,
-  emptyObject = {};
-function Component(props, context, updater) {
-  this.props = props;
-  this.context = context;
-  this.refs = emptyObject;
-  this.updater = updater || ReactNoopUpdateQueue;
-}
-Component.prototype.isReactComponent = {};
-Component.prototype.setState = function (partialState, callback) {
-  if (
-    "object" !== typeof partialState &&
-    "function" !== typeof partialState &&
-    null != partialState
-  )
-    throw Error(
-      "takes an object of state variables to update or a function which returns an object of state variables."
-    );
-  this.updater.enqueueSetState(this, partialState, callback, "setState");
-};
-Component.prototype.forceUpdate = function (callback) {
-  this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
-};
-function ComponentDummy() {}
-ComponentDummy.prototype = Component.prototype;
-function PureComponent(props, context, updater) {
-  this.props = props;
-  this.context = context;
-  this.refs = emptyObject;
-  this.updater = updater || ReactNoopUpdateQueue;
-}
-var pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());
-pureComponentPrototype.constructor = PureComponent;
-assign(pureComponentPrototype, Component.prototype);
-pureComponentPrototype.isPureReactComponent = !0;
-var isArrayImpl = Array.isArray;
-function noop() {}
-var ReactSharedInternals = { H: null, A: null, T: null, S: null },
-  hasOwnProperty = Object.prototype.hasOwnProperty;
-function ReactElement(type, key, props) {
-  var refProp = props.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== refProp ? refProp : null,
-    props: props
-  };
-}
-function cloneAndReplaceKey(oldElement, newKey) {
-  return ReactElement(oldElement.type, newKey, oldElement.props);
-}
-function isValidElement(object) {
-  return (
-    "object" === typeof object &&
-    null !== object &&
-    object.$$typeof === REACT_ELEMENT_TYPE
-  );
-}
-function escape(key) {
-  var escaperLookup = { "=": "=0", ":": "=2" };
-  return (
-    "$" +
-    key.replace(/[=:]/g, function (match) {
-      return escaperLookup[match];
-    })
-  );
-}
-var userProvidedKeyEscapeRegex = /\/+/g;
-function getElementKey(element, index) {
-  return "object" === typeof element && null !== element && null != element.key
-    ? escape("" + element.key)
-    : index.toString(36);
-}
-function resolveThenable(thenable) {
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      switch (
-        ("string" === typeof thenable.status
-          ? thenable.then(noop, noop)
-          : ((thenable.status = "pending"),
-            thenable.then(
-              function (fulfilledValue) {
-                "pending" === thenable.status &&
-                  ((thenable.status = "fulfilled"),
-                  (thenable.value = fulfilledValue));
-              },
-              function (error) {
-                "pending" === thenable.status &&
-                  ((thenable.status = "rejected"), (thenable.reason = error));
-              }
-            )),
-        thenable.status)
-      ) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-  }
-  throw thenable;
-}
-function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
-  var type = typeof children;
-  if ("undefined" === type || "boolean" === type) children = null;
-  var invokeCallback = !1;
-  if (null === children) invokeCallback = !0;
-  else
-    switch (type) {
-      case "bigint":
-      case "string":
-      case "number":
-        invokeCallback = !0;
-        break;
-      case "object":
-        switch (children.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-          case REACT_PORTAL_TYPE:
-            invokeCallback = !0;
-            break;
-          case REACT_LAZY_TYPE:
-            return (
-              (invokeCallback = children._init),
-              mapIntoArray(
-                invokeCallback(children._payload),
-                array,
-                escapedPrefix,
-                nameSoFar,
-                callback
-              )
-            );
-        }
-    }
-  if (invokeCallback)
-    return (
-      (callback = callback(children)),
-      (invokeCallback =
-        "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar),
-      isArrayImpl(callback)
-        ? ((escapedPrefix = ""),
-          null != invokeCallback &&
-            (escapedPrefix =
-              invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"),
-          mapIntoArray(callback, array, escapedPrefix, "", function (c) {
-            return c;
-          }))
-        : null != callback &&
-          (isValidElement(callback) &&
-            (callback = cloneAndReplaceKey(
-              callback,
-              escapedPrefix +
-                (null == callback.key ||
-                (children && children.key === callback.key)
-                  ? ""
-                  : ("" + callback.key).replace(
-                      userProvidedKeyEscapeRegex,
-                      "$&/"
-                    ) + "/") +
-                invokeCallback
-            )),
-          array.push(callback)),
-      1
-    );
-  invokeCallback = 0;
-  var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":";
-  if (isArrayImpl(children))
-    for (var i = 0; i < children.length; i++)
-      (nameSoFar = children[i]),
-        (type = nextNamePrefix + getElementKey(nameSoFar, i)),
-        (invokeCallback += mapIntoArray(
-          nameSoFar,
-          array,
-          escapedPrefix,
-          type,
-          callback
-        ));
-  else if (((i = getIteratorFn(children)), "function" === typeof i))
-    for (
-      children = i.call(children), i = 0;
-      !(nameSoFar = children.next()).done;
-
-    )
-      (nameSoFar = nameSoFar.value),
-        (type = nextNamePrefix + getElementKey(nameSoFar, i++)),
-        (invokeCallback += mapIntoArray(
-          nameSoFar,
-          array,
-          escapedPrefix,
-          type,
-          callback
-        ));
-  else if ("object" === type) {
-    if ("function" === typeof children.then)
-      return mapIntoArray(
-        resolveThenable(children),
-        array,
-        escapedPrefix,
-        nameSoFar,
-        callback
-      );
-    array = String(children);
-    throw Error(
-      "Objects are not valid as a React child (found: " +
-        ("[object Object]" === array
-          ? "object with keys {" + Object.keys(children).join(", ") + "}"
-          : array) +
-        "). If you meant to render a collection of children, use an array instead."
-    );
-  }
-  return invokeCallback;
-}
-function mapChildren(children, func, context) {
-  if (null == children) return children;
-  var result = [],
-    count = 0;
-  mapIntoArray(children, result, "", "", function (child) {
-    return func.call(context, child, count++);
-  });
-  return result;
-}
-function lazyInitializer(payload) {
-  if (-1 === payload._status) {
-    var ctor = payload._result;
-    ctor = ctor();
-    ctor.then(
-      function (moduleObject) {
-        if (0 === payload._status || -1 === payload._status)
-          (payload._status = 1), (payload._result = moduleObject);
-      },
-      function (error) {
-        if (0 === payload._status || -1 === payload._status)
-          (payload._status = 2), (payload._result = error);
-      }
-    );
-    -1 === payload._status && ((payload._status = 0), (payload._result = ctor));
-  }
-  if (1 === payload._status) return payload._result.default;
-  throw payload._result;
-}
-var reportGlobalError =
-    "function" === typeof reportError
-      ? reportError
-      : function (error) {
-          if (
-            "object" === typeof window &&
-            "function" === typeof window.ErrorEvent
-          ) {
-            var event = new window.ErrorEvent("error", {
-              bubbles: !0,
-              cancelable: !0,
-              message:
-                "object" === typeof error &&
-                null !== error &&
-                "string" === typeof error.message
-                  ? String(error.message)
-                  : String(error),
-              error: error
-            });
-            if (!window.dispatchEvent(event)) return;
-          } else if (
-            "object" === typeof process &&
-            "function" === typeof process.emit
-          ) {
-            process.emit("uncaughtException", error);
-            return;
-          }
-          console.error(error);
-        },
-  Children = {
-    map: mapChildren,
-    forEach: function (children, forEachFunc, forEachContext) {
-      mapChildren(
-        children,
-        function () {
-          forEachFunc.apply(this, arguments);
-        },
-        forEachContext
-      );
-    },
-    count: function (children) {
-      var n = 0;
-      mapChildren(children, function () {
-        n++;
-      });
-      return n;
-    },
-    toArray: function (children) {
-      return (
-        mapChildren(children, function (child) {
-          return child;
-        }) || []
-      );
-    },
-    only: function (children) {
-      if (!isValidElement(children))
-        throw Error(
-          "React.Children.only expected to receive a single React element child."
-        );
-      return children;
-    }
-  };
-exports.Activity = REACT_ACTIVITY_TYPE;
-exports.Children = Children;
-exports.Component = Component;
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.Profiler = REACT_PROFILER_TYPE;
-exports.PureComponent = PureComponent;
-exports.StrictMode = REACT_STRICT_MODE_TYPE;
-exports.Suspense = REACT_SUSPENSE_TYPE;
-exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-  ReactSharedInternals;
-exports.__COMPILER_RUNTIME = {
-  __proto__: null,
-  c: function (size) {
-    return ReactSharedInternals.H.useMemoCache(size);
-  }
-};
-exports.cache = function (fn) {
-  return function () {
-    return fn.apply(null, arguments);
-  };
-};
-exports.cacheSignal = function () {
-  return null;
-};
-exports.cloneElement = function (element, config, children) {
-  if (null === element || void 0 === element)
-    throw Error(
-      "The argument must be a React element, but you passed " + element + "."
-    );
-  var props = assign({}, element.props),
-    key = element.key;
-  if (null != config)
-    for (propName in (void 0 !== config.key && (key = "" + config.key), config))
-      !hasOwnProperty.call(config, propName) ||
-        "key" === propName ||
-        "__self" === propName ||
-        "__source" === propName ||
-        ("ref" === propName && void 0 === config.ref) ||
-        (props[propName] = config[propName]);
-  var propName = arguments.length - 2;
-  if (1 === propName) props.children = children;
-  else if (1 < propName) {
-    for (var childArray = Array(propName), i = 0; i < propName; i++)
-      childArray[i] = arguments[i + 2];
-    props.children = childArray;
-  }
-  return ReactElement(element.type, key, props);
-};
-exports.createContext = function (defaultValue) {
-  defaultValue = {
-    $$typeof: REACT_CONTEXT_TYPE,
-    _currentValue: defaultValue,
-    _currentValue2: defaultValue,
-    _threadCount: 0,
-    Provider: null,
-    Consumer: null
-  };
-  defaultValue.Provider = defaultValue;
-  defaultValue.Consumer = {
-    $$typeof: REACT_CONSUMER_TYPE,
-    _context: defaultValue
-  };
-  return defaultValue;
-};
-exports.createElement = function (type, config, children) {
-  var propName,
-    props = {},
-    key = null;
-  if (null != config)
-    for (propName in (void 0 !== config.key && (key = "" + config.key), config))
-      hasOwnProperty.call(config, propName) &&
-        "key" !== propName &&
-        "__self" !== propName &&
-        "__source" !== propName &&
-        (props[propName] = config[propName]);
-  var childrenLength = arguments.length - 2;
-  if (1 === childrenLength) props.children = children;
-  else if (1 < childrenLength) {
-    for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)
-      childArray[i] = arguments[i + 2];
-    props.children = childArray;
-  }
-  if (type && type.defaultProps)
-    for (propName in ((childrenLength = type.defaultProps), childrenLength))
-      void 0 === props[propName] &&
-        (props[propName] = childrenLength[propName]);
-  return ReactElement(type, key, props);
-};
-exports.createRef = function () {
-  return { current: null };
-};
-exports.forwardRef = function (render) {
-  return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };
-};
-exports.isValidElement = isValidElement;
-exports.lazy = function (ctor) {
-  return {
-    $$typeof: REACT_LAZY_TYPE,
-    _payload: { _status: -1, _result: ctor },
-    _init: lazyInitializer
-  };
-};
-exports.memo = function (type, compare) {
-  return {
-    $$typeof: REACT_MEMO_TYPE,
-    type: type,
-    compare: void 0 === compare ? null : compare
-  };
-};
-exports.startTransition = function (scope) {
-  var prevTransition = ReactSharedInternals.T,
-    currentTransition = {};
-  ReactSharedInternals.T = currentTransition;
-  try {
-    var returnValue = scope(),
-      onStartTransitionFinish = ReactSharedInternals.S;
-    null !== onStartTransitionFinish &&
-      onStartTransitionFinish(currentTransition, returnValue);
-    "object" === typeof returnValue &&
-      null !== returnValue &&
-      "function" === typeof returnValue.then &&
-      returnValue.then(noop, reportGlobalError);
-  } catch (error) {
-    reportGlobalError(error);
-  } finally {
-    null !== prevTransition &&
-      null !== currentTransition.types &&
-      (prevTransition.types = currentTransition.types),
-      (ReactSharedInternals.T = prevTransition);
-  }
-};
-exports.unstable_useCacheRefresh = function () {
-  return ReactSharedInternals.H.useCacheRefresh();
-};
-exports.use = function (usable) {
-  return ReactSharedInternals.H.use(usable);
-};
-exports.useActionState = function (action, initialState, permalink) {
-  return ReactSharedInternals.H.useActionState(action, initialState, permalink);
-};
-exports.useCallback = function (callback, deps) {
-  return ReactSharedInternals.H.useCallback(callback, deps);
-};
-exports.useContext = function (Context) {
-  return ReactSharedInternals.H.useContext(Context);
-};
-exports.useDebugValue = function () {};
-exports.useDeferredValue = function (value, initialValue) {
-  return ReactSharedInternals.H.useDeferredValue(value, initialValue);
-};
-exports.useEffect = function (create, deps) {
-  return ReactSharedInternals.H.useEffect(create, deps);
-};
-exports.useEffectEvent = function (callback) {
-  return ReactSharedInternals.H.useEffectEvent(callback);
-};
-exports.useId = function () {
-  return ReactSharedInternals.H.useId();
-};
-exports.useImperativeHandle = function (ref, create, deps) {
-  return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);
-};
-exports.useInsertionEffect = function (create, deps) {
-  return ReactSharedInternals.H.useInsertionEffect(create, deps);
-};
-exports.useLayoutEffect = function (create, deps) {
-  return ReactSharedInternals.H.useLayoutEffect(create, deps);
-};
-exports.useMemo = function (create, deps) {
-  return ReactSharedInternals.H.useMemo(create, deps);
-};
-exports.useOptimistic = function (passthrough, reducer) {
-  return ReactSharedInternals.H.useOptimistic(passthrough, reducer);
-};
-exports.useReducer = function (reducer, initialArg, init) {
-  return ReactSharedInternals.H.useReducer(reducer, initialArg, init);
-};
-exports.useRef = function (initialValue) {
-  return ReactSharedInternals.H.useRef(initialValue);
-};
-exports.useState = function (initialState) {
-  return ReactSharedInternals.H.useState(initialState);
-};
-exports.useSyncExternalStore = function (
-  subscribe,
-  getSnapshot,
-  getServerSnapshot
-) {
-  return ReactSharedInternals.H.useSyncExternalStore(
-    subscribe,
-    getSnapshot,
-    getServerSnapshot
-  );
-};
-exports.useTransition = function () {
-  return ReactSharedInternals.H.useTransition();
-};
-exports.version = "19.2.3";
Index: de_modules/react/cjs/react.react-server.development.js
===================================================================
--- node_modules/react/cjs/react.react-server.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,848 +1,0 @@
-/**
- * @license React
- * react.react-server.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function noop() {}
-    function getIteratorFn(maybeIterable) {
-      if (null === maybeIterable || "object" !== typeof maybeIterable)
-        return null;
-      maybeIterable =
-        (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-        maybeIterable["@@iterator"];
-      return "function" === typeof maybeIterable ? maybeIterable : null;
-    }
-    function testStringCoercion(value) {
-      return "" + value;
-    }
-    function checkKeyStringCoercion(value) {
-      try {
-        testStringCoercion(value);
-        var JSCompiler_inline_result = !1;
-      } catch (e) {
-        JSCompiler_inline_result = !0;
-      }
-      if (JSCompiler_inline_result) {
-        JSCompiler_inline_result = console;
-        var JSCompiler_temp_const = JSCompiler_inline_result.error;
-        var JSCompiler_inline_result$jscomp$0 =
-          ("function" === typeof Symbol &&
-            Symbol.toStringTag &&
-            value[Symbol.toStringTag]) ||
-          value.constructor.name ||
-          "Object";
-        JSCompiler_temp_const.call(
-          JSCompiler_inline_result,
-          "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
-          JSCompiler_inline_result$jscomp$0
-        );
-        return testStringCoercion(value);
-      }
-    }
-    function getComponentNameFromType(type) {
-      if (null == type) return null;
-      if ("function" === typeof type)
-        return type.$$typeof === REACT_CLIENT_REFERENCE
-          ? null
-          : type.displayName || type.name || null;
-      if ("string" === typeof type) return type;
-      switch (type) {
-        case REACT_FRAGMENT_TYPE:
-          return "Fragment";
-        case REACT_PROFILER_TYPE:
-          return "Profiler";
-        case REACT_STRICT_MODE_TYPE:
-          return "StrictMode";
-        case REACT_SUSPENSE_TYPE:
-          return "Suspense";
-        case REACT_SUSPENSE_LIST_TYPE:
-          return "SuspenseList";
-        case REACT_ACTIVITY_TYPE:
-          return "Activity";
-      }
-      if ("object" === typeof type)
-        switch (
-          ("number" === typeof type.tag &&
-            console.error(
-              "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
-            ),
-          type.$$typeof)
-        ) {
-          case REACT_PORTAL_TYPE:
-            return "Portal";
-          case REACT_CONTEXT_TYPE:
-            return type.displayName || "Context";
-          case REACT_CONSUMER_TYPE:
-            return (type._context.displayName || "Context") + ".Consumer";
-          case REACT_FORWARD_REF_TYPE:
-            var innerType = type.render;
-            type = type.displayName;
-            type ||
-              ((type = innerType.displayName || innerType.name || ""),
-              (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
-            return type;
-          case REACT_MEMO_TYPE:
-            return (
-              (innerType = type.displayName || null),
-              null !== innerType
-                ? innerType
-                : getComponentNameFromType(type.type) || "Memo"
-            );
-          case REACT_LAZY_TYPE:
-            innerType = type._payload;
-            type = type._init;
-            try {
-              return getComponentNameFromType(type(innerType));
-            } catch (x) {}
-        }
-      return null;
-    }
-    function getTaskName(type) {
-      if (type === REACT_FRAGMENT_TYPE) return "<>";
-      if (
-        "object" === typeof type &&
-        null !== type &&
-        type.$$typeof === REACT_LAZY_TYPE
-      )
-        return "<...>";
-      try {
-        var name = getComponentNameFromType(type);
-        return name ? "<" + name + ">" : "<...>";
-      } catch (x) {
-        return "<...>";
-      }
-    }
-    function getOwner() {
-      var dispatcher = ReactSharedInternals.A;
-      return null === dispatcher ? null : dispatcher.getOwner();
-    }
-    function UnknownOwner() {
-      return Error("react-stack-top-frame");
-    }
-    function hasValidKey(config) {
-      if (hasOwnProperty.call(config, "key")) {
-        var getter = Object.getOwnPropertyDescriptor(config, "key").get;
-        if (getter && getter.isReactWarning) return !1;
-      }
-      return void 0 !== config.key;
-    }
-    function defineKeyPropWarningGetter(props, displayName) {
-      function warnAboutAccessingKey() {
-        specialPropKeyWarningShown ||
-          ((specialPropKeyWarningShown = !0),
-          console.error(
-            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
-            displayName
-          ));
-      }
-      warnAboutAccessingKey.isReactWarning = !0;
-      Object.defineProperty(props, "key", {
-        get: warnAboutAccessingKey,
-        configurable: !0
-      });
-    }
-    function elementRefGetterWithDeprecationWarning() {
-      var componentName = getComponentNameFromType(this.type);
-      didWarnAboutElementRef[componentName] ||
-        ((didWarnAboutElementRef[componentName] = !0),
-        console.error(
-          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
-        ));
-      componentName = this.props.ref;
-      return void 0 !== componentName ? componentName : null;
-    }
-    function ReactElement(type, key, props, owner, debugStack, debugTask) {
-      var refProp = props.ref;
-      type = {
-        $$typeof: REACT_ELEMENT_TYPE,
-        type: type,
-        key: key,
-        props: props,
-        _owner: owner
-      };
-      null !== (void 0 !== refProp ? refProp : null)
-        ? Object.defineProperty(type, "ref", {
-            enumerable: !1,
-            get: elementRefGetterWithDeprecationWarning
-          })
-        : Object.defineProperty(type, "ref", { enumerable: !1, value: null });
-      type._store = {};
-      Object.defineProperty(type._store, "validated", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: 0
-      });
-      Object.defineProperty(type, "_debugInfo", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: null
-      });
-      Object.defineProperty(type, "_debugStack", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugStack
-      });
-      Object.defineProperty(type, "_debugTask", {
-        configurable: !1,
-        enumerable: !1,
-        writable: !0,
-        value: debugTask
-      });
-      Object.freeze && (Object.freeze(type.props), Object.freeze(type));
-      return type;
-    }
-    function cloneAndReplaceKey(oldElement, newKey) {
-      newKey = ReactElement(
-        oldElement.type,
-        newKey,
-        oldElement.props,
-        oldElement._owner,
-        oldElement._debugStack,
-        oldElement._debugTask
-      );
-      oldElement._store &&
-        (newKey._store.validated = oldElement._store.validated);
-      return newKey;
-    }
-    function validateChildKeys(node) {
-      isValidElement(node)
-        ? node._store && (node._store.validated = 1)
-        : "object" === typeof node &&
-          null !== node &&
-          node.$$typeof === REACT_LAZY_TYPE &&
-          ("fulfilled" === node._payload.status
-            ? isValidElement(node._payload.value) &&
-              node._payload.value._store &&
-              (node._payload.value._store.validated = 1)
-            : node._store && (node._store.validated = 1));
-    }
-    function isValidElement(object) {
-      return (
-        "object" === typeof object &&
-        null !== object &&
-        object.$$typeof === REACT_ELEMENT_TYPE
-      );
-    }
-    function escape(key) {
-      var escaperLookup = { "=": "=0", ":": "=2" };
-      return (
-        "$" +
-        key.replace(/[=:]/g, function (match) {
-          return escaperLookup[match];
-        })
-      );
-    }
-    function getElementKey(element, index) {
-      return "object" === typeof element &&
-        null !== element &&
-        null != element.key
-        ? (checkKeyStringCoercion(element.key), escape("" + element.key))
-        : index.toString(36);
-    }
-    function resolveThenable(thenable) {
-      switch (thenable.status) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-        default:
-          switch (
-            ("string" === typeof thenable.status
-              ? thenable.then(noop, noop)
-              : ((thenable.status = "pending"),
-                thenable.then(
-                  function (fulfilledValue) {
-                    "pending" === thenable.status &&
-                      ((thenable.status = "fulfilled"),
-                      (thenable.value = fulfilledValue));
-                  },
-                  function (error) {
-                    "pending" === thenable.status &&
-                      ((thenable.status = "rejected"),
-                      (thenable.reason = error));
-                  }
-                )),
-            thenable.status)
-          ) {
-            case "fulfilled":
-              return thenable.value;
-            case "rejected":
-              throw thenable.reason;
-          }
-      }
-      throw thenable;
-    }
-    function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
-      var type = typeof children;
-      if ("undefined" === type || "boolean" === type) children = null;
-      var invokeCallback = !1;
-      if (null === children) invokeCallback = !0;
-      else
-        switch (type) {
-          case "bigint":
-          case "string":
-          case "number":
-            invokeCallback = !0;
-            break;
-          case "object":
-            switch (children.$$typeof) {
-              case REACT_ELEMENT_TYPE:
-              case REACT_PORTAL_TYPE:
-                invokeCallback = !0;
-                break;
-              case REACT_LAZY_TYPE:
-                return (
-                  (invokeCallback = children._init),
-                  mapIntoArray(
-                    invokeCallback(children._payload),
-                    array,
-                    escapedPrefix,
-                    nameSoFar,
-                    callback
-                  )
-                );
-            }
-        }
-      if (invokeCallback) {
-        invokeCallback = children;
-        callback = callback(invokeCallback);
-        var childKey =
-          "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar;
-        isArrayImpl(callback)
-          ? ((escapedPrefix = ""),
-            null != childKey &&
-              (escapedPrefix =
-                childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"),
-            mapIntoArray(callback, array, escapedPrefix, "", function (c) {
-              return c;
-            }))
-          : null != callback &&
-            (isValidElement(callback) &&
-              (null != callback.key &&
-                ((invokeCallback && invokeCallback.key === callback.key) ||
-                  checkKeyStringCoercion(callback.key)),
-              (escapedPrefix = cloneAndReplaceKey(
-                callback,
-                escapedPrefix +
-                  (null == callback.key ||
-                  (invokeCallback && invokeCallback.key === callback.key)
-                    ? ""
-                    : ("" + callback.key).replace(
-                        userProvidedKeyEscapeRegex,
-                        "$&/"
-                      ) + "/") +
-                  childKey
-              )),
-              "" !== nameSoFar &&
-                null != invokeCallback &&
-                isValidElement(invokeCallback) &&
-                null == invokeCallback.key &&
-                invokeCallback._store &&
-                !invokeCallback._store.validated &&
-                (escapedPrefix._store.validated = 2),
-              (callback = escapedPrefix)),
-            array.push(callback));
-        return 1;
-      }
-      invokeCallback = 0;
-      childKey = "" === nameSoFar ? "." : nameSoFar + ":";
-      if (isArrayImpl(children))
-        for (var i = 0; i < children.length; i++)
-          (nameSoFar = children[i]),
-            (type = childKey + getElementKey(nameSoFar, i)),
-            (invokeCallback += mapIntoArray(
-              nameSoFar,
-              array,
-              escapedPrefix,
-              type,
-              callback
-            ));
-      else if (((i = getIteratorFn(children)), "function" === typeof i))
-        for (
-          i === children.entries &&
-            (didWarnAboutMaps ||
-              console.warn(
-                "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
-              ),
-            (didWarnAboutMaps = !0)),
-            children = i.call(children),
-            i = 0;
-          !(nameSoFar = children.next()).done;
-
-        )
-          (nameSoFar = nameSoFar.value),
-            (type = childKey + getElementKey(nameSoFar, i++)),
-            (invokeCallback += mapIntoArray(
-              nameSoFar,
-              array,
-              escapedPrefix,
-              type,
-              callback
-            ));
-      else if ("object" === type) {
-        if ("function" === typeof children.then)
-          return mapIntoArray(
-            resolveThenable(children),
-            array,
-            escapedPrefix,
-            nameSoFar,
-            callback
-          );
-        array = String(children);
-        throw Error(
-          "Objects are not valid as a React child (found: " +
-            ("[object Object]" === array
-              ? "object with keys {" + Object.keys(children).join(", ") + "}"
-              : array) +
-            "). If you meant to render a collection of children, use an array instead."
-        );
-      }
-      return invokeCallback;
-    }
-    function mapChildren(children, func, context) {
-      if (null == children) return children;
-      var result = [],
-        count = 0;
-      mapIntoArray(children, result, "", "", function (child) {
-        return func.call(context, child, count++);
-      });
-      return result;
-    }
-    function resolveDispatcher() {
-      var dispatcher = ReactSharedInternals.H;
-      null === dispatcher &&
-        console.error(
-          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
-        );
-      return dispatcher;
-    }
-    function lazyInitializer(payload) {
-      if (-1 === payload._status) {
-        var ioInfo = payload._ioInfo;
-        null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());
-        ioInfo = payload._result;
-        var thenable = ioInfo();
-        thenable.then(
-          function (moduleObject) {
-            if (0 === payload._status || -1 === payload._status) {
-              payload._status = 1;
-              payload._result = moduleObject;
-              var _ioInfo = payload._ioInfo;
-              null != _ioInfo && (_ioInfo.end = performance.now());
-              void 0 === thenable.status &&
-                ((thenable.status = "fulfilled"),
-                (thenable.value = moduleObject));
-            }
-          },
-          function (error) {
-            if (0 === payload._status || -1 === payload._status) {
-              payload._status = 2;
-              payload._result = error;
-              var _ioInfo2 = payload._ioInfo;
-              null != _ioInfo2 && (_ioInfo2.end = performance.now());
-              void 0 === thenable.status &&
-                ((thenable.status = "rejected"), (thenable.reason = error));
-            }
-          }
-        );
-        ioInfo = payload._ioInfo;
-        if (null != ioInfo) {
-          ioInfo.value = thenable;
-          var displayName = thenable.displayName;
-          "string" === typeof displayName && (ioInfo.name = displayName);
-        }
-        -1 === payload._status &&
-          ((payload._status = 0), (payload._result = thenable));
-      }
-      if (1 === payload._status)
-        return (
-          (ioInfo = payload._result),
-          void 0 === ioInfo &&
-            console.error(
-              "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",
-              ioInfo
-            ),
-          "default" in ioInfo ||
-            console.error(
-              "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))",
-              ioInfo
-            ),
-          ioInfo.default
-        );
-      throw payload._result;
-    }
-    function createCacheRoot() {
-      return new WeakMap();
-    }
-    function createCacheNode() {
-      return { s: 0, v: void 0, o: null, p: null };
-    }
-    var ReactSharedInternals = {
-        H: null,
-        A: null,
-        getCurrentStack: null,
-        recentlyCreatedOwnerStacks: 0
-      },
-      isArrayImpl = Array.isArray,
-      REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-      REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-      REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-      REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-      REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-      REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
-      REACT_CONTEXT_TYPE = Symbol.for("react.context"),
-      REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-      REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-      REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
-      REACT_MEMO_TYPE = Symbol.for("react.memo"),
-      REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-      REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
-      MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
-      REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
-      hasOwnProperty = Object.prototype.hasOwnProperty,
-      assign = Object.assign,
-      createTask = console.createTask
-        ? console.createTask
-        : function () {
-            return null;
-          },
-      createFakeCallStack = {
-        react_stack_bottom_frame: function (callStackForError) {
-          return callStackForError();
-        }
-      },
-      specialPropKeyWarningShown,
-      didWarnAboutOldJSXRuntime;
-    var didWarnAboutElementRef = {};
-    var unknownOwnerDebugStack =
-      createFakeCallStack.react_stack_bottom_frame.bind(
-        createFakeCallStack,
-        UnknownOwner
-      )();
-    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
-    var didWarnAboutMaps = !1,
-      userProvidedKeyEscapeRegex = /\/+/g;
-    exports.Children = {
-      map: mapChildren,
-      forEach: function (children, forEachFunc, forEachContext) {
-        mapChildren(
-          children,
-          function () {
-            forEachFunc.apply(this, arguments);
-          },
-          forEachContext
-        );
-      },
-      count: function (children) {
-        var n = 0;
-        mapChildren(children, function () {
-          n++;
-        });
-        return n;
-      },
-      toArray: function (children) {
-        return (
-          mapChildren(children, function (child) {
-            return child;
-          }) || []
-        );
-      },
-      only: function (children) {
-        if (!isValidElement(children))
-          throw Error(
-            "React.Children.only expected to receive a single React element child."
-          );
-        return children;
-      }
-    };
-    exports.Fragment = REACT_FRAGMENT_TYPE;
-    exports.Profiler = REACT_PROFILER_TYPE;
-    exports.StrictMode = REACT_STRICT_MODE_TYPE;
-    exports.Suspense = REACT_SUSPENSE_TYPE;
-    exports.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-      ReactSharedInternals;
-    exports.cache = function (fn) {
-      return function () {
-        var dispatcher = ReactSharedInternals.A;
-        if (!dispatcher) return fn.apply(null, arguments);
-        var fnMap = dispatcher.getCacheForType(createCacheRoot);
-        dispatcher = fnMap.get(fn);
-        void 0 === dispatcher &&
-          ((dispatcher = createCacheNode()), fnMap.set(fn, dispatcher));
-        fnMap = 0;
-        for (var l = arguments.length; fnMap < l; fnMap++) {
-          var arg = arguments[fnMap];
-          if (
-            "function" === typeof arg ||
-            ("object" === typeof arg && null !== arg)
-          ) {
-            var objectCache = dispatcher.o;
-            null === objectCache &&
-              (dispatcher.o = objectCache = new WeakMap());
-            dispatcher = objectCache.get(arg);
-            void 0 === dispatcher &&
-              ((dispatcher = createCacheNode()),
-              objectCache.set(arg, dispatcher));
-          } else
-            (objectCache = dispatcher.p),
-              null === objectCache && (dispatcher.p = objectCache = new Map()),
-              (dispatcher = objectCache.get(arg)),
-              void 0 === dispatcher &&
-                ((dispatcher = createCacheNode()),
-                objectCache.set(arg, dispatcher));
-        }
-        if (1 === dispatcher.s) return dispatcher.v;
-        if (2 === dispatcher.s) throw dispatcher.v;
-        try {
-          var result = fn.apply(null, arguments);
-          fnMap = dispatcher;
-          fnMap.s = 1;
-          return (fnMap.v = result);
-        } catch (error) {
-          throw (
-            ((result = dispatcher), (result.s = 2), (result.v = error), error)
-          );
-        }
-      };
-    };
-    exports.cacheSignal = function () {
-      var dispatcher = ReactSharedInternals.A;
-      return dispatcher ? dispatcher.cacheSignal() : null;
-    };
-    exports.captureOwnerStack = function () {
-      var getCurrentStack = ReactSharedInternals.getCurrentStack;
-      return null === getCurrentStack ? null : getCurrentStack();
-    };
-    exports.cloneElement = function (element, config, children) {
-      if (null === element || void 0 === element)
-        throw Error(
-          "The argument must be a React element, but you passed " +
-            element +
-            "."
-        );
-      var props = assign({}, element.props),
-        key = element.key,
-        owner = element._owner;
-      if (null != config) {
-        var JSCompiler_inline_result;
-        a: {
-          if (
-            hasOwnProperty.call(config, "ref") &&
-            (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(
-              config,
-              "ref"
-            ).get) &&
-            JSCompiler_inline_result.isReactWarning
-          ) {
-            JSCompiler_inline_result = !1;
-            break a;
-          }
-          JSCompiler_inline_result = void 0 !== config.ref;
-        }
-        JSCompiler_inline_result && (owner = getOwner());
-        hasValidKey(config) &&
-          (checkKeyStringCoercion(config.key), (key = "" + config.key));
-        for (propName in config)
-          !hasOwnProperty.call(config, propName) ||
-            "key" === propName ||
-            "__self" === propName ||
-            "__source" === propName ||
-            ("ref" === propName && void 0 === config.ref) ||
-            (props[propName] = config[propName]);
-      }
-      var propName = arguments.length - 2;
-      if (1 === propName) props.children = children;
-      else if (1 < propName) {
-        JSCompiler_inline_result = Array(propName);
-        for (var i = 0; i < propName; i++)
-          JSCompiler_inline_result[i] = arguments[i + 2];
-        props.children = JSCompiler_inline_result;
-      }
-      props = ReactElement(
-        element.type,
-        key,
-        props,
-        owner,
-        element._debugStack,
-        element._debugTask
-      );
-      for (key = 2; key < arguments.length; key++)
-        validateChildKeys(arguments[key]);
-      return props;
-    };
-    exports.createElement = function (type, config, children) {
-      for (var i = 2; i < arguments.length; i++)
-        validateChildKeys(arguments[i]);
-      i = {};
-      var key = null;
-      if (null != config)
-        for (propName in (didWarnAboutOldJSXRuntime ||
-          !("__self" in config) ||
-          "key" in config ||
-          ((didWarnAboutOldJSXRuntime = !0),
-          console.warn(
-            "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform"
-          )),
-        hasValidKey(config) &&
-          (checkKeyStringCoercion(config.key), (key = "" + config.key)),
-        config))
-          hasOwnProperty.call(config, propName) &&
-            "key" !== propName &&
-            "__self" !== propName &&
-            "__source" !== propName &&
-            (i[propName] = config[propName]);
-      var childrenLength = arguments.length - 2;
-      if (1 === childrenLength) i.children = children;
-      else if (1 < childrenLength) {
-        for (
-          var childArray = Array(childrenLength), _i = 0;
-          _i < childrenLength;
-          _i++
-        )
-          childArray[_i] = arguments[_i + 2];
-        Object.freeze && Object.freeze(childArray);
-        i.children = childArray;
-      }
-      if (type && type.defaultProps)
-        for (propName in ((childrenLength = type.defaultProps), childrenLength))
-          void 0 === i[propName] && (i[propName] = childrenLength[propName]);
-      key &&
-        defineKeyPropWarningGetter(
-          i,
-          "function" === typeof type
-            ? type.displayName || type.name || "Unknown"
-            : type
-        );
-      var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
-      return ReactElement(
-        type,
-        key,
-        i,
-        getOwner(),
-        propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
-        propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask
-      );
-    };
-    exports.createRef = function () {
-      var refObject = { current: null };
-      Object.seal(refObject);
-      return refObject;
-    };
-    exports.forwardRef = function (render) {
-      null != render && render.$$typeof === REACT_MEMO_TYPE
-        ? console.error(
-            "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."
-          )
-        : "function" !== typeof render
-          ? console.error(
-              "forwardRef requires a render function but was given %s.",
-              null === render ? "null" : typeof render
-            )
-          : 0 !== render.length &&
-            2 !== render.length &&
-            console.error(
-              "forwardRef render functions accept exactly two parameters: props and ref. %s",
-              1 === render.length
-                ? "Did you forget to use the ref parameter?"
-                : "Any additional parameter will be undefined."
-            );
-      null != render &&
-        null != render.defaultProps &&
-        console.error(
-          "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?"
-        );
-      var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },
-        ownName;
-      Object.defineProperty(elementType, "displayName", {
-        enumerable: !1,
-        configurable: !0,
-        get: function () {
-          return ownName;
-        },
-        set: function (name) {
-          ownName = name;
-          render.name ||
-            render.displayName ||
-            (Object.defineProperty(render, "name", { value: name }),
-            (render.displayName = name));
-        }
-      });
-      return elementType;
-    };
-    exports.isValidElement = isValidElement;
-    exports.lazy = function (ctor) {
-      ctor = { _status: -1, _result: ctor };
-      var lazyType = {
-          $$typeof: REACT_LAZY_TYPE,
-          _payload: ctor,
-          _init: lazyInitializer
-        },
-        ioInfo = {
-          name: "lazy",
-          start: -1,
-          end: -1,
-          value: null,
-          owner: null,
-          debugStack: Error("react-stack-top-frame"),
-          debugTask: console.createTask ? console.createTask("lazy()") : null
-        };
-      ctor._ioInfo = ioInfo;
-      lazyType._debugInfo = [{ awaited: ioInfo }];
-      return lazyType;
-    };
-    exports.memo = function (type, compare) {
-      null == type &&
-        console.error(
-          "memo: The first argument must be a component. Instead received: %s",
-          null === type ? "null" : typeof type
-        );
-      compare = {
-        $$typeof: REACT_MEMO_TYPE,
-        type: type,
-        compare: void 0 === compare ? null : compare
-      };
-      var ownName;
-      Object.defineProperty(compare, "displayName", {
-        enumerable: !1,
-        configurable: !0,
-        get: function () {
-          return ownName;
-        },
-        set: function (name) {
-          ownName = name;
-          type.name ||
-            type.displayName ||
-            (Object.defineProperty(type, "name", { value: name }),
-            (type.displayName = name));
-        }
-      });
-      return compare;
-    };
-    exports.use = function (usable) {
-      return resolveDispatcher().use(usable);
-    };
-    exports.useCallback = function (callback, deps) {
-      return resolveDispatcher().useCallback(callback, deps);
-    };
-    exports.useDebugValue = function (value, formatterFn) {
-      return resolveDispatcher().useDebugValue(value, formatterFn);
-    };
-    exports.useId = function () {
-      return resolveDispatcher().useId();
-    };
-    exports.useMemo = function (create, deps) {
-      return resolveDispatcher().useMemo(create, deps);
-    };
-    exports.version = "19.2.3";
-  })();
Index: de_modules/react/cjs/react.react-server.production.js
===================================================================
--- node_modules/react/cjs/react.react-server.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,423 +1,0 @@
-/**
- * @license React
- * react.react-server.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.
- */
-
-"use strict";
-var ReactSharedInternals = { H: null, A: null };
-function formatProdErrorMessage(code) {
-  var url = "https://react.dev/errors/" + code;
-  if (1 < arguments.length) {
-    url += "?args[]=" + encodeURIComponent(arguments[1]);
-    for (var i = 2; i < arguments.length; i++)
-      url += "&args[]=" + encodeURIComponent(arguments[i]);
-  }
-  return (
-    "Minified React error #" +
-    code +
-    "; visit " +
-    url +
-    " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
-  );
-}
-var isArrayImpl = Array.isArray;
-function noop() {}
-var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
-  REACT_PORTAL_TYPE = Symbol.for("react.portal"),
-  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
-  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
-  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
-  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
-  REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
-  REACT_MEMO_TYPE = Symbol.for("react.memo"),
-  REACT_LAZY_TYPE = Symbol.for("react.lazy"),
-  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
-function getIteratorFn(maybeIterable) {
-  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
-  maybeIterable =
-    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
-    maybeIterable["@@iterator"];
-  return "function" === typeof maybeIterable ? maybeIterable : null;
-}
-var hasOwnProperty = Object.prototype.hasOwnProperty,
-  assign = Object.assign;
-function ReactElement(type, key, props) {
-  var refProp = props.ref;
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key,
-    ref: void 0 !== refProp ? refProp : null,
-    props: props
-  };
-}
-function cloneAndReplaceKey(oldElement, newKey) {
-  return ReactElement(oldElement.type, newKey, oldElement.props);
-}
-function isValidElement(object) {
-  return (
-    "object" === typeof object &&
-    null !== object &&
-    object.$$typeof === REACT_ELEMENT_TYPE
-  );
-}
-function escape(key) {
-  var escaperLookup = { "=": "=0", ":": "=2" };
-  return (
-    "$" +
-    key.replace(/[=:]/g, function (match) {
-      return escaperLookup[match];
-    })
-  );
-}
-var userProvidedKeyEscapeRegex = /\/+/g;
-function getElementKey(element, index) {
-  return "object" === typeof element && null !== element && null != element.key
-    ? escape("" + element.key)
-    : index.toString(36);
-}
-function resolveThenable(thenable) {
-  switch (thenable.status) {
-    case "fulfilled":
-      return thenable.value;
-    case "rejected":
-      throw thenable.reason;
-    default:
-      switch (
-        ("string" === typeof thenable.status
-          ? thenable.then(noop, noop)
-          : ((thenable.status = "pending"),
-            thenable.then(
-              function (fulfilledValue) {
-                "pending" === thenable.status &&
-                  ((thenable.status = "fulfilled"),
-                  (thenable.value = fulfilledValue));
-              },
-              function (error) {
-                "pending" === thenable.status &&
-                  ((thenable.status = "rejected"), (thenable.reason = error));
-              }
-            )),
-        thenable.status)
-      ) {
-        case "fulfilled":
-          return thenable.value;
-        case "rejected":
-          throw thenable.reason;
-      }
-  }
-  throw thenable;
-}
-function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
-  var type = typeof children;
-  if ("undefined" === type || "boolean" === type) children = null;
-  var invokeCallback = !1;
-  if (null === children) invokeCallback = !0;
-  else
-    switch (type) {
-      case "bigint":
-      case "string":
-      case "number":
-        invokeCallback = !0;
-        break;
-      case "object":
-        switch (children.$$typeof) {
-          case REACT_ELEMENT_TYPE:
-          case REACT_PORTAL_TYPE:
-            invokeCallback = !0;
-            break;
-          case REACT_LAZY_TYPE:
-            return (
-              (invokeCallback = children._init),
-              mapIntoArray(
-                invokeCallback(children._payload),
-                array,
-                escapedPrefix,
-                nameSoFar,
-                callback
-              )
-            );
-        }
-    }
-  if (invokeCallback)
-    return (
-      (callback = callback(children)),
-      (invokeCallback =
-        "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar),
-      isArrayImpl(callback)
-        ? ((escapedPrefix = ""),
-          null != invokeCallback &&
-            (escapedPrefix =
-              invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"),
-          mapIntoArray(callback, array, escapedPrefix, "", function (c) {
-            return c;
-          }))
-        : null != callback &&
-          (isValidElement(callback) &&
-            (callback = cloneAndReplaceKey(
-              callback,
-              escapedPrefix +
-                (null == callback.key ||
-                (children && children.key === callback.key)
-                  ? ""
-                  : ("" + callback.key).replace(
-                      userProvidedKeyEscapeRegex,
-                      "$&/"
-                    ) + "/") +
-                invokeCallback
-            )),
-          array.push(callback)),
-      1
-    );
-  invokeCallback = 0;
-  var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":";
-  if (isArrayImpl(children))
-    for (var i = 0; i < children.length; i++)
-      (nameSoFar = children[i]),
-        (type = nextNamePrefix + getElementKey(nameSoFar, i)),
-        (invokeCallback += mapIntoArray(
-          nameSoFar,
-          array,
-          escapedPrefix,
-          type,
-          callback
-        ));
-  else if (((i = getIteratorFn(children)), "function" === typeof i))
-    for (
-      children = i.call(children), i = 0;
-      !(nameSoFar = children.next()).done;
-
-    )
-      (nameSoFar = nameSoFar.value),
-        (type = nextNamePrefix + getElementKey(nameSoFar, i++)),
-        (invokeCallback += mapIntoArray(
-          nameSoFar,
-          array,
-          escapedPrefix,
-          type,
-          callback
-        ));
-  else if ("object" === type) {
-    if ("function" === typeof children.then)
-      return mapIntoArray(
-        resolveThenable(children),
-        array,
-        escapedPrefix,
-        nameSoFar,
-        callback
-      );
-    array = String(children);
-    throw Error(
-      formatProdErrorMessage(
-        31,
-        "[object Object]" === array
-          ? "object with keys {" + Object.keys(children).join(", ") + "}"
-          : array
-      )
-    );
-  }
-  return invokeCallback;
-}
-function mapChildren(children, func, context) {
-  if (null == children) return children;
-  var result = [],
-    count = 0;
-  mapIntoArray(children, result, "", "", function (child) {
-    return func.call(context, child, count++);
-  });
-  return result;
-}
-function lazyInitializer(payload) {
-  if (-1 === payload._status) {
-    var ctor = payload._result;
-    ctor = ctor();
-    ctor.then(
-      function (moduleObject) {
-        if (0 === payload._status || -1 === payload._status)
-          (payload._status = 1), (payload._result = moduleObject);
-      },
-      function (error) {
-        if (0 === payload._status || -1 === payload._status)
-          (payload._status = 2), (payload._result = error);
-      }
-    );
-    -1 === payload._status && ((payload._status = 0), (payload._result = ctor));
-  }
-  if (1 === payload._status) return payload._result.default;
-  throw payload._result;
-}
-function createCacheRoot() {
-  return new WeakMap();
-}
-function createCacheNode() {
-  return { s: 0, v: void 0, o: null, p: null };
-}
-exports.Children = {
-  map: mapChildren,
-  forEach: function (children, forEachFunc, forEachContext) {
-    mapChildren(
-      children,
-      function () {
-        forEachFunc.apply(this, arguments);
-      },
-      forEachContext
-    );
-  },
-  count: function (children) {
-    var n = 0;
-    mapChildren(children, function () {
-      n++;
-    });
-    return n;
-  },
-  toArray: function (children) {
-    return (
-      mapChildren(children, function (child) {
-        return child;
-      }) || []
-    );
-  },
-  only: function (children) {
-    if (!isValidElement(children)) throw Error(formatProdErrorMessage(143));
-    return children;
-  }
-};
-exports.Fragment = REACT_FRAGMENT_TYPE;
-exports.Profiler = REACT_PROFILER_TYPE;
-exports.StrictMode = REACT_STRICT_MODE_TYPE;
-exports.Suspense = REACT_SUSPENSE_TYPE;
-exports.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =
-  ReactSharedInternals;
-exports.cache = function (fn) {
-  return function () {
-    var dispatcher = ReactSharedInternals.A;
-    if (!dispatcher) return fn.apply(null, arguments);
-    var fnMap = dispatcher.getCacheForType(createCacheRoot);
-    dispatcher = fnMap.get(fn);
-    void 0 === dispatcher &&
-      ((dispatcher = createCacheNode()), fnMap.set(fn, dispatcher));
-    fnMap = 0;
-    for (var l = arguments.length; fnMap < l; fnMap++) {
-      var arg = arguments[fnMap];
-      if (
-        "function" === typeof arg ||
-        ("object" === typeof arg && null !== arg)
-      ) {
-        var objectCache = dispatcher.o;
-        null === objectCache && (dispatcher.o = objectCache = new WeakMap());
-        dispatcher = objectCache.get(arg);
-        void 0 === dispatcher &&
-          ((dispatcher = createCacheNode()), objectCache.set(arg, dispatcher));
-      } else
-        (objectCache = dispatcher.p),
-          null === objectCache && (dispatcher.p = objectCache = new Map()),
-          (dispatcher = objectCache.get(arg)),
-          void 0 === dispatcher &&
-            ((dispatcher = createCacheNode()),
-            objectCache.set(arg, dispatcher));
-    }
-    if (1 === dispatcher.s) return dispatcher.v;
-    if (2 === dispatcher.s) throw dispatcher.v;
-    try {
-      var result = fn.apply(null, arguments);
-      fnMap = dispatcher;
-      fnMap.s = 1;
-      return (fnMap.v = result);
-    } catch (error) {
-      throw ((result = dispatcher), (result.s = 2), (result.v = error), error);
-    }
-  };
-};
-exports.cacheSignal = function () {
-  var dispatcher = ReactSharedInternals.A;
-  return dispatcher ? dispatcher.cacheSignal() : null;
-};
-exports.captureOwnerStack = function () {
-  return null;
-};
-exports.cloneElement = function (element, config, children) {
-  if (null === element || void 0 === element)
-    throw Error(formatProdErrorMessage(267, element));
-  var props = assign({}, element.props),
-    key = element.key;
-  if (null != config)
-    for (propName in (void 0 !== config.key && (key = "" + config.key), config))
-      !hasOwnProperty.call(config, propName) ||
-        "key" === propName ||
-        "__self" === propName ||
-        "__source" === propName ||
-        ("ref" === propName && void 0 === config.ref) ||
-        (props[propName] = config[propName]);
-  var propName = arguments.length - 2;
-  if (1 === propName) props.children = children;
-  else if (1 < propName) {
-    for (var childArray = Array(propName), i = 0; i < propName; i++)
-      childArray[i] = arguments[i + 2];
-    props.children = childArray;
-  }
-  return ReactElement(element.type, key, props);
-};
-exports.createElement = function (type, config, children) {
-  var propName,
-    props = {},
-    key = null;
-  if (null != config)
-    for (propName in (void 0 !== config.key && (key = "" + config.key), config))
-      hasOwnProperty.call(config, propName) &&
-        "key" !== propName &&
-        "__self" !== propName &&
-        "__source" !== propName &&
-        (props[propName] = config[propName]);
-  var childrenLength = arguments.length - 2;
-  if (1 === childrenLength) props.children = children;
-  else if (1 < childrenLength) {
-    for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)
-      childArray[i] = arguments[i + 2];
-    props.children = childArray;
-  }
-  if (type && type.defaultProps)
-    for (propName in ((childrenLength = type.defaultProps), childrenLength))
-      void 0 === props[propName] &&
-        (props[propName] = childrenLength[propName]);
-  return ReactElement(type, key, props);
-};
-exports.createRef = function () {
-  return { current: null };
-};
-exports.forwardRef = function (render) {
-  return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };
-};
-exports.isValidElement = isValidElement;
-exports.lazy = function (ctor) {
-  return {
-    $$typeof: REACT_LAZY_TYPE,
-    _payload: { _status: -1, _result: ctor },
-    _init: lazyInitializer
-  };
-};
-exports.memo = function (type, compare) {
-  return {
-    $$typeof: REACT_MEMO_TYPE,
-    type: type,
-    compare: void 0 === compare ? null : compare
-  };
-};
-exports.use = function (usable) {
-  return ReactSharedInternals.H.use(usable);
-};
-exports.useCallback = function (callback, deps) {
-  return ReactSharedInternals.H.useCallback(callback, deps);
-};
-exports.useDebugValue = function () {};
-exports.useId = function () {
-  return ReactSharedInternals.H.useId();
-};
-exports.useMemo = function (create, deps) {
-  return ReactSharedInternals.H.useMemo(create, deps);
-};
-exports.version = "19.2.3";
Index: de_modules/react/compiler-runtime.js
===================================================================
--- node_modules/react/compiler-runtime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * 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.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-compiler-runtime.production.js');
-} else {
-  module.exports = require('./cjs/react-compiler-runtime.development.js');
-}
Index: de_modules/react/index.js
===================================================================
--- node_modules/react/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react.production.js');
-} else {
-  module.exports = require('./cjs/react.development.js');
-}
Index: de_modules/react/jsx-dev-runtime.js
===================================================================
--- node_modules/react/jsx-dev-runtime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-jsx-dev-runtime.production.js');
-} else {
-  module.exports = require('./cjs/react-jsx-dev-runtime.development.js');
-}
Index: de_modules/react/jsx-dev-runtime.react-server.js
===================================================================
--- node_modules/react/jsx-dev-runtime.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-jsx-dev-runtime.react-server.production.js');
-} else {
-  module.exports = require('./cjs/react-jsx-dev-runtime.react-server.development.js');
-}
Index: de_modules/react/jsx-runtime.js
===================================================================
--- node_modules/react/jsx-runtime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-jsx-runtime.production.js');
-} else {
-  module.exports = require('./cjs/react-jsx-runtime.development.js');
-}
Index: de_modules/react/jsx-runtime.react-server.js
===================================================================
--- node_modules/react/jsx-runtime.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-jsx-runtime.react-server.production.js');
-} else {
-  module.exports = require('./cjs/react-jsx-runtime.react-server.development.js');
-}
Index: de_modules/react/package.json
===================================================================
--- node_modules/react/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-{
-  "name": "react",
-  "description": "React is a JavaScript library for building user interfaces.",
-  "keywords": [
-    "react"
-  ],
-  "version": "19.2.3",
-  "homepage": "https://react.dev/",
-  "bugs": "https://github.com/facebook/react/issues",
-  "license": "MIT",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "index.js",
-    "cjs/",
-    "compiler-runtime.js",
-    "jsx-runtime.js",
-    "jsx-runtime.react-server.js",
-    "jsx-dev-runtime.js",
-    "jsx-dev-runtime.react-server.js",
-    "react.react-server.js"
-  ],
-  "main": "index.js",
-  "exports": {
-    ".": {
-      "react-server": "./react.react-server.js",
-      "default": "./index.js"
-    },
-    "./package.json": "./package.json",
-    "./jsx-runtime": {
-      "react-server": "./jsx-runtime.react-server.js",
-      "default": "./jsx-runtime.js"
-    },
-    "./jsx-dev-runtime": {
-      "react-server": "./jsx-dev-runtime.react-server.js",
-      "default": "./jsx-dev-runtime.js"
-    },
-    "./compiler-runtime": {
-      "react-server": "./compiler-runtime.js",
-      "default": "./compiler-runtime.js"
-    }
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/react"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  }
-}
Index: de_modules/react/react.react-server.js
===================================================================
--- node_modules/react/react.react-server.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react.react-server.production.js');
-} else {
-  module.exports = require('./cjs/react.react-server.development.js');
-}
Index: de_modules/recharts/AGENTS.md
===================================================================
--- node_modules/recharts/AGENTS.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-***CRITICAL*** **ALWAYS** unset `NODE_ENV` environment variable when working in this project. See https://github.com/github/copilot-cli/issues/151
-
-This is Recharts repository. Recharts is a React-based charting library.
-The goal is to provide a simple, declarative, and composable way to build charts.
-We value consistency, usability, and performance. Accessibility is important.
-
-We do not solve internationalization. Do not hardcode any strings or formatting choices in the library code,
-we expect the users of Recharts to provide localized strings as desired.
-
-Read ./DEVELOPING.md for instructions how to develop this project.
-
-Read ./CONTRIBUTING.md for guidelines on contributing to this project.
-
-When running unit tests, prefer to run a single test file:
-
-```shell
-npm run test -- path/to/TestFile.spec.tsx
-```
-
-If you run all tests at once using `npm test`, it may take a long time to complete.
-Only do that when you want to verify that everything is working correctly.
-
-This project has a long history. You may observe some inconsistencies in coding style.
-When making changes, prefer current best practices as described in CONTRIBUTING.md,
-and try to improve the code style where possible and where relevant to the current task.
-Do not attempt to fix too much at once, or when it is not related to the current changes.
-
-Do not focus too much on fitting the existing style, if it is not ideal.
Index: de_modules/recharts/CHANGELOG.md
===================================================================
--- node_modules/recharts/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1965 +1,0 @@
-## ⚠️ Next versions change notes are available only on the [GitHub Releases](https://github.com/recharts/recharts/releases) page ⚠️
-
-## 2.2.0 (Dec 8, 2022)
-
-### feat
-
-- Support keyboard navigation in pie chart (#2923)
-- Allow reversing the tooltip direction (#3056)
-
-### fix
-
-- fix rounding leading to hairline gaps (#3075)
-- fix: do not override zero brush end index (#3076)
-- fix: allow dragging brush when the mouse is outside (#3072)
-- fix: add label type to line props (#3068)
-- Ensure LabelList generic extends Data interface (#2954)
-
-## 2.1.16 (Oct 29, 2022)
-
-### fix
-
-- Fix incorrect date in CHAGELOG (#3016)
-- Let formatter function run even when value is falsy (#3026)
-- Fix(Sankey): update tooltip active state by trigger type(hover/click) (#3021)
-- Fix Area's `baseValue` prop (#3013)
-
-## 2.1.15 (Oct 12, 2022)
-
-### fix
-
-- Fix scroll on hover
-- DefaultTooltipContent.tsx Solving type error for entry.value and entry.name
-
-### chore
-
-- Revert D3 version
-
-## 2.1.14 (Sep 7, 2022)
-
-### fix
-
-- Add inactiveShape prop to Pie component (#2900)
-- Revert "chore: move type deps into devDependencies (#2843)" (#2942)
-- Fix typing of default tooltip formatter (#2924)
-- Take letter-spacing and font-size into consideration while rendering ticks (#2898)
-- Add formatter function type to tooltip props (#2916)
-- doc: Update CHANGELOG.md about d3 7.x (#2919)
-
-## 2.1.13 (Jul 26, 2022)
-
-### fix
-
-- set animate flag before chart data update (#2911)
-- Error bar domain fix (#2863)
-- fix: fix "recharts@… doesn't provide prop-types, requested by react-smooth" warning (#2895)
-
-### chore
-
-- upgrade d3 (#2893)
-
-## 2.1.12 (Jun 27, 2022)
-
-### fix
-
-- update react-smooth version
-- update d3 from 6.x to 7.x it may break some tools like jest
-
-fix config for jest is to add the following configuration
-
-```javascript
-const path = require('path');
-// took from d3/package.json
-const d3Pkgs = [
-  'd3',
-  'd3-array',
-  'd3-axis',
-  'd3-brush',
-  'd3-chord',
-  'd3-color',
-  'd3-contour',
-  'd3-delaunay',
-  'd3-dispatch',
-  'd3-drag',
-  'd3-dsv',
-  'd3-ease',
-  'd3-fetch',
-  'd3-force',
-  'd3-format',
-  'd3-geo',
-  'd3-hierarchy',
-  'd3-interpolate',
-  'd3-path',
-  'd3-polygon',
-  'd3-quadtree',
-  'd3-random',
-  'd3-scale',
-  'd3-scale-chromatic',
-  'd3-selection',
-  'd3-shape',
-  'd3-time',
-  'd3-time-format',
-  'd3-timer',
-  'd3-transition',
-  'd3-zoom',
-];
-
-// option 1 map module to an bundled version of the package which is es5
-const moduleNameMapper = d3Pkgs.reduce((acc, pkg) => {
-  acc[`^${pkg}$`] = path.join(require.resolve(pkg), `../../dist/${pkg}.min.js`);
-  return acc;
-}, {});
-
-module.exports = {
-  moduleNameMapper: {
-    // option 1
-    // ...moduleNameMapper
-  },
-  transform: {
-    // match mjs js jsx ts tsx
-    '^.+\\.m?[jt]sx?$': 'babel-jest',
-  },
-  // stop ignore node_modules transform since d3 and others start to put es6 as main of packages
-  transformIgnorePatterns: [
-    // option 2, stop ignore transform on es6 packages
-    `/node_modules/(?!${d3Pkgs.join('|')}|internmap|d3-delaunay|delaunator|robust-predicates)`,
-    // option 3, stop ignore transform on all node_modules
-    // `/node_modules/(?!.*)`,
-  ],
-};
-```
-
-## 2.1.11 (Jun 24, 2022)
-
-### feat
-
-- Adds react `^18.0.0` as valid peerDependency (#2820)
-
-## 2.1.10 (May 19, 2022)
-
-### feat
-
-- Add ARIA1.2 attributes to the SvgElementPropKeys filter array
-- Added Storybook Badge (#2840)
-- Handling of undefined values and type checks in DefaultTooltipContent
-
-### fix
-
-- Axis scale=band no longer works as of Recharts 2.x.x (#2742)
-
-### chore
-
-- chore: move type deps into devDependencies (#2843)
-
-## 2.1.9 (Feb 10, 2022)
-
-### feat
-
-- feat: allow axis domain to accept a callback (#2770)
-- Categorical chart callback types (#2739)
-
-### fix
-
-- Fixing types in strict mode (#2745) (#2747)
-- Fix: removes overlapping legend for categorical charts (#2752)
-- Categorical chart callback types (#2739)
-
-## 2.1.8 (dec 14, 2021)
-
-### fix
-
-- Must use import to load ES Module (#2658)
-
-## 2.1.7 (dec 14, 2021)
-
-### fix
-
-- Treemap do not render depth (#2718 #2719)
-- Update PolarRadiusAxis.tsx (#2720)
-
-### chore
-
-- Update d3-interpolate, d3-scale and d3-shape (#2707)
-
-## 2.1.6 (oct 26, 2021)
-
-### fix
-
-- Fix types folder missing
-
-## 2.1.5 (oct 15, 2021)
-
-### fix
-
-- Fixed types for legend events (#2267 #2269)
-- Fix the react-is version (#2670)
-- Fix type declaration errors when tsc (#2675)
-- Fix(build-umd): add webpack output options libraryTarget (#2684)
-
-## 2.1.4 (sep 19, 2021)
-
-### fix
-
-- Fix: ResponsiveContainer makes legend overlapping with chart when re-rendering (#2660)
-- Fix: rendering of a single bar when maxBarSize is absent and barSize is present (#2659)
-
-## 2.1.3 (sep 18, 2021)
-
-### fix
-
-- fix: Customized component has no key (#2637)
-- Fix XAxis scale property type (#2641)
-
-## 2.1.2 (aug 24, 2021)
-
-### fix
-
-- Fixes undefined field reference when optional variables not supplied (#2630)
-- Fix fragment children (#2481)
-
-## 2.1.1 (aug 21, 2021)
-
-### fix
-
-- Fix: responsive container
-
-## 2.1.0 (aug 10, 2021)
-
-### feat
-
-- Wrap ResponsiveContainer with forwardRef
-
-### fix
-
-- Fix for recharts issue #1787
-- Add chart type to tooltip payload
-
-## 2.0.10 (jul 13, 2021)
-
-### feat
-
-- Feat: Allow automated axis padding for "gap" and "no-gap" for barcharts with continuous axis #2457
-- Passthrough position attribute on createLabeledScales
-
-### fix
-
-- fix: barchart for a single data point #2512
-- fix: the bar label type definition #2582
-- fix: show scatter chart tooltip cross cursor #2592
-
-## 2.0.9 (mar 24, 2021)
-
-### chore
-
-- update test config and webpack, etc
-
-## fix
-
-- fix for missing sankey tooltips, fix #2496
-- added polyfill for ReactResizeDetector, fix #2504
-- fix condition to actually remove the listener, fix #2498
-- fix typing of <Area type /> prop, fix #2471
-
-## 2.0.8 (Feb 24, 2021)
-
-### feat
-
-- allow to show tooltip when hover or click bar item for <BarChart /> and <RadialBarChart />
-- add api `getXScales`, `getYScales`, `getXScaleByAxisId`, `getYScaleByAxisId`, `getItemByXY` to chart, fix #2422
-- Add SyncMethod to categorical charts
-- `findAllByType` searches for match inside of a fragment
-- allow to add customized `polarAngles` and `polarRadius` to <PolarGrid />, fix #2452
-
-### fix
-
-- fix Tooltip receive wrong payload when mouse enter <Line />, .etc, fix #2394
-- fix Treemap tooltip when use `dataKey` to specify value, fix #2428
-
-### deps
-
-- update react-resize-detector to 6.6.0, fix #2431
-
-## 2.0.7 (Feb 18, 2021)
-
-### fix
-
-- add missed type definition of tickMargin in XAxis, YAxis, fix #2427
-- filter out nil elements of chart
-- ensures `id="undefined"` is not rendered to the DOM when use ResponsiveContainer
-- fix auto scale type of ComposedChart, fix #2403
-- Fix .d.ts types that relay on d3
-
-## 2.0.6 (Feb 08, 2021)
-
-### fix
-
-- fix types error in npm pkg, fix #2398
-
-## 2.0.5 (Feb 08, 2021)
-
-### feat
-
-- defer when syncing to other charts
-
-### fix
-
-- Fix Customized component types
-- fix child event not dispatched, fix #2414
-
-## 2.0.4 (Jan 27, 2021)
-
-### feat
-
-- add maxLines prop to Text component
-
-### fix
-
-- Add `payload` to `Payload` interface
-- prevent rerender errors in ResponsiveContainer
-- Add PieLabel, PieLabelRenderProps types
-
-### deps
-
-- Upgrade react-resize-detector(4.x => 5.x) types to match the library
-
-## 2.0.3 (Jan 13, 2021)
-
-### refactor
-
-- use `getDerivedStateFromProps` to replace `UNSAFE_componentWillReceiveProps`, support react@17, #2385
-
-## 2.0.2 (Jan 12, 2021)
-
-### fix
-
-- fix lint error
-
-## 2.0.1 (Jan 12, 2021)
-
-### fix
-
-- Fix typo, createLabeldScales -> createLabeledScales
-- Prefer Number.isFinite if available
-- fix types error
-- fix(package.json): disable side effects explicitly
-
-### feat
-
-- Add aria-hidden to measurementSpan
-
-## 2.0.0 (Dec 29, 2020)
-
-### fix
-
-- fix minAngle for 0 in PieChart, fix ##2237
-- fix type error of <Bar />, fix #2335
-- fix type error of cursor in <Tooltip />, fix #2178
-- fix Props of XAxis, fix #2128
-- export Props of components, fix #2319, #2156, #2203
-- Fix typo, getRectangePath -> getRectanglePath in Rectangle
-- allow Duplicated Category for bar charts not using correct entries for custom tool tips
-- fixing typescript array coalesce
-- fix types error of sankey, fix #2280
-- Fixed SVG path for pie charts when corner radius is set to a value other than zero (#2331)
-
-### feat
-
-- add props `reversed` to `<Funnel />`
-- add `breakAll` props to `<Text />` to allow break all for chinese
-- fix width of labelList in Funnel; fix #2056, #1866
-- support range RadarChart and add props `connectNulls` to <Radar />, fix #1890
-- add ability to pass in custom legend icon.
-
-### deps
-
-- upgrade react-resize-detector to 5.2.0 and fix ts error, fix #2300
-- update react-smooth to 1.0.6 to fix bug after upgrading d3
-- upgrade d3 packages
-
-## 2.0.0-beta.8 (Nov 16, 2020)
-
-### fix
-
-- Add color change for inactive legend label
-- fix stackOffset="sign" in #2292, and add props stackOffset="positive" to fix #1667
-
-### refactor
-
-- update `filterSvgElements` and `renderByOrder`
-- Replace core-js polyfill and remove babel-polyfill
-
-## 2.0.0-beta.7 (Sep 08, 2020)
-
-### fix
-
-- Fix flickering tooltip by keeping the isTooltipActive flag from the previous state
-- fix(AreaDot Type): add option to use a function that returns a react element
-- Fix typescript error in polar radar
-- Fix typos in Label.renderCallByParent
-- Add type definition for label prop on XAxis, YAxis and ZAxis
-
-### feat
-
-- Pass tickFormatter as a prop to customized tick component
-- Allow array value for last data element in Funnel to set bottom width instead of forcing 0
-- Add payloadIndex to cursor props
-
-## 2.0.0-beta.6 (May 12, 2020)
-
-### fix
-
-- fix error of Brush when data is empty, but chart width or height or Brush update, fix #2093
-- fix build error , fix #2120
-- fix attrs of <Label />, reverts previous change: now `positionAttrs` is again after `attrs`
-- Get legend wrapper boundingRect to correctly compute legend offset, fix #2062
-
-### feat
-
-- support customized traveller of Brush, fix #1600
-
-## 2.0.0-beta.5 (Mar 26, 2020)
-
-### fix
-
-- fix types of generateCategoricalChart
-- fix position of tooltip when the categorical axis has time scale
-- fix position of tooltip when direction is rtl
-- fix name of Scatter in tooltip
-- Fix outerArcAngle and innerArcAngle when cornerIsExternal == true
-- fix IE 11 supoort because of d3-scale@3.x
-
-### feat
-
-- add Global setting, include "isSsr"
-- support tooltip trigger by click event
-- add static method `registerSymbol` to Symbols
-- add payload to formatter and labelFormatter in Tooltip
-- allow domain of axis to change the order of categories
-
-## 2.0.0-beta.4 (Mar 17, 2020)
-
-### fix
-
-- fix error of <Curve /> when add child to <Line />, fix #2051
-- fix Stack AreaChart when some values is negative, fix #1667
-- fix stack AreaChart when some values is nill, fix #1601
-
-### dep
-
-- Upgrade reduce-css-calc
-
-### chore
-
-- add types
-
-## 2.0.0-beta.3 (Mar 13, 2020)
-
-### fix
-
-- fix range of ReferenceArea of BarChart, fix #2045
-- fix className of axis line, fix ##2024
-- fix ComposedChart when has multiple <Bar/>, fix #2031
-- fix ComposedChart when specify scale of <XAxis />, fix #2010
-
-### chore
-
-- update eslint and add .prettierrc
-
-## 2.0.0-beta.2 (Mar 10, 2020)
-
-### fix
-
-- Do word line calculation only when needed
-- Fixes arc angles when `cornerIsExternal` is used
-- Invert cartesian label position based on negative values
-- Fix usage of hooks in Tooltip, Label, Legend and Customized
-- Move draging-end listener to the window for brush
-- Fix trigger after mouse leave
-- Added the angle as key which need to be used in the Label align
-- Rewrite index.js to index.ts, update scripts in package.json
-
-### feat
-
-- Added index to tickFormatter
-- Allow axis line customization through axisLine prop
-
-## 2.0.0-beta.1 (Dec 03, 2019)
-
-### fix
-
-- fix error parameters in `appendOffsetOfLegend`
-- fix style of <Area />
-
-## 2.0.0-beta.0 (Dec 03, 2019)
-
-### feat
-
-- Only support react@16
-- Use typescript to rewrite src/
-
-## 1.8.5 (Oct 22, 2019)
-
-### fix
-
-- revert [PR#1916](https://github.com/recharts/recharts/pull/1916)
-- fix Text update, fix #1914
-
-## 1.8.4 (Oct 22, 2019)
-
-### fix
-
-- Adding Composed chart to rescaled charts, to fix #1887
-
-## 1.8.3 (Oct 17, 2019)
-
-### fix
-
-- fix: rollback to componentWillReceiveProps, fix crash in react@15
-
-## 1.8.2 (Oct 17, 2019)
-
-### fix
-
-- Used UNSAFE_componentWillReceiveProps to replace componentDidUpdate
-
-## 1.8.1 (Oct 16, 2019)
-
-### fix
-
-- Fixed Text Component crash
-- Fixed eslint errors in src/
-
-### feat
-
-- Add props of <Brush /> to always show text
-- Add onClick event to sankey chart
-- Shape prop can be used without any other prop in reference area
-
-## 1.8.0 (Oct 15, 2019)
-
-### refactor
-
-- react unsafe methods refactored
-
-## 1.7.1 (Aug 13, 2019)
-
-### fix
-
-- Fix bar chart tooltip (#1837)
-
-## 1.7.0 (Aug 08, 2019)
-
-### feat
-
-- allow events on Text and Label components
-- Enable Tooltip's `translate` style
-- Added position props for ReferenceLine to allow to control offset of it
-
-### fix
-
-- handle `dataKey` as function, get correct data array for tooltip
-- fix style of legend in case of area and radar use fill for fallback color
-
-## 1.6.2 (May 22, 2019)
-
-### feat
-
-- Add cornerIsExternal prop to center rounded corner at radial bar edge
-- Add new component `Customized` to render customized content which can user internal state and props
-- Add props `tooltipType="none"` to hide tooltip data for Area, Bar, Line, Scatter, Funnel, Pie, Radar, RadialBar
-
-### fix
-
-- fix the order of tooltip items when not specify itemSorter
-- Fix typo in example of RadialBarChart
-
-## 1.6.1 (May 20, 2019)
-
-### fix
-
-- fix "Maximum call stack size exceeded" error when use label={<Label />}
-- fix bug of "Cannot read property reduce of undefined in Text.js"
-- fix `getDomainOfDataByKey` when all the values are null or undefined
-
-## 1.6.0(May 14, 2019)
-
-### fix
-
-- Use y-axis ticks to determine y-axis category
-- fix bug in ThreeMap inside ResponsiveContainer, fix #1692
-- Avoid same keys on label and line, fixes #1302
-- use _.max to replace Math.max.apply, use _.min to replace Math.min.apply
-
-### feat
-
-- Adds forceCornerRadius prop to RadialBar
-- calculate width with aspect and height when width is falsey
-
-## 1.5.0(Feb 15, 2019)
-
-### fix
-
-- fix the bug of ReferenceLine when calculate coordinates, fix #1643
-- fix bug of Scatter in ComposedChart
-
-### feat
-
-- allow aria-\* attributes and "role", "focusable", "tabIndex" of charts, fix #1226, fix #1584
-- add new props "paylodUniqBy" to Tooltip and Legend
-
-## 1.4.4(Feb 15, 2019)
-
-### fix
-
-- fix the bug of automatically calculate the y-coordinate of yAxis tick when tick has unit, fix #1623
-- render clipPath in <defs />, fix bug in generateCategoricalChart, fix #1592
-- remove React.Fragment in DefaultTooltipContent, fix #1645
-
-## 1.4.3(Feb 12, 2019)
-
-### fix
-
-- fix bug of <Rectangle /> when width < 0 && `radius` is not null, fix #1596
-- fix paddingAngle of Pie when render only <Pie /> not <PieChart />
-- fix onMouseEnter and Tooltip for Pie on FireFox
-
-### feat
-
-- Make the timeOut timer for the brush configurable through props
-- Allow to format name in Tooltips
-
-### dep
-
-- Update lodash version to 4.17.5 and install webpack-dev-server@3.1.14 dev dependency
-- Updated package.json to mark effectful modules
-- chore: update version of sinon, from 4.x to 7.x
-
-## 1.4.2(Dec 21, 2018)
-
-### refactor
-
-- Refactor transition of <Area />, <Line />, <Radar />, make transition more smoothly when the length of dataset changes
-
-### fix
-
-- replace lodash isFinite with Number.isFinite, meanwhile add polyfill core-js's Number polyfill in order to use Number.usFinite directly
-- updated area chart to cut off dots on left most axis
-
-## 1.4.1(Nov 16, 2018)
-
-### fix
-
-- Fix height of TreeMap
-
-## 1.4.0(Nov 15, 2018)
-
-### feat
-
-- Add FunnelChart and Trapezoid
-- Add nested Treemap
-
-## 1.3.6(Nov 07, 2018)
-
-### fix
-
-- Fix bug preventing use of functions or custom components for the Bar background prop
-- Fix incorrect sort logic in stripe rendering
-
-### feat
-
-- Added animateNewValues property to Line
-
-## 1.3.5(Oct 25, 2018)
-
-### fix
-
-- use lodash \_.values instead of Object.values
-- perfer YAxis which has finite domain and nice ticks when a chart has many YAxes
-- fix <Area /> for expected length height attribute
-
-### chore
-
-- add babel-plugin-lodash in babelrc
-- update webpack.config.js to remove sourceMap in umd/Recharts.min.js
-
-## 1.3.4(Oct 13, 2018)
-
-### fix
-
-- Fix domain calculation with 0 values (#1519)
-
-## 1.3.3(Oct 10, 2018)
-
-### feat
-
-- find yAxisWithNiceTicks and choose it over getAnyElementOfObject
-
-### fix
-
-- update recharts-scale to 0.4.2 to fix bug of DecimalError when data is Inifinity, fix #1493
-
-## 1.3.2(Oct 07, 2018)
-
-### fix
-
-- Fix axis type error
-- Fix add sideEffects flag to enable tree-shaing
-
-## 1.3.1(Sep 29, 2018)
-
-### fix
-
-- Fix the react-resize-detector don't match react 15
-
-## 1.3.0(Sep 28, 2018)
-
-### feat
-
-- upgrade recharts-scale to 0.4.0, to fix the calculation of big float
-
-## 1.2.0(Sep 7, 2018)
-
-### feat
-
-- Add blendStroke prop to Pie component
-- Adding contentStyle prop to Tooltip for styling DefaultTooltipContent
-
-### fix
-
-- Fixed typo of playload -> payload in Radar chart
-- Fix PieChart animation event handlers not firing
-- Fix alwaysShow warn() condition in ReferenceLine
-- Fix Tooltip disappears when using setState()
-
-## 1.1.0(Jul 19, 2018)
-
-### feat
-
-- Allow reference areas which extend past the canvas bounds
-- Allow to add more classes in tooltips
-- Reference line segment by specifying a pair of
-  endpoints
-
-## 1.0.1(Jul 05, 2018)
-
-### fix
-
-- only use babel-es in es6/, fix #1372
-
-## 1.0.0(Jul 05, 2018)
-
-### fix
-
-- #1195 Replace axis scale value `utcTime` with `utc`
-- remove wrapperStyle on DefaultTooltipContent
-- Clip dots of <Line />
-- Move style spread to after default styles to allow overriding
-- Fixing range area chart bottom bound. Base line needed to be filterted for connecting
-  null
-- Fix tooltips that disappear while mouse still over a scatter point
-
-### refactor
-
-- use lodash-es for es6 build
-- Factor out some scale- and rect-related functions
-
-### feat
-
-- Add touchStart & touchEnd event handling
-- Add explicit prop `defaultShowTooltip` to activate tooltip
-- Position the 'top' label outside the element for negative heights
-
-## 1.0.0-beta.10(Jan 31, 2018)
-
-### fix
-
-- fix Scatter Chart:lineType 'fitting' does not work
-- Update to allow CSP compliance on setting styles
-- Remove react-transition-group from peerDependencies
-
-### refactor
-
-- Replace flatmap of reduce to \_.flatmap in getDomainOfDataByKey
-
-### feat
-
-- Add the gap of props for brush
-
-## 1.0.0-beta.9(Jan 09, 2018)
-
-### fix
-
-- Fix `verticalFill` and `horizontalFill` in `<CartesianGrid />` when points are unordered
-
-## 1.0.0-beta.8(Jan 09, 2018)
-
-### feat
-
-- Add props `useTranslate3d` to control whether use translate3d or translate in <Tooltip />
-- Add props `verticalFill` and `horizontalFill` in `<CartesianGrid />` to show grid background
-- Add `visibleTicksCount` in props of customized tick of `<CartesianAxis />`
-
-### fix
-
-- Replace lodash \_.get with simple Array.prototype.find
-- Prevent texts from being selected when dragging the brush
-- Add try...catch... when getTotalLength is called by a svg path to fix IE bug
-
-## 1.0.0-beta.7(Dec 21, 2017)
-
-### feat
-
-- Add props `allowDuplicatedCategory` to XAxis, YAxis, PolarAngleAxis, PolarRadiusAxis, to remove duplicated category when type="category"
-- Add props id in `<Area />`, `<Bar />`, `<Line />`, `<Scatter />`, `<Label />`, `<LabelList />` for SSR
-- Support specify domain of category type axis when allowDuplicatedCategory is false, add cooresponding "xAis", "yAxis", "zAxis" to the props or customized shape of Scatter
-
-### fix
-
-- Fx sanketartAngle and endAngle of RadarChart diagram not re-rendering when updating data prop
-- Fix animation of AreaChart when baseLine is NaN / undefined
-- Fix default startAngle and endAngle of RadarChart
-- Use cloneElement to create Legend
-
-## 1.0.0-beta.6(Dec 02, 2017)
-
-### feat
-
-- Add props `background` to support background rectange in `<Bar />`
-- add props `tickMargin` which set the space between text and tick line
-
-### fix
-
-- update PRESENTATION_ATTRIBUTES to allow set the radius of each `<Rectangle />` of BarChart
-- render Legend when all values of Pie is 0
-- fix animation of intial `<Bar />`
-
-## 1.0.0-beta.5(Nov 24, 2017)
-
-### fix
-
-- fix `isChildrenEqual` when chart has a single child in an array
-- support LabelList in ScatterChart
-
-## 1.0.0-beta.4(Nov 24, 2017)
-
-### fix
-
-- fix Label when content is a function and return simple string
-- add name to propTypes of Scatter
-- fix \*\* error of lib/
-
-## 1.0.0-beta.3(Nov 23, 2017)
-
-### feat
-
-- Add datakey to proops of customized dot
-
-### fix
-
-- Removed the use of `Children.only` from the isSingleChildEqual call. Appears to resolve the issue logged at https://github.com/recharts/recharts/issues/935
-- Fix Line Animation with given Magic Number
-- Don't break text contents on non-breaking spaces
-- Support for "strokeDasharray" in <Legend/>
-- Fix Bar Animation with the given Magic Number
-- Fix position of `<Label />`
-- Fix exception of AreaChart when all the values are null
-- Fix the orders of polar angle ticks in RadarChart
-- Replace \*\* width Math.pow
-
-## 1.0.0-beta.2(Nov 17, 2017)
-
-### fix
-
-- fix attributes order of `<Label />`
-- fix the domain of Axis when specify `ticks`
-
-### feat
-
-- allow set x, y, width, height, horizontalPoints, verticalPoints of CartesianGrid
-- add props to the parameters of callbacks
-
-### refactor
-
-- add id prop to Pie Component
-- Update Bar and Line to allow them to recognise multiple ErrorBars
-
-## 1.0.0-beta.1(Nov 06, 2017)
-
-### feat
-
-- Add index to line props in Pie
-- Update ReferenceDot.js
-
-### chore
-
-- update react-resize-detector, react-smooth to support react16
-
-## 1.0.0-beta.0(Oct 24, 2017)
-
-### feat
-
-- Allow ReferenceArea to cover available space
-- Support React 16
-
-### fix
-
-- Fix bug of animation when toggle the value of `isAnimationActive`
-
-## 1.0.0-alpha.6(Oct 10, 2017)
-
-### feat
-
-- Add props `reverseStackOrder` to reverse the order of stacked items
-- Allow an arbirary domain for cartesian X and Y axes
-- Added className prop for Label
-
-### fix
-
-- Fix confused parameter `startX` in `<Brush />`
-- Fix ScatterChart when the type of XAxis is "category"
-
-### docs
-
-- Fix typo initilaState -> initialState
-
-## 1.0.0-alpha.5(Sep 16, 2017)
-
-### fix
-
-- Don't check for animation when it is disabled
-- fix bug of paddingAngle when isAnimationActive is true
-
-### feat
-
-- add props filterNull to `Tooltip`, null values will not be filtered when filterNull = false
-
-### refactor
-
-- Allowing length in different unit in ResponsiveContainer
-  By allowing type: String on 'minHeight', 'minWidth', 'maxHeight' property, developers can use length in different units like em, pt etc.
-- Render curve with fill first in Area
-
-### dep
-
-- remove react-transition-group in peer dependencies
-- Updates resize-detector to 0.6, close #705, fix the problem with strange scrollbars appearing over the charts
-
-## 1.0.0-alpha.4(Aug 21, 2017)
-
-### fix
-
-- Fix error 'Cannot read property 'map' of undefined' in Pie
-- Fix bug of parsing the width of Brush
-- Don't render any path when width === 0 || height === 0 in Rectangle
-
-### refactor
-
-- Avoid calculating ticks if tick is set to false
-- Update the order of parsing data in mixed components
-
-### feat
-
-- Render unit when the props unit of XAxis, YAxis is specified
-- Add default nameKey to "name" property in Pie
-- Add props className and id to ResponsiveContainer
-
-### dep
-
-- Update recharts-scale to fix bug of ticks
-
-## 1.0.0-alpha.3(Aug 12, 2017)
-
-### fix
-
-- fix bug of isChildrenEqual
-- fix "hide" props of YAxis
-
-## 1.0.0-alpha.2(Jul 10, 2017)
-
-### feat
-
-- Add props className to ReferenceLine, ReferenceDot, ReferenceArea
-- Specify the contents of LabelList by `dataKey`
-
-### fix
-
-- Fix faulty logic check in inRange function
-- onTouchMove event call method that handle tooltip and active dot draw
-- Show tooltip on drag movement on touch devices
-- Fix viewBox of Label when render implicit label
-- Fix label of Pie
-- Fix events of Pie and PieChart
-- Fix bug of interplateNumber
-- Fix the bug of parsing "dataMin - 0.05" like domain
-
-## 1.0.0-alpha.1(Jun 11, 2017)
-
-### fix
-
-- update the propType of the props data or Bar
-- fix the type of Curve
-- fix connectNulls of `Line`
-- update version of recharts-scale to fix #713
-- fix valueKey of Pie temporarily and add logs when use deprecated "valueKey"
-- bind events to Radar
-- fix animation of active-dot
-
-## 1.0.0-alpha.0(May 24, 2017)
-
-### refactor
-
-- refactor PolarCharts
-- refactor Animation
-- refactor Label and LabelLis
-
-### fix
-
-- fix scale of ErrorBar
-
-## 0.22.4 (Apr 26, 2017)
-
-### fix
-
-- fix dot customized className
-
-### dep
-
-- update react-smooth, and react-transition-group
-
-## 0.22.3 (Apr 19, 2017)
-
-### refactor
-
-- add mathSign in DataUtils to replace Math.sign
-
-## 0.22.2 (Apr 18, 2017)
-
-### fix
-
-- fix spelling error of fillOpacity
-- fix bug of axis when has duplicated ticks
-
-## 0.22.1 (Apr 13, 2017)
-
-### feat
-
-- Add legendType: ‘none’ to not render coresponding legend item
-- use prop-types instead of React.PropTypes
-
-### fix
-
-- Fix re-rendering element bug when adding new elements
-- Fix circular dependence of Brush.js and LineChart.js
-
-## 0.22.0 (Apr 05, 2017)
-
-### feat
-
-- Add event handlers to component Dot
-- Support embedded chart as a panoram in Brush
-- Add props reversed to `XAxis` and `YAxis` to reverse the range of axis
-
-### fix
-
-- Fix error or time scale
-
-## 0.21.2 (Mar 01, 2017)
-
-### fix
-
-- fix ticks for specified domain
-
-## 0.21.1 (Feb 28, 2017)
-
-### fix
-
-- Update recharts-scale to fix bug of ticks
-
-## 0.21.0 (Feb 28, 2017)
-
-### feat
-
-- Support band area and band bar
-- support customized horizontal line and vertical line in CartesianGrid
-- support customized events in ReferenceArea, ReferenceLine
-- add formatter in `Legend`
-
-### fix
-
-- Fix empty tick when category axis has nil values
-- fix the propTypes of fontSize
-- support props dx and dy in Text
-- fix bug of stacked bar when spcify domain of axis
-- fix the barSize of bars in `<Bar />` when too many bars
-
-## 0.20.8 (Feb 15, 2017)
-
-### fix
-
-- Fix bug when onBBoxUpdate of Legend is null
-
-## 0.20.7 (Feb 15, 2017)
-
-### fix
-
-- Fix stack chart when only have one stacked element
-- Fix the offset when the boundary box update
-- Fix position of XAxis in ScatterChart when the orientation is right
-- Use DataUtils.uniqueId to replace lodash.uniqueId
-
-### feat
-
-- Add props `mirror` in XAxis and YAxis, support mirror ticks
-- Add props iconType to the props of Legend which can specify the icon type of legend
-
-## 0.20.6 (Feb 08, 2017)
-
-### fix
-
-- Fix `dataStartIndex` and `dataEndIndex` of synchronized chart
-- Use lodash.uniqueId to produce the id of Pie
-
-## 0.20.5 (Jan 17, 2017)
-
-### fix
-
-- fix "Maximum call stack size exceeded error" caused by Tooltip update
-
-## 0.20.4 (Jan 17, 2017)
-
-### fix
-
-- Animate of Tooltip may crash browser sometimes, use style transition to do the animation of tooltip
-
-## 0.20.3 (Jan 17, 2017)
-
-### fix
-
-- Fix Tooltip in ScatterChart
-- Fix radius of Rectangle when height < 0
-
-### feat
-
-- Add clip path in Area, Bar and Scatter
-- Add onMouseDown and onMouseUp hooks in generateCategoricalChart
-
-### chore
-
-- Disable babel transform es2015 modules to commonjs for es6 build
-- Use cross-env to support windows builds, likewise downgrade linebreak-style to warning
-- Update release.sh
-
-## 0.20.2 (Jan 05, 2017)
-
-### fix
-
-- remove opacity in ErrorBar
-- fix `Tooltip` when `coordinate` is null
-
-### feat
-
-- add props `basevalue` in `AreaChart`
-- add clipPath when xAxis or yAxis of `Line` allow data overflow
-- allow dataKey to be a map function
-- support Tooltip in Sankey and Tooltip
-- Allow Brush to set default startIndex and endIndex
-
-## 0.20.1 (Dec 27, 2016)
-
-### fix
-
-- Fix bug of `isChildrenEqual` when component has child `null`
-- Adjust `barGap` when `bandSize` is too small to display bars
-
-### feat
-
-- Add props `payload` and `value`, update props `index` in `activeDot` of `Line`, `Area`
-
-### refactor
-
-- Move polyfill of `Math.sign` to polyfill.js
-
-## 0.20.0 (Dec 26, 2016)
-
-### feat
-
-- Support `ErrorBar` in `Line`, `Area`, `Bar`, `Scatter`
-- Support touch event in `LineChart`, `AreaChart`, `BarChart`
-- Add props `throttleDelay` in `LineChart`, `AreaChart`, `BarChart` for performance
-- Support cornerRadius in Sector, RadialBar and Pie
-- Support events in CartesianAxis, PolarAngleAxis, PolarRadiusAxis
-- Support touch events in Brush
-
-### refactor
-
-- Use `getStringSize` to calculate the width of `Text`
-- Refactor children comparsion in `generateCategoricalChart`, and add updateId to force Brush update when children update
-- Refactor `getMouseInfo` to remove some duplicated codes in `generateCategoricalChart`
-- Refactor Tooltip and Legend, remove react-dom-server
-
-### fix
-
-- Fix the `chartId` in `handleReceiveSyncEvent` of `generateCategoricalChart`
-
-## 0.19.1(Dec 15, 2016)
-
-### fix
-
-- Adding missing event propTypes
-- support x, y of `Text` are number or text
-- fix proptypes of Scatter to allow that the props `data` can be a array of array
-- fix server side render check `isSsr`
-- remove duplicated "square" in legendType
-- fix `getStringSize` when server side rendering check fails
-- fix animation error when update Line which has props stroke-dasharray
-- fix bug of BarChart when add stackId in only one Bar and update test cases
-
-## 0.19.0 (Nov 23, 2016)
-
-### refactor
-
-- remove unneed `Animate` in `Bar` and `Rectangle`
-- refactor interval of `CartesianAxis`, support "preserveStart", "preserveEnd", "preserveStartEnd"
-- add payload in the `Tooltip` and `Scatter` of `ScatterChart`, and unify the payload of Components
-
-### feat
-
-- `RadialBar` support events triggered on the entire bar
-- support customized lable in `RadialBar`
-- support `maxHeight` in `ResponsiveContianer`
-
-### fix
-
-- fix multiple y-axes breaks chart when plotting only single datum
-- Relax propTypes.ticks in CartesianAxis
-
-## 0.18.0 (Nov 15, 2016)
-
-### feat
-
-- support customized scale function of categorical charts
-- support customized events in Legend
-
-### refactor
-
-- refactor ResponsiveContainer with ReactResizeDetector
-- change the default value of isAnimationActive
-- remove some unneed default attributes of Components
-
-### fix
-
-- fix wrong written default props
-- fix twice triggered event in Bar
-- fix treemap stroke pollution cause by defaultProps
-
-## 0.17.0 | 0.17.1 (Nov 08, 2016)
-
-### fix
-
-- fix strokeDasharray of Line
-- add payload in Legend payload item
-- fix position of vertical Legend
-- Recalculate points after width or height change
-
-### refactor
-
-- refactor ticks filter algorithm of CartesianAxis
-- change order of stacked BarChart and AreaChart
-- refactor event handlers of PieChart, RadarChart, Brush, RadialBarChart
-- support onMouseEnter, onMouseLeave, onMouseMove, onClick in categorical chart
-
-## 0.16.2 (Nov 04, 2016)
-
-### fix
-
-- fix dash line animation
-- fix the bug when the children of categorical chart change
-
-### feat
-
-- support shape in ReferenceLine
-
-### refactor
-
-- render Bar, Area, Line according to the order of Bar, Area, Line in ComposedChart
-
-## 0.16.1 (Nov 03, 2016)
-
-### fix
-
-- refactor to treat NaN like undefined or null, fix #303
-- fix tranform origin of Bar, fix #292
-
-### feat
-
-- support customized position of Tooltip, fix #31
-
-### docs
-
-- fix LodashModuleReplacementPlugin
-
-## 0.16.0 (Nov 03, 2016)
-
-### refactor
-
-- Major Performance Change - Re-Use Expensive To Generate Data
-
-### feat
-
-- support both x-axis and y-axis are numerical axis, fix #183
-- add animation events in `Line`, `Area`, `Bar`
-
-### fix
-
-- fix angle of PolorRadiusAxis
-
-## 0.15.3 (Oct 28, 2016)
-
-### feat
-
-- Add angle property to PRESENTATION_ATTRIBUTES (#307)
-
-### Dev
-
-- chore: update istanbul plugin and add yarn.lock
-
-## 0.15.2 (Oct 13, 2016)
-
-### Fix
-
-- support empty margin in generateCategoricalChart
-- fix the label of RadialBarChart
-- fix the bug of `<Text>{0}</Text>`
-- fix the bug of ScatterChart when margin lose some attributes
-
-### Feat
-
-- support maxBarSize in BarChart and Bar
-- support fill in CartesianGrid
-
-### Refactor
-
-- simplify the calculation of width and height when specified aspect
-
-## 0.15.1 (Sep 26, 2016)
-
-### fix
-
-- Fix label/tick vertical alignment of Text
-
-## 0.15.0 (Sep 23, 2016)
-
-### feat
-
-- New Component `Text`
-
-### refactor
-
-- Fix possible memory leak warning of events
-
-### fix
-
-- minPointSize working when value is 0
-- Restored support for discrete values in Line and Area charts
-- Allowed for strings to be used as axis id in the ScatterChart
-
-## 0.14.2 (Sep 19, 2016)
-
-### Fix
-
-- Stop caching span in memory of getStringSize
-- Fix the bug of LineChart and ScaterChart when some data is null or undefined
-
-### feat
-
-- ScatterChart support for attributes using data and Cell
-
-## 0.14.1 (Sep 12, 2016)
-
-- Fix webpack.config.js
-
-## 0.14.0 (Sep 12, 2016)
-
-### Feat
-
-- allow label function to return a string
-- Pass entry to formatter function
-- Support labels in ScatterChart axis
-- Add dataKey in the payload of Legend
-- support allowDataOverflow in XAxis, YAxis, PolarRadiusAxis
-
-### Refactor
-
-- Refactor the received props of Surface
-
-### Fix
-
-- Fixed up handling of nulls for domain creation
-- Stopped domain calculation reverting to 0 for missing data points
-- Fix the bug of stacked areas which have yAxisId different from "0"
-- Fix the spelling error of AniamtionDecorator
-
-### Docs
-
-- Update webpack.config.js, to support AMD
-
-## 0.13.4 (Aug 24, 2016)
-
-### Feat
-
-- Add cartesian Component ReferenceArea
-
-### Refactor
-
-- Refactor ResponsiveContainer and support minHeight, minWidth, aspect in ResponsiveContainer
-
-### Fix
-
-- Fix the position of Bar for charts which have multiple y-axes
-
-## 0.13.3 (Aug 17, 2016)
-
-### Feat
-
-- Support the functionality that syncs multiple categorical charts when mouse enter, move, leave a chart, or when change the brush of one chart
-
-### Fix
-
-- Fix the bug of stack offset function - "sign"
-- Fix the propTypes or legendType
-
-## 0.13.2 (Aug 15, 2016)
-
-### Feat
-
-- Add an option "sign" to the props stackOffset in BarChart and AreaChart which allows the bars and areas to be stacked according to the sign of value.
-
-### Fix
-
-- Fix the bug of legend in ScatterChart and refactor symbols.
-
-## 0.13.1 (Aug 08, 2016)
-
-### Fix
-
-- Fix the bug that tooltip did not show up for pie chart while using nameKey and valueKey
-
-### Refactor
-
-- Refactor Brush as controlled component
-
-## 0.13.0 (Aug 03, 2016)
-
-### Fix
-
-- Ensured all tooltip-related state gets reset upon receiving new data for all the charts
-
-### feat
-
-- Support smooth curve in Scatter
-- Support props connectNulls in Area, Line, and Curve,
-
-### refactor
-
-- Refactor animation of Area
-
-## 0.12.8 (Aug 01, 2016)
-
-### fix
-
-- Fix the bug of getTicksOfScale
-- Fix the bug of radius of ClipPath is so small that some texts of Pie is covered
-
-## 0.12.7 (July 25, 2016)
-
-### feat
-
-- Add itemSorter to tooltips
-- add props allowDecimals in XAxis and YAxis
-
-## 0.12.6 (July 21, 2016)
-
-### feat
-
-- Support Tooltip of RadarChart
-
-### fix
-
-- Fix the initial value of state isAnimationFinished in Line and Area
-- Fix the spelling error, pressentation => presentation (CartesianAxis)
-- Tweak text in RadarSpec
-
-## 0.12.5 (July 12, 2016)
-
-### feat
-
-- Add paddingAngle in Pie, fix #142
-
-### deps
-
-- update version of react, fix #138, fix #103
-
-## 0.12.4 (July 8, 2016)
-
-### fix
-
-- Fix the bug of calculation accuracy in IE(Sector)
-- Remove unneed props "formatter" in Area and Bar
-- Fix props which can be supported by html tags and svg tags
-
-### refactor
-
-- Support multiple activeIndex in Pie
-
-### deps
-
-- Update d3-scale and d3-shape to the latest version
-- Update version of react-smooth and recharts-scale
-- Restrict the version of react to '~15.1.0'
-
-## 0.12.3 (June 30, 2016)
-
-### fix
-
-- Fix the bug that no animation when data change, but points of Line are the same
-
-### refactor
-
-- Remove xAxisMap and yAxisMap in ReferenceDot and ReferenceLine
-
-## 0.12.2 (June 29, 2016)
-
-### feat
-
-- Add margin props in Sankey to avoid outer-clip
-- Add shape props in ReferenceDot
-
-### fix
-
-- Fix the width and height of wrapper
-
-## 0.12.1 (June 24, 2016)
-
-### fix
-
-- Fix the bug with a hack method that global css will affect the width and height of Legend, Tooltip
-
-## 0.12.0 (June 23, 2016)
-
-### feat
-
-- Add padding in XAxis and YAxis
-- Support minPointSize in Bar
-- Support "dataMin - 110" and "dataMax + 100" in the domain of numeric axis
-
-### refactor
-
-- Refactor Treemap, change ratio to aspectRatio
-
-### fix
-
-- Fix the bug of axisId in BarChart
-- Fix the bug of tooltip's position in BarChart
-- Fix PropTypes of `type` in `Area`
-
-## 0.11.0 (June 17, 2016)
-
-### feat
-
-- Add Sankey
-
-### fix
-
-- Fix the bug of Area when the data break off in some points
-- Fix the bug of ticks when 0 in ticks
-
-### refactor
-
-- Refactor the payload of tooltip, and the props of activeDot in AreaChart
-
-## 0.10.10 (June 13, 2016)
-
-### fix
-
-- Fix the position of labels in Bar
-
-## 0.10.9 (June 12, 2016)
-
-### refactor
-
-- Use react-container-dimensions to refactor ResponsiveContainer, close #104, close #105
-
-## 0.10.8 (June 2, 2016)
-
-### feat
-
-- Support any svg elements in the charts, such as defs, linearGradient
-
-## 0.10.7 (May 30, 2016)
-
-### fix
-
-- Fix the bug of Brush when data or the size of container changes.
-
-## 0.10.6 (May 25, 2016)
-
-### feat
-
-- Add customized event handlers in BarChart
-- Add curveMonotoneX and curveMonotoneY in Curve and Line
-- Pass stackOffset type as an optional parameter for categorical chart
-- Add `isFront` in ReferenceLine and ReferenceDot to support auxiliary information at differents z-index
-
-### fix
-
-- Fix legend position with margin
-
-## 0.10.5 (May 9, 2016)
-
-### feat
-
-- Support more interpolations in Curve, Line
-- Allow to set custom tick formatter function for Brush start/end index
-
-## 0.10.4 (May 5, 2016)
-
-### feat
-
-- support animation when data update
-
-### refactor
-
-- refactor event handlers in charts
-
-### fix
-
-- fix tooltip position in BarChart
-
-## 0.10.3 (May 4, 2016)
-
-### fix
-
-- fix bug of ReactUtils in Firefox 31
-
-## 0.10.2 (May 4, 2016)
-
-### refactor
-
-- refactor data in Pie which was modified internally
-
-## 0.10.1 (April 27, 2016)
-
-### feat
-
-- Support Tooltip in Treemap
-
-### fix
-
-- Rename `Symbol` to `Symbols`
-- Fix the key of `activeDot` in `AreaChart`
-
-## 0.10.0 (April 21, 2016)
-
-### refactor
-
-- Refactor _ticks_ specified in `XAxis`, `YAxis`
-- Use area of `Symbol` to show the size of number in ScatterChart
-- Refactor the `activeShape` in `Scatter`
-
-### feat
-
-- Add `Symbol` and support different `Symbol` in ScatterChart
-
-### fix
-
-- Fix the content of legend in `PieChart`
-- Fix the crush bug when categorical axis has duplicate labels
-- Fix the bug of calculating tick width
-
-## 0.9.3 (April 12, 2016)
-
-### deps
-
-- Update react-smooth to 0.1.4
-
-## 0.9.2 (April 12, 2016)
-
-### deps
-
-- Update react to 15.0.0
-
-## 0.9.1 (April 8, 2016)
-
-### fix
-
-- Fix the bug of bar animation
-
-### deps
-
-- update version of rechats-scale, and babel-eslint
-
-## 0.9.0 (April 7, 2016)
-
-### refactor
-
-- Remove default event handler in Pie, and add `activeIndex` to let user control the active sector
-- Remove detectElementResize
-- Add activeDot in Line and Area
-
-### fix
-
-- Fix the bug of updating line when the length of line is zero at first
-- Fix the base value of AreaChart which was set to be 0 before
-
-## 0.8.8 (March 25, 2016)
-
-### refactor
-
-- Support fixed value of width or height in ResponsiveContainer
-
-## 0.8.7 (March 21, 2016)
-
-### refactor
-
-- Don't overwrite payload in Legend when customized payload has been setted
-
-## 0.8.6 (March 09, 2016)
-
-### refactor
-
-- Use detectElementResize in react-virtualized to refactor ResponsiveContainer
-
-### fix
-
-- Fix ssr render bug of CartesianAxis
-
-## 0.8.5 (March 08, 2016)
-
-### feat
-
-- Add support of function type customized element
-
-### fix
-
-- fix the props labelLine in Pie
-- fix the bug of PureRender
-
-### test
-
-- Add more test cases
-
-## 0.8.4 (March 02, 2016)
-
-### refactor
-
-- Refactor the implementation type of renderPolygon in `Radar`
-- Refactor code in `Treemap`
-- Remove `invariant` and add `LogUtils`
-
-### feat
-
-- Add animation of Area, Radar, RadialBar, Scatter
-- Add label formatter to default tooltip
-- Add props labelLine in `Pie`
-- Add Cell of `Pie` to set different options for each sector
-- Add Cell support in `Bar`, `RadialBar`
-
-### fix
-
-- Fix Pie chart Label position, When using custom label It was not rendering as part of the curve group.
-- Fix `isAnimationActive` props in `Area`
-
-## 0.8.3 (February 25, 2016)
-
-### refactor
-
-- refactor CartesianChart to a high order component, move some function to /util/CartesianUtils which can be used in ScatterChart.
-- Simplify ComposedChart, remove duplicated code
-- use `filterEventAttributes` to add events props
-- cancel selecting line and area in LineChart, AreaChart, ComposedChart
-
-## 0.8.2 (February 24, 2016)
-
-### fix
-
-- rollback last fix of Line animation from value
-
-## 0.8.1 (February 24, 2016)
-
-### fix
-
-- fix the bug of Line animation from value
-
-## 0.8.0 (February 22, 2016)
-
-### feat
-
-- implement ReferenceDot in cartesian charts
-- support alwaysShow of ReferenceLine and ReferenceDot
-
-### refactor
-
-- refactor domain of CartesianAxis and PolarRadiusAxis
-- refactor this props name in ReferenceLine
-
-### fix
-
-- fix the bug of calculate extent in RadarChart
-- fix some bugs of server side rendering when document is called
-
-## 0.7.0 (February 17, 2016)
-
-### UI
-
-- feat: support dasharray line animation
-- refactor(CartesianAxis, PolarAngleAxis, PolarRadiusAxis):rename label to tick
-- feat(label): add label of CartesianAxis, PolarRadiusAxis, ReferenceLine
-- feat: Implement tooltip for PieChart
-- feat:Implement tooltip for RadialBarChart
-- deps(d3-scale,d3-shape,oui-dom-util): 1.update version of d3-scale, d3-shape, oui-dom-util 2.update some api of d3-scale
-
-## 0.6.3 (February 10, 2016)
-
-### UI
-
-- refactor(Legend): refactor the location of legend
-- fix(CartesianChart,CartesianAxis): 1. fix the bug of dataStartIndex && dataEndIndex when the length of data was changed 2. fix the default value of tickFormatter
-- fix(cartesian/Line.js): fix Line animation bug
-
-## 0.6.2 (February 9, 2016)
-
-### UI
-
-- feat: use lodash `isEqual` write new pureRender
-
-## 0.6.1 (February 5, 2016)
-
-### UI
-
-- fix(Pie, RadialBarChart): fix the default value of cx, cy, innerRadius, outerRadius
-
-## 0.6.0 (February 5, 2016)
-
-### UI
-
-- refactor: rename AdaptionWrapper to ResponsiveContainer
-- refactor: delete some repeated codes, and use polarToCartesian in PolarUtils
-- fix: update the defaultProps of cx, cy, innerRadius, outerRadius
-- fix(Sector, AdaptionWrapper):1. fix the bug of Sector when innerRadius is 0 2. fix the bug of unbind event when component is unmounted
-- feat(util): use lodash replace utils
-
-## 0.5.2 (February 4, 2016)
-
-### UI
-
-- fix(RadarChart): fix the bug of unreasonable default value for radius in PolarAngleAxis
-
-### Docs
-
-- chore: change main and jsnext:main in package.json
-
-## 0.5.1 (February 4, 2016)
-
-### UI
-
-- feat: support percentage string in the props(cx, cy, innerRadius, outerRadius) of RadarChart, PieChart, RadialChart
-- fix(PolarRadiusAxis): add props domain
-- refactor(CartesianAxis): remove unneeded props domain
-
-### Docs
-
-- chore: optimize npm script commands
-- chore: update pkg
-
-## 0.5.0 (February 3, 2016)
-
-### UI
-
-- feat(AdaptionWrapper): add AdaptionWrapper to make charts adapt to the size of parent dom
-- refactor: directory structure adjustment
-- fix(LineChart, CartesianChart): 1.fix the bug of margin when only part of the attributes are specified 2.fix the bug of number axis when domain is specified 3.fix the bug of category number when no dataKey is specified 4.format the code in README.md
-- refactor(treemap): support tree structure data; changed props that pass to shape
-
-### Test
-
-- test: 1.rename some test files 2.add test case of LodashUtil
-- test(treemap): modified treemap test
-
-### Docs
-
-- deps: add dependence oui-dom-utils
-- chore(README.md): add syntax highlighting to the readme
-- chore(package.json): add keyword react-component
-
-## 0.4.9 (February 2, 2016)
-
-### UI
-
-- refactor(CartesianAxis, PolarAngleAxis): change props name "orient" to "orientation"
-- refactor(Line, Bar, Pie): refactor animation using new react-smooth
-- refactor(Pie, RidalBar): remove the props clockWise, and add the props endAngle
-
-### Test
-
-- test(Line, Bar, Radar, Scatter): add test case
-
-## 0.4.7 (February 1, 2016)
-
-### UI
-
-- refactor(RadarChart, Radar, PolarAngleAxis, PolarRadiusAxis): refactor the components of Radar
-- refactor(classNames): refactor the method of package a className
-- refactor(Pie): add nameKey in Pie
-
-## 0.4.6 (January 29, 2016)
-
-### UI
-
-- refactor(Legend): refactor the legend in all the charts, change the location method of legend
-- feat(radar): add new RadarChart with the new component used in Chart, like PolarAngleAxis PolarRadiusAxis PolarGrid Polygon ex
-
-### Test
-
-- feat(test): add test for charts, chartWrappers, components, and shapes
-
-## 0.4.5 (January 29, 2016)
-
-### UI
-
-- fix(Curve): fix the bug of curve defined function
-- fix(ComposedChart): fix the bug of bar position when a line and a bar display a same group of data.
-- chore(webpack.config.js): add react, react-dom, react-dom-server to external
-- deps(react, react-dom): update version to v0.14.7
-
-## 0.4.4 (January 28, 2016)
-
-### Dev
-
-- chore(webpack.config.js): add build command
-
-## 0.4.3 (January 28, 2016)
-
-### UI
-
-- deps(recharts-scale, react-smooth): update version of recharts-scale and react-smooth
-- refactor(Bar, RadialBar, TreemapChart, Tooltip): rename the props customContent
-
-## 0.4.2 (January 28, 2016)
-
-### UI
-
-- Add support of stack value in BarChart, AreaChart, ComposedChart
-
-## 0.4.1 (January 27, 2016)
-
-### UI
-
-- Change name of the props in Tooltip, Legend
-- Fix the bug of customized label element in CartesianAxis
-- Remove repeated, meaningless constructor functions
-
-## 0.4.0 (January 26, 2016)
-
-### UI
-
-- Refactor some components, include CartesianAxis, Legend, Tooltip etc, to unify some props name.
Index: de_modules/recharts/CONTRIBUTING.md
===================================================================
--- node_modules/recharts/CONTRIBUTING.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-# Contributing to Recharts
-
-We'd love for you to contribute to our source code and to make Recharts even better than it is today!
-
-If you want to know how to develop then check out the [Development Guide](/DEVELOPING.md).
-
-Here are the guidelines we'd like you to follow:
-
-## Ongoing Initiatives
-
-We use Github Discussion to organize our discussion along new initiatives and organize ourselves. Please do check the [announcements](https://github.com/recharts/recharts/discussions/categories/announcements) section for an overview of recent initiatives.
-
-Also feel free to join us on Slack: https://recharts.slack.com/archives/C042Q5K5UDC
-
-## <a name="issues"></a>Issues and Bugs
-
-### Where to Find Known Issues
-
-We will be using [GitHub Issues](https://github.com/recharts/recharts/issues) for our bugs and feature requests. We will keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn't already exist.
-
-### Reporting New Issues
-
-The best way to get your bug fixed is to provide a reduced test case. codesandbox provide a way to give live examples. You can fork our example in [recharts.github.io](https://recharts.github.io/) to show your case.
-
-## <a name="testing"></a>Testing
-
-We do cherish tests. They help us move swiftly, and release with confidence.
-In our repo, you will find three types of tests: Unit tests, rendering tests with RTL, and user interaction tests in storybook.
-Wherever possible we prefer the simplest tests - unit tests. Only where needed / useful we would use RTL or storybook tests.
-
-### Unit tests
-
-When writing new code, aim for 100% unit test code coverage.
-
-When implementing a new feature we would prefer to extract pure helper function for data processing.
-Such functions are found in a few utils files. An example is `test/util/ShallowEqual.spec.ts`.
-
-Unit testing in recharts has some specialties, please see [Recharts unit tests README](test/README.md) for more information.
-
-### React Testing Library
-
-Some behaviour must be tested upon rendering, such as interactions between components (Line, Tooltip), see `test/component/Tooltip.visibility.spec.tsx` for an example.
-
-### Storybook Test Runner
-
-Storybook also has a great interface for adding tests. By default every story in storybook is a smoke test (rendering without error logs means the test passed). Additionally, it is possible to add actual tests as play functions with an assert to a story. This will often be easier than using React Testing Library, because the natural test debugging tool is Storybook itself. See for example `storybook/stories/Examples/cartesian/ReferenceLine/ReferenceLineIfOverflow.stories.tsx`
-
-### Mutation tests
-
-We have [stryker](https://stryker-mutator.io/docs/) installed and ready to use for mutation testing.
-
-If you want to run mutation test be aware that these may take hours! A single file will take 15 minutes or more.
-
-To run, update the list of checked files in `./stryker.config.mjs` and then run with `npm run test-mutation`.
-
-You will find test output in your console, and also HTML report in the `./reports` folder.
-
-## <a name="pr"></a>Pull Requests
-
-**Working on your first Pull Request?** You can learn how from this _free_ series [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github)
-
-_Before_ submitting a pull request, please make sure the following is done…
-
-- Search [GitHub](https://github.com/recharts/recharts/pulls) for an open or closed Pull Request that relates to your submission. You don't want to duplicate effort.
-
-- Fork the repo and create your branch from `main`.
-- If you have added functionality or changed existing functionality, be sure to add a test. Ideally a unit test for helper function, or a test that includes rendering with RTL.
-- If you've changed APIs, make sure that the stories in Storybook are working as expected.
-- Ensure the test suite passes (`npm run test`).
-- Make sure your code lints (`npm run lint`) - we've done our best to make sure these rules match our internal linting guidelines.
-
-## <a name="code"></a>Code Guide
-
-Our linter will catch most styling issues that may exist in your code.
-You can check the status of your code styling by running: `npm run lint`
-
-However, there are still some styles that the linter cannot pick up. If you are unsure about something, looking at [Airbnb's Style Guide](https://github.com/airbnb/javascript) will guide you in the right direction.
-
-## Types
-
-We use TypeScript for type safety. Some rules to follow:
-
-- Never use `any` type. Implicit or explicit.
-- Prefer `unknown` over `any`. Refine the type.
-- Type your function parameters and return values explicitly, do not rely on implicit any or inference. Exceptions are React components and trivial functions where the types are obvious.
-- Do not use `as` type assertions, ever. The only exception is `as const`.
-
-## <a name="license"></a>License
-
-By contributing to Recharts, you agree that your contributions will be licensed under its MIT license.
Index: de_modules/recharts/DEVELOPING.md
===================================================================
--- node_modules/recharts/DEVELOPING.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,245 +1,0 @@
-This is a development guide.
-If you want to know the guidelines we follow then read [CONTRIBUTING.md](CONTRIBUTING.md).
-
-# Setup development environment
-
-```sh
-git clone https://github.com/recharts/recharts.git
-cd recharts
-npm install # the right Node version can be found in .nvmrc file
-```
-
-# Linting and types
-
-You may also want to enable ESLint and Prettier configuration in your favourite IDE.
-
-```sh
-$ npm run lint
-$ npm run check-types
-```
-
-## Import restrictions
-
-The project enforces that all imports from `recharts` must use the public API entry point. Imports from internal paths like `recharts/types/*` or `recharts/src/*` are not allowed and will fail the linter.
-
-**Good:**
-
-```typescript
-import { TooltipIndex, DataKey, BarRectangleItem } from 'recharts';
-```
-
-**Bad:**
-
-```typescript
-import { TooltipIndex } from 'recharts/types/state/tooltipSlice'; // ❌ Will fail lint
-import { DataKey } from 'recharts/src/util/types'; // ❌ Will fail lint
-```
-
-This ensures that consumers of the library only depend on stable, public APIs.
-
-# Automated testing
-
-## Running unit tests
-
-Most unit tests are in the `test` directory, some others are in `www/test`.
-
-Run all tests:
-
-```sh
-$ npm run test
-```
-
-Run a specific test file:
-
-```sh
-$ npm run test -- path/to/TestFile.spec.tsx
-```
-
-## Running mutation tests
-
-Mutation tests may take several hours to complete.
-You may want to first open `./stryker.config.mjs` and set the `mutate` property to a specific file or directory
-that you want to test. That may take 5-10 minutes to run.
-
-Mutation tests do not run in CI.
-
-```sh
-$ npm run test-mutation
-```
-
-## Storybook
-
-To run the Storybook UI:
-
-```sh
-$ npm run storybook
-```
-
-and then browse to http://localhost:6006.
-
-While the storybook is running:
-
-```sh
-$ npm run test-storybook
-```
-
-## Run visual regression tests (using playwright)
-
-### Prerequisites
-
-Playwright tests are running inside Docker. You will need to have Docker installed and running.
-See https://docs.docker.com/get-started/get-docker/. You do not need Docker account or login.
-
-You only need to do this once.
-
-### Build the Docker image
-
-This takes two or three minutes to complete.
-You will need to re-build every time you make a change to dependencies in `package.json`.
-
-```sh
-$ npm run test-vr:prepare
-```
-
-### Run the tests
-
-Now, the usual loop. Write a new test, run it, fix it, repeat.
-
-```sh
-$ npm run test-vr
-```
-
-Alternatively, the UI playwright mode is available as well:
-
-```sh
-$ npm run test-vr:ui
-```
-
-If you want to record new snapshots or update the old ones, you can run:
-
-```sh
-$ npm run test-vr:update
-```
-
-You will see new files created in the `test-vr/__snapshots__` directory, please commit them to the repository!
-
-### See VR test results
-
-Open http://localhost:9323 in your browser to see the results of the tests.
-The CLI will tell you to run a "show-report" which is not necessary because there is already a Docker container running
-in the background and serving the report. Just open the URL in your browser.
-
-# Manual testing
-
-## recharts.github.io local run
-
-To manually test Recharts in a real application environment, you can use the `www` directory which contains the source code
-for the Recharts documentation website https://recharts.github.io.
-
-You can add a new example and commit it too!
-
-To run the website locally in dev mode with hot-reloading:
-
-```sh
-$ cd www
-$ npm run start
-```
-
-When running locally, the website pulls the Recharts library from the local filesystem.
-
-When you make changes to the Recharts source code, you need to re-build it for the changes to be reflected in the website:
-
-```sh
-$ cd ..
-$ npm run build
-$ cd www
-```
-
-In production build, the website pulls recharts from npm registry.
-
-## Storybook
-
-You can also use Storybook for manual testing of individual components.
-
-```sh
-$ npm run storybook
-```
-
-When adding new stories, mind that all stories here are also used for automated visual regression tests,
-using Chromatic cloud infrastructure.
-
-Chromatic are very generous and free for open source projects,
-however we already have so many stories that we hit the limit for open source plan in some months.
-
-For this reason, try to keep storybook for high fidelity examples, the ones you want to see published on the website
-and in storybook UI. For low fidelity tests, use unit tests or VR tests instead.
-
-## Playwright UI mode
-
-You can also use Playwright in UI mode for manual testing. This opens a browser window where you can see the tests running,
-and you can see before & after.
-
-```sh
-$ npm run test-vr:ui
-```
-
-# Releases
-
-[Releases](https://github.com/recharts/recharts/releases) are automated via GH Actions - when a new release is created
-in GH, CI will trigger that:
-
-1. Runs a build
-2. Runs tests
-3. Runs `npm publish`
-
-Version increments and tagging are not automated at this time.
-
-## Release testing
-
-Until we can automate more, it should be preferred to test as close to the results of `npm publish` as we possibly can.
-This ensures we don't publish unintended breaking changes. One way to do that is using `yalc` - `npm i -g yalc`.
-
-1. Make your changes in recharts
-2. `yalc publish` in recharts
-3. `yalc add recharts` in your test package (ex: in a vite or webpack reach app with recharts installed, imported, and
-   your recent changes used)
-4. `npm install`
-5. Test a local run, a build, etc.
-
-# Folder structure
-
-Source code:
-
-- `src` - source code for Recharts library
-- `test` - unit tests
-- `test-vr` - visual regression tests (using Playwright)
-- `www` - source code for Recharts documentation website recharts.github.io
-- `storybook` - Storybook stories for Recharts components, and Storybook config+scaffolding
-- `scripts` - helper scripts for development and releases
-- `.husky` and `.github` - git hooks and GitHub Actions workflows for CI
-
-Autogenerated code:
-
-Running `npm run build` generates the following folders:
-
-- `lib` - compiled output of Recharts library in CJS format - published to npm
-- `es6` - compiled output of Recharts library in ESM format - published to npm
-- `umd` - compiled output of Recharts library in UMD format - published to npm
-- `types` - generated TypeScript declaration files - published to npm
-- `build` - output of `tsc` build - we don't use this for anything at all I think
-
-Running `npm run test-coverage` generates:
-
-- `coverage` - code coverage report
-
-Running `npm run test-mutation` generates:
-
-- `reports` - mutation testing report
-
-Running `npm run omnidoc` generates:
-
-- all `www/src/docs/api/*API.tsx` files - these are later used to generate API reference pages on the website on URL `/docs/api/*`
-- all `storybook/stories/API/arg-types/*Args.ts` files - these are later used by Storybook to show props tables for components, and to generate
-  controls for props in Storybook UI
-
-If you want to modify any of the autogenerated code, you need to modify the JSDoc comments and/or TypeScript definitions in the appropriate source files in `src` folder,
Index: de_modules/recharts/LICENSE
===================================================================
--- node_modules/recharts/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-present recharts
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
Index: de_modules/recharts/README.md
===================================================================
--- node_modules/recharts/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-# Recharts
-
-[![storybook](https://raw.githubusercontent.com/storybooks/brand/master/badge/badge-storybook.svg)](https://recharts.github.io/en-US/storybook)
-[![Build Status](https://github.com/recharts/recharts/workflows/Node.js%20CI/badge.svg)](https://github.com/recharts/recharts/actions)
-[![codecov](https://codecov.io/gh/recharts/recharts/graph/badge.svg?token=Bn6L2hrl8T)](https://codecov.io/gh/recharts/recharts)
-[![npm version](https://badge.fury.io/js/recharts.svg)](http://badge.fury.io/js/recharts)
-[![npm downloads](https://img.shields.io/npm/dm/recharts.svg?style=flat-square)](https://www.npmjs.com/package/recharts)
-[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](/LICENSE)
-
-## Introduction
-
-Recharts is a **Redefined** chart library built with [React](https://facebook.github.io/react/) and [D3](http://d3js.org).
-
-The main purpose of this library is to help you to write charts in React applications without any pain. Main principles of Recharts are:
-
-1. **Simply** deploy with React components.
-2. **Native** SVG support, lightweight with minimal dependencies.
-3. **Declarative** components.
-
-Documentation at [recharts.github.io](https://recharts.github.io) and our [storybook](https://recharts.github.io/en-US/storybook)
-
-Also see [the wiki](https://github.com/recharts/recharts/wiki).
-
-All development is done on the `main` branch. The current latest release and storybook documentation reflects what is on the `release` branch.
-
-## Examples
-
-```jsx
-<LineChart width={400} height={400} data={data}>
-  <XAxis dataKey="name" />
-  <Tooltip />
-  <CartesianGrid stroke="#f5f5f5" />
-  <Line type="monotone" dataKey="uv" stroke="#ff7300" />
-  <Line type="monotone" dataKey="pv" stroke="#387908" />
-</LineChart>
-```
-
-All the components of Recharts are clearly separated. The LineChart is composed of x axis, tooltip, grid, and line items, and each of them is an independent React Component. The clear separation and composition of components is one of the principle Recharts follows.
-
-## Installation
-
-### npm
-
-NPM is the easiest and fastest way to get started using Recharts. It is also the recommended installation method when building single-page applications (SPAs). It pairs nicely with a CommonJS module bundler such as Webpack.
-
-```sh
-# latest stable
-$ npm install recharts react-is
-```
-
-`react-is` needs to match the version of your installed `react` package.
-
-### umd
-
-The UMD build is also available on unpkg.com:
-
-```html
-<script src="https://unpkg.com/react/umd/react.production.min.js"></script>
-<script src="https://unpkg.com/react-dom/umd/react-dom.production.min.js"></script>
-<script src="https://unpkg.com/react-is/umd/react-is.production.min.js"></script>
-<script src="https://unpkg.com/recharts/umd/Recharts.min.js"></script>
-```
-
-Then you can find the library on `window.Recharts`.
-
-## Contributing
-
-Recharts is open source. If you want to contribute to the project, please read the [CONTRIBUTING.md](/CONTRIBUTING.md)
-to understand how to contribute to the project and [DEVELOPING.md](/DEVELOPING.md) to set up your development
-environment.
-
-## Thanks
-
-<a href="https://www.chromatic.com/"><img src="https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png" width="153" height="30" alt="Chromatic" /></a>
-
-Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
-
-[![JetBrains logo.](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)](https://jb.gg/OpenSourceSupport)
-
-Thanks to JetBrains for providing OSS development license for their IDEs.
-
-Browser testing via [<img src="https://www.lambdatest.com/blue-logo.png"
-width="250"
-height="45"
-alt="LambdaTest"
-/>](https://www.lambdatest.com/?utm_source=recharts&utm_medium=sponsor)
-
-## License
-
-[MIT](http://opensource.org/licenses/MIT)
-
-Copyright (c) 2015-2024 Recharts Group.
Index: de_modules/recharts/es6/animation/AnimationManager.js
===================================================================
--- node_modules/recharts/es6/animation/AnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/**
- * Represents a single item in the ReactSmoothQueue.
- * The item can be:
- * - A number representing a delay in milliseconds.
- * - An object representing a style change
- * - A StartAnimationFunction that starts eased transition and calls different render
- *      because of course in Recharts we have to have three ways to do everything
- * - An arbitrary function to be executed
- */
-
-export function createAnimateManager(timeoutController) {
-  var currStyle;
-  var handleChange = () => null;
-  var shouldStop = false;
-  var cancelTimeout = null;
-  var setStyle = _style => {
-    if (shouldStop) {
-      return;
-    }
-    if (Array.isArray(_style)) {
-      if (!_style.length) {
-        return;
-      }
-      var styles = _style;
-      var [curr, ...restStyles] = styles;
-      if (typeof curr === 'number') {
-        cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles), curr);
-        return;
-      }
-      setStyle(curr);
-      cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles));
-      return;
-    }
-    if (typeof _style === 'string') {
-      currStyle = _style;
-      handleChange(currStyle);
-    }
-    if (typeof _style === 'object') {
-      currStyle = _style;
-      handleChange(currStyle);
-    }
-    if (typeof _style === 'function') {
-      _style();
-    }
-  };
-  return {
-    stop: () => {
-      shouldStop = true;
-    },
-    start: style => {
-      shouldStop = false;
-      if (cancelTimeout) {
-        cancelTimeout();
-        cancelTimeout = null;
-      }
-      setStyle(style);
-    },
-    subscribe: _handleChange => {
-      handleChange = _handleChange;
-      return () => {
-        handleChange = () => null;
-      };
-    },
-    getTimeoutController: () => timeoutController
-  };
-}
Index: de_modules/recharts/es6/animation/CSSTransitionAnimate.js
===================================================================
--- node_modules/recharts/es6/animation/CSSTransitionAnimate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-import { useCallback, useEffect, useRef, useState } from 'react';
-import { noop } from '../util/DataUtils';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { useAnimationManager } from './useAnimationManager';
-import { getTransitionVal } from './util';
-import { Global } from '../util/Global';
-var defaultProps = {
-  begin: 0,
-  duration: 1000,
-  easing: 'ease',
-  isActive: true,
-  canBegin: true,
-  onAnimationEnd: () => {},
-  onAnimationStart: () => {}
-};
-export function CSSTransitionAnimate(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultProps);
-  var {
-    animationId,
-    from,
-    to,
-    attributeName,
-    isActive: isActiveProp,
-    canBegin,
-    duration,
-    easing,
-    begin,
-    onAnimationEnd,
-    onAnimationStart: onAnimationStartFromProps,
-    children
-  } = props;
-  var isActive = isActiveProp === 'auto' ? !Global.isSsr : isActiveProp;
-  var animationManager = useAnimationManager(animationId + attributeName, props.animationManager);
-  var [style, setStyle] = useState(() => {
-    if (!isActive) {
-      return to;
-    }
-    return from;
-  });
-  var initialized = useRef(false);
-  var onAnimationStart = useCallback(() => {
-    setStyle(from);
-    onAnimationStartFromProps();
-  }, [from, onAnimationStartFromProps]);
-  useEffect(() => {
-    if (!isActive || !canBegin) {
-      return noop;
-    }
-    initialized.current = true;
-    var unsubscribe = animationManager.subscribe(setStyle);
-    animationManager.start([onAnimationStart, begin, to, duration, onAnimationEnd]);
-    return () => {
-      animationManager.stop();
-      if (unsubscribe) {
-        unsubscribe();
-      }
-      onAnimationEnd();
-    };
-  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager, to, from]);
-  if (!isActive) {
-    /*
-     * With isActive=false, the component always renders with the final style, immediately,
-     * and ignores all other props.
-     * Also there is no transition applied.
-     */
-    return children({
-      [attributeName]: to
-    });
-  }
-  if (!canBegin) {
-    return children({
-      [attributeName]: from
-    });
-  }
-  if (initialized.current) {
-    var transition = getTransitionVal([attributeName], duration, easing);
-    return children({
-      transition,
-      [attributeName]: style
-    });
-  }
-  return children({
-    [attributeName]: from
-  });
-}
Index: de_modules/recharts/es6/animation/JavascriptAnimate.js
===================================================================
--- node_modules/recharts/es6/animation/JavascriptAnimate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-import { useEffect, useRef, useState } from 'react';
-import { noop } from '../util/DataUtils';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import configUpdate from './configUpdate';
-import { configEasing } from './easing';
-import { useAnimationManager } from './useAnimationManager';
-import { Global } from '../util/Global';
-var defaultJavascriptAnimateProps = {
-  begin: 0,
-  duration: 1000,
-  easing: 'ease',
-  isActive: true,
-  canBegin: true,
-  onAnimationEnd: () => {},
-  onAnimationStart: () => {}
-};
-var from = {
-  t: 0
-};
-var to = {
-  t: 1
-};
-export function JavascriptAnimate(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultJavascriptAnimateProps);
-  var {
-    isActive: isActiveProp,
-    canBegin,
-    duration,
-    easing,
-    begin,
-    onAnimationEnd,
-    onAnimationStart,
-    children
-  } = props;
-  var isActive = isActiveProp === 'auto' ? !Global.isSsr : isActiveProp;
-  var animationManager = useAnimationManager(props.animationId, props.animationManager);
-  var [style, setStyle] = useState(isActive ? from : to);
-  var stopJSAnimation = useRef(null);
-  useEffect(() => {
-    if (!isActive) {
-      setStyle(to);
-    }
-  }, [isActive]);
-  useEffect(() => {
-    if (!isActive || !canBegin) {
-      return noop;
-    }
-    var startAnimation = configUpdate(from, to, configEasing(easing), duration, setStyle, animationManager.getTimeoutController());
-    var onAnimationActive = () => {
-      stopJSAnimation.current = startAnimation();
-    };
-    animationManager.start([onAnimationStart, begin, onAnimationActive, duration, onAnimationEnd]);
-    return () => {
-      animationManager.stop();
-      if (stopJSAnimation.current) {
-        stopJSAnimation.current();
-      }
-      onAnimationEnd();
-    };
-  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager]);
-  return children(style.t);
-}
Index: de_modules/recharts/es6/animation/configUpdate.js
===================================================================
--- node_modules/recharts/es6/animation/configUpdate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,135 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { getIntersectionKeys, mapObject } from './util';
-export var alpha = (begin, end, k) => begin + (end - begin) * k;
-var needContinue = _ref => {
-  var {
-    from,
-    to
-  } = _ref;
-  return from !== to;
-};
-/*
- * @description: cal new from value and velocity in each stepper
- * @return: { [styleProperty]: { from, to, velocity } }
- */
-var calStepperVals = (easing, preVals, steps) => {
-  var nextStepVals = mapObject((key, val) => {
-    if (needContinue(val)) {
-      var [newX, newV] = easing(val.from, val.to, val.velocity);
-      return _objectSpread(_objectSpread({}, val), {}, {
-        from: newX,
-        velocity: newV
-      });
-    }
-    return val;
-  }, preVals);
-  if (steps < 1) {
-    return mapObject((key, val) => {
-      if (needContinue(val) && nextStepVals[key] != null) {
-        return _objectSpread(_objectSpread({}, val), {}, {
-          velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),
-          from: alpha(val.from, nextStepVals[key].from, steps)
-        });
-      }
-      return val;
-    }, preVals);
-  }
-  return calStepperVals(easing, nextStepVals, steps - 1);
-};
-function createStepperUpdate(from, to, easing, interKeys, render, timeoutController) {
-  var preTime;
-  var stepperStyle = interKeys.reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {
-    [key]: {
-      from: from[key],
-      velocity: 0,
-      to: to[key]
-    }
-  }), {});
-  var getCurrStyle = () => mapObject((key, val) => val.from, stepperStyle);
-  var shouldStopAnimation = () => !Object.values(stepperStyle).filter(needContinue).length;
-  var stopAnimation = null;
-  var stepperUpdate = now => {
-    if (!preTime) {
-      preTime = now;
-    }
-    var deltaTime = now - preTime;
-    var steps = deltaTime / easing.dt;
-    stepperStyle = calStepperVals(easing, stepperStyle, steps);
-    // get union set and add compatible prefix
-    render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle()));
-    preTime = now;
-    if (!shouldStopAnimation()) {
-      stopAnimation = timeoutController.setTimeout(stepperUpdate);
-    }
-  };
-
-  // return start animation method
-  return () => {
-    stopAnimation = timeoutController.setTimeout(stepperUpdate);
-
-    // return stop animation method
-    return () => {
-      var _stopAnimation;
-      (_stopAnimation = stopAnimation) === null || _stopAnimation === void 0 || _stopAnimation();
-    };
-  };
-}
-function createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController) {
-  var stopAnimation = null;
-  var timingStyle = interKeys.reduce((res, key) => {
-    var fromElement = from[key];
-    var toElement = to[key];
-    if (fromElement == null || toElement == null) {
-      return res;
-    }
-    return _objectSpread(_objectSpread({}, res), {}, {
-      [key]: [fromElement, toElement]
-    });
-  }, {});
-  var beginTime;
-  var timingUpdate = now => {
-    if (!beginTime) {
-      beginTime = now;
-    }
-    var t = (now - beginTime) / duration;
-    var currStyle = mapObject((key, val) => alpha(...val, easing(t)), timingStyle);
-
-    // get union set and add compatible prefix
-    render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));
-    if (t < 1) {
-      stopAnimation = timeoutController.setTimeout(timingUpdate);
-    } else {
-      var finalStyle = mapObject((key, val) => alpha(...val, easing(1)), timingStyle);
-      render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));
-    }
-  };
-
-  // return start animation method
-  return () => {
-    stopAnimation = timeoutController.setTimeout(timingUpdate);
-
-    // return stop animation method
-    return () => {
-      var _stopAnimation2;
-      (_stopAnimation2 = stopAnimation) === null || _stopAnimation2 === void 0 || _stopAnimation2();
-    };
-  };
-}
-
-// configure update function
-// eslint-disable-next-line import/no-default-export
-export default (from, to, easing, duration, render, timeoutController) => {
-  var interKeys = getIntersectionKeys(from, to);
-  if (easing == null) {
-    // no animation, just set to final state
-    return () => {
-      render(_objectSpread(_objectSpread({}, from), to));
-      return () => {};
-    };
-  }
-  return easing.isStepper === true ? createStepperUpdate(from, to, easing, interKeys, render, timeoutController) : createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController);
-};
Index: de_modules/recharts/es6/animation/createDefaultAnimationManager.js
===================================================================
--- node_modules/recharts/es6/animation/createDefaultAnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { createAnimateManager } from './AnimationManager';
-import { RequestAnimationFrameTimeoutController } from './timeoutController';
-export function createDefaultAnimationManager() {
-  return createAnimateManager(new RequestAnimationFrameTimeoutController());
-}
Index: de_modules/recharts/es6/animation/easing.js
===================================================================
--- node_modules/recharts/es6/animation/easing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,135 +1,0 @@
-export var ACCURACY = 1e-4;
-var cubicBezierFactor = (c1, c2) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];
-var evaluatePolynomial = (params, t) => params.map((param, i) => param * t ** i).reduce((pre, curr) => pre + curr);
-var cubicBezier = (c1, c2) => t => {
-  var params = cubicBezierFactor(c1, c2);
-  return evaluatePolynomial(params, t);
-};
-var derivativeCubicBezier = (c1, c2) => t => {
-  var params = cubicBezierFactor(c1, c2);
-  var newParams = [...params.map((param, i) => param * i).slice(1), 0];
-  return evaluatePolynomial(newParams, t);
-};
-var parseCubicBezier = easing => {
-  var _easingParts$;
-  var easingParts = easing.split('(');
-  if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {
-    return null;
-  }
-  var numbers = (_easingParts$ = easingParts[1]) === null || _easingParts$ === void 0 || (_easingParts$ = _easingParts$.split(')')[0]) === null || _easingParts$ === void 0 ? void 0 : _easingParts$.split(',');
-  if (numbers == null || numbers.length !== 4) {
-    return null;
-  }
-  var coords = numbers.map(x => parseFloat(x));
-  return [coords[0], coords[1], coords[2], coords[3]];
-};
-var getBezierCoordinates = function getBezierCoordinates() {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-  if (args.length === 1) {
-    switch (args[0]) {
-      case 'linear':
-        return [0.0, 0.0, 1.0, 1.0];
-      case 'ease':
-        return [0.25, 0.1, 0.25, 1.0];
-      case 'ease-in':
-        return [0.42, 0.0, 1.0, 1.0];
-      case 'ease-out':
-        return [0.42, 0.0, 0.58, 1.0];
-      case 'ease-in-out':
-        return [0.0, 0.0, 0.58, 1.0];
-      default:
-        {
-          var easing = parseCubicBezier(args[0]);
-          if (easing) {
-            return easing;
-          }
-        }
-    }
-  }
-  if (args.length === 4) {
-    return args;
-  }
-
-  // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.
-  // Returning linear easing is a safe default.
-  return [0.0, 0.0, 1.0, 1.0];
-};
-var createBezierEasing = (x1, y1, x2, y2) => {
-  var curveX = cubicBezier(x1, x2);
-  var curveY = cubicBezier(y1, y2);
-  var derCurveX = derivativeCubicBezier(x1, x2);
-  var rangeValue = value => {
-    if (value > 1) {
-      return 1;
-    }
-    if (value < 0) {
-      return 0;
-    }
-    return value;
-  };
-  var bezier = _t => {
-    var t = _t > 1 ? 1 : _t;
-    var x = t;
-    for (var i = 0; i < 8; ++i) {
-      var evalT = curveX(x) - t;
-      var derVal = derCurveX(x);
-      if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {
-        return curveY(x);
-      }
-      x = rangeValue(x - evalT / derVal);
-    }
-    return curveY(x);
-  };
-  bezier.isStepper = false;
-  return bezier;
-};
-
-// calculate cubic-bezier using Newton's method
-export var configBezier = function configBezier() {
-  return createBezierEasing(...getBezierCoordinates(...arguments));
-};
-export var configSpring = function configSpring() {
-  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  var {
-    stiff = 100,
-    damping = 8,
-    dt = 17
-  } = config;
-  var stepper = (currX, destX, currV) => {
-    var FSpring = -(currX - destX) * stiff;
-    var FDamping = currV * damping;
-    var newV = currV + (FSpring - FDamping) * dt / 1000;
-    var newX = currV * dt / 1000 + currX;
-    if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {
-      return [destX, 0];
-    }
-    return [newX, newV];
-  };
-  stepper.isStepper = true;
-  stepper.dt = dt;
-  return stepper;
-};
-export var configEasing = easing => {
-  if (typeof easing === 'string') {
-    switch (easing) {
-      case 'ease':
-      case 'ease-in-out':
-      case 'ease-out':
-      case 'ease-in':
-      case 'linear':
-        return configBezier(easing);
-      case 'spring':
-        return configSpring();
-      default:
-        if (easing.split('(')[0] === 'cubic-bezier') {
-          return configBezier(easing);
-        }
-    }
-  }
-  if (typeof easing === 'function') {
-    return easing;
-  }
-  return null;
-};
Index: de_modules/recharts/es6/animation/timeoutController.js
===================================================================
--- node_modules/recharts/es6/animation/timeoutController.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/**
- * Callback type for the timeout function.
- * Receives current time in milliseconds as an argument.
- */
-
-/**
- * A function that, when called, cancels the timeout.
- */
-
-export class RequestAnimationFrameTimeoutController {
-  setTimeout(callback) {
-    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-    var startTime = performance.now();
-    var requestId = null;
-    var executeCallback = now => {
-      if (now - startTime >= delay) {
-        callback(now);
-        // tests fail without the extra if, even when five lines below it's not needed
-        // TODO finish transition to the mocked timeout controller and then remove this condition
-      } else if (typeof requestAnimationFrame === 'function') {
-        requestId = requestAnimationFrame(executeCallback);
-      }
-    };
-    requestId = requestAnimationFrame(executeCallback);
-    return () => {
-      if (requestId != null) {
-        cancelAnimationFrame(requestId);
-      }
-    };
-  }
-}
Index: de_modules/recharts/es6/animation/useAnimationManager.js
===================================================================
--- node_modules/recharts/es6/animation/useAnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { createContext, useContext, useMemo } from 'react';
-import { createDefaultAnimationManager } from './createDefaultAnimationManager';
-export var AnimationManagerContext = /*#__PURE__*/createContext(createDefaultAnimationManager);
-export function useAnimationManager(animationId, animationManagerFromProps) {
-  var contextAnimationManager = useContext(AnimationManagerContext);
-  return useMemo(() => animationManagerFromProps !== null && animationManagerFromProps !== void 0 ? animationManagerFromProps : contextAnimationManager(animationId), [animationId, animationManagerFromProps, contextAnimationManager]);
-}
Index: de_modules/recharts/es6/animation/util.js
===================================================================
--- node_modules/recharts/es6/animation/util.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/*
- * @description: convert camel case to dash case
- * string => string
- */
-export var getDashCase = name => name.replace(/([A-Z])/g, v => "-".concat(v.toLowerCase()));
-export var getTransitionVal = (props, duration, easing) => props.map(prop => "".concat(getDashCase(prop), " ").concat(duration, "ms ").concat(easing)).join(',');
-
-/**
- * Finds the intersection of keys between two objects
- * @param {object} preObj previous object
- * @param {object} nextObj next object
- * @returns an array of keys that exist in both objects
- */
-export var getIntersectionKeys = (preObj, nextObj) => [Object.keys(preObj), Object.keys(nextObj)].reduce((a, b) => a.filter(c => b.includes(c)));
-
-/**
- * Maps an object to another object
- * @param {function} fn function to map
- * @param {object} obj object to map
- * @returns mapped object
- */
-export var mapObject = (fn, obj) => Object.keys(obj).reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {
-  [key]: fn(key, obj[key])
-}), {});
Index: de_modules/recharts/es6/cartesian/Area.js
===================================================================
--- node_modules/recharts/es6/cartesian/Area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,806 +1,0 @@
-var _excluded = ["id"],
-  _excluded2 = ["activeDot", "animationBegin", "animationDuration", "animationEasing", "connectNulls", "dot", "fill", "fillOpacity", "hide", "isAnimationActive", "legendType", "stroke", "xAxisId", "yAxisId"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { PureComponent, useCallback, useMemo, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { Curve } from '../shape/Curve';
-import { Layer } from '../container/Layer';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { Dots } from '../component/Dots';
-import { Global } from '../util/Global';
-import { interpolate, isNan, isNullish, isNumber, noop } from '../util/DataUtils';
-import { getCateCoordinateOfLine, getNormalizedStackId, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
-import { isClipDot } from '../util/ReactUtils';
-import { ActivePoints } from '../component/ActivePoints';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';
-import { selectArea } from '../state/selectors/areaSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { useCartesianChartLayout, useChartLayout } from '../context/chartLayoutContext';
-import { useChartName } from '../state/selectors/selectors';
-import { SetLegendPayload } from '../state/SetLegendPayload';
-import { useAppSelector } from '../state/hooks';
-import { useAnimationId } from '../util/useAnimationId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
-import { usePlotArea } from '../hooks';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { propsAreEqual } from '../util/propsAreEqual';
-
-/**
- * @inline
- */
-
-/**
- * Our base value array has payload in it, and we expose it externally too.
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-function getLegendItemColor(stroke, fill) {
-  return stroke && stroke !== 'none' ? stroke : fill;
-}
-var computeLegendPayloadFromAreaData = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: getLegendItemColor(stroke, fill),
-    value: getTooltipNameProp(name, dataKey),
-    payload: props
-  }];
-};
-var SetAreaTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    data,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: getLegendItemColor(stroke, fill),
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function AreaDotsWrapper(_ref2) {
-  var {
-    clipPathId,
-    points,
-    props
-  } = _ref2;
-  var {
-    needClip,
-    dot,
-    dataKey
-  } = props;
-  var areaProps = svgPropertiesNoEvents(props);
-  return /*#__PURE__*/React.createElement(Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-area-dots",
-    dotClassName: "recharts-area-dot",
-    dataKey: dataKey,
-    baseProps: areaProps,
-    needClip: needClip,
-    clipPathId: clipPathId
-  });
-}
-function AreaLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    children,
-    points
-  } = _ref3;
-  var labelListEntries = points.map(point => {
-    var _point$x, _point$y;
-    var viewBox = {
-      x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-      y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-      width: 0,
-      lowerWidth: 0,
-      upperWidth: 0,
-      height: 0
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: point.value,
-      payload: point.payload,
-      parentViewBox: undefined,
-      viewBox,
-      fill: undefined
-    });
-  });
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticArea(_ref4) {
-  var {
-    points,
-    baseLine,
-    needClip,
-    clipPathId,
-    props
-  } = _ref4;
-  var {
-    layout,
-    type,
-    stroke,
-    connectNulls,
-    isRange
-  } = props;
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var allOtherProps = svgPropertiesNoEvents(propsWithoutId);
-  var propsWithEvents = svgPropertiesAndEvents(propsWithoutId);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(Layer, {
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined
-  }, /*#__PURE__*/React.createElement(Curve, _extends({}, propsWithEvents, {
-    id: id,
-    points: points,
-    connectNulls: connectNulls,
-    type: type,
-    baseLine: baseLine,
-    layout: layout,
-    stroke: "none",
-    className: "recharts-area-area"
-  })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, allOtherProps, {
-    className: "recharts-area-curve",
-    layout: layout,
-    type: type,
-    connectNulls: connectNulls,
-    fill: "none",
-    points: points
-  })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, allOtherProps, {
-    className: "recharts-area-curve",
-    layout: layout,
-    type: type,
-    connectNulls: connectNulls,
-    fill: "none",
-    points: baseLine
-  }))), /*#__PURE__*/React.createElement(AreaDotsWrapper, {
-    points: points,
-    props: propsWithoutId,
-    clipPathId: clipPathId
-  }));
-}
-function VerticalRect(_ref5) {
-  var _points$, _points;
-  var {
-    alpha,
-    baseLine,
-    points,
-    strokeWidth
-  } = _ref5;
-  var startY = (_points$ = points[0]) === null || _points$ === void 0 ? void 0 : _points$.y;
-  var endY = (_points = points[points.length - 1]) === null || _points === void 0 ? void 0 : _points.y;
-  if (!isWellBehavedNumber(startY) || !isWellBehavedNumber(endY)) {
-    return null;
-  }
-  var height = alpha * Math.abs(startY - endY);
-  var maxX = Math.max(...points.map(entry => entry.x || 0));
-  if (isNumber(baseLine)) {
-    maxX = Math.max(baseLine, maxX);
-  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {
-    maxX = Math.max(...baseLine.map(entry => entry.x || 0), maxX);
-  }
-  if (isNumber(maxX)) {
-    return /*#__PURE__*/React.createElement("rect", {
-      x: 0,
-      y: startY < endY ? startY : startY - height,
-      width: maxX + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1),
-      height: Math.floor(height)
-    });
-  }
-  return null;
-}
-function HorizontalRect(_ref6) {
-  var _points$2, _points2;
-  var {
-    alpha,
-    baseLine,
-    points,
-    strokeWidth
-  } = _ref6;
-  var startX = (_points$2 = points[0]) === null || _points$2 === void 0 ? void 0 : _points$2.x;
-  var endX = (_points2 = points[points.length - 1]) === null || _points2 === void 0 ? void 0 : _points2.x;
-  if (!isWellBehavedNumber(startX) || !isWellBehavedNumber(endX)) {
-    return null;
-  }
-  var width = alpha * Math.abs(startX - endX);
-  var maxY = Math.max(...points.map(entry => entry.y || 0));
-  if (isNumber(baseLine)) {
-    maxY = Math.max(baseLine, maxY);
-  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {
-    maxY = Math.max(...baseLine.map(entry => entry.y || 0), maxY);
-  }
-  if (isNumber(maxY)) {
-    return /*#__PURE__*/React.createElement("rect", {
-      x: startX < endX ? startX : startX - width,
-      y: 0,
-      width: width,
-      height: Math.floor(maxY + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1))
-    });
-  }
-  return null;
-}
-function ClipRect(_ref7) {
-  var {
-    alpha,
-    layout,
-    points,
-    baseLine,
-    strokeWidth
-  } = _ref7;
-  if (layout === 'vertical') {
-    return /*#__PURE__*/React.createElement(VerticalRect, {
-      alpha: alpha,
-      points: points,
-      baseLine: baseLine,
-      strokeWidth: strokeWidth
-    });
-  }
-  return /*#__PURE__*/React.createElement(HorizontalRect, {
-    alpha: alpha,
-    points: points,
-    baseLine: baseLine,
-    strokeWidth: strokeWidth
-  });
-}
-function AreaWithAnimation(_ref8) {
-  var {
-    needClip,
-    clipPathId,
-    props,
-    previousPointsRef,
-    previousBaselineRef
-  } = _ref8;
-  var {
-    points,
-    baseLine,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationStart,
-    onAnimationEnd
-  } = props;
-  var animationInput = useMemo(() => ({
-    points,
-    baseLine
-  }), [points, baseLine]);
-  var animationId = useAnimationId(animationInput, 'recharts-area-');
-  var layout = useCartesianChartLayout();
-  var [isAnimating, setIsAnimating] = useState(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  if (layout == null) {
-    return null;
-  }
-  var prevPoints = previousPointsRef.current;
-  var prevBaseLine = previousBaselineRef.current;
-  return /*#__PURE__*/React.createElement(AreaLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    if (prevPoints) {
-      var prevPointsDiffFactor = prevPoints.length / points.length;
-      var stepPoints =
-      /*
-       * Here it is important that at the very end of the animation, on the last frame,
-       * we render the original points without any interpolation.
-       * This is needed because the code above is checking for reference equality to decide if the animation should run
-       * and if we create a new array instance (even if the numbers were the same)
-       * then we would break animations.
-       */
-      t === 1 ? points : points.map((entry, index) => {
-        var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-        if (prevPoints[prevPointIndex]) {
-          var prev = prevPoints[prevPointIndex];
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: interpolate(prev.x, entry.x, t),
-            y: interpolate(prev.y, entry.y, t)
-          });
-        }
-        return entry;
-      });
-      var stepBaseLine;
-      if (isNumber(baseLine)) {
-        stepBaseLine = interpolate(prevBaseLine, baseLine, t);
-      } else if (isNullish(baseLine) || isNan(baseLine)) {
-        stepBaseLine = interpolate(prevBaseLine, 0, t);
-      } else {
-        stepBaseLine = baseLine.map((entry, index) => {
-          var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-          if (Array.isArray(prevBaseLine) && prevBaseLine[prevPointIndex]) {
-            var prev = prevBaseLine[prevPointIndex];
-            return _objectSpread(_objectSpread({}, entry), {}, {
-              x: interpolate(prev.x, entry.x, t),
-              y: interpolate(prev.y, entry.y, t)
-            });
-          }
-          return entry;
-        });
-      }
-      if (t > 0) {
-        /*
-         * We need to keep the refs in the parent component because we need to remember the last shape of the animation
-         * even if AreaWithAnimation is unmounted as that happens when changing props.
-         *
-         * And we need to update the refs here because here is where the interpolation is computed.
-         * Eslint doesn't like changing function arguments, but we need it so here is an eslint-disable.
-         */
-        // eslint-disable-next-line no-param-reassign
-        previousPointsRef.current = stepPoints;
-        // eslint-disable-next-line no-param-reassign
-        previousBaselineRef.current = stepBaseLine;
-      }
-      return /*#__PURE__*/React.createElement(StaticArea, {
-        points: stepPoints,
-        baseLine: stepBaseLine,
-        needClip: needClip,
-        clipPathId: clipPathId,
-        props: props
-      });
-    }
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = points;
-      // eslint-disable-next-line no-param-reassign
-      previousBaselineRef.current = baseLine;
-    }
-    return /*#__PURE__*/React.createElement(Layer, null, isAnimationActive && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
-      id: "animationClipPath-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement(ClipRect, {
-      alpha: t,
-      points: points,
-      baseLine: baseLine,
-      layout: layout,
-      strokeWidth: props.strokeWidth
-    }))), /*#__PURE__*/React.createElement(Layer, {
-      clipPath: "url(#animationClipPath-".concat(clipPathId, ")")
-    }, /*#__PURE__*/React.createElement(StaticArea, {
-      points: points,
-      baseLine: baseLine,
-      needClip: needClip,
-      clipPathId: clipPathId,
-      props: props
-    })));
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-
-/*
- * This components decides if the area should be animated or not.
- * It also holds the state of the animation.
- */
-function RenderArea(_ref9) {
-  var {
-    needClip,
-    clipPathId,
-    props
-  } = _ref9;
-  /*
-   * These two must be refs, not state!
-   * Because we want to store the most recent shape of the animation in case we have to interrupt the animation;
-   * that happens when user initiates another animation before the current one finishes.
-   *
-   * If this was a useState, then every step in the animation would trigger a re-render.
-   * So, useRef it is.
-   */
-  var previousPointsRef = useRef(null);
-  var previousBaselineRef = useRef();
-  return /*#__PURE__*/React.createElement(AreaWithAnimation, {
-    needClip: needClip,
-    clipPathId: clipPathId,
-    props: props,
-    previousPointsRef: previousPointsRef,
-    previousBaselineRef: previousBaselineRef
-  });
-}
-class AreaWithState extends PureComponent {
-  render() {
-    var {
-      hide,
-      dot,
-      points,
-      className,
-      top,
-      left,
-      needClip,
-      xAxisId,
-      yAxisId,
-      width,
-      height,
-      id,
-      baseLine,
-      zIndex
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = clsx('recharts-area', className);
-    var clipPathId = id;
-    var {
-      r,
-      strokeWidth
-    } = getRadiusAndStrokeWidthFromDot(dot);
-    var clipDot = isClipDot(dot);
-    var dotSize = r * 2 + strokeWidth;
-    var activePointsClipPath = needClip ? "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")") : undefined;
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: zIndex
-    }, /*#__PURE__*/React.createElement(Layer, {
-      className: layerClass
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    }), !clipDot && /*#__PURE__*/React.createElement("clipPath", {
-      id: "clipPath-dots-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement("rect", {
-      x: left - dotSize / 2,
-      y: top - dotSize / 2,
-      width: width + dotSize,
-      height: height + dotSize
-    }))), /*#__PURE__*/React.createElement(RenderArea, {
-      needClip: needClip,
-      clipPathId: clipPathId,
-      props: this.props
-    })), /*#__PURE__*/React.createElement(ActivePoints, {
-      points: points,
-      mainColor: getLegendItemColor(this.props.stroke, this.props.fill),
-      itemDataKey: this.props.dataKey,
-      activeDot: this.props.activeDot,
-      clipPath: activePointsClipPath
-    }), this.props.isRange && Array.isArray(baseLine) && /*#__PURE__*/React.createElement(ActivePoints, {
-      points: baseLine,
-      mainColor: getLegendItemColor(this.props.stroke, this.props.fill),
-      itemDataKey: this.props.dataKey,
-      activeDot: this.props.activeDot,
-      clipPath: activePointsClipPath
-    }));
-  }
-}
-export var defaultAreaProps = {
-  activeDot: true,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  connectNulls: false,
-  dot: false,
-  fill: '#3182bd',
-  fillOpacity: 0.6,
-  hide: false,
-  isAnimationActive: 'auto',
-  legendType: 'line',
-  stroke: '#3182bd',
-  strokeWidth: 1,
-  type: 'linear',
-  label: false,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: DefaultZIndexes.area
-};
-function AreaImpl(props) {
-  var _useAppSelector;
-  var _resolveDefaultProps = resolveDefaultProps(props, defaultAreaProps),
-    {
-      activeDot,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      connectNulls,
-      dot,
-      fill,
-      fillOpacity,
-      hide,
-      isAnimationActive,
-      legendType,
-      stroke,
-      xAxisId,
-      yAxisId
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded2);
-  var layout = useChartLayout();
-  var chartName = useChartName();
-  var {
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  var isPanorama = useIsPanorama();
-  var {
-    points,
-    isRange,
-    baseLine
-  } = (_useAppSelector = useAppSelector(state => selectArea(state, props.id, isPanorama))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};
-  var plotArea = usePlotArea();
-  if (layout !== 'horizontal' && layout !== 'vertical' || plotArea == null) {
-    // Can't render Area in an unsupported layout
-    return null;
-  }
-  if (chartName !== 'AreaChart' && chartName !== 'ComposedChart') {
-    // There is nothing stopping us from rendering Area in other charts, except for historical reasons. Do we want to allow that?
-    return null;
-  }
-  var {
-    height,
-    width,
-    x: left,
-    y: top
-  } = plotArea;
-  if (!points || !points.length) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(AreaWithState, _extends({}, everythingElse, {
-    activeDot: activeDot,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    baseLine: baseLine,
-    connectNulls: connectNulls,
-    dot: dot,
-    fill: fill,
-    fillOpacity: fillOpacity,
-    height: height,
-    hide: hide,
-    layout: layout,
-    isAnimationActive: isAnimationActive === 'auto' ? !Global.isSsr : isAnimationActive,
-    isRange: isRange,
-    legendType: legendType,
-    needClip: needClip,
-    points: points,
-    stroke: stroke,
-    width: width,
-    left: left,
-    top: top,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId
-  }));
-}
-export var getBaseValue = (layout, chartBaseValue, itemBaseValue, xAxis, yAxis) => {
-  // The baseValue can be defined both on the AreaChart, and on the Area.
-  // The value for the item takes precedence.
-  var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;
-  if (isNumber(baseValue)) {
-    return baseValue;
-  }
-  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
-  // @ts-expect-error d3scale .domain() returns unknown, Math.max expects number
-  var domain = numericAxis.scale.domain();
-  if (numericAxis.type === 'number') {
-    var domainMax = Math.max(domain[0], domain[1]);
-    var domainMin = Math.min(domain[0], domain[1]);
-    if (baseValue === 'dataMin') {
-      return domainMin;
-    }
-    if (baseValue === 'dataMax') {
-      return domainMax;
-    }
-    return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);
-  }
-  if (baseValue === 'dataMin') {
-    return domain[0];
-  }
-  if (baseValue === 'dataMax') {
-    return domain[1];
-  }
-  return domain[0];
-};
-export function computeArea(_ref0) {
-  var {
-    areaSettings: {
-      connectNulls,
-      baseValue: itemBaseValue,
-      dataKey
-    },
-    stackedData,
-    layout,
-    chartBaseValue,
-    xAxis,
-    yAxis,
-    displayedData,
-    dataStartIndex,
-    xAxisTicks,
-    yAxisTicks,
-    bandSize
-  } = _ref0;
-  var hasStack = stackedData && stackedData.length;
-  var baseValue = getBaseValue(layout, chartBaseValue, itemBaseValue, xAxis, yAxis);
-  var isHorizontalLayout = layout === 'horizontal';
-  var isRange = false;
-  var points = displayedData.map((entry, index) => {
-    var _valueAsArray$, _valueAsArray, _xAxis$scale$map;
-    var valueAsArray;
-    if (hasStack) {
-      valueAsArray = stackedData[dataStartIndex + index];
-    } else {
-      var rawValue = getValueByDataKey(entry, dataKey);
-      if (!Array.isArray(rawValue)) {
-        // @ts-expect-error getValueByDataKey is not checking its return value
-        valueAsArray = [baseValue, rawValue];
-      } else {
-        // @ts-expect-error getValueByDataKey is not checking its return value
-        valueAsArray = rawValue;
-        isRange = true;
-      }
-    }
-    var value1 = (_valueAsArray$ = (_valueAsArray = valueAsArray) === null || _valueAsArray === void 0 ? void 0 : _valueAsArray[1]) !== null && _valueAsArray$ !== void 0 ? _valueAsArray$ : null;
-    var isBreakPoint = value1 == null || hasStack && !connectNulls && getValueByDataKey(entry, dataKey) == null;
-    if (isHorizontalLayout) {
-      var _yAxis$scale$map;
-      return {
-        x: getCateCoordinateOfLine({
-          axis: xAxis,
-          ticks: xAxisTicks,
-          bandSize,
-          entry,
-          index
-        }),
-        y: isBreakPoint ? null : (_yAxis$scale$map = yAxis.scale.map(value1)) !== null && _yAxis$scale$map !== void 0 ? _yAxis$scale$map : null,
-        value: valueAsArray,
-        payload: entry
-      };
-    }
-    return {
-      x: isBreakPoint ? null : (_xAxis$scale$map = xAxis.scale.map(value1)) !== null && _xAxis$scale$map !== void 0 ? _xAxis$scale$map : null,
-      y: getCateCoordinateOfLine({
-        axis: yAxis,
-        ticks: yAxisTicks,
-        bandSize,
-        entry,
-        index
-      }),
-      value: valueAsArray,
-      payload: entry
-    };
-  });
-  var baseLine;
-  if (hasStack || isRange) {
-    baseLine = points.map(entry => {
-      var _xAxis$scale$map2;
-      var x = Array.isArray(entry.value) ? entry.value[0] : null;
-      if (isHorizontalLayout) {
-        var _yAxis$scale$map2;
-        return {
-          x: entry.x,
-          y: x != null && entry.y != null ? (_yAxis$scale$map2 = yAxis.scale.map(x)) !== null && _yAxis$scale$map2 !== void 0 ? _yAxis$scale$map2 : null : null,
-          payload: entry.payload
-        };
-      }
-      return {
-        x: x != null ? (_xAxis$scale$map2 = xAxis.scale.map(x)) !== null && _xAxis$scale$map2 !== void 0 ? _xAxis$scale$map2 : null : null,
-        y: entry.y,
-        payload: entry.payload
-      };
-    });
-  } else {
-    baseLine = isHorizontalLayout ? yAxis.scale.map(baseValue) : xAxis.scale.map(baseValue);
-  }
-  return {
-    points,
-    baseLine: baseLine !== null && baseLine !== void 0 ? baseLine : 0,
-    isRange
-  };
-}
-function AreaFn(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultAreaProps);
-  var isPanorama = useIsPanorama();
-  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "area"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromAreaData(props)
-  }), /*#__PURE__*/React.createElement(SetAreaTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    data: props.data,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {
-    type: "area",
-    id: id,
-    data: props.data,
-    dataKey: props.dataKey,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    stackId: getNormalizedStackId(props.stackId),
-    hide: props.hide,
-    barSize: undefined,
-    baseValue: props.baseValue,
-    isPanorama: isPanorama,
-    connectNulls: props.connectNulls
-  }), /*#__PURE__*/React.createElement(AreaImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @consumes CartesianChartContext
- */
-export var Area = /*#__PURE__*/React.memo(AreaFn, propsAreEqual);
-Area.displayName = 'Area';
Index: de_modules/recharts/es6/cartesian/Bar.js
===================================================================
--- node_modules/recharts/es6/cartesian/Bar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,705 +1,0 @@
-var _excluded = ["onMouseEnter", "onMouseLeave", "onClick"],
-  _excluded2 = ["value", "background", "tooltipPosition"],
-  _excluded3 = ["id"],
-  _excluded4 = ["onMouseEnter", "onClick", "onMouseLeave"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { PureComponent, useCallback, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { Cell } from '../component/Cell';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { interpolate, isNan, mathSign, noop } from '../util/DataUtils';
-import { findAllByType } from '../util/ReactUtils';
-import { getBaseValueOfBar, getCateCoordinateOfBar, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { BarRectangle, minPointSizeCallback } from '../util/BarUtils';
-import { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { SetErrorBarContext } from '../context/ErrorBarContext';
-import { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';
-import { useChartLayout } from '../context/chartLayoutContext';
-import { selectBarRectangles } from '../state/selectors/barSelectors';
-import { useAppSelector } from '../state/hooks';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';
-import { SetLegendPayload } from '../state/SetLegendPayload';
-import { useAnimationId } from '../util/useAnimationId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';
-import { propsAreEqual } from '../util/propsAreEqual';
-import { BarStackClipLayer, useStackId } from './BarStack';
-var computeLegendPayloadFromBarData = props => {
-  var {
-    dataKey,
-    name,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: fill,
-    value: getTooltipNameProp(name, dataKey),
-    payload: props
-  }];
-};
-var SetBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: undefined,
-    getPosition: noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function BarBackground(props) {
-  var activeIndex = useAppSelector(selectActiveTooltipIndex);
-  var {
-    data,
-    dataKey,
-    background: backgroundFromProps,
-    allOtherBarProps
-  } = props;
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onMouseLeave: onMouseLeaveFromProps,
-      onClick: onItemClickFromProps
-    } = allOtherBarProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);
-
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, allOtherBarProps.id);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, allOtherBarProps.id);
-  if (!backgroundFromProps || data == null) {
-    return null;
-  }
-  var backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)
-  }, data.map((entry, i) => {
-    var {
-        value,
-        background: backgroundFromDataEntry,
-        tooltipPosition
-      } = entry,
-      rest = _objectWithoutProperties(entry, _excluded2);
-    if (!backgroundFromDataEntry) {
-      return null;
-    }
-
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onMouseEnter = onMouseEnterFromContext(entry, i);
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onMouseLeave = onMouseLeaveFromContext(entry, i);
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onClick = onClickFromContext(entry, i);
-    var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      option: backgroundFromProps,
-      isActive: String(i) === activeIndex
-    }, rest), {}, {
-      // @ts-expect-error backgroundProps is contributing unknown props
-      fill: '#eee'
-    }, backgroundFromDataEntry), backgroundProps), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {
-      onMouseEnter,
-      onMouseLeave,
-      onClick,
-      dataKey,
-      index: i,
-      className: 'recharts-bar-background-rectangle'
-    });
-    return /*#__PURE__*/React.createElement(BarRectangle, _extends({
-      key: "background-bar-".concat(i)
-    }, barRectangleProps));
-  }));
-}
-function BarLabelListProvider(_ref2) {
-  var {
-    showLabels,
-    children,
-    rects
-  } = _ref2;
-  var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {
-    var viewBox = {
-      x: entry.x,
-      y: entry.y,
-      width: entry.width,
-      lowerWidth: entry.width,
-      upperWidth: entry.width,
-      height: entry.height
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: entry.value,
-      payload: entry.payload,
-      parentViewBox: entry.parentViewBox,
-      viewBox,
-      fill: entry.fill
-    });
-  });
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function BarRectangleWithActiveState(props) {
-  var {
-    shape,
-    activeBar,
-    baseProps,
-    entry,
-    index,
-    dataKey
-  } = props;
-  var activeIndex = useAppSelector(selectActiveTooltipIndex);
-  var activeDataKey = useAppSelector(selectActiveTooltipDataKey);
-  /*
-   * Bars support stacking, meaning that there can be multiple bars at the same x value.
-   * With Tooltip shared=false we only want to highlight the currently active Bar, not all.
-   *
-   * Also, if the tooltip is shared, we want to highlight all bars at the same x value
-   * regardless of the dataKey.
-   *
-   * With shared Tooltip, the activeDataKey is undefined.
-   */
-  var isActive = activeBar && String(index) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);
-  var option = isActive ? activeBar : shape;
-  if (isActive) {
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: DefaultZIndexes.activeBar
-    }, /*#__PURE__*/React.createElement(BarStackClipLayer, {
-      index: index
-    }, /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {
-      name: String(baseProps.name)
-    }, entry, {
-      isActive: isActive,
-      option: option,
-      index: index,
-      dataKey: dataKey
-    }))));
-  }
-  return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {
-    name: String(baseProps.name)
-  }, entry, {
-    isActive: isActive,
-    option: option,
-    index: index,
-    dataKey: dataKey
-  }));
-}
-function BarRectangleNeverActive(props) {
-  var {
-    shape,
-    baseProps,
-    entry,
-    index,
-    dataKey
-  } = props;
-  return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {
-    name: String(baseProps.name)
-  }, entry, {
-    isActive: false,
-    option: shape,
-    index: index,
-    dataKey: dataKey
-  }));
-}
-function BarRectangles(_ref3) {
-  var _svgPropertiesNoEvent;
-  var {
-    data,
-    props
-  } = _ref3;
-  var _ref4 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},
-    {
-      id
-    } = _ref4,
-    baseProps = _objectWithoutProperties(_ref4, _excluded3);
-  var {
-    shape,
-    dataKey,
-    activeBar
-  } = props;
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = props,
-    restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);
-
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);
-  if (!data) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {
-    return /*#__PURE__*/React.createElement(BarStackClipLayer, _extends({
-      index: i
-      // https://github.com/recharts/recharts/issues/5415
-      ,
-      key: "rectangle-".concat(entry === null || entry === void 0 ? void 0 : entry.x, "-").concat(entry === null || entry === void 0 ? void 0 : entry.y, "-").concat(entry === null || entry === void 0 ? void 0 : entry.value, "-").concat(i),
-      className: "recharts-bar-rectangle"
-    }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {
-      shape: shape,
-      activeBar: activeBar,
-      baseProps: baseProps,
-      entry: entry,
-      index: i,
-      dataKey: dataKey
-    }) :
-    /*#__PURE__*/
-    /*
-     * If the `activeBar` prop is falsy, then let's call the variant without hooks.
-     * Using the `selectActiveTooltipIndex` selector is usually fast
-     * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.
-     * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.
-     * So let's just skip the hooks altogether. That way, React can skip rendering the component,
-     * and can skip the tree reconciliation for its children too.
-     * Because we can't call hooks conditionally, we need to have a separate component for that.
-     */
-    React.createElement(BarRectangleNeverActive, {
-      shape: shape,
-      baseProps: baseProps,
-      entry: entry,
-      index: i,
-      dataKey: dataKey
-    }));
-  }));
-}
-function RectanglesWithAnimation(_ref5) {
-  var {
-    props,
-    previousRectanglesRef
-  } = _ref5;
-  var {
-    data,
-    layout,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevData = previousRectanglesRef.current;
-  var animationId = useAnimationId(props, 'recharts-bar-');
-  var [isAnimating, setIsAnimating] = useState(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(BarLabelListProvider, {
-    showLabels: showLabels,
-    rects: data
-  }, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? data : data === null || data === void 0 ? void 0 : data.map((entry, index) => {
-      var prev = prevData && prevData[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: interpolate(prev.x, entry.x, t),
-          y: interpolate(prev.y, entry.y, t),
-          width: interpolate(prev.width, entry.width, t),
-          height: interpolate(prev.height, entry.height, t)
-        });
-      }
-      if (layout === 'horizontal') {
-        var height = interpolate(0, entry.height, t);
-        var y = interpolate(entry.stackedBarStart, entry.y, t);
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          y,
-          height
-        });
-      }
-      var w = interpolate(0, entry.width, t);
-      var x = interpolate(entry.stackedBarStart, entry.x, t);
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        width: w,
-        x
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousRectanglesRef.current = stepData !== null && stepData !== void 0 ? stepData : null;
-    }
-    if (stepData == null) {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {
-      props: props,
-      data: stepData
-    }));
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderRectangles(props) {
-  var previousRectanglesRef = useRef(null);
-  return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {
-    previousRectanglesRef: previousRectanglesRef,
-    props: props
-  });
-}
-var defaultMinPointSize = 0;
-var errorBarDataPointFormatter = (dataPoint, dataKey) => {
-  /**
-   * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.
-   * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].
-   * */
-  var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;
-  return {
-    x: dataPoint.x,
-    y: dataPoint.y,
-    value,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: getValueByDataKey(dataPoint, dataKey)
-  };
-};
-class BarWithState extends PureComponent {
-  render() {
-    var {
-      hide,
-      data,
-      dataKey,
-      className,
-      xAxisId,
-      yAxisId,
-      needClip,
-      background,
-      id
-    } = this.props;
-    if (hide || data == null) {
-      return null;
-    }
-    var layerClass = clsx('recharts-bar', className);
-    var clipPathId = id;
-    return /*#__PURE__*/React.createElement(Layer, {
-      className: layerClass,
-      id: id
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    })), /*#__PURE__*/React.createElement(Layer, {
-      className: "recharts-bar-rectangles",
-      clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined
-    }, /*#__PURE__*/React.createElement(BarBackground, {
-      data: data,
-      dataKey: dataKey,
-      background: background,
-      allOtherBarProps: this.props
-    }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));
-  }
-}
-export var defaultBarProps = {
-  activeBar: false,
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'ease',
-  background: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  minPointSize: defaultMinPointSize,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: DefaultZIndexes.bar
-};
-function BarImpl(props) {
-  var {
-    xAxisId,
-    yAxisId,
-    hide,
-    legendType,
-    minPointSize,
-    activeBar,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    isAnimationActive
-  } = props;
-  var {
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  var layout = useChartLayout();
-  var isPanorama = useIsPanorama();
-  var cells = findAllByType(props.children, Cell);
-  var rects = useAppSelector(state => selectBarRectangles(state, props.id, isPanorama, cells));
-  if (layout !== 'vertical' && layout !== 'horizontal') {
-    return null;
-  }
-  var errorBarOffset;
-  var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];
-  if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {
-    errorBarOffset = 0;
-  } else {
-    errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;
-  }
-  return /*#__PURE__*/React.createElement(SetErrorBarContext, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    data: rects,
-    dataPointFormatter: errorBarDataPointFormatter,
-    errorBarOffset: errorBarOffset
-  }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {
-    layout: layout,
-    needClip: needClip,
-    data: rects,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    hide: hide,
-    legendType: legendType,
-    minPointSize: minPointSize,
-    activeBar: activeBar,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive
-  })));
-}
-export function computeBarRectangles(_ref6) {
-  var {
-    layout,
-    barSettings: {
-      dataKey,
-      minPointSize: minPointSizeProp
-    },
-    pos,
-    bandSize,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    stackedData,
-    displayedData,
-    offset,
-    cells,
-    parentViewBox,
-    dataStartIndex
-  } = _ref6;
-  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
-  // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it
-  var stackedDomain = stackedData ? numericAxis.scale.domain() : null;
-  var baseValue = getBaseValueOfBar({
-    numericAxis
-  });
-  var stackedBarStart = numericAxis.scale.map(baseValue);
-  return displayedData.map((entry, index) => {
-    var value, x, y, width, height, background;
-    if (stackedData) {
-      // Use dataStartIndex to access the correct element in the full stackedData array
-      var untruncatedValue = stackedData[index + dataStartIndex];
-      if (untruncatedValue == null) {
-        return null;
-      }
-      value = truncateByDomain(untruncatedValue, stackedDomain);
-    } else {
-      value = getValueByDataKey(entry, dataKey);
-      if (!Array.isArray(value)) {
-        value = [baseValue, value];
-      }
-    }
-    var minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);
-    if (layout === 'horizontal') {
-      var _ref7;
-      var baseValueScale = yAxis.scale.map(value[0]);
-      var currentValueScale = yAxis.scale.map(value[1]);
-      if (baseValueScale == null || currentValueScale == null) {
-        return null;
-      }
-      x = getCateCoordinateOfBar({
-        axis: xAxis,
-        ticks: xAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      y = (_ref7 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref7 !== void 0 ? _ref7 : undefined;
-      width = pos.size;
-      var computedHeight = baseValueScale - currentValueScale;
-      height = isNan(computedHeight) ? 0 : computedHeight;
-      background = {
-        x,
-        y: offset.top,
-        width,
-        height: offset.height
-      };
-      if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {
-        var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));
-        y -= delta;
-        height += delta;
-      }
-    } else {
-      var _baseValueScale = xAxis.scale.map(value[0]);
-      var _currentValueScale = xAxis.scale.map(value[1]);
-      if (_baseValueScale == null || _currentValueScale == null) {
-        return null;
-      }
-      x = _baseValueScale;
-      y = getCateCoordinateOfBar({
-        axis: yAxis,
-        ticks: yAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      width = _currentValueScale - _baseValueScale;
-      height = pos.size;
-      background = {
-        x: offset.left,
-        y,
-        width: offset.width,
-        height
-      };
-      if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {
-        var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));
-        width += _delta;
-      }
-    }
-    if (x == null || y == null || width == null || height == null) {
-      return null;
-    }
-    var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {
-      stackedBarStart,
-      x,
-      y,
-      width,
-      height,
-      value: stackedData ? value : value[1],
-      payload: entry,
-      background,
-      tooltipPosition: {
-        x: x + width / 2,
-        y: y + height / 2
-      },
-      parentViewBox
-    }, cells && cells[index] && cells[index].props);
-    return barRectangleItem;
-  }).filter(Boolean);
-}
-function BarFn(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultBarProps);
-  // stackId may arrive from props or from BarStack context
-  var stackId = useStackId(props.stackId);
-  var isPanorama = useIsPanorama();
-  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "bar"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromBarData(props)
-  }), /*#__PURE__*/React.createElement(SetBarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {
-    type: "bar",
-    id: id
-    // Bar does not allow setting data directly on the graphical item (why?)
-    ,
-    data: undefined,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    dataKey: props.dataKey,
-    stackId: stackId,
-    hide: props.hide,
-    barSize: props.barSize,
-    minPointSize: props.minPointSize,
-    maxBarSize: props.maxBarSize,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {
-    id: id
-  })))));
-}
-
-/**
- * @provides ErrorBarContext
- * @provides LabelListContext
- * @provides CellReader
- * @consumes CartesianChartContext
- * @consumes BarStackContext
- */
-export var Bar = /*#__PURE__*/React.memo(BarFn, propsAreEqual);
-Bar.displayName = 'Bar';
Index: de_modules/recharts/es6/cartesian/BarStack.js
===================================================================
--- node_modules/recharts/es6/cartesian/BarStack.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-var _excluded = ["index"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { createContext, useContext, useMemo } from 'react';
-import { getNormalizedStackId } from '../util/ChartUtils';
-import { useUniqueId } from '../util/useUniqueId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { useAppSelector } from '../state/hooks';
-import { selectStackRects } from '../state/selectors/barStackSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { Layer } from '../container/Layer';
-import { Rectangle } from '../shape/Rectangle';
-import { propsAreEqual } from '../util/propsAreEqual';
-var BarStackContext = /*#__PURE__*/createContext(undefined);
-
-/**
- * Hook to resolve the stack ID for a Bar component.
- * If a stack ID is provided via props, it is used directly.
- * Otherwise, this will read stack ID from BarStack context if available.
- * If both are undefined, it returns undefined.
- * @param childStackId
- */
-export var useStackId = childStackId => {
-  var stackSettings = useContext(BarStackContext);
-  if (stackSettings != null) {
-    return stackSettings.stackId;
-  }
-  if (childStackId == null) {
-    return undefined;
-  }
-  return getNormalizedStackId(childStackId);
-};
-export var defaultBarStackProps = {
-  radius: 0
-};
-var getClipPathId = (stackId, index) => {
-  return "recharts-bar-stack-clip-path-".concat(stackId, "-").concat(index);
-};
-export var useBarStackClipPathUrl = index => {
-  var barStackContext = useContext(BarStackContext);
-  if (barStackContext == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = barStackContext;
-  return "url(#".concat(getClipPathId(stackId, index), ")");
-};
-export var BarStackClipLayer = _ref => {
-  var {
-      index
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var clipPathUrl = useBarStackClipPathUrl(index);
-  return /*#__PURE__*/React.createElement(Layer, _extends({
-    className: "recharts-bar-stack-layer",
-    clipPath: clipPathUrl
-  }, rest));
-};
-
-/**
- * This React component will render a clipPath that the individual bars in the stack will reference
- * to achieve rounded corners for the entire stack.
- */
-var BarStackClipPath = _ref2 => {
-  var {
-    stackId,
-    radius
-  } = _ref2;
-  var isPanorama = useIsPanorama();
-  var positions = useAppSelector(state => selectStackRects(state, stackId, isPanorama));
-  if (positions == null || positions.length === 0) {
-    return null;
-  }
-  /*
-   * Render one clipPath per rectangle in the stack.
-   * Each rectangle corresponds to one data entry in the chart.
-   */
-  return /*#__PURE__*/React.createElement("defs", null, positions.map((pos, index) => {
-    if (pos == null) {
-      return null;
-    }
-    var clipPathId = getClipPathId(stackId, index);
-    return /*#__PURE__*/React.createElement("clipPath", {
-      key: clipPathId,
-      id: clipPathId
-    }, /*#__PURE__*/React.createElement(Rectangle, {
-      isAnimationActive: false,
-      isUpdateAnimationActive: false,
-      x: pos.x,
-      y: pos.y,
-      width: pos.width,
-      height: pos.height,
-      radius: radius
-    }));
-  }));
-};
-var BarStackImpl = props => {
-  var resolvedStackId = useUniqueId('recharts-bar-stack', getNormalizedStackId(props.stackId));
-  var {
-    children,
-    radius
-  } = resolveDefaultProps(props, defaultBarStackProps);
-  var context = useMemo(() => ({
-    stackId: resolvedStackId,
-    radius
-  }), [resolvedStackId, radius]);
-  return /*#__PURE__*/React.createElement(BarStackContext.Provider, {
-    value: context
-  }, /*#__PURE__*/React.createElement(BarStackClipPath, {
-    stackId: resolvedStackId,
-    radius: radius
-  }), children);
-};
-
-/**
- * @provides BarStackContext
- * @since 3.6
- */
-export var BarStack = /*#__PURE__*/React.memo(BarStackImpl, propsAreEqual);
Index: de_modules/recharts/es6/cartesian/Brush.js
===================================================================
--- node_modules/recharts/es6/cartesian/Brush.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,902 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { Children, PureComponent, useCallback, useContext, useEffect } from 'react';
-import { clsx } from 'clsx';
-import { scalePoint } from 'victory-vendor/d3-scale';
-import range from 'es-toolkit/compat/range';
-import { Layer } from '../container/Layer';
-import { Text } from '../component/Text';
-import { getValueByDataKey } from '../util/ChartUtils';
-import { isNumber, isNotNil } from '../util/DataUtils';
-import { generatePrefixStyle } from '../util/CssPrefixUtils';
-import { useChartData, useDataIndex } from '../context/chartDataContext';
-import { BrushUpdateDispatchContext } from '../context/brushUpdateContext';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { setDataStartEndIndexes } from '../state/chartDataSlice';
-import { setBrushSettings } from '../state/brushSlice';
-import { PanoramaContextProvider } from '../context/PanoramaContext';
-import { selectBrushDimensions } from '../state/selectors/brushSelectors';
-import { useBrushChartSynchronisation } from '../synchronisation/useChartSynchronisation';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-
-// Why is this tickFormatter different from the other TickFormatters? This one allows to return numbers too for some reason.
-
-function DefaultTraveller(props) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    stroke
-  } = props;
-  var lineY = Math.floor(y + height / 2) - 1;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    width: width,
-    height: height,
-    fill: stroke,
-    stroke: "none"
-  }), /*#__PURE__*/React.createElement("line", {
-    x1: x + 1,
-    y1: lineY,
-    x2: x + width - 1,
-    y2: lineY,
-    fill: "none",
-    stroke: "#fff"
-  }), /*#__PURE__*/React.createElement("line", {
-    x1: x + 1,
-    y1: lineY + 2,
-    x2: x + width - 1,
-    y2: lineY + 2,
-    fill: "none",
-    stroke: "#fff"
-  }));
-}
-function Traveller(props) {
-  var {
-    travellerProps,
-    travellerType
-  } = props;
-  if (/*#__PURE__*/React.isValidElement(travellerType)) {
-    // @ts-expect-error element cloning disagrees with the types (and it should)
-    return /*#__PURE__*/React.cloneElement(travellerType, travellerProps);
-  }
-  if (typeof travellerType === 'function') {
-    return travellerType(travellerProps);
-  }
-  return /*#__PURE__*/React.createElement(DefaultTraveller, travellerProps);
-}
-function getNameFromUnknown(value) {
-  if (isNotNil(value) && typeof value === 'object' && 'name' in value && typeof value.name === 'string') {
-    return value.name;
-  }
-  return undefined;
-}
-function getAriaLabel(data, startIndex, endIndex) {
-  var start = getNameFromUnknown(data[startIndex]);
-  var end = getNameFromUnknown(data[endIndex]);
-  return "Min value: ".concat(start, ", Max value: ").concat(end);
-}
-function TravellerLayer(_ref) {
-  var {
-    otherProps,
-    travellerX,
-    id,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseDown,
-    onTouchStart,
-    onTravellerMoveKeyboard,
-    onFocus,
-    onBlur
-  } = _ref;
-  var {
-    y,
-    x: xFromProps,
-    travellerWidth,
-    height,
-    traveller,
-    ariaLabel,
-    data,
-    startIndex,
-    endIndex
-  } = otherProps;
-  var x = Math.max(travellerX, xFromProps);
-  var travellerProps = _objectSpread(_objectSpread({}, svgPropertiesNoEvents(otherProps)), {}, {
-    x,
-    y,
-    width: travellerWidth,
-    height
-  });
-  var ariaLabelBrush = ariaLabel || getAriaLabel(data, startIndex, endIndex);
-  return /*#__PURE__*/React.createElement(Layer, {
-    tabIndex: 0,
-    role: "slider",
-    "aria-label": ariaLabelBrush,
-    "aria-valuenow": travellerX,
-    className: "recharts-brush-traveller",
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onMouseDown: onMouseDown,
-    onTouchStart: onTouchStart,
-    onKeyDown: e => {
-      if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {
-        return;
-      }
-      e.preventDefault();
-      e.stopPropagation();
-      onTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);
-    },
-    onFocus: onFocus,
-    onBlur: onBlur,
-    style: {
-      cursor: 'col-resize'
-    }
-  }, /*#__PURE__*/React.createElement(Traveller, {
-    travellerType: traveller,
-    travellerProps: travellerProps
-  }));
-}
-/*
- * This one cannot be a React Component because React is not happy with it returning only string | number.
- * React wants a full React.JSX.Element but that is not compatible with Text component.
- */
-function getTextOfTick(props) {
-  var {
-    index,
-    data,
-    tickFormatter,
-    dataKey
-  } = props;
-  // @ts-expect-error getValueByDataKey does not validate the output type
-  var text = getValueByDataKey(data[index], dataKey, index);
-  return typeof tickFormatter === 'function' ? tickFormatter(text, index) : text;
-}
-function getIndexInRange(valueRange, x) {
-  var len = valueRange.length;
-  var start = 0;
-  var end = len - 1;
-  while (end - start > 1) {
-    var middle = Math.floor((start + end) / 2);
-    var middleValue = valueRange[middle];
-    if (middleValue != null && middleValue > x) {
-      end = middle;
-    } else {
-      start = middle;
-    }
-  }
-  var endValue = valueRange[end];
-  return endValue != null && x >= endValue ? end : start;
-}
-function getIndex(_ref2) {
-  var {
-    startX,
-    endX,
-    scaleValues,
-    gap,
-    data
-  } = _ref2;
-  var lastIndex = data.length - 1;
-  var min = Math.min(startX, endX);
-  var max = Math.max(startX, endX);
-  var minIndex = getIndexInRange(scaleValues, min);
-  var maxIndex = getIndexInRange(scaleValues, max);
-  return {
-    startIndex: minIndex - minIndex % gap,
-    endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap
-  };
-}
-function Background(_ref3) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    fill,
-    stroke
-  } = _ref3;
-  return /*#__PURE__*/React.createElement("rect", {
-    stroke: stroke,
-    fill: fill,
-    x: x,
-    y: y,
-    width: width,
-    height: height
-  });
-}
-function BrushText(_ref4) {
-  var {
-    startIndex,
-    endIndex,
-    y,
-    height,
-    travellerWidth,
-    stroke,
-    tickFormatter,
-    dataKey,
-    data,
-    startX,
-    endX
-  } = _ref4;
-  var offset = 5;
-  var attrs = {
-    pointerEvents: 'none',
-    fill: stroke
-  };
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-brush-texts"
-  }, /*#__PURE__*/React.createElement(Text, _extends({
-    textAnchor: "end",
-    verticalAnchor: "middle",
-    x: Math.min(startX, endX) - offset,
-    y: y + height / 2
-  }, attrs), getTextOfTick({
-    index: startIndex,
-    tickFormatter,
-    dataKey,
-    data
-  })), /*#__PURE__*/React.createElement(Text, _extends({
-    textAnchor: "start",
-    verticalAnchor: "middle",
-    x: Math.max(startX, endX) + travellerWidth + offset,
-    y: y + height / 2
-  }, attrs), getTextOfTick({
-    index: endIndex,
-    tickFormatter,
-    dataKey,
-    data
-  })));
-}
-function Slide(_ref5) {
-  var {
-    y,
-    height,
-    stroke,
-    travellerWidth,
-    startX,
-    endX,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseDown,
-    onTouchStart
-  } = _ref5;
-  var x = Math.min(startX, endX) + travellerWidth;
-  var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);
-  return /*#__PURE__*/React.createElement("rect", {
-    className: "recharts-brush-slide",
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onMouseDown: onMouseDown,
-    onTouchStart: onTouchStart,
-    style: {
-      cursor: 'move'
-    },
-    stroke: "none",
-    fill: stroke,
-    fillOpacity: 0.2,
-    x: x,
-    y: y,
-    width: width,
-    height: height
-  });
-}
-function Panorama(_ref6) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    data,
-    children,
-    padding
-  } = _ref6;
-  var isPanoramic = React.Children.count(children) === 1;
-  if (!isPanoramic) {
-    return null;
-  }
-  var chartElement = Children.only(children);
-  if (!chartElement) {
-    return null;
-  }
-  return /*#__PURE__*/React.cloneElement(chartElement, {
-    x,
-    y,
-    width,
-    height,
-    margin: padding,
-    compact: true,
-    data
-  });
-}
-var createScale = _ref7 => {
-  var {
-    data,
-    startIndex,
-    endIndex,
-    x,
-    width,
-    travellerWidth
-  } = _ref7;
-  if (!data || !data.length) {
-    return {};
-  }
-  var len = data.length;
-  var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);
-  var scaleValues = scale.domain().map(entry => scale(entry)).filter(isNotNil);
-  return {
-    isTextActive: false,
-    isSlideMoving: false,
-    isTravellerMoving: false,
-    isTravellerFocused: false,
-    startX: scale(startIndex),
-    endX: scale(endIndex),
-    scale,
-    scaleValues
-  };
-};
-var isTouch = e => e.changedTouches && !!e.changedTouches.length;
-class BrushWithState extends PureComponent {
-  constructor(props) {
-    super(props);
-    _defineProperty(this, "handleDrag", e => {
-      if (this.leaveTimer) {
-        clearTimeout(this.leaveTimer);
-        this.leaveTimer = null;
-      }
-      if (this.state.isTravellerMoving) {
-        this.handleTravellerMove(e);
-      } else if (this.state.isSlideMoving) {
-        this.handleSlideDrag(e);
-      }
-    });
-    _defineProperty(this, "handleTouchMove", e => {
-      var _e$changedTouches;
-      var touch = (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0];
-      if (touch != null) {
-        this.handleDrag(touch);
-      }
-    });
-    _defineProperty(this, "handleDragEnd", () => {
-      this.setState({
-        isTravellerMoving: false,
-        isSlideMoving: false
-      }, () => {
-        var {
-          endIndex,
-          onDragEnd,
-          startIndex
-        } = this.props;
-        onDragEnd === null || onDragEnd === void 0 || onDragEnd({
-          endIndex,
-          startIndex
-        });
-      });
-      this.detachDragEndListener();
-    });
-    _defineProperty(this, "handleLeaveWrapper", () => {
-      if (this.state.isTravellerMoving || this.state.isSlideMoving) {
-        this.leaveTimer = window.setTimeout(this.handleDragEnd, this.props.leaveTimeOut);
-      }
-    });
-    _defineProperty(this, "handleEnterSlideOrTraveller", () => {
-      this.setState({
-        isTextActive: true
-      });
-    });
-    _defineProperty(this, "handleLeaveSlideOrTraveller", () => {
-      this.setState({
-        isTextActive: false
-      });
-    });
-    _defineProperty(this, "handleSlideDragStart", e => {
-      var event = isTouch(e) ? e.changedTouches[0] : e;
-      if (event == null) {
-        return;
-      }
-      this.setState({
-        isTravellerMoving: false,
-        isSlideMoving: true,
-        slideMoveStartX: event.pageX
-      });
-      this.attachDragEndListener();
-    });
-    _defineProperty(this, "handleTravellerMoveKeyboard", (direction, id) => {
-      var {
-        data,
-        gap,
-        startIndex,
-        endIndex
-      } = this.props;
-      // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].
-      var {
-        scaleValues,
-        startX,
-        endX
-      } = this.state;
-      if (scaleValues == null) {
-        return;
-      }
-
-      // unless we search for the closest scaleValue to the current coordinate
-      // we need to move travelers via index when using the keyboard
-      var currentIndex = -1;
-      if (id === 'startX') {
-        currentIndex = startIndex;
-      } else if (id === 'endX') {
-        currentIndex = endIndex;
-      }
-      if (currentIndex < 0 || currentIndex >= data.length) {
-        return;
-      }
-      var newIndex = currentIndex + direction;
-      if (newIndex === -1 || newIndex >= scaleValues.length) {
-        return;
-      }
-      var newScaleValue = scaleValues[newIndex];
-      if (newScaleValue == null) {
-        return;
-      }
-
-      // Prevent travellers from being on top of each other or overlapping
-      if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {
-        return;
-      }
-      this.setState(
-      // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React
-      {
-        [id]: newScaleValue
-      }, () => {
-        this.props.onChange(getIndex({
-          startX: this.state.startX,
-          endX: this.state.endX,
-          data,
-          gap,
-          scaleValues
-        }));
-      });
-    });
-    this.travellerDragStartHandlers = {
-      startX: this.handleTravellerDragStart.bind(this, 'startX'),
-      endX: this.handleTravellerDragStart.bind(this, 'endX')
-    };
-    this.state = {
-      brushMoveStartX: 0,
-      movingTravellerId: undefined,
-      endX: 0,
-      startX: 0,
-      slideMoveStartX: 0
-    };
-  }
-  static getDerivedStateFromProps(nextProps, prevState) {
-    var {
-      data,
-      width,
-      x,
-      travellerWidth,
-      startIndex,
-      endIndex,
-      startIndexControlledFromProps,
-      endIndexControlledFromProps
-    } = nextProps;
-    if (data !== prevState.prevData) {
-      return _objectSpread({
-        prevData: data,
-        prevTravellerWidth: travellerWidth,
-        prevX: x,
-        prevWidth: width
-      }, data && data.length ? createScale({
-        data,
-        width,
-        x,
-        travellerWidth,
-        startIndex,
-        endIndex
-      }) : {
-        scale: undefined,
-        scaleValues: undefined
-      });
-    }
-    var prevScale = prevState.scale;
-    if (prevScale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {
-      prevScale.range([x, x + width - travellerWidth]);
-      var scaleValues = prevScale.domain().map(entry => prevScale(entry)).filter(value => value != null);
-      return {
-        prevData: data,
-        prevTravellerWidth: travellerWidth,
-        prevX: x,
-        prevWidth: width,
-        startX: prevScale(nextProps.startIndex),
-        endX: prevScale(nextProps.endIndex),
-        scaleValues
-      };
-    }
-    if (prevState.scale && !prevState.isSlideMoving && !prevState.isTravellerMoving && !prevState.isTravellerFocused && !prevState.isTextActive) {
-      /*
-       * If the startIndex or endIndex are controlled from the outside,
-       * we need to keep the startX and end up to date.
-       * Also we do not want to do that while user is interacting in the brush,
-       * because this will trigger re-render and interrupt the drag&drop.
-       */
-      if (startIndexControlledFromProps != null && prevState.prevStartIndexControlledFromProps !== startIndexControlledFromProps) {
-        return {
-          startX: prevState.scale(startIndexControlledFromProps),
-          prevStartIndexControlledFromProps: startIndexControlledFromProps
-        };
-      }
-      if (endIndexControlledFromProps != null && prevState.prevEndIndexControlledFromProps !== endIndexControlledFromProps) {
-        return {
-          endX: prevState.scale(endIndexControlledFromProps),
-          prevEndIndexControlledFromProps: endIndexControlledFromProps
-        };
-      }
-    }
-    return null;
-  }
-  componentWillUnmount() {
-    if (this.leaveTimer) {
-      clearTimeout(this.leaveTimer);
-      this.leaveTimer = null;
-    }
-    this.detachDragEndListener();
-  }
-  attachDragEndListener() {
-    window.addEventListener('mouseup', this.handleDragEnd, true);
-    window.addEventListener('touchend', this.handleDragEnd, true);
-    window.addEventListener('mousemove', this.handleDrag, true);
-  }
-  detachDragEndListener() {
-    window.removeEventListener('mouseup', this.handleDragEnd, true);
-    window.removeEventListener('touchend', this.handleDragEnd, true);
-    window.removeEventListener('mousemove', this.handleDrag, true);
-  }
-  handleSlideDrag(e) {
-    var {
-      slideMoveStartX,
-      startX,
-      endX,
-      scaleValues
-    } = this.state;
-    if (scaleValues == null) {
-      return;
-    }
-    var {
-      x,
-      width,
-      travellerWidth,
-      startIndex,
-      endIndex,
-      onChange,
-      data,
-      gap
-    } = this.props;
-    var delta = e.pageX - slideMoveStartX;
-    if (delta > 0) {
-      delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);
-    } else if (delta < 0) {
-      delta = Math.max(delta, x - startX, x - endX);
-    }
-    var newIndex = getIndex({
-      startX: startX + delta,
-      endX: endX + delta,
-      data,
-      gap,
-      scaleValues
-    });
-    if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {
-      onChange(newIndex);
-    }
-    this.setState({
-      startX: startX + delta,
-      endX: endX + delta,
-      slideMoveStartX: e.pageX
-    });
-  }
-  handleTravellerDragStart(id, e) {
-    var event = isTouch(e) ? e.changedTouches[0] : e;
-    if (event == null) {
-      return;
-    }
-    this.setState({
-      isSlideMoving: false,
-      isTravellerMoving: true,
-      movingTravellerId: id,
-      brushMoveStartX: event.pageX
-    });
-    this.attachDragEndListener();
-  }
-  handleTravellerMove(e) {
-    var {
-      brushMoveStartX,
-      movingTravellerId,
-      endX,
-      startX,
-      scaleValues
-    } = this.state;
-    if (movingTravellerId == null || scaleValues == null) {
-      return;
-    }
-    var prevValue = this.state[movingTravellerId];
-    var {
-      x,
-      width,
-      travellerWidth,
-      onChange,
-      gap,
-      data
-    } = this.props;
-    var params = {
-      startX: this.state.startX,
-      endX: this.state.endX,
-      data,
-      gap,
-      scaleValues
-    };
-    var delta = e.pageX - brushMoveStartX;
-    if (delta > 0) {
-      delta = Math.min(delta, x + width - travellerWidth - prevValue);
-    } else if (delta < 0) {
-      delta = Math.max(delta, x - prevValue);
-    }
-    params[movingTravellerId] = prevValue + delta;
-    var newIndex = getIndex(params);
-    var {
-      startIndex,
-      endIndex
-    } = newIndex;
-    var isFullGap = () => {
-      var lastIndex = data.length - 1;
-      if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {
-        return true;
-      }
-      return false;
-    };
-    this.setState(
-    // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React
-    {
-      [movingTravellerId]: prevValue + delta,
-      brushMoveStartX: e.pageX
-    }, () => {
-      if (onChange) {
-        if (isFullGap()) {
-          onChange(newIndex);
-        }
-      }
-    });
-  }
-  render() {
-    var {
-      data,
-      className,
-      children,
-      x,
-      y,
-      dy,
-      width,
-      height,
-      alwaysShowText,
-      fill,
-      stroke,
-      startIndex,
-      endIndex,
-      travellerWidth,
-      tickFormatter,
-      dataKey,
-      padding
-    } = this.props;
-    var {
-      startX,
-      endX,
-      isTextActive,
-      isSlideMoving,
-      isTravellerMoving,
-      isTravellerFocused
-    } = this.state;
-    if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {
-      return null;
-    }
-    var layerClass = clsx('recharts-brush', className);
-    var style = generatePrefixStyle('userSelect', 'none');
-    var calculatedY = y + (dy !== null && dy !== void 0 ? dy : 0);
-    return /*#__PURE__*/React.createElement(Layer, {
-      className: layerClass,
-      onMouseLeave: this.handleLeaveWrapper,
-      onTouchMove: this.handleTouchMove,
-      style: style
-    }, /*#__PURE__*/React.createElement(Background, {
-      x: x,
-      y: calculatedY,
-      width: width,
-      height: height,
-      fill: fill,
-      stroke: stroke
-    }), /*#__PURE__*/React.createElement(PanoramaContextProvider, null, /*#__PURE__*/React.createElement(Panorama, {
-      x: x,
-      y: calculatedY,
-      width: width,
-      height: height,
-      data: data,
-      padding: padding
-    }, children)), /*#__PURE__*/React.createElement(Slide, {
-      y: calculatedY,
-      height: height,
-      stroke: stroke,
-      travellerWidth: travellerWidth,
-      startX: startX,
-      endX: endX,
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.handleSlideDragStart,
-      onTouchStart: this.handleSlideDragStart
-    }), /*#__PURE__*/React.createElement(TravellerLayer, {
-      travellerX: startX,
-      id: "startX",
-      otherProps: _objectSpread(_objectSpread({}, this.props), {}, {
-        y: calculatedY
-      }),
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.travellerDragStartHandlers.startX,
-      onTouchStart: this.travellerDragStartHandlers.startX,
-      onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,
-      onFocus: () => {
-        this.setState({
-          isTravellerFocused: true
-        });
-      },
-      onBlur: () => {
-        this.setState({
-          isTravellerFocused: false
-        });
-      }
-    }), /*#__PURE__*/React.createElement(TravellerLayer, {
-      travellerX: endX,
-      id: "endX",
-      otherProps: _objectSpread(_objectSpread({}, this.props), {}, {
-        y: calculatedY
-      }),
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.travellerDragStartHandlers.endX,
-      onTouchStart: this.travellerDragStartHandlers.endX,
-      onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,
-      onFocus: () => {
-        this.setState({
-          isTravellerFocused: true
-        });
-      },
-      onBlur: () => {
-        this.setState({
-          isTravellerFocused: false
-        });
-      }
-    }), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && /*#__PURE__*/React.createElement(BrushText, {
-      startIndex: startIndex,
-      endIndex: endIndex,
-      y: calculatedY,
-      height: height,
-      travellerWidth: travellerWidth,
-      stroke: stroke,
-      tickFormatter: tickFormatter,
-      dataKey: dataKey,
-      data: data,
-      startX: startX,
-      endX: endX
-    }));
-  }
-}
-function BrushInternal(props) {
-  var dispatch = useAppDispatch();
-  var chartData = useChartData();
-  var dataIndexes = useDataIndex();
-  var onChangeFromContext = useContext(BrushUpdateDispatchContext);
-  var onChangeFromProps = props.onChange;
-  var {
-    startIndex: startIndexFromProps,
-    endIndex: endIndexFromProps
-  } = props;
-  useEffect(() => {
-    // start and end index can be controlled from props, and we need them to stay up-to-date in the Redux state too
-    dispatch(setDataStartEndIndexes({
-      startIndex: startIndexFromProps,
-      endIndex: endIndexFromProps
-    }));
-  }, [dispatch, endIndexFromProps, startIndexFromProps]);
-  useBrushChartSynchronisation();
-  var onChange = useCallback(nextState => {
-    if (dataIndexes == null) {
-      return;
-    }
-    var {
-      startIndex,
-      endIndex
-    } = dataIndexes;
-    if (nextState.startIndex !== startIndex || nextState.endIndex !== endIndex) {
-      onChangeFromContext === null || onChangeFromContext === void 0 || onChangeFromContext(nextState);
-      onChangeFromProps === null || onChangeFromProps === void 0 || onChangeFromProps(nextState);
-      dispatch(setDataStartEndIndexes(nextState));
-    }
-  }, [onChangeFromProps, onChangeFromContext, dispatch, dataIndexes]);
-  var brushDimensions = useAppSelector(selectBrushDimensions);
-  if (brushDimensions == null || dataIndexes == null || chartData == null || !chartData.length) {
-    return null;
-  }
-  var {
-    startIndex,
-    endIndex
-  } = dataIndexes;
-  var {
-    x,
-    y,
-    width
-  } = brushDimensions;
-  var contextProperties = {
-    data: chartData,
-    x,
-    y,
-    width,
-    startIndex,
-    endIndex,
-    onChange
-  };
-  return /*#__PURE__*/React.createElement(BrushWithState, _extends({}, props, contextProperties, {
-    startIndexControlledFromProps: startIndexFromProps !== null && startIndexFromProps !== void 0 ? startIndexFromProps : undefined,
-    endIndexControlledFromProps: endIndexFromProps !== null && endIndexFromProps !== void 0 ? endIndexFromProps : undefined
-  }));
-}
-function BrushSettingsDispatcher(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(setBrushSettings(props));
-    return () => {
-      dispatch(setBrushSettings(null));
-    };
-  }, [dispatch, props]);
-  return null;
-}
-export var defaultBrushProps = {
-  height: 40,
-  travellerWidth: 5,
-  gap: 1,
-  fill: '#fff',
-  stroke: '#666',
-  padding: {
-    top: 1,
-    right: 1,
-    bottom: 1,
-    left: 1
-  },
-  leaveTimeOut: 1000,
-  alwaysShowText: false
-};
-
-/**
- * Renders a scrollbar that allows the user to zoom and pan in the chart along its XAxis.
- * It also allows you to render a small overview of the chart inside the brush that is always visible
- * and shows the full data set so that the user can see where they are zoomed in.
- *
- * If a chart is synchronized with other charts using the `syncId` prop on the chart,
- * the brush will also synchronize the zooming and panning between all synchronized charts.
- *
- * @see {@link https://recharts.github.io/en-US/examples/BrushBarChart/ BarChart with Brush}
- * @see {@link https://recharts.github.io/en-US/examples/SynchronizedLineChart/ Synchronized Brush}
- *
- * @consumes CartesianChartContext
- */
-export function Brush(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultBrushProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BrushSettingsDispatcher, {
-    height: props.height,
-    x: props.x,
-    y: props.y,
-    width: props.width,
-    padding: props.padding
-  }), /*#__PURE__*/React.createElement(BrushInternal, props));
-}
-Brush.displayName = 'Brush';
Index: de_modules/recharts/es6/cartesian/CartesianAxis.js
===================================================================
--- node_modules/recharts/es6/cartesian/CartesianAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,447 +1,0 @@
-var _excluded = ["axisLine", "width", "height", "className", "hide", "ticks", "axisType"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * @fileOverview Cartesian Axis
- */
-import * as React from 'react';
-import { useState, useRef, useCallback, forwardRef, useImperativeHandle } from 'react';
-import get from 'es-toolkit/compat/get';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { Text } from '../component/Text';
-import { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';
-import { isNumber } from '../util/DataUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { getTicks } from './getTicks';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { getCalculatedYAxisWidth } from '../util/YAxisUtils';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';
-
-/** The orientation of the axis in correspondence to the chart */
-
-/** A unit to be appended to a value */
-
-/** The formatter function of tick */
-
-export var defaultCartesianAxisProps = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  viewBox: {
-    x: 0,
-    y: 0,
-    width: 0,
-    height: 0
-  },
-  // The orientation of axis
-  orientation: 'bottom',
-  // The ticks
-  ticks: [],
-  stroke: '#666',
-  tickLine: true,
-  axisLine: true,
-  tick: true,
-  mirror: false,
-  minTickGap: 5,
-  // The width or height of tick
-  tickSize: 6,
-  tickMargin: 2,
-  interval: 'preserveEnd',
-  zIndex: DefaultZIndexes.axis
-};
-
-/*
- * `viewBox` and `scale` are SVG attributes.
- * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`
- * that are completely different data shape and different purpose.
- */
-
-function AxisLine(axisLineProps) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    orientation,
-    mirror,
-    axisLine,
-    otherSvgProps
-  } = axisLineProps;
-  if (!axisLine) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), svgPropertiesNoEvents(axisLine)), {}, {
-    fill: 'none'
-  });
-  if (orientation === 'top' || orientation === 'bottom') {
-    var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);
-    props = _objectSpread(_objectSpread({}, props), {}, {
-      x1: x,
-      y1: y + needHeight * height,
-      x2: x + width,
-      y2: y + needHeight * height
-    });
-  } else {
-    var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);
-    props = _objectSpread(_objectSpread({}, props), {}, {
-      x1: x + needWidth * width,
-      y1: y,
-      x2: x + needWidth * width,
-      y2: y + height
-    });
-  }
-  return /*#__PURE__*/React.createElement("line", _extends({}, props, {
-    className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))
-  }));
-}
-
-/**
- * Calculate the coordinates of endpoints in ticks.
- * @param data The data of a simple tick.
- * @param x The x-coordinate of the axis.
- * @param y The y-coordinate of the axis.
- * @param width The width of the axis.
- * @param height The height of the axis.
- * @param orientation The orientation of the axis.
- * @param tickSize The length of the tick line.
- * @param mirror If true, the ticks are mirrored.
- * @param tickMargin The margin between the tick line and the tick text.
- * @returns An object with `line` and `tick` coordinates.
- * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.
- */
-function getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {
-  var x1, x2, y1, y2, tx, ty;
-  var sign = mirror ? -1 : 1;
-  var finalTickSize = data.tickSize || tickSize;
-  var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;
-  switch (orientation) {
-    case 'top':
-      x1 = x2 = data.coordinate;
-      y2 = y + +!mirror * height;
-      y1 = y2 - sign * finalTickSize;
-      ty = y1 - sign * tickMargin;
-      tx = tickCoord;
-      break;
-    case 'left':
-      y1 = y2 = data.coordinate;
-      x2 = x + +!mirror * width;
-      x1 = x2 - sign * finalTickSize;
-      tx = x1 - sign * tickMargin;
-      ty = tickCoord;
-      break;
-    case 'right':
-      y1 = y2 = data.coordinate;
-      x2 = x + +mirror * width;
-      x1 = x2 + sign * finalTickSize;
-      tx = x1 + sign * tickMargin;
-      ty = tickCoord;
-      break;
-    default:
-      x1 = x2 = data.coordinate;
-      y2 = y + +mirror * height;
-      y1 = y2 + sign * finalTickSize;
-      ty = y1 + sign * tickMargin;
-      tx = tickCoord;
-      break;
-  }
-  return {
-    line: {
-      x1,
-      y1,
-      x2,
-      y2
-    },
-    tick: {
-      x: tx,
-      y: ty
-    }
-  };
-}
-
-/**
- * @param orientation The orientation of the axis.
- * @param mirror If true, the ticks are mirrored.
- * @returns The text anchor of the tick.
- */
-function getTickTextAnchor(orientation, mirror) {
-  switch (orientation) {
-    case 'left':
-      return mirror ? 'start' : 'end';
-    case 'right':
-      return mirror ? 'end' : 'start';
-    default:
-      return 'middle';
-  }
-}
-
-/**
- * @param orientation The orientation of the axis.
- * @param mirror If true, the ticks are mirrored.
- * @returns The vertical text anchor of the tick.
- */
-function getTickVerticalAnchor(orientation, mirror) {
-  switch (orientation) {
-    case 'left':
-    case 'right':
-      return 'middle';
-    case 'top':
-      return mirror ? 'start' : 'end';
-    default:
-      return mirror ? 'end' : 'start';
-  }
-}
-function TickItem(props) {
-  var {
-    option,
-    tickProps,
-    value
-  } = props;
-  var tickItem;
-  var combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {
-      className: combinedClassName
-    }));
-  } else if (typeof option === 'function') {
-    tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {
-      className: combinedClassName
-    }));
-  } else {
-    var className = 'recharts-cartesian-axis-tick-value';
-    if (typeof option !== 'boolean') {
-      className = clsx(className, getClassNameFromUnknown(option));
-    }
-    tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {
-      className: className
-    }), value);
-  }
-  return tickItem;
-}
-var Ticks = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-    ticks = [],
-    tick,
-    tickLine,
-    stroke,
-    tickFormatter,
-    unit,
-    padding,
-    tickTextProps,
-    orientation,
-    mirror,
-    x,
-    y,
-    width,
-    height,
-    tickSize,
-    tickMargin,
-    fontSize,
-    letterSpacing,
-    getTicksConfig,
-    events,
-    axisType
-  } = props;
-  // @ts-expect-error some properties are optional in props but required in getTicks
-  var finalTicks = getTicks(_objectSpread(_objectSpread({}, getTicksConfig), {}, {
-    ticks
-  }), fontSize, letterSpacing);
-  var textAnchor = getTickTextAnchor(orientation, mirror);
-  var verticalAnchor = getTickVerticalAnchor(orientation, mirror);
-  var axisProps = svgPropertiesNoEvents(getTicksConfig);
-  var customTickProps = svgPropertiesNoEventsFromUnknown(tick);
-  var tickLinePropsObject = {};
-  if (typeof tickLine === 'object') {
-    tickLinePropsObject = tickLine;
-  }
-  var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
-    fill: 'none'
-  }, tickLinePropsObject);
-  var tickLineCoords = finalTicks.map(entry => _objectSpread({
-    entry
-  }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));
-  var tickLines = tickLineCoords.map(_ref => {
-    var {
-      entry,
-      line: lineCoord
-    } = _ref;
-    return /*#__PURE__*/React.createElement(Layer, {
-      className: "recharts-cartesian-axis-tick",
-      key: "tick-".concat(entry.value, "-").concat(entry.coordinate, "-").concat(entry.tickCoord)
-    }, tickLine && /*#__PURE__*/React.createElement("line", _extends({}, tickLineProps, lineCoord, {
-      className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))
-    })));
-  });
-  var tickLabels = tickLineCoords.map((_ref2, i) => {
-    var _ref3, _tickTextProps$angle;
-    var {
-      entry,
-      tick: tickCoord
-    } = _ref2;
-    // @ts-expect-error we're not checking that padding and orientation types are in sync
-    var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      verticalAnchor
-    }, axisProps), {}, {
-      textAnchor,
-      stroke: 'none',
-      fill: stroke
-    }, tickCoord), {}, {
-      index: i,
-      payload: entry,
-      visibleTicksCount: finalTicks.length,
-      tickFormatter,
-      padding
-    }, tickTextProps), {}, {
-      angle: (_ref3 = (_tickTextProps$angle = tickTextProps === null || tickTextProps === void 0 ? void 0 : tickTextProps.angle) !== null && _tickTextProps$angle !== void 0 ? _tickTextProps$angle : axisProps.angle) !== null && _ref3 !== void 0 ? _ref3 : 0
-    });
-
-    // @ts-expect-error customTickProps is contributing unknown props which we don't type properly
-    var finalTickProps = _objectSpread(_objectSpread({}, tickProps), customTickProps);
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      className: "recharts-cartesian-axis-tick-label",
-      key: "tick-label-".concat(entry.value, "-").concat(entry.coordinate, "-").concat(entry.tickCoord)
-    }, adaptEventsOfChild(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {
-      option: tick,
-      tickProps: finalTickProps,
-      value: "".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')
-    }));
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-ticks recharts-".concat(axisType, "-ticks")
-  }, tickLabels.length > 0 && /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: DefaultZIndexes.label
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-tick-labels recharts-".concat(axisType, "-tick-labels"),
-    ref: ref
-  }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-tick-lines recharts-".concat(axisType, "-tick-lines")
-  }, tickLines));
-});
-var CartesianAxisComponent = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-      axisLine,
-      width,
-      height,
-      className,
-      hide,
-      ticks,
-      axisType
-    } = props,
-    rest = _objectWithoutProperties(props, _excluded);
-  var [fontSize, setFontSize] = useState('');
-  var [letterSpacing, setLetterSpacing] = useState('');
-  var tickRefs = useRef(null);
-  useImperativeHandle(ref, () => ({
-    getCalculatedWidth: () => {
-      var _props$labelRef;
-      return getCalculatedYAxisWidth({
-        ticks: tickRefs.current,
-        label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,
-        labelGapWithTick: 5,
-        tickSize: props.tickSize,
-        tickMargin: props.tickMargin
-      });
-    }
-  }));
-  var layerRef = useCallback(el => {
-    if (el) {
-      var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');
-      tickRefs.current = tickNodes;
-      var tick = tickNodes[0];
-      if (tick) {
-        var computedStyle = window.getComputedStyle(tick);
-        var calculatedFontSize = computedStyle.fontSize;
-        var calculatedLetterSpacing = computedStyle.letterSpacing;
-        if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {
-          setFontSize(calculatedFontSize);
-          setLetterSpacing(calculatedLetterSpacing);
-        }
-      }
-    }
-  }, [fontSize, letterSpacing]);
-  if (hide) {
-    return null;
-  }
-
-  /*
-   * This is different condition from what validateWidthHeight is doing;
-   * the CartesianAxis does allow width or height to be undefined.
-   */
-  if (width != null && width <= 0 || height != null && height <= 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-cartesian-axis', className)
-  }, /*#__PURE__*/React.createElement(AxisLine, {
-    x: props.x,
-    y: props.y,
-    width: width,
-    height: height,
-    orientation: props.orientation,
-    mirror: props.mirror,
-    axisLine: axisLine,
-    otherSvgProps: svgPropertiesNoEvents(props)
-  }), /*#__PURE__*/React.createElement(Ticks, {
-    ref: layerRef,
-    axisType: axisType,
-    events: rest,
-    fontSize: fontSize,
-    getTicksConfig: props,
-    height: props.height,
-    letterSpacing: letterSpacing,
-    mirror: props.mirror,
-    orientation: props.orientation,
-    padding: props.padding,
-    stroke: props.stroke,
-    tick: props.tick,
-    tickFormatter: props.tickFormatter,
-    tickLine: props.tickLine,
-    tickMargin: props.tickMargin,
-    tickSize: props.tickSize,
-    tickTextProps: props.tickTextProps,
-    ticks: ticks,
-    unit: props.unit,
-    width: props.width,
-    x: props.x,
-    y: props.y
-  }), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {
-    x: props.x,
-    y: props.y,
-    width: props.width,
-    height: props.height,
-    lowerWidth: props.width,
-    upperWidth: props.width
-  }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {
-    label: props.label,
-    labelRef: props.labelRef
-  }), props.children)));
-});
-
-/**
- * @deprecated
- *
- * This component is not meant to be used directly in app code.
- * Use XAxis or YAxis instead.
- *
- * Starting from Recharts v4.0 we will make this component internal only.
- */
-export var CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {
-  var props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);
-  return /*#__PURE__*/React.createElement(CartesianAxisComponent, _extends({}, props, {
-    ref: ref
-  }));
-});
-CartesianAxis.displayName = 'CartesianAxis';
Index: de_modules/recharts/es6/cartesian/CartesianGrid.js
===================================================================
--- node_modules/recharts/es6/cartesian/CartesianGrid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,411 +1,0 @@
-var _excluded = ["x1", "y1", "x2", "y2", "key"],
-  _excluded2 = ["offset"],
-  _excluded3 = ["xAxisId", "yAxisId"],
-  _excluded4 = ["xAxisId", "yAxisId"];
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { warn } from '../util/LogUtils';
-import { isNumber } from '../util/DataUtils';
-import { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';
-import { getTicks } from './getTicks';
-import { defaultCartesianAxisProps } from './CartesianAxis';
-import { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';
-import { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';
-import { useAppSelector } from '../state/hooks';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-
-/**
- * The <CartesianGrid horizontal
- */
-
-var Background = props => {
-  var {
-    fill
-  } = props;
-  if (!fill || fill === 'none') {
-    return null;
-  }
-  var {
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    ry
-  } = props;
-  return /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    ry: ry,
-    width: width,
-    height: height,
-    stroke: "none",
-    fill: fill,
-    fillOpacity: fillOpacity,
-    className: "recharts-cartesian-grid-bg"
-  });
-};
-function LineItem(_ref) {
-  var {
-    option,
-    lineItemProps
-  } = _ref;
-  var lineItem;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error typescript does not see the props type when cloning an element
-    lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);
-  } else if (typeof option === 'function') {
-    lineItem = option(lineItemProps);
-  } else {
-    var _svgPropertiesNoEvent;
-    var {
-        x1,
-        y1,
-        x2,
-        y2,
-        key
-      } = lineItemProps,
-      others = _objectWithoutProperties(lineItemProps, _excluded);
-    var _ref2 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},
-      {
-        offset: __
-      } = _ref2,
-      restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);
-    lineItem = /*#__PURE__*/React.createElement("line", _extends({}, restOfFilteredProps, {
-      x1: x1,
-      y1: y1,
-      x2: x2,
-      y2: y2,
-      fill: "none",
-      key: key
-    }));
-  }
-  return lineItem;
-}
-function HorizontalGridLines(props) {
-  var {
-    x,
-    width,
-    horizontal = true,
-    horizontalPoints
-  } = props;
-  if (!horizontal || !horizontalPoints || !horizontalPoints.length) {
-    return null;
-  }
-  var {
-      xAxisId,
-      yAxisId
-    } = props,
-    otherLineItemProps = _objectWithoutProperties(props, _excluded3);
-  var items = horizontalPoints.map((entry, i) => {
-    var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {
-      x1: x,
-      y1: entry,
-      x2: x + width,
-      y2: entry,
-      key: "line-".concat(i),
-      index: i
-    });
-    return /*#__PURE__*/React.createElement(LineItem, {
-      key: "line-".concat(i),
-      option: horizontal,
-      lineItemProps: lineItemProps
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid-horizontal"
-  }, items);
-}
-function VerticalGridLines(props) {
-  var {
-    y,
-    height,
-    vertical = true,
-    verticalPoints
-  } = props;
-  if (!vertical || !verticalPoints || !verticalPoints.length) {
-    return null;
-  }
-  var {
-      xAxisId,
-      yAxisId
-    } = props,
-    otherLineItemProps = _objectWithoutProperties(props, _excluded4);
-  var items = verticalPoints.map((entry, i) => {
-    var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {
-      x1: entry,
-      y1: y,
-      x2: entry,
-      y2: y + height,
-      key: "line-".concat(i),
-      index: i
-    });
-    return /*#__PURE__*/React.createElement(LineItem, {
-      option: vertical,
-      lineItemProps: lineItemProps,
-      key: "line-".concat(i)
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid-vertical"
-  }, items);
-}
-function HorizontalStripes(props) {
-  var {
-    horizontalFill,
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    horizontalPoints,
-    horizontal = true
-  } = props;
-  if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {
-    return null;
-  }
-  var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);
-  // Why is this condition `!==` instead of `<=` ?
-  if (y !== roundedSortedHorizontalPoints[0]) {
-    roundedSortedHorizontalPoints.unshift(0);
-  }
-  var items = roundedSortedHorizontalPoints.map((entry, i) => {
-    // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?
-    var nextPoint = roundedSortedHorizontalPoints[i + 1];
-    var lastStripe = nextPoint == null;
-    var lineHeight = lastStripe ? y + height - entry : nextPoint - entry;
-    if (lineHeight <= 0) {
-      return null;
-    }
-    var colorIndex = i % horizontalFill.length;
-    return /*#__PURE__*/React.createElement("rect", {
-      key: "react-".concat(i),
-      y: entry,
-      x: x,
-      height: lineHeight,
-      width: width,
-      stroke: "none",
-      fill: horizontalFill[colorIndex],
-      fillOpacity: fillOpacity,
-      className: "recharts-cartesian-grid-bg"
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-gridstripes-horizontal"
-  }, items);
-}
-function VerticalStripes(props) {
-  var {
-    vertical = true,
-    verticalFill,
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    verticalPoints
-  } = props;
-  if (!vertical || !verticalFill || !verticalFill.length) {
-    return null;
-  }
-  var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);
-  if (x !== roundedSortedVerticalPoints[0]) {
-    roundedSortedVerticalPoints.unshift(0);
-  }
-  var items = roundedSortedVerticalPoints.map((entry, i) => {
-    var nextPoint = roundedSortedVerticalPoints[i + 1];
-    var lastStripe = nextPoint == null;
-    var lineWidth = lastStripe ? x + width - entry : nextPoint - entry;
-    if (lineWidth <= 0) {
-      return null;
-    }
-    var colorIndex = i % verticalFill.length;
-    return /*#__PURE__*/React.createElement("rect", {
-      key: "react-".concat(i),
-      x: entry,
-      y: y,
-      width: lineWidth,
-      height: height,
-      stroke: "none",
-      fill: verticalFill[colorIndex],
-      fillOpacity: fillOpacity,
-      className: "recharts-cartesian-grid-bg"
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-gridstripes-vertical"
-  }, items);
-}
-var defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {
-  var {
-    xAxis,
-    width,
-    height,
-    offset
-  } = _ref3;
-  return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), xAxis), {}, {
-    ticks: getTicksOfAxis(xAxis, true),
-    viewBox: {
-      x: 0,
-      y: 0,
-      width,
-      height
-    }
-  })), offset.left, offset.left + offset.width, syncWithTicks);
-};
-var defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {
-  var {
-    yAxis,
-    width,
-    height,
-    offset
-  } = _ref4;
-  return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), yAxis), {}, {
-    ticks: getTicksOfAxis(yAxis, true),
-    viewBox: {
-      x: 0,
-      y: 0,
-      width,
-      height
-    }
-  })), offset.top, offset.top + offset.height, syncWithTicks);
-};
-export var defaultCartesianGridProps = {
-  horizontal: true,
-  vertical: true,
-  // The ordinates of horizontal grid lines
-  horizontalPoints: [],
-  // The abscissas of vertical grid lines
-  verticalPoints: [],
-  stroke: '#ccc',
-  fill: 'none',
-  // The fill of colors of grid lines
-  verticalFill: [],
-  horizontalFill: [],
-  xAxisId: 0,
-  yAxisId: 0,
-  syncWithTicks: false,
-  zIndex: DefaultZIndexes.grid
-};
-
-/**
- * Renders background grid with lines and fill colors in a Cartesian chart.
- *
- * @consumes CartesianChartContext
- */
-export function CartesianGrid(props) {
-  var chartWidth = useChartWidth();
-  var chartHeight = useChartHeight();
-  var offset = useOffsetInternal();
-  var propsIncludingDefaults = _objectSpread(_objectSpread({}, resolveDefaultProps(props, defaultCartesianGridProps)), {}, {
-    x: isNumber(props.x) ? props.x : offset.left,
-    y: isNumber(props.y) ? props.y : offset.top,
-    width: isNumber(props.width) ? props.width : offset.width,
-    height: isNumber(props.height) ? props.height : offset.height
-  });
-  var {
-    xAxisId,
-    yAxisId,
-    x,
-    y,
-    width,
-    height,
-    syncWithTicks,
-    horizontalValues,
-    verticalValues
-  } = propsIncludingDefaults;
-  var isPanorama = useIsPanorama();
-  var xAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama));
-  var yAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama));
-  if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {
-    return null;
-  }
-
-  /*
-   * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined
-   * outside the propsIncludingDefaults because they were never part of the original props
-   * and they were never passed as a prop down to horizontal/vertical custom elements.
-   * If we add these two to propsIncludingDefaults then we are changing public API.
-   * Not a bad thing per se but also not necessary.
-   */
-  var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;
-  var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;
-  var {
-    horizontalPoints,
-    verticalPoints
-  } = propsIncludingDefaults;
-
-  // No horizontal points are specified
-  if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {
-    var isHorizontalValues = horizontalValues && horizontalValues.length;
-    var generatorResult = horizontalCoordinatesGenerator({
-      yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {
-        ticks: isHorizontalValues ? horizontalValues : yAxis.ticks
-      }) : undefined,
-      width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,
-      height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,
-      offset
-    }, isHorizontalValues ? true : syncWithTicks);
-    warn(Array.isArray(generatorResult), "horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof generatorResult, "]"));
-    if (Array.isArray(generatorResult)) {
-      horizontalPoints = generatorResult;
-    }
-  }
-
-  // No vertical points are specified
-  if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {
-    var isVerticalValues = verticalValues && verticalValues.length;
-    var _generatorResult = verticalCoordinatesGenerator({
-      xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {
-        ticks: isVerticalValues ? verticalValues : xAxis.ticks
-      }) : undefined,
-      width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,
-      height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,
-      offset
-    }, isVerticalValues ? true : syncWithTicks);
-    warn(Array.isArray(_generatorResult), "verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof _generatorResult, "]"));
-    if (Array.isArray(_generatorResult)) {
-      verticalPoints = _generatorResult;
-    }
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: propsIncludingDefaults.zIndex
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid"
-  }, /*#__PURE__*/React.createElement(Background, {
-    fill: propsIncludingDefaults.fill,
-    fillOpacity: propsIncludingDefaults.fillOpacity,
-    x: propsIncludingDefaults.x,
-    y: propsIncludingDefaults.y,
-    width: propsIncludingDefaults.width,
-    height: propsIncludingDefaults.height,
-    ry: propsIncludingDefaults.ry
-  }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {
-    horizontalPoints: horizontalPoints
-  })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {
-    verticalPoints: verticalPoints
-  })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, {
-    offset: offset,
-    horizontalPoints: horizontalPoints,
-    xAxis: xAxis,
-    yAxis: yAxis
-  })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, {
-    offset: offset,
-    verticalPoints: verticalPoints,
-    xAxis: xAxis,
-    yAxis: yAxis
-  }))));
-}
-CartesianGrid.displayName = 'CartesianGrid';
Index: de_modules/recharts/es6/cartesian/ErrorBar.js
===================================================================
--- node_modules/recharts/es6/cartesian/ErrorBar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,257 +1,0 @@
-var _excluded = ["direction", "width", "dataKey", "isAnimationActive", "animationBegin", "animationDuration", "animationEasing"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * @fileOverview Render a group of error bar
- */
-import * as React from 'react';
-import { Layer } from '../container/Layer';
-import { ReportErrorBarSettings, useErrorBarContext } from '../context/ErrorBarContext';
-import { useXAxis, useYAxis } from '../hooks';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { useChartLayout } from '../context/chartLayoutContext';
-import { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-
-/**
- * So usually the direction is decided by the chart layout.
- * Horizontal layout means error bars are vertical means direction=y
- * Vertical layout means error bars are horizontal means direction=x
- *
- * Except! In Scatter chart, error bars can go both ways.
- *
- * So this property is only ever used in Scatter chart, and ignored elsewhere.
- */
-
-/**
- * External ErrorBar props, visible for users of the library
- */
-
-/**
- * Props after defaults, and required props have been applied.
- */
-
-function ErrorBarImpl(props) {
-  var {
-      direction,
-      width,
-      dataKey,
-      isAnimationActive,
-      animationBegin,
-      animationDuration,
-      animationEasing
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var svgProps = svgPropertiesNoEvents(others);
-  var {
-    data,
-    dataPointFormatter,
-    xAxisId,
-    yAxisId,
-    errorBarOffset: offset
-  } = useErrorBarContext();
-  var xAxis = useXAxis(xAxisId);
-  var yAxis = useYAxis(yAxisId);
-  if ((xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) == null || (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) == null || data == null) {
-    return null;
-  }
-
-  // ErrorBar requires type number XAxis, why?
-  if (direction === 'x' && xAxis.type !== 'number') {
-    return null;
-  }
-  var errorBars = data.map((entry, dataIndex) => {
-    var {
-      x,
-      y,
-      value,
-      errorVal
-    } = dataPointFormatter(entry, dataKey, direction);
-    if (!errorVal || x == null || y == null) {
-      return null;
-    }
-    var lineCoordinates = [];
-    var lowBound, highBound;
-    if (Array.isArray(errorVal)) {
-      var [low, high] = errorVal;
-      if (low == null || high == null) {
-        return null;
-      }
-      lowBound = low;
-      highBound = high;
-    } else {
-      lowBound = highBound = errorVal;
-    }
-    if (direction === 'x') {
-      // error bar for horizontal charts, the y is fixed, x is a range value
-      var {
-        scale
-      } = xAxis;
-      var yMid = y + offset;
-      var yMin = yMid + width;
-      var yMax = yMid - width;
-      var xMin = scale.map(value - lowBound);
-      var xMax = scale.map(value + highBound);
-      if (xMin != null && xMax != null) {
-        // the right line of |--|
-        lineCoordinates.push({
-          x1: xMax,
-          y1: yMin,
-          x2: xMax,
-          y2: yMax
-        });
-        // the middle line of |--|
-        lineCoordinates.push({
-          x1: xMin,
-          y1: yMid,
-          x2: xMax,
-          y2: yMid
-        });
-        // the left line of |--|
-        lineCoordinates.push({
-          x1: xMin,
-          y1: yMin,
-          x2: xMin,
-          y2: yMax
-        });
-      }
-    } else if (direction === 'y') {
-      // error bar for horizontal charts, the x is fixed, y is a range value
-      var {
-        scale: _scale
-      } = yAxis;
-      var xMid = x + offset;
-      var _xMin = xMid - width;
-      var _xMax = xMid + width;
-      var _yMin = _scale.map(value - lowBound);
-      var _yMax = _scale.map(value + highBound);
-      if (_yMin != null && _yMax != null) {
-        // the top line
-        lineCoordinates.push({
-          x1: _xMin,
-          y1: _yMax,
-          x2: _xMax,
-          y2: _yMax
-        });
-        // the middle line
-        lineCoordinates.push({
-          x1: xMid,
-          y1: _yMin,
-          x2: xMid,
-          y2: _yMax
-        });
-        // the bottom line
-        lineCoordinates.push({
-          x1: _xMin,
-          y1: _yMin,
-          x2: _xMax,
-          y2: _yMin
-        });
-      }
-    }
-    var scaleDirection = direction === 'x' ? 'scaleX' : 'scaleY';
-    var transformOrigin = "".concat(x + offset, "px ").concat(y + offset, "px");
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      className: "recharts-errorBar",
-      key: "bar-".concat(x, "-").concat(y, "-").concat(value, "-").concat(dataIndex)
-    }, svgProps), lineCoordinates.map((c, lineIndex) => {
-      var lineStyle = isAnimationActive ? {
-        transformOrigin
-      } : undefined;
-      return /*#__PURE__*/React.createElement(CSSTransitionAnimate, {
-        animationId: "error-bar-".concat(direction, "_").concat(c.x1, "-").concat(c.x2, "-").concat(c.y1, "-").concat(c.y2),
-        from: "".concat(scaleDirection, "(0)"),
-        to: "".concat(scaleDirection, "(1)"),
-        attributeName: "transform",
-        begin: animationBegin,
-        easing: animationEasing,
-        isActive: isAnimationActive,
-        duration: animationDuration,
-        key: "errorbar-".concat(dataIndex, "-").concat(c.x1, "-").concat(c.y1, "-").concat(c.x2, "-").concat(c.y2, "-").concat(lineIndex)
-      }, style => /*#__PURE__*/React.createElement("line", _extends({}, c, {
-        style: _objectSpread(_objectSpread({}, lineStyle), style)
-      })));
-    }));
-  });
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-errorBars"
-  }, errorBars);
-}
-function useErrorBarDirection(directionFromProps) {
-  var layout = useChartLayout();
-  if (directionFromProps != null) {
-    return directionFromProps;
-  }
-  if (layout != null) {
-    return layout === 'horizontal' ? 'y' : 'x';
-  }
-  return 'x';
-}
-export var errorBarDefaultProps = {
-  stroke: 'black',
-  strokeWidth: 1.5,
-  width: 5,
-  offset: 0,
-  isAnimationActive: true,
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'ease-in-out',
-  zIndex: DefaultZIndexes.line
-};
-
-/**
- * ErrorBar renders whiskers to represent error margins on a chart.
- *
- * It must be a child of a graphical element.
- *
- * ErrorBar expects data in one of the following forms:
- * - Symmetric error bars: a single error value representing both lower and upper bounds.
- * - Asymmetric error bars: an array of two values representing lower and upper bounds separately. First value is the lower bound, second value is the upper bound.
- *
- * The values provided are relative to the main data value.
- * For example, if the main data value is 10 and the error value is 2,
- * the error bar will extend from 8 to 12 for symmetric error bars.
- *
- * In other words, what ErrorBar will render is:
- * - For symmetric error bars: [value - errorVal, value + errorVal]
- * - For asymmetric error bars: [value - errorVal[0], value + errorVal[1]]
- *
- * In stacked or ranged Bar charts, ErrorBar will use the higher data value
- * as the reference point for calculating the error bar positions.
- *
- * @consumes ErrorBarContext
- */
-export function ErrorBar(outsideProps) {
-  var realDirection = useErrorBarDirection(outsideProps.direction);
-  var props = resolveDefaultProps(outsideProps, errorBarDefaultProps);
-  var {
-    width,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    zIndex
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportErrorBarSettings, {
-    dataKey: props.dataKey,
-    direction: realDirection
-  }), /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(ErrorBarImpl, _extends({}, props, {
-    direction: realDirection,
-    width: width,
-    isAnimationActive: isAnimationActive,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing
-  }))));
-}
-ErrorBar.displayName = 'ErrorBar';
Index: de_modules/recharts/es6/cartesian/Funnel.js
===================================================================
--- node_modules/recharts/es6/cartesian/Funnel.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,473 +1,0 @@
-var _excluded = ["onMouseEnter", "onClick", "onMouseLeave", "shape", "activeShape"],
-  _excluded2 = ["id"],
-  _excluded3 = ["stroke", "fill", "legendType", "hide", "isAnimationActive", "animationBegin", "animationDuration", "animationEasing", "nameKey", "lastShapeType", "id"],
-  _excluded4 = ["id"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { useCallback, useMemo, useRef, useState } from 'react';
-import omit from 'es-toolkit/compat/omit';
-import { clsx } from 'clsx';
-import { selectActiveIndex } from '../state/selectors/selectors';
-import { useAppSelector } from '../state/hooks';
-import { Layer } from '../container/Layer';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { getPercentValue, interpolate } from '../util/DataUtils';
-import { getValueByDataKey } from '../util/ChartUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { FunnelTrapezoid } from '../util/FunnelUtils';
-import { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { selectFunnelTrapezoids } from '../state/selectors/funnelSelectors';
-import { findAllByType } from '../util/ReactUtils';
-import { Cell } from '../component/Cell';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { usePlotArea } from '../hooks';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { useAnimationId } from '../util/useAnimationId';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-var SetFunnelTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    data,
-    trapezoids,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: index => {
-      var _trapezoids$Number;
-      return (_trapezoids$Number = trapezoids[Number(index)]) === null || _trapezoids$Number === void 0 ? void 0 : _trapezoids$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      name,
-      nameKey,
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // Funnel does not have unit, why?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function FunnelLabelListProvider(_ref2) {
-  var {
-    showLabels,
-    trapezoids,
-    children
-  } = _ref2;
-  var labelListEntries = useMemo(() => {
-    if (!showLabels) {
-      return undefined;
-    }
-    return trapezoids === null || trapezoids === void 0 ? void 0 : trapezoids.map(entry => {
-      var viewBox = entry.labelViewBox;
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        value: entry.name,
-        payload: entry.payload,
-        parentViewBox: entry.parentViewBox,
-        viewBox,
-        fill: entry.fill
-      });
-    });
-  }, [showLabels, trapezoids]);
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: labelListEntries
-  }, children);
-}
-function FunnelTrapezoids(props) {
-  var {
-    trapezoids,
-    allOtherFunnelProps
-  } = props;
-  var activeItemIndex = useAppSelector(state => selectActiveIndex(state, 'item', state.tooltip.settings.trigger, undefined));
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps,
-      shape,
-      activeShape
-    } = allOtherFunnelProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherFunnelProps, _excluded);
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, trapezoids.map((entry, i) => {
-    var isActiveIndex = Boolean(activeShape) && activeItemIndex === String(i);
-    var trapezoidOptions = isActiveIndex ? activeShape : shape;
-    var _entry$option$isActiv = _objectSpread(_objectSpread({}, entry), {}, {
-        option: trapezoidOptions,
-        isActive: isActiveIndex,
-        stroke: entry.stroke
-      }),
-      {
-        id
-      } = _entry$option$isActiv,
-      trapezoidProps = _objectWithoutProperties(_entry$option$isActiv, _excluded2);
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      key: "trapezoid-".concat(entry === null || entry === void 0 ? void 0 : entry.x, "-").concat(entry === null || entry === void 0 ? void 0 : entry.y, "-").concat(entry === null || entry === void 0 ? void 0 : entry.name, "-").concat(entry === null || entry === void 0 ? void 0 : entry.value),
-      className: "recharts-funnel-trapezoid"
-    }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(FunnelTrapezoid, trapezoidProps));
-  }));
-}
-function TrapezoidsWithAnimation(_ref3) {
-  var {
-    previousTrapezoidsRef,
-    props
-  } = _ref3;
-  var {
-    trapezoids,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevTrapezoids = previousTrapezoidsRef.current;
-  var [isAnimating, setIsAnimating] = useState(false);
-  var showLabels = !isAnimating;
-  var animationId = useAnimationId(trapezoids, 'recharts-funnel-');
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(FunnelLabelListProvider, {
-    showLabels: showLabels,
-    trapezoids: trapezoids
-  }, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    key: animationId,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd
-  }, t => {
-    var stepData = t === 1 ? trapezoids : trapezoids.map((entry, index) => {
-      var prev = prevTrapezoids && prevTrapezoids[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: interpolate(prev.x, entry.x, t),
-          y: interpolate(prev.y, entry.y, t),
-          upperWidth: interpolate(prev.upperWidth, entry.upperWidth, t),
-          lowerWidth: interpolate(prev.lowerWidth, entry.lowerWidth, t),
-          height: interpolate(prev.height, entry.height, t)
-        });
-      }
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        x: interpolate(entry.x + entry.upperWidth / 2, entry.x, t),
-        y: interpolate(entry.y + entry.height / 2, entry.y, t),
-        upperWidth: interpolate(0, entry.upperWidth, t),
-        lowerWidth: interpolate(0, entry.lowerWidth, t),
-        height: interpolate(0, entry.height, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousTrapezoidsRef.current = stepData;
-    }
-    return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(FunnelTrapezoids, {
-      trapezoids: stepData,
-      allOtherFunnelProps: props
-    }));
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderTrapezoids(props) {
-  var previousTrapezoidsRef = useRef(undefined);
-  return /*#__PURE__*/React.createElement(TrapezoidsWithAnimation, {
-    props: props,
-    previousTrapezoidsRef: previousTrapezoidsRef
-  });
-}
-var getRealWidthHeight = (customWidth, offset) => {
-  var {
-    width,
-    height,
-    left,
-    top
-  } = offset;
-  var realWidth = getPercentValue(customWidth, width, width);
-  return {
-    realWidth,
-    realHeight: height,
-    offsetX: left,
-    offsetY: top
-  };
-};
-export var defaultFunnelProps = {
-  animationBegin: 400,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  fill: '#808080',
-  hide: false,
-  isAnimationActive: 'auto',
-  lastShapeType: 'triangle',
-  legendType: 'rect',
-  nameKey: 'name',
-  reversed: false,
-  stroke: '#fff'
-};
-function FunnelImpl(props) {
-  var plotArea = usePlotArea();
-  var {
-      stroke,
-      fill,
-      legendType,
-      hide,
-      isAnimationActive,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      nameKey,
-      lastShapeType,
-      id
-    } = props,
-    everythingElse = _objectWithoutProperties(props, _excluded3);
-  var presentationProps = svgPropertiesNoEvents(props);
-  var cells = findAllByType(props.children, Cell);
-  var funnelSettings = useMemo(() => ({
-    dataKey: props.dataKey,
-    nameKey,
-    data: props.data,
-    tooltipType: props.tooltipType,
-    lastShapeType,
-    reversed: props.reversed,
-    customWidth: props.width,
-    cells,
-    presentationProps,
-    id
-  }), [props.dataKey, nameKey, props.data, props.tooltipType, lastShapeType, props.reversed, props.width, cells, presentationProps, id]);
-  var trapezoids = useAppSelector(state => selectFunnelTrapezoids(state, funnelSettings));
-  if (hide || !trapezoids || !trapezoids.length || !plotArea) {
-    return null;
-  }
-  var {
-    height,
-    width
-  } = plotArea;
-  var layerClass = clsx('recharts-trapezoids', props.className);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetFunnelTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    data: props.data,
-    trapezoids: trapezoids,
-    id: id
-  }), /*#__PURE__*/React.createElement(Layer, {
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(RenderTrapezoids, _extends({}, everythingElse, {
-    id: id,
-    stroke: stroke,
-    fill: fill,
-    nameKey: nameKey,
-    lastShapeType: lastShapeType,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    hide: hide,
-    legendType: legendType,
-    height: height,
-    width: width,
-    trapezoids: trapezoids
-  }))));
-}
-export function computeFunnelTrapezoids(_ref4) {
-  var {
-    dataKey,
-    nameKey,
-    displayedData,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    offset,
-    customWidth,
-    graphicalItemId
-  } = _ref4;
-  var {
-    realHeight,
-    realWidth,
-    offsetX,
-    offsetY
-  } = getRealWidthHeight(customWidth, offset);
-  var values = displayedData.map(entry => {
-    var val = getValueByDataKey(entry, dataKey, 0);
-    return typeof val === 'number' ? val : 0;
-  });
-  var maxValue = Math.max.apply(null, values);
-  var len = displayedData.length;
-  var rowHeight = realHeight / len;
-  var parentViewBox = {
-    x: offset.left,
-    y: offset.top,
-    width: offset.width,
-    height: offset.height
-  };
-  var trapezoids = displayedData.map((entry, i) => {
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var rawVal = getValueByDataKey(entry, dataKey, 0);
-    var name = String(getValueByDataKey(entry, nameKey, i));
-    var val = rawVal;
-    var nextVal;
-    if (i !== len - 1) {
-      var nextDataValue = getValueByDataKey(displayedData[i + 1], dataKey, 0);
-      if (typeof nextDataValue === 'number') {
-        nextVal = nextDataValue;
-      } else if (Array.isArray(nextDataValue)) {
-        var [first, second] = nextDataValue;
-        if (typeof first === 'number') {
-          val = first;
-        }
-        if (typeof second === 'number') {
-          nextVal = second;
-        }
-      }
-    } else if (rawVal instanceof Array && rawVal.length === 2) {
-      var [_first, _second] = rawVal;
-      if (typeof _first === 'number') {
-        val = _first;
-      }
-      if (typeof _second === 'number') {
-        nextVal = _second;
-      }
-    } else if (lastShapeType === 'rectangle') {
-      nextVal = val;
-    } else {
-      nextVal = 0;
-    }
-
-    // @ts-expect-error this is a problem if we have ranged values because `val` can be an array
-    var x = (maxValue - val) * realWidth / (2 * maxValue) + offsetX;
-    var y = rowHeight * i + offsetY;
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var upperWidth = val / maxValue * realWidth;
-    // @ts-expect-error nextVal could be an array
-    var lowerWidth = nextVal / maxValue * realWidth;
-    var tooltipPayload = [{
-      name,
-      value: val,
-      payload: entry,
-      dataKey,
-      type: tooltipType,
-      graphicalItemId
-    }];
-    var tooltipPosition = {
-      x: x + upperWidth / 2,
-      y: y + rowHeight / 2
-    };
-    var trapezoidViewBox = {
-      x,
-      y,
-      upperWidth,
-      lowerWidth,
-      width: Math.max(upperWidth, lowerWidth),
-      height: rowHeight
-    };
-    return _objectSpread(_objectSpread(_objectSpread({}, trapezoidViewBox), {}, {
-      name,
-      val,
-      tooltipPayload,
-      tooltipPosition
-    }, entry != null && typeof entry === 'object' ? omit(entry, ['width']) : {}), {}, {
-      payload: entry,
-      parentViewBox,
-      labelViewBox: trapezoidViewBox
-    });
-  });
-  if (reversed) {
-    trapezoids = trapezoids.map((entry, index) => {
-      var reversedViewBox = {
-        x: entry.x - (entry.lowerWidth - entry.upperWidth) / 2,
-        y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight,
-        upperWidth: entry.lowerWidth,
-        lowerWidth: entry.upperWidth,
-        width: Math.max(entry.lowerWidth, entry.upperWidth),
-        height: rowHeight
-      };
-      return _objectSpread(_objectSpread(_objectSpread({}, entry), reversedViewBox), {}, {
-        tooltipPosition: _objectSpread(_objectSpread({}, entry.tooltipPosition), {}, {
-          y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight + rowHeight / 2
-        }),
-        labelViewBox: reversedViewBox
-      });
-    });
-  }
-  return trapezoids;
-}
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export function Funnel(outsideProps) {
-  var _resolveDefaultProps = resolveDefaultProps(outsideProps, defaultFunnelProps),
-    {
-      id: externalId
-    } = _resolveDefaultProps,
-    props = _objectWithoutProperties(_resolveDefaultProps, _excluded4);
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: externalId,
-    type: "funnel"
-  }, id => /*#__PURE__*/React.createElement(FunnelImpl, _extends({}, props, {
-    id: id
-  })));
-}
-Funnel.displayName = 'Funnel';
Index: de_modules/recharts/es6/cartesian/GraphicalItemClipPath.js
===================================================================
--- node_modules/recharts/es6/cartesian/GraphicalItemClipPath.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import * as React from 'react';
-import { useAppSelector } from '../state/hooks';
-import { implicitXAxis, implicitYAxis, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';
-import { usePlotArea } from '../hooks';
-export function useNeedsClip(xAxisId, yAxisId) {
-  var _xAxis$allowDataOverf, _yAxis$allowDataOverf;
-  var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));
-  var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));
-  var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : implicitXAxis.allowDataOverflow;
-  var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : implicitYAxis.allowDataOverflow;
-  var needClip = needClipX || needClipY;
-  return {
-    needClip,
-    needClipX,
-    needClipY
-  };
-}
-export function GraphicalItemClipPath(_ref) {
-  var {
-    xAxisId,
-    yAxisId,
-    clipPathId
-  } = _ref;
-  var plotArea = usePlotArea();
-  var {
-    needClipX,
-    needClipY,
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  if (!needClip || !plotArea) {
-    return null;
-  }
-  var {
-    x,
-    y,
-    width,
-    height
-  } = plotArea;
-  return /*#__PURE__*/React.createElement("clipPath", {
-    id: "clipPath-".concat(clipPathId)
-  }, /*#__PURE__*/React.createElement("rect", {
-    x: needClipX ? x : x - width / 2,
-    y: needClipY ? y : y - height / 2,
-    width: needClipX ? width : width * 2,
-    height: needClipY ? height : height * 2
-  }));
-}
Index: de_modules/recharts/es6/cartesian/Line.js
===================================================================
--- node_modules/recharts/es6/cartesian/Line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,686 +1,0 @@
-var _excluded = ["id"],
-  _excluded2 = ["type", "layout", "connectNulls", "needClip", "shape"],
-  _excluded3 = ["activeDot", "animateNewValues", "animationBegin", "animationDuration", "animationEasing", "connectNulls", "dot", "hide", "isAnimationActive", "label", "legendType", "xAxisId", "yAxisId", "id"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { Component, useCallback, useMemo, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { Dots } from '../component/Dots';
-import { interpolate, isNullish, noop } from '../util/DataUtils';
-import { isClipDot } from '../util/ReactUtils';
-import { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
-import { ActivePoints } from '../component/ActivePoints';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { SetErrorBarContext } from '../context/ErrorBarContext';
-import { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';
-import { useChartLayout } from '../context/chartLayoutContext';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { selectLinePoints } from '../state/selectors/lineSelectors';
-import { useAppSelector } from '../state/hooks';
-import { SetLegendPayload } from '../state/SetLegendPayload';
-import { useAnimationId } from '../util/useAnimationId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { usePlotArea } from '../hooks';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';
-import { Shape } from '../util/ActiveShapeUtils';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { propsAreEqual } from '../util/propsAreEqual';
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-var computeLegendPayloadFromAreaData = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: stroke,
-    value: getTooltipNameProp(name, dataKey),
-    payload: props
-  }];
-};
-var SetLineTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    data,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: stroke,
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-var generateSimpleStrokeDasharray = (totalLength, length) => {
-  return "".concat(length, "px ").concat(totalLength - length, "px");
-};
-function repeat(lines, count) {
-  var linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;
-  var result = [];
-  for (var i = 0; i < count; ++i) {
-    result = [...result, ...linesUnit];
-  }
-  return result;
-}
-var getStrokeDasharray = (length, totalLength, lines) => {
-  var lineLength = lines.reduce((pre, next) => pre + next);
-
-  // if lineLength is 0 return the default when no strokeDasharray is provided
-  if (!lineLength) {
-    return generateSimpleStrokeDasharray(totalLength, length);
-  }
-  var count = Math.floor(length / lineLength);
-  var remainLength = length % lineLength;
-  var restLength = totalLength - length;
-  var remainLines = [];
-  for (var i = 0, sum = 0; i < lines.length; sum += (_lines$i = lines[i]) !== null && _lines$i !== void 0 ? _lines$i : 0, ++i) {
-    var _lines$i;
-    var lineValue = lines[i];
-    if (lineValue != null && sum + lineValue > remainLength) {
-      remainLines = [...lines.slice(0, i), remainLength - sum];
-      break;
-    }
-  }
-  var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];
-  return [...repeat(lines, count), ...remainLines, ...emptyLines].map(line => "".concat(line, "px")).join(', ');
-};
-function LineDotsWrapper(_ref2) {
-  var {
-    clipPathId,
-    points,
-    props
-  } = _ref2;
-  var {
-    dot,
-    dataKey,
-    needClip
-  } = props;
-
-  /*
-   * Exclude ID from the props passed to the Dots component
-   * because then the ID would be applied to multiple dots, and it would no longer be unique.
-   */
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var lineProps = svgPropertiesNoEvents(propsWithoutId);
-  return /*#__PURE__*/React.createElement(Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-line-dots",
-    dotClassName: "recharts-line-dot",
-    dataKey: dataKey,
-    baseProps: lineProps,
-    needClip: needClip,
-    clipPathId: clipPathId
-  });
-}
-function LineLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    children,
-    points
-  } = _ref3;
-  var labelListEntries = useMemo(() => {
-    return points === null || points === void 0 ? void 0 : points.map(point => {
-      var _point$x, _point$y;
-      var viewBox = {
-        x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-        y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-        width: 0,
-        lowerWidth: 0,
-        upperWidth: 0,
-        height: 0
-      };
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        value: point.value,
-        payload: point.payload,
-        viewBox,
-        /*
-         * Line is not passing parentViewBox to the LabelList so the labels can escape - looks like a bug, should we pass parentViewBox?
-         * Or should this just be the root chart viewBox?
-         */
-        parentViewBox: undefined,
-        fill: undefined
-      });
-    });
-  }, [points]);
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticCurve(_ref4) {
-  var {
-    clipPathId,
-    pathRef,
-    points,
-    strokeDasharray,
-    props
-  } = _ref4;
-  var {
-      type,
-      layout,
-      connectNulls,
-      needClip,
-      shape
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var curveProps = _objectSpread(_objectSpread({}, svgPropertiesAndEvents(others)), {}, {
-    fill: 'none',
-    className: 'recharts-line-curve',
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined,
-    points,
-    type,
-    layout,
-    connectNulls,
-    strokeDasharray: strokeDasharray !== null && strokeDasharray !== void 0 ? strokeDasharray : props.strokeDasharray
-  });
-  return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(Shape, _extends({
-    shapeType: "curve",
-    option: shape
-  }, curveProps, {
-    pathRef: pathRef
-  })), /*#__PURE__*/React.createElement(LineDotsWrapper, {
-    points: points,
-    clipPathId: clipPathId,
-    props: props
-  }));
-}
-function getTotalLength(mainCurve) {
-  try {
-    return mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength() || 0;
-  } catch (_unused) {
-    return 0;
-  }
-}
-function CurveWithAnimation(_ref5) {
-  var {
-    clipPathId,
-    props,
-    pathRef,
-    previousPointsRef,
-    longestAnimatedLengthRef
-  } = _ref5;
-  var {
-    points,
-    strokeDasharray,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    animateNewValues,
-    width,
-    height,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var animationId = useAnimationId(points, 'recharts-line-');
-  var animationIdRef = useRef(animationId);
-  var [isAnimating, setIsAnimating] = useState(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  var totalLength = getTotalLength(pathRef.current);
-  /*
-   * Here we want to detect if the length animation has been interrupted.
-   * For that we keep a reference to the furthest length that has been animated.
-   *
-   * And then, to keep things smooth, we add to it the current length that is being animated right now.
-   *
-   * If we did Math.max then it makes the length animation "pause" but we want to keep it smooth
-   * so in case we have some "leftover" length from the previous animation we add it to the current length.
-   *
-   * This is not perfect because the animation changes speed due to easing. The default easing is 'ease' which is not linear
-   * and makes it stand out. But it's good enough I suppose.
-   * If we want to fix it then we need to keep track of multiple animations and their easing and timings.
-   *
-   * If you want to see this in action, try to change the dataKey of the line chart while the initial animation is running.
-   * The Line begins with zero length and slowly grows to the full length. While this growth is in progress,
-   * change the dataKey and the Line will continue growing from where it has grown so far.
-   *
-   * This is for the case when new animation triggers. When that happens we get new points, everything re-renders,
-   * and we get fresh new state in this component and use the ref stored above.
-   *
-   * In case when we get render without new animation - for example when opacity changes, or color changes,
-   * then the animationId remains the same, and we do not update the starting point.
-   * See https://github.com/recharts/recharts/issues/6044
-   */
-  var startingPointRef = useRef(0);
-  if (animationIdRef.current !== animationId) {
-    startingPointRef.current = longestAnimatedLengthRef.current;
-    animationIdRef.current = animationId;
-  }
-  var startingPoint = startingPointRef.current;
-  return /*#__PURE__*/React.createElement(LineLabelListProvider, {
-    points: points,
-    showLabels: showLabels
-  }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var lengthInterpolated = interpolate(startingPoint, totalLength + startingPoint, t);
-    var curLength = Math.min(lengthInterpolated, totalLength);
-    var currentStrokeDasharray;
-    if (isAnimationActive) {
-      if (strokeDasharray) {
-        var lines = "".concat(strokeDasharray).split(/[,\s]+/gim).map(num => parseFloat(num));
-        currentStrokeDasharray = getStrokeDasharray(curLength, totalLength, lines);
-      } else {
-        currentStrokeDasharray = generateSimpleStrokeDasharray(totalLength, curLength);
-      }
-    } else {
-      currentStrokeDasharray = strokeDasharray == null ? undefined : String(strokeDasharray);
-    }
-
-    /*
-     * Here it is important to wait a little bit with updating the previousPointsRef
-     * before the animation has a time to initialize.
-     * If we set the previous pointsRef immediately, we set it before the Legend height it calculated
-     * and before pathRef is set.
-     * If that happens, the Line will re-render again after Legend had reported its height
-     * which will start a new animation with the previous points as the starting point
-     * which gives the effect of the Line animating slightly upwards (where the animation distance equals the Legend height).
-     * Waiting for t > 0 is indirect but good enough to ensure that the Legend height is calculated and animation works properly.
-     *
-     * Total length similarly is calculated from the pathRef. We should not update the previousPointsRef
-     * before the pathRef is set, otherwise we will have a wrong total length.
-     */
-    if (t > 0 && totalLength > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = points;
-      /*
-       * totalLength is set from a ref and is not updated in the first tick of the animation.
-       * It defaults to zero which is exactly what we want here because we want to grow from zero,
-       * however the same happens when the data change.
-       *
-       * In that case we want to remember the previous length and continue from there, and only animate the shape.
-       *
-       * Therefore the totalLength > 0 check.
-       *
-       * The Animate is about to fire handleAnimationStart which will update the state
-       * and cause a re-render and read a new proper totalLength which will be used in the next tick
-       * and update the longestAnimatedLengthRef.
-       *
-       * Why Math.max? Sometimes the curve goes through a smaller length than previously recorded.
-       * If we just set it to curLength, then the next animation would start from a smaller length
-       * which looks weird. So we keep the longest length ever reached and then animate from there.
-       */
-      // eslint-disable-next-line no-param-reassign
-      longestAnimatedLengthRef.current = Math.max(longestAnimatedLengthRef.current, curLength);
-    }
-    if (prevPoints) {
-      var prevPointsDiffFactor = prevPoints.length / points.length;
-      var stepData = t === 1 ? points : points.map((entry, index) => {
-        var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-        if (prevPoints[prevPointIndex]) {
-          var prev = prevPoints[prevPointIndex];
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: interpolate(prev.x, entry.x, t),
-            y: interpolate(prev.y, entry.y, t)
-          });
-        }
-
-        // magic number of faking previous x and y location
-        if (animateNewValues) {
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: interpolate(width * 2, entry.x, t),
-            y: interpolate(height / 2, entry.y, t)
-          });
-        }
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: entry.x,
-          y: entry.y
-        });
-      });
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-      return /*#__PURE__*/React.createElement(StaticCurve, {
-        props: props,
-        points: stepData,
-        clipPathId: clipPathId,
-        pathRef: pathRef,
-        strokeDasharray: currentStrokeDasharray
-      });
-    }
-    return /*#__PURE__*/React.createElement(StaticCurve, {
-      props: props,
-      points: points,
-      clipPathId: clipPathId,
-      pathRef: pathRef,
-      strokeDasharray: currentStrokeDasharray
-    });
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-function RenderCurve(_ref6) {
-  var {
-    clipPathId,
-    props
-  } = _ref6;
-  var previousPointsRef = useRef(null);
-  var longestAnimatedLengthRef = useRef(0);
-  var pathRef = useRef(null);
-  return /*#__PURE__*/React.createElement(CurveWithAnimation, {
-    props: props,
-    clipPathId: clipPathId,
-    previousPointsRef: previousPointsRef,
-    longestAnimatedLengthRef: longestAnimatedLengthRef,
-    pathRef: pathRef
-  });
-}
-var errorBarDataPointFormatter = (dataPoint, dataKey) => {
-  var _dataPoint$x, _dataPoint$y;
-  return {
-    x: (_dataPoint$x = dataPoint.x) !== null && _dataPoint$x !== void 0 ? _dataPoint$x : undefined,
-    y: (_dataPoint$y = dataPoint.y) !== null && _dataPoint$y !== void 0 ? _dataPoint$y : undefined,
-    value: dataPoint.value,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: getValueByDataKey(dataPoint.payload, dataKey)
-  };
-};
-
-// eslint-disable-next-line react/prefer-stateless-function
-class LineWithState extends Component {
-  render() {
-    var {
-      hide,
-      dot,
-      points,
-      className,
-      xAxisId,
-      yAxisId,
-      top,
-      left,
-      width,
-      height,
-      id,
-      needClip,
-      zIndex
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = clsx('recharts-line', className);
-    var clipPathId = id;
-    var {
-      r,
-      strokeWidth
-    } = getRadiusAndStrokeWidthFromDot(dot);
-    var clipDot = isClipDot(dot);
-    var dotSize = r * 2 + strokeWidth;
-    var activePointsClipPath = needClip ? "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")") : undefined;
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: zIndex
-    }, /*#__PURE__*/React.createElement(Layer, {
-      className: layerClass
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    }), !clipDot && /*#__PURE__*/React.createElement("clipPath", {
-      id: "clipPath-dots-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement("rect", {
-      x: left - dotSize / 2,
-      y: top - dotSize / 2,
-      width: width + dotSize,
-      height: height + dotSize
-    }))), /*#__PURE__*/React.createElement(SetErrorBarContext, {
-      xAxisId: xAxisId,
-      yAxisId: yAxisId,
-      data: points,
-      dataPointFormatter: errorBarDataPointFormatter,
-      errorBarOffset: 0
-    }, /*#__PURE__*/React.createElement(RenderCurve, {
-      props: this.props,
-      clipPathId: clipPathId
-    }))), /*#__PURE__*/React.createElement(ActivePoints, {
-      activeDot: this.props.activeDot,
-      points: points,
-      mainColor: this.props.stroke,
-      itemDataKey: this.props.dataKey,
-      clipPath: activePointsClipPath
-    }));
-  }
-}
-export var defaultLineProps = {
-  activeDot: true,
-  animateNewValues: true,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  connectNulls: false,
-  dot: true,
-  fill: '#fff',
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'line',
-  stroke: '#3182bd',
-  strokeWidth: 1,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: DefaultZIndexes.line,
-  type: 'linear'
-};
-function LineImpl(props) {
-  var _resolveDefaultProps = resolveDefaultProps(props, defaultLineProps),
-    {
-      activeDot,
-      animateNewValues,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      connectNulls,
-      dot,
-      hide,
-      isAnimationActive,
-      label,
-      legendType,
-      xAxisId,
-      yAxisId,
-      id
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);
-  var {
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  var plotArea = usePlotArea();
-  var layout = useChartLayout();
-  var isPanorama = useIsPanorama();
-  var points = useAppSelector(state => selectLinePoints(state, xAxisId, yAxisId, isPanorama, id));
-  if (layout !== 'horizontal' && layout !== 'vertical' || points == null || plotArea == null) {
-    // Cannot render Line in an unsupported layout
-    return null;
-  }
-  var {
-    height,
-    width,
-    x: left,
-    y: top
-  } = plotArea;
-  return /*#__PURE__*/React.createElement(LineWithState, _extends({}, everythingElse, {
-    id: id,
-    connectNulls: connectNulls,
-    dot: dot,
-    activeDot: activeDot,
-    animateNewValues: animateNewValues,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    hide: hide,
-    label: label,
-    legendType: legendType,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    points: points,
-    layout: layout,
-    height: height,
-    width: width,
-    left: left,
-    top: top,
-    needClip: needClip
-  }));
-}
-export function computeLinePoints(_ref7) {
-  var {
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataKey,
-    bandSize,
-    displayedData
-  } = _ref7;
-  return displayedData.map((entry, index) => {
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var value = getValueByDataKey(entry, dataKey);
-    if (layout === 'horizontal') {
-      var _x = getCateCoordinateOfLine({
-        axis: xAxis,
-        ticks: xAxisTicks,
-        bandSize,
-        entry,
-        index
-      });
-      var _y = isNullish(value) ? null : yAxis.scale.map(value);
-      return {
-        x: _x,
-        y: _y !== null && _y !== void 0 ? _y : null,
-        value,
-        payload: entry
-      };
-    }
-    var x = isNullish(value) ? null : xAxis.scale.map(value);
-    var y = getCateCoordinateOfLine({
-      axis: yAxis,
-      ticks: yAxisTicks,
-      bandSize,
-      entry,
-      index
-    });
-    if (x == null || y == null) {
-      return null;
-    }
-    return {
-      x,
-      y,
-      value,
-      payload: entry
-    };
-  }).filter(Boolean);
-}
-function LineFn(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultLineProps);
-  var isPanorama = useIsPanorama();
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "line"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromAreaData(props)
-  }), /*#__PURE__*/React.createElement(SetLineTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    data: props.data,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {
-    type: "line",
-    id: id,
-    data: props.data,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(LineImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @consumes CartesianChartContext
- */
-export var Line = /*#__PURE__*/React.memo(LineFn, propsAreEqual);
-Line.displayName = 'Line';
Index: de_modules/recharts/es6/cartesian/ReferenceArea.js
===================================================================
--- node_modules/recharts/es6/cartesian/ReferenceArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,175 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { useEffect } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';
-import { rectWithPoints } from '../util/CartesianUtils';
-import { isNumOrStr } from '../util/DataUtils';
-import { Rectangle } from '../shape/Rectangle';
-import { addArea, removeArea } from '../state/referenceElementsSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectAxisScale } from '../state/selectors/axisSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { useClipPathId } from '../container/ClipPathProvider';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';
-
-/*
- * Omit width, height, x, y from SVGPropsAndEvents because ReferenceArea receives x1, x2, y1, y2 instead.
- * The position is calculated internally instead.
- */
-
-var getRect = (hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props) => {
-  var _xAxisScale$map, _yAxisScale$map, _xAxisScale$map2, _yAxisScale$map2;
-  var {
-    x1: xValue1,
-    x2: xValue2,
-    y1: yValue1,
-    y2: yValue2
-  } = props;
-  if (xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var scales = new CartesianScaleHelperImpl({
-    x: xAxisScale,
-    y: yAxisScale
-  });
-  var p1 = {
-    x: hasX1 ? (_xAxisScale$map = xAxisScale.map(xValue1, {
-      position: 'start'
-    })) !== null && _xAxisScale$map !== void 0 ? _xAxisScale$map : null : xAxisScale.rangeMin(),
-    y: hasY1 ? (_yAxisScale$map = yAxisScale.map(yValue1, {
-      position: 'start'
-    })) !== null && _yAxisScale$map !== void 0 ? _yAxisScale$map : null : yAxisScale.rangeMin()
-  };
-  var p2 = {
-    x: hasX2 ? (_xAxisScale$map2 = xAxisScale.map(xValue2, {
-      position: 'end'
-    })) !== null && _xAxisScale$map2 !== void 0 ? _xAxisScale$map2 : null : xAxisScale.rangeMax(),
-    y: hasY2 ? (_yAxisScale$map2 = yAxisScale.map(yValue2, {
-      position: 'end'
-    })) !== null && _yAxisScale$map2 !== void 0 ? _yAxisScale$map2 : null : yAxisScale.rangeMax()
-  };
-  if (props.ifOverflow === 'discard' && (!scales.isInRange(p1) || !scales.isInRange(p2))) {
-    return null;
-  }
-
-  // @ts-expect-error we're sending nullable coordinates but rectWithPoints expects non-nullable Coordinate
-  return rectWithPoints(p1, p2);
-};
-var renderRect = (option, props) => {
-  var rect;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    rect = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    rect = option(props);
-  } else {
-    rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {
-      className: "recharts-reference-area-rect"
-    }));
-  }
-  return rect;
-};
-function ReportReferenceArea(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(addArea(props));
-    return () => {
-      dispatch(removeArea(props));
-    };
-  });
-  return null;
-}
-function ReferenceAreaImpl(props) {
-  var {
-    x1,
-    x2,
-    y1,
-    y2,
-    className,
-    shape,
-    xAxisId,
-    yAxisId
-  } = props;
-  var clipPathId = useClipPathId();
-  var isPanorama = useIsPanorama();
-  var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
-  if (xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var hasX1 = isNumOrStr(x1);
-  var hasX2 = isNumOrStr(x2);
-  var hasY1 = isNumOrStr(y1);
-  var hasY2 = isNumOrStr(y2);
-  if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {
-    return null;
-  }
-  var rect = getRect(hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props);
-  if (!rect && !shape) {
-    return null;
-  }
-  var isOverflowHidden = props.ifOverflow === 'hidden';
-  var clipPath = isOverflowHidden ? "url(#".concat(clipPathId, ")") : undefined;
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-reference-area', className)
-  }, renderRect(shape, _objectSpread(_objectSpread({
-    clipPath
-  }, svgPropertiesAndEvents(props)), rect)), rect != null && /*#__PURE__*/React.createElement(CartesianLabelContextProvider, _extends({}, rect, {
-    lowerWidth: rect.width,
-    upperWidth: rect.width
-  }), /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-export var referenceAreaDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  radius: 0,
-  fill: '#ccc',
-  label: false,
-  fillOpacity: 0.5,
-  stroke: 'none',
-  strokeWidth: 1,
-  zIndex: DefaultZIndexes.area
-};
-/**
- * Draws a rectangular area on the chart to highlight a specific range.
- *
- * This component, unlike {@link Rectangle} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect}, is aware of the cartesian coordinate system,
- * so you specify the area by using data coordinates instead of pixels.
- *
- * ReferenceArea will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render rectangles using pixels rather than data coordinates,
- * consider using the {@link Rectangle} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export function ReferenceArea(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, referenceAreaDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceArea, {
-    yAxisId: props.yAxisId,
-    xAxisId: props.xAxisId,
-    ifOverflow: props.ifOverflow,
-    x1: props.x1,
-    x2: props.x2,
-    y1: props.y1,
-    y2: props.y2
-  }), /*#__PURE__*/React.createElement(ReferenceAreaImpl, props));
-}
-ReferenceArea.displayName = 'ReferenceArea';
Index: de_modules/recharts/es6/cartesian/ReferenceDot.js
===================================================================
--- node_modules/recharts/es6/cartesian/ReferenceDot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,161 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { useEffect } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { Dot } from '../shape/Dot';
-import { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';
-import { isNumOrStr } from '../util/DataUtils';
-import { addDot, removeDot } from '../state/referenceElementsSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectAxisScale } from '../state/selectors/axisSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { useClipPathId } from '../container/ClipPathProvider';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';
-var useCoordinate = (x, y, xAxisId, yAxisId, ifOverflow) => {
-  var isX = isNumOrStr(x);
-  var isY = isNumOrStr(y);
-  var isPanorama = useIsPanorama();
-  var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
-  if (!isX || !isY || xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var scales = new CartesianScaleHelperImpl({
-    x: xAxisScale,
-    y: yAxisScale
-  });
-  var result = scales.map({
-    x,
-    y
-  }, {
-    position: 'middle'
-  });
-  if (ifOverflow === 'discard' && !scales.isInRange(result)) {
-    return null;
-  }
-  return result;
-};
-function ReportReferenceDot(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(addDot(props));
-    return () => {
-      dispatch(removeDot(props));
-    };
-  });
-  return null;
-}
-var renderDot = (option, props) => {
-  var dot;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    dot = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    dot = option(props);
-  } else {
-    dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {
-      cx: props.cx,
-      cy: props.cy,
-      className: "recharts-reference-dot-dot"
-    }));
-  }
-  return dot;
-};
-function ReferenceDotImpl(props) {
-  var {
-    x,
-    y,
-    r
-  } = props;
-  var clipPathId = useClipPathId();
-  var coordinate = useCoordinate(x, y, props.xAxisId, props.yAxisId, props.ifOverflow);
-  if (!coordinate) {
-    return null;
-  }
-  var {
-    x: cx,
-    y: cy
-  } = coordinate;
-  var {
-    shape,
-    className,
-    ifOverflow
-  } = props;
-  var clipPath = ifOverflow === 'hidden' ? "url(#".concat(clipPathId, ")") : undefined;
-  var dotProps = _objectSpread(_objectSpread({
-    clipPath
-  }, svgPropertiesAndEvents(props)), {}, {
-    cx: cx !== null && cx !== void 0 ? cx : undefined,
-    cy: cy !== null && cy !== void 0 ? cy : undefined
-  });
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-reference-dot', className)
-  }, renderDot(shape, dotProps), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {
-    x: cx - r,
-    y: cy - r,
-    width: 2 * r,
-    height: 2 * r,
-    upperWidth: 2 * r,
-    lowerWidth: 2 * r
-  }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-export var referenceDotDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  r: 10,
-  label: false,
-  fill: '#fff',
-  stroke: '#ccc',
-  fillOpacity: 1,
-  strokeWidth: 1,
-  zIndex: DefaultZIndexes.scatter
-};
-/**
- * Draws a circle on the chart to highlight a specific point.
- *
- * This component, unlike {@link Dot} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle circle}, is aware of the cartesian coordinate system,
- * so you specify its center by using data coordinates instead of pixels.
- *
- * ReferenceDot will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render dots using pixels rather than data coordinates,
- * consider using the {@link Dot} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export function ReferenceDot(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, referenceDotDefaultProps);
-  var {
-    x,
-    y,
-    r,
-    ifOverflow,
-    yAxisId,
-    xAxisId
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceDot, {
-    y: y,
-    x: x,
-    r: r,
-    yAxisId: yAxisId,
-    xAxisId: xAxisId,
-    ifOverflow: ifOverflow
-  }), /*#__PURE__*/React.createElement(ReferenceDotImpl, props));
-}
-ReferenceDot.displayName = 'ReferenceDot';
Index: de_modules/recharts/es6/cartesian/ReferenceLine.js
===================================================================
--- node_modules/recharts/es6/cartesian/ReferenceLine.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,259 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-/**
- * @fileOverview Reference Line
- */
-import * as React from 'react';
-import { useEffect } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';
-import { isNumOrStr } from '../util/DataUtils';
-import { rectWithCoords } from '../util/CartesianUtils';
-import { useViewBox } from '../context/chartLayoutContext';
-import { addLine, removeLine } from '../state/referenceElementsSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectAxisScale, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { useClipPathId } from '../container/ClipPathProvider';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
-import { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';
-
-/**
- * Single point that defines one end of a segment.
- * These coordinates are in data space, meaning that you should provide
- * values that correspond to the data domain of the axes.
- * So you would provide a value of `Page A` to indicate the data value `Page A`
- * and then recharts will convert that to pixels.
- *
- * Likewise for numbers. If your x-axis goes from 0 to 100,
- * and you want the line to end at 50, you would provide `50` here.
- *
- * @inline
- */
-
-/**
- * This excludes `viewBox` prop from svg for two reasons:
- * 1. The components wants viewBox of object type, and svg wants string
- *    - so there's a conflict, and the component will throw if it gets string
- * 2. Internally the component calls `svgPropertiesNoEvents` which filters the viewBox away anyway
- */
-
-var renderLine = (option, props) => {
-  var line;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    line = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    line = option(props);
-  } else {
-    if (!isWellBehavedNumber(props.x1) || !isWellBehavedNumber(props.y1) || !isWellBehavedNumber(props.x2) || !isWellBehavedNumber(props.y2)) {
-      return null;
-    }
-    line = /*#__PURE__*/React.createElement("line", _extends({}, props, {
-      className: "recharts-reference-line-line"
-    }));
-  }
-  return line;
-};
-var getHorizontalLineEndPoints = (yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox) => {
-  var {
-    x,
-    width
-  } = viewBox;
-  var coord = yAxisScale.map(yCoord, {
-    position
-  });
-  // don't render the line if the scale can't compute a result that makes sense
-  if (!isWellBehavedNumber(coord)) {
-    return null;
-  }
-  if (ifOverflow === 'discard' && !yAxisScale.isInRange(coord)) {
-    return null;
-  }
-  var points = [{
-    x: x + width,
-    y: coord
-  }, {
-    x,
-    y: coord
-  }];
-  return yAxisOrientation === 'left' ? points.reverse() : points;
-};
-var getVerticalLineEndPoints = (xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox) => {
-  var {
-    y,
-    height
-  } = viewBox;
-  var coord = xAxisScale.map(xCoord, {
-    position
-  });
-  // don't render the line if the scale can't compute a result that makes sense
-  if (!isWellBehavedNumber(coord)) {
-    return null;
-  }
-  if (ifOverflow === 'discard' && !xAxisScale.isInRange(coord)) {
-    return null;
-  }
-  var points = [{
-    x: coord,
-    y: y + height
-  }, {
-    x: coord,
-    y
-  }];
-  return xAxisOrientation === 'top' ? points.reverse() : points;
-};
-var getSegmentLineEndPoints = (segment, ifOverflow, position, scales) => {
-  var points = [scales.mapWithFallback(segment[0], {
-    position,
-    fallback: 'rangeMin'
-  }), scales.mapWithFallback(segment[1], {
-    position,
-    fallback: 'rangeMax'
-  })];
-  if (ifOverflow === 'discard' && points.some(p => !scales.isInRange(p))) {
-    return null;
-  }
-  return points;
-};
-export var getEndPoints = (xAxisScale, yAxisScale, viewBox, position, xAxisOrientation, yAxisOrientation, props) => {
-  var {
-    x: xCoord,
-    y: yCoord,
-    segment,
-    ifOverflow
-  } = props;
-  var isFixedX = isNumOrStr(xCoord);
-  var isFixedY = isNumOrStr(yCoord);
-  if (isFixedY) {
-    return getHorizontalLineEndPoints(yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox);
-  }
-  if (isFixedX) {
-    return getVerticalLineEndPoints(xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox);
-  }
-  if (segment != null && segment.length === 2) {
-    return getSegmentLineEndPoints(segment, ifOverflow, position, new CartesianScaleHelperImpl({
-      x: xAxisScale,
-      y: yAxisScale
-    }));
-  }
-  return null;
-};
-function ReportReferenceLine(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(addLine(props));
-    return () => {
-      dispatch(removeLine(props));
-    };
-  });
-  return null;
-}
-function ReferenceLineImpl(props) {
-  var {
-    xAxisId,
-    yAxisId,
-    shape,
-    className,
-    ifOverflow
-  } = props;
-  var isPanorama = useIsPanorama();
-  var clipPathId = useClipPathId();
-  var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));
-  var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));
-  var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
-  var viewBox = useViewBox();
-  if (!clipPathId || !viewBox || xAxis == null || yAxis == null || xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var endPoints = getEndPoints(xAxisScale, yAxisScale, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);
-  if (!endPoints) {
-    return null;
-  }
-  var point1 = endPoints[0];
-  var point2 = endPoints[1];
-  if (point1 == null || point2 == null) {
-    return null;
-  }
-  var {
-    x: x1,
-    y: y1
-  } = point1;
-  var {
-    x: x2,
-    y: y2
-  } = point2;
-  var clipPath = ifOverflow === 'hidden' ? "url(#".concat(clipPathId, ")") : undefined;
-  var lineProps = _objectSpread(_objectSpread({
-    clipPath
-  }, svgPropertiesAndEvents(props)), {}, {
-    x1,
-    y1,
-    x2,
-    y2
-  });
-  var rect = rectWithCoords({
-    x1,
-    y1,
-    x2,
-    y2
-  });
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-reference-line', className)
-  }, renderLine(shape, lineProps), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, _extends({}, rect, {
-    lowerWidth: rect.width,
-    upperWidth: rect.width
-  }), /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-export var referenceLineDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  fill: 'none',
-  label: false,
-  stroke: '#ccc',
-  fillOpacity: 1,
-  strokeWidth: 1,
-  position: 'middle',
-  zIndex: DefaultZIndexes.line
-};
-/**
- * Draws a line on the chart connecting two points.
- *
- * This component, unlike {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line}, is aware of the cartesian coordinate system,
- * so you specify the dimensions by using data coordinates instead of pixels.
- *
- * ReferenceLine will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render using pixels rather than data coordinates,
- * consider using the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line SVG element} instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export function ReferenceLine(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, referenceLineDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceLine, {
-    yAxisId: props.yAxisId,
-    xAxisId: props.xAxisId,
-    ifOverflow: props.ifOverflow,
-    x: props.x,
-    y: props.y,
-    segment: props.segment
-  }), /*#__PURE__*/React.createElement(ReferenceLineImpl, props));
-}
-ReferenceLine.displayName = 'ReferenceLine';
Index: de_modules/recharts/es6/cartesian/Scatter.js
===================================================================
--- node_modules/recharts/es6/cartesian/Scatter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,606 +1,0 @@
-var _excluded = ["id"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["animationBegin", "animationDuration", "animationEasing", "hide", "isAnimationActive", "legendType", "lineJointType", "lineType", "shape", "xAxisId", "yAxisId", "zAxisId"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { useCallback, useMemo, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { findAllByType } from '../util/ReactUtils';
-import { Curve } from '../shape/Curve';
-import { Cell } from '../component/Cell';
-import { getLinearRegression, interpolate, isNullish } from '../util/DataUtils';
-import { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
-import { adaptEventsOfChild, isNonEmptyArray } from '../util/types';
-import { ScatterSymbol } from '../util/ScatterUtils';
-import { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { SetErrorBarContext } from '../context/ErrorBarContext';
-import { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';
-import { selectScatterPoints } from '../state/selectors/scatterSelectors';
-import { useAppSelector } from '../state/hooks';
-import { implicitZAxis } from '../state/selectors/axisSelectors';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';
-import { SetLegendPayload } from '../state/SetLegendPayload';
-import { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from '../util/Constants';
-import { useAnimationId } from '../util/useAnimationId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { useViewBox } from '../context/chartLayoutContext';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { propsAreEqual } from '../util/propsAreEqual';
-
-/**
- * Scatter coordinates are nullable because sometimes the point value is out of the domain,
- * and we can't compute a valid coordinate for it.
- *
- * Scatter -> Symbol ignores points with null cx or cy so those won't render if using the default shapes.
- * However: the points are exposed via various props and can be used in custom shapes so we keep them around.
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-var computeLegendPayloadFromScatterProps = props => {
-  var {
-    dataKey,
-    name,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: fill,
-    value: getTooltipNameProp(name, dataKey),
-    payload: props
-  }];
-};
-var SetScatterTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    points,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: points === null || points === void 0 ? void 0 : points.map(p => p.tooltipPayload),
-    getPosition: index => {
-      var _points$Number;
-      return points === null || points === void 0 || (_points$Number = points[Number(index)]) === null || _points$Number === void 0 ? void 0 : _points$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      dataKey,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // why doesn't Scatter support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function ScatterLine(_ref2) {
-  var {
-    points,
-    props
-  } = _ref2;
-  var {
-    line,
-    lineType,
-    lineJointType
-  } = props;
-  if (!line) {
-    return null;
-  }
-  var scatterProps = svgPropertiesNoEvents(props);
-  var customLineProps = svgPropertiesNoEventsFromUnknown(line);
-  var linePoints, lineItem;
-  if (lineType === 'joint') {
-    linePoints = points.map(entry => {
-      var _entry$cx, _entry$cy;
-      return {
-        x: (_entry$cx = entry.cx) !== null && _entry$cx !== void 0 ? _entry$cx : null,
-        y: (_entry$cy = entry.cy) !== null && _entry$cy !== void 0 ? _entry$cy : null
-      };
-    });
-  } else if (lineType === 'fitting') {
-    var {
-      xmin,
-      xmax,
-      a,
-      b
-    } = getLinearRegression(points);
-    var linearExp = x => a * x + b;
-    linePoints = [{
-      x: xmin,
-      y: linearExp(xmin)
-    }, {
-      x: xmax,
-      y: linearExp(xmax)
-    }];
-  }
-  var lineProps = _objectSpread(_objectSpread(_objectSpread({}, scatterProps), {}, {
-    // @ts-expect-error customLineProps is contributing unknown props
-    fill: 'none',
-    // @ts-expect-error customLineProps is contributing unknown props
-    stroke: scatterProps && scatterProps.fill
-  }, customLineProps), {}, {
-    // @ts-expect-error linePoints is used before it is assigned (???)
-    points: linePoints
-  });
-  if (/*#__PURE__*/React.isValidElement(line)) {
-    lineItem = /*#__PURE__*/React.cloneElement(line, lineProps);
-  } else if (typeof line === 'function') {
-    lineItem = line(lineProps);
-  } else {
-    lineItem = /*#__PURE__*/React.createElement(Curve, _extends({}, lineProps, {
-      type: lineJointType
-    }));
-  }
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-scatter-line",
-    key: "recharts-scatter-line"
-  }, lineItem);
-}
-function ScatterLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    points,
-    children
-  } = _ref3;
-  var chartViewBox = useViewBox();
-  var labelListEntries = useMemo(() => {
-    return points === null || points === void 0 ? void 0 : points.map(point => {
-      var _point$x, _point$y;
-      var viewBox = {
-        /*
-         * Scatter label uses x and y as the reference point for the label,
-         * not cx and cy.
-         */
-        x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-        /*
-         * Scatter label uses x and y as the reference point for the label,
-         * not cx and cy.
-         */
-        y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-        width: point.width,
-        height: point.height,
-        lowerWidth: point.width,
-        upperWidth: point.width
-      };
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        /*
-         * Here we put undefined because Scatter shows two values usually, one for X and one for Y.
-         * LabelList will see this undefined and will use its own `dataKey` prop to determine which value to show,
-         * using the payload below.
-         */
-        value: undefined,
-        payload: point.payload,
-        viewBox,
-        parentViewBox: chartViewBox,
-        fill: undefined
-      });
-    });
-  }, [chartViewBox, points]);
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function ScatterSymbols(props) {
-  var {
-    points,
-    allOtherScatterProps
-  } = props;
-  var {
-    shape,
-    activeShape,
-    dataKey
-  } = allOtherScatterProps;
-  var {
-      id
-    } = allOtherScatterProps,
-    allOtherPropsWithoutId = _objectWithoutProperties(allOtherScatterProps, _excluded);
-  var activeIndex = useAppSelector(selectActiveTooltipIndex);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherScatterProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherScatterProps, _excluded2);
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);
-  if (!isNonEmptyArray(points)) {
-    return null;
-  }
-  var baseProps = svgPropertiesNoEvents(allOtherPropsWithoutId);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScatterLine, {
-    points: points,
-    props: allOtherPropsWithoutId
-  }), points.map((entry, i) => {
-    var hasActiveShape = activeShape != null && activeShape !== false;
-    var isActive = hasActiveShape && activeIndex === String(i);
-    var option = hasActiveShape && isActive ? activeShape : shape;
-    var symbolProps = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {
-      index: i,
-      [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: String(id)
-    });
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      key: "symbol-".concat(entry === null || entry === void 0 ? void 0 : entry.cx, "-").concat(entry === null || entry === void 0 ? void 0 : entry.cy, "-").concat(entry === null || entry === void 0 ? void 0 : entry.size, "-").concat(i)
-      /*
-       * inactive Scatters use the parent zIndex, which is represented by undefined here.
-       * ZIndexLayer will render undefined zIndex as-is, as regular children, without portals.
-       * Active Scatters use the activeDot zIndex so they render above other elements.
-       */,
-      zIndex: isActive ? DefaultZIndexes.activeDot : undefined
-    }, /*#__PURE__*/React.createElement(Layer, _extends({
-      className: "recharts-scatter-symbol"
-    }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(ScatterSymbol, _extends({
-      option: option,
-      isActive: isActive
-    }, symbolProps))));
-  }));
-}
-function SymbolsWithAnimation(_ref4) {
-  var {
-    previousPointsRef,
-    props
-  } = _ref4;
-  var {
-    points,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var animationId = useAnimationId(props, 'recharts-scatter-');
-  var [isAnimating, setIsAnimating] = useState(false);
-  var handleAnimationEnd = useCallback(() => {
-    // Scatter doesn't have onAnimationEnd prop, and if we want to add it we do it here
-    // if (typeof onAnimationEnd === 'function') {
-    //   onAnimationEnd();
-    // }
-    setIsAnimating(false);
-  }, []);
-  var handleAnimationStart = useCallback(() => {
-    // Scatter doesn't have onAnimationStart prop, and if we want to add it we do it here
-    // if (typeof onAnimationStart === 'function') {
-    //   onAnimationStart();
-    // }
-    setIsAnimating(true);
-  }, []);
-  var showLabels = !isAnimating;
-  return /*#__PURE__*/React.createElement(ScatterLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? points : points === null || points === void 0 ? void 0 : points.map((entry, index) => {
-      var prev = prevPoints && prevPoints[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          cx: entry.cx == null ? undefined : interpolate(prev.cx, entry.cx, t),
-          cy: entry.cy == null ? undefined : interpolate(prev.cy, entry.cy, t),
-          size: interpolate(prev.size, entry.size, t)
-        });
-      }
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        size: interpolate(0, entry.size, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-    }
-    return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(ScatterSymbols, {
-      points: stepData,
-      allOtherScatterProps: props,
-      showLabels: showLabels
-    }));
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-export function computeScatterPoints(_ref5) {
-  var {
-    displayedData,
-    xAxis,
-    yAxis,
-    zAxis,
-    scatterSettings,
-    xAxisTicks,
-    yAxisTicks,
-    cells
-  } = _ref5;
-  var xAxisDataKey = isNullish(xAxis.dataKey) ? scatterSettings.dataKey : xAxis.dataKey;
-  var yAxisDataKey = isNullish(yAxis.dataKey) ? scatterSettings.dataKey : yAxis.dataKey;
-  var zAxisDataKey = zAxis && zAxis.dataKey;
-  var defaultRangeZ = zAxis ? zAxis.range : implicitZAxis.range;
-  var defaultZ = defaultRangeZ && defaultRangeZ[0];
-  var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;
-  var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;
-  return displayedData.map((entry, index) => {
-    var x = getValueByDataKey(entry, xAxisDataKey);
-    var y = getValueByDataKey(entry, yAxisDataKey);
-    var z = !isNullish(zAxisDataKey) && getValueByDataKey(entry, zAxisDataKey) || '-';
-    var tooltipPayload = [{
-      name: isNullish(xAxis.dataKey) ? scatterSettings.name : xAxis.name || String(xAxis.dataKey),
-      unit: xAxis.unit || '',
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value: x,
-      payload: entry,
-      dataKey: xAxisDataKey,
-      type: scatterSettings.tooltipType
-    }, {
-      name: isNullish(yAxis.dataKey) ? scatterSettings.name : yAxis.name || String(yAxis.dataKey),
-      unit: yAxis.unit || '',
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value: y,
-      payload: entry,
-      dataKey: yAxisDataKey,
-      type: scatterSettings.tooltipType
-    }];
-    if (z !== '-' && zAxis != null) {
-      tooltipPayload.push({
-        // @ts-expect-error name prop should not have dataKey in it
-        name: zAxis.name || zAxis.dataKey,
-        unit: zAxis.unit || '',
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        value: z,
-        payload: entry,
-        dataKey: zAxisDataKey,
-        type: scatterSettings.tooltipType
-      });
-    }
-    var cx = getCateCoordinateOfLine({
-      axis: xAxis,
-      ticks: xAxisTicks,
-      bandSize: xBandSize,
-      entry,
-      index,
-      dataKey: xAxisDataKey
-    });
-    var cy = getCateCoordinateOfLine({
-      axis: yAxis,
-      ticks: yAxisTicks,
-      bandSize: yBandSize,
-      entry,
-      index,
-      dataKey: yAxisDataKey
-    });
-    var size = z !== '-' && zAxis != null ? zAxis.scale.map(z) : defaultZ;
-    var radius = size == null ? 0 : Math.sqrt(Math.max(size, 0) / Math.PI);
-    return _objectSpread(_objectSpread({}, entry), {}, {
-      cx,
-      cy,
-      x: cx == null ? undefined : cx - radius,
-      y: cy == null ? undefined : cy - radius,
-      width: 2 * radius,
-      height: 2 * radius,
-      size,
-      node: {
-        x,
-        y,
-        z
-      },
-      tooltipPayload,
-      tooltipPosition: {
-        x: cx,
-        y: cy
-      },
-      payload: entry
-    }, cells && cells[index] && cells[index].props);
-  });
-}
-var errorBarDataPointFormatter = (dataPoint, dataKey, direction) => {
-  return {
-    x: dataPoint.cx,
-    y: dataPoint.cy,
-    value: direction === 'x' ? Number(dataPoint.node.x) : Number(dataPoint.node.y),
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: getValueByDataKey(dataPoint, dataKey)
-  };
-};
-function ScatterWithId(props) {
-  var {
-    hide,
-    points,
-    className,
-    needClip,
-    xAxisId,
-    yAxisId,
-    id
-  } = props;
-  var previousPointsRef = useRef(null);
-  if (hide) {
-    return null;
-  }
-  var layerClass = clsx('recharts-scatter', className);
-  var clipPathId = id;
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: layerClass,
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined,
-    id: id
-  }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {
-    clipPathId: clipPathId,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId
-  })), /*#__PURE__*/React.createElement(SetErrorBarContext, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    data: points,
-    dataPointFormatter: errorBarDataPointFormatter,
-    errorBarOffset: 0
-  }, /*#__PURE__*/React.createElement(Layer, {
-    key: "recharts-scatter-symbols"
-  }, /*#__PURE__*/React.createElement(SymbolsWithAnimation, {
-    props: props,
-    previousPointsRef: previousPointsRef
-  })))));
-}
-export var defaultScatterProps = {
-  xAxisId: 0,
-  yAxisId: 0,
-  zAxisId: 0,
-  label: false,
-  line: false,
-  legendType: 'circle',
-  lineType: 'joint',
-  lineJointType: 'linear',
-  shape: 'circle',
-  hide: false,
-  isAnimationActive: 'auto',
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'linear',
-  zIndex: DefaultZIndexes.scatter
-};
-function ScatterImpl(props) {
-  var _resolveDefaultProps = resolveDefaultProps(props, defaultScatterProps),
-    {
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      hide,
-      isAnimationActive,
-      legendType,
-      lineJointType,
-      lineType,
-      shape,
-      xAxisId,
-      yAxisId,
-      zAxisId
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);
-  var {
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);
-  var isPanorama = useIsPanorama();
-  var points = useAppSelector(state => {
-    return selectScatterPoints(state, xAxisId, yAxisId, zAxisId, props.id, cells, isPanorama);
-  });
-  if (needClip == null) {
-    return null;
-  }
-  if (points == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetScatterTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    points: points,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: props.id
-  }), /*#__PURE__*/React.createElement(ScatterWithId, _extends({}, everythingElse, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    zAxisId: zAxisId,
-    lineType: lineType,
-    lineJointType: lineJointType,
-    legendType: legendType,
-    shape: shape,
-    hide: hide,
-    isAnimationActive: isAnimationActive,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    points: points,
-    needClip: needClip
-  })));
-}
-function ScatterFn(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultScatterProps);
-  var isPanorama = useIsPanorama();
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "scatter"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromScatterProps(props)
-  }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {
-    type: "scatter",
-    id: id,
-    data: props.data,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: props.zAxisId,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    name: props.name,
-    tooltipType: props.tooltipType,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(ScatterImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @provides CellReader
- * @consumes CartesianChartContext
- */
-export var Scatter = /*#__PURE__*/React.memo(ScatterFn, propsAreEqual);
-Scatter.displayName = 'Scatter';
Index: de_modules/recharts/es6/cartesian/XAxis.js
===================================================================
--- node_modules/recharts/es6/cartesian/XAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,171 +1,0 @@
-var _excluded = ["type"],
-  _excluded2 = ["dangerouslySetInnerHTML", "ticks", "scale"],
-  _excluded3 = ["id", "scale"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * @fileOverview X Axis
- */
-import * as React from 'react';
-import { useLayoutEffect, useMemo, useRef } from 'react';
-import { clsx } from 'clsx';
-import { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { addXAxis, replaceXAxis, removeXAxis } from '../state/cartesianAxisSlice';
-import { implicitXAxis, selectTicksOfAxis, selectXAxisPosition, selectXAxisSettingsNoDefaults, selectXAxisSize } from '../state/selectors/axisSelectors';
-import { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { axisPropsAreEqual } from '../util/axisPropsAreEqual';
-import { useCartesianChartLayout } from '../context/chartLayoutContext';
-import { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';
-function SetXAxisSettings(props) {
-  var dispatch = useAppDispatch();
-  var prevSettingsRef = useRef(null);
-  var layout = useCartesianChartLayout();
-  var {
-      type: typeFromProps
-    } = props,
-    restProps = _objectWithoutProperties(props, _excluded);
-  var evaluatedType = getAxisTypeBasedOnLayout(layout, 'xAxis', typeFromProps);
-  var settings = useMemo(() => {
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, restProps), {}, {
-      type: evaluatedType
-    });
-  }, [restProps, evaluatedType]);
-  useLayoutEffect(() => {
-    if (settings == null) {
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch(addXAxis(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch(replaceXAxis({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch(removeXAxis(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-var XAxisImpl = props => {
-  var {
-    xAxisId,
-    className
-  } = props;
-  var viewBox = useAppSelector(selectAxisViewBox);
-  var isPanorama = useIsPanorama();
-  var axisType = 'xAxis';
-  var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));
-  var axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));
-  var position = useAppSelector(state => selectXAxisPosition(state, xAxisId));
-  /*
-   * Here we select settings from the store and prefer to use them instead of the actual props
-   * so that the chart is consistent. If we used the props directly, some components will use axis settings
-   * from state and some from props and because there is a render step between these two, they might be showing different things.
-   * https://github.com/recharts/recharts/issues/6257
-   */
-  var synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));
-  if (axisSize == null || position == null || synchronizedSettings == null) {
-    return null;
-  }
-  var {
-      dangerouslySetInnerHTML,
-      ticks,
-      scale: del
-    } = props,
-    allOtherProps = _objectWithoutProperties(props, _excluded2);
-  var {
-      id,
-      scale: del2
-    } = synchronizedSettings,
-    restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);
-  return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {
-    x: position.x,
-    y: position.y,
-    width: axisSize.width,
-    height: axisSize.height,
-    className: clsx("recharts-".concat(axisType, " ").concat(axisType), className),
-    viewBox: viewBox,
-    ticks: cartesianTickItems,
-    axisType: axisType
-  }));
-};
-export var xAxisDefaultProps = {
-  allowDataOverflow: implicitXAxis.allowDataOverflow,
-  allowDecimals: implicitXAxis.allowDecimals,
-  allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,
-  angle: implicitXAxis.angle,
-  axisLine: defaultCartesianAxisProps.axisLine,
-  height: implicitXAxis.height,
-  hide: false,
-  includeHidden: implicitXAxis.includeHidden,
-  interval: implicitXAxis.interval,
-  label: false,
-  minTickGap: implicitXAxis.minTickGap,
-  mirror: implicitXAxis.mirror,
-  orientation: implicitXAxis.orientation,
-  padding: implicitXAxis.padding,
-  reversed: implicitXAxis.reversed,
-  scale: implicitXAxis.scale,
-  tick: implicitXAxis.tick,
-  tickCount: implicitXAxis.tickCount,
-  tickLine: defaultCartesianAxisProps.tickLine,
-  tickSize: defaultCartesianAxisProps.tickSize,
-  type: implicitXAxis.type,
-  xAxisId: 0
-};
-var XAxisSettingsDispatcher = outsideProps => {
-  var props = resolveDefaultProps(outsideProps, xAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {
-    allowDataOverflow: props.allowDataOverflow,
-    allowDecimals: props.allowDecimals,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    angle: props.angle,
-    dataKey: props.dataKey,
-    domain: props.domain,
-    height: props.height,
-    hide: props.hide,
-    id: props.xAxisId,
-    includeHidden: props.includeHidden,
-    interval: props.interval,
-    minTickGap: props.minTickGap,
-    mirror: props.mirror,
-    name: props.name,
-    orientation: props.orientation,
-    padding: props.padding,
-    reversed: props.reversed,
-    scale: props.scale,
-    tick: props.tick,
-    tickCount: props.tickCount,
-    tickFormatter: props.tickFormatter,
-    ticks: props.ticks,
-    type: props.type,
-    unit: props.unit
-  }), /*#__PURE__*/React.createElement(XAxisImpl, props));
-};
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-export var XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, axisPropsAreEqual);
-XAxis.displayName = 'XAxis';
Index: de_modules/recharts/es6/cartesian/YAxis.js
===================================================================
--- node_modules/recharts/es6/cartesian/YAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,205 +1,0 @@
-var _excluded = ["type"],
-  _excluded2 = ["dangerouslySetInnerHTML", "ticks", "scale"],
-  _excluded3 = ["id", "scale"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { isValidElement, useLayoutEffect, useMemo, useRef } from 'react';
-import { clsx } from 'clsx';
-import { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';
-import { addYAxis, replaceYAxis, removeYAxis, updateYAxisWidth } from '../state/cartesianAxisSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { implicitYAxis, selectTicksOfAxis, selectYAxisPosition, selectYAxisSettingsNoDefaults, selectYAxisSize } from '../state/selectors/axisSelectors';
-import { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { isLabelContentAFunction } from '../component/Label';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { axisPropsAreEqual } from '../util/axisPropsAreEqual';
-import { useCartesianChartLayout } from '../context/chartLayoutContext';
-import { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';
-function SetYAxisSettings(props) {
-  var dispatch = useAppDispatch();
-  var prevSettingsRef = useRef(null);
-  var layout = useCartesianChartLayout();
-  var {
-      type: typeFromProps
-    } = props,
-    restProps = _objectWithoutProperties(props, _excluded);
-  var evaluatedType = getAxisTypeBasedOnLayout(layout, 'yAxis', typeFromProps);
-  var settings = useMemo(() => {
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, restProps), {}, {
-      type: evaluatedType
-    });
-  }, [evaluatedType, restProps]);
-  useLayoutEffect(() => {
-    if (settings == null) {
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch(addYAxis(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch(replaceYAxis({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch(removeYAxis(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-function YAxisImpl(props) {
-  var {
-    yAxisId,
-    className,
-    width,
-    label
-  } = props;
-  var cartesianAxisRef = useRef(null);
-  var labelRef = useRef(null);
-  var viewBox = useAppSelector(selectAxisViewBox);
-  var isPanorama = useIsPanorama();
-  var dispatch = useAppDispatch();
-  var axisType = 'yAxis';
-  var axisSize = useAppSelector(state => selectYAxisSize(state, yAxisId));
-  var position = useAppSelector(state => selectYAxisPosition(state, yAxisId));
-  var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));
-  /*
-   * Here we select settings from the store and prefer to use them instead of the actual props
-   * so that the chart is consistent. If we used the props directly, some components will use axis settings
-   * from state and some from props and because there is a render step between these two, they might be showing different things.
-   * https://github.com/recharts/recharts/issues/6257
-   */
-  var synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));
-  useLayoutEffect(() => {
-    // No dynamic width calculation is done when width !== 'auto'
-    // or when a function/react element is used for label
-    if (width !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {
-      return;
-    }
-    var axisComponent = cartesianAxisRef.current;
-    if (!axisComponent) {
-      return;
-    }
-    var updatedYAxisWidth = axisComponent.getCalculatedWidth();
-
-    // if the width has changed, dispatch an action to update the width
-    if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {
-      dispatch(updateYAxisWidth({
-        id: yAxisId,
-        width: updatedYAxisWidth
-      }));
-    }
-  }, [
-  // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.
-  // The ref will be populated by then.
-  // To re-run this effect when ticks change, we can depend on the ticks array from the store.
-  cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);
-  if (axisSize == null || position == null || synchronizedSettings == null) {
-    return null;
-  }
-  var {
-      dangerouslySetInnerHTML,
-      ticks,
-      scale: del
-    } = props,
-    allOtherProps = _objectWithoutProperties(props, _excluded2);
-  var {
-      id,
-      scale: del2
-    } = synchronizedSettings,
-    restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);
-  return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {
-    ref: cartesianAxisRef,
-    labelRef: labelRef,
-    x: position.x,
-    y: position.y,
-    tickTextProps: width === 'auto' ? {
-      width: undefined
-    } : {
-      width
-    },
-    width: axisSize.width,
-    height: axisSize.height,
-    className: clsx("recharts-".concat(axisType, " ").concat(axisType), className),
-    viewBox: viewBox,
-    ticks: cartesianTickItems,
-    axisType: axisType
-  }));
-}
-export var yAxisDefaultProps = {
-  allowDataOverflow: implicitYAxis.allowDataOverflow,
-  allowDecimals: implicitYAxis.allowDecimals,
-  allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,
-  angle: implicitYAxis.angle,
-  axisLine: defaultCartesianAxisProps.axisLine,
-  hide: false,
-  includeHidden: implicitYAxis.includeHidden,
-  interval: implicitYAxis.interval,
-  label: false,
-  minTickGap: implicitYAxis.minTickGap,
-  mirror: implicitYAxis.mirror,
-  orientation: implicitYAxis.orientation,
-  padding: implicitYAxis.padding,
-  reversed: implicitYAxis.reversed,
-  scale: implicitYAxis.scale,
-  tick: implicitYAxis.tick,
-  tickCount: implicitYAxis.tickCount,
-  tickLine: defaultCartesianAxisProps.tickLine,
-  tickSize: defaultCartesianAxisProps.tickSize,
-  type: implicitYAxis.type,
-  width: implicitYAxis.width,
-  yAxisId: 0
-};
-var YAxisSettingsDispatcher = outsideProps => {
-  var props = resolveDefaultProps(outsideProps, yAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {
-    interval: props.interval,
-    id: props.yAxisId,
-    scale: props.scale,
-    type: props.type,
-    domain: props.domain,
-    allowDataOverflow: props.allowDataOverflow,
-    dataKey: props.dataKey,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    allowDecimals: props.allowDecimals,
-    tickCount: props.tickCount,
-    padding: props.padding,
-    includeHidden: props.includeHidden,
-    reversed: props.reversed,
-    ticks: props.ticks,
-    width: props.width,
-    orientation: props.orientation,
-    mirror: props.mirror,
-    hide: props.hide,
-    unit: props.unit,
-    name: props.name,
-    angle: props.angle,
-    minTickGap: props.minTickGap,
-    tick: props.tick,
-    tickFormatter: props.tickFormatter
-  }), /*#__PURE__*/React.createElement(YAxisImpl, props));
-};
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-export var YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, axisPropsAreEqual);
-YAxis.displayName = 'YAxis';
Index: de_modules/recharts/es6/cartesian/ZAxis.js
===================================================================
--- node_modules/recharts/es6/cartesian/ZAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-import * as React from 'react';
-import { useLayoutEffect, useRef } from 'react';
-import { addZAxis, removeZAxis, replaceZAxis } from '../state/cartesianAxisSlice';
-import { useAppDispatch } from '../state/hooks';
-import { implicitZAxis } from '../state/selectors/axisSelectors';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-function SetZAxisSettings(settings) {
-  var dispatch = useAppDispatch();
-  var prevSettingsRef = useRef(null);
-  useLayoutEffect(() => {
-    if (prevSettingsRef.current === null) {
-      dispatch(addZAxis(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch(replaceZAxis({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch(removeZAxis(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-export var zAxisDefaultProps = {
-  zAxisId: 0,
-  range: implicitZAxis.range,
-  scale: implicitZAxis.scale,
-  type: implicitZAxis.type
-};
-
-/**
- * Virtual axis, does not render anything itself. Has no ticks, grid lines, or labels.
- * Useful for dynamically setting Scatter point size, based on data.
- *
- * @consumes CartesianViewBoxContext
- */
-export function ZAxis(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, zAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(SetZAxisSettings, {
-    domain: props.domain,
-    id: props.zAxisId,
-    dataKey: props.dataKey,
-    name: props.name,
-    unit: props.unit,
-    range: props.range,
-    scale: props.scale,
-    type: props.type,
-    allowDuplicatedCategory: implicitZAxis.allowDuplicatedCategory,
-    allowDataOverflow: implicitZAxis.allowDataOverflow,
-    reversed: implicitZAxis.reversed,
-    includeHidden: implicitZAxis.includeHidden
-  });
-}
-ZAxis.displayName = 'ZAxis';
Index: de_modules/recharts/es6/cartesian/getCartesianPosition.js
===================================================================
--- node_modules/recharts/es6/cartesian/getCartesianPosition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,195 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { getPercentValue, isNumber, isPercent } from '../util/DataUtils';
-import { cartesianViewBoxToTrapezoid } from '../context/chartLayoutContext';
-/**
- * Calculates the position and alignment for a generic element in a Cartesian coordinate system.
- *
- * @param options - The options including viewBox, position, and offset.
- * @returns The calculated x, y, alignment and size.
- */
-export var getCartesianPosition = options => {
-  var {
-    viewBox,
-    position,
-    offset = 0,
-    parentViewBox: parentViewBoxFromOptions,
-    clamp
-  } = options;
-  var {
-    x,
-    y,
-    height,
-    upperWidth,
-    lowerWidth
-  } = cartesianViewBoxToTrapezoid(viewBox);
-
-  // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.
-  var upperX = x;
-  // The trapezoid is centered, so we can calculate the other corners from the top-left.
-  var lowerX = x + (upperWidth - lowerWidth) / 2;
-  // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.
-  var middleX = (upperX + lowerX) / 2;
-  // The width of the trapezoid at its vertical midpoint.
-  var midHeightWidth = (upperWidth + lowerWidth) / 2;
-  // The center x-coordinate is constant for the entire height of the trapezoid.
-  var centerX = upperX + upperWidth / 2;
-
-  // Define vertical offsets and position inverts based on the value being positive or negative.
-  // This allows labels to be positioned correctly for bars with negative height.
-  var verticalSign = height >= 0 ? 1 : -1;
-  var verticalOffset = verticalSign * offset;
-  var verticalEnd = verticalSign > 0 ? 'end' : 'start';
-  var verticalStart = verticalSign > 0 ? 'start' : 'end';
-
-  // Define horizontal offsets and position inverts based on the value being positive or negative.
-  // This allows labels to be positioned correctly for bars with negative width.
-  var horizontalSign = upperWidth >= 0 ? 1 : -1;
-  var horizontalOffset = horizontalSign * offset;
-  var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';
-  var horizontalStart = horizontalSign > 0 ? 'start' : 'end';
-
-  // We assume parentViewBox is generic if provided.
-  // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.
-  var parentViewBox = parentViewBoxFromOptions;
-  if (position === 'top') {
-    var result = {
-      x: upperX + upperWidth / 2,
-      y: y - verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalEnd
-    };
-    if (clamp && parentViewBox) {
-      result.height = Math.max(y - parentViewBox.y, 0);
-      result.width = upperWidth;
-    }
-    return result;
-  }
-  if (position === 'bottom') {
-    var _result = {
-      x: lowerX + lowerWidth / 2,
-      y: y + height + verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalStart
-    };
-    if (clamp && parentViewBox) {
-      _result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);
-      _result.width = lowerWidth;
-    }
-    return _result;
-  }
-  if (position === 'left') {
-    var _result2 = {
-      x: middleX - horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: 'middle'
-    };
-    if (clamp && parentViewBox) {
-      _result2.width = Math.max(_result2.x - parentViewBox.x, 0);
-      _result2.height = height;
-    }
-    return _result2;
-  }
-  if (position === 'right') {
-    var _result3 = {
-      x: middleX + midHeightWidth + horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: 'middle'
-    };
-    if (clamp && parentViewBox) {
-      _result3.width = Math.max(parentViewBox.x + parentViewBox.width - _result3.x, 0);
-      _result3.height = height;
-    }
-    return _result3;
-  }
-  var sizeAttrs = clamp && parentViewBox ? {
-    width: midHeightWidth,
-    height
-  } : {};
-  if (position === 'insideLeft') {
-    return _objectSpread({
-      x: middleX + horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: 'middle'
-    }, sizeAttrs);
-  }
-  if (position === 'insideRight') {
-    return _objectSpread({
-      x: middleX + midHeightWidth - horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: 'middle'
-    }, sizeAttrs);
-  }
-  if (position === 'insideTop') {
-    return _objectSpread({
-      x: upperX + upperWidth / 2,
-      y: y + verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottom') {
-    return _objectSpread({
-      x: lowerX + lowerWidth / 2,
-      y: y + height - verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (position === 'insideTopLeft') {
-    return _objectSpread({
-      x: upperX + horizontalOffset,
-      y: y + verticalOffset,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideTopRight') {
-    return _objectSpread({
-      x: upperX + upperWidth - horizontalOffset,
-      y: y + verticalOffset,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottomLeft') {
-    return _objectSpread({
-      x: lowerX + horizontalOffset,
-      y: y + height - verticalOffset,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottomRight') {
-    return _objectSpread({
-      x: lowerX + lowerWidth - horizontalOffset,
-      y: y + height - verticalOffset,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (!!position && typeof position === 'object' && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {
-    // TODO: This is not quite right. The width of the trapezoid changes with y.
-    // A percentage-based x should be relative to the width at that y.
-    // For now, we use the mid-height width as a reasonable approximation.
-    return _objectSpread({
-      x: x + getPercentValue(position.x, midHeightWidth),
-      y: y + getPercentValue(position.y, height),
-      horizontalAnchor: 'end',
-      verticalAnchor: 'end'
-    }, sizeAttrs);
-  }
-  return _objectSpread({
-    x: centerX,
-    y: y + height / 2,
-    horizontalAnchor: 'middle',
-    verticalAnchor: 'middle'
-  }, sizeAttrs);
-};
Index: de_modules/recharts/es6/cartesian/getEquidistantTicks.js
===================================================================
--- node_modules/recharts/es6/cartesian/getEquidistantTicks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,135 +1,0 @@
-import { isVisible } from '../util/TickUtils';
-import { getEveryNth } from '../util/getEveryNth';
-export function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {
-  // If the ticks are readonly, then the slice might not be necessary
-  var result = (ticks || []).slice();
-  var {
-    start: initialStart,
-    end
-  } = boundaries;
-  var index = 0;
-  // Premature optimisation idea 1: Estimate a lower bound, and start from there.
-  // For now, start from every tick
-  var stepsize = 1;
-  var start = initialStart;
-  var _loop = function _loop() {
-      // Given stepsize, evaluate whether every stepsize-th tick can be shown.
-      // If it can not, then increase the stepsize by 1, and try again.
-
-      var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];
-
-      // Break condition - If we have evaluated all the ticks, then we are done.
-      if (entry === undefined) {
-        return {
-          v: getEveryNth(ticks, stepsize)
-        };
-      }
-
-      // Check if the element collides with the next element
-      var i = index;
-      var size;
-      var getSize = () => {
-        if (size === undefined) {
-          size = getTickSize(entry, i);
-        }
-        return size;
-      };
-      var tickCoord = entry.coordinate;
-      // We will always show the first tick.
-      var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);
-      if (!isShow) {
-        // Start all over with a larger stepsize
-        index = 0;
-        start = initialStart;
-        stepsize += 1;
-      }
-      if (isShow) {
-        // If it can be shown, update the start
-        start = tickCoord + sign * (getSize() / 2 + minTickGap);
-        index += stepsize;
-      }
-    },
-    _ret;
-  while (stepsize <= result.length) {
-    _ret = _loop();
-    if (_ret) return _ret.v;
-  }
-  return [];
-}
-export function getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap) {
-  // If the ticks are readonly, then the slice might not be necessary
-  // Reworked logic for getEquidistantPreserveEndTicks
-  var result = (ticks || []).slice();
-  var len = result.length;
-  if (len === 0) {
-    return [];
-  }
-  var {
-    start: initialStart,
-    end
-  } = boundaries;
-
-  // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)
-  for (var stepsize = 1; stepsize <= len; stepsize++) {
-    // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.
-    var offset = (len - 1) % stepsize;
-    var start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap
-    var ok = true;
-
-    // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1
-    var _loop2 = function _loop2() {
-        var entry = ticks[index];
-        if (entry == null) {
-          return 0; // continue
-        }
-        var i = index;
-        var size;
-
-        // Use a function to get size, as in the original code
-        var getSize = () => {
-          if (size === undefined) {
-            size = getTickSize(entry, i);
-          }
-          return size;
-        };
-        var tickCoord = entry.coordinate;
-
-        // 3. Apply visibility logic (including the first tick special case)
-        // The reviewer says *not* to unconditionally bypass checks for the last tick.
-        var isShow = index === offset || isVisible(sign, tickCoord, getSize, start, end);
-        if (!isShow) {
-          // If any tick in this end-anchored sequence fails visibility/collision,
-          // reject this stepsize and move to the next iteration (larger stepsize).
-          ok = false;
-          return 1; // break
-        }
-
-        // 4. If showable, update the 'start' coordinate for the next collision check
-        if (isShow) {
-          start = tickCoord + sign * (getSize() / 2 + minTickGap);
-        }
-      },
-      _ret2;
-    for (var index = offset; index < len; index += stepsize) {
-      _ret2 = _loop2();
-      if (_ret2 === 0) continue;
-      if (_ret2 === 1) break;
-    }
-
-    // 5. If the entire sequence for this stepsize passed the visibility check, return the result
-    if (ok) {
-      // Build the final result array explicitly using the validated stepsize and offset.
-      var finalTicks = [];
-      for (var _index = offset; _index < len; _index += stepsize) {
-        var tick = ticks[_index];
-        if (tick != null) {
-          finalTicks.push(tick);
-        }
-      }
-      return finalTicks;
-    }
-  }
-
-  // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.
-  return [];
-}
Index: de_modules/recharts/es6/cartesian/getTicks.js
===================================================================
--- node_modules/recharts/es6/cartesian/getTicks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,180 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { mathSign, isNumber } from '../util/DataUtils';
-import { getStringSize } from '../util/DOMUtils';
-import { Global } from '../util/Global';
-import { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';
-import { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';
-function getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {
-  var result = (ticks || []).slice();
-  var len = result.length;
-  var {
-    start
-  } = boundaries;
-  var {
-    end
-  } = boundaries;
-  var _loop = function _loop(i) {
-    var initialEntry = result[i];
-    if (initialEntry == null) {
-      return 1; // continue
-    }
-    var entry = initialEntry;
-    var size;
-    var getSize = () => {
-      if (size === undefined) {
-        size = getTickSize(initialEntry, i);
-      }
-      return size;
-    };
-    if (i === len - 1) {
-      var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate
-      });
-    } else {
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: entry.coordinate
-      });
-    }
-    if (entry.tickCoord != null) {
-      var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);
-      if (isShow) {
-        end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);
-        result[i] = _objectSpread(_objectSpread({}, entry), {}, {
-          isShow: true
-        });
-      }
-    }
-  };
-  for (var i = len - 1; i >= 0; i--) {
-    if (_loop(i)) continue;
-  }
-  return result;
-}
-function getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {
-  // This method is mutating the array so clone is indeed necessary here
-  var result = (ticks || []).slice();
-  var len = result.length;
-  var {
-    start,
-    end
-  } = boundaries;
-  if (preserveEnd) {
-    // Try to guarantee the tail to be displayed
-    var tail = ticks[len - 1];
-    if (tail != null) {
-      var tailSize = getTickSize(tail, len - 1);
-      var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);
-      result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {
-        tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate
-      });
-      if (tail.tickCoord != null) {
-        var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);
-        if (isTailShow) {
-          end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);
-          result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {
-            isShow: true
-          });
-        }
-      }
-    }
-  }
-  var count = preserveEnd ? len - 1 : len;
-  var _loop2 = function _loop2(i) {
-    var initialEntry = result[i];
-    if (initialEntry == null) {
-      return 1; // continue
-    }
-    var entry = initialEntry;
-    var size;
-    var getSize = () => {
-      if (size === undefined) {
-        size = getTickSize(initialEntry, i);
-      }
-      return size;
-    };
-    if (i === 0) {
-      var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate
-      });
-    } else {
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: entry.coordinate
-      });
-    }
-    if (entry.tickCoord != null) {
-      var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);
-      if (isShow) {
-        start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);
-        result[i] = _objectSpread(_objectSpread({}, entry), {}, {
-          isShow: true
-        });
-      }
-    }
-  };
-  for (var i = 0; i < count; i++) {
-    if (_loop2(i)) continue;
-  }
-  return result;
-}
-export function getTicks(props, fontSize, letterSpacing) {
-  var {
-    tick,
-    ticks,
-    viewBox,
-    minTickGap,
-    orientation,
-    interval,
-    tickFormatter,
-    unit,
-    angle
-  } = props;
-  if (!ticks || !ticks.length || !tick) {
-    return [];
-  }
-  if (isNumber(interval) || Global.isSsr) {
-    var _getNumberIntervalTic;
-    return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];
-  }
-  var candidates = [];
-  var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';
-  var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {
-    fontSize,
-    letterSpacing
-  }) : {
-    width: 0,
-    height: 0
-  };
-  var getTickSize = (content, index) => {
-    var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;
-    // Recharts only supports angles when sizeKey === 'width'
-    return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {
-      fontSize,
-      letterSpacing
-    }), unitSize, angle) : getStringSize(value, {
-      fontSize,
-      letterSpacing
-    })[sizeKey];
-  };
-  var tick0 = ticks[0];
-  var tick1 = ticks[1];
-  var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;
-  var boundaries = getTickBoundaries(viewBox, sign, sizeKey);
-  if (interval === 'equidistantPreserveStart') {
-    return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  if (interval === 'equidistantPreserveEnd') {
-    return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  if (interval === 'preserveStart' || interval === 'preserveStartEnd') {
-    candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');
-  } else {
-    candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  return candidates.filter(entry => entry.isShow);
-}
Index: de_modules/recharts/es6/chart/AreaChart.js
===================================================================
--- node_modules/recharts/es6/chart/AreaChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var AreaChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "AreaChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/BarChart.js
===================================================================
--- node_modules/recharts/es6/chart/BarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['axis', 'item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var BarChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "BarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/CartesianChart.js
===================================================================
--- node_modules/recharts/es6/chart/CartesianChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
-import { ChartDataContextProvider } from '../context/chartDataContext';
-import { ReportMainChartProps } from '../state/ReportMainChartProps';
-import { ReportChartProps } from '../state/ReportChartProps';
-import { CategoricalChart } from './CategoricalChart';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-var defaultMargin = {
-  top: 5,
-  right: 5,
-  bottom: 5,
-  left: 5
-};
-export var defaultCartesianChartProps = {
-  accessibilityLayer: true,
-  barCategoryGap: '10%',
-  barGap: 4,
-  layout: 'horizontal',
-  margin: defaultMargin,
-  responsive: false,
-  reverseStackOrder: false,
-  stackOffset: 'none',
-  syncMethod: 'index'
-};
-
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.
- */
-
-export var CartesianChart = /*#__PURE__*/forwardRef(function CartesianChart(props, ref) {
-  var _categoricalChartProp;
-  var rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultCartesianChartProps);
-  var {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    categoricalChartProps
-  } = props;
-  var options = {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    eventEmitter: undefined
-  };
-  return /*#__PURE__*/React.createElement(RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName
-  }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {
-    chartData: categoricalChartProps.data
-  }), /*#__PURE__*/React.createElement(ReportMainChartProps, {
-    layout: rootChartProps.layout,
-    margin: rootChartProps.margin
-  }), /*#__PURE__*/React.createElement(ReportChartProps, {
-    baseValue: rootChartProps.baseValue,
-    accessibilityLayer: rootChartProps.accessibilityLayer,
-    barCategoryGap: rootChartProps.barCategoryGap,
-    maxBarSize: rootChartProps.maxBarSize,
-    stackOffset: rootChartProps.stackOffset,
-    barGap: rootChartProps.barGap,
-    barSize: rootChartProps.barSize,
-    syncId: rootChartProps.syncId,
-    syncMethod: rootChartProps.syncMethod,
-    className: rootChartProps.className,
-    reverseStackOrder: rootChartProps.reverseStackOrder
-  }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, rootChartProps, {
-    ref: ref
-  })));
-});
Index: de_modules/recharts/es6/chart/CategoricalChart.js
===================================================================
--- node_modules/recharts/es6/chart/CategoricalChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-var _excluded = ["width", "height", "responsive", "children", "className", "style", "compact", "title", "desc"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { RootSurface } from '../container/RootSurface';
-import { RechartsWrapper } from './RechartsWrapper';
-import { ClipPathProvider } from '../container/ClipPathProvider';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { ReportChartSize } from '../context/chartLayoutContext';
-export var CategoricalChart = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-      width,
-      height,
-      responsive,
-      children,
-      className,
-      style,
-      compact,
-      title,
-      desc
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var attrs = svgPropertiesNoEvents(others);
-
-  /*
-   * The "compact" mode is used as the panorama within Brush.
-   * However because `compact` is a public prop, let's assume that it can render outside of Brush too.
-   */
-  if (compact) {
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {
-      width: width,
-      height: height
-    }), /*#__PURE__*/React.createElement(RootSurface, {
-      otherAttributes: attrs,
-      title: title,
-      desc: desc
-    }, children));
-  }
-  return /*#__PURE__*/React.createElement(RechartsWrapper, {
-    className: className,
-    style: style,
-    width: width,
-    height: height,
-    responsive: responsive !== null && responsive !== void 0 ? responsive : false,
-    onClick: props.onClick,
-    onMouseLeave: props.onMouseLeave,
-    onMouseEnter: props.onMouseEnter,
-    onMouseMove: props.onMouseMove,
-    onMouseDown: props.onMouseDown,
-    onMouseUp: props.onMouseUp,
-    onContextMenu: props.onContextMenu,
-    onDoubleClick: props.onDoubleClick,
-    onTouchStart: props.onTouchStart,
-    onTouchMove: props.onTouchMove,
-    onTouchEnd: props.onTouchEnd
-  }, /*#__PURE__*/React.createElement(RootSurface, {
-    otherAttributes: attrs,
-    title: title,
-    desc: desc,
-    ref: ref
-  }, /*#__PURE__*/React.createElement(ClipPathProvider, null, children)));
-});
Index: de_modules/recharts/es6/chart/ComposedChart.js
===================================================================
--- node_modules/recharts/es6/chart/ComposedChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var ComposedChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "ComposedChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/FunnelChart.js
===================================================================
--- node_modules/recharts/es6/chart/FunnelChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var FunnelChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "FunnelChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/LineChart.js
===================================================================
--- node_modules/recharts/es6/chart/LineChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var LineChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "LineChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/PieChart.js
===================================================================
--- node_modules/recharts/es6/chart/PieChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { defaultPolarChartProps, PolarChart } from './PolarChart';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-var allowedTooltipTypes = ['item'];
-export var defaultPieChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {
-  layout: 'centric',
-  startAngle: 0,
-  endAngle: 360
-});
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export var PieChart = /*#__PURE__*/forwardRef((props, ref) => {
-  var propsWithDefaults = resolveDefaultProps(props, defaultPieChartProps);
-  return /*#__PURE__*/React.createElement(PolarChart, {
-    chartName: "PieChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/PolarChart.js
===================================================================
--- node_modules/recharts/es6/chart/PolarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,107 +1,0 @@
-var _excluded = ["layout"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import { forwardRef } from 'react';
-import * as React from 'react';
-import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
-import { ChartDataContextProvider } from '../context/chartDataContext';
-import { ReportMainChartProps } from '../state/ReportMainChartProps';
-import { ReportChartProps } from '../state/ReportChartProps';
-import { ReportPolarOptions } from '../state/ReportPolarOptions';
-import { CategoricalChart } from './CategoricalChart';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-var defaultMargin = {
-  top: 5,
-  right: 5,
-  bottom: 5,
-  left: 5
-};
-
-/**
- * These default props are the same for all PolarChart components.
- */
-export var defaultPolarChartProps = {
-  accessibilityLayer: true,
-  stackOffset: 'none',
-  barCategoryGap: '10%',
-  barGap: 4,
-  margin: defaultMargin,
-  reverseStackOrder: false,
-  syncMethod: 'index',
-  layout: 'radial',
-  responsive: false,
-  cx: '50%',
-  cy: '50%',
-  innerRadius: 0,
-  outerRadius: '80%'
-};
-
-/**
- * These props are required for the PolarChart to function correctly.
- * Users usually would not need to specify these explicitly,
- * because the convenience components like PieChart, RadarChart, etc.
- * will provide these defaults.
- * We can't have the defaults in this file because each of those convenience components
- * have their own opinions about what they should be.
- */
-
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.
- */
-
-export var PolarChart = /*#__PURE__*/forwardRef(function PolarChart(props, ref) {
-  var _polarChartProps$id;
-  var polarChartProps = resolveDefaultProps(props.categoricalChartProps, defaultPolarChartProps);
-  var {
-      layout
-    } = polarChartProps,
-    otherCategoricalProps = _objectWithoutProperties(polarChartProps, _excluded);
-  var {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher
-  } = props;
-  var options = {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    eventEmitter: undefined
-  };
-  return /*#__PURE__*/React.createElement(RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_polarChartProps$id = polarChartProps.id) !== null && _polarChartProps$id !== void 0 ? _polarChartProps$id : chartName
-  }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {
-    chartData: polarChartProps.data
-  }), /*#__PURE__*/React.createElement(ReportMainChartProps, {
-    layout: layout,
-    margin: polarChartProps.margin
-  }), /*#__PURE__*/React.createElement(ReportChartProps, {
-    baseValue: undefined,
-    accessibilityLayer: polarChartProps.accessibilityLayer,
-    barCategoryGap: polarChartProps.barCategoryGap,
-    maxBarSize: polarChartProps.maxBarSize,
-    stackOffset: polarChartProps.stackOffset,
-    barGap: polarChartProps.barGap,
-    barSize: polarChartProps.barSize,
-    syncId: polarChartProps.syncId,
-    syncMethod: polarChartProps.syncMethod,
-    className: polarChartProps.className,
-    reverseStackOrder: polarChartProps.reverseStackOrder
-  }), /*#__PURE__*/React.createElement(ReportPolarOptions, {
-    cx: polarChartProps.cx,
-    cy: polarChartProps.cy,
-    startAngle: polarChartProps.startAngle,
-    endAngle: polarChartProps.endAngle,
-    innerRadius: polarChartProps.innerRadius,
-    outerRadius: polarChartProps.outerRadius
-  }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, otherCategoricalProps, {
-    ref: ref
-  })));
-});
Index: de_modules/recharts/es6/chart/RadarChart.js
===================================================================
--- node_modules/recharts/es6/chart/RadarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { defaultPolarChartProps, PolarChart } from './PolarChart';
-var allowedTooltipTypes = ['axis'];
-export var defaultRadarChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {
-  layout: 'centric',
-  startAngle: 90,
-  endAngle: -270
-});
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export var RadarChart = /*#__PURE__*/forwardRef((props, ref) => {
-  var propsWithDefaults = resolveDefaultProps(props, defaultRadarChartProps);
-  return /*#__PURE__*/React.createElement(PolarChart, {
-    chartName: "RadarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/RadialBarChart.js
===================================================================
--- node_modules/recharts/es6/chart/RadialBarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { defaultPolarChartProps, PolarChart } from './PolarChart';
-var allowedTooltipTypes = ['axis', 'item'];
-export var defaultRadialBarChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {
-  layout: 'radial',
-  startAngle: 0,
-  endAngle: 360
-});
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export var RadialBarChart = /*#__PURE__*/forwardRef((props, ref) => {
-  var propsWithDefaults = resolveDefaultProps(props, defaultRadialBarChartProps);
-  return /*#__PURE__*/React.createElement(PolarChart, {
-    chartName: "RadialBarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/RechartsWrapper.js
===================================================================
--- node_modules/recharts/es6/chart/RechartsWrapper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,342 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { mouseLeaveChart } from '../state/tooltipSlice';
-import { useAppDispatch } from '../state/hooks';
-import { mouseClickAction, mouseMoveAction } from '../state/mouseEventsMiddleware';
-import { useSynchronisedEventsFromOtherCharts } from '../synchronisation/useChartSynchronisation';
-import { focusAction, keyDownAction } from '../state/keyboardEventsMiddleware';
-import { useReportScale } from '../util/useReportScale';
-import { externalEventAction } from '../state/externalEventsMiddleware';
-import { touchEventAction } from '../state/touchEventsMiddleware';
-import { TooltipPortalContext } from '../context/tooltipPortalContext';
-import { LegendPortalContext } from '../context/legendPortalContext';
-import { ReportChartSize } from '../context/chartLayoutContext';
-import { useResponsiveContainerContext } from '../component/ResponsiveContainer';
-var EventSynchronizer = () => {
-  useSynchronisedEventsFromOtherCharts();
-  return null;
-};
-function getNumberOrZero(value) {
-  if (typeof value === 'number') {
-    return value;
-  }
-  if (typeof value === 'string') {
-    var parsed = parseFloat(value);
-    if (!Number.isNaN(parsed)) {
-      return parsed;
-    }
-  }
-  return 0;
-}
-var ResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {
-  var _props$style, _props$style2;
-  var observerRef = useRef(null);
-  var [sizes, setSizes] = useState({
-    containerWidth: getNumberOrZero((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width),
-    containerHeight: getNumberOrZero((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.height)
-  });
-  var setContainerSize = useCallback((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  var innerRef = useCallback(node => {
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    if (node != null && typeof ResizeObserver !== 'undefined') {
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = node.getBoundingClientRect();
-      setContainerSize(containerWidth, containerHeight);
-      var callback = entries => {
-        var entry = entries[0];
-        if (entry == null) {
-          return;
-        }
-        var {
-          width,
-          height
-        } = entry.contentRect;
-        setContainerSize(width, height);
-      };
-      var observer = new ResizeObserver(callback);
-      observer.observe(node);
-      observerRef.current = observer;
-    }
-  }, [ref, setContainerSize]);
-  useEffect(() => {
-    return () => {
-      var observer = observerRef.current;
-      if (observer != null) {
-        observer.disconnect();
-      }
-    };
-  }, [setContainerSize]);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: sizes.containerWidth,
-    height: sizes.containerHeight
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: innerRef
-  }, props)));
-});
-var ReadSizeOnceDiv = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  var [sizes, setSizes] = useState({
-    containerWidth: getNumberOrZero(width),
-    containerHeight: getNumberOrZero(height)
-  });
-  var setContainerSize = useCallback((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  var innerRef = useCallback(node => {
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    if (node != null) {
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = node.getBoundingClientRect();
-      setContainerSize(containerWidth, containerHeight);
-    }
-  }, [ref, setContainerSize]);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: sizes.containerWidth,
-    height: sizes.containerHeight
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: innerRef
-  }, props)));
-});
-var StaticDiv = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: ref
-  }, props)));
-});
-var NonResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  // When width or height are percentages or CSS short names, read size from DOM once
-  if (typeof width === 'string' || typeof height === 'string') {
-    return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {
-      ref: ref
-    }));
-  }
-  // When both are numbers, use them directly
-  if (typeof width === 'number' && typeof height === 'number') {
-    return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {
-      width: width,
-      height: height,
-      ref: ref
-    }));
-  }
-  // When width/height are undefined, render wrapper div without reporting size
-  // This results in no SVG being rendered (intentional for backwards compatibility)
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: ref
-  }, props)));
-});
-function getWrapperDivComponent(responsive) {
-  return responsive ? ResponsiveDiv : NonResponsiveDiv;
-}
-export var RechartsWrapper = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-    children,
-    className,
-    height: heightFromProps,
-    onClick,
-    onContextMenu,
-    onDoubleClick,
-    onMouseDown,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseMove,
-    onMouseUp,
-    onTouchEnd,
-    onTouchMove,
-    onTouchStart,
-    style,
-    width: widthFromProps,
-    responsive,
-    dispatchTouchEvents = true
-  } = props;
-  var containerRef = useRef(null);
-  var dispatch = useAppDispatch();
-  var [tooltipPortal, setTooltipPortal] = useState(null);
-  var [legendPortal, setLegendPortal] = useState(null);
-  var setScaleRef = useReportScale();
-  var responsiveContainerCalculations = useResponsiveContainerContext();
-  var width = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.width) > 0 ? responsiveContainerCalculations.width : widthFromProps;
-  var height = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.height) > 0 ? responsiveContainerCalculations.height : heightFromProps;
-  var innerRef = useCallback(node => {
-    setScaleRef(node);
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    setTooltipPortal(node);
-    setLegendPortal(node);
-    if (node != null) {
-      containerRef.current = node;
-    }
-  }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);
-  var myOnClick = useCallback(e => {
-    dispatch(mouseClickAction(e));
-    dispatch(externalEventAction({
-      handler: onClick,
-      reactEvent: e
-    }));
-  }, [dispatch, onClick]);
-  var myOnMouseEnter = useCallback(e => {
-    dispatch(mouseMoveAction(e));
-    dispatch(externalEventAction({
-      handler: onMouseEnter,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseEnter]);
-  var myOnMouseLeave = useCallback(e => {
-    dispatch(mouseLeaveChart());
-    dispatch(externalEventAction({
-      handler: onMouseLeave,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseLeave]);
-  var myOnMouseMove = useCallback(e => {
-    dispatch(mouseMoveAction(e));
-    dispatch(externalEventAction({
-      handler: onMouseMove,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseMove]);
-  var onFocus = useCallback(() => {
-    dispatch(focusAction());
-  }, [dispatch]);
-  var onKeyDown = useCallback(e => {
-    dispatch(keyDownAction(e.key));
-  }, [dispatch]);
-  var myOnContextMenu = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onContextMenu,
-      reactEvent: e
-    }));
-  }, [dispatch, onContextMenu]);
-  var myOnDoubleClick = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onDoubleClick,
-      reactEvent: e
-    }));
-  }, [dispatch, onDoubleClick]);
-  var myOnMouseDown = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onMouseDown,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseDown]);
-  var myOnMouseUp = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onMouseUp,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseUp]);
-  var myOnTouchStart = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onTouchStart,
-      reactEvent: e
-    }));
-  }, [dispatch, onTouchStart]);
-
-  /*
-   * onTouchMove is special because it behaves different from mouse events.
-   * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over
-   * a certain element. Touch events don't have that; touch only gives us
-   * start (finger down), end (finger up) and move (finger moving).
-   * So we need to figure out which element the user is touching
-   * ourselves. Fortunately, there's a convenient method for that:
-   * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint
-   */
-  var myOnTouchMove = useCallback(e => {
-    if (dispatchTouchEvents) {
-      dispatch(touchEventAction(e));
-    }
-    dispatch(externalEventAction({
-      handler: onTouchMove,
-      reactEvent: e
-    }));
-  }, [dispatch, dispatchTouchEvents, onTouchMove]);
-  var myOnTouchEnd = useCallback(e => {
-    dispatch(externalEventAction({
-      handler: onTouchEnd,
-      reactEvent: e
-    }));
-  }, [dispatch, onTouchEnd]);
-  var WrapperDiv = getWrapperDivComponent(responsive);
-  return /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(LegendPortalContext.Provider, {
-    value: legendPortal
-  }, /*#__PURE__*/React.createElement(WrapperDiv, {
-    width: width !== null && width !== void 0 ? width : style === null || style === void 0 ? void 0 : style.width,
-    height: height !== null && height !== void 0 ? height : style === null || style === void 0 ? void 0 : style.height,
-    className: clsx('recharts-wrapper', className),
-    style: _objectSpread({
-      position: 'relative',
-      cursor: 'default',
-      width,
-      height
-    }, style),
-    onClick: myOnClick,
-    onContextMenu: myOnContextMenu,
-    onDoubleClick: myOnDoubleClick,
-    onFocus: onFocus,
-    onKeyDown: onKeyDown,
-    onMouseDown: myOnMouseDown,
-    onMouseEnter: myOnMouseEnter,
-    onMouseLeave: myOnMouseLeave,
-    onMouseMove: myOnMouseMove,
-    onMouseUp: myOnMouseUp,
-    onTouchEnd: myOnTouchEnd,
-    onTouchMove: myOnTouchMove,
-    onTouchStart: myOnTouchStart,
-    ref: innerRef
-  }, /*#__PURE__*/React.createElement(EventSynchronizer, null), children)));
-});
Index: de_modules/recharts/es6/chart/Sankey.js
===================================================================
--- node_modules/recharts/es6/chart/Sankey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,939 +1,0 @@
-var _excluded = ["sourceX", "sourceY", "sourceControlX", "targetX", "targetY", "targetControlX", "linkWidth"],
-  _excluded2 = ["className", "style", "children", "id"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { useCallback, useMemo, useState } from 'react';
-import maxBy from 'es-toolkit/compat/maxBy';
-import sumBy from 'es-toolkit/compat/sumBy';
-import get from 'es-toolkit/compat/get';
-import { Surface } from '../container/Surface';
-import { Layer } from '../container/Layer';
-import { Rectangle } from '../shape/Rectangle';
-import { getValueByDataKey } from '../util/ChartUtils';
-import { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';
-import { TooltipPortalContext } from '../context/tooltipPortalContext';
-import { RechartsWrapper } from './RechartsWrapper';
-import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
-import { useAppDispatch } from '../state/hooks';
-import { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { SetComputedData } from '../context/chartDataContext';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-import { isNotNil, noop } from '../util/DataUtils';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-var interpolationGenerator = (a, b) => {
-  var ka = +a;
-  var kb = b - ka;
-  return t => ka + kb * t;
-};
-var centerY = node => node.y + node.dy / 2;
-
-// TODO why is this not reading dataKey?
-var getValue = entry => entry && entry.value || 0;
-var getSumOfIds = (links, ids) => ids.reduce((result, id) => result + getValue(links[id]), 0);
-var getSumWithWeightedSource = (tree, links, ids) => ids.reduce((result, id) => {
-  var link = links[id];
-  if (link == null) {
-    return result;
-  }
-  var sourceNode = tree[link.source];
-  if (sourceNode == null) {
-    return result;
-  }
-  return result + centerY(sourceNode) * getValue(links[id]);
-}, 0);
-var getSumWithWeightedTarget = (tree, links, ids) => ids.reduce((result, id) => {
-  var link = links[id];
-  if (link == null) {
-    return result;
-  }
-  var targetNode = tree[link.target];
-  if (targetNode == null) {
-    return result;
-  }
-  return result + centerY(targetNode) * getValue(links[id]);
-}, 0);
-var ascendingY = (a, b) => a.y - b.y;
-var searchTargetsAndSources = (links, id) => {
-  var sourceNodes = [];
-  var sourceLinks = [];
-  var targetNodes = [];
-  var targetLinks = [];
-  for (var i = 0, len = links.length; i < len; i++) {
-    var link = links[i];
-    if ((link === null || link === void 0 ? void 0 : link.source) === id) {
-      targetNodes.push(link.target);
-      targetLinks.push(i);
-    }
-    if ((link === null || link === void 0 ? void 0 : link.target) === id) {
-      sourceNodes.push(link.source);
-      sourceLinks.push(i);
-    }
-  }
-  return {
-    sourceNodes,
-    sourceLinks,
-    targetLinks,
-    targetNodes
-  };
-};
-var updateDepthOfTargets = (tree, curNode) => {
-  var {
-    targetNodes
-  } = curNode;
-  for (var i = 0, len = targetNodes.length; i < len; i++) {
-    var targetNode = targetNodes[i];
-    if (targetNode == null) {
-      continue;
-    }
-    var target = tree[targetNode];
-    if (target) {
-      target.depth = Math.max(curNode.depth + 1, target.depth);
-      updateDepthOfTargets(tree, target);
-    }
-  }
-};
-var getNodesTree = (_ref, width, nodeWidth, align) => {
-  var _maxBy$depth, _maxBy;
-  var {
-    nodes,
-    links
-  } = _ref;
-  var tree = nodes.map((entry, index) => {
-    var result = searchTargetsAndSources(links, index);
-    return _objectSpread(_objectSpread(_objectSpread({}, entry), result), {}, {
-      value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),
-      depth: 0
-    });
-  });
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var node = tree[i];
-    if (node != null && !node.sourceNodes.length) {
-      updateDepthOfTargets(tree, node);
-    }
-  }
-  var maxDepth = (_maxBy$depth = (_maxBy = maxBy(tree, entry => entry.depth)) === null || _maxBy === void 0 ? void 0 : _maxBy.depth) !== null && _maxBy$depth !== void 0 ? _maxBy$depth : 0;
-  if (maxDepth >= 1) {
-    var childWidth = (width - nodeWidth) / maxDepth;
-    for (var _i = 0, _len = tree.length; _i < _len; _i++) {
-      var _node = tree[_i];
-      if (_node == null) {
-        continue;
-      }
-      if (!_node.targetNodes.length) {
-        if (align === 'justify') {
-          _node.depth = maxDepth;
-        }
-      }
-      _node.x = _node.depth * childWidth;
-      _node.dx = nodeWidth;
-    }
-  }
-  return {
-    tree,
-    maxDepth
-  };
-};
-var getDepthTree = tree => {
-  var result = [];
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var _result$node$depth;
-    var node = tree[i];
-    if (node == null) {
-      continue;
-    }
-    if (!result[node.depth]) {
-      result[node.depth] = [];
-    }
-    (_result$node$depth = result[node.depth]) === null || _result$node$depth === void 0 || _result$node$depth.push(node);
-  }
-  return result;
-};
-var updateYOfTree = (depthTree, height, nodePadding, links, verticalAlign) => {
-  var yRatio = Math.min(...depthTree.map(nodes => (height - (nodes.length - 1) * nodePadding) / sumBy(nodes, getValue)));
-  for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {
-    var nodes = depthTree[d];
-    if (nodes == null) {
-      continue;
-    }
-    if (verticalAlign === 'top') {
-      var currentY = 0;
-      for (var i = 0, len = nodes.length; i < len; i++) {
-        var node = nodes[i];
-        if (node == null) {
-          continue;
-        }
-        node.dy = node.value * yRatio;
-        node.y = currentY;
-        currentY += node.dy + nodePadding;
-      }
-    } else {
-      for (var _i2 = 0, _len2 = nodes.length; _i2 < _len2; _i2++) {
-        var _node2 = nodes[_i2];
-        if (_node2 == null) {
-          continue;
-        }
-        _node2.y = _i2;
-        _node2.dy = _node2.value * yRatio;
-      }
-    }
-  }
-  return links.map(link => _objectSpread(_objectSpread({}, link), {}, {
-    dy: getValue(link) * yRatio
-  }));
-};
-var resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {
-  var sort = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
-  for (var i = 0, len = depthTree.length; i < len; i++) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    var n = nodes.length;
-
-    // Sort by the value of y
-    if (sort) {
-      nodes.sort(ascendingY);
-    }
-    var y0 = 0;
-    for (var j = 0; j < n; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      var dy = y0 - node.y;
-      if (dy > 0) {
-        node.y += dy;
-      }
-      y0 = node.y + node.dy + nodePadding;
-    }
-    y0 = height + nodePadding;
-    for (var _j = n - 1; _j >= 0; _j--) {
-      var _node3 = nodes[_j];
-      if (_node3 == null) {
-        continue;
-      }
-      var _dy = _node3.y + _node3.dy + nodePadding - y0;
-      if (_dy > 0) {
-        _node3.y -= _dy;
-        y0 = _node3.y;
-      } else {
-        break;
-      }
-    }
-  }
-};
-var relaxLeftToRight = (tree, depthTree, links, alpha) => {
-  for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    for (var j = 0, len = nodes.length; j < len; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      if (node.sourceLinks.length) {
-        var sourceSum = getSumOfIds(links, node.sourceLinks);
-        var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);
-        var y = weightedSum / sourceSum;
-        node.y += (y - centerY(node)) * alpha;
-      }
-    }
-  }
-};
-var relaxRightToLeft = (tree, depthTree, links, alpha) => {
-  for (var i = depthTree.length - 1; i >= 0; i--) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    for (var j = 0, len = nodes.length; j < len; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      if (node.targetLinks.length) {
-        var targetSum = getSumOfIds(links, node.targetLinks);
-        var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);
-        var y = weightedSum / targetSum;
-        node.y += (y - centerY(node)) * alpha;
-      }
-    }
-  }
-};
-var updateYOfLinks = (tree, links) => {
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var node = tree[i];
-    if (node == null) {
-      continue;
-    }
-    var sy = 0;
-    var ty = 0;
-    node.targetLinks.sort((a, b) => {
-      var _links$a, _links$b, _tree$targetA, _tree$targetB;
-      var targetA = (_links$a = links[a]) === null || _links$a === void 0 ? void 0 : _links$a.target;
-      var targetB = (_links$b = links[b]) === null || _links$b === void 0 ? void 0 : _links$b.target;
-      if (targetA == null || targetB == null) {
-        return 0;
-      }
-      var yA = (_tree$targetA = tree[targetA]) === null || _tree$targetA === void 0 ? void 0 : _tree$targetA.y;
-      var yB = (_tree$targetB = tree[targetB]) === null || _tree$targetB === void 0 ? void 0 : _tree$targetB.y;
-      if (yA == null || yB == null) {
-        return 0;
-      }
-      return yA - yB;
-    });
-    node.sourceLinks.sort((a, b) => {
-      var _links$a2, _links$b2, _tree$sourceA, _tree$sourceB;
-      var sourceA = (_links$a2 = links[a]) === null || _links$a2 === void 0 ? void 0 : _links$a2.source;
-      var sourceB = (_links$b2 = links[b]) === null || _links$b2 === void 0 ? void 0 : _links$b2.source;
-      if (sourceA == null || sourceB == null) {
-        return 0;
-      }
-      var yA = (_tree$sourceA = tree[sourceA]) === null || _tree$sourceA === void 0 ? void 0 : _tree$sourceA.y;
-      var yB = (_tree$sourceB = tree[sourceB]) === null || _tree$sourceB === void 0 ? void 0 : _tree$sourceB.y;
-      if (yA == null || yB == null) {
-        return 0;
-      }
-      return yA - yB;
-    });
-    for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {
-      var targetLink = node.targetLinks[j];
-      if (targetLink == null) {
-        continue;
-      }
-      var link = links[targetLink];
-      if (link) {
-        // @ts-expect-error we should refactor this to immutable
-        link.sy = sy;
-        sy += link.dy;
-      }
-    }
-    for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {
-      var sourceLink = node.sourceLinks[_j2];
-      if (sourceLink == null) {
-        continue;
-      }
-      var _link = links[sourceLink];
-      if (_link) {
-        // @ts-expect-error we should refactor this to immutable
-        _link.ty = ty;
-        ty += _link.dy;
-      }
-    }
-  }
-};
-var computeData = _ref2 => {
-  var {
-    data,
-    width,
-    height,
-    iterations,
-    nodeWidth,
-    nodePadding,
-    sort,
-    verticalAlign,
-    align
-  } = _ref2;
-  var {
-    links
-  } = data;
-  var {
-    tree
-  } = getNodesTree(data, width, nodeWidth, align);
-  var depthTree = getDepthTree(tree);
-  var linksWithDy = updateYOfTree(depthTree, height, nodePadding, links, verticalAlign);
-  resolveCollisions(depthTree, height, nodePadding, sort);
-  if (verticalAlign === 'justify') {
-    var alpha = 1;
-    for (var i = 1; i <= iterations; i++) {
-      relaxRightToLeft(tree, depthTree, linksWithDy, alpha *= 0.99);
-      resolveCollisions(depthTree, height, nodePadding, sort);
-      relaxLeftToRight(tree, depthTree, linksWithDy, alpha);
-      resolveCollisions(depthTree, height, nodePadding, sort);
-    }
-  }
-  updateYOfLinks(tree, linksWithDy);
-  // @ts-expect-error updateYOfLinks modifies the links array to add sy and ty in place
-  var newLinks = linksWithDy;
-  return {
-    nodes: tree,
-    links: newLinks
-  };
-};
-var getNodeCoordinateOfTooltip = item => {
-  return {
-    x: +item.x + +item.width / 2,
-    y: +item.y + +item.height / 2
-  };
-};
-var getLinkCoordinateOfTooltip = item => {
-  return 'sourceX' in item ? {
-    x: (item.sourceX + item.targetX) / 2,
-    y: (item.sourceY + item.targetY) / 2
-  } : undefined;
-};
-var getPayloadOfTooltip = (item, type, nameKey) => {
-  var {
-    payload
-  } = item;
-  if (type === 'node') {
-    return {
-      payload,
-      name: getValueByDataKey(payload, nameKey, ''),
-      value: getValueByDataKey(payload, 'value')
-    };
-  }
-  if ('source' in payload && payload.source && payload.target) {
-    var sourceName = getValueByDataKey(payload.source, nameKey, '');
-    var targetName = getValueByDataKey(payload.target, nameKey, '');
-    return {
-      payload,
-      name: "".concat(sourceName, " - ").concat(targetName),
-      value: getValueByDataKey(payload, 'value')
-    };
-  }
-  return undefined;
-};
-export var sankeyPayloadSearcher = (_, activeIndex, computedData, nameKey) => {
-  if (activeIndex == null || typeof activeIndex !== 'string') {
-    return undefined;
-  }
-  if (computedData == null || typeof computedData !== 'object') {
-    return undefined;
-  }
-  var splitIndex = activeIndex.split('-');
-  var [targetType, index] = splitIndex;
-  var item = get(computedData, "".concat(targetType, "s[").concat(index, "]"));
-  if (item) {
-    var payload = getPayloadOfTooltip(item, targetType, nameKey);
-    return payload;
-  }
-  return undefined;
-};
-var options = {
-  chartName: 'Sankey',
-  defaultTooltipEventType: 'item',
-  validateTooltipEventTypes: ['item'],
-  tooltipPayloadSearcher: sankeyPayloadSearcher,
-  eventEmitter: undefined
-};
-var SetSankeyTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    data,
-    id
-  } = _ref3;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      name,
-      nameKey,
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// TODO: improve types - NodeOptions uses SankeyNode, LinkOptions uses LinkProps. Standardize.
-
-function renderLinkItem(option, props) {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  var {
-      sourceX,
-      sourceY,
-      sourceControlX,
-      targetX,
-      targetY,
-      targetControlX,
-      linkWidth
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement("path", _extends({
-    className: "recharts-sankey-link",
-    d: "\n          M".concat(sourceX, ",").concat(sourceY, "\n          C").concat(sourceControlX, ",").concat(sourceY, " ").concat(targetControlX, ",").concat(targetY, " ").concat(targetX, ",").concat(targetY, "\n        "),
-    fill: "none",
-    stroke: "#333",
-    strokeWidth: linkWidth,
-    strokeOpacity: "0.2"
-  }, svgPropertiesNoEvents(others)));
-}
-var buildLinkProps = _ref4 => {
-  var {
-    link,
-    nodes,
-    left,
-    top,
-    i,
-    linkContent,
-    linkCurvature
-  } = _ref4;
-  var {
-    sy: sourceRelativeY,
-    ty: targetRelativeY,
-    dy: linkWidth
-  } = link;
-  var sourceNode = nodes[link.source];
-  var targetNode = nodes[link.target];
-  if (sourceNode == null || targetNode == null) {
-    return undefined;
-  }
-  var sourceX = sourceNode.x + sourceNode.dx + left;
-  var targetX = targetNode.x + left;
-  var interpolationFunc = interpolationGenerator(sourceX, targetX);
-  var sourceControlX = interpolationFunc(linkCurvature);
-  var targetControlX = interpolationFunc(1 - linkCurvature);
-  var sourceY = sourceNode.y + sourceRelativeY + linkWidth / 2 + top;
-  var targetY = targetNode.y + targetRelativeY + linkWidth / 2 + top;
-  var linkProps = _objectSpread({
-    sourceX,
-    // @ts-expect-error the linkContent from below is contributing unknown props
-    targetX,
-    sourceY,
-    // @ts-expect-error the linkContent from below is contributing unknown props
-    targetY,
-    sourceControlX,
-    targetControlX,
-    sourceRelativeY,
-    targetRelativeY,
-    linkWidth,
-    index: i,
-    payload: _objectSpread(_objectSpread({}, link), {}, {
-      source: sourceNode,
-      target: targetNode
-    })
-  }, svgPropertiesNoEventsFromUnknown(linkContent));
-  return linkProps;
-};
-function SankeyLinkElement(_ref5) {
-  var {
-    graphicalItemId,
-    props,
-    i,
-    linkContent,
-    onMouseEnter: _onMouseEnter,
-    onMouseLeave: _onMouseLeave,
-    onClick: _onClick,
-    dataKey
-  } = _ref5;
-  var activeCoordinate = getLinkCoordinateOfTooltip(props);
-  var activeIndex = "link-".concat(i);
-  var dispatch = useAppDispatch();
-  var events = {
-    onMouseEnter: e => {
-      dispatch(setActiveMouseOverItemIndex({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onMouseEnter(props, e);
-    },
-    onMouseLeave: e => {
-      dispatch(mouseLeaveItem());
-      _onMouseLeave(props, e);
-    },
-    onClick: e => {
-      dispatch(setActiveClickItemIndex({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onClick(props, e);
-    }
-  };
-  return /*#__PURE__*/React.createElement(Layer, events, renderLinkItem(linkContent, props));
-}
-function AllSankeyLinkElements(_ref6) {
-  var {
-    graphicalItemId,
-    modifiedLinks,
-    links,
-    linkContent,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    dataKey
-  } = _ref6;
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-sankey-links",
-    key: "recharts-sankey-links"
-  }, links.map((link, i) => {
-    var linkProps = modifiedLinks[i];
-    if (linkProps == null) {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(SankeyLinkElement, {
-      graphicalItemId: graphicalItemId,
-      key: "link-".concat(link.source, "-").concat(link.target, "-").concat(link.value),
-      props: linkProps,
-      linkContent: linkContent,
-      i: i,
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick,
-      dataKey: dataKey
-    });
-  }));
-}
-function renderNodeItem(option, props) {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  return (
-    /*#__PURE__*/
-    // @ts-expect-error recharts radius is not compatible with SVG radius
-    React.createElement(Rectangle, _extends({
-      className: "recharts-sankey-node",
-      fill: "#0088fe",
-      fillOpacity: "0.8"
-    }, svgPropertiesNoEvents(props)))
-  );
-}
-var buildNodeProps = _ref7 => {
-  var {
-    node,
-    nodeContent,
-    top,
-    left,
-    i
-  } = _ref7;
-  var {
-    x,
-    y,
-    dx,
-    dy
-  } = node;
-  // @ts-expect-error nodeContent is passing in unknown props
-  var nodeProps = _objectSpread(_objectSpread({}, svgPropertiesNoEventsFromUnknown(nodeContent)), {}, {
-    x: x + left,
-    y: y + top,
-    width: dx,
-    height: dy,
-    index: i,
-    payload: node
-  });
-  return nodeProps;
-};
-function NodeElement(_ref8) {
-  var {
-    graphicalItemId,
-    props,
-    nodeContent,
-    i,
-    onMouseEnter: _onMouseEnter2,
-    onMouseLeave: _onMouseLeave2,
-    onClick: _onClick2,
-    dataKey
-  } = _ref8;
-  var dispatch = useAppDispatch();
-  var activeCoordinate = getNodeCoordinateOfTooltip(props);
-  var activeIndex = "node-".concat(i);
-  var events = {
-    onMouseEnter: e => {
-      dispatch(setActiveMouseOverItemIndex({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onMouseEnter2(props, e);
-    },
-    onMouseLeave: e => {
-      dispatch(mouseLeaveItem());
-      _onMouseLeave2(props, e);
-    },
-    onClick: e => {
-      dispatch(setActiveClickItemIndex({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onClick2(props, e);
-    }
-  };
-  return /*#__PURE__*/React.createElement(Layer, events, renderNodeItem(nodeContent, props));
-}
-function AllNodeElements(_ref9) {
-  var {
-    graphicalItemId,
-    modifiedNodes,
-    nodeContent,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    dataKey
-  } = _ref9;
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-sankey-nodes",
-    key: "recharts-sankey-nodes"
-  }, modifiedNodes.map((modifiedNode, i) => {
-    return /*#__PURE__*/React.createElement(NodeElement, {
-      graphicalItemId: graphicalItemId,
-      key: "node-".concat(modifiedNode.index, "-").concat(modifiedNode.x, "-").concat(modifiedNode.y),
-      props: modifiedNode,
-      nodeContent: nodeContent,
-      i: i,
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick,
-      dataKey: dataKey
-    });
-  }));
-}
-export var sankeyDefaultProps = {
-  align: 'justify',
-  dataKey: 'value',
-  iterations: 32,
-  linkCurvature: 0.5,
-  margin: {
-    top: 5,
-    right: 5,
-    bottom: 5,
-    left: 5
-  },
-  nameKey: 'name',
-  nodePadding: 10,
-  nodeWidth: 10,
-  sort: true,
-  verticalAlign: 'justify'
-};
-function SankeyImpl(props) {
-  var {
-      className,
-      style,
-      children,
-      id
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var {
-    link,
-    dataKey,
-    node,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    data,
-    iterations,
-    nodeWidth,
-    nodePadding,
-    sort,
-    linkCurvature,
-    margin,
-    verticalAlign,
-    align
-  } = props;
-  var attrs = svgPropertiesNoEvents(others);
-  var width = useChartWidth();
-  var height = useChartHeight();
-  var {
-    links,
-    modifiedLinks,
-    modifiedNodes
-  } = useMemo(() => {
-    var _margin$left, _margin$right, _margin$top, _margin$bottom;
-    if (!data || !width || !height || width <= 0 || height <= 0) {
-      return {
-        nodes: [],
-        links: [],
-        modifiedLinks: [],
-        modifiedNodes: []
-      };
-    }
-    var contentWidth = width - ((_margin$left = margin.left) !== null && _margin$left !== void 0 ? _margin$left : 0) - ((_margin$right = margin.right) !== null && _margin$right !== void 0 ? _margin$right : 0);
-    var contentHeight = height - ((_margin$top = margin.top) !== null && _margin$top !== void 0 ? _margin$top : 0) - ((_margin$bottom = margin.bottom) !== null && _margin$bottom !== void 0 ? _margin$bottom : 0);
-    var computed = computeData({
-      data,
-      width: contentWidth,
-      height: contentHeight,
-      iterations,
-      nodeWidth,
-      nodePadding,
-      sort,
-      verticalAlign,
-      align
-    });
-    var top = margin.top || 0;
-    var left = margin.left || 0;
-    var newModifiedLinks = computed.links.map((l, i) => {
-      return buildLinkProps({
-        link: l,
-        nodes: computed.nodes,
-        i,
-        top,
-        left,
-        linkContent: link,
-        linkCurvature
-      });
-    }).filter(isNotNil);
-    var newModifiedNodes = computed.nodes.map((n, i) => {
-      return buildNodeProps({
-        node: n,
-        nodeContent: node,
-        i,
-        top,
-        left
-      });
-    });
-    return {
-      nodes: computed.nodes,
-      links: computed.links,
-      modifiedLinks: newModifiedLinks,
-      modifiedNodes: newModifiedNodes
-    };
-  }, [data, width, height, margin, iterations, nodeWidth, nodePadding, sort, link, node, linkCurvature, align, verticalAlign]);
-  var handleMouseEnter = useCallback((item, type, e) => {
-    if (onMouseEnter) {
-      onMouseEnter(item, type, e);
-    }
-  }, [onMouseEnter]);
-  var handleMouseLeave = useCallback((item, type, e) => {
-    if (onMouseLeave) {
-      onMouseLeave(item, type, e);
-    }
-  }, [onMouseLeave]);
-  var handleClick = useCallback((item, type, e) => {
-    if (onClick) {
-      onClick(item, type, e);
-    }
-  }, [onClick]);
-  if (!isPositiveNumber(width) || !isPositiveNumber(height) || !data || !data.links || !data.nodes) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetComputedData, {
-    computedData: {
-      links: modifiedLinks,
-      nodes: modifiedNodes
-    }
-  }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {
-    width: width,
-    height: height
-  }), children, /*#__PURE__*/React.createElement(AllSankeyLinkElements, {
-    graphicalItemId: id,
-    links: links,
-    modifiedLinks: modifiedLinks,
-    linkContent: link,
-    dataKey: dataKey,
-    onMouseEnter: (linkProps, e) => handleMouseEnter(linkProps, 'link', e),
-    onMouseLeave: (linkProps, e) => handleMouseLeave(linkProps, 'link', e),
-    onClick: (linkProps, e) => handleClick(linkProps, 'link', e)
-  }), /*#__PURE__*/React.createElement(AllNodeElements, {
-    graphicalItemId: id,
-    modifiedNodes: modifiedNodes,
-    nodeContent: node,
-    dataKey: dataKey,
-    onMouseEnter: (nodeProps, e) => handleMouseEnter(nodeProps, 'node', e),
-    onMouseLeave: (nodeProps, e) => handleMouseLeave(nodeProps, 'node', e),
-    onClick: (nodeProps, e) => handleClick(nodeProps, 'node', e)
-  })));
-}
-
-/**
- * Flow diagram in which the width of the arrows is proportional to the flow rate.
- * It is typically used to visualize energy or material or cost transfers between processes.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export function Sankey(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, sankeyDefaultProps);
-  var {
-    width,
-    height,
-    style,
-    className,
-    id: externalId
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = useState(null);
-  return /*#__PURE__*/React.createElement(RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: className !== null && className !== void 0 ? className : 'Sankey'
-  }, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement(ReportChartMargin, {
-    margin: props.margin
-  }), /*#__PURE__*/React.createElement(RechartsWrapper, {
-    className: className,
-    style: style,
-    width: width,
-    height: height
-    /*
-     * Sankey, same as Treemap, suffers from overfilling the container
-     * and causing infinite render loops where the chart keeps growing.
-     */,
-    responsive: false,
-    ref: node => {
-      if (node && !tooltipPortal) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: externalId,
-    type: "sankey"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetSankeyTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    data: props.data,
-    id: id
-  }), /*#__PURE__*/React.createElement(SankeyImpl, _extends({}, props, {
-    id: id
-  })))))));
-}
-Sankey.displayName = 'Sankey';
Index: de_modules/recharts/es6/chart/ScatterChart.js
===================================================================
--- node_modules/recharts/es6/chart/ScatterChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { arrayTooltipSearcher } from '../state/optionsSlice';
-import { CartesianChart } from './CartesianChart';
-var allowedTooltipTypes = ['item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export var ScatterChart = /*#__PURE__*/forwardRef((props, ref) => {
-  return /*#__PURE__*/React.createElement(CartesianChart, {
-    chartName: "ScatterChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/es6/chart/SunburstChart.js
===================================================================
--- node_modules/recharts/es6/chart/SunburstChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,328 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { useState } from 'react';
-import { scaleLinear } from 'victory-vendor/d3-scale';
-import { clsx } from 'clsx';
-import get from 'es-toolkit/compat/get';
-import { Surface } from '../container/Surface';
-import { Layer } from '../container/Layer';
-import { Sector } from '../shape/Sector';
-import { Text } from '../component/Text';
-import { polarToCartesian } from '../util/PolarUtils';
-import { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';
-import { TooltipPortalContext } from '../context/tooltipPortalContext';
-import { RechartsWrapper } from './RechartsWrapper';
-import { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
-import { useAppDispatch } from '../state/hooks';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-
-/**
- * We require tooltipIndex on each node internally to track which node is active in the tooltip.
- * This is not required from the outside user - we can calculate it as we traverse the tree.
- */
-
-var defaultTextProps = {
-  fontWeight: 'bold',
-  paintOrder: 'stroke fill',
-  fontSize: '.75rem',
-  stroke: '#FFF',
-  fill: 'black',
-  pointerEvents: 'none'
-};
-function getMaxDepthOf(node) {
-  if (!node.children || node.children.length === 0) return 1;
-
-  // Calculate depth for each child and find the maximum
-  var childDepths = node.children.map(d => getMaxDepthOf(d));
-  return 1 + Math.max(...childDepths);
-}
-var SetSunburstTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    data,
-    stroke,
-    fill,
-    positions,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data.children,
-    getPosition: index => positions.get(index),
-    // Sunburst does not support many of the properties as other charts do so there's plenty of defaults here
-    settings: {
-      stroke,
-      strokeWidth: undefined,
-      fill,
-      nameKey,
-      dataKey,
-      // if there is a nameKey use it, otherwise make the name of the tooltip the dataKey itself
-      name: nameKey ? undefined : dataKey,
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// Why is margin not a sunburst prop? No clue. Probably it should be
-var defaultSunburstMargin = {
-  top: 0,
-  right: 0,
-  bottom: 0,
-  left: 0
-};
-export var payloadSearcher = (data, activeIndex) => {
-  if (activeIndex == null) {
-    return undefined;
-  }
-  return get(data, activeIndex);
-};
-var addToSunburstNodeIndex = function addToSunburstNodeIndex(indexInChildrenArr) {
-  var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return "".concat(activeTooltipIndexSoFar, "children[").concat(indexInChildrenArr, "]");
-};
-var preloadedState = {
-  options: {
-    validateTooltipEventTypes: ['item'],
-    defaultTooltipEventType: 'item',
-    chartName: 'Sunburst',
-    tooltipPayloadSearcher: payloadSearcher,
-    eventEmitter: undefined
-  }
-};
-export var defaultSunburstChartProps = {
-  padding: 2,
-  dataKey: 'value',
-  nameKey: 'name',
-  ringPadding: 2,
-  innerRadius: 50,
-  fill: '#333',
-  stroke: '#FFF',
-  textOptions: defaultTextProps,
-  startAngle: 0,
-  endAngle: 360,
-  responsive: false
-};
-var SunburstChartImpl = _ref2 => {
-  var {
-    className,
-    data,
-    children,
-    padding,
-    dataKey,
-    nameKey,
-    ringPadding,
-    innerRadius,
-    fill,
-    stroke,
-    textOptions,
-    outerRadius: outerRadiusFromProps,
-    cx: cxFromProps,
-    cy: cyFromProps,
-    startAngle,
-    endAngle,
-    onClick,
-    onMouseEnter,
-    onMouseLeave,
-    id
-  } = _ref2;
-  var dispatch = useAppDispatch();
-  var width = useChartWidth();
-  var height = useChartHeight();
-  if (width == null || height == null) {
-    return null;
-  }
-  var outerRadius = outerRadiusFromProps !== null && outerRadiusFromProps !== void 0 ? outerRadiusFromProps : Math.min(width, height) / 2;
-  var cx = cxFromProps !== null && cxFromProps !== void 0 ? cxFromProps : width / 2;
-  var cy = cyFromProps !== null && cyFromProps !== void 0 ? cyFromProps : height / 2;
-  var rScale = scaleLinear([0, data[dataKey]], [0, endAngle]);
-  var treeDepth = getMaxDepthOf(data);
-  var thickness = (outerRadius - innerRadius) / treeDepth;
-  var sectors = [];
-  var positions = new Map([]);
-
-  // event handlers
-  function handleMouseEnter(node, e) {
-    if (onMouseEnter) onMouseEnter(node, e);
-    dispatch(setActiveMouseOverItemIndex({
-      activeIndex: node.tooltipIndex,
-      activeDataKey: dataKey,
-      activeCoordinate: positions.get(node.name),
-      activeGraphicalItemId: id
-    }));
-  }
-  function handleMouseLeave(node, e) {
-    if (onMouseLeave) onMouseLeave(node, e);
-    dispatch(mouseLeaveItem());
-  }
-  function handleClick(node) {
-    if (onClick) onClick(node);
-    dispatch(setActiveClickItemIndex({
-      activeIndex: node.tooltipIndex,
-      activeDataKey: dataKey,
-      activeCoordinate: positions.get(node.name),
-      activeGraphicalItemId: id
-    }));
-  }
-
-  // recursively add nodes for each data point and its children
-  function drawArcs(childNodes, options) {
-    var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
-    var {
-      radius,
-      innerR,
-      initialAngle,
-      childColor,
-      nestedActiveTooltipIndex
-    } = options;
-    var currentAngle = initialAngle;
-    if (!childNodes) return; // base case: no children of this node
-
-    childNodes.forEach((d, i) => {
-      var _ref3, _d$fill;
-      var currentTooltipIndex = depth === 1 ? "[".concat(i, "]") : addToSunburstNodeIndex(i, nestedActiveTooltipIndex);
-      var nodeWithIndex = _objectSpread(_objectSpread({}, d), {}, {
-        tooltipIndex: currentTooltipIndex
-      });
-      var arcLength = rScale(d[dataKey]);
-      var start = currentAngle;
-      // color priority - if there's a color on the individual point use that, otherwise use parent color or default
-      var fillColor = (_ref3 = (_d$fill = d === null || d === void 0 ? void 0 : d.fill) !== null && _d$fill !== void 0 ? _d$fill : childColor) !== null && _ref3 !== void 0 ? _ref3 : fill;
-      var {
-        x: textX,
-        y: textY
-      } = polarToCartesian(0, 0, innerR + radius / 2, -(start + arcLength - arcLength / 2));
-      currentAngle += arcLength;
-      sectors.push(/*#__PURE__*/React.createElement("g", {
-        key: "sunburst-sector-".concat(d.name, "-").concat(i)
-      }, /*#__PURE__*/React.createElement(Sector, {
-        onClick: () => handleClick(nodeWithIndex),
-        onMouseEnter: e => handleMouseEnter(nodeWithIndex, e),
-        onMouseLeave: e => handleMouseLeave(nodeWithIndex, e),
-        fill: fillColor,
-        stroke: stroke,
-        strokeWidth: padding,
-        startAngle: start,
-        endAngle: start + arcLength,
-        innerRadius: innerR,
-        outerRadius: innerR + radius,
-        cx: cx,
-        cy: cy
-      }), /*#__PURE__*/React.createElement(Text, _extends({}, textOptions, {
-        alignmentBaseline: "middle",
-        textAnchor: "middle",
-        x: textX + cx,
-        y: cy - textY
-      }), d[dataKey])));
-      var {
-        x: tooltipX,
-        y: tooltipY
-      } = polarToCartesian(cx, cy, innerR + radius / 2, start);
-      positions.set(d.name, {
-        x: tooltipX,
-        y: tooltipY
-      });
-      return drawArcs(d.children, {
-        radius,
-        innerR: innerR + radius + ringPadding,
-        initialAngle: start,
-        childColor: fillColor,
-        nestedActiveTooltipIndex: currentTooltipIndex
-      }, depth + 1);
-    });
-  }
-  drawArcs(data.children, {
-    radius: thickness,
-    innerR: innerRadius,
-    initialAngle: startAngle
-  });
-  var layerClass = clsx('recharts-sunburst', className);
-  return /*#__PURE__*/React.createElement(Surface, {
-    width: width,
-    height: height
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: layerClass
-  }, sectors), /*#__PURE__*/React.createElement(SetSunburstTooltipEntrySettings, {
-    dataKey: dataKey,
-    nameKey: nameKey,
-    data: data,
-    stroke: stroke,
-    fill: fill,
-    positions: positions,
-    id: id
-  }), children);
-};
-
-/**
- * The sunburst is a hierarchical chart, similar to a {@link Treemap}, plotted in polar coordinates.
- * Sunburst charts effectively convey the hierarchical relationships and proportions within each level.
- * It is easy to see all the middle layers in the hierarchy, which might get lost in other visualizations.
- * For some datasets, the radial layout may be more visually appealing and intuitive than a traditional {@link Treemap}.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export var SunburstChart = outsideProps => {
-  var props = resolveDefaultProps(outsideProps, defaultSunburstChartProps);
-  var {
-    className,
-    width,
-    height,
-    responsive,
-    style,
-    id: externalId
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = useState(null);
-  return /*#__PURE__*/React.createElement(RechartsStoreProvider, {
-    preloadedState: preloadedState,
-    reduxStoreName: className !== null && className !== void 0 ? className : 'SunburstChart'
-  }, /*#__PURE__*/React.createElement(ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement(ReportChartMargin, {
-    margin: defaultSunburstMargin
-  }), /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(RechartsWrapper, {
-    className: className,
-    width: width,
-    height: height,
-    responsive: responsive,
-    style: style,
-    ref: node => {
-      if (tooltipPortal == null && node != null) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: externalId,
-    type: "sunburst"
-  }, id => /*#__PURE__*/React.createElement(SunburstChartImpl, _extends({}, props, {
-    id: id
-  }))))));
-};
Index: de_modules/recharts/es6/chart/Treemap.js
===================================================================
--- node_modules/recharts/es6/chart/Treemap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,830 +1,0 @@
-var _excluded = ["width", "height", "className", "style", "children", "type"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { PureComponent, useCallback, useState } from 'react';
-import omit from 'es-toolkit/compat/omit';
-import get from 'es-toolkit/compat/get';
-import { Layer } from '../container/Layer';
-import { Surface } from '../container/Surface';
-import { Polygon } from '../shape/Polygon';
-import { Rectangle } from '../shape/Rectangle';
-import { getValueByDataKey } from '../util/ChartUtils';
-import { COLOR_PANEL } from '../util/Constants';
-import { isNan, noop, uniqueId } from '../util/DataUtils';
-import { getStringSize } from '../util/DOMUtils';
-import { ReportChartMargin, useChartHeight, useChartWidth } from '../context/chartLayoutContext';
-import { TooltipPortalContext } from '../context/tooltipPortalContext';
-import { RechartsWrapper } from './RechartsWrapper';
-import { setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
-import { useAppDispatch } from '../state/hooks';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-var NODE_VALUE_KEY = 'value';
-
-/**
- * This is what end users defines as `data` on Treemap.
- */
-
-/**
- * This is what is returned from `squarify`, the final treemap data structure
- * that gets rendered and is stored in
- */
-
-function isTreemapNode(value) {
-  return value != null && typeof value === 'object' && 'x' in value && 'y' in value && 'width' in value && 'height' in value && typeof value.x === 'number' && typeof value.y === 'number' && typeof value.width === 'number' && typeof value.height === 'number';
-}
-export var treemapPayloadSearcher = (data, activeIndex) => {
-  if (!data || !activeIndex) {
-    return undefined;
-  }
-  return get(data, activeIndex);
-};
-export var addToTreemapNodeIndex = function addToTreemapNodeIndex(indexInChildrenArr) {
-  var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return "".concat(activeTooltipIndexSoFar, "children[").concat(indexInChildrenArr, "]");
-};
-var options = {
-  chartName: 'Treemap',
-  defaultTooltipEventType: 'item',
-  validateTooltipEventTypes: ['item'],
-  tooltipPayloadSearcher: treemapPayloadSearcher,
-  eventEmitter: undefined
-};
-export var computeNode = _ref => {
-  var {
-    depth,
-    node,
-    index,
-    dataKey,
-    nameKey,
-    nestedActiveTooltipIndex
-  } = _ref;
-  var currentTooltipIndex = depth === 0 ? '' : addToTreemapNodeIndex(index, nestedActiveTooltipIndex);
-  var {
-    children
-  } = node;
-  var childDepth = depth + 1;
-  var computedChildren = children && children.length ? children.map((child, i) => computeNode({
-    depth: childDepth,
-    node: child,
-    index: i,
-    dataKey,
-    nameKey,
-    nestedActiveTooltipIndex: currentTooltipIndex
-  })) : null;
-  var nodeValue;
-  if (computedChildren && computedChildren.length) {
-    nodeValue = computedChildren.reduce((result, child) => result + child.value, 0);
-  } else {
-    // TODO need to verify dataKey
-    var rawNodeValue = node[dataKey];
-    var numericValue = typeof rawNodeValue === 'number' ? rawNodeValue : 0;
-    nodeValue = isNan(numericValue) || numericValue <= 0 ? 0 : numericValue;
-  }
-  return _objectSpread(_objectSpread({}, node), {}, {
-    children: computedChildren,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    name: getValueByDataKey(node, nameKey, ''),
-    [NODE_VALUE_KEY]: nodeValue,
-    depth,
-    index,
-    tooltipIndex: currentTooltipIndex
-  });
-};
-var filterRect = node => ({
-  x: node.x,
-  y: node.y,
-  width: node.width,
-  height: node.height
-});
-// Compute the area for each child based on value & scale.
-var getAreaOfChildren = (children, areaValueRatio) => {
-  var ratio = areaValueRatio < 0 ? 0 : areaValueRatio;
-  return children.map(child => {
-    var area = child[NODE_VALUE_KEY] * ratio;
-    return _objectSpread(_objectSpread({}, child), {}, {
-      area: isNan(area) || area <= 0 ? 0 : area
-    });
-  });
-};
-
-// Computes the score for the specified row, as the worst aspect ratio.
-var getWorstScore = (row, parentSize, aspectRatio) => {
-  var parentArea = parentSize * parentSize;
-  var rowArea = row.area * row.area;
-  var {
-    min,
-    max
-  } = row.reduce((result, child) => ({
-    min: Math.min(result.min, child.area),
-    max: Math.max(result.max, child.area)
-  }), {
-    min: Infinity,
-    max: 0
-  });
-  return rowArea ? Math.max(parentArea * max * aspectRatio / rowArea, rowArea / (parentArea * min * aspectRatio)) : Infinity;
-};
-var horizontalPosition = (row, parentSize, parentRect, isFlush) => {
-  var rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;
-  if (isFlush || rowHeight > parentRect.height) {
-    rowHeight = parentRect.height;
-  }
-  var curX = parentRect.x;
-  var child;
-  for (var i = 0, len = row.length; i < len; i++) {
-    child = row[i];
-    if (child == null) {
-      continue;
-    }
-    child.x = curX;
-    child.y = parentRect.y;
-    child.height = rowHeight;
-    child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);
-    curX += child.width;
-  }
-  // add the remain x to the last one of row
-  if (child != null) {
-    child.width += parentRect.x + parentRect.width - curX;
-  }
-  return _objectSpread(_objectSpread({}, parentRect), {}, {
-    y: parentRect.y + rowHeight,
-    height: parentRect.height - rowHeight
-  });
-};
-var verticalPosition = (row, parentSize, parentRect, isFlush) => {
-  var rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;
-  if (isFlush || rowWidth > parentRect.width) {
-    rowWidth = parentRect.width;
-  }
-  var curY = parentRect.y;
-  var child;
-  for (var i = 0, len = row.length; i < len; i++) {
-    child = row[i];
-    if (child == null) {
-      continue;
-    }
-    child.x = parentRect.x;
-    child.y = curY;
-    child.width = rowWidth;
-    child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);
-    curY += child.height;
-  }
-  if (child) {
-    child.height += parentRect.y + parentRect.height - curY;
-  }
-  return _objectSpread(_objectSpread({}, parentRect), {}, {
-    x: parentRect.x + rowWidth,
-    width: parentRect.width - rowWidth
-  });
-};
-var position = (row, parentSize, parentRect, isFlush) => {
-  if (parentSize === parentRect.width) {
-    return horizontalPosition(row, parentSize, parentRect, isFlush);
-  }
-  return verticalPosition(row, parentSize, parentRect, isFlush);
-};
-// Recursively arranges the specified node's children into squarified rows.
-var squarify = (node, aspectRatio) => {
-  var {
-    children
-  } = node;
-  if (children && children.length) {
-    var rect = filterRect(node);
-    // @ts-expect-error we can't create an array with static property on a single line so typescript will complain.
-    var row = [];
-    var best = Infinity; // the best row score so far
-    var child, score; // the current row score
-    var size = Math.min(rect.width, rect.height); // initial orientation
-    var scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node[NODE_VALUE_KEY]);
-    var tempChildren = scaleChildren.slice();
-
-    // why are we setting static properties on an array?
-    row.area = 0;
-    while (tempChildren.length > 0) {
-      [child] = tempChildren;
-      if (child == null) {
-        continue;
-      }
-      // row first
-      row.push(child);
-      row.area += child.area;
-      score = getWorstScore(row, size, aspectRatio);
-      if (score <= best) {
-        // continue with this orientation
-        tempChildren.shift();
-        best = score;
-      } else {
-        var _row$pop$area, _row$pop;
-        // abort, and try a different orientation
-        row.area -= (_row$pop$area = (_row$pop = row.pop()) === null || _row$pop === void 0 ? void 0 : _row$pop.area) !== null && _row$pop$area !== void 0 ? _row$pop$area : 0;
-        rect = position(row, size, rect, false);
-        size = Math.min(rect.width, rect.height);
-        row.length = row.area = 0;
-        best = Infinity;
-      }
-    }
-    if (row.length) {
-      rect = position(row, size, rect, true);
-      row.length = row.area = 0;
-    }
-    return _objectSpread(_objectSpread({}, node), {}, {
-      children: scaleChildren.map(c => squarify(c, aspectRatio))
-    });
-  }
-  return node;
-};
-export var defaultTreeMapProps = {
-  aspectRatio: 0.5 * (1 + Math.sqrt(5)),
-  dataKey: 'value',
-  nameKey: 'name',
-  type: 'flat',
-  isAnimationActive: 'auto',
-  isUpdateAnimationActive: 'auto',
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'linear'
-};
-var defaultState = {
-  isAnimationFinished: false,
-  formatRoot: null,
-  currentRoot: undefined,
-  nestIndex: [],
-  prevAspectRatio: defaultTreeMapProps.aspectRatio,
-  prevDataKey: defaultTreeMapProps.dataKey
-};
-function ContentItem(_ref2) {
-  var {
-    content,
-    nodeProps,
-    type,
-    colorPanel,
-    onMouseEnter,
-    onMouseLeave,
-    onClick
-  } = _ref2;
-  if (/*#__PURE__*/React.isValidElement(content)) {
-    return /*#__PURE__*/React.createElement(Layer, {
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick
-    }, /*#__PURE__*/React.cloneElement(content, nodeProps));
-  }
-  if (typeof content === 'function') {
-    return /*#__PURE__*/React.createElement(Layer, {
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick
-    }, content(nodeProps));
-  }
-  // optimize default shape
-  var {
-    x,
-    y,
-    width,
-    height,
-    index
-  } = nodeProps;
-  var arrow = null;
-  if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {
-    arrow = /*#__PURE__*/React.createElement(Polygon, {
-      points: [{
-        x: x + 2,
-        y: y + height / 2
-      }, {
-        x: x + 6,
-        y: y + height / 2 + 3
-      }, {
-        x: x + 2,
-        y: y + height / 2 + 6
-      }]
-    });
-  }
-  var text = null;
-  var nameSize = getStringSize(nodeProps.name);
-  if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {
-    text = /*#__PURE__*/React.createElement("text", {
-      x: x + 8,
-      y: y + height / 2 + 7,
-      fontSize: 14
-    }, nodeProps.name);
-  }
-  var colors = colorPanel || COLOR_PANEL;
-  return /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement(Rectangle, _extends({
-    fill: nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)',
-    stroke: "#fff"
-  }, omit(nodeProps, ['children']), {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick,
-    "data-recharts-item-index": nodeProps.tooltipIndex
-  })), arrow, text);
-}
-function ContentItemWithEvents(props) {
-  var dispatch = useAppDispatch();
-  var activeCoordinate = {
-    x: props.nodeProps.x + props.nodeProps.width / 2,
-    y: props.nodeProps.y + props.nodeProps.height / 2
-  };
-  var onMouseEnter = () => {
-    dispatch(setActiveMouseOverItemIndex({
-      activeIndex: props.nodeProps.tooltipIndex,
-      activeDataKey: props.dataKey,
-      activeCoordinate,
-      activeGraphicalItemId: props.id
-    }));
-  };
-  var onMouseLeave = () => {
-    // clearing state on mouseLeaveItem causes re-rendering issues
-    // we don't actually want to do this for TreeMap - we clear state when we leave the entire chart instead
-  };
-  var onClick = () => {
-    dispatch(setActiveClickItemIndex({
-      activeIndex: props.nodeProps.tooltipIndex,
-      activeDataKey: props.dataKey,
-      activeCoordinate,
-      activeGraphicalItemId: props.id
-    }));
-  };
-  return /*#__PURE__*/React.createElement(ContentItem, _extends({}, props, {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick
-  }));
-}
-var SetTreemapTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    fill,
-    currentRoot,
-    id
-  } = _ref3;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: currentRoot,
-    getPosition: noop,
-    // TODO I think Treemap has the capability of computing positions and supporting defaultIndex? Except it doesn't yet
-    settings: {
-      stroke,
-      strokeWidth: undefined,
-      fill,
-      dataKey,
-      nameKey,
-      name: undefined,
-      // Each TreemapNode has its own name
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// Why is margin not a treemap prop? No clue. Probably it should be
-var defaultTreemapMargin = {
-  top: 0,
-  right: 0,
-  bottom: 0,
-  left: 0
-};
-function TreemapItem(_ref4) {
-  var {
-    content,
-    nodeProps,
-    isLeaf,
-    treemapProps,
-    onNestClick
-  } = _ref4;
-  var {
-    id,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    isUpdateAnimationActive,
-    type,
-    colorPanel,
-    dataKey,
-    onAnimationStart,
-    onAnimationEnd,
-    onMouseEnter: onMouseEnterFromProps,
-    onClick: onItemClickFromProps,
-    onMouseLeave: onMouseLeaveFromProps
-  } = treemapProps;
-  var {
-    width,
-    height,
-    x,
-    y
-  } = nodeProps;
-  var translateX = -x - width;
-  var translateY = 0;
-  var onMouseEnter = e => {
-    if ((isLeaf || type === 'nest') && typeof onMouseEnterFromProps === 'function') {
-      onMouseEnterFromProps(nodeProps, e);
-    }
-  };
-  var onMouseLeave = e => {
-    if ((isLeaf || type === 'nest') && typeof onMouseLeaveFromProps === 'function') {
-      onMouseLeaveFromProps(nodeProps, e);
-    }
-  };
-  var onClick = () => {
-    if (type === 'nest') {
-      onNestClick(nodeProps);
-    }
-    if ((isLeaf || type === 'nest') && typeof onItemClickFromProps === 'function') {
-      onItemClickFromProps(nodeProps);
-    }
-  };
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(CSSTransitionAnimate, {
-    animationId: "treemap-".concat(nodeProps.tooltipIndex),
-    from: "translate(".concat(translateX, "px, ").concat(translateY, "px)"),
-    to: "translate(0, 0)",
-    attributeName: "transform",
-    begin: animationBegin,
-    easing: animationEasing,
-    isActive: isAnimationActive,
-    duration: animationDuration,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd
-  }, style => /*#__PURE__*/React.createElement(Layer, {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick,
-    style: _objectSpread(_objectSpread({}, style), {}, {
-      transformOrigin: "".concat(x, " ").concat(y)
-    })
-  }, /*#__PURE__*/React.createElement(ContentItemWithEvents, {
-    id: id,
-    content: content,
-    dataKey: dataKey,
-    nodeProps: _objectSpread(_objectSpread({}, nodeProps), {}, {
-      isAnimationActive,
-      isUpdateAnimationActive: !isUpdateAnimationActive,
-      width,
-      height,
-      x,
-      y
-    }),
-    type: type,
-    colorPanel: colorPanel
-  })));
-}
-class TreemapWithState extends PureComponent {
-  constructor() {
-    super(...arguments);
-    _defineProperty(this, "state", _objectSpread({}, defaultState));
-    _defineProperty(this, "handleClick", node => {
-      var {
-        onClick,
-        type
-      } = this.props;
-      if (type === 'nest' && node.children) {
-        var {
-          width,
-          height,
-          dataKey,
-          nameKey,
-          aspectRatio
-        } = this.props;
-        var root = computeNode({
-          depth: 0,
-          node: _objectSpread(_objectSpread({}, node), {}, {
-            x: 0,
-            y: 0,
-            width,
-            height
-          }),
-          index: 0,
-          dataKey,
-          nameKey,
-          // with Treemap nesting, should this continue nesting the index or start from empty string?
-          nestedActiveTooltipIndex: node.tooltipIndex
-        });
-        var formatRoot = squarify(root, aspectRatio);
-        var {
-          nestIndex
-        } = this.state;
-        nestIndex.push(node);
-        this.setState({
-          formatRoot,
-          currentRoot: root,
-          nestIndex
-        });
-      }
-      if (onClick) {
-        onClick(node);
-      }
-    });
-    _defineProperty(this, "handleTouchMove", e => {
-      var touchEvent = e.touches[0];
-      if (touchEvent == null) {
-        return;
-      }
-      var target = document.elementFromPoint(touchEvent.clientX, touchEvent.clientY);
-      if (!target || !target.getAttribute || this.state.formatRoot == null) {
-        return;
-      }
-      var itemIndex = target.getAttribute('data-recharts-item-index');
-      var activeNode = treemapPayloadSearcher(this.state.formatRoot, itemIndex);
-      if (!isTreemapNode(activeNode)) {
-        return;
-      }
-      var {
-        dataKey,
-        dispatch
-      } = this.props;
-      var activeCoordinate = {
-        x: activeNode.x + activeNode.width / 2,
-        y: activeNode.y + activeNode.height / 2
-      };
-
-      // Treemap does not support onTouchMove prop, but it could
-      // onTouchMove?.(activeNode, Number(itemIndex), e);
-      dispatch(setActiveMouseOverItemIndex({
-        activeIndex: itemIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: this.props.id
-      }));
-    });
-  }
-  static getDerivedStateFromProps(nextProps, prevState) {
-    if (nextProps.data !== prevState.prevData || nextProps.type !== prevState.prevType || nextProps.width !== prevState.prevWidth || nextProps.height !== prevState.prevHeight || nextProps.dataKey !== prevState.prevDataKey || nextProps.aspectRatio !== prevState.prevAspectRatio) {
-      var root = computeNode({
-        depth: 0,
-        // @ts-expect-error missing properties
-        node: {
-          children: nextProps.data,
-          x: 0,
-          y: 0,
-          width: nextProps.width,
-          height: nextProps.height
-        },
-        index: 0,
-        dataKey: nextProps.dataKey,
-        nameKey: nextProps.nameKey
-      });
-      var formatRoot = squarify(root, nextProps.aspectRatio);
-      return _objectSpread(_objectSpread({}, prevState), {}, {
-        formatRoot,
-        currentRoot: root,
-        nestIndex: [root],
-        prevAspectRatio: nextProps.aspectRatio,
-        prevData: nextProps.data,
-        prevWidth: nextProps.width,
-        prevHeight: nextProps.height,
-        prevDataKey: nextProps.dataKey,
-        prevType: nextProps.type
-      });
-    }
-    return null;
-  }
-  handleNestIndex(node, i) {
-    var {
-      nestIndex
-    } = this.state;
-    var {
-      width,
-      height,
-      dataKey,
-      nameKey,
-      aspectRatio
-    } = this.props;
-    var root = computeNode({
-      depth: 0,
-      node: _objectSpread(_objectSpread({}, node), {}, {
-        x: 0,
-        y: 0,
-        width,
-        height
-      }),
-      index: 0,
-      dataKey,
-      nameKey,
-      // with Treemap nesting, should this continue nesting the index or start from empty string?
-      nestedActiveTooltipIndex: node.tooltipIndex
-    });
-    var formatRoot = squarify(root, aspectRatio);
-    nestIndex = nestIndex.slice(0, i + 1);
-    this.setState({
-      formatRoot,
-      currentRoot: node,
-      nestIndex
-    });
-  }
-  renderNode(root, node) {
-    var {
-      content,
-      type
-    } = this.props;
-    var nodeProps = _objectSpread(_objectSpread(_objectSpread({}, svgPropertiesNoEvents(this.props)), node), {}, {
-      root
-    });
-    var isLeaf = !node.children || !node.children.length;
-    var {
-      currentRoot
-    } = this.state;
-    var isCurrentRootChild = ((currentRoot === null || currentRoot === void 0 ? void 0 : currentRoot.children) || []).filter(item => item.depth === node.depth && item.name === node.name);
-    if (!isCurrentRootChild.length && root.depth && type === 'nest') {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(Layer, {
-      key: "recharts-treemap-node-".concat(nodeProps.x, "-").concat(nodeProps.y, "-").concat(nodeProps.name),
-      className: "recharts-treemap-depth-".concat(node.depth)
-    }, /*#__PURE__*/React.createElement(TreemapItem, {
-      isLeaf: isLeaf,
-      content: content,
-      nodeProps: nodeProps,
-      treemapProps: this.props,
-      onNestClick: this.handleClick
-    }), node.children && node.children.length ? node.children.map(child => this.renderNode(node, child)) : null);
-  }
-  renderAllNodes() {
-    var {
-      formatRoot
-    } = this.state;
-    if (!formatRoot) {
-      return null;
-    }
-    return this.renderNode(formatRoot, formatRoot);
-  }
-
-  // render nest treemap
-  renderNestIndex() {
-    var {
-      nameKey,
-      nestIndexContent
-    } = this.props;
-    var {
-      nestIndex
-    } = this.state;
-    return /*#__PURE__*/React.createElement("div", {
-      className: "recharts-treemap-nest-index-wrapper",
-      style: {
-        marginTop: '8px',
-        textAlign: 'center'
-      }
-    }, nestIndex.map((item, i) => {
-      // TODO need to verify nameKey type
-      var rawName = get(item, nameKey, 'root');
-      var name = typeof rawName === 'string' ? rawName : 'root';
-      var content;
-      if (/*#__PURE__*/React.isValidElement(nestIndexContent)) {
-        // the cloned content is ignored at all times - let's remove it?
-        content = /*#__PURE__*/React.cloneElement(nestIndexContent, item, i);
-      }
-      if (typeof nestIndexContent === 'function') {
-        content = nestIndexContent(item, i);
-      } else {
-        content = name;
-      }
-      return (
-        /*#__PURE__*/
-        // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
-        React.createElement("div", {
-          onClick: this.handleNestIndex.bind(this, item, i),
-          key: "nest-index-".concat(uniqueId()),
-          className: "recharts-treemap-nest-index-box",
-          style: {
-            cursor: 'pointer',
-            display: 'inline-block',
-            padding: '0 7px',
-            background: '#000',
-            color: '#fff',
-            marginRight: '3px'
-          }
-        }, content)
-      );
-    }));
-  }
-  render() {
-    var _this$props = this.props,
-      {
-        width,
-        height,
-        className,
-        style,
-        children,
-        type
-      } = _this$props,
-      others = _objectWithoutProperties(_this$props, _excluded);
-    var attrs = svgPropertiesNoEvents(others);
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetTreemapTooltipEntrySettings, {
-      dataKey: this.props.dataKey,
-      nameKey: this.props.nameKey,
-      stroke: this.props.stroke,
-      fill: this.props.fill,
-      currentRoot: this.state.currentRoot,
-      id: this.props.id
-    }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {
-      width: width,
-      height: type === 'nest' ? height - 30 : height,
-      onTouchMove: this.handleTouchMove
-    }), this.renderAllNodes(), children), type === 'nest' && this.renderNestIndex());
-  }
-}
-_defineProperty(TreemapWithState, "displayName", 'Treemap');
-function TreemapDispatchInject(props) {
-  var dispatch = useAppDispatch();
-  var width = useChartWidth();
-  var height = useChartHeight();
-  if (!isPositiveNumber(width) || !isPositiveNumber(height)) {
-    return null;
-  }
-  var {
-    id: externalId
-  } = props;
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: externalId,
-    type: "treemap"
-  }, id => /*#__PURE__*/React.createElement(TreemapWithState, _extends({}, props, {
-    id: id,
-    width: width,
-    height: height,
-    dispatch: dispatch
-  })));
-}
-
-/**
- * The Treemap chart is used to visualize hierarchical data using nested rectangles.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export function Treemap(outsideProps) {
-  var _props$className;
-  var props = resolveDefaultProps(outsideProps, defaultTreeMapProps);
-  var {
-    className,
-    style,
-    width,
-    height
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = useState(null);
-  return /*#__PURE__*/React.createElement(RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_props$className = props.className) !== null && _props$className !== void 0 ? _props$className : 'Treemap'
-  }, /*#__PURE__*/React.createElement(ReportChartMargin, {
-    margin: defaultTreemapMargin
-  }), /*#__PURE__*/React.createElement(RechartsWrapper, {
-    dispatchTouchEvents: false,
-    className: className,
-    style: style,
-    width: width,
-    height: height
-    /*
-     * Treemap has a bug where it doesn't include strokeWidth in its dimension calculation
-     * which makes the actual chart exactly {strokeWidth} larger than asked for.
-     * It's not a huge deal usually, but it makes the responsive option cycle infinitely.
-     */,
-    responsive: false,
-    ref: node => {
-      if (tooltipPortal == null && node != null) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(TreemapDispatchInject, props))));
-}
Index: de_modules/recharts/es6/chart/types.js
===================================================================
--- node_modules/recharts/es6/chart/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/component/ActivePoints.js
===================================================================
--- node_modules/recharts/es6/component/ActivePoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { cloneElement, isValidElement } from 'react';
-import { adaptEventHandlers } from '../util/types';
-import { Dot } from '../shape/Dot';
-import { Layer } from '../container/Layer';
-import { useAppSelector } from '../state/hooks';
-import { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';
-import { useActiveTooltipDataPoints } from '../hooks';
-import { isNullish } from '../util/DataUtils';
-import { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-var ActivePoint = _ref => {
-  var {
-    point,
-    childIndex,
-    mainColor,
-    activeDot,
-    dataKey,
-    clipPath
-  } = _ref;
-  if (activeDot === false || point.x == null || point.y == null) {
-    return null;
-  }
-  var dotPropsTyped = {
-    index: childIndex,
-    dataKey,
-    cx: point.x,
-    cy: point.y,
-    r: 4,
-    fill: mainColor !== null && mainColor !== void 0 ? mainColor : 'none',
-    strokeWidth: 2,
-    stroke: '#fff',
-    payload: point.payload,
-    value: point.value
-  };
-
-  // @ts-expect-error svgPropertiesNoEventsFromUnknown(activeDot) is contributing unknown props
-  var dotProps = _objectSpread(_objectSpread(_objectSpread({}, dotPropsTyped), svgPropertiesNoEventsFromUnknown(activeDot)), adaptEventHandlers(activeDot));
-  var dot;
-  if (/*#__PURE__*/isValidElement(activeDot)) {
-    // @ts-expect-error we're improperly typing events
-    dot = /*#__PURE__*/cloneElement(activeDot, dotProps);
-  } else if (typeof activeDot === 'function') {
-    dot = activeDot(dotProps);
-  } else {
-    dot = /*#__PURE__*/React.createElement(Dot, dotProps);
-  }
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-active-dot",
-    clipPath: clipPath
-  }, dot);
-};
-export function ActivePoints(_ref2) {
-  var {
-    points,
-    mainColor,
-    activeDot,
-    itemDataKey,
-    clipPath,
-    zIndex = DefaultZIndexes.activeDot
-  } = _ref2;
-  var activeTooltipIndex = useAppSelector(selectActiveTooltipIndex);
-  var activeDataPoints = useActiveTooltipDataPoints();
-  if (points == null || activeDataPoints == null) {
-    return null;
-  }
-  var activePoint = points.find(p => activeDataPoints.includes(p.payload));
-  if (isNullish(activePoint)) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(ActivePoint, {
-    point: activePoint,
-    childIndex: Number(activeTooltipIndex),
-    mainColor: mainColor,
-    dataKey: itemDataKey,
-    activeDot: activeDot,
-    clipPath: clipPath
-  }));
-}
Index: de_modules/recharts/es6/component/Cell.js
===================================================================
--- node_modules/recharts/es6/component/Cell.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * Cell component used to define colors and styles of chart elements.
- *
- * This component is now deprecated and will be removed in Recharts 4.0.
- *
- * Please use the `shape` prop or `content` prop on the respective chart components
- * to customize the rendering of chart elements instead of using `Cell`.
- *
- * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}
- *
- * @deprecated
- * @consumes CellReader
- */
-export var Cell = _props => null;
-Cell.displayName = 'Cell';
Index: de_modules/recharts/es6/component/Cursor.js
===================================================================
--- node_modules/recharts/es6/component/Cursor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,137 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { cloneElement, createElement, isValidElement } from 'react';
-import { clsx } from 'clsx';
-import { isPolarCoordinate } from '../util/types';
-import { Curve } from '../shape/Curve';
-import { Cross } from '../shape/Cross';
-import { getCursorRectangle } from '../util/cursor/getCursorRectangle';
-import { Rectangle } from '../shape/Rectangle';
-import { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';
-import { Sector } from '../shape/Sector';
-import { getCursorPoints } from '../util/cursor/getCursorPoints';
-import { useChartLayout, useOffsetInternal } from '../context/chartLayoutContext';
-import { useTooltipAxisBandSize } from '../context/useTooltipAxis';
-import { useChartName } from '../state/selectors/selectors';
-import { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-
-/**
- * If set false, no cursor will be drawn when tooltip is active.
- * If set an object, the option is the configuration of cursor.
- * If set a React element, the option is the custom react element of drawing cursor
- */
-
-function RenderCursor(_ref) {
-  var {
-    cursor,
-    cursorComp,
-    cursorProps
-  } = _ref;
-  if (/*#__PURE__*/isValidElement(cursor)) {
-    return /*#__PURE__*/cloneElement(cursor, cursorProps);
-  }
-  return /*#__PURE__*/createElement(cursorComp, cursorProps);
-}
-export function CursorInternal(props) {
-  var _props$zIndex;
-  var {
-    coordinate,
-    payload,
-    index,
-    offset,
-    tooltipAxisBandSize,
-    layout,
-    cursor,
-    tooltipEventType,
-    chartName
-  } = props;
-
-  // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.
-  var activeCoordinate = coordinate;
-  var activePayload = payload;
-  var activeTooltipIndex = index;
-  if (!cursor || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {
-    return null;
-  }
-  var restProps, cursorComp, preferredZIndex;
-  if (chartName === 'ScatterChart') {
-    restProps = activeCoordinate;
-    cursorComp = Cross;
-    preferredZIndex = DefaultZIndexes.cursorLine;
-  } else if (chartName === 'BarChart') {
-    restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);
-    cursorComp = Rectangle;
-    preferredZIndex = DefaultZIndexes.cursorRectangle;
-  } else if (layout === 'radial' && isPolarCoordinate(activeCoordinate)) {
-    var {
-      cx,
-      cy,
-      radius,
-      startAngle,
-      endAngle
-    } = getRadialCursorPoints(activeCoordinate);
-    restProps = {
-      cx,
-      cy,
-      startAngle,
-      endAngle,
-      innerRadius: radius,
-      outerRadius: radius
-    };
-    cursorComp = Sector;
-    preferredZIndex = DefaultZIndexes.cursorLine;
-  } else {
-    restProps = {
-      points: getCursorPoints(layout, activeCoordinate, offset)
-    };
-    cursorComp = Curve;
-    preferredZIndex = DefaultZIndexes.cursorLine;
-  }
-  var extraClassName = typeof cursor === 'object' && 'className' in cursor ? cursor.className : undefined;
-  var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-    stroke: '#ccc',
-    pointerEvents: 'none'
-  }, offset), restProps), svgPropertiesNoEventsFromUnknown(cursor)), {}, {
-    payload: activePayload,
-    payloadIndex: activeTooltipIndex,
-    className: clsx('recharts-tooltip-cursor', extraClassName)
-  });
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: (_props$zIndex = props.zIndex) !== null && _props$zIndex !== void 0 ? _props$zIndex : preferredZIndex
-  }, /*#__PURE__*/React.createElement(RenderCursor, {
-    cursor: cursor,
-    cursorComp: cursorComp,
-    cursorProps: cursorProps
-  }));
-}
-
-/*
- * Cursor is the background, or a highlight,
- * that shows when user mouses over or activates
- * an area.
- *
- * It usually shows together with a tooltip
- * to emphasise which part of the chart does the tooltip refer to.
- */
-export function Cursor(props) {
-  var tooltipAxisBandSize = useTooltipAxisBandSize();
-  var offset = useOffsetInternal();
-  var layout = useChartLayout();
-  var chartName = useChartName();
-  if (tooltipAxisBandSize == null || offset == null || layout == null || chartName == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(CursorInternal, _extends({}, props, {
-    offset: offset,
-    layout: layout,
-    tooltipAxisBandSize: tooltipAxisBandSize,
-    chartName: chartName
-  }));
-}
Index: de_modules/recharts/es6/component/Customized.js
===================================================================
--- node_modules/recharts/es6/component/Customized.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-var _excluded = ["component"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * @fileOverview Customized
- */
-import * as React from 'react';
-import { isValidElement, cloneElement, createElement } from 'react';
-import { Layer } from '../container/Layer';
-import { warn } from '../util/LogUtils';
-/**
- * Customized component used to be necessary to render custom elements in Recharts 2.x.
- * Starting from Recharts 3.x, all charts are able to render arbitrary elements anywhere,
- * and Customized is no longer needed.
- *
- * @example Before: `<Customized component={<MyCustomComponent />} />`
- * @example After: `<MyCustomComponent />`
- *
- * @deprecated Just render your components directly. Will be removed in 4.0
- */
-export function Customized(_ref) {
-  var {
-      component
-    } = _ref,
-    props = _objectWithoutProperties(_ref, _excluded);
-  var child;
-  if (/*#__PURE__*/isValidElement(component)) {
-    child = /*#__PURE__*/cloneElement(component, props);
-  } else if (typeof component === 'function') {
-    // @ts-expect-error TS cannot verify that C is FunctionComponent<P> here
-    child = /*#__PURE__*/createElement(component, props);
-  } else {
-    warn(false, "Customized's props `component` must be React.element or Function, but got %s.", typeof component);
-  }
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-customized-wrapper"
-  }, child);
-}
-Customized.displayName = 'Customized';
Index: de_modules/recharts/es6/component/DefaultLegendContent.js
===================================================================
--- node_modules/recharts/es6/component/DefaultLegendContent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,166 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { Surface } from '../container/Surface';
-import { Symbols } from '../shape/Symbols';
-import { adaptEventsOfChild } from '../util/types';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-var SIZE = 32;
-var defaultLegendContentDefaultProps = {
-  align: 'center',
-  iconSize: 14,
-  inactiveColor: '#ccc',
-  layout: 'horizontal',
-  verticalAlign: 'middle'
-};
-function Icon(_ref) {
-  var {
-    data,
-    iconType,
-    inactiveColor
-  } = _ref;
-  var halfSize = SIZE / 2;
-  var sixthSize = SIZE / 6;
-  var thirdSize = SIZE / 3;
-  var color = data.inactive ? inactiveColor : data.color;
-  var preferredIcon = iconType !== null && iconType !== void 0 ? iconType : data.type;
-  if (preferredIcon === 'none') {
-    return null;
-  }
-  if (preferredIcon === 'plainline') {
-    var _data$payload;
-    return /*#__PURE__*/React.createElement("line", {
-      strokeWidth: 4,
-      fill: "none",
-      stroke: color,
-      strokeDasharray: (_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.strokeDasharray,
-      x1: 0,
-      y1: halfSize,
-      x2: SIZE,
-      y2: halfSize,
-      className: "recharts-legend-icon"
-    });
-  }
-  if (preferredIcon === 'line') {
-    return /*#__PURE__*/React.createElement("path", {
-      strokeWidth: 4,
-      fill: "none",
-      stroke: color,
-      d: "M0,".concat(halfSize, "h").concat(thirdSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(2 * thirdSize, ",").concat(halfSize, "\n            H").concat(SIZE, "M").concat(2 * thirdSize, ",").concat(halfSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(thirdSize, ",").concat(halfSize),
-      className: "recharts-legend-icon"
-    });
-  }
-  if (preferredIcon === 'rect') {
-    return /*#__PURE__*/React.createElement("path", {
-      stroke: "none",
-      fill: color,
-      d: "M0,".concat(SIZE / 8, "h").concat(SIZE, "v").concat(SIZE * 3 / 4, "h").concat(-SIZE, "z"),
-      className: "recharts-legend-icon"
-    });
-  }
-  if (/*#__PURE__*/React.isValidElement(data.legendIcon)) {
-    var iconProps = _objectSpread({}, data);
-    delete iconProps.legendIcon;
-    return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);
-  }
-  return /*#__PURE__*/React.createElement(Symbols, {
-    fill: color,
-    cx: halfSize,
-    cy: halfSize,
-    size: SIZE,
-    sizeType: "diameter",
-    type: preferredIcon
-  });
-}
-function Items(props) {
-  var {
-    payload,
-    iconSize,
-    layout,
-    formatter,
-    inactiveColor,
-    iconType
-  } = props;
-  var viewBox = {
-    x: 0,
-    y: 0,
-    width: SIZE,
-    height: SIZE
-  };
-  var itemStyle = {
-    display: layout === 'horizontal' ? 'inline-block' : 'block',
-    marginRight: 10
-  };
-  var svgStyle = {
-    display: 'inline-block',
-    verticalAlign: 'middle',
-    marginRight: 4
-  };
-  return payload.map((entry, i) => {
-    var finalFormatter = entry.formatter || formatter;
-    var className = clsx({
-      'recharts-legend-item': true,
-      ["legend-item-".concat(i)]: true,
-      inactive: entry.inactive
-    });
-    if (entry.type === 'none') {
-      return null;
-    }
-    var color = entry.inactive ? inactiveColor : entry.color;
-    var finalValue = finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value;
-    return /*#__PURE__*/React.createElement("li", _extends({
-      className: className,
-      style: itemStyle,
-      key: "legend-item-".concat(i)
-    }, adaptEventsOfChild(props, entry, i)), /*#__PURE__*/React.createElement(Surface, {
-      width: iconSize,
-      height: iconSize,
-      viewBox: viewBox,
-      style: svgStyle,
-      "aria-label": "".concat(finalValue, " legend icon")
-    }, /*#__PURE__*/React.createElement(Icon, {
-      data: entry,
-      iconType: iconType,
-      inactiveColor: inactiveColor
-    })), /*#__PURE__*/React.createElement("span", {
-      className: "recharts-legend-item-text",
-      style: {
-        color
-      }
-    }, finalValue));
-  });
-}
-
-/**
- * This component is by default rendered inside the {@link Legend} component. You would not use it directly.
- *
- * You can use this component to customize the content of the legend,
- * or you can provide your own completely independent content.
- */
-export var DefaultLegendContent = outsideProps => {
-  var props = resolveDefaultProps(outsideProps, defaultLegendContentDefaultProps);
-  var {
-    payload,
-    layout,
-    align
-  } = props;
-  if (!payload || !payload.length) {
-    return null;
-  }
-  var finalStyle = {
-    padding: 0,
-    margin: 0,
-    textAlign: layout === 'horizontal' ? align : 'left'
-  };
-  return /*#__PURE__*/React.createElement("ul", {
-    className: "recharts-default-legend",
-    style: finalStyle
-  }, /*#__PURE__*/React.createElement(Items, _extends({}, props, {
-    payload: payload
-  })));
-};
Index: de_modules/recharts/es6/component/DefaultTooltipContent.js
===================================================================
--- node_modules/recharts/es6/component/DefaultTooltipContent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,131 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * @fileOverview Default Tooltip Content
- */
-
-import * as React from 'react';
-import sortBy from 'es-toolkit/compat/sortBy';
-import { clsx } from 'clsx';
-import { isNullish, isNumOrStr } from '../util/DataUtils';
-function defaultFormatter(value) {
-  return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;
-}
-export var defaultDefaultTooltipContentProps = {
-  separator: ' : ',
-  contentStyle: {
-    margin: 0,
-    padding: 10,
-    backgroundColor: '#fff',
-    border: '1px solid #ccc',
-    whiteSpace: 'nowrap'
-  },
-  itemStyle: {
-    display: 'block',
-    paddingTop: 4,
-    paddingBottom: 4,
-    color: '#000'
-  },
-  labelStyle: {},
-  accessibilityLayer: false
-};
-
-/**
- * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.
- *
- * You can use this component to customize the content of the tooltip,
- * or you can provide your own completely independent content.
- */
-export var DefaultTooltipContent = props => {
-  var {
-    separator = defaultDefaultTooltipContentProps.separator,
-    contentStyle,
-    itemStyle,
-    labelStyle = defaultDefaultTooltipContentProps.labelStyle,
-    payload,
-    formatter,
-    itemSorter,
-    wrapperClassName,
-    labelClassName,
-    label,
-    labelFormatter,
-    accessibilityLayer = defaultDefaultTooltipContentProps.accessibilityLayer
-  } = props;
-  var renderContent = () => {
-    if (payload && payload.length) {
-      var listStyle = {
-        padding: 0,
-        margin: 0
-      };
-      var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map((entry, i) => {
-        if (entry.type === 'none') {
-          return null;
-        }
-        var finalFormatter = entry.formatter || formatter || defaultFormatter;
-        var {
-          value,
-          name
-        } = entry;
-        var finalValue = value;
-        var finalName = name;
-        if (finalFormatter) {
-          var formatted = finalFormatter(value, name, entry, i, payload);
-          if (Array.isArray(formatted)) {
-            [finalValue, finalName] = formatted;
-          } else if (formatted != null) {
-            finalValue = formatted;
-          } else {
-            return null;
-          }
-        }
-        var finalItemStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.itemStyle), {}, {
-          color: entry.color || defaultDefaultTooltipContentProps.itemStyle.color
-        }, itemStyle);
-        return /*#__PURE__*/React.createElement("li", {
-          className: "recharts-tooltip-item",
-          key: "tooltip-item-".concat(i),
-          style: finalItemStyle
-        }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-name"
-        }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-separator"
-        }, separator) : null, /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-value"
-        }, finalValue), /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-unit"
-        }, entry.unit || ''));
-      });
-      return /*#__PURE__*/React.createElement("ul", {
-        className: "recharts-tooltip-item-list",
-        style: listStyle
-      }, items);
-    }
-    return null;
-  };
-  var finalStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.contentStyle), contentStyle);
-  var finalLabelStyle = _objectSpread({
-    margin: 0
-  }, labelStyle);
-  var hasLabel = !isNullish(label);
-  var finalLabel = hasLabel ? label : '';
-  var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);
-  var labelCN = clsx('recharts-tooltip-label', labelClassName);
-  if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {
-    finalLabel = labelFormatter(label, payload);
-  }
-  var accessibilityAttributes = accessibilityLayer ? {
-    role: 'status',
-    'aria-live': 'assertive'
-  } : {};
-  return /*#__PURE__*/React.createElement("div", _extends({
-    className: wrapperCN,
-    style: finalStyle
-  }, accessibilityAttributes), /*#__PURE__*/React.createElement("p", {
-    className: labelCN,
-    style: finalLabelStyle
-  }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : "".concat(finalLabel)), renderContent());
-};
Index: de_modules/recharts/es6/component/Dots.js
===================================================================
--- node_modules/recharts/es6/component/Dots.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-var _excluded = ["points"];
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { cloneElement, isValidElement } from 'react';
-import { clsx } from 'clsx';
-import { Dot } from '../shape/Dot';
-import { Layer } from '../container/Layer';
-import { isClipDot } from '../util/ReactUtils';
-import { svgPropertiesAndEventsFromUnknown } from '../util/svgPropertiesAndEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-function DotItem(_ref) {
-  var {
-    option,
-    dotProps,
-    className
-  } = _ref;
-  if (/*#__PURE__*/isValidElement(option)) {
-    // @ts-expect-error we can't type check element cloning properly
-    return /*#__PURE__*/cloneElement(option, dotProps);
-  }
-  if (typeof option === 'function') {
-    return option(dotProps);
-  }
-  var finalClassName = clsx(className, typeof option !== 'boolean' ? option.className : '');
-  var _ref2 = dotProps !== null && dotProps !== void 0 ? dotProps : {},
-    {
-      points
-    } = _ref2,
-    props = _objectWithoutProperties(_ref2, _excluded);
-  return /*#__PURE__*/React.createElement(Dot, _extends({}, props, {
-    className: finalClassName
-  }));
-}
-function shouldRenderDots(points, dot) {
-  if (points == null) {
-    return false;
-  }
-  if (dot) {
-    return true;
-  }
-  return points.length === 1;
-}
-export function Dots(_ref3) {
-  var {
-    points,
-    dot,
-    className,
-    dotClassName,
-    dataKey,
-    baseProps,
-    needClip,
-    clipPathId,
-    zIndex = DefaultZIndexes.scatter
-  } = _ref3;
-  if (!shouldRenderDots(points, dot)) {
-    return null;
-  }
-  var clipDot = isClipDot(dot);
-  var customDotProps = svgPropertiesAndEventsFromUnknown(dot);
-  var dots = points.map((entry, i) => {
-    var _entry$x, _entry$y;
-    var dotProps = _objectSpread(_objectSpread(_objectSpread({
-      r: 3
-    }, baseProps), customDotProps), {}, {
-      index: i,
-      cx: (_entry$x = entry.x) !== null && _entry$x !== void 0 ? _entry$x : undefined,
-      cy: (_entry$y = entry.y) !== null && _entry$y !== void 0 ? _entry$y : undefined,
-      dataKey,
-      value: entry.value,
-      payload: entry.payload,
-      points
-    });
-    return /*#__PURE__*/React.createElement(DotItem, {
-      key: "dot-".concat(i),
-      option: dot,
-      dotProps: dotProps,
-      className: dotClassName
-    });
-  });
-  var layerProps = {};
-  if (needClip && clipPathId != null) {
-    layerProps.clipPath = "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")");
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(Layer, _extends({
-    className: className
-  }, layerProps), dots));
-}
Index: de_modules/recharts/es6/component/Label.js
===================================================================
--- node_modules/recharts/es6/component/Label.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,414 +1,0 @@
-var _excluded = ["labelRef"],
-  _excluded2 = ["content"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { cloneElement, createContext, createElement, isValidElement, useContext, useMemo } from 'react';
-import { clsx } from 'clsx';
-import { isValidTextAnchor, Text } from './Text';
-import { isNullish, isNumber, isNumOrStr, mathSign, uniqueId } from '../util/DataUtils';
-import { polarToCartesian } from '../util/PolarUtils';
-import { cartesianViewBoxToTrapezoid, useViewBox } from '../context/chartLayoutContext';
-import { useAppSelector } from '../state/hooks';
-import { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { getCartesianPosition } from '../cartesian/getCartesianPosition';
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-var CartesianLabelContext = /*#__PURE__*/createContext(null);
-export var CartesianLabelContextProvider = _ref => {
-  var {
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    width,
-    height,
-    children
-  } = _ref;
-  var viewBox = useMemo(() => ({
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    width,
-    height
-  }), [x, y, upperWidth, lowerWidth, width, height]);
-  return /*#__PURE__*/React.createElement(CartesianLabelContext.Provider, {
-    value: viewBox
-  }, children);
-};
-var useCartesianLabelContext = () => {
-  var labelChildContext = useContext(CartesianLabelContext);
-  var chartContext = useViewBox();
-  return labelChildContext || (chartContext ? cartesianViewBoxToTrapezoid(chartContext) : undefined);
-};
-var PolarLabelContext = /*#__PURE__*/createContext(null);
-export var PolarLabelContextProvider = _ref2 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise,
-    children
-  } = _ref2;
-  var viewBox = useMemo(() => ({
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise
-  }), [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise]);
-  return /*#__PURE__*/React.createElement(PolarLabelContext.Provider, {
-    value: viewBox
-  }, children);
-};
-export var usePolarLabelContext = () => {
-  var labelChildContext = useContext(PolarLabelContext);
-  var chartContext = useAppSelector(selectPolarViewBox);
-  return labelChildContext || chartContext;
-};
-var getLabel = props => {
-  var {
-    value,
-    formatter
-  } = props;
-  var label = isNullish(props.children) ? value : props.children;
-  if (typeof formatter === 'function') {
-    return formatter(label);
-  }
-  return label;
-};
-export var isLabelContentAFunction = content => {
-  return content != null && typeof content === 'function';
-};
-var getDeltaAngle = (startAngle, endAngle) => {
-  var sign = mathSign(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
-  return sign * deltaAngle;
-};
-var renderRadialLabel = (labelProps, position, label, attrs, viewBox) => {
-  var {
-    offset,
-    className
-  } = labelProps;
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise
-  } = viewBox;
-  var radius = (innerRadius + outerRadius) / 2;
-  var deltaAngle = getDeltaAngle(startAngle, endAngle);
-  var sign = deltaAngle >= 0 ? 1 : -1;
-  var labelAngle, direction;
-  switch (position) {
-    case 'insideStart':
-      labelAngle = startAngle + sign * offset;
-      direction = clockWise;
-      break;
-    case 'insideEnd':
-      labelAngle = endAngle - sign * offset;
-      direction = !clockWise;
-      break;
-    case 'end':
-      labelAngle = endAngle + sign * offset;
-      direction = clockWise;
-      break;
-    default:
-      throw new Error("Unsupported position ".concat(position));
-  }
-  direction = deltaAngle <= 0 ? direction : !direction;
-  var startPoint = polarToCartesian(cx, cy, radius, labelAngle);
-  var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);
-  var path = "M".concat(startPoint.x, ",").concat(startPoint.y, "\n    A").concat(radius, ",").concat(radius, ",0,1,").concat(direction ? 0 : 1, ",\n    ").concat(endPoint.x, ",").concat(endPoint.y);
-  var id = isNullish(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;
-  return /*#__PURE__*/React.createElement("text", _extends({}, attrs, {
-    dominantBaseline: "central",
-    className: clsx('recharts-radial-bar-label', className)
-  }), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("path", {
-    id: id,
-    d: path
-  })), /*#__PURE__*/React.createElement("textPath", {
-    xlinkHref: "#".concat(id)
-  }, label));
-};
-var getAttrsOfPolarLabel = (viewBox, offset, position) => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle
-  } = viewBox;
-  var midAngle = (startAngle + endAngle) / 2;
-  if (position === 'outside') {
-    var {
-      x: _x,
-      y: _y
-    } = polarToCartesian(cx, cy, outerRadius + offset, midAngle);
-    return {
-      x: _x,
-      y: _y,
-      textAnchor: _x >= cx ? 'start' : 'end',
-      verticalAnchor: 'middle'
-    };
-  }
-  if (position === 'center') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'middle'
-    };
-  }
-  if (position === 'centerTop') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'start'
-    };
-  }
-  if (position === 'centerBottom') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'end'
-    };
-  }
-  var r = (innerRadius + outerRadius) / 2;
-  var {
-    x,
-    y
-  } = polarToCartesian(cx, cy, r, midAngle);
-  return {
-    x,
-    y,
-    textAnchor: 'middle',
-    verticalAnchor: 'middle'
-  };
-};
-var isPolar = viewBox => viewBox != null && 'cx' in viewBox && isNumber(viewBox.cx);
-export var defaultLabelProps = {
-  angle: 0,
-  offset: 5,
-  zIndex: DefaultZIndexes.label,
-  position: 'middle',
-  textBreakAll: false
-};
-function polarViewBoxToTrapezoid(viewBox) {
-  if (!isPolar(viewBox)) {
-    return viewBox;
-  }
-  var {
-    cx,
-    cy,
-    outerRadius
-  } = viewBox;
-  var diameter = outerRadius * 2;
-  return {
-    x: cx - outerRadius,
-    y: cy - outerRadius,
-    width: diameter,
-    upperWidth: diameter,
-    lowerWidth: diameter,
-    height: diameter
-  };
-}
-
-/**
- * @consumes CartesianViewBoxContext
- * @consumes PolarViewBoxContext
- * @consumes CartesianLabelContext
- * @consumes PolarLabelContext
- */
-export function Label(outerProps) {
-  var props = resolveDefaultProps(outerProps, defaultLabelProps);
-  var {
-    viewBox: viewBoxFromProps,
-    parentViewBox,
-    position,
-    value,
-    children,
-    content,
-    className = '',
-    textBreakAll,
-    labelRef
-  } = props;
-  var polarViewBox = usePolarLabelContext();
-  var cartesianViewBox = useCartesianLabelContext();
-
-  /*
-   * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.
-   * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.
-   * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156
-   */
-  var resolvedViewBox = position === 'center' ? cartesianViewBox : polarViewBox !== null && polarViewBox !== void 0 ? polarViewBox : cartesianViewBox;
-  var viewBox, label, positionAttrs;
-  if (viewBoxFromProps == null) {
-    viewBox = resolvedViewBox;
-  } else if (isPolar(viewBoxFromProps)) {
-    viewBox = viewBoxFromProps;
-  } else {
-    viewBox = cartesianViewBoxToTrapezoid(viewBoxFromProps);
-  }
-  var cartesianBox = polarViewBoxToTrapezoid(viewBox);
-  if (!viewBox || isNullish(value) && isNullish(children) && ! /*#__PURE__*/isValidElement(content) && typeof content !== 'function') {
-    return null;
-  }
-  var propsWithViewBox = _objectSpread(_objectSpread({}, props), {}, {
-    viewBox
-  });
-  if (/*#__PURE__*/isValidElement(content)) {
-    var {
-        labelRef: _
-      } = propsWithViewBox,
-      propsWithoutLabelRef = _objectWithoutProperties(propsWithViewBox, _excluded);
-    return /*#__PURE__*/cloneElement(content, propsWithoutLabelRef);
-  }
-  if (typeof content === 'function') {
-    var {
-        content: _2
-      } = propsWithViewBox,
-      propsForContent = _objectWithoutProperties(propsWithViewBox, _excluded2);
-    // @ts-expect-error we're not checking if the content component returns something that Text is able to render
-    label = /*#__PURE__*/createElement(content, propsForContent);
-    if (/*#__PURE__*/isValidElement(label)) {
-      return label;
-    }
-  } else {
-    label = getLabel(props);
-  }
-  var attrs = svgPropertiesAndEvents(props);
-  if (isPolar(viewBox)) {
-    // TODO: Generic Polar Hook
-    if (position === 'insideStart' || position === 'insideEnd' || position === 'end') {
-      return renderRadialLabel(props, position, label, attrs, viewBox);
-    }
-    positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);
-  } else {
-    if (!cartesianBox) {
-      return null;
-    }
-    var cartesianResult = getCartesianPosition({
-      viewBox: cartesianBox,
-      position,
-      offset: props.offset,
-      parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,
-      clamp: true
-    });
-    positionAttrs = _objectSpread(_objectSpread({
-      x: cartesianResult.x,
-      y: cartesianResult.y,
-      textAnchor: cartesianResult.horizontalAnchor,
-      verticalAnchor: cartesianResult.verticalAnchor
-    }, cartesianResult.width !== undefined ? {
-      width: cartesianResult.width
-    } : {}), cartesianResult.height !== undefined ? {
-      height: cartesianResult.height
-    } : {});
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Text, _extends({
-    ref: labelRef,
-    className: clsx('recharts-label', className)
-  }, attrs, positionAttrs, {
-    /*
-     * textAnchor is decided by default based on the `position`
-     * but we allow overriding via props for precise control.
-     */
-    textAnchor: isValidTextAnchor(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor,
-    breakAll: textBreakAll
-  }), label));
-}
-Label.displayName = 'Label';
-var parseLabel = (label, viewBox, labelRef) => {
-  if (!label) {
-    return null;
-  }
-  var commonProps = {
-    viewBox,
-    labelRef
-  };
-  if (label === true) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit"
-    }, commonProps));
-  }
-  if (isNumOrStr(label)) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      value: label
-    }, commonProps));
-  }
-  if (/*#__PURE__*/isValidElement(label)) {
-    if (label.type === Label) {
-      return /*#__PURE__*/cloneElement(label, _objectSpread({
-        key: 'label-implicit'
-      }, commonProps));
-    }
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      content: label
-    }, commonProps));
-  }
-  if (isLabelContentAFunction(label)) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      content: label
-    }, commonProps));
-  }
-  if (label && typeof label === 'object') {
-    return /*#__PURE__*/React.createElement(Label, _extends({}, label, {
-      key: "label-implicit"
-    }, commonProps));
-  }
-  return null;
-};
-export function CartesianLabelFromLabelProp(_ref3) {
-  var {
-    label,
-    labelRef
-  } = _ref3;
-  var viewBox = useCartesianLabelContext();
-  return parseLabel(label, viewBox, labelRef) || null;
-}
-export function PolarLabelFromLabelProp(_ref4) {
-  var {
-    label
-  } = _ref4;
-  var viewBox = usePolarLabelContext();
-  return parseLabel(label, viewBox) || null;
-}
Index: de_modules/recharts/es6/component/LabelList.js
===================================================================
--- node_modules/recharts/es6/component/LabelList.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,142 +1,0 @@
-var _excluded = ["valueAccessor"],
-  _excluded2 = ["dataKey", "clockWise", "id", "textBreakAll", "zIndex"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { createContext, useContext } from 'react';
-import last from 'es-toolkit/compat/last';
-import { isLabelContentAFunction, Label } from './Label';
-import { Layer } from '../container/Layer';
-import { getValueByDataKey } from '../util/ChartUtils';
-import { isNullish } from '../util/DataUtils';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-
-/**
- * This is public API because we expose it as the valueAccessor parameter.
- *
- * The properties of "viewBox" are repeated as the root props of the entry object.
- * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.
- *
- * It's not necessary to pass redundant data, but we keep it for backward compatibility.
- */
-
-/**
- * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.
- */
-
-/**
- * This is the type accepted for the `label` prop on various graphical items.
- * It accepts:
- *
- * boolean:
- *    true = labels show,
- *    false = labels don't show
- * React element:
- *    will be cloned with extra props
- * function:
- *    is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)
- * object:
- *    the props to be passed to a LabelList component
- *
- * @inline
- */
-
-var defaultAccessor = entry => Array.isArray(entry.value) ? last(entry.value) : entry.value;
-var CartesianLabelListContext = /*#__PURE__*/createContext(undefined);
-export var CartesianLabelListContextProvider = CartesianLabelListContext.Provider;
-var PolarLabelListContext = /*#__PURE__*/createContext(undefined);
-export var PolarLabelListContextProvider = PolarLabelListContext.Provider;
-function useCartesianLabelListContext() {
-  return useContext(CartesianLabelListContext);
-}
-function usePolarLabelListContext() {
-  return useContext(PolarLabelListContext);
-}
-
-/**
- * @consumes LabelListContext
- */
-export function LabelList(_ref) {
-  var {
-      valueAccessor = defaultAccessor
-    } = _ref,
-    restProps = _objectWithoutProperties(_ref, _excluded);
-  var {
-      dataKey,
-      clockWise,
-      id,
-      textBreakAll,
-      zIndex
-    } = restProps,
-    others = _objectWithoutProperties(restProps, _excluded2);
-  var cartesianData = useCartesianLabelListContext();
-  var polarData = usePolarLabelListContext();
-  var data = cartesianData || polarData;
-  if (!data || !data.length) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : DefaultZIndexes.label
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-label-list"
-  }, data.map((entry, index) => {
-    var _restProps$fill;
-    var value = isNullish(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry.payload, dataKey);
-    var idProps = isNullish(id) ? {} : {
-      id: "".concat(id, "-").concat(index)
-    };
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-".concat(index)
-    }, svgPropertiesAndEvents(entry), others, idProps, {
-      /*
-       * Prefer to use the explicit fill from LabelList props.
-       * Only in an absence of that, fall back to the fill of the entry.
-       * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.
-       * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.
-       */
-      fill: (_restProps$fill = restProps.fill) !== null && _restProps$fill !== void 0 ? _restProps$fill : entry.fill,
-      parentViewBox: entry.parentViewBox,
-      value: value,
-      textBreakAll: textBreakAll,
-      viewBox: entry.viewBox,
-      index: index
-      /*
-       * Here we don't want to use the default Label zIndex,
-       * we want it to inherit the zIndex of the LabelList itself
-       * which means just rendering as a regular child, without portaling anywhere.
-       */,
-      zIndex: 0
-    }));
-  })));
-}
-LabelList.displayName = 'LabelList';
-export function LabelListFromLabelProp(_ref2) {
-  var {
-    label
-  } = _ref2;
-  if (!label) {
-    return null;
-  }
-  if (label === true) {
-    return /*#__PURE__*/React.createElement(LabelList, {
-      key: "labelList-implicit"
-    });
-  }
-  if (/*#__PURE__*/React.isValidElement(label) || isLabelContentAFunction(label)) {
-    return /*#__PURE__*/React.createElement(LabelList, {
-      key: "labelList-implicit",
-      content: label
-    });
-  }
-  if (typeof label === 'object') {
-    return /*#__PURE__*/React.createElement(LabelList, _extends({
-      key: "labelList-implicit"
-    }, label, {
-      type: String(label.type)
-    }));
-  }
-  return null;
-}
Index: de_modules/recharts/es6/component/Legend.js
===================================================================
--- node_modules/recharts/es6/component/Legend.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,174 +1,0 @@
-var _excluded = ["contextPayload"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useEffect } from 'react';
-import { createPortal } from 'react-dom';
-import { useLegendPortal } from '../context/legendPortalContext';
-import { DefaultLegendContent } from './DefaultLegendContent';
-import { getUniqPayload } from '../util/payload/getUniqPayload';
-import { useLegendPayload } from '../context/legendPayloadContext';
-import { useElementOffset } from '../util/useElementOffset';
-import { useChartHeight, useChartWidth, useMargin } from '../context/chartLayoutContext';
-import { setLegendSettings, setLegendSize } from '../state/legendSlice';
-import { useAppDispatch } from '../state/hooks';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-function defaultUniqBy(entry) {
-  return entry.value;
-}
-function LegendContent(props) {
-  var {
-      contextPayload
-    } = props,
-    otherProps = _objectWithoutProperties(props, _excluded);
-  var finalPayload = getUniqPayload(contextPayload, props.payloadUniqBy, defaultUniqBy);
-  var contentProps = _objectSpread(_objectSpread({}, otherProps), {}, {
-    payload: finalPayload
-  });
-  if (/*#__PURE__*/React.isValidElement(props.content)) {
-    return /*#__PURE__*/React.cloneElement(props.content, contentProps);
-  }
-  if (typeof props.content === 'function') {
-    return /*#__PURE__*/React.createElement(props.content, contentProps);
-  }
-  return /*#__PURE__*/React.createElement(DefaultLegendContent, contentProps);
-}
-function getDefaultPosition(style, props, margin, chartWidth, chartHeight, box) {
-  var {
-    layout,
-    align,
-    verticalAlign
-  } = props;
-  var hPos, vPos;
-  if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {
-    if (align === 'center' && layout === 'vertical') {
-      hPos = {
-        left: ((chartWidth || 0) - box.width) / 2
-      };
-    } else {
-      hPos = align === 'right' ? {
-        right: margin && margin.right || 0
-      } : {
-        left: margin && margin.left || 0
-      };
-    }
-  }
-  if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {
-    if (verticalAlign === 'middle') {
-      vPos = {
-        top: ((chartHeight || 0) - box.height) / 2
-      };
-    } else {
-      vPos = verticalAlign === 'bottom' ? {
-        bottom: margin && margin.bottom || 0
-      } : {
-        top: margin && margin.top || 0
-      };
-    }
-  }
-  return _objectSpread(_objectSpread({}, hPos), vPos);
-}
-function LegendSettingsDispatcher(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(setLegendSettings(props));
-  }, [dispatch, props]);
-  return null;
-}
-function LegendSizeDispatcher(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(setLegendSize(props));
-    return () => {
-      dispatch(setLegendSize({
-        width: 0,
-        height: 0
-      }));
-    };
-  }, [dispatch, props]);
-  return null;
-}
-function getWidthOrHeight(layout, height, width, maxWidth) {
-  if (layout === 'vertical' && height != null) {
-    return {
-      height
-    };
-  }
-  if (layout === 'horizontal') {
-    return {
-      width: width || maxWidth
-    };
-  }
-  return null;
-}
-export var legendDefaultProps = {
-  align: 'center',
-  iconSize: 14,
-  inactiveColor: '#ccc',
-  itemSorter: 'value',
-  layout: 'horizontal',
-  verticalAlign: 'bottom'
-};
-
-/**
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- */
-export function Legend(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, legendDefaultProps);
-  var contextPayload = useLegendPayload();
-  var legendPortalFromContext = useLegendPortal();
-  var margin = useMargin();
-  var {
-    width: widthFromProps,
-    height: heightFromProps,
-    wrapperStyle,
-    portal: portalFromProps
-  } = props;
-  // The contextPayload is not used directly inside the hook, but we need the onBBoxUpdate call
-  // when the payload changes, therefore it's here as a dependency.
-  var [lastBoundingBox, updateBoundingBox] = useElementOffset([contextPayload]);
-  var chartWidth = useChartWidth();
-  var chartHeight = useChartHeight();
-  if (chartWidth == null || chartHeight == null) {
-    return null;
-  }
-  var maxWidth = chartWidth - ((margin === null || margin === void 0 ? void 0 : margin.left) || 0) - ((margin === null || margin === void 0 ? void 0 : margin.right) || 0);
-  var widthOrHeight = getWidthOrHeight(props.layout, heightFromProps, widthFromProps, maxWidth);
-  // if the user supplies their own portal, only use their defined wrapper styles
-  var outerStyle = portalFromProps ? wrapperStyle : _objectSpread(_objectSpread({
-    position: 'absolute',
-    width: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.width) || widthFromProps || 'auto',
-    height: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.height) || heightFromProps || 'auto'
-  }, getDefaultPosition(wrapperStyle, props, margin, chartWidth, chartHeight, lastBoundingBox)), wrapperStyle);
-  var legendPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : legendPortalFromContext;
-  if (legendPortal == null || contextPayload == null) {
-    return null;
-  }
-  var legendElement = /*#__PURE__*/React.createElement("div", {
-    className: "recharts-legend-wrapper",
-    style: outerStyle,
-    ref: updateBoundingBox
-  }, /*#__PURE__*/React.createElement(LegendSettingsDispatcher, {
-    layout: props.layout,
-    align: props.align,
-    verticalAlign: props.verticalAlign,
-    itemSorter: props.itemSorter
-  }), !portalFromProps && /*#__PURE__*/React.createElement(LegendSizeDispatcher, {
-    width: lastBoundingBox.width,
-    height: lastBoundingBox.height
-  }), /*#__PURE__*/React.createElement(LegendContent, _extends({}, props, widthOrHeight, {
-    margin: margin,
-    chartWidth: chartWidth,
-    chartHeight: chartHeight,
-    contextPayload: contextPayload
-  })));
-  return /*#__PURE__*/createPortal(legendElement, legendPortal);
-}
-Legend.displayName = 'Legend';
Index: de_modules/recharts/es6/component/ResponsiveContainer.js
===================================================================
--- node_modules/recharts/es6/component/ResponsiveContainer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,224 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { clsx } from 'clsx';
-import * as React from 'react';
-import { createContext, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
-import throttle from 'es-toolkit/compat/throttle';
-import { isNumber, noop } from '../util/DataUtils';
-import { warn } from '../util/LogUtils';
-import { calculateChartDimensions, defaultResponsiveContainerProps, getDefaultWidthAndHeight, getInnerDivStyle } from './responsiveContainerUtils';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-var ResponsiveContainerContext = /*#__PURE__*/createContext(defaultResponsiveContainerProps.initialDimension);
-function isAcceptableSize(size) {
-  return isPositiveNumber(size.width) && isPositiveNumber(size.height);
-}
-function ResponsiveContainerContextProvider(_ref) {
-  var {
-    children,
-    width,
-    height
-  } = _ref;
-  var size = useMemo(() => ({
-    width,
-    height
-  }), [width, height]);
-  if (!isAcceptableSize(size)) {
-    /*
-     * Don't render the container if width or height is non-positive because
-     * in that case the chart will not be rendered properly anyway.
-     * We will instead wait for the next resize event to provide the correct dimensions.
-     */
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ResponsiveContainerContext.Provider, {
-    value: size
-  }, children);
-}
-export var useResponsiveContainerContext = () => useContext(ResponsiveContainerContext);
-var SizeDetectorContainer = /*#__PURE__*/forwardRef((_ref2, ref) => {
-  var {
-    aspect,
-    initialDimension = defaultResponsiveContainerProps.initialDimension,
-    width,
-    height,
-    /*
-     * default min-width to 0 if not specified - 'auto' causes issues with flexbox
-     * https://github.com/recharts/recharts/issues/172
-     */
-    minWidth = defaultResponsiveContainerProps.minWidth,
-    minHeight,
-    maxHeight,
-    children,
-    debounce = defaultResponsiveContainerProps.debounce,
-    id,
-    className,
-    onResize,
-    style = {}
-  } = _ref2;
-  var containerRef = useRef(null);
-  /*
-   * We are using a ref to avoid re-creating the ResizeObserver when the onResize function changes.
-   * The ref is updated on every render, so the latest onResize function is always available in the effect.
-   */
-  var onResizeRef = useRef();
-  onResizeRef.current = onResize;
-  useImperativeHandle(ref, () => containerRef.current);
-  var [sizes, setSizes] = useState({
-    containerWidth: initialDimension.width,
-    containerHeight: initialDimension.height
-  });
-  var setContainerSize = useCallback((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  useEffect(() => {
-    if (containerRef.current == null || typeof ResizeObserver === 'undefined') {
-      return noop;
-    }
-    var callback = entries => {
-      var _onResizeRef$current;
-      var entry = entries[0];
-      if (entry == null) {
-        return;
-      }
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = entry.contentRect;
-      setContainerSize(containerWidth, containerHeight);
-      (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);
-    };
-    if (debounce > 0) {
-      callback = throttle(callback, debounce, {
-        trailing: true,
-        leading: false
-      });
-    }
-    var observer = new ResizeObserver(callback);
-    var {
-      width: containerWidth,
-      height: containerHeight
-    } = containerRef.current.getBoundingClientRect();
-    setContainerSize(containerWidth, containerHeight);
-    observer.observe(containerRef.current);
-    return () => {
-      observer.disconnect();
-    };
-  }, [setContainerSize, debounce]);
-  var {
-    containerWidth,
-    containerHeight
-  } = sizes;
-  warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);
-  var {
-    calculatedWidth,
-    calculatedHeight
-  } = calculateChartDimensions(containerWidth, containerHeight, {
-    width,
-    height,
-    aspect,
-    maxHeight
-  });
-  warn(calculatedWidth != null && calculatedWidth > 0 || calculatedHeight != null && calculatedHeight > 0, "The width(%s) and height(%s) of chart should be greater than 0,\n       please check the style of container, or the props width(%s) and height(%s),\n       or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n       height and width.", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);
-  return /*#__PURE__*/React.createElement("div", {
-    id: id ? "".concat(id) : undefined,
-    className: clsx('recharts-responsive-container', className),
-    style: _objectSpread(_objectSpread({}, style), {}, {
-      width,
-      height,
-      minWidth,
-      minHeight,
-      maxHeight
-    }),
-    ref: containerRef
-  }, /*#__PURE__*/React.createElement("div", {
-    style: getInnerDivStyle({
-      width,
-      height
-    })
-  }, /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {
-    width: calculatedWidth,
-    height: calculatedHeight
-  }, children)));
-});
-
-/**
- * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.
- * It is used to create responsive charts that adapt to different screen sizes.
- *
- * This component uses the {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver} API to monitor changes to the size of its parent element.
- * If you need to support older browsers that do not support this API, you may need to include a polyfill.
- *
- * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}
- *
- * @provides ResponsiveContainerContext
- */
-export var ResponsiveContainer = /*#__PURE__*/forwardRef((props, ref) => {
-  var responsiveContainerContext = useResponsiveContainerContext();
-  if (isPositiveNumber(responsiveContainerContext.width) && isPositiveNumber(responsiveContainerContext.height)) {
-    /*
-     * If we detect that we are already inside another ResponsiveContainer,
-     * we do not attempt to add another layer of responsiveness.
-     */
-    return props.children;
-  }
-  var {
-    width,
-    height
-  } = getDefaultWidthAndHeight({
-    width: props.width,
-    height: props.height,
-    aspect: props.aspect
-  });
-
-  /*
-   * Let's try to get the calculated dimensions without having the div container set up.
-   * Sometimes this does produce fixed, positive dimensions. If so, we can skip rendering the div and monitoring its size.
-   */
-  var {
-    calculatedWidth,
-    calculatedHeight
-  } = calculateChartDimensions(undefined, undefined, {
-    width,
-    height,
-    aspect: props.aspect,
-    maxHeight: props.maxHeight
-  });
-  if (isNumber(calculatedWidth) && isNumber(calculatedHeight)) {
-    /*
-     * If it just so happens that the combination of width, height, and aspect ratio
-     * results in fixed dimensions, then we don't need to monitor the container's size.
-     * We can just provide these fixed dimensions to the context.
-     *
-     * Note that here we are not checking for positive numbers;
-     * if the user provides a zero or negative width/height, we will just pass that along
-     * as whatever size we detect won't be helping anyway.
-     */
-    return /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {
-      width: calculatedWidth,
-      height: calculatedHeight
-    }, props.children);
-  }
-  /*
-   * Static analysis did not produce fixed dimensions,
-   * so we need to render a special div and monitor its size.
-   */
-  return /*#__PURE__*/React.createElement(SizeDetectorContainer, _extends({}, props, {
-    width: width,
-    height: height,
-    ref: ref
-  }));
-});
Index: de_modules/recharts/es6/component/Text.js
===================================================================
--- node_modules/recharts/es6/component/Text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,285 +1,0 @@
-var _excluded = ["x", "y", "lineHeight", "capHeight", "fill", "scaleToFit", "textAnchor", "verticalAnchor"],
-  _excluded2 = ["dx", "dy", "angle", "className", "breakAll"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useMemo, forwardRef } from 'react';
-import { clsx } from 'clsx';
-import { isNullish, isNumber, isNumOrStr } from '../util/DataUtils';
-import { Global } from '../util/Global';
-import { getStringSize } from '../util/DOMUtils';
-import { reduceCSSCalc } from '../util/ReduceCSSCalc';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
-var BREAKING_SPACES = /[ \f\n\r\t\v\u2028\u2029]+/;
-var calculateWordWidths = _ref => {
-  var {
-    children,
-    breakAll,
-    style
-  } = _ref;
-  try {
-    var words = [];
-    if (!isNullish(children)) {
-      if (breakAll) {
-        words = children.toString().split('');
-      } else {
-        words = children.toString().split(BREAKING_SPACES);
-      }
-    }
-    var wordsWithComputedWidth = words.map(word => ({
-      word,
-      width: getStringSize(word, style).width
-    }));
-    var spaceWidth = breakAll ? 0 : getStringSize('\u00A0', style).width;
-    return {
-      wordsWithComputedWidth,
-      spaceWidth
-    };
-  } catch (_unused) {
-    return null;
-  }
-};
-
-/**
- * @inline
- */
-
-export function isValidTextAnchor(value) {
-  return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';
-}
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-var calculate = (words, lineWidth, spaceWidth, scaleToFit) => words.reduce((result, _ref2) => {
-  var {
-    word,
-    width
-  } = _ref2;
-  var currentLine = result[result.length - 1];
-  if (currentLine && width != null && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {
-    // Word can be added to an existing line
-    currentLine.words.push(word);
-    currentLine.width += width + spaceWidth;
-  } else {
-    // Add first word to line or word is too long to scaleToFit on existing line
-    var newLine = {
-      words: [word],
-      width
-    };
-    result.push(newLine);
-  }
-  return result;
-}, []);
-var findLongestLine = words => words.reduce((a, b) => a.width > b.width ? a : b);
-var suffix = '…';
-var checkOverflow = (text, index, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit) => {
-  var tempText = text.slice(0, index);
-  var words = calculateWordWidths({
-    breakAll,
-    style,
-    children: tempText + suffix
-  });
-  if (!words) {
-    return [false, []];
-  }
-  var result = calculate(words.wordsWithComputedWidth, lineWidth, spaceWidth, scaleToFit);
-  var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);
-  return [doesOverflow, result];
-};
-var calculateWordsByLines = (_ref3, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) => {
-  var {
-    maxLines,
-    children,
-    style,
-    breakAll
-  } = _ref3;
-  var shouldLimitLines = isNumber(maxLines);
-  var text = String(children);
-  var originalResult = calculate(initialWordsWithComputedWith, lineWidth, spaceWidth, scaleToFit);
-  if (!shouldLimitLines || scaleToFit) {
-    return originalResult;
-  }
-  var overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);
-  if (!overflows) {
-    return originalResult;
-  }
-  var start = 0;
-  var end = text.length - 1;
-  var iterations = 0;
-  var trimmedResult;
-  while (start <= end && iterations <= text.length - 1) {
-    var middle = Math.floor((start + end) / 2);
-    var prev = middle - 1;
-    var [doesPrevOverflow, result] = checkOverflow(text, prev, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);
-    var [doesMiddleOverflow] = checkOverflow(text, middle, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);
-    if (!doesPrevOverflow && !doesMiddleOverflow) {
-      start = middle + 1;
-    }
-    if (doesPrevOverflow && doesMiddleOverflow) {
-      end = middle - 1;
-    }
-    if (!doesPrevOverflow && doesMiddleOverflow) {
-      trimmedResult = result;
-      break;
-    }
-    iterations++;
-  }
-
-  // Fallback to originalResult (result without trimming) if we cannot find the
-  // where to trim.  This should not happen :tm:
-  return trimmedResult || originalResult;
-};
-var getWordsWithoutCalculate = children => {
-  var words = !isNullish(children) ? children.toString().split(BREAKING_SPACES) : [];
-  return [{
-    words,
-    width: undefined
-  }];
-};
-export var getWordsByLines = _ref4 => {
-  var {
-    width,
-    scaleToFit,
-    children,
-    style,
-    breakAll,
-    maxLines
-  } = _ref4;
-  // Only perform calculations if using features that require them (multiline, scaleToFit)
-  if ((width || scaleToFit) && !Global.isSsr) {
-    var wordsWithComputedWidth, spaceWidth;
-    var wordWidths = calculateWordWidths({
-      breakAll,
-      children,
-      style
-    });
-    if (wordWidths) {
-      var {
-        wordsWithComputedWidth: wcw,
-        spaceWidth: sw
-      } = wordWidths;
-      wordsWithComputedWidth = wcw;
-      spaceWidth = sw;
-    } else {
-      return getWordsWithoutCalculate(children);
-    }
-    return calculateWordsByLines({
-      breakAll,
-      children,
-      maxLines,
-      style
-    }, wordsWithComputedWidth, spaceWidth, width, Boolean(scaleToFit));
-  }
-  return getWordsWithoutCalculate(children);
-};
-var DEFAULT_FILL = '#808080';
-export var textDefaultProps = {
-  angle: 0,
-  breakAll: false,
-  // Magic number from d3
-  capHeight: '0.71em',
-  fill: DEFAULT_FILL,
-  lineHeight: '1em',
-  scaleToFit: false,
-  textAnchor: 'start',
-  // Maintain compat with existing charts / default SVG behavior
-  verticalAnchor: 'end',
-  x: 0,
-  y: 0
-};
-export var Text = /*#__PURE__*/forwardRef((outsideProps, ref) => {
-  var _resolveDefaultProps = resolveDefaultProps(outsideProps, textDefaultProps),
-    {
-      x: propsX,
-      y: propsY,
-      lineHeight,
-      capHeight,
-      fill,
-      scaleToFit,
-      textAnchor,
-      verticalAnchor
-    } = _resolveDefaultProps,
-    props = _objectWithoutProperties(_resolveDefaultProps, _excluded);
-  var wordsByLines = useMemo(() => {
-    return getWordsByLines({
-      breakAll: props.breakAll,
-      children: props.children,
-      maxLines: props.maxLines,
-      scaleToFit,
-      style: props.style,
-      width: props.width
-    });
-  }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);
-  var {
-      dx,
-      dy,
-      angle,
-      className,
-      breakAll
-    } = props,
-    textProps = _objectWithoutProperties(props, _excluded2);
-  if (!isNumOrStr(propsX) || !isNumOrStr(propsY) || wordsByLines.length === 0) {
-    return null;
-  }
-  var x = Number(propsX) + (isNumber(dx) ? dx : 0);
-  var y = Number(propsY) + (isNumber(dy) ? dy : 0);
-  if (!isWellBehavedNumber(x) || !isWellBehavedNumber(y)) {
-    return null;
-  }
-  var startDy;
-  switch (verticalAnchor) {
-    case 'start':
-      startDy = reduceCSSCalc("calc(".concat(capHeight, ")"));
-      break;
-    case 'middle':
-      startDy = reduceCSSCalc("calc(".concat((wordsByLines.length - 1) / 2, " * -").concat(lineHeight, " + (").concat(capHeight, " / 2))"));
-      break;
-    default:
-      startDy = reduceCSSCalc("calc(".concat(wordsByLines.length - 1, " * -").concat(lineHeight, ")"));
-      break;
-  }
-  var transforms = [];
-  var firstLine = wordsByLines[0];
-  if (scaleToFit && firstLine != null) {
-    var lineWidth = firstLine.width;
-    var {
-      width
-    } = props;
-    transforms.push("scale(".concat(isNumber(width) && isNumber(lineWidth) ? width / lineWidth : 1, ")"));
-  }
-  if (angle) {
-    transforms.push("rotate(".concat(angle, ", ").concat(x, ", ").concat(y, ")"));
-  }
-  if (transforms.length) {
-    textProps.transform = transforms.join(' ');
-  }
-  return /*#__PURE__*/React.createElement("text", _extends({}, svgPropertiesAndEvents(textProps), {
-    ref: ref,
-    x: x,
-    y: y,
-    className: clsx('recharts-text', className),
-    textAnchor: textAnchor,
-    fill: fill.includes('url') ? DEFAULT_FILL : fill
-  }), wordsByLines.map((line, index) => {
-    var words = line.words.join(breakAll ? '' : ' ');
-    return (
-      /*#__PURE__*/
-      // duplicate words will cause duplicate keys which is why we add the array index here
-      React.createElement("tspan", {
-        x: x,
-        dy: index === 0 ? startDy : lineHeight,
-        key: "".concat(words, "-").concat(index)
-      }, words)
-    );
-  }));
-});
-Text.displayName = 'Text';
Index: de_modules/recharts/es6/component/Tooltip.js
===================================================================
--- node_modules/recharts/es6/component/Tooltip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { useEffect } from 'react';
-import { createPortal } from 'react-dom';
-import { DefaultTooltipContent } from './DefaultTooltipContent';
-import { TooltipBoundingBox } from './TooltipBoundingBox';
-import { getUniqPayload } from '../util/payload/getUniqPayload';
-import { useViewBox } from '../context/chartLayoutContext';
-import { useAccessibilityLayer } from '../context/accessibilityContext';
-import { useElementOffset } from '../util/useElementOffset';
-import { Cursor } from './Cursor';
-import { selectActiveCoordinate, selectActiveLabel, selectIsTooltipActive, selectTooltipPayload } from '../state/selectors/selectors';
-import { useTooltipPortal } from '../context/tooltipPortalContext';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { setTooltipSettingsState } from '../state/tooltipSlice';
-import { useTooltipChartSynchronisation } from '../synchronisation/useChartSynchronisation';
-import { useTooltipEventType } from '../state/selectors/selectTooltipEventType';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-function defaultUniqBy(entry) {
-  return entry.dataKey;
-}
-function renderContent(content, props) {
-  if (/*#__PURE__*/React.isValidElement(content)) {
-    return /*#__PURE__*/React.cloneElement(content, props);
-  }
-  if (typeof content === 'function') {
-    return /*#__PURE__*/React.createElement(content, props);
-  }
-  return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);
-}
-var emptyPayload = [];
-export var defaultTooltipProps = {
-  allowEscapeViewBox: {
-    x: false,
-    y: false
-  },
-  animationDuration: 400,
-  animationEasing: 'ease',
-  axisId: 0,
-  contentStyle: {},
-  cursor: true,
-  filterNull: true,
-  includeHidden: false,
-  isAnimationActive: 'auto',
-  itemSorter: 'name',
-  itemStyle: {},
-  labelStyle: {},
-  offset: 10,
-  reverseDirection: {
-    x: false,
-    y: false
-  },
-  separator: ' : ',
-  trigger: 'hover',
-  useTranslate3d: false,
-  wrapperStyle: {}
-};
-
-/**
- * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.
- *
- * It can be configured to show information for individual data points or for all points at a specific axis coordinate.
- * The appearance and content of the tooltip can be customized via props.
- *
- * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}
- * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}
- *
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- * @consumes TooltipEntrySettings
- */
-export function Tooltip(outsideProps) {
-  var _useAppSelector, _ref;
-  var props = resolveDefaultProps(outsideProps, defaultTooltipProps);
-  var {
-    active: activeFromProps,
-    allowEscapeViewBox,
-    animationDuration,
-    animationEasing,
-    content,
-    filterNull,
-    isAnimationActive,
-    offset,
-    payloadUniqBy,
-    position,
-    reverseDirection,
-    useTranslate3d,
-    wrapperStyle,
-    cursor,
-    shared,
-    trigger,
-    defaultIndex,
-    portal: portalFromProps,
-    axisId
-  } = props;
-  var dispatch = useAppDispatch();
-  var defaultIndexAsString = typeof defaultIndex === 'number' ? String(defaultIndex) : defaultIndex;
-  useEffect(() => {
-    dispatch(setTooltipSettingsState({
-      shared,
-      trigger,
-      axisId,
-      active: activeFromProps,
-      defaultIndex: defaultIndexAsString
-    }));
-  }, [dispatch, shared, trigger, axisId, activeFromProps, defaultIndexAsString]);
-  var viewBox = useViewBox();
-  var accessibilityLayer = useAccessibilityLayer();
-  var tooltipEventType = useTooltipEventType(shared);
-  var {
-    activeIndex,
-    isActive
-  } = (_useAppSelector = useAppSelector(state => selectIsTooltipActive(state, tooltipEventType, trigger, defaultIndexAsString))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};
-  var payloadFromRedux = useAppSelector(state => selectTooltipPayload(state, tooltipEventType, trigger, defaultIndexAsString));
-  var labelFromRedux = useAppSelector(state => selectActiveLabel(state, tooltipEventType, trigger, defaultIndexAsString));
-  var coordinate = useAppSelector(state => selectActiveCoordinate(state, tooltipEventType, trigger, defaultIndexAsString));
-  var payload = payloadFromRedux;
-  var tooltipPortalFromContext = useTooltipPortal();
-  /*
-   * The user can set `active=true` on the Tooltip in which case the Tooltip will stay always active,
-   * or `active=false` in which case the Tooltip never shows.
-   *
-   * If the `active` prop is not defined then it will show and hide based on mouse or keyboard activity.
-   */
-  var finalIsActive = (_ref = activeFromProps !== null && activeFromProps !== void 0 ? activeFromProps : isActive) !== null && _ref !== void 0 ? _ref : false;
-  var [lastBoundingBox, updateBoundingBox] = useElementOffset([payload, finalIsActive]);
-  var finalLabel = tooltipEventType === 'axis' ? labelFromRedux : undefined;
-  useTooltipChartSynchronisation(tooltipEventType, trigger, coordinate, finalLabel, activeIndex, finalIsActive);
-  var tooltipPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : tooltipPortalFromContext;
-  if (tooltipPortal == null || viewBox == null || tooltipEventType == null) {
-    return null;
-  }
-  var finalPayload = payload !== null && payload !== void 0 ? payload : emptyPayload;
-  if (!finalIsActive) {
-    finalPayload = emptyPayload;
-  }
-  if (filterNull && finalPayload.length) {
-    finalPayload = getUniqPayload(finalPayload.filter(entry => entry.value != null && (entry.hide !== true || props.includeHidden)), payloadUniqBy, defaultUniqBy);
-  }
-  var hasPayload = finalPayload.length > 0;
-  var tooltipElement = /*#__PURE__*/React.createElement(TooltipBoundingBox, {
-    allowEscapeViewBox: allowEscapeViewBox,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    active: finalIsActive,
-    coordinate: coordinate,
-    hasPayload: hasPayload,
-    offset: offset,
-    position: position,
-    reverseDirection: reverseDirection,
-    useTranslate3d: useTranslate3d,
-    viewBox: viewBox,
-    wrapperStyle: wrapperStyle,
-    lastBoundingBox: lastBoundingBox,
-    innerRef: updateBoundingBox,
-    hasPortalFromProps: Boolean(portalFromProps)
-  }, renderContent(content, _objectSpread(_objectSpread({}, props), {}, {
-    payload: finalPayload,
-    label: finalLabel,
-    active: finalIsActive,
-    activeIndex,
-    coordinate,
-    accessibilityLayer
-  })));
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/createPortal(tooltipElement, tooltipPortal), finalIsActive && /*#__PURE__*/React.createElement(Cursor, {
-    cursor: cursor,
-    tooltipEventType: tooltipEventType,
-    coordinate: coordinate,
-    payload: finalPayload,
-    index: activeIndex
-  }));
-}
Index: de_modules/recharts/es6/component/TooltipBoundingBox.js
===================================================================
--- node_modules/recharts/es6/component/TooltipBoundingBox.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,113 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { PureComponent } from 'react';
-import { getTooltipTranslate } from '../util/tooltip/translate';
-export class TooltipBoundingBox extends PureComponent {
-  constructor() {
-    super(...arguments);
-    _defineProperty(this, "state", {
-      dismissed: false,
-      dismissedAtCoordinate: {
-        x: 0,
-        y: 0
-      }
-    });
-    _defineProperty(this, "handleKeyDown", event => {
-      if (event.key === 'Escape') {
-        var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;
-        this.setState({
-          dismissed: true,
-          dismissedAtCoordinate: {
-            x: (_this$props$coordinat = (_this$props$coordinat2 = this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,
-            y: (_this$props$coordinat3 = (_this$props$coordinat4 = this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0
-          }
-        });
-      }
-    });
-  }
-  componentDidMount() {
-    document.addEventListener('keydown', this.handleKeyDown);
-  }
-  componentWillUnmount() {
-    document.removeEventListener('keydown', this.handleKeyDown);
-  }
-  componentDidUpdate() {
-    var _this$props$coordinat5, _this$props$coordinat6;
-    if (!this.state.dismissed) {
-      return;
-    }
-    if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {
-      this.state.dismissed = false;
-    }
-  }
-  render() {
-    var {
-      active,
-      allowEscapeViewBox,
-      animationDuration,
-      animationEasing,
-      children,
-      coordinate,
-      hasPayload,
-      isAnimationActive,
-      offset,
-      position,
-      reverseDirection,
-      useTranslate3d,
-      viewBox,
-      wrapperStyle,
-      lastBoundingBox,
-      innerRef,
-      hasPortalFromProps
-    } = this.props;
-    var offsetLeft = typeof offset === 'number' ? offset : offset.x;
-    var offsetTop = typeof offset === 'number' ? offset : offset.y;
-    var {
-      cssClasses,
-      cssProperties
-    } = getTooltipTranslate({
-      allowEscapeViewBox,
-      coordinate,
-      offsetLeft,
-      offsetTop,
-      position,
-      reverseDirection,
-      tooltipBox: {
-        height: lastBoundingBox.height,
-        width: lastBoundingBox.width
-      },
-      useTranslate3d,
-      viewBox
-    });
-
-    // do not use absolute styles if the user has passed a custom portal prop
-    var positionStyles = hasPortalFromProps ? {} : _objectSpread(_objectSpread({
-      transition: isAnimationActive && active ? "transform ".concat(animationDuration, "ms ").concat(animationEasing) : undefined
-    }, cssProperties), {}, {
-      pointerEvents: 'none',
-      visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',
-      position: 'absolute',
-      top: 0,
-      left: 0
-    });
-    var outerStyle = _objectSpread(_objectSpread({}, positionStyles), {}, {
-      visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden'
-    }, wrapperStyle);
-    return (
-      /*#__PURE__*/
-      // This element allow listening to the `Escape` key. See https://github.com/recharts/recharts/pull/2925
-      React.createElement("div", {
-        // @ts-expect-error typescript library does not recognize xmlns attribute, but it's required for an HTML chunk inside SVG.
-        xmlns: "http://www.w3.org/1999/xhtml",
-        tabIndex: -1,
-        className: cssClasses,
-        style: outerStyle,
-        ref: innerRef
-      }, children)
-    );
-  }
-}
Index: de_modules/recharts/es6/component/responsiveContainerUtils.js
===================================================================
--- node_modules/recharts/es6/component/responsiveContainerUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,113 +1,0 @@
-import { isPercent } from '../util/DataUtils';
-export var defaultResponsiveContainerProps = {
-  width: '100%',
-  height: '100%',
-  debounce: 0,
-  minWidth: 0,
-  initialDimension: {
-    width: -1,
-    height: -1
-  }
-};
-export var calculateChartDimensions = (containerWidth, containerHeight, props) => {
-  var {
-    width = defaultResponsiveContainerProps.width,
-    height = defaultResponsiveContainerProps.height,
-    aspect,
-    maxHeight
-  } = props;
-
-  /*
-   * The containerWidth and containerHeight are already percentage based because it's set as that percentage in CSS.
-   * Means we don't have to calculate percentages here.
-   */
-  var calculatedWidth = isPercent(width) ? containerWidth : Number(width);
-  var calculatedHeight = isPercent(height) ? containerHeight : Number(height);
-  if (aspect && aspect > 0) {
-    // Preserve the desired aspect ratio
-    if (calculatedWidth) {
-      // Will default to using width for aspect ratio
-      calculatedHeight = calculatedWidth / aspect;
-    } else if (calculatedHeight) {
-      // But we should also take height into consideration
-      calculatedWidth = calculatedHeight * aspect;
-    }
-
-    // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight
-    if (maxHeight && calculatedHeight != null && calculatedHeight > maxHeight) {
-      calculatedHeight = maxHeight;
-    }
-  }
-  return {
-    calculatedWidth,
-    calculatedHeight
-  };
-};
-var bothOverflow = {
-  width: 0,
-  height: 0,
-  overflow: 'visible'
-};
-var overflowX = {
-  width: 0,
-  overflowX: 'visible'
-};
-var overflowY = {
-  height: 0,
-  overflowY: 'visible'
-};
-var noStyle = {};
-
-/**
- * This zero-size, overflow-visible is required to allow the chart to shrink.
- * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,
- * it would always keep the container at the size of the chart,
- * and ResizeObserver would never fire.
- * With this zero-size element, the chart itself never actually fills the container,
- * it just so happens that it is visible because it overflows.
- * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts
- * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68
- *
- * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),
- * because in that case the chart can't shrink in that dimension anyway.
- * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245
- */
-export var getInnerDivStyle = props => {
-  var {
-    width,
-    height
-  } = props;
-  var isWidthPercent = isPercent(width);
-  var isHeightPercent = isPercent(height);
-  if (isWidthPercent && isHeightPercent) {
-    return bothOverflow;
-  }
-  if (isWidthPercent) {
-    return overflowX;
-  }
-  if (isHeightPercent) {
-    return overflowY;
-  }
-  return noStyle;
-};
-export function getDefaultWidthAndHeight(_ref) {
-  var {
-    width,
-    height,
-    aspect
-  } = _ref;
-  var calculatedWidth = width;
-  var calculatedHeight = height;
-  if (calculatedWidth === undefined && calculatedHeight === undefined) {
-    calculatedWidth = defaultResponsiveContainerProps.width;
-    calculatedHeight = defaultResponsiveContainerProps.height;
-  } else if (calculatedWidth === undefined) {
-    calculatedWidth = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.width;
-  } else if (calculatedHeight === undefined) {
-    calculatedHeight = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.height;
-  }
-  return {
-    width: calculatedWidth,
-    height: calculatedHeight
-  };
-}
Index: de_modules/recharts/es6/container/ClipPathProvider.js
===================================================================
--- node_modules/recharts/es6/container/ClipPathProvider.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import * as React from 'react';
-import { createContext, useContext, useState } from 'react';
-import { uniqueId } from '../util/DataUtils';
-import { usePlotArea } from '../hooks';
-var ClipPathIdContext = /*#__PURE__*/createContext(undefined);
-
-/**
- * Generates a unique clip path ID for use in SVG elements,
- * and puts it in a context provider.
- *
- * To read the clip path ID, use the `useClipPathId` hook,
- * or render `<ClipPath>` component which will automatically use the ID from this context.
- *
- * @param props children - React children to be wrapped by the provider
- * @returns React Context Provider
- */
-export var ClipPathProvider = _ref => {
-  var {
-    children
-  } = _ref;
-  var [clipPathId] = useState("".concat(uniqueId('recharts'), "-clip"));
-  var plotArea = usePlotArea();
-  if (plotArea == null) {
-    return null;
-  }
-  var {
-    x,
-    y,
-    width,
-    height
-  } = plotArea;
-  return /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {
-    value: clipPathId
-  }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
-    id: clipPathId
-  }, /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    height: height,
-    width: width
-  }))), children);
-};
-export var useClipPathId = () => {
-  return useContext(ClipPathIdContext);
-};
Index: de_modules/recharts/es6/container/Layer.js
===================================================================
--- node_modules/recharts/es6/container/Layer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-var _excluded = ["children", "className"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-/**
- * Creates an SVG group element to group other SVG elements.
- *
- * Useful if you want to apply transformations or styles to a set of elements
- * without affecting other elements in the SVG.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g
- */
-export var Layer = /*#__PURE__*/React.forwardRef((props, ref) => {
-  var {
-      children,
-      className
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var layerClass = clsx('recharts-layer', className);
-  return /*#__PURE__*/React.createElement("g", _extends({
-    className: layerClass
-  }, svgPropertiesAndEvents(others), {
-    ref: ref
-  }), children);
-});
Index: de_modules/recharts/es6/container/RootSurface.js
===================================================================
--- node_modules/recharts/es6/container/RootSurface.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,103 +1,0 @@
-var _excluded = ["children"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { useChartHeight, useChartWidth } from '../context/chartLayoutContext';
-import { useAccessibilityLayer } from '../context/accessibilityContext';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { Surface } from './Surface';
-import { useAppSelector } from '../state/hooks';
-import { selectBrushDimensions } from '../state/selectors/brushSelectors';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-import { AllZIndexPortals } from '../zIndex/ZIndexPortal';
-var FULL_WIDTH_AND_HEIGHT = {
-  width: '100%',
-  height: '100%',
-  /*
-   * display: block is necessary here because the default for an SVG is display: inline,
-   * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG
-   * to make space for the descender of letters like "g" and "y". This throws off the height calculation
-   * and causes the container to grow indefinitely on each render with responsive=true.
-   * Display: block removes that extra space.
-   *
-   * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.
-   */
-  display: 'block'
-};
-var MainChartSurface = /*#__PURE__*/forwardRef((props, ref) => {
-  var width = useChartWidth();
-  var height = useChartHeight();
-  var hasAccessibilityLayer = useAccessibilityLayer();
-  if (!isPositiveNumber(width) || !isPositiveNumber(height)) {
-    return null;
-  }
-  var {
-    children,
-    otherAttributes,
-    title,
-    desc
-  } = props;
-  var tabIndex, role;
-  if (otherAttributes != null) {
-    if (typeof otherAttributes.tabIndex === 'number') {
-      tabIndex = otherAttributes.tabIndex;
-    } else {
-      tabIndex = hasAccessibilityLayer ? 0 : undefined;
-    }
-    if (typeof otherAttributes.role === 'string') {
-      role = otherAttributes.role;
-    } else {
-      role = hasAccessibilityLayer ? 'application' : undefined;
-    }
-  }
-  return /*#__PURE__*/React.createElement(Surface, _extends({}, otherAttributes, {
-    title: title,
-    desc: desc,
-    role: role,
-    tabIndex: tabIndex,
-    width: width,
-    height: height,
-    style: FULL_WIDTH_AND_HEIGHT,
-    ref: ref
-  }), children);
-});
-var BrushPanoramaSurface = _ref => {
-  var {
-    children
-  } = _ref;
-  var brushDimensions = useAppSelector(selectBrushDimensions);
-  if (!brushDimensions) {
-    return null;
-  }
-  var {
-    width,
-    height,
-    y,
-    x
-  } = brushDimensions;
-  return /*#__PURE__*/React.createElement(Surface, {
-    width: width,
-    height: height,
-    x: x,
-    y: y
-  }, children);
-};
-export var RootSurface = /*#__PURE__*/forwardRef((_ref2, ref) => {
-  var {
-      children
-    } = _ref2,
-    rest = _objectWithoutProperties(_ref2, _excluded);
-  var isPanorama = useIsPanorama();
-  if (isPanorama) {
-    return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(AllZIndexPortals, {
-      isPanorama: true
-    }, children));
-  }
-  return /*#__PURE__*/React.createElement(MainChartSurface, _extends({
-    ref: ref
-  }, rest), /*#__PURE__*/React.createElement(AllZIndexPortals, {
-    isPanorama: false
-  }, children));
-});
Index: de_modules/recharts/es6/container/Surface.js
===================================================================
--- node_modules/recharts/es6/container/Surface.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-var _excluded = ["children", "width", "height", "viewBox", "className", "style", "title", "desc"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { forwardRef } from 'react';
-import { clsx } from 'clsx';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-/**
- * Renders an SVG element.
- *
- * All charts already include a Surface component, so you would not normally use this directly.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg
- */
-export var Surface = /*#__PURE__*/forwardRef((props, ref) => {
-  var {
-      children,
-      width,
-      height,
-      viewBox,
-      className,
-      style,
-      title,
-      desc
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var svgView = viewBox || {
-    width,
-    height,
-    x: 0,
-    y: 0
-  };
-  var layerClass = clsx('recharts-surface', className);
-  return /*#__PURE__*/React.createElement("svg", _extends({}, svgPropertiesAndEvents(others), {
-    className: layerClass,
-    width: width,
-    height: height,
-    style: style,
-    viewBox: "".concat(svgView.x, " ").concat(svgView.y, " ").concat(svgView.width, " ").concat(svgView.height),
-    ref: ref
-  }), /*#__PURE__*/React.createElement("title", null, title), /*#__PURE__*/React.createElement("desc", null, desc), children);
-});
Index: de_modules/recharts/es6/context/ErrorBarContext.js
===================================================================
--- node_modules/recharts/es6/context/ErrorBarContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-var _excluded = ["children"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { createContext, useContext, useEffect, useRef } from 'react';
-import { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';
-import { useAppDispatch } from '../state/hooks';
-import { useGraphicalItemId } from './RegisterGraphicalItemId';
-var initialContextState = {
-  data: [],
-  xAxisId: 'xAxis-0',
-  yAxisId: 'yAxis-0',
-  dataPointFormatter: () => ({
-    x: 0,
-    y: 0,
-    value: 0
-  }),
-  errorBarOffset: 0
-};
-var ErrorBarContext = /*#__PURE__*/createContext(initialContextState);
-export function SetErrorBarContext(props) {
-  var {
-      children
-    } = props,
-    rest = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {
-    value: rest
-  }, children);
-}
-export var useErrorBarContext = () => useContext(ErrorBarContext);
-export function ReportErrorBarSettings(props) {
-  var dispatch = useAppDispatch();
-  var graphicalItemId = useGraphicalItemId();
-  var prevPropsRef = useRef(null);
-  useEffect(() => {
-    if (graphicalItemId == null) {
-      // ErrorBar outside a graphical item context does not do anything.
-      return;
-    }
-    if (prevPropsRef.current === null) {
-      dispatch(addErrorBar({
-        itemId: graphicalItemId,
-        errorBar: props
-      }));
-    } else if (prevPropsRef.current !== props) {
-      dispatch(replaceErrorBar({
-        itemId: graphicalItemId,
-        prev: prevPropsRef.current,
-        next: props
-      }));
-    }
-    prevPropsRef.current = props;
-  }, [dispatch, graphicalItemId, props]);
-  useEffect(() => {
-    return () => {
-      if (prevPropsRef.current != null && graphicalItemId != null) {
-        dispatch(removeErrorBar({
-          itemId: graphicalItemId,
-          errorBar: prevPropsRef.current
-        }));
-        prevPropsRef.current = null;
-      }
-    };
-  }, [dispatch, graphicalItemId]);
-  return null;
-}
Index: de_modules/recharts/es6/context/PanoramaContext.js
===================================================================
--- node_modules/recharts/es6/context/PanoramaContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import * as React from 'react';
-import { createContext, useContext } from 'react';
-var PanoramaContext = /*#__PURE__*/createContext(null);
-export var useIsPanorama = () => useContext(PanoramaContext) != null;
-export var PanoramaContextProvider = _ref => {
-  var {
-    children
-  } = _ref;
-  return /*#__PURE__*/React.createElement(PanoramaContext.Provider, {
-    value: true
-  }, children);
-};
Index: de_modules/recharts/es6/context/RegisterGraphicalItemId.js
===================================================================
--- node_modules/recharts/es6/context/RegisterGraphicalItemId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import * as React from 'react';
-import { createContext, useContext } from 'react';
-import { useUniqueId } from '../util/useUniqueId';
-var GraphicalItemIdContext = /*#__PURE__*/createContext(undefined);
-export var RegisterGraphicalItemId = _ref => {
-  var {
-    id,
-    type,
-    children
-  } = _ref;
-  var resolvedId = useUniqueId("recharts-".concat(type), id);
-  return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {
-    value: resolvedId
-  }, children(resolvedId));
-};
-export function useGraphicalItemId() {
-  return useContext(GraphicalItemIdContext);
-}
Index: de_modules/recharts/es6/context/accessibilityContext.js
===================================================================
--- node_modules/recharts/es6/context/accessibilityContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { useAppSelector } from '../state/hooks';
-export var useAccessibilityLayer = () => {
-  var _useAppSelector;
-  return (_useAppSelector = useAppSelector(state => state.rootProps.accessibilityLayer)) !== null && _useAppSelector !== void 0 ? _useAppSelector : true;
-};
Index: de_modules/recharts/es6/context/brushUpdateContext.js
===================================================================
--- node_modules/recharts/es6/context/brushUpdateContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { createContext } from 'react';
-export var BrushUpdateDispatchContext = /*#__PURE__*/createContext(() => {});
Index: de_modules/recharts/es6/context/chartDataContext.js
===================================================================
--- node_modules/recharts/es6/context/chartDataContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-import { useEffect } from 'react';
-import { setChartData, setComputedData } from '../state/chartDataSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { useIsPanorama } from './PanoramaContext';
-export var ChartDataContextProvider = props => {
-  var {
-    chartData
-  } = props;
-  var dispatch = useAppDispatch();
-  var isPanorama = useIsPanorama();
-  useEffect(() => {
-    if (isPanorama) {
-      // Panorama mode reuses data from the main chart, so we must not overwrite it here.
-      return () => {
-        // there is nothing to clean up
-      };
-    }
-    dispatch(setChartData(chartData));
-    return () => {
-      dispatch(setChartData(undefined));
-    };
-  }, [chartData, dispatch, isPanorama]);
-  return null;
-};
-export var SetComputedData = props => {
-  var {
-    computedData
-  } = props;
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(setComputedData(computedData));
-    return () => {
-      dispatch(setChartData(undefined));
-    };
-  }, [computedData, dispatch]);
-  return null;
-};
-var selectChartData = state => state.chartData.chartData;
-
-/**
- * "data" is the data of the chart - it has no type because this part of recharts is very flexible.
- * Basically it's an array of "something" and then there's the dataKey property in various places
- * that's meant to pull other things away from the data.
- *
- * Some charts have `data` defined on the chart root, and they will return the array through this hook.
- * For example: <ComposedChart data={data} />.
- *
- * Other charts, such as Pie, have data defined on individual graphical elements.
- * These charts will return `undefined` through this hook, and you need to read the data from children.
- * For example: <PieChart><Pie data={data} />
- *
- * Some charts also allow setting both - data on the parent, and data on the children at the same time!
- * However, this particular selector will only return the ones defined on the parent.
- *
- * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.
- *
- * @return data array for some charts and undefined for other
- */
-export var useChartData = () => useAppSelector(selectChartData);
-var selectDataIndex = state => {
-  var {
-    dataStartIndex,
-    dataEndIndex
-  } = state.chartData;
-  return {
-    startIndex: dataStartIndex,
-    endIndex: dataEndIndex
-  };
-};
-
-/**
- * startIndex and endIndex are data boundaries, set through Brush.
- *
- * @return object with startIndex and endIndex
- */
-export var useDataIndex = () => {
-  return useAppSelector(selectDataIndex);
-};
Index: de_modules/recharts/es6/context/chartLayoutContext.js
===================================================================
--- node_modules/recharts/es6/context/chartLayoutContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,209 +1,0 @@
-import { useEffect } from 'react';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { setChartSize, setMargin } from '../state/layoutSlice';
-import { selectChartOffsetInternal, selectChartViewBox } from '../state/selectors/selectChartOffsetInternal';
-import { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';
-import { useIsPanorama } from './PanoramaContext';
-import { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';
-import { useResponsiveContainerContext } from '../component/ResponsiveContainer';
-import { isPositiveNumber } from '../util/isWellBehavedNumber';
-export function cartesianViewBoxToTrapezoid(box) {
-  if (!box) {
-    return undefined;
-  }
-  return {
-    x: box.x,
-    y: box.y,
-    upperWidth: 'upperWidth' in box ? box.upperWidth : box.width,
-    lowerWidth: 'lowerWidth' in box ? box.lowerWidth : box.width,
-    width: box.width,
-    height: box.height
-  };
-}
-export var useViewBox = () => {
-  var _useAppSelector;
-  var panorama = useIsPanorama();
-  var rootViewBox = useAppSelector(selectChartViewBox);
-  var brushDimensions = useAppSelector(selectBrushDimensions);
-  var brushPadding = (_useAppSelector = useAppSelector(selectBrushSettings)) === null || _useAppSelector === void 0 ? void 0 : _useAppSelector.padding;
-  if (!panorama || !brushDimensions || !brushPadding) {
-    return rootViewBox;
-  }
-  return {
-    width: brushDimensions.width - brushPadding.left - brushPadding.right,
-    height: brushDimensions.height - brushPadding.top - brushPadding.bottom,
-    x: brushPadding.left,
-    y: brushPadding.top
-  };
-};
-var manyComponentsThrowErrorsIfOffsetIsUndefined = {
-  top: 0,
-  bottom: 0,
-  left: 0,
-  right: 0,
-  width: 0,
-  height: 0,
-  brushBottom: 0
-};
-/**
- * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.
- *
- * Returns the offset of the chart in pixels.
- *
- * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.
- */
-export var useOffsetInternal = () => {
-  var _useAppSelector2;
-  return (_useAppSelector2 = useAppSelector(selectChartOffsetInternal)) !== null && _useAppSelector2 !== void 0 ? _useAppSelector2 : manyComponentsThrowErrorsIfOffsetIsUndefined;
-};
-
-/**
- * Returns the width of the chart in pixels.
- *
- * If you are using chart with hardcoded `width` prop, then the width returned will be the same
- * as the `width` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `width` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the width.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the width number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.
- */
-export var useChartWidth = () => {
-  return useAppSelector(selectChartWidth);
-};
-
-/**
- * Returns the height of the chart in pixels.
- *
- * If you are using chart with hardcoded `height` props, then the height returned will be the same
- * as the `height` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `height` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the height.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the height number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.
- */
-export var useChartHeight = () => {
-  return useAppSelector(selectChartHeight);
-};
-
-/**
- * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.
- * This is declared by the user in the chart props.
- * If you are interested in the space occupied by axes, legend, or brushes,
- * use {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.
- */
-export var useMargin = () => {
-  return useAppSelector(state => state.layout.margin);
-};
-export var selectChartLayout = state => state.layout.layoutType;
-export var useChartLayout = () => useAppSelector(selectChartLayout);
-export var useCartesianChartLayout = () => {
-  var layout = useChartLayout();
-  if (layout === 'horizontal' || layout === 'vertical') {
-    return layout;
-  }
-  return undefined;
-};
-export var selectPolarChartLayout = state => {
-  var layout = state.layout.layoutType;
-  if (layout === 'centric' || layout === 'radial') {
-    return layout;
-  }
-  return undefined;
-};
-export var usePolarChartLayout = () => {
-  return useAppSelector(selectPolarChartLayout);
-};
-
-/**
- * Returns true if the component is rendered inside a chart context.
- * Some components may be used both inside and outside of charts,
- * and this hook allows them to determine if they are in a chart context or not.
- *
- * Other selectors may return undefined when used outside a chart context,
- * or undefined when inside a chart, but without relevant data.
- * This hook provides a more explicit way to check for chart context.
- *
- * @returns {boolean} True if in chart context, false otherwise.
- */
-export var useIsInChartContext = () => {
-  /*
-   * All charts provide a layout type in the chart context.
-   * If we have a layout type, we are in a chart context.
-   */
-  var layout = useChartLayout();
-  return layout !== undefined;
-};
-export var ReportChartSize = props => {
-  var dispatch = useAppDispatch();
-
-  /*
-   * Skip dispatching properties in panorama chart for two reasons:
-   * 1. The root chart should be deciding on these properties, and
-   * 2. Brush reads these properties from redux store, and so they must remain stable
-   *      to avoid circular dependency and infinite re-rendering.
-   */
-  var isPanorama = useIsPanorama();
-  var {
-    width: widthFromProps,
-    height: heightFromProps
-  } = props;
-  var responsiveContainerCalculations = useResponsiveContainerContext();
-  var width = widthFromProps;
-  var height = heightFromProps;
-  if (responsiveContainerCalculations) {
-    /*
-     * In case we receive width and height from ResponsiveContainer,
-     * we will always prefer those.
-     * Only in case ResponsiveContainer does not provide width or height,
-     * we will fall back to the explicitly provided width and height.
-     *
-     * This to me feels backwards - we should allow override by the more specific props on individual charts, right?
-     * But this is 3.x behaviour, so let's keep it for backwards compatibility.
-     *
-     * We can change this in 4.x if we want to.
-     */
-    width = responsiveContainerCalculations.width > 0 ? responsiveContainerCalculations.width : widthFromProps;
-    height = responsiveContainerCalculations.height > 0 ? responsiveContainerCalculations.height : heightFromProps;
-  }
-  useEffect(() => {
-    if (!isPanorama && isPositiveNumber(width) && isPositiveNumber(height)) {
-      dispatch(setChartSize({
-        width,
-        height
-      }));
-    }
-  }, [dispatch, isPanorama, width, height]);
-  return null;
-};
-export var ReportChartMargin = _ref => {
-  var {
-    margin
-  } = _ref;
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(setMargin(margin));
-  }, [dispatch, margin]);
-  return null;
-};
Index: de_modules/recharts/es6/context/legendPayloadContext.js
===================================================================
--- node_modules/recharts/es6/context/legendPayloadContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { useAppSelector } from '../state/hooks';
-import { selectLegendPayload } from '../state/selectors/legendSelectors';
-
-/**
- * Use this hook in Legend, or anywhere else where you want to read the current Legend items.
- * @return all Legend items ready to be rendered
- */
-export function useLegendPayload() {
-  return useAppSelector(selectLegendPayload);
-}
Index: de_modules/recharts/es6/context/legendPortalContext.js
===================================================================
--- node_modules/recharts/es6/context/legendPortalContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { createContext, useContext } from 'react';
-export var LegendPortalContext = /*#__PURE__*/createContext(null);
-export var useLegendPortal = () => useContext(LegendPortalContext);
Index: de_modules/recharts/es6/context/tooltipContext.js
===================================================================
--- node_modules/recharts/es6/context/tooltipContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { useAppDispatch } from '../state/hooks';
-import { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';
-export var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey, graphicalItemId) => {
-  var dispatch = useAppDispatch();
-  return (data, index) => event => {
-    onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);
-    dispatch(setActiveMouseOverItemIndex({
-      activeIndex: String(index),
-      activeDataKey: dataKey,
-      activeCoordinate: data.tooltipPosition,
-      activeGraphicalItemId: graphicalItemId
-    }));
-  };
-};
-export var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {
-  var dispatch = useAppDispatch();
-  return (data, index) => event => {
-    onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);
-    dispatch(mouseLeaveItem());
-  };
-};
-export var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey, graphicalItemId) => {
-  var dispatch = useAppDispatch();
-  return (data, index) => event => {
-    onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);
-    dispatch(setActiveClickItemIndex({
-      activeIndex: String(index),
-      activeDataKey: dataKey,
-      activeCoordinate: data.tooltipPosition,
-      activeGraphicalItemId: graphicalItemId
-    }));
-  };
-};
Index: de_modules/recharts/es6/context/tooltipPortalContext.js
===================================================================
--- node_modules/recharts/es6/context/tooltipPortalContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { createContext, useContext } from 'react';
-export var TooltipPortalContext = /*#__PURE__*/createContext(null);
-export var useTooltipPortal = () => useContext(TooltipPortalContext);
Index: de_modules/recharts/es6/context/useTooltipAxis.js
===================================================================
--- node_modules/recharts/es6/context/useTooltipAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { useAppSelector } from '../state/hooks';
-import { getBandSizeOfAxis } from '../util/ChartUtils';
-import { selectTooltipAxis } from '../state/selectors/axisSelectors';
-import { selectTooltipAxisScale, selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';
-export var useTooltipAxis = () => useAppSelector(selectTooltipAxis);
-export var useTooltipAxisBandSize = () => {
-  var tooltipAxis = useTooltipAxis();
-  var tooltipTicks = useAppSelector(selectTooltipAxisTicks);
-  var tooltipAxisScale = useAppSelector(selectTooltipAxisScale);
-  if (!tooltipAxis || !tooltipAxisScale) {
-    return getBandSizeOfAxis(undefined, tooltipTicks);
-  }
-  return getBandSizeOfAxis(_objectSpread(_objectSpread({}, tooltipAxis), {}, {
-    scale: tooltipAxisScale
-  }), tooltipTicks);
-};
Index: de_modules/recharts/es6/hooks.js
===================================================================
--- node_modules/recharts/es6/hooks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,176 +1,0 @@
-import { defaultAxisId } from './state/cartesianAxisSlice';
-import { selectAxisDomain, selectAxisWithScale } from './state/selectors/axisSelectors';
-import { useAppSelector } from './state/hooks';
-import { useIsPanorama } from './context/PanoramaContext';
-import { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataPoints, selectIsTooltipActive } from './state/selectors/tooltipSelectors';
-import { selectChartOffset } from './state/selectors/selectChartOffset';
-import { selectPlotArea } from './state/selectors/selectPlotArea';
-export var useXAxis = xAxisId => {
-  var isPanorama = useIsPanorama();
-  return useAppSelector(state => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));
-};
-export var useYAxis = yAxisId => {
-  var isPanorama = useIsPanorama();
-  return useAppSelector(state => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));
-};
-
-/**
- * Returns the active tooltip label. The label is one of the values from the chart data,
- * and is used to display in the tooltip content.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context
- *
- * @returns ActiveLabel
- */
-export var useActiveTooltipLabel = () => {
-  return useAppSelector(selectActiveLabel);
-};
-
-/**
- * Returns the offset of the chart in pixels.
- *
- * Offset defines the blank space between the chart and the plot area.
- * This blank space is occupied by supporting elements like axes, legends, and brushes.
- *
- * The offset includes:
- *
- * - Margins
- * - Width and height of the axes
- * - Width and height of the legend
- * - Brush height
- *
- * If you are interested in the margin alone, use {@link useMargin} instead.
- *
- * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.
- *
- * It is also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the numbers will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Offset of the chart in pixels, or undefined if used outside a chart context.
- */
-export var useOffset = () => {
-  return useAppSelector(selectChartOffset);
-};
-
-/**
- * Plot area is the area where the actual chart data is rendered.
- * This means: bars, lines, scatter points, etc.
- *
- * The plot area is calculated based on the chart dimensions and the offset.
- *
- * Plot area `width` and `height` are the dimensions in pixels;
- * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.
- *
- * They are also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the plot area dimensions will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.
- */
-export var usePlotArea = () => {
-  return useAppSelector(selectPlotArea);
-};
-
-/**
- * Returns the currently active data points being displayed in the Tooltip.
- * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.
- *
- * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.
- * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.
- *
- * Data point is whatever you pass as an input to the chart using the `data={}` prop.
- *
- * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)
- * and tooltip with `shared={true}` will display all items at the same time.
- *
- * Returns undefined when used outside a chart context.
- *
- * @returns Data points that are currently visible in a Tooltip
- */
-export var useActiveTooltipDataPoints = () => {
-  return useAppSelector(selectActiveTooltipDataPoints);
-};
-
-/**
- * Returns the calculated domain of an X-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the XAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,
- * and the full domain will be returned if the hook is used inside a Brush context.
- *
- * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.
- * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-export var useXAxisDomain = function useXAxisDomain() {
-  var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
-  var isPanorama = useIsPanorama();
-  return useAppSelector(state => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));
-};
-
-/**
- * Returns the calculated domain of a Y-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the YAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * Does not interact with Brushes, as Y-axes do not support brushing.
- *
- * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.
- * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-export var useYAxisDomain = function useYAxisDomain() {
-  var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
-  var isPanorama = useIsPanorama();
-  return useAppSelector(state => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));
-};
-
-/**
- * Returns true if the {@link Tooltip} is currently active (visible).
- *
- * Returns false if the Tooltip is not active or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {boolean} True if the Tooltip is active, false otherwise.
- * @since 3.7
- */
-export var useIsTooltipActive = () => {
-  var _useAppSelector;
-  return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null && _useAppSelector !== void 0 ? _useAppSelector : false;
-};
-
-/**
- * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.
- * @since 3.7
- */
-export var useActiveTooltipCoordinate = () => {
-  var coordinate = useAppSelector(selectActiveTooltipCoordinate);
-  if (coordinate == null) {
-    return undefined;
-  }
-  return {
-    x: coordinate.x,
-    y: coordinate.y
-  };
-};
Index: de_modules/recharts/es6/index.js
===================================================================
--- node_modules/recharts/es6/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-// "export type" declarations on separate lines are in use
-// to workaround babel issue(s) 11465 12578
-//
-
-// see https://github.com/babel/babel/issues/11464#issuecomment-617606898
-export { Surface } from './container/Surface';
-export { Layer } from './container/Layer';
-export { Legend } from './component/Legend';
-export { DefaultLegendContent } from './component/DefaultLegendContent';
-export { Tooltip } from './component/Tooltip';
-export { DefaultTooltipContent } from './component/DefaultTooltipContent';
-export { ResponsiveContainer } from './component/ResponsiveContainer';
-export { Cell } from './component/Cell';
-export { Text } from './component/Text';
-export { Label } from './component/Label';
-export { LabelList } from './component/LabelList';
-export { Customized } from './component/Customized';
-export { Sector } from './shape/Sector';
-export { Curve } from './shape/Curve';
-export { Rectangle } from './shape/Rectangle';
-export { Polygon } from './shape/Polygon';
-export { Dot } from './shape/Dot';
-export { Cross } from './shape/Cross';
-export { Symbols } from './shape/Symbols';
-export { PolarGrid } from './polar/PolarGrid';
-export { PolarRadiusAxis } from './polar/PolarRadiusAxis';
-export { PolarAngleAxis } from './polar/PolarAngleAxis';
-export { Pie } from './polar/Pie';
-export { Radar } from './polar/Radar';
-export { RadialBar } from './polar/RadialBar';
-export { Brush } from './cartesian/Brush';
-export { ReferenceLine } from './cartesian/ReferenceLine';
-export { ReferenceDot } from './cartesian/ReferenceDot';
-export { ReferenceArea } from './cartesian/ReferenceArea';
-export { CartesianAxis } from './cartesian/CartesianAxis';
-export { CartesianGrid } from './cartesian/CartesianGrid';
-export { Line } from './cartesian/Line';
-export { Area } from './cartesian/Area';
-export { Bar } from './cartesian/Bar';
-export { BarStack } from './cartesian/BarStack';
-export { Scatter } from './cartesian/Scatter';
-export { XAxis } from './cartesian/XAxis';
-export { YAxis } from './cartesian/YAxis';
-export { ZAxis } from './cartesian/ZAxis';
-export { ErrorBar } from './cartesian/ErrorBar';
-export { LineChart } from './chart/LineChart';
-export { BarChart } from './chart/BarChart';
-export { PieChart } from './chart/PieChart';
-export { Treemap } from './chart/Treemap';
-export { Sankey } from './chart/Sankey';
-export { RadarChart } from './chart/RadarChart';
-export { ScatterChart } from './chart/ScatterChart';
-export { AreaChart } from './chart/AreaChart';
-export { RadialBarChart } from './chart/RadialBarChart';
-export { ComposedChart } from './chart/ComposedChart';
-export { SunburstChart } from './chart/SunburstChart';
-export { Funnel } from './cartesian/Funnel';
-export { FunnelChart } from './chart/FunnelChart';
-export { Trapezoid } from './shape/Trapezoid';
-export { Global } from './util/Global';
-export { ZIndexLayer } from './zIndex/ZIndexLayer';
-export { DefaultZIndexes } from './zIndex/DefaultZIndexes';
-
-/** export getNiceTickValues so this can be used as a replacement for what is in recharts-scale */
-export { getNiceTickValues } from './util/scale/getNiceTickValues';
-export { useActiveTooltipLabel, useOffset, usePlotArea, useActiveTooltipDataPoints, useXAxisDomain, useYAxisDomain, useIsTooltipActive, useActiveTooltipCoordinate } from './hooks';
-export { useChartHeight, useChartWidth, useMargin } from './context/chartLayoutContext';
Index: de_modules/recharts/es6/polar/Pie.js
===================================================================
--- node_modules/recharts/es6/polar/Pie.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,632 +1,0 @@
-var _excluded = ["key"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["id"],
-  _excluded4 = ["id"];
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useCallback, useMemo, useRef, useState } from 'react';
-import get from 'es-toolkit/compat/get';
-import { clsx } from 'clsx';
-import { selectPieLegend, selectPieSectors } from '../state/selectors/pieSelectors';
-import { useAppSelector } from '../state/hooks';
-import { Layer } from '../container/Layer';
-import { Curve } from '../shape/Curve';
-import { Text } from '../component/Text';
-import { Cell } from '../component/Cell';
-import { findAllByType } from '../util/ReactUtils';
-import { getMaxRadius, polarToCartesian } from '../util/PolarUtils';
-import { getPercentValue, interpolate, isNumber, mathSign } from '../util/DataUtils';
-import { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { Shape } from '../util/ActiveShapeUtils';
-import { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { selectActiveTooltipDataKey, selectActiveTooltipGraphicalItemId, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';
-import { SetPolarLegendPayload } from '../state/SetLegendPayload';
-import { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';
-import { useAnimationId } from '../util/useAnimationId';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetPolarGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { LabelListFromLabelProp, PolarLabelListContextProvider } from '../component/LabelList';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';
-
-/**
- * The `label` prop in Pie accepts a variety of alternatives.
- */
-
-/**
- * We spread the data object into the sector data item,
- * so we can't really know what is going to be inside.
- *
- * This type represents our best effort, but it all depends on the input data
- * and what is inside of it.
- *
- * https://github.com/recharts/recharts/issues/6380
- * https://github.com/recharts/recharts/discussions/6375
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-function SetPiePayloadLegend(props) {
-  var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);
-  var legendPayload = useAppSelector(state => selectPieLegend(state, props.id, cells));
-  if (legendPayload == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(SetPolarLegendPayload, {
-    legendPayload: legendPayload
-  });
-}
-var SetPieTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    sectors,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: sectors.map(p => p.tooltipPayload),
-    getPosition: index => {
-      var _sectors$Number;
-      return (_sectors$Number = sectors[Number(index)]) === null || _sectors$Number === void 0 ? void 0 : _sectors$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // why doesn't Pie support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-var getTextAnchor = (x, cx) => {
-  if (x > cx) {
-    return 'start';
-  }
-  if (x < cx) {
-    return 'end';
-  }
-  return 'middle';
-};
-var getOuterRadius = (dataPoint, outerRadius, maxPieRadius) => {
-  if (typeof outerRadius === 'function') {
-    return getPercentValue(outerRadius(dataPoint), maxPieRadius, maxPieRadius * 0.8);
-  }
-  return getPercentValue(outerRadius, maxPieRadius, maxPieRadius * 0.8);
-};
-var parseCoordinateOfPie = (pieSettings, offset, dataPoint) => {
-  var {
-    top,
-    left,
-    width,
-    height
-  } = offset;
-  var maxPieRadius = getMaxRadius(width, height);
-  var cx = left + getPercentValue(pieSettings.cx, width, width / 2);
-  var cy = top + getPercentValue(pieSettings.cy, height, height / 2);
-  var innerRadius = getPercentValue(pieSettings.innerRadius, maxPieRadius, 0);
-  var outerRadius = getOuterRadius(dataPoint, pieSettings.outerRadius, maxPieRadius);
-  var maxRadius = pieSettings.maxRadius || Math.sqrt(width * width + height * height) / 2;
-  return {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    maxRadius
-  };
-};
-var parseDeltaAngle = (startAngle, endAngle) => {
-  var sign = mathSign(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
-  return sign * deltaAngle;
-};
-var renderLabelLineItem = (option, props) => {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error we can't know if the type of props matches the element
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  var className = clsx('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : '');
-  // React doesn't like it when we spread a key property onto an element
-  var {
-      key
-    } = props,
-    otherProps = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement(Curve, _extends({}, otherProps, {
-    type: "linear",
-    className: className
-  }));
-};
-var renderLabelItem = (option, props, value) => {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  var label = value;
-  if (typeof option === 'function') {
-    label = option(props);
-    if (/*#__PURE__*/React.isValidElement(label)) {
-      return label;
-    }
-  }
-  var className = clsx('recharts-pie-label-text', getClassNameFromUnknown(option));
-  return /*#__PURE__*/React.createElement(Text, _extends({}, props, {
-    alignmentBaseline: "middle",
-    className: className
-  }), label);
-};
-function PieLabels(_ref2) {
-  var {
-    sectors,
-    props,
-    showLabels
-  } = _ref2;
-  var {
-    label,
-    labelLine,
-    dataKey
-  } = props;
-  if (!showLabels || !label || !sectors) {
-    return null;
-  }
-  var pieProps = svgPropertiesNoEvents(props);
-  var customLabelProps = svgPropertiesNoEventsFromUnknown(label);
-  var customLabelLineProps = svgPropertiesNoEventsFromUnknown(labelLine);
-  var offsetRadius = typeof label === 'object' && 'offsetRadius' in label && typeof label.offsetRadius === 'number' && label.offsetRadius || 20;
-  var labels = sectors.map((entry, i) => {
-    var midAngle = (entry.startAngle + entry.endAngle) / 2;
-    var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);
-    var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {
-      // @ts-expect-error customLabelProps is contributing unknown props
-      stroke: 'none'
-    }, customLabelProps), {}, {
-      index: i,
-      textAnchor: getTextAnchor(endPoint.x, entry.cx)
-    }, endPoint);
-    var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {
-      // @ts-expect-error customLabelLineProps is contributing unknown props
-      fill: 'none',
-      // @ts-expect-error customLabelLineProps is contributing unknown props
-      stroke: entry.fill
-    }, customLabelLineProps), {}, {
-      index: i,
-      points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],
-      key: 'line'
-    });
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: DefaultZIndexes.label,
-      key: "label-".concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(entry.midAngle, "-").concat(i)
-    }, /*#__PURE__*/React.createElement(Layer, null, labelLine && renderLabelLineItem(labelLine, lineProps), renderLabelItem(label, labelProps, getValueByDataKey(entry, dataKey))));
-  });
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-pie-labels"
-  }, labels);
-}
-function PieLabelList(_ref3) {
-  var {
-    sectors,
-    props,
-    showLabels
-  } = _ref3;
-  var {
-    label
-  } = props;
-  if (typeof label === 'object' && label != null && 'position' in label) {
-    return /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-      label: label
-    });
-  }
-  return /*#__PURE__*/React.createElement(PieLabels, {
-    sectors: sectors,
-    props: props,
-    showLabels: showLabels
-  });
-}
-function PieSectors(props) {
-  var {
-    sectors,
-    activeShape,
-    inactiveShape: inactiveShapeProp,
-    allOtherPieProps,
-    shape,
-    id
-  } = props;
-  var activeIndex = useAppSelector(selectActiveTooltipIndex);
-  var activeDataKey = useAppSelector(selectActiveTooltipDataKey);
-  var activeGraphicalItemId = useAppSelector(selectActiveTooltipGraphicalItemId);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherPieProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherPieProps, _excluded2);
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherPieProps.dataKey, id);
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherPieProps.dataKey, id);
-  if (sectors == null || sectors.length === 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, sectors.map((entry, i) => {
-    if ((entry === null || entry === void 0 ? void 0 : entry.startAngle) === 0 && (entry === null || entry === void 0 ? void 0 : entry.endAngle) === 0 && sectors.length !== 1) return null;
-
-    // For Pie charts, when multiple Pies share the same dataKey, we need to ensure only the hovered Pie's sector is active.
-    // We do this by checking if the active graphical item ID matches this Pie's ID.
-    var graphicalItemMatches = activeGraphicalItemId == null || activeGraphicalItemId === id;
-    var isActive = String(i) === activeIndex && (activeDataKey == null || allOtherPieProps.dataKey === activeDataKey) && graphicalItemMatches;
-    var inactiveShape = activeIndex ? inactiveShapeProp : null;
-    var sectorOptions = activeShape && isActive ? activeShape : inactiveShape;
-    var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {
-      stroke: entry.stroke,
-      tabIndex: -1,
-      [DATA_ITEM_INDEX_ATTRIBUTE_NAME]: i,
-      [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: id
-    });
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      key: "sector-".concat(entry === null || entry === void 0 ? void 0 : entry.startAngle, "-").concat(entry === null || entry === void 0 ? void 0 : entry.endAngle, "-").concat(entry.midAngle, "-").concat(i),
-      tabIndex: -1,
-      className: "recharts-pie-sector"
-    }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(Shape, _extends({
-      option: shape !== null && shape !== void 0 ? shape : sectorOptions,
-      index: i,
-      shapeType: "sector",
-      isActive: isActive
-    }, sectorProps)));
-  }));
-}
-export function computePieSectors(_ref4) {
-  var _pieSettings$paddingA;
-  var {
-    pieSettings,
-    displayedData,
-    cells,
-    offset
-  } = _ref4;
-  var {
-    cornerRadius,
-    startAngle,
-    endAngle,
-    dataKey,
-    nameKey,
-    tooltipType
-  } = pieSettings;
-  var minAngle = Math.abs(pieSettings.minAngle);
-  var deltaAngle = parseDeltaAngle(startAngle, endAngle);
-  var absDeltaAngle = Math.abs(deltaAngle);
-  var paddingAngle = displayedData.length <= 1 ? 0 : (_pieSettings$paddingA = pieSettings.paddingAngle) !== null && _pieSettings$paddingA !== void 0 ? _pieSettings$paddingA : 0;
-  var notZeroItemCount = displayedData.filter(entry => getValueByDataKey(entry, dataKey, 0) !== 0).length;
-  var totalPaddingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;
-  var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPaddingAngle;
-  var sum = displayedData.reduce((result, entry) => {
-    var val = getValueByDataKey(entry, dataKey, 0);
-    return result + (isNumber(val) ? val : 0);
-  }, 0);
-  var sectors;
-  if (sum > 0) {
-    var prev;
-    sectors = displayedData.map((entry, i) => {
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      var val = getValueByDataKey(entry, dataKey, 0);
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      var name = getValueByDataKey(entry, nameKey, i);
-      var coordinate = parseCoordinateOfPie(pieSettings, offset, entry);
-      var percent = (isNumber(val) ? val : 0) / sum;
-      var tempStartAngle;
-
-      // @ts-expect-error can't spread unknown
-      var entryWithCellInfo = _objectSpread(_objectSpread({}, entry), cells && cells[i] && cells[i].props);
-      if (i) {
-        tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);
-      } else {
-        tempStartAngle = startAngle;
-      }
-      var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);
-      var midAngle = (tempStartAngle + tempEndAngle) / 2;
-      var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;
-      var tooltipPayload = [{
-        name,
-        value: val,
-        payload: entryWithCellInfo,
-        dataKey,
-        type: tooltipType,
-        graphicalItemId: pieSettings.id
-      }];
-      var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);
-      prev = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieSettings.presentationProps), {}, {
-        percent,
-        cornerRadius: typeof cornerRadius === 'string' ? parseFloat(cornerRadius) : cornerRadius,
-        name,
-        tooltipPayload,
-        midAngle,
-        middleRadius,
-        tooltipPosition
-      }, entryWithCellInfo), coordinate), {}, {
-        value: val,
-        dataKey,
-        startAngle: tempStartAngle,
-        endAngle: tempEndAngle,
-        payload: entryWithCellInfo,
-        paddingAngle: mathSign(deltaAngle) * paddingAngle
-      });
-      return prev;
-    });
-  }
-  return sectors;
-}
-function PieLabelListProvider(_ref5) {
-  var {
-    showLabels,
-    sectors,
-    children
-  } = _ref5;
-  var labelListEntries = useMemo(() => {
-    if (!showLabels || !sectors) {
-      return [];
-    }
-    return sectors.map(entry => ({
-      value: entry.value,
-      payload: entry.payload,
-      clockWise: false,
-      parentViewBox: undefined,
-      viewBox: {
-        cx: entry.cx,
-        cy: entry.cy,
-        innerRadius: entry.innerRadius,
-        outerRadius: entry.outerRadius,
-        startAngle: entry.startAngle,
-        endAngle: entry.endAngle,
-        clockWise: false
-      },
-      fill: entry.fill
-    }));
-  }, [sectors, showLabels]);
-  return /*#__PURE__*/React.createElement(PolarLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function SectorsWithAnimation(_ref6) {
-  var {
-    props,
-    previousSectorsRef,
-    id
-  } = _ref6;
-  var {
-    sectors,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    activeShape,
-    inactiveShape,
-    onAnimationStart,
-    onAnimationEnd
-  } = props;
-  var animationId = useAnimationId(props, 'recharts-pie-');
-  var prevSectors = previousSectorsRef.current;
-  var [isAnimating, setIsAnimating] = useState(false);
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(PieLabelListProvider, {
-    showLabels: !isAnimating,
-    sectors: sectors
-  }, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd,
-    key: animationId
-  }, t => {
-    var _first$startAngle;
-    var stepData = [];
-    var first = sectors && sectors[0];
-    var curAngle = (_first$startAngle = first === null || first === void 0 ? void 0 : first.startAngle) !== null && _first$startAngle !== void 0 ? _first$startAngle : 0;
-    sectors === null || sectors === void 0 || sectors.forEach((entry, index) => {
-      var prev = prevSectors && prevSectors[index];
-      var paddingAngle = index > 0 ? get(entry, 'paddingAngle', 0) : 0;
-      if (prev) {
-        var angle = interpolate(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle, t);
-        var latest = _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: curAngle + paddingAngle,
-          endAngle: curAngle + angle + paddingAngle
-        });
-        stepData.push(latest);
-        curAngle = latest.endAngle;
-      } else {
-        var {
-          endAngle,
-          startAngle
-        } = entry;
-        var deltaAngle = interpolate(0, endAngle - startAngle, t);
-        var _latest = _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: curAngle + paddingAngle,
-          endAngle: curAngle + deltaAngle + paddingAngle
-        });
-        stepData.push(_latest);
-        curAngle = _latest.endAngle;
-      }
-    });
-
-    // eslint-disable-next-line no-param-reassign
-    previousSectorsRef.current = stepData;
-    return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(PieSectors, {
-      sectors: stepData,
-      activeShape: activeShape,
-      inactiveShape: inactiveShape,
-      allOtherPieProps: props,
-      shape: props.shape,
-      id: id
-    }));
-  }), /*#__PURE__*/React.createElement(PieLabelList, {
-    showLabels: !isAnimating,
-    sectors: sectors,
-    props: props
-  }), props.children);
-}
-export var defaultPieProps = {
-  animationBegin: 400,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  cx: '50%',
-  cy: '50%',
-  dataKey: 'value',
-  endAngle: 360,
-  fill: '#808080',
-  hide: false,
-  innerRadius: 0,
-  isAnimationActive: 'auto',
-  label: false,
-  labelLine: true,
-  legendType: 'rect',
-  minAngle: 0,
-  nameKey: 'name',
-  outerRadius: '80%',
-  paddingAngle: 0,
-  rootTabIndex: 0,
-  startAngle: 0,
-  stroke: '#fff',
-  zIndex: DefaultZIndexes.area
-};
-function PieImpl(props) {
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded3);
-  var {
-    hide,
-    className,
-    rootTabIndex
-  } = props;
-  var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);
-  var sectors = useAppSelector(state => selectPieSectors(state, id, cells));
-  var previousSectorsRef = useRef(null);
-  var layerClass = clsx('recharts-pie', className);
-  if (hide || sectors == null) {
-    previousSectorsRef.current = null;
-    return /*#__PURE__*/React.createElement(Layer, {
-      tabIndex: rootTabIndex,
-      className: layerClass
-    });
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(SetPieTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    sectors: sectors,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(Layer, {
-    tabIndex: rootTabIndex,
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(SectorsWithAnimation, {
-    props: _objectSpread(_objectSpread({}, propsWithoutId), {}, {
-      sectors
-    }),
-    previousSectorsRef: previousSectorsRef,
-    id: id
-  })));
-}
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export function Pie(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultPieProps);
-  var {
-      id: externalId
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded4);
-  var presentationProps = svgPropertiesNoEvents(propsWithoutId);
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: externalId,
-    type: "pie"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {
-    type: "pie",
-    id: id,
-    data: propsWithoutId.data,
-    dataKey: propsWithoutId.dataKey,
-    hide: propsWithoutId.hide,
-    angleAxisId: 0,
-    radiusAxisId: 0,
-    name: propsWithoutId.name,
-    nameKey: propsWithoutId.nameKey,
-    tooltipType: propsWithoutId.tooltipType,
-    legendType: propsWithoutId.legendType,
-    fill: propsWithoutId.fill,
-    cx: propsWithoutId.cx,
-    cy: propsWithoutId.cy,
-    startAngle: propsWithoutId.startAngle,
-    endAngle: propsWithoutId.endAngle,
-    paddingAngle: propsWithoutId.paddingAngle,
-    minAngle: propsWithoutId.minAngle,
-    innerRadius: propsWithoutId.innerRadius,
-    outerRadius: propsWithoutId.outerRadius,
-    cornerRadius: propsWithoutId.cornerRadius,
-    presentationProps: presentationProps,
-    maxRadius: props.maxRadius
-  }), /*#__PURE__*/React.createElement(SetPiePayloadLegend, _extends({}, propsWithoutId, {
-    id: id
-  })), /*#__PURE__*/React.createElement(PieImpl, _extends({}, propsWithoutId, {
-    id: id
-  }))));
-}
-Pie.displayName = 'Pie';
Index: de_modules/recharts/es6/polar/PolarAngleAxis.js
===================================================================
--- node_modules/recharts/es6/polar/PolarAngleAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,278 +1,0 @@
-var _excluded = ["children", "type"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useEffect, useMemo } from 'react';
-import { clsx } from 'clsx';
-import { Layer } from '../container/Layer';
-import { Dot } from '../shape/Dot';
-import { Polygon } from '../shape/Polygon';
-import { Text } from '../component/Text';
-import { adaptEventsOfChild } from '../util/types';
-import { degreeToRadian, polarToCartesian } from '../util/PolarUtils';
-import { addAngleAxis, removeAngleAxis } from '../state/polarAxisSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectPolarAngleAxisTicks, selectPolarAxisScale } from '../state/selectors/polarScaleSelectors';
-import { selectAngleAxis, selectPolarViewBox } from '../state/selectors/polarAxisSelectors';
-import { defaultPolarAngleAxisProps } from './defaultPolarAngleAxisProps';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { usePolarChartLayout } from '../context/chartLayoutContext';
-import { noop } from '../util/DataUtils';
-import { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';
-import { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';
-var eps = 1e-5;
-var COS_45 = Math.cos(degreeToRadian(45));
-var AXIS_TYPE = 'angleAxis';
-function SetAngleAxisSettings(props) {
-  var dispatch = useAppDispatch();
-  var layout = usePolarChartLayout();
-  var settings = useMemo(() => {
-    var {
-        children,
-        type: typeFromProps
-      } = props,
-      rest = _objectWithoutProperties(props, _excluded);
-    var evaluatedType = getAxisTypeBasedOnLayout(layout, 'angleAxis', typeFromProps);
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, rest), {}, {
-      type: evaluatedType
-    });
-  }, [props, layout]);
-  var synchronizedSettings = useAppSelector(state => selectAngleAxis(state, settings === null || settings === void 0 ? void 0 : settings.id));
-  var settingsAreSynchronized = settings === synchronizedSettings;
-  useEffect(() => {
-    if (settings == null) {
-      return noop;
-    }
-    dispatch(addAngleAxis(settings));
-    return () => {
-      dispatch(removeAngleAxis(settings));
-    };
-  }, [dispatch, settings]);
-  if (settingsAreSynchronized) {
-    return props.children;
-  }
-  return null;
-}
-
-/**
- * Calculate the coordinate of line endpoint
- * @param data The data if there are ticks
- * @param props axis settings
- * @return (x1, y1): The point close to text,
- *         (x2, y2): The point close to axis
- */
-var getTickLineCoord = (data, props) => {
-  var {
-    cx,
-    cy,
-    radius,
-    orientation,
-    tickSize
-  } = props;
-  var tickLineSize = tickSize || 8;
-  var p1 = polarToCartesian(cx, cy, radius, data.coordinate);
-  var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);
-  return {
-    x1: p1.x,
-    y1: p1.y,
-    x2: p2.x,
-    y2: p2.y
-  };
-};
-
-/**
- * Get the text-anchor of each tick
- * @param data Data of ticks
- * @param orientation of the axis ticks
- * @return text-anchor
- */
-var getTickTextAnchor = (data, orientation) => {
-  var cos = Math.cos(degreeToRadian(-data.coordinate));
-  if (cos > eps) {
-    return orientation === 'outer' ? 'start' : 'end';
-  }
-  if (cos < -eps) {
-    return orientation === 'outer' ? 'end' : 'start';
-  }
-  return 'middle';
-};
-
-/**
- * Get the text vertical anchor of each tick
- * @param data Data of a tick
- * @return text vertical anchor
- */
-var getTickTextVerticalAnchor = data => {
-  var cos = Math.cos(degreeToRadian(-data.coordinate));
-  var sin = Math.sin(degreeToRadian(-data.coordinate));
-
-  // handle top and bottom sectors: 90±45deg and 270±45deg
-  if (Math.abs(cos) <= COS_45) {
-    // sin > 0: top sector, sin < 0: bottom sector
-    return sin > 0 ? 'start' : 'end';
-  }
-  return 'middle';
-};
-var AxisLine = props => {
-  var {
-    cx,
-    cy,
-    radius,
-    axisLineType,
-    axisLine,
-    ticks
-  } = props;
-  if (!axisLine) {
-    return null;
-  }
-  var axisLineProps = _objectSpread(_objectSpread({}, svgPropertiesNoEvents(props)), {}, {
-    fill: 'none'
-  }, svgPropertiesNoEvents(axisLine));
-  if (axisLineType === 'circle') {
-    // @ts-expect-error wrong SVG element type
-    return /*#__PURE__*/React.createElement(Dot, _extends({
-      className: "recharts-polar-angle-axis-line"
-    }, axisLineProps, {
-      cx: cx,
-      cy: cy,
-      r: radius
-    }));
-  }
-  var points = ticks.map(entry => polarToCartesian(cx, cy, radius, entry.coordinate));
-
-  // @ts-expect-error wrong SVG element type
-  return /*#__PURE__*/React.createElement(Polygon, _extends({
-    className: "recharts-polar-angle-axis-line"
-  }, axisLineProps, {
-    points: points
-  }));
-};
-var TickItemText = _ref => {
-  var {
-    tick,
-    tickProps,
-    value
-  } = _ref;
-  if (!tick) {
-    return null;
-  }
-  if (/*#__PURE__*/React.isValidElement(tick)) {
-    return /*#__PURE__*/React.cloneElement(tick, tickProps);
-  }
-  if (typeof tick === 'function') {
-    return tick(tickProps);
-  }
-  return /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {
-    className: "recharts-polar-angle-axis-tick-value"
-  }), value);
-};
-var Ticks = props => {
-  var {
-    tick,
-    tickLine,
-    tickFormatter,
-    stroke,
-    ticks
-  } = props;
-  var axisProps = svgPropertiesNoEvents(props);
-  var customTickProps = svgPropertiesNoEventsFromUnknown(tick);
-  var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
-    fill: 'none'
-  }, svgPropertiesNoEvents(tickLine));
-  var items = ticks.map((entry, i) => {
-    var lineCoord = getTickLineCoord(entry, props);
-    var textAnchor = getTickTextAnchor(entry, props.orientation);
-    var verticalAnchor = getTickTextVerticalAnchor(entry);
-    var tickProps = _objectSpread(_objectSpread(_objectSpread({}, axisProps), {}, {
-      // @ts-expect-error customTickProps is contributing unknown props
-      textAnchor,
-      verticalAnchor,
-      // @ts-expect-error customTickProps is contributing unknown props
-      stroke: 'none',
-      // @ts-expect-error customTickProps is contributing unknown props
-      fill: stroke
-    }, customTickProps), {}, {
-      index: i,
-      payload: entry,
-      x: lineCoord.x2,
-      y: lineCoord.y2
-    });
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      className: clsx('recharts-polar-angle-axis-tick', getClassNameFromUnknown(tick)),
-      key: "tick-".concat(entry.coordinate)
-    }, adaptEventsOfChild(props, entry, i)), tickLine && /*#__PURE__*/React.createElement("line", _extends({
-      className: "recharts-polar-angle-axis-tick-line"
-    }, tickLineProps, lineCoord)), /*#__PURE__*/React.createElement(TickItemText, {
-      tick: tick,
-      tickProps: tickProps,
-      value: tickFormatter ? tickFormatter(entry.value, i) : entry.value
-    }));
-  });
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-polar-angle-axis-ticks"
-  }, items);
-};
-export var PolarAngleAxisWrapper = defaultsAndInputs => {
-  var {
-    angleAxisId
-  } = defaultsAndInputs;
-  var viewBox = useAppSelector(selectPolarViewBox);
-  var scale = useAppSelector(state => selectPolarAxisScale(state, 'angleAxis', angleAxisId));
-  var isPanorama = useIsPanorama();
-  var ticks = useAppSelector(state => selectPolarAngleAxisTicks(state, 'angleAxis', angleAxisId, isPanorama));
-  if (viewBox == null || !ticks || !ticks.length || scale == null) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread(_objectSpread({}, defaultsAndInputs), {}, {
-    scale
-  }, viewBox), {}, {
-    radius: viewBox.outerRadius,
-    ticks
-  });
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-polar-angle-axis', AXIS_TYPE, props.className)
-  }, /*#__PURE__*/React.createElement(AxisLine, props), /*#__PURE__*/React.createElement(Ticks, props)));
-};
-
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-export function PolarAngleAxis(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultPolarAngleAxisProps);
-  return /*#__PURE__*/React.createElement(SetAngleAxisSettings, {
-    id: props.angleAxisId,
-    scale: props.scale,
-    type: props.type,
-    dataKey: props.dataKey,
-    unit: undefined,
-    name: props.name,
-    allowDuplicatedCategory: false // Ignoring the prop on purpose because axis calculation behaves as if it was false and Tooltip requires it to be true.
-    ,
-    allowDataOverflow: false,
-    reversed: props.reversed,
-    includeHidden: false,
-    allowDecimals: props.allowDecimals,
-    tickCount: props.tickCount
-    // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?
-    ,
-    ticks: props.ticks,
-    tick: props.tick,
-    domain: props.domain
-  }, /*#__PURE__*/React.createElement(PolarAngleAxisWrapper, props));
-}
-PolarAngleAxis.displayName = 'PolarAngleAxis';
Index: de_modules/recharts/es6/polar/PolarGrid.js
===================================================================
--- node_modules/recharts/es6/polar/PolarGrid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,208 +1,0 @@
-var _excluded = ["gridType", "radialLines", "angleAxisId", "radiusAxisId", "cx", "cy", "innerRadius", "outerRadius", "polarAngles", "polarRadius", "zIndex"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { clsx } from 'clsx';
-import * as React from 'react';
-import { polarToCartesian } from '../util/PolarUtils';
-import { useAppSelector } from '../state/hooks';
-import { selectPolarGridAngles, selectPolarGridRadii } from '../state/selectors/polarGridSelectors';
-import { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-var getPolygonPath = (radius, cx, cy, polarAngles) => {
-  var path = '';
-  polarAngles.forEach((angle, i) => {
-    var point = polarToCartesian(cx, cy, radius, angle);
-    if (i) {
-      path += "L ".concat(point.x, ",").concat(point.y);
-    } else {
-      path += "M ".concat(point.x, ",").concat(point.y);
-    }
-  });
-  path += 'Z';
-  return path;
-};
-
-// Draw axis of radial line
-var PolarAngles = props => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    polarAngles,
-    radialLines
-  } = props;
-  if (!polarAngles || !polarAngles.length || !radialLines) {
-    return null;
-  }
-  var polarAnglesProps = _objectSpread({
-    stroke: '#ccc'
-  }, svgPropertiesNoEvents(props));
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid-angle"
-  }, polarAngles.map(entry => {
-    var start = polarToCartesian(cx, cy, innerRadius, entry);
-    var end = polarToCartesian(cx, cy, outerRadius, entry);
-    return /*#__PURE__*/React.createElement("line", _extends({
-      key: "line-".concat(entry)
-    }, polarAnglesProps, {
-      x1: start.x,
-      y1: start.y,
-      x2: end.x,
-      y2: end.y
-    }));
-  }));
-};
-
-// Draw concentric circles
-var ConcentricCircle = props => {
-  var {
-    cx,
-    cy,
-    radius
-  } = props;
-  var concentricCircleProps = _objectSpread({
-    stroke: '#ccc',
-    fill: 'none'
-  }, svgPropertiesNoEvents(props));
-  return (
-    /*#__PURE__*/
-    // @ts-expect-error wrong SVG element type
-    React.createElement("circle", _extends({}, concentricCircleProps, {
-      className: clsx('recharts-polar-grid-concentric-circle', props.className),
-      cx: cx,
-      cy: cy,
-      r: radius
-    }))
-  );
-};
-
-// Draw concentric polygons
-var ConcentricPolygon = props => {
-  var {
-    radius
-  } = props;
-  var concentricPolygonProps = _objectSpread({
-    stroke: '#ccc',
-    fill: 'none'
-  }, svgPropertiesNoEvents(props));
-  return /*#__PURE__*/React.createElement("path", _extends({}, concentricPolygonProps, {
-    className: clsx('recharts-polar-grid-concentric-polygon', props.className),
-    d: getPolygonPath(radius, props.cx, props.cy, props.polarAngles)
-  }));
-};
-
-// Draw concentric axis
-var ConcentricGridPath = props => {
-  var {
-    polarRadius,
-    gridType
-  } = props;
-  if (!polarRadius || !polarRadius.length) {
-    return null;
-  }
-  var maxPolarRadius = Math.max(...polarRadius);
-  var renderBackground = props.fill && props.fill !== 'none';
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid-concentric"
-  }, renderBackground && gridType === 'circle' && /*#__PURE__*/React.createElement(ConcentricCircle, _extends({}, props, {
-    radius: maxPolarRadius
-  })), renderBackground && gridType !== 'circle' && /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({}, props, {
-    radius: maxPolarRadius
-  })), polarRadius.map((entry, i) => {
-    var key = i;
-    if (gridType === 'circle') {
-      return /*#__PURE__*/React.createElement(ConcentricCircle, _extends({
-        key: key
-      }, props, {
-        fill: "none",
-        radius: entry
-      }));
-    }
-    return /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({
-      key: key
-    }, props, {
-      fill: "none",
-      radius: entry
-    }));
-  }));
-};
-export var defaultPolarGridProps = {
-  angleAxisId: 0,
-  radiusAxisId: 0,
-  gridType: 'polygon',
-  radialLines: true,
-  zIndex: DefaultZIndexes.grid
-};
-
-/**
- * @consumes PolarViewBoxContext
- */
-export var PolarGrid = outsideProps => {
-  var _ref, _polarViewBox$cx, _ref2, _polarViewBox$cy, _ref3, _polarViewBox$innerRa, _ref4, _polarViewBox$outerRa;
-  var _resolveDefaultProps = resolveDefaultProps(outsideProps, defaultPolarGridProps),
-    {
-      gridType,
-      radialLines,
-      angleAxisId,
-      radiusAxisId,
-      cx: cxFromOutside,
-      cy: cyFromOutside,
-      innerRadius: innerRadiusFromOutside,
-      outerRadius: outerRadiusFromOutside,
-      polarAngles: polarAnglesInput,
-      polarRadius: polarRadiusInput,
-      zIndex
-    } = _resolveDefaultProps,
-    inputs = _objectWithoutProperties(_resolveDefaultProps, _excluded);
-  var polarViewBox = useAppSelector(selectPolarViewBox);
-  var polarAnglesFromRedux = useAppSelector(state => selectPolarGridAngles(state, angleAxisId));
-  var polarRadiiFromRedux = useAppSelector(state => selectPolarGridRadii(state, radiusAxisId));
-  var polarAngles = Array.isArray(polarAnglesInput) ? polarAnglesInput : polarAnglesFromRedux;
-  var polarRadius = Array.isArray(polarRadiusInput) ? polarRadiusInput : polarRadiiFromRedux;
-  if (polarAngles == null || polarRadius == null) {
-    return null;
-  }
-  var props = _objectSpread({
-    cx: (_ref = (_polarViewBox$cx = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cx) !== null && _polarViewBox$cx !== void 0 ? _polarViewBox$cx : cxFromOutside) !== null && _ref !== void 0 ? _ref : 0,
-    cy: (_ref2 = (_polarViewBox$cy = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cy) !== null && _polarViewBox$cy !== void 0 ? _polarViewBox$cy : cyFromOutside) !== null && _ref2 !== void 0 ? _ref2 : 0,
-    innerRadius: (_ref3 = (_polarViewBox$innerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.innerRadius) !== null && _polarViewBox$innerRa !== void 0 ? _polarViewBox$innerRa : innerRadiusFromOutside) !== null && _ref3 !== void 0 ? _ref3 : 0,
-    outerRadius: (_ref4 = (_polarViewBox$outerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.outerRadius) !== null && _polarViewBox$outerRa !== void 0 ? _polarViewBox$outerRa : outerRadiusFromOutside) !== null && _ref4 !== void 0 ? _ref4 : 0,
-    polarAngles,
-    polarRadius,
-    zIndex
-  }, inputs);
-  var {
-    outerRadius
-  } = props;
-  if (outerRadius <= 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid"
-  }, /*#__PURE__*/React.createElement(ConcentricGridPath, _extends({
-    gridType: gridType,
-    radialLines: radialLines
-  }, props, {
-    polarAngles: polarAngles,
-    polarRadius: polarRadius
-  })), /*#__PURE__*/React.createElement(PolarAngles, _extends({
-    gridType: gridType,
-    radialLines: radialLines
-  }, props, {
-    polarAngles: polarAngles,
-    polarRadius: polarRadius
-  }))));
-};
-PolarGrid.displayName = 'PolarGrid';
Index: de_modules/recharts/es6/polar/PolarRadiusAxis.js
===================================================================
--- node_modules/recharts/es6/polar/PolarRadiusAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,228 +1,0 @@
-var _excluded = ["type"],
-  _excluded2 = ["cx", "cy", "angle", "axisLine"],
-  _excluded3 = ["angle", "tickFormatter", "stroke", "tick"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useEffect, useMemo } from 'react';
-import maxBy from 'es-toolkit/compat/maxBy';
-import minBy from 'es-toolkit/compat/minBy';
-import { clsx } from 'clsx';
-import { Text } from '../component/Text';
-import { PolarLabelContextProvider, PolarLabelFromLabelProp } from '../component/Label';
-import { Layer } from '../container/Layer';
-import { polarToCartesian } from '../util/PolarUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { addRadiusAxis, removeRadiusAxis } from '../state/polarAxisSlice';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectPolarAxisScale, selectPolarAxisTicks } from '../state/selectors/polarScaleSelectors';
-import { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';
-import { defaultPolarRadiusAxisProps } from './defaultPolarRadiusAxisProps';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { usePolarChartLayout } from '../context/chartLayoutContext';
-import { noop } from '../util/DataUtils';
-import { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';
-import { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';
-var AXIS_TYPE = 'radiusAxis';
-function SetRadiusAxisSettings(props) {
-  var dispatch = useAppDispatch();
-  var layout = usePolarChartLayout();
-  var settings = useMemo(() => {
-    var {
-        type: typeFromProps
-      } = props,
-      rest = _objectWithoutProperties(props, _excluded);
-    var evaluatedType = getAxisTypeBasedOnLayout(layout, 'radiusAxis', typeFromProps);
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, rest), {}, {
-      type: evaluatedType
-    });
-  }, [props, layout]);
-  useEffect(() => {
-    if (settings == null) {
-      return noop;
-    }
-    dispatch(addRadiusAxis(settings));
-    return () => {
-      dispatch(removeRadiusAxis(settings));
-    };
-  }, [dispatch, settings]);
-  return null;
-}
-
-/**
- * Calculate the coordinate of tick
- * @param coordinate The radius of tick
- * @param angle from props
- * @param cx from chart
- * @param cy from chart
- * @return (x, y)
- */
-var getTickValueCoord = (_ref, angle, cx, cy) => {
-  var {
-    coordinate
-  } = _ref;
-  return polarToCartesian(cx, cy, coordinate, angle);
-};
-var getTickTextAnchor = orientation => {
-  var textAnchor;
-  switch (orientation) {
-    case 'left':
-      textAnchor = 'end';
-      break;
-    case 'right':
-      textAnchor = 'start';
-      break;
-    default:
-      textAnchor = 'middle';
-      break;
-  }
-  return textAnchor;
-};
-var getViewBox = (angle, cx, cy, ticks) => {
-  var maxRadiusTick = maxBy(ticks, entry => entry.coordinate || 0);
-  var minRadiusTick = minBy(ticks, entry => entry.coordinate || 0);
-  return {
-    cx,
-    cy,
-    startAngle: angle,
-    endAngle: angle,
-    innerRadius: (minRadiusTick === null || minRadiusTick === void 0 ? void 0 : minRadiusTick.coordinate) || 0,
-    outerRadius: (maxRadiusTick === null || maxRadiusTick === void 0 ? void 0 : maxRadiusTick.coordinate) || 0,
-    clockWise: false
-  };
-};
-var renderAxisLine = (props, ticks) => {
-  var {
-      cx,
-      cy,
-      angle,
-      axisLine
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var extent = ticks.reduce((result, entry) => [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)], [Infinity, -Infinity]);
-  var point0 = polarToCartesian(cx, cy, extent[0], angle);
-  var point1 = polarToCartesian(cx, cy, extent[1], angle);
-  var axisLineProps = _objectSpread(_objectSpread(_objectSpread({}, svgPropertiesNoEvents(others)), {}, {
-    fill: 'none'
-  }, svgPropertiesNoEvents(axisLine)), {}, {
-    x1: point0.x,
-    y1: point0.y,
-    x2: point1.x,
-    y2: point1.y
-  });
-
-  // @ts-expect-error wrong SVG element type
-  return /*#__PURE__*/React.createElement("line", _extends({
-    className: "recharts-polar-radius-axis-line"
-  }, axisLineProps));
-};
-var renderTickItem = (option, tickProps, value) => {
-  var tickItem;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    tickItem = /*#__PURE__*/React.cloneElement(option, tickProps);
-  } else if (typeof option === 'function') {
-    tickItem = option(tickProps);
-  } else {
-    tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {
-      className: "recharts-polar-radius-axis-tick-value"
-    }), value);
-  }
-  return tickItem;
-};
-var renderTicks = (props, ticks) => {
-  var {
-      angle,
-      tickFormatter,
-      stroke,
-      tick
-    } = props,
-    others = _objectWithoutProperties(props, _excluded3);
-  var textAnchor = getTickTextAnchor(props.orientation);
-  var axisProps = svgPropertiesNoEvents(others);
-  var customTickProps = svgPropertiesNoEventsFromUnknown(tick);
-  var items = ticks.map((entry, i) => {
-    var coord = getTickValueCoord(entry, props.angle, props.cx, props.cy);
-    var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      textAnchor,
-      transform: "rotate(".concat(90 - angle, ", ").concat(coord.x, ", ").concat(coord.y, ")")
-    }, axisProps), {}, {
-      stroke: 'none',
-      fill: stroke
-    }, customTickProps), {}, {
-      index: i
-    }, coord), {}, {
-      payload: entry
-    });
-    return /*#__PURE__*/React.createElement(Layer, _extends({
-      className: clsx('recharts-polar-radius-axis-tick', getClassNameFromUnknown(tick)),
-      key: "tick-".concat(entry.coordinate)
-    }, adaptEventsOfChild(props, entry, i)), renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));
-  });
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-polar-radius-axis-ticks"
-  }, items);
-};
-export var PolarRadiusAxisWrapper = defaultsAndInputs => {
-  var {
-    radiusAxisId
-  } = defaultsAndInputs;
-  var viewBox = useAppSelector(selectPolarViewBox);
-  var scale = useAppSelector(state => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId));
-  var ticks = useAppSelector(state => selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false));
-  if (viewBox == null || !ticks || !ticks.length || scale == null) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread({}, defaultsAndInputs), {}, {
-    scale
-  }, viewBox);
-  var {
-    tick,
-    axisLine
-  } = props;
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: clsx('recharts-polar-radius-axis', AXIS_TYPE, props.className)
-  }, axisLine && renderAxisLine(props, ticks), tick && renderTicks(props, ticks), /*#__PURE__*/React.createElement(PolarLabelContextProvider, getViewBox(props.angle, props.cx, props.cy, ticks), /*#__PURE__*/React.createElement(PolarLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-};
-
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-export function PolarRadiusAxis(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultPolarRadiusAxisProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadiusAxisSettings, {
-    domain: props.domain,
-    id: props.radiusAxisId,
-    scale: props.scale,
-    type: props.type,
-    dataKey: props.dataKey,
-    unit: undefined,
-    name: props.name,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    allowDataOverflow: props.allowDataOverflow,
-    reversed: props.reversed,
-    includeHidden: props.includeHidden,
-    allowDecimals: props.allowDecimals
-    // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?
-    ,
-    ticks: props.ticks,
-    tickCount: props.tickCount,
-    tick: props.tick
-  }), /*#__PURE__*/React.createElement(PolarRadiusAxisWrapper, props));
-}
-PolarRadiusAxis.displayName = 'PolarRadiusAxis';
Index: de_modules/recharts/es6/polar/Radar.js
===================================================================
--- node_modules/recharts/es6/polar/Radar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,451 +1,0 @@
-var _excluded = ["id"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { useCallback, useRef, useState } from 'react';
-import last from 'es-toolkit/compat/last';
-import { clsx } from 'clsx';
-import { interpolate, isNullish, noop } from '../util/DataUtils';
-import { polarToCartesian } from '../util/PolarUtils';
-import { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
-import { Polygon } from '../shape/Polygon';
-import { Layer } from '../container/Layer';
-import { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';
-import { Dots } from '../component/Dots';
-import { ActivePoints } from '../component/ActivePoints';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { selectRadarPoints } from '../state/selectors/radarSelectors';
-import { useAppSelector } from '../state/hooks';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { SetPolarLegendPayload } from '../state/SetLegendPayload';
-import { useAnimationId } from '../util/useAnimationId';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetPolarGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-function getLegendItemColor(stroke, fill) {
-  return stroke && stroke !== 'none' ? stroke : fill;
-}
-var computeLegendPayloadFromRadarSectors = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: getLegendItemColor(stroke, fill),
-    value: getTooltipNameProp(name, dataKey),
-    payload: props
-  }];
-};
-var SetRadarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    /*
-     * I suppose this here _could_ return props.points
-     * because while Radar does not support item tooltip mode, it _could_ support it.
-     * But when I actually do return the points here, a defaultIndex test starts failing.
-     * So, undefined it is.
-     */
-    dataDefinedOnItem: undefined,
-    getPosition: noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      // RadarChart does not have nameKey unfortunately
-      dataKey,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: getLegendItemColor(stroke, fill),
-      unit: '',
-      // why doesn't Radar support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function RadarDotsWrapper(_ref2) {
-  var {
-    points,
-    props
-  } = _ref2;
-  var {
-    dot,
-    dataKey
-  } = props;
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var baseProps = svgPropertiesNoEvents(propsWithoutId);
-  return /*#__PURE__*/React.createElement(Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-radar-dots",
-    dotClassName: "recharts-radar-dot",
-    dataKey: dataKey,
-    baseProps: baseProps
-  });
-}
-export function computeRadarPoints(_ref3) {
-  var {
-    radiusAxis,
-    angleAxis,
-    displayedData,
-    dataKey,
-    bandSize
-  } = _ref3;
-  var {
-    cx,
-    cy
-  } = angleAxis;
-  var isRange = false;
-  var points = [];
-  var angleBandSize = angleAxis.type !== 'number' ? bandSize !== null && bandSize !== void 0 ? bandSize : 0 : 0;
-  displayedData.forEach((entry, i) => {
-    var _angleAxis$scale$map, _radiusAxis$scale$map;
-    var name = getValueByDataKey(entry, angleAxis.dataKey, i);
-    var value = getValueByDataKey(entry, dataKey);
-    var angle = ((_angleAxis$scale$map = angleAxis.scale.map(name)) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : 0) + angleBandSize;
-    var pointValue = Array.isArray(value) ? last(value) : value;
-    var radius = isNullish(pointValue) ? 0 : (_radiusAxis$scale$map = radiusAxis.scale.map(pointValue)) !== null && _radiusAxis$scale$map !== void 0 ? _radiusAxis$scale$map : 0;
-    if (Array.isArray(value) && value.length >= 2) {
-      isRange = true;
-    }
-    points.push(_objectSpread(_objectSpread({}, polarToCartesian(cx, cy, radius, angle)), {}, {
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      name,
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value,
-      cx,
-      cy,
-      radius,
-      angle,
-      payload: entry
-    }));
-  });
-  var baseLinePoints = [];
-  if (isRange) {
-    points.forEach(point => {
-      if (Array.isArray(point.value)) {
-        var _radiusAxis$scale$map2;
-        var baseValue = point.value[0];
-        var radius = isNullish(baseValue) ? 0 : (_radiusAxis$scale$map2 = radiusAxis.scale.map(baseValue)) !== null && _radiusAxis$scale$map2 !== void 0 ? _radiusAxis$scale$map2 : 0;
-        baseLinePoints.push(_objectSpread(_objectSpread({}, point), {}, {
-          radius
-        }, polarToCartesian(cx, cy, radius, point.angle)));
-      } else {
-        baseLinePoints.push(point);
-      }
-    });
-  }
-  return {
-    points,
-    isRange,
-    baseLinePoints
-  };
-}
-function RadarLabelListProvider(_ref4) {
-  var {
-    showLabels,
-    points,
-    children
-  } = _ref4;
-  /*
-   * Radar provides a Cartesian label list context. Do we want to also provide a polar label list context?
-   * That way, users can choose to use polar positions for the Radar labels.
-   */
-  // const labelListEntries: ReadonlyArray<PolarLabelListEntry> = points.map(
-  //   (point): PolarLabelListEntry => ({
-  //     value: point.value,
-  //     payload: point.payload,
-  //     parentViewBox: undefined,
-  //     clockWise: false,
-  //     viewBox: {
-  //       cx: point.cx,
-  //       cy: point.cy,
-  //       innerRadius: point.radius,
-  //       outerRadius: point.radius,
-  //       startAngle: point.angle,
-  //       endAngle: point.angle,
-  //       clockWise: false,
-  //     },
-  //   }),
-  // );
-
-  var labelListEntries = points.map(point => {
-    var _point$value;
-    var viewBox = {
-      x: point.x,
-      y: point.y,
-      width: 0,
-      lowerWidth: 0,
-      upperWidth: 0,
-      height: 0
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: (_point$value = point.value) !== null && _point$value !== void 0 ? _point$value : '',
-      payload: point.payload,
-      parentViewBox: undefined,
-      viewBox,
-      fill: undefined
-    });
-  });
-  return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticPolygon(_ref5) {
-  var {
-    points,
-    baseLinePoints,
-    props
-  } = _ref5;
-  if (points == null) {
-    return null;
-  }
-  var {
-    shape,
-    isRange,
-    connectNulls
-  } = props;
-  var handleMouseEnter = e => {
-    var {
-      onMouseEnter
-    } = props;
-    if (onMouseEnter) {
-      onMouseEnter(props, e);
-    }
-  };
-  var handleMouseLeave = e => {
-    var {
-      onMouseLeave
-    } = props;
-    if (onMouseLeave) {
-      onMouseLeave(props, e);
-    }
-  };
-  var radar;
-  if (/*#__PURE__*/React.isValidElement(shape)) {
-    radar = /*#__PURE__*/React.cloneElement(shape, _objectSpread(_objectSpread({}, props), {}, {
-      points
-    }));
-  } else if (typeof shape === 'function') {
-    radar = shape(_objectSpread(_objectSpread({}, props), {}, {
-      points
-    }));
-  } else {
-    radar = /*#__PURE__*/React.createElement(Polygon, _extends({}, svgPropertiesAndEvents(props), {
-      onMouseEnter: handleMouseEnter,
-      onMouseLeave: handleMouseLeave,
-      points: points,
-      baseLinePoints: isRange ? baseLinePoints : undefined,
-      connectNulls: connectNulls
-    }));
-  }
-  return /*#__PURE__*/React.createElement(Layer, {
-    className: "recharts-radar-polygon"
-  }, radar, /*#__PURE__*/React.createElement(RadarDotsWrapper, {
-    props: props,
-    points: points
-  }));
-}
-var interpolatePolarPoint = (prevPoints, prevPointsDiffFactor, t) => (entry, index) => {
-  var prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];
-  if (prev) {
-    return _objectSpread(_objectSpread({}, entry), {}, {
-      x: interpolate(prev.x, entry.x, t),
-      y: interpolate(prev.y, entry.y, t)
-    });
-  }
-  return _objectSpread(_objectSpread({}, entry), {}, {
-    x: interpolate(entry.cx, entry.x, t),
-    y: interpolate(entry.cy, entry.y, t)
-  });
-};
-function PolygonWithAnimation(_ref6) {
-  var {
-    props,
-    previousPointsRef,
-    previousBaseLinePointsRef
-  } = _ref6;
-  var {
-    points,
-    baseLinePoints,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var prevBaseLinePoints = previousBaseLinePointsRef.current;
-  var prevPointsDiffFactor = prevPoints ? prevPoints.length / points.length : 1;
-  var prevBaseLinePointsDiffFactor = prevBaseLinePoints ? prevBaseLinePoints.length / baseLinePoints.length : 1;
-  var animationId = useAnimationId(props, 'recharts-radar-');
-  var [isAnimating, setIsAnimating] = useState(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(RadarLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    key: "radar-".concat(animationId),
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart
-  }, t => {
-    var stepData = t === 1 ? points : points.map(interpolatePolarPoint(prevPoints, prevPointsDiffFactor, t));
-    var stepBaseLinePoints = t === 1 ? baseLinePoints : baseLinePoints === null || baseLinePoints === void 0 ? void 0 : baseLinePoints.map(interpolatePolarPoint(prevBaseLinePoints, prevBaseLinePointsDiffFactor, t));
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-      // eslint-disable-next-line no-param-reassign
-      previousBaseLinePointsRef.current = stepBaseLinePoints;
-    }
-    return /*#__PURE__*/React.createElement(StaticPolygon, {
-      points: stepData,
-      baseLinePoints: stepBaseLinePoints,
-      props: props
-    });
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderPolygon(props) {
-  var previousPointsRef = useRef(undefined);
-  var previousBaseLinePointsRef = useRef(undefined);
-  return /*#__PURE__*/React.createElement(PolygonWithAnimation, {
-    props: props,
-    previousPointsRef: previousPointsRef,
-    previousBaseLinePointsRef: previousBaseLinePointsRef
-  });
-}
-export var defaultRadarProps = {
-  activeDot: true,
-  angleAxisId: 0,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  dot: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  radiusAxisId: 0,
-  zIndex: DefaultZIndexes.area
-};
-function RadarWithState(props) {
-  var {
-    hide,
-    className,
-    points
-  } = props;
-  if (hide) {
-    return null;
-  }
-  var layerClass = clsx('recharts-radar', className);
-  return /*#__PURE__*/React.createElement(ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(Layer, {
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(RenderPolygon, props)), /*#__PURE__*/React.createElement(ActivePoints, {
-    points: points,
-    mainColor: getLegendItemColor(props.stroke, props.fill),
-    itemDataKey: props.dataKey,
-    activeDot: props.activeDot
-  }));
-}
-function RadarImpl(props) {
-  var isPanorama = useIsPanorama();
-  var radarPoints = useAppSelector(state => selectRadarPoints(state, props.radiusAxisId, props.angleAxisId, isPanorama, props.id));
-  if ((radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points) == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(RadarWithState, _extends({}, props, {
-    points: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points,
-    baseLinePoints: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.baseLinePoints,
-    isRange: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.isRange
-  }));
-}
-
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- */
-export function Radar(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultRadarProps);
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "radar"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {
-    type: "radar",
-    id: id,
-    data: undefined // Radar does not have data prop, why?
-    ,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    angleAxisId: props.angleAxisId,
-    radiusAxisId: props.radiusAxisId
-  }), /*#__PURE__*/React.createElement(SetPolarLegendPayload, {
-    legendPayload: computeLegendPayloadFromRadarSectors(props)
-  }), /*#__PURE__*/React.createElement(SetRadarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(RadarImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-Radar.displayName = 'Radar';
Index: de_modules/recharts/es6/polar/RadialBar.js
===================================================================
--- node_modules/recharts/es6/polar/RadialBar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,477 +1,0 @@
-var _excluded = ["shape", "activeShape", "cornerRadius", "id"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["value", "background"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { PureComponent, useCallback, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { parseCornerRadius, RadialBarSector } from '../util/RadialBarUtils';
-import { Layer } from '../container/Layer';
-import { findAllByType } from '../util/ReactUtils';
-import { LabelListFromLabelProp, PolarLabelListContextProvider } from '../component/LabelList';
-import { Cell } from '../component/Cell';
-import { interpolate, mathSign, noop } from '../util/DataUtils';
-import { getCateCoordinateOfBar, getNormalizedStackId, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';
-import { adaptEventsOfChild } from '../util/types';
-import { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';
-import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
-import { selectRadialBarLegendPayload, selectRadialBarSectors } from '../state/selectors/radialBarSelectors';
-import { useAppSelector } from '../state/hooks';
-import { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';
-import { SetPolarLegendPayload } from '../state/SetLegendPayload';
-import { useAnimationId } from '../util/useAnimationId';
-import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
-import { SetPolarGraphicalItem } from '../state/SetGraphicalItem';
-import { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexLayer } from '../zIndex/ZIndexLayer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-import { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';
-var STABLE_EMPTY_ARRAY = [];
-function RadialBarLabelListProvider(_ref) {
-  var {
-    showLabels,
-    sectors,
-    children
-  } = _ref;
-  var labelListEntries = sectors.map(sector => ({
-    value: sector.value,
-    payload: sector.payload,
-    parentViewBox: undefined,
-    clockWise: false,
-    viewBox: {
-      cx: sector.cx,
-      cy: sector.cy,
-      innerRadius: sector.innerRadius,
-      outerRadius: sector.outerRadius,
-      startAngle: sector.startAngle,
-      endAngle: sector.endAngle,
-      clockWise: false
-    },
-    fill: sector.fill
-  }));
-  return /*#__PURE__*/React.createElement(PolarLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function RadialBarSectors(_ref2) {
-  var {
-    sectors,
-    allOtherRadialBarProps,
-    showLabels
-  } = _ref2;
-  var {
-      shape,
-      activeShape,
-      cornerRadius,
-      id
-    } = allOtherRadialBarProps,
-    others = _objectWithoutProperties(allOtherRadialBarProps, _excluded);
-  var baseProps = svgPropertiesNoEvents(others);
-  var activeIndex = useAppSelector(selectActiveTooltipIndex);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherRadialBarProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherRadialBarProps, _excluded2);
-  var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherRadialBarProps.dataKey, id);
-  var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);
-  var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherRadialBarProps.dataKey, id);
-  if (sectors == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(RadialBarLabelListProvider, {
-    showLabels: showLabels,
-    sectors: sectors
-  }, sectors.map((entry, i) => {
-    var isActive = activeShape && activeIndex === String(i);
-    // @ts-expect-error the types need a bit of attention
-    var onMouseEnter = onMouseEnterFromContext(entry, i);
-    // @ts-expect-error the types need a bit of attention
-    var onMouseLeave = onMouseLeaveFromContext(entry, i);
-    // @ts-expect-error the types need a bit of attention
-    var onClick = onClickFromContext(entry, i);
-    var radialBarSectorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, baseProps), {}, {
-      cornerRadius: parseCornerRadius(cornerRadius)
-    }, entry), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {
-      onMouseEnter,
-      onMouseLeave,
-      onClick,
-      className: "recharts-radial-bar-sector ".concat(entry.className),
-      forceCornerRadius: others.forceCornerRadius,
-      cornerIsExternal: others.cornerIsExternal,
-      isActive,
-      option: isActive ? activeShape : shape
-    });
-    if (isActive) {
-      return /*#__PURE__*/React.createElement(ZIndexLayer, {
-        zIndex: DefaultZIndexes.activeBar,
-        key: "sector-".concat(entry.cx, "-").concat(entry.cy, "-").concat(entry.innerRadius, "-").concat(entry.outerRadius, "-").concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(i)
-      }, /*#__PURE__*/React.createElement(RadialBarSector, radialBarSectorProps));
-    }
-    return /*#__PURE__*/React.createElement(RadialBarSector, _extends({
-      key: "sector-".concat(entry.cx, "-").concat(entry.cy, "-").concat(entry.innerRadius, "-").concat(entry.outerRadius, "-").concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(i)
-    }, radialBarSectorProps));
-  }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {
-    label: allOtherRadialBarProps.label
-  }), allOtherRadialBarProps.children);
-}
-function SectorsWithAnimation(_ref3) {
-  var {
-    props,
-    previousSectorsRef
-  } = _ref3;
-  var {
-    sectors,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var animationId = useAnimationId(props, 'recharts-radialbar-');
-  var prevData = previousSectorsRef.current;
-  var [isAnimating, setIsAnimating] = useState(false);
-  var handleAnimationEnd = useCallback(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = useCallback(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? sectors : (sectors !== null && sectors !== void 0 ? sectors : STABLE_EMPTY_ARRAY).map((entry, index) => {
-      var prev = prevData && prevData[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: interpolate(prev.startAngle, entry.startAngle, t),
-          endAngle: interpolate(prev.endAngle, entry.endAngle, t)
-        });
-      }
-      var {
-        endAngle,
-        startAngle
-      } = entry;
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        endAngle: interpolate(startAngle, endAngle, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousSectorsRef.current = stepData !== null && stepData !== void 0 ? stepData : null;
-    }
-    return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(RadialBarSectors, {
-      sectors: stepData !== null && stepData !== void 0 ? stepData : STABLE_EMPTY_ARRAY,
-      allOtherRadialBarProps: props,
-      showLabels: !isAnimating
-    }));
-  });
-}
-function RenderSectors(props) {
-  var previousSectorsRef = useRef(null);
-  return /*#__PURE__*/React.createElement(SectorsWithAnimation, {
-    props: props,
-    previousSectorsRef: previousSectorsRef
-  });
-}
-function SetRadialBarPayloadLegend(props) {
-  var legendPayload = useAppSelector(state => selectRadialBarLegendPayload(state, props.legendType));
-  return /*#__PURE__*/React.createElement(SetPolarLegendPayload, {
-    legendPayload: legendPayload !== null && legendPayload !== void 0 ? legendPayload : []
-  });
-}
-var SetRadialBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref4 => {
-  var {
-    dataKey,
-    sectors,
-    stroke,
-    strokeWidth,
-    name,
-    hide,
-    fill,
-    tooltipType,
-    id
-  } = _ref4;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: sectors,
-    getPosition: noop,
-    settings: {
-      graphicalItemId: id,
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      // RadialBar does not have nameKey, why?
-      dataKey,
-      name: getTooltipNameProp(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '' // Why does RadialBar not support unit?
-    }
-  };
-  return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-class RadialBarWithState extends PureComponent {
-  renderBackground(sectors) {
-    if (sectors == null) {
-      return null;
-    }
-    var {
-      cornerRadius
-    } = this.props;
-    var backgroundProps = svgPropertiesNoEventsFromUnknown(this.props.background);
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: getZIndexFromUnknown(this.props.background, DefaultZIndexes.barBackground)
-    }, sectors.map((entry, i) => {
-      var {
-          value,
-          background
-        } = entry,
-        rest = _objectWithoutProperties(entry, _excluded3);
-      if (!background) {
-        return null;
-      }
-      var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
-        cornerRadius: parseCornerRadius(cornerRadius)
-      }, rest), {}, {
-        // @ts-expect-error backgroundProps is contributing unknown props
-        fill: '#eee'
-      }, background), backgroundProps), adaptEventsOfChild(this.props, entry, i)), {}, {
-        index: i,
-        className: clsx('recharts-radial-bar-background-sector', String(backgroundProps === null || backgroundProps === void 0 ? void 0 : backgroundProps.className)),
-        option: background,
-        isActive: false
-      });
-      return /*#__PURE__*/React.createElement(RadialBarSector, _extends({
-        key: "background-".concat(rest.cx, "-").concat(rest.cy, "-").concat(rest.innerRadius, "-").concat(rest.outerRadius, "-").concat(rest.startAngle, "-").concat(rest.endAngle, "-").concat(i)
-      }, props));
-    }));
-  }
-  render() {
-    var {
-      hide,
-      sectors,
-      className,
-      background
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = clsx('recharts-area', className);
-    return /*#__PURE__*/React.createElement(ZIndexLayer, {
-      zIndex: this.props.zIndex
-    }, /*#__PURE__*/React.createElement(Layer, {
-      className: layerClass
-    }, background && /*#__PURE__*/React.createElement(Layer, {
-      className: "recharts-radial-bar-background"
-    }, this.renderBackground(sectors)), /*#__PURE__*/React.createElement(Layer, {
-      className: "recharts-radial-bar-sectors"
-    }, /*#__PURE__*/React.createElement(RenderSectors, this.props))));
-  }
-}
-function RadialBarImpl(props) {
-  var _useAppSelector;
-  var cells = findAllByType(props.children, Cell);
-  var radialBarSettings = {
-    data: undefined,
-    hide: false,
-    id: props.id,
-    dataKey: props.dataKey,
-    minPointSize: props.minPointSize,
-    stackId: getNormalizedStackId(props.stackId),
-    maxBarSize: props.maxBarSize,
-    barSize: props.barSize,
-    type: 'radialBar',
-    angleAxisId: props.angleAxisId,
-    radiusAxisId: props.radiusAxisId
-  };
-  var sectors = (_useAppSelector = useAppSelector(state => selectRadialBarSectors(state, props.radiusAxisId, props.angleAxisId, radialBarSettings, cells))) !== null && _useAppSelector !== void 0 ? _useAppSelector : STABLE_EMPTY_ARRAY;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadialBarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    sectors: sectors,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    name: props.name,
-    hide: props.hide,
-    fill: props.fill,
-    tooltipType: props.tooltipType,
-    id: props.id
-  }), /*#__PURE__*/React.createElement(RadialBarWithState, _extends({}, props, {
-    sectors: sectors
-  })));
-}
-export var defaultRadialBarProps = {
-  angleAxisId: 0,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  background: false,
-  cornerIsExternal: false,
-  cornerRadius: 0,
-  forceCornerRadius: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  minPointSize: 0,
-  radiusAxisId: 0,
-  zIndex: DefaultZIndexes.bar
-};
-export function computeRadialBarDataItems(_ref5) {
-  var {
-    displayedData,
-    stackedData,
-    dataStartIndex,
-    stackedDomain,
-    dataKey,
-    baseValue,
-    layout,
-    radiusAxis,
-    radiusAxisTicks,
-    bandSize,
-    pos,
-    angleAxis,
-    minPointSize,
-    cx,
-    cy,
-    angleAxisTicks,
-    cells,
-    startAngle: rootStartAngle,
-    endAngle: rootEndAngle
-  } = _ref5;
-  if (angleAxisTicks == null || radiusAxisTicks == null) {
-    return STABLE_EMPTY_ARRAY;
-  }
-  return (displayedData !== null && displayedData !== void 0 ? displayedData : []).map((entry, index) => {
-    var value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;
-    if (stackedData) {
-      // @ts-expect-error truncateByDomain expects only numerical domain, but it can received categorical domain too
-      value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);
-    } else {
-      value = getValueByDataKey(entry, dataKey);
-      if (!Array.isArray(value)) {
-        value = [baseValue, value];
-      }
-    }
-    if (layout === 'radial') {
-      var _angleAxis$scale$map, _angleAxis$scale$map2;
-      startAngle = (_angleAxis$scale$map = angleAxis.scale.map(value[0])) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : rootStartAngle;
-      endAngle = (_angleAxis$scale$map2 = angleAxis.scale.map(value[1])) !== null && _angleAxis$scale$map2 !== void 0 ? _angleAxis$scale$map2 : rootEndAngle;
-      innerRadius = getCateCoordinateOfBar({
-        axis: radiusAxis,
-        ticks: radiusAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      if (innerRadius != null && endAngle != null && startAngle != null) {
-        outerRadius = innerRadius + pos.size;
-        var deltaAngle = endAngle - startAngle;
-        if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {
-          var delta = mathSign(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));
-          endAngle += delta;
-        }
-        backgroundSector = {
-          background: {
-            cx,
-            cy,
-            innerRadius,
-            outerRadius,
-            startAngle: rootStartAngle,
-            endAngle: rootEndAngle
-          }
-        };
-      }
-    } else {
-      innerRadius = radiusAxis.scale.map(value[0]);
-      outerRadius = radiusAxis.scale.map(value[1]);
-      startAngle = getCateCoordinateOfBar({
-        axis: angleAxis,
-        ticks: angleAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      if (innerRadius != null && outerRadius != null && startAngle != null) {
-        endAngle = startAngle + pos.size;
-        var deltaRadius = outerRadius - innerRadius;
-        if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {
-          var _delta = mathSign(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));
-          outerRadius += _delta;
-        }
-      }
-    }
-    return _objectSpread(_objectSpread(_objectSpread({}, entry), backgroundSector), {}, {
-      payload: entry,
-      value: stackedData ? value : value[1],
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      // @ts-expect-error endAngle is used before assigned (?)
-      endAngle
-    }, cells && cells[index] && cells[index].props);
-  });
-}
-
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export function RadialBar(outsideProps) {
-  var props = resolveDefaultProps(outsideProps, defaultRadialBarProps);
-  return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {
-    id: props.id,
-    type: "radialBar"
-  }, id => {
-    var _props$hide, _props$angleAxisId, _props$radiusAxisId;
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {
-      type: "radialBar",
-      id: id,
-      data: undefined // why does RadialBar not allow data defined on the item?
-      ,
-      dataKey: props.dataKey,
-      hide: (_props$hide = props.hide) !== null && _props$hide !== void 0 ? _props$hide : defaultRadialBarProps.hide,
-      angleAxisId: (_props$angleAxisId = props.angleAxisId) !== null && _props$angleAxisId !== void 0 ? _props$angleAxisId : defaultRadialBarProps.angleAxisId,
-      radiusAxisId: (_props$radiusAxisId = props.radiusAxisId) !== null && _props$radiusAxisId !== void 0 ? _props$radiusAxisId : defaultRadialBarProps.radiusAxisId,
-      stackId: getNormalizedStackId(props.stackId),
-      barSize: props.barSize,
-      minPointSize: props.minPointSize,
-      maxBarSize: props.maxBarSize
-    }), /*#__PURE__*/React.createElement(SetRadialBarPayloadLegend, props), /*#__PURE__*/React.createElement(RadialBarImpl, _extends({}, props, {
-      id: id
-    })));
-  });
-}
-RadialBar.displayName = 'RadialBar';
Index: de_modules/recharts/es6/polar/defaultPolarAngleAxisProps.js
===================================================================
--- node_modules/recharts/es6/polar/defaultPolarAngleAxisProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-export var defaultPolarAngleAxisProps = {
-  allowDecimals: false,
-  allowDuplicatedCategory: true,
-  // if I set this to false then Tooltip synchronisation stops working in Radar, wtf
-  allowDataOverflow: false,
-  angle: 0,
-  angleAxisId: 0,
-  axisLine: true,
-  axisLineType: 'polygon',
-  cx: 0,
-  cy: 0,
-  hide: false,
-  includeHidden: false,
-  label: false,
-  orientation: 'outer',
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickLine: true,
-  tickSize: 8,
-  type: 'auto',
-  zIndex: DefaultZIndexes.axis
-};
Index: de_modules/recharts/es6/polar/defaultPolarRadiusAxisProps.js
===================================================================
--- node_modules/recharts/es6/polar/defaultPolarRadiusAxisProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-export var defaultPolarRadiusAxisProps = {
-  allowDataOverflow: false,
-  allowDecimals: false,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  axisLine: true,
-  includeHidden: false,
-  hide: false,
-  label: false,
-  orientation: 'right',
-  radiusAxisId: 0,
-  reversed: false,
-  scale: 'auto',
-  stroke: '#ccc',
-  tick: true,
-  tickCount: 5,
-  tickLine: true,
-  type: 'auto',
-  zIndex: DefaultZIndexes.axis
-};
Index: de_modules/recharts/es6/shape/Cross.js
===================================================================
--- node_modules/recharts/es6/shape/Cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-var _excluded = ["x", "y", "top", "left", "width", "height", "className"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * @fileOverview Cross
- */
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { isNumber } from '../util/DataUtils';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-var getPath = (x, y, width, height, top, left) => {
-  return "M".concat(x, ",").concat(top, "v").concat(height, "M").concat(left, ",").concat(y, "h").concat(width);
-};
-export var Cross = _ref => {
-  var {
-      x = 0,
-      y = 0,
-      top = 0,
-      left = 0,
-      width = 0,
-      height = 0,
-      className
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var props = _objectSpread({
-    x,
-    y,
-    top,
-    left,
-    width,
-    height
-  }, rest);
-  if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(props), {
-    className: clsx('recharts-cross', className),
-    d: getPath(x, y, width, height, top, left)
-  }));
-};
Index: de_modules/recharts/es6/shape/Curve.js
===================================================================
--- node_modules/recharts/es6/shape/Curve.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,143 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * @fileOverview Curve
- */
-import * as React from 'react';
-import { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';
-import { clsx } from 'clsx';
-import { adaptEventHandlers } from '../util/types';
-import { isNumber, upperFirst } from '../util/DataUtils';
-import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { useChartLayout } from '../context/chartLayoutContext';
-var CURVE_FACTORIES = {
-  curveBasisClosed,
-  curveBasisOpen,
-  curveBasis,
-  curveBumpX,
-  curveBumpY,
-  curveLinearClosed,
-  curveLinear,
-  curveMonotoneX,
-  curveMonotoneY,
-  curveNatural,
-  curveStep,
-  curveStepAfter,
-  curveStepBefore
-};
-
-/**
- * @inline
- */
-
-var defined = p => isWellBehavedNumber(p.x) && isWellBehavedNumber(p.y);
-var areaDefined = d => d.base != null && defined(d.base) && defined(d);
-var getX = p => p.x;
-var getY = p => p.y;
-var getCurveFactory = (type, layout) => {
-  if (typeof type === 'function') {
-    return type;
-  }
-  var name = "curve".concat(upperFirst(type));
-  if ((name === 'curveMonotone' || name === 'curveBump') && layout) {
-    var factory = CURVE_FACTORIES["".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];
-    if (factory) {
-      return factory;
-    }
-  }
-  return CURVE_FACTORIES[name] || curveLinear;
-};
-
-// Mouse event handlers receive the full Props, including the event handlers themselves.
-
-export var defaultCurveProps = {
-  connectNulls: false,
-  type: 'linear'
-};
-
-/**
- * Calculate the path of curve. Returns null if points is an empty array.
- * @return path or null
- */
-export var getPath = _ref => {
-  var {
-    type = defaultCurveProps.type,
-    points = [],
-    baseLine,
-    layout,
-    connectNulls = defaultCurveProps.connectNulls
-  } = _ref;
-  var curveFactory = getCurveFactory(type, layout);
-  var formatPoints = connectNulls ? points.filter(defined) : points;
-
-  // When dealing with an area chart (where `baseLine` is an array),
-  // we need to pair points with their corresponding `baseLine` points first.
-  // This is to ensure that we filter points and their baseline counterparts together,
-  // preventing errors from mismatched array lengths and ensuring `defined` checks both.
-  if (Array.isArray(baseLine)) {
-    var _lineFunction;
-    var areaPoints = points.map((entry, index) => _objectSpread(_objectSpread({}, entry), {}, {
-      base: baseLine[index]
-    }));
-    if (layout === 'vertical') {
-      _lineFunction = shapeArea().y(getY).x1(getX).x0(d => d.base.x);
-    } else {
-      _lineFunction = shapeArea().x(getX).y1(getY).y0(d => d.base.y);
-    }
-    /*
-     * What happens here is that the `.defined()` call will make it so that this function can accept
-     * nullable points, and internally it will filter them out and skip when generating the path.
-     * So on the input it accepts NullableCoordinate, but it never calls getX/getY on null points because of the defined() filter.
-     *
-     * The d3 type definition has only one generic so it doesn't allow to describe this properly.
-     * However. d3 types are mutable, but we can pretend that they are not, and we can pretend
-     * that calling defined() returns a new function with a different generic type.
-     */
-    // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that
-    var _nullableLineFunction = _lineFunction.defined(areaDefined).curve(curveFactory);
-    var finalPoints = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;
-    return _nullableLineFunction(finalPoints);
-  }
-  var lineFunction;
-  if (layout === 'vertical' && isNumber(baseLine)) {
-    lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);
-  } else if (isNumber(baseLine)) {
-    lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);
-  } else {
-    lineFunction = shapeLine().x(getX).y(getY);
-  }
-
-  // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that
-  var nullableLineFunction = lineFunction.defined(defined).curve(curveFactory);
-  return nullableLineFunction(formatPoints);
-};
-export var Curve = props => {
-  var {
-    className,
-    points,
-    path,
-    pathRef
-  } = props;
-  var layout = useChartLayout();
-  if ((!points || !points.length) && !path) {
-    return null;
-  }
-  var getPathInput = {
-    type: props.type,
-    points: props.points,
-    baseLine: props.baseLine,
-    layout: props.layout || layout,
-    connectNulls: props.connectNulls
-  };
-  var realPath = points && points.length ? getPath(getPathInput) : path;
-  return /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesNoEvents(props), adaptEventHandlers(props), {
-    className: clsx('recharts-curve', className),
-    d: realPath === null ? undefined : realPath,
-    ref: pathRef
-  }));
-};
Index: de_modules/recharts/es6/shape/Dot.js
===================================================================
--- node_modules/recharts/es6/shape/Dot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { adaptEventHandlers } from '../util/types';
-import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
-import { isNumber } from '../util/DataUtils';
-/**
- * Renders a dot in the chart.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceDot} component instead.
- *
- * @param props
- * @constructor
- */
-export var Dot = props => {
-  var {
-    cx,
-    cy,
-    r,
-    className
-  } = props;
-  var layerClass = clsx('recharts-dot', className);
-  if (isNumber(cx) && isNumber(cy) && isNumber(r)) {
-    return /*#__PURE__*/React.createElement("circle", _extends({}, svgPropertiesNoEvents(props), adaptEventHandlers(props), {
-      className: layerClass,
-      cx: cx,
-      cy: cy,
-      r: r
-    }));
-  }
-  return null;
-};
Index: de_modules/recharts/es6/shape/Polygon.js
===================================================================
--- node_modules/recharts/es6/shape/Polygon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-var _excluded = ["points", "className", "baseLinePoints", "connectNulls"];
-var _templateObject;
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-/**
- * @fileOverview Polygon
- */
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { roundTemplateLiteral } from '../util/round';
-var isValidatePoint = point => {
-  return point != null && point.x === +point.x && point.y === +point.y;
-};
-var getParsedPoints = function getParsedPoints() {
-  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var segmentPoints = [[]];
-  points.forEach(entry => {
-    var lastLink = segmentPoints[segmentPoints.length - 1];
-    if (isValidatePoint(entry)) {
-      if (lastLink) {
-        lastLink.push(entry);
-      }
-    } else if (lastLink && lastLink.length > 0) {
-      // add another path
-      segmentPoints.push([]);
-    }
-  });
-  var firstPoint = points[0];
-  var lastLink = segmentPoints[segmentPoints.length - 1];
-  if (isValidatePoint(firstPoint) && lastLink) {
-    lastLink.push(firstPoint);
-  }
-  var finalLink = segmentPoints[segmentPoints.length - 1];
-  if (finalLink && finalLink.length <= 0) {
-    segmentPoints = segmentPoints.slice(0, -1);
-  }
-  return segmentPoints;
-};
-var getSinglePolygonPath = (points, connectNulls) => {
-  var segmentPoints = getParsedPoints(points);
-  if (connectNulls) {
-    segmentPoints = [segmentPoints.reduce((res, segPoints) => {
-      return [...res, ...segPoints];
-    }, [])];
-  }
-  var polygonPath = segmentPoints.map(segPoints => {
-    return segPoints.reduce((path, point, index) => {
-      return roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "", "", ",", ""])), path, index === 0 ? 'M' : 'L', point.x, point.y);
-    }, '');
-  }).join('');
-  return segmentPoints.length === 1 ? "".concat(polygonPath, "Z") : polygonPath;
-};
-var getRanglePath = (points, baseLinePoints, connectNulls) => {
-  var outerPath = getSinglePolygonPath(points, connectNulls);
-  return "".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, "L").concat(getSinglePolygonPath(Array.from(baseLinePoints).reverse(), connectNulls).slice(1));
-};
-export var Polygon = props => {
-  var {
-      points,
-      className,
-      baseLinePoints,
-      connectNulls
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  if (!points || !points.length) {
-    return null;
-  }
-  var layerClass = clsx('recharts-polygon', className);
-  if (baseLinePoints && baseLinePoints.length) {
-    var hasStroke = others.stroke && others.stroke !== 'none';
-    var rangePath = getRanglePath(points, baseLinePoints, connectNulls);
-    return /*#__PURE__*/React.createElement("g", {
-      className: layerClass
-    }, /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(others), {
-      fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',
-      stroke: "none",
-      d: rangePath
-    })), hasStroke ? /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(others), {
-      fill: "none",
-      d: getSinglePolygonPath(points, connectNulls)
-    })) : null, hasStroke ? /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(others), {
-      fill: "none",
-      d: getSinglePolygonPath(baseLinePoints, connectNulls)
-    })) : null);
-  }
-  var singlePath = getSinglePolygonPath(points, connectNulls);
-  return /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(others), {
-    fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',
-    className: layerClass,
-    d: singlePath
-  }));
-};
Index: de_modules/recharts/es6/shape/Rectangle.js
===================================================================
--- node_modules/recharts/es6/shape/Rectangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,212 +1,0 @@
-var _excluded = ["radius"],
-  _excluded2 = ["radius"];
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-/**
- * @fileOverview Rectangle
- */
-import * as React from 'react';
-import { useEffect, useMemo, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { interpolate } from '../util/DataUtils';
-import { useAnimationId } from '../util/useAnimationId';
-import { getTransitionVal } from '../animation/util';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { round, roundTemplateLiteral } from '../util/round';
-
-/**
- * @inline
- */
-
-var getRectanglePath = (x, y, width, height, radius) => {
-  var roundedWidth = round(width);
-  var roundedHeight = round(height);
-  var maxRadius = Math.min(Math.abs(roundedWidth) / 2, Math.abs(roundedHeight) / 2);
-  var ySign = roundedHeight >= 0 ? 1 : -1;
-  var xSign = roundedWidth >= 0 ? 1 : -1;
-  var clockWise = roundedHeight >= 0 && roundedWidth >= 0 || roundedHeight < 0 && roundedWidth < 0 ? 1 : 0;
-  var path;
-  if (maxRadius > 0 && Array.isArray(radius)) {
-    var newRadius = [0, 0, 0, 0];
-    for (var i = 0, len = 4; i < len; i++) {
-      var _radius$i;
-      var r = (_radius$i = radius[i]) !== null && _radius$i !== void 0 ? _radius$i : 0;
-      newRadius[i] = r > maxRadius ? maxRadius : r;
-    }
-    path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral(["M", ",", ""])), x, y + ySign * newRadius[0]);
-    if (newRadius[0] > 0) {
-      path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",", ",", ""])), newRadius[0], newRadius[0], clockWise, x + xSign * newRadius[0], y);
-    }
-    path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", ""])), x + width - xSign * newRadius[1], y);
-    if (newRadius[1] > 0) {
-      path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[1], newRadius[1], clockWise, x + width, y + ySign * newRadius[1]);
-    }
-    path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["L ", ",", ""])), x + width, y + height - ySign * newRadius[2]);
-    if (newRadius[2] > 0) {
-      path += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[2], newRadius[2], clockWise, x + width - xSign * newRadius[2], y + height);
-    }
-    path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["L ", ",", ""])), x + xSign * newRadius[3], y + height);
-    if (newRadius[3] > 0) {
-      path += roundTemplateLiteral(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[3], newRadius[3], clockWise, x, y + height - ySign * newRadius[3]);
-    }
-    path += 'Z';
-  } else if (maxRadius > 0 && radius === +radius && radius > 0) {
-    var _newRadius = Math.min(maxRadius, radius);
-    path = roundTemplateLiteral(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["M ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", " Z"])), x, y + ySign * _newRadius, _newRadius, _newRadius, clockWise, x + xSign * _newRadius, y, x + width - xSign * _newRadius, y, _newRadius, _newRadius, clockWise, x + width, y + ySign * _newRadius, x + width, y + height - ySign * _newRadius, _newRadius, _newRadius, clockWise, x + width - xSign * _newRadius, y + height, x + xSign * _newRadius, y + height, _newRadius, _newRadius, clockWise, x, y + height - ySign * _newRadius);
-  } else {
-    path = roundTemplateLiteral(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["M ", ",", " h ", " v ", " h ", " Z"])), x, y, width, height, -width);
-  }
-  return path;
-};
-export var defaultRectangleProps = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  radius: 0,
-  isAnimationActive: false,
-  isUpdateAnimationActive: false,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease'
-};
-
-/**
- * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners
- * and animation.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceArea} component instead.
- *
- * @param rectangleProps
- * @constructor
- */
-export var Rectangle = rectangleProps => {
-  var props = resolveDefaultProps(rectangleProps, defaultRectangleProps);
-  var pathRef = useRef(null);
-  var [totalLength, setTotalLength] = useState(-1);
-  useEffect(() => {
-    if (pathRef.current && pathRef.current.getTotalLength) {
-      try {
-        var pathTotalLength = pathRef.current.getTotalLength();
-        if (pathTotalLength) {
-          setTotalLength(pathTotalLength);
-        }
-      } catch (_unused) {
-        // calculate total length error
-      }
-    }
-  }, []);
-  var {
-    x,
-    y,
-    width,
-    height,
-    radius,
-    className
-  } = props;
-  var {
-    animationEasing,
-    animationDuration,
-    animationBegin,
-    isAnimationActive,
-    isUpdateAnimationActive
-  } = props;
-  var prevWidthRef = useRef(width);
-  var prevHeightRef = useRef(height);
-  var prevXRef = useRef(x);
-  var prevYRef = useRef(y);
-  var animationIdInput = useMemo(() => ({
-    x,
-    y,
-    width,
-    height,
-    radius
-  }), [x, y, width, height, radius]);
-  var animationId = useAnimationId(animationIdInput, 'rectangle-');
-  if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {
-    return null;
-  }
-  var layerClass = clsx('recharts-rectangle', className);
-  if (!isUpdateAnimationActive) {
-    var _svgPropertiesAndEven = svgPropertiesAndEvents(props),
-      {
-        radius: _
-      } = _svgPropertiesAndEven,
-      otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven, _excluded);
-    return /*#__PURE__*/React.createElement("path", _extends({}, otherPathProps, {
-      x: round(x),
-      y: round(y),
-      width: round(width),
-      height: round(height),
-      radius: typeof radius === 'number' ? radius : undefined,
-      className: layerClass,
-      d: getRectanglePath(x, y, width, height, radius)
-    }));
-  }
-  var prevWidth = prevWidthRef.current;
-  var prevHeight = prevHeightRef.current;
-  var prevX = prevXRef.current;
-  var prevY = prevYRef.current;
-  var from = "0px ".concat(totalLength === -1 ? 1 : totalLength, "px");
-  var to = "".concat(totalLength, "px 0px");
-  var transition = getTransitionVal(['strokeDasharray'], animationDuration, typeof animationEasing === 'string' ? animationEasing : defaultRectangleProps.animationEasing);
-  return /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    key: animationId,
-    canBegin: totalLength > 0,
-    duration: animationDuration,
-    easing: animationEasing,
-    isActive: isUpdateAnimationActive,
-    begin: animationBegin
-  }, t => {
-    var currWidth = interpolate(prevWidth, width, t);
-    var currHeight = interpolate(prevHeight, height, t);
-    var currX = interpolate(prevX, x, t);
-    var currY = interpolate(prevY, y, t);
-    if (pathRef.current) {
-      prevWidthRef.current = currWidth;
-      prevHeightRef.current = currHeight;
-      prevXRef.current = currX;
-      prevYRef.current = currY;
-    }
-    var animationStyle;
-    if (!isAnimationActive) {
-      animationStyle = {
-        strokeDasharray: to
-      };
-    } else if (t > 0) {
-      animationStyle = {
-        transition,
-        strokeDasharray: to
-      };
-    } else {
-      animationStyle = {
-        strokeDasharray: from
-      };
-    }
-    var _svgPropertiesAndEven2 = svgPropertiesAndEvents(props),
-      {
-        radius: _
-      } = _svgPropertiesAndEven2,
-      otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven2, _excluded2);
-    return /*#__PURE__*/React.createElement("path", _extends({}, otherPathProps, {
-      radius: typeof radius === 'number' ? radius : undefined,
-      className: layerClass,
-      d: getRectanglePath(currX, currY, currWidth, currHeight, radius),
-      ref: pathRef,
-      style: _objectSpread(_objectSpread({}, animationStyle), props.style)
-    }));
-  });
-};
Index: de_modules/recharts/es6/shape/Sector.js
===================================================================
--- node_modules/recharts/es6/shape/Sector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,225 +1,0 @@
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-import * as React from 'react';
-import { clsx } from 'clsx';
-import { polarToCartesian, RADIAN } from '../util/PolarUtils';
-import { getPercentValue, mathSign } from '../util/DataUtils';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { roundTemplateLiteral } from '../util/round';
-var getDeltaAngle = (startAngle, endAngle) => {
-  var sign = mathSign(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);
-  return sign * deltaAngle;
-};
-var getTangentCircle = _ref => {
-  var {
-    cx,
-    cy,
-    radius,
-    angle,
-    sign,
-    isExternal,
-    cornerRadius,
-    cornerIsExternal
-  } = _ref;
-  var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;
-  var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;
-  var centerAngle = cornerIsExternal ? angle : angle + sign * theta;
-  var center = polarToCartesian(cx, cy, centerRadius, centerAngle);
-  // The coordinate of point which is tangent to the circle
-  var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);
-  // The coordinate of point which is tangent to the radius line
-  var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;
-  var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);
-  return {
-    center,
-    circleTangency,
-    lineTangency,
-    theta
-  };
-};
-var getSectorPath = _ref2 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle
-  } = _ref2;
-  var angle = getDeltaAngle(startAngle, endAngle);
-
-  // When the angle of sector equals to 360, star point and end point coincide
-  var tempEndAngle = startAngle + angle;
-  var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);
-  var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);
-  var path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral(["M ", ",", "\n    A ", ",", ",0,\n    ", ",", ",\n    ", ",", "\n  "])), outerStartPoint.x, outerStartPoint.y, outerRadius, outerRadius, +(Math.abs(angle) > 180), +(startAngle > tempEndAngle), outerEndPoint.x, outerEndPoint.y);
-  if (innerRadius > 0) {
-    var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);
-    var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);
-    path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["L ", ",", "\n            A ", ",", ",0,\n            ", ",", ",\n            ", ",", " Z"])), innerEndPoint.x, innerEndPoint.y, innerRadius, innerRadius, +(Math.abs(angle) > 180), +(startAngle <= tempEndAngle), innerStartPoint.x, innerStartPoint.y);
-  } else {
-    path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", " Z"])), cx, cy);
-  }
-  return path;
-};
-var getSectorWithCorner = _ref3 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    cornerRadius,
-    forceCornerRadius,
-    cornerIsExternal,
-    startAngle,
-    endAngle
-  } = _ref3;
-  var sign = mathSign(endAngle - startAngle);
-  var {
-    circleTangency: soct,
-    lineTangency: solt,
-    theta: sot
-  } = getTangentCircle({
-    cx,
-    cy,
-    radius: outerRadius,
-    angle: startAngle,
-    sign,
-    cornerRadius,
-    cornerIsExternal
-  });
-  var {
-    circleTangency: eoct,
-    lineTangency: eolt,
-    theta: eot
-  } = getTangentCircle({
-    cx,
-    cy,
-    radius: outerRadius,
-    angle: endAngle,
-    sign: -sign,
-    cornerRadius,
-    cornerIsExternal
-  });
-  var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;
-  if (outerArcAngle < 0) {
-    if (forceCornerRadius) {
-      return roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["M ", ",", "\n        a", ",", ",0,0,1,", ",0\n        a", ",", ",0,0,1,", ",0\n      "])), solt.x, solt.y, cornerRadius, cornerRadius, cornerRadius * 2, cornerRadius, cornerRadius, -cornerRadius * 2);
-    }
-    return getSectorPath({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      endAngle
-    });
-  }
-  var path = roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["M ", ",", "\n    A", ",", ",0,0,", ",", ",", "\n    A", ",", ",0,", ",", ",", ",", "\n    A", ",", ",0,0,", ",", ",", "\n  "])), solt.x, solt.y, cornerRadius, cornerRadius, +(sign < 0), soct.x, soct.y, outerRadius, outerRadius, +(outerArcAngle > 180), +(sign < 0), eoct.x, eoct.y, cornerRadius, cornerRadius, +(sign < 0), eolt.x, eolt.y);
-  if (innerRadius > 0) {
-    var {
-      circleTangency: sict,
-      lineTangency: silt,
-      theta: sit
-    } = getTangentCircle({
-      cx,
-      cy,
-      radius: innerRadius,
-      angle: startAngle,
-      sign,
-      isExternal: true,
-      cornerRadius,
-      cornerIsExternal
-    });
-    var {
-      circleTangency: eict,
-      lineTangency: eilt,
-      theta: eit
-    } = getTangentCircle({
-      cx,
-      cy,
-      radius: innerRadius,
-      angle: endAngle,
-      sign: -sign,
-      isExternal: true,
-      cornerRadius,
-      cornerIsExternal
-    });
-    var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;
-    if (innerArcAngle < 0 && cornerRadius === 0) {
-      return "".concat(path, "L").concat(cx, ",").concat(cy, "Z");
-    }
-    path += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["L", ",", "\n      A", ",", ",0,0,", ",", ",", "\n      A", ",", ",0,", ",", ",", ",", "\n      A", ",", ",0,0,", ",", ",", "Z"])), eilt.x, eilt.y, cornerRadius, cornerRadius, +(sign < 0), eict.x, eict.y, innerRadius, innerRadius, +(innerArcAngle > 180), +(sign > 0), sict.x, sict.y, cornerRadius, cornerRadius, +(sign < 0), silt.x, silt.y);
-  } else {
-    path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["L", ",", "Z"])), cx, cy);
-  }
-  return path;
-};
-
-/**
- * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's
- * override the types here.
- */
-
-export var defaultSectorProps = {
-  cx: 0,
-  cy: 0,
-  innerRadius: 0,
-  outerRadius: 0,
-  startAngle: 0,
-  endAngle: 0,
-  cornerRadius: 0,
-  forceCornerRadius: false,
-  cornerIsExternal: false
-};
-export var Sector = sectorProps => {
-  var props = resolveDefaultProps(sectorProps, defaultSectorProps);
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    cornerRadius,
-    forceCornerRadius,
-    cornerIsExternal,
-    startAngle,
-    endAngle,
-    className
-  } = props;
-  if (outerRadius < innerRadius || startAngle === endAngle) {
-    return null;
-  }
-  var layerClass = clsx('recharts-sector', className);
-  var deltaRadius = outerRadius - innerRadius;
-  var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);
-  var path;
-  if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {
-    path = getSectorWithCorner({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      cornerRadius: Math.min(cr, deltaRadius / 2),
-      forceCornerRadius,
-      cornerIsExternal,
-      startAngle,
-      endAngle
-    });
-  } else {
-    path = getSectorPath({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      endAngle
-    });
-  }
-  return /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(props), {
-    className: layerClass,
-    d: path
-  }));
-};
Index: de_modules/recharts/es6/shape/Symbols.js
===================================================================
--- node_modules/recharts/es6/shape/Symbols.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,112 +1,0 @@
-var _excluded = ["type", "size", "sizeType"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';
-import { clsx } from 'clsx';
-import { isNumber, upperFirst } from '../util/DataUtils';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-var symbolFactories = {
-  symbolCircle,
-  symbolCross,
-  symbolDiamond,
-  symbolSquare,
-  symbolStar,
-  symbolTriangle,
-  symbolWye
-};
-var RADIAN = Math.PI / 180;
-var getSymbolFactory = type => {
-  var name = "symbol".concat(upperFirst(type));
-  return symbolFactories[name] || symbolCircle;
-};
-var calculateAreaSize = (size, sizeType, type) => {
-  if (sizeType === 'area') {
-    return size;
-  }
-  switch (type) {
-    case 'cross':
-      return 5 * size * size / 9;
-    case 'diamond':
-      return 0.5 * size * size / Math.sqrt(3);
-    case 'square':
-      return size * size;
-    case 'star':
-      {
-        var angle = 18 * RADIAN;
-        return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.tan(angle) ** 2);
-      }
-    case 'triangle':
-      return Math.sqrt(3) * size * size / 4;
-    case 'wye':
-      return (21 - 10 * Math.sqrt(3)) * size * size / 8;
-    default:
-      return Math.PI * size * size / 4;
-  }
-};
-var registerSymbol = (key, factory) => {
-  symbolFactories["symbol".concat(upperFirst(key))] = factory;
-};
-
-/**
- * Renders a symbol from a set of predefined shapes.
- */
-export var Symbols = _ref => {
-  var {
-      type = 'circle',
-      size = 64,
-      sizeType = 'area'
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var props = _objectSpread(_objectSpread({}, rest), {}, {
-    type,
-    size,
-    sizeType
-  });
-  var realType = 'circle';
-  if (typeof type === 'string') {
-    /*
-     * Our type guard is not as strong as it could be (i.e. non-existent),
-     * and so despite the typescript type saying that `type` is a `SymbolType`,
-     * we can get numbers or really anything, so let's have a runtime check here to fix the exception.
-     *
-     * https://github.com/recharts/recharts/issues/6197
-     */
-    realType = type;
-  }
-
-  /**
-   * Calculate the path of curve
-   * @return {String} path
-   */
-  var getPath = () => {
-    var symbolFactory = getSymbolFactory(realType);
-    var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, realType));
-    var s = symbol();
-    if (s === null) {
-      return undefined;
-    }
-    return s;
-  };
-  var {
-    className,
-    cx,
-    cy
-  } = props;
-  var filteredProps = svgPropertiesAndEvents(props);
-  if (isNumber(cx) && isNumber(cy) && isNumber(size)) {
-    return /*#__PURE__*/React.createElement("path", _extends({}, filteredProps, {
-      className: clsx('recharts-symbols', className),
-      transform: "translate(".concat(cx, ", ").concat(cy, ")"),
-      d: getPath()
-    }));
-  }
-  return null;
-};
-Symbols.registerSymbol = registerSymbol;
Index: de_modules/recharts/es6/shape/Trapezoid.js
===================================================================
--- node_modules/recharts/es6/shape/Trapezoid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,131 +1,0 @@
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-/**
- * @fileOverview Rectangle
- */
-import * as React from 'react';
-import { useEffect, useRef, useState } from 'react';
-import { clsx } from 'clsx';
-import { resolveDefaultProps } from '../util/resolveDefaultProps';
-import { JavascriptAnimate } from '../animation/JavascriptAnimate';
-import { useAnimationId } from '../util/useAnimationId';
-import { interpolate } from '../util/DataUtils';
-import { getTransitionVal } from '../animation/util';
-import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
-import { roundTemplateLiteral } from '../util/round';
-var getTrapezoidPath = (x, y, upperWidth, lowerWidth, height) => {
-  var widthGap = upperWidth - lowerWidth;
-  var path;
-  path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral(["M ", ",", ""])), x, y);
-  path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth, y);
-  path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth - widthGap / 2, y + height);
-  path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth - widthGap / 2 - lowerWidth, y + height);
-  path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["L ", ",", " Z"])), x, y);
-  return path;
-};
-export var defaultTrapezoidProps = {
-  x: 0,
-  y: 0,
-  upperWidth: 0,
-  lowerWidth: 0,
-  height: 0,
-  isUpdateAnimationActive: false,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease'
-};
-export var Trapezoid = outsideProps => {
-  var trapezoidProps = resolveDefaultProps(outsideProps, defaultTrapezoidProps);
-  var {
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    height,
-    className
-  } = trapezoidProps;
-  var {
-    animationEasing,
-    animationDuration,
-    animationBegin,
-    isUpdateAnimationActive
-  } = trapezoidProps;
-  var pathRef = useRef(null);
-  var [totalLength, setTotalLength] = useState(-1);
-  var prevUpperWidthRef = useRef(upperWidth);
-  var prevLowerWidthRef = useRef(lowerWidth);
-  var prevHeightRef = useRef(height);
-  var prevXRef = useRef(x);
-  var prevYRef = useRef(y);
-  var animationId = useAnimationId(outsideProps, 'trapezoid-');
-  useEffect(() => {
-    if (pathRef.current && pathRef.current.getTotalLength) {
-      try {
-        var pathTotalLength = pathRef.current.getTotalLength();
-        if (pathTotalLength) {
-          setTotalLength(pathTotalLength);
-        }
-      } catch (_unused) {
-        // calculate total length error
-      }
-    }
-  }, []);
-  if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {
-    return null;
-  }
-  var layerClass = clsx('recharts-trapezoid', className);
-  if (!isUpdateAnimationActive) {
-    return /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(trapezoidProps), {
-      className: layerClass,
-      d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)
-    })));
-  }
-  var prevUpperWidth = prevUpperWidthRef.current;
-  var prevLowerWidth = prevLowerWidthRef.current;
-  var prevHeight = prevHeightRef.current;
-  var prevX = prevXRef.current;
-  var prevY = prevYRef.current;
-  var from = "0px ".concat(totalLength === -1 ? 1 : totalLength, "px");
-  var to = "".concat(totalLength, "px 0px");
-  var transition = getTransitionVal(['strokeDasharray'], animationDuration, animationEasing);
-  return /*#__PURE__*/React.createElement(JavascriptAnimate, {
-    animationId: animationId,
-    key: animationId,
-    canBegin: totalLength > 0,
-    duration: animationDuration,
-    easing: animationEasing,
-    isActive: isUpdateAnimationActive,
-    begin: animationBegin
-  }, t => {
-    var currUpperWidth = interpolate(prevUpperWidth, upperWidth, t);
-    var currLowerWidth = interpolate(prevLowerWidth, lowerWidth, t);
-    var currHeight = interpolate(prevHeight, height, t);
-    var currX = interpolate(prevX, x, t);
-    var currY = interpolate(prevY, y, t);
-    if (pathRef.current) {
-      prevUpperWidthRef.current = currUpperWidth;
-      prevLowerWidthRef.current = currLowerWidth;
-      prevHeightRef.current = currHeight;
-      prevXRef.current = currX;
-      prevYRef.current = currY;
-    }
-    var animationStyle = t > 0 ? {
-      transition,
-      strokeDasharray: to
-    } : {
-      strokeDasharray: from
-    };
-    return /*#__PURE__*/React.createElement("path", _extends({}, svgPropertiesAndEvents(trapezoidProps), {
-      className: layerClass,
-      d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),
-      ref: pathRef,
-      style: _objectSpread(_objectSpread({}, animationStyle), trapezoidProps.style)
-    }));
-  });
-};
Index: de_modules/recharts/es6/state/RechartsReduxContext.js
===================================================================
--- node_modules/recharts/es6/state/RechartsReduxContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { createContext } from 'react';
-
-/*
- * This is a copy of the React-Redux context type, but with our own store type.
- * We could import directly from react-redux like this:
- * import { ReactReduxContextValue } from 'react-redux/src/components/Context';
- * but that makes typescript angry with some errors I am not sure how to resolve
- * so copy it is.
- */
-
-/**
- * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores
- * in case they decide to install and use Recharts in another Redux app which is likely to happen.
- *
- * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context
- */
-export var RechartsReduxContext = /*#__PURE__*/createContext(null);
Index: de_modules/recharts/es6/state/RechartsStoreProvider.js
===================================================================
--- node_modules/recharts/es6/state/RechartsStoreProvider.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import * as React from 'react';
-import { useRef } from 'react';
-import { Provider } from 'react-redux';
-import { createRechartsStore } from './store';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { RechartsReduxContext } from './RechartsReduxContext';
-export function RechartsStoreProvider(_ref) {
-  var {
-    preloadedState,
-    children,
-    reduxStoreName
-  } = _ref;
-  var isPanorama = useIsPanorama();
-  /*
-   * Why the ref? Redux official documentation recommends to use store as a singleton,
-   * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example
-   *
-   * Which is correct! Except that is considering deploying Redux in an app.
-   * Recharts as a library supports multiple charts on the same page.
-   * And each of these charts needs its own store independent of others!
-   *
-   * The alternative is to have everything in the store keyed by the chart id.
-   * Which would make working with everything a little bit more painful because we need the chart id everywhere.
-   */
-  var storeRef = useRef(null);
-
-  /*
-   * Panorama means that this chart is not its own chart, it's only a "preview"
-   * being rendered as a child of Brush.
-   * In such case, it should not have a store on its own - it should implicitly inherit
-   * whatever data is in the "parent" or "root" chart.
-   * Which here is represented by not having a Provider at all. All selectors will use the root store by default.
-   */
-  if (isPanorama) {
-    return children;
-  }
-  if (storeRef.current == null) {
-    storeRef.current = createRechartsStore(preloadedState, reduxStoreName);
-  }
-
-  // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.
-  var nonNullContext = RechartsReduxContext;
-  return /*#__PURE__*/React.createElement(Provider, {
-    context: nonNullContext,
-    store: storeRef.current
-  }, children);
-}
Index: de_modules/recharts/es6/state/ReportChartProps.js
===================================================================
--- node_modules/recharts/es6/state/ReportChartProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { useEffect } from 'react';
-import { updateOptions } from './rootPropsSlice';
-import { useAppDispatch } from './hooks';
-export function ReportChartProps(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(updateOptions(props));
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/es6/state/ReportMainChartProps.js
===================================================================
--- node_modules/recharts/es6/state/ReportMainChartProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { memo, useEffect } from 'react';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { setLayout, setMargin } from './layoutSlice';
-import { useAppDispatch } from './hooks';
-import { propsAreEqual } from '../util/propsAreEqual';
-
-/**
- * "Main" props are props that are only accepted on the main chart,
- * as opposed to the small panorama chart inside a Brush.
- */
-
-function ReportMainChartPropsImpl(_ref) {
-  var {
-    layout,
-    margin
-  } = _ref;
-  var dispatch = useAppDispatch();
-
-  /*
-   * Skip dispatching properties in panorama chart for two reasons:
-   * 1. The root chart should be deciding on these properties, and
-   * 2. Brush reads these properties from redux store, and so they must remain stable
-   *      to avoid circular dependency and infinite re-rendering.
-   */
-  var isPanorama = useIsPanorama();
-  /*
-   * useEffect here is required to avoid the "Cannot update a component while rendering a different component" error.
-   * https://github.com/facebook/react/issues/18178
-   *
-   * Reported in https://github.com/recharts/recharts/issues/5514
-   */
-  useEffect(() => {
-    if (!isPanorama) {
-      dispatch(setLayout(layout));
-      dispatch(setMargin(margin));
-    }
-  }, [dispatch, isPanorama, layout, margin]);
-  return null;
-}
-export var ReportMainChartProps = /*#__PURE__*/memo(ReportMainChartPropsImpl, propsAreEqual);
Index: de_modules/recharts/es6/state/ReportPolarOptions.js
===================================================================
--- node_modules/recharts/es6/state/ReportPolarOptions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { useEffect } from 'react';
-import { useAppDispatch } from './hooks';
-import { updatePolarOptions } from './polarOptionsSlice';
-export function ReportPolarOptions(props) {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(updatePolarOptions(props));
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/es6/state/SetGraphicalItem.js
===================================================================
--- node_modules/recharts/es6/state/SetGraphicalItem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import { memo, useLayoutEffect, useRef } from 'react';
-import { useAppDispatch } from './hooks';
-import { addCartesianGraphicalItem, addPolarGraphicalItem, removeCartesianGraphicalItem, removePolarGraphicalItem, replaceCartesianGraphicalItem } from './graphicalItemsSlice';
-var SetCartesianGraphicalItemImpl = props => {
-  var dispatch = useAppDispatch();
-  var prevPropsRef = useRef(null);
-  useLayoutEffect(() => {
-    if (prevPropsRef.current === null) {
-      dispatch(addCartesianGraphicalItem(props));
-    } else if (prevPropsRef.current !== props) {
-      dispatch(replaceCartesianGraphicalItem({
-        prev: prevPropsRef.current,
-        next: props
-      }));
-    }
-    prevPropsRef.current = props;
-  }, [dispatch, props]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevPropsRef.current) {
-        dispatch(removeCartesianGraphicalItem(prevPropsRef.current));
-        /*
-         * Here we have to reset the ref to null because in StrictMode, the effect will run twice,
-         * but it will keep the same ref value from the first render.
-         *
-         * In browser, React will clear the ref after the first effect cleanup,
-         * so that wouldn't be an issue.
-         *
-         * In StrictMode, however, the ref is kept,
-         * and in the hook above the code checks for `prevPropsRef.current === null`
-         * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.
-         *
-         * https://github.com/recharts/recharts/issues/6022
-         */
-        prevPropsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-};
-export var SetCartesianGraphicalItem = /*#__PURE__*/memo(SetCartesianGraphicalItemImpl);
-export function SetPolarGraphicalItem(props) {
-  var dispatch = useAppDispatch();
-  useLayoutEffect(() => {
-    dispatch(addPolarGraphicalItem(props));
-    return () => {
-      dispatch(removePolarGraphicalItem(props));
-    };
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/es6/state/SetLegendPayload.js
===================================================================
--- node_modules/recharts/es6/state/SetLegendPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-import { useLayoutEffect, useRef } from 'react';
-import { useIsPanorama } from '../context/PanoramaContext';
-import { selectChartLayout } from '../context/chartLayoutContext';
-import { useAppDispatch, useAppSelector } from './hooks';
-import { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice';
-export function SetLegendPayload(_ref) {
-  var {
-    legendPayload
-  } = _ref;
-  var dispatch = useAppDispatch();
-  var isPanorama = useIsPanorama();
-  var prevPayloadRef = useRef(null);
-  useLayoutEffect(() => {
-    if (isPanorama) {
-      return;
-    }
-    if (prevPayloadRef.current === null) {
-      dispatch(addLegendPayload(legendPayload));
-    } else if (prevPayloadRef.current !== legendPayload) {
-      dispatch(replaceLegendPayload({
-        prev: prevPayloadRef.current,
-        next: legendPayload
-      }));
-    }
-    prevPayloadRef.current = legendPayload;
-  }, [dispatch, isPanorama, legendPayload]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevPayloadRef.current) {
-        dispatch(removeLegendPayload(prevPayloadRef.current));
-        prevPayloadRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-export function SetPolarLegendPayload(_ref2) {
-  var {
-    legendPayload
-  } = _ref2;
-  var dispatch = useAppDispatch();
-  var layout = useAppSelector(selectChartLayout);
-  var prevPayloadRef = useRef(null);
-  useLayoutEffect(() => {
-    if (layout !== 'centric' && layout !== 'radial') {
-      return;
-    }
-    if (prevPayloadRef.current === null) {
-      dispatch(addLegendPayload(legendPayload));
-    } else if (prevPayloadRef.current !== legendPayload) {
-      dispatch(replaceLegendPayload({
-        prev: prevPayloadRef.current,
-        next: legendPayload
-      }));
-    }
-    prevPayloadRef.current = legendPayload;
-  }, [dispatch, layout, legendPayload]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevPayloadRef.current) {
-        dispatch(removeLegendPayload(prevPayloadRef.current));
-        prevPayloadRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
Index: de_modules/recharts/es6/state/SetTooltipEntrySettings.js
===================================================================
--- node_modules/recharts/es6/state/SetTooltipEntrySettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { useLayoutEffect, useRef } from 'react';
-import { useAppDispatch } from './hooks';
-import { addTooltipEntrySettings, removeTooltipEntrySettings, replaceTooltipEntrySettings } from './tooltipSlice';
-import { useIsPanorama } from '../context/PanoramaContext';
-export function SetTooltipEntrySettings(_ref) {
-  var {
-    tooltipEntrySettings
-  } = _ref;
-  var dispatch = useAppDispatch();
-  var isPanorama = useIsPanorama();
-  var prevSettingsRef = useRef(null);
-  useLayoutEffect(() => {
-    if (isPanorama) {
-      // Panorama graphical items should never contribute to Tooltip payload.
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch(addTooltipEntrySettings(tooltipEntrySettings));
-    } else if (prevSettingsRef.current !== tooltipEntrySettings) {
-      dispatch(replaceTooltipEntrySettings({
-        prev: prevSettingsRef.current,
-        next: tooltipEntrySettings
-      }));
-    }
-    prevSettingsRef.current = tooltipEntrySettings;
-  }, [tooltipEntrySettings, dispatch, isPanorama]);
-  useLayoutEffect(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch(removeTooltipEntrySettings(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
Index: de_modules/recharts/es6/state/brushSlice.js
===================================================================
--- node_modules/recharts/es6/state/brushSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-
-/**
- * From all Brush properties, only height has a default value and will always be defined.
- * Other properties are nullable and will be computed from offsets and margins if they are not set.
- */
-
-var initialState = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  padding: {
-    top: 0,
-    right: 0,
-    bottom: 0,
-    left: 0
-  }
-};
-export var brushSlice = createSlice({
-  name: 'brush',
-  initialState,
-  reducers: {
-    setBrushSettings(_state, action) {
-      if (action.payload == null) {
-        return initialState;
-      }
-      return action.payload;
-    }
-  }
-});
-export var {
-  setBrushSettings
-} = brushSlice.actions;
-export var brushReducer = brushSlice.reducer;
Index: de_modules/recharts/es6/state/cartesianAxisSlice.js
===================================================================
--- node_modules/recharts/es6/state/cartesianAxisSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,162 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-
-/**
- * @inline
- */
-
-export var defaultAxisId = 0;
-
-/**
- * Properties shared in X, Y, and Z axes.
- * User defined axis settings, coming from props.
- */
-
-/**
- * These are the external props, visible for users as they set them using our public API.
- * There is all sorts of internal computed things based on these, but they will come through selectors.
- *
- * Properties shared between X and Y axes
- */
-
-/**
- * Z axis is special because it's never displayed. It controls the size of Scatter dots,
- * but it never displays ticks anywhere.
- */
-
-var initialState = {
-  xAxis: {},
-  yAxis: {},
-  zAxis: {}
-};
-
-/**
- * This is the slice where each individual Axis element pushes its own configuration.
- * Prefer to use this one instead of axisSlice.
- */
-var cartesianAxisSlice = createSlice({
-  name: 'cartesianAxis',
-  initialState,
-  reducers: {
-    addXAxis: {
-      reducer(state, action) {
-        state.xAxis[action.payload.id] = castDraft(action.payload);
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceXAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.xAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.xAxis[prev.id];
-          }
-          state.xAxis[next.id] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeXAxis: {
-      reducer(state, action) {
-        delete state.xAxis[action.payload.id];
-      },
-      prepare: prepareAutoBatched()
-    },
-    addYAxis: {
-      reducer(state, action) {
-        state.yAxis[action.payload.id] = castDraft(action.payload);
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceYAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.yAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.yAxis[prev.id];
-          }
-          state.yAxis[next.id] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeYAxis: {
-      reducer(state, action) {
-        delete state.yAxis[action.payload.id];
-      },
-      prepare: prepareAutoBatched()
-    },
-    addZAxis: {
-      reducer(state, action) {
-        state.zAxis[action.payload.id] = castDraft(action.payload);
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceZAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.zAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.zAxis[prev.id];
-          }
-          state.zAxis[next.id] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeZAxis: {
-      reducer(state, action) {
-        delete state.zAxis[action.payload.id];
-      },
-      prepare: prepareAutoBatched()
-    },
-    updateYAxisWidth(state, action) {
-      var {
-        id,
-        width
-      } = action.payload;
-      var axis = state.yAxis[id];
-      if (axis) {
-        var _history$;
-        var history = axis.widthHistory || [];
-        // An oscillation is detected when the new width is the same as the width before the last one.
-        // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.
-        if (history.length === 3 && history[0] === history[2] && width === history[1] && width !== axis.width && Math.abs(width - ((_history$ = history[0]) !== null && _history$ !== void 0 ? _history$ : 0)) <= 1) {
-          return;
-        }
-        var newHistory = [...history, width].slice(-3);
-        state.yAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {
-          width,
-          widthHistory: newHistory
-        });
-      }
-    }
-  }
-});
-export var {
-  addXAxis,
-  replaceXAxis,
-  removeXAxis,
-  addYAxis,
-  replaceYAxis,
-  removeYAxis,
-  addZAxis,
-  replaceZAxis,
-  removeZAxis,
-  updateYAxisWidth
-} = cartesianAxisSlice.actions;
-export var cartesianAxisReducer = cartesianAxisSlice.reducer;
Index: de_modules/recharts/es6/state/chartDataSlice.js
===================================================================
--- node_modules/recharts/es6/state/chartDataSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-
-/**
- * This is the data that's coming through main chart `data` prop
- * Recharts is very flexible in what it accepts so the type is very flexible too.
- * This will typically be an object, and various components will provide various `dataKey`
- * that dictates how to pull data from that object.
- *
- * TL;DR: before dataKey
- *
- * @inline
- */
-
-/**
- * So this is the same unknown type as ChartData but this is after the dataKey has been applied.
- * We still don't know what the type is - that depends on what exactly it was before the dataKey application,
- * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.
- *
- * TL;DR: ChartData after dataKey.
- */
-
-export var initialChartDataState = {
-  chartData: undefined,
-  computedData: undefined,
-  dataStartIndex: 0,
-  dataEndIndex: 0
-};
-var chartDataSlice = createSlice({
-  name: 'chartData',
-  initialState: initialChartDataState,
-  reducers: {
-    setChartData(state, action) {
-      state.chartData = castDraft(action.payload);
-      if (action.payload == null) {
-        state.dataStartIndex = 0;
-        state.dataEndIndex = 0;
-        return;
-      }
-      if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) {
-        state.dataEndIndex = action.payload.length - 1;
-      }
-    },
-    setComputedData(state, action) {
-      state.computedData = action.payload;
-    },
-    setDataStartEndIndexes(state, action) {
-      var {
-        startIndex,
-        endIndex
-      } = action.payload;
-      if (startIndex != null) {
-        state.dataStartIndex = startIndex;
-      }
-      if (endIndex != null) {
-        state.dataEndIndex = endIndex;
-      }
-    }
-  }
-});
-export var {
-  setChartData,
-  setDataStartEndIndexes,
-  setComputedData
-} = chartDataSlice.actions;
-export var chartDataReducer = chartDataSlice.reducer;
Index: de_modules/recharts/es6/state/errorBarSlice.js
===================================================================
--- node_modules/recharts/es6/state/errorBarSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-
-/**
- * ErrorBars have lot more settings but all the others are scoped to the component itself.
- * Only some of them required to be reported to the global store because XAxis and YAxis need to know
- * if the error bar is contributing to extending the axis domain.
- */
-
-var initialState = {};
-var errorBarSlice = createSlice({
-  name: 'errorBars',
-  initialState,
-  reducers: {
-    addErrorBar: (state, action) => {
-      var {
-        itemId,
-        errorBar
-      } = action.payload;
-      if (!state[itemId]) {
-        state[itemId] = [];
-      }
-      state[itemId].push(errorBar);
-    },
-    replaceErrorBar: (state, action) => {
-      var {
-        itemId,
-        prev,
-        next
-      } = action.payload;
-      if (state[itemId]) {
-        state[itemId] = state[itemId].map(e => e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e);
-      }
-    },
-    removeErrorBar: (state, action) => {
-      var {
-        itemId,
-        errorBar
-      } = action.payload;
-      if (state[itemId]) {
-        state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);
-      }
-    }
-  }
-});
-export var {
-  addErrorBar,
-  replaceErrorBar,
-  removeErrorBar
-} = errorBarSlice.actions;
-export var errorBarReducer = errorBarSlice.reducer;
Index: de_modules/recharts/es6/state/externalEventsMiddleware.js
===================================================================
--- node_modules/recharts/es6/state/externalEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';
-import { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive } from './selectors/tooltipSelectors';
-export var externalEventAction = createAction('externalEvent');
-export var externalEventsMiddleware = createListenerMiddleware();
-
-/*
- * We need a Map keyed by event type because this middleware handles MULTIPLE different event types
- * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)
- * from the same DOM element. Different event types should NOT cancel each other's animation frames.
- * For example, a click event and a mousemove event can happen in quick succession and both should be processed.
- * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.
- */
-var rafIdMap = new Map();
-externalEventsMiddleware.startListening({
-  actionCreator: externalEventAction,
-  effect: (action, listenerApi) => {
-    var {
-      handler,
-      reactEvent
-    } = action.payload;
-    if (handler == null) {
-      return;
-    }
-    reactEvent.persist();
-    var eventType = reactEvent.type;
-
-    // Cancel any pending animation frame for this event type
-    var existingRafId = rafIdMap.get(eventType);
-    if (existingRafId !== undefined) {
-      cancelAnimationFrame(existingRafId);
-    }
-    var rafId = requestAnimationFrame(() => {
-      try {
-        /*
-         * Here it is important that we get the latest state inside the animation frame callback,
-         * not from the outer scope, because there may have been other actions dispatched
-         * between the time the event was fired and the animation frame callback is executed.
-         * One of those actions is the one that actually sets the active tooltip state!
-         */
-        var state = listenerApi.getState();
-        var nextState = {
-          activeCoordinate: selectActiveTooltipCoordinate(state),
-          activeDataKey: selectActiveTooltipDataKey(state),
-          activeIndex: selectActiveTooltipIndex(state),
-          activeLabel: selectActiveLabel(state),
-          activeTooltipIndex: selectActiveTooltipIndex(state),
-          isTooltipActive: selectIsTooltipActive(state)
-        };
-        handler(nextState, reactEvent);
-      } finally {
-        rafIdMap.delete(eventType);
-      }
-    });
-    rafIdMap.set(eventType, rafId);
-  }
-});
Index: de_modules/recharts/es6/state/graphicalItemsSlice.js
===================================================================
--- node_modules/recharts/es6/state/graphicalItemsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-
-/**
- * Unique ID of the graphical item.
- * This is used to identify the graphical item in the state and in the React tree.
- * This is required for every graphical item - it's either provided by the user or generated automatically.
- */
-
-var initialState = {
-  cartesianItems: [],
-  polarItems: []
-};
-var graphicalItemsSlice = createSlice({
-  name: 'graphicalItems',
-  initialState,
-  reducers: {
-    addCartesianGraphicalItem: {
-      reducer(state, action) {
-        state.cartesianItems.push(castDraft(action.payload));
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceCartesianGraphicalItem: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = current(state).cartesianItems.indexOf(castDraft(prev));
-        if (index > -1) {
-          state.cartesianItems[index] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeCartesianGraphicalItem: {
-      reducer(state, action) {
-        var index = current(state).cartesianItems.indexOf(castDraft(action.payload));
-        if (index > -1) {
-          state.cartesianItems.splice(index, 1);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    addPolarGraphicalItem: {
-      reducer(state, action) {
-        state.polarItems.push(castDraft(action.payload));
-      },
-      prepare: prepareAutoBatched()
-    },
-    removePolarGraphicalItem: {
-      reducer(state, action) {
-        var index = current(state).polarItems.indexOf(castDraft(action.payload));
-        if (index > -1) {
-          state.polarItems.splice(index, 1);
-        }
-      },
-      prepare: prepareAutoBatched()
-    }
-  }
-});
-export var {
-  addCartesianGraphicalItem,
-  replaceCartesianGraphicalItem,
-  removeCartesianGraphicalItem,
-  addPolarGraphicalItem,
-  removePolarGraphicalItem
-} = graphicalItemsSlice.actions;
-export var graphicalItemsReducer = graphicalItemsSlice.reducer;
Index: de_modules/recharts/es6/state/hooks.js
===================================================================
--- node_modules/recharts/es6/state/hooks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';
-import { useContext, useMemo } from 'react';
-import { RechartsReduxContext } from './RechartsReduxContext';
-var noopDispatch = a => a;
-export var useAppDispatch = () => {
-  var context = useContext(RechartsReduxContext);
-  if (context) {
-    return context.store.dispatch;
-  }
-  return noopDispatch;
-};
-var noop = () => {};
-var addNestedSubNoop = () => noop;
-var refEquality = (a, b) => a === b;
-
-/**
- * This is a recharts variant of `useSelector` from 'react-redux' package.
- *
- * The difference is that react-redux version will throw an Error when used outside of Redux context.
- *
- * This, recharts version, will return undefined instead.
- *
- * This is because we want to allow using our components outside the Chart wrapper,
- * and have people provide all props explicitly.
- *
- * If however they use the component inside a chart wrapper then those props become optional,
- * and we read them from Redux state instead.
- *
- * @param selector for pulling things out of Redux store; will not be called if the store is not accessible
- * @return whatever the selector returned; or undefined when outside of Redux store
- */
-export function useAppSelector(selector) {
-  var context = useContext(RechartsReduxContext);
-  var outOfContextSelector = useMemo(() => {
-    if (!context) {
-      return noop;
-    }
-    return state => {
-      if (state == null) {
-        return undefined;
-      }
-      return selector(state);
-    };
-  }, [context, selector]);
-  return useSyncExternalStoreWithSelector(context ? context.subscription.addNestedSub : addNestedSubNoop, context ? context.store.getState : noop, context ? context.store.getState : noop, outOfContextSelector, refEquality);
-}
Index: de_modules/recharts/es6/state/keyboardEventsMiddleware.js
===================================================================
--- node_modules/recharts/es6/state/keyboardEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';
-import { setKeyboardInteraction } from './tooltipSlice';
-import { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './selectors/tooltipSelectors';
-import { selectCoordinateForDefaultIndex } from './selectors/selectors';
-import { selectChartDirection, selectTooltipAxisDataKey } from './selectors/axisSelectors';
-import { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';
-export var keyDownAction = createAction('keyDown');
-export var focusAction = createAction('focus');
-export var keyboardEventsMiddleware = createListenerMiddleware();
-keyboardEventsMiddleware.startListening({
-  actionCreator: keyDownAction,
-  effect: (action, listenerApi) => {
-    var state = listenerApi.getState();
-    var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;
-    if (!accessibilityLayerIsActive) {
-      return;
-    }
-    var {
-      keyboardInteraction
-    } = state.tooltip;
-    var key = action.payload;
-    if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {
-      return;
-    }
-
-    // TODO this is lacking index for charts that do not support numeric indexes
-    var resolvedIndex = combineActiveTooltipIndex(keyboardInteraction, selectTooltipDisplayedData(state), selectTooltipAxisDataKey(state), selectTooltipAxisDomain(state));
-    var currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);
-    if (!Number.isFinite(currentIndex) || currentIndex < 0) {
-      return;
-    }
-    var tooltipTicks = selectTooltipAxisTicks(state);
-    if (key === 'Enter') {
-      var _coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(keyboardInteraction.index));
-      listenerApi.dispatch(setKeyboardInteraction({
-        active: !keyboardInteraction.active,
-        activeIndex: keyboardInteraction.index,
-        activeCoordinate: _coordinate
-      }));
-      return;
-    }
-    var direction = selectChartDirection(state);
-    var directionMultiplier = direction === 'left-to-right' ? 1 : -1;
-    var movement = key === 'ArrowRight' ? 1 : -1;
-    var nextIndex = currentIndex + movement * directionMultiplier;
-    if (tooltipTicks == null || nextIndex >= tooltipTicks.length || nextIndex < 0) {
-      return;
-    }
-    var coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));
-    listenerApi.dispatch(setKeyboardInteraction({
-      active: true,
-      activeIndex: nextIndex.toString(),
-      activeCoordinate: coordinate
-    }));
-  }
-});
-keyboardEventsMiddleware.startListening({
-  actionCreator: focusAction,
-  effect: (_action, listenerApi) => {
-    var state = listenerApi.getState();
-    var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;
-    if (!accessibilityLayerIsActive) {
-      return;
-    }
-    var {
-      keyboardInteraction
-    } = state.tooltip;
-    if (keyboardInteraction.active) {
-      return;
-    }
-    if (keyboardInteraction.index == null) {
-      var nextIndex = '0';
-      var coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));
-      listenerApi.dispatch(setKeyboardInteraction({
-        active: true,
-        activeIndex: nextIndex,
-        activeCoordinate: coordinate
-      }));
-    }
-  }
-});
Index: de_modules/recharts/es6/state/layoutSlice.js
===================================================================
--- node_modules/recharts/es6/state/layoutSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-var initialState = {
-  layoutType: 'horizontal',
-  width: 0,
-  height: 0,
-  margin: {
-    top: 5,
-    right: 5,
-    bottom: 5,
-    left: 5
-  },
-  scale: 1
-};
-var chartLayoutSlice = createSlice({
-  name: 'chartLayout',
-  initialState,
-  reducers: {
-    setLayout(state, action) {
-      state.layoutType = action.payload;
-    },
-    setChartSize(state, action) {
-      state.width = action.payload.width;
-      state.height = action.payload.height;
-    },
-    setMargin(state, action) {
-      var _action$payload$top, _action$payload$right, _action$payload$botto, _action$payload$left;
-      state.margin.top = (_action$payload$top = action.payload.top) !== null && _action$payload$top !== void 0 ? _action$payload$top : 0;
-      state.margin.right = (_action$payload$right = action.payload.right) !== null && _action$payload$right !== void 0 ? _action$payload$right : 0;
-      state.margin.bottom = (_action$payload$botto = action.payload.bottom) !== null && _action$payload$botto !== void 0 ? _action$payload$botto : 0;
-      state.margin.left = (_action$payload$left = action.payload.left) !== null && _action$payload$left !== void 0 ? _action$payload$left : 0;
-    },
-    setScale(state, action) {
-      state.scale = action.payload;
-    }
-  }
-});
-export var {
-  setMargin,
-  setLayout,
-  setChartSize,
-  setScale
-} = chartLayoutSlice.actions;
-export var chartLayoutReducer = chartLayoutSlice.reducer;
Index: de_modules/recharts/es6/state/legendSlice.js
===================================================================
--- node_modules/recharts/es6/state/legendSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-
-/**
- * The properties inside this state update independently of each other and quite often.
- * When selecting, never select the whole state because you are going to get
- * unnecessary re-renders. Select only the properties you need.
- *
- * This is why this state type is not exported - don't use it directly.
- */
-
-var initialState = {
-  settings: {
-    layout: 'horizontal',
-    align: 'center',
-    verticalAlign: 'middle',
-    itemSorter: 'value'
-  },
-  size: {
-    width: 0,
-    height: 0
-  },
-  payload: []
-};
-var legendSlice = createSlice({
-  name: 'legend',
-  initialState,
-  reducers: {
-    setLegendSize(state, action) {
-      state.size.width = action.payload.width;
-      state.size.height = action.payload.height;
-    },
-    setLegendSettings(state, action) {
-      state.settings.align = action.payload.align;
-      state.settings.layout = action.payload.layout;
-      state.settings.verticalAlign = action.payload.verticalAlign;
-      state.settings.itemSorter = action.payload.itemSorter;
-    },
-    addLegendPayload: {
-      reducer(state, action) {
-        state.payload.push(castDraft(action.payload));
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceLegendPayload: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = current(state).payload.indexOf(castDraft(prev));
-        if (index > -1) {
-          state.payload[index] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeLegendPayload: {
-      reducer(state, action) {
-        var index = current(state).payload.indexOf(castDraft(action.payload));
-        if (index > -1) {
-          state.payload.splice(index, 1);
-        }
-      },
-      prepare: prepareAutoBatched()
-    }
-  }
-});
-export var {
-  setLegendSize,
-  setLegendSettings,
-  addLegendPayload,
-  replaceLegendPayload,
-  removeLegendPayload
-} = legendSlice.actions;
-export var legendReducer = legendSlice.reducer;
Index: de_modules/recharts/es6/state/mouseEventsMiddleware.js
===================================================================
--- node_modules/recharts/es6/state/mouseEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';
-import { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';
-import { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';
-import { selectTooltipEventType } from './selectors/selectTooltipEventType';
-import { getChartPointer } from '../util/getChartPointer';
-export var mouseClickAction = createAction('mouseClick');
-export var mouseClickMiddleware = createListenerMiddleware();
-
-// TODO: there's a bug here when you click the chart the activeIndex resets to zero
-mouseClickMiddleware.startListening({
-  actionCreator: mouseClickAction,
-  effect: (action, listenerApi) => {
-    var mousePointer = action.payload;
-    var activeProps = selectActivePropsFromChartPointer(listenerApi.getState(), getChartPointer(mousePointer));
-    if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-      listenerApi.dispatch(setMouseClickAxisIndex({
-        activeIndex: activeProps.activeIndex,
-        activeDataKey: undefined,
-        activeCoordinate: activeProps.activeCoordinate
-      }));
-    }
-  }
-});
-export var mouseMoveAction = createAction('mouseMove');
-export var mouseMoveMiddleware = createListenerMiddleware();
-
-/*
- * This single rafId is safe because:
- * 1. Each chart has its own Redux store instance with its own middleware
- * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)
- * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position
- * This is different from externalEventsMiddleware which handles multiple event types
- * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.
- */
-var rafId = null;
-mouseMoveMiddleware.startListening({
-  actionCreator: mouseMoveAction,
-  effect: (action, listenerApi) => {
-    var mousePointer = action.payload;
-
-    // Cancel any pending animation frame
-    if (rafId !== null) {
-      cancelAnimationFrame(rafId);
-    }
-    var chartPointer = getChartPointer(mousePointer);
-
-    // Schedule the dispatch for the next animation frame
-    rafId = requestAnimationFrame(() => {
-      var state = listenerApi.getState();
-      var tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);
-      // this functionality only applies to charts that have axes
-      if (tooltipEventType === 'axis') {
-        var activeProps = selectActivePropsFromChartPointer(state, chartPointer);
-        if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-          listenerApi.dispatch(setMouseOverAxisIndex({
-            activeIndex: activeProps.activeIndex,
-            activeDataKey: undefined,
-            activeCoordinate: activeProps.activeCoordinate
-          }));
-        } else {
-          // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg
-          listenerApi.dispatch(mouseLeaveChart());
-        }
-      }
-      rafId = null;
-    });
-  }
-});
Index: de_modules/recharts/es6/state/optionsSlice.js
===================================================================
--- node_modules/recharts/es6/state/optionsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-import { isNan } from '../util/DataUtils';
-
-/**
- * These chart options are decided internally, by Recharts,
- * and will not change during the lifetime of the chart.
- *
- * Changing these options can be done by swapping the root element
- * which will make a brand-new Redux store.
- *
- * If you want to store options that can be changed by the user,
- * use UpdatableChartOptions in rootPropsSlice.ts.
- */
-
-export var arrayTooltipSearcher = (data, strIndex) => {
-  if (!strIndex) return undefined;
-  if (!Array.isArray(data)) return undefined;
-  var numIndex = Number.parseInt(strIndex, 10);
-  if (isNan(numIndex)) {
-    return undefined;
-  }
-  return data[numIndex];
-};
-var initialState = {
-  chartName: '',
-  tooltipPayloadSearcher: () => undefined,
-  eventEmitter: undefined,
-  defaultTooltipEventType: 'axis'
-};
-var optionsSlice = createSlice({
-  name: 'options',
-  initialState,
-  reducers: {
-    createEventEmitter: state => {
-      if (state.eventEmitter == null) {
-        state.eventEmitter = Symbol('rechartsEventEmitter');
-      }
-    }
-  }
-});
-export var optionsReducer = optionsSlice.reducer;
-export var {
-  createEventEmitter
-} = optionsSlice.actions;
Index: de_modules/recharts/es6/state/polarAxisSlice.js
===================================================================
--- node_modules/recharts/es6/state/polarAxisSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-var initialState = {
-  radiusAxis: {},
-  angleAxis: {}
-};
-var polarAxisSlice = createSlice({
-  name: 'polarAxis',
-  initialState,
-  reducers: {
-    addRadiusAxis(state, action) {
-      state.radiusAxis[action.payload.id] = castDraft(action.payload);
-    },
-    removeRadiusAxis(state, action) {
-      delete state.radiusAxis[action.payload.id];
-    },
-    addAngleAxis(state, action) {
-      state.angleAxis[action.payload.id] = castDraft(action.payload);
-    },
-    removeAngleAxis(state, action) {
-      delete state.angleAxis[action.payload.id];
-    }
-  }
-});
-export var {
-  addRadiusAxis,
-  removeRadiusAxis,
-  addAngleAxis,
-  removeAngleAxis
-} = polarAxisSlice.actions;
-export var polarAxisReducer = polarAxisSlice.reducer;
Index: de_modules/recharts/es6/state/polarOptionsSlice.js
===================================================================
--- node_modules/recharts/es6/state/polarOptionsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-var initialState = null;
-var reducers = {
-  updatePolarOptions: (_state, action) => {
-    return action.payload;
-  }
-};
-var polarOptionsSlice = createSlice({
-  name: 'polarOptions',
-  initialState,
-  reducers
-});
-export var {
-  updatePolarOptions
-} = polarOptionsSlice.actions;
-export var polarOptionsReducer = polarOptionsSlice.reducer;
Index: de_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js
===================================================================
--- node_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export function reduxDevtoolsJsonStringifyReplacer(key, value) {
-  if (value instanceof HTMLElement) {
-    return "HTMLElement <".concat(value.tagName, " class=\"").concat(value.className, "\">");
-  }
-  if (value === window) {
-    return 'global.window';
-  }
-  if (key === 'children' && typeof value === 'object' && value !== null) {
-    return '<<CHILDREN>>';
-  }
-  return value;
-}
Index: de_modules/recharts/es6/state/referenceElementsSlice.js
===================================================================
--- node_modules/recharts/es6/state/referenceElementsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-import { createSlice, current } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-var initialState = {
-  dots: [],
-  areas: [],
-  lines: []
-};
-export var referenceElementsSlice = createSlice({
-  name: 'referenceElements',
-  initialState,
-  reducers: {
-    addDot: (state, action) => {
-      state.dots.push(action.payload);
-    },
-    removeDot: (state, action) => {
-      var index = current(state).dots.findIndex(dot => dot === action.payload);
-      if (index !== -1) {
-        state.dots.splice(index, 1);
-      }
-    },
-    addArea: (state, action) => {
-      state.areas.push(action.payload);
-    },
-    removeArea: (state, action) => {
-      var index = current(state).areas.findIndex(area => area === action.payload);
-      if (index !== -1) {
-        state.areas.splice(index, 1);
-      }
-    },
-    addLine: (state, action) => {
-      state.lines.push(castDraft(action.payload));
-    },
-    removeLine: (state, action) => {
-      var index = current(state).lines.findIndex(line => line === action.payload);
-      if (index !== -1) {
-        state.lines.splice(index, 1);
-      }
-    }
-  }
-});
-export var {
-  addDot,
-  removeDot,
-  addArea,
-  removeArea,
-  addLine,
-  removeLine
-} = referenceElementsSlice.actions;
-export var referenceElementsReducer = referenceElementsSlice.reducer;
Index: de_modules/recharts/es6/state/rootPropsSlice.js
===================================================================
--- node_modules/recharts/es6/state/rootPropsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-
-/**
- * These are chart options that users can choose - which means they can also
- * choose to change them which should trigger a re-render.
- */
-
-export var initialState = {
-  accessibilityLayer: true,
-  barCategoryGap: '10%',
-  barGap: 4,
-  barSize: undefined,
-  className: undefined,
-  maxBarSize: undefined,
-  stackOffset: 'none',
-  syncId: undefined,
-  syncMethod: 'index',
-  baseValue: undefined,
-  reverseStackOrder: false
-};
-var rootPropsSlice = createSlice({
-  name: 'rootProps',
-  initialState,
-  reducers: {
-    updateOptions: (state, action) => {
-      var _action$payload$barGa;
-      state.accessibilityLayer = action.payload.accessibilityLayer;
-      state.barCategoryGap = action.payload.barCategoryGap;
-      state.barGap = (_action$payload$barGa = action.payload.barGap) !== null && _action$payload$barGa !== void 0 ? _action$payload$barGa : initialState.barGap;
-      state.barSize = action.payload.barSize;
-      state.maxBarSize = action.payload.maxBarSize;
-      state.stackOffset = action.payload.stackOffset;
-      state.syncId = action.payload.syncId;
-      state.syncMethod = action.payload.syncMethod;
-      state.className = action.payload.className;
-      state.baseValue = action.payload.baseValue;
-      state.reverseStackOrder = action.payload.reverseStackOrder;
-    }
-  }
-});
-export var rootPropsReducer = rootPropsSlice.reducer;
-export var {
-  updateOptions
-} = rootPropsSlice.actions;
Index: de_modules/recharts/es6/state/selectors/areaSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/areaSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,98 +1,0 @@
-import { createSelector } from 'reselect';
-import { computeArea } from '../../cartesian/Area';
-import { selectAxisWithScale, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';
-import { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';
-import { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';
-import { selectChartBaseValue } from './rootPropsSelectors';
-import { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';
-var selectXAxisWithScale = (state, graphicalItemId, isPanorama) => selectAxisWithScale(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-var selectXAxisTicks = (state, graphicalItemId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-var selectYAxisWithScale = (state, graphicalItemId, isPanorama) => selectAxisWithScale(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-var selectYAxisTicks = (state, graphicalItemId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-var selectBandSize = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {
-  if (isCategoricalAxis(layout, 'xAxis')) {
-    return getBandSizeOfAxis(xAxis, xAxisTicks, false);
-  }
-  return getBandSizeOfAxis(yAxis, yAxisTicks, false);
-});
-var pickAreaId = (_state, id) => id;
-
-/*
- * There is a race condition problem because we read some data from props and some from the state.
- * The state is updated through a dispatch and is one render behind,
- * and so we have this weird one tick render where the displayedData in one selector have the old dataKey
- * but the new dataKey in another selector.
- *
- * A proper fix is to either move everything into the state, or read the dataKey always from props
- * - but this is a smaller change.
- */
-var selectSynchronisedAreaSettings = createSelector([selectUnfilteredCartesianItems, pickAreaId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'area').find(item => item.id === id));
-var selectNumericalAxisType = state => {
-  var layout = selectChartLayout(state);
-  var isXAxisCategorical = isCategoricalAxis(layout, 'xAxis');
-  return isXAxisCategorical ? 'yAxis' : 'xAxis';
-};
-var selectNumericalAxisIdFromGraphicalItemId = (state, graphicalItemId) => {
-  var axisType = selectNumericalAxisType(state);
-  if (axisType === 'yAxis') {
-    return selectYAxisIdFromGraphicalItemId(state, graphicalItemId);
-  }
-  return selectXAxisIdFromGraphicalItemId(state, graphicalItemId);
-};
-var selectNumericalAxisStackGroups = (state, graphicalItemId, isPanorama) => selectStackGroups(state, selectNumericalAxisType(state), selectNumericalAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-export var selectGraphicalItemStackedData = createSelector([selectSynchronisedAreaSettings, selectNumericalAxisStackGroups], (areaSettings, stackGroups) => {
-  var _stackGroups$stackId;
-  if (areaSettings == null || stackGroups == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = areaSettings;
-  var stackSeriesIdentifier = getStackSeriesIdentifier(areaSettings);
-  if (stackId == null || stackSeriesIdentifier == null) {
-    return undefined;
-  }
-  var groups = (_stackGroups$stackId = stackGroups[stackId]) === null || _stackGroups$stackId === void 0 ? void 0 : _stackGroups$stackId.stackedData;
-  var found = groups === null || groups === void 0 ? void 0 : groups.find(v => v.key === stackSeriesIdentifier);
-  if (found == null) {
-    return undefined;
-  }
-  return found.map(item => [item[0], item[1]]);
-});
-export var selectArea = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectGraphicalItemStackedData, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectBandSize, selectSynchronisedAreaSettings, selectChartBaseValue], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, stackedData, _ref, bandSize, areaSettings, chartBaseValue) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (areaSettings == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null) {
-    return undefined;
-  }
-  var {
-    data
-  } = areaSettings;
-  var displayedData;
-  if (data && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return computeArea({
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataStartIndex,
-    areaSettings,
-    stackedData,
-    displayedData,
-    chartBaseValue,
-    bandSize
-  });
-});
Index: de_modules/recharts/es6/state/selectors/arrayEqualityCheck.js
===================================================================
--- node_modules/recharts/es6/state/selectors/arrayEqualityCheck.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.
- * If both arrays are non-empty, it checks for reference equality.
- * @param a
- * @param b
- */
-export function emptyArraysAreEqualCheck(a, b) {
-  if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {
-    // empty arrays are always equal, regardless of reference
-    return true;
-  }
-  return a === b;
-}
-
-/**
- * Checks if two arrays have the same contents in the same order.
- * @param a
- * @param b
- */
-export function arrayContentsAreEqualCheck(a, b) {
-  if (a.length === b.length) {
-    for (var i = 0; i < a.length; i++) {
-      if (a[i] !== b[i]) {
-        return false;
-      }
-    }
-    return true;
-  }
-  return false;
-}
Index: de_modules/recharts/es6/state/selectors/axisSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/axisSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1334 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import range from 'es-toolkit/compat/range';
-import * as d3Scales from 'victory-vendor/d3-scale';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { getDomainOfStackGroups, getStackedData, getValueByDataKey, isCategoricalAxis } from '../../util/ChartUtils';
-import { selectChartDataWithIndexes, selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';
-import { isWellFormedNumberDomain, numericalDomainSpecifiedWithoutRequiringData, parseNumericalUserDomain } from '../../util/isDomainSpecifiedByUser';
-import { getPercentValue, hasDuplicate, isNan, isNotNil, isNumOrStr, mathSign, upperFirst } from '../../util/DataUtils';
-import { isWellBehavedNumber } from '../../util/isWellBehavedNumber';
-import { getNiceTickValues, getTickValuesFixedDomain } from '../../util/scale';
-import { selectChartHeight, selectChartWidth } from './containerSelectors';
-import { selectAllXAxes, selectAllYAxes } from './selectAllAxes';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { selectBrushDimensions, selectBrushSettings } from './brushSelectors';
-import { selectBarCategoryGap, selectChartName, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';
-import { selectAngleAxis, selectAngleAxisRange, selectRadiusAxis, selectRadiusAxisRange } from './polarAxisSelectors';
-import { pickAxisType } from './pickAxisType';
-import { pickAxisId } from './pickAxisId';
-import { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';
-import { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';
-import { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';
-import { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';
-import { isStacked } from '../types/StackedGraphicalItem';
-import { numberDomainEqualityCheck } from './numberDomainEqualityCheck';
-import { emptyArraysAreEqualCheck } from './arrayEqualityCheck';
-import { selectTooltipAxisType } from './selectTooltipAxisType';
-import { selectTooltipAxisId } from './selectTooltipAxisId';
-import { rechartsScaleFactory } from '../../util/scale/RechartsScale';
-import { combineCheckedDomain } from './combiners/combineCheckedDomain';
-export var defaultNumericDomain = [0, 'auto'];
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-export var implicitXAxis = {
-  allowDataOverflow: false,
-  allowDecimals: true,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  dataKey: undefined,
-  domain: undefined,
-  height: 30,
-  hide: true,
-  id: 0,
-  includeHidden: false,
-  interval: 'preserveEnd',
-  minTickGap: 5,
-  mirror: false,
-  name: undefined,
-  orientation: 'bottom',
-  padding: {
-    left: 0,
-    right: 0
-  },
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickCount: 5,
-  tickFormatter: undefined,
-  ticks: undefined,
-  type: 'category',
-  unit: undefined
-};
-export var selectXAxisSettingsNoDefaults = (state, axisId) => {
-  return state.cartesianAxis.xAxis[axisId];
-};
-export var selectXAxisSettings = (state, axisId) => {
-  var axis = selectXAxisSettingsNoDefaults(state, axisId);
-  if (axis == null) {
-    return implicitXAxis;
-  }
-  return axis;
-};
-
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-export var implicitYAxis = {
-  allowDataOverflow: false,
-  allowDecimals: true,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  dataKey: undefined,
-  domain: defaultNumericDomain,
-  hide: true,
-  id: 0,
-  includeHidden: false,
-  interval: 'preserveEnd',
-  minTickGap: 5,
-  mirror: false,
-  name: undefined,
-  orientation: 'left',
-  padding: {
-    top: 0,
-    bottom: 0
-  },
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickCount: 5,
-  tickFormatter: undefined,
-  ticks: undefined,
-  type: 'number',
-  unit: undefined,
-  width: DEFAULT_Y_AXIS_WIDTH
-};
-export var selectYAxisSettingsNoDefaults = (state, axisId) => {
-  return state.cartesianAxis.yAxis[axisId];
-};
-export var selectYAxisSettings = (state, axisId) => {
-  var axis = selectYAxisSettingsNoDefaults(state, axisId);
-  if (axis == null) {
-    return implicitYAxis;
-  }
-  return axis;
-};
-export var implicitZAxis = {
-  domain: [0, 'auto'],
-  includeHidden: false,
-  reversed: false,
-  allowDataOverflow: false,
-  allowDuplicatedCategory: false,
-  dataKey: undefined,
-  id: 0,
-  name: '',
-  range: [64, 64],
-  scale: 'auto',
-  type: 'number',
-  unit: ''
-};
-export var selectZAxisSettings = (state, axisId) => {
-  var axis = state.cartesianAxis.zAxis[axisId];
-  if (axis == null) {
-    return implicitZAxis;
-  }
-  return axis;
-};
-export var selectBaseAxis = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    case 'zAxis':
-      {
-        return selectZAxisSettings(state, axisId);
-      }
-    case 'angleAxis':
-      {
-        return selectAngleAxis(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return selectRadiusAxis(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-var selectCartesianAxisSettings = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-
-/**
- * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.
- * @param state Root state
- * @param axisType xAxis | yAxis
- * @param axisId xAxisId | yAxisId
- * @returns axis settings object
- */
-export var selectRenderableAxisSettings = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    case 'angleAxis':
-      {
-        return selectAngleAxis(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return selectRadiusAxis(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-
-/**
- * @param state RechartsRootState
- * @return boolean true if there is at least one Bar or RadialBar
- */
-export var selectHasBar = state => state.graphicalItems.cartesianItems.some(item => item.type === 'bar') || state.graphicalItems.polarItems.some(item => item.type === 'radialBar');
-
-/**
- * Filters CartesianGraphicalItemSettings by the relevant axis ID
- * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'
- * @param axisId from props, defaults to 0
- *
- * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis
- */
-export function itemAxisPredicate(axisType, axisId) {
-  return item => {
-    switch (axisType) {
-      case 'xAxis':
-        // This is sensitive to the data type, as 0 !== '0'. I wonder if we should be more flexible. How does 2.x branch behave? TODO write test for that
-        return 'xAxisId' in item && item.xAxisId === axisId;
-      case 'yAxis':
-        return 'yAxisId' in item && item.yAxisId === axisId;
-      case 'zAxis':
-        return 'zAxisId' in item && item.zAxisId === axisId;
-      case 'angleAxis':
-        return 'angleAxisId' in item && item.angleAxisId === axisId;
-      case 'radiusAxis':
-        return 'radiusAxisId' in item && item.radiusAxisId === axisId;
-      default:
-        return false;
-    }
-  };
-}
-
-// TODO appears there is a bug where this selector is called from polar context, find and fix it.
-export var selectUnfilteredCartesianItems = state => state.graphicalItems.cartesianItems;
-var selectAxisPredicate = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);
-export var combineGraphicalItemsSettings = (graphicalItems, axisSettings, axisPredicate) => graphicalItems.filter(axisPredicate).filter(item => {
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.includeHidden) === true) {
-    return true;
-  }
-  return !item.hide;
-});
-export var selectCartesianItemsSettings = createSelector([selectUnfilteredCartesianItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings, {
-  memoizeOptions: {
-    resultEqualityCheck: emptyArraysAreEqualCheck
-  }
-});
-export var selectStackedCartesianItemsSettings = createSelector([selectCartesianItemsSettings], cartesianItems => {
-  return cartesianItems.filter(item => item.type === 'area' || item.type === 'bar').filter(isStacked);
-});
-export var filterGraphicalNotStackedItems = cartesianItems => cartesianItems.filter(item => !('stackId' in item) || item.stackId === undefined);
-var selectCartesianItemsSettingsExceptStacked = createSelector([selectCartesianItemsSettings], filterGraphicalNotStackedItems);
-export var combineGraphicalItemsData = cartesianItems => cartesianItems.map(item => item.data).filter(Boolean).flat(1);
-
-/**
- * This is a "cheap" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.
- * Also does not apply dataKey yet.
- * @param state RechartsRootState
- * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey
- */
-export var selectCartesianGraphicalItemsData = createSelector([selectCartesianItemsSettings], combineGraphicalItemsData, {
-  memoizeOptions: {
-    resultEqualityCheck: emptyArraysAreEqualCheck
-  }
-});
-export var combineDisplayedData = (graphicalItemsData, _ref) => {
-  var {
-    chartData = [],
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (graphicalItemsData.length > 0) {
-    /*
-     * There is no slicing when data is defined on graphical items. Why?
-     * Because Brush ignores data defined on graphical items,
-     * and does not render.
-     * So Brush will never show up in a Scatter chart for example.
-     * This is something we will need to fix.
-     *
-     * Now, when the root chart data is not defined, the dataEndIndex is 0,
-     * which means the itemsData will be sliced to an empty array anyway.
-     * But that's an implementation detail, and we can fix that too.
-     *
-     * Also, in absence of Axis dataKey, we use the dataKey from each item, respectively.
-     * This is the usual pattern for numerical axis, that is the one where bars go up:
-     * users don't specify any dataKey by default and expect the axis to "just match the data".
-     */
-    return graphicalItemsData;
-  }
-  return chartData.slice(dataStartIndex, dataEndIndex + 1);
-};
-
-/**
- * This selector will return all data there is in the chart: graphical items, chart root, all together.
- * Useful for figuring out an axis domain (because that needs to know of everything),
- * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).
- *
- * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.
- */
-export var selectDisplayedData = createSelector([selectCartesianGraphicalItemsData, selectChartDataWithIndexesIfNotInPanoramaPosition4], combineDisplayedData);
-export var combineAppliedValues = (data, axisSettings, items) => {
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    return data.map(item => ({
-      value: getValueByDataKey(item, axisSettings.dataKey)
-    }));
-  }
-  if (items.length > 0) {
-    return items.map(item => item.dataKey).flatMap(dataKey => data.map(entry => ({
-      value: getValueByDataKey(entry, dataKey)
-    })));
-  }
-  return data.map(entry => ({
-    value: entry
-  }));
-};
-
-/**
- * This selector will return all values with the appropriate dataKey applied on them.
- * Which dataKey is appropriate depends on where it is defined.
- *
- * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.
- */
-export var selectAllAppliedValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettings], combineAppliedValues);
-export function isErrorBarRelevantForAxisType(axisType, errorBar) {
-  switch (axisType) {
-    case 'xAxis':
-      return errorBar.direction === 'x';
-    case 'yAxis':
-      return errorBar.direction === 'y';
-    default:
-      return false;
-  }
-}
-function makeNumber(val) {
-  if (isNumOrStr(val) || val instanceof Date) {
-    var n = Number(val);
-    if (isWellBehavedNumber(n)) {
-      return n;
-    }
-  }
-  return undefined;
-}
-function makeDomain(val) {
-  if (Array.isArray(val)) {
-    var attempt = [makeNumber(val[0]), makeNumber(val[1])];
-    if (isWellFormedNumberDomain(attempt)) {
-      return attempt;
-    }
-    return undefined;
-  }
-  var n = makeNumber(val);
-  if (n == null) {
-    return undefined;
-  }
-  return [n, n];
-}
-function onlyAllowNumbers(data) {
-  return data.map(makeNumber).filter(isNotNil);
-}
-
-/**
- * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application
- * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.
- * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.
- * @return either undefined or an array of ErrorValue
- */
-export function getErrorDomainByDataKey(entry, appliedValue, relevantErrorBars) {
-  if (!relevantErrorBars || typeof appliedValue !== 'number' || isNan(appliedValue)) {
-    return [];
-  }
-  if (!relevantErrorBars.length) {
-    return [];
-  }
-  return onlyAllowNumbers(relevantErrorBars.flatMap(eb => {
-    var errorValue = getValueByDataKey(entry, eb.dataKey);
-    var lowBound, highBound;
-    if (Array.isArray(errorValue)) {
-      [lowBound, highBound] = errorValue;
-    } else {
-      lowBound = highBound = errorValue;
-    }
-    if (!isWellBehavedNumber(lowBound) || !isWellBehavedNumber(highBound)) {
-      return undefined;
-    }
-    return [appliedValue - lowBound, appliedValue + highBound];
-  }));
-}
-export var selectTooltipAxis = state => {
-  var axisType = selectTooltipAxisType(state);
-  var axisId = selectTooltipAxisId(state);
-  return selectRenderableAxisSettings(state, axisType, axisId);
-};
-export var selectTooltipAxisDataKey = createSelector([selectTooltipAxis], axis => axis === null || axis === void 0 ? void 0 : axis.dataKey);
-export var selectDisplayedStackedData = createSelector([selectStackedCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectTooltipAxis], combineDisplayedStackedData);
-export var combineStackGroups = (displayedData, items, stackOffsetType, reverseStackOrder) => {
-  var initialItemsGroups = {};
-  var itemsGroup = items.reduce((acc, item) => {
-    if (item.stackId == null) {
-      return acc;
-    }
-    var stack = acc[item.stackId];
-    if (stack == null) {
-      stack = [];
-    }
-    stack.push(item);
-    acc[item.stackId] = stack;
-    return acc;
-  }, initialItemsGroups);
-  return Object.fromEntries(Object.entries(itemsGroup).map(_ref2 => {
-    var [stackId, graphicalItems] = _ref2;
-    var orderedGraphicalItems = reverseStackOrder ? [...graphicalItems].reverse() : graphicalItems;
-    var dataKeys = orderedGraphicalItems.map(getStackSeriesIdentifier);
-    return [stackId, {
-      // @ts-expect-error getStackedData requires that the input is array of objects, Recharts does not test for that
-      stackedData: getStackedData(displayedData, dataKeys, stackOffsetType),
-      graphicalItems: orderedGraphicalItems
-    }];
-  }));
-};
-
-/**
- * Stack groups are groups of graphical items that stack on each other.
- * Stack is a function of axis type (X, Y), axis ID, and stack ID.
- * Graphical items that do not have a stack ID are not going to be present in stack groups.
- */
-export var selectStackGroups = createSelector([selectDisplayedStackedData, selectStackedCartesianItemsSettings, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);
-export var combineDomainOfStackGroups = (stackGroups, _ref3, axisType, domainFromUserPreference) => {
-  var {
-    dataStartIndex,
-    dataEndIndex
-  } = _ref3;
-  if (domainFromUserPreference != null) {
-    // User has specified a domain, so we respect that and we can skip computing anything else
-    return undefined;
-  }
-  if (axisType === 'zAxis') {
-    // ZAxis ignores stacks
-    return undefined;
-  }
-  var domainOfStackGroups = getDomainOfStackGroups(stackGroups, dataStartIndex, dataEndIndex);
-  if (domainOfStackGroups != null && domainOfStackGroups[0] === 0 && domainOfStackGroups[1] === 0) {
-    return undefined;
-  }
-  return domainOfStackGroups;
-};
-var selectAllowsDataOverflow = createSelector([selectBaseAxis], axisSettings => axisSettings.allowDataOverflow);
-export var getDomainDefinition = axisSettings => {
-  var _axisSettings$domain;
-  if (axisSettings == null || !('domain' in axisSettings)) {
-    return defaultNumericDomain;
-  }
-  if (axisSettings.domain != null) {
-    return axisSettings.domain;
-  }
-  if ('ticks' in axisSettings && axisSettings.ticks != null) {
-    if (axisSettings.type === 'number') {
-      var allValues = onlyAllowNumbers(axisSettings.ticks);
-      return [Math.min(...allValues), Math.max(...allValues)];
-    }
-    if (axisSettings.type === 'category') {
-      return axisSettings.ticks.map(String);
-    }
-  }
-  return (_axisSettings$domain = axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.domain) !== null && _axisSettings$domain !== void 0 ? _axisSettings$domain : defaultNumericDomain;
-};
-export var selectDomainDefinition = createSelector([selectBaseAxis], getDomainDefinition);
-
-/**
- * Under certain circumstances, we can determine the domain without looking at the data at all.
- * This is the case when the domain is explicitly specified as numbers, or when it is specified
- * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.
- *
- * In that case, this function will return the domain, otherwise it returns undefined.
- *
- * This is an optimization to avoid unnecessary data processing.
- * @param state
- * @param axisType
- * @param axisId
- * @param isPanorama
- */
-export var selectDomainFromUserPreference = createSelector([selectDomainDefinition, selectAllowsDataOverflow], numericalDomainSpecifiedWithoutRequiringData);
-export var selectDomainOfStackGroups = createSelector([selectStackGroups, selectChartDataWithIndexes, pickAxisType, selectDomainFromUserPreference], combineDomainOfStackGroups, {
-  memoizeOptions: {
-    resultEqualityCheck: numberDomainEqualityCheck
-  }
-});
-export var selectAllErrorBarSettings = state => state.errorBars;
-var combineRelevantErrorBarSettings = (cartesianItemsSettings, allErrorBarSettings, axisType) => {
-  return cartesianItemsSettings.flatMap(item => {
-    return allErrorBarSettings[item.id];
-  }).filter(Boolean).filter(e => {
-    return isErrorBarRelevantForAxisType(axisType, e);
-  });
-};
-export var mergeDomains = function mergeDomains() {
-  for (var _len = arguments.length, domains = new Array(_len), _key = 0; _key < _len; _key++) {
-    domains[_key] = arguments[_key];
-  }
-  var allDomains = domains.filter(Boolean);
-  if (allDomains.length === 0) {
-    return undefined;
-  }
-  var allValues = allDomains.flat();
-  var min = Math.min(...allValues);
-  var max = Math.max(...allValues);
-  return [min, max];
-};
-export var combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = (data, axisSettings, items, errorBars, axisType) => {
-  var lowerEnd, upperEnd;
-  if (items.length > 0) {
-    data.forEach(entry => {
-      items.forEach(item => {
-        var _errorBars$item$id, _axisSettings$dataKey;
-        var relevantErrorBars = (_errorBars$item$id = errorBars[item.id]) === null || _errorBars$item$id === void 0 ? void 0 : _errorBars$item$id.filter(errorBar => isErrorBarRelevantForAxisType(axisType, errorBar));
-        var valueByDataKey = getValueByDataKey(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);
-        var errorDomain = getErrorDomainByDataKey(entry, valueByDataKey, relevantErrorBars);
-        if (errorDomain.length >= 2) {
-          var localLower = Math.min(...errorDomain);
-          var localUpper = Math.max(...errorDomain);
-          if (lowerEnd == null || localLower < lowerEnd) {
-            lowerEnd = localLower;
-          }
-          if (upperEnd == null || localUpper > upperEnd) {
-            upperEnd = localUpper;
-          }
-        }
-        var dataValueDomain = makeDomain(valueByDataKey);
-        if (dataValueDomain != null) {
-          lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);
-          upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);
-        }
-      });
-    });
-  }
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    data.forEach(item => {
-      var dataValueDomain = makeDomain(getValueByDataKey(item, axisSettings.dataKey));
-      if (dataValueDomain != null) {
-        lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);
-        upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);
-      }
-    });
-  }
-  if (isWellBehavedNumber(lowerEnd) && isWellBehavedNumber(upperEnd)) {
-    return [lowerEnd, upperEnd];
-  }
-  return undefined;
-};
-var selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettingsExceptStacked, selectAllErrorBarSettings, pickAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {
-  memoizeOptions: {
-    resultEqualityCheck: numberDomainEqualityCheck
-  }
-});
-function onlyAllowNumbersAndStringsAndDates(item) {
-  var {
-    value
-  } = item;
-  if (isNumOrStr(value) || value instanceof Date) {
-    return value;
-  }
-  return undefined;
-}
-var computeDomainOfTypeCategory = (allDataSquished, axisSettings, isCategorical) => {
-  var categoricalDomain = allDataSquished.map(onlyAllowNumbersAndStringsAndDates).filter(v => v != null);
-  if (isCategorical && (axisSettings.dataKey == null || axisSettings.allowDuplicatedCategory && hasDuplicate(categoricalDomain))) {
-    /*
-     * 1. In an absence of dataKey, Recharts will use array indexes as its categorical domain
-     * 2. When category axis has duplicated text, serial numbers are used to generate scale
-     */
-    return range(0, allDataSquished.length);
-  }
-  if (axisSettings.allowDuplicatedCategory) {
-    return categoricalDomain;
-  }
-  return Array.from(new Set(categoricalDomain));
-};
-export var selectReferenceDots = state => state.referenceElements.dots;
-export var filterReferenceElements = (elements, axisType, axisId) => {
-  return elements.filter(el => el.ifOverflow === 'extendDomain').filter(el => {
-    if (axisType === 'xAxis') {
-      return el.xAxisId === axisId;
-    }
-    return el.yAxisId === axisId;
-  });
-};
-export var selectReferenceDotsByAxis = createSelector([selectReferenceDots, pickAxisType, pickAxisId], filterReferenceElements);
-export var selectReferenceAreas = state => state.referenceElements.areas;
-export var selectReferenceAreasByAxis = createSelector([selectReferenceAreas, pickAxisType, pickAxisId], filterReferenceElements);
-export var selectReferenceLines = state => state.referenceElements.lines;
-export var selectReferenceLinesByAxis = createSelector([selectReferenceLines, pickAxisType, pickAxisId], filterReferenceElements);
-export var combineDotsDomain = (dots, axisType) => {
-  if (dots == null) {
-    return undefined;
-  }
-  var allCoords = onlyAllowNumbers(dots.map(dot => axisType === 'xAxis' ? dot.x : dot.y));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-var selectReferenceDotsDomain = createSelector(selectReferenceDotsByAxis, pickAxisType, combineDotsDomain);
-export var combineAreasDomain = (areas, axisType) => {
-  if (areas == null) {
-    return undefined;
-  }
-  var allCoords = onlyAllowNumbers(areas.flatMap(area => [axisType === 'xAxis' ? area.x1 : area.y1, axisType === 'xAxis' ? area.x2 : area.y2]));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-var selectReferenceAreasDomain = createSelector([selectReferenceAreasByAxis, pickAxisType], combineAreasDomain);
-function extractXCoordinates(line) {
-  var _line$segment;
-  if (line.x != null) {
-    return onlyAllowNumbers([line.x]);
-  }
-  var segmentCoordinates = (_line$segment = line.segment) === null || _line$segment === void 0 ? void 0 : _line$segment.map(s => s.x);
-  if (segmentCoordinates == null || segmentCoordinates.length === 0) {
-    return [];
-  }
-  return onlyAllowNumbers(segmentCoordinates);
-}
-function extractYCoordinates(line) {
-  var _line$segment2;
-  if (line.y != null) {
-    return onlyAllowNumbers([line.y]);
-  }
-  var segmentCoordinates = (_line$segment2 = line.segment) === null || _line$segment2 === void 0 ? void 0 : _line$segment2.map(s => s.y);
-  if (segmentCoordinates == null || segmentCoordinates.length === 0) {
-    return [];
-  }
-  return onlyAllowNumbers(segmentCoordinates);
-}
-export var combineLinesDomain = (lines, axisType) => {
-  if (lines == null) {
-    return undefined;
-  }
-  var allCoords = lines.flatMap(line => axisType === 'xAxis' ? extractXCoordinates(line) : extractYCoordinates(line));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-var selectReferenceLinesDomain = createSelector([selectReferenceLinesByAxis, pickAxisType], combineLinesDomain);
-var selectReferenceElementsDomain = createSelector(selectReferenceDotsDomain, selectReferenceLinesDomain, selectReferenceAreasDomain, (dotsDomain, linesDomain, areasDomain) => {
-  return mergeDomains(dotsDomain, areasDomain, linesDomain);
-});
-export var combineNumericalDomain = (axisSettings, domainDefinition, domainFromUserPreference, domainOfStackGroups, dataAndErrorBarsDomain, referenceElementsDomain, layout, axisType) => {
-  if (domainFromUserPreference != null) {
-    // We're done! No need to compute anything else.
-    return domainFromUserPreference;
-  }
-  var shouldIncludeDomainOfStackGroups = layout === 'vertical' && axisType === 'xAxis' || layout === 'horizontal' && axisType === 'yAxis';
-  var mergedDomains = shouldIncludeDomainOfStackGroups ? mergeDomains(domainOfStackGroups, referenceElementsDomain, dataAndErrorBarsDomain) : mergeDomains(referenceElementsDomain, dataAndErrorBarsDomain);
-  return parseNumericalUserDomain(domainDefinition, mergedDomains, axisSettings.allowDataOverflow);
-};
-export var selectNumericalDomain = createSelector([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectReferenceElementsDomain, selectChartLayout, pickAxisType], combineNumericalDomain, {
-  memoizeOptions: {
-    resultEqualityCheck: numberDomainEqualityCheck
-  }
-});
-
-/**
- * Expand by design maps everything between 0 and 1,
- * there is nothing to compute.
- * See https://d3js.org/d3-shape/stack#stack-offsets
- */
-var expandDomain = [0, 1];
-export var combineAxisDomain = (axisSettings, layout, displayedData, allAppliedValues, stackOffsetType, axisType, numericalDomain) => {
-  if ((axisSettings == null || displayedData == null || displayedData.length === 0) && numericalDomain === undefined) {
-    return undefined;
-  }
-  var {
-    dataKey,
-    type
-  } = axisSettings;
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  if (isCategorical && dataKey == null) {
-    var _displayedData$length;
-    return range(0, (_displayedData$length = displayedData === null || displayedData === void 0 ? void 0 : displayedData.length) !== null && _displayedData$length !== void 0 ? _displayedData$length : 0);
-  }
-  if (type === 'category') {
-    return computeDomainOfTypeCategory(allAppliedValues, axisSettings, isCategorical);
-  }
-  if (stackOffsetType === 'expand') {
-    return expandDomain;
-  }
-  return numericalDomain;
-};
-export var selectAxisDomain = createSelector([selectBaseAxis, selectChartLayout, selectDisplayedData, selectAllAppliedValues, selectStackOffsetType, pickAxisType, selectNumericalDomain], combineAxisDomain);
-function isSupportedScaleName(name) {
-  return name in d3Scales;
-}
-export var combineRealScaleType = (axisConfig, hasBar, chartType) => {
-  if (axisConfig == null) {
-    return undefined;
-  }
-  var {
-    scale,
-    type
-  } = axisConfig;
-  if (scale === 'auto') {
-    if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {
-      return 'point';
-    }
-    if (type === 'category') {
-      return 'band';
-    }
-    return 'linear';
-  }
-  if (typeof scale === 'string') {
-    var name = "scale".concat(upperFirst(scale));
-    return isSupportedScaleName(name) ? name : 'point';
-  }
-  return undefined;
-};
-export var selectRealScaleType = createSelector([selectBaseAxis, selectHasBar, selectChartName], combineRealScaleType);
-export function combineScaleFunction(axis, realScaleType, axisDomain, axisRange) {
-  if (axisDomain == null || axisRange == null) {
-    return undefined;
-  }
-  if (typeof axis.scale === 'function') {
-    return rechartsScaleFactory(axis.scale, axisDomain, axisRange);
-  }
-  return rechartsScaleFactory(realScaleType, axisDomain, axisRange);
-}
-export var combineNiceTicks = (axisDomain, axisSettings, realScaleType) => {
-  var domainDefinition = getDomainDefinition(axisSettings);
-  if (realScaleType !== 'auto' && realScaleType !== 'linear') {
-    return undefined;
-  }
-  if (axisSettings != null && axisSettings.tickCount && Array.isArray(domainDefinition) && (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto') && isWellFormedNumberDomain(axisDomain)) {
-    return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);
-  }
-  if (axisSettings != null && axisSettings.tickCount && axisSettings.type === 'number' && isWellFormedNumberDomain(axisDomain)) {
-    return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);
-  }
-  return undefined;
-};
-export var selectNiceTicks = createSelector([selectAxisDomain, selectRenderableAxisSettings, selectRealScaleType], combineNiceTicks);
-export var combineAxisDomainWithNiceTicks = (axisSettings, domain, niceTicks, axisType) => {
-  if (
-  /*
-   * Angle axis for some reason uses nice ticks when rendering axis tick labels,
-   * but doesn't use nice ticks for extending domain like all the other axes do.
-   * Not really sure why? Is there a good reason,
-   * or is it just because someone added support for nice ticks to the other axes and forgot this one?
-   */
-  axisType !== 'angleAxis' && (axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.type) === 'number' && isWellFormedNumberDomain(domain) && Array.isArray(niceTicks) && niceTicks.length > 0) {
-    var _niceTicks$, _niceTicks;
-    var minFromDomain = domain[0];
-    var minFromTicks = (_niceTicks$ = niceTicks[0]) !== null && _niceTicks$ !== void 0 ? _niceTicks$ : 0;
-    var maxFromDomain = domain[1];
-    var maxFromTicks = (_niceTicks = niceTicks[niceTicks.length - 1]) !== null && _niceTicks !== void 0 ? _niceTicks : 0;
-    return [Math.min(minFromDomain, minFromTicks), Math.max(maxFromDomain, maxFromTicks)];
-  }
-  return domain;
-};
-export var selectAxisDomainIncludingNiceTicks = createSelector([selectBaseAxis, selectAxisDomain, selectNiceTicks, pickAxisType], combineAxisDomainWithNiceTicks);
-
-/**
- * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).
- * Ignores domain provided by user and only considers domain from data.
- *
- * The result is a number between 0 and 1.
- */
-export var selectSmallestDistanceBetweenValues = createSelector(selectAllAppliedValues, selectBaseAxis, (allDataSquished, axisSettings) => {
-  if (!axisSettings || axisSettings.type !== 'number') {
-    return undefined;
-  }
-  var smallestDistanceBetweenValues = Infinity;
-  var sortedValues = Array.from(onlyAllowNumbers(allDataSquished.map(d => d.value))).sort((a, b) => a - b);
-  var first = sortedValues[0];
-  var last = sortedValues[sortedValues.length - 1];
-  if (first == null || last == null) {
-    return Infinity;
-  }
-  var diff = last - first;
-  if (diff === 0) {
-    return Infinity;
-  }
-  // Only do n - 1 distance calculations because there's only n - 1 distances between n values.
-  for (var i = 0; i < sortedValues.length - 1; i++) {
-    var curr = sortedValues[i];
-    var next = sortedValues[i + 1];
-    if (curr == null || next == null) {
-      continue;
-    }
-    var distance = next - curr;
-    smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);
-  }
-  return smallestDistanceBetweenValues / diff;
-});
-var selectCalculatedPadding = createSelector(selectSmallestDistanceBetweenValues, selectChartLayout, selectBarCategoryGap, selectChartOffsetInternal, (_1, _2, _3, _4, padding) => padding, (smallestDistanceInPercent, layout, barCategoryGap, offset, padding) => {
-  if (!isWellBehavedNumber(smallestDistanceInPercent)) {
-    return 0;
-  }
-  var rangeWidth = layout === 'vertical' ? offset.height : offset.width;
-  if (padding === 'gap') {
-    return smallestDistanceInPercent * rangeWidth / 2;
-  }
-  if (padding === 'no-gap') {
-    var gap = getPercentValue(barCategoryGap, smallestDistanceInPercent * rangeWidth);
-    var halfBand = smallestDistanceInPercent * rangeWidth / 2;
-    return halfBand - gap - (halfBand - gap) / rangeWidth * gap;
-  }
-  return 0;
-});
-export var selectCalculatedXAxisPadding = (state, axisId, isPanorama) => {
-  var xAxisSettings = selectXAxisSettings(state, axisId);
-  if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {
-    return 0;
-  }
-  return selectCalculatedPadding(state, 'xAxis', axisId, isPanorama, xAxisSettings.padding);
-};
-export var selectCalculatedYAxisPadding = (state, axisId, isPanorama) => {
-  var yAxisSettings = selectYAxisSettings(state, axisId);
-  if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {
-    return 0;
-  }
-  return selectCalculatedPadding(state, 'yAxis', axisId, isPanorama, yAxisSettings.padding);
-};
-var selectXAxisPadding = createSelector(selectXAxisSettings, selectCalculatedXAxisPadding, (xAxisSettings, calculated) => {
-  var _padding$left, _padding$right;
-  if (xAxisSettings == null) {
-    return {
-      left: 0,
-      right: 0
-    };
-  }
-  var {
-    padding
-  } = xAxisSettings;
-  if (typeof padding === 'string') {
-    return {
-      left: calculated,
-      right: calculated
-    };
-  }
-  return {
-    left: ((_padding$left = padding.left) !== null && _padding$left !== void 0 ? _padding$left : 0) + calculated,
-    right: ((_padding$right = padding.right) !== null && _padding$right !== void 0 ? _padding$right : 0) + calculated
-  };
-});
-var selectYAxisPadding = createSelector(selectYAxisSettings, selectCalculatedYAxisPadding, (yAxisSettings, calculated) => {
-  var _padding$top, _padding$bottom;
-  if (yAxisSettings == null) {
-    return {
-      top: 0,
-      bottom: 0
-    };
-  }
-  var {
-    padding
-  } = yAxisSettings;
-  if (typeof padding === 'string') {
-    return {
-      top: calculated,
-      bottom: calculated
-    };
-  }
-  return {
-    top: ((_padding$top = padding.top) !== null && _padding$top !== void 0 ? _padding$top : 0) + calculated,
-    bottom: ((_padding$bottom = padding.bottom) !== null && _padding$bottom !== void 0 ? _padding$bottom : 0) + calculated
-  };
-});
-export var combineXAxisRange = createSelector([selectChartOffsetInternal, selectXAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, padding, brushDimensions, _ref4, isPanorama) => {
-  var {
-    padding: brushPadding
-  } = _ref4;
-  if (isPanorama) {
-    return [brushPadding.left, brushDimensions.width - brushPadding.right];
-  }
-  return [offset.left + padding.left, offset.left + offset.width - padding.right];
-});
-export var combineYAxisRange = createSelector([selectChartOffsetInternal, selectChartLayout, selectYAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, layout, padding, brushDimensions, _ref5, isPanorama) => {
-  var {
-    padding: brushPadding
-  } = _ref5;
-  if (isPanorama) {
-    return [brushDimensions.height - brushPadding.bottom, brushPadding.top];
-  }
-  if (layout === 'horizontal') {
-    return [offset.top + offset.height - padding.bottom, offset.top + padding.top];
-  }
-  return [offset.top + padding.top, offset.top + offset.height - padding.bottom];
-});
-export var selectAxisRange = (state, axisType, axisId, isPanorama) => {
-  var _selectZAxisSettings;
-  switch (axisType) {
-    case 'xAxis':
-      return combineXAxisRange(state, axisId, isPanorama);
-    case 'yAxis':
-      return combineYAxisRange(state, axisId, isPanorama);
-    case 'zAxis':
-      return (_selectZAxisSettings = selectZAxisSettings(state, axisId)) === null || _selectZAxisSettings === void 0 ? void 0 : _selectZAxisSettings.range;
-    case 'angleAxis':
-      return selectAngleAxisRange(state);
-    case 'radiusAxis':
-      return selectRadiusAxisRange(state, axisId);
-    default:
-      return undefined;
-  }
-};
-export var selectAxisRangeWithReverse = createSelector([selectBaseAxis, selectAxisRange], combineAxisRangeWithReverse);
-var selectCheckedAxisDomain = createSelector([selectRealScaleType, selectAxisDomainIncludingNiceTicks], combineCheckedDomain);
-export var selectAxisScale = createSelector([selectBaseAxis, selectRealScaleType, selectCheckedAxisDomain, selectAxisRangeWithReverse], combineScaleFunction);
-export var selectErrorBarsSettings = createSelector([selectCartesianItemsSettings, selectAllErrorBarSettings, pickAxisType], combineRelevantErrorBarSettings);
-function compareIds(a, b) {
-  if (a.id < b.id) {
-    return -1;
-  }
-  if (a.id > b.id) {
-    return 1;
-  }
-  return 0;
-}
-var pickAxisOrientation = (_state, orientation) => orientation;
-var pickMirror = (_state, _orientation, mirror) => mirror;
-var selectAllXAxesWithOffsetType = createSelector(selectAllXAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));
-var selectAllYAxesWithOffsetType = createSelector(selectAllYAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));
-var getXAxisSize = (offset, axisSettings) => {
-  return {
-    width: offset.width,
-    height: axisSettings.height
-  };
-};
-var getYAxisSize = (offset, axisSettings) => {
-  var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;
-  return {
-    width,
-    height: offset.height
-  };
-};
-export var selectXAxisSize = createSelector(selectChartOffsetInternal, selectXAxisSettings, getXAxisSize);
-var combineXAxisPositionStartingPoint = (offset, orientation, chartHeight) => {
-  switch (orientation) {
-    case 'top':
-      return offset.top;
-    case 'bottom':
-      return chartHeight - offset.bottom;
-    default:
-      return 0;
-  }
-};
-var combineYAxisPositionStartingPoint = (offset, orientation, chartWidth) => {
-  switch (orientation) {
-    case 'left':
-      return offset.left;
-    case 'right':
-      return chartWidth - offset.right;
-    default:
-      return 0;
-  }
-};
-export var selectAllXAxesOffsetSteps = createSelector(selectChartHeight, selectChartOffsetInternal, selectAllXAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartHeight, offset, allAxesWithSameOffsetType, orientation, mirror) => {
-  var steps = {};
-  var position;
-  allAxesWithSameOffsetType.forEach(axis => {
-    var axisSize = getXAxisSize(offset, axis);
-    if (position == null) {
-      position = combineXAxisPositionStartingPoint(offset, orientation, chartHeight);
-    }
-    var needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;
-    steps[axis.id] = position - Number(needSpace) * axisSize.height;
-    position += (needSpace ? -1 : 1) * axisSize.height;
-  });
-  return steps;
-});
-export var selectAllYAxesOffsetSteps = createSelector(selectChartWidth, selectChartOffsetInternal, selectAllYAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartWidth, offset, allAxesWithSameOffsetType, orientation, mirror) => {
-  var steps = {};
-  var position;
-  allAxesWithSameOffsetType.forEach(axis => {
-    var axisSize = getYAxisSize(offset, axis);
-    if (position == null) {
-      position = combineYAxisPositionStartingPoint(offset, orientation, chartWidth);
-    }
-    var needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;
-    steps[axis.id] = position - Number(needSpace) * axisSize.width;
-    position += (needSpace ? -1 : 1) * axisSize.width;
-  });
-  return steps;
-});
-var selectXAxisOffsetSteps = (state, axisId) => {
-  var axisSettings = selectXAxisSettings(state, axisId);
-  if (axisSettings == null) {
-    return undefined;
-  }
-  return selectAllXAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);
-};
-export var selectXAxisPosition = createSelector([selectChartOffsetInternal, selectXAxisSettings, selectXAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {
-  if (axisSettings == null) {
-    return undefined;
-  }
-  var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];
-  if (stepOfThisAxis == null) {
-    return {
-      x: offset.left,
-      y: 0
-    };
-  }
-  return {
-    x: offset.left,
-    y: stepOfThisAxis
-  };
-});
-var selectYAxisOffsetSteps = (state, axisId) => {
-  var axisSettings = selectYAxisSettings(state, axisId);
-  if (axisSettings == null) {
-    return undefined;
-  }
-  return selectAllYAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);
-};
-export var selectYAxisPosition = createSelector([selectChartOffsetInternal, selectYAxisSettings, selectYAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {
-  if (axisSettings == null) {
-    return undefined;
-  }
-  var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];
-  if (stepOfThisAxis == null) {
-    return {
-      x: 0,
-      y: offset.top
-    };
-  }
-  return {
-    x: stepOfThisAxis,
-    y: offset.top
-  };
-});
-export var selectYAxisSize = createSelector(selectChartOffsetInternal, selectYAxisSettings, (offset, axisSettings) => {
-  var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;
-  return {
-    width,
-    height: offset.height
-  };
-});
-export var selectCartesianAxisSize = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSize(state, axisId).width;
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSize(state, axisId).height;
-      }
-    default:
-      {
-        return undefined;
-      }
-  }
-};
-export var combineDuplicateDomain = (chartLayout, appliedValues, axis, axisType) => {
-  if (axis == null) {
-    return undefined;
-  }
-  var {
-    allowDuplicatedCategory,
-    type,
-    dataKey
-  } = axis;
-  var isCategorical = isCategoricalAxis(chartLayout, axisType);
-  var allData = appliedValues.map(av => av.value);
-  if (dataKey && isCategorical && type === 'category' && allowDuplicatedCategory && hasDuplicate(allData)) {
-    return allData;
-  }
-  return undefined;
-};
-export var selectDuplicateDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectBaseAxis, pickAxisType], combineDuplicateDomain);
-export var combineCategoricalDomain = (layout, appliedValues, axis, axisType) => {
-  if (axis == null || axis.dataKey == null) {
-    return undefined;
-  }
-  var {
-    type,
-    scale
-  } = axis;
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  if (isCategorical && (type === 'number' || scale !== 'auto')) {
-    return appliedValues.map(d => d.value);
-  }
-  return undefined;
-};
-export var selectCategoricalDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectRenderableAxisSettings, pickAxisType], combineCategoricalDomain);
-export var selectAxisPropsNeededForCartesianGridTicksGenerator = createSelector([selectChartLayout, selectCartesianAxisSettings, selectRealScaleType, selectAxisScale, selectDuplicateDomain, selectCategoricalDomain, selectAxisRange, selectNiceTicks, pickAxisType], (layout, axis, realScaleType, scale, duplicateDomain, categoricalDomain, axisRange, niceTicks, axisType) => {
-  if (axis == null) {
-    return undefined;
-  }
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  return {
-    angle: axis.angle,
-    interval: axis.interval,
-    minTickGap: axis.minTickGap,
-    orientation: axis.orientation,
-    tick: axis.tick,
-    tickCount: axis.tickCount,
-    tickFormatter: axis.tickFormatter,
-    ticks: axis.ticks,
-    type: axis.type,
-    unit: axis.unit,
-    axisType,
-    categoricalDomain,
-    duplicateDomain,
-    isCategorical,
-    niceTicks,
-    range: axisRange,
-    realScaleType,
-    scale
-  };
-});
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export var combineAxisTicks = (layout, axis, realScaleType, scale, niceTicks, axisRange, duplicateDomain, categoricalDomain, axisType) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  var {
-    type,
-    ticks,
-    tickCount
-  } = axis;
-  var offsetForBand =
-  // @ts-expect-error This is testing for `scaleBand` but for band axis the type is reported as `band` so this looks like a dead code with a workaround elsewhere?
-  realScaleType === 'scaleBand' && typeof scale.bandwidth === 'function' ? scale.bandwidth() / 2 : 2;
-  var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && axisRange != null && axisRange.length >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;
-
-  // The ticks set by user should only affect the ticks adjacent to axis line
-  var ticksOrNiceTicks = ticks || niceTicks;
-  if (ticksOrNiceTicks) {
-    return ticksOrNiceTicks.map((entry, index) => {
-      var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;
-      var scaled = scale.map(scaleContent);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        index,
-        coordinate: scaled + offset,
-        value: entry,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-  if (scale.ticks) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!isWellBehavedNumber(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(isNotNil);
-};
-export var selectTicksOfAxis = createSelector([selectChartLayout, selectRenderableAxisSettings, selectRealScaleType, selectAxisScale, selectNiceTicks, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineAxisTicks);
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export var combineGraphicalItemTicks = (layout, axis, scale, axisRange, duplicateDomain, categoricalDomain, axisType) => {
-  if (axis == null || scale == null || axisRange == null || axisRange[0] === axisRange[1]) {
-    return undefined;
-  }
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  var {
-    tickCount
-  } = axis;
-  var offset = 0;
-  offset = axisType === 'angleAxis' && (axisRange === null || axisRange === void 0 ? void 0 : axisRange.length) >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-  if (scale.ticks) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!isWellBehavedNumber(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use unknown as index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(isNotNil);
-};
-export var selectTicksOfGraphicalItem = createSelector([selectChartLayout, selectRenderableAxisSettings, selectAxisScale, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineGraphicalItemTicks);
-
-/**
- * This is the internal representation of an axis along with its scale function.
- * Here we have already computed the scale function for the axis,
- * and replaced the union type of scale (string | function) with just the function type.
- */
-
-export var selectAxisWithScale = createSelector(selectBaseAxis, selectAxisScale, (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-var selectZAxisScale = createSelector([selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse], combineScaleFunction);
-export var selectZAxisWithScale = createSelector((state, _axisType, axisId) => selectZAxisSettings(state, axisId), selectZAxisScale, (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-
-/**
- * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.
- */
-
-export var selectChartDirection = createSelector([selectChartLayout, selectAllXAxes, selectAllYAxes], (layout, allXAxes, allYAxes) => {
-  switch (layout) {
-    case 'horizontal':
-      {
-        return allXAxes.some(axis => axis.reversed) ? 'right-to-left' : 'left-to-right';
-      }
-    case 'vertical':
-      {
-        return allYAxes.some(axis => axis.reversed) ? 'bottom-to-top' : 'top-to-bottom';
-      }
-    // TODO: make this better. For now, right arrow triggers "forward", left arrow "back"
-    // however, the tooltip moves an unintuitive direction because of how the indices are rendered
-    case 'centric':
-    case 'radial':
-      {
-        return 'left-to-right';
-      }
-    default:
-      {
-        return undefined;
-      }
-  }
-});
Index: de_modules/recharts/es6/state/selectors/barSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/barSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,163 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectAxisWithScale, selectCartesianAxisSize, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';
-import { isNullish } from '../../util/DataUtils';
-import { getBandSizeOfAxis } from '../../util/ChartUtils';
-import { computeBarRectangles } from '../../cartesian/Bar';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';
-import { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';
-import { combineBarSizeList } from './combiners/combineBarSizeList';
-import { combineAllBarPositions } from './combiners/combineAllBarPositions';
-import { combineStackedData } from './combiners/combineStackedData';
-import { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';
-import { combineBarPosition } from './combiners/combineBarPosition';
-var pickIsPanorama = (_state, _id, isPanorama) => isPanorama;
-var pickBarId = (_state, id) => id;
-var selectSynchronisedBarSettings = createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));
-export var selectMaxBarSize = createSelector([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);
-var pickCells = (_state, _id, _isPanorama, cells) => cells;
-export var selectAllVisibleBars = createSelector([selectChartLayout, selectUnfilteredCartesianItems, selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {
-  if (layout === 'horizontal') {
-    return i.xAxisId === xAxisId;
-  }
-  return i.yAxisId === yAxisId;
-}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));
-var selectBarStackGroups = (state, id, isPanorama) => {
-  var layout = selectChartLayout(state);
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  if (layout === 'horizontal') {
-    return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);
-};
-export var selectBarCartesianAxisSize = (state, id) => {
-  var layout = selectChartLayout(state);
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  if (layout === 'horizontal') {
-    return selectCartesianAxisSize(state, 'xAxis', xAxisId);
-  }
-  return selectCartesianAxisSize(state, 'yAxis', yAxisId);
-};
-export var selectBarSizeList = createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);
-export var selectBarBandSize = (state, id, isPanorama) => {
-  var _ref, _getBandSizeOfAxis;
-  var barSettings = selectSynchronisedBarSettings(state, id);
-  if (barSettings == null) {
-    return 0;
-  }
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return 0;
-  }
-  var layout = selectChartLayout(state);
-  var globalMaxBarSize = selectRootMaxBarSize(state);
-  var {
-    maxBarSize: childMaxBarSize
-  } = barSettings;
-  var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  var axis, ticks;
-  if (layout === 'horizontal') {
-    axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);
-    ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);
-  } else {
-    axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);
-    ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;
-};
-export var selectAxisBandSize = (state, id, isPanorama) => {
-  var layout = selectChartLayout(state);
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  var axis, ticks;
-  if (layout === 'horizontal') {
-    axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);
-    ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);
-  } else {
-    axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);
-    ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return getBandSizeOfAxis(axis, ticks);
-};
-export var selectAllBarPositions = createSelector([selectBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], combineAllBarPositions);
-var selectXAxisWithScale = (state, id, isPanorama) => {
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null) {
-    return undefined;
-  }
-  return selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);
-};
-var selectYAxisWithScale = (state, id, isPanorama) => {
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (yAxisId == null) {
-    return undefined;
-  }
-  return selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);
-};
-var selectXAxisTicks = (state, id, isPanorama) => {
-  var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);
-  if (xAxisId == null) {
-    return undefined;
-  }
-  return selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);
-};
-var selectYAxisTicks = (state, id, isPanorama) => {
-  var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);
-  if (yAxisId == null) {
-    return undefined;
-  }
-  return selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);
-};
-export var selectBarPosition = createSelector([selectAllBarPositions, selectSynchronisedBarSettings], combineBarPosition);
-export var selectStackedDataOfItem = createSelector([selectBarStackGroups, selectSynchronisedBarSettings], combineStackedData);
-export var selectBarRectangles = createSelector([selectChartOffsetInternal, selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, selectChartLayout, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref2, bandSize, stackedData, barSettings, cells) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref2;
-  if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {
-    return undefined;
-  }
-  var {
-    data
-  } = barSettings;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return computeBarRectangles({
-    layout,
-    barSettings,
-    pos,
-    parentViewBox: axisViewBox,
-    bandSize,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    stackedData,
-    displayedData,
-    offset,
-    cells,
-    dataStartIndex
-  });
-});
Index: de_modules/recharts/es6/state/selectors/barStackSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/barStackSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectUnfilteredCartesianItems } from './axisSelectors';
-import { selectBarRectangles } from './barSelectors';
-var pickStackId = (state, stackId) => stackId;
-var pickIsPanorama = (state, stackId, isPanorama) => isPanorama;
-export var selectAllBarsInStack = createSelector([pickStackId, selectUnfilteredCartesianItems, pickIsPanorama], (stackId, allItems, isPanorama) => {
-  return allItems.filter(i => i.type === 'bar').filter(i => i.stackId === stackId).filter(i => i.isPanorama === isPanorama).filter(i => !i.hide);
-});
-var selectAllBarIdsInStack = createSelector([selectAllBarsInStack], allBars => {
-  return allBars.map(bar => bar.id);
-});
-/**
- * Takes two rectangles and returns a new rectangle that encompasses both.
- * It takes the minimum x and y, and the maximum width and height.
- * It handles overlapping rectangles, and rectangles with a gap between them.
- * @param rect1
- * @param rect2
- */
-export var expandRectangle = (rect1, rect2) => {
-  if (!rect1) {
-    return rect2;
-  }
-  if (!rect2) {
-    return rect1;
-  }
-  var x = Math.min(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);
-  var y = Math.min(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);
-  var maxX = Math.max(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);
-  var maxY = Math.max(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);
-  var width = maxX - x;
-  var height = maxY - y;
-  return {
-    x,
-    y,
-    width,
-    height
-  };
-};
-var combineStackRects = (state, stackId, isPanorama) => {
-  var allBarIds = selectAllBarIdsInStack(state, stackId, isPanorama);
-  var stackRects = [];
-  allBarIds.forEach(barId => {
-    var rectangles = selectBarRectangles(state, barId, isPanorama, undefined);
-    rectangles === null || rectangles === void 0 || rectangles.forEach((rect, index) => {
-      stackRects[index] = expandRectangle(stackRects[index], rect);
-    });
-  });
-  return stackRects;
-};
-export var selectStackRects = createSelector([state => state, pickStackId, pickIsPanorama], combineStackRects);
Index: de_modules/recharts/es6/state/selectors/brushSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/brushSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { selectMargin } from './containerSelectors';
-import { isNumber } from '../../util/DataUtils';
-export var selectBrushSettings = state => state.brush;
-export var selectBrushDimensions = createSelector([selectBrushSettings, selectChartOffsetInternal, selectMargin], (brushSettings, offset, margin) => ({
-  height: brushSettings.height,
-  x: isNumber(brushSettings.x) ? brushSettings.x : offset.left,
-  y: isNumber(brushSettings.y) ? brushSettings.y : offset.top + offset.height + offset.brushBottom - ((margin === null || margin === void 0 ? void 0 : margin.bottom) || 0),
-  width: isNumber(brushSettings.width) ? brushSettings.width : offset.width
-}));
Index: de_modules/recharts/es6/state/selectors/combiners/combineActiveLabel.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineActiveLabel.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { isNan } from '../../../util/DataUtils';
-export var combineActiveLabel = (tooltipTicks, activeIndex) => {
-  var _tooltipTicks$n;
-  var n = Number(activeIndex);
-  if (isNan(n) || activeIndex == null) {
-    return undefined;
-  }
-  return n >= 0 ? tooltipTicks === null || tooltipTicks === void 0 || (_tooltipTicks$n = tooltipTicks[n]) === null || _tooltipTicks$n === void 0 ? void 0 : _tooltipTicks$n.value : undefined;
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineActiveTooltipIndex.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineActiveTooltipIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';
-import { getValueByDataKey } from '../../../util/ChartUtils';
-import { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';
-function toFiniteNumber(value) {
-  if (typeof value === 'number') {
-    return Number.isFinite(value) ? value : undefined;
-  }
-  if (value instanceof Date) {
-    var numericValue = value.valueOf();
-    return Number.isFinite(numericValue) ? numericValue : undefined;
-  }
-  var parsed = Number(value);
-  return Number.isFinite(parsed) ? parsed : undefined;
-}
-function isValueWithinNumberDomain(value, domain) {
-  var numericValue = toFiniteNumber(value);
-  var lowerBound = domain[0];
-  var upperBound = domain[1];
-  if (numericValue === undefined) {
-    return false;
-  }
-  var min = Math.min(lowerBound, upperBound);
-  var max = Math.max(lowerBound, upperBound);
-  return numericValue >= min && numericValue <= max;
-}
-function isValueWithinDomain(entry, axisDataKey, domain) {
-  if (domain == null || axisDataKey == null) {
-    return true;
-  }
-  var value = getValueByDataKey(entry, axisDataKey);
-  if (value == null) {
-    return true;
-  }
-  if (!isWellFormedNumberDomain(domain)) {
-    return true;
-  }
-  return isValueWithinNumberDomain(value, domain);
-}
-export var combineActiveTooltipIndex = (tooltipInteraction, chartData, axisDataKey, domain) => {
-  var desiredIndex = tooltipInteraction === null || tooltipInteraction === void 0 ? void 0 : tooltipInteraction.index;
-  if (desiredIndex == null) {
-    return null;
-  }
-  var indexAsNumber = Number(desiredIndex);
-  if (!isWellBehavedNumber(indexAsNumber)) {
-    // this is for charts like Sankey and Treemap that do not support numerical indexes. We need a proper solution for this before we can start supporting keyboard events on these charts.
-    return desiredIndex;
-  }
-
-  /*
-   * Zero is a trivial limit for single-dimensional charts like Line and Area,
-   * but this also needs a support for multidimensional charts like Sankey and Treemap! TODO
-   */
-  var lowerLimit = 0;
-  var upperLimit = +Infinity;
-  if (chartData.length > 0) {
-    upperLimit = chartData.length - 1;
-  }
-
-  // now let's clamp the desiredIndex between the limits
-  var clampedIndex = Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit));
-  var entry = chartData[clampedIndex];
-  if (entry == null) {
-    return String(clampedIndex);
-  }
-  if (!isValueWithinDomain(entry, axisDataKey, domain)) {
-    return null;
-  }
-  return String(clampedIndex);
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineAllBarPositions.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineAllBarPositions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { getPercentValue, isNullish } from '../../../util/DataUtils';
-import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';
-function getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {
-  var _sizeList$;
-  var len = sizeList.length;
-  if (len < 1) {
-    return undefined;
-  }
-  var realBarGap = getPercentValue(barGap, bandSize, 0, true);
-  var result;
-  var initialValue = [];
-
-  // whether is barSize set by user
-  // Okay but why does it check only for the first element? What if the first element is set but others are not?
-  if (isWellBehavedNumber((_sizeList$ = sizeList[0]) === null || _sizeList$ === void 0 ? void 0 : _sizeList$.barSize)) {
-    var useFull = false;
-    var fullBarSize = bandSize / len;
-    var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);
-    sum += (len - 1) * realBarGap;
-    if (sum >= bandSize) {
-      sum -= (len - 1) * realBarGap;
-      realBarGap = 0;
-    }
-    if (sum >= bandSize && fullBarSize > 0) {
-      useFull = true;
-      fullBarSize *= 0.9;
-      sum = len * fullBarSize;
-    }
-    var offset = (bandSize - sum) / 2 >> 0;
-    var prev = {
-      offset: offset - realBarGap,
-      size: 0
-    };
-    result = sizeList.reduce((res, entry) => {
-      var _entry$barSize;
-      var newPosition = {
-        stackId: entry.stackId,
-        dataKeys: entry.dataKeys,
-        position: {
-          offset: prev.offset + prev.size + realBarGap,
-          size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0
-        }
-      };
-      var newRes = [...res, newPosition];
-      prev = newPosition.position;
-      return newRes;
-    }, initialValue);
-  } else {
-    var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);
-    if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {
-      realBarGap = 0;
-    }
-    var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;
-    if (originalSize > 1) {
-      originalSize >>= 0;
-    }
-    var size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;
-    result = sizeList.reduce((res, entry, i) => [...res, {
-      stackId: entry.stackId,
-      dataKeys: entry.dataKeys,
-      position: {
-        offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,
-        size
-      }
-    }], initialValue);
-  }
-  return result;
-}
-export var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {
-  var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);
-  if (barBandSize !== bandSize && allBarPositions != null) {
-    allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {
-      position: _objectSpread(_objectSpread({}, pos.position), {}, {
-        offset: pos.position.offset - barBandSize / 2
-      })
-    }));
-  }
-  return allBarPositions;
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineAxisRangeWithReverse.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineAxisRangeWithReverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export var combineAxisRangeWithReverse = (axisSettings, axisRange) => {
-  if (!axisSettings || !axisRange) {
-    return undefined;
-  }
-  if (axisSettings !== null && axisSettings !== void 0 && axisSettings.reversed) {
-    return [axisRange[1], axisRange[0]];
-  }
-  return axisRange;
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineBarPosition.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineBarPosition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-export var combineBarPosition = (allBarPositions, barSettings) => {
-  if (allBarPositions == null || barSettings == null) {
-    return undefined;
-  }
-  var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));
-  if (position == null) {
-    return undefined;
-  }
-  return position.position;
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineBarSizeList.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineBarSizeList.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import { isStacked } from '../../types/StackedGraphicalItem';
-import { getPercentValue, isNullish } from '../../../util/DataUtils';
-var getBarSize = (globalSize, totalSize, selfSize) => {
-  var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;
-  if (isNullish(barSize)) {
-    return undefined;
-  }
-  return getPercentValue(barSize, totalSize, 0);
-};
-export var combineBarSizeList = (allBars, globalSize, totalSize) => {
-  var initialValue = {};
-  var stackedBars = allBars.filter(isStacked);
-  var unstackedBars = allBars.filter(b => b.stackId == null);
-  var groupByStack = stackedBars.reduce((acc, bar) => {
-    var s = acc[bar.stackId];
-    if (s == null) {
-      s = [];
-    }
-    s.push(bar);
-    acc[bar.stackId] = s;
-    return acc;
-  }, initialValue);
-  var stackedSizeList = Object.entries(groupByStack).map(_ref => {
-    var _bars$;
-    var [stackId, bars] = _ref;
-    var dataKeys = bars.map(b => b.dataKey);
-    var barSize = getBarSize(globalSize, totalSize, (_bars$ = bars[0]) === null || _bars$ === void 0 ? void 0 : _bars$.barSize);
-    return {
-      stackId,
-      dataKeys,
-      barSize
-    };
-  });
-  var unstackedSizeList = unstackedBars.map(b => {
-    var dataKeys = [b.dataKey].filter(dk => dk != null);
-    var barSize = getBarSize(globalSize, totalSize, b.barSize);
-    return {
-      stackId: undefined,
-      dataKeys,
-      barSize
-    };
-  });
-  return [...stackedSizeList, ...unstackedSizeList];
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineCheckedDomain.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineCheckedDomain.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';
-import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';
-
-/**
- * This function validates and transforms the axis domain so that it is safe to use in the provided scale.
- */
-export var combineCheckedDomain = (realScaleType, axisDomain) => {
-  if (axisDomain == null) {
-    return undefined;
-  }
-  switch (realScaleType) {
-    case 'linear':
-      {
-        /*
-         * linear scale only reads the first two numbers in the domain, and ignores everything else.
-         * So if it happens that someone somehow gave us a bigger domain,
-         * let's pick the min and max from it.
-         */
-        if (!isWellFormedNumberDomain(axisDomain)) {
-          var min, max;
-          for (var i = 0; i < axisDomain.length; i++) {
-            var value = axisDomain[i];
-            if (!isWellBehavedNumber(value)) {
-              continue;
-            }
-            if (min === undefined || value < min) {
-              min = value;
-            }
-            if (max === undefined || value > max) {
-              max = value;
-            }
-          }
-          if (min !== undefined && max !== undefined) {
-            return [min, max];
-          }
-          return undefined;
-        }
-        return axisDomain;
-      }
-    default:
-      return axisDomain;
-  }
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineCoordinateForDefaultIndex.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineCoordinateForDefaultIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-export var combineCoordinateForDefaultIndex = (width, height, layout, offset, tooltipTicks, defaultIndex, tooltipConfigurations) => {
-  if (defaultIndex == null) {
-    return undefined;
-  }
-  /*
-   * With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display.
-   * Maybe one day we could add new prop `activeGraphicalItemId` to the chart to help with that.
-   * Until then, we choose the first one.
-   */
-  var firstConfiguration = tooltipConfigurations[0];
-  var maybePosition = firstConfiguration === null || firstConfiguration === void 0 ? void 0 : firstConfiguration.getPosition(defaultIndex);
-  if (maybePosition != null) {
-    return maybePosition;
-  }
-  var tick = tooltipTicks === null || tooltipTicks === void 0 ? void 0 : tooltipTicks[Number(defaultIndex)];
-  if (!tick) {
-    return undefined;
-  }
-  switch (layout) {
-    case 'horizontal':
-      {
-        return {
-          x: tick.coordinate,
-          y: (offset.top + height) / 2
-        };
-      }
-    default:
-      {
-        // This logic is not super sound - it conflates vertical, radial, centric layouts into just one. TODO improve!
-        return {
-          x: (offset.left + width) / 2,
-          y: tick.coordinate
-        };
-      }
-  }
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineDisplayedStackedData.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineDisplayedStackedData.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';
-import { getValueByDataKey } from '../../../util/ChartUtils';
-
-/**
- * In a stacked chart, each graphical item has its own data. That data could be either:
- * - defined on the chart root, in which case the item gets a unique dataKey
- * - or defined on the item itself, in which case multiple items can share the same dataKey
- *
- * That means we cannot use the dataKey as a unique identifier for the item.
- *
- * This type represents a single data point in a stacked chart, where each key is a series identifier
- * and the value is the numeric value for that series using the numerical axis dataKey.
- */
-
-export function combineDisplayedStackedData(stackedGraphicalItems, _ref, tooltipAxisSettings) {
-  var {
-    chartData = []
-  } = _ref;
-  var {
-    allowDuplicatedCategory,
-    dataKey: tooltipDataKey
-  } = tooltipAxisSettings;
-
-  // A map of tooltip data keys to the stacked data points
-  var knownItemsByDataKey = new Map();
-  stackedGraphicalItems.forEach(item => {
-    var _item$data;
-    // If there is no data on the individual item then we use the root chart data
-    var resolvedData = (_item$data = item.data) !== null && _item$data !== void 0 ? _item$data : chartData;
-    if (resolvedData == null || resolvedData.length === 0) {
-      // if that doesn't work then we skip this item
-      return;
-    }
-    var stackIdentifier = getStackSeriesIdentifier(item);
-    resolvedData.forEach((entry, index) => {
-      var tooltipValue = tooltipDataKey == null || allowDuplicatedCategory ? index : String(getValueByDataKey(entry, tooltipDataKey, null));
-      var numericValue = getValueByDataKey(entry, item.dataKey, 0);
-      var curr;
-      if (knownItemsByDataKey.has(tooltipValue)) {
-        curr = knownItemsByDataKey.get(tooltipValue);
-      } else {
-        curr = {};
-      }
-      Object.assign(curr, {
-        [stackIdentifier]: numericValue
-      });
-      knownItemsByDataKey.set(tooltipValue, curr);
-    });
-  });
-  return Array.from(knownItemsByDataKey.values());
-}
Index: de_modules/recharts/es6/state/selectors/combiners/combineStackedData.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineStackedData.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';
-export var combineStackedData = (stackGroups, barSettings) => {
-  var stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);
-  if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = barSettings;
-  if (stackId == null) {
-    return undefined;
-  }
-  var stackGroup = stackGroups[stackId];
-  if (!stackGroup) {
-    return undefined;
-  }
-  var {
-    stackedData
-  } = stackGroup;
-  if (!stackedData) {
-    return undefined;
-  }
-  return stackedData.find(sd => sd.key === stackSeriesIdentifier);
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineTooltipInteractionState.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineTooltipInteractionState.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { noInteraction } from '../../tooltipSlice';
-function chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger) {
-  if (tooltipEventType === 'axis') {
-    if (trigger === 'click') {
-      return tooltipState.axisInteraction.click;
-    }
-    return tooltipState.axisInteraction.hover;
-  }
-  if (trigger === 'click') {
-    return tooltipState.itemInteraction.click;
-  }
-  return tooltipState.itemInteraction.hover;
-}
-function hasBeenActivePreviously(tooltipInteractionState) {
-  return tooltipInteractionState.index != null;
-}
-export var combineTooltipInteractionState = (tooltipState, tooltipEventType, trigger, defaultIndex) => {
-  if (tooltipEventType == null) {
-    return noInteraction;
-  }
-  var appropriateMouseInteraction = chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger);
-  if (appropriateMouseInteraction == null) {
-    return noInteraction;
-  }
-  if (appropriateMouseInteraction.active) {
-    return appropriateMouseInteraction;
-  }
-  if (tooltipState.keyboardInteraction.active) {
-    return tooltipState.keyboardInteraction;
-  }
-  if (tooltipState.syncInteraction.active && tooltipState.syncInteraction.index != null) {
-    return tooltipState.syncInteraction;
-  }
-  var activeFromProps = tooltipState.settings.active === true;
-  if (hasBeenActivePreviously(appropriateMouseInteraction)) {
-    if (activeFromProps) {
-      return _objectSpread(_objectSpread({}, appropriateMouseInteraction), {}, {
-        active: true
-      });
-    }
-  } else if (defaultIndex != null) {
-    return {
-      active: true,
-      coordinate: undefined,
-      dataKey: undefined,
-      index: defaultIndex,
-      graphicalItemId: undefined
-    };
-  }
-  return _objectSpread(_objectSpread({}, noInteraction), {}, {
-    coordinate: appropriateMouseInteraction.coordinate
-  });
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineTooltipPayload.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,115 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { findEntryInArray } from '../../../util/DataUtils';
-import { getTooltipEntry, getValueByDataKey } from '../../../util/ChartUtils';
-import { getSliced } from '../../../util/getSliced';
-function selectFinalData(dataDefinedOnItem, dataDefinedOnChart) {
-  /*
-   * If a payload has data specified directly from the graphical item, prefer that.
-   * Otherwise, fill in data from the chart level, using the same index.
-   */
-  if (dataDefinedOnItem != null) {
-    return dataDefinedOnItem;
-  }
-  return dataDefinedOnChart;
-}
-export var combineTooltipPayload = (tooltipPayloadConfigurations, activeIndex, chartDataState, tooltipAxisDataKey, activeLabel, tooltipPayloadSearcher, tooltipEventType) => {
-  if (activeIndex == null || tooltipPayloadSearcher == null) {
-    return undefined;
-  }
-  var {
-    chartData,
-    computedData,
-    dataStartIndex,
-    dataEndIndex
-  } = chartDataState;
-  var init = [];
-  return tooltipPayloadConfigurations.reduce((agg, _ref) => {
-    var _settings$dataKey;
-    var {
-      dataDefinedOnItem,
-      settings
-    } = _ref;
-    var finalData = selectFinalData(dataDefinedOnItem, chartData);
-    var sliced = Array.isArray(finalData) ? getSliced(finalData, dataStartIndex, dataEndIndex) : finalData;
-    var finalDataKey = (_settings$dataKey = settings === null || settings === void 0 ? void 0 : settings.dataKey) !== null && _settings$dataKey !== void 0 ? _settings$dataKey : tooltipAxisDataKey;
-    // BaseAxisProps does not support nameKey but it could!
-    var finalNameKey = settings === null || settings === void 0 ? void 0 : settings.nameKey; // ?? tooltipAxis?.nameKey;
-    var tooltipPayload;
-    if (tooltipAxisDataKey && Array.isArray(sliced) &&
-    /*
-     * findEntryInArray won't work for Scatter because Scatter provides an array of arrays
-     * as tooltip payloads and findEntryInArray is not prepared to handle that.
-     * Sad but also ScatterChart only allows 'item' tooltipEventType
-     * and also this is only a problem if there are multiple Scatters and each has its own data array
-     * so let's fix that some other time.
-     */
-    !Array.isArray(sliced[0]) &&
-    /*
-     * If the tooltipEventType is 'axis', we should search for the dataKey in the sliced data
-     * because thanks to allowDuplicatedCategory=false, the order of elements in the array
-     * no longer matches the order of elements in the original data
-     * and so we need to search by the active dataKey + label rather than by index.
-     *
-     * The same happens if multiple graphical items are present in the chart
-     * and each of them has its own data array. Those arrays get concatenated
-     * and again the tooltip index no longer matches the original data.
-     *
-     * On the other hand the tooltipEventType 'item' should always search by index
-     * because we get the index from interacting over the individual elements
-     * which is always accurate, irrespective of the allowDuplicatedCategory setting.
-     */
-    tooltipEventType === 'axis') {
-      tooltipPayload = findEntryInArray(sliced, tooltipAxisDataKey, activeLabel);
-    } else {
-      /*
-       * This is a problem because it assumes that the index is pointing to the displayed data
-       * which it isn't because the index is pointing to the tooltip ticks array.
-       * The above approach (with findEntryInArray) is the correct one, but it only works
-       * if the axis dataKey is defined explicitly, and if the data is an array of objects.
-       */
-      tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);
-    }
-    if (Array.isArray(tooltipPayload)) {
-      tooltipPayload.forEach(item => {
-        var newSettings = _objectSpread(_objectSpread({}, settings), {}, {
-          // @ts-expect-error we're assuming that item has name and unit properties
-          name: item.name,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          unit: item.unit,
-          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.
-          color: undefined,
-          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.
-          fill: undefined
-        });
-        agg.push(getTooltipEntry({
-          tooltipEntrySettings: newSettings,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          dataKey: item.dataKey,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          payload: item.payload,
-          // @ts-expect-error getValueByDataKey does not validate the output type
-          value: getValueByDataKey(item.payload, item.dataKey),
-          // @ts-expect-error we're assuming that item has name and unit properties
-          name: item.name
-        }));
-      });
-    } else {
-      var _getValueByDataKey;
-      // I am not quite sure why these two branches (Array vs Array of Arrays) have to behave differently - I imagine we should unify these. 3.x breaking change?
-      agg.push(getTooltipEntry({
-        tooltipEntrySettings: settings,
-        dataKey: finalDataKey,
-        payload: tooltipPayload,
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        value: getValueByDataKey(tooltipPayload, finalDataKey),
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        name: (_getValueByDataKey = getValueByDataKey(tooltipPayload, finalNameKey)) !== null && _getValueByDataKey !== void 0 ? _getValueByDataKey : settings === null || settings === void 0 ? void 0 : settings.name
-      }));
-    }
-    return agg;
-  }, init);
-};
Index: de_modules/recharts/es6/state/selectors/combiners/combineTooltipPayloadConfigurations.js
===================================================================
--- node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayloadConfigurations.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-export var combineTooltipPayloadConfigurations = (tooltipState, tooltipEventType, trigger, defaultIndex) => {
-  // if tooltip reacts to axis interaction, then we display all items at the same time.
-  if (tooltipEventType === 'axis') {
-    return tooltipState.tooltipItemPayloads;
-  }
-  /*
-   * By now we already know that tooltipEventType is 'item', so we can only search in itemInteractions.
-   * item means that only the hovered or clicked item will be present in the tooltip.
-   */
-  if (tooltipState.tooltipItemPayloads.length === 0) {
-    // No point filtering if the payload is empty
-    return [];
-  }
-  var filterByGraphicalItemId;
-  if (trigger === 'hover') {
-    filterByGraphicalItemId = tooltipState.itemInteraction.hover.graphicalItemId;
-  } else {
-    filterByGraphicalItemId = tooltipState.itemInteraction.click.graphicalItemId;
-  }
-  if (filterByGraphicalItemId == null && defaultIndex != null) {
-    /*
-     * So when we use `defaultIndex` - we don't have a dataKey to filter by because user did not hover over anything yet.
-     * In that case let's display the first item in the tooltip; after all, this is `item` interaction case,
-     * so we should display only one item at a time instead of all.
-     */
-    var firstItemPayload = tooltipState.tooltipItemPayloads[0];
-    if (firstItemPayload != null) {
-      return [firstItemPayload];
-    }
-    return [];
-  }
-  return tooltipState.tooltipItemPayloads.filter(tpc => {
-    var _tpc$settings;
-    return ((_tpc$settings = tpc.settings) === null || _tpc$settings === void 0 ? void 0 : _tpc$settings.graphicalItemId) === filterByGraphicalItemId;
-  });
-};
Index: de_modules/recharts/es6/state/selectors/containerSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/containerSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export var selectChartWidth = state => state.layout.width;
-export var selectChartHeight = state => state.layout.height;
-export var selectContainerScale = state => state.layout.scale;
-export var selectMargin = state => state.layout.margin;
Index: de_modules/recharts/es6/state/selectors/dataSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/dataSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import { createSelector } from 'reselect';
-/**
- * This selector always returns the data with the indexes set by a Brush.
- * Trouble is, that might or might not be what you want.
- *
- * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush
- * - even if the Brush is active, the panorama inside the Brush should show the full range of data.
- *
- * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama
- *
- * @param state RechartsRootState
- * @returns data defined on the chart root element, such as BarChart or ScatterChart
- */
-export var selectChartDataWithIndexes = state => state.chartData;
-
-/**
- * This selector will always return the full range of data, ignoring the indexes set by a Brush.
- * Useful for when you want to render the full range of data, even if a Brush is active.
- * For example: in the Brush panorama, in Legend, in Tooltip.
- */
-export var selectChartDataAndAlwaysIgnoreIndexes = createSelector([selectChartDataWithIndexes], dataState => {
-  var dataEndIndex = dataState.chartData != null ? dataState.chartData.length - 1 : 0;
-  return {
-    chartData: dataState.chartData,
-    computedData: dataState.computedData,
-    dataEndIndex,
-    dataStartIndex: 0
-  };
-});
-export var selectChartDataWithIndexesIfNotInPanoramaPosition4 = (state, _unused1, _unused2, isPanorama) => {
-  if (isPanorama) {
-    return selectChartDataAndAlwaysIgnoreIndexes(state);
-  }
-  return selectChartDataWithIndexes(state);
-};
-export var selectChartDataWithIndexesIfNotInPanoramaPosition3 = (state, _unused1, isPanorama) => {
-  if (isPanorama) {
-    return selectChartDataAndAlwaysIgnoreIndexes(state);
-  }
-  return selectChartDataWithIndexes(state);
-};
Index: de_modules/recharts/es6/state/selectors/funnelSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/funnelSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { computeFunnelTrapezoids } from '../../cartesian/Funnel';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';
-var pickFunnelSettings = (_state, funnelSettings) => funnelSettings;
-export var selectFunnelTrapezoids = createSelector([selectChartOffsetInternal, pickFunnelSettings, selectChartDataAndAlwaysIgnoreIndexes], (offset, _ref, _ref2) => {
-  var {
-    data,
-    dataKey,
-    nameKey,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    customWidth,
-    cells,
-    presentationProps,
-    id: graphicalItemId
-  } = _ref;
-  var {
-    chartData
-  } = _ref2;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else if (chartData != null && chartData.length > 0) {
-    displayedData = chartData;
-  }
-  if (displayedData && displayedData.length) {
-    displayedData = displayedData.map((entry, index) => _objectSpread(_objectSpread(_objectSpread({
-      payload: entry
-    }, presentationProps), entry), cells && cells[index] && cells[index].props));
-  } else if (cells && cells.length) {
-    displayedData = cells.map(cell => _objectSpread(_objectSpread({}, presentationProps), cell.props));
-  } else {
-    return [];
-  }
-  return computeFunnelTrapezoids({
-    dataKey,
-    nameKey,
-    displayedData,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    offset,
-    customWidth,
-    graphicalItemId
-  });
-});
Index: de_modules/recharts/es6/state/selectors/graphicalItemSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/graphicalItemSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { defaultAxisId } from '../cartesianAxisSlice';
-export function selectXAxisIdFromGraphicalItemId(state, id) {
-  var _state$graphicalItems, _state$graphicalItems2;
-  return (_state$graphicalItems = (_state$graphicalItems2 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems2 === void 0 ? void 0 : _state$graphicalItems2.xAxisId) !== null && _state$graphicalItems !== void 0 ? _state$graphicalItems : defaultAxisId;
-}
-export function selectYAxisIdFromGraphicalItemId(state, id) {
-  var _state$graphicalItems3, _state$graphicalItems4;
-  return (_state$graphicalItems3 = (_state$graphicalItems4 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems4 === void 0 ? void 0 : _state$graphicalItems4.yAxisId) !== null && _state$graphicalItems3 !== void 0 ? _state$graphicalItems3 : defaultAxisId;
-}
Index: de_modules/recharts/es6/state/selectors/legendSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/legendSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { createSelector } from 'reselect';
-import sortBy from 'es-toolkit/compat/sortBy';
-export var selectLegendSettings = state => state.legend.settings;
-export var selectLegendSize = state => state.legend.size;
-var selectAllLegendPayload2DArray = state => state.legend.payload;
-export var selectLegendPayload = createSelector([selectAllLegendPayload2DArray, selectLegendSettings], (payloads, _ref) => {
-  var {
-    itemSorter
-  } = _ref;
-  var flat = payloads.flat(1);
-  return itemSorter ? sortBy(flat, itemSorter) : flat;
-});
Index: de_modules/recharts/es6/state/selectors/lineSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/lineSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-import { createSelector } from 'reselect';
-import { computeLinePoints } from '../../cartesian/Line';
-import { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';
-import { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';
-var selectXAxisWithScale = (state, xAxisId, _yAxisId, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);
-var selectXAxisTicks = (state, xAxisId, _yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);
-var selectYAxisWithScale = (state, _xAxisId, yAxisId, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);
-var selectYAxisTicks = (state, _xAxisId, yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);
-var selectBandSize = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {
-  if (isCategoricalAxis(layout, 'xAxis')) {
-    return getBandSizeOfAxis(xAxis, xAxisTicks, false);
-  }
-  return getBandSizeOfAxis(yAxis, yAxisTicks, false);
-});
-var pickLineId = (_state, _xAxisId, _yAxisId, _isPanorama, id) => id;
-function isLineSettings(item) {
-  return item.type === 'line';
-}
-
-/*
- * There is a race condition problem because we read some data from props and some from the state.
- * The state is updated through a dispatch and is one render behind,
- * and so we have this weird one tick render where the displayedData in one selector have the old dataKey
- * but the new dataKey in another selector.
- *
- * So here instead of reading the dataKey from the props, we always read it from the state.
- */
-var selectSynchronisedLineSettings = createSelector([selectUnfilteredCartesianItems, pickLineId], (graphicalItems, id) => graphicalItems.filter(isLineSettings).find(x => x.id === id));
-export var selectLinePoints = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectSynchronisedLineSettings, selectBandSize, selectChartDataWithIndexesIfNotInPanoramaPosition4], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, lineSettings, bandSize, _ref) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (lineSettings == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null || layout !== 'horizontal' && layout !== 'vertical') {
-    return undefined;
-  }
-  var {
-    dataKey,
-    data
-  } = lineSettings;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return computeLinePoints({
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataKey,
-    bandSize,
-    displayedData
-  });
-});
Index: de_modules/recharts/es6/state/selectors/numberDomainEqualityCheck.js
===================================================================
--- node_modules/recharts/es6/state/selectors/numberDomainEqualityCheck.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export var numberDomainEqualityCheck = (a, b) => {
-  if (a === b) {
-    return true;
-  }
-  if (a == null || b == null) {
-    return false;
-  }
-  return a[0] === b[0] && a[1] === b[1];
-};
Index: de_modules/recharts/es6/state/selectors/pickAxisId.js
===================================================================
--- node_modules/recharts/es6/state/selectors/pickAxisId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var pickAxisId = (_state, _axisType, axisId) => axisId;
Index: de_modules/recharts/es6/state/selectors/pickAxisType.js
===================================================================
--- node_modules/recharts/es6/state/selectors/pickAxisType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var pickAxisType = (_state, axisType) => axisType;
Index: de_modules/recharts/es6/state/selectors/pieSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/pieSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { computePieSectors } from '../../polar/Pie';
-import { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { getTooltipNameProp, getValueByDataKey } from '../../util/ChartUtils';
-import { selectUnfilteredPolarItems } from './polarSelectors';
-var pickId = (_state, id) => id;
-var selectSynchronisedPieSettings = createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'pie').find(item => item.id === id));
-
-// Keep stable reference to an empty array to prevent re-renders
-var emptyArray = [];
-var pickCells = (_state, _id, cells) => {
-  if ((cells === null || cells === void 0 ? void 0 : cells.length) === 0) {
-    return emptyArray;
-  }
-  return cells;
-};
-export var selectDisplayedData = createSelector([selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedPieSettings, pickCells], (_ref, pieSettings, cells) => {
-  var {
-    chartData
-  } = _ref;
-  if (pieSettings == null) {
-    return undefined;
-  }
-  var displayedData;
-  if ((pieSettings === null || pieSettings === void 0 ? void 0 : pieSettings.data) != null && pieSettings.data.length > 0) {
-    displayedData = pieSettings.data;
-  } else {
-    displayedData = chartData;
-  }
-  if ((!displayedData || !displayedData.length) && cells != null) {
-    displayedData = cells.map(cell => _objectSpread(_objectSpread({}, pieSettings.presentationProps), cell.props));
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return displayedData;
-});
-export var selectPieLegend = createSelector([selectDisplayedData, selectSynchronisedPieSettings, pickCells], (displayedData, pieSettings, cells) => {
-  if (displayedData == null || pieSettings == null) {
-    return undefined;
-  }
-  return displayedData.map((entry, i) => {
-    var _cells$i;
-    var name = getValueByDataKey(entry, pieSettings.nameKey, pieSettings.name);
-    var color;
-    if (cells !== null && cells !== void 0 && (_cells$i = cells[i]) !== null && _cells$i !== void 0 && (_cells$i = _cells$i.props) !== null && _cells$i !== void 0 && _cells$i.fill) {
-      color = cells[i].props.fill;
-    } else if (typeof entry === 'object' && entry != null && 'fill' in entry) {
-      color = entry.fill;
-    } else {
-      color = pieSettings.fill;
-    }
-    return {
-      value: getTooltipNameProp(name, pieSettings.dataKey),
-      color,
-      // @ts-expect-error we need a better typing for our data inputs
-      payload: entry,
-      type: pieSettings.legendType
-    };
-  });
-});
-export var selectPieSectors = createSelector([selectDisplayedData, selectSynchronisedPieSettings, pickCells, selectChartOffsetInternal], (displayedData, pieSettings, cells, offset) => {
-  if (pieSettings == null || displayedData == null) {
-    return undefined;
-  }
-  return computePieSectors({
-    offset,
-    pieSettings,
-    displayedData,
-    cells
-  });
-});
Index: de_modules/recharts/es6/state/selectors/polarAxisSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/polarAxisSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { selectChartHeight, selectChartWidth } from './containerSelectors';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { getMaxRadius } from '../../util/PolarUtils';
-import { getPercentValue } from '../../util/DataUtils';
-import { defaultPolarAngleAxisProps } from '../../polar/defaultPolarAngleAxisProps';
-import { defaultPolarRadiusAxisProps } from '../../polar/defaultPolarRadiusAxisProps';
-import { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';
-import { selectChartLayout, selectPolarChartLayout } from '../../context/chartLayoutContext';
-import { getAxisTypeBasedOnLayout } from '../../util/getAxisTypeBasedOnLayout';
-export var implicitAngleAxis = {
-  allowDataOverflow: defaultPolarAngleAxisProps.allowDataOverflow,
-  allowDecimals: defaultPolarAngleAxisProps.allowDecimals,
-  allowDuplicatedCategory: false,
-  // defaultPolarAngleAxisProps.allowDuplicatedCategory has it set to true but the actual axis rendering ignores the prop because reasons,
-  dataKey: undefined,
-  domain: undefined,
-  id: defaultPolarAngleAxisProps.angleAxisId,
-  includeHidden: false,
-  name: undefined,
-  reversed: defaultPolarAngleAxisProps.reversed,
-  scale: defaultPolarAngleAxisProps.scale,
-  tick: defaultPolarAngleAxisProps.tick,
-  tickCount: undefined,
-  ticks: undefined,
-  type: defaultPolarAngleAxisProps.type,
-  unit: undefined
-};
-export var implicitRadiusAxis = {
-  allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,
-  allowDecimals: defaultPolarRadiusAxisProps.allowDecimals,
-  allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,
-  dataKey: undefined,
-  domain: undefined,
-  id: defaultPolarRadiusAxisProps.radiusAxisId,
-  includeHidden: defaultPolarRadiusAxisProps.includeHidden,
-  name: undefined,
-  reversed: defaultPolarRadiusAxisProps.reversed,
-  scale: defaultPolarRadiusAxisProps.scale,
-  tick: defaultPolarRadiusAxisProps.tick,
-  tickCount: defaultPolarRadiusAxisProps.tickCount,
-  ticks: undefined,
-  type: defaultPolarRadiusAxisProps.type,
-  unit: undefined
-};
-var selectAngleAxisNoDefaults = (state, angleAxisId) => {
-  if (angleAxisId == null) {
-    return undefined;
-  }
-  return state.polarAxis.angleAxis[angleAxisId];
-};
-export var selectAngleAxis = createSelector([selectAngleAxisNoDefaults, selectPolarChartLayout], (angleAxisSettings, layout) => {
-  var _getAxisTypeBasedOnLa;
-  if (angleAxisSettings != null) {
-    return angleAxisSettings;
-  }
-  var evaluatedType = (_getAxisTypeBasedOnLa = getAxisTypeBasedOnLayout(layout, 'angleAxis', implicitAngleAxis.type)) !== null && _getAxisTypeBasedOnLa !== void 0 ? _getAxisTypeBasedOnLa : 'category';
-  return _objectSpread(_objectSpread({}, implicitAngleAxis), {}, {
-    type: evaluatedType
-  });
-});
-var selectRadiusAxisNoDefaults = (state, radiusAxisId) => {
-  return state.polarAxis.radiusAxis[radiusAxisId];
-};
-export var selectRadiusAxis = createSelector([selectRadiusAxisNoDefaults, selectPolarChartLayout], (radiusAxisSettings, layout) => {
-  var _getAxisTypeBasedOnLa2;
-  if (radiusAxisSettings != null) {
-    return radiusAxisSettings;
-  }
-  var evaluatedType = (_getAxisTypeBasedOnLa2 = getAxisTypeBasedOnLayout(layout, 'radiusAxis', implicitRadiusAxis.type)) !== null && _getAxisTypeBasedOnLa2 !== void 0 ? _getAxisTypeBasedOnLa2 : 'category';
-  return _objectSpread(_objectSpread({}, implicitRadiusAxis), {}, {
-    type: evaluatedType
-  });
-});
-export var selectPolarOptions = state => state.polarOptions;
-export var selectMaxRadius = createSelector([selectChartWidth, selectChartHeight, selectChartOffsetInternal], getMaxRadius);
-var selectInnerRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {
-  if (polarChartOptions == null) {
-    return undefined;
-  }
-  return getPercentValue(polarChartOptions.innerRadius, maxRadius, 0);
-});
-export var selectOuterRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {
-  if (polarChartOptions == null) {
-    return undefined;
-  }
-  return getPercentValue(polarChartOptions.outerRadius, maxRadius, maxRadius * 0.8);
-});
-var combineAngleAxisRange = polarOptions => {
-  if (polarOptions == null) {
-    return [0, 0];
-  }
-  var {
-    startAngle,
-    endAngle
-  } = polarOptions;
-  return [startAngle, endAngle];
-};
-export var selectAngleAxisRange = createSelector([selectPolarOptions], combineAngleAxisRange);
-export var selectAngleAxisRangeWithReversed = createSelector([selectAngleAxis, selectAngleAxisRange], combineAxisRangeWithReverse);
-export var selectRadiusAxisRange = createSelector([selectMaxRadius, selectInnerRadius, selectOuterRadius], (maxRadius, innerRadius, outerRadius) => {
-  if (maxRadius == null || innerRadius == null || outerRadius == null) {
-    return undefined;
-  }
-  return [innerRadius, outerRadius];
-});
-export var selectRadiusAxisRangeWithReversed = createSelector([selectRadiusAxis, selectRadiusAxisRange], combineAxisRangeWithReverse);
-export var selectPolarViewBox = createSelector([selectChartLayout, selectPolarOptions, selectInnerRadius, selectOuterRadius, selectChartWidth, selectChartHeight], (layout, polarOptions, innerRadius, outerRadius, width, height) => {
-  if (layout !== 'centric' && layout !== 'radial' || polarOptions == null || innerRadius == null || outerRadius == null) {
-    return undefined;
-  }
-  var {
-    cx,
-    cy,
-    startAngle,
-    endAngle
-  } = polarOptions;
-  return {
-    cx: getPercentValue(cx, width, width / 2),
-    cy: getPercentValue(cy, height, height / 2),
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise: false // this property look useful, why not use it?
-  };
-});
Index: de_modules/recharts/es6/state/selectors/polarGridSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/polarGridSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectPolarAxisTicks } from './polarScaleSelectors';
-var selectAngleAxisTicks = (state, anglexisId) => selectPolarAxisTicks(state, 'angleAxis', anglexisId, false);
-export var selectPolarGridAngles = createSelector([selectAngleAxisTicks], ticks => {
-  if (!ticks) {
-    return undefined;
-  }
-  return ticks.map(tick => tick.coordinate);
-});
-var selectRadiusAxisTicks = (state, radiusAxisId) => selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false);
-export var selectPolarGridRadii = createSelector([selectRadiusAxisTicks], ticks => {
-  if (!ticks) {
-    return undefined;
-  }
-  return ticks.map(tick => tick.coordinate);
-});
Index: de_modules/recharts/es6/state/selectors/polarScaleSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/polarScaleSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import { createSelector } from 'reselect';
-import { combineAxisTicks, combineCategoricalDomain, combineGraphicalItemTicks, combineScaleFunction, selectRenderableAxisSettings, selectDuplicateDomain, selectRealScaleType } from './axisSelectors';
-import { selectAngleAxis, selectAngleAxisRangeWithReversed, selectRadiusAxis, selectRadiusAxisRangeWithReversed } from './polarAxisSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectPolarAppliedValues, selectPolarAxisCheckedDomain, selectPolarNiceTicks } from './polarSelectors';
-import { pickAxisType } from './pickAxisType';
-export var selectPolarAxis = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'angleAxis':
-      {
-        return selectAngleAxis(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return selectRadiusAxis(state, axisId);
-      }
-    default:
-      {
-        throw new Error("Unexpected axis type: ".concat(axisType));
-      }
-  }
-};
-var selectPolarAxisRangeWithReversed = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'angleAxis':
-      {
-        return selectAngleAxisRangeWithReversed(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return selectRadiusAxisRangeWithReversed(state, axisId);
-      }
-    default:
-      {
-        throw new Error("Unexpected axis type: ".concat(axisType));
-      }
-  }
-};
-export var selectPolarAxisScale = createSelector([selectPolarAxis, selectRealScaleType, selectPolarAxisCheckedDomain, selectPolarAxisRangeWithReversed], combineScaleFunction);
-export var selectPolarCategoricalDomain = createSelector([selectChartLayout, selectPolarAppliedValues, selectRenderableAxisSettings, pickAxisType], combineCategoricalDomain);
-export var selectPolarAxisTicks = createSelector([selectChartLayout, selectPolarAxis, selectRealScaleType, selectPolarAxisScale, selectPolarNiceTicks, selectPolarAxisRangeWithReversed, selectDuplicateDomain, selectPolarCategoricalDomain, pickAxisType], combineAxisTicks);
-export var selectPolarAngleAxisTicks = createSelector([selectPolarAxisTicks], ticks => {
-  /*
-   * Angle axis is circular; so here we need to look for ticks that overlap (i.e., 0 and 360 degrees)
-   * and remove the duplicate tick to avoid rendering issues.
-   */
-  if (!ticks) {
-    return undefined;
-  }
-  var uniqueTicksMap = new Map();
-  ticks.forEach(tick => {
-    var normalizedCoordinate = (tick.coordinate + 360) % 360;
-    if (!uniqueTicksMap.has(normalizedCoordinate)) {
-      uniqueTicksMap.set(normalizedCoordinate, tick);
-    }
-  });
-  return Array.from(uniqueTicksMap.values());
-});
-export var selectPolarGraphicalItemAxisTicks = createSelector([selectChartLayout, selectPolarAxis, selectPolarAxisScale, selectPolarAxisRangeWithReversed, selectDuplicateDomain, selectPolarCategoricalDomain, pickAxisType], combineGraphicalItemTicks);
Index: de_modules/recharts/es6/state/selectors/polarSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/polarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';
-import { combineAppliedValues, combineAxisDomain, combineAxisDomainWithNiceTicks, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineGraphicalItemsData, combineGraphicalItemsSettings, combineNiceTicks, combineNumericalDomain, itemAxisPredicate, selectAllErrorBarSettings, selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectRealScaleType, selectRenderableAxisSettings } from './axisSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { getValueByDataKey } from '../../util/ChartUtils';
-import { pickAxisType } from './pickAxisType';
-import { pickAxisId } from './pickAxisId';
-import { selectStackOffsetType } from './rootPropsSelectors';
-import { combineCheckedDomain } from './combiners/combineCheckedDomain';
-export var selectUnfilteredPolarItems = state => state.graphicalItems.polarItems;
-var selectAxisPredicate = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);
-export var selectPolarItemsSettings = createSelector([selectUnfilteredPolarItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings);
-var selectPolarGraphicalItemsData = createSelector([selectPolarItemsSettings], combineGraphicalItemsData);
-export var selectPolarDisplayedData = createSelector([selectPolarGraphicalItemsData, selectChartDataAndAlwaysIgnoreIndexes], combineDisplayedData);
-export var selectPolarAppliedValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings], combineAppliedValues);
-export var selectAllPolarAppliedNumericalValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings], (data, axisSettings, items) => {
-  if (items.length > 0) {
-    return data.flatMap(entry => {
-      return items.flatMap(item => {
-        var _axisSettings$dataKey;
-        var valueByDataKey = getValueByDataKey(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);
-        return {
-          value: valueByDataKey,
-          errorDomain: [] // polar charts do not have error bars
-        };
-      });
-    }).filter(Boolean);
-  }
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    return data.map(item => ({
-      value: getValueByDataKey(item, axisSettings.dataKey),
-      errorDomain: []
-    }));
-  }
-  return data.map(entry => ({
-    value: entry,
-    errorDomain: []
-  }));
-});
-var unsupportedInPolarChart = () => undefined;
-var selectDomainOfAllPolarAppliedNumericalValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings, selectAllErrorBarSettings, pickAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues);
-var selectPolarNumericalDomain = createSelector([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, unsupportedInPolarChart, selectDomainOfAllPolarAppliedNumericalValues, unsupportedInPolarChart, selectChartLayout, pickAxisType], combineNumericalDomain);
-export var selectPolarAxisDomain = createSelector([selectBaseAxis, selectChartLayout, selectPolarDisplayedData, selectPolarAppliedValues, selectStackOffsetType, pickAxisType, selectPolarNumericalDomain], combineAxisDomain);
-export var selectPolarNiceTicks = createSelector([selectPolarAxisDomain, selectRenderableAxisSettings, selectRealScaleType], combineNiceTicks);
-export var selectPolarAxisDomainIncludingNiceTicks = createSelector([selectBaseAxis, selectPolarAxisDomain, selectPolarNiceTicks, pickAxisType], combineAxisDomainWithNiceTicks);
-export var selectPolarAxisCheckedDomain = createSelector([selectRealScaleType, selectPolarAxisDomainIncludingNiceTicks], combineCheckedDomain);
Index: de_modules/recharts/es6/state/selectors/radarSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/radarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { computeRadarPoints } from '../../polar/Radar';
-import { selectPolarAxisScale, selectPolarAxisTicks } from './polarScaleSelectors';
-import { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';
-import { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';
-import { selectUnfilteredPolarItems } from './polarSelectors';
-var selectRadiusAxisScale = (state, radiusAxisId) => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);
-var selectRadiusAxisForRadar = createSelector([selectRadiusAxisScale], scale => {
-  if (scale == null) {
-    return undefined;
-  }
-  return {
-    scale
-  };
-});
-export var selectRadiusAxisForBandSize = createSelector([selectRadiusAxis, selectRadiusAxisScale], (axisSettings, scale) => {
-  if (axisSettings == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axisSettings), {}, {
-    scale
-  });
-});
-var selectRadiusAxisTicks = (state, radiusAxisId, _angleAxisId, isPanorama) => {
-  return selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, isPanorama);
-};
-var selectAngleAxisForRadar = (state, _radiusAxisId, angleAxisId) => selectAngleAxis(state, angleAxisId);
-var selectPolarAxisScaleForRadar = (state, _radiusAxisId, angleAxisId) => selectPolarAxisScale(state, 'angleAxis', angleAxisId);
-export var selectAngleAxisForBandSize = createSelector([selectAngleAxisForRadar, selectPolarAxisScaleForRadar], (axisSettings, scale) => {
-  if (axisSettings == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axisSettings), {}, {
-    scale
-  });
-});
-var selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId, isPanorama) => {
-  return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, isPanorama);
-};
-export var selectAngleAxisWithScaleAndViewport = createSelector([selectAngleAxisForRadar, selectPolarAxisScaleForRadar, selectPolarViewBox], (axisOptions, scale, polarViewBox) => {
-  if (polarViewBox == null || scale == null) {
-    return undefined;
-  }
-  return {
-    scale,
-    type: axisOptions.type,
-    dataKey: axisOptions.dataKey,
-    cx: polarViewBox.cx,
-    cy: polarViewBox.cy
-  };
-});
-var pickId = (_state, _radiusAxisId, _angleAxisId, _isPanorama, radarId) => radarId;
-var selectBandSizeOfAxis = createSelector([selectChartLayout, selectRadiusAxisForBandSize, selectRadiusAxisTicks, selectAngleAxisForBandSize, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {
-  if (isCategoricalAxis(layout, 'radiusAxis')) {
-    return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);
-  }
-  return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);
-});
-var selectSynchronisedRadarDataKey = createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, radarId) => {
-  if (graphicalItems == null) {
-    return undefined;
-  }
-  // Find the radar item with the given radarId
-  var pgis = graphicalItems.find(item => item.type === 'radar' && radarId === item.id);
-  // If found, return its dataKey
-  return pgis === null || pgis === void 0 ? void 0 : pgis.dataKey;
-});
-export var selectRadarPoints = createSelector([selectRadiusAxisForRadar, selectAngleAxisWithScaleAndViewport, selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedRadarDataKey, selectBandSizeOfAxis], (radiusAxis, angleAxis, _ref, dataKey, bandSize) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || dataKey == null) {
-    return undefined;
-  }
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  return computeRadarPoints({
-    radiusAxis,
-    angleAxis,
-    displayedData,
-    dataKey,
-    bandSize
-  });
-});
Index: de_modules/recharts/es6/state/selectors/radialBarSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/radialBarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,183 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { computeRadialBarDataItems } from '../../polar/RadialBar';
-import { selectChartDataAndAlwaysIgnoreIndexes, selectChartDataWithIndexes } from './dataSelectors';
-import { selectPolarAxisScale, selectPolarAxisTicks, selectPolarGraphicalItemAxisTicks } from './polarScaleSelectors';
-import { combineStackGroups, selectTooltipAxis } from './axisSelectors';
-import { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { getBandSizeOfAxis, getBaseValueOfBar, isCategoricalAxis } from '../../util/ChartUtils';
-import { selectBarCategoryGap, selectBarGap, selectReverseStackOrder, selectRootBarSize, selectRootMaxBarSize, selectStackOffsetType } from './rootPropsSelectors';
-import { selectPolarItemsSettings, selectUnfilteredPolarItems } from './polarSelectors';
-import { isNullish } from '../../util/DataUtils';
-import { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';
-import { isStacked } from '../types/StackedGraphicalItem';
-import { combineBarSizeList } from './combiners/combineBarSizeList';
-import { combineAllBarPositions } from './combiners/combineAllBarPositions';
-import { combineStackedData } from './combiners/combineStackedData';
-import { combineBarPosition } from './combiners/combineBarPosition';
-var selectRadiusAxisForRadialBar = (state, radiusAxisId) => selectRadiusAxis(state, radiusAxisId);
-var selectRadiusAxisScaleForRadar = (state, radiusAxisId) => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);
-export var selectRadiusAxisWithScale = createSelector([selectRadiusAxisForRadialBar, selectRadiusAxisScaleForRadar], (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-export var selectRadiusAxisTicks = (state, radiusAxisId) => {
-  return selectPolarGraphicalItemAxisTicks(state, 'radiusAxis', radiusAxisId, false);
-};
-var selectAngleAxisForRadialBar = (state, _radiusAxisId, angleAxisId) => selectAngleAxis(state, angleAxisId);
-var selectAngleAxisScaleForRadialBar = (state, _radiusAxisId, angleAxisId) => selectPolarAxisScale(state, 'angleAxis', angleAxisId);
-export var selectAngleAxisWithScale = createSelector([selectAngleAxisForRadialBar, selectAngleAxisScaleForRadialBar], (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-var selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId) => {
-  // here we can hardcode isPanorama to false because radialBar does not support panorama mode
-  return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, false);
-};
-var pickRadialBarSettings = (_state, _radiusAxisId, _angleAxisId, radialBarSettings) => radialBarSettings;
-var selectSynchronisedRadialBarSettings = createSelector([selectUnfilteredPolarItems, pickRadialBarSettings], (graphicalItems, radialBarSettingsFromProps) => {
-  if (graphicalItems.some(pgis => pgis.type === 'radialBar' && radialBarSettingsFromProps.dataKey === pgis.dataKey && radialBarSettingsFromProps.stackId === pgis.stackId)) {
-    return radialBarSettingsFromProps;
-  }
-  return undefined;
-});
-export var selectBandSizeOfPolarAxis = createSelector([selectChartLayout, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectAngleAxisWithScale, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {
-  if (isCategoricalAxis(layout, 'radiusAxis')) {
-    return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);
-  }
-  return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);
-});
-export var selectBaseValue = createSelector([selectAngleAxisWithScale, selectRadiusAxisWithScale, selectChartLayout], (angleAxis, radiusAxis, layout) => {
-  var numericAxis = layout === 'radial' ? angleAxis : radiusAxis;
-  if (numericAxis == null || numericAxis.scale == null) {
-    return undefined;
-  }
-  return getBaseValueOfBar({
-    numericAxis
-  });
-});
-var pickCells = (_state, _radiusAxisId, _angleAxisId, _radialBarSettings, cells) => cells;
-var pickAngleAxisId = (_state, _radiusAxisId, angleAxisId, _radialBarSettings, _cells) => angleAxisId;
-var pickRadiusAxisId = (_state, radiusAxisId, _angleAxisId, _radialBarSettings, _cells) => radiusAxisId;
-export var pickMaxBarSize = (_state, _radiusAxisId, _angleAxisId, radialBarSettings, _cells) => radialBarSettings.maxBarSize;
-var isRadialBar = item => item.type === 'radialBar';
-var selectAllVisibleRadialBars = createSelector([selectChartLayout, selectUnfilteredPolarItems, pickAngleAxisId, pickRadiusAxisId], (layout, allItems, angleAxisId, radiusAxisId) => {
-  return allItems.filter(i => {
-    if (layout === 'centric') {
-      return i.angleAxisId === angleAxisId;
-    }
-    return i.radiusAxisId === radiusAxisId;
-  }).filter(i => i.hide === false).filter(isRadialBar);
-});
-
-/**
- * The generator never returned the totalSize which means that barSize in polar chart can not support percent values.
- * We can add that if we want to I suppose.
- * @returns undefined - but it should be a total size of numerical axis in polar chart
- */
-var selectPolarBarAxisSize = () => undefined;
-export var selectPolarBarSizeList = createSelector([selectAllVisibleRadialBars, selectRootBarSize, selectPolarBarAxisSize], combineBarSizeList);
-export var selectPolarBarBandSize = createSelector([selectChartLayout, selectRootMaxBarSize, selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, pickMaxBarSize], (layout, globalMaxBarSize, angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, childMaxBarSize) => {
-  var _ref2, _getBandSizeOfAxis2;
-  var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  if (layout === 'centric') {
-    var _ref, _getBandSizeOfAxis;
-    return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(angleAxis, angleAxisTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;
-  }
-  return (_ref2 = (_getBandSizeOfAxis2 = getBandSizeOfAxis(radiusAxis, radiusAxisTicks, true)) !== null && _getBandSizeOfAxis2 !== void 0 ? _getBandSizeOfAxis2 : maxBarSize) !== null && _ref2 !== void 0 ? _ref2 : 0;
-});
-export var selectAllPolarBarPositions = createSelector([selectPolarBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectPolarBarBandSize, selectBandSizeOfPolarAxis, pickMaxBarSize], combineAllBarPositions);
-export var selectPolarBarPosition = createSelector([selectAllPolarBarPositions, selectSynchronisedRadialBarSettings], combineBarPosition);
-var selectStackedRadialBars = createSelector([selectPolarItemsSettings], allPolarItems => allPolarItems.filter(isRadialBar).filter(isStacked));
-var selectPolarCombinedStackedData = createSelector([selectStackedRadialBars, selectChartDataAndAlwaysIgnoreIndexes, selectTooltipAxis], combineDisplayedStackedData);
-var selectStackGroups = createSelector([selectPolarCombinedStackedData, selectStackedRadialBars, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);
-var selectRadialBarStackGroups = (state, radiusAxisId, angleAxisId) => {
-  var layout = selectChartLayout(state);
-  if (layout === 'centric') {
-    return selectStackGroups(state, 'radiusAxis', radiusAxisId);
-  }
-  return selectStackGroups(state, 'angleAxis', angleAxisId);
-};
-var selectPolarStackedData = createSelector([selectRadialBarStackGroups, selectSynchronisedRadialBarSettings], combineStackedData);
-export var selectRadialBarSectors = createSelector([selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectChartDataWithIndexes, selectSynchronisedRadialBarSettings, selectBandSizeOfPolarAxis, selectChartLayout, selectBaseValue, selectPolarViewBox, pickCells, selectPolarBarPosition, selectPolarStackedData], (angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, _ref3, radialBarSettings, bandSize, layout, baseValue, polarViewBox, cells, pos, stackedData) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref3;
-  if (radialBarSettings == null || radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || pos == null || layout !== 'centric' && layout !== 'radial' || radiusAxisTicks == null || polarViewBox == null) {
-    return [];
-  }
-  var {
-    dataKey,
-    minPointSize
-  } = radialBarSettings;
-  var {
-    cx,
-    cy,
-    startAngle,
-    endAngle
-  } = polarViewBox;
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  var numericAxis = layout === 'centric' ? radiusAxis : angleAxis;
-  var stackedDomain = stackedData ? numericAxis.scale.domain() : null;
-  return computeRadialBarDataItems({
-    angleAxis,
-    angleAxisTicks,
-    bandSize,
-    baseValue,
-    cells,
-    cx,
-    cy,
-    dataKey,
-    dataStartIndex,
-    displayedData,
-    endAngle,
-    layout,
-    minPointSize,
-    pos,
-    radiusAxis,
-    radiusAxisTicks,
-    stackedData,
-    stackedDomain,
-    startAngle
-  });
-});
-export var selectRadialBarLegendPayload = createSelector([selectChartDataAndAlwaysIgnoreIndexes, (_s, l) => l], (_ref4, legendType) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref4;
-  if (chartData == null) {
-    return [];
-  }
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  if (displayedData.length === 0) {
-    return [];
-  }
-  return displayedData.map(entry => {
-    return {
-      type: legendType,
-      // @ts-expect-error we need a better typing for our data inputs
-      value: entry.name,
-      // @ts-expect-error we need a better typing for our data inputs
-      color: entry.fill,
-      // @ts-expect-error we need a better typing for our data inputs
-      payload: entry
-    };
-  });
-});
Index: de_modules/recharts/es6/state/selectors/rootPropsSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/rootPropsSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export var selectRootMaxBarSize = state => state.rootProps.maxBarSize;
-export var selectBarGap = state => state.rootProps.barGap;
-export var selectBarCategoryGap = state => state.rootProps.barCategoryGap;
-export var selectRootBarSize = state => state.rootProps.barSize;
-export var selectStackOffsetType = state => state.rootProps.stackOffset;
-export var selectReverseStackOrder = state => state.rootProps.reverseStackOrder;
-export var selectChartName = state => state.options.chartName;
-export var selectSyncId = state => state.rootProps.syncId;
-export var selectSyncMethod = state => state.rootProps.syncMethod;
-export var selectEventEmitter = state => state.options.eventEmitter;
-export var selectChartBaseValue = state => state.rootProps.baseValue;
Index: de_modules/recharts/es6/state/selectors/scatterSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/scatterSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import { createSelector } from 'reselect';
-import { computeScatterPoints } from '../../cartesian/Scatter';
-import { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';
-import { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems, selectZAxisWithScale } from './axisSelectors';
-var selectXAxisWithScale = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);
-var selectXAxisTicks = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);
-var selectYAxisWithScale = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);
-var selectYAxisTicks = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);
-var selectZAxis = (state, _xAxisId, _yAxisId, zAxisId) => selectZAxisWithScale(state, 'zAxis', zAxisId, false);
-var pickScatterId = (_state, _xAxisId, _yAxisId, _zAxisId, id) => id;
-var pickCells = (_state, _xAxisId, _yAxisId, _zAxisId, _id, cells) => cells;
-var scatterChartDataSelector = (state, _xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectChartDataWithIndexesIfNotInPanoramaPosition4(state, undefined, undefined, isPanorama);
-var selectSynchronisedScatterSettings = createSelector([selectUnfilteredCartesianItems, pickScatterId], (graphicalItems, id) => {
-  return graphicalItems.filter(item => item.type === 'scatter').find(item => item.id === id);
-});
-export var selectScatterPoints = createSelector([scatterChartDataSelector, selectXAxisWithScale, selectXAxisTicks, selectYAxisWithScale, selectYAxisTicks, selectZAxis, selectSynchronisedScatterSettings, pickCells], (_ref, xAxis, xAxisTicks, yAxis, yAxisTicks, zAxis, scatterSettings, cells) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (scatterSettings == null) {
-    return undefined;
-  }
-  var displayedData;
-  if ((scatterSettings === null || scatterSettings === void 0 ? void 0 : scatterSettings.data) != null && scatterSettings.data.length > 0) {
-    displayedData = scatterSettings.data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || (xAxisTicks === null || xAxisTicks === void 0 ? void 0 : xAxisTicks.length) === 0 || (yAxisTicks === null || yAxisTicks === void 0 ? void 0 : yAxisTicks.length) === 0) {
-    return undefined;
-  }
-  return computeScatterPoints({
-    displayedData,
-    xAxis,
-    yAxis,
-    zAxis,
-    scatterSettings,
-    xAxisTicks,
-    yAxisTicks,
-    cells
-  });
-});
Index: de_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from './tooltipSelectors';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { combineActiveProps, selectOrderedTooltipTicks } from './selectors';
-import { selectPolarViewBox } from './polarAxisSelectors';
-import { selectTooltipAxisType } from './selectTooltipAxisType';
-var pickChartPointer = (_state, chartPointer) => chartPointer;
-export var selectActivePropsFromChartPointer = createSelector([pickChartPointer, selectChartLayout, selectPolarViewBox, selectTooltipAxisType, selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks, selectOrderedTooltipTicks, selectChartOffsetInternal], combineActiveProps);
Index: de_modules/recharts/es6/state/selectors/selectAllAxes.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectAllAxes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { createSelector } from 'reselect';
-export var selectAllXAxes = createSelector(state => state.cartesianAxis.xAxis, xAxisMap => {
-  return Object.values(xAxisMap);
-});
-export var selectAllYAxes = createSelector(state => state.cartesianAxis.yAxis, yAxisMap => {
-  return Object.values(yAxisMap);
-});
Index: de_modules/recharts/es6/state/selectors/selectChartOffset.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectChartOffset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-export var selectChartOffset = createSelector([selectChartOffsetInternal], offsetInternal => {
-  return {
-    top: offsetInternal.top,
-    bottom: offsetInternal.bottom,
-    left: offsetInternal.left,
-    right: offsetInternal.right
-  };
-});
Index: de_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { createSelector } from 'reselect';
-import { selectLegendSettings, selectLegendSize } from './legendSelectors';
-import { appendOffsetOfLegend } from '../../util/ChartUtils';
-import { selectChartHeight, selectChartWidth, selectMargin } from './containerSelectors';
-import { selectAllXAxes, selectAllYAxes } from './selectAllAxes';
-import { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';
-export var selectBrushHeight = state => state.brush.height;
-function selectLeftAxesOffset(state) {
-  var yAxes = selectAllYAxes(state);
-  return yAxes.reduce((result, entry) => {
-    if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {
-      var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;
-      return result + width;
-    }
-    return result;
-  }, 0);
-}
-function selectRightAxesOffset(state) {
-  var yAxes = selectAllYAxes(state);
-  return yAxes.reduce((result, entry) => {
-    if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {
-      var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;
-      return result + width;
-    }
-    return result;
-  }, 0);
-}
-function selectTopAxesOffset(state) {
-  var xAxes = selectAllXAxes(state);
-  return xAxes.reduce((result, entry) => {
-    if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {
-      return result + entry.height;
-    }
-    return result;
-  }, 0);
-}
-function selectBottomAxesOffset(state) {
-  var xAxes = selectAllXAxes(state);
-  return xAxes.reduce((result, entry) => {
-    if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {
-      return result + entry.height;
-    }
-    return result;
-  }, 0);
-}
-
-/**
- * For internal use only.
- *
- * @param root state
- * @return ChartOffsetInternal
- */
-export var selectChartOffsetInternal = createSelector([selectChartWidth, selectChartHeight, selectMargin, selectBrushHeight, selectLeftAxesOffset, selectRightAxesOffset, selectTopAxesOffset, selectBottomAxesOffset, selectLegendSettings, selectLegendSize], (chartWidth, chartHeight, margin, brushHeight, leftAxesOffset, rightAxesOffset, topAxesOffset, bottomAxesOffset, legendSettings, legendSize) => {
-  var offsetH = {
-    left: (margin.left || 0) + leftAxesOffset,
-    right: (margin.right || 0) + rightAxesOffset
-  };
-  var offsetV = {
-    top: (margin.top || 0) + topAxesOffset,
-    bottom: (margin.bottom || 0) + bottomAxesOffset
-  };
-  var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);
-  var brushBottom = offset.bottom;
-  offset.bottom += brushHeight;
-  offset = appendOffsetOfLegend(offset, legendSettings, legendSize);
-  var offsetWidth = chartWidth - offset.left - offset.right;
-  var offsetHeight = chartHeight - offset.top - offset.bottom;
-  return _objectSpread(_objectSpread({
-    brushBottom
-  }, offset), {}, {
-    // never return negative values for height and width
-    width: Math.max(offsetWidth, 0),
-    height: Math.max(offsetHeight, 0)
-  });
-});
-export var selectChartViewBox = createSelector(selectChartOffsetInternal, offset => ({
-  x: offset.left,
-  y: offset.top,
-  width: offset.width,
-  height: offset.height
-}));
-export var selectAxisViewBox = createSelector(selectChartWidth, selectChartHeight, (width, height) => ({
-  x: 0,
-  y: 0,
-  width,
-  height
-}));
Index: de_modules/recharts/es6/state/selectors/selectPlotArea.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectPlotArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectChartOffset } from './selectChartOffset';
-import { selectChartHeight, selectChartWidth } from './containerSelectors';
-export var selectPlotArea = createSelector([selectChartOffset, selectChartWidth, selectChartHeight], (offset, chartWidth, chartHeight) => {
-  if (!offset || chartWidth == null || chartHeight == null) {
-    return undefined;
-  }
-  return {
-    x: offset.left,
-    y: offset.top,
-    width: Math.max(0, chartWidth - offset.left - offset.right),
-    height: Math.max(0, chartHeight - offset.top - offset.bottom)
-  };
-});
Index: de_modules/recharts/es6/state/selectors/selectTooltipAxisId.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipAxisId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var selectTooltipAxisId = state => state.tooltip.settings.axisId;
Index: de_modules/recharts/es6/state/selectors/selectTooltipAxisType.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipAxisType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { selectChartLayout } from '../../context/chartLayoutContext';
-
-/**
- * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings
- */
-
-/**
- * Z axis is never displayed and so it lacks ticks and tick settings.
- */
-
-export var selectTooltipAxisType = state => {
-  var layout = selectChartLayout(state);
-  if (layout === 'horizontal') {
-    return 'xAxis';
-  }
-  if (layout === 'vertical') {
-    return 'yAxis';
-  }
-  if (layout === 'centric') {
-    return 'angleAxis';
-  }
-  return 'radiusAxis';
-};
Index: de_modules/recharts/es6/state/selectors/selectTooltipEventType.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipEventType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { useAppSelector } from '../hooks';
-export var selectDefaultTooltipEventType = state => state.options.defaultTooltipEventType;
-export var selectValidateTooltipEventTypes = state => state.options.validateTooltipEventTypes;
-export function combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes) {
-  if (shared == null) {
-    return defaultTooltipEventType;
-  }
-  var eventType = shared ? 'axis' : 'item';
-  if (validateTooltipEventTypes == null) {
-    return defaultTooltipEventType;
-  }
-  return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;
-}
-export function selectTooltipEventType(state, shared) {
-  var defaultTooltipEventType = selectDefaultTooltipEventType(state);
-  var validateTooltipEventTypes = selectValidateTooltipEventTypes(state);
-  return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);
-}
-export function useTooltipEventType(shared) {
-  return useAppSelector(state => selectTooltipEventType(state, shared));
-}
Index: de_modules/recharts/es6/state/selectors/selectTooltipPayloadSearcher.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipPayloadSearcher.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var selectTooltipPayloadSearcher = state => state.options.tooltipPayloadSearcher;
Index: de_modules/recharts/es6/state/selectors/selectTooltipSettings.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var selectTooltipSettings = state => state.tooltip.settings;
Index: de_modules/recharts/es6/state/selectors/selectTooltipState.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectTooltipState.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export var selectTooltipState = state => state.tooltip;
Index: de_modules/recharts/es6/state/selectors/selectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/selectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import { createSelector } from 'reselect';
-import sortBy from 'es-toolkit/compat/sortBy';
-import { useAppSelector } from '../hooks';
-import { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';
-import { selectChartDataWithIndexes } from './dataSelectors';
-import { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './tooltipSelectors';
-import { selectTooltipAxisDataKey } from './axisSelectors';
-import { selectChartName } from './rootPropsSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { selectChartHeight, selectChartWidth } from './containerSelectors';
-import { combineActiveLabel } from './combiners/combineActiveLabel';
-import { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';
-import { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';
-import { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';
-import { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';
-import { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';
-import { selectTooltipState } from './selectTooltipState';
-import { combineTooltipPayload } from './combiners/combineTooltipPayload';
-import { calculateActiveTickIndex, getActiveCartesianCoordinate, getActivePolarCoordinate, isInCartesianRange } from '../../util/getActiveCoordinate';
-import { inRangeOfSector } from '../../util/PolarUtils';
-export var useChartName = () => {
-  return useAppSelector(selectChartName);
-};
-var pickTooltipEventType = (_state, tooltipEventType) => tooltipEventType;
-var pickTrigger = (_state, _tooltipEventType, trigger) => trigger;
-var pickDefaultIndex = (_state, _tooltipEventType, _trigger, defaultIndex) => defaultIndex;
-export var selectOrderedTooltipTicks = createSelector(selectTooltipAxisTicks, ticks => sortBy(ticks, o => o.coordinate));
-export var selectTooltipInteractionState = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipInteractionState);
-export var selectActiveIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain], combineActiveTooltipIndex);
-export var selectTooltipDataKey = (state, tooltipEventType, trigger) => {
-  if (tooltipEventType == null) {
-    return undefined;
-  }
-  var tooltipState = selectTooltipState(state);
-  if (tooltipEventType === 'axis') {
-    if (trigger === 'hover') {
-      return tooltipState.axisInteraction.hover.dataKey;
-    }
-    return tooltipState.axisInteraction.click.dataKey;
-  }
-  if (trigger === 'hover') {
-    return tooltipState.itemInteraction.hover.dataKey;
-  }
-  return tooltipState.itemInteraction.click.dataKey;
-};
-export var selectTooltipPayloadConfigurations = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipPayloadConfigurations);
-export var selectCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, pickDefaultIndex, selectTooltipPayloadConfigurations], combineCoordinateForDefaultIndex);
-export var selectActiveCoordinate = createSelector([selectTooltipInteractionState, selectCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {
-  var _tooltipInteractionSt;
-  return (_tooltipInteractionSt = tooltipInteractionState.coordinate) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : defaultIndexCoordinate;
-});
-export var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveIndex], combineActiveLabel);
-export var selectTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, pickTooltipEventType], combineTooltipPayload);
-export var selectIsTooltipActive = createSelector([selectTooltipInteractionState, selectActiveIndex], (tooltipInteractionState, activeIndex) => {
-  return {
-    isActive: tooltipInteractionState.active && activeIndex != null,
-    activeIndex
-  };
-});
-var combineActiveCartesianProps = (chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
-  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
-    return undefined;
-  }
-  if (!isInCartesianRange(chartEvent, offset)) {
-    return undefined;
-  }
-  var pos = calculateCartesianTooltipPos(chartEvent, layout);
-  var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
-  var activeCoordinate = getActiveCartesianCoordinate(layout, tooltipTicks, activeIndex, chartEvent);
-  return {
-    activeIndex: String(activeIndex),
-    activeCoordinate
-  };
-};
-var combineActivePolarProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks) => {
-  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {
-    return undefined;
-  }
-  var rangeObj = inRangeOfSector(chartEvent, polarViewBox);
-  if (!rangeObj) {
-    return undefined;
-  }
-  var pos = calculatePolarTooltipPos(rangeObj, layout);
-  var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
-  var activeCoordinate = getActivePolarCoordinate(layout, tooltipTicks, activeIndex, rangeObj);
-  return {
-    activeIndex: String(activeIndex),
-    activeCoordinate
-  };
-};
-export var combineActiveProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
-  if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
-    return undefined;
-  }
-  if (layout === 'horizontal' || layout === 'vertical') {
-    return combineActiveCartesianProps(chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset);
-  }
-  return combineActivePolarProps(chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks);
-};
Index: de_modules/recharts/es6/state/selectors/tooltipSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/tooltipSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,179 +1,0 @@
-import { createSelector } from 'reselect';
-import { combineAppliedValues, combineAreasDomain, combineAxisDomain, combineAxisDomainWithNiceTicks, combineCategoricalDomain, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineDomainOfStackGroups, combineDotsDomain, combineDuplicateDomain, combineGraphicalItemsData, combineGraphicalItemsSettings, combineLinesDomain, combineNiceTicks, combineNumericalDomain, combineRealScaleType, combineScaleFunction, combineStackGroups, filterGraphicalNotStackedItems, filterReferenceElements, getDomainDefinition, itemAxisPredicate, mergeDomains, selectAllErrorBarSettings, selectAxisRange, selectHasBar, selectReferenceAreas, selectReferenceDots, selectReferenceLines, selectTooltipAxis, selectTooltipAxisDataKey } from './axisSelectors';
-import { selectChartLayout } from '../../context/chartLayoutContext';
-import { isCategoricalAxis } from '../../util/ChartUtils';
-import { selectChartDataWithIndexes } from './dataSelectors';
-import { selectChartName, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';
-import { isNotNil, mathSign } from '../../util/DataUtils';
-import { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';
-import { combineTooltipEventType, selectDefaultTooltipEventType, selectValidateTooltipEventTypes } from './selectTooltipEventType';
-import { combineActiveLabel } from './combiners/combineActiveLabel';
-import { selectTooltipSettings } from './selectTooltipSettings';
-import { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';
-import { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';
-import { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';
-import { selectChartHeight, selectChartWidth } from './containerSelectors';
-import { selectChartOffsetInternal } from './selectChartOffsetInternal';
-import { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';
-import { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';
-import { selectTooltipState } from './selectTooltipState';
-import { combineTooltipPayload } from './combiners/combineTooltipPayload';
-import { selectTooltipAxisId } from './selectTooltipAxisId';
-import { selectTooltipAxisType } from './selectTooltipAxisType';
-import { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';
-import { isStacked } from '../types/StackedGraphicalItem';
-import { numericalDomainSpecifiedWithoutRequiringData } from '../../util/isDomainSpecifiedByUser';
-import { numberDomainEqualityCheck } from './numberDomainEqualityCheck';
-import { emptyArraysAreEqualCheck } from './arrayEqualityCheck';
-import { isWellBehavedNumber } from '../../util/isWellBehavedNumber';
-export var selectTooltipAxisRealScaleType = createSelector([selectTooltipAxis, selectHasBar, selectChartName], combineRealScaleType);
-export var selectAllUnfilteredGraphicalItems = createSelector([state => state.graphicalItems.cartesianItems, state => state.graphicalItems.polarItems], (cartesianItems, polarItems) => [...cartesianItems, ...polarItems]);
-var selectTooltipAxisPredicate = createSelector([selectTooltipAxisType, selectTooltipAxisId], itemAxisPredicate);
-export var selectAllGraphicalItemsSettings = createSelector([selectAllUnfilteredGraphicalItems, selectTooltipAxis, selectTooltipAxisPredicate], combineGraphicalItemsSettings, {
-  memoizeOptions: {
-    resultEqualityCheck: emptyArraysAreEqualCheck
-  }
-});
-var selectAllStackedGraphicalItemsSettings = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));
-export var selectTooltipGraphicalItemsData = createSelector([selectAllGraphicalItemsSettings], combineGraphicalItemsData, {
-  memoizeOptions: {
-    resultEqualityCheck: emptyArraysAreEqualCheck
-  }
-});
-
-/**
- * Data for tooltip always use the data with indexes set by a Brush,
- * and never accept the isPanorama flag:
- * because Tooltip never displays inside the panorama anyway
- * so we don't need to worry what would happen there.
- */
-export var selectTooltipDisplayedData = createSelector([selectTooltipGraphicalItemsData, selectChartDataWithIndexes], combineDisplayedData);
-var selectTooltipStackedData = createSelector([selectAllStackedGraphicalItemsSettings, selectChartDataWithIndexes, selectTooltipAxis], combineDisplayedStackedData);
-var selectAllTooltipAppliedValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectAllGraphicalItemsSettings], combineAppliedValues);
-var selectTooltipAxisDomainDefinition = createSelector([selectTooltipAxis], getDomainDefinition);
-var selectTooltipDataOverflow = createSelector([selectTooltipAxis], axisSettings => axisSettings.allowDataOverflow);
-var selectTooltipDomainFromUserPreferences = createSelector([selectTooltipAxisDomainDefinition, selectTooltipDataOverflow], numericalDomainSpecifiedWithoutRequiringData);
-var selectAllStackedGraphicalItems = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));
-var selectTooltipStackGroups = createSelector([selectTooltipStackedData, selectAllStackedGraphicalItems, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);
-var selectTooltipDomainOfStackGroups = createSelector([selectTooltipStackGroups, selectChartDataWithIndexes, selectTooltipAxisType, selectTooltipDomainFromUserPreferences], combineDomainOfStackGroups);
-var selectTooltipItemsSettingsExceptStacked = createSelector([selectAllGraphicalItemsSettings], filterGraphicalNotStackedItems);
-var selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectTooltipItemsSettingsExceptStacked, selectAllErrorBarSettings, selectTooltipAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {
-  memoizeOptions: {
-    resultEqualityCheck: numberDomainEqualityCheck
-  }
-});
-var selectReferenceDotsByTooltipAxis = createSelector([selectReferenceDots, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);
-var selectTooltipReferenceDotsDomain = createSelector([selectReferenceDotsByTooltipAxis, selectTooltipAxisType], combineDotsDomain);
-var selectReferenceAreasByTooltipAxis = createSelector([selectReferenceAreas, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);
-var selectTooltipReferenceAreasDomain = createSelector([selectReferenceAreasByTooltipAxis, selectTooltipAxisType], combineAreasDomain);
-var selectReferenceLinesByTooltipAxis = createSelector([selectReferenceLines, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);
-var selectTooltipReferenceLinesDomain = createSelector([selectReferenceLinesByTooltipAxis, selectTooltipAxisType], combineLinesDomain);
-var selectTooltipReferenceElementsDomain = createSelector([selectTooltipReferenceDotsDomain, selectTooltipReferenceLinesDomain, selectTooltipReferenceAreasDomain], mergeDomains);
-var selectTooltipNumericalDomain = createSelector([selectTooltipAxis, selectTooltipAxisDomainDefinition, selectTooltipDomainFromUserPreferences, selectTooltipDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectTooltipReferenceElementsDomain, selectChartLayout, selectTooltipAxisType], combineNumericalDomain);
-export var selectTooltipAxisDomain = createSelector([selectTooltipAxis, selectChartLayout, selectTooltipDisplayedData, selectAllTooltipAppliedValues, selectStackOffsetType, selectTooltipAxisType, selectTooltipNumericalDomain], combineAxisDomain);
-var selectTooltipNiceTicks = createSelector([selectTooltipAxisDomain, selectTooltipAxis, selectTooltipAxisRealScaleType], combineNiceTicks);
-export var selectTooltipAxisDomainIncludingNiceTicks = createSelector([selectTooltipAxis, selectTooltipAxisDomain, selectTooltipNiceTicks, selectTooltipAxisType], combineAxisDomainWithNiceTicks);
-var selectTooltipAxisRange = state => {
-  var axisType = selectTooltipAxisType(state);
-  var axisId = selectTooltipAxisId(state);
-  var isPanorama = false; // Tooltip never displays in panorama so this is safe to assume
-  return selectAxisRange(state, axisType, axisId, isPanorama);
-};
-export var selectTooltipAxisRangeWithReverse = createSelector([selectTooltipAxis, selectTooltipAxisRange], combineAxisRangeWithReverse);
-export var selectTooltipAxisScale = createSelector([selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisDomainIncludingNiceTicks, selectTooltipAxisRangeWithReverse], combineScaleFunction);
-var selectTooltipDuplicateDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineDuplicateDomain);
-export var selectTooltipCategoricalDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineCategoricalDomain);
-var combineTicksOfTooltipAxis = (layout, axis, realScaleType, scale, range, duplicateDomain, categoricalDomain, axisType) => {
-  if (!axis) {
-    return undefined;
-  }
-  var {
-    type
-  } = axis;
-  var isCategorical = isCategoricalAxis(layout, axisType);
-  if (!scale) {
-    return undefined;
-  }
-  var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;
-  var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && range != null && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!isWellBehavedNumber(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as an index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(isNotNil);
-};
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export var selectTooltipAxisTicks = createSelector([selectChartLayout, selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisScale, selectTooltipAxisRange, selectTooltipDuplicateDomain, selectTooltipCategoricalDomain, selectTooltipAxisType], combineTicksOfTooltipAxis);
-var selectTooltipEventType = createSelector([selectDefaultTooltipEventType, selectValidateTooltipEventTypes, selectTooltipSettings], (defaultTooltipEventType, validateTooltipEventType, settings) => combineTooltipEventType(settings.shared, defaultTooltipEventType, validateTooltipEventType));
-var selectTooltipTrigger = state => state.tooltip.settings.trigger;
-var selectDefaultIndex = state => state.tooltip.settings.defaultIndex;
-var selectTooltipInteractionState = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipInteractionState);
-export var selectActiveTooltipIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain], combineActiveTooltipIndex);
-export var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveTooltipIndex], combineActiveLabel);
-export var selectActiveTooltipDataKey = createSelector([selectTooltipInteractionState], tooltipInteraction => {
-  if (!tooltipInteraction) {
-    return undefined;
-  }
-  return tooltipInteraction.dataKey;
-});
-export var selectActiveTooltipGraphicalItemId = createSelector([selectTooltipInteractionState], tooltipInteraction => {
-  if (!tooltipInteraction) {
-    return undefined;
-  }
-  return tooltipInteraction.graphicalItemId;
-});
-var selectTooltipPayloadConfigurations = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipPayloadConfigurations);
-var selectTooltipCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, selectDefaultIndex, selectTooltipPayloadConfigurations], combineCoordinateForDefaultIndex);
-export var selectActiveTooltipCoordinate = createSelector([selectTooltipInteractionState, selectTooltipCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {
-  if (tooltipInteractionState !== null && tooltipInteractionState !== void 0 && tooltipInteractionState.coordinate) {
-    return tooltipInteractionState.coordinate;
-  }
-  return defaultIndexCoordinate;
-});
-export var selectIsTooltipActive = createSelector([selectTooltipInteractionState], tooltipInteractionState => {
-  var _tooltipInteractionSt;
-  return (_tooltipInteractionSt = tooltipInteractionState === null || tooltipInteractionState === void 0 ? void 0 : tooltipInteractionState.active) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : false;
-});
-export var selectActiveTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveTooltipIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, selectTooltipEventType], combineTooltipPayload);
-export var selectActiveTooltipDataPoints = createSelector([selectActiveTooltipPayload], payload => {
-  if (payload == null) {
-    return undefined;
-  }
-  var dataPoints = payload.map(p => p.payload).filter(p => p != null);
-  return Array.from(new Set(dataPoints));
-});
Index: de_modules/recharts/es6/state/selectors/touchSelectors.js
===================================================================
--- node_modules/recharts/es6/state/selectors/touchSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { createSelector } from 'reselect';
-import { selectTooltipState } from './selectTooltipState';
-var selectAllTooltipPayloadConfiguration = createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);
-export var selectTooltipCoordinate = createSelector([selectAllTooltipPayloadConfiguration, (_state, tooltipIndex) => tooltipIndex, (_state, _tooltipIndex, graphicalItemId) => graphicalItemId], (allTooltipConfigurations, tooltipIndex, graphicalItemId) => {
-  if (tooltipIndex == null) {
-    return undefined;
-  }
-  var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {
-    return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;
-  });
-  if (mostRelevantTooltipConfiguration == null) {
-    return undefined;
-  }
-  var {
-    getPosition
-  } = mostRelevantTooltipConfiguration;
-  if (getPosition == null) {
-    return undefined;
-  }
-  return getPosition(tooltipIndex);
-});
Index: de_modules/recharts/es6/state/store.js
===================================================================
--- node_modules/recharts/es6/state/store.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-import { autoBatchEnhancer, combineReducers, configureStore } from '@reduxjs/toolkit';
-import { optionsReducer } from './optionsSlice';
-import { tooltipReducer } from './tooltipSlice';
-import { chartDataReducer } from './chartDataSlice';
-import { chartLayoutReducer } from './layoutSlice';
-import { mouseClickMiddleware, mouseMoveMiddleware } from './mouseEventsMiddleware';
-import { reduxDevtoolsJsonStringifyReplacer } from './reduxDevtoolsJsonStringifyReplacer';
-import { cartesianAxisReducer } from './cartesianAxisSlice';
-import { graphicalItemsReducer } from './graphicalItemsSlice';
-import { referenceElementsReducer } from './referenceElementsSlice';
-import { brushReducer } from './brushSlice';
-import { legendReducer } from './legendSlice';
-import { rootPropsReducer } from './rootPropsSlice';
-import { polarAxisReducer } from './polarAxisSlice';
-import { polarOptionsReducer } from './polarOptionsSlice';
-import { keyboardEventsMiddleware } from './keyboardEventsMiddleware';
-import { externalEventsMiddleware } from './externalEventsMiddleware';
-import { touchEventMiddleware } from './touchEventsMiddleware';
-import { errorBarReducer } from './errorBarSlice';
-import { Global } from '../util/Global';
-import { zIndexReducer } from './zIndexSlice';
-var rootReducer = combineReducers({
-  brush: brushReducer,
-  cartesianAxis: cartesianAxisReducer,
-  chartData: chartDataReducer,
-  errorBars: errorBarReducer,
-  graphicalItems: graphicalItemsReducer,
-  layout: chartLayoutReducer,
-  legend: legendReducer,
-  options: optionsReducer,
-  polarAxis: polarAxisReducer,
-  polarOptions: polarOptionsReducer,
-  referenceElements: referenceElementsReducer,
-  rootProps: rootPropsReducer,
-  tooltip: tooltipReducer,
-  zIndex: zIndexReducer
-});
-export var createRechartsStore = function createRechartsStore(preloadedState) {
-  var chartName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Chart';
-  return configureStore({
-    reducer: rootReducer,
-    // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2
-    preloadedState: preloadedState,
-    // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2
-    middleware: getDefaultMiddleware => {
-      var _process$env$NODE_ENV;
-      return getDefaultMiddleware({
-        serializableCheck: false,
-        immutableCheck: !['commonjs', 'es6', 'production'].includes((_process$env$NODE_ENV = "es6") !== null && _process$env$NODE_ENV !== void 0 ? _process$env$NODE_ENV : '')
-      }).concat([mouseClickMiddleware.middleware, mouseMoveMiddleware.middleware, keyboardEventsMiddleware.middleware, externalEventsMiddleware.middleware, touchEventMiddleware.middleware]);
-    },
-    /*
-     * I can't find out how to satisfy typescript here.
-     * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,
-     * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.
-     * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.
-     * So let's just ignore the error for now.
-     */
-    // @ts-expect-error mismatched generics
-    enhancers: getDefaultEnhancers => {
-      var enhancers = getDefaultEnhancers;
-      if (typeof getDefaultEnhancers === 'function') {
-        /*
-         * In RTK v2 this is always a function, but in v1 it is an array.
-         * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.
-         * We support both RTK v1 and v2, so we need to do this check.
-         * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback
-         */
-        // @ts-expect-error RTK v2 behaviour on RTK v1 types
-        enhancers = getDefaultEnhancers();
-      }
-      return enhancers.concat(autoBatchEnhancer({
-        type: 'raf'
-      }));
-    },
-    devTools: Global.devToolsEnabled && {
-      serialize: {
-        replacer: reduxDevtoolsJsonStringifyReplacer
-      },
-      name: "recharts-".concat(chartName)
-    }
-  });
-};
Index: de_modules/recharts/es6/state/tooltipSlice.js
===================================================================
--- node_modules/recharts/es6/state/tooltipSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,219 +1,0 @@
-import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-
-/**
- * One Tooltip can display multiple TooltipPayloadEntries at a time.
- */
-
-/**
- * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.
- * The dataKey can either be defined on the graphical element (like Line, or Bar)
- * or on the tooltip itself.
- *
- * The data can be defined in the chart element, or in the graphical item.
- *
- * So this type is all the settings, other than the data + dataKey complications.
- */
-
-/**
- * This is what Tooltip renders.
- */
-
-/**
- * null means no active index
- * string means: whichever index from the chart data it is.
- * Different charts have different requirements on data shapes,
- * and are also responsible for providing a function that will accept this index
- * and return data.
- */
-
-/**
- * Different items have different data shapes so the state has no opinion on what the data shape should be;
- * the only requirement is that the chart also provides a searcher function
- * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.
- */
-
-/**
- * So this informs the "tooltip event type". Tooltip event type can be either "axis" or "item"
- * and it is used for two things:
- * 1. Sets the active area
- * 2. Sets the background and cursor highlights
- *
- * Some charts only allow to have one type of tooltip event type, some allow both.
- * Those charts that allow both will have one default, and the "shared" prop will be used to switch between them.
- * Undefined means "use the chart default".
- *
- * Charts that only allow one tooltip event type, will ignore the shared prop.
- */
-
-/**
- * A generic state for user interaction with the chart.
- * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.
- *
- * Each of the interaction states is represented as TooltipInteractionState,
- * and then the selectors and Tooltip will decide which of the interaction states to use.
- */
-
-export var noInteraction = {
-  active: false,
-  index: null,
-  dataKey: undefined,
-  graphicalItemId: undefined,
-  coordinate: undefined
-};
-
-/**
- * The tooltip interaction state stores:
- *
- * - Which graphical item is user interacting with at the moment,
- * - which axis (or, which part of chart background) is user interacting with at the moment
- * - The data that individual graphical items wish to be displayed in case the tooltip gets activated
- */
-
-export var initialState = {
-  itemInteraction: {
-    click: noInteraction,
-    hover: noInteraction
-  },
-  axisInteraction: {
-    click: noInteraction,
-    hover: noInteraction
-  },
-  keyboardInteraction: noInteraction,
-  syncInteraction: {
-    active: false,
-    index: null,
-    dataKey: undefined,
-    label: undefined,
-    coordinate: undefined,
-    sourceViewBox: undefined,
-    graphicalItemId: undefined
-  },
-  tooltipItemPayloads: [],
-  settings: {
-    shared: undefined,
-    trigger: 'hover',
-    axisId: 0,
-    active: false,
-    defaultIndex: undefined
-  }
-};
-
-/**
- * This is the event we get when user is interacting with a specific graphical item.
- */
-
-/**
- * Keyboard interaction payload has no graphical item ID,
- * and no dataKey, because keyboard interaction is always
- * with the whole chart, not with a specific graphical item.
- */
-
-var tooltipSlice = createSlice({
-  name: 'tooltip',
-  initialState,
-  reducers: {
-    addTooltipEntrySettings: {
-      reducer(state, action) {
-        state.tooltipItemPayloads.push(castDraft(action.payload));
-      },
-      prepare: prepareAutoBatched()
-    },
-    replaceTooltipEntrySettings: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = current(state).tooltipItemPayloads.indexOf(castDraft(prev));
-        if (index > -1) {
-          state.tooltipItemPayloads[index] = castDraft(next);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    removeTooltipEntrySettings: {
-      reducer(state, action) {
-        var index = current(state).tooltipItemPayloads.indexOf(castDraft(action.payload));
-        if (index > -1) {
-          state.tooltipItemPayloads.splice(index, 1);
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    setTooltipSettingsState(state, action) {
-      state.settings = action.payload;
-    },
-    setActiveMouseOverItemIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.keyboardInteraction.active = false;
-      state.itemInteraction.hover.active = true;
-      state.itemInteraction.hover.index = action.payload.activeIndex;
-      state.itemInteraction.hover.dataKey = action.payload.activeDataKey;
-      state.itemInteraction.hover.graphicalItemId = action.payload.activeGraphicalItemId;
-      state.itemInteraction.hover.coordinate = action.payload.activeCoordinate;
-    },
-    mouseLeaveChart(state) {
-      /*
-       * Clear only the active flags. Why?
-       * 1. Keep Coordinate to preserve animation - next time the Tooltip appears, we want to render it from
-       * the last place where it was when it disappeared.
-       * 2. We want to keep all the properties anyway just in case the tooltip has `active=true` prop
-       * and continues being visible even after the mouse has left the chart.
-       */
-      state.itemInteraction.hover.active = false;
-      state.axisInteraction.hover.active = false;
-    },
-    mouseLeaveItem(state) {
-      state.itemInteraction.hover.active = false;
-    },
-    setActiveClickItemIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.itemInteraction.click.active = true;
-      state.keyboardInteraction.active = false;
-      state.itemInteraction.click.index = action.payload.activeIndex;
-      state.itemInteraction.click.dataKey = action.payload.activeDataKey;
-      state.itemInteraction.click.graphicalItemId = action.payload.activeGraphicalItemId;
-      state.itemInteraction.click.coordinate = action.payload.activeCoordinate;
-    },
-    setMouseOverAxisIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.axisInteraction.hover.active = true;
-      state.keyboardInteraction.active = false;
-      state.axisInteraction.hover.index = action.payload.activeIndex;
-      state.axisInteraction.hover.dataKey = action.payload.activeDataKey;
-      state.axisInteraction.hover.coordinate = action.payload.activeCoordinate;
-    },
-    setMouseClickAxisIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.keyboardInteraction.active = false;
-      state.axisInteraction.click.active = true;
-      state.axisInteraction.click.index = action.payload.activeIndex;
-      state.axisInteraction.click.dataKey = action.payload.activeDataKey;
-      state.axisInteraction.click.coordinate = action.payload.activeCoordinate;
-    },
-    setSyncInteraction(state, action) {
-      state.syncInteraction = action.payload;
-    },
-    setKeyboardInteraction(state, action) {
-      state.keyboardInteraction.active = action.payload.active;
-      state.keyboardInteraction.index = action.payload.activeIndex;
-      state.keyboardInteraction.coordinate = action.payload.activeCoordinate;
-    }
-  }
-});
-export var {
-  addTooltipEntrySettings,
-  replaceTooltipEntrySettings,
-  removeTooltipEntrySettings,
-  setTooltipSettingsState,
-  setActiveMouseOverItemIndex,
-  mouseLeaveItem,
-  mouseLeaveChart,
-  setActiveClickItemIndex,
-  setMouseOverAxisIndex,
-  setMouseClickAxisIndex,
-  setSyncInteraction,
-  setKeyboardInteraction
-} = tooltipSlice.actions;
-export var tooltipReducer = tooltipSlice.reducer;
Index: de_modules/recharts/es6/state/touchEventsMiddleware.js
===================================================================
--- node_modules/recharts/es6/state/touchEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';
-import { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';
-import { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';
-import { getChartPointer } from '../util/getChartPointer';
-import { selectTooltipEventType } from './selectors/selectTooltipEventType';
-import { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';
-import { selectTooltipCoordinate } from './selectors/touchSelectors';
-import { selectAllGraphicalItemsSettings } from './selectors/tooltipSelectors';
-export var touchEventAction = createAction('touchMove');
-export var touchEventMiddleware = createListenerMiddleware();
-touchEventMiddleware.startListening({
-  actionCreator: touchEventAction,
-  effect: (action, listenerApi) => {
-    var touchEvent = action.payload;
-    if (touchEvent.touches == null || touchEvent.touches.length === 0) {
-      return;
-    }
-    var state = listenerApi.getState();
-    var tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);
-    if (tooltipEventType === 'axis') {
-      var touch = touchEvent.touches[0];
-      if (touch == null) {
-        return;
-      }
-      var activeProps = selectActivePropsFromChartPointer(state, getChartPointer({
-        clientX: touch.clientX,
-        clientY: touch.clientY,
-        currentTarget: touchEvent.currentTarget
-      }));
-      if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-        listenerApi.dispatch(setMouseOverAxisIndex({
-          activeIndex: activeProps.activeIndex,
-          activeDataKey: undefined,
-          activeCoordinate: activeProps.activeCoordinate
-        }));
-      }
-    } else if (tooltipEventType === 'item') {
-      var _target$getAttribute;
-      var _touch = touchEvent.touches[0];
-      if (document.elementFromPoint == null || _touch == null) {
-        return;
-      }
-      var target = document.elementFromPoint(_touch.clientX, _touch.clientY);
-      if (!target || !target.getAttribute) {
-        return;
-      }
-      var itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);
-      var graphicalItemId = (_target$getAttribute = target.getAttribute(DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;
-      var settings = selectAllGraphicalItemsSettings(state).find(item => item.id === graphicalItemId);
-      if (itemIndex == null || settings == null || graphicalItemId == null) {
-        return;
-      }
-      var {
-        dataKey
-      } = settings;
-      var coordinate = selectTooltipCoordinate(state, itemIndex, graphicalItemId);
-      listenerApi.dispatch(setActiveMouseOverItemIndex({
-        activeDataKey: dataKey,
-        activeIndex: itemIndex,
-        activeCoordinate: coordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-    }
-  }
-});
Index: de_modules/recharts/es6/state/types/AreaSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/AreaSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/BarSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/BarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/LineSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/LineSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/PieSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/PieSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/RadarSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/RadarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/RadialBarSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/RadialBarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/ScatterSettings.js
===================================================================
--- node_modules/recharts/es6/state/types/ScatterSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/state/types/StackedGraphicalItem.js
===================================================================
--- node_modules/recharts/es6/state/types/StackedGraphicalItem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-/**
- * Some graphical items allow data stacking. The stacks are optional,
- * so all props here are optional too.
- */
-
-/**
- * Some graphical items allow data stacking.
- * This interface is used to represent the items that are stacked
- * because the user has provided the stackId and dataKey properties.
- */
-
-export function isStacked(graphicalItem) {
-  return 'stackId' in graphicalItem && graphicalItem.stackId != null && graphicalItem.dataKey != null;
-}
Index: de_modules/recharts/es6/state/zIndexSlice.js
===================================================================
--- node_modules/recharts/es6/state/zIndexSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,115 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * This slice contains a registry of z-index values for various components.
- * The state is a map from z-index numbers to element references.
- */
-import { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';
-import { castDraft } from 'immer';
-import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
-var seed = {};
-var initialState = {
-  zIndexMap: Object.values(DefaultZIndexes).reduce((acc, current) => _objectSpread(_objectSpread({}, acc), {}, {
-    [current]: {
-      element: undefined,
-      panoramaElement: undefined,
-      consumers: 0
-    }
-  }), seed)
-};
-var defaultZIndexSet = new Set(Object.values(DefaultZIndexes));
-function isDefaultZIndex(zIndex) {
-  return defaultZIndexSet.has(zIndex);
-}
-var zIndexSlice = createSlice({
-  name: 'zIndex',
-  initialState,
-  reducers: {
-    registerZIndexPortal: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          state.zIndexMap[zIndex].consumers += 1;
-        } else {
-          state.zIndexMap[zIndex] = {
-            consumers: 1,
-            element: undefined,
-            panoramaElement: undefined
-          };
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    unregisterZIndexPortal: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          state.zIndexMap[zIndex].consumers -= 1;
-          /*
-           * Garbage collect unused z-index entries, except for default z-indexes.
-           * Default z-indexes are always rendered, regardless of whether there are consumers or not.
-           * And because of that, even if we delete this entry, the ZIndexPortal provider will still be rendered
-           * and React is not going to re-create it, and it won't re-register the element ID.
-           * So let's not delete default z-index entries.
-           */
-          if (state.zIndexMap[zIndex].consumers <= 0 && !isDefaultZIndex(zIndex)) {
-            delete state.zIndexMap[zIndex];
-          }
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    registerZIndexPortalElement: {
-      reducer: (state, action) => {
-        var {
-          zIndex,
-          element,
-          isPanorama
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          if (isPanorama) {
-            state.zIndexMap[zIndex].panoramaElement = castDraft(element);
-          } else {
-            state.zIndexMap[zIndex].element = castDraft(element);
-          }
-        } else {
-          state.zIndexMap[zIndex] = {
-            consumers: 0,
-            element: isPanorama ? undefined : castDraft(element),
-            panoramaElement: isPanorama ? castDraft(element) : undefined
-          };
-        }
-      },
-      prepare: prepareAutoBatched()
-    },
-    unregisterZIndexPortalElement: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          if (action.payload.isPanorama) {
-            state.zIndexMap[zIndex].panoramaElement = undefined;
-          } else {
-            state.zIndexMap[zIndex].element = undefined;
-          }
-        }
-      },
-      prepare: prepareAutoBatched()
-    }
-  }
-});
-export var {
-  registerZIndexPortal,
-  unregisterZIndexPortal,
-  registerZIndexPortalElement,
-  unregisterZIndexPortalElement
-} = zIndexSlice.actions;
-export var zIndexReducer = zIndexSlice.reducer;
Index: de_modules/recharts/es6/synchronisation/syncSelectors.js
===================================================================
--- node_modules/recharts/es6/synchronisation/syncSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export function selectSynchronisedTooltipState(state) {
-  return state.tooltip.syncInteraction;
-}
Index: de_modules/recharts/es6/synchronisation/types.js
===================================================================
--- node_modules/recharts/es6/synchronisation/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/synchronisation/useChartSynchronisation.js
===================================================================
--- node_modules/recharts/es6/synchronisation/useChartSynchronisation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,253 +1,0 @@
-var _excluded = ["x", "y"];
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import { useEffect } from 'react';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectEventEmitter, selectSyncId, selectSyncMethod } from '../state/selectors/rootPropsSelectors';
-import { BRUSH_SYNC_EVENT, eventCenter, TOOLTIP_SYNC_EVENT } from '../util/Events';
-import { createEventEmitter } from '../state/optionsSlice';
-import { setSyncInteraction } from '../state/tooltipSlice';
-import { selectTooltipDataKey } from '../state/selectors/selectors';
-import { selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';
-import { selectSynchronisedTooltipState } from './syncSelectors';
-import { useChartLayout, useViewBox } from '../context/chartLayoutContext';
-import { setDataStartEndIndexes } from '../state/chartDataSlice';
-import { noop } from '../util/DataUtils';
-function useTooltipSyncEventsListener() {
-  var mySyncId = useAppSelector(selectSyncId);
-  var myEventEmitter = useAppSelector(selectEventEmitter);
-  var dispatch = useAppDispatch();
-  var syncMethod = useAppSelector(selectSyncMethod);
-  var tooltipTicks = useAppSelector(selectTooltipAxisTicks);
-  var layout = useChartLayout();
-  var viewBox = useViewBox();
-  var className = useAppSelector(state => state.rootProps.className);
-  useEffect(() => {
-    if (mySyncId == null) {
-      // This chart is not synchronised with any other chart so we don't need to listen for any events.
-      return noop;
-    }
-    var listener = (incomingSyncId, action, emitter) => {
-      if (myEventEmitter === emitter) {
-        // We don't want to dispatch actions that we sent ourselves.
-        return;
-      }
-      if (mySyncId !== incomingSyncId) {
-        // This event is not for this chart
-        return;
-      }
-      if (syncMethod === 'index') {
-        var _action$payload;
-        if (viewBox && action !== null && action !== void 0 && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.coordinate && action.payload.sourceViewBox) {
-          var _action$payload$coord = action.payload.coordinate,
-            {
-              x: _x,
-              y: _y
-            } = _action$payload$coord,
-            otherCoordinateProps = _objectWithoutProperties(_action$payload$coord, _excluded);
-          var {
-            x: sourceX,
-            y: sourceY,
-            width: sourceWidth,
-            height: sourceHeight
-          } = action.payload.sourceViewBox;
-          var scaledCoordinate = _objectSpread(_objectSpread({}, otherCoordinateProps), {}, {
-            x: viewBox.x + (sourceWidth ? (_x - sourceX) / sourceWidth : 0) * viewBox.width,
-            y: viewBox.y + (sourceHeight ? (_y - sourceY) / sourceHeight : 0) * viewBox.height
-          });
-          dispatch(_objectSpread(_objectSpread({}, action), {}, {
-            payload: _objectSpread(_objectSpread({}, action.payload), {}, {
-              coordinate: scaledCoordinate
-            })
-          }));
-        } else {
-          dispatch(action);
-        }
-        return;
-      }
-      if (tooltipTicks == null) {
-        // for the other two sync methods, we need the ticks to be available
-        return;
-      }
-      var activeTick;
-      if (typeof syncMethod === 'function') {
-        /*
-         * This is what the data shape in 2.x CategoricalChartState used to look like.
-         * In 3.x we store things differently but let's try to keep the old shape for compatibility.
-         */
-        var syncMethodParam = {
-          activeTooltipIndex: action.payload.index == null ? undefined : Number(action.payload.index),
-          isTooltipActive: action.payload.active,
-          activeIndex: action.payload.index == null ? undefined : Number(action.payload.index),
-          activeLabel: action.payload.label,
-          activeDataKey: action.payload.dataKey,
-          activeCoordinate: action.payload.coordinate
-        };
-        // Call a callback function. If there is an application specific algorithm
-        var activeTooltipIndex = syncMethod(tooltipTicks, syncMethodParam);
-        activeTick = tooltipTicks[activeTooltipIndex];
-      } else if (syncMethod === 'value') {
-        // labels are always strings, tick.value might be a string or a number, depending on axis type
-        activeTick = tooltipTicks.find(tick => String(tick.value) === action.payload.label);
-      }
-      var {
-        coordinate
-      } = action.payload;
-      if (activeTick == null || action.payload.active === false || coordinate == null || viewBox == null) {
-        dispatch(setSyncInteraction({
-          active: false,
-          coordinate: undefined,
-          dataKey: undefined,
-          index: null,
-          label: undefined,
-          sourceViewBox: undefined,
-          graphicalItemId: undefined
-        }));
-        return;
-      }
-      var {
-        x,
-        y
-      } = coordinate;
-      var validateChartX = Math.min(x, viewBox.x + viewBox.width);
-      var validateChartY = Math.min(y, viewBox.y + viewBox.height);
-      var activeCoordinate = {
-        x: layout === 'horizontal' ? activeTick.coordinate : validateChartX,
-        y: layout === 'horizontal' ? validateChartY : activeTick.coordinate
-      };
-      var syncAction = setSyncInteraction({
-        active: action.payload.active,
-        coordinate: activeCoordinate,
-        dataKey: action.payload.dataKey,
-        index: String(activeTick.index),
-        label: action.payload.label,
-        sourceViewBox: action.payload.sourceViewBox,
-        graphicalItemId: action.payload.graphicalItemId
-      });
-      dispatch(syncAction);
-    };
-    eventCenter.on(TOOLTIP_SYNC_EVENT, listener);
-    return () => {
-      eventCenter.off(TOOLTIP_SYNC_EVENT, listener);
-    };
-  }, [className, dispatch, myEventEmitter, mySyncId, syncMethod, tooltipTicks, layout, viewBox]);
-}
-function useBrushSyncEventsListener() {
-  var mySyncId = useAppSelector(selectSyncId);
-  var myEventEmitter = useAppSelector(selectEventEmitter);
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    if (mySyncId == null) {
-      // This chart is not synchronised with any other chart so we don't need to listen for any events.
-      return noop;
-    }
-    var listener = (incomingSyncId, action, emitter) => {
-      if (myEventEmitter === emitter) {
-        // We don't want to dispatch actions that we sent ourselves.
-        return;
-      }
-      if (mySyncId === incomingSyncId) {
-        dispatch(setDataStartEndIndexes(action));
-      }
-    };
-    eventCenter.on(BRUSH_SYNC_EVENT, listener);
-    return () => {
-      eventCenter.off(BRUSH_SYNC_EVENT, listener);
-    };
-  }, [dispatch, myEventEmitter, mySyncId]);
-}
-
-/**
- * Will receive synchronisation events from other charts.
- *
- * Reads syncMethod from state and decides how to synchronise the tooltip based on that.
- *
- * @returns void
- */
-export function useSynchronisedEventsFromOtherCharts() {
-  var dispatch = useAppDispatch();
-  useEffect(() => {
-    dispatch(createEventEmitter());
-  }, [dispatch]);
-  useTooltipSyncEventsListener();
-  useBrushSyncEventsListener();
-}
-
-/**
- * Will send events to other charts.
- * If syncId is undefined, no events will be sent.
- *
- * This ignores the syncMethod, because that is set and computed on the receiving end.
- *
- * @param tooltipEventType from Tooltip
- * @param trigger from Tooltip
- * @param activeCoordinate from state
- * @param activeLabel from state
- * @param activeIndex from state
- * @param isTooltipActive from state
- * @returns void
- */
-export function useTooltipChartSynchronisation(tooltipEventType, trigger, activeCoordinate, activeLabel, activeIndex, isTooltipActive) {
-  var activeDataKey = useAppSelector(state => selectTooltipDataKey(state, tooltipEventType, trigger));
-  var eventEmitterSymbol = useAppSelector(selectEventEmitter);
-  var syncId = useAppSelector(selectSyncId);
-  var syncMethod = useAppSelector(selectSyncMethod);
-  var tooltipState = useAppSelector(selectSynchronisedTooltipState);
-  var isReceivingSynchronisation = tooltipState === null || tooltipState === void 0 ? void 0 : tooltipState.active;
-  var viewBox = useViewBox();
-  useEffect(() => {
-    if (isReceivingSynchronisation) {
-      /*
-       * This chart currently has active tooltip, synchronised from another chart.
-       * Let's not send any outgoing synchronisation events while that's happening
-       * to avoid infinite loops.
-       */
-      return;
-    }
-    if (syncId == null) {
-      /*
-       * syncId is not set, means that this chart is not synchronised with any other chart,
-       * means we don't need to send synchronisation events
-       */
-      return;
-    }
-    if (eventEmitterSymbol == null) {
-      /*
-       * When using Recharts internal hooks and selectors outside charts context,
-       * these properties will be undefined. Let's return silently instead of throwing an error.
-       */
-      return;
-    }
-    var syncAction = setSyncInteraction({
-      active: isTooltipActive,
-      coordinate: activeCoordinate,
-      dataKey: activeDataKey,
-      index: activeIndex,
-      label: typeof activeLabel === 'number' ? String(activeLabel) : activeLabel,
-      sourceViewBox: viewBox,
-      graphicalItemId: undefined
-    });
-    eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);
-  }, [isReceivingSynchronisation, activeCoordinate, activeDataKey, activeIndex, activeLabel, eventEmitterSymbol, syncId, syncMethod, isTooltipActive, viewBox]);
-}
-export function useBrushChartSynchronisation() {
-  var syncId = useAppSelector(selectSyncId);
-  var eventEmitterSymbol = useAppSelector(selectEventEmitter);
-  var brushStartIndex = useAppSelector(state => state.chartData.dataStartIndex);
-  var brushEndIndex = useAppSelector(state => state.chartData.dataEndIndex);
-  useEffect(() => {
-    if (syncId == null || brushStartIndex == null || brushEndIndex == null || eventEmitterSymbol == null) {
-      return;
-    }
-    var syncAction = {
-      startIndex: brushStartIndex,
-      endIndex: brushEndIndex
-    };
-    eventCenter.emit(BRUSH_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);
-  }, [brushEndIndex, brushStartIndex, eventEmitterSymbol, syncId]);
-}
Index: de_modules/recharts/es6/types.js
===================================================================
--- node_modules/recharts/es6/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/util/ActiveShapeUtils.js
===================================================================
--- node_modules/recharts/es6/util/ActiveShapeUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-var _excluded = ["option", "shapeType", "activeClassName"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import * as React from 'react';
-import { cloneElement, isValidElement } from 'react';
-import isPlainObject from 'es-toolkit/compat/isPlainObject';
-import { Rectangle } from '../shape/Rectangle';
-import { Trapezoid } from '../shape/Trapezoid';
-import { Sector } from '../shape/Sector';
-import { Layer } from '../container/Layer';
-import { Symbols } from '../shape/Symbols';
-import { Curve } from '../shape/Curve';
-
-/**
- * This is an abstraction for rendering a user defined prop for a customized shape in several forms.
- *
- * <Shape /> is the root and will handle taking in:
- *  - an object of svg properties
- *  - a boolean
- *  - a render prop(inline function that returns jsx)
- *  - a React element
- *
- * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component
- * to the value of props.shapeType that is passed to the root.
- *
- */
-
-function defaultPropTransformer(option, props) {
-  return _objectSpread(_objectSpread({}, props), option);
-}
-function isSymbolsProps(shapeType, _elementProps) {
-  return shapeType === 'symbols';
-}
-function ShapeSelector(_ref) {
-  var {
-    shapeType,
-    elementProps
-  } = _ref;
-  switch (shapeType) {
-    case 'rectangle':
-      return /*#__PURE__*/React.createElement(Rectangle, elementProps);
-    case 'trapezoid':
-      return /*#__PURE__*/React.createElement(Trapezoid, elementProps);
-    case 'sector':
-      return /*#__PURE__*/React.createElement(Sector, elementProps);
-    case 'symbols':
-      if (isSymbolsProps(shapeType, elementProps)) {
-        return /*#__PURE__*/React.createElement(Symbols, elementProps);
-      }
-      break;
-    case 'curve':
-      return /*#__PURE__*/React.createElement(Curve, elementProps);
-    default:
-      return null;
-  }
-}
-export function getPropsFromShapeOption(option) {
-  if (/*#__PURE__*/isValidElement(option)) {
-    return option.props;
-  }
-  return option;
-}
-export function Shape(_ref2) {
-  var {
-      option,
-      shapeType,
-      activeClassName = 'recharts-active-shape'
-    } = _ref2,
-    props = _objectWithoutProperties(_ref2, _excluded);
-  var shape;
-  if (/*#__PURE__*/isValidElement(option)) {
-    // @ts-expect-error we can't know the type of cloned element props
-    shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));
-  } else if (typeof option === 'function') {
-    shape = option(props, props.index);
-  } else if (isPlainObject(option) && typeof option !== 'boolean') {
-    var nextProps = defaultPropTransformer(option, props);
-    shape = /*#__PURE__*/React.createElement(ShapeSelector, {
-      shapeType: shapeType,
-      elementProps: nextProps
-    });
-  } else {
-    var elementProps = props;
-    shape = /*#__PURE__*/React.createElement(ShapeSelector, {
-      shapeType: shapeType,
-      elementProps: elementProps
-    });
-  }
-  if (props.isActive) {
-    return /*#__PURE__*/React.createElement(Layer, {
-      className: activeClassName
-    }, shape);
-  }
-  return shape;
-}
Index: de_modules/recharts/es6/util/BarUtils.js
===================================================================
--- node_modules/recharts/es6/util/BarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import invariant from 'tiny-invariant';
-import { Shape } from './ActiveShapeUtils';
-import { isNullish, isNumber } from './DataUtils';
-export function BarRectangle(props) {
-  return /*#__PURE__*/React.createElement(Shape, _extends({
-    shapeType: "rectangle",
-    activeClassName: "recharts-active-bar"
-  }, props));
-}
-/**
- * Safely gets minPointSize from the minPointSize prop if it is a function
- * @param minPointSize minPointSize as passed to the Bar component
- * @param defaultValue default minPointSize
- * @returns minPointSize
- */
-export var minPointSizeCallback = function minPointSizeCallback(minPointSize) {
-  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  return (value, index) => {
-    if (isNumber(minPointSize)) return minPointSize;
-    var isValueNumberOrNil = isNumber(value) || isNullish(value);
-    if (isValueNumberOrNil) {
-      return minPointSize(value, index);
-    }
-    !isValueNumberOrNil ? true ? invariant(false, "minPointSize callback function received a value with type of ".concat(typeof value, ". Currently only numbers or null/undefined are supported.")) : invariant(false) : void 0;
-    return defaultValue;
-  };
-};
Index: de_modules/recharts/es6/util/CartesianUtils.js
===================================================================
--- node_modules/recharts/es6/util/CartesianUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-export var rectWithPoints = (_ref, _ref2) => {
-  var {
-    x: x1,
-    y: y1
-  } = _ref;
-  var {
-    x: x2,
-    y: y2
-  } = _ref2;
-  return {
-    x: Math.min(x1, x2),
-    y: Math.min(y1, y2),
-    width: Math.abs(x2 - x1),
-    height: Math.abs(y2 - y1)
-  };
-};
-
-/**
- * Compute the x, y, width, and height of a box from two reference points.
- * @param  {Object} coords     x1, x2, y1, and y2
- * @return {Object} object
- */
-export var rectWithCoords = _ref3 => {
-  var {
-    x1,
-    y1,
-    x2,
-    y2
-  } = _ref3;
-  return rectWithPoints({
-    x: x1,
-    y: y1
-  }, {
-    x: x2,
-    y: y2
-  });
-};
-
-/** Normalizes the angle so that 0 <= angle < 180.
- * @param {number} angle Angle in degrees.
- * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */
-export function normalizeAngle(angle) {
-  return (angle % 180 + 180) % 180;
-}
-
-/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- * @param {Object} size Width and height of the text in a horizontal position.
- * @param {number} angle Angle in degrees in which the text is displayed.
- * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- */
-export var getAngledRectangleWidth = function getAngledRectangleWidth(_ref4) {
-  var {
-    width,
-    height
-  } = _ref4;
-  var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  // Ensure angle is >= 0 && < 180
-  var normalizedAngle = normalizeAngle(angle);
-  var angleRadians = normalizedAngle * Math.PI / 180;
-
-  /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled
-   * width. This threshold defines when each formula should kick in. */
-  var angleThreshold = Math.atan(height / width);
-  var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);
-  return Math.abs(angledWidth);
-};
Index: de_modules/recharts/es6/util/ChartUtils.js
===================================================================
--- node_modules/recharts/es6/util/ChartUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,521 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import sortBy from 'es-toolkit/compat/sortBy';
-import get from 'es-toolkit/compat/get';
-import { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';
-import { findEntryInArray, isNan, isNotNil, isNullish, isNumber, isNumOrStr, mathSign } from './DataUtils';
-import { getSliced } from './getSliced';
-import { isWellBehavedNumber } from './isWellBehavedNumber';
-export function getValueByDataKey(obj, dataKey, defaultValue) {
-  if (isNullish(obj) || isNullish(dataKey)) {
-    return defaultValue;
-  }
-  if (isNumOrStr(dataKey)) {
-    return get(obj, dataKey, defaultValue);
-  }
-  if (typeof dataKey === 'function') {
-    return dataKey(obj);
-  }
-  return defaultValue;
-}
-export var appendOffsetOfLegend = (offset, legendSettings, legendSize) => {
-  if (legendSettings && legendSize) {
-    var {
-      width: boxWidth,
-      height: boxHeight
-    } = legendSize;
-    var {
-      align,
-      verticalAlign,
-      layout
-    } = legendSettings;
-    if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {
-      return _objectSpread(_objectSpread({}, offset), {}, {
-        [align]: offset[align] + (boxWidth || 0)
-      });
-    }
-    if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {
-      return _objectSpread(_objectSpread({}, offset), {}, {
-        [verticalAlign]: offset[verticalAlign] + (boxHeight || 0)
-      });
-    }
-  }
-  return offset;
-};
-export var isCategoricalAxis = (layout, axisType) => layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';
-
-/**
- * Calculate the Coordinates of grid
- * @param  {Array} ticks           The ticks in axis
- * @param {Number} minValue        The minimum value of axis
- * @param {Number} maxValue        The maximum value of axis
- * @param {boolean} syncWithTicks  Synchronize grid lines with ticks or not
- * @return {Array}                 Coordinates
- */
-export var getCoordinatesOfGrid = (ticks, minValue, maxValue, syncWithTicks) => {
-  if (syncWithTicks) {
-    return ticks.map(entry => entry.coordinate);
-  }
-  var hasMin, hasMax;
-  var values = ticks.map(entry => {
-    if (entry.coordinate === minValue) {
-      hasMin = true;
-    }
-    if (entry.coordinate === maxValue) {
-      hasMax = true;
-    }
-    return entry.coordinate;
-  });
-  if (!hasMin) {
-    values.push(minValue);
-  }
-  if (!hasMax) {
-    values.push(maxValue);
-  }
-  return values;
-};
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export var getTicksOfAxis = (axis, isGrid, isAll) => {
-  if (!axis) {
-    return null;
-  }
-  var {
-    duplicateDomain,
-    type,
-    range,
-    scale,
-    realScaleType,
-    isCategorical,
-    categoricalDomain,
-    tickCount,
-    ticks,
-    niceTicks,
-    axisType
-  } = axis;
-  if (!scale) {
-    return null;
-  }
-  var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;
-  var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && range && range.length >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;
-
-  // The ticks set by user should only affect the ticks adjacent to axis line
-  if (isGrid && (ticks || niceTicks)) {
-    var result = (ticks || niceTicks || []).map((entry, index) => {
-      var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;
-      var scaled = scale.map(scaleContent);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        // If the scaleContent is not a number, the coordinate will be NaN.
-        // That could be the case for example with a PointScale and a string as domain.
-        coordinate: scaled + offset,
-        value: entry,
-        offset,
-        index
-      };
-    }).filter(isNotNil);
-    return result;
-  }
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-  if (scale.ticks && !isAll && tickCount != null) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!isWellBehavedNumber(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!isWellBehavedNumber(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as an index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(isNotNil);
-};
-
-/**
- * Both value and domain are tuples of two numbers
- * - but the type stays as array of numbers until we have better support in rest of the app
- * @param value input that will be truncated
- * @param domain boundaries
- * @returns tuple of two numbers
- */
-export var truncateByDomain = (value, domain) => {
-  if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {
-    return value;
-  }
-  var minValue = Math.min(domain[0], domain[1]);
-  var maxValue = Math.max(domain[0], domain[1]);
-  var result = [value[0], value[1]];
-  if (!isNumber(value[0]) || value[0] < minValue) {
-    result[0] = minValue;
-  }
-  if (!isNumber(value[1]) || value[1] > maxValue) {
-    result[1] = maxValue;
-  }
-  if (result[0] > maxValue) {
-    result[0] = maxValue;
-  }
-  if (result[1] < minValue) {
-    result[1] = minValue;
-  }
-  return result;
-};
-
-/**
- * Stacks all positive numbers above zero and all negative numbers below zero.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-export var offsetSign = series => {
-  var _series$;
-  var n = series.length;
-  if (n <= 0) {
-    return;
-  }
-  var m = (_series$ = series[0]) === null || _series$ === void 0 ? void 0 : _series$.length;
-  if (m == null || m <= 0) {
-    return;
-  }
-  for (var j = 0; j < m; ++j) {
-    var positive = 0;
-    var negative = 0;
-    for (var i = 0; i < n; ++i) {
-      var row = series[i];
-      var col = row === null || row === void 0 ? void 0 : row[j];
-      if (col == null) {
-        continue;
-      }
-      var series1 = col[1];
-      var series0 = col[0];
-      var value = isNan(series1) ? series0 : series1;
-      if (value >= 0) {
-        col[0] = positive;
-        positive += value;
-        col[1] = positive;
-      } else {
-        col[0] = negative;
-        negative += value;
-        col[1] = negative;
-      }
-    }
-  }
-};
-
-/**
- * Replaces all negative values with zero when stacking data.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-export var offsetPositive = series => {
-  var _series$2;
-  var n = series.length;
-  if (n <= 0) {
-    return;
-  }
-  var m = (_series$2 = series[0]) === null || _series$2 === void 0 ? void 0 : _series$2.length;
-  if (m == null || m <= 0) {
-    return;
-  }
-  for (var j = 0; j < m; ++j) {
-    var positive = 0;
-    for (var i = 0; i < n; ++i) {
-      var row = series[i];
-      var col = row === null || row === void 0 ? void 0 : row[j];
-      if (col == null) {
-        continue;
-      }
-      var value = isNan(col[1]) ? col[0] : col[1];
-      if (value >= 0) {
-        col[0] = positive;
-        positive += value;
-        col[1] = positive;
-      } else {
-        col[0] = 0;
-        col[1] = 0;
-      }
-    }
-  }
-};
-
-/**
- * Function type to compute offset for stacked data.
- *
- * d3-shape has something fishy going on with its types.
- * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.
- * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.
- * The same I can see in the source code itself:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- * That one unfortunately has no types but we can tell it passes three-dimensional array.
- *
- * Which leads me to believe that definitelytyped is wrong on this one.
- * There's open discussion on this topic without much attention:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- */
-
-var STACK_OFFSET_MAP = {
-  sign: offsetSign,
-  // @ts-expect-error definitelytyped types are incorrect
-  expand: stackOffsetExpand,
-  // @ts-expect-error definitelytyped types are incorrect
-  none: stackOffsetNone,
-  // @ts-expect-error definitelytyped types are incorrect
-  silhouette: stackOffsetSilhouette,
-  // @ts-expect-error definitelytyped types are incorrect
-  wiggle: stackOffsetWiggle,
-  positive: offsetPositive
-};
-export var getStackedData = (data, dataKeys, offsetType) => {
-  var _STACK_OFFSET_MAP$off;
-  var offsetAccessor = (_STACK_OFFSET_MAP$off = STACK_OFFSET_MAP[offsetType]) !== null && _STACK_OFFSET_MAP$off !== void 0 ? _STACK_OFFSET_MAP$off : stackOffsetNone;
-  var stack = shapeStack().keys(dataKeys).value((d, key) => Number(getValueByDataKey(d, key, 0))).order(stackOrderNone)
-  // @ts-expect-error definitelytyped types are incorrect
-  .offset(offsetAccessor);
-  var result = stack(data);
-
-  // Post-process ranged data: if value is an array of two numbers, use them directly without stacking
-  result.forEach((series, seriesIndex) => {
-    series.forEach((point, pointIndex) => {
-      var value = getValueByDataKey(data[pointIndex], dataKeys[seriesIndex], 0);
-      if (Array.isArray(value) && value.length === 2 && isNumber(value[0]) && isNumber(value[1])) {
-        // eslint-disable-next-line prefer-destructuring,no-param-reassign
-        point[0] = value[0];
-        // eslint-disable-next-line prefer-destructuring,no-param-reassign
-        point[1] = value[1];
-      }
-    });
-  });
-  return result;
-};
-
-/**
- * Externally, we accept both strings and numbers as stack IDs
- * @inline
- */
-
-/**
- * Stack IDs in the external props allow numbers; but internally we use it as an object key
- * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks
- * so let's just force a string.
- */
-
-export function getNormalizedStackId(publicStackId) {
-  return publicStackId == null ? undefined : String(publicStackId);
-}
-export function getCateCoordinateOfLine(_ref) {
-  var {
-    axis,
-    ticks,
-    bandSize,
-    entry,
-    index,
-    dataKey
-  } = _ref;
-  if (axis.type === 'category') {
-    // find coordinate of category axis by the value of category
-    // @ts-expect-error why does this use direct object access instead of getValueByDataKey?
-    if (!axis.allowDuplicatedCategory && axis.dataKey && !isNullish(entry[axis.dataKey])) {
-      // @ts-expect-error why does this use direct object access instead of getValueByDataKey?
-      var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);
-      if (matchedTick) {
-        return matchedTick.coordinate + bandSize / 2;
-      }
-    }
-    return ticks !== null && ticks !== void 0 && ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;
-  }
-  var value = getValueByDataKey(entry, !isNullish(dataKey) ? dataKey : axis.dataKey);
-  var scaled = axis.scale.map(value);
-  if (!isNumber(scaled)) {
-    return null;
-  }
-  return scaled;
-}
-export var getCateCoordinateOfBar = _ref2 => {
-  var {
-    axis,
-    ticks,
-    offset,
-    bandSize,
-    entry,
-    index
-  } = _ref2;
-  if (axis.type === 'category') {
-    return ticks[index] ? ticks[index].coordinate + offset : null;
-  }
-  // @ts-expect-error getValueByDataKey does not validate the output type
-  var value = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);
-  if (isNullish(value)) {
-    return null;
-  }
-  var scaled = axis.scale.map(value);
-  if (!isNumber(scaled)) {
-    return null;
-  }
-  return scaled - bandSize / 2 + offset;
-};
-export var getBaseValueOfBar = _ref3 => {
-  var {
-    numericAxis
-  } = _ref3;
-  var domain = numericAxis.scale.domain();
-  if (numericAxis.type === 'number') {
-    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript
-    var minValue = Math.min(domain[0], domain[1]);
-    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript
-    var maxValue = Math.max(domain[0], domain[1]);
-    if (minValue <= 0 && maxValue >= 0) {
-      return 0;
-    }
-    if (maxValue < 0) {
-      return maxValue;
-    }
-    return minValue;
-  }
-  return domain[0];
-};
-var getDomainOfSingle = data => {
-  var flat = data.flat(2).filter(isNumber);
-  return [Math.min(...flat), Math.max(...flat)];
-};
-var makeDomainFinite = domain => {
-  return [domain[0] === Infinity ? 0 : domain[0], domain[1] === -Infinity ? 0 : domain[1]];
-};
-export var getDomainOfStackGroups = (stackGroups, startIndex, endIndex) => {
-  if (stackGroups == null) {
-    return undefined;
-  }
-  return makeDomainFinite(Object.keys(stackGroups).reduce((result, stackId) => {
-    var group = stackGroups[stackId];
-    if (!group) {
-      return result;
-    }
-    var {
-      stackedData
-    } = group;
-    var domain = stackedData.reduce((res, entry) => {
-      var sliced = getSliced(entry, startIndex, endIndex);
-      var s = getDomainOfSingle(sliced);
-      if (!isWellBehavedNumber(s[0]) || !isWellBehavedNumber(s[1])) {
-        return res;
-      }
-      return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];
-    }, [Infinity, -Infinity]);
-    return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];
-  }, [Infinity, -Infinity]));
-};
-export var MIN_VALUE_REG = /^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
-export var MAX_VALUE_REG = /^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
-
-/**
- * Calculate the size between two category
- * @param  {Object} axis  The options of axis
- * @param  {Array}  ticks The ticks of axis
- * @param  {Boolean} isBar if items in axis are bars
- * @return {Number} Size
- */
-export var getBandSizeOfAxis = (axis, ticks, isBar) => {
-  if (axis && axis.scale && axis.scale.bandwidth) {
-    var bandWidth = axis.scale.bandwidth();
-    if (!isBar || bandWidth > 0) {
-      return bandWidth;
-    }
-  }
-  if (axis && ticks && ticks.length >= 2) {
-    var orderedTicks = sortBy(ticks, o => o.coordinate);
-    var bandSize = Infinity;
-    for (var i = 1, len = orderedTicks.length; i < len; i++) {
-      var cur = orderedTicks[i];
-      var prev = orderedTicks[i - 1];
-      bandSize = Math.min(((cur === null || cur === void 0 ? void 0 : cur.coordinate) || 0) - ((prev === null || prev === void 0 ? void 0 : prev.coordinate) || 0), bandSize);
-    }
-    return bandSize === Infinity ? 0 : bandSize;
-  }
-  return isBar ? undefined : 0;
-};
-export function getTooltipEntry(_ref4) {
-  var {
-    tooltipEntrySettings,
-    dataKey,
-    payload,
-    value,
-    name
-  } = _ref4;
-  return _objectSpread(_objectSpread({}, tooltipEntrySettings), {}, {
-    dataKey,
-    payload,
-    value,
-    name
-  });
-}
-export function getTooltipNameProp(nameFromItem, dataKey) {
-  if (nameFromItem) {
-    return String(nameFromItem);
-  }
-  if (typeof dataKey === 'string') {
-    return dataKey;
-  }
-  return undefined;
-}
-export var calculateCartesianTooltipPos = (coordinate, layout) => {
-  if (layout === 'horizontal') {
-    return coordinate.chartX;
-  }
-  if (layout === 'vertical') {
-    return coordinate.chartY;
-  }
-  return undefined;
-};
-export var calculatePolarTooltipPos = (rangeObj, layout) => {
-  if (layout === 'centric') {
-    return rangeObj.angle;
-  }
-  return rangeObj.radius;
-};
Index: de_modules/recharts/es6/util/Constants.js
===================================================================
--- node_modules/recharts/es6/util/Constants.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-export var COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];
-
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * The index is the position of the element in the data array.
- * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).
- */
-export var DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';
-
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * Unlike dataKey, or name, it is always unique.
- */
-export var DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';
-export var DEFAULT_Y_AXIS_WIDTH = 60;
Index: de_modules/recharts/es6/util/CssPrefixUtils.js
===================================================================
--- node_modules/recharts/es6/util/CssPrefixUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];
-export var generatePrefixStyle = (name, value) => {
-  if (!name) {
-    return undefined;
-  }
-  var camelName = name.replace(/(\w)/, v => v.toUpperCase());
-  var result = PREFIX_LIST.reduce((res, entry) => _objectSpread(_objectSpread({}, res), {}, {
-    [entry + camelName]: value
-  }), {});
-  result[name] = value;
-  return result;
-};
Index: de_modules/recharts/es6/util/DOMUtils.js
===================================================================
--- node_modules/recharts/es6/util/DOMUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,127 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { Global } from './Global';
-import { LRUCache } from './LRUCache';
-var defaultConfig = {
-  cacheSize: 2000,
-  enableCache: true
-};
-var currentConfig = _objectSpread({}, defaultConfig);
-var stringCache = new LRUCache(currentConfig.cacheSize);
-var SPAN_STYLE = {
-  position: 'absolute',
-  top: '-20000px',
-  left: 0,
-  padding: 0,
-  margin: 0,
-  border: 'none',
-  whiteSpace: 'pre'
-};
-var MEASUREMENT_SPAN_ID = 'recharts_measurement_span';
-function createCacheKey(text, style) {
-  // Simple string concatenation for better performance than JSON.stringify
-  var fontSize = style.fontSize || '';
-  var fontFamily = style.fontFamily || '';
-  var fontWeight = style.fontWeight || '';
-  var fontStyle = style.fontStyle || '';
-  var letterSpacing = style.letterSpacing || '';
-  var textTransform = style.textTransform || '';
-  return "".concat(text, "|").concat(fontSize, "|").concat(fontFamily, "|").concat(fontWeight, "|").concat(fontStyle, "|").concat(letterSpacing, "|").concat(textTransform);
-}
-
-/**
- * Measure text using DOM (accurate but slower)
- * @param text - The text to measure
- * @param style - CSS style properties to apply
- * @returns The size of the text
- */
-var measureTextWithDOM = (text, style) => {
-  try {
-    var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
-    if (!measurementSpan) {
-      measurementSpan = document.createElement('span');
-      measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
-      measurementSpan.setAttribute('aria-hidden', 'true');
-      document.body.appendChild(measurementSpan);
-    }
-
-    // Apply styles directly without unnecessary object creation
-    Object.assign(measurementSpan.style, SPAN_STYLE, style);
-    measurementSpan.textContent = "".concat(text);
-    var rect = measurementSpan.getBoundingClientRect();
-    return {
-      width: rect.width,
-      height: rect.height
-    };
-  } catch (_unused) {
-    return {
-      width: 0,
-      height: 0
-    };
-  }
-};
-export var getStringSize = function getStringSize(text) {
-  var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-  if (text === undefined || text === null || Global.isSsr) {
-    return {
-      width: 0,
-      height: 0
-    };
-  }
-
-  // If caching is disabled, measure directly
-  if (!currentConfig.enableCache) {
-    return measureTextWithDOM(text, style);
-  }
-  var cacheKey = createCacheKey(text, style);
-  var cachedResult = stringCache.get(cacheKey);
-  if (cachedResult) {
-    return cachedResult;
-  }
-
-  // Measure using DOM
-  var result = measureTextWithDOM(text, style);
-
-  // Store in LRU cache
-  stringCache.set(cacheKey, result);
-  return result;
-};
-
-/**
- * Configure text measurement behavior
- * @param config - Partial configuration to apply
- * @returns void
- */
-export var configureTextMeasurement = config => {
-  var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);
-  if (newConfig.cacheSize !== currentConfig.cacheSize) {
-    stringCache = new LRUCache(newConfig.cacheSize);
-  }
-  currentConfig = newConfig;
-};
-
-/**
- * Get current text measurement configuration
- * @returns Current configuration
- */
-export var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);
-
-/**
- * Clear the string size cache. Useful for testing or memory management.
- * @returns void
- */
-export var clearStringCache = () => {
-  stringCache.clear();
-};
-
-/**
- * Get cache statistics for debugging purposes.
- * @returns Cache statistics including size and max size
- */
-export var getStringCacheStats = () => ({
-  size: stringCache.size(),
-  maxSize: currentConfig.cacheSize
-});
Index: de_modules/recharts/es6/util/DataUtils.js
===================================================================
--- node_modules/recharts/es6/util/DataUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,159 +1,0 @@
-import get from 'es-toolkit/compat/get';
-import { round } from './round';
-export var mathSign = value => {
-  if (value === 0) {
-    return 0;
-  }
-  if (value > 0) {
-    return 1;
-  }
-  return -1;
-};
-export var isNan = value => {
-  // eslint-disable-next-line eqeqeq
-  return typeof value == 'number' && value != +value;
-};
-export var isPercent = value => typeof value === 'string' && value.indexOf('%') === value.length - 1;
-export var isNumber = value => (typeof value === 'number' || value instanceof Number) && !isNan(value);
-export var isNumOrStr = value => isNumber(value) || typeof value === 'string';
-var idCounter = 0;
-export var uniqueId = prefix => {
-  var id = ++idCounter;
-  return "".concat(prefix || '').concat(id);
-};
-
-/**
- * Calculates the numeric value represented by a percent string or number, based on a total value.
- *
- * - If `percent` is not a number or string, returns `defaultValue`.
- * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.
- * - If the result is NaN, returns `defaultValue`.
- * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.
- *
- * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').
- *                  If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.
- * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.
- * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.
- * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).
- * @returns The calculated value, or `defaultValue` for invalid input.
- */
-export var getPercentValue = function getPercentValue(percent, totalValue) {
-  var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
-  var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
-  if (!isNumber(percent) && typeof percent !== 'string') {
-    return defaultValue;
-  }
-  var value;
-  if (isPercent(percent)) {
-    if (totalValue == null) {
-      return defaultValue;
-    }
-    var index = percent.indexOf('%');
-    value = totalValue * parseFloat(percent.slice(0, index)) / 100;
-  } else {
-    value = +percent;
-  }
-  if (isNan(value)) {
-    value = defaultValue;
-  }
-  if (validate && totalValue != null && value > totalValue) {
-    value = totalValue;
-  }
-  return value;
-};
-export var hasDuplicate = ary => {
-  if (!Array.isArray(ary)) {
-    return false;
-  }
-  var len = ary.length;
-  var cache = {};
-  for (var i = 0; i < len; i++) {
-    if (!cache[String(ary[i])]) {
-      cache[String(ary[i])] = true;
-    } else {
-      return true;
-    }
-  }
-  return false;
-};
-export function interpolate(start, end, t) {
-  if (isNumber(start) && isNumber(end)) {
-    return round(start + t * (end - start));
-  }
-  return end;
-}
-export function findEntryInArray(ary, specifiedKey, specifiedValue) {
-  if (!ary || !ary.length) {
-    return undefined;
-  }
-  return ary.find(entry => entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue);
-}
-/**
- * The least square linear regression
- * @param {Array} data The array of points
- * @returns {Object} The domain of x, and the parameter of linear function
- */
-export var getLinearRegression = data => {
-  var len = data.length;
-  var xsum = 0;
-  var ysum = 0;
-  var xysum = 0;
-  var xxsum = 0;
-  var xmin = Infinity;
-  var xmax = -Infinity;
-  var xcurrent = 0;
-  var ycurrent = 0;
-  for (var i = 0; i < len; i++) {
-    var _data$i, _data$i2;
-    xcurrent = ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.cx) || 0;
-    ycurrent = ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.cy) || 0;
-    xsum += xcurrent;
-    ysum += ycurrent;
-    xysum += xcurrent * ycurrent;
-    xxsum += xcurrent * xcurrent;
-    xmin = Math.min(xmin, xcurrent);
-    xmax = Math.max(xmax, xcurrent);
-  }
-  var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;
-  return {
-    xmin,
-    xmax,
-    a,
-    b: (ysum - a * xsum) / len
-  };
-};
-/**
- * Checks if the value is null or undefined
- * @param value The value to check
- * @returns true if the value is null or undefined
- */
-export var isNullish = value => {
-  return value === null || typeof value === 'undefined';
-};
-
-/**
- * Uppercase the first letter of a string
- * @param {string} value The string to uppercase
- * @returns {string} The uppercased string
- */
-export var upperFirst = value => {
-  if (isNullish(value)) {
-    return value;
-  }
-  return "".concat(value.charAt(0).toUpperCase()).concat(value.slice(1));
-};
-
-/**
- * Checks if the value is not null nor undefined.
- * @param value The value to check
- * @returns true if the value is not null nor undefined
- */
-export function isNotNil(value) {
-  return value != null;
-}
-
-/**
- * No-operation function that does nothing.
- * Useful as a placeholder or default callback function.
- */
-export function noop() {}
Index: de_modules/recharts/es6/util/Events.js
===================================================================
--- node_modules/recharts/es6/util/Events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import EventEmitter from 'eventemitter3';
-var eventCenter = new EventEmitter();
-export { eventCenter };
-export var TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';
-export var BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';
Index: de_modules/recharts/es6/util/FunnelUtils.js
===================================================================
--- node_modules/recharts/es6/util/FunnelUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { Shape } from './ActiveShapeUtils';
-export function FunnelTrapezoid(props) {
-  return /*#__PURE__*/React.createElement(Shape, _extends({
-    shapeType: "trapezoid"
-  }, props));
-}
Index: de_modules/recharts/es6/util/Global.js
===================================================================
--- node_modules/recharts/es6/util/Global.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-var parseIsSsrByDefault = () => !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);
-export var Global = {
-  devToolsEnabled: true,
-  isSsr: parseIsSsrByDefault()
-};
Index: de_modules/recharts/es6/util/IfOverflow.js
===================================================================
--- node_modules/recharts/es6/util/IfOverflow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/util/LRUCache.js
===================================================================
--- node_modules/recharts/es6/util/LRUCache.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * Simple LRU (Least Recently Used) cache implementation
- */
-export class LRUCache {
-  constructor(maxSize) {
-    _defineProperty(this, "cache", new Map());
-    this.maxSize = maxSize;
-  }
-  get(key) {
-    var value = this.cache.get(key);
-    if (value !== undefined) {
-      this.cache.delete(key);
-      this.cache.set(key, value);
-    }
-    return value;
-  }
-  set(key, value) {
-    if (this.cache.has(key)) {
-      this.cache.delete(key);
-    } else if (this.cache.size >= this.maxSize) {
-      var firstKey = this.cache.keys().next().value;
-      if (firstKey != null) {
-        this.cache.delete(firstKey);
-      }
-    }
-    this.cache.set(key, value);
-  }
-  clear() {
-    this.cache.clear();
-  }
-  size() {
-    return this.cache.size;
-  }
-}
Index: de_modules/recharts/es6/util/LogUtils.js
===================================================================
--- node_modules/recharts/es6/util/LogUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/* eslint no-console: 0 */
-var isDev = true;
-export var warn = function warn(condition, format) {
-  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
-    args[_key - 2] = arguments[_key];
-  }
-  if (isDev && typeof console !== 'undefined' && console.warn) {
-    if (format === undefined) {
-      console.warn('LogUtils requires an error message argument');
-    }
-    if (!condition) {
-      if (format === undefined) {
-        console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
-      } else {
-        var argIndex = 0;
-        console.warn(format.replace(/%s/g, () => args[argIndex++]));
-      }
-    }
-  }
-};
Index: de_modules/recharts/es6/util/PolarUtils.js
===================================================================
--- node_modules/recharts/es6/util/PolarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-export var RADIAN = Math.PI / 180;
-export var degreeToRadian = angle => angle * Math.PI / 180;
-export var radianToDegree = angleInRadian => angleInRadian * 180 / Math.PI;
-export var polarToCartesian = (cx, cy, radius, angle) => ({
-  x: cx + Math.cos(-RADIAN * angle) * radius,
-  y: cy + Math.sin(-RADIAN * angle) * radius
-});
-export var getMaxRadius = function getMaxRadius(width, height) {
-  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
-    top: 0,
-    right: 0,
-    bottom: 0,
-    left: 0,
-    width: 0,
-    height: 0,
-    brushBottom: 0
-  };
-  return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;
-};
-var distanceBetweenPoints = (point, anotherPoint) => {
-  var {
-    x: x1,
-    y: y1
-  } = point;
-  var {
-    x: x2,
-    y: y2
-  } = anotherPoint;
-  return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);
-};
-var getAngleOfPoint = (_ref, _ref2) => {
-  var {
-    x,
-    y
-  } = _ref;
-  var {
-    cx,
-    cy
-  } = _ref2;
-  var radius = distanceBetweenPoints({
-    x,
-    y
-  }, {
-    x: cx,
-    y: cy
-  });
-  if (radius <= 0) {
-    return {
-      radius,
-      angle: 0
-    };
-  }
-  var cos = (x - cx) / radius;
-  var angleInRadian = Math.acos(cos);
-  if (y > cy) {
-    angleInRadian = 2 * Math.PI - angleInRadian;
-  }
-  return {
-    radius,
-    angle: radianToDegree(angleInRadian),
-    angleInRadian
-  };
-};
-var formatAngleOfSector = _ref3 => {
-  var {
-    startAngle,
-    endAngle
-  } = _ref3;
-  var startCnt = Math.floor(startAngle / 360);
-  var endCnt = Math.floor(endAngle / 360);
-  var min = Math.min(startCnt, endCnt);
-  return {
-    startAngle: startAngle - min * 360,
-    endAngle: endAngle - min * 360
-  };
-};
-var reverseFormatAngleOfSector = (angle, _ref4) => {
-  var {
-    startAngle,
-    endAngle
-  } = _ref4;
-  var startCnt = Math.floor(startAngle / 360);
-  var endCnt = Math.floor(endAngle / 360);
-  var min = Math.min(startCnt, endCnt);
-  return angle + min * 360;
-};
-export var inRangeOfSector = (_ref5, viewBox) => {
-  var {
-    chartX: x,
-    chartY: y
-  } = _ref5;
-  var {
-    radius,
-    angle
-  } = getAngleOfPoint({
-    x,
-    y
-  }, viewBox);
-  var {
-    innerRadius,
-    outerRadius
-  } = viewBox;
-  if (radius < innerRadius || radius > outerRadius) {
-    return null;
-  }
-  if (radius === 0) {
-    return null;
-  }
-  var {
-    startAngle,
-    endAngle
-  } = formatAngleOfSector(viewBox);
-  var formatAngle = angle;
-  var inRange;
-  if (startAngle <= endAngle) {
-    while (formatAngle > endAngle) {
-      formatAngle -= 360;
-    }
-    while (formatAngle < startAngle) {
-      formatAngle += 360;
-    }
-    inRange = formatAngle >= startAngle && formatAngle <= endAngle;
-  } else {
-    while (formatAngle > startAngle) {
-      formatAngle -= 360;
-    }
-    while (formatAngle < endAngle) {
-      formatAngle += 360;
-    }
-    inRange = formatAngle >= endAngle && formatAngle <= startAngle;
-  }
-  if (inRange) {
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      radius,
-      angle: reverseFormatAngleOfSector(formatAngle, viewBox)
-    });
-  }
-  return null;
-};
Index: de_modules/recharts/es6/util/RadialBarUtils.js
===================================================================
--- node_modules/recharts/es6/util/RadialBarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-import * as React from 'react';
-import { Shape } from './ActiveShapeUtils';
-export function parseCornerRadius(cornerRadius) {
-  if (typeof cornerRadius === 'string') {
-    return parseInt(cornerRadius, 10);
-  }
-  return cornerRadius;
-}
-export function RadialBarSector(props) {
-  return /*#__PURE__*/React.createElement(Shape, _extends({
-    shapeType: "sector"
-  }, props));
-}
Index: de_modules/recharts/es6/util/ReactUtils.js
===================================================================
--- node_modules/recharts/es6/util/ReactUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-import get from 'es-toolkit/compat/get';
-import { Children } from 'react';
-import { isFragment } from 'react-is';
-import { isNullish } from './DataUtils';
-export var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];
-
-/**
- * @deprecated instead find another approach that does not depend on displayName.
- * Get the display name of a component
- * @param  {Object} Comp Specified Component
- * @return {String}      Display name of Component
- */
-export var getDisplayName = Comp => {
-  if (typeof Comp === 'string') {
-    return Comp;
-  }
-  if (!Comp) {
-    return '';
-  }
-  return Comp.displayName || Comp.name || 'Component';
-};
-
-// `toArray` gets called multiple times during the render
-// so we can memoize last invocation (since reference to `children` is the same)
-var lastChildren = null;
-var lastResult = null;
-
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * @param children do not use
- * @return deprecated do not use
- */
-export var toArray = children => {
-  if (children === lastChildren && Array.isArray(lastResult)) {
-    return lastResult;
-  }
-  var result = [];
-  Children.forEach(children, child => {
-    if (isNullish(child)) return;
-    if (isFragment(child)) {
-      result = result.concat(toArray(child.props.children));
-    } else {
-      // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that
-      result.push(child);
-    }
-  });
-  lastResult = result;
-  lastChildren = children;
-  return result;
-};
-
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * Find and return all matched children by type.
- * `type` must be a React.ComponentType
- *
- * @param children do not use
- * @param type do not use
- * @return deprecated do not use
- */
-export function findAllByType(children, type) {
-  var result = [];
-  var types = [];
-  if (Array.isArray(type)) {
-    types = type.map(t => getDisplayName(t));
-  } else {
-    types = [getDisplayName(type)];
-  }
-  toArray(children).forEach(child => {
-    // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function
-    var childType = get(child, 'type.displayName') || get(child, 'type.name');
-    if (childType && types.indexOf(childType) !== -1) {
-      result.push(child);
-    }
-  });
-  return result;
-}
-export var isClipDot = dot => {
-  if (dot && typeof dot === 'object' && 'clipDot' in dot) {
-    return Boolean(dot.clipDot);
-  }
-  return true;
-};
Index: de_modules/recharts/es6/util/ReduceCSSCalc.js
===================================================================
--- node_modules/recharts/es6/util/ReduceCSSCalc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,145 +1,0 @@
-var _DecimalCSS;
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { isNan } from './DataUtils';
-var MULTIPLY_OR_DIVIDE_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
-var ADD_OR_SUBTRACT_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
-var CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;
-var NUM_SPLIT_REGEX = /(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/;
-var CONVERSION_RATES = {
-  cm: 96 / 2.54,
-  mm: 96 / 25.4,
-  pt: 96 / 72,
-  pc: 96 / 6,
-  in: 96,
-  Q: 96 / (2.54 * 40),
-  px: 1
-};
-var FIXED_CSS_LENGTH_UNITS = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];
-function isSupportedUnit(unit) {
-  return FIXED_CSS_LENGTH_UNITS.includes(unit);
-}
-var STR_NAN = 'NaN';
-function convertToPx(value, unit) {
-  return value * CONVERSION_RATES[unit];
-}
-class DecimalCSS {
-  static parse(str) {
-    var _NUM_SPLIT_REGEX$exec;
-    var [, numStr, unit] = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [];
-    if (numStr == null) {
-      return DecimalCSS.NaN;
-    }
-    return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');
-  }
-  constructor(num, unit) {
-    this.num = num;
-    this.unit = unit;
-    this.num = num;
-    this.unit = unit;
-    if (isNan(num)) {
-      this.unit = '';
-    }
-    if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {
-      this.num = NaN;
-      this.unit = '';
-    }
-    if (isSupportedUnit(unit)) {
-      this.num = convertToPx(num, unit);
-      this.unit = 'px';
-    }
-  }
-  add(other) {
-    if (this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num + other.num, this.unit);
-  }
-  subtract(other) {
-    if (this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num - other.num, this.unit);
-  }
-  multiply(other) {
-    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num * other.num, this.unit || other.unit);
-  }
-  divide(other) {
-    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num / other.num, this.unit || other.unit);
-  }
-  toString() {
-    return "".concat(this.num).concat(this.unit);
-  }
-  isNaN() {
-    return isNan(this.num);
-  }
-}
-_DecimalCSS = DecimalCSS;
-_defineProperty(DecimalCSS, "NaN", new _DecimalCSS(NaN, ''));
-function calculateArithmetic(expr) {
-  if (expr == null || expr.includes(STR_NAN)) {
-    return STR_NAN;
-  }
-  var newExpr = expr;
-  while (newExpr.includes('*') || newExpr.includes('/')) {
-    var _MULTIPLY_OR_DIVIDE_R;
-    var [, leftOperand, operator, rightOperand] = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [];
-    var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');
-    var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');
-    var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);
-    if (result.isNaN()) {
-      return STR_NAN;
-    }
-    newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());
-  }
-  while (newExpr.includes('+') || /.-\d+(?:\.\d+)?/.test(newExpr)) {
-    var _ADD_OR_SUBTRACT_REGE;
-    var [, _leftOperand, _operator, _rightOperand] = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [];
-    var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');
-    var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');
-    var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);
-    if (_result.isNaN()) {
-      return STR_NAN;
-    }
-    newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());
-  }
-  return newExpr;
-}
-var PARENTHESES_REGEX = /\(([^()]*)\)/;
-function calculateParentheses(expr) {
-  var newExpr = expr;
-  var match;
-  // eslint-disable-next-line no-cond-assign
-  while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {
-    var [, parentheticalExpression] = match;
-    newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));
-  }
-  return newExpr;
-}
-function evaluateExpression(expression) {
-  var newExpr = expression.replace(/\s+/g, '');
-  newExpr = calculateParentheses(newExpr);
-  newExpr = calculateArithmetic(newExpr);
-  return newExpr;
-}
-export function safeEvaluateExpression(expression) {
-  try {
-    return evaluateExpression(expression);
-  } catch (_unused) {
-    return STR_NAN;
-  }
-}
-export function reduceCSSCalc(expression) {
-  var result = safeEvaluateExpression(expression.slice(5, -1));
-  if (result === STR_NAN) {
-    return '';
-  }
-  return result;
-}
Index: de_modules/recharts/es6/util/ScatterUtils.js
===================================================================
--- node_modules/recharts/es6/util/ScatterUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-var _excluded = ["option", "isActive"];
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import * as React from 'react';
-import { Symbols } from '../shape/Symbols';
-import { Shape } from './ActiveShapeUtils';
-import { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from './Constants';
-export function ScatterSymbol(_ref) {
-  var {
-      option,
-      isActive
-    } = _ref,
-    props = _objectWithoutProperties(_ref, _excluded);
-  if (typeof option === 'string') {
-    return /*#__PURE__*/React.createElement(Shape, _extends({
-      option: /*#__PURE__*/React.createElement(Symbols, _extends({
-        type: option
-      }, props)),
-      isActive: isActive,
-      shapeType: "symbols"
-    }, props));
-  }
-  return /*#__PURE__*/React.createElement(Shape, _extends({
-    option: option,
-    isActive: isActive,
-    shapeType: "symbols"
-  }, props));
-}
Index: de_modules/recharts/es6/util/TickUtils.js
===================================================================
--- node_modules/recharts/es6/util/TickUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { getAngledRectangleWidth } from './CartesianUtils';
-import { getEveryNth } from './getEveryNth';
-export function getAngledTickWidth(contentSize, unitSize, angle) {
-  var size = {
-    width: contentSize.width + unitSize.width,
-    height: contentSize.height + unitSize.height
-  };
-  return getAngledRectangleWidth(size, angle);
-}
-export function getTickBoundaries(viewBox, sign, sizeKey) {
-  var isWidth = sizeKey === 'width';
-  var {
-    x,
-    y,
-    width,
-    height
-  } = viewBox;
-  if (sign === 1) {
-    return {
-      start: isWidth ? x : y,
-      end: isWidth ? x + width : y + height
-    };
-  }
-  return {
-    start: isWidth ? x + width : y + height,
-    end: isWidth ? x : y
-  };
-}
-export function isVisible(sign, tickPosition, getSize, start, end) {
-  /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating
-   * the tick's size. */
-  if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {
-    return false;
-  }
-  var size = getSize();
-  return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;
-}
-export function getNumberIntervalTicks(ticks, interval) {
-  return getEveryNth(ticks, interval + 1);
-}
Index: de_modules/recharts/es6/util/YAxisUtils.js
===================================================================
--- node_modules/recharts/es6/util/YAxisUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/**
- * Calculates the width of the Y-axis based on the tick labels and the axis label.
- * @param params - The parameters object.
- * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.
- * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.
- * @param [params.labelGapWithTick=5] - The gap between the label and the tick.
- * @param [params.tickSize=0] - The length of the tick line.
- * @param [params.tickMargin=0] - The margin between the tick line and the tick text.
- * @returns The calculated width of the Y-axis.
- */
-export var getCalculatedYAxisWidth = _ref => {
-  var {
-    ticks,
-    label,
-    labelGapWithTick = 5,
-    // Default gap between label and tick
-    tickSize = 0,
-    tickMargin = 0
-  } = _ref;
-  // find the max width of the tick labels
-  var maxTickWidth = 0;
-  if (ticks) {
-    Array.from(ticks).forEach(tickNode => {
-      if (tickNode) {
-        var bbox = tickNode.getBoundingClientRect();
-        if (bbox.width > maxTickWidth) {
-          maxTickWidth = bbox.width;
-        }
-      }
-    });
-
-    // calculate width of the axis label
-    var labelWidth = label ? label.getBoundingClientRect().width : 0;
-    var tickWidth = tickSize + tickMargin;
-
-    // calculate the updated width of the y-axis
-    var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);
-    return Math.round(updatedYAxisWidth);
-  }
-  return 0;
-};
Index: de_modules/recharts/es6/util/axisPropsAreEqual.js
===================================================================
--- node_modules/recharts/es6/util/axisPropsAreEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-var _excluded = ["domain", "range"],
-  _excluded2 = ["domain", "range"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-import { propsAreEqual } from './propsAreEqual';
-function shortArraysAreEqual(arr1, arr2) {
-  if (arr1 === arr2) {
-    return true;
-  }
-  if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {
-    return arr1[0] === arr2[0] && arr1[1] === arr2[1];
-  }
-  return false;
-}
-
-/**
- * Usually we would not compare array props deeply for performance consideration.
- * However, for axis props, domain is sometimes defined as a two-elements array, and range is always
- * a two-elements array. So we can do a shallow comparison for the rest props and a shallow
- * comparison for these two array props.
- * @param prevProps
- * @param nextProps
- */
-export function axisPropsAreEqual(prevProps, nextProps) {
-  if (prevProps === nextProps) {
-    return true;
-  }
-  var {
-      domain: prevDomain,
-      range: prevRange
-    } = prevProps,
-    prevRest = _objectWithoutProperties(prevProps, _excluded);
-  var {
-      domain: nextDomain,
-      range: nextRange
-    } = nextProps,
-    nextRest = _objectWithoutProperties(nextProps, _excluded2);
-  if (!shortArraysAreEqual(prevDomain, nextDomain)) {
-    return false;
-  }
-  if (!shortArraysAreEqual(prevRange, nextRange)) {
-    return false;
-  }
-  return propsAreEqual(prevRest, nextRest);
-}
Index: de_modules/recharts/es6/util/cursor/getCursorPoints.js
===================================================================
--- node_modules/recharts/es6/util/cursor/getCursorPoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-import { polarToCartesian } from '../PolarUtils';
-import { isPolarCoordinate } from '../types';
-import { getRadialCursorPoints } from './getRadialCursorPoints';
-export function getCursorPoints(layout, activeCoordinate, offset) {
-  if (layout === 'horizontal') {
-    return [{
-      x: activeCoordinate.x,
-      y: offset.top
-    }, {
-      x: activeCoordinate.x,
-      y: offset.top + offset.height
-    }];
-  }
-  if (layout === 'vertical') {
-    return [{
-      x: offset.left,
-      y: activeCoordinate.y
-    }, {
-      x: offset.left + offset.width,
-      y: activeCoordinate.y
-    }];
-  }
-  if (isPolarCoordinate(activeCoordinate)) {
-    if (layout === 'centric') {
-      var {
-        cx,
-        cy,
-        innerRadius,
-        outerRadius,
-        angle
-      } = activeCoordinate;
-      var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);
-      var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);
-      return [{
-        x: innerPoint.x,
-        y: innerPoint.y
-      }, {
-        x: outerPoint.x,
-        y: outerPoint.y
-      }];
-    }
-    return getRadialCursorPoints(activeCoordinate);
-  }
-  return undefined;
-}
Index: de_modules/recharts/es6/util/cursor/getCursorRectangle.js
===================================================================
--- node_modules/recharts/es6/util/cursor/getCursorRectangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {
-  var halfSize = tooltipAxisBandSize / 2;
-  return {
-    stroke: 'none',
-    fill: '#ccc',
-    x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,
-    y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,
-    width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,
-    height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize
-  };
-}
Index: de_modules/recharts/es6/util/cursor/getRadialCursorPoints.js
===================================================================
--- node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { polarToCartesian } from '../PolarUtils';
-/**
- * Only applicable for radial layouts
- * @param {Object} activeCoordinate ChartCoordinate
- * @returns {Object} RadialCursorPoints
- */
-export function getRadialCursorPoints(activeCoordinate) {
-  var {
-    cx,
-    cy,
-    radius,
-    startAngle,
-    endAngle
-  } = activeCoordinate;
-  var startPoint = polarToCartesian(cx, cy, radius, startAngle);
-  var endPoint = polarToCartesian(cx, cy, radius, endAngle);
-  return {
-    points: [startPoint, endPoint],
-    cx,
-    cy,
-    radius,
-    startAngle,
-    endAngle
-  };
-}
Index: de_modules/recharts/es6/util/excludeEventProps.js
===================================================================
--- node_modules/recharts/es6/util/excludeEventProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];
-export function isEventKey(key) {
-  if (typeof key !== 'string') {
-    return false;
-  }
-  var allowedEventKeys = EventKeys;
-  return allowedEventKeys.includes(key);
-}
Index: de_modules/recharts/es6/util/getActiveCoordinate.js
===================================================================
--- node_modules/recharts/es6/util/getActiveCoordinate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,152 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-import { polarToCartesian } from './PolarUtils';
-import { mathSign } from './DataUtils';
-export var getActiveCartesianCoordinate = (layout, tooltipTicks, activeIndex, pointer) => {
-  var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);
-  if (entry) {
-    if (layout === 'horizontal') {
-      return {
-        x: entry.coordinate,
-        y: pointer.chartY
-      };
-    }
-    if (layout === 'vertical') {
-      return {
-        x: pointer.chartX,
-        y: entry.coordinate
-      };
-    }
-  }
-  return {
-    x: 0,
-    y: 0
-  };
-};
-
-/**
- * Get the active coordinate in polar coordinate system.
- * Internally we only really use x and y, but this returned object is part of public API
- * (because it goes straight to the tooltip content) so we keep all the other properties
- * for backwards compatibility.
- *
- * @param layout - The polar layout type ('centric' or 'radial').
- * @param tooltipTicks - Array of tick items used for tooltips.
- * @param activeIndex - The index of the active tick.
- * @param rangeObj - The range object containing polar chart properties.
- * @returns The active coordinate object with polar properties.
- */
-export var getActivePolarCoordinate = (layout, tooltipTicks, activeIndex, rangeObj) => {
-  var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);
-  if (entry) {
-    if (layout === 'centric') {
-      var _angle = entry.coordinate;
-      var {
-        radius: _radius
-      } = rangeObj;
-      return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {
-        angle: _angle,
-        radius: _radius
-      });
-    }
-    var radius = entry.coordinate;
-    var {
-      angle
-    } = rangeObj;
-    return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {
-      angle,
-      radius
-    });
-  }
-  return {
-    angle: 0,
-    clockWise: false,
-    cx: 0,
-    cy: 0,
-    endAngle: 0,
-    innerRadius: 0,
-    outerRadius: 0,
-    radius: 0,
-    startAngle: 0,
-    x: 0,
-    y: 0
-  };
-};
-export function isInCartesianRange(pointer, offset) {
-  var {
-    chartX: x,
-    chartY: y
-  } = pointer;
-  return x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;
-}
-export var calculateActiveTickIndex = (coordinate, ticks, unsortedTicks, axisType, range) => {
-  var _ticks$length;
-  var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;
-
-  // if there are 1 or fewer ticks or if there is no coordinate then the active tick is at index 0
-  if (len <= 1 || coordinate == null) {
-    return 0;
-  }
-  if (axisType === 'angleAxis' && range != null && Math.abs(Math.abs(range[1] - range[0]) - 360) <= 1e-6) {
-    // ticks are distributed in a circle
-    for (var i = 0; i < len; i++) {
-      var _unsortedTicks, _unsortedTicks2, _unsortedTicks$i, _unsortedTicks$, _unsortedTicks3;
-      var before = i > 0 ? (_unsortedTicks = unsortedTicks[i - 1]) === null || _unsortedTicks === void 0 ? void 0 : _unsortedTicks.coordinate : (_unsortedTicks2 = unsortedTicks[len - 1]) === null || _unsortedTicks2 === void 0 ? void 0 : _unsortedTicks2.coordinate;
-      var cur = (_unsortedTicks$i = unsortedTicks[i]) === null || _unsortedTicks$i === void 0 ? void 0 : _unsortedTicks$i.coordinate;
-      var after = i >= len - 1 ? (_unsortedTicks$ = unsortedTicks[0]) === null || _unsortedTicks$ === void 0 ? void 0 : _unsortedTicks$.coordinate : (_unsortedTicks3 = unsortedTicks[i + 1]) === null || _unsortedTicks3 === void 0 ? void 0 : _unsortedTicks3.coordinate;
-      var sameDirectionCoord = void 0;
-      if (before == null || cur == null || after == null) {
-        continue;
-      }
-      if (mathSign(cur - before) !== mathSign(after - cur)) {
-        var diffInterval = [];
-        if (mathSign(after - cur) === mathSign(range[1] - range[0])) {
-          sameDirectionCoord = after;
-          var curInRange = cur + range[1] - range[0];
-          diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);
-          diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);
-        } else {
-          sameDirectionCoord = before;
-          var afterInRange = after + range[1] - range[0];
-          diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);
-          diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);
-        }
-        var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];
-        if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {
-          var _unsortedTicks$i2;
-          return (_unsortedTicks$i2 = unsortedTicks[i]) === null || _unsortedTicks$i2 === void 0 ? void 0 : _unsortedTicks$i2.index;
-        }
-      } else {
-        var minValue = Math.min(before, after);
-        var maxValue = Math.max(before, after);
-        if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {
-          var _unsortedTicks$i3;
-          return (_unsortedTicks$i3 = unsortedTicks[i]) === null || _unsortedTicks$i3 === void 0 ? void 0 : _unsortedTicks$i3.index;
-        }
-      }
-    }
-  } else if (ticks) {
-    // ticks are distributed in a single direction
-    for (var _i = 0; _i < len; _i++) {
-      var curr = ticks[_i];
-      if (curr == null) {
-        continue;
-      }
-      var next = ticks[_i + 1];
-      var prev = ticks[_i - 1];
-      if (_i === 0 && next != null && coordinate <= (curr.coordinate + next.coordinate) / 2) {
-        return curr.index;
-      }
-      if (_i === len - 1 && prev != null && coordinate > (curr.coordinate + prev.coordinate) / 2) {
-        return curr.index;
-      }
-      if (_i > 0 && _i < len - 1 && prev != null && next != null && coordinate > (curr.coordinate + prev.coordinate) / 2 && coordinate <= (curr.coordinate + next.coordinate) / 2) {
-        return curr.index;
-      }
-    }
-  }
-  return -1;
-};
Index: de_modules/recharts/es6/util/getAxisTypeBasedOnLayout.js
===================================================================
--- node_modules/recharts/es6/util/getAxisTypeBasedOnLayout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { isCategoricalAxis } from './ChartUtils';
-
-/**
- * This function evaluates the "auto" axis domain type based on the chart layout and axis type.
- * It outputs a definitive axis domain type that can be used for further processing.
- */
-export function getAxisTypeBasedOnLayout(layout, axisType, axisDomainType) {
-  if (axisDomainType !== 'auto') {
-    return axisDomainType;
-  }
-  if (layout == null) {
-    return undefined;
-  }
-  return isCategoricalAxis(layout, axisType) ? 'category' : 'number';
-}
Index: de_modules/recharts/es6/util/getChartPointer.js
===================================================================
--- node_modules/recharts/es6/util/getChartPointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/**
- * Computes the chart coordinates from the mouse event.
- *
- * The coordinates are relative to the top-left corner of the chart,
- * where the top-left corner of the chart is (0, 0).
- * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.
- *
- * The coordinates are rounded to the nearest integer and are including a CSS transform scale.
- * So a chart that's scaled will return the same coordinates as a chart that's not scaled.
- *
- * @param event The mouse event from React event handlers
- * @return chartPointer The chart coordinates relative to the top-left corner of the chart
- */
-export var getChartPointer = event => {
-  var rect = event.currentTarget.getBoundingClientRect();
-  var scaleX = rect.width / event.currentTarget.offsetWidth;
-  var scaleY = rect.height / event.currentTarget.offsetHeight;
-  return {
-    /*
-     * Here it's important to use:
-     * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.
-     * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.
-     * - rect.left and rect.top are used to get the position of the chart relative to the viewport.
-     * - offsetX and offsetY are not used because they are relative to the offset parent
-     *  which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM
-     *  and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.
-     * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.
-     */
-    chartX: Math.round((event.clientX - rect.left) / scaleX),
-    chartY: Math.round((event.clientY - rect.top) / scaleY)
-  };
-};
Index: de_modules/recharts/es6/util/getClassNameFromUnknown.js
===================================================================
--- node_modules/recharts/es6/util/getClassNameFromUnknown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export function getClassNameFromUnknown(u) {
-  if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {
-    return u.className;
-  }
-  return '';
-}
Index: de_modules/recharts/es6/util/getEveryNth.js
===================================================================
--- node_modules/recharts/es6/util/getEveryNth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * Given an array and a number N, return a new array which contains every nTh
- * element of the input array. For n below 1, an empty array is returned.
- * For n equal to 1, the input array is returned as is.
- * For n greater than the length of the array, an array containing the first element
- * and every nTh element after that (if any) is returned.
- *
- * @param array An input array.
- * @param n A number specifying which elements to take.
- * @returns The result array of the same type as the input array.
- */
-export function getEveryNth(array, n) {
-  if (n < 1) {
-    return [];
-  }
-  if (n === 1) {
-    return array;
-  }
-  var result = [];
-  for (var i = 0; i < array.length; i += n) {
-    var item = array[i];
-    if (item !== undefined) {
-      result.push(item);
-    }
-  }
-  return result;
-}
Index: de_modules/recharts/es6/util/getRadiusAndStrokeWidthFromDot.js
===================================================================
--- node_modules/recharts/es6/util/getRadiusAndStrokeWidthFromDot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { svgPropertiesNoEventsFromUnknown } from './svgPropertiesNoEvents';
-export function getRadiusAndStrokeWidthFromDot(dot) {
-  var props = svgPropertiesNoEventsFromUnknown(dot);
-  var defaultR = 3;
-  var defaultStrokeWidth = 2;
-  if (props != null) {
-    var {
-      r,
-      strokeWidth
-    } = props;
-    var realR = Number(r);
-    var realStrokeWidth = Number(strokeWidth);
-    if (Number.isNaN(realR) || realR < 0) {
-      realR = defaultR;
-    }
-    if (Number.isNaN(realStrokeWidth) || realStrokeWidth < 0) {
-      realStrokeWidth = defaultStrokeWidth;
-    }
-    return {
-      r: realR,
-      strokeWidth: realStrokeWidth
-    };
-  }
-  return {
-    r: defaultR,
-    strokeWidth: defaultStrokeWidth
-  };
-}
Index: de_modules/recharts/es6/util/getSliced.js
===================================================================
--- node_modules/recharts/es6/util/getSliced.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export function getSliced(arr, startIndex, endIndex) {
-  if (!Array.isArray(arr)) {
-    return arr;
-  }
-  if (arr && startIndex + endIndex !== 0) {
-    return arr.slice(startIndex, endIndex + 1);
-  }
-  return arr;
-}
Index: de_modules/recharts/es6/util/isDomainSpecifiedByUser.js
===================================================================
--- node_modules/recharts/es6/util/isDomainSpecifiedByUser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-import { MAX_VALUE_REG, MIN_VALUE_REG } from './ChartUtils';
-import { isNumber } from './DataUtils';
-import { isWellBehavedNumber } from './isWellBehavedNumber';
-export function isWellFormedNumberDomain(v) {
-  if (Array.isArray(v) && v.length === 2) {
-    var [min, max] = v;
-    if (isWellBehavedNumber(min) && isWellBehavedNumber(max)) {
-      return true;
-    }
-  }
-  return false;
-}
-export function extendDomain(providedDomain, boundaryDomain, allowDataOverflow) {
-  if (allowDataOverflow) {
-    // If the data are allowed to overflow - we're fine with whatever user provided
-    return providedDomain;
-  }
-  /*
-   * If the data are not allowed to overflow - we need to extend the domain.
-   * Means that effectively the user is allowed to make the domain larger
-   * but not smaller.
-   */
-  return [Math.min(providedDomain[0], boundaryDomain[0]), Math.max(providedDomain[1], boundaryDomain[1])];
-}
-
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- *
- * This function does not accept data as an argument.
- * This is to enable a performance optimization - if the domain is there,
- * and we know what it is without traversing all the data,
- * then we don't have to traverse all the data!
- *
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param allowDataOverflow boolean, provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-export function numericalDomainSpecifiedWithoutRequiringData(userDomain, allowDataOverflow) {
-  if (!allowDataOverflow) {
-    // Cannot compute data overflow if the data is not provided
-    return undefined;
-  }
-  if (typeof userDomain === 'function') {
-    // The user function expects the data to be provided as an argument
-    return undefined;
-  }
-  if (Array.isArray(userDomain) && userDomain.length === 2) {
-    var [providedMin, providedMax] = userDomain;
-    var finalMin, finalMax;
-    if (isWellBehavedNumber(providedMin)) {
-      finalMin = providedMin;
-    } else if (typeof providedMin === 'function') {
-      // The user function expects the data to be provided as an argument
-      return undefined;
-    }
-    if (isWellBehavedNumber(providedMax)) {
-      finalMax = providedMax;
-    } else if (typeof providedMax === 'function') {
-      // The user function expects the data to be provided as an argument
-      return undefined;
-    }
-    var candidate = [finalMin, finalMax];
-    if (isWellFormedNumberDomain(candidate)) {
-      return candidate;
-    }
-  }
-  return undefined;
-}
-
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- * to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * You are probably thinking, why does domain need tick count?
- * Well it adjusts the domain based on where the "nice ticks" land, and nice ticks depend on the tick count.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization
- * @param allowDataOverflow provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-export function parseNumericalUserDomain(userDomain, dataDomain, allowDataOverflow) {
-  if (!allowDataOverflow && dataDomain == null) {
-    // Cannot compute data overflow if the data is not provided
-    return undefined;
-  }
-  if (typeof userDomain === 'function' && dataDomain != null) {
-    try {
-      var result = userDomain(dataDomain, allowDataOverflow);
-      if (isWellFormedNumberDomain(result)) {
-        return extendDomain(result, dataDomain, allowDataOverflow);
-      }
-    } catch (_unused) {
-      /* ignore the exception and compute domain from data later */
-    }
-  }
-  if (Array.isArray(userDomain) && userDomain.length === 2) {
-    var [providedMin, providedMax] = userDomain;
-    var finalMin, finalMax;
-    if (providedMin === 'auto') {
-      if (dataDomain != null) {
-        finalMin = Math.min(...dataDomain);
-      }
-    } else if (isNumber(providedMin)) {
-      finalMin = providedMin;
-    } else if (typeof providedMin === 'function') {
-      try {
-        if (dataDomain != null) {
-          finalMin = providedMin(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0]);
-        }
-      } catch (_unused2) {
-        /* ignore the exception and compute domain from data later */
-      }
-    } else if (typeof providedMin === 'string' && MIN_VALUE_REG.test(providedMin)) {
-      var match = MIN_VALUE_REG.exec(providedMin);
-      if (match == null || match[1] == null || dataDomain == null) {
-        finalMin = undefined;
-      } else {
-        var value = +match[1];
-        finalMin = dataDomain[0] - value;
-      }
-    } else {
-      finalMin = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0];
-    }
-    if (providedMax === 'auto') {
-      if (dataDomain != null) {
-        finalMax = Math.max(...dataDomain);
-      }
-    } else if (isNumber(providedMax)) {
-      finalMax = providedMax;
-    } else if (typeof providedMax === 'function') {
-      try {
-        if (dataDomain != null) {
-          finalMax = providedMax(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1]);
-        }
-      } catch (_unused3) {
-        /* ignore the exception and compute domain from data later */
-      }
-    } else if (typeof providedMax === 'string' && MAX_VALUE_REG.test(providedMax)) {
-      var _match = MAX_VALUE_REG.exec(providedMax);
-      if (_match == null || _match[1] == null || dataDomain == null) {
-        finalMax = undefined;
-      } else {
-        var _value = +_match[1];
-        finalMax = dataDomain[1] + _value;
-      }
-    } else {
-      finalMax = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1];
-    }
-    var candidate = [finalMin, finalMax];
-    if (isWellFormedNumberDomain(candidate)) {
-      if (dataDomain == null) {
-        return candidate;
-      }
-      return extendDomain(candidate, dataDomain, allowDataOverflow);
-    }
-  }
-  return undefined;
-}
Index: de_modules/recharts/es6/util/isWellBehavedNumber.js
===================================================================
--- node_modules/recharts/es6/util/isWellBehavedNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export function isWellBehavedNumber(n) {
-  return Number.isFinite(n);
-}
-export function isPositiveNumber(n) {
-  return typeof n === 'number' && n > 0 && Number.isFinite(n);
-}
Index: de_modules/recharts/es6/util/payload/getUniqPayload.js
===================================================================
--- node_modules/recharts/es6/util/payload/getUniqPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import uniqBy from 'es-toolkit/compat/uniqBy';
-
-/**
- * This is configuration option that decides how to filter for unique values only:
- *
- * - `false` means "no filter"
- * - `true` means "use recharts default filter"
- * - function means "use return of this function as the default key"
- */
-
-export function getUniqPayload(payload, option, defaultUniqBy) {
-  if (option === true) {
-    return uniqBy(payload, defaultUniqBy);
-  }
-  if (typeof option === 'function') {
-    return uniqBy(payload, option);
-  }
-  return payload;
-}
Index: de_modules/recharts/es6/util/propsAreEqual.js
===================================================================
--- node_modules/recharts/es6/util/propsAreEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-import { shallowEqual } from 'react-redux';
-var propsToShallowCompare = new Set(['axisLine', 'tickLine', 'activeBar', 'activeDot', 'activeLabel', 'activeShape', 'allowEscapeViewBox', 'background', 'cursor', 'dot', 'label', 'line', 'margin', 'padding', 'position', 'shape', 'style', 'tick', 'wrapperStyle',
-// radius can be an array of 4 numbers, easy to compare shallowly
-'radius']);
-
-/**
- * When comparing two values, returns true if they are the same value or
- * are both NaN.
- *
- * If we used just a simple triple equals, we would get false negatives for two NaNs
- * which could cause extra re-renders so let's have this instead.
- *
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality
- *
- * @param x first value to compare
- * @param y second value to compare
- * return true if the same, false if different
- */
-function sameValueZero(x, y) {
-  if (x == null && y == null) {
-    /*
-     * treat null and undefined as equal. Internally in Recharts we make no difference between these two
-     * so there is no need to re-render.
-     */
-    return true;
-  }
-  if (typeof x === 'number' && typeof y === 'number') {
-    // x and y are equal (this is true for -0 and 0) or they are both NaN
-    // eslint-disable-next-line no-self-compare
-    return x === y || x !== x && y !== y;
-  }
-  return x === y;
-}
-
-/**
- * So usually React would compare only the first level of props using Object.is.
- * However, in our case many props are objects or arrays, and our own docs recommend to do that!
- * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.
- *
- * Because charts can and do receive large props (typically the data array),
- * we only limit this to a subset of known props that are likely to be objects/arrays.
- *
- * @param prevProps
- * @param nextProps
- */
-export function propsAreEqual(prevProps, nextProps) {
-  var allKeys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);
-  for (var key of allKeys) {
-    /*
-     * If a key is on a special allowlist, go one level deeper
-     * and do a shallow comparison of the values.
-     */
-    if (propsToShallowCompare.has(key)) {
-      if (prevProps[key] == null && nextProps[key] == null) {
-        /*
-         * treat null and undefined as equal. Internally in Recharts we make no difference between these two
-         * so there is no need to re-render.
-         */
-        continue;
-      }
-      if (!shallowEqual(prevProps[key], nextProps[key])) {
-        return false;
-      }
-      /*
-       * Otherwise do a simple same-value comparison (with NaN support).
-       */
-    } else if (!sameValueZero(prevProps[key], nextProps[key])) {
-      return false;
-    }
-  }
-  return true;
-}
Index: de_modules/recharts/es6/util/resolveDefaultProps.js
===================================================================
--- node_modules/recharts/es6/util/resolveDefaultProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * This function mimics the behavior of the `defaultProps` static property in React.
- * Functional components do not have a defaultProps property, so this function is useful to resolve default props.
- *
- * The common recommendation is to use ES6 destructuring with default values in the function signature,
- * but you need to be careful there and make sure you destructure all the individual properties
- * and not the whole object. See the test file for example.
- *
- * And because destructuring all properties one by one is a faff, and it's easy to miss one property,
- * this function exists.
- *
- * @param realProps - the props object passed to the component by the user
- * @param defaultProps - the default props object defined in the component by Recharts
- * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.
- */
-export function resolveDefaultProps(realProps, defaultProps) {
-  /*
-   * To avoid mutating the original `realProps` object passed to the function, create a shallow copy of it.
-   * `resolvedProps` will be modified directly with the defaults.
-   */
-  var resolvedProps = _objectSpread({}, realProps);
-  /*
-   * Since the function guarantees `D extends Partial<T>`, this assignment is safe.
-   * It allows TypeScript to work with the well-defined `Partial<T>` type inside the loop,
-   * making subsequent type inference (especially for `dp[key]`) much more straightforward for the compiler.
-   * This is a key step to improve type safety *without* value assertions later.
-   */
-  var dp = defaultProps;
-  /*
-   * `Object.keys` doesn't preserve strong key types - it always returns Array<string>.
-   * However, due to the `D extends Partial<T>` constraint,
-   * we know these keys *must* also be valid keys of `T`.
-   * This assertion informs TypeScript of this relationship, avoiding type errors when using `key` to index `acc` (type T).
-   *
-   * Type assertions are not sound but in this case it's necessary
-   * as `Object.keys` does not do what we want it to do.
-   */
-  var keys = Object.keys(defaultProps);
-  var withDefaults = keys.reduce((acc, key) => {
-    if (acc[key] === undefined && dp[key] !== undefined) {
-      acc[key] = dp[key];
-    }
-    return acc;
-  }, resolvedProps);
-  /*
-   * And again type assertions are not safe but here we have done the runtime work
-   * so let's bypass the lack of static type safety and tell the compiler what happened.
-   */
-  return withDefaults;
-}
-
-/**
- * Helper type to extract the keys of T that are required.
- * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},
- * it means K is required, so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-
-/**
- * Helper type to extract the keys of T that are optional.
- * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},
- * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-
-/**
- * Helper type to ensure keys of D exist in T.
- * For each key K in D, if K is also a key of T, keep the type D[K].
- * If K is NOT a key of T, map it to type `never`.
- * An object cannot have a property of type `never`, effectively disallowing extra keys.
- */
-
-/**
- * This type will take a source type `Props` and a default type `Defaults` and will return a new type
- * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.
- * Properties that are required in `Props` and optional in `Defaults` will remain required.
- * Properties that are optional in both `Props` and `Defaults` will remain optional.
- *
- * This is useful for creating a type that represents the resolved props of a component with default props.
- */
Index: de_modules/recharts/es6/util/round.js
===================================================================
--- node_modules/recharts/es6/util/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-// if you go lower than 3, wild wild things happen during rendering
-var defaultRoundPrecision = 4;
-export function round(num) {
-  var roundPrecision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoundPrecision;
-  var factor = 10 ** roundPrecision;
-  var rounded = Math.round(num * factor) / factor;
-  if (Object.is(rounded, -0)) {
-    return 0;
-  }
-  return rounded;
-}
-
-/**
- * This function will accept a string template literal and for each
- * variable placeholder, it will round the value to avoid long float numbers in
- * the SVG path which might cause rendering issues in some browsers.
- */
-export function roundTemplateLiteral(strings) {
-  for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-    values[_key - 1] = arguments[_key];
-  }
-  return strings.reduce((result, string, i) => {
-    var value = values[i - 1];
-    if (typeof value === 'string') {
-      return result + value + string;
-    }
-    if (value !== undefined) {
-      return result + round(value) + string;
-    }
-    return result + string;
-  }, '');
-}
Index: de_modules/recharts/es6/util/scale/CartesianScaleHelper.js
===================================================================
--- node_modules/recharts/es6/util/scale/CartesianScaleHelper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/**
- * Groups X and Y scale functions together and provides helper methods.
- */
-export class CartesianScaleHelperImpl {
-  constructor(_ref) {
-    var {
-      x,
-      y
-    } = _ref;
-    this.xAxisScale = x;
-    this.yAxisScale = y;
-  }
-  map(value, _ref2) {
-    var _this$xAxisScale$map, _this$yAxisScale$map;
-    var {
-      position
-    } = _ref2;
-    return {
-      x: (_this$xAxisScale$map = this.xAxisScale.map(value.x, {
-        position
-      })) !== null && _this$xAxisScale$map !== void 0 ? _this$xAxisScale$map : 0,
-      y: (_this$yAxisScale$map = this.yAxisScale.map(value.y, {
-        position
-      })) !== null && _this$yAxisScale$map !== void 0 ? _this$yAxisScale$map : 0
-    };
-  }
-  mapWithFallback(value, _ref3) {
-    var _this$xAxisScale$map2, _this$yAxisScale$map2;
-    var {
-      position,
-      fallback
-    } = _ref3;
-    var fallbackY, fallbackX;
-    if (fallback === 'rangeMin') {
-      fallbackY = this.yAxisScale.rangeMin();
-    } else if (fallback === 'rangeMax') {
-      fallbackY = this.yAxisScale.rangeMax();
-    } else {
-      fallbackY = 0;
-    }
-    if (fallback === 'rangeMin') {
-      fallbackX = this.xAxisScale.rangeMin();
-    } else if (fallback === 'rangeMax') {
-      fallbackX = this.xAxisScale.rangeMax();
-    } else {
-      fallbackX = 0;
-    }
-    return {
-      x: (_this$xAxisScale$map2 = this.xAxisScale.map(value.x, {
-        position
-      })) !== null && _this$xAxisScale$map2 !== void 0 ? _this$xAxisScale$map2 : fallbackX,
-      y: (_this$yAxisScale$map2 = this.yAxisScale.map(value.y, {
-        position
-      })) !== null && _this$yAxisScale$map2 !== void 0 ? _this$yAxisScale$map2 : fallbackY
-    };
-  }
-  isInRange(_ref4) {
-    var {
-      x,
-      y
-    } = _ref4;
-    var xInRange = x == null || this.xAxisScale.isInRange(x);
-    var yInRange = y == null || this.yAxisScale.isInRange(y);
-    return xInRange && yInRange;
-  }
-}
Index: de_modules/recharts/es6/util/scale/CustomScaleDefinition.js
===================================================================
--- node_modules/recharts/es6/util/scale/CustomScaleDefinition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/util/scale/RechartsScale.js
===================================================================
--- node_modules/recharts/es6/util/scale/RechartsScale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import * as d3Scales from 'victory-vendor/d3-scale';
-import { upperFirst } from '../DataUtils';
-
-/**
- * This is internal representation of scale used in Recharts.
- * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.
- * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.
- * This is important for React integration - if the scale changes, we want to trigger re-renders.
- * Mutating the scale in place would not trigger re-renders, leading to stale UI.
- */
-
-/**
- * Position within a band for banded scales.
- * In scales that are not banded, this parameter is ignored.
- *
- * @inline
- */
-
-function getD3ScaleFromType(realScaleType) {
-  if (realScaleType in d3Scales) {
-    // @ts-expect-error we should do better type verification here
-    return d3Scales[realScaleType]();
-  }
-  var name = "scale".concat(upperFirst(realScaleType));
-  if (name in d3Scales) {
-    // @ts-expect-error we should do better type verification here
-    return d3Scales[name]();
-  }
-  return undefined;
-}
-export function d3ScaleToRechartsScale(d3Scale) {
-  var ticksFn = d3Scale.ticks;
-  var bandwidthFn = d3Scale.bandwidth;
-  var d3Range = d3Scale.range();
-  var range = [Math.min(...d3Range), Math.max(...d3Range)];
-  return {
-    domain: () => d3Scale.domain(),
-    range: function (_range) {
-      function range() {
-        return _range.apply(this, arguments);
-      }
-      range.toString = function () {
-        return _range.toString();
-      };
-      return range;
-    }(() => range),
-    rangeMin: () => range[0],
-    rangeMax: () => range[1],
-    isInRange(value) {
-      var first = range[0];
-      var last = range[1];
-      return first <= last ? value >= first && value <= last : value >= last && value <= first;
-    },
-    bandwidth: bandwidthFn ? () => bandwidthFn.call(d3Scale) : undefined,
-    ticks: ticksFn ? count => ticksFn.call(d3Scale, count) : undefined,
-    map: (input, options) => {
-      var baseValue = d3Scale(input);
-      if (baseValue == null) {
-        return undefined;
-      }
-      if (d3Scale.bandwidth && options !== null && options !== void 0 && options.position) {
-        var bandWidth = d3Scale.bandwidth();
-        switch (options.position) {
-          case 'middle':
-            baseValue += bandWidth / 2;
-            break;
-          case 'end':
-            baseValue += bandWidth;
-            break;
-          default:
-            // 'start' requires no adjustment
-            break;
-        }
-      }
-      return baseValue;
-    }
-  };
-}
-
-/**
- * Converts external scale definition into internal RechartsScale definition.
- * @param scale custom function scale - if you have the string, use `combineRealScaleType` first
- * @param axisDomain
- * @param axisRange
- */
-
-export function rechartsScaleFactory(scale, axisDomain, axisRange) {
-  if (typeof scale === 'function') {
-    return d3ScaleToRechartsScale(scale.copy().domain(axisDomain).range(axisRange));
-  }
-  if (scale == null) {
-    return undefined;
-  }
-  var d3ScaleFunction = getD3ScaleFromType(scale);
-  if (d3ScaleFunction == null) {
-    return undefined;
-  }
-  d3ScaleFunction.domain(axisDomain).range(axisRange);
-  return d3ScaleToRechartsScale(d3ScaleFunction);
-}
Index: de_modules/recharts/es6/util/scale/getNiceTickValues.js
===================================================================
--- node_modules/recharts/es6/util/scale/getNiceTickValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,208 +1,0 @@
-/**
- * @fileOverview calculate tick values of scale
- * @author xile611, arcthur
- * @date 2015-09-17
- */
-import Decimal from 'decimal.js-light';
-import { getDigitCount, rangeStep } from './util/arithmetic';
-/**
- * Calculate a interval of a minimum value and a maximum value
- *
- * @param  {Number} min       The minimum value
- * @param  {Number} max       The maximum value
- * @return {Array} An interval
- */
-export var getValidInterval = _ref => {
-  var [min, max] = _ref;
-  var [validMin, validMax] = [min, max];
-
-  // exchange
-  if (min > max) {
-    [validMin, validMax] = [max, min];
-  }
-  return [validMin, validMax];
-};
-
-/**
- * Calculate the step which is easy to understand between ticks, like 10, 20, 25
- *
- * @param  roughStep        The rough step calculated by dividing the difference by the tickCount
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step which is easy to understand between two ticks
- */
-export var getFormatStep = (roughStep, allowDecimals, correctionFactor) => {
-  if (roughStep.lte(0)) {
-    return new Decimal(0);
-  }
-  var digitCount = getDigitCount(roughStep.toNumber());
-  // The ratio between the rough step and the smallest number which has a bigger
-  // order of magnitudes than the rough step
-  var digitCountValue = new Decimal(10).pow(digitCount);
-  var stepRatio = roughStep.div(digitCountValue);
-  // When an integer and a float multiplied, the accuracy of result may be wrong
-  var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;
-  var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);
-  var formatStep = amendStepRatio.mul(digitCountValue);
-  return allowDecimals ? new Decimal(formatStep.toNumber()) : new Decimal(Math.ceil(formatStep.toNumber()));
-};
-
-/**
- * calculate the ticks when the minimum value equals to the maximum value
- *
- * @param  value         The minimum value which is also the maximum value
- * @param  tickCount     The count of ticks
- * @param  allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export var getTickOfSingleValue = (value, tickCount, allowDecimals) => {
-  var step = new Decimal(1);
-  // calculate the middle value of ticks
-  var middle = new Decimal(value);
-  if (!middle.isint() && allowDecimals) {
-    var absVal = Math.abs(value);
-    if (absVal < 1) {
-      // The step should be a float number when the difference is smaller than 1
-      step = new Decimal(10).pow(getDigitCount(value) - 1);
-      middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);
-    } else if (absVal > 1) {
-      // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1
-      middle = new Decimal(Math.floor(value));
-    }
-  } else if (value === 0) {
-    middle = new Decimal(Math.floor((tickCount - 1) / 2));
-  } else if (!allowDecimals) {
-    middle = new Decimal(Math.floor(value));
-  }
-  var middleIndex = Math.floor((tickCount - 1) / 2);
-  var ticks = [];
-  for (var i = 0; i < tickCount; i++) {
-    ticks.push(middle.add(new Decimal(i - middleIndex).mul(step)).toNumber());
-  }
-  return ticks;
-};
-
-/**
- * Calculate the step
- *
- * @param  min              The minimum value of an interval
- * @param  max              The maximum value of an interval
- * @param  tickCount        The count of ticks
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step, minimum value of ticks, maximum value of ticks
- */
-var _calculateStep = function calculateStep(min, max, tickCount, allowDecimals) {
-  var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
-  // dirty hack (for recharts' test)
-  if (!Number.isFinite((max - min) / (tickCount - 1))) {
-    return {
-      step: new Decimal(0),
-      tickMin: new Decimal(0),
-      tickMax: new Decimal(0)
-    };
-  }
-
-  // The step which is easy to understand between two ticks
-  var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);
-
-  // A medial value of ticks
-  var middle;
-
-  // When 0 is inside the interval, 0 should be a tick
-  if (min <= 0 && max >= 0) {
-    middle = new Decimal(0);
-  } else {
-    // calculate the middle value
-    middle = new Decimal(min).add(max).div(2);
-    // minus modulo value
-    middle = middle.sub(new Decimal(middle).mod(step));
-  }
-  var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());
-  var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());
-  var scaleCount = belowCount + upCount + 1;
-  if (scaleCount > tickCount) {
-    // When more ticks need to cover the interval, step should be bigger.
-    return _calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);
-  }
-  if (scaleCount < tickCount) {
-    // When less ticks can cover the interval, we should add some additional ticks
-    upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;
-    belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);
-  }
-  return {
-    step,
-    tickMin: middle.sub(new Decimal(belowCount).mul(step)),
-    tickMax: middle.add(new Decimal(upCount).mul(step))
-  };
-};
-
-/**
- * Calculate the ticks of an interval. Ticks can appear outside the interval
- * if it makes them more rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export { _calculateStep as calculateStep };
-export var getNiceTickValues = function getNiceTickValues(_ref2) {
-  var [min, max] = _ref2;
-  var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;
-  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
-  // More than two ticks should be return
-  var count = Math.max(tickCount, 2);
-  var [cormin, cormax] = getValidInterval([min, max]);
-  if (cormin === -Infinity || cormax === Infinity) {
-    var _values = cormax === Infinity ? [cormin, ...Array(tickCount - 1).fill(Infinity)] : [...Array(tickCount - 1).fill(-Infinity), cormax];
-    return min > max ? _values.reverse() : _values;
-  }
-  if (cormin === cormax) {
-    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
-  }
-
-  // Get the step between two ticks
-  var {
-    step,
-    tickMin,
-    tickMax
-  } = _calculateStep(cormin, cormax, count, allowDecimals, 0);
-  var values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);
-  return min > max ? values.reverse() : values;
-};
-
-/**
- * Calculate the ticks of an interval.
- * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks. This function may return less than tickCount ticks if the interval is too small.
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export var getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref3, tickCount) {
-  var [min, max] = _ref3;
-  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
-  // More than two ticks should be return
-  var [cormin, cormax] = getValidInterval([min, max]);
-  if (cormin === -Infinity || cormax === Infinity) {
-    return [min, max];
-  }
-  if (cormin === cormax) {
-    return [cormin];
-  }
-  var count = Math.max(tickCount, 2);
-  var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
-  var values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];
-  if (allowDecimals === false) {
-    /*
-     * allowDecimals is false means that we want to have integer ticks.
-     * The step is guaranteed to be an integer in the code above which is great start
-     * but when the first step is not an integer, it will start stepping from a decimal value anyway.
-     * So we need to round all the values to integers after the fact.
-     */
-    values = values.map(value => Math.round(value));
-  }
-  return min > max ? values.reverse() : values;
-};
Index: de_modules/recharts/es6/util/scale/index.js
===================================================================
--- node_modules/recharts/es6/util/scale/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { getNiceTickValues, getTickValuesFixedDomain } from './getNiceTickValues';
Index: de_modules/recharts/es6/util/scale/util/arithmetic.js
===================================================================
--- node_modules/recharts/es6/util/scale/util/arithmetic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/**
- * @fileOverview Some common arithmetic methods
- * @author xile611
- * @date 2015-09-17
- */
-import Decimal from 'decimal.js-light';
-
-/**
- * Get the digit count of a number.
- * If the absolute value is in the interval [0.1, 1), the result is 0.
- * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.
- * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.
- *
- * @param  {Number} value The number
- * @return {Integer}      Digit count
- */
-function getDigitCount(value) {
-  var result;
-  if (value === 0) {
-    result = 1;
-  } else {
-    result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;
-  }
-  return result;
-}
-
-/**
- * Get the data in the interval [start, end) with a fixed step.
- * Also handles JS calculation precision issues.
- *
- * @param  {Decimal} start Start point
- * @param  {Decimal} end   End point, not included
- * @param  {Decimal} step  Step size
- * @return {Array}         Array of numbers
- */
-function rangeStep(start, end, step) {
-  var num = new Decimal(start);
-  var i = 0;
-  var result = [];
-
-  // magic number to prevent infinite loop
-  while (num.lt(end) && i < 100000) {
-    result.push(num.toNumber());
-    num = num.add(step);
-    i++;
-  }
-  return result;
-}
-export { rangeStep, getDigitCount };
Index: de_modules/recharts/es6/util/stacks/getStackSeriesIdentifier.js
===================================================================
--- node_modules/recharts/es6/util/stacks/getStackSeriesIdentifier.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-/**
- * Returns identifier for stack series which is one individual graphical item in the stack.
- * @param graphicalItem - The graphical item representing the series in the stack.
- * @return The identifier for the series in the stack
- */
-export function getStackSeriesIdentifier(graphicalItem) {
-  return graphicalItem === null || graphicalItem === void 0 ? void 0 : graphicalItem.id;
-}
Index: de_modules/recharts/es6/util/stacks/stackTypes.js
===================================================================
--- node_modules/recharts/es6/util/stacks/stackTypes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export {};
Index: de_modules/recharts/es6/util/svgPropertiesAndEvents.js
===================================================================
--- node_modules/recharts/es6/util/svgPropertiesAndEvents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { isValidElement } from 'react';
-import { isEventKey } from './excludeEventProps';
-import { isDataAttribute, isSvgElementPropKey } from './svgPropertiesNoEvents';
-/**
- * Filters an object to only include SVG properties, data attributes, and event handlers.
- * @param obj - The object to filter.
- * @returns A new object containing only valid SVG properties, data attributes, and event handlers.
- */
-export function svgPropertiesAndEvents(obj) {
-  var result = {};
-  // for ... in loop is 10x faster than Object.entries + filter + Object.fromEntries in Chrome
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      if (isSvgElementPropKey(key) || isDataAttribute(key) || isEventKey(key)) {
-        result[key] = obj[key];
-      }
-    }
-  }
-  return result;
-}
-
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-export function svgPropertiesAndEventsFromUnknown(input) {
-  if (input == null) {
-    return null;
-  }
-  if (/*#__PURE__*/isValidElement(input)) {
-    // @ts-expect-error we can't type this better because input can be any React element
-    return svgPropertiesAndEvents(input.props);
-  }
-  if (typeof input === 'object' && !Array.isArray(input)) {
-    return svgPropertiesAndEvents(input);
-  }
-  return null;
-}
Index: de_modules/recharts/es6/util/svgPropertiesNoEvents.js
===================================================================
--- node_modules/recharts/es6/util/svgPropertiesNoEvents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-import { isValidElement } from 'react';
-var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',
-/*
- * removed 'type' SVGElementPropKey because we do not currently use any SVG elements
- * that can use it, and it conflicts with the recharts prop 'type'
- * https://github.com/recharts/recharts/pull/3327
- * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type
- */
-// 'type',
-'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];
-var SVGElementPropKeySet = new Set(SVGElementPropKeys);
-export function isSvgElementPropKey(key) {
-  if (typeof key !== 'string') {
-    return false;
-  }
-  return SVGElementPropKeySet.has(key);
-}
-/**
- * Checks if the property is a data attribute.
- * @param key The property key.
- * @returns True if the key starts with 'data-', false otherwise.
- */
-export function isDataAttribute(key) {
-  return typeof key === 'string' && key.startsWith('data-');
-}
-
-/**
- * Filters an object to only include SVG properties. Removes all event handlers too.
- * @param obj - The object to filter
- * @returns A new object containing only valid SVG properties, excluding event handlers.
- */
-export function svgPropertiesNoEvents(obj) {
-  if (typeof obj !== 'object' || obj === null) {
-    return {};
-  }
-  var result = {};
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      if (isSvgElementPropKey(key) || isDataAttribute(key)) {
-        result[key] = obj[key];
-      }
-    }
-  }
-  return result;
-}
-
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-export function svgPropertiesNoEventsFromUnknown(input) {
-  if (input == null) {
-    return null;
-  }
-  if (/*#__PURE__*/isValidElement(input) && typeof input.props === 'object' && input.props !== null) {
-    var p = input.props;
-    return svgPropertiesNoEvents(p);
-  }
-  if (typeof input === 'object' && !Array.isArray(input)) {
-    return svgPropertiesNoEvents(input);
-  }
-  return null;
-}
Index: de_modules/recharts/es6/util/tooltip/translate.js
===================================================================
--- node_modules/recharts/es6/util/tooltip/translate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-import { clsx } from 'clsx';
-import { isNumber } from '../DataUtils';
-var CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';
-var TOOLTIP_HIDDEN = {
-  visibility: 'hidden'
-};
-export function getTooltipCSSClassName(_ref) {
-  var {
-    coordinate,
-    translateX,
-    translateY
-  } = _ref;
-  return clsx(CSS_CLASS_PREFIX, {
-    ["".concat(CSS_CLASS_PREFIX, "-right")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x,
-    ["".concat(CSS_CLASS_PREFIX, "-left")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x,
-    ["".concat(CSS_CLASS_PREFIX, "-bottom")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y,
-    ["".concat(CSS_CLASS_PREFIX, "-top")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y
-  });
-}
-export function getTooltipTranslateXY(_ref2) {
-  var {
-    allowEscapeViewBox,
-    coordinate,
-    key,
-    offset,
-    position,
-    reverseDirection,
-    tooltipDimension,
-    viewBox,
-    viewBoxDimension
-  } = _ref2;
-  if (position && isNumber(position[key])) {
-    return position[key];
-  }
-  var negative = coordinate[key] - tooltipDimension - (offset > 0 ? offset : 0);
-  var positive = coordinate[key] + offset;
-  if (allowEscapeViewBox[key]) {
-    return reverseDirection[key] ? negative : positive;
-  }
-  var viewBoxKey = viewBox[key];
-  if (viewBoxKey == null) {
-    return 0;
-  }
-  if (reverseDirection[key]) {
-    var _tooltipBoundary = negative;
-    var _viewBoxBoundary = viewBoxKey;
-    if (_tooltipBoundary < _viewBoxBoundary) {
-      return Math.max(positive, viewBoxKey);
-    }
-    return Math.max(negative, viewBoxKey);
-  }
-  if (viewBoxDimension == null) {
-    return 0;
-  }
-  var tooltipBoundary = positive + tooltipDimension;
-  var viewBoxBoundary = viewBoxKey + viewBoxDimension;
-  if (tooltipBoundary > viewBoxBoundary) {
-    return Math.max(negative, viewBoxKey);
-  }
-  return Math.max(positive, viewBoxKey);
-}
-export function getTransformStyle(_ref3) {
-  var {
-    translateX,
-    translateY,
-    useTranslate3d
-  } = _ref3;
-  return {
-    transform: useTranslate3d ? "translate3d(".concat(translateX, "px, ").concat(translateY, "px, 0)") : "translate(".concat(translateX, "px, ").concat(translateY, "px)")
-  };
-}
-export function getTooltipTranslate(_ref4) {
-  var {
-    allowEscapeViewBox,
-    coordinate,
-    offsetTop,
-    offsetLeft,
-    position,
-    reverseDirection,
-    tooltipBox,
-    useTranslate3d,
-    viewBox
-  } = _ref4;
-  var cssProperties, translateX, translateY;
-  if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {
-    translateX = getTooltipTranslateXY({
-      allowEscapeViewBox,
-      coordinate,
-      key: 'x',
-      offset: offsetLeft,
-      position,
-      reverseDirection,
-      tooltipDimension: tooltipBox.width,
-      viewBox,
-      viewBoxDimension: viewBox.width
-    });
-    translateY = getTooltipTranslateXY({
-      allowEscapeViewBox,
-      coordinate,
-      key: 'y',
-      offset: offsetTop,
-      position,
-      reverseDirection,
-      tooltipDimension: tooltipBox.height,
-      viewBox,
-      viewBoxDimension: viewBox.height
-    });
-    cssProperties = getTransformStyle({
-      translateX,
-      translateY,
-      useTranslate3d
-    });
-  } else {
-    cssProperties = TOOLTIP_HIDDEN;
-  }
-  return {
-    cssProperties,
-    cssClasses: getTooltipCSSClassName({
-      translateX,
-      translateY,
-      coordinate
-    })
-  };
-}
Index: de_modules/recharts/es6/util/types.js
===================================================================
--- node_modules/recharts/es6/util/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,247 +1,0 @@
-import { isValidElement } from 'react';
-import { isEventKey } from './excludeEventProps';
-
-/**
- * Determines how values are stacked:
- *
- * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.
- * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.
- * - `wiggle` and `silhouette` tries to keep the chart centered.
- * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.
- * - `positive` ignores all negative values, and then behaves like \`none\`.
- *
- * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}
- * (note that the `diverging` offset in d3 is named `sign` in recharts)
- *
- * @inline
- */
-
-/**
- * @deprecated use either `CartesianLayout` or `PolarLayout` instead.
- * Mixing both charts families leads to ambiguity in the type system.
- * These two layouts share very few properties, so it is best to keep them separate.
- */
-
-/**
- * The type of axis.
- *
- * `category`: Treats data as distinct values.
- * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
- *
- * `number`: Treats data as continuous range.
- * Values that are numerically closer are placed closer together on the axis.
- *
- * `auto`: the type is inferred based on the chart layout.
- *
- * This is external type - users will provide this type in props.
- * Internally we will evaluate it to either 'category' or 'number' based on the layout,
- * before sending it to the store.
- *
- * @inline
- */
-
-/**
- * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',
- * based on the chart layout and axis kind. Then they can start using this type.
- */
-
-/**
- * Extracts values from data objects.
- *
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.
- * Instead, use either `Coordinate` or `PolarCoordinate`.
- */
-
-export var isPolarCoordinate = c => {
-  return 'radius' in c && 'startAngle' in c && 'endAngle' in c;
-};
-
-/**
- * String shortcuts for scale types.
- * In case none of these does what you want you can also provide your own scale function
- * @see {@link CustomScaleDefinition}
- */
-
-//
-// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.
-//
-
-/**
- * The type of easing function to use for animations
- *
- * @inline
- */
-
-/** Specifies the duration of animation, the unit of this option is ms. */
-
-/**
- * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.
- * We use it internally but let's not expose it to the outside world.
- * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.
- */
-
-/**
- * The domain of axis.
- * This is the definition
- *
- * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.
- * Categorical domain is defined as array of all possible values.
- *
- * Can be specified in many ways:
- * - array of numbers
- * - with special strings like 'dataMin' and 'dataMax'
- * - with special string math like 'dataMin - 100'
- * - with keyword 'auto'
- * - or a function
- * - array of functions
- * - or a combination of the above
- */
-
-/**
- * NumberDomain is an evaluated {@link AxisDomain}.
- * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.
- * This is after all the keywords and functions were evaluated and what is left is [min, max].
- *
- * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.
- *
- * There are also `category` axes that have different things than numbers in their domain.
- */
-
-/**
- * Props shared in all renderable axes - meaning the ones that are drawn on the chart,
- * can have ticks, axis line, etc.
- */
-
-/** Defines how ticks are placed and whether / how tick collisions are handled.
- * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.
- * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.
- * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.
- * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.
- * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.
- */
-
-/**
- * Ticks can be any type when the axis is the type of category.
- *
- * Ticks must be numbers when the axis is the type of number.
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-export var adaptEventHandlers = (props, newHandler) => {
-  if (!props || typeof props === 'function' || typeof props === 'boolean') {
-    return null;
-  }
-  var inputProps = props;
-  if (/*#__PURE__*/isValidElement(props)) {
-    inputProps = props.props;
-  }
-  if (typeof inputProps !== 'object' && typeof inputProps !== 'function') {
-    return null;
-  }
-  var out = {};
-  Object.keys(inputProps).forEach(key => {
-    if (isEventKey(key)) {
-      out[key] = newHandler || (e => inputProps[key](inputProps, e));
-    }
-  });
-  return out;
-};
-var getEventHandlerOfChild = (originalHandler, data, index) => e => {
-  originalHandler(data, index, e);
-  return null;
-};
-export var adaptEventsOfChild = (props, data, index) => {
-  if (props === null || typeof props !== 'object' && typeof props !== 'function') {
-    return null;
-  }
-  var out = null;
-  Object.keys(props).forEach(key => {
-    var item = props[key];
-    if (isEventKey(key) && typeof item === 'function') {
-      if (!out) out = {};
-      out[key] = getEventHandlerOfChild(item, data, index);
-    }
-  });
-  return out;
-};
-
-/**
- * 'axis' means that all graphical items belonging to this axis tick will be highlighted,
- * and all will be present in the tooltip.
- * Tooltip with 'axis' will display when hovering on the chart background.
- *
- * 'item' means only the one graphical item being hovered will show in the tooltip.
- * Tooltip with 'item' will display when hovering over individual graphical items.
- *
- * This is calculated internally;
- * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.
- *
- * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,
- * and charts will then see what is allowed and what is not.
- */
-
-/**
- * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component
- */
-
-/**
- * This is the type of `activeDot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-
-/**
- * Inside the dot event handlers we provide extra information about the dot point
- * that the Dot component itself does not need but users might find useful.
- */
-
-/**
- * This is the type of `dot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-
-/**
- * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.
- *
- * This is meant to represent the React.MouseEvent
- * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
- */
-
-/**
- * Coordinates relative to the top-left corner of the chart.
- * Also include scale which means that a chart that's scaled will return the same coordinates as a chart that's not scaled.
- */
-
-/**
- * Props shared with all charts.
- */
-
-export var isNonEmptyArray = arr => {
-  return Array.isArray(arr) && arr.length > 0;
-};
Index: de_modules/recharts/es6/util/useAnimationId.js
===================================================================
--- node_modules/recharts/es6/util/useAnimationId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { useRef } from 'react';
-import { uniqueId } from './DataUtils';
-
-/**
- * This hook returns a unique animation id for the object input.
- * If input changes (as in, reference equality is different), the animation id will change.
- * If input does not change, the animation id will not change.
- *
- * This is useful for animations. The Animate component
- * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.
- * Also, we don't always want to re-animate on every render;
- * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).
- *
- * @param input The object to check for changes. Uses reference equality (=== operator)
- * @param prefix Optional prefix to use for the animation id
- * @returns A unique animation id
- */
-export function useAnimationId(input) {
-  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'animation-';
-  var animationId = useRef(uniqueId(prefix));
-  var prevProps = useRef(input);
-  if (prevProps.current !== input) {
-    animationId.current = uniqueId(prefix);
-    prevProps.current = input;
-  }
-  return animationId.current;
-}
Index: de_modules/recharts/es6/util/useElementOffset.js
===================================================================
--- node_modules/recharts/es6/util/useElementOffset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import { useCallback, useState } from 'react';
-var EPS = 1;
-
-/**
- * TODO this documentation does not reflect what this hook is doing, update it.
- * Stores the `offsetHeight`, `offsetLeft`, `offsetTop`, and `offsetWidth` of a DOM element.
- */
-
-/**
- * Use this to listen to element layout changes.
- *
- * Very useful for reading actual sizes of DOM elements relative to the viewport.
- *
- * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.
- * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`
- */
-export function useElementOffset() {
-  var extraDependencies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var [lastBoundingBox, setLastBoundingBox] = useState({
-    height: 0,
-    left: 0,
-    top: 0,
-    width: 0
-  });
-  var updateBoundingBox = useCallback(node => {
-    if (node != null) {
-      var rect = node.getBoundingClientRect();
-      var box = {
-        height: rect.height,
-        left: rect.left,
-        top: rect.top,
-        width: rect.width
-      };
-      if (Math.abs(box.height - lastBoundingBox.height) > EPS || Math.abs(box.left - lastBoundingBox.left) > EPS || Math.abs(box.top - lastBoundingBox.top) > EPS || Math.abs(box.width - lastBoundingBox.width) > EPS) {
-        setLastBoundingBox({
-          height: box.height,
-          left: box.left,
-          top: box.top,
-          width: box.width
-        });
-      }
-    }
-  },
-  // eslint-disable-next-line react-hooks/exhaustive-deps
-  [lastBoundingBox.width, lastBoundingBox.height, lastBoundingBox.top, lastBoundingBox.left, ...extraDependencies]);
-  return [lastBoundingBox, updateBoundingBox];
-}
Index: de_modules/recharts/es6/util/useId.js
===================================================================
--- node_modules/recharts/es6/util/useId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-var _ref;
-import * as React from 'react';
-import { uniqueId } from './DataUtils';
-
-/**
- * Fallback for React.useId() for versions prior to React 18.
- * Generates a unique ID using a simple counter and a prefix.
- *
- * @returns A unique ID that remains consistent across renders.
- */
-export var useIdFallback = () => {
-  var [id] = React.useState(() => uniqueId('uid-'));
-  return id;
-};
-
-/*
- * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.
- * See https://github.com/webpack/webpack/issues/14814
- */
-export var useId = (_ref = React['useId'.toString()]) !== null && _ref !== void 0 ? _ref : useIdFallback;
Index: de_modules/recharts/es6/util/useReportScale.js
===================================================================
--- node_modules/recharts/es6/util/useReportScale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { useEffect, useState } from 'react';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectContainerScale } from '../state/selectors/containerSelectors';
-import { setScale } from '../state/layoutSlice';
-import { isWellBehavedNumber } from './isWellBehavedNumber';
-export function useReportScale() {
-  var dispatch = useAppDispatch();
-  var [ref, setRef] = useState(null);
-  var scale = useAppSelector(selectContainerScale);
-  useEffect(() => {
-    if (ref == null) {
-      return;
-    }
-    var rect = ref.getBoundingClientRect();
-    var newScale = rect.width / ref.offsetWidth;
-    if (isWellBehavedNumber(newScale) && newScale !== scale) {
-      dispatch(setScale(newScale));
-    }
-  }, [ref, dispatch, scale]);
-  return setRef;
-}
Index: de_modules/recharts/es6/util/useUniqueId.js
===================================================================
--- node_modules/recharts/es6/util/useUniqueId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { useId } from './useId';
-
-/**
- * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety
- * and falls back to a client-side-only unique ID generator for older versions.
- *
- * The ID will stay the same across renders, and you can optionally provide a prefix.
- *
- * @param [prefix] - An optional prefix for the generated ID.
- * @param [customId] - An optional custom ID to override the generated one.
- * @returns The unique ID.
- */
-export function useUniqueId(prefix, customId) {
-  /*
-   * We have to call this hook here even if we don't use the result because
-   * rules of hooks demand that hooks are never called conditionally.
-   */
-  var generatedId = useId();
-
-  // If a custom ID is provided, it always takes precedence.
-  if (customId) {
-    return customId;
-  }
-
-  // Apply the prefix if one was provided.
-  return prefix ? "".concat(prefix, "-").concat(generatedId) : generatedId;
-}
-
-/**
- * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.
- * Either way the ID is now guaranteed to be present so no more nulls or undefined.
- */
Index: de_modules/recharts/es6/zIndex/DefaultZIndexes.js
===================================================================
--- node_modules/recharts/es6/zIndex/DefaultZIndexes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-/**
- * A collection of all default zIndex values used by Recharts.
- *
- * You can reuse these, or you can define your own.
- */
-export var DefaultZIndexes = {
-  /**
-   * CartesianGrid and PolarGrid
-   */
-  grid: -100,
-  /**
-   * Background of Bar and RadialBar.
-   * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.
-   */
-  barBackground: -50,
-  /*
-   * other chart elements or custom elements without specific zIndex
-   * render in here, at zIndex 0
-   */
-
-  /**
-   * Area, Pie, Radar, and ReferenceArea
-   */
-  area: 100,
-  /**
-   * Cursor is embedded inside Tooltip and controlled by it.
-   * The Tooltip itself has a separate portal and is not included in the zIndex system;
-   * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.
-   * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.
-   */
-  cursorRectangle: 200,
-  /**
-   * Bar and RadialBar
-   */
-  bar: 300,
-  /**
-   * Line and ReferenceLine, and ErrorBor
-   */
-  line: 400,
-  /**
-   * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children
-   */
-  axis: 500,
-  /**
-   * Scatter and ReferenceDot,
-   * and Dots of Line and Area and Radar if they have dot=true
-   */
-  scatter: 600,
-  /**
-   * Hovering over a Bar or RadialBar renders a highlight rectangle
-   */
-  activeBar: 1000,
-  /**
-   * Cursor is embedded inside Tooltip and controlled by it.
-   * The Tooltip itself has a separate portal and is not included in the zIndex system;
-   * Cursor is the decoration inside the chart area, usually a cross or a box.
-   * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.
-   * It renders above the Line and Scatter so that it is always visible.
-   * It renders below active dot so that the dot is always visible and shows the current point.
-   * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.
-   *
-   * This also applies to the radial cursor in RadialBarChart.
-   */
-  cursorLine: 1100,
-  /**
-   * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot
-   */
-  activeDot: 1200,
-  /**
-   * LabelList and Label, including Axis labels
-   */
-  label: 2000
-};
Index: de_modules/recharts/es6/zIndex/ZIndexLayer.js
===================================================================
--- node_modules/recharts/es6/zIndex/ZIndexLayer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-import { useLayoutEffect } from 'react';
-import { createPortal } from 'react-dom';
-import { noop } from '../util/DataUtils';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { selectZIndexPortalElement } from './zIndexSelectors';
-import { registerZIndexPortal, unregisterZIndexPortal } from '../state/zIndexSlice';
-import { useIsInChartContext } from '../context/chartLayoutContext';
-import { useIsPanorama } from '../context/PanoramaContext';
-
-/**
- * @since 3.4
- */
-
-/**
- * A layer that renders its children into a portal corresponding to the given zIndex.
- * We can't use regular CSS `z-index` because SVG does not support it.
- * So instead, we create separate DOM nodes for each zIndex layer
- * and render the children into the corresponding DOM node using React portals.
- *
- * This component must be used inside a Chart component.
- *
- * @param zIndex numeric zIndex value, higher values are rendered on top of lower values
- * @param children the content to render inside this zIndex layer
- *
- * @since 3.4
- */
-export function ZIndexLayer(_ref) {
-  var {
-    zIndex,
-    children
-  } = _ref;
-  /*
-   * If we are outside of chart, then we can't rely on the zIndex portal state,
-   * so we just render normally.
-   */
-  var isInChartContext = useIsInChartContext();
-  /*
-   * If zIndex is undefined then we render normally without portals.
-   * Also, if zIndex is 0, we render normally without portals,
-   * because 0 is the default layer that does not need a portal.
-   */
-  var shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;
-  var isPanorama = useIsPanorama();
-  var dispatch = useAppDispatch();
-  useLayoutEffect(() => {
-    if (!shouldRenderInPortal) {
-      // Nothing to do. We have to call the hook because of the rules of hooks.
-      return noop;
-    }
-    /*
-     * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,
-     * but we allow users to define any zIndex at any time), we need to register
-     * the requested zIndex in the global store. This way, the ZIndexPortals component
-     * can render the corresponding portals and only the requested ones.
-     */
-    dispatch(registerZIndexPortal({
-      zIndex
-    }));
-    return () => {
-      dispatch(unregisterZIndexPortal({
-        zIndex
-      }));
-    };
-  }, [dispatch, zIndex, shouldRenderInPortal]);
-  var portalElement = useAppSelector(state => selectZIndexPortalElement(state, zIndex, isPanorama));
-  if (!shouldRenderInPortal) {
-    // If no zIndex is provided or zIndex is 0, render normally without portals
-    return children;
-  }
-  if (!portalElement) {
-    /*
-     * If we don't have a portal element yet, this means that the registration
-     * has not been processed yet by the ZIndexPortals component.
-     * So here we render null and wait for the next render cycle.
-     */
-    return null;
-  }
-  return /*#__PURE__*/createPortal(children, portalElement);
-}
Index: de_modules/recharts/es6/zIndex/ZIndexPortal.js
===================================================================
--- node_modules/recharts/es6/zIndex/ZIndexPortal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-import * as React from 'react';
-import { useLayoutEffect, useRef } from 'react';
-import { useAppDispatch, useAppSelector } from '../state/hooks';
-import { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';
-import { selectAllRegisteredZIndexes } from './zIndexSelectors';
-function ZIndexSvgPortal(_ref) {
-  var {
-    zIndex,
-    isPanorama
-  } = _ref;
-  var ref = useRef(null);
-  var dispatch = useAppDispatch();
-  useLayoutEffect(() => {
-    if (ref.current) {
-      dispatch(registerZIndexPortalElement({
-        zIndex,
-        element: ref.current,
-        isPanorama
-      }));
-    }
-    return () => {
-      dispatch(unregisterZIndexPortalElement({
-        zIndex,
-        isPanorama
-      }));
-    };
-  }, [dispatch, zIndex, isPanorama]);
-  // these g elements should not be tabbable
-  return /*#__PURE__*/React.createElement("g", {
-    tabIndex: -1,
-    ref: ref
-  });
-}
-export function AllZIndexPortals(_ref2) {
-  var {
-    children,
-    isPanorama
-  } = _ref2;
-  var allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);
-  if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {
-    return children;
-  }
-  var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);
-  // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.
-  var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
-    key: zIndex,
-    zIndex: zIndex,
-    isPanorama: isPanorama
-  })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
-    key: zIndex,
-    zIndex: zIndex,
-    isPanorama: isPanorama
-  })));
-}
Index: de_modules/recharts/es6/zIndex/getZIndexFromUnknown.js
===================================================================
--- node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
-export function getZIndexFromUnknown(input, defaultZIndex) {
-  if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {
-    return input.zIndex;
-  }
-  return defaultZIndex;
-}
Index: de_modules/recharts/es6/zIndex/zIndexSelectors.js
===================================================================
--- node_modules/recharts/es6/zIndex/zIndexSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { createSelector } from 'reselect';
-import { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';
-import { DefaultZIndexes } from './DefaultZIndexes';
-
-/**
- * Given a zIndex, returns the corresponding portal element reference.
- * If no zIndex is provided or if the zIndex is not registered, returns undefined.
- *
- * It also returns undefined in case the z-index portal has not been rendered yet.
- */
-export var selectZIndexPortalElement = createSelector(state => state.zIndex.zIndexMap, (_, zIndex) => zIndex, (_, _zIndex, isPanorama) => isPanorama, (zIndexMap, zIndex, isPanorama) => {
-  if (zIndex == null) {
-    return undefined;
-  }
-  var entry = zIndexMap[zIndex];
-  if (entry == null) {
-    return undefined;
-  }
-  if (isPanorama) {
-    return entry.panoramaElement;
-  }
-  return entry.element;
-});
-export var selectAllRegisteredZIndexes = createSelector(state => state.zIndex.zIndexMap, zIndexMap => {
-  var allNumbers = Object.keys(zIndexMap).map(zIndexStr => parseInt(zIndexStr, 10)).concat(Object.values(DefaultZIndexes));
-  var uniqueNumbers = Array.from(new Set(allNumbers));
-  return uniqueNumbers.sort((a, b) => a - b);
-}, {
-  memoizeOptions: {
-    resultEqualityCheck: arrayContentsAreEqualCheck
-  }
-});
Index: de_modules/recharts/lib/animation/AnimationManager.js
===================================================================
--- node_modules/recharts/lib/animation/AnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,72 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.createAnimateManager = createAnimateManager;
-/**
- * Represents a single item in the ReactSmoothQueue.
- * The item can be:
- * - A number representing a delay in milliseconds.
- * - An object representing a style change
- * - A StartAnimationFunction that starts eased transition and calls different render
- *      because of course in Recharts we have to have three ways to do everything
- * - An arbitrary function to be executed
- */
-
-function createAnimateManager(timeoutController) {
-  var currStyle;
-  var handleChange = () => null;
-  var shouldStop = false;
-  var cancelTimeout = null;
-  var setStyle = _style => {
-    if (shouldStop) {
-      return;
-    }
-    if (Array.isArray(_style)) {
-      if (!_style.length) {
-        return;
-      }
-      var styles = _style;
-      var [curr, ...restStyles] = styles;
-      if (typeof curr === 'number') {
-        cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles), curr);
-        return;
-      }
-      setStyle(curr);
-      cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles));
-      return;
-    }
-    if (typeof _style === 'string') {
-      currStyle = _style;
-      handleChange(currStyle);
-    }
-    if (typeof _style === 'object') {
-      currStyle = _style;
-      handleChange(currStyle);
-    }
-    if (typeof _style === 'function') {
-      _style();
-    }
-  };
-  return {
-    stop: () => {
-      shouldStop = true;
-    },
-    start: style => {
-      shouldStop = false;
-      if (cancelTimeout) {
-        cancelTimeout();
-        cancelTimeout = null;
-      }
-      setStyle(style);
-    },
-    subscribe: _handleChange => {
-      handleChange = _handleChange;
-      return () => {
-        handleChange = () => null;
-      };
-    },
-    getTimeoutController: () => timeoutController
-  };
-}
Index: de_modules/recharts/lib/animation/CSSTransitionAnimate.js
===================================================================
--- node_modules/recharts/lib/animation/CSSTransitionAnimate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CSSTransitionAnimate = CSSTransitionAnimate;
-var _react = require("react");
-var _DataUtils = require("../util/DataUtils");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _useAnimationManager = require("./useAnimationManager");
-var _util = require("./util");
-var _Global = require("../util/Global");
-var defaultProps = {
-  begin: 0,
-  duration: 1000,
-  easing: 'ease',
-  isActive: true,
-  canBegin: true,
-  onAnimationEnd: () => {},
-  onAnimationStart: () => {}
-};
-function CSSTransitionAnimate(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultProps);
-  var {
-    animationId,
-    from,
-    to,
-    attributeName,
-    isActive: isActiveProp,
-    canBegin,
-    duration,
-    easing,
-    begin,
-    onAnimationEnd,
-    onAnimationStart: onAnimationStartFromProps,
-    children
-  } = props;
-  var isActive = isActiveProp === 'auto' ? !_Global.Global.isSsr : isActiveProp;
-  var animationManager = (0, _useAnimationManager.useAnimationManager)(animationId + attributeName, props.animationManager);
-  var [style, setStyle] = (0, _react.useState)(() => {
-    if (!isActive) {
-      return to;
-    }
-    return from;
-  });
-  var initialized = (0, _react.useRef)(false);
-  var onAnimationStart = (0, _react.useCallback)(() => {
-    setStyle(from);
-    onAnimationStartFromProps();
-  }, [from, onAnimationStartFromProps]);
-  (0, _react.useEffect)(() => {
-    if (!isActive || !canBegin) {
-      return _DataUtils.noop;
-    }
-    initialized.current = true;
-    var unsubscribe = animationManager.subscribe(setStyle);
-    animationManager.start([onAnimationStart, begin, to, duration, onAnimationEnd]);
-    return () => {
-      animationManager.stop();
-      if (unsubscribe) {
-        unsubscribe();
-      }
-      onAnimationEnd();
-    };
-  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager, to, from]);
-  if (!isActive) {
-    /*
-     * With isActive=false, the component always renders with the final style, immediately,
-     * and ignores all other props.
-     * Also there is no transition applied.
-     */
-    return children({
-      [attributeName]: to
-    });
-  }
-  if (!canBegin) {
-    return children({
-      [attributeName]: from
-    });
-  }
-  if (initialized.current) {
-    var transition = (0, _util.getTransitionVal)([attributeName], duration, easing);
-    return children({
-      transition,
-      [attributeName]: style
-    });
-  }
-  return children({
-    [attributeName]: from
-  });
-}
Index: de_modules/recharts/lib/animation/JavascriptAnimate.js
===================================================================
--- node_modules/recharts/lib/animation/JavascriptAnimate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.JavascriptAnimate = JavascriptAnimate;
-var _react = require("react");
-var _DataUtils = require("../util/DataUtils");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _configUpdate = _interopRequireDefault(require("./configUpdate"));
-var _easing = require("./easing");
-var _useAnimationManager = require("./useAnimationManager");
-var _Global = require("../util/Global");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var defaultJavascriptAnimateProps = {
-  begin: 0,
-  duration: 1000,
-  easing: 'ease',
-  isActive: true,
-  canBegin: true,
-  onAnimationEnd: () => {},
-  onAnimationStart: () => {}
-};
-var from = {
-  t: 0
-};
-var to = {
-  t: 1
-};
-function JavascriptAnimate(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultJavascriptAnimateProps);
-  var {
-    isActive: isActiveProp,
-    canBegin,
-    duration,
-    easing,
-    begin,
-    onAnimationEnd,
-    onAnimationStart,
-    children
-  } = props;
-  var isActive = isActiveProp === 'auto' ? !_Global.Global.isSsr : isActiveProp;
-  var animationManager = (0, _useAnimationManager.useAnimationManager)(props.animationId, props.animationManager);
-  var [style, setStyle] = (0, _react.useState)(isActive ? from : to);
-  var stopJSAnimation = (0, _react.useRef)(null);
-  (0, _react.useEffect)(() => {
-    if (!isActive) {
-      setStyle(to);
-    }
-  }, [isActive]);
-  (0, _react.useEffect)(() => {
-    if (!isActive || !canBegin) {
-      return _DataUtils.noop;
-    }
-    var startAnimation = (0, _configUpdate.default)(from, to, (0, _easing.configEasing)(easing), duration, setStyle, animationManager.getTimeoutController());
-    var onAnimationActive = () => {
-      stopJSAnimation.current = startAnimation();
-    };
-    animationManager.start([onAnimationStart, begin, onAnimationActive, duration, onAnimationEnd]);
-    return () => {
-      animationManager.stop();
-      if (stopJSAnimation.current) {
-        stopJSAnimation.current();
-      }
-      onAnimationEnd();
-    };
-  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager]);
-  return children(style.t);
-}
Index: de_modules/recharts/lib/animation/configUpdate.js
===================================================================
--- node_modules/recharts/lib/animation/configUpdate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,143 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = exports.alpha = void 0;
-var _util = require("./util");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var alpha = (begin, end, k) => begin + (end - begin) * k;
-exports.alpha = alpha;
-var needContinue = _ref => {
-  var {
-    from,
-    to
-  } = _ref;
-  return from !== to;
-};
-/*
- * @description: cal new from value and velocity in each stepper
- * @return: { [styleProperty]: { from, to, velocity } }
- */
-var calStepperVals = (easing, preVals, steps) => {
-  var nextStepVals = (0, _util.mapObject)((key, val) => {
-    if (needContinue(val)) {
-      var [newX, newV] = easing(val.from, val.to, val.velocity);
-      return _objectSpread(_objectSpread({}, val), {}, {
-        from: newX,
-        velocity: newV
-      });
-    }
-    return val;
-  }, preVals);
-  if (steps < 1) {
-    return (0, _util.mapObject)((key, val) => {
-      if (needContinue(val) && nextStepVals[key] != null) {
-        return _objectSpread(_objectSpread({}, val), {}, {
-          velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),
-          from: alpha(val.from, nextStepVals[key].from, steps)
-        });
-      }
-      return val;
-    }, preVals);
-  }
-  return calStepperVals(easing, nextStepVals, steps - 1);
-};
-function createStepperUpdate(from, to, easing, interKeys, render, timeoutController) {
-  var preTime;
-  var stepperStyle = interKeys.reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {
-    [key]: {
-      from: from[key],
-      velocity: 0,
-      to: to[key]
-    }
-  }), {});
-  var getCurrStyle = () => (0, _util.mapObject)((key, val) => val.from, stepperStyle);
-  var shouldStopAnimation = () => !Object.values(stepperStyle).filter(needContinue).length;
-  var stopAnimation = null;
-  var stepperUpdate = now => {
-    if (!preTime) {
-      preTime = now;
-    }
-    var deltaTime = now - preTime;
-    var steps = deltaTime / easing.dt;
-    stepperStyle = calStepperVals(easing, stepperStyle, steps);
-    // get union set and add compatible prefix
-    render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle()));
-    preTime = now;
-    if (!shouldStopAnimation()) {
-      stopAnimation = timeoutController.setTimeout(stepperUpdate);
-    }
-  };
-
-  // return start animation method
-  return () => {
-    stopAnimation = timeoutController.setTimeout(stepperUpdate);
-
-    // return stop animation method
-    return () => {
-      var _stopAnimation;
-      (_stopAnimation = stopAnimation) === null || _stopAnimation === void 0 || _stopAnimation();
-    };
-  };
-}
-function createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController) {
-  var stopAnimation = null;
-  var timingStyle = interKeys.reduce((res, key) => {
-    var fromElement = from[key];
-    var toElement = to[key];
-    if (fromElement == null || toElement == null) {
-      return res;
-    }
-    return _objectSpread(_objectSpread({}, res), {}, {
-      [key]: [fromElement, toElement]
-    });
-  }, {});
-  var beginTime;
-  var timingUpdate = now => {
-    if (!beginTime) {
-      beginTime = now;
-    }
-    var t = (now - beginTime) / duration;
-    var currStyle = (0, _util.mapObject)((key, val) => alpha(...val, easing(t)), timingStyle);
-
-    // get union set and add compatible prefix
-    render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));
-    if (t < 1) {
-      stopAnimation = timeoutController.setTimeout(timingUpdate);
-    } else {
-      var finalStyle = (0, _util.mapObject)((key, val) => alpha(...val, easing(1)), timingStyle);
-      render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));
-    }
-  };
-
-  // return start animation method
-  return () => {
-    stopAnimation = timeoutController.setTimeout(timingUpdate);
-
-    // return stop animation method
-    return () => {
-      var _stopAnimation2;
-      (_stopAnimation2 = stopAnimation) === null || _stopAnimation2 === void 0 || _stopAnimation2();
-    };
-  };
-}
-
-// configure update function
-// eslint-disable-next-line import/no-default-export
-var _default = (from, to, easing, duration, render, timeoutController) => {
-  var interKeys = (0, _util.getIntersectionKeys)(from, to);
-  if (easing == null) {
-    // no animation, just set to final state
-    return () => {
-      render(_objectSpread(_objectSpread({}, from), to));
-      return () => {};
-    };
-  }
-  return easing.isStepper === true ? createStepperUpdate(from, to, easing, interKeys, render, timeoutController) : createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController);
-};
-exports.default = _default;
Index: de_modules/recharts/lib/animation/createDefaultAnimationManager.js
===================================================================
--- node_modules/recharts/lib/animation/createDefaultAnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.createDefaultAnimationManager = createDefaultAnimationManager;
-var _AnimationManager = require("./AnimationManager");
-var _timeoutController = require("./timeoutController");
-function createDefaultAnimationManager() {
-  return (0, _AnimationManager.createAnimateManager)(new _timeoutController.RequestAnimationFrameTimeoutController());
-}
Index: de_modules/recharts/lib/animation/easing.js
===================================================================
--- node_modules/recharts/lib/animation/easing.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,142 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.configSpring = exports.configEasing = exports.configBezier = exports.ACCURACY = void 0;
-var ACCURACY = exports.ACCURACY = 1e-4;
-var cubicBezierFactor = (c1, c2) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];
-var evaluatePolynomial = (params, t) => params.map((param, i) => param * t ** i).reduce((pre, curr) => pre + curr);
-var cubicBezier = (c1, c2) => t => {
-  var params = cubicBezierFactor(c1, c2);
-  return evaluatePolynomial(params, t);
-};
-var derivativeCubicBezier = (c1, c2) => t => {
-  var params = cubicBezierFactor(c1, c2);
-  var newParams = [...params.map((param, i) => param * i).slice(1), 0];
-  return evaluatePolynomial(newParams, t);
-};
-var parseCubicBezier = easing => {
-  var _easingParts$;
-  var easingParts = easing.split('(');
-  if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {
-    return null;
-  }
-  var numbers = (_easingParts$ = easingParts[1]) === null || _easingParts$ === void 0 || (_easingParts$ = _easingParts$.split(')')[0]) === null || _easingParts$ === void 0 ? void 0 : _easingParts$.split(',');
-  if (numbers == null || numbers.length !== 4) {
-    return null;
-  }
-  var coords = numbers.map(x => parseFloat(x));
-  return [coords[0], coords[1], coords[2], coords[3]];
-};
-var getBezierCoordinates = function getBezierCoordinates() {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-  if (args.length === 1) {
-    switch (args[0]) {
-      case 'linear':
-        return [0.0, 0.0, 1.0, 1.0];
-      case 'ease':
-        return [0.25, 0.1, 0.25, 1.0];
-      case 'ease-in':
-        return [0.42, 0.0, 1.0, 1.0];
-      case 'ease-out':
-        return [0.42, 0.0, 0.58, 1.0];
-      case 'ease-in-out':
-        return [0.0, 0.0, 0.58, 1.0];
-      default:
-        {
-          var easing = parseCubicBezier(args[0]);
-          if (easing) {
-            return easing;
-          }
-        }
-    }
-  }
-  if (args.length === 4) {
-    return args;
-  }
-
-  // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.
-  // Returning linear easing is a safe default.
-  return [0.0, 0.0, 1.0, 1.0];
-};
-var createBezierEasing = (x1, y1, x2, y2) => {
-  var curveX = cubicBezier(x1, x2);
-  var curveY = cubicBezier(y1, y2);
-  var derCurveX = derivativeCubicBezier(x1, x2);
-  var rangeValue = value => {
-    if (value > 1) {
-      return 1;
-    }
-    if (value < 0) {
-      return 0;
-    }
-    return value;
-  };
-  var bezier = _t => {
-    var t = _t > 1 ? 1 : _t;
-    var x = t;
-    for (var i = 0; i < 8; ++i) {
-      var evalT = curveX(x) - t;
-      var derVal = derCurveX(x);
-      if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {
-        return curveY(x);
-      }
-      x = rangeValue(x - evalT / derVal);
-    }
-    return curveY(x);
-  };
-  bezier.isStepper = false;
-  return bezier;
-};
-
-// calculate cubic-bezier using Newton's method
-var configBezier = exports.configBezier = function configBezier() {
-  return createBezierEasing(...getBezierCoordinates(...arguments));
-};
-var configSpring = exports.configSpring = function configSpring() {
-  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  var {
-    stiff = 100,
-    damping = 8,
-    dt = 17
-  } = config;
-  var stepper = (currX, destX, currV) => {
-    var FSpring = -(currX - destX) * stiff;
-    var FDamping = currV * damping;
-    var newV = currV + (FSpring - FDamping) * dt / 1000;
-    var newX = currV * dt / 1000 + currX;
-    if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {
-      return [destX, 0];
-    }
-    return [newX, newV];
-  };
-  stepper.isStepper = true;
-  stepper.dt = dt;
-  return stepper;
-};
-var configEasing = easing => {
-  if (typeof easing === 'string') {
-    switch (easing) {
-      case 'ease':
-      case 'ease-in-out':
-      case 'ease-out':
-      case 'ease-in':
-      case 'linear':
-        return configBezier(easing);
-      case 'spring':
-        return configSpring();
-      default:
-        if (easing.split('(')[0] === 'cubic-bezier') {
-          return configBezier(easing);
-        }
-    }
-  }
-  if (typeof easing === 'function') {
-    return easing;
-  }
-  return null;
-};
-exports.configEasing = configEasing;
Index: de_modules/recharts/lib/animation/timeoutController.js
===================================================================
--- node_modules/recharts/lib/animation/timeoutController.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RequestAnimationFrameTimeoutController = void 0;
-/**
- * Callback type for the timeout function.
- * Receives current time in milliseconds as an argument.
- */
-
-/**
- * A function that, when called, cancels the timeout.
- */
-
-class RequestAnimationFrameTimeoutController {
-  setTimeout(callback) {
-    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-    var startTime = performance.now();
-    var requestId = null;
-    var executeCallback = now => {
-      if (now - startTime >= delay) {
-        callback(now);
-        // tests fail without the extra if, even when five lines below it's not needed
-        // TODO finish transition to the mocked timeout controller and then remove this condition
-      } else if (typeof requestAnimationFrame === 'function') {
-        requestId = requestAnimationFrame(executeCallback);
-      }
-    };
-    requestId = requestAnimationFrame(executeCallback);
-    return () => {
-      if (requestId != null) {
-        cancelAnimationFrame(requestId);
-      }
-    };
-  }
-}
-exports.RequestAnimationFrameTimeoutController = RequestAnimationFrameTimeoutController;
Index: de_modules/recharts/lib/animation/useAnimationManager.js
===================================================================
--- node_modules/recharts/lib/animation/useAnimationManager.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.AnimationManagerContext = void 0;
-exports.useAnimationManager = useAnimationManager;
-var _react = require("react");
-var _createDefaultAnimationManager = require("./createDefaultAnimationManager");
-var AnimationManagerContext = exports.AnimationManagerContext = /*#__PURE__*/(0, _react.createContext)(_createDefaultAnimationManager.createDefaultAnimationManager);
-function useAnimationManager(animationId, animationManagerFromProps) {
-  var contextAnimationManager = (0, _react.useContext)(AnimationManagerContext);
-  return (0, _react.useMemo)(() => animationManagerFromProps !== null && animationManagerFromProps !== void 0 ? animationManagerFromProps : contextAnimationManager(animationId), [animationId, animationManagerFromProps, contextAnimationManager]);
-}
Index: de_modules/recharts/lib/animation/util.js
===================================================================
--- node_modules/recharts/lib/animation/util.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.mapObject = exports.getTransitionVal = exports.getIntersectionKeys = exports.getDashCase = void 0;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/*
- * @description: convert camel case to dash case
- * string => string
- */
-var getDashCase = name => name.replace(/([A-Z])/g, v => "-".concat(v.toLowerCase()));
-exports.getDashCase = getDashCase;
-var getTransitionVal = (props, duration, easing) => props.map(prop => "".concat(getDashCase(prop), " ").concat(duration, "ms ").concat(easing)).join(',');
-
-/**
- * Finds the intersection of keys between two objects
- * @param {object} preObj previous object
- * @param {object} nextObj next object
- * @returns an array of keys that exist in both objects
- */
-exports.getTransitionVal = getTransitionVal;
-var getIntersectionKeys = (preObj, nextObj) => [Object.keys(preObj), Object.keys(nextObj)].reduce((a, b) => a.filter(c => b.includes(c)));
-
-/**
- * Maps an object to another object
- * @param {function} fn function to map
- * @param {object} obj object to map
- * @returns mapped object
- */
-exports.getIntersectionKeys = getIntersectionKeys;
-var mapObject = (fn, obj) => Object.keys(obj).reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {
-  [key]: fn(key, obj[key])
-}), {});
-exports.mapObject = mapObject;
Index: de_modules/recharts/lib/cartesian/Area.js
===================================================================
--- node_modules/recharts/lib/cartesian/Area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,815 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Area = void 0;
-exports.computeArea = computeArea;
-exports.getBaseValue = exports.defaultAreaProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Curve = require("../shape/Curve");
-var _Layer = require("../container/Layer");
-var _LabelList = require("../component/LabelList");
-var _Dots = require("../component/Dots");
-var _Global = require("../util/Global");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _ReactUtils = require("../util/ReactUtils");
-var _ActivePoints = require("../component/ActivePoints");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _GraphicalItemClipPath = require("./GraphicalItemClipPath");
-var _areaSelectors = require("../state/selectors/areaSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _selectors = require("../state/selectors/selectors");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _hooks = require("../state/hooks");
-var _useAnimationId = require("../util/useAnimationId");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _hooks2 = require("../hooks");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _getRadiusAndStrokeWidthFromDot = require("../util/getRadiusAndStrokeWidthFromDot");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _propsAreEqual = require("../util/propsAreEqual");
-var _excluded = ["id"],
-  _excluded2 = ["activeDot", "animationBegin", "animationDuration", "animationEasing", "connectNulls", "dot", "fill", "fillOpacity", "hide", "isAnimationActive", "legendType", "stroke", "xAxisId", "yAxisId"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * @inline
- */
-
-/**
- * Our base value array has payload in it, and we expose it externally too.
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-function getLegendItemColor(stroke, fill) {
-  return stroke && stroke !== 'none' ? stroke : fill;
-}
-var computeLegendPayloadFromAreaData = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: getLegendItemColor(stroke, fill),
-    value: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-    payload: props
-  }];
-};
-var SetAreaTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    data,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: _DataUtils.noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: getLegendItemColor(stroke, fill),
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function AreaDotsWrapper(_ref2) {
-  var {
-    clipPathId,
-    points,
-    props
-  } = _ref2;
-  var {
-    needClip,
-    dot,
-    dataKey
-  } = props;
-  var areaProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props);
-  return /*#__PURE__*/React.createElement(_Dots.Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-area-dots",
-    dotClassName: "recharts-area-dot",
-    dataKey: dataKey,
-    baseProps: areaProps,
-    needClip: needClip,
-    clipPathId: clipPathId
-  });
-}
-function AreaLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    children,
-    points
-  } = _ref3;
-  var labelListEntries = points.map(point => {
-    var _point$x, _point$y;
-    var viewBox = {
-      x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-      y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-      width: 0,
-      lowerWidth: 0,
-      upperWidth: 0,
-      height: 0
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: point.value,
-      payload: point.payload,
-      parentViewBox: undefined,
-      viewBox,
-      fill: undefined
-    });
-  });
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticArea(_ref4) {
-  var {
-    points,
-    baseLine,
-    needClip,
-    clipPathId,
-    props
-  } = _ref4;
-  var {
-    layout,
-    type,
-    stroke,
-    connectNulls,
-    isRange
-  } = props;
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var allOtherProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(propsWithoutId);
-  var propsWithEvents = (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(propsWithoutId);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(_Layer.Layer, {
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined
-  }, /*#__PURE__*/React.createElement(_Curve.Curve, _extends({}, propsWithEvents, {
-    id: id,
-    points: points,
-    connectNulls: connectNulls,
-    type: type,
-    baseLine: baseLine,
-    layout: layout,
-    stroke: "none",
-    className: "recharts-area-area"
-  })), stroke !== 'none' && /*#__PURE__*/React.createElement(_Curve.Curve, _extends({}, allOtherProps, {
-    className: "recharts-area-curve",
-    layout: layout,
-    type: type,
-    connectNulls: connectNulls,
-    fill: "none",
-    points: points
-  })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(_Curve.Curve, _extends({}, allOtherProps, {
-    className: "recharts-area-curve",
-    layout: layout,
-    type: type,
-    connectNulls: connectNulls,
-    fill: "none",
-    points: baseLine
-  }))), /*#__PURE__*/React.createElement(AreaDotsWrapper, {
-    points: points,
-    props: propsWithoutId,
-    clipPathId: clipPathId
-  }));
-}
-function VerticalRect(_ref5) {
-  var _points$, _points;
-  var {
-    alpha,
-    baseLine,
-    points,
-    strokeWidth
-  } = _ref5;
-  var startY = (_points$ = points[0]) === null || _points$ === void 0 ? void 0 : _points$.y;
-  var endY = (_points = points[points.length - 1]) === null || _points === void 0 ? void 0 : _points.y;
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(startY) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(endY)) {
-    return null;
-  }
-  var height = alpha * Math.abs(startY - endY);
-  var maxX = Math.max(...points.map(entry => entry.x || 0));
-  if ((0, _DataUtils.isNumber)(baseLine)) {
-    maxX = Math.max(baseLine, maxX);
-  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {
-    maxX = Math.max(...baseLine.map(entry => entry.x || 0), maxX);
-  }
-  if ((0, _DataUtils.isNumber)(maxX)) {
-    return /*#__PURE__*/React.createElement("rect", {
-      x: 0,
-      y: startY < endY ? startY : startY - height,
-      width: maxX + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1),
-      height: Math.floor(height)
-    });
-  }
-  return null;
-}
-function HorizontalRect(_ref6) {
-  var _points$2, _points2;
-  var {
-    alpha,
-    baseLine,
-    points,
-    strokeWidth
-  } = _ref6;
-  var startX = (_points$2 = points[0]) === null || _points$2 === void 0 ? void 0 : _points$2.x;
-  var endX = (_points2 = points[points.length - 1]) === null || _points2 === void 0 ? void 0 : _points2.x;
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(startX) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(endX)) {
-    return null;
-  }
-  var width = alpha * Math.abs(startX - endX);
-  var maxY = Math.max(...points.map(entry => entry.y || 0));
-  if ((0, _DataUtils.isNumber)(baseLine)) {
-    maxY = Math.max(baseLine, maxY);
-  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {
-    maxY = Math.max(...baseLine.map(entry => entry.y || 0), maxY);
-  }
-  if ((0, _DataUtils.isNumber)(maxY)) {
-    return /*#__PURE__*/React.createElement("rect", {
-      x: startX < endX ? startX : startX - width,
-      y: 0,
-      width: width,
-      height: Math.floor(maxY + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1))
-    });
-  }
-  return null;
-}
-function ClipRect(_ref7) {
-  var {
-    alpha,
-    layout,
-    points,
-    baseLine,
-    strokeWidth
-  } = _ref7;
-  if (layout === 'vertical') {
-    return /*#__PURE__*/React.createElement(VerticalRect, {
-      alpha: alpha,
-      points: points,
-      baseLine: baseLine,
-      strokeWidth: strokeWidth
-    });
-  }
-  return /*#__PURE__*/React.createElement(HorizontalRect, {
-    alpha: alpha,
-    points: points,
-    baseLine: baseLine,
-    strokeWidth: strokeWidth
-  });
-}
-function AreaWithAnimation(_ref8) {
-  var {
-    needClip,
-    clipPathId,
-    props,
-    previousPointsRef,
-    previousBaselineRef
-  } = _ref8;
-  var {
-    points,
-    baseLine,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationStart,
-    onAnimationEnd
-  } = props;
-  var animationInput = (0, _react.useMemo)(() => ({
-    points,
-    baseLine
-  }), [points, baseLine]);
-  var animationId = (0, _useAnimationId.useAnimationId)(animationInput, 'recharts-area-');
-  var layout = (0, _chartLayoutContext.useCartesianChartLayout)();
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  if (layout == null) {
-    return null;
-  }
-  var prevPoints = previousPointsRef.current;
-  var prevBaseLine = previousBaselineRef.current;
-  return /*#__PURE__*/React.createElement(AreaLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, props.children, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    if (prevPoints) {
-      var prevPointsDiffFactor = prevPoints.length / points.length;
-      var stepPoints =
-      /*
-       * Here it is important that at the very end of the animation, on the last frame,
-       * we render the original points without any interpolation.
-       * This is needed because the code above is checking for reference equality to decide if the animation should run
-       * and if we create a new array instance (even if the numbers were the same)
-       * then we would break animations.
-       */
-      t === 1 ? points : points.map((entry, index) => {
-        var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-        if (prevPoints[prevPointIndex]) {
-          var prev = prevPoints[prevPointIndex];
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-            y: (0, _DataUtils.interpolate)(prev.y, entry.y, t)
-          });
-        }
-        return entry;
-      });
-      var stepBaseLine;
-      if ((0, _DataUtils.isNumber)(baseLine)) {
-        stepBaseLine = (0, _DataUtils.interpolate)(prevBaseLine, baseLine, t);
-      } else if ((0, _DataUtils.isNullish)(baseLine) || (0, _DataUtils.isNan)(baseLine)) {
-        stepBaseLine = (0, _DataUtils.interpolate)(prevBaseLine, 0, t);
-      } else {
-        stepBaseLine = baseLine.map((entry, index) => {
-          var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-          if (Array.isArray(prevBaseLine) && prevBaseLine[prevPointIndex]) {
-            var prev = prevBaseLine[prevPointIndex];
-            return _objectSpread(_objectSpread({}, entry), {}, {
-              x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-              y: (0, _DataUtils.interpolate)(prev.y, entry.y, t)
-            });
-          }
-          return entry;
-        });
-      }
-      if (t > 0) {
-        /*
-         * We need to keep the refs in the parent component because we need to remember the last shape of the animation
-         * even if AreaWithAnimation is unmounted as that happens when changing props.
-         *
-         * And we need to update the refs here because here is where the interpolation is computed.
-         * Eslint doesn't like changing function arguments, but we need it so here is an eslint-disable.
-         */
-        // eslint-disable-next-line no-param-reassign
-        previousPointsRef.current = stepPoints;
-        // eslint-disable-next-line no-param-reassign
-        previousBaselineRef.current = stepBaseLine;
-      }
-      return /*#__PURE__*/React.createElement(StaticArea, {
-        points: stepPoints,
-        baseLine: stepBaseLine,
-        needClip: needClip,
-        clipPathId: clipPathId,
-        props: props
-      });
-    }
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = points;
-      // eslint-disable-next-line no-param-reassign
-      previousBaselineRef.current = baseLine;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, isAnimationActive && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
-      id: "animationClipPath-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement(ClipRect, {
-      alpha: t,
-      points: points,
-      baseLine: baseLine,
-      layout: layout,
-      strokeWidth: props.strokeWidth
-    }))), /*#__PURE__*/React.createElement(_Layer.Layer, {
-      clipPath: "url(#animationClipPath-".concat(clipPathId, ")")
-    }, /*#__PURE__*/React.createElement(StaticArea, {
-      points: points,
-      baseLine: baseLine,
-      needClip: needClip,
-      clipPathId: clipPathId,
-      props: props
-    })));
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-
-/*
- * This components decides if the area should be animated or not.
- * It also holds the state of the animation.
- */
-function RenderArea(_ref9) {
-  var {
-    needClip,
-    clipPathId,
-    props
-  } = _ref9;
-  /*
-   * These two must be refs, not state!
-   * Because we want to store the most recent shape of the animation in case we have to interrupt the animation;
-   * that happens when user initiates another animation before the current one finishes.
-   *
-   * If this was a useState, then every step in the animation would trigger a re-render.
-   * So, useRef it is.
-   */
-  var previousPointsRef = (0, _react.useRef)(null);
-  var previousBaselineRef = (0, _react.useRef)();
-  return /*#__PURE__*/React.createElement(AreaWithAnimation, {
-    needClip: needClip,
-    clipPathId: clipPathId,
-    props: props,
-    previousPointsRef: previousPointsRef,
-    previousBaselineRef: previousBaselineRef
-  });
-}
-class AreaWithState extends _react.PureComponent {
-  render() {
-    var {
-      hide,
-      dot,
-      points,
-      className,
-      top,
-      left,
-      needClip,
-      xAxisId,
-      yAxisId,
-      width,
-      height,
-      id,
-      baseLine,
-      zIndex
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = (0, _clsx.clsx)('recharts-area', className);
-    var clipPathId = id;
-    var {
-      r,
-      strokeWidth
-    } = (0, _getRadiusAndStrokeWidthFromDot.getRadiusAndStrokeWidthFromDot)(dot);
-    var clipDot = (0, _ReactUtils.isClipDot)(dot);
-    var dotSize = r * 2 + strokeWidth;
-    var activePointsClipPath = needClip ? "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")") : undefined;
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: zIndex
-    }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: layerClass
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(_GraphicalItemClipPath.GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    }), !clipDot && /*#__PURE__*/React.createElement("clipPath", {
-      id: "clipPath-dots-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement("rect", {
-      x: left - dotSize / 2,
-      y: top - dotSize / 2,
-      width: width + dotSize,
-      height: height + dotSize
-    }))), /*#__PURE__*/React.createElement(RenderArea, {
-      needClip: needClip,
-      clipPathId: clipPathId,
-      props: this.props
-    })), /*#__PURE__*/React.createElement(_ActivePoints.ActivePoints, {
-      points: points,
-      mainColor: getLegendItemColor(this.props.stroke, this.props.fill),
-      itemDataKey: this.props.dataKey,
-      activeDot: this.props.activeDot,
-      clipPath: activePointsClipPath
-    }), this.props.isRange && Array.isArray(baseLine) && /*#__PURE__*/React.createElement(_ActivePoints.ActivePoints, {
-      points: baseLine,
-      mainColor: getLegendItemColor(this.props.stroke, this.props.fill),
-      itemDataKey: this.props.dataKey,
-      activeDot: this.props.activeDot,
-      clipPath: activePointsClipPath
-    }));
-  }
-}
-var defaultAreaProps = exports.defaultAreaProps = {
-  activeDot: true,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  connectNulls: false,
-  dot: false,
-  fill: '#3182bd',
-  fillOpacity: 0.6,
-  hide: false,
-  isAnimationActive: 'auto',
-  legendType: 'line',
-  stroke: '#3182bd',
-  strokeWidth: 1,
-  type: 'linear',
-  label: false,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.area
-};
-function AreaImpl(props) {
-  var _useAppSelector;
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(props, defaultAreaProps),
-    {
-      activeDot,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      connectNulls,
-      dot,
-      fill,
-      fillOpacity,
-      hide,
-      isAnimationActive,
-      legendType,
-      stroke,
-      xAxisId,
-      yAxisId
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded2);
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  var chartName = (0, _selectors.useChartName)();
-  var {
-    needClip
-  } = (0, _GraphicalItemClipPath.useNeedsClip)(xAxisId, yAxisId);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var {
-    points,
-    isRange,
-    baseLine
-  } = (_useAppSelector = (0, _hooks.useAppSelector)(state => (0, _areaSelectors.selectArea)(state, props.id, isPanorama))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};
-  var plotArea = (0, _hooks2.usePlotArea)();
-  if (layout !== 'horizontal' && layout !== 'vertical' || plotArea == null) {
-    // Can't render Area in an unsupported layout
-    return null;
-  }
-  if (chartName !== 'AreaChart' && chartName !== 'ComposedChart') {
-    // There is nothing stopping us from rendering Area in other charts, except for historical reasons. Do we want to allow that?
-    return null;
-  }
-  var {
-    height,
-    width,
-    x: left,
-    y: top
-  } = plotArea;
-  if (!points || !points.length) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(AreaWithState, _extends({}, everythingElse, {
-    activeDot: activeDot,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    baseLine: baseLine,
-    connectNulls: connectNulls,
-    dot: dot,
-    fill: fill,
-    fillOpacity: fillOpacity,
-    height: height,
-    hide: hide,
-    layout: layout,
-    isAnimationActive: isAnimationActive === 'auto' ? !_Global.Global.isSsr : isAnimationActive,
-    isRange: isRange,
-    legendType: legendType,
-    needClip: needClip,
-    points: points,
-    stroke: stroke,
-    width: width,
-    left: left,
-    top: top,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId
-  }));
-}
-var getBaseValue = (layout, chartBaseValue, itemBaseValue, xAxis, yAxis) => {
-  // The baseValue can be defined both on the AreaChart, and on the Area.
-  // The value for the item takes precedence.
-  var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;
-  if ((0, _DataUtils.isNumber)(baseValue)) {
-    return baseValue;
-  }
-  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
-  // @ts-expect-error d3scale .domain() returns unknown, Math.max expects number
-  var domain = numericAxis.scale.domain();
-  if (numericAxis.type === 'number') {
-    var domainMax = Math.max(domain[0], domain[1]);
-    var domainMin = Math.min(domain[0], domain[1]);
-    if (baseValue === 'dataMin') {
-      return domainMin;
-    }
-    if (baseValue === 'dataMax') {
-      return domainMax;
-    }
-    return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);
-  }
-  if (baseValue === 'dataMin') {
-    return domain[0];
-  }
-  if (baseValue === 'dataMax') {
-    return domain[1];
-  }
-  return domain[0];
-};
-exports.getBaseValue = getBaseValue;
-function computeArea(_ref0) {
-  var {
-    areaSettings: {
-      connectNulls,
-      baseValue: itemBaseValue,
-      dataKey
-    },
-    stackedData,
-    layout,
-    chartBaseValue,
-    xAxis,
-    yAxis,
-    displayedData,
-    dataStartIndex,
-    xAxisTicks,
-    yAxisTicks,
-    bandSize
-  } = _ref0;
-  var hasStack = stackedData && stackedData.length;
-  var baseValue = getBaseValue(layout, chartBaseValue, itemBaseValue, xAxis, yAxis);
-  var isHorizontalLayout = layout === 'horizontal';
-  var isRange = false;
-  var points = displayedData.map((entry, index) => {
-    var _valueAsArray$, _valueAsArray, _xAxis$scale$map;
-    var valueAsArray;
-    if (hasStack) {
-      valueAsArray = stackedData[dataStartIndex + index];
-    } else {
-      var rawValue = (0, _ChartUtils.getValueByDataKey)(entry, dataKey);
-      if (!Array.isArray(rawValue)) {
-        // @ts-expect-error getValueByDataKey is not checking its return value
-        valueAsArray = [baseValue, rawValue];
-      } else {
-        // @ts-expect-error getValueByDataKey is not checking its return value
-        valueAsArray = rawValue;
-        isRange = true;
-      }
-    }
-    var value1 = (_valueAsArray$ = (_valueAsArray = valueAsArray) === null || _valueAsArray === void 0 ? void 0 : _valueAsArray[1]) !== null && _valueAsArray$ !== void 0 ? _valueAsArray$ : null;
-    var isBreakPoint = value1 == null || hasStack && !connectNulls && (0, _ChartUtils.getValueByDataKey)(entry, dataKey) == null;
-    if (isHorizontalLayout) {
-      var _yAxis$scale$map;
-      return {
-        x: (0, _ChartUtils.getCateCoordinateOfLine)({
-          axis: xAxis,
-          ticks: xAxisTicks,
-          bandSize,
-          entry,
-          index
-        }),
-        y: isBreakPoint ? null : (_yAxis$scale$map = yAxis.scale.map(value1)) !== null && _yAxis$scale$map !== void 0 ? _yAxis$scale$map : null,
-        value: valueAsArray,
-        payload: entry
-      };
-    }
-    return {
-      x: isBreakPoint ? null : (_xAxis$scale$map = xAxis.scale.map(value1)) !== null && _xAxis$scale$map !== void 0 ? _xAxis$scale$map : null,
-      y: (0, _ChartUtils.getCateCoordinateOfLine)({
-        axis: yAxis,
-        ticks: yAxisTicks,
-        bandSize,
-        entry,
-        index
-      }),
-      value: valueAsArray,
-      payload: entry
-    };
-  });
-  var baseLine;
-  if (hasStack || isRange) {
-    baseLine = points.map(entry => {
-      var _xAxis$scale$map2;
-      var x = Array.isArray(entry.value) ? entry.value[0] : null;
-      if (isHorizontalLayout) {
-        var _yAxis$scale$map2;
-        return {
-          x: entry.x,
-          y: x != null && entry.y != null ? (_yAxis$scale$map2 = yAxis.scale.map(x)) !== null && _yAxis$scale$map2 !== void 0 ? _yAxis$scale$map2 : null : null,
-          payload: entry.payload
-        };
-      }
-      return {
-        x: x != null ? (_xAxis$scale$map2 = xAxis.scale.map(x)) !== null && _xAxis$scale$map2 !== void 0 ? _xAxis$scale$map2 : null : null,
-        y: entry.y,
-        payload: entry.payload
-      };
-    });
-  } else {
-    baseLine = isHorizontalLayout ? yAxis.scale.map(baseValue) : xAxis.scale.map(baseValue);
-  }
-  return {
-    points,
-    baseLine: baseLine !== null && baseLine !== void 0 ? baseLine : 0,
-    isRange
-  };
-}
-function AreaFn(outsideProps) {
-  var props = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, defaultAreaProps);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "area"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetLegendPayload.SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromAreaData(props)
-  }), /*#__PURE__*/React.createElement(SetAreaTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    data: props.data,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(_SetGraphicalItem.SetCartesianGraphicalItem, {
-    type: "area",
-    id: id,
-    data: props.data,
-    dataKey: props.dataKey,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    stackId: (0, _ChartUtils.getNormalizedStackId)(props.stackId),
-    hide: props.hide,
-    barSize: undefined,
-    baseValue: props.baseValue,
-    isPanorama: isPanorama,
-    connectNulls: props.connectNulls
-  }), /*#__PURE__*/React.createElement(AreaImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @consumes CartesianChartContext
- */
-var Area = exports.Area = /*#__PURE__*/React.memo(AreaFn, _propsAreEqual.propsAreEqual);
-Area.displayName = 'Area';
Index: de_modules/recharts/lib/cartesian/Bar.js
===================================================================
--- node_modules/recharts/lib/cartesian/Bar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,714 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Bar = void 0;
-exports.computeBarRectangles = computeBarRectangles;
-exports.defaultBarProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Cell = require("../component/Cell");
-var _LabelList = require("../component/LabelList");
-var _DataUtils = require("../util/DataUtils");
-var _ReactUtils = require("../util/ReactUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _types = require("../util/types");
-var _BarUtils = require("../util/BarUtils");
-var _tooltipContext = require("../context/tooltipContext");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _ErrorBarContext = require("../context/ErrorBarContext");
-var _GraphicalItemClipPath = require("./GraphicalItemClipPath");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _barSelectors = require("../state/selectors/barSelectors");
-var _hooks = require("../state/hooks");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _useAnimationId = require("../util/useAnimationId");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _getZIndexFromUnknown = require("../zIndex/getZIndexFromUnknown");
-var _propsAreEqual = require("../util/propsAreEqual");
-var _BarStack = require("./BarStack");
-var _excluded = ["onMouseEnter", "onMouseLeave", "onClick"],
-  _excluded2 = ["value", "background", "tooltipPosition"],
-  _excluded3 = ["id"],
-  _excluded4 = ["onMouseEnter", "onClick", "onMouseLeave"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var computeLegendPayloadFromBarData = props => {
-  var {
-    dataKey,
-    name,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: fill,
-    value: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-    payload: props
-  }];
-};
-var SetBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: undefined,
-    getPosition: _DataUtils.noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function BarBackground(props) {
-  var activeIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var {
-    data,
-    dataKey,
-    background: backgroundFromProps,
-    allOtherBarProps
-  } = props;
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onMouseLeave: onMouseLeaveFromProps,
-      onClick: onItemClickFromProps
-    } = allOtherBarProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);
-
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, dataKey, allOtherBarProps.id);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, dataKey, allOtherBarProps.id);
-  if (!backgroundFromProps || data == null) {
-    return null;
-  }
-  var backgroundProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(backgroundFromProps);
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: (0, _getZIndexFromUnknown.getZIndexFromUnknown)(backgroundFromProps, _DefaultZIndexes.DefaultZIndexes.barBackground)
-  }, data.map((entry, i) => {
-    var {
-        value,
-        background: backgroundFromDataEntry,
-        tooltipPosition
-      } = entry,
-      rest = _objectWithoutProperties(entry, _excluded2);
-    if (!backgroundFromDataEntry) {
-      return null;
-    }
-
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onMouseEnter = onMouseEnterFromContext(entry, i);
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onMouseLeave = onMouseLeaveFromContext(entry, i);
-    // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-    var onClick = onClickFromContext(entry, i);
-    var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      option: backgroundFromProps,
-      isActive: String(i) === activeIndex
-    }, rest), {}, {
-      // @ts-expect-error backgroundProps is contributing unknown props
-      fill: '#eee'
-    }, backgroundFromDataEntry), backgroundProps), (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i)), {}, {
-      onMouseEnter,
-      onMouseLeave,
-      onClick,
-      dataKey,
-      index: i,
-      className: 'recharts-bar-background-rectangle'
-    });
-    return /*#__PURE__*/React.createElement(_BarUtils.BarRectangle, _extends({
-      key: "background-bar-".concat(i)
-    }, barRectangleProps));
-  }));
-}
-function BarLabelListProvider(_ref2) {
-  var {
-    showLabels,
-    children,
-    rects
-  } = _ref2;
-  var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {
-    var viewBox = {
-      x: entry.x,
-      y: entry.y,
-      width: entry.width,
-      lowerWidth: entry.width,
-      upperWidth: entry.width,
-      height: entry.height
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: entry.value,
-      payload: entry.payload,
-      parentViewBox: entry.parentViewBox,
-      viewBox,
-      fill: entry.fill
-    });
-  });
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function BarRectangleWithActiveState(props) {
-  var {
-    shape,
-    activeBar,
-    baseProps,
-    entry,
-    index,
-    dataKey
-  } = props;
-  var activeIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var activeDataKey = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipDataKey);
-  /*
-   * Bars support stacking, meaning that there can be multiple bars at the same x value.
-   * With Tooltip shared=false we only want to highlight the currently active Bar, not all.
-   *
-   * Also, if the tooltip is shared, we want to highlight all bars at the same x value
-   * regardless of the dataKey.
-   *
-   * With shared Tooltip, the activeDataKey is undefined.
-   */
-  var isActive = activeBar && String(index) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);
-  var option = isActive ? activeBar : shape;
-  if (isActive) {
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: _DefaultZIndexes.DefaultZIndexes.activeBar
-    }, /*#__PURE__*/React.createElement(_BarStack.BarStackClipLayer, {
-      index: index
-    }, /*#__PURE__*/React.createElement(_BarUtils.BarRectangle, _extends({}, baseProps, {
-      name: String(baseProps.name)
-    }, entry, {
-      isActive: isActive,
-      option: option,
-      index: index,
-      dataKey: dataKey
-    }))));
-  }
-  return /*#__PURE__*/React.createElement(_BarUtils.BarRectangle, _extends({}, baseProps, {
-    name: String(baseProps.name)
-  }, entry, {
-    isActive: isActive,
-    option: option,
-    index: index,
-    dataKey: dataKey
-  }));
-}
-function BarRectangleNeverActive(props) {
-  var {
-    shape,
-    baseProps,
-    entry,
-    index,
-    dataKey
-  } = props;
-  return /*#__PURE__*/React.createElement(_BarUtils.BarRectangle, _extends({}, baseProps, {
-    name: String(baseProps.name)
-  }, entry, {
-    isActive: false,
-    option: shape,
-    index: index,
-    dataKey: dataKey
-  }));
-}
-function BarRectangles(_ref3) {
-  var _svgPropertiesNoEvent;
-  var {
-    data,
-    props
-  } = _ref3;
-  var _ref4 = (_svgPropertiesNoEvent = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},
-    {
-      id
-    } = _ref4,
-    baseProps = _objectWithoutProperties(_ref4, _excluded3);
-  var {
-    shape,
-    dataKey,
-    activeBar
-  } = props;
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = props,
-    restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);
-
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, dataKey, id);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  // @ts-expect-error bar mouse events are not compatible with recharts mouse events
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, dataKey, id);
-  if (!data) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {
-    return /*#__PURE__*/React.createElement(_BarStack.BarStackClipLayer, _extends({
-      index: i
-      // https://github.com/recharts/recharts/issues/5415
-      ,
-      key: "rectangle-".concat(entry === null || entry === void 0 ? void 0 : entry.x, "-").concat(entry === null || entry === void 0 ? void 0 : entry.y, "-").concat(entry === null || entry === void 0 ? void 0 : entry.value, "-").concat(i),
-      className: "recharts-bar-rectangle"
-    }, (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {
-      shape: shape,
-      activeBar: activeBar,
-      baseProps: baseProps,
-      entry: entry,
-      index: i,
-      dataKey: dataKey
-    }) :
-    /*#__PURE__*/
-    /*
-     * If the `activeBar` prop is falsy, then let's call the variant without hooks.
-     * Using the `selectActiveTooltipIndex` selector is usually fast
-     * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.
-     * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.
-     * So let's just skip the hooks altogether. That way, React can skip rendering the component,
-     * and can skip the tree reconciliation for its children too.
-     * Because we can't call hooks conditionally, we need to have a separate component for that.
-     */
-    React.createElement(BarRectangleNeverActive, {
-      shape: shape,
-      baseProps: baseProps,
-      entry: entry,
-      index: i,
-      dataKey: dataKey
-    }));
-  }));
-}
-function RectanglesWithAnimation(_ref5) {
-  var {
-    props,
-    previousRectanglesRef
-  } = _ref5;
-  var {
-    data,
-    layout,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevData = previousRectanglesRef.current;
-  var animationId = (0, _useAnimationId.useAnimationId)(props, 'recharts-bar-');
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(BarLabelListProvider, {
-    showLabels: showLabels,
-    rects: data
-  }, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? data : data === null || data === void 0 ? void 0 : data.map((entry, index) => {
-      var prev = prevData && prevData[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-          y: (0, _DataUtils.interpolate)(prev.y, entry.y, t),
-          width: (0, _DataUtils.interpolate)(prev.width, entry.width, t),
-          height: (0, _DataUtils.interpolate)(prev.height, entry.height, t)
-        });
-      }
-      if (layout === 'horizontal') {
-        var height = (0, _DataUtils.interpolate)(0, entry.height, t);
-        var y = (0, _DataUtils.interpolate)(entry.stackedBarStart, entry.y, t);
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          y,
-          height
-        });
-      }
-      var w = (0, _DataUtils.interpolate)(0, entry.width, t);
-      var x = (0, _DataUtils.interpolate)(entry.stackedBarStart, entry.x, t);
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        width: w,
-        x
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousRectanglesRef.current = stepData !== null && stepData !== void 0 ? stepData : null;
-    }
-    if (stepData == null) {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {
-      props: props,
-      data: stepData
-    }));
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderRectangles(props) {
-  var previousRectanglesRef = (0, _react.useRef)(null);
-  return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {
-    previousRectanglesRef: previousRectanglesRef,
-    props: props
-  });
-}
-var defaultMinPointSize = 0;
-var errorBarDataPointFormatter = (dataPoint, dataKey) => {
-  /**
-   * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.
-   * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].
-   * */
-  var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;
-  return {
-    x: dataPoint.x,
-    y: dataPoint.y,
-    value,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: (0, _ChartUtils.getValueByDataKey)(dataPoint, dataKey)
-  };
-};
-class BarWithState extends _react.PureComponent {
-  render() {
-    var {
-      hide,
-      data,
-      dataKey,
-      className,
-      xAxisId,
-      yAxisId,
-      needClip,
-      background,
-      id
-    } = this.props;
-    if (hide || data == null) {
-      return null;
-    }
-    var layerClass = (0, _clsx.clsx)('recharts-bar', className);
-    var clipPathId = id;
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: layerClass,
-      id: id
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(_GraphicalItemClipPath.GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    })), /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: "recharts-bar-rectangles",
-      clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined
-    }, /*#__PURE__*/React.createElement(BarBackground, {
-      data: data,
-      dataKey: dataKey,
-      background: background,
-      allOtherBarProps: this.props
-    }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));
-  }
-}
-var defaultBarProps = exports.defaultBarProps = {
-  activeBar: false,
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'ease',
-  background: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  minPointSize: defaultMinPointSize,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.bar
-};
-function BarImpl(props) {
-  var {
-    xAxisId,
-    yAxisId,
-    hide,
-    legendType,
-    minPointSize,
-    activeBar,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    isAnimationActive
-  } = props;
-  var {
-    needClip
-  } = (0, _GraphicalItemClipPath.useNeedsClip)(xAxisId, yAxisId);
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var cells = (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell);
-  var rects = (0, _hooks.useAppSelector)(state => (0, _barSelectors.selectBarRectangles)(state, props.id, isPanorama, cells));
-  if (layout !== 'vertical' && layout !== 'horizontal') {
-    return null;
-  }
-  var errorBarOffset;
-  var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];
-  if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {
-    errorBarOffset = 0;
-  } else {
-    errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;
-  }
-  return /*#__PURE__*/React.createElement(_ErrorBarContext.SetErrorBarContext, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    data: rects,
-    dataPointFormatter: errorBarDataPointFormatter,
-    errorBarOffset: errorBarOffset
-  }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {
-    layout: layout,
-    needClip: needClip,
-    data: rects,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    hide: hide,
-    legendType: legendType,
-    minPointSize: minPointSize,
-    activeBar: activeBar,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive
-  })));
-}
-function computeBarRectangles(_ref6) {
-  var {
-    layout,
-    barSettings: {
-      dataKey,
-      minPointSize: minPointSizeProp
-    },
-    pos,
-    bandSize,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    stackedData,
-    displayedData,
-    offset,
-    cells,
-    parentViewBox,
-    dataStartIndex
-  } = _ref6;
-  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
-  // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it
-  var stackedDomain = stackedData ? numericAxis.scale.domain() : null;
-  var baseValue = (0, _ChartUtils.getBaseValueOfBar)({
-    numericAxis
-  });
-  var stackedBarStart = numericAxis.scale.map(baseValue);
-  return displayedData.map((entry, index) => {
-    var value, x, y, width, height, background;
-    if (stackedData) {
-      // Use dataStartIndex to access the correct element in the full stackedData array
-      var untruncatedValue = stackedData[index + dataStartIndex];
-      if (untruncatedValue == null) {
-        return null;
-      }
-      value = (0, _ChartUtils.truncateByDomain)(untruncatedValue, stackedDomain);
-    } else {
-      value = (0, _ChartUtils.getValueByDataKey)(entry, dataKey);
-      if (!Array.isArray(value)) {
-        value = [baseValue, value];
-      }
-    }
-    var minPointSize = (0, _BarUtils.minPointSizeCallback)(minPointSizeProp, defaultMinPointSize)(value[1], index);
-    if (layout === 'horizontal') {
-      var _ref7;
-      var baseValueScale = yAxis.scale.map(value[0]);
-      var currentValueScale = yAxis.scale.map(value[1]);
-      if (baseValueScale == null || currentValueScale == null) {
-        return null;
-      }
-      x = (0, _ChartUtils.getCateCoordinateOfBar)({
-        axis: xAxis,
-        ticks: xAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      y = (_ref7 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref7 !== void 0 ? _ref7 : undefined;
-      width = pos.size;
-      var computedHeight = baseValueScale - currentValueScale;
-      height = (0, _DataUtils.isNan)(computedHeight) ? 0 : computedHeight;
-      background = {
-        x,
-        y: offset.top,
-        width,
-        height: offset.height
-      };
-      if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {
-        var delta = (0, _DataUtils.mathSign)(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));
-        y -= delta;
-        height += delta;
-      }
-    } else {
-      var _baseValueScale = xAxis.scale.map(value[0]);
-      var _currentValueScale = xAxis.scale.map(value[1]);
-      if (_baseValueScale == null || _currentValueScale == null) {
-        return null;
-      }
-      x = _baseValueScale;
-      y = (0, _ChartUtils.getCateCoordinateOfBar)({
-        axis: yAxis,
-        ticks: yAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      width = _currentValueScale - _baseValueScale;
-      height = pos.size;
-      background = {
-        x: offset.left,
-        y,
-        width: offset.width,
-        height
-      };
-      if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {
-        var _delta = (0, _DataUtils.mathSign)(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));
-        width += _delta;
-      }
-    }
-    if (x == null || y == null || width == null || height == null) {
-      return null;
-    }
-    var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {
-      stackedBarStart,
-      x,
-      y,
-      width,
-      height,
-      value: stackedData ? value : value[1],
-      payload: entry,
-      background,
-      tooltipPosition: {
-        x: x + width / 2,
-        y: y + height / 2
-      },
-      parentViewBox
-    }, cells && cells[index] && cells[index].props);
-    return barRectangleItem;
-  }).filter(Boolean);
-}
-function BarFn(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultBarProps);
-  // stackId may arrive from props or from BarStack context
-  var stackId = (0, _BarStack.useStackId)(props.stackId);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "bar"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetLegendPayload.SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromBarData(props)
-  }), /*#__PURE__*/React.createElement(SetBarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(_SetGraphicalItem.SetCartesianGraphicalItem, {
-    type: "bar",
-    id: id
-    // Bar does not allow setting data directly on the graphical item (why?)
-    ,
-    data: undefined,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    dataKey: props.dataKey,
-    stackId: stackId,
-    hide: props.hide,
-    barSize: props.barSize,
-    minPointSize: props.minPointSize,
-    maxBarSize: props.maxBarSize,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {
-    id: id
-  })))));
-}
-
-/**
- * @provides ErrorBarContext
- * @provides LabelListContext
- * @provides CellReader
- * @consumes CartesianChartContext
- * @consumes BarStackContext
- */
-var Bar = exports.Bar = /*#__PURE__*/React.memo(BarFn, _propsAreEqual.propsAreEqual);
-Bar.displayName = 'Bar';
Index: de_modules/recharts/lib/cartesian/BarStack.js
===================================================================
--- node_modules/recharts/lib/cartesian/BarStack.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useStackId = exports.useBarStackClipPathUrl = exports.defaultBarStackProps = exports.BarStackClipLayer = exports.BarStack = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _ChartUtils = require("../util/ChartUtils");
-var _useUniqueId = require("../util/useUniqueId");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _hooks = require("../state/hooks");
-var _barStackSelectors = require("../state/selectors/barStackSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _Layer = require("../container/Layer");
-var _Rectangle = require("../shape/Rectangle");
-var _propsAreEqual = require("../util/propsAreEqual");
-var _excluded = ["index"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var BarStackContext = /*#__PURE__*/(0, _react.createContext)(undefined);
-
-/**
- * Hook to resolve the stack ID for a Bar component.
- * If a stack ID is provided via props, it is used directly.
- * Otherwise, this will read stack ID from BarStack context if available.
- * If both are undefined, it returns undefined.
- * @param childStackId
- */
-var useStackId = childStackId => {
-  var stackSettings = (0, _react.useContext)(BarStackContext);
-  if (stackSettings != null) {
-    return stackSettings.stackId;
-  }
-  if (childStackId == null) {
-    return undefined;
-  }
-  return (0, _ChartUtils.getNormalizedStackId)(childStackId);
-};
-exports.useStackId = useStackId;
-var defaultBarStackProps = exports.defaultBarStackProps = {
-  radius: 0
-};
-var getClipPathId = (stackId, index) => {
-  return "recharts-bar-stack-clip-path-".concat(stackId, "-").concat(index);
-};
-var useBarStackClipPathUrl = index => {
-  var barStackContext = (0, _react.useContext)(BarStackContext);
-  if (barStackContext == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = barStackContext;
-  return "url(#".concat(getClipPathId(stackId, index), ")");
-};
-exports.useBarStackClipPathUrl = useBarStackClipPathUrl;
-var BarStackClipLayer = _ref => {
-  var {
-      index
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var clipPathUrl = useBarStackClipPathUrl(index);
-  return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-    className: "recharts-bar-stack-layer",
-    clipPath: clipPathUrl
-  }, rest));
-};
-
-/**
- * This React component will render a clipPath that the individual bars in the stack will reference
- * to achieve rounded corners for the entire stack.
- */
-exports.BarStackClipLayer = BarStackClipLayer;
-var BarStackClipPath = _ref2 => {
-  var {
-    stackId,
-    radius
-  } = _ref2;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var positions = (0, _hooks.useAppSelector)(state => (0, _barStackSelectors.selectStackRects)(state, stackId, isPanorama));
-  if (positions == null || positions.length === 0) {
-    return null;
-  }
-  /*
-   * Render one clipPath per rectangle in the stack.
-   * Each rectangle corresponds to one data entry in the chart.
-   */
-  return /*#__PURE__*/React.createElement("defs", null, positions.map((pos, index) => {
-    if (pos == null) {
-      return null;
-    }
-    var clipPathId = getClipPathId(stackId, index);
-    return /*#__PURE__*/React.createElement("clipPath", {
-      key: clipPathId,
-      id: clipPathId
-    }, /*#__PURE__*/React.createElement(_Rectangle.Rectangle, {
-      isAnimationActive: false,
-      isUpdateAnimationActive: false,
-      x: pos.x,
-      y: pos.y,
-      width: pos.width,
-      height: pos.height,
-      radius: radius
-    }));
-  }));
-};
-var BarStackImpl = props => {
-  var resolvedStackId = (0, _useUniqueId.useUniqueId)('recharts-bar-stack', (0, _ChartUtils.getNormalizedStackId)(props.stackId));
-  var {
-    children,
-    radius
-  } = (0, _resolveDefaultProps.resolveDefaultProps)(props, defaultBarStackProps);
-  var context = (0, _react.useMemo)(() => ({
-    stackId: resolvedStackId,
-    radius
-  }), [resolvedStackId, radius]);
-  return /*#__PURE__*/React.createElement(BarStackContext.Provider, {
-    value: context
-  }, /*#__PURE__*/React.createElement(BarStackClipPath, {
-    stackId: resolvedStackId,
-    radius: radius
-  }), children);
-};
-
-/**
- * @provides BarStackContext
- * @since 3.6
- */
-var BarStack = exports.BarStack = /*#__PURE__*/React.memo(BarStackImpl, _propsAreEqual.propsAreEqual);
Index: de_modules/recharts/lib/cartesian/Brush.js
===================================================================
--- node_modules/recharts/lib/cartesian/Brush.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,910 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Brush = Brush;
-exports.defaultBrushProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _d3Scale = require("victory-vendor/d3-scale");
-var _range = _interopRequireDefault(require("es-toolkit/compat/range"));
-var _Layer = require("../container/Layer");
-var _Text = require("../component/Text");
-var _ChartUtils = require("../util/ChartUtils");
-var _DataUtils = require("../util/DataUtils");
-var _CssPrefixUtils = require("../util/CssPrefixUtils");
-var _chartDataContext = require("../context/chartDataContext");
-var _brushUpdateContext = require("../context/brushUpdateContext");
-var _hooks = require("../state/hooks");
-var _chartDataSlice = require("../state/chartDataSlice");
-var _brushSlice = require("../state/brushSlice");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _brushSelectors = require("../state/selectors/brushSelectors");
-var _useChartSynchronisation = require("../synchronisation/useChartSynchronisation");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-// Why is this tickFormatter different from the other TickFormatters? This one allows to return numbers too for some reason.
-
-function DefaultTraveller(props) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    stroke
-  } = props;
-  var lineY = Math.floor(y + height / 2) - 1;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    width: width,
-    height: height,
-    fill: stroke,
-    stroke: "none"
-  }), /*#__PURE__*/React.createElement("line", {
-    x1: x + 1,
-    y1: lineY,
-    x2: x + width - 1,
-    y2: lineY,
-    fill: "none",
-    stroke: "#fff"
-  }), /*#__PURE__*/React.createElement("line", {
-    x1: x + 1,
-    y1: lineY + 2,
-    x2: x + width - 1,
-    y2: lineY + 2,
-    fill: "none",
-    stroke: "#fff"
-  }));
-}
-function Traveller(props) {
-  var {
-    travellerProps,
-    travellerType
-  } = props;
-  if (/*#__PURE__*/React.isValidElement(travellerType)) {
-    // @ts-expect-error element cloning disagrees with the types (and it should)
-    return /*#__PURE__*/React.cloneElement(travellerType, travellerProps);
-  }
-  if (typeof travellerType === 'function') {
-    return travellerType(travellerProps);
-  }
-  return /*#__PURE__*/React.createElement(DefaultTraveller, travellerProps);
-}
-function getNameFromUnknown(value) {
-  if ((0, _DataUtils.isNotNil)(value) && typeof value === 'object' && 'name' in value && typeof value.name === 'string') {
-    return value.name;
-  }
-  return undefined;
-}
-function getAriaLabel(data, startIndex, endIndex) {
-  var start = getNameFromUnknown(data[startIndex]);
-  var end = getNameFromUnknown(data[endIndex]);
-  return "Min value: ".concat(start, ", Max value: ").concat(end);
-}
-function TravellerLayer(_ref) {
-  var {
-    otherProps,
-    travellerX,
-    id,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseDown,
-    onTouchStart,
-    onTravellerMoveKeyboard,
-    onFocus,
-    onBlur
-  } = _ref;
-  var {
-    y,
-    x: xFromProps,
-    travellerWidth,
-    height,
-    traveller,
-    ariaLabel,
-    data,
-    startIndex,
-    endIndex
-  } = otherProps;
-  var x = Math.max(travellerX, xFromProps);
-  var travellerProps = _objectSpread(_objectSpread({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(otherProps)), {}, {
-    x,
-    y,
-    width: travellerWidth,
-    height
-  });
-  var ariaLabelBrush = ariaLabel || getAriaLabel(data, startIndex, endIndex);
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    tabIndex: 0,
-    role: "slider",
-    "aria-label": ariaLabelBrush,
-    "aria-valuenow": travellerX,
-    className: "recharts-brush-traveller",
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onMouseDown: onMouseDown,
-    onTouchStart: onTouchStart,
-    onKeyDown: e => {
-      if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {
-        return;
-      }
-      e.preventDefault();
-      e.stopPropagation();
-      onTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);
-    },
-    onFocus: onFocus,
-    onBlur: onBlur,
-    style: {
-      cursor: 'col-resize'
-    }
-  }, /*#__PURE__*/React.createElement(Traveller, {
-    travellerType: traveller,
-    travellerProps: travellerProps
-  }));
-}
-/*
- * This one cannot be a React Component because React is not happy with it returning only string | number.
- * React wants a full React.JSX.Element but that is not compatible with Text component.
- */
-function getTextOfTick(props) {
-  var {
-    index,
-    data,
-    tickFormatter,
-    dataKey
-  } = props;
-  // @ts-expect-error getValueByDataKey does not validate the output type
-  var text = (0, _ChartUtils.getValueByDataKey)(data[index], dataKey, index);
-  return typeof tickFormatter === 'function' ? tickFormatter(text, index) : text;
-}
-function getIndexInRange(valueRange, x) {
-  var len = valueRange.length;
-  var start = 0;
-  var end = len - 1;
-  while (end - start > 1) {
-    var middle = Math.floor((start + end) / 2);
-    var middleValue = valueRange[middle];
-    if (middleValue != null && middleValue > x) {
-      end = middle;
-    } else {
-      start = middle;
-    }
-  }
-  var endValue = valueRange[end];
-  return endValue != null && x >= endValue ? end : start;
-}
-function getIndex(_ref2) {
-  var {
-    startX,
-    endX,
-    scaleValues,
-    gap,
-    data
-  } = _ref2;
-  var lastIndex = data.length - 1;
-  var min = Math.min(startX, endX);
-  var max = Math.max(startX, endX);
-  var minIndex = getIndexInRange(scaleValues, min);
-  var maxIndex = getIndexInRange(scaleValues, max);
-  return {
-    startIndex: minIndex - minIndex % gap,
-    endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap
-  };
-}
-function Background(_ref3) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    fill,
-    stroke
-  } = _ref3;
-  return /*#__PURE__*/React.createElement("rect", {
-    stroke: stroke,
-    fill: fill,
-    x: x,
-    y: y,
-    width: width,
-    height: height
-  });
-}
-function BrushText(_ref4) {
-  var {
-    startIndex,
-    endIndex,
-    y,
-    height,
-    travellerWidth,
-    stroke,
-    tickFormatter,
-    dataKey,
-    data,
-    startX,
-    endX
-  } = _ref4;
-  var offset = 5;
-  var attrs = {
-    pointerEvents: 'none',
-    fill: stroke
-  };
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-brush-texts"
-  }, /*#__PURE__*/React.createElement(_Text.Text, _extends({
-    textAnchor: "end",
-    verticalAnchor: "middle",
-    x: Math.min(startX, endX) - offset,
-    y: y + height / 2
-  }, attrs), getTextOfTick({
-    index: startIndex,
-    tickFormatter,
-    dataKey,
-    data
-  })), /*#__PURE__*/React.createElement(_Text.Text, _extends({
-    textAnchor: "start",
-    verticalAnchor: "middle",
-    x: Math.max(startX, endX) + travellerWidth + offset,
-    y: y + height / 2
-  }, attrs), getTextOfTick({
-    index: endIndex,
-    tickFormatter,
-    dataKey,
-    data
-  })));
-}
-function Slide(_ref5) {
-  var {
-    y,
-    height,
-    stroke,
-    travellerWidth,
-    startX,
-    endX,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseDown,
-    onTouchStart
-  } = _ref5;
-  var x = Math.min(startX, endX) + travellerWidth;
-  var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);
-  return /*#__PURE__*/React.createElement("rect", {
-    className: "recharts-brush-slide",
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onMouseDown: onMouseDown,
-    onTouchStart: onTouchStart,
-    style: {
-      cursor: 'move'
-    },
-    stroke: "none",
-    fill: stroke,
-    fillOpacity: 0.2,
-    x: x,
-    y: y,
-    width: width,
-    height: height
-  });
-}
-function Panorama(_ref6) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    data,
-    children,
-    padding
-  } = _ref6;
-  var isPanoramic = React.Children.count(children) === 1;
-  if (!isPanoramic) {
-    return null;
-  }
-  var chartElement = _react.Children.only(children);
-  if (!chartElement) {
-    return null;
-  }
-  return /*#__PURE__*/React.cloneElement(chartElement, {
-    x,
-    y,
-    width,
-    height,
-    margin: padding,
-    compact: true,
-    data
-  });
-}
-var createScale = _ref7 => {
-  var {
-    data,
-    startIndex,
-    endIndex,
-    x,
-    width,
-    travellerWidth
-  } = _ref7;
-  if (!data || !data.length) {
-    return {};
-  }
-  var len = data.length;
-  var scale = (0, _d3Scale.scalePoint)().domain((0, _range.default)(0, len)).range([x, x + width - travellerWidth]);
-  var scaleValues = scale.domain().map(entry => scale(entry)).filter(_DataUtils.isNotNil);
-  return {
-    isTextActive: false,
-    isSlideMoving: false,
-    isTravellerMoving: false,
-    isTravellerFocused: false,
-    startX: scale(startIndex),
-    endX: scale(endIndex),
-    scale,
-    scaleValues
-  };
-};
-var isTouch = e => e.changedTouches && !!e.changedTouches.length;
-class BrushWithState extends _react.PureComponent {
-  constructor(props) {
-    super(props);
-    _defineProperty(this, "handleDrag", e => {
-      if (this.leaveTimer) {
-        clearTimeout(this.leaveTimer);
-        this.leaveTimer = null;
-      }
-      if (this.state.isTravellerMoving) {
-        this.handleTravellerMove(e);
-      } else if (this.state.isSlideMoving) {
-        this.handleSlideDrag(e);
-      }
-    });
-    _defineProperty(this, "handleTouchMove", e => {
-      var _e$changedTouches;
-      var touch = (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0];
-      if (touch != null) {
-        this.handleDrag(touch);
-      }
-    });
-    _defineProperty(this, "handleDragEnd", () => {
-      this.setState({
-        isTravellerMoving: false,
-        isSlideMoving: false
-      }, () => {
-        var {
-          endIndex,
-          onDragEnd,
-          startIndex
-        } = this.props;
-        onDragEnd === null || onDragEnd === void 0 || onDragEnd({
-          endIndex,
-          startIndex
-        });
-      });
-      this.detachDragEndListener();
-    });
-    _defineProperty(this, "handleLeaveWrapper", () => {
-      if (this.state.isTravellerMoving || this.state.isSlideMoving) {
-        this.leaveTimer = window.setTimeout(this.handleDragEnd, this.props.leaveTimeOut);
-      }
-    });
-    _defineProperty(this, "handleEnterSlideOrTraveller", () => {
-      this.setState({
-        isTextActive: true
-      });
-    });
-    _defineProperty(this, "handleLeaveSlideOrTraveller", () => {
-      this.setState({
-        isTextActive: false
-      });
-    });
-    _defineProperty(this, "handleSlideDragStart", e => {
-      var event = isTouch(e) ? e.changedTouches[0] : e;
-      if (event == null) {
-        return;
-      }
-      this.setState({
-        isTravellerMoving: false,
-        isSlideMoving: true,
-        slideMoveStartX: event.pageX
-      });
-      this.attachDragEndListener();
-    });
-    _defineProperty(this, "handleTravellerMoveKeyboard", (direction, id) => {
-      var {
-        data,
-        gap,
-        startIndex,
-        endIndex
-      } = this.props;
-      // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].
-      var {
-        scaleValues,
-        startX,
-        endX
-      } = this.state;
-      if (scaleValues == null) {
-        return;
-      }
-
-      // unless we search for the closest scaleValue to the current coordinate
-      // we need to move travelers via index when using the keyboard
-      var currentIndex = -1;
-      if (id === 'startX') {
-        currentIndex = startIndex;
-      } else if (id === 'endX') {
-        currentIndex = endIndex;
-      }
-      if (currentIndex < 0 || currentIndex >= data.length) {
-        return;
-      }
-      var newIndex = currentIndex + direction;
-      if (newIndex === -1 || newIndex >= scaleValues.length) {
-        return;
-      }
-      var newScaleValue = scaleValues[newIndex];
-      if (newScaleValue == null) {
-        return;
-      }
-
-      // Prevent travellers from being on top of each other or overlapping
-      if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {
-        return;
-      }
-      this.setState(
-      // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React
-      {
-        [id]: newScaleValue
-      }, () => {
-        this.props.onChange(getIndex({
-          startX: this.state.startX,
-          endX: this.state.endX,
-          data,
-          gap,
-          scaleValues
-        }));
-      });
-    });
-    this.travellerDragStartHandlers = {
-      startX: this.handleTravellerDragStart.bind(this, 'startX'),
-      endX: this.handleTravellerDragStart.bind(this, 'endX')
-    };
-    this.state = {
-      brushMoveStartX: 0,
-      movingTravellerId: undefined,
-      endX: 0,
-      startX: 0,
-      slideMoveStartX: 0
-    };
-  }
-  static getDerivedStateFromProps(nextProps, prevState) {
-    var {
-      data,
-      width,
-      x,
-      travellerWidth,
-      startIndex,
-      endIndex,
-      startIndexControlledFromProps,
-      endIndexControlledFromProps
-    } = nextProps;
-    if (data !== prevState.prevData) {
-      return _objectSpread({
-        prevData: data,
-        prevTravellerWidth: travellerWidth,
-        prevX: x,
-        prevWidth: width
-      }, data && data.length ? createScale({
-        data,
-        width,
-        x,
-        travellerWidth,
-        startIndex,
-        endIndex
-      }) : {
-        scale: undefined,
-        scaleValues: undefined
-      });
-    }
-    var prevScale = prevState.scale;
-    if (prevScale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {
-      prevScale.range([x, x + width - travellerWidth]);
-      var scaleValues = prevScale.domain().map(entry => prevScale(entry)).filter(value => value != null);
-      return {
-        prevData: data,
-        prevTravellerWidth: travellerWidth,
-        prevX: x,
-        prevWidth: width,
-        startX: prevScale(nextProps.startIndex),
-        endX: prevScale(nextProps.endIndex),
-        scaleValues
-      };
-    }
-    if (prevState.scale && !prevState.isSlideMoving && !prevState.isTravellerMoving && !prevState.isTravellerFocused && !prevState.isTextActive) {
-      /*
-       * If the startIndex or endIndex are controlled from the outside,
-       * we need to keep the startX and end up to date.
-       * Also we do not want to do that while user is interacting in the brush,
-       * because this will trigger re-render and interrupt the drag&drop.
-       */
-      if (startIndexControlledFromProps != null && prevState.prevStartIndexControlledFromProps !== startIndexControlledFromProps) {
-        return {
-          startX: prevState.scale(startIndexControlledFromProps),
-          prevStartIndexControlledFromProps: startIndexControlledFromProps
-        };
-      }
-      if (endIndexControlledFromProps != null && prevState.prevEndIndexControlledFromProps !== endIndexControlledFromProps) {
-        return {
-          endX: prevState.scale(endIndexControlledFromProps),
-          prevEndIndexControlledFromProps: endIndexControlledFromProps
-        };
-      }
-    }
-    return null;
-  }
-  componentWillUnmount() {
-    if (this.leaveTimer) {
-      clearTimeout(this.leaveTimer);
-      this.leaveTimer = null;
-    }
-    this.detachDragEndListener();
-  }
-  attachDragEndListener() {
-    window.addEventListener('mouseup', this.handleDragEnd, true);
-    window.addEventListener('touchend', this.handleDragEnd, true);
-    window.addEventListener('mousemove', this.handleDrag, true);
-  }
-  detachDragEndListener() {
-    window.removeEventListener('mouseup', this.handleDragEnd, true);
-    window.removeEventListener('touchend', this.handleDragEnd, true);
-    window.removeEventListener('mousemove', this.handleDrag, true);
-  }
-  handleSlideDrag(e) {
-    var {
-      slideMoveStartX,
-      startX,
-      endX,
-      scaleValues
-    } = this.state;
-    if (scaleValues == null) {
-      return;
-    }
-    var {
-      x,
-      width,
-      travellerWidth,
-      startIndex,
-      endIndex,
-      onChange,
-      data,
-      gap
-    } = this.props;
-    var delta = e.pageX - slideMoveStartX;
-    if (delta > 0) {
-      delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);
-    } else if (delta < 0) {
-      delta = Math.max(delta, x - startX, x - endX);
-    }
-    var newIndex = getIndex({
-      startX: startX + delta,
-      endX: endX + delta,
-      data,
-      gap,
-      scaleValues
-    });
-    if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {
-      onChange(newIndex);
-    }
-    this.setState({
-      startX: startX + delta,
-      endX: endX + delta,
-      slideMoveStartX: e.pageX
-    });
-  }
-  handleTravellerDragStart(id, e) {
-    var event = isTouch(e) ? e.changedTouches[0] : e;
-    if (event == null) {
-      return;
-    }
-    this.setState({
-      isSlideMoving: false,
-      isTravellerMoving: true,
-      movingTravellerId: id,
-      brushMoveStartX: event.pageX
-    });
-    this.attachDragEndListener();
-  }
-  handleTravellerMove(e) {
-    var {
-      brushMoveStartX,
-      movingTravellerId,
-      endX,
-      startX,
-      scaleValues
-    } = this.state;
-    if (movingTravellerId == null || scaleValues == null) {
-      return;
-    }
-    var prevValue = this.state[movingTravellerId];
-    var {
-      x,
-      width,
-      travellerWidth,
-      onChange,
-      gap,
-      data
-    } = this.props;
-    var params = {
-      startX: this.state.startX,
-      endX: this.state.endX,
-      data,
-      gap,
-      scaleValues
-    };
-    var delta = e.pageX - brushMoveStartX;
-    if (delta > 0) {
-      delta = Math.min(delta, x + width - travellerWidth - prevValue);
-    } else if (delta < 0) {
-      delta = Math.max(delta, x - prevValue);
-    }
-    params[movingTravellerId] = prevValue + delta;
-    var newIndex = getIndex(params);
-    var {
-      startIndex,
-      endIndex
-    } = newIndex;
-    var isFullGap = () => {
-      var lastIndex = data.length - 1;
-      if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {
-        return true;
-      }
-      return false;
-    };
-    this.setState(
-    // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React
-    {
-      [movingTravellerId]: prevValue + delta,
-      brushMoveStartX: e.pageX
-    }, () => {
-      if (onChange) {
-        if (isFullGap()) {
-          onChange(newIndex);
-        }
-      }
-    });
-  }
-  render() {
-    var {
-      data,
-      className,
-      children,
-      x,
-      y,
-      dy,
-      width,
-      height,
-      alwaysShowText,
-      fill,
-      stroke,
-      startIndex,
-      endIndex,
-      travellerWidth,
-      tickFormatter,
-      dataKey,
-      padding
-    } = this.props;
-    var {
-      startX,
-      endX,
-      isTextActive,
-      isSlideMoving,
-      isTravellerMoving,
-      isTravellerFocused
-    } = this.state;
-    if (!data || !data.length || !(0, _DataUtils.isNumber)(x) || !(0, _DataUtils.isNumber)(y) || !(0, _DataUtils.isNumber)(width) || !(0, _DataUtils.isNumber)(height) || width <= 0 || height <= 0) {
-      return null;
-    }
-    var layerClass = (0, _clsx.clsx)('recharts-brush', className);
-    var style = (0, _CssPrefixUtils.generatePrefixStyle)('userSelect', 'none');
-    var calculatedY = y + (dy !== null && dy !== void 0 ? dy : 0);
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: layerClass,
-      onMouseLeave: this.handleLeaveWrapper,
-      onTouchMove: this.handleTouchMove,
-      style: style
-    }, /*#__PURE__*/React.createElement(Background, {
-      x: x,
-      y: calculatedY,
-      width: width,
-      height: height,
-      fill: fill,
-      stroke: stroke
-    }), /*#__PURE__*/React.createElement(_PanoramaContext.PanoramaContextProvider, null, /*#__PURE__*/React.createElement(Panorama, {
-      x: x,
-      y: calculatedY,
-      width: width,
-      height: height,
-      data: data,
-      padding: padding
-    }, children)), /*#__PURE__*/React.createElement(Slide, {
-      y: calculatedY,
-      height: height,
-      stroke: stroke,
-      travellerWidth: travellerWidth,
-      startX: startX,
-      endX: endX,
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.handleSlideDragStart,
-      onTouchStart: this.handleSlideDragStart
-    }), /*#__PURE__*/React.createElement(TravellerLayer, {
-      travellerX: startX,
-      id: "startX",
-      otherProps: _objectSpread(_objectSpread({}, this.props), {}, {
-        y: calculatedY
-      }),
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.travellerDragStartHandlers.startX,
-      onTouchStart: this.travellerDragStartHandlers.startX,
-      onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,
-      onFocus: () => {
-        this.setState({
-          isTravellerFocused: true
-        });
-      },
-      onBlur: () => {
-        this.setState({
-          isTravellerFocused: false
-        });
-      }
-    }), /*#__PURE__*/React.createElement(TravellerLayer, {
-      travellerX: endX,
-      id: "endX",
-      otherProps: _objectSpread(_objectSpread({}, this.props), {}, {
-        y: calculatedY
-      }),
-      onMouseEnter: this.handleEnterSlideOrTraveller,
-      onMouseLeave: this.handleLeaveSlideOrTraveller,
-      onMouseDown: this.travellerDragStartHandlers.endX,
-      onTouchStart: this.travellerDragStartHandlers.endX,
-      onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,
-      onFocus: () => {
-        this.setState({
-          isTravellerFocused: true
-        });
-      },
-      onBlur: () => {
-        this.setState({
-          isTravellerFocused: false
-        });
-      }
-    }), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && /*#__PURE__*/React.createElement(BrushText, {
-      startIndex: startIndex,
-      endIndex: endIndex,
-      y: calculatedY,
-      height: height,
-      travellerWidth: travellerWidth,
-      stroke: stroke,
-      tickFormatter: tickFormatter,
-      dataKey: dataKey,
-      data: data,
-      startX: startX,
-      endX: endX
-    }));
-  }
-}
-function BrushInternal(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var chartData = (0, _chartDataContext.useChartData)();
-  var dataIndexes = (0, _chartDataContext.useDataIndex)();
-  var onChangeFromContext = (0, _react.useContext)(_brushUpdateContext.BrushUpdateDispatchContext);
-  var onChangeFromProps = props.onChange;
-  var {
-    startIndex: startIndexFromProps,
-    endIndex: endIndexFromProps
-  } = props;
-  (0, _react.useEffect)(() => {
-    // start and end index can be controlled from props, and we need them to stay up-to-date in the Redux state too
-    dispatch((0, _chartDataSlice.setDataStartEndIndexes)({
-      startIndex: startIndexFromProps,
-      endIndex: endIndexFromProps
-    }));
-  }, [dispatch, endIndexFromProps, startIndexFromProps]);
-  (0, _useChartSynchronisation.useBrushChartSynchronisation)();
-  var onChange = (0, _react.useCallback)(nextState => {
-    if (dataIndexes == null) {
-      return;
-    }
-    var {
-      startIndex,
-      endIndex
-    } = dataIndexes;
-    if (nextState.startIndex !== startIndex || nextState.endIndex !== endIndex) {
-      onChangeFromContext === null || onChangeFromContext === void 0 || onChangeFromContext(nextState);
-      onChangeFromProps === null || onChangeFromProps === void 0 || onChangeFromProps(nextState);
-      dispatch((0, _chartDataSlice.setDataStartEndIndexes)(nextState));
-    }
-  }, [onChangeFromProps, onChangeFromContext, dispatch, dataIndexes]);
-  var brushDimensions = (0, _hooks.useAppSelector)(_brushSelectors.selectBrushDimensions);
-  if (brushDimensions == null || dataIndexes == null || chartData == null || !chartData.length) {
-    return null;
-  }
-  var {
-    startIndex,
-    endIndex
-  } = dataIndexes;
-  var {
-    x,
-    y,
-    width
-  } = brushDimensions;
-  var contextProperties = {
-    data: chartData,
-    x,
-    y,
-    width,
-    startIndex,
-    endIndex,
-    onChange
-  };
-  return /*#__PURE__*/React.createElement(BrushWithState, _extends({}, props, contextProperties, {
-    startIndexControlledFromProps: startIndexFromProps !== null && startIndexFromProps !== void 0 ? startIndexFromProps : undefined,
-    endIndexControlledFromProps: endIndexFromProps !== null && endIndexFromProps !== void 0 ? endIndexFromProps : undefined
-  }));
-}
-function BrushSettingsDispatcher(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _brushSlice.setBrushSettings)(props));
-    return () => {
-      dispatch((0, _brushSlice.setBrushSettings)(null));
-    };
-  }, [dispatch, props]);
-  return null;
-}
-var defaultBrushProps = exports.defaultBrushProps = {
-  height: 40,
-  travellerWidth: 5,
-  gap: 1,
-  fill: '#fff',
-  stroke: '#666',
-  padding: {
-    top: 1,
-    right: 1,
-    bottom: 1,
-    left: 1
-  },
-  leaveTimeOut: 1000,
-  alwaysShowText: false
-};
-
-/**
- * Renders a scrollbar that allows the user to zoom and pan in the chart along its XAxis.
- * It also allows you to render a small overview of the chart inside the brush that is always visible
- * and shows the full data set so that the user can see where they are zoomed in.
- *
- * If a chart is synchronized with other charts using the `syncId` prop on the chart,
- * the brush will also synchronize the zooming and panning between all synchronized charts.
- *
- * @see {@link https://recharts.github.io/en-US/examples/BrushBarChart/ BarChart with Brush}
- * @see {@link https://recharts.github.io/en-US/examples/SynchronizedLineChart/ Synchronized Brush}
- *
- * @consumes CartesianChartContext
- */
-function Brush(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultBrushProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BrushSettingsDispatcher, {
-    height: props.height,
-    x: props.x,
-    y: props.y,
-    width: props.width,
-    padding: props.padding
-  }), /*#__PURE__*/React.createElement(BrushInternal, props));
-}
-Brush.displayName = 'Brush';
Index: de_modules/recharts/lib/cartesian/CartesianAxis.js
===================================================================
--- node_modules/recharts/lib/cartesian/CartesianAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,453 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultCartesianAxisProps = exports.CartesianAxis = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Text = require("../component/Text");
-var _Label = require("../component/Label");
-var _DataUtils = require("../util/DataUtils");
-var _types = require("../util/types");
-var _getTicks = require("./getTicks");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _YAxisUtils = require("../util/YAxisUtils");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _getClassNameFromUnknown = require("../util/getClassNameFromUnknown");
-var _excluded = ["axisLine", "width", "height", "className", "hide", "ticks", "axisType"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
- * @fileOverview Cartesian Axis
- */
-/** The orientation of the axis in correspondence to the chart */
-
-/** A unit to be appended to a value */
-
-/** The formatter function of tick */
-
-var defaultCartesianAxisProps = exports.defaultCartesianAxisProps = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  viewBox: {
-    x: 0,
-    y: 0,
-    width: 0,
-    height: 0
-  },
-  // The orientation of axis
-  orientation: 'bottom',
-  // The ticks
-  ticks: [],
-  stroke: '#666',
-  tickLine: true,
-  axisLine: true,
-  tick: true,
-  mirror: false,
-  minTickGap: 5,
-  // The width or height of tick
-  tickSize: 6,
-  tickMargin: 2,
-  interval: 'preserveEnd',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.axis
-};
-
-/*
- * `viewBox` and `scale` are SVG attributes.
- * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`
- * that are completely different data shape and different purpose.
- */
-
-function AxisLine(axisLineProps) {
-  var {
-    x,
-    y,
-    width,
-    height,
-    orientation,
-    mirror,
-    axisLine,
-    otherSvgProps
-  } = axisLineProps;
-  if (!axisLine) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(axisLine)), {}, {
-    fill: 'none'
-  });
-  if (orientation === 'top' || orientation === 'bottom') {
-    var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);
-    props = _objectSpread(_objectSpread({}, props), {}, {
-      x1: x,
-      y1: y + needHeight * height,
-      x2: x + width,
-      y2: y + needHeight * height
-    });
-  } else {
-    var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);
-    props = _objectSpread(_objectSpread({}, props), {}, {
-      x1: x + needWidth * width,
-      y1: y,
-      x2: x + needWidth * width,
-      y2: y + height
-    });
-  }
-  return /*#__PURE__*/React.createElement("line", _extends({}, props, {
-    className: (0, _clsx.clsx)('recharts-cartesian-axis-line', (0, _get.default)(axisLine, 'className'))
-  }));
-}
-
-/**
- * Calculate the coordinates of endpoints in ticks.
- * @param data The data of a simple tick.
- * @param x The x-coordinate of the axis.
- * @param y The y-coordinate of the axis.
- * @param width The width of the axis.
- * @param height The height of the axis.
- * @param orientation The orientation of the axis.
- * @param tickSize The length of the tick line.
- * @param mirror If true, the ticks are mirrored.
- * @param tickMargin The margin between the tick line and the tick text.
- * @returns An object with `line` and `tick` coordinates.
- * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.
- */
-function getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {
-  var x1, x2, y1, y2, tx, ty;
-  var sign = mirror ? -1 : 1;
-  var finalTickSize = data.tickSize || tickSize;
-  var tickCoord = (0, _DataUtils.isNumber)(data.tickCoord) ? data.tickCoord : data.coordinate;
-  switch (orientation) {
-    case 'top':
-      x1 = x2 = data.coordinate;
-      y2 = y + +!mirror * height;
-      y1 = y2 - sign * finalTickSize;
-      ty = y1 - sign * tickMargin;
-      tx = tickCoord;
-      break;
-    case 'left':
-      y1 = y2 = data.coordinate;
-      x2 = x + +!mirror * width;
-      x1 = x2 - sign * finalTickSize;
-      tx = x1 - sign * tickMargin;
-      ty = tickCoord;
-      break;
-    case 'right':
-      y1 = y2 = data.coordinate;
-      x2 = x + +mirror * width;
-      x1 = x2 + sign * finalTickSize;
-      tx = x1 + sign * tickMargin;
-      ty = tickCoord;
-      break;
-    default:
-      x1 = x2 = data.coordinate;
-      y2 = y + +mirror * height;
-      y1 = y2 + sign * finalTickSize;
-      ty = y1 + sign * tickMargin;
-      tx = tickCoord;
-      break;
-  }
-  return {
-    line: {
-      x1,
-      y1,
-      x2,
-      y2
-    },
-    tick: {
-      x: tx,
-      y: ty
-    }
-  };
-}
-
-/**
- * @param orientation The orientation of the axis.
- * @param mirror If true, the ticks are mirrored.
- * @returns The text anchor of the tick.
- */
-function getTickTextAnchor(orientation, mirror) {
-  switch (orientation) {
-    case 'left':
-      return mirror ? 'start' : 'end';
-    case 'right':
-      return mirror ? 'end' : 'start';
-    default:
-      return 'middle';
-  }
-}
-
-/**
- * @param orientation The orientation of the axis.
- * @param mirror If true, the ticks are mirrored.
- * @returns The vertical text anchor of the tick.
- */
-function getTickVerticalAnchor(orientation, mirror) {
-  switch (orientation) {
-    case 'left':
-    case 'right':
-      return 'middle';
-    case 'top':
-      return mirror ? 'start' : 'end';
-    default:
-      return mirror ? 'end' : 'start';
-  }
-}
-function TickItem(props) {
-  var {
-    option,
-    tickProps,
-    value
-  } = props;
-  var tickItem;
-  var combinedClassName = (0, _clsx.clsx)(tickProps.className, 'recharts-cartesian-axis-tick-value');
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {
-      className: combinedClassName
-    }));
-  } else if (typeof option === 'function') {
-    tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {
-      className: combinedClassName
-    }));
-  } else {
-    var className = 'recharts-cartesian-axis-tick-value';
-    if (typeof option !== 'boolean') {
-      className = (0, _clsx.clsx)(className, (0, _getClassNameFromUnknown.getClassNameFromUnknown)(option));
-    }
-    tickItem = /*#__PURE__*/React.createElement(_Text.Text, _extends({}, tickProps, {
-      className: className
-    }), value);
-  }
-  return tickItem;
-}
-var Ticks = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-    ticks = [],
-    tick,
-    tickLine,
-    stroke,
-    tickFormatter,
-    unit,
-    padding,
-    tickTextProps,
-    orientation,
-    mirror,
-    x,
-    y,
-    width,
-    height,
-    tickSize,
-    tickMargin,
-    fontSize,
-    letterSpacing,
-    getTicksConfig,
-    events,
-    axisType
-  } = props;
-  // @ts-expect-error some properties are optional in props but required in getTicks
-  var finalTicks = (0, _getTicks.getTicks)(_objectSpread(_objectSpread({}, getTicksConfig), {}, {
-    ticks
-  }), fontSize, letterSpacing);
-  var textAnchor = getTickTextAnchor(orientation, mirror);
-  var verticalAnchor = getTickVerticalAnchor(orientation, mirror);
-  var axisProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(getTicksConfig);
-  var customTickProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(tick);
-  var tickLinePropsObject = {};
-  if (typeof tickLine === 'object') {
-    tickLinePropsObject = tickLine;
-  }
-  var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
-    fill: 'none'
-  }, tickLinePropsObject);
-  var tickLineCoords = finalTicks.map(entry => _objectSpread({
-    entry
-  }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));
-  var tickLines = tickLineCoords.map(_ref => {
-    var {
-      entry,
-      line: lineCoord
-    } = _ref;
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: "recharts-cartesian-axis-tick",
-      key: "tick-".concat(entry.value, "-").concat(entry.coordinate, "-").concat(entry.tickCoord)
-    }, tickLine && /*#__PURE__*/React.createElement("line", _extends({}, tickLineProps, lineCoord, {
-      className: (0, _clsx.clsx)('recharts-cartesian-axis-tick-line', (0, _get.default)(tickLine, 'className'))
-    })));
-  });
-  var tickLabels = tickLineCoords.map((_ref2, i) => {
-    var _ref3, _tickTextProps$angle;
-    var {
-      entry,
-      tick: tickCoord
-    } = _ref2;
-    // @ts-expect-error we're not checking that padding and orientation types are in sync
-    var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      verticalAnchor
-    }, axisProps), {}, {
-      textAnchor,
-      stroke: 'none',
-      fill: stroke
-    }, tickCoord), {}, {
-      index: i,
-      payload: entry,
-      visibleTicksCount: finalTicks.length,
-      tickFormatter,
-      padding
-    }, tickTextProps), {}, {
-      angle: (_ref3 = (_tickTextProps$angle = tickTextProps === null || tickTextProps === void 0 ? void 0 : tickTextProps.angle) !== null && _tickTextProps$angle !== void 0 ? _tickTextProps$angle : axisProps.angle) !== null && _ref3 !== void 0 ? _ref3 : 0
-    });
-
-    // @ts-expect-error customTickProps is contributing unknown props which we don't type properly
-    var finalTickProps = _objectSpread(_objectSpread({}, tickProps), customTickProps);
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      className: "recharts-cartesian-axis-tick-label",
-      key: "tick-label-".concat(entry.value, "-").concat(entry.coordinate, "-").concat(entry.tickCoord)
-    }, (0, _types.adaptEventsOfChild)(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {
-      option: tick,
-      tickProps: finalTickProps,
-      value: "".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')
-    }));
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-ticks recharts-".concat(axisType, "-ticks")
-  }, tickLabels.length > 0 && /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: _DefaultZIndexes.DefaultZIndexes.label
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-tick-labels recharts-".concat(axisType, "-tick-labels"),
-    ref: ref
-  }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-axis-tick-lines recharts-".concat(axisType, "-tick-lines")
-  }, tickLines));
-});
-var CartesianAxisComponent = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-      axisLine,
-      width,
-      height,
-      className,
-      hide,
-      ticks,
-      axisType
-    } = props,
-    rest = _objectWithoutProperties(props, _excluded);
-  var [fontSize, setFontSize] = (0, _react.useState)('');
-  var [letterSpacing, setLetterSpacing] = (0, _react.useState)('');
-  var tickRefs = (0, _react.useRef)(null);
-  (0, _react.useImperativeHandle)(ref, () => ({
-    getCalculatedWidth: () => {
-      var _props$labelRef;
-      return (0, _YAxisUtils.getCalculatedYAxisWidth)({
-        ticks: tickRefs.current,
-        label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,
-        labelGapWithTick: 5,
-        tickSize: props.tickSize,
-        tickMargin: props.tickMargin
-      });
-    }
-  }));
-  var layerRef = (0, _react.useCallback)(el => {
-    if (el) {
-      var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');
-      tickRefs.current = tickNodes;
-      var tick = tickNodes[0];
-      if (tick) {
-        var computedStyle = window.getComputedStyle(tick);
-        var calculatedFontSize = computedStyle.fontSize;
-        var calculatedLetterSpacing = computedStyle.letterSpacing;
-        if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {
-          setFontSize(calculatedFontSize);
-          setLetterSpacing(calculatedLetterSpacing);
-        }
-      }
-    }
-  }, [fontSize, letterSpacing]);
-  if (hide) {
-    return null;
-  }
-
-  /*
-   * This is different condition from what validateWidthHeight is doing;
-   * the CartesianAxis does allow width or height to be undefined.
-   */
-  if (width != null && width <= 0 || height != null && height <= 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-cartesian-axis', className)
-  }, /*#__PURE__*/React.createElement(AxisLine, {
-    x: props.x,
-    y: props.y,
-    width: width,
-    height: height,
-    orientation: props.orientation,
-    mirror: props.mirror,
-    axisLine: axisLine,
-    otherSvgProps: (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props)
-  }), /*#__PURE__*/React.createElement(Ticks, {
-    ref: layerRef,
-    axisType: axisType,
-    events: rest,
-    fontSize: fontSize,
-    getTicksConfig: props,
-    height: props.height,
-    letterSpacing: letterSpacing,
-    mirror: props.mirror,
-    orientation: props.orientation,
-    padding: props.padding,
-    stroke: props.stroke,
-    tick: props.tick,
-    tickFormatter: props.tickFormatter,
-    tickLine: props.tickLine,
-    tickMargin: props.tickMargin,
-    tickSize: props.tickSize,
-    tickTextProps: props.tickTextProps,
-    ticks: ticks,
-    unit: props.unit,
-    width: props.width,
-    x: props.x,
-    y: props.y
-  }), /*#__PURE__*/React.createElement(_Label.CartesianLabelContextProvider, {
-    x: props.x,
-    y: props.y,
-    width: props.width,
-    height: props.height,
-    lowerWidth: props.width,
-    upperWidth: props.width
-  }, /*#__PURE__*/React.createElement(_Label.CartesianLabelFromLabelProp, {
-    label: props.label,
-    labelRef: props.labelRef
-  }), props.children)));
-});
-
-/**
- * @deprecated
- *
- * This component is not meant to be used directly in app code.
- * Use XAxis or YAxis instead.
- *
- * Starting from Recharts v4.0 we will make this component internal only.
- */
-var CartesianAxis = exports.CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultCartesianAxisProps);
-  return /*#__PURE__*/React.createElement(CartesianAxisComponent, _extends({}, props, {
-    ref: ref
-  }));
-});
-CartesianAxis.displayName = 'CartesianAxis';
Index: de_modules/recharts/lib/cartesian/CartesianGrid.js
===================================================================
--- node_modules/recharts/lib/cartesian/CartesianGrid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,418 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CartesianGrid = CartesianGrid;
-exports.defaultCartesianGridProps = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _LogUtils = require("../util/LogUtils");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _getTicks = require("./getTicks");
-var _CartesianAxis = require("./CartesianAxis");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _hooks = require("../state/hooks");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _excluded = ["x1", "y1", "x2", "y2", "key"],
-  _excluded2 = ["offset"],
-  _excluded3 = ["xAxisId", "yAxisId"],
-  _excluded4 = ["xAxisId", "yAxisId"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * The <CartesianGrid horizontal
- */
-
-var Background = props => {
-  var {
-    fill
-  } = props;
-  if (!fill || fill === 'none') {
-    return null;
-  }
-  var {
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    ry
-  } = props;
-  return /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    ry: ry,
-    width: width,
-    height: height,
-    stroke: "none",
-    fill: fill,
-    fillOpacity: fillOpacity,
-    className: "recharts-cartesian-grid-bg"
-  });
-};
-function LineItem(_ref) {
-  var {
-    option,
-    lineItemProps
-  } = _ref;
-  var lineItem;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error typescript does not see the props type when cloning an element
-    lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);
-  } else if (typeof option === 'function') {
-    lineItem = option(lineItemProps);
-  } else {
-    var _svgPropertiesNoEvent;
-    var {
-        x1,
-        y1,
-        x2,
-        y2,
-        key
-      } = lineItemProps,
-      others = _objectWithoutProperties(lineItemProps, _excluded);
-    var _ref2 = (_svgPropertiesNoEvent = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},
-      {
-        offset: __
-      } = _ref2,
-      restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);
-    lineItem = /*#__PURE__*/React.createElement("line", _extends({}, restOfFilteredProps, {
-      x1: x1,
-      y1: y1,
-      x2: x2,
-      y2: y2,
-      fill: "none",
-      key: key
-    }));
-  }
-  return lineItem;
-}
-function HorizontalGridLines(props) {
-  var {
-    x,
-    width,
-    horizontal = true,
-    horizontalPoints
-  } = props;
-  if (!horizontal || !horizontalPoints || !horizontalPoints.length) {
-    return null;
-  }
-  var {
-      xAxisId,
-      yAxisId
-    } = props,
-    otherLineItemProps = _objectWithoutProperties(props, _excluded3);
-  var items = horizontalPoints.map((entry, i) => {
-    var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {
-      x1: x,
-      y1: entry,
-      x2: x + width,
-      y2: entry,
-      key: "line-".concat(i),
-      index: i
-    });
-    return /*#__PURE__*/React.createElement(LineItem, {
-      key: "line-".concat(i),
-      option: horizontal,
-      lineItemProps: lineItemProps
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid-horizontal"
-  }, items);
-}
-function VerticalGridLines(props) {
-  var {
-    y,
-    height,
-    vertical = true,
-    verticalPoints
-  } = props;
-  if (!vertical || !verticalPoints || !verticalPoints.length) {
-    return null;
-  }
-  var {
-      xAxisId,
-      yAxisId
-    } = props,
-    otherLineItemProps = _objectWithoutProperties(props, _excluded4);
-  var items = verticalPoints.map((entry, i) => {
-    var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {
-      x1: entry,
-      y1: y,
-      x2: entry,
-      y2: y + height,
-      key: "line-".concat(i),
-      index: i
-    });
-    return /*#__PURE__*/React.createElement(LineItem, {
-      option: vertical,
-      lineItemProps: lineItemProps,
-      key: "line-".concat(i)
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid-vertical"
-  }, items);
-}
-function HorizontalStripes(props) {
-  var {
-    horizontalFill,
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    horizontalPoints,
-    horizontal = true
-  } = props;
-  if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {
-    return null;
-  }
-  var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);
-  // Why is this condition `!==` instead of `<=` ?
-  if (y !== roundedSortedHorizontalPoints[0]) {
-    roundedSortedHorizontalPoints.unshift(0);
-  }
-  var items = roundedSortedHorizontalPoints.map((entry, i) => {
-    // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?
-    var nextPoint = roundedSortedHorizontalPoints[i + 1];
-    var lastStripe = nextPoint == null;
-    var lineHeight = lastStripe ? y + height - entry : nextPoint - entry;
-    if (lineHeight <= 0) {
-      return null;
-    }
-    var colorIndex = i % horizontalFill.length;
-    return /*#__PURE__*/React.createElement("rect", {
-      key: "react-".concat(i),
-      y: entry,
-      x: x,
-      height: lineHeight,
-      width: width,
-      stroke: "none",
-      fill: horizontalFill[colorIndex],
-      fillOpacity: fillOpacity,
-      className: "recharts-cartesian-grid-bg"
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-gridstripes-horizontal"
-  }, items);
-}
-function VerticalStripes(props) {
-  var {
-    vertical = true,
-    verticalFill,
-    fillOpacity,
-    x,
-    y,
-    width,
-    height,
-    verticalPoints
-  } = props;
-  if (!vertical || !verticalFill || !verticalFill.length) {
-    return null;
-  }
-  var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);
-  if (x !== roundedSortedVerticalPoints[0]) {
-    roundedSortedVerticalPoints.unshift(0);
-  }
-  var items = roundedSortedVerticalPoints.map((entry, i) => {
-    var nextPoint = roundedSortedVerticalPoints[i + 1];
-    var lastStripe = nextPoint == null;
-    var lineWidth = lastStripe ? x + width - entry : nextPoint - entry;
-    if (lineWidth <= 0) {
-      return null;
-    }
-    var colorIndex = i % verticalFill.length;
-    return /*#__PURE__*/React.createElement("rect", {
-      key: "react-".concat(i),
-      x: entry,
-      y: y,
-      width: lineWidth,
-      height: height,
-      stroke: "none",
-      fill: verticalFill[colorIndex],
-      fillOpacity: fillOpacity,
-      className: "recharts-cartesian-grid-bg"
-    });
-  });
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-gridstripes-vertical"
-  }, items);
-}
-var defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {
-  var {
-    xAxis,
-    width,
-    height,
-    offset
-  } = _ref3;
-  return (0, _ChartUtils.getCoordinatesOfGrid)((0, _getTicks.getTicks)(_objectSpread(_objectSpread(_objectSpread({}, _CartesianAxis.defaultCartesianAxisProps), xAxis), {}, {
-    ticks: (0, _ChartUtils.getTicksOfAxis)(xAxis, true),
-    viewBox: {
-      x: 0,
-      y: 0,
-      width,
-      height
-    }
-  })), offset.left, offset.left + offset.width, syncWithTicks);
-};
-var defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {
-  var {
-    yAxis,
-    width,
-    height,
-    offset
-  } = _ref4;
-  return (0, _ChartUtils.getCoordinatesOfGrid)((0, _getTicks.getTicks)(_objectSpread(_objectSpread(_objectSpread({}, _CartesianAxis.defaultCartesianAxisProps), yAxis), {}, {
-    ticks: (0, _ChartUtils.getTicksOfAxis)(yAxis, true),
-    viewBox: {
-      x: 0,
-      y: 0,
-      width,
-      height
-    }
-  })), offset.top, offset.top + offset.height, syncWithTicks);
-};
-var defaultCartesianGridProps = exports.defaultCartesianGridProps = {
-  horizontal: true,
-  vertical: true,
-  // The ordinates of horizontal grid lines
-  horizontalPoints: [],
-  // The abscissas of vertical grid lines
-  verticalPoints: [],
-  stroke: '#ccc',
-  fill: 'none',
-  // The fill of colors of grid lines
-  verticalFill: [],
-  horizontalFill: [],
-  xAxisId: 0,
-  yAxisId: 0,
-  syncWithTicks: false,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.grid
-};
-
-/**
- * Renders background grid with lines and fill colors in a Cartesian chart.
- *
- * @consumes CartesianChartContext
- */
-function CartesianGrid(props) {
-  var chartWidth = (0, _chartLayoutContext.useChartWidth)();
-  var chartHeight = (0, _chartLayoutContext.useChartHeight)();
-  var offset = (0, _chartLayoutContext.useOffsetInternal)();
-  var propsIncludingDefaults = _objectSpread(_objectSpread({}, (0, _resolveDefaultProps.resolveDefaultProps)(props, defaultCartesianGridProps)), {}, {
-    x: (0, _DataUtils.isNumber)(props.x) ? props.x : offset.left,
-    y: (0, _DataUtils.isNumber)(props.y) ? props.y : offset.top,
-    width: (0, _DataUtils.isNumber)(props.width) ? props.width : offset.width,
-    height: (0, _DataUtils.isNumber)(props.height) ? props.height : offset.height
-  });
-  var {
-    xAxisId,
-    yAxisId,
-    x,
-    y,
-    width,
-    height,
-    syncWithTicks,
-    horizontalValues,
-    verticalValues
-  } = propsIncludingDefaults;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var xAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisPropsNeededForCartesianGridTicksGenerator)(state, 'xAxis', xAxisId, isPanorama));
-  var yAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisPropsNeededForCartesianGridTicksGenerator)(state, 'yAxis', yAxisId, isPanorama));
-  if (!(0, _isWellBehavedNumber.isPositiveNumber)(width) || !(0, _isWellBehavedNumber.isPositiveNumber)(height) || !(0, _DataUtils.isNumber)(x) || !(0, _DataUtils.isNumber)(y)) {
-    return null;
-  }
-
-  /*
-   * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined
-   * outside the propsIncludingDefaults because they were never part of the original props
-   * and they were never passed as a prop down to horizontal/vertical custom elements.
-   * If we add these two to propsIncludingDefaults then we are changing public API.
-   * Not a bad thing per se but also not necessary.
-   */
-  var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;
-  var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;
-  var {
-    horizontalPoints,
-    verticalPoints
-  } = propsIncludingDefaults;
-
-  // No horizontal points are specified
-  if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {
-    var isHorizontalValues = horizontalValues && horizontalValues.length;
-    var generatorResult = horizontalCoordinatesGenerator({
-      yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {
-        ticks: isHorizontalValues ? horizontalValues : yAxis.ticks
-      }) : undefined,
-      width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,
-      height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,
-      offset
-    }, isHorizontalValues ? true : syncWithTicks);
-    (0, _LogUtils.warn)(Array.isArray(generatorResult), "horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof generatorResult, "]"));
-    if (Array.isArray(generatorResult)) {
-      horizontalPoints = generatorResult;
-    }
-  }
-
-  // No vertical points are specified
-  if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {
-    var isVerticalValues = verticalValues && verticalValues.length;
-    var _generatorResult = verticalCoordinatesGenerator({
-      xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {
-        ticks: isVerticalValues ? verticalValues : xAxis.ticks
-      }) : undefined,
-      width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,
-      height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,
-      offset
-    }, isVerticalValues ? true : syncWithTicks);
-    (0, _LogUtils.warn)(Array.isArray(_generatorResult), "verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof _generatorResult, "]"));
-    if (Array.isArray(_generatorResult)) {
-      verticalPoints = _generatorResult;
-    }
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: propsIncludingDefaults.zIndex
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-cartesian-grid"
-  }, /*#__PURE__*/React.createElement(Background, {
-    fill: propsIncludingDefaults.fill,
-    fillOpacity: propsIncludingDefaults.fillOpacity,
-    x: propsIncludingDefaults.x,
-    y: propsIncludingDefaults.y,
-    width: propsIncludingDefaults.width,
-    height: propsIncludingDefaults.height,
-    ry: propsIncludingDefaults.ry
-  }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {
-    horizontalPoints: horizontalPoints
-  })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {
-    verticalPoints: verticalPoints
-  })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, {
-    offset: offset,
-    horizontalPoints: horizontalPoints,
-    xAxis: xAxis,
-    yAxis: yAxis
-  })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, {
-    offset: offset,
-    verticalPoints: verticalPoints,
-    xAxis: xAxis,
-    yAxis: yAxis
-  }))));
-}
-CartesianGrid.displayName = 'CartesianGrid';
Index: de_modules/recharts/lib/cartesian/ErrorBar.js
===================================================================
--- node_modules/recharts/lib/cartesian/ErrorBar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,264 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ErrorBar = ErrorBar;
-exports.errorBarDefaultProps = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _Layer = require("../container/Layer");
-var _ErrorBarContext = require("../context/ErrorBarContext");
-var _hooks = require("../hooks");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _CSSTransitionAnimate = require("../animation/CSSTransitionAnimate");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _excluded = ["direction", "width", "dataKey", "isAnimationActive", "animationBegin", "animationDuration", "animationEasing"];
-/**
- * @fileOverview Render a group of error bar
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * So usually the direction is decided by the chart layout.
- * Horizontal layout means error bars are vertical means direction=y
- * Vertical layout means error bars are horizontal means direction=x
- *
- * Except! In Scatter chart, error bars can go both ways.
- *
- * So this property is only ever used in Scatter chart, and ignored elsewhere.
- */
-
-/**
- * External ErrorBar props, visible for users of the library
- */
-
-/**
- * Props after defaults, and required props have been applied.
- */
-
-function ErrorBarImpl(props) {
-  var {
-      direction,
-      width,
-      dataKey,
-      isAnimationActive,
-      animationBegin,
-      animationDuration,
-      animationEasing
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var svgProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-  var {
-    data,
-    dataPointFormatter,
-    xAxisId,
-    yAxisId,
-    errorBarOffset: offset
-  } = (0, _ErrorBarContext.useErrorBarContext)();
-  var xAxis = (0, _hooks.useXAxis)(xAxisId);
-  var yAxis = (0, _hooks.useYAxis)(yAxisId);
-  if ((xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) == null || (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) == null || data == null) {
-    return null;
-  }
-
-  // ErrorBar requires type number XAxis, why?
-  if (direction === 'x' && xAxis.type !== 'number') {
-    return null;
-  }
-  var errorBars = data.map((entry, dataIndex) => {
-    var {
-      x,
-      y,
-      value,
-      errorVal
-    } = dataPointFormatter(entry, dataKey, direction);
-    if (!errorVal || x == null || y == null) {
-      return null;
-    }
-    var lineCoordinates = [];
-    var lowBound, highBound;
-    if (Array.isArray(errorVal)) {
-      var [low, high] = errorVal;
-      if (low == null || high == null) {
-        return null;
-      }
-      lowBound = low;
-      highBound = high;
-    } else {
-      lowBound = highBound = errorVal;
-    }
-    if (direction === 'x') {
-      // error bar for horizontal charts, the y is fixed, x is a range value
-      var {
-        scale
-      } = xAxis;
-      var yMid = y + offset;
-      var yMin = yMid + width;
-      var yMax = yMid - width;
-      var xMin = scale.map(value - lowBound);
-      var xMax = scale.map(value + highBound);
-      if (xMin != null && xMax != null) {
-        // the right line of |--|
-        lineCoordinates.push({
-          x1: xMax,
-          y1: yMin,
-          x2: xMax,
-          y2: yMax
-        });
-        // the middle line of |--|
-        lineCoordinates.push({
-          x1: xMin,
-          y1: yMid,
-          x2: xMax,
-          y2: yMid
-        });
-        // the left line of |--|
-        lineCoordinates.push({
-          x1: xMin,
-          y1: yMin,
-          x2: xMin,
-          y2: yMax
-        });
-      }
-    } else if (direction === 'y') {
-      // error bar for horizontal charts, the x is fixed, y is a range value
-      var {
-        scale: _scale
-      } = yAxis;
-      var xMid = x + offset;
-      var _xMin = xMid - width;
-      var _xMax = xMid + width;
-      var _yMin = _scale.map(value - lowBound);
-      var _yMax = _scale.map(value + highBound);
-      if (_yMin != null && _yMax != null) {
-        // the top line
-        lineCoordinates.push({
-          x1: _xMin,
-          y1: _yMax,
-          x2: _xMax,
-          y2: _yMax
-        });
-        // the middle line
-        lineCoordinates.push({
-          x1: xMid,
-          y1: _yMin,
-          x2: xMid,
-          y2: _yMax
-        });
-        // the bottom line
-        lineCoordinates.push({
-          x1: _xMin,
-          y1: _yMin,
-          x2: _xMax,
-          y2: _yMin
-        });
-      }
-    }
-    var scaleDirection = direction === 'x' ? 'scaleX' : 'scaleY';
-    var transformOrigin = "".concat(x + offset, "px ").concat(y + offset, "px");
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      className: "recharts-errorBar",
-      key: "bar-".concat(x, "-").concat(y, "-").concat(value, "-").concat(dataIndex)
-    }, svgProps), lineCoordinates.map((c, lineIndex) => {
-      var lineStyle = isAnimationActive ? {
-        transformOrigin
-      } : undefined;
-      return /*#__PURE__*/React.createElement(_CSSTransitionAnimate.CSSTransitionAnimate, {
-        animationId: "error-bar-".concat(direction, "_").concat(c.x1, "-").concat(c.x2, "-").concat(c.y1, "-").concat(c.y2),
-        from: "".concat(scaleDirection, "(0)"),
-        to: "".concat(scaleDirection, "(1)"),
-        attributeName: "transform",
-        begin: animationBegin,
-        easing: animationEasing,
-        isActive: isAnimationActive,
-        duration: animationDuration,
-        key: "errorbar-".concat(dataIndex, "-").concat(c.x1, "-").concat(c.y1, "-").concat(c.x2, "-").concat(c.y2, "-").concat(lineIndex)
-      }, style => /*#__PURE__*/React.createElement("line", _extends({}, c, {
-        style: _objectSpread(_objectSpread({}, lineStyle), style)
-      })));
-    }));
-  });
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-errorBars"
-  }, errorBars);
-}
-function useErrorBarDirection(directionFromProps) {
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  if (directionFromProps != null) {
-    return directionFromProps;
-  }
-  if (layout != null) {
-    return layout === 'horizontal' ? 'y' : 'x';
-  }
-  return 'x';
-}
-var errorBarDefaultProps = exports.errorBarDefaultProps = {
-  stroke: 'black',
-  strokeWidth: 1.5,
-  width: 5,
-  offset: 0,
-  isAnimationActive: true,
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'ease-in-out',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.line
-};
-
-/**
- * ErrorBar renders whiskers to represent error margins on a chart.
- *
- * It must be a child of a graphical element.
- *
- * ErrorBar expects data in one of the following forms:
- * - Symmetric error bars: a single error value representing both lower and upper bounds.
- * - Asymmetric error bars: an array of two values representing lower and upper bounds separately. First value is the lower bound, second value is the upper bound.
- *
- * The values provided are relative to the main data value.
- * For example, if the main data value is 10 and the error value is 2,
- * the error bar will extend from 8 to 12 for symmetric error bars.
- *
- * In other words, what ErrorBar will render is:
- * - For symmetric error bars: [value - errorVal, value + errorVal]
- * - For asymmetric error bars: [value - errorVal[0], value + errorVal[1]]
- *
- * In stacked or ranged Bar charts, ErrorBar will use the higher data value
- * as the reference point for calculating the error bar positions.
- *
- * @consumes ErrorBarContext
- */
-function ErrorBar(outsideProps) {
-  var realDirection = useErrorBarDirection(outsideProps.direction);
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, errorBarDefaultProps);
-  var {
-    width,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    zIndex
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_ErrorBarContext.ReportErrorBarSettings, {
-    dataKey: props.dataKey,
-    direction: realDirection
-  }), /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(ErrorBarImpl, _extends({}, props, {
-    direction: realDirection,
-    width: width,
-    isAnimationActive: isAnimationActive,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing
-  }))));
-}
-ErrorBar.displayName = 'ErrorBar';
Index: de_modules/recharts/lib/cartesian/Funnel.js
===================================================================
--- node_modules/recharts/lib/cartesian/Funnel.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,482 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Funnel = Funnel;
-exports.computeFunnelTrapezoids = computeFunnelTrapezoids;
-exports.defaultFunnelProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _omit = _interopRequireDefault(require("es-toolkit/compat/omit"));
-var _clsx = require("clsx");
-var _selectors = require("../state/selectors/selectors");
-var _hooks = require("../state/hooks");
-var _Layer = require("../container/Layer");
-var _LabelList = require("../component/LabelList");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _types = require("../util/types");
-var _FunnelUtils = require("../util/FunnelUtils");
-var _tooltipContext = require("../context/tooltipContext");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _funnelSelectors = require("../state/selectors/funnelSelectors");
-var _ReactUtils = require("../util/ReactUtils");
-var _Cell = require("../component/Cell");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _hooks2 = require("../hooks");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _useAnimationId = require("../util/useAnimationId");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _excluded = ["onMouseEnter", "onClick", "onMouseLeave", "shape", "activeShape"],
-  _excluded2 = ["id"],
-  _excluded3 = ["stroke", "fill", "legendType", "hide", "isAnimationActive", "animationBegin", "animationDuration", "animationEasing", "nameKey", "lastShapeType", "id"],
-  _excluded4 = ["id"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-var SetFunnelTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    data,
-    trapezoids,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: index => {
-      var _trapezoids$Number;
-      return (_trapezoids$Number = trapezoids[Number(index)]) === null || _trapezoids$Number === void 0 ? void 0 : _trapezoids$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      name,
-      nameKey,
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // Funnel does not have unit, why?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function FunnelLabelListProvider(_ref2) {
-  var {
-    showLabels,
-    trapezoids,
-    children
-  } = _ref2;
-  var labelListEntries = (0, _react.useMemo)(() => {
-    if (!showLabels) {
-      return undefined;
-    }
-    return trapezoids === null || trapezoids === void 0 ? void 0 : trapezoids.map(entry => {
-      var viewBox = entry.labelViewBox;
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        value: entry.name,
-        payload: entry.payload,
-        parentViewBox: entry.parentViewBox,
-        viewBox,
-        fill: entry.fill
-      });
-    });
-  }, [showLabels, trapezoids]);
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: labelListEntries
-  }, children);
-}
-function FunnelTrapezoids(props) {
-  var {
-    trapezoids,
-    allOtherFunnelProps
-  } = props;
-  var activeItemIndex = (0, _hooks.useAppSelector)(state => (0, _selectors.selectActiveIndex)(state, 'item', state.tooltip.settings.trigger, undefined));
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps,
-      shape,
-      activeShape
-    } = allOtherFunnelProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherFunnelProps, _excluded);
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, trapezoids.map((entry, i) => {
-    var isActiveIndex = Boolean(activeShape) && activeItemIndex === String(i);
-    var trapezoidOptions = isActiveIndex ? activeShape : shape;
-    var _entry$option$isActiv = _objectSpread(_objectSpread({}, entry), {}, {
-        option: trapezoidOptions,
-        isActive: isActiveIndex,
-        stroke: entry.stroke
-      }),
-      {
-        id
-      } = _entry$option$isActiv,
-      trapezoidProps = _objectWithoutProperties(_entry$option$isActiv, _excluded2);
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      key: "trapezoid-".concat(entry === null || entry === void 0 ? void 0 : entry.x, "-").concat(entry === null || entry === void 0 ? void 0 : entry.y, "-").concat(entry === null || entry === void 0 ? void 0 : entry.name, "-").concat(entry === null || entry === void 0 ? void 0 : entry.value),
-      className: "recharts-funnel-trapezoid"
-    }, (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(_FunnelUtils.FunnelTrapezoid, trapezoidProps));
-  }));
-}
-function TrapezoidsWithAnimation(_ref3) {
-  var {
-    previousTrapezoidsRef,
-    props
-  } = _ref3;
-  var {
-    trapezoids,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevTrapezoids = previousTrapezoidsRef.current;
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var showLabels = !isAnimating;
-  var animationId = (0, _useAnimationId.useAnimationId)(trapezoids, 'recharts-funnel-');
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(FunnelLabelListProvider, {
-    showLabels: showLabels,
-    trapezoids: trapezoids
-  }, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    key: animationId,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd
-  }, t => {
-    var stepData = t === 1 ? trapezoids : trapezoids.map((entry, index) => {
-      var prev = prevTrapezoids && prevTrapezoids[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-          y: (0, _DataUtils.interpolate)(prev.y, entry.y, t),
-          upperWidth: (0, _DataUtils.interpolate)(prev.upperWidth, entry.upperWidth, t),
-          lowerWidth: (0, _DataUtils.interpolate)(prev.lowerWidth, entry.lowerWidth, t),
-          height: (0, _DataUtils.interpolate)(prev.height, entry.height, t)
-        });
-      }
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        x: (0, _DataUtils.interpolate)(entry.x + entry.upperWidth / 2, entry.x, t),
-        y: (0, _DataUtils.interpolate)(entry.y + entry.height / 2, entry.y, t),
-        upperWidth: (0, _DataUtils.interpolate)(0, entry.upperWidth, t),
-        lowerWidth: (0, _DataUtils.interpolate)(0, entry.lowerWidth, t),
-        height: (0, _DataUtils.interpolate)(0, entry.height, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousTrapezoidsRef.current = stepData;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, /*#__PURE__*/React.createElement(FunnelTrapezoids, {
-      trapezoids: stepData,
-      allOtherFunnelProps: props
-    }));
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderTrapezoids(props) {
-  var previousTrapezoidsRef = (0, _react.useRef)(undefined);
-  return /*#__PURE__*/React.createElement(TrapezoidsWithAnimation, {
-    props: props,
-    previousTrapezoidsRef: previousTrapezoidsRef
-  });
-}
-var getRealWidthHeight = (customWidth, offset) => {
-  var {
-    width,
-    height,
-    left,
-    top
-  } = offset;
-  var realWidth = (0, _DataUtils.getPercentValue)(customWidth, width, width);
-  return {
-    realWidth,
-    realHeight: height,
-    offsetX: left,
-    offsetY: top
-  };
-};
-var defaultFunnelProps = exports.defaultFunnelProps = {
-  animationBegin: 400,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  fill: '#808080',
-  hide: false,
-  isAnimationActive: 'auto',
-  lastShapeType: 'triangle',
-  legendType: 'rect',
-  nameKey: 'name',
-  reversed: false,
-  stroke: '#fff'
-};
-function FunnelImpl(props) {
-  var plotArea = (0, _hooks2.usePlotArea)();
-  var {
-      stroke,
-      fill,
-      legendType,
-      hide,
-      isAnimationActive,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      nameKey,
-      lastShapeType,
-      id
-    } = props,
-    everythingElse = _objectWithoutProperties(props, _excluded3);
-  var presentationProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props);
-  var cells = (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell);
-  var funnelSettings = (0, _react.useMemo)(() => ({
-    dataKey: props.dataKey,
-    nameKey,
-    data: props.data,
-    tooltipType: props.tooltipType,
-    lastShapeType,
-    reversed: props.reversed,
-    customWidth: props.width,
-    cells,
-    presentationProps,
-    id
-  }), [props.dataKey, nameKey, props.data, props.tooltipType, lastShapeType, props.reversed, props.width, cells, presentationProps, id]);
-  var trapezoids = (0, _hooks.useAppSelector)(state => (0, _funnelSelectors.selectFunnelTrapezoids)(state, funnelSettings));
-  if (hide || !trapezoids || !trapezoids.length || !plotArea) {
-    return null;
-  }
-  var {
-    height,
-    width
-  } = plotArea;
-  var layerClass = (0, _clsx.clsx)('recharts-trapezoids', props.className);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetFunnelTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    data: props.data,
-    trapezoids: trapezoids,
-    id: id
-  }), /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(RenderTrapezoids, _extends({}, everythingElse, {
-    id: id,
-    stroke: stroke,
-    fill: fill,
-    nameKey: nameKey,
-    lastShapeType: lastShapeType,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    hide: hide,
-    legendType: legendType,
-    height: height,
-    width: width,
-    trapezoids: trapezoids
-  }))));
-}
-function computeFunnelTrapezoids(_ref4) {
-  var {
-    dataKey,
-    nameKey,
-    displayedData,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    offset,
-    customWidth,
-    graphicalItemId
-  } = _ref4;
-  var {
-    realHeight,
-    realWidth,
-    offsetX,
-    offsetY
-  } = getRealWidthHeight(customWidth, offset);
-  var values = displayedData.map(entry => {
-    var val = (0, _ChartUtils.getValueByDataKey)(entry, dataKey, 0);
-    return typeof val === 'number' ? val : 0;
-  });
-  var maxValue = Math.max.apply(null, values);
-  var len = displayedData.length;
-  var rowHeight = realHeight / len;
-  var parentViewBox = {
-    x: offset.left,
-    y: offset.top,
-    width: offset.width,
-    height: offset.height
-  };
-  var trapezoids = displayedData.map((entry, i) => {
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var rawVal = (0, _ChartUtils.getValueByDataKey)(entry, dataKey, 0);
-    var name = String((0, _ChartUtils.getValueByDataKey)(entry, nameKey, i));
-    var val = rawVal;
-    var nextVal;
-    if (i !== len - 1) {
-      var nextDataValue = (0, _ChartUtils.getValueByDataKey)(displayedData[i + 1], dataKey, 0);
-      if (typeof nextDataValue === 'number') {
-        nextVal = nextDataValue;
-      } else if (Array.isArray(nextDataValue)) {
-        var [first, second] = nextDataValue;
-        if (typeof first === 'number') {
-          val = first;
-        }
-        if (typeof second === 'number') {
-          nextVal = second;
-        }
-      }
-    } else if (rawVal instanceof Array && rawVal.length === 2) {
-      var [_first, _second] = rawVal;
-      if (typeof _first === 'number') {
-        val = _first;
-      }
-      if (typeof _second === 'number') {
-        nextVal = _second;
-      }
-    } else if (lastShapeType === 'rectangle') {
-      nextVal = val;
-    } else {
-      nextVal = 0;
-    }
-
-    // @ts-expect-error this is a problem if we have ranged values because `val` can be an array
-    var x = (maxValue - val) * realWidth / (2 * maxValue) + offsetX;
-    var y = rowHeight * i + offsetY;
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var upperWidth = val / maxValue * realWidth;
-    // @ts-expect-error nextVal could be an array
-    var lowerWidth = nextVal / maxValue * realWidth;
-    var tooltipPayload = [{
-      name,
-      value: val,
-      payload: entry,
-      dataKey,
-      type: tooltipType,
-      graphicalItemId
-    }];
-    var tooltipPosition = {
-      x: x + upperWidth / 2,
-      y: y + rowHeight / 2
-    };
-    var trapezoidViewBox = {
-      x,
-      y,
-      upperWidth,
-      lowerWidth,
-      width: Math.max(upperWidth, lowerWidth),
-      height: rowHeight
-    };
-    return _objectSpread(_objectSpread(_objectSpread({}, trapezoidViewBox), {}, {
-      name,
-      val,
-      tooltipPayload,
-      tooltipPosition
-    }, entry != null && typeof entry === 'object' ? (0, _omit.default)(entry, ['width']) : {}), {}, {
-      payload: entry,
-      parentViewBox,
-      labelViewBox: trapezoidViewBox
-    });
-  });
-  if (reversed) {
-    trapezoids = trapezoids.map((entry, index) => {
-      var reversedViewBox = {
-        x: entry.x - (entry.lowerWidth - entry.upperWidth) / 2,
-        y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight,
-        upperWidth: entry.lowerWidth,
-        lowerWidth: entry.upperWidth,
-        width: Math.max(entry.lowerWidth, entry.upperWidth),
-        height: rowHeight
-      };
-      return _objectSpread(_objectSpread(_objectSpread({}, entry), reversedViewBox), {}, {
-        tooltipPosition: _objectSpread(_objectSpread({}, entry.tooltipPosition), {}, {
-          y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight + rowHeight / 2
-        }),
-        labelViewBox: reversedViewBox
-      });
-    });
-  }
-  return trapezoids;
-}
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides LabelListContext
- * @provides CellReader
- */
-function Funnel(outsideProps) {
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, defaultFunnelProps),
-    {
-      id: externalId
-    } = _resolveDefaultProps,
-    props = _objectWithoutProperties(_resolveDefaultProps, _excluded4);
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: externalId,
-    type: "funnel"
-  }, id => /*#__PURE__*/React.createElement(FunnelImpl, _extends({}, props, {
-    id: id
-  })));
-}
-Funnel.displayName = 'Funnel';
Index: de_modules/recharts/lib/cartesian/GraphicalItemClipPath.js
===================================================================
--- node_modules/recharts/lib/cartesian/GraphicalItemClipPath.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.GraphicalItemClipPath = GraphicalItemClipPath;
-exports.useNeedsClip = useNeedsClip;
-var React = _interopRequireWildcard(require("react"));
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _hooks2 = require("../hooks");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function useNeedsClip(xAxisId, yAxisId) {
-  var _xAxis$allowDataOverf, _yAxis$allowDataOverf;
-  var xAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectXAxisSettings)(state, xAxisId));
-  var yAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectYAxisSettings)(state, yAxisId));
-  var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : _axisSelectors.implicitXAxis.allowDataOverflow;
-  var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : _axisSelectors.implicitYAxis.allowDataOverflow;
-  var needClip = needClipX || needClipY;
-  return {
-    needClip,
-    needClipX,
-    needClipY
-  };
-}
-function GraphicalItemClipPath(_ref) {
-  var {
-    xAxisId,
-    yAxisId,
-    clipPathId
-  } = _ref;
-  var plotArea = (0, _hooks2.usePlotArea)();
-  var {
-    needClipX,
-    needClipY,
-    needClip
-  } = useNeedsClip(xAxisId, yAxisId);
-  if (!needClip || !plotArea) {
-    return null;
-  }
-  var {
-    x,
-    y,
-    width,
-    height
-  } = plotArea;
-  return /*#__PURE__*/React.createElement("clipPath", {
-    id: "clipPath-".concat(clipPathId)
-  }, /*#__PURE__*/React.createElement("rect", {
-    x: needClipX ? x : x - width / 2,
-    y: needClipY ? y : y - height / 2,
-    width: needClipX ? width : width * 2,
-    height: needClipY ? height : height * 2
-  }));
-}
Index: de_modules/recharts/lib/cartesian/Line.js
===================================================================
--- node_modules/recharts/lib/cartesian/Line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,694 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Line = void 0;
-exports.computeLinePoints = computeLinePoints;
-exports.defaultLineProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _LabelList = require("../component/LabelList");
-var _Dots = require("../component/Dots");
-var _DataUtils = require("../util/DataUtils");
-var _ReactUtils = require("../util/ReactUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _ActivePoints = require("../component/ActivePoints");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _ErrorBarContext = require("../context/ErrorBarContext");
-var _GraphicalItemClipPath = require("./GraphicalItemClipPath");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _lineSelectors = require("../state/selectors/lineSelectors");
-var _hooks = require("../state/hooks");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _useAnimationId = require("../util/useAnimationId");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _hooks2 = require("../hooks");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _getRadiusAndStrokeWidthFromDot = require("../util/getRadiusAndStrokeWidthFromDot");
-var _ActiveShapeUtils = require("../util/ActiveShapeUtils");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _propsAreEqual = require("../util/propsAreEqual");
-var _excluded = ["id"],
-  _excluded2 = ["type", "layout", "connectNulls", "needClip", "shape"],
-  _excluded3 = ["activeDot", "animateNewValues", "animationBegin", "animationDuration", "animationEasing", "connectNulls", "dot", "hide", "isAnimationActive", "label", "legendType", "xAxisId", "yAxisId", "id"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-var computeLegendPayloadFromAreaData = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: stroke,
-    value: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-    payload: props
-  }];
-};
-var SetLineTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    data,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    unit,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: _DataUtils.noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey: undefined,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: stroke,
-      unit,
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-var generateSimpleStrokeDasharray = (totalLength, length) => {
-  return "".concat(length, "px ").concat(totalLength - length, "px");
-};
-function repeat(lines, count) {
-  var linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;
-  var result = [];
-  for (var i = 0; i < count; ++i) {
-    result = [...result, ...linesUnit];
-  }
-  return result;
-}
-var getStrokeDasharray = (length, totalLength, lines) => {
-  var lineLength = lines.reduce((pre, next) => pre + next);
-
-  // if lineLength is 0 return the default when no strokeDasharray is provided
-  if (!lineLength) {
-    return generateSimpleStrokeDasharray(totalLength, length);
-  }
-  var count = Math.floor(length / lineLength);
-  var remainLength = length % lineLength;
-  var restLength = totalLength - length;
-  var remainLines = [];
-  for (var i = 0, sum = 0; i < lines.length; sum += (_lines$i = lines[i]) !== null && _lines$i !== void 0 ? _lines$i : 0, ++i) {
-    var _lines$i;
-    var lineValue = lines[i];
-    if (lineValue != null && sum + lineValue > remainLength) {
-      remainLines = [...lines.slice(0, i), remainLength - sum];
-      break;
-    }
-  }
-  var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];
-  return [...repeat(lines, count), ...remainLines, ...emptyLines].map(line => "".concat(line, "px")).join(', ');
-};
-function LineDotsWrapper(_ref2) {
-  var {
-    clipPathId,
-    points,
-    props
-  } = _ref2;
-  var {
-    dot,
-    dataKey,
-    needClip
-  } = props;
-
-  /*
-   * Exclude ID from the props passed to the Dots component
-   * because then the ID would be applied to multiple dots, and it would no longer be unique.
-   */
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var lineProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(propsWithoutId);
-  return /*#__PURE__*/React.createElement(_Dots.Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-line-dots",
-    dotClassName: "recharts-line-dot",
-    dataKey: dataKey,
-    baseProps: lineProps,
-    needClip: needClip,
-    clipPathId: clipPathId
-  });
-}
-function LineLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    children,
-    points
-  } = _ref3;
-  var labelListEntries = (0, _react.useMemo)(() => {
-    return points === null || points === void 0 ? void 0 : points.map(point => {
-      var _point$x, _point$y;
-      var viewBox = {
-        x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-        y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-        width: 0,
-        lowerWidth: 0,
-        upperWidth: 0,
-        height: 0
-      };
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        value: point.value,
-        payload: point.payload,
-        viewBox,
-        /*
-         * Line is not passing parentViewBox to the LabelList so the labels can escape - looks like a bug, should we pass parentViewBox?
-         * Or should this just be the root chart viewBox?
-         */
-        parentViewBox: undefined,
-        fill: undefined
-      });
-    });
-  }, [points]);
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticCurve(_ref4) {
-  var {
-    clipPathId,
-    pathRef,
-    points,
-    strokeDasharray,
-    props
-  } = _ref4;
-  var {
-      type,
-      layout,
-      connectNulls,
-      needClip,
-      shape
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var curveProps = _objectSpread(_objectSpread({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others)), {}, {
-    fill: 'none',
-    className: 'recharts-line-curve',
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined,
-    points,
-    type,
-    layout,
-    connectNulls,
-    strokeDasharray: strokeDasharray !== null && strokeDasharray !== void 0 ? strokeDasharray : props.strokeDasharray
-  });
-  return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-    shapeType: "curve",
-    option: shape
-  }, curveProps, {
-    pathRef: pathRef
-  })), /*#__PURE__*/React.createElement(LineDotsWrapper, {
-    points: points,
-    clipPathId: clipPathId,
-    props: props
-  }));
-}
-function getTotalLength(mainCurve) {
-  try {
-    return mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength() || 0;
-  } catch (_unused) {
-    return 0;
-  }
-}
-function CurveWithAnimation(_ref5) {
-  var {
-    clipPathId,
-    props,
-    pathRef,
-    previousPointsRef,
-    longestAnimatedLengthRef
-  } = _ref5;
-  var {
-    points,
-    strokeDasharray,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    animateNewValues,
-    width,
-    height,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var animationId = (0, _useAnimationId.useAnimationId)(points, 'recharts-line-');
-  var animationIdRef = (0, _react.useRef)(animationId);
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  var totalLength = getTotalLength(pathRef.current);
-  /*
-   * Here we want to detect if the length animation has been interrupted.
-   * For that we keep a reference to the furthest length that has been animated.
-   *
-   * And then, to keep things smooth, we add to it the current length that is being animated right now.
-   *
-   * If we did Math.max then it makes the length animation "pause" but we want to keep it smooth
-   * so in case we have some "leftover" length from the previous animation we add it to the current length.
-   *
-   * This is not perfect because the animation changes speed due to easing. The default easing is 'ease' which is not linear
-   * and makes it stand out. But it's good enough I suppose.
-   * If we want to fix it then we need to keep track of multiple animations and their easing and timings.
-   *
-   * If you want to see this in action, try to change the dataKey of the line chart while the initial animation is running.
-   * The Line begins with zero length and slowly grows to the full length. While this growth is in progress,
-   * change the dataKey and the Line will continue growing from where it has grown so far.
-   *
-   * This is for the case when new animation triggers. When that happens we get new points, everything re-renders,
-   * and we get fresh new state in this component and use the ref stored above.
-   *
-   * In case when we get render without new animation - for example when opacity changes, or color changes,
-   * then the animationId remains the same, and we do not update the starting point.
-   * See https://github.com/recharts/recharts/issues/6044
-   */
-  var startingPointRef = (0, _react.useRef)(0);
-  if (animationIdRef.current !== animationId) {
-    startingPointRef.current = longestAnimatedLengthRef.current;
-    animationIdRef.current = animationId;
-  }
-  var startingPoint = startingPointRef.current;
-  return /*#__PURE__*/React.createElement(LineLabelListProvider, {
-    points: points,
-    showLabels: showLabels
-  }, props.children, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var lengthInterpolated = (0, _DataUtils.interpolate)(startingPoint, totalLength + startingPoint, t);
-    var curLength = Math.min(lengthInterpolated, totalLength);
-    var currentStrokeDasharray;
-    if (isAnimationActive) {
-      if (strokeDasharray) {
-        var lines = "".concat(strokeDasharray).split(/[,\s]+/gim).map(num => parseFloat(num));
-        currentStrokeDasharray = getStrokeDasharray(curLength, totalLength, lines);
-      } else {
-        currentStrokeDasharray = generateSimpleStrokeDasharray(totalLength, curLength);
-      }
-    } else {
-      currentStrokeDasharray = strokeDasharray == null ? undefined : String(strokeDasharray);
-    }
-
-    /*
-     * Here it is important to wait a little bit with updating the previousPointsRef
-     * before the animation has a time to initialize.
-     * If we set the previous pointsRef immediately, we set it before the Legend height it calculated
-     * and before pathRef is set.
-     * If that happens, the Line will re-render again after Legend had reported its height
-     * which will start a new animation with the previous points as the starting point
-     * which gives the effect of the Line animating slightly upwards (where the animation distance equals the Legend height).
-     * Waiting for t > 0 is indirect but good enough to ensure that the Legend height is calculated and animation works properly.
-     *
-     * Total length similarly is calculated from the pathRef. We should not update the previousPointsRef
-     * before the pathRef is set, otherwise we will have a wrong total length.
-     */
-    if (t > 0 && totalLength > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = points;
-      /*
-       * totalLength is set from a ref and is not updated in the first tick of the animation.
-       * It defaults to zero which is exactly what we want here because we want to grow from zero,
-       * however the same happens when the data change.
-       *
-       * In that case we want to remember the previous length and continue from there, and only animate the shape.
-       *
-       * Therefore the totalLength > 0 check.
-       *
-       * The Animate is about to fire handleAnimationStart which will update the state
-       * and cause a re-render and read a new proper totalLength which will be used in the next tick
-       * and update the longestAnimatedLengthRef.
-       *
-       * Why Math.max? Sometimes the curve goes through a smaller length than previously recorded.
-       * If we just set it to curLength, then the next animation would start from a smaller length
-       * which looks weird. So we keep the longest length ever reached and then animate from there.
-       */
-      // eslint-disable-next-line no-param-reassign
-      longestAnimatedLengthRef.current = Math.max(longestAnimatedLengthRef.current, curLength);
-    }
-    if (prevPoints) {
-      var prevPointsDiffFactor = prevPoints.length / points.length;
-      var stepData = t === 1 ? points : points.map((entry, index) => {
-        var prevPointIndex = Math.floor(index * prevPointsDiffFactor);
-        if (prevPoints[prevPointIndex]) {
-          var prev = prevPoints[prevPointIndex];
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-            y: (0, _DataUtils.interpolate)(prev.y, entry.y, t)
-          });
-        }
-
-        // magic number of faking previous x and y location
-        if (animateNewValues) {
-          return _objectSpread(_objectSpread({}, entry), {}, {
-            x: (0, _DataUtils.interpolate)(width * 2, entry.x, t),
-            y: (0, _DataUtils.interpolate)(height / 2, entry.y, t)
-          });
-        }
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          x: entry.x,
-          y: entry.y
-        });
-      });
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-      return /*#__PURE__*/React.createElement(StaticCurve, {
-        props: props,
-        points: stepData,
-        clipPathId: clipPathId,
-        pathRef: pathRef,
-        strokeDasharray: currentStrokeDasharray
-      });
-    }
-    return /*#__PURE__*/React.createElement(StaticCurve, {
-      props: props,
-      points: points,
-      clipPathId: clipPathId,
-      pathRef: pathRef,
-      strokeDasharray: currentStrokeDasharray
-    });
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-function RenderCurve(_ref6) {
-  var {
-    clipPathId,
-    props
-  } = _ref6;
-  var previousPointsRef = (0, _react.useRef)(null);
-  var longestAnimatedLengthRef = (0, _react.useRef)(0);
-  var pathRef = (0, _react.useRef)(null);
-  return /*#__PURE__*/React.createElement(CurveWithAnimation, {
-    props: props,
-    clipPathId: clipPathId,
-    previousPointsRef: previousPointsRef,
-    longestAnimatedLengthRef: longestAnimatedLengthRef,
-    pathRef: pathRef
-  });
-}
-var errorBarDataPointFormatter = (dataPoint, dataKey) => {
-  var _dataPoint$x, _dataPoint$y;
-  return {
-    x: (_dataPoint$x = dataPoint.x) !== null && _dataPoint$x !== void 0 ? _dataPoint$x : undefined,
-    y: (_dataPoint$y = dataPoint.y) !== null && _dataPoint$y !== void 0 ? _dataPoint$y : undefined,
-    value: dataPoint.value,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: (0, _ChartUtils.getValueByDataKey)(dataPoint.payload, dataKey)
-  };
-};
-
-// eslint-disable-next-line react/prefer-stateless-function
-class LineWithState extends _react.Component {
-  render() {
-    var {
-      hide,
-      dot,
-      points,
-      className,
-      xAxisId,
-      yAxisId,
-      top,
-      left,
-      width,
-      height,
-      id,
-      needClip,
-      zIndex
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = (0, _clsx.clsx)('recharts-line', className);
-    var clipPathId = id;
-    var {
-      r,
-      strokeWidth
-    } = (0, _getRadiusAndStrokeWidthFromDot.getRadiusAndStrokeWidthFromDot)(dot);
-    var clipDot = (0, _ReactUtils.isClipDot)(dot);
-    var dotSize = r * 2 + strokeWidth;
-    var activePointsClipPath = needClip ? "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")") : undefined;
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: zIndex
-    }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: layerClass
-    }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(_GraphicalItemClipPath.GraphicalItemClipPath, {
-      clipPathId: clipPathId,
-      xAxisId: xAxisId,
-      yAxisId: yAxisId
-    }), !clipDot && /*#__PURE__*/React.createElement("clipPath", {
-      id: "clipPath-dots-".concat(clipPathId)
-    }, /*#__PURE__*/React.createElement("rect", {
-      x: left - dotSize / 2,
-      y: top - dotSize / 2,
-      width: width + dotSize,
-      height: height + dotSize
-    }))), /*#__PURE__*/React.createElement(_ErrorBarContext.SetErrorBarContext, {
-      xAxisId: xAxisId,
-      yAxisId: yAxisId,
-      data: points,
-      dataPointFormatter: errorBarDataPointFormatter,
-      errorBarOffset: 0
-    }, /*#__PURE__*/React.createElement(RenderCurve, {
-      props: this.props,
-      clipPathId: clipPathId
-    }))), /*#__PURE__*/React.createElement(_ActivePoints.ActivePoints, {
-      activeDot: this.props.activeDot,
-      points: points,
-      mainColor: this.props.stroke,
-      itemDataKey: this.props.dataKey,
-      clipPath: activePointsClipPath
-    }));
-  }
-}
-var defaultLineProps = exports.defaultLineProps = {
-  activeDot: true,
-  animateNewValues: true,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  connectNulls: false,
-  dot: true,
-  fill: '#fff',
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'line',
-  stroke: '#3182bd',
-  strokeWidth: 1,
-  xAxisId: 0,
-  yAxisId: 0,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.line,
-  type: 'linear'
-};
-function LineImpl(props) {
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(props, defaultLineProps),
-    {
-      activeDot,
-      animateNewValues,
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      connectNulls,
-      dot,
-      hide,
-      isAnimationActive,
-      label,
-      legendType,
-      xAxisId,
-      yAxisId,
-      id
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);
-  var {
-    needClip
-  } = (0, _GraphicalItemClipPath.useNeedsClip)(xAxisId, yAxisId);
-  var plotArea = (0, _hooks2.usePlotArea)();
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var points = (0, _hooks.useAppSelector)(state => (0, _lineSelectors.selectLinePoints)(state, xAxisId, yAxisId, isPanorama, id));
-  if (layout !== 'horizontal' && layout !== 'vertical' || points == null || plotArea == null) {
-    // Cannot render Line in an unsupported layout
-    return null;
-  }
-  var {
-    height,
-    width,
-    x: left,
-    y: top
-  } = plotArea;
-  return /*#__PURE__*/React.createElement(LineWithState, _extends({}, everythingElse, {
-    id: id,
-    connectNulls: connectNulls,
-    dot: dot,
-    activeDot: activeDot,
-    animateNewValues: animateNewValues,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    hide: hide,
-    label: label,
-    legendType: legendType,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    points: points,
-    layout: layout,
-    height: height,
-    width: width,
-    left: left,
-    top: top,
-    needClip: needClip
-  }));
-}
-function computeLinePoints(_ref7) {
-  var {
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataKey,
-    bandSize,
-    displayedData
-  } = _ref7;
-  return displayedData.map((entry, index) => {
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    var value = (0, _ChartUtils.getValueByDataKey)(entry, dataKey);
-    if (layout === 'horizontal') {
-      var _x = (0, _ChartUtils.getCateCoordinateOfLine)({
-        axis: xAxis,
-        ticks: xAxisTicks,
-        bandSize,
-        entry,
-        index
-      });
-      var _y = (0, _DataUtils.isNullish)(value) ? null : yAxis.scale.map(value);
-      return {
-        x: _x,
-        y: _y !== null && _y !== void 0 ? _y : null,
-        value,
-        payload: entry
-      };
-    }
-    var x = (0, _DataUtils.isNullish)(value) ? null : xAxis.scale.map(value);
-    var y = (0, _ChartUtils.getCateCoordinateOfLine)({
-      axis: yAxis,
-      ticks: yAxisTicks,
-      bandSize,
-      entry,
-      index
-    });
-    if (x == null || y == null) {
-      return null;
-    }
-    return {
-      x,
-      y,
-      value,
-      payload: entry
-    };
-  }).filter(Boolean);
-}
-function LineFn(outsideProps) {
-  var props = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, defaultLineProps);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "line"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetLegendPayload.SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromAreaData(props)
-  }), /*#__PURE__*/React.createElement(SetLineTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    data: props.data,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    unit: props.unit,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(_SetGraphicalItem.SetCartesianGraphicalItem, {
-    type: "line",
-    id: id,
-    data: props.data,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: 0,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(LineImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @consumes CartesianChartContext
- */
-var Line = exports.Line = /*#__PURE__*/React.memo(LineFn, _propsAreEqual.propsAreEqual);
-Line.displayName = 'Line';
Index: de_modules/recharts/lib/cartesian/ReferenceArea.js
===================================================================
--- node_modules/recharts/lib/cartesian/ReferenceArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,182 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReferenceArea = ReferenceArea;
-exports.referenceAreaDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Label = require("../component/Label");
-var _CartesianUtils = require("../util/CartesianUtils");
-var _DataUtils = require("../util/DataUtils");
-var _Rectangle = require("../shape/Rectangle");
-var _referenceElementsSlice = require("../state/referenceElementsSlice");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _ClipPathProvider = require("../container/ClipPathProvider");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _CartesianScaleHelper = require("../util/scale/CartesianScaleHelper");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-/*
- * Omit width, height, x, y from SVGPropsAndEvents because ReferenceArea receives x1, x2, y1, y2 instead.
- * The position is calculated internally instead.
- */
-
-var getRect = (hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props) => {
-  var _xAxisScale$map, _yAxisScale$map, _xAxisScale$map2, _yAxisScale$map2;
-  var {
-    x1: xValue1,
-    x2: xValue2,
-    y1: yValue1,
-    y2: yValue2
-  } = props;
-  if (xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var scales = new _CartesianScaleHelper.CartesianScaleHelperImpl({
-    x: xAxisScale,
-    y: yAxisScale
-  });
-  var p1 = {
-    x: hasX1 ? (_xAxisScale$map = xAxisScale.map(xValue1, {
-      position: 'start'
-    })) !== null && _xAxisScale$map !== void 0 ? _xAxisScale$map : null : xAxisScale.rangeMin(),
-    y: hasY1 ? (_yAxisScale$map = yAxisScale.map(yValue1, {
-      position: 'start'
-    })) !== null && _yAxisScale$map !== void 0 ? _yAxisScale$map : null : yAxisScale.rangeMin()
-  };
-  var p2 = {
-    x: hasX2 ? (_xAxisScale$map2 = xAxisScale.map(xValue2, {
-      position: 'end'
-    })) !== null && _xAxisScale$map2 !== void 0 ? _xAxisScale$map2 : null : xAxisScale.rangeMax(),
-    y: hasY2 ? (_yAxisScale$map2 = yAxisScale.map(yValue2, {
-      position: 'end'
-    })) !== null && _yAxisScale$map2 !== void 0 ? _yAxisScale$map2 : null : yAxisScale.rangeMax()
-  };
-  if (props.ifOverflow === 'discard' && (!scales.isInRange(p1) || !scales.isInRange(p2))) {
-    return null;
-  }
-
-  // @ts-expect-error we're sending nullable coordinates but rectWithPoints expects non-nullable Coordinate
-  return (0, _CartesianUtils.rectWithPoints)(p1, p2);
-};
-var renderRect = (option, props) => {
-  var rect;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    rect = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    rect = option(props);
-  } else {
-    rect = /*#__PURE__*/React.createElement(_Rectangle.Rectangle, _extends({}, props, {
-      className: "recharts-reference-area-rect"
-    }));
-  }
-  return rect;
-};
-function ReportReferenceArea(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _referenceElementsSlice.addArea)(props));
-    return () => {
-      dispatch((0, _referenceElementsSlice.removeArea)(props));
-    };
-  });
-  return null;
-}
-function ReferenceAreaImpl(props) {
-  var {
-    x1,
-    x2,
-    y1,
-    y2,
-    className,
-    shape,
-    xAxisId,
-    yAxisId
-  } = props;
-  var clipPathId = (0, _ClipPathProvider.useClipPathId)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var xAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'yAxis', yAxisId, isPanorama));
-  if (xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var hasX1 = (0, _DataUtils.isNumOrStr)(x1);
-  var hasX2 = (0, _DataUtils.isNumOrStr)(x2);
-  var hasY1 = (0, _DataUtils.isNumOrStr)(y1);
-  var hasY2 = (0, _DataUtils.isNumOrStr)(y2);
-  if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {
-    return null;
-  }
-  var rect = getRect(hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props);
-  if (!rect && !shape) {
-    return null;
-  }
-  var isOverflowHidden = props.ifOverflow === 'hidden';
-  var clipPath = isOverflowHidden ? "url(#".concat(clipPathId, ")") : undefined;
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-reference-area', className)
-  }, renderRect(shape, _objectSpread(_objectSpread({
-    clipPath
-  }, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props)), rect)), rect != null && /*#__PURE__*/React.createElement(_Label.CartesianLabelContextProvider, _extends({}, rect, {
-    lowerWidth: rect.width,
-    upperWidth: rect.width
-  }), /*#__PURE__*/React.createElement(_Label.CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-var referenceAreaDefaultProps = exports.referenceAreaDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  radius: 0,
-  fill: '#ccc',
-  label: false,
-  fillOpacity: 0.5,
-  stroke: 'none',
-  strokeWidth: 1,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.area
-};
-/**
- * Draws a rectangular area on the chart to highlight a specific range.
- *
- * This component, unlike {@link Rectangle} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect}, is aware of the cartesian coordinate system,
- * so you specify the area by using data coordinates instead of pixels.
- *
- * ReferenceArea will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render rectangles using pixels rather than data coordinates,
- * consider using the {@link Rectangle} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-function ReferenceArea(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, referenceAreaDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceArea, {
-    yAxisId: props.yAxisId,
-    xAxisId: props.xAxisId,
-    ifOverflow: props.ifOverflow,
-    x1: props.x1,
-    x2: props.x2,
-    y1: props.y1,
-    y2: props.y2
-  }), /*#__PURE__*/React.createElement(ReferenceAreaImpl, props));
-}
-ReferenceArea.displayName = 'ReferenceArea';
Index: de_modules/recharts/lib/cartesian/ReferenceDot.js
===================================================================
--- node_modules/recharts/lib/cartesian/ReferenceDot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,169 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReferenceDot = ReferenceDot;
-exports.referenceDotDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Dot = require("../shape/Dot");
-var _Label = require("../component/Label");
-var _DataUtils = require("../util/DataUtils");
-var _referenceElementsSlice = require("../state/referenceElementsSlice");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _ClipPathProvider = require("../container/ClipPathProvider");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _CartesianScaleHelper = require("../util/scale/CartesianScaleHelper");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-var useCoordinate = (x, y, xAxisId, yAxisId, ifOverflow) => {
-  var isX = (0, _DataUtils.isNumOrStr)(x);
-  var isY = (0, _DataUtils.isNumOrStr)(y);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var xAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'yAxis', yAxisId, isPanorama));
-  if (!isX || !isY || xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var scales = new _CartesianScaleHelper.CartesianScaleHelperImpl({
-    x: xAxisScale,
-    y: yAxisScale
-  });
-  var result = scales.map({
-    x,
-    y
-  }, {
-    position: 'middle'
-  });
-  if (ifOverflow === 'discard' && !scales.isInRange(result)) {
-    return null;
-  }
-  return result;
-};
-function ReportReferenceDot(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _referenceElementsSlice.addDot)(props));
-    return () => {
-      dispatch((0, _referenceElementsSlice.removeDot)(props));
-    };
-  });
-  return null;
-}
-var renderDot = (option, props) => {
-  var dot;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    dot = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    dot = option(props);
-  } else {
-    dot = /*#__PURE__*/React.createElement(_Dot.Dot, _extends({}, props, {
-      cx: props.cx,
-      cy: props.cy,
-      className: "recharts-reference-dot-dot"
-    }));
-  }
-  return dot;
-};
-function ReferenceDotImpl(props) {
-  var {
-    x,
-    y,
-    r
-  } = props;
-  var clipPathId = (0, _ClipPathProvider.useClipPathId)();
-  var coordinate = useCoordinate(x, y, props.xAxisId, props.yAxisId, props.ifOverflow);
-  if (!coordinate) {
-    return null;
-  }
-  var {
-    x: cx,
-    y: cy
-  } = coordinate;
-  var {
-    shape,
-    className,
-    ifOverflow
-  } = props;
-  var clipPath = ifOverflow === 'hidden' ? "url(#".concat(clipPathId, ")") : undefined;
-  var dotProps = _objectSpread(_objectSpread({
-    clipPath
-  }, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props)), {}, {
-    cx: cx !== null && cx !== void 0 ? cx : undefined,
-    cy: cy !== null && cy !== void 0 ? cy : undefined
-  });
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-reference-dot', className)
-  }, renderDot(shape, dotProps), /*#__PURE__*/React.createElement(_Label.CartesianLabelContextProvider, {
-    x: cx - r,
-    y: cy - r,
-    width: 2 * r,
-    height: 2 * r,
-    upperWidth: 2 * r,
-    lowerWidth: 2 * r
-  }, /*#__PURE__*/React.createElement(_Label.CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-var referenceDotDefaultProps = exports.referenceDotDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  r: 10,
-  label: false,
-  fill: '#fff',
-  stroke: '#ccc',
-  fillOpacity: 1,
-  strokeWidth: 1,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.scatter
-};
-/**
- * Draws a circle on the chart to highlight a specific point.
- *
- * This component, unlike {@link Dot} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle circle}, is aware of the cartesian coordinate system,
- * so you specify its center by using data coordinates instead of pixels.
- *
- * ReferenceDot will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render dots using pixels rather than data coordinates,
- * consider using the {@link Dot} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-function ReferenceDot(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, referenceDotDefaultProps);
-  var {
-    x,
-    y,
-    r,
-    ifOverflow,
-    yAxisId,
-    xAxisId
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceDot, {
-    y: y,
-    x: x,
-    r: r,
-    yAxisId: yAxisId,
-    xAxisId: xAxisId,
-    ifOverflow: ifOverflow
-  }), /*#__PURE__*/React.createElement(ReferenceDotImpl, props));
-}
-ReferenceDot.displayName = 'ReferenceDot';
Index: de_modules/recharts/lib/cartesian/ReferenceLine.js
===================================================================
--- node_modules/recharts/lib/cartesian/ReferenceLine.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,266 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReferenceLine = ReferenceLine;
-exports.referenceLineDefaultProps = exports.getEndPoints = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Label = require("../component/Label");
-var _DataUtils = require("../util/DataUtils");
-var _CartesianUtils = require("../util/CartesianUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _referenceElementsSlice = require("../state/referenceElementsSlice");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _ClipPathProvider = require("../container/ClipPathProvider");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _CartesianScaleHelper = require("../util/scale/CartesianScaleHelper");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
- * @fileOverview Reference Line
- */
-/**
- * Single point that defines one end of a segment.
- * These coordinates are in data space, meaning that you should provide
- * values that correspond to the data domain of the axes.
- * So you would provide a value of `Page A` to indicate the data value `Page A`
- * and then recharts will convert that to pixels.
- *
- * Likewise for numbers. If your x-axis goes from 0 to 100,
- * and you want the line to end at 50, you would provide `50` here.
- *
- * @inline
- */
-
-/**
- * This excludes `viewBox` prop from svg for two reasons:
- * 1. The components wants viewBox of object type, and svg wants string
- *    - so there's a conflict, and the component will throw if it gets string
- * 2. Internally the component calls `svgPropertiesNoEvents` which filters the viewBox away anyway
- */
-
-var renderLine = (option, props) => {
-  var line;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    line = /*#__PURE__*/React.cloneElement(option, props);
-  } else if (typeof option === 'function') {
-    line = option(props);
-  } else {
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(props.x1) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(props.y1) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(props.x2) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(props.y2)) {
-      return null;
-    }
-    line = /*#__PURE__*/React.createElement("line", _extends({}, props, {
-      className: "recharts-reference-line-line"
-    }));
-  }
-  return line;
-};
-var getHorizontalLineEndPoints = (yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox) => {
-  var {
-    x,
-    width
-  } = viewBox;
-  var coord = yAxisScale.map(yCoord, {
-    position
-  });
-  // don't render the line if the scale can't compute a result that makes sense
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(coord)) {
-    return null;
-  }
-  if (ifOverflow === 'discard' && !yAxisScale.isInRange(coord)) {
-    return null;
-  }
-  var points = [{
-    x: x + width,
-    y: coord
-  }, {
-    x,
-    y: coord
-  }];
-  return yAxisOrientation === 'left' ? points.reverse() : points;
-};
-var getVerticalLineEndPoints = (xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox) => {
-  var {
-    y,
-    height
-  } = viewBox;
-  var coord = xAxisScale.map(xCoord, {
-    position
-  });
-  // don't render the line if the scale can't compute a result that makes sense
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(coord)) {
-    return null;
-  }
-  if (ifOverflow === 'discard' && !xAxisScale.isInRange(coord)) {
-    return null;
-  }
-  var points = [{
-    x: coord,
-    y: y + height
-  }, {
-    x: coord,
-    y
-  }];
-  return xAxisOrientation === 'top' ? points.reverse() : points;
-};
-var getSegmentLineEndPoints = (segment, ifOverflow, position, scales) => {
-  var points = [scales.mapWithFallback(segment[0], {
-    position,
-    fallback: 'rangeMin'
-  }), scales.mapWithFallback(segment[1], {
-    position,
-    fallback: 'rangeMax'
-  })];
-  if (ifOverflow === 'discard' && points.some(p => !scales.isInRange(p))) {
-    return null;
-  }
-  return points;
-};
-var getEndPoints = (xAxisScale, yAxisScale, viewBox, position, xAxisOrientation, yAxisOrientation, props) => {
-  var {
-    x: xCoord,
-    y: yCoord,
-    segment,
-    ifOverflow
-  } = props;
-  var isFixedX = (0, _DataUtils.isNumOrStr)(xCoord);
-  var isFixedY = (0, _DataUtils.isNumOrStr)(yCoord);
-  if (isFixedY) {
-    return getHorizontalLineEndPoints(yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox);
-  }
-  if (isFixedX) {
-    return getVerticalLineEndPoints(xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox);
-  }
-  if (segment != null && segment.length === 2) {
-    return getSegmentLineEndPoints(segment, ifOverflow, position, new _CartesianScaleHelper.CartesianScaleHelperImpl({
-      x: xAxisScale,
-      y: yAxisScale
-    }));
-  }
-  return null;
-};
-exports.getEndPoints = getEndPoints;
-function ReportReferenceLine(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _referenceElementsSlice.addLine)(props));
-    return () => {
-      dispatch((0, _referenceElementsSlice.removeLine)(props));
-    };
-  });
-  return null;
-}
-function ReferenceLineImpl(props) {
-  var {
-    xAxisId,
-    yAxisId,
-    shape,
-    className,
-    ifOverflow
-  } = props;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var clipPathId = (0, _ClipPathProvider.useClipPathId)();
-  var xAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectXAxisSettings)(state, xAxisId));
-  var yAxis = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectYAxisSettings)(state, yAxisId));
-  var xAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'xAxis', xAxisId, isPanorama));
-  var yAxisScale = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisScale)(state, 'yAxis', yAxisId, isPanorama));
-  var viewBox = (0, _chartLayoutContext.useViewBox)();
-  if (!clipPathId || !viewBox || xAxis == null || yAxis == null || xAxisScale == null || yAxisScale == null) {
-    return null;
-  }
-  var endPoints = getEndPoints(xAxisScale, yAxisScale, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);
-  if (!endPoints) {
-    return null;
-  }
-  var point1 = endPoints[0];
-  var point2 = endPoints[1];
-  if (point1 == null || point2 == null) {
-    return null;
-  }
-  var {
-    x: x1,
-    y: y1
-  } = point1;
-  var {
-    x: x2,
-    y: y2
-  } = point2;
-  var clipPath = ifOverflow === 'hidden' ? "url(#".concat(clipPathId, ")") : undefined;
-  var lineProps = _objectSpread(_objectSpread({
-    clipPath
-  }, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props)), {}, {
-    x1,
-    y1,
-    x2,
-    y2
-  });
-  var rect = (0, _CartesianUtils.rectWithCoords)({
-    x1,
-    y1,
-    x2,
-    y2
-  });
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-reference-line', className)
-  }, renderLine(shape, lineProps), /*#__PURE__*/React.createElement(_Label.CartesianLabelContextProvider, _extends({}, rect, {
-    lowerWidth: rect.width,
-    upperWidth: rect.width
-  }), /*#__PURE__*/React.createElement(_Label.CartesianLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-}
-var referenceLineDefaultProps = exports.referenceLineDefaultProps = {
-  ifOverflow: 'discard',
-  xAxisId: 0,
-  yAxisId: 0,
-  fill: 'none',
-  label: false,
-  stroke: '#ccc',
-  fillOpacity: 1,
-  strokeWidth: 1,
-  position: 'middle',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.line
-};
-/**
- * Draws a line on the chart connecting two points.
- *
- * This component, unlike {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line}, is aware of the cartesian coordinate system,
- * so you specify the dimensions by using data coordinates instead of pixels.
- *
- * ReferenceLine will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render using pixels rather than data coordinates,
- * consider using the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line SVG element} instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-function ReferenceLine(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, referenceLineDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceLine, {
-    yAxisId: props.yAxisId,
-    xAxisId: props.xAxisId,
-    ifOverflow: props.ifOverflow,
-    x: props.x,
-    y: props.y,
-    segment: props.segment
-  }), /*#__PURE__*/React.createElement(ReferenceLineImpl, props));
-}
-ReferenceLine.displayName = 'ReferenceLine';
Index: de_modules/recharts/lib/cartesian/Scatter.js
===================================================================
--- node_modules/recharts/lib/cartesian/Scatter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,614 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Scatter = void 0;
-exports.computeScatterPoints = computeScatterPoints;
-exports.defaultScatterProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _LabelList = require("../component/LabelList");
-var _ReactUtils = require("../util/ReactUtils");
-var _Curve = require("../shape/Curve");
-var _Cell = require("../component/Cell");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _types = require("../util/types");
-var _ScatterUtils = require("../util/ScatterUtils");
-var _tooltipContext = require("../context/tooltipContext");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _ErrorBarContext = require("../context/ErrorBarContext");
-var _GraphicalItemClipPath = require("./GraphicalItemClipPath");
-var _scatterSelectors = require("../state/selectors/scatterSelectors");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _Constants = require("../util/Constants");
-var _useAnimationId = require("../util/useAnimationId");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _propsAreEqual = require("../util/propsAreEqual");
-var _excluded = ["id"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["animationBegin", "animationDuration", "animationEasing", "hide", "isAnimationActive", "legendType", "lineJointType", "lineType", "shape", "xAxisId", "yAxisId", "zAxisId"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * Scatter coordinates are nullable because sometimes the point value is out of the domain,
- * and we can't compute a valid coordinate for it.
- *
- * Scatter -> Symbol ignores points with null cx or cy so those won't render if using the default shapes.
- * However: the points are exposed via various props and can be used in custom shapes so we keep them around.
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-/**
- * External props, intended for end users to fill in
- */
-
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-
-var computeLegendPayloadFromScatterProps = props => {
-  var {
-    dataKey,
-    name,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: fill,
-    value: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-    payload: props
-  }];
-};
-var SetScatterTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    points,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: points === null || points === void 0 ? void 0 : points.map(p => p.tooltipPayload),
-    getPosition: index => {
-      var _points$Number;
-      return points === null || points === void 0 || (_points$Number = points[Number(index)]) === null || _points$Number === void 0 ? void 0 : _points$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      dataKey,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // why doesn't Scatter support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function ScatterLine(_ref2) {
-  var {
-    points,
-    props
-  } = _ref2;
-  var {
-    line,
-    lineType,
-    lineJointType
-  } = props;
-  if (!line) {
-    return null;
-  }
-  var scatterProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props);
-  var customLineProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(line);
-  var linePoints, lineItem;
-  if (lineType === 'joint') {
-    linePoints = points.map(entry => {
-      var _entry$cx, _entry$cy;
-      return {
-        x: (_entry$cx = entry.cx) !== null && _entry$cx !== void 0 ? _entry$cx : null,
-        y: (_entry$cy = entry.cy) !== null && _entry$cy !== void 0 ? _entry$cy : null
-      };
-    });
-  } else if (lineType === 'fitting') {
-    var {
-      xmin,
-      xmax,
-      a,
-      b
-    } = (0, _DataUtils.getLinearRegression)(points);
-    var linearExp = x => a * x + b;
-    linePoints = [{
-      x: xmin,
-      y: linearExp(xmin)
-    }, {
-      x: xmax,
-      y: linearExp(xmax)
-    }];
-  }
-  var lineProps = _objectSpread(_objectSpread(_objectSpread({}, scatterProps), {}, {
-    // @ts-expect-error customLineProps is contributing unknown props
-    fill: 'none',
-    // @ts-expect-error customLineProps is contributing unknown props
-    stroke: scatterProps && scatterProps.fill
-  }, customLineProps), {}, {
-    // @ts-expect-error linePoints is used before it is assigned (???)
-    points: linePoints
-  });
-  if (/*#__PURE__*/React.isValidElement(line)) {
-    lineItem = /*#__PURE__*/React.cloneElement(line, lineProps);
-  } else if (typeof line === 'function') {
-    lineItem = line(lineProps);
-  } else {
-    lineItem = /*#__PURE__*/React.createElement(_Curve.Curve, _extends({}, lineProps, {
-      type: lineJointType
-    }));
-  }
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-scatter-line",
-    key: "recharts-scatter-line"
-  }, lineItem);
-}
-function ScatterLabelListProvider(_ref3) {
-  var {
-    showLabels,
-    points,
-    children
-  } = _ref3;
-  var chartViewBox = (0, _chartLayoutContext.useViewBox)();
-  var labelListEntries = (0, _react.useMemo)(() => {
-    return points === null || points === void 0 ? void 0 : points.map(point => {
-      var _point$x, _point$y;
-      var viewBox = {
-        /*
-         * Scatter label uses x and y as the reference point for the label,
-         * not cx and cy.
-         */
-        x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,
-        /*
-         * Scatter label uses x and y as the reference point for the label,
-         * not cx and cy.
-         */
-        y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,
-        width: point.width,
-        height: point.height,
-        lowerWidth: point.width,
-        upperWidth: point.width
-      };
-      return _objectSpread(_objectSpread({}, viewBox), {}, {
-        /*
-         * Here we put undefined because Scatter shows two values usually, one for X and one for Y.
-         * LabelList will see this undefined and will use its own `dataKey` prop to determine which value to show,
-         * using the payload below.
-         */
-        value: undefined,
-        payload: point.payload,
-        viewBox,
-        parentViewBox: chartViewBox,
-        fill: undefined
-      });
-    });
-  }, [chartViewBox, points]);
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function ScatterSymbols(props) {
-  var {
-    points,
-    allOtherScatterProps
-  } = props;
-  var {
-    shape,
-    activeShape,
-    dataKey
-  } = allOtherScatterProps;
-  var {
-      id
-    } = allOtherScatterProps,
-    allOtherPropsWithoutId = _objectWithoutProperties(allOtherScatterProps, _excluded);
-  var activeIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherScatterProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherScatterProps, _excluded2);
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, dataKey, id);
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, dataKey, id);
-  if (!(0, _types.isNonEmptyArray)(points)) {
-    return null;
-  }
-  var baseProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(allOtherPropsWithoutId);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScatterLine, {
-    points: points,
-    props: allOtherPropsWithoutId
-  }), points.map((entry, i) => {
-    var hasActiveShape = activeShape != null && activeShape !== false;
-    var isActive = hasActiveShape && activeIndex === String(i);
-    var option = hasActiveShape && isActive ? activeShape : shape;
-    var symbolProps = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {
-      index: i,
-      [_Constants.DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: String(id)
-    });
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      key: "symbol-".concat(entry === null || entry === void 0 ? void 0 : entry.cx, "-").concat(entry === null || entry === void 0 ? void 0 : entry.cy, "-").concat(entry === null || entry === void 0 ? void 0 : entry.size, "-").concat(i)
-      /*
-       * inactive Scatters use the parent zIndex, which is represented by undefined here.
-       * ZIndexLayer will render undefined zIndex as-is, as regular children, without portals.
-       * Active Scatters use the activeDot zIndex so they render above other elements.
-       */,
-      zIndex: isActive ? _DefaultZIndexes.DefaultZIndexes.activeDot : undefined
-    }, /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      className: "recharts-scatter-symbol"
-    }, (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(_ScatterUtils.ScatterSymbol, _extends({
-      option: option,
-      isActive: isActive
-    }, symbolProps))));
-  }));
-}
-function SymbolsWithAnimation(_ref4) {
-  var {
-    previousPointsRef,
-    props
-  } = _ref4;
-  var {
-    points,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var animationId = (0, _useAnimationId.useAnimationId)(props, 'recharts-scatter-');
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    // Scatter doesn't have onAnimationEnd prop, and if we want to add it we do it here
-    // if (typeof onAnimationEnd === 'function') {
-    //   onAnimationEnd();
-    // }
-    setIsAnimating(false);
-  }, []);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    // Scatter doesn't have onAnimationStart prop, and if we want to add it we do it here
-    // if (typeof onAnimationStart === 'function') {
-    //   onAnimationStart();
-    // }
-    setIsAnimating(true);
-  }, []);
-  var showLabels = !isAnimating;
-  return /*#__PURE__*/React.createElement(ScatterLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, props.children, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? points : points === null || points === void 0 ? void 0 : points.map((entry, index) => {
-      var prev = prevPoints && prevPoints[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          cx: entry.cx == null ? undefined : (0, _DataUtils.interpolate)(prev.cx, entry.cx, t),
-          cy: entry.cy == null ? undefined : (0, _DataUtils.interpolate)(prev.cy, entry.cy, t),
-          size: (0, _DataUtils.interpolate)(prev.size, entry.size, t)
-        });
-      }
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        size: (0, _DataUtils.interpolate)(0, entry.size, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, /*#__PURE__*/React.createElement(ScatterSymbols, {
-      points: stepData,
-      allOtherScatterProps: props,
-      showLabels: showLabels
-    }));
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }));
-}
-function computeScatterPoints(_ref5) {
-  var {
-    displayedData,
-    xAxis,
-    yAxis,
-    zAxis,
-    scatterSettings,
-    xAxisTicks,
-    yAxisTicks,
-    cells
-  } = _ref5;
-  var xAxisDataKey = (0, _DataUtils.isNullish)(xAxis.dataKey) ? scatterSettings.dataKey : xAxis.dataKey;
-  var yAxisDataKey = (0, _DataUtils.isNullish)(yAxis.dataKey) ? scatterSettings.dataKey : yAxis.dataKey;
-  var zAxisDataKey = zAxis && zAxis.dataKey;
-  var defaultRangeZ = zAxis ? zAxis.range : _axisSelectors.implicitZAxis.range;
-  var defaultZ = defaultRangeZ && defaultRangeZ[0];
-  var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;
-  var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;
-  return displayedData.map((entry, index) => {
-    var x = (0, _ChartUtils.getValueByDataKey)(entry, xAxisDataKey);
-    var y = (0, _ChartUtils.getValueByDataKey)(entry, yAxisDataKey);
-    var z = !(0, _DataUtils.isNullish)(zAxisDataKey) && (0, _ChartUtils.getValueByDataKey)(entry, zAxisDataKey) || '-';
-    var tooltipPayload = [{
-      name: (0, _DataUtils.isNullish)(xAxis.dataKey) ? scatterSettings.name : xAxis.name || String(xAxis.dataKey),
-      unit: xAxis.unit || '',
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value: x,
-      payload: entry,
-      dataKey: xAxisDataKey,
-      type: scatterSettings.tooltipType
-    }, {
-      name: (0, _DataUtils.isNullish)(yAxis.dataKey) ? scatterSettings.name : yAxis.name || String(yAxis.dataKey),
-      unit: yAxis.unit || '',
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value: y,
-      payload: entry,
-      dataKey: yAxisDataKey,
-      type: scatterSettings.tooltipType
-    }];
-    if (z !== '-' && zAxis != null) {
-      tooltipPayload.push({
-        // @ts-expect-error name prop should not have dataKey in it
-        name: zAxis.name || zAxis.dataKey,
-        unit: zAxis.unit || '',
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        value: z,
-        payload: entry,
-        dataKey: zAxisDataKey,
-        type: scatterSettings.tooltipType
-      });
-    }
-    var cx = (0, _ChartUtils.getCateCoordinateOfLine)({
-      axis: xAxis,
-      ticks: xAxisTicks,
-      bandSize: xBandSize,
-      entry,
-      index,
-      dataKey: xAxisDataKey
-    });
-    var cy = (0, _ChartUtils.getCateCoordinateOfLine)({
-      axis: yAxis,
-      ticks: yAxisTicks,
-      bandSize: yBandSize,
-      entry,
-      index,
-      dataKey: yAxisDataKey
-    });
-    var size = z !== '-' && zAxis != null ? zAxis.scale.map(z) : defaultZ;
-    var radius = size == null ? 0 : Math.sqrt(Math.max(size, 0) / Math.PI);
-    return _objectSpread(_objectSpread({}, entry), {}, {
-      cx,
-      cy,
-      x: cx == null ? undefined : cx - radius,
-      y: cy == null ? undefined : cy - radius,
-      width: 2 * radius,
-      height: 2 * radius,
-      size,
-      node: {
-        x,
-        y,
-        z
-      },
-      tooltipPayload,
-      tooltipPosition: {
-        x: cx,
-        y: cy
-      },
-      payload: entry
-    }, cells && cells[index] && cells[index].props);
-  });
-}
-var errorBarDataPointFormatter = (dataPoint, dataKey, direction) => {
-  return {
-    x: dataPoint.cx,
-    y: dataPoint.cy,
-    value: direction === 'x' ? Number(dataPoint.node.x) : Number(dataPoint.node.y),
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    errorVal: (0, _ChartUtils.getValueByDataKey)(dataPoint, dataKey)
-  };
-};
-function ScatterWithId(props) {
-  var {
-    hide,
-    points,
-    className,
-    needClip,
-    xAxisId,
-    yAxisId,
-    id
-  } = props;
-  var previousPointsRef = (0, _react.useRef)(null);
-  if (hide) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-scatter', className);
-  var clipPathId = id;
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: layerClass,
-    clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : undefined,
-    id: id
-  }, needClip && /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement(_GraphicalItemClipPath.GraphicalItemClipPath, {
-    clipPathId: clipPathId,
-    xAxisId: xAxisId,
-    yAxisId: yAxisId
-  })), /*#__PURE__*/React.createElement(_ErrorBarContext.SetErrorBarContext, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    data: points,
-    dataPointFormatter: errorBarDataPointFormatter,
-    errorBarOffset: 0
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    key: "recharts-scatter-symbols"
-  }, /*#__PURE__*/React.createElement(SymbolsWithAnimation, {
-    props: props,
-    previousPointsRef: previousPointsRef
-  })))));
-}
-var defaultScatterProps = exports.defaultScatterProps = {
-  xAxisId: 0,
-  yAxisId: 0,
-  zAxisId: 0,
-  label: false,
-  line: false,
-  legendType: 'circle',
-  lineType: 'joint',
-  lineJointType: 'linear',
-  shape: 'circle',
-  hide: false,
-  isAnimationActive: 'auto',
-  animationBegin: 0,
-  animationDuration: 400,
-  animationEasing: 'linear',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.scatter
-};
-function ScatterImpl(props) {
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(props, defaultScatterProps),
-    {
-      animationBegin,
-      animationDuration,
-      animationEasing,
-      hide,
-      isAnimationActive,
-      legendType,
-      lineJointType,
-      lineType,
-      shape,
-      xAxisId,
-      yAxisId,
-      zAxisId
-    } = _resolveDefaultProps,
-    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);
-  var {
-    needClip
-  } = (0, _GraphicalItemClipPath.useNeedsClip)(xAxisId, yAxisId);
-  var cells = (0, _react.useMemo)(() => (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell), [props.children]);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var points = (0, _hooks.useAppSelector)(state => {
-    return (0, _scatterSelectors.selectScatterPoints)(state, xAxisId, yAxisId, zAxisId, props.id, cells, isPanorama);
-  });
-  if (needClip == null) {
-    return null;
-  }
-  if (points == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetScatterTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    points: points,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: props.id
-  }), /*#__PURE__*/React.createElement(ScatterWithId, _extends({}, everythingElse, {
-    xAxisId: xAxisId,
-    yAxisId: yAxisId,
-    zAxisId: zAxisId,
-    lineType: lineType,
-    lineJointType: lineJointType,
-    legendType: legendType,
-    shape: shape,
-    hide: hide,
-    isAnimationActive: isAnimationActive,
-    animationBegin: animationBegin,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    points: points,
-    needClip: needClip
-  })));
-}
-function ScatterFn(outsideProps) {
-  var props = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, defaultScatterProps);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "scatter"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetLegendPayload.SetLegendPayload, {
-    legendPayload: computeLegendPayloadFromScatterProps(props)
-  }), /*#__PURE__*/React.createElement(_SetGraphicalItem.SetCartesianGraphicalItem, {
-    type: "scatter",
-    id: id,
-    data: props.data,
-    xAxisId: props.xAxisId,
-    yAxisId: props.yAxisId,
-    zAxisId: props.zAxisId,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    name: props.name,
-    tooltipType: props.tooltipType,
-    isPanorama: isPanorama
-  }), /*#__PURE__*/React.createElement(ScatterImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @provides CellReader
- * @consumes CartesianChartContext
- */
-var Scatter = exports.Scatter = /*#__PURE__*/React.memo(ScatterFn, _propsAreEqual.propsAreEqual);
-Scatter.displayName = 'Scatter';
Index: de_modules/recharts/lib/cartesian/XAxis.js
===================================================================
--- node_modules/recharts/lib/cartesian/XAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,178 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.xAxisDefaultProps = exports.XAxis = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _CartesianAxis = require("./CartesianAxis");
-var _hooks = require("../state/hooks");
-var _cartesianAxisSlice = require("../state/cartesianAxisSlice");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _selectChartOffsetInternal = require("../state/selectors/selectChartOffsetInternal");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _axisPropsAreEqual = require("../util/axisPropsAreEqual");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _getAxisTypeBasedOnLayout = require("../util/getAxisTypeBasedOnLayout");
-var _excluded = ["type"],
-  _excluded2 = ["dangerouslySetInnerHTML", "ticks", "scale"],
-  _excluded3 = ["id", "scale"];
-/**
- * @fileOverview X Axis
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function SetXAxisSettings(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var prevSettingsRef = (0, _react.useRef)(null);
-  var layout = (0, _chartLayoutContext.useCartesianChartLayout)();
-  var {
-      type: typeFromProps
-    } = props,
-    restProps = _objectWithoutProperties(props, _excluded);
-  var evaluatedType = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'xAxis', typeFromProps);
-  var settings = (0, _react.useMemo)(() => {
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, restProps), {}, {
-      type: evaluatedType
-    });
-  }, [restProps, evaluatedType]);
-  (0, _react.useLayoutEffect)(() => {
-    if (settings == null) {
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch((0, _cartesianAxisSlice.addXAxis)(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch((0, _cartesianAxisSlice.replaceXAxis)({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch((0, _cartesianAxisSlice.removeXAxis)(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-var XAxisImpl = props => {
-  var {
-    xAxisId,
-    className
-  } = props;
-  var viewBox = (0, _hooks.useAppSelector)(_selectChartOffsetInternal.selectAxisViewBox);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var axisType = 'xAxis';
-  var cartesianTickItems = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectTicksOfAxis)(state, axisType, xAxisId, isPanorama));
-  var axisSize = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectXAxisSize)(state, xAxisId));
-  var position = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectXAxisPosition)(state, xAxisId));
-  /*
-   * Here we select settings from the store and prefer to use them instead of the actual props
-   * so that the chart is consistent. If we used the props directly, some components will use axis settings
-   * from state and some from props and because there is a render step between these two, they might be showing different things.
-   * https://github.com/recharts/recharts/issues/6257
-   */
-  var synchronizedSettings = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectXAxisSettingsNoDefaults)(state, xAxisId));
-  if (axisSize == null || position == null || synchronizedSettings == null) {
-    return null;
-  }
-  var {
-      dangerouslySetInnerHTML,
-      ticks,
-      scale: del
-    } = props,
-    allOtherProps = _objectWithoutProperties(props, _excluded2);
-  var {
-      id,
-      scale: del2
-    } = synchronizedSettings,
-    restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);
-  return /*#__PURE__*/React.createElement(_CartesianAxis.CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {
-    x: position.x,
-    y: position.y,
-    width: axisSize.width,
-    height: axisSize.height,
-    className: (0, _clsx.clsx)("recharts-".concat(axisType, " ").concat(axisType), className),
-    viewBox: viewBox,
-    ticks: cartesianTickItems,
-    axisType: axisType
-  }));
-};
-var xAxisDefaultProps = exports.xAxisDefaultProps = {
-  allowDataOverflow: _axisSelectors.implicitXAxis.allowDataOverflow,
-  allowDecimals: _axisSelectors.implicitXAxis.allowDecimals,
-  allowDuplicatedCategory: _axisSelectors.implicitXAxis.allowDuplicatedCategory,
-  angle: _axisSelectors.implicitXAxis.angle,
-  axisLine: _CartesianAxis.defaultCartesianAxisProps.axisLine,
-  height: _axisSelectors.implicitXAxis.height,
-  hide: false,
-  includeHidden: _axisSelectors.implicitXAxis.includeHidden,
-  interval: _axisSelectors.implicitXAxis.interval,
-  label: false,
-  minTickGap: _axisSelectors.implicitXAxis.minTickGap,
-  mirror: _axisSelectors.implicitXAxis.mirror,
-  orientation: _axisSelectors.implicitXAxis.orientation,
-  padding: _axisSelectors.implicitXAxis.padding,
-  reversed: _axisSelectors.implicitXAxis.reversed,
-  scale: _axisSelectors.implicitXAxis.scale,
-  tick: _axisSelectors.implicitXAxis.tick,
-  tickCount: _axisSelectors.implicitXAxis.tickCount,
-  tickLine: _CartesianAxis.defaultCartesianAxisProps.tickLine,
-  tickSize: _CartesianAxis.defaultCartesianAxisProps.tickSize,
-  type: _axisSelectors.implicitXAxis.type,
-  xAxisId: 0
-};
-var XAxisSettingsDispatcher = outsideProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, xAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {
-    allowDataOverflow: props.allowDataOverflow,
-    allowDecimals: props.allowDecimals,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    angle: props.angle,
-    dataKey: props.dataKey,
-    domain: props.domain,
-    height: props.height,
-    hide: props.hide,
-    id: props.xAxisId,
-    includeHidden: props.includeHidden,
-    interval: props.interval,
-    minTickGap: props.minTickGap,
-    mirror: props.mirror,
-    name: props.name,
-    orientation: props.orientation,
-    padding: props.padding,
-    reversed: props.reversed,
-    scale: props.scale,
-    tick: props.tick,
-    tickCount: props.tickCount,
-    tickFormatter: props.tickFormatter,
-    ticks: props.ticks,
-    type: props.type,
-    unit: props.unit
-  }), /*#__PURE__*/React.createElement(XAxisImpl, props));
-};
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-var XAxis = exports.XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, _axisPropsAreEqual.axisPropsAreEqual);
-XAxis.displayName = 'XAxis';
Index: de_modules/recharts/lib/cartesian/YAxis.js
===================================================================
--- node_modules/recharts/lib/cartesian/YAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,212 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.yAxisDefaultProps = exports.YAxis = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _CartesianAxis = require("./CartesianAxis");
-var _cartesianAxisSlice = require("../state/cartesianAxisSlice");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _selectChartOffsetInternal = require("../state/selectors/selectChartOffsetInternal");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _Label = require("../component/Label");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _axisPropsAreEqual = require("../util/axisPropsAreEqual");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _getAxisTypeBasedOnLayout = require("../util/getAxisTypeBasedOnLayout");
-var _excluded = ["type"],
-  _excluded2 = ["dangerouslySetInnerHTML", "ticks", "scale"],
-  _excluded3 = ["id", "scale"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function SetYAxisSettings(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var prevSettingsRef = (0, _react.useRef)(null);
-  var layout = (0, _chartLayoutContext.useCartesianChartLayout)();
-  var {
-      type: typeFromProps
-    } = props,
-    restProps = _objectWithoutProperties(props, _excluded);
-  var evaluatedType = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'yAxis', typeFromProps);
-  var settings = (0, _react.useMemo)(() => {
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, restProps), {}, {
-      type: evaluatedType
-    });
-  }, [evaluatedType, restProps]);
-  (0, _react.useLayoutEffect)(() => {
-    if (settings == null) {
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch((0, _cartesianAxisSlice.addYAxis)(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch((0, _cartesianAxisSlice.replaceYAxis)({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch((0, _cartesianAxisSlice.removeYAxis)(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-function YAxisImpl(props) {
-  var {
-    yAxisId,
-    className,
-    width,
-    label
-  } = props;
-  var cartesianAxisRef = (0, _react.useRef)(null);
-  var labelRef = (0, _react.useRef)(null);
-  var viewBox = (0, _hooks.useAppSelector)(_selectChartOffsetInternal.selectAxisViewBox);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var axisType = 'yAxis';
-  var axisSize = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectYAxisSize)(state, yAxisId));
-  var position = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectYAxisPosition)(state, yAxisId));
-  var cartesianTickItems = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectTicksOfAxis)(state, axisType, yAxisId, isPanorama));
-  /*
-   * Here we select settings from the store and prefer to use them instead of the actual props
-   * so that the chart is consistent. If we used the props directly, some components will use axis settings
-   * from state and some from props and because there is a render step between these two, they might be showing different things.
-   * https://github.com/recharts/recharts/issues/6257
-   */
-  var synchronizedSettings = (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectYAxisSettingsNoDefaults)(state, yAxisId));
-  (0, _react.useLayoutEffect)(() => {
-    // No dynamic width calculation is done when width !== 'auto'
-    // or when a function/react element is used for label
-    if (width !== 'auto' || !axisSize || (0, _Label.isLabelContentAFunction)(label) || /*#__PURE__*/(0, _react.isValidElement)(label) || synchronizedSettings == null) {
-      return;
-    }
-    var axisComponent = cartesianAxisRef.current;
-    if (!axisComponent) {
-      return;
-    }
-    var updatedYAxisWidth = axisComponent.getCalculatedWidth();
-
-    // if the width has changed, dispatch an action to update the width
-    if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {
-      dispatch((0, _cartesianAxisSlice.updateYAxisWidth)({
-        id: yAxisId,
-        width: updatedYAxisWidth
-      }));
-    }
-  }, [
-  // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.
-  // The ref will be populated by then.
-  // To re-run this effect when ticks change, we can depend on the ticks array from the store.
-  cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);
-  if (axisSize == null || position == null || synchronizedSettings == null) {
-    return null;
-  }
-  var {
-      dangerouslySetInnerHTML,
-      ticks,
-      scale: del
-    } = props,
-    allOtherProps = _objectWithoutProperties(props, _excluded2);
-  var {
-      id,
-      scale: del2
-    } = synchronizedSettings,
-    restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);
-  return /*#__PURE__*/React.createElement(_CartesianAxis.CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {
-    ref: cartesianAxisRef,
-    labelRef: labelRef,
-    x: position.x,
-    y: position.y,
-    tickTextProps: width === 'auto' ? {
-      width: undefined
-    } : {
-      width
-    },
-    width: axisSize.width,
-    height: axisSize.height,
-    className: (0, _clsx.clsx)("recharts-".concat(axisType, " ").concat(axisType), className),
-    viewBox: viewBox,
-    ticks: cartesianTickItems,
-    axisType: axisType
-  }));
-}
-var yAxisDefaultProps = exports.yAxisDefaultProps = {
-  allowDataOverflow: _axisSelectors.implicitYAxis.allowDataOverflow,
-  allowDecimals: _axisSelectors.implicitYAxis.allowDecimals,
-  allowDuplicatedCategory: _axisSelectors.implicitYAxis.allowDuplicatedCategory,
-  angle: _axisSelectors.implicitYAxis.angle,
-  axisLine: _CartesianAxis.defaultCartesianAxisProps.axisLine,
-  hide: false,
-  includeHidden: _axisSelectors.implicitYAxis.includeHidden,
-  interval: _axisSelectors.implicitYAxis.interval,
-  label: false,
-  minTickGap: _axisSelectors.implicitYAxis.minTickGap,
-  mirror: _axisSelectors.implicitYAxis.mirror,
-  orientation: _axisSelectors.implicitYAxis.orientation,
-  padding: _axisSelectors.implicitYAxis.padding,
-  reversed: _axisSelectors.implicitYAxis.reversed,
-  scale: _axisSelectors.implicitYAxis.scale,
-  tick: _axisSelectors.implicitYAxis.tick,
-  tickCount: _axisSelectors.implicitYAxis.tickCount,
-  tickLine: _CartesianAxis.defaultCartesianAxisProps.tickLine,
-  tickSize: _CartesianAxis.defaultCartesianAxisProps.tickSize,
-  type: _axisSelectors.implicitYAxis.type,
-  width: _axisSelectors.implicitYAxis.width,
-  yAxisId: 0
-};
-var YAxisSettingsDispatcher = outsideProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, yAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {
-    interval: props.interval,
-    id: props.yAxisId,
-    scale: props.scale,
-    type: props.type,
-    domain: props.domain,
-    allowDataOverflow: props.allowDataOverflow,
-    dataKey: props.dataKey,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    allowDecimals: props.allowDecimals,
-    tickCount: props.tickCount,
-    padding: props.padding,
-    includeHidden: props.includeHidden,
-    reversed: props.reversed,
-    ticks: props.ticks,
-    width: props.width,
-    orientation: props.orientation,
-    mirror: props.mirror,
-    hide: props.hide,
-    unit: props.unit,
-    name: props.name,
-    angle: props.angle,
-    minTickGap: props.minTickGap,
-    tick: props.tick,
-    tickFormatter: props.tickFormatter
-  }), /*#__PURE__*/React.createElement(YAxisImpl, props));
-};
-
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-var YAxis = exports.YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, _axisPropsAreEqual.axisPropsAreEqual);
-YAxis.displayName = 'YAxis';
Index: de_modules/recharts/lib/cartesian/ZAxis.js
===================================================================
--- node_modules/recharts/lib/cartesian/ZAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ZAxis = ZAxis;
-exports.zAxisDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _cartesianAxisSlice = require("../state/cartesianAxisSlice");
-var _hooks = require("../state/hooks");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function SetZAxisSettings(settings) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var prevSettingsRef = (0, _react.useRef)(null);
-  (0, _react.useLayoutEffect)(() => {
-    if (prevSettingsRef.current === null) {
-      dispatch((0, _cartesianAxisSlice.addZAxis)(settings));
-    } else if (prevSettingsRef.current !== settings) {
-      dispatch((0, _cartesianAxisSlice.replaceZAxis)({
-        prev: prevSettingsRef.current,
-        next: settings
-      }));
-    }
-    prevSettingsRef.current = settings;
-  }, [settings, dispatch]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch((0, _cartesianAxisSlice.removeZAxis)(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-var zAxisDefaultProps = exports.zAxisDefaultProps = {
-  zAxisId: 0,
-  range: _axisSelectors.implicitZAxis.range,
-  scale: _axisSelectors.implicitZAxis.scale,
-  type: _axisSelectors.implicitZAxis.type
-};
-
-/**
- * Virtual axis, does not render anything itself. Has no ticks, grid lines, or labels.
- * Useful for dynamically setting Scatter point size, based on data.
- *
- * @consumes CartesianViewBoxContext
- */
-function ZAxis(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, zAxisDefaultProps);
-  return /*#__PURE__*/React.createElement(SetZAxisSettings, {
-    domain: props.domain,
-    id: props.zAxisId,
-    dataKey: props.dataKey,
-    name: props.name,
-    unit: props.unit,
-    range: props.range,
-    scale: props.scale,
-    type: props.type,
-    allowDuplicatedCategory: _axisSelectors.implicitZAxis.allowDuplicatedCategory,
-    allowDataOverflow: _axisSelectors.implicitZAxis.allowDataOverflow,
-    reversed: _axisSelectors.implicitZAxis.reversed,
-    includeHidden: _axisSelectors.implicitZAxis.includeHidden
-  });
-}
-ZAxis.displayName = 'ZAxis';
Index: de_modules/recharts/lib/cartesian/getCartesianPosition.js
===================================================================
--- node_modules/recharts/lib/cartesian/getCartesianPosition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,202 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getCartesianPosition = void 0;
-var _DataUtils = require("../util/DataUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * Calculates the position and alignment for a generic element in a Cartesian coordinate system.
- *
- * @param options - The options including viewBox, position, and offset.
- * @returns The calculated x, y, alignment and size.
- */
-var getCartesianPosition = options => {
-  var {
-    viewBox,
-    position,
-    offset = 0,
-    parentViewBox: parentViewBoxFromOptions,
-    clamp
-  } = options;
-  var {
-    x,
-    y,
-    height,
-    upperWidth,
-    lowerWidth
-  } = (0, _chartLayoutContext.cartesianViewBoxToTrapezoid)(viewBox);
-
-  // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.
-  var upperX = x;
-  // The trapezoid is centered, so we can calculate the other corners from the top-left.
-  var lowerX = x + (upperWidth - lowerWidth) / 2;
-  // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.
-  var middleX = (upperX + lowerX) / 2;
-  // The width of the trapezoid at its vertical midpoint.
-  var midHeightWidth = (upperWidth + lowerWidth) / 2;
-  // The center x-coordinate is constant for the entire height of the trapezoid.
-  var centerX = upperX + upperWidth / 2;
-
-  // Define vertical offsets and position inverts based on the value being positive or negative.
-  // This allows labels to be positioned correctly for bars with negative height.
-  var verticalSign = height >= 0 ? 1 : -1;
-  var verticalOffset = verticalSign * offset;
-  var verticalEnd = verticalSign > 0 ? 'end' : 'start';
-  var verticalStart = verticalSign > 0 ? 'start' : 'end';
-
-  // Define horizontal offsets and position inverts based on the value being positive or negative.
-  // This allows labels to be positioned correctly for bars with negative width.
-  var horizontalSign = upperWidth >= 0 ? 1 : -1;
-  var horizontalOffset = horizontalSign * offset;
-  var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';
-  var horizontalStart = horizontalSign > 0 ? 'start' : 'end';
-
-  // We assume parentViewBox is generic if provided.
-  // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.
-  var parentViewBox = parentViewBoxFromOptions;
-  if (position === 'top') {
-    var result = {
-      x: upperX + upperWidth / 2,
-      y: y - verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalEnd
-    };
-    if (clamp && parentViewBox) {
-      result.height = Math.max(y - parentViewBox.y, 0);
-      result.width = upperWidth;
-    }
-    return result;
-  }
-  if (position === 'bottom') {
-    var _result = {
-      x: lowerX + lowerWidth / 2,
-      y: y + height + verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalStart
-    };
-    if (clamp && parentViewBox) {
-      _result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);
-      _result.width = lowerWidth;
-    }
-    return _result;
-  }
-  if (position === 'left') {
-    var _result2 = {
-      x: middleX - horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: 'middle'
-    };
-    if (clamp && parentViewBox) {
-      _result2.width = Math.max(_result2.x - parentViewBox.x, 0);
-      _result2.height = height;
-    }
-    return _result2;
-  }
-  if (position === 'right') {
-    var _result3 = {
-      x: middleX + midHeightWidth + horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: 'middle'
-    };
-    if (clamp && parentViewBox) {
-      _result3.width = Math.max(parentViewBox.x + parentViewBox.width - _result3.x, 0);
-      _result3.height = height;
-    }
-    return _result3;
-  }
-  var sizeAttrs = clamp && parentViewBox ? {
-    width: midHeightWidth,
-    height
-  } : {};
-  if (position === 'insideLeft') {
-    return _objectSpread({
-      x: middleX + horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: 'middle'
-    }, sizeAttrs);
-  }
-  if (position === 'insideRight') {
-    return _objectSpread({
-      x: middleX + midHeightWidth - horizontalOffset,
-      y: y + height / 2,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: 'middle'
-    }, sizeAttrs);
-  }
-  if (position === 'insideTop') {
-    return _objectSpread({
-      x: upperX + upperWidth / 2,
-      y: y + verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottom') {
-    return _objectSpread({
-      x: lowerX + lowerWidth / 2,
-      y: y + height - verticalOffset,
-      horizontalAnchor: 'middle',
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (position === 'insideTopLeft') {
-    return _objectSpread({
-      x: upperX + horizontalOffset,
-      y: y + verticalOffset,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideTopRight') {
-    return _objectSpread({
-      x: upperX + upperWidth - horizontalOffset,
-      y: y + verticalOffset,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: verticalStart
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottomLeft') {
-    return _objectSpread({
-      x: lowerX + horizontalOffset,
-      y: y + height - verticalOffset,
-      horizontalAnchor: horizontalStart,
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (position === 'insideBottomRight') {
-    return _objectSpread({
-      x: lowerX + lowerWidth - horizontalOffset,
-      y: y + height - verticalOffset,
-      horizontalAnchor: horizontalEnd,
-      verticalAnchor: verticalEnd
-    }, sizeAttrs);
-  }
-  if (!!position && typeof position === 'object' && ((0, _DataUtils.isNumber)(position.x) || (0, _DataUtils.isPercent)(position.x)) && ((0, _DataUtils.isNumber)(position.y) || (0, _DataUtils.isPercent)(position.y))) {
-    // TODO: This is not quite right. The width of the trapezoid changes with y.
-    // A percentage-based x should be relative to the width at that y.
-    // For now, we use the mid-height width as a reasonable approximation.
-    return _objectSpread({
-      x: x + (0, _DataUtils.getPercentValue)(position.x, midHeightWidth),
-      y: y + (0, _DataUtils.getPercentValue)(position.y, height),
-      horizontalAnchor: 'end',
-      verticalAnchor: 'end'
-    }, sizeAttrs);
-  }
-  return _objectSpread({
-    x: centerX,
-    y: y + height / 2,
-    horizontalAnchor: 'middle',
-    verticalAnchor: 'middle'
-  }, sizeAttrs);
-};
-exports.getCartesianPosition = getCartesianPosition;
Index: de_modules/recharts/lib/cartesian/getEquidistantTicks.js
===================================================================
--- node_modules/recharts/lib/cartesian/getEquidistantTicks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,142 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getEquidistantPreserveEndTicks = getEquidistantPreserveEndTicks;
-exports.getEquidistantTicks = getEquidistantTicks;
-var _TickUtils = require("../util/TickUtils");
-var _getEveryNth = require("../util/getEveryNth");
-function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {
-  // If the ticks are readonly, then the slice might not be necessary
-  var result = (ticks || []).slice();
-  var {
-    start: initialStart,
-    end
-  } = boundaries;
-  var index = 0;
-  // Premature optimisation idea 1: Estimate a lower bound, and start from there.
-  // For now, start from every tick
-  var stepsize = 1;
-  var start = initialStart;
-  var _loop = function _loop() {
-      // Given stepsize, evaluate whether every stepsize-th tick can be shown.
-      // If it can not, then increase the stepsize by 1, and try again.
-
-      var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];
-
-      // Break condition - If we have evaluated all the ticks, then we are done.
-      if (entry === undefined) {
-        return {
-          v: (0, _getEveryNth.getEveryNth)(ticks, stepsize)
-        };
-      }
-
-      // Check if the element collides with the next element
-      var i = index;
-      var size;
-      var getSize = () => {
-        if (size === undefined) {
-          size = getTickSize(entry, i);
-        }
-        return size;
-      };
-      var tickCoord = entry.coordinate;
-      // We will always show the first tick.
-      var isShow = index === 0 || (0, _TickUtils.isVisible)(sign, tickCoord, getSize, start, end);
-      if (!isShow) {
-        // Start all over with a larger stepsize
-        index = 0;
-        start = initialStart;
-        stepsize += 1;
-      }
-      if (isShow) {
-        // If it can be shown, update the start
-        start = tickCoord + sign * (getSize() / 2 + minTickGap);
-        index += stepsize;
-      }
-    },
-    _ret;
-  while (stepsize <= result.length) {
-    _ret = _loop();
-    if (_ret) return _ret.v;
-  }
-  return [];
-}
-function getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap) {
-  // If the ticks are readonly, then the slice might not be necessary
-  // Reworked logic for getEquidistantPreserveEndTicks
-  var result = (ticks || []).slice();
-  var len = result.length;
-  if (len === 0) {
-    return [];
-  }
-  var {
-    start: initialStart,
-    end
-  } = boundaries;
-
-  // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)
-  for (var stepsize = 1; stepsize <= len; stepsize++) {
-    // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.
-    var offset = (len - 1) % stepsize;
-    var start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap
-    var ok = true;
-
-    // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1
-    var _loop2 = function _loop2() {
-        var entry = ticks[index];
-        if (entry == null) {
-          return 0; // continue
-        }
-        var i = index;
-        var size;
-
-        // Use a function to get size, as in the original code
-        var getSize = () => {
-          if (size === undefined) {
-            size = getTickSize(entry, i);
-          }
-          return size;
-        };
-        var tickCoord = entry.coordinate;
-
-        // 3. Apply visibility logic (including the first tick special case)
-        // The reviewer says *not* to unconditionally bypass checks for the last tick.
-        var isShow = index === offset || (0, _TickUtils.isVisible)(sign, tickCoord, getSize, start, end);
-        if (!isShow) {
-          // If any tick in this end-anchored sequence fails visibility/collision,
-          // reject this stepsize and move to the next iteration (larger stepsize).
-          ok = false;
-          return 1; // break
-        }
-
-        // 4. If showable, update the 'start' coordinate for the next collision check
-        if (isShow) {
-          start = tickCoord + sign * (getSize() / 2 + minTickGap);
-        }
-      },
-      _ret2;
-    for (var index = offset; index < len; index += stepsize) {
-      _ret2 = _loop2();
-      if (_ret2 === 0) continue;
-      if (_ret2 === 1) break;
-    }
-
-    // 5. If the entire sequence for this stepsize passed the visibility check, return the result
-    if (ok) {
-      // Build the final result array explicitly using the validated stepsize and offset.
-      var finalTicks = [];
-      for (var _index = offset; _index < len; _index += stepsize) {
-        var tick = ticks[_index];
-        if (tick != null) {
-          finalTicks.push(tick);
-        }
-      }
-      return finalTicks;
-    }
-  }
-
-  // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.
-  return [];
-}
Index: de_modules/recharts/lib/cartesian/getTicks.js
===================================================================
--- node_modules/recharts/lib/cartesian/getTicks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getTicks = getTicks;
-var _DataUtils = require("../util/DataUtils");
-var _DOMUtils = require("../util/DOMUtils");
-var _Global = require("../util/Global");
-var _TickUtils = require("../util/TickUtils");
-var _getEquidistantTicks = require("./getEquidistantTicks");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {
-  var result = (ticks || []).slice();
-  var len = result.length;
-  var {
-    start
-  } = boundaries;
-  var {
-    end
-  } = boundaries;
-  var _loop = function _loop(i) {
-    var initialEntry = result[i];
-    if (initialEntry == null) {
-      return 1; // continue
-    }
-    var entry = initialEntry;
-    var size;
-    var getSize = () => {
-      if (size === undefined) {
-        size = getTickSize(initialEntry, i);
-      }
-      return size;
-    };
-    if (i === len - 1) {
-      var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate
-      });
-    } else {
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: entry.coordinate
-      });
-    }
-    if (entry.tickCoord != null) {
-      var isShow = (0, _TickUtils.isVisible)(sign, entry.tickCoord, getSize, start, end);
-      if (isShow) {
-        end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);
-        result[i] = _objectSpread(_objectSpread({}, entry), {}, {
-          isShow: true
-        });
-      }
-    }
-  };
-  for (var i = len - 1; i >= 0; i--) {
-    if (_loop(i)) continue;
-  }
-  return result;
-}
-function getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {
-  // This method is mutating the array so clone is indeed necessary here
-  var result = (ticks || []).slice();
-  var len = result.length;
-  var {
-    start,
-    end
-  } = boundaries;
-  if (preserveEnd) {
-    // Try to guarantee the tail to be displayed
-    var tail = ticks[len - 1];
-    if (tail != null) {
-      var tailSize = getTickSize(tail, len - 1);
-      var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);
-      result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {
-        tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate
-      });
-      if (tail.tickCoord != null) {
-        var isTailShow = (0, _TickUtils.isVisible)(sign, tail.tickCoord, () => tailSize, start, end);
-        if (isTailShow) {
-          end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);
-          result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {
-            isShow: true
-          });
-        }
-      }
-    }
-  }
-  var count = preserveEnd ? len - 1 : len;
-  var _loop2 = function _loop2(i) {
-    var initialEntry = result[i];
-    if (initialEntry == null) {
-      return 1; // continue
-    }
-    var entry = initialEntry;
-    var size;
-    var getSize = () => {
-      if (size === undefined) {
-        size = getTickSize(initialEntry, i);
-      }
-      return size;
-    };
-    if (i === 0) {
-      var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate
-      });
-    } else {
-      result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
-        tickCoord: entry.coordinate
-      });
-    }
-    if (entry.tickCoord != null) {
-      var isShow = (0, _TickUtils.isVisible)(sign, entry.tickCoord, getSize, start, end);
-      if (isShow) {
-        start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);
-        result[i] = _objectSpread(_objectSpread({}, entry), {}, {
-          isShow: true
-        });
-      }
-    }
-  };
-  for (var i = 0; i < count; i++) {
-    if (_loop2(i)) continue;
-  }
-  return result;
-}
-function getTicks(props, fontSize, letterSpacing) {
-  var {
-    tick,
-    ticks,
-    viewBox,
-    minTickGap,
-    orientation,
-    interval,
-    tickFormatter,
-    unit,
-    angle
-  } = props;
-  if (!ticks || !ticks.length || !tick) {
-    return [];
-  }
-  if ((0, _DataUtils.isNumber)(interval) || _Global.Global.isSsr) {
-    var _getNumberIntervalTic;
-    return (_getNumberIntervalTic = (0, _TickUtils.getNumberIntervalTicks)(ticks, (0, _DataUtils.isNumber)(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];
-  }
-  var candidates = [];
-  var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';
-  var unitSize = unit && sizeKey === 'width' ? (0, _DOMUtils.getStringSize)(unit, {
-    fontSize,
-    letterSpacing
-  }) : {
-    width: 0,
-    height: 0
-  };
-  var getTickSize = (content, index) => {
-    var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;
-    // Recharts only supports angles when sizeKey === 'width'
-    return sizeKey === 'width' ? (0, _TickUtils.getAngledTickWidth)((0, _DOMUtils.getStringSize)(value, {
-      fontSize,
-      letterSpacing
-    }), unitSize, angle) : (0, _DOMUtils.getStringSize)(value, {
-      fontSize,
-      letterSpacing
-    })[sizeKey];
-  };
-  var tick0 = ticks[0];
-  var tick1 = ticks[1];
-  var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? (0, _DataUtils.mathSign)(tick1.coordinate - tick0.coordinate) : 1;
-  var boundaries = (0, _TickUtils.getTickBoundaries)(viewBox, sign, sizeKey);
-  if (interval === 'equidistantPreserveStart') {
-    return (0, _getEquidistantTicks.getEquidistantTicks)(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  if (interval === 'equidistantPreserveEnd') {
-    return (0, _getEquidistantTicks.getEquidistantPreserveEndTicks)(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  if (interval === 'preserveStart' || interval === 'preserveStartEnd') {
-    candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');
-  } else {
-    candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);
-  }
-  return candidates.filter(entry => entry.isShow);
-}
Index: de_modules/recharts/lib/chart/AreaChart.js
===================================================================
--- node_modules/recharts/lib/chart/AreaChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.AreaChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var AreaChart = exports.AreaChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "AreaChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/BarChart.js
===================================================================
--- node_modules/recharts/lib/chart/BarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.BarChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['axis', 'item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var BarChart = exports.BarChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "BarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/CartesianChart.js
===================================================================
--- node_modules/recharts/lib/chart/CartesianChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultCartesianChartProps = exports.CartesianChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _RechartsStoreProvider = require("../state/RechartsStoreProvider");
-var _chartDataContext = require("../context/chartDataContext");
-var _ReportMainChartProps = require("../state/ReportMainChartProps");
-var _ReportChartProps = require("../state/ReportChartProps");
-var _CategoricalChart = require("./CategoricalChart");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-var defaultMargin = {
-  top: 5,
-  right: 5,
-  bottom: 5,
-  left: 5
-};
-var defaultCartesianChartProps = exports.defaultCartesianChartProps = {
-  accessibilityLayer: true,
-  barCategoryGap: '10%',
-  barGap: 4,
-  layout: 'horizontal',
-  margin: defaultMargin,
-  responsive: false,
-  reverseStackOrder: false,
-  stackOffset: 'none',
-  syncMethod: 'index'
-};
-
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.
- */
-
-var CartesianChart = exports.CartesianChart = /*#__PURE__*/(0, _react.forwardRef)(function CartesianChart(props, ref) {
-  var _categoricalChartProp;
-  var rootChartProps = (0, _resolveDefaultProps.resolveDefaultProps)(props.categoricalChartProps, defaultCartesianChartProps);
-  var {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    categoricalChartProps
-  } = props;
-  var options = {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    eventEmitter: undefined
-  };
-  return /*#__PURE__*/React.createElement(_RechartsStoreProvider.RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName
-  }, /*#__PURE__*/React.createElement(_chartDataContext.ChartDataContextProvider, {
-    chartData: categoricalChartProps.data
-  }), /*#__PURE__*/React.createElement(_ReportMainChartProps.ReportMainChartProps, {
-    layout: rootChartProps.layout,
-    margin: rootChartProps.margin
-  }), /*#__PURE__*/React.createElement(_ReportChartProps.ReportChartProps, {
-    baseValue: rootChartProps.baseValue,
-    accessibilityLayer: rootChartProps.accessibilityLayer,
-    barCategoryGap: rootChartProps.barCategoryGap,
-    maxBarSize: rootChartProps.maxBarSize,
-    stackOffset: rootChartProps.stackOffset,
-    barGap: rootChartProps.barGap,
-    barSize: rootChartProps.barSize,
-    syncId: rootChartProps.syncId,
-    syncMethod: rootChartProps.syncMethod,
-    className: rootChartProps.className,
-    reverseStackOrder: rootChartProps.reverseStackOrder
-  }), /*#__PURE__*/React.createElement(_CategoricalChart.CategoricalChart, _extends({}, rootChartProps, {
-    ref: ref
-  })));
-});
Index: de_modules/recharts/lib/chart/CategoricalChart.js
===================================================================
--- node_modules/recharts/lib/chart/CategoricalChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CategoricalChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _RootSurface = require("../container/RootSurface");
-var _RechartsWrapper = require("./RechartsWrapper");
-var _ClipPathProvider = require("../container/ClipPathProvider");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _excluded = ["width", "height", "responsive", "children", "className", "style", "compact", "title", "desc"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var CategoricalChart = exports.CategoricalChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-      width,
-      height,
-      responsive,
-      children,
-      className,
-      style,
-      compact,
-      title,
-      desc
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var attrs = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-
-  /*
-   * The "compact" mode is used as the panorama within Brush.
-   * However because `compact` is a public prop, let's assume that it can render outside of Brush too.
-   */
-  if (compact) {
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-      width: width,
-      height: height
-    }), /*#__PURE__*/React.createElement(_RootSurface.RootSurface, {
-      otherAttributes: attrs,
-      title: title,
-      desc: desc
-    }, children));
-  }
-  return /*#__PURE__*/React.createElement(_RechartsWrapper.RechartsWrapper, {
-    className: className,
-    style: style,
-    width: width,
-    height: height,
-    responsive: responsive !== null && responsive !== void 0 ? responsive : false,
-    onClick: props.onClick,
-    onMouseLeave: props.onMouseLeave,
-    onMouseEnter: props.onMouseEnter,
-    onMouseMove: props.onMouseMove,
-    onMouseDown: props.onMouseDown,
-    onMouseUp: props.onMouseUp,
-    onContextMenu: props.onContextMenu,
-    onDoubleClick: props.onDoubleClick,
-    onTouchStart: props.onTouchStart,
-    onTouchMove: props.onTouchMove,
-    onTouchEnd: props.onTouchEnd
-  }, /*#__PURE__*/React.createElement(_RootSurface.RootSurface, {
-    otherAttributes: attrs,
-    title: title,
-    desc: desc,
-    ref: ref
-  }, /*#__PURE__*/React.createElement(_ClipPathProvider.ClipPathProvider, null, children)));
-});
Index: de_modules/recharts/lib/chart/ComposedChart.js
===================================================================
--- node_modules/recharts/lib/chart/ComposedChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ComposedChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var ComposedChart = exports.ComposedChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "ComposedChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/FunnelChart.js
===================================================================
--- node_modules/recharts/lib/chart/FunnelChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.FunnelChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var FunnelChart = exports.FunnelChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "FunnelChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/LineChart.js
===================================================================
--- node_modules/recharts/lib/chart/LineChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.LineChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['axis'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var LineChart = exports.LineChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "LineChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/PieChart.js
===================================================================
--- node_modules/recharts/lib/chart/PieChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultPieChartProps = exports.PieChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _PolarChart = require("./PolarChart");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var allowedTooltipTypes = ['item'];
-var defaultPieChartProps = exports.defaultPieChartProps = _objectSpread(_objectSpread({}, _PolarChart.defaultPolarChartProps), {}, {
-  layout: 'centric',
-  startAngle: 0,
-  endAngle: 360
-});
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-var PieChart = exports.PieChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var propsWithDefaults = (0, _resolveDefaultProps.resolveDefaultProps)(props, defaultPieChartProps);
-  return /*#__PURE__*/React.createElement(_PolarChart.PolarChart, {
-    chartName: "PieChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/PolarChart.js
===================================================================
--- node_modules/recharts/lib/chart/PolarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,114 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultPolarChartProps = exports.PolarChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _RechartsStoreProvider = require("../state/RechartsStoreProvider");
-var _chartDataContext = require("../context/chartDataContext");
-var _ReportMainChartProps = require("../state/ReportMainChartProps");
-var _ReportChartProps = require("../state/ReportChartProps");
-var _ReportPolarOptions = require("../state/ReportPolarOptions");
-var _CategoricalChart = require("./CategoricalChart");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _excluded = ["layout"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var defaultMargin = {
-  top: 5,
-  right: 5,
-  bottom: 5,
-  left: 5
-};
-
-/**
- * These default props are the same for all PolarChart components.
- */
-var defaultPolarChartProps = exports.defaultPolarChartProps = {
-  accessibilityLayer: true,
-  stackOffset: 'none',
-  barCategoryGap: '10%',
-  barGap: 4,
-  margin: defaultMargin,
-  reverseStackOrder: false,
-  syncMethod: 'index',
-  layout: 'radial',
-  responsive: false,
-  cx: '50%',
-  cy: '50%',
-  innerRadius: 0,
-  outerRadius: '80%'
-};
-
-/**
- * These props are required for the PolarChart to function correctly.
- * Users usually would not need to specify these explicitly,
- * because the convenience components like PieChart, RadarChart, etc.
- * will provide these defaults.
- * We can't have the defaults in this file because each of those convenience components
- * have their own opinions about what they should be.
- */
-
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.
- */
-
-var PolarChart = exports.PolarChart = /*#__PURE__*/(0, _react.forwardRef)(function PolarChart(props, ref) {
-  var _polarChartProps$id;
-  var polarChartProps = (0, _resolveDefaultProps.resolveDefaultProps)(props.categoricalChartProps, defaultPolarChartProps);
-  var {
-      layout
-    } = polarChartProps,
-    otherCategoricalProps = _objectWithoutProperties(polarChartProps, _excluded);
-  var {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher
-  } = props;
-  var options = {
-    chartName,
-    defaultTooltipEventType,
-    validateTooltipEventTypes,
-    tooltipPayloadSearcher,
-    eventEmitter: undefined
-  };
-  return /*#__PURE__*/React.createElement(_RechartsStoreProvider.RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_polarChartProps$id = polarChartProps.id) !== null && _polarChartProps$id !== void 0 ? _polarChartProps$id : chartName
-  }, /*#__PURE__*/React.createElement(_chartDataContext.ChartDataContextProvider, {
-    chartData: polarChartProps.data
-  }), /*#__PURE__*/React.createElement(_ReportMainChartProps.ReportMainChartProps, {
-    layout: layout,
-    margin: polarChartProps.margin
-  }), /*#__PURE__*/React.createElement(_ReportChartProps.ReportChartProps, {
-    baseValue: undefined,
-    accessibilityLayer: polarChartProps.accessibilityLayer,
-    barCategoryGap: polarChartProps.barCategoryGap,
-    maxBarSize: polarChartProps.maxBarSize,
-    stackOffset: polarChartProps.stackOffset,
-    barGap: polarChartProps.barGap,
-    barSize: polarChartProps.barSize,
-    syncId: polarChartProps.syncId,
-    syncMethod: polarChartProps.syncMethod,
-    className: polarChartProps.className,
-    reverseStackOrder: polarChartProps.reverseStackOrder
-  }), /*#__PURE__*/React.createElement(_ReportPolarOptions.ReportPolarOptions, {
-    cx: polarChartProps.cx,
-    cy: polarChartProps.cy,
-    startAngle: polarChartProps.startAngle,
-    endAngle: polarChartProps.endAngle,
-    innerRadius: polarChartProps.innerRadius,
-    outerRadius: polarChartProps.outerRadius
-  }), /*#__PURE__*/React.createElement(_CategoricalChart.CategoricalChart, _extends({}, otherCategoricalProps, {
-    ref: ref
-  })));
-});
Index: de_modules/recharts/lib/chart/RadarChart.js
===================================================================
--- node_modules/recharts/lib/chart/RadarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultRadarChartProps = exports.RadarChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _PolarChart = require("./PolarChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var allowedTooltipTypes = ['axis'];
-var defaultRadarChartProps = exports.defaultRadarChartProps = _objectSpread(_objectSpread({}, _PolarChart.defaultPolarChartProps), {}, {
-  layout: 'centric',
-  startAngle: 90,
-  endAngle: -270
-});
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-var RadarChart = exports.RadarChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var propsWithDefaults = (0, _resolveDefaultProps.resolveDefaultProps)(props, defaultRadarChartProps);
-  return /*#__PURE__*/React.createElement(_PolarChart.PolarChart, {
-    chartName: "RadarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/RadialBarChart.js
===================================================================
--- node_modules/recharts/lib/chart/RadialBarChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultRadialBarChartProps = exports.RadialBarChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _PolarChart = require("./PolarChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var allowedTooltipTypes = ['axis', 'item'];
-var defaultRadialBarChartProps = exports.defaultRadialBarChartProps = _objectSpread(_objectSpread({}, _PolarChart.defaultPolarChartProps), {}, {
-  layout: 'radial',
-  startAngle: 0,
-  endAngle: 360
-});
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-var RadialBarChart = exports.RadialBarChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var propsWithDefaults = (0, _resolveDefaultProps.resolveDefaultProps)(props, defaultRadialBarChartProps);
-  return /*#__PURE__*/React.createElement(_PolarChart.PolarChart, {
-    chartName: "RadialBarChart",
-    defaultTooltipEventType: "axis",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: propsWithDefaults,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/RechartsWrapper.js
===================================================================
--- node_modules/recharts/lib/chart/RechartsWrapper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,349 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RechartsWrapper = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _hooks = require("../state/hooks");
-var _mouseEventsMiddleware = require("../state/mouseEventsMiddleware");
-var _useChartSynchronisation = require("../synchronisation/useChartSynchronisation");
-var _keyboardEventsMiddleware = require("../state/keyboardEventsMiddleware");
-var _useReportScale = require("../util/useReportScale");
-var _externalEventsMiddleware = require("../state/externalEventsMiddleware");
-var _touchEventsMiddleware = require("../state/touchEventsMiddleware");
-var _tooltipPortalContext = require("../context/tooltipPortalContext");
-var _legendPortalContext = require("../context/legendPortalContext");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _ResponsiveContainer = require("../component/ResponsiveContainer");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-var EventSynchronizer = () => {
-  (0, _useChartSynchronisation.useSynchronisedEventsFromOtherCharts)();
-  return null;
-};
-function getNumberOrZero(value) {
-  if (typeof value === 'number') {
-    return value;
-  }
-  if (typeof value === 'string') {
-    var parsed = parseFloat(value);
-    if (!Number.isNaN(parsed)) {
-      return parsed;
-    }
-  }
-  return 0;
-}
-var ResponsiveDiv = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var _props$style, _props$style2;
-  var observerRef = (0, _react.useRef)(null);
-  var [sizes, setSizes] = (0, _react.useState)({
-    containerWidth: getNumberOrZero((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width),
-    containerHeight: getNumberOrZero((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.height)
-  });
-  var setContainerSize = (0, _react.useCallback)((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  var innerRef = (0, _react.useCallback)(node => {
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    if (node != null && typeof ResizeObserver !== 'undefined') {
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = node.getBoundingClientRect();
-      setContainerSize(containerWidth, containerHeight);
-      var callback = entries => {
-        var entry = entries[0];
-        if (entry == null) {
-          return;
-        }
-        var {
-          width,
-          height
-        } = entry.contentRect;
-        setContainerSize(width, height);
-      };
-      var observer = new ResizeObserver(callback);
-      observer.observe(node);
-      observerRef.current = observer;
-    }
-  }, [ref, setContainerSize]);
-  (0, _react.useEffect)(() => {
-    return () => {
-      var observer = observerRef.current;
-      if (observer != null) {
-        observer.disconnect();
-      }
-    };
-  }, [setContainerSize]);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: sizes.containerWidth,
-    height: sizes.containerHeight
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: innerRef
-  }, props)));
-});
-var ReadSizeOnceDiv = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  var [sizes, setSizes] = (0, _react.useState)({
-    containerWidth: getNumberOrZero(width),
-    containerHeight: getNumberOrZero(height)
-  });
-  var setContainerSize = (0, _react.useCallback)((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  var innerRef = (0, _react.useCallback)(node => {
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    if (node != null) {
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = node.getBoundingClientRect();
-      setContainerSize(containerWidth, containerHeight);
-    }
-  }, [ref, setContainerSize]);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: sizes.containerWidth,
-    height: sizes.containerHeight
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: innerRef
-  }, props)));
-});
-var StaticDiv = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: ref
-  }, props)));
-});
-var NonResponsiveDiv = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-    width,
-    height
-  } = props;
-  // When width or height are percentages or CSS short names, read size from DOM once
-  if (typeof width === 'string' || typeof height === 'string') {
-    return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {
-      ref: ref
-    }));
-  }
-  // When both are numbers, use them directly
-  if (typeof width === 'number' && typeof height === 'number') {
-    return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {
-      width: width,
-      height: height,
-      ref: ref
-    }));
-  }
-  // When width/height are undefined, render wrapper div without reporting size
-  // This results in no SVG being rendered (intentional for backwards compatibility)
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement("div", _extends({
-    ref: ref
-  }, props)));
-});
-function getWrapperDivComponent(responsive) {
-  return responsive ? ResponsiveDiv : NonResponsiveDiv;
-}
-var RechartsWrapper = exports.RechartsWrapper = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-    children,
-    className,
-    height: heightFromProps,
-    onClick,
-    onContextMenu,
-    onDoubleClick,
-    onMouseDown,
-    onMouseEnter,
-    onMouseLeave,
-    onMouseMove,
-    onMouseUp,
-    onTouchEnd,
-    onTouchMove,
-    onTouchStart,
-    style,
-    width: widthFromProps,
-    responsive,
-    dispatchTouchEvents = true
-  } = props;
-  var containerRef = (0, _react.useRef)(null);
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var [tooltipPortal, setTooltipPortal] = (0, _react.useState)(null);
-  var [legendPortal, setLegendPortal] = (0, _react.useState)(null);
-  var setScaleRef = (0, _useReportScale.useReportScale)();
-  var responsiveContainerCalculations = (0, _ResponsiveContainer.useResponsiveContainerContext)();
-  var width = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.width) > 0 ? responsiveContainerCalculations.width : widthFromProps;
-  var height = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.height) > 0 ? responsiveContainerCalculations.height : heightFromProps;
-  var innerRef = (0, _react.useCallback)(node => {
-    setScaleRef(node);
-    if (typeof ref === 'function') {
-      ref(node);
-    }
-    setTooltipPortal(node);
-    setLegendPortal(node);
-    if (node != null) {
-      containerRef.current = node;
-    }
-  }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);
-  var myOnClick = (0, _react.useCallback)(e => {
-    dispatch((0, _mouseEventsMiddleware.mouseClickAction)(e));
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onClick,
-      reactEvent: e
-    }));
-  }, [dispatch, onClick]);
-  var myOnMouseEnter = (0, _react.useCallback)(e => {
-    dispatch((0, _mouseEventsMiddleware.mouseMoveAction)(e));
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onMouseEnter,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseEnter]);
-  var myOnMouseLeave = (0, _react.useCallback)(e => {
-    dispatch((0, _tooltipSlice.mouseLeaveChart)());
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onMouseLeave,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseLeave]);
-  var myOnMouseMove = (0, _react.useCallback)(e => {
-    dispatch((0, _mouseEventsMiddleware.mouseMoveAction)(e));
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onMouseMove,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseMove]);
-  var onFocus = (0, _react.useCallback)(() => {
-    dispatch((0, _keyboardEventsMiddleware.focusAction)());
-  }, [dispatch]);
-  var onKeyDown = (0, _react.useCallback)(e => {
-    dispatch((0, _keyboardEventsMiddleware.keyDownAction)(e.key));
-  }, [dispatch]);
-  var myOnContextMenu = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onContextMenu,
-      reactEvent: e
-    }));
-  }, [dispatch, onContextMenu]);
-  var myOnDoubleClick = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onDoubleClick,
-      reactEvent: e
-    }));
-  }, [dispatch, onDoubleClick]);
-  var myOnMouseDown = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onMouseDown,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseDown]);
-  var myOnMouseUp = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onMouseUp,
-      reactEvent: e
-    }));
-  }, [dispatch, onMouseUp]);
-  var myOnTouchStart = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onTouchStart,
-      reactEvent: e
-    }));
-  }, [dispatch, onTouchStart]);
-
-  /*
-   * onTouchMove is special because it behaves different from mouse events.
-   * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over
-   * a certain element. Touch events don't have that; touch only gives us
-   * start (finger down), end (finger up) and move (finger moving).
-   * So we need to figure out which element the user is touching
-   * ourselves. Fortunately, there's a convenient method for that:
-   * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint
-   */
-  var myOnTouchMove = (0, _react.useCallback)(e => {
-    if (dispatchTouchEvents) {
-      dispatch((0, _touchEventsMiddleware.touchEventAction)(e));
-    }
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onTouchMove,
-      reactEvent: e
-    }));
-  }, [dispatch, dispatchTouchEvents, onTouchMove]);
-  var myOnTouchEnd = (0, _react.useCallback)(e => {
-    dispatch((0, _externalEventsMiddleware.externalEventAction)({
-      handler: onTouchEnd,
-      reactEvent: e
-    }));
-  }, [dispatch, onTouchEnd]);
-  var WrapperDiv = getWrapperDivComponent(responsive);
-  return /*#__PURE__*/React.createElement(_tooltipPortalContext.TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(_legendPortalContext.LegendPortalContext.Provider, {
-    value: legendPortal
-  }, /*#__PURE__*/React.createElement(WrapperDiv, {
-    width: width !== null && width !== void 0 ? width : style === null || style === void 0 ? void 0 : style.width,
-    height: height !== null && height !== void 0 ? height : style === null || style === void 0 ? void 0 : style.height,
-    className: (0, _clsx.clsx)('recharts-wrapper', className),
-    style: _objectSpread({
-      position: 'relative',
-      cursor: 'default',
-      width,
-      height
-    }, style),
-    onClick: myOnClick,
-    onContextMenu: myOnContextMenu,
-    onDoubleClick: myOnDoubleClick,
-    onFocus: onFocus,
-    onKeyDown: onKeyDown,
-    onMouseDown: myOnMouseDown,
-    onMouseEnter: myOnMouseEnter,
-    onMouseLeave: myOnMouseLeave,
-    onMouseMove: myOnMouseMove,
-    onMouseUp: myOnMouseUp,
-    onTouchEnd: myOnTouchEnd,
-    onTouchMove: myOnTouchMove,
-    onTouchStart: myOnTouchStart,
-    ref: innerRef
-  }, /*#__PURE__*/React.createElement(EventSynchronizer, null), children)));
-});
Index: de_modules/recharts/lib/chart/Sankey.js
===================================================================
--- node_modules/recharts/lib/chart/Sankey.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,949 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Sankey = Sankey;
-exports.sankeyPayloadSearcher = exports.sankeyDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _maxBy2 = _interopRequireDefault(require("es-toolkit/compat/maxBy"));
-var _sumBy = _interopRequireDefault(require("es-toolkit/compat/sumBy"));
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _Surface = require("../container/Surface");
-var _Layer = require("../container/Layer");
-var _Rectangle = require("../shape/Rectangle");
-var _ChartUtils = require("../util/ChartUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _tooltipPortalContext = require("../context/tooltipPortalContext");
-var _RechartsWrapper = require("./RechartsWrapper");
-var _RechartsStoreProvider = require("../state/RechartsStoreProvider");
-var _hooks = require("../state/hooks");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _chartDataContext = require("../context/chartDataContext");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _DataUtils = require("../util/DataUtils");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _excluded = ["sourceX", "sourceY", "sourceControlX", "targetX", "targetY", "targetControlX", "linkWidth"],
-  _excluded2 = ["className", "style", "children", "id"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var interpolationGenerator = (a, b) => {
-  var ka = +a;
-  var kb = b - ka;
-  return t => ka + kb * t;
-};
-var centerY = node => node.y + node.dy / 2;
-
-// TODO why is this not reading dataKey?
-var getValue = entry => entry && entry.value || 0;
-var getSumOfIds = (links, ids) => ids.reduce((result, id) => result + getValue(links[id]), 0);
-var getSumWithWeightedSource = (tree, links, ids) => ids.reduce((result, id) => {
-  var link = links[id];
-  if (link == null) {
-    return result;
-  }
-  var sourceNode = tree[link.source];
-  if (sourceNode == null) {
-    return result;
-  }
-  return result + centerY(sourceNode) * getValue(links[id]);
-}, 0);
-var getSumWithWeightedTarget = (tree, links, ids) => ids.reduce((result, id) => {
-  var link = links[id];
-  if (link == null) {
-    return result;
-  }
-  var targetNode = tree[link.target];
-  if (targetNode == null) {
-    return result;
-  }
-  return result + centerY(targetNode) * getValue(links[id]);
-}, 0);
-var ascendingY = (a, b) => a.y - b.y;
-var searchTargetsAndSources = (links, id) => {
-  var sourceNodes = [];
-  var sourceLinks = [];
-  var targetNodes = [];
-  var targetLinks = [];
-  for (var i = 0, len = links.length; i < len; i++) {
-    var link = links[i];
-    if ((link === null || link === void 0 ? void 0 : link.source) === id) {
-      targetNodes.push(link.target);
-      targetLinks.push(i);
-    }
-    if ((link === null || link === void 0 ? void 0 : link.target) === id) {
-      sourceNodes.push(link.source);
-      sourceLinks.push(i);
-    }
-  }
-  return {
-    sourceNodes,
-    sourceLinks,
-    targetLinks,
-    targetNodes
-  };
-};
-var updateDepthOfTargets = (tree, curNode) => {
-  var {
-    targetNodes
-  } = curNode;
-  for (var i = 0, len = targetNodes.length; i < len; i++) {
-    var targetNode = targetNodes[i];
-    if (targetNode == null) {
-      continue;
-    }
-    var target = tree[targetNode];
-    if (target) {
-      target.depth = Math.max(curNode.depth + 1, target.depth);
-      updateDepthOfTargets(tree, target);
-    }
-  }
-};
-var getNodesTree = (_ref, width, nodeWidth, align) => {
-  var _maxBy$depth, _maxBy;
-  var {
-    nodes,
-    links
-  } = _ref;
-  var tree = nodes.map((entry, index) => {
-    var result = searchTargetsAndSources(links, index);
-    return _objectSpread(_objectSpread(_objectSpread({}, entry), result), {}, {
-      value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),
-      depth: 0
-    });
-  });
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var node = tree[i];
-    if (node != null && !node.sourceNodes.length) {
-      updateDepthOfTargets(tree, node);
-    }
-  }
-  var maxDepth = (_maxBy$depth = (_maxBy = (0, _maxBy2.default)(tree, entry => entry.depth)) === null || _maxBy === void 0 ? void 0 : _maxBy.depth) !== null && _maxBy$depth !== void 0 ? _maxBy$depth : 0;
-  if (maxDepth >= 1) {
-    var childWidth = (width - nodeWidth) / maxDepth;
-    for (var _i = 0, _len = tree.length; _i < _len; _i++) {
-      var _node = tree[_i];
-      if (_node == null) {
-        continue;
-      }
-      if (!_node.targetNodes.length) {
-        if (align === 'justify') {
-          _node.depth = maxDepth;
-        }
-      }
-      _node.x = _node.depth * childWidth;
-      _node.dx = nodeWidth;
-    }
-  }
-  return {
-    tree,
-    maxDepth
-  };
-};
-var getDepthTree = tree => {
-  var result = [];
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var _result$node$depth;
-    var node = tree[i];
-    if (node == null) {
-      continue;
-    }
-    if (!result[node.depth]) {
-      result[node.depth] = [];
-    }
-    (_result$node$depth = result[node.depth]) === null || _result$node$depth === void 0 || _result$node$depth.push(node);
-  }
-  return result;
-};
-var updateYOfTree = (depthTree, height, nodePadding, links, verticalAlign) => {
-  var yRatio = Math.min(...depthTree.map(nodes => (height - (nodes.length - 1) * nodePadding) / (0, _sumBy.default)(nodes, getValue)));
-  for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {
-    var nodes = depthTree[d];
-    if (nodes == null) {
-      continue;
-    }
-    if (verticalAlign === 'top') {
-      var currentY = 0;
-      for (var i = 0, len = nodes.length; i < len; i++) {
-        var node = nodes[i];
-        if (node == null) {
-          continue;
-        }
-        node.dy = node.value * yRatio;
-        node.y = currentY;
-        currentY += node.dy + nodePadding;
-      }
-    } else {
-      for (var _i2 = 0, _len2 = nodes.length; _i2 < _len2; _i2++) {
-        var _node2 = nodes[_i2];
-        if (_node2 == null) {
-          continue;
-        }
-        _node2.y = _i2;
-        _node2.dy = _node2.value * yRatio;
-      }
-    }
-  }
-  return links.map(link => _objectSpread(_objectSpread({}, link), {}, {
-    dy: getValue(link) * yRatio
-  }));
-};
-var resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {
-  var sort = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
-  for (var i = 0, len = depthTree.length; i < len; i++) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    var n = nodes.length;
-
-    // Sort by the value of y
-    if (sort) {
-      nodes.sort(ascendingY);
-    }
-    var y0 = 0;
-    for (var j = 0; j < n; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      var dy = y0 - node.y;
-      if (dy > 0) {
-        node.y += dy;
-      }
-      y0 = node.y + node.dy + nodePadding;
-    }
-    y0 = height + nodePadding;
-    for (var _j = n - 1; _j >= 0; _j--) {
-      var _node3 = nodes[_j];
-      if (_node3 == null) {
-        continue;
-      }
-      var _dy = _node3.y + _node3.dy + nodePadding - y0;
-      if (_dy > 0) {
-        _node3.y -= _dy;
-        y0 = _node3.y;
-      } else {
-        break;
-      }
-    }
-  }
-};
-var relaxLeftToRight = (tree, depthTree, links, alpha) => {
-  for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    for (var j = 0, len = nodes.length; j < len; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      if (node.sourceLinks.length) {
-        var sourceSum = getSumOfIds(links, node.sourceLinks);
-        var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);
-        var y = weightedSum / sourceSum;
-        node.y += (y - centerY(node)) * alpha;
-      }
-    }
-  }
-};
-var relaxRightToLeft = (tree, depthTree, links, alpha) => {
-  for (var i = depthTree.length - 1; i >= 0; i--) {
-    var nodes = depthTree[i];
-    if (nodes == null) {
-      continue;
-    }
-    for (var j = 0, len = nodes.length; j < len; j++) {
-      var node = nodes[j];
-      if (node == null) {
-        continue;
-      }
-      if (node.targetLinks.length) {
-        var targetSum = getSumOfIds(links, node.targetLinks);
-        var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);
-        var y = weightedSum / targetSum;
-        node.y += (y - centerY(node)) * alpha;
-      }
-    }
-  }
-};
-var updateYOfLinks = (tree, links) => {
-  for (var i = 0, len = tree.length; i < len; i++) {
-    var node = tree[i];
-    if (node == null) {
-      continue;
-    }
-    var sy = 0;
-    var ty = 0;
-    node.targetLinks.sort((a, b) => {
-      var _links$a, _links$b, _tree$targetA, _tree$targetB;
-      var targetA = (_links$a = links[a]) === null || _links$a === void 0 ? void 0 : _links$a.target;
-      var targetB = (_links$b = links[b]) === null || _links$b === void 0 ? void 0 : _links$b.target;
-      if (targetA == null || targetB == null) {
-        return 0;
-      }
-      var yA = (_tree$targetA = tree[targetA]) === null || _tree$targetA === void 0 ? void 0 : _tree$targetA.y;
-      var yB = (_tree$targetB = tree[targetB]) === null || _tree$targetB === void 0 ? void 0 : _tree$targetB.y;
-      if (yA == null || yB == null) {
-        return 0;
-      }
-      return yA - yB;
-    });
-    node.sourceLinks.sort((a, b) => {
-      var _links$a2, _links$b2, _tree$sourceA, _tree$sourceB;
-      var sourceA = (_links$a2 = links[a]) === null || _links$a2 === void 0 ? void 0 : _links$a2.source;
-      var sourceB = (_links$b2 = links[b]) === null || _links$b2 === void 0 ? void 0 : _links$b2.source;
-      if (sourceA == null || sourceB == null) {
-        return 0;
-      }
-      var yA = (_tree$sourceA = tree[sourceA]) === null || _tree$sourceA === void 0 ? void 0 : _tree$sourceA.y;
-      var yB = (_tree$sourceB = tree[sourceB]) === null || _tree$sourceB === void 0 ? void 0 : _tree$sourceB.y;
-      if (yA == null || yB == null) {
-        return 0;
-      }
-      return yA - yB;
-    });
-    for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {
-      var targetLink = node.targetLinks[j];
-      if (targetLink == null) {
-        continue;
-      }
-      var link = links[targetLink];
-      if (link) {
-        // @ts-expect-error we should refactor this to immutable
-        link.sy = sy;
-        sy += link.dy;
-      }
-    }
-    for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {
-      var sourceLink = node.sourceLinks[_j2];
-      if (sourceLink == null) {
-        continue;
-      }
-      var _link = links[sourceLink];
-      if (_link) {
-        // @ts-expect-error we should refactor this to immutable
-        _link.ty = ty;
-        ty += _link.dy;
-      }
-    }
-  }
-};
-var computeData = _ref2 => {
-  var {
-    data,
-    width,
-    height,
-    iterations,
-    nodeWidth,
-    nodePadding,
-    sort,
-    verticalAlign,
-    align
-  } = _ref2;
-  var {
-    links
-  } = data;
-  var {
-    tree
-  } = getNodesTree(data, width, nodeWidth, align);
-  var depthTree = getDepthTree(tree);
-  var linksWithDy = updateYOfTree(depthTree, height, nodePadding, links, verticalAlign);
-  resolveCollisions(depthTree, height, nodePadding, sort);
-  if (verticalAlign === 'justify') {
-    var alpha = 1;
-    for (var i = 1; i <= iterations; i++) {
-      relaxRightToLeft(tree, depthTree, linksWithDy, alpha *= 0.99);
-      resolveCollisions(depthTree, height, nodePadding, sort);
-      relaxLeftToRight(tree, depthTree, linksWithDy, alpha);
-      resolveCollisions(depthTree, height, nodePadding, sort);
-    }
-  }
-  updateYOfLinks(tree, linksWithDy);
-  // @ts-expect-error updateYOfLinks modifies the links array to add sy and ty in place
-  var newLinks = linksWithDy;
-  return {
-    nodes: tree,
-    links: newLinks
-  };
-};
-var getNodeCoordinateOfTooltip = item => {
-  return {
-    x: +item.x + +item.width / 2,
-    y: +item.y + +item.height / 2
-  };
-};
-var getLinkCoordinateOfTooltip = item => {
-  return 'sourceX' in item ? {
-    x: (item.sourceX + item.targetX) / 2,
-    y: (item.sourceY + item.targetY) / 2
-  } : undefined;
-};
-var getPayloadOfTooltip = (item, type, nameKey) => {
-  var {
-    payload
-  } = item;
-  if (type === 'node') {
-    return {
-      payload,
-      name: (0, _ChartUtils.getValueByDataKey)(payload, nameKey, ''),
-      value: (0, _ChartUtils.getValueByDataKey)(payload, 'value')
-    };
-  }
-  if ('source' in payload && payload.source && payload.target) {
-    var sourceName = (0, _ChartUtils.getValueByDataKey)(payload.source, nameKey, '');
-    var targetName = (0, _ChartUtils.getValueByDataKey)(payload.target, nameKey, '');
-    return {
-      payload,
-      name: "".concat(sourceName, " - ").concat(targetName),
-      value: (0, _ChartUtils.getValueByDataKey)(payload, 'value')
-    };
-  }
-  return undefined;
-};
-var sankeyPayloadSearcher = (_, activeIndex, computedData, nameKey) => {
-  if (activeIndex == null || typeof activeIndex !== 'string') {
-    return undefined;
-  }
-  if (computedData == null || typeof computedData !== 'object') {
-    return undefined;
-  }
-  var splitIndex = activeIndex.split('-');
-  var [targetType, index] = splitIndex;
-  var item = (0, _get.default)(computedData, "".concat(targetType, "s[").concat(index, "]"));
-  if (item) {
-    var payload = getPayloadOfTooltip(item, targetType, nameKey);
-    return payload;
-  }
-  return undefined;
-};
-exports.sankeyPayloadSearcher = sankeyPayloadSearcher;
-var options = {
-  chartName: 'Sankey',
-  defaultTooltipEventType: 'item',
-  validateTooltipEventTypes: ['item'],
-  tooltipPayloadSearcher: sankeyPayloadSearcher,
-  eventEmitter: undefined
-};
-var SetSankeyTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    data,
-    id
-  } = _ref3;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data,
-    getPosition: _DataUtils.noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      name,
-      nameKey,
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// TODO: improve types - NodeOptions uses SankeyNode, LinkOptions uses LinkProps. Standardize.
-
-function renderLinkItem(option, props) {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  var {
-      sourceX,
-      sourceY,
-      sourceControlX,
-      targetX,
-      targetY,
-      targetControlX,
-      linkWidth
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement("path", _extends({
-    className: "recharts-sankey-link",
-    d: "\n          M".concat(sourceX, ",").concat(sourceY, "\n          C").concat(sourceControlX, ",").concat(sourceY, " ").concat(targetControlX, ",").concat(targetY, " ").concat(targetX, ",").concat(targetY, "\n        "),
-    fill: "none",
-    stroke: "#333",
-    strokeWidth: linkWidth,
-    strokeOpacity: "0.2"
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others)));
-}
-var buildLinkProps = _ref4 => {
-  var {
-    link,
-    nodes,
-    left,
-    top,
-    i,
-    linkContent,
-    linkCurvature
-  } = _ref4;
-  var {
-    sy: sourceRelativeY,
-    ty: targetRelativeY,
-    dy: linkWidth
-  } = link;
-  var sourceNode = nodes[link.source];
-  var targetNode = nodes[link.target];
-  if (sourceNode == null || targetNode == null) {
-    return undefined;
-  }
-  var sourceX = sourceNode.x + sourceNode.dx + left;
-  var targetX = targetNode.x + left;
-  var interpolationFunc = interpolationGenerator(sourceX, targetX);
-  var sourceControlX = interpolationFunc(linkCurvature);
-  var targetControlX = interpolationFunc(1 - linkCurvature);
-  var sourceY = sourceNode.y + sourceRelativeY + linkWidth / 2 + top;
-  var targetY = targetNode.y + targetRelativeY + linkWidth / 2 + top;
-  var linkProps = _objectSpread({
-    sourceX,
-    // @ts-expect-error the linkContent from below is contributing unknown props
-    targetX,
-    sourceY,
-    // @ts-expect-error the linkContent from below is contributing unknown props
-    targetY,
-    sourceControlX,
-    targetControlX,
-    sourceRelativeY,
-    targetRelativeY,
-    linkWidth,
-    index: i,
-    payload: _objectSpread(_objectSpread({}, link), {}, {
-      source: sourceNode,
-      target: targetNode
-    })
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(linkContent));
-  return linkProps;
-};
-function SankeyLinkElement(_ref5) {
-  var {
-    graphicalItemId,
-    props,
-    i,
-    linkContent,
-    onMouseEnter: _onMouseEnter,
-    onMouseLeave: _onMouseLeave,
-    onClick: _onClick,
-    dataKey
-  } = _ref5;
-  var activeCoordinate = getLinkCoordinateOfTooltip(props);
-  var activeIndex = "link-".concat(i);
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var events = {
-    onMouseEnter: e => {
-      dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onMouseEnter(props, e);
-    },
-    onMouseLeave: e => {
-      dispatch((0, _tooltipSlice.mouseLeaveItem)());
-      _onMouseLeave(props, e);
-    },
-    onClick: e => {
-      dispatch((0, _tooltipSlice.setActiveClickItemIndex)({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onClick(props, e);
-    }
-  };
-  return /*#__PURE__*/React.createElement(_Layer.Layer, events, renderLinkItem(linkContent, props));
-}
-function AllSankeyLinkElements(_ref6) {
-  var {
-    graphicalItemId,
-    modifiedLinks,
-    links,
-    linkContent,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    dataKey
-  } = _ref6;
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-sankey-links",
-    key: "recharts-sankey-links"
-  }, links.map((link, i) => {
-    var linkProps = modifiedLinks[i];
-    if (linkProps == null) {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(SankeyLinkElement, {
-      graphicalItemId: graphicalItemId,
-      key: "link-".concat(link.source, "-").concat(link.target, "-").concat(link.value),
-      props: linkProps,
-      linkContent: linkContent,
-      i: i,
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick,
-      dataKey: dataKey
-    });
-  }));
-}
-function renderNodeItem(option, props) {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  return (
-    /*#__PURE__*/
-    // @ts-expect-error recharts radius is not compatible with SVG radius
-    React.createElement(_Rectangle.Rectangle, _extends({
-      className: "recharts-sankey-node",
-      fill: "#0088fe",
-      fillOpacity: "0.8"
-    }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props)))
-  );
-}
-var buildNodeProps = _ref7 => {
-  var {
-    node,
-    nodeContent,
-    top,
-    left,
-    i
-  } = _ref7;
-  var {
-    x,
-    y,
-    dx,
-    dy
-  } = node;
-  // @ts-expect-error nodeContent is passing in unknown props
-  var nodeProps = _objectSpread(_objectSpread({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(nodeContent)), {}, {
-    x: x + left,
-    y: y + top,
-    width: dx,
-    height: dy,
-    index: i,
-    payload: node
-  });
-  return nodeProps;
-};
-function NodeElement(_ref8) {
-  var {
-    graphicalItemId,
-    props,
-    nodeContent,
-    i,
-    onMouseEnter: _onMouseEnter2,
-    onMouseLeave: _onMouseLeave2,
-    onClick: _onClick2,
-    dataKey
-  } = _ref8;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var activeCoordinate = getNodeCoordinateOfTooltip(props);
-  var activeIndex = "node-".concat(i);
-  var events = {
-    onMouseEnter: e => {
-      dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onMouseEnter2(props, e);
-    },
-    onMouseLeave: e => {
-      dispatch((0, _tooltipSlice.mouseLeaveItem)());
-      _onMouseLeave2(props, e);
-    },
-    onClick: e => {
-      dispatch((0, _tooltipSlice.setActiveClickItemIndex)({
-        activeIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-      _onClick2(props, e);
-    }
-  };
-  return /*#__PURE__*/React.createElement(_Layer.Layer, events, renderNodeItem(nodeContent, props));
-}
-function AllNodeElements(_ref9) {
-  var {
-    graphicalItemId,
-    modifiedNodes,
-    nodeContent,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    dataKey
-  } = _ref9;
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-sankey-nodes",
-    key: "recharts-sankey-nodes"
-  }, modifiedNodes.map((modifiedNode, i) => {
-    return /*#__PURE__*/React.createElement(NodeElement, {
-      graphicalItemId: graphicalItemId,
-      key: "node-".concat(modifiedNode.index, "-").concat(modifiedNode.x, "-").concat(modifiedNode.y),
-      props: modifiedNode,
-      nodeContent: nodeContent,
-      i: i,
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick,
-      dataKey: dataKey
-    });
-  }));
-}
-var sankeyDefaultProps = exports.sankeyDefaultProps = {
-  align: 'justify',
-  dataKey: 'value',
-  iterations: 32,
-  linkCurvature: 0.5,
-  margin: {
-    top: 5,
-    right: 5,
-    bottom: 5,
-    left: 5
-  },
-  nameKey: 'name',
-  nodePadding: 10,
-  nodeWidth: 10,
-  sort: true,
-  verticalAlign: 'justify'
-};
-function SankeyImpl(props) {
-  var {
-      className,
-      style,
-      children,
-      id
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var {
-    link,
-    dataKey,
-    node,
-    onMouseEnter,
-    onMouseLeave,
-    onClick,
-    data,
-    iterations,
-    nodeWidth,
-    nodePadding,
-    sort,
-    linkCurvature,
-    margin,
-    verticalAlign,
-    align
-  } = props;
-  var attrs = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-  var width = (0, _chartLayoutContext.useChartWidth)();
-  var height = (0, _chartLayoutContext.useChartHeight)();
-  var {
-    links,
-    modifiedLinks,
-    modifiedNodes
-  } = (0, _react.useMemo)(() => {
-    var _margin$left, _margin$right, _margin$top, _margin$bottom;
-    if (!data || !width || !height || width <= 0 || height <= 0) {
-      return {
-        nodes: [],
-        links: [],
-        modifiedLinks: [],
-        modifiedNodes: []
-      };
-    }
-    var contentWidth = width - ((_margin$left = margin.left) !== null && _margin$left !== void 0 ? _margin$left : 0) - ((_margin$right = margin.right) !== null && _margin$right !== void 0 ? _margin$right : 0);
-    var contentHeight = height - ((_margin$top = margin.top) !== null && _margin$top !== void 0 ? _margin$top : 0) - ((_margin$bottom = margin.bottom) !== null && _margin$bottom !== void 0 ? _margin$bottom : 0);
-    var computed = computeData({
-      data,
-      width: contentWidth,
-      height: contentHeight,
-      iterations,
-      nodeWidth,
-      nodePadding,
-      sort,
-      verticalAlign,
-      align
-    });
-    var top = margin.top || 0;
-    var left = margin.left || 0;
-    var newModifiedLinks = computed.links.map((l, i) => {
-      return buildLinkProps({
-        link: l,
-        nodes: computed.nodes,
-        i,
-        top,
-        left,
-        linkContent: link,
-        linkCurvature
-      });
-    }).filter(_DataUtils.isNotNil);
-    var newModifiedNodes = computed.nodes.map((n, i) => {
-      return buildNodeProps({
-        node: n,
-        nodeContent: node,
-        i,
-        top,
-        left
-      });
-    });
-    return {
-      nodes: computed.nodes,
-      links: computed.links,
-      modifiedLinks: newModifiedLinks,
-      modifiedNodes: newModifiedNodes
-    };
-  }, [data, width, height, margin, iterations, nodeWidth, nodePadding, sort, link, node, linkCurvature, align, verticalAlign]);
-  var handleMouseEnter = (0, _react.useCallback)((item, type, e) => {
-    if (onMouseEnter) {
-      onMouseEnter(item, type, e);
-    }
-  }, [onMouseEnter]);
-  var handleMouseLeave = (0, _react.useCallback)((item, type, e) => {
-    if (onMouseLeave) {
-      onMouseLeave(item, type, e);
-    }
-  }, [onMouseLeave]);
-  var handleClick = (0, _react.useCallback)((item, type, e) => {
-    if (onClick) {
-      onClick(item, type, e);
-    }
-  }, [onClick]);
-  if (!(0, _isWellBehavedNumber.isPositiveNumber)(width) || !(0, _isWellBehavedNumber.isPositiveNumber)(height) || !data || !data.links || !data.nodes) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_chartDataContext.SetComputedData, {
-    computedData: {
-      links: modifiedLinks,
-      nodes: modifiedNodes
-    }
-  }), /*#__PURE__*/React.createElement(_Surface.Surface, _extends({}, attrs, {
-    width: width,
-    height: height
-  }), children, /*#__PURE__*/React.createElement(AllSankeyLinkElements, {
-    graphicalItemId: id,
-    links: links,
-    modifiedLinks: modifiedLinks,
-    linkContent: link,
-    dataKey: dataKey,
-    onMouseEnter: (linkProps, e) => handleMouseEnter(linkProps, 'link', e),
-    onMouseLeave: (linkProps, e) => handleMouseLeave(linkProps, 'link', e),
-    onClick: (linkProps, e) => handleClick(linkProps, 'link', e)
-  }), /*#__PURE__*/React.createElement(AllNodeElements, {
-    graphicalItemId: id,
-    modifiedNodes: modifiedNodes,
-    nodeContent: node,
-    dataKey: dataKey,
-    onMouseEnter: (nodeProps, e) => handleMouseEnter(nodeProps, 'node', e),
-    onMouseLeave: (nodeProps, e) => handleMouseLeave(nodeProps, 'node', e),
-    onClick: (nodeProps, e) => handleClick(nodeProps, 'node', e)
-  })));
-}
-
-/**
- * Flow diagram in which the width of the arrows is proportional to the flow rate.
- * It is typically used to visualize energy or material or cost transfers between processes.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-function Sankey(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, sankeyDefaultProps);
-  var {
-    width,
-    height,
-    style,
-    className,
-    id: externalId
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = (0, _react.useState)(null);
-  return /*#__PURE__*/React.createElement(_RechartsStoreProvider.RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: className !== null && className !== void 0 ? className : 'Sankey'
-  }, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartMargin, {
-    margin: props.margin
-  }), /*#__PURE__*/React.createElement(_RechartsWrapper.RechartsWrapper, {
-    className: className,
-    style: style,
-    width: width,
-    height: height
-    /*
-     * Sankey, same as Treemap, suffers from overfilling the container
-     * and causing infinite render loops where the chart keeps growing.
-     */,
-    responsive: false,
-    ref: node => {
-      if (node && !tooltipPortal) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(_tooltipPortalContext.TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: externalId,
-    type: "sankey"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetSankeyTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    data: props.data,
-    id: id
-  }), /*#__PURE__*/React.createElement(SankeyImpl, _extends({}, props, {
-    id: id
-  })))))));
-}
-Sankey.displayName = 'Sankey';
Index: de_modules/recharts/lib/chart/ScatterChart.js
===================================================================
--- node_modules/recharts/lib/chart/ScatterChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ScatterChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _optionsSlice = require("../state/optionsSlice");
-var _CartesianChart = require("./CartesianChart");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var allowedTooltipTypes = ['item'];
-
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-var ScatterChart = exports.ScatterChart = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  return /*#__PURE__*/React.createElement(_CartesianChart.CartesianChart, {
-    chartName: "ScatterChart",
-    defaultTooltipEventType: "item",
-    validateTooltipEventTypes: allowedTooltipTypes,
-    tooltipPayloadSearcher: _optionsSlice.arrayTooltipSearcher,
-    categoricalChartProps: props,
-    ref: ref
-  });
-});
Index: de_modules/recharts/lib/chart/SunburstChart.js
===================================================================
--- node_modules/recharts/lib/chart/SunburstChart.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,337 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.payloadSearcher = exports.defaultSunburstChartProps = exports.SunburstChart = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _d3Scale = require("victory-vendor/d3-scale");
-var _clsx = require("clsx");
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _Surface = require("../container/Surface");
-var _Layer = require("../container/Layer");
-var _Sector = require("../shape/Sector");
-var _Text = require("../component/Text");
-var _PolarUtils = require("../util/PolarUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _tooltipPortalContext = require("../context/tooltipPortalContext");
-var _RechartsWrapper = require("./RechartsWrapper");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _RechartsStoreProvider = require("../state/RechartsStoreProvider");
-var _hooks = require("../state/hooks");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * We require tooltipIndex on each node internally to track which node is active in the tooltip.
- * This is not required from the outside user - we can calculate it as we traverse the tree.
- */
-
-var defaultTextProps = {
-  fontWeight: 'bold',
-  paintOrder: 'stroke fill',
-  fontSize: '.75rem',
-  stroke: '#FFF',
-  fill: 'black',
-  pointerEvents: 'none'
-};
-function getMaxDepthOf(node) {
-  if (!node.children || node.children.length === 0) return 1;
-
-  // Calculate depth for each child and find the maximum
-  var childDepths = node.children.map(d => getMaxDepthOf(d));
-  return 1 + Math.max(...childDepths);
-}
-var SetSunburstTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    data,
-    stroke,
-    fill,
-    positions,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: data.children,
-    getPosition: index => positions.get(index),
-    // Sunburst does not support many of the properties as other charts do so there's plenty of defaults here
-    settings: {
-      stroke,
-      strokeWidth: undefined,
-      fill,
-      nameKey,
-      dataKey,
-      // if there is a nameKey use it, otherwise make the name of the tooltip the dataKey itself
-      name: nameKey ? undefined : dataKey,
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// Why is margin not a sunburst prop? No clue. Probably it should be
-var defaultSunburstMargin = {
-  top: 0,
-  right: 0,
-  bottom: 0,
-  left: 0
-};
-var payloadSearcher = (data, activeIndex) => {
-  if (activeIndex == null) {
-    return undefined;
-  }
-  return (0, _get.default)(data, activeIndex);
-};
-exports.payloadSearcher = payloadSearcher;
-var addToSunburstNodeIndex = function addToSunburstNodeIndex(indexInChildrenArr) {
-  var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return "".concat(activeTooltipIndexSoFar, "children[").concat(indexInChildrenArr, "]");
-};
-var preloadedState = {
-  options: {
-    validateTooltipEventTypes: ['item'],
-    defaultTooltipEventType: 'item',
-    chartName: 'Sunburst',
-    tooltipPayloadSearcher: payloadSearcher,
-    eventEmitter: undefined
-  }
-};
-var defaultSunburstChartProps = exports.defaultSunburstChartProps = {
-  padding: 2,
-  dataKey: 'value',
-  nameKey: 'name',
-  ringPadding: 2,
-  innerRadius: 50,
-  fill: '#333',
-  stroke: '#FFF',
-  textOptions: defaultTextProps,
-  startAngle: 0,
-  endAngle: 360,
-  responsive: false
-};
-var SunburstChartImpl = _ref2 => {
-  var {
-    className,
-    data,
-    children,
-    padding,
-    dataKey,
-    nameKey,
-    ringPadding,
-    innerRadius,
-    fill,
-    stroke,
-    textOptions,
-    outerRadius: outerRadiusFromProps,
-    cx: cxFromProps,
-    cy: cyFromProps,
-    startAngle,
-    endAngle,
-    onClick,
-    onMouseEnter,
-    onMouseLeave,
-    id
-  } = _ref2;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var width = (0, _chartLayoutContext.useChartWidth)();
-  var height = (0, _chartLayoutContext.useChartHeight)();
-  if (width == null || height == null) {
-    return null;
-  }
-  var outerRadius = outerRadiusFromProps !== null && outerRadiusFromProps !== void 0 ? outerRadiusFromProps : Math.min(width, height) / 2;
-  var cx = cxFromProps !== null && cxFromProps !== void 0 ? cxFromProps : width / 2;
-  var cy = cyFromProps !== null && cyFromProps !== void 0 ? cyFromProps : height / 2;
-  var rScale = (0, _d3Scale.scaleLinear)([0, data[dataKey]], [0, endAngle]);
-  var treeDepth = getMaxDepthOf(data);
-  var thickness = (outerRadius - innerRadius) / treeDepth;
-  var sectors = [];
-  var positions = new Map([]);
-
-  // event handlers
-  function handleMouseEnter(node, e) {
-    if (onMouseEnter) onMouseEnter(node, e);
-    dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-      activeIndex: node.tooltipIndex,
-      activeDataKey: dataKey,
-      activeCoordinate: positions.get(node.name),
-      activeGraphicalItemId: id
-    }));
-  }
-  function handleMouseLeave(node, e) {
-    if (onMouseLeave) onMouseLeave(node, e);
-    dispatch((0, _tooltipSlice.mouseLeaveItem)());
-  }
-  function handleClick(node) {
-    if (onClick) onClick(node);
-    dispatch((0, _tooltipSlice.setActiveClickItemIndex)({
-      activeIndex: node.tooltipIndex,
-      activeDataKey: dataKey,
-      activeCoordinate: positions.get(node.name),
-      activeGraphicalItemId: id
-    }));
-  }
-
-  // recursively add nodes for each data point and its children
-  function drawArcs(childNodes, options) {
-    var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
-    var {
-      radius,
-      innerR,
-      initialAngle,
-      childColor,
-      nestedActiveTooltipIndex
-    } = options;
-    var currentAngle = initialAngle;
-    if (!childNodes) return; // base case: no children of this node
-
-    childNodes.forEach((d, i) => {
-      var _ref3, _d$fill;
-      var currentTooltipIndex = depth === 1 ? "[".concat(i, "]") : addToSunburstNodeIndex(i, nestedActiveTooltipIndex);
-      var nodeWithIndex = _objectSpread(_objectSpread({}, d), {}, {
-        tooltipIndex: currentTooltipIndex
-      });
-      var arcLength = rScale(d[dataKey]);
-      var start = currentAngle;
-      // color priority - if there's a color on the individual point use that, otherwise use parent color or default
-      var fillColor = (_ref3 = (_d$fill = d === null || d === void 0 ? void 0 : d.fill) !== null && _d$fill !== void 0 ? _d$fill : childColor) !== null && _ref3 !== void 0 ? _ref3 : fill;
-      var {
-        x: textX,
-        y: textY
-      } = (0, _PolarUtils.polarToCartesian)(0, 0, innerR + radius / 2, -(start + arcLength - arcLength / 2));
-      currentAngle += arcLength;
-      sectors.push(/*#__PURE__*/React.createElement("g", {
-        key: "sunburst-sector-".concat(d.name, "-").concat(i)
-      }, /*#__PURE__*/React.createElement(_Sector.Sector, {
-        onClick: () => handleClick(nodeWithIndex),
-        onMouseEnter: e => handleMouseEnter(nodeWithIndex, e),
-        onMouseLeave: e => handleMouseLeave(nodeWithIndex, e),
-        fill: fillColor,
-        stroke: stroke,
-        strokeWidth: padding,
-        startAngle: start,
-        endAngle: start + arcLength,
-        innerRadius: innerR,
-        outerRadius: innerR + radius,
-        cx: cx,
-        cy: cy
-      }), /*#__PURE__*/React.createElement(_Text.Text, _extends({}, textOptions, {
-        alignmentBaseline: "middle",
-        textAnchor: "middle",
-        x: textX + cx,
-        y: cy - textY
-      }), d[dataKey])));
-      var {
-        x: tooltipX,
-        y: tooltipY
-      } = (0, _PolarUtils.polarToCartesian)(cx, cy, innerR + radius / 2, start);
-      positions.set(d.name, {
-        x: tooltipX,
-        y: tooltipY
-      });
-      return drawArcs(d.children, {
-        radius,
-        innerR: innerR + radius + ringPadding,
-        initialAngle: start,
-        childColor: fillColor,
-        nestedActiveTooltipIndex: currentTooltipIndex
-      }, depth + 1);
-    });
-  }
-  drawArcs(data.children, {
-    radius: thickness,
-    innerR: innerRadius,
-    initialAngle: startAngle
-  });
-  var layerClass = (0, _clsx.clsx)('recharts-sunburst', className);
-  return /*#__PURE__*/React.createElement(_Surface.Surface, {
-    width: width,
-    height: height
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: layerClass
-  }, sectors), /*#__PURE__*/React.createElement(SetSunburstTooltipEntrySettings, {
-    dataKey: dataKey,
-    nameKey: nameKey,
-    data: data,
-    stroke: stroke,
-    fill: fill,
-    positions: positions,
-    id: id
-  }), children);
-};
-
-/**
- * The sunburst is a hierarchical chart, similar to a {@link Treemap}, plotted in polar coordinates.
- * Sunburst charts effectively convey the hierarchical relationships and proportions within each level.
- * It is easy to see all the middle layers in the hierarchy, which might get lost in other visualizations.
- * For some datasets, the radial layout may be more visually appealing and intuitive than a traditional {@link Treemap}.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-var SunburstChart = outsideProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultSunburstChartProps);
-  var {
-    className,
-    width,
-    height,
-    responsive,
-    style,
-    id: externalId
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = (0, _react.useState)(null);
-  return /*#__PURE__*/React.createElement(_RechartsStoreProvider.RechartsStoreProvider, {
-    preloadedState: preloadedState,
-    reduxStoreName: className !== null && className !== void 0 ? className : 'SunburstChart'
-  }, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartSize, {
-    width: width,
-    height: height
-  }), /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartMargin, {
-    margin: defaultSunburstMargin
-  }), /*#__PURE__*/React.createElement(_tooltipPortalContext.TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(_RechartsWrapper.RechartsWrapper, {
-    className: className,
-    width: width,
-    height: height,
-    responsive: responsive,
-    style: style,
-    ref: node => {
-      if (tooltipPortal == null && node != null) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: externalId,
-    type: "sunburst"
-  }, id => /*#__PURE__*/React.createElement(SunburstChartImpl, _extends({}, props, {
-    id: id
-  }))))));
-};
-exports.SunburstChart = SunburstChart;
Index: de_modules/recharts/lib/chart/Treemap.js
===================================================================
--- node_modules/recharts/lib/chart/Treemap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,841 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Treemap = Treemap;
-exports.treemapPayloadSearcher = exports.defaultTreeMapProps = exports.computeNode = exports.addToTreemapNodeIndex = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _omit = _interopRequireDefault(require("es-toolkit/compat/omit"));
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _Layer = require("../container/Layer");
-var _Surface = require("../container/Surface");
-var _Polygon = require("../shape/Polygon");
-var _Rectangle = require("../shape/Rectangle");
-var _ChartUtils = require("../util/ChartUtils");
-var _Constants = require("../util/Constants");
-var _DataUtils = require("../util/DataUtils");
-var _DOMUtils = require("../util/DOMUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _tooltipPortalContext = require("../context/tooltipPortalContext");
-var _RechartsWrapper = require("./RechartsWrapper");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _RechartsStoreProvider = require("../state/RechartsStoreProvider");
-var _hooks = require("../state/hooks");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _CSSTransitionAnimate = require("../animation/CSSTransitionAnimate");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _excluded = ["width", "height", "className", "style", "children", "type"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var NODE_VALUE_KEY = 'value';
-
-/**
- * This is what end users defines as `data` on Treemap.
- */
-
-/**
- * This is what is returned from `squarify`, the final treemap data structure
- * that gets rendered and is stored in
- */
-
-function isTreemapNode(value) {
-  return value != null && typeof value === 'object' && 'x' in value && 'y' in value && 'width' in value && 'height' in value && typeof value.x === 'number' && typeof value.y === 'number' && typeof value.width === 'number' && typeof value.height === 'number';
-}
-var treemapPayloadSearcher = (data, activeIndex) => {
-  if (!data || !activeIndex) {
-    return undefined;
-  }
-  return (0, _get.default)(data, activeIndex);
-};
-exports.treemapPayloadSearcher = treemapPayloadSearcher;
-var addToTreemapNodeIndex = exports.addToTreemapNodeIndex = function addToTreemapNodeIndex(indexInChildrenArr) {
-  var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return "".concat(activeTooltipIndexSoFar, "children[").concat(indexInChildrenArr, "]");
-};
-var options = {
-  chartName: 'Treemap',
-  defaultTooltipEventType: 'item',
-  validateTooltipEventTypes: ['item'],
-  tooltipPayloadSearcher: treemapPayloadSearcher,
-  eventEmitter: undefined
-};
-var computeNode = _ref => {
-  var {
-    depth,
-    node,
-    index,
-    dataKey,
-    nameKey,
-    nestedActiveTooltipIndex
-  } = _ref;
-  var currentTooltipIndex = depth === 0 ? '' : addToTreemapNodeIndex(index, nestedActiveTooltipIndex);
-  var {
-    children
-  } = node;
-  var childDepth = depth + 1;
-  var computedChildren = children && children.length ? children.map((child, i) => computeNode({
-    depth: childDepth,
-    node: child,
-    index: i,
-    dataKey,
-    nameKey,
-    nestedActiveTooltipIndex: currentTooltipIndex
-  })) : null;
-  var nodeValue;
-  if (computedChildren && computedChildren.length) {
-    nodeValue = computedChildren.reduce((result, child) => result + child.value, 0);
-  } else {
-    // TODO need to verify dataKey
-    var rawNodeValue = node[dataKey];
-    var numericValue = typeof rawNodeValue === 'number' ? rawNodeValue : 0;
-    nodeValue = (0, _DataUtils.isNan)(numericValue) || numericValue <= 0 ? 0 : numericValue;
-  }
-  return _objectSpread(_objectSpread({}, node), {}, {
-    children: computedChildren,
-    // @ts-expect-error getValueByDataKey does not validate the output type
-    name: (0, _ChartUtils.getValueByDataKey)(node, nameKey, ''),
-    [NODE_VALUE_KEY]: nodeValue,
-    depth,
-    index,
-    tooltipIndex: currentTooltipIndex
-  });
-};
-exports.computeNode = computeNode;
-var filterRect = node => ({
-  x: node.x,
-  y: node.y,
-  width: node.width,
-  height: node.height
-});
-// Compute the area for each child based on value & scale.
-var getAreaOfChildren = (children, areaValueRatio) => {
-  var ratio = areaValueRatio < 0 ? 0 : areaValueRatio;
-  return children.map(child => {
-    var area = child[NODE_VALUE_KEY] * ratio;
-    return _objectSpread(_objectSpread({}, child), {}, {
-      area: (0, _DataUtils.isNan)(area) || area <= 0 ? 0 : area
-    });
-  });
-};
-
-// Computes the score for the specified row, as the worst aspect ratio.
-var getWorstScore = (row, parentSize, aspectRatio) => {
-  var parentArea = parentSize * parentSize;
-  var rowArea = row.area * row.area;
-  var {
-    min,
-    max
-  } = row.reduce((result, child) => ({
-    min: Math.min(result.min, child.area),
-    max: Math.max(result.max, child.area)
-  }), {
-    min: Infinity,
-    max: 0
-  });
-  return rowArea ? Math.max(parentArea * max * aspectRatio / rowArea, rowArea / (parentArea * min * aspectRatio)) : Infinity;
-};
-var horizontalPosition = (row, parentSize, parentRect, isFlush) => {
-  var rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;
-  if (isFlush || rowHeight > parentRect.height) {
-    rowHeight = parentRect.height;
-  }
-  var curX = parentRect.x;
-  var child;
-  for (var i = 0, len = row.length; i < len; i++) {
-    child = row[i];
-    if (child == null) {
-      continue;
-    }
-    child.x = curX;
-    child.y = parentRect.y;
-    child.height = rowHeight;
-    child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);
-    curX += child.width;
-  }
-  // add the remain x to the last one of row
-  if (child != null) {
-    child.width += parentRect.x + parentRect.width - curX;
-  }
-  return _objectSpread(_objectSpread({}, parentRect), {}, {
-    y: parentRect.y + rowHeight,
-    height: parentRect.height - rowHeight
-  });
-};
-var verticalPosition = (row, parentSize, parentRect, isFlush) => {
-  var rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;
-  if (isFlush || rowWidth > parentRect.width) {
-    rowWidth = parentRect.width;
-  }
-  var curY = parentRect.y;
-  var child;
-  for (var i = 0, len = row.length; i < len; i++) {
-    child = row[i];
-    if (child == null) {
-      continue;
-    }
-    child.x = parentRect.x;
-    child.y = curY;
-    child.width = rowWidth;
-    child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);
-    curY += child.height;
-  }
-  if (child) {
-    child.height += parentRect.y + parentRect.height - curY;
-  }
-  return _objectSpread(_objectSpread({}, parentRect), {}, {
-    x: parentRect.x + rowWidth,
-    width: parentRect.width - rowWidth
-  });
-};
-var position = (row, parentSize, parentRect, isFlush) => {
-  if (parentSize === parentRect.width) {
-    return horizontalPosition(row, parentSize, parentRect, isFlush);
-  }
-  return verticalPosition(row, parentSize, parentRect, isFlush);
-};
-// Recursively arranges the specified node's children into squarified rows.
-var squarify = (node, aspectRatio) => {
-  var {
-    children
-  } = node;
-  if (children && children.length) {
-    var rect = filterRect(node);
-    // @ts-expect-error we can't create an array with static property on a single line so typescript will complain.
-    var row = [];
-    var best = Infinity; // the best row score so far
-    var child, score; // the current row score
-    var size = Math.min(rect.width, rect.height); // initial orientation
-    var scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node[NODE_VALUE_KEY]);
-    var tempChildren = scaleChildren.slice();
-
-    // why are we setting static properties on an array?
-    row.area = 0;
-    while (tempChildren.length > 0) {
-      [child] = tempChildren;
-      if (child == null) {
-        continue;
-      }
-      // row first
-      row.push(child);
-      row.area += child.area;
-      score = getWorstScore(row, size, aspectRatio);
-      if (score <= best) {
-        // continue with this orientation
-        tempChildren.shift();
-        best = score;
-      } else {
-        var _row$pop$area, _row$pop;
-        // abort, and try a different orientation
-        row.area -= (_row$pop$area = (_row$pop = row.pop()) === null || _row$pop === void 0 ? void 0 : _row$pop.area) !== null && _row$pop$area !== void 0 ? _row$pop$area : 0;
-        rect = position(row, size, rect, false);
-        size = Math.min(rect.width, rect.height);
-        row.length = row.area = 0;
-        best = Infinity;
-      }
-    }
-    if (row.length) {
-      rect = position(row, size, rect, true);
-      row.length = row.area = 0;
-    }
-    return _objectSpread(_objectSpread({}, node), {}, {
-      children: scaleChildren.map(c => squarify(c, aspectRatio))
-    });
-  }
-  return node;
-};
-var defaultTreeMapProps = exports.defaultTreeMapProps = {
-  aspectRatio: 0.5 * (1 + Math.sqrt(5)),
-  dataKey: 'value',
-  nameKey: 'name',
-  type: 'flat',
-  isAnimationActive: 'auto',
-  isUpdateAnimationActive: 'auto',
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'linear'
-};
-var defaultState = {
-  isAnimationFinished: false,
-  formatRoot: null,
-  currentRoot: undefined,
-  nestIndex: [],
-  prevAspectRatio: defaultTreeMapProps.aspectRatio,
-  prevDataKey: defaultTreeMapProps.dataKey
-};
-function ContentItem(_ref2) {
-  var {
-    content,
-    nodeProps,
-    type,
-    colorPanel,
-    onMouseEnter,
-    onMouseLeave,
-    onClick
-  } = _ref2;
-  if (/*#__PURE__*/React.isValidElement(content)) {
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick
-    }, /*#__PURE__*/React.cloneElement(content, nodeProps));
-  }
-  if (typeof content === 'function') {
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      onMouseEnter: onMouseEnter,
-      onMouseLeave: onMouseLeave,
-      onClick: onClick
-    }, content(nodeProps));
-  }
-  // optimize default shape
-  var {
-    x,
-    y,
-    width,
-    height,
-    index
-  } = nodeProps;
-  var arrow = null;
-  if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {
-    arrow = /*#__PURE__*/React.createElement(_Polygon.Polygon, {
-      points: [{
-        x: x + 2,
-        y: y + height / 2
-      }, {
-        x: x + 6,
-        y: y + height / 2 + 3
-      }, {
-        x: x + 2,
-        y: y + height / 2 + 6
-      }]
-    });
-  }
-  var text = null;
-  var nameSize = (0, _DOMUtils.getStringSize)(nodeProps.name);
-  if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {
-    text = /*#__PURE__*/React.createElement("text", {
-      x: x + 8,
-      y: y + height / 2 + 7,
-      fontSize: 14
-    }, nodeProps.name);
-  }
-  var colors = colorPanel || _Constants.COLOR_PANEL;
-  return /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement(_Rectangle.Rectangle, _extends({
-    fill: nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)',
-    stroke: "#fff"
-  }, (0, _omit.default)(nodeProps, ['children']), {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick,
-    "data-recharts-item-index": nodeProps.tooltipIndex
-  })), arrow, text);
-}
-function ContentItemWithEvents(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var activeCoordinate = {
-    x: props.nodeProps.x + props.nodeProps.width / 2,
-    y: props.nodeProps.y + props.nodeProps.height / 2
-  };
-  var onMouseEnter = () => {
-    dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-      activeIndex: props.nodeProps.tooltipIndex,
-      activeDataKey: props.dataKey,
-      activeCoordinate,
-      activeGraphicalItemId: props.id
-    }));
-  };
-  var onMouseLeave = () => {
-    // clearing state on mouseLeaveItem causes re-rendering issues
-    // we don't actually want to do this for TreeMap - we clear state when we leave the entire chart instead
-  };
-  var onClick = () => {
-    dispatch((0, _tooltipSlice.setActiveClickItemIndex)({
-      activeIndex: props.nodeProps.tooltipIndex,
-      activeDataKey: props.dataKey,
-      activeCoordinate,
-      activeGraphicalItemId: props.id
-    }));
-  };
-  return /*#__PURE__*/React.createElement(ContentItem, _extends({}, props, {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick
-  }));
-}
-var SetTreemapTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {
-  var {
-    dataKey,
-    nameKey,
-    stroke,
-    fill,
-    currentRoot,
-    id
-  } = _ref3;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: currentRoot,
-    getPosition: _DataUtils.noop,
-    // TODO I think Treemap has the capability of computing positions and supporting defaultIndex? Except it doesn't yet
-    settings: {
-      stroke,
-      strokeWidth: undefined,
-      fill,
-      dataKey,
-      nameKey,
-      name: undefined,
-      // Each TreemapNode has its own name
-      hide: false,
-      type: undefined,
-      color: fill,
-      unit: '',
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-
-// Why is margin not a treemap prop? No clue. Probably it should be
-var defaultTreemapMargin = {
-  top: 0,
-  right: 0,
-  bottom: 0,
-  left: 0
-};
-function TreemapItem(_ref4) {
-  var {
-    content,
-    nodeProps,
-    isLeaf,
-    treemapProps,
-    onNestClick
-  } = _ref4;
-  var {
-    id,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    isUpdateAnimationActive,
-    type,
-    colorPanel,
-    dataKey,
-    onAnimationStart,
-    onAnimationEnd,
-    onMouseEnter: onMouseEnterFromProps,
-    onClick: onItemClickFromProps,
-    onMouseLeave: onMouseLeaveFromProps
-  } = treemapProps;
-  var {
-    width,
-    height,
-    x,
-    y
-  } = nodeProps;
-  var translateX = -x - width;
-  var translateY = 0;
-  var onMouseEnter = e => {
-    if ((isLeaf || type === 'nest') && typeof onMouseEnterFromProps === 'function') {
-      onMouseEnterFromProps(nodeProps, e);
-    }
-  };
-  var onMouseLeave = e => {
-    if ((isLeaf || type === 'nest') && typeof onMouseLeaveFromProps === 'function') {
-      onMouseLeaveFromProps(nodeProps, e);
-    }
-  };
-  var onClick = () => {
-    if (type === 'nest') {
-      onNestClick(nodeProps);
-    }
-    if ((isLeaf || type === 'nest') && typeof onItemClickFromProps === 'function') {
-      onItemClickFromProps(nodeProps);
-    }
-  };
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(_CSSTransitionAnimate.CSSTransitionAnimate, {
-    animationId: "treemap-".concat(nodeProps.tooltipIndex),
-    from: "translate(".concat(translateX, "px, ").concat(translateY, "px)"),
-    to: "translate(0, 0)",
-    attributeName: "transform",
-    begin: animationBegin,
-    easing: animationEasing,
-    isActive: isAnimationActive,
-    duration: animationDuration,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd
-  }, style => /*#__PURE__*/React.createElement(_Layer.Layer, {
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    onClick: onClick,
-    style: _objectSpread(_objectSpread({}, style), {}, {
-      transformOrigin: "".concat(x, " ").concat(y)
-    })
-  }, /*#__PURE__*/React.createElement(ContentItemWithEvents, {
-    id: id,
-    content: content,
-    dataKey: dataKey,
-    nodeProps: _objectSpread(_objectSpread({}, nodeProps), {}, {
-      isAnimationActive,
-      isUpdateAnimationActive: !isUpdateAnimationActive,
-      width,
-      height,
-      x,
-      y
-    }),
-    type: type,
-    colorPanel: colorPanel
-  })));
-}
-class TreemapWithState extends _react.PureComponent {
-  constructor() {
-    super(...arguments);
-    _defineProperty(this, "state", _objectSpread({}, defaultState));
-    _defineProperty(this, "handleClick", node => {
-      var {
-        onClick,
-        type
-      } = this.props;
-      if (type === 'nest' && node.children) {
-        var {
-          width,
-          height,
-          dataKey,
-          nameKey,
-          aspectRatio
-        } = this.props;
-        var root = computeNode({
-          depth: 0,
-          node: _objectSpread(_objectSpread({}, node), {}, {
-            x: 0,
-            y: 0,
-            width,
-            height
-          }),
-          index: 0,
-          dataKey,
-          nameKey,
-          // with Treemap nesting, should this continue nesting the index or start from empty string?
-          nestedActiveTooltipIndex: node.tooltipIndex
-        });
-        var formatRoot = squarify(root, aspectRatio);
-        var {
-          nestIndex
-        } = this.state;
-        nestIndex.push(node);
-        this.setState({
-          formatRoot,
-          currentRoot: root,
-          nestIndex
-        });
-      }
-      if (onClick) {
-        onClick(node);
-      }
-    });
-    _defineProperty(this, "handleTouchMove", e => {
-      var touchEvent = e.touches[0];
-      if (touchEvent == null) {
-        return;
-      }
-      var target = document.elementFromPoint(touchEvent.clientX, touchEvent.clientY);
-      if (!target || !target.getAttribute || this.state.formatRoot == null) {
-        return;
-      }
-      var itemIndex = target.getAttribute('data-recharts-item-index');
-      var activeNode = treemapPayloadSearcher(this.state.formatRoot, itemIndex);
-      if (!isTreemapNode(activeNode)) {
-        return;
-      }
-      var {
-        dataKey,
-        dispatch
-      } = this.props;
-      var activeCoordinate = {
-        x: activeNode.x + activeNode.width / 2,
-        y: activeNode.y + activeNode.height / 2
-      };
-
-      // Treemap does not support onTouchMove prop, but it could
-      // onTouchMove?.(activeNode, Number(itemIndex), e);
-      dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-        activeIndex: itemIndex,
-        activeDataKey: dataKey,
-        activeCoordinate,
-        activeGraphicalItemId: this.props.id
-      }));
-    });
-  }
-  static getDerivedStateFromProps(nextProps, prevState) {
-    if (nextProps.data !== prevState.prevData || nextProps.type !== prevState.prevType || nextProps.width !== prevState.prevWidth || nextProps.height !== prevState.prevHeight || nextProps.dataKey !== prevState.prevDataKey || nextProps.aspectRatio !== prevState.prevAspectRatio) {
-      var root = computeNode({
-        depth: 0,
-        // @ts-expect-error missing properties
-        node: {
-          children: nextProps.data,
-          x: 0,
-          y: 0,
-          width: nextProps.width,
-          height: nextProps.height
-        },
-        index: 0,
-        dataKey: nextProps.dataKey,
-        nameKey: nextProps.nameKey
-      });
-      var formatRoot = squarify(root, nextProps.aspectRatio);
-      return _objectSpread(_objectSpread({}, prevState), {}, {
-        formatRoot,
-        currentRoot: root,
-        nestIndex: [root],
-        prevAspectRatio: nextProps.aspectRatio,
-        prevData: nextProps.data,
-        prevWidth: nextProps.width,
-        prevHeight: nextProps.height,
-        prevDataKey: nextProps.dataKey,
-        prevType: nextProps.type
-      });
-    }
-    return null;
-  }
-  handleNestIndex(node, i) {
-    var {
-      nestIndex
-    } = this.state;
-    var {
-      width,
-      height,
-      dataKey,
-      nameKey,
-      aspectRatio
-    } = this.props;
-    var root = computeNode({
-      depth: 0,
-      node: _objectSpread(_objectSpread({}, node), {}, {
-        x: 0,
-        y: 0,
-        width,
-        height
-      }),
-      index: 0,
-      dataKey,
-      nameKey,
-      // with Treemap nesting, should this continue nesting the index or start from empty string?
-      nestedActiveTooltipIndex: node.tooltipIndex
-    });
-    var formatRoot = squarify(root, aspectRatio);
-    nestIndex = nestIndex.slice(0, i + 1);
-    this.setState({
-      formatRoot,
-      currentRoot: node,
-      nestIndex
-    });
-  }
-  renderNode(root, node) {
-    var {
-      content,
-      type
-    } = this.props;
-    var nodeProps = _objectSpread(_objectSpread(_objectSpread({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(this.props)), node), {}, {
-      root
-    });
-    var isLeaf = !node.children || !node.children.length;
-    var {
-      currentRoot
-    } = this.state;
-    var isCurrentRootChild = ((currentRoot === null || currentRoot === void 0 ? void 0 : currentRoot.children) || []).filter(item => item.depth === node.depth && item.name === node.name);
-    if (!isCurrentRootChild.length && root.depth && type === 'nest') {
-      return null;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      key: "recharts-treemap-node-".concat(nodeProps.x, "-").concat(nodeProps.y, "-").concat(nodeProps.name),
-      className: "recharts-treemap-depth-".concat(node.depth)
-    }, /*#__PURE__*/React.createElement(TreemapItem, {
-      isLeaf: isLeaf,
-      content: content,
-      nodeProps: nodeProps,
-      treemapProps: this.props,
-      onNestClick: this.handleClick
-    }), node.children && node.children.length ? node.children.map(child => this.renderNode(node, child)) : null);
-  }
-  renderAllNodes() {
-    var {
-      formatRoot
-    } = this.state;
-    if (!formatRoot) {
-      return null;
-    }
-    return this.renderNode(formatRoot, formatRoot);
-  }
-
-  // render nest treemap
-  renderNestIndex() {
-    var {
-      nameKey,
-      nestIndexContent
-    } = this.props;
-    var {
-      nestIndex
-    } = this.state;
-    return /*#__PURE__*/React.createElement("div", {
-      className: "recharts-treemap-nest-index-wrapper",
-      style: {
-        marginTop: '8px',
-        textAlign: 'center'
-      }
-    }, nestIndex.map((item, i) => {
-      // TODO need to verify nameKey type
-      var rawName = (0, _get.default)(item, nameKey, 'root');
-      var name = typeof rawName === 'string' ? rawName : 'root';
-      var content;
-      if (/*#__PURE__*/React.isValidElement(nestIndexContent)) {
-        // the cloned content is ignored at all times - let's remove it?
-        content = /*#__PURE__*/React.cloneElement(nestIndexContent, item, i);
-      }
-      if (typeof nestIndexContent === 'function') {
-        content = nestIndexContent(item, i);
-      } else {
-        content = name;
-      }
-      return (
-        /*#__PURE__*/
-        // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
-        React.createElement("div", {
-          onClick: this.handleNestIndex.bind(this, item, i),
-          key: "nest-index-".concat((0, _DataUtils.uniqueId)()),
-          className: "recharts-treemap-nest-index-box",
-          style: {
-            cursor: 'pointer',
-            display: 'inline-block',
-            padding: '0 7px',
-            background: '#000',
-            color: '#fff',
-            marginRight: '3px'
-          }
-        }, content)
-      );
-    }));
-  }
-  render() {
-    var _this$props = this.props,
-      {
-        width,
-        height,
-        className,
-        style,
-        children,
-        type
-      } = _this$props,
-      others = _objectWithoutProperties(_this$props, _excluded);
-    var attrs = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetTreemapTooltipEntrySettings, {
-      dataKey: this.props.dataKey,
-      nameKey: this.props.nameKey,
-      stroke: this.props.stroke,
-      fill: this.props.fill,
-      currentRoot: this.state.currentRoot,
-      id: this.props.id
-    }), /*#__PURE__*/React.createElement(_Surface.Surface, _extends({}, attrs, {
-      width: width,
-      height: type === 'nest' ? height - 30 : height,
-      onTouchMove: this.handleTouchMove
-    }), this.renderAllNodes(), children), type === 'nest' && this.renderNestIndex());
-  }
-}
-_defineProperty(TreemapWithState, "displayName", 'Treemap');
-function TreemapDispatchInject(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var width = (0, _chartLayoutContext.useChartWidth)();
-  var height = (0, _chartLayoutContext.useChartHeight)();
-  if (!(0, _isWellBehavedNumber.isPositiveNumber)(width) || !(0, _isWellBehavedNumber.isPositiveNumber)(height)) {
-    return null;
-  }
-  var {
-    id: externalId
-  } = props;
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: externalId,
-    type: "treemap"
-  }, id => /*#__PURE__*/React.createElement(TreemapWithState, _extends({}, props, {
-    id: id,
-    width: width,
-    height: height,
-    dispatch: dispatch
-  })));
-}
-
-/**
- * The Treemap chart is used to visualize hierarchical data using nested rectangles.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-function Treemap(outsideProps) {
-  var _props$className;
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultTreeMapProps);
-  var {
-    className,
-    style,
-    width,
-    height
-  } = props;
-  var [tooltipPortal, setTooltipPortal] = (0, _react.useState)(null);
-  return /*#__PURE__*/React.createElement(_RechartsStoreProvider.RechartsStoreProvider, {
-    preloadedState: {
-      options
-    },
-    reduxStoreName: (_props$className = props.className) !== null && _props$className !== void 0 ? _props$className : 'Treemap'
-  }, /*#__PURE__*/React.createElement(_chartLayoutContext.ReportChartMargin, {
-    margin: defaultTreemapMargin
-  }), /*#__PURE__*/React.createElement(_RechartsWrapper.RechartsWrapper, {
-    dispatchTouchEvents: false,
-    className: className,
-    style: style,
-    width: width,
-    height: height
-    /*
-     * Treemap has a bug where it doesn't include strokeWidth in its dimension calculation
-     * which makes the actual chart exactly {strokeWidth} larger than asked for.
-     * It's not a huge deal usually, but it makes the responsive option cycle infinitely.
-     */,
-    responsive: false,
-    ref: node => {
-      if (tooltipPortal == null && node != null) {
-        setTooltipPortal(node);
-      }
-    },
-    onMouseEnter: undefined,
-    onMouseLeave: undefined,
-    onClick: undefined,
-    onMouseMove: undefined,
-    onMouseDown: undefined,
-    onMouseUp: undefined,
-    onContextMenu: undefined,
-    onDoubleClick: undefined,
-    onTouchStart: undefined,
-    onTouchMove: undefined,
-    onTouchEnd: undefined
-  }, /*#__PURE__*/React.createElement(_tooltipPortalContext.TooltipPortalContext.Provider, {
-    value: tooltipPortal
-  }, /*#__PURE__*/React.createElement(TreemapDispatchInject, props))));
-}
Index: de_modules/recharts/lib/chart/types.js
===================================================================
--- node_modules/recharts/lib/chart/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/component/ActivePoints.js
===================================================================
--- node_modules/recharts/lib/component/ActivePoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,94 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ActivePoints = ActivePoints;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _types = require("../util/types");
-var _Dot = require("../shape/Dot");
-var _Layer = require("../container/Layer");
-var _hooks = require("../state/hooks");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _hooks2 = require("../hooks");
-var _DataUtils = require("../util/DataUtils");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var ActivePoint = _ref => {
-  var {
-    point,
-    childIndex,
-    mainColor,
-    activeDot,
-    dataKey,
-    clipPath
-  } = _ref;
-  if (activeDot === false || point.x == null || point.y == null) {
-    return null;
-  }
-  var dotPropsTyped = {
-    index: childIndex,
-    dataKey,
-    cx: point.x,
-    cy: point.y,
-    r: 4,
-    fill: mainColor !== null && mainColor !== void 0 ? mainColor : 'none',
-    strokeWidth: 2,
-    stroke: '#fff',
-    payload: point.payload,
-    value: point.value
-  };
-
-  // @ts-expect-error svgPropertiesNoEventsFromUnknown(activeDot) is contributing unknown props
-  var dotProps = _objectSpread(_objectSpread(_objectSpread({}, dotPropsTyped), (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(activeDot)), (0, _types.adaptEventHandlers)(activeDot));
-  var dot;
-  if (/*#__PURE__*/(0, _react.isValidElement)(activeDot)) {
-    // @ts-expect-error we're improperly typing events
-    dot = /*#__PURE__*/(0, _react.cloneElement)(activeDot, dotProps);
-  } else if (typeof activeDot === 'function') {
-    dot = activeDot(dotProps);
-  } else {
-    dot = /*#__PURE__*/React.createElement(_Dot.Dot, dotProps);
-  }
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-active-dot",
-    clipPath: clipPath
-  }, dot);
-};
-function ActivePoints(_ref2) {
-  var {
-    points,
-    mainColor,
-    activeDot,
-    itemDataKey,
-    clipPath,
-    zIndex = _DefaultZIndexes.DefaultZIndexes.activeDot
-  } = _ref2;
-  var activeTooltipIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var activeDataPoints = (0, _hooks2.useActiveTooltipDataPoints)();
-  if (points == null || activeDataPoints == null) {
-    return null;
-  }
-  var activePoint = points.find(p => activeDataPoints.includes(p.payload));
-  if ((0, _DataUtils.isNullish)(activePoint)) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(ActivePoint, {
-    point: activePoint,
-    childIndex: Number(activeTooltipIndex),
-    mainColor: mainColor,
-    dataKey: itemDataKey,
-    activeDot: activeDot,
-    clipPath: clipPath
-  }));
-}
Index: de_modules/recharts/lib/component/Cell.js
===================================================================
--- node_modules/recharts/lib/component/Cell.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Cell = void 0;
-/**
- * Cell component used to define colors and styles of chart elements.
- *
- * This component is now deprecated and will be removed in Recharts 4.0.
- *
- * Please use the `shape` prop or `content` prop on the respective chart components
- * to customize the rendering of chart elements instead of using `Cell`.
- *
- * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}
- *
- * @deprecated
- * @consumes CellReader
- */
-var Cell = _props => null;
-exports.Cell = Cell;
-Cell.displayName = 'Cell';
Index: de_modules/recharts/lib/component/Cursor.js
===================================================================
--- node_modules/recharts/lib/component/Cursor.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Cursor = Cursor;
-exports.CursorInternal = CursorInternal;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _types = require("../util/types");
-var _Curve = require("../shape/Curve");
-var _Cross = require("../shape/Cross");
-var _getCursorRectangle = require("../util/cursor/getCursorRectangle");
-var _Rectangle = require("../shape/Rectangle");
-var _getRadialCursorPoints = require("../util/cursor/getRadialCursorPoints");
-var _Sector = require("../shape/Sector");
-var _getCursorPoints = require("../util/cursor/getCursorPoints");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _useTooltipAxis = require("../context/useTooltipAxis");
-var _selectors = require("../state/selectors/selectors");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * If set false, no cursor will be drawn when tooltip is active.
- * If set an object, the option is the configuration of cursor.
- * If set a React element, the option is the custom react element of drawing cursor
- */
-
-function RenderCursor(_ref) {
-  var {
-    cursor,
-    cursorComp,
-    cursorProps
-  } = _ref;
-  if (/*#__PURE__*/(0, _react.isValidElement)(cursor)) {
-    return /*#__PURE__*/(0, _react.cloneElement)(cursor, cursorProps);
-  }
-  return /*#__PURE__*/(0, _react.createElement)(cursorComp, cursorProps);
-}
-function CursorInternal(props) {
-  var _props$zIndex;
-  var {
-    coordinate,
-    payload,
-    index,
-    offset,
-    tooltipAxisBandSize,
-    layout,
-    cursor,
-    tooltipEventType,
-    chartName
-  } = props;
-
-  // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.
-  var activeCoordinate = coordinate;
-  var activePayload = payload;
-  var activeTooltipIndex = index;
-  if (!cursor || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {
-    return null;
-  }
-  var restProps, cursorComp, preferredZIndex;
-  if (chartName === 'ScatterChart') {
-    restProps = activeCoordinate;
-    cursorComp = _Cross.Cross;
-    preferredZIndex = _DefaultZIndexes.DefaultZIndexes.cursorLine;
-  } else if (chartName === 'BarChart') {
-    restProps = (0, _getCursorRectangle.getCursorRectangle)(layout, activeCoordinate, offset, tooltipAxisBandSize);
-    cursorComp = _Rectangle.Rectangle;
-    preferredZIndex = _DefaultZIndexes.DefaultZIndexes.cursorRectangle;
-  } else if (layout === 'radial' && (0, _types.isPolarCoordinate)(activeCoordinate)) {
-    var {
-      cx,
-      cy,
-      radius,
-      startAngle,
-      endAngle
-    } = (0, _getRadialCursorPoints.getRadialCursorPoints)(activeCoordinate);
-    restProps = {
-      cx,
-      cy,
-      startAngle,
-      endAngle,
-      innerRadius: radius,
-      outerRadius: radius
-    };
-    cursorComp = _Sector.Sector;
-    preferredZIndex = _DefaultZIndexes.DefaultZIndexes.cursorLine;
-  } else {
-    restProps = {
-      points: (0, _getCursorPoints.getCursorPoints)(layout, activeCoordinate, offset)
-    };
-    cursorComp = _Curve.Curve;
-    preferredZIndex = _DefaultZIndexes.DefaultZIndexes.cursorLine;
-  }
-  var extraClassName = typeof cursor === 'object' && 'className' in cursor ? cursor.className : undefined;
-  var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-    stroke: '#ccc',
-    pointerEvents: 'none'
-  }, offset), restProps), (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(cursor)), {}, {
-    payload: activePayload,
-    payloadIndex: activeTooltipIndex,
-    className: (0, _clsx.clsx)('recharts-tooltip-cursor', extraClassName)
-  });
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: (_props$zIndex = props.zIndex) !== null && _props$zIndex !== void 0 ? _props$zIndex : preferredZIndex
-  }, /*#__PURE__*/React.createElement(RenderCursor, {
-    cursor: cursor,
-    cursorComp: cursorComp,
-    cursorProps: cursorProps
-  }));
-}
-
-/*
- * Cursor is the background, or a highlight,
- * that shows when user mouses over or activates
- * an area.
- *
- * It usually shows together with a tooltip
- * to emphasise which part of the chart does the tooltip refer to.
- */
-function Cursor(props) {
-  var tooltipAxisBandSize = (0, _useTooltipAxis.useTooltipAxisBandSize)();
-  var offset = (0, _chartLayoutContext.useOffsetInternal)();
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  var chartName = (0, _selectors.useChartName)();
-  if (tooltipAxisBandSize == null || offset == null || layout == null || chartName == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(CursorInternal, _extends({}, props, {
-    offset: offset,
-    layout: layout,
-    tooltipAxisBandSize: tooltipAxisBandSize,
-    chartName: chartName
-  }));
-}
Index: de_modules/recharts/lib/component/Customized.js
===================================================================
--- node_modules/recharts/lib/component/Customized.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Customized = Customized;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _Layer = require("../container/Layer");
-var _LogUtils = require("../util/LogUtils");
-var _excluded = ["component"];
-/**
- * @fileOverview Customized
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * Customized component used to be necessary to render custom elements in Recharts 2.x.
- * Starting from Recharts 3.x, all charts are able to render arbitrary elements anywhere,
- * and Customized is no longer needed.
- *
- * @example Before: `<Customized component={<MyCustomComponent />} />`
- * @example After: `<MyCustomComponent />`
- *
- * @deprecated Just render your components directly. Will be removed in 4.0
- */
-function Customized(_ref) {
-  var {
-      component
-    } = _ref,
-    props = _objectWithoutProperties(_ref, _excluded);
-  var child;
-  if (/*#__PURE__*/(0, _react.isValidElement)(component)) {
-    child = /*#__PURE__*/(0, _react.cloneElement)(component, props);
-  } else if (typeof component === 'function') {
-    // @ts-expect-error TS cannot verify that C is FunctionComponent<P> here
-    child = /*#__PURE__*/(0, _react.createElement)(component, props);
-  } else {
-    (0, _LogUtils.warn)(false, "Customized's props `component` must be React.element or Function, but got %s.", typeof component);
-  }
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-customized-wrapper"
-  }, child);
-}
-Customized.displayName = 'Customized';
Index: de_modules/recharts/lib/component/DefaultLegendContent.js
===================================================================
--- node_modules/recharts/lib/component/DefaultLegendContent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,174 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.DefaultLegendContent = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _Surface = require("../container/Surface");
-var _Symbols = require("../shape/Symbols");
-var _types = require("../util/types");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var SIZE = 32;
-var defaultLegendContentDefaultProps = {
-  align: 'center',
-  iconSize: 14,
-  inactiveColor: '#ccc',
-  layout: 'horizontal',
-  verticalAlign: 'middle'
-};
-function Icon(_ref) {
-  var {
-    data,
-    iconType,
-    inactiveColor
-  } = _ref;
-  var halfSize = SIZE / 2;
-  var sixthSize = SIZE / 6;
-  var thirdSize = SIZE / 3;
-  var color = data.inactive ? inactiveColor : data.color;
-  var preferredIcon = iconType !== null && iconType !== void 0 ? iconType : data.type;
-  if (preferredIcon === 'none') {
-    return null;
-  }
-  if (preferredIcon === 'plainline') {
-    var _data$payload;
-    return /*#__PURE__*/React.createElement("line", {
-      strokeWidth: 4,
-      fill: "none",
-      stroke: color,
-      strokeDasharray: (_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.strokeDasharray,
-      x1: 0,
-      y1: halfSize,
-      x2: SIZE,
-      y2: halfSize,
-      className: "recharts-legend-icon"
-    });
-  }
-  if (preferredIcon === 'line') {
-    return /*#__PURE__*/React.createElement("path", {
-      strokeWidth: 4,
-      fill: "none",
-      stroke: color,
-      d: "M0,".concat(halfSize, "h").concat(thirdSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(2 * thirdSize, ",").concat(halfSize, "\n            H").concat(SIZE, "M").concat(2 * thirdSize, ",").concat(halfSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(thirdSize, ",").concat(halfSize),
-      className: "recharts-legend-icon"
-    });
-  }
-  if (preferredIcon === 'rect') {
-    return /*#__PURE__*/React.createElement("path", {
-      stroke: "none",
-      fill: color,
-      d: "M0,".concat(SIZE / 8, "h").concat(SIZE, "v").concat(SIZE * 3 / 4, "h").concat(-SIZE, "z"),
-      className: "recharts-legend-icon"
-    });
-  }
-  if (/*#__PURE__*/React.isValidElement(data.legendIcon)) {
-    var iconProps = _objectSpread({}, data);
-    delete iconProps.legendIcon;
-    return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);
-  }
-  return /*#__PURE__*/React.createElement(_Symbols.Symbols, {
-    fill: color,
-    cx: halfSize,
-    cy: halfSize,
-    size: SIZE,
-    sizeType: "diameter",
-    type: preferredIcon
-  });
-}
-function Items(props) {
-  var {
-    payload,
-    iconSize,
-    layout,
-    formatter,
-    inactiveColor,
-    iconType
-  } = props;
-  var viewBox = {
-    x: 0,
-    y: 0,
-    width: SIZE,
-    height: SIZE
-  };
-  var itemStyle = {
-    display: layout === 'horizontal' ? 'inline-block' : 'block',
-    marginRight: 10
-  };
-  var svgStyle = {
-    display: 'inline-block',
-    verticalAlign: 'middle',
-    marginRight: 4
-  };
-  return payload.map((entry, i) => {
-    var finalFormatter = entry.formatter || formatter;
-    var className = (0, _clsx.clsx)({
-      'recharts-legend-item': true,
-      ["legend-item-".concat(i)]: true,
-      inactive: entry.inactive
-    });
-    if (entry.type === 'none') {
-      return null;
-    }
-    var color = entry.inactive ? inactiveColor : entry.color;
-    var finalValue = finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value;
-    return /*#__PURE__*/React.createElement("li", _extends({
-      className: className,
-      style: itemStyle,
-      key: "legend-item-".concat(i)
-    }, (0, _types.adaptEventsOfChild)(props, entry, i)), /*#__PURE__*/React.createElement(_Surface.Surface, {
-      width: iconSize,
-      height: iconSize,
-      viewBox: viewBox,
-      style: svgStyle,
-      "aria-label": "".concat(finalValue, " legend icon")
-    }, /*#__PURE__*/React.createElement(Icon, {
-      data: entry,
-      iconType: iconType,
-      inactiveColor: inactiveColor
-    })), /*#__PURE__*/React.createElement("span", {
-      className: "recharts-legend-item-text",
-      style: {
-        color
-      }
-    }, finalValue));
-  });
-}
-
-/**
- * This component is by default rendered inside the {@link Legend} component. You would not use it directly.
- *
- * You can use this component to customize the content of the legend,
- * or you can provide your own completely independent content.
- */
-var DefaultLegendContent = outsideProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultLegendContentDefaultProps);
-  var {
-    payload,
-    layout,
-    align
-  } = props;
-  if (!payload || !payload.length) {
-    return null;
-  }
-  var finalStyle = {
-    padding: 0,
-    margin: 0,
-    textAlign: layout === 'horizontal' ? align : 'left'
-  };
-  return /*#__PURE__*/React.createElement("ul", {
-    className: "recharts-default-legend",
-    style: finalStyle
-  }, /*#__PURE__*/React.createElement(Items, _extends({}, props, {
-    payload: payload
-  })));
-};
-exports.DefaultLegendContent = DefaultLegendContent;
Index: de_modules/recharts/lib/component/DefaultTooltipContent.js
===================================================================
--- node_modules/recharts/lib/component/DefaultTooltipContent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,138 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultDefaultTooltipContentProps = exports.DefaultTooltipContent = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _sortBy = _interopRequireDefault(require("es-toolkit/compat/sortBy"));
-var _clsx = require("clsx");
-var _DataUtils = require("../util/DataUtils");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
- * @fileOverview Default Tooltip Content
- */
-function defaultFormatter(value) {
-  return Array.isArray(value) && (0, _DataUtils.isNumOrStr)(value[0]) && (0, _DataUtils.isNumOrStr)(value[1]) ? value.join(' ~ ') : value;
-}
-var defaultDefaultTooltipContentProps = exports.defaultDefaultTooltipContentProps = {
-  separator: ' : ',
-  contentStyle: {
-    margin: 0,
-    padding: 10,
-    backgroundColor: '#fff',
-    border: '1px solid #ccc',
-    whiteSpace: 'nowrap'
-  },
-  itemStyle: {
-    display: 'block',
-    paddingTop: 4,
-    paddingBottom: 4,
-    color: '#000'
-  },
-  labelStyle: {},
-  accessibilityLayer: false
-};
-
-/**
- * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.
- *
- * You can use this component to customize the content of the tooltip,
- * or you can provide your own completely independent content.
- */
-var DefaultTooltipContent = props => {
-  var {
-    separator = defaultDefaultTooltipContentProps.separator,
-    contentStyle,
-    itemStyle,
-    labelStyle = defaultDefaultTooltipContentProps.labelStyle,
-    payload,
-    formatter,
-    itemSorter,
-    wrapperClassName,
-    labelClassName,
-    label,
-    labelFormatter,
-    accessibilityLayer = defaultDefaultTooltipContentProps.accessibilityLayer
-  } = props;
-  var renderContent = () => {
-    if (payload && payload.length) {
-      var listStyle = {
-        padding: 0,
-        margin: 0
-      };
-      var items = (itemSorter ? (0, _sortBy.default)(payload, itemSorter) : payload).map((entry, i) => {
-        if (entry.type === 'none') {
-          return null;
-        }
-        var finalFormatter = entry.formatter || formatter || defaultFormatter;
-        var {
-          value,
-          name
-        } = entry;
-        var finalValue = value;
-        var finalName = name;
-        if (finalFormatter) {
-          var formatted = finalFormatter(value, name, entry, i, payload);
-          if (Array.isArray(formatted)) {
-            [finalValue, finalName] = formatted;
-          } else if (formatted != null) {
-            finalValue = formatted;
-          } else {
-            return null;
-          }
-        }
-        var finalItemStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.itemStyle), {}, {
-          color: entry.color || defaultDefaultTooltipContentProps.itemStyle.color
-        }, itemStyle);
-        return /*#__PURE__*/React.createElement("li", {
-          className: "recharts-tooltip-item",
-          key: "tooltip-item-".concat(i),
-          style: finalItemStyle
-        }, (0, _DataUtils.isNumOrStr)(finalName) ? /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-name"
-        }, finalName) : null, (0, _DataUtils.isNumOrStr)(finalName) ? /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-separator"
-        }, separator) : null, /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-value"
-        }, finalValue), /*#__PURE__*/React.createElement("span", {
-          className: "recharts-tooltip-item-unit"
-        }, entry.unit || ''));
-      });
-      return /*#__PURE__*/React.createElement("ul", {
-        className: "recharts-tooltip-item-list",
-        style: listStyle
-      }, items);
-    }
-    return null;
-  };
-  var finalStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.contentStyle), contentStyle);
-  var finalLabelStyle = _objectSpread({
-    margin: 0
-  }, labelStyle);
-  var hasLabel = !(0, _DataUtils.isNullish)(label);
-  var finalLabel = hasLabel ? label : '';
-  var wrapperCN = (0, _clsx.clsx)('recharts-default-tooltip', wrapperClassName);
-  var labelCN = (0, _clsx.clsx)('recharts-tooltip-label', labelClassName);
-  if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {
-    finalLabel = labelFormatter(label, payload);
-  }
-  var accessibilityAttributes = accessibilityLayer ? {
-    role: 'status',
-    'aria-live': 'assertive'
-  } : {};
-  return /*#__PURE__*/React.createElement("div", _extends({
-    className: wrapperCN,
-    style: finalStyle
-  }, accessibilityAttributes), /*#__PURE__*/React.createElement("p", {
-    className: labelCN,
-    style: finalLabelStyle
-  }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : "".concat(finalLabel)), renderContent());
-};
-exports.DefaultTooltipContent = DefaultTooltipContent;
Index: de_modules/recharts/lib/component/Dots.js
===================================================================
--- node_modules/recharts/lib/component/Dots.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Dots = Dots;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Dot = require("../shape/Dot");
-var _Layer = require("../container/Layer");
-var _ReactUtils = require("../util/ReactUtils");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _excluded = ["points"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function DotItem(_ref) {
-  var {
-    option,
-    dotProps,
-    className
-  } = _ref;
-  if (/*#__PURE__*/(0, _react.isValidElement)(option)) {
-    // @ts-expect-error we can't type check element cloning properly
-    return /*#__PURE__*/(0, _react.cloneElement)(option, dotProps);
-  }
-  if (typeof option === 'function') {
-    return option(dotProps);
-  }
-  var finalClassName = (0, _clsx.clsx)(className, typeof option !== 'boolean' ? option.className : '');
-  var _ref2 = dotProps !== null && dotProps !== void 0 ? dotProps : {},
-    {
-      points
-    } = _ref2,
-    props = _objectWithoutProperties(_ref2, _excluded);
-  return /*#__PURE__*/React.createElement(_Dot.Dot, _extends({}, props, {
-    className: finalClassName
-  }));
-}
-function shouldRenderDots(points, dot) {
-  if (points == null) {
-    return false;
-  }
-  if (dot) {
-    return true;
-  }
-  return points.length === 1;
-}
-function Dots(_ref3) {
-  var {
-    points,
-    dot,
-    className,
-    dotClassName,
-    dataKey,
-    baseProps,
-    needClip,
-    clipPathId,
-    zIndex = _DefaultZIndexes.DefaultZIndexes.scatter
-  } = _ref3;
-  if (!shouldRenderDots(points, dot)) {
-    return null;
-  }
-  var clipDot = (0, _ReactUtils.isClipDot)(dot);
-  var customDotProps = (0, _svgPropertiesAndEvents.svgPropertiesAndEventsFromUnknown)(dot);
-  var dots = points.map((entry, i) => {
-    var _entry$x, _entry$y;
-    var dotProps = _objectSpread(_objectSpread(_objectSpread({
-      r: 3
-    }, baseProps), customDotProps), {}, {
-      index: i,
-      cx: (_entry$x = entry.x) !== null && _entry$x !== void 0 ? _entry$x : undefined,
-      cy: (_entry$y = entry.y) !== null && _entry$y !== void 0 ? _entry$y : undefined,
-      dataKey,
-      value: entry.value,
-      payload: entry.payload,
-      points
-    });
-    return /*#__PURE__*/React.createElement(DotItem, {
-      key: "dot-".concat(i),
-      option: dot,
-      dotProps: dotProps,
-      className: dotClassName
-    });
-  });
-  var layerProps = {};
-  if (needClip && clipPathId != null) {
-    layerProps.clipPath = "url(#clipPath-".concat(clipDot ? '' : 'dots-').concat(clipPathId, ")");
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-    className: className
-  }, layerProps), dots));
-}
Index: de_modules/recharts/lib/component/Label.js
===================================================================
--- node_modules/recharts/lib/component/Label.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,429 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CartesianLabelContextProvider = void 0;
-exports.CartesianLabelFromLabelProp = CartesianLabelFromLabelProp;
-exports.Label = Label;
-exports.PolarLabelContextProvider = void 0;
-exports.PolarLabelFromLabelProp = PolarLabelFromLabelProp;
-exports.usePolarLabelContext = exports.isLabelContentAFunction = exports.defaultLabelProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Text = require("./Text");
-var _DataUtils = require("../util/DataUtils");
-var _PolarUtils = require("../util/PolarUtils");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _hooks = require("../state/hooks");
-var _polarAxisSelectors = require("../state/selectors/polarAxisSelectors");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _getCartesianPosition = require("../cartesian/getCartesianPosition");
-var _excluded = ["labelRef"],
-  _excluded2 = ["content"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-var CartesianLabelContext = /*#__PURE__*/(0, _react.createContext)(null);
-var CartesianLabelContextProvider = _ref => {
-  var {
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    width,
-    height,
-    children
-  } = _ref;
-  var viewBox = (0, _react.useMemo)(() => ({
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    width,
-    height
-  }), [x, y, upperWidth, lowerWidth, width, height]);
-  return /*#__PURE__*/React.createElement(CartesianLabelContext.Provider, {
-    value: viewBox
-  }, children);
-};
-exports.CartesianLabelContextProvider = CartesianLabelContextProvider;
-var useCartesianLabelContext = () => {
-  var labelChildContext = (0, _react.useContext)(CartesianLabelContext);
-  var chartContext = (0, _chartLayoutContext.useViewBox)();
-  return labelChildContext || (chartContext ? (0, _chartLayoutContext.cartesianViewBoxToTrapezoid)(chartContext) : undefined);
-};
-var PolarLabelContext = /*#__PURE__*/(0, _react.createContext)(null);
-var PolarLabelContextProvider = _ref2 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise,
-    children
-  } = _ref2;
-  var viewBox = (0, _react.useMemo)(() => ({
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise
-  }), [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise]);
-  return /*#__PURE__*/React.createElement(PolarLabelContext.Provider, {
-    value: viewBox
-  }, children);
-};
-exports.PolarLabelContextProvider = PolarLabelContextProvider;
-var usePolarLabelContext = () => {
-  var labelChildContext = (0, _react.useContext)(PolarLabelContext);
-  var chartContext = (0, _hooks.useAppSelector)(_polarAxisSelectors.selectPolarViewBox);
-  return labelChildContext || chartContext;
-};
-exports.usePolarLabelContext = usePolarLabelContext;
-var getLabel = props => {
-  var {
-    value,
-    formatter
-  } = props;
-  var label = (0, _DataUtils.isNullish)(props.children) ? value : props.children;
-  if (typeof formatter === 'function') {
-    return formatter(label);
-  }
-  return label;
-};
-var isLabelContentAFunction = content => {
-  return content != null && typeof content === 'function';
-};
-exports.isLabelContentAFunction = isLabelContentAFunction;
-var getDeltaAngle = (startAngle, endAngle) => {
-  var sign = (0, _DataUtils.mathSign)(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
-  return sign * deltaAngle;
-};
-var renderRadialLabel = (labelProps, position, label, attrs, viewBox) => {
-  var {
-    offset,
-    className
-  } = labelProps;
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise
-  } = viewBox;
-  var radius = (innerRadius + outerRadius) / 2;
-  var deltaAngle = getDeltaAngle(startAngle, endAngle);
-  var sign = deltaAngle >= 0 ? 1 : -1;
-  var labelAngle, direction;
-  switch (position) {
-    case 'insideStart':
-      labelAngle = startAngle + sign * offset;
-      direction = clockWise;
-      break;
-    case 'insideEnd':
-      labelAngle = endAngle - sign * offset;
-      direction = !clockWise;
-      break;
-    case 'end':
-      labelAngle = endAngle + sign * offset;
-      direction = clockWise;
-      break;
-    default:
-      throw new Error("Unsupported position ".concat(position));
-  }
-  direction = deltaAngle <= 0 ? direction : !direction;
-  var startPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, labelAngle);
-  var endPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);
-  var path = "M".concat(startPoint.x, ",").concat(startPoint.y, "\n    A").concat(radius, ",").concat(radius, ",0,1,").concat(direction ? 0 : 1, ",\n    ").concat(endPoint.x, ",").concat(endPoint.y);
-  var id = (0, _DataUtils.isNullish)(labelProps.id) ? (0, _DataUtils.uniqueId)('recharts-radial-line-') : labelProps.id;
-  return /*#__PURE__*/React.createElement("text", _extends({}, attrs, {
-    dominantBaseline: "central",
-    className: (0, _clsx.clsx)('recharts-radial-bar-label', className)
-  }), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("path", {
-    id: id,
-    d: path
-  })), /*#__PURE__*/React.createElement("textPath", {
-    xlinkHref: "#".concat(id)
-  }, label));
-};
-var getAttrsOfPolarLabel = (viewBox, offset, position) => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle
-  } = viewBox;
-  var midAngle = (startAngle + endAngle) / 2;
-  if (position === 'outside') {
-    var {
-      x: _x,
-      y: _y
-    } = (0, _PolarUtils.polarToCartesian)(cx, cy, outerRadius + offset, midAngle);
-    return {
-      x: _x,
-      y: _y,
-      textAnchor: _x >= cx ? 'start' : 'end',
-      verticalAnchor: 'middle'
-    };
-  }
-  if (position === 'center') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'middle'
-    };
-  }
-  if (position === 'centerTop') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'start'
-    };
-  }
-  if (position === 'centerBottom') {
-    return {
-      x: cx,
-      y: cy,
-      textAnchor: 'middle',
-      verticalAnchor: 'end'
-    };
-  }
-  var r = (innerRadius + outerRadius) / 2;
-  var {
-    x,
-    y
-  } = (0, _PolarUtils.polarToCartesian)(cx, cy, r, midAngle);
-  return {
-    x,
-    y,
-    textAnchor: 'middle',
-    verticalAnchor: 'middle'
-  };
-};
-var isPolar = viewBox => viewBox != null && 'cx' in viewBox && (0, _DataUtils.isNumber)(viewBox.cx);
-var defaultLabelProps = exports.defaultLabelProps = {
-  angle: 0,
-  offset: 5,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.label,
-  position: 'middle',
-  textBreakAll: false
-};
-function polarViewBoxToTrapezoid(viewBox) {
-  if (!isPolar(viewBox)) {
-    return viewBox;
-  }
-  var {
-    cx,
-    cy,
-    outerRadius
-  } = viewBox;
-  var diameter = outerRadius * 2;
-  return {
-    x: cx - outerRadius,
-    y: cy - outerRadius,
-    width: diameter,
-    upperWidth: diameter,
-    lowerWidth: diameter,
-    height: diameter
-  };
-}
-
-/**
- * @consumes CartesianViewBoxContext
- * @consumes PolarViewBoxContext
- * @consumes CartesianLabelContext
- * @consumes PolarLabelContext
- */
-function Label(outerProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outerProps, defaultLabelProps);
-  var {
-    viewBox: viewBoxFromProps,
-    parentViewBox,
-    position,
-    value,
-    children,
-    content,
-    className = '',
-    textBreakAll,
-    labelRef
-  } = props;
-  var polarViewBox = usePolarLabelContext();
-  var cartesianViewBox = useCartesianLabelContext();
-
-  /*
-   * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.
-   * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.
-   * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156
-   */
-  var resolvedViewBox = position === 'center' ? cartesianViewBox : polarViewBox !== null && polarViewBox !== void 0 ? polarViewBox : cartesianViewBox;
-  var viewBox, label, positionAttrs;
-  if (viewBoxFromProps == null) {
-    viewBox = resolvedViewBox;
-  } else if (isPolar(viewBoxFromProps)) {
-    viewBox = viewBoxFromProps;
-  } else {
-    viewBox = (0, _chartLayoutContext.cartesianViewBoxToTrapezoid)(viewBoxFromProps);
-  }
-  var cartesianBox = polarViewBoxToTrapezoid(viewBox);
-  if (!viewBox || (0, _DataUtils.isNullish)(value) && (0, _DataUtils.isNullish)(children) && ! /*#__PURE__*/(0, _react.isValidElement)(content) && typeof content !== 'function') {
-    return null;
-  }
-  var propsWithViewBox = _objectSpread(_objectSpread({}, props), {}, {
-    viewBox
-  });
-  if (/*#__PURE__*/(0, _react.isValidElement)(content)) {
-    var {
-        labelRef: _
-      } = propsWithViewBox,
-      propsWithoutLabelRef = _objectWithoutProperties(propsWithViewBox, _excluded);
-    return /*#__PURE__*/(0, _react.cloneElement)(content, propsWithoutLabelRef);
-  }
-  if (typeof content === 'function') {
-    var {
-        content: _2
-      } = propsWithViewBox,
-      propsForContent = _objectWithoutProperties(propsWithViewBox, _excluded2);
-    // @ts-expect-error we're not checking if the content component returns something that Text is able to render
-    label = /*#__PURE__*/(0, _react.createElement)(content, propsForContent);
-    if (/*#__PURE__*/(0, _react.isValidElement)(label)) {
-      return label;
-    }
-  } else {
-    label = getLabel(props);
-  }
-  var attrs = (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props);
-  if (isPolar(viewBox)) {
-    // TODO: Generic Polar Hook
-    if (position === 'insideStart' || position === 'insideEnd' || position === 'end') {
-      return renderRadialLabel(props, position, label, attrs, viewBox);
-    }
-    positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);
-  } else {
-    if (!cartesianBox) {
-      return null;
-    }
-    var cartesianResult = (0, _getCartesianPosition.getCartesianPosition)({
-      viewBox: cartesianBox,
-      position,
-      offset: props.offset,
-      parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,
-      clamp: true
-    });
-    positionAttrs = _objectSpread(_objectSpread({
-      x: cartesianResult.x,
-      y: cartesianResult.y,
-      textAnchor: cartesianResult.horizontalAnchor,
-      verticalAnchor: cartesianResult.verticalAnchor
-    }, cartesianResult.width !== undefined ? {
-      width: cartesianResult.width
-    } : {}), cartesianResult.height !== undefined ? {
-      height: cartesianResult.height
-    } : {});
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Text.Text, _extends({
-    ref: labelRef,
-    className: (0, _clsx.clsx)('recharts-label', className)
-  }, attrs, positionAttrs, {
-    /*
-     * textAnchor is decided by default based on the `position`
-     * but we allow overriding via props for precise control.
-     */
-    textAnchor: (0, _Text.isValidTextAnchor)(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor,
-    breakAll: textBreakAll
-  }), label));
-}
-Label.displayName = 'Label';
-var parseLabel = (label, viewBox, labelRef) => {
-  if (!label) {
-    return null;
-  }
-  var commonProps = {
-    viewBox,
-    labelRef
-  };
-  if (label === true) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit"
-    }, commonProps));
-  }
-  if ((0, _DataUtils.isNumOrStr)(label)) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      value: label
-    }, commonProps));
-  }
-  if (/*#__PURE__*/(0, _react.isValidElement)(label)) {
-    if (label.type === Label) {
-      return /*#__PURE__*/(0, _react.cloneElement)(label, _objectSpread({
-        key: 'label-implicit'
-      }, commonProps));
-    }
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      content: label
-    }, commonProps));
-  }
-  if (isLabelContentAFunction(label)) {
-    return /*#__PURE__*/React.createElement(Label, _extends({
-      key: "label-implicit",
-      content: label
-    }, commonProps));
-  }
-  if (label && typeof label === 'object') {
-    return /*#__PURE__*/React.createElement(Label, _extends({}, label, {
-      key: "label-implicit"
-    }, commonProps));
-  }
-  return null;
-};
-function CartesianLabelFromLabelProp(_ref3) {
-  var {
-    label,
-    labelRef
-  } = _ref3;
-  var viewBox = useCartesianLabelContext();
-  return parseLabel(label, viewBox, labelRef) || null;
-}
-function PolarLabelFromLabelProp(_ref4) {
-  var {
-    label
-  } = _ref4;
-  var viewBox = usePolarLabelContext();
-  return parseLabel(label, viewBox) || null;
-}
Index: de_modules/recharts/lib/component/LabelList.js
===================================================================
--- node_modules/recharts/lib/component/LabelList.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,152 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CartesianLabelListContextProvider = void 0;
-exports.LabelList = LabelList;
-exports.LabelListFromLabelProp = LabelListFromLabelProp;
-exports.PolarLabelListContextProvider = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _last = _interopRequireDefault(require("es-toolkit/compat/last"));
-var _Label = require("./Label");
-var _Layer = require("../container/Layer");
-var _ChartUtils = require("../util/ChartUtils");
-var _DataUtils = require("../util/DataUtils");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _excluded = ["valueAccessor"],
-  _excluded2 = ["dataKey", "clockWise", "id", "textBreakAll", "zIndex"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * This is public API because we expose it as the valueAccessor parameter.
- *
- * The properties of "viewBox" are repeated as the root props of the entry object.
- * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.
- *
- * It's not necessary to pass redundant data, but we keep it for backward compatibility.
- */
-
-/**
- * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.
- */
-
-/**
- * This is the type accepted for the `label` prop on various graphical items.
- * It accepts:
- *
- * boolean:
- *    true = labels show,
- *    false = labels don't show
- * React element:
- *    will be cloned with extra props
- * function:
- *    is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)
- * object:
- *    the props to be passed to a LabelList component
- *
- * @inline
- */
-
-var defaultAccessor = entry => Array.isArray(entry.value) ? (0, _last.default)(entry.value) : entry.value;
-var CartesianLabelListContext = /*#__PURE__*/(0, _react.createContext)(undefined);
-var CartesianLabelListContextProvider = exports.CartesianLabelListContextProvider = CartesianLabelListContext.Provider;
-var PolarLabelListContext = /*#__PURE__*/(0, _react.createContext)(undefined);
-var PolarLabelListContextProvider = exports.PolarLabelListContextProvider = PolarLabelListContext.Provider;
-function useCartesianLabelListContext() {
-  return (0, _react.useContext)(CartesianLabelListContext);
-}
-function usePolarLabelListContext() {
-  return (0, _react.useContext)(PolarLabelListContext);
-}
-
-/**
- * @consumes LabelListContext
- */
-function LabelList(_ref) {
-  var {
-      valueAccessor = defaultAccessor
-    } = _ref,
-    restProps = _objectWithoutProperties(_ref, _excluded);
-  var {
-      dataKey,
-      clockWise,
-      id,
-      textBreakAll,
-      zIndex
-    } = restProps,
-    others = _objectWithoutProperties(restProps, _excluded2);
-  var cartesianData = useCartesianLabelListContext();
-  var polarData = usePolarLabelListContext();
-  var data = cartesianData || polarData;
-  if (!data || !data.length) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : _DefaultZIndexes.DefaultZIndexes.label
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-label-list"
-  }, data.map((entry, index) => {
-    var _restProps$fill;
-    var value = (0, _DataUtils.isNullish)(dataKey) ? valueAccessor(entry, index) : (0, _ChartUtils.getValueByDataKey)(entry.payload, dataKey);
-    var idProps = (0, _DataUtils.isNullish)(id) ? {} : {
-      id: "".concat(id, "-").concat(index)
-    };
-    return /*#__PURE__*/React.createElement(_Label.Label, _extends({
-      key: "label-".concat(index)
-    }, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(entry), others, idProps, {
-      /*
-       * Prefer to use the explicit fill from LabelList props.
-       * Only in an absence of that, fall back to the fill of the entry.
-       * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.
-       * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.
-       */
-      fill: (_restProps$fill = restProps.fill) !== null && _restProps$fill !== void 0 ? _restProps$fill : entry.fill,
-      parentViewBox: entry.parentViewBox,
-      value: value,
-      textBreakAll: textBreakAll,
-      viewBox: entry.viewBox,
-      index: index
-      /*
-       * Here we don't want to use the default Label zIndex,
-       * we want it to inherit the zIndex of the LabelList itself
-       * which means just rendering as a regular child, without portaling anywhere.
-       */,
-      zIndex: 0
-    }));
-  })));
-}
-LabelList.displayName = 'LabelList';
-function LabelListFromLabelProp(_ref2) {
-  var {
-    label
-  } = _ref2;
-  if (!label) {
-    return null;
-  }
-  if (label === true) {
-    return /*#__PURE__*/React.createElement(LabelList, {
-      key: "labelList-implicit"
-    });
-  }
-  if (/*#__PURE__*/React.isValidElement(label) || (0, _Label.isLabelContentAFunction)(label)) {
-    return /*#__PURE__*/React.createElement(LabelList, {
-      key: "labelList-implicit",
-      content: label
-    });
-  }
-  if (typeof label === 'object') {
-    return /*#__PURE__*/React.createElement(LabelList, _extends({
-      key: "labelList-implicit"
-    }, label, {
-      type: String(label.type)
-    }));
-  }
-  return null;
-}
Index: de_modules/recharts/lib/component/Legend.js
===================================================================
--- node_modules/recharts/lib/component/Legend.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,182 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Legend = Legend;
-exports.legendDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _reactDom = require("react-dom");
-var _legendPortalContext = require("../context/legendPortalContext");
-var _DefaultLegendContent = require("./DefaultLegendContent");
-var _getUniqPayload = require("../util/payload/getUniqPayload");
-var _legendPayloadContext = require("../context/legendPayloadContext");
-var _useElementOffset = require("../util/useElementOffset");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _legendSlice = require("../state/legendSlice");
-var _hooks = require("../state/hooks");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _excluded = ["contextPayload"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function defaultUniqBy(entry) {
-  return entry.value;
-}
-function LegendContent(props) {
-  var {
-      contextPayload
-    } = props,
-    otherProps = _objectWithoutProperties(props, _excluded);
-  var finalPayload = (0, _getUniqPayload.getUniqPayload)(contextPayload, props.payloadUniqBy, defaultUniqBy);
-  var contentProps = _objectSpread(_objectSpread({}, otherProps), {}, {
-    payload: finalPayload
-  });
-  if (/*#__PURE__*/React.isValidElement(props.content)) {
-    return /*#__PURE__*/React.cloneElement(props.content, contentProps);
-  }
-  if (typeof props.content === 'function') {
-    return /*#__PURE__*/React.createElement(props.content, contentProps);
-  }
-  return /*#__PURE__*/React.createElement(_DefaultLegendContent.DefaultLegendContent, contentProps);
-}
-function getDefaultPosition(style, props, margin, chartWidth, chartHeight, box) {
-  var {
-    layout,
-    align,
-    verticalAlign
-  } = props;
-  var hPos, vPos;
-  if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {
-    if (align === 'center' && layout === 'vertical') {
-      hPos = {
-        left: ((chartWidth || 0) - box.width) / 2
-      };
-    } else {
-      hPos = align === 'right' ? {
-        right: margin && margin.right || 0
-      } : {
-        left: margin && margin.left || 0
-      };
-    }
-  }
-  if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {
-    if (verticalAlign === 'middle') {
-      vPos = {
-        top: ((chartHeight || 0) - box.height) / 2
-      };
-    } else {
-      vPos = verticalAlign === 'bottom' ? {
-        bottom: margin && margin.bottom || 0
-      } : {
-        top: margin && margin.top || 0
-      };
-    }
-  }
-  return _objectSpread(_objectSpread({}, hPos), vPos);
-}
-function LegendSettingsDispatcher(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _legendSlice.setLegendSettings)(props));
-  }, [dispatch, props]);
-  return null;
-}
-function LegendSizeDispatcher(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _legendSlice.setLegendSize)(props));
-    return () => {
-      dispatch((0, _legendSlice.setLegendSize)({
-        width: 0,
-        height: 0
-      }));
-    };
-  }, [dispatch, props]);
-  return null;
-}
-function getWidthOrHeight(layout, height, width, maxWidth) {
-  if (layout === 'vertical' && height != null) {
-    return {
-      height
-    };
-  }
-  if (layout === 'horizontal') {
-    return {
-      width: width || maxWidth
-    };
-  }
-  return null;
-}
-var legendDefaultProps = exports.legendDefaultProps = {
-  align: 'center',
-  iconSize: 14,
-  inactiveColor: '#ccc',
-  itemSorter: 'value',
-  layout: 'horizontal',
-  verticalAlign: 'bottom'
-};
-
-/**
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- */
-function Legend(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, legendDefaultProps);
-  var contextPayload = (0, _legendPayloadContext.useLegendPayload)();
-  var legendPortalFromContext = (0, _legendPortalContext.useLegendPortal)();
-  var margin = (0, _chartLayoutContext.useMargin)();
-  var {
-    width: widthFromProps,
-    height: heightFromProps,
-    wrapperStyle,
-    portal: portalFromProps
-  } = props;
-  // The contextPayload is not used directly inside the hook, but we need the onBBoxUpdate call
-  // when the payload changes, therefore it's here as a dependency.
-  var [lastBoundingBox, updateBoundingBox] = (0, _useElementOffset.useElementOffset)([contextPayload]);
-  var chartWidth = (0, _chartLayoutContext.useChartWidth)();
-  var chartHeight = (0, _chartLayoutContext.useChartHeight)();
-  if (chartWidth == null || chartHeight == null) {
-    return null;
-  }
-  var maxWidth = chartWidth - ((margin === null || margin === void 0 ? void 0 : margin.left) || 0) - ((margin === null || margin === void 0 ? void 0 : margin.right) || 0);
-  var widthOrHeight = getWidthOrHeight(props.layout, heightFromProps, widthFromProps, maxWidth);
-  // if the user supplies their own portal, only use their defined wrapper styles
-  var outerStyle = portalFromProps ? wrapperStyle : _objectSpread(_objectSpread({
-    position: 'absolute',
-    width: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.width) || widthFromProps || 'auto',
-    height: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.height) || heightFromProps || 'auto'
-  }, getDefaultPosition(wrapperStyle, props, margin, chartWidth, chartHeight, lastBoundingBox)), wrapperStyle);
-  var legendPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : legendPortalFromContext;
-  if (legendPortal == null || contextPayload == null) {
-    return null;
-  }
-  var legendElement = /*#__PURE__*/React.createElement("div", {
-    className: "recharts-legend-wrapper",
-    style: outerStyle,
-    ref: updateBoundingBox
-  }, /*#__PURE__*/React.createElement(LegendSettingsDispatcher, {
-    layout: props.layout,
-    align: props.align,
-    verticalAlign: props.verticalAlign,
-    itemSorter: props.itemSorter
-  }), !portalFromProps && /*#__PURE__*/React.createElement(LegendSizeDispatcher, {
-    width: lastBoundingBox.width,
-    height: lastBoundingBox.height
-  }), /*#__PURE__*/React.createElement(LegendContent, _extends({}, props, widthOrHeight, {
-    margin: margin,
-    chartWidth: chartWidth,
-    chartHeight: chartHeight,
-    contextPayload: contextPayload
-  })));
-  return /*#__PURE__*/(0, _reactDom.createPortal)(legendElement, legendPortal);
-}
-Legend.displayName = 'Legend';
Index: de_modules/recharts/lib/component/ResponsiveContainer.js
===================================================================
--- node_modules/recharts/lib/component/ResponsiveContainer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,233 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useResponsiveContainerContext = exports.ResponsiveContainer = void 0;
-var _clsx = require("clsx");
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _throttle = _interopRequireDefault(require("es-toolkit/compat/throttle"));
-var _DataUtils = require("../util/DataUtils");
-var _LogUtils = require("../util/LogUtils");
-var _responsiveContainerUtils = require("./responsiveContainerUtils");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var ResponsiveContainerContext = /*#__PURE__*/(0, _react.createContext)(_responsiveContainerUtils.defaultResponsiveContainerProps.initialDimension);
-function isAcceptableSize(size) {
-  return (0, _isWellBehavedNumber.isPositiveNumber)(size.width) && (0, _isWellBehavedNumber.isPositiveNumber)(size.height);
-}
-function ResponsiveContainerContextProvider(_ref) {
-  var {
-    children,
-    width,
-    height
-  } = _ref;
-  var size = (0, _react.useMemo)(() => ({
-    width,
-    height
-  }), [width, height]);
-  if (!isAcceptableSize(size)) {
-    /*
-     * Don't render the container if width or height is non-positive because
-     * in that case the chart will not be rendered properly anyway.
-     * We will instead wait for the next resize event to provide the correct dimensions.
-     */
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(ResponsiveContainerContext.Provider, {
-    value: size
-  }, children);
-}
-var useResponsiveContainerContext = () => (0, _react.useContext)(ResponsiveContainerContext);
-exports.useResponsiveContainerContext = useResponsiveContainerContext;
-var SizeDetectorContainer = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
-  var {
-    aspect,
-    initialDimension = _responsiveContainerUtils.defaultResponsiveContainerProps.initialDimension,
-    width,
-    height,
-    /*
-     * default min-width to 0 if not specified - 'auto' causes issues with flexbox
-     * https://github.com/recharts/recharts/issues/172
-     */
-    minWidth = _responsiveContainerUtils.defaultResponsiveContainerProps.minWidth,
-    minHeight,
-    maxHeight,
-    children,
-    debounce = _responsiveContainerUtils.defaultResponsiveContainerProps.debounce,
-    id,
-    className,
-    onResize,
-    style = {}
-  } = _ref2;
-  var containerRef = (0, _react.useRef)(null);
-  /*
-   * We are using a ref to avoid re-creating the ResizeObserver when the onResize function changes.
-   * The ref is updated on every render, so the latest onResize function is always available in the effect.
-   */
-  var onResizeRef = (0, _react.useRef)();
-  onResizeRef.current = onResize;
-  (0, _react.useImperativeHandle)(ref, () => containerRef.current);
-  var [sizes, setSizes] = (0, _react.useState)({
-    containerWidth: initialDimension.width,
-    containerHeight: initialDimension.height
-  });
-  var setContainerSize = (0, _react.useCallback)((newWidth, newHeight) => {
-    setSizes(prevState => {
-      var roundedWidth = Math.round(newWidth);
-      var roundedHeight = Math.round(newHeight);
-      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {
-        return prevState;
-      }
-      return {
-        containerWidth: roundedWidth,
-        containerHeight: roundedHeight
-      };
-    });
-  }, []);
-  (0, _react.useEffect)(() => {
-    if (containerRef.current == null || typeof ResizeObserver === 'undefined') {
-      return _DataUtils.noop;
-    }
-    var callback = entries => {
-      var _onResizeRef$current;
-      var entry = entries[0];
-      if (entry == null) {
-        return;
-      }
-      var {
-        width: containerWidth,
-        height: containerHeight
-      } = entry.contentRect;
-      setContainerSize(containerWidth, containerHeight);
-      (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);
-    };
-    if (debounce > 0) {
-      callback = (0, _throttle.default)(callback, debounce, {
-        trailing: true,
-        leading: false
-      });
-    }
-    var observer = new ResizeObserver(callback);
-    var {
-      width: containerWidth,
-      height: containerHeight
-    } = containerRef.current.getBoundingClientRect();
-    setContainerSize(containerWidth, containerHeight);
-    observer.observe(containerRef.current);
-    return () => {
-      observer.disconnect();
-    };
-  }, [setContainerSize, debounce]);
-  var {
-    containerWidth,
-    containerHeight
-  } = sizes;
-  (0, _LogUtils.warn)(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);
-  var {
-    calculatedWidth,
-    calculatedHeight
-  } = (0, _responsiveContainerUtils.calculateChartDimensions)(containerWidth, containerHeight, {
-    width,
-    height,
-    aspect,
-    maxHeight
-  });
-  (0, _LogUtils.warn)(calculatedWidth != null && calculatedWidth > 0 || calculatedHeight != null && calculatedHeight > 0, "The width(%s) and height(%s) of chart should be greater than 0,\n       please check the style of container, or the props width(%s) and height(%s),\n       or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n       height and width.", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);
-  return /*#__PURE__*/React.createElement("div", {
-    id: id ? "".concat(id) : undefined,
-    className: (0, _clsx.clsx)('recharts-responsive-container', className),
-    style: _objectSpread(_objectSpread({}, style), {}, {
-      width,
-      height,
-      minWidth,
-      minHeight,
-      maxHeight
-    }),
-    ref: containerRef
-  }, /*#__PURE__*/React.createElement("div", {
-    style: (0, _responsiveContainerUtils.getInnerDivStyle)({
-      width,
-      height
-    })
-  }, /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {
-    width: calculatedWidth,
-    height: calculatedHeight
-  }, children)));
-});
-
-/**
- * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.
- * It is used to create responsive charts that adapt to different screen sizes.
- *
- * This component uses the {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver} API to monitor changes to the size of its parent element.
- * If you need to support older browsers that do not support this API, you may need to include a polyfill.
- *
- * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}
- *
- * @provides ResponsiveContainerContext
- */
-var ResponsiveContainer = exports.ResponsiveContainer = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var responsiveContainerContext = useResponsiveContainerContext();
-  if ((0, _isWellBehavedNumber.isPositiveNumber)(responsiveContainerContext.width) && (0, _isWellBehavedNumber.isPositiveNumber)(responsiveContainerContext.height)) {
-    /*
-     * If we detect that we are already inside another ResponsiveContainer,
-     * we do not attempt to add another layer of responsiveness.
-     */
-    return props.children;
-  }
-  var {
-    width,
-    height
-  } = (0, _responsiveContainerUtils.getDefaultWidthAndHeight)({
-    width: props.width,
-    height: props.height,
-    aspect: props.aspect
-  });
-
-  /*
-   * Let's try to get the calculated dimensions without having the div container set up.
-   * Sometimes this does produce fixed, positive dimensions. If so, we can skip rendering the div and monitoring its size.
-   */
-  var {
-    calculatedWidth,
-    calculatedHeight
-  } = (0, _responsiveContainerUtils.calculateChartDimensions)(undefined, undefined, {
-    width,
-    height,
-    aspect: props.aspect,
-    maxHeight: props.maxHeight
-  });
-  if ((0, _DataUtils.isNumber)(calculatedWidth) && (0, _DataUtils.isNumber)(calculatedHeight)) {
-    /*
-     * If it just so happens that the combination of width, height, and aspect ratio
-     * results in fixed dimensions, then we don't need to monitor the container's size.
-     * We can just provide these fixed dimensions to the context.
-     *
-     * Note that here we are not checking for positive numbers;
-     * if the user provides a zero or negative width/height, we will just pass that along
-     * as whatever size we detect won't be helping anyway.
-     */
-    return /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {
-      width: calculatedWidth,
-      height: calculatedHeight
-    }, props.children);
-  }
-  /*
-   * Static analysis did not produce fixed dimensions,
-   * so we need to render a special div and monitor its size.
-   */
-  return /*#__PURE__*/React.createElement(SizeDetectorContainer, _extends({}, props, {
-    width: width,
-    height: height,
-    ref: ref
-  }));
-});
Index: de_modules/recharts/lib/component/Text.js
===================================================================
--- node_modules/recharts/lib/component/Text.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,295 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getWordsByLines = exports.Text = void 0;
-exports.isValidTextAnchor = isValidTextAnchor;
-exports.textDefaultProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _DataUtils = require("../util/DataUtils");
-var _Global = require("../util/Global");
-var _DOMUtils = require("../util/DOMUtils");
-var _ReduceCSSCalc = require("../util/ReduceCSSCalc");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _excluded = ["x", "y", "lineHeight", "capHeight", "fill", "scaleToFit", "textAnchor", "verticalAnchor"],
-  _excluded2 = ["dx", "dy", "angle", "className", "breakAll"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var BREAKING_SPACES = /[ \f\n\r\t\v\u2028\u2029]+/;
-var calculateWordWidths = _ref => {
-  var {
-    children,
-    breakAll,
-    style
-  } = _ref;
-  try {
-    var words = [];
-    if (!(0, _DataUtils.isNullish)(children)) {
-      if (breakAll) {
-        words = children.toString().split('');
-      } else {
-        words = children.toString().split(BREAKING_SPACES);
-      }
-    }
-    var wordsWithComputedWidth = words.map(word => ({
-      word,
-      width: (0, _DOMUtils.getStringSize)(word, style).width
-    }));
-    var spaceWidth = breakAll ? 0 : (0, _DOMUtils.getStringSize)('\u00A0', style).width;
-    return {
-      wordsWithComputedWidth,
-      spaceWidth
-    };
-  } catch (_unused) {
-    return null;
-  }
-};
-
-/**
- * @inline
- */
-
-function isValidTextAnchor(value) {
-  return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';
-}
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-var calculate = (words, lineWidth, spaceWidth, scaleToFit) => words.reduce((result, _ref2) => {
-  var {
-    word,
-    width
-  } = _ref2;
-  var currentLine = result[result.length - 1];
-  if (currentLine && width != null && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {
-    // Word can be added to an existing line
-    currentLine.words.push(word);
-    currentLine.width += width + spaceWidth;
-  } else {
-    // Add first word to line or word is too long to scaleToFit on existing line
-    var newLine = {
-      words: [word],
-      width
-    };
-    result.push(newLine);
-  }
-  return result;
-}, []);
-var findLongestLine = words => words.reduce((a, b) => a.width > b.width ? a : b);
-var suffix = '…';
-var checkOverflow = (text, index, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit) => {
-  var tempText = text.slice(0, index);
-  var words = calculateWordWidths({
-    breakAll,
-    style,
-    children: tempText + suffix
-  });
-  if (!words) {
-    return [false, []];
-  }
-  var result = calculate(words.wordsWithComputedWidth, lineWidth, spaceWidth, scaleToFit);
-  var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);
-  return [doesOverflow, result];
-};
-var calculateWordsByLines = (_ref3, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) => {
-  var {
-    maxLines,
-    children,
-    style,
-    breakAll
-  } = _ref3;
-  var shouldLimitLines = (0, _DataUtils.isNumber)(maxLines);
-  var text = String(children);
-  var originalResult = calculate(initialWordsWithComputedWith, lineWidth, spaceWidth, scaleToFit);
-  if (!shouldLimitLines || scaleToFit) {
-    return originalResult;
-  }
-  var overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);
-  if (!overflows) {
-    return originalResult;
-  }
-  var start = 0;
-  var end = text.length - 1;
-  var iterations = 0;
-  var trimmedResult;
-  while (start <= end && iterations <= text.length - 1) {
-    var middle = Math.floor((start + end) / 2);
-    var prev = middle - 1;
-    var [doesPrevOverflow, result] = checkOverflow(text, prev, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);
-    var [doesMiddleOverflow] = checkOverflow(text, middle, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);
-    if (!doesPrevOverflow && !doesMiddleOverflow) {
-      start = middle + 1;
-    }
-    if (doesPrevOverflow && doesMiddleOverflow) {
-      end = middle - 1;
-    }
-    if (!doesPrevOverflow && doesMiddleOverflow) {
-      trimmedResult = result;
-      break;
-    }
-    iterations++;
-  }
-
-  // Fallback to originalResult (result without trimming) if we cannot find the
-  // where to trim.  This should not happen :tm:
-  return trimmedResult || originalResult;
-};
-var getWordsWithoutCalculate = children => {
-  var words = !(0, _DataUtils.isNullish)(children) ? children.toString().split(BREAKING_SPACES) : [];
-  return [{
-    words,
-    width: undefined
-  }];
-};
-var getWordsByLines = _ref4 => {
-  var {
-    width,
-    scaleToFit,
-    children,
-    style,
-    breakAll,
-    maxLines
-  } = _ref4;
-  // Only perform calculations if using features that require them (multiline, scaleToFit)
-  if ((width || scaleToFit) && !_Global.Global.isSsr) {
-    var wordsWithComputedWidth, spaceWidth;
-    var wordWidths = calculateWordWidths({
-      breakAll,
-      children,
-      style
-    });
-    if (wordWidths) {
-      var {
-        wordsWithComputedWidth: wcw,
-        spaceWidth: sw
-      } = wordWidths;
-      wordsWithComputedWidth = wcw;
-      spaceWidth = sw;
-    } else {
-      return getWordsWithoutCalculate(children);
-    }
-    return calculateWordsByLines({
-      breakAll,
-      children,
-      maxLines,
-      style
-    }, wordsWithComputedWidth, spaceWidth, width, Boolean(scaleToFit));
-  }
-  return getWordsWithoutCalculate(children);
-};
-exports.getWordsByLines = getWordsByLines;
-var DEFAULT_FILL = '#808080';
-var textDefaultProps = exports.textDefaultProps = {
-  angle: 0,
-  breakAll: false,
-  // Magic number from d3
-  capHeight: '0.71em',
-  fill: DEFAULT_FILL,
-  lineHeight: '1em',
-  scaleToFit: false,
-  textAnchor: 'start',
-  // Maintain compat with existing charts / default SVG behavior
-  verticalAnchor: 'end',
-  x: 0,
-  y: 0
-};
-var Text = exports.Text = /*#__PURE__*/(0, _react.forwardRef)((outsideProps, ref) => {
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, textDefaultProps),
-    {
-      x: propsX,
-      y: propsY,
-      lineHeight,
-      capHeight,
-      fill,
-      scaleToFit,
-      textAnchor,
-      verticalAnchor
-    } = _resolveDefaultProps,
-    props = _objectWithoutProperties(_resolveDefaultProps, _excluded);
-  var wordsByLines = (0, _react.useMemo)(() => {
-    return getWordsByLines({
-      breakAll: props.breakAll,
-      children: props.children,
-      maxLines: props.maxLines,
-      scaleToFit,
-      style: props.style,
-      width: props.width
-    });
-  }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);
-  var {
-      dx,
-      dy,
-      angle,
-      className,
-      breakAll
-    } = props,
-    textProps = _objectWithoutProperties(props, _excluded2);
-  if (!(0, _DataUtils.isNumOrStr)(propsX) || !(0, _DataUtils.isNumOrStr)(propsY) || wordsByLines.length === 0) {
-    return null;
-  }
-  var x = Number(propsX) + ((0, _DataUtils.isNumber)(dx) ? dx : 0);
-  var y = Number(propsY) + ((0, _DataUtils.isNumber)(dy) ? dy : 0);
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(x) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(y)) {
-    return null;
-  }
-  var startDy;
-  switch (verticalAnchor) {
-    case 'start':
-      startDy = (0, _ReduceCSSCalc.reduceCSSCalc)("calc(".concat(capHeight, ")"));
-      break;
-    case 'middle':
-      startDy = (0, _ReduceCSSCalc.reduceCSSCalc)("calc(".concat((wordsByLines.length - 1) / 2, " * -").concat(lineHeight, " + (").concat(capHeight, " / 2))"));
-      break;
-    default:
-      startDy = (0, _ReduceCSSCalc.reduceCSSCalc)("calc(".concat(wordsByLines.length - 1, " * -").concat(lineHeight, ")"));
-      break;
-  }
-  var transforms = [];
-  var firstLine = wordsByLines[0];
-  if (scaleToFit && firstLine != null) {
-    var lineWidth = firstLine.width;
-    var {
-      width
-    } = props;
-    transforms.push("scale(".concat((0, _DataUtils.isNumber)(width) && (0, _DataUtils.isNumber)(lineWidth) ? width / lineWidth : 1, ")"));
-  }
-  if (angle) {
-    transforms.push("rotate(".concat(angle, ", ").concat(x, ", ").concat(y, ")"));
-  }
-  if (transforms.length) {
-    textProps.transform = transforms.join(' ');
-  }
-  return /*#__PURE__*/React.createElement("text", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(textProps), {
-    ref: ref,
-    x: x,
-    y: y,
-    className: (0, _clsx.clsx)('recharts-text', className),
-    textAnchor: textAnchor,
-    fill: fill.includes('url') ? DEFAULT_FILL : fill
-  }), wordsByLines.map((line, index) => {
-    var words = line.words.join(breakAll ? '' : ' ');
-    return (
-      /*#__PURE__*/
-      // duplicate words will cause duplicate keys which is why we add the array index here
-      React.createElement("tspan", {
-        x: x,
-        dy: index === 0 ? startDy : lineHeight,
-        key: "".concat(words, "-").concat(index)
-      }, words)
-    );
-  }));
-});
-Text.displayName = 'Text';
Index: de_modules/recharts/lib/component/Tooltip.js
===================================================================
--- node_modules/recharts/lib/component/Tooltip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,185 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Tooltip = Tooltip;
-exports.defaultTooltipProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _reactDom = require("react-dom");
-var _DefaultTooltipContent = require("./DefaultTooltipContent");
-var _TooltipBoundingBox = require("./TooltipBoundingBox");
-var _getUniqPayload = require("../util/payload/getUniqPayload");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _accessibilityContext = require("../context/accessibilityContext");
-var _useElementOffset = require("../util/useElementOffset");
-var _Cursor = require("./Cursor");
-var _selectors = require("../state/selectors/selectors");
-var _tooltipPortalContext = require("../context/tooltipPortalContext");
-var _hooks = require("../state/hooks");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _useChartSynchronisation = require("../synchronisation/useChartSynchronisation");
-var _selectTooltipEventType = require("../state/selectors/selectTooltipEventType");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function defaultUniqBy(entry) {
-  return entry.dataKey;
-}
-function renderContent(content, props) {
-  if (/*#__PURE__*/React.isValidElement(content)) {
-    return /*#__PURE__*/React.cloneElement(content, props);
-  }
-  if (typeof content === 'function') {
-    return /*#__PURE__*/React.createElement(content, props);
-  }
-  return /*#__PURE__*/React.createElement(_DefaultTooltipContent.DefaultTooltipContent, props);
-}
-var emptyPayload = [];
-var defaultTooltipProps = exports.defaultTooltipProps = {
-  allowEscapeViewBox: {
-    x: false,
-    y: false
-  },
-  animationDuration: 400,
-  animationEasing: 'ease',
-  axisId: 0,
-  contentStyle: {},
-  cursor: true,
-  filterNull: true,
-  includeHidden: false,
-  isAnimationActive: 'auto',
-  itemSorter: 'name',
-  itemStyle: {},
-  labelStyle: {},
-  offset: 10,
-  reverseDirection: {
-    x: false,
-    y: false
-  },
-  separator: ' : ',
-  trigger: 'hover',
-  useTranslate3d: false,
-  wrapperStyle: {}
-};
-
-/**
- * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.
- *
- * It can be configured to show information for individual data points or for all points at a specific axis coordinate.
- * The appearance and content of the tooltip can be customized via props.
- *
- * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}
- * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}
- *
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- * @consumes TooltipEntrySettings
- */
-function Tooltip(outsideProps) {
-  var _useAppSelector, _ref;
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultTooltipProps);
-  var {
-    active: activeFromProps,
-    allowEscapeViewBox,
-    animationDuration,
-    animationEasing,
-    content,
-    filterNull,
-    isAnimationActive,
-    offset,
-    payloadUniqBy,
-    position,
-    reverseDirection,
-    useTranslate3d,
-    wrapperStyle,
-    cursor,
-    shared,
-    trigger,
-    defaultIndex,
-    portal: portalFromProps,
-    axisId
-  } = props;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var defaultIndexAsString = typeof defaultIndex === 'number' ? String(defaultIndex) : defaultIndex;
-  (0, _react.useEffect)(() => {
-    dispatch((0, _tooltipSlice.setTooltipSettingsState)({
-      shared,
-      trigger,
-      axisId,
-      active: activeFromProps,
-      defaultIndex: defaultIndexAsString
-    }));
-  }, [dispatch, shared, trigger, axisId, activeFromProps, defaultIndexAsString]);
-  var viewBox = (0, _chartLayoutContext.useViewBox)();
-  var accessibilityLayer = (0, _accessibilityContext.useAccessibilityLayer)();
-  var tooltipEventType = (0, _selectTooltipEventType.useTooltipEventType)(shared);
-  var {
-    activeIndex,
-    isActive
-  } = (_useAppSelector = (0, _hooks.useAppSelector)(state => (0, _selectors.selectIsTooltipActive)(state, tooltipEventType, trigger, defaultIndexAsString))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};
-  var payloadFromRedux = (0, _hooks.useAppSelector)(state => (0, _selectors.selectTooltipPayload)(state, tooltipEventType, trigger, defaultIndexAsString));
-  var labelFromRedux = (0, _hooks.useAppSelector)(state => (0, _selectors.selectActiveLabel)(state, tooltipEventType, trigger, defaultIndexAsString));
-  var coordinate = (0, _hooks.useAppSelector)(state => (0, _selectors.selectActiveCoordinate)(state, tooltipEventType, trigger, defaultIndexAsString));
-  var payload = payloadFromRedux;
-  var tooltipPortalFromContext = (0, _tooltipPortalContext.useTooltipPortal)();
-  /*
-   * The user can set `active=true` on the Tooltip in which case the Tooltip will stay always active,
-   * or `active=false` in which case the Tooltip never shows.
-   *
-   * If the `active` prop is not defined then it will show and hide based on mouse or keyboard activity.
-   */
-  var finalIsActive = (_ref = activeFromProps !== null && activeFromProps !== void 0 ? activeFromProps : isActive) !== null && _ref !== void 0 ? _ref : false;
-  var [lastBoundingBox, updateBoundingBox] = (0, _useElementOffset.useElementOffset)([payload, finalIsActive]);
-  var finalLabel = tooltipEventType === 'axis' ? labelFromRedux : undefined;
-  (0, _useChartSynchronisation.useTooltipChartSynchronisation)(tooltipEventType, trigger, coordinate, finalLabel, activeIndex, finalIsActive);
-  var tooltipPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : tooltipPortalFromContext;
-  if (tooltipPortal == null || viewBox == null || tooltipEventType == null) {
-    return null;
-  }
-  var finalPayload = payload !== null && payload !== void 0 ? payload : emptyPayload;
-  if (!finalIsActive) {
-    finalPayload = emptyPayload;
-  }
-  if (filterNull && finalPayload.length) {
-    finalPayload = (0, _getUniqPayload.getUniqPayload)(finalPayload.filter(entry => entry.value != null && (entry.hide !== true || props.includeHidden)), payloadUniqBy, defaultUniqBy);
-  }
-  var hasPayload = finalPayload.length > 0;
-  var tooltipElement = /*#__PURE__*/React.createElement(_TooltipBoundingBox.TooltipBoundingBox, {
-    allowEscapeViewBox: allowEscapeViewBox,
-    animationDuration: animationDuration,
-    animationEasing: animationEasing,
-    isAnimationActive: isAnimationActive,
-    active: finalIsActive,
-    coordinate: coordinate,
-    hasPayload: hasPayload,
-    offset: offset,
-    position: position,
-    reverseDirection: reverseDirection,
-    useTranslate3d: useTranslate3d,
-    viewBox: viewBox,
-    wrapperStyle: wrapperStyle,
-    lastBoundingBox: lastBoundingBox,
-    innerRef: updateBoundingBox,
-    hasPortalFromProps: Boolean(portalFromProps)
-  }, renderContent(content, _objectSpread(_objectSpread({}, props), {}, {
-    payload: finalPayload,
-    label: finalLabel,
-    active: finalIsActive,
-    activeIndex,
-    coordinate,
-    accessibilityLayer
-  })));
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/(0, _reactDom.createPortal)(tooltipElement, tooltipPortal), finalIsActive && /*#__PURE__*/React.createElement(_Cursor.Cursor, {
-    cursor: cursor,
-    tooltipEventType: tooltipEventType,
-    coordinate: coordinate,
-    payload: finalPayload,
-    index: activeIndex
-  }));
-}
Index: de_modules/recharts/lib/component/TooltipBoundingBox.js
===================================================================
--- node_modules/recharts/lib/component/TooltipBoundingBox.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,121 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.TooltipBoundingBox = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _translate = require("../util/tooltip/translate");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-class TooltipBoundingBox extends _react.PureComponent {
-  constructor() {
-    super(...arguments);
-    _defineProperty(this, "state", {
-      dismissed: false,
-      dismissedAtCoordinate: {
-        x: 0,
-        y: 0
-      }
-    });
-    _defineProperty(this, "handleKeyDown", event => {
-      if (event.key === 'Escape') {
-        var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;
-        this.setState({
-          dismissed: true,
-          dismissedAtCoordinate: {
-            x: (_this$props$coordinat = (_this$props$coordinat2 = this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,
-            y: (_this$props$coordinat3 = (_this$props$coordinat4 = this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0
-          }
-        });
-      }
-    });
-  }
-  componentDidMount() {
-    document.addEventListener('keydown', this.handleKeyDown);
-  }
-  componentWillUnmount() {
-    document.removeEventListener('keydown', this.handleKeyDown);
-  }
-  componentDidUpdate() {
-    var _this$props$coordinat5, _this$props$coordinat6;
-    if (!this.state.dismissed) {
-      return;
-    }
-    if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {
-      this.state.dismissed = false;
-    }
-  }
-  render() {
-    var {
-      active,
-      allowEscapeViewBox,
-      animationDuration,
-      animationEasing,
-      children,
-      coordinate,
-      hasPayload,
-      isAnimationActive,
-      offset,
-      position,
-      reverseDirection,
-      useTranslate3d,
-      viewBox,
-      wrapperStyle,
-      lastBoundingBox,
-      innerRef,
-      hasPortalFromProps
-    } = this.props;
-    var offsetLeft = typeof offset === 'number' ? offset : offset.x;
-    var offsetTop = typeof offset === 'number' ? offset : offset.y;
-    var {
-      cssClasses,
-      cssProperties
-    } = (0, _translate.getTooltipTranslate)({
-      allowEscapeViewBox,
-      coordinate,
-      offsetLeft,
-      offsetTop,
-      position,
-      reverseDirection,
-      tooltipBox: {
-        height: lastBoundingBox.height,
-        width: lastBoundingBox.width
-      },
-      useTranslate3d,
-      viewBox
-    });
-
-    // do not use absolute styles if the user has passed a custom portal prop
-    var positionStyles = hasPortalFromProps ? {} : _objectSpread(_objectSpread({
-      transition: isAnimationActive && active ? "transform ".concat(animationDuration, "ms ").concat(animationEasing) : undefined
-    }, cssProperties), {}, {
-      pointerEvents: 'none',
-      visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',
-      position: 'absolute',
-      top: 0,
-      left: 0
-    });
-    var outerStyle = _objectSpread(_objectSpread({}, positionStyles), {}, {
-      visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden'
-    }, wrapperStyle);
-    return (
-      /*#__PURE__*/
-      // This element allow listening to the `Escape` key. See https://github.com/recharts/recharts/pull/2925
-      React.createElement("div", {
-        // @ts-expect-error typescript library does not recognize xmlns attribute, but it's required for an HTML chunk inside SVG.
-        xmlns: "http://www.w3.org/1999/xhtml",
-        tabIndex: -1,
-        className: cssClasses,
-        style: outerStyle,
-        ref: innerRef
-      }, children)
-    );
-  }
-}
-exports.TooltipBoundingBox = TooltipBoundingBox;
Index: de_modules/recharts/lib/component/responsiveContainerUtils.js
===================================================================
--- node_modules/recharts/lib/component/responsiveContainerUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultResponsiveContainerProps = exports.calculateChartDimensions = void 0;
-exports.getDefaultWidthAndHeight = getDefaultWidthAndHeight;
-exports.getInnerDivStyle = void 0;
-var _DataUtils = require("../util/DataUtils");
-var defaultResponsiveContainerProps = exports.defaultResponsiveContainerProps = {
-  width: '100%',
-  height: '100%',
-  debounce: 0,
-  minWidth: 0,
-  initialDimension: {
-    width: -1,
-    height: -1
-  }
-};
-var calculateChartDimensions = (containerWidth, containerHeight, props) => {
-  var {
-    width = defaultResponsiveContainerProps.width,
-    height = defaultResponsiveContainerProps.height,
-    aspect,
-    maxHeight
-  } = props;
-
-  /*
-   * The containerWidth and containerHeight are already percentage based because it's set as that percentage in CSS.
-   * Means we don't have to calculate percentages here.
-   */
-  var calculatedWidth = (0, _DataUtils.isPercent)(width) ? containerWidth : Number(width);
-  var calculatedHeight = (0, _DataUtils.isPercent)(height) ? containerHeight : Number(height);
-  if (aspect && aspect > 0) {
-    // Preserve the desired aspect ratio
-    if (calculatedWidth) {
-      // Will default to using width for aspect ratio
-      calculatedHeight = calculatedWidth / aspect;
-    } else if (calculatedHeight) {
-      // But we should also take height into consideration
-      calculatedWidth = calculatedHeight * aspect;
-    }
-
-    // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight
-    if (maxHeight && calculatedHeight != null && calculatedHeight > maxHeight) {
-      calculatedHeight = maxHeight;
-    }
-  }
-  return {
-    calculatedWidth,
-    calculatedHeight
-  };
-};
-exports.calculateChartDimensions = calculateChartDimensions;
-var bothOverflow = {
-  width: 0,
-  height: 0,
-  overflow: 'visible'
-};
-var overflowX = {
-  width: 0,
-  overflowX: 'visible'
-};
-var overflowY = {
-  height: 0,
-  overflowY: 'visible'
-};
-var noStyle = {};
-
-/**
- * This zero-size, overflow-visible is required to allow the chart to shrink.
- * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,
- * it would always keep the container at the size of the chart,
- * and ResizeObserver would never fire.
- * With this zero-size element, the chart itself never actually fills the container,
- * it just so happens that it is visible because it overflows.
- * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts
- * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68
- *
- * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),
- * because in that case the chart can't shrink in that dimension anyway.
- * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245
- */
-var getInnerDivStyle = props => {
-  var {
-    width,
-    height
-  } = props;
-  var isWidthPercent = (0, _DataUtils.isPercent)(width);
-  var isHeightPercent = (0, _DataUtils.isPercent)(height);
-  if (isWidthPercent && isHeightPercent) {
-    return bothOverflow;
-  }
-  if (isWidthPercent) {
-    return overflowX;
-  }
-  if (isHeightPercent) {
-    return overflowY;
-  }
-  return noStyle;
-};
-exports.getInnerDivStyle = getInnerDivStyle;
-function getDefaultWidthAndHeight(_ref) {
-  var {
-    width,
-    height,
-    aspect
-  } = _ref;
-  var calculatedWidth = width;
-  var calculatedHeight = height;
-  if (calculatedWidth === undefined && calculatedHeight === undefined) {
-    calculatedWidth = defaultResponsiveContainerProps.width;
-    calculatedHeight = defaultResponsiveContainerProps.height;
-  } else if (calculatedWidth === undefined) {
-    calculatedWidth = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.width;
-  } else if (calculatedHeight === undefined) {
-    calculatedHeight = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.height;
-  }
-  return {
-    width: calculatedWidth,
-    height: calculatedHeight
-  };
-}
Index: de_modules/recharts/lib/container/ClipPathProvider.js
===================================================================
--- node_modules/recharts/lib/container/ClipPathProvider.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useClipPathId = exports.ClipPathProvider = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _DataUtils = require("../util/DataUtils");
-var _hooks = require("../hooks");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var ClipPathIdContext = /*#__PURE__*/(0, _react.createContext)(undefined);
-
-/**
- * Generates a unique clip path ID for use in SVG elements,
- * and puts it in a context provider.
- *
- * To read the clip path ID, use the `useClipPathId` hook,
- * or render `<ClipPath>` component which will automatically use the ID from this context.
- *
- * @param props children - React children to be wrapped by the provider
- * @returns React Context Provider
- */
-var ClipPathProvider = _ref => {
-  var {
-    children
-  } = _ref;
-  var [clipPathId] = (0, _react.useState)("".concat((0, _DataUtils.uniqueId)('recharts'), "-clip"));
-  var plotArea = (0, _hooks.usePlotArea)();
-  if (plotArea == null) {
-    return null;
-  }
-  var {
-    x,
-    y,
-    width,
-    height
-  } = plotArea;
-  return /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {
-    value: clipPathId
-  }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
-    id: clipPathId
-  }, /*#__PURE__*/React.createElement("rect", {
-    x: x,
-    y: y,
-    height: height,
-    width: width
-  }))), children);
-};
-exports.ClipPathProvider = ClipPathProvider;
-var useClipPathId = () => {
-  return (0, _react.useContext)(ClipPathIdContext);
-};
-exports.useClipPathId = useClipPathId;
Index: de_modules/recharts/lib/container/Layer.js
===================================================================
--- node_modules/recharts/lib/container/Layer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Layer = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _excluded = ["children", "className"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * Creates an SVG group element to group other SVG elements.
- *
- * Useful if you want to apply transformations or styles to a set of elements
- * without affecting other elements in the SVG.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g
- */
-var Layer = exports.Layer = /*#__PURE__*/React.forwardRef((props, ref) => {
-  var {
-      children,
-      className
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var layerClass = (0, _clsx.clsx)('recharts-layer', className);
-  return /*#__PURE__*/React.createElement("g", _extends({
-    className: layerClass
-  }, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-    ref: ref
-  }), children);
-});
Index: de_modules/recharts/lib/container/RootSurface.js
===================================================================
--- node_modules/recharts/lib/container/RootSurface.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RootSurface = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _accessibilityContext = require("../context/accessibilityContext");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _Surface = require("./Surface");
-var _hooks = require("../state/hooks");
-var _brushSelectors = require("../state/selectors/brushSelectors");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _ZIndexPortal = require("../zIndex/ZIndexPortal");
-var _excluded = ["children"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-var FULL_WIDTH_AND_HEIGHT = {
-  width: '100%',
-  height: '100%',
-  /*
-   * display: block is necessary here because the default for an SVG is display: inline,
-   * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG
-   * to make space for the descender of letters like "g" and "y". This throws off the height calculation
-   * and causes the container to grow indefinitely on each render with responsive=true.
-   * Display: block removes that extra space.
-   *
-   * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.
-   */
-  display: 'block'
-};
-var MainChartSurface = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var width = (0, _chartLayoutContext.useChartWidth)();
-  var height = (0, _chartLayoutContext.useChartHeight)();
-  var hasAccessibilityLayer = (0, _accessibilityContext.useAccessibilityLayer)();
-  if (!(0, _isWellBehavedNumber.isPositiveNumber)(width) || !(0, _isWellBehavedNumber.isPositiveNumber)(height)) {
-    return null;
-  }
-  var {
-    children,
-    otherAttributes,
-    title,
-    desc
-  } = props;
-  var tabIndex, role;
-  if (otherAttributes != null) {
-    if (typeof otherAttributes.tabIndex === 'number') {
-      tabIndex = otherAttributes.tabIndex;
-    } else {
-      tabIndex = hasAccessibilityLayer ? 0 : undefined;
-    }
-    if (typeof otherAttributes.role === 'string') {
-      role = otherAttributes.role;
-    } else {
-      role = hasAccessibilityLayer ? 'application' : undefined;
-    }
-  }
-  return /*#__PURE__*/React.createElement(_Surface.Surface, _extends({}, otherAttributes, {
-    title: title,
-    desc: desc,
-    role: role,
-    tabIndex: tabIndex,
-    width: width,
-    height: height,
-    style: FULL_WIDTH_AND_HEIGHT,
-    ref: ref
-  }), children);
-});
-var BrushPanoramaSurface = _ref => {
-  var {
-    children
-  } = _ref;
-  var brushDimensions = (0, _hooks.useAppSelector)(_brushSelectors.selectBrushDimensions);
-  if (!brushDimensions) {
-    return null;
-  }
-  var {
-    width,
-    height,
-    y,
-    x
-  } = brushDimensions;
-  return /*#__PURE__*/React.createElement(_Surface.Surface, {
-    width: width,
-    height: height,
-    x: x,
-    y: y
-  }, children);
-};
-var RootSurface = exports.RootSurface = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
-  var {
-      children
-    } = _ref2,
-    rest = _objectWithoutProperties(_ref2, _excluded);
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  if (isPanorama) {
-    return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(_ZIndexPortal.AllZIndexPortals, {
-      isPanorama: true
-    }, children));
-  }
-  return /*#__PURE__*/React.createElement(MainChartSurface, _extends({
-    ref: ref
-  }, rest), /*#__PURE__*/React.createElement(_ZIndexPortal.AllZIndexPortals, {
-    isPanorama: false
-  }, children));
-});
Index: de_modules/recharts/lib/container/Surface.js
===================================================================
--- node_modules/recharts/lib/container/Surface.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Surface = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _excluded = ["children", "width", "height", "viewBox", "className", "style", "title", "desc"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * Renders an SVG element.
- *
- * All charts already include a Surface component, so you would not normally use this directly.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg
- */
-var Surface = exports.Surface = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
-  var {
-      children,
-      width,
-      height,
-      viewBox,
-      className,
-      style,
-      title,
-      desc
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  var svgView = viewBox || {
-    width,
-    height,
-    x: 0,
-    y: 0
-  };
-  var layerClass = (0, _clsx.clsx)('recharts-surface', className);
-  return /*#__PURE__*/React.createElement("svg", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-    className: layerClass,
-    width: width,
-    height: height,
-    style: style,
-    viewBox: "".concat(svgView.x, " ").concat(svgView.y, " ").concat(svgView.width, " ").concat(svgView.height),
-    ref: ref
-  }), /*#__PURE__*/React.createElement("title", null, title), /*#__PURE__*/React.createElement("desc", null, desc), children);
-});
Index: de_modules/recharts/lib/context/ErrorBarContext.js
===================================================================
--- node_modules/recharts/lib/context/ErrorBarContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReportErrorBarSettings = ReportErrorBarSettings;
-exports.SetErrorBarContext = SetErrorBarContext;
-exports.useErrorBarContext = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _errorBarSlice = require("../state/errorBarSlice");
-var _hooks = require("../state/hooks");
-var _RegisterGraphicalItemId = require("./RegisterGraphicalItemId");
-var _excluded = ["children"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var initialContextState = {
-  data: [],
-  xAxisId: 'xAxis-0',
-  yAxisId: 'yAxis-0',
-  dataPointFormatter: () => ({
-    x: 0,
-    y: 0,
-    value: 0
-  }),
-  errorBarOffset: 0
-};
-var ErrorBarContext = /*#__PURE__*/(0, _react.createContext)(initialContextState);
-function SetErrorBarContext(props) {
-  var {
-      children
-    } = props,
-    rest = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {
-    value: rest
-  }, children);
-}
-var useErrorBarContext = () => (0, _react.useContext)(ErrorBarContext);
-exports.useErrorBarContext = useErrorBarContext;
-function ReportErrorBarSettings(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var graphicalItemId = (0, _RegisterGraphicalItemId.useGraphicalItemId)();
-  var prevPropsRef = (0, _react.useRef)(null);
-  (0, _react.useEffect)(() => {
-    if (graphicalItemId == null) {
-      // ErrorBar outside a graphical item context does not do anything.
-      return;
-    }
-    if (prevPropsRef.current === null) {
-      dispatch((0, _errorBarSlice.addErrorBar)({
-        itemId: graphicalItemId,
-        errorBar: props
-      }));
-    } else if (prevPropsRef.current !== props) {
-      dispatch((0, _errorBarSlice.replaceErrorBar)({
-        itemId: graphicalItemId,
-        prev: prevPropsRef.current,
-        next: props
-      }));
-    }
-    prevPropsRef.current = props;
-  }, [dispatch, graphicalItemId, props]);
-  (0, _react.useEffect)(() => {
-    return () => {
-      if (prevPropsRef.current != null && graphicalItemId != null) {
-        dispatch((0, _errorBarSlice.removeErrorBar)({
-          itemId: graphicalItemId,
-          errorBar: prevPropsRef.current
-        }));
-        prevPropsRef.current = null;
-      }
-    };
-  }, [dispatch, graphicalItemId]);
-  return null;
-}
Index: de_modules/recharts/lib/context/PanoramaContext.js
===================================================================
--- node_modules/recharts/lib/context/PanoramaContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useIsPanorama = exports.PanoramaContextProvider = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var PanoramaContext = /*#__PURE__*/(0, _react.createContext)(null);
-var useIsPanorama = () => (0, _react.useContext)(PanoramaContext) != null;
-exports.useIsPanorama = useIsPanorama;
-var PanoramaContextProvider = _ref => {
-  var {
-    children
-  } = _ref;
-  return /*#__PURE__*/React.createElement(PanoramaContext.Provider, {
-    value: true
-  }, children);
-};
-exports.PanoramaContextProvider = PanoramaContextProvider;
Index: de_modules/recharts/lib/context/RegisterGraphicalItemId.js
===================================================================
--- node_modules/recharts/lib/context/RegisterGraphicalItemId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RegisterGraphicalItemId = void 0;
-exports.useGraphicalItemId = useGraphicalItemId;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _useUniqueId = require("../util/useUniqueId");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-var GraphicalItemIdContext = /*#__PURE__*/(0, _react.createContext)(undefined);
-var RegisterGraphicalItemId = _ref => {
-  var {
-    id,
-    type,
-    children
-  } = _ref;
-  var resolvedId = (0, _useUniqueId.useUniqueId)("recharts-".concat(type), id);
-  return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {
-    value: resolvedId
-  }, children(resolvedId));
-};
-exports.RegisterGraphicalItemId = RegisterGraphicalItemId;
-function useGraphicalItemId() {
-  return (0, _react.useContext)(GraphicalItemIdContext);
-}
Index: de_modules/recharts/lib/context/accessibilityContext.js
===================================================================
--- node_modules/recharts/lib/context/accessibilityContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useAccessibilityLayer = void 0;
-var _hooks = require("../state/hooks");
-var useAccessibilityLayer = () => {
-  var _useAppSelector;
-  return (_useAppSelector = (0, _hooks.useAppSelector)(state => state.rootProps.accessibilityLayer)) !== null && _useAppSelector !== void 0 ? _useAppSelector : true;
-};
-exports.useAccessibilityLayer = useAccessibilityLayer;
Index: de_modules/recharts/lib/context/brushUpdateContext.js
===================================================================
--- node_modules/recharts/lib/context/brushUpdateContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.BrushUpdateDispatchContext = void 0;
-var _react = require("react");
-var BrushUpdateDispatchContext = exports.BrushUpdateDispatchContext = /*#__PURE__*/(0, _react.createContext)(() => {});
Index: de_modules/recharts/lib/context/chartDataContext.js
===================================================================
--- node_modules/recharts/lib/context/chartDataContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useDataIndex = exports.useChartData = exports.SetComputedData = exports.ChartDataContextProvider = void 0;
-var _react = require("react");
-var _chartDataSlice = require("../state/chartDataSlice");
-var _hooks = require("../state/hooks");
-var _PanoramaContext = require("./PanoramaContext");
-var ChartDataContextProvider = props => {
-  var {
-    chartData
-  } = props;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  (0, _react.useEffect)(() => {
-    if (isPanorama) {
-      // Panorama mode reuses data from the main chart, so we must not overwrite it here.
-      return () => {
-        // there is nothing to clean up
-      };
-    }
-    dispatch((0, _chartDataSlice.setChartData)(chartData));
-    return () => {
-      dispatch((0, _chartDataSlice.setChartData)(undefined));
-    };
-  }, [chartData, dispatch, isPanorama]);
-  return null;
-};
-exports.ChartDataContextProvider = ChartDataContextProvider;
-var SetComputedData = props => {
-  var {
-    computedData
-  } = props;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _chartDataSlice.setComputedData)(computedData));
-    return () => {
-      dispatch((0, _chartDataSlice.setChartData)(undefined));
-    };
-  }, [computedData, dispatch]);
-  return null;
-};
-exports.SetComputedData = SetComputedData;
-var selectChartData = state => state.chartData.chartData;
-
-/**
- * "data" is the data of the chart - it has no type because this part of recharts is very flexible.
- * Basically it's an array of "something" and then there's the dataKey property in various places
- * that's meant to pull other things away from the data.
- *
- * Some charts have `data` defined on the chart root, and they will return the array through this hook.
- * For example: <ComposedChart data={data} />.
- *
- * Other charts, such as Pie, have data defined on individual graphical elements.
- * These charts will return `undefined` through this hook, and you need to read the data from children.
- * For example: <PieChart><Pie data={data} />
- *
- * Some charts also allow setting both - data on the parent, and data on the children at the same time!
- * However, this particular selector will only return the ones defined on the parent.
- *
- * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.
- *
- * @return data array for some charts and undefined for other
- */
-var useChartData = () => (0, _hooks.useAppSelector)(selectChartData);
-exports.useChartData = useChartData;
-var selectDataIndex = state => {
-  var {
-    dataStartIndex,
-    dataEndIndex
-  } = state.chartData;
-  return {
-    startIndex: dataStartIndex,
-    endIndex: dataEndIndex
-  };
-};
-
-/**
- * startIndex and endIndex are data boundaries, set through Brush.
- *
- * @return object with startIndex and endIndex
- */
-var useDataIndex = () => {
-  return (0, _hooks.useAppSelector)(selectDataIndex);
-};
-exports.useDataIndex = useDataIndex;
Index: de_modules/recharts/lib/context/chartLayoutContext.js
===================================================================
--- node_modules/recharts/lib/context/chartLayoutContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,230 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReportChartSize = exports.ReportChartMargin = void 0;
-exports.cartesianViewBoxToTrapezoid = cartesianViewBoxToTrapezoid;
-exports.useViewBox = exports.usePolarChartLayout = exports.useOffsetInternal = exports.useMargin = exports.useIsInChartContext = exports.useChartWidth = exports.useChartLayout = exports.useChartHeight = exports.useCartesianChartLayout = exports.selectPolarChartLayout = exports.selectChartLayout = void 0;
-var _react = require("react");
-var _hooks = require("../state/hooks");
-var _layoutSlice = require("../state/layoutSlice");
-var _selectChartOffsetInternal = require("../state/selectors/selectChartOffsetInternal");
-var _containerSelectors = require("../state/selectors/containerSelectors");
-var _PanoramaContext = require("./PanoramaContext");
-var _brushSelectors = require("../state/selectors/brushSelectors");
-var _ResponsiveContainer = require("../component/ResponsiveContainer");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-function cartesianViewBoxToTrapezoid(box) {
-  if (!box) {
-    return undefined;
-  }
-  return {
-    x: box.x,
-    y: box.y,
-    upperWidth: 'upperWidth' in box ? box.upperWidth : box.width,
-    lowerWidth: 'lowerWidth' in box ? box.lowerWidth : box.width,
-    width: box.width,
-    height: box.height
-  };
-}
-var useViewBox = () => {
-  var _useAppSelector;
-  var panorama = (0, _PanoramaContext.useIsPanorama)();
-  var rootViewBox = (0, _hooks.useAppSelector)(_selectChartOffsetInternal.selectChartViewBox);
-  var brushDimensions = (0, _hooks.useAppSelector)(_brushSelectors.selectBrushDimensions);
-  var brushPadding = (_useAppSelector = (0, _hooks.useAppSelector)(_brushSelectors.selectBrushSettings)) === null || _useAppSelector === void 0 ? void 0 : _useAppSelector.padding;
-  if (!panorama || !brushDimensions || !brushPadding) {
-    return rootViewBox;
-  }
-  return {
-    width: brushDimensions.width - brushPadding.left - brushPadding.right,
-    height: brushDimensions.height - brushPadding.top - brushPadding.bottom,
-    x: brushPadding.left,
-    y: brushPadding.top
-  };
-};
-exports.useViewBox = useViewBox;
-var manyComponentsThrowErrorsIfOffsetIsUndefined = {
-  top: 0,
-  bottom: 0,
-  left: 0,
-  right: 0,
-  width: 0,
-  height: 0,
-  brushBottom: 0
-};
-/**
- * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.
- *
- * Returns the offset of the chart in pixels.
- *
- * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.
- */
-var useOffsetInternal = () => {
-  var _useAppSelector2;
-  return (_useAppSelector2 = (0, _hooks.useAppSelector)(_selectChartOffsetInternal.selectChartOffsetInternal)) !== null && _useAppSelector2 !== void 0 ? _useAppSelector2 : manyComponentsThrowErrorsIfOffsetIsUndefined;
-};
-
-/**
- * Returns the width of the chart in pixels.
- *
- * If you are using chart with hardcoded `width` prop, then the width returned will be the same
- * as the `width` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `width` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the width.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the width number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.
- */
-exports.useOffsetInternal = useOffsetInternal;
-var useChartWidth = () => {
-  return (0, _hooks.useAppSelector)(_containerSelectors.selectChartWidth);
-};
-
-/**
- * Returns the height of the chart in pixels.
- *
- * If you are using chart with hardcoded `height` props, then the height returned will be the same
- * as the `height` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `height` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the height.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the height number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.
- */
-exports.useChartWidth = useChartWidth;
-var useChartHeight = () => {
-  return (0, _hooks.useAppSelector)(_containerSelectors.selectChartHeight);
-};
-
-/**
- * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.
- * This is declared by the user in the chart props.
- * If you are interested in the space occupied by axes, legend, or brushes,
- * use {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.
- */
-exports.useChartHeight = useChartHeight;
-var useMargin = () => {
-  return (0, _hooks.useAppSelector)(state => state.layout.margin);
-};
-exports.useMargin = useMargin;
-var selectChartLayout = state => state.layout.layoutType;
-exports.selectChartLayout = selectChartLayout;
-var useChartLayout = () => (0, _hooks.useAppSelector)(selectChartLayout);
-exports.useChartLayout = useChartLayout;
-var useCartesianChartLayout = () => {
-  var layout = useChartLayout();
-  if (layout === 'horizontal' || layout === 'vertical') {
-    return layout;
-  }
-  return undefined;
-};
-exports.useCartesianChartLayout = useCartesianChartLayout;
-var selectPolarChartLayout = state => {
-  var layout = state.layout.layoutType;
-  if (layout === 'centric' || layout === 'radial') {
-    return layout;
-  }
-  return undefined;
-};
-exports.selectPolarChartLayout = selectPolarChartLayout;
-var usePolarChartLayout = () => {
-  return (0, _hooks.useAppSelector)(selectPolarChartLayout);
-};
-
-/**
- * Returns true if the component is rendered inside a chart context.
- * Some components may be used both inside and outside of charts,
- * and this hook allows them to determine if they are in a chart context or not.
- *
- * Other selectors may return undefined when used outside a chart context,
- * or undefined when inside a chart, but without relevant data.
- * This hook provides a more explicit way to check for chart context.
- *
- * @returns {boolean} True if in chart context, false otherwise.
- */
-exports.usePolarChartLayout = usePolarChartLayout;
-var useIsInChartContext = () => {
-  /*
-   * All charts provide a layout type in the chart context.
-   * If we have a layout type, we are in a chart context.
-   */
-  var layout = useChartLayout();
-  return layout !== undefined;
-};
-exports.useIsInChartContext = useIsInChartContext;
-var ReportChartSize = props => {
-  var dispatch = (0, _hooks.useAppDispatch)();
-
-  /*
-   * Skip dispatching properties in panorama chart for two reasons:
-   * 1. The root chart should be deciding on these properties, and
-   * 2. Brush reads these properties from redux store, and so they must remain stable
-   *      to avoid circular dependency and infinite re-rendering.
-   */
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var {
-    width: widthFromProps,
-    height: heightFromProps
-  } = props;
-  var responsiveContainerCalculations = (0, _ResponsiveContainer.useResponsiveContainerContext)();
-  var width = widthFromProps;
-  var height = heightFromProps;
-  if (responsiveContainerCalculations) {
-    /*
-     * In case we receive width and height from ResponsiveContainer,
-     * we will always prefer those.
-     * Only in case ResponsiveContainer does not provide width or height,
-     * we will fall back to the explicitly provided width and height.
-     *
-     * This to me feels backwards - we should allow override by the more specific props on individual charts, right?
-     * But this is 3.x behaviour, so let's keep it for backwards compatibility.
-     *
-     * We can change this in 4.x if we want to.
-     */
-    width = responsiveContainerCalculations.width > 0 ? responsiveContainerCalculations.width : widthFromProps;
-    height = responsiveContainerCalculations.height > 0 ? responsiveContainerCalculations.height : heightFromProps;
-  }
-  (0, _react.useEffect)(() => {
-    if (!isPanorama && (0, _isWellBehavedNumber.isPositiveNumber)(width) && (0, _isWellBehavedNumber.isPositiveNumber)(height)) {
-      dispatch((0, _layoutSlice.setChartSize)({
-        width,
-        height
-      }));
-    }
-  }, [dispatch, isPanorama, width, height]);
-  return null;
-};
-exports.ReportChartSize = ReportChartSize;
-var ReportChartMargin = _ref => {
-  var {
-    margin
-  } = _ref;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _layoutSlice.setMargin)(margin));
-  }, [dispatch, margin]);
-  return null;
-};
-exports.ReportChartMargin = ReportChartMargin;
Index: de_modules/recharts/lib/context/legendPayloadContext.js
===================================================================
--- node_modules/recharts/lib/context/legendPayloadContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useLegendPayload = useLegendPayload;
-var _hooks = require("../state/hooks");
-var _legendSelectors = require("../state/selectors/legendSelectors");
-/**
- * Use this hook in Legend, or anywhere else where you want to read the current Legend items.
- * @return all Legend items ready to be rendered
- */
-function useLegendPayload() {
-  return (0, _hooks.useAppSelector)(_legendSelectors.selectLegendPayload);
-}
Index: de_modules/recharts/lib/context/legendPortalContext.js
===================================================================
--- node_modules/recharts/lib/context/legendPortalContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useLegendPortal = exports.LegendPortalContext = void 0;
-var _react = require("react");
-var LegendPortalContext = exports.LegendPortalContext = /*#__PURE__*/(0, _react.createContext)(null);
-var useLegendPortal = () => (0, _react.useContext)(LegendPortalContext);
-exports.useLegendPortal = useLegendPortal;
Index: de_modules/recharts/lib/context/tooltipContext.js
===================================================================
--- node_modules/recharts/lib/context/tooltipContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useMouseLeaveItemDispatch = exports.useMouseEnterItemDispatch = exports.useMouseClickItemDispatch = void 0;
-var _hooks = require("../state/hooks");
-var _tooltipSlice = require("../state/tooltipSlice");
-var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey, graphicalItemId) => {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  return (data, index) => event => {
-    onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);
-    dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-      activeIndex: String(index),
-      activeDataKey: dataKey,
-      activeCoordinate: data.tooltipPosition,
-      activeGraphicalItemId: graphicalItemId
-    }));
-  };
-};
-exports.useMouseEnterItemDispatch = useMouseEnterItemDispatch;
-var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  return (data, index) => event => {
-    onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);
-    dispatch((0, _tooltipSlice.mouseLeaveItem)());
-  };
-};
-exports.useMouseLeaveItemDispatch = useMouseLeaveItemDispatch;
-var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey, graphicalItemId) => {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  return (data, index) => event => {
-    onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);
-    dispatch((0, _tooltipSlice.setActiveClickItemIndex)({
-      activeIndex: String(index),
-      activeDataKey: dataKey,
-      activeCoordinate: data.tooltipPosition,
-      activeGraphicalItemId: graphicalItemId
-    }));
-  };
-};
-exports.useMouseClickItemDispatch = useMouseClickItemDispatch;
Index: de_modules/recharts/lib/context/tooltipPortalContext.js
===================================================================
--- node_modules/recharts/lib/context/tooltipPortalContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useTooltipPortal = exports.TooltipPortalContext = void 0;
-var _react = require("react");
-var TooltipPortalContext = exports.TooltipPortalContext = /*#__PURE__*/(0, _react.createContext)(null);
-var useTooltipPortal = () => (0, _react.useContext)(TooltipPortalContext);
-exports.useTooltipPortal = useTooltipPortal;
Index: de_modules/recharts/lib/context/useTooltipAxis.js
===================================================================
--- node_modules/recharts/lib/context/useTooltipAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useTooltipAxisBandSize = exports.useTooltipAxis = void 0;
-var _hooks = require("../state/hooks");
-var _ChartUtils = require("../util/ChartUtils");
-var _axisSelectors = require("../state/selectors/axisSelectors");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var useTooltipAxis = () => (0, _hooks.useAppSelector)(_axisSelectors.selectTooltipAxis);
-exports.useTooltipAxis = useTooltipAxis;
-var useTooltipAxisBandSize = () => {
-  var tooltipAxis = useTooltipAxis();
-  var tooltipTicks = (0, _hooks.useAppSelector)(_tooltipSelectors.selectTooltipAxisTicks);
-  var tooltipAxisScale = (0, _hooks.useAppSelector)(_tooltipSelectors.selectTooltipAxisScale);
-  if (!tooltipAxis || !tooltipAxisScale) {
-    return (0, _ChartUtils.getBandSizeOfAxis)(undefined, tooltipTicks);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(_objectSpread(_objectSpread({}, tooltipAxis), {}, {
-    scale: tooltipAxisScale
-  }), tooltipTicks);
-};
-exports.useTooltipAxisBandSize = useTooltipAxisBandSize;
Index: de_modules/recharts/lib/hooks.js
===================================================================
--- node_modules/recharts/lib/hooks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,190 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useYAxisDomain = exports.useYAxis = exports.useXAxisDomain = exports.useXAxis = exports.usePlotArea = exports.useOffset = exports.useIsTooltipActive = exports.useActiveTooltipLabel = exports.useActiveTooltipDataPoints = exports.useActiveTooltipCoordinate = void 0;
-var _cartesianAxisSlice = require("./state/cartesianAxisSlice");
-var _axisSelectors = require("./state/selectors/axisSelectors");
-var _hooks = require("./state/hooks");
-var _PanoramaContext = require("./context/PanoramaContext");
-var _tooltipSelectors = require("./state/selectors/tooltipSelectors");
-var _selectChartOffset = require("./state/selectors/selectChartOffset");
-var _selectPlotArea = require("./state/selectors/selectPlotArea");
-var useXAxis = xAxisId => {
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama));
-};
-exports.useXAxis = useXAxis;
-var useYAxis = yAxisId => {
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama));
-};
-
-/**
- * Returns the active tooltip label. The label is one of the values from the chart data,
- * and is used to display in the tooltip content.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context
- *
- * @returns ActiveLabel
- */
-exports.useYAxis = useYAxis;
-var useActiveTooltipLabel = () => {
-  return (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveLabel);
-};
-
-/**
- * Returns the offset of the chart in pixels.
- *
- * Offset defines the blank space between the chart and the plot area.
- * This blank space is occupied by supporting elements like axes, legends, and brushes.
- *
- * The offset includes:
- *
- * - Margins
- * - Width and height of the axes
- * - Width and height of the legend
- * - Brush height
- *
- * If you are interested in the margin alone, use {@link useMargin} instead.
- *
- * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.
- *
- * It is also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the numbers will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Offset of the chart in pixels, or undefined if used outside a chart context.
- */
-exports.useActiveTooltipLabel = useActiveTooltipLabel;
-var useOffset = () => {
-  return (0, _hooks.useAppSelector)(_selectChartOffset.selectChartOffset);
-};
-
-/**
- * Plot area is the area where the actual chart data is rendered.
- * This means: bars, lines, scatter points, etc.
- *
- * The plot area is calculated based on the chart dimensions and the offset.
- *
- * Plot area `width` and `height` are the dimensions in pixels;
- * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.
- *
- * They are also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the plot area dimensions will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.
- */
-exports.useOffset = useOffset;
-var usePlotArea = () => {
-  return (0, _hooks.useAppSelector)(_selectPlotArea.selectPlotArea);
-};
-
-/**
- * Returns the currently active data points being displayed in the Tooltip.
- * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.
- *
- * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.
- * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.
- *
- * Data point is whatever you pass as an input to the chart using the `data={}` prop.
- *
- * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)
- * and tooltip with `shared={true}` will display all items at the same time.
- *
- * Returns undefined when used outside a chart context.
- *
- * @returns Data points that are currently visible in a Tooltip
- */
-exports.usePlotArea = usePlotArea;
-var useActiveTooltipDataPoints = () => {
-  return (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipDataPoints);
-};
-
-/**
- * Returns the calculated domain of an X-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the XAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,
- * and the full domain will be returned if the hook is used inside a Brush context.
- *
- * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.
- * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-exports.useActiveTooltipDataPoints = useActiveTooltipDataPoints;
-var useXAxisDomain = exports.useXAxisDomain = function useXAxisDomain() {
-  var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _cartesianAxisSlice.defaultAxisId;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisDomain)(state, 'xAxis', xAxisId, isPanorama));
-};
-
-/**
- * Returns the calculated domain of a Y-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the YAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * Does not interact with Brushes, as Y-axes do not support brushing.
- *
- * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.
- * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-var useYAxisDomain = exports.useYAxisDomain = function useYAxisDomain() {
-  var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _cartesianAxisSlice.defaultAxisId;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  return (0, _hooks.useAppSelector)(state => (0, _axisSelectors.selectAxisDomain)(state, 'yAxis', yAxisId, isPanorama));
-};
-
-/**
- * Returns true if the {@link Tooltip} is currently active (visible).
- *
- * Returns false if the Tooltip is not active or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {boolean} True if the Tooltip is active, false otherwise.
- * @since 3.7
- */
-var useIsTooltipActive = () => {
-  var _useAppSelector;
-  return (_useAppSelector = (0, _hooks.useAppSelector)(_tooltipSelectors.selectIsTooltipActive)) !== null && _useAppSelector !== void 0 ? _useAppSelector : false;
-};
-
-/**
- * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.
- * @since 3.7
- */
-exports.useIsTooltipActive = useIsTooltipActive;
-var useActiveTooltipCoordinate = () => {
-  var coordinate = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipCoordinate);
-  if (coordinate == null) {
-    return undefined;
-  }
-  return {
-    x: coordinate.x,
-    y: coordinate.y
-  };
-};
-exports.useActiveTooltipCoordinate = useActiveTooltipCoordinate;
Index: de_modules/recharts/lib/index.js
===================================================================
--- node_modules/recharts/lib/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,479 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "Area", {
-  enumerable: true,
-  get: function get() {
-    return _Area.Area;
-  }
-});
-Object.defineProperty(exports, "AreaChart", {
-  enumerable: true,
-  get: function get() {
-    return _AreaChart.AreaChart;
-  }
-});
-Object.defineProperty(exports, "Bar", {
-  enumerable: true,
-  get: function get() {
-    return _Bar.Bar;
-  }
-});
-Object.defineProperty(exports, "BarChart", {
-  enumerable: true,
-  get: function get() {
-    return _BarChart.BarChart;
-  }
-});
-Object.defineProperty(exports, "BarStack", {
-  enumerable: true,
-  get: function get() {
-    return _BarStack.BarStack;
-  }
-});
-Object.defineProperty(exports, "Brush", {
-  enumerable: true,
-  get: function get() {
-    return _Brush.Brush;
-  }
-});
-Object.defineProperty(exports, "CartesianAxis", {
-  enumerable: true,
-  get: function get() {
-    return _CartesianAxis.CartesianAxis;
-  }
-});
-Object.defineProperty(exports, "CartesianGrid", {
-  enumerable: true,
-  get: function get() {
-    return _CartesianGrid.CartesianGrid;
-  }
-});
-Object.defineProperty(exports, "Cell", {
-  enumerable: true,
-  get: function get() {
-    return _Cell.Cell;
-  }
-});
-Object.defineProperty(exports, "ComposedChart", {
-  enumerable: true,
-  get: function get() {
-    return _ComposedChart.ComposedChart;
-  }
-});
-Object.defineProperty(exports, "Cross", {
-  enumerable: true,
-  get: function get() {
-    return _Cross.Cross;
-  }
-});
-Object.defineProperty(exports, "Curve", {
-  enumerable: true,
-  get: function get() {
-    return _Curve.Curve;
-  }
-});
-Object.defineProperty(exports, "Customized", {
-  enumerable: true,
-  get: function get() {
-    return _Customized.Customized;
-  }
-});
-Object.defineProperty(exports, "DefaultLegendContent", {
-  enumerable: true,
-  get: function get() {
-    return _DefaultLegendContent.DefaultLegendContent;
-  }
-});
-Object.defineProperty(exports, "DefaultTooltipContent", {
-  enumerable: true,
-  get: function get() {
-    return _DefaultTooltipContent.DefaultTooltipContent;
-  }
-});
-Object.defineProperty(exports, "DefaultZIndexes", {
-  enumerable: true,
-  get: function get() {
-    return _DefaultZIndexes.DefaultZIndexes;
-  }
-});
-Object.defineProperty(exports, "Dot", {
-  enumerable: true,
-  get: function get() {
-    return _Dot.Dot;
-  }
-});
-Object.defineProperty(exports, "ErrorBar", {
-  enumerable: true,
-  get: function get() {
-    return _ErrorBar.ErrorBar;
-  }
-});
-Object.defineProperty(exports, "Funnel", {
-  enumerable: true,
-  get: function get() {
-    return _Funnel.Funnel;
-  }
-});
-Object.defineProperty(exports, "FunnelChart", {
-  enumerable: true,
-  get: function get() {
-    return _FunnelChart.FunnelChart;
-  }
-});
-Object.defineProperty(exports, "Global", {
-  enumerable: true,
-  get: function get() {
-    return _Global.Global;
-  }
-});
-Object.defineProperty(exports, "Label", {
-  enumerable: true,
-  get: function get() {
-    return _Label.Label;
-  }
-});
-Object.defineProperty(exports, "LabelList", {
-  enumerable: true,
-  get: function get() {
-    return _LabelList.LabelList;
-  }
-});
-Object.defineProperty(exports, "Layer", {
-  enumerable: true,
-  get: function get() {
-    return _Layer.Layer;
-  }
-});
-Object.defineProperty(exports, "Legend", {
-  enumerable: true,
-  get: function get() {
-    return _Legend.Legend;
-  }
-});
-Object.defineProperty(exports, "Line", {
-  enumerable: true,
-  get: function get() {
-    return _Line.Line;
-  }
-});
-Object.defineProperty(exports, "LineChart", {
-  enumerable: true,
-  get: function get() {
-    return _LineChart.LineChart;
-  }
-});
-Object.defineProperty(exports, "Pie", {
-  enumerable: true,
-  get: function get() {
-    return _Pie.Pie;
-  }
-});
-Object.defineProperty(exports, "PieChart", {
-  enumerable: true,
-  get: function get() {
-    return _PieChart.PieChart;
-  }
-});
-Object.defineProperty(exports, "PolarAngleAxis", {
-  enumerable: true,
-  get: function get() {
-    return _PolarAngleAxis.PolarAngleAxis;
-  }
-});
-Object.defineProperty(exports, "PolarGrid", {
-  enumerable: true,
-  get: function get() {
-    return _PolarGrid.PolarGrid;
-  }
-});
-Object.defineProperty(exports, "PolarRadiusAxis", {
-  enumerable: true,
-  get: function get() {
-    return _PolarRadiusAxis.PolarRadiusAxis;
-  }
-});
-Object.defineProperty(exports, "Polygon", {
-  enumerable: true,
-  get: function get() {
-    return _Polygon.Polygon;
-  }
-});
-Object.defineProperty(exports, "Radar", {
-  enumerable: true,
-  get: function get() {
-    return _Radar.Radar;
-  }
-});
-Object.defineProperty(exports, "RadarChart", {
-  enumerable: true,
-  get: function get() {
-    return _RadarChart.RadarChart;
-  }
-});
-Object.defineProperty(exports, "RadialBar", {
-  enumerable: true,
-  get: function get() {
-    return _RadialBar.RadialBar;
-  }
-});
-Object.defineProperty(exports, "RadialBarChart", {
-  enumerable: true,
-  get: function get() {
-    return _RadialBarChart.RadialBarChart;
-  }
-});
-Object.defineProperty(exports, "Rectangle", {
-  enumerable: true,
-  get: function get() {
-    return _Rectangle.Rectangle;
-  }
-});
-Object.defineProperty(exports, "ReferenceArea", {
-  enumerable: true,
-  get: function get() {
-    return _ReferenceArea.ReferenceArea;
-  }
-});
-Object.defineProperty(exports, "ReferenceDot", {
-  enumerable: true,
-  get: function get() {
-    return _ReferenceDot.ReferenceDot;
-  }
-});
-Object.defineProperty(exports, "ReferenceLine", {
-  enumerable: true,
-  get: function get() {
-    return _ReferenceLine.ReferenceLine;
-  }
-});
-Object.defineProperty(exports, "ResponsiveContainer", {
-  enumerable: true,
-  get: function get() {
-    return _ResponsiveContainer.ResponsiveContainer;
-  }
-});
-Object.defineProperty(exports, "Sankey", {
-  enumerable: true,
-  get: function get() {
-    return _Sankey.Sankey;
-  }
-});
-Object.defineProperty(exports, "Scatter", {
-  enumerable: true,
-  get: function get() {
-    return _Scatter.Scatter;
-  }
-});
-Object.defineProperty(exports, "ScatterChart", {
-  enumerable: true,
-  get: function get() {
-    return _ScatterChart.ScatterChart;
-  }
-});
-Object.defineProperty(exports, "Sector", {
-  enumerable: true,
-  get: function get() {
-    return _Sector.Sector;
-  }
-});
-Object.defineProperty(exports, "SunburstChart", {
-  enumerable: true,
-  get: function get() {
-    return _SunburstChart.SunburstChart;
-  }
-});
-Object.defineProperty(exports, "Surface", {
-  enumerable: true,
-  get: function get() {
-    return _Surface.Surface;
-  }
-});
-Object.defineProperty(exports, "Symbols", {
-  enumerable: true,
-  get: function get() {
-    return _Symbols.Symbols;
-  }
-});
-Object.defineProperty(exports, "Text", {
-  enumerable: true,
-  get: function get() {
-    return _Text.Text;
-  }
-});
-Object.defineProperty(exports, "Tooltip", {
-  enumerable: true,
-  get: function get() {
-    return _Tooltip.Tooltip;
-  }
-});
-Object.defineProperty(exports, "Trapezoid", {
-  enumerable: true,
-  get: function get() {
-    return _Trapezoid.Trapezoid;
-  }
-});
-Object.defineProperty(exports, "Treemap", {
-  enumerable: true,
-  get: function get() {
-    return _Treemap.Treemap;
-  }
-});
-Object.defineProperty(exports, "XAxis", {
-  enumerable: true,
-  get: function get() {
-    return _XAxis.XAxis;
-  }
-});
-Object.defineProperty(exports, "YAxis", {
-  enumerable: true,
-  get: function get() {
-    return _YAxis.YAxis;
-  }
-});
-Object.defineProperty(exports, "ZAxis", {
-  enumerable: true,
-  get: function get() {
-    return _ZAxis.ZAxis;
-  }
-});
-Object.defineProperty(exports, "ZIndexLayer", {
-  enumerable: true,
-  get: function get() {
-    return _ZIndexLayer.ZIndexLayer;
-  }
-});
-Object.defineProperty(exports, "getNiceTickValues", {
-  enumerable: true,
-  get: function get() {
-    return _getNiceTickValues.getNiceTickValues;
-  }
-});
-Object.defineProperty(exports, "useActiveTooltipCoordinate", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useActiveTooltipCoordinate;
-  }
-});
-Object.defineProperty(exports, "useActiveTooltipDataPoints", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useActiveTooltipDataPoints;
-  }
-});
-Object.defineProperty(exports, "useActiveTooltipLabel", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useActiveTooltipLabel;
-  }
-});
-Object.defineProperty(exports, "useChartHeight", {
-  enumerable: true,
-  get: function get() {
-    return _chartLayoutContext.useChartHeight;
-  }
-});
-Object.defineProperty(exports, "useChartWidth", {
-  enumerable: true,
-  get: function get() {
-    return _chartLayoutContext.useChartWidth;
-  }
-});
-Object.defineProperty(exports, "useIsTooltipActive", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useIsTooltipActive;
-  }
-});
-Object.defineProperty(exports, "useMargin", {
-  enumerable: true,
-  get: function get() {
-    return _chartLayoutContext.useMargin;
-  }
-});
-Object.defineProperty(exports, "useOffset", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useOffset;
-  }
-});
-Object.defineProperty(exports, "usePlotArea", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.usePlotArea;
-  }
-});
-Object.defineProperty(exports, "useXAxisDomain", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useXAxisDomain;
-  }
-});
-Object.defineProperty(exports, "useYAxisDomain", {
-  enumerable: true,
-  get: function get() {
-    return _hooks.useYAxisDomain;
-  }
-});
-var _Surface = require("./container/Surface");
-var _Layer = require("./container/Layer");
-var _Legend = require("./component/Legend");
-var _DefaultLegendContent = require("./component/DefaultLegendContent");
-var _Tooltip = require("./component/Tooltip");
-var _DefaultTooltipContent = require("./component/DefaultTooltipContent");
-var _ResponsiveContainer = require("./component/ResponsiveContainer");
-var _Cell = require("./component/Cell");
-var _Text = require("./component/Text");
-var _Label = require("./component/Label");
-var _LabelList = require("./component/LabelList");
-var _Customized = require("./component/Customized");
-var _Sector = require("./shape/Sector");
-var _Curve = require("./shape/Curve");
-var _Rectangle = require("./shape/Rectangle");
-var _Polygon = require("./shape/Polygon");
-var _Dot = require("./shape/Dot");
-var _Cross = require("./shape/Cross");
-var _Symbols = require("./shape/Symbols");
-var _PolarGrid = require("./polar/PolarGrid");
-var _PolarRadiusAxis = require("./polar/PolarRadiusAxis");
-var _PolarAngleAxis = require("./polar/PolarAngleAxis");
-var _Pie = require("./polar/Pie");
-var _Radar = require("./polar/Radar");
-var _RadialBar = require("./polar/RadialBar");
-var _Brush = require("./cartesian/Brush");
-var _ReferenceLine = require("./cartesian/ReferenceLine");
-var _ReferenceDot = require("./cartesian/ReferenceDot");
-var _ReferenceArea = require("./cartesian/ReferenceArea");
-var _CartesianAxis = require("./cartesian/CartesianAxis");
-var _CartesianGrid = require("./cartesian/CartesianGrid");
-var _Line = require("./cartesian/Line");
-var _Area = require("./cartesian/Area");
-var _Bar = require("./cartesian/Bar");
-var _BarStack = require("./cartesian/BarStack");
-var _Scatter = require("./cartesian/Scatter");
-var _XAxis = require("./cartesian/XAxis");
-var _YAxis = require("./cartesian/YAxis");
-var _ZAxis = require("./cartesian/ZAxis");
-var _ErrorBar = require("./cartesian/ErrorBar");
-var _LineChart = require("./chart/LineChart");
-var _BarChart = require("./chart/BarChart");
-var _PieChart = require("./chart/PieChart");
-var _Treemap = require("./chart/Treemap");
-var _Sankey = require("./chart/Sankey");
-var _RadarChart = require("./chart/RadarChart");
-var _ScatterChart = require("./chart/ScatterChart");
-var _AreaChart = require("./chart/AreaChart");
-var _RadialBarChart = require("./chart/RadialBarChart");
-var _ComposedChart = require("./chart/ComposedChart");
-var _SunburstChart = require("./chart/SunburstChart");
-var _Funnel = require("./cartesian/Funnel");
-var _FunnelChart = require("./chart/FunnelChart");
-var _Trapezoid = require("./shape/Trapezoid");
-var _Global = require("./util/Global");
-var _ZIndexLayer = require("./zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("./zIndex/DefaultZIndexes");
-var _getNiceTickValues = require("./util/scale/getNiceTickValues");
-var _hooks = require("./hooks");
-var _chartLayoutContext = require("./context/chartLayoutContext");
Index: de_modules/recharts/lib/polar/Pie.js
===================================================================
--- node_modules/recharts/lib/polar/Pie.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,641 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Pie = Pie;
-exports.computePieSectors = computePieSectors;
-exports.defaultPieProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _clsx = require("clsx");
-var _pieSelectors = require("../state/selectors/pieSelectors");
-var _hooks = require("../state/hooks");
-var _Layer = require("../container/Layer");
-var _Curve = require("../shape/Curve");
-var _Text = require("../component/Text");
-var _Cell = require("../component/Cell");
-var _ReactUtils = require("../util/ReactUtils");
-var _PolarUtils = require("../util/PolarUtils");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _types = require("../util/types");
-var _ActiveShapeUtils = require("../util/ActiveShapeUtils");
-var _tooltipContext = require("../context/tooltipContext");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _Constants = require("../util/Constants");
-var _useAnimationId = require("../util/useAnimationId");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _LabelList = require("../component/LabelList");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _getClassNameFromUnknown = require("../util/getClassNameFromUnknown");
-var _excluded = ["key"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["id"],
-  _excluded4 = ["id"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-/**
- * The `label` prop in Pie accepts a variety of alternatives.
- */
-
-/**
- * We spread the data object into the sector data item,
- * so we can't really know what is going to be inside.
- *
- * This type represents our best effort, but it all depends on the input data
- * and what is inside of it.
- *
- * https://github.com/recharts/recharts/issues/6380
- * https://github.com/recharts/recharts/discussions/6375
- */
-
-/**
- * Internal props, combination of external props + defaultProps + private Recharts state
- */
-
-function SetPiePayloadLegend(props) {
-  var cells = (0, _react.useMemo)(() => (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell), [props.children]);
-  var legendPayload = (0, _hooks.useAppSelector)(state => (0, _pieSelectors.selectPieLegend)(state, props.id, cells));
-  if (legendPayload == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(_SetLegendPayload.SetPolarLegendPayload, {
-    legendPayload: legendPayload
-  });
-}
-var SetPieTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    nameKey,
-    sectors,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: sectors.map(p => p.tooltipPayload),
-    getPosition: index => {
-      var _sectors$Number;
-      return (_sectors$Number = sectors[Number(index)]) === null || _sectors$Number === void 0 ? void 0 : _sectors$Number.tooltipPosition;
-    },
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      dataKey,
-      nameKey,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '',
-      // why doesn't Pie support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-var getTextAnchor = (x, cx) => {
-  if (x > cx) {
-    return 'start';
-  }
-  if (x < cx) {
-    return 'end';
-  }
-  return 'middle';
-};
-var getOuterRadius = (dataPoint, outerRadius, maxPieRadius) => {
-  if (typeof outerRadius === 'function') {
-    return (0, _DataUtils.getPercentValue)(outerRadius(dataPoint), maxPieRadius, maxPieRadius * 0.8);
-  }
-  return (0, _DataUtils.getPercentValue)(outerRadius, maxPieRadius, maxPieRadius * 0.8);
-};
-var parseCoordinateOfPie = (pieSettings, offset, dataPoint) => {
-  var {
-    top,
-    left,
-    width,
-    height
-  } = offset;
-  var maxPieRadius = (0, _PolarUtils.getMaxRadius)(width, height);
-  var cx = left + (0, _DataUtils.getPercentValue)(pieSettings.cx, width, width / 2);
-  var cy = top + (0, _DataUtils.getPercentValue)(pieSettings.cy, height, height / 2);
-  var innerRadius = (0, _DataUtils.getPercentValue)(pieSettings.innerRadius, maxPieRadius, 0);
-  var outerRadius = getOuterRadius(dataPoint, pieSettings.outerRadius, maxPieRadius);
-  var maxRadius = pieSettings.maxRadius || Math.sqrt(width * width + height * height) / 2;
-  return {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    maxRadius
-  };
-};
-var parseDeltaAngle = (startAngle, endAngle) => {
-  var sign = (0, _DataUtils.mathSign)(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
-  return sign * deltaAngle;
-};
-var renderLabelLineItem = (option, props) => {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error we can't know if the type of props matches the element
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  if (typeof option === 'function') {
-    return option(props);
-  }
-  var className = (0, _clsx.clsx)('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : '');
-  // React doesn't like it when we spread a key property onto an element
-  var {
-      key
-    } = props,
-    otherProps = _objectWithoutProperties(props, _excluded);
-  return /*#__PURE__*/React.createElement(_Curve.Curve, _extends({}, otherProps, {
-    type: "linear",
-    className: className
-  }));
-};
-var renderLabelItem = (option, props, value) => {
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    // @ts-expect-error element cloning is not typed
-    return /*#__PURE__*/React.cloneElement(option, props);
-  }
-  var label = value;
-  if (typeof option === 'function') {
-    label = option(props);
-    if (/*#__PURE__*/React.isValidElement(label)) {
-      return label;
-    }
-  }
-  var className = (0, _clsx.clsx)('recharts-pie-label-text', (0, _getClassNameFromUnknown.getClassNameFromUnknown)(option));
-  return /*#__PURE__*/React.createElement(_Text.Text, _extends({}, props, {
-    alignmentBaseline: "middle",
-    className: className
-  }), label);
-};
-function PieLabels(_ref2) {
-  var {
-    sectors,
-    props,
-    showLabels
-  } = _ref2;
-  var {
-    label,
-    labelLine,
-    dataKey
-  } = props;
-  if (!showLabels || !label || !sectors) {
-    return null;
-  }
-  var pieProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props);
-  var customLabelProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(label);
-  var customLabelLineProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(labelLine);
-  var offsetRadius = typeof label === 'object' && 'offsetRadius' in label && typeof label.offsetRadius === 'number' && label.offsetRadius || 20;
-  var labels = sectors.map((entry, i) => {
-    var midAngle = (entry.startAngle + entry.endAngle) / 2;
-    var endPoint = (0, _PolarUtils.polarToCartesian)(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);
-    var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {
-      // @ts-expect-error customLabelProps is contributing unknown props
-      stroke: 'none'
-    }, customLabelProps), {}, {
-      index: i,
-      textAnchor: getTextAnchor(endPoint.x, entry.cx)
-    }, endPoint);
-    var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {
-      // @ts-expect-error customLabelLineProps is contributing unknown props
-      fill: 'none',
-      // @ts-expect-error customLabelLineProps is contributing unknown props
-      stroke: entry.fill
-    }, customLabelLineProps), {}, {
-      index: i,
-      points: [(0, _PolarUtils.polarToCartesian)(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],
-      key: 'line'
-    });
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: _DefaultZIndexes.DefaultZIndexes.label,
-      key: "label-".concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(entry.midAngle, "-").concat(i)
-    }, /*#__PURE__*/React.createElement(_Layer.Layer, null, labelLine && renderLabelLineItem(labelLine, lineProps), renderLabelItem(label, labelProps, (0, _ChartUtils.getValueByDataKey)(entry, dataKey))));
-  });
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-pie-labels"
-  }, labels);
-}
-function PieLabelList(_ref3) {
-  var {
-    sectors,
-    props,
-    showLabels
-  } = _ref3;
-  var {
-    label
-  } = props;
-  if (typeof label === 'object' && label != null && 'position' in label) {
-    return /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-      label: label
-    });
-  }
-  return /*#__PURE__*/React.createElement(PieLabels, {
-    sectors: sectors,
-    props: props,
-    showLabels: showLabels
-  });
-}
-function PieSectors(props) {
-  var {
-    sectors,
-    activeShape,
-    inactiveShape: inactiveShapeProp,
-    allOtherPieProps,
-    shape,
-    id
-  } = props;
-  var activeIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var activeDataKey = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipDataKey);
-  var activeGraphicalItemId = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipGraphicalItemId);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherPieProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherPieProps, _excluded2);
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, allOtherPieProps.dataKey, id);
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, allOtherPieProps.dataKey, id);
-  if (sectors == null || sectors.length === 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(React.Fragment, null, sectors.map((entry, i) => {
-    if ((entry === null || entry === void 0 ? void 0 : entry.startAngle) === 0 && (entry === null || entry === void 0 ? void 0 : entry.endAngle) === 0 && sectors.length !== 1) return null;
-
-    // For Pie charts, when multiple Pies share the same dataKey, we need to ensure only the hovered Pie's sector is active.
-    // We do this by checking if the active graphical item ID matches this Pie's ID.
-    var graphicalItemMatches = activeGraphicalItemId == null || activeGraphicalItemId === id;
-    var isActive = String(i) === activeIndex && (activeDataKey == null || allOtherPieProps.dataKey === activeDataKey) && graphicalItemMatches;
-    var inactiveShape = activeIndex ? inactiveShapeProp : null;
-    var sectorOptions = activeShape && isActive ? activeShape : inactiveShape;
-    var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {
-      stroke: entry.stroke,
-      tabIndex: -1,
-      [_Constants.DATA_ITEM_INDEX_ATTRIBUTE_NAME]: i,
-      [_Constants.DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: id
-    });
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      key: "sector-".concat(entry === null || entry === void 0 ? void 0 : entry.startAngle, "-").concat(entry === null || entry === void 0 ? void 0 : entry.endAngle, "-").concat(entry.midAngle, "-").concat(i),
-      tabIndex: -1,
-      className: "recharts-pie-sector"
-    }, (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i), {
-      // @ts-expect-error the types need a bit of attention
-      onMouseEnter: onMouseEnterFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onMouseLeave: onMouseLeaveFromContext(entry, i)
-      // @ts-expect-error the types need a bit of attention
-      ,
-      onClick: onClickFromContext(entry, i)
-    }), /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-      option: shape !== null && shape !== void 0 ? shape : sectorOptions,
-      index: i,
-      shapeType: "sector",
-      isActive: isActive
-    }, sectorProps)));
-  }));
-}
-function computePieSectors(_ref4) {
-  var _pieSettings$paddingA;
-  var {
-    pieSettings,
-    displayedData,
-    cells,
-    offset
-  } = _ref4;
-  var {
-    cornerRadius,
-    startAngle,
-    endAngle,
-    dataKey,
-    nameKey,
-    tooltipType
-  } = pieSettings;
-  var minAngle = Math.abs(pieSettings.minAngle);
-  var deltaAngle = parseDeltaAngle(startAngle, endAngle);
-  var absDeltaAngle = Math.abs(deltaAngle);
-  var paddingAngle = displayedData.length <= 1 ? 0 : (_pieSettings$paddingA = pieSettings.paddingAngle) !== null && _pieSettings$paddingA !== void 0 ? _pieSettings$paddingA : 0;
-  var notZeroItemCount = displayedData.filter(entry => (0, _ChartUtils.getValueByDataKey)(entry, dataKey, 0) !== 0).length;
-  var totalPaddingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;
-  var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPaddingAngle;
-  var sum = displayedData.reduce((result, entry) => {
-    var val = (0, _ChartUtils.getValueByDataKey)(entry, dataKey, 0);
-    return result + ((0, _DataUtils.isNumber)(val) ? val : 0);
-  }, 0);
-  var sectors;
-  if (sum > 0) {
-    var prev;
-    sectors = displayedData.map((entry, i) => {
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      var val = (0, _ChartUtils.getValueByDataKey)(entry, dataKey, 0);
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      var name = (0, _ChartUtils.getValueByDataKey)(entry, nameKey, i);
-      var coordinate = parseCoordinateOfPie(pieSettings, offset, entry);
-      var percent = ((0, _DataUtils.isNumber)(val) ? val : 0) / sum;
-      var tempStartAngle;
-
-      // @ts-expect-error can't spread unknown
-      var entryWithCellInfo = _objectSpread(_objectSpread({}, entry), cells && cells[i] && cells[i].props);
-      if (i) {
-        tempStartAngle = prev.endAngle + (0, _DataUtils.mathSign)(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);
-      } else {
-        tempStartAngle = startAngle;
-      }
-      var tempEndAngle = tempStartAngle + (0, _DataUtils.mathSign)(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);
-      var midAngle = (tempStartAngle + tempEndAngle) / 2;
-      var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;
-      var tooltipPayload = [{
-        name,
-        value: val,
-        payload: entryWithCellInfo,
-        dataKey,
-        type: tooltipType,
-        graphicalItemId: pieSettings.id
-      }];
-      var tooltipPosition = (0, _PolarUtils.polarToCartesian)(coordinate.cx, coordinate.cy, middleRadius, midAngle);
-      prev = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieSettings.presentationProps), {}, {
-        percent,
-        cornerRadius: typeof cornerRadius === 'string' ? parseFloat(cornerRadius) : cornerRadius,
-        name,
-        tooltipPayload,
-        midAngle,
-        middleRadius,
-        tooltipPosition
-      }, entryWithCellInfo), coordinate), {}, {
-        value: val,
-        dataKey,
-        startAngle: tempStartAngle,
-        endAngle: tempEndAngle,
-        payload: entryWithCellInfo,
-        paddingAngle: (0, _DataUtils.mathSign)(deltaAngle) * paddingAngle
-      });
-      return prev;
-    });
-  }
-  return sectors;
-}
-function PieLabelListProvider(_ref5) {
-  var {
-    showLabels,
-    sectors,
-    children
-  } = _ref5;
-  var labelListEntries = (0, _react.useMemo)(() => {
-    if (!showLabels || !sectors) {
-      return [];
-    }
-    return sectors.map(entry => ({
-      value: entry.value,
-      payload: entry.payload,
-      clockWise: false,
-      parentViewBox: undefined,
-      viewBox: {
-        cx: entry.cx,
-        cy: entry.cy,
-        innerRadius: entry.innerRadius,
-        outerRadius: entry.outerRadius,
-        startAngle: entry.startAngle,
-        endAngle: entry.endAngle,
-        clockWise: false
-      },
-      fill: entry.fill
-    }));
-  }, [sectors, showLabels]);
-  return /*#__PURE__*/React.createElement(_LabelList.PolarLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function SectorsWithAnimation(_ref6) {
-  var {
-    props,
-    previousSectorsRef,
-    id
-  } = _ref6;
-  var {
-    sectors,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    activeShape,
-    inactiveShape,
-    onAnimationStart,
-    onAnimationEnd
-  } = props;
-  var animationId = (0, _useAnimationId.useAnimationId)(props, 'recharts-pie-');
-  var prevSectors = previousSectorsRef.current;
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(PieLabelListProvider, {
-    showLabels: !isAnimating,
-    sectors: sectors
-  }, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd,
-    key: animationId
-  }, t => {
-    var _first$startAngle;
-    var stepData = [];
-    var first = sectors && sectors[0];
-    var curAngle = (_first$startAngle = first === null || first === void 0 ? void 0 : first.startAngle) !== null && _first$startAngle !== void 0 ? _first$startAngle : 0;
-    sectors === null || sectors === void 0 || sectors.forEach((entry, index) => {
-      var prev = prevSectors && prevSectors[index];
-      var paddingAngle = index > 0 ? (0, _get.default)(entry, 'paddingAngle', 0) : 0;
-      if (prev) {
-        var angle = (0, _DataUtils.interpolate)(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle, t);
-        var latest = _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: curAngle + paddingAngle,
-          endAngle: curAngle + angle + paddingAngle
-        });
-        stepData.push(latest);
-        curAngle = latest.endAngle;
-      } else {
-        var {
-          endAngle,
-          startAngle
-        } = entry;
-        var deltaAngle = (0, _DataUtils.interpolate)(0, endAngle - startAngle, t);
-        var _latest = _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: curAngle + paddingAngle,
-          endAngle: curAngle + deltaAngle + paddingAngle
-        });
-        stepData.push(_latest);
-        curAngle = _latest.endAngle;
-      }
-    });
-
-    // eslint-disable-next-line no-param-reassign
-    previousSectorsRef.current = stepData;
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, /*#__PURE__*/React.createElement(PieSectors, {
-      sectors: stepData,
-      activeShape: activeShape,
-      inactiveShape: inactiveShape,
-      allOtherPieProps: props,
-      shape: props.shape,
-      id: id
-    }));
-  }), /*#__PURE__*/React.createElement(PieLabelList, {
-    showLabels: !isAnimating,
-    sectors: sectors,
-    props: props
-  }), props.children);
-}
-var defaultPieProps = exports.defaultPieProps = {
-  animationBegin: 400,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  cx: '50%',
-  cy: '50%',
-  dataKey: 'value',
-  endAngle: 360,
-  fill: '#808080',
-  hide: false,
-  innerRadius: 0,
-  isAnimationActive: 'auto',
-  label: false,
-  labelLine: true,
-  legendType: 'rect',
-  minAngle: 0,
-  nameKey: 'name',
-  outerRadius: '80%',
-  paddingAngle: 0,
-  rootTabIndex: 0,
-  startAngle: 0,
-  stroke: '#fff',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.area
-};
-function PieImpl(props) {
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded3);
-  var {
-    hide,
-    className,
-    rootTabIndex
-  } = props;
-  var cells = (0, _react.useMemo)(() => (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell), [props.children]);
-  var sectors = (0, _hooks.useAppSelector)(state => (0, _pieSelectors.selectPieSectors)(state, id, cells));
-  var previousSectorsRef = (0, _react.useRef)(null);
-  var layerClass = (0, _clsx.clsx)('recharts-pie', className);
-  if (hide || sectors == null) {
-    previousSectorsRef.current = null;
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      tabIndex: rootTabIndex,
-      className: layerClass
-    });
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(SetPieTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    nameKey: props.nameKey,
-    sectors: sectors,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(_Layer.Layer, {
-    tabIndex: rootTabIndex,
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(SectorsWithAnimation, {
-    props: _objectSpread(_objectSpread({}, propsWithoutId), {}, {
-      sectors
-    }),
-    previousSectorsRef: previousSectorsRef,
-    id: id
-  })));
-}
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-function Pie(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultPieProps);
-  var {
-      id: externalId
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded4);
-  var presentationProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(propsWithoutId);
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: externalId,
-    type: "pie"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetGraphicalItem.SetPolarGraphicalItem, {
-    type: "pie",
-    id: id,
-    data: propsWithoutId.data,
-    dataKey: propsWithoutId.dataKey,
-    hide: propsWithoutId.hide,
-    angleAxisId: 0,
-    radiusAxisId: 0,
-    name: propsWithoutId.name,
-    nameKey: propsWithoutId.nameKey,
-    tooltipType: propsWithoutId.tooltipType,
-    legendType: propsWithoutId.legendType,
-    fill: propsWithoutId.fill,
-    cx: propsWithoutId.cx,
-    cy: propsWithoutId.cy,
-    startAngle: propsWithoutId.startAngle,
-    endAngle: propsWithoutId.endAngle,
-    paddingAngle: propsWithoutId.paddingAngle,
-    minAngle: propsWithoutId.minAngle,
-    innerRadius: propsWithoutId.innerRadius,
-    outerRadius: propsWithoutId.outerRadius,
-    cornerRadius: propsWithoutId.cornerRadius,
-    presentationProps: presentationProps,
-    maxRadius: props.maxRadius
-  }), /*#__PURE__*/React.createElement(SetPiePayloadLegend, _extends({}, propsWithoutId, {
-    id: id
-  })), /*#__PURE__*/React.createElement(PieImpl, _extends({}, propsWithoutId, {
-    id: id
-  }))));
-}
-Pie.displayName = 'Pie';
Index: de_modules/recharts/lib/polar/PolarAngleAxis.js
===================================================================
--- node_modules/recharts/lib/polar/PolarAngleAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,287 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PolarAngleAxis = PolarAngleAxis;
-exports.PolarAngleAxisWrapper = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _Layer = require("../container/Layer");
-var _Dot = require("../shape/Dot");
-var _Polygon = require("../shape/Polygon");
-var _Text = require("../component/Text");
-var _types = require("../util/types");
-var _PolarUtils = require("../util/PolarUtils");
-var _polarAxisSlice = require("../state/polarAxisSlice");
-var _hooks = require("../state/hooks");
-var _polarScaleSelectors = require("../state/selectors/polarScaleSelectors");
-var _polarAxisSelectors = require("../state/selectors/polarAxisSelectors");
-var _defaultPolarAngleAxisProps = require("./defaultPolarAngleAxisProps");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _DataUtils = require("../util/DataUtils");
-var _getAxisTypeBasedOnLayout = require("../util/getAxisTypeBasedOnLayout");
-var _getClassNameFromUnknown = require("../util/getClassNameFromUnknown");
-var _excluded = ["children", "type"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var eps = 1e-5;
-var COS_45 = Math.cos((0, _PolarUtils.degreeToRadian)(45));
-var AXIS_TYPE = 'angleAxis';
-function SetAngleAxisSettings(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var layout = (0, _chartLayoutContext.usePolarChartLayout)();
-  var settings = (0, _react.useMemo)(() => {
-    var {
-        children,
-        type: typeFromProps
-      } = props,
-      rest = _objectWithoutProperties(props, _excluded);
-    var evaluatedType = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'angleAxis', typeFromProps);
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, rest), {}, {
-      type: evaluatedType
-    });
-  }, [props, layout]);
-  var synchronizedSettings = (0, _hooks.useAppSelector)(state => (0, _polarAxisSelectors.selectAngleAxis)(state, settings === null || settings === void 0 ? void 0 : settings.id));
-  var settingsAreSynchronized = settings === synchronizedSettings;
-  (0, _react.useEffect)(() => {
-    if (settings == null) {
-      return _DataUtils.noop;
-    }
-    dispatch((0, _polarAxisSlice.addAngleAxis)(settings));
-    return () => {
-      dispatch((0, _polarAxisSlice.removeAngleAxis)(settings));
-    };
-  }, [dispatch, settings]);
-  if (settingsAreSynchronized) {
-    return props.children;
-  }
-  return null;
-}
-
-/**
- * Calculate the coordinate of line endpoint
- * @param data The data if there are ticks
- * @param props axis settings
- * @return (x1, y1): The point close to text,
- *         (x2, y2): The point close to axis
- */
-var getTickLineCoord = (data, props) => {
-  var {
-    cx,
-    cy,
-    radius,
-    orientation,
-    tickSize
-  } = props;
-  var tickLineSize = tickSize || 8;
-  var p1 = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, data.coordinate);
-  var p2 = (0, _PolarUtils.polarToCartesian)(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);
-  return {
-    x1: p1.x,
-    y1: p1.y,
-    x2: p2.x,
-    y2: p2.y
-  };
-};
-
-/**
- * Get the text-anchor of each tick
- * @param data Data of ticks
- * @param orientation of the axis ticks
- * @return text-anchor
- */
-var getTickTextAnchor = (data, orientation) => {
-  var cos = Math.cos((0, _PolarUtils.degreeToRadian)(-data.coordinate));
-  if (cos > eps) {
-    return orientation === 'outer' ? 'start' : 'end';
-  }
-  if (cos < -eps) {
-    return orientation === 'outer' ? 'end' : 'start';
-  }
-  return 'middle';
-};
-
-/**
- * Get the text vertical anchor of each tick
- * @param data Data of a tick
- * @return text vertical anchor
- */
-var getTickTextVerticalAnchor = data => {
-  var cos = Math.cos((0, _PolarUtils.degreeToRadian)(-data.coordinate));
-  var sin = Math.sin((0, _PolarUtils.degreeToRadian)(-data.coordinate));
-
-  // handle top and bottom sectors: 90±45deg and 270±45deg
-  if (Math.abs(cos) <= COS_45) {
-    // sin > 0: top sector, sin < 0: bottom sector
-    return sin > 0 ? 'start' : 'end';
-  }
-  return 'middle';
-};
-var AxisLine = props => {
-  var {
-    cx,
-    cy,
-    radius,
-    axisLineType,
-    axisLine,
-    ticks
-  } = props;
-  if (!axisLine) {
-    return null;
-  }
-  var axisLineProps = _objectSpread(_objectSpread({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props)), {}, {
-    fill: 'none'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(axisLine));
-  if (axisLineType === 'circle') {
-    // @ts-expect-error wrong SVG element type
-    return /*#__PURE__*/React.createElement(_Dot.Dot, _extends({
-      className: "recharts-polar-angle-axis-line"
-    }, axisLineProps, {
-      cx: cx,
-      cy: cy,
-      r: radius
-    }));
-  }
-  var points = ticks.map(entry => (0, _PolarUtils.polarToCartesian)(cx, cy, radius, entry.coordinate));
-
-  // @ts-expect-error wrong SVG element type
-  return /*#__PURE__*/React.createElement(_Polygon.Polygon, _extends({
-    className: "recharts-polar-angle-axis-line"
-  }, axisLineProps, {
-    points: points
-  }));
-};
-var TickItemText = _ref => {
-  var {
-    tick,
-    tickProps,
-    value
-  } = _ref;
-  if (!tick) {
-    return null;
-  }
-  if (/*#__PURE__*/React.isValidElement(tick)) {
-    return /*#__PURE__*/React.cloneElement(tick, tickProps);
-  }
-  if (typeof tick === 'function') {
-    return tick(tickProps);
-  }
-  return /*#__PURE__*/React.createElement(_Text.Text, _extends({}, tickProps, {
-    className: "recharts-polar-angle-axis-tick-value"
-  }), value);
-};
-var Ticks = props => {
-  var {
-    tick,
-    tickLine,
-    tickFormatter,
-    stroke,
-    ticks
-  } = props;
-  var axisProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props);
-  var customTickProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(tick);
-  var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
-    fill: 'none'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(tickLine));
-  var items = ticks.map((entry, i) => {
-    var lineCoord = getTickLineCoord(entry, props);
-    var textAnchor = getTickTextAnchor(entry, props.orientation);
-    var verticalAnchor = getTickTextVerticalAnchor(entry);
-    var tickProps = _objectSpread(_objectSpread(_objectSpread({}, axisProps), {}, {
-      // @ts-expect-error customTickProps is contributing unknown props
-      textAnchor,
-      verticalAnchor,
-      // @ts-expect-error customTickProps is contributing unknown props
-      stroke: 'none',
-      // @ts-expect-error customTickProps is contributing unknown props
-      fill: stroke
-    }, customTickProps), {}, {
-      index: i,
-      payload: entry,
-      x: lineCoord.x2,
-      y: lineCoord.y2
-    });
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      className: (0, _clsx.clsx)('recharts-polar-angle-axis-tick', (0, _getClassNameFromUnknown.getClassNameFromUnknown)(tick)),
-      key: "tick-".concat(entry.coordinate)
-    }, (0, _types.adaptEventsOfChild)(props, entry, i)), tickLine && /*#__PURE__*/React.createElement("line", _extends({
-      className: "recharts-polar-angle-axis-tick-line"
-    }, tickLineProps, lineCoord)), /*#__PURE__*/React.createElement(TickItemText, {
-      tick: tick,
-      tickProps: tickProps,
-      value: tickFormatter ? tickFormatter(entry.value, i) : entry.value
-    }));
-  });
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-polar-angle-axis-ticks"
-  }, items);
-};
-var PolarAngleAxisWrapper = defaultsAndInputs => {
-  var {
-    angleAxisId
-  } = defaultsAndInputs;
-  var viewBox = (0, _hooks.useAppSelector)(_polarAxisSelectors.selectPolarViewBox);
-  var scale = (0, _hooks.useAppSelector)(state => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'angleAxis', angleAxisId));
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var ticks = (0, _hooks.useAppSelector)(state => (0, _polarScaleSelectors.selectPolarAngleAxisTicks)(state, 'angleAxis', angleAxisId, isPanorama));
-  if (viewBox == null || !ticks || !ticks.length || scale == null) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread(_objectSpread({}, defaultsAndInputs), {}, {
-    scale
-  }, viewBox), {}, {
-    radius: viewBox.outerRadius,
-    ticks
-  });
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-polar-angle-axis', AXIS_TYPE, props.className)
-  }, /*#__PURE__*/React.createElement(AxisLine, props), /*#__PURE__*/React.createElement(Ticks, props)));
-};
-
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-exports.PolarAngleAxisWrapper = PolarAngleAxisWrapper;
-function PolarAngleAxis(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps);
-  return /*#__PURE__*/React.createElement(SetAngleAxisSettings, {
-    id: props.angleAxisId,
-    scale: props.scale,
-    type: props.type,
-    dataKey: props.dataKey,
-    unit: undefined,
-    name: props.name,
-    allowDuplicatedCategory: false // Ignoring the prop on purpose because axis calculation behaves as if it was false and Tooltip requires it to be true.
-    ,
-    allowDataOverflow: false,
-    reversed: props.reversed,
-    includeHidden: false,
-    allowDecimals: props.allowDecimals,
-    tickCount: props.tickCount
-    // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?
-    ,
-    ticks: props.ticks,
-    tick: props.tick,
-    domain: props.domain
-  }, /*#__PURE__*/React.createElement(PolarAngleAxisWrapper, props));
-}
-PolarAngleAxis.displayName = 'PolarAngleAxis';
Index: de_modules/recharts/lib/polar/PolarGrid.js
===================================================================
--- node_modules/recharts/lib/polar/PolarGrid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,216 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultPolarGridProps = exports.PolarGrid = void 0;
-var _clsx = require("clsx");
-var React = _interopRequireWildcard(require("react"));
-var _PolarUtils = require("../util/PolarUtils");
-var _hooks = require("../state/hooks");
-var _polarGridSelectors = require("../state/selectors/polarGridSelectors");
-var _polarAxisSelectors = require("../state/selectors/polarAxisSelectors");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _resolveDefaultProps2 = require("../util/resolveDefaultProps");
-var _excluded = ["gridType", "radialLines", "angleAxisId", "radiusAxisId", "cx", "cy", "innerRadius", "outerRadius", "polarAngles", "polarRadius", "zIndex"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var getPolygonPath = (radius, cx, cy, polarAngles) => {
-  var path = '';
-  polarAngles.forEach((angle, i) => {
-    var point = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, angle);
-    if (i) {
-      path += "L ".concat(point.x, ",").concat(point.y);
-    } else {
-      path += "M ".concat(point.x, ",").concat(point.y);
-    }
-  });
-  path += 'Z';
-  return path;
-};
-
-// Draw axis of radial line
-var PolarAngles = props => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    polarAngles,
-    radialLines
-  } = props;
-  if (!polarAngles || !polarAngles.length || !radialLines) {
-    return null;
-  }
-  var polarAnglesProps = _objectSpread({
-    stroke: '#ccc'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props));
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid-angle"
-  }, polarAngles.map(entry => {
-    var start = (0, _PolarUtils.polarToCartesian)(cx, cy, innerRadius, entry);
-    var end = (0, _PolarUtils.polarToCartesian)(cx, cy, outerRadius, entry);
-    return /*#__PURE__*/React.createElement("line", _extends({
-      key: "line-".concat(entry)
-    }, polarAnglesProps, {
-      x1: start.x,
-      y1: start.y,
-      x2: end.x,
-      y2: end.y
-    }));
-  }));
-};
-
-// Draw concentric circles
-var ConcentricCircle = props => {
-  var {
-    cx,
-    cy,
-    radius
-  } = props;
-  var concentricCircleProps = _objectSpread({
-    stroke: '#ccc',
-    fill: 'none'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props));
-  return (
-    /*#__PURE__*/
-    // @ts-expect-error wrong SVG element type
-    React.createElement("circle", _extends({}, concentricCircleProps, {
-      className: (0, _clsx.clsx)('recharts-polar-grid-concentric-circle', props.className),
-      cx: cx,
-      cy: cy,
-      r: radius
-    }))
-  );
-};
-
-// Draw concentric polygons
-var ConcentricPolygon = props => {
-  var {
-    radius
-  } = props;
-  var concentricPolygonProps = _objectSpread({
-    stroke: '#ccc',
-    fill: 'none'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props));
-  return /*#__PURE__*/React.createElement("path", _extends({}, concentricPolygonProps, {
-    className: (0, _clsx.clsx)('recharts-polar-grid-concentric-polygon', props.className),
-    d: getPolygonPath(radius, props.cx, props.cy, props.polarAngles)
-  }));
-};
-
-// Draw concentric axis
-var ConcentricGridPath = props => {
-  var {
-    polarRadius,
-    gridType
-  } = props;
-  if (!polarRadius || !polarRadius.length) {
-    return null;
-  }
-  var maxPolarRadius = Math.max(...polarRadius);
-  var renderBackground = props.fill && props.fill !== 'none';
-  return /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid-concentric"
-  }, renderBackground && gridType === 'circle' && /*#__PURE__*/React.createElement(ConcentricCircle, _extends({}, props, {
-    radius: maxPolarRadius
-  })), renderBackground && gridType !== 'circle' && /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({}, props, {
-    radius: maxPolarRadius
-  })), polarRadius.map((entry, i) => {
-    var key = i;
-    if (gridType === 'circle') {
-      return /*#__PURE__*/React.createElement(ConcentricCircle, _extends({
-        key: key
-      }, props, {
-        fill: "none",
-        radius: entry
-      }));
-    }
-    return /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({
-      key: key
-    }, props, {
-      fill: "none",
-      radius: entry
-    }));
-  }));
-};
-var defaultPolarGridProps = exports.defaultPolarGridProps = {
-  angleAxisId: 0,
-  radiusAxisId: 0,
-  gridType: 'polygon',
-  radialLines: true,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.grid
-};
-
-/**
- * @consumes PolarViewBoxContext
- */
-var PolarGrid = outsideProps => {
-  var _ref, _polarViewBox$cx, _ref2, _polarViewBox$cy, _ref3, _polarViewBox$innerRa, _ref4, _polarViewBox$outerRa;
-  var _resolveDefaultProps = (0, _resolveDefaultProps2.resolveDefaultProps)(outsideProps, defaultPolarGridProps),
-    {
-      gridType,
-      radialLines,
-      angleAxisId,
-      radiusAxisId,
-      cx: cxFromOutside,
-      cy: cyFromOutside,
-      innerRadius: innerRadiusFromOutside,
-      outerRadius: outerRadiusFromOutside,
-      polarAngles: polarAnglesInput,
-      polarRadius: polarRadiusInput,
-      zIndex
-    } = _resolveDefaultProps,
-    inputs = _objectWithoutProperties(_resolveDefaultProps, _excluded);
-  var polarViewBox = (0, _hooks.useAppSelector)(_polarAxisSelectors.selectPolarViewBox);
-  var polarAnglesFromRedux = (0, _hooks.useAppSelector)(state => (0, _polarGridSelectors.selectPolarGridAngles)(state, angleAxisId));
-  var polarRadiiFromRedux = (0, _hooks.useAppSelector)(state => (0, _polarGridSelectors.selectPolarGridRadii)(state, radiusAxisId));
-  var polarAngles = Array.isArray(polarAnglesInput) ? polarAnglesInput : polarAnglesFromRedux;
-  var polarRadius = Array.isArray(polarRadiusInput) ? polarRadiusInput : polarRadiiFromRedux;
-  if (polarAngles == null || polarRadius == null) {
-    return null;
-  }
-  var props = _objectSpread({
-    cx: (_ref = (_polarViewBox$cx = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cx) !== null && _polarViewBox$cx !== void 0 ? _polarViewBox$cx : cxFromOutside) !== null && _ref !== void 0 ? _ref : 0,
-    cy: (_ref2 = (_polarViewBox$cy = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cy) !== null && _polarViewBox$cy !== void 0 ? _polarViewBox$cy : cyFromOutside) !== null && _ref2 !== void 0 ? _ref2 : 0,
-    innerRadius: (_ref3 = (_polarViewBox$innerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.innerRadius) !== null && _polarViewBox$innerRa !== void 0 ? _polarViewBox$innerRa : innerRadiusFromOutside) !== null && _ref3 !== void 0 ? _ref3 : 0,
-    outerRadius: (_ref4 = (_polarViewBox$outerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.outerRadius) !== null && _polarViewBox$outerRa !== void 0 ? _polarViewBox$outerRa : outerRadiusFromOutside) !== null && _ref4 !== void 0 ? _ref4 : 0,
-    polarAngles,
-    polarRadius,
-    zIndex
-  }, inputs);
-  var {
-    outerRadius
-  } = props;
-  if (outerRadius <= 0) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement("g", {
-    className: "recharts-polar-grid"
-  }, /*#__PURE__*/React.createElement(ConcentricGridPath, _extends({
-    gridType: gridType,
-    radialLines: radialLines
-  }, props, {
-    polarAngles: polarAngles,
-    polarRadius: polarRadius
-  })), /*#__PURE__*/React.createElement(PolarAngles, _extends({
-    gridType: gridType,
-    radialLines: radialLines
-  }, props, {
-    polarAngles: polarAngles,
-    polarRadius: polarRadius
-  }))));
-};
-exports.PolarGrid = PolarGrid;
-PolarGrid.displayName = 'PolarGrid';
Index: de_modules/recharts/lib/polar/PolarRadiusAxis.js
===================================================================
--- node_modules/recharts/lib/polar/PolarRadiusAxis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,238 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PolarRadiusAxis = PolarRadiusAxis;
-exports.PolarRadiusAxisWrapper = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _maxBy = _interopRequireDefault(require("es-toolkit/compat/maxBy"));
-var _minBy = _interopRequireDefault(require("es-toolkit/compat/minBy"));
-var _clsx = require("clsx");
-var _Text = require("../component/Text");
-var _Label = require("../component/Label");
-var _Layer = require("../container/Layer");
-var _PolarUtils = require("../util/PolarUtils");
-var _types = require("../util/types");
-var _polarAxisSlice = require("../state/polarAxisSlice");
-var _hooks = require("../state/hooks");
-var _polarScaleSelectors = require("../state/selectors/polarScaleSelectors");
-var _polarAxisSelectors = require("../state/selectors/polarAxisSelectors");
-var _defaultPolarRadiusAxisProps = require("./defaultPolarRadiusAxisProps");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _DataUtils = require("../util/DataUtils");
-var _getAxisTypeBasedOnLayout = require("../util/getAxisTypeBasedOnLayout");
-var _getClassNameFromUnknown = require("../util/getClassNameFromUnknown");
-var _excluded = ["type"],
-  _excluded2 = ["cx", "cy", "angle", "axisLine"],
-  _excluded3 = ["angle", "tickFormatter", "stroke", "tick"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var AXIS_TYPE = 'radiusAxis';
-function SetRadiusAxisSettings(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var layout = (0, _chartLayoutContext.usePolarChartLayout)();
-  var settings = (0, _react.useMemo)(() => {
-    var {
-        type: typeFromProps
-      } = props,
-      rest = _objectWithoutProperties(props, _excluded);
-    var evaluatedType = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'radiusAxis', typeFromProps);
-    if (evaluatedType == null) {
-      return undefined;
-    }
-    return _objectSpread(_objectSpread({}, rest), {}, {
-      type: evaluatedType
-    });
-  }, [props, layout]);
-  (0, _react.useEffect)(() => {
-    if (settings == null) {
-      return _DataUtils.noop;
-    }
-    dispatch((0, _polarAxisSlice.addRadiusAxis)(settings));
-    return () => {
-      dispatch((0, _polarAxisSlice.removeRadiusAxis)(settings));
-    };
-  }, [dispatch, settings]);
-  return null;
-}
-
-/**
- * Calculate the coordinate of tick
- * @param coordinate The radius of tick
- * @param angle from props
- * @param cx from chart
- * @param cy from chart
- * @return (x, y)
- */
-var getTickValueCoord = (_ref, angle, cx, cy) => {
-  var {
-    coordinate
-  } = _ref;
-  return (0, _PolarUtils.polarToCartesian)(cx, cy, coordinate, angle);
-};
-var getTickTextAnchor = orientation => {
-  var textAnchor;
-  switch (orientation) {
-    case 'left':
-      textAnchor = 'end';
-      break;
-    case 'right':
-      textAnchor = 'start';
-      break;
-    default:
-      textAnchor = 'middle';
-      break;
-  }
-  return textAnchor;
-};
-var getViewBox = (angle, cx, cy, ticks) => {
-  var maxRadiusTick = (0, _maxBy.default)(ticks, entry => entry.coordinate || 0);
-  var minRadiusTick = (0, _minBy.default)(ticks, entry => entry.coordinate || 0);
-  return {
-    cx,
-    cy,
-    startAngle: angle,
-    endAngle: angle,
-    innerRadius: (minRadiusTick === null || minRadiusTick === void 0 ? void 0 : minRadiusTick.coordinate) || 0,
-    outerRadius: (maxRadiusTick === null || maxRadiusTick === void 0 ? void 0 : maxRadiusTick.coordinate) || 0,
-    clockWise: false
-  };
-};
-var renderAxisLine = (props, ticks) => {
-  var {
-      cx,
-      cy,
-      angle,
-      axisLine
-    } = props,
-    others = _objectWithoutProperties(props, _excluded2);
-  var extent = ticks.reduce((result, entry) => [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)], [Infinity, -Infinity]);
-  var point0 = (0, _PolarUtils.polarToCartesian)(cx, cy, extent[0], angle);
-  var point1 = (0, _PolarUtils.polarToCartesian)(cx, cy, extent[1], angle);
-  var axisLineProps = _objectSpread(_objectSpread(_objectSpread({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others)), {}, {
-    fill: 'none'
-  }, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(axisLine)), {}, {
-    x1: point0.x,
-    y1: point0.y,
-    x2: point1.x,
-    y2: point1.y
-  });
-
-  // @ts-expect-error wrong SVG element type
-  return /*#__PURE__*/React.createElement("line", _extends({
-    className: "recharts-polar-radius-axis-line"
-  }, axisLineProps));
-};
-var renderTickItem = (option, tickProps, value) => {
-  var tickItem;
-  if (/*#__PURE__*/React.isValidElement(option)) {
-    tickItem = /*#__PURE__*/React.cloneElement(option, tickProps);
-  } else if (typeof option === 'function') {
-    tickItem = option(tickProps);
-  } else {
-    tickItem = /*#__PURE__*/React.createElement(_Text.Text, _extends({}, tickProps, {
-      className: "recharts-polar-radius-axis-tick-value"
-    }), value);
-  }
-  return tickItem;
-};
-var renderTicks = (props, ticks) => {
-  var {
-      angle,
-      tickFormatter,
-      stroke,
-      tick
-    } = props,
-    others = _objectWithoutProperties(props, _excluded3);
-  var textAnchor = getTickTextAnchor(props.orientation);
-  var axisProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-  var customTickProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(tick);
-  var items = ticks.map((entry, i) => {
-    var coord = getTickValueCoord(entry, props.angle, props.cx, props.cy);
-    var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
-      textAnchor,
-      transform: "rotate(".concat(90 - angle, ", ").concat(coord.x, ", ").concat(coord.y, ")")
-    }, axisProps), {}, {
-      stroke: 'none',
-      fill: stroke
-    }, customTickProps), {}, {
-      index: i
-    }, coord), {}, {
-      payload: entry
-    });
-    return /*#__PURE__*/React.createElement(_Layer.Layer, _extends({
-      className: (0, _clsx.clsx)('recharts-polar-radius-axis-tick', (0, _getClassNameFromUnknown.getClassNameFromUnknown)(tick)),
-      key: "tick-".concat(entry.coordinate)
-    }, (0, _types.adaptEventsOfChild)(props, entry, i)), renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));
-  });
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-polar-radius-axis-ticks"
-  }, items);
-};
-var PolarRadiusAxisWrapper = defaultsAndInputs => {
-  var {
-    radiusAxisId
-  } = defaultsAndInputs;
-  var viewBox = (0, _hooks.useAppSelector)(_polarAxisSelectors.selectPolarViewBox);
-  var scale = (0, _hooks.useAppSelector)(state => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'radiusAxis', radiusAxisId));
-  var ticks = (0, _hooks.useAppSelector)(state => (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'radiusAxis', radiusAxisId, false));
-  if (viewBox == null || !ticks || !ticks.length || scale == null) {
-    return null;
-  }
-  var props = _objectSpread(_objectSpread({}, defaultsAndInputs), {}, {
-    scale
-  }, viewBox);
-  var {
-    tick,
-    axisLine
-  } = props;
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: (0, _clsx.clsx)('recharts-polar-radius-axis', AXIS_TYPE, props.className)
-  }, axisLine && renderAxisLine(props, ticks), tick && renderTicks(props, ticks), /*#__PURE__*/React.createElement(_Label.PolarLabelContextProvider, getViewBox(props.angle, props.cx, props.cy, ticks), /*#__PURE__*/React.createElement(_Label.PolarLabelFromLabelProp, {
-    label: props.label
-  }), props.children)));
-};
-
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-exports.PolarRadiusAxisWrapper = PolarRadiusAxisWrapper;
-function PolarRadiusAxis(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadiusAxisSettings, {
-    domain: props.domain,
-    id: props.radiusAxisId,
-    scale: props.scale,
-    type: props.type,
-    dataKey: props.dataKey,
-    unit: undefined,
-    name: props.name,
-    allowDuplicatedCategory: props.allowDuplicatedCategory,
-    allowDataOverflow: props.allowDataOverflow,
-    reversed: props.reversed,
-    includeHidden: props.includeHidden,
-    allowDecimals: props.allowDecimals
-    // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?
-    ,
-    ticks: props.ticks,
-    tickCount: props.tickCount,
-    tick: props.tick
-  }), /*#__PURE__*/React.createElement(PolarRadiusAxisWrapper, props));
-}
-PolarRadiusAxis.displayName = 'PolarRadiusAxis';
Index: de_modules/recharts/lib/polar/Radar.js
===================================================================
--- node_modules/recharts/lib/polar/Radar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,461 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Radar = Radar;
-exports.computeRadarPoints = computeRadarPoints;
-exports.defaultRadarProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _last = _interopRequireDefault(require("es-toolkit/compat/last"));
-var _clsx = require("clsx");
-var _DataUtils = require("../util/DataUtils");
-var _PolarUtils = require("../util/PolarUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _Polygon = require("../shape/Polygon");
-var _Layer = require("../container/Layer");
-var _LabelList = require("../component/LabelList");
-var _Dots = require("../component/Dots");
-var _ActivePoints = require("../component/ActivePoints");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _radarSelectors = require("../state/selectors/radarSelectors");
-var _hooks = require("../state/hooks");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _useAnimationId = require("../util/useAnimationId");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _excluded = ["id"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function getLegendItemColor(stroke, fill) {
-  return stroke && stroke !== 'none' ? stroke : fill;
-}
-var computeLegendPayloadFromRadarSectors = props => {
-  var {
-    dataKey,
-    name,
-    stroke,
-    fill,
-    legendType,
-    hide
-  } = props;
-  return [{
-    inactive: hide,
-    dataKey,
-    type: legendType,
-    color: getLegendItemColor(stroke, fill),
-    value: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-    payload: props
-  }];
-};
-var SetRadarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {
-  var {
-    dataKey,
-    stroke,
-    strokeWidth,
-    fill,
-    name,
-    hide,
-    tooltipType,
-    id
-  } = _ref;
-  var tooltipEntrySettings = {
-    /*
-     * I suppose this here _could_ return props.points
-     * because while Radar does not support item tooltip mode, it _could_ support it.
-     * But when I actually do return the points here, a defaultIndex test starts failing.
-     * So, undefined it is.
-     */
-    dataDefinedOnItem: undefined,
-    getPosition: _DataUtils.noop,
-    settings: {
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      // RadarChart does not have nameKey unfortunately
-      dataKey,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: getLegendItemColor(stroke, fill),
-      unit: '',
-      // why doesn't Radar support unit?
-      graphicalItemId: id
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-function RadarDotsWrapper(_ref2) {
-  var {
-    points,
-    props
-  } = _ref2;
-  var {
-    dot,
-    dataKey
-  } = props;
-  var {
-      id
-    } = props,
-    propsWithoutId = _objectWithoutProperties(props, _excluded);
-  var baseProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(propsWithoutId);
-  return /*#__PURE__*/React.createElement(_Dots.Dots, {
-    points: points,
-    dot: dot,
-    className: "recharts-radar-dots",
-    dotClassName: "recharts-radar-dot",
-    dataKey: dataKey,
-    baseProps: baseProps
-  });
-}
-function computeRadarPoints(_ref3) {
-  var {
-    radiusAxis,
-    angleAxis,
-    displayedData,
-    dataKey,
-    bandSize
-  } = _ref3;
-  var {
-    cx,
-    cy
-  } = angleAxis;
-  var isRange = false;
-  var points = [];
-  var angleBandSize = angleAxis.type !== 'number' ? bandSize !== null && bandSize !== void 0 ? bandSize : 0 : 0;
-  displayedData.forEach((entry, i) => {
-    var _angleAxis$scale$map, _radiusAxis$scale$map;
-    var name = (0, _ChartUtils.getValueByDataKey)(entry, angleAxis.dataKey, i);
-    var value = (0, _ChartUtils.getValueByDataKey)(entry, dataKey);
-    var angle = ((_angleAxis$scale$map = angleAxis.scale.map(name)) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : 0) + angleBandSize;
-    var pointValue = Array.isArray(value) ? (0, _last.default)(value) : value;
-    var radius = (0, _DataUtils.isNullish)(pointValue) ? 0 : (_radiusAxis$scale$map = radiusAxis.scale.map(pointValue)) !== null && _radiusAxis$scale$map !== void 0 ? _radiusAxis$scale$map : 0;
-    if (Array.isArray(value) && value.length >= 2) {
-      isRange = true;
-    }
-    points.push(_objectSpread(_objectSpread({}, (0, _PolarUtils.polarToCartesian)(cx, cy, radius, angle)), {}, {
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      name,
-      // @ts-expect-error getValueByDataKey does not validate the output type
-      value,
-      cx,
-      cy,
-      radius,
-      angle,
-      payload: entry
-    }));
-  });
-  var baseLinePoints = [];
-  if (isRange) {
-    points.forEach(point => {
-      if (Array.isArray(point.value)) {
-        var _radiusAxis$scale$map2;
-        var baseValue = point.value[0];
-        var radius = (0, _DataUtils.isNullish)(baseValue) ? 0 : (_radiusAxis$scale$map2 = radiusAxis.scale.map(baseValue)) !== null && _radiusAxis$scale$map2 !== void 0 ? _radiusAxis$scale$map2 : 0;
-        baseLinePoints.push(_objectSpread(_objectSpread({}, point), {}, {
-          radius
-        }, (0, _PolarUtils.polarToCartesian)(cx, cy, radius, point.angle)));
-      } else {
-        baseLinePoints.push(point);
-      }
-    });
-  }
-  return {
-    points,
-    isRange,
-    baseLinePoints
-  };
-}
-function RadarLabelListProvider(_ref4) {
-  var {
-    showLabels,
-    points,
-    children
-  } = _ref4;
-  /*
-   * Radar provides a Cartesian label list context. Do we want to also provide a polar label list context?
-   * That way, users can choose to use polar positions for the Radar labels.
-   */
-  // const labelListEntries: ReadonlyArray<PolarLabelListEntry> = points.map(
-  //   (point): PolarLabelListEntry => ({
-  //     value: point.value,
-  //     payload: point.payload,
-  //     parentViewBox: undefined,
-  //     clockWise: false,
-  //     viewBox: {
-  //       cx: point.cx,
-  //       cy: point.cy,
-  //       innerRadius: point.radius,
-  //       outerRadius: point.radius,
-  //       startAngle: point.angle,
-  //       endAngle: point.angle,
-  //       clockWise: false,
-  //     },
-  //   }),
-  // );
-
-  var labelListEntries = points.map(point => {
-    var _point$value;
-    var viewBox = {
-      x: point.x,
-      y: point.y,
-      width: 0,
-      lowerWidth: 0,
-      upperWidth: 0,
-      height: 0
-    };
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      value: (_point$value = point.value) !== null && _point$value !== void 0 ? _point$value : '',
-      payload: point.payload,
-      parentViewBox: undefined,
-      viewBox,
-      fill: undefined
-    });
-  });
-  return /*#__PURE__*/React.createElement(_LabelList.CartesianLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function StaticPolygon(_ref5) {
-  var {
-    points,
-    baseLinePoints,
-    props
-  } = _ref5;
-  if (points == null) {
-    return null;
-  }
-  var {
-    shape,
-    isRange,
-    connectNulls
-  } = props;
-  var handleMouseEnter = e => {
-    var {
-      onMouseEnter
-    } = props;
-    if (onMouseEnter) {
-      onMouseEnter(props, e);
-    }
-  };
-  var handleMouseLeave = e => {
-    var {
-      onMouseLeave
-    } = props;
-    if (onMouseLeave) {
-      onMouseLeave(props, e);
-    }
-  };
-  var radar;
-  if (/*#__PURE__*/React.isValidElement(shape)) {
-    radar = /*#__PURE__*/React.cloneElement(shape, _objectSpread(_objectSpread({}, props), {}, {
-      points
-    }));
-  } else if (typeof shape === 'function') {
-    radar = shape(_objectSpread(_objectSpread({}, props), {}, {
-      points
-    }));
-  } else {
-    radar = /*#__PURE__*/React.createElement(_Polygon.Polygon, _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props), {
-      onMouseEnter: handleMouseEnter,
-      onMouseLeave: handleMouseLeave,
-      points: points,
-      baseLinePoints: isRange ? baseLinePoints : undefined,
-      connectNulls: connectNulls
-    }));
-  }
-  return /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: "recharts-radar-polygon"
-  }, radar, /*#__PURE__*/React.createElement(RadarDotsWrapper, {
-    props: props,
-    points: points
-  }));
-}
-var interpolatePolarPoint = (prevPoints, prevPointsDiffFactor, t) => (entry, index) => {
-  var prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];
-  if (prev) {
-    return _objectSpread(_objectSpread({}, entry), {}, {
-      x: (0, _DataUtils.interpolate)(prev.x, entry.x, t),
-      y: (0, _DataUtils.interpolate)(prev.y, entry.y, t)
-    });
-  }
-  return _objectSpread(_objectSpread({}, entry), {}, {
-    x: (0, _DataUtils.interpolate)(entry.cx, entry.x, t),
-    y: (0, _DataUtils.interpolate)(entry.cy, entry.y, t)
-  });
-};
-function PolygonWithAnimation(_ref6) {
-  var {
-    props,
-    previousPointsRef,
-    previousBaseLinePointsRef
-  } = _ref6;
-  var {
-    points,
-    baseLinePoints,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var prevPoints = previousPointsRef.current;
-  var prevBaseLinePoints = previousBaseLinePointsRef.current;
-  var prevPointsDiffFactor = prevPoints ? prevPoints.length / points.length : 1;
-  var prevBaseLinePointsDiffFactor = prevBaseLinePoints ? prevBaseLinePoints.length / baseLinePoints.length : 1;
-  var animationId = (0, _useAnimationId.useAnimationId)(props, 'recharts-radar-');
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var showLabels = !isAnimating;
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(RadarLabelListProvider, {
-    showLabels: showLabels,
-    points: points
-  }, /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    key: "radar-".concat(animationId),
-    onAnimationEnd: handleAnimationEnd,
-    onAnimationStart: handleAnimationStart
-  }, t => {
-    var stepData = t === 1 ? points : points.map(interpolatePolarPoint(prevPoints, prevPointsDiffFactor, t));
-    var stepBaseLinePoints = t === 1 ? baseLinePoints : baseLinePoints === null || baseLinePoints === void 0 ? void 0 : baseLinePoints.map(interpolatePolarPoint(prevBaseLinePoints, prevBaseLinePointsDiffFactor, t));
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousPointsRef.current = stepData;
-      // eslint-disable-next-line no-param-reassign
-      previousBaseLinePointsRef.current = stepBaseLinePoints;
-    }
-    return /*#__PURE__*/React.createElement(StaticPolygon, {
-      points: stepData,
-      baseLinePoints: stepBaseLinePoints,
-      props: props
-    });
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: props.label
-  }), props.children);
-}
-function RenderPolygon(props) {
-  var previousPointsRef = (0, _react.useRef)(undefined);
-  var previousBaseLinePointsRef = (0, _react.useRef)(undefined);
-  return /*#__PURE__*/React.createElement(PolygonWithAnimation, {
-    props: props,
-    previousPointsRef: previousPointsRef,
-    previousBaseLinePointsRef: previousBaseLinePointsRef
-  });
-}
-var defaultRadarProps = exports.defaultRadarProps = {
-  activeDot: true,
-  angleAxisId: 0,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  dot: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  radiusAxisId: 0,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.area
-};
-function RadarWithState(props) {
-  var {
-    hide,
-    className,
-    points
-  } = props;
-  if (hide) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-radar', className);
-  return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-    zIndex: props.zIndex
-  }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-    className: layerClass
-  }, /*#__PURE__*/React.createElement(RenderPolygon, props)), /*#__PURE__*/React.createElement(_ActivePoints.ActivePoints, {
-    points: points,
-    mainColor: getLegendItemColor(props.stroke, props.fill),
-    itemDataKey: props.dataKey,
-    activeDot: props.activeDot
-  }));
-}
-function RadarImpl(props) {
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var radarPoints = (0, _hooks.useAppSelector)(state => (0, _radarSelectors.selectRadarPoints)(state, props.radiusAxisId, props.angleAxisId, isPanorama, props.id));
-  if ((radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points) == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(RadarWithState, _extends({}, props, {
-    points: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points,
-    baseLinePoints: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.baseLinePoints,
-    isRange: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.isRange
-  }));
-}
-
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- */
-function Radar(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultRadarProps);
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "radar"
-  }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetGraphicalItem.SetPolarGraphicalItem, {
-    type: "radar",
-    id: id,
-    data: undefined // Radar does not have data prop, why?
-    ,
-    dataKey: props.dataKey,
-    hide: props.hide,
-    angleAxisId: props.angleAxisId,
-    radiusAxisId: props.radiusAxisId
-  }), /*#__PURE__*/React.createElement(_SetLegendPayload.SetPolarLegendPayload, {
-    legendPayload: computeLegendPayloadFromRadarSectors(props)
-  }), /*#__PURE__*/React.createElement(SetRadarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    fill: props.fill,
-    name: props.name,
-    hide: props.hide,
-    tooltipType: props.tooltipType,
-    id: id
-  }), /*#__PURE__*/React.createElement(RadarImpl, _extends({}, props, {
-    id: id
-  }))));
-}
-Radar.displayName = 'Radar';
Index: de_modules/recharts/lib/polar/RadialBar.js
===================================================================
--- node_modules/recharts/lib/polar/RadialBar.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,486 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RadialBar = RadialBar;
-exports.computeRadialBarDataItems = computeRadialBarDataItems;
-exports.defaultRadialBarProps = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _RadialBarUtils = require("../util/RadialBarUtils");
-var _Layer = require("../container/Layer");
-var _ReactUtils = require("../util/ReactUtils");
-var _LabelList = require("../component/LabelList");
-var _Cell = require("../component/Cell");
-var _DataUtils = require("../util/DataUtils");
-var _ChartUtils = require("../util/ChartUtils");
-var _types = require("../util/types");
-var _tooltipContext = require("../context/tooltipContext");
-var _SetTooltipEntrySettings = require("../state/SetTooltipEntrySettings");
-var _radialBarSelectors = require("../state/selectors/radialBarSelectors");
-var _hooks = require("../state/hooks");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _SetLegendPayload = require("../state/SetLegendPayload");
-var _useAnimationId = require("../util/useAnimationId");
-var _RegisterGraphicalItemId = require("../context/RegisterGraphicalItemId");
-var _SetGraphicalItem = require("../state/SetGraphicalItem");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _ZIndexLayer = require("../zIndex/ZIndexLayer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var _getZIndexFromUnknown = require("../zIndex/getZIndexFromUnknown");
-var _excluded = ["shape", "activeShape", "cornerRadius", "id"],
-  _excluded2 = ["onMouseEnter", "onClick", "onMouseLeave"],
-  _excluded3 = ["value", "background"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var STABLE_EMPTY_ARRAY = [];
-function RadialBarLabelListProvider(_ref) {
-  var {
-    showLabels,
-    sectors,
-    children
-  } = _ref;
-  var labelListEntries = sectors.map(sector => ({
-    value: sector.value,
-    payload: sector.payload,
-    parentViewBox: undefined,
-    clockWise: false,
-    viewBox: {
-      cx: sector.cx,
-      cy: sector.cy,
-      innerRadius: sector.innerRadius,
-      outerRadius: sector.outerRadius,
-      startAngle: sector.startAngle,
-      endAngle: sector.endAngle,
-      clockWise: false
-    },
-    fill: sector.fill
-  }));
-  return /*#__PURE__*/React.createElement(_LabelList.PolarLabelListContextProvider, {
-    value: showLabels ? labelListEntries : undefined
-  }, children);
-}
-function RadialBarSectors(_ref2) {
-  var {
-    sectors,
-    allOtherRadialBarProps,
-    showLabels
-  } = _ref2;
-  var {
-      shape,
-      activeShape,
-      cornerRadius,
-      id
-    } = allOtherRadialBarProps,
-    others = _objectWithoutProperties(allOtherRadialBarProps, _excluded);
-  var baseProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(others);
-  var activeIndex = (0, _hooks.useAppSelector)(_tooltipSelectors.selectActiveTooltipIndex);
-  var {
-      onMouseEnter: onMouseEnterFromProps,
-      onClick: onItemClickFromProps,
-      onMouseLeave: onMouseLeaveFromProps
-    } = allOtherRadialBarProps,
-    restOfAllOtherProps = _objectWithoutProperties(allOtherRadialBarProps, _excluded2);
-  var onMouseEnterFromContext = (0, _tooltipContext.useMouseEnterItemDispatch)(onMouseEnterFromProps, allOtherRadialBarProps.dataKey, id);
-  var onMouseLeaveFromContext = (0, _tooltipContext.useMouseLeaveItemDispatch)(onMouseLeaveFromProps);
-  var onClickFromContext = (0, _tooltipContext.useMouseClickItemDispatch)(onItemClickFromProps, allOtherRadialBarProps.dataKey, id);
-  if (sectors == null) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement(RadialBarLabelListProvider, {
-    showLabels: showLabels,
-    sectors: sectors
-  }, sectors.map((entry, i) => {
-    var isActive = activeShape && activeIndex === String(i);
-    // @ts-expect-error the types need a bit of attention
-    var onMouseEnter = onMouseEnterFromContext(entry, i);
-    // @ts-expect-error the types need a bit of attention
-    var onMouseLeave = onMouseLeaveFromContext(entry, i);
-    // @ts-expect-error the types need a bit of attention
-    var onClick = onClickFromContext(entry, i);
-    var radialBarSectorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, baseProps), {}, {
-      cornerRadius: (0, _RadialBarUtils.parseCornerRadius)(cornerRadius)
-    }, entry), (0, _types.adaptEventsOfChild)(restOfAllOtherProps, entry, i)), {}, {
-      onMouseEnter,
-      onMouseLeave,
-      onClick,
-      className: "recharts-radial-bar-sector ".concat(entry.className),
-      forceCornerRadius: others.forceCornerRadius,
-      cornerIsExternal: others.cornerIsExternal,
-      isActive,
-      option: isActive ? activeShape : shape
-    });
-    if (isActive) {
-      return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-        zIndex: _DefaultZIndexes.DefaultZIndexes.activeBar,
-        key: "sector-".concat(entry.cx, "-").concat(entry.cy, "-").concat(entry.innerRadius, "-").concat(entry.outerRadius, "-").concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(i)
-      }, /*#__PURE__*/React.createElement(_RadialBarUtils.RadialBarSector, radialBarSectorProps));
-    }
-    return /*#__PURE__*/React.createElement(_RadialBarUtils.RadialBarSector, _extends({
-      key: "sector-".concat(entry.cx, "-").concat(entry.cy, "-").concat(entry.innerRadius, "-").concat(entry.outerRadius, "-").concat(entry.startAngle, "-").concat(entry.endAngle, "-").concat(i)
-    }, radialBarSectorProps));
-  }), /*#__PURE__*/React.createElement(_LabelList.LabelListFromLabelProp, {
-    label: allOtherRadialBarProps.label
-  }), allOtherRadialBarProps.children);
-}
-function SectorsWithAnimation(_ref3) {
-  var {
-    props,
-    previousSectorsRef
-  } = _ref3;
-  var {
-    sectors,
-    isAnimationActive,
-    animationBegin,
-    animationDuration,
-    animationEasing,
-    onAnimationEnd,
-    onAnimationStart
-  } = props;
-  var animationId = (0, _useAnimationId.useAnimationId)(props, 'recharts-radialbar-');
-  var prevData = previousSectorsRef.current;
-  var [isAnimating, setIsAnimating] = (0, _react.useState)(false);
-  var handleAnimationEnd = (0, _react.useCallback)(() => {
-    if (typeof onAnimationEnd === 'function') {
-      onAnimationEnd();
-    }
-    setIsAnimating(false);
-  }, [onAnimationEnd]);
-  var handleAnimationStart = (0, _react.useCallback)(() => {
-    if (typeof onAnimationStart === 'function') {
-      onAnimationStart();
-    }
-    setIsAnimating(true);
-  }, [onAnimationStart]);
-  return /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    begin: animationBegin,
-    duration: animationDuration,
-    isActive: isAnimationActive,
-    easing: animationEasing,
-    onAnimationStart: handleAnimationStart,
-    onAnimationEnd: handleAnimationEnd,
-    key: animationId
-  }, t => {
-    var stepData = t === 1 ? sectors : (sectors !== null && sectors !== void 0 ? sectors : STABLE_EMPTY_ARRAY).map((entry, index) => {
-      var prev = prevData && prevData[index];
-      if (prev) {
-        return _objectSpread(_objectSpread({}, entry), {}, {
-          startAngle: (0, _DataUtils.interpolate)(prev.startAngle, entry.startAngle, t),
-          endAngle: (0, _DataUtils.interpolate)(prev.endAngle, entry.endAngle, t)
-        });
-      }
-      var {
-        endAngle,
-        startAngle
-      } = entry;
-      return _objectSpread(_objectSpread({}, entry), {}, {
-        endAngle: (0, _DataUtils.interpolate)(startAngle, endAngle, t)
-      });
-    });
-    if (t > 0) {
-      // eslint-disable-next-line no-param-reassign
-      previousSectorsRef.current = stepData !== null && stepData !== void 0 ? stepData : null;
-    }
-    return /*#__PURE__*/React.createElement(_Layer.Layer, null, /*#__PURE__*/React.createElement(RadialBarSectors, {
-      sectors: stepData !== null && stepData !== void 0 ? stepData : STABLE_EMPTY_ARRAY,
-      allOtherRadialBarProps: props,
-      showLabels: !isAnimating
-    }));
-  });
-}
-function RenderSectors(props) {
-  var previousSectorsRef = (0, _react.useRef)(null);
-  return /*#__PURE__*/React.createElement(SectorsWithAnimation, {
-    props: props,
-    previousSectorsRef: previousSectorsRef
-  });
-}
-function SetRadialBarPayloadLegend(props) {
-  var legendPayload = (0, _hooks.useAppSelector)(state => (0, _radialBarSelectors.selectRadialBarLegendPayload)(state, props.legendType));
-  return /*#__PURE__*/React.createElement(_SetLegendPayload.SetPolarLegendPayload, {
-    legendPayload: legendPayload !== null && legendPayload !== void 0 ? legendPayload : []
-  });
-}
-var SetRadialBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref4 => {
-  var {
-    dataKey,
-    sectors,
-    stroke,
-    strokeWidth,
-    name,
-    hide,
-    fill,
-    tooltipType,
-    id
-  } = _ref4;
-  var tooltipEntrySettings = {
-    dataDefinedOnItem: sectors,
-    getPosition: _DataUtils.noop,
-    settings: {
-      graphicalItemId: id,
-      stroke,
-      strokeWidth,
-      fill,
-      nameKey: undefined,
-      // RadialBar does not have nameKey, why?
-      dataKey,
-      name: (0, _ChartUtils.getTooltipNameProp)(name, dataKey),
-      hide,
-      type: tooltipType,
-      color: fill,
-      unit: '' // Why does RadialBar not support unit?
-    }
-  };
-  return /*#__PURE__*/React.createElement(_SetTooltipEntrySettings.SetTooltipEntrySettings, {
-    tooltipEntrySettings: tooltipEntrySettings
-  });
-});
-class RadialBarWithState extends _react.PureComponent {
-  renderBackground(sectors) {
-    if (sectors == null) {
-      return null;
-    }
-    var {
-      cornerRadius
-    } = this.props;
-    var backgroundProps = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(this.props.background);
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: (0, _getZIndexFromUnknown.getZIndexFromUnknown)(this.props.background, _DefaultZIndexes.DefaultZIndexes.barBackground)
-    }, sectors.map((entry, i) => {
-      var {
-          value,
-          background
-        } = entry,
-        rest = _objectWithoutProperties(entry, _excluded3);
-      if (!background) {
-        return null;
-      }
-      var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
-        cornerRadius: (0, _RadialBarUtils.parseCornerRadius)(cornerRadius)
-      }, rest), {}, {
-        // @ts-expect-error backgroundProps is contributing unknown props
-        fill: '#eee'
-      }, background), backgroundProps), (0, _types.adaptEventsOfChild)(this.props, entry, i)), {}, {
-        index: i,
-        className: (0, _clsx.clsx)('recharts-radial-bar-background-sector', String(backgroundProps === null || backgroundProps === void 0 ? void 0 : backgroundProps.className)),
-        option: background,
-        isActive: false
-      });
-      return /*#__PURE__*/React.createElement(_RadialBarUtils.RadialBarSector, _extends({
-        key: "background-".concat(rest.cx, "-").concat(rest.cy, "-").concat(rest.innerRadius, "-").concat(rest.outerRadius, "-").concat(rest.startAngle, "-").concat(rest.endAngle, "-").concat(i)
-      }, props));
-    }));
-  }
-  render() {
-    var {
-      hide,
-      sectors,
-      className,
-      background
-    } = this.props;
-    if (hide) {
-      return null;
-    }
-    var layerClass = (0, _clsx.clsx)('recharts-area', className);
-    return /*#__PURE__*/React.createElement(_ZIndexLayer.ZIndexLayer, {
-      zIndex: this.props.zIndex
-    }, /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: layerClass
-    }, background && /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: "recharts-radial-bar-background"
-    }, this.renderBackground(sectors)), /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: "recharts-radial-bar-sectors"
-    }, /*#__PURE__*/React.createElement(RenderSectors, this.props))));
-  }
-}
-function RadialBarImpl(props) {
-  var _useAppSelector;
-  var cells = (0, _ReactUtils.findAllByType)(props.children, _Cell.Cell);
-  var radialBarSettings = {
-    data: undefined,
-    hide: false,
-    id: props.id,
-    dataKey: props.dataKey,
-    minPointSize: props.minPointSize,
-    stackId: (0, _ChartUtils.getNormalizedStackId)(props.stackId),
-    maxBarSize: props.maxBarSize,
-    barSize: props.barSize,
-    type: 'radialBar',
-    angleAxisId: props.angleAxisId,
-    radiusAxisId: props.radiusAxisId
-  };
-  var sectors = (_useAppSelector = (0, _hooks.useAppSelector)(state => (0, _radialBarSelectors.selectRadialBarSectors)(state, props.radiusAxisId, props.angleAxisId, radialBarSettings, cells))) !== null && _useAppSelector !== void 0 ? _useAppSelector : STABLE_EMPTY_ARRAY;
-  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadialBarTooltipEntrySettings, {
-    dataKey: props.dataKey,
-    sectors: sectors,
-    stroke: props.stroke,
-    strokeWidth: props.strokeWidth,
-    name: props.name,
-    hide: props.hide,
-    fill: props.fill,
-    tooltipType: props.tooltipType,
-    id: props.id
-  }), /*#__PURE__*/React.createElement(RadialBarWithState, _extends({}, props, {
-    sectors: sectors
-  })));
-}
-var defaultRadialBarProps = exports.defaultRadialBarProps = {
-  angleAxisId: 0,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease',
-  background: false,
-  cornerIsExternal: false,
-  cornerRadius: 0,
-  forceCornerRadius: false,
-  hide: false,
-  isAnimationActive: 'auto',
-  label: false,
-  legendType: 'rect',
-  minPointSize: 0,
-  radiusAxisId: 0,
-  zIndex: _DefaultZIndexes.DefaultZIndexes.bar
-};
-function computeRadialBarDataItems(_ref5) {
-  var {
-    displayedData,
-    stackedData,
-    dataStartIndex,
-    stackedDomain,
-    dataKey,
-    baseValue,
-    layout,
-    radiusAxis,
-    radiusAxisTicks,
-    bandSize,
-    pos,
-    angleAxis,
-    minPointSize,
-    cx,
-    cy,
-    angleAxisTicks,
-    cells,
-    startAngle: rootStartAngle,
-    endAngle: rootEndAngle
-  } = _ref5;
-  if (angleAxisTicks == null || radiusAxisTicks == null) {
-    return STABLE_EMPTY_ARRAY;
-  }
-  return (displayedData !== null && displayedData !== void 0 ? displayedData : []).map((entry, index) => {
-    var value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;
-    if (stackedData) {
-      // @ts-expect-error truncateByDomain expects only numerical domain, but it can received categorical domain too
-      value = (0, _ChartUtils.truncateByDomain)(stackedData[dataStartIndex + index], stackedDomain);
-    } else {
-      value = (0, _ChartUtils.getValueByDataKey)(entry, dataKey);
-      if (!Array.isArray(value)) {
-        value = [baseValue, value];
-      }
-    }
-    if (layout === 'radial') {
-      var _angleAxis$scale$map, _angleAxis$scale$map2;
-      startAngle = (_angleAxis$scale$map = angleAxis.scale.map(value[0])) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : rootStartAngle;
-      endAngle = (_angleAxis$scale$map2 = angleAxis.scale.map(value[1])) !== null && _angleAxis$scale$map2 !== void 0 ? _angleAxis$scale$map2 : rootEndAngle;
-      innerRadius = (0, _ChartUtils.getCateCoordinateOfBar)({
-        axis: radiusAxis,
-        ticks: radiusAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      if (innerRadius != null && endAngle != null && startAngle != null) {
-        outerRadius = innerRadius + pos.size;
-        var deltaAngle = endAngle - startAngle;
-        if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {
-          var delta = (0, _DataUtils.mathSign)(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));
-          endAngle += delta;
-        }
-        backgroundSector = {
-          background: {
-            cx,
-            cy,
-            innerRadius,
-            outerRadius,
-            startAngle: rootStartAngle,
-            endAngle: rootEndAngle
-          }
-        };
-      }
-    } else {
-      innerRadius = radiusAxis.scale.map(value[0]);
-      outerRadius = radiusAxis.scale.map(value[1]);
-      startAngle = (0, _ChartUtils.getCateCoordinateOfBar)({
-        axis: angleAxis,
-        ticks: angleAxisTicks,
-        bandSize,
-        offset: pos.offset,
-        entry,
-        index
-      });
-      if (innerRadius != null && outerRadius != null && startAngle != null) {
-        endAngle = startAngle + pos.size;
-        var deltaRadius = outerRadius - innerRadius;
-        if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {
-          var _delta = (0, _DataUtils.mathSign)(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));
-          outerRadius += _delta;
-        }
-      }
-    }
-    return _objectSpread(_objectSpread(_objectSpread({}, entry), backgroundSector), {}, {
-      payload: entry,
-      value: stackedData ? value : value[1],
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      // @ts-expect-error endAngle is used before assigned (?)
-      endAngle
-    }, cells && cells[index] && cells[index].props);
-  });
-}
-
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-function RadialBar(outsideProps) {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultRadialBarProps);
-  return /*#__PURE__*/React.createElement(_RegisterGraphicalItemId.RegisterGraphicalItemId, {
-    id: props.id,
-    type: "radialBar"
-  }, id => {
-    var _props$hide, _props$angleAxisId, _props$radiusAxisId;
-    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_SetGraphicalItem.SetPolarGraphicalItem, {
-      type: "radialBar",
-      id: id,
-      data: undefined // why does RadialBar not allow data defined on the item?
-      ,
-      dataKey: props.dataKey,
-      hide: (_props$hide = props.hide) !== null && _props$hide !== void 0 ? _props$hide : defaultRadialBarProps.hide,
-      angleAxisId: (_props$angleAxisId = props.angleAxisId) !== null && _props$angleAxisId !== void 0 ? _props$angleAxisId : defaultRadialBarProps.angleAxisId,
-      radiusAxisId: (_props$radiusAxisId = props.radiusAxisId) !== null && _props$radiusAxisId !== void 0 ? _props$radiusAxisId : defaultRadialBarProps.radiusAxisId,
-      stackId: (0, _ChartUtils.getNormalizedStackId)(props.stackId),
-      barSize: props.barSize,
-      minPointSize: props.minPointSize,
-      maxBarSize: props.maxBarSize
-    }), /*#__PURE__*/React.createElement(SetRadialBarPayloadLegend, props), /*#__PURE__*/React.createElement(RadialBarImpl, _extends({}, props, {
-      id: id
-    })));
-  });
-}
-RadialBar.displayName = 'RadialBar';
Index: de_modules/recharts/lib/polar/defaultPolarAngleAxisProps.js
===================================================================
--- node_modules/recharts/lib/polar/defaultPolarAngleAxisProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultPolarAngleAxisProps = void 0;
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var defaultPolarAngleAxisProps = exports.defaultPolarAngleAxisProps = {
-  allowDecimals: false,
-  allowDuplicatedCategory: true,
-  // if I set this to false then Tooltip synchronisation stops working in Radar, wtf
-  allowDataOverflow: false,
-  angle: 0,
-  angleAxisId: 0,
-  axisLine: true,
-  axisLineType: 'polygon',
-  cx: 0,
-  cy: 0,
-  hide: false,
-  includeHidden: false,
-  label: false,
-  orientation: 'outer',
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickLine: true,
-  tickSize: 8,
-  type: 'auto',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.axis
-};
Index: de_modules/recharts/lib/polar/defaultPolarRadiusAxisProps.js
===================================================================
--- node_modules/recharts/lib/polar/defaultPolarRadiusAxisProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultPolarRadiusAxisProps = void 0;
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-var defaultPolarRadiusAxisProps = exports.defaultPolarRadiusAxisProps = {
-  allowDataOverflow: false,
-  allowDecimals: false,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  axisLine: true,
-  includeHidden: false,
-  hide: false,
-  label: false,
-  orientation: 'right',
-  radiusAxisId: 0,
-  reversed: false,
-  scale: 'auto',
-  stroke: '#ccc',
-  tick: true,
-  tickCount: 5,
-  tickLine: true,
-  type: 'auto',
-  zIndex: _DefaultZIndexes.DefaultZIndexes.axis
-};
Index: de_modules/recharts/lib/shape/Cross.js
===================================================================
--- node_modules/recharts/lib/shape/Cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Cross = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _DataUtils = require("../util/DataUtils");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _excluded = ["x", "y", "top", "left", "width", "height", "className"];
-/**
- * @fileOverview Cross
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var getPath = (x, y, width, height, top, left) => {
-  return "M".concat(x, ",").concat(top, "v").concat(height, "M").concat(left, ",").concat(y, "h").concat(width);
-};
-var Cross = _ref => {
-  var {
-      x = 0,
-      y = 0,
-      top = 0,
-      left = 0,
-      width = 0,
-      height = 0,
-      className
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var props = _objectSpread({
-    x,
-    y,
-    top,
-    left,
-    width,
-    height
-  }, rest);
-  if (!(0, _DataUtils.isNumber)(x) || !(0, _DataUtils.isNumber)(y) || !(0, _DataUtils.isNumber)(width) || !(0, _DataUtils.isNumber)(height) || !(0, _DataUtils.isNumber)(top) || !(0, _DataUtils.isNumber)(left)) {
-    return null;
-  }
-  return /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props), {
-    className: (0, _clsx.clsx)('recharts-cross', className),
-    d: getPath(x, y, width, height, top, left)
-  }));
-};
-exports.Cross = Cross;
Index: de_modules/recharts/lib/shape/Curve.js
===================================================================
--- node_modules/recharts/lib/shape/Curve.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,151 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getPath = exports.defaultCurveProps = exports.Curve = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _d3Shape = require("victory-vendor/d3-shape");
-var _clsx = require("clsx");
-var _types = require("../util/types");
-var _DataUtils = require("../util/DataUtils");
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
- * @fileOverview Curve
- */
-var CURVE_FACTORIES = {
-  curveBasisClosed: _d3Shape.curveBasisClosed,
-  curveBasisOpen: _d3Shape.curveBasisOpen,
-  curveBasis: _d3Shape.curveBasis,
-  curveBumpX: _d3Shape.curveBumpX,
-  curveBumpY: _d3Shape.curveBumpY,
-  curveLinearClosed: _d3Shape.curveLinearClosed,
-  curveLinear: _d3Shape.curveLinear,
-  curveMonotoneX: _d3Shape.curveMonotoneX,
-  curveMonotoneY: _d3Shape.curveMonotoneY,
-  curveNatural: _d3Shape.curveNatural,
-  curveStep: _d3Shape.curveStep,
-  curveStepAfter: _d3Shape.curveStepAfter,
-  curveStepBefore: _d3Shape.curveStepBefore
-};
-
-/**
- * @inline
- */
-
-var defined = p => (0, _isWellBehavedNumber.isWellBehavedNumber)(p.x) && (0, _isWellBehavedNumber.isWellBehavedNumber)(p.y);
-var areaDefined = d => d.base != null && defined(d.base) && defined(d);
-var getX = p => p.x;
-var getY = p => p.y;
-var getCurveFactory = (type, layout) => {
-  if (typeof type === 'function') {
-    return type;
-  }
-  var name = "curve".concat((0, _DataUtils.upperFirst)(type));
-  if ((name === 'curveMonotone' || name === 'curveBump') && layout) {
-    var factory = CURVE_FACTORIES["".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];
-    if (factory) {
-      return factory;
-    }
-  }
-  return CURVE_FACTORIES[name] || _d3Shape.curveLinear;
-};
-
-// Mouse event handlers receive the full Props, including the event handlers themselves.
-
-var defaultCurveProps = exports.defaultCurveProps = {
-  connectNulls: false,
-  type: 'linear'
-};
-
-/**
- * Calculate the path of curve. Returns null if points is an empty array.
- * @return path or null
- */
-var getPath = _ref => {
-  var {
-    type = defaultCurveProps.type,
-    points = [],
-    baseLine,
-    layout,
-    connectNulls = defaultCurveProps.connectNulls
-  } = _ref;
-  var curveFactory = getCurveFactory(type, layout);
-  var formatPoints = connectNulls ? points.filter(defined) : points;
-
-  // When dealing with an area chart (where `baseLine` is an array),
-  // we need to pair points with their corresponding `baseLine` points first.
-  // This is to ensure that we filter points and their baseline counterparts together,
-  // preventing errors from mismatched array lengths and ensuring `defined` checks both.
-  if (Array.isArray(baseLine)) {
-    var _lineFunction;
-    var areaPoints = points.map((entry, index) => _objectSpread(_objectSpread({}, entry), {}, {
-      base: baseLine[index]
-    }));
-    if (layout === 'vertical') {
-      _lineFunction = (0, _d3Shape.area)().y(getY).x1(getX).x0(d => d.base.x);
-    } else {
-      _lineFunction = (0, _d3Shape.area)().x(getX).y1(getY).y0(d => d.base.y);
-    }
-    /*
-     * What happens here is that the `.defined()` call will make it so that this function can accept
-     * nullable points, and internally it will filter them out and skip when generating the path.
-     * So on the input it accepts NullableCoordinate, but it never calls getX/getY on null points because of the defined() filter.
-     *
-     * The d3 type definition has only one generic so it doesn't allow to describe this properly.
-     * However. d3 types are mutable, but we can pretend that they are not, and we can pretend
-     * that calling defined() returns a new function with a different generic type.
-     */
-    // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that
-    var _nullableLineFunction = _lineFunction.defined(areaDefined).curve(curveFactory);
-    var finalPoints = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;
-    return _nullableLineFunction(finalPoints);
-  }
-  var lineFunction;
-  if (layout === 'vertical' && (0, _DataUtils.isNumber)(baseLine)) {
-    lineFunction = (0, _d3Shape.area)().y(getY).x1(getX).x0(baseLine);
-  } else if ((0, _DataUtils.isNumber)(baseLine)) {
-    lineFunction = (0, _d3Shape.area)().x(getX).y1(getY).y0(baseLine);
-  } else {
-    lineFunction = (0, _d3Shape.line)().x(getX).y(getY);
-  }
-
-  // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that
-  var nullableLineFunction = lineFunction.defined(defined).curve(curveFactory);
-  return nullableLineFunction(formatPoints);
-};
-exports.getPath = getPath;
-var Curve = props => {
-  var {
-    className,
-    points,
-    path,
-    pathRef
-  } = props;
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  if ((!points || !points.length) && !path) {
-    return null;
-  }
-  var getPathInput = {
-    type: props.type,
-    points: props.points,
-    baseLine: props.baseLine,
-    layout: props.layout || layout,
-    connectNulls: props.connectNulls
-  };
-  var realPath = points && points.length ? getPath(getPathInput) : path;
-  return /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props), (0, _types.adaptEventHandlers)(props), {
-    className: (0, _clsx.clsx)('recharts-curve', className),
-    d: realPath === null ? undefined : realPath,
-    ref: pathRef
-  }));
-};
-exports.Curve = Curve;
Index: de_modules/recharts/lib/shape/Dot.js
===================================================================
--- node_modules/recharts/lib/shape/Dot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Dot = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _types = require("../util/types");
-var _svgPropertiesNoEvents = require("../util/svgPropertiesNoEvents");
-var _DataUtils = require("../util/DataUtils");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-/**
- * Renders a dot in the chart.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceDot} component instead.
- *
- * @param props
- * @constructor
- */
-var Dot = props => {
-  var {
-    cx,
-    cy,
-    r,
-    className
-  } = props;
-  var layerClass = (0, _clsx.clsx)('recharts-dot', className);
-  if ((0, _DataUtils.isNumber)(cx) && (0, _DataUtils.isNumber)(cy) && (0, _DataUtils.isNumber)(r)) {
-    return /*#__PURE__*/React.createElement("circle", _extends({}, (0, _svgPropertiesNoEvents.svgPropertiesNoEvents)(props), (0, _types.adaptEventHandlers)(props), {
-      className: layerClass,
-      cx: cx,
-      cy: cy,
-      r: r
-    }));
-  }
-  return null;
-};
-exports.Dot = Dot;
Index: de_modules/recharts/lib/shape/Polygon.js
===================================================================
--- node_modules/recharts/lib/shape/Polygon.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,103 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Polygon = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _round = require("../util/round");
-var _excluded = ["points", "className", "baseLinePoints", "connectNulls"];
-var _templateObject;
-/**
- * @fileOverview Polygon
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-var isValidatePoint = point => {
-  return point != null && point.x === +point.x && point.y === +point.y;
-};
-var getParsedPoints = function getParsedPoints() {
-  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var segmentPoints = [[]];
-  points.forEach(entry => {
-    var lastLink = segmentPoints[segmentPoints.length - 1];
-    if (isValidatePoint(entry)) {
-      if (lastLink) {
-        lastLink.push(entry);
-      }
-    } else if (lastLink && lastLink.length > 0) {
-      // add another path
-      segmentPoints.push([]);
-    }
-  });
-  var firstPoint = points[0];
-  var lastLink = segmentPoints[segmentPoints.length - 1];
-  if (isValidatePoint(firstPoint) && lastLink) {
-    lastLink.push(firstPoint);
-  }
-  var finalLink = segmentPoints[segmentPoints.length - 1];
-  if (finalLink && finalLink.length <= 0) {
-    segmentPoints = segmentPoints.slice(0, -1);
-  }
-  return segmentPoints;
-};
-var getSinglePolygonPath = (points, connectNulls) => {
-  var segmentPoints = getParsedPoints(points);
-  if (connectNulls) {
-    segmentPoints = [segmentPoints.reduce((res, segPoints) => {
-      return [...res, ...segPoints];
-    }, [])];
-  }
-  var polygonPath = segmentPoints.map(segPoints => {
-    return segPoints.reduce((path, point, index) => {
-      return (0, _round.roundTemplateLiteral)(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "", "", ",", ""])), path, index === 0 ? 'M' : 'L', point.x, point.y);
-    }, '');
-  }).join('');
-  return segmentPoints.length === 1 ? "".concat(polygonPath, "Z") : polygonPath;
-};
-var getRanglePath = (points, baseLinePoints, connectNulls) => {
-  var outerPath = getSinglePolygonPath(points, connectNulls);
-  return "".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, "L").concat(getSinglePolygonPath(Array.from(baseLinePoints).reverse(), connectNulls).slice(1));
-};
-var Polygon = props => {
-  var {
-      points,
-      className,
-      baseLinePoints,
-      connectNulls
-    } = props,
-    others = _objectWithoutProperties(props, _excluded);
-  if (!points || !points.length) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-polygon', className);
-  if (baseLinePoints && baseLinePoints.length) {
-    var hasStroke = others.stroke && others.stroke !== 'none';
-    var rangePath = getRanglePath(points, baseLinePoints, connectNulls);
-    return /*#__PURE__*/React.createElement("g", {
-      className: layerClass
-    }, /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-      fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',
-      stroke: "none",
-      d: rangePath
-    })), hasStroke ? /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-      fill: "none",
-      d: getSinglePolygonPath(points, connectNulls)
-    })) : null, hasStroke ? /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-      fill: "none",
-      d: getSinglePolygonPath(baseLinePoints, connectNulls)
-    })) : null);
-  }
-  var singlePath = getSinglePolygonPath(points, connectNulls);
-  return /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(others), {
-    fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',
-    className: layerClass,
-    d: singlePath
-  }));
-};
-exports.Polygon = Polygon;
Index: de_modules/recharts/lib/shape/Rectangle.js
===================================================================
--- node_modules/recharts/lib/shape/Rectangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,219 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultRectangleProps = exports.Rectangle = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _DataUtils = require("../util/DataUtils");
-var _useAnimationId = require("../util/useAnimationId");
-var _util = require("../animation/util");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _round = require("../util/round");
-var _excluded = ["radius"],
-  _excluded2 = ["radius"];
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;
-/**
- * @fileOverview Rectangle
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-/**
- * @inline
- */
-
-var getRectanglePath = (x, y, width, height, radius) => {
-  var roundedWidth = (0, _round.round)(width);
-  var roundedHeight = (0, _round.round)(height);
-  var maxRadius = Math.min(Math.abs(roundedWidth) / 2, Math.abs(roundedHeight) / 2);
-  var ySign = roundedHeight >= 0 ? 1 : -1;
-  var xSign = roundedWidth >= 0 ? 1 : -1;
-  var clockWise = roundedHeight >= 0 && roundedWidth >= 0 || roundedHeight < 0 && roundedWidth < 0 ? 1 : 0;
-  var path;
-  if (maxRadius > 0 && Array.isArray(radius)) {
-    var newRadius = [0, 0, 0, 0];
-    for (var i = 0, len = 4; i < len; i++) {
-      var _radius$i;
-      var r = (_radius$i = radius[i]) !== null && _radius$i !== void 0 ? _radius$i : 0;
-      newRadius[i] = r > maxRadius ? maxRadius : r;
-    }
-    path = (0, _round.roundTemplateLiteral)(_templateObject || (_templateObject = _taggedTemplateLiteral(["M", ",", ""])), x, y + ySign * newRadius[0]);
-    if (newRadius[0] > 0) {
-      path += (0, _round.roundTemplateLiteral)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",", ",", ""])), newRadius[0], newRadius[0], clockWise, x + xSign * newRadius[0], y);
-    }
-    path += (0, _round.roundTemplateLiteral)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", ""])), x + width - xSign * newRadius[1], y);
-    if (newRadius[1] > 0) {
-      path += (0, _round.roundTemplateLiteral)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[1], newRadius[1], clockWise, x + width, y + ySign * newRadius[1]);
-    }
-    path += (0, _round.roundTemplateLiteral)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["L ", ",", ""])), x + width, y + height - ySign * newRadius[2]);
-    if (newRadius[2] > 0) {
-      path += (0, _round.roundTemplateLiteral)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[2], newRadius[2], clockWise, x + width - xSign * newRadius[2], y + height);
-    }
-    path += (0, _round.roundTemplateLiteral)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["L ", ",", ""])), x + xSign * newRadius[3], y + height);
-    if (newRadius[3] > 0) {
-      path += (0, _round.roundTemplateLiteral)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["A ", ",", ",0,0,", ",\n        ", ",", ""])), newRadius[3], newRadius[3], clockWise, x, y + height - ySign * newRadius[3]);
-    }
-    path += 'Z';
-  } else if (maxRadius > 0 && radius === +radius && radius > 0) {
-    var _newRadius = Math.min(maxRadius, radius);
-    path = (0, _round.roundTemplateLiteral)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["M ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", "\n            L ", ",", "\n            A ", ",", ",0,0,", ",", ",", " Z"])), x, y + ySign * _newRadius, _newRadius, _newRadius, clockWise, x + xSign * _newRadius, y, x + width - xSign * _newRadius, y, _newRadius, _newRadius, clockWise, x + width, y + ySign * _newRadius, x + width, y + height - ySign * _newRadius, _newRadius, _newRadius, clockWise, x + width - xSign * _newRadius, y + height, x + xSign * _newRadius, y + height, _newRadius, _newRadius, clockWise, x, y + height - ySign * _newRadius);
-  } else {
-    path = (0, _round.roundTemplateLiteral)(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["M ", ",", " h ", " v ", " h ", " Z"])), x, y, width, height, -width);
-  }
-  return path;
-};
-var defaultRectangleProps = exports.defaultRectangleProps = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  radius: 0,
-  isAnimationActive: false,
-  isUpdateAnimationActive: false,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease'
-};
-
-/**
- * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners
- * and animation.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceArea} component instead.
- *
- * @param rectangleProps
- * @constructor
- */
-var Rectangle = rectangleProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(rectangleProps, defaultRectangleProps);
-  var pathRef = (0, _react.useRef)(null);
-  var [totalLength, setTotalLength] = (0, _react.useState)(-1);
-  (0, _react.useEffect)(() => {
-    if (pathRef.current && pathRef.current.getTotalLength) {
-      try {
-        var pathTotalLength = pathRef.current.getTotalLength();
-        if (pathTotalLength) {
-          setTotalLength(pathTotalLength);
-        }
-      } catch (_unused) {
-        // calculate total length error
-      }
-    }
-  }, []);
-  var {
-    x,
-    y,
-    width,
-    height,
-    radius,
-    className
-  } = props;
-  var {
-    animationEasing,
-    animationDuration,
-    animationBegin,
-    isAnimationActive,
-    isUpdateAnimationActive
-  } = props;
-  var prevWidthRef = (0, _react.useRef)(width);
-  var prevHeightRef = (0, _react.useRef)(height);
-  var prevXRef = (0, _react.useRef)(x);
-  var prevYRef = (0, _react.useRef)(y);
-  var animationIdInput = (0, _react.useMemo)(() => ({
-    x,
-    y,
-    width,
-    height,
-    radius
-  }), [x, y, width, height, radius]);
-  var animationId = (0, _useAnimationId.useAnimationId)(animationIdInput, 'rectangle-');
-  if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-rectangle', className);
-  if (!isUpdateAnimationActive) {
-    var _svgPropertiesAndEven = (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props),
-      {
-        radius: _
-      } = _svgPropertiesAndEven,
-      otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven, _excluded);
-    return /*#__PURE__*/React.createElement("path", _extends({}, otherPathProps, {
-      x: (0, _round.round)(x),
-      y: (0, _round.round)(y),
-      width: (0, _round.round)(width),
-      height: (0, _round.round)(height),
-      radius: typeof radius === 'number' ? radius : undefined,
-      className: layerClass,
-      d: getRectanglePath(x, y, width, height, radius)
-    }));
-  }
-  var prevWidth = prevWidthRef.current;
-  var prevHeight = prevHeightRef.current;
-  var prevX = prevXRef.current;
-  var prevY = prevYRef.current;
-  var from = "0px ".concat(totalLength === -1 ? 1 : totalLength, "px");
-  var to = "".concat(totalLength, "px 0px");
-  var transition = (0, _util.getTransitionVal)(['strokeDasharray'], animationDuration, typeof animationEasing === 'string' ? animationEasing : defaultRectangleProps.animationEasing);
-  return /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    key: animationId,
-    canBegin: totalLength > 0,
-    duration: animationDuration,
-    easing: animationEasing,
-    isActive: isUpdateAnimationActive,
-    begin: animationBegin
-  }, t => {
-    var currWidth = (0, _DataUtils.interpolate)(prevWidth, width, t);
-    var currHeight = (0, _DataUtils.interpolate)(prevHeight, height, t);
-    var currX = (0, _DataUtils.interpolate)(prevX, x, t);
-    var currY = (0, _DataUtils.interpolate)(prevY, y, t);
-    if (pathRef.current) {
-      prevWidthRef.current = currWidth;
-      prevHeightRef.current = currHeight;
-      prevXRef.current = currX;
-      prevYRef.current = currY;
-    }
-    var animationStyle;
-    if (!isAnimationActive) {
-      animationStyle = {
-        strokeDasharray: to
-      };
-    } else if (t > 0) {
-      animationStyle = {
-        transition,
-        strokeDasharray: to
-      };
-    } else {
-      animationStyle = {
-        strokeDasharray: from
-      };
-    }
-    var _svgPropertiesAndEven2 = (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props),
-      {
-        radius: _
-      } = _svgPropertiesAndEven2,
-      otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven2, _excluded2);
-    return /*#__PURE__*/React.createElement("path", _extends({}, otherPathProps, {
-      radius: typeof radius === 'number' ? radius : undefined,
-      className: layerClass,
-      d: getRectanglePath(currX, currY, currWidth, currHeight, radius),
-      ref: pathRef,
-      style: _objectSpread(_objectSpread({}, animationStyle), props.style)
-    }));
-  });
-};
-exports.Rectangle = Rectangle;
Index: de_modules/recharts/lib/shape/Sector.js
===================================================================
--- node_modules/recharts/lib/shape/Sector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,233 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultSectorProps = exports.Sector = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _clsx = require("clsx");
-var _PolarUtils = require("../util/PolarUtils");
-var _DataUtils = require("../util/DataUtils");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _round = require("../util/round");
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-var getDeltaAngle = (startAngle, endAngle) => {
-  var sign = (0, _DataUtils.mathSign)(endAngle - startAngle);
-  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);
-  return sign * deltaAngle;
-};
-var getTangentCircle = _ref => {
-  var {
-    cx,
-    cy,
-    radius,
-    angle,
-    sign,
-    isExternal,
-    cornerRadius,
-    cornerIsExternal
-  } = _ref;
-  var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;
-  var theta = Math.asin(cornerRadius / centerRadius) / _PolarUtils.RADIAN;
-  var centerAngle = cornerIsExternal ? angle : angle + sign * theta;
-  var center = (0, _PolarUtils.polarToCartesian)(cx, cy, centerRadius, centerAngle);
-  // The coordinate of point which is tangent to the circle
-  var circleTangency = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, centerAngle);
-  // The coordinate of point which is tangent to the radius line
-  var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;
-  var lineTangency = (0, _PolarUtils.polarToCartesian)(cx, cy, centerRadius * Math.cos(theta * _PolarUtils.RADIAN), lineTangencyAngle);
-  return {
-    center,
-    circleTangency,
-    lineTangency,
-    theta
-  };
-};
-var getSectorPath = _ref2 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle
-  } = _ref2;
-  var angle = getDeltaAngle(startAngle, endAngle);
-
-  // When the angle of sector equals to 360, star point and end point coincide
-  var tempEndAngle = startAngle + angle;
-  var outerStartPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, outerRadius, startAngle);
-  var outerEndPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, outerRadius, tempEndAngle);
-  var path = (0, _round.roundTemplateLiteral)(_templateObject || (_templateObject = _taggedTemplateLiteral(["M ", ",", "\n    A ", ",", ",0,\n    ", ",", ",\n    ", ",", "\n  "])), outerStartPoint.x, outerStartPoint.y, outerRadius, outerRadius, +(Math.abs(angle) > 180), +(startAngle > tempEndAngle), outerEndPoint.x, outerEndPoint.y);
-  if (innerRadius > 0) {
-    var innerStartPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, innerRadius, startAngle);
-    var innerEndPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, innerRadius, tempEndAngle);
-    path += (0, _round.roundTemplateLiteral)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["L ", ",", "\n            A ", ",", ",0,\n            ", ",", ",\n            ", ",", " Z"])), innerEndPoint.x, innerEndPoint.y, innerRadius, innerRadius, +(Math.abs(angle) > 180), +(startAngle <= tempEndAngle), innerStartPoint.x, innerStartPoint.y);
-  } else {
-    path += (0, _round.roundTemplateLiteral)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", " Z"])), cx, cy);
-  }
-  return path;
-};
-var getSectorWithCorner = _ref3 => {
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    cornerRadius,
-    forceCornerRadius,
-    cornerIsExternal,
-    startAngle,
-    endAngle
-  } = _ref3;
-  var sign = (0, _DataUtils.mathSign)(endAngle - startAngle);
-  var {
-    circleTangency: soct,
-    lineTangency: solt,
-    theta: sot
-  } = getTangentCircle({
-    cx,
-    cy,
-    radius: outerRadius,
-    angle: startAngle,
-    sign,
-    cornerRadius,
-    cornerIsExternal
-  });
-  var {
-    circleTangency: eoct,
-    lineTangency: eolt,
-    theta: eot
-  } = getTangentCircle({
-    cx,
-    cy,
-    radius: outerRadius,
-    angle: endAngle,
-    sign: -sign,
-    cornerRadius,
-    cornerIsExternal
-  });
-  var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;
-  if (outerArcAngle < 0) {
-    if (forceCornerRadius) {
-      return (0, _round.roundTemplateLiteral)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["M ", ",", "\n        a", ",", ",0,0,1,", ",0\n        a", ",", ",0,0,1,", ",0\n      "])), solt.x, solt.y, cornerRadius, cornerRadius, cornerRadius * 2, cornerRadius, cornerRadius, -cornerRadius * 2);
-    }
-    return getSectorPath({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      endAngle
-    });
-  }
-  var path = (0, _round.roundTemplateLiteral)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["M ", ",", "\n    A", ",", ",0,0,", ",", ",", "\n    A", ",", ",0,", ",", ",", ",", "\n    A", ",", ",0,0,", ",", ",", "\n  "])), solt.x, solt.y, cornerRadius, cornerRadius, +(sign < 0), soct.x, soct.y, outerRadius, outerRadius, +(outerArcAngle > 180), +(sign < 0), eoct.x, eoct.y, cornerRadius, cornerRadius, +(sign < 0), eolt.x, eolt.y);
-  if (innerRadius > 0) {
-    var {
-      circleTangency: sict,
-      lineTangency: silt,
-      theta: sit
-    } = getTangentCircle({
-      cx,
-      cy,
-      radius: innerRadius,
-      angle: startAngle,
-      sign,
-      isExternal: true,
-      cornerRadius,
-      cornerIsExternal
-    });
-    var {
-      circleTangency: eict,
-      lineTangency: eilt,
-      theta: eit
-    } = getTangentCircle({
-      cx,
-      cy,
-      radius: innerRadius,
-      angle: endAngle,
-      sign: -sign,
-      isExternal: true,
-      cornerRadius,
-      cornerIsExternal
-    });
-    var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;
-    if (innerArcAngle < 0 && cornerRadius === 0) {
-      return "".concat(path, "L").concat(cx, ",").concat(cy, "Z");
-    }
-    path += (0, _round.roundTemplateLiteral)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["L", ",", "\n      A", ",", ",0,0,", ",", ",", "\n      A", ",", ",0,", ",", ",", ",", "\n      A", ",", ",0,0,", ",", ",", "Z"])), eilt.x, eilt.y, cornerRadius, cornerRadius, +(sign < 0), eict.x, eict.y, innerRadius, innerRadius, +(innerArcAngle > 180), +(sign > 0), sict.x, sict.y, cornerRadius, cornerRadius, +(sign < 0), silt.x, silt.y);
-  } else {
-    path += (0, _round.roundTemplateLiteral)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["L", ",", "Z"])), cx, cy);
-  }
-  return path;
-};
-
-/**
- * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's
- * override the types here.
- */
-
-var defaultSectorProps = exports.defaultSectorProps = {
-  cx: 0,
-  cy: 0,
-  innerRadius: 0,
-  outerRadius: 0,
-  startAngle: 0,
-  endAngle: 0,
-  cornerRadius: 0,
-  forceCornerRadius: false,
-  cornerIsExternal: false
-};
-var Sector = sectorProps => {
-  var props = (0, _resolveDefaultProps.resolveDefaultProps)(sectorProps, defaultSectorProps);
-  var {
-    cx,
-    cy,
-    innerRadius,
-    outerRadius,
-    cornerRadius,
-    forceCornerRadius,
-    cornerIsExternal,
-    startAngle,
-    endAngle,
-    className
-  } = props;
-  if (outerRadius < innerRadius || startAngle === endAngle) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-sector', className);
-  var deltaRadius = outerRadius - innerRadius;
-  var cr = (0, _DataUtils.getPercentValue)(cornerRadius, deltaRadius, 0, true);
-  var path;
-  if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {
-    path = getSectorWithCorner({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      cornerRadius: Math.min(cr, deltaRadius / 2),
-      forceCornerRadius,
-      cornerIsExternal,
-      startAngle,
-      endAngle
-    });
-  } else {
-    path = getSectorPath({
-      cx,
-      cy,
-      innerRadius,
-      outerRadius,
-      startAngle,
-      endAngle
-    });
-  }
-  return /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props), {
-    className: layerClass,
-    d: path
-  }));
-};
-exports.Sector = Sector;
Index: de_modules/recharts/lib/shape/Symbols.js
===================================================================
--- node_modules/recharts/lib/shape/Symbols.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,120 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Symbols = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _d3Shape = require("victory-vendor/d3-shape");
-var _clsx = require("clsx");
-var _DataUtils = require("../util/DataUtils");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _excluded = ["type", "size", "sizeType"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-var symbolFactories = {
-  symbolCircle: _d3Shape.symbolCircle,
-  symbolCross: _d3Shape.symbolCross,
-  symbolDiamond: _d3Shape.symbolDiamond,
-  symbolSquare: _d3Shape.symbolSquare,
-  symbolStar: _d3Shape.symbolStar,
-  symbolTriangle: _d3Shape.symbolTriangle,
-  symbolWye: _d3Shape.symbolWye
-};
-var RADIAN = Math.PI / 180;
-var getSymbolFactory = type => {
-  var name = "symbol".concat((0, _DataUtils.upperFirst)(type));
-  return symbolFactories[name] || _d3Shape.symbolCircle;
-};
-var calculateAreaSize = (size, sizeType, type) => {
-  if (sizeType === 'area') {
-    return size;
-  }
-  switch (type) {
-    case 'cross':
-      return 5 * size * size / 9;
-    case 'diamond':
-      return 0.5 * size * size / Math.sqrt(3);
-    case 'square':
-      return size * size;
-    case 'star':
-      {
-        var angle = 18 * RADIAN;
-        return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.tan(angle) ** 2);
-      }
-    case 'triangle':
-      return Math.sqrt(3) * size * size / 4;
-    case 'wye':
-      return (21 - 10 * Math.sqrt(3)) * size * size / 8;
-    default:
-      return Math.PI * size * size / 4;
-  }
-};
-var registerSymbol = (key, factory) => {
-  symbolFactories["symbol".concat((0, _DataUtils.upperFirst)(key))] = factory;
-};
-
-/**
- * Renders a symbol from a set of predefined shapes.
- */
-var Symbols = _ref => {
-  var {
-      type = 'circle',
-      size = 64,
-      sizeType = 'area'
-    } = _ref,
-    rest = _objectWithoutProperties(_ref, _excluded);
-  var props = _objectSpread(_objectSpread({}, rest), {}, {
-    type,
-    size,
-    sizeType
-  });
-  var realType = 'circle';
-  if (typeof type === 'string') {
-    /*
-     * Our type guard is not as strong as it could be (i.e. non-existent),
-     * and so despite the typescript type saying that `type` is a `SymbolType`,
-     * we can get numbers or really anything, so let's have a runtime check here to fix the exception.
-     *
-     * https://github.com/recharts/recharts/issues/6197
-     */
-    realType = type;
-  }
-
-  /**
-   * Calculate the path of curve
-   * @return {String} path
-   */
-  var getPath = () => {
-    var symbolFactory = getSymbolFactory(realType);
-    var symbol = (0, _d3Shape.symbol)().type(symbolFactory).size(calculateAreaSize(size, sizeType, realType));
-    var s = symbol();
-    if (s === null) {
-      return undefined;
-    }
-    return s;
-  };
-  var {
-    className,
-    cx,
-    cy
-  } = props;
-  var filteredProps = (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(props);
-  if ((0, _DataUtils.isNumber)(cx) && (0, _DataUtils.isNumber)(cy) && (0, _DataUtils.isNumber)(size)) {
-    return /*#__PURE__*/React.createElement("path", _extends({}, filteredProps, {
-      className: (0, _clsx.clsx)('recharts-symbols', className),
-      transform: "translate(".concat(cx, ", ").concat(cy, ")"),
-      d: getPath()
-    }));
-  }
-  return null;
-};
-exports.Symbols = Symbols;
-Symbols.registerSymbol = registerSymbol;
Index: de_modules/recharts/lib/shape/Trapezoid.js
===================================================================
--- node_modules/recharts/lib/shape/Trapezoid.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultTrapezoidProps = exports.Trapezoid = void 0;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _clsx = require("clsx");
-var _resolveDefaultProps = require("../util/resolveDefaultProps");
-var _JavascriptAnimate = require("../animation/JavascriptAnimate");
-var _useAnimationId = require("../util/useAnimationId");
-var _DataUtils = require("../util/DataUtils");
-var _util = require("../animation/util");
-var _svgPropertiesAndEvents = require("../util/svgPropertiesAndEvents");
-var _round = require("../util/round");
-var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
-/**
- * @fileOverview Rectangle
- */
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
-var getTrapezoidPath = (x, y, upperWidth, lowerWidth, height) => {
-  var widthGap = upperWidth - lowerWidth;
-  var path;
-  path = (0, _round.roundTemplateLiteral)(_templateObject || (_templateObject = _taggedTemplateLiteral(["M ", ",", ""])), x, y);
-  path += (0, _round.roundTemplateLiteral)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth, y);
-  path += (0, _round.roundTemplateLiteral)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth - widthGap / 2, y + height);
-  path += (0, _round.roundTemplateLiteral)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["L ", ",", ""])), x + upperWidth - widthGap / 2 - lowerWidth, y + height);
-  path += (0, _round.roundTemplateLiteral)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["L ", ",", " Z"])), x, y);
-  return path;
-};
-var defaultTrapezoidProps = exports.defaultTrapezoidProps = {
-  x: 0,
-  y: 0,
-  upperWidth: 0,
-  lowerWidth: 0,
-  height: 0,
-  isUpdateAnimationActive: false,
-  animationBegin: 0,
-  animationDuration: 1500,
-  animationEasing: 'ease'
-};
-var Trapezoid = outsideProps => {
-  var trapezoidProps = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultTrapezoidProps);
-  var {
-    x,
-    y,
-    upperWidth,
-    lowerWidth,
-    height,
-    className
-  } = trapezoidProps;
-  var {
-    animationEasing,
-    animationDuration,
-    animationBegin,
-    isUpdateAnimationActive
-  } = trapezoidProps;
-  var pathRef = (0, _react.useRef)(null);
-  var [totalLength, setTotalLength] = (0, _react.useState)(-1);
-  var prevUpperWidthRef = (0, _react.useRef)(upperWidth);
-  var prevLowerWidthRef = (0, _react.useRef)(lowerWidth);
-  var prevHeightRef = (0, _react.useRef)(height);
-  var prevXRef = (0, _react.useRef)(x);
-  var prevYRef = (0, _react.useRef)(y);
-  var animationId = (0, _useAnimationId.useAnimationId)(outsideProps, 'trapezoid-');
-  (0, _react.useEffect)(() => {
-    if (pathRef.current && pathRef.current.getTotalLength) {
-      try {
-        var pathTotalLength = pathRef.current.getTotalLength();
-        if (pathTotalLength) {
-          setTotalLength(pathTotalLength);
-        }
-      } catch (_unused) {
-        // calculate total length error
-      }
-    }
-  }, []);
-  if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {
-    return null;
-  }
-  var layerClass = (0, _clsx.clsx)('recharts-trapezoid', className);
-  if (!isUpdateAnimationActive) {
-    return /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(trapezoidProps), {
-      className: layerClass,
-      d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)
-    })));
-  }
-  var prevUpperWidth = prevUpperWidthRef.current;
-  var prevLowerWidth = prevLowerWidthRef.current;
-  var prevHeight = prevHeightRef.current;
-  var prevX = prevXRef.current;
-  var prevY = prevYRef.current;
-  var from = "0px ".concat(totalLength === -1 ? 1 : totalLength, "px");
-  var to = "".concat(totalLength, "px 0px");
-  var transition = (0, _util.getTransitionVal)(['strokeDasharray'], animationDuration, animationEasing);
-  return /*#__PURE__*/React.createElement(_JavascriptAnimate.JavascriptAnimate, {
-    animationId: animationId,
-    key: animationId,
-    canBegin: totalLength > 0,
-    duration: animationDuration,
-    easing: animationEasing,
-    isActive: isUpdateAnimationActive,
-    begin: animationBegin
-  }, t => {
-    var currUpperWidth = (0, _DataUtils.interpolate)(prevUpperWidth, upperWidth, t);
-    var currLowerWidth = (0, _DataUtils.interpolate)(prevLowerWidth, lowerWidth, t);
-    var currHeight = (0, _DataUtils.interpolate)(prevHeight, height, t);
-    var currX = (0, _DataUtils.interpolate)(prevX, x, t);
-    var currY = (0, _DataUtils.interpolate)(prevY, y, t);
-    if (pathRef.current) {
-      prevUpperWidthRef.current = currUpperWidth;
-      prevLowerWidthRef.current = currLowerWidth;
-      prevHeightRef.current = currHeight;
-      prevXRef.current = currX;
-      prevYRef.current = currY;
-    }
-    var animationStyle = t > 0 ? {
-      transition,
-      strokeDasharray: to
-    } : {
-      strokeDasharray: from
-    };
-    return /*#__PURE__*/React.createElement("path", _extends({}, (0, _svgPropertiesAndEvents.svgPropertiesAndEvents)(trapezoidProps), {
-      className: layerClass,
-      d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),
-      ref: pathRef,
-      style: _objectSpread(_objectSpread({}, animationStyle), trapezoidProps.style)
-    }));
-  });
-};
-exports.Trapezoid = Trapezoid;
Index: de_modules/recharts/lib/state/RechartsReduxContext.js
===================================================================
--- node_modules/recharts/lib/state/RechartsReduxContext.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RechartsReduxContext = void 0;
-var _react = require("react");
-/*
- * This is a copy of the React-Redux context type, but with our own store type.
- * We could import directly from react-redux like this:
- * import { ReactReduxContextValue } from 'react-redux/src/components/Context';
- * but that makes typescript angry with some errors I am not sure how to resolve
- * so copy it is.
- */
-
-/**
- * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores
- * in case they decide to install and use Recharts in another Redux app which is likely to happen.
- *
- * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context
- */
-var RechartsReduxContext = exports.RechartsReduxContext = /*#__PURE__*/(0, _react.createContext)(null);
Index: de_modules/recharts/lib/state/RechartsStoreProvider.js
===================================================================
--- node_modules/recharts/lib/state/RechartsStoreProvider.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RechartsStoreProvider = RechartsStoreProvider;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _reactRedux = require("react-redux");
-var _store = require("./store");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _RechartsReduxContext = require("./RechartsReduxContext");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function RechartsStoreProvider(_ref) {
-  var {
-    preloadedState,
-    children,
-    reduxStoreName
-  } = _ref;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  /*
-   * Why the ref? Redux official documentation recommends to use store as a singleton,
-   * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example
-   *
-   * Which is correct! Except that is considering deploying Redux in an app.
-   * Recharts as a library supports multiple charts on the same page.
-   * And each of these charts needs its own store independent of others!
-   *
-   * The alternative is to have everything in the store keyed by the chart id.
-   * Which would make working with everything a little bit more painful because we need the chart id everywhere.
-   */
-  var storeRef = (0, _react.useRef)(null);
-
-  /*
-   * Panorama means that this chart is not its own chart, it's only a "preview"
-   * being rendered as a child of Brush.
-   * In such case, it should not have a store on its own - it should implicitly inherit
-   * whatever data is in the "parent" or "root" chart.
-   * Which here is represented by not having a Provider at all. All selectors will use the root store by default.
-   */
-  if (isPanorama) {
-    return children;
-  }
-  if (storeRef.current == null) {
-    storeRef.current = (0, _store.createRechartsStore)(preloadedState, reduxStoreName);
-  }
-
-  // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.
-  var nonNullContext = _RechartsReduxContext.RechartsReduxContext;
-  return /*#__PURE__*/React.createElement(_reactRedux.Provider, {
-    context: nonNullContext,
-    store: storeRef.current
-  }, children);
-}
Index: de_modules/recharts/lib/state/ReportChartProps.js
===================================================================
--- node_modules/recharts/lib/state/ReportChartProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReportChartProps = ReportChartProps;
-var _react = require("react");
-var _rootPropsSlice = require("./rootPropsSlice");
-var _hooks = require("./hooks");
-function ReportChartProps(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _rootPropsSlice.updateOptions)(props));
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/lib/state/ReportMainChartProps.js
===================================================================
--- node_modules/recharts/lib/state/ReportMainChartProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReportMainChartProps = void 0;
-var _react = require("react");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _layoutSlice = require("./layoutSlice");
-var _hooks = require("./hooks");
-var _propsAreEqual = require("../util/propsAreEqual");
-/**
- * "Main" props are props that are only accepted on the main chart,
- * as opposed to the small panorama chart inside a Brush.
- */
-
-function ReportMainChartPropsImpl(_ref) {
-  var {
-    layout,
-    margin
-  } = _ref;
-  var dispatch = (0, _hooks.useAppDispatch)();
-
-  /*
-   * Skip dispatching properties in panorama chart for two reasons:
-   * 1. The root chart should be deciding on these properties, and
-   * 2. Brush reads these properties from redux store, and so they must remain stable
-   *      to avoid circular dependency and infinite re-rendering.
-   */
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  /*
-   * useEffect here is required to avoid the "Cannot update a component while rendering a different component" error.
-   * https://github.com/facebook/react/issues/18178
-   *
-   * Reported in https://github.com/recharts/recharts/issues/5514
-   */
-  (0, _react.useEffect)(() => {
-    if (!isPanorama) {
-      dispatch((0, _layoutSlice.setLayout)(layout));
-      dispatch((0, _layoutSlice.setMargin)(margin));
-    }
-  }, [dispatch, isPanorama, layout, margin]);
-  return null;
-}
-var ReportMainChartProps = exports.ReportMainChartProps = /*#__PURE__*/(0, _react.memo)(ReportMainChartPropsImpl, _propsAreEqual.propsAreEqual);
Index: de_modules/recharts/lib/state/ReportPolarOptions.js
===================================================================
--- node_modules/recharts/lib/state/ReportPolarOptions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ReportPolarOptions = ReportPolarOptions;
-var _react = require("react");
-var _hooks = require("./hooks");
-var _polarOptionsSlice = require("./polarOptionsSlice");
-function ReportPolarOptions(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _polarOptionsSlice.updatePolarOptions)(props));
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/lib/state/SetGraphicalItem.js
===================================================================
--- node_modules/recharts/lib/state/SetGraphicalItem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SetCartesianGraphicalItem = void 0;
-exports.SetPolarGraphicalItem = SetPolarGraphicalItem;
-var _react = require("react");
-var _hooks = require("./hooks");
-var _graphicalItemsSlice = require("./graphicalItemsSlice");
-var SetCartesianGraphicalItemImpl = props => {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var prevPropsRef = (0, _react.useRef)(null);
-  (0, _react.useLayoutEffect)(() => {
-    if (prevPropsRef.current === null) {
-      dispatch((0, _graphicalItemsSlice.addCartesianGraphicalItem)(props));
-    } else if (prevPropsRef.current !== props) {
-      dispatch((0, _graphicalItemsSlice.replaceCartesianGraphicalItem)({
-        prev: prevPropsRef.current,
-        next: props
-      }));
-    }
-    prevPropsRef.current = props;
-  }, [dispatch, props]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevPropsRef.current) {
-        dispatch((0, _graphicalItemsSlice.removeCartesianGraphicalItem)(prevPropsRef.current));
-        /*
-         * Here we have to reset the ref to null because in StrictMode, the effect will run twice,
-         * but it will keep the same ref value from the first render.
-         *
-         * In browser, React will clear the ref after the first effect cleanup,
-         * so that wouldn't be an issue.
-         *
-         * In StrictMode, however, the ref is kept,
-         * and in the hook above the code checks for `prevPropsRef.current === null`
-         * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.
-         *
-         * https://github.com/recharts/recharts/issues/6022
-         */
-        prevPropsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-};
-var SetCartesianGraphicalItem = exports.SetCartesianGraphicalItem = /*#__PURE__*/(0, _react.memo)(SetCartesianGraphicalItemImpl);
-function SetPolarGraphicalItem(props) {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useLayoutEffect)(() => {
-    dispatch((0, _graphicalItemsSlice.addPolarGraphicalItem)(props));
-    return () => {
-      dispatch((0, _graphicalItemsSlice.removePolarGraphicalItem)(props));
-    };
-  }, [dispatch, props]);
-  return null;
-}
Index: de_modules/recharts/lib/state/SetLegendPayload.js
===================================================================
--- node_modules/recharts/lib/state/SetLegendPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SetLegendPayload = SetLegendPayload;
-exports.SetPolarLegendPayload = SetPolarLegendPayload;
-var _react = require("react");
-var _PanoramaContext = require("../context/PanoramaContext");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _hooks = require("./hooks");
-var _legendSlice = require("./legendSlice");
-function SetLegendPayload(_ref) {
-  var {
-    legendPayload
-  } = _ref;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var prevPayloadRef = (0, _react.useRef)(null);
-  (0, _react.useLayoutEffect)(() => {
-    if (isPanorama) {
-      return;
-    }
-    if (prevPayloadRef.current === null) {
-      dispatch((0, _legendSlice.addLegendPayload)(legendPayload));
-    } else if (prevPayloadRef.current !== legendPayload) {
-      dispatch((0, _legendSlice.replaceLegendPayload)({
-        prev: prevPayloadRef.current,
-        next: legendPayload
-      }));
-    }
-    prevPayloadRef.current = legendPayload;
-  }, [dispatch, isPanorama, legendPayload]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevPayloadRef.current) {
-        dispatch((0, _legendSlice.removeLegendPayload)(prevPayloadRef.current));
-        prevPayloadRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
-function SetPolarLegendPayload(_ref2) {
-  var {
-    legendPayload
-  } = _ref2;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var layout = (0, _hooks.useAppSelector)(_chartLayoutContext.selectChartLayout);
-  var prevPayloadRef = (0, _react.useRef)(null);
-  (0, _react.useLayoutEffect)(() => {
-    if (layout !== 'centric' && layout !== 'radial') {
-      return;
-    }
-    if (prevPayloadRef.current === null) {
-      dispatch((0, _legendSlice.addLegendPayload)(legendPayload));
-    } else if (prevPayloadRef.current !== legendPayload) {
-      dispatch((0, _legendSlice.replaceLegendPayload)({
-        prev: prevPayloadRef.current,
-        next: legendPayload
-      }));
-    }
-    prevPayloadRef.current = legendPayload;
-  }, [dispatch, layout, legendPayload]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevPayloadRef.current) {
-        dispatch((0, _legendSlice.removeLegendPayload)(prevPayloadRef.current));
-        prevPayloadRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
Index: de_modules/recharts/lib/state/SetTooltipEntrySettings.js
===================================================================
--- node_modules/recharts/lib/state/SetTooltipEntrySettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SetTooltipEntrySettings = SetTooltipEntrySettings;
-var _react = require("react");
-var _hooks = require("./hooks");
-var _tooltipSlice = require("./tooltipSlice");
-var _PanoramaContext = require("../context/PanoramaContext");
-function SetTooltipEntrySettings(_ref) {
-  var {
-    tooltipEntrySettings
-  } = _ref;
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var prevSettingsRef = (0, _react.useRef)(null);
-  (0, _react.useLayoutEffect)(() => {
-    if (isPanorama) {
-      // Panorama graphical items should never contribute to Tooltip payload.
-      return;
-    }
-    if (prevSettingsRef.current === null) {
-      dispatch((0, _tooltipSlice.addTooltipEntrySettings)(tooltipEntrySettings));
-    } else if (prevSettingsRef.current !== tooltipEntrySettings) {
-      dispatch((0, _tooltipSlice.replaceTooltipEntrySettings)({
-        prev: prevSettingsRef.current,
-        next: tooltipEntrySettings
-      }));
-    }
-    prevSettingsRef.current = tooltipEntrySettings;
-  }, [tooltipEntrySettings, dispatch, isPanorama]);
-  (0, _react.useLayoutEffect)(() => {
-    return () => {
-      if (prevSettingsRef.current) {
-        dispatch((0, _tooltipSlice.removeTooltipEntrySettings)(prevSettingsRef.current));
-        prevSettingsRef.current = null;
-      }
-    };
-  }, [dispatch]);
-  return null;
-}
Index: de_modules/recharts/lib/state/brushSlice.js
===================================================================
--- node_modules/recharts/lib/state/brushSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.setBrushSettings = exports.brushSlice = exports.brushReducer = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-/**
- * From all Brush properties, only height has a default value and will always be defined.
- * Other properties are nullable and will be computed from offsets and margins if they are not set.
- */
-
-var initialState = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0,
-  padding: {
-    top: 0,
-    right: 0,
-    bottom: 0,
-    left: 0
-  }
-};
-var brushSlice = exports.brushSlice = (0, _toolkit.createSlice)({
-  name: 'brush',
-  initialState,
-  reducers: {
-    setBrushSettings(_state, action) {
-      if (action.payload == null) {
-        return initialState;
-      }
-      return action.payload;
-    }
-  }
-});
-var {
-  setBrushSettings
-} = brushSlice.actions;
-exports.setBrushSettings = setBrushSettings;
-var brushReducer = exports.brushReducer = brushSlice.reducer;
Index: de_modules/recharts/lib/state/cartesianAxisSlice.js
===================================================================
--- node_modules/recharts/lib/state/cartesianAxisSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,177 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.updateYAxisWidth = exports.replaceZAxis = exports.replaceYAxis = exports.replaceXAxis = exports.removeZAxis = exports.removeYAxis = exports.removeXAxis = exports.defaultAxisId = exports.cartesianAxisReducer = exports.addZAxis = exports.addYAxis = exports.addXAxis = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * @inline
- */
-
-var defaultAxisId = exports.defaultAxisId = 0;
-
-/**
- * Properties shared in X, Y, and Z axes.
- * User defined axis settings, coming from props.
- */
-
-/**
- * These are the external props, visible for users as they set them using our public API.
- * There is all sorts of internal computed things based on these, but they will come through selectors.
- *
- * Properties shared between X and Y axes
- */
-
-/**
- * Z axis is special because it's never displayed. It controls the size of Scatter dots,
- * but it never displays ticks anywhere.
- */
-
-var initialState = {
-  xAxis: {},
-  yAxis: {},
-  zAxis: {}
-};
-
-/**
- * This is the slice where each individual Axis element pushes its own configuration.
- * Prefer to use this one instead of axisSlice.
- */
-var cartesianAxisSlice = (0, _toolkit.createSlice)({
-  name: 'cartesianAxis',
-  initialState,
-  reducers: {
-    addXAxis: {
-      reducer(state, action) {
-        state.xAxis[action.payload.id] = (0, _immer.castDraft)(action.payload);
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceXAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.xAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.xAxis[prev.id];
-          }
-          state.xAxis[next.id] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeXAxis: {
-      reducer(state, action) {
-        delete state.xAxis[action.payload.id];
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    addYAxis: {
-      reducer(state, action) {
-        state.yAxis[action.payload.id] = (0, _immer.castDraft)(action.payload);
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceYAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.yAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.yAxis[prev.id];
-          }
-          state.yAxis[next.id] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeYAxis: {
-      reducer(state, action) {
-        delete state.yAxis[action.payload.id];
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    addZAxis: {
-      reducer(state, action) {
-        state.zAxis[action.payload.id] = (0, _immer.castDraft)(action.payload);
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceZAxis: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        if (state.zAxis[prev.id] !== undefined) {
-          if (prev.id !== next.id) {
-            delete state.zAxis[prev.id];
-          }
-          state.zAxis[next.id] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeZAxis: {
-      reducer(state, action) {
-        delete state.zAxis[action.payload.id];
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    updateYAxisWidth(state, action) {
-      var {
-        id,
-        width
-      } = action.payload;
-      var axis = state.yAxis[id];
-      if (axis) {
-        var _history$;
-        var history = axis.widthHistory || [];
-        // An oscillation is detected when the new width is the same as the width before the last one.
-        // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.
-        if (history.length === 3 && history[0] === history[2] && width === history[1] && width !== axis.width && Math.abs(width - ((_history$ = history[0]) !== null && _history$ !== void 0 ? _history$ : 0)) <= 1) {
-          return;
-        }
-        var newHistory = [...history, width].slice(-3);
-        state.yAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {
-          width,
-          widthHistory: newHistory
-        });
-      }
-    }
-  }
-});
-var {
-  addXAxis,
-  replaceXAxis,
-  removeXAxis,
-  addYAxis,
-  replaceYAxis,
-  removeYAxis,
-  addZAxis,
-  replaceZAxis,
-  removeZAxis,
-  updateYAxisWidth
-} = cartesianAxisSlice.actions;
-exports.updateYAxisWidth = updateYAxisWidth;
-exports.removeZAxis = removeZAxis;
-exports.replaceZAxis = replaceZAxis;
-exports.addZAxis = addZAxis;
-exports.removeYAxis = removeYAxis;
-exports.replaceYAxis = replaceYAxis;
-exports.addYAxis = addYAxis;
-exports.removeXAxis = removeXAxis;
-exports.replaceXAxis = replaceXAxis;
-exports.addXAxis = addXAxis;
-var cartesianAxisReducer = exports.cartesianAxisReducer = cartesianAxisSlice.reducer;
Index: de_modules/recharts/lib/state/chartDataSlice.js
===================================================================
--- node_modules/recharts/lib/state/chartDataSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.setDataStartEndIndexes = exports.setComputedData = exports.setChartData = exports.initialChartDataState = exports.chartDataReducer = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-/**
- * This is the data that's coming through main chart `data` prop
- * Recharts is very flexible in what it accepts so the type is very flexible too.
- * This will typically be an object, and various components will provide various `dataKey`
- * that dictates how to pull data from that object.
- *
- * TL;DR: before dataKey
- *
- * @inline
- */
-
-/**
- * So this is the same unknown type as ChartData but this is after the dataKey has been applied.
- * We still don't know what the type is - that depends on what exactly it was before the dataKey application,
- * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.
- *
- * TL;DR: ChartData after dataKey.
- */
-
-var initialChartDataState = exports.initialChartDataState = {
-  chartData: undefined,
-  computedData: undefined,
-  dataStartIndex: 0,
-  dataEndIndex: 0
-};
-var chartDataSlice = (0, _toolkit.createSlice)({
-  name: 'chartData',
-  initialState: initialChartDataState,
-  reducers: {
-    setChartData(state, action) {
-      state.chartData = (0, _immer.castDraft)(action.payload);
-      if (action.payload == null) {
-        state.dataStartIndex = 0;
-        state.dataEndIndex = 0;
-        return;
-      }
-      if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) {
-        state.dataEndIndex = action.payload.length - 1;
-      }
-    },
-    setComputedData(state, action) {
-      state.computedData = action.payload;
-    },
-    setDataStartEndIndexes(state, action) {
-      var {
-        startIndex,
-        endIndex
-      } = action.payload;
-      if (startIndex != null) {
-        state.dataStartIndex = startIndex;
-      }
-      if (endIndex != null) {
-        state.dataEndIndex = endIndex;
-      }
-    }
-  }
-});
-var {
-  setChartData,
-  setDataStartEndIndexes,
-  setComputedData
-} = chartDataSlice.actions;
-exports.setComputedData = setComputedData;
-exports.setDataStartEndIndexes = setDataStartEndIndexes;
-exports.setChartData = setChartData;
-var chartDataReducer = exports.chartDataReducer = chartDataSlice.reducer;
Index: de_modules/recharts/lib/state/errorBarSlice.js
===================================================================
--- node_modules/recharts/lib/state/errorBarSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.replaceErrorBar = exports.removeErrorBar = exports.errorBarReducer = exports.addErrorBar = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-/**
- * ErrorBars have lot more settings but all the others are scoped to the component itself.
- * Only some of them required to be reported to the global store because XAxis and YAxis need to know
- * if the error bar is contributing to extending the axis domain.
- */
-
-var initialState = {};
-var errorBarSlice = (0, _toolkit.createSlice)({
-  name: 'errorBars',
-  initialState,
-  reducers: {
-    addErrorBar: (state, action) => {
-      var {
-        itemId,
-        errorBar
-      } = action.payload;
-      if (!state[itemId]) {
-        state[itemId] = [];
-      }
-      state[itemId].push(errorBar);
-    },
-    replaceErrorBar: (state, action) => {
-      var {
-        itemId,
-        prev,
-        next
-      } = action.payload;
-      if (state[itemId]) {
-        state[itemId] = state[itemId].map(e => e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e);
-      }
-    },
-    removeErrorBar: (state, action) => {
-      var {
-        itemId,
-        errorBar
-      } = action.payload;
-      if (state[itemId]) {
-        state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);
-      }
-    }
-  }
-});
-var {
-  addErrorBar,
-  replaceErrorBar,
-  removeErrorBar
-} = errorBarSlice.actions;
-exports.removeErrorBar = removeErrorBar;
-exports.replaceErrorBar = replaceErrorBar;
-exports.addErrorBar = addErrorBar;
-var errorBarReducer = exports.errorBarReducer = errorBarSlice.reducer;
Index: de_modules/recharts/lib/state/externalEventsMiddleware.js
===================================================================
--- node_modules/recharts/lib/state/externalEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.externalEventsMiddleware = exports.externalEventAction = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _tooltipSelectors = require("./selectors/tooltipSelectors");
-var externalEventAction = exports.externalEventAction = (0, _toolkit.createAction)('externalEvent');
-var externalEventsMiddleware = exports.externalEventsMiddleware = (0, _toolkit.createListenerMiddleware)();
-
-/*
- * We need a Map keyed by event type because this middleware handles MULTIPLE different event types
- * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)
- * from the same DOM element. Different event types should NOT cancel each other's animation frames.
- * For example, a click event and a mousemove event can happen in quick succession and both should be processed.
- * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.
- */
-var rafIdMap = new Map();
-externalEventsMiddleware.startListening({
-  actionCreator: externalEventAction,
-  effect: (action, listenerApi) => {
-    var {
-      handler,
-      reactEvent
-    } = action.payload;
-    if (handler == null) {
-      return;
-    }
-    reactEvent.persist();
-    var eventType = reactEvent.type;
-
-    // Cancel any pending animation frame for this event type
-    var existingRafId = rafIdMap.get(eventType);
-    if (existingRafId !== undefined) {
-      cancelAnimationFrame(existingRafId);
-    }
-    var rafId = requestAnimationFrame(() => {
-      try {
-        /*
-         * Here it is important that we get the latest state inside the animation frame callback,
-         * not from the outer scope, because there may have been other actions dispatched
-         * between the time the event was fired and the animation frame callback is executed.
-         * One of those actions is the one that actually sets the active tooltip state!
-         */
-        var state = listenerApi.getState();
-        var nextState = {
-          activeCoordinate: (0, _tooltipSelectors.selectActiveTooltipCoordinate)(state),
-          activeDataKey: (0, _tooltipSelectors.selectActiveTooltipDataKey)(state),
-          activeIndex: (0, _tooltipSelectors.selectActiveTooltipIndex)(state),
-          activeLabel: (0, _tooltipSelectors.selectActiveLabel)(state),
-          activeTooltipIndex: (0, _tooltipSelectors.selectActiveTooltipIndex)(state),
-          isTooltipActive: (0, _tooltipSelectors.selectIsTooltipActive)(state)
-        };
-        handler(nextState, reactEvent);
-      } finally {
-        rafIdMap.delete(eventType);
-      }
-    });
-    rafIdMap.set(eventType, rafId);
-  }
-});
Index: de_modules/recharts/lib/state/graphicalItemsSlice.js
===================================================================
--- node_modules/recharts/lib/state/graphicalItemsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.replaceCartesianGraphicalItem = exports.removePolarGraphicalItem = exports.removeCartesianGraphicalItem = exports.graphicalItemsReducer = exports.addPolarGraphicalItem = exports.addCartesianGraphicalItem = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-/**
- * Unique ID of the graphical item.
- * This is used to identify the graphical item in the state and in the React tree.
- * This is required for every graphical item - it's either provided by the user or generated automatically.
- */
-
-var initialState = {
-  cartesianItems: [],
-  polarItems: []
-};
-var graphicalItemsSlice = (0, _toolkit.createSlice)({
-  name: 'graphicalItems',
-  initialState,
-  reducers: {
-    addCartesianGraphicalItem: {
-      reducer(state, action) {
-        state.cartesianItems.push((0, _immer.castDraft)(action.payload));
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceCartesianGraphicalItem: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = (0, _toolkit.current)(state).cartesianItems.indexOf((0, _immer.castDraft)(prev));
-        if (index > -1) {
-          state.cartesianItems[index] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeCartesianGraphicalItem: {
-      reducer(state, action) {
-        var index = (0, _toolkit.current)(state).cartesianItems.indexOf((0, _immer.castDraft)(action.payload));
-        if (index > -1) {
-          state.cartesianItems.splice(index, 1);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    addPolarGraphicalItem: {
-      reducer(state, action) {
-        state.polarItems.push((0, _immer.castDraft)(action.payload));
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removePolarGraphicalItem: {
-      reducer(state, action) {
-        var index = (0, _toolkit.current)(state).polarItems.indexOf((0, _immer.castDraft)(action.payload));
-        if (index > -1) {
-          state.polarItems.splice(index, 1);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    }
-  }
-});
-var {
-  addCartesianGraphicalItem,
-  replaceCartesianGraphicalItem,
-  removeCartesianGraphicalItem,
-  addPolarGraphicalItem,
-  removePolarGraphicalItem
-} = graphicalItemsSlice.actions;
-exports.removePolarGraphicalItem = removePolarGraphicalItem;
-exports.addPolarGraphicalItem = addPolarGraphicalItem;
-exports.removeCartesianGraphicalItem = removeCartesianGraphicalItem;
-exports.replaceCartesianGraphicalItem = replaceCartesianGraphicalItem;
-exports.addCartesianGraphicalItem = addCartesianGraphicalItem;
-var graphicalItemsReducer = exports.graphicalItemsReducer = graphicalItemsSlice.reducer;
Index: de_modules/recharts/lib/state/hooks.js
===================================================================
--- node_modules/recharts/lib/state/hooks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useAppDispatch = void 0;
-exports.useAppSelector = useAppSelector;
-var _withSelector = require("use-sync-external-store/shim/with-selector");
-var _react = require("react");
-var _RechartsReduxContext = require("./RechartsReduxContext");
-var noopDispatch = a => a;
-var useAppDispatch = () => {
-  var context = (0, _react.useContext)(_RechartsReduxContext.RechartsReduxContext);
-  if (context) {
-    return context.store.dispatch;
-  }
-  return noopDispatch;
-};
-exports.useAppDispatch = useAppDispatch;
-var noop = () => {};
-var addNestedSubNoop = () => noop;
-var refEquality = (a, b) => a === b;
-
-/**
- * This is a recharts variant of `useSelector` from 'react-redux' package.
- *
- * The difference is that react-redux version will throw an Error when used outside of Redux context.
- *
- * This, recharts version, will return undefined instead.
- *
- * This is because we want to allow using our components outside the Chart wrapper,
- * and have people provide all props explicitly.
- *
- * If however they use the component inside a chart wrapper then those props become optional,
- * and we read them from Redux state instead.
- *
- * @param selector for pulling things out of Redux store; will not be called if the store is not accessible
- * @return whatever the selector returned; or undefined when outside of Redux store
- */
-function useAppSelector(selector) {
-  var context = (0, _react.useContext)(_RechartsReduxContext.RechartsReduxContext);
-  var outOfContextSelector = (0, _react.useMemo)(() => {
-    if (!context) {
-      return noop;
-    }
-    return state => {
-      if (state == null) {
-        return undefined;
-      }
-      return selector(state);
-    };
-  }, [context, selector]);
-  return (0, _withSelector.useSyncExternalStoreWithSelector)(context ? context.subscription.addNestedSub : addNestedSubNoop, context ? context.store.getState : noop, context ? context.store.getState : noop, outOfContextSelector, refEquality);
-}
Index: de_modules/recharts/lib/state/keyboardEventsMiddleware.js
===================================================================
--- node_modules/recharts/lib/state/keyboardEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.keyboardEventsMiddleware = exports.keyDownAction = exports.focusAction = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _tooltipSlice = require("./tooltipSlice");
-var _tooltipSelectors = require("./selectors/tooltipSelectors");
-var _selectors = require("./selectors/selectors");
-var _axisSelectors = require("./selectors/axisSelectors");
-var _combineActiveTooltipIndex = require("./selectors/combiners/combineActiveTooltipIndex");
-var keyDownAction = exports.keyDownAction = (0, _toolkit.createAction)('keyDown');
-var focusAction = exports.focusAction = (0, _toolkit.createAction)('focus');
-var keyboardEventsMiddleware = exports.keyboardEventsMiddleware = (0, _toolkit.createListenerMiddleware)();
-keyboardEventsMiddleware.startListening({
-  actionCreator: keyDownAction,
-  effect: (action, listenerApi) => {
-    var state = listenerApi.getState();
-    var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;
-    if (!accessibilityLayerIsActive) {
-      return;
-    }
-    var {
-      keyboardInteraction
-    } = state.tooltip;
-    var key = action.payload;
-    if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {
-      return;
-    }
-
-    // TODO this is lacking index for charts that do not support numeric indexes
-    var resolvedIndex = (0, _combineActiveTooltipIndex.combineActiveTooltipIndex)(keyboardInteraction, (0, _tooltipSelectors.selectTooltipDisplayedData)(state), (0, _axisSelectors.selectTooltipAxisDataKey)(state), (0, _tooltipSelectors.selectTooltipAxisDomain)(state));
-    var currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);
-    if (!Number.isFinite(currentIndex) || currentIndex < 0) {
-      return;
-    }
-    var tooltipTicks = (0, _tooltipSelectors.selectTooltipAxisTicks)(state);
-    if (key === 'Enter') {
-      var _coordinate = (0, _selectors.selectCoordinateForDefaultIndex)(state, 'axis', 'hover', String(keyboardInteraction.index));
-      listenerApi.dispatch((0, _tooltipSlice.setKeyboardInteraction)({
-        active: !keyboardInteraction.active,
-        activeIndex: keyboardInteraction.index,
-        activeCoordinate: _coordinate
-      }));
-      return;
-    }
-    var direction = (0, _axisSelectors.selectChartDirection)(state);
-    var directionMultiplier = direction === 'left-to-right' ? 1 : -1;
-    var movement = key === 'ArrowRight' ? 1 : -1;
-    var nextIndex = currentIndex + movement * directionMultiplier;
-    if (tooltipTicks == null || nextIndex >= tooltipTicks.length || nextIndex < 0) {
-      return;
-    }
-    var coordinate = (0, _selectors.selectCoordinateForDefaultIndex)(state, 'axis', 'hover', String(nextIndex));
-    listenerApi.dispatch((0, _tooltipSlice.setKeyboardInteraction)({
-      active: true,
-      activeIndex: nextIndex.toString(),
-      activeCoordinate: coordinate
-    }));
-  }
-});
-keyboardEventsMiddleware.startListening({
-  actionCreator: focusAction,
-  effect: (_action, listenerApi) => {
-    var state = listenerApi.getState();
-    var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;
-    if (!accessibilityLayerIsActive) {
-      return;
-    }
-    var {
-      keyboardInteraction
-    } = state.tooltip;
-    if (keyboardInteraction.active) {
-      return;
-    }
-    if (keyboardInteraction.index == null) {
-      var nextIndex = '0';
-      var coordinate = (0, _selectors.selectCoordinateForDefaultIndex)(state, 'axis', 'hover', String(nextIndex));
-      listenerApi.dispatch((0, _tooltipSlice.setKeyboardInteraction)({
-        active: true,
-        activeIndex: nextIndex,
-        activeCoordinate: coordinate
-      }));
-    }
-  }
-});
Index: de_modules/recharts/lib/state/layoutSlice.js
===================================================================
--- node_modules/recharts/lib/state/layoutSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.setScale = exports.setMargin = exports.setLayout = exports.setChartSize = exports.chartLayoutReducer = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var initialState = {
-  layoutType: 'horizontal',
-  width: 0,
-  height: 0,
-  margin: {
-    top: 5,
-    right: 5,
-    bottom: 5,
-    left: 5
-  },
-  scale: 1
-};
-var chartLayoutSlice = (0, _toolkit.createSlice)({
-  name: 'chartLayout',
-  initialState,
-  reducers: {
-    setLayout(state, action) {
-      state.layoutType = action.payload;
-    },
-    setChartSize(state, action) {
-      state.width = action.payload.width;
-      state.height = action.payload.height;
-    },
-    setMargin(state, action) {
-      var _action$payload$top, _action$payload$right, _action$payload$botto, _action$payload$left;
-      state.margin.top = (_action$payload$top = action.payload.top) !== null && _action$payload$top !== void 0 ? _action$payload$top : 0;
-      state.margin.right = (_action$payload$right = action.payload.right) !== null && _action$payload$right !== void 0 ? _action$payload$right : 0;
-      state.margin.bottom = (_action$payload$botto = action.payload.bottom) !== null && _action$payload$botto !== void 0 ? _action$payload$botto : 0;
-      state.margin.left = (_action$payload$left = action.payload.left) !== null && _action$payload$left !== void 0 ? _action$payload$left : 0;
-    },
-    setScale(state, action) {
-      state.scale = action.payload;
-    }
-  }
-});
-var {
-  setMargin,
-  setLayout,
-  setChartSize,
-  setScale
-} = chartLayoutSlice.actions;
-exports.setScale = setScale;
-exports.setChartSize = setChartSize;
-exports.setLayout = setLayout;
-exports.setMargin = setMargin;
-var chartLayoutReducer = exports.chartLayoutReducer = chartLayoutSlice.reducer;
Index: de_modules/recharts/lib/state/legendSlice.js
===================================================================
--- node_modules/recharts/lib/state/legendSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,86 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.setLegendSize = exports.setLegendSettings = exports.replaceLegendPayload = exports.removeLegendPayload = exports.legendReducer = exports.addLegendPayload = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-/**
- * The properties inside this state update independently of each other and quite often.
- * When selecting, never select the whole state because you are going to get
- * unnecessary re-renders. Select only the properties you need.
- *
- * This is why this state type is not exported - don't use it directly.
- */
-
-var initialState = {
-  settings: {
-    layout: 'horizontal',
-    align: 'center',
-    verticalAlign: 'middle',
-    itemSorter: 'value'
-  },
-  size: {
-    width: 0,
-    height: 0
-  },
-  payload: []
-};
-var legendSlice = (0, _toolkit.createSlice)({
-  name: 'legend',
-  initialState,
-  reducers: {
-    setLegendSize(state, action) {
-      state.size.width = action.payload.width;
-      state.size.height = action.payload.height;
-    },
-    setLegendSettings(state, action) {
-      state.settings.align = action.payload.align;
-      state.settings.layout = action.payload.layout;
-      state.settings.verticalAlign = action.payload.verticalAlign;
-      state.settings.itemSorter = action.payload.itemSorter;
-    },
-    addLegendPayload: {
-      reducer(state, action) {
-        state.payload.push((0, _immer.castDraft)(action.payload));
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceLegendPayload: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = (0, _toolkit.current)(state).payload.indexOf((0, _immer.castDraft)(prev));
-        if (index > -1) {
-          state.payload[index] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeLegendPayload: {
-      reducer(state, action) {
-        var index = (0, _toolkit.current)(state).payload.indexOf((0, _immer.castDraft)(action.payload));
-        if (index > -1) {
-          state.payload.splice(index, 1);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    }
-  }
-});
-var {
-  setLegendSize,
-  setLegendSettings,
-  addLegendPayload,
-  replaceLegendPayload,
-  removeLegendPayload
-} = legendSlice.actions;
-exports.removeLegendPayload = removeLegendPayload;
-exports.replaceLegendPayload = replaceLegendPayload;
-exports.addLegendPayload = addLegendPayload;
-exports.setLegendSettings = setLegendSettings;
-exports.setLegendSize = setLegendSize;
-var legendReducer = exports.legendReducer = legendSlice.reducer;
Index: de_modules/recharts/lib/state/mouseEventsMiddleware.js
===================================================================
--- node_modules/recharts/lib/state/mouseEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.mouseMoveMiddleware = exports.mouseMoveAction = exports.mouseClickMiddleware = exports.mouseClickAction = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _tooltipSlice = require("./tooltipSlice");
-var _selectActivePropsFromChartPointer = require("./selectors/selectActivePropsFromChartPointer");
-var _selectTooltipEventType = require("./selectors/selectTooltipEventType");
-var _getChartPointer = require("../util/getChartPointer");
-var mouseClickAction = exports.mouseClickAction = (0, _toolkit.createAction)('mouseClick');
-var mouseClickMiddleware = exports.mouseClickMiddleware = (0, _toolkit.createListenerMiddleware)();
-
-// TODO: there's a bug here when you click the chart the activeIndex resets to zero
-mouseClickMiddleware.startListening({
-  actionCreator: mouseClickAction,
-  effect: (action, listenerApi) => {
-    var mousePointer = action.payload;
-    var activeProps = (0, _selectActivePropsFromChartPointer.selectActivePropsFromChartPointer)(listenerApi.getState(), (0, _getChartPointer.getChartPointer)(mousePointer));
-    if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-      listenerApi.dispatch((0, _tooltipSlice.setMouseClickAxisIndex)({
-        activeIndex: activeProps.activeIndex,
-        activeDataKey: undefined,
-        activeCoordinate: activeProps.activeCoordinate
-      }));
-    }
-  }
-});
-var mouseMoveAction = exports.mouseMoveAction = (0, _toolkit.createAction)('mouseMove');
-var mouseMoveMiddleware = exports.mouseMoveMiddleware = (0, _toolkit.createListenerMiddleware)();
-
-/*
- * This single rafId is safe because:
- * 1. Each chart has its own Redux store instance with its own middleware
- * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)
- * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position
- * This is different from externalEventsMiddleware which handles multiple event types
- * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.
- */
-var rafId = null;
-mouseMoveMiddleware.startListening({
-  actionCreator: mouseMoveAction,
-  effect: (action, listenerApi) => {
-    var mousePointer = action.payload;
-
-    // Cancel any pending animation frame
-    if (rafId !== null) {
-      cancelAnimationFrame(rafId);
-    }
-    var chartPointer = (0, _getChartPointer.getChartPointer)(mousePointer);
-
-    // Schedule the dispatch for the next animation frame
-    rafId = requestAnimationFrame(() => {
-      var state = listenerApi.getState();
-      var tooltipEventType = (0, _selectTooltipEventType.selectTooltipEventType)(state, state.tooltip.settings.shared);
-      // this functionality only applies to charts that have axes
-      if (tooltipEventType === 'axis') {
-        var activeProps = (0, _selectActivePropsFromChartPointer.selectActivePropsFromChartPointer)(state, chartPointer);
-        if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-          listenerApi.dispatch((0, _tooltipSlice.setMouseOverAxisIndex)({
-            activeIndex: activeProps.activeIndex,
-            activeDataKey: undefined,
-            activeCoordinate: activeProps.activeCoordinate
-          }));
-        } else {
-          // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg
-          listenerApi.dispatch((0, _tooltipSlice.mouseLeaveChart)());
-        }
-      }
-      rafId = null;
-    });
-  }
-});
Index: de_modules/recharts/lib/state/optionsSlice.js
===================================================================
--- node_modules/recharts/lib/state/optionsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.optionsReducer = exports.createEventEmitter = exports.arrayTooltipSearcher = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _DataUtils = require("../util/DataUtils");
-/**
- * These chart options are decided internally, by Recharts,
- * and will not change during the lifetime of the chart.
- *
- * Changing these options can be done by swapping the root element
- * which will make a brand-new Redux store.
- *
- * If you want to store options that can be changed by the user,
- * use UpdatableChartOptions in rootPropsSlice.ts.
- */
-
-var arrayTooltipSearcher = (data, strIndex) => {
-  if (!strIndex) return undefined;
-  if (!Array.isArray(data)) return undefined;
-  var numIndex = Number.parseInt(strIndex, 10);
-  if ((0, _DataUtils.isNan)(numIndex)) {
-    return undefined;
-  }
-  return data[numIndex];
-};
-exports.arrayTooltipSearcher = arrayTooltipSearcher;
-var initialState = {
-  chartName: '',
-  tooltipPayloadSearcher: () => undefined,
-  eventEmitter: undefined,
-  defaultTooltipEventType: 'axis'
-};
-var optionsSlice = (0, _toolkit.createSlice)({
-  name: 'options',
-  initialState,
-  reducers: {
-    createEventEmitter: state => {
-      if (state.eventEmitter == null) {
-        state.eventEmitter = Symbol('rechartsEventEmitter');
-      }
-    }
-  }
-});
-var optionsReducer = exports.optionsReducer = optionsSlice.reducer;
-var {
-  createEventEmitter
-} = optionsSlice.actions;
-exports.createEventEmitter = createEventEmitter;
Index: de_modules/recharts/lib/state/polarAxisSlice.js
===================================================================
--- node_modules/recharts/lib/state/polarAxisSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.removeRadiusAxis = exports.removeAngleAxis = exports.polarAxisReducer = exports.addRadiusAxis = exports.addAngleAxis = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-var initialState = {
-  radiusAxis: {},
-  angleAxis: {}
-};
-var polarAxisSlice = (0, _toolkit.createSlice)({
-  name: 'polarAxis',
-  initialState,
-  reducers: {
-    addRadiusAxis(state, action) {
-      state.radiusAxis[action.payload.id] = (0, _immer.castDraft)(action.payload);
-    },
-    removeRadiusAxis(state, action) {
-      delete state.radiusAxis[action.payload.id];
-    },
-    addAngleAxis(state, action) {
-      state.angleAxis[action.payload.id] = (0, _immer.castDraft)(action.payload);
-    },
-    removeAngleAxis(state, action) {
-      delete state.angleAxis[action.payload.id];
-    }
-  }
-});
-var {
-  addRadiusAxis,
-  removeRadiusAxis,
-  addAngleAxis,
-  removeAngleAxis
-} = polarAxisSlice.actions;
-exports.removeAngleAxis = removeAngleAxis;
-exports.addAngleAxis = addAngleAxis;
-exports.removeRadiusAxis = removeRadiusAxis;
-exports.addRadiusAxis = addRadiusAxis;
-var polarAxisReducer = exports.polarAxisReducer = polarAxisSlice.reducer;
Index: de_modules/recharts/lib/state/polarOptionsSlice.js
===================================================================
--- node_modules/recharts/lib/state/polarOptionsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.updatePolarOptions = exports.polarOptionsReducer = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var initialState = null;
-var reducers = {
-  updatePolarOptions: (_state, action) => {
-    return action.payload;
-  }
-};
-var polarOptionsSlice = (0, _toolkit.createSlice)({
-  name: 'polarOptions',
-  initialState,
-  reducers
-});
-var {
-  updatePolarOptions
-} = polarOptionsSlice.actions;
-exports.updatePolarOptions = updatePolarOptions;
-var polarOptionsReducer = exports.polarOptionsReducer = polarOptionsSlice.reducer;
Index: de_modules/recharts/lib/state/reduxDevtoolsJsonStringifyReplacer.js
===================================================================
--- node_modules/recharts/lib/state/reduxDevtoolsJsonStringifyReplacer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.reduxDevtoolsJsonStringifyReplacer = reduxDevtoolsJsonStringifyReplacer;
-function reduxDevtoolsJsonStringifyReplacer(key, value) {
-  if (value instanceof HTMLElement) {
-    return "HTMLElement <".concat(value.tagName, " class=\"").concat(value.className, "\">");
-  }
-  if (value === window) {
-    return 'global.window';
-  }
-  if (key === 'children' && typeof value === 'object' && value !== null) {
-    return '<<CHILDREN>>';
-  }
-  return value;
-}
Index: de_modules/recharts/lib/state/referenceElementsSlice.js
===================================================================
--- node_modules/recharts/lib/state/referenceElementsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.removeLine = exports.removeDot = exports.removeArea = exports.referenceElementsSlice = exports.referenceElementsReducer = exports.addLine = exports.addDot = exports.addArea = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-var initialState = {
-  dots: [],
-  areas: [],
-  lines: []
-};
-var referenceElementsSlice = exports.referenceElementsSlice = (0, _toolkit.createSlice)({
-  name: 'referenceElements',
-  initialState,
-  reducers: {
-    addDot: (state, action) => {
-      state.dots.push(action.payload);
-    },
-    removeDot: (state, action) => {
-      var index = (0, _toolkit.current)(state).dots.findIndex(dot => dot === action.payload);
-      if (index !== -1) {
-        state.dots.splice(index, 1);
-      }
-    },
-    addArea: (state, action) => {
-      state.areas.push(action.payload);
-    },
-    removeArea: (state, action) => {
-      var index = (0, _toolkit.current)(state).areas.findIndex(area => area === action.payload);
-      if (index !== -1) {
-        state.areas.splice(index, 1);
-      }
-    },
-    addLine: (state, action) => {
-      state.lines.push((0, _immer.castDraft)(action.payload));
-    },
-    removeLine: (state, action) => {
-      var index = (0, _toolkit.current)(state).lines.findIndex(line => line === action.payload);
-      if (index !== -1) {
-        state.lines.splice(index, 1);
-      }
-    }
-  }
-});
-var {
-  addDot,
-  removeDot,
-  addArea,
-  removeArea,
-  addLine,
-  removeLine
-} = referenceElementsSlice.actions;
-exports.removeLine = removeLine;
-exports.addLine = addLine;
-exports.removeArea = removeArea;
-exports.addArea = addArea;
-exports.removeDot = removeDot;
-exports.addDot = addDot;
-var referenceElementsReducer = exports.referenceElementsReducer = referenceElementsSlice.reducer;
Index: de_modules/recharts/lib/state/rootPropsSlice.js
===================================================================
--- node_modules/recharts/lib/state/rootPropsSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.updateOptions = exports.rootPropsReducer = exports.initialState = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-/**
- * These are chart options that users can choose - which means they can also
- * choose to change them which should trigger a re-render.
- */
-
-var initialState = exports.initialState = {
-  accessibilityLayer: true,
-  barCategoryGap: '10%',
-  barGap: 4,
-  barSize: undefined,
-  className: undefined,
-  maxBarSize: undefined,
-  stackOffset: 'none',
-  syncId: undefined,
-  syncMethod: 'index',
-  baseValue: undefined,
-  reverseStackOrder: false
-};
-var rootPropsSlice = (0, _toolkit.createSlice)({
-  name: 'rootProps',
-  initialState,
-  reducers: {
-    updateOptions: (state, action) => {
-      var _action$payload$barGa;
-      state.accessibilityLayer = action.payload.accessibilityLayer;
-      state.barCategoryGap = action.payload.barCategoryGap;
-      state.barGap = (_action$payload$barGa = action.payload.barGap) !== null && _action$payload$barGa !== void 0 ? _action$payload$barGa : initialState.barGap;
-      state.barSize = action.payload.barSize;
-      state.maxBarSize = action.payload.maxBarSize;
-      state.stackOffset = action.payload.stackOffset;
-      state.syncId = action.payload.syncId;
-      state.syncMethod = action.payload.syncMethod;
-      state.className = action.payload.className;
-      state.baseValue = action.payload.baseValue;
-      state.reverseStackOrder = action.payload.reverseStackOrder;
-    }
-  }
-});
-var rootPropsReducer = exports.rootPropsReducer = rootPropsSlice.reducer;
-var {
-  updateOptions
-} = rootPropsSlice.actions;
-exports.updateOptions = updateOptions;
Index: de_modules/recharts/lib/state/selectors/areaSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/areaSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectGraphicalItemStackedData = exports.selectArea = void 0;
-var _reselect = require("reselect");
-var _Area = require("../../cartesian/Area");
-var _axisSelectors = require("./axisSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _dataSelectors = require("./dataSelectors");
-var _ChartUtils = require("../../util/ChartUtils");
-var _getStackSeriesIdentifier = require("../../util/stacks/getStackSeriesIdentifier");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _graphicalItemSelectors = require("./graphicalItemSelectors");
-var selectXAxisWithScale = (state, graphicalItemId, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, graphicalItemId), isPanorama);
-var selectXAxisTicks = (state, graphicalItemId, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, graphicalItemId), isPanorama);
-var selectYAxisWithScale = (state, graphicalItemId, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, graphicalItemId), isPanorama);
-var selectYAxisTicks = (state, graphicalItemId, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, graphicalItemId), isPanorama);
-var selectBandSize = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {
-  if ((0, _ChartUtils.isCategoricalAxis)(layout, 'xAxis')) {
-    return (0, _ChartUtils.getBandSizeOfAxis)(xAxis, xAxisTicks, false);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(yAxis, yAxisTicks, false);
-});
-var pickAreaId = (_state, id) => id;
-
-/*
- * There is a race condition problem because we read some data from props and some from the state.
- * The state is updated through a dispatch and is one render behind,
- * and so we have this weird one tick render where the displayedData in one selector have the old dataKey
- * but the new dataKey in another selector.
- *
- * A proper fix is to either move everything into the state, or read the dataKey always from props
- * - but this is a smaller change.
- */
-var selectSynchronisedAreaSettings = (0, _reselect.createSelector)([_axisSelectors.selectUnfilteredCartesianItems, pickAreaId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'area').find(item => item.id === id));
-var selectNumericalAxisType = state => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  var isXAxisCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, 'xAxis');
-  return isXAxisCategorical ? 'yAxis' : 'xAxis';
-};
-var selectNumericalAxisIdFromGraphicalItemId = (state, graphicalItemId) => {
-  var axisType = selectNumericalAxisType(state);
-  if (axisType === 'yAxis') {
-    return (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, graphicalItemId);
-  }
-  return (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, graphicalItemId);
-};
-var selectNumericalAxisStackGroups = (state, graphicalItemId, isPanorama) => (0, _axisSelectors.selectStackGroups)(state, selectNumericalAxisType(state), selectNumericalAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);
-var selectGraphicalItemStackedData = exports.selectGraphicalItemStackedData = (0, _reselect.createSelector)([selectSynchronisedAreaSettings, selectNumericalAxisStackGroups], (areaSettings, stackGroups) => {
-  var _stackGroups$stackId;
-  if (areaSettings == null || stackGroups == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = areaSettings;
-  var stackSeriesIdentifier = (0, _getStackSeriesIdentifier.getStackSeriesIdentifier)(areaSettings);
-  if (stackId == null || stackSeriesIdentifier == null) {
-    return undefined;
-  }
-  var groups = (_stackGroups$stackId = stackGroups[stackId]) === null || _stackGroups$stackId === void 0 ? void 0 : _stackGroups$stackId.stackedData;
-  var found = groups === null || groups === void 0 ? void 0 : groups.find(v => v.key === stackSeriesIdentifier);
-  if (found == null) {
-    return undefined;
-  }
-  return found.map(item => [item[0], item[1]]);
-});
-var selectArea = exports.selectArea = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectGraphicalItemStackedData, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition3, selectBandSize, selectSynchronisedAreaSettings, _rootPropsSelectors.selectChartBaseValue], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, stackedData, _ref, bandSize, areaSettings, chartBaseValue) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (areaSettings == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null) {
-    return undefined;
-  }
-  var {
-    data
-  } = areaSettings;
-  var displayedData;
-  if (data && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return (0, _Area.computeArea)({
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataStartIndex,
-    areaSettings,
-    stackedData,
-    displayedData,
-    chartBaseValue,
-    bandSize
-  });
-});
Index: de_modules/recharts/lib/state/selectors/arrayEqualityCheck.js
===================================================================
--- node_modules/recharts/lib/state/selectors/arrayEqualityCheck.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.arrayContentsAreEqualCheck = arrayContentsAreEqualCheck;
-exports.emptyArraysAreEqualCheck = emptyArraysAreEqualCheck;
-/**
- * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.
- * If both arrays are non-empty, it checks for reference equality.
- * @param a
- * @param b
- */
-function emptyArraysAreEqualCheck(a, b) {
-  if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {
-    // empty arrays are always equal, regardless of reference
-    return true;
-  }
-  return a === b;
-}
-
-/**
- * Checks if two arrays have the same contents in the same order.
- * @param a
- * @param b
- */
-function arrayContentsAreEqualCheck(a, b) {
-  if (a.length === b.length) {
-    for (var i = 0; i < a.length; i++) {
-      if (a[i] !== b[i]) {
-        return false;
-      }
-    }
-    return true;
-  }
-  return false;
-}
Index: de_modules/recharts/lib/state/selectors/axisSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/axisSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1389 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineRealScaleType = exports.combineNumericalDomain = exports.combineNiceTicks = exports.combineLinesDomain = exports.combineGraphicalItemsSettings = exports.combineGraphicalItemsData = exports.combineGraphicalItemTicks = exports.combineDuplicateDomain = exports.combineDotsDomain = exports.combineDomainOfStackGroups = exports.combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = exports.combineDisplayedData = exports.combineCategoricalDomain = exports.combineAxisTicks = exports.combineAxisDomainWithNiceTicks = exports.combineAxisDomain = exports.combineAreasDomain = exports.combineAppliedValues = void 0;
-exports.combineScaleFunction = combineScaleFunction;
-exports.getDomainDefinition = exports.filterReferenceElements = exports.filterGraphicalNotStackedItems = exports.defaultNumericDomain = exports.combineYAxisRange = exports.combineXAxisRange = exports.combineStackGroups = void 0;
-exports.getErrorDomainByDataKey = getErrorDomainByDataKey;
-exports.implicitZAxis = exports.implicitYAxis = exports.implicitXAxis = void 0;
-exports.isErrorBarRelevantForAxisType = isErrorBarRelevantForAxisType;
-exports.itemAxisPredicate = itemAxisPredicate;
-exports.selectZAxisWithScale = exports.selectZAxisSettings = exports.selectYAxisSize = exports.selectYAxisSettingsNoDefaults = exports.selectYAxisSettings = exports.selectYAxisPosition = exports.selectXAxisSize = exports.selectXAxisSettingsNoDefaults = exports.selectXAxisSettings = exports.selectXAxisPosition = exports.selectUnfilteredCartesianItems = exports.selectTooltipAxisDataKey = exports.selectTooltipAxis = exports.selectTicksOfGraphicalItem = exports.selectTicksOfAxis = exports.selectStackedCartesianItemsSettings = exports.selectStackGroups = exports.selectSmallestDistanceBetweenValues = exports.selectRenderableAxisSettings = exports.selectReferenceLinesByAxis = exports.selectReferenceLines = exports.selectReferenceDotsByAxis = exports.selectReferenceDots = exports.selectReferenceAreasByAxis = exports.selectReferenceAreas = exports.selectRealScaleType = exports.selectNumericalDomain = exports.selectNiceTicks = exports.selectHasBar = exports.selectErrorBarsSettings = exports.selectDuplicateDomain = exports.selectDomainOfStackGroups = exports.selectDomainFromUserPreference = exports.selectDomainDefinition = exports.selectDisplayedStackedData = exports.selectDisplayedData = exports.selectChartDirection = exports.selectCategoricalDomain = exports.selectCartesianItemsSettings = exports.selectCartesianGraphicalItemsData = exports.selectCartesianAxisSize = exports.selectCalculatedYAxisPadding = exports.selectCalculatedXAxisPadding = exports.selectBaseAxis = exports.selectAxisWithScale = exports.selectAxisScale = exports.selectAxisRangeWithReverse = exports.selectAxisRange = exports.selectAxisPropsNeededForCartesianGridTicksGenerator = exports.selectAxisDomainIncludingNiceTicks = exports.selectAxisDomain = exports.selectAllYAxesOffsetSteps = exports.selectAllXAxesOffsetSteps = exports.selectAllErrorBarSettings = exports.selectAllAppliedValues = exports.mergeDomains = void 0;
-var _reselect = require("reselect");
-var _range = _interopRequireDefault(require("es-toolkit/compat/range"));
-var d3Scales = _interopRequireWildcard(require("victory-vendor/d3-scale"));
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _ChartUtils = require("../../util/ChartUtils");
-var _dataSelectors = require("./dataSelectors");
-var _isDomainSpecifiedByUser = require("../../util/isDomainSpecifiedByUser");
-var _DataUtils = require("../../util/DataUtils");
-var _isWellBehavedNumber = require("../../util/isWellBehavedNumber");
-var _scale = require("../../util/scale");
-var _containerSelectors = require("./containerSelectors");
-var _selectAllAxes = require("./selectAllAxes");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _brushSelectors = require("./brushSelectors");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _polarAxisSelectors = require("./polarAxisSelectors");
-var _pickAxisType = require("./pickAxisType");
-var _pickAxisId = require("./pickAxisId");
-var _combineAxisRangeWithReverse = require("./combiners/combineAxisRangeWithReverse");
-var _Constants = require("../../util/Constants");
-var _getStackSeriesIdentifier = require("../../util/stacks/getStackSeriesIdentifier");
-var _combineDisplayedStackedData = require("./combiners/combineDisplayedStackedData");
-var _StackedGraphicalItem = require("../types/StackedGraphicalItem");
-var _numberDomainEqualityCheck = require("./numberDomainEqualityCheck");
-var _arrayEqualityCheck = require("./arrayEqualityCheck");
-var _selectTooltipAxisType = require("./selectTooltipAxisType");
-var _selectTooltipAxisId = require("./selectTooltipAxisId");
-var _RechartsScale = require("../../util/scale/RechartsScale");
-var _combineCheckedDomain = require("./combiners/combineCheckedDomain");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var defaultNumericDomain = exports.defaultNumericDomain = [0, 'auto'];
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-var implicitXAxis = exports.implicitXAxis = {
-  allowDataOverflow: false,
-  allowDecimals: true,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  dataKey: undefined,
-  domain: undefined,
-  height: 30,
-  hide: true,
-  id: 0,
-  includeHidden: false,
-  interval: 'preserveEnd',
-  minTickGap: 5,
-  mirror: false,
-  name: undefined,
-  orientation: 'bottom',
-  padding: {
-    left: 0,
-    right: 0
-  },
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickCount: 5,
-  tickFormatter: undefined,
-  ticks: undefined,
-  type: 'category',
-  unit: undefined
-};
-var selectXAxisSettingsNoDefaults = (state, axisId) => {
-  return state.cartesianAxis.xAxis[axisId];
-};
-exports.selectXAxisSettingsNoDefaults = selectXAxisSettingsNoDefaults;
-var selectXAxisSettings = (state, axisId) => {
-  var axis = selectXAxisSettingsNoDefaults(state, axisId);
-  if (axis == null) {
-    return implicitXAxis;
-  }
-  return axis;
-};
-
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-exports.selectXAxisSettings = selectXAxisSettings;
-var implicitYAxis = exports.implicitYAxis = {
-  allowDataOverflow: false,
-  allowDecimals: true,
-  allowDuplicatedCategory: true,
-  angle: 0,
-  dataKey: undefined,
-  domain: defaultNumericDomain,
-  hide: true,
-  id: 0,
-  includeHidden: false,
-  interval: 'preserveEnd',
-  minTickGap: 5,
-  mirror: false,
-  name: undefined,
-  orientation: 'left',
-  padding: {
-    top: 0,
-    bottom: 0
-  },
-  reversed: false,
-  scale: 'auto',
-  tick: true,
-  tickCount: 5,
-  tickFormatter: undefined,
-  ticks: undefined,
-  type: 'number',
-  unit: undefined,
-  width: _Constants.DEFAULT_Y_AXIS_WIDTH
-};
-var selectYAxisSettingsNoDefaults = (state, axisId) => {
-  return state.cartesianAxis.yAxis[axisId];
-};
-exports.selectYAxisSettingsNoDefaults = selectYAxisSettingsNoDefaults;
-var selectYAxisSettings = (state, axisId) => {
-  var axis = selectYAxisSettingsNoDefaults(state, axisId);
-  if (axis == null) {
-    return implicitYAxis;
-  }
-  return axis;
-};
-exports.selectYAxisSettings = selectYAxisSettings;
-var implicitZAxis = exports.implicitZAxis = {
-  domain: [0, 'auto'],
-  includeHidden: false,
-  reversed: false,
-  allowDataOverflow: false,
-  allowDuplicatedCategory: false,
-  dataKey: undefined,
-  id: 0,
-  name: '',
-  range: [64, 64],
-  scale: 'auto',
-  type: 'number',
-  unit: ''
-};
-var selectZAxisSettings = (state, axisId) => {
-  var axis = state.cartesianAxis.zAxis[axisId];
-  if (axis == null) {
-    return implicitZAxis;
-  }
-  return axis;
-};
-exports.selectZAxisSettings = selectZAxisSettings;
-var selectBaseAxis = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    case 'zAxis':
-      {
-        return selectZAxisSettings(state, axisId);
-      }
-    case 'angleAxis':
-      {
-        return (0, _polarAxisSelectors.selectAngleAxis)(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return (0, _polarAxisSelectors.selectRadiusAxis)(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-exports.selectBaseAxis = selectBaseAxis;
-var selectCartesianAxisSettings = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-
-/**
- * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.
- * @param state Root state
- * @param axisType xAxis | yAxis
- * @param axisId xAxisId | yAxisId
- * @returns axis settings object
- */
-var selectRenderableAxisSettings = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSettings(state, axisId);
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSettings(state, axisId);
-      }
-    case 'angleAxis':
-      {
-        return (0, _polarAxisSelectors.selectAngleAxis)(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return (0, _polarAxisSelectors.selectRadiusAxis)(state, axisId);
-      }
-    default:
-      throw new Error("Unexpected axis type: ".concat(axisType));
-  }
-};
-
-/**
- * @param state RechartsRootState
- * @return boolean true if there is at least one Bar or RadialBar
- */
-exports.selectRenderableAxisSettings = selectRenderableAxisSettings;
-var selectHasBar = state => state.graphicalItems.cartesianItems.some(item => item.type === 'bar') || state.graphicalItems.polarItems.some(item => item.type === 'radialBar');
-
-/**
- * Filters CartesianGraphicalItemSettings by the relevant axis ID
- * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'
- * @param axisId from props, defaults to 0
- *
- * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis
- */
-exports.selectHasBar = selectHasBar;
-function itemAxisPredicate(axisType, axisId) {
-  return item => {
-    switch (axisType) {
-      case 'xAxis':
-        // This is sensitive to the data type, as 0 !== '0'. I wonder if we should be more flexible. How does 2.x branch behave? TODO write test for that
-        return 'xAxisId' in item && item.xAxisId === axisId;
-      case 'yAxis':
-        return 'yAxisId' in item && item.yAxisId === axisId;
-      case 'zAxis':
-        return 'zAxisId' in item && item.zAxisId === axisId;
-      case 'angleAxis':
-        return 'angleAxisId' in item && item.angleAxisId === axisId;
-      case 'radiusAxis':
-        return 'radiusAxisId' in item && item.radiusAxisId === axisId;
-      default:
-        return false;
-    }
-  };
-}
-
-// TODO appears there is a bug where this selector is called from polar context, find and fix it.
-var selectUnfilteredCartesianItems = state => state.graphicalItems.cartesianItems;
-exports.selectUnfilteredCartesianItems = selectUnfilteredCartesianItems;
-var selectAxisPredicate = (0, _reselect.createSelector)([_pickAxisType.pickAxisType, _pickAxisId.pickAxisId], itemAxisPredicate);
-var combineGraphicalItemsSettings = (graphicalItems, axisSettings, axisPredicate) => graphicalItems.filter(axisPredicate).filter(item => {
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.includeHidden) === true) {
-    return true;
-  }
-  return !item.hide;
-});
-exports.combineGraphicalItemsSettings = combineGraphicalItemsSettings;
-var selectCartesianItemsSettings = exports.selectCartesianItemsSettings = (0, _reselect.createSelector)([selectUnfilteredCartesianItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings, {
-  memoizeOptions: {
-    resultEqualityCheck: _arrayEqualityCheck.emptyArraysAreEqualCheck
-  }
-});
-var selectStackedCartesianItemsSettings = exports.selectStackedCartesianItemsSettings = (0, _reselect.createSelector)([selectCartesianItemsSettings], cartesianItems => {
-  return cartesianItems.filter(item => item.type === 'area' || item.type === 'bar').filter(_StackedGraphicalItem.isStacked);
-});
-var filterGraphicalNotStackedItems = cartesianItems => cartesianItems.filter(item => !('stackId' in item) || item.stackId === undefined);
-exports.filterGraphicalNotStackedItems = filterGraphicalNotStackedItems;
-var selectCartesianItemsSettingsExceptStacked = (0, _reselect.createSelector)([selectCartesianItemsSettings], filterGraphicalNotStackedItems);
-var combineGraphicalItemsData = cartesianItems => cartesianItems.map(item => item.data).filter(Boolean).flat(1);
-
-/**
- * This is a "cheap" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.
- * Also does not apply dataKey yet.
- * @param state RechartsRootState
- * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey
- */
-exports.combineGraphicalItemsData = combineGraphicalItemsData;
-var selectCartesianGraphicalItemsData = exports.selectCartesianGraphicalItemsData = (0, _reselect.createSelector)([selectCartesianItemsSettings], combineGraphicalItemsData, {
-  memoizeOptions: {
-    resultEqualityCheck: _arrayEqualityCheck.emptyArraysAreEqualCheck
-  }
-});
-var combineDisplayedData = (graphicalItemsData, _ref) => {
-  var {
-    chartData = [],
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (graphicalItemsData.length > 0) {
-    /*
-     * There is no slicing when data is defined on graphical items. Why?
-     * Because Brush ignores data defined on graphical items,
-     * and does not render.
-     * So Brush will never show up in a Scatter chart for example.
-     * This is something we will need to fix.
-     *
-     * Now, when the root chart data is not defined, the dataEndIndex is 0,
-     * which means the itemsData will be sliced to an empty array anyway.
-     * But that's an implementation detail, and we can fix that too.
-     *
-     * Also, in absence of Axis dataKey, we use the dataKey from each item, respectively.
-     * This is the usual pattern for numerical axis, that is the one where bars go up:
-     * users don't specify any dataKey by default and expect the axis to "just match the data".
-     */
-    return graphicalItemsData;
-  }
-  return chartData.slice(dataStartIndex, dataEndIndex + 1);
-};
-
-/**
- * This selector will return all data there is in the chart: graphical items, chart root, all together.
- * Useful for figuring out an axis domain (because that needs to know of everything),
- * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).
- *
- * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.
- */
-exports.combineDisplayedData = combineDisplayedData;
-var selectDisplayedData = exports.selectDisplayedData = (0, _reselect.createSelector)([selectCartesianGraphicalItemsData, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition4], combineDisplayedData);
-var combineAppliedValues = (data, axisSettings, items) => {
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    return data.map(item => ({
-      value: (0, _ChartUtils.getValueByDataKey)(item, axisSettings.dataKey)
-    }));
-  }
-  if (items.length > 0) {
-    return items.map(item => item.dataKey).flatMap(dataKey => data.map(entry => ({
-      value: (0, _ChartUtils.getValueByDataKey)(entry, dataKey)
-    })));
-  }
-  return data.map(entry => ({
-    value: entry
-  }));
-};
-
-/**
- * This selector will return all values with the appropriate dataKey applied on them.
- * Which dataKey is appropriate depends on where it is defined.
- *
- * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.
- */
-exports.combineAppliedValues = combineAppliedValues;
-var selectAllAppliedValues = exports.selectAllAppliedValues = (0, _reselect.createSelector)([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettings], combineAppliedValues);
-function isErrorBarRelevantForAxisType(axisType, errorBar) {
-  switch (axisType) {
-    case 'xAxis':
-      return errorBar.direction === 'x';
-    case 'yAxis':
-      return errorBar.direction === 'y';
-    default:
-      return false;
-  }
-}
-function makeNumber(val) {
-  if ((0, _DataUtils.isNumOrStr)(val) || val instanceof Date) {
-    var n = Number(val);
-    if ((0, _isWellBehavedNumber.isWellBehavedNumber)(n)) {
-      return n;
-    }
-  }
-  return undefined;
-}
-function makeDomain(val) {
-  if (Array.isArray(val)) {
-    var attempt = [makeNumber(val[0]), makeNumber(val[1])];
-    if ((0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(attempt)) {
-      return attempt;
-    }
-    return undefined;
-  }
-  var n = makeNumber(val);
-  if (n == null) {
-    return undefined;
-  }
-  return [n, n];
-}
-function onlyAllowNumbers(data) {
-  return data.map(makeNumber).filter(_DataUtils.isNotNil);
-}
-
-/**
- * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application
- * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.
- * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.
- * @return either undefined or an array of ErrorValue
- */
-function getErrorDomainByDataKey(entry, appliedValue, relevantErrorBars) {
-  if (!relevantErrorBars || typeof appliedValue !== 'number' || (0, _DataUtils.isNan)(appliedValue)) {
-    return [];
-  }
-  if (!relevantErrorBars.length) {
-    return [];
-  }
-  return onlyAllowNumbers(relevantErrorBars.flatMap(eb => {
-    var errorValue = (0, _ChartUtils.getValueByDataKey)(entry, eb.dataKey);
-    var lowBound, highBound;
-    if (Array.isArray(errorValue)) {
-      [lowBound, highBound] = errorValue;
-    } else {
-      lowBound = highBound = errorValue;
-    }
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(lowBound) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(highBound)) {
-      return undefined;
-    }
-    return [appliedValue - lowBound, appliedValue + highBound];
-  }));
-}
-var selectTooltipAxis = state => {
-  var axisType = (0, _selectTooltipAxisType.selectTooltipAxisType)(state);
-  var axisId = (0, _selectTooltipAxisId.selectTooltipAxisId)(state);
-  return selectRenderableAxisSettings(state, axisType, axisId);
-};
-exports.selectTooltipAxis = selectTooltipAxis;
-var selectTooltipAxisDataKey = exports.selectTooltipAxisDataKey = (0, _reselect.createSelector)([selectTooltipAxis], axis => axis === null || axis === void 0 ? void 0 : axis.dataKey);
-var selectDisplayedStackedData = exports.selectDisplayedStackedData = (0, _reselect.createSelector)([selectStackedCartesianItemsSettings, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition4, selectTooltipAxis], _combineDisplayedStackedData.combineDisplayedStackedData);
-var combineStackGroups = (displayedData, items, stackOffsetType, reverseStackOrder) => {
-  var initialItemsGroups = {};
-  var itemsGroup = items.reduce((acc, item) => {
-    if (item.stackId == null) {
-      return acc;
-    }
-    var stack = acc[item.stackId];
-    if (stack == null) {
-      stack = [];
-    }
-    stack.push(item);
-    acc[item.stackId] = stack;
-    return acc;
-  }, initialItemsGroups);
-  return Object.fromEntries(Object.entries(itemsGroup).map(_ref2 => {
-    var [stackId, graphicalItems] = _ref2;
-    var orderedGraphicalItems = reverseStackOrder ? [...graphicalItems].reverse() : graphicalItems;
-    var dataKeys = orderedGraphicalItems.map(_getStackSeriesIdentifier.getStackSeriesIdentifier);
-    return [stackId, {
-      // @ts-expect-error getStackedData requires that the input is array of objects, Recharts does not test for that
-      stackedData: (0, _ChartUtils.getStackedData)(displayedData, dataKeys, stackOffsetType),
-      graphicalItems: orderedGraphicalItems
-    }];
-  }));
-};
-
-/**
- * Stack groups are groups of graphical items that stack on each other.
- * Stack is a function of axis type (X, Y), axis ID, and stack ID.
- * Graphical items that do not have a stack ID are not going to be present in stack groups.
- */
-exports.combineStackGroups = combineStackGroups;
-var selectStackGroups = exports.selectStackGroups = (0, _reselect.createSelector)([selectDisplayedStackedData, selectStackedCartesianItemsSettings, _rootPropsSelectors.selectStackOffsetType, _rootPropsSelectors.selectReverseStackOrder], combineStackGroups);
-var combineDomainOfStackGroups = (stackGroups, _ref3, axisType, domainFromUserPreference) => {
-  var {
-    dataStartIndex,
-    dataEndIndex
-  } = _ref3;
-  if (domainFromUserPreference != null) {
-    // User has specified a domain, so we respect that and we can skip computing anything else
-    return undefined;
-  }
-  if (axisType === 'zAxis') {
-    // ZAxis ignores stacks
-    return undefined;
-  }
-  var domainOfStackGroups = (0, _ChartUtils.getDomainOfStackGroups)(stackGroups, dataStartIndex, dataEndIndex);
-  if (domainOfStackGroups != null && domainOfStackGroups[0] === 0 && domainOfStackGroups[1] === 0) {
-    return undefined;
-  }
-  return domainOfStackGroups;
-};
-exports.combineDomainOfStackGroups = combineDomainOfStackGroups;
-var selectAllowsDataOverflow = (0, _reselect.createSelector)([selectBaseAxis], axisSettings => axisSettings.allowDataOverflow);
-var getDomainDefinition = axisSettings => {
-  var _axisSettings$domain;
-  if (axisSettings == null || !('domain' in axisSettings)) {
-    return defaultNumericDomain;
-  }
-  if (axisSettings.domain != null) {
-    return axisSettings.domain;
-  }
-  if ('ticks' in axisSettings && axisSettings.ticks != null) {
-    if (axisSettings.type === 'number') {
-      var allValues = onlyAllowNumbers(axisSettings.ticks);
-      return [Math.min(...allValues), Math.max(...allValues)];
-    }
-    if (axisSettings.type === 'category') {
-      return axisSettings.ticks.map(String);
-    }
-  }
-  return (_axisSettings$domain = axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.domain) !== null && _axisSettings$domain !== void 0 ? _axisSettings$domain : defaultNumericDomain;
-};
-exports.getDomainDefinition = getDomainDefinition;
-var selectDomainDefinition = exports.selectDomainDefinition = (0, _reselect.createSelector)([selectBaseAxis], getDomainDefinition);
-
-/**
- * Under certain circumstances, we can determine the domain without looking at the data at all.
- * This is the case when the domain is explicitly specified as numbers, or when it is specified
- * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.
- *
- * In that case, this function will return the domain, otherwise it returns undefined.
- *
- * This is an optimization to avoid unnecessary data processing.
- * @param state
- * @param axisType
- * @param axisId
- * @param isPanorama
- */
-var selectDomainFromUserPreference = exports.selectDomainFromUserPreference = (0, _reselect.createSelector)([selectDomainDefinition, selectAllowsDataOverflow], _isDomainSpecifiedByUser.numericalDomainSpecifiedWithoutRequiringData);
-var selectDomainOfStackGroups = exports.selectDomainOfStackGroups = (0, _reselect.createSelector)([selectStackGroups, _dataSelectors.selectChartDataWithIndexes, _pickAxisType.pickAxisType, selectDomainFromUserPreference], combineDomainOfStackGroups, {
-  memoizeOptions: {
-    resultEqualityCheck: _numberDomainEqualityCheck.numberDomainEqualityCheck
-  }
-});
-var selectAllErrorBarSettings = state => state.errorBars;
-exports.selectAllErrorBarSettings = selectAllErrorBarSettings;
-var combineRelevantErrorBarSettings = (cartesianItemsSettings, allErrorBarSettings, axisType) => {
-  return cartesianItemsSettings.flatMap(item => {
-    return allErrorBarSettings[item.id];
-  }).filter(Boolean).filter(e => {
-    return isErrorBarRelevantForAxisType(axisType, e);
-  });
-};
-var mergeDomains = exports.mergeDomains = function mergeDomains() {
-  for (var _len = arguments.length, domains = new Array(_len), _key = 0; _key < _len; _key++) {
-    domains[_key] = arguments[_key];
-  }
-  var allDomains = domains.filter(Boolean);
-  if (allDomains.length === 0) {
-    return undefined;
-  }
-  var allValues = allDomains.flat();
-  var min = Math.min(...allValues);
-  var max = Math.max(...allValues);
-  return [min, max];
-};
-var combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = (data, axisSettings, items, errorBars, axisType) => {
-  var lowerEnd, upperEnd;
-  if (items.length > 0) {
-    data.forEach(entry => {
-      items.forEach(item => {
-        var _errorBars$item$id, _axisSettings$dataKey;
-        var relevantErrorBars = (_errorBars$item$id = errorBars[item.id]) === null || _errorBars$item$id === void 0 ? void 0 : _errorBars$item$id.filter(errorBar => isErrorBarRelevantForAxisType(axisType, errorBar));
-        var valueByDataKey = (0, _ChartUtils.getValueByDataKey)(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);
-        var errorDomain = getErrorDomainByDataKey(entry, valueByDataKey, relevantErrorBars);
-        if (errorDomain.length >= 2) {
-          var localLower = Math.min(...errorDomain);
-          var localUpper = Math.max(...errorDomain);
-          if (lowerEnd == null || localLower < lowerEnd) {
-            lowerEnd = localLower;
-          }
-          if (upperEnd == null || localUpper > upperEnd) {
-            upperEnd = localUpper;
-          }
-        }
-        var dataValueDomain = makeDomain(valueByDataKey);
-        if (dataValueDomain != null) {
-          lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);
-          upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);
-        }
-      });
-    });
-  }
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    data.forEach(item => {
-      var dataValueDomain = makeDomain((0, _ChartUtils.getValueByDataKey)(item, axisSettings.dataKey));
-      if (dataValueDomain != null) {
-        lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);
-        upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);
-      }
-    });
-  }
-  if ((0, _isWellBehavedNumber.isWellBehavedNumber)(lowerEnd) && (0, _isWellBehavedNumber.isWellBehavedNumber)(upperEnd)) {
-    return [lowerEnd, upperEnd];
-  }
-  return undefined;
-};
-exports.combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = combineDomainOfAllAppliedNumericalValuesIncludingErrorValues;
-var selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = (0, _reselect.createSelector)([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettingsExceptStacked, selectAllErrorBarSettings, _pickAxisType.pickAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {
-  memoizeOptions: {
-    resultEqualityCheck: _numberDomainEqualityCheck.numberDomainEqualityCheck
-  }
-});
-function onlyAllowNumbersAndStringsAndDates(item) {
-  var {
-    value
-  } = item;
-  if ((0, _DataUtils.isNumOrStr)(value) || value instanceof Date) {
-    return value;
-  }
-  return undefined;
-}
-var computeDomainOfTypeCategory = (allDataSquished, axisSettings, isCategorical) => {
-  var categoricalDomain = allDataSquished.map(onlyAllowNumbersAndStringsAndDates).filter(v => v != null);
-  if (isCategorical && (axisSettings.dataKey == null || axisSettings.allowDuplicatedCategory && (0, _DataUtils.hasDuplicate)(categoricalDomain))) {
-    /*
-     * 1. In an absence of dataKey, Recharts will use array indexes as its categorical domain
-     * 2. When category axis has duplicated text, serial numbers are used to generate scale
-     */
-    return (0, _range.default)(0, allDataSquished.length);
-  }
-  if (axisSettings.allowDuplicatedCategory) {
-    return categoricalDomain;
-  }
-  return Array.from(new Set(categoricalDomain));
-};
-var selectReferenceDots = state => state.referenceElements.dots;
-exports.selectReferenceDots = selectReferenceDots;
-var filterReferenceElements = (elements, axisType, axisId) => {
-  return elements.filter(el => el.ifOverflow === 'extendDomain').filter(el => {
-    if (axisType === 'xAxis') {
-      return el.xAxisId === axisId;
-    }
-    return el.yAxisId === axisId;
-  });
-};
-exports.filterReferenceElements = filterReferenceElements;
-var selectReferenceDotsByAxis = exports.selectReferenceDotsByAxis = (0, _reselect.createSelector)([selectReferenceDots, _pickAxisType.pickAxisType, _pickAxisId.pickAxisId], filterReferenceElements);
-var selectReferenceAreas = state => state.referenceElements.areas;
-exports.selectReferenceAreas = selectReferenceAreas;
-var selectReferenceAreasByAxis = exports.selectReferenceAreasByAxis = (0, _reselect.createSelector)([selectReferenceAreas, _pickAxisType.pickAxisType, _pickAxisId.pickAxisId], filterReferenceElements);
-var selectReferenceLines = state => state.referenceElements.lines;
-exports.selectReferenceLines = selectReferenceLines;
-var selectReferenceLinesByAxis = exports.selectReferenceLinesByAxis = (0, _reselect.createSelector)([selectReferenceLines, _pickAxisType.pickAxisType, _pickAxisId.pickAxisId], filterReferenceElements);
-var combineDotsDomain = (dots, axisType) => {
-  if (dots == null) {
-    return undefined;
-  }
-  var allCoords = onlyAllowNumbers(dots.map(dot => axisType === 'xAxis' ? dot.x : dot.y));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-exports.combineDotsDomain = combineDotsDomain;
-var selectReferenceDotsDomain = (0, _reselect.createSelector)(selectReferenceDotsByAxis, _pickAxisType.pickAxisType, combineDotsDomain);
-var combineAreasDomain = (areas, axisType) => {
-  if (areas == null) {
-    return undefined;
-  }
-  var allCoords = onlyAllowNumbers(areas.flatMap(area => [axisType === 'xAxis' ? area.x1 : area.y1, axisType === 'xAxis' ? area.x2 : area.y2]));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-exports.combineAreasDomain = combineAreasDomain;
-var selectReferenceAreasDomain = (0, _reselect.createSelector)([selectReferenceAreasByAxis, _pickAxisType.pickAxisType], combineAreasDomain);
-function extractXCoordinates(line) {
-  var _line$segment;
-  if (line.x != null) {
-    return onlyAllowNumbers([line.x]);
-  }
-  var segmentCoordinates = (_line$segment = line.segment) === null || _line$segment === void 0 ? void 0 : _line$segment.map(s => s.x);
-  if (segmentCoordinates == null || segmentCoordinates.length === 0) {
-    return [];
-  }
-  return onlyAllowNumbers(segmentCoordinates);
-}
-function extractYCoordinates(line) {
-  var _line$segment2;
-  if (line.y != null) {
-    return onlyAllowNumbers([line.y]);
-  }
-  var segmentCoordinates = (_line$segment2 = line.segment) === null || _line$segment2 === void 0 ? void 0 : _line$segment2.map(s => s.y);
-  if (segmentCoordinates == null || segmentCoordinates.length === 0) {
-    return [];
-  }
-  return onlyAllowNumbers(segmentCoordinates);
-}
-var combineLinesDomain = (lines, axisType) => {
-  if (lines == null) {
-    return undefined;
-  }
-  var allCoords = lines.flatMap(line => axisType === 'xAxis' ? extractXCoordinates(line) : extractYCoordinates(line));
-  if (allCoords.length === 0) {
-    return undefined;
-  }
-  return [Math.min(...allCoords), Math.max(...allCoords)];
-};
-exports.combineLinesDomain = combineLinesDomain;
-var selectReferenceLinesDomain = (0, _reselect.createSelector)([selectReferenceLinesByAxis, _pickAxisType.pickAxisType], combineLinesDomain);
-var selectReferenceElementsDomain = (0, _reselect.createSelector)(selectReferenceDotsDomain, selectReferenceLinesDomain, selectReferenceAreasDomain, (dotsDomain, linesDomain, areasDomain) => {
-  return mergeDomains(dotsDomain, areasDomain, linesDomain);
-});
-var combineNumericalDomain = (axisSettings, domainDefinition, domainFromUserPreference, domainOfStackGroups, dataAndErrorBarsDomain, referenceElementsDomain, layout, axisType) => {
-  if (domainFromUserPreference != null) {
-    // We're done! No need to compute anything else.
-    return domainFromUserPreference;
-  }
-  var shouldIncludeDomainOfStackGroups = layout === 'vertical' && axisType === 'xAxis' || layout === 'horizontal' && axisType === 'yAxis';
-  var mergedDomains = shouldIncludeDomainOfStackGroups ? mergeDomains(domainOfStackGroups, referenceElementsDomain, dataAndErrorBarsDomain) : mergeDomains(referenceElementsDomain, dataAndErrorBarsDomain);
-  return (0, _isDomainSpecifiedByUser.parseNumericalUserDomain)(domainDefinition, mergedDomains, axisSettings.allowDataOverflow);
-};
-exports.combineNumericalDomain = combineNumericalDomain;
-var selectNumericalDomain = exports.selectNumericalDomain = (0, _reselect.createSelector)([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectReferenceElementsDomain, _chartLayoutContext.selectChartLayout, _pickAxisType.pickAxisType], combineNumericalDomain, {
-  memoizeOptions: {
-    resultEqualityCheck: _numberDomainEqualityCheck.numberDomainEqualityCheck
-  }
-});
-
-/**
- * Expand by design maps everything between 0 and 1,
- * there is nothing to compute.
- * See https://d3js.org/d3-shape/stack#stack-offsets
- */
-var expandDomain = [0, 1];
-var combineAxisDomain = (axisSettings, layout, displayedData, allAppliedValues, stackOffsetType, axisType, numericalDomain) => {
-  if ((axisSettings == null || displayedData == null || displayedData.length === 0) && numericalDomain === undefined) {
-    return undefined;
-  }
-  var {
-    dataKey,
-    type
-  } = axisSettings;
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  if (isCategorical && dataKey == null) {
-    var _displayedData$length;
-    return (0, _range.default)(0, (_displayedData$length = displayedData === null || displayedData === void 0 ? void 0 : displayedData.length) !== null && _displayedData$length !== void 0 ? _displayedData$length : 0);
-  }
-  if (type === 'category') {
-    return computeDomainOfTypeCategory(allAppliedValues, axisSettings, isCategorical);
-  }
-  if (stackOffsetType === 'expand') {
-    return expandDomain;
-  }
-  return numericalDomain;
-};
-exports.combineAxisDomain = combineAxisDomain;
-var selectAxisDomain = exports.selectAxisDomain = (0, _reselect.createSelector)([selectBaseAxis, _chartLayoutContext.selectChartLayout, selectDisplayedData, selectAllAppliedValues, _rootPropsSelectors.selectStackOffsetType, _pickAxisType.pickAxisType, selectNumericalDomain], combineAxisDomain);
-function isSupportedScaleName(name) {
-  return name in d3Scales;
-}
-var combineRealScaleType = (axisConfig, hasBar, chartType) => {
-  if (axisConfig == null) {
-    return undefined;
-  }
-  var {
-    scale,
-    type
-  } = axisConfig;
-  if (scale === 'auto') {
-    if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {
-      return 'point';
-    }
-    if (type === 'category') {
-      return 'band';
-    }
-    return 'linear';
-  }
-  if (typeof scale === 'string') {
-    var name = "scale".concat((0, _DataUtils.upperFirst)(scale));
-    return isSupportedScaleName(name) ? name : 'point';
-  }
-  return undefined;
-};
-exports.combineRealScaleType = combineRealScaleType;
-var selectRealScaleType = exports.selectRealScaleType = (0, _reselect.createSelector)([selectBaseAxis, selectHasBar, _rootPropsSelectors.selectChartName], combineRealScaleType);
-function combineScaleFunction(axis, realScaleType, axisDomain, axisRange) {
-  if (axisDomain == null || axisRange == null) {
-    return undefined;
-  }
-  if (typeof axis.scale === 'function') {
-    return (0, _RechartsScale.rechartsScaleFactory)(axis.scale, axisDomain, axisRange);
-  }
-  return (0, _RechartsScale.rechartsScaleFactory)(realScaleType, axisDomain, axisRange);
-}
-var combineNiceTicks = (axisDomain, axisSettings, realScaleType) => {
-  var domainDefinition = getDomainDefinition(axisSettings);
-  if (realScaleType !== 'auto' && realScaleType !== 'linear') {
-    return undefined;
-  }
-  if (axisSettings != null && axisSettings.tickCount && Array.isArray(domainDefinition) && (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto') && (0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(axisDomain)) {
-    return (0, _scale.getNiceTickValues)(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);
-  }
-  if (axisSettings != null && axisSettings.tickCount && axisSettings.type === 'number' && (0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(axisDomain)) {
-    return (0, _scale.getTickValuesFixedDomain)(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);
-  }
-  return undefined;
-};
-exports.combineNiceTicks = combineNiceTicks;
-var selectNiceTicks = exports.selectNiceTicks = (0, _reselect.createSelector)([selectAxisDomain, selectRenderableAxisSettings, selectRealScaleType], combineNiceTicks);
-var combineAxisDomainWithNiceTicks = (axisSettings, domain, niceTicks, axisType) => {
-  if (
-  /*
-   * Angle axis for some reason uses nice ticks when rendering axis tick labels,
-   * but doesn't use nice ticks for extending domain like all the other axes do.
-   * Not really sure why? Is there a good reason,
-   * or is it just because someone added support for nice ticks to the other axes and forgot this one?
-   */
-  axisType !== 'angleAxis' && (axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.type) === 'number' && (0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(domain) && Array.isArray(niceTicks) && niceTicks.length > 0) {
-    var _niceTicks$, _niceTicks;
-    var minFromDomain = domain[0];
-    var minFromTicks = (_niceTicks$ = niceTicks[0]) !== null && _niceTicks$ !== void 0 ? _niceTicks$ : 0;
-    var maxFromDomain = domain[1];
-    var maxFromTicks = (_niceTicks = niceTicks[niceTicks.length - 1]) !== null && _niceTicks !== void 0 ? _niceTicks : 0;
-    return [Math.min(minFromDomain, minFromTicks), Math.max(maxFromDomain, maxFromTicks)];
-  }
-  return domain;
-};
-exports.combineAxisDomainWithNiceTicks = combineAxisDomainWithNiceTicks;
-var selectAxisDomainIncludingNiceTicks = exports.selectAxisDomainIncludingNiceTicks = (0, _reselect.createSelector)([selectBaseAxis, selectAxisDomain, selectNiceTicks, _pickAxisType.pickAxisType], combineAxisDomainWithNiceTicks);
-
-/**
- * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).
- * Ignores domain provided by user and only considers domain from data.
- *
- * The result is a number between 0 and 1.
- */
-var selectSmallestDistanceBetweenValues = exports.selectSmallestDistanceBetweenValues = (0, _reselect.createSelector)(selectAllAppliedValues, selectBaseAxis, (allDataSquished, axisSettings) => {
-  if (!axisSettings || axisSettings.type !== 'number') {
-    return undefined;
-  }
-  var smallestDistanceBetweenValues = Infinity;
-  var sortedValues = Array.from(onlyAllowNumbers(allDataSquished.map(d => d.value))).sort((a, b) => a - b);
-  var first = sortedValues[0];
-  var last = sortedValues[sortedValues.length - 1];
-  if (first == null || last == null) {
-    return Infinity;
-  }
-  var diff = last - first;
-  if (diff === 0) {
-    return Infinity;
-  }
-  // Only do n - 1 distance calculations because there's only n - 1 distances between n values.
-  for (var i = 0; i < sortedValues.length - 1; i++) {
-    var curr = sortedValues[i];
-    var next = sortedValues[i + 1];
-    if (curr == null || next == null) {
-      continue;
-    }
-    var distance = next - curr;
-    smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);
-  }
-  return smallestDistanceBetweenValues / diff;
-});
-var selectCalculatedPadding = (0, _reselect.createSelector)(selectSmallestDistanceBetweenValues, _chartLayoutContext.selectChartLayout, _rootPropsSelectors.selectBarCategoryGap, _selectChartOffsetInternal.selectChartOffsetInternal, (_1, _2, _3, _4, padding) => padding, (smallestDistanceInPercent, layout, barCategoryGap, offset, padding) => {
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(smallestDistanceInPercent)) {
-    return 0;
-  }
-  var rangeWidth = layout === 'vertical' ? offset.height : offset.width;
-  if (padding === 'gap') {
-    return smallestDistanceInPercent * rangeWidth / 2;
-  }
-  if (padding === 'no-gap') {
-    var gap = (0, _DataUtils.getPercentValue)(barCategoryGap, smallestDistanceInPercent * rangeWidth);
-    var halfBand = smallestDistanceInPercent * rangeWidth / 2;
-    return halfBand - gap - (halfBand - gap) / rangeWidth * gap;
-  }
-  return 0;
-});
-var selectCalculatedXAxisPadding = (state, axisId, isPanorama) => {
-  var xAxisSettings = selectXAxisSettings(state, axisId);
-  if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {
-    return 0;
-  }
-  return selectCalculatedPadding(state, 'xAxis', axisId, isPanorama, xAxisSettings.padding);
-};
-exports.selectCalculatedXAxisPadding = selectCalculatedXAxisPadding;
-var selectCalculatedYAxisPadding = (state, axisId, isPanorama) => {
-  var yAxisSettings = selectYAxisSettings(state, axisId);
-  if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {
-    return 0;
-  }
-  return selectCalculatedPadding(state, 'yAxis', axisId, isPanorama, yAxisSettings.padding);
-};
-exports.selectCalculatedYAxisPadding = selectCalculatedYAxisPadding;
-var selectXAxisPadding = (0, _reselect.createSelector)(selectXAxisSettings, selectCalculatedXAxisPadding, (xAxisSettings, calculated) => {
-  var _padding$left, _padding$right;
-  if (xAxisSettings == null) {
-    return {
-      left: 0,
-      right: 0
-    };
-  }
-  var {
-    padding
-  } = xAxisSettings;
-  if (typeof padding === 'string') {
-    return {
-      left: calculated,
-      right: calculated
-    };
-  }
-  return {
-    left: ((_padding$left = padding.left) !== null && _padding$left !== void 0 ? _padding$left : 0) + calculated,
-    right: ((_padding$right = padding.right) !== null && _padding$right !== void 0 ? _padding$right : 0) + calculated
-  };
-});
-var selectYAxisPadding = (0, _reselect.createSelector)(selectYAxisSettings, selectCalculatedYAxisPadding, (yAxisSettings, calculated) => {
-  var _padding$top, _padding$bottom;
-  if (yAxisSettings == null) {
-    return {
-      top: 0,
-      bottom: 0
-    };
-  }
-  var {
-    padding
-  } = yAxisSettings;
-  if (typeof padding === 'string') {
-    return {
-      top: calculated,
-      bottom: calculated
-    };
-  }
-  return {
-    top: ((_padding$top = padding.top) !== null && _padding$top !== void 0 ? _padding$top : 0) + calculated,
-    bottom: ((_padding$bottom = padding.bottom) !== null && _padding$bottom !== void 0 ? _padding$bottom : 0) + calculated
-  };
-});
-var combineXAxisRange = exports.combineXAxisRange = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, selectXAxisPadding, _brushSelectors.selectBrushDimensions, _brushSelectors.selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, padding, brushDimensions, _ref4, isPanorama) => {
-  var {
-    padding: brushPadding
-  } = _ref4;
-  if (isPanorama) {
-    return [brushPadding.left, brushDimensions.width - brushPadding.right];
-  }
-  return [offset.left + padding.left, offset.left + offset.width - padding.right];
-});
-var combineYAxisRange = exports.combineYAxisRange = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, _chartLayoutContext.selectChartLayout, selectYAxisPadding, _brushSelectors.selectBrushDimensions, _brushSelectors.selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, layout, padding, brushDimensions, _ref5, isPanorama) => {
-  var {
-    padding: brushPadding
-  } = _ref5;
-  if (isPanorama) {
-    return [brushDimensions.height - brushPadding.bottom, brushPadding.top];
-  }
-  if (layout === 'horizontal') {
-    return [offset.top + offset.height - padding.bottom, offset.top + padding.top];
-  }
-  return [offset.top + padding.top, offset.top + offset.height - padding.bottom];
-});
-var selectAxisRange = (state, axisType, axisId, isPanorama) => {
-  var _selectZAxisSettings;
-  switch (axisType) {
-    case 'xAxis':
-      return combineXAxisRange(state, axisId, isPanorama);
-    case 'yAxis':
-      return combineYAxisRange(state, axisId, isPanorama);
-    case 'zAxis':
-      return (_selectZAxisSettings = selectZAxisSettings(state, axisId)) === null || _selectZAxisSettings === void 0 ? void 0 : _selectZAxisSettings.range;
-    case 'angleAxis':
-      return (0, _polarAxisSelectors.selectAngleAxisRange)(state);
-    case 'radiusAxis':
-      return (0, _polarAxisSelectors.selectRadiusAxisRange)(state, axisId);
-    default:
-      return undefined;
-  }
-};
-exports.selectAxisRange = selectAxisRange;
-var selectAxisRangeWithReverse = exports.selectAxisRangeWithReverse = (0, _reselect.createSelector)([selectBaseAxis, selectAxisRange], _combineAxisRangeWithReverse.combineAxisRangeWithReverse);
-var selectCheckedAxisDomain = (0, _reselect.createSelector)([selectRealScaleType, selectAxisDomainIncludingNiceTicks], _combineCheckedDomain.combineCheckedDomain);
-var selectAxisScale = exports.selectAxisScale = (0, _reselect.createSelector)([selectBaseAxis, selectRealScaleType, selectCheckedAxisDomain, selectAxisRangeWithReverse], combineScaleFunction);
-var selectErrorBarsSettings = exports.selectErrorBarsSettings = (0, _reselect.createSelector)([selectCartesianItemsSettings, selectAllErrorBarSettings, _pickAxisType.pickAxisType], combineRelevantErrorBarSettings);
-function compareIds(a, b) {
-  if (a.id < b.id) {
-    return -1;
-  }
-  if (a.id > b.id) {
-    return 1;
-  }
-  return 0;
-}
-var pickAxisOrientation = (_state, orientation) => orientation;
-var pickMirror = (_state, _orientation, mirror) => mirror;
-var selectAllXAxesWithOffsetType = (0, _reselect.createSelector)(_selectAllAxes.selectAllXAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));
-var selectAllYAxesWithOffsetType = (0, _reselect.createSelector)(_selectAllAxes.selectAllYAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));
-var getXAxisSize = (offset, axisSettings) => {
-  return {
-    width: offset.width,
-    height: axisSettings.height
-  };
-};
-var getYAxisSize = (offset, axisSettings) => {
-  var width = typeof axisSettings.width === 'number' ? axisSettings.width : _Constants.DEFAULT_Y_AXIS_WIDTH;
-  return {
-    width,
-    height: offset.height
-  };
-};
-var selectXAxisSize = exports.selectXAxisSize = (0, _reselect.createSelector)(_selectChartOffsetInternal.selectChartOffsetInternal, selectXAxisSettings, getXAxisSize);
-var combineXAxisPositionStartingPoint = (offset, orientation, chartHeight) => {
-  switch (orientation) {
-    case 'top':
-      return offset.top;
-    case 'bottom':
-      return chartHeight - offset.bottom;
-    default:
-      return 0;
-  }
-};
-var combineYAxisPositionStartingPoint = (offset, orientation, chartWidth) => {
-  switch (orientation) {
-    case 'left':
-      return offset.left;
-    case 'right':
-      return chartWidth - offset.right;
-    default:
-      return 0;
-  }
-};
-var selectAllXAxesOffsetSteps = exports.selectAllXAxesOffsetSteps = (0, _reselect.createSelector)(_containerSelectors.selectChartHeight, _selectChartOffsetInternal.selectChartOffsetInternal, selectAllXAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartHeight, offset, allAxesWithSameOffsetType, orientation, mirror) => {
-  var steps = {};
-  var position;
-  allAxesWithSameOffsetType.forEach(axis => {
-    var axisSize = getXAxisSize(offset, axis);
-    if (position == null) {
-      position = combineXAxisPositionStartingPoint(offset, orientation, chartHeight);
-    }
-    var needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;
-    steps[axis.id] = position - Number(needSpace) * axisSize.height;
-    position += (needSpace ? -1 : 1) * axisSize.height;
-  });
-  return steps;
-});
-var selectAllYAxesOffsetSteps = exports.selectAllYAxesOffsetSteps = (0, _reselect.createSelector)(_containerSelectors.selectChartWidth, _selectChartOffsetInternal.selectChartOffsetInternal, selectAllYAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartWidth, offset, allAxesWithSameOffsetType, orientation, mirror) => {
-  var steps = {};
-  var position;
-  allAxesWithSameOffsetType.forEach(axis => {
-    var axisSize = getYAxisSize(offset, axis);
-    if (position == null) {
-      position = combineYAxisPositionStartingPoint(offset, orientation, chartWidth);
-    }
-    var needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;
-    steps[axis.id] = position - Number(needSpace) * axisSize.width;
-    position += (needSpace ? -1 : 1) * axisSize.width;
-  });
-  return steps;
-});
-var selectXAxisOffsetSteps = (state, axisId) => {
-  var axisSettings = selectXAxisSettings(state, axisId);
-  if (axisSettings == null) {
-    return undefined;
-  }
-  return selectAllXAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);
-};
-var selectXAxisPosition = exports.selectXAxisPosition = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, selectXAxisSettings, selectXAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {
-  if (axisSettings == null) {
-    return undefined;
-  }
-  var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];
-  if (stepOfThisAxis == null) {
-    return {
-      x: offset.left,
-      y: 0
-    };
-  }
-  return {
-    x: offset.left,
-    y: stepOfThisAxis
-  };
-});
-var selectYAxisOffsetSteps = (state, axisId) => {
-  var axisSettings = selectYAxisSettings(state, axisId);
-  if (axisSettings == null) {
-    return undefined;
-  }
-  return selectAllYAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);
-};
-var selectYAxisPosition = exports.selectYAxisPosition = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, selectYAxisSettings, selectYAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {
-  if (axisSettings == null) {
-    return undefined;
-  }
-  var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];
-  if (stepOfThisAxis == null) {
-    return {
-      x: 0,
-      y: offset.top
-    };
-  }
-  return {
-    x: stepOfThisAxis,
-    y: offset.top
-  };
-});
-var selectYAxisSize = exports.selectYAxisSize = (0, _reselect.createSelector)(_selectChartOffsetInternal.selectChartOffsetInternal, selectYAxisSettings, (offset, axisSettings) => {
-  var width = typeof axisSettings.width === 'number' ? axisSettings.width : _Constants.DEFAULT_Y_AXIS_WIDTH;
-  return {
-    width,
-    height: offset.height
-  };
-});
-var selectCartesianAxisSize = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'xAxis':
-      {
-        return selectXAxisSize(state, axisId).width;
-      }
-    case 'yAxis':
-      {
-        return selectYAxisSize(state, axisId).height;
-      }
-    default:
-      {
-        return undefined;
-      }
-  }
-};
-exports.selectCartesianAxisSize = selectCartesianAxisSize;
-var combineDuplicateDomain = (chartLayout, appliedValues, axis, axisType) => {
-  if (axis == null) {
-    return undefined;
-  }
-  var {
-    allowDuplicatedCategory,
-    type,
-    dataKey
-  } = axis;
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(chartLayout, axisType);
-  var allData = appliedValues.map(av => av.value);
-  if (dataKey && isCategorical && type === 'category' && allowDuplicatedCategory && (0, _DataUtils.hasDuplicate)(allData)) {
-    return allData;
-  }
-  return undefined;
-};
-exports.combineDuplicateDomain = combineDuplicateDomain;
-var selectDuplicateDomain = exports.selectDuplicateDomain = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectAllAppliedValues, selectBaseAxis, _pickAxisType.pickAxisType], combineDuplicateDomain);
-var combineCategoricalDomain = (layout, appliedValues, axis, axisType) => {
-  if (axis == null || axis.dataKey == null) {
-    return undefined;
-  }
-  var {
-    type,
-    scale
-  } = axis;
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  if (isCategorical && (type === 'number' || scale !== 'auto')) {
-    return appliedValues.map(d => d.value);
-  }
-  return undefined;
-};
-exports.combineCategoricalDomain = combineCategoricalDomain;
-var selectCategoricalDomain = exports.selectCategoricalDomain = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectAllAppliedValues, selectRenderableAxisSettings, _pickAxisType.pickAxisType], combineCategoricalDomain);
-var selectAxisPropsNeededForCartesianGridTicksGenerator = exports.selectAxisPropsNeededForCartesianGridTicksGenerator = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectCartesianAxisSettings, selectRealScaleType, selectAxisScale, selectDuplicateDomain, selectCategoricalDomain, selectAxisRange, selectNiceTicks, _pickAxisType.pickAxisType], (layout, axis, realScaleType, scale, duplicateDomain, categoricalDomain, axisRange, niceTicks, axisType) => {
-  if (axis == null) {
-    return undefined;
-  }
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  return {
-    angle: axis.angle,
-    interval: axis.interval,
-    minTickGap: axis.minTickGap,
-    orientation: axis.orientation,
-    tick: axis.tick,
-    tickCount: axis.tickCount,
-    tickFormatter: axis.tickFormatter,
-    ticks: axis.ticks,
-    type: axis.type,
-    unit: axis.unit,
-    axisType,
-    categoricalDomain,
-    duplicateDomain,
-    isCategorical,
-    niceTicks,
-    range: axisRange,
-    realScaleType,
-    scale
-  };
-});
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-var combineAxisTicks = (layout, axis, realScaleType, scale, niceTicks, axisRange, duplicateDomain, categoricalDomain, axisType) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  var {
-    type,
-    ticks,
-    tickCount
-  } = axis;
-  var offsetForBand =
-  // @ts-expect-error This is testing for `scaleBand` but for band axis the type is reported as `band` so this looks like a dead code with a workaround elsewhere?
-  realScaleType === 'scaleBand' && typeof scale.bandwidth === 'function' ? scale.bandwidth() / 2 : 2;
-  var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && axisRange != null && axisRange.length >= 2 ? (0, _DataUtils.mathSign)(axisRange[0] - axisRange[1]) * 2 * offset : offset;
-
-  // The ticks set by user should only affect the ticks adjacent to axis line
-  var ticksOrNiceTicks = ticks || niceTicks;
-  if (ticksOrNiceTicks) {
-    return ticksOrNiceTicks.map((entry, index) => {
-      var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;
-      var scaled = scale.map(scaleContent);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        index,
-        coordinate: scaled + offset,
-        value: entry,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-  if (scale.ticks) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(_DataUtils.isNotNil);
-};
-exports.combineAxisTicks = combineAxisTicks;
-var selectTicksOfAxis = exports.selectTicksOfAxis = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectRenderableAxisSettings, selectRealScaleType, selectAxisScale, selectNiceTicks, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, _pickAxisType.pickAxisType], combineAxisTicks);
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-var combineGraphicalItemTicks = (layout, axis, scale, axisRange, duplicateDomain, categoricalDomain, axisType) => {
-  if (axis == null || scale == null || axisRange == null || axisRange[0] === axisRange[1]) {
-    return undefined;
-  }
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  var {
-    tickCount
-  } = axis;
-  var offset = 0;
-  offset = axisType === 'angleAxis' && (axisRange === null || axisRange === void 0 ? void 0 : axisRange.length) >= 2 ? (0, _DataUtils.mathSign)(axisRange[0] - axisRange[1]) * 2 * offset : offset;
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-  if (scale.ticks) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use unknown as index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(_DataUtils.isNotNil);
-};
-exports.combineGraphicalItemTicks = combineGraphicalItemTicks;
-var selectTicksOfGraphicalItem = exports.selectTicksOfGraphicalItem = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectRenderableAxisSettings, selectAxisScale, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, _pickAxisType.pickAxisType], combineGraphicalItemTicks);
-
-/**
- * This is the internal representation of an axis along with its scale function.
- * Here we have already computed the scale function for the axis,
- * and replaced the union type of scale (string | function) with just the function type.
- */
-
-var selectAxisWithScale = exports.selectAxisWithScale = (0, _reselect.createSelector)(selectBaseAxis, selectAxisScale, (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-var selectZAxisScale = (0, _reselect.createSelector)([selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse], combineScaleFunction);
-var selectZAxisWithScale = exports.selectZAxisWithScale = (0, _reselect.createSelector)((state, _axisType, axisId) => selectZAxisSettings(state, axisId), selectZAxisScale, (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-
-/**
- * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.
- */
-
-var selectChartDirection = exports.selectChartDirection = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _selectAllAxes.selectAllXAxes, _selectAllAxes.selectAllYAxes], (layout, allXAxes, allYAxes) => {
-  switch (layout) {
-    case 'horizontal':
-      {
-        return allXAxes.some(axis => axis.reversed) ? 'right-to-left' : 'left-to-right';
-      }
-    case 'vertical':
-      {
-        return allYAxes.some(axis => axis.reversed) ? 'bottom-to-top' : 'top-to-bottom';
-      }
-    // TODO: make this better. For now, right arrow triggers "forward", left arrow "back"
-    // however, the tooltip moves an unintuitive direction because of how the indices are rendered
-    case 'centric':
-    case 'radial':
-      {
-        return 'left-to-right';
-      }
-    default:
-      {
-        return undefined;
-      }
-  }
-});
Index: de_modules/recharts/lib/state/selectors/barSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/barSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,172 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectStackedDataOfItem = exports.selectMaxBarSize = exports.selectBarSizeList = exports.selectBarRectangles = exports.selectBarPosition = exports.selectBarCartesianAxisSize = exports.selectBarBandSize = exports.selectAxisBandSize = exports.selectAllVisibleBars = exports.selectAllBarPositions = void 0;
-var _reselect = require("reselect");
-var _axisSelectors = require("./axisSelectors");
-var _DataUtils = require("../../util/DataUtils");
-var _ChartUtils = require("../../util/ChartUtils");
-var _Bar = require("../../cartesian/Bar");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _dataSelectors = require("./dataSelectors");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _combineBarSizeList = require("./combiners/combineBarSizeList");
-var _combineAllBarPositions = require("./combiners/combineAllBarPositions");
-var _combineStackedData = require("./combiners/combineStackedData");
-var _graphicalItemSelectors = require("./graphicalItemSelectors");
-var _combineBarPosition = require("./combiners/combineBarPosition");
-var pickIsPanorama = (_state, _id, isPanorama) => isPanorama;
-var pickBarId = (_state, id) => id;
-var selectSynchronisedBarSettings = (0, _reselect.createSelector)([_axisSelectors.selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));
-var selectMaxBarSize = exports.selectMaxBarSize = (0, _reselect.createSelector)([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);
-var pickCells = (_state, _id, _isPanorama, cells) => cells;
-var selectAllVisibleBars = exports.selectAllVisibleBars = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _axisSelectors.selectUnfilteredCartesianItems, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {
-  if (layout === 'horizontal') {
-    return i.xAxisId === xAxisId;
-  }
-  return i.yAxisId === yAxisId;
-}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));
-var selectBarStackGroups = (state, id, isPanorama) => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  if (layout === 'horizontal') {
-    return (0, _axisSelectors.selectStackGroups)(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return (0, _axisSelectors.selectStackGroups)(state, 'xAxis', xAxisId, isPanorama);
-};
-var selectBarCartesianAxisSize = (state, id) => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  if (layout === 'horizontal') {
-    return (0, _axisSelectors.selectCartesianAxisSize)(state, 'xAxis', xAxisId);
-  }
-  return (0, _axisSelectors.selectCartesianAxisSize)(state, 'yAxis', yAxisId);
-};
-exports.selectBarCartesianAxisSize = selectBarCartesianAxisSize;
-var selectBarSizeList = exports.selectBarSizeList = (0, _reselect.createSelector)([selectAllVisibleBars, _rootPropsSelectors.selectRootBarSize, selectBarCartesianAxisSize], _combineBarSizeList.combineBarSizeList);
-var selectBarBandSize = (state, id, isPanorama) => {
-  var _ref, _getBandSizeOfAxis;
-  var barSettings = selectSynchronisedBarSettings(state, id);
-  if (barSettings == null) {
-    return 0;
-  }
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return 0;
-  }
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  var globalMaxBarSize = (0, _rootPropsSelectors.selectRootMaxBarSize)(state);
-  var {
-    maxBarSize: childMaxBarSize
-  } = barSettings;
-  var maxBarSize = (0, _DataUtils.isNullish)(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  var axis, ticks;
-  if (layout === 'horizontal') {
-    axis = (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama);
-    ticks = (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', xAxisId, isPanorama);
-  } else {
-    axis = (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama);
-    ticks = (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return (_ref = (_getBandSizeOfAxis = (0, _ChartUtils.getBandSizeOfAxis)(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;
-};
-exports.selectBarBandSize = selectBarBandSize;
-var selectAxisBandSize = (state, id, isPanorama) => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null || yAxisId == null) {
-    return undefined;
-  }
-  var axis, ticks;
-  if (layout === 'horizontal') {
-    axis = (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama);
-    ticks = (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', xAxisId, isPanorama);
-  } else {
-    axis = (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama);
-    ticks = (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', yAxisId, isPanorama);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(axis, ticks);
-};
-exports.selectAxisBandSize = selectAxisBandSize;
-var selectAllBarPositions = exports.selectAllBarPositions = (0, _reselect.createSelector)([selectBarSizeList, _rootPropsSelectors.selectRootMaxBarSize, _rootPropsSelectors.selectBarGap, _rootPropsSelectors.selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], _combineAllBarPositions.combineAllBarPositions);
-var selectXAxisWithScale = (state, id, isPanorama) => {
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null) {
-    return undefined;
-  }
-  return (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama);
-};
-var selectYAxisWithScale = (state, id, isPanorama) => {
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (yAxisId == null) {
-    return undefined;
-  }
-  return (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama);
-};
-var selectXAxisTicks = (state, id, isPanorama) => {
-  var xAxisId = (0, _graphicalItemSelectors.selectXAxisIdFromGraphicalItemId)(state, id);
-  if (xAxisId == null) {
-    return undefined;
-  }
-  return (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', xAxisId, isPanorama);
-};
-var selectYAxisTicks = (state, id, isPanorama) => {
-  var yAxisId = (0, _graphicalItemSelectors.selectYAxisIdFromGraphicalItemId)(state, id);
-  if (yAxisId == null) {
-    return undefined;
-  }
-  return (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', yAxisId, isPanorama);
-};
-var selectBarPosition = exports.selectBarPosition = (0, _reselect.createSelector)([selectAllBarPositions, selectSynchronisedBarSettings], _combineBarPosition.combineBarPosition);
-var selectStackedDataOfItem = exports.selectStackedDataOfItem = (0, _reselect.createSelector)([selectBarStackGroups, selectSynchronisedBarSettings], _combineStackedData.combineStackedData);
-var selectBarRectangles = exports.selectBarRectangles = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, _selectChartOffsetInternal.selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, _chartLayoutContext.selectChartLayout, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition3, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref2, bandSize, stackedData, barSettings, cells) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref2;
-  if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {
-    return undefined;
-  }
-  var {
-    data
-  } = barSettings;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return (0, _Bar.computeBarRectangles)({
-    layout,
-    barSettings,
-    pos,
-    parentViewBox: axisViewBox,
-    bandSize,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    stackedData,
-    displayedData,
-    offset,
-    cells,
-    dataStartIndex
-  });
-});
Index: de_modules/recharts/lib/state/selectors/barStackSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/barStackSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectStackRects = exports.selectAllBarsInStack = exports.expandRectangle = void 0;
-var _reselect = require("reselect");
-var _axisSelectors = require("./axisSelectors");
-var _barSelectors = require("./barSelectors");
-var pickStackId = (state, stackId) => stackId;
-var pickIsPanorama = (state, stackId, isPanorama) => isPanorama;
-var selectAllBarsInStack = exports.selectAllBarsInStack = (0, _reselect.createSelector)([pickStackId, _axisSelectors.selectUnfilteredCartesianItems, pickIsPanorama], (stackId, allItems, isPanorama) => {
-  return allItems.filter(i => i.type === 'bar').filter(i => i.stackId === stackId).filter(i => i.isPanorama === isPanorama).filter(i => !i.hide);
-});
-var selectAllBarIdsInStack = (0, _reselect.createSelector)([selectAllBarsInStack], allBars => {
-  return allBars.map(bar => bar.id);
-});
-/**
- * Takes two rectangles and returns a new rectangle that encompasses both.
- * It takes the minimum x and y, and the maximum width and height.
- * It handles overlapping rectangles, and rectangles with a gap between them.
- * @param rect1
- * @param rect2
- */
-var expandRectangle = (rect1, rect2) => {
-  if (!rect1) {
-    return rect2;
-  }
-  if (!rect2) {
-    return rect1;
-  }
-  var x = Math.min(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);
-  var y = Math.min(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);
-  var maxX = Math.max(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);
-  var maxY = Math.max(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);
-  var width = maxX - x;
-  var height = maxY - y;
-  return {
-    x,
-    y,
-    width,
-    height
-  };
-};
-exports.expandRectangle = expandRectangle;
-var combineStackRects = (state, stackId, isPanorama) => {
-  var allBarIds = selectAllBarIdsInStack(state, stackId, isPanorama);
-  var stackRects = [];
-  allBarIds.forEach(barId => {
-    var rectangles = (0, _barSelectors.selectBarRectangles)(state, barId, isPanorama, undefined);
-    rectangles === null || rectangles === void 0 || rectangles.forEach((rect, index) => {
-      stackRects[index] = expandRectangle(stackRects[index], rect);
-    });
-  });
-  return stackRects;
-};
-var selectStackRects = exports.selectStackRects = (0, _reselect.createSelector)([state => state, pickStackId, pickIsPanorama], combineStackRects);
Index: de_modules/recharts/lib/state/selectors/brushSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/brushSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectBrushSettings = exports.selectBrushDimensions = void 0;
-var _reselect = require("reselect");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _containerSelectors = require("./containerSelectors");
-var _DataUtils = require("../../util/DataUtils");
-var selectBrushSettings = state => state.brush;
-exports.selectBrushSettings = selectBrushSettings;
-var selectBrushDimensions = exports.selectBrushDimensions = (0, _reselect.createSelector)([selectBrushSettings, _selectChartOffsetInternal.selectChartOffsetInternal, _containerSelectors.selectMargin], (brushSettings, offset, margin) => ({
-  height: brushSettings.height,
-  x: (0, _DataUtils.isNumber)(brushSettings.x) ? brushSettings.x : offset.left,
-  y: (0, _DataUtils.isNumber)(brushSettings.y) ? brushSettings.y : offset.top + offset.height + offset.brushBottom - ((margin === null || margin === void 0 ? void 0 : margin.bottom) || 0),
-  width: (0, _DataUtils.isNumber)(brushSettings.width) ? brushSettings.width : offset.width
-}));
Index: de_modules/recharts/lib/state/selectors/combiners/combineActiveLabel.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineActiveLabel.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineActiveLabel = void 0;
-var _DataUtils = require("../../../util/DataUtils");
-var combineActiveLabel = (tooltipTicks, activeIndex) => {
-  var _tooltipTicks$n;
-  var n = Number(activeIndex);
-  if ((0, _DataUtils.isNan)(n) || activeIndex == null) {
-    return undefined;
-  }
-  return n >= 0 ? tooltipTicks === null || tooltipTicks === void 0 || (_tooltipTicks$n = tooltipTicks[n]) === null || _tooltipTicks$n === void 0 ? void 0 : _tooltipTicks$n.value : undefined;
-};
-exports.combineActiveLabel = combineActiveLabel;
Index: de_modules/recharts/lib/state/selectors/combiners/combineActiveTooltipIndex.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineActiveTooltipIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,77 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineActiveTooltipIndex = void 0;
-var _isWellBehavedNumber = require("../../../util/isWellBehavedNumber");
-var _ChartUtils = require("../../../util/ChartUtils");
-var _isDomainSpecifiedByUser = require("../../../util/isDomainSpecifiedByUser");
-function toFiniteNumber(value) {
-  if (typeof value === 'number') {
-    return Number.isFinite(value) ? value : undefined;
-  }
-  if (value instanceof Date) {
-    var numericValue = value.valueOf();
-    return Number.isFinite(numericValue) ? numericValue : undefined;
-  }
-  var parsed = Number(value);
-  return Number.isFinite(parsed) ? parsed : undefined;
-}
-function isValueWithinNumberDomain(value, domain) {
-  var numericValue = toFiniteNumber(value);
-  var lowerBound = domain[0];
-  var upperBound = domain[1];
-  if (numericValue === undefined) {
-    return false;
-  }
-  var min = Math.min(lowerBound, upperBound);
-  var max = Math.max(lowerBound, upperBound);
-  return numericValue >= min && numericValue <= max;
-}
-function isValueWithinDomain(entry, axisDataKey, domain) {
-  if (domain == null || axisDataKey == null) {
-    return true;
-  }
-  var value = (0, _ChartUtils.getValueByDataKey)(entry, axisDataKey);
-  if (value == null) {
-    return true;
-  }
-  if (!(0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(domain)) {
-    return true;
-  }
-  return isValueWithinNumberDomain(value, domain);
-}
-var combineActiveTooltipIndex = (tooltipInteraction, chartData, axisDataKey, domain) => {
-  var desiredIndex = tooltipInteraction === null || tooltipInteraction === void 0 ? void 0 : tooltipInteraction.index;
-  if (desiredIndex == null) {
-    return null;
-  }
-  var indexAsNumber = Number(desiredIndex);
-  if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(indexAsNumber)) {
-    // this is for charts like Sankey and Treemap that do not support numerical indexes. We need a proper solution for this before we can start supporting keyboard events on these charts.
-    return desiredIndex;
-  }
-
-  /*
-   * Zero is a trivial limit for single-dimensional charts like Line and Area,
-   * but this also needs a support for multidimensional charts like Sankey and Treemap! TODO
-   */
-  var lowerLimit = 0;
-  var upperLimit = +Infinity;
-  if (chartData.length > 0) {
-    upperLimit = chartData.length - 1;
-  }
-
-  // now let's clamp the desiredIndex between the limits
-  var clampedIndex = Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit));
-  var entry = chartData[clampedIndex];
-  if (entry == null) {
-    return String(clampedIndex);
-  }
-  if (!isValueWithinDomain(entry, axisDataKey, domain)) {
-    return null;
-  }
-  return String(clampedIndex);
-};
-exports.combineActiveTooltipIndex = combineActiveTooltipIndex;
Index: de_modules/recharts/lib/state/selectors/combiners/combineAllBarPositions.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineAllBarPositions.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineAllBarPositions = void 0;
-var _DataUtils = require("../../../util/DataUtils");
-var _isWellBehavedNumber = require("../../../util/isWellBehavedNumber");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {
-  var _sizeList$;
-  var len = sizeList.length;
-  if (len < 1) {
-    return undefined;
-  }
-  var realBarGap = (0, _DataUtils.getPercentValue)(barGap, bandSize, 0, true);
-  var result;
-  var initialValue = [];
-
-  // whether is barSize set by user
-  // Okay but why does it check only for the first element? What if the first element is set but others are not?
-  if ((0, _isWellBehavedNumber.isWellBehavedNumber)((_sizeList$ = sizeList[0]) === null || _sizeList$ === void 0 ? void 0 : _sizeList$.barSize)) {
-    var useFull = false;
-    var fullBarSize = bandSize / len;
-    var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);
-    sum += (len - 1) * realBarGap;
-    if (sum >= bandSize) {
-      sum -= (len - 1) * realBarGap;
-      realBarGap = 0;
-    }
-    if (sum >= bandSize && fullBarSize > 0) {
-      useFull = true;
-      fullBarSize *= 0.9;
-      sum = len * fullBarSize;
-    }
-    var offset = (bandSize - sum) / 2 >> 0;
-    var prev = {
-      offset: offset - realBarGap,
-      size: 0
-    };
-    result = sizeList.reduce((res, entry) => {
-      var _entry$barSize;
-      var newPosition = {
-        stackId: entry.stackId,
-        dataKeys: entry.dataKeys,
-        position: {
-          offset: prev.offset + prev.size + realBarGap,
-          size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0
-        }
-      };
-      var newRes = [...res, newPosition];
-      prev = newPosition.position;
-      return newRes;
-    }, initialValue);
-  } else {
-    var _offset = (0, _DataUtils.getPercentValue)(barCategoryGap, bandSize, 0, true);
-    if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {
-      realBarGap = 0;
-    }
-    var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;
-    if (originalSize > 1) {
-      originalSize >>= 0;
-    }
-    var size = (0, _isWellBehavedNumber.isWellBehavedNumber)(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;
-    result = sizeList.reduce((res, entry, i) => [...res, {
-      stackId: entry.stackId,
-      dataKeys: entry.dataKeys,
-      position: {
-        offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,
-        size
-      }
-    }], initialValue);
-  }
-  return result;
-}
-var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {
-  var maxBarSize = (0, _DataUtils.isNullish)(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);
-  if (barBandSize !== bandSize && allBarPositions != null) {
-    allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {
-      position: _objectSpread(_objectSpread({}, pos.position), {}, {
-        offset: pos.position.offset - barBandSize / 2
-      })
-    }));
-  }
-  return allBarPositions;
-};
-exports.combineAllBarPositions = combineAllBarPositions;
Index: de_modules/recharts/lib/state/selectors/combiners/combineAxisRangeWithReverse.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineAxisRangeWithReverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineAxisRangeWithReverse = void 0;
-var combineAxisRangeWithReverse = (axisSettings, axisRange) => {
-  if (!axisSettings || !axisRange) {
-    return undefined;
-  }
-  if (axisSettings !== null && axisSettings !== void 0 && axisSettings.reversed) {
-    return [axisRange[1], axisRange[0]];
-  }
-  return axisRange;
-};
-exports.combineAxisRangeWithReverse = combineAxisRangeWithReverse;
Index: de_modules/recharts/lib/state/selectors/combiners/combineBarPosition.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineBarPosition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineBarPosition = void 0;
-var combineBarPosition = (allBarPositions, barSettings) => {
-  if (allBarPositions == null || barSettings == null) {
-    return undefined;
-  }
-  var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));
-  if (position == null) {
-    return undefined;
-  }
-  return position.position;
-};
-exports.combineBarPosition = combineBarPosition;
Index: de_modules/recharts/lib/state/selectors/combiners/combineBarSizeList.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineBarSizeList.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineBarSizeList = void 0;
-var _StackedGraphicalItem = require("../../types/StackedGraphicalItem");
-var _DataUtils = require("../../../util/DataUtils");
-var getBarSize = (globalSize, totalSize, selfSize) => {
-  var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;
-  if ((0, _DataUtils.isNullish)(barSize)) {
-    return undefined;
-  }
-  return (0, _DataUtils.getPercentValue)(barSize, totalSize, 0);
-};
-var combineBarSizeList = (allBars, globalSize, totalSize) => {
-  var initialValue = {};
-  var stackedBars = allBars.filter(_StackedGraphicalItem.isStacked);
-  var unstackedBars = allBars.filter(b => b.stackId == null);
-  var groupByStack = stackedBars.reduce((acc, bar) => {
-    var s = acc[bar.stackId];
-    if (s == null) {
-      s = [];
-    }
-    s.push(bar);
-    acc[bar.stackId] = s;
-    return acc;
-  }, initialValue);
-  var stackedSizeList = Object.entries(groupByStack).map(_ref => {
-    var _bars$;
-    var [stackId, bars] = _ref;
-    var dataKeys = bars.map(b => b.dataKey);
-    var barSize = getBarSize(globalSize, totalSize, (_bars$ = bars[0]) === null || _bars$ === void 0 ? void 0 : _bars$.barSize);
-    return {
-      stackId,
-      dataKeys,
-      barSize
-    };
-  });
-  var unstackedSizeList = unstackedBars.map(b => {
-    var dataKeys = [b.dataKey].filter(dk => dk != null);
-    var barSize = getBarSize(globalSize, totalSize, b.barSize);
-    return {
-      stackId: undefined,
-      dataKeys,
-      barSize
-    };
-  });
-  return [...stackedSizeList, ...unstackedSizeList];
-};
-exports.combineBarSizeList = combineBarSizeList;
Index: de_modules/recharts/lib/state/selectors/combiners/combineCheckedDomain.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineCheckedDomain.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineCheckedDomain = void 0;
-var _isDomainSpecifiedByUser = require("../../../util/isDomainSpecifiedByUser");
-var _isWellBehavedNumber = require("../../../util/isWellBehavedNumber");
-/**
- * This function validates and transforms the axis domain so that it is safe to use in the provided scale.
- */
-var combineCheckedDomain = (realScaleType, axisDomain) => {
-  if (axisDomain == null) {
-    return undefined;
-  }
-  switch (realScaleType) {
-    case 'linear':
-      {
-        /*
-         * linear scale only reads the first two numbers in the domain, and ignores everything else.
-         * So if it happens that someone somehow gave us a bigger domain,
-         * let's pick the min and max from it.
-         */
-        if (!(0, _isDomainSpecifiedByUser.isWellFormedNumberDomain)(axisDomain)) {
-          var min, max;
-          for (var i = 0; i < axisDomain.length; i++) {
-            var value = axisDomain[i];
-            if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(value)) {
-              continue;
-            }
-            if (min === undefined || value < min) {
-              min = value;
-            }
-            if (max === undefined || value > max) {
-              max = value;
-            }
-          }
-          if (min !== undefined && max !== undefined) {
-            return [min, max];
-          }
-          return undefined;
-        }
-        return axisDomain;
-      }
-    default:
-      return axisDomain;
-  }
-};
-exports.combineCheckedDomain = combineCheckedDomain;
Index: de_modules/recharts/lib/state/selectors/combiners/combineCoordinateForDefaultIndex.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineCoordinateForDefaultIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineCoordinateForDefaultIndex = void 0;
-var combineCoordinateForDefaultIndex = (width, height, layout, offset, tooltipTicks, defaultIndex, tooltipConfigurations) => {
-  if (defaultIndex == null) {
-    return undefined;
-  }
-  /*
-   * With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display.
-   * Maybe one day we could add new prop `activeGraphicalItemId` to the chart to help with that.
-   * Until then, we choose the first one.
-   */
-  var firstConfiguration = tooltipConfigurations[0];
-  var maybePosition = firstConfiguration === null || firstConfiguration === void 0 ? void 0 : firstConfiguration.getPosition(defaultIndex);
-  if (maybePosition != null) {
-    return maybePosition;
-  }
-  var tick = tooltipTicks === null || tooltipTicks === void 0 ? void 0 : tooltipTicks[Number(defaultIndex)];
-  if (!tick) {
-    return undefined;
-  }
-  switch (layout) {
-    case 'horizontal':
-      {
-        return {
-          x: tick.coordinate,
-          y: (offset.top + height) / 2
-        };
-      }
-    default:
-      {
-        // This logic is not super sound - it conflates vertical, radial, centric layouts into just one. TODO improve!
-        return {
-          x: (offset.left + width) / 2,
-          y: tick.coordinate
-        };
-      }
-  }
-};
-exports.combineCoordinateForDefaultIndex = combineCoordinateForDefaultIndex;
Index: de_modules/recharts/lib/state/selectors/combiners/combineDisplayedStackedData.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineDisplayedStackedData.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineDisplayedStackedData = combineDisplayedStackedData;
-var _getStackSeriesIdentifier = require("../../../util/stacks/getStackSeriesIdentifier");
-var _ChartUtils = require("../../../util/ChartUtils");
-/**
- * In a stacked chart, each graphical item has its own data. That data could be either:
- * - defined on the chart root, in which case the item gets a unique dataKey
- * - or defined on the item itself, in which case multiple items can share the same dataKey
- *
- * That means we cannot use the dataKey as a unique identifier for the item.
- *
- * This type represents a single data point in a stacked chart, where each key is a series identifier
- * and the value is the numeric value for that series using the numerical axis dataKey.
- */
-
-function combineDisplayedStackedData(stackedGraphicalItems, _ref, tooltipAxisSettings) {
-  var {
-    chartData = []
-  } = _ref;
-  var {
-    allowDuplicatedCategory,
-    dataKey: tooltipDataKey
-  } = tooltipAxisSettings;
-
-  // A map of tooltip data keys to the stacked data points
-  var knownItemsByDataKey = new Map();
-  stackedGraphicalItems.forEach(item => {
-    var _item$data;
-    // If there is no data on the individual item then we use the root chart data
-    var resolvedData = (_item$data = item.data) !== null && _item$data !== void 0 ? _item$data : chartData;
-    if (resolvedData == null || resolvedData.length === 0) {
-      // if that doesn't work then we skip this item
-      return;
-    }
-    var stackIdentifier = (0, _getStackSeriesIdentifier.getStackSeriesIdentifier)(item);
-    resolvedData.forEach((entry, index) => {
-      var tooltipValue = tooltipDataKey == null || allowDuplicatedCategory ? index : String((0, _ChartUtils.getValueByDataKey)(entry, tooltipDataKey, null));
-      var numericValue = (0, _ChartUtils.getValueByDataKey)(entry, item.dataKey, 0);
-      var curr;
-      if (knownItemsByDataKey.has(tooltipValue)) {
-        curr = knownItemsByDataKey.get(tooltipValue);
-      } else {
-        curr = {};
-      }
-      Object.assign(curr, {
-        [stackIdentifier]: numericValue
-      });
-      knownItemsByDataKey.set(tooltipValue, curr);
-    });
-  });
-  return Array.from(knownItemsByDataKey.values());
-}
Index: de_modules/recharts/lib/state/selectors/combiners/combineStackedData.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineStackedData.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineStackedData = void 0;
-var _getStackSeriesIdentifier = require("../../../util/stacks/getStackSeriesIdentifier");
-var combineStackedData = (stackGroups, barSettings) => {
-  var stackSeriesIdentifier = (0, _getStackSeriesIdentifier.getStackSeriesIdentifier)(barSettings);
-  if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {
-    return undefined;
-  }
-  var {
-    stackId
-  } = barSettings;
-  if (stackId == null) {
-    return undefined;
-  }
-  var stackGroup = stackGroups[stackId];
-  if (!stackGroup) {
-    return undefined;
-  }
-  var {
-    stackedData
-  } = stackGroup;
-  if (!stackedData) {
-    return undefined;
-  }
-  return stackedData.find(sd => sd.key === stackSeriesIdentifier);
-};
-exports.combineStackedData = combineStackedData;
Index: de_modules/recharts/lib/state/selectors/combiners/combineTooltipInteractionState.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineTooltipInteractionState.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineTooltipInteractionState = void 0;
-var _tooltipSlice = require("../../tooltipSlice");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger) {
-  if (tooltipEventType === 'axis') {
-    if (trigger === 'click') {
-      return tooltipState.axisInteraction.click;
-    }
-    return tooltipState.axisInteraction.hover;
-  }
-  if (trigger === 'click') {
-    return tooltipState.itemInteraction.click;
-  }
-  return tooltipState.itemInteraction.hover;
-}
-function hasBeenActivePreviously(tooltipInteractionState) {
-  return tooltipInteractionState.index != null;
-}
-var combineTooltipInteractionState = (tooltipState, tooltipEventType, trigger, defaultIndex) => {
-  if (tooltipEventType == null) {
-    return _tooltipSlice.noInteraction;
-  }
-  var appropriateMouseInteraction = chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger);
-  if (appropriateMouseInteraction == null) {
-    return _tooltipSlice.noInteraction;
-  }
-  if (appropriateMouseInteraction.active) {
-    return appropriateMouseInteraction;
-  }
-  if (tooltipState.keyboardInteraction.active) {
-    return tooltipState.keyboardInteraction;
-  }
-  if (tooltipState.syncInteraction.active && tooltipState.syncInteraction.index != null) {
-    return tooltipState.syncInteraction;
-  }
-  var activeFromProps = tooltipState.settings.active === true;
-  if (hasBeenActivePreviously(appropriateMouseInteraction)) {
-    if (activeFromProps) {
-      return _objectSpread(_objectSpread({}, appropriateMouseInteraction), {}, {
-        active: true
-      });
-    }
-  } else if (defaultIndex != null) {
-    return {
-      active: true,
-      coordinate: undefined,
-      dataKey: undefined,
-      index: defaultIndex,
-      graphicalItemId: undefined
-    };
-  }
-  return _objectSpread(_objectSpread({}, _tooltipSlice.noInteraction), {}, {
-    coordinate: appropriateMouseInteraction.coordinate
-  });
-};
-exports.combineTooltipInteractionState = combineTooltipInteractionState;
Index: de_modules/recharts/lib/state/selectors/combiners/combineTooltipPayload.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineTooltipPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineTooltipPayload = void 0;
-var _DataUtils = require("../../../util/DataUtils");
-var _ChartUtils = require("../../../util/ChartUtils");
-var _getSliced = require("../../../util/getSliced");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function selectFinalData(dataDefinedOnItem, dataDefinedOnChart) {
-  /*
-   * If a payload has data specified directly from the graphical item, prefer that.
-   * Otherwise, fill in data from the chart level, using the same index.
-   */
-  if (dataDefinedOnItem != null) {
-    return dataDefinedOnItem;
-  }
-  return dataDefinedOnChart;
-}
-var combineTooltipPayload = (tooltipPayloadConfigurations, activeIndex, chartDataState, tooltipAxisDataKey, activeLabel, tooltipPayloadSearcher, tooltipEventType) => {
-  if (activeIndex == null || tooltipPayloadSearcher == null) {
-    return undefined;
-  }
-  var {
-    chartData,
-    computedData,
-    dataStartIndex,
-    dataEndIndex
-  } = chartDataState;
-  var init = [];
-  return tooltipPayloadConfigurations.reduce((agg, _ref) => {
-    var _settings$dataKey;
-    var {
-      dataDefinedOnItem,
-      settings
-    } = _ref;
-    var finalData = selectFinalData(dataDefinedOnItem, chartData);
-    var sliced = Array.isArray(finalData) ? (0, _getSliced.getSliced)(finalData, dataStartIndex, dataEndIndex) : finalData;
-    var finalDataKey = (_settings$dataKey = settings === null || settings === void 0 ? void 0 : settings.dataKey) !== null && _settings$dataKey !== void 0 ? _settings$dataKey : tooltipAxisDataKey;
-    // BaseAxisProps does not support nameKey but it could!
-    var finalNameKey = settings === null || settings === void 0 ? void 0 : settings.nameKey; // ?? tooltipAxis?.nameKey;
-    var tooltipPayload;
-    if (tooltipAxisDataKey && Array.isArray(sliced) &&
-    /*
-     * findEntryInArray won't work for Scatter because Scatter provides an array of arrays
-     * as tooltip payloads and findEntryInArray is not prepared to handle that.
-     * Sad but also ScatterChart only allows 'item' tooltipEventType
-     * and also this is only a problem if there are multiple Scatters and each has its own data array
-     * so let's fix that some other time.
-     */
-    !Array.isArray(sliced[0]) &&
-    /*
-     * If the tooltipEventType is 'axis', we should search for the dataKey in the sliced data
-     * because thanks to allowDuplicatedCategory=false, the order of elements in the array
-     * no longer matches the order of elements in the original data
-     * and so we need to search by the active dataKey + label rather than by index.
-     *
-     * The same happens if multiple graphical items are present in the chart
-     * and each of them has its own data array. Those arrays get concatenated
-     * and again the tooltip index no longer matches the original data.
-     *
-     * On the other hand the tooltipEventType 'item' should always search by index
-     * because we get the index from interacting over the individual elements
-     * which is always accurate, irrespective of the allowDuplicatedCategory setting.
-     */
-    tooltipEventType === 'axis') {
-      tooltipPayload = (0, _DataUtils.findEntryInArray)(sliced, tooltipAxisDataKey, activeLabel);
-    } else {
-      /*
-       * This is a problem because it assumes that the index is pointing to the displayed data
-       * which it isn't because the index is pointing to the tooltip ticks array.
-       * The above approach (with findEntryInArray) is the correct one, but it only works
-       * if the axis dataKey is defined explicitly, and if the data is an array of objects.
-       */
-      tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);
-    }
-    if (Array.isArray(tooltipPayload)) {
-      tooltipPayload.forEach(item => {
-        var newSettings = _objectSpread(_objectSpread({}, settings), {}, {
-          // @ts-expect-error we're assuming that item has name and unit properties
-          name: item.name,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          unit: item.unit,
-          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.
-          color: undefined,
-          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.
-          fill: undefined
-        });
-        agg.push((0, _ChartUtils.getTooltipEntry)({
-          tooltipEntrySettings: newSettings,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          dataKey: item.dataKey,
-          // @ts-expect-error we're assuming that item has name and unit properties
-          payload: item.payload,
-          // @ts-expect-error getValueByDataKey does not validate the output type
-          value: (0, _ChartUtils.getValueByDataKey)(item.payload, item.dataKey),
-          // @ts-expect-error we're assuming that item has name and unit properties
-          name: item.name
-        }));
-      });
-    } else {
-      var _getValueByDataKey;
-      // I am not quite sure why these two branches (Array vs Array of Arrays) have to behave differently - I imagine we should unify these. 3.x breaking change?
-      agg.push((0, _ChartUtils.getTooltipEntry)({
-        tooltipEntrySettings: settings,
-        dataKey: finalDataKey,
-        payload: tooltipPayload,
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        value: (0, _ChartUtils.getValueByDataKey)(tooltipPayload, finalDataKey),
-        // @ts-expect-error getValueByDataKey does not validate the output type
-        name: (_getValueByDataKey = (0, _ChartUtils.getValueByDataKey)(tooltipPayload, finalNameKey)) !== null && _getValueByDataKey !== void 0 ? _getValueByDataKey : settings === null || settings === void 0 ? void 0 : settings.name
-      }));
-    }
-    return agg;
-  }, init);
-};
-exports.combineTooltipPayload = combineTooltipPayload;
Index: de_modules/recharts/lib/state/selectors/combiners/combineTooltipPayloadConfigurations.js
===================================================================
--- node_modules/recharts/lib/state/selectors/combiners/combineTooltipPayloadConfigurations.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineTooltipPayloadConfigurations = void 0;
-var combineTooltipPayloadConfigurations = (tooltipState, tooltipEventType, trigger, defaultIndex) => {
-  // if tooltip reacts to axis interaction, then we display all items at the same time.
-  if (tooltipEventType === 'axis') {
-    return tooltipState.tooltipItemPayloads;
-  }
-  /*
-   * By now we already know that tooltipEventType is 'item', so we can only search in itemInteractions.
-   * item means that only the hovered or clicked item will be present in the tooltip.
-   */
-  if (tooltipState.tooltipItemPayloads.length === 0) {
-    // No point filtering if the payload is empty
-    return [];
-  }
-  var filterByGraphicalItemId;
-  if (trigger === 'hover') {
-    filterByGraphicalItemId = tooltipState.itemInteraction.hover.graphicalItemId;
-  } else {
-    filterByGraphicalItemId = tooltipState.itemInteraction.click.graphicalItemId;
-  }
-  if (filterByGraphicalItemId == null && defaultIndex != null) {
-    /*
-     * So when we use `defaultIndex` - we don't have a dataKey to filter by because user did not hover over anything yet.
-     * In that case let's display the first item in the tooltip; after all, this is `item` interaction case,
-     * so we should display only one item at a time instead of all.
-     */
-    var firstItemPayload = tooltipState.tooltipItemPayloads[0];
-    if (firstItemPayload != null) {
-      return [firstItemPayload];
-    }
-    return [];
-  }
-  return tooltipState.tooltipItemPayloads.filter(tpc => {
-    var _tpc$settings;
-    return ((_tpc$settings = tpc.settings) === null || _tpc$settings === void 0 ? void 0 : _tpc$settings.graphicalItemId) === filterByGraphicalItemId;
-  });
-};
-exports.combineTooltipPayloadConfigurations = combineTooltipPayloadConfigurations;
Index: de_modules/recharts/lib/state/selectors/containerSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/containerSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectMargin = exports.selectContainerScale = exports.selectChartWidth = exports.selectChartHeight = void 0;
-var selectChartWidth = state => state.layout.width;
-exports.selectChartWidth = selectChartWidth;
-var selectChartHeight = state => state.layout.height;
-exports.selectChartHeight = selectChartHeight;
-var selectContainerScale = state => state.layout.scale;
-exports.selectContainerScale = selectContainerScale;
-var selectMargin = state => state.layout.margin;
-exports.selectMargin = selectMargin;
Index: de_modules/recharts/lib/state/selectors/dataSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/dataSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectChartDataWithIndexesIfNotInPanoramaPosition4 = exports.selectChartDataWithIndexesIfNotInPanoramaPosition3 = exports.selectChartDataWithIndexes = exports.selectChartDataAndAlwaysIgnoreIndexes = void 0;
-var _reselect = require("reselect");
-/**
- * This selector always returns the data with the indexes set by a Brush.
- * Trouble is, that might or might not be what you want.
- *
- * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush
- * - even if the Brush is active, the panorama inside the Brush should show the full range of data.
- *
- * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama
- *
- * @param state RechartsRootState
- * @returns data defined on the chart root element, such as BarChart or ScatterChart
- */
-var selectChartDataWithIndexes = state => state.chartData;
-
-/**
- * This selector will always return the full range of data, ignoring the indexes set by a Brush.
- * Useful for when you want to render the full range of data, even if a Brush is active.
- * For example: in the Brush panorama, in Legend, in Tooltip.
- */
-exports.selectChartDataWithIndexes = selectChartDataWithIndexes;
-var selectChartDataAndAlwaysIgnoreIndexes = exports.selectChartDataAndAlwaysIgnoreIndexes = (0, _reselect.createSelector)([selectChartDataWithIndexes], dataState => {
-  var dataEndIndex = dataState.chartData != null ? dataState.chartData.length - 1 : 0;
-  return {
-    chartData: dataState.chartData,
-    computedData: dataState.computedData,
-    dataEndIndex,
-    dataStartIndex: 0
-  };
-});
-var selectChartDataWithIndexesIfNotInPanoramaPosition4 = (state, _unused1, _unused2, isPanorama) => {
-  if (isPanorama) {
-    return selectChartDataAndAlwaysIgnoreIndexes(state);
-  }
-  return selectChartDataWithIndexes(state);
-};
-exports.selectChartDataWithIndexesIfNotInPanoramaPosition4 = selectChartDataWithIndexesIfNotInPanoramaPosition4;
-var selectChartDataWithIndexesIfNotInPanoramaPosition3 = (state, _unused1, isPanorama) => {
-  if (isPanorama) {
-    return selectChartDataAndAlwaysIgnoreIndexes(state);
-  }
-  return selectChartDataWithIndexes(state);
-};
-exports.selectChartDataWithIndexesIfNotInPanoramaPosition3 = selectChartDataWithIndexesIfNotInPanoramaPosition3;
Index: de_modules/recharts/lib/state/selectors/funnelSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/funnelSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectFunnelTrapezoids = void 0;
-var _reselect = require("reselect");
-var _Funnel = require("../../cartesian/Funnel");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _dataSelectors = require("./dataSelectors");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var pickFunnelSettings = (_state, funnelSettings) => funnelSettings;
-var selectFunnelTrapezoids = exports.selectFunnelTrapezoids = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal, pickFunnelSettings, _dataSelectors.selectChartDataAndAlwaysIgnoreIndexes], (offset, _ref, _ref2) => {
-  var {
-    data,
-    dataKey,
-    nameKey,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    customWidth,
-    cells,
-    presentationProps,
-    id: graphicalItemId
-  } = _ref;
-  var {
-    chartData
-  } = _ref2;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else if (chartData != null && chartData.length > 0) {
-    displayedData = chartData;
-  }
-  if (displayedData && displayedData.length) {
-    displayedData = displayedData.map((entry, index) => _objectSpread(_objectSpread(_objectSpread({
-      payload: entry
-    }, presentationProps), entry), cells && cells[index] && cells[index].props));
-  } else if (cells && cells.length) {
-    displayedData = cells.map(cell => _objectSpread(_objectSpread({}, presentationProps), cell.props));
-  } else {
-    return [];
-  }
-  return (0, _Funnel.computeFunnelTrapezoids)({
-    dataKey,
-    nameKey,
-    displayedData,
-    tooltipType,
-    lastShapeType,
-    reversed,
-    offset,
-    customWidth,
-    graphicalItemId
-  });
-});
Index: de_modules/recharts/lib/state/selectors/graphicalItemSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/graphicalItemSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectXAxisIdFromGraphicalItemId = selectXAxisIdFromGraphicalItemId;
-exports.selectYAxisIdFromGraphicalItemId = selectYAxisIdFromGraphicalItemId;
-var _cartesianAxisSlice = require("../cartesianAxisSlice");
-function selectXAxisIdFromGraphicalItemId(state, id) {
-  var _state$graphicalItems, _state$graphicalItems2;
-  return (_state$graphicalItems = (_state$graphicalItems2 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems2 === void 0 ? void 0 : _state$graphicalItems2.xAxisId) !== null && _state$graphicalItems !== void 0 ? _state$graphicalItems : _cartesianAxisSlice.defaultAxisId;
-}
-function selectYAxisIdFromGraphicalItemId(state, id) {
-  var _state$graphicalItems3, _state$graphicalItems4;
-  return (_state$graphicalItems3 = (_state$graphicalItems4 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems4 === void 0 ? void 0 : _state$graphicalItems4.yAxisId) !== null && _state$graphicalItems3 !== void 0 ? _state$graphicalItems3 : _cartesianAxisSlice.defaultAxisId;
-}
Index: de_modules/recharts/lib/state/selectors/legendSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/legendSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectLegendSize = exports.selectLegendSettings = exports.selectLegendPayload = void 0;
-var _reselect = require("reselect");
-var _sortBy = _interopRequireDefault(require("es-toolkit/compat/sortBy"));
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var selectLegendSettings = state => state.legend.settings;
-exports.selectLegendSettings = selectLegendSettings;
-var selectLegendSize = state => state.legend.size;
-exports.selectLegendSize = selectLegendSize;
-var selectAllLegendPayload2DArray = state => state.legend.payload;
-var selectLegendPayload = exports.selectLegendPayload = (0, _reselect.createSelector)([selectAllLegendPayload2DArray, selectLegendSettings], (payloads, _ref) => {
-  var {
-    itemSorter
-  } = _ref;
-  var flat = payloads.flat(1);
-  return itemSorter ? (0, _sortBy.default)(flat, itemSorter) : flat;
-});
Index: de_modules/recharts/lib/state/selectors/lineSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/lineSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectLinePoints = void 0;
-var _reselect = require("reselect");
-var _Line = require("../../cartesian/Line");
-var _dataSelectors = require("./dataSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _axisSelectors = require("./axisSelectors");
-var _ChartUtils = require("../../util/ChartUtils");
-var selectXAxisWithScale = (state, xAxisId, _yAxisId, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama);
-var selectXAxisTicks = (state, xAxisId, _yAxisId, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', xAxisId, isPanorama);
-var selectYAxisWithScale = (state, _xAxisId, yAxisId, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama);
-var selectYAxisTicks = (state, _xAxisId, yAxisId, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', yAxisId, isPanorama);
-var selectBandSize = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {
-  if ((0, _ChartUtils.isCategoricalAxis)(layout, 'xAxis')) {
-    return (0, _ChartUtils.getBandSizeOfAxis)(xAxis, xAxisTicks, false);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(yAxis, yAxisTicks, false);
-});
-var pickLineId = (_state, _xAxisId, _yAxisId, _isPanorama, id) => id;
-function isLineSettings(item) {
-  return item.type === 'line';
-}
-
-/*
- * There is a race condition problem because we read some data from props and some from the state.
- * The state is updated through a dispatch and is one render behind,
- * and so we have this weird one tick render where the displayedData in one selector have the old dataKey
- * but the new dataKey in another selector.
- *
- * So here instead of reading the dataKey from the props, we always read it from the state.
- */
-var selectSynchronisedLineSettings = (0, _reselect.createSelector)([_axisSelectors.selectUnfilteredCartesianItems, pickLineId], (graphicalItems, id) => graphicalItems.filter(isLineSettings).find(x => x.id === id));
-var selectLinePoints = exports.selectLinePoints = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectSynchronisedLineSettings, selectBandSize, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition4], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, lineSettings, bandSize, _ref) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (lineSettings == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null || layout !== 'horizontal' && layout !== 'vertical') {
-    return undefined;
-  }
-  var {
-    dataKey,
-    data
-  } = lineSettings;
-  var displayedData;
-  if (data != null && data.length > 0) {
-    displayedData = data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return (0, _Line.computeLinePoints)({
-    layout,
-    xAxis,
-    yAxis,
-    xAxisTicks,
-    yAxisTicks,
-    dataKey,
-    bandSize,
-    displayedData
-  });
-});
Index: de_modules/recharts/lib/state/selectors/numberDomainEqualityCheck.js
===================================================================
--- node_modules/recharts/lib/state/selectors/numberDomainEqualityCheck.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.numberDomainEqualityCheck = void 0;
-var numberDomainEqualityCheck = (a, b) => {
-  if (a === b) {
-    return true;
-  }
-  if (a == null || b == null) {
-    return false;
-  }
-  return a[0] === b[0] && a[1] === b[1];
-};
-exports.numberDomainEqualityCheck = numberDomainEqualityCheck;
Index: de_modules/recharts/lib/state/selectors/pickAxisId.js
===================================================================
--- node_modules/recharts/lib/state/selectors/pickAxisId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.pickAxisId = void 0;
-var pickAxisId = (_state, _axisType, axisId) => axisId;
-exports.pickAxisId = pickAxisId;
Index: de_modules/recharts/lib/state/selectors/pickAxisType.js
===================================================================
--- node_modules/recharts/lib/state/selectors/pickAxisType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.pickAxisType = void 0;
-var pickAxisType = (_state, axisType) => axisType;
-exports.pickAxisType = pickAxisType;
Index: de_modules/recharts/lib/state/selectors/pieSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/pieSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectPieSectors = exports.selectPieLegend = exports.selectDisplayedData = void 0;
-var _reselect = require("reselect");
-var _Pie = require("../../polar/Pie");
-var _dataSelectors = require("./dataSelectors");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _ChartUtils = require("../../util/ChartUtils");
-var _polarSelectors = require("./polarSelectors");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var pickId = (_state, id) => id;
-var selectSynchronisedPieSettings = (0, _reselect.createSelector)([_polarSelectors.selectUnfilteredPolarItems, pickId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'pie').find(item => item.id === id));
-
-// Keep stable reference to an empty array to prevent re-renders
-var emptyArray = [];
-var pickCells = (_state, _id, cells) => {
-  if ((cells === null || cells === void 0 ? void 0 : cells.length) === 0) {
-    return emptyArray;
-  }
-  return cells;
-};
-var selectDisplayedData = exports.selectDisplayedData = (0, _reselect.createSelector)([_dataSelectors.selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedPieSettings, pickCells], (_ref, pieSettings, cells) => {
-  var {
-    chartData
-  } = _ref;
-  if (pieSettings == null) {
-    return undefined;
-  }
-  var displayedData;
-  if ((pieSettings === null || pieSettings === void 0 ? void 0 : pieSettings.data) != null && pieSettings.data.length > 0) {
-    displayedData = pieSettings.data;
-  } else {
-    displayedData = chartData;
-  }
-  if ((!displayedData || !displayedData.length) && cells != null) {
-    displayedData = cells.map(cell => _objectSpread(_objectSpread({}, pieSettings.presentationProps), cell.props));
-  }
-  if (displayedData == null) {
-    return undefined;
-  }
-  return displayedData;
-});
-var selectPieLegend = exports.selectPieLegend = (0, _reselect.createSelector)([selectDisplayedData, selectSynchronisedPieSettings, pickCells], (displayedData, pieSettings, cells) => {
-  if (displayedData == null || pieSettings == null) {
-    return undefined;
-  }
-  return displayedData.map((entry, i) => {
-    var _cells$i;
-    var name = (0, _ChartUtils.getValueByDataKey)(entry, pieSettings.nameKey, pieSettings.name);
-    var color;
-    if (cells !== null && cells !== void 0 && (_cells$i = cells[i]) !== null && _cells$i !== void 0 && (_cells$i = _cells$i.props) !== null && _cells$i !== void 0 && _cells$i.fill) {
-      color = cells[i].props.fill;
-    } else if (typeof entry === 'object' && entry != null && 'fill' in entry) {
-      color = entry.fill;
-    } else {
-      color = pieSettings.fill;
-    }
-    return {
-      value: (0, _ChartUtils.getTooltipNameProp)(name, pieSettings.dataKey),
-      color,
-      // @ts-expect-error we need a better typing for our data inputs
-      payload: entry,
-      type: pieSettings.legendType
-    };
-  });
-});
-var selectPieSectors = exports.selectPieSectors = (0, _reselect.createSelector)([selectDisplayedData, selectSynchronisedPieSettings, pickCells, _selectChartOffsetInternal.selectChartOffsetInternal], (displayedData, pieSettings, cells, offset) => {
-  if (pieSettings == null || displayedData == null) {
-    return undefined;
-  }
-  return (0, _Pie.computePieSectors)({
-    offset,
-    pieSettings,
-    displayedData,
-    cells
-  });
-});
Index: de_modules/recharts/lib/state/selectors/polarAxisSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/polarAxisSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectRadiusAxisRangeWithReversed = exports.selectRadiusAxisRange = exports.selectRadiusAxis = exports.selectPolarViewBox = exports.selectPolarOptions = exports.selectOuterRadius = exports.selectMaxRadius = exports.selectAngleAxisRangeWithReversed = exports.selectAngleAxisRange = exports.selectAngleAxis = exports.implicitRadiusAxis = exports.implicitAngleAxis = void 0;
-var _reselect = require("reselect");
-var _containerSelectors = require("./containerSelectors");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _PolarUtils = require("../../util/PolarUtils");
-var _DataUtils = require("../../util/DataUtils");
-var _defaultPolarAngleAxisProps = require("../../polar/defaultPolarAngleAxisProps");
-var _defaultPolarRadiusAxisProps = require("../../polar/defaultPolarRadiusAxisProps");
-var _combineAxisRangeWithReverse = require("./combiners/combineAxisRangeWithReverse");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _getAxisTypeBasedOnLayout = require("../../util/getAxisTypeBasedOnLayout");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var implicitAngleAxis = exports.implicitAngleAxis = {
-  allowDataOverflow: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.allowDataOverflow,
-  allowDecimals: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.allowDecimals,
-  allowDuplicatedCategory: false,
-  // defaultPolarAngleAxisProps.allowDuplicatedCategory has it set to true but the actual axis rendering ignores the prop because reasons,
-  dataKey: undefined,
-  domain: undefined,
-  id: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.angleAxisId,
-  includeHidden: false,
-  name: undefined,
-  reversed: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.reversed,
-  scale: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.scale,
-  tick: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.tick,
-  tickCount: undefined,
-  ticks: undefined,
-  type: _defaultPolarAngleAxisProps.defaultPolarAngleAxisProps.type,
-  unit: undefined
-};
-var implicitRadiusAxis = exports.implicitRadiusAxis = {
-  allowDataOverflow: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.allowDataOverflow,
-  allowDecimals: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.allowDecimals,
-  allowDuplicatedCategory: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.allowDuplicatedCategory,
-  dataKey: undefined,
-  domain: undefined,
-  id: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.radiusAxisId,
-  includeHidden: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.includeHidden,
-  name: undefined,
-  reversed: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.reversed,
-  scale: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.scale,
-  tick: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.tick,
-  tickCount: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.tickCount,
-  ticks: undefined,
-  type: _defaultPolarRadiusAxisProps.defaultPolarRadiusAxisProps.type,
-  unit: undefined
-};
-var selectAngleAxisNoDefaults = (state, angleAxisId) => {
-  if (angleAxisId == null) {
-    return undefined;
-  }
-  return state.polarAxis.angleAxis[angleAxisId];
-};
-var selectAngleAxis = exports.selectAngleAxis = (0, _reselect.createSelector)([selectAngleAxisNoDefaults, _chartLayoutContext.selectPolarChartLayout], (angleAxisSettings, layout) => {
-  var _getAxisTypeBasedOnLa;
-  if (angleAxisSettings != null) {
-    return angleAxisSettings;
-  }
-  var evaluatedType = (_getAxisTypeBasedOnLa = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'angleAxis', implicitAngleAxis.type)) !== null && _getAxisTypeBasedOnLa !== void 0 ? _getAxisTypeBasedOnLa : 'category';
-  return _objectSpread(_objectSpread({}, implicitAngleAxis), {}, {
-    type: evaluatedType
-  });
-});
-var selectRadiusAxisNoDefaults = (state, radiusAxisId) => {
-  return state.polarAxis.radiusAxis[radiusAxisId];
-};
-var selectRadiusAxis = exports.selectRadiusAxis = (0, _reselect.createSelector)([selectRadiusAxisNoDefaults, _chartLayoutContext.selectPolarChartLayout], (radiusAxisSettings, layout) => {
-  var _getAxisTypeBasedOnLa2;
-  if (radiusAxisSettings != null) {
-    return radiusAxisSettings;
-  }
-  var evaluatedType = (_getAxisTypeBasedOnLa2 = (0, _getAxisTypeBasedOnLayout.getAxisTypeBasedOnLayout)(layout, 'radiusAxis', implicitRadiusAxis.type)) !== null && _getAxisTypeBasedOnLa2 !== void 0 ? _getAxisTypeBasedOnLa2 : 'category';
-  return _objectSpread(_objectSpread({}, implicitRadiusAxis), {}, {
-    type: evaluatedType
-  });
-});
-var selectPolarOptions = state => state.polarOptions;
-exports.selectPolarOptions = selectPolarOptions;
-var selectMaxRadius = exports.selectMaxRadius = (0, _reselect.createSelector)([_containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight, _selectChartOffsetInternal.selectChartOffsetInternal], _PolarUtils.getMaxRadius);
-var selectInnerRadius = (0, _reselect.createSelector)([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {
-  if (polarChartOptions == null) {
-    return undefined;
-  }
-  return (0, _DataUtils.getPercentValue)(polarChartOptions.innerRadius, maxRadius, 0);
-});
-var selectOuterRadius = exports.selectOuterRadius = (0, _reselect.createSelector)([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {
-  if (polarChartOptions == null) {
-    return undefined;
-  }
-  return (0, _DataUtils.getPercentValue)(polarChartOptions.outerRadius, maxRadius, maxRadius * 0.8);
-});
-var combineAngleAxisRange = polarOptions => {
-  if (polarOptions == null) {
-    return [0, 0];
-  }
-  var {
-    startAngle,
-    endAngle
-  } = polarOptions;
-  return [startAngle, endAngle];
-};
-var selectAngleAxisRange = exports.selectAngleAxisRange = (0, _reselect.createSelector)([selectPolarOptions], combineAngleAxisRange);
-var selectAngleAxisRangeWithReversed = exports.selectAngleAxisRangeWithReversed = (0, _reselect.createSelector)([selectAngleAxis, selectAngleAxisRange], _combineAxisRangeWithReverse.combineAxisRangeWithReverse);
-var selectRadiusAxisRange = exports.selectRadiusAxisRange = (0, _reselect.createSelector)([selectMaxRadius, selectInnerRadius, selectOuterRadius], (maxRadius, innerRadius, outerRadius) => {
-  if (maxRadius == null || innerRadius == null || outerRadius == null) {
-    return undefined;
-  }
-  return [innerRadius, outerRadius];
-});
-var selectRadiusAxisRangeWithReversed = exports.selectRadiusAxisRangeWithReversed = (0, _reselect.createSelector)([selectRadiusAxis, selectRadiusAxisRange], _combineAxisRangeWithReverse.combineAxisRangeWithReverse);
-var selectPolarViewBox = exports.selectPolarViewBox = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectPolarOptions, selectInnerRadius, selectOuterRadius, _containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight], (layout, polarOptions, innerRadius, outerRadius, width, height) => {
-  if (layout !== 'centric' && layout !== 'radial' || polarOptions == null || innerRadius == null || outerRadius == null) {
-    return undefined;
-  }
-  var {
-    cx,
-    cy,
-    startAngle,
-    endAngle
-  } = polarOptions;
-  return {
-    cx: (0, _DataUtils.getPercentValue)(cx, width, width / 2),
-    cy: (0, _DataUtils.getPercentValue)(cy, height, height / 2),
-    innerRadius,
-    outerRadius,
-    startAngle,
-    endAngle,
-    clockWise: false // this property look useful, why not use it?
-  };
-});
Index: de_modules/recharts/lib/state/selectors/polarGridSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/polarGridSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectPolarGridRadii = exports.selectPolarGridAngles = void 0;
-var _reselect = require("reselect");
-var _polarScaleSelectors = require("./polarScaleSelectors");
-var selectAngleAxisTicks = (state, anglexisId) => (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'angleAxis', anglexisId, false);
-var selectPolarGridAngles = exports.selectPolarGridAngles = (0, _reselect.createSelector)([selectAngleAxisTicks], ticks => {
-  if (!ticks) {
-    return undefined;
-  }
-  return ticks.map(tick => tick.coordinate);
-});
-var selectRadiusAxisTicks = (state, radiusAxisId) => (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'radiusAxis', radiusAxisId, false);
-var selectPolarGridRadii = exports.selectPolarGridRadii = (0, _reselect.createSelector)([selectRadiusAxisTicks], ticks => {
-  if (!ticks) {
-    return undefined;
-  }
-  return ticks.map(tick => tick.coordinate);
-});
Index: de_modules/recharts/lib/state/selectors/polarScaleSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/polarScaleSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectPolarGraphicalItemAxisTicks = exports.selectPolarCategoricalDomain = exports.selectPolarAxisTicks = exports.selectPolarAxisScale = exports.selectPolarAxis = exports.selectPolarAngleAxisTicks = void 0;
-var _reselect = require("reselect");
-var _axisSelectors = require("./axisSelectors");
-var _polarAxisSelectors = require("./polarAxisSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _polarSelectors = require("./polarSelectors");
-var _pickAxisType = require("./pickAxisType");
-var selectPolarAxis = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'angleAxis':
-      {
-        return (0, _polarAxisSelectors.selectAngleAxis)(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return (0, _polarAxisSelectors.selectRadiusAxis)(state, axisId);
-      }
-    default:
-      {
-        throw new Error("Unexpected axis type: ".concat(axisType));
-      }
-  }
-};
-exports.selectPolarAxis = selectPolarAxis;
-var selectPolarAxisRangeWithReversed = (state, axisType, axisId) => {
-  switch (axisType) {
-    case 'angleAxis':
-      {
-        return (0, _polarAxisSelectors.selectAngleAxisRangeWithReversed)(state, axisId);
-      }
-    case 'radiusAxis':
-      {
-        return (0, _polarAxisSelectors.selectRadiusAxisRangeWithReversed)(state, axisId);
-      }
-    default:
-      {
-        throw new Error("Unexpected axis type: ".concat(axisType));
-      }
-  }
-};
-var selectPolarAxisScale = exports.selectPolarAxisScale = (0, _reselect.createSelector)([selectPolarAxis, _axisSelectors.selectRealScaleType, _polarSelectors.selectPolarAxisCheckedDomain, selectPolarAxisRangeWithReversed], _axisSelectors.combineScaleFunction);
-var selectPolarCategoricalDomain = exports.selectPolarCategoricalDomain = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _polarSelectors.selectPolarAppliedValues, _axisSelectors.selectRenderableAxisSettings, _pickAxisType.pickAxisType], _axisSelectors.combineCategoricalDomain);
-var selectPolarAxisTicks = exports.selectPolarAxisTicks = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectPolarAxis, _axisSelectors.selectRealScaleType, selectPolarAxisScale, _polarSelectors.selectPolarNiceTicks, selectPolarAxisRangeWithReversed, _axisSelectors.selectDuplicateDomain, selectPolarCategoricalDomain, _pickAxisType.pickAxisType], _axisSelectors.combineAxisTicks);
-var selectPolarAngleAxisTicks = exports.selectPolarAngleAxisTicks = (0, _reselect.createSelector)([selectPolarAxisTicks], ticks => {
-  /*
-   * Angle axis is circular; so here we need to look for ticks that overlap (i.e., 0 and 360 degrees)
-   * and remove the duplicate tick to avoid rendering issues.
-   */
-  if (!ticks) {
-    return undefined;
-  }
-  var uniqueTicksMap = new Map();
-  ticks.forEach(tick => {
-    var normalizedCoordinate = (tick.coordinate + 360) % 360;
-    if (!uniqueTicksMap.has(normalizedCoordinate)) {
-      uniqueTicksMap.set(normalizedCoordinate, tick);
-    }
-  });
-  return Array.from(uniqueTicksMap.values());
-});
-var selectPolarGraphicalItemAxisTicks = exports.selectPolarGraphicalItemAxisTicks = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectPolarAxis, selectPolarAxisScale, selectPolarAxisRangeWithReversed, _axisSelectors.selectDuplicateDomain, selectPolarCategoricalDomain, _pickAxisType.pickAxisType], _axisSelectors.combineGraphicalItemTicks);
Index: de_modules/recharts/lib/state/selectors/polarSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/polarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectUnfilteredPolarItems = exports.selectPolarNiceTicks = exports.selectPolarItemsSettings = exports.selectPolarDisplayedData = exports.selectPolarAxisDomainIncludingNiceTicks = exports.selectPolarAxisDomain = exports.selectPolarAxisCheckedDomain = exports.selectPolarAppliedValues = exports.selectAllPolarAppliedNumericalValues = void 0;
-var _reselect = require("reselect");
-var _dataSelectors = require("./dataSelectors");
-var _axisSelectors = require("./axisSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _ChartUtils = require("../../util/ChartUtils");
-var _pickAxisType = require("./pickAxisType");
-var _pickAxisId = require("./pickAxisId");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _combineCheckedDomain = require("./combiners/combineCheckedDomain");
-var selectUnfilteredPolarItems = state => state.graphicalItems.polarItems;
-exports.selectUnfilteredPolarItems = selectUnfilteredPolarItems;
-var selectAxisPredicate = (0, _reselect.createSelector)([_pickAxisType.pickAxisType, _pickAxisId.pickAxisId], _axisSelectors.itemAxisPredicate);
-var selectPolarItemsSettings = exports.selectPolarItemsSettings = (0, _reselect.createSelector)([selectUnfilteredPolarItems, _axisSelectors.selectBaseAxis, selectAxisPredicate], _axisSelectors.combineGraphicalItemsSettings);
-var selectPolarGraphicalItemsData = (0, _reselect.createSelector)([selectPolarItemsSettings], _axisSelectors.combineGraphicalItemsData);
-var selectPolarDisplayedData = exports.selectPolarDisplayedData = (0, _reselect.createSelector)([selectPolarGraphicalItemsData, _dataSelectors.selectChartDataAndAlwaysIgnoreIndexes], _axisSelectors.combineDisplayedData);
-var selectPolarAppliedValues = exports.selectPolarAppliedValues = (0, _reselect.createSelector)([selectPolarDisplayedData, _axisSelectors.selectBaseAxis, selectPolarItemsSettings], _axisSelectors.combineAppliedValues);
-var selectAllPolarAppliedNumericalValues = exports.selectAllPolarAppliedNumericalValues = (0, _reselect.createSelector)([selectPolarDisplayedData, _axisSelectors.selectBaseAxis, selectPolarItemsSettings], (data, axisSettings, items) => {
-  if (items.length > 0) {
-    return data.flatMap(entry => {
-      return items.flatMap(item => {
-        var _axisSettings$dataKey;
-        var valueByDataKey = (0, _ChartUtils.getValueByDataKey)(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);
-        return {
-          value: valueByDataKey,
-          errorDomain: [] // polar charts do not have error bars
-        };
-      });
-    }).filter(Boolean);
-  }
-  if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {
-    return data.map(item => ({
-      value: (0, _ChartUtils.getValueByDataKey)(item, axisSettings.dataKey),
-      errorDomain: []
-    }));
-  }
-  return data.map(entry => ({
-    value: entry,
-    errorDomain: []
-  }));
-});
-var unsupportedInPolarChart = () => undefined;
-var selectDomainOfAllPolarAppliedNumericalValues = (0, _reselect.createSelector)([selectPolarDisplayedData, _axisSelectors.selectBaseAxis, selectPolarItemsSettings, _axisSelectors.selectAllErrorBarSettings, _pickAxisType.pickAxisType], _axisSelectors.combineDomainOfAllAppliedNumericalValuesIncludingErrorValues);
-var selectPolarNumericalDomain = (0, _reselect.createSelector)([_axisSelectors.selectBaseAxis, _axisSelectors.selectDomainDefinition, _axisSelectors.selectDomainFromUserPreference, unsupportedInPolarChart, selectDomainOfAllPolarAppliedNumericalValues, unsupportedInPolarChart, _chartLayoutContext.selectChartLayout, _pickAxisType.pickAxisType], _axisSelectors.combineNumericalDomain);
-var selectPolarAxisDomain = exports.selectPolarAxisDomain = (0, _reselect.createSelector)([_axisSelectors.selectBaseAxis, _chartLayoutContext.selectChartLayout, selectPolarDisplayedData, selectPolarAppliedValues, _rootPropsSelectors.selectStackOffsetType, _pickAxisType.pickAxisType, selectPolarNumericalDomain], _axisSelectors.combineAxisDomain);
-var selectPolarNiceTicks = exports.selectPolarNiceTicks = (0, _reselect.createSelector)([selectPolarAxisDomain, _axisSelectors.selectRenderableAxisSettings, _axisSelectors.selectRealScaleType], _axisSelectors.combineNiceTicks);
-var selectPolarAxisDomainIncludingNiceTicks = exports.selectPolarAxisDomainIncludingNiceTicks = (0, _reselect.createSelector)([_axisSelectors.selectBaseAxis, selectPolarAxisDomain, selectPolarNiceTicks, _pickAxisType.pickAxisType], _axisSelectors.combineAxisDomainWithNiceTicks);
-var selectPolarAxisCheckedDomain = exports.selectPolarAxisCheckedDomain = (0, _reselect.createSelector)([_axisSelectors.selectRealScaleType, selectPolarAxisDomainIncludingNiceTicks], _combineCheckedDomain.combineCheckedDomain);
Index: de_modules/recharts/lib/state/selectors/radarSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/radarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,98 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectRadiusAxisForBandSize = exports.selectRadarPoints = exports.selectAngleAxisWithScaleAndViewport = exports.selectAngleAxisForBandSize = void 0;
-var _reselect = require("reselect");
-var _Radar = require("../../polar/Radar");
-var _polarScaleSelectors = require("./polarScaleSelectors");
-var _polarAxisSelectors = require("./polarAxisSelectors");
-var _dataSelectors = require("./dataSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _ChartUtils = require("../../util/ChartUtils");
-var _polarSelectors = require("./polarSelectors");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var selectRadiusAxisScale = (state, radiusAxisId) => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'radiusAxis', radiusAxisId);
-var selectRadiusAxisForRadar = (0, _reselect.createSelector)([selectRadiusAxisScale], scale => {
-  if (scale == null) {
-    return undefined;
-  }
-  return {
-    scale
-  };
-});
-var selectRadiusAxisForBandSize = exports.selectRadiusAxisForBandSize = (0, _reselect.createSelector)([_polarAxisSelectors.selectRadiusAxis, selectRadiusAxisScale], (axisSettings, scale) => {
-  if (axisSettings == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axisSettings), {}, {
-    scale
-  });
-});
-var selectRadiusAxisTicks = (state, radiusAxisId, _angleAxisId, isPanorama) => {
-  return (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'radiusAxis', radiusAxisId, isPanorama);
-};
-var selectAngleAxisForRadar = (state, _radiusAxisId, angleAxisId) => (0, _polarAxisSelectors.selectAngleAxis)(state, angleAxisId);
-var selectPolarAxisScaleForRadar = (state, _radiusAxisId, angleAxisId) => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'angleAxis', angleAxisId);
-var selectAngleAxisForBandSize = exports.selectAngleAxisForBandSize = (0, _reselect.createSelector)([selectAngleAxisForRadar, selectPolarAxisScaleForRadar], (axisSettings, scale) => {
-  if (axisSettings == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axisSettings), {}, {
-    scale
-  });
-});
-var selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId, isPanorama) => {
-  return (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'angleAxis', angleAxisId, isPanorama);
-};
-var selectAngleAxisWithScaleAndViewport = exports.selectAngleAxisWithScaleAndViewport = (0, _reselect.createSelector)([selectAngleAxisForRadar, selectPolarAxisScaleForRadar, _polarAxisSelectors.selectPolarViewBox], (axisOptions, scale, polarViewBox) => {
-  if (polarViewBox == null || scale == null) {
-    return undefined;
-  }
-  return {
-    scale,
-    type: axisOptions.type,
-    dataKey: axisOptions.dataKey,
-    cx: polarViewBox.cx,
-    cy: polarViewBox.cy
-  };
-});
-var pickId = (_state, _radiusAxisId, _angleAxisId, _isPanorama, radarId) => radarId;
-var selectBandSizeOfAxis = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectRadiusAxisForBandSize, selectRadiusAxisTicks, selectAngleAxisForBandSize, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {
-  if ((0, _ChartUtils.isCategoricalAxis)(layout, 'radiusAxis')) {
-    return (0, _ChartUtils.getBandSizeOfAxis)(radiusAxis, radiusAxisTicks, false);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(angleAxis, angleAxisTicks, false);
-});
-var selectSynchronisedRadarDataKey = (0, _reselect.createSelector)([_polarSelectors.selectUnfilteredPolarItems, pickId], (graphicalItems, radarId) => {
-  if (graphicalItems == null) {
-    return undefined;
-  }
-  // Find the radar item with the given radarId
-  var pgis = graphicalItems.find(item => item.type === 'radar' && radarId === item.id);
-  // If found, return its dataKey
-  return pgis === null || pgis === void 0 ? void 0 : pgis.dataKey;
-});
-var selectRadarPoints = exports.selectRadarPoints = (0, _reselect.createSelector)([selectRadiusAxisForRadar, selectAngleAxisWithScaleAndViewport, _dataSelectors.selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedRadarDataKey, selectBandSizeOfAxis], (radiusAxis, angleAxis, _ref, dataKey, bandSize) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || dataKey == null) {
-    return undefined;
-  }
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  return (0, _Radar.computeRadarPoints)({
-    radiusAxis,
-    angleAxis,
-    displayedData,
-    dataKey,
-    bandSize
-  });
-});
Index: de_modules/recharts/lib/state/selectors/radialBarSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/radialBarSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,191 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectRadiusAxisWithScale = exports.selectRadiusAxisTicks = exports.selectRadialBarSectors = exports.selectRadialBarLegendPayload = exports.selectPolarBarSizeList = exports.selectPolarBarPosition = exports.selectPolarBarBandSize = exports.selectBaseValue = exports.selectBandSizeOfPolarAxis = exports.selectAngleAxisWithScale = exports.selectAllPolarBarPositions = exports.pickMaxBarSize = void 0;
-var _reselect = require("reselect");
-var _RadialBar = require("../../polar/RadialBar");
-var _dataSelectors = require("./dataSelectors");
-var _polarScaleSelectors = require("./polarScaleSelectors");
-var _axisSelectors = require("./axisSelectors");
-var _polarAxisSelectors = require("./polarAxisSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _ChartUtils = require("../../util/ChartUtils");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _polarSelectors = require("./polarSelectors");
-var _DataUtils = require("../../util/DataUtils");
-var _combineDisplayedStackedData = require("./combiners/combineDisplayedStackedData");
-var _StackedGraphicalItem = require("../types/StackedGraphicalItem");
-var _combineBarSizeList = require("./combiners/combineBarSizeList");
-var _combineAllBarPositions = require("./combiners/combineAllBarPositions");
-var _combineStackedData = require("./combiners/combineStackedData");
-var _combineBarPosition = require("./combiners/combineBarPosition");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var selectRadiusAxisForRadialBar = (state, radiusAxisId) => (0, _polarAxisSelectors.selectRadiusAxis)(state, radiusAxisId);
-var selectRadiusAxisScaleForRadar = (state, radiusAxisId) => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'radiusAxis', radiusAxisId);
-var selectRadiusAxisWithScale = exports.selectRadiusAxisWithScale = (0, _reselect.createSelector)([selectRadiusAxisForRadialBar, selectRadiusAxisScaleForRadar], (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-var selectRadiusAxisTicks = (state, radiusAxisId) => {
-  return (0, _polarScaleSelectors.selectPolarGraphicalItemAxisTicks)(state, 'radiusAxis', radiusAxisId, false);
-};
-exports.selectRadiusAxisTicks = selectRadiusAxisTicks;
-var selectAngleAxisForRadialBar = (state, _radiusAxisId, angleAxisId) => (0, _polarAxisSelectors.selectAngleAxis)(state, angleAxisId);
-var selectAngleAxisScaleForRadialBar = (state, _radiusAxisId, angleAxisId) => (0, _polarScaleSelectors.selectPolarAxisScale)(state, 'angleAxis', angleAxisId);
-var selectAngleAxisWithScale = exports.selectAngleAxisWithScale = (0, _reselect.createSelector)([selectAngleAxisForRadialBar, selectAngleAxisScaleForRadialBar], (axis, scale) => {
-  if (axis == null || scale == null) {
-    return undefined;
-  }
-  return _objectSpread(_objectSpread({}, axis), {}, {
-    scale
-  });
-});
-var selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId) => {
-  // here we can hardcode isPanorama to false because radialBar does not support panorama mode
-  return (0, _polarScaleSelectors.selectPolarAxisTicks)(state, 'angleAxis', angleAxisId, false);
-};
-var pickRadialBarSettings = (_state, _radiusAxisId, _angleAxisId, radialBarSettings) => radialBarSettings;
-var selectSynchronisedRadialBarSettings = (0, _reselect.createSelector)([_polarSelectors.selectUnfilteredPolarItems, pickRadialBarSettings], (graphicalItems, radialBarSettingsFromProps) => {
-  if (graphicalItems.some(pgis => pgis.type === 'radialBar' && radialBarSettingsFromProps.dataKey === pgis.dataKey && radialBarSettingsFromProps.stackId === pgis.stackId)) {
-    return radialBarSettingsFromProps;
-  }
-  return undefined;
-});
-var selectBandSizeOfPolarAxis = exports.selectBandSizeOfPolarAxis = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectAngleAxisWithScale, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {
-  if ((0, _ChartUtils.isCategoricalAxis)(layout, 'radiusAxis')) {
-    return (0, _ChartUtils.getBandSizeOfAxis)(radiusAxis, radiusAxisTicks, false);
-  }
-  return (0, _ChartUtils.getBandSizeOfAxis)(angleAxis, angleAxisTicks, false);
-});
-var selectBaseValue = exports.selectBaseValue = (0, _reselect.createSelector)([selectAngleAxisWithScale, selectRadiusAxisWithScale, _chartLayoutContext.selectChartLayout], (angleAxis, radiusAxis, layout) => {
-  var numericAxis = layout === 'radial' ? angleAxis : radiusAxis;
-  if (numericAxis == null || numericAxis.scale == null) {
-    return undefined;
-  }
-  return (0, _ChartUtils.getBaseValueOfBar)({
-    numericAxis
-  });
-});
-var pickCells = (_state, _radiusAxisId, _angleAxisId, _radialBarSettings, cells) => cells;
-var pickAngleAxisId = (_state, _radiusAxisId, angleAxisId, _radialBarSettings, _cells) => angleAxisId;
-var pickRadiusAxisId = (_state, radiusAxisId, _angleAxisId, _radialBarSettings, _cells) => radiusAxisId;
-var pickMaxBarSize = (_state, _radiusAxisId, _angleAxisId, radialBarSettings, _cells) => radialBarSettings.maxBarSize;
-exports.pickMaxBarSize = pickMaxBarSize;
-var isRadialBar = item => item.type === 'radialBar';
-var selectAllVisibleRadialBars = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _polarSelectors.selectUnfilteredPolarItems, pickAngleAxisId, pickRadiusAxisId], (layout, allItems, angleAxisId, radiusAxisId) => {
-  return allItems.filter(i => {
-    if (layout === 'centric') {
-      return i.angleAxisId === angleAxisId;
-    }
-    return i.radiusAxisId === radiusAxisId;
-  }).filter(i => i.hide === false).filter(isRadialBar);
-});
-
-/**
- * The generator never returned the totalSize which means that barSize in polar chart can not support percent values.
- * We can add that if we want to I suppose.
- * @returns undefined - but it should be a total size of numerical axis in polar chart
- */
-var selectPolarBarAxisSize = () => undefined;
-var selectPolarBarSizeList = exports.selectPolarBarSizeList = (0, _reselect.createSelector)([selectAllVisibleRadialBars, _rootPropsSelectors.selectRootBarSize, selectPolarBarAxisSize], _combineBarSizeList.combineBarSizeList);
-var selectPolarBarBandSize = exports.selectPolarBarBandSize = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _rootPropsSelectors.selectRootMaxBarSize, selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, pickMaxBarSize], (layout, globalMaxBarSize, angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, childMaxBarSize) => {
-  var _ref2, _getBandSizeOfAxis2;
-  var maxBarSize = (0, _DataUtils.isNullish)(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
-  if (layout === 'centric') {
-    var _ref, _getBandSizeOfAxis;
-    return (_ref = (_getBandSizeOfAxis = (0, _ChartUtils.getBandSizeOfAxis)(angleAxis, angleAxisTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;
-  }
-  return (_ref2 = (_getBandSizeOfAxis2 = (0, _ChartUtils.getBandSizeOfAxis)(radiusAxis, radiusAxisTicks, true)) !== null && _getBandSizeOfAxis2 !== void 0 ? _getBandSizeOfAxis2 : maxBarSize) !== null && _ref2 !== void 0 ? _ref2 : 0;
-});
-var selectAllPolarBarPositions = exports.selectAllPolarBarPositions = (0, _reselect.createSelector)([selectPolarBarSizeList, _rootPropsSelectors.selectRootMaxBarSize, _rootPropsSelectors.selectBarGap, _rootPropsSelectors.selectBarCategoryGap, selectPolarBarBandSize, selectBandSizeOfPolarAxis, pickMaxBarSize], _combineAllBarPositions.combineAllBarPositions);
-var selectPolarBarPosition = exports.selectPolarBarPosition = (0, _reselect.createSelector)([selectAllPolarBarPositions, selectSynchronisedRadialBarSettings], _combineBarPosition.combineBarPosition);
-var selectStackedRadialBars = (0, _reselect.createSelector)([_polarSelectors.selectPolarItemsSettings], allPolarItems => allPolarItems.filter(isRadialBar).filter(_StackedGraphicalItem.isStacked));
-var selectPolarCombinedStackedData = (0, _reselect.createSelector)([selectStackedRadialBars, _dataSelectors.selectChartDataAndAlwaysIgnoreIndexes, _axisSelectors.selectTooltipAxis], _combineDisplayedStackedData.combineDisplayedStackedData);
-var selectStackGroups = (0, _reselect.createSelector)([selectPolarCombinedStackedData, selectStackedRadialBars, _rootPropsSelectors.selectStackOffsetType, _rootPropsSelectors.selectReverseStackOrder], _axisSelectors.combineStackGroups);
-var selectRadialBarStackGroups = (state, radiusAxisId, angleAxisId) => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  if (layout === 'centric') {
-    return selectStackGroups(state, 'radiusAxis', radiusAxisId);
-  }
-  return selectStackGroups(state, 'angleAxis', angleAxisId);
-};
-var selectPolarStackedData = (0, _reselect.createSelector)([selectRadialBarStackGroups, selectSynchronisedRadialBarSettings], _combineStackedData.combineStackedData);
-var selectRadialBarSectors = exports.selectRadialBarSectors = (0, _reselect.createSelector)([selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, _dataSelectors.selectChartDataWithIndexes, selectSynchronisedRadialBarSettings, selectBandSizeOfPolarAxis, _chartLayoutContext.selectChartLayout, selectBaseValue, _polarAxisSelectors.selectPolarViewBox, pickCells, selectPolarBarPosition, selectPolarStackedData], (angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, _ref3, radialBarSettings, bandSize, layout, baseValue, polarViewBox, cells, pos, stackedData) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref3;
-  if (radialBarSettings == null || radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || pos == null || layout !== 'centric' && layout !== 'radial' || radiusAxisTicks == null || polarViewBox == null) {
-    return [];
-  }
-  var {
-    dataKey,
-    minPointSize
-  } = radialBarSettings;
-  var {
-    cx,
-    cy,
-    startAngle,
-    endAngle
-  } = polarViewBox;
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  var numericAxis = layout === 'centric' ? radiusAxis : angleAxis;
-  var stackedDomain = stackedData ? numericAxis.scale.domain() : null;
-  return (0, _RadialBar.computeRadialBarDataItems)({
-    angleAxis,
-    angleAxisTicks,
-    bandSize,
-    baseValue,
-    cells,
-    cx,
-    cy,
-    dataKey,
-    dataStartIndex,
-    displayedData,
-    endAngle,
-    layout,
-    minPointSize,
-    pos,
-    radiusAxis,
-    radiusAxisTicks,
-    stackedData,
-    stackedDomain,
-    startAngle
-  });
-});
-var selectRadialBarLegendPayload = exports.selectRadialBarLegendPayload = (0, _reselect.createSelector)([_dataSelectors.selectChartDataAndAlwaysIgnoreIndexes, (_s, l) => l], (_ref4, legendType) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref4;
-  if (chartData == null) {
-    return [];
-  }
-  var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);
-  if (displayedData.length === 0) {
-    return [];
-  }
-  return displayedData.map(entry => {
-    return {
-      type: legendType,
-      // @ts-expect-error we need a better typing for our data inputs
-      value: entry.name,
-      // @ts-expect-error we need a better typing for our data inputs
-      color: entry.fill,
-      // @ts-expect-error we need a better typing for our data inputs
-      payload: entry
-    };
-  });
-});
Index: de_modules/recharts/lib/state/selectors/rootPropsSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/rootPropsSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectSyncMethod = exports.selectSyncId = exports.selectStackOffsetType = exports.selectRootMaxBarSize = exports.selectRootBarSize = exports.selectReverseStackOrder = exports.selectEventEmitter = exports.selectChartName = exports.selectChartBaseValue = exports.selectBarGap = exports.selectBarCategoryGap = void 0;
-var selectRootMaxBarSize = state => state.rootProps.maxBarSize;
-exports.selectRootMaxBarSize = selectRootMaxBarSize;
-var selectBarGap = state => state.rootProps.barGap;
-exports.selectBarGap = selectBarGap;
-var selectBarCategoryGap = state => state.rootProps.barCategoryGap;
-exports.selectBarCategoryGap = selectBarCategoryGap;
-var selectRootBarSize = state => state.rootProps.barSize;
-exports.selectRootBarSize = selectRootBarSize;
-var selectStackOffsetType = state => state.rootProps.stackOffset;
-exports.selectStackOffsetType = selectStackOffsetType;
-var selectReverseStackOrder = state => state.rootProps.reverseStackOrder;
-exports.selectReverseStackOrder = selectReverseStackOrder;
-var selectChartName = state => state.options.chartName;
-exports.selectChartName = selectChartName;
-var selectSyncId = state => state.rootProps.syncId;
-exports.selectSyncId = selectSyncId;
-var selectSyncMethod = state => state.rootProps.syncMethod;
-exports.selectSyncMethod = selectSyncMethod;
-var selectEventEmitter = state => state.options.eventEmitter;
-exports.selectEventEmitter = selectEventEmitter;
-var selectChartBaseValue = state => state.rootProps.baseValue;
-exports.selectChartBaseValue = selectChartBaseValue;
Index: de_modules/recharts/lib/state/selectors/scatterSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/scatterSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectScatterPoints = void 0;
-var _reselect = require("reselect");
-var _Scatter = require("../../cartesian/Scatter");
-var _dataSelectors = require("./dataSelectors");
-var _axisSelectors = require("./axisSelectors");
-var selectXAxisWithScale = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'xAxis', xAxisId, isPanorama);
-var selectXAxisTicks = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'xAxis', xAxisId, isPanorama);
-var selectYAxisWithScale = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => (0, _axisSelectors.selectAxisWithScale)(state, 'yAxis', yAxisId, isPanorama);
-var selectYAxisTicks = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => (0, _axisSelectors.selectTicksOfGraphicalItem)(state, 'yAxis', yAxisId, isPanorama);
-var selectZAxis = (state, _xAxisId, _yAxisId, zAxisId) => (0, _axisSelectors.selectZAxisWithScale)(state, 'zAxis', zAxisId, false);
-var pickScatterId = (_state, _xAxisId, _yAxisId, _zAxisId, id) => id;
-var pickCells = (_state, _xAxisId, _yAxisId, _zAxisId, _id, cells) => cells;
-var scatterChartDataSelector = (state, _xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => (0, _dataSelectors.selectChartDataWithIndexesIfNotInPanoramaPosition4)(state, undefined, undefined, isPanorama);
-var selectSynchronisedScatterSettings = (0, _reselect.createSelector)([_axisSelectors.selectUnfilteredCartesianItems, pickScatterId], (graphicalItems, id) => {
-  return graphicalItems.filter(item => item.type === 'scatter').find(item => item.id === id);
-});
-var selectScatterPoints = exports.selectScatterPoints = (0, _reselect.createSelector)([scatterChartDataSelector, selectXAxisWithScale, selectXAxisTicks, selectYAxisWithScale, selectYAxisTicks, selectZAxis, selectSynchronisedScatterSettings, pickCells], (_ref, xAxis, xAxisTicks, yAxis, yAxisTicks, zAxis, scatterSettings, cells) => {
-  var {
-    chartData,
-    dataStartIndex,
-    dataEndIndex
-  } = _ref;
-  if (scatterSettings == null) {
-    return undefined;
-  }
-  var displayedData;
-  if ((scatterSettings === null || scatterSettings === void 0 ? void 0 : scatterSettings.data) != null && scatterSettings.data.length > 0) {
-    displayedData = scatterSettings.data;
-  } else {
-    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);
-  }
-  if (displayedData == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || (xAxisTicks === null || xAxisTicks === void 0 ? void 0 : xAxisTicks.length) === 0 || (yAxisTicks === null || yAxisTicks === void 0 ? void 0 : yAxisTicks.length) === 0) {
-    return undefined;
-  }
-  return (0, _Scatter.computeScatterPoints)({
-    displayedData,
-    xAxis,
-    yAxis,
-    zAxis,
-    scatterSettings,
-    xAxisTicks,
-    yAxisTicks,
-    cells
-  });
-});
Index: de_modules/recharts/lib/state/selectors/selectActivePropsFromChartPointer.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectActivePropsFromChartPointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectActivePropsFromChartPointer = void 0;
-var _reselect = require("reselect");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _tooltipSelectors = require("./tooltipSelectors");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _selectors = require("./selectors");
-var _polarAxisSelectors = require("./polarAxisSelectors");
-var _selectTooltipAxisType = require("./selectTooltipAxisType");
-var pickChartPointer = (_state, chartPointer) => chartPointer;
-var selectActivePropsFromChartPointer = exports.selectActivePropsFromChartPointer = (0, _reselect.createSelector)([pickChartPointer, _chartLayoutContext.selectChartLayout, _polarAxisSelectors.selectPolarViewBox, _selectTooltipAxisType.selectTooltipAxisType, _tooltipSelectors.selectTooltipAxisRangeWithReverse, _tooltipSelectors.selectTooltipAxisTicks, _selectors.selectOrderedTooltipTicks, _selectChartOffsetInternal.selectChartOffsetInternal], _selectors.combineActiveProps);
Index: de_modules/recharts/lib/state/selectors/selectAllAxes.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectAllAxes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectAllYAxes = exports.selectAllXAxes = void 0;
-var _reselect = require("reselect");
-var selectAllXAxes = exports.selectAllXAxes = (0, _reselect.createSelector)(state => state.cartesianAxis.xAxis, xAxisMap => {
-  return Object.values(xAxisMap);
-});
-var selectAllYAxes = exports.selectAllYAxes = (0, _reselect.createSelector)(state => state.cartesianAxis.yAxis, yAxisMap => {
-  return Object.values(yAxisMap);
-});
Index: de_modules/recharts/lib/state/selectors/selectChartOffset.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectChartOffset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectChartOffset = void 0;
-var _reselect = require("reselect");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var selectChartOffset = exports.selectChartOffset = (0, _reselect.createSelector)([_selectChartOffsetInternal.selectChartOffsetInternal], offsetInternal => {
-  return {
-    top: offsetInternal.top,
-    bottom: offsetInternal.bottom,
-    left: offsetInternal.left,
-    right: offsetInternal.right
-  };
-});
Index: de_modules/recharts/lib/state/selectors/selectChartOffsetInternal.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectChartOffsetInternal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,99 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectChartViewBox = exports.selectChartOffsetInternal = exports.selectBrushHeight = exports.selectAxisViewBox = void 0;
-var _reselect = require("reselect");
-var _legendSelectors = require("./legendSelectors");
-var _ChartUtils = require("../../util/ChartUtils");
-var _containerSelectors = require("./containerSelectors");
-var _selectAllAxes = require("./selectAllAxes");
-var _Constants = require("../../util/Constants");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var selectBrushHeight = state => state.brush.height;
-exports.selectBrushHeight = selectBrushHeight;
-function selectLeftAxesOffset(state) {
-  var yAxes = (0, _selectAllAxes.selectAllYAxes)(state);
-  return yAxes.reduce((result, entry) => {
-    if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {
-      var width = typeof entry.width === 'number' ? entry.width : _Constants.DEFAULT_Y_AXIS_WIDTH;
-      return result + width;
-    }
-    return result;
-  }, 0);
-}
-function selectRightAxesOffset(state) {
-  var yAxes = (0, _selectAllAxes.selectAllYAxes)(state);
-  return yAxes.reduce((result, entry) => {
-    if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {
-      var width = typeof entry.width === 'number' ? entry.width : _Constants.DEFAULT_Y_AXIS_WIDTH;
-      return result + width;
-    }
-    return result;
-  }, 0);
-}
-function selectTopAxesOffset(state) {
-  var xAxes = (0, _selectAllAxes.selectAllXAxes)(state);
-  return xAxes.reduce((result, entry) => {
-    if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {
-      return result + entry.height;
-    }
-    return result;
-  }, 0);
-}
-function selectBottomAxesOffset(state) {
-  var xAxes = (0, _selectAllAxes.selectAllXAxes)(state);
-  return xAxes.reduce((result, entry) => {
-    if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {
-      return result + entry.height;
-    }
-    return result;
-  }, 0);
-}
-
-/**
- * For internal use only.
- *
- * @param root state
- * @return ChartOffsetInternal
- */
-var selectChartOffsetInternal = exports.selectChartOffsetInternal = (0, _reselect.createSelector)([_containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight, _containerSelectors.selectMargin, selectBrushHeight, selectLeftAxesOffset, selectRightAxesOffset, selectTopAxesOffset, selectBottomAxesOffset, _legendSelectors.selectLegendSettings, _legendSelectors.selectLegendSize], (chartWidth, chartHeight, margin, brushHeight, leftAxesOffset, rightAxesOffset, topAxesOffset, bottomAxesOffset, legendSettings, legendSize) => {
-  var offsetH = {
-    left: (margin.left || 0) + leftAxesOffset,
-    right: (margin.right || 0) + rightAxesOffset
-  };
-  var offsetV = {
-    top: (margin.top || 0) + topAxesOffset,
-    bottom: (margin.bottom || 0) + bottomAxesOffset
-  };
-  var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);
-  var brushBottom = offset.bottom;
-  offset.bottom += brushHeight;
-  offset = (0, _ChartUtils.appendOffsetOfLegend)(offset, legendSettings, legendSize);
-  var offsetWidth = chartWidth - offset.left - offset.right;
-  var offsetHeight = chartHeight - offset.top - offset.bottom;
-  return _objectSpread(_objectSpread({
-    brushBottom
-  }, offset), {}, {
-    // never return negative values for height and width
-    width: Math.max(offsetWidth, 0),
-    height: Math.max(offsetHeight, 0)
-  });
-});
-var selectChartViewBox = exports.selectChartViewBox = (0, _reselect.createSelector)(selectChartOffsetInternal, offset => ({
-  x: offset.left,
-  y: offset.top,
-  width: offset.width,
-  height: offset.height
-}));
-var selectAxisViewBox = exports.selectAxisViewBox = (0, _reselect.createSelector)(_containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight, (width, height) => ({
-  x: 0,
-  y: 0,
-  width,
-  height
-}));
Index: de_modules/recharts/lib/state/selectors/selectPlotArea.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectPlotArea.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectPlotArea = void 0;
-var _reselect = require("reselect");
-var _selectChartOffset = require("./selectChartOffset");
-var _containerSelectors = require("./containerSelectors");
-var selectPlotArea = exports.selectPlotArea = (0, _reselect.createSelector)([_selectChartOffset.selectChartOffset, _containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight], (offset, chartWidth, chartHeight) => {
-  if (!offset || chartWidth == null || chartHeight == null) {
-    return undefined;
-  }
-  return {
-    x: offset.left,
-    y: offset.top,
-    width: Math.max(0, chartWidth - offset.left - offset.right),
-    height: Math.max(0, chartHeight - offset.top - offset.bottom)
-  };
-});
Index: de_modules/recharts/lib/state/selectors/selectTooltipAxisId.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipAxisId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipAxisId = void 0;
-var selectTooltipAxisId = state => state.tooltip.settings.axisId;
-exports.selectTooltipAxisId = selectTooltipAxisId;
Index: de_modules/recharts/lib/state/selectors/selectTooltipAxisType.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipAxisType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipAxisType = void 0;
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-/**
- * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings
- */
-
-/**
- * Z axis is never displayed and so it lacks ticks and tick settings.
- */
-
-var selectTooltipAxisType = state => {
-  var layout = (0, _chartLayoutContext.selectChartLayout)(state);
-  if (layout === 'horizontal') {
-    return 'xAxis';
-  }
-  if (layout === 'vertical') {
-    return 'yAxis';
-  }
-  if (layout === 'centric') {
-    return 'angleAxis';
-  }
-  return 'radiusAxis';
-};
-exports.selectTooltipAxisType = selectTooltipAxisType;
Index: de_modules/recharts/lib/state/selectors/selectTooltipEventType.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipEventType.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.combineTooltipEventType = combineTooltipEventType;
-exports.selectDefaultTooltipEventType = void 0;
-exports.selectTooltipEventType = selectTooltipEventType;
-exports.selectValidateTooltipEventTypes = void 0;
-exports.useTooltipEventType = useTooltipEventType;
-var _hooks = require("../hooks");
-var selectDefaultTooltipEventType = state => state.options.defaultTooltipEventType;
-exports.selectDefaultTooltipEventType = selectDefaultTooltipEventType;
-var selectValidateTooltipEventTypes = state => state.options.validateTooltipEventTypes;
-exports.selectValidateTooltipEventTypes = selectValidateTooltipEventTypes;
-function combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes) {
-  if (shared == null) {
-    return defaultTooltipEventType;
-  }
-  var eventType = shared ? 'axis' : 'item';
-  if (validateTooltipEventTypes == null) {
-    return defaultTooltipEventType;
-  }
-  return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;
-}
-function selectTooltipEventType(state, shared) {
-  var defaultTooltipEventType = selectDefaultTooltipEventType(state);
-  var validateTooltipEventTypes = selectValidateTooltipEventTypes(state);
-  return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);
-}
-function useTooltipEventType(shared) {
-  return (0, _hooks.useAppSelector)(state => selectTooltipEventType(state, shared));
-}
Index: de_modules/recharts/lib/state/selectors/selectTooltipPayloadSearcher.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipPayloadSearcher.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipPayloadSearcher = void 0;
-var selectTooltipPayloadSearcher = state => state.options.tooltipPayloadSearcher;
-exports.selectTooltipPayloadSearcher = selectTooltipPayloadSearcher;
Index: de_modules/recharts/lib/state/selectors/selectTooltipSettings.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipSettings = void 0;
-var selectTooltipSettings = state => state.tooltip.settings;
-exports.selectTooltipSettings = selectTooltipSettings;
Index: de_modules/recharts/lib/state/selectors/selectTooltipState.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectTooltipState.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipState = void 0;
-var selectTooltipState = state => state.tooltip;
-exports.selectTooltipState = selectTooltipState;
Index: de_modules/recharts/lib/state/selectors/selectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/selectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,110 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useChartName = exports.selectTooltipPayloadConfigurations = exports.selectTooltipPayload = exports.selectTooltipInteractionState = exports.selectTooltipDataKey = exports.selectOrderedTooltipTicks = exports.selectIsTooltipActive = exports.selectCoordinateForDefaultIndex = exports.selectActiveLabel = exports.selectActiveIndex = exports.selectActiveCoordinate = exports.combineActiveProps = void 0;
-var _reselect = require("reselect");
-var _sortBy = _interopRequireDefault(require("es-toolkit/compat/sortBy"));
-var _hooks = require("../hooks");
-var _ChartUtils = require("../../util/ChartUtils");
-var _dataSelectors = require("./dataSelectors");
-var _tooltipSelectors = require("./tooltipSelectors");
-var _axisSelectors = require("./axisSelectors");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _containerSelectors = require("./containerSelectors");
-var _combineActiveLabel = require("./combiners/combineActiveLabel");
-var _combineTooltipInteractionState = require("./combiners/combineTooltipInteractionState");
-var _combineActiveTooltipIndex = require("./combiners/combineActiveTooltipIndex");
-var _combineCoordinateForDefaultIndex = require("./combiners/combineCoordinateForDefaultIndex");
-var _combineTooltipPayloadConfigurations = require("./combiners/combineTooltipPayloadConfigurations");
-var _selectTooltipPayloadSearcher = require("./selectTooltipPayloadSearcher");
-var _selectTooltipState = require("./selectTooltipState");
-var _combineTooltipPayload = require("./combiners/combineTooltipPayload");
-var _getActiveCoordinate = require("../../util/getActiveCoordinate");
-var _PolarUtils = require("../../util/PolarUtils");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var useChartName = () => {
-  return (0, _hooks.useAppSelector)(_rootPropsSelectors.selectChartName);
-};
-exports.useChartName = useChartName;
-var pickTooltipEventType = (_state, tooltipEventType) => tooltipEventType;
-var pickTrigger = (_state, _tooltipEventType, trigger) => trigger;
-var pickDefaultIndex = (_state, _tooltipEventType, _trigger, defaultIndex) => defaultIndex;
-var selectOrderedTooltipTicks = exports.selectOrderedTooltipTicks = (0, _reselect.createSelector)(_tooltipSelectors.selectTooltipAxisTicks, ticks => (0, _sortBy.default)(ticks, o => o.coordinate));
-var selectTooltipInteractionState = exports.selectTooltipInteractionState = (0, _reselect.createSelector)([_selectTooltipState.selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], _combineTooltipInteractionState.combineTooltipInteractionState);
-var selectActiveIndex = exports.selectActiveIndex = (0, _reselect.createSelector)([selectTooltipInteractionState, _tooltipSelectors.selectTooltipDisplayedData, _axisSelectors.selectTooltipAxisDataKey, _tooltipSelectors.selectTooltipAxisDomain], _combineActiveTooltipIndex.combineActiveTooltipIndex);
-var selectTooltipDataKey = (state, tooltipEventType, trigger) => {
-  if (tooltipEventType == null) {
-    return undefined;
-  }
-  var tooltipState = (0, _selectTooltipState.selectTooltipState)(state);
-  if (tooltipEventType === 'axis') {
-    if (trigger === 'hover') {
-      return tooltipState.axisInteraction.hover.dataKey;
-    }
-    return tooltipState.axisInteraction.click.dataKey;
-  }
-  if (trigger === 'hover') {
-    return tooltipState.itemInteraction.hover.dataKey;
-  }
-  return tooltipState.itemInteraction.click.dataKey;
-};
-exports.selectTooltipDataKey = selectTooltipDataKey;
-var selectTooltipPayloadConfigurations = exports.selectTooltipPayloadConfigurations = (0, _reselect.createSelector)([_selectTooltipState.selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], _combineTooltipPayloadConfigurations.combineTooltipPayloadConfigurations);
-var selectCoordinateForDefaultIndex = exports.selectCoordinateForDefaultIndex = (0, _reselect.createSelector)([_containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight, _chartLayoutContext.selectChartLayout, _selectChartOffsetInternal.selectChartOffsetInternal, _tooltipSelectors.selectTooltipAxisTicks, pickDefaultIndex, selectTooltipPayloadConfigurations], _combineCoordinateForDefaultIndex.combineCoordinateForDefaultIndex);
-var selectActiveCoordinate = exports.selectActiveCoordinate = (0, _reselect.createSelector)([selectTooltipInteractionState, selectCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {
-  var _tooltipInteractionSt;
-  return (_tooltipInteractionSt = tooltipInteractionState.coordinate) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : defaultIndexCoordinate;
-});
-var selectActiveLabel = exports.selectActiveLabel = (0, _reselect.createSelector)([_tooltipSelectors.selectTooltipAxisTicks, selectActiveIndex], _combineActiveLabel.combineActiveLabel);
-var selectTooltipPayload = exports.selectTooltipPayload = (0, _reselect.createSelector)([selectTooltipPayloadConfigurations, selectActiveIndex, _dataSelectors.selectChartDataWithIndexes, _axisSelectors.selectTooltipAxisDataKey, selectActiveLabel, _selectTooltipPayloadSearcher.selectTooltipPayloadSearcher, pickTooltipEventType], _combineTooltipPayload.combineTooltipPayload);
-var selectIsTooltipActive = exports.selectIsTooltipActive = (0, _reselect.createSelector)([selectTooltipInteractionState, selectActiveIndex], (tooltipInteractionState, activeIndex) => {
-  return {
-    isActive: tooltipInteractionState.active && activeIndex != null,
-    activeIndex
-  };
-});
-var combineActiveCartesianProps = (chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
-  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
-    return undefined;
-  }
-  if (!(0, _getActiveCoordinate.isInCartesianRange)(chartEvent, offset)) {
-    return undefined;
-  }
-  var pos = (0, _ChartUtils.calculateCartesianTooltipPos)(chartEvent, layout);
-  var activeIndex = (0, _getActiveCoordinate.calculateActiveTickIndex)(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
-  var activeCoordinate = (0, _getActiveCoordinate.getActiveCartesianCoordinate)(layout, tooltipTicks, activeIndex, chartEvent);
-  return {
-    activeIndex: String(activeIndex),
-    activeCoordinate
-  };
-};
-var combineActivePolarProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks) => {
-  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {
-    return undefined;
-  }
-  var rangeObj = (0, _PolarUtils.inRangeOfSector)(chartEvent, polarViewBox);
-  if (!rangeObj) {
-    return undefined;
-  }
-  var pos = (0, _ChartUtils.calculatePolarTooltipPos)(rangeObj, layout);
-  var activeIndex = (0, _getActiveCoordinate.calculateActiveTickIndex)(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
-  var activeCoordinate = (0, _getActiveCoordinate.getActivePolarCoordinate)(layout, tooltipTicks, activeIndex, rangeObj);
-  return {
-    activeIndex: String(activeIndex),
-    activeCoordinate
-  };
-};
-var combineActiveProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
-  if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
-    return undefined;
-  }
-  if (layout === 'horizontal' || layout === 'vertical') {
-    return combineActiveCartesianProps(chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset);
-  }
-  return combineActivePolarProps(chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks);
-};
-exports.combineActiveProps = combineActiveProps;
Index: de_modules/recharts/lib/state/selectors/tooltipSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/tooltipSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,185 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipGraphicalItemsData = exports.selectTooltipDisplayedData = exports.selectTooltipCategoricalDomain = exports.selectTooltipAxisTicks = exports.selectTooltipAxisScale = exports.selectTooltipAxisRealScaleType = exports.selectTooltipAxisRangeWithReverse = exports.selectTooltipAxisDomainIncludingNiceTicks = exports.selectTooltipAxisDomain = exports.selectIsTooltipActive = exports.selectAllUnfilteredGraphicalItems = exports.selectAllGraphicalItemsSettings = exports.selectActiveTooltipPayload = exports.selectActiveTooltipIndex = exports.selectActiveTooltipGraphicalItemId = exports.selectActiveTooltipDataPoints = exports.selectActiveTooltipDataKey = exports.selectActiveTooltipCoordinate = exports.selectActiveLabel = void 0;
-var _reselect = require("reselect");
-var _axisSelectors = require("./axisSelectors");
-var _chartLayoutContext = require("../../context/chartLayoutContext");
-var _ChartUtils = require("../../util/ChartUtils");
-var _dataSelectors = require("./dataSelectors");
-var _rootPropsSelectors = require("./rootPropsSelectors");
-var _DataUtils = require("../../util/DataUtils");
-var _combineAxisRangeWithReverse = require("./combiners/combineAxisRangeWithReverse");
-var _selectTooltipEventType = require("./selectTooltipEventType");
-var _combineActiveLabel = require("./combiners/combineActiveLabel");
-var _selectTooltipSettings = require("./selectTooltipSettings");
-var _combineTooltipInteractionState = require("./combiners/combineTooltipInteractionState");
-var _combineActiveTooltipIndex = require("./combiners/combineActiveTooltipIndex");
-var _combineCoordinateForDefaultIndex = require("./combiners/combineCoordinateForDefaultIndex");
-var _containerSelectors = require("./containerSelectors");
-var _selectChartOffsetInternal = require("./selectChartOffsetInternal");
-var _combineTooltipPayloadConfigurations = require("./combiners/combineTooltipPayloadConfigurations");
-var _selectTooltipPayloadSearcher = require("./selectTooltipPayloadSearcher");
-var _selectTooltipState = require("./selectTooltipState");
-var _combineTooltipPayload = require("./combiners/combineTooltipPayload");
-var _selectTooltipAxisId = require("./selectTooltipAxisId");
-var _selectTooltipAxisType = require("./selectTooltipAxisType");
-var _combineDisplayedStackedData = require("./combiners/combineDisplayedStackedData");
-var _StackedGraphicalItem = require("../types/StackedGraphicalItem");
-var _isDomainSpecifiedByUser = require("../../util/isDomainSpecifiedByUser");
-var _numberDomainEqualityCheck = require("./numberDomainEqualityCheck");
-var _arrayEqualityCheck = require("./arrayEqualityCheck");
-var _isWellBehavedNumber = require("../../util/isWellBehavedNumber");
-var selectTooltipAxisRealScaleType = exports.selectTooltipAxisRealScaleType = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, _axisSelectors.selectHasBar, _rootPropsSelectors.selectChartName], _axisSelectors.combineRealScaleType);
-var selectAllUnfilteredGraphicalItems = exports.selectAllUnfilteredGraphicalItems = (0, _reselect.createSelector)([state => state.graphicalItems.cartesianItems, state => state.graphicalItems.polarItems], (cartesianItems, polarItems) => [...cartesianItems, ...polarItems]);
-var selectTooltipAxisPredicate = (0, _reselect.createSelector)([_selectTooltipAxisType.selectTooltipAxisType, _selectTooltipAxisId.selectTooltipAxisId], _axisSelectors.itemAxisPredicate);
-var selectAllGraphicalItemsSettings = exports.selectAllGraphicalItemsSettings = (0, _reselect.createSelector)([selectAllUnfilteredGraphicalItems, _axisSelectors.selectTooltipAxis, selectTooltipAxisPredicate], _axisSelectors.combineGraphicalItemsSettings, {
-  memoizeOptions: {
-    resultEqualityCheck: _arrayEqualityCheck.emptyArraysAreEqualCheck
-  }
-});
-var selectAllStackedGraphicalItemsSettings = (0, _reselect.createSelector)([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(_StackedGraphicalItem.isStacked));
-var selectTooltipGraphicalItemsData = exports.selectTooltipGraphicalItemsData = (0, _reselect.createSelector)([selectAllGraphicalItemsSettings], _axisSelectors.combineGraphicalItemsData, {
-  memoizeOptions: {
-    resultEqualityCheck: _arrayEqualityCheck.emptyArraysAreEqualCheck
-  }
-});
-
-/**
- * Data for tooltip always use the data with indexes set by a Brush,
- * and never accept the isPanorama flag:
- * because Tooltip never displays inside the panorama anyway
- * so we don't need to worry what would happen there.
- */
-var selectTooltipDisplayedData = exports.selectTooltipDisplayedData = (0, _reselect.createSelector)([selectTooltipGraphicalItemsData, _dataSelectors.selectChartDataWithIndexes], _axisSelectors.combineDisplayedData);
-var selectTooltipStackedData = (0, _reselect.createSelector)([selectAllStackedGraphicalItemsSettings, _dataSelectors.selectChartDataWithIndexes, _axisSelectors.selectTooltipAxis], _combineDisplayedStackedData.combineDisplayedStackedData);
-var selectAllTooltipAppliedValues = (0, _reselect.createSelector)([selectTooltipDisplayedData, _axisSelectors.selectTooltipAxis, selectAllGraphicalItemsSettings], _axisSelectors.combineAppliedValues);
-var selectTooltipAxisDomainDefinition = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis], _axisSelectors.getDomainDefinition);
-var selectTooltipDataOverflow = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis], axisSettings => axisSettings.allowDataOverflow);
-var selectTooltipDomainFromUserPreferences = (0, _reselect.createSelector)([selectTooltipAxisDomainDefinition, selectTooltipDataOverflow], _isDomainSpecifiedByUser.numericalDomainSpecifiedWithoutRequiringData);
-var selectAllStackedGraphicalItems = (0, _reselect.createSelector)([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(_StackedGraphicalItem.isStacked));
-var selectTooltipStackGroups = (0, _reselect.createSelector)([selectTooltipStackedData, selectAllStackedGraphicalItems, _rootPropsSelectors.selectStackOffsetType, _rootPropsSelectors.selectReverseStackOrder], _axisSelectors.combineStackGroups);
-var selectTooltipDomainOfStackGroups = (0, _reselect.createSelector)([selectTooltipStackGroups, _dataSelectors.selectChartDataWithIndexes, _selectTooltipAxisType.selectTooltipAxisType, selectTooltipDomainFromUserPreferences], _axisSelectors.combineDomainOfStackGroups);
-var selectTooltipItemsSettingsExceptStacked = (0, _reselect.createSelector)([selectAllGraphicalItemsSettings], _axisSelectors.filterGraphicalNotStackedItems);
-var selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = (0, _reselect.createSelector)([selectTooltipDisplayedData, _axisSelectors.selectTooltipAxis, selectTooltipItemsSettingsExceptStacked, _axisSelectors.selectAllErrorBarSettings, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {
-  memoizeOptions: {
-    resultEqualityCheck: _numberDomainEqualityCheck.numberDomainEqualityCheck
-  }
-});
-var selectReferenceDotsByTooltipAxis = (0, _reselect.createSelector)([_axisSelectors.selectReferenceDots, _selectTooltipAxisType.selectTooltipAxisType, _selectTooltipAxisId.selectTooltipAxisId], _axisSelectors.filterReferenceElements);
-var selectTooltipReferenceDotsDomain = (0, _reselect.createSelector)([selectReferenceDotsByTooltipAxis, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineDotsDomain);
-var selectReferenceAreasByTooltipAxis = (0, _reselect.createSelector)([_axisSelectors.selectReferenceAreas, _selectTooltipAxisType.selectTooltipAxisType, _selectTooltipAxisId.selectTooltipAxisId], _axisSelectors.filterReferenceElements);
-var selectTooltipReferenceAreasDomain = (0, _reselect.createSelector)([selectReferenceAreasByTooltipAxis, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineAreasDomain);
-var selectReferenceLinesByTooltipAxis = (0, _reselect.createSelector)([_axisSelectors.selectReferenceLines, _selectTooltipAxisType.selectTooltipAxisType, _selectTooltipAxisId.selectTooltipAxisId], _axisSelectors.filterReferenceElements);
-var selectTooltipReferenceLinesDomain = (0, _reselect.createSelector)([selectReferenceLinesByTooltipAxis, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineLinesDomain);
-var selectTooltipReferenceElementsDomain = (0, _reselect.createSelector)([selectTooltipReferenceDotsDomain, selectTooltipReferenceLinesDomain, selectTooltipReferenceAreasDomain], _axisSelectors.mergeDomains);
-var selectTooltipNumericalDomain = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, selectTooltipAxisDomainDefinition, selectTooltipDomainFromUserPreferences, selectTooltipDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectTooltipReferenceElementsDomain, _chartLayoutContext.selectChartLayout, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineNumericalDomain);
-var selectTooltipAxisDomain = exports.selectTooltipAxisDomain = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, _chartLayoutContext.selectChartLayout, selectTooltipDisplayedData, selectAllTooltipAppliedValues, _rootPropsSelectors.selectStackOffsetType, _selectTooltipAxisType.selectTooltipAxisType, selectTooltipNumericalDomain], _axisSelectors.combineAxisDomain);
-var selectTooltipNiceTicks = (0, _reselect.createSelector)([selectTooltipAxisDomain, _axisSelectors.selectTooltipAxis, selectTooltipAxisRealScaleType], _axisSelectors.combineNiceTicks);
-var selectTooltipAxisDomainIncludingNiceTicks = exports.selectTooltipAxisDomainIncludingNiceTicks = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, selectTooltipAxisDomain, selectTooltipNiceTicks, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineAxisDomainWithNiceTicks);
-var selectTooltipAxisRange = state => {
-  var axisType = (0, _selectTooltipAxisType.selectTooltipAxisType)(state);
-  var axisId = (0, _selectTooltipAxisId.selectTooltipAxisId)(state);
-  var isPanorama = false; // Tooltip never displays in panorama so this is safe to assume
-  return (0, _axisSelectors.selectAxisRange)(state, axisType, axisId, isPanorama);
-};
-var selectTooltipAxisRangeWithReverse = exports.selectTooltipAxisRangeWithReverse = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, selectTooltipAxisRange], _combineAxisRangeWithReverse.combineAxisRangeWithReverse);
-var selectTooltipAxisScale = exports.selectTooltipAxisScale = (0, _reselect.createSelector)([_axisSelectors.selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisDomainIncludingNiceTicks, selectTooltipAxisRangeWithReverse], _axisSelectors.combineScaleFunction);
-var selectTooltipDuplicateDomain = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectAllTooltipAppliedValues, _axisSelectors.selectTooltipAxis, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineDuplicateDomain);
-var selectTooltipCategoricalDomain = exports.selectTooltipCategoricalDomain = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, selectAllTooltipAppliedValues, _axisSelectors.selectTooltipAxis, _selectTooltipAxisType.selectTooltipAxisType], _axisSelectors.combineCategoricalDomain);
-var combineTicksOfTooltipAxis = (layout, axis, realScaleType, scale, range, duplicateDomain, categoricalDomain, axisType) => {
-  if (!axis) {
-    return undefined;
-  }
-  var {
-    type
-  } = axis;
-  var isCategorical = (0, _ChartUtils.isCategoricalAxis)(layout, axisType);
-  if (!scale) {
-    return undefined;
-  }
-  var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;
-  var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && range != null && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? (0, _DataUtils.mathSign)(range[0] - range[1]) * 2 * offset : offset;
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as an index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(_DataUtils.isNotNil);
-};
-
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-var selectTooltipAxisTicks = exports.selectTooltipAxisTicks = (0, _reselect.createSelector)([_chartLayoutContext.selectChartLayout, _axisSelectors.selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisScale, selectTooltipAxisRange, selectTooltipDuplicateDomain, selectTooltipCategoricalDomain, _selectTooltipAxisType.selectTooltipAxisType], combineTicksOfTooltipAxis);
-var selectTooltipEventType = (0, _reselect.createSelector)([_selectTooltipEventType.selectDefaultTooltipEventType, _selectTooltipEventType.selectValidateTooltipEventTypes, _selectTooltipSettings.selectTooltipSettings], (defaultTooltipEventType, validateTooltipEventType, settings) => (0, _selectTooltipEventType.combineTooltipEventType)(settings.shared, defaultTooltipEventType, validateTooltipEventType));
-var selectTooltipTrigger = state => state.tooltip.settings.trigger;
-var selectDefaultIndex = state => state.tooltip.settings.defaultIndex;
-var selectTooltipInteractionState = (0, _reselect.createSelector)([_selectTooltipState.selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], _combineTooltipInteractionState.combineTooltipInteractionState);
-var selectActiveTooltipIndex = exports.selectActiveTooltipIndex = (0, _reselect.createSelector)([selectTooltipInteractionState, selectTooltipDisplayedData, _axisSelectors.selectTooltipAxisDataKey, selectTooltipAxisDomain], _combineActiveTooltipIndex.combineActiveTooltipIndex);
-var selectActiveLabel = exports.selectActiveLabel = (0, _reselect.createSelector)([selectTooltipAxisTicks, selectActiveTooltipIndex], _combineActiveLabel.combineActiveLabel);
-var selectActiveTooltipDataKey = exports.selectActiveTooltipDataKey = (0, _reselect.createSelector)([selectTooltipInteractionState], tooltipInteraction => {
-  if (!tooltipInteraction) {
-    return undefined;
-  }
-  return tooltipInteraction.dataKey;
-});
-var selectActiveTooltipGraphicalItemId = exports.selectActiveTooltipGraphicalItemId = (0, _reselect.createSelector)([selectTooltipInteractionState], tooltipInteraction => {
-  if (!tooltipInteraction) {
-    return undefined;
-  }
-  return tooltipInteraction.graphicalItemId;
-});
-var selectTooltipPayloadConfigurations = (0, _reselect.createSelector)([_selectTooltipState.selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], _combineTooltipPayloadConfigurations.combineTooltipPayloadConfigurations);
-var selectTooltipCoordinateForDefaultIndex = (0, _reselect.createSelector)([_containerSelectors.selectChartWidth, _containerSelectors.selectChartHeight, _chartLayoutContext.selectChartLayout, _selectChartOffsetInternal.selectChartOffsetInternal, selectTooltipAxisTicks, selectDefaultIndex, selectTooltipPayloadConfigurations], _combineCoordinateForDefaultIndex.combineCoordinateForDefaultIndex);
-var selectActiveTooltipCoordinate = exports.selectActiveTooltipCoordinate = (0, _reselect.createSelector)([selectTooltipInteractionState, selectTooltipCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {
-  if (tooltipInteractionState !== null && tooltipInteractionState !== void 0 && tooltipInteractionState.coordinate) {
-    return tooltipInteractionState.coordinate;
-  }
-  return defaultIndexCoordinate;
-});
-var selectIsTooltipActive = exports.selectIsTooltipActive = (0, _reselect.createSelector)([selectTooltipInteractionState], tooltipInteractionState => {
-  var _tooltipInteractionSt;
-  return (_tooltipInteractionSt = tooltipInteractionState === null || tooltipInteractionState === void 0 ? void 0 : tooltipInteractionState.active) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : false;
-});
-var selectActiveTooltipPayload = exports.selectActiveTooltipPayload = (0, _reselect.createSelector)([selectTooltipPayloadConfigurations, selectActiveTooltipIndex, _dataSelectors.selectChartDataWithIndexes, _axisSelectors.selectTooltipAxisDataKey, selectActiveLabel, _selectTooltipPayloadSearcher.selectTooltipPayloadSearcher, selectTooltipEventType], _combineTooltipPayload.combineTooltipPayload);
-var selectActiveTooltipDataPoints = exports.selectActiveTooltipDataPoints = (0, _reselect.createSelector)([selectActiveTooltipPayload], payload => {
-  if (payload == null) {
-    return undefined;
-  }
-  var dataPoints = payload.map(p => p.payload).filter(p => p != null);
-  return Array.from(new Set(dataPoints));
-});
Index: de_modules/recharts/lib/state/selectors/touchSelectors.js
===================================================================
--- node_modules/recharts/lib/state/selectors/touchSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectTooltipCoordinate = void 0;
-var _reselect = require("reselect");
-var _selectTooltipState = require("./selectTooltipState");
-var selectAllTooltipPayloadConfiguration = (0, _reselect.createSelector)([_selectTooltipState.selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);
-var selectTooltipCoordinate = exports.selectTooltipCoordinate = (0, _reselect.createSelector)([selectAllTooltipPayloadConfiguration, (_state, tooltipIndex) => tooltipIndex, (_state, _tooltipIndex, graphicalItemId) => graphicalItemId], (allTooltipConfigurations, tooltipIndex, graphicalItemId) => {
-  if (tooltipIndex == null) {
-    return undefined;
-  }
-  var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {
-    return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;
-  });
-  if (mostRelevantTooltipConfiguration == null) {
-    return undefined;
-  }
-  var {
-    getPosition
-  } = mostRelevantTooltipConfiguration;
-  if (getPosition == null) {
-    return undefined;
-  }
-  return getPosition(tooltipIndex);
-});
Index: de_modules/recharts/lib/state/store.js
===================================================================
--- node_modules/recharts/lib/state/store.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.createRechartsStore = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _optionsSlice = require("./optionsSlice");
-var _tooltipSlice = require("./tooltipSlice");
-var _chartDataSlice = require("./chartDataSlice");
-var _layoutSlice = require("./layoutSlice");
-var _mouseEventsMiddleware = require("./mouseEventsMiddleware");
-var _reduxDevtoolsJsonStringifyReplacer = require("./reduxDevtoolsJsonStringifyReplacer");
-var _cartesianAxisSlice = require("./cartesianAxisSlice");
-var _graphicalItemsSlice = require("./graphicalItemsSlice");
-var _referenceElementsSlice = require("./referenceElementsSlice");
-var _brushSlice = require("./brushSlice");
-var _legendSlice = require("./legendSlice");
-var _rootPropsSlice = require("./rootPropsSlice");
-var _polarAxisSlice = require("./polarAxisSlice");
-var _polarOptionsSlice = require("./polarOptionsSlice");
-var _keyboardEventsMiddleware = require("./keyboardEventsMiddleware");
-var _externalEventsMiddleware = require("./externalEventsMiddleware");
-var _touchEventsMiddleware = require("./touchEventsMiddleware");
-var _errorBarSlice = require("./errorBarSlice");
-var _Global = require("../util/Global");
-var _zIndexSlice = require("./zIndexSlice");
-var rootReducer = (0, _toolkit.combineReducers)({
-  brush: _brushSlice.brushReducer,
-  cartesianAxis: _cartesianAxisSlice.cartesianAxisReducer,
-  chartData: _chartDataSlice.chartDataReducer,
-  errorBars: _errorBarSlice.errorBarReducer,
-  graphicalItems: _graphicalItemsSlice.graphicalItemsReducer,
-  layout: _layoutSlice.chartLayoutReducer,
-  legend: _legendSlice.legendReducer,
-  options: _optionsSlice.optionsReducer,
-  polarAxis: _polarAxisSlice.polarAxisReducer,
-  polarOptions: _polarOptionsSlice.polarOptionsReducer,
-  referenceElements: _referenceElementsSlice.referenceElementsReducer,
-  rootProps: _rootPropsSlice.rootPropsReducer,
-  tooltip: _tooltipSlice.tooltipReducer,
-  zIndex: _zIndexSlice.zIndexReducer
-});
-var createRechartsStore = exports.createRechartsStore = function createRechartsStore(preloadedState) {
-  var chartName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Chart';
-  return (0, _toolkit.configureStore)({
-    reducer: rootReducer,
-    // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2
-    preloadedState: preloadedState,
-    // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2
-    middleware: getDefaultMiddleware => {
-      var _process$env$NODE_ENV;
-      return getDefaultMiddleware({
-        serializableCheck: false,
-        immutableCheck: !['commonjs', 'es6', 'production'].includes((_process$env$NODE_ENV = "commonjs") !== null && _process$env$NODE_ENV !== void 0 ? _process$env$NODE_ENV : '')
-      }).concat([_mouseEventsMiddleware.mouseClickMiddleware.middleware, _mouseEventsMiddleware.mouseMoveMiddleware.middleware, _keyboardEventsMiddleware.keyboardEventsMiddleware.middleware, _externalEventsMiddleware.externalEventsMiddleware.middleware, _touchEventsMiddleware.touchEventMiddleware.middleware]);
-    },
-    /*
-     * I can't find out how to satisfy typescript here.
-     * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,
-     * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.
-     * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.
-     * So let's just ignore the error for now.
-     */
-    // @ts-expect-error mismatched generics
-    enhancers: getDefaultEnhancers => {
-      var enhancers = getDefaultEnhancers;
-      if (typeof getDefaultEnhancers === 'function') {
-        /*
-         * In RTK v2 this is always a function, but in v1 it is an array.
-         * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.
-         * We support both RTK v1 and v2, so we need to do this check.
-         * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback
-         */
-        // @ts-expect-error RTK v2 behaviour on RTK v1 types
-        enhancers = getDefaultEnhancers();
-      }
-      return enhancers.concat((0, _toolkit.autoBatchEnhancer)({
-        type: 'raf'
-      }));
-    },
-    devTools: _Global.Global.devToolsEnabled && {
-      serialize: {
-        replacer: _reduxDevtoolsJsonStringifyReplacer.reduxDevtoolsJsonStringifyReplacer
-      },
-      name: "recharts-".concat(chartName)
-    }
-  });
-};
Index: de_modules/recharts/lib/state/tooltipSlice.js
===================================================================
--- node_modules/recharts/lib/state/tooltipSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,236 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.tooltipReducer = exports.setTooltipSettingsState = exports.setSyncInteraction = exports.setMouseOverAxisIndex = exports.setMouseClickAxisIndex = exports.setKeyboardInteraction = exports.setActiveMouseOverItemIndex = exports.setActiveClickItemIndex = exports.replaceTooltipEntrySettings = exports.removeTooltipEntrySettings = exports.noInteraction = exports.mouseLeaveItem = exports.mouseLeaveChart = exports.initialState = exports.addTooltipEntrySettings = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-/**
- * One Tooltip can display multiple TooltipPayloadEntries at a time.
- */
-
-/**
- * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.
- * The dataKey can either be defined on the graphical element (like Line, or Bar)
- * or on the tooltip itself.
- *
- * The data can be defined in the chart element, or in the graphical item.
- *
- * So this type is all the settings, other than the data + dataKey complications.
- */
-
-/**
- * This is what Tooltip renders.
- */
-
-/**
- * null means no active index
- * string means: whichever index from the chart data it is.
- * Different charts have different requirements on data shapes,
- * and are also responsible for providing a function that will accept this index
- * and return data.
- */
-
-/**
- * Different items have different data shapes so the state has no opinion on what the data shape should be;
- * the only requirement is that the chart also provides a searcher function
- * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.
- */
-
-/**
- * So this informs the "tooltip event type". Tooltip event type can be either "axis" or "item"
- * and it is used for two things:
- * 1. Sets the active area
- * 2. Sets the background and cursor highlights
- *
- * Some charts only allow to have one type of tooltip event type, some allow both.
- * Those charts that allow both will have one default, and the "shared" prop will be used to switch between them.
- * Undefined means "use the chart default".
- *
- * Charts that only allow one tooltip event type, will ignore the shared prop.
- */
-
-/**
- * A generic state for user interaction with the chart.
- * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.
- *
- * Each of the interaction states is represented as TooltipInteractionState,
- * and then the selectors and Tooltip will decide which of the interaction states to use.
- */
-
-var noInteraction = exports.noInteraction = {
-  active: false,
-  index: null,
-  dataKey: undefined,
-  graphicalItemId: undefined,
-  coordinate: undefined
-};
-
-/**
- * The tooltip interaction state stores:
- *
- * - Which graphical item is user interacting with at the moment,
- * - which axis (or, which part of chart background) is user interacting with at the moment
- * - The data that individual graphical items wish to be displayed in case the tooltip gets activated
- */
-
-var initialState = exports.initialState = {
-  itemInteraction: {
-    click: noInteraction,
-    hover: noInteraction
-  },
-  axisInteraction: {
-    click: noInteraction,
-    hover: noInteraction
-  },
-  keyboardInteraction: noInteraction,
-  syncInteraction: {
-    active: false,
-    index: null,
-    dataKey: undefined,
-    label: undefined,
-    coordinate: undefined,
-    sourceViewBox: undefined,
-    graphicalItemId: undefined
-  },
-  tooltipItemPayloads: [],
-  settings: {
-    shared: undefined,
-    trigger: 'hover',
-    axisId: 0,
-    active: false,
-    defaultIndex: undefined
-  }
-};
-
-/**
- * This is the event we get when user is interacting with a specific graphical item.
- */
-
-/**
- * Keyboard interaction payload has no graphical item ID,
- * and no dataKey, because keyboard interaction is always
- * with the whole chart, not with a specific graphical item.
- */
-
-var tooltipSlice = (0, _toolkit.createSlice)({
-  name: 'tooltip',
-  initialState,
-  reducers: {
-    addTooltipEntrySettings: {
-      reducer(state, action) {
-        state.tooltipItemPayloads.push((0, _immer.castDraft)(action.payload));
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    replaceTooltipEntrySettings: {
-      reducer(state, action) {
-        var {
-          prev,
-          next
-        } = action.payload;
-        var index = (0, _toolkit.current)(state).tooltipItemPayloads.indexOf((0, _immer.castDraft)(prev));
-        if (index > -1) {
-          state.tooltipItemPayloads[index] = (0, _immer.castDraft)(next);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    removeTooltipEntrySettings: {
-      reducer(state, action) {
-        var index = (0, _toolkit.current)(state).tooltipItemPayloads.indexOf((0, _immer.castDraft)(action.payload));
-        if (index > -1) {
-          state.tooltipItemPayloads.splice(index, 1);
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    setTooltipSettingsState(state, action) {
-      state.settings = action.payload;
-    },
-    setActiveMouseOverItemIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.keyboardInteraction.active = false;
-      state.itemInteraction.hover.active = true;
-      state.itemInteraction.hover.index = action.payload.activeIndex;
-      state.itemInteraction.hover.dataKey = action.payload.activeDataKey;
-      state.itemInteraction.hover.graphicalItemId = action.payload.activeGraphicalItemId;
-      state.itemInteraction.hover.coordinate = action.payload.activeCoordinate;
-    },
-    mouseLeaveChart(state) {
-      /*
-       * Clear only the active flags. Why?
-       * 1. Keep Coordinate to preserve animation - next time the Tooltip appears, we want to render it from
-       * the last place where it was when it disappeared.
-       * 2. We want to keep all the properties anyway just in case the tooltip has `active=true` prop
-       * and continues being visible even after the mouse has left the chart.
-       */
-      state.itemInteraction.hover.active = false;
-      state.axisInteraction.hover.active = false;
-    },
-    mouseLeaveItem(state) {
-      state.itemInteraction.hover.active = false;
-    },
-    setActiveClickItemIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.itemInteraction.click.active = true;
-      state.keyboardInteraction.active = false;
-      state.itemInteraction.click.index = action.payload.activeIndex;
-      state.itemInteraction.click.dataKey = action.payload.activeDataKey;
-      state.itemInteraction.click.graphicalItemId = action.payload.activeGraphicalItemId;
-      state.itemInteraction.click.coordinate = action.payload.activeCoordinate;
-    },
-    setMouseOverAxisIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.axisInteraction.hover.active = true;
-      state.keyboardInteraction.active = false;
-      state.axisInteraction.hover.index = action.payload.activeIndex;
-      state.axisInteraction.hover.dataKey = action.payload.activeDataKey;
-      state.axisInteraction.hover.coordinate = action.payload.activeCoordinate;
-    },
-    setMouseClickAxisIndex(state, action) {
-      state.syncInteraction.active = false;
-      state.keyboardInteraction.active = false;
-      state.axisInteraction.click.active = true;
-      state.axisInteraction.click.index = action.payload.activeIndex;
-      state.axisInteraction.click.dataKey = action.payload.activeDataKey;
-      state.axisInteraction.click.coordinate = action.payload.activeCoordinate;
-    },
-    setSyncInteraction(state, action) {
-      state.syncInteraction = action.payload;
-    },
-    setKeyboardInteraction(state, action) {
-      state.keyboardInteraction.active = action.payload.active;
-      state.keyboardInteraction.index = action.payload.activeIndex;
-      state.keyboardInteraction.coordinate = action.payload.activeCoordinate;
-    }
-  }
-});
-var {
-  addTooltipEntrySettings,
-  replaceTooltipEntrySettings,
-  removeTooltipEntrySettings,
-  setTooltipSettingsState,
-  setActiveMouseOverItemIndex,
-  mouseLeaveItem,
-  mouseLeaveChart,
-  setActiveClickItemIndex,
-  setMouseOverAxisIndex,
-  setMouseClickAxisIndex,
-  setSyncInteraction,
-  setKeyboardInteraction
-} = tooltipSlice.actions;
-exports.setKeyboardInteraction = setKeyboardInteraction;
-exports.setSyncInteraction = setSyncInteraction;
-exports.setMouseClickAxisIndex = setMouseClickAxisIndex;
-exports.setMouseOverAxisIndex = setMouseOverAxisIndex;
-exports.setActiveClickItemIndex = setActiveClickItemIndex;
-exports.mouseLeaveChart = mouseLeaveChart;
-exports.mouseLeaveItem = mouseLeaveItem;
-exports.setActiveMouseOverItemIndex = setActiveMouseOverItemIndex;
-exports.setTooltipSettingsState = setTooltipSettingsState;
-exports.removeTooltipEntrySettings = removeTooltipEntrySettings;
-exports.replaceTooltipEntrySettings = replaceTooltipEntrySettings;
-exports.addTooltipEntrySettings = addTooltipEntrySettings;
-var tooltipReducer = exports.tooltipReducer = tooltipSlice.reducer;
Index: de_modules/recharts/lib/state/touchEventsMiddleware.js
===================================================================
--- node_modules/recharts/lib/state/touchEventsMiddleware.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.touchEventMiddleware = exports.touchEventAction = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _tooltipSlice = require("./tooltipSlice");
-var _selectActivePropsFromChartPointer = require("./selectors/selectActivePropsFromChartPointer");
-var _getChartPointer = require("../util/getChartPointer");
-var _selectTooltipEventType = require("./selectors/selectTooltipEventType");
-var _Constants = require("../util/Constants");
-var _touchSelectors = require("./selectors/touchSelectors");
-var _tooltipSelectors = require("./selectors/tooltipSelectors");
-var touchEventAction = exports.touchEventAction = (0, _toolkit.createAction)('touchMove');
-var touchEventMiddleware = exports.touchEventMiddleware = (0, _toolkit.createListenerMiddleware)();
-touchEventMiddleware.startListening({
-  actionCreator: touchEventAction,
-  effect: (action, listenerApi) => {
-    var touchEvent = action.payload;
-    if (touchEvent.touches == null || touchEvent.touches.length === 0) {
-      return;
-    }
-    var state = listenerApi.getState();
-    var tooltipEventType = (0, _selectTooltipEventType.selectTooltipEventType)(state, state.tooltip.settings.shared);
-    if (tooltipEventType === 'axis') {
-      var touch = touchEvent.touches[0];
-      if (touch == null) {
-        return;
-      }
-      var activeProps = (0, _selectActivePropsFromChartPointer.selectActivePropsFromChartPointer)(state, (0, _getChartPointer.getChartPointer)({
-        clientX: touch.clientX,
-        clientY: touch.clientY,
-        currentTarget: touchEvent.currentTarget
-      }));
-      if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {
-        listenerApi.dispatch((0, _tooltipSlice.setMouseOverAxisIndex)({
-          activeIndex: activeProps.activeIndex,
-          activeDataKey: undefined,
-          activeCoordinate: activeProps.activeCoordinate
-        }));
-      }
-    } else if (tooltipEventType === 'item') {
-      var _target$getAttribute;
-      var _touch = touchEvent.touches[0];
-      if (document.elementFromPoint == null || _touch == null) {
-        return;
-      }
-      var target = document.elementFromPoint(_touch.clientX, _touch.clientY);
-      if (!target || !target.getAttribute) {
-        return;
-      }
-      var itemIndex = target.getAttribute(_Constants.DATA_ITEM_INDEX_ATTRIBUTE_NAME);
-      var graphicalItemId = (_target$getAttribute = target.getAttribute(_Constants.DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;
-      var settings = (0, _tooltipSelectors.selectAllGraphicalItemsSettings)(state).find(item => item.id === graphicalItemId);
-      if (itemIndex == null || settings == null || graphicalItemId == null) {
-        return;
-      }
-      var {
-        dataKey
-      } = settings;
-      var coordinate = (0, _touchSelectors.selectTooltipCoordinate)(state, itemIndex, graphicalItemId);
-      listenerApi.dispatch((0, _tooltipSlice.setActiveMouseOverItemIndex)({
-        activeDataKey: dataKey,
-        activeIndex: itemIndex,
-        activeCoordinate: coordinate,
-        activeGraphicalItemId: graphicalItemId
-      }));
-    }
-  }
-});
Index: de_modules/recharts/lib/state/types/AreaSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/AreaSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/BarSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/BarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/LineSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/LineSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/PieSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/PieSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/RadarSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/RadarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/RadialBarSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/RadialBarSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/ScatterSettings.js
===================================================================
--- node_modules/recharts/lib/state/types/ScatterSettings.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/state/types/StackedGraphicalItem.js
===================================================================
--- node_modules/recharts/lib/state/types/StackedGraphicalItem.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isStacked = isStacked;
-/**
- * Some graphical items allow data stacking. The stacks are optional,
- * so all props here are optional too.
- */
-
-/**
- * Some graphical items allow data stacking.
- * This interface is used to represent the items that are stacked
- * because the user has provided the stackId and dataKey properties.
- */
-
-function isStacked(graphicalItem) {
-  return 'stackId' in graphicalItem && graphicalItem.stackId != null && graphicalItem.dataKey != null;
-}
Index: de_modules/recharts/lib/state/zIndexSlice.js
===================================================================
--- node_modules/recharts/lib/state/zIndexSlice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.zIndexReducer = exports.unregisterZIndexPortalElement = exports.unregisterZIndexPortal = exports.registerZIndexPortalElement = exports.registerZIndexPortal = void 0;
-var _toolkit = require("@reduxjs/toolkit");
-var _immer = require("immer");
-var _DefaultZIndexes = require("../zIndex/DefaultZIndexes");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
- * This slice contains a registry of z-index values for various components.
- * The state is a map from z-index numbers to element references.
- */
-var seed = {};
-var initialState = {
-  zIndexMap: Object.values(_DefaultZIndexes.DefaultZIndexes).reduce((acc, current) => _objectSpread(_objectSpread({}, acc), {}, {
-    [current]: {
-      element: undefined,
-      panoramaElement: undefined,
-      consumers: 0
-    }
-  }), seed)
-};
-var defaultZIndexSet = new Set(Object.values(_DefaultZIndexes.DefaultZIndexes));
-function isDefaultZIndex(zIndex) {
-  return defaultZIndexSet.has(zIndex);
-}
-var zIndexSlice = (0, _toolkit.createSlice)({
-  name: 'zIndex',
-  initialState,
-  reducers: {
-    registerZIndexPortal: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          state.zIndexMap[zIndex].consumers += 1;
-        } else {
-          state.zIndexMap[zIndex] = {
-            consumers: 1,
-            element: undefined,
-            panoramaElement: undefined
-          };
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    unregisterZIndexPortal: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          state.zIndexMap[zIndex].consumers -= 1;
-          /*
-           * Garbage collect unused z-index entries, except for default z-indexes.
-           * Default z-indexes are always rendered, regardless of whether there are consumers or not.
-           * And because of that, even if we delete this entry, the ZIndexPortal provider will still be rendered
-           * and React is not going to re-create it, and it won't re-register the element ID.
-           * So let's not delete default z-index entries.
-           */
-          if (state.zIndexMap[zIndex].consumers <= 0 && !isDefaultZIndex(zIndex)) {
-            delete state.zIndexMap[zIndex];
-          }
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    registerZIndexPortalElement: {
-      reducer: (state, action) => {
-        var {
-          zIndex,
-          element,
-          isPanorama
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          if (isPanorama) {
-            state.zIndexMap[zIndex].panoramaElement = (0, _immer.castDraft)(element);
-          } else {
-            state.zIndexMap[zIndex].element = (0, _immer.castDraft)(element);
-          }
-        } else {
-          state.zIndexMap[zIndex] = {
-            consumers: 0,
-            element: isPanorama ? undefined : (0, _immer.castDraft)(element),
-            panoramaElement: isPanorama ? (0, _immer.castDraft)(element) : undefined
-          };
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    },
-    unregisterZIndexPortalElement: {
-      reducer: (state, action) => {
-        var {
-          zIndex
-        } = action.payload;
-        if (state.zIndexMap[zIndex]) {
-          if (action.payload.isPanorama) {
-            state.zIndexMap[zIndex].panoramaElement = undefined;
-          } else {
-            state.zIndexMap[zIndex].element = undefined;
-          }
-        }
-      },
-      prepare: (0, _toolkit.prepareAutoBatched)()
-    }
-  }
-});
-var {
-  registerZIndexPortal,
-  unregisterZIndexPortal,
-  registerZIndexPortalElement,
-  unregisterZIndexPortalElement
-} = zIndexSlice.actions;
-exports.unregisterZIndexPortalElement = unregisterZIndexPortalElement;
-exports.registerZIndexPortalElement = registerZIndexPortalElement;
-exports.unregisterZIndexPortal = unregisterZIndexPortal;
-exports.registerZIndexPortal = registerZIndexPortal;
-var zIndexReducer = exports.zIndexReducer = zIndexSlice.reducer;
Index: de_modules/recharts/lib/synchronisation/syncSelectors.js
===================================================================
--- node_modules/recharts/lib/synchronisation/syncSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectSynchronisedTooltipState = selectSynchronisedTooltipState;
-function selectSynchronisedTooltipState(state) {
-  return state.tooltip.syncInteraction;
-}
Index: de_modules/recharts/lib/synchronisation/types.js
===================================================================
--- node_modules/recharts/lib/synchronisation/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/synchronisation/useChartSynchronisation.js
===================================================================
--- node_modules/recharts/lib/synchronisation/useChartSynchronisation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,261 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useBrushChartSynchronisation = useBrushChartSynchronisation;
-exports.useSynchronisedEventsFromOtherCharts = useSynchronisedEventsFromOtherCharts;
-exports.useTooltipChartSynchronisation = useTooltipChartSynchronisation;
-var _react = require("react");
-var _hooks = require("../state/hooks");
-var _rootPropsSelectors = require("../state/selectors/rootPropsSelectors");
-var _Events = require("../util/Events");
-var _optionsSlice = require("../state/optionsSlice");
-var _tooltipSlice = require("../state/tooltipSlice");
-var _selectors = require("../state/selectors/selectors");
-var _tooltipSelectors = require("../state/selectors/tooltipSelectors");
-var _syncSelectors = require("./syncSelectors");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _chartDataSlice = require("../state/chartDataSlice");
-var _DataUtils = require("../util/DataUtils");
-var _excluded = ["x", "y"];
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function useTooltipSyncEventsListener() {
-  var mySyncId = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncId);
-  var myEventEmitter = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectEventEmitter);
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var syncMethod = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncMethod);
-  var tooltipTicks = (0, _hooks.useAppSelector)(_tooltipSelectors.selectTooltipAxisTicks);
-  var layout = (0, _chartLayoutContext.useChartLayout)();
-  var viewBox = (0, _chartLayoutContext.useViewBox)();
-  var className = (0, _hooks.useAppSelector)(state => state.rootProps.className);
-  (0, _react.useEffect)(() => {
-    if (mySyncId == null) {
-      // This chart is not synchronised with any other chart so we don't need to listen for any events.
-      return _DataUtils.noop;
-    }
-    var listener = (incomingSyncId, action, emitter) => {
-      if (myEventEmitter === emitter) {
-        // We don't want to dispatch actions that we sent ourselves.
-        return;
-      }
-      if (mySyncId !== incomingSyncId) {
-        // This event is not for this chart
-        return;
-      }
-      if (syncMethod === 'index') {
-        var _action$payload;
-        if (viewBox && action !== null && action !== void 0 && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.coordinate && action.payload.sourceViewBox) {
-          var _action$payload$coord = action.payload.coordinate,
-            {
-              x: _x,
-              y: _y
-            } = _action$payload$coord,
-            otherCoordinateProps = _objectWithoutProperties(_action$payload$coord, _excluded);
-          var {
-            x: sourceX,
-            y: sourceY,
-            width: sourceWidth,
-            height: sourceHeight
-          } = action.payload.sourceViewBox;
-          var scaledCoordinate = _objectSpread(_objectSpread({}, otherCoordinateProps), {}, {
-            x: viewBox.x + (sourceWidth ? (_x - sourceX) / sourceWidth : 0) * viewBox.width,
-            y: viewBox.y + (sourceHeight ? (_y - sourceY) / sourceHeight : 0) * viewBox.height
-          });
-          dispatch(_objectSpread(_objectSpread({}, action), {}, {
-            payload: _objectSpread(_objectSpread({}, action.payload), {}, {
-              coordinate: scaledCoordinate
-            })
-          }));
-        } else {
-          dispatch(action);
-        }
-        return;
-      }
-      if (tooltipTicks == null) {
-        // for the other two sync methods, we need the ticks to be available
-        return;
-      }
-      var activeTick;
-      if (typeof syncMethod === 'function') {
-        /*
-         * This is what the data shape in 2.x CategoricalChartState used to look like.
-         * In 3.x we store things differently but let's try to keep the old shape for compatibility.
-         */
-        var syncMethodParam = {
-          activeTooltipIndex: action.payload.index == null ? undefined : Number(action.payload.index),
-          isTooltipActive: action.payload.active,
-          activeIndex: action.payload.index == null ? undefined : Number(action.payload.index),
-          activeLabel: action.payload.label,
-          activeDataKey: action.payload.dataKey,
-          activeCoordinate: action.payload.coordinate
-        };
-        // Call a callback function. If there is an application specific algorithm
-        var activeTooltipIndex = syncMethod(tooltipTicks, syncMethodParam);
-        activeTick = tooltipTicks[activeTooltipIndex];
-      } else if (syncMethod === 'value') {
-        // labels are always strings, tick.value might be a string or a number, depending on axis type
-        activeTick = tooltipTicks.find(tick => String(tick.value) === action.payload.label);
-      }
-      var {
-        coordinate
-      } = action.payload;
-      if (activeTick == null || action.payload.active === false || coordinate == null || viewBox == null) {
-        dispatch((0, _tooltipSlice.setSyncInteraction)({
-          active: false,
-          coordinate: undefined,
-          dataKey: undefined,
-          index: null,
-          label: undefined,
-          sourceViewBox: undefined,
-          graphicalItemId: undefined
-        }));
-        return;
-      }
-      var {
-        x,
-        y
-      } = coordinate;
-      var validateChartX = Math.min(x, viewBox.x + viewBox.width);
-      var validateChartY = Math.min(y, viewBox.y + viewBox.height);
-      var activeCoordinate = {
-        x: layout === 'horizontal' ? activeTick.coordinate : validateChartX,
-        y: layout === 'horizontal' ? validateChartY : activeTick.coordinate
-      };
-      var syncAction = (0, _tooltipSlice.setSyncInteraction)({
-        active: action.payload.active,
-        coordinate: activeCoordinate,
-        dataKey: action.payload.dataKey,
-        index: String(activeTick.index),
-        label: action.payload.label,
-        sourceViewBox: action.payload.sourceViewBox,
-        graphicalItemId: action.payload.graphicalItemId
-      });
-      dispatch(syncAction);
-    };
-    _Events.eventCenter.on(_Events.TOOLTIP_SYNC_EVENT, listener);
-    return () => {
-      _Events.eventCenter.off(_Events.TOOLTIP_SYNC_EVENT, listener);
-    };
-  }, [className, dispatch, myEventEmitter, mySyncId, syncMethod, tooltipTicks, layout, viewBox]);
-}
-function useBrushSyncEventsListener() {
-  var mySyncId = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncId);
-  var myEventEmitter = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectEventEmitter);
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    if (mySyncId == null) {
-      // This chart is not synchronised with any other chart so we don't need to listen for any events.
-      return _DataUtils.noop;
-    }
-    var listener = (incomingSyncId, action, emitter) => {
-      if (myEventEmitter === emitter) {
-        // We don't want to dispatch actions that we sent ourselves.
-        return;
-      }
-      if (mySyncId === incomingSyncId) {
-        dispatch((0, _chartDataSlice.setDataStartEndIndexes)(action));
-      }
-    };
-    _Events.eventCenter.on(_Events.BRUSH_SYNC_EVENT, listener);
-    return () => {
-      _Events.eventCenter.off(_Events.BRUSH_SYNC_EVENT, listener);
-    };
-  }, [dispatch, myEventEmitter, mySyncId]);
-}
-
-/**
- * Will receive synchronisation events from other charts.
- *
- * Reads syncMethod from state and decides how to synchronise the tooltip based on that.
- *
- * @returns void
- */
-function useSynchronisedEventsFromOtherCharts() {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useEffect)(() => {
-    dispatch((0, _optionsSlice.createEventEmitter)());
-  }, [dispatch]);
-  useTooltipSyncEventsListener();
-  useBrushSyncEventsListener();
-}
-
-/**
- * Will send events to other charts.
- * If syncId is undefined, no events will be sent.
- *
- * This ignores the syncMethod, because that is set and computed on the receiving end.
- *
- * @param tooltipEventType from Tooltip
- * @param trigger from Tooltip
- * @param activeCoordinate from state
- * @param activeLabel from state
- * @param activeIndex from state
- * @param isTooltipActive from state
- * @returns void
- */
-function useTooltipChartSynchronisation(tooltipEventType, trigger, activeCoordinate, activeLabel, activeIndex, isTooltipActive) {
-  var activeDataKey = (0, _hooks.useAppSelector)(state => (0, _selectors.selectTooltipDataKey)(state, tooltipEventType, trigger));
-  var eventEmitterSymbol = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectEventEmitter);
-  var syncId = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncId);
-  var syncMethod = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncMethod);
-  var tooltipState = (0, _hooks.useAppSelector)(_syncSelectors.selectSynchronisedTooltipState);
-  var isReceivingSynchronisation = tooltipState === null || tooltipState === void 0 ? void 0 : tooltipState.active;
-  var viewBox = (0, _chartLayoutContext.useViewBox)();
-  (0, _react.useEffect)(() => {
-    if (isReceivingSynchronisation) {
-      /*
-       * This chart currently has active tooltip, synchronised from another chart.
-       * Let's not send any outgoing synchronisation events while that's happening
-       * to avoid infinite loops.
-       */
-      return;
-    }
-    if (syncId == null) {
-      /*
-       * syncId is not set, means that this chart is not synchronised with any other chart,
-       * means we don't need to send synchronisation events
-       */
-      return;
-    }
-    if (eventEmitterSymbol == null) {
-      /*
-       * When using Recharts internal hooks and selectors outside charts context,
-       * these properties will be undefined. Let's return silently instead of throwing an error.
-       */
-      return;
-    }
-    var syncAction = (0, _tooltipSlice.setSyncInteraction)({
-      active: isTooltipActive,
-      coordinate: activeCoordinate,
-      dataKey: activeDataKey,
-      index: activeIndex,
-      label: typeof activeLabel === 'number' ? String(activeLabel) : activeLabel,
-      sourceViewBox: viewBox,
-      graphicalItemId: undefined
-    });
-    _Events.eventCenter.emit(_Events.TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);
-  }, [isReceivingSynchronisation, activeCoordinate, activeDataKey, activeIndex, activeLabel, eventEmitterSymbol, syncId, syncMethod, isTooltipActive, viewBox]);
-}
-function useBrushChartSynchronisation() {
-  var syncId = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectSyncId);
-  var eventEmitterSymbol = (0, _hooks.useAppSelector)(_rootPropsSelectors.selectEventEmitter);
-  var brushStartIndex = (0, _hooks.useAppSelector)(state => state.chartData.dataStartIndex);
-  var brushEndIndex = (0, _hooks.useAppSelector)(state => state.chartData.dataEndIndex);
-  (0, _react.useEffect)(() => {
-    if (syncId == null || brushStartIndex == null || brushEndIndex == null || eventEmitterSymbol == null) {
-      return;
-    }
-    var syncAction = {
-      startIndex: brushStartIndex,
-      endIndex: brushEndIndex
-    };
-    _Events.eventCenter.emit(_Events.BRUSH_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);
-  }, [brushEndIndex, brushStartIndex, eventEmitterSymbol, syncId]);
-}
Index: de_modules/recharts/lib/types.js
===================================================================
--- node_modules/recharts/lib/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/util/ActiveShapeUtils.js
===================================================================
--- node_modules/recharts/lib/util/ActiveShapeUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,108 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Shape = Shape;
-exports.getPropsFromShapeOption = getPropsFromShapeOption;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _isPlainObject = _interopRequireDefault(require("es-toolkit/compat/isPlainObject"));
-var _Rectangle = require("../shape/Rectangle");
-var _Trapezoid = require("../shape/Trapezoid");
-var _Sector = require("../shape/Sector");
-var _Layer = require("../container/Layer");
-var _Symbols = require("../shape/Symbols");
-var _Curve = require("../shape/Curve");
-var _excluded = ["option", "shapeType", "activeClassName"];
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * This is an abstraction for rendering a user defined prop for a customized shape in several forms.
- *
- * <Shape /> is the root and will handle taking in:
- *  - an object of svg properties
- *  - a boolean
- *  - a render prop(inline function that returns jsx)
- *  - a React element
- *
- * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component
- * to the value of props.shapeType that is passed to the root.
- *
- */
-
-function defaultPropTransformer(option, props) {
-  return _objectSpread(_objectSpread({}, props), option);
-}
-function isSymbolsProps(shapeType, _elementProps) {
-  return shapeType === 'symbols';
-}
-function ShapeSelector(_ref) {
-  var {
-    shapeType,
-    elementProps
-  } = _ref;
-  switch (shapeType) {
-    case 'rectangle':
-      return /*#__PURE__*/React.createElement(_Rectangle.Rectangle, elementProps);
-    case 'trapezoid':
-      return /*#__PURE__*/React.createElement(_Trapezoid.Trapezoid, elementProps);
-    case 'sector':
-      return /*#__PURE__*/React.createElement(_Sector.Sector, elementProps);
-    case 'symbols':
-      if (isSymbolsProps(shapeType, elementProps)) {
-        return /*#__PURE__*/React.createElement(_Symbols.Symbols, elementProps);
-      }
-      break;
-    case 'curve':
-      return /*#__PURE__*/React.createElement(_Curve.Curve, elementProps);
-    default:
-      return null;
-  }
-}
-function getPropsFromShapeOption(option) {
-  if (/*#__PURE__*/(0, _react.isValidElement)(option)) {
-    return option.props;
-  }
-  return option;
-}
-function Shape(_ref2) {
-  var {
-      option,
-      shapeType,
-      activeClassName = 'recharts-active-shape'
-    } = _ref2,
-    props = _objectWithoutProperties(_ref2, _excluded);
-  var shape;
-  if (/*#__PURE__*/(0, _react.isValidElement)(option)) {
-    // @ts-expect-error we can't know the type of cloned element props
-    shape = /*#__PURE__*/(0, _react.cloneElement)(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));
-  } else if (typeof option === 'function') {
-    shape = option(props, props.index);
-  } else if ((0, _isPlainObject.default)(option) && typeof option !== 'boolean') {
-    var nextProps = defaultPropTransformer(option, props);
-    shape = /*#__PURE__*/React.createElement(ShapeSelector, {
-      shapeType: shapeType,
-      elementProps: nextProps
-    });
-  } else {
-    var elementProps = props;
-    shape = /*#__PURE__*/React.createElement(ShapeSelector, {
-      shapeType: shapeType,
-      elementProps: elementProps
-    });
-  }
-  if (props.isActive) {
-    return /*#__PURE__*/React.createElement(_Layer.Layer, {
-      className: activeClassName
-    }, shape);
-  }
-  return shape;
-}
Index: de_modules/recharts/lib/util/BarUtils.js
===================================================================
--- node_modules/recharts/lib/util/BarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.BarRectangle = BarRectangle;
-exports.minPointSizeCallback = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _tinyInvariant = _interopRequireDefault(require("tiny-invariant"));
-var _ActiveShapeUtils = require("./ActiveShapeUtils");
-var _DataUtils = require("./DataUtils");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function BarRectangle(props) {
-  return /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-    shapeType: "rectangle",
-    activeClassName: "recharts-active-bar"
-  }, props));
-}
-/**
- * Safely gets minPointSize from the minPointSize prop if it is a function
- * @param minPointSize minPointSize as passed to the Bar component
- * @param defaultValue default minPointSize
- * @returns minPointSize
- */
-var minPointSizeCallback = exports.minPointSizeCallback = function minPointSizeCallback(minPointSize) {
-  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  return (value, index) => {
-    if ((0, _DataUtils.isNumber)(minPointSize)) return minPointSize;
-    var isValueNumberOrNil = (0, _DataUtils.isNumber)(value) || (0, _DataUtils.isNullish)(value);
-    if (isValueNumberOrNil) {
-      return minPointSize(value, index);
-    }
-    !isValueNumberOrNil ? true ? (0, _tinyInvariant.default)(false, "minPointSize callback function received a value with type of ".concat(typeof value, ". Currently only numbers or null/undefined are supported.")) : (0, _tinyInvariant.default)(false) : void 0;
-    return defaultValue;
-  };
-};
Index: de_modules/recharts/lib/util/CartesianUtils.js
===================================================================
--- node_modules/recharts/lib/util/CartesianUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getAngledRectangleWidth = void 0;
-exports.normalizeAngle = normalizeAngle;
-exports.rectWithPoints = exports.rectWithCoords = void 0;
-var rectWithPoints = (_ref, _ref2) => {
-  var {
-    x: x1,
-    y: y1
-  } = _ref;
-  var {
-    x: x2,
-    y: y2
-  } = _ref2;
-  return {
-    x: Math.min(x1, x2),
-    y: Math.min(y1, y2),
-    width: Math.abs(x2 - x1),
-    height: Math.abs(y2 - y1)
-  };
-};
-
-/**
- * Compute the x, y, width, and height of a box from two reference points.
- * @param  {Object} coords     x1, x2, y1, and y2
- * @return {Object} object
- */
-exports.rectWithPoints = rectWithPoints;
-var rectWithCoords = _ref3 => {
-  var {
-    x1,
-    y1,
-    x2,
-    y2
-  } = _ref3;
-  return rectWithPoints({
-    x: x1,
-    y: y1
-  }, {
-    x: x2,
-    y: y2
-  });
-};
-
-/** Normalizes the angle so that 0 <= angle < 180.
- * @param {number} angle Angle in degrees.
- * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */
-exports.rectWithCoords = rectWithCoords;
-function normalizeAngle(angle) {
-  return (angle % 180 + 180) % 180;
-}
-
-/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- * @param {Object} size Width and height of the text in a horizontal position.
- * @param {number} angle Angle in degrees in which the text is displayed.
- * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- */
-var getAngledRectangleWidth = exports.getAngledRectangleWidth = function getAngledRectangleWidth(_ref4) {
-  var {
-    width,
-    height
-  } = _ref4;
-  var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  // Ensure angle is >= 0 && < 180
-  var normalizedAngle = normalizeAngle(angle);
-  var angleRadians = normalizedAngle * Math.PI / 180;
-
-  /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled
-   * width. This threshold defines when each formula should kick in. */
-  var angleThreshold = Math.atan(height / width);
-  var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);
-  return Math.abs(angledWidth);
-};
Index: de_modules/recharts/lib/util/ChartUtils.js
===================================================================
--- node_modules/recharts/lib/util/ChartUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,548 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getCateCoordinateOfBar = exports.getBaseValueOfBar = exports.getBandSizeOfAxis = exports.calculatePolarTooltipPos = exports.calculateCartesianTooltipPos = exports.appendOffsetOfLegend = exports.MIN_VALUE_REG = exports.MAX_VALUE_REG = void 0;
-exports.getCateCoordinateOfLine = getCateCoordinateOfLine;
-exports.getDomainOfStackGroups = exports.getCoordinatesOfGrid = void 0;
-exports.getNormalizedStackId = getNormalizedStackId;
-exports.getTicksOfAxis = exports.getStackedData = void 0;
-exports.getTooltipEntry = getTooltipEntry;
-exports.getTooltipNameProp = getTooltipNameProp;
-exports.getValueByDataKey = getValueByDataKey;
-exports.truncateByDomain = exports.offsetSign = exports.offsetPositive = exports.isCategoricalAxis = void 0;
-var _sortBy = _interopRequireDefault(require("es-toolkit/compat/sortBy"));
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _d3Shape = require("victory-vendor/d3-shape");
-var _DataUtils = require("./DataUtils");
-var _getSliced = require("./getSliced");
-var _isWellBehavedNumber = require("./isWellBehavedNumber");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-function getValueByDataKey(obj, dataKey, defaultValue) {
-  if ((0, _DataUtils.isNullish)(obj) || (0, _DataUtils.isNullish)(dataKey)) {
-    return defaultValue;
-  }
-  if ((0, _DataUtils.isNumOrStr)(dataKey)) {
-    return (0, _get.default)(obj, dataKey, defaultValue);
-  }
-  if (typeof dataKey === 'function') {
-    return dataKey(obj);
-  }
-  return defaultValue;
-}
-var appendOffsetOfLegend = (offset, legendSettings, legendSize) => {
-  if (legendSettings && legendSize) {
-    var {
-      width: boxWidth,
-      height: boxHeight
-    } = legendSize;
-    var {
-      align,
-      verticalAlign,
-      layout
-    } = legendSettings;
-    if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && (0, _DataUtils.isNumber)(offset[align])) {
-      return _objectSpread(_objectSpread({}, offset), {}, {
-        [align]: offset[align] + (boxWidth || 0)
-      });
-    }
-    if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && (0, _DataUtils.isNumber)(offset[verticalAlign])) {
-      return _objectSpread(_objectSpread({}, offset), {}, {
-        [verticalAlign]: offset[verticalAlign] + (boxHeight || 0)
-      });
-    }
-  }
-  return offset;
-};
-exports.appendOffsetOfLegend = appendOffsetOfLegend;
-var isCategoricalAxis = (layout, axisType) => layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';
-
-/**
- * Calculate the Coordinates of grid
- * @param  {Array} ticks           The ticks in axis
- * @param {Number} minValue        The minimum value of axis
- * @param {Number} maxValue        The maximum value of axis
- * @param {boolean} syncWithTicks  Synchronize grid lines with ticks or not
- * @return {Array}                 Coordinates
- */
-exports.isCategoricalAxis = isCategoricalAxis;
-var getCoordinatesOfGrid = (ticks, minValue, maxValue, syncWithTicks) => {
-  if (syncWithTicks) {
-    return ticks.map(entry => entry.coordinate);
-  }
-  var hasMin, hasMax;
-  var values = ticks.map(entry => {
-    if (entry.coordinate === minValue) {
-      hasMin = true;
-    }
-    if (entry.coordinate === maxValue) {
-      hasMax = true;
-    }
-    return entry.coordinate;
-  });
-  if (!hasMin) {
-    values.push(minValue);
-  }
-  if (!hasMax) {
-    values.push(maxValue);
-  }
-  return values;
-};
-exports.getCoordinatesOfGrid = getCoordinatesOfGrid;
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-var getTicksOfAxis = (axis, isGrid, isAll) => {
-  if (!axis) {
-    return null;
-  }
-  var {
-    duplicateDomain,
-    type,
-    range,
-    scale,
-    realScaleType,
-    isCategorical,
-    categoricalDomain,
-    tickCount,
-    ticks,
-    niceTicks,
-    axisType
-  } = axis;
-  if (!scale) {
-    return null;
-  }
-  var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;
-  var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
-  offset = axisType === 'angleAxis' && range && range.length >= 2 ? (0, _DataUtils.mathSign)(range[0] - range[1]) * 2 * offset : offset;
-
-  // The ticks set by user should only affect the ticks adjacent to axis line
-  if (isGrid && (ticks || niceTicks)) {
-    var result = (ticks || niceTicks || []).map((entry, index) => {
-      var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;
-      var scaled = scale.map(scaleContent);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        // If the scaleContent is not a number, the coordinate will be NaN.
-        // That could be the case for example with a PointScale and a string as domain.
-        coordinate: scaled + offset,
-        value: entry,
-        offset,
-        index
-      };
-    }).filter(_DataUtils.isNotNil);
-    return result;
-  }
-
-  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not "auto"
-  if (isCategorical && categoricalDomain) {
-    return categoricalDomain.map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-  if (scale.ticks && !isAll && tickCount != null) {
-    return scale.ticks(tickCount).map((entry, index) => {
-      var scaled = scale.map(entry);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-        return null;
-      }
-      return {
-        coordinate: scaled + offset,
-        value: entry,
-        index,
-        offset
-      };
-    }).filter(_DataUtils.isNotNil);
-  }
-
-  // When axis has duplicated text, serial numbers are used to generate scale
-  return scale.domain().map((entry, index) => {
-    var scaled = scale.map(entry);
-    if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(scaled)) {
-      return null;
-    }
-    return {
-      coordinate: scaled + offset,
-      // @ts-expect-error can't use Date as an index
-      value: duplicateDomain ? duplicateDomain[entry] : entry,
-      index,
-      offset
-    };
-  }).filter(_DataUtils.isNotNil);
-};
-
-/**
- * Both value and domain are tuples of two numbers
- * - but the type stays as array of numbers until we have better support in rest of the app
- * @param value input that will be truncated
- * @param domain boundaries
- * @returns tuple of two numbers
- */
-exports.getTicksOfAxis = getTicksOfAxis;
-var truncateByDomain = (value, domain) => {
-  if (!domain || domain.length !== 2 || !(0, _DataUtils.isNumber)(domain[0]) || !(0, _DataUtils.isNumber)(domain[1])) {
-    return value;
-  }
-  var minValue = Math.min(domain[0], domain[1]);
-  var maxValue = Math.max(domain[0], domain[1]);
-  var result = [value[0], value[1]];
-  if (!(0, _DataUtils.isNumber)(value[0]) || value[0] < minValue) {
-    result[0] = minValue;
-  }
-  if (!(0, _DataUtils.isNumber)(value[1]) || value[1] > maxValue) {
-    result[1] = maxValue;
-  }
-  if (result[0] > maxValue) {
-    result[0] = maxValue;
-  }
-  if (result[1] < minValue) {
-    result[1] = minValue;
-  }
-  return result;
-};
-
-/**
- * Stacks all positive numbers above zero and all negative numbers below zero.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-exports.truncateByDomain = truncateByDomain;
-var offsetSign = series => {
-  var _series$;
-  var n = series.length;
-  if (n <= 0) {
-    return;
-  }
-  var m = (_series$ = series[0]) === null || _series$ === void 0 ? void 0 : _series$.length;
-  if (m == null || m <= 0) {
-    return;
-  }
-  for (var j = 0; j < m; ++j) {
-    var positive = 0;
-    var negative = 0;
-    for (var i = 0; i < n; ++i) {
-      var row = series[i];
-      var col = row === null || row === void 0 ? void 0 : row[j];
-      if (col == null) {
-        continue;
-      }
-      var series1 = col[1];
-      var series0 = col[0];
-      var value = (0, _DataUtils.isNan)(series1) ? series0 : series1;
-      if (value >= 0) {
-        col[0] = positive;
-        positive += value;
-        col[1] = positive;
-      } else {
-        col[0] = negative;
-        negative += value;
-        col[1] = negative;
-      }
-    }
-  }
-};
-
-/**
- * Replaces all negative values with zero when stacking data.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-exports.offsetSign = offsetSign;
-var offsetPositive = series => {
-  var _series$2;
-  var n = series.length;
-  if (n <= 0) {
-    return;
-  }
-  var m = (_series$2 = series[0]) === null || _series$2 === void 0 ? void 0 : _series$2.length;
-  if (m == null || m <= 0) {
-    return;
-  }
-  for (var j = 0; j < m; ++j) {
-    var positive = 0;
-    for (var i = 0; i < n; ++i) {
-      var row = series[i];
-      var col = row === null || row === void 0 ? void 0 : row[j];
-      if (col == null) {
-        continue;
-      }
-      var value = (0, _DataUtils.isNan)(col[1]) ? col[0] : col[1];
-      if (value >= 0) {
-        col[0] = positive;
-        positive += value;
-        col[1] = positive;
-      } else {
-        col[0] = 0;
-        col[1] = 0;
-      }
-    }
-  }
-};
-
-/**
- * Function type to compute offset for stacked data.
- *
- * d3-shape has something fishy going on with its types.
- * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.
- * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.
- * The same I can see in the source code itself:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- * That one unfortunately has no types but we can tell it passes three-dimensional array.
- *
- * Which leads me to believe that definitelytyped is wrong on this one.
- * There's open discussion on this topic without much attention:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- */
-exports.offsetPositive = offsetPositive;
-var STACK_OFFSET_MAP = {
-  sign: offsetSign,
-  // @ts-expect-error definitelytyped types are incorrect
-  expand: _d3Shape.stackOffsetExpand,
-  // @ts-expect-error definitelytyped types are incorrect
-  none: _d3Shape.stackOffsetNone,
-  // @ts-expect-error definitelytyped types are incorrect
-  silhouette: _d3Shape.stackOffsetSilhouette,
-  // @ts-expect-error definitelytyped types are incorrect
-  wiggle: _d3Shape.stackOffsetWiggle,
-  positive: offsetPositive
-};
-var getStackedData = (data, dataKeys, offsetType) => {
-  var _STACK_OFFSET_MAP$off;
-  var offsetAccessor = (_STACK_OFFSET_MAP$off = STACK_OFFSET_MAP[offsetType]) !== null && _STACK_OFFSET_MAP$off !== void 0 ? _STACK_OFFSET_MAP$off : _d3Shape.stackOffsetNone;
-  var stack = (0, _d3Shape.stack)().keys(dataKeys).value((d, key) => Number(getValueByDataKey(d, key, 0))).order(_d3Shape.stackOrderNone)
-  // @ts-expect-error definitelytyped types are incorrect
-  .offset(offsetAccessor);
-  var result = stack(data);
-
-  // Post-process ranged data: if value is an array of two numbers, use them directly without stacking
-  result.forEach((series, seriesIndex) => {
-    series.forEach((point, pointIndex) => {
-      var value = getValueByDataKey(data[pointIndex], dataKeys[seriesIndex], 0);
-      if (Array.isArray(value) && value.length === 2 && (0, _DataUtils.isNumber)(value[0]) && (0, _DataUtils.isNumber)(value[1])) {
-        // eslint-disable-next-line prefer-destructuring,no-param-reassign
-        point[0] = value[0];
-        // eslint-disable-next-line prefer-destructuring,no-param-reassign
-        point[1] = value[1];
-      }
-    });
-  });
-  return result;
-};
-
-/**
- * Externally, we accept both strings and numbers as stack IDs
- * @inline
- */
-
-/**
- * Stack IDs in the external props allow numbers; but internally we use it as an object key
- * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks
- * so let's just force a string.
- */
-exports.getStackedData = getStackedData;
-function getNormalizedStackId(publicStackId) {
-  return publicStackId == null ? undefined : String(publicStackId);
-}
-function getCateCoordinateOfLine(_ref) {
-  var {
-    axis,
-    ticks,
-    bandSize,
-    entry,
-    index,
-    dataKey
-  } = _ref;
-  if (axis.type === 'category') {
-    // find coordinate of category axis by the value of category
-    // @ts-expect-error why does this use direct object access instead of getValueByDataKey?
-    if (!axis.allowDuplicatedCategory && axis.dataKey && !(0, _DataUtils.isNullish)(entry[axis.dataKey])) {
-      // @ts-expect-error why does this use direct object access instead of getValueByDataKey?
-      var matchedTick = (0, _DataUtils.findEntryInArray)(ticks, 'value', entry[axis.dataKey]);
-      if (matchedTick) {
-        return matchedTick.coordinate + bandSize / 2;
-      }
-    }
-    return ticks !== null && ticks !== void 0 && ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;
-  }
-  var value = getValueByDataKey(entry, !(0, _DataUtils.isNullish)(dataKey) ? dataKey : axis.dataKey);
-  var scaled = axis.scale.map(value);
-  if (!(0, _DataUtils.isNumber)(scaled)) {
-    return null;
-  }
-  return scaled;
-}
-var getCateCoordinateOfBar = _ref2 => {
-  var {
-    axis,
-    ticks,
-    offset,
-    bandSize,
-    entry,
-    index
-  } = _ref2;
-  if (axis.type === 'category') {
-    return ticks[index] ? ticks[index].coordinate + offset : null;
-  }
-  // @ts-expect-error getValueByDataKey does not validate the output type
-  var value = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);
-  if ((0, _DataUtils.isNullish)(value)) {
-    return null;
-  }
-  var scaled = axis.scale.map(value);
-  if (!(0, _DataUtils.isNumber)(scaled)) {
-    return null;
-  }
-  return scaled - bandSize / 2 + offset;
-};
-exports.getCateCoordinateOfBar = getCateCoordinateOfBar;
-var getBaseValueOfBar = _ref3 => {
-  var {
-    numericAxis
-  } = _ref3;
-  var domain = numericAxis.scale.domain();
-  if (numericAxis.type === 'number') {
-    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript
-    var minValue = Math.min(domain[0], domain[1]);
-    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript
-    var maxValue = Math.max(domain[0], domain[1]);
-    if (minValue <= 0 && maxValue >= 0) {
-      return 0;
-    }
-    if (maxValue < 0) {
-      return maxValue;
-    }
-    return minValue;
-  }
-  return domain[0];
-};
-exports.getBaseValueOfBar = getBaseValueOfBar;
-var getDomainOfSingle = data => {
-  var flat = data.flat(2).filter(_DataUtils.isNumber);
-  return [Math.min(...flat), Math.max(...flat)];
-};
-var makeDomainFinite = domain => {
-  return [domain[0] === Infinity ? 0 : domain[0], domain[1] === -Infinity ? 0 : domain[1]];
-};
-var getDomainOfStackGroups = (stackGroups, startIndex, endIndex) => {
-  if (stackGroups == null) {
-    return undefined;
-  }
-  return makeDomainFinite(Object.keys(stackGroups).reduce((result, stackId) => {
-    var group = stackGroups[stackId];
-    if (!group) {
-      return result;
-    }
-    var {
-      stackedData
-    } = group;
-    var domain = stackedData.reduce((res, entry) => {
-      var sliced = (0, _getSliced.getSliced)(entry, startIndex, endIndex);
-      var s = getDomainOfSingle(sliced);
-      if (!(0, _isWellBehavedNumber.isWellBehavedNumber)(s[0]) || !(0, _isWellBehavedNumber.isWellBehavedNumber)(s[1])) {
-        return res;
-      }
-      return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];
-    }, [Infinity, -Infinity]);
-    return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];
-  }, [Infinity, -Infinity]));
-};
-exports.getDomainOfStackGroups = getDomainOfStackGroups;
-var MIN_VALUE_REG = exports.MIN_VALUE_REG = /^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
-var MAX_VALUE_REG = exports.MAX_VALUE_REG = /^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
-
-/**
- * Calculate the size between two category
- * @param  {Object} axis  The options of axis
- * @param  {Array}  ticks The ticks of axis
- * @param  {Boolean} isBar if items in axis are bars
- * @return {Number} Size
- */
-var getBandSizeOfAxis = (axis, ticks, isBar) => {
-  if (axis && axis.scale && axis.scale.bandwidth) {
-    var bandWidth = axis.scale.bandwidth();
-    if (!isBar || bandWidth > 0) {
-      return bandWidth;
-    }
-  }
-  if (axis && ticks && ticks.length >= 2) {
-    var orderedTicks = (0, _sortBy.default)(ticks, o => o.coordinate);
-    var bandSize = Infinity;
-    for (var i = 1, len = orderedTicks.length; i < len; i++) {
-      var cur = orderedTicks[i];
-      var prev = orderedTicks[i - 1];
-      bandSize = Math.min(((cur === null || cur === void 0 ? void 0 : cur.coordinate) || 0) - ((prev === null || prev === void 0 ? void 0 : prev.coordinate) || 0), bandSize);
-    }
-    return bandSize === Infinity ? 0 : bandSize;
-  }
-  return isBar ? undefined : 0;
-};
-exports.getBandSizeOfAxis = getBandSizeOfAxis;
-function getTooltipEntry(_ref4) {
-  var {
-    tooltipEntrySettings,
-    dataKey,
-    payload,
-    value,
-    name
-  } = _ref4;
-  return _objectSpread(_objectSpread({}, tooltipEntrySettings), {}, {
-    dataKey,
-    payload,
-    value,
-    name
-  });
-}
-function getTooltipNameProp(nameFromItem, dataKey) {
-  if (nameFromItem) {
-    return String(nameFromItem);
-  }
-  if (typeof dataKey === 'string') {
-    return dataKey;
-  }
-  return undefined;
-}
-var calculateCartesianTooltipPos = (coordinate, layout) => {
-  if (layout === 'horizontal') {
-    return coordinate.chartX;
-  }
-  if (layout === 'vertical') {
-    return coordinate.chartY;
-  }
-  return undefined;
-};
-exports.calculateCartesianTooltipPos = calculateCartesianTooltipPos;
-var calculatePolarTooltipPos = (rangeObj, layout) => {
-  if (layout === 'centric') {
-    return rangeObj.angle;
-  }
-  return rangeObj.radius;
-};
-exports.calculatePolarTooltipPos = calculatePolarTooltipPos;
Index: de_modules/recharts/lib/util/Constants.js
===================================================================
--- node_modules/recharts/lib/util/Constants.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.DEFAULT_Y_AXIS_WIDTH = exports.DATA_ITEM_INDEX_ATTRIBUTE_NAME = exports.DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = exports.COLOR_PANEL = void 0;
-var COLOR_PANEL = exports.COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];
-
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * The index is the position of the element in the data array.
- * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).
- */
-var DATA_ITEM_INDEX_ATTRIBUTE_NAME = exports.DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';
-
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * Unlike dataKey, or name, it is always unique.
- */
-var DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = exports.DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';
-var DEFAULT_Y_AXIS_WIDTH = exports.DEFAULT_Y_AXIS_WIDTH = 60;
Index: de_modules/recharts/lib/util/CssPrefixUtils.js
===================================================================
--- node_modules/recharts/lib/util/CssPrefixUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.generatePrefixStyle = void 0;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];
-var generatePrefixStyle = (name, value) => {
-  if (!name) {
-    return undefined;
-  }
-  var camelName = name.replace(/(\w)/, v => v.toUpperCase());
-  var result = PREFIX_LIST.reduce((res, entry) => _objectSpread(_objectSpread({}, res), {}, {
-    [entry + camelName]: value
-  }), {});
-  result[name] = value;
-  return result;
-};
-exports.generatePrefixStyle = generatePrefixStyle;
Index: de_modules/recharts/lib/util/DOMUtils.js
===================================================================
--- node_modules/recharts/lib/util/DOMUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,137 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getTextMeasurementConfig = exports.getStringSize = exports.getStringCacheStats = exports.configureTextMeasurement = exports.clearStringCache = void 0;
-var _Global = require("./Global");
-var _LRUCache = require("./LRUCache");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var defaultConfig = {
-  cacheSize: 2000,
-  enableCache: true
-};
-var currentConfig = _objectSpread({}, defaultConfig);
-var stringCache = new _LRUCache.LRUCache(currentConfig.cacheSize);
-var SPAN_STYLE = {
-  position: 'absolute',
-  top: '-20000px',
-  left: 0,
-  padding: 0,
-  margin: 0,
-  border: 'none',
-  whiteSpace: 'pre'
-};
-var MEASUREMENT_SPAN_ID = 'recharts_measurement_span';
-function createCacheKey(text, style) {
-  // Simple string concatenation for better performance than JSON.stringify
-  var fontSize = style.fontSize || '';
-  var fontFamily = style.fontFamily || '';
-  var fontWeight = style.fontWeight || '';
-  var fontStyle = style.fontStyle || '';
-  var letterSpacing = style.letterSpacing || '';
-  var textTransform = style.textTransform || '';
-  return "".concat(text, "|").concat(fontSize, "|").concat(fontFamily, "|").concat(fontWeight, "|").concat(fontStyle, "|").concat(letterSpacing, "|").concat(textTransform);
-}
-
-/**
- * Measure text using DOM (accurate but slower)
- * @param text - The text to measure
- * @param style - CSS style properties to apply
- * @returns The size of the text
- */
-var measureTextWithDOM = (text, style) => {
-  try {
-    var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
-    if (!measurementSpan) {
-      measurementSpan = document.createElement('span');
-      measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
-      measurementSpan.setAttribute('aria-hidden', 'true');
-      document.body.appendChild(measurementSpan);
-    }
-
-    // Apply styles directly without unnecessary object creation
-    Object.assign(measurementSpan.style, SPAN_STYLE, style);
-    measurementSpan.textContent = "".concat(text);
-    var rect = measurementSpan.getBoundingClientRect();
-    return {
-      width: rect.width,
-      height: rect.height
-    };
-  } catch (_unused) {
-    return {
-      width: 0,
-      height: 0
-    };
-  }
-};
-var getStringSize = exports.getStringSize = function getStringSize(text) {
-  var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-  if (text === undefined || text === null || _Global.Global.isSsr) {
-    return {
-      width: 0,
-      height: 0
-    };
-  }
-
-  // If caching is disabled, measure directly
-  if (!currentConfig.enableCache) {
-    return measureTextWithDOM(text, style);
-  }
-  var cacheKey = createCacheKey(text, style);
-  var cachedResult = stringCache.get(cacheKey);
-  if (cachedResult) {
-    return cachedResult;
-  }
-
-  // Measure using DOM
-  var result = measureTextWithDOM(text, style);
-
-  // Store in LRU cache
-  stringCache.set(cacheKey, result);
-  return result;
-};
-
-/**
- * Configure text measurement behavior
- * @param config - Partial configuration to apply
- * @returns void
- */
-var configureTextMeasurement = config => {
-  var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);
-  if (newConfig.cacheSize !== currentConfig.cacheSize) {
-    stringCache = new _LRUCache.LRUCache(newConfig.cacheSize);
-  }
-  currentConfig = newConfig;
-};
-
-/**
- * Get current text measurement configuration
- * @returns Current configuration
- */
-exports.configureTextMeasurement = configureTextMeasurement;
-var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);
-
-/**
- * Clear the string size cache. Useful for testing or memory management.
- * @returns void
- */
-exports.getTextMeasurementConfig = getTextMeasurementConfig;
-var clearStringCache = () => {
-  stringCache.clear();
-};
-
-/**
- * Get cache statistics for debugging purposes.
- * @returns Cache statistics including size and max size
- */
-exports.clearStringCache = clearStringCache;
-var getStringCacheStats = () => ({
-  size: stringCache.size(),
-  maxSize: currentConfig.cacheSize
-});
-exports.getStringCacheStats = getStringCacheStats;
Index: de_modules/recharts/lib/util/DataUtils.js
===================================================================
--- node_modules/recharts/lib/util/DataUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,183 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.findEntryInArray = findEntryInArray;
-exports.hasDuplicate = exports.getPercentValue = exports.getLinearRegression = void 0;
-exports.interpolate = interpolate;
-exports.isNan = void 0;
-exports.isNotNil = isNotNil;
-exports.mathSign = exports.isPercent = exports.isNumber = exports.isNumOrStr = exports.isNullish = void 0;
-exports.noop = noop;
-exports.upperFirst = exports.uniqueId = void 0;
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _round = require("./round");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var mathSign = value => {
-  if (value === 0) {
-    return 0;
-  }
-  if (value > 0) {
-    return 1;
-  }
-  return -1;
-};
-exports.mathSign = mathSign;
-var isNan = value => {
-  // eslint-disable-next-line eqeqeq
-  return typeof value == 'number' && value != +value;
-};
-exports.isNan = isNan;
-var isPercent = value => typeof value === 'string' && value.indexOf('%') === value.length - 1;
-exports.isPercent = isPercent;
-var isNumber = value => (typeof value === 'number' || value instanceof Number) && !isNan(value);
-exports.isNumber = isNumber;
-var isNumOrStr = value => isNumber(value) || typeof value === 'string';
-exports.isNumOrStr = isNumOrStr;
-var idCounter = 0;
-var uniqueId = prefix => {
-  var id = ++idCounter;
-  return "".concat(prefix || '').concat(id);
-};
-
-/**
- * Calculates the numeric value represented by a percent string or number, based on a total value.
- *
- * - If `percent` is not a number or string, returns `defaultValue`.
- * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.
- * - If the result is NaN, returns `defaultValue`.
- * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.
- *
- * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').
- *                  If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.
- * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.
- * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.
- * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).
- * @returns The calculated value, or `defaultValue` for invalid input.
- */
-exports.uniqueId = uniqueId;
-var getPercentValue = exports.getPercentValue = function getPercentValue(percent, totalValue) {
-  var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
-  var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
-  if (!isNumber(percent) && typeof percent !== 'string') {
-    return defaultValue;
-  }
-  var value;
-  if (isPercent(percent)) {
-    if (totalValue == null) {
-      return defaultValue;
-    }
-    var index = percent.indexOf('%');
-    value = totalValue * parseFloat(percent.slice(0, index)) / 100;
-  } else {
-    value = +percent;
-  }
-  if (isNan(value)) {
-    value = defaultValue;
-  }
-  if (validate && totalValue != null && value > totalValue) {
-    value = totalValue;
-  }
-  return value;
-};
-var hasDuplicate = ary => {
-  if (!Array.isArray(ary)) {
-    return false;
-  }
-  var len = ary.length;
-  var cache = {};
-  for (var i = 0; i < len; i++) {
-    if (!cache[String(ary[i])]) {
-      cache[String(ary[i])] = true;
-    } else {
-      return true;
-    }
-  }
-  return false;
-};
-exports.hasDuplicate = hasDuplicate;
-function interpolate(start, end, t) {
-  if (isNumber(start) && isNumber(end)) {
-    return (0, _round.round)(start + t * (end - start));
-  }
-  return end;
-}
-function findEntryInArray(ary, specifiedKey, specifiedValue) {
-  if (!ary || !ary.length) {
-    return undefined;
-  }
-  return ary.find(entry => entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : (0, _get.default)(entry, specifiedKey)) === specifiedValue);
-}
-/**
- * The least square linear regression
- * @param {Array} data The array of points
- * @returns {Object} The domain of x, and the parameter of linear function
- */
-var getLinearRegression = data => {
-  var len = data.length;
-  var xsum = 0;
-  var ysum = 0;
-  var xysum = 0;
-  var xxsum = 0;
-  var xmin = Infinity;
-  var xmax = -Infinity;
-  var xcurrent = 0;
-  var ycurrent = 0;
-  for (var i = 0; i < len; i++) {
-    var _data$i, _data$i2;
-    xcurrent = ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.cx) || 0;
-    ycurrent = ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.cy) || 0;
-    xsum += xcurrent;
-    ysum += ycurrent;
-    xysum += xcurrent * ycurrent;
-    xxsum += xcurrent * xcurrent;
-    xmin = Math.min(xmin, xcurrent);
-    xmax = Math.max(xmax, xcurrent);
-  }
-  var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;
-  return {
-    xmin,
-    xmax,
-    a,
-    b: (ysum - a * xsum) / len
-  };
-};
-exports.getLinearRegression = getLinearRegression;
-/**
- * Checks if the value is null or undefined
- * @param value The value to check
- * @returns true if the value is null or undefined
- */
-var isNullish = value => {
-  return value === null || typeof value === 'undefined';
-};
-
-/**
- * Uppercase the first letter of a string
- * @param {string} value The string to uppercase
- * @returns {string} The uppercased string
- */
-exports.isNullish = isNullish;
-var upperFirst = value => {
-  if (isNullish(value)) {
-    return value;
-  }
-  return "".concat(value.charAt(0).toUpperCase()).concat(value.slice(1));
-};
-
-/**
- * Checks if the value is not null nor undefined.
- * @param value The value to check
- * @returns true if the value is not null nor undefined
- */
-exports.upperFirst = upperFirst;
-function isNotNil(value) {
-  return value != null;
-}
-
-/**
- * No-operation function that does nothing.
- * Useful as a placeholder or default callback function.
- */
-function noop() {}
Index: de_modules/recharts/lib/util/Events.js
===================================================================
--- node_modules/recharts/lib/util/Events.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.eventCenter = exports.TOOLTIP_SYNC_EVENT = exports.BRUSH_SYNC_EVENT = void 0;
-var _eventemitter = _interopRequireDefault(require("eventemitter3"));
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var eventCenter = exports.eventCenter = new _eventemitter.default();
-var TOOLTIP_SYNC_EVENT = exports.TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';
-var BRUSH_SYNC_EVENT = exports.BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';
Index: de_modules/recharts/lib/util/FunnelUtils.js
===================================================================
--- node_modules/recharts/lib/util/FunnelUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.FunnelTrapezoid = FunnelTrapezoid;
-var React = _interopRequireWildcard(require("react"));
-var _ActiveShapeUtils = require("./ActiveShapeUtils");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function FunnelTrapezoid(props) {
-  return /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-    shapeType: "trapezoid"
-  }, props));
-}
Index: de_modules/recharts/lib/util/Global.js
===================================================================
--- node_modules/recharts/lib/util/Global.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Global = void 0;
-var parseIsSsrByDefault = () => !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);
-var Global = exports.Global = {
-  devToolsEnabled: true,
-  isSsr: parseIsSsrByDefault()
-};
Index: de_modules/recharts/lib/util/IfOverflow.js
===================================================================
--- node_modules/recharts/lib/util/IfOverflow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/util/LRUCache.js
===================================================================
--- node_modules/recharts/lib/util/LRUCache.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.LRUCache = void 0;
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * Simple LRU (Least Recently Used) cache implementation
- */
-class LRUCache {
-  constructor(maxSize) {
-    _defineProperty(this, "cache", new Map());
-    this.maxSize = maxSize;
-  }
-  get(key) {
-    var value = this.cache.get(key);
-    if (value !== undefined) {
-      this.cache.delete(key);
-      this.cache.set(key, value);
-    }
-    return value;
-  }
-  set(key, value) {
-    if (this.cache.has(key)) {
-      this.cache.delete(key);
-    } else if (this.cache.size >= this.maxSize) {
-      var firstKey = this.cache.keys().next().value;
-      if (firstKey != null) {
-        this.cache.delete(firstKey);
-      }
-    }
-    this.cache.set(key, value);
-  }
-  clear() {
-    this.cache.clear();
-  }
-  size() {
-    return this.cache.size;
-  }
-}
-exports.LRUCache = LRUCache;
Index: de_modules/recharts/lib/util/LogUtils.js
===================================================================
--- node_modules/recharts/lib/util/LogUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.warn = void 0;
-/* eslint no-console: 0 */
-var isDev = true;
-var warn = exports.warn = function warn(condition, format) {
-  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
-    args[_key - 2] = arguments[_key];
-  }
-  if (isDev && typeof console !== 'undefined' && console.warn) {
-    if (format === undefined) {
-      console.warn('LogUtils requires an error message argument');
-    }
-    if (!condition) {
-      if (format === undefined) {
-        console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
-      } else {
-        var argIndex = 0;
-        console.warn(format.replace(/%s/g, () => args[argIndex++]));
-      }
-    }
-  }
-};
Index: de_modules/recharts/lib/util/PolarUtils.js
===================================================================
--- node_modules/recharts/lib/util/PolarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.radianToDegree = exports.polarToCartesian = exports.inRangeOfSector = exports.getMaxRadius = exports.degreeToRadian = exports.RADIAN = void 0;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var RADIAN = exports.RADIAN = Math.PI / 180;
-var degreeToRadian = angle => angle * Math.PI / 180;
-exports.degreeToRadian = degreeToRadian;
-var radianToDegree = angleInRadian => angleInRadian * 180 / Math.PI;
-exports.radianToDegree = radianToDegree;
-var polarToCartesian = (cx, cy, radius, angle) => ({
-  x: cx + Math.cos(-RADIAN * angle) * radius,
-  y: cy + Math.sin(-RADIAN * angle) * radius
-});
-exports.polarToCartesian = polarToCartesian;
-var getMaxRadius = exports.getMaxRadius = function getMaxRadius(width, height) {
-  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
-    top: 0,
-    right: 0,
-    bottom: 0,
-    left: 0,
-    width: 0,
-    height: 0,
-    brushBottom: 0
-  };
-  return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;
-};
-var distanceBetweenPoints = (point, anotherPoint) => {
-  var {
-    x: x1,
-    y: y1
-  } = point;
-  var {
-    x: x2,
-    y: y2
-  } = anotherPoint;
-  return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);
-};
-var getAngleOfPoint = (_ref, _ref2) => {
-  var {
-    x,
-    y
-  } = _ref;
-  var {
-    cx,
-    cy
-  } = _ref2;
-  var radius = distanceBetweenPoints({
-    x,
-    y
-  }, {
-    x: cx,
-    y: cy
-  });
-  if (radius <= 0) {
-    return {
-      radius,
-      angle: 0
-    };
-  }
-  var cos = (x - cx) / radius;
-  var angleInRadian = Math.acos(cos);
-  if (y > cy) {
-    angleInRadian = 2 * Math.PI - angleInRadian;
-  }
-  return {
-    radius,
-    angle: radianToDegree(angleInRadian),
-    angleInRadian
-  };
-};
-var formatAngleOfSector = _ref3 => {
-  var {
-    startAngle,
-    endAngle
-  } = _ref3;
-  var startCnt = Math.floor(startAngle / 360);
-  var endCnt = Math.floor(endAngle / 360);
-  var min = Math.min(startCnt, endCnt);
-  return {
-    startAngle: startAngle - min * 360,
-    endAngle: endAngle - min * 360
-  };
-};
-var reverseFormatAngleOfSector = (angle, _ref4) => {
-  var {
-    startAngle,
-    endAngle
-  } = _ref4;
-  var startCnt = Math.floor(startAngle / 360);
-  var endCnt = Math.floor(endAngle / 360);
-  var min = Math.min(startCnt, endCnt);
-  return angle + min * 360;
-};
-var inRangeOfSector = (_ref5, viewBox) => {
-  var {
-    chartX: x,
-    chartY: y
-  } = _ref5;
-  var {
-    radius,
-    angle
-  } = getAngleOfPoint({
-    x,
-    y
-  }, viewBox);
-  var {
-    innerRadius,
-    outerRadius
-  } = viewBox;
-  if (radius < innerRadius || radius > outerRadius) {
-    return null;
-  }
-  if (radius === 0) {
-    return null;
-  }
-  var {
-    startAngle,
-    endAngle
-  } = formatAngleOfSector(viewBox);
-  var formatAngle = angle;
-  var inRange;
-  if (startAngle <= endAngle) {
-    while (formatAngle > endAngle) {
-      formatAngle -= 360;
-    }
-    while (formatAngle < startAngle) {
-      formatAngle += 360;
-    }
-    inRange = formatAngle >= startAngle && formatAngle <= endAngle;
-  } else {
-    while (formatAngle > startAngle) {
-      formatAngle -= 360;
-    }
-    while (formatAngle < endAngle) {
-      formatAngle += 360;
-    }
-    inRange = formatAngle >= endAngle && formatAngle <= startAngle;
-  }
-  if (inRange) {
-    return _objectSpread(_objectSpread({}, viewBox), {}, {
-      radius,
-      angle: reverseFormatAngleOfSector(formatAngle, viewBox)
-    });
-  }
-  return null;
-};
-exports.inRangeOfSector = inRangeOfSector;
Index: de_modules/recharts/lib/util/RadialBarUtils.js
===================================================================
--- node_modules/recharts/lib/util/RadialBarUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RadialBarSector = RadialBarSector;
-exports.parseCornerRadius = parseCornerRadius;
-var React = _interopRequireWildcard(require("react"));
-var _ActiveShapeUtils = require("./ActiveShapeUtils");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function parseCornerRadius(cornerRadius) {
-  if (typeof cornerRadius === 'string') {
-    return parseInt(cornerRadius, 10);
-  }
-  return cornerRadius;
-}
-function RadialBarSector(props) {
-  return /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-    shapeType: "sector"
-  }, props));
-}
Index: de_modules/recharts/lib/util/ReactUtils.js
===================================================================
--- node_modules/recharts/lib/util/ReactUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SCALE_TYPES = void 0;
-exports.findAllByType = findAllByType;
-exports.toArray = exports.isClipDot = exports.getDisplayName = void 0;
-var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
-var _react = require("react");
-var _reactIs = require("react-is");
-var _DataUtils = require("./DataUtils");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-var SCALE_TYPES = exports.SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];
-
-/**
- * @deprecated instead find another approach that does not depend on displayName.
- * Get the display name of a component
- * @param  {Object} Comp Specified Component
- * @return {String}      Display name of Component
- */
-var getDisplayName = Comp => {
-  if (typeof Comp === 'string') {
-    return Comp;
-  }
-  if (!Comp) {
-    return '';
-  }
-  return Comp.displayName || Comp.name || 'Component';
-};
-
-// `toArray` gets called multiple times during the render
-// so we can memoize last invocation (since reference to `children` is the same)
-exports.getDisplayName = getDisplayName;
-var lastChildren = null;
-var lastResult = null;
-
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * @param children do not use
- * @return deprecated do not use
- */
-var toArray = children => {
-  if (children === lastChildren && Array.isArray(lastResult)) {
-    return lastResult;
-  }
-  var result = [];
-  _react.Children.forEach(children, child => {
-    if ((0, _DataUtils.isNullish)(child)) return;
-    if ((0, _reactIs.isFragment)(child)) {
-      result = result.concat(toArray(child.props.children));
-    } else {
-      // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that
-      result.push(child);
-    }
-  });
-  lastResult = result;
-  lastChildren = children;
-  return result;
-};
-
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * Find and return all matched children by type.
- * `type` must be a React.ComponentType
- *
- * @param children do not use
- * @param type do not use
- * @return deprecated do not use
- */
-exports.toArray = toArray;
-function findAllByType(children, type) {
-  var result = [];
-  var types = [];
-  if (Array.isArray(type)) {
-    types = type.map(t => getDisplayName(t));
-  } else {
-    types = [getDisplayName(type)];
-  }
-  toArray(children).forEach(child => {
-    // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function
-    var childType = (0, _get.default)(child, 'type.displayName') || (0, _get.default)(child, 'type.name');
-    if (childType && types.indexOf(childType) !== -1) {
-      result.push(child);
-    }
-  });
-  return result;
-}
-var isClipDot = dot => {
-  if (dot && typeof dot === 'object' && 'clipDot' in dot) {
-    return Boolean(dot.clipDot);
-  }
-  return true;
-};
-exports.isClipDot = isClipDot;
Index: de_modules/recharts/lib/util/ReduceCSSCalc.js
===================================================================
--- node_modules/recharts/lib/util/ReduceCSSCalc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,152 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.reduceCSSCalc = reduceCSSCalc;
-exports.safeEvaluateExpression = safeEvaluateExpression;
-var _DataUtils = require("./DataUtils");
-var _DecimalCSS;
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var MULTIPLY_OR_DIVIDE_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
-var ADD_OR_SUBTRACT_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
-var CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;
-var NUM_SPLIT_REGEX = /(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/;
-var CONVERSION_RATES = {
-  cm: 96 / 2.54,
-  mm: 96 / 25.4,
-  pt: 96 / 72,
-  pc: 96 / 6,
-  in: 96,
-  Q: 96 / (2.54 * 40),
-  px: 1
-};
-var FIXED_CSS_LENGTH_UNITS = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];
-function isSupportedUnit(unit) {
-  return FIXED_CSS_LENGTH_UNITS.includes(unit);
-}
-var STR_NAN = 'NaN';
-function convertToPx(value, unit) {
-  return value * CONVERSION_RATES[unit];
-}
-class DecimalCSS {
-  static parse(str) {
-    var _NUM_SPLIT_REGEX$exec;
-    var [, numStr, unit] = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [];
-    if (numStr == null) {
-      return DecimalCSS.NaN;
-    }
-    return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');
-  }
-  constructor(num, unit) {
-    this.num = num;
-    this.unit = unit;
-    this.num = num;
-    this.unit = unit;
-    if ((0, _DataUtils.isNan)(num)) {
-      this.unit = '';
-    }
-    if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {
-      this.num = NaN;
-      this.unit = '';
-    }
-    if (isSupportedUnit(unit)) {
-      this.num = convertToPx(num, unit);
-      this.unit = 'px';
-    }
-  }
-  add(other) {
-    if (this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num + other.num, this.unit);
-  }
-  subtract(other) {
-    if (this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num - other.num, this.unit);
-  }
-  multiply(other) {
-    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num * other.num, this.unit || other.unit);
-  }
-  divide(other) {
-    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
-      return new DecimalCSS(NaN, '');
-    }
-    return new DecimalCSS(this.num / other.num, this.unit || other.unit);
-  }
-  toString() {
-    return "".concat(this.num).concat(this.unit);
-  }
-  isNaN() {
-    return (0, _DataUtils.isNan)(this.num);
-  }
-}
-_DecimalCSS = DecimalCSS;
-_defineProperty(DecimalCSS, "NaN", new _DecimalCSS(NaN, ''));
-function calculateArithmetic(expr) {
-  if (expr == null || expr.includes(STR_NAN)) {
-    return STR_NAN;
-  }
-  var newExpr = expr;
-  while (newExpr.includes('*') || newExpr.includes('/')) {
-    var _MULTIPLY_OR_DIVIDE_R;
-    var [, leftOperand, operator, rightOperand] = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [];
-    var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');
-    var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');
-    var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);
-    if (result.isNaN()) {
-      return STR_NAN;
-    }
-    newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());
-  }
-  while (newExpr.includes('+') || /.-\d+(?:\.\d+)?/.test(newExpr)) {
-    var _ADD_OR_SUBTRACT_REGE;
-    var [, _leftOperand, _operator, _rightOperand] = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [];
-    var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');
-    var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');
-    var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);
-    if (_result.isNaN()) {
-      return STR_NAN;
-    }
-    newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());
-  }
-  return newExpr;
-}
-var PARENTHESES_REGEX = /\(([^()]*)\)/;
-function calculateParentheses(expr) {
-  var newExpr = expr;
-  var match;
-  // eslint-disable-next-line no-cond-assign
-  while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {
-    var [, parentheticalExpression] = match;
-    newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));
-  }
-  return newExpr;
-}
-function evaluateExpression(expression) {
-  var newExpr = expression.replace(/\s+/g, '');
-  newExpr = calculateParentheses(newExpr);
-  newExpr = calculateArithmetic(newExpr);
-  return newExpr;
-}
-function safeEvaluateExpression(expression) {
-  try {
-    return evaluateExpression(expression);
-  } catch (_unused) {
-    return STR_NAN;
-  }
-}
-function reduceCSSCalc(expression) {
-  var result = safeEvaluateExpression(expression.slice(5, -1));
-  if (result === STR_NAN) {
-    return '';
-  }
-  return result;
-}
Index: de_modules/recharts/lib/util/ScatterUtils.js
===================================================================
--- node_modules/recharts/lib/util/ScatterUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ScatterSymbol = ScatterSymbol;
-var React = _interopRequireWildcard(require("react"));
-var _Symbols = require("../shape/Symbols");
-var _ActiveShapeUtils = require("./ActiveShapeUtils");
-var _Constants = require("./Constants");
-var _excluded = ["option", "isActive"];
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function ScatterSymbol(_ref) {
-  var {
-      option,
-      isActive
-    } = _ref,
-    props = _objectWithoutProperties(_ref, _excluded);
-  if (typeof option === 'string') {
-    return /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-      option: /*#__PURE__*/React.createElement(_Symbols.Symbols, _extends({
-        type: option
-      }, props)),
-      isActive: isActive,
-      shapeType: "symbols"
-    }, props));
-  }
-  return /*#__PURE__*/React.createElement(_ActiveShapeUtils.Shape, _extends({
-    option: option,
-    isActive: isActive,
-    shapeType: "symbols"
-  }, props));
-}
Index: de_modules/recharts/lib/util/TickUtils.js
===================================================================
--- node_modules/recharts/lib/util/TickUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getAngledTickWidth = getAngledTickWidth;
-exports.getNumberIntervalTicks = getNumberIntervalTicks;
-exports.getTickBoundaries = getTickBoundaries;
-exports.isVisible = isVisible;
-var _CartesianUtils = require("./CartesianUtils");
-var _getEveryNth = require("./getEveryNth");
-function getAngledTickWidth(contentSize, unitSize, angle) {
-  var size = {
-    width: contentSize.width + unitSize.width,
-    height: contentSize.height + unitSize.height
-  };
-  return (0, _CartesianUtils.getAngledRectangleWidth)(size, angle);
-}
-function getTickBoundaries(viewBox, sign, sizeKey) {
-  var isWidth = sizeKey === 'width';
-  var {
-    x,
-    y,
-    width,
-    height
-  } = viewBox;
-  if (sign === 1) {
-    return {
-      start: isWidth ? x : y,
-      end: isWidth ? x + width : y + height
-    };
-  }
-  return {
-    start: isWidth ? x + width : y + height,
-    end: isWidth ? x : y
-  };
-}
-function isVisible(sign, tickPosition, getSize, start, end) {
-  /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating
-   * the tick's size. */
-  if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {
-    return false;
-  }
-  var size = getSize();
-  return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;
-}
-function getNumberIntervalTicks(ticks, interval) {
-  return (0, _getEveryNth.getEveryNth)(ticks, interval + 1);
-}
Index: de_modules/recharts/lib/util/YAxisUtils.js
===================================================================
--- node_modules/recharts/lib/util/YAxisUtils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getCalculatedYAxisWidth = void 0;
-/**
- * Calculates the width of the Y-axis based on the tick labels and the axis label.
- * @param params - The parameters object.
- * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.
- * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.
- * @param [params.labelGapWithTick=5] - The gap between the label and the tick.
- * @param [params.tickSize=0] - The length of the tick line.
- * @param [params.tickMargin=0] - The margin between the tick line and the tick text.
- * @returns The calculated width of the Y-axis.
- */
-var getCalculatedYAxisWidth = _ref => {
-  var {
-    ticks,
-    label,
-    labelGapWithTick = 5,
-    // Default gap between label and tick
-    tickSize = 0,
-    tickMargin = 0
-  } = _ref;
-  // find the max width of the tick labels
-  var maxTickWidth = 0;
-  if (ticks) {
-    Array.from(ticks).forEach(tickNode => {
-      if (tickNode) {
-        var bbox = tickNode.getBoundingClientRect();
-        if (bbox.width > maxTickWidth) {
-          maxTickWidth = bbox.width;
-        }
-      }
-    });
-
-    // calculate width of the axis label
-    var labelWidth = label ? label.getBoundingClientRect().width : 0;
-    var tickWidth = tickSize + tickMargin;
-
-    // calculate the updated width of the y-axis
-    var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);
-    return Math.round(updatedYAxisWidth);
-  }
-  return 0;
-};
-exports.getCalculatedYAxisWidth = getCalculatedYAxisWidth;
Index: de_modules/recharts/lib/util/axisPropsAreEqual.js
===================================================================
--- node_modules/recharts/lib/util/axisPropsAreEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.axisPropsAreEqual = axisPropsAreEqual;
-var _propsAreEqual = require("./propsAreEqual");
-var _excluded = ["domain", "range"],
-  _excluded2 = ["domain", "range"];
-function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
-function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
-function shortArraysAreEqual(arr1, arr2) {
-  if (arr1 === arr2) {
-    return true;
-  }
-  if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {
-    return arr1[0] === arr2[0] && arr1[1] === arr2[1];
-  }
-  return false;
-}
-
-/**
- * Usually we would not compare array props deeply for performance consideration.
- * However, for axis props, domain is sometimes defined as a two-elements array, and range is always
- * a two-elements array. So we can do a shallow comparison for the rest props and a shallow
- * comparison for these two array props.
- * @param prevProps
- * @param nextProps
- */
-function axisPropsAreEqual(prevProps, nextProps) {
-  if (prevProps === nextProps) {
-    return true;
-  }
-  var {
-      domain: prevDomain,
-      range: prevRange
-    } = prevProps,
-    prevRest = _objectWithoutProperties(prevProps, _excluded);
-  var {
-      domain: nextDomain,
-      range: nextRange
-    } = nextProps,
-    nextRest = _objectWithoutProperties(nextProps, _excluded2);
-  if (!shortArraysAreEqual(prevDomain, nextDomain)) {
-    return false;
-  }
-  if (!shortArraysAreEqual(prevRange, nextRange)) {
-    return false;
-  }
-  return (0, _propsAreEqual.propsAreEqual)(prevRest, nextRest);
-}
Index: de_modules/recharts/lib/util/cursor/getCursorPoints.js
===================================================================
--- node_modules/recharts/lib/util/cursor/getCursorPoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getCursorPoints = getCursorPoints;
-var _PolarUtils = require("../PolarUtils");
-var _types = require("../types");
-var _getRadialCursorPoints = require("./getRadialCursorPoints");
-function getCursorPoints(layout, activeCoordinate, offset) {
-  if (layout === 'horizontal') {
-    return [{
-      x: activeCoordinate.x,
-      y: offset.top
-    }, {
-      x: activeCoordinate.x,
-      y: offset.top + offset.height
-    }];
-  }
-  if (layout === 'vertical') {
-    return [{
-      x: offset.left,
-      y: activeCoordinate.y
-    }, {
-      x: offset.left + offset.width,
-      y: activeCoordinate.y
-    }];
-  }
-  if ((0, _types.isPolarCoordinate)(activeCoordinate)) {
-    if (layout === 'centric') {
-      var {
-        cx,
-        cy,
-        innerRadius,
-        outerRadius,
-        angle
-      } = activeCoordinate;
-      var innerPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, innerRadius, angle);
-      var outerPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, outerRadius, angle);
-      return [{
-        x: innerPoint.x,
-        y: innerPoint.y
-      }, {
-        x: outerPoint.x,
-        y: outerPoint.y
-      }];
-    }
-    return (0, _getRadialCursorPoints.getRadialCursorPoints)(activeCoordinate);
-  }
-  return undefined;
-}
Index: de_modules/recharts/lib/util/cursor/getCursorRectangle.js
===================================================================
--- node_modules/recharts/lib/util/cursor/getCursorRectangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getCursorRectangle = getCursorRectangle;
-function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {
-  var halfSize = tooltipAxisBandSize / 2;
-  return {
-    stroke: 'none',
-    fill: '#ccc',
-    x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,
-    y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,
-    width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,
-    height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize
-  };
-}
Index: de_modules/recharts/lib/util/cursor/getRadialCursorPoints.js
===================================================================
--- node_modules/recharts/lib/util/cursor/getRadialCursorPoints.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getRadialCursorPoints = getRadialCursorPoints;
-var _PolarUtils = require("../PolarUtils");
-/**
- * Only applicable for radial layouts
- * @param {Object} activeCoordinate ChartCoordinate
- * @returns {Object} RadialCursorPoints
- */
-function getRadialCursorPoints(activeCoordinate) {
-  var {
-    cx,
-    cy,
-    radius,
-    startAngle,
-    endAngle
-  } = activeCoordinate;
-  var startPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, startAngle);
-  var endPoint = (0, _PolarUtils.polarToCartesian)(cx, cy, radius, endAngle);
-  return {
-    points: [startPoint, endPoint],
-    cx,
-    cy,
-    radius,
-    startAngle,
-    endAngle
-  };
-}
Index: de_modules/recharts/lib/util/excludeEventProps.js
===================================================================
--- node_modules/recharts/lib/util/excludeEventProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isEventKey = isEventKey;
-var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];
-function isEventKey(key) {
-  if (typeof key !== 'string') {
-    return false;
-  }
-  var allowedEventKeys = EventKeys;
-  return allowedEventKeys.includes(key);
-}
Index: de_modules/recharts/lib/util/getActiveCoordinate.js
===================================================================
--- node_modules/recharts/lib/util/getActiveCoordinate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,162 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getActivePolarCoordinate = exports.getActiveCartesianCoordinate = exports.calculateActiveTickIndex = void 0;
-exports.isInCartesianRange = isInCartesianRange;
-var _PolarUtils = require("./PolarUtils");
-var _DataUtils = require("./DataUtils");
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-var getActiveCartesianCoordinate = (layout, tooltipTicks, activeIndex, pointer) => {
-  var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);
-  if (entry) {
-    if (layout === 'horizontal') {
-      return {
-        x: entry.coordinate,
-        y: pointer.chartY
-      };
-    }
-    if (layout === 'vertical') {
-      return {
-        x: pointer.chartX,
-        y: entry.coordinate
-      };
-    }
-  }
-  return {
-    x: 0,
-    y: 0
-  };
-};
-
-/**
- * Get the active coordinate in polar coordinate system.
- * Internally we only really use x and y, but this returned object is part of public API
- * (because it goes straight to the tooltip content) so we keep all the other properties
- * for backwards compatibility.
- *
- * @param layout - The polar layout type ('centric' or 'radial').
- * @param tooltipTicks - Array of tick items used for tooltips.
- * @param activeIndex - The index of the active tick.
- * @param rangeObj - The range object containing polar chart properties.
- * @returns The active coordinate object with polar properties.
- */
-exports.getActiveCartesianCoordinate = getActiveCartesianCoordinate;
-var getActivePolarCoordinate = (layout, tooltipTicks, activeIndex, rangeObj) => {
-  var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);
-  if (entry) {
-    if (layout === 'centric') {
-      var _angle = entry.coordinate;
-      var {
-        radius: _radius
-      } = rangeObj;
-      return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), (0, _PolarUtils.polarToCartesian)(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {
-        angle: _angle,
-        radius: _radius
-      });
-    }
-    var radius = entry.coordinate;
-    var {
-      angle
-    } = rangeObj;
-    return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), (0, _PolarUtils.polarToCartesian)(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {
-      angle,
-      radius
-    });
-  }
-  return {
-    angle: 0,
-    clockWise: false,
-    cx: 0,
-    cy: 0,
-    endAngle: 0,
-    innerRadius: 0,
-    outerRadius: 0,
-    radius: 0,
-    startAngle: 0,
-    x: 0,
-    y: 0
-  };
-};
-exports.getActivePolarCoordinate = getActivePolarCoordinate;
-function isInCartesianRange(pointer, offset) {
-  var {
-    chartX: x,
-    chartY: y
-  } = pointer;
-  return x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;
-}
-var calculateActiveTickIndex = (coordinate, ticks, unsortedTicks, axisType, range) => {
-  var _ticks$length;
-  var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;
-
-  // if there are 1 or fewer ticks or if there is no coordinate then the active tick is at index 0
-  if (len <= 1 || coordinate == null) {
-    return 0;
-  }
-  if (axisType === 'angleAxis' && range != null && Math.abs(Math.abs(range[1] - range[0]) - 360) <= 1e-6) {
-    // ticks are distributed in a circle
-    for (var i = 0; i < len; i++) {
-      var _unsortedTicks, _unsortedTicks2, _unsortedTicks$i, _unsortedTicks$, _unsortedTicks3;
-      var before = i > 0 ? (_unsortedTicks = unsortedTicks[i - 1]) === null || _unsortedTicks === void 0 ? void 0 : _unsortedTicks.coordinate : (_unsortedTicks2 = unsortedTicks[len - 1]) === null || _unsortedTicks2 === void 0 ? void 0 : _unsortedTicks2.coordinate;
-      var cur = (_unsortedTicks$i = unsortedTicks[i]) === null || _unsortedTicks$i === void 0 ? void 0 : _unsortedTicks$i.coordinate;
-      var after = i >= len - 1 ? (_unsortedTicks$ = unsortedTicks[0]) === null || _unsortedTicks$ === void 0 ? void 0 : _unsortedTicks$.coordinate : (_unsortedTicks3 = unsortedTicks[i + 1]) === null || _unsortedTicks3 === void 0 ? void 0 : _unsortedTicks3.coordinate;
-      var sameDirectionCoord = void 0;
-      if (before == null || cur == null || after == null) {
-        continue;
-      }
-      if ((0, _DataUtils.mathSign)(cur - before) !== (0, _DataUtils.mathSign)(after - cur)) {
-        var diffInterval = [];
-        if ((0, _DataUtils.mathSign)(after - cur) === (0, _DataUtils.mathSign)(range[1] - range[0])) {
-          sameDirectionCoord = after;
-          var curInRange = cur + range[1] - range[0];
-          diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);
-          diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);
-        } else {
-          sameDirectionCoord = before;
-          var afterInRange = after + range[1] - range[0];
-          diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);
-          diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);
-        }
-        var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];
-        if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {
-          var _unsortedTicks$i2;
-          return (_unsortedTicks$i2 = unsortedTicks[i]) === null || _unsortedTicks$i2 === void 0 ? void 0 : _unsortedTicks$i2.index;
-        }
-      } else {
-        var minValue = Math.min(before, after);
-        var maxValue = Math.max(before, after);
-        if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {
-          var _unsortedTicks$i3;
-          return (_unsortedTicks$i3 = unsortedTicks[i]) === null || _unsortedTicks$i3 === void 0 ? void 0 : _unsortedTicks$i3.index;
-        }
-      }
-    }
-  } else if (ticks) {
-    // ticks are distributed in a single direction
-    for (var _i = 0; _i < len; _i++) {
-      var curr = ticks[_i];
-      if (curr == null) {
-        continue;
-      }
-      var next = ticks[_i + 1];
-      var prev = ticks[_i - 1];
-      if (_i === 0 && next != null && coordinate <= (curr.coordinate + next.coordinate) / 2) {
-        return curr.index;
-      }
-      if (_i === len - 1 && prev != null && coordinate > (curr.coordinate + prev.coordinate) / 2) {
-        return curr.index;
-      }
-      if (_i > 0 && _i < len - 1 && prev != null && next != null && coordinate > (curr.coordinate + prev.coordinate) / 2 && coordinate <= (curr.coordinate + next.coordinate) / 2) {
-        return curr.index;
-      }
-    }
-  }
-  return -1;
-};
-exports.calculateActiveTickIndex = calculateActiveTickIndex;
Index: de_modules/recharts/lib/util/getAxisTypeBasedOnLayout.js
===================================================================
--- node_modules/recharts/lib/util/getAxisTypeBasedOnLayout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getAxisTypeBasedOnLayout = getAxisTypeBasedOnLayout;
-var _ChartUtils = require("./ChartUtils");
-/**
- * This function evaluates the "auto" axis domain type based on the chart layout and axis type.
- * It outputs a definitive axis domain type that can be used for further processing.
- */
-function getAxisTypeBasedOnLayout(layout, axisType, axisDomainType) {
-  if (axisDomainType !== 'auto') {
-    return axisDomainType;
-  }
-  if (layout == null) {
-    return undefined;
-  }
-  return (0, _ChartUtils.isCategoricalAxis)(layout, axisType) ? 'category' : 'number';
-}
Index: de_modules/recharts/lib/util/getChartPointer.js
===================================================================
--- node_modules/recharts/lib/util/getChartPointer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getChartPointer = void 0;
-/**
- * Computes the chart coordinates from the mouse event.
- *
- * The coordinates are relative to the top-left corner of the chart,
- * where the top-left corner of the chart is (0, 0).
- * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.
- *
- * The coordinates are rounded to the nearest integer and are including a CSS transform scale.
- * So a chart that's scaled will return the same coordinates as a chart that's not scaled.
- *
- * @param event The mouse event from React event handlers
- * @return chartPointer The chart coordinates relative to the top-left corner of the chart
- */
-var getChartPointer = event => {
-  var rect = event.currentTarget.getBoundingClientRect();
-  var scaleX = rect.width / event.currentTarget.offsetWidth;
-  var scaleY = rect.height / event.currentTarget.offsetHeight;
-  return {
-    /*
-     * Here it's important to use:
-     * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.
-     * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.
-     * - rect.left and rect.top are used to get the position of the chart relative to the viewport.
-     * - offsetX and offsetY are not used because they are relative to the offset parent
-     *  which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM
-     *  and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.
-     * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.
-     */
-    chartX: Math.round((event.clientX - rect.left) / scaleX),
-    chartY: Math.round((event.clientY - rect.top) / scaleY)
-  };
-};
-exports.getChartPointer = getChartPointer;
Index: de_modules/recharts/lib/util/getClassNameFromUnknown.js
===================================================================
--- node_modules/recharts/lib/util/getClassNameFromUnknown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getClassNameFromUnknown = getClassNameFromUnknown;
-function getClassNameFromUnknown(u) {
-  if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {
-    return u.className;
-  }
-  return '';
-}
Index: de_modules/recharts/lib/util/getEveryNth.js
===================================================================
--- node_modules/recharts/lib/util/getEveryNth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getEveryNth = getEveryNth;
-/**
- * Given an array and a number N, return a new array which contains every nTh
- * element of the input array. For n below 1, an empty array is returned.
- * For n equal to 1, the input array is returned as is.
- * For n greater than the length of the array, an array containing the first element
- * and every nTh element after that (if any) is returned.
- *
- * @param array An input array.
- * @param n A number specifying which elements to take.
- * @returns The result array of the same type as the input array.
- */
-function getEveryNth(array, n) {
-  if (n < 1) {
-    return [];
-  }
-  if (n === 1) {
-    return array;
-  }
-  var result = [];
-  for (var i = 0; i < array.length; i += n) {
-    var item = array[i];
-    if (item !== undefined) {
-      result.push(item);
-    }
-  }
-  return result;
-}
Index: de_modules/recharts/lib/util/getRadiusAndStrokeWidthFromDot.js
===================================================================
--- node_modules/recharts/lib/util/getRadiusAndStrokeWidthFromDot.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getRadiusAndStrokeWidthFromDot = getRadiusAndStrokeWidthFromDot;
-var _svgPropertiesNoEvents = require("./svgPropertiesNoEvents");
-function getRadiusAndStrokeWidthFromDot(dot) {
-  var props = (0, _svgPropertiesNoEvents.svgPropertiesNoEventsFromUnknown)(dot);
-  var defaultR = 3;
-  var defaultStrokeWidth = 2;
-  if (props != null) {
-    var {
-      r,
-      strokeWidth
-    } = props;
-    var realR = Number(r);
-    var realStrokeWidth = Number(strokeWidth);
-    if (Number.isNaN(realR) || realR < 0) {
-      realR = defaultR;
-    }
-    if (Number.isNaN(realStrokeWidth) || realStrokeWidth < 0) {
-      realStrokeWidth = defaultStrokeWidth;
-    }
-    return {
-      r: realR,
-      strokeWidth: realStrokeWidth
-    };
-  }
-  return {
-    r: defaultR,
-    strokeWidth: defaultStrokeWidth
-  };
-}
Index: de_modules/recharts/lib/util/getSliced.js
===================================================================
--- node_modules/recharts/lib/util/getSliced.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getSliced = getSliced;
-function getSliced(arr, startIndex, endIndex) {
-  if (!Array.isArray(arr)) {
-    return arr;
-  }
-  if (arr && startIndex + endIndex !== 0) {
-    return arr.slice(startIndex, endIndex + 1);
-  }
-  return arr;
-}
Index: de_modules/recharts/lib/util/isDomainSpecifiedByUser.js
===================================================================
--- node_modules/recharts/lib/util/isDomainSpecifiedByUser.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,186 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.extendDomain = extendDomain;
-exports.isWellFormedNumberDomain = isWellFormedNumberDomain;
-exports.numericalDomainSpecifiedWithoutRequiringData = numericalDomainSpecifiedWithoutRequiringData;
-exports.parseNumericalUserDomain = parseNumericalUserDomain;
-var _ChartUtils = require("./ChartUtils");
-var _DataUtils = require("./DataUtils");
-var _isWellBehavedNumber = require("./isWellBehavedNumber");
-function isWellFormedNumberDomain(v) {
-  if (Array.isArray(v) && v.length === 2) {
-    var [min, max] = v;
-    if ((0, _isWellBehavedNumber.isWellBehavedNumber)(min) && (0, _isWellBehavedNumber.isWellBehavedNumber)(max)) {
-      return true;
-    }
-  }
-  return false;
-}
-function extendDomain(providedDomain, boundaryDomain, allowDataOverflow) {
-  if (allowDataOverflow) {
-    // If the data are allowed to overflow - we're fine with whatever user provided
-    return providedDomain;
-  }
-  /*
-   * If the data are not allowed to overflow - we need to extend the domain.
-   * Means that effectively the user is allowed to make the domain larger
-   * but not smaller.
-   */
-  return [Math.min(providedDomain[0], boundaryDomain[0]), Math.max(providedDomain[1], boundaryDomain[1])];
-}
-
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- *
- * This function does not accept data as an argument.
- * This is to enable a performance optimization - if the domain is there,
- * and we know what it is without traversing all the data,
- * then we don't have to traverse all the data!
- *
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param allowDataOverflow boolean, provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-function numericalDomainSpecifiedWithoutRequiringData(userDomain, allowDataOverflow) {
-  if (!allowDataOverflow) {
-    // Cannot compute data overflow if the data is not provided
-    return undefined;
-  }
-  if (typeof userDomain === 'function') {
-    // The user function expects the data to be provided as an argument
-    return undefined;
-  }
-  if (Array.isArray(userDomain) && userDomain.length === 2) {
-    var [providedMin, providedMax] = userDomain;
-    var finalMin, finalMax;
-    if ((0, _isWellBehavedNumber.isWellBehavedNumber)(providedMin)) {
-      finalMin = providedMin;
-    } else if (typeof providedMin === 'function') {
-      // The user function expects the data to be provided as an argument
-      return undefined;
-    }
-    if ((0, _isWellBehavedNumber.isWellBehavedNumber)(providedMax)) {
-      finalMax = providedMax;
-    } else if (typeof providedMax === 'function') {
-      // The user function expects the data to be provided as an argument
-      return undefined;
-    }
-    var candidate = [finalMin, finalMax];
-    if (isWellFormedNumberDomain(candidate)) {
-      return candidate;
-    }
-  }
-  return undefined;
-}
-
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- * to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * You are probably thinking, why does domain need tick count?
- * Well it adjusts the domain based on where the "nice ticks" land, and nice ticks depend on the tick count.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization
- * @param allowDataOverflow provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-function parseNumericalUserDomain(userDomain, dataDomain, allowDataOverflow) {
-  if (!allowDataOverflow && dataDomain == null) {
-    // Cannot compute data overflow if the data is not provided
-    return undefined;
-  }
-  if (typeof userDomain === 'function' && dataDomain != null) {
-    try {
-      var result = userDomain(dataDomain, allowDataOverflow);
-      if (isWellFormedNumberDomain(result)) {
-        return extendDomain(result, dataDomain, allowDataOverflow);
-      }
-    } catch (_unused) {
-      /* ignore the exception and compute domain from data later */
-    }
-  }
-  if (Array.isArray(userDomain) && userDomain.length === 2) {
-    var [providedMin, providedMax] = userDomain;
-    var finalMin, finalMax;
-    if (providedMin === 'auto') {
-      if (dataDomain != null) {
-        finalMin = Math.min(...dataDomain);
-      }
-    } else if ((0, _DataUtils.isNumber)(providedMin)) {
-      finalMin = providedMin;
-    } else if (typeof providedMin === 'function') {
-      try {
-        if (dataDomain != null) {
-          finalMin = providedMin(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0]);
-        }
-      } catch (_unused2) {
-        /* ignore the exception and compute domain from data later */
-      }
-    } else if (typeof providedMin === 'string' && _ChartUtils.MIN_VALUE_REG.test(providedMin)) {
-      var match = _ChartUtils.MIN_VALUE_REG.exec(providedMin);
-      if (match == null || match[1] == null || dataDomain == null) {
-        finalMin = undefined;
-      } else {
-        var value = +match[1];
-        finalMin = dataDomain[0] - value;
-      }
-    } else {
-      finalMin = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0];
-    }
-    if (providedMax === 'auto') {
-      if (dataDomain != null) {
-        finalMax = Math.max(...dataDomain);
-      }
-    } else if ((0, _DataUtils.isNumber)(providedMax)) {
-      finalMax = providedMax;
-    } else if (typeof providedMax === 'function') {
-      try {
-        if (dataDomain != null) {
-          finalMax = providedMax(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1]);
-        }
-      } catch (_unused3) {
-        /* ignore the exception and compute domain from data later */
-      }
-    } else if (typeof providedMax === 'string' && _ChartUtils.MAX_VALUE_REG.test(providedMax)) {
-      var _match = _ChartUtils.MAX_VALUE_REG.exec(providedMax);
-      if (_match == null || _match[1] == null || dataDomain == null) {
-        finalMax = undefined;
-      } else {
-        var _value = +_match[1];
-        finalMax = dataDomain[1] + _value;
-      }
-    } else {
-      finalMax = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1];
-    }
-    var candidate = [finalMin, finalMax];
-    if (isWellFormedNumberDomain(candidate)) {
-      if (dataDomain == null) {
-        return candidate;
-      }
-      return extendDomain(candidate, dataDomain, allowDataOverflow);
-    }
-  }
-  return undefined;
-}
Index: de_modules/recharts/lib/util/isWellBehavedNumber.js
===================================================================
--- node_modules/recharts/lib/util/isWellBehavedNumber.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isPositiveNumber = isPositiveNumber;
-exports.isWellBehavedNumber = isWellBehavedNumber;
-function isWellBehavedNumber(n) {
-  return Number.isFinite(n);
-}
-function isPositiveNumber(n) {
-  return typeof n === 'number' && n > 0 && Number.isFinite(n);
-}
Index: de_modules/recharts/lib/util/payload/getUniqPayload.js
===================================================================
--- node_modules/recharts/lib/util/payload/getUniqPayload.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getUniqPayload = getUniqPayload;
-var _uniqBy = _interopRequireDefault(require("es-toolkit/compat/uniqBy"));
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-/**
- * This is configuration option that decides how to filter for unique values only:
- *
- * - `false` means "no filter"
- * - `true` means "use recharts default filter"
- * - function means "use return of this function as the default key"
- */
-
-function getUniqPayload(payload, option, defaultUniqBy) {
-  if (option === true) {
-    return (0, _uniqBy.default)(payload, defaultUniqBy);
-  }
-  if (typeof option === 'function') {
-    return (0, _uniqBy.default)(payload, option);
-  }
-  return payload;
-}
Index: de_modules/recharts/lib/util/propsAreEqual.js
===================================================================
--- node_modules/recharts/lib/util/propsAreEqual.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,78 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.propsAreEqual = propsAreEqual;
-var _reactRedux = require("react-redux");
-var propsToShallowCompare = new Set(['axisLine', 'tickLine', 'activeBar', 'activeDot', 'activeLabel', 'activeShape', 'allowEscapeViewBox', 'background', 'cursor', 'dot', 'label', 'line', 'margin', 'padding', 'position', 'shape', 'style', 'tick', 'wrapperStyle',
-// radius can be an array of 4 numbers, easy to compare shallowly
-'radius']);
-
-/**
- * When comparing two values, returns true if they are the same value or
- * are both NaN.
- *
- * If we used just a simple triple equals, we would get false negatives for two NaNs
- * which could cause extra re-renders so let's have this instead.
- *
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality
- *
- * @param x first value to compare
- * @param y second value to compare
- * return true if the same, false if different
- */
-function sameValueZero(x, y) {
-  if (x == null && y == null) {
-    /*
-     * treat null and undefined as equal. Internally in Recharts we make no difference between these two
-     * so there is no need to re-render.
-     */
-    return true;
-  }
-  if (typeof x === 'number' && typeof y === 'number') {
-    // x and y are equal (this is true for -0 and 0) or they are both NaN
-    // eslint-disable-next-line no-self-compare
-    return x === y || x !== x && y !== y;
-  }
-  return x === y;
-}
-
-/**
- * So usually React would compare only the first level of props using Object.is.
- * However, in our case many props are objects or arrays, and our own docs recommend to do that!
- * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.
- *
- * Because charts can and do receive large props (typically the data array),
- * we only limit this to a subset of known props that are likely to be objects/arrays.
- *
- * @param prevProps
- * @param nextProps
- */
-function propsAreEqual(prevProps, nextProps) {
-  var allKeys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);
-  for (var key of allKeys) {
-    /*
-     * If a key is on a special allowlist, go one level deeper
-     * and do a shallow comparison of the values.
-     */
-    if (propsToShallowCompare.has(key)) {
-      if (prevProps[key] == null && nextProps[key] == null) {
-        /*
-         * treat null and undefined as equal. Internally in Recharts we make no difference between these two
-         * so there is no need to re-render.
-         */
-        continue;
-      }
-      if (!(0, _reactRedux.shallowEqual)(prevProps[key], nextProps[key])) {
-        return false;
-      }
-      /*
-       * Otherwise do a simple same-value comparison (with NaN support).
-       */
-    } else if (!sameValueZero(prevProps[key], nextProps[key])) {
-      return false;
-    }
-  }
-  return true;
-}
Index: de_modules/recharts/lib/util/resolveDefaultProps.js
===================================================================
--- node_modules/recharts/lib/util/resolveDefaultProps.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.resolveDefaultProps = resolveDefaultProps;
-function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
-function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
-function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
-function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
-/**
- * This function mimics the behavior of the `defaultProps` static property in React.
- * Functional components do not have a defaultProps property, so this function is useful to resolve default props.
- *
- * The common recommendation is to use ES6 destructuring with default values in the function signature,
- * but you need to be careful there and make sure you destructure all the individual properties
- * and not the whole object. See the test file for example.
- *
- * And because destructuring all properties one by one is a faff, and it's easy to miss one property,
- * this function exists.
- *
- * @param realProps - the props object passed to the component by the user
- * @param defaultProps - the default props object defined in the component by Recharts
- * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.
- */
-function resolveDefaultProps(realProps, defaultProps) {
-  /*
-   * To avoid mutating the original `realProps` object passed to the function, create a shallow copy of it.
-   * `resolvedProps` will be modified directly with the defaults.
-   */
-  var resolvedProps = _objectSpread({}, realProps);
-  /*
-   * Since the function guarantees `D extends Partial<T>`, this assignment is safe.
-   * It allows TypeScript to work with the well-defined `Partial<T>` type inside the loop,
-   * making subsequent type inference (especially for `dp[key]`) much more straightforward for the compiler.
-   * This is a key step to improve type safety *without* value assertions later.
-   */
-  var dp = defaultProps;
-  /*
-   * `Object.keys` doesn't preserve strong key types - it always returns Array<string>.
-   * However, due to the `D extends Partial<T>` constraint,
-   * we know these keys *must* also be valid keys of `T`.
-   * This assertion informs TypeScript of this relationship, avoiding type errors when using `key` to index `acc` (type T).
-   *
-   * Type assertions are not sound but in this case it's necessary
-   * as `Object.keys` does not do what we want it to do.
-   */
-  var keys = Object.keys(defaultProps);
-  var withDefaults = keys.reduce((acc, key) => {
-    if (acc[key] === undefined && dp[key] !== undefined) {
-      acc[key] = dp[key];
-    }
-    return acc;
-  }, resolvedProps);
-  /*
-   * And again type assertions are not safe but here we have done the runtime work
-   * so let's bypass the lack of static type safety and tell the compiler what happened.
-   */
-  return withDefaults;
-}
-
-/**
- * Helper type to extract the keys of T that are required.
- * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},
- * it means K is required, so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-
-/**
- * Helper type to extract the keys of T that are optional.
- * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},
- * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-
-/**
- * Helper type to ensure keys of D exist in T.
- * For each key K in D, if K is also a key of T, keep the type D[K].
- * If K is NOT a key of T, map it to type `never`.
- * An object cannot have a property of type `never`, effectively disallowing extra keys.
- */
-
-/**
- * This type will take a source type `Props` and a default type `Defaults` and will return a new type
- * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.
- * Properties that are required in `Props` and optional in `Defaults` will remain required.
- * Properties that are optional in both `Props` and `Defaults` will remain optional.
- *
- * This is useful for creating a type that represents the resolved props of a component with default props.
- */
Index: de_modules/recharts/lib/util/round.js
===================================================================
--- node_modules/recharts/lib/util/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.round = round;
-exports.roundTemplateLiteral = roundTemplateLiteral;
-// if you go lower than 3, wild wild things happen during rendering
-var defaultRoundPrecision = 4;
-function round(num) {
-  var roundPrecision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoundPrecision;
-  var factor = 10 ** roundPrecision;
-  var rounded = Math.round(num * factor) / factor;
-  if (Object.is(rounded, -0)) {
-    return 0;
-  }
-  return rounded;
-}
-
-/**
- * This function will accept a string template literal and for each
- * variable placeholder, it will round the value to avoid long float numbers in
- * the SVG path which might cause rendering issues in some browsers.
- */
-function roundTemplateLiteral(strings) {
-  for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-    values[_key - 1] = arguments[_key];
-  }
-  return strings.reduce((result, string, i) => {
-    var value = values[i - 1];
-    if (typeof value === 'string') {
-      return result + value + string;
-    }
-    if (value !== undefined) {
-      return result + round(value) + string;
-    }
-    return result + string;
-  }, '');
-}
Index: de_modules/recharts/lib/util/scale/CartesianScaleHelper.js
===================================================================
--- node_modules/recharts/lib/util/scale/CartesianScaleHelper.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,73 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CartesianScaleHelperImpl = void 0;
-/**
- * Groups X and Y scale functions together and provides helper methods.
- */
-class CartesianScaleHelperImpl {
-  constructor(_ref) {
-    var {
-      x,
-      y
-    } = _ref;
-    this.xAxisScale = x;
-    this.yAxisScale = y;
-  }
-  map(value, _ref2) {
-    var _this$xAxisScale$map, _this$yAxisScale$map;
-    var {
-      position
-    } = _ref2;
-    return {
-      x: (_this$xAxisScale$map = this.xAxisScale.map(value.x, {
-        position
-      })) !== null && _this$xAxisScale$map !== void 0 ? _this$xAxisScale$map : 0,
-      y: (_this$yAxisScale$map = this.yAxisScale.map(value.y, {
-        position
-      })) !== null && _this$yAxisScale$map !== void 0 ? _this$yAxisScale$map : 0
-    };
-  }
-  mapWithFallback(value, _ref3) {
-    var _this$xAxisScale$map2, _this$yAxisScale$map2;
-    var {
-      position,
-      fallback
-    } = _ref3;
-    var fallbackY, fallbackX;
-    if (fallback === 'rangeMin') {
-      fallbackY = this.yAxisScale.rangeMin();
-    } else if (fallback === 'rangeMax') {
-      fallbackY = this.yAxisScale.rangeMax();
-    } else {
-      fallbackY = 0;
-    }
-    if (fallback === 'rangeMin') {
-      fallbackX = this.xAxisScale.rangeMin();
-    } else if (fallback === 'rangeMax') {
-      fallbackX = this.xAxisScale.rangeMax();
-    } else {
-      fallbackX = 0;
-    }
-    return {
-      x: (_this$xAxisScale$map2 = this.xAxisScale.map(value.x, {
-        position
-      })) !== null && _this$xAxisScale$map2 !== void 0 ? _this$xAxisScale$map2 : fallbackX,
-      y: (_this$yAxisScale$map2 = this.yAxisScale.map(value.y, {
-        position
-      })) !== null && _this$yAxisScale$map2 !== void 0 ? _this$yAxisScale$map2 : fallbackY
-    };
-  }
-  isInRange(_ref4) {
-    var {
-      x,
-      y
-    } = _ref4;
-    var xInRange = x == null || this.xAxisScale.isInRange(x);
-    var yInRange = y == null || this.yAxisScale.isInRange(y);
-    return xInRange && yInRange;
-  }
-}
-exports.CartesianScaleHelperImpl = CartesianScaleHelperImpl;
Index: de_modules/recharts/lib/util/scale/CustomScaleDefinition.js
===================================================================
--- node_modules/recharts/lib/util/scale/CustomScaleDefinition.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/util/scale/RechartsScale.js
===================================================================
--- node_modules/recharts/lib/util/scale/RechartsScale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,107 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.d3ScaleToRechartsScale = d3ScaleToRechartsScale;
-exports.rechartsScaleFactory = rechartsScaleFactory;
-var d3Scales = _interopRequireWildcard(require("victory-vendor/d3-scale"));
-var _DataUtils = require("../DataUtils");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-/**
- * This is internal representation of scale used in Recharts.
- * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.
- * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.
- * This is important for React integration - if the scale changes, we want to trigger re-renders.
- * Mutating the scale in place would not trigger re-renders, leading to stale UI.
- */
-
-/**
- * Position within a band for banded scales.
- * In scales that are not banded, this parameter is ignored.
- *
- * @inline
- */
-
-function getD3ScaleFromType(realScaleType) {
-  if (realScaleType in d3Scales) {
-    // @ts-expect-error we should do better type verification here
-    return d3Scales[realScaleType]();
-  }
-  var name = "scale".concat((0, _DataUtils.upperFirst)(realScaleType));
-  if (name in d3Scales) {
-    // @ts-expect-error we should do better type verification here
-    return d3Scales[name]();
-  }
-  return undefined;
-}
-function d3ScaleToRechartsScale(d3Scale) {
-  var ticksFn = d3Scale.ticks;
-  var bandwidthFn = d3Scale.bandwidth;
-  var d3Range = d3Scale.range();
-  var range = [Math.min(...d3Range), Math.max(...d3Range)];
-  return {
-    domain: () => d3Scale.domain(),
-    range: function (_range) {
-      function range() {
-        return _range.apply(this, arguments);
-      }
-      range.toString = function () {
-        return _range.toString();
-      };
-      return range;
-    }(() => range),
-    rangeMin: () => range[0],
-    rangeMax: () => range[1],
-    isInRange(value) {
-      var first = range[0];
-      var last = range[1];
-      return first <= last ? value >= first && value <= last : value >= last && value <= first;
-    },
-    bandwidth: bandwidthFn ? () => bandwidthFn.call(d3Scale) : undefined,
-    ticks: ticksFn ? count => ticksFn.call(d3Scale, count) : undefined,
-    map: (input, options) => {
-      var baseValue = d3Scale(input);
-      if (baseValue == null) {
-        return undefined;
-      }
-      if (d3Scale.bandwidth && options !== null && options !== void 0 && options.position) {
-        var bandWidth = d3Scale.bandwidth();
-        switch (options.position) {
-          case 'middle':
-            baseValue += bandWidth / 2;
-            break;
-          case 'end':
-            baseValue += bandWidth;
-            break;
-          default:
-            // 'start' requires no adjustment
-            break;
-        }
-      }
-      return baseValue;
-    }
-  };
-}
-
-/**
- * Converts external scale definition into internal RechartsScale definition.
- * @param scale custom function scale - if you have the string, use `combineRealScaleType` first
- * @param axisDomain
- * @param axisRange
- */
-
-function rechartsScaleFactory(scale, axisDomain, axisRange) {
-  if (typeof scale === 'function') {
-    return d3ScaleToRechartsScale(scale.copy().domain(axisDomain).range(axisRange));
-  }
-  if (scale == null) {
-    return undefined;
-  }
-  var d3ScaleFunction = getD3ScaleFromType(scale);
-  if (d3ScaleFunction == null) {
-    return undefined;
-  }
-  d3ScaleFunction.domain(axisDomain).range(axisRange);
-  return d3ScaleToRechartsScale(d3ScaleFunction);
-}
Index: de_modules/recharts/lib/util/scale/getNiceTickValues.js
===================================================================
--- node_modules/recharts/lib/util/scale/getNiceTickValues.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,218 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getValidInterval = exports.getTickValuesFixedDomain = exports.getTickOfSingleValue = exports.getNiceTickValues = exports.getFormatStep = exports.calculateStep = void 0;
-var _decimal = _interopRequireDefault(require("decimal.js-light"));
-var _arithmetic = require("./util/arithmetic");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-/**
- * @fileOverview calculate tick values of scale
- * @author xile611, arcthur
- * @date 2015-09-17
- */
-
-/**
- * Calculate a interval of a minimum value and a maximum value
- *
- * @param  {Number} min       The minimum value
- * @param  {Number} max       The maximum value
- * @return {Array} An interval
- */
-var getValidInterval = _ref => {
-  var [min, max] = _ref;
-  var [validMin, validMax] = [min, max];
-
-  // exchange
-  if (min > max) {
-    [validMin, validMax] = [max, min];
-  }
-  return [validMin, validMax];
-};
-
-/**
- * Calculate the step which is easy to understand between ticks, like 10, 20, 25
- *
- * @param  roughStep        The rough step calculated by dividing the difference by the tickCount
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step which is easy to understand between two ticks
- */
-exports.getValidInterval = getValidInterval;
-var getFormatStep = (roughStep, allowDecimals, correctionFactor) => {
-  if (roughStep.lte(0)) {
-    return new _decimal.default(0);
-  }
-  var digitCount = (0, _arithmetic.getDigitCount)(roughStep.toNumber());
-  // The ratio between the rough step and the smallest number which has a bigger
-  // order of magnitudes than the rough step
-  var digitCountValue = new _decimal.default(10).pow(digitCount);
-  var stepRatio = roughStep.div(digitCountValue);
-  // When an integer and a float multiplied, the accuracy of result may be wrong
-  var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;
-  var amendStepRatio = new _decimal.default(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);
-  var formatStep = amendStepRatio.mul(digitCountValue);
-  return allowDecimals ? new _decimal.default(formatStep.toNumber()) : new _decimal.default(Math.ceil(formatStep.toNumber()));
-};
-
-/**
- * calculate the ticks when the minimum value equals to the maximum value
- *
- * @param  value         The minimum value which is also the maximum value
- * @param  tickCount     The count of ticks
- * @param  allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-exports.getFormatStep = getFormatStep;
-var getTickOfSingleValue = (value, tickCount, allowDecimals) => {
-  var step = new _decimal.default(1);
-  // calculate the middle value of ticks
-  var middle = new _decimal.default(value);
-  if (!middle.isint() && allowDecimals) {
-    var absVal = Math.abs(value);
-    if (absVal < 1) {
-      // The step should be a float number when the difference is smaller than 1
-      step = new _decimal.default(10).pow((0, _arithmetic.getDigitCount)(value) - 1);
-      middle = new _decimal.default(Math.floor(middle.div(step).toNumber())).mul(step);
-    } else if (absVal > 1) {
-      // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1
-      middle = new _decimal.default(Math.floor(value));
-    }
-  } else if (value === 0) {
-    middle = new _decimal.default(Math.floor((tickCount - 1) / 2));
-  } else if (!allowDecimals) {
-    middle = new _decimal.default(Math.floor(value));
-  }
-  var middleIndex = Math.floor((tickCount - 1) / 2);
-  var ticks = [];
-  for (var i = 0; i < tickCount; i++) {
-    ticks.push(middle.add(new _decimal.default(i - middleIndex).mul(step)).toNumber());
-  }
-  return ticks;
-};
-
-/**
- * Calculate the step
- *
- * @param  min              The minimum value of an interval
- * @param  max              The maximum value of an interval
- * @param  tickCount        The count of ticks
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step, minimum value of ticks, maximum value of ticks
- */
-exports.getTickOfSingleValue = getTickOfSingleValue;
-var _calculateStep = exports.calculateStep = function calculateStep(min, max, tickCount, allowDecimals) {
-  var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
-  // dirty hack (for recharts' test)
-  if (!Number.isFinite((max - min) / (tickCount - 1))) {
-    return {
-      step: new _decimal.default(0),
-      tickMin: new _decimal.default(0),
-      tickMax: new _decimal.default(0)
-    };
-  }
-
-  // The step which is easy to understand between two ticks
-  var step = getFormatStep(new _decimal.default(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);
-
-  // A medial value of ticks
-  var middle;
-
-  // When 0 is inside the interval, 0 should be a tick
-  if (min <= 0 && max >= 0) {
-    middle = new _decimal.default(0);
-  } else {
-    // calculate the middle value
-    middle = new _decimal.default(min).add(max).div(2);
-    // minus modulo value
-    middle = middle.sub(new _decimal.default(middle).mod(step));
-  }
-  var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());
-  var upCount = Math.ceil(new _decimal.default(max).sub(middle).div(step).toNumber());
-  var scaleCount = belowCount + upCount + 1;
-  if (scaleCount > tickCount) {
-    // When more ticks need to cover the interval, step should be bigger.
-    return _calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);
-  }
-  if (scaleCount < tickCount) {
-    // When less ticks can cover the interval, we should add some additional ticks
-    upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;
-    belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);
-  }
-  return {
-    step,
-    tickMin: middle.sub(new _decimal.default(belowCount).mul(step)),
-    tickMax: middle.add(new _decimal.default(upCount).mul(step))
-  };
-};
-
-/**
- * Calculate the ticks of an interval. Ticks can appear outside the interval
- * if it makes them more rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-var getNiceTickValues = exports.getNiceTickValues = function getNiceTickValues(_ref2) {
-  var [min, max] = _ref2;
-  var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;
-  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
-  // More than two ticks should be return
-  var count = Math.max(tickCount, 2);
-  var [cormin, cormax] = getValidInterval([min, max]);
-  if (cormin === -Infinity || cormax === Infinity) {
-    var _values = cormax === Infinity ? [cormin, ...Array(tickCount - 1).fill(Infinity)] : [...Array(tickCount - 1).fill(-Infinity), cormax];
-    return min > max ? _values.reverse() : _values;
-  }
-  if (cormin === cormax) {
-    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
-  }
-
-  // Get the step between two ticks
-  var {
-    step,
-    tickMin,
-    tickMax
-  } = _calculateStep(cormin, cormax, count, allowDecimals, 0);
-  var values = (0, _arithmetic.rangeStep)(tickMin, tickMax.add(new _decimal.default(0.1).mul(step)), step);
-  return min > max ? values.reverse() : values;
-};
-
-/**
- * Calculate the ticks of an interval.
- * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks. This function may return less than tickCount ticks if the interval is too small.
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-var getTickValuesFixedDomain = exports.getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref3, tickCount) {
-  var [min, max] = _ref3;
-  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
-  // More than two ticks should be return
-  var [cormin, cormax] = getValidInterval([min, max]);
-  if (cormin === -Infinity || cormax === Infinity) {
-    return [min, max];
-  }
-  if (cormin === cormax) {
-    return [cormin];
-  }
-  var count = Math.max(tickCount, 2);
-  var step = getFormatStep(new _decimal.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
-  var values = [...(0, _arithmetic.rangeStep)(new _decimal.default(cormin), new _decimal.default(cormax), step), cormax];
-  if (allowDecimals === false) {
-    /*
-     * allowDecimals is false means that we want to have integer ticks.
-     * The step is guaranteed to be an integer in the code above which is great start
-     * but when the first step is not an integer, it will start stepping from a decimal value anyway.
-     * So we need to round all the values to integers after the fact.
-     */
-    values = values.map(value => Math.round(value));
-  }
-  return min > max ? values.reverse() : values;
-};
Index: de_modules/recharts/lib/util/scale/index.js
===================================================================
--- node_modules/recharts/lib/util/scale/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "getNiceTickValues", {
-  enumerable: true,
-  get: function get() {
-    return _getNiceTickValues.getNiceTickValues;
-  }
-});
-Object.defineProperty(exports, "getTickValuesFixedDomain", {
-  enumerable: true,
-  get: function get() {
-    return _getNiceTickValues.getTickValuesFixedDomain;
-  }
-});
-var _getNiceTickValues = require("./getNiceTickValues");
Index: de_modules/recharts/lib/util/scale/util/arithmetic.js
===================================================================
--- node_modules/recharts/lib/util/scale/util/arithmetic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,56 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getDigitCount = getDigitCount;
-exports.rangeStep = rangeStep;
-var _decimal = _interopRequireDefault(require("decimal.js-light"));
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
-/**
- * @fileOverview Some common arithmetic methods
- * @author xile611
- * @date 2015-09-17
- */
-
-/**
- * Get the digit count of a number.
- * If the absolute value is in the interval [0.1, 1), the result is 0.
- * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.
- * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.
- *
- * @param  {Number} value The number
- * @return {Integer}      Digit count
- */
-function getDigitCount(value) {
-  var result;
-  if (value === 0) {
-    result = 1;
-  } else {
-    result = Math.floor(new _decimal.default(value).abs().log(10).toNumber()) + 1;
-  }
-  return result;
-}
-
-/**
- * Get the data in the interval [start, end) with a fixed step.
- * Also handles JS calculation precision issues.
- *
- * @param  {Decimal} start Start point
- * @param  {Decimal} end   End point, not included
- * @param  {Decimal} step  Step size
- * @return {Array}         Array of numbers
- */
-function rangeStep(start, end, step) {
-  var num = new _decimal.default(start);
-  var i = 0;
-  var result = [];
-
-  // magic number to prevent infinite loop
-  while (num.lt(end) && i < 100000) {
-    result.push(num.toNumber());
-    num = num.add(step);
-    i++;
-  }
-  return result;
-}
Index: de_modules/recharts/lib/util/stacks/getStackSeriesIdentifier.js
===================================================================
--- node_modules/recharts/lib/util/stacks/getStackSeriesIdentifier.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getStackSeriesIdentifier = getStackSeriesIdentifier;
-/**
- * Returns identifier for stack series which is one individual graphical item in the stack.
- * @param graphicalItem - The graphical item representing the series in the stack.
- * @return The identifier for the series in the stack
- */
-function getStackSeriesIdentifier(graphicalItem) {
-  return graphicalItem === null || graphicalItem === void 0 ? void 0 : graphicalItem.id;
-}
Index: de_modules/recharts/lib/util/stacks/stackTypes.js
===================================================================
--- node_modules/recharts/lib/util/stacks/stackTypes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";
Index: de_modules/recharts/lib/util/svgPropertiesAndEvents.js
===================================================================
--- node_modules/recharts/lib/util/svgPropertiesAndEvents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,57 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.svgPropertiesAndEvents = svgPropertiesAndEvents;
-exports.svgPropertiesAndEventsFromUnknown = svgPropertiesAndEventsFromUnknown;
-var _react = require("react");
-var _excludeEventProps = require("./excludeEventProps");
-var _svgPropertiesNoEvents = require("./svgPropertiesNoEvents");
-/**
- * Filters an object to only include SVG properties, data attributes, and event handlers.
- * @param obj - The object to filter.
- * @returns A new object containing only valid SVG properties, data attributes, and event handlers.
- */
-function svgPropertiesAndEvents(obj) {
-  var result = {};
-  // for ... in loop is 10x faster than Object.entries + filter + Object.fromEntries in Chrome
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      if ((0, _svgPropertiesNoEvents.isSvgElementPropKey)(key) || (0, _svgPropertiesNoEvents.isDataAttribute)(key) || (0, _excludeEventProps.isEventKey)(key)) {
-        result[key] = obj[key];
-      }
-    }
-  }
-  return result;
-}
-
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-function svgPropertiesAndEventsFromUnknown(input) {
-  if (input == null) {
-    return null;
-  }
-  if (/*#__PURE__*/(0, _react.isValidElement)(input)) {
-    // @ts-expect-error we can't type this better because input can be any React element
-    return svgPropertiesAndEvents(input.props);
-  }
-  if (typeof input === 'object' && !Array.isArray(input)) {
-    return svgPropertiesAndEvents(input);
-  }
-  return null;
-}
Index: de_modules/recharts/lib/util/svgPropertiesNoEvents.js
===================================================================
--- node_modules/recharts/lib/util/svgPropertiesNoEvents.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isDataAttribute = isDataAttribute;
-exports.isSvgElementPropKey = isSvgElementPropKey;
-exports.svgPropertiesNoEvents = svgPropertiesNoEvents;
-exports.svgPropertiesNoEventsFromUnknown = svgPropertiesNoEventsFromUnknown;
-var _react = require("react");
-var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',
-/*
- * removed 'type' SVGElementPropKey because we do not currently use any SVG elements
- * that can use it, and it conflicts with the recharts prop 'type'
- * https://github.com/recharts/recharts/pull/3327
- * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type
- */
-// 'type',
-'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];
-var SVGElementPropKeySet = new Set(SVGElementPropKeys);
-function isSvgElementPropKey(key) {
-  if (typeof key !== 'string') {
-    return false;
-  }
-  return SVGElementPropKeySet.has(key);
-}
-/**
- * Checks if the property is a data attribute.
- * @param key The property key.
- * @returns True if the key starts with 'data-', false otherwise.
- */
-function isDataAttribute(key) {
-  return typeof key === 'string' && key.startsWith('data-');
-}
-
-/**
- * Filters an object to only include SVG properties. Removes all event handlers too.
- * @param obj - The object to filter
- * @returns A new object containing only valid SVG properties, excluding event handlers.
- */
-function svgPropertiesNoEvents(obj) {
-  if (typeof obj !== 'object' || obj === null) {
-    return {};
-  }
-  var result = {};
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      if (isSvgElementPropKey(key) || isDataAttribute(key)) {
-        result[key] = obj[key];
-      }
-    }
-  }
-  return result;
-}
-
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-function svgPropertiesNoEventsFromUnknown(input) {
-  if (input == null) {
-    return null;
-  }
-  if (/*#__PURE__*/(0, _react.isValidElement)(input) && typeof input.props === 'object' && input.props !== null) {
-    var p = input.props;
-    return svgPropertiesNoEvents(p);
-  }
-  if (typeof input === 'object' && !Array.isArray(input)) {
-    return svgPropertiesNoEvents(input);
-  }
-  return null;
-}
Index: de_modules/recharts/lib/util/tooltip/translate.js
===================================================================
--- node_modules/recharts/lib/util/tooltip/translate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,133 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getTooltipCSSClassName = getTooltipCSSClassName;
-exports.getTooltipTranslate = getTooltipTranslate;
-exports.getTooltipTranslateXY = getTooltipTranslateXY;
-exports.getTransformStyle = getTransformStyle;
-var _clsx = require("clsx");
-var _DataUtils = require("../DataUtils");
-var CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';
-var TOOLTIP_HIDDEN = {
-  visibility: 'hidden'
-};
-function getTooltipCSSClassName(_ref) {
-  var {
-    coordinate,
-    translateX,
-    translateY
-  } = _ref;
-  return (0, _clsx.clsx)(CSS_CLASS_PREFIX, {
-    ["".concat(CSS_CLASS_PREFIX, "-right")]: (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX >= coordinate.x,
-    ["".concat(CSS_CLASS_PREFIX, "-left")]: (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX < coordinate.x,
-    ["".concat(CSS_CLASS_PREFIX, "-bottom")]: (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY >= coordinate.y,
-    ["".concat(CSS_CLASS_PREFIX, "-top")]: (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY < coordinate.y
-  });
-}
-function getTooltipTranslateXY(_ref2) {
-  var {
-    allowEscapeViewBox,
-    coordinate,
-    key,
-    offset,
-    position,
-    reverseDirection,
-    tooltipDimension,
-    viewBox,
-    viewBoxDimension
-  } = _ref2;
-  if (position && (0, _DataUtils.isNumber)(position[key])) {
-    return position[key];
-  }
-  var negative = coordinate[key] - tooltipDimension - (offset > 0 ? offset : 0);
-  var positive = coordinate[key] + offset;
-  if (allowEscapeViewBox[key]) {
-    return reverseDirection[key] ? negative : positive;
-  }
-  var viewBoxKey = viewBox[key];
-  if (viewBoxKey == null) {
-    return 0;
-  }
-  if (reverseDirection[key]) {
-    var _tooltipBoundary = negative;
-    var _viewBoxBoundary = viewBoxKey;
-    if (_tooltipBoundary < _viewBoxBoundary) {
-      return Math.max(positive, viewBoxKey);
-    }
-    return Math.max(negative, viewBoxKey);
-  }
-  if (viewBoxDimension == null) {
-    return 0;
-  }
-  var tooltipBoundary = positive + tooltipDimension;
-  var viewBoxBoundary = viewBoxKey + viewBoxDimension;
-  if (tooltipBoundary > viewBoxBoundary) {
-    return Math.max(negative, viewBoxKey);
-  }
-  return Math.max(positive, viewBoxKey);
-}
-function getTransformStyle(_ref3) {
-  var {
-    translateX,
-    translateY,
-    useTranslate3d
-  } = _ref3;
-  return {
-    transform: useTranslate3d ? "translate3d(".concat(translateX, "px, ").concat(translateY, "px, 0)") : "translate(".concat(translateX, "px, ").concat(translateY, "px)")
-  };
-}
-function getTooltipTranslate(_ref4) {
-  var {
-    allowEscapeViewBox,
-    coordinate,
-    offsetTop,
-    offsetLeft,
-    position,
-    reverseDirection,
-    tooltipBox,
-    useTranslate3d,
-    viewBox
-  } = _ref4;
-  var cssProperties, translateX, translateY;
-  if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {
-    translateX = getTooltipTranslateXY({
-      allowEscapeViewBox,
-      coordinate,
-      key: 'x',
-      offset: offsetLeft,
-      position,
-      reverseDirection,
-      tooltipDimension: tooltipBox.width,
-      viewBox,
-      viewBoxDimension: viewBox.width
-    });
-    translateY = getTooltipTranslateXY({
-      allowEscapeViewBox,
-      coordinate,
-      key: 'y',
-      offset: offsetTop,
-      position,
-      reverseDirection,
-      tooltipDimension: tooltipBox.height,
-      viewBox,
-      viewBoxDimension: viewBox.height
-    });
-    cssProperties = getTransformStyle({
-      translateX,
-      translateY,
-      useTranslate3d
-    });
-  } else {
-    cssProperties = TOOLTIP_HIDDEN;
-  }
-  return {
-    cssProperties,
-    cssClasses: getTooltipCSSClassName({
-      translateX,
-      translateY,
-      coordinate
-    })
-  };
-}
Index: de_modules/recharts/lib/util/types.js
===================================================================
--- node_modules/recharts/lib/util/types.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,254 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isPolarCoordinate = exports.isNonEmptyArray = exports.adaptEventsOfChild = exports.adaptEventHandlers = void 0;
-var _react = require("react");
-var _excludeEventProps = require("./excludeEventProps");
-/**
- * Determines how values are stacked:
- *
- * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.
- * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.
- * - `wiggle` and `silhouette` tries to keep the chart centered.
- * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.
- * - `positive` ignores all negative values, and then behaves like \`none\`.
- *
- * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}
- * (note that the `diverging` offset in d3 is named `sign` in recharts)
- *
- * @inline
- */
-
-/**
- * @deprecated use either `CartesianLayout` or `PolarLayout` instead.
- * Mixing both charts families leads to ambiguity in the type system.
- * These two layouts share very few properties, so it is best to keep them separate.
- */
-
-/**
- * The type of axis.
- *
- * `category`: Treats data as distinct values.
- * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
- *
- * `number`: Treats data as continuous range.
- * Values that are numerically closer are placed closer together on the axis.
- *
- * `auto`: the type is inferred based on the chart layout.
- *
- * This is external type - users will provide this type in props.
- * Internally we will evaluate it to either 'category' or 'number' based on the layout,
- * before sending it to the store.
- *
- * @inline
- */
-
-/**
- * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',
- * based on the chart layout and axis kind. Then they can start using this type.
- */
-
-/**
- * Extracts values from data objects.
- *
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-
-/**
- * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.
- * Instead, use either `Coordinate` or `PolarCoordinate`.
- */
-
-var isPolarCoordinate = c => {
-  return 'radius' in c && 'startAngle' in c && 'endAngle' in c;
-};
-
-/**
- * String shortcuts for scale types.
- * In case none of these does what you want you can also provide your own scale function
- * @see {@link CustomScaleDefinition}
- */
-
-//
-// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.
-//
-
-/**
- * The type of easing function to use for animations
- *
- * @inline
- */
-
-/** Specifies the duration of animation, the unit of this option is ms. */
-
-/**
- * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.
- * We use it internally but let's not expose it to the outside world.
- * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.
- */
-
-/**
- * The domain of axis.
- * This is the definition
- *
- * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.
- * Categorical domain is defined as array of all possible values.
- *
- * Can be specified in many ways:
- * - array of numbers
- * - with special strings like 'dataMin' and 'dataMax'
- * - with special string math like 'dataMin - 100'
- * - with keyword 'auto'
- * - or a function
- * - array of functions
- * - or a combination of the above
- */
-
-/**
- * NumberDomain is an evaluated {@link AxisDomain}.
- * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.
- * This is after all the keywords and functions were evaluated and what is left is [min, max].
- *
- * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.
- *
- * There are also `category` axes that have different things than numbers in their domain.
- */
-
-/**
- * Props shared in all renderable axes - meaning the ones that are drawn on the chart,
- * can have ticks, axis line, etc.
- */
-
-/** Defines how ticks are placed and whether / how tick collisions are handled.
- * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.
- * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.
- * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.
- * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.
- * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.
- */
-
-/**
- * Ticks can be any type when the axis is the type of category.
- *
- * Ticks must be numbers when the axis is the type of number.
- */
-
-/**
- * @inline
- */
-
-/**
- * @inline
- */
-exports.isPolarCoordinate = isPolarCoordinate;
-var adaptEventHandlers = (props, newHandler) => {
-  if (!props || typeof props === 'function' || typeof props === 'boolean') {
-    return null;
-  }
-  var inputProps = props;
-  if (/*#__PURE__*/(0, _react.isValidElement)(props)) {
-    inputProps = props.props;
-  }
-  if (typeof inputProps !== 'object' && typeof inputProps !== 'function') {
-    return null;
-  }
-  var out = {};
-  Object.keys(inputProps).forEach(key => {
-    if ((0, _excludeEventProps.isEventKey)(key)) {
-      out[key] = newHandler || (e => inputProps[key](inputProps, e));
-    }
-  });
-  return out;
-};
-exports.adaptEventHandlers = adaptEventHandlers;
-var getEventHandlerOfChild = (originalHandler, data, index) => e => {
-  originalHandler(data, index, e);
-  return null;
-};
-var adaptEventsOfChild = (props, data, index) => {
-  if (props === null || typeof props !== 'object' && typeof props !== 'function') {
-    return null;
-  }
-  var out = null;
-  Object.keys(props).forEach(key => {
-    var item = props[key];
-    if ((0, _excludeEventProps.isEventKey)(key) && typeof item === 'function') {
-      if (!out) out = {};
-      out[key] = getEventHandlerOfChild(item, data, index);
-    }
-  });
-  return out;
-};
-
-/**
- * 'axis' means that all graphical items belonging to this axis tick will be highlighted,
- * and all will be present in the tooltip.
- * Tooltip with 'axis' will display when hovering on the chart background.
- *
- * 'item' means only the one graphical item being hovered will show in the tooltip.
- * Tooltip with 'item' will display when hovering over individual graphical items.
- *
- * This is calculated internally;
- * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.
- *
- * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,
- * and charts will then see what is allowed and what is not.
- */
-
-/**
- * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component
- */
-
-/**
- * This is the type of `activeDot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-
-/**
- * Inside the dot event handlers we provide extra information about the dot point
- * that the Dot component itself does not need but users might find useful.
- */
-
-/**
- * This is the type of `dot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-
-/**
- * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.
- *
- * This is meant to represent the React.MouseEvent
- * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
- */
-
-/**
- * Coordinates relative to the top-left corner of the chart.
- * Also include scale which means that a chart that's scaled will return the same coordinates as a chart that's not scaled.
- */
-
-/**
- * Props shared with all charts.
- */
-exports.adaptEventsOfChild = adaptEventsOfChild;
-var isNonEmptyArray = arr => {
-  return Array.isArray(arr) && arr.length > 0;
-};
-exports.isNonEmptyArray = isNonEmptyArray;
Index: de_modules/recharts/lib/util/useAnimationId.js
===================================================================
--- node_modules/recharts/lib/util/useAnimationId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useAnimationId = useAnimationId;
-var _react = require("react");
-var _DataUtils = require("./DataUtils");
-/**
- * This hook returns a unique animation id for the object input.
- * If input changes (as in, reference equality is different), the animation id will change.
- * If input does not change, the animation id will not change.
- *
- * This is useful for animations. The Animate component
- * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.
- * Also, we don't always want to re-animate on every render;
- * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).
- *
- * @param input The object to check for changes. Uses reference equality (=== operator)
- * @param prefix Optional prefix to use for the animation id
- * @returns A unique animation id
- */
-function useAnimationId(input) {
-  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'animation-';
-  var animationId = (0, _react.useRef)((0, _DataUtils.uniqueId)(prefix));
-  var prevProps = (0, _react.useRef)(input);
-  if (prevProps.current !== input) {
-    animationId.current = (0, _DataUtils.uniqueId)(prefix);
-    prevProps.current = input;
-  }
-  return animationId.current;
-}
Index: de_modules/recharts/lib/util/useElementOffset.js
===================================================================
--- node_modules/recharts/lib/util/useElementOffset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useElementOffset = useElementOffset;
-var _react = require("react");
-var EPS = 1;
-
-/**
- * TODO this documentation does not reflect what this hook is doing, update it.
- * Stores the `offsetHeight`, `offsetLeft`, `offsetTop`, and `offsetWidth` of a DOM element.
- */
-
-/**
- * Use this to listen to element layout changes.
- *
- * Very useful for reading actual sizes of DOM elements relative to the viewport.
- *
- * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.
- * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`
- */
-function useElementOffset() {
-  var extraDependencies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var [lastBoundingBox, setLastBoundingBox] = (0, _react.useState)({
-    height: 0,
-    left: 0,
-    top: 0,
-    width: 0
-  });
-  var updateBoundingBox = (0, _react.useCallback)(node => {
-    if (node != null) {
-      var rect = node.getBoundingClientRect();
-      var box = {
-        height: rect.height,
-        left: rect.left,
-        top: rect.top,
-        width: rect.width
-      };
-      if (Math.abs(box.height - lastBoundingBox.height) > EPS || Math.abs(box.left - lastBoundingBox.left) > EPS || Math.abs(box.top - lastBoundingBox.top) > EPS || Math.abs(box.width - lastBoundingBox.width) > EPS) {
-        setLastBoundingBox({
-          height: box.height,
-          left: box.left,
-          top: box.top,
-          width: box.width
-        });
-      }
-    }
-  },
-  // eslint-disable-next-line react-hooks/exhaustive-deps
-  [lastBoundingBox.width, lastBoundingBox.height, lastBoundingBox.top, lastBoundingBox.left, ...extraDependencies]);
-  return [lastBoundingBox, updateBoundingBox];
-}
Index: de_modules/recharts/lib/util/useId.js
===================================================================
--- node_modules/recharts/lib/util/useId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useIdFallback = exports.useId = void 0;
-var React = _interopRequireWildcard(require("react"));
-var _DataUtils = require("./DataUtils");
-var _ref;
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-/**
- * Fallback for React.useId() for versions prior to React 18.
- * Generates a unique ID using a simple counter and a prefix.
- *
- * @returns A unique ID that remains consistent across renders.
- */
-var useIdFallback = () => {
-  var [id] = React.useState(() => (0, _DataUtils.uniqueId)('uid-'));
-  return id;
-};
-
-/*
- * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.
- * See https://github.com/webpack/webpack/issues/14814
- */
-exports.useIdFallback = useIdFallback;
-var useId = exports.useId = (_ref = React['useId'.toString()]) !== null && _ref !== void 0 ? _ref : useIdFallback;
Index: de_modules/recharts/lib/util/useReportScale.js
===================================================================
--- node_modules/recharts/lib/util/useReportScale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useReportScale = useReportScale;
-var _react = require("react");
-var _hooks = require("../state/hooks");
-var _containerSelectors = require("../state/selectors/containerSelectors");
-var _layoutSlice = require("../state/layoutSlice");
-var _isWellBehavedNumber = require("./isWellBehavedNumber");
-function useReportScale() {
-  var dispatch = (0, _hooks.useAppDispatch)();
-  var [ref, setRef] = (0, _react.useState)(null);
-  var scale = (0, _hooks.useAppSelector)(_containerSelectors.selectContainerScale);
-  (0, _react.useEffect)(() => {
-    if (ref == null) {
-      return;
-    }
-    var rect = ref.getBoundingClientRect();
-    var newScale = rect.width / ref.offsetWidth;
-    if ((0, _isWellBehavedNumber.isWellBehavedNumber)(newScale) && newScale !== scale) {
-      dispatch((0, _layoutSlice.setScale)(newScale));
-    }
-  }, [ref, dispatch, scale]);
-  return setRef;
-}
Index: de_modules/recharts/lib/util/useUniqueId.js
===================================================================
--- node_modules/recharts/lib/util/useUniqueId.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.useUniqueId = useUniqueId;
-var _useId = require("./useId");
-/**
- * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety
- * and falls back to a client-side-only unique ID generator for older versions.
- *
- * The ID will stay the same across renders, and you can optionally provide a prefix.
- *
- * @param [prefix] - An optional prefix for the generated ID.
- * @param [customId] - An optional custom ID to override the generated one.
- * @returns The unique ID.
- */
-function useUniqueId(prefix, customId) {
-  /*
-   * We have to call this hook here even if we don't use the result because
-   * rules of hooks demand that hooks are never called conditionally.
-   */
-  var generatedId = (0, _useId.useId)();
-
-  // If a custom ID is provided, it always takes precedence.
-  if (customId) {
-    return customId;
-  }
-
-  // Apply the prefix if one was provided.
-  return prefix ? "".concat(prefix, "-").concat(generatedId) : generatedId;
-}
-
-/**
- * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.
- * Either way the ID is now guaranteed to be present so no more nulls or undefined.
- */
Index: de_modules/recharts/lib/zIndex/DefaultZIndexes.js
===================================================================
--- node_modules/recharts/lib/zIndex/DefaultZIndexes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.DefaultZIndexes = void 0;
-/**
- * A collection of all default zIndex values used by Recharts.
- *
- * You can reuse these, or you can define your own.
- */
-var DefaultZIndexes = exports.DefaultZIndexes = {
-  /**
-   * CartesianGrid and PolarGrid
-   */
-  grid: -100,
-  /**
-   * Background of Bar and RadialBar.
-   * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.
-   */
-  barBackground: -50,
-  /*
-   * other chart elements or custom elements without specific zIndex
-   * render in here, at zIndex 0
-   */
-
-  /**
-   * Area, Pie, Radar, and ReferenceArea
-   */
-  area: 100,
-  /**
-   * Cursor is embedded inside Tooltip and controlled by it.
-   * The Tooltip itself has a separate portal and is not included in the zIndex system;
-   * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.
-   * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.
-   */
-  cursorRectangle: 200,
-  /**
-   * Bar and RadialBar
-   */
-  bar: 300,
-  /**
-   * Line and ReferenceLine, and ErrorBor
-   */
-  line: 400,
-  /**
-   * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children
-   */
-  axis: 500,
-  /**
-   * Scatter and ReferenceDot,
-   * and Dots of Line and Area and Radar if they have dot=true
-   */
-  scatter: 600,
-  /**
-   * Hovering over a Bar or RadialBar renders a highlight rectangle
-   */
-  activeBar: 1000,
-  /**
-   * Cursor is embedded inside Tooltip and controlled by it.
-   * The Tooltip itself has a separate portal and is not included in the zIndex system;
-   * Cursor is the decoration inside the chart area, usually a cross or a box.
-   * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.
-   * It renders above the Line and Scatter so that it is always visible.
-   * It renders below active dot so that the dot is always visible and shows the current point.
-   * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.
-   *
-   * This also applies to the radial cursor in RadialBarChart.
-   */
-  cursorLine: 1100,
-  /**
-   * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot
-   */
-  activeDot: 1200,
-  /**
-   * LabelList and Label, including Axis labels
-   */
-  label: 2000
-};
Index: de_modules/recharts/lib/zIndex/ZIndexLayer.js
===================================================================
--- node_modules/recharts/lib/zIndex/ZIndexLayer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ZIndexLayer = ZIndexLayer;
-var _react = require("react");
-var _reactDom = require("react-dom");
-var _DataUtils = require("../util/DataUtils");
-var _hooks = require("../state/hooks");
-var _zIndexSelectors = require("./zIndexSelectors");
-var _zIndexSlice = require("../state/zIndexSlice");
-var _chartLayoutContext = require("../context/chartLayoutContext");
-var _PanoramaContext = require("../context/PanoramaContext");
-/**
- * @since 3.4
- */
-
-/**
- * A layer that renders its children into a portal corresponding to the given zIndex.
- * We can't use regular CSS `z-index` because SVG does not support it.
- * So instead, we create separate DOM nodes for each zIndex layer
- * and render the children into the corresponding DOM node using React portals.
- *
- * This component must be used inside a Chart component.
- *
- * @param zIndex numeric zIndex value, higher values are rendered on top of lower values
- * @param children the content to render inside this zIndex layer
- *
- * @since 3.4
- */
-function ZIndexLayer(_ref) {
-  var {
-    zIndex,
-    children
-  } = _ref;
-  /*
-   * If we are outside of chart, then we can't rely on the zIndex portal state,
-   * so we just render normally.
-   */
-  var isInChartContext = (0, _chartLayoutContext.useIsInChartContext)();
-  /*
-   * If zIndex is undefined then we render normally without portals.
-   * Also, if zIndex is 0, we render normally without portals,
-   * because 0 is the default layer that does not need a portal.
-   */
-  var shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;
-  var isPanorama = (0, _PanoramaContext.useIsPanorama)();
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useLayoutEffect)(() => {
-    if (!shouldRenderInPortal) {
-      // Nothing to do. We have to call the hook because of the rules of hooks.
-      return _DataUtils.noop;
-    }
-    /*
-     * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,
-     * but we allow users to define any zIndex at any time), we need to register
-     * the requested zIndex in the global store. This way, the ZIndexPortals component
-     * can render the corresponding portals and only the requested ones.
-     */
-    dispatch((0, _zIndexSlice.registerZIndexPortal)({
-      zIndex
-    }));
-    return () => {
-      dispatch((0, _zIndexSlice.unregisterZIndexPortal)({
-        zIndex
-      }));
-    };
-  }, [dispatch, zIndex, shouldRenderInPortal]);
-  var portalElement = (0, _hooks.useAppSelector)(state => (0, _zIndexSelectors.selectZIndexPortalElement)(state, zIndex, isPanorama));
-  if (!shouldRenderInPortal) {
-    // If no zIndex is provided or zIndex is 0, render normally without portals
-    return children;
-  }
-  if (!portalElement) {
-    /*
-     * If we don't have a portal element yet, this means that the registration
-     * has not been processed yet by the ZIndexPortals component.
-     * So here we render null and wait for the next render cycle.
-     */
-    return null;
-  }
-  return /*#__PURE__*/(0, _reactDom.createPortal)(children, portalElement);
-}
Index: de_modules/recharts/lib/zIndex/ZIndexPortal.js
===================================================================
--- node_modules/recharts/lib/zIndex/ZIndexPortal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.AllZIndexPortals = AllZIndexPortals;
-var _react = _interopRequireWildcard(require("react"));
-var React = _react;
-var _hooks = require("../state/hooks");
-var _zIndexSlice = require("../state/zIndexSlice");
-var _zIndexSelectors = require("./zIndexSelectors");
-function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
-function ZIndexSvgPortal(_ref) {
-  var {
-    zIndex,
-    isPanorama
-  } = _ref;
-  var ref = (0, _react.useRef)(null);
-  var dispatch = (0, _hooks.useAppDispatch)();
-  (0, _react.useLayoutEffect)(() => {
-    if (ref.current) {
-      dispatch((0, _zIndexSlice.registerZIndexPortalElement)({
-        zIndex,
-        element: ref.current,
-        isPanorama
-      }));
-    }
-    return () => {
-      dispatch((0, _zIndexSlice.unregisterZIndexPortalElement)({
-        zIndex,
-        isPanorama
-      }));
-    };
-  }, [dispatch, zIndex, isPanorama]);
-  // these g elements should not be tabbable
-  return /*#__PURE__*/React.createElement("g", {
-    tabIndex: -1,
-    ref: ref
-  });
-}
-function AllZIndexPortals(_ref2) {
-  var {
-    children,
-    isPanorama
-  } = _ref2;
-  var allRegisteredZIndexes = (0, _hooks.useAppSelector)(_zIndexSelectors.selectAllRegisteredZIndexes);
-  if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {
-    return children;
-  }
-  var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);
-  // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.
-  var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);
-  return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
-    key: zIndex,
-    zIndex: zIndex,
-    isPanorama: isPanorama
-  })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
-    key: zIndex,
-    zIndex: zIndex,
-    isPanorama: isPanorama
-  })));
-}
Index: de_modules/recharts/lib/zIndex/getZIndexFromUnknown.js
===================================================================
--- node_modules/recharts/lib/zIndex/getZIndexFromUnknown.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getZIndexFromUnknown = getZIndexFromUnknown;
-var _isWellBehavedNumber = require("../util/isWellBehavedNumber");
-function getZIndexFromUnknown(input, defaultZIndex) {
-  if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && (0, _isWellBehavedNumber.isWellBehavedNumber)(input.zIndex)) {
-    return input.zIndex;
-  }
-  return defaultZIndex;
-}
Index: de_modules/recharts/lib/zIndex/zIndexSelectors.js
===================================================================
--- node_modules/recharts/lib/zIndex/zIndexSelectors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.selectZIndexPortalElement = exports.selectAllRegisteredZIndexes = void 0;
-var _reselect = require("reselect");
-var _arrayEqualityCheck = require("../state/selectors/arrayEqualityCheck");
-var _DefaultZIndexes = require("./DefaultZIndexes");
-/**
- * Given a zIndex, returns the corresponding portal element reference.
- * If no zIndex is provided or if the zIndex is not registered, returns undefined.
- *
- * It also returns undefined in case the z-index portal has not been rendered yet.
- */
-var selectZIndexPortalElement = exports.selectZIndexPortalElement = (0, _reselect.createSelector)(state => state.zIndex.zIndexMap, (_, zIndex) => zIndex, (_, _zIndex, isPanorama) => isPanorama, (zIndexMap, zIndex, isPanorama) => {
-  if (zIndex == null) {
-    return undefined;
-  }
-  var entry = zIndexMap[zIndex];
-  if (entry == null) {
-    return undefined;
-  }
-  if (isPanorama) {
-    return entry.panoramaElement;
-  }
-  return entry.element;
-});
-var selectAllRegisteredZIndexes = exports.selectAllRegisteredZIndexes = (0, _reselect.createSelector)(state => state.zIndex.zIndexMap, zIndexMap => {
-  var allNumbers = Object.keys(zIndexMap).map(zIndexStr => parseInt(zIndexStr, 10)).concat(Object.values(_DefaultZIndexes.DefaultZIndexes));
-  var uniqueNumbers = Array.from(new Set(allNumbers));
-  return uniqueNumbers.sort((a, b) => a - b);
-}, {
-  memoizeOptions: {
-    resultEqualityCheck: _arrayEqualityCheck.arrayContentsAreEqualCheck
-  }
-});
Index: de_modules/recharts/package.json
===================================================================
--- node_modules/recharts/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,191 +1,0 @@
-{
-  "name": "recharts",
-  "version": "3.7.0",
-  "description": "React charts",
-  "main": "lib/index.js",
-  "module": "es6/index.js",
-  "jsnext:main": "es6/index.js",
-  "types": "types/index.d.ts",
-  "sideEffects": false,
-  "workspaces": [
-    "www"
-  ],
-  "files": [
-    "*.md",
-    "es6",
-    "lib",
-    "umd",
-    "types"
-  ],
-  "keywords": [
-    "react",
-    "reactjs",
-    "chart",
-    "react-component"
-  ],
-  "scripts": {
-    "prepare": "husky",
-    "prebuild": "npm run lint",
-    "build": "npm run build-types && npm run build-cjs && npm run build-es6 && npm run build-umd && npm run test-build-output",
-    "build-cjs": "rimraf lib && cross-env NODE_ENV=commonjs babel ./src -d lib --extensions '.js,.ts,.tsx'",
-    "build-es6": "rimraf es6 && cross-env NODE_ENV=es6 babel ./src -d es6 --extensions '.js,.ts,.tsx'",
-    "build-umd": "rimraf umd && cross-env NODE_ENV=production webpack -o umd",
-    "build-types": "rimraf types && npm run tsc",
-    "check-types": "tsc --noEmit && npm run check-types-test && npm run check-types-storybook && npm run check-types-website",
-    "check-types-test": "tsc --project test/tsconfig.json",
-    "check-types-storybook": "tsc --project storybook/tsconfig.json",
-    "check-types-website": "tsc --project www/tsconfig.json",
-    "check-playwright-versions": "node scripts/check-playwright-versions.mjs",
-    "test": "vitest run --config vitest.config.mts --project unit:*",
-    "test-lib": "vitest run --config vitest.config.mts --project unit:lib",
-    "test-website": "vitest run --config vitest.config.mts --project unit:website",
-    "test-coverage": "vitest run --config vitest.config.mts --coverage --project unit:*",
-    "test-omnidoc": "vitest run --project unit:omnidoc --config vitest.config.mts",
-    "test-exports": "vitest run scripts/verify-exports.test.ts",
-    "omnidoc": "npx tsx omnidoc/generateApiDoc.ts && npx tsx omnidoc/generateStorybookArgs.ts && prettier www/src/docs/api storybook/stories/API/arg-types --write",
-    "test-mutation": "stryker run",
-    "test-watch": "vitest --config vitest.config.mts --project unit:*",
-    "lint": "eslint .",
-    "autofix": "eslint . --fix",
-    "analyse": "cross-env NODE_ENV=analyse webpack -o umd/Recharts.js",
-    "prettier": "prettier . --write",
-    "tsc": "tsc",
-    "storybook-doctor": "npx storybook doctor --config-dir storybook",
-    "storybook": "npx storybook dev -p 6006 -c storybook",
-    "build-storybook": "npx storybook build -o storybook/public -c storybook",
-    "chromatic": "npx chromatic",
-    "test-build-output": "vitest run --project build-output --config vitest.config.mts",
-    "test-storybook": "vitest --config vitest.config.mts --project storybook",
-    "test-vr:prepare": "docker compose up -d --build",
-    "test-vr": "docker compose run --rm test-vr playwright-test",
-    "test-vr:update": "docker compose run --rm test-vr playwright-test --update-snapshots",
-    "test-vr:ui": "docker compose run -p 8080:8080 --rm test-vr playwright-test --ui --ui-host=0.0.0.0 --ui-port=8080",
-    "test-vr:report": "npx playwright show-report test-vr/playwright-report"
-  },
-  "lint-staged": {
-    "*.{ts,tsx,js,jsx}": [
-      "eslint --fix",
-      "prettier --write"
-    ]
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/recharts/recharts.git"
-  },
-  "author": {
-    "name": "recharts group"
-  },
-  "bugs": {
-    "url": "https://github.com/recharts/recharts/issues"
-  },
-  "homepage": "https://github.com/recharts/recharts",
-  "peerDependencies": {
-    "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-    "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-    "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-  },
-  "dependencies": {
-    "@reduxjs/toolkit": "1.x.x || 2.x.x",
-    "clsx": "^2.1.1",
-    "decimal.js-light": "^2.5.1",
-    "es-toolkit": "^1.39.3",
-    "eventemitter3": "^5.0.1",
-    "immer": "^10.1.1",
-    "react-redux": "8.x.x || 9.x.x",
-    "reselect": "5.1.1",
-    "tiny-invariant": "^1.3.3",
-    "use-sync-external-store": "^1.2.2",
-    "victory-vendor": "^37.0.2"
-  },
-  "devDependencies": {
-    "@babel/cli": "^7.24.8",
-    "@babel/core": "^7.24.9",
-    "@babel/preset-env": "^7.24.8",
-    "@babel/preset-react": "^7.24.7",
-    "@babel/preset-typescript": "^7.24.7",
-    "@babel/runtime": "^7.26.10",
-    "@chromatic-com/storybook": "^4.0.1",
-    "@codecov/bundle-analyzer": "^1.9.1",
-    "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
-    "@eslint/compat": "^1.3.2",
-    "@eslint/js": "^9.35.0",
-    "@playwright/experimental-ct-react": "1.57.0",
-    "@recharts/devtools": "^0.0.7",
-    "@reduxjs/toolkit": "^1.9.7",
-    "@stackblitz/sdk": "^1.11.0",
-    "@storybook/addon-a11y": "^9.0.17",
-    "@storybook/addon-docs": "^9.0.17",
-    "@storybook/addon-links": "^9.0.17",
-    "@storybook/addon-onboarding": "^9.0.17",
-    "@storybook/addon-vitest": "^9.0.17",
-    "@storybook/builder-vite": "^9.0.17",
-    "@storybook/icons": "^1.2.12",
-    "@storybook/react-vite": "^9.0.17",
-    "@stryker-mutator/typescript-checker": "^9.2.0",
-    "@stryker-mutator/vitest-runner": "^9.2.0",
-    "@testing-library/jest-dom": "^6.4.8",
-    "@testing-library/react": "^16.0.0",
-    "@testing-library/user-event": "^14.5.2",
-    "@types/d3-interpolate": "^3.0.4",
-    "@types/d3-shape": "^3.1.6",
-    "@types/d3-time-format": "^4.0.3",
-    "@types/node": "24.x.x",
-    "@types/react": "^18.3.3",
-    "@types/react-dom": "^18.3.0",
-    "@types/react-is": "^18.3.0",
-    "@vitejs/plugin-react": "^4.3.1",
-    "@vitest/browser": "3.2.4",
-    "@vitest/coverage-v8": "^3.2.3",
-    "babel-loader": "^9.1.3",
-    "babel-plugin-dev-expression": "^0.2.3",
-    "babel-plugin-transform-define": "^2.1.4",
-    "browserslist": "^4.23.2",
-    "chromatic": "^11.5.6",
-    "cross-env": "^7.0.3",
-    "d3-scale-chromatic": "^3.1.0",
-    "d3-time": "^3.1.0",
-    "d3-time-format": "^4.1.0",
-    "diff": "^8.0.2",
-    "eslint": "^9.35.0",
-    "eslint-config-airbnb-extended": "^2.2.0",
-    "eslint-config-prettier": "^10.1.8",
-    "eslint-import-resolver-typescript": "^4.4.4",
-    "eslint-plugin-import": "^2.32.0",
-    "eslint-plugin-jsdoc": "^61.5.0",
-    "eslint-plugin-jsx-a11y": "^6.10.2",
-    "eslint-plugin-prettier": "^5.5.4",
-    "eslint-plugin-react": "^7.37.5",
-    "eslint-plugin-react-hooks": "^5.2.0",
-    "eslint-plugin-react-perf": "^3.3.3",
-    "eslint-plugin-storybook": "^9.1.5",
-    "glob": "^11.0.0",
-    "globals": "^16.3.0",
-    "husky": "^9.1.1",
-    "jsdom": "^24.1.1",
-    "lint-staged": "^15.2.7",
-    "marked": "^17.0.1",
-    "playwright": "1.57.0",
-    "prettier": "^3.6.2",
-    "react": "^18.3.1",
-    "react-dom": "^18.3.1",
-    "react-is": "^18.3.1",
-    "react-redux": "^8.1.3",
-    "rimraf": "^6.0.1",
-    "storybook": "^9.0.17",
-    "terser-webpack-plugin": "^5.3.10",
-    "ts-loader": "^9.5.1",
-    "ts-morph": "^27.0.2",
-    "typescript": "^5.7.2",
-    "typescript-eslint": "^8.42.0",
-    "update-browserslist-db": "^1.1.0",
-    "vitest": "^3.2.3",
-    "vitest-axe": "^0.1.0",
-    "webpack": "^5.93.0",
-    "webpack-bundle-analyzer": "^4.10.2",
-    "webpack-cli": "^5.1.4"
-  },
-  "engines": {
-    "node": ">=18"
-  },
-  "license": "MIT"
-}
Index: de_modules/recharts/types/animation/AnimationManager.d.ts
===================================================================
--- node_modules/recharts/types/animation/AnimationManager.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { TimeoutController } from './timeoutController';
-import { StartAnimationFunction } from './configUpdate';
-export type ReactSmoothStyle = string | Record<string, unknown>;
-/**
- * Represents a single item in the ReactSmoothQueue.
- * The item can be:
- * - A number representing a delay in milliseconds.
- * - An object representing a style change
- * - A StartAnimationFunction that starts eased transition and calls different render
- *      because of course in Recharts we have to have three ways to do everything
- * - An arbitrary function to be executed
- */
-export type ReactSmoothQueueItem = number | ReactSmoothStyle | StartAnimationFunction | (() => void);
-export type ReactSmoothQueue = ReadonlyArray<ReactSmoothQueueItem>;
-export type HandleChangeFn = (currentStyle: ReactSmoothStyle) => null | void;
-export type AnimationManager = {
-    stop: () => void;
-    start: (style: ReactSmoothQueue) => void;
-    subscribe: (handleChange: (style: ReactSmoothStyle) => void) => () => void;
-    getTimeoutController(): TimeoutController;
-};
-export declare function createAnimateManager(timeoutController: TimeoutController): AnimationManager;
Index: de_modules/recharts/types/animation/CSSTransitionAnimate.d.ts
===================================================================
--- node_modules/recharts/types/animation/CSSTransitionAnimate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import * as React from 'react';
-import { CSSProperties } from 'react';
-import { AnimationManager } from './AnimationManager';
-type CSSTransitionAnimateProps = {
-    animationId: string;
-    animationManager?: AnimationManager;
-    duration?: number;
-    begin?: number;
-    easing?: string;
-    isActive?: boolean | 'auto';
-    canBegin?: boolean;
-    from: string;
-    to: string;
-    attributeName: string;
-    onAnimationStart?: () => void;
-    onAnimationEnd?: () => void;
-    children: (style: CSSProperties | undefined) => React.ReactNode;
-};
-export declare function CSSTransitionAnimate(outsideProps: CSSTransitionAnimateProps): React.ReactNode;
-export {};
Index: de_modules/recharts/types/animation/JavascriptAnimate.d.ts
===================================================================
--- node_modules/recharts/types/animation/JavascriptAnimate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import * as React from 'react';
-import { EasingInput } from './easing';
-import { AnimationManager } from './AnimationManager';
-type JavascriptAnimateProps = {
-    animationId: string;
-    animationManager?: AnimationManager;
-    duration?: number;
-    begin?: number;
-    easing?: EasingInput;
-    isActive?: boolean | 'auto';
-    canBegin?: boolean;
-    onAnimationStart?: () => void;
-    onAnimationEnd?: () => void;
-    children: (time: number) => React.ReactNode;
-};
-export declare function JavascriptAnimate(outsideProps: JavascriptAnimateProps): React.ReactNode;
-export {};
Index: de_modules/recharts/types/animation/configUpdate.d.ts
===================================================================
--- node_modules/recharts/types/animation/configUpdate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { EasingFunction } from './easing';
-import { TimeoutController } from './timeoutController';
-export declare const alpha: (begin: number, end: number, k: number) => number;
-export type FrameId = number;
-export type RequestAnimationFrameCallback = (time: number) => void;
-export type RequestAnimationFrameDi = (callback: RequestAnimationFrameCallback) => FrameId;
-export type CancelAnimationFrameDi = (handle: FrameId) => void;
-export type CancelAnimationFunction = () => void;
-export type StartAnimationFunction = () => CancelAnimationFunction;
-declare const _default: <T extends Record<string, number>>(from: T, to: T, easing: EasingFunction | null, duration: number, render: (currentStyle: T) => void, timeoutController: TimeoutController) => StartAnimationFunction;
-export default _default;
Index: de_modules/recharts/types/animation/createDefaultAnimationManager.d.ts
===================================================================
--- node_modules/recharts/types/animation/createDefaultAnimationManager.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { AnimationManager } from './AnimationManager';
-export declare function createDefaultAnimationManager(): AnimationManager;
Index: de_modules/recharts/types/animation/easing.d.ts
===================================================================
--- node_modules/recharts/types/animation/easing.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-export declare const ACCURACY = 0.0001;
-type CubicBezierTemplate = `cubic-bezier(${number},${number},${number},${number})`;
-type NamedBezier = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | CubicBezierTemplate;
-type BezierInput = [NamedBezier] | [number, number, number, number];
-export type BezierEasingFunction = {
-    isStepper: false;
-    (t: number): number;
-};
-export declare const configBezier: (...args: BezierInput) => BezierEasingFunction;
-type SpringInput = {
-    stiff?: number;
-    damping?: number;
-    dt?: number;
-};
-export type SpringEasingFunction = {
-    isStepper: true;
-    dt: number;
-    (currX: number, destX: number, currV: number): [number, number];
-};
-export declare const configSpring: (config?: SpringInput) => SpringEasingFunction;
-export type EasingFunction = BezierEasingFunction | SpringEasingFunction;
-export type EasingInput = NamedBezier | 'spring' | EasingFunction;
-export declare const configEasing: (easing: EasingInput) => EasingFunction | null;
-export {};
Index: de_modules/recharts/types/animation/timeoutController.d.ts
===================================================================
--- node_modules/recharts/types/animation/timeoutController.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * Callback type for the timeout function.
- * Receives current time in milliseconds as an argument.
- */
-export type CallbackType = (now: number) => void;
-/**
- * A function that, when called, cancels the timeout.
- */
-export type CancelableTimeout = () => void;
-export interface TimeoutController {
-    /**
-     * Sets a timeout that executes a callback after a specified delay.
-     * Allows setting multiple timeouts and provides a way to cancel them independently.
-     * @param callback - The function to execute after the delay. Receives the current time in milliseconds as an argument.
-     * @param delay (optional) - The time in milliseconds to wait before executing the callback. Defaults to 0.
-     */
-    setTimeout(callback: CallbackType, delay?: number): CancelableTimeout;
-}
-export declare class RequestAnimationFrameTimeoutController implements TimeoutController {
-    setTimeout(callback: CallbackType, delay?: number): CancelableTimeout;
-}
Index: de_modules/recharts/types/animation/useAnimationManager.d.ts
===================================================================
--- node_modules/recharts/types/animation/useAnimationManager.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { AnimationManager } from './AnimationManager';
-export type AnimationManagerFactory = (animationId: string) => AnimationManager;
-export declare const AnimationManagerContext: import("react").Context<AnimationManagerFactory>;
-export declare function useAnimationManager(animationId: string, animationManagerFromProps: AnimationManager | undefined): AnimationManager;
Index: de_modules/recharts/types/animation/util.d.ts
===================================================================
--- node_modules/recharts/types/animation/util.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-export declare const getDashCase: (name: string) => string;
-export declare const getTransitionVal: (props: ReadonlyArray<string>, duration: string | number, easing: string) => string;
-/**
- * Finds the intersection of keys between two objects
- * @param {object} preObj previous object
- * @param {object} nextObj next object
- * @returns an array of keys that exist in both objects
- */
-export declare const getIntersectionKeys: (preObj: Record<string, unknown>, nextObj: Record<string, unknown>) => string[];
-/**
- * Maps an object to another object
- * @param {function} fn function to map
- * @param {object} obj object to map
- * @returns mapped object
- */
-export declare const mapObject: <T extends Record<string, any>, R>(fn: (key: keyof T, value: T[keyof T]) => R, obj: T) => { [K in keyof T]: R; };
Index: de_modules/recharts/types/cartesian/Area.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Area.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,238 +1,0 @@
-import { ComponentType } from 'react';
-import { CurveType, Props as CurveProps } from '../shape/Curve';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { StackId } from '../util/ChartUtils';
-import { ActiveDotType, AnimationDuration, AnimationTiming, DataKey, DotType, LegendType, NullableCoordinate, TickItem, TooltipType } from '../util/types';
-import { BaseAxisWithScale } from '../state/selectors/axisSelectors';
-import { ChartData } from '../state/chartDataSlice';
-import { ComputedArea } from '../state/selectors/areaSelectors';
-import { AreaSettings } from '../state/types/AreaSettings';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { StackDataPoint } from '../util/stacks/stackTypes';
-/**
- * @inline
- */
-export type BaseValue = number | 'dataMin' | 'dataMax';
-/**
- * External props, intended for end users to fill in
- */
-interface AreaProps extends ZIndexable {
-    /**
-     * The active dot is rendered on the closest data point when user interacts with the chart. Options:
-     *
-     * - `false`: dots do not change on user activity; both active and inactive dots follow the `dot` prop (see below)
-     * - `true`: renders the active dot with default settings
-     * - `object`: the props of the active dot. This will be merged with the internal calculated props of the active dot
-     * - `ReactElement`: the custom active dot element
-     * - `function`: a render function of the custom active dot
-     *
-     * @defaultValue true
-     * @example <Area dataKey="value" activeDot={false} />
-     * @example <Area dataKey="value" activeDot={{ stroke: 'red', strokeWidth: 2, r: 10 }} />
-     * @example <Area dataKey="value" activeDot={CustomizedActiveDot} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/SimpleLineChart/ A line chart with customized active dot}
-     */
-    activeDot?: ActiveDotType;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue 'ease'
-     */
-    animationEasing?: AnimationTiming;
-    /**
-     * Baseline of the area:
-     * - number: uses the corresponding axis value as a flat baseline;
-     * - an array of coordinates: describes a custom baseline path.
-     */
-    baseLine?: number | ReadonlyArray<NullableCoordinate>;
-    baseValue?: BaseValue;
-    className?: string;
-    /**
-     * Whether to connect the area across null points.
-     *
-     * @defaultValue false
-     * @see {@link https://recharts.github.io/en-US/examples/AreaChartConnectNulls/ AreaChart with connectNull true and false}
-     */
-    connectNulls?: boolean;
-    data?: ChartData;
-    /**
-     * Decides how to extract the value of this Area from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Area.
-     */
-    dataKey: DataKey<any>;
-    /**
-     * Renders a circle element at each data point. Options:
-     *
-     * - `false`: no dots are drawn;
-     * - `true`: renders the dots with default settings;
-     * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;
-     * - `ReactElement`: the custom dot element;
-     * - `function`: a render function of the custom dot.
-     *
-     * @defaultValue false
-     */
-    dot?: DotType;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`, and also to identify this element internally.
-     *
-     * If undefined, Recharts will generate a unique ID automatically.
-     */
-    id?: string;
-    /**
-     * If set false, animation of area will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue 'auto'
-     */
-    isAnimationActive?: boolean | 'auto';
-    isRange?: boolean;
-    /**
-     * Renders one label for each data point. Options:
-     *
-     * - `true`: renders default labels
-     * - `false`: no labels are rendered
-     * - `object`: the props of LabelList component
-     * - `ReactElement`: a custom label element
-     * - `function`: a render function of custom label
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * The type of icon in legend.
-     * If set to 'none', no legend item will be rendered.
-     * @defaultValue 'line'
-     */
-    legendType?: LegendType;
-    /**
-     * The name of data.
-     * This option will be used in tooltip and legend to represent this graphical item.
-     * If no value was set to this option, the value of dataKey will be used alternatively.
-     */
-    name?: string | number;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    /**
-     * When two Areas have the same axisId and same stackId, then the two Areas are stacked in the chart.
-     */
-    stackId?: StackId;
-    /**
-     * The stroke color. If "none", no line will be drawn.
-     * @defaultValue '#3182bd'
-     */
-    stroke?: string;
-    /**
-     * The width of the stroke
-     * @defaultValue 1
-     */
-    strokeWidth?: string | number;
-    tooltipType?: TooltipType;
-    /**
-     * The interpolation type of curve. Allows custom interpolation function.
-     *
-     * @defaultValue linear
-     * @link https://d3js.org/d3-shape/curve
-     * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}
-     */
-    type?: CurveType;
-    /**
-     * The unit of data. This option will be used in tooltip.
-     */
-    unit?: string | number;
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: AxisId;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: AxisId;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 100
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-type AreaSvgProps = Omit<CurveProps, 'points' | 'ref' | 'layout' | 'path' | 'pathRef' | 'baseLine' | 'dangerouslySetInnerHTML'>;
-export type Props = AreaSvgProps & AreaProps;
-export declare const defaultAreaProps: {
-    readonly activeDot: true;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly connectNulls: false;
-    readonly dot: false;
-    readonly fill: "#3182bd";
-    readonly fillOpacity: 0.6;
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly legendType: "line";
-    readonly stroke: "#3182bd";
-    readonly strokeWidth: 1;
-    readonly type: "linear";
-    readonly label: false;
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly zIndex: 100;
-};
-export declare const getBaseValue: (layout: "horizontal" | "vertical", chartBaseValue: BaseValue | undefined, itemBaseValue: BaseValue | undefined, xAxis: BaseAxisWithScale, yAxis: BaseAxisWithScale) => number;
-export declare function computeArea({ areaSettings: { connectNulls, baseValue: itemBaseValue, dataKey }, stackedData, layout, chartBaseValue, xAxis, yAxis, displayedData, dataStartIndex, xAxisTicks, yAxisTicks, bandSize, }: {
-    areaSettings: AreaSettings;
-    stackedData: ReadonlyArray<StackDataPoint> | undefined;
-    layout: 'horizontal' | 'vertical';
-    chartBaseValue: BaseValue | undefined;
-    xAxis: BaseAxisWithScale;
-    yAxis: BaseAxisWithScale;
-    displayedData: ChartData;
-    dataStartIndex: number;
-    xAxisTicks: TickItem[];
-    yAxisTicks: TickItem[];
-    bandSize: number;
-}): ComputedArea;
-/**
- * @provides LabelListContext
- * @consumes CartesianChartContext
- */
-export declare const Area: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/Bar.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Bar.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,314 +1,0 @@
-import * as React from 'react';
-import { ComponentType, Key, ReactElement } from 'react';
-import { Series } from 'victory-vendor/d3-shape';
-import { Props as RectangleProps, RectRadius } from '../shape/Rectangle';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { BarPositionPosition, StackId } from '../util/ChartUtils';
-import { ActiveShape, AnimationDuration, CartesianViewBoxRequired, ChartOffsetInternal, Coordinate, DataKey, LegendType, PresentationAttributesAdaptChildEvent, TickItem, TooltipType } from '../util/types';
-import { MinPointSize } from '../util/BarUtils';
-import { BaseAxisWithScale } from '../state/selectors/axisSelectors';
-import { BarSettings } from '../state/types/BarSettings';
-import { EasingInput } from '../animation/easing';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ChartData } from '../state/chartDataSlice';
-type BarRectangleType = {
-    x: number | null;
-    y: number | null;
-    width: number;
-    height: number;
-};
-export interface BarRectangleItem extends RectangleProps {
-    value: number | [number, number];
-    /** the coordinate of background rectangle */
-    background?: BarRectangleType;
-    tooltipPosition: Coordinate;
-    readonly payload?: any;
-    parentViewBox: CartesianViewBoxRequired;
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-    /**
-     * Chart range coordinate of the baseValue of the first bar in a stack.
-     */
-    stackedBarStart: number;
-}
-export type BarShapeProps = BarRectangleItem & {
-    isActive: boolean;
-    index: number;
-    option?: ActiveShape<BarShapeProps, SVGPathElement> | undefined;
-};
-export interface BarProps extends ZIndexable {
-    className?: string;
-    index?: Key;
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     *
-     * @defaultValue 0
-     */
-    xAxisId?: AxisId;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     *
-     * @defaultValue 0
-     */
-    yAxisId?: AxisId;
-    /**
-     * When two Bars have the same axisId and same stackId, then the two Bars are stacked in the chart.
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/StackedBarChart/ Stacked bar chart example}
-     * @see {@link https://recharts.github.io/en-US/examples/MixBarChart/ Chart with both stacked and non-stacked bars}
-     * @see {@link BarStack}
-     */
-    stackId?: StackId;
-    /**
-     * The width or height of each bar. If the barSize is not specified, the size of bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.
-     */
-    barSize?: string | number;
-    /**
-     * The unit of data. This option will be used in tooltip.
-     */
-    unit?: string | number;
-    /**
-     * The name of data.
-     * This option will be used in tooltip and legend to represent a bar.
-     * If no value was set to this option, the value of dataKey will be used alternatively.
-     */
-    name?: string | number;
-    /**
-     * Decides how to extract the value of this Bar from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Bar.
-     */
-    dataKey?: DataKey<any>;
-    tooltipType?: TooltipType;
-    /**
-     * The type of icon in legend. If set to 'none', no legend item will be rendered.
-     *
-     * @defaultValue rect
-     */
-    legendType?: LegendType;
-    /**
-     * The minimal height of a bar in a horizontal chart, or the minimal width of a bar in a vertical chart.
-     *
-     * By default, 0 values are not shown.
-     * To visualize a 0 (or close to zero) point, set the minimal point size to a pixel value like 3.
-     *
-     * In stacked bar charts, minPointSize might not be respected for tightly packed values.
-     * So we strongly recommend not using this props in stacked BarChart.
-     *
-     * You may provide a function to conditionally change this prop based on Bar value.
-     *
-     * @defaultValue 0
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/BarChartWithMinHeight/ Chart with min bar height}
-     */
-    minPointSize?: MinPointSize;
-    /**
-     * The maximum width of bar in a horizontal chart, or maximum height in a vertical chart.
-     */
-    maxBarSize?: number;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * If set a ReactElement, the shape of bar can be customized.
-     * If set a function, the function will be called to render customized shape.
-     * By default, renders a rectangle.
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/CustomShapeBarChart/ Custom shape bar chart example}
-     */
-    shape?: ActiveShape<BarShapeProps, SVGPathElement>;
-    /**
-     * The active bar is shown when a user enters a bar chart and this chart has tooltip. Options:
-     * - `false`: all bars are passive, nothing happens on mouse events;
-     * - `true`: active bar is rendered separately but the default props are the same as others: so mouse events do not change its appearance. className and zIndex are different though;
-     * - `object`: the props of active bar;
-     * - `function`: the render function of active bar;
-     * - `ReactElement`: the active bar element.
-     *
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/SimpleBarChart/ activeBar example}
-     *
-     * @example <Bar activeBar={{ fill: 'red' }} />
-     * @example <Bar activeBar={CustomActiveBarFn} />
-     */
-    activeBar?: ActiveShape<BarShapeProps, SVGPathElement>;
-    /**
-     * Renders a background for each bar. Options:
-     *  - `false`: no background;
-     *  - `true`: renders default background;
-     *  - `object`: the props of background rectangle;
-     *  - `ReactElement`: a custom background element;
-     *  - `function`: a render function of custom background.
-     *
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/BarChartHasBackground/ BarChart with background example}
-     */
-    background?: ActiveShape<BarShapeProps, SVGPathElement> & ZIndexable;
-    /**
-     * The radius of corners.
-     *
-     * If you provide a single number, it applies to all four corners.
-     * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/roundedBars/ Guide: Rounded bar corners}
-     */
-    radius?: RectRadius;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * If set false, animation of bar will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     *
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     *
-     * @defaultValue 400
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     *
-     * @defaultValue 'ease'
-     */
-    animationEasing?: EasingInput;
-    /**
-     * The unique identifier of this component.
-     * Used as an HTML attribute `id`, and also to identify this element internally.
-     *
-     * If undefined, Recharts will generate a unique ID automatically.
-     */
-    id?: string;
-    /**
-     * Renders one label for each bar. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object`: the props of LabelList component;
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * @defaultValue false
-     *
-     * @example <Bar label />
-     * @example <Bar label={{ position: 'top', fontSize: 20 }} />
-     * @example <Bar label={CustomizedLabelFn} />
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 300
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-type BarMouseEvent = (data: BarRectangleItem, index: number, event: React.MouseEvent<SVGPathElement, MouseEvent>) => void;
-interface BarEvents {
-    /**
-     * The customized event handler of click on the bars in this group
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/BarChartWithCustomizedEvent/ Chart with customized event example}
-     */
-    onClick: BarMouseEvent;
-    /**
-     * The customized event handler of mouseenter on the bars in this group
-     */
-    onMouseEnter: BarMouseEvent;
-    /**
-     * The customized event handler of mouseleave on the bars in this group
-     */
-    onMouseLeave: BarMouseEvent;
-    /**
-     * The customized event handler of mousemove on the bars in this group
-     */
-    onMouseMove: BarMouseEvent;
-    /**
-     * The customized event handler of mousedown on the bars in this group
-     */
-    onMouseDown: BarMouseEvent;
-    /**
-     * The customized event handler of mouseup on the bars in this group
-     */
-    onMouseUp: BarMouseEvent;
-    /**
-     * The customized event handler of mouseover on the bars in this group
-     */
-    onMouseOver: BarMouseEvent;
-    /**
-     * The customized event handler of mouseout on the bars in this group
-     */
-    onMouseOut: BarMouseEvent;
-}
-type BarSvgProps = Omit<PresentationAttributesAdaptChildEvent<BarRectangleItem, SVGPathElement>, 'radius' | 'name' | 'ref'>;
-export type Props = Partial<BarEvents> & BarProps & Omit<BarSvgProps, keyof BarEvents>;
-export declare const defaultBarProps: {
-    readonly activeBar: false;
-    readonly animationBegin: 0;
-    readonly animationDuration: 400;
-    readonly animationEasing: "ease";
-    readonly background: false;
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly label: false;
-    readonly legendType: "rect";
-    readonly minPointSize: number;
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly zIndex: 300;
-};
-export declare function computeBarRectangles({ layout, barSettings: { dataKey, minPointSize: minPointSizeProp }, pos, bandSize, xAxis, yAxis, xAxisTicks, yAxisTicks, stackedData, displayedData, offset, cells, parentViewBox, dataStartIndex, }: {
-    layout: 'horizontal' | 'vertical';
-    barSettings: BarSettings;
-    pos: BarPositionPosition;
-    bandSize: number;
-    xAxis: BaseAxisWithScale;
-    yAxis: BaseAxisWithScale;
-    xAxisTicks: TickItem[];
-    yAxisTicks: TickItem[];
-    stackedData: Series<Record<number, number>, DataKey<any>> | undefined;
-    offset: ChartOffsetInternal;
-    displayedData: ChartData;
-    cells: ReadonlyArray<ReactElement> | undefined;
-    parentViewBox: CartesianViewBoxRequired;
-    dataStartIndex: number;
-}): ReadonlyArray<BarRectangleItem> | undefined;
-/**
- * @provides ErrorBarContext
- * @provides LabelListContext
- * @provides CellReader
- * @consumes CartesianChartContext
- * @consumes BarStackContext
- */
-export declare const Bar: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/BarStack.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/BarStack.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import * as React from 'react';
-import { ComponentType, ReactNode } from 'react';
-import { NormalizedStackId, StackId } from '../util/ChartUtils';
-import { Props as LayerProps } from '../container/Layer';
-import { RectRadius } from '../shape/Rectangle';
-export type BarStackProps = {
-    /**
-     * When two Bars have the same axisId and same stackId, then the two Bars are stacked in the chart.
-     * This prop sets the stack ID for all Bar components inside this BarStack component.
-     * If undefined, a unique id will be generated automatically.
-     *
-     * When both BarStack and individual Bar components have stackId defined,
-     * the BarStack's stackId wins, and the individual Bar's stackId is ignored.
-     */
-    stackId?: StackId;
-    /**
-     * Radius applies only once to all bars inside of this stack group,
-     * as if they were one huge bar.
-     * Meaning that if you have three bars stacked together, and you set
-     * radius to 10, only the outer corners of the entire stack will be rounded: the middle bars will have square corners.
-     *
-     * Unless! The edge bars are smaller than the radius value, in which case the bars at the edge get a lot of radius
-     * and the middle one gets a little bit of radius.
-     *
-     * You may want to combine this with setting individual Bar components' radius to their own values for best effect.
-     * `Bar.radius` prop will round corners of individual bars, while `BarStack.radius` will round corners of the entire stack.
-     *
-     * If you provide a single number, it applies to all four corners.
-     * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.
-     *
-     * @defaultValue 0
-     */
-    radius?: RectRadius;
-    children?: ReactNode;
-};
-export type BarStackSettings = {
-    stackId: NormalizedStackId;
-    radius: RectRadius;
-};
-/**
- * Hook to resolve the stack ID for a Bar component.
- * If a stack ID is provided via props, it is used directly.
- * Otherwise, this will read stack ID from BarStack context if available.
- * If both are undefined, it returns undefined.
- * @param childStackId
- */
-export declare const useStackId: (childStackId: StackId | undefined) => NormalizedStackId | undefined;
-export declare const defaultBarStackProps: {
-    readonly radius: 0;
-};
-export declare const useBarStackClipPathUrl: (index: number) => string | undefined;
-export declare const BarStackClipLayer: ({ index, ...rest }: LayerProps & {
-    index: number;
-}) => React.JSX.Element;
-/**
- * @provides BarStackContext
- * @since 3.6
- */
-export declare const BarStack: ComponentType<BarStackProps>;
Index: de_modules/recharts/types/cartesian/Brush.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Brush.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-import * as React from 'react';
-import { ReactElement, SVGAttributes, SVGProps } from 'react';
-import { DataKey, Padding } from '../util/types';
-import { OnBrushUpdate } from '../context/brushUpdateContext';
-type BrushTravellerType = ReactElement<SVGElement> | ((props: TravellerProps) => ReactElement<SVGElement>);
-type BrushTickFormatter = (value: any, index: number) => number | string;
-interface BrushProps {
-    /**
-     * The x-coordinate of brush.
-     * If left undefined, it will be computed from the chart's offset and margins.
-     */
-    x?: number;
-    /**
-     * The y-coordinate of brush.
-     * If left undefined, it will be computed from the chart's offset and margins.
-     */
-    y?: number;
-    dy?: number;
-    /**
-     * Width of the brush in pixels.
-     * If undefined, defaults to the chart width.
-     */
-    width?: number;
-    className?: string;
-    ariaLabel?: string;
-    /**
-     * Height of the brush in pixels.
-     *
-     * @defaultValue 40
-     */
-    height?: number;
-    /**
-     * The width of each traveller.
-     *
-     * @defaultValue 5
-     */
-    travellerWidth?: number;
-    traveller?: BrushTravellerType;
-    /**
-     * Number of data points to skip between chart refreshes.
-     *
-     * @defaultValue 1
-     */
-    gap?: number;
-    padding?: Padding;
-    /**
-     * Decides how to extract the value of this Brush from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Brush.
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * The default start index of brush.
-     * If the option is not set, the start index will be 0.
-     */
-    startIndex?: number;
-    /**
-     * The default end index of brush.
-     * If the option is not set, the end index will be calculated by the length of data.
-     */
-    endIndex?: number;
-    /**
-     * The formatter function of ticks.
-     */
-    tickFormatter?: BrushTickFormatter;
-    children?: ReactElement;
-    /**
-     * The handler of changing the active scope of brush.
-     */
-    onChange?: OnBrushUpdate;
-    onDragEnd?: OnBrushUpdate;
-    /**
-     * @defaultValue 1000
-     */
-    leaveTimeOut?: number;
-    /**
-     * @defaultValue false
-     */
-    alwaysShowText?: boolean;
-}
-export type Props = Omit<SVGProps<SVGElement>, 'onChange' | 'onDragEnd' | 'ref'> & BrushProps;
-type TravellerProps = {
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-    stroke?: SVGAttributes<SVGElement>['stroke'];
-};
-export declare const defaultBrushProps: {
-    readonly height: 40;
-    readonly travellerWidth: 5;
-    readonly gap: 1;
-    readonly fill: "#fff";
-    readonly stroke: "#666";
-    readonly padding: {
-        readonly top: 1;
-        readonly right: 1;
-        readonly bottom: 1;
-        readonly left: 1;
-    };
-    readonly leaveTimeOut: 1000;
-    readonly alwaysShowText: false;
-};
-/**
- * Renders a scrollbar that allows the user to zoom and pan in the chart along its XAxis.
- * It also allows you to render a small overview of the chart inside the brush that is always visible
- * and shows the full data set so that the user can see where they are zoomed in.
- *
- * If a chart is synchronized with other charts using the `syncId` prop on the chart,
- * the brush will also synchronize the zooming and panning between all synchronized charts.
- *
- * @see {@link https://recharts.github.io/en-US/examples/BrushBarChart/ BarChart with Brush}
- * @see {@link https://recharts.github.io/en-US/examples/SynchronizedLineChart/ Synchronized Brush}
- *
- * @consumes CartesianChartContext
- */
-export declare function Brush(outsideProps: Props): React.JSX.Element;
-export declare namespace Brush {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/CartesianAxis.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/CartesianAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-/**
- * @fileOverview Cartesian Axis
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { Props as TextProps } from '../component/Text';
-import { ImplicitLabelType } from '../component/Label';
-import { CartesianViewBox, PresentationAttributesAdaptChildEvent, CartesianTickItem, AxisInterval, TickProp } from '../util/types';
-import { XAxisOrientation, XAxisPadding, YAxisOrientation, YAxisPadding } from '../state/cartesianAxisSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-/** The orientation of the axis in correspondence to the chart */
-export type Orientation = XAxisOrientation | YAxisOrientation;
-/** A unit to be appended to a value */
-export type Unit = string | number;
-/** The formatter function of tick */
-export type TickFormatter = (value: any, index: number) => string;
-export interface CartesianAxisProps extends ZIndexable {
-    className?: string;
-    axisType?: 'xAxis' | 'yAxis';
-    x?: number;
-    y?: number;
-    width?: number;
-    height?: number;
-    unit?: Unit;
-    orientation?: Orientation;
-    viewBox?: CartesianViewBox;
-    tick?: TickProp<unknown>;
-    /**
-     * Additional props to spread to each tick Text element.
-     * Optional, the CartesianAxis component will provide its own defaults calculated from other props.
-     */
-    tickTextProps?: TextProps;
-    axisLine?: boolean | SVGProps<SVGLineElement>;
-    tickLine?: boolean | SVGProps<SVGLineElement>;
-    mirror?: boolean;
-    tickMargin?: number;
-    hide?: boolean;
-    label?: ImplicitLabelType;
-    /** Padding information passed to custom tick components */
-    padding?: XAxisPadding | YAxisPadding;
-    minTickGap?: number;
-    /**
-     * Careful - this is the same name as XAxis + YAxis `ticks` but completely different object!
-     */
-    ticks?: ReadonlyArray<CartesianTickItem>;
-    tickSize?: number;
-    tickFormatter?: TickFormatter;
-    interval?: AxisInterval;
-    /** Angle in which ticks will be rendered. */
-    angle?: number;
-    /**
-     * CartesianAxis reads scale internally and this prop is ignored since 3.0
-     * @deprecated
-     */
-    scale?: unknown;
-    labelRef?: React.RefObject<SVGTextElement> | null;
-    ref?: React.Ref<CartesianAxisRef>;
-}
-export interface CartesianAxisRef {
-    getCalculatedWidth(): number;
-}
-export declare const defaultCartesianAxisProps: {
-    readonly x: 0;
-    readonly y: 0;
-    readonly width: 0;
-    readonly height: 0;
-    readonly viewBox: {
-        readonly x: 0;
-        readonly y: 0;
-        readonly width: 0;
-        readonly height: 0;
-    };
-    readonly orientation: "bottom";
-    readonly ticks: CartesianAxisProps["ticks"];
-    readonly stroke: "#666";
-    readonly tickLine: true;
-    readonly axisLine: true;
-    readonly tick: true;
-    readonly mirror: false;
-    readonly minTickGap: 5;
-    readonly tickSize: 6;
-    readonly tickMargin: 2;
-    readonly interval: "preserveEnd";
-    readonly zIndex: 500;
-};
-export type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'viewBox' | 'scale' | 'ref'> & CartesianAxisProps;
-/**
- * @deprecated
- *
- * This component is not meant to be used directly in app code.
- * Use XAxis or YAxis instead.
- *
- * Starting from Recharts v4.0 we will make this component internal only.
- */
-export declare const CartesianAxis: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<CartesianAxisRef>>;
Index: de_modules/recharts/types/cartesian/CartesianGrid.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/CartesianGrid.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,208 +1,0 @@
-import * as React from 'react';
-import { ReactElement, SVGProps } from 'react';
-import { ChartOffsetInternal } from '../util/types';
-import { AxisPropsNeededForTicksGenerator } from '../util/ChartUtils';
-import { GetTicksInput } from './getTicks';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-/**
- * The <CartesianGrid horizontal
- */
-export type GridLineTypeFunctionProps = Omit<LineItemProps, 'key'> & {
-    key: LineItemProps['key'] | undefined;
-    offset: ChartOffsetInternal;
-};
-export type AxisPropsForCartesianGridTicksGeneration = AxisPropsNeededForTicksGenerator & Omit<GetTicksInput, 'ticks' | 'viewBox'>;
-type GridLineType = SVGProps<SVGLineElement> | ReactElement<SVGElement> | ((props: GridLineTypeFunctionProps) => ReactElement<SVGElement>) | boolean;
-export type HorizontalCoordinatesGenerator = (props: {
-    yAxis: AxisPropsForCartesianGridTicksGeneration | undefined;
-    width: number;
-    height: number;
-    offset: ChartOffsetInternal;
-}, syncWithTicks: boolean) => number[];
-export type VerticalCoordinatesGenerator = (props: {
-    xAxis: AxisPropsForCartesianGridTicksGeneration | undefined;
-    width: number;
-    height: number;
-    offset: ChartOffsetInternal;
-}, syncWithTicks: boolean) => number[];
-interface CartesianGridProps extends ZIndexable {
-    /**
-     * The width of grid. If undefined, covers the full width of the chart plot area.
-     */
-    width?: number;
-    /**
-     * The height of grid. If undefined, covers the full height of the chart plot area.
-     */
-    height?: number;
-    /**
-     * A function that generates the y-coordinates of all horizontal lines.
-     *
-     * @see {@link https://codesandbox.io/p/sandbox/cartesian-grid-with-coordinate-generators-my38cg?file=%2Fsrc%2FApp.tsx Cartesian grid with coordinate generators}
-     */
-    horizontalCoordinatesGenerator?: HorizontalCoordinatesGenerator;
-    /**
-     * A function that generates the x-coordinates of all vertical lines.
-     *
-     * @see {@link https://codesandbox.io/p/sandbox/cartesian-grid-with-coordinate-generators-my38cg?file=%2Fsrc%2FApp.tsx Cartesian grid with coordinate generators}
-     */
-    verticalCoordinatesGenerator?: VerticalCoordinatesGenerator;
-    /**
-     * The x-coordinate of grid.
-     * If left undefined, it will be computed from the chart's offset and margins.
-     */
-    x?: number;
-    /**
-     * The y-coordinate of grid.
-     * If left undefined, it will be computed from the chart's offset and margins.
-     */
-    y?: number;
-    /**
-     * If set false, no horizontal grid lines will be drawn.
-     *
-     * @defaultValue true
-     */
-    horizontal?: GridLineType;
-    /**
-     * If set false, no vertical grid lines will be drawn.
-     *
-     * @defaultValue true
-     */
-    vertical?: GridLineType;
-    /**
-     * Array of coordinates in pixels where to draw horizontal grid lines.
-     * Has priority over syncWithTicks and horizontalValues.
-     *
-     * @defaultValue []
-     */
-    horizontalPoints?: number[];
-    /**
-     * Array of coordinates in pixels where to draw vertical grid lines.
-     * Has priority over syncWithTicks and verticalValues.
-     *
-     * @defaultValue []
-     */
-    verticalPoints?: number[];
-    /**
-     * The background color used to fill the space between grid lines
-     *
-     * @defaultValue none
-     * @example <CartesianGrid fill="red" />
-     * @example <CartesianGrid fill="#ccc" />
-     */
-    fill?: string;
-    /**
-     * The opacity of the background used to fill the space between grid lines
-     *
-     * @example <CartesianGrid fill="red" fillOpacity={0.6} />
-     */
-    fillOpacity?: number | string;
-    /**
-     * Defines background color of stripes.
-     *
-     * The values from this array will be passed in as the `fill` property in a `rect` SVG element.
-     * For possible values see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill#rect
-     *
-     * In case there are more stripes than colors, the colors will start from beginning.
-     * So for example: verticalFill['yellow', 'black'] produces a pattern of yellow|black|yellow|black
-     *
-     * If this is undefined, or an empty array, then there is no background fill.
-     * Note: Grid lines will be rendered above these background stripes.
-     *
-     * @defaultValue []
-     */
-    verticalFill?: string[];
-    /**
-     * Defines background color of stripes.
-     *
-     * The values from this array will be passed in as the `fill` property in a `rect` SVG element.
-     * For possible values see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill#rect
-     *
-     * In case there are more stripes than colors, the colors will start from beginning.
-     * So for example: horizontalFill['yellow', 'black'] produces a pattern of yellow|black|yellow|black
-     *
-     * If this is undefined, or an empty array, then there is no background fill.
-     * Note: Grid lines will be rendered above these background stripes.
-     *
-     * @defaultValue []
-     */
-    horizontalFill?: string[];
-    /**
-     * If true, only the lines that correspond to the axes ticks values will be drawn.
-     * If false, extra lines could be added for each axis (at min and max coordinates), if there will not such ticks.
-     * horizontalPoints, verticalPoints, horizontalValues, verticalValues have priority over syncWithTicks.
-     *
-     * @defaultValue false
-     */
-    syncWithTicks?: boolean;
-    /**
-     * Array of values, where horizontal lines will be drawn. Numbers or strings, in dependence on axis type.
-     * Has priority over syncWithTicks but not over horizontalPoints.
-     */
-    horizontalValues?: number[] | string[];
-    /**
-     * Array of values, where vertical lines will be drawn. Numbers or strings, in dependence on axis type.
-     * Has priority over syncWithTicks but not over verticalPoints.
-     */
-    verticalValues?: number[] | string[];
-    /**
-     * The pattern of dashes and gaps used to paint the lines of the grid
-     *
-     * @example <CartesianGrid strokeDasharray="3 3" />
-     * @example <CartesianGrid strokeDasharray={[5, 5, 1, 5]} />
-     * @example <CartesianGrid strokeDasharray="5 5 1 5" />
-     * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray stroke-dasharray on MDN}
-     */
-    strokeDasharray?: string | number[];
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: AxisId;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: AxisId;
-    /**
-     * @defaultValue -100
-     */
-    zIndex?: number;
-}
-type AcceptedSvgProps = Omit<SVGProps<SVGLineElement>, 'offset'>;
-export type Props = AcceptedSvgProps & CartesianGridProps;
-type LineItemProps = Props & {
-    offset: ChartOffsetInternal;
-    xAxis: undefined | AxisPropsForCartesianGridTicksGeneration;
-    yAxis: undefined | AxisPropsForCartesianGridTicksGeneration;
-    x1: number;
-    y1: number;
-    x2: number;
-    y2: number;
-    key: string;
-    index: number;
-};
-export declare const defaultCartesianGridProps: {
-    readonly horizontal: true;
-    readonly vertical: true;
-    readonly horizontalPoints: [];
-    readonly verticalPoints: [];
-    readonly stroke: "#ccc";
-    readonly fill: "none";
-    readonly verticalFill: [];
-    readonly horizontalFill: [];
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly syncWithTicks: false;
-    readonly zIndex: -100;
-};
-/**
- * Renders background grid with lines and fill colors in a Cartesian chart.
- *
- * @consumes CartesianChartContext
- */
-export declare function CartesianGrid(props: Props): React.JSX.Element | null;
-export declare namespace CartesianGrid {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/ErrorBar.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/ErrorBar.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/**
- * @fileOverview Render a group of error bar
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { AnimationTiming, DataKey } from '../util/types';
-import { BarRectangleItem } from './Bar';
-import { LinePointItem } from './Line';
-import { ScatterPointItem } from './Scatter';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export interface ErrorBarDataItem {
-    x: number | undefined;
-    y: number | undefined;
-    value: number;
-    errorVal?: number[] | number;
-}
-/**
- * So usually the direction is decided by the chart layout.
- * Horizontal layout means error bars are vertical means direction=y
- * Vertical layout means error bars are horizontal means direction=x
- *
- * Except! In Scatter chart, error bars can go both ways.
- *
- * So this property is only ever used in Scatter chart, and ignored elsewhere.
- */
-export type ErrorBarDirection = 'x' | 'y';
-export type ErrorBarDataPointFormatter<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = (entry: T, dataKey: DataKey<any>, direction: ErrorBarDirection) => ErrorBarDataItem;
-/**
- * External ErrorBar props, visible for users of the library
- */
-interface ErrorBarProps extends ZIndexable {
-    /**
-     * Decides how to extract the value of this ErrorBar from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this ErrorBar.
-     *
-     * The error values can be a single value for symmetric error bars;
-     * or an array of a lower and upper error value for asymmetric error bars.
-     */
-    dataKey: DataKey<any>;
-    /**
-     * Width of the error bar ends (the serifs) in pixels.
-     * This is not the total width of the error bar, but just the width of the little lines at the ends.
-     *
-     * The total width of the error bar is determined by the data value plus/minus the error value.
-     *
-     * @defaultValue 5
-     */
-    width?: number;
-    /**
-     * Direction of the error bar. Usually determined by chart layout, except in Scatter chart.
-     * In Scatter chart, "x" means horizontal error bars, "y" means vertical error bars.
-     */
-    direction?: ErrorBarDirection;
-    /**
-     * @defaultValue true
-     */
-    isAnimationActive?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * @defaultValue 400
-     */
-    animationDuration?: number;
-    /**
-     * @defaultValue ease-in-out
-     */
-    animationEasing?: AnimationTiming;
-    /**
-     * The width of the stroke
-     */
-    strokeWidth?: number | string;
-    /**
-     * The stroke color. If "none", no line will be drawn.
-     *
-     * @defaultValue black
-     */
-    stroke?: string;
-    /**
-     * @defaultValue 400
-     */
-    zIndex?: number;
-}
-export type Props = SVGProps<SVGLineElement> & ErrorBarProps;
-export declare const errorBarDefaultProps: {
-    readonly stroke: "black";
-    readonly strokeWidth: 1.5;
-    readonly width: 5;
-    readonly offset: 0;
-    readonly isAnimationActive: true;
-    readonly animationBegin: 0;
-    readonly animationDuration: 400;
-    readonly animationEasing: "ease-in-out";
-    readonly zIndex: 400;
-};
-/**
- * ErrorBar renders whiskers to represent error margins on a chart.
- *
- * It must be a child of a graphical element.
- *
- * ErrorBar expects data in one of the following forms:
- * - Symmetric error bars: a single error value representing both lower and upper bounds.
- * - Asymmetric error bars: an array of two values representing lower and upper bounds separately. First value is the lower bound, second value is the upper bound.
- *
- * The values provided are relative to the main data value.
- * For example, if the main data value is 10 and the error value is 2,
- * the error bar will extend from 8 to 12 for symmetric error bars.
- *
- * In other words, what ErrorBar will render is:
- * - For symmetric error bars: [value - errorVal, value + errorVal]
- * - For asymmetric error bars: [value - errorVal[0], value + errorVal[1]]
- *
- * In stacked or ranged Bar charts, ErrorBar will use the higher data value
- * as the reference point for calculating the error bar positions.
- *
- * @consumes ErrorBarContext
- */
-export declare function ErrorBar(outsideProps: Props): React.JSX.Element;
-export declare namespace ErrorBar {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/Funnel.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Funnel.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,178 +1,0 @@
-import * as React from 'react';
-import { Props as TrapezoidProps } from '../shape/Trapezoid';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { ActiveShape, AnimationDuration, AnimationTiming, CartesianViewBoxRequired, ChartOffsetInternal, Coordinate, DataKey, DataProvider, LegendType, PresentationAttributesAdaptChildEvent, TooltipType, TrapezoidViewBox } from '../util/types';
-import { TooltipPayload } from '../state/tooltipSlice';
-import { GraphicalItemId } from '../state/graphicalItemsSlice';
-export type FunnelTrapezoidItem = TrapezoidProps & TrapezoidViewBox & {
-    value?: number | string;
-    payload?: any;
-    tooltipPosition: Coordinate;
-    name: string;
-    labelViewBox: TrapezoidViewBox;
-    parentViewBox: CartesianViewBoxRequired;
-    val: number | ReadonlyArray<number>;
-    tooltipPayload: TooltipPayload;
-};
-/**
- * External props, intended for end users to fill in
- */
-interface FunnelProps extends DataProvider {
-    /**
-     * This component is rendered when this graphical item is activated
-     * (could be by mouse hover, touch, keyboard, programmatically).
-     */
-    activeShape?: ActiveShape<FunnelTrapezoidItem, SVGPathElement>;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 400
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    className?: string;
-    /**
-     * Decides how to extract the value of this Funnel from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Funnel.
-     */
-    dataKey: DataKey<any>;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`, and also to identify this element internally.
-     *
-     * If undefined, Recharts will generate a unique ID automatically.
-     */
-    id?: string;
-    /**
-     * If set false, animation of funnel will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    label?: ImplicitLabelListType;
-    /**
-     * @defaultValue triangle
-     */
-    lastShapeType?: 'triangle' | 'rectangle';
-    /**
-     * The type of icon in legend.  If set to 'none', no legend item will be rendered.
-     * @defaultValue rect
-     */
-    legendType?: LegendType;
-    /**
-     * Name represents each sector in the tooltip.
-     * This allows you to extract the name from the data:
-     *
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the name.
-     *
-     * @defaultValue name
-     */
-    nameKey?: DataKey<any>;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    reversed?: boolean;
-    /**
-     * If set a ReactElement, the shape of funnel can be customized.
-     * If set a function, the function will be called to render customized shape.
-     */
-    shape?: ActiveShape<FunnelTrapezoidItem, SVGPathElement>;
-    tooltipType?: TooltipType;
-    /**
-     * The customized event handler of click on the area in this group
-     */
-    onClick?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousedown on the area in this group
-     */
-    onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseup on the area in this group
-     */
-    onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousemove on the area in this group
-     */
-    onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseover on the area in this group
-     */
-    onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseout on the area in this group
-     */
-    onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter on the area in this group
-     */
-    onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the area in this group
-     */
-    onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;
-}
-type FunnelSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGPathElement>, 'ref'>;
-export type Props = FunnelSvgProps & FunnelProps;
-type RealFunnelData = unknown;
-export declare const defaultFunnelProps: {
-    readonly animationBegin: 400;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly fill: "#808080";
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly lastShapeType: "triangle";
-    readonly legendType: "rect";
-    readonly nameKey: "name";
-    readonly reversed: false;
-    readonly stroke: "#fff";
-};
-export declare function computeFunnelTrapezoids({ dataKey, nameKey, displayedData, tooltipType, lastShapeType, reversed, offset, customWidth, graphicalItemId, }: {
-    dataKey: Props['dataKey'];
-    nameKey: Props['nameKey'];
-    offset: ChartOffsetInternal;
-    displayedData: ReadonlyArray<RealFunnelData>;
-    tooltipType?: TooltipType;
-    lastShapeType?: Props['lastShapeType'];
-    reversed?: boolean;
-    customWidth: number | string | undefined;
-    graphicalItemId: GraphicalItemId;
-}): ReadonlyArray<FunnelTrapezoidItem>;
-/**
- * @consumes CartesianViewBoxContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export declare function Funnel(outsideProps: Props): React.JSX.Element;
-export declare namespace Funnel {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/GraphicalItemClipPath.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/GraphicalItemClipPath.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import * as React from 'react';
-import { AxisId } from '../state/cartesianAxisSlice';
-type GraphicalItemClipPathProps = {
-    xAxisId: AxisId;
-    yAxisId: AxisId;
-    clipPathId: string;
-};
-export declare function useNeedsClip(xAxisId: AxisId, yAxisId: AxisId): {
-    needClip: boolean;
-    needClipX: boolean;
-    needClipY: boolean;
-};
-export declare function GraphicalItemClipPath({ xAxisId, yAxisId, clipPathId }: GraphicalItemClipPathProps): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/cartesian/Line.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Line.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,257 +1,0 @@
-import { ComponentType } from 'react';
-import { CurveType, Props as CurveProps } from '../shape/Curve';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { ActiveDotType, ActiveShape, AnimationDuration, AnimationTiming, CartesianLayout, DataKey, DotType, LegendType, TickItem, TooltipType } from '../util/types';
-import { BaseAxisWithScale } from '../state/selectors/axisSelectors';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { ChartData } from '../state/chartDataSlice';
-export interface LinePointItem {
-    readonly value: number;
-    readonly payload?: any;
-    /**
-     * Line coordinates can have gaps in them. We have `connectNulls` prop that allows to connect those gaps anyway.
-     * What it means is that some points can have `null` x or y coordinates.
-     */
-    x: number | null;
-    y: number | null;
-}
-/**
- * External props, intended for end users to fill in
- */
-interface LineProps extends ZIndexable {
-    /**
-     * The active dot is rendered on the closest data point when user interacts with the chart. Options:
-     *
-     * - `false`: dots do not change on user activity; both active and inactive dots follow the `dot` prop (see below)
-     * - `true`: renders the active dot with default settings
-     * - `object`: the props of the active dot. This will be merged with the internal calculated props of the active dot
-     * - `ReactElement`: the custom active dot element
-     * - `function`: a render function of the custom active dot
-     *
-     * @defaultValue true
-     * @example <Line dataKey="value" activeDot={false} />
-     * @example <Line dataKey="value" activeDot={{ stroke: 'red', strokeWidth: 2, r: 10 }} />
-     * @example <Line dataKey="value" activeDot={CustomizedActiveDot} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/SimpleLineChart/ A line chart with customized active dot}
-     */
-    activeDot?: ActiveDotType;
-    /**
-     * @defaultValue true
-     */
-    animateNewValues?: boolean;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    className?: string;
-    /**
-     * Whether to connect the line across null points.
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/LineChartConnectNulls/ LineChart with connectNull true and false}
-     */
-    connectNulls?: boolean;
-    data?: ChartData;
-    /**
-     * Decides how to extract the value of this Line from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Line.
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * Renders a circle element at each data point. Options:
-     *
-     * - `false`: no dots are drawn;
-     * - `true`: renders the dots with default settings;
-     * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;
-     * - `ReactElement`: the custom dot element;
-     * - `function`: a render function of the custom dot.
-     *
-     * @defaultValue true
-     *
-     * @example <Line dataKey="value" dot={false} />
-     * @example <Line dataKey="value" dot={{ stroke: 'red', strokeWidth: 2 }} />
-     * @example <Line dataKey="value" dot={CustomizedDot} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/CustomizedDotLineChart/ A line chart with customized dot}
-     */
-    dot?: DotType;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`, and also to identify this element internally.
-     *
-     * If undefined, Recharts will generate a unique ID automatically.
-     */
-    id?: string;
-    /**
-     * If set false, animation of line will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Renders one label for each data point. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object`: the props of LabelList component;
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * @defaultValue false
-     * @example <Line dataKey="value" label />
-     * @example <Line dataKey="value" label={{ fill: 'red', fontSize: 20 }} />
-     * @example <Line dataKey="value" label={CustomizedLabel} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/CustomizedLabelLineChart/ A line chart with customized label}
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * The type of icon in legend.
-     * If set to 'none', no legend item will be rendered.
-     * @defaultValue line
-     */
-    legendType?: LegendType;
-    /**
-     * If set a ReactElement, the shape of line can be customized.
-     * If set a function, the function will be called to render customized shape.
-     *
-     * @example <Line dataKey="value" shape={CustomizedShapeComponent} />
-     * @example <Line dataKey="value" shape={renderShapeFunction} />
-     */
-    shape?: ActiveShape<CurveProps, SVGPathElement>;
-    /**
-     * The name of data.
-     * This option will be used in tooltip and legend to represent this graphical item.
-     * If no value was set to this option, the value of dataKey will be used alternatively.
-     */
-    name?: string | number;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    tooltipType?: TooltipType;
-    /**
-     * The interpolation type of curve. Allows custom interpolation function.
-     *
-     * @defaultValue linear
-     * @link https://d3js.org/d3-shape/curve
-     * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}
-     */
-    type?: CurveType;
-    /**
-     * The unit of data. This option will be used in tooltip.
-     */
-    unit?: string | number | null;
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: AxisId;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: AxisId;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 400
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    /**
-     * The stroke color. If `"none"`, no line will be drawn.
-     *
-     * @defaultValue #3182bd
-     */
-    stroke?: string;
-    /**
-     * The width of the stroke
-     *
-     * @defaultValue 1
-     */
-    strokeWidth?: string | number;
-    /**
-     * The pattern of dashes and gaps used to paint the line
-     *
-     * @example <Line strokeDasharray="4" />
-     * @example <Line strokeDasharray="4 1" />
-     * @example <Line strokeDasharray="4 1 2" />
-     */
-    strokeDasharray?: string | number;
-}
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-type LineSvgProps = Omit<CurveProps, 'points' | 'pathRef' | 'ref' | 'layout' | 'baseLine'>;
-export type Props = LineSvgProps & LineProps;
-export declare const defaultLineProps: {
-    readonly activeDot: true;
-    readonly animateNewValues: true;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly connectNulls: false;
-    readonly dot: true;
-    readonly fill: "#fff";
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly label: false;
-    readonly legendType: "line";
-    readonly stroke: "#3182bd";
-    readonly strokeWidth: 1;
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly zIndex: 400;
-    readonly type: "linear";
-};
-export declare function computeLinePoints({ layout, xAxis, yAxis, xAxisTicks, yAxisTicks, dataKey, bandSize, displayedData, }: {
-    layout: CartesianLayout;
-    xAxis: BaseAxisWithScale;
-    yAxis: BaseAxisWithScale;
-    xAxisTicks: TickItem[];
-    yAxisTicks: TickItem[];
-    dataKey: Props['dataKey'];
-    bandSize: number;
-    displayedData: ChartData;
-}): ReadonlyArray<LinePointItem>;
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @consumes CartesianChartContext
- */
-export declare const Line: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/ReferenceArea.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/ReferenceArea.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,131 +1,0 @@
-import * as React from 'react';
-import { ReactElement } from 'react';
-import { ImplicitLabelType } from '../component/Label';
-import { Overflowable } from '../util/IfOverflow';
-import { Props as RectangleProps } from '../shape/Rectangle';
-import { SVGPropsAndEvents } from '../util/svgPropertiesAndEvents';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-interface ReferenceAreaProps extends Overflowable, ZIndexable {
-    /**
-     * Starting X-coordinate of the area.
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceArea will internally calculate the correct pixel position.
-     *
-     * If undefined then the area will extend to the left edge of the chart plot area.
-     *
-     * @example <ReferenceArea x1="Monday" x2="Friday" />
-     * @example <ReferenceArea x1={10} x2={50} />
-     * @example <ReferenceArea x1="Page C" />
-     */
-    x1?: number | string;
-    /**
-     * Ending X-coordinate of the area.
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceArea will internally calculate the correct pixel position.
-     *
-     * If undefined then the area will extend to the right edge of the chart plot area.
-     *
-     * @example <ReferenceArea x1="Monday" x2="Friday" />
-     * @example <ReferenceArea x1={10} x2={50} />
-     * @example <ReferenceArea x2="Page C" />
-     */
-    x2?: number | string;
-    /**
-     * Starting Y-coordinate of the area.
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceArea will internally calculate the correct pixel position.
-     *
-     * If undefined then the area will extend to the top edge of the chart plot area.
-     *
-     * @example <ReferenceArea y1={100} y2={500} />
-     * @example <ReferenceArea y1="low" y2="high" />
-     * @example <ReferenceArea y1={200} />
-     */
-    y1?: number | string;
-    /**
-     * Ending Y-coordinate of the area.
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceArea will internally calculate the correct pixel position.
-     *
-     * If undefined then the area will extend to the bottom edge of the chart plot area.
-     *
-     * @example <ReferenceArea y1={100} y2={500} />
-     * @example <ReferenceArea y1="low" y2="high" />
-     * @example <ReferenceArea y2={400} />
-     */
-    y2?: number | string;
-    className?: number | string;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: number | string;
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: number | string;
-    /**
-     * If set a ReactElement, the shape of the reference area can be customized.
-     * If set a function, the function will be called to render customized shape.
-     */
-    shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);
-    /**
-     * Renders a single label.
-     *
-     * - `false`: no labels are rendered
-     * - `string` | `number`: the content of the label
-     * - `object`: the props of LabelList component
-     * - `ReactElement`: a custom label element
-     * - `function`: a render function of custom label
-     *
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/LineChartWithReferenceLines/ Reference elements with a label}
-     */
-    label?: ImplicitLabelType;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 100
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    children?: React.ReactNode;
-}
-export type Props = Omit<SVGPropsAndEvents<RectangleProps>, 'width' | 'height' | 'x' | 'y'> & ReferenceAreaProps;
-export declare const referenceAreaDefaultProps: {
-    readonly ifOverflow: "discard";
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly radius: 0;
-    readonly fill: "#ccc";
-    readonly label: false;
-    readonly fillOpacity: 0.5;
-    readonly stroke: "none";
-    readonly strokeWidth: 1;
-    readonly zIndex: 100;
-};
-/**
- * Draws a rectangular area on the chart to highlight a specific range.
- *
- * This component, unlike {@link Rectangle} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect}, is aware of the cartesian coordinate system,
- * so you specify the area by using data coordinates instead of pixels.
- *
- * ReferenceArea will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render rectangles using pixels rather than data coordinates,
- * consider using the {@link Rectangle} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export declare function ReferenceArea(outsideProps: Props): React.JSX.Element;
-export declare namespace ReferenceArea {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/ReferenceDot.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/ReferenceDot.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,139 +1,0 @@
-import * as React from 'react';
-import { ReactElement } from 'react';
-import { Props as DotProps } from '../shape/Dot';
-import { ImplicitLabelType } from '../component/Label';
-import { Overflowable } from '../util/IfOverflow';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-interface ReferenceDotProps extends Overflowable, ZIndexable {
-    /**
-     * The radius of the dot in pixels.
-     *
-     * @defaultValue 10
-     */
-    r?: number;
-    /**
-     * The x-coordinate of the center of the dot.
-     *
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceDot will internally calculate the correct pixel position.
-     *
-     * @example <ReferenceDot x="January" y="2026" />
-     */
-    x?: number | string;
-    /**
-     * The y-coordinate of the center of the dot.
-     *
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceDot will internally calculate the correct pixel position.
-     *
-     * @example <ReferenceDot x="January" y="2026" />
-     */
-    y?: number | string;
-    className?: number | string;
-    /**
-     * The id of y-axis which is corresponding to the data.
-     * Required when there are multiple YAxes.
-     *
-     * @defaultValue 0
-     */
-    yAxisId?: number | string;
-    /**
-     * The id of x-axis which is corresponding to the data.
-     * Required when there are multiple XAxes.
-     *
-     * @defaultValue 0
-     */
-    xAxisId?: number | string;
-    /**
-     * If set a ReactElement, the shape of dot can be customized.
-     * If set a function, the function will be called to render customized shape.
-     */
-    shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);
-    /**
-     * Renders a single label.
-     *
-     * - `false`: no labels are rendered
-     * - `string` | `number`: the content of the label
-     * - `object`: the props of LabelList component
-     * - `ReactElement`: a custom label element
-     * - `function`: a render function of custom label
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelType;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 600
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    /**
-     * The customized event handler of click in this chart.
-     */
-    onClick?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mousedown in this chart.
-     */
-    onMouseDown?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mouseup in this chart.
-     */
-    onMouseUp?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mouseover in this chart.
-     */
-    onMouseOver?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mouseout in this chart.
-     */
-    onMouseOut?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mouseenter in this chart.
-     */
-    onMouseEnter?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mousemove in this chart.
-     */
-    onMouseMove?: (e: React.MouseEvent<SVGElement>) => void;
-    /**
-     * The customized event handler of mouseleave in this chart.
-     */
-    onMouseLeave?: (e: React.MouseEvent<SVGElement>) => void;
-}
-export type Props = Omit<DotProps, 'cx' | 'cy' | 'clipDot' | 'dangerouslySetInnerHTML'> & ReferenceDotProps;
-export declare const referenceDotDefaultProps: {
-    readonly ifOverflow: "discard";
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly r: 10;
-    readonly label: false;
-    readonly fill: "#fff";
-    readonly stroke: "#ccc";
-    readonly fillOpacity: 1;
-    readonly strokeWidth: 1;
-    readonly zIndex: 600;
-};
-/**
- * Draws a circle on the chart to highlight a specific point.
- *
- * This component, unlike {@link Dot} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle circle}, is aware of the cartesian coordinate system,
- * so you specify its center by using data coordinates instead of pixels.
- *
- * ReferenceDot will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render dots using pixels rather than data coordinates,
- * consider using the {@link Dot} component instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export declare function ReferenceDot(outsideProps: Props): React.JSX.Element;
-export declare namespace ReferenceDot {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/ReferenceLine.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/ReferenceLine.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,149 +1,0 @@
-/**
- * @fileOverview Reference Line
- */
-import * as React from 'react';
-import { ReactElement, SVGProps } from 'react';
-import { ImplicitLabelType } from '../component/Label';
-import { Overflowable } from '../util/IfOverflow';
-import { CartesianViewBoxRequired, Coordinate } from '../util/types';
-import { RequiresDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { BandPosition, RechartsScale } from '../util/scale/RechartsScale';
-/**
- * Single point that defines one end of a segment.
- * These coordinates are in data space, meaning that you should provide
- * values that correspond to the data domain of the axes.
- * So you would provide a value of `Page A` to indicate the data value `Page A`
- * and then recharts will convert that to pixels.
- *
- * Likewise for numbers. If your x-axis goes from 0 to 100,
- * and you want the line to end at 50, you would provide `50` here.
- *
- * @inline
- */
-export type ReferenceLineSegment = readonly [
-    {
-        x?: number | string;
-        y?: number | string;
-    },
-    {
-        x?: number | string;
-        y?: number | string;
-    }
-];
-interface ReferenceLineProps extends Overflowable, ZIndexable {
-    /**
-     * If defined, renders a horizontal line on this position.
-     *
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceLine will internally calculate the correct pixel position.
-     *
-     * @example <ReferenceLine y="Page D" />
-     */
-    y?: number | string;
-    /**
-     * If defined, renders a vertical line on this position.
-     *
-     * This value is using your chart's domain, so you will provide a data value instead of a pixel value.
-     * ReferenceLine will internally calculate the correct pixel position.
-     *
-     * @example <ReferenceLine x="Monday" />
-     */
-    x?: number | string;
-    /**
-     * Tuple of coordinates. If defined, renders a diagonal line segment.
-     */
-    segment?: ReferenceLineSegment;
-    /**
-     * The position of the reference line when the axis has bandwidth
-     * (e.g., a band scale). This determines where within the band
-     * the line is drawn.
-     * @defaultValue 'middle'
-     */
-    position?: BandPosition;
-    className?: number | string;
-    /**
-     * The id of y-axis which is corresponding to the data.
-     * Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: number | string;
-    /**
-     * The id of x-axis which is corresponding to the data.
-     * Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: number | string;
-    shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);
-    /**
-     * Renders a single label.
-     *
-     * - `false`: no labels are rendered
-     * - `string` | `number`: the content of the label
-     * - `object`: the props of LabelList component
-     * - `ReactElement`: a custom label element
-     * - `function`: a render function of custom label
-     *
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/LineChartWithReferenceLines/ Reference elements with a label}
-     */
-    label?: ImplicitLabelType;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 400
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    /**
-     * The width of the stroke
-     * @defaultValue 1
-     */
-    strokeWidth?: number | string;
-}
-/**
- * This excludes `viewBox` prop from svg for two reasons:
- * 1. The components wants viewBox of object type, and svg wants string
- *    - so there's a conflict, and the component will throw if it gets string
- * 2. Internally the component calls `svgPropertiesNoEvents` which filters the viewBox away anyway
- */
-export type Props = Omit<SVGProps<SVGLineElement>, 'viewBox'> & ReferenceLineProps;
-type EndPointsPropsSubset = Pick<PropsWithDefaults, 'y' | 'x' | 'segment' | 'ifOverflow'>;
-export declare const getEndPoints: (xAxisScale: RechartsScale, yAxisScale: RechartsScale, viewBox: CartesianViewBoxRequired, position: Props["position"], xAxisOrientation: Props["orientation"], yAxisOrientation: Props["orientation"], props: EndPointsPropsSubset) => ReadonlyArray<Coordinate> | null;
-export declare const referenceLineDefaultProps: {
-    readonly ifOverflow: "discard";
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly fill: "none";
-    readonly label: false;
-    readonly stroke: "#ccc";
-    readonly fillOpacity: 1;
-    readonly strokeWidth: 1;
-    readonly position: "middle";
-    readonly zIndex: 400;
-};
-type PropsWithDefaults = RequiresDefaultProps<Props, typeof referenceLineDefaultProps>;
-/**
- * Draws a line on the chart connecting two points.
- *
- * This component, unlike {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line}, is aware of the cartesian coordinate system,
- * so you specify the dimensions by using data coordinates instead of pixels.
- *
- * ReferenceLine will calculate the pixels based on the provided data coordinates.
- *
- * If you prefer to render using pixels rather than data coordinates,
- * consider using the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line SVG element} instead.
- *
- * @provides CartesianLabelContext
- * @consumes CartesianChartContext
- */
-export declare function ReferenceLine(outsideProps: Props): React.JSX.Element;
-export declare namespace ReferenceLine {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/cartesian/Scatter.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/Scatter.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,274 +1,0 @@
-import { ComponentType, ReactElement, ReactNode } from 'react';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { CurveType, Props as CurveProps } from '../shape/Curve';
-import { ActiveShape, AnimationDuration, AnimationTiming, Coordinate, DataKey, DataProvider, LegendType, PresentationAttributesAdaptChildEvent, SymbolType, TickItem } from '../util/types';
-import { TooltipType } from '../component/DefaultTooltipContent';
-import { ScatterShapeProps } from '../util/ScatterUtils';
-import { InnerSymbolsProp } from '../shape/Symbols';
-import { TooltipPayload } from '../state/tooltipSlice';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { BaseAxisWithScale, ZAxisWithScale } from '../state/selectors/axisSelectors';
-import { ScatterSettings } from '../state/types/ScatterSettings';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export interface ScatterPointNode {
-    x?: number | string;
-    y?: number | string;
-    z?: number | string;
-}
-/**
- * Scatter coordinates are nullable because sometimes the point value is out of the domain,
- * and we can't compute a valid coordinate for it.
- *
- * Scatter -> Symbol ignores points with null cx or cy so those won't render if using the default shapes.
- * However: the points are exposed via various props and can be used in custom shapes so we keep them around.
- */
-export interface ScatterPointItem {
-    /**
-     * The x coordinate of the point center in pixels.
-     */
-    cx: number | undefined;
-    /**
-     * The y coordinate of the point center in pixels.
-     */
-    cy: number | undefined;
-    /**
-     * The x coordinate (in pixels) of the top-left corner of the rectangle that wraps the point.
-     */
-    x: number | undefined;
-    /**
-     * The y coordinate (in pixels) of the top-left corner of the rectangle that wraps the point.
-     */
-    y: number | undefined;
-    /**
-     * ScatterPointItem size is an abstract number that is used to calculate the radius of the point.
-     * It's not the radius itself, but rather a value that is used to calculate the radius.
-     * Interacts with the zAxis range.
-     */
-    size: number;
-    /**
-     * Width of the point in pixels.
-     */
-    width: number;
-    /**
-     * Height of the point in pixels.
-     */
-    height: number;
-    node: ScatterPointNode;
-    payload?: any;
-    tooltipPayload?: TooltipPayload;
-    tooltipPosition: Coordinate;
-}
-export type ScatterCustomizedShape = ActiveShape<ScatterShapeProps, SVGPathElement & InnerSymbolsProp> | SymbolType;
-/**
- * External props, intended for end users to fill in
- */
-interface ScatterProps extends DataProvider, ZIndexable {
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`, and also to identify this element internally.
-     *
-     * If undefined, Recharts will generate a unique ID automatically.
-     */
-    id?: string;
-    /**
-     * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.
-     * @defaultValue 0
-     */
-    xAxisId?: AxisId;
-    /**
-     * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.
-     * @defaultValue 0
-     */
-    yAxisId?: AxisId;
-    /**
-     * The id of ZAxis which is corresponding to the data. Required when there are multiple ZAxes.
-     *
-     * ZAxis does not render directly, has no ticks and no tick line.
-     * It is used to control the size of each scatter point.
-     *
-     * @defaultValue 0
-     * @see {@link https://recharts.github.io/en-US/examples/ThreeDimScatterChart/ Scatter chart with Z axis}
-     */
-    zAxisId?: AxisId;
-    /**
-     * Decides how to extract the numerical value of this Scatter from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Scatter.
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * Renders line connecting individual points.
-     * Options:
-     * - `false`: no line is drawn.
-     * - `true`: a default line is drawn.
-     * - `ReactElement`: the option is the custom line element.
-     * - `function`: the function will be called to render customized line.
-     * - `object`: the option is the props of Curve element.
-     *
-     * Also see the `lineType` prop which controls how is this line calculated.
-     *
-     * @defaultValue false
-     * @example <Scatter line />
-     * @example <Scatter line={CustomizedLineComponent} />
-     * @example <Scatter line={{ strokeDasharray: '5 5' }} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}
-     */
-    line?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>) | CurveProps | boolean;
-    /**
-     * Determines calculation method of the line if the `line` prop is set.
-     * Options:
-     * - `'joint'`: line will be generated by connecting all the points.
-     * - `'fitting'`: line will be generated by fitting algorithm (linear regression).
-     *
-     * Has no effect if `line` prop is not set or is false.
-     *
-     * @defaultValue joint
-     * @example <Scatter line lineType="fitting" />
-     * @see {@link http://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}
-     */
-    lineType?: 'fitting' | 'joint';
-    /**
-     * Determines the shape of joint line.
-     * Same as `type` prop on Curve, Line and Area components.
-     *
-     * Has no effect if `line` prop is not set or is false or if `lineType` is 'fitting'.
-     *
-     * @defaultValue linear
-     * @see {@link http://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}
-     */
-    lineJointType?: CurveType;
-    /**
-     * The type of icon in legend.
-     * If set to 'none', no legend item will be rendered.
-     *
-     * @defaultValue 'circle'
-     * @example <Scatter legendType="diamond" />
-     */
-    legendType?: LegendType;
-    tooltipType?: TooltipType;
-    className?: string;
-    /**
-     * The name of data.
-     * This option will be used in tooltip and legend to represent this graphical item.
-     * If no value was set to this option, the value of dataKey will be used alternatively.
-     */
-    name?: string;
-    /**
-     * This component is rendered when this graphical item is activated
-     * (could be by mouse hover, touch, keyboard, programmatically).
-     *
-     * @see {@link http://recharts.github.io/en-US/examples/SimpleScatterChart/ Scatter chart with custom active shape}
-     * @example <Scatter activeShape={{ fill: 'red' }} />
-     */
-    activeShape?: ScatterCustomizedShape;
-    /**
-     * Determines the shape of individual data points.
-     * - Can be one of the predefined shapes as a string, which will be passed to {@link Symbols} component.
-     * - If set a ReactElement, the shape of point can be customized.
-     * - If set a function, the function will be called to render customized shape.
-     * @defaultValue circle
-     *
-     * @example <Scatter shape={CustomizedShapeComponent} />
-     * @example <Scatter shape="diamond" />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with custom shapes}
-     */
-    shape?: ScatterCustomizedShape;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * Renders one label for each data point. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object`: the props of LabelList component;
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * If set false, animation of Scatter points will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue 'auto'
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 400
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue 'linear'
-     */
-    animationEasing?: AnimationTiming;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 600
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    children?: ReactNode;
-}
-/**
- * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.
- */
-type BaseScatterSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'points' | 'ref' | 'children' | 'dangerouslySetInnerHTML'>;
-export type Props = BaseScatterSvgProps & ScatterProps;
-export declare function computeScatterPoints({ displayedData, xAxis, yAxis, zAxis, scatterSettings, xAxisTicks, yAxisTicks, cells, }: {
-    displayedData: ReadonlyArray<any>;
-    xAxis: BaseAxisWithScale;
-    yAxis: BaseAxisWithScale;
-    zAxis: ZAxisWithScale | undefined;
-    scatterSettings: ScatterSettings;
-    xAxisTicks: ReadonlyArray<TickItem> | undefined;
-    yAxisTicks: ReadonlyArray<TickItem> | undefined;
-    cells: ReadonlyArray<ReactElement> | undefined;
-}): ReadonlyArray<ScatterPointItem>;
-export declare const defaultScatterProps: {
-    readonly xAxisId: 0;
-    readonly yAxisId: 0;
-    readonly zAxisId: 0;
-    readonly label: false;
-    readonly line: false;
-    readonly legendType: "circle";
-    readonly lineType: "joint";
-    readonly lineJointType: "linear";
-    readonly shape: "circle";
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly animationBegin: 0;
-    readonly animationDuration: 400;
-    readonly animationEasing: "linear";
-    readonly zIndex: 600;
-};
-/**
- * @provides LabelListContext
- * @provides ErrorBarContext
- * @provides CellReader
- * @consumes CartesianChartContext
- */
-export declare const Scatter: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/XAxis.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/XAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,155 +1,0 @@
-import { ComponentType } from 'react';
-import { AxisInterval, AxisTick, RenderableAxisProps, PresentationAttributesAdaptChildEvent, AxisDomain, ScaleType, AxisDomainTypeInput, EvaluatedAxisDomainType, TickProp, XAxisTickContentProps } from '../util/types';
-import { XAxisOrientation, XAxisPadding } from '../state/cartesianAxisSlice';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-interface XAxisProps extends Omit<RenderableAxisProps, 'domain' | 'scale' | 'tick'> {
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * `auto`: the type is inferred based on the chart layout.
-     *
-     * @defaultValue category
-     */
-    type?: AxisDomainTypeInput;
-    /**
-     * Unique ID that represents this XAxis.
-     * Required when there are multiple XAxes.
-     *
-     * @defaultValue 0
-     */
-    xAxisId?: string | number;
-    /**
-     * Height of the axis in pixels.
-     *
-     * @defaultValue 30
-     */
-    height?: number;
-    /**
-     * If set true, flips ticks around the axis line, displaying the labels inside the chart instead of outside.
-     * @defaultValue false
-     */
-    mirror?: boolean;
-    /**
-     * The orientation of axis
-     * @defaultValue bottom
-     */
-    orientation?: XAxisOrientation;
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <XAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <XAxis type="number" domain={[0, 'dataMax']} />
-     * @example <XAxis type="number" domain={['auto', 'auto']} />
-     * @example <XAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <XAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <XAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <XAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <XAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <XAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <XAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    /**
-     * Defines how the individual label text is rendered.
-     * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.
-     *
-     * If you want to customize the overall axis label, use the `label` prop instead.
-     *
-     * Options:
-     * - `false`: Do not render any tick labels.
-     * - `true`: Render tick labels with default settings.
-     * - `object`: An object of props to be merged into the internally calculated tick props.
-     * - `ReactElement`: A custom React element to be used as the tick label.
-     * - `function`: A function that returns a React element for custom rendering of tick labels.
-     *
-     * @defaultValue true
-     */
-    tick?: TickProp<XAxisTickContentProps>;
-    /**
-     * Ticks can be any type when the axis is the type of category
-     * Ticks must be numbers when the axis is the type of number
-     */
-    ticks?: ReadonlyArray<AxisTick>;
-    /**
-     * Axis padding is the distance between the edge of plot area and the first/last tick.
-     *
-     * @defaultValue {"left":0,"right":0}
-     */
-    padding?: XAxisPadding;
-    /**
-     * The minimum gap between two adjacent tick labels
-     *
-     * @defaultValue 5
-     */
-    minTickGap?: number;
-    /**
-     * If set 0, all the ticks will be shown. If set preserveStart", "preserveEnd" or "preserveStartEnd", the ticks which is to be shown or hidden will be calculated automatically.
-     * @defaultValue preserveEnd
-     */
-    interval?: AxisInterval;
-    /**
-     * The margin between tick line and tick.
-     */
-    tickMargin?: number;
-}
-export type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'scale' | 'ref'> & XAxisProps;
-export declare const xAxisDefaultProps: {
-    readonly allowDataOverflow: boolean;
-    readonly allowDecimals: boolean;
-    readonly allowDuplicatedCategory: boolean;
-    readonly angle: number;
-    readonly axisLine: true;
-    readonly height: number;
-    readonly hide: false;
-    readonly includeHidden: boolean;
-    readonly interval: AxisInterval;
-    readonly label: false;
-    readonly minTickGap: number;
-    readonly mirror: boolean;
-    readonly orientation: XAxisOrientation;
-    readonly padding: XAxisPadding;
-    readonly reversed: boolean;
-    readonly scale: ScaleType | CustomScaleDefinition<import("../util/types").CategoricalDomainItem> | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    readonly tick: TickProp<any>;
-    readonly tickCount: number | undefined;
-    readonly tickLine: true;
-    readonly tickSize: 6;
-    readonly type: EvaluatedAxisDomainType;
-    readonly xAxisId: 0;
-};
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-export declare const XAxis: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/YAxis.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/YAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,169 +1,0 @@
-import { ComponentType, SVGProps } from 'react';
-import { AxisDomainTypeInput, AxisInterval, AxisTick, RenderableAxisProps, PresentationAttributesAdaptChildEvent, AxisDomain, ScaleType, EvaluatedAxisDomainType, TickProp, YAxisTickContentProps } from '../util/types';
-import { YAxisOrientation, YAxisPadding, YAxisWidth } from '../state/cartesianAxisSlice';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-interface YAxisProps extends Omit<RenderableAxisProps, 'axisLine' | 'domain' | 'scale' | 'tick'> {
-    /**
-     * Determines how the axis line is drawn. Options:
-     * - `true`: the axis line is drawn with default props;
-     * - `false`: the axis line is not visible;
-     * - `object`: passed as props to SVG `<line>` element representing the axis line.
-     *
-     * @example <YAxis axisLine={false} />
-     * @example <YAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />
-     * @defaultValue true
-     */
-    axisLine?: boolean | SVGProps<SVGLineElement>;
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * `auto`: the type is inferred based on the chart layout.
-     *
-     * @defaultValue number
-     */
-    type?: AxisDomainTypeInput;
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <YAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <YAxis type="number" domain={[0, 'dataMax']} />
-     * @example <YAxis type="number" domain={['auto', 'auto']} />
-     * @example <YAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <YAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <YAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <YAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <YAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <YAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <YAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    /**
-     * Unique ID that represents this YAxis.
-     * Required when there are multiple YAxes.
-     *
-     * @defaultValue 0
-     */
-    yAxisId?: string | number;
-    /**
-     * Defines how the individual label text is rendered.
-     * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.
-     *
-     * If you want to customize the overall axis label, use the `label` prop instead.
-     *
-     * Options:
-     * - `false`: Do not render any tick labels.
-     * - `true`: Render tick labels with default settings.
-     * - `object`: An object of props to be merged into the internally calculated tick props.
-     * - `ReactElement`: A custom React element to be used as the tick label.
-     * - `function`: A function that returns a React element for custom rendering of tick labels.
-     *
-     * @defaultValue true
-     */
-    tick?: TickProp<YAxisTickContentProps>;
-    /**
-     * Ticks can be any type when the axis is the type of category
-     * Ticks must be numbers when the axis is the type of number
-     */
-    ticks?: ReadonlyArray<AxisTick>;
-    /**
-     * Width of the axis in pixels.
-     * `auto` will attempt to resize the axis based on its content.
-     *
-     * @defaultValue 60
-     */
-    width?: YAxisWidth;
-    /**
-     * If set true, flips ticks around the axis line, displaying the labels inside the chart instead of outside.
-     * @defaultValue false
-     */
-    mirror?: boolean;
-    /**
-     * The orientation of axis.
-     * @defaultValue left
-     */
-    orientation?: YAxisOrientation;
-    /**
-     * Axis padding is the distance between the edge of plot area and the first/last tick.
-     *
-     * @defaultValue {"top":0,"bottom":0}
-     */
-    padding?: YAxisPadding;
-    /**
-     * The minimum gap between two adjacent tick labels
-     *
-     * @defaultValue 5
-     */
-    minTickGap?: number;
-    /**
-     * If set 0, all the ticks will be shown. If set "preserveStart", "preserveEnd" or "preserveStartEnd",
-     * the ticks which is to be shown or hidden will be calculated automatically.
-     *
-     * @defaultValue preserveEnd
-     */
-    interval?: AxisInterval;
-    /**
-     * The margin between tick line and tick.
-     */
-    tickMargin?: number;
-}
-export type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'scale' | 'ref'> & YAxisProps;
-export declare const yAxisDefaultProps: {
-    readonly allowDataOverflow: boolean;
-    readonly allowDecimals: boolean;
-    readonly allowDuplicatedCategory: boolean;
-    readonly angle: number;
-    readonly axisLine: true;
-    readonly hide: false;
-    readonly includeHidden: boolean;
-    readonly interval: AxisInterval;
-    readonly label: false;
-    readonly minTickGap: number;
-    readonly mirror: boolean;
-    readonly orientation: YAxisOrientation;
-    readonly padding: YAxisPadding;
-    readonly reversed: boolean;
-    readonly scale: ScaleType | CustomScaleDefinition<import("../util/types").CategoricalDomainItem> | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    readonly tick: TickProp<any>;
-    readonly tickCount: number | undefined;
-    readonly tickLine: true;
-    readonly tickSize: 6;
-    readonly type: EvaluatedAxisDomainType;
-    readonly width: YAxisWidth;
-    readonly yAxisId: 0;
-};
-/**
- * @consumes CartesianViewBoxContext
- * @provides CartesianLabelContext
- */
-export declare const YAxis: ComponentType<Props>;
-export {};
Index: de_modules/recharts/types/cartesian/ZAxis.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/ZAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-import * as React from 'react';
-import { AxisDomain, BaseAxisProps, ScaleType } from '../util/types';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { AxisRange } from '../state/selectors/axisSelectors';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-export interface Props extends Omit<BaseAxisProps, 'domain'> {
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * @defaultValue number
-     */
-    type?: 'number' | 'category';
-    /**
-     * The unique id of z-axis.
-     *
-     * @defaultValue 0
-     */
-    zAxisId?: AxisId;
-    /**
-     * The range of axis.
-     * Unlike other axes, the range of z-axis is not informed by chart dimensions.
-     *
-     * @defaultValue [64,64]
-     */
-    range?: AxisRange;
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <ZAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <ZAxis type="number" domain={[0, 'dataMax']} />
-     * @example <ZAxis type="number" domain={['auto', 'auto']} />
-     * @example <ZAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <ZAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <ZAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <ZAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <ZAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <ZAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <ZAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-}
-export declare const zAxisDefaultProps: {
-    readonly zAxisId: 0;
-    readonly range: AxisRange;
-    readonly scale: ScaleType | CustomScaleDefinition<import("../util/types").CategoricalDomainItem> | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    readonly type: import("../util/types").EvaluatedAxisDomainType;
-};
-/**
- * Virtual axis, does not render anything itself. Has no ticks, grid lines, or labels.
- * Useful for dynamically setting Scatter point size, based on data.
- *
- * @consumes CartesianViewBoxContext
- */
-export declare function ZAxis(outsideProps: Props): React.JSX.Element;
-export declare namespace ZAxis {
-    var displayName: string;
-}
Index: de_modules/recharts/types/cartesian/getCartesianPosition.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/getCartesianPosition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { CartesianViewBoxRequired, TrapezoidViewBox } from '../util/types';
-import { TextAnchor, TextVerticalAnchor } from '../component/Text';
-export type CartesianLabelPosition = 'top' | 'left' | 'right' | 'bottom' | 'inside' | 'outside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideBottomLeft' | 'insideTopRight' | 'insideBottomRight' | 'insideStart' | 'insideEnd' | 'end' | 'center' | 'centerTop' | 'centerBottom' | 'middle' | {
-    x?: number | string;
-    y?: number | string;
-};
-export type GetCartesianPositionOptions = {
-    viewBox: TrapezoidViewBox | CartesianViewBoxRequired;
-    parentViewBox?: CartesianViewBoxRequired;
-    /**
-     * The offset to the specified "position". Direction of the offset depends on the position.
-     */
-    offset?: number;
-    /**
-     * The position of the element relative to the view box.
-     */
-    position?: CartesianLabelPosition;
-    /**
-     * If true, the returned width and height will be clamped to keep the element within the parentViewBox.
-     * This is useful for preventing labels from overflowing the chart area.
-     */
-    clamp?: boolean;
-};
-export type CartesianPosition = {
-    x: number;
-    y: number;
-    horizontalAnchor: TextAnchor;
-    verticalAnchor: TextVerticalAnchor;
-    width?: number;
-    height?: number;
-};
-/**
- * Calculates the position and alignment for a generic element in a Cartesian coordinate system.
- *
- * @param options - The options including viewBox, position, and offset.
- * @returns The calculated x, y, alignment and size.
- */
-export declare const getCartesianPosition: (options: GetCartesianPositionOptions) => CartesianPosition;
Index: de_modules/recharts/types/cartesian/getEquidistantTicks.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/getEquidistantTicks.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { CartesianTickItem } from '../util/types';
-import { Sign } from './getTicks';
-export declare function getEquidistantTicks(sign: Sign, boundaries: {
-    start: number;
-    end: number;
-}, getTickSize: (tick: CartesianTickItem, index: number) => number, ticks: ReadonlyArray<CartesianTickItem>, minTickGap: number): ReadonlyArray<CartesianTickItem>;
-export declare function getEquidistantPreserveEndTicks(sign: Sign, boundaries: {
-    start: number;
-    end: number;
-}, getTickSize: (tick: CartesianTickItem, index: number) => number, ticks: ReadonlyArray<CartesianTickItem>, minTickGap: number): ReadonlyArray<CartesianTickItem>;
Index: de_modules/recharts/types/cartesian/getTicks.d.ts
===================================================================
--- node_modules/recharts/types/cartesian/getTicks.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { CartesianTickItem, CartesianViewBoxRequired } from '../util/types';
-import { CartesianAxisSettings, XAxisOrientation, YAxisOrientation } from '../state/cartesianAxisSlice';
-export type Sign = 0 | 1 | -1;
-export type GetTicksInput = {
-    angle?: number;
-    interval: CartesianAxisSettings['interval'] | undefined;
-    minTickGap: number;
-    orientation: XAxisOrientation | YAxisOrientation;
-    tick: CartesianAxisSettings['tick'];
-    tickFormatter?: CartesianAxisSettings['tickFormatter'];
-    ticks: ReadonlyArray<CartesianTickItem> | null;
-    unit?: CartesianAxisSettings['unit'];
-    viewBox: CartesianViewBoxRequired;
-};
-export declare function getTicks(props: GetTicksInput, fontSize?: string, letterSpacing?: string): ReadonlyArray<CartesianTickItem>;
Index: de_modules/recharts/types/chart/AreaChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/AreaChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const AreaChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/BarChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/BarChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const BarChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/CartesianChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/CartesianChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps, Margin, TooltipEventType } from '../util/types';
-import { TooltipPayloadSearcher } from '../state/tooltipSlice';
-export declare const defaultCartesianChartProps: {
-    readonly accessibilityLayer: true;
-    readonly barCategoryGap: "10%";
-    readonly barGap: 4;
-    readonly layout: "horizontal";
-    readonly margin: Margin;
-    readonly responsive: false;
-    readonly reverseStackOrder: false;
-    readonly stackOffset: "none";
-    readonly syncMethod: "index";
-};
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.
- */
-export type CartesianChartOptions = {
-    chartName: string;
-    defaultTooltipEventType: TooltipEventType;
-    validateTooltipEventTypes: ReadonlyArray<TooltipEventType>;
-    tooltipPayloadSearcher: TooltipPayloadSearcher;
-    categoricalChartProps: CartesianChartProps;
-};
-export declare const CartesianChart: React.ForwardRefExoticComponent<CartesianChartOptions & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/CategoricalChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/CategoricalChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-export declare const CategoricalChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/ComposedChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/ComposedChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const ComposedChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/FunnelChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/FunnelChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const FunnelChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/LineChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/LineChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const LineChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/PieChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/PieChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import * as React from 'react';
-import { PolarChartProps } from '../util/types';
-export declare const defaultPieChartProps: {
-    readonly layout: "centric";
-    readonly startAngle: 0;
-    readonly endAngle: 360;
-    readonly accessibilityLayer: true;
-    readonly stackOffset: "none";
-    readonly barCategoryGap: "10%";
-    readonly barGap: 4;
-    readonly margin: import("../util/types").Margin;
-    readonly reverseStackOrder: false;
-    readonly syncMethod: "index";
-    readonly responsive: false;
-    readonly cx: "50%";
-    readonly cy: "50%";
-    readonly innerRadius: 0;
-    readonly outerRadius: "80%";
-};
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export declare const PieChart: React.ForwardRefExoticComponent<PolarChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/PolarChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/PolarChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-import * as React from 'react';
-import { Margin, PolarChartProps, TooltipEventType } from '../util/types';
-import { TooltipPayloadSearcher } from '../state/tooltipSlice';
-/**
- * These default props are the same for all PolarChart components.
- */
-export declare const defaultPolarChartProps: {
-    readonly accessibilityLayer: true;
-    readonly stackOffset: "none";
-    readonly barCategoryGap: "10%";
-    readonly barGap: 4;
-    readonly margin: Margin;
-    readonly reverseStackOrder: false;
-    readonly syncMethod: "index";
-    readonly layout: "radial";
-    readonly responsive: false;
-    readonly cx: "50%";
-    readonly cy: "50%";
-    readonly innerRadius: 0;
-    readonly outerRadius: "80%";
-};
-/**
- * These props are required for the PolarChart to function correctly.
- * Users usually would not need to specify these explicitly,
- * because the convenience components like PieChart, RadarChart, etc.
- * will provide these defaults.
- * We can't have the defaults in this file because each of those convenience components
- * have their own opinions about what they should be.
- */
-type PolarChartPropsWithDefaults = PolarChartProps & {
-    cx: NonNullable<PolarChartProps['cx']>;
-    cy: NonNullable<PolarChartProps['cy']>;
-    startAngle: NonNullable<PolarChartProps['startAngle']>;
-    endAngle: NonNullable<PolarChartProps['endAngle']>;
-    innerRadius: NonNullable<PolarChartProps['innerRadius']>;
-    outerRadius: NonNullable<PolarChartProps['outerRadius']>;
-};
-/**
- * These are one-time, immutable options that decide the chart's behavior.
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
- * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.
- */
-export type PolarChartOptions = {
-    chartName: string;
-    defaultTooltipEventType: TooltipEventType;
-    validateTooltipEventTypes: ReadonlyArray<TooltipEventType>;
-    tooltipPayloadSearcher: TooltipPayloadSearcher;
-    categoricalChartProps: PolarChartPropsWithDefaults;
-};
-export declare const PolarChart: React.ForwardRefExoticComponent<PolarChartOptions & React.RefAttributes<SVGSVGElement>>;
-export {};
Index: de_modules/recharts/types/chart/RadarChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/RadarChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import * as React from 'react';
-import { PolarChartProps, PolarLayout } from '../util/types';
-export declare const defaultRadarChartProps: {
-    readonly layout: "centric";
-    readonly startAngle: 90;
-    readonly endAngle: -270;
-    readonly accessibilityLayer: true;
-    readonly stackOffset: "none";
-    readonly barCategoryGap: "10%";
-    readonly barGap: 4;
-    readonly margin: import("../util/types").Margin;
-    readonly reverseStackOrder: false;
-    readonly syncMethod: "index";
-    readonly responsive: false;
-    readonly cx: "50%";
-    readonly cy: "50%";
-    readonly innerRadius: 0;
-    readonly outerRadius: "80%";
-};
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export declare const RadarChart: React.ForwardRefExoticComponent<Omit<PolarChartProps, "layout" | "startAngle" | "endAngle"> & {
-    /**
-     * The layout of chart defines the orientation of axes, graphical items, and tooltip.
-     *
-     * @defaultValue centric
-     */
-    layout?: PolarLayout;
-    /**
-     * Angle in degrees from which the chart should start.
-     * @defaultValue 90
-     *
-     */
-    startAngle?: number;
-    /**
-     * Angle, in degrees, at which the chart should end.
-     *
-     * @defaultValue -270
-     */
-    endAngle?: number;
-} & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/RadialBarChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/RadialBarChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import * as React from 'react';
-import { PolarChartProps } from '../util/types';
-export declare const defaultRadialBarChartProps: {
-    readonly layout: "radial";
-    readonly startAngle: 0;
-    readonly endAngle: 360;
-    readonly accessibilityLayer: true;
-    readonly stackOffset: "none";
-    readonly barCategoryGap: "10%";
-    readonly barGap: 4;
-    readonly margin: import("../util/types").Margin;
-    readonly reverseStackOrder: false;
-    readonly syncMethod: "index";
-    readonly responsive: false;
-    readonly cx: "50%";
-    readonly cy: "50%";
-    readonly innerRadius: 0;
-    readonly outerRadius: "80%";
-};
-/**
- * @consumes ResponsiveContainerContext
- * @provides PolarViewBoxContext
- * @provides PolarChartContext
- */
-export declare const RadialBarChart: React.ForwardRefExoticComponent<PolarChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/RechartsWrapper.d.ts
===================================================================
--- node_modules/recharts/types/chart/RechartsWrapper.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import * as React from 'react';
-import { CSSProperties, ReactNode, Ref } from 'react';
-import { ExternalMouseEvents } from './types';
-import { Percent } from '../util/types';
-export type RechartsWrapperProps = ExternalMouseEvents & {
-    children: ReactNode;
-    width: number | Percent | undefined;
-    height: number | Percent | undefined;
-    /**
-     * If true, then it will listen to container size changes and adapt the SVG chart accordingly.
-     * If false, then it renders the chart at the specified width and height and will stay that way
-     * even if the container size changes.
-     */
-    responsive: boolean;
-    className?: string;
-    style?: CSSProperties;
-    ref?: Ref<HTMLDivElement>;
-    /**
-     * Treemap is special snowflake that handles its own mouse events so
-     * here is a flag to disable the dispatching of mouse events from RechartsWrapper.
-     * If false, then this disables mouse click and touch event dispatching.
-     * Mouse move events are still dispatched because they are needed for tooltip synchronization.
-     * @default true
-     */
-    dispatchTouchEvents?: boolean;
-};
-export declare const RechartsWrapper: React.ForwardRefExoticComponent<Omit<RechartsWrapperProps, "ref"> & React.RefAttributes<HTMLDivElement | null>>;
Index: de_modules/recharts/types/chart/Sankey.d.ts
===================================================================
--- node_modules/recharts/types/chart/Sankey.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,204 +1,0 @@
-import * as React from 'react';
-import { MouseEvent, ReactElement, ReactNode, SVGProps } from 'react';
-import { Props as RectangleProps } from '../shape/Rectangle';
-import { DataKey, Margin, Percent, SankeyLink, SankeyNode } from '../util/types';
-import { TooltipPayloadSearcher } from '../state/tooltipSlice';
-type SankeyVerticalAlign = 'justify' | 'top';
-export declare const sankeyPayloadSearcher: TooltipPayloadSearcher;
-interface LinkDataItem {
-    source: number;
-    target: number;
-    value: number;
-}
-export interface NodeProps extends Omit<SVGProps<SVGRectElement>, 'height' | 'width'> {
-    height: number;
-    width: number;
-    payload: SankeyNode;
-    index: number;
-    x: number;
-    y: number;
-}
-export interface LinkProps extends SVGProps<SVGPathElement> {
-    sourceX: number;
-    targetX: number;
-    sourceY: number;
-    targetY: number;
-    sourceControlX: number;
-    targetControlX: number;
-    sourceRelativeY: number;
-    targetRelativeY: number;
-    linkWidth: number;
-    index: number;
-    payload: Omit<SankeyLink, 'source' | 'target'> & {
-        source: SankeyNode;
-        target: SankeyNode;
-    };
-}
-export interface SankeyData {
-    nodes: any[];
-    links: LinkDataItem[];
-}
-export type SankeyNodeOptions = ReactElement<SVGProps<SVGRectElement>> | ((props: NodeProps) => ReactNode) | RectangleProps;
-type SankeyLinkOptions = ReactElement<SVGProps<SVGPathElement>> | ((props: LinkProps) => ReactElement<SVGProps<SVGPathElement>>) | SVGProps<SVGPathElement>;
-interface SankeyProps {
-    /**
-     * Name represents each sector in the tooltip.
-     * This allows you to extract the name from the data:
-     *
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the name.
-     *
-     * @defaultValue name
-     */
-    nameKey?: DataKey<any>;
-    /**
-     * dataKey prop in Sankey defines which key in the link objects represents the value of the link _in Tooltip only_.
-     *
-     * Unlike other charts where dataKey is used to extract values from the data array, in Sankey charts,
-     * the value of each link is directly taken from the 'value' property of the link objects.
-     *
-     * @default 'value'
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * The width of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    width?: number | Percent;
-    /**
-     * The height of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    height?: number | Percent;
-    /**
-     * The source data, including the array of nodes, and the relationships, represented by links.
-     *
-     * Note that Sankey requires a specific data structure.
-     * Each node should have a unique index in the nodes array, and each link should reference these nodes by their indices.
-     * This is different from other chart types in Recharts, which accept arbitrary data.
-     *
-     * @example
-     * nodes: [
-     *   { name: 'Visit' },
-     *   { name: 'Direct-Favourite' },
-     *   { name: 'Page-Click' },
-     *   { name: 'Detail-Favourite' },
-     *   { name: 'Lost' },
-     * ],
-     * links: [
-     *   { source: 0, target: 1, value: 3728.3 },
-     *   { source: 0, target: 2, value: 354170 },
-     *   { source: 2, target: 3, value: 62429 },
-     *   { source: 2, target: 4, value: 291741 },
-     * ],
-     */
-    data: SankeyData;
-    /**
-     * The padding between the nodes
-     * @default 10
-     */
-    nodePadding?: number;
-    /**
-     * The width of node
-     * @default 10
-     */
-    nodeWidth?: number;
-    /**
-     * The curvature of width
-     * @default 0.5
-     */
-    linkCurvature?: number;
-    /**
-     * The number of the iterations between the links
-     * @default 32
-     */
-    iterations?: number;
-    /**
-     * If set an object, the option is the configuration of nodes.
-     * If set a React element, the option is the custom react element of drawing the nodes.
-     *
-     * @example <Sankey node={MyCustomComponent} />
-     * @example <Sankey node={{stroke: #77c878, strokeWidth: 2}} />
-     */
-    node?: SankeyNodeOptions;
-    /**
-     * If set an object, the option is the configuration of links.
-     * If set a React element, the option is the custom react element of drawing the links.
-     *
-     * @example <Sankey link={MyCustomComponent} />
-     * @example <Sankey link={{ fill: #77c878 }} />
-     */
-    link?: SankeyLinkOptions;
-    style?: React.CSSProperties;
-    className?: string;
-    children?: ReactNode;
-    /**
-     * Empty space around the container.
-     *
-     * @defaultValue {"top":5,"right":5,"bottom":5,"left":5}
-     */
-    margin?: Partial<Margin>;
-    /**
-     * The customized event handler of click on the area in this group
-     */
-    onClick?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter on the area in this group
-     */
-    onMouseEnter?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the area in this group
-     */
-    onMouseLeave?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;
-    /**
-     * Whether to sort the nodes on the y axis, or to display them as user-defined.
-     * @default true
-     */
-    sort?: boolean;
-    /**
-     * Controls the vertical spacing of nodes within a depth. 'justify' distributes nodes evenly and balances link paths, while 'top' positions the group starting from the top edge of the chart.
-     * @default 'justify'
-     */
-    verticalAlign?: SankeyVerticalAlign;
-    /**
-     * If set to 'justify', the start nodes will be aligned to the left edge of the chart and the end nodes will be aligned to the right edge of the chart. If set to 'left', the start nodes will be aligned to the left edge of the chart.
-     * @default 'justify'
-     */
-    align?: 'left' | 'justify';
-}
-export type Props = SVGProps<SVGSVGElement> & SankeyProps;
-type SankeyElementType = 'node' | 'link';
-export declare const sankeyDefaultProps: {
-    readonly align: "justify";
-    readonly dataKey: "value";
-    readonly iterations: 32;
-    readonly linkCurvature: 0.5;
-    readonly margin: {
-        readonly top: 5;
-        readonly right: 5;
-        readonly bottom: 5;
-        readonly left: 5;
-    };
-    readonly nameKey: "name";
-    readonly nodePadding: 10;
-    readonly nodeWidth: 10;
-    readonly sort: true;
-    readonly verticalAlign: "justify";
-};
-/**
- * Flow diagram in which the width of the arrows is proportional to the flow rate.
- * It is typically used to visualize energy or material or cost transfers between processes.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export declare function Sankey(outsideProps: Props): React.JSX.Element;
-export declare namespace Sankey {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/chart/ScatterChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/ScatterChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import * as React from 'react';
-import { CartesianChartProps } from '../util/types';
-/**
- * @consumes ResponsiveContainerContext
- * @provides CartesianViewBoxContext
- * @provides CartesianChartContext
- */
-export declare const ScatterChart: React.ForwardRefExoticComponent<CartesianChartProps & React.RefAttributes<SVGSVGElement>>;
Index: de_modules/recharts/types/chart/SunburstChart.d.ts
===================================================================
--- node_modules/recharts/types/chart/SunburstChart.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-import * as React from 'react';
-import { CSSProperties } from 'react';
-import { Props as TextProps } from '../component/Text';
-import { TooltipIndex, TooltipPayloadSearcher } from '../state/tooltipSlice';
-import { DataKey, Percent } from '../util/types';
-export interface SunburstData {
-    [key: string]: any;
-    name: string;
-    value?: number;
-    fill?: string;
-    tooltipIndex?: TooltipIndex;
-    children?: SunburstData[];
-}
-export interface SunburstChartProps {
-    className?: string;
-    /**
-     * The source data. Each element should be an object.
-     * The properties of each object represent the values of different data dimensions.
-     *
-     * Use the `dataKey` prop to specify which properties to use.
-     *
-     * @example data={[{ name: 'a', value: 12, fill: '#8884d8' }, { name: 'b', value: 5, fill: '#83a6ed' }]}
-     */
-    data: SunburstData;
-    /**
-     * The width of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    width?: number | Percent;
-    /**
-     * The height of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    height?: number | Percent;
-    /**
-     * If true, then it will listen to container size changes and adapt the SVG chart accordingly.
-     * If false, then it renders the chart at the specified width and height and will stay that way
-     * even if the container size changes.
-     *
-     * This is similar to ResponsiveContainer but without the need for an extra wrapper component.
-     * The `responsive` prop also uses standard CSS sizing rules, instead of custom resolution logic (like ResponsiveContainer does).
-     * @default false
-     */
-    responsive?: boolean;
-    /**
-     * Distance between sectors.
-     *
-     * @defaultValue 2
-     */
-    padding?: number;
-    /**
-     * Decides how to extract value from the data.
-     *
-     * @defaultValue value
-     */
-    dataKey?: string;
-    /**
-     * Name represents each sector in the tooltip.
-     * This allows you to extract the name from the data:
-     *
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the name.
-     *
-     * @defaultValue name
-     */
-    nameKey?: DataKey<any>;
-    /**
-     * Padding between each hierarchical level.
-     */
-    ringPadding?: number;
-    /**
-     * The radius of the inner circle at the center of the chart.
-     *
-     * @defaultValue 50
-     */
-    innerRadius?: number;
-    /**
-     * Outermost edge of the chart.
-     * Defaults to the max possible radius for a circle inscribed in the chart container
-     */
-    outerRadius?: number;
-    /**
-     * The x-coordinate of center in pixels.
-     * If undefined, it will be set to half of the chart width.
-     */
-    cx?: number;
-    /**
-     * The y-coordinate of center in pixels.
-     * If undefined, it will be set to half of the chart height.
-     */
-    cy?: number;
-    /** Angle in degrees from which the chart should start. */
-    startAngle?: number;
-    /** Angle, in degrees, at which the chart should end. */
-    endAngle?: number;
-    children?: React.ReactNode;
-    fill?: string;
-    stroke?: string;
-    /**
-     * An object with svg text options to control the appearance of the chart labels.
-     */
-    textOptions?: TextProps;
-    onMouseEnter?: (node: SunburstData, e: React.MouseEvent) => void;
-    onMouseLeave?: (node: SunburstData, e: React.MouseEvent) => void;
-    onClick?: (node: SunburstData) => void;
-    style?: CSSProperties;
-    id?: string;
-}
-export declare const payloadSearcher: TooltipPayloadSearcher;
-export declare const defaultSunburstChartProps: {
-    readonly padding: 2;
-    readonly dataKey: "value";
-    readonly nameKey: "name";
-    readonly ringPadding: 2;
-    readonly innerRadius: 50;
-    readonly fill: "#333";
-    readonly stroke: "#FFF";
-    readonly textOptions: {
-        fontWeight: string;
-        paintOrder: string;
-        fontSize: string;
-        stroke: string;
-        fill: string;
-        pointerEvents: string;
-    };
-    readonly startAngle: 0;
-    readonly endAngle: 360;
-    readonly responsive: false;
-};
-/**
- * The sunburst is a hierarchical chart, similar to a {@link Treemap}, plotted in polar coordinates.
- * Sunburst charts effectively convey the hierarchical relationships and proportions within each level.
- * It is easy to see all the middle layers in the hierarchy, which might get lost in other visualizations.
- * For some datasets, the radial layout may be more visually appealing and intuitive than a traditional {@link Treemap}.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export declare const SunburstChart: (outsideProps: SunburstChartProps) => React.JSX.Element;
Index: de_modules/recharts/types/chart/Treemap.d.ts
===================================================================
--- node_modules/recharts/types/chart/Treemap.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,163 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-import { AnimationDuration, AnimationTiming, DataKey, Percent } from '../util/types';
-import { TooltipIndex, TooltipPayloadSearcher } from '../state/tooltipSlice';
-/**
- * This is what end users defines as `data` on Treemap.
- */
-export interface TreemapDataType {
-    children?: ReadonlyArray<TreemapDataType>;
-    [key: string]: unknown;
-}
-/**
- * This is what is returned from `squarify`, the final treemap data structure
- * that gets rendered and is stored in
- */
-export interface TreemapNode {
-    children: ReadonlyArray<TreemapNode> | null;
-    value: number;
-    depth: number;
-    index: number;
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-    name: string;
-    tooltipIndex: TooltipIndex;
-    root: TreemapNode;
-    [k: string]: unknown;
-}
-export declare const treemapPayloadSearcher: TooltipPayloadSearcher;
-export declare const addToTreemapNodeIndex: (indexInChildrenArr: number, activeTooltipIndexSoFar?: TooltipIndex | undefined) => TooltipIndex;
-export declare const computeNode: ({ depth, node, index, dataKey, nameKey, nestedActiveTooltipIndex, }: {
-    depth: number;
-    node: TreemapNode;
-    index: number;
-    dataKey: DataKey<unknown>;
-    nameKey: DataKey<unknown>;
-    nestedActiveTooltipIndex: TooltipIndex | undefined;
-}) => TreemapNode;
-export type TreemapContentType = ReactNode | ((props: TreemapNode) => React.ReactElement);
-export interface Props {
-    /**
-     * The width of chart container.
-     * Can be a number or a percent string like "100%".
-     */
-    width?: number | Percent;
-    /**
-     * The height of chart container.
-     * Can be a number or a percent string like "100%".
-     */
-    height?: number | Percent;
-    /**
-     * The source data. Each element should be an object.
-     * The properties of each object represent the values of different data dimensions.
-     *
-     * Use the `dataKey` prop to specify which properties to use.
-     *
-     * If the `children` property is present on an element, it will be treated as a nested treemap.
-     */
-    data?: ReadonlyArray<TreemapDataType>;
-    /**
-     * @deprecated unused prop, doesn't do anything, use `key` instead
-     */
-    animationId?: number;
-    style?: React.CSSProperties;
-    /**
-     * The treemap will try to keep every single rectangle's aspect ratio near the aspectRatio given.
-     * @default 1.618033988749895
-     */
-    aspectRatio?: number;
-    /**
-     * If set to a React element, the option is the customized React element of rendering the content.
-     * If set to a function, the function will be called to render the content.
-     */
-    content?: TreemapContentType;
-    fill?: string;
-    stroke?: string;
-    className?: string;
-    /**
-     * Name represents each sector in the tooltip.
-     * This allows you to extract the name from the data:
-     *
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the name.
-     *
-     * @defaultValue name
-     */
-    nameKey?: DataKey<any>;
-    /**
-     * Decides how to extract the value of this Treemap from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Treemap.
-     * @default 'value'
-     */
-    dataKey?: DataKey<any>;
-    children?: ReactNode;
-    /**
-     * The type of treemap to render.
-     *
-     * - 'flat': Renders the entire treemap at once, with all leaf nodes visible.
-     * - 'nest': Renders an interactive, nested treemap. Clicking on a parent node will "zoom in" to show its children,
-     *   and a breadcrumb navigation will be displayed to allow navigating back up the hierarchy.
-     *
-     * @default 'flat'
-     */
-    type?: 'flat' | 'nest';
-    colorPanel?: ReadonlyArray<string>;
-    nestIndexContent?: React.ReactElement | ((item: TreemapNode, i: number) => ReactNode);
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    onMouseEnter?: (node: TreemapNode, e: React.MouseEvent) => void;
-    onMouseLeave?: (node: TreemapNode, e: React.MouseEvent) => void;
-    onClick?: (node: TreemapNode) => void;
-    /**
-     * If set false, animation of treemap will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @default 'auto'
-     */
-    isAnimationActive?: boolean | 'auto';
-    isUpdateAnimationActive?: boolean | 'auto';
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @default 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @default 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @default 'linear'
-     */
-    animationEasing?: AnimationTiming;
-    id?: string;
-}
-export declare const defaultTreeMapProps: {
-    readonly aspectRatio: number;
-    readonly dataKey: "value";
-    readonly nameKey: "name";
-    readonly type: "flat";
-    readonly isAnimationActive: "auto";
-    readonly isUpdateAnimationActive: "auto";
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "linear";
-};
-/**
- * The Treemap chart is used to visualize hierarchical data using nested rectangles.
- *
- * @consumes ResponsiveContainerContext
- * @provides TooltipEntrySettings
- */
-export declare function Treemap(outsideProps: Props): React.JSX.Element;
Index: de_modules/recharts/types/chart/types.d.ts
===================================================================
--- node_modules/recharts/types/chart/types.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { SyntheticEvent } from 'react';
-import { MouseHandlerDataParam } from '../synchronisation/types';
-export type TooltipTrigger = 'hover' | 'click';
-export type CategoricalChartFunc = (nextState: MouseHandlerDataParam, event: SyntheticEvent) => void;
-export interface ExternalMouseEvents {
-    /**
-     * The customized event handler of click in this chart.
-     */
-    onClick?: CategoricalChartFunc;
-    /**
-     * The customized event handler of mouseleave in this chart.
-     */
-    onMouseLeave?: CategoricalChartFunc;
-    /**
-     * The customized event handler of mouseenter in this chart.
-     */
-    onMouseEnter?: CategoricalChartFunc;
-    /**
-     * The customized event handler of mousemove in this chart.
-     */
-    onMouseMove?: CategoricalChartFunc;
-    /**
-     * The customized event handler of mousedown in this chart.
-     */
-    onMouseDown?: CategoricalChartFunc;
-    /**
-     * The customized event handler of mouseup in this chart.
-     */
-    onMouseUp?: CategoricalChartFunc;
-    /**
-     * The customized event handler of contextmenu in this chart.
-     */
-    onContextMenu?: CategoricalChartFunc;
-    /**
-     * The customized event handler of dblclick in this chart.
-     */
-    onDoubleClick?: CategoricalChartFunc;
-    /**
-     * The customized event handler of touchstart in this chart.
-     */
-    onTouchStart?: CategoricalChartFunc;
-    /**
-     * The customized event handler of touchmove in this chart.
-     */
-    onTouchMove?: CategoricalChartFunc;
-    /**
-     * The customized event handler of touchend in this chart.
-     */
-    onTouchEnd?: CategoricalChartFunc;
-}
Index: de_modules/recharts/types/component/ActivePoints.d.ts
===================================================================
--- node_modules/recharts/types/component/ActivePoints.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import * as React from 'react';
-import { ActiveDotType, DataKey } from '../util/types';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export interface PointType {
-    readonly x: number | null;
-    readonly y: number | null;
-    readonly value?: any;
-    readonly payload?: any;
-}
-interface ActivePointsProps extends ZIndexable {
-    points: ReadonlyArray<PointType>;
-    /**
-     * Different graphical elements have different opinion on what is their main color.
-     * Sometimes stroke, sometimes fill, sometimes combination.
-     * `undefined` means that the color is not set, and the point will be transparent.
-     */
-    mainColor: string | undefined;
-    itemDataKey: DataKey<any> | undefined;
-    activeDot: ActiveDotType;
-    clipPath?: string;
-}
-export declare function ActivePoints({ points, mainColor, activeDot, itemDataKey, clipPath, zIndex, }: ActivePointsProps): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/Cell.d.ts
===================================================================
--- node_modules/recharts/types/component/Cell.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import type { FunctionComponent, SVGProps } from 'react';
-export interface Props extends SVGProps<SVGElement> {
-    /**
-     * The fill color.
-     */
-    fill?: string;
-    /**
-     * The stroke color.
-     */
-    stroke?: string;
-}
-/**
- * Cell component used to define colors and styles of chart elements.
- *
- * This component is now deprecated and will be removed in Recharts 4.0.
- *
- * Please use the `shape` prop or `content` prop on the respective chart components
- * to customize the rendering of chart elements instead of using `Cell`.
- *
- * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}
- *
- * @deprecated
- * @consumes CellReader
- */
-export declare const Cell: FunctionComponent<Props>;
Index: de_modules/recharts/types/component/Cursor.d.ts
===================================================================
--- node_modules/recharts/types/component/Cursor.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import * as React from 'react';
-import { ReactElement, SVGProps } from 'react';
-import { ChartOffsetInternal, Coordinate, LayoutType, PolarCoordinate, TooltipEventType } from '../util/types';
-import { TooltipIndex, TooltipPayload } from '../state/tooltipSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-/**
- * If set false, no cursor will be drawn when tooltip is active.
- * If set an object, the option is the configuration of cursor.
- * If set a React element, the option is the custom react element of drawing cursor
- */
-export type CursorDefinition = boolean | ReactElement | SVGProps<SVGElement>;
-export interface CursorProps extends ZIndexable {
-    cursor: CursorDefinition;
-    tooltipEventType: TooltipEventType;
-    coordinate: Coordinate | PolarCoordinate | undefined;
-    payload: TooltipPayload;
-    index: TooltipIndex | undefined;
-}
-export type CursorConnectedProps = CursorProps & {
-    tooltipAxisBandSize: number;
-    layout: LayoutType;
-    offset: ChartOffsetInternal;
-    chartName: string;
-};
-export declare function CursorInternal(props: CursorConnectedProps): React.JSX.Element | null;
-export declare function Cursor(props: CursorProps): React.JSX.Element | null;
Index: de_modules/recharts/types/component/Customized.d.ts
===================================================================
--- node_modules/recharts/types/component/Customized.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-/**
- * @fileOverview Customized
- */
-import * as React from 'react';
-import { Component, FunctionComponent, ReactElement } from 'react';
-type Comp<P> = FunctionComponent<P> | Component<P> | ReactElement<P>;
-export type Props<P, C extends Comp<P>> = P & {
-    /**
-     * Render your components directly, without Customized wrapper. Will be removed in 4.0
-     * @deprecated
-     * @example Before: `<Customized component={<MyCustomComponent />} />`
-     * @example After: `<MyCustomComponent />`
-     */
-    component: C;
-};
-/**
- * Customized component used to be necessary to render custom elements in Recharts 2.x.
- * Starting from Recharts 3.x, all charts are able to render arbitrary elements anywhere,
- * and Customized is no longer needed.
- *
- * @example Before: `<Customized component={<MyCustomComponent />} />`
- * @example After: `<MyCustomComponent />`
- *
- * @deprecated Just render your components directly. Will be removed in 4.0
- */
-export declare function Customized<P, C extends Comp<P>>({ component, ...props }: Props<P, C>): React.JSX.Element;
-export declare namespace Customized {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/component/DefaultLegendContent.d.ts
===================================================================
--- node_modules/recharts/types/component/DefaultLegendContent.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,105 +1,0 @@
-import * as React from 'react';
-import { ReactNode, MouseEvent, ReactElement } from 'react';
-import { DataKey, LegendType, PresentationAttributesAdaptChildEvent, CartesianLayout } from '../util/types';
-export type ContentType = ReactElement | ((props: Props) => ReactNode);
-export type HorizontalAlignmentType = 'center' | 'left' | 'right';
-export type VerticalAlignmentType = 'top' | 'bottom' | 'middle';
-export type Formatter = (value: any, entry: LegendPayload, index: number) => ReactNode;
-export interface LegendPayload {
-    /**
-     * This is the text that will be displayed in the legend in the DOM.
-     * If undefined, the text will not be displayed, so the icon will be rendered without text.
-     */
-    value: string | undefined;
-    type?: LegendType;
-    color?: string;
-    payload?: {
-        strokeDasharray?: number | string;
-        value?: any;
-    };
-    formatter?: Formatter;
-    inactive?: boolean;
-    legendIcon?: ReactElement<SVGElement>;
-    dataKey?: DataKey<any>;
-}
-interface DefaultLegendContentProps {
-    /**
-     * The size of icon in each legend item.
-     * @defaultValue 14
-     */
-    iconSize?: number;
-    /**
-     * The type of icon in each legend item.
-     */
-    iconType?: LegendType;
-    /**
-     * The layout of legend items inside the legend container.
-     * @defaultValue horizontal
-     */
-    layout?: CartesianLayout;
-    /**
-     * Horizontal alignment of the whole Legend container:
-     *
-     * - `left`: shows the Legend to the left of the chart, and chart width reduces automatically to make space for it.
-     * - `right` shows the Legend to the right of the chart, and chart width reduces automatically.
-     * - `center` shows the Legend in the middle of chart, and chart width remains unchanged.
-     *
-     * The exact behavior changes depending on 'verticalAlign' prop.
-     *
-     * @defaultValue center
-     */
-    align?: HorizontalAlignmentType;
-    /**
-     * Vertical alignment of the whole Legend container:
-     *
-     * - `bottom`: shows the Legend below chart, and chart height reduces automatically to make space for it.
-     * - `top`: shows the Legend above chart, and chart height reduces automatically.
-     * - `middle`:  shows the Legend in the middle of chart, covering other content, and chart height remains unchanged.
-     * The exact behavior changes depending on `align` prop.
-     *
-     * @defaultValue middle
-     */
-    verticalAlign?: VerticalAlignmentType;
-    /**
-     * The color of the icon when the item is inactive.
-     * @defaultValue #ccc
-     */
-    inactiveColor?: string;
-    /**
-     * Function to customize how content is serialized before rendering.
-     *
-     * This should return HTML elements, or strings.
-     *
-     * @example (value, entry, index) => <span style={{ color: 'red' }}>{value}</span>
-     * @example https://codesandbox.io/s/legend-formatter-rmzp9
-     */
-    formatter?: Formatter;
-    /**
-     * The customized event handler of mouseenter on the items in this group
-     * @example https://recharts.github.io/examples/LegendEffectOpacity
-     */
-    onMouseEnter?: (data: LegendPayload, index: number, event: MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the items in this group
-     * @example https://recharts.github.io/examples/LegendEffectOpacity
-     */
-    onMouseLeave?: (data: LegendPayload, index: number, event: MouseEvent) => void;
-    /**
-     * The customized event handler of click on the items in this group
-     */
-    onClick?: (data: LegendPayload, index: number, event: MouseEvent) => void;
-    /**
-     * DefaultLegendContent.payload is omitted from Legend props.
-     * A custom payload can be passed here if desired, or it can be passed from the Legend "content" callback.
-     */
-    payload?: ReadonlyArray<LegendPayload>;
-}
-export type Props = DefaultLegendContentProps & Omit<PresentationAttributesAdaptChildEvent<any, ReactElement>, keyof DefaultLegendContentProps>;
-/**
- * This component is by default rendered inside the {@link Legend} component. You would not use it directly.
- *
- * You can use this component to customize the content of the legend,
- * or you can provide your own completely independent content.
- */
-export declare const DefaultLegendContent: (outsideProps: Props) => React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/DefaultTooltipContent.d.ts
===================================================================
--- node_modules/recharts/types/component/DefaultTooltipContent.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/**
- * @fileOverview Default Tooltip Content
- */
-import * as React from 'react';
-import { CSSProperties, ReactNode, SVGProps } from 'react';
-import { DataKey } from '../util/types';
-export type TooltipType = 'none';
-export type ValueType = number | string | ReadonlyArray<number | string>;
-export type NameType = number | string;
-export type Formatter<TValue extends ValueType, TName extends NameType> = (value: TValue | undefined, name: TName | undefined, item: Payload<TValue, TName>, index: number, payload: ReadonlyArray<Payload<TValue, TName>>) => [React.ReactNode, TName] | React.ReactNode;
-export interface Payload<TValue extends ValueType, TName extends NameType> extends Omit<SVGProps<SVGElement>, 'name'> {
-    type?: TooltipType;
-    color?: string;
-    formatter?: Formatter<TValue, TName>;
-    name?: TName;
-    value?: TValue;
-    unit?: ReactNode;
-    fill?: string;
-    dataKey?: DataKey<any>;
-    nameKey?: DataKey<any>;
-    payload?: any;
-    chartType?: string;
-    stroke?: string;
-    strokeDasharray?: string | number;
-    strokeWidth?: number | string;
-    className?: string;
-    hide?: boolean;
-    /**
-     * The id of the graphical item that the data point belongs to
-     */
-    graphicalItemId: string;
-}
-export interface Props<TValue extends ValueType, TName extends NameType> {
-    separator?: string;
-    wrapperClassName?: string;
-    labelClassName?: string;
-    formatter?: Formatter<TValue, TName>;
-    contentStyle?: CSSProperties;
-    itemStyle?: CSSProperties;
-    labelStyle?: CSSProperties;
-    labelFormatter?: (label: ReactNode, payload: ReadonlyArray<Payload<TValue, TName>>) => ReactNode;
-    label?: ReactNode;
-    payload?: ReadonlyArray<Payload<TValue, TName>>;
-    itemSorter?: 'dataKey' | 'value' | 'name' | ((item: Payload<TValue, TName>) => number | string | undefined);
-    accessibilityLayer?: boolean;
-}
-export declare const defaultDefaultTooltipContentProps: {
-    readonly separator: " : ";
-    readonly contentStyle: {
-        readonly margin: 0;
-        readonly padding: 10;
-        readonly backgroundColor: "#fff";
-        readonly border: "1px solid #ccc";
-        readonly whiteSpace: "nowrap";
-    };
-    readonly itemStyle: {
-        readonly display: "block";
-        readonly paddingTop: 4;
-        readonly paddingBottom: 4;
-        readonly color: "#000";
-    };
-    readonly labelStyle: {};
-    readonly accessibilityLayer: false;
-};
-/**
- * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.
- *
- * You can use this component to customize the content of the tooltip,
- * or you can provide your own completely independent content.
- */
-export declare const DefaultTooltipContent: <TValue extends ValueType, TName extends NameType>(props: Props<TValue, TName>) => React.JSX.Element;
Index: de_modules/recharts/types/component/Dots.d.ts
===================================================================
--- node_modules/recharts/types/component/Dots.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-import * as React from 'react';
-import { type Props as DotProps } from '../shape/Dot';
-import { DataKey, DotType } from '../util/types';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export interface DotPoint {
-    readonly x: number | null;
-    readonly y: number | null;
-    readonly value?: any;
-    readonly payload?: any;
-}
-export type DotsDotProps = Omit<DotProps, 'cx' | 'cy' | 'key' | 'index' | 'dataKey' | 'value' | 'payload'>;
-interface DotsProps extends ZIndexable {
-    /**
-     * Points to render dots for
-     */
-    points: ReadonlyArray<DotPoint>;
-    /**
-     * Dot configuration - boolean, ReactElement, function, or props object
-     */
-    dot: DotType;
-    /**
-     * Base class name for the dots layer (e.g., 'recharts-area-dots')
-     */
-    className: string;
-    /**
-     * Base class name for individual dot (e.g., 'recharts-area-dot')
-     */
-    dotClassName: string;
-    /**
-     * DataKey for the data
-     */
-    dataKey: DataKey<any> | undefined;
-    /**
-     * Base props to spread onto each dot (from parent component).
-     * Except some properties that the Dots component manages itself.
-     */
-    baseProps: DotsDotProps;
-    /**
-     * Whether clipping is needed (cartesian only)
-     */
-    needClip?: boolean;
-    /**
-     * Clip path ID (cartesian only)
-     */
-    clipPathId?: string;
-}
-export declare function Dots({ points, dot, className, dotClassName, dataKey, baseProps, needClip, clipPathId, zIndex, }: DotsProps): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/Label.d.ts
===================================================================
--- node_modules/recharts/types/component/Label.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,144 +1,0 @@
-import * as React from 'react';
-import { ReactElement, ReactNode, SVGProps } from 'react';
-import { RenderableText, TextAnchor, TextVerticalAnchor } from './Text';
-import { DataKey, PolarViewBoxRequired, TrapezoidViewBox, ViewBox } from '../util/types';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { CartesianLabelPosition } from '../cartesian/getCartesianPosition';
-/**
- * @inline
- */
-export type LabelContentType = ReactElement | ((props: Props) => RenderableText | ReactElement);
-type PolarLabelPosition = 'insideStart' | 'insideEnd' | 'end';
-/**
- * @inline
- */
-export type LabelPosition = CartesianLabelPosition | PolarLabelPosition;
-/**
- * @inline
- */
-export type LabelFormatter = (label: RenderableText) => RenderableText;
-interface LabelProps extends ZIndexable {
-    /**
-     * The box of viewing area. Used for positioning.
-     * If undefined, viewBox will be calculated based on surrounding context.
-     */
-    viewBox?: ViewBox;
-    parentViewBox?: ViewBox;
-    /**
-     * Function to customize how content is serialized before rendering.
-     *
-     * This should return a renderable text - something that the {@link Text} component can render.
-     * Typically, a string or number.
-     * Custom components are not supported here - use the `content` prop instead.
-     */
-    formatter?: LabelFormatter;
-    /**
-     * The value of label can be set as children or as the `value` prop
-     *
-     * @example <Label value="foo" />
-     */
-    value?: RenderableText;
-    /**
-     * The offset to the specified "position". Direction of the offset depends on the position.
-     *
-     * @defaultValue 5
-     */
-    offset?: number;
-    /**
-     * The position of label relative to the view box.
-     *
-     * @defaultValue middle
-     */
-    position?: LabelPosition;
-    /**
-     * The value of label can be set as children or as the `value` prop
-     *
-     * @example <Label>foo</Label>
-     */
-    children?: RenderableText;
-    className?: string;
-    /**
-     * If set a React element, the option is the custom react element of rendering label.
-     * If set a function, the function will be called to render label content.
-     *
-     * @example <Label content={CustomizedLabel} />
-     * @example
-     * const renderCustomLabel = (props) => <text {...props}>Custom Label</text>;
-     * <Label content={renderCustomLabel} />
-     */
-    content?: LabelContentType;
-    /**
-     * @defaultValue false
-     */
-    textBreakAll?: boolean;
-    /**
-     * Text rotation angle in degrees.
-     * Positive values rotate clockwise, negative values rotate counterclockwise.
-     *
-     * @defaultValue 0
-     */
-    angle?: number;
-    index?: number;
-    labelRef?: React.RefObject<SVGTextElement> | null;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 2000
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`.
-     */
-    id?: string;
-}
-export type Props = Omit<SVGProps<SVGTextElement>, 'viewBox'> & LabelProps;
-export type ImplicitLabelType = boolean | string | number | ReactElement<SVGElement> | ((props: any) => RenderableText | ReactElement) | (Props & {
-    dataKey?: DataKey<any>;
-});
-export declare const CartesianLabelContextProvider: ({ x, y, upperWidth, lowerWidth, width, height, children, }: TrapezoidViewBox & {
-    children: ReactNode;
-}) => React.JSX.Element;
-export declare const PolarLabelContextProvider: ({ cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise, children, }: PolarViewBoxRequired & {
-    children: ReactNode;
-}) => React.JSX.Element;
-export declare const usePolarLabelContext: () => PolarViewBoxRequired | undefined;
-export declare const isLabelContentAFunction: (content: unknown) => content is (props: Props) => React.ReactNode;
-export type LabelPositionAttributes = {
-    x: number;
-    y: number;
-    textAnchor: TextAnchor;
-    verticalAnchor: TextVerticalAnchor;
-    width?: number;
-    height?: number;
-};
-export declare const defaultLabelProps: {
-    readonly angle: 0;
-    readonly offset: 5;
-    readonly zIndex: 2000;
-    readonly position: "middle";
-    readonly textBreakAll: false;
-};
-/**
- * @consumes CartesianViewBoxContext
- * @consumes PolarViewBoxContext
- * @consumes CartesianLabelContext
- * @consumes PolarLabelContext
- */
-export declare function Label(outerProps: Props): React.JSX.Element | null;
-export declare namespace Label {
-    var displayName: string;
-}
-export declare function CartesianLabelFromLabelProp({ label, labelRef, }: {
-    label: ImplicitLabelType | undefined;
-    labelRef?: React.RefObject<SVGTextElement> | null;
-}): React.JSX.Element | null;
-export declare function PolarLabelFromLabelProp({ label }: {
-    label: ImplicitLabelType | undefined;
-}): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/LabelList.d.ts
===================================================================
--- node_modules/recharts/types/component/LabelList.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,150 +1,0 @@
-import * as React from 'react';
-import { PropsWithoutRef, SVGProps } from 'react';
-import { LabelContentType, LabelPosition, LabelFormatter } from './Label';
-import { CartesianViewBoxRequired, DataKey, PolarViewBoxRequired, TrapezoidViewBox } from '../util/types';
-import { LabelProps } from '../index';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export interface LabelListEntry {
-    /**
-     * Value is what renders in the UI as the label content.
-     * If undefined, then the LabelList will pull it from the payload using the dataKey.
-     */
-    value: number | string | Array<number | string> | undefined;
-    /**
-     * Payload is the source data object for this entry. The shape of this depends on what the user has passed
-     * as the data prop to the chart.
-     */
-    payload: Record<string, unknown> | null | undefined;
-    fill: string | undefined;
-}
-/**
- * This is public API because we expose it as the valueAccessor parameter.
- *
- * The properties of "viewBox" are repeated as the root props of the entry object.
- * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.
- *
- * It's not necessary to pass redundant data, but we keep it for backward compatibility.
- */
-export interface CartesianLabelListEntry extends LabelListEntry, TrapezoidViewBox {
-    /**
-     * The bounding box of the graphical element that this label is attached to.
-     * This will be an individual Bar for example.
-     */
-    viewBox: TrapezoidViewBox;
-    parentViewBox?: CartesianViewBoxRequired;
-}
-export interface PolarLabelListEntry extends LabelListEntry {
-    viewBox: PolarViewBoxRequired;
-    parentViewBox?: PolarViewBoxRequired;
-    clockWise?: boolean;
-}
-interface LabelListProps extends ZIndexable {
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`.
-     */
-    id?: string;
-    /**
-     * The accessor function to get the value of each label. Is ignored if dataKey is specified.
-     * @param entry
-     * @param index
-     */
-    valueAccessor?: (entry: CartesianLabelListEntry | PolarLabelListEntry, index: number) => string | number | undefined;
-    /**
-     * The parameter to calculate the view box of label in radial charts.
-     */
-    clockWise?: boolean;
-    /**
-     *
-     * Decides how to extract the value of each label from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of each label.
-     *
-     * If set, then valueAccessor will be ignored.
-     *
-     * Scatter requires this prop to be set.
-     * Other graphical components will show the same value as the dataKey of the component by default.
-     */
-    dataKey?: DataKey<Record<string, unknown>>;
-    /**
-     * If set a React element, the option is the customized React element of rendering each label.
-     * If set to a function, the function is called once for each item
-     *
-     * @example <LabelList content={CustomizedLabel} />
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/BarChartWithMinHeight/ Customized content of LabelList in a BarChart}
-     */
-    content?: LabelContentType;
-    textBreakAll?: boolean;
-    /**
-     * The position of label relative to the view box.
-     */
-    position?: LabelPosition;
-    /**
-     * The offset to the specified "position".
-     * Direction of the offset depends on the position.
-     */
-    offset?: LabelProps['offset'];
-    /**
-     * Text rotation angle in degrees.
-     * Positive values rotate clockwise, negative values rotate counterclockwise.
-     *
-     * @defaultValue 0
-     */
-    angle?: number;
-    /**
-     * Function to customize how content is serialized before rendering.
-     *
-     * This should return a renderable text - something that the {@link Text} component can render.
-     * Typically, a string or number.
-     * Custom components are not supported here - use the `content` prop instead.
-     */
-    formatter?: LabelFormatter;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 2000
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-/**
- * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.
- */
-type SvgTextProps = PropsWithoutRef<SVGProps<SVGTextElement>>;
-export type Props = Omit<SvgTextProps, 'children'> & LabelListProps;
-/**
- * This is the type accepted for the `label` prop on various graphical items.
- * It accepts:
- *
- * boolean:
- *    true = labels show,
- *    false = labels don't show
- * React element:
- *    will be cloned with extra props
- * function:
- *    is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)
- * object:
- *    the props to be passed to a LabelList component
- *
- * @inline
- */
-export type ImplicitLabelListType = boolean | LabelContentType | Props;
-export declare const CartesianLabelListContextProvider: React.Provider<readonly CartesianLabelListEntry[] | undefined>;
-export declare const PolarLabelListContextProvider: React.Provider<readonly PolarLabelListEntry[] | undefined>;
-/**
- * @consumes LabelListContext
- */
-export declare function LabelList({ valueAccessor, ...restProps }: Props): React.JSX.Element | null;
-export declare namespace LabelList {
-    var displayName: string;
-}
-export declare function LabelListFromLabelProp({ label }: {
-    label?: ImplicitLabelListType;
-}): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/Legend.d.ts
===================================================================
--- node_modules/recharts/types/component/Legend.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-import * as React from 'react';
-import { CSSProperties } from 'react';
-import { ContentType, LegendPayload, Props as DefaultLegendContentProps, VerticalAlignmentType } from './DefaultLegendContent';
-import { UniqueOption } from '../util/payload/getUniqPayload';
-import { ElementOffset } from '../util/useElementOffset';
-export type LegendItemSorter = 'value' | 'dataKey' | ((item: LegendPayload) => number | string);
-export type Props = Omit<DefaultLegendContentProps, 'payload' | 'ref' | 'verticalAlign'> & {
-    /**
-     * Renders the content of the legend.
-     *
-     * This should return HTML elements, not SVG elements.
-     *
-     * - If not set, the {@link DefaultLegendContent} component is used.
-     * - If set to a React element, this element will be cloned and extra props will be passed in.
-     * - If set to a function, the function will be called and should return HTML elements.
-     *
-     * @example <Legend content={CustomizedLegend} />
-     * @example <Legend content={renderLegend} />
-     */
-    content?: ContentType;
-    /**
-     * CSS styles to be applied to the wrapper `div` element.
-     */
-    wrapperStyle?: CSSProperties;
-    /**
-     * Width of the legend.
-     * Accept CSS style string values like `100%` or `fit-content`, or number values like `400`.
-     */
-    width?: number | string;
-    /**
-     * Height of the legend.
-     * Accept CSS style string values like `100%` or `fit-content`, or number values like `400`.
-     */
-    height?: number | string;
-    payloadUniqBy?: UniqueOption<LegendPayload>;
-    onBBoxUpdate?: (box: ElementOffset | null) => void;
-    /**
-     * If portal is defined, then Legend will use this element as a target
-     * for rendering using React Portal.
-     *
-     * If this is undefined then Legend renders inside the recharts-wrapper element.
-     *
-     * @see {@link https://react.dev/reference/react-dom/createPortal}
-     */
-    portal?: HTMLElement | null;
-    /**
-     * Sorts Legend items. Defaults to `value` which means it will sort alphabetically
-     * by the label.
-     *
-     * If `null` is provided then the payload is not sorted. Be aware that without sort,
-     * the order of items may change between renders!
-     *
-     * @defaultValue value
-     */
-    itemSorter?: LegendItemSorter | null;
-    /**
-     * The alignment of the whole Legend container:
-     *
-     * - `bottom`: shows the Legend below chart, and chart height reduces automatically to make space for it.
-     * - `top`: shows the Legend above chart, and chart height reduces automatically.
-     * - `middle`:  shows the Legend in the middle of chart, covering other content, and chart height remains unchanged.
-     * The exact behavior changes depending on `align` prop.
-     *
-     * @defaultValue bottom
-     */
-    verticalAlign?: VerticalAlignmentType;
-};
-export declare const legendDefaultProps: {
-    readonly align: "center";
-    readonly iconSize: 14;
-    readonly inactiveColor: "#ccc";
-    readonly itemSorter: "value";
-    readonly layout: "horizontal";
-    readonly verticalAlign: "bottom";
-};
-/**
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- */
-export declare function Legend(outsideProps: Props): React.ReactPortal | null;
-export declare namespace Legend {
-    var displayName: string;
-}
Index: de_modules/recharts/types/component/ResponsiveContainer.d.ts
===================================================================
--- node_modules/recharts/types/component/ResponsiveContainer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-import * as React from 'react';
-import { CSSProperties, ReactNode } from 'react';
-import { Percent, Size } from '../util/types';
-export interface Props {
-    /**
-     * width / height. If specified, the height will be calculated by width / aspect.
-     */
-    aspect?: number;
-    /**
-     * The width of chart container.
-     * Can be a number or a percent string like "100%".
-     * @default '100%'
-     */
-    width?: Percent | number;
-    /**
-     * The height of chart container.
-     * Can be a number or a percent string like "100%".
-     * @default '100%'
-     */
-    height?: Percent | number;
-    /**
-     * The minimum width of the container.
-     * @default 0
-     */
-    minWidth?: string | number;
-    /**
-     * The minimum height of the container.
-     */
-    minHeight?: string | number;
-    /**
-     * The initial width and height of the container.
-     * @default {"width":-1,"height":-1}
-     */
-    initialDimension?: {
-        width: number;
-        height: number;
-    };
-    /** The maximum height of the container. It can be a number. */
-    maxHeight?: number;
-    /**
-     * The content of the container.
-     * It can contain multiple charts, and then they will all share the same dimensions.
-     */
-    children: ReactNode;
-    /**
-     * If specified a positive number, debounced function will be used to handle the resize event.
-     * @default 0
-     */
-    debounce?: number;
-    /**
-     * Unique identifier of this component.
-     * Used as an HTML attribute `id`.
-     */
-    id?: string | number;
-    /** The HTML element's class name */
-    className?: string | number;
-    /** The style of the container. */
-    style?: Omit<CSSProperties, keyof Props>;
-    /**
-     * If specified provides a callback providing the updated chart width and height values.
-     */
-    onResize?: (width: number, height: number) => void;
-}
-export declare const useResponsiveContainerContext: () => Size;
-/**
- * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.
- * It is used to create responsive charts that adapt to different screen sizes.
- *
- * This component uses the {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver} API to monitor changes to the size of its parent element.
- * If you need to support older browsers that do not support this API, you may need to include a polyfill.
- *
- * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}
- *
- * @provides ResponsiveContainerContext
- */
-export declare const ResponsiveContainer: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
Index: de_modules/recharts/types/component/Text.d.ts
===================================================================
--- node_modules/recharts/types/component/Text.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,133 +1,0 @@
-import * as React from 'react';
-import { CSSProperties, SVGProps } from 'react';
-interface Words {
-    words: Array<string>;
-    width: number | undefined;
-}
-/**
- * @inline
- */
-export type TextAnchor = 'start' | 'middle' | 'end' | 'inherit';
-export declare function isValidTextAnchor(value: string | undefined): value is TextAnchor;
-/**
- * @inline
- */
-export type TextVerticalAnchor = 'start' | 'middle' | 'end';
-/**
- * @inline
- */
-export type RenderableText = string | number | boolean | null | undefined;
-interface TextProps {
-    /**
-     * When true, scales the text to fit within the specified width.
-     * The text will be scaled down proportionally to fit the available space.
-     *
-     * **Important interactions:**
-     * - Requires `width` to be defined to have any effect. If width is undefined, scaleToFit does nothing.
-     * - When enabled, `maxLines` restrictions are bypassed and ellipsis truncation is disabled.
-     * - Uses the first line's width to calculate the scale factor.
-     * - The scaling transform is applied as `scale(width / lineWidth)`.
-     *
-     * @defaultValue false
-     */
-    scaleToFit?: boolean;
-    /**
-     * Text rotation angle in degrees.
-     * Positive values rotate clockwise, negative values rotate counterclockwise.
-     *
-     * @defaultValue 0
-     */
-    angle?: number;
-    /**
-     * Horizontal text alignment within the text element.
-     * - 'start': Text starts at the x coordinate (left-aligned for LTR text)
-     * - 'middle': Text is centered on the x coordinate
-     * - 'end': Text ends at the x coordinate (right-aligned for LTR text)
-     * - 'inherit': Inherits the text-anchor from parent element
-     *
-     * **Note:** This controls horizontal alignment only and does not affect RTL text behavior.
-     * @defaultValue 'start'
-     */
-    textAnchor?: TextAnchor;
-    /**
-     * Vertical text alignment relative to the y coordinate.
-     * - 'start': Text baseline starts at y coordinate (text appears below the y position)
-     * - 'middle': Text is vertically centered on the y coordinate
-     * - 'end': Text baseline ends at y coordinate (text appears above the y position)
-     *
-     * **Note:** This controls vertical positioning only and does not affect RTL (right-to-left) text behavior.
-     * The alignment calculation uses capHeight and lineHeight to determine the starting dy offset.
-     *
-     * @defaultValue 'end'
-     */
-    verticalAnchor?: TextVerticalAnchor;
-    /**
-     * CSS styles to apply to the text element.
-     * These styles are used for text measurement calculations when width constraints or scaleToFit are used.
-     * Font-related properties (fontSize, fontFamily, fontWeight, etc.) are particularly important for accurate measurements.
-     */
-    style?: CSSProperties;
-    /**
-     * Line height for multi-line text.
-     * Can be a number (height in pixels) or a string with CSS units.
-     * Used to calculate spacing between lines when text wraps to multiple lines.
-     * Also used in verticalAnchor calculations for positioning the text block.
-     * @defaultValue '1em'
-     */
-    lineHeight?: number | string;
-    /**
-     * When true, enables character-level breaking instead of word-level breaking.
-     * - false: Text breaks at word boundaries (spaces, tabs, etc.)
-     * - true: Text can break between any characters, useful for languages without spaces
-     *
-     * **Note:** Only effective when `width` is defined to enable line breaking.
-     * @defaultValue false
-     */
-    breakAll?: boolean;
-    /**
-     * The text content to render.
-     * Can be a string or number. Numbers will be converted to strings.
-     * undefined or null values will result in no text being rendered.
-     */
-    children?: RenderableText;
-    /**
-     * Maximum number of lines to display when text wrapping is enabled.
-     * When text exceeds this limit, it will be truncated with an ellipsis (…).
-     *
-     * **Important requirements for ellipsis truncation:**
-     * - `width` must be defined (no effect when width is undefined)
-     * - `scaleToFit` must be false (when scaleToFit is true, maxLines is bypassed)
-     * - Text must actually overflow the specified maxLines or width constraints
-     *
-     * **Truncation behavior:**
-     * - Uses binary search to find the optimal truncation point
-     * - Adds ellipsis (…) at the end of the truncated text
-     * - Ensures the truncated text + ellipsis fits within the constraints
-     *
-     * **Interaction with other props:**
-     * - When `scaleToFit` is true, this property is ignored
-     * - Requires `width` to be set for line breaking to occur
-     */
-    maxLines?: number;
-    /**
-     * When width is specified, the text will automatically wrap by calculating the width of text.
-     */
-    width?: number | string;
-}
-export type Props = Omit<SVGProps<SVGTextElement>, 'textAnchor' | 'verticalAnchor'> & TextProps;
-type GetWordsByLinesProps = Pick<Props, 'width' | 'scaleToFit' | 'children' | 'style' | 'breakAll' | 'maxLines'>;
-export declare const getWordsByLines: ({ width, scaleToFit, children, style, breakAll, maxLines }: GetWordsByLinesProps) => readonly Words[];
-export declare const textDefaultProps: {
-    readonly angle: 0;
-    readonly breakAll: false;
-    readonly capHeight: "0.71em";
-    readonly fill: "#808080";
-    readonly lineHeight: "1em";
-    readonly scaleToFit: false;
-    readonly textAnchor: "start";
-    readonly verticalAnchor: "end";
-    readonly x: 0;
-    readonly y: 0;
-};
-export declare const Text: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<SVGTextElement>>;
-export {};
Index: de_modules/recharts/types/component/Tooltip.d.ts
===================================================================
--- node_modules/recharts/types/component/Tooltip.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,225 +1,0 @@
-import * as React from 'react';
-import { CSSProperties, ReactElement, ReactNode } from 'react';
-import { NameType, Payload, Props as DefaultTooltipContentProps, ValueType } from './DefaultTooltipContent';
-import { UniqueOption } from '../util/payload/getUniqPayload';
-import { AllowInDimension, AnimationDuration, AnimationTiming, Coordinate } from '../util/types';
-import { CursorDefinition } from './Cursor';
-import { TooltipTrigger } from '../chart/types';
-import { TooltipIndex, TooltipPayloadEntry } from '../state/tooltipSlice';
-import { AxisId } from '../state/cartesianAxisSlice';
-export type ContentType<TValue extends ValueType, TName extends NameType> = ReactElement | ((props: TooltipContentProps<TValue, TName>) => ReactNode);
-export type TooltipContentProps<TValue extends ValueType, TName extends NameType> = TooltipProps<TValue, TName> & {
-    label?: string | number;
-    payload: ReadonlyArray<any>;
-    coordinate: Coordinate | undefined;
-    active: boolean;
-    accessibilityLayer: boolean;
-    activeIndex: TooltipIndex | undefined;
-};
-type PropertiesReadFromContext = 'viewBox' | 'active' | 'payload' | 'coordinate' | 'label' | 'accessibilityLayer';
-export type TooltipProps<TValue extends ValueType, TName extends NameType> = Omit<DefaultTooltipContentProps<TValue, TName>, PropertiesReadFromContext> & {
-    /**
-     * If true, then Tooltip is always displayed, once an activeIndex is set by mouse over, or programmatically.
-     * If false, then Tooltip is never displayed.
-     * If undefined, Recharts will control when the Tooltip displays. This includes mouse and keyboard controls.
-     */
-    active?: boolean;
-    /**
-     * This option allows the tooltip to extend beyond the viewBox of the chart itself.
-     * @defaultValue {"x":false,"y":false}
-     */
-    allowEscapeViewBox?: AllowInDimension;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 400
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    /**
-     * Tooltip always attaches itself to the "Tooltip" axis. Which axis is it? Depends on the layout:
-     * - horizontal layout -> X axis
-     * - vertical layout -> Y axis
-     * - radial layout -> radial axis
-     * - centric layout -> angle axis
-     *
-     * Tooltip will use the default axis for the layout, unless you specify an axisId.
-     *
-     * @defaultValue 0
-     */
-    axisId?: AxisId;
-    /**
-     * Renders the content of the tooltip.
-     *
-     * This should return HTML elements, not SVG elements.
-     *
-     * - If not set, the {@link DefaultTooltipContent} component is used.
-     * - If set to a React element, this element will be cloned and extra props will be passed in.
-     * - If set to a function, the function will be called and should return HTML elements.
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/CustomContentOfTooltip/ Example with custom content}
-     */
-    content?: ContentType<TValue, TName>;
-    /**
-     * The style of tooltip content which is a dom element.
-     * @defaultValue {}
-     */
-    contentStyle?: CSSProperties;
-    /**
-     * If set false, no cursor will be drawn when tooltip is active.
-     * If set a object, the option is the configuration of cursor.
-     * If set a React element, the option is the custom react element of drawing cursor.
-     * @defaultValue true
-     */
-    cursor?: CursorDefinition;
-    defaultIndex?: number | TooltipIndex;
-    /**
-     * When an item of the payload has value null or undefined, this item won't be displayed.
-     * @defaultValue true
-     */
-    filterNull?: boolean;
-    /**
-     * Function to customize the value in the tooltip.
-     * If you return an array, the first entry will be the formatted "value", and the second entry will be the formatted "name"
-     */
-    formatter?: (value: TValue, name: TName, item: Payload<TValue, TName>, index: number, payload: Payload<TValue, TName>[]) => ReactNode | [ReactNode, ReactNode];
-    /**
-     * If true, the tooltip will display information about hidden series.
-     * Defaults to false.
-     * Interacting with the hide property of Area, Bar, Line, Scatter.
-     *
-     * @defaultValue false
-     */
-    includeHidden?: boolean | undefined;
-    /**
-     * If set false, animation of tooltip will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Sorts tooltip items.
-     * Defaults to 'name' which means it sorts alphabetically by graphical item `name` property.
-     * @defaultValue name
-     */
-    itemSorter?: 'dataKey' | 'value' | 'name' | ((item: Payload<TValue, TName>) => number | string | undefined);
-    /**
-     * The style of default tooltip content item which is a li element.
-     * @defaultValue {}
-     */
-    itemStyle?: CSSProperties;
-    /**
-     * The formatter function of label in tooltip.
-     */
-    labelFormatter?: (label: any, payload: Payload<TValue, TName>[]) => ReactNode;
-    /**
-     * The style of default tooltip label which is a p element.
-     * @defaultValue {}
-     */
-    labelStyle?: CSSProperties;
-    /**
-     * The offset size between the position of tooltip and the mouse cursor position.
-     * When a number is provided, the same offset is applied to both x and y axes.
-     *
-     * When a Coordinate object is provided, you can specify different offsets for each axis (x and y as numbers)
-     * @defaultValue 10
-     */
-    offset?: number | Coordinate;
-    payloadUniqBy?: UniqueOption<TooltipPayloadEntry>;
-    /**
-     * If portal is defined, then Tooltip will use this element as a target
-     * for rendering using React Portal: https://react.dev/reference/react-dom/createPortal
-     *
-     * If this is undefined then Tooltip renders inside the recharts-wrapper element.
-     */
-    portal?: HTMLElement | null;
-    /**
-     * If this field is set, the tooltip will be displayed at the specified position
-     * regardless of the mouse position.
-     *
-     * You can set a single field (x or y) and let the other field be calculated automatically based
-     * on the mouse position.
-     */
-    position?: Partial<Coordinate>;
-    /**
-     * @defaultValue {"x":false,"y":false}
-     */
-    reverseDirection?: AllowInDimension;
-    /**
-     * The separator between name and value.
-     * @defaultValue ' : '
-     */
-    separator?: string;
-    /**
-     * Defines whether the tooltip is reacting to the current data point,
-     * or to all data points at the current axis coordinate.
-     *
-     * - `true`: tooltip will appear on top of all bars on an axis tick.
-     * - `false`: tooltip will appear on individual bars.
-     *
-     * Different chart types allow different modes, and have different defaults.
-     *
-     * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}
-     */
-    shared?: boolean;
-    /**
-     * If `hover` then the Tooltip shows on mouse enter and hides on mouse leave.
-     *
-     * If `click` then the Tooltip shows after clicking and stays active.
-     *
-     * @defaultValue hover
-     */
-    trigger?: TooltipTrigger;
-    /**
-     * @defaultValue false
-     */
-    useTranslate3d?: boolean;
-    /**
-     * CSS styles to be applied to the wrapper `div` element.
-     */
-    wrapperStyle?: CSSProperties;
-};
-export declare const defaultTooltipProps: {
-    readonly allowEscapeViewBox: {
-        readonly x: false;
-        readonly y: false;
-    };
-    readonly animationDuration: 400;
-    readonly animationEasing: "ease";
-    readonly axisId: 0;
-    readonly contentStyle: {};
-    readonly cursor: true;
-    readonly filterNull: true;
-    readonly includeHidden: false;
-    readonly isAnimationActive: "auto";
-    readonly itemSorter: "name";
-    readonly itemStyle: {};
-    readonly labelStyle: {};
-    readonly offset: 10;
-    readonly reverseDirection: {
-        readonly x: false;
-        readonly y: false;
-    };
-    readonly separator: " : ";
-    readonly trigger: "hover";
-    readonly useTranslate3d: false;
-    readonly wrapperStyle: {};
-};
-/**
- * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.
- *
- * It can be configured to show information for individual data points or for all points at a specific axis coordinate.
- * The appearance and content of the tooltip can be customized via props.
- *
- * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}
- * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}
- *
- * @consumes CartesianChartContext
- * @consumes PolarChartContext
- * @consumes TooltipEntrySettings
- */
-export declare function Tooltip<TValue extends ValueType, TName extends NameType>(outsideProps: TooltipProps<TValue, TName>): React.JSX.Element | null;
-export {};
Index: de_modules/recharts/types/component/TooltipBoundingBox.d.ts
===================================================================
--- node_modules/recharts/types/component/TooltipBoundingBox.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import * as React from 'react';
-import { CSSProperties, PureComponent, ReactNode } from 'react';
-import { AllowInDimension, AnimationDuration, AnimationTiming, CartesianViewBox, Coordinate, PolarCoordinate } from '../util/types';
-import { ElementOffset, SetElementOffset } from '../util/useElementOffset';
-export type TooltipBoundingBoxProps = {
-    active: boolean;
-    allowEscapeViewBox: AllowInDimension;
-    animationDuration: AnimationDuration;
-    animationEasing: AnimationTiming;
-    children: ReactNode;
-    coordinate: Coordinate | PolarCoordinate | undefined;
-    hasPayload: boolean;
-    isAnimationActive: boolean | 'auto';
-    offset: number | Coordinate;
-    position: Partial<Coordinate> | undefined;
-    reverseDirection: AllowInDimension;
-    useTranslate3d: boolean;
-    viewBox: CartesianViewBox;
-    wrapperStyle: CSSProperties;
-    lastBoundingBox: ElementOffset;
-    innerRef: SetElementOffset;
-    hasPortalFromProps: boolean;
-};
-type State = {
-    dismissed: boolean;
-    dismissedAtCoordinate: Coordinate;
-};
-export declare class TooltipBoundingBox extends PureComponent<TooltipBoundingBoxProps, State> {
-    state: {
-        dismissed: boolean;
-        dismissedAtCoordinate: {
-            x: number;
-            y: number;
-        };
-    };
-    componentDidMount(): void;
-    componentWillUnmount(): void;
-    componentDidUpdate(): void;
-    handleKeyDown: (event: KeyboardEvent) => void;
-    render(): React.JSX.Element;
-}
-export {};
Index: de_modules/recharts/types/component/responsiveContainerUtils.d.ts
===================================================================
--- node_modules/recharts/types/component/responsiveContainerUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import type { CSSProperties } from 'react';
-import type { Percent } from '../util/types';
-export declare const defaultResponsiveContainerProps: {
-    readonly width: "100%";
-    readonly height: "100%";
-    readonly debounce: 0;
-    readonly minWidth: 0;
-    readonly initialDimension: {
-        readonly width: -1;
-        readonly height: -1;
-    };
-};
-export declare const calculateChartDimensions: (containerWidth: number | undefined, containerHeight: number | undefined, props: {
-    width: Percent | number | undefined;
-    height: Percent | number | undefined;
-    aspect: number | undefined;
-    maxHeight: number | undefined;
-}) => {
-    calculatedWidth: number | undefined;
-    calculatedHeight: number | undefined;
-};
-/**
- * This zero-size, overflow-visible is required to allow the chart to shrink.
- * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,
- * it would always keep the container at the size of the chart,
- * and ResizeObserver would never fire.
- * With this zero-size element, the chart itself never actually fills the container,
- * it just so happens that it is visible because it overflows.
- * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts
- * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68
- *
- * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),
- * because in that case the chart can't shrink in that dimension anyway.
- * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245
- */
-export declare const getInnerDivStyle: (props: {
-    width?: Percent | number;
-    height?: Percent | number;
-}) => CSSProperties;
-export declare function getDefaultWidthAndHeight({ width, height, aspect, }: {
-    width: Percent | number | undefined;
-    height: Percent | number | undefined;
-    aspect: number | undefined;
-}): {
-    width: Percent | number | undefined;
-    height: Percent | number | undefined;
-};
Index: de_modules/recharts/types/container/ClipPathProvider.d.ts
===================================================================
--- node_modules/recharts/types/container/ClipPathProvider.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-/**
- * Generates a unique clip path ID for use in SVG elements,
- * and puts it in a context provider.
- *
- * To read the clip path ID, use the `useClipPathId` hook,
- * or render `<ClipPath>` component which will automatically use the ID from this context.
- *
- * @param props children - React children to be wrapped by the provider
- * @returns React Context Provider
- */
-export declare const ClipPathProvider: ({ children }: {
-    children: ReactNode;
-}) => React.JSX.Element | null;
-export declare const useClipPathId: () => string | undefined;
Index: de_modules/recharts/types/container/Layer.d.ts
===================================================================
--- node_modules/recharts/types/container/Layer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import * as React from 'react';
-import { ReactNode, SVGAttributes } from 'react';
-interface LayerProps {
-    className?: string;
-    children?: ReactNode;
-}
-export type Props = SVGAttributes<SVGGElement> & LayerProps;
-/**
- * Creates an SVG group element to group other SVG elements.
- *
- * Useful if you want to apply transformations or styles to a set of elements
- * without affecting other elements in the SVG.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g
- */
-export declare const Layer: React.ForwardRefExoticComponent<React.SVGAttributes<SVGGElement> & LayerProps & React.RefAttributes<SVGGElement>>;
-export {};
Index: de_modules/recharts/types/container/RootSurface.d.ts
===================================================================
--- node_modules/recharts/types/container/RootSurface.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-type RootSurfaceProps = {
-    children: ReactNode;
-    title: string | undefined;
-    desc: string | undefined;
-    otherAttributes: Record<string, unknown> | null;
-};
-export declare const RootSurface: React.ForwardRefExoticComponent<RootSurfaceProps & React.RefAttributes<SVGSVGElement>>;
-export {};
Index: de_modules/recharts/types/container/Surface.d.ts
===================================================================
--- node_modules/recharts/types/container/Surface.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import * as React from 'react';
-import { ReactNode, CSSProperties, SVGProps } from 'react';
-import { CartesianViewBox } from '../util/types';
-interface SurfaceProps {
-    width: number | string;
-    height: number | string;
-    viewBox?: CartesianViewBox;
-    className?: string;
-    style?: CSSProperties;
-    children?: ReactNode;
-    title?: string;
-    desc?: string;
-}
-export type Props = Omit<SVGProps<SVGSVGElement>, 'viewBox'> & SurfaceProps;
-/**
- * Renders an SVG element.
- *
- * All charts already include a Surface component, so you would not normally use this directly.
- *
- * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg
- */
-export declare const Surface: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<SVGSVGElement>>;
-export {};
Index: de_modules/recharts/types/context/ErrorBarContext.d.ts
===================================================================
--- node_modules/recharts/types/context/ErrorBarContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import * as React from 'react';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ErrorBarDataPointFormatter } from '../cartesian/ErrorBar';
-import { ErrorBarsSettings } from '../state/errorBarSlice';
-import { BarRectangleItem } from '../cartesian/Bar';
-import { LinePointItem } from '../cartesian/Line';
-import { ScatterPointItem } from '../cartesian/Scatter';
-type ErrorBarContextType<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = {
-    data: ReadonlyArray<any> | undefined;
-    xAxisId: AxisId;
-    yAxisId: AxisId;
-    dataPointFormatter: ErrorBarDataPointFormatter<T>;
-    errorBarOffset: number;
-};
-export declare function SetErrorBarContext<T extends BarRectangleItem | LinePointItem | ScatterPointItem>(props: ErrorBarContextType<T> & {
-    children: React.ReactNode;
-}): React.JSX.Element;
-export declare const useErrorBarContext: () => ErrorBarContextType<any>;
-export declare function ReportErrorBarSettings(props: ErrorBarsSettings): null;
-export {};
Index: de_modules/recharts/types/context/PanoramaContext.d.ts
===================================================================
--- node_modules/recharts/types/context/PanoramaContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-export declare const useIsPanorama: () => boolean;
-export declare const PanoramaContextProvider: ({ children }: {
-    children: ReactNode;
-}) => React.JSX.Element;
Index: de_modules/recharts/types/context/RegisterGraphicalItemId.d.ts
===================================================================
--- node_modules/recharts/types/context/RegisterGraphicalItemId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import * as React from 'react';
-import { GraphicalItemId } from '../state/graphicalItemsSlice';
-export type IdSetter = {
-    id?: string;
-    type: string;
-    /**
-     * Children must be a function that receives the resolved ID of the graphical item.
-     * This ID will either be the one provided via props.id or generated automatically.
-     */
-    children: (id: GraphicalItemId) => React.ReactNode;
-};
-export declare const RegisterGraphicalItemId: ({ id, type, children }: IdSetter) => React.JSX.Element;
-export declare function useGraphicalItemId(): GraphicalItemId | undefined;
Index: de_modules/recharts/types/context/accessibilityContext.d.ts
===================================================================
--- node_modules/recharts/types/context/accessibilityContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare const useAccessibilityLayer: () => boolean;
Index: de_modules/recharts/types/context/brushUpdateContext.d.ts
===================================================================
--- node_modules/recharts/types/context/brushUpdateContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-export interface BrushStartEndIndex {
-    startIndex: number;
-    endIndex: number;
-}
-export type OnBrushUpdate = (newState: BrushStartEndIndex) => void;
-export declare const BrushUpdateDispatchContext: import("react").Context<OnBrushUpdate>;
Index: de_modules/recharts/types/context/chartDataContext.d.ts
===================================================================
--- node_modules/recharts/types/context/chartDataContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { ChartData } from '../state/chartDataSlice';
-import { BrushStartEndIndex } from './brushUpdateContext';
-export declare const ChartDataContextProvider: (props: {
-    chartData: ChartData | undefined;
-}) => null;
-export declare const SetComputedData: (props: {
-    computedData: any;
-}) => null;
-/**
- * "data" is the data of the chart - it has no type because this part of recharts is very flexible.
- * Basically it's an array of "something" and then there's the dataKey property in various places
- * that's meant to pull other things away from the data.
- *
- * Some charts have `data` defined on the chart root, and they will return the array through this hook.
- * For example: <ComposedChart data={data} />.
- *
- * Other charts, such as Pie, have data defined on individual graphical elements.
- * These charts will return `undefined` through this hook, and you need to read the data from children.
- * For example: <PieChart><Pie data={data} />
- *
- * Some charts also allow setting both - data on the parent, and data on the children at the same time!
- * However, this particular selector will only return the ones defined on the parent.
- *
- * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.
- *
- * @return data array for some charts and undefined for other
- */
-export declare const useChartData: () => ChartData | undefined;
-/**
- * startIndex and endIndex are data boundaries, set through Brush.
- *
- * @return object with startIndex and endIndex
- */
-export declare const useDataIndex: () => BrushStartEndIndex | undefined;
Index: de_modules/recharts/types/context/chartLayoutContext.d.ts
===================================================================
--- node_modules/recharts/types/context/chartLayoutContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-import { CartesianLayout, CartesianViewBoxRequired, ChartOffsetInternal, LayoutType, Margin, Percent, PolarLayout, TrapezoidViewBox } from '../util/types';
-import { RechartsRootState } from '../state/store';
-export declare function cartesianViewBoxToTrapezoid(box: undefined): undefined;
-export declare function cartesianViewBoxToTrapezoid(box: CartesianViewBoxRequired | TrapezoidViewBox): TrapezoidViewBox;
-export declare const useViewBox: () => CartesianViewBoxRequired | undefined;
-/**
- * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.
- *
- * Returns the offset of the chart in pixels.
- *
- * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.
- */
-export declare const useOffsetInternal: () => ChartOffsetInternal;
-/**
- * Returns the width of the chart in pixels.
- *
- * If you are using chart with hardcoded `width` prop, then the width returned will be the same
- * as the `width` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `width` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the width.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the width number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.
- */
-export declare const useChartWidth: () => number | undefined;
-/**
- * Returns the height of the chart in pixels.
- *
- * If you are using chart with hardcoded `height` props, then the height returned will be the same
- * as the `height` prop on the main chart element.
- *
- * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart
- * as the ResponsiveContainer has decided it would be.
- *
- * If the chart has any axes or legend, the `height` will be the size of the chart
- * including the axes and legend. Meaning: adding axes and legend will not change the height.
- *
- * The dimensions do not scale, meaning as user zoom in and out, the height number will not change
- * as the chart gets visually larger or smaller.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.
- */
-export declare const useChartHeight: () => number | undefined;
-/**
- * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.
- * This is declared by the user in the chart props.
- * If you are interested in the space occupied by axes, legend, or brushes,
- * use {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.
- *
- * Returns `undefined` if used outside a chart context.
- *
- * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.
- */
-export declare const useMargin: () => Margin | undefined;
-export declare const selectChartLayout: (state: RechartsRootState) => LayoutType;
-export declare const useChartLayout: () => LayoutType | undefined;
-export declare const useCartesianChartLayout: () => CartesianLayout | undefined;
-export declare const selectPolarChartLayout: (state: RechartsRootState) => PolarLayout | undefined;
-export declare const usePolarChartLayout: () => PolarLayout | undefined;
-/**
- * Returns true if the component is rendered inside a chart context.
- * Some components may be used both inside and outside of charts,
- * and this hook allows them to determine if they are in a chart context or not.
- *
- * Other selectors may return undefined when used outside a chart context,
- * or undefined when inside a chart, but without relevant data.
- * This hook provides a more explicit way to check for chart context.
- *
- * @returns {boolean} True if in chart context, false otherwise.
- */
-export declare const useIsInChartContext: () => boolean;
-export declare const ReportChartSize: (props: {
-    width: number | Percent | undefined;
-    height: number | Percent | undefined;
-}) => null;
-export declare const ReportChartMargin: ({ margin }: {
-    margin: Partial<Margin>;
-}) => null;
Index: de_modules/recharts/types/context/legendPayloadContext.d.ts
===================================================================
--- node_modules/recharts/types/context/legendPayloadContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { LegendPayload } from '../component/DefaultLegendContent';
-/**
- * Use this hook in Legend, or anywhere else where you want to read the current Legend items.
- * @return all Legend items ready to be rendered
- */
-export declare function useLegendPayload(): ReadonlyArray<LegendPayload> | undefined;
Index: de_modules/recharts/types/context/legendPortalContext.d.ts
===================================================================
--- node_modules/recharts/types/context/legendPortalContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export declare const LegendPortalContext: import("react").Context<HTMLElement | null>;
-export declare const useLegendPortal: () => HTMLElement | null;
Index: de_modules/recharts/types/context/tooltipContext.d.ts
===================================================================
--- node_modules/recharts/types/context/tooltipContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import * as React from 'react';
-import { Coordinate, DataKey } from '../util/types';
-export type TooltipPayloadType = any[];
-type TooltipTriggerInfo<T extends TooltipPayloadType> = {
-    tooltipPayload: T;
-    tooltipPosition: Coordinate;
-    cx: number;
-    cy: number;
-};
-export type ActivateTooltipAction<T extends TooltipPayloadType> = (tooltipInfo: TooltipTriggerInfo<T>, index: number, event: React.MouseEvent<SVGElement>) => void;
-export declare const useMouseEnterItemDispatch: <T extends TooltipPayloadType>(onMouseEnterFromProps: ActivateTooltipAction<T> | undefined, dataKey: DataKey<any> | undefined, graphicalItemId: string) => (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => void;
-export declare const useMouseLeaveItemDispatch: <T extends TooltipPayloadType>(onMouseLeaveFromProps: undefined | ActivateTooltipAction<T>) => (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => void;
-export declare const useMouseClickItemDispatch: <T extends TooltipPayloadType>(onMouseClickFromProps: ActivateTooltipAction<T> | undefined, dataKey: DataKey<any> | undefined, graphicalItemId: string) => (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => void;
-export {};
Index: de_modules/recharts/types/context/tooltipPortalContext.d.ts
===================================================================
--- node_modules/recharts/types/context/tooltipPortalContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export declare const TooltipPortalContext: import("react").Context<HTMLElement | null>;
-export declare const useTooltipPortal: () => HTMLElement | null;
Index: de_modules/recharts/types/context/useTooltipAxis.d.ts
===================================================================
--- node_modules/recharts/types/context/useTooltipAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RenderableAxisSettings } from '../state/selectors/axisSelectors';
-export declare const useTooltipAxis: () => RenderableAxisSettings | undefined;
-export declare const useTooltipAxisBandSize: () => number | undefined;
Index: de_modules/recharts/types/hooks.d.ts
===================================================================
--- node_modules/recharts/types/hooks.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-import { AxisId } from './state/cartesianAxisSlice';
-import { BaseAxisWithScale } from './state/selectors/axisSelectors';
-import { ChartOffset, PlotArea } from './types';
-import { CategoricalDomain, Coordinate, NumberDomain } from './util/types';
-import { ActiveLabel } from './synchronisation/types';
-export declare const useXAxis: (xAxisId: AxisId) => BaseAxisWithScale | undefined;
-export declare const useYAxis: (yAxisId: AxisId) => BaseAxisWithScale | undefined;
-/**
- * Returns the active tooltip label. The label is one of the values from the chart data,
- * and is used to display in the tooltip content.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context
- *
- * @returns ActiveLabel
- */
-export declare const useActiveTooltipLabel: () => ActiveLabel;
-/**
- * Returns the offset of the chart in pixels.
- *
- * Offset defines the blank space between the chart and the plot area.
- * This blank space is occupied by supporting elements like axes, legends, and brushes.
- *
- * The offset includes:
- *
- * - Margins
- * - Width and height of the axes
- * - Width and height of the legend
- * - Brush height
- *
- * If you are interested in the margin alone, use {@link useMargin} instead.
- *
- * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.
- *
- * It is also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the numbers will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Offset of the chart in pixels, or undefined if used outside a chart context.
- */
-export declare const useOffset: () => ChartOffset | undefined;
-/**
- * Plot area is the area where the actual chart data is rendered.
- * This means: bars, lines, scatter points, etc.
- *
- * The plot area is calculated based on the chart dimensions and the offset.
- *
- * Plot area `width` and `height` are the dimensions in pixels;
- * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.
- *
- * They are also independent of the scale and zoom, meaning that as the user zooms in and out,
- * the plot area dimensions will not change as the chart gets visually larger or smaller.
- *
- * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).
- * This hook returns `undefined` if used outside a chart context.
- *
- * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.
- */
-export declare const usePlotArea: () => PlotArea | undefined;
-/**
- * Returns the currently active data points being displayed in the Tooltip.
- * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.
- *
- * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.
- * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.
- *
- * Data point is whatever you pass as an input to the chart using the `data={}` prop.
- *
- * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)
- * and tooltip with `shared={true}` will display all items at the same time.
- *
- * Returns undefined when used outside a chart context.
- *
- * @returns Data points that are currently visible in a Tooltip
- */
-export declare const useActiveTooltipDataPoints: <T = unknown>() => ReadonlyArray<T> | undefined;
-/**
- * Returns the calculated domain of an X-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the XAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,
- * and the full domain will be returned if the hook is used inside a Brush context.
- *
- * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.
- * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-export declare const useXAxisDomain: (xAxisId?: AxisId) => NumberDomain | CategoricalDomain | undefined;
-/**
- * Returns the calculated domain of a Y-axis.
- *
- * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.
- *
- * The type of the domain is defined by the `type` prop of the YAxis.
- *
- * The values of the domain are calculated based on the data and the `dataKey` of the axis.
- *
- * Does not interact with Brushes, as Y-axes do not support brushing.
- *
- * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.
- * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
- */
-export declare const useYAxisDomain: (yAxisId?: AxisId) => NumberDomain | CategoricalDomain | undefined;
-/**
- * Returns true if the {@link Tooltip} is currently active (visible).
- *
- * Returns false if the Tooltip is not active or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {boolean} True if the Tooltip is active, false otherwise.
- * @since 3.7
- */
-export declare const useIsTooltipActive: () => boolean;
-/**
- * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.
- *
- * Returns undefined if there is no active user interaction or if used outside a chart context.
- *
- * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.
- * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.
- *
- * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.
- * @since 3.7
- */
-export declare const useActiveTooltipCoordinate: () => Coordinate | undefined;
Index: de_modules/recharts/types/index.d.ts
===================================================================
--- node_modules/recharts/types/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,124 +1,0 @@
-export { Surface } from './container/Surface';
-export type { Props as SurfaceProps } from './container/Surface';
-export { Layer } from './container/Layer';
-export type { Props as LayerProps } from './container/Layer';
-export { Legend } from './component/Legend';
-export type { Props as LegendProps } from './component/Legend';
-export { DefaultLegendContent } from './component/DefaultLegendContent';
-export type { Props as DefaultLegendContentProps, LegendPayload } from './component/DefaultLegendContent';
-export { Tooltip } from './component/Tooltip';
-export type { TooltipProps, TooltipContentProps } from './component/Tooltip';
-export type { TooltipIndex } from './state/tooltipSlice';
-export { DefaultTooltipContent } from './component/DefaultTooltipContent';
-export type { Props as DefaultTooltipContentProps, Payload as TooltipPayloadEntry, } from './component/DefaultTooltipContent';
-export { ResponsiveContainer } from './component/ResponsiveContainer';
-export type { Props as ResponsiveContainerProps } from './component/ResponsiveContainer';
-export { Cell } from './component/Cell';
-export type { Props as CellProps } from './component/Cell';
-export { Text } from './component/Text';
-export type { Props as TextProps, RenderableText, TextAnchor, TextVerticalAnchor } from './component/Text';
-export { Label } from './component/Label';
-export type { Props as LabelProps } from './component/Label';
-export { LabelList } from './component/LabelList';
-export type { Props as LabelListProps, LabelListEntry } from './component/LabelList';
-export { Customized } from './component/Customized';
-export type { Props as CustomizedProps } from './component/Customized';
-export { Sector } from './shape/Sector';
-export type { Props as SectorProps } from './shape/Sector';
-export { Curve } from './shape/Curve';
-export type { Props as CurveProps } from './shape/Curve';
-export { Rectangle } from './shape/Rectangle';
-export type { Props as RectangleProps } from './shape/Rectangle';
-export { Polygon } from './shape/Polygon';
-export type { Props as PolygonProps } from './shape/Polygon';
-export { Dot } from './shape/Dot';
-export type { Props as DotProps } from './shape/Dot';
-export type { ActiveDotProps } from './util/types';
-export type { DotItemDotProps } from './util/types';
-export { Cross } from './shape/Cross';
-export type { Props as CrossProps } from './shape/Cross';
-export { Symbols } from './shape/Symbols';
-export type { SymbolsProps } from './shape/Symbols';
-export type { SymbolType } from './util/types';
-export { PolarGrid } from './polar/PolarGrid';
-export type { Props as PolarGridProps } from './polar/PolarGrid';
-export { PolarRadiusAxis } from './polar/PolarRadiusAxis';
-export type { Props as PolarRadiusAxisProps } from './polar/PolarRadiusAxis';
-export { PolarAngleAxis } from './polar/PolarAngleAxis';
-export type { Props as PolarAngleAxisProps } from './polar/PolarAngleAxis';
-export { Pie } from './polar/Pie';
-export type { Props as PieProps, PieLabel, PieLabelRenderProps, PieSectorDataItem, PieSectorShapeProps, LabelListPropsWithPosition, PieShape, } from './polar/Pie';
-export { Radar } from './polar/Radar';
-export type { Props as RadarProps } from './polar/Radar';
-export { RadialBar } from './polar/RadialBar';
-export type { RadialBarProps } from './polar/RadialBar';
-export { Brush } from './cartesian/Brush';
-export type { Props as BrushProps } from './cartesian/Brush';
-export { ReferenceLine } from './cartesian/ReferenceLine';
-export type { Props as ReferenceLineProps, ReferenceLineSegment } from './cartesian/ReferenceLine';
-export { ReferenceDot } from './cartesian/ReferenceDot';
-export type { Props as ReferenceDotProps } from './cartesian/ReferenceDot';
-export { ReferenceArea } from './cartesian/ReferenceArea';
-export type { Props as ReferenceAreaProps } from './cartesian/ReferenceArea';
-export { CartesianAxis } from './cartesian/CartesianAxis';
-export type { Props as CartesianAxisProps } from './cartesian/CartesianAxis';
-export { CartesianGrid } from './cartesian/CartesianGrid';
-export type { Props as CartesianGridProps } from './cartesian/CartesianGrid';
-export { Line } from './cartesian/Line';
-export type { Props as LineProps } from './cartesian/Line';
-export { Area } from './cartesian/Area';
-export type { Props as AreaProps } from './cartesian/Area';
-export { Bar } from './cartesian/Bar';
-export type { Props as BarProps, BarRectangleItem, BarShapeProps } from './cartesian/Bar';
-export { BarStack } from './cartesian/BarStack';
-export type { BarStackProps } from './cartesian/BarStack';
-export { Scatter } from './cartesian/Scatter';
-export type { Props as ScatterProps, ScatterPointNode } from './cartesian/Scatter';
-export type { ScatterShapeProps } from './util/ScatterUtils';
-export type { BaseTickContentProps, CartesianTickItem } from './util/types';
-export { XAxis } from './cartesian/XAxis';
-export type { Props as XAxisProps } from './cartesian/XAxis';
-export type { XAxisTickContentProps } from './util/types';
-export type { XAxisOrientation, XAxisPadding } from './state/cartesianAxisSlice';
-export { YAxis } from './cartesian/YAxis';
-export type { Props as YAxisProps } from './cartesian/YAxis';
-export type { YAxisTickContentProps } from './util/types';
-export type { YAxisOrientation, YAxisPadding } from './state/cartesianAxisSlice';
-export { ZAxis } from './cartesian/ZAxis';
-export type { Props as ZAxisProps } from './cartesian/ZAxis';
-export type { CustomScaleDefinition } from './util/scale/CustomScaleDefinition';
-export { ErrorBar } from './cartesian/ErrorBar';
-export type { Props as ErrorBarProps } from './cartesian/ErrorBar';
-export { LineChart } from './chart/LineChart';
-export { BarChart } from './chart/BarChart';
-export { PieChart } from './chart/PieChart';
-export { Treemap } from './chart/Treemap';
-export type { Props as TreemapProps, TreemapNode, TreemapContentType } from './chart/Treemap';
-export { Sankey } from './chart/Sankey';
-export type { Props as SankeyProps, NodeProps as SankeyNodeProps, LinkProps as SankeyLinkProps, SankeyData, } from './chart/Sankey';
-export type { SankeyNodeOptions } from './chart/Sankey';
-export { RadarChart } from './chart/RadarChart';
-export { ScatterChart } from './chart/ScatterChart';
-export { AreaChart } from './chart/AreaChart';
-export { RadialBarChart } from './chart/RadialBarChart';
-export { ComposedChart } from './chart/ComposedChart';
-export { SunburstChart } from './chart/SunburstChart';
-export type { SunburstData, SunburstChartProps } from './chart/SunburstChart';
-export { Funnel } from './cartesian/Funnel';
-export type { Props as FunnelProps, FunnelTrapezoidItem } from './cartesian/Funnel';
-export { FunnelChart } from './chart/FunnelChart';
-export { Trapezoid } from './shape/Trapezoid';
-export type { Props as TrapezoidProps } from './shape/Trapezoid';
-export { Global } from './util/Global';
-export type { LegendType, DataKey, AxisInterval, Coordinate, PolarCoordinate, NumberDomain, Margin, AxisDomainItem, Padding, CartesianViewBox, SankeyNode, } from './util/types';
-export type { IfOverflow } from './util/IfOverflow';
-export { ZIndexLayer } from './zIndex/ZIndexLayer';
-export { DefaultZIndexes } from './zIndex/DefaultZIndexes';
-/** export getNiceTickValues so this can be used as a replacement for what is in recharts-scale */
-export { getNiceTickValues } from './util/scale/getNiceTickValues';
-export { useActiveTooltipLabel, useOffset, usePlotArea, useActiveTooltipDataPoints, useXAxisDomain, useYAxisDomain, useIsTooltipActive, useActiveTooltipCoordinate, } from './hooks';
-export { useChartHeight, useChartWidth, useMargin } from './context/chartLayoutContext';
-export type { ChartOffset, PlotArea } from './types';
-export type { MouseHandlerDataParam, ActiveLabel } from './synchronisation/types';
-export type { AxisId } from './state/cartesianAxisSlice';
-export type { AxisRange } from './state/selectors/axisSelectors';
Index: de_modules/recharts/types/polar/Pie.d.ts
===================================================================
--- node_modules/recharts/types/polar/Pie.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,303 +1,0 @@
-import * as React from 'react';
-import { ReactElement, ReactNode, SVGProps } from 'react';
-import { ActiveShape, AnimationDuration, AnimationTiming, ChartOffsetInternal, Coordinate, DataKey, DataProvider, GeometrySector, LegendType, PresentationAttributesAdaptChildEvent, TooltipType } from '../util/types';
-import { TooltipPayload } from '../state/tooltipSlice';
-import { PiePresentationProps, PieSettings } from '../state/types/PieSettings';
-import { SVGPropsNoEvents } from '../util/svgPropertiesNoEvents';
-import { Props as LabelListProps } from '../component/LabelList';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { ChartData } from '../state/chartDataSlice';
-interface PieDef {
-    /**
-     * The x-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of container width.
-     */
-    cx?: number | string;
-    /**
-     * The y-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of container height.
-     */
-    cy?: number | string;
-    /**
-     * Angle in degrees from which the chart should start.
-     */
-    startAngle?: number;
-    /**
-     * Angle, in degrees, at which the chart should end.
-     */
-    endAngle?: number;
-    /**
-     * The angle between two sectors.
-     *
-     * @example <Pie paddingAngle={5} />
-     * @example https://recharts.github.io/examples/PieChartWithPaddingAngle
-     */
-    paddingAngle?: number;
-    /**
-     * The inner radius of the sectors.
-     * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.
-     */
-    innerRadius?: number | string;
-    /**
-     * The outer radius of the sectors.
-     * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.
-     * Function should return a string percentage or number.
-     */
-    outerRadius?: number | string | ((dataPoint: any) => number | string);
-    cornerRadius?: number | string;
-}
-type PieLabelLine = ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>) | SVGProps<SVGPathElement> | boolean;
-interface PieLabelExtraProps {
-    stroke: string;
-    index: number;
-    textAnchor: string;
-}
-export type PieLabelRenderProps = Omit<SVGPropsNoEvents<PieSvgAttributes>, 'offset'> & Omit<PieSectorDataItem, 'offset'> & PieLabelExtraProps & Coordinate;
-export type LabelListPropsWithPosition = LabelListProps & {
-    position: LabelListProps['position'];
-};
-/**
- * The `label` prop in Pie accepts a variety of alternatives.
- */
-export type PieLabel = boolean | LabelListPropsWithPosition | Partial<PieLabelRenderProps> | ((props: PieLabelRenderProps) => ReactNode | ReactElement<SVGElement>) | ReactElement<SVGElement>;
-export type PieSectorData = GeometrySector & {
-    dataKey?: DataKey<any>;
-    midAngle?: number;
-    middleRadius?: number;
-    name?: string | number;
-    paddingAngle?: number;
-    payload?: any;
-    percent?: number;
-    tooltipPayload?: TooltipPayload;
-    tooltipPosition: Coordinate;
-    value: number;
-};
-/**
- * We spread the data object into the sector data item,
- * so we can't really know what is going to be inside.
- *
- * This type represents our best effort, but it all depends on the input data
- * and what is inside of it.
- *
- * https://github.com/recharts/recharts/issues/6380
- * https://github.com/recharts/recharts/discussions/6375
- */
-export type PieSectorDataItem = PiePresentationProps & PieCoordinate & PieSectorData & {
-    cornerRadius: number | undefined;
-};
-export type PieSectorShapeProps = PieSectorDataItem & {
-    isActive: boolean;
-    index: number;
-};
-export type PieShape = ReactNode | ((props: PieSectorShapeProps, index: number) => React.ReactElement);
-interface PieProps extends DataProvider, PieDef, ZIndexable {
-    /**
-     * This component is rendered when this graphical item is activated
-     * (could be by mouse hover, touch, keyboard, programmatically).
-     *
-     * @deprecated Use the `shape` prop to create each sector. `isActive` designates the "active" shape.
-     * @example <Pie activeShape={<CustomActiveShape />} />
-     * @example https://recharts.github.io/examples/CustomActiveShapePieChart
-     */
-    activeShape?: ActiveShape<PieSectorDataItem>;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 400
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    className?: string;
-    /**
-     * Decides how to extract the value of this Pie from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Pie.
-     *
-     * @defaultValue value
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * Hides the whole graphical element when true.
-     *
-     * Hiding an element is different from removing it from the chart:
-     * Hidden graphical elements are still visible in Legend,
-     * and can be included in axis domain calculations,
-     * depending on `includeHidden` props of your XAxis/YAxis.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    id?: string;
-    /**
-     * The shape of inactive sector.
-     * @deprecated Use the `shape` prop to modify each sector.
-     */
-    inactiveShape?: ActiveShape<PieSectorDataItem>;
-    /**
-     * If set false, animation will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Renders one label for each pie sector. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object` that has `position` prop: the props of LabelList component;
-     * - `object` that does not have `position` prop: the props of a custom Pie label (similar to Label with position "outside"); this variant supports `labelLine`
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * Also see the `labelLine` prop that draws a line connecting each label to the corresponding sector.
-     *
-     * @defaultValue false
-     * @example <Pie label={<CustomizedLabel />} />
-     * @example https://recharts.github.io/examples/PieChartWithCustomizedLabel
-     */
-    label?: PieLabel;
-    /**
-     * If false set, label lines will not be drawn. If true set, label lines will be drawn which have the props calculated internally.
-     * If object set, label lines will be drawn which have the props merged by the internal calculated props and the option.
-     * If ReactElement set, the option can be the custom label line element.
-     * If set a function, the function will be called to render customized label line.
-     * @defaultValue true
-     * @example <Pie labelLine={<CustomizedLabelLine />} />
-     * @example https://recharts.github.io/examples/PieChartWithCustomizedLabel
-     */
-    labelLine?: PieLabelLine;
-    /**
-     * The type of icon in legend. If set to 'none', no legend item will be rendered.
-     * @defaultValue rect
-     */
-    legendType?: LegendType;
-    /** the max radius of pie */
-    maxRadius?: number;
-    /**
-     * The minimum angle of each unzero data.
-     * @defaultValue 0
-     */
-    minAngle?: number;
-    /**
-     * Name represents each sector in the tooltip, and legend.
-     * This allows you to extract the name from the data:
-     *
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the name.
-     *
-     * @defaultValue name
-     */
-    nameKey?: DataKey<any>;
-    /**
-     * The customized event handler of animation end.
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start.
-     */
-    onAnimationStart?: () => void;
-    /**
-     * The customized event handler of click on the sectors in this group.
-     */
-    onClick?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousedown on the sectors in this group.
-     */
-    onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseup on the sectors in this group.
-     */
-    onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousemove on the sectors in this group.
-     */
-    onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseover on the sectors in this group.
-     */
-    onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseout on the sectors in this group.
-     */
-    onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter on the sectors in this group.
-     */
-    onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the sectors in this group.
-     */
-    onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The tabindex of wrapper surrounding the cells.
-     * @defaultValue 0
-     */
-    rootTabIndex?: number;
-    /**
-     * The custom shape of a Pie Sector.
-     * Can also be used to render active sector by checking isActive.
-     * If undefined, renders {@link Sector} shape.
-     */
-    shape?: PieShape;
-    tooltipType?: TooltipType;
-    /**
-     * @defaultValue 100
-     */
-    zIndex?: number;
-}
-type PieSvgAttributes = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'ref'>;
-export type Props = PieSvgAttributes & PieProps;
-export type PieCoordinate = {
-    cx: number;
-    cy: number;
-    innerRadius: number;
-    outerRadius: number;
-    maxRadius: number;
-};
-export declare function computePieSectors({ pieSettings, displayedData, cells, offset, }: {
-    pieSettings: PieSettings;
-    displayedData: ChartData;
-    cells: ReadonlyArray<ReactElement> | undefined;
-    offset: ChartOffsetInternal;
-}): ReadonlyArray<PieSectorDataItem> | undefined;
-export declare const defaultPieProps: {
-    readonly animationBegin: 400;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly cx: "50%";
-    readonly cy: "50%";
-    readonly dataKey: "value";
-    readonly endAngle: 360;
-    readonly fill: "#808080";
-    readonly hide: false;
-    readonly innerRadius: 0;
-    readonly isAnimationActive: "auto";
-    readonly label: false;
-    readonly labelLine: true;
-    readonly legendType: "rect";
-    readonly minAngle: 0;
-    readonly nameKey: "name";
-    readonly outerRadius: "80%";
-    readonly paddingAngle: 0;
-    readonly rootTabIndex: 0;
-    readonly startAngle: 0;
-    readonly stroke: "#fff";
-    readonly zIndex: 100;
-};
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export declare function Pie(outsideProps: Props): React.JSX.Element;
-export declare namespace Pie {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/polar/PolarAngleAxis.d.ts
===================================================================
--- node_modules/recharts/types/polar/PolarAngleAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,209 +1,0 @@
-import * as React from 'react';
-import { FunctionComponent, SVGProps } from 'react';
-import { AxisDomain, AxisDomainTypeInput, BaseTickContentProps, PresentationAttributesAdaptChildEvent, RenderableAxisProps, ScaleType, TickItem, TickProp } from '../util/types';
-import { defaultPolarAngleAxisProps } from './defaultPolarAngleAxisProps';
-import { RequiresDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-export interface PolarAngleAxisProps extends Omit<RenderableAxisProps, 'axisLine' | 'tickCount' | 'domain' | 'scale' | 'tick'>, ZIndexable {
-    /**
-     * Controls axis line element. These are be passed as props to SVG `<line>` element representing the axis line.
-     * If `true` then the axis line is drawn using props of the PolarAngleAxis component.
-     * If `false` then the axis line is not drawn.
-     *
-     * Also see `axisLineType` prop to change the shape of the axis line.
-     *
-     * @defaultValue true
-     *
-     * @example <PolarAngleAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />
-     * @example <PolarAngleAxis axisLine={false} />
-     * @example <PolarAngleAxis stroke='red' strokeWidth={2} strokeDasharray={4} />
-     */
-    axisLine?: boolean | SVGProps<SVGLineElement>;
-    /**
-     * @defaultValue false
-     */
-    allowDecimals?: boolean;
-    /**
-     * Allow the axis has duplicated categories or not when the type of axis is "category".
-     * @defaultValue true
-     */
-    allowDuplicatedCategory?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    angleAxisId?: string | number;
-    /**
-     * The type of axis line.
-     * @defaultValue polygon
-     */
-    axisLineType?: 'polygon' | 'circle';
-    /**
-     * The x-coordinate of center.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    cx?: number;
-    /**
-     * The y-coordinate of center.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    cy?: number;
-    /**
-     * The orientation of axis text.
-     * @defaultValue 'outer'
-     */
-    orientation?: 'inner' | 'outer';
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <PolarAngleAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <PolarAngleAxis type="number" domain={[0, 'dataMax']} />
-     * @example <PolarAngleAxis type="number" domain={['auto', 'auto']} />
-     * @example <PolarAngleAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <PolarAngleAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <PolarAngleAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <PolarAngleAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <PolarAngleAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <PolarAngleAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <PolarAngleAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    /**
-     * The outer radius of circle grid.
-     * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.
-     */
-    radius?: number | string;
-    /**
-     * Defines how the individual label text is rendered.
-     * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.
-     *
-     * If you want to customize the overall axis label, use the `label` prop instead.
-     *
-     * Options:
-     * - `false`: Do not render any tick labels.
-     * - `true`: Render tick labels with default settings.
-     * - `object`: An object of props to be merged into the internally calculated tick props.
-     * - `ReactElement`: A custom React element to be used as the tick label.
-     * - `function`: A function that returns a React element for custom rendering of tick labels.
-     *
-     * @defaultValue true
-     */
-    tick?: TickProp<BaseTickContentProps>;
-    /**
-     * The count of axis ticks. Not used if 'type' is 'category'.
-     */
-    tickCount?: number;
-    /**
-     * The formatter function of ticks.
-     */
-    tickFormatter?: (value: any, index: number) => string;
-    /**
-     * The length of tick line.
-     * @defaultValue 8
-     */
-    tickSize?: number;
-    /**
-     * The array of every tick's value and angle.
-     */
-    ticks?: ReadonlyArray<TickItem>;
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * `auto`: the type is inferred based on the chart layout.
-     *
-     * @defaultValue auto
-     */
-    type?: AxisDomainTypeInput;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 500
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-    /**
-     * The customized event handler of click on the ticks of this axis
-     */
-    onClick?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousedown on the ticks of this axis
-     */
-    onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseup on the ticks of this axis
-     */
-    onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousemove on the ticks of this axis
-     */
-    onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseover on the ticks of this axis
-     */
-    onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseout on the ticks of this axis
-     */
-    onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter on the ticks of this axis
-     */
-    onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the ticks of this axis
-     */
-    onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;
-}
-type AxisSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGTextElement>, 'scale' | 'type' | 'dangerouslySetInnerHTML'>;
-export type Props = AxisSvgProps & PolarAngleAxisProps;
-type PropsWithDefaults = RequiresDefaultProps<Props, typeof defaultPolarAngleAxisProps>;
-export declare const PolarAngleAxisWrapper: FunctionComponent<PropsWithDefaults>;
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-export declare function PolarAngleAxis(outsideProps: Props): React.ReactNode;
-export declare namespace PolarAngleAxis {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/polar/PolarGrid.d.ts
===================================================================
--- node_modules/recharts/types/polar/PolarGrid.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-interface PolarGridProps extends ZIndexable {
-    /**
-     * The x-coordinate of center.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    cx?: number;
-    /**
-     * The y-coordinate of center.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    cy?: number;
-    /**
-     * The radius of the inner polar grid.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    innerRadius?: number;
-    /**
-     * The radius of the outer polar grid.
-     * When used inside a chart context, this prop is calculated based on the chart's dimensions,
-     * and this prop is ignored.
-     *
-     * This is only used when rendered outside a chart context.
-     */
-    outerRadius?: number;
-    /**
-     * The array of every line grid's angle.
-     */
-    polarAngles?: ReadonlyArray<number>;
-    /**
-     * The array of every circle grid's radius.
-     */
-    polarRadius?: ReadonlyArray<number>;
-    /**
-     * The type of polar grids.
-     * @defaultValue polygon
-     */
-    gridType?: 'polygon' | 'circle';
-    /**
-     * @defaultValue true
-     */
-    radialLines?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    angleAxisId?: AxisId;
-    /**
-     * @defaultValue 0
-     */
-    radiusAxisId?: AxisId;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue -100
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-export type Props = SVGProps<SVGLineElement> & PolarGridProps;
-export declare const defaultPolarGridProps: {
-    readonly angleAxisId: 0;
-    readonly radiusAxisId: 0;
-    readonly gridType: "polygon";
-    readonly radialLines: true;
-    readonly zIndex: -100;
-};
-/**
- * @consumes PolarViewBoxContext
- */
-export declare const PolarGrid: {
-    (outsideProps: Props): React.JSX.Element | null;
-    displayName: string;
-};
-export {};
Index: de_modules/recharts/types/polar/PolarRadiusAxis.d.ts
===================================================================
--- node_modules/recharts/types/polar/PolarRadiusAxis.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,171 +1,0 @@
-import * as React from 'react';
-import { FunctionComponent, SVGProps } from 'react';
-import { RenderableAxisProps, PresentationAttributesAdaptChildEvent, TickItem, AxisDomain, ScaleType, AxisDomainTypeInput, TickProp, BaseTickContentProps } from '../util/types';
-import { defaultPolarRadiusAxisProps } from './defaultPolarRadiusAxisProps';
-import { RequiresDefaultProps } from '../util/resolveDefaultProps';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-type TickOrientation = 'left' | 'right' | 'middle';
-export interface PolarRadiusAxisProps extends Omit<RenderableAxisProps, 'axisLine' | 'angle' | 'type' | 'tickSize' | 'domain' | 'scale' | 'tick'>, ZIndexable {
-    /**
-     * Determines how the axis line is drawn. Options:
-     * - `true`: the axis line is drawn with default props;
-     * - `false`: the axis line is not visible;
-     * - `object`: passed as props to SVG `<line>` element representing the axis line.
-     *
-     * @example <PolarRadiusAxis axisLine={false} />
-     * @example <PolarRadiusAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />
-     * @defaultValue true
-     */
-    axisLine?: boolean | SVGProps<SVGLineElement>;
-    /**
-     * The angle of the whole axis: the line, ticks and labels, everything.
-     *
-     * This is different from other graphical elements where angle usually means
-     * the angle of text. Here, it means the angle of everything.
-     *
-     * @defaultValue 0
-     */
-    angle?: number;
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * `auto`: the type is inferred based on the chart layout.
-     *
-     * @defaultValue auto
-     */
-    type?: AxisDomainTypeInput;
-    /**
-     * The orientation of axis text.
-     * @defaultValue right
-     */
-    orientation?: TickOrientation;
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <PolarRadiusAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <PolarRadiusAxis type="number" domain={[0, 'dataMax']} />
-     * @example <PolarRadiusAxis type="number" domain={['auto', 'auto']} />
-     * @example <PolarRadiusAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <PolarRadiusAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <PolarRadiusAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <PolarRadiusAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <PolarRadiusAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <PolarRadiusAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <PolarRadiusAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    /**
-     * The customized event handler of click on the ticks of this axis
-     */
-    onClick?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousedown on the ticks of this axis
-     */
-    onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseup on the ticks of this axis
-     */
-    onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousemove on the ticks of this axis
-     */
-    onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseover on the ticks of this axis
-     */
-    onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseout on the ticks of this axis
-     */
-    onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter on the ticks of this axis
-     */
-    onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave on the ticks of this axis
-     */
-    onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * Allow the ticks of axis to be decimals or not.
-     *
-     * @defaultValue false
-     */
-    allowDecimals?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    radiusAxisId?: string | number;
-    /**
-     * Defines how the individual label text is rendered.
-     * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.
-     *
-     * If you want to customize the overall axis label, use the `label` prop instead.
-     *
-     * Options:
-     * - `false`: Do not render any tick labels.
-     * - `true`: Render tick labels with default settings.
-     * - `object`: An object of props to be merged into the internally calculated tick props.
-     * - `ReactElement`: A custom React element to be used as the tick label.
-     * - `function`: A function that returns a React element for custom rendering of tick labels.
-     *
-     * @defaultValue true
-     */
-    tick?: TickProp<BaseTickContentProps>;
-    ticks?: ReadonlyArray<TickItem>;
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 500
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-type AxisSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGTextElement>, 'scale' | 'type'>;
-export type Props = AxisSvgProps & PolarRadiusAxisProps;
-type PropsWithDefaults = RequiresDefaultProps<Props, typeof defaultPolarRadiusAxisProps>;
-export declare const PolarRadiusAxisWrapper: FunctionComponent<PropsWithDefaults>;
-/**
- * @provides PolarLabelContext
- * @consumes PolarViewBoxContext
- */
-export declare function PolarRadiusAxis(outsideProps: Props): React.JSX.Element;
-export declare namespace PolarRadiusAxis {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/polar/Radar.d.ts
===================================================================
--- node_modules/recharts/types/polar/Radar.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,165 +1,0 @@
-import * as React from 'react';
-import { MouseEvent, ReactElement, SVGProps } from 'react';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { ActiveDotType, AnimationDuration, AnimationTiming, DataKey, DotType, LegendType, TooltipType } from '../util/types';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-import { RechartsScale } from '../util/scale/RechartsScale';
-interface RadarPoint {
-    x: number;
-    y: number;
-    cx?: number;
-    cy?: number;
-    angle: number;
-    radius?: number;
-    value?: number;
-    payload?: any;
-    name?: string;
-}
-interface RadarProps extends ZIndexable {
-    /**
-     * @defaultValue true
-     */
-    activeDot?: ActiveDotType;
-    /**
-     * @defaultValue 0
-     */
-    angleAxisId?: string | number;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    baseLinePoints?: RadarPoint[];
-    className?: string;
-    connectNulls?: boolean;
-    /**
-     * Decides how to extract the value of this Radar from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Radar.
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * Renders a circle element at each data point. Options:
-     *
-     * - `false`: no dots are drawn;
-     * - `true`: renders the dots with default settings;
-     * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;
-     * - `ReactElement`: the custom dot element;
-     * - `function`: a render function of the custom dot.
-     *
-     * @defaultValue false
-     */
-    dot?: DotType;
-    /**
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * If set false, animation of polygon will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    isRange?: boolean;
-    /**
-     * Renders one label for each point. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object`: the props of LabelList component;
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * The type of icon in legend.  If set to 'none', no legend item will be rendered.
-     * @defaultValue rect
-     */
-    legendType?: LegendType;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    onMouseEnter?: (props: any, e: MouseEvent<SVGPolygonElement>) => void;
-    onMouseLeave?: (props: any, e: MouseEvent<SVGPolygonElement>) => void;
-    /**
-     * The coordinates of all the vertexes of the radar shape, like an array of objects with x and y coordinates.
-     */
-    points?: RadarPoint[];
-    /**
-     * @defaultValue 0
-     */
-    radiusAxisId?: string | number;
-    /**
-     * If set a ReactElement, the shape of radar can be customized.
-     * If set a function, the function will be called to render customized shape.
-     */
-    shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);
-    tooltipType?: TooltipType;
-    /**
-     * @defaultValue 100
-     */
-    zIndex?: number;
-}
-export type RadiusAxisForRadar = {
-    scale: RechartsScale;
-};
-export type AngleAxisForRadar = {
-    scale: RechartsScale;
-    type: 'number' | 'category';
-    dataKey: DataKey<any> | undefined;
-    cx: number;
-    cy: number;
-};
-export type Props = Omit<SVGProps<SVGElement>, 'onMouseEnter' | 'onMouseLeave' | 'points' | 'ref'> & RadarProps;
-export type RadarComposedData = {
-    points: RadarPoint[];
-    baseLinePoints: RadarPoint[];
-    isRange: boolean;
-};
-export declare function computeRadarPoints({ radiusAxis, angleAxis, displayedData, dataKey, bandSize, }: {
-    radiusAxis: RadiusAxisForRadar;
-    angleAxis: AngleAxisForRadar;
-    displayedData: any[];
-    dataKey: RadarProps['dataKey'];
-    bandSize: number;
-}): RadarComposedData;
-export declare const defaultRadarProps: {
-    readonly activeDot: true;
-    readonly angleAxisId: 0;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly dot: false;
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly label: false;
-    readonly legendType: "rect";
-    readonly radiusAxisId: 0;
-    readonly zIndex: 100;
-};
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- */
-export declare function Radar(outsideProps: Props): React.JSX.Element;
-export declare namespace Radar {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/polar/RadialBar.d.ts
===================================================================
--- node_modules/recharts/types/polar/RadialBar.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,203 +1,0 @@
-import * as React from 'react';
-import { ReactElement } from 'react';
-import { Series } from 'victory-vendor/d3-shape';
-import { Props as SectorProps } from '../shape/Sector';
-import { ImplicitLabelListType } from '../component/LabelList';
-import { BarPositionPosition } from '../util/ChartUtils';
-import { ActiveShape, AnimationDuration, AnimationTiming, DataKey, LayoutType, LegendType, PolarViewBoxRequired, PresentationAttributesAdaptChildEvent, TickItem, TooltipType } from '../util/types';
-import { BaseAxisWithScale } from '../state/selectors/axisSelectors';
-import { ChartData } from '../state/chartDataSlice';
-import { AxisId } from '../state/cartesianAxisSlice';
-import { ZIndexable } from '../zIndex/ZIndexLayer';
-export type RadialBarDataItem = SectorProps & PolarViewBoxRequired & {
-    value?: any;
-    payload?: any;
-    background?: SectorProps;
-};
-type RadialBarBackground = boolean | (ActiveShape<SectorProps> & ZIndexable);
-interface InternalRadialBarProps extends ZIndexable {
-    activeShape?: ActiveShape<SectorProps, SVGPathElement>;
-    /**
-     * @defaultValue 0
-     */
-    angleAxisId?: AxisId;
-    /**
-     * Specifies when the animation should begin, the unit of this option is ms.
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * Specifies the duration of animation, the unit of this option is ms.
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * The type of easing function.
-     * @defaultValue ease
-     */
-    animationEasing?: AnimationTiming;
-    /**
-     * Renders a background for each bar. Options:
-     *  - `false`: no background;
-     *  - `true`: renders default background;
-     *  - `object`: the props of background rectangle;
-     *  - `ReactElement`: a custom background element;
-     *  - `function`: a render function of custom background.
-     *
-     * @defaultValue false
-     */
-    background?: RadialBarBackground;
-    /**
-     * The width or height of each bar. If the barSize is not specified, the size of the bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.
-     */
-    barSize?: number;
-    className?: string;
-    /**
-     * @defaultValue false
-     */
-    cornerIsExternal?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    cornerRadius?: string | number;
-    /**
-     * Calculated radial bar sectors
-     */
-    sectors: ReadonlyArray<RadialBarDataItem>;
-    dataKey: string | number | ((obj: any) => any);
-    /**
-     * @defaultValue false
-     */
-    forceCornerRadius?: boolean;
-    /**
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * If set false, animation of radial bars will be disabled.
-     * If set "auto", the animation will be disabled in SSR and enabled in browser.
-     * @defaultValue auto
-     */
-    isAnimationActive?: boolean | 'auto';
-    /**
-     * Renders one label for each data point. Options:
-     * - `true`: renders default labels;
-     * - `false`: no labels are rendered;
-     * - `object`: the props of LabelList component;
-     * - `ReactElement`: a custom label element;
-     * - `function`: a render function of custom label.
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelListType;
-    /**
-     * The type of icon in legend.  If set to 'none', no legend item will be rendered.
-     * @defaultValue rect
-     */
-    legendType?: LegendType;
-    maxBarSize?: number;
-    /**
-     * @defaultValue 0
-     */
-    minPointSize?: number;
-    /**
-     * The customized event handler of animation end
-     */
-    onAnimationEnd?: () => void;
-    /**
-     * The customized event handler of animation start
-     */
-    onAnimationStart?: () => void;
-    /**
-     * The customized event handler of click in this chart.
-     */
-    onClick?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousedown in this chart.
-     */
-    onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseup in this chart.
-     */
-    onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mousemove in this chart.
-     */
-    onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseover in this chart.
-     */
-    onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseout in this chart.
-     */
-    onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseenter in this chart.
-     */
-    onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * The customized event handler of mouseleave in this chart.
-     */
-    onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;
-    /**
-     * @defaultValue 0
-     */
-    radiusAxisId?: AxisId;
-    shape?: ActiveShape<SectorProps, SVGPathElement>;
-    stackId?: string | number;
-    tooltipType?: TooltipType;
-    /**
-     * @defaultValue 300
-     */
-    zIndex?: number;
-}
-export type RadialBarProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'ref'> & Omit<InternalRadialBarProps, 'sectors'>;
-export declare const defaultRadialBarProps: {
-    readonly angleAxisId: 0;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-    readonly background: false;
-    readonly cornerIsExternal: false;
-    readonly cornerRadius: 0;
-    readonly forceCornerRadius: false;
-    readonly hide: false;
-    readonly isAnimationActive: "auto";
-    readonly label: false;
-    readonly legendType: "rect";
-    readonly minPointSize: 0;
-    readonly radiusAxisId: 0;
-    readonly zIndex: 300;
-};
-export declare function computeRadialBarDataItems({ displayedData, stackedData, dataStartIndex, stackedDomain, dataKey, baseValue, layout, radiusAxis, radiusAxisTicks, bandSize, pos, angleAxis, minPointSize, cx, cy, angleAxisTicks, cells, startAngle: rootStartAngle, endAngle: rootEndAngle, }: {
-    displayedData: ChartData;
-    stackedData: Series<Record<number, number>, DataKey<any>> | undefined;
-    dataStartIndex: number;
-    stackedDomain: ReadonlyArray<unknown> | null;
-    dataKey: DataKey<any> | undefined;
-    baseValue: number | unknown;
-    layout: LayoutType;
-    radiusAxis: BaseAxisWithScale;
-    radiusAxisTicks: ReadonlyArray<TickItem> | undefined;
-    bandSize: number;
-    pos: BarPositionPosition;
-    angleAxis: BaseAxisWithScale;
-    minPointSize: number;
-    cx: number;
-    cy: number;
-    angleAxisTicks: ReadonlyArray<TickItem> | undefined;
-    cells: ReadonlyArray<ReactElement> | undefined;
-    startAngle: number;
-    endAngle: number;
-}): ReadonlyArray<RadialBarDataItem>;
-/**
- * @consumes PolarChartContext
- * @provides LabelListContext
- * @provides CellReader
- */
-export declare function RadialBar(outsideProps: RadialBarProps): React.JSX.Element;
-export declare namespace RadialBar {
-    var displayName: string;
-}
-export {};
Index: de_modules/recharts/types/polar/defaultPolarAngleAxisProps.d.ts
===================================================================
--- node_modules/recharts/types/polar/defaultPolarAngleAxisProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-export declare const defaultPolarAngleAxisProps: {
-    readonly allowDecimals: false;
-    readonly allowDuplicatedCategory: true;
-    readonly allowDataOverflow: false;
-    readonly angle: 0;
-    readonly angleAxisId: 0;
-    readonly axisLine: true;
-    readonly axisLineType: "polygon";
-    readonly cx: 0;
-    readonly cy: 0;
-    readonly hide: false;
-    readonly includeHidden: false;
-    readonly label: false;
-    readonly orientation: "outer";
-    readonly reversed: false;
-    readonly scale: "auto";
-    readonly tick: true;
-    readonly tickLine: true;
-    readonly tickSize: 8;
-    readonly type: "auto";
-    readonly zIndex: 500;
-};
Index: de_modules/recharts/types/polar/defaultPolarRadiusAxisProps.d.ts
===================================================================
--- node_modules/recharts/types/polar/defaultPolarRadiusAxisProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-export declare const defaultPolarRadiusAxisProps: {
-    readonly allowDataOverflow: false;
-    readonly allowDecimals: false;
-    readonly allowDuplicatedCategory: true;
-    readonly angle: 0;
-    readonly axisLine: true;
-    readonly includeHidden: false;
-    readonly hide: false;
-    readonly label: false;
-    readonly orientation: "right";
-    readonly radiusAxisId: 0;
-    readonly reversed: false;
-    readonly scale: "auto";
-    readonly stroke: "#ccc";
-    readonly tick: true;
-    readonly tickCount: 5;
-    readonly tickLine: true;
-    readonly type: "auto";
-    readonly zIndex: 500;
-};
Index: de_modules/recharts/types/shape/Cross.d.ts
===================================================================
--- node_modules/recharts/types/shape/Cross.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/**
- * @fileOverview Cross
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-interface CrossProps {
-    /**
-     * The x-coordinate of the vertical line of the cross in pixels.
-     */
-    x?: number;
-    /**
-     * The y-coordinate of the horizontal line of the cross in pixels.
-     */
-    y?: number;
-    /**
-     * Width of the cross in pixels.
-     */
-    width?: number;
-    /**
-     * Height of the cross in pixels.
-     */
-    height?: number;
-    /**
-     * The y-coordinate of the top left point in the boundary box of the cross.
-     */
-    top?: number;
-    /**
-     * The x-coordinate of the top left point in the boundary box of the cross.
-     */
-    left?: number;
-    className?: number;
-}
-export type Props = SVGProps<SVGPathElement> & CrossProps;
-export declare const Cross: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Curve.d.ts
===================================================================
--- node_modules/recharts/types/shape/Curve.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-/**
- * @fileOverview Curve
- */
-import * as React from 'react';
-import { Ref } from 'react';
-import { CurveFactory } from 'victory-vendor/d3-shape';
-import { LayoutType, PresentationAttributesWithProps, NullableCoordinate, RechartsMouseEventHandler } from '../util/types';
-/**
- * @inline
- */
-export type CurveType = 'basis' | 'basisClosed' | 'basisOpen' | 'bumpX' | 'bumpY' | 'bump' | 'linear' | 'linearClosed' | 'natural' | 'monotoneX' | 'monotoneY' | 'monotone' | 'step' | 'stepBefore' | 'stepAfter' | CurveFactory;
-interface CurveProps {
-    className?: string;
-    /**
-     * The interpolation type of curve. Allows custom interpolation function.
-     *
-     * @defaultValue linear
-     * @link https://d3js.org/d3-shape/curve
-     * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}
-     */
-    type?: CurveType;
-    /**
-     * This option affects the interpolation algorithm when the `type` prop is set to 'monotone'.
-     * It also specifies the type of baseline when the curve is closed.
-     */
-    layout?: LayoutType;
-    /**
-     * Baseline of the area:
-     * - number: uses the corresponding axis value as a flat baseline;
-     * - an array of coordinates: describes a custom baseline path.
-     */
-    baseLine?: number | ReadonlyArray<NullableCoordinate>;
-    /**
-     * The coordinates of all the points in the curve, like an array of objects with x and y coordinates.
-     */
-    points?: ReadonlyArray<NullableCoordinate>;
-    /**
-     * Whether to connect the curve across null points.
-     *
-     * @defaultValue false
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/LineChartConnectNulls/ LineChart with connectNull true and false}
-     * @see {@link https://recharts.github.io/en-US/examples/AreaChartConnectNulls/ AreaChart with connectNull true and false}
-     */
-    connectNulls?: boolean;
-    path?: string;
-    pathRef?: Ref<SVGPathElement>;
-    /**
-     * The pattern of dashes and gaps used to paint the line.
-     *
-     * @example strokeDasharray="5 5"
-     * @example strokeDasharray={10}
-     * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray}
-     */
-    strokeDasharray?: string | number;
-}
-export type CurveMouseEventHandler = RechartsMouseEventHandler<Props, SVGPathElement>;
-type CurveMouseEvents = {
-    /**
-     * The customized event handler of click on the curve
-     */
-    onClick?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mouseenter on the curve
-     */
-    onMouseEnter?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mouseleave on the curve
-     */
-    onMouseLeave?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mousedown on the curve
-     */
-    onMouseDown?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mouseup on the curve
-     */
-    onMouseUp?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mousemove on the curve
-     */
-    onMouseMove?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mouseover on the curve
-     */
-    onMouseOver?: CurveMouseEventHandler;
-    /**
-     * The customized event handler of mouseout on the curve
-     */
-    onMouseOut?: CurveMouseEventHandler;
-};
-export type Props = Omit<PresentationAttributesWithProps<CurveProps, SVGPathElement>, 'type' | 'points' | 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onMouseDown' | 'onMouseUp' | 'onMouseMove' | 'onMouseOver' | 'onMouseOut'> & CurveMouseEvents & CurveProps;
-type GetPathProps = Pick<Props, 'type' | 'points' | 'baseLine' | 'layout' | 'connectNulls'>;
-export declare const defaultCurveProps: {
-    readonly connectNulls: false;
-    readonly type: "linear";
-};
-/**
- * Calculate the path of curve. Returns null if points is an empty array.
- * @return path or null
- */
-export declare const getPath: ({ type, points, baseLine, layout, connectNulls, }: GetPathProps) => string | null;
-export declare const Curve: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Dot.d.ts
===================================================================
--- node_modules/recharts/types/shape/Dot.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import * as React from 'react';
-import { PresentationAttributesWithProps, RechartsMouseEventHandler } from '../util/types';
-interface DotProps {
-    className?: string;
-    /**
-     * The x-coordinate of center in pixels.
-     */
-    cx?: number;
-    /**
-     * The y-coordinate of center in pixels.
-     */
-    cy?: number;
-    /**
-     * The radius of dot.
-     */
-    r?: number | string;
-    clipDot?: boolean;
-    /**
-     * The customized event handler of click in this chart.
-     */
-    onClick?: RechartsMouseEventHandler<Props>;
-}
-export type Props = PresentationAttributesWithProps<DotProps, SVGCircleElement> & DotProps;
-/**
- * Renders a dot in the chart.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceDot} component instead.
- *
- * @param props
- * @constructor
- */
-export declare const Dot: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Polygon.d.ts
===================================================================
--- node_modules/recharts/types/shape/Polygon.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/**
- * @fileOverview Polygon
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { Coordinate } from '../util/types';
-interface PolygonProps {
-    className?: string;
-    /**
-     * The coordinates of all the vertexes of the polygon, like an array of objects with x and y coordinates.
-     */
-    points?: ReadonlyArray<Coordinate>;
-    baseLinePoints?: ReadonlyArray<Coordinate>;
-    connectNulls?: boolean;
-    /**
-     * The customized event handler of click on the polygon
-     */
-    onClick?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mousedown on the polygon
-     */
-    onMouseDown?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mouseup on the polygon
-     */
-    onMouseUp?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mousemove on the polygon
-     */
-    onMouseMove?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mouseover on the polygon
-     */
-    onMouseOver?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mouseout on the polygon
-     */
-    onMouseOut?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mouseenter on the polygon
-     */
-    onMouseEnter?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-    /**
-     * The customized event handler of mouseleave on the polygon
-     */
-    onMouseLeave?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;
-}
-export type Props = Omit<SVGProps<SVGPolygonElement>, 'points'> & PolygonProps;
-export declare const Polygon: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Rectangle.d.ts
===================================================================
--- node_modules/recharts/types/shape/Rectangle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-/**
- * @fileOverview Rectangle
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { AnimationDuration } from '../util/types';
-import { EasingInput } from '../animation/easing';
-/**
- * @inline
- */
-export type RectRadius = number | [number, number, number, number];
-interface RectangleProps {
-    className?: string;
-    /**
-     * The x-coordinate of top left point of the rectangle.
-     * @defaultValue 0
-     */
-    x?: number;
-    /**
-     * The y-coordinate of top left point of the rectangle.
-     * @defaultValue 0
-     */
-    y?: number;
-    /**
-     * Width of the rectangle in pixels.
-     * @defaultValue 0
-     */
-    width?: number;
-    /**
-     * Height of the rectangle in pixels.
-     * @defaultValue 0
-     */
-    height?: number;
-    /**
-     * The radius of corners.
-     *
-     * If you provide a single number, it applies to all four corners.
-     * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/roundedBars/ Guide: Rounded bar corners}
-     *
-     * @defaultValue 0
-     */
-    radius?: RectRadius;
-    /**
-     * @defaultValue false
-     */
-    isAnimationActive?: boolean;
-    /**
-     * @defaultValue false
-     */
-    isUpdateAnimationActive?: boolean;
-    /**
-     * @defaultValue 0
-     */
-    animationBegin?: number;
-    /**
-     * @defaultValue 1500
-     */
-    animationDuration?: AnimationDuration;
-    /**
-     * @defaultValue ease
-     */
-    animationEasing?: EasingInput;
-    /**
-     * The customized event handler of click on the rectangle
-     */
-    onClick?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousedown on the rectangle
-     */
-    onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseup on the rectangle
-     */
-    onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousemove on the rectangle
-     */
-    onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseover on the rectangle
-     */
-    onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseout on the rectangle
-     */
-    onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseenter on the rectangle
-     */
-    onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseleave on the rectangle
-     */
-    onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;
-}
-export type Props = Omit<SVGProps<SVGPathElement>, 'radius'> & RectangleProps;
-export declare const defaultRectangleProps: {
-    readonly x: 0;
-    readonly y: 0;
-    readonly width: 0;
-    readonly height: 0;
-    readonly radius: 0;
-    readonly isAnimationActive: false;
-    readonly isUpdateAnimationActive: false;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-};
-/**
- * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners
- * and animation.
- *
- * This component accepts X and Y coordinates in pixels.
- * If you need to position the rectangle based on your chart's data,
- * consider using the {@link ReferenceArea} component instead.
- *
- * @param rectangleProps
- * @constructor
- */
-export declare const Rectangle: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Sector.d.ts
===================================================================
--- node_modules/recharts/types/shape/Sector.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,96 +1,0 @@
-import * as React from 'react';
-import { SVGProps } from 'react';
-interface SectorProps {
-    className?: string;
-    /**
-     * The x-coordinate of center.
-     * @default 0
-     */
-    cx?: number;
-    /**
-     * The y-coordinate of center.
-     * @default 0
-     */
-    cy?: number;
-    /**
-     * The inner radius of the sector.
-     * @default 0
-     */
-    innerRadius?: number;
-    /**
-     * The outer radius of the sector.
-     * @default 0
-     */
-    outerRadius?: number;
-    /**
-     * The start angle of the sector.
-     * @default 0
-     */
-    startAngle?: number;
-    /**
-     * The end angle of the sector.
-     * @default 0
-     */
-    endAngle?: number;
-    /**
-     * The radius of corners.
-     * @default 0
-     */
-    cornerRadius?: number;
-    /**
-     * Whether force to render round corner when the angle of sector is very small
-     * @default false
-     */
-    forceCornerRadius?: boolean;
-    cornerIsExternal?: boolean;
-    /**
-     * The customized event handler of click on the sector
-     */
-    onClick?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousedown on the sector
-     */
-    onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseup on the sector
-     */
-    onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousemove on the sector
-     */
-    onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseover on the sector
-     */
-    onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseout on the sector
-     */
-    onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseenter on the sector
-     */
-    onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseleave on the sector
-     */
-    onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;
-}
-/**
- * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's
- * override the types here.
- */
-export type Props = Omit<SVGProps<SVGPathElement>, 'cx' | 'cy' | 'dangerouslySetInnerHTML'> & Partial<SectorProps>;
-export declare const defaultSectorProps: {
-    readonly cx: 0;
-    readonly cy: 0;
-    readonly innerRadius: 0;
-    readonly outerRadius: 0;
-    readonly startAngle: 0;
-    readonly endAngle: 0;
-    readonly cornerRadius: 0;
-    readonly forceCornerRadius: false;
-    readonly cornerIsExternal: false;
-};
-export declare const Sector: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/shape/Symbols.d.ts
===================================================================
--- node_modules/recharts/types/shape/Symbols.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { SymbolType as D3SymbolType } from 'victory-vendor/d3-shape';
-import { SymbolType } from '../util/types';
-type SizeType = 'area' | 'diameter';
-export interface InnerSymbolsProp {
-    className?: string;
-    type?: SymbolType;
-    cx?: number;
-    cy?: number;
-    size?: number;
-    sizeType?: SizeType;
-}
-export type SymbolsProps = Omit<SVGProps<SVGPathElement>, 'type'> & InnerSymbolsProp;
-/**
- * Renders a symbol from a set of predefined shapes.
- */
-export declare const Symbols: {
-    ({ type, size, sizeType, ...rest }: SymbolsProps): React.JSX.Element | null;
-    registerSymbol: (key: string, factory: D3SymbolType) => void;
-};
-export {};
Index: de_modules/recharts/types/shape/Trapezoid.d.ts
===================================================================
--- node_modules/recharts/types/shape/Trapezoid.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-/**
- * @fileOverview Rectangle
- */
-import * as React from 'react';
-import { SVGProps } from 'react';
-import { AnimationDuration, AnimationTiming } from '../util/types';
-interface TrapezoidProps {
-    className?: string;
-    /**
-     * The x-coordinate of top left point of the trapezoid.
-     * @default 0
-     */
-    x?: number;
-    /**
-     * The y-coordinate of top left point of the trapezoid.
-     * @default 0
-     */
-    y?: number;
-    /**
-     * Width of the upper horizontal side of the trapezoid in pixels.
-     * @default 0
-     */
-    upperWidth?: number;
-    /**
-     * Width of the lower horizontal side of the trapezoid in pixels.
-     * @default 0
-     */
-    lowerWidth?: number;
-    /**
-     * Height of the trapezoid in pixels.
-     * @default 0
-     */
-    height?: number;
-    /**
-     * If set to true, trapezoid will update and render with a gradual fade-in animation from left to right.
-     * @default false
-     */
-    isUpdateAnimationActive?: boolean;
-    animationBegin?: number;
-    animationDuration?: AnimationDuration;
-    animationEasing?: AnimationTiming;
-    /**
-     * The customized event handler of click on the trapezoid
-     */
-    onClick?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousedown on the trapezoid
-     */
-    onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseup on the trapezoid
-     */
-    onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mousemove on the trapezoid
-     */
-    onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseover on the trapezoid
-     */
-    onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseout on the trapezoid
-     */
-    onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseenter on the trapezoid
-     */
-    onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;
-    /**
-     * The customized event handler of mouseleave on the trapezoid
-     */
-    onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;
-}
-export type Props = SVGProps<SVGPathElement> & TrapezoidProps;
-export declare const defaultTrapezoidProps: {
-    readonly x: 0;
-    readonly y: 0;
-    readonly upperWidth: 0;
-    readonly lowerWidth: 0;
-    readonly height: 0;
-    readonly isUpdateAnimationActive: false;
-    readonly animationBegin: 0;
-    readonly animationDuration: 1500;
-    readonly animationEasing: "ease";
-};
-export declare const Trapezoid: React.FC<Props>;
-export {};
Index: de_modules/recharts/types/state/RechartsReduxContext.d.ts
===================================================================
--- node_modules/recharts/types/state/RechartsReduxContext.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import type { Action, Store } from '@reduxjs/toolkit';
-import type { Subscription } from 'react-redux';
-import type { CheckFrequency } from 'react-redux/es/hooks/useSelector';
-import type { RechartsRootState } from './store';
-export type RechartsReduxContextValue = {
-    store: Store<RechartsRootState, Action>;
-    subscription: Subscription;
-    stabilityCheck: CheckFrequency;
-    noopCheck: CheckFrequency;
-};
-/**
- * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores
- * in case they decide to install and use Recharts in another Redux app which is likely to happen.
- *
- * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context
- */
-export declare const RechartsReduxContext: import("react").Context<RechartsReduxContextValue | null>;
Index: de_modules/recharts/types/state/RechartsStoreProvider.d.ts
===================================================================
--- node_modules/recharts/types/state/RechartsStoreProvider.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-import { RechartsRootState } from './store';
-type RechartsStoreProviderProps = {
-    children: ReactNode;
-    preloadedState?: Partial<RechartsRootState>;
-    reduxStoreName?: string;
-};
-export declare function RechartsStoreProvider({ preloadedState, children, reduxStoreName }: RechartsStoreProviderProps): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
-export {};
Index: de_modules/recharts/types/state/ReportChartProps.d.ts
===================================================================
--- node_modules/recharts/types/state/ReportChartProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { UpdatableChartOptions } from './rootPropsSlice';
-export declare function ReportChartProps(props: UpdatableChartOptions): null;
Index: de_modules/recharts/types/state/ReportMainChartProps.d.ts
===================================================================
--- node_modules/recharts/types/state/ReportMainChartProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import { ReactNode } from 'react';
-import { LayoutType, Margin } from '../util/types';
-/**
- * "Main" props are props that are only accepted on the main chart,
- * as opposed to the small panorama chart inside a Brush.
- */
-type MainChartProps = {
-    layout: LayoutType;
-    margin: Partial<Margin>;
-};
-declare function ReportMainChartPropsImpl({ layout, margin }: MainChartProps): ReactNode;
-export declare const ReportMainChartProps: import("react").MemoExoticComponent<typeof ReportMainChartPropsImpl>;
-export {};
Index: de_modules/recharts/types/state/ReportPolarOptions.d.ts
===================================================================
--- node_modules/recharts/types/state/ReportPolarOptions.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { PolarChartOptions } from './polarOptionsSlice';
-export declare function ReportPolarOptions(props: PolarChartOptions): null;
Index: de_modules/recharts/types/state/SetGraphicalItem.d.ts
===================================================================
--- node_modules/recharts/types/state/SetGraphicalItem.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { CartesianGraphicalItemSettings, PolarGraphicalItemSettings } from './graphicalItemsSlice';
-export declare const SetCartesianGraphicalItem: import("react").MemoExoticComponent<(<T extends CartesianGraphicalItemSettings>(props: T) => null)>;
-export declare function SetPolarGraphicalItem(props: PolarGraphicalItemSettings): null;
Index: de_modules/recharts/types/state/SetLegendPayload.d.ts
===================================================================
--- node_modules/recharts/types/state/SetLegendPayload.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import type { LegendPayload } from '../component/DefaultLegendContent';
-export declare function SetLegendPayload({ legendPayload }: {
-    legendPayload: ReadonlyArray<LegendPayload>;
-}): null;
-export declare function SetPolarLegendPayload({ legendPayload }: {
-    legendPayload: ReadonlyArray<LegendPayload>;
-}): null;
Index: de_modules/recharts/types/state/SetTooltipEntrySettings.d.ts
===================================================================
--- node_modules/recharts/types/state/SetTooltipEntrySettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { TooltipPayloadConfiguration } from './tooltipSlice';
-export declare function SetTooltipEntrySettings({ tooltipEntrySettings, }: {
-    tooltipEntrySettings: TooltipPayloadConfiguration;
-}): null;
Index: de_modules/recharts/types/state/brushSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/brushSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { PayloadAction } from '@reduxjs/toolkit';
-import { Padding } from '../util/types';
-/**
- * From all Brush properties, only height has a default value and will always be defined.
- * Other properties are nullable and will be computed from offsets and margins if they are not set.
- */
-export type BrushSettings = {
-    x: number | undefined;
-    y: number | undefined;
-    width: number | undefined;
-    height: number;
-    padding: Padding;
-};
-export declare const brushSlice: import("@reduxjs/toolkit").Slice<BrushSettings, {
-    setBrushSettings(_state: BrushSettings, action: PayloadAction<BrushSettings | null>): BrushSettings;
-}, "brush">;
-export declare const setBrushSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<BrushSettings | null, "brush/setBrushSettings">;
-export declare const brushReducer: import("redux").Reducer<BrushSettings>;
Index: de_modules/recharts/types/state/cartesianAxisSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/cartesianAxisSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,125 +1,0 @@
-import { AxisDomain, AxisInterval, AxisTick, DataKey, EvaluatedAxisDomainType, ScaleType, TickProp } from '../util/types';
-import { TickFormatter } from '../cartesian/CartesianAxis';
-import type { AxisRange } from './selectors/axisSelectors';
-import { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
-/**
- * @inline
- */
-export type AxisId = string | number;
-export declare const defaultAxisId: AxisId;
-export type XAxisPadding = {
-    left?: number;
-    right?: number;
-} | 'gap' | 'no-gap';
-export type YAxisPadding = {
-    top?: number;
-    bottom?: number;
-} | 'gap' | 'no-gap';
-export type XAxisOrientation = 'top' | 'bottom';
-export type YAxisOrientation = 'left' | 'right';
-/**
- * Properties shared in X, Y, and Z axes.
- * User defined axis settings, coming from props.
- */
-export type BaseCartesianAxis = {
-    id: AxisId;
-    scale: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-    /**
-     * Before creating this object, evaluate the domain type based on the chart layout so that we have the 'auto' resolved.
-     */
-    type: EvaluatedAxisDomainType;
-    /**
-     * The axis functionality is severely restricted without a dataKey
-     * - but there is still something left, and the prop is optional
-     * so this can also be undefined even in real charts.
-     * There are no defaults.
-     */
-    dataKey: DataKey<any> | undefined;
-    unit: string | undefined;
-    name: string | undefined;
-    allowDuplicatedCategory: boolean;
-    allowDataOverflow: boolean;
-    reversed: boolean;
-    includeHidden: boolean;
-    domain: AxisDomain | undefined;
-};
-export type TicksSettings = {
-    allowDecimals: boolean;
-    /**
-     * We pass the suggested number of ticks to d3 https://d3js.org/d3-scale/linear#linear_ticks
-     * This number is a suggestion. d3 tries to accommodate it, but it might return more or less ticks than requested:
-     * > The specified count is only a hint; the scale may return more or fewer values depending on the domain.
-     *
-     * If undefined, then d3 decides the number of ticks on its own. The default in d3 is 10,
-     * but it can vary based on the domain size and other factors.
-     */
-    tickCount: number | undefined;
-    /**
-     * Ticks can be any type when the axis is the type of category
-     * Ticks must be numbers when the axis is the type of number
-     */
-    ticks: ReadonlyArray<AxisTick> | undefined;
-    tick: TickProp<any>;
-};
-/**
- * These are the external props, visible for users as they set them using our public API.
- * There is all sorts of internal computed things based on these, but they will come through selectors.
- *
- * Properties shared between X and Y axes
- */
-export type CartesianAxisSettings = BaseCartesianAxis & TicksSettings & {
-    interval: AxisInterval;
-    mirror: boolean;
-    minTickGap: number;
-    angle: number;
-    hide: boolean;
-    tickFormatter: TickFormatter | undefined;
-};
-export type XAxisSettings = CartesianAxisSettings & {
-    padding: XAxisPadding;
-    height: number;
-    orientation: XAxisOrientation;
-};
-export type YAxisWidth = number | 'auto';
-export type YAxisSettings = CartesianAxisSettings & {
-    padding: YAxisPadding;
-    width: YAxisWidth;
-    orientation: YAxisOrientation;
-    widthHistory?: number[];
-};
-/**
- * Z axis is special because it's never displayed. It controls the size of Scatter dots,
- * but it never displays ticks anywhere.
- */
-export type ZAxisSettings = BaseCartesianAxis & {
-    range: AxisRange;
-};
-type AxisMapState = {
-    xAxis: Record<AxisId, XAxisSettings>;
-    yAxis: Record<AxisId, YAxisSettings>;
-    zAxis: Record<AxisId, ZAxisSettings>;
-};
-export declare const addXAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: XAxisSettings], XAxisSettings, "cartesianAxis/addXAxis", never, unknown>, replaceXAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    prev: XAxisSettings;
-    next: XAxisSettings;
-}], {
-    prev: XAxisSettings;
-    next: XAxisSettings;
-}, "cartesianAxis/replaceXAxis", never, unknown>, removeXAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: XAxisSettings], XAxisSettings, "cartesianAxis/removeXAxis", never, unknown>, addYAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: YAxisSettings], YAxisSettings, "cartesianAxis/addYAxis", never, unknown>, replaceYAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    prev: YAxisSettings;
-    next: YAxisSettings;
-}], {
-    prev: YAxisSettings;
-    next: YAxisSettings;
-}, "cartesianAxis/replaceYAxis", never, unknown>, removeYAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: YAxisSettings], YAxisSettings, "cartesianAxis/removeYAxis", never, unknown>, addZAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ZAxisSettings], ZAxisSettings, "cartesianAxis/addZAxis", never, unknown>, replaceZAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    prev: ZAxisSettings;
-    next: ZAxisSettings;
-}], {
-    prev: ZAxisSettings;
-    next: ZAxisSettings;
-}, "cartesianAxis/replaceZAxis", never, unknown>, removeZAxis: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ZAxisSettings], ZAxisSettings, "cartesianAxis/removeZAxis", never, unknown>, updateYAxisWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
-    id: AxisId;
-    width: number;
-}, "cartesianAxis/updateYAxisWidth">;
-export declare const cartesianAxisReducer: import("redux").Reducer<AxisMapState>;
-export {};
Index: de_modules/recharts/types/state/chartDataSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/chartDataSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { BrushStartEndIndex } from '../context/brushUpdateContext';
-/**
- * This is the data that's coming through main chart `data` prop
- * Recharts is very flexible in what it accepts so the type is very flexible too.
- * This will typically be an object, and various components will provide various `dataKey`
- * that dictates how to pull data from that object.
- *
- * TL;DR: before dataKey
- *
- * @inline
- */
-export type ChartData = ReadonlyArray<unknown>;
-/**
- * So this is the same unknown type as ChartData but this is after the dataKey has been applied.
- * We still don't know what the type is - that depends on what exactly it was before the dataKey application,
- * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.
- *
- * TL;DR: ChartData after dataKey.
- */
-export type AppliedChartData = ReadonlyArray<{
-    value: unknown;
-}>;
-export type ChartDataState = {
-    chartData: ChartData | undefined;
-    /**
-     * store a copy of chart data after it has been processed by each chart's specific
-     * compute functions. TODO: add other charts besides Sankey
-     */
-    computedData: unknown | undefined;
-    /**
-     * Using Brush, users can choose where they want to zoom in.
-     * This is zero-based index of the starting data point.
-     */
-    dataStartIndex: number;
-    /**
-     * Using Brush, users can choose where they want to zoom in.
-     * This is zero-based index of the last data point.
-     */
-    dataEndIndex: number;
-};
-export declare const initialChartDataState: ChartDataState;
-export declare const setChartData: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ChartData | undefined, "chartData/setChartData">, setDataStartEndIndexes: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<BrushStartEndIndex>, "chartData/setDataStartEndIndexes">, setComputedData: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"chartData/setComputedData">;
-export declare const chartDataReducer: import("redux").Reducer<ChartDataState>;
Index: de_modules/recharts/types/state/errorBarSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/errorBarSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { ErrorBarDirection } from '../cartesian/ErrorBar';
-import { DataKey } from '../util/types';
-import { GraphicalItemId } from './graphicalItemsSlice';
-/**
- * ErrorBars have lot more settings but all the others are scoped to the component itself.
- * Only some of them required to be reported to the global store because XAxis and YAxis need to know
- * if the error bar is contributing to extending the axis domain.
- */
-export type ErrorBarsSettings = {
-    /**
-     * The direction is only used in Scatter chart, and decided based on ChartLayout in other charts.
-     */
-    direction: ErrorBarDirection;
-    /**
-     * The dataKey decides which property from the data will each individual ErrorBar use.
-     * If it so happens that the ErrorBar data are bigger than the axis domain,
-     * the error bar data will stretch the axis domain.
-     */
-    dataKey: DataKey<any>;
-};
-export type ErrorBarsState = Record<GraphicalItemId, ReadonlyArray<ErrorBarsSettings>>;
-export declare const addErrorBar: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
-    itemId: GraphicalItemId;
-    errorBar: ErrorBarsSettings;
-}, "errorBars/addErrorBar">, replaceErrorBar: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
-    itemId: GraphicalItemId;
-    prev: ErrorBarsSettings;
-    next: ErrorBarsSettings;
-}, "errorBars/replaceErrorBar">, removeErrorBar: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
-    itemId: GraphicalItemId;
-    errorBar: ErrorBarsSettings;
-}, "errorBars/removeErrorBar">;
-export declare const errorBarReducer: import("redux").Reducer<ErrorBarsState>;
Index: de_modules/recharts/types/state/externalEventsMiddleware.d.ts
===================================================================
--- node_modules/recharts/types/state/externalEventsMiddleware.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { SyntheticEvent } from 'react';
-import { CategoricalChartFunc } from '../chart/types';
-import { RechartsRootState } from './store';
-type ExternalEventActionPayload = {
-    reactEvent: SyntheticEvent;
-    handler: CategoricalChartFunc | undefined;
-};
-export declare const externalEventAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<ExternalEventActionPayload, string>;
-export declare const externalEventsMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<RechartsRootState, import("@reduxjs/toolkit").ThunkDispatch<RechartsRootState, unknown, import("redux").AnyAction>, unknown>;
-export {};
Index: de_modules/recharts/types/state/graphicalItemsSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/graphicalItemsSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-import { ChartData } from './chartDataSlice';
-import { AxisId } from './cartesianAxisSlice';
-import { DataKey } from '../util/types';
-import { LineSettings } from './types/LineSettings';
-import { ScatterSettings } from './types/ScatterSettings';
-import { AreaSettings } from './types/AreaSettings';
-import { BarSettings } from './types/BarSettings';
-import { RadialBarSettings } from './types/RadialBarSettings';
-import { PieSettings } from './types/PieSettings';
-import { RadarSettings } from './types/RadarSettings';
-/**
- * Unique ID of the graphical item.
- * This is used to identify the graphical item in the state and in the React tree.
- * This is required for every graphical item - it's either provided by the user or generated automatically.
- */
-export type GraphicalItemId = string;
-export interface GraphicalItemSettings {
-    /**
-     * Unique ID of the graphical item.
-     * This is used to identify the graphical item in the state and in the React tree.
-     * This is required for every graphical item - it's either provided by the user or generated automatically.
-     */
-    id: GraphicalItemId;
-    /**
-     * If the given graphical item has its own data array, it will appear here.
-     * If this is undefined, the data will be taken from the chart root prop.
-     */
-    data: ChartData | undefined;
-    dataKey: DataKey<any> | undefined;
-    /**
-     * Why not just stop pushing the graphical items to state when they are hidden?
-     * Well some components decide to continue showing them anyway.
-     * Legend for example will keep showing a record for hidden graphical items.
-     * Stacks for example will ignore them.
-     */
-    hide: boolean;
-}
-export interface BaseCartesianGraphicalItemSettings extends GraphicalItemSettings {
-    /**
-     * Each of the graphical items explicitly says which axis it uses;
-     * this property is optional for users but every graphical item must have a default,
-     * and it is required here.
-     */
-    xAxisId: AxisId;
-    yAxisId: AxisId;
-    zAxisId: AxisId;
-    /**
-     * Graphical items that are inside Brush panorama should not interact with the main area graphical items
-     * and vice versa.
-     */
-    isPanorama: boolean;
-}
-export type CartesianGraphicalItemSettings = AreaSettings | BarSettings | LineSettings | ScatterSettings;
-export interface BasePolarGraphicalItemSettings extends GraphicalItemSettings {
-    angleAxisId: AxisId;
-    radiusAxisId: AxisId;
-}
-export type PolarGraphicalItemSettings = PieSettings | RadarSettings | RadialBarSettings;
-export type GraphicalItemsState = {
-    /**
-     * This is an array of all cartesian graphical items and their settings.
-     * Graphical item is a visual representation of data on the chart.
-     * Some examples are: Line, Bar.
-     *
-     * The order is arbitrary; do not expect that indexes here will be the same as indexes elsewhere.
-     */
-    cartesianItems: ReadonlyArray<CartesianGraphicalItemSettings>;
-    /**
-     * This is an array of all polar graphical items and their settings.
-     * Graphical item is a visual representation of data on the chart.
-     * Some examples are: Pie, Radar, RadialBar
-     *
-     * The order is arbitrary; do not expect that indexes here will be the same as indexes elsewhere.
-     */
-    polarItems: ReadonlyArray<PolarGraphicalItemSettings>;
-};
-type ReplacePayload<T> = {
-    prev: T;
-    next: T;
-};
-export declare const addCartesianGraphicalItem: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: CartesianGraphicalItemSettings], CartesianGraphicalItemSettings, "graphicalItems/addCartesianGraphicalItem", never, unknown>, replaceCartesianGraphicalItem: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ReplacePayload<CartesianGraphicalItemSettings>], ReplacePayload<CartesianGraphicalItemSettings>, "graphicalItems/replaceCartesianGraphicalItem", never, unknown>, removeCartesianGraphicalItem: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: CartesianGraphicalItemSettings], CartesianGraphicalItemSettings, "graphicalItems/removeCartesianGraphicalItem", never, unknown>, addPolarGraphicalItem: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: PolarGraphicalItemSettings], PolarGraphicalItemSettings, "graphicalItems/addPolarGraphicalItem", never, unknown>, removePolarGraphicalItem: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: PolarGraphicalItemSettings], PolarGraphicalItemSettings, "graphicalItems/removePolarGraphicalItem", never, unknown>;
-export declare const graphicalItemsReducer: import("redux").Reducer<GraphicalItemsState>;
-export {};
Index: de_modules/recharts/types/state/hooks.d.ts
===================================================================
--- node_modules/recharts/types/state/hooks.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { type AppDispatch, type RechartsRootState } from './store';
-export declare const useAppDispatch: () => AppDispatch;
-/**
- * This is a recharts variant of `useSelector` from 'react-redux' package.
- *
- * The difference is that react-redux version will throw an Error when used outside of Redux context.
- *
- * This, recharts version, will return undefined instead.
- *
- * This is because we want to allow using our components outside the Chart wrapper,
- * and have people provide all props explicitly.
- *
- * If however they use the component inside a chart wrapper then those props become optional,
- * and we read them from Redux state instead.
- *
- * @param selector for pulling things out of Redux store; will not be called if the store is not accessible
- * @return whatever the selector returned; or undefined when outside of Redux store
- */
-export declare function useAppSelector<T>(selector: (state: RechartsRootState) => T): T | undefined;
Index: de_modules/recharts/types/state/keyboardEventsMiddleware.d.ts
===================================================================
--- node_modules/recharts/types/state/keyboardEventsMiddleware.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { RechartsRootState } from './store';
-export declare const keyDownAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>;
-export declare const focusAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"focus">;
-export declare const keyboardEventsMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<RechartsRootState, import("@reduxjs/toolkit").ThunkDispatch<RechartsRootState, unknown, import("redux").AnyAction>, unknown>;
Index: de_modules/recharts/types/state/layoutSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/layoutSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { LayoutType, Margin, Size } from '../util/types';
-type ChartLayoutState = {
-    layoutType: LayoutType;
-    width: number;
-    height: number;
-    margin: Margin;
-    /**
-     * How much is the chart zoomed in.
-     * Used for scaling the mouse coordinates to the chart coordinates.
-     */
-    scale: number;
-};
-export declare const setMargin: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<Margin>, "chartLayout/setMargin">, setLayout: import("@reduxjs/toolkit").ActionCreatorWithPayload<LayoutType, "chartLayout/setLayout">, setChartSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<Size, "chartLayout/setChartSize">, setScale: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "chartLayout/setScale">;
-export declare const chartLayoutReducer: import("redux").Reducer<ChartLayoutState>;
-export {};
Index: de_modules/recharts/types/state/legendSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/legendSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { LayoutType, Size } from '../util/types';
-import { HorizontalAlignmentType, LegendPayload, VerticalAlignmentType } from '../component/DefaultLegendContent';
-import type { LegendItemSorter } from '../component/Legend';
-export type LegendSettings = {
-    layout: LayoutType;
-    align: HorizontalAlignmentType;
-    verticalAlign: VerticalAlignmentType;
-    itemSorter: LegendItemSorter | null;
-};
-/**
- * The properties inside this state update independently of each other and quite often.
- * When selecting, never select the whole state because you are going to get
- * unnecessary re-renders. Select only the properties you need.
- *
- * This is why this state type is not exported - don't use it directly.
- */
-type LegendState = {
-    settings: LegendSettings;
-    size: Size;
-    /**
-     * This is a 2D array of LegendPayloads. The first dimension is for each graphical item.
-     * Some items may have multiple legend items, so the second dimension is for each legend item.
-     */
-    payload: ReadonlyArray<ReadonlyArray<LegendPayload>>;
-};
-export declare const setLegendSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<Size, "legend/setLegendSize">, setLegendSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<LegendSettings, "legend/setLegendSettings">, addLegendPayload: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: readonly LegendPayload[]], readonly LegendPayload[], "legend/addLegendPayload", never, unknown>, replaceLegendPayload: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    prev: ReadonlyArray<LegendPayload>;
-    next: ReadonlyArray<LegendPayload>;
-}], {
-    prev: ReadonlyArray<LegendPayload>;
-    next: ReadonlyArray<LegendPayload>;
-}, "legend/replaceLegendPayload", never, unknown>, removeLegendPayload: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: readonly LegendPayload[]], readonly LegendPayload[], "legend/removeLegendPayload", never, unknown>;
-export declare const legendReducer: import("redux").Reducer<LegendState>;
-export {};
Index: de_modules/recharts/types/state/mouseEventsMiddleware.d.ts
===================================================================
--- node_modules/recharts/types/state/mouseEventsMiddleware.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { RechartsRootState } from './store';
-import { MousePointer } from '../util/types';
-export declare const mouseClickAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<MousePointer, string>;
-export declare const mouseClickMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<RechartsRootState, import("@reduxjs/toolkit").ThunkDispatch<RechartsRootState, unknown, import("redux").AnyAction>, unknown>;
-export declare const mouseMoveAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<MousePointer, string>;
-export declare const mouseMoveMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<RechartsRootState, import("@reduxjs/toolkit").ThunkDispatch<RechartsRootState, unknown, import("redux").AnyAction>, unknown>;
Index: de_modules/recharts/types/state/optionsSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/optionsSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-import { TooltipEventType } from '../util/types';
-import { TooltipPayloadSearcher } from './tooltipSlice';
-/**
- * These chart options are decided internally, by Recharts,
- * and will not change during the lifetime of the chart.
- *
- * Changing these options can be done by swapping the root element
- * which will make a brand-new Redux store.
- *
- * If you want to store options that can be changed by the user,
- * use UpdatableChartOptions in rootPropsSlice.ts.
- */
-export type ChartOptions = {
-    chartName: string;
-    defaultTooltipEventType: TooltipEventType;
-    validateTooltipEventTypes?: ReadonlyArray<TooltipEventType>;
-    tooltipPayloadSearcher: TooltipPayloadSearcher;
-    /**
-     * We use this to identify which chart is sending events when synchronising.
-     * Without it, we can't tell the difference between an action that arrived from another chart
-     * and an action that was dispatched by the chart itself.
-     */
-    eventEmitter: symbol | undefined;
-};
-export declare const arrayTooltipSearcher: TooltipPayloadSearcher;
-export declare const optionsReducer: import("redux").Reducer<ChartOptions>;
-export declare const createEventEmitter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"options/createEventEmitter">;
Index: de_modules/recharts/types/state/polarAxisSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/polarAxisSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { AxisId, BaseCartesianAxis, TicksSettings } from './cartesianAxisSlice';
-export type RadiusAxisSettings = BaseCartesianAxis & TicksSettings;
-export type AngleAxisSettings = BaseCartesianAxis & TicksSettings;
-type PolarAxisState = {
-    radiusAxis: Record<AxisId, RadiusAxisSettings>;
-    angleAxis: Record<AxisId, AngleAxisSettings>;
-};
-export declare const addRadiusAxis: import("@reduxjs/toolkit").ActionCreatorWithPayload<RadiusAxisSettings, "polarAxis/addRadiusAxis">, removeRadiusAxis: import("@reduxjs/toolkit").ActionCreatorWithPayload<RadiusAxisSettings, "polarAxis/removeRadiusAxis">, addAngleAxis: import("@reduxjs/toolkit").ActionCreatorWithPayload<AngleAxisSettings, "polarAxis/addAngleAxis">, removeAngleAxis: import("@reduxjs/toolkit").ActionCreatorWithPayload<AngleAxisSettings, "polarAxis/removeAngleAxis">;
-export declare const polarAxisReducer: import("redux").Reducer<PolarAxisState>;
-export {};
Index: de_modules/recharts/types/state/polarOptionsSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/polarOptionsSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-export type PolarChartOptions = {
-    cx: number | string;
-    cy: number | string;
-    startAngle: number;
-    endAngle: number;
-    innerRadius: number | string;
-    outerRadius: number | string;
-};
-type PolarChartState = PolarChartOptions | null;
-export declare const updatePolarOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<PolarChartOptions, `${string}/updatePolarOptions`>;
-export declare const polarOptionsReducer: import("redux").Reducer<PolarChartState>;
-export {};
Index: de_modules/recharts/types/state/reduxDevtoolsJsonStringifyReplacer.d.ts
===================================================================
--- node_modules/recharts/types/state/reduxDevtoolsJsonStringifyReplacer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare function reduxDevtoolsJsonStringifyReplacer(key: string, value: unknown): unknown;
Index: de_modules/recharts/types/state/referenceElementsSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/referenceElementsSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { PayloadAction } from '@reduxjs/toolkit';
-import { WritableDraft } from 'immer';
-import { AxisId } from './cartesianAxisSlice';
-import { IfOverflow } from '../util/IfOverflow';
-import { ReferenceLineSegment } from '../cartesian/ReferenceLine';
-export type ReferenceElementSettings = {
-    yAxisId: AxisId;
-    xAxisId: AxisId;
-    ifOverflow: IfOverflow;
-};
-export type ReferenceDotSettings = ReferenceElementSettings & {
-    x: unknown;
-    y: unknown;
-    r: number;
-};
-export type ReferenceAreaSettings = ReferenceElementSettings & {
-    x1: unknown;
-    x2: unknown;
-    y1: unknown;
-    y2: unknown;
-};
-export type ReferenceLineSettings = ReferenceElementSettings & {
-    x: unknown;
-    y: unknown;
-    segment: ReferenceLineSegment | undefined;
-};
-type ReferenceElementState = {
-    dots: ReadonlyArray<ReferenceDotSettings>;
-    areas: ReadonlyArray<ReferenceAreaSettings>;
-    lines: ReadonlyArray<ReferenceLineSettings>;
-};
-export declare const referenceElementsSlice: import("@reduxjs/toolkit").Slice<ReferenceElementState, {
-    addDot: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceDotSettings>) => void;
-    removeDot: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceDotSettings>) => void;
-    addArea: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceAreaSettings>) => void;
-    removeArea: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceAreaSettings>) => void;
-    addLine: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceLineSettings>) => void;
-    removeLine: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceLineSettings>) => void;
-}, "referenceElements">;
-export declare const addDot: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceDotSettings, "referenceElements/addDot">, removeDot: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceDotSettings, "referenceElements/removeDot">, addArea: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceAreaSettings, "referenceElements/addArea">, removeArea: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceAreaSettings, "referenceElements/removeArea">, addLine: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceLineSettings, "referenceElements/addLine">, removeLine: import("@reduxjs/toolkit").ActionCreatorWithPayload<ReferenceLineSettings, "referenceElements/removeLine">;
-export declare const referenceElementsReducer: import("redux").Reducer<ReferenceElementState>;
-export {};
Index: de_modules/recharts/types/state/rootPropsSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/rootPropsSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { StackOffsetType } from '../util/types';
-import { SyncMethod } from '../synchronisation/types';
-import { BaseValue } from '../cartesian/Area';
-/**
- * These are chart options that users can choose - which means they can also
- * choose to change them which should trigger a re-render.
- */
-export type UpdatableChartOptions = {
-    accessibilityLayer: boolean;
-    barCategoryGap: number | string;
-    barGap: number | string;
-    barSize: string | number | undefined;
-    /**
-     * Useful for debugging which chart is which when synchronising.
-     * The className is also passed to the root element of the chart but that's done in the JSX, not through Redux.
-     */
-    className: string | undefined;
-    maxBarSize: number | undefined;
-    stackOffset: StackOffsetType;
-    /**
-     * Charts that share the same syncId will have their Tooltip and Brush synchronised.
-     */
-    syncId: number | string | undefined;
-    syncMethod: SyncMethod;
-    baseValue: BaseValue | undefined;
-    /**
-     * If false, stacked items will be rendered left to right. If true, stacked items will be rendered right to left.
-     * (Render direction affects SVG layering, not x position.)
-     */
-    reverseStackOrder: boolean;
-};
-export declare const initialState: UpdatableChartOptions;
-export declare const rootPropsReducer: import("redux").Reducer<UpdatableChartOptions>;
-export declare const updateOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdatableChartOptions, "rootProps/updateOptions">;
Index: de_modules/recharts/types/state/selectors/areaSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/areaSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { NullableCoordinate } from '../../util/types';
-import { RechartsRootState } from '../store';
-import { StackDataPoint } from '../../util/stacks/stackTypes';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export interface AreaPointItem extends NullableCoordinate {
-    x: number | null;
-    y: number | null;
-    value?: [number, number];
-    payload?: any;
-}
-export type ComputedArea = {
-    points: ReadonlyArray<AreaPointItem>;
-    baseLine: number | ReadonlyArray<AreaPointItem>;
-    isRange: boolean;
-};
-export declare const selectGraphicalItemStackedData: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => ReadonlyArray<StackDataPoint> | undefined;
-export declare const selectArea: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => ComputedArea | undefined;
Index: de_modules/recharts/types/state/selectors/arrayEqualityCheck.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/arrayEqualityCheck.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.
- * If both arrays are non-empty, it checks for reference equality.
- * @param a
- * @param b
- */
-export declare function emptyArraysAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean;
-/**
- * Checks if two arrays have the same contents in the same order.
- * @param a
- * @param b
- */
-export declare function arrayContentsAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean;
Index: de_modules/recharts/types/state/selectors/axisSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/axisSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,228 +1,0 @@
-import { AxisDomain, CartesianTickItem, CategoricalDomain, Coordinate, D3ScaleType, DataKey, LayoutType, NumberDomain, Size, StackOffsetType, TickItem } from '../../util/types';
-import { AxisId, BaseCartesianAxis, XAxisOrientation, XAxisSettings, YAxisOrientation, YAxisSettings, ZAxisSettings } from '../cartesianAxisSlice';
-import { RechartsRootState } from '../store';
-import { AppliedChartData, ChartData, ChartDataState } from '../chartDataSlice';
-import { BaseCartesianGraphicalItemSettings, BasePolarGraphicalItemSettings, CartesianGraphicalItemSettings, GraphicalItemSettings } from '../graphicalItemsSlice';
-import { ReferenceAreaSettings, ReferenceDotSettings, ReferenceElementSettings, ReferenceLineSettings } from '../referenceElementsSlice';
-import { AxisPropsForCartesianGridTicksGeneration } from '../../cartesian/CartesianGrid';
-import { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';
-import { AllStackGroups } from '../../util/stacks/stackTypes';
-import { DisplayedStackedData } from './combiners/combineDisplayedStackedData';
-import { DefinitelyStackedGraphicalItem } from '../types/StackedGraphicalItem';
-import { ErrorBarsSettings, ErrorBarsState } from '../errorBarSlice';
-import { AllAxisTypes, RenderableAxisType } from './selectTooltipAxisType';
-import { RechartsScale } from '../../util/scale/RechartsScale';
-export declare const defaultNumericDomain: AxisDomain;
-export type RenderableAxisSettings = XAxisSettings | YAxisSettings | AngleAxisSettings | RadiusAxisSettings;
-export type AllAxisSettings = XAxisSettings | YAxisSettings | ZAxisSettings | AngleAxisSettings | RadiusAxisSettings;
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-export declare const implicitXAxis: XAxisSettings;
-export declare const selectXAxisSettingsNoDefaults: (state: RechartsRootState, axisId: AxisId) => XAxisSettings | undefined;
-export declare const selectXAxisSettings: (state: RechartsRootState, axisId: AxisId) => XAxisSettings;
-/**
- * If an axis is not explicitly defined as an element,
- * we still need to render something in the chart and we need
- * some object to hold the domain and default settings.
- */
-export declare const implicitYAxis: YAxisSettings;
-export declare const selectYAxisSettingsNoDefaults: (state: RechartsRootState, axisId: AxisId) => YAxisSettings | undefined;
-export declare const selectYAxisSettings: (state: RechartsRootState, axisId: AxisId) => YAxisSettings;
-export declare const implicitZAxis: ZAxisSettings;
-export declare const selectZAxisSettings: (state: RechartsRootState, axisId: AxisId) => ZAxisSettings;
-export declare const selectBaseAxis: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => AllAxisSettings;
-/**
- * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.
- * @param state Root state
- * @param axisType xAxis | yAxis
- * @param axisId xAxisId | yAxisId
- * @returns axis settings object
- */
-export declare const selectRenderableAxisSettings: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId) => RenderableAxisSettings;
-/**
- * @param state RechartsRootState
- * @return boolean true if there is at least one Bar or RadialBar
- */
-export declare const selectHasBar: (state: RechartsRootState) => boolean;
-/**
- * Filters CartesianGraphicalItemSettings by the relevant axis ID
- * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'
- * @param axisId from props, defaults to 0
- *
- * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis
- */
-export declare function itemAxisPredicate(axisType: AllAxisTypes, axisId: AxisId): (item: BaseCartesianGraphicalItemSettings | BasePolarGraphicalItemSettings) => boolean;
-export declare const selectUnfilteredCartesianItems: (state: RechartsRootState) => ReadonlyArray<CartesianGraphicalItemSettings>;
-export declare const combineGraphicalItemsSettings: <T extends GraphicalItemSettings>(graphicalItems: ReadonlyArray<T>, axisSettings: BaseCartesianAxis, axisPredicate: (item: T) => boolean) => T[];
-export declare const selectCartesianItemsSettings: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<CartesianGraphicalItemSettings>;
-export declare const selectStackedCartesianItemsSettings: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<DefinitelyStackedGraphicalItem>;
-export declare const filterGraphicalNotStackedItems: (cartesianItems: ReadonlyArray<GraphicalItemSettings>) => ReadonlyArray<GraphicalItemSettings>;
-export declare const combineGraphicalItemsData: (cartesianItems: ReadonlyArray<GraphicalItemSettings>) => unknown[];
-/**
- * This is a "cheap" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.
- * Also does not apply dataKey yet.
- * @param state RechartsRootState
- * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey
- */
-export declare const selectCartesianGraphicalItemsData: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ChartData;
-export declare const combineDisplayedData: (graphicalItemsData: ChartData, { chartData, dataStartIndex, dataEndIndex }: ChartDataState) => ChartData;
-/**
- * This selector will return all data there is in the chart: graphical items, chart root, all together.
- * Useful for figuring out an axis domain (because that needs to know of everything),
- * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).
- *
- * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.
- */
-export declare const selectDisplayedData: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => ChartData;
-export declare const combineAppliedValues: (data: ChartData, axisSettings: BaseCartesianAxis, items: ReadonlyArray<GraphicalItemSettings>) => AppliedChartData;
-/**
- * This selector will return all values with the appropriate dataKey applied on them.
- * Which dataKey is appropriate depends on where it is defined.
- *
- * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.
- */
-export declare const selectAllAppliedValues: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => AppliedChartData;
-export declare function isErrorBarRelevantForAxisType(axisType: AllAxisTypes, errorBar: ErrorBarsSettings): boolean;
-export type AppliedChartDataWithErrorDomain = {
-    /**
-     * This is the value after the dataKey has been applied. Presumably a number? But no guarantees.
-     */
-    value: unknown;
-    /**
-     * This is the error domain, if any, for the current value.
-     * This may be either x or y direction, whatever is applicable.
-     * Assumption is that we're looking at this data from the point of view of a single axis,
-     * and that axis dictates the relevant direction.
-     */
-    errorDomain: ReadonlyArray<number> | undefined;
-};
-/**
- * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application
- * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.
- * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.
- * @return either undefined or an array of ErrorValue
- */
-export declare function getErrorDomainByDataKey(entry: unknown, appliedValue: unknown, relevantErrorBars: ReadonlyArray<ErrorBarsSettings> | undefined): ReadonlyArray<number>;
-export declare const selectTooltipAxis: (state: RechartsRootState) => RenderableAxisSettings;
-export declare const selectTooltipAxisDataKey: (state: RechartsRootState) => DataKey<any> | undefined;
-export declare const selectDisplayedStackedData: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => DisplayedStackedData;
-export declare const combineStackGroups: (displayedData: DisplayedStackedData, items: ReadonlyArray<DefinitelyStackedGraphicalItem>, stackOffsetType: StackOffsetType, reverseStackOrder: boolean) => AllStackGroups;
-/**
- * Stack groups are groups of graphical items that stack on each other.
- * Stack is a function of axis type (X, Y), axis ID, and stack ID.
- * Graphical items that do not have a stack ID are not going to be present in stack groups.
- */
-export declare const selectStackGroups: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => AllStackGroups | undefined;
-export declare const combineDomainOfStackGroups: (stackGroups: AllStackGroups | undefined, { dataStartIndex, dataEndIndex }: ChartDataState, axisType: AllAxisTypes, domainFromUserPreference: NumberDomain | undefined) => NumberDomain | undefined;
-export declare const getDomainDefinition: (axisSettings: AllAxisSettings) => AxisDomain;
-export declare const selectDomainDefinition: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => AxisDomain;
-/**
- * Under certain circumstances, we can determine the domain without looking at the data at all.
- * This is the case when the domain is explicitly specified as numbers, or when it is specified
- * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.
- *
- * In that case, this function will return the domain, otherwise it returns undefined.
- *
- * This is an optimization to avoid unnecessary data processing.
- * @param state
- * @param axisType
- * @param axisId
- * @param isPanorama
- */
-export declare const selectDomainFromUserPreference: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => NumberDomain | undefined;
-export declare const selectDomainOfStackGroups: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => NumberDomain | undefined;
-export declare const selectAllErrorBarSettings: (state: RechartsRootState) => ErrorBarsState;
-export declare const mergeDomains: (...domains: ReadonlyArray<ReadonlyArray<number> | undefined>) => NumberDomain | undefined;
-export declare const combineDomainOfAllAppliedNumericalValuesIncludingErrorValues: (data: ChartData, axisSettings: BaseCartesianAxis, items: ReadonlyArray<GraphicalItemSettings>, errorBars: ErrorBarsState, axisType: AllAxisTypes) => NumberDomain | undefined;
-export declare const selectReferenceDots: (state: RechartsRootState) => ReadonlyArray<ReferenceDotSettings>;
-export declare const filterReferenceElements: <T extends ReferenceElementSettings>(elements: ReadonlyArray<T>, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<T>;
-export declare const selectReferenceDotsByAxis: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<ReferenceDotSettings>;
-export declare const selectReferenceAreas: (state: RechartsRootState) => ReadonlyArray<ReferenceAreaSettings>;
-export declare const selectReferenceAreasByAxis: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<ReferenceAreaSettings>;
-export declare const selectReferenceLines: (state: RechartsRootState) => ReadonlyArray<ReferenceLineSettings>;
-export declare const selectReferenceLinesByAxis: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<ReferenceLineSettings>;
-export declare const combineDotsDomain: (dots: ReadonlyArray<ReferenceDotSettings> | undefined, axisType: RenderableAxisType) => NumberDomain | undefined;
-export declare const combineAreasDomain: (areas: ReadonlyArray<ReferenceAreaSettings> | undefined, axisType: RenderableAxisType) => NumberDomain | undefined;
-export declare const combineLinesDomain: (lines: ReadonlyArray<ReferenceLineSettings> | undefined, axisType: RenderableAxisType) => NumberDomain | undefined;
-export declare const combineNumericalDomain: (axisSettings: BaseCartesianAxis, domainDefinition: AxisDomain | undefined, domainFromUserPreference: NumberDomain | undefined, domainOfStackGroups: NumberDomain | undefined, dataAndErrorBarsDomain: NumberDomain | undefined, referenceElementsDomain: NumberDomain | undefined, layout: LayoutType, axisType: AllAxisTypes) => NumberDomain | undefined;
-export declare const selectNumericalDomain: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => NumberDomain | undefined;
-export declare const combineAxisDomain: (axisSettings: BaseCartesianAxis, layout: LayoutType, displayedData: ChartData | undefined, allAppliedValues: AppliedChartData, stackOffsetType: StackOffsetType, axisType: AllAxisTypes, numericalDomain: NumberDomain | undefined) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectAxisDomain: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => NumberDomain | CategoricalDomain | undefined;
-export declare const combineRealScaleType: (axisConfig: BaseCartesianAxis | undefined, hasBar: boolean, chartType: string) => D3ScaleType | undefined;
-export declare const selectRealScaleType: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => D3ScaleType | undefined;
-export declare function combineScaleFunction(axis: BaseCartesianAxis, realScaleType: D3ScaleType | undefined, axisDomain: NumberDomain | CategoricalDomain | undefined, axisRange: AxisRange | undefined): RechartsScale | undefined;
-export declare const combineNiceTicks: (axisDomain: NumberDomain | CategoricalDomain | undefined, axisSettings: RenderableAxisSettings, realScaleType: string | undefined) => ReadonlyArray<number> | undefined;
-export declare const selectNiceTicks: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => ReadonlyArray<number> | undefined;
-export declare const combineAxisDomainWithNiceTicks: (axisSettings: BaseCartesianAxis, domain: NumberDomain | CategoricalDomain | undefined, niceTicks: ReadonlyArray<number> | undefined, axisType: RenderableAxisType) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectAxisDomainIncludingNiceTicks: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => NumberDomain | CategoricalDomain | undefined;
-/**
- * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).
- * Ignores domain provided by user and only considers domain from data.
- *
- * The result is a number between 0 and 1.
- */
-export declare const selectSmallestDistanceBetweenValues: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => number | undefined;
-export declare const selectCalculatedXAxisPadding: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => number;
-export declare const selectCalculatedYAxisPadding: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => number;
-export declare const combineXAxisRange: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => AxisRange | undefined;
-export type AxisRange = readonly [number, number];
-export declare const combineYAxisRange: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => AxisRange | undefined;
-export declare const selectAxisRange: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => AxisRange | undefined;
-export declare const selectAxisRangeWithReverse: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => AxisRange | undefined;
-export declare const selectAxisScale: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => RechartsScale | undefined;
-export declare const selectErrorBarsSettings: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => ReadonlyArray<ErrorBarsSettings>;
-export declare const selectXAxisSize: (state: RechartsRootState, xAxisId: AxisId) => Size;
-type AxisOffsetSteps = Record<AxisId, number>;
-export declare const selectAllXAxesOffsetSteps: (state: RechartsRootState, orientation: XAxisOrientation, mirror: boolean) => AxisOffsetSteps;
-export declare const selectAllYAxesOffsetSteps: (state: RechartsRootState, orientation: YAxisOrientation, mirror: boolean) => AxisOffsetSteps;
-export declare const selectXAxisPosition: (state: RechartsRootState, axisId: AxisId) => Coordinate | undefined;
-export declare const selectYAxisPosition: (state: RechartsRootState, axisId: AxisId) => Coordinate | undefined;
-export declare const selectYAxisSize: (state: RechartsRootState, yAxisId: AxisId) => Size;
-export declare const selectCartesianAxisSize: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId) => number | undefined;
-export declare const combineDuplicateDomain: (chartLayout: LayoutType, appliedValues: AppliedChartData, axis: BaseCartesianAxis, axisType: AllAxisTypes) => ReadonlyArray<unknown> | undefined;
-export declare const selectDuplicateDomain: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId, isPanorama: boolean) => ReadonlyArray<unknown> | undefined;
-export declare const combineCategoricalDomain: (layout: LayoutType, appliedValues: AppliedChartData, axis: RenderableAxisSettings, axisType: RenderableAxisType) => ReadonlyArray<unknown> | undefined;
-export declare const selectCategoricalDomain: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => ReadonlyArray<unknown> | undefined;
-export declare const selectAxisPropsNeededForCartesianGridTicksGenerator: (state: RechartsRootState, axisType: 'xAxis' | 'yAxis', axisId: AxisId, isPanorama: boolean) => AxisPropsForCartesianGridTicksGeneration | undefined;
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export declare const combineAxisTicks: (layout: LayoutType, axis: RenderableAxisSettings, realScaleType: D3ScaleType | undefined, scale: RechartsScale | undefined, niceTicks: ReadonlyArray<number> | undefined, axisRange: AxisRange | undefined, duplicateDomain: ReadonlyArray<unknown> | undefined, categoricalDomain: ReadonlyArray<unknown> | undefined, axisType: RenderableAxisType) => ReadonlyArray<TickItem> | undefined;
-export declare const selectTicksOfAxis: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => ReadonlyArray<CartesianTickItem> | undefined;
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export declare const combineGraphicalItemTicks: (layout: LayoutType, axis: RenderableAxisSettings, scale: RechartsScale | undefined, axisRange: AxisRange | undefined, duplicateDomain: ReadonlyArray<unknown> | undefined, categoricalDomain: ReadonlyArray<unknown> | undefined, axisType: RenderableAxisType) => TickItem[] | undefined;
-export declare const selectTicksOfGraphicalItem: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => TickItem[] | undefined;
-/**
- * This is the internal representation of an axis along with its scale function.
- * Here we have already computed the scale function for the axis,
- * and replaced the union type of scale (string | function) with just the function type.
- */
-export type BaseAxisWithScale = Omit<BaseCartesianAxis, 'scale'> & {
-    scale: RechartsScale;
-};
-export declare const selectAxisWithScale: (state: RechartsRootState, axisType: RenderableAxisType, axisId: AxisId, isPanorama: boolean) => BaseAxisWithScale | undefined;
-export type ZAxisWithScale = Omit<ZAxisSettings, 'scale'> & {
-    scale: RechartsScale;
-};
-export declare const selectZAxisWithScale: (state: RechartsRootState, _axisType: 'zAxis', axisId: AxisId, isPanorama: false) => ZAxisWithScale | undefined;
-/**
- * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.
- */
-export type AxisDirection = 'left-to-right' | 'right-to-left' | 'top-to-bottom' | 'bottom-to-top';
-export declare const selectChartDirection: (state: RechartsRootState) => AxisDirection | undefined;
-export {};
Index: de_modules/recharts/types/state/selectors/barSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/barSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { ReactElement } from 'react';
-import { Series } from 'victory-vendor/d3-shape';
-import { RechartsRootState } from '../store';
-import { BarPositionPosition, StackId } from '../../util/ChartUtils';
-import { DataKey } from '../../util/types';
-import { BarRectangleItem } from '../../cartesian/Bar';
-import { StackDataPoint, StackSeriesIdentifier } from '../../util/stacks/stackTypes';
-import { BarSettings } from '../types/BarSettings';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-import { BarCategory } from './combiners/combineBarSizeList';
-export declare const selectMaxBarSize: (_state: RechartsRootState, id: GraphicalItemId) => number | undefined;
-export declare const selectAllVisibleBars: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => ReadonlyArray<BarSettings>;
-export type SizeList = ReadonlyArray<BarCategory>;
-export declare const selectBarCartesianAxisSize: (state: RechartsRootState, id: GraphicalItemId) => number | undefined;
-export declare const selectBarSizeList: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => SizeList;
-export declare const selectBarBandSize: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => number;
-export declare const selectAxisBandSize: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => number | undefined;
-export type BarWithPosition = {
-    stackId: StackId | undefined;
-    /**
-     * List of dataKeys of items stacked at this position.
-     * All of these Bars are either sharing the same stackId,
-     * or this is an array with one Bar because it has no stackId defined.
-     *
-     * This structure limits us to having one dataKey only once per stack which I think is reasonable.
-     * People who want to have the same data twice can duplicate their data to have two distinct dataKeys.
-     */
-    dataKeys: ReadonlyArray<DataKey<any>>;
-    /**
-     * Position of this stack in absolute pixels measured from the start of the chart
-     */
-    position: BarPositionPosition;
-};
-export declare const selectAllBarPositions: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => ReadonlyArray<BarWithPosition> | undefined;
-export declare const selectBarPosition: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => BarPositionPosition | undefined;
-export declare const selectStackedDataOfItem: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => Series<StackDataPoint, StackSeriesIdentifier> | undefined;
-export declare const selectBarRectangles: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean, cells: ReadonlyArray<ReactElement> | undefined) => ReadonlyArray<BarRectangleItem> | undefined;
Index: de_modules/recharts/types/state/selectors/barStackSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/barStackSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import type { RechartsRootState } from '../store';
-import type { NormalizedStackId } from '../../util/ChartUtils';
-import type { BarSettings } from '../types/BarSettings';
-export declare const selectAllBarsInStack: (state: RechartsRootState, stackId: NormalizedStackId, isPanorama: boolean) => ReadonlyArray<BarSettings>;
-export type BarStackItem = {
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-};
-/**
- * Takes two rectangles and returns a new rectangle that encompasses both.
- * It takes the minimum x and y, and the maximum width and height.
- * It handles overlapping rectangles, and rectangles with a gap between them.
- * @param rect1
- * @param rect2
- */
-export declare const expandRectangle: (rect1: BarStackItem | undefined, rect2: BarStackItem | undefined) => BarStackItem | undefined;
-export declare const selectStackRects: (state: RechartsRootState, stackId: NormalizedStackId, isPanorama: boolean) => ReadonlyArray<BarStackItem | undefined>;
Index: de_modules/recharts/types/state/selectors/brushSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/brushSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { RechartsRootState } from '../store';
-import { BrushSettings } from '../brushSlice';
-export declare const selectBrushSettings: (state: RechartsRootState) => BrushSettings;
-export type BrushDimensions = {
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-};
-export declare const selectBrushDimensions: (state: RechartsRootState) => BrushDimensions;
Index: de_modules/recharts/types/state/selectors/combiners/combineActiveLabel.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineActiveLabel.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { TickItem } from '../../../util/types';
-import { TooltipIndex } from '../../tooltipSlice';
-import { ActiveLabel } from '../../../synchronisation/types';
-export declare const combineActiveLabel: (tooltipTicks: ReadonlyArray<TickItem> | undefined, activeIndex: TooltipIndex) => ActiveLabel;
Index: de_modules/recharts/types/state/selectors/combiners/combineActiveTooltipIndex.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineActiveTooltipIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { TooltipIndex, TooltipInteractionState } from '../../tooltipSlice';
-import { ChartData } from '../../chartDataSlice';
-import { DataKey, CategoricalDomain, NumberDomain } from '../../../util/types';
-export declare const combineActiveTooltipIndex: (tooltipInteraction: TooltipInteractionState | undefined, chartData: ChartData, axisDataKey?: DataKey<unknown>, domain?: NumberDomain | CategoricalDomain) => TooltipIndex | null;
Index: de_modules/recharts/types/state/selectors/combiners/combineAllBarPositions.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineAllBarPositions.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { BarWithPosition, SizeList } from '../barSelectors';
-export declare const combineAllBarPositions: (sizeList: SizeList, globalMaxBarSize: number | undefined, barGap: string | number, barCategoryGap: string | number, barBandSize: number, bandSize: number | undefined, childMaxBarSize: number | undefined) => ReadonlyArray<BarWithPosition> | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineAxisRangeWithReverse.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineAxisRangeWithReverse.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { BaseCartesianAxis } from '../../cartesianAxisSlice';
-import { AxisRange } from '../axisSelectors';
-export declare const combineAxisRangeWithReverse: (axisSettings: BaseCartesianAxis | undefined, axisRange: AxisRange | undefined) => AxisRange | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineBarPosition.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineBarPosition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';
-import { BarPositionPosition } from '../../../util/ChartUtils';
-import { BarWithPosition } from '../barSelectors';
-export declare const combineBarPosition: (allBarPositions: ReadonlyArray<BarWithPosition> | undefined, barSettings: MaybeStackedGraphicalItem | undefined) => BarPositionPosition | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineBarSizeList.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineBarSizeList.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';
-import { StackId } from '../../../util/ChartUtils';
-import { SizeList } from '../barSelectors';
-import { DataKey } from '../../../util/types';
-export declare const combineBarSizeList: (allBars: ReadonlyArray<MaybeStackedGraphicalItem>, globalSize: string | number | undefined, totalSize: number | undefined) => SizeList;
-export type BarCategory = {
-    stackId: StackId | undefined;
-    /**
-     * List of dataKeys of items stacked at this position.
-     * All of these Bars are either sharing the same stackId,
-     * or this is an array with one Bar because it has no stackId defined.
-     *
-     * This structure limits us to having one dataKey only once per stack which I think is reasonable.
-     * People who want to have the same data twice can duplicate their data to have two distinct dataKeys.
-     */
-    dataKeys: ReadonlyArray<DataKey<any>>;
-    /**
-     * Width (in horizontal chart) or height (in vertical chart) of this stack of items
-     */
-    barSize: number | undefined;
-};
Index: de_modules/recharts/types/state/selectors/combiners/combineCheckedDomain.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineCheckedDomain.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { CategoricalDomain, NumberDomain } from '../../../util/types';
-/**
- * This function validates and transforms the axis domain so that it is safe to use in the provided scale.
- */
-export declare const combineCheckedDomain: (realScaleType: string | undefined, axisDomain: NumberDomain | CategoricalDomain | undefined) => NumberDomain | CategoricalDomain | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineCoordinateForDefaultIndex.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineCoordinateForDefaultIndex.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { ChartOffsetInternal, Coordinate, LayoutType, TickItem } from '../../../util/types';
-import { TooltipIndex, TooltipPayloadConfiguration } from '../../tooltipSlice';
-export declare const combineCoordinateForDefaultIndex: (width: number, height: number, layout: LayoutType, offset: ChartOffsetInternal, tooltipTicks: ReadonlyArray<TickItem> | undefined, defaultIndex: TooltipIndex | undefined, tooltipConfigurations: ReadonlyArray<TooltipPayloadConfiguration>) => Coordinate | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineDisplayedStackedData.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineDisplayedStackedData.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-import { ChartDataState } from '../../chartDataSlice';
-import { BaseCartesianAxis } from '../../cartesianAxisSlice';
-import { StackSeriesIdentifier } from '../../../util/stacks/stackTypes';
-import { DefinitelyStackedGraphicalItem } from '../../types/StackedGraphicalItem';
-/**
- * In a stacked chart, each graphical item has its own data. That data could be either:
- * - defined on the chart root, in which case the item gets a unique dataKey
- * - or defined on the item itself, in which case multiple items can share the same dataKey
- *
- * That means we cannot use the dataKey as a unique identifier for the item.
- *
- * This type represents a single data point in a stacked chart, where each key is a series identifier
- * and the value is the numeric value for that series using the numerical axis dataKey.
- */
-export type DisplayedStackedDataPoint = Record<StackSeriesIdentifier, number>;
-export type DisplayedStackedData = ReadonlyArray<DisplayedStackedDataPoint>;
-export declare function combineDisplayedStackedData(stackedGraphicalItems: ReadonlyArray<DefinitelyStackedGraphicalItem>, { chartData }: ChartDataState, tooltipAxisSettings: BaseCartesianAxis): DisplayedStackedData;
Index: de_modules/recharts/types/state/selectors/combiners/combineStackedData.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineStackedData.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { AllStackGroups, StackSeries } from '../../../util/stacks/stackTypes';
-import { MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';
-export declare const combineStackedData: (stackGroups: AllStackGroups | undefined, barSettings: MaybeStackedGraphicalItem | undefined) => StackSeries | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineTooltipInteractionState.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineTooltipInteractionState.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { TooltipIndex, TooltipInteractionState, TooltipState } from '../../tooltipSlice';
-import { TooltipEventType } from '../../../util/types';
-import { TooltipTrigger } from '../../../chart/types';
-export declare const combineTooltipInteractionState: (tooltipState: TooltipState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => TooltipInteractionState;
Index: de_modules/recharts/types/state/selectors/combiners/combineTooltipPayload.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineTooltipPayload.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { TooltipIndex, TooltipPayload, TooltipPayloadConfiguration, TooltipPayloadSearcher } from '../../tooltipSlice';
-import { ChartDataState } from '../../chartDataSlice';
-import { DataKey, TooltipEventType } from '../../../util/types';
-import { ActiveLabel } from '../../../synchronisation/types';
-export declare const combineTooltipPayload: (tooltipPayloadConfigurations: ReadonlyArray<TooltipPayloadConfiguration>, activeIndex: TooltipIndex, chartDataState: ChartDataState, tooltipAxisDataKey: DataKey<any> | undefined, activeLabel: ActiveLabel, tooltipPayloadSearcher: TooltipPayloadSearcher | undefined, tooltipEventType: TooltipEventType | undefined) => TooltipPayload | undefined;
Index: de_modules/recharts/types/state/selectors/combiners/combineTooltipPayloadConfigurations.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/combiners/combineTooltipPayloadConfigurations.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { TooltipIndex, TooltipPayloadConfiguration, TooltipState } from '../../tooltipSlice';
-import { TooltipEventType } from '../../../util/types';
-import { TooltipTrigger } from '../../../chart/types';
-export declare const combineTooltipPayloadConfigurations: (tooltipState: TooltipState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => ReadonlyArray<TooltipPayloadConfiguration>;
Index: de_modules/recharts/types/state/selectors/containerSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/containerSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { RechartsRootState } from '../store';
-import { Margin } from '../../util/types';
-export declare const selectChartWidth: (state: RechartsRootState) => number;
-export declare const selectChartHeight: (state: RechartsRootState) => number;
-export declare const selectContainerScale: (state: RechartsRootState) => number;
-export declare const selectMargin: (state: RechartsRootState) => Margin;
Index: de_modules/recharts/types/state/selectors/dataSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/dataSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { RechartsRootState } from '../store';
-import { ChartDataState } from '../chartDataSlice';
-/**
- * This selector always returns the data with the indexes set by a Brush.
- * Trouble is, that might or might not be what you want.
- *
- * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush
- * - even if the Brush is active, the panorama inside the Brush should show the full range of data.
- *
- * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama
- *
- * @param state RechartsRootState
- * @returns data defined on the chart root element, such as BarChart or ScatterChart
- */
-export declare const selectChartDataWithIndexes: (state: RechartsRootState) => ChartDataState;
-/**
- * This selector will always return the full range of data, ignoring the indexes set by a Brush.
- * Useful for when you want to render the full range of data, even if a Brush is active.
- * For example: in the Brush panorama, in Legend, in Tooltip.
- */
-export declare const selectChartDataAndAlwaysIgnoreIndexes: (state: RechartsRootState) => ChartDataState;
-export declare const selectChartDataWithIndexesIfNotInPanoramaPosition4: (state: RechartsRootState, _unused1: unknown, _unused2: unknown, isPanorama: boolean) => ChartDataState;
-export declare const selectChartDataWithIndexesIfNotInPanoramaPosition3: (state: RechartsRootState, _unused1: unknown, isPanorama: boolean) => ChartDataState;
Index: de_modules/recharts/types/state/selectors/funnelSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/funnelSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { ReactElement } from 'react';
-import { FunnelTrapezoidItem } from '../../cartesian/Funnel';
-import { ChartData } from '../chartDataSlice';
-import { RechartsRootState } from '../store';
-import { DataKey, TooltipType } from '../../util/types';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export type ResolvedFunnelSettings = {
-    dataKey: DataKey<any>;
-    data: ChartData | undefined;
-    nameKey: DataKey<any>;
-    tooltipType?: TooltipType;
-    lastShapeType?: 'triangle' | 'rectangle';
-    reversed?: boolean;
-    customWidth?: string | number;
-    cells: ReadonlyArray<ReactElement>;
-    presentationProps: Record<string, any> | null;
-    id: GraphicalItemId;
-};
-export declare const selectFunnelTrapezoids: (state: RechartsRootState, funnelSettings: ResolvedFunnelSettings) => ReadonlyArray<FunnelTrapezoidItem>;
Index: de_modules/recharts/types/state/selectors/graphicalItemSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/graphicalItemSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { RechartsRootState } from '../store';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-import { AxisId } from '../cartesianAxisSlice';
-export declare function selectXAxisIdFromGraphicalItemId(state: RechartsRootState, id: GraphicalItemId): AxisId;
-export declare function selectYAxisIdFromGraphicalItemId(state: RechartsRootState, id: GraphicalItemId): AxisId;
Index: de_modules/recharts/types/state/selectors/legendSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/legendSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { RechartsRootState } from '../store';
-import { LegendSettings } from '../legendSlice';
-import { LegendPayload } from '../../component/DefaultLegendContent';
-import { Size } from '../../util/types';
-export declare const selectLegendSettings: (state: RechartsRootState) => LegendSettings;
-export declare const selectLegendSize: (state: RechartsRootState) => Size;
-export declare const selectLegendPayload: (state: RechartsRootState) => ReadonlyArray<LegendPayload>;
Index: de_modules/recharts/types/state/selectors/lineSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/lineSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { LinePointItem } from '../../cartesian/Line';
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export declare const selectLinePoints: (state: RechartsRootState, xAxisId: AxisId, yAxisId: AxisId, isPanorama: boolean, id: GraphicalItemId) => ReadonlyArray<LinePointItem> | undefined;
Index: de_modules/recharts/types/state/selectors/numberDomainEqualityCheck.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/numberDomainEqualityCheck.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { NumberDomain } from '../../util/types';
-export declare const numberDomainEqualityCheck: (a: NumberDomain | undefined, b: NumberDomain | undefined) => boolean;
Index: de_modules/recharts/types/state/selectors/pickAxisId.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/pickAxisId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-export declare const pickAxisId: (_state: RechartsRootState, _axisType: unknown, axisId: AxisId) => AxisId;
Index: de_modules/recharts/types/state/selectors/pickAxisType.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/pickAxisType.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-import { RechartsRootState } from '../store';
-export declare const pickAxisType: <T>(_state: RechartsRootState, axisType: T) => T;
Index: de_modules/recharts/types/state/selectors/pieSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/pieSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { ReactElement } from 'react';
-import { PieSectorDataItem } from '../../polar/Pie';
-import { RechartsRootState } from '../store';
-import { ChartData } from '../chartDataSlice';
-import type { LegendPayload } from '../../component/DefaultLegendContent';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export declare const selectDisplayedData: (state: RechartsRootState, id: GraphicalItemId, cells: ReadonlyArray<ReactElement> | undefined) => ChartData | undefined;
-export declare const selectPieLegend: (state: RechartsRootState, id: GraphicalItemId, cells: ReadonlyArray<ReactElement> | undefined) => ReadonlyArray<LegendPayload> | undefined;
-export declare const selectPieSectors: (state: RechartsRootState, id: GraphicalItemId, cells: ReadonlyArray<ReactElement> | undefined) => ReadonlyArray<PieSectorDataItem> | undefined;
Index: de_modules/recharts/types/state/selectors/polarAxisSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/polarAxisSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';
-import { PolarChartOptions } from '../polarOptionsSlice';
-import { AxisDomainTypeInput, PolarViewBoxRequired } from '../../util/types';
-import { AxisRange } from './axisSelectors';
-export declare const implicitAngleAxis: Omit<AngleAxisSettings, 'type'> & {
-    type: AxisDomainTypeInput;
-};
-export declare const implicitRadiusAxis: Omit<RadiusAxisSettings, 'type'> & {
-    type: AxisDomainTypeInput;
-};
-export declare const selectAngleAxis: (state: RechartsRootState, angleAxisId: AxisId | undefined) => AngleAxisSettings;
-export declare const selectRadiusAxis: (state: RechartsRootState, radiusAxisId: AxisId) => RadiusAxisSettings;
-export declare const selectPolarOptions: (state: RechartsRootState) => PolarChartOptions | null;
-export declare const selectMaxRadius: (state: RechartsRootState) => number;
-export declare const selectOuterRadius: (state: RechartsRootState) => number | undefined;
-export declare const selectAngleAxisRange: (state: RechartsRootState) => AxisRange;
-export declare const selectAngleAxisRangeWithReversed: (state: RechartsRootState, angleAxisId: AxisId) => AxisRange | undefined;
-export declare const selectRadiusAxisRange: (state: RechartsRootState, radiusAxisId: AxisId) => AxisRange | undefined;
-export declare const selectRadiusAxisRangeWithReversed: (state: RechartsRootState, radiusAxisId: AxisId) => AxisRange | undefined;
-export declare const selectPolarViewBox: (state: RechartsRootState) => PolarViewBoxRequired | undefined;
Index: de_modules/recharts/types/state/selectors/polarGridSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/polarGridSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-export type PolarAngles = Array<number>;
-export type PolarRadius = Array<number>;
-export declare const selectPolarGridAngles: (state: RechartsRootState, angleAxisId: AxisId) => PolarAngles | undefined;
-export declare const selectPolarGridRadii: (state: RechartsRootState, radiusAxisId: AxisId) => PolarRadius | undefined;
Index: de_modules/recharts/types/state/selectors/polarScaleSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/polarScaleSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { CartesianTickItem } from '../../util/types';
-import { RechartsScale } from '../../util/scale/RechartsScale';
-export declare const selectPolarAxis: (state: RechartsRootState, axisType: "angleAxis" | "radiusAxis", axisId: AxisId) => import("../polarAxisSlice").RadiusAxisSettings;
-export declare const selectPolarAxisScale: (state: RechartsRootState, axisType: 'angleAxis' | 'radiusAxis', polarAxisId: AxisId) => RechartsScale | undefined;
-export declare const selectPolarCategoricalDomain: (state: RechartsRootState, axisType: 'angleAxis' | 'radiusAxis', polarAxisId: AxisId) => ReadonlyArray<unknown> | undefined;
-export declare const selectPolarAxisTicks: (state: RechartsRootState, axisType: 'angleAxis' | 'radiusAxis', polarAxisId: AxisId, isPanorama: boolean) => ReadonlyArray<CartesianTickItem> | undefined;
-export declare const selectPolarAngleAxisTicks: (state: RechartsRootState, axisType: 'angleAxis', polarAxisId: AxisId, isPanorama: boolean) => ReadonlyArray<CartesianTickItem> | undefined;
-export declare const selectPolarGraphicalItemAxisTicks: (state: RechartsRootState, axisType: 'angleAxis' | 'radiusAxis', polarAxisId: AxisId, isPanorama: boolean) => ReadonlyArray<CartesianTickItem> | undefined;
Index: de_modules/recharts/types/state/selectors/polarSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/polarSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-import { AppliedChartData, ChartData } from '../chartDataSlice';
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { AppliedChartDataWithErrorDomain } from './axisSelectors';
-import { PolarGraphicalItemSettings } from '../graphicalItemsSlice';
-import { CategoricalDomain, NumberDomain } from '../../util/types';
-export type PolarAxisType = 'angleAxis' | 'radiusAxis';
-export declare const selectUnfilteredPolarItems: (state: RechartsRootState) => readonly PolarGraphicalItemSettings[];
-export declare const selectPolarItemsSettings: (state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => ReadonlyArray<PolarGraphicalItemSettings>;
-export declare const selectPolarDisplayedData: (state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => ChartData;
-export declare const selectPolarAppliedValues: (state: RechartsRootState, axisType: PolarAxisType, axisId: AxisId) => AppliedChartData;
-export declare const selectAllPolarAppliedNumericalValues: (state: RechartsRootState, axisType: PolarAxisType, axisId: AxisId) => ReadonlyArray<AppliedChartDataWithErrorDomain>;
-export declare const selectPolarAxisDomain: (state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectPolarNiceTicks: ((state: RechartsRootState, axisType: "radiusAxis" | "angleAxis", polarAxisId: AxisId) => readonly number[] | undefined) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: NumberDomain | CategoricalDomain | undefined, resultFuncArgs_1: import("./axisSelectors").RenderableAxisSettings, resultFuncArgs_2: import("../../util/types").D3ScaleType | undefined) => readonly number[] | undefined;
-    memoizedResultFunc: ((resultFuncArgs_0: NumberDomain | CategoricalDomain | undefined, resultFuncArgs_1: import("./axisSelectors").RenderableAxisSettings, resultFuncArgs_2: import("../../util/types").D3ScaleType | undefined) => readonly number[] | undefined) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => readonly number[] | undefined;
-    dependencies: [(state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => NumberDomain | CategoricalDomain | undefined, (state: RechartsRootState, axisType: import("./selectTooltipAxisType").RenderableAxisType, axisId: AxisId) => import("./axisSelectors").RenderableAxisSettings, (state: RechartsRootState, axisType: import("./selectTooltipAxisType").AllAxisTypes, axisId: AxisId) => import("../../util/types").D3ScaleType | undefined];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
-export declare const selectPolarAxisDomainIncludingNiceTicks: (state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectPolarAxisCheckedDomain: (state: RechartsRootState, axisType: PolarAxisType, polarAxisId: AxisId) => NumberDomain | CategoricalDomain | undefined;
Index: de_modules/recharts/types/state/selectors/radarSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/radarSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AngleAxisForRadar, RadarComposedData } from '../../polar/Radar';
-import { BaseAxisWithScale } from './axisSelectors';
-import { AxisId } from '../cartesianAxisSlice';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export declare const selectRadiusAxisForBandSize: (state: RechartsRootState, radiusAxisId: AxisId) => BaseAxisWithScale | undefined;
-export declare const selectAngleAxisForBandSize: (state: RechartsRootState, _radiusAxisId: AxisId, angleAxisId: AxisId) => BaseAxisWithScale | undefined;
-export declare const selectAngleAxisWithScaleAndViewport: (state: RechartsRootState, _radiusAxisId: AxisId, angleAxisId: AxisId) => AngleAxisForRadar | undefined;
-export declare const selectRadarPoints: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, isPanorama: boolean, radarId: GraphicalItemId) => RadarComposedData | undefined;
Index: de_modules/recharts/types/state/selectors/radialBarSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/radialBarSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { ReactElement } from 'react';
-import { RadialBarDataItem } from '../../polar/RadialBar';
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { LegendType, TickItem } from '../../util/types';
-import { BaseAxisWithScale } from './axisSelectors';
-import { BarPositionPosition } from '../../util/ChartUtils';
-import { BarWithPosition, SizeList } from './barSelectors';
-import { LegendPayload } from '../../component/DefaultLegendContent';
-import { RadialBarSettings } from '../types/RadialBarSettings';
-export declare const selectRadiusAxisWithScale: (state: RechartsRootState, radiusAxisId: AxisId) => BaseAxisWithScale | undefined;
-export declare const selectRadiusAxisTicks: (state: RechartsRootState, radiusAxisId: AxisId) => ReadonlyArray<TickItem> | undefined;
-export declare const selectAngleAxisWithScale: (state: RechartsRootState, _radiusAxisId: AxisId, angleAxisId: AxisId) => BaseAxisWithScale | undefined;
-export declare const selectBandSizeOfPolarAxis: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId) => number | undefined;
-export declare const selectBaseValue: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId) => number | unknown;
-export declare const pickMaxBarSize: (_state: RechartsRootState, _radiusAxisId: AxisId, _angleAxisId: AxisId, radialBarSettings: RadialBarSettings, _cells: ReadonlyArray<ReactElement> | undefined) => number | undefined;
-export declare const selectPolarBarSizeList: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<ReactElement> | undefined) => SizeList;
-export declare const selectPolarBarBandSize: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<ReactElement> | undefined) => number;
-export declare const selectAllPolarBarPositions: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<ReactElement> | undefined) => ReadonlyArray<BarWithPosition> | undefined;
-export declare const selectPolarBarPosition: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<ReactElement> | undefined) => BarPositionPosition | undefined;
-export declare const selectRadialBarSectors: (state: RechartsRootState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<ReactElement> | undefined) => ReadonlyArray<RadialBarDataItem>;
-export declare const selectRadialBarLegendPayload: (state: RechartsRootState, legendType: LegendType | undefined) => ReadonlyArray<LegendPayload>;
Index: de_modules/recharts/types/state/selectors/rootPropsSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/rootPropsSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { RechartsRootState } from '../store';
-import { StackOffsetType } from '../../util/types';
-import { SyncMethod } from '../../synchronisation/types';
-import { BaseValue } from '../../cartesian/Area';
-export declare const selectRootMaxBarSize: (state: RechartsRootState) => number | undefined;
-export declare const selectBarGap: (state: RechartsRootState) => string | number;
-export declare const selectBarCategoryGap: (state: RechartsRootState) => string | number;
-export declare const selectRootBarSize: (state: RechartsRootState) => string | number | undefined;
-export declare const selectStackOffsetType: (state: RechartsRootState) => StackOffsetType;
-export declare const selectReverseStackOrder: (state: RechartsRootState) => boolean;
-export declare const selectChartName: (state: RechartsRootState) => string;
-export declare const selectSyncId: (state: RechartsRootState) => string | number | undefined;
-export declare const selectSyncMethod: (state: RechartsRootState) => SyncMethod;
-export declare const selectEventEmitter: (state: RechartsRootState) => symbol | undefined;
-export declare const selectChartBaseValue: (state: RechartsRootState) => BaseValue | undefined;
Index: de_modules/recharts/types/state/selectors/scatterSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/scatterSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { ReactElement } from 'react';
-import { ScatterPointItem } from '../../cartesian/Scatter';
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export declare const selectScatterPoints: (state: RechartsRootState, xAxisId: AxisId, yAxisId: AxisId, zAxisId: AxisId, id: GraphicalItemId, cells: ReadonlyArray<ReactElement> | undefined, isPanorama: boolean) => ReadonlyArray<ScatterPointItem> | undefined;
Index: de_modules/recharts/types/state/selectors/selectActivePropsFromChartPointer.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectActivePropsFromChartPointer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { RechartsRootState } from '../store';
-import { ActiveTooltipProps } from '../tooltipSlice';
-import { ChartPointer } from '../../util/types';
-export declare const selectActivePropsFromChartPointer: (state: RechartsRootState, chartPointer: ChartPointer) => ActiveTooltipProps | undefined;
Index: de_modules/recharts/types/state/selectors/selectAllAxes.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectAllAxes.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { RechartsRootState } from '../store';
-import { XAxisSettings, YAxisSettings } from '../cartesianAxisSlice';
-export declare const selectAllXAxes: (state: RechartsRootState) => ReadonlyArray<XAxisSettings>;
-export declare const selectAllYAxes: (state: RechartsRootState) => ReadonlyArray<YAxisSettings>;
Index: de_modules/recharts/types/state/selectors/selectChartOffset.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectChartOffset.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { ChartOffsetInternal } from '../../util/types';
-import { ChartOffset } from '../../types';
-export declare const selectChartOffset: ((state: import("../store").RechartsRootState) => ChartOffset) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: ChartOffsetInternal) => ChartOffset;
-    memoizedResultFunc: ((resultFuncArgs_0: ChartOffsetInternal) => ChartOffset) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => ChartOffset;
-    dependencies: [(state: import("../store").RechartsRootState) => ChartOffsetInternal];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
Index: de_modules/recharts/types/state/selectors/selectChartOffsetInternal.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectChartOffsetInternal.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-import { ChartOffsetInternal } from '../../util/types';
-import { RechartsRootState } from '../store';
-export declare const selectBrushHeight: (state: RechartsRootState) => number;
-/**
- * For internal use only.
- *
- * @param root state
- * @return ChartOffsetInternal
- */
-export declare const selectChartOffsetInternal: (state: RechartsRootState) => ChartOffsetInternal;
-export declare const selectChartViewBox: ((state: RechartsRootState) => Required<import("../../util/types").CartesianViewBox>) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: ChartOffsetInternal) => Required<import("../../util/types").CartesianViewBox>;
-    memoizedResultFunc: ((resultFuncArgs_0: ChartOffsetInternal) => Required<import("../../util/types").CartesianViewBox>) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => Required<import("../../util/types").CartesianViewBox>;
-    dependencies: [(state: RechartsRootState) => ChartOffsetInternal];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
-export declare const selectAxisViewBox: ((state: RechartsRootState) => Required<import("../../util/types").CartesianViewBox>) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: number, resultFuncArgs_1: number) => Required<import("../../util/types").CartesianViewBox>;
-    memoizedResultFunc: ((resultFuncArgs_0: number, resultFuncArgs_1: number) => Required<import("../../util/types").CartesianViewBox>) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => Required<import("../../util/types").CartesianViewBox>;
-    dependencies: [(state: RechartsRootState) => number, (state: RechartsRootState) => number];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
Index: de_modules/recharts/types/state/selectors/selectPlotArea.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectPlotArea.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-export declare const selectPlotArea: ((state: import("../store").RechartsRootState) => {
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-} | undefined) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: import("../..").ChartOffset, resultFuncArgs_1: number, resultFuncArgs_2: number) => {
-        x: number;
-        y: number;
-        width: number;
-        height: number;
-    } | undefined;
-    memoizedResultFunc: ((resultFuncArgs_0: import("../..").ChartOffset, resultFuncArgs_1: number, resultFuncArgs_2: number) => {
-        x: number;
-        y: number;
-        width: number;
-        height: number;
-    } | undefined) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => {
-        x: number;
-        y: number;
-        width: number;
-        height: number;
-    } | undefined;
-    dependencies: [((state: import("../store").RechartsRootState) => import("../..").ChartOffset) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    } & {
-        resultFunc: (resultFuncArgs_0: import("../../util/types").ChartOffsetInternal) => import("../..").ChartOffset;
-        memoizedResultFunc: ((resultFuncArgs_0: import("../../util/types").ChartOffsetInternal) => import("../..").ChartOffset) & {
-            clearCache: () => void;
-            resultsCount: () => number;
-            resetResultsCount: () => void;
-        };
-        lastResult: () => import("../..").ChartOffset;
-        dependencies: [(state: import("../store").RechartsRootState) => import("../../util/types").ChartOffsetInternal];
-        recomputations: () => number;
-        resetRecomputations: () => void;
-        dependencyRecomputations: () => number;
-        resetDependencyRecomputations: () => void;
-    } & {
-        argsMemoize: typeof import("reselect").weakMapMemoize;
-        memoize: typeof import("reselect").weakMapMemoize;
-    }, (state: import("../store").RechartsRootState) => number, (state: import("../store").RechartsRootState) => number];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
Index: de_modules/recharts/types/state/selectors/selectTooltipAxisId.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipAxisId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisId } from '../cartesianAxisSlice';
-export declare const selectTooltipAxisId: (state: RechartsRootState) => AxisId;
Index: de_modules/recharts/types/state/selectors/selectTooltipAxisType.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipAxisType.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { RechartsRootState } from '../store';
-/**
- * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings
- */
-export type AllAxisTypes = 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis';
-/**
- * Z axis is never displayed and so it lacks ticks and tick settings.
- */
-export type RenderableAxisType = 'xAxis' | 'yAxis' | 'angleAxis' | 'radiusAxis';
-export declare const selectTooltipAxisType: (state: RechartsRootState) => RenderableAxisType;
Index: de_modules/recharts/types/state/selectors/selectTooltipEventType.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipEventType.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { RechartsRootState } from '../store';
-import { TooltipEventType } from '../../util/types';
-import { SharedTooltipSettings } from '../tooltipSlice';
-export declare const selectDefaultTooltipEventType: (state: RechartsRootState) => TooltipEventType;
-export declare const selectValidateTooltipEventTypes: (state: RechartsRootState) => ReadonlyArray<TooltipEventType> | undefined;
-export declare function combineTooltipEventType(shared: SharedTooltipSettings, defaultTooltipEventType: TooltipEventType, validateTooltipEventTypes: ReadonlyArray<TooltipEventType> | undefined): TooltipEventType;
-export declare function selectTooltipEventType(state: RechartsRootState, shared: SharedTooltipSettings): TooltipEventType;
-export declare function useTooltipEventType(shared: SharedTooltipSettings): TooltipEventType | undefined;
Index: de_modules/recharts/types/state/selectors/selectTooltipPayloadSearcher.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipPayloadSearcher.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../store';
-import { TooltipPayloadSearcher } from '../tooltipSlice';
-export declare const selectTooltipPayloadSearcher: (state: RechartsRootState) => TooltipPayloadSearcher;
Index: de_modules/recharts/types/state/selectors/selectTooltipSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../store';
-import { TooltipSettingsState } from '../tooltipSlice';
-export declare const selectTooltipSettings: (state: RechartsRootState) => TooltipSettingsState;
Index: de_modules/recharts/types/state/selectors/selectTooltipState.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectTooltipState.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../store';
-import { TooltipState } from '../tooltipSlice';
-export declare const selectTooltipState: (state: RechartsRootState) => TooltipState;
Index: de_modules/recharts/types/state/selectors/selectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/selectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-import { RechartsRootState } from '../store';
-import { ActiveTooltipProps, TooltipIndex, TooltipInteractionState, TooltipPayload, TooltipPayloadConfiguration } from '../tooltipSlice';
-import { AxisType, CartesianLayout, ChartOffsetInternal, ChartPointer, Coordinate, DataKey, PolarLayout, PolarViewBoxRequired, TickItem, TooltipEventType } from '../../util/types';
-import { TooltipTrigger } from '../../chart/types';
-import { AxisRange } from './axisSelectors';
-export declare const useChartName: () => string | undefined;
-export declare const selectOrderedTooltipTicks: ((state: RechartsRootState) => TickItem[]) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: readonly TickItem[] | undefined) => TickItem[];
-    memoizedResultFunc: ((resultFuncArgs_0: readonly TickItem[] | undefined) => TickItem[]) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => TickItem[];
-    dependencies: [(state: RechartsRootState) => ReadonlyArray<TickItem> | undefined];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
-export declare const selectTooltipInteractionState: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => TooltipInteractionState;
-export declare const selectActiveIndex: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => TooltipIndex | null;
-export declare const selectTooltipDataKey: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger) => DataKey<any> | undefined;
-export declare const selectTooltipPayloadConfigurations: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => ReadonlyArray<TooltipPayloadConfiguration>;
-export declare const selectCoordinateForDefaultIndex: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => Coordinate | undefined;
-export declare const selectActiveCoordinate: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => Coordinate | undefined;
-export declare const selectActiveLabel: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => string | number | undefined;
-export declare const selectTooltipPayload: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => TooltipPayload | undefined;
-export declare const selectIsTooltipActive: (state: RechartsRootState, tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, defaultIndex: TooltipIndex | undefined) => {
-    isActive: boolean;
-    activeIndex: TooltipIndex | null;
-};
-export declare const combineActiveProps: (chartEvent: ChartPointer | undefined, layout: CartesianLayout | PolarLayout | undefined, polarViewBox: PolarViewBoxRequired | undefined, tooltipAxisType: AxisType | undefined, tooltipAxisRange: AxisRange | undefined, tooltipTicks: ReadonlyArray<TickItem> | undefined, orderedTooltipTicks: ReadonlyArray<TickItem> | undefined, offset: ChartOffsetInternal) => ActiveTooltipProps | undefined;
Index: de_modules/recharts/types/state/selectors/tooltipSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/tooltipSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,81 +1,0 @@
-import { RechartsRootState } from '../store';
-import { AxisRange } from './axisSelectors';
-import { CategoricalDomain, Coordinate, D3ScaleType, DataKey, NumberDomain, TickItem } from '../../util/types';
-import { ChartData } from '../chartDataSlice';
-import { CartesianGraphicalItemSettings, GraphicalItemSettings, PolarGraphicalItemSettings } from '../graphicalItemsSlice';
-import { TooltipIndex, TooltipPayload } from '../tooltipSlice';
-import { ActiveLabel } from '../../synchronisation/types';
-import { RechartsScale } from '../../util/scale/RechartsScale';
-export declare const selectTooltipAxisRealScaleType: (state: RechartsRootState) => D3ScaleType | undefined;
-export declare const selectAllUnfilteredGraphicalItems: (state: RechartsRootState) => ReadonlyArray<CartesianGraphicalItemSettings | PolarGraphicalItemSettings>;
-export declare const selectAllGraphicalItemsSettings: (state: RechartsRootState) => ReadonlyArray<GraphicalItemSettings>;
-export declare const selectTooltipGraphicalItemsData: ((state: RechartsRootState) => unknown[]) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: readonly GraphicalItemSettings[]) => unknown[];
-    memoizedResultFunc: ((resultFuncArgs_0: readonly GraphicalItemSettings[]) => unknown[]) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => unknown[];
-    dependencies: [(state: RechartsRootState) => ReadonlyArray<GraphicalItemSettings>];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
-/**
- * Data for tooltip always use the data with indexes set by a Brush,
- * and never accept the isPanorama flag:
- * because Tooltip never displays inside the panorama anyway
- * so we don't need to worry what would happen there.
- */
-export declare const selectTooltipDisplayedData: (state: RechartsRootState) => ChartData;
-export declare const selectTooltipAxisDomain: (state: RechartsRootState) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectTooltipAxisDomainIncludingNiceTicks: (state: RechartsRootState) => NumberDomain | CategoricalDomain | undefined;
-export declare const selectTooltipAxisRangeWithReverse: (state: RechartsRootState) => AxisRange | undefined;
-export declare const selectTooltipAxisScale: (state: RechartsRootState) => RechartsScale | undefined;
-export declare const selectTooltipCategoricalDomain: (state: RechartsRootState) => ReadonlyArray<unknown> | undefined;
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export declare const selectTooltipAxisTicks: (state: RechartsRootState) => ReadonlyArray<TickItem> | undefined;
-export declare const selectActiveTooltipIndex: (state: RechartsRootState) => TooltipIndex | null;
-export declare const selectActiveLabel: (state: RechartsRootState) => ActiveLabel;
-export declare const selectActiveTooltipDataKey: (state: RechartsRootState) => DataKey<any> | undefined;
-export declare const selectActiveTooltipGraphicalItemId: (state: RechartsRootState) => string | undefined;
-export declare const selectActiveTooltipCoordinate: (state: RechartsRootState) => Coordinate | undefined;
-export declare const selectIsTooltipActive: (state: RechartsRootState) => boolean;
-export declare const selectActiveTooltipPayload: (state: RechartsRootState) => TooltipPayload | undefined;
-export declare const selectActiveTooltipDataPoints: ((state: RechartsRootState) => any[] | undefined) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: TooltipPayload | undefined) => any[] | undefined;
-    memoizedResultFunc: ((resultFuncArgs_0: TooltipPayload | undefined) => any[] | undefined) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => any[] | undefined;
-    dependencies: [(state: RechartsRootState) => TooltipPayload | undefined];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
Index: de_modules/recharts/types/state/selectors/touchSelectors.d.ts
===================================================================
--- node_modules/recharts/types/state/selectors/touchSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { RechartsRootState } from '../store';
-import { TooltipIndex } from '../tooltipSlice';
-import { Coordinate } from '../../util/types';
-import { GraphicalItemId } from '../graphicalItemsSlice';
-export declare const selectTooltipCoordinate: (state: RechartsRootState, tooltipIndex: TooltipIndex, graphicalItemId: GraphicalItemId) => Coordinate | undefined;
Index: de_modules/recharts/types/state/store.d.ts
===================================================================
--- node_modules/recharts/types/state/store.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { Action, Dispatch, Store } from '@reduxjs/toolkit';
-import { optionsReducer } from './optionsSlice';
-import { tooltipReducer } from './tooltipSlice';
-import { chartDataReducer } from './chartDataSlice';
-import { chartLayoutReducer } from './layoutSlice';
-import { cartesianAxisReducer } from './cartesianAxisSlice';
-import { graphicalItemsReducer } from './graphicalItemsSlice';
-import { referenceElementsReducer } from './referenceElementsSlice';
-import { brushReducer } from './brushSlice';
-import { legendReducer } from './legendSlice';
-import { rootPropsReducer } from './rootPropsSlice';
-import { polarAxisReducer } from './polarAxisSlice';
-import { polarOptionsReducer } from './polarOptionsSlice';
-import { errorBarReducer } from './errorBarSlice';
-import { zIndexReducer } from './zIndexSlice';
-export type RechartsRootState = {
-    brush: ReturnType<typeof brushReducer>;
-    cartesianAxis: ReturnType<typeof cartesianAxisReducer>;
-    chartData: ReturnType<typeof chartDataReducer>;
-    errorBars: ReturnType<typeof errorBarReducer>;
-    graphicalItems: ReturnType<typeof graphicalItemsReducer>;
-    layout: ReturnType<typeof chartLayoutReducer>;
-    legend: ReturnType<typeof legendReducer>;
-    options: ReturnType<typeof optionsReducer>;
-    polarAxis: ReturnType<typeof polarAxisReducer>;
-    polarOptions: ReturnType<typeof polarOptionsReducer>;
-    referenceElements: ReturnType<typeof referenceElementsReducer>;
-    rootProps: ReturnType<typeof rootPropsReducer>;
-    tooltip: ReturnType<typeof tooltipReducer>;
-    zIndex: ReturnType<typeof zIndexReducer>;
-};
-export declare const createRechartsStore: (preloadedState?: Partial<RechartsRootState>, chartName?: string) => Store<RechartsRootState>;
-export type AppDispatch = Dispatch<Action>;
Index: de_modules/recharts/types/state/tooltipSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/tooltipSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,314 +1,0 @@
-import { TooltipTrigger } from '../chart/types';
-import type { NameType, Payload, ValueType } from '../component/DefaultTooltipContent';
-import { CartesianViewBoxRequired, Coordinate, DataKey, PolarCoordinate } from '../util/types';
-import { AxisId } from './cartesianAxisSlice';
-import { GraphicalItemId } from './graphicalItemsSlice';
-/**
- * One Tooltip can display multiple TooltipPayloadEntries at a time.
- */
-export type TooltipPayloadEntry = Payload<ValueType, NameType>;
-/**
- * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.
- * The dataKey can either be defined on the graphical element (like Line, or Bar)
- * or on the tooltip itself.
- *
- * The data can be defined in the chart element, or in the graphical item.
- *
- * So this type is all the settings, other than the data + dataKey complications.
- */
-export type TooltipEntrySettings = Omit<TooltipPayloadEntry, 'payload' | 'value'> & {
-    nameKey: DataKey<any> | undefined;
-};
-/**
- * This is what Tooltip renders.
- */
-export type TooltipPayload = ReadonlyArray<TooltipPayloadEntry>;
-/**
- * null means no active index
- * string means: whichever index from the chart data it is.
- * Different charts have different requirements on data shapes,
- * and are also responsible for providing a function that will accept this index
- * and return data.
- */
-export type TooltipIndex = string | null;
-/**
- * Different items have different data shapes so the state has no opinion on what the data shape should be;
- * the only requirement is that the chart also provides a searcher function
- * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.
- */
-export type TooltipPayloadSearcher<T = unknown> = (data: T, index: TooltipIndex, computedData?: unknown, nameKey?: DataKey<any>) => T | undefined;
-export type TooltipPayloadConfiguration = {
-    settings: TooltipEntrySettings;
-    /**
-     * This is the data that the item has provided, all of it mixed together.
-     * Later as user is interacting with the chart, a redux selector will use this
-     * data + activeIndex, pass it to the TooltipPayloadSearcher, and render the result in a Tooltip.
-     *
-     * Because we have no controls over which data shape the graphical item provides,
-     * this is typed as unknown, and it is the responsibility of the selector
-     * to know what to do with it.
-     *
-     * We can't have better typing here because different graphical items
-     * may provide different data shapes. For example someone may decide to put Area element
-     * in a Sankey chart.
-     */
-    dataDefinedOnItem: unknown;
-    /**
-     * Opportunity for the graphical item to define its own Tooltip coordinates
-     * instead of relying on the axes.
-     *
-     * If undefined, then Recharts will use mouse interaction coordinates, or the axis coordinates,
-     * with some defaults (like, top/left of the chart).
-     *
-     * Unlike the chart data which can be nested, the positions are expected to be flat array or record.
-     * They however should reuse the same tooltip index format as the chart data.
-     */
-    getPosition: (tooltipIndex: NonNullable<TooltipIndex>) => Coordinate | undefined;
-};
-export type ActiveTooltipProps = {
-    activeIndex: TooltipIndex;
-    activeCoordinate: Coordinate | undefined;
-};
-/**
- * So this informs the "tooltip event type". Tooltip event type can be either "axis" or "item"
- * and it is used for two things:
- * 1. Sets the active area
- * 2. Sets the background and cursor highlights
- *
- * Some charts only allow to have one type of tooltip event type, some allow both.
- * Those charts that allow both will have one default, and the "shared" prop will be used to switch between them.
- * Undefined means "use the chart default".
- *
- * Charts that only allow one tooltip event type, will ignore the shared prop.
- */
-export type SharedTooltipSettings = boolean | undefined;
-export type TooltipSettingsState = {
-    shared: SharedTooltipSettings;
-    trigger: TooltipTrigger;
-    axisId: AxisId;
-    /**
-     * The `active` prop, despite its name, does not mean "always active".
-     * It means "active after user interaction has ended".
-     * By default, the tooltip is only active while the user is hovering over the chart.
-     * With `active=true`, the tooltip will remain visible after mouse leave event.
-     *
-     * If you want to see the "active before user interaction" settings, see `defaultIndex`.
-     *
-     * Undefined means "depends on user interactions".
-     */
-    active: boolean | undefined;
-    /**
-     * If you want to set the tooltip to be active before user interaction, you can set this property.
-     */
-    defaultIndex: TooltipIndex | undefined;
-};
-/**
- * A generic state for user interaction with the chart.
- * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.
- *
- * Each of the interaction states is represented as TooltipInteractionState,
- * and then the selectors and Tooltip will decide which of the interaction states to use.
- */
-export type TooltipInteractionState = {
-    /**
-     * If user interaction is in progress or not.
-     * Why is this its own property? Why is this not computed from the index?
-     * Certainly if index !== -1 then the tooltip is active, right?
-     * Well not so fast. Recharts allows Tooltips can be set to `active=true`
-     * which means the tooltip remains displayed after the user stops interacting.
-     * - This implies that we cannot set index to <empty value> after interaction ends,
-     *   because the chart must remember the last position just in case the `active` prop on Tooltip is set to true.
-     */
-    active: boolean;
-    /**
-     * This is the current data index that is set for the chart.
-     * This can come from mouse events, keyboard events, or hardcoded in props
-     * in property `defaultIndex` on Tooltip.
-     */
-    index: TooltipIndex | undefined;
-    /**
-     * DataKey filter.
-     *
-     * In case of multiple graphical items, this is the dataKey that is set for the item.
-     * Very useful for `Tooltip.shared=false`, where activeIndex can display multiple values,
-     * but we only want to display one of them.
-     *
-     * If we want to interact with all the graphical items, then this is undefined.
-     * This is the case for eventTooltipType === 'axis' for example.
-     */
-    dataKey: DataKey<any> | undefined;
-    /**
-     * GraphicalItemId filter.
-     *
-     * In case of multiple graphical items with the same dataKey (e.g., multiple Pie charts),
-     * this identifies which specific graphical item is being interacted with.
-     * This is more reliable than coordinate matching for distinguishing between items.
-     */
-    graphicalItemId: string | undefined;
-    /**
-     * The Coordinate where user last interacted with the chart. This needs saved so we can continue to render the tooltip at that point.
-     * This is undefined on several occasions:
-     * - before the user started interacting with the chart,
-     * - when the chart is controlled programmatically through `defaultIndex` prop
-     * - when the chart is controlled using keyboard interactions
-     */
-    coordinate: Coordinate | PolarCoordinate | undefined;
-};
-export type TooltipSyncState = TooltipInteractionState & {
-    /**
-     * Tooltip synchronization is a feature that allows multiple charts to share the same interaction state.
-     * This comes with one specialty - the syncMethod. `syncMethod=value` allows the user to synchronise charts
-     * based on the active label (which is rendered as the title of the Tooltip).
-     * To allow that, we need the label to be stored in the sync state.
-     */
-    label: string | undefined;
-    /**
-     * ViewBox of the chart that sent the sync event.
-     * Used to scale coordinates between charts of different sizes so tooltips
-     * show up in the right place on all synchronized charts.
-     */
-    sourceViewBox: CartesianViewBoxRequired | undefined;
-};
-export declare const noInteraction: TooltipInteractionState;
-/**
- * The tooltip interaction state stores:
- *
- * - Which graphical item is user interacting with at the moment,
- * - which axis (or, which part of chart background) is user interacting with at the moment
- * - The data that individual graphical items wish to be displayed in case the tooltip gets activated
- */
-export type TooltipState = {
-    /**
-     * This is the state of interactions with individual graphical items.
-     */
-    itemInteraction: {
-        click: TooltipInteractionState;
-        /**
-         * Why is hover activation separate from click activation? Because they are independent:
-         * If a click is set, then mouseLeave should not clear it.
-         * - the opposite is technically true too - but it's difficult to click on things without also hovering.
-         */
-        hover: TooltipInteractionState;
-    };
-    /**
-     * This is the state of interaction with the bar background - which will get mapped
-     * to the axis index.
-     *
-     * Axis interaction is independent of item interaction so the state must also be independent.
-     */
-    axisInteraction: {
-        click: TooltipInteractionState;
-        hover: TooltipInteractionState;
-    };
-    keyboardInteraction: TooltipInteractionState;
-    /**
-     * This part of the state is the information coming from other charts.
-     * If there are two charts with the same syncId, events from one chart will be transferred
-     * to other charts. So this is what the other charts are reporting.
-     */
-    syncInteraction: TooltipSyncState;
-    /**
-     * One graphical item will have one configuration;
-     * hovering over multiple of them (for example with tooltipEventType===axis)
-     * may render multiple tooltip payloads.
-     */
-    tooltipItemPayloads: ReadonlyArray<TooltipPayloadConfiguration>;
-    /**
-     * Tooltip props or other settings that need redux access.
-     * This assumes that there is always only one Tooltip. In case we want to start supporting multiple Tooltips,
-     * we have to change this to an array - and update all the places reading this state too.
-     */
-    settings: TooltipSettingsState;
-};
-export declare const initialState: TooltipState;
-/**
- * This is the event we get when user is interacting with a specific graphical item.
- */
-export type GraphicalItemTooltipActionPayload = {
-    /**
-     * Every graphical item must report its own index.
-     */
-    activeIndex: TooltipIndex;
-    /**
-     * A graphical item may or may not have a particular dataKey specified.
-     * This is undefined in case the user did not set a dataKey on the graphical item.
-     * In which case the dataKey is implied by the axes settings.
-     */
-    activeDataKey: DataKey<any> | undefined;
-    /**
-     * This is the coordinate where Recharts think the tooltip should appear.
-     *
-     * Graphical items have a preference where to render the actual tooltip
-     * which is defined in the TooltipPayloadConfiguration.positions.
-     *
-     * This property is resolved by combining that preference with the actual user interaction coordinate.
-     * This is not the raw mouse coordinate! We don't store that currently in this slice.
-     *
-     * This can be undefined depending on the graphical item settings, and the tooltip searcher.
-     */
-    activeCoordinate: Coordinate | undefined;
-    /**
-     * ID of the element user is interacting with.
-     * Cannot be undefined - each graphical item is responsible for generating its own ID
-     * in case user did not provide an explicit one.
-     */
-    activeGraphicalItemId: GraphicalItemId;
-};
-export type AxisTooltipActionPayload = {
-    /**
-     * Each axis interaction must report the index of where the user is interacting.
-     */
-    activeIndex: TooltipIndex;
-    /**
-     * DataKey filter. An axis may or may not have a particular dataKey specified.
-     * This is undefined in case the user did not set a dataKey on the axis.
-     * In which case the dataKey is implied by the graphical item settings.
-     */
-    activeDataKey: DataKey<any> | undefined;
-    /**
-     This is the coordinate where Recharts think the tooltip should appear.
-     *
-     * Graphical items have a preference where to render the actual tooltip
-     * which is defined in the TooltipPayloadConfiguration.positions.
-     *
-     * This property is resolved by combining that preference with the actual user interaction coordinate.
-     * This is not the raw mouse coordinate! We don't store that currently in this slice.
-     *
-     * This can be undefined depending on the graphical item settings, and the tooltip searcher.
-     */
-    activeCoordinate?: Coordinate;
-};
-/**
- * Keyboard interaction payload has no graphical item ID,
- * and no dataKey, because keyboard interaction is always
- * with the whole chart, not with a specific graphical item.
- */
-export type KeyboardTooltipActionPayload = {
-    /**
-     * If true, means user is actively interacting with the chart using keyboard.
-     * If false, means user has stopped interacting with the chart using keyboard - perhaps focus has moved away, or ESC key was pressed.
-     */
-    active: boolean;
-    /**
-     * Keyboard interaction index. The middleware is responsible for computing this index based on
-     * current index, key pressed, chart direction, etc.
-     * Each chart type may have different index types (string or number) and different idea on how to iterate them.
-     */
-    activeIndex: TooltipIndex | undefined;
-    /**
-     This is the coordinate where Recharts think the tooltip should appear.
-  
-     * Keyboard coordinate follows the same rules as defaultIndex coordinate.
-     * In an absence of mouse coordinates, the chart must compute where to render the tooltip
-     * based on the activeIndex and domain and range.
-     */
-    activeCoordinate: Coordinate | undefined;
-};
-export declare const addTooltipEntrySettings: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: TooltipPayloadConfiguration], TooltipPayloadConfiguration, "tooltip/addTooltipEntrySettings", never, unknown>, replaceTooltipEntrySettings: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    prev: TooltipPayloadConfiguration;
-    next: TooltipPayloadConfiguration;
-}], {
-    prev: TooltipPayloadConfiguration;
-    next: TooltipPayloadConfiguration;
-}, "tooltip/replaceTooltipEntrySettings", never, unknown>, removeTooltipEntrySettings: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: TooltipPayloadConfiguration], TooltipPayloadConfiguration, "tooltip/removeTooltipEntrySettings", never, unknown>, setTooltipSettingsState: import("@reduxjs/toolkit").ActionCreatorWithPayload<TooltipSettingsState, "tooltip/setTooltipSettingsState">, setActiveMouseOverItemIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<GraphicalItemTooltipActionPayload, "tooltip/setActiveMouseOverItemIndex">, mouseLeaveItem: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tooltip/mouseLeaveItem">, mouseLeaveChart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tooltip/mouseLeaveChart">, setActiveClickItemIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<GraphicalItemTooltipActionPayload, "tooltip/setActiveClickItemIndex">, setMouseOverAxisIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<AxisTooltipActionPayload, "tooltip/setMouseOverAxisIndex">, setMouseClickAxisIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<AxisTooltipActionPayload, "tooltip/setMouseClickAxisIndex">, setSyncInteraction: import("@reduxjs/toolkit").ActionCreatorWithPayload<TooltipSyncState, "tooltip/setSyncInteraction">, setKeyboardInteraction: import("@reduxjs/toolkit").ActionCreatorWithPayload<KeyboardTooltipActionPayload, "tooltip/setKeyboardInteraction">;
-export declare const tooltipReducer: import("redux").Reducer<TooltipState>;
Index: de_modules/recharts/types/state/touchEventsMiddleware.d.ts
===================================================================
--- node_modules/recharts/types/state/touchEventsMiddleware.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import * as React from 'react';
-import { RechartsRootState } from './store';
-export declare const touchEventAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<React.TouchEvent<HTMLDivElement>, string>;
-export declare const touchEventMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<RechartsRootState, import("@reduxjs/toolkit").ThunkDispatch<RechartsRootState, unknown, import("redux").AnyAction>, unknown>;
Index: de_modules/recharts/types/state/types/AreaSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/AreaSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { BaseValue } from '../../cartesian/Area';
-import { DataKey } from '../../util/types';
-import { ChartData } from '../chartDataSlice';
-import { MaybeStackedGraphicalItem } from './StackedGraphicalItem';
-import { BaseCartesianGraphicalItemSettings } from '../graphicalItemsSlice';
-export type AreaSettings = BaseCartesianGraphicalItemSettings & MaybeStackedGraphicalItem & {
-    type: 'area';
-    connectNulls: boolean;
-    baseValue: BaseValue | undefined;
-    dataKey: DataKey<any>;
-    data: ChartData | undefined;
-};
Index: de_modules/recharts/types/state/types/BarSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/BarSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { MinPointSize } from '../../util/BarUtils';
-import { MaybeStackedGraphicalItem } from './StackedGraphicalItem';
-import { BaseCartesianGraphicalItemSettings } from '../graphicalItemsSlice';
-export type BarSettings = BaseCartesianGraphicalItemSettings & MaybeStackedGraphicalItem & {
-    type: 'bar';
-    maxBarSize: number | undefined;
-    minPointSize: MinPointSize;
-};
Index: de_modules/recharts/types/state/types/LineSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/LineSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { ChartData } from '../chartDataSlice';
-import { DataKey } from '../../util/types';
-import { BaseCartesianGraphicalItemSettings } from '../graphicalItemsSlice';
-export type LineSettings = BaseCartesianGraphicalItemSettings & {
-    type: 'line';
-    data: ChartData | undefined;
-    dataKey: DataKey<any> | undefined;
-};
Index: de_modules/recharts/types/state/types/PieSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/PieSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { SVGProps } from 'react';
-import { BasePolarGraphicalItemSettings } from '../graphicalItemsSlice';
-import { DataKey, LegendType } from '../../util/types';
-import { TooltipType } from '../../component/DefaultTooltipContent';
-import { SVGPropsNoEvents } from '../../util/svgPropertiesNoEvents';
-import { WithoutId } from '../../util/useUniqueId';
-export type PiePresentationProps = SVGPropsNoEvents<WithoutId<SVGProps<SVGPathElement>>>;
-export interface PieSettings extends BasePolarGraphicalItemSettings {
-    type: 'pie';
-    name: string | number | undefined;
-    nameKey: DataKey<any>;
-    tooltipType: TooltipType | undefined;
-    legendType: LegendType;
-    fill: string;
-    cx: number | string;
-    cy: number | string;
-    startAngle: number;
-    endAngle: number;
-    paddingAngle: number;
-    minAngle: number;
-    innerRadius: number | string;
-    outerRadius: number | string | ((element: any) => number | string);
-    maxRadius: number | undefined;
-    cornerRadius: number | string | undefined;
-    presentationProps: PiePresentationProps | null;
-}
Index: de_modules/recharts/types/state/types/RadarSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/RadarSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-import { BasePolarGraphicalItemSettings } from '../graphicalItemsSlice';
-export interface RadarSettings extends BasePolarGraphicalItemSettings {
-    type: 'radar';
-}
Index: de_modules/recharts/types/state/types/RadialBarSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/RadialBarSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { MaybeStackedGraphicalItem } from './StackedGraphicalItem';
-import { BasePolarGraphicalItemSettings } from '../graphicalItemsSlice';
-export interface RadialBarSettings extends BasePolarGraphicalItemSettings, MaybeStackedGraphicalItem {
-    type: 'radialBar';
-    minPointSize: number;
-    maxBarSize: number | undefined;
-}
Index: de_modules/recharts/types/state/types/ScatterSettings.d.ts
===================================================================
--- node_modules/recharts/types/state/types/ScatterSettings.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import { ChartData } from '../chartDataSlice';
-import { DataKey } from '../../util/types';
-import { TooltipType } from '../../component/DefaultTooltipContent';
-import { BaseCartesianGraphicalItemSettings } from '../graphicalItemsSlice';
-export type ScatterSettings = BaseCartesianGraphicalItemSettings & {
-    type: 'scatter';
-    data: ChartData | undefined;
-    dataKey: DataKey<any> | undefined;
-    tooltipType: TooltipType | undefined;
-    name: string | number | undefined;
-};
Index: de_modules/recharts/types/state/types/StackedGraphicalItem.d.ts
===================================================================
--- node_modules/recharts/types/state/types/StackedGraphicalItem.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { GraphicalItemSettings } from '../graphicalItemsSlice';
-import { NormalizedStackId } from '../../util/ChartUtils';
-import { DataKey } from '../../util/types';
-/**
- * Some graphical items allow data stacking. The stacks are optional,
- * so all props here are optional too.
- */
-export interface MaybeStackedGraphicalItem extends GraphicalItemSettings {
-    stackId: NormalizedStackId | undefined;
-    /**
-     * Bars have a size but Area does not.
-     */
-    barSize: number | string | undefined;
-}
-/**
- * Some graphical items allow data stacking.
- * This interface is used to represent the items that are stacked
- * because the user has provided the stackId and dataKey properties.
- */
-export interface DefinitelyStackedGraphicalItem extends MaybeStackedGraphicalItem {
-    stackId: NormalizedStackId;
-    dataKey: DataKey<any>;
-}
-export declare function isStacked<T extends GraphicalItemSettings>(graphicalItem: T): graphicalItem is T & DefinitelyStackedGraphicalItem;
Index: de_modules/recharts/types/state/zIndexSlice.d.ts
===================================================================
--- node_modules/recharts/types/state/zIndexSlice.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-type ZIndexEntry = {
-    /**
-     * Reference to the DOM element that corresponds to this z-index.
-     * This element is used to create a React portal for rendering components at this z-index.
-     *
-     * If undefined, it means no element is currently registered for this z-index,
-     * and registration is in progress. If that happens, wait for the next render cycle.
-     */
-    element: Element | undefined;
-    /**
-     * Panorama items can't mix with normal items in the same z-index layer,
-     * because they are rendered in a different SVG element.
-     * So we need to have a separate element reference for panorama z-index portals.
-     */
-    panoramaElement: Element | undefined;
-    consumers: number;
-};
-type ZIndexState = {
-    zIndexMap: Record<number, ZIndexEntry>;
-};
-export declare const registerZIndexPortal: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    zIndex: number;
-}], {
-    zIndex: number;
-}, "zIndex/registerZIndexPortal", never, unknown>, unregisterZIndexPortal: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    zIndex: number;
-}], {
-    zIndex: number;
-}, "zIndex/unregisterZIndexPortal", never, unknown>, registerZIndexPortalElement: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    zIndex: number;
-    element: Element;
-    isPanorama: boolean;
-}], {
-    zIndex: number;
-    element: Element;
-    isPanorama: boolean;
-}, "zIndex/registerZIndexPortalElement", never, unknown>, unregisterZIndexPortalElement: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
-    zIndex: number;
-    isPanorama: boolean;
-}], {
-    zIndex: number;
-    isPanorama: boolean;
-}, "zIndex/unregisterZIndexPortalElement", never, unknown>;
-export declare const zIndexReducer: import("redux").Reducer<ZIndexState>;
-export {};
Index: de_modules/recharts/types/synchronisation/syncSelectors.d.ts
===================================================================
--- node_modules/recharts/types/synchronisation/syncSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { RechartsRootState } from '../state/store';
-import { TooltipSyncState } from '../state/tooltipSlice';
-export declare function selectSynchronisedTooltipState(state: RechartsRootState): TooltipSyncState;
Index: de_modules/recharts/types/synchronisation/types.d.ts
===================================================================
--- node_modules/recharts/types/synchronisation/types.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-import { Coordinate, DataKey, TickItem } from '../util/types';
-import { TooltipIndex } from '../state/tooltipSlice';
-export type ActiveLabel = string | number | undefined;
-export type MouseHandlerDataParam = {
-    /**
-     * Index of the active tick in the current chart. Only works with number-indexed one-dimensional data charts,
-     * like Line, Area, Bar, Pie, etc.
-     *
-     * Doesn't work with two-dimensional data charts like Treemap, Sankey. But one day it will which is why the TooltipIndex type is here.
-     */
-    activeTooltipIndex: number | TooltipIndex | undefined;
-    isTooltipActive: boolean;
-    /**
-     * Exactly the same as activeTooltipIndex - this was also duplicated in recharts@2 so let's keep both properties for better backwards compatibility.
-     */
-    activeIndex: number | TooltipIndex | undefined;
-    /**
-     * The category or domain value of the active tooltip entry.
-     */
-    activeLabel: ActiveLabel;
-    activeDataKey: DataKey<any> | undefined;
-    activeCoordinate: Coordinate | undefined;
-};
-/**
- * Allows customisation of how the charts will synchronize tooltips and brushes.
- * Default: index
- *
- * 'index': other charts will reuse current datum's index within the data array. In cases where data does not have the same length, this might yield unexpected results.
- * 'value': will try to match other charts values
- * custom function: will receive two arguments and should return an index of the active tick in the current chart:
- * argument 1: ticks from the current chart
- * argument 2: active tooltip state from the other chart
- */
-export type SyncMethod = 'index' | 'value' | ((ticks: ReadonlyArray<TickItem>, data: MouseHandlerDataParam) => number);
Index: de_modules/recharts/types/synchronisation/useChartSynchronisation.d.ts
===================================================================
--- node_modules/recharts/types/synchronisation/useChartSynchronisation.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { TooltipIndex } from '../state/tooltipSlice';
-import { Coordinate, TooltipEventType } from '../util/types';
-import { TooltipTrigger } from '../chart/types';
-import { ActiveLabel } from './types';
-/**
- * Will receive synchronisation events from other charts.
- *
- * Reads syncMethod from state and decides how to synchronise the tooltip based on that.
- *
- * @returns void
- */
-export declare function useSynchronisedEventsFromOtherCharts(): void;
-/**
- * Will send events to other charts.
- * If syncId is undefined, no events will be sent.
- *
- * This ignores the syncMethod, because that is set and computed on the receiving end.
- *
- * @param tooltipEventType from Tooltip
- * @param trigger from Tooltip
- * @param activeCoordinate from state
- * @param activeLabel from state
- * @param activeIndex from state
- * @param isTooltipActive from state
- * @returns void
- */
-export declare function useTooltipChartSynchronisation(tooltipEventType: TooltipEventType | undefined, trigger: TooltipTrigger, activeCoordinate: Coordinate | undefined, activeLabel: ActiveLabel, activeIndex: TooltipIndex | undefined, isTooltipActive: boolean): void;
-export declare function useBrushChartSynchronisation(): void;
Index: de_modules/recharts/types/types.d.ts
===================================================================
--- node_modules/recharts/types/types.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-/**
- * Defines the blank space between the chart and the plot area.
- * This blank space is occupied by supporting elements like axes, legends, and brushes.
- * This also includes any margins that might be applied to the chart.
- */
-export type ChartOffset = {
-    /**
-     * Distance from the top edge of the chart to the top edge of the plot area.
-     */
-    readonly top: number;
-    /**
-     * Distance from the bottom edge of the chart to the bottom edge of the plot area.
-     * Note that this is not a coordinate, this is a distance.
-     * Meaning, `offset.bottom` could be 0 in a perfectly fine big chart.
-     */
-    readonly bottom: number;
-    /**
-     * Distance from the left edge of the chart to the left edge of the plot area.
-     */
-    readonly left: number;
-    /**
-     * Distance from the right edge of the chart to the right edge of the plot area.
-     * Note that this is not a coordinate, this is a distance.
-     * Meaning, `offset.right` could be 0 in a perfectly fine big chart.
-     */
-    readonly right: number;
-};
-/**
- * Plot area is the area where the actual chart data is rendered.
- * This means: bars, lines, scatter points, etc.
- */
-export type PlotArea = {
-    /**
-     * The width of the plot area.
-     * This will be the same as `chartWidth - offset.left - offset.right`
-     */
-    readonly width: number;
-    /**
-     * The height of the plot area.
-     * This will be the same as `chartHeight - offset.top - offset.bottom`
-     */
-    readonly height: number;
-    /**
-     * The x coordinate of the top-left corner of the plot area.
-     * This will be the same as `offset.left`
-     */
-    readonly x: number;
-    /**
-     * The y coordinate of the top-left corner of the plot area.
-     * This will be the same as `offset.top`
-     */
-    readonly y: number;
-};
Index: de_modules/recharts/types/util/ActiveShapeUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/ActiveShapeUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import * as React from 'react';
-import { ReactElement } from 'react';
-/**
- * This is an abstraction for rendering a user defined prop for a customized shape in several forms.
- *
- * <Shape /> is the root and will handle taking in:
- *  - an object of svg properties
- *  - a boolean
- *  - a render prop(inline function that returns jsx)
- *  - a React element
- *
- * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component
- * to the value of props.shapeType that is passed to the root.
- *
- */
-type ShapeType = 'trapezoid' | 'rectangle' | 'sector' | 'symbols' | 'curve';
-export type ShapeProps<OptionType, ExtraProps> = {
-    shapeType: ShapeType;
-    option: OptionType;
-    isActive?: boolean;
-    index?: string | number;
-    activeClassName?: string;
-} & ExtraProps;
-export declare function getPropsFromShapeOption<T>(option: ReactElement<T> | T): T;
-export declare function Shape<OptionType, ExtraProps, ShapePropsType extends React.JSX.IntrinsicAttributes>({ option, shapeType, activeClassName, ...props }: ShapeProps<OptionType, ExtraProps>): React.JSX.Element;
-export {};
Index: de_modules/recharts/types/util/BarUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/BarUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import * as React from 'react';
-import { ActiveShape, DataKey } from './types';
-import { Props as RectangleProps } from '../shape/Rectangle';
-import { BarShapeProps } from '../cartesian/Bar';
-export type BarRectangleProps = {
-    option: ActiveShape<BarShapeProps, SVGPathElement> | undefined;
-    isActive: boolean;
-    onMouseEnter?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;
-    onMouseLeave?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;
-    onClick?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;
-    width?: number;
-    height?: number;
-    index: number;
-    dataKey: DataKey<any> | undefined;
-} & Omit<RectangleProps, 'onAnimationStart' | 'onAnimationEnd'>;
-export declare function BarRectangle(props: BarRectangleProps): React.JSX.Element;
-export type MinPointSize = number | ((value: number | undefined | null, index: number) => number);
-/**
- * Safely gets minPointSize from the minPointSize prop if it is a function
- * @param minPointSize minPointSize as passed to the Bar component
- * @param defaultValue default minPointSize
- * @returns minPointSize
- */
-export declare const minPointSizeCallback: (minPointSize: MinPointSize, defaultValue?: number) => (value: unknown, index: number) => number;
Index: de_modules/recharts/types/util/CartesianUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/CartesianUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import { Coordinate, RectangleCoordinate, RectanglePosition, Size } from './types';
-export declare const rectWithPoints: ({ x: x1, y: y1 }: Coordinate, { x: x2, y: y2 }: Coordinate) => RectanglePosition;
-/**
- * Compute the x, y, width, and height of a box from two reference points.
- * @param  {Object} coords     x1, x2, y1, and y2
- * @return {Object} object
- */
-export declare const rectWithCoords: ({ x1, y1, x2, y2 }: RectangleCoordinate) => RectanglePosition;
-/** Normalizes the angle so that 0 <= angle < 180.
- * @param {number} angle Angle in degrees.
- * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */
-export declare function normalizeAngle(angle: number): number;
-/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- * @param {Object} size Width and height of the text in a horizontal position.
- * @param {number} angle Angle in degrees in which the text is displayed.
- * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.
- */
-export declare const getAngledRectangleWidth: ({ width, height }: Size, angle?: number | undefined) => number;
Index: de_modules/recharts/types/util/ChartUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/ChartUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,160 +1,0 @@
-import { Series, type SeriesPoint } from 'victory-vendor/d3-shape';
-import { TooltipEntrySettings, TooltipPayloadEntry } from '../state/tooltipSlice';
-import { AxisTick, AxisType, RenderableAxisProps, CartesianLayout, ChartPointer, DataKey, LayoutType, NumberDomain, OffsetHorizontal, OffsetVertical, PolarLayout, RangeObj, Size, StackOffsetType, TickItem } from './types';
-import { ValueType } from '../component/DefaultTooltipContent';
-import { LegendSettings } from '../state/legendSlice';
-import { AxisRange, BaseAxisWithScale } from '../state/selectors/axisSelectors';
-import { StackGroup } from './stacks/stackTypes';
-import { RechartsScale } from './scale/RechartsScale';
-export declare function getValueByDataKey<T>(obj: T | null | undefined, dataKey: DataKey<T> | undefined, defaultValue?: any): unknown;
-export type BarPositionPosition = {
-    /**
-     * Offset is returned always from zero position.
-     * So in a way it's "absolute".
-     *
-     * NOT inbetween bars, but always from zero.
-     */
-    offset: number;
-    /**
-     * Size of the bar.
-     * If the input data is undefined, this will be 0.
-     * If the input data is NaN then this size too will be NaN.
-     */
-    size: number;
-};
-export declare const appendOffsetOfLegend: (offset: OffsetVertical & OffsetHorizontal, legendSettings: LegendSettings, legendSize: Size) => OffsetVertical & OffsetHorizontal;
-export declare const isCategoricalAxis: (layout: LayoutType, axisType: AxisType) => boolean;
-/**
- * Calculate the Coordinates of grid
- * @param  {Array} ticks           The ticks in axis
- * @param {Number} minValue        The minimum value of axis
- * @param {Number} maxValue        The maximum value of axis
- * @param {boolean} syncWithTicks  Synchronize grid lines with ticks or not
- * @return {Array}                 Coordinates
- */
-export declare const getCoordinatesOfGrid: (ticks: ReadonlyArray<TickItem>, minValue: number, maxValue: number, syncWithTicks: boolean) => number[];
-export type AxisPropsNeededForTicksGenerator = {
-    axisType?: AxisType;
-    categoricalDomain?: ReadonlyArray<unknown>;
-    duplicateDomain?: ReadonlyArray<unknown>;
-    isCategorical?: boolean;
-    niceTicks?: ReadonlyArray<AxisTick>;
-    /**
-     * The range appears to be only used in Angle Axis - needs further investigation
-     */
-    range?: AxisRange;
-    realScaleType?: 'scaleBand' | string;
-    scale: RechartsScale | undefined;
-    tickCount?: number;
-    ticks?: ReadonlyArray<AxisTick>;
-    type?: 'number' | 'category';
-};
-/**
- * Of on four almost identical implementations of tick generation.
- * The four horsemen of tick generation are:
- * - {@link selectTooltipAxisTicks}
- * - {@link combineAxisTicks}
- * - {@link getTicksOfAxis}.
- * - {@link combineGraphicalItemTicks}
- */
-export declare const getTicksOfAxis: (axis: undefined | AxisPropsNeededForTicksGenerator, isGrid?: boolean, isAll?: boolean) => ReadonlyArray<TickItem> | null;
-/**
- * Both value and domain are tuples of two numbers
- * - but the type stays as array of numbers until we have better support in rest of the app
- * @param value input that will be truncated
- * @param domain boundaries
- * @returns tuple of two numbers
- */
-export declare const truncateByDomain: (value: SeriesPoint<Record<number, number>>, domain: ReadonlyArray<number>) => [number, number] | SeriesPoint<Record<number, number>>;
-/**
- * Stacks all positive numbers above zero and all negative numbers below zero.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-export declare const offsetSign: OffsetAccessor;
-/**
- * Replaces all negative values with zero when stacking data.
- *
- * If all values in the series are positive then this behaves the same as 'none' stacker.
- *
- * @param {Array} series from d3-shape Stack
- * @return {Array} series with applied offset
- */
-export declare const offsetPositive: OffsetAccessor;
-/**
- * Function type to compute offset for stacked data.
- *
- * d3-shape has something fishy going on with its types.
- * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.
- * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.
- * The same I can see in the source code itself:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- * That one unfortunately has no types but we can tell it passes three-dimensional array.
- *
- * Which leads me to believe that definitelytyped is wrong on this one.
- * There's open discussion on this topic without much attention:
- * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042
- */
-type OffsetAccessor = (series: Array<Series<Record<string, unknown>, string>>, order: number[]) => void;
-export declare const getStackedData: (data: ReadonlyArray<Record<string, unknown>>, dataKeys: ReadonlyArray<DataKey<any>>, offsetType: StackOffsetType) => ReadonlyArray<Series<Record<string, unknown>, DataKey<any>>>;
-/**
- * Externally, we accept both strings and numbers as stack IDs
- * @inline
- */
-export type StackId = string | number;
-/**
- * Stack IDs in the external props allow numbers; but internally we use it as an object key
- * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks
- * so let's just force a string.
- */
-export type NormalizedStackId = string;
-export declare function getNormalizedStackId(publicStackId: StackId | undefined): NormalizedStackId | undefined;
-export declare function getCateCoordinateOfLine<T extends Record<string, unknown>>({ axis, ticks, bandSize, entry, index, dataKey, }: {
-    axis: {
-        dataKey?: DataKey<T>;
-        allowDuplicatedCategory?: boolean;
-        type?: RenderableAxisProps['type'];
-        scale: RechartsScale;
-    };
-    ticks: ReadonlyArray<TickItem> | undefined;
-    bandSize: number;
-    entry: T;
-    index: number;
-    dataKey?: DataKey<T>;
-}): number | null;
-export declare const getCateCoordinateOfBar: ({ axis, ticks, offset, bandSize, entry, index, }: {
-    axis: BaseAxisWithScale;
-    ticks: ReadonlyArray<TickItem>;
-    offset: number;
-    bandSize: number;
-    entry: any;
-    index: number;
-}) => number | null;
-export declare const getBaseValueOfBar: ({ numericAxis }: {
-    numericAxis: BaseAxisWithScale;
-}) => number | unknown;
-export declare const getDomainOfStackGroups: (stackGroups: Record<StackId, StackGroup> | undefined, startIndex: number, endIndex: number) => NumberDomain | undefined;
-export declare const MIN_VALUE_REG: RegExp;
-export declare const MAX_VALUE_REG: RegExp;
-/**
- * Calculate the size between two category
- * @param  {Object} axis  The options of axis
- * @param  {Array}  ticks The ticks of axis
- * @param  {Boolean} isBar if items in axis are bars
- * @return {Number} Size
- */
-export declare const getBandSizeOfAxis: (axis?: BaseAxisWithScale, ticks?: ReadonlyArray<TickItem>, isBar?: boolean) => number | undefined;
-export declare function getTooltipEntry({ tooltipEntrySettings, dataKey, payload, value, name, }: {
-    tooltipEntrySettings: TooltipEntrySettings;
-    dataKey: DataKey<any> | undefined;
-    payload: any;
-    value: ValueType;
-    name: string | undefined;
-}): TooltipPayloadEntry;
-export declare function getTooltipNameProp(nameFromItem: string | number | undefined | unknown, dataKey: DataKey<any> | undefined): string | undefined;
-export declare const calculateCartesianTooltipPos: (coordinate: ChartPointer, layout: CartesianLayout) => number | undefined;
-export declare const calculatePolarTooltipPos: (rangeObj: RangeObj, layout: PolarLayout) => number | undefined;
-export {};
Index: de_modules/recharts/types/util/Constants.d.ts
===================================================================
--- node_modules/recharts/types/util/Constants.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-export declare const COLOR_PANEL: string[];
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * The index is the position of the element in the data array.
- * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).
- */
-export declare const DATA_ITEM_INDEX_ATTRIBUTE_NAME = "data-recharts-item-index";
-/**
- * We use this attribute to identify which element is the one that the user is touching.
- * Unlike dataKey, or name, it is always unique.
- */
-export declare const DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = "data-recharts-item-id";
-export declare const DEFAULT_Y_AXIS_WIDTH = 60;
Index: de_modules/recharts/types/util/CssPrefixUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/CssPrefixUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare const generatePrefixStyle: (name: string, value: string) => Record<string, string> | undefined;
Index: de_modules/recharts/types/util/DOMUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/DOMUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-import { CSSProperties } from 'react';
-import { Size } from './types';
-export interface TextMeasurementConfig {
-    /** Maximum number of items to cache */
-    cacheSize: number;
-    /** Whether to enable caching */
-    enableCache: boolean;
-}
-export declare const getStringSize: (text: string | number, style?: CSSProperties) => Size;
-/**
- * Configure text measurement behavior
- * @param config - Partial configuration to apply
- * @returns void
- */
-export declare const configureTextMeasurement: (config: Partial<TextMeasurementConfig>) => void;
-/**
- * Get current text measurement configuration
- * @returns Current configuration
- */
-export declare const getTextMeasurementConfig: () => TextMeasurementConfig;
-/**
- * Clear the string size cache. Useful for testing or memory management.
- * @returns void
- */
-export declare const clearStringCache: () => void;
-/**
- * Get cache statistics for debugging purposes.
- * @returns Cache statistics including size and max size
- */
-export declare const getStringCacheStats: () => {
-    size: number;
-    maxSize: number;
-};
Index: de_modules/recharts/types/util/DataUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/DataUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-import { NonEmptyArray, Percent } from './types';
-export declare const mathSign: (value: number) => 0 | 1 | -1;
-export declare const isNan: (value: unknown) => value is number;
-export declare const isPercent: (value: string | number | undefined) => value is Percent;
-export declare const isNumber: (value: unknown) => value is number;
-export declare const isNumOrStr: (value: unknown) => value is number | string;
-export declare const uniqueId: (prefix?: string) => string;
-/**
- * Calculates the numeric value represented by a percent string or number, based on a total value.
- *
- * - If `percent` is not a number or string, returns `defaultValue`.
- * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.
- * - If the result is NaN, returns `defaultValue`.
- * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.
- *
- * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').
- *                  If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.
- * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.
- * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.
- * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).
- * @returns The calculated value, or `defaultValue` for invalid input.
- */
-export declare const getPercentValue: (percent: number | string | undefined, totalValue: number | undefined, defaultValue?: number, validate?: boolean) => number;
-export declare const hasDuplicate: (ary: ReadonlyArray<unknown>) => boolean;
-export declare function interpolate(start: unknown, end: number, t: number): number;
-export declare function interpolate(start: unknown, end: null, t: number): null;
-export declare function interpolate(start: unknown, end: number | null, t: number): number | null;
-export declare function findEntryInArray<T>(ary: ReadonlyArray<T>, specifiedKey: number | string | ((entry: T) => unknown), specifiedValue: unknown): T | undefined;
-type LinearRegressionResult = {
-    xmin: number;
-    xmax: number;
-    a: number;
-    b: number;
-};
-/**
- * The least square linear regression
- * @param {Array} data The array of points
- * @returns {Object} The domain of x, and the parameter of linear function
- */
-export declare const getLinearRegression: (data: NonEmptyArray<{
-    cx?: number;
-    cy?: number;
-}>) => LinearRegressionResult;
-type Nullish = null | undefined;
-/**
- * Checks if the value is null or undefined
- * @param value The value to check
- * @returns true if the value is null or undefined
- */
-export declare const isNullish: (value: unknown) => value is Nullish;
-/**
- * Uppercase the first letter of a string
- * @param {string} value The string to uppercase
- * @returns {string} The uppercased string
- */
-export declare const upperFirst: (value: string) => string;
-/**
- * Checks if the value is not null nor undefined.
- * @param value The value to check
- * @returns true if the value is not null nor undefined
- */
-export declare function isNotNil<T>(value: T): value is NonNullable<T>;
-/**
- * No-operation function that does nothing.
- * Useful as a placeholder or default callback function.
- */
-export declare function noop(): undefined;
-export {};
Index: de_modules/recharts/types/util/Events.d.ts
===================================================================
--- node_modules/recharts/types/util/Events.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import EventEmitter from 'eventemitter3';
-import { PayloadAction } from '@reduxjs/toolkit';
-import { TooltipSyncState } from '../state/tooltipSlice';
-import { BrushStartEndIndex } from '../context/brushUpdateContext';
-declare const eventCenter: EventEmitter<EventTypes>;
-export { eventCenter };
-export declare const TOOLTIP_SYNC_EVENT = "recharts.syncEvent.tooltip";
-export declare const BRUSH_SYNC_EVENT = "recharts.syncEvent.brush";
-interface EventTypes {
-    [TOOLTIP_SYNC_EVENT](syncId: number | string, data: PayloadAction<TooltipSyncState>, emitter: symbol): void;
-    [BRUSH_SYNC_EVENT](syncId: number | string, data: BrushStartEndIndex, emitter: symbol): void;
-}
Index: de_modules/recharts/types/util/FunnelUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/FunnelUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import * as React from 'react';
-import { Props as FunnelProps, FunnelTrapezoidItem } from '../cartesian/Funnel';
-export type FunnelTrapezoidProps = {
-    option: FunnelProps['activeShape'];
-    isActive: boolean;
-} & FunnelTrapezoidItem;
-export declare function FunnelTrapezoid(props: FunnelTrapezoidProps): React.JSX.Element;
Index: de_modules/recharts/types/util/Global.d.ts
===================================================================
--- node_modules/recharts/types/util/Global.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export declare const Global: {
-    devToolsEnabled: boolean;
-    isSsr: boolean;
-};
Index: de_modules/recharts/types/util/IfOverflow.d.ts
===================================================================
--- node_modules/recharts/types/util/IfOverflow.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-export type IfOverflow = 'hidden' | 'visible' | 'discard' | 'extendDomain';
-export interface Overflowable {
-    /**
-     * Defines how to draw this component if it falls partly outside the canvas:
-     *
-     * - `discard`: the whole component will not be drawn at all
-     * - `hidden`: the component will be clipped to the chart plot area
-     * - `visible`: the component will be drawn completely
-     * - `extendDomain`: the domain of the overflown axis will be extended such that the whole component fits into the plot area
-     *
-     * @defaultValue discard
-     */
-    ifOverflow?: IfOverflow;
-}
Index: de_modules/recharts/types/util/LRUCache.d.ts
===================================================================
--- node_modules/recharts/types/util/LRUCache.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * Simple LRU (Least Recently Used) cache implementation
- */
-export declare class LRUCache<K, V> {
-    private cache;
-    private maxSize;
-    constructor(maxSize: number);
-    get(key: K): V | undefined;
-    set(key: K, value: V): void;
-    clear(): void;
-    size(): number;
-}
Index: de_modules/recharts/types/util/LogUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/LogUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare const warn: (condition: boolean, format: string, ...args: any[]) => void;
Index: de_modules/recharts/types/util/PolarUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/PolarUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-import { ChartOffsetInternal, ChartPointer, Coordinate, PolarViewBoxRequired, RangeObj } from './types';
-export declare const RADIAN: number;
-export declare const degreeToRadian: (angle: number) => number;
-export declare const radianToDegree: (angleInRadian: number) => number;
-export declare const polarToCartesian: (cx: number, cy: number, radius: number, angle: number) => Coordinate;
-export declare const getMaxRadius: (width: number, height: number, offset?: ChartOffsetInternal) => number;
-export declare const inRangeOfSector: ({ chartX: x, chartY: y }: ChartPointer, viewBox: PolarViewBoxRequired) => RangeObj | null;
Index: de_modules/recharts/types/util/RadialBarUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/RadialBarUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import * as React from 'react';
-import { RadialBarProps } from '../polar/RadialBar';
-import { Props as SectorProps } from '../shape/Sector';
-export declare function parseCornerRadius(cornerRadius: string | number | undefined): number | undefined;
-export interface RadialBarSectorProps extends SectorProps {
-    index?: number;
-    option: RadialBarProps['activeShape'];
-    isActive?: boolean;
-}
-export declare function RadialBarSector(props: RadialBarSectorProps): React.JSX.Element;
Index: de_modules/recharts/types/util/ReactUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/ReactUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import * as React from 'react';
-import { ReactNode } from 'react';
-import { ActiveDotType, DotType } from './types';
-export declare const SCALE_TYPES: string[];
-/**
- * @deprecated instead find another approach that does not depend on displayName.
- * Get the display name of a component
- * @param  {Object} Comp Specified Component
- * @return {String}      Display name of Component
- */
-export declare const getDisplayName: (Comp: React.ComponentType | string) => string;
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * @param children do not use
- * @return deprecated do not use
- */
-export declare const toArray: <T extends ReactNode>(children: T | T[]) => T[];
-/**
- * @deprecated instead find another approach that does not require reading React Elements from DOM.
- *
- * Find and return all matched children by type.
- * `type` must be a React.ComponentType
- *
- * @param children do not use
- * @param type do not use
- * @return deprecated do not use
- */
-export declare function findAllByType<ComponentType extends React.ComponentType, DetailedElement = React.DetailedReactHTMLElement<React.ComponentProps<ComponentType>, HTMLElement>>(children: ReactNode, type: ComponentType | ComponentType[]): DetailedElement[];
-export declare const isClipDot: (dot: ActiveDotType | DotType) => boolean;
Index: de_modules/recharts/types/util/ReduceCSSCalc.d.ts
===================================================================
--- node_modules/recharts/types/util/ReduceCSSCalc.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export declare function safeEvaluateExpression(expression: string): string;
-export declare function reduceCSSCalc(expression: string): string;
Index: de_modules/recharts/types/util/ScatterUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/ScatterUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-import * as React from 'react';
-import { ActiveShape, SymbolType } from './types';
-import { ScatterPointItem } from '../cartesian/Scatter';
-import { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from './Constants';
-import { GraphicalItemId } from '../state/graphicalItemsSlice';
-export type ScatterShapeProps = ScatterPointItem & {
-    index: number;
-    [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: GraphicalItemId;
-};
-export declare function ScatterSymbol({ option, isActive, ...props }: {
-    option: ActiveShape<ScatterShapeProps> | SymbolType;
-    isActive: boolean;
-} & ScatterShapeProps): React.JSX.Element;
Index: de_modules/recharts/types/util/TickUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/TickUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import { Size, CartesianTickItem, CartesianViewBoxRequired } from './types';
-export declare function getAngledTickWidth(contentSize: Size, unitSize: Size, angle: number | undefined): number;
-export declare function getTickBoundaries(viewBox: CartesianViewBoxRequired, sign: number, sizeKey: string): {
-    start: number;
-    end: number;
-};
-export declare function isVisible(sign: number, tickPosition: number, getSize: () => number, start: number, end: number): boolean;
-export declare function getNumberIntervalTicks(ticks: ReadonlyArray<CartesianTickItem>, interval: number): ReadonlyArray<CartesianTickItem> | undefined;
Index: de_modules/recharts/types/util/YAxisUtils.d.ts
===================================================================
--- node_modules/recharts/types/util/YAxisUtils.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-type IGetBoundingClient = Pick<Element, 'getBoundingClientRect'>;
-/**
- * Calculates the width of the Y-axis based on the tick labels and the axis label.
- * @param params - The parameters object.
- * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.
- * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.
- * @param [params.labelGapWithTick=5] - The gap between the label and the tick.
- * @param [params.tickSize=0] - The length of the tick line.
- * @param [params.tickMargin=0] - The margin between the tick line and the tick text.
- * @returns The calculated width of the Y-axis.
- */
-export declare const getCalculatedYAxisWidth: ({ ticks, label, labelGapWithTick, tickSize, tickMargin, }: {
-    ticks: ArrayLike<IGetBoundingClient> | null;
-    label: IGetBoundingClient | null | undefined;
-    labelGapWithTick: number | undefined;
-    tickSize: number | undefined;
-    tickMargin: number | undefined;
-}) => number;
-export {};
Index: de_modules/recharts/types/util/axisPropsAreEqual.d.ts
===================================================================
--- node_modules/recharts/types/util/axisPropsAreEqual.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { XAxisProps, YAxisProps } from '../index';
-/**
- * Usually we would not compare array props deeply for performance consideration.
- * However, for axis props, domain is sometimes defined as a two-elements array, and range is always
- * a two-elements array. So we can do a shallow comparison for the rest props and a shallow
- * comparison for these two array props.
- * @param prevProps
- * @param nextProps
- */
-export declare function axisPropsAreEqual<T extends YAxisProps | XAxisProps>(prevProps: T, nextProps: T): boolean;
Index: de_modules/recharts/types/util/cursor/getCursorPoints.d.ts
===================================================================
--- node_modules/recharts/types/util/cursor/getCursorPoints.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-import { Coordinate, ChartOffsetInternal, PolarCoordinate, CartesianLayout, PolarLayout } from '../types';
-import { RadialCursorPoints } from './getRadialCursorPoints';
-export declare function getCursorPoints(layout: CartesianLayout | PolarLayout, activeCoordinate: Coordinate | PolarCoordinate, offset: ChartOffsetInternal): [Coordinate, Coordinate] | RadialCursorPoints | undefined;
Index: de_modules/recharts/types/util/cursor/getCursorRectangle.d.ts
===================================================================
--- node_modules/recharts/types/util/cursor/getCursorRectangle.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { ChartCoordinate, ChartOffsetInternal, LayoutType } from '../types';
-export type CursorRectangle = {
-    stroke: string;
-    fill: string;
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-};
-export declare function getCursorRectangle(layout: LayoutType, activeCoordinate: ChartCoordinate, offset: ChartOffsetInternal, tooltipAxisBandSize: number): CursorRectangle;
Index: de_modules/recharts/types/util/cursor/getRadialCursorPoints.d.ts
===================================================================
--- node_modules/recharts/types/util/cursor/getRadialCursorPoints.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { Coordinate, PolarCoordinate } from '../types';
-export type RadialCursorPoints = {
-    points: [startPoint: Coordinate, endPoint: Coordinate];
-    cx?: number;
-    cy?: number;
-    radius?: number;
-    startAngle?: number;
-    endAngle?: number;
-};
-/**
- * Only applicable for radial layouts
- * @param {Object} activeCoordinate ChartCoordinate
- * @returns {Object} RadialCursorPoints
- */
-export declare function getRadialCursorPoints(activeCoordinate: PolarCoordinate): RadialCursorPoints;
Index: de_modules/recharts/types/util/excludeEventProps.d.ts
===================================================================
--- node_modules/recharts/types/util/excludeEventProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4 +1,0 @@
-declare const EventKeys: readonly ["dangerouslySetInnerHTML", "onCopy", "onCopyCapture", "onCut", "onCutCapture", "onPaste", "onPasteCapture", "onCompositionEnd", "onCompositionEndCapture", "onCompositionStart", "onCompositionStartCapture", "onCompositionUpdate", "onCompositionUpdateCapture", "onFocus", "onFocusCapture", "onBlur", "onBlurCapture", "onChange", "onChangeCapture", "onBeforeInput", "onBeforeInputCapture", "onInput", "onInputCapture", "onReset", "onResetCapture", "onSubmit", "onSubmitCapture", "onInvalid", "onInvalidCapture", "onLoad", "onLoadCapture", "onError", "onErrorCapture", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onKeyPressCapture", "onKeyUp", "onKeyUpCapture", "onAbort", "onAbortCapture", "onCanPlay", "onCanPlayCapture", "onCanPlayThrough", "onCanPlayThroughCapture", "onDurationChange", "onDurationChangeCapture", "onEmptied", "onEmptiedCapture", "onEncrypted", "onEncryptedCapture", "onEnded", "onEndedCapture", "onLoadedData", "onLoadedDataCapture", "onLoadedMetadata", "onLoadedMetadataCapture", "onLoadStart", "onLoadStartCapture", "onPause", "onPauseCapture", "onPlay", "onPlayCapture", "onPlaying", "onPlayingCapture", "onProgress", "onProgressCapture", "onRateChange", "onRateChangeCapture", "onSeeked", "onSeekedCapture", "onSeeking", "onSeekingCapture", "onStalled", "onStalledCapture", "onSuspend", "onSuspendCapture", "onTimeUpdate", "onTimeUpdateCapture", "onVolumeChange", "onVolumeChangeCapture", "onWaiting", "onWaitingCapture", "onAuxClick", "onAuxClickCapture", "onClick", "onClickCapture", "onContextMenu", "onContextMenuCapture", "onDoubleClick", "onDoubleClickCapture", "onDrag", "onDragCapture", "onDragEnd", "onDragEndCapture", "onDragEnter", "onDragEnterCapture", "onDragExit", "onDragExitCapture", "onDragLeave", "onDragLeaveCapture", "onDragOver", "onDragOverCapture", "onDragStart", "onDragStartCapture", "onDrop", "onDropCapture", "onMouseDown", "onMouseDownCapture", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseMoveCapture", "onMouseOut", "onMouseOutCapture", "onMouseOver", "onMouseOverCapture", "onMouseUp", "onMouseUpCapture", "onSelect", "onSelectCapture", "onTouchCancel", "onTouchCancelCapture", "onTouchEnd", "onTouchEndCapture", "onTouchMove", "onTouchMoveCapture", "onTouchStart", "onTouchStartCapture", "onPointerDown", "onPointerDownCapture", "onPointerMove", "onPointerMoveCapture", "onPointerUp", "onPointerUpCapture", "onPointerCancel", "onPointerCancelCapture", "onPointerEnter", "onPointerEnterCapture", "onPointerLeave", "onPointerLeaveCapture", "onPointerOver", "onPointerOverCapture", "onPointerOut", "onPointerOutCapture", "onGotPointerCapture", "onGotPointerCaptureCapture", "onLostPointerCapture", "onLostPointerCaptureCapture", "onScroll", "onScrollCapture", "onWheel", "onWheelCapture", "onAnimationStart", "onAnimationStartCapture", "onAnimationEnd", "onAnimationEndCapture", "onAnimationIteration", "onAnimationIterationCapture", "onTransitionEnd", "onTransitionEndCapture"];
-export type EventKeysType = (typeof EventKeys)[number];
-export declare function isEventKey(key: PropertyKey): key is EventKeysType;
-export {};
Index: de_modules/recharts/types/util/getActiveCoordinate.d.ts
===================================================================
--- node_modules/recharts/types/util/getActiveCoordinate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-import { AxisType, CartesianLayout, ChartOffsetInternal, ChartPointer, Coordinate, PolarCoordinate, PolarLayout, RangeObj, TickItem } from './types';
-import { AxisRange } from '../state/selectors/axisSelectors';
-export declare const getActiveCartesianCoordinate: (layout: CartesianLayout, tooltipTicks: readonly TickItem[], activeIndex: number | undefined, pointer: ChartPointer) => Coordinate;
-/**
- * Get the active coordinate in polar coordinate system.
- * Internally we only really use x and y, but this returned object is part of public API
- * (because it goes straight to the tooltip content) so we keep all the other properties
- * for backwards compatibility.
- *
- * @param layout - The polar layout type ('centric' or 'radial').
- * @param tooltipTicks - Array of tick items used for tooltips.
- * @param activeIndex - The index of the active tick.
- * @param rangeObj - The range object containing polar chart properties.
- * @returns The active coordinate object with polar properties.
- */
-export declare const getActivePolarCoordinate: (layout: PolarLayout, tooltipTicks: readonly TickItem[], activeIndex: number | undefined, rangeObj: RangeObj) => PolarCoordinate;
-export declare function isInCartesianRange(pointer: ChartPointer, offset: ChartOffsetInternal): boolean;
-export declare const calculateActiveTickIndex: (
-/**
- * For different layouts, `coordinate` is different:
- * In horizontal layout, this is expected to be the `x` coordinate
- * vertical -> y
- * centric -> angle
- * radial -> radius
- */
-coordinate: number | undefined, ticks: ReadonlyArray<TickItem> | undefined, unsortedTicks: ReadonlyArray<TickItem>, axisType: AxisType | undefined, range: AxisRange | undefined) => number | undefined;
Index: de_modules/recharts/types/util/getAxisTypeBasedOnLayout.d.ts
===================================================================
--- node_modules/recharts/types/util/getAxisTypeBasedOnLayout.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { AxisDomainTypeInput, AxisType, EvaluatedAxisDomainType, LayoutType } from './types';
-/**
- * This function evaluates the "auto" axis domain type based on the chart layout and axis type.
- * It outputs a definitive axis domain type that can be used for further processing.
- */
-export declare function getAxisTypeBasedOnLayout(layout: LayoutType | undefined, axisType: AxisType, axisDomainType: AxisDomainTypeInput): EvaluatedAxisDomainType | undefined;
Index: de_modules/recharts/types/util/getChartPointer.d.ts
===================================================================
--- node_modules/recharts/types/util/getChartPointer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { ChartPointer, MousePointer } from './types';
-/**
- * Computes the chart coordinates from the mouse event.
- *
- * The coordinates are relative to the top-left corner of the chart,
- * where the top-left corner of the chart is (0, 0).
- * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.
- *
- * The coordinates are rounded to the nearest integer and are including a CSS transform scale.
- * So a chart that's scaled will return the same coordinates as a chart that's not scaled.
- *
- * @param event The mouse event from React event handlers
- * @return chartPointer The chart coordinates relative to the top-left corner of the chart
- */
-export declare const getChartPointer: (event: MousePointer) => ChartPointer;
Index: de_modules/recharts/types/util/getClassNameFromUnknown.d.ts
===================================================================
--- node_modules/recharts/types/util/getClassNameFromUnknown.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare function getClassNameFromUnknown(u: unknown): string;
Index: de_modules/recharts/types/util/getEveryNth.d.ts
===================================================================
--- node_modules/recharts/types/util/getEveryNth.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * Given an array and a number N, return a new array which contains every nTh
- * element of the input array. For n below 1, an empty array is returned.
- * For n equal to 1, the input array is returned as is.
- * For n greater than the length of the array, an array containing the first element
- * and every nTh element after that (if any) is returned.
- *
- * @param array An input array.
- * @param n A number specifying which elements to take.
- * @returns The result array of the same type as the input array.
- */
-export declare function getEveryNth<Type>(array: ReadonlyArray<Type>, n: number): ReadonlyArray<Type>;
Index: de_modules/recharts/types/util/getRadiusAndStrokeWidthFromDot.d.ts
===================================================================
--- node_modules/recharts/types/util/getRadiusAndStrokeWidthFromDot.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { ActiveDotType, DotType } from './types';
-export declare function getRadiusAndStrokeWidthFromDot(dot: ActiveDotType | DotType): {
-    r: number;
-    strokeWidth: number;
-};
Index: de_modules/recharts/types/util/getSliced.d.ts
===================================================================
--- node_modules/recharts/types/util/getSliced.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare function getSliced<T>(arr: ReadonlyArray<T>, startIndex: number, endIndex: number): ReadonlyArray<T>;
Index: de_modules/recharts/types/util/isDomainSpecifiedByUser.d.ts
===================================================================
--- node_modules/recharts/types/util/isDomainSpecifiedByUser.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import { AxisDomain, NumberDomain } from './types';
-export declare function isWellFormedNumberDomain(v: unknown): v is NumberDomain;
-export declare function extendDomain(providedDomain: NumberDomain, boundaryDomain: NumberDomain, allowDataOverflow: boolean): NumberDomain;
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- *
- * This function does not accept data as an argument.
- * This is to enable a performance optimization - if the domain is there,
- * and we know what it is without traversing all the data,
- * then we don't have to traverse all the data!
- *
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param allowDataOverflow boolean, provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-export declare function numericalDomainSpecifiedWithoutRequiringData(userDomain: AxisDomain | undefined, allowDataOverflow: boolean): ((string | number | undefined)[] & NumberDomain) | undefined;
-/**
- * So Recharts allows users to provide their own domains,
- * but it also places some expectations on what the domain is.
- * We can improve on the typescript typing, but we also need a runtime test
- * to observe that the user-provided domain is well-formed,
- * that is: an array with exactly two numbers.
- * If the user-provided domain is not well-formed,
- * this function will return undefined - in which case we should traverse the data to calculate the real domain.
- *
- * This function is for parsing the numerical domain only.
- *
- * You are probably thinking, why does domain need tick count?
- * Well it adjusts the domain based on where the "nice ticks" land, and nice ticks depend on the tick count.
- *
- * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.
- * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization
- * @param allowDataOverflow provided by users. If true then the data domain wins
- *
- * @return [min, max] domain if it's well-formed; undefined if the domain is invalid
- */
-export declare function parseNumericalUserDomain(userDomain: AxisDomain | undefined, dataDomain: NumberDomain | undefined, allowDataOverflow: boolean): NumberDomain | undefined;
Index: de_modules/recharts/types/util/isWellBehavedNumber.d.ts
===================================================================
--- node_modules/recharts/types/util/isWellBehavedNumber.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-export declare function isWellBehavedNumber(n: unknown): n is number;
-export declare function isPositiveNumber(n: unknown): n is number;
Index: de_modules/recharts/types/util/payload/getUniqPayload.d.ts
===================================================================
--- node_modules/recharts/types/util/payload/getUniqPayload.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-type UniqueFunc<T> = (entry: T) => unknown;
-/**
- * This is configuration option that decides how to filter for unique values only:
- *
- * - `false` means "no filter"
- * - `true` means "use recharts default filter"
- * - function means "use return of this function as the default key"
- */
-export type UniqueOption<T> = boolean | UniqueFunc<T>;
-export declare function getUniqPayload<T>(payload: ReadonlyArray<T>, option: UniqueOption<T> | undefined, defaultUniqBy: UniqueFunc<T>): ReadonlyArray<T>;
-export {};
Index: de_modules/recharts/types/util/propsAreEqual.d.ts
===================================================================
--- node_modules/recharts/types/util/propsAreEqual.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-/**
- * So usually React would compare only the first level of props using Object.is.
- * However, in our case many props are objects or arrays, and our own docs recommend to do that!
- * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.
- *
- * Because charts can and do receive large props (typically the data array),
- * we only limit this to a subset of known props that are likely to be objects/arrays.
- *
- * @param prevProps
- * @param nextProps
- */
-export declare function propsAreEqual<T extends Record<string, unknown>>(prevProps: T, nextProps: T): boolean;
Index: de_modules/recharts/types/util/resolveDefaultProps.d.ts
===================================================================
--- node_modules/recharts/types/util/resolveDefaultProps.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/**
- * This function mimics the behavior of the `defaultProps` static property in React.
- * Functional components do not have a defaultProps property, so this function is useful to resolve default props.
- *
- * The common recommendation is to use ES6 destructuring with default values in the function signature,
- * but you need to be careful there and make sure you destructure all the individual properties
- * and not the whole object. See the test file for example.
- *
- * And because destructuring all properties one by one is a faff, and it's easy to miss one property,
- * this function exists.
- *
- * @param realProps - the props object passed to the component by the user
- * @param defaultProps - the default props object defined in the component by Recharts
- * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.
- */
-export declare function resolveDefaultProps<T, D extends Partial<T>>(realProps: T, defaultProps: D & DisallowExtraKeys<T, D>): RequiresDefaultProps<T, D>;
-/**
- * Helper type to extract the keys of T that are required.
- * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},
- * it means K is required, so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-export type RequiredKeys<T> = {
-    [K in keyof T]-?: object extends Pick<T, K> ? never : K;
-}[keyof T];
-/**
- * Helper type to extract the keys of T that are optional.
- * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},
- * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).
- * [keyof T] at the end creates a union of the kept keys.
- */
-export type OptionalKeys<T> = {
-    [K in keyof T]-?: object extends Pick<T, K> ? K : never;
-}[keyof T];
-/**
- * Helper type to ensure keys of D exist in T.
- * For each key K in D, if K is also a key of T, keep the type D[K].
- * If K is NOT a key of T, map it to type `never`.
- * An object cannot have a property of type `never`, effectively disallowing extra keys.
- */
-export type DisallowExtraKeys<T, D> = {
-    [K in keyof D]: K extends keyof T ? D[K] : never;
-};
-/**
- * This type will take a source type `Props` and a default type `Defaults` and will return a new type
- * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.
- * Properties that are required in `Props` and optional in `Defaults` will remain required.
- * Properties that are optional in both `Props` and `Defaults` will remain optional.
- *
- * This is useful for creating a type that represents the resolved props of a component with default props.
- */
-export type RequiresDefaultProps<Props, Defaults extends Partial<Props>> = Pick<Props, RequiredKeys<Props>> & Required<Pick<Props, Extract<OptionalKeys<Props>, RequiredKeys<Defaults>>>> & Pick<Props, Exclude<OptionalKeys<Props>, keyof Defaults>>;
Index: de_modules/recharts/types/util/round.d.ts
===================================================================
--- node_modules/recharts/types/util/round.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-export declare function round(num: number, roundPrecision?: number): number;
-/**
- * This function will accept a string template literal and for each
- * variable placeholder, it will round the value to avoid long float numbers in
- * the SVG path which might cause rendering issues in some browsers.
- */
-export declare function roundTemplateLiteral(strings: TemplateStringsArray, ...values: ReadonlyArray<number | string>): string;
Index: de_modules/recharts/types/util/scale/CartesianScaleHelper.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/CartesianScaleHelper.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import { BandPosition, RechartsScale } from './RechartsScale';
-import { CategoricalDomainItem, Coordinate, NullableCoordinate } from '../types';
-export interface CartesianScaleHelper<XDomain extends CategoricalDomainItem = CategoricalDomainItem, YDomain extends CategoricalDomainItem = CategoricalDomainItem> {
-    map(value: {
-        x: XDomain;
-        y: YDomain;
-    }, { position }: {
-        position: BandPosition;
-    }): Coordinate;
-    mapWithFallback(value: {
-        x?: XDomain | null | undefined;
-        y?: YDomain | null | undefined;
-    }, { position, fallback }: {
-        position?: BandPosition;
-        fallback: 'rangeMin' | 'rangeMax';
-    }): Coordinate;
-    isInRange({ x, y }: Partial<NullableCoordinate>): boolean;
-}
-/**
- * Groups X and Y scale functions together and provides helper methods.
- */
-export declare class CartesianScaleHelperImpl<XDomain extends CategoricalDomainItem = CategoricalDomainItem, YDomain extends CategoricalDomainItem = CategoricalDomainItem> implements CartesianScaleHelper<XDomain, YDomain> {
-    private xAxisScale;
-    private yAxisScale;
-    constructor({ x, y }: {
-        x: RechartsScale<XDomain>;
-        y: RechartsScale<YDomain>;
-    });
-    map(value: {
-        x: XDomain;
-        y: YDomain;
-    }, { position }: {
-        position: BandPosition;
-    }): Coordinate;
-    mapWithFallback(value: {
-        x?: XDomain | null | undefined;
-        y?: YDomain | null | undefined;
-    }, { position, fallback }: {
-        position?: BandPosition;
-        fallback: 'rangeMin' | 'rangeMax';
-    }): Coordinate;
-    isInRange({ x, y }: Partial<NullableCoordinate>): boolean;
-}
Index: de_modules/recharts/types/util/scale/CustomScaleDefinition.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/CustomScaleDefinition.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,64 +1,0 @@
-import { CategoricalDomainItem } from '../types';
-/**
- * A subset of d3-scale. This is the external representation;
- * This is the type that we expect from `axis.scale` props, if users want to provide custom scales.
- *
- * The actual d3 scales have many more methods, but we don't need them all.
- * Specifically we want to avoid all the setters
- * - immutable API is preferred in Recharts and mutating state will lead to hard-to-debug issues.
- *
- * @see {@link ScaleType} and {@link D3ScaleType} for string shortcuts that you can use instead of this interface.
- */
-export interface CustomScaleDefinition<Domain extends CategoricalDomainItem = CategoricalDomainItem> {
-    /**
-     * Returns the scale's current domain.
-     * The domain could be:
-     * - in categorical scales: an array of strings or categories
-     * - in continuous scales: tuple of two numbers: [min, max]
-     */
-    domain(): ReadonlyArray<Domain>;
-    /**
-     * Sets the domain of the scale.
-     */
-    domain(newDomain: ReadonlyArray<Domain>): this;
-    /**
-     * Returns the scale’s current range.
-     */
-    range(): ReadonlyArray<number>;
-    /**
-     * Sets the range of the scale.
-     */
-    range(newRange: ReadonlyArray<number>): this;
-    /**
-     * Returns an exact copy of this scale. Changes to this scale will not affect the returned scale, and vice versa.
-     * We use this method in Recharts to ensure immutability - changes to the scale outside should not affect the internal state,
-     * as they won't trigger re-renders in React.
-     */
-    copy(): CustomScaleDefinition<Domain>;
-    /**
-     * Returns width of each band.
-     * Most scales are not banded, so this method is optional.
-     * Banded scales (like scaleBand from d3-scale) will implement this method.
-     */
-    bandwidth?: () => number;
-    /**
-     * Quantitative (continuous) scales provide a ticks method that returns representative values from the scale’s domain.
-     * Ordinal and band scales do not have this method.
-     *
-     * An optional count argument requests more or fewer ticks.
-     * The number of ticks returned, however, is not necessarily equal to the requested count.
-     *
-     * @see {@link https://d3js.org/d3-scale/linear#linear_ticks}
-     * @see {@link https://observablehq.com/@d3/scale-ticks}
-     *
-     * @param count number of ticks
-     */
-    ticks?: (count: number | undefined) => ReadonlyArray<number>;
-    /**
-     * Given an arbitrary input, returns the corresponding point derived from the output range if the input is in the scale's domain.
-     * If the input is not included in the domain, returns undefined.
-     *
-     * @param input
-     */
-    (input: Domain): number | undefined;
-}
Index: de_modules/recharts/types/util/scale/RechartsScale.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/RechartsScale.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-import { CustomScaleDefinition } from './CustomScaleDefinition';
-import { CategoricalDomainItem, D3ScaleType } from '../types';
-import { AxisRange } from '../../state/selectors/axisSelectors';
-/**
- * This is internal representation of scale used in Recharts.
- * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.
- * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.
- * This is important for React integration - if the scale changes, we want to trigger re-renders.
- * Mutating the scale in place would not trigger re-renders, leading to stale UI.
- */
-export interface RechartsScale<Domain extends CategoricalDomainItem = CategoricalDomainItem> {
-    /**
-     * Returns the scale's current domain.
-     * The domain could be:
-     * - in categorical scales: an array of strings or categories
-     * - in continuous scales: tuple of two numbers: [min, max]
-     */
-    domain(): ReadonlyArray<Domain>;
-    /**
-     * Returns the scale’s current range.
-     *
-     * This should be a readonly tuple of two numbers: [min, max]
-     * and so a better type would be `readonly [number, number]` but again - breaking changes,
-     * so let's keep that for 4.0.
-     */
-    range(): ReadonlyArray<number>;
-    /**
-     * Returns the minimum value from the range.
-     */
-    rangeMin(): number;
-    /**
-     * Returns the maximum value from the range.
-     */
-    rangeMax(): number;
-    /**
-     * Returns true if the given value is within the scale's range.
-     * @param value
-     */
-    isInRange(value: number): boolean;
-    /**
-     * Returns width of each band.
-     * Most scales are not banded, so this method is optional.
-     * Banded scales (like scaleBand from d3-scale) will implement this method.
-     */
-    bandwidth?: () => number;
-    /**
-     * Quantitative (continuous) scales provide a ticks method that returns representative values from the scale’s domain.
-     * Ordinal and band scales do not have this method.
-     *
-     * An optional count argument requests more or fewer ticks.
-     * The number of ticks returned, however, is not necessarily equal to the requested count.
-     *
-     * @see {@link https://d3js.org/d3-scale/linear#linear_ticks}
-     * @see {@link https://observablehq.com/@d3/scale-ticks}
-     *
-     * @param count number of ticks
-     */
-    ticks?: (count: number | undefined) => ReadonlyArray<number>;
-    /**
-     * Given an arbitrary input, returns the corresponding point derived from the output range if the input is in the scale's domain.
-     * If the input is not included in the domain, returns undefined.
-     */
-    map(input: unknown, options?: {
-        position?: BandPosition;
-    }): number | undefined;
-}
-/**
- * Position within a band for banded scales.
- * In scales that are not banded, this parameter is ignored.
- *
- * @inline
- */
-export type BandPosition = 'start' | 'middle' | 'end';
-export declare function d3ScaleToRechartsScale<Domain extends CategoricalDomainItem = CategoricalDomainItem>(d3Scale: CustomScaleDefinition<Domain>): RechartsScale<Domain>;
-/**
- * Converts external scale definition into internal RechartsScale definition.
- * @param scale custom function scale - if you have the string, use `combineRealScaleType` first
- * @param axisDomain
- * @param axisRange
- */
-export declare function rechartsScaleFactory(scale: CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>, axisDomain: ReadonlyArray<CategoricalDomainItem>, axisRange: AxisRange): RechartsScale;
-export declare function rechartsScaleFactory(scale: D3ScaleType, axisDomain: ReadonlyArray<CategoricalDomainItem>, axisRange: AxisRange): RechartsScale;
-export declare function rechartsScaleFactory(scale: D3ScaleType | undefined, axisDomain: ReadonlyArray<CategoricalDomainItem>, axisRange: AxisRange): RechartsScale | undefined;
-export declare function rechartsScaleFactory(scale: undefined, axisDomain: ReadonlyArray<CategoricalDomainItem>, axisRange: AxisRange): undefined;
Index: de_modules/recharts/types/util/scale/getNiceTickValues.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/getNiceTickValues.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/**
- * @fileOverview calculate tick values of scale
- * @author xile611, arcthur
- * @date 2015-09-17
- */
-import Decimal from 'decimal.js-light';
-import { NumberDomain } from '../types';
-/**
- * Calculate a interval of a minimum value and a maximum value
- *
- * @param  {Number} min       The minimum value
- * @param  {Number} max       The maximum value
- * @return {Array} An interval
- */
-export declare const getValidInterval: ([min, max]: [number, number]) => [number, number];
-/**
- * Calculate the step which is easy to understand between ticks, like 10, 20, 25
- *
- * @param  roughStep        The rough step calculated by dividing the difference by the tickCount
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step which is easy to understand between two ticks
- */
-export declare const getFormatStep: (roughStep: Decimal, allowDecimals: boolean, correctionFactor: number) => Decimal;
-/**
- * calculate the ticks when the minimum value equals to the maximum value
- *
- * @param  value         The minimum value which is also the maximum value
- * @param  tickCount     The count of ticks
- * @param  allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export declare const getTickOfSingleValue: (value: number, tickCount: number, allowDecimals: boolean) => Array<number>;
-/**
- * Calculate the step
- *
- * @param  min              The minimum value of an interval
- * @param  max              The maximum value of an interval
- * @param  tickCount        The count of ticks
- * @param  allowDecimals    Allow the ticks to be decimals or not
- * @param  correctionFactor A correction factor
- * @return The step, minimum value of ticks, maximum value of ticks
- */
-export declare const calculateStep: (min: number, max: number, tickCount: number, allowDecimals: boolean, correctionFactor?: number) => {
-    step: Decimal;
-    tickMin: Decimal;
-    tickMax: Decimal;
-};
-/**
- * Calculate the ticks of an interval. Ticks can appear outside the interval
- * if it makes them more rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export declare const getNiceTickValues: ([min, max]: NumberDomain, tickCount?: number, allowDecimals?: boolean) => number[];
-/**
- * Calculate the ticks of an interval.
- * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.
- *
- * @param tuple of [min,max] min: The minimum value, max: The maximum value
- * @param tickCount     The count of ticks. This function may return less than tickCount ticks if the interval is too small.
- * @param allowDecimals Allow the ticks to be decimals or not
- * @return array of ticks
- */
-export declare const getTickValuesFixedDomain: ([min, max]: NumberDomain, tickCount: number, allowDecimals?: boolean) => number[];
Index: de_modules/recharts/types/util/scale/index.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { getNiceTickValues, getTickValuesFixedDomain } from './getNiceTickValues';
Index: de_modules/recharts/types/util/scale/util/arithmetic.d.ts
===================================================================
--- node_modules/recharts/types/util/scale/util/arithmetic.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * @fileOverview Some common arithmetic methods
- * @author xile611
- * @date 2015-09-17
- */
-import Decimal from 'decimal.js-light';
-/**
- * Get the digit count of a number.
- * If the absolute value is in the interval [0.1, 1), the result is 0.
- * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.
- * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.
- *
- * @param  {Number} value The number
- * @return {Integer}      Digit count
- */
-declare function getDigitCount(value: number): number;
-/**
- * Get the data in the interval [start, end) with a fixed step.
- * Also handles JS calculation precision issues.
- *
- * @param  {Decimal} start Start point
- * @param  {Decimal} end   End point, not included
- * @param  {Decimal} step  Step size
- * @return {Array}         Array of numbers
- */
-declare function rangeStep(start: Decimal, end: Decimal, step: Decimal): Array<number>;
-export { rangeStep, getDigitCount };
Index: de_modules/recharts/types/util/stacks/getStackSeriesIdentifier.d.ts
===================================================================
--- node_modules/recharts/types/util/stacks/getStackSeriesIdentifier.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { StackSeriesIdentifier } from './stackTypes';
-import { MaybeStackedGraphicalItem } from '../../state/types/StackedGraphicalItem';
-export declare function getStackSeriesIdentifier(graphicalItem: MaybeStackedGraphicalItem): StackSeriesIdentifier;
-export declare function getStackSeriesIdentifier(graphicalItem: undefined): undefined;
-export declare function getStackSeriesIdentifier(graphicalItem: MaybeStackedGraphicalItem | undefined): StackSeriesIdentifier | undefined;
Index: de_modules/recharts/types/util/stacks/stackTypes.d.ts
===================================================================
--- node_modules/recharts/types/util/stacks/stackTypes.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { Series } from 'victory-vendor/d3-shape';
-import { StackId } from '../ChartUtils';
-import { GraphicalItemId } from '../../state/graphicalItemsSlice';
-import { MaybeStackedGraphicalItem } from '../../state/types/StackedGraphicalItem';
-/**
- * Collection of all stacks in the chart.
- * A simple stacked chart will have a single stack. Recharts allows for multiple stacks.
- * In a chart without stacks, this will be an empty object.
- */
-export type AllStackGroups = Record<StackId, StackGroup>;
-/**
- * One stack group is a collection of series that are stacked together.
- * The stack series and graphical items are joined by the StackSeriesIdentifier.
- */
-export type StackGroup = {
-    readonly stackedData: ReadonlyArray<StackSeries>;
-    readonly graphicalItems: ReadonlyArray<MaybeStackedGraphicalItem>;
-};
-/**
- * Stack series is a collection of data points. This represents one individual graphical item in the stack.
- * There are presumably other series in the stack, which are represented by other `StackSeries` objects
- * that this object will not know about.
- * The coordinates of the data points in the series already include the baseline of the previous series in the stack.
- */
-export type StackSeries = Series<StackDataPoint, StackSeriesIdentifier>;
-/**
- * Stack data point is a tuple of two numbers:
- * first, where the previous stack series ended,
- * and second, where the current stack series ends.
- * This allows for setting the baseline of the next series in the stack.
- */
-export type StackDataPoint = [number, number];
-/**
- * Identifier for a series in the stack.
- * Used to join the stack series with the graphical items in the stack.
- */
-export type StackSeriesIdentifier = GraphicalItemId;
Index: de_modules/recharts/types/util/svgPropertiesAndEvents.d.ts
===================================================================
--- node_modules/recharts/types/util/svgPropertiesAndEvents.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-import { SVGProps } from 'react';
-import { EventKeysType } from './excludeEventProps';
-import { DataAttributeKeyType, SVGElementPropKeysType } from './svgPropertiesNoEvents';
-type SVGElementPropsAndEventsType = SVGElementPropKeysType | EventKeysType | DataAttributeKeyType;
-export type SVGPropsAndEvents<T> = Pick<T, Extract<keyof T, SVGElementPropsAndEventsType>>;
-/**
- * Filters an object to only include SVG properties, data attributes, and event handlers.
- * @param obj - The object to filter.
- * @returns A new object containing only valid SVG properties, data attributes, and event handlers.
- */
-export declare function svgPropertiesAndEvents<T extends Record<PropertyKey, any>>(obj: T): SVGPropsAndEvents<T>;
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-export declare function svgPropertiesAndEventsFromUnknown(input: unknown): SVGProps<unknown> | null;
-export {};
Index: de_modules/recharts/types/util/svgPropertiesNoEvents.d.ts
===================================================================
--- node_modules/recharts/types/util/svgPropertiesNoEvents.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-declare const SVGElementPropKeys: readonly ["aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "className", "color", "height", "id", "lang", "max", "media", "method", "min", "name", "style", "target", "width", "role", "tabIndex", "accentHeight", "accumulate", "additive", "alignmentBaseline", "allowReorder", "alphabetic", "amplitude", "arabicForm", "ascent", "attributeName", "attributeType", "autoReverse", "azimuth", "baseFrequency", "baselineShift", "baseProfile", "bbox", "begin", "bias", "by", "calcMode", "capHeight", "clip", "clipPath", "clipPathUnits", "clipRule", "colorInterpolation", "colorInterpolationFilters", "colorProfile", "colorRendering", "contentScriptType", "contentStyleType", "cursor", "cx", "cy", "d", "decelerate", "descent", "diffuseConstant", "direction", "display", "divisor", "dominantBaseline", "dur", "dx", "dy", "edgeMode", "elevation", "enableBackground", "end", "exponent", "externalResourcesRequired", "fill", "fillOpacity", "fillRule", "filter", "filterRes", "filterUnits", "floodColor", "floodOpacity", "focusable", "fontFamily", "fontSize", "fontSizeAdjust", "fontStretch", "fontStyle", "fontVariant", "fontWeight", "format", "from", "fx", "fy", "g1", "g2", "glyphName", "glyphOrientationHorizontal", "glyphOrientationVertical", "glyphRef", "gradientTransform", "gradientUnits", "hanging", "horizAdvX", "horizOriginX", "href", "ideographic", "imageRendering", "in2", "in", "intercept", "k1", "k2", "k3", "k4", "k", "kernelMatrix", "kernelUnitLength", "kerning", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "letterSpacing", "lightingColor", "limitingConeAngle", "local", "markerEnd", "markerHeight", "markerMid", "markerStart", "markerUnits", "markerWidth", "mask", "maskContentUnits", "maskUnits", "mathematical", "mode", "numOctaves", "offset", "opacity", "operator", "order", "orient", "orientation", "origin", "overflow", "overlinePosition", "overlineThickness", "paintOrder", "panose1", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointerEvents", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "r", "radius", "refX", "refY", "renderingIntent", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "restart", "result", "rotate", "rx", "ry", "seed", "shapeRendering", "slope", "spacing", "specularConstant", "specularExponent", "speed", "spreadMethod", "startOffset", "stdDeviation", "stemh", "stemv", "stitchTiles", "stopColor", "stopOpacity", "strikethroughPosition", "strikethroughThickness", "string", "stroke", "strokeDasharray", "strokeDashoffset", "strokeLinecap", "strokeLinejoin", "strokeMiterlimit", "strokeOpacity", "strokeWidth", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textAnchor", "textDecoration", "textLength", "textRendering", "to", "transform", "u1", "u2", "underlinePosition", "underlineThickness", "unicode", "unicodeBidi", "unicodeRange", "unitsPerEm", "vAlphabetic", "values", "vectorEffect", "version", "vertAdvY", "vertOriginX", "vertOriginY", "vHanging", "vIdeographic", "viewTarget", "visibility", "vMathematical", "widths", "wordSpacing", "writingMode", "x1", "x2", "x", "xChannelSelector", "xHeight", "xlinkActuate", "xlinkArcrole", "xlinkHref", "xlinkRole", "xlinkShow", "xlinkTitle", "xlinkType", "xmlBase", "xmlLang", "xmlns", "xmlnsXlink", "xmlSpace", "y1", "y2", "y", "yChannelSelector", "z", "zoomAndPan", "ref", "key", "angle"];
-export type SVGElementPropKeysType = (typeof SVGElementPropKeys)[number];
-export declare function isSvgElementPropKey(key: PropertyKey): boolean;
-export type DataAttributeKeyType = `data-${string}`;
-export type SVGPropsNoEvents<T> = Pick<T, Extract<keyof T, SVGElementPropKeysType | DataAttributeKeyType>>;
-/**
- * Checks if the property is a data attribute.
- * @param key The property key.
- * @returns True if the key starts with 'data-', false otherwise.
- */
-export declare function isDataAttribute(key: PropertyKey): key is DataAttributeKeyType;
-/**
- * Filters an object to only include SVG properties. Removes all event handlers too.
- * @param obj - The object to filter
- * @returns A new object containing only valid SVG properties, excluding event handlers.
- */
-export declare function svgPropertiesNoEvents<T extends Record<PropertyKey, any>>(obj: T | boolean): SVGPropsNoEvents<T>;
-/**
- * Function to filter SVG properties from various input types.
- * The input types can be:
- * - A record of string keys to any values, in which case it returns a record of only SVG properties
- * - A React element, in which case it returns the props of the element filtered to only SVG properties
- * - Anything else, in which case it returns null
- *
- * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.
- * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.
- *
- * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.
- *
- * @param input - The input to filter, which can be a record, a React element, or other types.
- * @returns A record of SVG properties if the input is a record or React element, otherwise null.
- */
-export declare function svgPropertiesNoEventsFromUnknown(input: unknown): Partial<Record<SVGElementPropKeysType, unknown>> | null;
-export {};
Index: de_modules/recharts/types/util/tooltip/translate.d.ts
===================================================================
--- node_modules/recharts/types/util/tooltip/translate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import { CSSProperties } from 'react';
-import { Coordinate, CartesianViewBox, AllowInDimension } from '../types';
-export type Dimension2D = 'x' | 'y';
-export declare function getTooltipCSSClassName({ coordinate, translateX, translateY, }: {
-    translateX: number | undefined;
-    translateY: number | undefined;
-    coordinate: Partial<Coordinate> | undefined;
-}): string;
-export declare function getTooltipTranslateXY({ allowEscapeViewBox, coordinate, key, offset, position, reverseDirection, tooltipDimension, viewBox, viewBoxDimension, }: {
-    allowEscapeViewBox: AllowInDimension;
-    coordinate: Coordinate;
-    key: Dimension2D;
-    offset: number;
-    position: Partial<Coordinate> | undefined;
-    reverseDirection: AllowInDimension;
-    tooltipDimension: number;
-    viewBox: CartesianViewBox;
-    viewBoxDimension: number | undefined;
-}): number;
-export declare function getTransformStyle({ translateX, translateY, useTranslate3d, }: {
-    useTranslate3d: boolean;
-    translateX: number;
-    translateY: number;
-}): CSSProperties;
-export declare function getTooltipTranslate({ allowEscapeViewBox, coordinate, offsetTop, offsetLeft, position, reverseDirection, tooltipBox, useTranslate3d, viewBox, }: {
-    allowEscapeViewBox: AllowInDimension;
-    coordinate: Coordinate | undefined;
-    offsetTop: number;
-    offsetLeft: number;
-    position: Partial<Coordinate> | undefined;
-    reverseDirection: AllowInDimension;
-    tooltipBox: {
-        width: number;
-        height: number;
-    };
-    useTranslate3d: boolean;
-    viewBox: CartesianViewBox;
-}): {
-    cssProperties: CSSProperties;
-    cssClasses: string;
-};
Index: de_modules/recharts/types/util/types.d.ts
===================================================================
--- node_modules/recharts/types/util/types.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1289 +1,0 @@
-import { AnimationEvent, AriaAttributes, ClipboardEvent, Component, CompositionEvent, CSSProperties, DragEvent, FocusEvent, FormEvent, FunctionComponent, KeyboardEvent, MouseEvent, PointerEvent, ReactElement, ReactNode, SVGProps, SyntheticEvent, TouchEvent, TransitionEvent, UIEvent, WheelEvent } from 'react';
-import type { Props as DotProps } from '../shape/Dot';
-import { AxisRange } from '../state/selectors/axisSelectors';
-import { ExternalMouseEvents } from '../chart/types';
-import { SyncMethod } from '../synchronisation/types';
-import { DotPoint } from '../component/Dots';
-import { SVGPropsNoEvents } from './svgPropertiesNoEvents';
-import { BaseValue } from '../cartesian/Area';
-import { ImplicitLabelType } from '../component/Label';
-import { CustomScaleDefinition } from './scale/CustomScaleDefinition';
-import { ChartData } from '../state/chartDataSlice';
-import { XAxisOrientation, XAxisPadding, YAxisOrientation, YAxisPadding } from '../state/cartesianAxisSlice';
-import { TextAnchor, TextVerticalAnchor } from '../component/Text';
-import type { TickFormatter } from '../cartesian/CartesianAxis';
-/**
- * Determines how values are stacked:
- *
- * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.
- * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.
- * - `wiggle` and `silhouette` tries to keep the chart centered.
- * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.
- * - `positive` ignores all negative values, and then behaves like \`none\`.
- *
- * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}
- * (note that the `diverging` offset in d3 is named `sign` in recharts)
- *
- * @inline
- */
-export type StackOffsetType = 'sign' | 'expand' | 'none' | 'wiggle' | 'silhouette' | 'positive';
-export type CartesianLayout = 'horizontal' | 'vertical';
-export type PolarLayout = 'centric' | 'radial';
-/**
- * @deprecated use either `CartesianLayout` or `PolarLayout` instead.
- * Mixing both charts families leads to ambiguity in the type system.
- * These two layouts share very few properties, so it is best to keep them separate.
- */
-export type LayoutType = CartesianLayout | PolarLayout;
-export type AxisType = 'xAxis' | 'yAxis' | 'zAxis' | 'angleAxis' | 'radiusAxis';
-/**
- * The type of axis.
- *
- * `category`: Treats data as distinct values.
- * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
- *
- * `number`: Treats data as continuous range.
- * Values that are numerically closer are placed closer together on the axis.
- *
- * `auto`: the type is inferred based on the chart layout.
- *
- * This is external type - users will provide this type in props.
- * Internally we will evaluate it to either 'category' or 'number' based on the layout,
- * before sending it to the store.
- *
- * @inline
- */
-export type AxisDomainTypeInput = 'number' | 'category' | 'auto';
-/**
- * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',
- * based on the chart layout and axis kind. Then they can start using this type.
- */
-export type EvaluatedAxisDomainType = 'number' | 'category';
-/**
- * Extracts values from data objects.
- *
- * @inline
- */
-export type DataKey<T> = string | number | ((obj: T) => any);
-export type PresentationAttributesWithProps<P, T> = AriaAttributes & DOMAttributesWithProps<P, T> & Omit<SVGProps<T>, keyof DOMAttributesWithProps<P, T>>;
-export type PresentationAttributesAdaptChildEvent<P, T> = AriaAttributes & DOMAttributesAdaptChildEvent<P, T> & Omit<SVGProps<T>, keyof DOMAttributesAdaptChildEvent<P, T>>;
-/**
- * @inline
- */
-export type SymbolType = 'circle' | 'cross' | 'diamond' | 'square' | 'star' | 'triangle' | 'wye';
-/**
- * @inline
- */
-export type LegendType = 'circle' | 'cross' | 'diamond' | 'line' | 'plainline' | 'rect' | 'square' | 'star' | 'triangle' | 'wye' | 'none';
-export type TooltipType = 'none';
-export type AllowInDimension = {
-    x?: boolean;
-    y?: boolean;
-};
-export interface Coordinate {
-    x: number;
-    y: number;
-}
-export interface NullableCoordinate {
-    x: number | null;
-    y: number | null;
-}
-export type RectangleCoordinate = {
-    x1: number;
-    y1: number;
-    x2: number;
-    y2: number;
-};
-export type RectanglePosition = {
-    x: number;
-    y: number;
-    width: number;
-    height: number;
-};
-/**
- * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.
- * Instead, use either `Coordinate` or `PolarCoordinate`.
- */
-export interface ChartCoordinate extends Coordinate {
-    xAxis?: any;
-    yAxis?: any;
-    width?: any;
-    height?: any;
-    offset?: ChartOffsetInternal;
-    angle?: number;
-    radius?: number;
-    cx?: number;
-    cy?: number;
-    startAngle?: number;
-    endAngle?: number;
-    innerRadius?: number;
-    outerRadius?: number;
-}
-export type PolarCoordinate = Coordinate & {
-    angle: number;
-    startAngle: number;
-    endAngle: number;
-    clockWise: boolean;
-    cx: number;
-    cy: number;
-    innerRadius: number;
-    outerRadius: number;
-    radius: number;
-};
-export declare const isPolarCoordinate: (c: Coordinate | PolarCoordinate) => c is PolarCoordinate;
-export type D3ScaleType = 'linear' | 'pow' | 'sqrt' | 'log' | 'symlog' | 'identity' | 'time' | 'band' | 'point' | 'ordinal' | 'quantile' | 'quantize' | 'utc' | 'sequential' | 'threshold';
-/**
- * String shortcuts for scale types.
- * In case none of these does what you want you can also provide your own scale function
- * @see {@link CustomScaleDefinition}
- */
-export type ScaleType = 'auto' | D3ScaleType;
-type EventHandler<P, E extends SyntheticEvent<any>> = {
-    bivarianceHack(props: P, event: E): void;
-}['bivarianceHack'];
-type ReactEventHandler<P, T = Element> = EventHandler<P, SyntheticEvent<T>>;
-type ClipboardEventHandler<P, T = Element> = EventHandler<P, ClipboardEvent<T>>;
-type CompositionEventHandler<P, T = Element> = EventHandler<P, CompositionEvent<T>>;
-type DragEventHandler<P, T = Element> = EventHandler<P, DragEvent<T>>;
-type FocusEventHandler<P, T = Element> = EventHandler<P, FocusEvent<T>>;
-type FormEventHandler<P, T = Element> = EventHandler<P, FormEvent<T>>;
-type KeyboardEventHandler<P, T = Element> = EventHandler<P, KeyboardEvent<T>>;
-export type RechartsMouseEventHandler<P, T = Element> = EventHandler<P, MouseEvent<T>>;
-type TouchEventHandler<P, T = Element> = EventHandler<P, TouchEvent<T>>;
-type PointerEventHandler<P, T = Element> = EventHandler<P, PointerEvent<T>>;
-type UIEventHandler<P, T = Element> = EventHandler<P, UIEvent<T>>;
-type WheelEventHandler<P, T = Element> = EventHandler<P, WheelEvent<T>>;
-type AnimationEventHandler<P, T = Element> = EventHandler<P, AnimationEvent<T>>;
-type TransitionEventHandler<P, T = Element> = EventHandler<P, TransitionEvent<T>>;
-export interface DOMAttributesWithProps<P, T> {
-    children?: ReactNode;
-    dangerouslySetInnerHTML?: {
-        __html: string | TrustedHTML;
-    };
-    onCopy?: ClipboardEventHandler<P, T>;
-    onCopyCapture?: ClipboardEventHandler<P, T>;
-    onCut?: ClipboardEventHandler<P, T>;
-    onCutCapture?: ClipboardEventHandler<P, T>;
-    onPaste?: ClipboardEventHandler<P, T>;
-    onPasteCapture?: ClipboardEventHandler<P, T>;
-    onCompositionEnd?: CompositionEventHandler<P, T>;
-    onCompositionEndCapture?: CompositionEventHandler<P, T>;
-    onCompositionStart?: CompositionEventHandler<P, T>;
-    onCompositionStartCapture?: CompositionEventHandler<P, T>;
-    onCompositionUpdate?: CompositionEventHandler<P, T>;
-    onCompositionUpdateCapture?: CompositionEventHandler<P, T>;
-    onFocus?: FocusEventHandler<P, T>;
-    onFocusCapture?: FocusEventHandler<P, T>;
-    onBlur?: FocusEventHandler<P, T>;
-    onBlurCapture?: FocusEventHandler<P, T>;
-    onChange?: FormEventHandler<P, T>;
-    onChangeCapture?: FormEventHandler<P, T>;
-    onBeforeInput?: FormEventHandler<P, T>;
-    onBeforeInputCapture?: FormEventHandler<P, T>;
-    onInput?: FormEventHandler<P, T>;
-    onInputCapture?: FormEventHandler<P, T>;
-    onReset?: FormEventHandler<P, T>;
-    onResetCapture?: FormEventHandler<P, T>;
-    onSubmit?: FormEventHandler<P, T>;
-    onSubmitCapture?: FormEventHandler<P, T>;
-    onInvalid?: FormEventHandler<P, T>;
-    onInvalidCapture?: FormEventHandler<P, T>;
-    onLoad?: ReactEventHandler<P, T>;
-    onLoadCapture?: ReactEventHandler<P, T>;
-    onError?: ReactEventHandler<P, T>;
-    onErrorCapture?: ReactEventHandler<P, T>;
-    onKeyDown?: KeyboardEventHandler<P, T>;
-    onKeyDownCapture?: KeyboardEventHandler<P, T>;
-    onKeyPress?: KeyboardEventHandler<P, T>;
-    onKeyPressCapture?: KeyboardEventHandler<P, T>;
-    onKeyUp?: KeyboardEventHandler<P, T>;
-    onKeyUpCapture?: KeyboardEventHandler<P, T>;
-    onAbort?: ReactEventHandler<P, T>;
-    onAbortCapture?: ReactEventHandler<P, T>;
-    onCanPlay?: ReactEventHandler<P, T>;
-    onCanPlayCapture?: ReactEventHandler<P, T>;
-    onCanPlayThrough?: ReactEventHandler<P, T>;
-    onCanPlayThroughCapture?: ReactEventHandler<P, T>;
-    onDurationChange?: ReactEventHandler<P, T>;
-    onDurationChangeCapture?: ReactEventHandler<P, T>;
-    onEmptied?: ReactEventHandler<P, T>;
-    onEmptiedCapture?: ReactEventHandler<P, T>;
-    onEncrypted?: ReactEventHandler<P, T>;
-    onEncryptedCapture?: ReactEventHandler<P, T>;
-    onEnded?: ReactEventHandler<P, T>;
-    onEndedCapture?: ReactEventHandler<P, T>;
-    onLoadedData?: ReactEventHandler<P, T>;
-    onLoadedDataCapture?: ReactEventHandler<P, T>;
-    onLoadedMetadata?: ReactEventHandler<P, T>;
-    onLoadedMetadataCapture?: ReactEventHandler<P, T>;
-    onLoadStart?: ReactEventHandler<P, T>;
-    onLoadStartCapture?: ReactEventHandler<P, T>;
-    onPause?: ReactEventHandler<P, T>;
-    onPauseCapture?: ReactEventHandler<P, T>;
-    onPlay?: ReactEventHandler<P, T>;
-    onPlayCapture?: ReactEventHandler<P, T>;
-    onPlaying?: ReactEventHandler<P, T>;
-    onPlayingCapture?: ReactEventHandler<P, T>;
-    onProgress?: ReactEventHandler<P, T>;
-    onProgressCapture?: ReactEventHandler<P, T>;
-    onRateChange?: ReactEventHandler<P, T>;
-    onRateChangeCapture?: ReactEventHandler<P, T>;
-    onSeeked?: ReactEventHandler<P, T>;
-    onSeekedCapture?: ReactEventHandler<P, T>;
-    onSeeking?: ReactEventHandler<P, T>;
-    onSeekingCapture?: ReactEventHandler<P, T>;
-    onStalled?: ReactEventHandler<P, T>;
-    onStalledCapture?: ReactEventHandler<P, T>;
-    onSuspend?: ReactEventHandler<P, T>;
-    onSuspendCapture?: ReactEventHandler<P, T>;
-    onTimeUpdate?: ReactEventHandler<P, T>;
-    onTimeUpdateCapture?: ReactEventHandler<P, T>;
-    onVolumeChange?: ReactEventHandler<P, T>;
-    onVolumeChangeCapture?: ReactEventHandler<P, T>;
-    onWaiting?: ReactEventHandler<P, T>;
-    onWaitingCapture?: ReactEventHandler<P, T>;
-    onAuxClick?: RechartsMouseEventHandler<P, T>;
-    onAuxClickCapture?: RechartsMouseEventHandler<P, T>;
-    onClick?: RechartsMouseEventHandler<P, T>;
-    onClickCapture?: RechartsMouseEventHandler<P, T>;
-    onContextMenu?: RechartsMouseEventHandler<P, T>;
-    onContextMenuCapture?: RechartsMouseEventHandler<P, T>;
-    onDoubleClick?: RechartsMouseEventHandler<P, T>;
-    onDoubleClickCapture?: RechartsMouseEventHandler<P, T>;
-    onDrag?: DragEventHandler<P, T>;
-    onDragCapture?: DragEventHandler<P, T>;
-    onDragEnd?: DragEventHandler<P, T>;
-    onDragEndCapture?: DragEventHandler<P, T>;
-    onDragEnter?: DragEventHandler<P, T>;
-    onDragEnterCapture?: DragEventHandler<P, T>;
-    onDragExit?: DragEventHandler<P, T>;
-    onDragExitCapture?: DragEventHandler<P, T>;
-    onDragLeave?: DragEventHandler<P, T>;
-    onDragLeaveCapture?: DragEventHandler<P, T>;
-    onDragOver?: DragEventHandler<P, T>;
-    onDragOverCapture?: DragEventHandler<P, T>;
-    onDragStart?: DragEventHandler<P, T>;
-    onDragStartCapture?: DragEventHandler<P, T>;
-    onDrop?: DragEventHandler<P, T>;
-    onDropCapture?: DragEventHandler<P, T>;
-    /**
-     * The customized event handler of mousedown in this chart.
-     */
-    onMouseDown?: RechartsMouseEventHandler<P, T>;
-    onMouseDownCapture?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mouseenter in this chart.
-     */
-    onMouseEnter?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mouseleave in this chart.
-     */
-    onMouseLeave?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mousemove in this chart.
-     */
-    onMouseMove?: RechartsMouseEventHandler<P, T>;
-    onMouseMoveCapture?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mouseout in this chart.
-     */
-    onMouseOut?: RechartsMouseEventHandler<P, T>;
-    onMouseOutCapture?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mouseover in this chart.
-     */
-    onMouseOver?: RechartsMouseEventHandler<P, T>;
-    onMouseOverCapture?: RechartsMouseEventHandler<P, T>;
-    /**
-     * The customized event handler of mouseup in this chart.
-     */
-    onMouseUp?: RechartsMouseEventHandler<P, T>;
-    onMouseUpCapture?: RechartsMouseEventHandler<P, T>;
-    onSelect?: ReactEventHandler<P, T>;
-    onSelectCapture?: ReactEventHandler<P, T>;
-    onTouchCancel?: TouchEventHandler<P, T>;
-    onTouchCancelCapture?: TouchEventHandler<P, T>;
-    onTouchEnd?: TouchEventHandler<P, T>;
-    onTouchEndCapture?: TouchEventHandler<P, T>;
-    onTouchMove?: TouchEventHandler<P, T>;
-    onTouchMoveCapture?: TouchEventHandler<P, T>;
-    onTouchStart?: TouchEventHandler<P, T>;
-    onTouchStartCapture?: TouchEventHandler<P, T>;
-    onPointerDown?: PointerEventHandler<P, T>;
-    onPointerDownCapture?: PointerEventHandler<P, T>;
-    onPointerMove?: PointerEventHandler<P, T>;
-    onPointerMoveCapture?: PointerEventHandler<P, T>;
-    onPointerUp?: PointerEventHandler<P, T>;
-    onPointerUpCapture?: PointerEventHandler<P, T>;
-    onPointerCancel?: PointerEventHandler<P, T>;
-    onPointerCancelCapture?: PointerEventHandler<P, T>;
-    onPointerEnter?: PointerEventHandler<P, T>;
-    onPointerEnterCapture?: PointerEventHandler<P, T>;
-    onPointerLeave?: PointerEventHandler<P, T>;
-    onPointerLeaveCapture?: PointerEventHandler<P, T>;
-    onPointerOver?: PointerEventHandler<P, T>;
-    onPointerOverCapture?: PointerEventHandler<P, T>;
-    onPointerOut?: PointerEventHandler<P, T>;
-    onPointerOutCapture?: PointerEventHandler<P, T>;
-    onGotPointerCapture?: PointerEventHandler<P, T>;
-    onGotPointerCaptureCapture?: PointerEventHandler<P, T>;
-    onLostPointerCapture?: PointerEventHandler<P, T>;
-    onLostPointerCaptureCapture?: PointerEventHandler<P, T>;
-    onScroll?: UIEventHandler<P, T>;
-    onScrollCapture?: UIEventHandler<P, T>;
-    onWheel?: WheelEventHandler<P, T>;
-    onWheelCapture?: WheelEventHandler<P, T>;
-    onAnimationStart?: AnimationEventHandler<P, T>;
-    onAnimationStartCapture?: AnimationEventHandler<P, T>;
-    onAnimationEnd?: AnimationEventHandler<P, T>;
-    onAnimationEndCapture?: AnimationEventHandler<P, T>;
-    onAnimationIteration?: AnimationEventHandler<P, T>;
-    onAnimationIterationCapture?: AnimationEventHandler<P, T>;
-    onTransitionEnd?: TransitionEventHandler<P, T>;
-    onTransitionEndCapture?: TransitionEventHandler<P, T>;
-}
-type AdaptChildEventHandler<P, E extends SyntheticEvent<any>> = {
-    bivarianceHack(data: P, index: number, event: E): void;
-}['bivarianceHack'];
-type AdaptChildReactEventHandler<P, T = Element> = AdaptChildEventHandler<P, SyntheticEvent<T>>;
-type AdaptChildClipboardEventHandler<P, T = Element> = AdaptChildEventHandler<P, ClipboardEvent<T>>;
-type AdaptChildCompositionEventHandler<P, T = Element> = AdaptChildEventHandler<P, CompositionEvent<T>>;
-type AdaptChildDragEventHandler<P, T = Element> = AdaptChildEventHandler<P, DragEvent<T>>;
-type AdaptChildFocusEventHandler<P, T = Element> = AdaptChildEventHandler<P, FocusEvent<T>>;
-type AdaptChildFormEventHandler<P, T = Element> = AdaptChildEventHandler<P, FormEvent<T>>;
-type AdaptChildKeyboardEventHandler<P, T = Element> = AdaptChildEventHandler<P, KeyboardEvent<T>>;
-type AdaptChildMouseEventHandler<P, T = Element> = AdaptChildEventHandler<P, MouseEvent<T>>;
-type AdaptChildTouchEventHandler<P, T = Element> = AdaptChildEventHandler<P, TouchEvent<T>>;
-type AdaptChildPointerEventHandler<P, T = Element> = AdaptChildEventHandler<P, PointerEvent<T>>;
-type AdaptChildUIEventHandler<P, T = Element> = AdaptChildEventHandler<P, UIEvent<T>>;
-type AdaptChildWheelEventHandler<P, T = Element> = AdaptChildEventHandler<P, WheelEvent<T>>;
-type AdaptChildAnimationEventHandler<P, T = Element> = AdaptChildEventHandler<P, AnimationEvent<T>>;
-type AdaptChildTransitionEventHandler<P, T = Element> = AdaptChildEventHandler<P, TransitionEvent<T>>;
-export type DOMAttributesAdaptChildEvent<P, T> = {
-    children?: ReactNode;
-    dangerouslySetInnerHTML?: {
-        __html: string;
-    };
-    onCopy?: AdaptChildClipboardEventHandler<P, T>;
-    onCopyCapture?: AdaptChildClipboardEventHandler<P, T>;
-    onCut?: AdaptChildClipboardEventHandler<P, T>;
-    onCutCapture?: AdaptChildClipboardEventHandler<P, T>;
-    onPaste?: AdaptChildClipboardEventHandler<P, T>;
-    onPasteCapture?: AdaptChildClipboardEventHandler<P, T>;
-    onCompositionEnd?: AdaptChildCompositionEventHandler<P, T>;
-    onCompositionEndCapture?: AdaptChildCompositionEventHandler<P, T>;
-    onCompositionStart?: AdaptChildCompositionEventHandler<P, T>;
-    onCompositionStartCapture?: AdaptChildCompositionEventHandler<P, T>;
-    onCompositionUpdate?: AdaptChildCompositionEventHandler<P, T>;
-    onCompositionUpdateCapture?: AdaptChildCompositionEventHandler<P, T>;
-    onFocus?: AdaptChildFocusEventHandler<P, T>;
-    onFocusCapture?: AdaptChildFocusEventHandler<P, T>;
-    onBlur?: AdaptChildFocusEventHandler<P, T>;
-    onBlurCapture?: AdaptChildFocusEventHandler<P, T>;
-    onChange?: AdaptChildFormEventHandler<P, T>;
-    onChangeCapture?: AdaptChildFormEventHandler<P, T>;
-    onBeforeInput?: AdaptChildFormEventHandler<P, T>;
-    onBeforeInputCapture?: AdaptChildFormEventHandler<P, T>;
-    onInput?: AdaptChildFormEventHandler<P, T>;
-    onInputCapture?: AdaptChildFormEventHandler<P, T>;
-    onReset?: AdaptChildFormEventHandler<P, T>;
-    onResetCapture?: AdaptChildFormEventHandler<P, T>;
-    onSubmit?: AdaptChildFormEventHandler<P, T>;
-    onSubmitCapture?: AdaptChildFormEventHandler<P, T>;
-    onInvalid?: AdaptChildFormEventHandler<P, T>;
-    onInvalidCapture?: AdaptChildFormEventHandler<P, T>;
-    onLoad?: AdaptChildReactEventHandler<P, T>;
-    onLoadCapture?: AdaptChildReactEventHandler<P, T>;
-    onError?: AdaptChildReactEventHandler<P, T>;
-    onErrorCapture?: AdaptChildReactEventHandler<P, T>;
-    onKeyDown?: AdaptChildKeyboardEventHandler<P, T>;
-    onKeyDownCapture?: AdaptChildKeyboardEventHandler<P, T>;
-    onKeyPress?: AdaptChildKeyboardEventHandler<P, T>;
-    onKeyPressCapture?: AdaptChildKeyboardEventHandler<P, T>;
-    onKeyUp?: AdaptChildKeyboardEventHandler<P, T>;
-    onKeyUpCapture?: AdaptChildKeyboardEventHandler<P, T>;
-    onAbort?: AdaptChildReactEventHandler<P, T>;
-    onAbortCapture?: AdaptChildReactEventHandler<P, T>;
-    onCanPlay?: AdaptChildReactEventHandler<P, T>;
-    onCanPlayCapture?: AdaptChildReactEventHandler<P, T>;
-    onCanPlayThrough?: AdaptChildReactEventHandler<P, T>;
-    onCanPlayThroughCapture?: AdaptChildReactEventHandler<P, T>;
-    onDurationChange?: AdaptChildReactEventHandler<P, T>;
-    onDurationChangeCapture?: AdaptChildReactEventHandler<P, T>;
-    onEmptied?: AdaptChildReactEventHandler<P, T>;
-    onEmptiedCapture?: AdaptChildReactEventHandler<P, T>;
-    onEncrypted?: AdaptChildReactEventHandler<P, T>;
-    onEncryptedCapture?: AdaptChildReactEventHandler<P, T>;
-    onEnded?: AdaptChildReactEventHandler<P, T>;
-    onEndedCapture?: AdaptChildReactEventHandler<P, T>;
-    onLoadedData?: AdaptChildReactEventHandler<P, T>;
-    onLoadedDataCapture?: AdaptChildReactEventHandler<P, T>;
-    onLoadedMetadata?: AdaptChildReactEventHandler<P, T>;
-    onLoadedMetadataCapture?: AdaptChildReactEventHandler<P, T>;
-    onLoadStart?: AdaptChildReactEventHandler<P, T>;
-    onLoadStartCapture?: AdaptChildReactEventHandler<P, T>;
-    onPause?: AdaptChildReactEventHandler<P, T>;
-    onPauseCapture?: AdaptChildReactEventHandler<P, T>;
-    onPlay?: AdaptChildReactEventHandler<P, T>;
-    onPlayCapture?: AdaptChildReactEventHandler<P, T>;
-    onPlaying?: AdaptChildReactEventHandler<P, T>;
-    onPlayingCapture?: AdaptChildReactEventHandler<P, T>;
-    onProgress?: AdaptChildReactEventHandler<P, T>;
-    onProgressCapture?: AdaptChildReactEventHandler<P, T>;
-    onRateChange?: AdaptChildReactEventHandler<P, T>;
-    onRateChangeCapture?: AdaptChildReactEventHandler<P, T>;
-    onSeeked?: AdaptChildReactEventHandler<P, T>;
-    onSeekedCapture?: AdaptChildReactEventHandler<P, T>;
-    onSeeking?: AdaptChildReactEventHandler<P, T>;
-    onSeekingCapture?: AdaptChildReactEventHandler<P, T>;
-    onStalled?: AdaptChildReactEventHandler<P, T>;
-    onStalledCapture?: AdaptChildReactEventHandler<P, T>;
-    onSuspend?: AdaptChildReactEventHandler<P, T>;
-    onSuspendCapture?: AdaptChildReactEventHandler<P, T>;
-    onTimeUpdate?: AdaptChildReactEventHandler<P, T>;
-    onTimeUpdateCapture?: AdaptChildReactEventHandler<P, T>;
-    onVolumeChange?: AdaptChildReactEventHandler<P, T>;
-    onVolumeChangeCapture?: AdaptChildReactEventHandler<P, T>;
-    onWaiting?: AdaptChildReactEventHandler<P, T>;
-    onWaitingCapture?: AdaptChildReactEventHandler<P, T>;
-    onAuxClick?: AdaptChildMouseEventHandler<P, T>;
-    onAuxClickCapture?: AdaptChildMouseEventHandler<P, T>;
-    onClick?: AdaptChildMouseEventHandler<P, T>;
-    onClickCapture?: AdaptChildMouseEventHandler<P, T>;
-    onContextMenu?: AdaptChildMouseEventHandler<P, T>;
-    onContextMenuCapture?: AdaptChildMouseEventHandler<P, T>;
-    onDoubleClick?: AdaptChildMouseEventHandler<P, T>;
-    onDoubleClickCapture?: AdaptChildMouseEventHandler<P, T>;
-    onDrag?: AdaptChildDragEventHandler<P, T>;
-    onDragCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragEnd?: AdaptChildDragEventHandler<P, T>;
-    onDragEndCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragEnter?: AdaptChildDragEventHandler<P, T>;
-    onDragEnterCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragExit?: AdaptChildDragEventHandler<P, T>;
-    onDragExitCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragLeave?: AdaptChildDragEventHandler<P, T>;
-    onDragLeaveCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragOver?: AdaptChildDragEventHandler<P, T>;
-    onDragOverCapture?: AdaptChildDragEventHandler<P, T>;
-    onDragStart?: AdaptChildDragEventHandler<P, T>;
-    onDragStartCapture?: AdaptChildDragEventHandler<P, T>;
-    onDrop?: AdaptChildDragEventHandler<P, T>;
-    onDropCapture?: AdaptChildDragEventHandler<P, T>;
-    onMouseDown?: AdaptChildMouseEventHandler<P, T>;
-    onMouseDownCapture?: AdaptChildMouseEventHandler<P, T>;
-    onMouseEnter?: AdaptChildMouseEventHandler<P, T>;
-    onMouseLeave?: AdaptChildMouseEventHandler<P, T>;
-    onMouseMove?: AdaptChildMouseEventHandler<P, T>;
-    onMouseMoveCapture?: AdaptChildMouseEventHandler<P, T>;
-    onMouseOut?: AdaptChildMouseEventHandler<P, T>;
-    onMouseOutCapture?: AdaptChildMouseEventHandler<P, T>;
-    onMouseOver?: AdaptChildMouseEventHandler<P, T>;
-    onMouseOverCapture?: AdaptChildMouseEventHandler<P, T>;
-    onMouseUp?: AdaptChildMouseEventHandler<P, T>;
-    onMouseUpCapture?: AdaptChildMouseEventHandler<P, T>;
-    onSelect?: AdaptChildReactEventHandler<P, T>;
-    onSelectCapture?: AdaptChildReactEventHandler<P, T>;
-    onTouchCancel?: AdaptChildTouchEventHandler<P, T>;
-    onTouchCancelCapture?: AdaptChildTouchEventHandler<P, T>;
-    onTouchEnd?: AdaptChildTouchEventHandler<P, T>;
-    onTouchEndCapture?: AdaptChildTouchEventHandler<P, T>;
-    onTouchMove?: AdaptChildTouchEventHandler<P, T>;
-    onTouchMoveCapture?: AdaptChildTouchEventHandler<P, T>;
-    onTouchStart?: AdaptChildTouchEventHandler<P, T>;
-    onTouchStartCapture?: AdaptChildTouchEventHandler<P, T>;
-    onPointerDown?: AdaptChildPointerEventHandler<P, T>;
-    onPointerDownCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerMove?: AdaptChildPointerEventHandler<P, T>;
-    onPointerMoveCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerUp?: AdaptChildPointerEventHandler<P, T>;
-    onPointerUpCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerCancel?: AdaptChildPointerEventHandler<P, T>;
-    onPointerCancelCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerEnter?: AdaptChildPointerEventHandler<P, T>;
-    onPointerEnterCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerLeave?: AdaptChildPointerEventHandler<P, T>;
-    onPointerLeaveCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerOver?: AdaptChildPointerEventHandler<P, T>;
-    onPointerOverCapture?: AdaptChildPointerEventHandler<P, T>;
-    onPointerOut?: AdaptChildPointerEventHandler<P, T>;
-    onPointerOutCapture?: AdaptChildPointerEventHandler<P, T>;
-    onGotPointerCapture?: AdaptChildPointerEventHandler<P, T>;
-    onGotPointerCaptureCapture?: AdaptChildPointerEventHandler<P, T>;
-    onLostPointerCapture?: AdaptChildPointerEventHandler<P, T>;
-    onLostPointerCaptureCapture?: AdaptChildPointerEventHandler<P, T>;
-    onScroll?: AdaptChildUIEventHandler<P, T>;
-    onScrollCapture?: AdaptChildUIEventHandler<P, T>;
-    onWheel?: AdaptChildWheelEventHandler<P, T>;
-    onWheelCapture?: AdaptChildWheelEventHandler<P, T>;
-    onAnimationStart?: AdaptChildAnimationEventHandler<P, T>;
-    onAnimationStartCapture?: AdaptChildAnimationEventHandler<P, T>;
-    onAnimationEnd?: AdaptChildAnimationEventHandler<P, T>;
-    onAnimationEndCapture?: AdaptChildAnimationEventHandler<P, T>;
-    onAnimationIteration?: AdaptChildAnimationEventHandler<P, T>;
-    onAnimationIterationCapture?: AdaptChildAnimationEventHandler<P, T>;
-    onTransitionEnd?: AdaptChildTransitionEventHandler<P, T>;
-    onTransitionEndCapture?: AdaptChildTransitionEventHandler<P, T>;
-};
-/**
- * The type of easing function to use for animations
- *
- * @inline
- */
-export type AnimationTiming = 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';
-/** Specifies the duration of animation, the unit of this option is ms. */
-export type AnimationDuration = number;
-export type OffsetVertical = {
-    top: number;
-    bottom: number;
-};
-export type OffsetHorizontal = {
-    left: number;
-    right: number;
-};
-/**
- * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.
- * We use it internally but let's not expose it to the outside world.
- * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.
- */
-export type ChartOffsetInternal = {
-    top: number;
-    bottom: number;
-    left: number;
-    right: number;
-    width: number;
-    height: number;
-    brushBottom: number;
-};
-export interface Padding {
-    top: number;
-    bottom: number;
-    left: number;
-    right: number;
-}
-export interface GeometrySector {
-    cx: number;
-    cy: number;
-    innerRadius: number;
-    outerRadius: number;
-    startAngle: number;
-    endAngle: number;
-}
-export type GeometrySectorWithCornerRadius = GeometrySector & {
-    cornerRadius: number;
-    forceCornerRadius: boolean;
-    cornerIsExternal: boolean;
-};
-export type AxisDomainItem = string | number | ((d: number) => string | number) | 'auto' | 'dataMin' | 'dataMax';
-/**
- * The domain of axis.
- * This is the definition
- *
- * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.
- * Categorical domain is defined as array of all possible values.
- *
- * Can be specified in many ways:
- * - array of numbers
- * - with special strings like 'dataMin' and 'dataMax'
- * - with special string math like 'dataMin - 100'
- * - with keyword 'auto'
- * - or a function
- * - array of functions
- * - or a combination of the above
- */
-export type AxisDomain = ReadonlyArray<string> | ReadonlyArray<number> | Readonly<[AxisDomainItem, AxisDomainItem]> | (([dataMin, dataMax]: NumberDomain, allowDataOverflow: boolean) => NumberDomain);
-/**
- * NumberDomain is an evaluated {@link AxisDomain}.
- * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.
- * This is after all the keywords and functions were evaluated and what is left is [min, max].
- *
- * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.
- *
- * There are also `category` axes that have different things than numbers in their domain.
- */
-export type NumberDomain = readonly [min: number, max: number];
-export type CategoricalDomainItem = number | string | Date;
-export type CategoricalDomain = ReadonlyArray<CategoricalDomainItem>;
-export type BaseTickContentProps = {
-    angle: number;
-    className?: string;
-    fill: string | undefined;
-    height?: number | string;
-    index: number;
-    name?: string;
-    stroke: string;
-    payload: CartesianTickItem;
-    textAnchor: TextAnchor;
-    tickFormatter: TickFormatter | undefined;
-    verticalAnchor: TextVerticalAnchor;
-    visibleTicksCount: number;
-    width?: number | string;
-    x: number | string;
-    y: number | string;
-};
-export type XAxisTickContentProps = BaseTickContentProps & {
-    orientation: XAxisOrientation;
-    padding: XAxisPadding | undefined;
-};
-export type YAxisTickContentProps = BaseTickContentProps & {
-    orientation: YAxisOrientation;
-    padding: YAxisPadding | undefined;
-};
-export type TickProp<T> = SVGProps<SVGTextElement> | ReactElement | ((props: T) => ReactNode) | boolean;
-export interface BaseAxisProps {
-    /**
-     * The type of axis.
-     *
-     * `category`: Treats data as distinct values.
-     * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.
-     *
-     * `number`: Treats data as continuous range.
-     * Values that are numerically closer are placed closer together on the axis.
-     *
-     * `auto`: the type is inferred based on the chart layout.
-     */
-    type?: 'category' | 'number' | 'auto';
-    /**
-     * The name of data.
-     * This option will be used in tooltip.
-     * If no value was set to this option, the value of dataKey will be used alternatively.
-     */
-    name?: string;
-    /**
-     * The unit of data. This option will be used in tooltip.
-     */
-    unit?: string;
-    /**
-     * Decides how to extract the value of this Axis from the data:
-     * - `string`: the name of the field in the data object;
-     * - `number`: the index of the field in the data;
-     * - `function`: a function that receives the data object and returns the value of this Axis.
-     *
-     * If undefined, it will reuse the dataKey of graphical items.
-     */
-    dataKey?: DataKey<any>;
-    /**
-     * Specify the domain of axis when the axis is a number axis.
-     *
-     * If undefined, then the domain is calculated based on the data and dataKeys.
-     *
-     * The length of domain should be 2, and we will validate the values in domain.
-     *
-     * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',
-     * or a function that accepts a single argument and returns a number.
-     *
-     * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.
-     * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.
-     *
-     * @example <XAxis type="number" domain={['dataMin', 'dataMax']} />
-     * @example <XAxis type="number" domain={[0, 'dataMax']} />
-     * @example <XAxis type="number" domain={['auto', 'auto']} />
-     * @example <XAxis type="number" domain={[0, 'dataMax + 1000']} />
-     * @example <XAxis type="number" domain={['dataMin - 100', 'dataMax + 100']} />
-     * @example <XAxis type="number" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />
-     * @example <XAxis type="number" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />
-     * @example <XAxis type="number" domain={[0, 100]} allowDataOverflow />
-     */
-    domain?: AxisDomain;
-    /**
-     * Scale function determines how data values are mapped to visual values.
-     * In other words, decided the mapping between data domain and coordinate range.
-     *
-     * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.
-     *
-     * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.
-     *
-     * @defaultValue auto
-     * @example <XAxis scale="log" />
-     * @example
-     * import { scaleLog } from 'd3-scale';
-     * const scale = scaleLog().base(Math.E);
-     * <YAxis scale={scale} />
-     */
-    scale?: ScaleType | CustomScaleDefinition | CustomScaleDefinition<string> | CustomScaleDefinition<number> | CustomScaleDefinition<Date>;
-}
-/**
- * Props shared in all renderable axes - meaning the ones that are drawn on the chart,
- * can have ticks, axis line, etc.
- */
-export interface RenderableAxisProps extends BaseAxisProps {
-    /**
-     * Tick text rotation angle in degrees.
-     * Positive values rotate clockwise, negative values rotate counterclockwise.
-     *
-     * @defaultValue 0
-     */
-    angle?: number;
-    /**
-     * If set true, the axis do not display in the chart.
-     *
-     * @defaultValue false
-     */
-    hide?: boolean;
-    /**
-     * Defines how the individual label text is rendered.
-     * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.
-     *
-     * If you want to customize the overall axis label, use the `label` prop instead.
-     *
-     * Options:
-     * - `false`: Do not render any tick labels.
-     * - `true`: Render tick labels with default settings.
-     * - `object`: An object of props to be merged into the internally calculated tick props.
-     * - `ReactElement`: A custom React element to be used as the tick label.
-     * - `function`: A function that returns a React element for custom rendering of tick labels.
-     *
-     * @defaultValue true
-     */
-    tick?: TickProp<unknown>;
-    /**
-     * The count of axis ticks. Not used if 'type' is 'category'.
-     * @defaultValue 5
-     */
-    tickCount?: number;
-    /**
-     * Determines how the axis line is drawn. Options:
-     * - `true`: the axis line is drawn with default props;
-     * - `false`: the axis line is not visible;
-     * - `object`: passed as props to SVG `<line>` element representing the axis line.
-     *
-     * @defaultValue true
-     */
-    axisLine?: boolean | SVGProps<SVGLineElement>;
-    /**
-     * If false set, tick lines will not be drawn.
-     * If true set, tick lines will be drawn which have the props calculated internally.
-     * If object set, tick lines will be drawn which have the props merged
-     * by the internal calculated props and the option.
-     * @defaultValue true
-     */
-    tickLine?: boolean | SVGProps<SVGLineElement>;
-    /**
-     * The length of tick line.
-     * @defaultValue 6
-     */
-    tickSize?: number;
-    /**
-     * The formatter function of tick.
-     */
-    tickFormatter?: (value: any, index: number) => string;
-    /**
-     * When domain of the axis is specified and the type of the axis is 'number',
-     * if allowDataOverflow is set to be false,
-     * the domain will be adjusted when the minimum value of data is smaller than domain[0] or
-     * the maximum value of data is greater than domain[1] so that the axis displays all data values.
-     * If set to true, graphic elements (line, area, bars) will be clipped to conform to the specified domain.
-     *
-     * @defaultValue false
-     */
-    allowDataOverflow?: boolean;
-    /**
-     * Allow the axis has duplicated categories or not when the type of axis is "category".
-     * @defaultValue true
-     */
-    allowDuplicatedCategory?: boolean;
-    /**
-     * Allow the ticks of axis to be decimals or not.
-     *
-     * @defaultValue true
-     */
-    allowDecimals?: boolean;
-    /**
-     * Ensures that all datapoints within a chart contribute to its domain calculation, even when they are hidden
-     * @defaultValue false
-     */
-    includeHidden?: boolean;
-    /**
-     * @deprecated Recharts computes the range automatically based on chart width or height
-     *
-     * Recharts ignores this prop since 3.0
-     */
-    range?: AxisRange;
-    /**
-     * Defines a single label for the whole axis.
-     * This prop renders one label in the center of the axis line.
-     * Useful for labeling the axis as a whole, like "Time (in seconds)" or "Distance (in meters)".
-     *
-     * This is not controlling tick labels.
-     * If you want to customize tick labels, please see `tickFormatter` or `tick` props.
-     *
-     * - `false`: no label is rendered
-     * - `string` | `number`: the content of the label
-     * - `object`: the props of LabelList component
-     * - `ReactElement`: a custom label element
-     * - `function`: a render function of custom label
-     *
-     * @defaultValue false
-     */
-    label?: ImplicitLabelType;
-    /** The HTML element's class name */
-    className?: string;
-    /**
-     * If set to true, the ticks of this axis are reversed.
-     * @defaultValue false
-     */
-    reversed?: boolean;
-}
-/** Defines how ticks are placed and whether / how tick collisions are handled.
- * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.
- * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.
- * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.
- * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.
- * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.
- */
-export type AxisInterval = number | 'preserveStart' | 'preserveEnd' | 'preserveStartEnd' | 'equidistantPreserveStart' | 'equidistantPreserveEnd';
-/**
- * Ticks can be any type when the axis is the type of category.
- *
- * Ticks must be numbers when the axis is the type of number.
- */
-export type AxisTick = number | string;
-export interface TickItem {
-    value: any;
-    coordinate: number;
-    index: number;
-    /**
-     * How far this tick is offset from the start of a category band.
-     * On axes that do not have bands, this will always be zero.
-     *
-     * We never read offset internally in Recharts,
-     * but it has been part of the external API so let's keep it here for people who do use it.
-     */
-    offset?: number;
-}
-export interface CartesianTickItem extends TickItem {
-    tickCoord?: number;
-    tickSize?: number;
-    isShow?: boolean;
-}
-export interface Margin {
-    top: number;
-    right: number;
-    bottom: number;
-    left: number;
-}
-/**
- * @inline
- */
-export interface CartesianViewBox {
-    x?: number;
-    y?: number;
-    width?: number;
-    height?: number;
-}
-export type CartesianViewBoxRequired = Required<CartesianViewBox>;
-interface PolarViewBox {
-    cx?: number;
-    cy?: number;
-    innerRadius?: number;
-    outerRadius?: number;
-    startAngle?: number;
-    endAngle?: number;
-    clockWise?: boolean;
-}
-export type PolarViewBoxRequired = Required<PolarViewBox>;
-export type TrapezoidViewBox = {
-    /**
-     * The x-coordinate of the upper left corner of the trapezoid.
-     * If the upper side is shorter than the lower side, this will be the x-coordinate of the upper left corner,
-     * meaning that the X does take into account the varying width of the trapezoid.
-     */
-    x: number;
-    /**
-     * The y-coordinate of the upper side of the trapezoid.
-     * Nothing exciting happening here.
-     */
-    y: number;
-    /**
-     * The width of the upper side of the trapezoid.
-     */
-    upperWidth: number;
-    /**
-     * The width of the lower side of the trapezoid.
-     */
-    lowerWidth: number;
-    /**
-     * The overall width of the trapezoid: `Math.max(upperWidth, lowerWidth)`.
-     */
-    width: number;
-    /**
-     * The height of the trapezoid.
-     */
-    height: number;
-};
-/**
- * @inline
- */
-export type ViewBox = CartesianViewBoxRequired | PolarViewBoxRequired;
-type RecordString<T> = Record<string, T>;
-type AdaptEventHandlersReturn = RecordString<(e?: Event) => any> | RecordString<(e: Event) => void> | null;
-export declare const adaptEventHandlers: (props: RecordString<any> | Component | FunctionComponent | boolean, newHandler?: (e?: Event) => any) => AdaptEventHandlersReturn;
-export declare const adaptEventsOfChild: (props: RecordString<any>, data: any, index: number) => RecordString<(e?: Event) => any> | null;
-/**
- * 'axis' means that all graphical items belonging to this axis tick will be highlighted,
- * and all will be present in the tooltip.
- * Tooltip with 'axis' will display when hovering on the chart background.
- *
- * 'item' means only the one graphical item being hovered will show in the tooltip.
- * Tooltip with 'item' will display when hovering over individual graphical items.
- *
- * This is calculated internally;
- * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.
- *
- * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,
- * and charts will then see what is allowed and what is not.
- */
-export type TooltipEventType = 'axis' | 'item';
-export interface SankeyNode {
-    dx: number;
-    dy: number;
-    name: string;
-    value: any;
-    x: number;
-    y: number;
-    depth: number;
-    targetNodes: number[];
-    targetLinks: number[];
-    sourceNodes: number[];
-    sourceLinks: number[];
-}
-export interface SankeyLink {
-    target: number;
-    source: number;
-    value: number;
-    sy: number;
-    dy: number;
-    ty: number;
-}
-export type Size = {
-    width: number;
-    height: number;
-};
-/**
- * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component
- */
-export type ActiveDotProps = DotProps & {
-    payload: any;
-    index: number;
-    dataKey: DataKey<any> | undefined;
-    cx: number | undefined;
-    cy: number | undefined;
-    r: number | string | undefined;
-    fill: string;
-    strokeWidth: number;
-    stroke: string;
-    value: any;
-};
-/**
- * This is the type of `activeDot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-export type ActiveDotType = 
-/**
- * true | false will turn the default activeDot on and off, respectively
- */
-boolean
-/**
- * activeDot can be a custom React Component.
- * It should return an SVG element because we are in SVG context - HTML won't work here.
- * Unfortunately, if you write a regular old functional component and have it return SVG element,
- * its default, inferred return type is `JSX.Element` and so if this return type was `SVGElement`
- * then it would look like a type error (even when doing the right thing).
- * So instead here we have ReactNode return type which is invalid in runtime
- * (remember, we are in SVG context so HTML elements won't work, we need SVGElement).
- * But better than forcing everyone to re-type their components I guess.
- */
- | ((props: ActiveDotProps) => ReactNode)
-/**
- * activeDot can be an object; props from here will be appended to the default active dot
- */
- | Partial<ActiveDotProps>
-/**
- * activeDot can be an element; it will get cloned and will receive new extra props.
- * I do not recommend this way! Use React component instead, that way you get more predictable props.
- */
- | ReactElement<SVGProps<SVGElement>>;
-/**
- * Inside the dot event handlers we provide extra information about the dot point
- * that the Dot component itself does not need but users might find useful.
- */
-export type DotItemDotProps = SVGPropsNoEvents<Omit<DotProps, 'points' | 'ref'>> & {
-    points: ReadonlyArray<DotPoint>;
-    index: number;
-    payload: any;
-    dataKey: DataKey<any> | undefined;
-    value: any;
-};
-/**
- * This is the type of `dot` prop on:
- * - Area
- * - Line
- * - Radar
- *
- * @inline
- */
-export type DotType = 
-/**
- * true | false will turn the default dot on and off, respectively
- */
-boolean
-/**
- * dot can be a custom React Component.
- * It should return an SVG element because we are in SVG context - HTML won't work here.
- * Unfortunately, if you write a regular old functional component and have it return SVG element,
- * its default, inferred return type is `JSX.Element` and so if this return type was `SVGElement`
- * then it would look like a type error (even when doing the right thing).
- * So instead here we have ReactNode return type which is invalid in runtime
- * (remember, we are in SVG context so HTML elements won't work, we need SVGElement).
- * But better than forcing everyone to re-type their components I guess.
- *
- * Not that when a function, or a component is used, the props received are {@link DotItemDotProps}
- * which contain some extra information compared to {@link DotProps}.
- */
- | ((props: DotItemDotProps) => ReactNode)
-/**
- * dot can be an object; props from here will be appended to the default dot
- */
- | Partial<DotProps>
-/**
- * dot can be an element; it will get cloned and will receive new extra props.
- * I do not recommend this way! Use React component instead, that way you get more predictable props.
- */
- | ReactElement<SVGProps<SVGElement>>;
-export type ActiveShape<PropsType = Record<string, any>, ElementType = SVGElement> = ReactElement<SVGProps<ElementType>> | ((props: PropsType) => ReactElement | null | undefined) | SVGProps<ElementType> | boolean;
-export type RangeObj = PolarViewBoxRequired & {
-    angle: number;
-    radius: number;
-};
-/**
- * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.
- *
- * This is meant to represent the React.MouseEvent
- * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
- */
-export interface MousePointer {
-    clientX: number;
-    clientY: number;
-    currentTarget: Pick<HTMLElement, 'getBoundingClientRect' | 'offsetWidth' | 'offsetHeight'>;
-}
-/**
- * Coordinates relative to the top-left corner of the chart.
- * Also include scale which means that a chart that's scaled will return the same coordinates as a chart that's not scaled.
- */
-export interface ChartPointer {
-    chartX: number;
-    chartY: number;
-}
-export interface DataProvider {
-    /**
-     * The source data. Each element should be an object.
-     * The properties of each object represent the values of different data dimensions.
-     *
-     * Use the `dataKey` prop to specify which properties to use.
-     *
-     * @example data={[{ name: 'a', value: 12 }]}
-     * @example data={[{ label: 'foo', measurements: [5, 12] }]}
-     */
-    data?: ChartData;
-}
-/**
- * Props shared with all charts.
- */
-interface BaseChartProps extends DataProvider, ExternalMouseEvents {
-    /**
-     * The width of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    width?: number | Percent;
-    /**
-     * The height of chart container.
-     * Can be a number or a percent string like "100%".
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    height?: number | Percent;
-    id?: string;
-    children?: ReactNode;
-    className?: string;
-    /**
-     * Turn on accessibility support for keyboard-only and screen reader users.
-     *
-     * @defaultValue true
-     */
-    accessibilityLayer?: boolean;
-    desc?: string;
-    /**
-     * Empty space around the container.
-     *
-     * @defaultValue {"top":5,"right":5,"bottom":5,"left":5}
-     */
-    margin?: Partial<Margin>;
-    style?: CSSProperties;
-    /**
-     * Charts with the same syncId will synchronize Tooltip and Brush events.
-     *
-     * @see {@link https://recharts.github.io/en-US/examples/SynchronizedAreaChart/ Synchronized Charts Example}
-     */
-    syncId?: number | string;
-    /**
-     * Customize how the charts will synchronize tooltips and brushes.
-     * `index`: synchronize using the data index in the data array. Index expects that all data has the same length.
-     * `value`: synchronize using the data value on categorical axis (categorical: XAxis in horizontal layout, YAxis in vertical layout).
-     * function: a custom sync method which receives tick and data as argument and returns an index.
-     *
-     * @defaultValue index
-     */
-    syncMethod?: SyncMethod;
-    /**
-     * If and where the chart should appear in the tab order
-     */
-    tabIndex?: number;
-    /**
-     * If true, then it will listen to container size changes and adapt the SVG chart accordingly.
-     * If false, then it renders the chart at the specified width and height and will stay that way
-     * even if the container size changes.
-     *
-     * This is similar to ResponsiveContainer but without the need for an extra wrapper component.
-     * The `responsive` prop also uses standard CSS sizing rules, instead of custom resolution logic (like ResponsiveContainer does).
-     * @default false
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}
-     */
-    responsive?: boolean;
-}
-export interface CartesianChartProps extends BaseChartProps {
-    /**
-     * The gap between two bar categories, which can be a percent value or a fixed value.
-     *
-     * @defaultValue 10%
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/barAlignment/ Bar Alignment Guide}
-     */
-    barCategoryGap?: number | string;
-    /**
-     * The gap between two bars in the same category.
-     *
-     * @defaultValue 4
-     *
-     * @see {@link https://recharts.github.io/en-US/guide/barAlignment/ Bar Alignment Guide}
-     */
-    barGap?: number | string;
-    /**
-     * The width or height of each bar. If the barSize is not specified, the size of the
-     * bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.
-     */
-    barSize?: number | string;
-    /**
-     * The base value of area.
-     */
-    baseValue?: BaseValue;
-    compact?: boolean;
-    dataKey?: DataKey<any>;
-    /**
-     * The layout of chart defines the orientation of axes, graphical items, and tooltip.
-     *
-     * @defaultValue horizontal
-     */
-    layout?: CartesianLayout;
-    /**
-     * The maximum width of all the bars in a horizontal BarChart, or maximum height in a vertical BarChart.
-     */
-    maxBarSize?: number;
-    /**
-     * If `false`, stacked items will be rendered left to right.
-     * If `true`, stacked items will be rendered right to left.
-     *
-     * Render direction affects SVG layering, not x position.
-     *
-     * @defaultValue false
-     */
-    reverseStackOrder?: boolean;
-    /**
-     * The ARIA role for the chart, which provides semantic information for screen reader users.
-     */
-    role?: string;
-    /**
-     * The type of offset function used to generate the lower and upper values in the series array.
-     * The types are built-in offsets in d3-shape.
-     * Only applicable for stacked Area or Bar charts.
-     * Has no effect when the stackId prop is not set on Area or Bar components.
-     *
-     * @link https://d3js.org/d3-shape/stack#stack_offset
-     * @see {@link https://recharts.github.io/en-US/examples/BarChartStackedBySign/ Chart with stackOffset=sign example}
-     *
-     * @defaultValue none
-     */
-    stackOffset?: StackOffsetType;
-    throttleDelay?: number;
-    title?: string;
-}
-export interface PolarChartProps extends BaseChartProps {
-    /**
-     * The gap between two bar categories, which can be a percent value or a fixed value.
-     *
-     * @defaultValue 10%
-     */
-    barCategoryGap?: number | string;
-    /**
-     * The gap between two bars in the same category.
-     *
-     * @defaultValue 4
-     */
-    barGap?: number | string;
-    /**
-     * The width or height of each bar. If the barSize is not specified, the size of the
-     * bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.
-     */
-    barSize?: number | string;
-    /**
-     * The x-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of width.
-     * @defaultValue 50%
-     */
-    cx?: number | string;
-    /**
-     * The y-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of height.
-     * @defaultValue 50%
-     */
-    cy?: number | string;
-    dataKey?: DataKey<any>;
-    /**
-     * Angle, in degrees, at which the chart should end.
-     */
-    endAngle?: number;
-    /**
-     * The inner radius of the chart.
-     * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.
-     * @defaultValue 0
-     */
-    innerRadius?: number | string;
-    /**
-     * The layout of chart defines the orientation of axes, graphical items, and tooltip.
-     */
-    layout?: PolarLayout;
-    maxBarSize?: number;
-    /**
-     * The outer radius of the chart.
-     * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.
-     * @defaultValue 80%
-     */
-    outerRadius?: number | string;
-    reverseStackOrder?: boolean;
-    role?: string;
-    stackOffset?: StackOffsetType;
-    /**
-     * Angle in degrees from which the chart should start.
-     */
-    startAngle?: number;
-    throttleDelay?: number;
-    title?: string;
-}
-export type Percent = `${number}%`;
-export type NonEmptyArray<T> = readonly [T, ...T[]];
-export declare const isNonEmptyArray: <T>(arr: ReadonlyArray<T> | null | undefined) => arr is NonEmptyArray<T>;
-export {};
Index: de_modules/recharts/types/util/useAnimationId.d.ts
===================================================================
--- node_modules/recharts/types/util/useAnimationId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/**
- * This hook returns a unique animation id for the object input.
- * If input changes (as in, reference equality is different), the animation id will change.
- * If input does not change, the animation id will not change.
- *
- * This is useful for animations. The Animate component
- * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.
- * Also, we don't always want to re-animate on every render;
- * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).
- *
- * @param input The object to check for changes. Uses reference equality (=== operator)
- * @param prefix Optional prefix to use for the animation id
- * @returns A unique animation id
- */
-export declare function useAnimationId(input: unknown, prefix?: string): string;
Index: de_modules/recharts/types/util/useElementOffset.d.ts
===================================================================
--- node_modules/recharts/types/util/useElementOffset.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/**
- * TODO this documentation does not reflect what this hook is doing, update it.
- * Stores the `offsetHeight`, `offsetLeft`, `offsetTop`, and `offsetWidth` of a DOM element.
- */
-export type ElementOffset = {
-    /**
-     * Height of an element, including vertical padding and borders, as an integer.
-     *
-     * Typically, offsetHeight is a measurement in pixels of the element's CSS height, including any borders, padding, and horizontal scrollbars (if rendered). It does not include the height of pseudo-elements such as ::before or ::after
-     *
-     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
-     */
-    height: number;
-    /**
-     * Number of pixels that the upper left corner of the current element is offset to the left within the HTMLElement.offsetParent node
-     *
-     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft
-     */
-    left: number;
-    /**
-     * Distance from the outer border of the current element (including its margin) to the top padding edge of the offsetParent, the closest positioned ancestor element.
-     *
-     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop
-     */
-    top: number;
-    /**
-     * Layout width of an element as an integer.
-     *
-     * Typically, offsetWidth is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars (if rendered). It does not include the width of pseudo-elements such as ::before or ::after.
-     *
-     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth
-     */
-    width: number;
-};
-export type SetElementOffset = (node: HTMLElement | null) => void;
-/**
- * Use this to listen to element layout changes.
- *
- * Very useful for reading actual sizes of DOM elements relative to the viewport.
- *
- * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.
- * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`
- */
-export declare function useElementOffset(extraDependencies?: ReadonlyArray<unknown>): [ElementOffset, SetElementOffset];
Index: de_modules/recharts/types/util/useId.d.ts
===================================================================
--- node_modules/recharts/types/util/useId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-/**
- * Fallback for React.useId() for versions prior to React 18.
- * Generates a unique ID using a simple counter and a prefix.
- *
- * @returns A unique ID that remains consistent across renders.
- */
-export declare const useIdFallback: () => string;
-export declare const useId: () => string;
Index: de_modules/recharts/types/util/useReportScale.d.ts
===================================================================
--- node_modules/recharts/types/util/useReportScale.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare function useReportScale(): import("react").Dispatch<import("react").SetStateAction<HTMLElement | null>>;
Index: de_modules/recharts/types/util/useUniqueId.d.ts
===================================================================
--- node_modules/recharts/types/util/useUniqueId.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/**
- * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety
- * and falls back to a client-side-only unique ID generator for older versions.
- *
- * The ID will stay the same across renders, and you can optionally provide a prefix.
- *
- * @param [prefix] - An optional prefix for the generated ID.
- * @param [customId] - An optional custom ID to override the generated one.
- * @returns The unique ID.
- */
-export declare function useUniqueId(prefix?: string, customId?: string): string;
-/**
- * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.
- * Either way the ID is now guaranteed to be present so no more nulls or undefined.
- */
-export type WithIdRequired<T> = T & {
-    id: string;
-};
-export type WithoutId<T> = Omit<T, 'id'>;
Index: de_modules/recharts/types/zIndex/DefaultZIndexes.d.ts
===================================================================
--- node_modules/recharts/types/zIndex/DefaultZIndexes.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/**
- * A collection of all default zIndex values used by Recharts.
- *
- * You can reuse these, or you can define your own.
- */
-export declare const DefaultZIndexes: {
-    /**
-     * CartesianGrid and PolarGrid
-     */
-    readonly grid: -100;
-    /**
-     * Background of Bar and RadialBar.
-     * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.
-     */
-    readonly barBackground: -50;
-    /**
-     * Area, Pie, Radar, and ReferenceArea
-     */
-    readonly area: 100;
-    /**
-     * Cursor is embedded inside Tooltip and controlled by it.
-     * The Tooltip itself has a separate portal and is not included in the zIndex system;
-     * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.
-     * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.
-     */
-    readonly cursorRectangle: 200;
-    /**
-     * Bar and RadialBar
-     */
-    readonly bar: 300;
-    /**
-     * Line and ReferenceLine, and ErrorBor
-     */
-    readonly line: 400;
-    /**
-     * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children
-     */
-    readonly axis: 500;
-    /**
-     * Scatter and ReferenceDot,
-     * and Dots of Line and Area and Radar if they have dot=true
-     */
-    readonly scatter: 600;
-    /**
-     * Hovering over a Bar or RadialBar renders a highlight rectangle
-     */
-    readonly activeBar: 1000;
-    /**
-     * Cursor is embedded inside Tooltip and controlled by it.
-     * The Tooltip itself has a separate portal and is not included in the zIndex system;
-     * Cursor is the decoration inside the chart area, usually a cross or a box.
-     * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.
-     * It renders above the Line and Scatter so that it is always visible.
-     * It renders below active dot so that the dot is always visible and shows the current point.
-     * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.
-     *
-     * This also applies to the radial cursor in RadialBarChart.
-     */
-    readonly cursorLine: 1100;
-    /**
-     * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot
-     */
-    readonly activeDot: 1200;
-    /**
-     * LabelList and Label, including Axis labels
-     */
-    readonly label: 2000;
-};
Index: de_modules/recharts/types/zIndex/ZIndexLayer.d.ts
===================================================================
--- node_modules/recharts/types/zIndex/ZIndexLayer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-import * as React from 'react';
-/**
- * @since 3.4
- */
-export interface ZIndexable {
-    /**
-     * Z-Index of this component and its children. The higher the value,
-     * the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     * If undefined or 0, the content is rendered in the default layer without portals.
-     *
-     * @since 3.4
-     * @defaultValue 0
-     * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}
-     */
-    zIndex?: number;
-}
-type ZIndexLayerProps = {
-    /**
-     * Z-Index of this component and its children.
-     *
-     * The higher the value, the more on top it will be rendered.
-     * Components with higher zIndex will appear in front of components with lower zIndex.
-     *
-     * If `undefined` or `0`, the content is rendered in the default layer without portals.
-     */
-    zIndex: number | undefined;
-    /**
-     * The content to render inside this zIndex layer.
-     * Undefined children are allowed and will render nothing and will still report the zIndex to the portal system.
-     */
-    children?: React.ReactNode;
-};
-/**
- * A layer that renders its children into a portal corresponding to the given zIndex.
- * We can't use regular CSS `z-index` because SVG does not support it.
- * So instead, we create separate DOM nodes for each zIndex layer
- * and render the children into the corresponding DOM node using React portals.
- *
- * This component must be used inside a Chart component.
- *
- * @param zIndex numeric zIndex value, higher values are rendered on top of lower values
- * @param children the content to render inside this zIndex layer
- *
- * @since 3.4
- */
-export declare function ZIndexLayer({ zIndex, children }: ZIndexLayerProps): React.ReactNode;
-export {};
Index: de_modules/recharts/types/zIndex/ZIndexPortal.d.ts
===================================================================
--- node_modules/recharts/types/zIndex/ZIndexPortal.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import * as React from 'react';
-export declare function AllZIndexPortals({ children, isPanorama }: {
-    children?: React.ReactNode;
-    isPanorama: boolean;
-}): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
Index: de_modules/recharts/types/zIndex/getZIndexFromUnknown.d.ts
===================================================================
--- node_modules/recharts/types/zIndex/getZIndexFromUnknown.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export declare function getZIndexFromUnknown(input: unknown, defaultZIndex: number): number;
Index: de_modules/recharts/types/zIndex/zIndexSelectors.d.ts
===================================================================
--- node_modules/recharts/types/zIndex/zIndexSelectors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,41 +1,0 @@
-import { RechartsRootState } from '../state/store';
-/**
- * Given a zIndex, returns the corresponding portal element reference.
- * If no zIndex is provided or if the zIndex is not registered, returns undefined.
- *
- * It also returns undefined in case the z-index portal has not been rendered yet.
- */
-export declare const selectZIndexPortalElement: (state: RechartsRootState, zIndex: number | undefined, isPanorama: boolean) => Element | undefined;
-export declare const selectAllRegisteredZIndexes: ((state: RechartsRootState) => number[]) & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-} & {
-    resultFunc: (resultFuncArgs_0: Record<number, {
-        element: Element | undefined;
-        panoramaElement: Element | undefined;
-        consumers: number;
-    }>) => number[];
-    memoizedResultFunc: ((resultFuncArgs_0: Record<number, {
-        element: Element | undefined;
-        panoramaElement: Element | undefined;
-        consumers: number;
-    }>) => number[]) & {
-        clearCache: () => void;
-        resultsCount: () => number;
-        resetResultsCount: () => void;
-    };
-    lastResult: () => number[];
-    dependencies: [(state: RechartsRootState) => Record<number, {
-        element: Element | undefined;
-        panoramaElement: Element | undefined;
-        consumers: number;
-    }>];
-    recomputations: () => number;
-    resetRecomputations: () => void;
-    dependencyRecomputations: () => number;
-    resetDependencyRecomputations: () => void;
-} & {
-    argsMemoize: typeof import("reselect").weakMapMemoize;
-    memoize: typeof import("reselect").weakMapMemoize;
-};
Index: de_modules/recharts/umd/Recharts.js
===================================================================
--- node_modules/recharts/umd/Recharts.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-/*! For license information please see Recharts.js.LICENSE.txt */
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom"),require("react-is")):"function"==typeof define&&define.amd?define(["react","react-dom","react-is"],t):"object"==typeof exports?exports.Recharts=t(require("react"),require("react-dom"),require("react-is")):e.Recharts=t(e.React,e.ReactDOM,e.ReactIs)}(this,((e,t,r)=>(()=>{var n={8(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(6773);t.debounce=function(e,t=0,r={}){"object"!=typeof r&&(r={});const{leading:i=!1,trailing:a=!0,maxWait:o}=r,l=Array(2);let c;i&&(l[0]="leading"),a&&(l[1]="trailing");let u=null;const s=n.debounce((function(...t){c=e.apply(this,t),u=null}),t,{edges:l}),f=function(...t){return null!=o&&(null===u&&(u=Date.now()),Date.now()-u>=o)?(c=e.apply(this,t),u=Date.now(),s.cancel(),s.schedule(),c):(s.apply(this,t),c)};return f.cancel=s.cancel,f.flush=()=>(s.flush(),c),f}},25(e,t,r){e.exports=r(1334).last},58(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(9181);t.isArrayLike=function(e){return null!=e&&"function"!=typeof e&&n.isLength(e.length)}},184(e,t,r){e.exports=r(4259).sortBy},228(e){"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function a(e,t,n,a,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var l=new i(n,a||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],l]:e._events[c].push(l):(e._events[c]=l,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function l(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),l.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},l.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=new Array(a);i<a;i++)o[i]=n[i].fn;return o},l.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},l.prototype.emit=function(e,t,n,i,a,o){var l=r?r+e:e;if(!this._events[l])return!1;var c,u,s=this._events[l],f=arguments.length;if(s.fn){switch(s.once&&this.removeListener(e,s.fn,void 0,!0),f){case 1:return s.fn.call(s.context),!0;case 2:return s.fn.call(s.context,t),!0;case 3:return s.fn.call(s.context,t,n),!0;case 4:return s.fn.call(s.context,t,n,i),!0;case 5:return s.fn.call(s.context,t,n,i,a),!0;case 6:return s.fn.call(s.context,t,n,i,a,o),!0}for(u=1,c=new Array(f-1);u<f;u++)c[u-1]=arguments[u];s.fn.apply(s.context,c)}else{var d,p=s.length;for(u=0;u<p;u++)switch(s[u].once&&this.removeListener(e,s[u].fn,void 0,!0),f){case 1:s[u].fn.call(s[u].context);break;case 2:s[u].fn.call(s[u].context,t);break;case 3:s[u].fn.call(s[u].context,t,n);break;case 4:s[u].fn.call(s[u].context,t,n,i);break;default:if(!c)for(d=1,c=new Array(f-1);d<f;d++)c[d-1]=arguments[d];s[u].fn.apply(s[u].context,c)}}return!0},l.prototype.on=function(e,t,r){return a(this,e,t,r,!1)},l.prototype.once=function(e,t,r){return a(this,e,t,r,!0)},l.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||i&&!l.once||n&&l.context!==n||o(this,a);else{for(var c=0,u=[],s=l.length;c<s;c++)(l[c].fn!==t||i&&!l[c].once||n&&l[c].context!==n)&&u.push(l[c]);u.length?this._events[a]=1===u.length?u[0]:u:o(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&o(this,t)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,e.exports=l},305(e,t,r){e.exports=r(4200).get},316(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8509),i=r(58),a=r(4905),o=r(4534);t.isIterateeCall=function(e,t,r){return!!a.isObject(r)&&(!!("number"==typeof t&&i.isArrayLike(r)&&n.isIndex(t)&&t<r.length||"string"==typeof t&&t in r)&&o.isEqualsSameValueZero(r[t],e))}},334(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.maxBy=function(e,t){if(0===e.length)return;let r=e[0],n=t(r,0,e);for(let i=1;i<e.length;i++){const a=e[i],o=t(a,i,e);o>n&&(n=o,r=a)}return r}},555(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(3908);t.isTypedArray=function(e){return n.isTypedArray(e)}},623(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isBuffer=function(e){return"undefined"!=typeof Buffer&&Buffer.isBuffer(e)}},645(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.last=function(e){return e[e.length-1]}},717(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8273);t.isMatch=function(e,t){return n.isMatchWith(e,t,(()=>{}))}},924(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8240),i=r(6440),a=r(8202);t.minBy=function(e,t){if(null!=e)return n.minBy(Array.from(e),a.iteratee(t??i.identity))}},1081(e,t,r){e.exports=r(2810).uniqBy},1334(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(645),i=r(4483),a=r(58);t.last=function(e){if(a.isArrayLike(e))return n.last(i.toArray(e))}},1366(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isSymbol=function(e){return"symbol"==typeof e||e instanceof Symbol}},1465(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toKey=function(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}},1576(e,t,r){e.exports=r(4167).omit},1621(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(623),i=r(5403),a=r(58),o=r(555),l=r(8485);function c(e){const t=[];for(const r in e)t.push(r);return t}t.keysIn=function(e){if(null==e)return[];switch(typeof e){case"object":case"function":return a.isArrayLike(e)?function(e){const t=l.times(e.length,(e=>`${e}`)),r=new Set(t);n.isBuffer(e)&&(r.add("offset"),r.add("parent"));o.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));const i=c(e).filter((e=>!r.has(e)));if(Array.isArray(e))return[...t,...i];return[...t.filter((t=>Object.hasOwn(e,t))),...i]}(e):i.isPrototype(e)?function(e){const t=c(e);return t.filter((e=>"constructor"!==e))}(e):c(e);default:return c(Object(e))}}},1846(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObjectLike=function(e){return"object"==typeof e&&null!==e}},1863(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toString=function e(t){if(null==t)return"";if("string"==typeof t)return t;if(Array.isArray(t))return t.map(e).join(",");const r=String(t);return"0"===r&&Object.is(Number(t),-0)?"-0":r}},1875(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(6012);t.getSymbolsIn=function(e){const t=[];for(;e;)t.push(...n.getSymbols(e)),e=Object.getPrototypeOf(e);return t}},2049(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getTag=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}},2067(e,t,r){e.exports=r(3667).sumBy},2162(e,t,r){"use strict";var n=r(5442),i=r(9888);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=i.useSyncExternalStore,l=n.useRef,c=n.useEffect,u=n.useMemo,s=n.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var f=l(null);if(null===f.current){var d={hasValue:!1,value:null};f.current=d}else d=f.current;f=u((function(){function e(e){if(!c){if(c=!0,o=e,e=n(e),void 0!==i&&d.hasValue){var t=d.value;if(i(t,e))return l=t}return l=e}if(t=l,a(o,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(o=e,t):(o=e,l=r)}var o,l,c=!1,u=void 0===r?null:r;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]}),[t,r,n,i]);var p=o(e,f[0],f[1]);return c((function(){d.hasValue=!0,d.value=p}),[p]),s(p),p}},2520(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPrimitive=function(e){return null==e||"object"!=typeof e&&"function"!=typeof e}},2751(e){"use strict";e.exports=r},2810(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8805),i=r(6858),a=r(6440),o=r(8161),l=r(8202);t.uniqBy=function(e,t=a.identity){return o.isArrayLikeObject(e)?n.uniqBy(Array.from(e),i.ary(l.iteratee(t),1)):[]}},2938(e,t,r){e.exports=r(8695).isPlainObject},2972(e,t,r){e.exports=r(924).minBy},2984(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(2049);t.isArguments=function(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===n.getTag(e)}},3025(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(1863),i=r(1465);t.toPath=function(e){if(Array.isArray(e))return e.map(i.toKey);if("symbol"==typeof e)return[e];const t=[],r=(e=n.toString(e)).length;if(0===r)return t;let a=0,o="",l="",c=!1;for(46===e.charCodeAt(0)&&(t.push(""),a++);a<r;){const n=e[a];l?"\\"===n&&a+1<r?(a++,o+=e[a]):n===l?l="":o+=n:c?'"'===n||"'"===n?l=n:"]"===n?(c=!1,t.push(o),o=""):o+=n:"["===n?(c=!0,o&&(t.push(o),o="")):"."===n?o&&(t.push(o),o=""):o+=n,a++}return o&&t.push(o),t}},3036(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(717),i=r(1465),a=r(3923),o=r(4200),l=r(7324);t.matchesProperty=function(e,t){switch(typeof e){case"object":Object.is(e?.valueOf(),-0)&&(e="-0");break;case"number":e=i.toKey(e)}return t=a.cloneDeep(t),function(r){const i=o.get(r,e);return void 0===i?l.has(r,e):void 0===t?void 0===i:n.isMatch(i,t)}}},3097(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(3500),i=r(3998),a=r(3025);t.orderBy=function(e,t,r,o){if(null==e)return[];r=o?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=null==t?[null]:[t]),0===t.length&&(t=[null]),Array.isArray(r)||(r=null==r?[]:[r]),r=r.map((e=>String(e)));const l=(e,t)=>{let r=e;for(let e=0;e<t.length&&null!=r;++e)r=r[t[e]];return r},c=t.map((e=>(Array.isArray(e)&&1===e.length&&(e=e[0]),null==e||"function"==typeof e||Array.isArray(e)||i.isKey(e)?e:{key:e,path:a.toPath(e)})));return e.map((e=>({original:e,criteria:c.map((t=>((e,t)=>null==t||null==e?t:"object"==typeof e&&"key"in e?Object.hasOwn(t,e.key)?t[e.key]:l(t,e.path):"function"==typeof e?e(t):Array.isArray(e)?l(t,e):"object"==typeof t?t[e]:t)(t,e)))}))).slice().sort(((e,t)=>{for(let i=0;i<c.length;i++){const a=n.compareValues(e.criteria[i],t.criteria[i],r[i]);if(0!==a)return a}return 0})).map((e=>e.original))}},3403(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(4200);t.property=function(e){return function(t){return n.get(t,e)}}},3412(e,t,r){e.exports=r(5012).range},3500(e,t){"use strict";function r(e){return"symbol"==typeof e?1:null===e?2:void 0===e?3:e!=e?4:0}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.compareValues=(e,t,n)=>{if(e!==t){const i=r(e),a=r(t);if(i===a&&0===i){if(e<t)return"desc"===n?1:-1;if(e>t)return"desc"===n?-1:1}return"desc"===n?a-i:i-a}return 0}},3667(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8202);t.sumBy=function(e,t){if(!e||!e.length)return 0;let r;null!=t&&(t=n.iteratee(t));for(let n=0;n<e.length;n++){const i=t?t(e[n]):e[n];void 0!==i&&(void 0===r?r=i:r+=i)}return r}},3844(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(3964);t.cloneDeep=function(e){return n.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}},3908(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isTypedArray=function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}},3923(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(9467);t.cloneDeep=function(e){return n.cloneDeepWith(e)}},3964(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(6012),i=r(2049),a=r(9184),o=r(2520),l=r(3908);function c(e,t,r,n=new Map,s=void 0){const f=s?.(e,t,r,n);if(void 0!==f)return f;if(o.isPrimitive(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){const t=new Array(e.length);n.set(e,t);for(let i=0;i<e.length;i++)t[i]=c(e[i],i,r,n,s);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){const t=new Map;n.set(e,t);for(const[i,a]of e)t.set(i,c(a,i,r,n,s));return t}if(e instanceof Set){const t=new Set;n.set(e,t);for(const i of e)t.add(c(i,void 0,r,n,s));return t}if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return e.subarray();if(l.isTypedArray(e)){const t=new(Object.getPrototypeOf(e).constructor)(e.length);n.set(e,t);for(let i=0;i<e.length;i++)t[i]=c(e[i],i,r,n,s);return t}if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return n.set(e,t),u(t,e,r,n,s),t}if("undefined"!=typeof File&&e instanceof File){const t=new File([e],e.name,{type:e.type});return n.set(e,t),u(t,e,r,n,s),t}if("undefined"!=typeof Blob&&e instanceof Blob){const t=new Blob([e],{type:e.type});return n.set(e,t),u(t,e,r,n,s),t}if(e instanceof Error){const t=new e.constructor;return n.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,u(t,e,r,n,s),t}if(e instanceof Boolean){const t=new Boolean(e.valueOf());return n.set(e,t),u(t,e,r,n,s),t}if(e instanceof Number){const t=new Number(e.valueOf());return n.set(e,t),u(t,e,r,n,s),t}if(e instanceof String){const t=new String(e.valueOf());return n.set(e,t),u(t,e,r,n,s),t}if("object"==typeof e&&function(e){switch(i.getTag(e)){case a.argumentsTag:case a.arrayTag:case a.arrayBufferTag:case a.dataViewTag:case a.booleanTag:case a.dateTag:case a.float32ArrayTag:case a.float64ArrayTag:case a.int8ArrayTag:case a.int16ArrayTag:case a.int32ArrayTag:case a.mapTag:case a.numberTag:case a.objectTag:case a.regexpTag:case a.setTag:case a.stringTag:case a.symbolTag:case a.uint8ArrayTag:case a.uint8ClampedArrayTag:case a.uint16ArrayTag:case a.uint32ArrayTag:return!0;default:return!1}}(e)){const t=Object.create(Object.getPrototypeOf(e));return n.set(e,t),u(t,e,r,n,s),t}return e}function u(e,t,r=e,i,a){const o=[...Object.keys(t),...n.getSymbols(t)];for(let n=0;n<o.length;n++){const l=o[n],u=Object.getOwnPropertyDescriptor(e,l);(null==u||u.writable)&&(e[l]=c(t[l],l,r,i,a))}}t.cloneDeepWith=function(e,t){return c(e,void 0,e,new Map,t)},t.cloneDeepWithImpl=c,t.copyProperties=u},3998(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(1366),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.isKey=function(e,t){return!Array.isArray(e)&&(!("number"!=typeof e&&"boolean"!=typeof e&&null!=e&&!n.isSymbol(e))||("string"==typeof e&&(a.test(e)||!i.test(e))||null!=t&&Object.hasOwn(t,e)))}},4146(e,t,r){"use strict";var n=r(2751),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function c(e){return n.isMemo(e)?o:l[e.$$typeof]||i}l[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[n.Memo]=o;var u=Object.defineProperty,s=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(h){var i=p(r);i&&i!==h&&e(t,i,n)}var o=s(r);f&&(o=o.concat(f(r)));for(var l=c(t),y=c(r),v=0;v<o.length;++v){var m=o[v];if(!(a[m]||n&&n[m]||y&&y[m]||l&&l[m])){var g=d(r,m);try{u(t,m,g)}catch(e){}}}}return t}},4167(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(9467),i=r(1621),a=r(7841),o=r(1875),l=r(5112),c=r(6166),u=r(8695);t.omit=function(e,...t){if(null==e)return{};const r=function(e,t){if(t.some((e=>Array.isArray(e)||l.isDeepKey(e))))return function(e){const t={},r=[...i.keysIn(e),...o.getSymbolsIn(e)];for(let i=0;i<r.length;i++){const a=r[i];t[a]=n.cloneDeepWith(e[a],(e=>{if(!u.isPlainObject(e))return e}))}return t}(e);return function(e){const t={},r=[...i.keysIn(e),...o.getSymbolsIn(e)];for(let n=0;n<r.length;n++){const i=r[n];t[i]=e[i]}return t}(e)}(e,t=c.flatten(t));for(let e=0;e<t.length;e++){let n=t[e];switch(typeof n){case"object":Array.isArray(n)||(n=Array.from(n));for(let e=0;e<n.length;e++){const t=n[e];a.unset(r,t)}break;case"string":case"symbol":case"number":a.unset(r,n)}}return r}},4200(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8193),i=r(5112),a=r(1465),o=r(3025);t.get=function e(t,r,l){if(null==t)return l;switch(typeof r){case"string":{if(n.isUnsafeProperty(r))return l;const a=t[r];return void 0===a?i.isDeepKey(r)?e(t,o.toPath(r),l):l:a}case"number":case"symbol":{"number"==typeof r&&(r=a.toKey(r));const e=t[r];return void 0===e?l:e}default:{if(Array.isArray(r))return function(e,t,r){if(0===t.length)return r;let i=e;for(let e=0;e<t.length;e++){if(null==i)return r;if(n.isUnsafeProperty(t[e]))return r;i=i[t[e]]}if(void 0===i)return r;return i}(t,r,l);if(r=Object.is(r?.valueOf(),-0)?"-0":String(r),n.isUnsafeProperty(r))return l;const e=t[r];return void 0===e?l:e}}}},4259(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(3097),i=r(5711),a=r(316);t.sortBy=function(e,...t){const r=t.length;return r>1&&a.isIterateeCall(e,t[0],t[1])?t=[]:r>2&&a.isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),n.orderBy(e,i.flatten(t),["asc"])}},4297(e,t,r){e.exports=r(5259).throttle},4338(e,t,r){e.exports=r(5938).maxBy},4483(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toArray=function(e){return Array.isArray(e)?e:Array.from(e)}},4534(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isEqualsSameValueZero=function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}},4569(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8919);t.toFinite=function(e){if(!e)return 0===e?e:0;if((e=n.toNumber(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e==e?e:0}},4905(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObject=function(e){return null!==e&&("object"==typeof e||"function"==typeof e)}},5012(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(316),i=r(4569);t.range=function(e,t,r){r&&"number"!=typeof r&&n.isIterateeCall(e,t,r)&&(t=r=void 0),e=i.toFinite(e),void 0===t?(t=e,e=0):t=i.toFinite(t),r=void 0===r?e<t?1:-1:i.toFinite(r);const a=Math.max(Math.ceil((t-e)/(r||1)),0),o=new Array(a);for(let t=0;t<a;t++)o[t]=e,e+=r;return o}},5112(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isDeepKey=function(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}},5259(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(8);t.throttle=function(e,t=0,r={}){const{leading:i=!0,trailing:a=!0}=r;return n.debounce(e,t,{leading:i,maxWait:t,trailing:a})}},5403(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPrototype=function(e){const t=e?.constructor;return e===("function"==typeof t?t.prototype:Object.prototype)}},5442(t){"use strict";t.exports=e},5711(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.flatten=function(e,t=1){const r=[],n=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){const o=e[a];Array.isArray(o)&&t<n?i(o,t+1):r.push(o)}};return i(e,0),r}},5938(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(334),i=r(6440),a=r(8202);t.maxBy=function(e,t){if(null!=e)return n.maxBy(Array.from(e),a.iteratee(t??i.identity))}},6003(e){"use strict";e.exports=t},6012(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getSymbols=function(e){return Object.getOwnPropertySymbols(e).filter((t=>Object.prototype.propertyIsEnumerable.call(e,t)))}},6166(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(58);t.flatten=function(e,t=1){const r=[],i=Math.floor(t);if(!n.isArrayLike(e))return r;const a=(e,t)=>{for(let n=0;n<e.length;n++){const o=e[n];t<i&&(Array.isArray(o)||Boolean(o?.[Symbol.isConcatSpreadable])||null!==o&&"object"==typeof o&&"[object Arguments]"===Object.prototype.toString.call(o))?Array.isArray(o)?a(o,t+1):a(Array.from(o),t+1):r.push(o)}};return a(Array.from(e),0),r}},6440(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.identity=function(e){return e}},6773(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.debounce=function(e,t,{signal:r,edges:n}={}){let i,a=null;const o=null!=n&&n.includes("leading"),l=null==n||n.includes("trailing"),c=()=>{null!==a&&(e.apply(i,a),i=void 0,a=null)};let u=null;const s=()=>{null!=u&&clearTimeout(u),u=setTimeout((()=>{u=null,l&&c(),f()}),t)},f=()=>{null!==u&&(clearTimeout(u),u=null),i=void 0,a=null},d=function(...e){if(r?.aborted)return;i=this,a=e;const t=null==u;s(),o&&t&&c()};return d.schedule=s,d.cancel=f,d.flush=()=>{c()},r?.addEventListener("abort",f,{once:!0}),d}},6858(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.ary=function(e,t){return function(...r){return e.apply(this,r.slice(0,t))}}},7324(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(5112),i=r(8509),a=r(2984),o=r(3025);t.has=function(e,t){let r;if(r=Array.isArray(t)?t:"string"==typeof t&&n.isDeepKey(t)&&null==e?.[t]?o.toPath(t):[t],0===r.length)return!1;let l=e;for(let e=0;e<r.length;e++){const t=r[e];if(null==l||!Object.hasOwn(l,t)){if(!((Array.isArray(l)||a.isArguments(l))&&i.isIndex(t)&&t<l.length))return!1}l=l[t]}return!0}},7422(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(4569);t.toInteger=function(e){const t=n.toFinite(e),r=t%1;return r?t-r:t}},7841(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(4200),i=r(8193),a=r(5112),o=r(1465),l=r(3025);function c(e,t){const r=1===t.length?e:n.get(e,t.slice(0,-1)),a=t[t.length-1];if(void 0===r?.[a])return!0;if(i.isUnsafeProperty(a))return!1;try{return delete r[a],!0}catch{return!1}}t.unset=function(e,t){if(null==e)return!0;switch(typeof t){case"symbol":case"number":case"object":if(Array.isArray(t))return c(e,t);if("number"==typeof t?t=o.toKey(t):"object"==typeof t&&(t=Object.is(t?.valueOf(),-0)?"-0":String(t)),i.isUnsafeProperty(t))return!1;if(void 0===e?.[t])return!0;try{return delete e[t],!0}catch{return!1}case"string":if(void 0===e?.[t]&&a.isDeepKey(t))return c(e,l.toPath(t));if(i.isUnsafeProperty(t))return!1;try{return delete e[t],!0}catch{return!1}}}},7861(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(717),i=r(3844);t.matches=function(e){return e=i.cloneDeep(e),t=>n.isMatch(t,e)}},8161(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(58),i=r(1846);t.isArrayLikeObject=function(e){return i.isObjectLike(e)&&n.isArrayLike(e)}},8193(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isUnsafeProperty=function(e){return"__proto__"===e}},8202(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(6440),i=r(3403),a=r(7861),o=r(3036);t.iteratee=function(e){if(null==e)return n.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?o.matchesProperty(e[0],e[1]):a.matches(e);case"string":case"symbol":case"number":return i.property(e)}}},8240(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.minBy=function(e,t){if(0===e.length)return;let r=e[0],n=t(r,0,e);for(let i=1;i<e.length;i++){const a=e[i],o=t(a,i,e);o<n&&(n=o,r=a)}return r}},8273(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(4905),i=r(2520),a=r(4534);function o(e,t,r,u){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,r,n){if(null==t)return!0;if(Array.isArray(t))return l(e,t,r,n);if(t instanceof Map)return function(e,t,r,n){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[i,a]of t.entries()){if(!1===r(e.get(i),a,i,e,t,n))return!1}return!0}(e,t,r,n);if(t instanceof Set)return c(e,t,r,n);const a=Object.keys(t);if(null==e||i.isPrimitive(e))return 0===a.length;if(0===a.length)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<a.length;o++){const l=a[o];if(!i.isPrimitive(e)&&!(l in e))return!1;if(void 0===t[l]&&void 0!==e[l])return!1;if(null===t[l]&&null!==e[l])return!1;if(!r(e[l],t[l],l,e,t,n))return!1}return!0}finally{n?.delete(t)}}(e,t,r,u);case"function":return Object.keys(t).length>0?o(e,{...t},r,u):a.isEqualsSameValueZero(e,t);default:return n.isObject(e)?"string"!=typeof t||""===t:a.isEqualsSameValueZero(e,t)}}function l(e,t,r,n){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const i=new Set;for(let a=0;a<t.length;a++){const o=t[a];let l=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let u=!1;if(r(e[c],o,a,e,t,n)&&(u=!0),u){i.add(c),l=!0;break}}if(!l)return!1}return!0}function c(e,t,r,n){return 0===t.size||e instanceof Set&&l([...e],[...t],r,n)}t.isMatchWith=function e(t,r,n){return"function"!=typeof n?e(t,r,(()=>{})):o(t,r,(function e(t,r,i,a,l,c){const u=n(t,r,i,a,l,c);return void 0!==u?Boolean(u):o(t,r,e,c)}),new Map)},t.isSetMatch=c},8351(e,t,r){var n;!function(){"use strict";var i,a=1e9,o={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},l=!0,c="[DecimalError] ",u=c+"Invalid argument: ",s=c+"Exponent out of range: ",f=Math.floor,d=Math.pow,p=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,h=1e7,y=9007199254740991,v=f(1286742750677284.5),m={};function g(e,t){var r,n,i,a,o,c,u,s,f=e.constructor,d=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),l?k(t,d):t;if(u=e.d,s=t.d,o=e.e,i=t.e,u=u.slice(),a=o-i){for(a<0?(n=u,a=-a,c=s.length):(n=s,i=o,c=u.length),a>(c=(o=Math.ceil(d/7))>c?o+1:c+1)&&(a=c,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for((c=u.length)-(a=s.length)<0&&(a=c,n=s,s=u,u=n),r=0;a;)r=(u[--a]=u[a]+s[a]+r)/h|0,u[a]%=h;for(r&&(u.unshift(r),++i),c=u.length;0==u[--c];)u.pop();return t.d=u,t.e=i,l?k(t,d):t}function b(e,t,r){if(e!==~~e||e<t||e>r)throw Error(u+e)}function x(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)(r=7-(n=e[t]+"").length)&&(a+=j(r)),a+=n;(r=7-(n=(o=e[t])+"").length)&&(a+=j(r))}else if(0===o)return"0";for(;o%10==0;)o/=10;return a+o}m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e},m.comparedTo=m.cmp=function(e){var t,r,n,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(t=0,r=(n=a.d.length)<(i=e.d.length)?n:i;t<r;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1},m.decimalPlaces=m.dp=function(){var e=this,t=e.d.length-1,r=7*(t-e.e);if(t=e.d[t])for(;t%10==0;t/=10)r--;return r<0?0:r},m.dividedBy=m.div=function(e){return w(this,new this.constructor(e))},m.dividedToIntegerBy=m.idiv=function(e){var t=this.constructor;return k(w(this,new t(e),0,1),t.precision)},m.equals=m.eq=function(e){return!this.cmp(e)},m.exponent=function(){return P(this)},m.greaterThan=m.gt=function(e){return this.cmp(e)>0},m.greaterThanOrEqualTo=m.gte=function(e){return this.cmp(e)>=0},m.isInteger=m.isint=function(){return this.e>this.d.length-2},m.isNegative=m.isneg=function(){return this.s<0},m.isPositive=m.ispos=function(){return this.s>0},m.isZero=function(){return 0===this.s},m.lessThan=m.lt=function(e){return this.cmp(e)<0},m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1},m.logarithm=m.log=function(e){var t,r=this,n=r.constructor,a=n.precision,o=a+5;if(void 0===e)e=new n(10);else if((e=new n(e)).s<1||e.eq(i))throw Error(c+"NaN");if(r.s<1)throw Error(c+(r.s?"NaN":"-Infinity"));return r.eq(i)?new n(0):(l=!1,t=w(A(r,o),A(e,o),o),l=!0,k(t,a))},m.minus=m.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?I(t,e):g(t,(e.s=-e.s,e))},m.modulo=m.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(!(e=new n(e)).s)throw Error(c+"NaN");return r.s?(l=!1,t=w(r,e,0,1).times(e),l=!0,r.minus(t)):k(new n(r),i)},m.naturalExponential=m.exp=function(){return O(this)},m.naturalLogarithm=m.ln=function(){return A(this)},m.negated=m.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},m.plus=m.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?g(t,e):I(t,(e.s=-e.s,e))},m.precision=m.sd=function(e){var t,r,n,i=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(u+e);if(t=P(i)+1,r=7*(n=i.d.length-1)+1,n=i.d[n]){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r},m.squareRoot=m.sqrt=function(){var e,t,r,n,i,a,o,u=this,s=u.constructor;if(u.s<1){if(!u.s)return new s(0);throw Error(c+"NaN")}for(e=P(u),l=!1,0==(i=Math.sqrt(+u))||i==1/0?(((t=x(u.d)).length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=f((e+1)/2)-(e<0||e%2),n=new s(t=i==1/0?"5e"+e:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+e)):n=new s(i.toString()),i=o=(r=s.precision)+3;;)if(n=(a=n).plus(w(u,a,o+2)).times(.5),x(a.d).slice(0,o)===(t=x(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&"4999"==t){if(k(a,r+1,0),a.times(a).eq(u)){n=a;break}}else if("9999"!=t)break;o+=4}return l=!0,k(n,r)},m.times=m.mul=function(e){var t,r,n,i,a,o,c,u,s,f=this,d=f.constructor,p=f.d,y=(e=new d(e)).d;if(!f.s||!e.s)return new d(0);for(e.s*=f.s,r=f.e+e.e,(u=p.length)<(s=y.length)&&(a=p,p=y,y=a,o=u,u=s,s=o),a=[],n=o=u+s;n--;)a.push(0);for(n=s;--n>=0;){for(t=0,i=u+n;i>n;)c=a[i]+y[n]*p[i-n-1]+t,a[i--]=c%h|0,t=c/h|0;a[i]=(a[i]+t)%h|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,l?k(e,d.precision):e},m.toDecimalPlaces=m.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(b(e,0,a),void 0===t?t=n.rounding:b(t,0,8),k(r,e+P(r)+1,t))},m.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=M(n,!0):(b(e,0,a),void 0===t?t=i.rounding:b(t,0,8),r=M(n=k(new i(n),e+1,t),!0,e+1)),r},m.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return void 0===e?M(i):(b(e,0,a),void 0===t?t=o.rounding:b(t,0,8),r=M((n=k(new o(i),e+P(i)+1,t)).abs(),!1,e+P(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)},m.toInteger=m.toint=function(){var e=this,t=e.constructor;return k(new t(e),P(e)+1,t.rounding)},m.toNumber=function(){return+this},m.toPower=m.pow=function(e){var t,r,n,a,o,u,s=this,d=s.constructor,p=+(e=new d(e));if(!e.s)return new d(i);if(!(s=new d(s)).s){if(e.s<1)throw Error(c+"Infinity");return s}if(s.eq(i))return s;if(n=d.precision,e.eq(i))return k(s,n);if(u=(t=e.e)>=(r=e.d.length-1),o=s.s,u){if((r=p<0?-p:p)<=y){for(a=new d(i),t=Math.ceil(n/7+4),l=!1;r%2&&T((a=a.times(s)).d,t),0!==(r=f(r/2));)T((s=s.times(s)).d,t);return l=!0,e.s<0?new d(i).div(a):k(a,n)}}else if(o<0)throw Error(c+"NaN");return o=o<0&&1&e.d[Math.max(t,r)]?-1:1,s.s=1,l=!1,a=e.times(A(s,n+12)),l=!0,(a=O(a)).s=o,a},m.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return void 0===e?n=M(i,(r=P(i))<=o.toExpNeg||r>=o.toExpPos):(b(e,1,a),void 0===t?t=o.rounding:b(t,0,8),n=M(i=k(new o(i),e,t),e<=(r=P(i))||r<=o.toExpNeg,e)),n},m.toSignificantDigits=m.tosd=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(b(e,1,a),void 0===t?t=r.rounding:b(t,0,8)),k(new r(this),e,t)},m.toString=m.valueOf=m.val=m.toJSON=function(){var e=this,t=P(e),r=e.constructor;return M(e,t<=r.toExpNeg||t>=r.toExpPos)};var w=function(){function e(e,t){var r,n=0,i=e.length;for(e=e.slice();i--;)r=e[i]*t+n,e[i]=r%h|0,n=r/h|0;return n&&e.unshift(n),e}function t(e,t,r,n){var i,a;if(r!=n)a=r>n?1:-1;else for(i=a=0;i<r;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function r(e,t,r){for(var n=0;r--;)e[r]-=n,n=e[r]<t[r]?1:0,e[r]=n*h+e[r]-t[r];for(;!e[0]&&e.length>1;)e.shift()}return function(n,i,a,o){var l,u,s,f,d,p,y,v,m,g,b,x,w,O,E,j,A,S,I=n.constructor,M=n.s==i.s?1:-1,T=n.d,D=i.d;if(!n.s)return new I(n);if(!i.s)throw Error(c+"Division by zero");for(u=n.e-i.e,A=D.length,E=T.length,v=(y=new I(M)).d=[],s=0;D[s]==(T[s]||0);)++s;if(D[s]>(T[s]||0)&&--u,(x=null==a?a=I.precision:o?a+(P(n)-P(i))+1:a)<0)return new I(0);if(x=x/7+2|0,s=0,1==A)for(f=0,D=D[0],x++;(s<E||f)&&x--;s++)w=f*h+(T[s]||0),v[s]=w/D|0,f=w%D|0;else{for((f=h/(D[0]+1)|0)>1&&(D=e(D,f),T=e(T,f),A=D.length,E=T.length),O=A,g=(m=T.slice(0,A)).length;g<A;)m[g++]=0;(S=D.slice()).unshift(0),j=D[0],D[1]>=h/2&&++j;do{f=0,(l=t(D,m,A,g))<0?(b=m[0],A!=g&&(b=b*h+(m[1]||0)),(f=b/j|0)>1?(f>=h&&(f=h-1),1==(l=t(d=e(D,f),m,p=d.length,g=m.length))&&(f--,r(d,A<p?S:D,p))):(0==f&&(l=f=1),d=D.slice()),(p=d.length)<g&&d.unshift(0),r(m,d,g),-1==l&&(l=t(D,m,A,g=m.length))<1&&(f++,r(m,A<g?S:D,g)),g=m.length):0===l&&(f++,m=[0]),v[s++]=f,l&&m[0]?m[g++]=T[O]||0:(m=[T[O]],g=1)}while((O++<E||void 0!==m[0])&&x--)}return v[0]||v.shift(),y.e=u,k(y,o?a+P(y)+1:a)}}();function O(e,t){var r,n,a,o,c,u=0,f=0,p=e.constructor,h=p.precision;if(P(e)>16)throw Error(s+P(e));if(!e.s)return new p(i);for(null==t?(l=!1,c=h):c=t,o=new p(.03125);e.abs().gte(.1);)e=e.times(o),f+=5;for(c+=Math.log(d(2,f))/Math.LN10*2+5|0,r=n=a=new p(i),p.precision=c;;){if(n=k(n.times(e),c),r=r.times(++u),x((o=a.plus(w(n,r,c))).d).slice(0,c)===x(a.d).slice(0,c)){for(;f--;)a=k(a.times(a),c);return p.precision=h,null==t?(l=!0,k(a,h)):a}a=o}}function P(e){for(var t=7*e.e,r=e.d[0];r>=10;r/=10)t++;return t}function E(e,t,r){if(t>e.LN10.sd())throw l=!0,r&&(e.precision=r),Error(c+"LN10 precision limit exceeded");return k(new e(e.LN10),t)}function j(e){for(var t="";e--;)t+="0";return t}function A(e,t){var r,n,a,o,u,s,f,d,p,h=1,y=e,v=y.d,m=y.constructor,g=m.precision;if(y.s<1)throw Error(c+(y.s?"NaN":"-Infinity"));if(y.eq(i))return new m(0);if(null==t?(l=!1,d=g):d=t,y.eq(10))return null==t&&(l=!0),E(m,d);if(d+=10,m.precision=d,n=(r=x(v)).charAt(0),o=P(y),!(Math.abs(o)<15e14))return f=E(m,d+2,g).times(o+""),y=A(new m(n+"."+r.slice(1)),d-10).plus(f),m.precision=g,null==t?(l=!0,k(y,g)):y;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=x((y=y.times(e)).d)).charAt(0),h++;for(o=P(y),n>1?(y=new m("0."+r),o++):y=new m(n+"."+r.slice(1)),s=u=y=w(y.minus(i),y.plus(i),d),p=k(y.times(y),d),a=3;;){if(u=k(u.times(p),d),x((f=s.plus(w(u,new m(a),d))).d).slice(0,d)===x(s.d).slice(0,d))return s=s.times(2),0!==o&&(s=s.plus(E(m,d+2,g).times(o+""))),s=w(s,new m(h),d),m.precision=g,null==t?(l=!0,k(s,g)):s;s=f,a+=2}}function S(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);)++n;for(i=t.length;48===t.charCodeAt(i-1);)--i;if(t=t.slice(n,i)){if(i-=n,r=r-n-1,e.e=f(r/7),e.d=[],n=(r+1)%7,r<0&&(n+=7),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=7;n<i;)e.d.push(+t.slice(n,n+=7));n=7-(t=t.slice(n)).length}else n-=i;for(;n--;)t+="0";if(e.d.push(+t),l&&(e.e>v||e.e<-v))throw Error(s+r)}else e.s=0,e.e=0,e.d=[0];return e}function k(e,t,r){var n,i,a,o,c,u,p,y,m=e.d;for(o=1,a=m[0];a>=10;a/=10)o++;if((n=t-o)<0)n+=7,i=t,p=m[y=0];else{if((y=Math.ceil((n+1)/7))>=(a=m.length))return e;for(p=a=m[y],o=1;a>=10;a/=10)o++;i=(n%=7)-7+o}if(void 0!==r&&(c=p/(a=d(10,o-i-1))%10|0,u=t<0||void 0!==m[y+1]||p%a,u=r<4?(c||u)&&(0==r||r==(e.s<0?3:2)):c>5||5==c&&(4==r||u||6==r&&(n>0?i>0?p/d(10,o-i):0:m[y-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return u?(a=P(e),m.length=1,t=t-a-1,m[0]=d(10,(7-t%7)%7),e.e=f(-t/7)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(0==n?(m.length=y,a=1,y--):(m.length=y+1,a=d(10,7-n),m[y]=i>0?(p/d(10,o-i)%d(10,i)|0)*a:0),u)for(;;){if(0==y){(m[0]+=a)==h&&(m[0]=1,++e.e);break}if(m[y]+=a,m[y]!=h)break;m[y--]=0,a=1}for(n=m.length;0===m[--n];)m.pop();if(l&&(e.e>v||e.e<-v))throw Error(s+P(e));return e}function I(e,t){var r,n,i,a,o,c,u,s,f,d,p=e.constructor,y=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),l?k(t,y):t;if(u=e.d,d=t.d,n=t.e,s=e.e,u=u.slice(),o=s-n){for((f=o<0)?(r=u,o=-o,c=d.length):(r=d,n=s,c=u.length),o>(i=Math.max(Math.ceil(y/7),c)+2)&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for((f=(i=u.length)<(c=d.length))&&(c=i),i=0;i<c;i++)if(u[i]!=d[i]){f=u[i]<d[i];break}o=0}for(f&&(r=u,u=d,d=r,t.s=-t.s),c=u.length,i=d.length-c;i>0;--i)u[c++]=0;for(i=d.length;i>o;){if(u[--i]<d[i]){for(a=i;a&&0===u[--a];)u[a]=h-1;--u[a],u[i]+=h}u[i]-=d[i]}for(;0===u[--c];)u.pop();for(;0===u[0];u.shift())--n;return u[0]?(t.d=u,t.e=n,l?k(t,y):t):new p(0)}function M(e,t,r){var n,i=P(e),a=x(e.d),o=a.length;return t?(r&&(n=r-o)>0?a=a.charAt(0)+"."+a.slice(1)+j(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+j(-i-1)+a,r&&(n=r-o)>0&&(a+=j(n))):i>=o?(a+=j(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+j(n))):((n=i+1)<o&&(a=a.slice(0,n)+"."+a.slice(n)),r&&(n=r-o)>0&&(i+1===o&&(a+="."),a+=j(n))),e.s<0?"-"+a:a}function T(e,t){if(e.length>t)return e.length=t,!0}function D(e){if(!e||"object"!=typeof e)throw Error(c+"Object expected");var t,r,n,i=["precision",1,a,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<i.length;t+=3)if(void 0!==(n=e[r=i[t]])){if(!(f(n)===n&&n>=i[t+1]&&n<=i[t+2]))throw Error(u+r+": "+n);this[r]=n}if(void 0!==(n=e[r="LN10"])){if(n!=Math.LN10)throw Error(u+r+": "+n);this[r]=new this(n)}return this}o=function e(t){var r,n,i;function a(e){var t=this;if(!(t instanceof a))return new a(e);if(t.constructor=a,e instanceof a)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"==typeof e){if(0*e!=0)throw Error(u+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):S(t,e.toString())}if("string"!=typeof e)throw Error(u+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!p.test(e))throw Error(u+e);S(t,e)}if(a.prototype=m,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=e,a.config=a.set=D,void 0===t&&(t={}),t)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],r=0;r<i.length;)t.hasOwnProperty(n=i[r++])||(t[n]=this[n]);return a.config(t),a}(o),o.default=o.Decimal=o,i=new o(1),void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)}()},8485(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(7422);t.times=function(e,t){if((e=n.toInteger(e))<1||!Number.isSafeInteger(e))return[];const r=new Array(e);for(let n=0;n<e;n++)r[n]="function"==typeof t?t(n):n;return r}},8493(e,t,r){"use strict";var n=r(5442);var i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=n.useState,o=n.useEffect,l=n.useLayoutEffect,c=n.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=a({inst:{value:r,getSnapshot:t}}),i=n[0].inst,s=n[1];return l((function(){i.value=r,i.getSnapshot=t,u(i)&&s({inst:i})}),[e,r,t]),o((function(){return u(i)&&s({inst:i}),e((function(){u(i)&&s({inst:i})}))}),[e]),c(r),r};t.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:s},8509(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=/^(?:0|[1-9]\d*)$/;t.isIndex=function(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return r.test(e)}}},8695(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPlainObject=function(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];if(null==t)return!1;return!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}},8805(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.uniqBy=function(e,t){const r=new Map;for(let n=0;n<e.length;n++){const i=e[n],a=t(i,n,e);r.has(a)||r.set(a,i)}return Array.from(r.values())}},8919(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(1366);t.toNumber=function(e){return n.isSymbol(e)?NaN:Number(e)}},9181(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isLength=function(e){return Number.isSafeInteger(e)&&e>=0}},9184(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.argumentsTag="[object Arguments]",t.arrayBufferTag="[object ArrayBuffer]",t.arrayTag="[object Array]",t.bigInt64ArrayTag="[object BigInt64Array]",t.bigUint64ArrayTag="[object BigUint64Array]",t.booleanTag="[object Boolean]",t.dataViewTag="[object DataView]",t.dateTag="[object Date]",t.errorTag="[object Error]",t.float32ArrayTag="[object Float32Array]",t.float64ArrayTag="[object Float64Array]",t.functionTag="[object Function]",t.int16ArrayTag="[object Int16Array]",t.int32ArrayTag="[object Int32Array]",t.int8ArrayTag="[object Int8Array]",t.mapTag="[object Map]",t.numberTag="[object Number]",t.objectTag="[object Object]",t.regexpTag="[object RegExp]",t.setTag="[object Set]",t.stringTag="[object String]",t.symbolTag="[object Symbol]",t.uint16ArrayTag="[object Uint16Array]",t.uint32ArrayTag="[object Uint32Array]",t.uint8ArrayTag="[object Uint8Array]",t.uint8ClampedArrayTag="[object Uint8ClampedArray]"},9242(e,t,r){"use strict";e.exports=r(2162)},9467(e,t,r){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(3964),i=r(2049),a=r(9184);t.cloneDeepWith=function(e,t){return n.cloneDeepWith(e,((r,o,l,c)=>{const u=t?.(r,o,l,c);if(void 0!==u)return u;if("object"==typeof e){if(i.getTag(e)===a.objectTag&&"function"!=typeof e.constructor){const t={};return c.set(e,t),n.copyProperties(t,e,l,c),t}switch(Object.prototype.toString.call(e)){case a.numberTag:case a.stringTag:case a.booleanTag:{const t=new e.constructor(e?.valueOf());return n.copyProperties(t,e),t}case a.argumentsTag:{const t={};return n.copyProperties(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}}))}},9888(e,t,r){"use strict";e.exports=r(8493)}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e].call(r.exports,r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";a.r(o),a.d(o,{Area:()=>eT,AreaChart:()=>F_,Bar:()=>JT,BarChart:()=>gN,BarStack:()=>ST,Brush:()=>zS,CartesianAxis:()=>Vk,CartesianGrid:()=>uI,Cell:()=>yx,ComposedChart:()=>G_,Cross:()=>Nl,Curve:()=>kl,Customized:()=>Bw,DefaultLegendContent:()=>Be,DefaultTooltipContent:()=>Lo,DefaultZIndexes:()=>Wh,Dot:()=>qw,ErrorBar:()=>pC,Funnel:()=>Tz,FunnelChart:()=>Cz,Global:()=>oc,Label:()=>Ow,LabelList:()=>Rw,Layer:()=>b,Legend:()=>To,Line:()=>bM,LineChart:()=>vN,Pie:()=>LE,PieChart:()=>IN,PolarAngleAxis:()=>sP,PolarGrid:()=>kO,PolarRadiusAxis:()=>ZO,Polygon:()=>Hw,Radar:()=>eA,RadarChart:()=>L_,RadialBar:()=>eS,RadialBarChart:()=>q_,Rectangle:()=>Dc,ReferenceArea:()=>Ak,ReferenceDot:()=>vk,ReferenceLine:()=>ok,ResponsiveContainer:()=>ca,Sankey:()=>D_,Scatter:()=>PD,ScatterChart:()=>B_,Sector:()=>nu,SunburstChart:()=>lz,Surface:()=>v,Symbols:()=>Ae,Text:()=>Jx,Tooltip:()=>hx,Trapezoid:()=>WP,Treemap:()=>QN,XAxis:()=>WD,YAxis:()=>eC,ZAxis:()=>nC,ZIndexLayer:()=>Cb,getNiceTickValues:()=>Mh,useActiveTooltipCoordinate:()=>gj,useActiveTooltipDataPoints:()=>hj,useActiveTooltipLabel:()=>fj,useChartHeight:()=>ha,useChartWidth:()=>pa,useIsTooltipActive:()=>mj,useMargin:()=>ya,useOffset:()=>dj,usePlotArea:()=>pj,useXAxisDomain:()=>yj,useYAxisDomain:()=>vj});var e={};a.r(e),a.d(e,{scaleBand:()=>vu,scaleDiverging:()=>fh,scaleDivergingLog:()=>dh,scaleDivergingPow:()=>hh,scaleDivergingSqrt:()=>yh,scaleDivergingSymlog:()=>ph,scaleIdentity:()=>af,scaleImplicit:()=>hu,scaleLinear:()=>nf,scaleLog:()=>hf,scaleOrdinal:()=>yu,scalePoint:()=>gu,scalePow:()=>Pf,scaleQuantile:()=>_f,scaleQuantize:()=>zf,scaleRadial:()=>Af,scaleSequential:()=>ih,scaleSequentialLog:()=>ah,scaleSequentialPow:()=>lh,scaleSequentialQuantile:()=>uh,scaleSequentialSqrt:()=>ch,scaleSequentialSymlog:()=>oh,scaleSqrt:()=>Ef,scaleSymlog:()=>gf,scaleThreshold:()=>Rf,scaleTime:()=>eh,scaleUtc:()=>th,tickFormat:()=>tf});var t=a(5442);function r(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(i&&(i+=" "),i+=n)}else for(n in e)e[n]&&(i&&(i+=" "),i+=n);return i}function n(){for(var e,t,n=0,i="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(i&&(i+=" "),i+=t);return i}var i=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function l(e){return"string"==typeof e&&i.includes(e)}var c=new Set(["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"]);function u(e){return"string"==typeof e&&c.has(e)}function s(e){return"string"==typeof e&&e.startsWith("data-")}function f(e){if("object"!=typeof e||null===e)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(u(r)||s(r))&&(t[r]=e[r]);return t}function d(e){return null==e?null:(0,t.isValidElement)(e)&&"object"==typeof e.props&&null!==e.props?f(e.props):"object"!=typeof e||Array.isArray(e)?null:f(e)}function p(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(u(r)||s(r)||l(r))&&(t[r]=e[r]);return t}var h=["children","width","height","viewBox","className","style","title","desc"];function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},y.apply(null,arguments)}var v=(0,t.forwardRef)(((e,r)=>{var{children:i,width:a,height:o,viewBox:l,className:c,style:u,title:s,desc:f}=e,d=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,h),v=l||{width:a,height:o,x:0,y:0},m=n("recharts-surface",c);return t.createElement("svg",y({},p(d),{className:m,width:a,height:o,style:u,viewBox:"".concat(v.x," ").concat(v.y," ").concat(v.width," ").concat(v.height),ref:r}),t.createElement("title",null,s),t.createElement("desc",null,f),i)})),m=["children","className"];function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(null,arguments)}var b=t.forwardRef(((e,r)=>{var{children:i,className:a}=e,o=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,m),l=n("recharts-layer",a);return t.createElement("g",g({className:l},p(o),{ref:r}),i)})),x=a(6003),w=(0,t.createContext)(null),O=()=>(0,t.useContext)(w);Math.abs,Math.atan2;const P=Math.cos,E=(Math.max,Math.min,Math.sin),j=Math.sqrt,A=Math.PI,S=2*A;const k={draw(e,t){const r=j(t/A);e.moveTo(r,0),e.arc(0,0,r,0,S)}},I={draw(e,t){const r=j(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},M=j(1/3),T=2*M,D={draw(e,t){const r=j(t/T),n=r*M;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},C={draw(e,t){const r=j(t),n=-r/2;e.rect(n,n,r,r)}},N=E(A/10)/E(7*A/10),_=E(S/10)*N,z=-P(S/10)*N,R={draw(e,t){const r=j(.8908130915292852*t),n=_*r,i=z*r;e.moveTo(0,-r),e.lineTo(n,i);for(let t=1;t<5;++t){const a=S*t/5,o=P(a),l=E(a);e.lineTo(l*r,-o*r),e.lineTo(o*n-l*i,l*n+o*i)}e.closePath()}},L=j(3),K={draw(e,t){const r=-j(t/(3*L));e.moveTo(0,2*r),e.lineTo(-L*r,-r),e.lineTo(L*r,-r),e.closePath()}},B=-.5,W=j(3)/2,F=1/j(12),U=3*(F/2+1),V={draw(e,t){const r=j(t/U),n=r/2,i=r*F,a=n,o=r*F+r,l=-a,c=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(l,c),e.lineTo(B*n-W*i,W*n+B*i),e.lineTo(B*a-W*o,W*a+B*o),e.lineTo(B*l-W*c,W*l+B*c),e.lineTo(B*n+W*i,B*i-W*n),e.lineTo(B*a+W*o,B*o-W*a),e.lineTo(B*l+W*c,B*c-W*l),e.closePath()}};function X(e){return function(){return e}}const H=Math.PI,$=2*H,q=1e-6,Y=$-q;function G(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}class Z{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?G:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return G;const r=10**t;return function(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=Math.round(arguments[t]*r)/r+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,r,n){this._append`Q${+e},${+t},${this._x1=+r},${this._y1=+n}`}bezierCurveTo(e,t,r,n,i,a){this._append`C${+e},${+t},${+r},${+n},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,r,n,i){if(e=+e,t=+t,r=+r,n=+n,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,l=r-e,c=n-t,u=a-e,s=o-t,f=u*u+s*s;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(f>q)if(Math.abs(s*l-c*u)>q&&i){let d=r-a,p=n-o,h=l*l+c*c,y=d*d+p*p,v=Math.sqrt(h),m=Math.sqrt(f),g=i*Math.tan((H-Math.acos((h+f-y)/(2*v*m)))/2),b=g/m,x=g/v;Math.abs(b-1)>q&&this._append`L${e+b*u},${t+b*s}`,this._append`A${i},${i},0,0,${+(s*d>u*p)},${this._x1=e+x*l},${this._y1=t+x*c}`}else this._append`L${this._x1=e},${this._y1=t}`;else;}arc(e,t,r,n,i,a){if(e=+e,t=+t,a=!!a,(r=+r)<0)throw new Error(`negative radius: ${r}`);let o=r*Math.cos(n),l=r*Math.sin(n),c=e+o,u=t+l,s=1^a,f=a?n-i:i-n;null===this._x1?this._append`M${c},${u}`:(Math.abs(this._x1-c)>q||Math.abs(this._y1-u)>q)&&this._append`L${c},${u}`,r&&(f<0&&(f=f%$+$),f>Y?this._append`A${r},${r},0,1,${s},${e-o},${t-l}A${r},${r},0,1,${s},${this._x1=c},${this._y1=u}`:f>q&&this._append`A${r},${r},0,${+(f>=H)},${s},${this._x1=e+r*Math.cos(i)},${this._y1=t+r*Math.sin(i)}`)}rect(e,t,r,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${r=+r}v${+n}h${-r}Z`}toString(){return this._}}function J(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(null==r)t=null;else{const e=Math.floor(r);if(!(e>=0))throw new RangeError(`invalid digits: ${r}`);t=e}return e},()=>new Z(t)}j(3),j(3);var Q=a(305),ee=a.n(Q),te=4;function re(e){var t=10**(arguments.length>1&&void 0!==arguments[1]?arguments[1]:te),r=Math.round(e*t)/t;return Object.is(r,-0)?0:r}function ne(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.reduce(((e,t,n)=>{var i=r[n-1];return"string"==typeof i?e+i+t:void 0!==i?e+re(i)+t:e+t}),"")}var ie=e=>0===e?0:e>0?1:-1,ae=e=>"number"==typeof e&&e!=+e,oe=e=>"string"==typeof e&&e.indexOf("%")===e.length-1,le=e=>("number"==typeof e||e instanceof Number)&&!ae(e),ce=e=>le(e)||"string"==typeof e,ue=0,se=e=>{var t=++ue;return"".concat(e||"").concat(t)},fe=function(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!le(e)&&"string"!=typeof e)return n;if(oe(e)){if(null==t)return n;var a=e.indexOf("%");r=t*parseFloat(e.slice(0,a))/100}else r=+e;return ae(r)&&(r=n),i&&null!=t&&r>t&&(r=t),r},de=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;n<t;n++){if(r[String(e[n])])return!0;r[String(e[n])]=!0}return!1};function pe(e,t,r){return le(e)&&le(t)?re(e+r*(t-e)):t}function he(e,t,r){if(e&&e.length)return e.find((e=>e&&("function"==typeof t?t(e):ee()(e,t))===r))}var ye=e=>null==e,ve=e=>ye(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function me(e){return null!=e}function ge(){}var be=["type","size","sizeType"];function xe(){return xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xe.apply(null,arguments)}function we(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Oe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?we(Object(r),!0).forEach((function(t){Pe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):we(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Pe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ee={symbolCircle:k,symbolCross:I,symbolDiamond:D,symbolSquare:C,symbolStar:R,symbolTriangle:K,symbolWye:V},je=Math.PI/180,Ae=e=>{var{type:r="circle",size:i=64,sizeType:a="area"}=e,o=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,be),l=Oe(Oe({},o),{},{type:r,size:i,sizeType:a}),c="circle";"string"==typeof r&&(c=r);var{className:u,cx:s,cy:f}=l,d=p(l);return le(s)&&le(f)&&le(i)?t.createElement("path",xe({},d,{className:n("recharts-symbols",u),transform:"translate(".concat(s,", ").concat(f,")"),d:(()=>{var e=(e=>{var t="symbol".concat(ve(e));return Ee[t]||k})(c),t=function(e,t){let r=null,n=J(i);function i(){let i;if(r||(r=i=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return e="function"==typeof e?e:X(e||k),t="function"==typeof t?t:X(void 0===t?64:+t),i.type=function(t){return arguments.length?(e="function"==typeof t?t:X(t),i):e},i.size=function(e){return arguments.length?(t="function"==typeof e?e:X(+e),i):t},i.context=function(e){return arguments.length?(r=null==e?null:e,i):r},i}().type(e).size(((e,t,r)=>{if("area"===t)return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return.5*e*e/Math.sqrt(3);case"square":return e*e;case"star":var n=18*je;return 1.25*e*e*(Math.tan(n)-Math.tan(2*n)*Math.tan(n)**2);case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}})(i,a,c)),r=t();if(null!==r)return r})()})):null};Ae.registerSymbol=(e,t)=>{Ee["symbol".concat(ve(e))]=t};var Se=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,ke=(e,r)=>{if(!e||"function"==typeof e||"boolean"==typeof e)return null;var n=e;if((0,t.isValidElement)(e)&&(n=e.props),"object"!=typeof n&&"function"!=typeof n)return null;var i={};return Object.keys(n).forEach((e=>{l(e)&&(i[e]=r||(t=>n[e](n,t)))})),i},Ie=(e,t,r)=>{if(null===e||"object"!=typeof e&&"function"!=typeof e)return null;var n=null;return Object.keys(e).forEach((i=>{var a=e[i];l(i)&&"function"==typeof a&&(n||(n={}),n[i]=((e,t,r)=>n=>(e(t,r,n),null))(a,t,r))})),n};function Me(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Te(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function De(e,t){var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Me(Object(r),!0).forEach((function(t){Te(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Me(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e),n=t;return Object.keys(t).reduce(((e,t)=>(void 0===e[t]&&void 0!==n[t]&&(e[t]=n[t]),e)),r)}function Ce(){return Ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ce.apply(null,arguments)}function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _e(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ze=32,Re={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle"};function Le(e){var r,{data:n,iconType:i,inactiveColor:a}=e,o=16,l=ze/6,c=ze/3,u=n.inactive?a:n.color,s=null!=i?i:n.type;if("none"===s)return null;if("plainline"===s)return t.createElement("line",{strokeWidth:4,fill:"none",stroke:u,strokeDasharray:null===(r=n.payload)||void 0===r?void 0:r.strokeDasharray,x1:0,y1:o,x2:ze,y2:o,className:"recharts-legend-icon"});if("line"===s)return t.createElement("path",{strokeWidth:4,fill:"none",stroke:u,d:"M0,".concat(o,"h").concat(c,"\n            A").concat(l,",").concat(l,",0,1,1,").concat(2*c,",").concat(o,"\n            H").concat(ze,"M").concat(2*c,",").concat(o,"\n            A").concat(l,",").concat(l,",0,1,1,").concat(c,",").concat(o),className:"recharts-legend-icon"});if("rect"===s)return t.createElement("path",{stroke:"none",fill:u,d:"M0,".concat(4,"h").concat(ze,"v").concat(24,"h").concat(-32,"z"),className:"recharts-legend-icon"});if(t.isValidElement(n.legendIcon)){var f=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(r),!0).forEach((function(t){_e(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ne(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},n);return delete f.legendIcon,t.cloneElement(n.legendIcon,f)}return t.createElement(Ae,{fill:u,cx:o,cy:o,size:ze,sizeType:"diameter",type:s})}function Ke(e){var{payload:r,iconSize:i,layout:a,formatter:o,inactiveColor:l,iconType:c}=e,u={x:0,y:0,width:ze,height:ze},s={display:"horizontal"===a?"inline-block":"block",marginRight:10},f={display:"inline-block",verticalAlign:"middle",marginRight:4};return r.map(((r,a)=>{var d=r.formatter||o,p=n({"recharts-legend-item":!0,["legend-item-".concat(a)]:!0,inactive:r.inactive});if("none"===r.type)return null;var h=r.inactive?l:r.color,y=d?d(r.value,r,a):r.value;return t.createElement("li",Ce({className:p,style:s,key:"legend-item-".concat(a)},Ie(e,r,a)),t.createElement(v,{width:i,height:i,viewBox:u,style:f,"aria-label":"".concat(y," legend icon")},t.createElement(Le,{data:r,iconType:c,inactiveColor:l})),t.createElement("span",{className:"recharts-legend-item-text",style:{color:h}},y))}))}var Be=e=>{var r=De(e,Re),{payload:n,layout:i,align:a}=r;if(!n||!n.length)return null;var o={padding:0,margin:0,textAlign:"horizontal"===i?a:"left"};return t.createElement("ul",{className:"recharts-default-legend",style:o},t.createElement(Ke,Ce({},r,{payload:n})))},We=a(1081),Fe=a.n(We);function Ue(e,t,r){return!0===t?Fe()(e,r):"function"==typeof t?Fe()(e,t):e}var Ve=a(9242),Xe=(0,t.createContext)(null),He=e=>e,$e=()=>{var e=(0,t.useContext)(Xe);return e?e.store.dispatch:He},qe=()=>{},Ye=()=>qe,Ge=(e,t)=>e===t;function Ze(e){var r=(0,t.useContext)(Xe),n=(0,t.useMemo)((()=>r?t=>{if(null!=t)return e(t)}:qe),[r,e]);return(0,Ve.useSyncExternalStoreWithSelector)(r?r.subscription.addNestedSub:Ye,r?r.store.getState:qe,r?r.store.getState:qe,n,Ge)}function Je(e,t="expected a function, instead received "+typeof e){if("function"!=typeof e)throw new TypeError(t)}var Qe=e=>Array.isArray(e)?e:[e];function et(e){const t=Array.isArray(e[0])?e[0]:e;return function(e,t="expected all items to be functions, instead received the following types: "){if(!e.every((e=>"function"==typeof e))){const r=e.map((e=>"function"==typeof e?`function ${e.name||"unnamed"}()`:typeof e)).join(", ");throw new TypeError(`${t}[${r}]`)}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}Symbol(),Object.getPrototypeOf({});var tt="undefined"!=typeof WeakRef?WeakRef:class{constructor(e){this.value=e}deref(){return this.value}};function rt(e,t={}){let r={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:n}=t;let i,a=0;function o(){let t=r;const{length:o}=arguments;for(let e=0,r=o;e<r;e++){const r=arguments[e];if("function"==typeof r||"object"==typeof r&&null!==r){let e=t.o;null===e&&(t.o=e=new WeakMap);const n=e.get(r);void 0===n?(t={s:0,v:void 0,o:null,p:null},e.set(r,t)):t=n}else{let e=t.p;null===e&&(t.p=e=new Map);const n=e.get(r);void 0===n?(t={s:0,v:void 0,o:null,p:null},e.set(r,t)):t=n}}const l=t;let c;if(1===t.s)c=t.v;else if(c=e.apply(null,arguments),a++,n){const e=i?.deref?.()??i;null!=e&&n(e,c)&&(c=e,0!==a&&a--);i="object"==typeof c&&null!==c||"function"==typeof c?new tt(c):c}return l.s=1,l.v=c,c}return o.clearCache=()=>{r={s:0,v:void 0,o:null,p:null},o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function nt(e,...t){const r="function"==typeof e?{memoize:e,memoizeOptions:t}:e,n=(...e)=>{let t,n=0,i=0,a={},o=e.pop();"object"==typeof o&&(a=o,o=e.pop()),Je(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);const l={...r,...a},{memoize:c,memoizeOptions:u=[],argsMemoize:s=rt,argsMemoizeOptions:f=[],devModeChecks:d={}}=l,p=Qe(u),h=Qe(f),y=et(e),v=c((function(){return n++,o.apply(null,arguments)}),...p);const m=s((function(){i++;const e=function(e,t){const r=[],{length:n}=e;for(let i=0;i<n;i++)r.push(e[i].apply(null,t));return r}(y,arguments);return t=v.apply(null,e),t}),...h);return Object.assign(m,{resultFunc:o,memoizedResultFunc:v,dependencies:y,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>t,recomputations:()=>n,resetRecomputations:()=>{n=0},memoize:c,argsMemoize:s})};return Object.assign(n,{withTypes:()=>n}),n}var it=nt(rt),at=Object.assign(((e,t=it)=>{!function(e,t="expected an object, instead received "+typeof e){if("object"!=typeof e)throw new TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);const r=Object.keys(e),n=t(r.map((t=>e[t])),((...e)=>e.reduce(((e,t,n)=>(e[r[n]]=t,e)),{})));return n}),{withTypes:()=>at}),ot=a(184),lt=a.n(ot),ct=e=>e.legend.settings,ut=it([e=>e.legend.payload,ct],((e,t)=>{var{itemSorter:r}=t,n=e.flat(1);return r?lt()(n,r):n}));var st=1;function ft(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],[r,n]=(0,t.useState)({height:0,left:0,top:0,width:0}),i=(0,t.useCallback)((e=>{if(null!=e){var t=e.getBoundingClientRect(),i={height:t.height,left:t.left,top:t.top,width:t.width};(Math.abs(i.height-r.height)>st||Math.abs(i.left-r.left)>st||Math.abs(i.top-r.top)>st||Math.abs(i.width-r.width)>st)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}}),[r.width,r.height,r.top,r.left,...e]);return[r,i]}function dt(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function pt(e){return!!e&&!!e[rr]}function ht(e){var t;return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===nr}(e)||Array.isArray(e)||!!e[tr]||!!(null===(t=e.constructor)||void 0===t?void 0:t[tr])||wt(e)||Ot(e))}function yt(e,t,r){void 0===r&&(r=!1),0===vt(e)?(r?Object.keys:ir)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function vt(e){var t=e[rr];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:wt(e)?2:Ot(e)?3:0}function mt(e,t){return 2===vt(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function gt(e,t){return 2===vt(e)?e.get(t):e[t]}function bt(e,t,r){var n=vt(e);2===n?e.set(t,r):3===n?e.add(r):e[t]=r}function xt(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function wt(e){return Zt&&e instanceof Map}function Ot(e){return Jt&&e instanceof Set}function Pt(e){return e.o||e.t}function Et(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=ar(e);delete t[rr];for(var r=ir(t),n=0;n<r.length;n++){var i=r[n],a=t[i];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(Object.getPrototypeOf(e),t)}function jt(e,t){return void 0===t&&(t=!1),St(e)||pt(e)||!ht(e)||(vt(e)>1&&(e.set=e.add=e.clear=e.delete=At),Object.freeze(e),t&&yt(e,(function(e,t){return jt(t,!0)}),!0)),e}function At(){dt(2)}function St(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function kt(e){var t=or[e];return t||dt(18,e),t}function It(e,t){or[e]||(or[e]=t)}function Mt(){return Yt}function Tt(e,t){t&&(kt("Patches"),e.u=[],e.s=[],e.v=t)}function Dt(e){Ct(e),e.p.forEach(_t),e.p=null}function Ct(e){e===Yt&&(Yt=e.l)}function Nt(e){return Yt={p:[],l:Yt,h:e,m:!0,_:0}}function _t(e){var t=e[rr];0===t.i||1===t.i?t.j():t.g=!0}function zt(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.O||kt("ES5").S(t,e,n),n?(r[rr].P&&(Dt(t),dt(4)),ht(e)&&(e=Rt(t,e),t.l||Kt(t,e)),t.u&&kt("Patches").M(r[rr].t,e,t.u,t.s)):e=Rt(t,r,[]),Dt(t),t.u&&t.v(t.u,t.s),e!==er?e:void 0}function Rt(e,t,r){if(St(t))return t;var n=t[rr];if(!n)return yt(t,(function(i,a){return Lt(e,n,t,i,a,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return Kt(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var i=4===n.i||5===n.i?n.o=Et(n.k):n.o,a=i,o=!1;3===n.i&&(a=new Set(i),i.clear(),o=!0),yt(a,(function(t,a){return Lt(e,n,i,t,a,r,o)})),Kt(e,i,!1),r&&e.u&&kt("Patches").N(n,r,e.u,e.s)}return n.o}function Lt(e,t,r,n,i,a,o){if(pt(i)){var l=Rt(e,i,a&&t&&3!==t.i&&!mt(t.R,n)?a.concat(n):void 0);if(bt(r,n,l),!pt(l))return;e.m=!1}else o&&r.add(i);if(ht(i)&&!St(i)){if(!e.h.D&&e._<1)return;Rt(e,i),t&&t.A.l||Kt(e,i)}}function Kt(e,t,r){void 0===r&&(r=!1),!e.l&&e.h.D&&e.m&&jt(t,r)}function Bt(e,t){var r=e[rr];return(r?Pt(r):e)[t]}function Wt(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Ft(e){e.P||(e.P=!0,e.l&&Ft(e.l))}function Ut(e){e.o||(e.o=Et(e.t))}function Vt(e,t,r){var n=wt(t)?kt("MapSet").F(t,r):Ot(t)?kt("MapSet").T(t,r):e.O?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:Mt(),P:!1,I:!1,R:{},l:t,t:e,k:null,o:null,j:null,C:!1},i=n,a=lr;r&&(i=[n],a=cr);var o=Proxy.revocable(i,a),l=o.revoke,c=o.proxy;return n.k=c,n.j=l,c}(t,r):kt("ES5").J(t,r);return(r?r.A:Mt()).p.push(n),n}function Xt(e){return pt(e)||dt(22,e),function e(t){if(!ht(t))return t;var r,n=t[rr],i=vt(t);if(n){if(!n.P&&(n.i<4||!kt("ES5").K(n)))return n.t;n.I=!0,r=Ht(t,i),n.I=!1}else r=Ht(t,i);return yt(r,(function(t,i){n&&gt(n.t,t)===i||bt(r,t,e(i))})),3===i?new Set(r):r}(e)}function Ht(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Et(e)}function $t(){function e(e,t){var r=i[e];return r?r.enumerable=t:i[e]=r={configurable:!0,enumerable:t,get:function(){var t=this[rr];return lr.get(t,e)},set:function(t){var r=this[rr];lr.set(r,e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var i=e[t][rr];if(!i.P)switch(i.i){case 5:n(i)&&Ft(i);break;case 4:r(i)&&Ft(i)}}}function r(e){for(var t=e.t,r=e.k,n=ir(r),i=n.length-1;i>=0;i--){var a=n[i];if(a!==rr){var o=t[a];if(void 0===o&&!mt(t,a))return!0;var l=r[a],c=l&&l[rr];if(c?c.t!==o:!xt(l,o))return!0}}var u=!!t[rr];return n.length!==ir(t).length+(u?0:1)}function n(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);if(r&&!r.get)return!0;for(var n=0;n<t.length;n++)if(!t.hasOwnProperty(n))return!0;return!1}var i={};It("ES5",{J:function(t,r){var n=Array.isArray(t),i=function(t,r){if(t){for(var n=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(n,""+i,e(i,!0));return n}var a=ar(r);delete a[rr];for(var o=ir(a),l=0;l<o.length;l++){var c=o[l];a[c]=e(c,t||!!a[c].enumerable)}return Object.create(Object.getPrototypeOf(r),a)}(n,t),a={i:n?5:4,A:r?r.A:Mt(),P:!1,I:!1,R:{},l:r,t,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,rr,{value:a,writable:!0}),i},S:function(e,r,i){i?pt(r)&&r[rr].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[rr];if(r){var i=r.t,a=r.k,o=r.R,l=r.i;if(4===l)yt(a,(function(t){t!==rr&&(void 0!==i[t]||mt(i,t)?o[t]||e(a[t]):(o[t]=!0,Ft(r)))})),yt(i,(function(e){void 0!==a[e]||mt(a,e)||(o[e]=!1,Ft(r))}));else if(5===l){if(n(r)&&(Ft(r),o.length=!0),a.length<i.length)for(var c=a.length;c<i.length;c++)o[c]=!1;else for(var u=i.length;u<a.length;u++)o[u]=!0;for(var s=Math.min(a.length,i.length),f=0;f<s;f++)a.hasOwnProperty(f)||(o[f]=!0),void 0===o[f]&&e(a[f])}}}}(e.p[0]),t(e.p))},K:function(e){return 4===e.i?r(e):n(e)}})}var qt,Yt,Gt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Zt="undefined"!=typeof Map,Jt="undefined"!=typeof Set,Qt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,er=Gt?Symbol.for("immer-nothing"):((qt={})["immer-nothing"]=!0,qt),tr=Gt?Symbol.for("immer-draftable"):"__$immer_draftable",rr=Gt?Symbol.for("immer-state"):"__$immer_state",nr=("undefined"!=typeof Symbol&&Symbol.iterator,""+Object.prototype.constructor),ir="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,ar=Object.getOwnPropertyDescriptors||function(e){var t={};return ir(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},or={},lr={get:function(e,t){if(t===rr)return e;var r=Pt(e);if(!mt(r,t))return function(e,t,r){var n,i=Wt(t,r);return i?"value"in i?i.value:null===(n=i.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var n=r[t];return e.I||!ht(n)?n:n===Bt(e.t,t)?(Ut(e),e.o[t]=Vt(e.A.h,n,e)):n},has:function(e,t){return t in Pt(e)},ownKeys:function(e){return Reflect.ownKeys(Pt(e))},set:function(e,t,r){var n=Wt(Pt(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var i=Bt(Pt(e),t),a=null==i?void 0:i[rr];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(xt(r,i)&&(void 0!==r||mt(e.t,t)))return!0;Ut(e),Ft(e)}return e.o[t]===r&&(void 0!==r||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return void 0!==Bt(e.t,t)||t in e.t?(e.R[t]=!1,Ut(e),Ft(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=Pt(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){dt(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){dt(12)}},cr={};yt(lr,(function(e,t){cr[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),cr.deleteProperty=function(e,t){return cr.set.call(this,e,t,void 0)},cr.set=function(e,t,r){return lr.set.call(this,e[0],t,r,e[0])};var ur=function(){function e(e){var t=this;this.O=Qt,this.D=!0,this.produce=function(e,r,n){if("function"==typeof e&&"function"!=typeof r){var i=r;r=e;var a=t;return function(e){var t=this;void 0===e&&(e=i);for(var n=arguments.length,o=Array(n>1?n-1:0),l=1;l<n;l++)o[l-1]=arguments[l];return a.produce(e,(function(e){var n;return(n=r).call.apply(n,[t,e].concat(o))}))}}var o;if("function"!=typeof r&&dt(6),void 0!==n&&"function"!=typeof n&&dt(7),ht(e)){var l=Nt(t),c=Vt(t,e,void 0),u=!0;try{o=r(c),u=!1}finally{u?Dt(l):Ct(l)}return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(e){return Tt(l,n),zt(e,l)}),(function(e){throw Dt(l),e})):(Tt(l,n),zt(o,l))}if(!e||"object"!=typeof e){if(void 0===(o=r(e))&&(o=e),o===er&&(o=void 0),t.D&&jt(o,!0),n){var s=[],f=[];kt("Patches").M(e,o,s,f),n(s,f)}return o}dt(21,e)},this.produceWithPatches=function(e,r){if("function"==typeof e)return function(r){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return t.produceWithPatches(r,(function(t){return e.apply(void 0,[t].concat(i))}))};var n,i,a=t.produce(e,r,(function(e,t){n=e,i=t}));return"undefined"!=typeof Promise&&a instanceof Promise?a.then((function(e){return[e,n,i]})):[a,n,i]},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){ht(e)||dt(8),pt(e)&&(e=Xt(e));var t=Nt(this),r=Vt(this,e,void 0);return r[rr].C=!0,Ct(t),r},t.finishDraft=function(e,t){var r=(e&&e[rr]).A;return Tt(r,t),zt(void 0,r)},t.setAutoFreeze=function(e){this.D=e},t.setUseProxies=function(e){e&&!Qt&&dt(20),this.O=e},t.applyPatches=function(e,t){var r;for(r=t.length-1;r>=0;r--){var n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));var i=kt("Patches").$;return pt(e)?i(e,t):this.produce(e,(function(e){return i(e,t)}))},e}(),sr=new ur,fr=sr.produce;sr.produceWithPatches.bind(sr),sr.setAutoFreeze.bind(sr),sr.setUseProxies.bind(sr),sr.applyPatches.bind(sr),sr.createDraft.bind(sr),sr.finishDraft.bind(sr);const dr=fr;function pr(e){return pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pr(e)}function hr(e){var t=function(e,t){if("object"!=pr(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=pr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==pr(t)?t:t+""}function yr(e,t,r){return(t=hr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function vr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function mr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?vr(Object(r),!0).forEach((function(t){yr(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function gr(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var br="function"==typeof Symbol&&Symbol.observable||"@@observable",xr=function(){return Math.random().toString(36).substring(7).split("").join(".")},wr={INIT:"@@redux/INIT"+xr(),REPLACE:"@@redux/REPLACE"+xr(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+xr()}};function Or(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Pr(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error(gr(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error(gr(1));return r(Pr)(e,t)}if("function"!=typeof e)throw new Error(gr(2));var i=e,a=t,o=[],l=o,c=!1;function u(){l===o&&(l=o.slice())}function s(){if(c)throw new Error(gr(3));return a}function f(e){if("function"!=typeof e)throw new Error(gr(4));if(c)throw new Error(gr(5));var t=!0;return u(),l.push(e),function(){if(t){if(c)throw new Error(gr(6));t=!1,u();var r=l.indexOf(e);l.splice(r,1),o=null}}}function d(e){if(!Or(e))throw new Error(gr(7));if(void 0===e.type)throw new Error(gr(8));if(c)throw new Error(gr(9));try{c=!0,a=i(a,e)}finally{c=!1}for(var t=o=l,r=0;r<t.length;r++){(0,t[r])()}return e}return d({type:wr.INIT}),(n={dispatch:d,subscribe:f,getState:s,replaceReducer:function(e){if("function"!=typeof e)throw new Error(gr(10));i=e,d({type:wr.REPLACE})}})[br]=function(){var e,t=f;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(gr(11));function r(){e.next&&e.next(s())}return r(),{unsubscribe:t(r)}}})[br]=function(){return this},e},n}function Er(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++){var i=t[n];0,"function"==typeof e[i]&&(r[i]=e[i])}var a,o=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:wr.INIT}))throw new Error(gr(12));if(void 0===r(void 0,{type:wr.PROBE_UNKNOWN_ACTION()}))throw new Error(gr(13))}))}(r)}catch(e){a=e}return function(e,t){if(void 0===e&&(e={}),a)throw a;for(var n=!1,i={},l=0;l<o.length;l++){var c=o[l],u=r[c],s=e[c],f=u(s,t);if(void 0===f){t&&t.type;throw new Error(gr(14))}i[c]=f,n=n||f!==s}return(n=n||o.length!==Object.keys(e).length)?i:e}}function jr(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function Ar(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw new Error(gr(15))},i={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},a=t.map((function(e){return e(i)}));return n=jr.apply(void 0,a)(r.dispatch),mr(mr({},r),{},{dispatch:n})}}}function Sr(e){return function(t){var r=t.dispatch,n=t.getState;return function(t){return function(i){return"function"==typeof i?i(r,n,e):t(i)}}}}var kr=Sr();kr.withExtraArgument=Sr;const Ir=kr;var Mr,Tr=(Mr=function(e,t){return Mr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},Mr(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}Mr(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),Dr=function(e,t){var r,n,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&a[0]?n.return:a[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,a[1])).done)return i;switch(n=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,n=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],n=0}finally{r=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}},Cr=function(e,t){for(var r=0,n=t.length,i=e.length;r<n;r++,i++)e[i]=t[r];return e},Nr=Object.defineProperty,_r=Object.defineProperties,zr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Lr=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable,Br=function(e,t,r){return t in e?Nr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},Wr=function(e,t){for(var r in t||(t={}))Lr.call(t,r)&&Br(e,r,t[r]);if(Rr)for(var n=0,i=Rr(t);n<i.length;n++){r=i[n];Kr.call(t,r)&&Br(e,r,t[r])}return e},Fr=function(e,t){return _r(e,zr(t))},Ur=function(e,t,r){return new Promise((function(n,i){var a=function(e){try{l(r.next(e))}catch(e){i(e)}},o=function(e){try{l(r.throw(e))}catch(e){i(e)}},l=function(e){return e.done?n(e.value):Promise.resolve(e.value).then(a,o)};l((r=r.apply(e,t)).next())}))},Vr="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?jr:jr.apply(null,arguments)};"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function Xr(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}function Hr(e,t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];if(t){var i=t.apply(void 0,r);if(!i)throw new Error("prepareAction did not return an object");return Wr(Wr({type:e,payload:i.payload},"meta"in i&&{meta:i.meta}),"error"in i&&{error:i.error})}return{type:e,payload:r[0]}}return r.toString=function(){return""+e},r.type=e,r.match=function(t){return t.type===e},r}function $r(e){return Xr(e)&&"type"in e}var qr=function(e){function t(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var i=e.apply(this,r)||this;return Object.setPrototypeOf(i,t.prototype),i}return Tr(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,Cr([void 0],e[0].concat(this)))):new(t.bind.apply(t,Cr([void 0],e.concat(this))))},t}(Array),Yr=function(e){function t(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var i=e.apply(this,r)||this;return Object.setPrototypeOf(i,t.prototype),i}return Tr(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,Cr([void 0],e[0].concat(this)))):new(t.bind.apply(t,Cr([void 0],e.concat(this))))},t}(Array);function Gr(e){return ht(e)?dr(e,(function(){})):e}function Zr(){return function(e){return function(e){void 0===e&&(e={});var t=e.thunk,r=void 0===t||t,n=(e.immutableCheck,e.serializableCheck,e.actionCreatorCheck,new qr);r&&(!function(e){return"boolean"==typeof e}(r)?n.push(Ir.withExtraArgument(r.extraArgument)):n.push(Ir));0;return n}(e)}}function Jr(e){var t,r=Zr(),n=e||{},i=n.reducer,a=void 0===i?void 0:i,o=n.middleware,l=void 0===o?r():o,c=n.devTools,u=void 0===c||c,s=n.preloadedState,f=void 0===s?void 0:s,d=n.enhancers,p=void 0===d?void 0:d;if("function"==typeof a)t=a;else{if(!Xr(a))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=Er(a)}var h=l;"function"==typeof h&&(h=h(r));var y=Ar.apply(void 0,h),v=jr;u&&(v=Vr(Wr({trace:!1},"object"==typeof u&&u)));var m=new Yr(y),g=m;return Array.isArray(p)?g=Cr([y],p):"function"==typeof p&&(g=p(m)),Pr(t,f,v.apply(void 0,g))}function Qr(e){var t,r={},n=[],i={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(!n)throw new Error("`builder.addCase` cannot be called with an empty action type");if(n in r)throw new Error("`builder.addCase` cannot be called with two reducers for the same action type");return r[n]=t,i},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase:function(e){return t=e,i}};return e(i),[r,n,t]}function en(e){var t=e.name;if(!t)throw new Error("`name` is a required option for createSlice");var r,n="function"==typeof e.initialState?e.initialState:Gr(e.initialState),i=e.reducers||{},a=Object.keys(i),o={},l={},c={};function u(){var t="function"==typeof e.extraReducers?Qr(e.extraReducers):[e.extraReducers],r=t[0],i=void 0===r?{}:r,a=t[1],o=void 0===a?[]:a,c=t[2],u=void 0===c?void 0:c,s=Wr(Wr({},i),l);return function(e,t,r,n){void 0===r&&(r=[]);var i,a="function"==typeof t?Qr(t):[t,r,n],o=a[0],l=a[1],c=a[2];if(function(e){return"function"==typeof e}(e))i=function(){return Gr(e())};else{var u=Gr(e);i=function(){return u}}function s(e,t){void 0===e&&(e=i());var r=Cr([o[t.type]],l.filter((function(e){return(0,e.matcher)(t)})).map((function(e){return e.reducer})));return 0===r.filter((function(e){return!!e})).length&&(r=[c]),r.reduce((function(e,r){if(r){var n;if(pt(e))return void 0===(n=r(e,t))?e:n;if(ht(e))return dr(e,(function(e){return r(e,t)}));if(void 0===(n=r(e,t))){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return e}),e)}return s.getInitialState=i,s}(n,(function(e){for(var t in s)e.addCase(t,s[t]);for(var r=0,n=o;r<n.length;r++){var i=n[r];e.addMatcher(i.matcher,i.reducer)}u&&e.addDefaultCase(u)}))}return a.forEach((function(e){var r,n,a=i[e],u=function(e,t){return e+"/"+t}(t,e);"reducer"in a?(r=a.reducer,n=a.prepare):r=a,o[e]=r,l[u]=r,c[e]=n?Hr(u,n):Hr(u)})),{name:t,reducer:function(e,t){return r||(r=u()),r(e,t)},actions:c,caseReducers:o,getInitialState:function(){return r||(r=u()),r.getInitialState()}}}var tn=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},rn=["name","message","stack","code"],nn=function(e,t){this.payload=e,this.meta=t},an=function(e,t){this.payload=e,this.meta=t},on=function(e){if("object"==typeof e&&null!==e){for(var t={},r=0,n=rn;r<n.length;r++){var i=n[r];"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}};!function(){function e(e,t,r){var n=Hr(e+"/fulfilled",(function(e,t,r,n){return{payload:e,meta:Fr(Wr({},n||{}),{arg:r,requestId:t,requestStatus:"fulfilled"})}})),i=Hr(e+"/pending",(function(e,t,r){return{payload:void 0,meta:Fr(Wr({},r||{}),{arg:t,requestId:e,requestStatus:"pending"})}})),a=Hr(e+"/rejected",(function(e,t,n,i,a){return{payload:i,error:(r&&r.serializeError||on)(e||"Rejected"),meta:Fr(Wr({},a||{}),{arg:n,requestId:t,rejectedWithValue:!!i,requestStatus:"rejected",aborted:"AbortError"===(null==e?void 0:e.name),condition:"ConditionError"===(null==e?void 0:e.name)})}})),o="undefined"!=typeof AbortController?AbortController:function(){function e(){this.signal={aborted:!1,addEventListener:function(){},dispatchEvent:function(){return!1},onabort:function(){},removeEventListener:function(){},reason:void 0,throwIfAborted:function(){}}}return e.prototype.abort=function(){0},e}();return Object.assign((function(e){return function(l,c,u){var s,f=(null==r?void 0:r.idGenerator)?r.idGenerator(e):tn(),d=new o;function p(e){s=e,d.abort()}var h=function(){return Ur(this,null,(function(){var o,h,y,v,m,g;return Dr(this,(function(b){switch(b.label){case 0:return b.trys.push([0,4,,5]),function(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}(v=null==(o=null==r?void 0:r.condition)?void 0:o.call(r,e,{getState:c,extra:u}))?[4,v]:[3,2];case 1:v=b.sent(),b.label=2;case 2:if(!1===v||d.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};return m=new Promise((function(e,t){return d.signal.addEventListener("abort",(function(){return t({name:"AbortError",message:s||"Aborted"})}))})),l(i(f,e,null==(h=null==r?void 0:r.getPendingMeta)?void 0:h.call(r,{requestId:f,arg:e},{getState:c,extra:u}))),[4,Promise.race([m,Promise.resolve(t(e,{dispatch:l,getState:c,extra:u,requestId:f,signal:d.signal,abort:p,rejectWithValue:function(e,t){return new nn(e,t)},fulfillWithValue:function(e,t){return new an(e,t)}})).then((function(t){if(t instanceof nn)throw t;return t instanceof an?n(t.payload,f,e,t.meta):n(t,f,e)}))])];case 3:return y=b.sent(),[3,5];case 4:return g=b.sent(),y=g instanceof nn?a(null,f,e,g.payload,g.meta):a(g,f,e),[3,5];case 5:return r&&!r.dispatchConditionRejection&&a.match(y)&&y.meta.condition||l(y),[2,y]}}))}))}();return Object.assign(h,{abort:p,requestId:f,arg:e,unwrap:function(){return h.then(ln)}})}}),{pending:i,rejected:a,fulfilled:n,typePrefix:e})}e.withTypes=function(){return e}}();function ln(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}var cn=function(e,t){if("function"!=typeof e)throw new TypeError(t+" is not a function")},un=function(){},sn=function(e,t){return void 0===t&&(t=un),e.catch(t),e},fn=function(e,t){return e.addEventListener("abort",t,{once:!0}),function(){return e.removeEventListener("abort",t)}},dn=function(e,t){var r=e.signal;r.aborted||("reason"in r||Object.defineProperty(r,"reason",{enumerable:!0,value:t,configurable:!0,writable:!0}),e.abort(t))},pn="listener",hn="completed",yn="cancelled",vn="task-"+yn,mn="task-"+hn,gn=pn+"-"+yn,bn=pn+"-"+hn,xn=function(e){this.code=e,this.name="TaskAbortError",this.message="task "+yn+" (reason: "+e+")"},wn=function(e){if(e.aborted)throw new xn(e.reason)};function On(e,t){var r=un;return new Promise((function(n,i){var a=function(){return i(new xn(e.reason))};e.aborted?a():(r=fn(e,a),t.finally((function(){return r()})).then(n,i))})).finally((function(){r=un}))}var Pn=function(e){return function(t){return sn(On(e,t).then((function(t){return wn(e),t})))}},En=function(e){var t=Pn(e);return function(e){return t(new Promise((function(t){return setTimeout(t,e)})))}},jn=Object.assign,An={},Sn="listenerMiddleware",kn=function(e,t){return function(r,n){cn(r,"taskExecutor");var i,a=new AbortController;i=a,fn(e,(function(){return dn(i,e.reason)}));var o,l,c=(o=function(){return Ur(void 0,null,(function(){var t;return Dr(this,(function(n){switch(n.label){case 0:return wn(e),wn(a.signal),[4,r({pause:Pn(a.signal),delay:En(a.signal),signal:a.signal})];case 1:return t=n.sent(),wn(a.signal),[2,t]}}))}))},l=function(){return dn(a,mn)},Ur(void 0,null,(function(){var e;return Dr(this,(function(t){switch(t.label){case 0:return t.trys.push([0,3,4,5]),[4,Promise.resolve()];case 1:return t.sent(),[4,o()];case 2:return[2,{status:"ok",value:t.sent()}];case 3:return[2,{status:(e=t.sent())instanceof xn?"cancelled":"rejected",error:e}];case 4:return null==l||l(),[7];case 5:return[2]}}))})));return(null==n?void 0:n.autoJoin)&&t.push(c),{result:Pn(e)(c),cancel:function(){dn(a,vn)}}}},In=function(e,t){return function(r,n){return sn(function(r,n){return Ur(void 0,null,(function(){var i,a,o,l;return Dr(this,(function(c){switch(c.label){case 0:wn(t),i=function(){},a=new Promise((function(t,n){var a=e({predicate:r,effect:function(e,r){r.unsubscribe(),t([e,r.getState(),r.getOriginalState()])}});i=function(){a(),n()}})),o=[a],null!=n&&o.push(new Promise((function(e){return setTimeout(e,n,null)}))),c.label=1;case 1:return c.trys.push([1,,3,4]),[4,On(t,Promise.race(o))];case 2:return l=c.sent(),wn(t),[2,l];case 3:return i(),[7];case 4:return[2]}}))}))}(r,n))}},Mn=function(e){var t=e.type,r=e.actionCreator,n=e.matcher,i=e.predicate,a=e.effect;if(t)i=Hr(t).match;else if(r)t=r.type,i=r.match;else if(n)i=n;else if(!i)throw new Error("Creating or removing a listener requires one of the known fields for matching an action");return cn(a,"options.listener"),{predicate:i,type:t,effect:a}},Tn=function(e){e.pending.forEach((function(e){dn(e,gn)}))},Dn=function(e,t,r){try{e(t,r)}catch(e){setTimeout((function(){throw e}),0)}},Cn=Hr(Sn+"/add"),Nn=Hr(Sn+"/removeAll"),_n=Hr(Sn+"/remove"),zn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];console.error.apply(console,Cr([Sn+"/error"],e))};function Rn(e){var t=this;void 0===e&&(e={});var r=new Map,n=e.extra,i=e.onError,a=void 0===i?zn:i;cn(a,"onError");var o=function(e){for(var t=0,n=Array.from(r.values());t<n.length;t++){var i=n[t];if(e(i))return i}},l=function(e){var t=o((function(t){return t.effect===e.effect}));return t||(t=function(e){var t=Mn(e),r=t.type,n=t.predicate,i=t.effect;return{id:tn(),effect:i,type:r,predicate:n,pending:new Set,unsubscribe:function(){throw new Error("Unsubscribe not initialized")}}}(e)),function(e){return e.unsubscribe=function(){return r.delete(e.id)},r.set(e.id,e),function(t){e.unsubscribe(),(null==t?void 0:t.cancelActive)&&Tn(e)}}(t)},c=function(e){var t=Mn(e),r=t.type,n=t.effect,i=t.predicate,a=o((function(e){return("string"==typeof r?e.type===r:e.predicate===i)&&e.effect===n}));return a&&(a.unsubscribe(),e.cancelActive&&Tn(a)),!!a},u=function(e,i,o,c){return Ur(t,null,(function(){var t,u,s,f;return Dr(this,(function(d){switch(d.label){case 0:t=new AbortController,u=In(l,t.signal),s=[],d.label=1;case 1:return d.trys.push([1,3,4,6]),e.pending.add(t),[4,Promise.resolve(e.effect(i,jn({},o,{getOriginalState:c,condition:function(e,t){return u(e,t).then(Boolean)},take:u,delay:En(t.signal),pause:Pn(t.signal),extra:n,signal:t.signal,fork:kn(t.signal,s),unsubscribe:e.unsubscribe,subscribe:function(){r.set(e.id,e)},cancelActiveListeners:function(){e.pending.forEach((function(e,r,n){e!==t&&(dn(e,gn),n.delete(e))}))}})))];case 2:return d.sent(),[3,6];case 3:return(f=d.sent())instanceof xn||Dn(a,f,{raisedBy:"effect"}),[3,6];case 4:return[4,Promise.allSettled(s)];case 5:return d.sent(),dn(t,bn),e.pending.delete(t),[7];case 6:return[2]}}))}))},s=function(e){return function(){e.forEach(Tn),e.clear()}}(r);return{middleware:function(e){return function(t){return function(n){if(!$r(n))return t(n);if(Cn.match(n))return l(n.payload);if(!Nn.match(n)){if(_n.match(n))return c(n.payload);var i,o=e.getState(),f=function(){if(o===An)throw new Error(Sn+": getOriginalState can only be called synchronously");return o};try{if(i=t(n),r.size>0)for(var d=e.getState(),p=Array.from(r.values()),h=0,y=p;h<y.length;h++){var v=y[h],m=!1;try{m=v.predicate(n,d,o)}catch(e){m=!1,Dn(a,e,{raisedBy:"predicate"})}m&&u(v,n,e,f)}}finally{o=An}return i}s()}}},startListening:l,stopListening:c,clearListeners:s}}var Ln,Kn="RTK_autoBatch",Bn=function(){return function(e){var t;return{payload:e,meta:(t={},t[Kn]=!0,t)}}},Wn="function"==typeof queueMicrotask?queueMicrotask.bind("undefined"!=typeof window?window:void 0!==a.g?a.g:globalThis):function(e){return(Ln||(Ln=Promise.resolve())).then(e).catch((function(e){return setTimeout((function(){throw e}),0)}))},Fn=function(e){return function(t){setTimeout(t,e)}},Un="undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:Fn(10);$t();var Vn=en({name:"chartLayout",initialState:{layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,i,a;e.margin.top=null!==(r=t.payload.top)&&void 0!==r?r:0,e.margin.right=null!==(n=t.payload.right)&&void 0!==n?n:0,e.margin.bottom=null!==(i=t.payload.bottom)&&void 0!==i?i:0,e.margin.left=null!==(a=t.payload.left)&&void 0!==a?a:0},setScale(e,t){e.scale=t.payload}}}),{setMargin:Xn,setLayout:Hn,setChartSize:$n,setScale:qn}=Vn.actions,Yn=Vn.reducer;function Gn(e,t){if((i=e.length)>1)for(var r,n,i,a=1,o=e[t[0]],l=o.length;a<i;++a)for(n=o,o=e[t[a]],r=0;r<l;++r)o[r][1]+=o[r][0]=isNaN(n[r][1])?n[r][0]:n[r][1]}Array.prototype.slice;function Zn(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function Jn(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function Qn(e,t){return e[t]}function ei(e){const t=[];return t.key=e,t}function ti(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function ri(e){return Number.isFinite(e)}function ni(e){return"number"==typeof e&&e>0&&Number.isFinite(e)}function ii(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ai(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ii(Object(r),!0).forEach((function(t){oi(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ii(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function oi(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function li(e,t,r){return ye(e)||ye(t)?r:ce(t)?ee()(e,t,r):"function"==typeof t?t(e):r}var ci=(e,t)=>"horizontal"===e&&"xAxis"===t||"vertical"===e&&"yAxis"===t||"centric"===e&&"angleAxis"===t||"radial"===e&&"radiusAxis"===t,ui=(e,t,r,n)=>{if(n)return e.map((e=>e.coordinate));var i,a,o=e.map((e=>(e.coordinate===t&&(i=!0),e.coordinate===r&&(a=!0),e.coordinate)));return i||o.push(t),a||o.push(r),o},si=(e,t,r)=>{if(!e)return null;var{duplicateDomain:n,type:i,range:a,scale:o,realScaleType:l,isCategorical:c,categoricalDomain:u,tickCount:s,ticks:f,niceTicks:d,axisType:p}=e;if(!o)return null;var h="scaleBand"===l&&o.bandwidth?o.bandwidth()/2:2,y=(t||r)&&"category"===i&&o.bandwidth?o.bandwidth()/h:0;return y="angleAxis"===p&&a&&a.length>=2?2*ie(a[0]-a[1])*y:y,t&&(f||d)?(f||d||[]).map(((e,t)=>{var r=n?n.indexOf(e):e,i=o.map(r);return ri(i)?{coordinate:i+y,value:e,offset:y,index:t}:null})).filter(me):c&&u?u.map(((e,t)=>{var r=o.map(e);return ri(r)?{coordinate:r+y,value:e,index:t,offset:y}:null})).filter(me):o.ticks&&!r&&null!=s?o.ticks(s).map(((e,t)=>{var r=o.map(e);return ri(r)?{coordinate:r+y,value:e,index:t,offset:y}:null})).filter(me):o.domain().map(((e,t)=>{var r=o.map(e);return ri(r)?{coordinate:r+y,value:n?n[e]:e,index:t,offset:y}:null})).filter(me)},fi=(e,t)=>{if(!t||2!==t.length||!le(t[0])||!le(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),i=[e[0],e[1]];return(!le(e[0])||e[0]<r)&&(i[0]=r),(!le(e[1])||e[1]>n)&&(i[1]=n),i[0]>n&&(i[0]=n),i[1]<r&&(i[1]=r),i},di={sign:e=>{var t,r=e.length;if(!(r<=0)){var n=null===(t=e[0])||void 0===t?void 0:t.length;if(!(null==n||n<=0))for(var i=0;i<n;++i)for(var a=0,o=0,l=0;l<r;++l){var c=e[l],u=null==c?void 0:c[i];if(null!=u){var s=u[1],f=u[0],d=ae(s)?f:s;d>=0?(u[0]=a,a+=d,u[1]=a):(u[0]=o,o+=d,u[1]=o)}}}},expand:function(e,t){if((n=e.length)>0){for(var r,n,i,a=0,o=e[0].length;a<o;++a){for(i=r=0;r<n;++r)i+=e[r][a][1]||0;if(i)for(r=0;r<n;++r)e[r][a][1]/=i}Gn(e,t)}},none:Gn,silhouette:function(e,t){if((r=e.length)>0){for(var r,n=0,i=e[t[0]],a=i.length;n<a;++n){for(var o=0,l=0;o<r;++o)l+=e[o][n][1]||0;i[n][1]+=i[n][0]=-l/2}Gn(e,t)}},wiggle:function(e,t){if((i=e.length)>0&&(n=(r=e[t[0]]).length)>0){for(var r,n,i,a=0,o=1;o<n;++o){for(var l=0,c=0,u=0;l<i;++l){for(var s=e[t[l]],f=s[o][1]||0,d=(f-(s[o-1][1]||0))/2,p=0;p<l;++p){var h=e[t[p]];d+=(h[o][1]||0)-(h[o-1][1]||0)}c+=f,u+=d*f}r[o-1][1]+=r[o-1][0]=a,c&&(a-=u/c)}r[o-1][1]+=r[o-1][0]=a,Gn(e,t)}},positive:e=>{var t,r=e.length;if(!(r<=0)){var n=null===(t=e[0])||void 0===t?void 0:t.length;if(!(null==n||n<=0))for(var i=0;i<n;++i)for(var a=0,o=0;o<r;++o){var l=e[o],c=null==l?void 0:l[i];if(null!=c){var u=ae(c[1])?c[0]:c[1];u>=0?(c[0]=a,a+=u,c[1]=a):(c[0]=0,c[1]=0)}}}}},pi=(e,t,r)=>{var n,i=null!==(n=di[r])&&void 0!==n?n:Gn,a=function(){var e=X([]),t=Jn,r=Gn,n=Qn;function i(i){var a,o,l=Array.from(e.apply(this,arguments),ei),c=l.length,u=-1;for(const e of i)for(a=0,++u;a<c;++a)(l[a][u]=[0,+n(e,l[a].key,u,i)]).data=e;for(a=0,o=Zn(t(l));a<c;++a)l[o[a]].index=a;return r(l,o),l}return i.keys=function(t){return arguments.length?(e="function"==typeof t?t:X(Array.from(t)),i):e},i.value=function(e){return arguments.length?(n="function"==typeof e?e:X(+e),i):n},i.order=function(e){return arguments.length?(t=null==e?Jn:"function"==typeof e?e:X(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(r=null==e?Gn:e,i):r},i}().keys(t).value(((e,t)=>Number(li(e,t,0)))).order(Jn).offset(i),o=a(e);return o.forEach(((r,n)=>{r.forEach(((r,i)=>{var a=li(e[i],t[n],0);Array.isArray(a)&&2===a.length&&le(a[0])&&le(a[1])&&(r[0]=a[0],r[1]=a[1])}))})),o};function hi(e){return null==e?void 0:String(e)}function yi(e){var{axis:t,ticks:r,bandSize:n,entry:i,index:a,dataKey:o}=e;if("category"===t.type){if(!t.allowDuplicatedCategory&&t.dataKey&&!ye(i[t.dataKey])){var l=he(r,"value",i[t.dataKey]);if(l)return l.coordinate+n/2}return null!=r&&r[a]?r[a].coordinate+n/2:null}var c=li(i,ye(o)?t.dataKey:o),u=t.scale.map(c);return le(u)?u:null}var vi=e=>{var{axis:t,ticks:r,offset:n,bandSize:i,entry:a,index:o}=e;if("category"===t.type)return r[o]?r[o].coordinate+n:null;var l=li(a,t.dataKey,t.scale.domain()[o]);if(ye(l))return null;var c=t.scale.map(l);return le(c)?c-i/2+n:null},mi=e=>{var{numericAxis:t}=e,r=t.scale.domain();if("number"===t.type){var n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return n<=0&&i>=0?0:i<0?i:n}return r[0]},gi=(e,t,r)=>{var n;if(null!=e)return n=Object.keys(e).reduce(((n,i)=>{var a=e[i];if(!a)return n;var{stackedData:o}=a,l=o.reduce(((e,n)=>{var i,a=ti(n,t,r),o=(i=a.flat(2).filter(le),[Math.min(...i),Math.max(...i)]);return ri(o[0])&&ri(o[1])?[Math.min(e[0],o[0]),Math.max(e[1],o[1])]:e}),[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]}),[1/0,-1/0]),[n[0]===1/0?0:n[0],n[1]===-1/0?0:n[1]]},bi=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,xi=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,wi=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var i=lt()(t,(e=>e.coordinate)),a=1/0,o=1,l=i.length;o<l;o++){var c=i[o],u=i[o-1];a=Math.min(((null==c?void 0:c.coordinate)||0)-((null==u?void 0:u.coordinate)||0),a)}return a===1/0?0:a}return r?void 0:0};function Oi(e){var{tooltipEntrySettings:t,dataKey:r,payload:n,value:i,name:a}=e;return ai(ai({},t),{},{dataKey:r,payload:n,value:i,name:a})}function Pi(e,t){return e?String(e):"string"==typeof t?t:void 0}var Ei=e=>e.layout.width,ji=e=>e.layout.height,Ai=e=>e.layout.scale,Si=e=>e.layout.margin,ki=it((e=>e.cartesianAxis.xAxis),(e=>Object.values(e))),Ii=it((e=>e.cartesianAxis.yAxis),(e=>Object.values(e))),Mi=["#1890FF","#66B5FF","#41D9C7","#2FC25B","#6EDB8F","#9AE65C","#FACC14","#E6965C","#57AD71","#223273","#738AE6","#7564CC","#8543E0","#A877ED","#5C8EE6","#13C2C2","#70E0E0","#5CA3E6","#3436C7","#8082FF","#DD81E6","#F04864","#FA7D92","#D598D9"],Ti="data-recharts-item-index",Di="data-recharts-item-id";function Ci(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ni(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ci(Object(r),!0).forEach((function(t){_i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ci(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _i(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var zi=it([Ei,ji,Si,e=>e.brush.height,function(e){return Ii(e).reduce(((e,t)=>"left"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.width?t.width:60)),0)},function(e){return Ii(e).reduce(((e,t)=>"right"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.width?t.width:60)),0)},function(e){return ki(e).reduce(((e,t)=>"top"!==t.orientation||t.mirror||t.hide?e:e+t.height),0)},function(e){return ki(e).reduce(((e,t)=>"bottom"!==t.orientation||t.mirror||t.hide?e:e+t.height),0)},ct,e=>e.legend.size],((e,t,r,n,i,a,o,l,c,u)=>{var s={left:(r.left||0)+i,right:(r.right||0)+a},f=Ni(Ni({},{top:(r.top||0)+o,bottom:(r.bottom||0)+l}),s),d=f.bottom;f.bottom+=n,f=((e,t,r)=>{if(t&&r){var{width:n,height:i}=r,{align:a,verticalAlign:o,layout:l}=t;if(("vertical"===l||"horizontal"===l&&"middle"===o)&&"center"!==a&&le(e[a]))return ai(ai({},e),{},{[a]:e[a]+(n||0)});if(("horizontal"===l||"vertical"===l&&"center"===a)&&"middle"!==o&&le(e[o]))return ai(ai({},e),{},{[o]:e[o]+(i||0)})}return e})(f,c,u);var p=e-f.left-f.right,h=t-f.top-f.bottom;return Ni(Ni({brushBottom:d},f),{},{width:Math.max(p,0),height:Math.max(h,0)})})),Ri=it(zi,(e=>({x:e.left,y:e.top,width:e.width,height:e.height}))),Li=it(Ei,ji,((e,t)=>({x:0,y:0,width:e,height:t}))),Ki=(0,t.createContext)(null),Bi=()=>null!=(0,t.useContext)(Ki),Wi=e=>{var{children:r}=e;return t.createElement(Ki.Provider,{value:!0},r)},Fi=e=>e.brush,Ui=it([Fi,zi,Si],((e,t,r)=>({height:e.height,x:le(e.x)?e.x:t.left,y:le(e.y)?e.y:t.top+t.height+t.brushBottom-((null==r?void 0:r.bottom)||0),width:le(e.width)?e.width:t.width}))),Vi=a(4297),Xi=a.n(Vi),Hi=function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),i=2;i<r;i++)n[i-2]=arguments[i]},$i={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},qi=(e,t,r)=>{var{width:n=$i.width,height:i=$i.height,aspect:a,maxHeight:o}=r,l=oe(n)?e:Number(n),c=oe(i)?t:Number(i);return a&&a>0&&(l?c=l/a:c&&(l=c*a),o&&null!=c&&c>o&&(c=o)),{calculatedWidth:l,calculatedHeight:c}},Yi={width:0,height:0,overflow:"visible"},Gi={width:0,overflowX:"visible"},Zi={height:0,overflowY:"visible"},Ji={},Qi=e=>{var{width:t,height:r}=e,n=oe(t),i=oe(r);return n&&i?Yi:n?Gi:i?Zi:Ji};function ea(){return ea=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ea.apply(null,arguments)}function ta(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ra(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ta(Object(r),!0).forEach((function(t){na(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ta(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function na(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ia=(0,t.createContext)($i.initialDimension);function aa(e){var{children:r,width:n,height:i}=e,a=(0,t.useMemo)((()=>({width:n,height:i})),[n,i]);return function(e){return ni(e.width)&&ni(e.height)}(a)?t.createElement(ia.Provider,{value:a},r):null}var oa=()=>(0,t.useContext)(ia),la=(0,t.forwardRef)(((e,r)=>{var{aspect:i,initialDimension:a=$i.initialDimension,width:o,height:l,minWidth:c=$i.minWidth,minHeight:u,maxHeight:s,children:f,debounce:d=$i.debounce,id:p,className:h,onResize:y,style:v={}}=e,m=(0,t.useRef)(null),g=(0,t.useRef)();g.current=y,(0,t.useImperativeHandle)(r,(()=>m.current));var[b,x]=(0,t.useState)({containerWidth:a.width,containerHeight:a.height}),w=(0,t.useCallback)(((e,t)=>{x((r=>{var n=Math.round(e),i=Math.round(t);return r.containerWidth===n&&r.containerHeight===i?r:{containerWidth:n,containerHeight:i}}))}),[]);(0,t.useEffect)((()=>{if(null==m.current||"undefined"==typeof ResizeObserver)return ge;var e=e=>{var t,r=e[0];if(null!=r){var{width:n,height:i}=r.contentRect;w(n,i),null===(t=g.current)||void 0===t||t.call(g,n,i)}};d>0&&(e=Xi()(e,d,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),{width:r,height:n}=m.current.getBoundingClientRect();return w(r,n),t.observe(m.current),()=>{t.disconnect()}}),[w,d]);var{containerWidth:O,containerHeight:P}=b;Hi(!i||i>0,"The aspect(%s) must be greater than zero.",i);var{calculatedWidth:E,calculatedHeight:j}=qi(O,P,{width:o,height:l,aspect:i,maxHeight:s});return Hi(null!=E&&E>0||null!=j&&j>0,"The width(%s) and height(%s) of chart should be greater than 0,\n       please check the style of container, or the props width(%s) and height(%s),\n       or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n       height and width.",E,j,o,l,c,u,i),t.createElement("div",{id:p?"".concat(p):void 0,className:n("recharts-responsive-container",h),style:ra(ra({},v),{},{width:o,height:l,minWidth:c,minHeight:u,maxHeight:s}),ref:m},t.createElement("div",{style:Qi({width:o,height:l})},t.createElement(aa,{width:E,height:j},f)))})),ca=(0,t.forwardRef)(((e,r)=>{var n=oa();if(ni(n.width)&&ni(n.height))return e.children;var{width:i,height:a}=function(e){var{width:t,height:r,aspect:n}=e,i=t,a=r;return void 0===i&&void 0===a?(i=$i.width,a=$i.height):void 0===i?i=n&&n>0?void 0:$i.width:void 0===a&&(a=n&&n>0?void 0:$i.height),{width:i,height:a}}({width:e.width,height:e.height,aspect:e.aspect}),{calculatedWidth:o,calculatedHeight:l}=qi(void 0,void 0,{width:i,height:a,aspect:e.aspect,maxHeight:e.maxHeight});return le(o)&&le(l)?t.createElement(aa,{width:o,height:l},e.children):t.createElement(la,ea({},e,{width:i,height:a,ref:r}))}));function ua(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var sa=()=>{var e,t=Bi(),r=Ze(Ri),n=Ze(Ui),i=null===(e=Ze(Fi))||void 0===e?void 0:e.padding;return t&&n&&i?{width:n.width-i.left-i.right,height:n.height-i.top-i.bottom,x:i.left,y:i.top}:r},fa={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},da=()=>{var e;return null!==(e=Ze(zi))&&void 0!==e?e:fa},pa=()=>Ze(Ei),ha=()=>Ze(ji),ya=()=>Ze((e=>e.layout.margin)),va=e=>e.layout.layoutType,ma=()=>Ze(va),ga=()=>{var e=ma();if("horizontal"===e||"vertical"===e)return e},ba=e=>{var t=e.layout.layoutType;if("centric"===t||"radial"===t)return t},xa=()=>Ze(ba),wa=()=>void 0!==ma(),Oa=e=>{var r=$e(),n=Bi(),{width:i,height:a}=e,o=oa(),l=i,c=a;return o&&(l=o.width>0?o.width:i,c=o.height>0?o.height:a),(0,t.useEffect)((()=>{!n&&ni(l)&&ni(c)&&r($n({width:l,height:c}))}),[r,n,l,c]),null},Pa=e=>{var{margin:r}=e,n=$e();return(0,t.useEffect)((()=>{n(Xn(r))}),[n,r]),null},Ea=Symbol.for("immer-nothing"),ja=Symbol.for("immer-draftable"),Aa=Symbol.for("immer-state");function Sa(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ka=Object.getPrototypeOf;function Ia(e){return!!e&&!!e[Aa]}function Ma(e){return!!e&&(Ca(e)||Array.isArray(e)||!!e[ja]||!!e.constructor?.[ja]||La(e)||Ka(e))}var Ta=Object.prototype.constructor.toString(),Da=new WeakMap;function Ca(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);if(null===t||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if("function"!=typeof r)return!1;let n=Da.get(r);return void 0===n&&(n=Function.toString.call(r),Da.set(r,n)),n===Ta}function Na(e,t,r=!0){if(0===_a(e)){(r?Reflect.ownKeys(e):Object.keys(e)).forEach((r=>{t(r,e[r],e)}))}else e.forEach(((r,n)=>t(n,r,e)))}function _a(e){const t=e[Aa];return t?t.type_:Array.isArray(e)?1:La(e)?2:Ka(e)?3:0}function za(e,t){return 2===_a(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ra(e,t,r){const n=_a(e);2===n?e.set(t,r):3===n?e.add(r):e[t]=r}function La(e){return e instanceof Map}function Ka(e){return e instanceof Set}function Ba(e){return e.copy_||e.base_}function Wa(e,t){if(La(e))return new Map(e);if(Ka(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=Ca(e);if(!0===t||"class_only"===t&&!r){const t=Object.getOwnPropertyDescriptors(e);delete t[Aa];let r=Reflect.ownKeys(t);for(let n=0;n<r.length;n++){const i=r[n],a=t[i];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(ka(e),t)}{const t=ka(e);if(null!==t&&r)return{...e};const n=Object.create(t);return Object.assign(n,e)}}function Fa(e,t=!1){return Va(e)||Ia(e)||!Ma(e)||(_a(e)>1&&Object.defineProperties(e,{set:Ua,add:Ua,clear:Ua,delete:Ua}),Object.freeze(e),t&&Object.values(e).forEach((e=>Fa(e,!0)))),e}var Ua={value:function(){Sa(2)}};function Va(e){return null===e||"object"!=typeof e||Object.isFrozen(e)}var Xa,Ha={};function $a(e){const t=Ha[e];return t||Sa(0),t}function qa(){return Xa}function Ya(e,t){t&&($a("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ga(e){Za(e),e.drafts_.forEach(Qa),e.drafts_=null}function Za(e){e===Xa&&(Xa=e.parent_)}function Ja(e){return Xa={drafts_:[],parent_:Xa,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Qa(e){const t=e[Aa];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function eo(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return void 0!==e&&e!==r?(r[Aa].modified_&&(Ga(t),Sa(4)),Ma(e)&&(e=to(t,e),t.parent_||no(t,e)),t.patches_&&$a("Patches").generateReplacementPatches_(r[Aa].base_,e,t.patches_,t.inversePatches_)):e=to(t,r,[]),Ga(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Ea?e:void 0}function to(e,t,r){if(Va(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[Aa];if(!i)return Na(t,((n,a)=>ro(e,i,t,n,a,r)),n),t;if(i.scope_!==e)return t;if(!i.modified_)return no(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const t=i.copy_;let a=t,o=!1;3===i.type_&&(a=new Set(t),t.clear(),o=!0),Na(a,((n,a)=>ro(e,i,t,n,a,r,o)),n),no(e,t,!1),r&&e.patches_&&$a("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function ro(e,t,r,n,i,a,o){if(null==i)return;if("object"!=typeof i&&!o)return;const l=Va(i);if(!l||o){if(Ia(i)){const o=to(e,i,a&&t&&3!==t.type_&&!za(t.assigned_,n)?a.concat(n):void 0);if(Ra(r,n,o),!Ia(o))return;e.canAutoFreeze_=!1}else o&&r.add(i);if(Ma(i)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;if(t&&t.base_&&t.base_[n]===i&&l)return;to(e,i),t&&t.scope_.parent_||"symbol"==typeof n||!(La(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))||no(e,i)}}}function no(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Fa(t,r)}var io={get(e,t){if(t===Aa)return e;const r=Ba(e);if(!za(r,t))return function(e,t,r){const n=lo(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}(e,r,t);const n=r[t];return e.finalized_||!Ma(n)?n:n===oo(e.base_,t)?(uo(e),e.copy_[t]=so(n,e)):n},has:(e,t)=>t in Ba(e),ownKeys:e=>Reflect.ownKeys(Ba(e)),set(e,t,r){const n=lo(Ba(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const n=oo(Ba(e),t),i=n?.[Aa];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(r,n)&&(void 0!==r||za(e.base_,t)))return!0;uo(e),co(e)}return e.copy_[t]===r&&(void 0!==r||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==oo(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,uo(e),co(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const r=Ba(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty(){Sa(11)},getPrototypeOf:e=>ka(e.base_),setPrototypeOf(){Sa(12)}},ao={};function oo(e,t){const r=e[Aa];return(r?Ba(r):e)[t]}function lo(e,t){if(!(t in e))return;let r=ka(e);for(;r;){const e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=ka(r)}}function co(e){e.modified_||(e.modified_=!0,e.parent_&&co(e.parent_))}function uo(e){e.copy_||(e.copy_=Wa(e.base_,e.scope_.immer_.useStrictShallowCopy_))}Na(io,((e,t)=>{ao[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),ao.deleteProperty=function(e,t){return ao.set.call(this,e,t,void 0)},ao.set=function(e,t,r){return io.set.call(this,e[0],t,r,e[0])};function so(e,t){const r=La(e)?$a("MapSet").proxyMap_(e,t):Ka(e)?$a("MapSet").proxySet_(e,t):function(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:qa(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,a=io;r&&(i=[n],a=ao);const{revoke:o,proxy:l}=Proxy.revocable(i,a);return n.draft_=l,n.revoke_=o,l}(e,t);return(t?t.scope_:qa()).drafts_.push(r),r}function fo(e){if(!Ma(e)||Va(e))return e;const t=e[Aa];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Wa(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Wa(e,!0);return Na(r,((e,t)=>{Ra(r,e,fo(t))}),n),t&&(t.finalized_=!1),r}var po=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,r)=>{if("function"==typeof e&&"function"!=typeof t){const r=t;t=e;const n=this;return function(e=r,...i){return n.produce(e,(e=>t.call(this,e,...i)))}}let n;if("function"!=typeof t&&Sa(6),void 0!==r&&"function"!=typeof r&&Sa(7),Ma(e)){const i=Ja(this),a=so(e,void 0);let o=!0;try{n=t(a),o=!1}finally{o?Ga(i):Za(i)}return Ya(i,r),eo(n,i)}if(!e||"object"!=typeof e){if(n=t(e),void 0===n&&(n=e),n===Ea&&(n=void 0),this.autoFreeze_&&Fa(n,!0),r){const t=[],i=[];$a("Patches").generateReplacementPatches_(e,n,t,i),r(t,i)}return n}Sa(1)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...r)=>this.produceWithPatches(t,(t=>e(t,...r)));let r,n;const i=this.produce(e,t,((e,t)=>{r=e,n=t}));return[i,r,n]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),"boolean"==typeof e?.useStrictIteration&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Ma(e)||Sa(8),Ia(e)&&(e=function(e){Ia(e)||Sa(10);return fo(e)}(e));const t=Ja(this),r=so(e,void 0);return r[Aa].isManual_=!0,Za(t),r}finishDraft(e,t){const r=e&&e[Aa];r&&r.isManual_||Sa(9);const{scope_:n}=r;return Ya(n,t),eo(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));const n=$a("Patches").applyPatches_;return Ia(e)?n(e,t):this.produce(e,(e=>n(e,t)))}};po.produce;var ho=en({name:"legend",initialState:{settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:Bn()},replaceLegendPayload:{reducer(e,t){var{prev:r,next:n}=t.payload,i=Xt(e).payload.indexOf(r);i>-1&&(e.payload[i]=n)},prepare:Bn()},removeLegendPayload:{reducer(e,t){var r=Xt(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:Bn()}}}),{setLegendSize:yo,setLegendSettings:vo,addLegendPayload:mo,replaceLegendPayload:go,removeLegendPayload:bo}=ho.actions,xo=ho.reducer,wo=["contextPayload"];function Oo(){return Oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Oo.apply(null,arguments)}function Po(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Eo(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Po(Object(r),!0).forEach((function(t){jo(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Po(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function jo(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ao(e){return e.value}function So(e){var{contextPayload:r}=e,n=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,wo),i=Ue(r,e.payloadUniqBy,Ao),a=Eo(Eo({},n),{},{payload:i});return t.isValidElement(e.content)?t.cloneElement(e.content,a):"function"==typeof e.content?t.createElement(e.content,a):t.createElement(Be,a)}function ko(e){var r=$e();return(0,t.useEffect)((()=>{r(vo(e))}),[r,e]),null}function Io(e){var r=$e();return(0,t.useEffect)((()=>(r(yo(e)),()=>{r(yo({width:0,height:0}))})),[r,e]),null}var Mo={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"};function To(e){var r=De(e,Mo),n=Ze(ut),i=O(),a=ya(),{width:o,height:l,wrapperStyle:c,portal:u}=r,[s,f]=ft([n]),d=pa(),p=ha();if(null==d||null==p)return null;var h=d-((null==a?void 0:a.left)||0)-((null==a?void 0:a.right)||0),y=function(e,t,r,n){return"vertical"===e&&null!=t?{height:t}:"horizontal"===e?{width:r||n}:null}(r.layout,l,o,h),v=u?c:Eo(Eo({position:"absolute",width:(null==y?void 0:y.width)||o||"auto",height:(null==y?void 0:y.height)||l||"auto"},function(e,t,r,n,i,a){var o,l,{layout:c,align:u,verticalAlign:s}=t;return e&&(void 0!==e.left&&null!==e.left||void 0!==e.right&&null!==e.right)||(o="center"===u&&"vertical"===c?{left:((n||0)-a.width)/2}:"right"===u?{right:r&&r.right||0}:{left:r&&r.left||0}),e&&(void 0!==e.top&&null!==e.top||void 0!==e.bottom&&null!==e.bottom)||(l="middle"===s?{top:((i||0)-a.height)/2}:"bottom"===s?{bottom:r&&r.bottom||0}:{top:r&&r.top||0}),Eo(Eo({},o),l)}(c,r,a,d,p,s)),c),m=null!=u?u:i;if(null==m||null==n)return null;var g=t.createElement("div",{className:"recharts-legend-wrapper",style:v,ref:f},t.createElement(ko,{layout:r.layout,align:r.align,verticalAlign:r.verticalAlign,itemSorter:r.itemSorter}),!u&&t.createElement(Io,{width:s.width,height:s.height}),t.createElement(So,Oo({},r,y,{margin:a,chartWidth:d,chartHeight:p,contextPayload:n})));return(0,x.createPortal)(g,m)}function Do(){return Do=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Do.apply(null,arguments)}function Co(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function No(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Co(Object(r),!0).forEach((function(t){_o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Co(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zo(e){return Array.isArray(e)&&ce(e[0])&&ce(e[1])?e.join(" ~ "):e}To.displayName="Legend";var Ro={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1},Lo=e=>{var{separator:r=Ro.separator,contentStyle:i,itemStyle:a,labelStyle:o=Ro.labelStyle,payload:l,formatter:c,itemSorter:u,wrapperClassName:s,labelClassName:f,label:d,labelFormatter:p,accessibilityLayer:h=Ro.accessibilityLayer}=e,y=No(No({},Ro.contentStyle),i),v=No({margin:0},o),m=!ye(d),g=m?d:"",b=n("recharts-default-tooltip",s),x=n("recharts-tooltip-label",f);m&&p&&null!=l&&(g=p(d,l));var w=h?{role:"status","aria-live":"assertive"}:{};return t.createElement("div",Do({className:b,style:y},w),t.createElement("p",{className:x,style:v},t.isValidElement(g)?g:"".concat(g)),(()=>{if(l&&l.length){var e=(u?lt()(l,u):l).map(((e,n)=>{if("none"===e.type)return null;var i=e.formatter||c||zo,{value:o,name:u}=e,s=o,f=u;if(i){var d=i(o,u,e,n,l);if(Array.isArray(d))[s,f]=d;else{if(null==d)return null;s=d}}var p=No(No({},Ro.itemStyle),{},{color:e.color||Ro.itemStyle.color},a);return t.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(n),style:p},ce(f)?t.createElement("span",{className:"recharts-tooltip-item-name"},f):null,ce(f)?t.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,t.createElement("span",{className:"recharts-tooltip-item-value"},s),t.createElement("span",{className:"recharts-tooltip-item-unit"},e.unit||""))}));return t.createElement("ul",{className:"recharts-tooltip-item-list",style:{padding:0,margin:0}},e)}return null})())},Ko="recharts-tooltip-wrapper",Bo={visibility:"hidden"};function Wo(e){var{coordinate:t,translateX:r,translateY:i}=e;return n(Ko,{["".concat(Ko,"-right")]:le(r)&&t&&le(t.x)&&r>=t.x,["".concat(Ko,"-left")]:le(r)&&t&&le(t.x)&&r<t.x,["".concat(Ko,"-bottom")]:le(i)&&t&&le(t.y)&&i>=t.y,["".concat(Ko,"-top")]:le(i)&&t&&le(t.y)&&i<t.y})}function Fo(e){var{allowEscapeViewBox:t,coordinate:r,key:n,offset:i,position:a,reverseDirection:o,tooltipDimension:l,viewBox:c,viewBoxDimension:u}=e;if(a&&le(a[n]))return a[n];var s=r[n]-l-(i>0?i:0),f=r[n]+i;if(t[n])return o[n]?s:f;var d=c[n];return null==d?0:o[n]?s<d?Math.max(f,d):Math.max(s,d):null==u?0:f+l>d+u?Math.max(s,d):Math.max(f,d)}function Uo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Vo(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Uo(Object(r),!0).forEach((function(t){Xo(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Uo(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Xo(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class Ho extends t.PureComponent{constructor(){super(...arguments),Xo(this,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}),Xo(this,"handleKeyDown",(e=>{var t,r,n,i;"Escape"===e.key&&this.setState({dismissed:!0,dismissedAtCoordinate:{x:null!==(t=null===(r=this.props.coordinate)||void 0===r?void 0:r.x)&&void 0!==t?t:0,y:null!==(n=null===(i=this.props.coordinate)||void 0===i?void 0:i.y)&&void 0!==n?n:0}})}))}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}componentDidUpdate(){var e,t;this.state.dismissed&&((null===(e=this.props.coordinate)||void 0===e?void 0:e.x)===this.state.dismissedAtCoordinate.x&&(null===(t=this.props.coordinate)||void 0===t?void 0:t.y)===this.state.dismissedAtCoordinate.y||(this.state.dismissed=!1))}render(){var{active:e,allowEscapeViewBox:r,animationDuration:n,animationEasing:i,children:a,coordinate:o,hasPayload:l,isAnimationActive:c,offset:u,position:s,reverseDirection:f,useTranslate3d:d,viewBox:p,wrapperStyle:h,lastBoundingBox:y,innerRef:v,hasPortalFromProps:m}=this.props,g="number"==typeof u?u:u.x,b="number"==typeof u?u:u.y,{cssClasses:x,cssProperties:w}=function(e){var t,r,n,{allowEscapeViewBox:i,coordinate:a,offsetTop:o,offsetLeft:l,position:c,reverseDirection:u,tooltipBox:s,useTranslate3d:f,viewBox:d}=e;return t=s.height>0&&s.width>0&&a?function(e){var{translateX:t,translateY:r,useTranslate3d:n}=e;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}({translateX:r=Fo({allowEscapeViewBox:i,coordinate:a,key:"x",offset:l,position:c,reverseDirection:u,tooltipDimension:s.width,viewBox:d,viewBoxDimension:d.width}),translateY:n=Fo({allowEscapeViewBox:i,coordinate:a,key:"y",offset:o,position:c,reverseDirection:u,tooltipDimension:s.height,viewBox:d,viewBoxDimension:d.height}),useTranslate3d:f}):Bo,{cssProperties:t,cssClasses:Wo({translateX:r,translateY:n,coordinate:a})}}({allowEscapeViewBox:r,coordinate:o,offsetLeft:g,offsetTop:b,position:s,reverseDirection:f,tooltipBox:{height:y.height,width:y.width},useTranslate3d:d,viewBox:p}),O=m?{}:Vo(Vo({transition:c&&e?"transform ".concat(n,"ms ").concat(i):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&e&&l?"visible":"hidden",position:"absolute",top:0,left:0}),P=Vo(Vo({},O),{},{visibility:!this.state.dismissed&&e&&l?"visible":"hidden"},h);return t.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:x,style:P,ref:v},a)}}var $o=()=>{var e;return null===(e=Ze((e=>e.rootProps.accessibilityLayer)))||void 0===e||e};function qo(){}function Yo(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function Go(e){this._context=e}function Zo(e){this._context=e}function Jo(e){this._context=e}Go.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Yo(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Yo(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},Zo.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Yo(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},Jo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Yo(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};class Qo{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}}function el(e){this._context=e}function tl(e){this._context=e}function rl(e){return new tl(e)}function nl(e){return e<0?-1:1}function il(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),l=(a*i+o*n)/(n+i);return(nl(a)+nl(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(l))||0}function al(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function ol(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,l=(a-n)/3;e._context.bezierCurveTo(n+l,i+l*t,a-l,o-l*r,a,o)}function ll(e){this._context=e}function cl(e){this._context=new ul(e)}function ul(e){this._context=e}function sl(e){this._context=e}function fl(e){var t,r,n=e.length-1,i=new Array(n),a=new Array(n),o=new Array(n);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,a[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=i[t]/a[t-1],a[t]-=r,o[t]-=r*o[t-1];for(i[n-1]=o[n-1]/a[n-1],t=n-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function dl(e,t){this._context=e,this._t=t}function pl(e){return e[0]}function hl(e){return e[1]}function yl(e,t){var r=X(!0),n=null,i=rl,a=null,o=J(l);function l(l){var c,u,s,f=(l=Zn(l)).length,d=!1;for(null==n&&(a=i(s=o())),c=0;c<=f;++c)!(c<f&&r(u=l[c],c,l))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,l),+t(u,c,l));if(s)return a=null,s+""||null}return e="function"==typeof e?e:void 0===e?pl:X(e),t="function"==typeof t?t:void 0===t?hl:X(t),l.x=function(t){return arguments.length?(e="function"==typeof t?t:X(+t),l):e},l.y=function(e){return arguments.length?(t="function"==typeof e?e:X(+e),l):t},l.defined=function(e){return arguments.length?(r="function"==typeof e?e:X(!!e),l):r},l.curve=function(e){return arguments.length?(i=e,null!=n&&(a=i(n)),l):i},l.context=function(e){return arguments.length?(null==e?n=a=null:a=i(n=e),l):n},l}function vl(e,t,r){var n=null,i=X(!0),a=null,o=rl,l=null,c=J(u);function u(u){var s,f,d,p,h,y=(u=Zn(u)).length,v=!1,m=new Array(y),g=new Array(y);for(null==a&&(l=o(h=c())),s=0;s<=y;++s){if(!(s<y&&i(p=u[s],s,u))===v)if(v=!v)f=s,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),d=s-1;d>=f;--d)l.point(m[d],g[d]);l.lineEnd(),l.areaEnd()}v&&(m[s]=+e(p,s,u),g[s]=+t(p,s,u),l.point(n?+n(p,s,u):m[s],r?+r(p,s,u):g[s]))}if(h)return l=null,h+""||null}function s(){return yl().defined(i).curve(o).context(a)}return e="function"==typeof e?e:void 0===e?pl:X(+e),t="function"==typeof t?t:X(void 0===t?0:+t),r="function"==typeof r?r:void 0===r?hl:X(+r),u.x=function(t){return arguments.length?(e="function"==typeof t?t:X(+t),n=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:X(+t),u):e},u.x1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:X(+e),u):n},u.y=function(e){return arguments.length?(t="function"==typeof e?e:X(+e),r=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:X(+e),u):t},u.y1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:X(+e),u):r},u.lineX0=u.lineY0=function(){return s().x(e).y(t)},u.lineY1=function(){return s().x(e).y(r)},u.lineX1=function(){return s().x(n).y(t)},u.defined=function(e){return arguments.length?(i="function"==typeof e?e:X(!!e),u):i},u.curve=function(e){return arguments.length?(o=e,null!=a&&(l=o(a)),u):o},u.context=function(e){return arguments.length?(null==e?a=l=null:l=o(a=e),u):a},u}function ml(){return ml=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ml.apply(null,arguments)}function gl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function bl(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?gl(Object(r),!0).forEach((function(t){xl(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gl(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function xl(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}el.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},tl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}},ll.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ol(this,this._t0,al(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ol(this,al(this,r=il(this,e,t)),r);break;default:ol(this,this._t0,r=il(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}},(cl.prototype=Object.create(ll.prototype)).point=function(e,t){ll.prototype.point.call(this,t,e)},ul.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}},sl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===r)this._context.lineTo(e[1],t[1]);else for(var n=fl(e),i=fl(t),a=0,o=1;o<r;++a,++o)this._context.bezierCurveTo(n[0][a],i[0][a],n[1][a],i[1][a],e[o],t[o]);(this._line||0!==this._line&&1===r)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},dl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}}this._x=e,this._y=t}};var wl={curveBasisClosed:function(e){return new Zo(e)},curveBasisOpen:function(e){return new Jo(e)},curveBasis:function(e){return new Go(e)},curveBumpX:function(e){return new Qo(e,!0)},curveBumpY:function(e){return new Qo(e,!1)},curveLinearClosed:function(e){return new el(e)},curveLinear:rl,curveMonotoneX:function(e){return new ll(e)},curveMonotoneY:function(e){return new cl(e)},curveNatural:function(e){return new sl(e)},curveStep:function(e){return new dl(e,.5)},curveStepAfter:function(e){return new dl(e,1)},curveStepBefore:function(e){return new dl(e,0)}},Ol=e=>ri(e.x)&&ri(e.y),Pl=e=>null!=e.base&&Ol(e.base)&&Ol(e),El=e=>e.x,jl=e=>e.y,Al={connectNulls:!1,type:"linear"},Sl=e=>{var{type:t=Al.type,points:r=[],baseLine:n,layout:i,connectNulls:a=Al.connectNulls}=e,o=((e,t)=>{if("function"==typeof e)return e;var r="curve".concat(ve(e));if(("curveMonotone"===r||"curveBump"===r)&&t){var n=wl["".concat(r).concat("vertical"===t?"Y":"X")];if(n)return n}return wl[r]||rl})(t,i),l=a?r.filter(Ol):r;if(Array.isArray(n)){var c,u=r.map(((e,t)=>bl(bl({},e),{},{base:n[t]})));return c="vertical"===i?vl().y(jl).x1(El).x0((e=>e.base.x)):vl().x(El).y1(jl).y0((e=>e.base.y)),c.defined(Pl).curve(o)(a?u.filter(Pl):u)}return("vertical"===i&&le(n)?vl().y(jl).x1(El).x0(n):le(n)?vl().x(El).y1(jl).y0(n):yl().x(El).y(jl)).defined(Ol).curve(o)(l)},kl=e=>{var{className:r,points:i,path:a,pathRef:o}=e,l=ma();if(!(i&&i.length||a))return null;var c={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||l,connectNulls:e.connectNulls},u=i&&i.length?Sl(c):a;return t.createElement("path",ml({},f(e),ke(e),{className:n("recharts-curve",r),d:null===u?void 0:u,ref:o}))},Il=["x","y","top","left","width","height","className"];function Ml(){return Ml=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ml.apply(null,arguments)}function Tl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Dl(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Cl=(e,t,r,n,i,a)=>"M".concat(e,",").concat(i,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),Nl=e=>{var{x:r=0,y:i=0,top:a=0,left:o=0,width:l=0,height:c=0,className:u}=e,s=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,Il),f=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Tl(Object(r),!0).forEach((function(t){Dl(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tl(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({x:r,y:i,top:a,left:o,width:l,height:c},s);return le(r)&&le(i)&&le(l)&&le(c)&&le(a)&&le(o)?t.createElement("path",Ml({},p(f),{className:n("recharts-cross",u),d:Cl(r,i,l,c,a,o)})):null};function _l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function zl(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_l(Object(r),!0).forEach((function(t){Rl(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Rl(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ll=(e,t,r)=>e.map((e=>{return"".concat((n=e,n.replace(/([A-Z])/g,(e=>"-".concat(e.toLowerCase()))))," ").concat(t,"ms ").concat(r);var n})).join(","),Kl=(e,t)=>Object.keys(t).reduce(((r,n)=>zl(zl({},r),{},{[n]:e(n,t[n])})),{});function Bl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Wl(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Bl(Object(r),!0).forEach((function(t){Fl(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bl(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Fl(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ul=(e,t,r)=>e+(t-e)*r,Vl=e=>{var{from:t,to:r}=e;return t!==r},Xl=(e,t,r)=>{var n=Kl(((t,r)=>{if(Vl(r)){var[n,i]=e(r.from,r.to,r.velocity);return Wl(Wl({},r),{},{from:n,velocity:i})}return r}),t);return r<1?Kl(((e,t)=>Vl(t)&&null!=n[e]?Wl(Wl({},t),{},{velocity:Ul(t.velocity,n[e].velocity,r),from:Ul(t.from,n[e].from,r)}):t),t):Xl(e,n,r-1)};function Hl(e,t,r,n,i,a){var o,l=n.reduce(((r,n)=>Wl(Wl({},r),{},{[n]:{from:e[n],velocity:0,to:t[n]}})),{}),c=null,u=n=>{o||(o=n);var s=(n-o)/r.dt;l=Xl(r,l,s),i(Wl(Wl(Wl({},e),t),Kl(((e,t)=>t.from),l))),o=n,Object.values(l).filter(Vl).length&&(c=a.setTimeout(u))};return()=>(c=a.setTimeout(u),()=>{var e;null===(e=c)||void 0===e||e()})}const $l=(e,t,r,n,i,a)=>{var o,l,c=(o=e,l=t,[Object.keys(o),Object.keys(l)].reduce(((e,t)=>e.filter((e=>t.includes(e))))));return null==r?()=>(i(Wl(Wl({},e),t)),()=>{}):!0===r.isStepper?Hl(e,t,r,c,i,a):function(e,t,r,n,i,a,o){var l,c=null,u=i.reduce(((r,n)=>{var i=e[n],a=t[n];return null==i||null==a?r:Wl(Wl({},r),{},{[n]:[i,a]})}),{}),s=i=>{l||(l=i);var f=(i-l)/n,d=Kl(((e,t)=>Ul(...t,r(f))),u);if(a(Wl(Wl(Wl({},e),t),d)),f<1)c=o.setTimeout(s);else{var p=Kl(((e,t)=>Ul(...t,r(1))),u);a(Wl(Wl(Wl({},e),t),p))}};return()=>(c=o.setTimeout(s),()=>{var e;null===(e=c)||void 0===e||e()})}(e,t,r,n,c,i,a)};var ql=1e-4,Yl=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],Gl=(e,t)=>e.map(((e,r)=>e*t**r)).reduce(((e,t)=>e+t)),Zl=(e,t)=>r=>{var n=Yl(e,t);return Gl(n,r)},Jl=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(1===t.length)switch(t[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:var n=(e=>{var t,r=e.split("(");if(2!==r.length||"cubic-bezier"!==r[0])return null;var n=null===(t=r[1])||void 0===t||null===(t=t.split(")")[0])||void 0===t?void 0:t.split(",");if(null==n||4!==n.length)return null;var i=n.map((e=>parseFloat(e)));return[i[0],i[1],i[2],i[3]]})(t[0]);if(n)return n}return 4===t.length?t:[0,0,1,1]},Ql=(e,t,r,n)=>{var i,a,o=Zl(e,r),l=Zl(t,n),c=(i=e,a=r,e=>{var t=[...Yl(i,a).map(((e,t)=>e*t)).slice(1),0];return Gl(t,e)}),u=e=>e>1?1:e<0?0:e,s=e=>{for(var t=e>1?1:e,r=t,n=0;n<8;++n){var i=o(r)-t,a=c(r);if(Math.abs(i-t)<ql||a<ql)return l(r);r=u(r-i/a)}return l(r)};return s.isStepper=!1,s},ec=function(){return Ql(...Jl(...arguments))},tc=e=>{if("string"==typeof e)switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return ec(e);case"spring":return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{stiff:t=100,damping:r=8,dt:n=17}=e,i=(e,i,a)=>{var o=a+(-(e-i)*t-a*r)*n/1e3,l=a*n/1e3+e;return Math.abs(l-i)<ql&&Math.abs(o)<ql?[i,0]:[l,o]};return i.isStepper=!0,i.dt=n,i}();default:if("cubic-bezier"===e.split("(")[0])return ec(e)}return"function"==typeof e?e:null};class rc{setTimeout(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=performance.now(),n=null,i=a=>{a-r>=t?e(a):"function"==typeof requestAnimationFrame&&(n=requestAnimationFrame(i))};return n=requestAnimationFrame(i),()=>{null!=n&&cancelAnimationFrame(n)}}}function nc(){return e=new rc,t=()=>null,r=!1,n=null,i=a=>{if(!r){if(Array.isArray(a)){if(!a.length)return;var o=a,[l,...c]=o;return"number"==typeof l?void(n=e.setTimeout(i.bind(null,c),l)):(i(l),void(n=e.setTimeout(i.bind(null,c))))}"string"==typeof a&&t(a),"object"==typeof a&&t(a),"function"==typeof a&&a()}},{stop:()=>{r=!0},start:e=>{r=!1,n&&(n(),n=null),i(e)},subscribe:e=>(t=e,()=>{t=()=>null}),getTimeoutController:()=>e};var e,t,r,n,i}var ic=(0,t.createContext)(nc);function ac(e,r){var n=(0,t.useContext)(ic);return(0,t.useMemo)((()=>null!=r?r:n(e)),[e,r,n])}var oc={devToolsEnabled:!1,isSsr:!("undefined"!=typeof window&&window.document&&Boolean(window.document.createElement)&&window.setTimeout)},lc={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},cc={t:0},uc={t:1};function sc(e){var r=De(e,lc),{isActive:n,canBegin:i,duration:a,easing:o,begin:l,onAnimationEnd:c,onAnimationStart:u,children:s}=r,f="auto"===n?!oc.isSsr:n,d=ac(r.animationId,r.animationManager),[p,h]=(0,t.useState)(f?cc:uc),y=(0,t.useRef)(null);return(0,t.useEffect)((()=>{f||h(uc)}),[f]),(0,t.useEffect)((()=>{if(!f||!i)return ge;var e=$l(cc,uc,tc(o),a,h,d.getTimeoutController());return d.start([u,l,()=>{y.current=e()},a,c]),()=>{d.stop(),y.current&&y.current(),c()}}),[f,i,a,o,l,u,c,d]),s(p.t)}function fc(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"animation-",n=(0,t.useRef)(se(r)),i=(0,t.useRef)(e);return i.current!==e&&(n.current=se(r),i.current=e),n.current}var dc,pc,hc,yc,vc,mc,gc,bc,xc,wc,Oc=["radius"],Pc=["radius"];function Ec(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function jc(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ec(Object(r),!0).forEach((function(t){Ac(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ec(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ac(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Sc(){return Sc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Sc.apply(null,arguments)}function kc(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function Ic(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Mc=(e,t,r,n,i)=>{var a,o=re(r),l=re(n),c=Math.min(Math.abs(o)/2,Math.abs(l)/2),u=l>=0?1:-1,s=o>=0?1:-1,f=l>=0&&o>=0||l<0&&o<0?1:0;if(c>0&&Array.isArray(i)){for(var d=[0,0,0,0],p=0;p<4;p++){var h,y=null!==(h=i[p])&&void 0!==h?h:0;d[p]=y>c?c:y}a=ne(dc||(dc=Ic(["M",",",""])),e,t+u*d[0]),d[0]>0&&(a+=ne(pc||(pc=Ic(["A ",",",",0,0,",",",",",""])),d[0],d[0],f,e+s*d[0],t)),a+=ne(hc||(hc=Ic(["L ",",",""])),e+r-s*d[1],t),d[1]>0&&(a+=ne(yc||(yc=Ic(["A ",",",",0,0,",",\n        ",",",""])),d[1],d[1],f,e+r,t+u*d[1])),a+=ne(vc||(vc=Ic(["L ",",",""])),e+r,t+n-u*d[2]),d[2]>0&&(a+=ne(mc||(mc=Ic(["A ",",",",0,0,",",\n        ",",",""])),d[2],d[2],f,e+r-s*d[2],t+n)),a+=ne(gc||(gc=Ic(["L ",",",""])),e+s*d[3],t+n),d[3]>0&&(a+=ne(bc||(bc=Ic(["A ",",",",0,0,",",\n        ",",",""])),d[3],d[3],f,e,t+n-u*d[3])),a+="Z"}else if(c>0&&i===+i&&i>0){var v=Math.min(c,i);a=ne(xc||(xc=Ic(["M ",",","\n            A ",",",",0,0,",",",",","\n            L ",",","\n            A ",",",",0,0,",",",",","\n            L ",",","\n            A ",",",",0,0,",",",",","\n            L ",",","\n            A ",",",",0,0,",",",","," Z"])),e,t+u*v,v,v,f,e+s*v,t,e+r-s*v,t,v,v,f,e+r,t+u*v,e+r,t+n-u*v,v,v,f,e+r-s*v,t+n,e+s*v,t+n,v,v,f,e,t+n-u*v)}else a=ne(wc||(wc=Ic(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return a},Tc={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Dc=e=>{var r=De(e,Tc),i=(0,t.useRef)(null),[a,o]=(0,t.useState)(-1);(0,t.useEffect)((()=>{if(i.current&&i.current.getTotalLength)try{var e=i.current.getTotalLength();e&&o(e)}catch(e){}}),[]);var{x:l,y:c,width:u,height:s,radius:f,className:d}=r,{animationEasing:h,animationDuration:y,animationBegin:v,isAnimationActive:m,isUpdateAnimationActive:g}=r,b=(0,t.useRef)(u),x=(0,t.useRef)(s),w=(0,t.useRef)(l),O=(0,t.useRef)(c),P=fc((0,t.useMemo)((()=>({x:l,y:c,width:u,height:s,radius:f})),[l,c,u,s,f]),"rectangle-");if(l!==+l||c!==+c||u!==+u||s!==+s||0===u||0===s)return null;var E=n("recharts-rectangle",d);if(!g){var j=p(r),{radius:A}=j,S=kc(j,Oc);return t.createElement("path",Sc({},S,{x:re(l),y:re(c),width:re(u),height:re(s),radius:"number"==typeof f?f:void 0,className:E,d:Mc(l,c,u,s,f)}))}var k=b.current,I=x.current,M=w.current,T=O.current,D="0px ".concat(-1===a?1:a,"px"),C="".concat(a,"px 0px"),N=Ll(["strokeDasharray"],y,"string"==typeof h?h:Tc.animationEasing);return t.createElement(sc,{animationId:P,key:P,canBegin:a>0,duration:y,easing:h,isActive:g,begin:v},(e=>{var n,a=pe(k,u,e),o=pe(I,s,e),d=pe(M,l,e),h=pe(T,c,e);i.current&&(b.current=a,x.current=o,w.current=d,O.current=h),n=m?e>0?{transition:N,strokeDasharray:C}:{strokeDasharray:D}:{strokeDasharray:C};var y=p(r),{radius:v}=y,g=kc(y,Pc);return t.createElement("path",Sc({},g,{radius:"number"==typeof f?f:void 0,className:E,d:Mc(d,h,a,o,f),ref:i,style:jc(jc({},n),r.style)}))}))};function Cc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Nc(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Cc(Object(r),!0).forEach((function(t){_c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cc(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var zc,Rc,Lc,Kc,Bc,Wc,Fc,Uc=Math.PI/180,Vc=e=>e*Math.PI/180,Xc=e=>180*e/Math.PI,Hc=(e,t,r,n)=>({x:e+Math.cos(-Uc*n)*r,y:t+Math.sin(-Uc*n)*r}),$c=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(r.left||0)-(r.right||0)),Math.abs(t-(r.top||0)-(r.bottom||0)))/2},qc=(e,t)=>{var{x:r,y:n}=e,{cx:i,cy:a}=t,o=((e,t)=>{var{x:r,y:n}=e,{x:i,y:a}=t;return Math.sqrt((r-i)**2+(n-a)**2)})({x:r,y:n},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var l=(r-i)/o,c=Math.acos(l);return n>a&&(c=2*Math.PI-c),{radius:o,angle:Xc(c),angleInRadian:c}},Yc=(e,t)=>{var{startAngle:r,endAngle:n}=t,i=Math.floor(r/360),a=Math.floor(n/360);return e+360*Math.min(i,a)},Gc=(e,t)=>{var{chartX:r,chartY:n}=e,{radius:i,angle:a}=qc({x:r,y:n},t),{innerRadius:o,outerRadius:l}=t;if(i<o||i>l)return null;if(0===i)return null;var c,{startAngle:u,endAngle:s}=(e=>{var{startAngle:t,endAngle:r}=e,n=Math.floor(t/360),i=Math.floor(r/360),a=Math.min(n,i);return{startAngle:t-360*a,endAngle:r-360*a}})(t),f=a;if(u<=s){for(;f>s;)f-=360;for(;f<u;)f+=360;c=f>=u&&f<=s}else{for(;f>u;)f-=360;for(;f<s;)f+=360;c=f>=s&&f<=u}return c?Nc(Nc({},t),{},{radius:i,angle:Yc(f,t)}):null};function Zc(e){var{cx:t,cy:r,radius:n,startAngle:i,endAngle:a}=e;return{points:[Hc(t,r,n,i),Hc(t,r,n,a)],cx:t,cy:r,radius:n,startAngle:i,endAngle:a}}function Jc(){return Jc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jc.apply(null,arguments)}function Qc(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var eu=e=>{var{cx:t,cy:r,radius:n,angle:i,sign:a,isExternal:o,cornerRadius:l,cornerIsExternal:c}=e,u=l*(o?1:-1)+n,s=Math.asin(l/u)/Uc,f=c?i:i+a*s,d=c?i-a*s:i;return{center:Hc(t,r,u,f),circleTangency:Hc(t,r,n,f),lineTangency:Hc(t,r,u*Math.cos(s*Uc),d),theta:s}},tu=e=>{var{cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:a,endAngle:o}=e,l=((e,t)=>ie(t-e)*Math.min(Math.abs(t-e),359.999))(a,o),c=a+l,u=Hc(t,r,i,a),s=Hc(t,r,i,c),f=ne(zc||(zc=Qc(["M ",",","\n    A ",",",",0,\n    ",",",",\n    ",",","\n  "])),u.x,u.y,i,i,+(Math.abs(l)>180),+(a>c),s.x,s.y);if(n>0){var d=Hc(t,r,n,a),p=Hc(t,r,n,c);f+=ne(Rc||(Rc=Qc(["L ",",","\n            A ",",",",0,\n            ",",",",\n            ",","," Z"])),p.x,p.y,n,n,+(Math.abs(l)>180),+(a<=c),d.x,d.y)}else f+=ne(Lc||(Lc=Qc(["L ",","," Z"])),t,r);return f},ru={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},nu=e=>{var r=De(e,ru),{cx:i,cy:a,innerRadius:o,outerRadius:l,cornerRadius:c,forceCornerRadius:u,cornerIsExternal:s,startAngle:f,endAngle:d,className:h}=r;if(l<o||f===d)return null;var y,v=n("recharts-sector",h),m=l-o,g=fe(c,m,0,!0);return y=g>0&&Math.abs(f-d)<360?(e=>{var{cx:t,cy:r,innerRadius:n,outerRadius:i,cornerRadius:a,forceCornerRadius:o,cornerIsExternal:l,startAngle:c,endAngle:u}=e,s=ie(u-c),{circleTangency:f,lineTangency:d,theta:p}=eu({cx:t,cy:r,radius:i,angle:c,sign:s,cornerRadius:a,cornerIsExternal:l}),{circleTangency:h,lineTangency:y,theta:v}=eu({cx:t,cy:r,radius:i,angle:u,sign:-s,cornerRadius:a,cornerIsExternal:l}),m=l?Math.abs(c-u):Math.abs(c-u)-p-v;if(m<0)return o?ne(Kc||(Kc=Qc(["M ",",","\n        a",",",",0,0,1,",",0\n        a",",",",0,0,1,",",0\n      "])),d.x,d.y,a,a,2*a,a,a,2*-a):tu({cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:c,endAngle:u});var g=ne(Bc||(Bc=Qc(["M ",",","\n    A",",",",0,0,",",",",","\n    A",",",",0,",",",",",",","\n    A",",",",0,0,",",",",","\n  "])),d.x,d.y,a,a,+(s<0),f.x,f.y,i,i,+(m>180),+(s<0),h.x,h.y,a,a,+(s<0),y.x,y.y);if(n>0){var{circleTangency:b,lineTangency:x,theta:w}=eu({cx:t,cy:r,radius:n,angle:c,sign:s,isExternal:!0,cornerRadius:a,cornerIsExternal:l}),{circleTangency:O,lineTangency:P,theta:E}=eu({cx:t,cy:r,radius:n,angle:u,sign:-s,isExternal:!0,cornerRadius:a,cornerIsExternal:l}),j=l?Math.abs(c-u):Math.abs(c-u)-w-E;if(j<0&&0===a)return"".concat(g,"L").concat(t,",").concat(r,"Z");g+=ne(Wc||(Wc=Qc(["L",",","\n      A",",",",0,0,",",",",","\n      A",",",",0,",",",",",",","\n      A",",",",0,0,",",",",","Z"])),P.x,P.y,a,a,+(s<0),O.x,O.y,n,n,+(j>180),+(s>0),b.x,b.y,a,a,+(s<0),x.x,x.y)}else g+=ne(Fc||(Fc=Qc(["L",",","Z"])),t,r);return g})({cx:i,cy:a,innerRadius:o,outerRadius:l,cornerRadius:Math.min(g,m/2),forceCornerRadius:u,cornerIsExternal:s,startAngle:f,endAngle:d}):tu({cx:i,cy:a,innerRadius:o,outerRadius:l,startAngle:f,endAngle:d}),t.createElement("path",Jc({},p(r),{className:v,d:y}))};function iu(e,t,r){if("horizontal"===e)return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if("vertical"===e)return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(Se(t)){if("centric"===e){var{cx:n,cy:i,innerRadius:a,outerRadius:o,angle:l}=t,c=Hc(n,i,a,l),u=Hc(n,i,o,l);return[{x:c.x,y:c.y},{x:u.x,y:u.y}]}return Zc(t)}}var au=a(3412),ou=a.n(au);function lu(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function cu(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}class uu extends Map{constructor(e,t=pu){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,r]of e)this.set(t,r)}get(e){return super.get(su(this,e))}has(e){return super.has(su(this,e))}set(e,t){return super.set(fu(this,e),t)}delete(e){return super.delete(du(this,e))}}Set;function su({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function fu({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function du({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function pu(e){return null!==e&&"object"==typeof e?e.valueOf():e}const hu=Symbol("implicit");function yu(){var e=new uu,t=[],r=[],n=hu;function i(i){let a=e.get(i);if(void 0===a){if(n!==hu)return n;e.set(i,a=t.push(i)-1)}return r[a%r.length]}return i.domain=function(r){if(!arguments.length)return t.slice();t=[],e=new uu;for(const n of r)e.has(n)||e.set(n,t.push(n)-1);return i},i.range=function(e){return arguments.length?(r=Array.from(e),i):r.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return yu(t,r).unknown(n)},lu.apply(i,arguments),i}function vu(){var e,t,r=yu().unknown(void 0),n=r.domain,i=r.range,a=0,o=1,l=!1,c=0,u=0,s=.5;function f(){var r=n().length,f=o<a,d=f?o:a,p=f?a:o;e=(p-d)/Math.max(1,r-c+2*u),l&&(e=Math.floor(e)),d+=(p-d-e*(r-c))*s,t=e*(1-c),l&&(d=Math.round(d),t=Math.round(t));var h=function(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((t-e)/r)),a=new Array(i);++n<i;)a[n]=e+n*r;return a}(r).map((function(t){return d+e*t}));return i(f?h.reverse():h)}return delete r.unknown,r.domain=function(e){return arguments.length?(n(e),f()):n()},r.range=function(e){return arguments.length?([a,o]=e,a=+a,o=+o,f()):[a,o]},r.rangeRound=function(e){return[a,o]=e,a=+a,o=+o,l=!0,f()},r.bandwidth=function(){return t},r.step=function(){return e},r.round=function(e){return arguments.length?(l=!!e,f()):l},r.padding=function(e){return arguments.length?(c=Math.min(1,u=+e),f()):c},r.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),f()):c},r.paddingOuter=function(e){return arguments.length?(u=+e,f()):u},r.align=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),f()):s},r.copy=function(){return vu(n(),[a,o]).round(l).paddingInner(c).paddingOuter(u).align(s)},lu.apply(f(),arguments)}function mu(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return mu(t())},e}function gu(){return mu(vu.apply(null,arguments).paddingInner(1))}const bu=Math.sqrt(50),xu=Math.sqrt(10),wu=Math.sqrt(2);function Ou(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=bu?10:a>=xu?5:a>=wu?2:1;let l,c,u;return i<0?(u=Math.pow(10,-i)/o,l=Math.round(e*u),c=Math.round(t*u),l/u<e&&++l,c/u>t&&--c,u=-u):(u=Math.pow(10,i)*o,l=Math.round(e/u),c=Math.round(t/u),l*u<e&&++l,c*u>t&&--c),c<l&&.5<=r&&r<2?Ou(e,t,2*r):[l,c,u]}function Pu(e,t,r){if(!((r=+r)>0))return[];if((e=+e)===(t=+t))return[e];const n=t<e,[i,a,o]=n?Ou(t,e,r):Ou(e,t,r);if(!(a>=i))return[];const l=a-i+1,c=new Array(l);if(n)if(o<0)for(let e=0;e<l;++e)c[e]=(a-e)/-o;else for(let e=0;e<l;++e)c[e]=(a-e)*o;else if(o<0)for(let e=0;e<l;++e)c[e]=(i+e)/-o;else for(let e=0;e<l;++e)c[e]=(i+e)*o;return c}function Eu(e,t,r){return Ou(e=+e,t=+t,r=+r)[2]}function ju(e,t,r){r=+r;const n=(t=+t)<(e=+e),i=n?Eu(t,e,r):Eu(e,t,r);return(n?-1:1)*(i<0?1/-i:i)}function Au(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Su(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ku(e){let t,r,n;function i(e,n,i=0,a=e.length){if(i<a){if(0!==t(n,n))return a;do{const t=i+a>>>1;r(e[t],n)<0?i=t+1:a=t}while(i<a)}return i}return 2!==e.length?(t=Au,r=(t,r)=>Au(e(t),r),n=(t,r)=>e(t)-r):(t=e===Au||e===Su?e:Iu,r=e,n=e),{left:i,center:function(e,t,r=0,a=e.length){const o=i(e,t,r,a-1);return o>r&&n(e[o-1],t)>-n(e[o],t)?o-1:o},right:function(e,n,i=0,a=e.length){if(i<a){if(0!==t(n,n))return a;do{const t=i+a>>>1;r(e[t],n)<=0?i=t+1:a=t}while(i<a)}return i}}}function Iu(){return 0}function Mu(e){return null===e?NaN:+e}const Tu=ku(Au),Du=Tu.right,Cu=(Tu.left,ku(Mu).center,Du);function Nu(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function _u(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function zu(){}var Ru=.7,Lu=1/Ru,Ku="\\s*([+-]?\\d+)\\s*",Bu="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Wu="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Fu=/^#([0-9a-f]{3,8})$/,Uu=new RegExp(`^rgb\\(${Ku},${Ku},${Ku}\\)$`),Vu=new RegExp(`^rgb\\(${Wu},${Wu},${Wu}\\)$`),Xu=new RegExp(`^rgba\\(${Ku},${Ku},${Ku},${Bu}\\)$`),Hu=new RegExp(`^rgba\\(${Wu},${Wu},${Wu},${Bu}\\)$`),$u=new RegExp(`^hsl\\(${Bu},${Wu},${Wu}\\)$`),qu=new RegExp(`^hsla\\(${Bu},${Wu},${Wu},${Bu}\\)$`),Yu={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Gu(){return this.rgb().formatHex()}function Zu(){return this.rgb().formatRgb()}function Ju(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=Fu.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?Qu(t):3===r?new rs(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?es(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?es(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Uu.exec(e))?new rs(t[1],t[2],t[3],1):(t=Vu.exec(e))?new rs(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Xu.exec(e))?es(t[1],t[2],t[3],t[4]):(t=Hu.exec(e))?es(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=$u.exec(e))?cs(t[1],t[2]/100,t[3]/100,1):(t=qu.exec(e))?cs(t[1],t[2]/100,t[3]/100,t[4]):Yu.hasOwnProperty(e)?Qu(Yu[e]):"transparent"===e?new rs(NaN,NaN,NaN,0):null}function Qu(e){return new rs(e>>16&255,e>>8&255,255&e,1)}function es(e,t,r,n){return n<=0&&(e=t=r=NaN),new rs(e,t,r,n)}function ts(e,t,r,n){return 1===arguments.length?function(e){return e instanceof zu||(e=Ju(e)),e?new rs((e=e.rgb()).r,e.g,e.b,e.opacity):new rs}(e):new rs(e,t,r,null==n?1:n)}function rs(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function ns(){return`#${ls(this.r)}${ls(this.g)}${ls(this.b)}`}function is(){const e=as(this.opacity);return`${1===e?"rgb(":"rgba("}${os(this.r)}, ${os(this.g)}, ${os(this.b)}${1===e?")":`, ${e})`}`}function as(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function os(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ls(e){return((e=os(e))<16?"0":"")+e.toString(16)}function cs(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new ss(e,t,r,n)}function us(e){if(e instanceof ss)return new ss(e.h,e.s,e.l,e.opacity);if(e instanceof zu||(e=Ju(e)),!e)return new ss;if(e instanceof ss)return e;var t=(e=e.rgb()).r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,l=a-i,c=(a+i)/2;return l?(o=t===a?(r-n)/l+6*(r<n):r===a?(n-t)/l+2:(t-r)/l+4,l/=c<.5?a+i:2-a-i,o*=60):l=c>0&&c<1?0:o,new ss(o,l,c,e.opacity)}function ss(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function fs(e){return(e=(e||0)%360)<0?e+360:e}function ds(e){return Math.max(0,Math.min(1,e||0))}function ps(e,t,r){return 255*(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)}function hs(e,t,r,n,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*r+(1+3*e+3*a-3*o)*n+o*i)/6}Nu(zu,Ju,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Gu,formatHex:Gu,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return us(this).formatHsl()},formatRgb:Zu,toString:Zu}),Nu(rs,ts,_u(zu,{brighter(e){return e=null==e?Lu:Math.pow(Lu,e),new rs(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Ru:Math.pow(Ru,e),new rs(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rs(os(this.r),os(this.g),os(this.b),as(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ns,formatHex:ns,formatHex8:function(){return`#${ls(this.r)}${ls(this.g)}${ls(this.b)}${ls(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:is,toString:is})),Nu(ss,(function(e,t,r,n){return 1===arguments.length?us(e):new ss(e,t,r,null==n?1:n)}),_u(zu,{brighter(e){return e=null==e?Lu:Math.pow(Lu,e),new ss(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Ru:Math.pow(Ru,e),new ss(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new rs(ps(e>=240?e-240:e+120,i,n),ps(e,i,n),ps(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new ss(fs(this.h),ds(this.s),ds(this.l),as(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=as(this.opacity);return`${1===e?"hsl(":"hsla("}${fs(this.h)}, ${100*ds(this.s)}%, ${100*ds(this.l)}%${1===e?")":`, ${e})`}`}}));const ys=e=>()=>e;function vs(e,t){return function(r){return e+r*t}}function ms(e){return 1==(e=+e)?gs:function(t,r){return r-t?function(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}(t,r,e):ys(isNaN(t)?r:t)}}function gs(e,t){var r=t-e;return r?vs(e,r):ys(isNaN(e)?t:e)}const bs=function e(t){var r=ms(t);function n(e,t){var n=r((e=ts(e)).r,(t=ts(t)).r),i=r(e.g,t.g),a=r(e.b,t.b),o=gs(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return n.gamma=e,n}(1);function xs(e){return function(t){var r,n,i=t.length,a=new Array(i),o=new Array(i),l=new Array(i);for(r=0;r<i;++r)n=ts(t[r]),a[r]=n.r||0,o[r]=n.g||0,l[r]=n.b||0;return a=e(a),o=e(o),l=e(l),n.opacity=1,function(e){return n.r=a(e),n.g=o(e),n.b=l(e),n+""}}}xs((function(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),i=e[n],a=e[n+1],o=n>0?e[n-1]:2*i-a,l=n<t-1?e[n+2]:2*a-i;return hs((r-n/t)*t,o,i,a,l)}})),xs((function(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),i=e[(n+t-1)%t],a=e[n%t],o=e[(n+1)%t],l=e[(n+2)%t];return hs((r-n/t)*t,i,a,o,l)}}));function ws(e,t){var r,n=t?t.length:0,i=e?Math.min(n,e.length):0,a=new Array(i),o=new Array(n);for(r=0;r<i;++r)a[r]=Is(e[r],t[r]);for(;r<n;++r)o[r]=t[r];return function(e){for(r=0;r<i;++r)o[r]=a[r](e);return o}}function Os(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}function Ps(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function Es(e,t){var r,n={},i={};for(r in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)r in e?n[r]=Is(e[r],t[r]):i[r]=t[r];return function(e){for(r in n)i[r]=n[r](e);return i}}var js=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,As=new RegExp(js.source,"g");function Ss(e,t){var r,n,i,a=js.lastIndex=As.lastIndex=0,o=-1,l=[],c=[];for(e+="",t+="";(r=js.exec(e))&&(n=As.exec(t));)(i=n.index)>a&&(i=t.slice(a,i),l[o]?l[o]+=i:l[++o]=i),(r=r[0])===(n=n[0])?l[o]?l[o]+=n:l[++o]=n:(l[++o]=null,c.push({i:o,x:Ps(r,n)})),a=As.lastIndex;return a<t.length&&(i=t.slice(a),l[o]?l[o]+=i:l[++o]=i),l.length<2?c[0]?function(e){return function(t){return e(t)+""}}(c[0].x):function(e){return function(){return e}}(t):(t=c.length,function(e){for(var r,n=0;n<t;++n)l[(r=c[n]).i]=r.x(e);return l.join("")})}function ks(e,t){t||(t=[]);var r,n=e?Math.min(t.length,e.length):0,i=t.slice();return function(a){for(r=0;r<n;++r)i[r]=e[r]*(1-a)+t[r]*a;return i}}function Is(e,t){var r,n=typeof t;return null==t||"boolean"===n?ys(t):("number"===n?Ps:"string"===n?(r=Ju(t))?(t=r,bs):Ss:t instanceof Ju?bs:t instanceof Date?Os:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}(t)?ks:Array.isArray(t)?ws:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?Es:Ps)(e,t)}function Ms(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}function Ts(e){return+e}var Ds=[0,1];function Cs(e){return e}function Ns(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function _s(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i<n?(n=Ns(i,n),a=r(o,a)):(n=Ns(n,i),a=r(a,o)),function(e){return a(n(e))}}function zs(e,t,r){var n=Math.min(e.length,t.length)-1,i=new Array(n),a=new Array(n),o=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<n;)i[o]=Ns(e[o],e[o+1]),a[o]=r(t[o],t[o+1]);return function(t){var r=Cu(e,t,1,n)-1;return a[r](i[r](t))}}function Rs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Ls(){var e,t,r,n,i,a,o=Ds,l=Ds,c=Is,u=Cs;function s(){var e=Math.min(o.length,l.length);return u!==Cs&&(u=function(e,t){var r;return e>t&&(r=e,e=t,t=r),function(r){return Math.max(e,Math.min(t,r))}}(o[0],o[e-1])),n=e>2?zs:_s,i=a=null,f}function f(t){return null==t||isNaN(t=+t)?r:(i||(i=n(o.map(e),l,c)))(e(u(t)))}return f.invert=function(r){return u(t((a||(a=n(l,o.map(e),Ps)))(r)))},f.domain=function(e){return arguments.length?(o=Array.from(e,Ts),s()):o.slice()},f.range=function(e){return arguments.length?(l=Array.from(e),s()):l.slice()},f.rangeRound=function(e){return l=Array.from(e),c=Ms,s()},f.clamp=function(e){return arguments.length?(u=!!e||Cs,s()):u!==Cs},f.interpolate=function(e){return arguments.length?(c=e,s()):c},f.unknown=function(e){return arguments.length?(r=e,f):r},function(r,n){return e=r,t=n,s()}}function Ks(){return Ls()(Cs,Cs)}var Bs,Ws=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fs(e){if(!(t=Ws.exec(e)))throw new Error("invalid format: "+e);var t;return new Us({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Us(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Vs(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Xs(e){return(e=Vs(Math.abs(e)))?e[1]:NaN}function Hs(e,t){var r=Vs(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}Fs.prototype=Us.prototype,Us.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const $s={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Hs(100*e,t),r:Hs,s:function(e,t){var r=Vs(e,t);if(!r)return e+"";var n=r[0],i=r[1],a=i-(Bs=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Vs(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function qs(e){return e}var Ys,Gs,Zs,Js=Array.prototype.map,Qs=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ef(e){var t,r,n=void 0===e.grouping||void 0===e.thousands?qs:(t=Js.call(e.grouping,Number),r=e.thousands+"",function(e,n){for(var i=e.length,a=[],o=0,l=t[0],c=0;i>0&&l>0&&(c+l+1>n&&(l=Math.max(1,n-c)),a.push(e.substring(i-=l,i+l)),!((c+=l+1)>n));)l=t[o=(o+1)%t.length];return a.reverse().join(r)}),i=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",l=void 0===e.numerals?qs:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(Js.call(e.numerals,String)),c=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",s=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=Fs(e)).fill,r=e.align,f=e.sign,d=e.symbol,p=e.zero,h=e.width,y=e.comma,v=e.precision,m=e.trim,g=e.type;"n"===g?(y=!0,g="g"):$s[g]||(void 0===v&&(v=12),m=!0,g="g"),(p||"0"===t&&"="===r)&&(p=!0,t="0",r="=");var b="$"===d?i:"#"===d&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",x="$"===d?a:/[%p]/.test(g)?c:"",w=$s[g],O=/[defgprs%]/.test(g);function P(e){var i,a,c,d=b,P=x;if("c"===g)P=w(e)+P,e="";else{var E=(e=+e)<0||1/e<0;if(e=isNaN(e)?s:w(Math.abs(e),v),m&&(e=function(e){e:for(var t,r=e.length,n=1,i=-1;n<r;++n)switch(e[n]){case".":i=t=n;break;case"0":0===i&&(i=n),t=n;break;default:if(!+e[n])break e;i>0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),E&&0==+e&&"+"!==f&&(E=!1),d=(E?"("===f?f:u:"-"===f||"("===f?"":f)+d,P=("s"===g?Qs[8+Bs/3]:"")+P+(E&&"("===f?")":""),O)for(i=-1,a=e.length;++i<a;)if(48>(c=e.charCodeAt(i))||c>57){P=(46===c?o+e.slice(i+1):e.slice(i))+P,e=e.slice(0,i);break}}y&&!p&&(e=n(e,1/0));var j=d.length+e.length+P.length,A=j<h?new Array(h-j+1).join(t):"";switch(y&&p&&(e=n(A+e,A.length?h-P.length:1/0),A=""),r){case"<":e=d+e+P+A;break;case"=":e=d+A+e+P;break;case"^":e=A.slice(0,j=A.length>>1)+d+e+P+A.slice(j);break;default:e=A+d+e+P}return l(e)}return v=void 0===v?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),P.toString=function(){return e+""},P}return{format:f,formatPrefix:function(e,t){var r=f(((e=Fs(e)).type="f",e)),n=3*Math.max(-8,Math.min(8,Math.floor(Xs(t)/3))),i=Math.pow(10,-n),a=Qs[8+n/3];return function(e){return r(i*e)+a}}}}function tf(e,t,r,n){var i,a=ju(e,t,r);switch((n=Fs(null==n?",f":n)).type){case"s":var o=Math.max(Math.abs(e),Math.abs(t));return null!=n.precision||isNaN(i=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Xs(t)/3)))-Xs(Math.abs(e)))}(a,o))||(n.precision=i),Zs(n,o);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Xs(t)-Xs(e))+1}(a,Math.max(Math.abs(e),Math.abs(t))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=function(e){return Math.max(0,-Xs(Math.abs(e)))}(a))||(n.precision=i-2*("%"===n.type))}return Gs(n)}function rf(e){var t=e.domain;return e.ticks=function(e){var r=t();return Pu(r[0],r[r.length-1],null==e?10:e)},e.tickFormat=function(e,r){var n=t();return tf(n[0],n[n.length-1],null==e?10:e,r)},e.nice=function(r){null==r&&(r=10);var n,i,a=t(),o=0,l=a.length-1,c=a[o],u=a[l],s=10;for(u<c&&(i=c,c=u,u=i,i=o,o=l,l=i);s-- >0;){if((i=Eu(c,u,r))===n)return a[o]=c,a[l]=u,t(a);if(i>0)c=Math.floor(c/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,u=Math.floor(u*i)/i}n=i}return e},e}function nf(){var e=Ks();return e.copy=function(){return Rs(e,nf())},lu.apply(e,arguments),rf(e)}function af(e){var t;function r(e){return null==e||isNaN(e=+e)?t:e}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(e=Array.from(t,Ts),r):e.slice()},r.unknown=function(e){return arguments.length?(t=e,r):t},r.copy=function(){return af(e).unknown(t)},e=arguments.length?Array.from(e,Ts):[0,1],rf(r)}function of(e,t){var r,n=0,i=(e=e.slice()).length-1,a=e[n],o=e[i];return o<a&&(r=n,n=i,i=r,r=a,a=o,o=r),e[n]=t.floor(a),e[i]=t.ceil(o),e}function lf(e){return Math.log(e)}function cf(e){return Math.exp(e)}function uf(e){return-Math.log(-e)}function sf(e){return-Math.exp(-e)}function ff(e){return isFinite(e)?+("1e"+e):e<0?0:e}function df(e){return(t,r)=>-e(-t,r)}function pf(e){const t=e(lf,cf),r=t.domain;let n,i,a=10;function o(){return n=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(a),i=function(e){return 10===e?ff:e===Math.E?Math.exp:t=>Math.pow(e,t)}(a),r()[0]<0?(n=df(n),i=df(i),e(uf,sf)):e(lf,cf),t}return t.base=function(e){return arguments.length?(a=+e,o()):a},t.domain=function(e){return arguments.length?(r(e),o()):r()},t.ticks=e=>{const t=r();let o=t[0],l=t[t.length-1];const c=l<o;c&&([o,l]=[l,o]);let u,s,f=n(o),d=n(l);const p=null==e?10:+e;let h=[];if(!(a%1)&&d-f<p){if(f=Math.floor(f),d=Math.ceil(d),o>0){for(;f<=d;++f)for(u=1;u<a;++u)if(s=f<0?u/i(-f):u*i(f),!(s<o)){if(s>l)break;h.push(s)}}else for(;f<=d;++f)for(u=a-1;u>=1;--u)if(s=f>0?u/i(-f):u*i(f),!(s<o)){if(s>l)break;h.push(s)}2*h.length<p&&(h=Pu(o,l,p))}else h=Pu(f,d,Math.min(d-f,p)).map(i);return c?h.reverse():h},t.tickFormat=(e,r)=>{if(null==e&&(e=10),null==r&&(r=10===a?"s":","),"function"!=typeof r&&(a%1||null!=(r=Fs(r)).precision||(r.trim=!0),r=Gs(r)),e===1/0)return r;const o=Math.max(1,a*e/t.ticks().length);return e=>{let t=e/i(Math.round(n(e)));return t*a<a-.5&&(t*=a),t<=o?r(e):""}},t.nice=()=>r(of(r(),{floor:e=>i(Math.floor(n(e))),ceil:e=>i(Math.ceil(n(e)))})),t}function hf(){const e=pf(Ls()).domain([1,10]);return e.copy=()=>Rs(e,hf()).base(e.base()),lu.apply(e,arguments),e}function yf(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function vf(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function mf(e){var t=1,r=e(yf(t),vf(t));return r.constant=function(r){return arguments.length?e(yf(t=+r),vf(t)):t},rf(r)}function gf(){var e=mf(Ls());return e.copy=function(){return Rs(e,gf()).constant(e.constant())},lu.apply(e,arguments)}function bf(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function xf(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function wf(e){return e<0?-e*e:e*e}function Of(e){var t=e(Cs,Cs),r=1;return t.exponent=function(t){return arguments.length?1===(r=+t)?e(Cs,Cs):.5===r?e(xf,wf):e(bf(r),bf(1/r)):r},rf(t)}function Pf(){var e=Of(Ls());return e.copy=function(){return Rs(e,Pf()).exponent(e.exponent())},lu.apply(e,arguments),e}function Ef(){return Pf.apply(null,arguments).exponent(.5)}function jf(e){return Math.sign(e)*e*e}function Af(){var e,t=Ks(),r=[0,1],n=!1;function i(r){var i=function(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}(t(r));return isNaN(i)?e:n?Math.round(i):i}return i.invert=function(e){return t.invert(jf(e))},i.domain=function(e){return arguments.length?(t.domain(e),i):t.domain()},i.range=function(e){return arguments.length?(t.range((r=Array.from(e,Ts)).map(jf)),i):r.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(e){return arguments.length?(t.clamp(e),i):t.clamp()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Af(t.domain(),r).round(n).clamp(t.clamp()).unknown(e)},lu.apply(i,arguments),rf(i)}function Sf(e,t){let r;if(void 0===t)for(const t of e)null!=t&&(r<t||void 0===r&&t>=t)&&(r=t);else{let n=-1;for(let i of e)null!=(i=t(i,++n,e))&&(r<i||void 0===r&&i>=i)&&(r=i)}return r}function kf(e,t){let r;if(void 0===t)for(const t of e)null!=t&&(r>t||void 0===r&&t>=t)&&(r=t);else{let n=-1;for(let i of e)null!=(i=t(i,++n,e))&&(r>i||void 0===r&&i>=i)&&(r=i)}return r}function If(e=Au){if(e===Au)return Mf;if("function"!=typeof e)throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||0===n?n:(0===e(r,r))-(0===e(t,t))}}function Mf(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function Tf(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=void 0===i?Mf:If(i);n>r;){if(n-r>600){const a=n-r+1,o=t-r+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(o-a/2<0?-1:1);Tf(e,t,Math.max(r,Math.floor(t-o*c/a+u)),Math.min(n,Math.floor(t+(a-o)*c/a+u)),i)}const a=e[t];let o=r,l=n;for(Df(e,r,t),i(e[n],a)>0&&Df(e,r,n);o<l;){for(Df(e,o,l),++o,--l;i(e[o],a)<0;)++o;for(;i(e[l],a)>0;)--l}0===i(e[r],a)?Df(e,r,l):(++l,Df(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Df(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function Cf(e,t,r){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let r=-1;for(let n of e)null!=(n=t(n,++r,e))&&(n=+n)>=n&&(yield n)}}(e,r)),(n=e.length)&&!isNaN(t=+t)){if(t<=0||n<2)return kf(e);if(t>=1)return Sf(e);var n,i=(n-1)*t,a=Math.floor(i),o=Sf(Tf(e,a).subarray(0,a+1));return o+(kf(e.subarray(a+1))-o)*(i-a)}}function Nf(e,t,r=Mu){if((n=e.length)&&!isNaN(t=+t)){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e);return o+(+r(e[a+1],a+1,e)-o)*(i-a)}}function _f(){var e,t=[],r=[],n=[];function i(){var e=0,i=Math.max(1,r.length);for(n=new Array(i-1);++e<i;)n[e-1]=Nf(t,e/i);return a}function a(t){return null==t||isNaN(t=+t)?e:r[Cu(n,t)]}return a.invertExtent=function(e){var i=r.indexOf(e);return i<0?[NaN,NaN]:[i>0?n[i-1]:t[0],i<n.length?n[i]:t[t.length-1]]},a.domain=function(e){if(!arguments.length)return t.slice();t=[];for(let r of e)null==r||isNaN(r=+r)||t.push(r);return t.sort(Au),i()},a.range=function(e){return arguments.length?(r=Array.from(e),i()):r.slice()},a.unknown=function(t){return arguments.length?(e=t,a):e},a.quantiles=function(){return n.slice()},a.copy=function(){return _f().domain(t).range(r).unknown(e)},lu.apply(a,arguments)}function zf(){var e,t=0,r=1,n=1,i=[.5],a=[0,1];function o(t){return null!=t&&t<=t?a[Cu(i,t,0,n)]:e}function l(){var e=-1;for(i=new Array(n);++e<n;)i[e]=((e+1)*r-(e-n)*t)/(n+1);return o}return o.domain=function(e){return arguments.length?([t,r]=e,t=+t,r=+r,l()):[t,r]},o.range=function(e){return arguments.length?(n=(a=Array.from(e)).length-1,l()):a.slice()},o.invertExtent=function(e){var o=a.indexOf(e);return o<0?[NaN,NaN]:o<1?[t,i[0]]:o>=n?[i[n-1],r]:[i[o-1],i[o]]},o.unknown=function(t){return arguments.length?(e=t,o):o},o.thresholds=function(){return i.slice()},o.copy=function(){return zf().domain([t,r]).range(a).unknown(e)},lu.apply(rf(o),arguments)}function Rf(){var e,t=[.5],r=[0,1],n=1;function i(i){return null!=i&&i<=i?r[Cu(t,i,0,n)]:e}return i.domain=function(e){return arguments.length?(t=Array.from(e),n=Math.min(t.length,r.length-1),i):t.slice()},i.range=function(e){return arguments.length?(r=Array.from(e),n=Math.min(t.length,r.length-1),i):r.slice()},i.invertExtent=function(e){var n=r.indexOf(e);return[t[n-1],t[n]]},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Rf().domain(t).range(r).unknown(e)},lu.apply(i,arguments)}Ys=ef({thousands:",",grouping:[3],currency:["$",""]}),Gs=Ys.format,Zs=Ys.formatPrefix;const Lf=1e3,Kf=6e4,Bf=36e5,Wf=864e5,Ff=6048e5,Uf=2592e6,Vf=31536e6,Xf=new Date,Hf=new Date;function $f(e,t,r,n){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=r=>(e(r=new Date(r-1)),t(r,1),e(r),r),i.round=e=>{const t=i(e),r=i.ceil(e);return e-t<r-e?t:r},i.offset=(e,r)=>(t(e=new Date(+e),null==r?1:Math.floor(r)),e),i.range=(r,n,a)=>{const o=[];if(r=i.ceil(r),a=null==a?1:Math.floor(a),!(r<n&&a>0))return o;let l;do{o.push(l=new Date(+r)),t(r,a),e(r)}while(l<r&&r<n);return o},i.filter=r=>$f((t=>{if(t>=t)for(;e(t),!r(t);)t.setTime(t-1)}),((e,n)=>{if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!r(e););else for(;--n>=0;)for(;t(e,1),!r(e););})),r&&(i.count=(t,n)=>(Xf.setTime(+t),Hf.setTime(+n),e(Xf),e(Hf),Math.floor(r(Xf,Hf))),i.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(n?t=>n(t)%e==0:t=>i.count(0,t)%e==0):i:null)),i}const qf=$f((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));qf.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?$f((t=>{t.setTime(Math.floor(t/e)*e)}),((t,r)=>{t.setTime(+t+r*e)}),((t,r)=>(r-t)/e)):qf:null);qf.range;const Yf=$f((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*Lf)}),((e,t)=>(t-e)/Lf),(e=>e.getUTCSeconds())),Gf=(Yf.range,$f((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Lf)}),((e,t)=>{e.setTime(+e+t*Kf)}),((e,t)=>(t-e)/Kf),(e=>e.getMinutes()))),Zf=(Gf.range,$f((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*Kf)}),((e,t)=>(t-e)/Kf),(e=>e.getUTCMinutes()))),Jf=(Zf.range,$f((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Lf-e.getMinutes()*Kf)}),((e,t)=>{e.setTime(+e+t*Bf)}),((e,t)=>(t-e)/Bf),(e=>e.getHours()))),Qf=(Jf.range,$f((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*Bf)}),((e,t)=>(t-e)/Bf),(e=>e.getUTCHours()))),ed=(Qf.range,$f((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Kf)/Wf),(e=>e.getDate()-1))),td=(ed.range,$f((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Wf),(e=>e.getUTCDate()-1))),rd=(td.range,$f((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Wf),(e=>Math.floor(e/Wf))));rd.range;function nd(e){return $f((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Kf)/Ff))}const id=nd(0),ad=nd(1),od=nd(2),ld=nd(3),cd=nd(4),ud=nd(5),sd=nd(6);id.range,ad.range,od.range,ld.range,cd.range,ud.range,sd.range;function fd(e){return $f((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/Ff))}const dd=fd(0),pd=fd(1),hd=fd(2),yd=fd(3),vd=fd(4),md=fd(5),gd=fd(6),bd=(dd.range,pd.range,hd.range,yd.range,vd.range,md.range,gd.range,$f((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()))),xd=(bd.range,$f((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),wd=(xd.range,$f((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));wd.every=e=>isFinite(e=Math.floor(e))&&e>0?$f((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,r)=>{t.setFullYear(t.getFullYear()+r*e)})):null;wd.range;const Od=$f((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));Od.every=e=>isFinite(e=Math.floor(e))&&e>0?$f((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)})):null;Od.range;function Pd(e,t,r,n,i,a){const o=[[Yf,1,Lf],[Yf,5,5e3],[Yf,15,15e3],[Yf,30,3e4],[a,1,Kf],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,Bf],[i,3,108e5],[i,6,216e5],[i,12,432e5],[n,1,Wf],[n,2,1728e5],[r,1,Ff],[t,1,Uf],[t,3,7776e6],[e,1,Vf]];function l(t,r,n){const i=Math.abs(r-t)/n,a=ku((([,,e])=>e)).right(o,i);if(a===o.length)return e.every(ju(t/Vf,r/Vf,n));if(0===a)return qf.every(Math.max(ju(t,r,n),1));const[l,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return l.every(c)}return[function(e,t,r){const n=t<e;n&&([e,t]=[t,e]);const i=r&&"function"==typeof r.range?r:l(e,t,r),a=i?i.range(e,+t+1):[];return n?a.reverse():a},l]}const[Ed,jd]=Pd(Od,xd,dd,rd,Qf,Zf),[Ad,Sd]=Pd(wd,bd,id,ed,Jf,Gf);function kd(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Id(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Md(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}var Td,Dd,Cd,Nd={"-":"",_:" ",0:"0"},_d=/^\s*\d+/,zd=/^%/,Rd=/[\\^$*+?|[\]().{}]/g;function Ld(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(t)+i:i)}function Kd(e){return e.replace(Rd,"\\$&")}function Bd(e){return new RegExp("^(?:"+e.map(Kd).join("|")+")","i")}function Wd(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function Fd(e,t,r){var n=_d.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Ud(e,t,r){var n=_d.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function Vd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Xd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Hd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function $d(e,t,r){var n=_d.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function qd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Yd(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function Gd(e,t,r){var n=_d.exec(t.slice(r,r+1));return n?(e.q=3*n[0]-3,r+n[0].length):-1}function Zd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Jd(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function Qd(e,t,r){var n=_d.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function ep(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function tp(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function rp(e,t,r){var n=_d.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function np(e,t,r){var n=_d.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function ip(e,t,r){var n=_d.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function ap(e,t,r){var n=zd.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function op(e,t,r){var n=_d.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function lp(e,t,r){var n=_d.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function cp(e,t){return Ld(e.getDate(),t,2)}function up(e,t){return Ld(e.getHours(),t,2)}function sp(e,t){return Ld(e.getHours()%12||12,t,2)}function fp(e,t){return Ld(1+ed.count(wd(e),e),t,3)}function dp(e,t){return Ld(e.getMilliseconds(),t,3)}function pp(e,t){return dp(e,t)+"000"}function hp(e,t){return Ld(e.getMonth()+1,t,2)}function yp(e,t){return Ld(e.getMinutes(),t,2)}function vp(e,t){return Ld(e.getSeconds(),t,2)}function mp(e){var t=e.getDay();return 0===t?7:t}function gp(e,t){return Ld(id.count(wd(e)-1,e),t,2)}function bp(e){var t=e.getDay();return t>=4||0===t?cd(e):cd.ceil(e)}function xp(e,t){return e=bp(e),Ld(cd.count(wd(e),e)+(4===wd(e).getDay()),t,2)}function wp(e){return e.getDay()}function Op(e,t){return Ld(ad.count(wd(e)-1,e),t,2)}function Pp(e,t){return Ld(e.getFullYear()%100,t,2)}function Ep(e,t){return Ld((e=bp(e)).getFullYear()%100,t,2)}function jp(e,t){return Ld(e.getFullYear()%1e4,t,4)}function Ap(e,t){var r=e.getDay();return Ld((e=r>=4||0===r?cd(e):cd.ceil(e)).getFullYear()%1e4,t,4)}function Sp(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ld(t/60|0,"0",2)+Ld(t%60,"0",2)}function kp(e,t){return Ld(e.getUTCDate(),t,2)}function Ip(e,t){return Ld(e.getUTCHours(),t,2)}function Mp(e,t){return Ld(e.getUTCHours()%12||12,t,2)}function Tp(e,t){return Ld(1+td.count(Od(e),e),t,3)}function Dp(e,t){return Ld(e.getUTCMilliseconds(),t,3)}function Cp(e,t){return Dp(e,t)+"000"}function Np(e,t){return Ld(e.getUTCMonth()+1,t,2)}function _p(e,t){return Ld(e.getUTCMinutes(),t,2)}function zp(e,t){return Ld(e.getUTCSeconds(),t,2)}function Rp(e){var t=e.getUTCDay();return 0===t?7:t}function Lp(e,t){return Ld(dd.count(Od(e)-1,e),t,2)}function Kp(e){var t=e.getUTCDay();return t>=4||0===t?vd(e):vd.ceil(e)}function Bp(e,t){return e=Kp(e),Ld(vd.count(Od(e),e)+(4===Od(e).getUTCDay()),t,2)}function Wp(e){return e.getUTCDay()}function Fp(e,t){return Ld(pd.count(Od(e)-1,e),t,2)}function Up(e,t){return Ld(e.getUTCFullYear()%100,t,2)}function Vp(e,t){return Ld((e=Kp(e)).getUTCFullYear()%100,t,2)}function Xp(e,t){return Ld(e.getUTCFullYear()%1e4,t,4)}function Hp(e,t){var r=e.getUTCDay();return Ld((e=r>=4||0===r?vd(e):vd.ceil(e)).getUTCFullYear()%1e4,t,4)}function $p(){return"+0000"}function qp(){return"%"}function Yp(e){return+e}function Gp(e){return Math.floor(+e/1e3)}function Zp(e){return new Date(e)}function Jp(e){return e instanceof Date?+e:+new Date(+e)}function Qp(e,t,r,n,i,a,o,l,c,u){var s=Ks(),f=s.invert,d=s.domain,p=u(".%L"),h=u(":%S"),y=u("%I:%M"),v=u("%I %p"),m=u("%a %d"),g=u("%b %d"),b=u("%B"),x=u("%Y");function w(e){return(c(e)<e?p:l(e)<e?h:o(e)<e?y:a(e)<e?v:n(e)<e?i(e)<e?m:g:r(e)<e?b:x)(e)}return s.invert=function(e){return new Date(f(e))},s.domain=function(e){return arguments.length?d(Array.from(e,Jp)):d().map(Zp)},s.ticks=function(t){var r=d();return e(r[0],r[r.length-1],null==t?10:t)},s.tickFormat=function(e,t){return null==t?w:u(t)},s.nice=function(e){var r=d();return e&&"function"==typeof e.range||(e=t(r[0],r[r.length-1],null==e?10:e)),e?d(of(r,e)):s},s.copy=function(){return Rs(s,Qp(e,t,r,n,i,a,o,l,c,u))},s}function eh(){return lu.apply(Qp(Ad,Sd,wd,bd,id,ed,Jf,Gf,Yf,Dd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function th(){return lu.apply(Qp(Ed,jd,Od,xd,dd,td,Qf,Zf,Yf,Cd).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function rh(){var e,t,r,n,i,a=0,o=1,l=Cs,c=!1;function u(t){return null==t||isNaN(t=+t)?i:l(0===r?.5:(t=(n(t)-e)*r,c?Math.max(0,Math.min(1,t)):t))}function s(e){return function(t){var r,n;return arguments.length?([r,n]=t,l=e(r,n),u):[l(0),l(1)]}}return u.domain=function(i){return arguments.length?([a,o]=i,e=n(a=+a),t=n(o=+o),r=e===t?0:1/(t-e),u):[a,o]},u.clamp=function(e){return arguments.length?(c=!!e,u):c},u.interpolator=function(e){return arguments.length?(l=e,u):l},u.range=s(Is),u.rangeRound=s(Ms),u.unknown=function(e){return arguments.length?(i=e,u):i},function(i){return n=i,e=i(a),t=i(o),r=e===t?0:1/(t-e),u}}function nh(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function ih(){var e=rf(rh()(Cs));return e.copy=function(){return nh(e,ih())},cu.apply(e,arguments)}function ah(){var e=pf(rh()).domain([1,10]);return e.copy=function(){return nh(e,ah()).base(e.base())},cu.apply(e,arguments)}function oh(){var e=mf(rh());return e.copy=function(){return nh(e,oh()).constant(e.constant())},cu.apply(e,arguments)}function lh(){var e=Of(rh());return e.copy=function(){return nh(e,lh()).exponent(e.exponent())},cu.apply(e,arguments)}function ch(){return lh.apply(null,arguments).exponent(.5)}function uh(){var e=[],t=Cs;function r(r){if(null!=r&&!isNaN(r=+r))return t((Cu(e,r,1)-1)/(e.length-1))}return r.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let r of t)null==r||isNaN(r=+r)||e.push(r);return e.sort(Au),r},r.interpolator=function(e){return arguments.length?(t=e,r):t},r.range=function(){return e.map(((r,n)=>t(n/(e.length-1))))},r.quantiles=function(t){return Array.from({length:t+1},((r,n)=>Cf(e,n/t)))},r.copy=function(){return uh(t).domain(e)},cu.apply(r,arguments)}function sh(){var e,t,r,n,i,a,o,l=0,c=.5,u=1,s=1,f=Cs,d=!1;function p(e){return isNaN(e=+e)?o:(e=.5+((e=+a(e))-t)*(s*e<s*t?n:i),f(d?Math.max(0,Math.min(1,e)):e))}function h(e){return function(t){var r,n,i;return arguments.length?([r,n,i]=t,f=function(e,t){void 0===t&&(t=e,e=Is);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r<n;)a[r]=e(i,i=t[++r]);return function(e){var t=Math.max(0,Math.min(n-1,Math.floor(e*=n)));return a[t](e-t)}}(e,[r,n,i]),p):[f(0),f(.5),f(1)]}}return p.domain=function(o){return arguments.length?([l,c,u]=o,e=a(l=+l),t=a(c=+c),r=a(u=+u),n=e===t?0:.5/(t-e),i=t===r?0:.5/(r-t),s=t<e?-1:1,p):[l,c,u]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(f=e,p):f},p.range=h(Is),p.rangeRound=h(Ms),p.unknown=function(e){return arguments.length?(o=e,p):o},function(o){return a=o,e=o(l),t=o(c),r=o(u),n=e===t?0:.5/(t-e),i=t===r?0:.5/(r-t),s=t<e?-1:1,p}}function fh(){var e=rf(sh()(Cs));return e.copy=function(){return nh(e,fh())},cu.apply(e,arguments)}function dh(){var e=pf(sh()).domain([.1,1,10]);return e.copy=function(){return nh(e,dh()).base(e.base())},cu.apply(e,arguments)}function ph(){var e=mf(sh());return e.copy=function(){return nh(e,ph()).constant(e.constant())},cu.apply(e,arguments)}function hh(){var e=Of(sh());return e.copy=function(){return nh(e,hh()).exponent(e.exponent())},cu.apply(e,arguments)}function yh(){return hh.apply(null,arguments).exponent(.5)}!function(e){Td=function(e){var t=e.dateTime,r=e.date,n=e.time,i=e.periods,a=e.days,o=e.shortDays,l=e.months,c=e.shortMonths,u=Bd(i),s=Wd(i),f=Bd(a),d=Wd(a),p=Bd(o),h=Wd(o),y=Bd(l),v=Wd(l),m=Bd(c),g=Wd(c),b={a:function(e){return o[e.getDay()]},A:function(e){return a[e.getDay()]},b:function(e){return c[e.getMonth()]},B:function(e){return l[e.getMonth()]},c:null,d:cp,e:cp,f:pp,g:Ep,G:Ap,H:up,I:sp,j:fp,L:dp,m:hp,M:yp,p:function(e){return i[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Yp,s:Gp,S:vp,u:mp,U:gp,V:xp,w:wp,W:Op,x:null,X:null,y:Pp,Y:jp,Z:Sp,"%":qp},x={a:function(e){return o[e.getUTCDay()]},A:function(e){return a[e.getUTCDay()]},b:function(e){return c[e.getUTCMonth()]},B:function(e){return l[e.getUTCMonth()]},c:null,d:kp,e:kp,f:Cp,g:Vp,G:Hp,H:Ip,I:Mp,j:Tp,L:Dp,m:Np,M:_p,p:function(e){return i[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Yp,s:Gp,S:zp,u:Rp,U:Lp,V:Bp,w:Wp,W:Fp,x:null,X:null,y:Up,Y:Xp,Z:$p,"%":qp},w={a:function(e,t,r){var n=p.exec(t.slice(r));return n?(e.w=h.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(e,t,r){var n=f.exec(t.slice(r));return n?(e.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(e,t,r){var n=m.exec(t.slice(r));return n?(e.m=g.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(e,t,r){var n=y.exec(t.slice(r));return n?(e.m=v.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(e,r,n){return E(e,t,r,n)},d:Jd,e:Jd,f:ip,g:qd,G:$d,H:ep,I:ep,j:Qd,L:np,m:Zd,M:tp,p:function(e,t,r){var n=u.exec(t.slice(r));return n?(e.p=s.get(n[0].toLowerCase()),r+n[0].length):-1},q:Gd,Q:op,s:lp,S:rp,u:Ud,U:Vd,V:Xd,w:Fd,W:Hd,x:function(e,t,n){return E(e,r,t,n)},X:function(e,t,r){return E(e,n,t,r)},y:qd,Y:$d,Z:Yd,"%":ap};function O(e,t){return function(r){var n,i,a,o=[],l=-1,c=0,u=e.length;for(r instanceof Date||(r=new Date(+r));++l<u;)37===e.charCodeAt(l)&&(o.push(e.slice(c,l)),null!=(i=Nd[n=e.charAt(++l)])?n=e.charAt(++l):i="e"===n?" ":"0",(a=t[n])&&(n=a(r,i)),o.push(n),c=l+1);return o.push(e.slice(c,l)),o.join("")}}function P(e,t){return function(r){var n,i,a=Md(1900,void 0,1);if(E(a,e,r+="",0)!=r.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(t&&!("Z"in a)&&(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(n=Id(Md(a.y,0,1))).getUTCDay(),n=i>4||0===i?pd.ceil(n):pd(n),n=td.offset(n,7*(a.V-1)),a.y=n.getUTCFullYear(),a.m=n.getUTCMonth(),a.d=n.getUTCDate()+(a.w+6)%7):(i=(n=kd(Md(a.y,0,1))).getDay(),n=i>4||0===i?ad.ceil(n):ad(n),n=ed.offset(n,7*(a.V-1)),a.y=n.getFullYear(),a.m=n.getMonth(),a.d=n.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?Id(Md(a.y,0,1)).getUTCDay():kd(Md(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Id(a)):kd(a)}}function E(e,t,r,n){for(var i,a,o=0,l=t.length,c=r.length;o<l;){if(n>=c)return-1;if(37===(i=t.charCodeAt(o++))){if(i=t.charAt(o++),!(a=w[i in Nd?t.charAt(o++):i])||(n=a(e,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return b.x=O(r,b),b.X=O(n,b),b.c=O(t,b),x.x=O(r,x),x.X=O(n,x),x.c=O(t,x),{format:function(e){var t=O(e+="",b);return t.toString=function(){return e},t},parse:function(e){var t=P(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=O(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=P(e+="",!0);return t.toString=function(){return e},t}}}(e),Dd=Td.format,Td.parse,Cd=Td.utcFormat,Td.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var vh=e=>e.chartData,mh=it([vh],(e=>{var t=null!=e.chartData?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}})),gh=(e,t,r,n)=>n?mh(e):vh(e),bh=(e,t,r)=>r?mh(e):vh(e);function xh(e){if(Array.isArray(e)&&2===e.length){var[t,r]=e;if(ri(t)&&ri(r))return!0}return!1}function wh(e,t,r){return r?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function Oh(e,t){if(t&&"function"!=typeof e&&Array.isArray(e)&&2===e.length){var r,n,[i,a]=e;if(ri(i))r=i;else if("function"==typeof i)return;if(ri(a))n=a;else if("function"==typeof a)return;var o=[r,n];if(xh(o))return o}}var Ph=a(8351),Eh=a.n(Ph);function jh(e){return 0===e?1:Math.floor(new(Eh())(e).abs().log(10).toNumber())+1}function Ah(e,t,r){for(var n=new(Eh())(e),i=0,a=[];n.lt(t)&&i<1e5;)a.push(n.toNumber()),n=n.add(r),i++;return a}var Sh=e=>{var[t,r]=e,[n,i]=[t,r];return t>r&&([n,i]=[r,t]),[n,i]},kh=(e,t,r)=>{if(e.lte(0))return new(Eh())(0);var n=jh(e.toNumber()),i=new(Eh())(10).pow(n),a=e.div(i),o=1!==n?.05:.1,l=new(Eh())(Math.ceil(a.div(o).toNumber())).add(r).mul(o).mul(i);return t?new(Eh())(l.toNumber()):new(Eh())(Math.ceil(l.toNumber()))},Ih=function(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new(Eh())(0),tickMin:new(Eh())(0),tickMax:new(Eh())(0)};var a,o=kh(new(Eh())(t).sub(e).div(r-1),n,i);a=e<=0&&t>=0?new(Eh())(0):(a=new(Eh())(e).add(t).div(2)).sub(new(Eh())(a).mod(o));var l=Math.ceil(a.sub(e).div(o).toNumber()),c=Math.ceil(new(Eh())(t).sub(a).div(o).toNumber()),u=l+c+1;return u>r?Ih(e,t,r,n,i+1):(u<r&&(c=t>0?c+(r-u):c,l=t>0?l:l+(r-u)),{step:o,tickMin:a.sub(new(Eh())(l).mul(o)),tickMax:a.add(new(Eh())(c).mul(o))})},Mh=function(e){var[t,r]=e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=Math.max(n,2),[o,l]=Sh([t,r]);if(o===-1/0||l===1/0){var c=l===1/0?[o,...Array(n-1).fill(1/0)]:[...Array(n-1).fill(-1/0),l];return t>r?c.reverse():c}if(o===l)return((e,t,r)=>{var n=new(Eh())(1),i=new(Eh())(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new(Eh())(10).pow(jh(e)-1),i=new(Eh())(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new(Eh())(Math.floor(e)))}else 0===e?i=new(Eh())(Math.floor((t-1)/2)):r||(i=new(Eh())(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],c=0;c<t;c++)l.push(i.add(new(Eh())(c-o).mul(n)).toNumber());return l})(o,n,i);var{step:u,tickMin:s,tickMax:f}=Ih(o,l,a,i,0),d=Ah(s,f.add(new(Eh())(.1).mul(u)),u);return t>r?d.reverse():d},Th=e=>e.rootProps.maxBarSize,Dh=e=>e.rootProps.barGap,Ch=e=>e.rootProps.barCategoryGap,Nh=e=>e.rootProps.barSize,_h=e=>e.rootProps.stackOffset,zh=e=>e.rootProps.reverseStackOrder,Rh=e=>e.options.chartName,Lh=e=>e.rootProps.syncId,Kh=e=>e.rootProps.syncMethod,Bh=e=>e.options.eventEmitter,Wh={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},Fh={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:Wh.axis},Uh={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:Wh.axis},Vh=(e,t)=>{if(e&&t)return null!=e&&e.reversed?[t[1],t[0]]:t};function Xh(e,t,r){return"auto"!==r?r:null!=e?ci(e,t)?"category":"number":void 0}function Hh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Hh(Object(r),!0).forEach((function(t){qh(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hh(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function qh(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Yh={allowDataOverflow:Fh.allowDataOverflow,allowDecimals:Fh.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:Fh.angleAxisId,includeHidden:!1,name:void 0,reversed:Fh.reversed,scale:Fh.scale,tick:Fh.tick,tickCount:void 0,ticks:void 0,type:Fh.type,unit:void 0},Gh={allowDataOverflow:Uh.allowDataOverflow,allowDecimals:Uh.allowDecimals,allowDuplicatedCategory:Uh.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Uh.radiusAxisId,includeHidden:Uh.includeHidden,name:void 0,reversed:Uh.reversed,scale:Uh.scale,tick:Uh.tick,tickCount:Uh.tickCount,ticks:void 0,type:Uh.type,unit:void 0},Zh=it([(e,t)=>{if(null!=t)return e.polarAxis.angleAxis[t]},ba],((e,t)=>{var r;if(null!=e)return e;var n=null!==(r=Xh(t,"angleAxis",Yh.type))&&void 0!==r?r:"category";return $h($h({},Yh),{},{type:n})})),Jh=it([(e,t)=>e.polarAxis.radiusAxis[t],ba],((e,t)=>{var r;if(null!=e)return e;var n=null!==(r=Xh(t,"radiusAxis",Gh.type))&&void 0!==r?r:"category";return $h($h({},Gh),{},{type:n})})),Qh=e=>e.polarOptions,ey=it([Ei,ji,zi],$c),ty=it([Qh,ey],((e,t)=>{if(null!=e)return fe(e.innerRadius,t,0)})),ry=it([Qh,ey],((e,t)=>{if(null!=e)return fe(e.outerRadius,t,.8*t)})),ny=it([Qh],(e=>{if(null==e)return[0,0];var{startAngle:t,endAngle:r}=e;return[t,r]})),iy=it([Zh,ny],Vh),ay=it([ey,ty,ry],((e,t,r)=>{if(null!=e&&null!=t&&null!=r)return[t,r]})),oy=it([Jh,ay],Vh),ly=it([va,Qh,ty,ry,Ei,ji],((e,t,r,n,i,a)=>{if(("centric"===e||"radial"===e)&&null!=t&&null!=r&&null!=n){var{cx:o,cy:l,startAngle:c,endAngle:u}=t;return{cx:fe(o,i,i/2),cy:fe(l,a,a/2),innerRadius:r,outerRadius:n,startAngle:c,endAngle:u,clockWise:!1}}})),cy=(e,t)=>t,uy=(e,t,r)=>r;function sy(e){return null==e?void 0:e.id}function fy(e,t,r){var{chartData:n=[]}=t,{allowDuplicatedCategory:i,dataKey:a}=r,o=new Map;return e.forEach((e=>{var t,r=null!==(t=e.data)&&void 0!==t?t:n;if(null!=r&&0!==r.length){var l=sy(e);r.forEach(((t,r)=>{var n,c=null==a||i?r:String(li(t,a,null)),u=li(t,e.dataKey,0);n=o.has(c)?o.get(c):{},Object.assign(n,{[l]:u}),o.set(c,n)}))}})),Array.from(o.values())}function dy(e){return"stackId"in e&&null!=e.stackId&&null!=e.dataKey}var py=(e,t)=>e===t||null!=e&&null!=t&&(e[0]===t[0]&&e[1]===t[1]);function hy(e,t){return!(!Array.isArray(e)||!Array.isArray(t)||0!==e.length||0!==t.length)||e===t}var yy=e=>{var t=va(e);return"horizontal"===t?"xAxis":"vertical"===t?"yAxis":"centric"===t?"angleAxis":"radiusAxis"},vy=e=>e.tooltip.settings.axisId;function my(e){var t=e.ticks,r=e.bandwidth,n=e.range(),i=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((()=>i)),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],r=i[1];return t<=r?e>=t&&e<=r:e>=r&&e<=t},bandwidth:r?()=>r.call(e):void 0,ticks:t?r=>t.call(e,r):void 0,map:(t,r)=>{var n=e(t);if(null!=n){if(e.bandwidth&&null!=r&&r.position){var i=e.bandwidth();switch(r.position){case"middle":n+=i/2;break;case"end":n+=i}}return n}}}}function gy(t,r,n){if("function"==typeof t)return my(t.copy().domain(r).range(n));if(null!=t){var i=function(t){if(t in e)return e[t]();var r="scale".concat(ve(t));return r in e?e[r]():void 0}(t);if(null!=i)return i.domain(r).range(n),my(i)}}var by=(e,t)=>{if(null!=t){if("linear"===e){if(!xh(t)){for(var r,n,i=0;i<t.length;i++){var a=t[i];ri(a)&&((void 0===r||a<r)&&(r=a),(void 0===n||a>n)&&(n=a))}return void 0!==r&&void 0!==n?[r,n]:void 0}return t}return t}};function xy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wy(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xy(Object(r),!0).forEach((function(t){Oy(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xy(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Oy(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Py=[0,"auto"],Ey={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0},jy=(e,t)=>e.cartesianAxis.xAxis[t],Ay=(e,t)=>{var r=jy(e,t);return null==r?Ey:r},Sy={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:Py,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,width:60},ky=(e,t)=>e.cartesianAxis.yAxis[t],Iy=(e,t)=>{var r=ky(e,t);return null==r?Sy:r},My={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},Ty=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return null==r?My:r},Dy=(e,t,r)=>{switch(t){case"xAxis":return Ay(e,r);case"yAxis":return Iy(e,r);case"zAxis":return Ty(e,r);case"angleAxis":return Zh(e,r);case"radiusAxis":return Jh(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Cy=(e,t,r)=>{switch(t){case"xAxis":return Ay(e,r);case"yAxis":return Iy(e,r);case"angleAxis":return Zh(e,r);case"radiusAxis":return Jh(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Ny=e=>e.graphicalItems.cartesianItems.some((e=>"bar"===e.type))||e.graphicalItems.polarItems.some((e=>"radialBar"===e.type));function _y(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var zy=e=>e.graphicalItems.cartesianItems,Ry=it([cy,uy],_y),Ly=(e,t,r)=>e.filter(r).filter((e=>!0===(null==t?void 0:t.includeHidden)||!e.hide)),Ky=it([zy,Dy,Ry],Ly,{memoizeOptions:{resultEqualityCheck:hy}}),By=it([Ky],(e=>e.filter((e=>"area"===e.type||"bar"===e.type)).filter(dy))),Wy=e=>e.filter((e=>!("stackId"in e)||void 0===e.stackId)),Fy=it([Ky],Wy),Uy=e=>e.map((e=>e.data)).filter(Boolean).flat(1),Vy=it([Ky],Uy,{memoizeOptions:{resultEqualityCheck:hy}}),Xy=(e,t)=>{var{chartData:r=[],dataStartIndex:n,dataEndIndex:i}=t;return e.length>0?e:r.slice(n,i+1)},Hy=it([Vy,gh],Xy),$y=(e,t,r)=>null!=(null==t?void 0:t.dataKey)?e.map((e=>({value:li(e,t.dataKey)}))):r.length>0?r.map((e=>e.dataKey)).flatMap((t=>e.map((e=>({value:li(e,t)}))))):e.map((e=>({value:e}))),qy=it([Hy,Dy,Ky],$y);function Yy(e,t){switch(e){case"xAxis":return"x"===t.direction;case"yAxis":return"y"===t.direction;default:return!1}}function Gy(e){if(ce(e)||e instanceof Date){var t=Number(e);if(ri(t))return t}}function Zy(e){if(Array.isArray(e)){var t=[Gy(e[0]),Gy(e[1])];return xh(t)?t:void 0}var r=Gy(e);if(null!=r)return[r,r]}function Jy(e){return e.map(Gy).filter(me)}var Qy=e=>{var t=yy(e),r=vy(e);return Cy(e,t,r)},ev=it([Qy],(e=>null==e?void 0:e.dataKey)),tv=it([By,gh,Qy],fy),rv=(e,t,r,n)=>{var i=t.reduce(((e,t)=>{if(null==t.stackId)return e;var r=e[t.stackId];return null==r&&(r=[]),r.push(t),e[t.stackId]=r,e}),{});return Object.fromEntries(Object.entries(i).map((t=>{var[i,a]=t,o=n?[...a].reverse():a,l=o.map(sy);return[i,{stackedData:pi(e,l,r),graphicalItems:o}]})))},nv=it([tv,By,_h,zh],rv),iv=(e,t,r,n)=>{var{dataStartIndex:i,dataEndIndex:a}=t;if(null==n&&"zAxis"!==r){var o=gi(e,i,a);if(null==o||0!==o[0]||0!==o[1])return o}},av=it([Dy],(e=>e.allowDataOverflow)),ov=e=>{var t;if(null==e||!("domain"in e))return Py;if(null!=e.domain)return e.domain;if("ticks"in e&&null!=e.ticks){if("number"===e.type){var r=Jy(e.ticks);return[Math.min(...r),Math.max(...r)]}if("category"===e.type)return e.ticks.map(String)}return null!==(t=null==e?void 0:e.domain)&&void 0!==t?t:Py},lv=it([Dy],ov),cv=it([lv,av],Oh),uv=it([nv,vh,cy,cv],iv,{memoizeOptions:{resultEqualityCheck:py}}),sv=e=>e.errorBars,fv=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t.filter(Boolean);if(0!==n.length){var i=n.flat();return[Math.min(...i),Math.max(...i)]}},dv=(e,t,r,n,i)=>{var a,o;if(r.length>0&&e.forEach((e=>{r.forEach((r=>{var l,c,u=null===(l=n[r.id])||void 0===l?void 0:l.filter((e=>Yy(i,e))),s=li(e,null!==(c=t.dataKey)&&void 0!==c?c:r.dataKey),f=function(e,t,r){return!r||"number"!=typeof t||ae(t)?[]:r.length?Jy(r.flatMap((r=>{var n,i,a=li(e,r.dataKey);if(Array.isArray(a)?[n,i]=a:n=i=a,ri(n)&&ri(i))return[t-n,t+i]}))):[]}(e,s,u);if(f.length>=2){var d=Math.min(...f),p=Math.max(...f);(null==a||d<a)&&(a=d),(null==o||p>o)&&(o=p)}var h=Zy(s);null!=h&&(a=null==a?h[0]:Math.min(a,h[0]),o=null==o?h[1]:Math.max(o,h[1]))}))})),null!=(null==t?void 0:t.dataKey)&&e.forEach((e=>{var r=Zy(li(e,t.dataKey));null!=r&&(a=null==a?r[0]:Math.min(a,r[0]),o=null==o?r[1]:Math.max(o,r[1]))})),ri(a)&&ri(o))return[a,o]},pv=it([Hy,Dy,Fy,sv,cy],dv,{memoizeOptions:{resultEqualityCheck:py}});function hv(e){var{value:t}=e;if(ce(t)||t instanceof Date)return t}var yv=e=>e.referenceElements.dots,vv=(e,t,r)=>e.filter((e=>"extendDomain"===e.ifOverflow)).filter((e=>"xAxis"===t?e.xAxisId===r:e.yAxisId===r)),mv=it([yv,cy,uy],vv),gv=e=>e.referenceElements.areas,bv=it([gv,cy,uy],vv),xv=e=>e.referenceElements.lines,wv=it([xv,cy,uy],vv),Ov=(e,t)=>{if(null!=e){var r=Jy(e.map((e=>"xAxis"===t?e.x:e.y)));if(0!==r.length)return[Math.min(...r),Math.max(...r)]}},Pv=it(mv,cy,Ov),Ev=(e,t)=>{if(null!=e){var r=Jy(e.flatMap((e=>["xAxis"===t?e.x1:e.y1,"xAxis"===t?e.x2:e.y2])));if(0!==r.length)return[Math.min(...r),Math.max(...r)]}},jv=it([bv,cy],Ev);var Av=(e,t)=>{if(null!=e){var r=e.flatMap((e=>"xAxis"===t?function(e){var t;if(null!=e.x)return Jy([e.x]);var r=null===(t=e.segment)||void 0===t?void 0:t.map((e=>e.x));return null==r||0===r.length?[]:Jy(r)}(e):function(e){var t;if(null!=e.y)return Jy([e.y]);var r=null===(t=e.segment)||void 0===t?void 0:t.map((e=>e.y));return null==r||0===r.length?[]:Jy(r)}(e)));if(0!==r.length)return[Math.min(...r),Math.max(...r)]}},Sv=it([wv,cy],Av),kv=it(Pv,Sv,jv,((e,t,r)=>fv(e,r,t))),Iv=(e,t,r,n,i,a,o,l)=>null!=r?r:function(e,t,r){if(r||null!=t){if("function"==typeof e&&null!=t)try{var n=e(t,r);if(xh(n))return wh(n,t,r)}catch(e){}if(Array.isArray(e)&&2===e.length){var i,a,[o,l]=e;if("auto"===o)null!=t&&(i=Math.min(...t));else if(le(o))i=o;else if("function"==typeof o)try{null!=t&&(i=o(null==t?void 0:t[0]))}catch(e){}else if("string"==typeof o&&bi.test(o)){var c=bi.exec(o);if(null==c||null==c[1]||null==t)i=void 0;else{var u=+c[1];i=t[0]-u}}else i=null==t?void 0:t[0];if("auto"===l)null!=t&&(a=Math.max(...t));else if(le(l))a=l;else if("function"==typeof l)try{null!=t&&(a=l(null==t?void 0:t[1]))}catch(e){}else if("string"==typeof l&&xi.test(l)){var s=xi.exec(l);if(null==s||null==s[1]||null==t)a=void 0;else{var f=+s[1];a=t[1]+f}}else a=null==t?void 0:t[1];var d=[i,a];if(xh(d))return null==t?d:wh(d,t,r)}}}(t,"vertical"===o&&"xAxis"===l||"horizontal"===o&&"yAxis"===l?fv(n,a,i):fv(a,i),e.allowDataOverflow),Mv=it([Dy,lv,cv,uv,pv,kv,va,cy],Iv,{memoizeOptions:{resultEqualityCheck:py}}),Tv=[0,1],Dv=(e,t,r,n,i,a,o)=>{if(null!=e&&null!=r&&0!==r.length||void 0!==o){var l,{dataKey:c,type:u}=e,s=ci(t,a);return s&&null==c?ou()(0,null!==(l=null==r?void 0:r.length)&&void 0!==l?l:0):"category"===u?((e,t,r)=>{var n=e.map(hv).filter((e=>null!=e));return r&&(null==t.dataKey||t.allowDuplicatedCategory&&de(n))?ou()(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))})(n,e,s):"expand"===i?Tv:o}},Cv=it([Dy,va,Hy,qy,_h,cy,Mv],Dv);var Nv=(t,r,n)=>{if(null!=t){var{scale:i,type:a}=t;if("auto"===i)return"category"===a&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?"point":"category"===a?"band":"linear";if("string"==typeof i){var o="scale".concat(ve(i));return function(t){return t in e}(o)?o:"point"}}},_v=it([Dy,Ny,Rh],Nv);function zv(e,t,r,n){if(null!=r&&null!=n)return"function"==typeof e.scale?gy(e.scale,r,n):gy(t,r,n)}var Rv=(e,t,r)=>{var n=ov(t);if("auto"===r||"linear"===r)return null!=t&&t.tickCount&&Array.isArray(n)&&("auto"===n[0]||"auto"===n[1])&&xh(e)?Mh(e,t.tickCount,t.allowDecimals):null!=t&&t.tickCount&&"number"===t.type&&xh(e)?function(e,t){var[r,n]=e,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],[a,o]=Sh([r,n]);if(a===-1/0||o===1/0)return[r,n];if(a===o)return[a];var l=Math.max(t,2),c=kh(new(Eh())(o).sub(a).div(l-1),i,0),u=[...Ah(new(Eh())(a),new(Eh())(o),c),o];return!1===i&&(u=u.map((e=>Math.round(e)))),r>n?u.reverse():u}(e,t.tickCount,t.allowDecimals):void 0},Lv=it([Cv,Cy,_v],Rv),Kv=(e,t,r,n)=>{if("angleAxis"!==n&&"number"===(null==e?void 0:e.type)&&xh(t)&&Array.isArray(r)&&r.length>0){var i,a,o=t[0],l=null!==(i=r[0])&&void 0!==i?i:0,c=t[1],u=null!==(a=r[r.length-1])&&void 0!==a?a:0;return[Math.min(o,l),Math.max(c,u)]}return t},Bv=it([Dy,Cv,Lv,cy],Kv),Wv=it(qy,Dy,((e,t)=>{if(t&&"number"===t.type){var r=1/0,n=Array.from(Jy(e.map((e=>e.value)))).sort(((e,t)=>e-t)),i=n[0],a=n[n.length-1];if(null==i||null==a)return 1/0;var o=a-i;if(0===o)return 1/0;for(var l=0;l<n.length-1;l++){var c=n[l],u=n[l+1];if(null!=c&&null!=u){var s=u-c;r=Math.min(r,s)}}return r/o}})),Fv=it(Wv,va,Ch,zi,((e,t,r,n,i)=>i),((e,t,r,n,i)=>{if(!ri(e))return 0;var a="vertical"===t?n.height:n.width;if("gap"===i)return e*a/2;if("no-gap"===i){var o=fe(r,e*a),l=e*a/2;return l-o-(l-o)/a*o}return 0})),Uv=it(Ay,((e,t,r)=>{var n=Ay(e,t);return null==n||"string"!=typeof n.padding?0:Fv(e,"xAxis",t,r,n.padding)}),((e,t)=>{var r,n;if(null==e)return{left:0,right:0};var{padding:i}=e;return"string"==typeof i?{left:t,right:t}:{left:(null!==(r=i.left)&&void 0!==r?r:0)+t,right:(null!==(n=i.right)&&void 0!==n?n:0)+t}})),Vv=it(Iy,((e,t,r)=>{var n=Iy(e,t);return null==n||"string"!=typeof n.padding?0:Fv(e,"yAxis",t,r,n.padding)}),((e,t)=>{var r,n;if(null==e)return{top:0,bottom:0};var{padding:i}=e;return"string"==typeof i?{top:t,bottom:t}:{top:(null!==(r=i.top)&&void 0!==r?r:0)+t,bottom:(null!==(n=i.bottom)&&void 0!==n?n:0)+t}})),Xv=it([zi,Uv,Ui,Fi,(e,t,r)=>r],((e,t,r,n,i)=>{var{padding:a}=n;return i?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]})),Hv=it([zi,va,Vv,Ui,Fi,(e,t,r)=>r],((e,t,r,n,i,a)=>{var{padding:o}=i;return a?[n.height-o.bottom,o.top]:"horizontal"===t?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]})),$v=(e,t,r,n)=>{var i;switch(t){case"xAxis":return Xv(e,r,n);case"yAxis":return Hv(e,r,n);case"zAxis":return null===(i=Ty(e,r))||void 0===i?void 0:i.range;case"angleAxis":return ny(e);case"radiusAxis":return ay(e,r);default:return}},qv=it([Dy,$v],Vh),Yv=it([_v,Bv],by),Gv=it([Dy,_v,Yv,qv],zv);it([Ky,sv,cy],((e,t,r)=>e.flatMap((e=>t[e.id])).filter(Boolean).filter((e=>Yy(r,e)))));function Zv(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var Jv=(e,t)=>t,Qv=(e,t,r)=>r,em=it(ki,Jv,Qv,((e,t,r)=>e.filter((e=>e.orientation===t)).filter((e=>e.mirror===r)).sort(Zv))),tm=it(Ii,Jv,Qv,((e,t,r)=>e.filter((e=>e.orientation===t)).filter((e=>e.mirror===r)).sort(Zv))),rm=(e,t)=>({width:e.width,height:t.height}),nm=it(zi,Ay,rm),im=it(ji,zi,em,Jv,Qv,((e,t,r,n,i)=>{var a,o={};return r.forEach((r=>{var l=rm(t,r);null==a&&(a=((e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}})(t,n,e));var c="top"===n&&!i||"bottom"===n&&i;o[r.id]=a-Number(c)*l.height,a+=(c?-1:1)*l.height})),o})),am=it(Ei,zi,tm,Jv,Qv,((e,t,r,n,i)=>{var a,o={};return r.forEach((r=>{var l=((e,t)=>({width:"number"==typeof t.width?t.width:60,height:e.height}))(t,r);null==a&&(a=((e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}})(t,n,e));var c="left"===n&&!i||"right"===n&&i;o[r.id]=a-Number(c)*l.width,a+=(c?-1:1)*l.width})),o})),om=it([zi,Ay,(e,t)=>{var r=Ay(e,t);if(null!=r)return im(e,r.orientation,r.mirror)},(e,t)=>t],((e,t,r,n)=>{if(null!=t){var i=null==r?void 0:r[n];return null==i?{x:e.left,y:0}:{x:e.left,y:i}}})),lm=it([zi,Iy,(e,t)=>{var r=Iy(e,t);if(null!=r)return am(e,r.orientation,r.mirror)},(e,t)=>t],((e,t,r,n)=>{if(null!=t){var i=null==r?void 0:r[n];return null==i?{x:0,y:e.top}:{x:i,y:e.top}}})),cm=it(zi,Iy,((e,t)=>({width:"number"==typeof t.width?t.width:60,height:e.height}))),um=(e,t,r)=>{switch(t){case"xAxis":return nm(e,r).width;case"yAxis":return cm(e,r).height;default:return}},sm=(e,t,r,n)=>{if(null!=r){var{allowDuplicatedCategory:i,type:a,dataKey:o}=r,l=ci(e,n),c=t.map((e=>e.value));return o&&l&&"category"===a&&i&&de(c)?c:void 0}},fm=it([va,qy,Dy,cy],sm),dm=(e,t,r,n)=>{if(null!=r&&null!=r.dataKey){var{type:i,scale:a}=r;return!ci(e,n)||"number"!==i&&"auto"===a?void 0:t.map((e=>e.value))}},pm=it([va,qy,Cy,cy],dm),hm=it([va,(e,t,r)=>{switch(t){case"xAxis":return Ay(e,r);case"yAxis":return Iy(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},_v,Gv,fm,pm,$v,Lv,cy],((e,t,r,n,i,a,o,l,c)=>{if(null!=t){var u=ci(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:u,niceTicks:l,range:o,realScaleType:r,scale:n}}})),ym=(e,t,r,n,i,a,o,l,c)=>{if(null!=t&&null!=n){var u=ci(e,c),{type:s,ticks:f,tickCount:d}=t,p="scaleBand"===r&&"function"==typeof n.bandwidth?n.bandwidth()/2:2,h="category"===s&&n.bandwidth?n.bandwidth()/p:0;h="angleAxis"===c&&null!=a&&a.length>=2?2*ie(a[0]-a[1])*h:h;var y=f||i;return y?y.map(((e,t)=>{var r=o?o.indexOf(e):e,i=n.map(r);return ri(i)?{index:t,coordinate:i+h,value:e,offset:h}:null})).filter(me):u&&l?l.map(((e,t)=>{var r=n.map(e);return ri(r)?{coordinate:r+h,value:e,index:t,offset:h}:null})).filter(me):n.ticks?n.ticks(d).map(((e,t)=>{var r=n.map(e);return ri(r)?{coordinate:r+h,value:e,index:t,offset:h}:null})).filter(me):n.domain().map(((e,t)=>{var r=n.map(e);return ri(r)?{coordinate:r+h,value:o?o[e]:e,index:t,offset:h}:null})).filter(me)}},vm=it([va,Cy,_v,Gv,Lv,$v,fm,pm,cy],ym),mm=(e,t,r,n,i,a,o)=>{if(null!=t&&null!=r&&null!=n&&n[0]!==n[1]){var l=ci(e,o),{tickCount:c}=t,u=0;return u="angleAxis"===o&&(null==n?void 0:n.length)>=2?2*ie(n[0]-n[1])*u:u,l&&a?a.map(((e,t)=>{var n=r.map(e);return ri(n)?{coordinate:n+u,value:e,index:t,offset:u}:null})).filter(me):r.ticks?r.ticks(c).map(((e,t)=>{var n=r.map(e);return ri(n)?{coordinate:n+u,value:e,index:t,offset:u}:null})).filter(me):r.domain().map(((e,t)=>{var n=r.map(e);return ri(n)?{coordinate:n+u,value:i?i[e]:e,index:t,offset:u}:null})).filter(me)}},gm=it([va,Cy,Gv,$v,fm,pm,cy],mm),bm=it(Dy,Gv,((e,t)=>{if(null!=e&&null!=t)return wy(wy({},e),{},{scale:t})})),xm=it([Dy,_v,Cv,qv],zv),wm=it(((e,t,r)=>Ty(e,r)),xm,((e,t)=>{if(null!=e&&null!=t)return wy(wy({},e),{},{scale:t})})),Om=it([va,ki,Ii],((e,t,r)=>{switch(e){case"horizontal":return t.some((e=>e.reversed))?"right-to-left":"left-to-right";case"vertical":return r.some((e=>e.reversed))?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}})),Pm=e=>e.options.defaultTooltipEventType,Em=e=>e.options.validateTooltipEventTypes;function jm(e,t,r){if(null==e)return t;var n=e?"axis":"item";return null==r?t:r.includes(n)?n:t}function Am(e,t){return jm(t,Pm(e),Em(e))}var Sm=(e,t)=>{var r,n=Number(t);if(!ae(n)&&null!=t)return n>=0?null==e||null===(r=e[n])||void 0===r?void 0:r.value:void 0},km={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Im=en({name:"tooltip",initialState:{itemInteraction:{click:km,hover:km},axisInteraction:{click:km,hover:km},keyboardInteraction:km,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:Bn()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:r,next:n}=t.payload,i=Xt(e).tooltipItemPayloads.indexOf(r);i>-1&&(e.tooltipItemPayloads[i]=n)},prepare:Bn()},removeTooltipEntrySettings:{reducer(e,t){var r=Xt(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Bn()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:Mm,replaceTooltipEntrySettings:Tm,removeTooltipEntrySettings:Dm,setTooltipSettingsState:Cm,setActiveMouseOverItemIndex:Nm,mouseLeaveItem:_m,mouseLeaveChart:zm,setActiveClickItemIndex:Rm,setMouseOverAxisIndex:Lm,setMouseClickAxisIndex:Km,setSyncInteraction:Bm,setKeyboardInteraction:Wm}=Im.actions,Fm=Im.reducer;function Um(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Vm(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Um(Object(r),!0).forEach((function(t){Xm(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Um(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Xm(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Hm=(e,t,r,n)=>{if(null==t)return km;var i=function(e,t,r){return"axis"===t?"click"===r?e.axisInteraction.click:e.axisInteraction.hover:"click"===r?e.itemInteraction.click:e.itemInteraction.hover}(e,t,r);if(null==i)return km;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&null!=e.syncInteraction.index)return e.syncInteraction;var a=!0===e.settings.active;if(null!=i.index){if(a)return Vm(Vm({},i),{},{active:!0})}else if(null!=n)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return Vm(Vm({},km),{},{coordinate:i.coordinate})};function $m(e,t){var r=function(e){if("number"==typeof e)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}(e),n=t[0],i=t[1];if(void 0===r)return!1;var a=Math.min(n,i),o=Math.max(n,i);return r>=a&&r<=o}var qm=(e,t,r,n)=>{var i=null==e?void 0:e.index;if(null==i)return null;var a=Number(i);if(!ri(a))return i;var o=1/0;t.length>0&&(o=t.length-1);var l=Math.max(0,Math.min(a,o)),c=t[l];return null==c||function(e,t,r){if(null==r||null==t)return!0;var n=li(e,t);return null==n||!xh(r)||$m(n,r)}(c,r,n)?String(l):null},Ym=(e,t,r,n,i,a,o)=>{if(null!=a){var l=o[0],c=null==l?void 0:l.getPosition(a);if(null!=c)return c;var u=null==i?void 0:i[Number(a)];if(u)return"horizontal"===r?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}},Gm=(e,t,r,n)=>{if("axis"===t)return e.tooltipItemPayloads;if(0===e.tooltipItemPayloads.length)return[];var i;if(null==(i="hover"===r?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId)&&null!=n){var a=e.tooltipItemPayloads[0];return null!=a?[a]:[]}return e.tooltipItemPayloads.filter((e=>{var t;return(null===(t=e.settings)||void 0===t?void 0:t.graphicalItemId)===i}))},Zm=e=>e.options.tooltipPayloadSearcher,Jm=e=>e.tooltip;function Qm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function eg(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Qm(Object(r),!0).forEach((function(t){tg(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qm(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function tg(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var rg=(e,t,r,n,i,a,o)=>{if(null!=t&&null!=a){var{chartData:l,computedData:c,dataStartIndex:u,dataEndIndex:s}=r;return e.reduce(((e,r)=>{var f,d,p,{dataDefinedOnItem:h,settings:y}=r,v=function(e,t){return null!=e?e:t}(h,l),m=Array.isArray(v)?ti(v,u,s):v,g=null!==(f=null==y?void 0:y.dataKey)&&void 0!==f?f:n,b=null==y?void 0:y.nameKey;(d=n&&Array.isArray(m)&&!Array.isArray(m[0])&&"axis"===o?he(m,n,i):a(m,t,c,b),Array.isArray(d))?d.forEach((t=>{var r=eg(eg({},y),{},{name:t.name,unit:t.unit,color:void 0,fill:void 0});e.push(Oi({tooltipEntrySettings:r,dataKey:t.dataKey,payload:t.payload,value:li(t.payload,t.dataKey),name:t.name}))})):e.push(Oi({tooltipEntrySettings:y,dataKey:g,payload:d,value:li(d,g),name:null!==(p=li(d,b))&&void 0!==p?p:null==y?void 0:y.name}));return e}),[])}},ng=it([Qy,Ny,Rh],Nv),ig=it([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],((e,t)=>[...e,...t])),ag=it([yy,vy],_y),og=it([ig,Qy,ag],Ly,{memoizeOptions:{resultEqualityCheck:hy}}),lg=it([og],(e=>e.filter(dy))),cg=it([og],Uy,{memoizeOptions:{resultEqualityCheck:hy}}),ug=it([cg,vh],Xy),sg=it([lg,vh,Qy],fy),fg=it([ug,Qy,og],$y),dg=it([Qy],ov),pg=it([Qy],(e=>e.allowDataOverflow)),hg=it([dg,pg],Oh),yg=it([og],(e=>e.filter(dy))),vg=it([sg,yg,_h,zh],rv),mg=it([vg,vh,yy,hg],iv),gg=it([og],Wy),bg=it([ug,Qy,gg,sv,yy],dv,{memoizeOptions:{resultEqualityCheck:py}}),xg=it([yv,yy,vy],vv),wg=it([xg,yy],Ov),Og=it([gv,yy,vy],vv),Pg=it([Og,yy],Ev),Eg=it([xv,yy,vy],vv),jg=it([Eg,yy],Av),Ag=it([wg,jg,Pg],fv),Sg=it([Qy,dg,hg,mg,bg,Ag,va,yy],Iv),kg=it([Qy,va,ug,fg,_h,yy,Sg],Dv),Ig=it([kg,Qy,ng],Rv),Mg=it([Qy,kg,Ig,yy],Kv),Tg=e=>{var t=yy(e),r=vy(e);return $v(e,t,r,!1)},Dg=it([Qy,Tg],Vh),Cg=it([Qy,ng,Mg,Dg],zv),Ng=it([va,fg,Qy,yy],sm),_g=it([va,fg,Qy,yy],dm),zg=it([va,Qy,ng,Cg,Tg,Ng,_g,yy],((e,t,r,n,i,a,o,l)=>{if(t){var{type:c}=t,u=ci(e,l);if(n){var s="scaleBand"===r&&n.bandwidth?n.bandwidth()/2:2,f="category"===c&&n.bandwidth?n.bandwidth()/s:0;return f="angleAxis"===l&&null!=i&&(null==i?void 0:i.length)>=2?2*ie(i[0]-i[1])*f:f,u&&o?o.map(((e,t)=>{var r=n.map(e);return ri(r)?{coordinate:r+f,value:e,index:t,offset:f}:null})).filter(me):n.domain().map(((e,t)=>{var r=n.map(e);return ri(r)?{coordinate:r+f,value:a?a[e]:e,index:t,offset:f}:null})).filter(me)}}})),Rg=it([Pm,Em,e=>e.tooltip.settings],((e,t,r)=>jm(r.shared,e,t))),Lg=e=>e.tooltip.settings.trigger,Kg=e=>e.tooltip.settings.defaultIndex,Bg=it([Jm,Rg,Lg,Kg],Hm),Wg=it([Bg,ug,ev,kg],qm),Fg=it([zg,Wg],Sm),Ug=it([Bg],(e=>{if(e)return e.dataKey})),Vg=it([Bg],(e=>{if(e)return e.graphicalItemId})),Xg=it([Jm,Rg,Lg,Kg],Gm),Hg=it([Ei,ji,va,zi,zg,Kg,Xg],Ym),$g=it([Bg,Hg],((e,t)=>null!=e&&e.coordinate?e.coordinate:t)),qg=it([Bg],(e=>{var t;return null!==(t=null==e?void 0:e.active)&&void 0!==t&&t})),Yg=it([Xg,Wg,vh,ev,Fg,Zm,Rg],rg),Gg=it([Yg],(e=>{if(null!=e){var t=e.map((e=>e.payload)).filter((e=>null!=e));return Array.from(new Set(t))}}));function Zg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Jg(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Zg(Object(r),!0).forEach((function(t){Qg(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zg(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Qg(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var eb=()=>{var e=Ze(Qy),t=Ze(zg),r=Ze(Cg);return wi(e&&r?Jg(Jg({},e),{},{scale:r}):void 0,t)};function tb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function rb(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?tb(Object(r),!0).forEach((function(t){nb(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tb(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function nb(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ib=(e,t,r,n,i)=>{var a,o=null!==(a=null==t?void 0:t.length)&&void 0!==a?a:0;if(o<=1||null==e)return 0;if("angleAxis"===n&&null!=i&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var l=0;l<o;l++){var c,u,s,f,d,p=l>0?null===(c=r[l-1])||void 0===c?void 0:c.coordinate:null===(u=r[o-1])||void 0===u?void 0:u.coordinate,h=null===(s=r[l])||void 0===s?void 0:s.coordinate,y=l>=o-1?null===(f=r[0])||void 0===f?void 0:f.coordinate:null===(d=r[l+1])||void 0===d?void 0:d.coordinate,v=void 0;if(null!=p&&null!=h&&null!=y)if(ie(h-p)!==ie(y-h)){var m=[];if(ie(y-h)===ie(i[1]-i[0])){v=y;var g=h+i[1]-i[0];m[0]=Math.min(g,(g+p)/2),m[1]=Math.max(g,(g+p)/2)}else{v=p;var b=y+i[1]-i[0];m[0]=Math.min(h,(b+h)/2),m[1]=Math.max(h,(b+h)/2)}var x,w=[Math.min(h,(v+h)/2),Math.max(h,(v+h)/2)];if(e>w[0]&&e<=w[1]||e>=m[0]&&e<=m[1])return null===(x=r[l])||void 0===x?void 0:x.index}else{var O,P=Math.min(p,y),E=Math.max(p,y);if(e>(P+h)/2&&e<=(E+h)/2)return null===(O=r[l])||void 0===O?void 0:O.index}}else if(t)for(var j=0;j<o;j++){var A=t[j];if(null!=A){var S=t[j+1],k=t[j-1];if(0===j&&null!=S&&e<=(A.coordinate+S.coordinate)/2)return A.index;if(j===o-1&&null!=k&&e>(A.coordinate+k.coordinate)/2)return A.index;if(j>0&&j<o-1&&null!=k&&null!=S&&e>(A.coordinate+k.coordinate)/2&&e<=(A.coordinate+S.coordinate)/2)return A.index}}return-1},ab=()=>Ze(Rh),ob=(e,t)=>t,lb=(e,t,r)=>r,cb=(e,t,r,n)=>n,ub=it(zg,(e=>lt()(e,(e=>e.coordinate)))),sb=it([Jm,ob,lb,cb],Hm),fb=it([sb,ug,ev,kg],qm),db=(e,t,r)=>{if(null!=t){var n=Jm(e);return"axis"===t?"hover"===r?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:"hover"===r?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},pb=it([Jm,ob,lb,cb],Gm),hb=it([Ei,ji,va,zi,zg,cb,pb],Ym),yb=it([sb,hb],((e,t)=>{var r;return null!==(r=e.coordinate)&&void 0!==r?r:t})),vb=it([zg,fb],Sm),mb=it([pb,fb,vh,ev,vb,Zm,ob],rg),gb=it([sb,fb],((e,t)=>({isActive:e.active&&null!=t,activeIndex:t}))),bb=(e,t,r,n,i,a,o)=>{if(e&&n&&i&&a&&r){var l=Gc(e,r);if(l){var c=((e,t)=>"centric"===t?e.angle:e.radius)(l,t),u=ib(c,o,a,n,i),s=((e,t,r,n)=>{var i=t.find((e=>e&&e.index===r));if(i){if("centric"===e){var a=i.coordinate,{radius:o}=n;return rb(rb(rb({},n),Hc(n.cx,n.cy,o,a)),{},{angle:a,radius:o})}var l=i.coordinate,{angle:c}=n;return rb(rb(rb({},n),Hc(n.cx,n.cy,l,c)),{},{angle:c,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}})(t,a,u,l);return{activeIndex:String(u),activeCoordinate:s}}}},xb=it((e=>e.zIndex.zIndexMap),((e,t)=>t),((e,t,r)=>r),((e,t,r)=>{if(null!=t){var n=e[t];if(null!=n)return r?n.panoramaElement:n.element}})),wb=it((e=>e.zIndex.zIndexMap),(e=>{var t=Object.keys(e).map((e=>parseInt(e,10))).concat(Object.values(Wh));return Array.from(new Set(t)).sort(((e,t)=>e-t))}),{memoizeOptions:{resultEqualityCheck:function(e,t){if(e.length===t.length){for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}return!1}}});function Ob(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pb(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ob(Object(r),!0).forEach((function(t){Eb(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ob(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Eb(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var jb={zIndexMap:Object.values(Wh).reduce(((e,t)=>Pb(Pb({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}})),{})},Ab=new Set(Object.values(Wh));var Sb=en({name:"zIndex",initialState:jb,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Bn()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!function(e){return Ab.has(e)}(r)&&delete e.zIndexMap[r])},prepare:Bn()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r,element:n,isPanorama:i}=t.payload;e.zIndexMap[r]?i?e.zIndexMap[r].panoramaElement=n:e.zIndexMap[r].element=n:e.zIndexMap[r]={consumers:0,element:i?void 0:n,panoramaElement:i?n:void 0}},prepare:Bn()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:r}=t.payload;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Bn()}}}),{registerZIndexPortal:kb,unregisterZIndexPortal:Ib,registerZIndexPortalElement:Mb,unregisterZIndexPortalElement:Tb}=Sb.actions,Db=Sb.reducer;function Cb(e){var{zIndex:r,children:n}=e,i=wa()&&void 0!==r&&0!==r,a=Bi(),o=$e();(0,t.useLayoutEffect)((()=>i?(o(kb({zIndex:r})),()=>{o(Ib({zIndex:r}))}):ge),[o,r,i]);var l=Ze((e=>xb(e,r,a)));return i?l?(0,x.createPortal)(n,l):null:n}function Nb(){return Nb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Nb.apply(null,arguments)}function _b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function zb(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_b(Object(r),!0).forEach((function(t){Rb(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Rb(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Lb(e){var{cursor:r,cursorComp:n,cursorProps:i}=e;return(0,t.isValidElement)(r)?(0,t.cloneElement)(r,i):(0,t.createElement)(n,i)}function Kb(e){var r,i,a,o,{coordinate:l,payload:c,index:u,offset:s,tooltipAxisBandSize:f,layout:p,cursor:h,tooltipEventType:y,chartName:v}=e,m=l,g=c,b=u;if(!h||!m||"ScatterChart"!==v&&"axis"!==y)return null;if("ScatterChart"===v)i=m,a=Nl,o=Wh.cursorLine;else if("BarChart"===v)i=function(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:"horizontal"===e?t.x-i:r.left+.5,y:"horizontal"===e?r.top+.5:t.y-i,width:"horizontal"===e?n:r.width-1,height:"horizontal"===e?r.height-1:n}}(p,m,s,f),a=Dc,o=Wh.cursorRectangle;else if("radial"===p&&Se(m)){var{cx:x,cy:w,radius:O,startAngle:P,endAngle:E}=Zc(m);i={cx:x,cy:w,startAngle:P,endAngle:E,innerRadius:O,outerRadius:O},a=nu,o=Wh.cursorLine}else i={points:iu(p,m,s)},a=kl,o=Wh.cursorLine;var j="object"==typeof h&&"className"in h?h.className:void 0,A=zb(zb(zb(zb({stroke:"#ccc",pointerEvents:"none"},s),i),d(h)),{},{payload:g,payloadIndex:b,className:n("recharts-tooltip-cursor",j)});return t.createElement(Cb,{zIndex:null!==(r=e.zIndex)&&void 0!==r?r:o},t.createElement(Lb,{cursor:h,cursorComp:a,cursorProps:A}))}function Bb(e){var r=eb(),n=da(),i=ma(),a=ab();return null==r||null==n||null==i||null==a?null:t.createElement(Kb,Nb({},e,{offset:n,layout:i,tooltipAxisBandSize:r,chartName:a}))}var Wb=(0,t.createContext)(null),Fb=()=>(0,t.useContext)(Wb);var Ub=new(a(228)),Vb="recharts.syncEvent.tooltip",Xb="recharts.syncEvent.brush",Hb=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!ae(r))return e[r]}},$b=en({name:"options",initialState:{chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},reducers:{createEventEmitter:e=>{null==e.eventEmitter&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),qb=$b.reducer,{createEventEmitter:Yb}=$b.actions;function Gb(e){return e.tooltip.syncInteraction}var Zb=en({name:"chartData",initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=t.payload,null==t.payload)return e.dataStartIndex=0,void(e.dataEndIndex=0);t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:r,endIndex:n}=t.payload;null!=r&&(e.dataStartIndex=r),null!=n&&(e.dataEndIndex=n)}}}),{setChartData:Jb,setDataStartEndIndexes:Qb,setComputedData:ex}=Zb.actions,tx=Zb.reducer,rx=["x","y"];function nx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ix(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?nx(Object(r),!0).forEach((function(t){ax(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):nx(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ax(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ox(){var e=Ze(Lh),r=Ze(Bh),n=$e(),i=Ze(Kh),a=Ze(zg),o=ma(),l=sa(),c=Ze((e=>e.rootProps.className));(0,t.useEffect)((()=>{if(null==e)return ge;var t=(t,c,u)=>{var s;if(r!==u&&e===t)if("index"!==i){if(null!=a){var f;if("function"==typeof i){var d={activeTooltipIndex:null==c.payload.index?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:null==c.payload.index?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},p=i(a,d);f=a[p]}else"value"===i&&(f=a.find((e=>String(e.value)===c.payload.label)));var{coordinate:h}=c.payload;if(null!=f&&!1!==c.payload.active&&null!=h&&null!=l){var{x:y,y:v}=h,m=Math.min(y,l.x+l.width),g=Math.min(v,l.y+l.height),b={x:"horizontal"===o?f.coordinate:m,y:"horizontal"===o?g:f.coordinate},x=Bm({active:c.payload.active,coordinate:b,dataKey:c.payload.dataKey,index:String(f.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});n(x)}else n(Bm({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}))}}else if(l&&null!=c&&null!==(s=c.payload)&&void 0!==s&&s.coordinate&&c.payload.sourceViewBox){var w=c.payload.coordinate,{x:O,y:P}=w,E=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(w,rx),{x:j,y:A,width:S,height:k}=c.payload.sourceViewBox,I=ix(ix({},E),{},{x:l.x+(S?(O-j)/S:0)*l.width,y:l.y+(k?(P-A)/k:0)*l.height});n(ix(ix({},c),{},{payload:ix(ix({},c.payload),{},{coordinate:I})}))}else n(c)};return Ub.on(Vb,t),()=>{Ub.off(Vb,t)}}),[c,n,r,e,i,a,o,l])}function lx(){var e=$e();(0,t.useEffect)((()=>{e(Yb())}),[e]),ox(),function(){var e=Ze(Lh),r=Ze(Bh),n=$e();(0,t.useEffect)((()=>{if(null==e)return ge;var t=(t,i,a)=>{r!==a&&e===t&&n(Qb(i))};return Ub.on(Xb,t),()=>{Ub.off(Xb,t)}}),[n,r,e])}()}function cx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ux(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?cx(Object(r),!0).forEach((function(t){sx(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cx(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function sx(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fx(e){return e.dataKey}var dx=[],px={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function hx(e){var r,n,i=De(e,px),{active:a,allowEscapeViewBox:o,animationDuration:l,animationEasing:c,content:u,filterNull:s,isAnimationActive:f,offset:d,payloadUniqBy:p,position:h,reverseDirection:y,useTranslate3d:v,wrapperStyle:m,cursor:g,shared:b,trigger:w,defaultIndex:O,portal:P,axisId:E}=i,j=$e(),A="number"==typeof O?String(O):O;(0,t.useEffect)((()=>{j(Cm({shared:b,trigger:w,axisId:E,active:a,defaultIndex:A}))}),[j,b,w,E,a,A]);var S=sa(),k=$o(),I=function(e){return Ze((t=>Am(t,e)))}(b),{activeIndex:M,isActive:T}=null!==(r=Ze((e=>gb(e,I,w,A))))&&void 0!==r?r:{},D=Ze((e=>mb(e,I,w,A))),C=Ze((e=>vb(e,I,w,A))),N=Ze((e=>yb(e,I,w,A))),_=D,z=Fb(),R=null!==(n=null!=a?a:T)&&void 0!==n&&n,[L,K]=ft([_,R]),B="axis"===I?C:void 0;!function(e,r,n,i,a,o){var l=Ze((t=>db(t,e,r))),c=Ze(Bh),u=Ze(Lh),s=Ze(Kh),f=Ze(Gb),d=null==f?void 0:f.active,p=sa();(0,t.useEffect)((()=>{if(!d&&null!=u&&null!=c){var e=Bm({active:o,coordinate:n,dataKey:l,index:a,label:"number"==typeof i?String(i):i,sourceViewBox:p,graphicalItemId:void 0});Ub.emit(Vb,u,e,c)}}),[d,n,l,a,i,c,u,s,o,p])}(I,w,N,B,M,R);var W=null!=P?P:z;if(null==W||null==S||null==I)return null;var F=null!=_?_:dx;R||(F=dx),s&&F.length&&(F=Ue(F.filter((e=>null!=e.value&&(!0!==e.hide||i.includeHidden))),p,fx));var U=F.length>0,V=t.createElement(Ho,{allowEscapeViewBox:o,animationDuration:l,animationEasing:c,isAnimationActive:f,active:R,coordinate:N,hasPayload:U,offset:d,position:h,reverseDirection:y,useTranslate3d:v,viewBox:S,wrapperStyle:m,lastBoundingBox:L,innerRef:K,hasPortalFromProps:Boolean(P)},function(e,r){return t.isValidElement(e)?t.cloneElement(e,r):"function"==typeof e?t.createElement(e,r):t.createElement(Lo,r)}(u,ux(ux({},i),{},{payload:F,label:B,active:R,activeIndex:M,coordinate:N,accessibilityLayer:k})));return t.createElement(t.Fragment,null,(0,x.createPortal)(V,W),R&&t.createElement(Bb,{cursor:g,tooltipEventType:I,coordinate:N,payload:F,index:M}))}var yx=e=>null;function vx(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}yx.displayName="Cell";function mx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function gx(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mx(Object(r),!0).forEach((function(t){bx(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mx(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function bx(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var xx=gx({},{cacheSize:2e3,enableCache:!0}),wx=new class{constructor(e){vx(this,"cache",new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return void 0!==t&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var r=this.cache.keys().next().value;null!=r&&this.cache.delete(r)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}}(xx.cacheSize),Ox={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},Px="recharts_measurement_span";var Ex=(e,t)=>{try{var r=document.getElementById(Px);r||((r=document.createElement("span")).setAttribute("id",Px),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Ox,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch(e){return{width:0,height:0}}},jx=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==e||oc.isSsr)return{width:0,height:0};if(!xx.enableCache)return Ex(e,t);var r=function(e,t){var r=t.fontSize||"",n=t.fontFamily||"",i=t.fontWeight||"",a=t.fontStyle||"",o=t.letterSpacing||"",l=t.textTransform||"";return"".concat(e,"|").concat(r,"|").concat(n,"|").concat(i,"|").concat(a,"|").concat(o,"|").concat(l)}(e,t),n=wx.get(r);if(n)return n;var i=Ex(e,t);return wx.set(r,i),i};var Ax=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,Sx=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,kx=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,Ix=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,Mx={cm:96/2.54,mm:96/25.4,pt:96/72,pc:16,in:96,Q:96/101.6,px:1},Tx=["cm","mm","pt","pc","in","Q","px"];var Dx="NaN";class Cx{static parse(e){var t,[,r,n]=null!==(t=Ix.exec(e))&&void 0!==t?t:[];return null==r?Cx.NaN:new Cx(parseFloat(r),null!=n?n:"")}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,ae(e)&&(this.unit=""),""===t||kx.test(t)||(this.num=NaN,this.unit=""),function(e){return Tx.includes(e)}(t)&&(this.num=function(e,t){return e*Mx[t]}(e,t),this.unit="px")}add(e){return this.unit!==e.unit?new Cx(NaN,""):new Cx(this.num+e.num,this.unit)}subtract(e){return this.unit!==e.unit?new Cx(NaN,""):new Cx(this.num-e.num,this.unit)}multiply(e){return""!==this.unit&&""!==e.unit&&this.unit!==e.unit?new Cx(NaN,""):new Cx(this.num*e.num,this.unit||e.unit)}divide(e){return""!==this.unit&&""!==e.unit&&this.unit!==e.unit?new Cx(NaN,""):new Cx(this.num/e.num,this.unit||e.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return ae(this.num)}}function Nx(e){if(null==e||e.includes(Dx))return Dx;for(var t=e;t.includes("*")||t.includes("/");){var r,[,n,i,a]=null!==(r=Ax.exec(t))&&void 0!==r?r:[],o=Cx.parse(null!=n?n:""),l=Cx.parse(null!=a?a:""),c="*"===i?o.multiply(l):o.divide(l);if(c.isNaN())return Dx;t=t.replace(Ax,c.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var u,[,s,f,d]=null!==(u=Sx.exec(t))&&void 0!==u?u:[],p=Cx.parse(null!=s?s:""),h=Cx.parse(null!=d?d:""),y="+"===f?p.add(h):p.subtract(h);if(y.isNaN())return Dx;t=t.replace(Sx,y.toString())}return t}!function(e,t,r){(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(Cx,"NaN",new Cx(NaN,""));var _x=/\(([^()]*)\)/;function zx(e){var t=e.replace(/\s+/g,"");return t=function(e){for(var t,r=e;null!=(t=_x.exec(r));){var[,n]=t;r=r.replace(_x,Nx(n))}return r}(t),t=Nx(t)}function Rx(e){var t=function(e){try{return zx(e)}catch(e){return Dx}}(e.slice(5,-1));return t===Dx?"":t}var Lx=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],Kx=["dx","dy","angle","className","breakAll"];function Bx(){return Bx=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Bx.apply(null,arguments)}function Wx(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var Fx=/[ \f\n\r\t\v\u2028\u2029]+/,Ux=e=>{var{children:t,breakAll:r,style:n}=e;try{var i=[];return ye(t)||(i=r?t.toString().split(""):t.toString().split(Fx)),{wordsWithComputedWidth:i.map((e=>({word:e,width:jx(e,n).width}))),spaceWidth:r?0:jx(" ",n).width}}catch(e){return null}};function Vx(e){return"start"===e||"middle"===e||"end"===e||"inherit"===e}var Xx=(e,t,r,n)=>e.reduce(((e,i)=>{var{word:a,width:o}=i,l=e[e.length-1];if(l&&null!=o&&(null==t||n||l.width+o+r<Number(t)))l.words.push(a),l.width+=o+r;else{var c={words:[a],width:o};e.push(c)}return e}),[]),Hx=e=>e.reduce(((e,t)=>e.width>t.width?e:t)),$x=(e,t,r,n,i,a,o,l)=>{var c=e.slice(0,t),u=Ux({breakAll:r,style:n,children:c+"…"});if(!u)return[!1,[]];var s=Xx(u.wordsWithComputedWidth,a,o,l);return[s.length>i||Hx(s).width>Number(a),s]},qx=e=>[{words:ye(e)?[]:e.toString().split(Fx),width:void 0}],Yx=e=>{var{width:t,scaleToFit:r,children:n,style:i,breakAll:a,maxLines:o}=e;if((t||r)&&!oc.isSsr){var l=Ux({breakAll:a,children:n,style:i});if(!l)return qx(n);var{wordsWithComputedWidth:c,spaceWidth:u}=l;return((e,t,r,n,i)=>{var{maxLines:a,children:o,style:l,breakAll:c}=e,u=le(a),s=String(o),f=Xx(t,n,r,i);if(!u||i)return f;if(!(f.length>a||Hx(f).width>Number(n)))return f;for(var d,p=0,h=s.length-1,y=0;p<=h&&y<=s.length-1;){var v=Math.floor((p+h)/2),m=v-1,[g,b]=$x(s,m,c,l,a,n,r,i),[x]=$x(s,v,c,l,a,n,r,i);if(g||x||(p=v+1),g&&x&&(h=v-1),!g&&x){d=b;break}y++}return d||f})({breakAll:a,children:n,maxLines:o,style:i},c,u,t,Boolean(r))}return qx(n)},Gx="#808080",Zx={angle:0,breakAll:!1,capHeight:"0.71em",fill:Gx,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Jx=(0,t.forwardRef)(((e,r)=>{var i=De(e,Zx),{x:a,y:o,lineHeight:l,capHeight:c,fill:u,scaleToFit:s,textAnchor:f,verticalAnchor:d}=i,h=Wx(i,Lx),y=(0,t.useMemo)((()=>Yx({breakAll:h.breakAll,children:h.children,maxLines:h.maxLines,scaleToFit:s,style:h.style,width:h.width})),[h.breakAll,h.children,h.maxLines,s,h.style,h.width]),{dx:v,dy:m,angle:g,className:b,breakAll:x}=h,w=Wx(h,Kx);if(!ce(a)||!ce(o)||0===y.length)return null;var O,P=Number(a)+(le(v)?v:0),E=Number(o)+(le(m)?m:0);if(!ri(P)||!ri(E))return null;switch(d){case"start":O=Rx("calc(".concat(c,")"));break;case"middle":O=Rx("calc(".concat((y.length-1)/2," * -").concat(l," + (").concat(c," / 2))"));break;default:O=Rx("calc(".concat(y.length-1," * -").concat(l,")"))}var j=[],A=y[0];if(s&&null!=A){var S=A.width,{width:k}=h;j.push("scale(".concat(le(k)&&le(S)?k/S:1,")"))}return g&&j.push("rotate(".concat(g,", ").concat(P,", ").concat(E,")")),j.length&&(w.transform=j.join(" ")),t.createElement("text",Bx({},p(w),{ref:r,x:P,y:E,className:n("recharts-text",b),textAnchor:f,fill:u.includes("url")?Gx:u}),y.map(((e,r)=>{var n=e.words.join(x?"":" ");return t.createElement("tspan",{x:P,dy:0===r?O:l,key:"".concat(n,"-").concat(r)},n)})))}));function Qx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ew(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Qx(Object(r),!0).forEach((function(t){tw(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qx(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function tw(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}Jx.displayName="Text";var rw=e=>{var{viewBox:t,position:r,offset:n=0,parentViewBox:i,clamp:a}=e,{x:o,y:l,height:c,upperWidth:u,lowerWidth:s}=ua(t),f=o,d=o+(u-s)/2,p=(f+d)/2,h=(u+s)/2,y=f+u/2,v=c>=0?1:-1,m=v*n,g=v>0?"end":"start",b=v>0?"start":"end",x=u>=0?1:-1,w=x*n,O=x>0?"end":"start",P=x>0?"start":"end",E=i;if("top"===r){var j={x:f+u/2,y:l-m,horizontalAnchor:"middle",verticalAnchor:g};return a&&E&&(j.height=Math.max(l-E.y,0),j.width=u),j}if("bottom"===r){var A={x:d+s/2,y:l+c+m,horizontalAnchor:"middle",verticalAnchor:b};return a&&E&&(A.height=Math.max(E.y+E.height-(l+c),0),A.width=s),A}if("left"===r){var S={x:p-w,y:l+c/2,horizontalAnchor:O,verticalAnchor:"middle"};return a&&E&&(S.width=Math.max(S.x-E.x,0),S.height=c),S}if("right"===r){var k={x:p+h+w,y:l+c/2,horizontalAnchor:P,verticalAnchor:"middle"};return a&&E&&(k.width=Math.max(E.x+E.width-k.x,0),k.height=c),k}var I=a&&E?{width:h,height:c}:{};return"insideLeft"===r?ew({x:p+w,y:l+c/2,horizontalAnchor:P,verticalAnchor:"middle"},I):"insideRight"===r?ew({x:p+h-w,y:l+c/2,horizontalAnchor:O,verticalAnchor:"middle"},I):"insideTop"===r?ew({x:f+u/2,y:l+m,horizontalAnchor:"middle",verticalAnchor:b},I):"insideBottom"===r?ew({x:d+s/2,y:l+c-m,horizontalAnchor:"middle",verticalAnchor:g},I):"insideTopLeft"===r?ew({x:f+w,y:l+m,horizontalAnchor:P,verticalAnchor:b},I):"insideTopRight"===r?ew({x:f+u-w,y:l+m,horizontalAnchor:O,verticalAnchor:b},I):"insideBottomLeft"===r?ew({x:d+w,y:l+c-m,horizontalAnchor:P,verticalAnchor:g},I):"insideBottomRight"===r?ew({x:d+s-w,y:l+c-m,horizontalAnchor:O,verticalAnchor:g},I):r&&"object"==typeof r&&(le(r.x)||oe(r.x))&&(le(r.y)||oe(r.y))?ew({x:o+fe(r.x,h),y:l+fe(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},I):ew({x:y,y:l+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},I)},nw=["labelRef"],iw=["content"];function aw(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function ow(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function lw(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ow(Object(r),!0).forEach((function(t){cw(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ow(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function cw(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function uw(){return uw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},uw.apply(null,arguments)}var sw=(0,t.createContext)(null),fw=e=>{var{x:r,y:n,upperWidth:i,lowerWidth:a,width:o,height:l,children:c}=e,u=(0,t.useMemo)((()=>({x:r,y:n,upperWidth:i,lowerWidth:a,width:o,height:l})),[r,n,i,a,o,l]);return t.createElement(sw.Provider,{value:u},c)},dw=()=>{var e=(0,t.useContext)(sw),r=sa();return e||(r?ua(r):void 0)},pw=(0,t.createContext)(null),hw=e=>{var{cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:o,endAngle:l,clockWise:c,children:u}=e,s=(0,t.useMemo)((()=>({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:o,endAngle:l,clockWise:c})),[r,n,i,a,o,l,c]);return t.createElement(pw.Provider,{value:s},u)},yw=()=>{var e=(0,t.useContext)(pw),r=Ze(ly);return e||r},vw=e=>{var{value:t,formatter:r}=e,n=ye(e.children)?t:e.children;return"function"==typeof r?r(n):n},mw=e=>null!=e&&"function"==typeof e,gw=(e,r,i,a,o)=>{var l,c,{offset:u,className:s}=e,{cx:f,cy:d,innerRadius:p,outerRadius:h,startAngle:y,endAngle:v,clockWise:m}=o,g=(p+h)/2,b=((e,t)=>ie(t-e)*Math.min(Math.abs(t-e),360))(y,v),x=b>=0?1:-1;switch(r){case"insideStart":l=y+x*u,c=m;break;case"insideEnd":l=v-x*u,c=!m;break;case"end":l=v+x*u,c=m;break;default:throw new Error("Unsupported position ".concat(r))}c=b<=0?c:!c;var w=Hc(f,d,g,l),O=Hc(f,d,g,l+359*(c?1:-1)),P="M".concat(w.x,",").concat(w.y,"\n    A").concat(g,",").concat(g,",0,1,").concat(c?0:1,",\n    ").concat(O.x,",").concat(O.y),E=ye(e.id)?se("recharts-radial-line-"):e.id;return t.createElement("text",uw({},a,{dominantBaseline:"central",className:n("recharts-radial-bar-label",s)}),t.createElement("defs",null,t.createElement("path",{id:E,d:P})),t.createElement("textPath",{xlinkHref:"#".concat(E)},i))},bw=(e,t,r)=>{var{cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:l,endAngle:c}=e,u=(l+c)/2;if("outside"===r){var{x:s,y:f}=Hc(n,i,o+t,u);return{x:s,y:f,textAnchor:s>=n?"start":"end",verticalAnchor:"middle"}}if("center"===r)return{x:n,y:i,textAnchor:"middle",verticalAnchor:"middle"};if("centerTop"===r)return{x:n,y:i,textAnchor:"middle",verticalAnchor:"start"};if("centerBottom"===r)return{x:n,y:i,textAnchor:"middle",verticalAnchor:"end"};var d=(a+o)/2,{x:p,y:h}=Hc(n,i,d,u);return{x:p,y:h,textAnchor:"middle",verticalAnchor:"middle"}},xw=e=>null!=e&&"cx"in e&&le(e.cx),ww={angle:0,offset:5,zIndex:Wh.label,position:"middle",textBreakAll:!1};function Ow(e){var r,i,a,o=De(e,ww),{viewBox:l,parentViewBox:c,position:u,value:s,children:f,content:d,className:h="",textBreakAll:y,labelRef:v}=o,m=yw(),g=dw(),b=function(e){if(!xw(e))return e;var{cx:t,cy:r,outerRadius:n}=e,i=2*n;return{x:t-n,y:r-n,width:i,upperWidth:i,lowerWidth:i,height:i}}(r=null==l?"center"===u?g:null!=m?m:g:xw(l)?l:ua(l));if(!r||ye(s)&&ye(f)&&!(0,t.isValidElement)(d)&&"function"!=typeof d)return null;var x=lw(lw({},o),{},{viewBox:r});if((0,t.isValidElement)(d)){var{labelRef:w}=x,O=aw(x,nw);return(0,t.cloneElement)(d,O)}if("function"==typeof d){var{content:P}=x,E=aw(x,iw);if(i=(0,t.createElement)(d,E),(0,t.isValidElement)(i))return i}else i=vw(o);var j=p(o);if(xw(r)){if("insideStart"===u||"insideEnd"===u||"end"===u)return gw(o,u,i,j,r);a=bw(r,o.offset,o.position)}else{if(!b)return null;var A=rw({viewBox:b,position:u,offset:o.offset,parentViewBox:xw(c)?void 0:c,clamp:!0});a=lw(lw({x:A.x,y:A.y,textAnchor:A.horizontalAnchor,verticalAnchor:A.verticalAnchor},void 0!==A.width?{width:A.width}:{}),void 0!==A.height?{height:A.height}:{})}return t.createElement(Cb,{zIndex:o.zIndex},t.createElement(Jx,uw({ref:v,className:n("recharts-label",h)},j,a,{textAnchor:Vx(j.textAnchor)?j.textAnchor:a.textAnchor,breakAll:y}),i))}Ow.displayName="Label";var Pw=(e,r,n)=>{if(!e)return null;var i={viewBox:r,labelRef:n};return!0===e?t.createElement(Ow,uw({key:"label-implicit"},i)):ce(e)?t.createElement(Ow,uw({key:"label-implicit",value:e},i)):(0,t.isValidElement)(e)?e.type===Ow?(0,t.cloneElement)(e,lw({key:"label-implicit"},i)):t.createElement(Ow,uw({key:"label-implicit",content:e},i)):mw(e)?t.createElement(Ow,uw({key:"label-implicit",content:e},i)):e&&"object"==typeof e?t.createElement(Ow,uw({},e,{key:"label-implicit"},i)):null};function Ew(e){var{label:t,labelRef:r}=e,n=dw();return Pw(t,n,r)||null}function jw(e){var{label:t}=e,r=yw();return Pw(t,r)||null}var Aw=a(25),Sw=a.n(Aw),kw=["valueAccessor"],Iw=["dataKey","clockWise","id","textBreakAll","zIndex"];function Mw(){return Mw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Mw.apply(null,arguments)}function Tw(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var Dw=e=>Array.isArray(e.value)?Sw()(e.value):e.value,Cw=(0,t.createContext)(void 0),Nw=Cw.Provider,_w=(0,t.createContext)(void 0),zw=_w.Provider;function Rw(e){var{valueAccessor:r=Dw}=e,n=Tw(e,kw),{dataKey:i,clockWise:a,id:o,textBreakAll:l,zIndex:c}=n,u=Tw(n,Iw),s=(0,t.useContext)(Cw),f=(0,t.useContext)(_w),d=s||f;return d&&d.length?t.createElement(Cb,{zIndex:null!=c?c:Wh.label},t.createElement(b,{className:"recharts-label-list"},d.map(((e,a)=>{var c,s=ye(i)?r(e,a):li(e.payload,i),f=ye(o)?{}:{id:"".concat(o,"-").concat(a)};return t.createElement(Ow,Mw({key:"label-".concat(a)},p(e),u,f,{fill:null!==(c=n.fill)&&void 0!==c?c:e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:l,viewBox:e.viewBox,index:a,zIndex:0}))})))):null}function Lw(e){var{label:r}=e;return r?!0===r?t.createElement(Rw,{key:"labelList-implicit"}):t.isValidElement(r)||mw(r)?t.createElement(Rw,{key:"labelList-implicit",content:r}):"object"==typeof r?t.createElement(Rw,Mw({key:"labelList-implicit"},r,{type:String(r.type)})):null:null}Rw.displayName="LabelList";var Kw=["component"];function Bw(e){var r,{component:n}=e,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,Kw);return(0,t.isValidElement)(n)?r=(0,t.cloneElement)(n,i):"function"==typeof n?r=(0,t.createElement)(n,i):Hi(!1,"Customized's props `component` must be React.element or Function, but got %s.",typeof n),t.createElement(b,{className:"recharts-customized-wrapper"},r)}Bw.displayName="Customized";var Ww,Fw=["points","className","baseLinePoints","connectNulls"];function Uw(){return Uw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Uw.apply(null,arguments)}var Vw=e=>null!=e&&e.x===+e.x&&e.y===+e.y,Xw=(e,t)=>{var r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[[]];e.forEach((e=>{var r=t[t.length-1];Vw(e)?r&&r.push(e):r&&r.length>0&&t.push([])}));var r=e[0],n=t[t.length-1];Vw(r)&&n&&n.push(r);var i=t[t.length-1];return i&&i.length<=0&&(t=t.slice(0,-1)),t}(e);t&&(r=[r.reduce(((e,t)=>[...e,...t]),[])]);var n=r.map((e=>e.reduce(((e,t,r)=>ne(Ww||(Ww=function(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["","","",",",""])),e,0===r?"M":"L",t.x,t.y)),""))).join("");return 1===r.length?"".concat(n,"Z"):n},Hw=e=>{var{points:r,className:i,baseLinePoints:a,connectNulls:o}=e,l=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,Fw);if(!r||!r.length)return null;var c=n("recharts-polygon",i);if(a&&a.length){var u=l.stroke&&"none"!==l.stroke,s=((e,t,r)=>{var n=Xw(e,r);return"".concat("Z"===n.slice(-1)?n.slice(0,-1):n,"L").concat(Xw(Array.from(t).reverse(),r).slice(1))})(r,a,o);return t.createElement("g",{className:c},t.createElement("path",Uw({},p(l),{fill:"Z"===s.slice(-1)?l.fill:"none",stroke:"none",d:s})),u?t.createElement("path",Uw({},p(l),{fill:"none",d:Xw(r,o)})):null,u?t.createElement("path",Uw({},p(l),{fill:"none",d:Xw(a,o)})):null)}var f=Xw(r,o);return t.createElement("path",Uw({},p(l),{fill:"Z"===f.slice(-1)?l.fill:"none",className:c,d:f}))};function $w(){return $w=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},$w.apply(null,arguments)}var qw=e=>{var{cx:r,cy:i,r:a,className:o}=e,l=n("recharts-dot",o);return le(r)&&le(i)&&le(a)?t.createElement("circle",$w({},f(e),ke(e),{className:l,cx:r,cy:i,r:a})):null},Yw=e=>e.graphicalItems.polarItems,Gw=it([cy,uy],_y),Zw=it([Yw,Dy,Gw],Ly),Jw=it([Zw],Uy),Qw=it([Jw,mh],Xy),eO=it([Qw,Dy,Zw],$y),tO=(it([Qw,Dy,Zw],((e,t,r)=>r.length>0?e.flatMap((e=>r.flatMap((r=>{var n;return{value:li(e,null!==(n=t.dataKey)&&void 0!==n?n:r.dataKey),errorDomain:[]}})))).filter(Boolean):null!=(null==t?void 0:t.dataKey)?e.map((e=>({value:li(e,t.dataKey),errorDomain:[]}))):e.map((e=>({value:e,errorDomain:[]}))))),()=>{}),rO=it([Qw,Dy,Zw,sv,cy],dv),nO=it([Dy,lv,cv,tO,rO,tO,va,cy],Iv),iO=it([Dy,va,Qw,eO,_h,cy,nO],Dv),aO=it([iO,Cy,_v],Rv),oO=it([Dy,iO,aO,cy],Kv),lO=it([_v,oO],by),cO=(e,t,r)=>{switch(t){case"angleAxis":return Zh(e,r);case"radiusAxis":return Jh(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},uO=(e,t,r)=>{switch(t){case"angleAxis":return iy(e,r);case"radiusAxis":return oy(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},sO=it([cO,_v,lO,uO],zv),fO=it([va,eO,Cy,cy],dm),dO=it([va,cO,_v,sO,aO,uO,fm,fO,cy],ym),pO=it([dO],(e=>{if(e){var t=new Map;return e.forEach((e=>{var r=(e.coordinate+360)%360;t.has(r)||t.set(r,e)})),Array.from(t.values())}})),hO=it([va,cO,sO,uO,fm,fO,cy],mm),yO=it([(e,t)=>dO(e,"angleAxis",t,!1)],(e=>{if(e)return e.map((e=>e.coordinate))})),vO=it([(e,t)=>dO(e,"radiusAxis",t,!1)],(e=>{if(e)return e.map((e=>e.coordinate))})),mO=["gridType","radialLines","angleAxisId","radiusAxisId","cx","cy","innerRadius","outerRadius","polarAngles","polarRadius","zIndex"];function gO(){return gO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gO.apply(null,arguments)}function bO(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function xO(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?bO(Object(r),!0).forEach((function(t){wO(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bO(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wO(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var OO=(e,t,r,n)=>{var i="";return n.forEach(((n,a)=>{var o=Hc(t,r,e,n);i+=a?"L ".concat(o.x,",").concat(o.y):"M ".concat(o.x,",").concat(o.y)})),i+="Z"},PO=e=>{var{cx:r,cy:n,innerRadius:i,outerRadius:a,polarAngles:o,radialLines:l}=e;if(!o||!o.length||!l)return null;var c=xO({stroke:"#ccc"},f(e));return t.createElement("g",{className:"recharts-polar-grid-angle"},o.map((e=>{var o=Hc(r,n,i,e),l=Hc(r,n,a,e);return t.createElement("line",gO({key:"line-".concat(e)},c,{x1:o.x,y1:o.y,x2:l.x,y2:l.y}))})))},EO=e=>{var{cx:r,cy:i,radius:a}=e,o=xO({stroke:"#ccc",fill:"none"},f(e));return t.createElement("circle",gO({},o,{className:n("recharts-polar-grid-concentric-circle",e.className),cx:r,cy:i,r:a}))},jO=e=>{var{radius:r}=e,i=xO({stroke:"#ccc",fill:"none"},f(e));return t.createElement("path",gO({},i,{className:n("recharts-polar-grid-concentric-polygon",e.className),d:OO(r,e.cx,e.cy,e.polarAngles)}))},AO=e=>{var{polarRadius:r,gridType:n}=e;if(!r||!r.length)return null;var i=Math.max(...r),a=e.fill&&"none"!==e.fill;return t.createElement("g",{className:"recharts-polar-grid-concentric"},a&&"circle"===n&&t.createElement(EO,gO({},e,{radius:i})),a&&"circle"!==n&&t.createElement(jO,gO({},e,{radius:i})),r.map(((r,i)=>{var a=i;return"circle"===n?t.createElement(EO,gO({key:a},e,{fill:"none",radius:r})):t.createElement(jO,gO({key:a},e,{fill:"none",radius:r}))})))},SO={angleAxisId:0,radiusAxisId:0,gridType:"polygon",radialLines:!0,zIndex:Wh.grid},kO=e=>{var r,n,i,a,o,l,c,u,s=De(e,SO),{gridType:f,radialLines:d,angleAxisId:p,radiusAxisId:h,cx:y,cy:v,innerRadius:m,outerRadius:g,polarAngles:b,polarRadius:x,zIndex:w}=s,O=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(s,mO),P=Ze(ly),E=Ze((e=>yO(e,p))),j=Ze((e=>vO(e,h))),A=Array.isArray(b)?b:E,S=Array.isArray(x)?x:j;if(null==A||null==S)return null;var k=xO({cx:null!==(r=null!==(n=null==P?void 0:P.cx)&&void 0!==n?n:y)&&void 0!==r?r:0,cy:null!==(i=null!==(a=null==P?void 0:P.cy)&&void 0!==a?a:v)&&void 0!==i?i:0,innerRadius:null!==(o=null!==(l=null==P?void 0:P.innerRadius)&&void 0!==l?l:m)&&void 0!==o?o:0,outerRadius:null!==(c=null!==(u=null==P?void 0:P.outerRadius)&&void 0!==u?u:g)&&void 0!==c?c:0,polarAngles:A,polarRadius:S,zIndex:w},O),{outerRadius:I}=k;return I<=0?null:t.createElement(Cb,{zIndex:k.zIndex},t.createElement("g",{className:"recharts-polar-grid"},t.createElement(AO,gO({gridType:f,radialLines:d},k,{polarAngles:A,polarRadius:S})),t.createElement(PO,gO({gridType:f,radialLines:d},k,{polarAngles:A,polarRadius:S}))))};kO.displayName="PolarGrid";var IO=a(4338),MO=a.n(IO),TO=a(2972),DO=a.n(TO),CO=en({name:"polarAxis",initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:NO,removeRadiusAxis:_O,addAngleAxis:zO,removeAngleAxis:RO}=CO.actions,LO=CO.reducer;function KO(e){return e&&"object"==typeof e&&"className"in e&&"string"==typeof e.className?e.className:""}var BO=["type"],WO=["cx","cy","angle","axisLine"],FO=["angle","tickFormatter","stroke","tick"];function UO(){return UO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},UO.apply(null,arguments)}function VO(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function XO(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?VO(Object(r),!0).forEach((function(t){HO(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):VO(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function HO(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $O(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function qO(e){var r=$e(),n=xa(),i=(0,t.useMemo)((()=>{var{type:t}=e,r=$O(e,BO),i=Xh(n,"radiusAxis",t);if(null!=i)return XO(XO({},r),{},{type:i})}),[e,n]);return(0,t.useEffect)((()=>null==i?ge:(r(NO(i)),()=>{r(_O(i))})),[r,i]),null}var YO=(e,r)=>{var{angle:i,tickFormatter:a,stroke:o,tick:l}=e,c=$O(e,FO),u=(e=>{var t;switch(e){case"left":t="end";break;case"right":t="start";break;default:t="middle"}return t})(e.orientation),s=f(c),p=d(l),h=r.map(((r,c)=>{var f=((e,t,r,n)=>{var{coordinate:i}=e;return Hc(r,n,i,t)})(r,e.angle,e.cx,e.cy),d=XO(XO(XO(XO({textAnchor:u,transform:"rotate(".concat(90-i,", ").concat(f.x,", ").concat(f.y,")")},s),{},{stroke:"none",fill:o},p),{},{index:c},f),{},{payload:r});return t.createElement(b,UO({className:n("recharts-polar-radius-axis-tick",KO(l)),key:"tick-".concat(r.coordinate)},Ie(e,r,c)),((e,r,n)=>t.isValidElement(e)?t.cloneElement(e,r):"function"==typeof e?e(r):t.createElement(Jx,UO({},r,{className:"recharts-polar-radius-axis-tick-value"}),n))(l,d,a?a(r.value,c):r.value))}));return t.createElement(b,{className:"recharts-polar-radius-axis-ticks"},h)},GO=e=>{var{radiusAxisId:r}=e,i=Ze(ly),a=Ze((e=>sO(e,"radiusAxis",r))),o=Ze((e=>dO(e,"radiusAxis",r,!1)));if(null==i||!o||!o.length||null==a)return null;var l=XO(XO({},e),{},{scale:a},i),{tick:c,axisLine:u}=l;return t.createElement(Cb,{zIndex:l.zIndex},t.createElement(b,{className:n("recharts-polar-radius-axis","radiusAxis",l.className)},u&&((e,r)=>{var{cx:n,cy:i,angle:a,axisLine:o}=e,l=$O(e,WO),c=r.reduce(((e,t)=>[Math.min(e[0],t.coordinate),Math.max(e[1],t.coordinate)]),[1/0,-1/0]),u=Hc(n,i,c[0],a),s=Hc(n,i,c[1],a),d=XO(XO(XO({},f(l)),{},{fill:"none"},f(o)),{},{x1:u.x,y1:u.y,x2:s.x,y2:s.y});return t.createElement("line",UO({className:"recharts-polar-radius-axis-line"},d))})(l,o),c&&YO(l,o),t.createElement(hw,((e,t,r,n)=>{var i=MO()(n,(e=>e.coordinate||0)),a=DO()(n,(e=>e.coordinate||0));return{cx:t,cy:r,startAngle:e,endAngle:e,innerRadius:(null==a?void 0:a.coordinate)||0,outerRadius:(null==i?void 0:i.coordinate)||0,clockWise:!1}})(l.angle,l.cx,l.cy,o),t.createElement(jw,{label:l.label}),l.children)))};function ZO(e){var r=De(e,Uh);return t.createElement(t.Fragment,null,t.createElement(qO,{domain:r.domain,id:r.radiusAxisId,scale:r.scale,type:r.type,dataKey:r.dataKey,unit:void 0,name:r.name,allowDuplicatedCategory:r.allowDuplicatedCategory,allowDataOverflow:r.allowDataOverflow,reversed:r.reversed,includeHidden:r.includeHidden,allowDecimals:r.allowDecimals,ticks:r.ticks,tickCount:r.tickCount,tick:r.tick}),t.createElement(GO,r))}ZO.displayName="PolarRadiusAxis";var JO=["children","type"];function QO(){return QO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},QO.apply(null,arguments)}function eP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function tP(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?eP(Object(r),!0).forEach((function(t){rP(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):eP(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function rP(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var nP=1e-5,iP=Math.cos(Vc(45));function aP(e){var r=$e(),n=xa(),i=(0,t.useMemo)((()=>{var{children:t,type:r}=e,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,JO),a=Xh(n,"angleAxis",r);if(null!=a)return tP(tP({},i),{},{type:a})}),[e,n]),a=Ze((e=>Zh(e,null==i?void 0:i.id))),o=i===a;return(0,t.useEffect)((()=>null==i?ge:(r(zO(i)),()=>{r(RO(i))})),[r,i]),o?e.children:null}var oP=e=>{var{cx:r,cy:n,radius:i,axisLineType:a,axisLine:o,ticks:l}=e;if(!o)return null;var c=tP(tP({},f(e)),{},{fill:"none"},f(o));if("circle"===a)return t.createElement(qw,QO({className:"recharts-polar-angle-axis-line"},c,{cx:r,cy:n,r:i}));var u=l.map((e=>Hc(r,n,i,e.coordinate)));return t.createElement(Hw,QO({className:"recharts-polar-angle-axis-line"},c,{points:u}))},lP=e=>{var{tick:r,tickProps:n,value:i}=e;return r?t.isValidElement(r)?t.cloneElement(r,n):"function"==typeof r?r(n):t.createElement(Jx,QO({},n,{className:"recharts-polar-angle-axis-tick-value"}),i):null},cP=e=>{var{tick:r,tickLine:i,tickFormatter:a,stroke:o,ticks:l}=e,c=f(e),u=d(r),s=tP(tP({},c),{},{fill:"none"},f(i)),p=l.map(((l,f)=>{var d=((e,t)=>{var{cx:r,cy:n,radius:i,orientation:a,tickSize:o}=t,l=o||8,c=Hc(r,n,i,e.coordinate),u=Hc(r,n,i+("inner"===a?-1:1)*l,e.coordinate);return{x1:c.x,y1:c.y,x2:u.x,y2:u.y}})(l,e),p=((e,t)=>{var r=Math.cos(Vc(-e.coordinate));return r>nP?"outer"===t?"start":"end":r<-nP?"outer"===t?"end":"start":"middle"})(l,e.orientation),h=(e=>{var t=Math.cos(Vc(-e.coordinate)),r=Math.sin(Vc(-e.coordinate));return Math.abs(t)<=iP?r>0?"start":"end":"middle"})(l),y=tP(tP(tP({},c),{},{textAnchor:p,verticalAnchor:h,stroke:"none",fill:o},u),{},{index:f,payload:l,x:d.x2,y:d.y2});return t.createElement(b,QO({className:n("recharts-polar-angle-axis-tick",KO(r)),key:"tick-".concat(l.coordinate)},Ie(e,l,f)),i&&t.createElement("line",QO({className:"recharts-polar-angle-axis-tick-line"},s,d)),t.createElement(lP,{tick:r,tickProps:y,value:a?a(l.value,f):l.value}))}));return t.createElement(b,{className:"recharts-polar-angle-axis-ticks"},p)},uP=e=>{var{angleAxisId:r}=e,i=Ze(ly),a=Ze((e=>sO(e,"angleAxis",r))),o=Bi(),l=Ze((e=>pO(e,"angleAxis",r,o)));if(null==i||!l||!l.length||null==a)return null;var c=tP(tP(tP({},e),{},{scale:a},i),{},{radius:i.outerRadius,ticks:l});return t.createElement(Cb,{zIndex:c.zIndex},t.createElement(b,{className:n("recharts-polar-angle-axis","angleAxis",c.className)},t.createElement(oP,c),t.createElement(cP,c)))};function sP(e){var r=De(e,Fh);return t.createElement(aP,{id:r.angleAxisId,scale:r.scale,type:r.type,dataKey:r.dataKey,unit:void 0,name:r.name,allowDuplicatedCategory:!1,allowDataOverflow:!1,reversed:r.reversed,includeHidden:!1,allowDecimals:r.allowDecimals,tickCount:r.tickCount,ticks:r.ticks,tick:r.tick,domain:r.domain},t.createElement(uP,r))}function fP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function dP(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?fP(Object(r),!0).forEach((function(t){pP(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fP(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function pP(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}sP.displayName="PolarAngleAxis";var hP=it([Yw,(e,t)=>t],((e,t)=>e.filter((e=>"pie"===e.type)).find((e=>e.id===t)))),yP=[],vP=(e,t,r)=>0===(null==r?void 0:r.length)?yP:r,mP=it([mh,hP,vP],((e,t,r)=>{var n,{chartData:i}=e;if(null!=t&&((n=null!=(null==t?void 0:t.data)&&t.data.length>0?t.data:i)&&n.length||null==r||(n=r.map((e=>dP(dP({},t.presentationProps),e.props)))),null!=n))return n})),gP=it([mP,hP,vP],((e,t,r)=>{if(null!=e&&null!=t)return e.map(((e,n)=>{var i,a,o=li(e,t.nameKey,t.name);return a=null!=r&&null!==(i=r[n])&&void 0!==i&&null!==(i=i.props)&&void 0!==i&&i.fill?r[n].props.fill:"object"==typeof e&&null!=e&&"fill"in e?e.fill:t.fill,{value:Pi(o,t.dataKey),color:a,payload:e,type:t.legendType}}))})),bP=it([mP,hP,vP,zi],((e,t,r,n)=>{if(null!=t&&null!=e)return function(e){var t,r,n,{pieSettings:i,displayedData:a,cells:o,offset:l}=e,{cornerRadius:c,startAngle:u,endAngle:s,dataKey:f,nameKey:d,tooltipType:p}=i,h=Math.abs(i.minAngle),y=kE(u,s),v=Math.abs(y),m=a.length<=1?0:null!==(t=i.paddingAngle)&&void 0!==t?t:0,g=a.filter((e=>0!==li(e,f,0))).length,b=v-g*h-(v>=360?g:g-1)*m,x=a.reduce(((e,t)=>{var r=li(t,f,0);return e+(le(r)?r:0)}),0);x>0&&(r=a.map(((e,t)=>{var r,a=li(e,f,0),s=li(e,d,t),v=SE(i,l,e),g=(le(a)?a:0)/x,w=xE(xE({},e),o&&o[t]&&o[t].props),O=(r=t?n.endAngle+ie(y)*m*(0!==a?1:0):u)+ie(y)*((0!==a?h:0)+g*b),P=(r+O)/2,E=(v.innerRadius+v.outerRadius)/2,j=[{name:s,value:a,payload:w,dataKey:f,type:p,graphicalItemId:i.id}],A=Hc(v.cx,v.cy,E,P);return n=xE(xE(xE(xE({},i.presentationProps),{},{percent:g,cornerRadius:"string"==typeof c?parseFloat(c):c,name:s,tooltipPayload:j,midAngle:P,middleRadius:E,tooltipPosition:A},w),v),{},{value:a,dataKey:f,startAngle:r,endAngle:O,payload:w,paddingAngle:ie(y)*m})})));return r}({offset:n,pieSettings:t,displayedData:e,cells:r})})),xP=a(2751),wP=e=>"string"==typeof e?e:e?e.displayName||e.name||"Component":"",OP=null,PP=null,EP=e=>{if(e===OP&&Array.isArray(PP))return PP;var r=[];return t.Children.forEach(e,(e=>{ye(e)||((0,xP.isFragment)(e)?r=r.concat(EP(e.props.children)):r.push(e))})),PP=r,OP=e,r};function jP(e,t){var r=[],n=[];return n=Array.isArray(t)?t.map((e=>wP(e))):[wP(t)],EP(e).forEach((e=>{var t=ee()(e,"type.displayName")||ee()(e,"type.name");t&&-1!==n.indexOf(t)&&r.push(e)})),r}var AP,SP,kP,IP,MP,TP=e=>!e||"object"!=typeof e||!("clipDot"in e)||Boolean(e.clipDot),DP=a(2938),CP=a.n(DP);function NP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?NP(Object(r),!0).forEach((function(t){zP(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):NP(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function zP(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RP(){return RP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},RP.apply(null,arguments)}function LP(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var KP=(e,t,r,n,i)=>{var a,o=r-n;return a=ne(AP||(AP=LP(["M ",",",""])),e,t),a+=ne(SP||(SP=LP(["L ",",",""])),e+r,t),a+=ne(kP||(kP=LP(["L ",",",""])),e+r-o/2,t+i),a+=ne(IP||(IP=LP(["L ",",",""])),e+r-o/2-n,t+i),a+=ne(MP||(MP=LP(["L ",","," Z"])),e,t)},BP={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},WP=e=>{var r=De(e,BP),{x:i,y:a,upperWidth:o,lowerWidth:l,height:c,className:u}=r,{animationEasing:s,animationDuration:f,animationBegin:d,isUpdateAnimationActive:h}=r,y=(0,t.useRef)(null),[v,m]=(0,t.useState)(-1),g=(0,t.useRef)(o),b=(0,t.useRef)(l),x=(0,t.useRef)(c),w=(0,t.useRef)(i),O=(0,t.useRef)(a),P=fc(e,"trapezoid-");if((0,t.useEffect)((()=>{if(y.current&&y.current.getTotalLength)try{var e=y.current.getTotalLength();e&&m(e)}catch(e){}}),[]),i!==+i||a!==+a||o!==+o||l!==+l||c!==+c||0===o&&0===l||0===c)return null;var E=n("recharts-trapezoid",u);if(!h)return t.createElement("g",null,t.createElement("path",RP({},p(r),{className:E,d:KP(i,a,o,l,c)})));var j=g.current,A=b.current,S=x.current,k=w.current,I=O.current,M="0px ".concat(-1===v?1:v,"px"),T="".concat(v,"px 0px"),D=Ll(["strokeDasharray"],f,s);return t.createElement(sc,{animationId:P,key:P,canBegin:v>0,duration:f,easing:s,isActive:h,begin:d},(e=>{var n=pe(j,o,e),u=pe(A,l,e),s=pe(S,c,e),f=pe(k,i,e),d=pe(I,a,e);y.current&&(g.current=n,b.current=u,x.current=s,w.current=f,O.current=d);var h=e>0?{transition:D,strokeDasharray:T}:{strokeDasharray:M};return t.createElement("path",RP({},p(r),{className:E,d:KP(f,d,n,u,s),ref:y,style:_P(_P({},h),r.style)}))}))},FP=["option","shapeType","activeClassName"];function UP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function VP(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?UP(Object(r),!0).forEach((function(t){XP(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):UP(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function XP(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function HP(e){var{shapeType:r,elementProps:n}=e;switch(r){case"rectangle":return t.createElement(Dc,n);case"trapezoid":return t.createElement(WP,n);case"sector":return t.createElement(nu,n);case"symbols":if(function(e){return"symbols"===e}(r))return t.createElement(Ae,n);break;case"curve":return t.createElement(kl,n);default:return null}}function $P(e){var r,{option:n,shapeType:i,activeClassName:a="recharts-active-shape"}=e,o=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,FP);if((0,t.isValidElement)(n))r=(0,t.cloneElement)(n,VP(VP({},o),function(e){return(0,t.isValidElement)(e)?e.props:e}(n)));else if("function"==typeof n)r=n(o,o.index);else if(CP()(n)&&"boolean"!=typeof n){var l=function(e,t){return VP(VP({},t),e)}(n,o);r=t.createElement(HP,{shapeType:i,elementProps:l})}else{var c=o;r=t.createElement(HP,{shapeType:i,elementProps:c})}return o.isActive?t.createElement(b,{className:a},r):r}var qP,YP=(e,t,r)=>{var n=$e();return(i,a)=>o=>{null==e||e(i,a,o),n(Nm({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:r}))}},GP=e=>{var t=$e();return(r,n)=>i=>{null==e||e(r,n,i),t(_m())}},ZP=(e,t,r)=>{var n=$e();return(i,a)=>o=>{null==e||e(i,a,o),n(Rm({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:r}))}};function JP(e){var{tooltipEntrySettings:r}=e,n=$e(),i=Bi(),a=(0,t.useRef)(null);return(0,t.useLayoutEffect)((()=>{i||(null===a.current?n(Mm(r)):a.current!==r&&n(Tm({prev:a.current,next:r})),a.current=r)}),[r,n,i]),(0,t.useLayoutEffect)((()=>()=>{a.current&&(n(Dm(a.current)),a.current=null)}),[n]),null}function QP(e){var{legendPayload:r}=e,n=$e(),i=Bi(),a=(0,t.useRef)(null);return(0,t.useLayoutEffect)((()=>{i||(null===a.current?n(mo(r)):a.current!==r&&n(go({prev:a.current,next:r})),a.current=r)}),[n,i,r]),(0,t.useLayoutEffect)((()=>()=>{a.current&&(n(bo(a.current)),a.current=null)}),[n]),null}function eE(e){var{legendPayload:r}=e,n=$e(),i=Ze(va),a=(0,t.useRef)(null);return(0,t.useLayoutEffect)((()=>{"centric"!==i&&"radial"!==i||(null===a.current?n(mo(r)):a.current!==r&&n(go({prev:a.current,next:r})),a.current=r)}),[n,i,r]),(0,t.useLayoutEffect)((()=>()=>{a.current&&(n(bo(a.current)),a.current=null)}),[n]),null}var tE=null!==(qP=t["useId".toString()])&&void 0!==qP?qP:()=>{var[e]=t.useState((()=>se("uid-")));return e};function rE(e,t){var r=tE();return t||(e?"".concat(e,"-").concat(r):r)}var nE=(0,t.createContext)(void 0),iE=e=>{var{id:r,type:n,children:i}=e,a=rE("recharts-".concat(n),r);return t.createElement(nE.Provider,{value:a},i(a))};var aE=en({name:"graphicalItems",initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:Bn()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:r,next:n}=t.payload,i=Xt(e).cartesianItems.indexOf(r);i>-1&&(e.cartesianItems[i]=n)},prepare:Bn()},removeCartesianGraphicalItem:{reducer(e,t){var r=Xt(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:Bn()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:Bn()},removePolarGraphicalItem:{reducer(e,t){var r=Xt(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:Bn()}}}),{addCartesianGraphicalItem:oE,replaceCartesianGraphicalItem:lE,removeCartesianGraphicalItem:cE,addPolarGraphicalItem:uE,removePolarGraphicalItem:sE}=aE.actions,fE=aE.reducer,dE=e=>{var r=$e(),n=(0,t.useRef)(null);return(0,t.useLayoutEffect)((()=>{null===n.current?r(oE(e)):n.current!==e&&r(lE({prev:n.current,next:e})),n.current=e}),[r,e]),(0,t.useLayoutEffect)((()=>()=>{n.current&&(r(cE(n.current)),n.current=null)}),[r]),null},pE=(0,t.memo)(dE);function hE(e){var r=$e();return(0,t.useLayoutEffect)((()=>(r(uE(e)),()=>{r(sE(e))})),[r,e]),null}var yE=["key"],vE=["onMouseEnter","onClick","onMouseLeave"],mE=["id"],gE=["id"];function bE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function xE(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?bE(Object(r),!0).forEach((function(t){wE(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bE(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wE(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function OE(){return OE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},OE.apply(null,arguments)}function PE(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function EE(e){var r=(0,t.useMemo)((()=>jP(e.children,yx)),[e.children]),n=Ze((t=>gP(t,e.id,r)));return null==n?null:t.createElement(eE,{legendPayload:n})}var jE=t.memo((e=>{var{dataKey:r,nameKey:n,sectors:i,stroke:a,strokeWidth:o,fill:l,name:c,hide:u,tooltipType:s,id:f}=e,d={dataDefinedOnItem:i.map((e=>e.tooltipPayload)),getPosition:e=>{var t;return null===(t=i[Number(e)])||void 0===t?void 0:t.tooltipPosition},settings:{stroke:a,strokeWidth:o,fill:l,dataKey:r,nameKey:n,name:Pi(c,r),hide:u,type:s,color:l,unit:"",graphicalItemId:f}};return t.createElement(JP,{tooltipEntrySettings:d})})),AE=(e,t)=>e>t?"start":e<t?"end":"middle",SE=(e,t,r)=>{var{top:n,left:i,width:a,height:o}=t,l=$c(a,o),c=i+fe(e.cx,a,a/2),u=n+fe(e.cy,o,o/2),s=fe(e.innerRadius,l,0),f=((e,t,r)=>fe("function"==typeof t?t(e):t,r,.8*r))(r,e.outerRadius,l);return{cx:c,cy:u,innerRadius:s,outerRadius:f,maxRadius:e.maxRadius||Math.sqrt(a*a+o*o)/2}},kE=(e,t)=>ie(t-e)*Math.min(Math.abs(t-e),360),IE=(e,r)=>{if(t.isValidElement(e))return t.cloneElement(e,r);if("function"==typeof e)return e(r);var i=n("recharts-pie-label-line","boolean"!=typeof e?e.className:""),{key:a}=r,o=PE(r,yE);return t.createElement(kl,OE({},o,{type:"linear",className:i}))},ME=(e,r,i)=>{if(t.isValidElement(e))return t.cloneElement(e,r);var a=i;if("function"==typeof e&&(a=e(r),t.isValidElement(a)))return a;var o=n("recharts-pie-label-text",KO(e));return t.createElement(Jx,OE({},r,{alignmentBaseline:"middle",className:o}),a)};function TE(e){var{sectors:r,props:n,showLabels:i}=e,{label:a,labelLine:o,dataKey:l}=n;if(!i||!a||!r)return null;var c=f(n),u=d(a),s=d(o),p="object"==typeof a&&"offsetRadius"in a&&"number"==typeof a.offsetRadius&&a.offsetRadius||20,h=r.map(((e,r)=>{var n=(e.startAngle+e.endAngle)/2,i=Hc(e.cx,e.cy,e.outerRadius+p,n),f=xE(xE(xE(xE({},c),e),{},{stroke:"none"},u),{},{index:r,textAnchor:AE(i.x,e.cx)},i),d=xE(xE(xE(xE({},c),e),{},{fill:"none",stroke:e.fill},s),{},{index:r,points:[Hc(e.cx,e.cy,e.outerRadius,n),i],key:"line"});return t.createElement(Cb,{zIndex:Wh.label,key:"label-".concat(e.startAngle,"-").concat(e.endAngle,"-").concat(e.midAngle,"-").concat(r)},t.createElement(b,null,o&&IE(o,d),ME(a,f,li(e,l))))}));return t.createElement(b,{className:"recharts-pie-labels"},h)}function DE(e){var{sectors:r,props:n,showLabels:i}=e,{label:a}=n;return"object"==typeof a&&null!=a&&"position"in a?t.createElement(Lw,{label:a}):t.createElement(TE,{sectors:r,props:n,showLabels:i})}function CE(e){var{sectors:r,activeShape:n,inactiveShape:i,allOtherPieProps:a,shape:o,id:l}=e,c=Ze(Wg),u=Ze(Ug),s=Ze(Vg),{onMouseEnter:f,onClick:d,onMouseLeave:p}=a,h=PE(a,vE),y=YP(f,a.dataKey,l),v=GP(p),m=ZP(d,a.dataKey,l);return null==r||0===r.length?null:t.createElement(t.Fragment,null,r.map(((e,f)=>{if(0===(null==e?void 0:e.startAngle)&&0===(null==e?void 0:e.endAngle)&&1!==r.length)return null;var d=null==s||s===l,p=String(f)===c&&(null==u||a.dataKey===u)&&d,g=n&&p?n:c?i:null,x=xE(xE({},e),{},{stroke:e.stroke,tabIndex:-1,[Ti]:f,[Di]:l});return t.createElement(b,OE({key:"sector-".concat(null==e?void 0:e.startAngle,"-").concat(null==e?void 0:e.endAngle,"-").concat(e.midAngle,"-").concat(f),tabIndex:-1,className:"recharts-pie-sector"},Ie(h,e,f),{onMouseEnter:y(e,f),onMouseLeave:v(e,f),onClick:m(e,f)}),t.createElement($P,OE({option:null!=o?o:g,index:f,shapeType:"sector",isActive:p},x)))})))}function NE(e){var{showLabels:r,sectors:n,children:i}=e,a=(0,t.useMemo)((()=>r&&n?n.map((e=>({value:e.value,payload:e.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:e.cx,cy:e.cy,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clockWise:!1},fill:e.fill}))):[]),[n,r]);return t.createElement(zw,{value:r?a:void 0},i)}function _E(e){var{props:r,previousSectorsRef:n,id:i}=e,{sectors:a,isAnimationActive:o,animationBegin:l,animationDuration:c,animationEasing:u,activeShape:s,inactiveShape:f,onAnimationStart:d,onAnimationEnd:p}=r,h=fc(r,"recharts-pie-"),y=n.current,[v,m]=(0,t.useState)(!1),g=(0,t.useCallback)((()=>{"function"==typeof p&&p(),m(!1)}),[p]),x=(0,t.useCallback)((()=>{"function"==typeof d&&d(),m(!0)}),[d]);return t.createElement(NE,{showLabels:!v,sectors:a},t.createElement(sc,{animationId:h,begin:l,duration:c,isActive:o,easing:u,onAnimationStart:x,onAnimationEnd:g,key:h},(e=>{var o,l=[],c=a&&a[0],u=null!==(o=null==c?void 0:c.startAngle)&&void 0!==o?o:0;return null==a||a.forEach(((t,r)=>{var n=y&&y[r],i=r>0?ee()(t,"paddingAngle",0):0;if(n){var a=pe(n.endAngle-n.startAngle,t.endAngle-t.startAngle,e),o=xE(xE({},t),{},{startAngle:u+i,endAngle:u+a+i});l.push(o),u=o.endAngle}else{var{endAngle:c,startAngle:s}=t,f=pe(0,c-s,e),d=xE(xE({},t),{},{startAngle:u+i,endAngle:u+f+i});l.push(d),u=d.endAngle}})),n.current=l,t.createElement(b,null,t.createElement(CE,{sectors:l,activeShape:s,inactiveShape:f,allOtherPieProps:r,shape:r.shape,id:i}))})),t.createElement(DE,{showLabels:!v,sectors:a,props:r}),r.children)}var zE={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:Wh.area};function RE(e){var{id:r}=e,i=PE(e,mE),{hide:a,className:o,rootTabIndex:l}=e,c=(0,t.useMemo)((()=>jP(e.children,yx)),[e.children]),u=Ze((e=>bP(e,r,c))),s=(0,t.useRef)(null),f=n("recharts-pie",o);return a||null==u?(s.current=null,t.createElement(b,{tabIndex:l,className:f})):t.createElement(Cb,{zIndex:e.zIndex},t.createElement(jE,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:u,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:r}),t.createElement(b,{tabIndex:l,className:f},t.createElement(_E,{props:xE(xE({},i),{},{sectors:u}),previousSectorsRef:s,id:r})))}function LE(e){var r=De(e,zE),{id:n}=r,i=PE(r,gE),a=f(i);return t.createElement(iE,{id:n,type:"pie"},(e=>t.createElement(t.Fragment,null,t.createElement(hE,{type:"pie",id:e,data:i.data,dataKey:i.dataKey,hide:i.hide,angleAxisId:0,radiusAxisId:0,name:i.name,nameKey:i.nameKey,tooltipType:i.tooltipType,legendType:i.legendType,fill:i.fill,cx:i.cx,cy:i.cy,startAngle:i.startAngle,endAngle:i.endAngle,paddingAngle:i.paddingAngle,minAngle:i.minAngle,innerRadius:i.innerRadius,outerRadius:i.outerRadius,cornerRadius:i.cornerRadius,presentationProps:a,maxRadius:r.maxRadius}),t.createElement(EE,OE({},i,{id:e})),t.createElement(RE,OE({},i,{id:e})))))}LE.displayName="Pie";var KE=["points"];function BE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function WE(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?BE(Object(r),!0).forEach((function(t){FE(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):BE(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function FE(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UE(){return UE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},UE.apply(null,arguments)}function VE(e){var{option:r,dotProps:i,className:a}=e;if((0,t.isValidElement)(r))return(0,t.cloneElement)(r,i);if("function"==typeof r)return r(i);var o=n(a,"boolean"!=typeof r?r.className:""),l=null!=i?i:{},{points:c}=l,u=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(l,KE);return t.createElement(qw,UE({},u,{className:o}))}function XE(e){var{points:r,dot:n,className:i,dotClassName:a,dataKey:o,baseProps:l,needClip:c,clipPathId:u,zIndex:s=Wh.scatter}=e;if(!function(e,t){return null!=e&&(!!t||1===e.length)}(r,n))return null;var f,d=TP(n),h=null==(f=n)?null:(0,t.isValidElement)(f)?p(f.props):"object"!=typeof f||Array.isArray(f)?null:p(f),y=r.map(((e,i)=>{var c,u,s=WE(WE(WE({r:3},l),h),{},{index:i,cx:null!==(c=e.x)&&void 0!==c?c:void 0,cy:null!==(u=e.y)&&void 0!==u?u:void 0,dataKey:o,value:e.value,payload:e.payload,points:r});return t.createElement(VE,{key:"dot-".concat(i),option:n,dotProps:s,className:a})})),v={};return c&&null!=u&&(v.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(u,")")),t.createElement(Cb,{zIndex:s},t.createElement(b,UE({className:i},v),y))}function HE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?HE(Object(r),!0).forEach((function(t){qE(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):HE(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function qE(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var YE=en({name:"cartesianAxis",initialState:{xAxis:{},yAxis:{},zAxis:{}},reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:Bn()},replaceXAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;void 0!==e.xAxis[r.id]&&(r.id!==n.id&&delete e.xAxis[r.id],e.xAxis[n.id]=n)},prepare:Bn()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:Bn()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:Bn()},replaceYAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;void 0!==e.yAxis[r.id]&&(r.id!==n.id&&delete e.yAxis[r.id],e.yAxis[n.id]=n)},prepare:Bn()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:Bn()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:Bn()},replaceZAxis:{reducer(e,t){var{prev:r,next:n}=t.payload;void 0!==e.zAxis[r.id]&&(r.id!==n.id&&delete e.zAxis[r.id],e.zAxis[n.id]=n)},prepare:Bn()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:Bn()},updateYAxisWidth(e,t){var{id:r,width:n}=t.payload,i=e.yAxis[r];if(i){var a,o=i.widthHistory||[];if(3===o.length&&o[0]===o[2]&&n===o[1]&&n!==i.width&&Math.abs(n-(null!==(a=o[0])&&void 0!==a?a:0))<=1)return;var l=[...o,n].slice(-3);e.yAxis[r]=$E($E({},i),{},{width:n,widthHistory:l})}}}}),{addXAxis:GE,replaceXAxis:ZE,removeXAxis:JE,addYAxis:QE,replaceYAxis:ej,removeYAxis:tj,addZAxis:rj,replaceZAxis:nj,removeZAxis:ij,updateYAxisWidth:aj}=YE.actions,oj=YE.reducer,lj=it([zi],(e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right}))),cj=it([lj,Ei,ji],((e,t,r)=>{if(e&&null!=t&&null!=r)return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}})),uj=e=>{var t=Bi();return Ze((r=>bm(r,"xAxis",e,t)))},sj=e=>{var t=Bi();return Ze((r=>bm(r,"yAxis",e,t)))},fj=()=>Ze(Fg),dj=()=>Ze(lj),pj=()=>Ze(cj),hj=()=>Ze(Gg),yj=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=Bi();return Ze((r=>Cv(r,"xAxis",e,t)))},vj=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=Bi();return Ze((r=>Cv(r,"yAxis",e,t)))},mj=()=>{var e;return null!==(e=Ze(qg))&&void 0!==e&&e},gj=()=>{var e=Ze($g);if(null!=e)return{x:e.x,y:e.y}};function bj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function xj(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?bj(Object(r),!0).forEach((function(t){wj(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bj(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wj(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Oj=e=>{var{point:r,childIndex:n,mainColor:i,activeDot:a,dataKey:o,clipPath:l}=e;if(!1===a||null==r.x||null==r.y)return null;var c,u=xj(xj(xj({},{index:n,dataKey:o,cx:r.x,cy:r.y,r:4,fill:null!=i?i:"none",strokeWidth:2,stroke:"#fff",payload:r.payload,value:r.value}),d(a)),ke(a));return c=(0,t.isValidElement)(a)?(0,t.cloneElement)(a,u):"function"==typeof a?a(u):t.createElement(qw,u),t.createElement(b,{className:"recharts-active-dot",clipPath:l},c)};function Pj(e){var{points:r,mainColor:n,activeDot:i,itemDataKey:a,clipPath:o,zIndex:l=Wh.activeDot}=e,c=Ze(Wg),u=hj();if(null==r||null==u)return null;var s=r.find((e=>u.includes(e.payload)));return ye(s)?null:t.createElement(Cb,{zIndex:l},t.createElement(Oj,{point:s,childIndex:Number(c),mainColor:n,dataKey:a,activeDot:i,clipPath:o}))}function Ej(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function jj(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ej(Object(r),!0).forEach((function(t){Aj(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ej(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Aj(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Sj=(e,t)=>sO(e,"radiusAxis",t),kj=it([Sj],(e=>{if(null!=e)return{scale:e}})),Ij=it([Jh,Sj],((e,t)=>{if(null!=e&&null!=t)return jj(jj({},e),{},{scale:t})})),Mj=(e,t,r)=>Zh(e,r),Tj=(e,t,r)=>sO(e,"angleAxis",r),Dj=it([Mj,Tj],((e,t)=>{if(null!=e&&null!=t)return jj(jj({},e),{},{scale:t})})),Cj=it([Mj,Tj,ly],((e,t,r)=>{if(null!=r&&null!=t)return{scale:t,type:e.type,dataKey:e.dataKey,cx:r.cx,cy:r.cy}})),Nj=it([va,Ij,(e,t,r,n)=>dO(e,"radiusAxis",t,n),Dj,(e,t,r,n)=>dO(e,"angleAxis",r,n)],((e,t,r,n,i)=>ci(e,"radiusAxis")?wi(t,r,!1):wi(n,i,!1))),_j=it([Yw,(e,t,r,n,i)=>i],((e,t)=>{if(null!=e){var r=e.find((e=>"radar"===e.type&&t===e.id));return null==r?void 0:r.dataKey}})),zj=it([kj,Cj,mh,_j,Nj],((e,t,r,n,i)=>{var{chartData:a,dataStartIndex:o,dataEndIndex:l}=r;if(null!=e&&null!=t&&null!=a&&null!=i&&null!=n)return function(e){var{radiusAxis:t,angleAxis:r,displayedData:n,dataKey:i,bandSize:a}=e,{cx:o,cy:l}=r,c=!1,u=[],s="number"!==r.type&&null!=a?a:0;n.forEach(((e,n)=>{var a,f,d=li(e,r.dataKey,n),p=li(e,i),h=(null!==(a=r.scale.map(d))&&void 0!==a?a:0)+s,y=Array.isArray(p)?Sw()(p):p,v=ye(y)?0:null!==(f=t.scale.map(y))&&void 0!==f?f:0;Array.isArray(p)&&p.length>=2&&(c=!0),u.push(Bj(Bj({},Hc(o,l,v,h)),{},{name:d,value:p,cx:o,cy:l,radius:v,angle:h,payload:e}))}));var f=[];c&&u.forEach((e=>{if(Array.isArray(e.value)){var r,n=e.value[0],i=ye(n)?0:null!==(r=t.scale.map(n))&&void 0!==r?r:0;f.push(Bj(Bj({},e),{},{radius:i},Hc(o,l,i,e.angle)))}else f.push(e)}));return{points:u,isRange:c,baseLinePoints:f}}({radiusAxis:e,angleAxis:t,displayedData:a.slice(o,l+1),dataKey:n,bandSize:i})})),Rj=["id"];function Lj(){return Lj=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Lj.apply(null,arguments)}function Kj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Bj(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Kj(Object(r),!0).forEach((function(t){Wj(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Kj(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Wj(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fj(e,t){return e&&"none"!==e?e:t}var Uj=e=>{var{dataKey:t,name:r,stroke:n,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:Fj(n,i),value:Pi(r,t),payload:e}]},Vj=t.memo((e=>{var{dataKey:r,stroke:n,strokeWidth:i,fill:a,name:o,hide:l,tooltipType:c,id:u}=e,s={dataDefinedOnItem:void 0,getPosition:ge,settings:{stroke:n,strokeWidth:i,fill:a,nameKey:void 0,dataKey:r,name:Pi(o,r),hide:l,type:c,color:Fj(n,a),unit:"",graphicalItemId:u}};return t.createElement(JP,{tooltipEntrySettings:s})}));function Xj(e){var{points:r,props:n}=e,{dot:i,dataKey:a}=n,{id:o}=n,l=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(n,Rj),c=f(l);return t.createElement(XE,{points:r,dot:i,className:"recharts-radar-dots",dotClassName:"recharts-radar-dot",dataKey:a,baseProps:c})}function Hj(e){var{showLabels:r,points:n,children:i}=e,a=n.map((e=>{var t,r={x:e.x,y:e.y,width:0,lowerWidth:0,upperWidth:0,height:0};return Bj(Bj({},r),{},{value:null!==(t=e.value)&&void 0!==t?t:"",payload:e.payload,parentViewBox:void 0,viewBox:r,fill:void 0})}));return t.createElement(Nw,{value:r?a:void 0},i)}function $j(e){var{points:r,baseLinePoints:n,props:i}=e;if(null==r)return null;var a,{shape:o,isRange:l,connectNulls:c}=i;return a=t.isValidElement(o)?t.cloneElement(o,Bj(Bj({},i),{},{points:r})):"function"==typeof o?o(Bj(Bj({},i),{},{points:r})):t.createElement(Hw,Lj({},p(i),{onMouseEnter:e=>{var{onMouseEnter:t}=i;t&&t(i,e)},onMouseLeave:e=>{var{onMouseLeave:t}=i;t&&t(i,e)},points:r,baseLinePoints:l?n:void 0,connectNulls:c})),t.createElement(b,{className:"recharts-radar-polygon"},a,t.createElement(Xj,{props:i,points:r}))}var qj=(e,t,r)=>(n,i)=>{var a=e&&e[Math.floor(i*t)];return Bj(Bj({},n),{},a?{x:pe(a.x,n.x,r),y:pe(a.y,n.y,r)}:{x:pe(n.cx,n.x,r),y:pe(n.cy,n.y,r)})};function Yj(e){var{props:r,previousPointsRef:n,previousBaseLinePointsRef:i}=e,{points:a,baseLinePoints:o,isAnimationActive:l,animationBegin:c,animationDuration:u,animationEasing:s,onAnimationEnd:f,onAnimationStart:d}=r,p=n.current,h=i.current,y=p?p.length/a.length:1,v=h?h.length/o.length:1,m=fc(r,"recharts-radar-"),[g,b]=(0,t.useState)(!1),x=!g,w=(0,t.useCallback)((()=>{"function"==typeof f&&f(),b(!1)}),[f]),O=(0,t.useCallback)((()=>{"function"==typeof d&&d(),b(!0)}),[d]);return t.createElement(Hj,{showLabels:x,points:a},t.createElement(sc,{animationId:m,begin:c,duration:u,isActive:l,easing:s,key:"radar-".concat(m),onAnimationEnd:w,onAnimationStart:O},(e=>{var l=1===e?a:a.map(qj(p,y,e)),c=1===e?o:null==o?void 0:o.map(qj(h,v,e));return e>0&&(n.current=l,i.current=c),t.createElement($j,{points:l,baseLinePoints:c,props:r})})),t.createElement(Lw,{label:r.label}),r.children)}function Gj(e){var r=(0,t.useRef)(void 0),n=(0,t.useRef)(void 0);return t.createElement(Yj,{props:e,previousPointsRef:r,previousBaseLinePointsRef:n})}var Zj={activeDot:!0,angleAxisId:0,animationBegin:0,animationDuration:1500,animationEasing:"ease",dot:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",radiusAxisId:0,zIndex:Wh.area};function Jj(e){var{hide:r,className:i,points:a}=e;if(r)return null;var o=n("recharts-radar",i);return t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:o},t.createElement(Gj,e)),t.createElement(Pj,{points:a,mainColor:Fj(e.stroke,e.fill),itemDataKey:e.dataKey,activeDot:e.activeDot}))}function Qj(e){var r=Bi(),n=Ze((t=>zj(t,e.radiusAxisId,e.angleAxisId,r,e.id)));return null==(null==n?void 0:n.points)?null:t.createElement(Jj,Lj({},e,{points:null==n?void 0:n.points,baseLinePoints:null==n?void 0:n.baseLinePoints,isRange:null==n?void 0:n.isRange}))}function eA(e){var r=De(e,Zj);return t.createElement(iE,{id:r.id,type:"radar"},(e=>t.createElement(t.Fragment,null,t.createElement(hE,{type:"radar",id:e,data:void 0,dataKey:r.dataKey,hide:r.hide,angleAxisId:r.angleAxisId,radiusAxisId:r.radiusAxisId}),t.createElement(eE,{legendPayload:Uj(r)}),t.createElement(Vj,{dataKey:r.dataKey,stroke:r.stroke,strokeWidth:r.strokeWidth,fill:r.fill,name:r.name,hide:r.hide,tooltipType:r.tooltipType,id:e}),t.createElement(Qj,Lj({},r,{id:e})))))}function tA(){return tA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},tA.apply(null,arguments)}function rA(e){return"string"==typeof e?parseInt(e,10):e}function nA(e){return t.createElement($P,tA({shapeType:"sector"},e))}eA.displayName="Radar";var iA=(e,t,r)=>{var n=null!=r?r:e;if(!ye(n))return fe(n,t,0)},aA=(e,t,r)=>{var n=e.filter(dy),i=e.filter((e=>null==e.stackId)),a=n.reduce(((e,t)=>{var r=e[t.stackId];return null==r&&(r=[]),r.push(t),e[t.stackId]=r,e}),{}),o=Object.entries(a).map((e=>{var n,[i,a]=e,o=a.map((e=>e.dataKey));return{stackId:i,dataKeys:o,barSize:iA(t,r,null===(n=a[0])||void 0===n?void 0:n.barSize)}})),l=i.map((e=>({stackId:void 0,dataKeys:[e.dataKey].filter((e=>null!=e)),barSize:iA(t,r,e.barSize)})));return[...o,...l]};function oA(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function lA(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?oA(Object(r),!0).forEach((function(t){cA(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oA(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function cA(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var uA=(e,t,r,n,i,a,o)=>{var l=ye(o)?t:o,c=function(e,t,r,n,i){var a,o=n.length;if(!(o<1)){var l,c=fe(e,r,0,!0),u=[];if(ri(null===(a=n[0])||void 0===a?void 0:a.barSize)){var s=!1,f=r/o,d=n.reduce(((e,t)=>e+(t.barSize||0)),0);(d+=(o-1)*c)>=r&&(d-=(o-1)*c,c=0),d>=r&&f>0&&(s=!0,d=o*(f*=.9));var p={offset:((r-d)/2|0)-c,size:0};l=n.reduce(((e,t)=>{var r,n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p.offset+p.size+c,size:s?f:null!==(r=t.barSize)&&void 0!==r?r:0}},i=[...e,n];return p=n.position,i}),u)}else{var h=fe(t,r,0,!0);r-2*h-(o-1)*c<=0&&(c=0);var y=(r-2*h-(o-1)*c)/o;y>1&&(y>>=0);var v=ri(i)?Math.min(y,i):y;l=n.reduce(((e,t,r)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:h+(y+c)*r+(y-v)/2,size:v}}]),u)}return l}}(r,n,i!==a?i:a,e,l);return i!==a&&null!=c&&(c=c.map((e=>lA(lA({},e),{},{position:lA(lA({},e.position),{},{offset:e.position.offset-i/2})})))),c},sA=(e,t)=>{var r=sy(t);if(e&&null!=r&&null!=t){var{stackId:n}=t;if(null!=n){var i=e[n];if(i){var{stackedData:a}=i;if(a)return a.find((e=>e.key===r))}}}},fA=(e,t)=>{if(null!=e&&null!=t){var r=e.find((e=>e.stackId===t.stackId&&null!=t.dataKey&&e.dataKeys.includes(t.dataKey)));if(null!=r)return r.position}};function dA(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function pA(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?dA(Object(r),!0).forEach((function(t){hA(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):dA(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function hA(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var yA=it([(e,t)=>Jh(e,t),(e,t)=>sO(e,"radiusAxis",t)],((e,t)=>{if(null!=e&&null!=t)return pA(pA({},e),{},{scale:t})})),vA=(e,t)=>hO(e,"radiusAxis",t,!1),mA=it([(e,t,r)=>Zh(e,r),(e,t,r)=>sO(e,"angleAxis",r)],((e,t)=>{if(null!=e&&null!=t)return pA(pA({},e),{},{scale:t})})),gA=(e,t,r)=>dO(e,"angleAxis",r,!1),bA=it([Yw,(e,t,r,n)=>n],((e,t)=>{if(e.some((e=>"radialBar"===e.type&&t.dataKey===e.dataKey&&t.stackId===e.stackId)))return t})),xA=it([va,yA,vA,mA,gA],((e,t,r,n,i)=>ci(e,"radiusAxis")?wi(t,r,!1):wi(n,i,!1))),wA=it([mA,yA,va],((e,t,r)=>{var n="radial"===r?e:t;if(null!=n&&null!=n.scale)return mi({numericAxis:n})})),OA=(e,t,r,n,i)=>n.maxBarSize,PA=e=>"radialBar"===e.type,EA=it([va,Yw,(e,t,r,n,i)=>r,(e,t,r,n,i)=>t],((e,t,r,n)=>t.filter((t=>"centric"===e?t.angleAxisId===r:t.radiusAxisId===n)).filter((e=>!1===e.hide)).filter(PA))),jA=it([EA,Nh,()=>{}],aA),AA=it([va,Th,mA,gA,yA,vA,OA],((e,t,r,n,i,a,o)=>{var l,c,u,s,f=ye(o)?t:o;return"centric"===e?null!==(u=null!==(s=wi(r,n,!0))&&void 0!==s?s:f)&&void 0!==u?u:0:null!==(l=null!==(c=wi(i,a,!0))&&void 0!==c?c:f)&&void 0!==l?l:0})),SA=it([jA,Th,Dh,Ch,AA,xA,OA],uA),kA=it([SA,bA],fA),IA=it([Zw],(e=>e.filter(PA).filter(dy))),MA=it([IA,mh,Qy],fy),TA=it([MA,IA,_h,zh],rv),DA=it([(e,t,r)=>"centric"===va(e)?TA(e,"radiusAxis",t):TA(e,"angleAxis",r),bA],sA),CA=it([mA,gA,yA,vA,vh,bA,xA,va,wA,ly,(e,t,r,n,i)=>i,kA,DA],((e,t,r,n,i,a,o,l,c,u,s,f,d)=>{var{chartData:p,dataStartIndex:h,dataEndIndex:y}=i;if(null==a||null==r||null==e||null==p||null==o||null==f||"centric"!==l&&"radial"!==l||null==n||null==u)return[];var{dataKey:v,minPointSize:m}=a,{cx:g,cy:b,startAngle:x,endAngle:w}=u;return function(e){var{displayedData:t,stackedData:r,dataStartIndex:n,stackedDomain:i,dataKey:a,baseValue:o,layout:l,radiusAxis:c,radiusAxisTicks:u,bandSize:s,pos:f,angleAxis:d,minPointSize:p,cx:h,cy:y,angleAxisTicks:v,cells:m,startAngle:g,endAngle:b}=e;if(null==v||null==u)return VA;return(null!=t?t:[]).map(((e,t)=>{var x,w,O,P,E,j,A,S;if(r?x=fi(r[n+t],i):(x=li(e,a),Array.isArray(x)||(x=[o,x])),"radial"===l){if(P=null!==(A=d.scale.map(x[0]))&&void 0!==A?A:g,E=null!==(S=d.scale.map(x[1]))&&void 0!==S?S:b,null!=(w=vi({axis:c,ticks:u,bandSize:s,offset:f.offset,entry:e,index:t}))&&null!=E&&null!=P){O=w+f.size;var k=E-P;if(Math.abs(p)>0&&Math.abs(k)<Math.abs(p))E+=ie(k||p)*(Math.abs(p)-Math.abs(k));j={background:{cx:h,cy:y,innerRadius:w,outerRadius:O,startAngle:g,endAngle:b}}}}else if(w=c.scale.map(x[0]),O=c.scale.map(x[1]),P=vi({axis:d,ticks:v,bandSize:s,offset:f.offset,entry:e,index:t}),null!=w&&null!=O&&null!=P){E=P+f.size;var I=O-w;if(Math.abs(p)>0&&Math.abs(I)<Math.abs(p))O+=ie(I||p)*(Math.abs(p)-Math.abs(I))}return WA(WA(WA({},e),j),{},{payload:e,value:r?x:x[1],cx:h,cy:y,innerRadius:w,outerRadius:O,startAngle:P,endAngle:E},m&&m[t]&&m[t].props)}))}({angleAxis:e,angleAxisTicks:t,bandSize:o,baseValue:c,cells:s,cx:g,cy:b,dataKey:v,dataStartIndex:h,displayedData:p.slice(h,y+1),endAngle:w,layout:l,minPointSize:m,pos:f,radiusAxis:r,radiusAxisTicks:n,stackedData:d,stackedDomain:d?("centric"===l?r:e).scale.domain():null,startAngle:x})})),NA=it([mh,(e,t)=>t],((e,t)=>{var{chartData:r,dataStartIndex:n,dataEndIndex:i}=e;if(null==r)return[];var a=r.slice(n,i+1);return 0===a.length?[]:a.map((e=>({type:t,value:e.name,color:e.fill,payload:e})))}));function _A(e,t){return e&&"object"==typeof e&&"zIndex"in e&&"number"==typeof e.zIndex&&ri(e.zIndex)?e.zIndex:t}var zA=["shape","activeShape","cornerRadius","id"],RA=["onMouseEnter","onClick","onMouseLeave"],LA=["value","background"];function KA(){return KA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},KA.apply(null,arguments)}function BA(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function WA(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?BA(Object(r),!0).forEach((function(t){FA(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):BA(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function FA(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UA(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var VA=[];function XA(e){var{showLabels:r,sectors:n,children:i}=e,a=n.map((e=>({value:e.value,payload:e.payload,parentViewBox:void 0,clockWise:!1,viewBox:{cx:e.cx,cy:e.cy,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clockWise:!1},fill:e.fill})));return t.createElement(zw,{value:r?a:void 0},i)}function HA(e){var{sectors:r,allOtherRadialBarProps:n,showLabels:i}=e,{shape:a,activeShape:o,cornerRadius:l,id:c}=n,u=UA(n,zA),s=f(u),d=Ze(Wg),{onMouseEnter:p,onClick:h,onMouseLeave:y}=n,v=UA(n,RA),m=YP(p,n.dataKey,c),g=GP(y),b=ZP(h,n.dataKey,c);return null==r?null:t.createElement(XA,{showLabels:i,sectors:r},r.map(((e,r)=>{var n=o&&d===String(r),i=m(e,r),c=g(e,r),f=b(e,r),p=WA(WA(WA(WA({},s),{},{cornerRadius:rA(l)},e),Ie(v,e,r)),{},{onMouseEnter:i,onMouseLeave:c,onClick:f,className:"recharts-radial-bar-sector ".concat(e.className),forceCornerRadius:u.forceCornerRadius,cornerIsExternal:u.cornerIsExternal,isActive:n,option:n?o:a});return n?t.createElement(Cb,{zIndex:Wh.activeBar,key:"sector-".concat(e.cx,"-").concat(e.cy,"-").concat(e.innerRadius,"-").concat(e.outerRadius,"-").concat(e.startAngle,"-").concat(e.endAngle,"-").concat(r)},t.createElement(nA,p)):t.createElement(nA,KA({key:"sector-".concat(e.cx,"-").concat(e.cy,"-").concat(e.innerRadius,"-").concat(e.outerRadius,"-").concat(e.startAngle,"-").concat(e.endAngle,"-").concat(r)},p))})),t.createElement(Lw,{label:n.label}),n.children)}function $A(e){var{props:r,previousSectorsRef:n}=e,{sectors:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:c,onAnimationEnd:u,onAnimationStart:s}=r,f=fc(r,"recharts-radialbar-"),d=n.current,[p,h]=(0,t.useState)(!1),y=(0,t.useCallback)((()=>{"function"==typeof u&&u(),h(!1)}),[u]),v=(0,t.useCallback)((()=>{"function"==typeof s&&s(),h(!0)}),[s]);return t.createElement(sc,{animationId:f,begin:o,duration:l,isActive:a,easing:c,onAnimationStart:v,onAnimationEnd:y,key:f},(e=>{var a=1===e?i:(null!=i?i:VA).map(((t,r)=>{var n=d&&d[r];if(n)return WA(WA({},t),{},{startAngle:pe(n.startAngle,t.startAngle,e),endAngle:pe(n.endAngle,t.endAngle,e)});var{endAngle:i,startAngle:a}=t;return WA(WA({},t),{},{endAngle:pe(a,i,e)})}));return e>0&&(n.current=null!=a?a:null),t.createElement(b,null,t.createElement(HA,{sectors:null!=a?a:VA,allOtherRadialBarProps:r,showLabels:!p}))}))}function qA(e){var r=(0,t.useRef)(null);return t.createElement($A,{props:e,previousSectorsRef:r})}function YA(e){var r=Ze((t=>NA(t,e.legendType)));return t.createElement(eE,{legendPayload:null!=r?r:[]})}var GA=t.memo((e=>{var{dataKey:r,sectors:n,stroke:i,strokeWidth:a,name:o,hide:l,fill:c,tooltipType:u,id:s}=e,f={dataDefinedOnItem:n,getPosition:ge,settings:{graphicalItemId:s,stroke:i,strokeWidth:a,fill:c,nameKey:void 0,dataKey:r,name:Pi(o,r),hide:l,type:u,color:c,unit:""}};return t.createElement(JP,{tooltipEntrySettings:f})}));class ZA extends t.PureComponent{renderBackground(e){if(null==e)return null;var{cornerRadius:r}=this.props,i=d(this.props.background);return t.createElement(Cb,{zIndex:_A(this.props.background,Wh.barBackground)},e.map(((e,a)=>{var{value:o,background:l}=e,c=UA(e,LA);if(!l)return null;var u=WA(WA(WA(WA(WA({cornerRadius:rA(r)},c),{},{fill:"#eee"},l),i),Ie(this.props,e,a)),{},{index:a,className:n("recharts-radial-bar-background-sector",String(null==i?void 0:i.className)),option:l,isActive:!1});return t.createElement(nA,KA({key:"background-".concat(c.cx,"-").concat(c.cy,"-").concat(c.innerRadius,"-").concat(c.outerRadius,"-").concat(c.startAngle,"-").concat(c.endAngle,"-").concat(a)},u))})))}render(){var{hide:e,sectors:r,className:i,background:a}=this.props;if(e)return null;var o=n("recharts-area",i);return t.createElement(Cb,{zIndex:this.props.zIndex},t.createElement(b,{className:o},a&&t.createElement(b,{className:"recharts-radial-bar-background"},this.renderBackground(r)),t.createElement(b,{className:"recharts-radial-bar-sectors"},t.createElement(qA,this.props))))}}function JA(e){var r,n=jP(e.children,yx),i={data:void 0,hide:!1,id:e.id,dataKey:e.dataKey,minPointSize:e.minPointSize,stackId:hi(e.stackId),maxBarSize:e.maxBarSize,barSize:e.barSize,type:"radialBar",angleAxisId:e.angleAxisId,radiusAxisId:e.radiusAxisId},a=null!==(r=Ze((t=>CA(t,e.radiusAxisId,e.angleAxisId,i,n))))&&void 0!==r?r:VA;return t.createElement(t.Fragment,null,t.createElement(GA,{dataKey:e.dataKey,sectors:a,stroke:e.stroke,strokeWidth:e.strokeWidth,name:e.name,hide:e.hide,fill:e.fill,tooltipType:e.tooltipType,id:e.id}),t.createElement(ZA,KA({},e,{sectors:a})))}var QA={angleAxisId:0,animationBegin:0,animationDuration:1500,animationEasing:"ease",background:!1,cornerIsExternal:!1,cornerRadius:0,forceCornerRadius:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:0,radiusAxisId:0,zIndex:Wh.bar};function eS(e){var r=De(e,QA);return t.createElement(iE,{id:r.id,type:"radialBar"},(e=>{var n,i,a;return t.createElement(t.Fragment,null,t.createElement(hE,{type:"radialBar",id:e,data:void 0,dataKey:r.dataKey,hide:null!==(n=r.hide)&&void 0!==n?n:QA.hide,angleAxisId:null!==(i=r.angleAxisId)&&void 0!==i?i:QA.angleAxisId,radiusAxisId:null!==(a=r.radiusAxisId)&&void 0!==a?a:QA.radiusAxisId,stackId:hi(r.stackId),barSize:r.barSize,minPointSize:r.minPointSize,maxBarSize:r.maxBarSize}),t.createElement(YA,r),t.createElement(JA,KA({},r,{id:e})))}))}function tS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function rS(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?tS(Object(r),!0).forEach((function(t){nS(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tS(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function nS(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}eS.displayName="RadialBar";var iS=["Webkit","Moz","O","ms"],aS=e=>{var{chartData:r}=e,n=$e(),i=Bi();return(0,t.useEffect)((()=>i?()=>{}:(n(Jb(r)),()=>{n(Jb(void 0))})),[r,n,i]),null},oS=e=>{var{computedData:r}=e,n=$e();return(0,t.useEffect)((()=>(n(ex(r)),()=>{n(Jb(void 0))})),[r,n]),null},lS=e=>e.chartData.chartData,cS=()=>Ze(lS),uS=e=>{var{dataStartIndex:t,dataEndIndex:r}=e.chartData;return{startIndex:t,endIndex:r}},sS=()=>Ze(uS),fS=(0,t.createContext)((()=>{})),dS={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},pS=en({name:"brush",initialState:dS,reducers:{setBrushSettings:(e,t)=>null==t.payload?dS:t.payload}}),{setBrushSettings:hS}=pS.actions,yS=pS.reducer;function vS(){return vS=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},vS.apply(null,arguments)}function mS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function gS(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mS(Object(r),!0).forEach((function(t){bS(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mS(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function bS(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xS(e){var{x:r,y:n,width:i,height:a,stroke:o}=e,l=Math.floor(n+a/2)-1;return t.createElement(t.Fragment,null,t.createElement("rect",{x:r,y:n,width:i,height:a,fill:o,stroke:"none"}),t.createElement("line",{x1:r+1,y1:l,x2:r+i-1,y2:l,fill:"none",stroke:"#fff"}),t.createElement("line",{x1:r+1,y1:l+2,x2:r+i-1,y2:l+2,fill:"none",stroke:"#fff"}))}function wS(e){var{travellerProps:r,travellerType:n}=e;return t.isValidElement(n)?t.cloneElement(n,r):"function"==typeof n?n(r):t.createElement(xS,r)}function OS(e){if(me(e)&&"object"==typeof e&&"name"in e&&"string"==typeof e.name)return e.name}function PS(e){var{otherProps:r,travellerX:n,id:i,onMouseEnter:a,onMouseLeave:o,onMouseDown:l,onTouchStart:c,onTravellerMoveKeyboard:u,onFocus:s,onBlur:d}=e,{y:p,x:h,travellerWidth:y,height:v,traveller:m,ariaLabel:g,data:x,startIndex:w,endIndex:O}=r,P=Math.max(n,h),E=gS(gS({},f(r)),{},{x:P,y:p,width:y,height:v}),j=g||function(e,t,r){var n=OS(e[t]),i=OS(e[r]);return"Min value: ".concat(n,", Max value: ").concat(i)}(x,w,O);return t.createElement(b,{tabIndex:0,role:"slider","aria-label":j,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:a,onMouseLeave:o,onMouseDown:l,onTouchStart:c,onKeyDown:e=>{["ArrowLeft","ArrowRight"].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),u("ArrowRight"===e.key?1:-1,i))},onFocus:s,onBlur:d,style:{cursor:"col-resize"}},t.createElement(wS,{travellerType:m,travellerProps:E}))}function ES(e){var{index:t,data:r,tickFormatter:n,dataKey:i}=e,a=li(r[t],i,t);return"function"==typeof n?n(a,t):a}function jS(e,t){for(var r=0,n=e.length-1;n-r>1;){var i=Math.floor((r+n)/2),a=e[i];null!=a&&a>t?n=i:r=i}var o=e[n];return null!=o&&t>=o?n:r}function AS(e){var{startX:t,endX:r,scaleValues:n,gap:i,data:a}=e,o=a.length-1,l=Math.min(t,r),c=Math.max(t,r),u=jS(n,l),s=jS(n,c);return{startIndex:u-u%i,endIndex:s===o?o:s-s%i}}function SS(e){var{x:r,y:n,width:i,height:a,fill:o,stroke:l}=e;return t.createElement("rect",{stroke:l,fill:o,x:r,y:n,width:i,height:a})}function kS(e){var{startIndex:r,endIndex:n,y:i,height:a,travellerWidth:o,stroke:l,tickFormatter:c,dataKey:u,data:s,startX:f,endX:d}=e,p={pointerEvents:"none",fill:l};return t.createElement(b,{className:"recharts-brush-texts"},t.createElement(Jx,vS({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,d)-5,y:i+a/2},p),ES({index:r,tickFormatter:c,dataKey:u,data:s})),t.createElement(Jx,vS({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,d)+o+5,y:i+a/2},p),ES({index:n,tickFormatter:c,dataKey:u,data:s})))}function IS(e){var{y:r,height:n,stroke:i,travellerWidth:a,startX:o,endX:l,onMouseEnter:c,onMouseLeave:u,onMouseDown:s,onTouchStart:f}=e,d=Math.min(o,l)+a,p=Math.max(Math.abs(l-o)-a,0);return t.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:c,onMouseLeave:u,onMouseDown:s,onTouchStart:f,style:{cursor:"move"},stroke:"none",fill:i,fillOpacity:.2,x:d,y:r,width:p,height:n})}function MS(e){var{x:r,y:n,width:i,height:a,data:o,children:l,padding:c}=e;if(!(1===t.Children.count(l)))return null;var u=t.Children.only(l);return u?t.cloneElement(u,{x:r,y:n,width:i,height:a,margin:c,compact:!0,data:o}):null}var TS=e=>e.changedTouches&&!!e.changedTouches.length;class DS extends t.PureComponent{constructor(e){super(e),bS(this,"handleDrag",(e=>{this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.state.isTravellerMoving?this.handleTravellerMove(e):this.state.isSlideMoving&&this.handleSlideDrag(e)})),bS(this,"handleTouchMove",(e=>{var t,r=null===(t=e.changedTouches)||void 0===t?void 0:t[0];null!=r&&this.handleDrag(r)})),bS(this,"handleDragEnd",(()=>{this.setState({isTravellerMoving:!1,isSlideMoving:!1},(()=>{var{endIndex:e,onDragEnd:t,startIndex:r}=this.props;null==t||t({endIndex:e,startIndex:r})})),this.detachDragEndListener()})),bS(this,"handleLeaveWrapper",(()=>{(this.state.isTravellerMoving||this.state.isSlideMoving)&&(this.leaveTimer=window.setTimeout(this.handleDragEnd,this.props.leaveTimeOut))})),bS(this,"handleEnterSlideOrTraveller",(()=>{this.setState({isTextActive:!0})})),bS(this,"handleLeaveSlideOrTraveller",(()=>{this.setState({isTextActive:!1})})),bS(this,"handleSlideDragStart",(e=>{var t=TS(e)?e.changedTouches[0]:e;null!=t&&(this.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:t.pageX}),this.attachDragEndListener())})),bS(this,"handleTravellerMoveKeyboard",((e,t)=>{var{data:r,gap:n,startIndex:i,endIndex:a}=this.props,{scaleValues:o,startX:l,endX:c}=this.state;if(null!=o){var u=-1;if("startX"===t?u=i:"endX"===t&&(u=a),!(u<0||u>=r.length)){var s=u+e;if(!(-1===s||s>=o.length)){var f=o[s];null!=f&&("startX"===t&&f>=c||"endX"===t&&f<=l||this.setState({[t]:f},(()=>{this.props.onChange(AS({startX:this.state.startX,endX:this.state.endX,data:r,gap:n,scaleValues:o}))})))}}}})),this.travellerDragStartHandlers={startX:this.handleTravellerDragStart.bind(this,"startX"),endX:this.handleTravellerDragStart.bind(this,"endX")},this.state={brushMoveStartX:0,movingTravellerId:void 0,endX:0,startX:0,slideMoveStartX:0}}static getDerivedStateFromProps(e,t){var{data:r,width:n,x:i,travellerWidth:a,startIndex:o,endIndex:l,startIndexControlledFromProps:c,endIndexControlledFromProps:u}=e;if(r!==t.prevData)return gS({prevData:r,prevTravellerWidth:a,prevX:i,prevWidth:n},r&&r.length?(e=>{var{data:t,startIndex:r,endIndex:n,x:i,width:a,travellerWidth:o}=e;if(!t||!t.length)return{};var l=t.length,c=gu().domain(ou()(0,l)).range([i,i+a-o]),u=c.domain().map((e=>c(e))).filter(me);return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:c(r),endX:c(n),scale:c,scaleValues:u}})({data:r,width:n,x:i,travellerWidth:a,startIndex:o,endIndex:l}):{scale:void 0,scaleValues:void 0});var s=t.scale;if(s&&(n!==t.prevWidth||i!==t.prevX||a!==t.prevTravellerWidth)){s.range([i,i+n-a]);var f=s.domain().map((e=>s(e))).filter((e=>null!=e));return{prevData:r,prevTravellerWidth:a,prevX:i,prevWidth:n,startX:s(e.startIndex),endX:s(e.endIndex),scaleValues:f}}if(t.scale&&!t.isSlideMoving&&!t.isTravellerMoving&&!t.isTravellerFocused&&!t.isTextActive){if(null!=c&&t.prevStartIndexControlledFromProps!==c)return{startX:t.scale(c),prevStartIndexControlledFromProps:c};if(null!=u&&t.prevEndIndexControlledFromProps!==u)return{endX:t.scale(u),prevEndIndexControlledFromProps:u}}return null}componentWillUnmount(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}attachDragEndListener(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}detachDragEndListener(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}handleSlideDrag(e){var{slideMoveStartX:t,startX:r,endX:n,scaleValues:i}=this.state;if(null!=i){var{x:a,width:o,travellerWidth:l,startIndex:c,endIndex:u,onChange:s,data:f,gap:d}=this.props,p=e.pageX-t;p>0?p=Math.min(p,a+o-l-n,a+o-l-r):p<0&&(p=Math.max(p,a-r,a-n));var h=AS({startX:r+p,endX:n+p,data:f,gap:d,scaleValues:i});h.startIndex===c&&h.endIndex===u||!s||s(h),this.setState({startX:r+p,endX:n+p,slideMoveStartX:e.pageX})}}handleTravellerDragStart(e,t){var r=TS(t)?t.changedTouches[0]:t;null!=r&&(this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:e,brushMoveStartX:r.pageX}),this.attachDragEndListener())}handleTravellerMove(e){var{brushMoveStartX:t,movingTravellerId:r,endX:n,startX:i,scaleValues:a}=this.state;if(null!=r&&null!=a){var o=this.state[r],{x:l,width:c,travellerWidth:u,onChange:s,gap:f,data:d}=this.props,p={startX:this.state.startX,endX:this.state.endX,data:d,gap:f,scaleValues:a},h=e.pageX-t;h>0?h=Math.min(h,l+c-u-o):h<0&&(h=Math.max(h,l-o)),p[r]=o+h;var y=AS(p),{startIndex:v,endIndex:m}=y;this.setState({[r]:o+h,brushMoveStartX:e.pageX},(()=>{var e;s&&(e=d.length-1,("startX"===r&&(n>i?v%f==0:m%f==0)||n<i&&m===e||"endX"===r&&(n>i?m%f==0:v%f==0)||n>i&&m===e)&&s(y))}))}}render(){var{data:e,className:r,children:i,x:a,y:o,dy:l,width:c,height:u,alwaysShowText:s,fill:f,stroke:d,startIndex:p,endIndex:h,travellerWidth:y,tickFormatter:v,dataKey:m,padding:g}=this.props,{startX:x,endX:w,isTextActive:O,isSlideMoving:P,isTravellerMoving:E,isTravellerFocused:j}=this.state;if(!e||!e.length||!le(a)||!le(o)||!le(c)||!le(u)||c<=0||u<=0)return null;var A=n("recharts-brush",r),S=((e,t)=>{if(e){var r=e.replace(/(\w)/,(e=>e.toUpperCase())),n=iS.reduce(((e,n)=>rS(rS({},e),{},{[n+r]:t})),{});return n[e]=t,n}})("userSelect","none"),k=o+(null!=l?l:0);return t.createElement(b,{className:A,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:S},t.createElement(SS,{x:a,y:k,width:c,height:u,fill:f,stroke:d}),t.createElement(Wi,null,t.createElement(MS,{x:a,y:k,width:c,height:u,data:e,padding:g},i)),t.createElement(IS,{y:k,height:u,stroke:d,travellerWidth:y,startX:x,endX:w,onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart}),t.createElement(PS,{travellerX:x,id:"startX",otherProps:gS(gS({},this.props),{},{y:k}),onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers.startX,onTouchStart:this.travellerDragStartHandlers.startX,onTravellerMoveKeyboard:this.handleTravellerMoveKeyboard,onFocus:()=>{this.setState({isTravellerFocused:!0})},onBlur:()=>{this.setState({isTravellerFocused:!1})}}),t.createElement(PS,{travellerX:w,id:"endX",otherProps:gS(gS({},this.props),{},{y:k}),onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers.endX,onTouchStart:this.travellerDragStartHandlers.endX,onTravellerMoveKeyboard:this.handleTravellerMoveKeyboard,onFocus:()=>{this.setState({isTravellerFocused:!0})},onBlur:()=>{this.setState({isTravellerFocused:!1})}}),(O||P||E||j||s)&&t.createElement(kS,{startIndex:p,endIndex:h,y:k,height:u,travellerWidth:y,stroke:d,tickFormatter:v,dataKey:m,data:e,startX:x,endX:w}))}}function CS(e){var r,n,i,a,o=$e(),l=cS(),c=sS(),u=(0,t.useContext)(fS),s=e.onChange,{startIndex:f,endIndex:d}=e;(0,t.useEffect)((()=>{o(Qb({startIndex:f,endIndex:d}))}),[o,d,f]),r=Ze(Lh),n=Ze(Bh),i=Ze((e=>e.chartData.dataStartIndex)),a=Ze((e=>e.chartData.dataEndIndex)),(0,t.useEffect)((()=>{if(null!=r&&null!=i&&null!=a&&null!=n){var e={startIndex:i,endIndex:a};Ub.emit(Xb,r,e,n)}}),[a,i,n,r]);var p=(0,t.useCallback)((e=>{if(null!=c){var{startIndex:t,endIndex:r}=c;e.startIndex===t&&e.endIndex===r||(null==u||u(e),null==s||s(e),o(Qb(e)))}}),[s,u,o,c]),h=Ze(Ui);if(null==h||null==c||null==l||!l.length)return null;var{startIndex:y,endIndex:v}=c,{x:m,y:g,width:b}=h,x={data:l,x:m,y:g,width:b,startIndex:y,endIndex:v,onChange:p};return t.createElement(DS,vS({},e,x,{startIndexControlledFromProps:null!=f?f:void 0,endIndexControlledFromProps:null!=d?d:void 0}))}function NS(e){var r=$e();return(0,t.useEffect)((()=>(r(hS(e)),()=>{r(hS(null))})),[r,e]),null}var _S={height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1};function zS(e){var r=De(e,_S);return t.createElement(t.Fragment,null,t.createElement(NS,{height:r.height,x:r.x,y:r.y,width:r.width,padding:r.padding}),t.createElement(CS,r))}zS.displayName="Brush";var RS=(e,t)=>{var{x:r,y:n}=e,{x:i,y:a}=t;return{x:Math.min(r,i),y:Math.min(n,a),width:Math.abs(i-r),height:Math.abs(a-n)}},LS=e=>{var{x1:t,y1:r,x2:n,y2:i}=e;return RS({x:t,y:r},{x:n,y:i})};var KS=en({name:"referenceElements",initialState:{dots:[],areas:[],lines:[]},reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=Xt(e).dots.findIndex((e=>e===t.payload));-1!==r&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=Xt(e).areas.findIndex((e=>e===t.payload));-1!==r&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=Xt(e).lines.findIndex((e=>e===t.payload));-1!==r&&e.lines.splice(r,1)}}}),{addDot:BS,removeDot:WS,addArea:FS,removeArea:US,addLine:VS,removeLine:XS}=KS.actions,HS=KS.reducer,$S=(0,t.createContext)(void 0),qS=e=>{var{children:r}=e,[n]=(0,t.useState)("".concat(se("recharts"),"-clip")),i=pj();if(null==i)return null;var{x:a,y:o,width:l,height:c}=i;return t.createElement($S.Provider,{value:n},t.createElement("defs",null,t.createElement("clipPath",{id:n},t.createElement("rect",{x:a,y:o,height:c,width:l}))),r)},YS=()=>(0,t.useContext)($S);class GS{constructor(e){var{x:t,y:r}=e;this.xAxisScale=t,this.yAxisScale=r}map(e,t){var r,n,{position:i}=t;return{x:null!==(r=this.xAxisScale.map(e.x,{position:i}))&&void 0!==r?r:0,y:null!==(n=this.yAxisScale.map(e.y,{position:i}))&&void 0!==n?n:0}}mapWithFallback(e,t){var r,n,i,a,{position:o,fallback:l}=t;return i="rangeMin"===l?this.yAxisScale.rangeMin():"rangeMax"===l?this.yAxisScale.rangeMax():0,a="rangeMin"===l?this.xAxisScale.rangeMin():"rangeMax"===l?this.xAxisScale.rangeMax():0,{x:null!==(r=this.xAxisScale.map(e.x,{position:o}))&&void 0!==r?r:a,y:null!==(n=this.yAxisScale.map(e.y,{position:o}))&&void 0!==n?n:i}}isInRange(e){var{x:t,y:r}=e,n=null==t||this.xAxisScale.isInRange(t),i=null==r||this.yAxisScale.isInRange(r);return n&&i}}function ZS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function JS(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ZS(Object(r),!0).forEach((function(t){QS(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ZS(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function QS(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ek(){return ek=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ek.apply(null,arguments)}var tk=(e,r)=>{var n;if(t.isValidElement(e))n=t.cloneElement(e,r);else if("function"==typeof e)n=e(r);else{if(!(ri(r.x1)&&ri(r.y1)&&ri(r.x2)&&ri(r.y2)))return null;n=t.createElement("line",ek({},r,{className:"recharts-reference-line-line"}))}return n},rk=(e,t,r,n,i,a,o)=>{var{x:l,y:c,segment:u,ifOverflow:s}=o,f=ce(l);return ce(c)?((e,t,r,n,i,a)=>{var{x:o,width:l}=a,c=i.map(e,{position:r});if(!ri(c))return null;if("discard"===t&&!i.isInRange(c))return null;var u=[{x:o+l,y:c},{x:o,y:c}];return"left"===n?u.reverse():u})(c,s,n,a,t,r):f?((e,t,r,n,i,a)=>{var{y:o,height:l}=a,c=i.map(e,{position:r});if(!ri(c))return null;if("discard"===t&&!i.isInRange(c))return null;var u=[{x:c,y:o+l},{x:c,y:o}];return"top"===n?u.reverse():u})(l,s,n,i,e,r):null!=u&&2===u.length?((e,t,r,n)=>{var i=[n.mapWithFallback(e[0],{position:r,fallback:"rangeMin"}),n.mapWithFallback(e[1],{position:r,fallback:"rangeMax"})];return"discard"===t&&i.some((e=>!n.isInRange(e)))?null:i})(u,s,n,new GS({x:e,y:t})):null};function nk(e){var r=$e();return(0,t.useEffect)((()=>(r(VS(e)),()=>{r(XS(e))}))),null}function ik(e){var{xAxisId:r,yAxisId:i,shape:a,className:o,ifOverflow:l}=e,c=Bi(),u=YS(),s=Ze((e=>Ay(e,r))),f=Ze((e=>Iy(e,i))),d=Ze((e=>Gv(e,"xAxis",r,c))),h=Ze((e=>Gv(e,"yAxis",i,c))),y=sa();if(!u||!y||null==s||null==f||null==d||null==h)return null;var v=rk(d,h,y,e.position,s.orientation,f.orientation,e);if(!v)return null;var m=v[0],g=v[1];if(null==m||null==g)return null;var{x,y:w}=m,{x:O,y:P}=g,E=JS(JS({clipPath:"hidden"===l?"url(#".concat(u,")"):void 0},p(e)),{},{x1:x,y1:w,x2:O,y2:P}),j=LS({x1:x,y1:w,x2:O,y2:P});return t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:n("recharts-reference-line",o)},tk(a,E),t.createElement(fw,ek({},j,{lowerWidth:j.width,upperWidth:j.width}),t.createElement(Ew,{label:e.label}),e.children)))}var ak={ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",label:!1,stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle",zIndex:Wh.line};function ok(e){var r=De(e,ak);return t.createElement(t.Fragment,null,t.createElement(nk,{yAxisId:r.yAxisId,xAxisId:r.xAxisId,ifOverflow:r.ifOverflow,x:r.x,y:r.y,segment:r.segment}),t.createElement(ik,r))}function lk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ck(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?lk(Object(r),!0).forEach((function(t){uk(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):lk(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function uk(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sk(){return sk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},sk.apply(null,arguments)}ok.displayName="ReferenceLine";var fk=(e,t,r,n,i)=>{var a=ce(e),o=ce(t),l=Bi(),c=Ze((e=>Gv(e,"xAxis",r,l))),u=Ze((e=>Gv(e,"yAxis",n,l)));if(!a||!o||null==c||null==u)return null;var s=new GS({x:c,y:u}),f=s.map({x:e,y:t},{position:"middle"});return"discard"!==i||s.isInRange(f)?f:null};function dk(e){var r=$e();return(0,t.useEffect)((()=>(r(BS(e)),()=>{r(WS(e))}))),null}var pk=(e,r)=>t.isValidElement(e)?t.cloneElement(e,r):"function"==typeof e?e(r):t.createElement(qw,sk({},r,{cx:r.cx,cy:r.cy,className:"recharts-reference-dot-dot"}));function hk(e){var{x:r,y:i,r:a}=e,o=YS(),l=fk(r,i,e.xAxisId,e.yAxisId,e.ifOverflow);if(!l)return null;var{x:c,y:u}=l,{shape:s,className:f,ifOverflow:d}=e,h=ck(ck({clipPath:"hidden"===d?"url(#".concat(o,")"):void 0},p(e)),{},{cx:null!=c?c:void 0,cy:null!=u?u:void 0});return t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:n("recharts-reference-dot",f)},pk(s,h),t.createElement(fw,{x:c-a,y:u-a,width:2*a,height:2*a,upperWidth:2*a,lowerWidth:2*a},t.createElement(Ew,{label:e.label}),e.children)))}var yk={ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,label:!1,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1,zIndex:Wh.scatter};function vk(e){var r=De(e,yk),{x:n,y:i,r:a,ifOverflow:o,yAxisId:l,xAxisId:c}=r;return t.createElement(t.Fragment,null,t.createElement(dk,{y:i,x:n,r:a,yAxisId:l,xAxisId:c,ifOverflow:o}),t.createElement(hk,r))}function mk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function gk(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mk(Object(r),!0).forEach((function(t){bk(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mk(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function bk(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xk(){return xk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xk.apply(null,arguments)}vk.displayName="ReferenceDot";var wk=(e,t,r,n,i,a,o)=>{var l,c,u,s,{x1:f,x2:d,y1:p,y2:h}=o;if(null==i||null==a)return null;var y=new GS({x:i,y:a}),v={x:e?null!==(l=i.map(f,{position:"start"}))&&void 0!==l?l:null:i.rangeMin(),y:r?null!==(c=a.map(p,{position:"start"}))&&void 0!==c?c:null:a.rangeMin()},m={x:t?null!==(u=i.map(d,{position:"end"}))&&void 0!==u?u:null:i.rangeMax(),y:n?null!==(s=a.map(h,{position:"end"}))&&void 0!==s?s:null:a.rangeMax()};return"discard"!==o.ifOverflow||y.isInRange(v)&&y.isInRange(m)?RS(v,m):null},Ok=(e,r)=>t.isValidElement(e)?t.cloneElement(e,r):"function"==typeof e?e(r):t.createElement(Dc,xk({},r,{className:"recharts-reference-area-rect"}));function Pk(e){var r=$e();return(0,t.useEffect)((()=>(r(FS(e)),()=>{r(US(e))}))),null}function Ek(e){var{x1:r,x2:i,y1:a,y2:o,className:l,shape:c,xAxisId:u,yAxisId:s}=e,f=YS(),d=Bi(),h=Ze((e=>Gv(e,"xAxis",u,d))),y=Ze((e=>Gv(e,"yAxis",s,d)));if(null==h||null==y)return null;var v=ce(r),m=ce(i),g=ce(a),x=ce(o);if(!(v||m||g||x||c))return null;var w=wk(v,m,g,x,h,y,e);if(!w&&!c)return null;var O="hidden"===e.ifOverflow?"url(#".concat(f,")"):void 0;return t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:n("recharts-reference-area",l)},Ok(c,gk(gk({clipPath:O},p(e)),w)),null!=w&&t.createElement(fw,xk({},w,{lowerWidth:w.width,upperWidth:w.width}),t.createElement(Ew,{label:e.label}),e.children)))}var jk={ifOverflow:"discard",xAxisId:0,yAxisId:0,radius:0,fill:"#ccc",label:!1,fillOpacity:.5,stroke:"none",strokeWidth:1,zIndex:Wh.area};function Ak(e){var r=De(e,jk);return t.createElement(t.Fragment,null,t.createElement(Pk,{yAxisId:r.yAxisId,xAxisId:r.xAxisId,ifOverflow:r.ifOverflow,x1:r.x1,x2:r.x2,y1:r.y1,y2:r.y2}),t.createElement(Ek,r))}function Sk(e,t){if(t<1)return[];if(1===t)return e;for(var r=[],n=0;n<e.length;n+=t){var i=e[n];void 0!==i&&r.push(i)}return r}function kk(e,t,r){return function(e){var{width:t,height:r}=e,n=function(e){return(e%180+180)%180}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:0),i=n*Math.PI/180,a=Math.atan(r/t),o=i>a&&i<Math.PI-a?r/Math.sin(i):t/Math.cos(i);return Math.abs(o)}({width:e.width+t.width,height:e.height+t.height},r)}function Ik(e,t,r,n,i){if(e*t<e*n||e*t>e*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function Mk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Tk(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Mk(Object(r),!0).forEach((function(t){Dk(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mk(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Dk(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ck(e,t,r){var n,{tick:i,ticks:a,viewBox:o,minTickGap:l,orientation:c,interval:u,tickFormatter:s,unit:f,angle:d}=e;if(!a||!a.length||!i)return[];if(le(u)||oc.isSsr)return null!==(n=function(e,t){return Sk(e,t+1)}(a,le(u)?u:0))&&void 0!==n?n:[];var p=[],h="top"===c||"bottom"===c?"width":"height",y=f&&"width"===h?jx(f,{fontSize:t,letterSpacing:r}):{width:0,height:0},v=(e,n)=>{var i="function"==typeof s?s(e.value,n):e.value;return"width"===h?kk(jx(i,{fontSize:t,letterSpacing:r}),y,d):jx(i,{fontSize:t,letterSpacing:r})[h]},m=a[0],g=a[1],b=a.length>=2&&null!=m&&null!=g?ie(g.coordinate-m.coordinate):1,x=function(e,t,r){var n="width"===r,{x:i,y:a,width:o,height:l}=e;return 1===t?{start:n?i:a,end:n?i+o:a+l}:{start:n?i+o:a+l,end:n?i:a}}(o,b,h);return"equidistantPreserveStart"===u?function(e,t,r,n,i){for(var a,o=(n||[]).slice(),{start:l,end:c}=t,u=0,s=1,f=l,d=function(){var t=null==n?void 0:n[u];if(void 0===t)return{v:Sk(n,s)};var a,o=u,d=()=>(void 0===a&&(a=r(t,o)),a),p=t.coordinate,h=0===u||Ik(e,p,d,f,c);h||(u=0,f=l,s+=1),h&&(f=p+e*(d()/2+i),u+=s)};s<=o.length;)if(a=d())return a.v;return[]}(b,x,v,a,l):"equidistantPreserveEnd"===u?function(e,t,r,n,i){var a=(n||[]).slice().length;if(0===a)return[];for(var{start:o,end:l}=t,c=1;c<=a;c++){for(var u,s=(a-1)%c,f=o,d=!0,p=function(){var t=n[h];if(null==t)return 0;var a,o=h,c=()=>(void 0===a&&(a=r(t,o)),a),u=t.coordinate,p=h===s||Ik(e,u,c,f,l);if(!p)return d=!1,1;p&&(f=u+e*(c()/2+i))},h=s;h<a&&(0===(u=p())||1!==u);h+=c);if(d){for(var y=[],v=s;v<a;v+=c){var m=n[v];null!=m&&y.push(m)}return y}}return[]}(b,x,v,a,l):(p="preserveStart"===u||"preserveStartEnd"===u?function(e,t,r,n,i,a){var o=(n||[]).slice(),l=o.length,{start:c,end:u}=t;if(a){var s=n[l-1];if(null!=s){var f=r(s,l-1),d=e*(s.coordinate+e*f/2-u);o[l-1]=s=Tk(Tk({},s),{},{tickCoord:d>0?s.coordinate-d*e:s.coordinate}),null!=s.tickCoord&&Ik(e,s.tickCoord,(()=>f),c,u)&&(u=s.tickCoord-e*(f/2+i),o[l-1]=Tk(Tk({},s),{},{isShow:!0}))}}for(var p=a?l-1:l,h=function(t){var n=o[t];if(null==n)return 1;var a,l=n,s=()=>(void 0===a&&(a=r(n,t)),a);if(0===t){var f=e*(l.coordinate-e*s()/2-c);o[t]=l=Tk(Tk({},l),{},{tickCoord:f<0?l.coordinate-f*e:l.coordinate})}else o[t]=l=Tk(Tk({},l),{},{tickCoord:l.coordinate});null!=l.tickCoord&&Ik(e,l.tickCoord,s,c,u)&&(c=l.tickCoord+e*(s()/2+i),o[t]=Tk(Tk({},l),{},{isShow:!0}))},y=0;y<p;y++)h(y);return o}(b,x,v,a,l,"preserveStartEnd"===u):function(e,t,r,n,i){for(var a=(n||[]).slice(),o=a.length,{start:l}=t,{end:c}=t,u=function(t){var n=a[t];if(null==n)return 1;var u,s=n,f=()=>(void 0===u&&(u=r(n,t)),u);if(t===o-1){var d=e*(s.coordinate+e*f()/2-c);a[t]=s=Tk(Tk({},s),{},{tickCoord:d>0?s.coordinate-d*e:s.coordinate})}else a[t]=s=Tk(Tk({},s),{},{tickCoord:s.coordinate});null!=s.tickCoord&&Ik(e,s.tickCoord,f,l,c)&&(c=s.tickCoord-e*(f()/2+i),a[t]=Tk(Tk({},s),{},{isShow:!0}))},s=o-1;s>=0;s--)u(s);return a}(b,x,v,a,l),p.filter((e=>e.isShow)))}Ak.displayName="ReferenceArea";var Nk=["axisLine","width","height","className","hide","ticks","axisType"];function _k(){return _k=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_k.apply(null,arguments)}function zk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Rk(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?zk(Object(r),!0).forEach((function(t){Lk(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zk(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Lk(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Kk={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Wh.axis};function Bk(e){var{x:r,y:i,width:a,height:o,orientation:l,mirror:c,axisLine:u,otherSvgProps:s}=e;if(!u)return null;var d=Rk(Rk(Rk({},s),f(u)),{},{fill:"none"});if("top"===l||"bottom"===l){var p=+("top"===l&&!c||"bottom"===l&&c);d=Rk(Rk({},d),{},{x1:r,y1:i+p*o,x2:r+a,y2:i+p*o})}else{var h=+("left"===l&&!c||"right"===l&&c);d=Rk(Rk({},d),{},{x1:r+h*a,y1:i,x2:r+h*a,y2:i+o})}return t.createElement("line",_k({},d,{className:n("recharts-cartesian-axis-line",ee()(u,"className"))}))}function Wk(e){var r,{option:i,tickProps:a,value:o}=e,l=n(a.className,"recharts-cartesian-axis-tick-value");if(t.isValidElement(i))r=t.cloneElement(i,Rk(Rk({},a),{},{className:l}));else if("function"==typeof i)r=i(Rk(Rk({},a),{},{className:l}));else{var c="recharts-cartesian-axis-tick-value";"boolean"!=typeof i&&(c=n(c,KO(i))),r=t.createElement(Jx,_k({},a,{className:c}),o)}return r}var Fk=(0,t.forwardRef)(((e,r)=>{var{ticks:i=[],tick:a,tickLine:o,stroke:l,tickFormatter:c,unit:u,padding:s,tickTextProps:p,orientation:h,mirror:y,x:v,y:m,width:g,height:x,tickSize:w,tickMargin:O,fontSize:P,letterSpacing:E,getTicksConfig:j,events:A,axisType:S}=e,k=Ck(Rk(Rk({},j),{},{ticks:i}),P,E),I=function(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}(h,y),M=function(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}(h,y),T=f(j),D=d(a),C={};"object"==typeof o&&(C=o);var N=Rk(Rk({},T),{},{fill:"none"},C),_=k.map((e=>Rk({entry:e},function(e,t,r,n,i,a,o,l,c){var u,s,f,d,p,h,y=l?-1:1,v=e.tickSize||o,m=le(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case"top":u=s=e.coordinate,h=(f=(d=r+ +!l*i)-y*v)-y*c,p=m;break;case"left":f=d=e.coordinate,p=(u=(s=t+ +!l*n)-y*v)-y*c,h=m;break;case"right":f=d=e.coordinate,p=(u=(s=t+ +l*n)+y*v)+y*c,h=m;break;default:u=s=e.coordinate,h=(f=(d=r+ +l*i)+y*v)+y*c,p=m}return{line:{x1:u,y1:f,x2:s,y2:d},tick:{x:p,y:h}}}(e,v,m,g,x,h,w,y,O)))),z=_.map((e=>{var{entry:r,line:i}=e;return t.createElement(b,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(r.value,"-").concat(r.coordinate,"-").concat(r.tickCoord)},o&&t.createElement("line",_k({},N,i,{className:n("recharts-cartesian-axis-tick-line",ee()(o,"className"))})))})),R=_.map(((e,r)=>{var n,i,{entry:o,tick:f}=e,d=Rk(Rk(Rk(Rk({verticalAnchor:M},T),{},{textAnchor:I,stroke:"none",fill:l},f),{},{index:r,payload:o,visibleTicksCount:k.length,tickFormatter:c,padding:s},p),{},{angle:null!==(n=null!==(i=null==p?void 0:p.angle)&&void 0!==i?i:T.angle)&&void 0!==n?n:0}),h=Rk(Rk({},d),D);return t.createElement(b,_k({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(o.value,"-").concat(o.coordinate,"-").concat(o.tickCoord)},Ie(A,o,r)),a&&t.createElement(Wk,{option:a,tickProps:h,value:"".concat("function"==typeof c?c(o.value,r):o.value).concat(u||"")}))}));return t.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(S,"-ticks")},R.length>0&&t.createElement(Cb,{zIndex:Wh.label},t.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(S,"-tick-labels"),ref:r},R)),z.length>0&&t.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(S,"-tick-lines")},z))})),Uk=(0,t.forwardRef)(((e,r)=>{var{axisLine:i,width:a,height:o,className:l,hide:c,ticks:u,axisType:s}=e,d=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,Nk),[p,h]=(0,t.useState)(""),[y,v]=(0,t.useState)(""),m=(0,t.useRef)(null);(0,t.useImperativeHandle)(r,(()=>({getCalculatedWidth:()=>{var t;return(e=>{var{ticks:t,label:r,labelGapWithTick:n=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach((e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}}));var l=r?r.getBoundingClientRect().width:0,c=o+(i+a)+l+(r?n:0);return Math.round(c)}return 0})({ticks:m.current,label:null===(t=e.labelRef)||void 0===t?void 0:t.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}})));var g=(0,t.useCallback)((e=>{if(e){var t=e.getElementsByClassName("recharts-cartesian-axis-tick-value");m.current=t;var r=t[0];if(r){var n=window.getComputedStyle(r),i=n.fontSize,a=n.letterSpacing;i===p&&a===y||(h(i),v(a))}}}),[p,y]);return c||null!=a&&a<=0||null!=o&&o<=0?null:t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:n("recharts-cartesian-axis",l)},t.createElement(Bk,{x:e.x,y:e.y,width:a,height:o,orientation:e.orientation,mirror:e.mirror,axisLine:i,otherSvgProps:f(e)}),t.createElement(Fk,{ref:g,axisType:s,events:d,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:y,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:u,unit:e.unit,width:e.width,x:e.x,y:e.y}),t.createElement(fw,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},t.createElement(Ew,{label:e.label,labelRef:e.labelRef}),e.children)))})),Vk=t.forwardRef(((e,r)=>{var n=De(e,Kk);return t.createElement(Uk,_k({},n,{ref:r}))}));Vk.displayName="CartesianAxis";var Xk=["x1","y1","x2","y2","key"],Hk=["offset"],$k=["xAxisId","yAxisId"],qk=["xAxisId","yAxisId"];function Yk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Gk(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Yk(Object(r),!0).forEach((function(t){Zk(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yk(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Zk(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Jk(){return Jk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jk.apply(null,arguments)}function Qk(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var eI=e=>{var{fill:r}=e;if(!r||"none"===r)return null;var{fillOpacity:n,x:i,y:a,width:o,height:l,ry:c}=e;return t.createElement("rect",{x:i,y:a,ry:c,width:o,height:l,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function tI(e){var r,{option:n,lineItemProps:i}=e;if(t.isValidElement(n))r=t.cloneElement(n,i);else if("function"==typeof n)r=n(i);else{var a,{x1:o,y1:l,x2:c,y2:u,key:s}=i,d=null!==(a=f(Qk(i,Xk)))&&void 0!==a?a:{},{offset:p}=d,h=Qk(d,Hk);r=t.createElement("line",Jk({},h,{x1:o,y1:l,x2:c,y2:u,fill:"none",key:s}))}return r}function rI(e){var{x:r,width:n,horizontal:i=!0,horizontalPoints:a}=e;if(!i||!a||!a.length)return null;var{xAxisId:o,yAxisId:l}=e,c=Qk(e,$k),u=a.map(((e,a)=>{var o=Gk(Gk({},c),{},{x1:r,y1:e,x2:r+n,y2:e,key:"line-".concat(a),index:a});return t.createElement(tI,{key:"line-".concat(a),option:i,lineItemProps:o})}));return t.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function nI(e){var{y:r,height:n,vertical:i=!0,verticalPoints:a}=e;if(!i||!a||!a.length)return null;var{xAxisId:o,yAxisId:l}=e,c=Qk(e,qk),u=a.map(((e,a)=>{var o=Gk(Gk({},c),{},{x1:e,y1:r,x2:e,y2:r+n,key:"line-".concat(a),index:a});return t.createElement(tI,{option:i,lineItemProps:o,key:"line-".concat(a)})}));return t.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function iI(e){var{horizontalFill:r,fillOpacity:n,x:i,y:a,width:o,height:l,horizontalPoints:c,horizontal:u=!0}=e;if(!u||!r||!r.length||null==c)return null;var s=c.map((e=>Math.round(e+a-a))).sort(((e,t)=>e-t));a!==s[0]&&s.unshift(0);var f=s.map(((e,c)=>{var u=s[c+1],f=null==u?a+l-e:u-e;if(f<=0)return null;var d=c%r.length;return t.createElement("rect",{key:"react-".concat(c),y:e,x:i,height:f,width:o,stroke:"none",fill:r[d],fillOpacity:n,className:"recharts-cartesian-grid-bg"})}));return t.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function aI(e){var{vertical:r=!0,verticalFill:n,fillOpacity:i,x:a,y:o,width:l,height:c,verticalPoints:u}=e;if(!r||!n||!n.length)return null;var s=u.map((e=>Math.round(e+a-a))).sort(((e,t)=>e-t));a!==s[0]&&s.unshift(0);var f=s.map(((e,r)=>{var u=s[r+1],f=null==u?a+l-e:u-e;if(f<=0)return null;var d=r%n.length;return t.createElement("rect",{key:"react-".concat(r),x:e,y:o,width:f,height:c,stroke:"none",fill:n[d],fillOpacity:i,className:"recharts-cartesian-grid-bg"})}));return t.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var oI=(e,t)=>{var{xAxis:r,width:n,height:i,offset:a}=e;return ui(Ck(Gk(Gk(Gk({},Kk),r),{},{ticks:si(r,!0),viewBox:{x:0,y:0,width:n,height:i}})),a.left,a.left+a.width,t)},lI=(e,t)=>{var{yAxis:r,width:n,height:i,offset:a}=e;return ui(Ck(Gk(Gk(Gk({},Kk),r),{},{ticks:si(r,!0),viewBox:{x:0,y:0,width:n,height:i}})),a.top,a.top+a.height,t)},cI={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Wh.grid};function uI(e){var r=pa(),n=ha(),i=da(),a=Gk(Gk({},De(e,cI)),{},{x:le(e.x)?e.x:i.left,y:le(e.y)?e.y:i.top,width:le(e.width)?e.width:i.width,height:le(e.height)?e.height:i.height}),{xAxisId:o,yAxisId:l,x:c,y:u,width:s,height:f,syncWithTicks:d,horizontalValues:p,verticalValues:h}=a,y=Bi(),v=Ze((e=>hm(e,"xAxis",o,y))),m=Ze((e=>hm(e,"yAxis",l,y)));if(!(ni(s)&&ni(f)&&le(c)&&le(u)))return null;var g=a.verticalCoordinatesGenerator||oI,b=a.horizontalCoordinatesGenerator||lI,{horizontalPoints:x,verticalPoints:w}=a;if(!(x&&x.length||"function"!=typeof b)){var O=p&&p.length,P=b({yAxis:m?Gk(Gk({},m),{},{ticks:O?p:m.ticks}):void 0,width:null!=r?r:s,height:null!=n?n:f,offset:i},!!O||d);Hi(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof P,"]")),Array.isArray(P)&&(x=P)}if(!(w&&w.length||"function"!=typeof g)){var E=h&&h.length,j=g({xAxis:v?Gk(Gk({},v),{},{ticks:E?h:v.ticks}):void 0,width:null!=r?r:s,height:null!=n?n:f,offset:i},!!E||d);Hi(Array.isArray(j),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof j,"]")),Array.isArray(j)&&(w=j)}return t.createElement(Cb,{zIndex:a.zIndex},t.createElement("g",{className:"recharts-cartesian-grid"},t.createElement(eI,{fill:a.fill,fillOpacity:a.fillOpacity,x:a.x,y:a.y,width:a.width,height:a.height,ry:a.ry}),t.createElement(iI,Jk({},a,{horizontalPoints:x})),t.createElement(aI,Jk({},a,{verticalPoints:w})),t.createElement(rI,Jk({},a,{offset:i,horizontalPoints:x,xAxis:v,yAxis:m})),t.createElement(nI,Jk({},a,{offset:i,verticalPoints:w,xAxis:v,yAxis:m}))))}uI.displayName="CartesianGrid";var sI=en({name:"errorBars",initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]||(e[r]=[]),e[r].push(n)},replaceErrorBar:(e,t)=>{var{itemId:r,prev:n,next:i}=t.payload;e[r]&&(e[r]=e[r].map((e=>e.dataKey===n.dataKey&&e.direction===n.direction?i:e)))},removeErrorBar:(e,t)=>{var{itemId:r,errorBar:n}=t.payload;e[r]&&(e[r]=e[r].filter((e=>e.dataKey!==n.dataKey||e.direction!==n.direction)))}}}),{addErrorBar:fI,replaceErrorBar:dI,removeErrorBar:pI}=sI.actions,hI=sI.reducer,yI=["children"];var vI={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},mI=(0,t.createContext)(vI);function gI(e){var{children:r}=e,n=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,yI);return t.createElement(mI.Provider,{value:n},r)}var bI=()=>(0,t.useContext)(mI);function xI(e){var r=$e(),n=(0,t.useContext)(nE),i=(0,t.useRef)(null);return(0,t.useEffect)((()=>{null!=n&&(null===i.current?r(fI({itemId:n,errorBar:e})):i.current!==e&&r(dI({itemId:n,prev:i.current,next:e})),i.current=e)}),[r,n,e]),(0,t.useEffect)((()=>()=>{null!=i.current&&null!=n&&(r(pI({itemId:n,errorBar:i.current})),i.current=null)}),[r,n]),null}function wI(e,t){var r,n,i=Ze((t=>Ay(t,e))),a=Ze((e=>Iy(e,t))),o=null!==(r=null==i?void 0:i.allowDataOverflow)&&void 0!==r?r:Ey.allowDataOverflow,l=null!==(n=null==a?void 0:a.allowDataOverflow)&&void 0!==n?n:Sy.allowDataOverflow;return{needClip:o||l,needClipX:o,needClipY:l}}function OI(e){var{xAxisId:r,yAxisId:n,clipPathId:i}=e,a=pj(),{needClipX:o,needClipY:l,needClip:c}=wI(r,n);if(!c||!a)return null;var{x:u,y:s,width:f,height:d}=a;return t.createElement("clipPath",{id:"clipPath-".concat(i)},t.createElement("rect",{x:o?u:u-f/2,y:l?s:s-d/2,width:o?f:2*f,height:l?d:2*d}))}var PI=(e,t,r,n)=>bm(e,"xAxis",t,n),EI=(e,t,r,n)=>gm(e,"xAxis",t,n),jI=(e,t,r,n)=>bm(e,"yAxis",r,n),AI=(e,t,r,n)=>gm(e,"yAxis",r,n),SI=it([va,PI,jI,EI,AI],((e,t,r,n,i)=>ci(e,"xAxis")?wi(t,n,!1):wi(r,i,!1)));function kI(e){return"line"===e.type}var II=it([zy,(e,t,r,n,i)=>i],((e,t)=>e.filter(kI).find((e=>e.id===t)))),MI=it([va,PI,jI,EI,AI,II,SI,gh],((e,t,r,n,i,a,o,l)=>{var{chartData:c,dataStartIndex:u,dataEndIndex:s}=l;if(null!=a&&null!=t&&null!=r&&null!=n&&null!=i&&0!==n.length&&0!==i.length&&null!=o&&("horizontal"===e||"vertical"===e)){var f,{dataKey:d,data:p}=a;if(null!=(f=null!=p&&p.length>0?p:null==c?void 0:c.slice(u,s+1)))return function(e){var{layout:t,xAxis:r,yAxis:n,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:l,displayedData:c}=e;return c.map(((e,c)=>{var u=li(e,o);if("horizontal"===t){var s=yi({axis:r,ticks:i,bandSize:l,entry:e,index:c}),f=ye(u)?null:n.scale.map(u);return{x:s,y:null!=f?f:null,value:u,payload:e}}var d=ye(u)?null:r.scale.map(u),p=yi({axis:n,ticks:a,bandSize:l,entry:e,index:c});return null==d||null==p?null:{x:d,y:p,value:u,payload:e}})).filter(Boolean)}({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:f})}}));function TI(e){var t=d(e);if(null!=t){var{r,strokeWidth:n}=t,i=Number(r),a=Number(n);return(Number.isNaN(i)||i<0)&&(i=3),(Number.isNaN(a)||a<0)&&(a=2),{r:i,strokeWidth:a}}return{r:3,strokeWidth:2}}var DI=a(9888);let CI=function(e){e()};const NI=()=>CI,_I=Symbol.for("react-redux-context"),zI="undefined"!=typeof globalThis?globalThis:{};function RI(){var e;if(!t.createContext)return{};const r=null!=(e=zI[_I])?e:zI[_I]=new Map;let n=r.get(t.createContext);return n||(n=t.createContext(null),r.set(t.createContext,n)),n}const LI=RI();let KI=null;a(4146);const BI={notify(){},get:()=>[]};function WI(e,t){let r,n=BI,i=0,a=!1;function o(){u.onStateChange&&u.onStateChange()}function l(){i++,r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=NI();let t=null,r=null;return{clear(){t=null,r=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],r=t;for(;r;)e.push(r),r=r.next;return e},subscribe(e){let n=!0,i=r={callback:e,next:null,prev:r};return i.prev?i.prev.next=i:t=i,function(){n&&null!==t&&(n=!1,i.next?i.next.prev=i.prev:r=i.prev,i.prev?i.prev.next=i.next:t=i.next)}}}}())}function c(){i--,r&&0===i&&(r(),r=void 0,n.clear(),n=BI)}const u={addNestedSub:function(e){l();const t=n.subscribe(e);let r=!1;return()=>{r||(r=!0,t(),c())}},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return a},trySubscribe:function(){a||(a=!0,l())},tryUnsubscribe:function(){a&&(a=!1,c())},getListeners:()=>n};return u}const FI=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?t.useLayoutEffect:t.useEffect;let UI=null;const VI=function({store:e,context:r,children:n,serverState:i,stabilityCheck:a="once",noopCheck:o="once"}){const l=t.useMemo((()=>{const t=WI(e);return{store:e,subscription:t,getServerState:i?()=>i:void 0,stabilityCheck:a,noopCheck:o}}),[e,i,a,o]),c=t.useMemo((()=>e.getState()),[e]);FI((()=>{const{subscription:t}=l;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),c!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[l,c]);const u=r||LI;return t.createElement(u.Provider,{value:l},n)};function XI(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function HI(e,t){if(XI(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let n=0;n<r.length;n++)if(!Object.prototype.hasOwnProperty.call(t,r[n])||!XI(e[r[n]],t[r[n]]))return!1;return!0}var $I;(e=>{KI=e})(Ve.useSyncExternalStoreWithSelector),(e=>{UI=e})(DI.useSyncExternalStore),$I=x.unstable_batchedUpdates,CI=$I;var qI=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius"]);function YI(e,t){return null==e&&null==t||("number"==typeof e&&"number"==typeof t?e===t||e!=e&&t!=t:e===t)}function GI(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(qI.has(n)){if(null==e[n]&&null==t[n])continue;if(!HI(e[n],t[n]))return!1}else if(!YI(e[n],t[n]))return!1;return!0}var ZI=["id"],JI=["type","layout","connectNulls","needClip","shape"],QI=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function eM(){return eM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},eM.apply(null,arguments)}function tM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function rM(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?tM(Object(r),!0).forEach((function(t){nM(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tM(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function nM(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function iM(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var aM=e=>{var{dataKey:t,name:r,stroke:n,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:n,value:Pi(r,t),payload:e}]},oM=t.memo((e=>{var{dataKey:r,data:n,stroke:i,strokeWidth:a,fill:o,name:l,hide:c,unit:u,tooltipType:s,id:f}=e,d={dataDefinedOnItem:n,getPosition:ge,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:r,nameKey:void 0,name:Pi(l,r),hide:c,type:s,color:i,unit:u,graphicalItemId:f}};return t.createElement(JP,{tooltipEntrySettings:d})})),lM=(e,t)=>"".concat(t,"px ").concat(e-t,"px");function cM(e,t){for(var r=e.length%2!=0?[...e,0]:e,n=[],i=0;i<t;++i)n=[...n,...r];return n}function uM(e){var{clipPathId:r,points:n,props:i}=e,{dot:a,dataKey:o,needClip:l}=i,{id:c}=i,u=f(iM(i,ZI));return t.createElement(XE,{points:n,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:o,baseProps:u,needClip:l,clipPathId:r})}function sM(e){var{showLabels:r,children:n,points:i}=e,a=(0,t.useMemo)((()=>null==i?void 0:i.map((e=>{var t,r,n={x:null!==(t=e.x)&&void 0!==t?t:0,y:null!==(r=e.y)&&void 0!==r?r:0,width:0,lowerWidth:0,upperWidth:0,height:0};return rM(rM({},n),{},{value:e.value,payload:e.payload,viewBox:n,parentViewBox:void 0,fill:void 0})}))),[i]);return t.createElement(Nw,{value:r?a:void 0},n)}function fM(e){var{clipPathId:r,pathRef:n,points:i,strokeDasharray:a,props:o}=e,{type:l,layout:c,connectNulls:u,needClip:s,shape:f}=o,d=rM(rM({},p(iM(o,JI))),{},{fill:"none",className:"recharts-line-curve",clipPath:s?"url(#clipPath-".concat(r,")"):void 0,points:i,type:l,layout:c,connectNulls:u,strokeDasharray:null!=a?a:o.strokeDasharray});return t.createElement(t.Fragment,null,(null==i?void 0:i.length)>1&&t.createElement($P,eM({shapeType:"curve",option:f},d,{pathRef:n})),t.createElement(uM,{points:i,clipPathId:r,props:o}))}function dM(e){var{clipPathId:r,props:n,pathRef:i,previousPointsRef:a,longestAnimatedLengthRef:o}=e,{points:l,strokeDasharray:c,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,animateNewValues:p,width:h,height:y,onAnimationEnd:v,onAnimationStart:m}=n,g=a.current,b=fc(l,"recharts-line-"),x=(0,t.useRef)(b),[w,O]=(0,t.useState)(!1),P=!w,E=(0,t.useCallback)((()=>{"function"==typeof v&&v(),O(!1)}),[v]),j=(0,t.useCallback)((()=>{"function"==typeof m&&m(),O(!0)}),[m]),A=function(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch(e){return 0}}(i.current),S=(0,t.useRef)(0);x.current!==b&&(S.current=o.current,x.current=b);var k=S.current;return t.createElement(sM,{points:l,showLabels:P},n.children,t.createElement(sc,{animationId:b,begin:s,duration:f,isActive:u,easing:d,onAnimationEnd:E,onAnimationStart:j,key:b},(e=>{var s,f=pe(k,A+k,e),d=Math.min(f,A);if(u)if(c){var v="".concat(c).split(/[,\s]+/gim).map((e=>parseFloat(e)));s=((e,t,r)=>{var n=r.reduce(((e,t)=>e+t));if(!n)return lM(t,e);for(var i=Math.floor(e/n),a=e%n,o=t-e,l=[],c=0,u=0;c<r.length;u+=null!==(s=r[c])&&void 0!==s?s:0,++c){var s,f=r[c];if(null!=f&&u+f>a){l=[...r.slice(0,c),a-u];break}}var d=l.length%2==0?[0,o]:[o];return[...cM(r,i),...l,...d].map((e=>"".concat(e,"px"))).join(", ")})(d,A,v)}else s=lM(A,d);else s=null==c?void 0:String(c);if(e>0&&A>0&&(a.current=l,o.current=Math.max(o.current,d)),g){var m=g.length/l.length,b=1===e?l:l.map(((t,r)=>{var n=Math.floor(r*m);if(g[n]){var i=g[n];return rM(rM({},t),{},{x:pe(i.x,t.x,e),y:pe(i.y,t.y,e)})}return rM(rM({},t),{},p?{x:pe(2*h,t.x,e),y:pe(y/2,t.y,e)}:{x:t.x,y:t.y})}));return a.current=b,t.createElement(fM,{props:n,points:b,clipPathId:r,pathRef:i,strokeDasharray:s})}return t.createElement(fM,{props:n,points:l,clipPathId:r,pathRef:i,strokeDasharray:s})})),t.createElement(Lw,{label:n.label}))}function pM(e){var{clipPathId:r,props:n}=e,i=(0,t.useRef)(null),a=(0,t.useRef)(0),o=(0,t.useRef)(null);return t.createElement(dM,{props:n,clipPathId:r,previousPointsRef:i,longestAnimatedLengthRef:a,pathRef:o})}var hM=(e,t)=>{var r,n;return{x:null!==(r=e.x)&&void 0!==r?r:void 0,y:null!==(n=e.y)&&void 0!==n?n:void 0,value:e.value,errorVal:li(e.payload,t)}};class yM extends t.Component{render(){var{hide:e,dot:r,points:i,className:a,xAxisId:o,yAxisId:l,top:c,left:u,width:s,height:f,id:d,needClip:p,zIndex:h}=this.props;if(e)return null;var y=n("recharts-line",a),v=d,{r:m,strokeWidth:g}=TI(r),x=TP(r),w=2*m+g,O=p?"url(#clipPath-".concat(x?"":"dots-").concat(v,")"):void 0;return t.createElement(Cb,{zIndex:h},t.createElement(b,{className:y},p&&t.createElement("defs",null,t.createElement(OI,{clipPathId:v,xAxisId:o,yAxisId:l}),!x&&t.createElement("clipPath",{id:"clipPath-dots-".concat(v)},t.createElement("rect",{x:u-w/2,y:c-w/2,width:s+w,height:f+w}))),t.createElement(gI,{xAxisId:o,yAxisId:l,data:i,dataPointFormatter:hM,errorBarOffset:0},t.createElement(pM,{props:this.props,clipPathId:v}))),t.createElement(Pj,{activeDot:this.props.activeDot,points:i,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:O}))}}var vM={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:Wh.line,type:"linear"};function mM(e){var r=De(e,vM),{activeDot:n,animateNewValues:i,animationBegin:a,animationDuration:o,animationEasing:l,connectNulls:c,dot:u,hide:s,isAnimationActive:f,label:d,legendType:p,xAxisId:h,yAxisId:y,id:v}=r,m=iM(r,QI),{needClip:g}=wI(h,y),b=pj(),x=ma(),w=Bi(),O=Ze((e=>MI(e,h,y,w,v)));if("horizontal"!==x&&"vertical"!==x||null==O||null==b)return null;var{height:P,width:E,x:j,y:A}=b;return t.createElement(yM,eM({},m,{id:v,connectNulls:c,dot:u,activeDot:n,animateNewValues:i,animationBegin:a,animationDuration:o,animationEasing:l,isAnimationActive:f,hide:s,label:d,legendType:p,xAxisId:h,yAxisId:y,points:O,layout:x,height:P,width:E,left:j,top:A,needClip:g}))}function gM(e){var r=De(e,vM),n=Bi();return t.createElement(iE,{id:r.id,type:"line"},(e=>t.createElement(t.Fragment,null,t.createElement(QP,{legendPayload:aM(r)}),t.createElement(oM,{dataKey:r.dataKey,data:r.data,stroke:r.stroke,strokeWidth:r.strokeWidth,fill:r.fill,name:r.name,hide:r.hide,unit:r.unit,tooltipType:r.tooltipType,id:e}),t.createElement(pE,{type:"line",id:e,data:r.data,xAxisId:r.xAxisId,yAxisId:r.yAxisId,zAxisId:0,dataKey:r.dataKey,hide:r.hide,isPanorama:n}),t.createElement(mM,eM({},r,{id:e})))))}var bM=t.memo(gM,GI);function xM(e,t){var r,n;return null!==(r=null===(n=e.graphicalItems.cartesianItems.find((e=>e.id===t)))||void 0===n?void 0:n.xAxisId)&&void 0!==r?r:0}function wM(e,t){var r,n;return null!==(r=null===(n=e.graphicalItems.cartesianItems.find((e=>e.id===t)))||void 0===n?void 0:n.yAxisId)&&void 0!==r?r:0}bM.displayName="Line";var OM=(e,t,r)=>bm(e,"xAxis",xM(e,t),r),PM=(e,t,r)=>gm(e,"xAxis",xM(e,t),r),EM=(e,t,r)=>bm(e,"yAxis",wM(e,t),r),jM=(e,t,r)=>gm(e,"yAxis",wM(e,t),r),AM=it([va,OM,EM,PM,jM],((e,t,r,n,i)=>ci(e,"xAxis")?wi(t,n,!1):wi(r,i,!1))),SM=it([zy,(e,t)=>t],((e,t)=>e.filter((e=>"area"===e.type)).find((e=>e.id===t)))),kM=e=>{var t=va(e);return ci(t,"xAxis")?"yAxis":"xAxis"},IM=it([SM,(e,t,r)=>nv(e,kM(e),((e,t)=>"yAxis"===kM(e)?wM(e,t):xM(e,t))(e,t),r)],((e,t)=>{var r;if(null!=e&&null!=t){var{stackId:n}=e,i=sy(e);if(null!=n&&null!=i){var a=null===(r=t[n])||void 0===r?void 0:r.stackedData,o=null==a?void 0:a.find((e=>e.key===i));if(null!=o)return o.map((e=>[e[0],e[1]]))}}})),MM=it([va,OM,EM,PM,jM,IM,bh,AM,SM,e=>e.rootProps.baseValue],((e,t,r,n,i,a,o,l,c,u)=>{var{chartData:s,dataStartIndex:f,dataEndIndex:d}=o;if(null!=c&&("horizontal"===e||"vertical"===e)&&null!=t&&null!=r&&null!=n&&null!=i&&0!==n.length&&0!==i.length&&null!=l){var p,{data:h}=c;if(null!=(p=h&&h.length>0?h:null==s?void 0:s.slice(f,d+1)))return function(e){var t,{areaSettings:{connectNulls:r,baseValue:n,dataKey:i},stackedData:a,layout:o,chartBaseValue:l,xAxis:c,yAxis:u,displayedData:s,dataStartIndex:f,xAxisTicks:d,yAxisTicks:p,bandSize:h}=e,y=a&&a.length,v=JM(o,l,n,c,u),m="horizontal"===o,g=!1,b=s.map(((e,t)=>{var n,o,l,s;if(y)s=a[f+t];else{var b=li(e,i);Array.isArray(b)?(s=b,g=!0):s=[v,b]}var x,w=null!==(n=null===(o=s)||void 0===o?void 0:o[1])&&void 0!==n?n:null,O=null==w||y&&!r&&null==li(e,i);return m?{x:yi({axis:c,ticks:d,bandSize:h,entry:e,index:t}),y:O?null:null!==(x=u.scale.map(w))&&void 0!==x?x:null,value:s,payload:e}:{x:O?null:null!==(l=c.scale.map(w))&&void 0!==l?l:null,y:yi({axis:u,ticks:p,bandSize:h,entry:e,index:t}),value:s,payload:e}}));t=y||g?b.map((e=>{var t,r,n=Array.isArray(e.value)?e.value[0]:null;return m?{x:e.x,y:null!=n&&null!=e.y&&null!==(r=u.scale.map(n))&&void 0!==r?r:null,payload:e.payload}:{x:null!=n&&null!==(t=c.scale.map(n))&&void 0!==t?t:null,y:e.y,payload:e.payload}})):m?u.scale.map(v):c.scale.map(v);return{points:b,baseLine:null!=t?t:0,isRange:g}}({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:f,areaSettings:c,stackedData:a,displayedData:p,chartBaseValue:u,bandSize:l})}})),TM=["id"],DM=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function CM(){return CM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},CM.apply(null,arguments)}function NM(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function _M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function zM(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_M(Object(r),!0).forEach((function(t){RM(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_M(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function RM(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function LM(e,t){return e&&"none"!==e?e:t}var KM=e=>{var{dataKey:t,name:r,stroke:n,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:LM(n,i),value:Pi(r,t),payload:e}]},BM=t.memo((e=>{var{dataKey:r,data:n,stroke:i,strokeWidth:a,fill:o,name:l,hide:c,unit:u,tooltipType:s,id:f}=e,d={dataDefinedOnItem:n,getPosition:ge,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:r,nameKey:void 0,name:Pi(l,r),hide:c,type:s,color:LM(i,o),unit:u,graphicalItemId:f}};return t.createElement(JP,{tooltipEntrySettings:d})}));function WM(e){var{clipPathId:r,points:n,props:i}=e,{needClip:a,dot:o,dataKey:l}=i,c=f(i);return t.createElement(XE,{points:n,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:l,baseProps:c,needClip:a,clipPathId:r})}function FM(e){var{showLabels:r,children:n,points:i}=e,a=i.map((e=>{var t,r,n={x:null!==(t=e.x)&&void 0!==t?t:0,y:null!==(r=e.y)&&void 0!==r?r:0,width:0,lowerWidth:0,upperWidth:0,height:0};return zM(zM({},n),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:n,fill:void 0})}));return t.createElement(Nw,{value:r?a:void 0},n)}function UM(e){var{points:r,baseLine:n,needClip:i,clipPathId:a,props:o}=e,{layout:l,type:c,stroke:u,connectNulls:s,isRange:d}=o,{id:h}=o,y=NM(o,TM),v=f(y),m=p(y);return t.createElement(t.Fragment,null,(null==r?void 0:r.length)>1&&t.createElement(b,{clipPath:i?"url(#clipPath-".concat(a,")"):void 0},t.createElement(kl,CM({},m,{id:h,points:r,connectNulls:s,type:c,baseLine:n,layout:l,stroke:"none",className:"recharts-area-area"})),"none"!==u&&t.createElement(kl,CM({},v,{className:"recharts-area-curve",layout:l,type:c,connectNulls:s,fill:"none",points:r})),"none"!==u&&d&&t.createElement(kl,CM({},v,{className:"recharts-area-curve",layout:l,type:c,connectNulls:s,fill:"none",points:n}))),t.createElement(WM,{points:r,props:y,clipPathId:a}))}function VM(e){var r,n,{alpha:i,baseLine:a,points:o,strokeWidth:l}=e,c=null===(r=o[0])||void 0===r?void 0:r.y,u=null===(n=o[o.length-1])||void 0===n?void 0:n.y;if(!ri(c)||!ri(u))return null;var s=i*Math.abs(c-u),f=Math.max(...o.map((e=>e.x||0)));return le(a)?f=Math.max(a,f):a&&Array.isArray(a)&&a.length&&(f=Math.max(...a.map((e=>e.x||0)),f)),le(f)?t.createElement("rect",{x:0,y:c<u?c:c-s,width:f+(l?parseInt("".concat(l),10):1),height:Math.floor(s)}):null}function XM(e){var r,n,{alpha:i,baseLine:a,points:o,strokeWidth:l}=e,c=null===(r=o[0])||void 0===r?void 0:r.x,u=null===(n=o[o.length-1])||void 0===n?void 0:n.x;if(!ri(c)||!ri(u))return null;var s=i*Math.abs(c-u),f=Math.max(...o.map((e=>e.y||0)));return le(a)?f=Math.max(a,f):a&&Array.isArray(a)&&a.length&&(f=Math.max(...a.map((e=>e.y||0)),f)),le(f)?t.createElement("rect",{x:c<u?c:c-s,y:0,width:s,height:Math.floor(f+(l?parseInt("".concat(l),10):1))}):null}function HM(e){var{alpha:r,layout:n,points:i,baseLine:a,strokeWidth:o}=e;return"vertical"===n?t.createElement(VM,{alpha:r,points:i,baseLine:a,strokeWidth:o}):t.createElement(XM,{alpha:r,points:i,baseLine:a,strokeWidth:o})}function $M(e){var{needClip:r,clipPathId:n,props:i,previousPointsRef:a,previousBaselineRef:o}=e,{points:l,baseLine:c,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,onAnimationStart:p,onAnimationEnd:h}=i,y=fc((0,t.useMemo)((()=>({points:l,baseLine:c})),[l,c]),"recharts-area-"),v=ga(),[m,g]=(0,t.useState)(!1),x=!m,w=(0,t.useCallback)((()=>{"function"==typeof h&&h(),g(!1)}),[h]),O=(0,t.useCallback)((()=>{"function"==typeof p&&p(),g(!0)}),[p]);if(null==v)return null;var P=a.current,E=o.current;return t.createElement(FM,{showLabels:x,points:l},i.children,t.createElement(sc,{animationId:y,begin:s,duration:f,isActive:u,easing:d,onAnimationEnd:w,onAnimationStart:O,key:y},(e=>{if(P){var s,f=P.length/l.length,d=1===e?l:l.map(((t,r)=>{var n=Math.floor(r*f);if(P[n]){var i=P[n];return zM(zM({},t),{},{x:pe(i.x,t.x,e),y:pe(i.y,t.y,e)})}return t}));return s=le(c)?pe(E,c,e):ye(c)||ae(c)?pe(E,0,e):c.map(((t,r)=>{var n=Math.floor(r*f);if(Array.isArray(E)&&E[n]){var i=E[n];return zM(zM({},t),{},{x:pe(i.x,t.x,e),y:pe(i.y,t.y,e)})}return t})),e>0&&(a.current=d,o.current=s),t.createElement(UM,{points:d,baseLine:s,needClip:r,clipPathId:n,props:i})}return e>0&&(a.current=l,o.current=c),t.createElement(b,null,u&&t.createElement("defs",null,t.createElement("clipPath",{id:"animationClipPath-".concat(n)},t.createElement(HM,{alpha:e,points:l,baseLine:c,layout:v,strokeWidth:i.strokeWidth}))),t.createElement(b,{clipPath:"url(#animationClipPath-".concat(n,")")},t.createElement(UM,{points:l,baseLine:c,needClip:r,clipPathId:n,props:i})))})),t.createElement(Lw,{label:i.label}))}function qM(e){var{needClip:r,clipPathId:n,props:i}=e,a=(0,t.useRef)(null),o=(0,t.useRef)();return t.createElement($M,{needClip:r,clipPathId:n,props:i,previousPointsRef:a,previousBaselineRef:o})}class YM extends t.PureComponent{render(){var{hide:e,dot:r,points:i,className:a,top:o,left:l,needClip:c,xAxisId:u,yAxisId:s,width:f,height:d,id:p,baseLine:h,zIndex:y}=this.props;if(e)return null;var v=n("recharts-area",a),m=p,{r:g,strokeWidth:x}=TI(r),w=TP(r),O=2*g+x,P=c?"url(#clipPath-".concat(w?"":"dots-").concat(m,")"):void 0;return t.createElement(Cb,{zIndex:y},t.createElement(b,{className:v},c&&t.createElement("defs",null,t.createElement(OI,{clipPathId:m,xAxisId:u,yAxisId:s}),!w&&t.createElement("clipPath",{id:"clipPath-dots-".concat(m)},t.createElement("rect",{x:l-O/2,y:o-O/2,width:f+O,height:d+O}))),t.createElement(qM,{needClip:c,clipPathId:m,props:this.props})),t.createElement(Pj,{points:i,mainColor:LM(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}),this.props.isRange&&Array.isArray(h)&&t.createElement(Pj,{points:h,mainColor:LM(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}))}}var GM={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:Wh.area};function ZM(e){var r,n=De(e,GM),{activeDot:i,animationBegin:a,animationDuration:o,animationEasing:l,connectNulls:c,dot:u,fill:s,fillOpacity:f,hide:d,isAnimationActive:p,legendType:h,stroke:y,xAxisId:v,yAxisId:m}=n,g=NM(n,DM),b=ma(),x=ab(),{needClip:w}=wI(v,m),O=Bi(),{points:P,isRange:E,baseLine:j}=null!==(r=Ze((t=>MM(t,e.id,O))))&&void 0!==r?r:{},A=pj();if("horizontal"!==b&&"vertical"!==b||null==A)return null;if("AreaChart"!==x&&"ComposedChart"!==x)return null;var{height:S,width:k,x:I,y:M}=A;return P&&P.length?t.createElement(YM,CM({},g,{activeDot:i,animationBegin:a,animationDuration:o,animationEasing:l,baseLine:j,connectNulls:c,dot:u,fill:s,fillOpacity:f,height:S,hide:d,layout:b,isAnimationActive:"auto"===p?!oc.isSsr:p,isRange:E,legendType:h,needClip:w,points:P,stroke:y,width:k,left:I,top:M,xAxisId:v,yAxisId:m})):null}var JM=(e,t,r,n,i)=>{var a=null!=r?r:t;if(le(a))return a;var o="horizontal"===e?i:n,l=o.scale.domain();if("number"===o.type){var c=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return"dataMin"===a?u:"dataMax"===a||c<0?c:Math.max(Math.min(l[0],l[1]),0)}return"dataMin"===a?l[0]:"dataMax"===a?l[1]:l[0]};function QM(e){var r=De(e,GM),n=Bi();return t.createElement(iE,{id:r.id,type:"area"},(e=>t.createElement(t.Fragment,null,t.createElement(QP,{legendPayload:KM(r)}),t.createElement(BM,{dataKey:r.dataKey,data:r.data,stroke:r.stroke,strokeWidth:r.strokeWidth,fill:r.fill,name:r.name,hide:r.hide,unit:r.unit,tooltipType:r.tooltipType,id:e}),t.createElement(pE,{type:"area",id:e,data:r.data,dataKey:r.dataKey,xAxisId:r.xAxisId,yAxisId:r.yAxisId,zAxisId:0,stackId:hi(r.stackId),hide:r.hide,barSize:void 0,baseValue:r.baseValue,isPanorama:n,connectNulls:r.connectNulls}),t.createElement(ZM,CM({},r,{id:e})))))}var eT=t.memo(QM,GI);eT.displayName="Area";var tT="Invariant failed";function rT(){return rT=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rT.apply(null,arguments)}function nT(e){return t.createElement($P,rT({shapeType:"rectangle",activeClassName:"recharts-active-bar"},e))}var iT=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(r,n)=>{if(le(e))return e;var i=le(r)||ye(r);return i?e(r,n):(i||function(e){if(!e)throw new Error(tT)}(!1),t)}},aT=it([zy,(e,t)=>t],((e,t)=>e.filter((e=>"bar"===e.type)).find((e=>e.id===t)))),oT=it([aT],(e=>null==e?void 0:e.maxBarSize)),lT=it([va,zy,xM,wM,(e,t,r)=>r],((e,t,r,n,i)=>t.filter((t=>"horizontal"===e?t.xAxisId===r:t.yAxisId===n)).filter((e=>e.isPanorama===i)).filter((e=>!1===e.hide)).filter((e=>"bar"===e.type)))),cT=it([lT,Nh,(e,t)=>{var r=va(e),n=xM(e,t),i=wM(e,t);if(null!=n&&null!=i)return"horizontal"===r?um(e,"xAxis",n):um(e,"yAxis",i)}],aA),uT=(e,t,r)=>{var n,i,a=va(e),o=xM(e,t),l=wM(e,t);if(null!=o&&null!=l)return"horizontal"===a?(n=bm(e,"xAxis",o,r),i=gm(e,"xAxis",o,r)):(n=bm(e,"yAxis",l,r),i=gm(e,"yAxis",l,r)),wi(n,i)},sT=it([cT,Th,Dh,Ch,(e,t,r)=>{var n,i,a=aT(e,t);if(null==a)return 0;var o=xM(e,t),l=wM(e,t);if(null==o||null==l)return 0;var c,u,s=va(e),f=Th(e),{maxBarSize:d}=a,p=ye(d)?f:d;return"horizontal"===s?(c=bm(e,"xAxis",o,r),u=gm(e,"xAxis",o,r)):(c=bm(e,"yAxis",l,r),u=gm(e,"yAxis",l,r)),null!==(n=null!==(i=wi(c,u,!0))&&void 0!==i?i:p)&&void 0!==n?n:0},uT,oT],uA),fT=it([sT,aT],fA),dT=it([(e,t,r)=>{var n=va(e),i=xM(e,t),a=wM(e,t);if(null!=i&&null!=a)return"horizontal"===n?nv(e,"yAxis",a,r):nv(e,"xAxis",i,r)},aT],sA),pT=it([zi,Li,(e,t,r)=>{var n=xM(e,t);if(null!=n)return bm(e,"xAxis",n,r)},(e,t,r)=>{var n=wM(e,t);if(null!=n)return bm(e,"yAxis",n,r)},(e,t,r)=>{var n=xM(e,t);if(null!=n)return gm(e,"xAxis",n,r)},(e,t,r)=>{var n=wM(e,t);if(null!=n)return gm(e,"yAxis",n,r)},fT,va,bh,uT,dT,aT,(e,t,r,n)=>n],((e,t,r,n,i,a,o,l,c,u,s,f,d)=>{var{chartData:p,dataStartIndex:h,dataEndIndex:y}=c;if(null!=f&&null!=o&&null!=t&&("horizontal"===l||"vertical"===l)&&null!=r&&null!=n&&null!=i&&null!=a&&null!=u){var v,{data:m}=f;if(null!=(v=null!=m&&m.length>0?m:null==p?void 0:p.slice(h,y+1)))return function(e){var{layout:t,barSettings:{dataKey:r,minPointSize:n},pos:i,bandSize:a,xAxis:o,yAxis:l,xAxisTicks:c,yAxisTicks:u,stackedData:s,displayedData:f,offset:d,cells:p,parentViewBox:h,dataStartIndex:y}=e,v="horizontal"===t?l:o,m=s?v.scale.domain():null,g=mi({numericAxis:v}),b=v.scale.map(g);return f.map(((e,f)=>{var v,x,w,O,P,E;if(s){var j=s[f+y];if(null==j)return null;v=fi(j,m)}else v=li(e,r),Array.isArray(v)||(v=[g,v]);var A=iT(n,HT)(v[1],f);if("horizontal"===t){var S,k=l.scale.map(v[0]),I=l.scale.map(v[1]);if(null==k||null==I)return null;x=vi({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:f}),w=null!==(S=null!=I?I:k)&&void 0!==S?S:void 0,O=i.size;var M=k-I;if(P=ae(M)?0:M,E={x,y:d.top,width:O,height:d.height},Math.abs(A)>0&&Math.abs(P)<Math.abs(A)){var T=ie(P||A)*(Math.abs(A)-Math.abs(P));w-=T,P+=T}}else{var D=o.scale.map(v[0]),C=o.scale.map(v[1]);if(null==D||null==C)return null;if(x=D,w=vi({axis:l,ticks:u,bandSize:a,offset:i.offset,entry:e,index:f}),O=C-D,P=i.size,E={x:d.left,y:w,width:d.width,height:P},Math.abs(A)>0&&Math.abs(O)<Math.abs(A))O+=ie(O||A)*(Math.abs(A)-Math.abs(O))}return null==x||null==w||null==O||null==P?null:NT(NT({},e),{},{stackedBarStart:b,x,y:w,width:O,height:P,value:s?v:v[1],payload:e,background:E,tooltipPosition:{x:x+O/2,y:w+P/2},parentViewBox:h},p&&p[f]&&p[f].props)})).filter(Boolean)}({layout:l,barSettings:f,pos:o,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:i,yAxisTicks:a,stackedData:s,displayedData:v,offset:e,cells:d,dataStartIndex:h})}})),hT=(e,t)=>t,yT=(e,t,r)=>r,vT=it([hT,zy,yT],((e,t,r)=>t.filter((e=>"bar"===e.type)).filter((t=>t.stackId===e)).filter((e=>e.isPanorama===r)).filter((e=>!e.hide)))),mT=it([vT],(e=>e.map((e=>e.id)))),gT=it([e=>e,hT,yT],((e,t,r)=>{var n=mT(e,t,r),i=[];return n.forEach((t=>{var n=pT(e,t,r,void 0);null==n||n.forEach(((e,t)=>{i[t]=((e,t)=>{if(!e)return t;if(!t)return e;var r=Math.min(e.x,e.x+e.width,t.x,t.x+t.width),n=Math.min(e.y,e.y+e.height,t.y,t.y+t.height);return{x:r,y:n,width:Math.max(e.x,e.x+e.width,t.x,t.x+t.width)-r,height:Math.max(e.y,e.y+e.height,t.y,t.y+t.height)-n}})(i[t],e)}))})),i})),bT=["index"];function xT(){return xT=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xT.apply(null,arguments)}var wT=(0,t.createContext)(void 0),OT={radius:0},PT=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),ET=e=>{var{index:r}=e,n=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,bT),i=(e=>{var r=(0,t.useContext)(wT);if(null!=r){var{stackId:n}=r;return"url(#".concat(PT(n,e),")")}})(r);return t.createElement(b,xT({className:"recharts-bar-stack-layer",clipPath:i},n))},jT=e=>{var{stackId:r,radius:n}=e,i=Bi(),a=Ze((e=>gT(e,r,i)));return null==a||0===a.length?null:t.createElement("defs",null,a.map(((e,i)=>{if(null==e)return null;var a=PT(r,i);return t.createElement("clipPath",{key:a,id:a},t.createElement(Dc,{isAnimationActive:!1,isUpdateAnimationActive:!1,x:e.x,y:e.y,width:e.width,height:e.height,radius:n}))})))},AT=e=>{var r=rE("recharts-bar-stack",hi(e.stackId)),{children:n,radius:i}=De(e,OT),a=(0,t.useMemo)((()=>({stackId:r,radius:i})),[r,i]);return t.createElement(wT.Provider,{value:a},t.createElement(jT,{stackId:r,radius:i}),n)},ST=t.memo(AT,GI),kT=["onMouseEnter","onMouseLeave","onClick"],IT=["value","background","tooltipPosition"],MT=["id"],TT=["onMouseEnter","onClick","onMouseLeave"];function DT(){return DT=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},DT.apply(null,arguments)}function CT(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function NT(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?CT(Object(r),!0).forEach((function(t){_T(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):CT(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _T(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zT(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var RT=e=>{var{dataKey:t,name:r,fill:n,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:n,value:Pi(r,t),payload:e}]},LT=t.memo((e=>{var{dataKey:r,stroke:n,strokeWidth:i,fill:a,name:o,hide:l,unit:c,tooltipType:u,id:s}=e,f={dataDefinedOnItem:void 0,getPosition:ge,settings:{stroke:n,strokeWidth:i,fill:a,dataKey:r,nameKey:void 0,name:Pi(o,r),hide:l,type:u,color:a,unit:c,graphicalItemId:s}};return t.createElement(JP,{tooltipEntrySettings:f})}));function KT(e){var r=Ze(Wg),{data:n,dataKey:i,background:a,allOtherBarProps:o}=e,{onMouseEnter:l,onMouseLeave:c,onClick:u}=o,s=zT(o,kT),f=YP(l,i,o.id),p=GP(c),h=ZP(u,i,o.id);if(!a||null==n)return null;var y=d(a);return t.createElement(Cb,{zIndex:_A(a,Wh.barBackground)},n.map(((e,n)=>{var{value:o,background:l,tooltipPosition:c}=e,u=zT(e,IT);if(!l)return null;var d=f(e,n),v=p(e,n),m=h(e,n),g=NT(NT(NT(NT(NT({option:a,isActive:String(n)===r},u),{},{fill:"#eee"},l),y),Ie(s,e,n)),{},{onMouseEnter:d,onMouseLeave:v,onClick:m,dataKey:i,index:n,className:"recharts-bar-background-rectangle"});return t.createElement(nT,DT({key:"background-bar-".concat(n)},g))})))}function BT(e){var{showLabels:r,children:n,rects:i}=e,a=null==i?void 0:i.map((e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return NT(NT({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})}));return t.createElement(Nw,{value:r?a:void 0},n)}function WT(e){var{shape:r,activeBar:n,baseProps:i,entry:a,index:o,dataKey:l}=e,c=Ze(Wg),u=Ze(Ug),s=n&&String(o)===c&&(null==u||l===u),f=s?n:r;return s?t.createElement(Cb,{zIndex:Wh.activeBar},t.createElement(ET,{index:o},t.createElement(nT,DT({},i,{name:String(i.name)},a,{isActive:s,option:f,index:o,dataKey:l})))):t.createElement(nT,DT({},i,{name:String(i.name)},a,{isActive:s,option:f,index:o,dataKey:l}))}function FT(e){var{shape:r,baseProps:n,entry:i,index:a,dataKey:o}=e;return t.createElement(nT,DT({},n,{name:String(n.name)},i,{isActive:!1,option:r,index:a,dataKey:o}))}function UT(e){var r,{data:n,props:i}=e,a=null!==(r=f(i))&&void 0!==r?r:{},{id:o}=a,l=zT(a,MT),{shape:c,dataKey:u,activeBar:s}=i,{onMouseEnter:d,onClick:p,onMouseLeave:h}=i,y=zT(i,TT),v=YP(d,u,o),m=GP(h),g=ZP(p,u,o);return n?t.createElement(t.Fragment,null,n.map(((e,r)=>t.createElement(ET,DT({index:r,key:"rectangle-".concat(null==e?void 0:e.x,"-").concat(null==e?void 0:e.y,"-").concat(null==e?void 0:e.value,"-").concat(r),className:"recharts-bar-rectangle"},Ie(y,e,r),{onMouseEnter:v(e,r),onMouseLeave:m(e,r),onClick:g(e,r)}),s?t.createElement(WT,{shape:c,activeBar:s,baseProps:l,entry:e,index:r,dataKey:u}):t.createElement(FT,{shape:c,baseProps:l,entry:e,index:r,dataKey:u}))))):null}function VT(e){var{props:r,previousRectanglesRef:n}=e,{data:i,layout:a,isAnimationActive:o,animationBegin:l,animationDuration:c,animationEasing:u,onAnimationEnd:s,onAnimationStart:f}=r,d=n.current,p=fc(r,"recharts-bar-"),[h,y]=(0,t.useState)(!1),v=!h,m=(0,t.useCallback)((()=>{"function"==typeof s&&s(),y(!1)}),[s]),g=(0,t.useCallback)((()=>{"function"==typeof f&&f(),y(!0)}),[f]);return t.createElement(BT,{showLabels:v,rects:i},t.createElement(sc,{animationId:p,begin:l,duration:c,isActive:o,easing:u,onAnimationEnd:m,onAnimationStart:g,key:p},(e=>{var o=1===e?i:null==i?void 0:i.map(((t,r)=>{var n=d&&d[r];if(n)return NT(NT({},t),{},{x:pe(n.x,t.x,e),y:pe(n.y,t.y,e),width:pe(n.width,t.width,e),height:pe(n.height,t.height,e)});if("horizontal"===a){var i=pe(0,t.height,e),o=pe(t.stackedBarStart,t.y,e);return NT(NT({},t),{},{y:o,height:i})}var l=pe(0,t.width,e),c=pe(t.stackedBarStart,t.x,e);return NT(NT({},t),{},{width:l,x:c})}));return e>0&&(n.current=null!=o?o:null),null==o?null:t.createElement(b,null,t.createElement(UT,{props:r,data:o}))})),t.createElement(Lw,{label:r.label}),r.children)}function XT(e){var r=(0,t.useRef)(null);return t.createElement(VT,{previousRectanglesRef:r,props:e})}var HT=0,$T=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:li(e,t)}};class qT extends t.PureComponent{render(){var{hide:e,data:r,dataKey:i,className:a,xAxisId:o,yAxisId:l,needClip:c,background:u,id:s}=this.props;if(e||null==r)return null;var f=n("recharts-bar",a),d=s;return t.createElement(b,{className:f,id:s},c&&t.createElement("defs",null,t.createElement(OI,{clipPathId:d,xAxisId:o,yAxisId:l})),t.createElement(b,{className:"recharts-bar-rectangles",clipPath:c?"url(#clipPath-".concat(d,")"):void 0},t.createElement(KT,{data:r,dataKey:i,background:u,allOtherBarProps:this.props}),t.createElement(XT,this.props)))}}var YT={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:HT,xAxisId:0,yAxisId:0,zIndex:Wh.bar};function GT(e){var r,{xAxisId:n,yAxisId:i,hide:a,legendType:o,minPointSize:l,activeBar:c,animationBegin:u,animationDuration:s,animationEasing:f,isAnimationActive:d}=e,{needClip:p}=wI(n,i),h=ma(),y=Bi(),v=jP(e.children,yx),m=Ze((t=>pT(t,e.id,y,v)));if("vertical"!==h&&"horizontal"!==h)return null;var g=null==m?void 0:m[0];return r=null==g||null==g.height||null==g.width?0:"vertical"===h?g.height/2:g.width/2,t.createElement(gI,{xAxisId:n,yAxisId:i,data:m,dataPointFormatter:$T,errorBarOffset:r},t.createElement(qT,DT({},e,{layout:h,needClip:p,data:m,xAxisId:n,yAxisId:i,hide:a,legendType:o,minPointSize:l,activeBar:c,animationBegin:u,animationDuration:s,animationEasing:f,isAnimationActive:d})))}function ZT(e){var r,n,i=De(e,YT),a=(r=i.stackId,null!=(n=(0,t.useContext)(wT))?n.stackId:null!=r?hi(r):void 0),o=Bi();return t.createElement(iE,{id:i.id,type:"bar"},(e=>t.createElement(t.Fragment,null,t.createElement(QP,{legendPayload:RT(i)}),t.createElement(LT,{dataKey:i.dataKey,stroke:i.stroke,strokeWidth:i.strokeWidth,fill:i.fill,name:i.name,hide:i.hide,unit:i.unit,tooltipType:i.tooltipType,id:e}),t.createElement(pE,{type:"bar",id:e,data:void 0,xAxisId:i.xAxisId,yAxisId:i.yAxisId,zAxisId:0,dataKey:i.dataKey,stackId:a,hide:i.hide,barSize:i.barSize,minPointSize:i.minPointSize,maxBarSize:i.maxBarSize,isPanorama:o}),t.createElement(Cb,{zIndex:i.zIndex},t.createElement(GT,DT({},i,{id:e}))))))}var JT=t.memo(ZT,GI);JT.displayName="Bar";var QT=["option","isActive"];function eD(){return eD=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},eD.apply(null,arguments)}function tD(e){var{option:r,isActive:n}=e,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,QT);return"string"==typeof r?t.createElement($P,eD({option:t.createElement(Ae,eD({type:r},i)),isActive:n,shapeType:"symbols"},i)):t.createElement($P,eD({option:r,isActive:n,shapeType:"symbols"},i))}var rD=it([zy,(e,t,r,n,i)=>i],((e,t)=>e.filter((e=>"scatter"===e.type)).find((e=>e.id===t)))),nD=it([(e,t,r,n,i,a,o)=>gh(e,0,0,o),(e,t,r,n,i,a,o)=>bm(e,"xAxis",t,o),(e,t,r,n,i,a,o)=>gm(e,"xAxis",t,o),(e,t,r,n,i,a,o)=>bm(e,"yAxis",r,o),(e,t,r,n,i,a,o)=>gm(e,"yAxis",r,o),(e,t,r,n)=>wm(e,"zAxis",n,!1),rD,(e,t,r,n,i,a)=>a],((e,t,r,n,i,a,o,l)=>{var c,{chartData:u,dataStartIndex:s,dataEndIndex:f}=e;if(null!=o&&(null!=(c=null!=(null==o?void 0:o.data)&&o.data.length>0?o.data:null==u?void 0:u.slice(s,f+1))&&null!=t&&null!=n&&null!=r&&null!=i&&0!==(null==r?void 0:r.length)&&0!==(null==i?void 0:i.length)))return function(e){var{displayedData:t,xAxis:r,yAxis:n,zAxis:i,scatterSettings:a,xAxisTicks:o,yAxisTicks:l,cells:c}=e,u=ye(r.dataKey)?a.dataKey:r.dataKey,s=ye(n.dataKey)?a.dataKey:n.dataKey,f=i&&i.dataKey,d=i?i.range:My.range,p=d&&d[0],h=r.scale.bandwidth?r.scale.bandwidth():0,y=n.scale.bandwidth?n.scale.bandwidth():0;return t.map(((e,t)=>{var d=li(e,u),v=li(e,s),m=!ye(f)&&li(e,f)||"-",g=[{name:ye(r.dataKey)?a.name:r.name||String(r.dataKey),unit:r.unit||"",value:d,payload:e,dataKey:u,type:a.tooltipType},{name:ye(n.dataKey)?a.name:n.name||String(n.dataKey),unit:n.unit||"",value:v,payload:e,dataKey:s,type:a.tooltipType}];"-"!==m&&null!=i&&g.push({name:i.name||i.dataKey,unit:i.unit||"",value:m,payload:e,dataKey:f,type:a.tooltipType});var b=yi({axis:r,ticks:o,bandSize:h,entry:e,index:t,dataKey:u}),x=yi({axis:n,ticks:l,bandSize:y,entry:e,index:t,dataKey:s}),w="-"!==m&&null!=i?i.scale.map(m):p,O=null==w?0:Math.sqrt(Math.max(w,0)/Math.PI);return sD(sD({},e),{},{cx:b,cy:x,x:null==b?void 0:b-O,y:null==x?void 0:x-O,width:2*O,height:2*O,size:w,node:{x:d,y:v,z:m},tooltipPayload:g,tooltipPosition:{x:b,y:x},payload:e},c&&c[t]&&c[t].props)}))}({displayedData:c,xAxis:t,yAxis:n,zAxis:a,scatterSettings:o,xAxisTicks:r,yAxisTicks:i,cells:l})})),iD=["id"],aD=["onMouseEnter","onClick","onMouseLeave"],oD=["animationBegin","animationDuration","animationEasing","hide","isAnimationActive","legendType","lineJointType","lineType","shape","xAxisId","yAxisId","zAxisId"];function lD(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function cD(){return cD=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},cD.apply(null,arguments)}function uD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function sD(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?uD(Object(r),!0).forEach((function(t){fD(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):uD(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function fD(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var dD=e=>{var{dataKey:t,name:r,fill:n,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:n,value:Pi(r,t),payload:e}]},pD=t.memo((e=>{var{dataKey:r,points:n,stroke:i,strokeWidth:a,fill:o,name:l,hide:c,tooltipType:u,id:s}=e,f={dataDefinedOnItem:null==n?void 0:n.map((e=>e.tooltipPayload)),getPosition:e=>{var t;return null==n||null===(t=n[Number(e)])||void 0===t?void 0:t.tooltipPosition},settings:{stroke:i,strokeWidth:a,fill:o,nameKey:void 0,dataKey:r,name:Pi(l,r),hide:c,type:u,color:o,unit:"",graphicalItemId:s}};return t.createElement(JP,{tooltipEntrySettings:f})}));function hD(e){var{points:r,props:n}=e,{line:i,lineType:a,lineJointType:o}=n;if(!i)return null;var l,c,u=f(n),s=d(i);if("joint"===a)l=r.map((e=>{var t,r;return{x:null!==(t=e.cx)&&void 0!==t?t:null,y:null!==(r=e.cy)&&void 0!==r?r:null}}));else if("fitting"===a){var{xmin:p,xmax:h,a:y,b:v}=(e=>{for(var t=e.length,r=0,n=0,i=0,a=0,o=1/0,l=-1/0,c=0,u=0,s=0;s<t;s++){var f,d;r+=c=(null===(f=e[s])||void 0===f?void 0:f.cx)||0,n+=u=(null===(d=e[s])||void 0===d?void 0:d.cy)||0,i+=c*u,a+=c*c,o=Math.min(o,c),l=Math.max(l,c)}var p=t*a!=r*r?(t*i-r*n)/(t*a-r*r):0;return{xmin:o,xmax:l,a:p,b:(n-p*r)/t}})(r),m=e=>y*e+v;l=[{x:p,y:m(p)},{x:h,y:m(h)}]}var g=sD(sD(sD({},u),{},{fill:"none",stroke:u&&u.fill},s),{},{points:l});return c=t.isValidElement(i)?t.cloneElement(i,g):"function"==typeof i?i(g):t.createElement(kl,cD({},g,{type:o})),t.createElement(b,{className:"recharts-scatter-line",key:"recharts-scatter-line"},c)}function yD(e){var{showLabels:r,points:n,children:i}=e,a=sa(),o=(0,t.useMemo)((()=>null==n?void 0:n.map((e=>{var t,r,n={x:null!==(t=e.x)&&void 0!==t?t:0,y:null!==(r=e.y)&&void 0!==r?r:0,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width};return sD(sD({},n),{},{value:void 0,payload:e.payload,viewBox:n,parentViewBox:a,fill:void 0})}))),[a,n]);return t.createElement(Nw,{value:r?o:void 0},i)}function vD(e){var r,{points:n,allOtherScatterProps:i}=e,{shape:a,activeShape:o,dataKey:l}=i,{id:c}=i,u=lD(i,iD),s=Ze(Wg),{onMouseEnter:d,onClick:p,onMouseLeave:h}=i,y=lD(i,aD),v=YP(d,l,c),m=GP(h),g=ZP(p,l,c);if(r=n,!(Array.isArray(r)&&r.length>0))return null;var x=f(u);return t.createElement(t.Fragment,null,t.createElement(hD,{points:n,props:u}),n.map(((e,r)=>{var n=null!=o&&!1!==o,i=n&&s===String(r),l=n&&i?o:a,u=sD(sD(sD({},x),e),{},{index:r,[Di]:String(c)});return t.createElement(Cb,{key:"symbol-".concat(null==e?void 0:e.cx,"-").concat(null==e?void 0:e.cy,"-").concat(null==e?void 0:e.size,"-").concat(r),zIndex:i?Wh.activeDot:void 0},t.createElement(b,cD({className:"recharts-scatter-symbol"},Ie(y,e,r),{onMouseEnter:v(e,r),onMouseLeave:m(e,r),onClick:g(e,r)}),t.createElement(tD,cD({option:l,isActive:i},u))))})))}function mD(e){var{previousPointsRef:r,props:n}=e,{points:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:c}=n,u=r.current,s=fc(n,"recharts-scatter-"),[f,d]=(0,t.useState)(!1),p=(0,t.useCallback)((()=>{d(!1)}),[]),h=(0,t.useCallback)((()=>{d(!0)}),[]),y=!f;return t.createElement(yD,{showLabels:y,points:i},n.children,t.createElement(sc,{animationId:s,begin:o,duration:l,isActive:a,easing:c,onAnimationEnd:p,onAnimationStart:h,key:s},(e=>{var a=1===e?i:null==i?void 0:i.map(((t,r)=>{var n=u&&u[r];return sD(sD({},t),{},n?{cx:null==t.cx?void 0:pe(n.cx,t.cx,e),cy:null==t.cy?void 0:pe(n.cy,t.cy,e),size:pe(n.size,t.size,e)}:{size:pe(0,t.size,e)})}));return e>0&&(r.current=a),t.createElement(b,null,t.createElement(vD,{points:a,allOtherScatterProps:n,showLabels:y}))})),t.createElement(Lw,{label:n.label}))}var gD=(e,t,r)=>({x:e.cx,y:e.cy,value:Number("x"===r?e.node.x:e.node.y),errorVal:li(e,t)});function bD(e){var{hide:r,points:i,className:a,needClip:o,xAxisId:l,yAxisId:c,id:u}=e,s=(0,t.useRef)(null);if(r)return null;var f=n("recharts-scatter",a),d=u;return t.createElement(Cb,{zIndex:e.zIndex},t.createElement(b,{className:f,clipPath:o?"url(#clipPath-".concat(d,")"):void 0,id:u},o&&t.createElement("defs",null,t.createElement(OI,{clipPathId:d,xAxisId:l,yAxisId:c})),t.createElement(gI,{xAxisId:l,yAxisId:c,data:i,dataPointFormatter:gD,errorBarOffset:0},t.createElement(b,{key:"recharts-scatter-symbols"},t.createElement(mD,{props:e,previousPointsRef:s})))))}var xD={xAxisId:0,yAxisId:0,zAxisId:0,label:!1,line:!1,legendType:"circle",lineType:"joint",lineJointType:"linear",shape:"circle",hide:!1,isAnimationActive:"auto",animationBegin:0,animationDuration:400,animationEasing:"linear",zIndex:Wh.scatter};function wD(e){var r=De(e,xD),{animationBegin:n,animationDuration:i,animationEasing:a,hide:o,isAnimationActive:l,legendType:c,lineJointType:u,lineType:s,shape:f,xAxisId:d,yAxisId:p,zAxisId:h}=r,y=lD(r,oD),{needClip:v}=wI(d,p),m=(0,t.useMemo)((()=>jP(e.children,yx)),[e.children]),g=Bi(),b=Ze((t=>nD(t,d,p,h,e.id,m,g)));return null==v||null==b?null:t.createElement(t.Fragment,null,t.createElement(pD,{dataKey:e.dataKey,points:b,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:e.id}),t.createElement(bD,cD({},y,{xAxisId:d,yAxisId:p,zAxisId:h,lineType:s,lineJointType:u,legendType:c,shape:f,hide:o,isAnimationActive:l,animationBegin:n,animationDuration:i,animationEasing:a,points:b,needClip:v})))}function OD(e){var r=De(e,xD),n=Bi();return t.createElement(iE,{id:r.id,type:"scatter"},(e=>t.createElement(t.Fragment,null,t.createElement(QP,{legendPayload:dD(r)}),t.createElement(pE,{type:"scatter",id:e,data:r.data,xAxisId:r.xAxisId,yAxisId:r.yAxisId,zAxisId:r.zAxisId,dataKey:r.dataKey,hide:r.hide,name:r.name,tooltipType:r.tooltipType,isPanorama:n}),t.createElement(wD,cD({},r,{id:e})))))}var PD=t.memo(OD,GI);PD.displayName="Scatter";var ED=["domain","range"],jD=["domain","range"];function AD(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function SD(e,t){return e===t||!(!Array.isArray(e)||2!==e.length||!Array.isArray(t)||2!==t.length)&&(e[0]===t[0]&&e[1]===t[1])}function kD(e,t){if(e===t)return!0;var{domain:r,range:n}=e,i=AD(e,ED),{domain:a,range:o}=t,l=AD(t,jD);return!!SD(r,a)&&(!!SD(n,o)&&GI(i,l))}var ID=["type"],MD=["dangerouslySetInnerHTML","ticks","scale"],TD=["id","scale"];function DD(){return DD=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},DD.apply(null,arguments)}function CD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ND(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?CD(Object(r),!0).forEach((function(t){_D(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):CD(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _D(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zD(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function RD(e){var r=$e(),n=(0,t.useRef)(null),i=ga(),{type:a}=e,o=zD(e,ID),l=Xh(i,"xAxis",a),c=(0,t.useMemo)((()=>{if(null!=l)return ND(ND({},o),{},{type:l})}),[o,l]);return(0,t.useLayoutEffect)((()=>{null!=c&&(null===n.current?r(GE(c)):n.current!==c&&r(ZE({prev:n.current,next:c})),n.current=c)}),[c,r]),(0,t.useLayoutEffect)((()=>()=>{n.current&&(r(JE(n.current)),n.current=null)}),[r]),null}var LD=e=>{var{xAxisId:r,className:i}=e,a=Ze(Li),o=Bi(),l="xAxis",c=Ze((e=>vm(e,l,r,o))),u=Ze((e=>nm(e,r))),s=Ze((e=>om(e,r))),f=Ze((e=>jy(e,r)));if(null==u||null==s||null==f)return null;var{dangerouslySetInnerHTML:d,ticks:p,scale:h}=e,y=zD(e,MD),{id:v,scale:m}=f,g=zD(f,TD);return t.createElement(Vk,DD({},y,g,{x:s.x,y:s.y,width:u.width,height:u.height,className:n("recharts-".concat(l," ").concat(l),i),viewBox:a,ticks:c,axisType:l}))},KD={allowDataOverflow:Ey.allowDataOverflow,allowDecimals:Ey.allowDecimals,allowDuplicatedCategory:Ey.allowDuplicatedCategory,angle:Ey.angle,axisLine:Kk.axisLine,height:Ey.height,hide:!1,includeHidden:Ey.includeHidden,interval:Ey.interval,label:!1,minTickGap:Ey.minTickGap,mirror:Ey.mirror,orientation:Ey.orientation,padding:Ey.padding,reversed:Ey.reversed,scale:Ey.scale,tick:Ey.tick,tickCount:Ey.tickCount,tickLine:Kk.tickLine,tickSize:Kk.tickSize,type:Ey.type,xAxisId:0},BD=e=>{var r=De(e,KD);return t.createElement(t.Fragment,null,t.createElement(RD,{allowDataOverflow:r.allowDataOverflow,allowDecimals:r.allowDecimals,allowDuplicatedCategory:r.allowDuplicatedCategory,angle:r.angle,dataKey:r.dataKey,domain:r.domain,height:r.height,hide:r.hide,id:r.xAxisId,includeHidden:r.includeHidden,interval:r.interval,minTickGap:r.minTickGap,mirror:r.mirror,name:r.name,orientation:r.orientation,padding:r.padding,reversed:r.reversed,scale:r.scale,tick:r.tick,tickCount:r.tickCount,tickFormatter:r.tickFormatter,ticks:r.ticks,type:r.type,unit:r.unit}),t.createElement(LD,r))},WD=t.memo(BD,kD);WD.displayName="XAxis";var FD=["type"],UD=["dangerouslySetInnerHTML","ticks","scale"],VD=["id","scale"];function XD(){return XD=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},XD.apply(null,arguments)}function HD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?HD(Object(r),!0).forEach((function(t){qD(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):HD(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function qD(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YD(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function GD(e){var r=$e(),n=(0,t.useRef)(null),i=ga(),{type:a}=e,o=YD(e,FD),l=Xh(i,"yAxis",a),c=(0,t.useMemo)((()=>{if(null!=l)return $D($D({},o),{},{type:l})}),[l,o]);return(0,t.useLayoutEffect)((()=>{null!=c&&(null===n.current?r(QE(c)):n.current!==c&&r(ej({prev:n.current,next:c})),n.current=c)}),[c,r]),(0,t.useLayoutEffect)((()=>()=>{n.current&&(r(tj(n.current)),n.current=null)}),[r]),null}function ZD(e){var{yAxisId:r,className:i,width:a,label:o}=e,l=(0,t.useRef)(null),c=(0,t.useRef)(null),u=Ze(Li),s=Bi(),f=$e(),d="yAxis",p=Ze((e=>cm(e,r))),h=Ze((e=>lm(e,r))),y=Ze((e=>vm(e,d,r,s))),v=Ze((e=>ky(e,r)));if((0,t.useLayoutEffect)((()=>{if("auto"===a&&p&&!mw(o)&&!(0,t.isValidElement)(o)&&null!=v){var e=l.current;if(e){var n=e.getCalculatedWidth();Math.round(p.width)!==Math.round(n)&&f(aj({id:r,width:n}))}}}),[y,p,f,o,r,a,v]),null==p||null==h||null==v)return null;var{dangerouslySetInnerHTML:m,ticks:g,scale:b}=e,x=YD(e,UD),{id:w,scale:O}=v,P=YD(v,VD);return t.createElement(Vk,XD({},x,P,{ref:l,labelRef:c,x:h.x,y:h.y,tickTextProps:"auto"===a?{width:void 0}:{width:a},width:p.width,height:p.height,className:n("recharts-".concat(d," ").concat(d),i),viewBox:u,ticks:y,axisType:d}))}var JD={allowDataOverflow:Sy.allowDataOverflow,allowDecimals:Sy.allowDecimals,allowDuplicatedCategory:Sy.allowDuplicatedCategory,angle:Sy.angle,axisLine:Kk.axisLine,hide:!1,includeHidden:Sy.includeHidden,interval:Sy.interval,label:!1,minTickGap:Sy.minTickGap,mirror:Sy.mirror,orientation:Sy.orientation,padding:Sy.padding,reversed:Sy.reversed,scale:Sy.scale,tick:Sy.tick,tickCount:Sy.tickCount,tickLine:Kk.tickLine,tickSize:Kk.tickSize,type:Sy.type,width:Sy.width,yAxisId:0},QD=e=>{var r=De(e,JD);return t.createElement(t.Fragment,null,t.createElement(GD,{interval:r.interval,id:r.yAxisId,scale:r.scale,type:r.type,domain:r.domain,allowDataOverflow:r.allowDataOverflow,dataKey:r.dataKey,allowDuplicatedCategory:r.allowDuplicatedCategory,allowDecimals:r.allowDecimals,tickCount:r.tickCount,padding:r.padding,includeHidden:r.includeHidden,reversed:r.reversed,ticks:r.ticks,width:r.width,orientation:r.orientation,mirror:r.mirror,hide:r.hide,unit:r.unit,name:r.name,angle:r.angle,minTickGap:r.minTickGap,tick:r.tick,tickFormatter:r.tickFormatter}),t.createElement(ZD,r))},eC=t.memo(QD,kD);function tC(e){var r=$e(),n=(0,t.useRef)(null);return(0,t.useLayoutEffect)((()=>{null===n.current?r(rj(e)):n.current!==e&&r(nj({prev:n.current,next:e})),n.current=e}),[e,r]),(0,t.useLayoutEffect)((()=>()=>{n.current&&(r(ij(n.current)),n.current=null)}),[r]),null}eC.displayName="YAxis";var rC={zAxisId:0,range:My.range,scale:My.scale,type:My.type};function nC(e){var r=De(e,rC);return t.createElement(tC,{domain:r.domain,id:r.zAxisId,dataKey:r.dataKey,name:r.name,unit:r.unit,range:r.range,scale:r.scale,type:r.type,allowDuplicatedCategory:My.allowDuplicatedCategory,allowDataOverflow:My.allowDataOverflow,reversed:My.reversed,includeHidden:My.includeHidden})}nC.displayName="ZAxis";var iC={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}};function aC(e){var r=De(e,iC),{animationId:n,from:i,to:a,attributeName:o,isActive:l,canBegin:c,duration:u,easing:s,begin:f,onAnimationEnd:d,onAnimationStart:p,children:h}=r,y="auto"===l?!oc.isSsr:l,v=ac(n+o,r.animationManager),[m,g]=(0,t.useState)((()=>y?i:a)),b=(0,t.useRef)(!1),x=(0,t.useCallback)((()=>{g(i),p()}),[i,p]);return(0,t.useEffect)((()=>{if(!y||!c)return ge;b.current=!0;var e=v.subscribe(g);return v.start([x,f,a,u,d]),()=>{v.stop(),e&&e(),d()}}),[y,c,u,s,f,x,d,v,a,i]),y?c?b.current?h({transition:Ll([o],u,s),[o]:m}):h({[o]:i}):h({[o]:i}):h({[o]:a})}var oC=["direction","width","dataKey","isAnimationActive","animationBegin","animationDuration","animationEasing"];function lC(){return lC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},lC.apply(null,arguments)}function cC(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function uC(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?cC(Object(r),!0).forEach((function(t){sC(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cC(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function sC(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fC(e){var{direction:r,width:n,dataKey:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:c}=e,u=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,oC),s=f(u),{data:d,dataPointFormatter:p,xAxisId:h,yAxisId:y,errorBarOffset:v}=bI(),m=uj(h),g=sj(y);if(null==(null==m?void 0:m.scale)||null==(null==g?void 0:g.scale)||null==d)return null;if("x"===r&&"number"!==m.type)return null;var x=d.map(((e,u)=>{var{x:f,y:d,value:h,errorVal:y}=p(e,i,r);if(!y||null==f||null==d)return null;var x,w,O=[];if(Array.isArray(y)){var[P,E]=y;if(null==P||null==E)return null;x=P,w=E}else x=w=y;if("x"===r){var{scale:j}=m,A=d+v,S=A+n,k=A-n,I=j.map(h-x),M=j.map(h+w);null!=I&&null!=M&&(O.push({x1:M,y1:S,x2:M,y2:k}),O.push({x1:I,y1:A,x2:M,y2:A}),O.push({x1:I,y1:S,x2:I,y2:k}))}else if("y"===r){var{scale:T}=g,D=f+v,C=D-n,N=D+n,_=T.map(h-x),z=T.map(h+w);null!=_&&null!=z&&(O.push({x1:C,y1:z,x2:N,y2:z}),O.push({x1:D,y1:_,x2:D,y2:z}),O.push({x1:C,y1:_,x2:N,y2:_}))}var R="x"===r?"scaleX":"scaleY",L="".concat(f+v,"px ").concat(d+v,"px");return t.createElement(b,lC({className:"recharts-errorBar",key:"bar-".concat(f,"-").concat(d,"-").concat(h,"-").concat(u)},s),O.map(((e,n)=>{var i=a?{transformOrigin:L}:void 0;return t.createElement(aC,{animationId:"error-bar-".concat(r,"_").concat(e.x1,"-").concat(e.x2,"-").concat(e.y1,"-").concat(e.y2),from:"".concat(R,"(0)"),to:"".concat(R,"(1)"),attributeName:"transform",begin:o,easing:c,isActive:a,duration:l,key:"errorbar-".concat(u,"-").concat(e.x1,"-").concat(e.y1,"-").concat(e.x2,"-").concat(e.y2,"-").concat(n)},(r=>t.createElement("line",lC({},e,{style:uC(uC({},i),r)}))))})))}));return t.createElement(b,{className:"recharts-errorBars"},x)}var dC={stroke:"black",strokeWidth:1.5,width:5,offset:0,isAnimationActive:!0,animationBegin:0,animationDuration:400,animationEasing:"ease-in-out",zIndex:Wh.line};function pC(e){var r,n,i=(r=e.direction,n=ma(),null!=r?r:null!=n&&"horizontal"===n?"y":"x"),a=De(e,dC),{width:o,isAnimationActive:l,animationBegin:c,animationDuration:u,animationEasing:s,zIndex:f}=a;return t.createElement(t.Fragment,null,t.createElement(xI,{dataKey:a.dataKey,direction:i}),t.createElement(Cb,{zIndex:f},t.createElement(fC,lC({},a,{direction:i,width:o,isAnimationActive:l,animationBegin:c,animationDuration:u,animationEasing:s}))))}pC.displayName="ErrorBar";var hC=it([(e,t)=>t,va,ly,yy,Dg,zg,ub,zi],((e,t,r,n,i,a,o,l)=>{if(e&&t&&n&&i&&a)return"horizontal"===t||"vertical"===t?((e,t,r,n,i,a,o)=>{if(e&&r&&n&&i&&function(e,t){var{chartX:r,chartY:n}=e;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}(e,o)){var l=((e,t)=>"horizontal"===t?e.chartX:"vertical"===t?e.chartY:void 0)(e,t),c=ib(l,a,i,r,n),u=((e,t,r,n)=>{var i=t.find((e=>e&&e.index===r));if(i){if("horizontal"===e)return{x:i.coordinate,y:n.chartY};if("vertical"===e)return{x:n.chartX,y:i.coordinate}}return{x:0,y:0}})(t,i,c,e);return{activeIndex:String(c),activeCoordinate:u}}})(e,t,n,i,a,o,l):bb(e,t,r,n,i,a,o)})),yC=e=>{var t=e.currentTarget.getBoundingClientRect(),r=t.width/e.currentTarget.offsetWidth,n=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/r),chartY:Math.round((e.clientY-t.top)/n)}},vC=Hr("mouseClick"),mC=Rn();mC.startListening({actionCreator:vC,effect:(e,t)=>{var r=e.payload,n=hC(t.getState(),yC(r));null!=(null==n?void 0:n.activeIndex)&&t.dispatch(Km({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var gC=Hr("mouseMove"),bC=Rn(),xC=null;function wC(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":"children"===e&&"object"==typeof t&&null!==t?"<<CHILDREN>>":t}bC.startListening({actionCreator:gC,effect:(e,t)=>{var r=e.payload;null!==xC&&cancelAnimationFrame(xC);var n=yC(r);xC=requestAnimationFrame((()=>{var e=t.getState();if("axis"===Am(e,e.tooltip.settings.shared)){var r=hC(e,n);null!=(null==r?void 0:r.activeIndex)?t.dispatch(Lm({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate})):t.dispatch(zm())}xC=null}))}});var OC={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},PC=en({name:"rootProps",initialState:OC,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=null!==(r=t.payload.barGap)&&void 0!==r?r:OC.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),EC=PC.reducer,{updateOptions:jC}=PC.actions,AC=en({name:"polarOptions",initialState:null,reducers:{updatePolarOptions:(e,t)=>t.payload}}),{updatePolarOptions:SC}=AC.actions,kC=AC.reducer,IC=Hr("keyDown"),MC=Hr("focus"),TC=Rn();TC.startListening({actionCreator:IC,effect:(e,t)=>{var r=t.getState();if(!1!==r.rootProps.accessibilityLayer){var{keyboardInteraction:n}=r.tooltip,i=e.payload;if("ArrowRight"===i||"ArrowLeft"===i||"Enter"===i){var a=qm(n,ug(r),ev(r),kg(r)),o=null==a?-1:Number(a);if(Number.isFinite(o)&&!(o<0)){var l=zg(r);if("Enter"!==i){var c=o+("ArrowRight"===i?1:-1)*("left-to-right"===Om(r)?1:-1);if(!(null==l||c>=l.length||c<0)){var u=hb(r,"axis","hover",String(c));t.dispatch(Wm({active:!0,activeIndex:c.toString(),activeCoordinate:u}))}}else{var s=hb(r,"axis","hover",String(n.index));t.dispatch(Wm({active:!n.active,activeIndex:n.index,activeCoordinate:s}))}}}}}}),TC.startListening({actionCreator:MC,effect:(e,t)=>{var r=t.getState();if(!1!==r.rootProps.accessibilityLayer){var{keyboardInteraction:n}=r.tooltip;if(!n.active&&null==n.index){var i=hb(r,"axis","hover",String("0"));t.dispatch(Wm({active:!0,activeIndex:"0",activeCoordinate:i}))}}}});var DC=Hr("externalEvent"),CC=Rn(),NC=new Map;CC.startListening({actionCreator:DC,effect:(e,t)=>{var{handler:r,reactEvent:n}=e.payload;if(null!=r){n.persist();var i=n.type,a=NC.get(i);void 0!==a&&cancelAnimationFrame(a);var o=requestAnimationFrame((()=>{try{var e=t.getState(),a={activeCoordinate:$g(e),activeDataKey:Ug(e),activeIndex:Wg(e),activeLabel:Fg(e),activeTooltipIndex:Wg(e),isTooltipActive:qg(e)};r(a,n)}finally{NC.delete(i)}}));NC.set(i,o)}}});var _C=it([Jm],(e=>e.tooltipItemPayloads)),zC=it([_C,(e,t)=>t,(e,t,r)=>r],((e,t,r)=>{if(null!=t){var n=e.find((e=>e.settings.graphicalItemId===r));if(null!=n){var{getPosition:i}=n;if(null!=i)return i(t)}}})),RC=Hr("touchMove"),LC=Rn();LC.startListening({actionCreator:RC,effect:(e,t)=>{var r=e.payload;if(null!=r.touches&&0!==r.touches.length){var n=t.getState(),i=Am(n,n.tooltip.settings.shared);if("axis"===i){var a=r.touches[0];if(null==a)return;var o=hC(n,yC({clientX:a.clientX,clientY:a.clientY,currentTarget:r.currentTarget}));null!=(null==o?void 0:o.activeIndex)&&t.dispatch(Lm({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if("item"===i){var l,c=r.touches[0];if(null==document.elementFromPoint||null==c)return;var u=document.elementFromPoint(c.clientX,c.clientY);if(!u||!u.getAttribute)return;var s=u.getAttribute(Ti),f=null!==(l=u.getAttribute(Di))&&void 0!==l?l:void 0,d=og(n).find((e=>e.id===f));if(null==s||null==d||null==f)return;var{dataKey:p}=d,h=zC(n,s,f);t.dispatch(Nm({activeDataKey:p,activeIndex:s,activeCoordinate:h,activeGraphicalItemId:f}))}}}});var KC=Er({brush:yS,cartesianAxis:oj,chartData:tx,errorBars:hI,graphicalItems:fE,layout:Yn,legend:xo,options:qb,polarAxis:LO,polarOptions:kC,referenceElements:HS,rootProps:EC,tooltip:Fm,zIndex:Db}),BC=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Chart";return Jr({reducer:KC,preloadedState:e,middleware:e=>{var t;return e({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes(null!==(t="production")?t:"")}).concat([mC.middleware,bC.middleware,TC.middleware,CC.middleware,LC.middleware])},enhancers:e=>{var t=e;return"function"==typeof e&&(t=e()),t.concat(function(e){return void 0===e&&(e={type:"raf"}),function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var i=t.apply(void 0,r),a=!0,o=!1,l=!1,c=new Set,u="tick"===e.type?Wn:"raf"===e.type?Un:"callback"===e.type?e.queueNotification:Fn(e.timeout),s=function(){l=!1,o&&(o=!1,c.forEach((function(e){return e()})))};return Object.assign({},i,{subscribe:function(e){var t=i.subscribe((function(){return a&&e()}));return c.add(e),function(){t(),c.delete(e)}},dispatch:function(e){var t;try{return a=!(null==(t=null==e?void 0:e.meta)?void 0:t[Kn]),(o=!a)&&(l||(l=!0,u(s))),i.dispatch(e)}finally{a=!0}}})}}}({type:"raf"}))},devTools:oc.devToolsEnabled&&{serialize:{replacer:wC},name:"recharts-".concat(t)}})};function WC(e){var{preloadedState:r,children:n,reduxStoreName:i}=e,a=Bi(),o=(0,t.useRef)(null);if(a)return n;null==o.current&&(o.current=BC(r,i));var l=Xe;return t.createElement(VI,{context:l,store:o.current},n)}function FC(e){var{layout:r,margin:n}=e,i=$e(),a=Bi();return(0,t.useEffect)((()=>{a||(i(Hn(r)),i(Xn(n)))}),[i,a,r,n]),null}var UC=(0,t.memo)(FC,GI);function VC(e){var r=$e();return(0,t.useEffect)((()=>{r(jC(e))}),[r,e]),null}function XC(e){var{zIndex:r,isPanorama:n}=e,i=(0,t.useRef)(null),a=$e();return(0,t.useLayoutEffect)((()=>(i.current&&a(Mb({zIndex:r,element:i.current,isPanorama:n})),()=>{a(Tb({zIndex:r,isPanorama:n}))})),[a,r,n]),t.createElement("g",{tabIndex:-1,ref:i})}function HC(e){var{children:r,isPanorama:n}=e,i=Ze(wb);if(!i||0===i.length)return r;var a=i.filter((e=>e<0)),o=i.filter((e=>e>0));return t.createElement(t.Fragment,null,a.map((e=>t.createElement(XC,{key:e,zIndex:e,isPanorama:n}))),r,o.map((e=>t.createElement(XC,{key:e,zIndex:e,isPanorama:n}))))}var $C=["children"];function qC(){return qC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},qC.apply(null,arguments)}var YC={width:"100%",height:"100%",display:"block"},GC=(0,t.forwardRef)(((e,r)=>{var n=pa(),i=ha(),a=$o();if(!ni(n)||!ni(i))return null;var o,l,{children:c,otherAttributes:u,title:s,desc:f}=e;return null!=u&&(o="number"==typeof u.tabIndex?u.tabIndex:a?0:void 0,l="string"==typeof u.role?u.role:a?"application":void 0),t.createElement(v,qC({},u,{title:s,desc:f,role:l,tabIndex:o,width:n,height:i,style:YC,ref:r}),c)})),ZC=e=>{var{children:r}=e,n=Ze(Ui);if(!n)return null;var{width:i,height:a,y:o,x:l}=n;return t.createElement(v,{width:i,height:a,x:l,y:o},r)},JC=(0,t.forwardRef)(((e,r)=>{var{children:n}=e,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,$C);return Bi()?t.createElement(ZC,null,t.createElement(HC,{isPanorama:!0},n)):t.createElement(GC,qC({ref:r},i),t.createElement(HC,{isPanorama:!1},n))}));function QC(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function eN(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?QC(Object(r),!0).forEach((function(t){tN(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):QC(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function tN(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rN(){return rN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rN.apply(null,arguments)}var nN=()=>(lx(),null);function iN(e){if("number"==typeof e)return e;if("string"==typeof e){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var aN=(0,t.forwardRef)(((e,r)=>{var n,i,a=(0,t.useRef)(null),[o,l]=(0,t.useState)({containerWidth:iN(null===(n=e.style)||void 0===n?void 0:n.width),containerHeight:iN(null===(i=e.style)||void 0===i?void 0:i.height)}),c=(0,t.useCallback)(((e,t)=>{l((r=>{var n=Math.round(e),i=Math.round(t);return r.containerWidth===n&&r.containerHeight===i?r:{containerWidth:n,containerHeight:i}}))}),[]),u=(0,t.useCallback)((e=>{if("function"==typeof r&&r(e),null!=e&&"undefined"!=typeof ResizeObserver){var{width:t,height:n}=e.getBoundingClientRect();c(t,n);var i=new ResizeObserver((e=>{var t=e[0];if(null!=t){var{width:r,height:n}=t.contentRect;c(r,n)}}));i.observe(e),a.current=i}}),[r,c]);return(0,t.useEffect)((()=>()=>{var e=a.current;null!=e&&e.disconnect()}),[c]),t.createElement(t.Fragment,null,t.createElement(Oa,{width:o.containerWidth,height:o.containerHeight}),t.createElement("div",rN({ref:u},e)))})),oN=(0,t.forwardRef)(((e,r)=>{var{width:n,height:i}=e,[a,o]=(0,t.useState)({containerWidth:iN(n),containerHeight:iN(i)}),l=(0,t.useCallback)(((e,t)=>{o((r=>{var n=Math.round(e),i=Math.round(t);return r.containerWidth===n&&r.containerHeight===i?r:{containerWidth:n,containerHeight:i}}))}),[]),c=(0,t.useCallback)((e=>{if("function"==typeof r&&r(e),null!=e){var{width:t,height:n}=e.getBoundingClientRect();l(t,n)}}),[r,l]);return t.createElement(t.Fragment,null,t.createElement(Oa,{width:a.containerWidth,height:a.containerHeight}),t.createElement("div",rN({ref:c},e)))})),lN=(0,t.forwardRef)(((e,r)=>{var{width:n,height:i}=e;return t.createElement(t.Fragment,null,t.createElement(Oa,{width:n,height:i}),t.createElement("div",rN({ref:r},e)))})),cN=(0,t.forwardRef)(((e,r)=>{var{width:n,height:i}=e;return"string"==typeof n||"string"==typeof i?t.createElement(oN,rN({},e,{ref:r})):"number"==typeof n&&"number"==typeof i?t.createElement(lN,rN({},e,{width:n,height:i,ref:r})):t.createElement(t.Fragment,null,t.createElement(Oa,{width:n,height:i}),t.createElement("div",rN({ref:r},e)))}));var uN=(0,t.forwardRef)(((e,r)=>{var{children:i,className:a,height:o,onClick:l,onContextMenu:c,onDoubleClick:u,onMouseDown:s,onMouseEnter:f,onMouseLeave:d,onMouseMove:p,onMouseUp:h,onTouchEnd:y,onTouchMove:v,onTouchStart:m,style:g,width:b,responsive:x,dispatchTouchEvents:O=!0}=e,P=(0,t.useRef)(null),E=$e(),[j,A]=(0,t.useState)(null),[S,k]=(0,t.useState)(null),I=function(){var e=$e(),[r,n]=(0,t.useState)(null),i=Ze(Ai);return(0,t.useEffect)((()=>{if(null!=r){var t=r.getBoundingClientRect().width/r.offsetWidth;ri(t)&&t!==i&&e(qn(t))}}),[r,e,i]),n}(),M=oa(),T=(null==M?void 0:M.width)>0?M.width:b,D=(null==M?void 0:M.height)>0?M.height:o,C=(0,t.useCallback)((e=>{I(e),"function"==typeof r&&r(e),A(e),k(e),null!=e&&(P.current=e)}),[I,r,A,k]),N=(0,t.useCallback)((e=>{E(vC(e)),E(DC({handler:l,reactEvent:e}))}),[E,l]),_=(0,t.useCallback)((e=>{E(gC(e)),E(DC({handler:f,reactEvent:e}))}),[E,f]),z=(0,t.useCallback)((e=>{E(zm()),E(DC({handler:d,reactEvent:e}))}),[E,d]),R=(0,t.useCallback)((e=>{E(gC(e)),E(DC({handler:p,reactEvent:e}))}),[E,p]),L=(0,t.useCallback)((()=>{E(MC())}),[E]),K=(0,t.useCallback)((e=>{E(IC(e.key))}),[E]),B=(0,t.useCallback)((e=>{E(DC({handler:c,reactEvent:e}))}),[E,c]),W=(0,t.useCallback)((e=>{E(DC({handler:u,reactEvent:e}))}),[E,u]),F=(0,t.useCallback)((e=>{E(DC({handler:s,reactEvent:e}))}),[E,s]),U=(0,t.useCallback)((e=>{E(DC({handler:h,reactEvent:e}))}),[E,h]),V=(0,t.useCallback)((e=>{E(DC({handler:m,reactEvent:e}))}),[E,m]),X=(0,t.useCallback)((e=>{O&&E(RC(e)),E(DC({handler:v,reactEvent:e}))}),[E,O,v]),H=(0,t.useCallback)((e=>{E(DC({handler:y,reactEvent:e}))}),[E,y]),$=function(e){return e?aN:cN}(x);return t.createElement(Wb.Provider,{value:j},t.createElement(w.Provider,{value:S},t.createElement($,{width:null!=T?T:null==g?void 0:g.width,height:null!=D?D:null==g?void 0:g.height,className:n("recharts-wrapper",a),style:eN({position:"relative",cursor:"default",width:T,height:D},g),onClick:N,onContextMenu:B,onDoubleClick:W,onFocus:L,onKeyDown:K,onMouseDown:F,onMouseEnter:_,onMouseLeave:z,onMouseMove:R,onMouseUp:U,onTouchEnd:H,onTouchMove:X,onTouchStart:V,ref:C},t.createElement(nN,null),i)))})),sN=["width","height","responsive","children","className","style","compact","title","desc"];var fN=(0,t.forwardRef)(((e,r)=>{var{width:n,height:i,responsive:a,children:o,className:l,style:c,compact:u,title:s,desc:d}=e,p=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,sN),h=f(p);return u?t.createElement(t.Fragment,null,t.createElement(Oa,{width:n,height:i}),t.createElement(JC,{otherAttributes:h,title:s,desc:d},o)):t.createElement(uN,{className:l,style:c,width:n,height:i,responsive:null!=a&&a,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},t.createElement(JC,{otherAttributes:h,title:s,desc:d,ref:r},t.createElement(qS,null,o)))}));function dN(){return dN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},dN.apply(null,arguments)}var pN={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},hN=(0,t.forwardRef)((function(e,r){var n,i=De(e.categoricalChartProps,pN),{chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,categoricalChartProps:u}=e,s={chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return t.createElement(WC,{preloadedState:{options:s},reduxStoreName:null!==(n=u.id)&&void 0!==n?n:a},t.createElement(aS,{chartData:u.data}),t.createElement(UC,{layout:i.layout,margin:i.margin}),t.createElement(VC,{baseValue:i.baseValue,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),t.createElement(fN,dN({},i,{ref:r})))})),yN=["axis"],vN=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:yN,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r}))),mN=["axis","item"],gN=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:mN,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r})));function bN(e){var r=$e();return(0,t.useEffect)((()=>{r(SC(e))}),[r,e]),null}var xN=["layout"];function wN(){return wN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wN.apply(null,arguments)}var ON={accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},PN=(0,t.forwardRef)((function(e,r){var n,i=De(e.categoricalChartProps,ON),{layout:a}=i,o=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(i,xN),{chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:u,tooltipPayloadSearcher:s}=e,f={chartName:l,defaultTooltipEventType:c,validateTooltipEventTypes:u,tooltipPayloadSearcher:s,eventEmitter:void 0};return t.createElement(WC,{preloadedState:{options:f},reduxStoreName:null!==(n=i.id)&&void 0!==n?n:l},t.createElement(aS,{chartData:i.data}),t.createElement(UC,{layout:a,margin:i.margin}),t.createElement(VC,{baseValue:void 0,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),t.createElement(bN,{cx:i.cx,cy:i.cy,startAngle:i.startAngle,endAngle:i.endAngle,innerRadius:i.innerRadius,outerRadius:i.outerRadius}),t.createElement(fN,wN({},o,{ref:r})))}));function EN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function jN(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?EN(Object(r),!0).forEach((function(t){AN(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):EN(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function AN(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var SN=["item"],kN=jN(jN({},ON),{},{layout:"centric",startAngle:0,endAngle:360}),IN=(0,t.forwardRef)(((e,r)=>{var n=De(e,kN);return t.createElement(PN,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:SN,tooltipPayloadSearcher:Hb,categoricalChartProps:n,ref:r})})),MN=a(1576),TN=a.n(MN),DN=["width","height","className","style","children","type"];function CN(){return CN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},CN.apply(null,arguments)}function NN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?NN(Object(r),!0).forEach((function(t){zN(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):NN(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function zN(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var RN="value";var LN=(e,t)=>{if(e&&t)return ee()(e,t)},KN={chartName:"Treemap",defaultTooltipEventType:"item",validateTooltipEventTypes:["item"],tooltipPayloadSearcher:LN,eventEmitter:void 0},BN=e=>{var t,{depth:r,node:n,index:i,dataKey:a,nameKey:o,nestedActiveTooltipIndex:l}=e,c=0===r?"":function(e){return"".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"","children[").concat(e,"]")}(i,l),{children:u}=n,s=r+1,f=u&&u.length?u.map(((e,t)=>BN({depth:s,node:e,index:t,dataKey:a,nameKey:o,nestedActiveTooltipIndex:c}))):null;if(f&&f.length)t=f.reduce(((e,t)=>e+t.value),0);else{var d=n[a],p="number"==typeof d?d:0;t=ae(p)||p<=0?0:p}return _N(_N({},n),{},{children:f,name:li(n,o,""),[RN]:t,depth:r,index:i,tooltipIndex:c})},WN=(e,t,r)=>{var n=t*t,i=e.area*e.area,{min:a,max:o}=e.reduce(((e,t)=>({min:Math.min(e.min,t.area),max:Math.max(e.max,t.area)})),{min:1/0,max:0});return i?Math.max(n*o*r/i,i/(n*a*r)):1/0},FN=(e,t,r,n)=>t===r.width?((e,t,r,n)=>{var i=t?Math.round(e.area/t):0;(n||i>r.height)&&(i=r.height);for(var a,o=r.x,l=0,c=e.length;l<c;l++)null!=(a=e[l])&&(a.x=o,a.y=r.y,a.height=i,a.width=Math.min(i?Math.round(a.area/i):0,r.x+r.width-o),o+=a.width);return null!=a&&(a.width+=r.x+r.width-o),_N(_N({},r),{},{y:r.y+i,height:r.height-i})})(e,t,r,n):((e,t,r,n)=>{var i=t?Math.round(e.area/t):0;(n||i>r.width)&&(i=r.width);for(var a,o=r.y,l=0,c=e.length;l<c;l++)null!=(a=e[l])&&(a.x=r.x,a.y=o,a.width=i,a.height=Math.min(i?Math.round(a.area/i):0,r.y+r.height-o),o+=a.height);return a&&(a.height+=r.y+r.height-o),_N(_N({},r),{},{x:r.x+i,width:r.width-i})})(e,t,r,n),UN=(e,t)=>{var{children:r}=e;if(r&&r.length){var n,i,a=(e=>({x:e.x,y:e.y,width:e.width,height:e.height}))(e),o=[],l=1/0,c=Math.min(a.width,a.height),u=((e,t)=>{var r=t<0?0:t;return e.map((e=>{var t=e[RN]*r;return _N(_N({},e),{},{area:ae(t)||t<=0?0:t})}))})(r,a.width*a.height/e[RN]),s=u.slice();for(o.area=0;s.length>0;){var f,d;if([n]=s,null!=n)if(o.push(n),o.area+=n.area,(i=WN(o,c,t))<=l)s.shift(),l=i;else o.area-=null!==(f=null===(d=o.pop())||void 0===d?void 0:d.area)&&void 0!==f?f:0,a=FN(o,c,a,!1),c=Math.min(a.width,a.height),o.length=o.area=0,l=1/0}return o.length&&(a=FN(o,c,a,!0),o.length=o.area=0),_N(_N({},e),{},{children:u.map((e=>UN(e,t)))})}return e},VN={aspectRatio:.5*(1+Math.sqrt(5)),dataKey:"value",nameKey:"name",type:"flat",isAnimationActive:"auto",isUpdateAnimationActive:"auto",animationBegin:0,animationDuration:1500,animationEasing:"linear"},XN={isAnimationFinished:!1,formatRoot:null,currentRoot:void 0,nestIndex:[],prevAspectRatio:VN.aspectRatio,prevDataKey:VN.dataKey};function HN(e){var{content:r,nodeProps:n,type:i,colorPanel:a,onMouseEnter:o,onMouseLeave:l,onClick:c}=e;if(t.isValidElement(r))return t.createElement(b,{onMouseEnter:o,onMouseLeave:l,onClick:c},t.cloneElement(r,n));if("function"==typeof r)return t.createElement(b,{onMouseEnter:o,onMouseLeave:l,onClick:c},r(n));var{x:u,y:s,width:f,height:d,index:p}=n,h=null;f>10&&d>10&&n.children&&"nest"===i&&(h=t.createElement(Hw,{points:[{x:u+2,y:s+d/2},{x:u+6,y:s+d/2+3},{x:u+2,y:s+d/2+6}]}));var y=null,v=jx(n.name);f>20&&d>20&&v.width<f&&v.height<d&&(y=t.createElement("text",{x:u+8,y:s+d/2+7,fontSize:14},n.name));var m=a||Mi;return t.createElement("g",null,t.createElement(Dc,CN({fill:n.depth<2?m[p%m.length]:"rgba(255,255,255,0)",stroke:"#fff"},TN()(n,["children"]),{onMouseEnter:o,onMouseLeave:l,onClick:c,"data-recharts-item-index":n.tooltipIndex})),h,y)}function $N(e){var r=$e(),n={x:e.nodeProps.x+e.nodeProps.width/2,y:e.nodeProps.y+e.nodeProps.height/2};return t.createElement(HN,CN({},e,{onMouseEnter:()=>{r(Nm({activeIndex:e.nodeProps.tooltipIndex,activeDataKey:e.dataKey,activeCoordinate:n,activeGraphicalItemId:e.id}))},onMouseLeave:()=>{},onClick:()=>{r(Rm({activeIndex:e.nodeProps.tooltipIndex,activeDataKey:e.dataKey,activeCoordinate:n,activeGraphicalItemId:e.id}))}}))}var qN=t.memo((e=>{var{dataKey:r,nameKey:n,stroke:i,fill:a,currentRoot:o,id:l}=e,c={dataDefinedOnItem:o,getPosition:ge,settings:{stroke:i,strokeWidth:void 0,fill:a,dataKey:r,nameKey:n,name:void 0,hide:!1,type:void 0,color:a,unit:"",graphicalItemId:l}};return t.createElement(JP,{tooltipEntrySettings:c})})),YN={top:0,right:0,bottom:0,left:0};function GN(e){var{content:r,nodeProps:n,isLeaf:i,treemapProps:a,onNestClick:o}=e,{id:l,isAnimationActive:c,animationBegin:u,animationDuration:s,animationEasing:f,isUpdateAnimationActive:d,type:p,colorPanel:h,dataKey:y,onAnimationStart:v,onAnimationEnd:m,onMouseEnter:g,onClick:x,onMouseLeave:w}=a,{width:O,height:P,x:E,y:j}=n,A=-E-O,S=e=>{!i&&"nest"!==p||"function"!=typeof g||g(n,e)},k=e=>{!i&&"nest"!==p||"function"!=typeof w||w(n,e)},I=()=>{"nest"===p&&o(n),!i&&"nest"!==p||"function"!=typeof x||x(n)},M=(0,t.useCallback)((()=>{"function"==typeof m&&m()}),[m]),T=(0,t.useCallback)((()=>{"function"==typeof v&&v()}),[v]);return t.createElement(aC,{animationId:"treemap-".concat(n.tooltipIndex),from:"translate(".concat(A,"px, ").concat(0,"px)"),to:"translate(0, 0)",attributeName:"transform",begin:u,easing:f,isActive:c,duration:s,onAnimationStart:T,onAnimationEnd:M},(e=>t.createElement(b,{onMouseEnter:S,onMouseLeave:k,onClick:I,style:_N(_N({},e),{},{transformOrigin:"".concat(E," ").concat(j)})},t.createElement($N,{id:l,content:r,dataKey:y,nodeProps:_N(_N({},n),{},{isAnimationActive:c,isUpdateAnimationActive:!d,width:O,height:P,x:E,y:j}),type:p,colorPanel:h}))))}class ZN extends t.PureComponent{constructor(){super(...arguments),zN(this,"state",_N({},XN)),zN(this,"handleClick",(e=>{var{onClick:t,type:r}=this.props;if("nest"===r&&e.children){var{width:n,height:i,dataKey:a,nameKey:o,aspectRatio:l}=this.props,c=BN({depth:0,node:_N(_N({},e),{},{x:0,y:0,width:n,height:i}),index:0,dataKey:a,nameKey:o,nestedActiveTooltipIndex:e.tooltipIndex}),u=UN(c,l),{nestIndex:s}=this.state;s.push(e),this.setState({formatRoot:u,currentRoot:c,nestIndex:s})}t&&t(e)})),zN(this,"handleTouchMove",(e=>{var t=e.touches[0];if(null!=t){var r=document.elementFromPoint(t.clientX,t.clientY);if(r&&r.getAttribute&&null!=this.state.formatRoot){var n=r.getAttribute("data-recharts-item-index"),i=LN(this.state.formatRoot,n);if(function(e){return null!=e&&"object"==typeof e&&"x"in e&&"y"in e&&"width"in e&&"height"in e&&"number"==typeof e.x&&"number"==typeof e.y&&"number"==typeof e.width&&"number"==typeof e.height}(i)){var{dataKey:a,dispatch:o}=this.props,l={x:i.x+i.width/2,y:i.y+i.height/2};o(Nm({activeIndex:n,activeDataKey:a,activeCoordinate:l,activeGraphicalItemId:this.props.id}))}}}}))}static getDerivedStateFromProps(e,t){if(e.data!==t.prevData||e.type!==t.prevType||e.width!==t.prevWidth||e.height!==t.prevHeight||e.dataKey!==t.prevDataKey||e.aspectRatio!==t.prevAspectRatio){var r=BN({depth:0,node:{children:e.data,x:0,y:0,width:e.width,height:e.height},index:0,dataKey:e.dataKey,nameKey:e.nameKey}),n=UN(r,e.aspectRatio);return _N(_N({},t),{},{formatRoot:n,currentRoot:r,nestIndex:[r],prevAspectRatio:e.aspectRatio,prevData:e.data,prevWidth:e.width,prevHeight:e.height,prevDataKey:e.dataKey,prevType:e.type})}return null}handleNestIndex(e,t){var{nestIndex:r}=this.state,{width:n,height:i,dataKey:a,nameKey:o,aspectRatio:l}=this.props,c=BN({depth:0,node:_N(_N({},e),{},{x:0,y:0,width:n,height:i}),index:0,dataKey:a,nameKey:o,nestedActiveTooltipIndex:e.tooltipIndex}),u=UN(c,l);r=r.slice(0,t+1),this.setState({formatRoot:u,currentRoot:e,nestIndex:r})}renderNode(e,r){var{content:n,type:i}=this.props,a=_N(_N(_N({},f(this.props)),r),{},{root:e}),o=!r.children||!r.children.length,{currentRoot:l}=this.state;return!((null==l?void 0:l.children)||[]).filter((e=>e.depth===r.depth&&e.name===r.name)).length&&e.depth&&"nest"===i?null:t.createElement(b,{key:"recharts-treemap-node-".concat(a.x,"-").concat(a.y,"-").concat(a.name),className:"recharts-treemap-depth-".concat(r.depth)},t.createElement(GN,{isLeaf:o,content:n,nodeProps:a,treemapProps:this.props,onNestClick:this.handleClick}),r.children&&r.children.length?r.children.map((e=>this.renderNode(r,e))):null)}renderAllNodes(){var{formatRoot:e}=this.state;return e?this.renderNode(e,e):null}renderNestIndex(){var{nameKey:e,nestIndexContent:r}=this.props,{nestIndex:n}=this.state;return t.createElement("div",{className:"recharts-treemap-nest-index-wrapper",style:{marginTop:"8px",textAlign:"center"}},n.map(((n,i)=>{var a,o=ee()(n,e,"root"),l="string"==typeof o?o:"root";return t.isValidElement(r)&&(a=t.cloneElement(r,n,i)),a="function"==typeof r?r(n,i):l,t.createElement("div",{onClick:this.handleNestIndex.bind(this,n,i),key:"nest-index-".concat(se()),className:"recharts-treemap-nest-index-box",style:{cursor:"pointer",display:"inline-block",padding:"0 7px",background:"#000",color:"#fff",marginRight:"3px"}},a)})))}render(){var e=this.props,{width:r,height:n,className:i,style:a,children:o,type:l}=e,c=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,DN),u=f(c);return t.createElement(t.Fragment,null,t.createElement(qN,{dataKey:this.props.dataKey,nameKey:this.props.nameKey,stroke:this.props.stroke,fill:this.props.fill,currentRoot:this.state.currentRoot,id:this.props.id}),t.createElement(v,CN({},u,{width:r,height:"nest"===l?n-30:n,onTouchMove:this.handleTouchMove}),this.renderAllNodes(),o),"nest"===l&&this.renderNestIndex())}}function JN(e){var r=$e(),n=pa(),i=ha();if(!ni(n)||!ni(i))return null;var{id:a}=e;return t.createElement(iE,{id:a,type:"treemap"},(a=>t.createElement(ZN,CN({},e,{id:a,width:n,height:i,dispatch:r}))))}function QN(e){var r,n=De(e,VN),{className:i,style:a,width:o,height:l}=n,[c,u]=(0,t.useState)(null);return t.createElement(WC,{preloadedState:{options:KN},reduxStoreName:null!==(r=n.className)&&void 0!==r?r:"Treemap"},t.createElement(Pa,{margin:YN}),t.createElement(uN,{dispatchTouchEvents:!1,className:i,style:a,width:o,height:l,responsive:!1,ref:e=>{null==c&&null!=e&&u(e)},onMouseEnter:void 0,onMouseLeave:void 0,onClick:void 0,onMouseMove:void 0,onMouseDown:void 0,onMouseUp:void 0,onContextMenu:void 0,onDoubleClick:void 0,onTouchStart:void 0,onTouchMove:void 0,onTouchEnd:void 0},t.createElement(Wb.Provider,{value:c},t.createElement(JN,n))))}zN(ZN,"displayName","Treemap");var e_=a(2067),t_=a.n(e_),r_=["sourceX","sourceY","sourceControlX","targetX","targetY","targetControlX","linkWidth"],n_=["className","style","children","id"];function i_(){return i_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i_.apply(null,arguments)}function a_(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function o_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l_(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o_(Object(r),!0).forEach((function(t){c_(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c_(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var u_=e=>e.y+e.dy/2,s_=e=>e&&e.value||0,f_=(e,t)=>t.reduce(((t,r)=>t+s_(e[r])),0),d_=(e,t,r)=>r.reduce(((r,n)=>{var i=t[n];if(null==i)return r;var a=e[i.source];return null==a?r:r+u_(a)*s_(t[n])}),0),p_=(e,t,r)=>r.reduce(((r,n)=>{var i=t[n];if(null==i)return r;var a=e[i.target];return null==a?r:r+u_(a)*s_(t[n])}),0),h_=(e,t)=>e.y-t.y,y_=(e,t)=>{for(var{targetNodes:r}=t,n=0,i=r.length;n<i;n++){var a=r[n];if(null!=a){var o=e[a];o&&(o.depth=Math.max(t.depth+1,o.depth),y_(e,o))}}},v_=function(e,t,r){for(var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=0,a=e.length;i<a;i++){var o=e[i];if(null!=o){var l=o.length;n&&o.sort(h_);for(var c=0,u=0;u<l;u++){var s=o[u];if(null!=s){var f=c-s.y;f>0&&(s.y+=f),c=s.y+s.dy+r}}c=t+r;for(var d=l-1;d>=0;d--){var p=o[d];if(null!=p){var h=p.y+p.dy+r-c;if(!(h>0))break;p.y-=h,c=p.y}}}}},m_=(e,t,r,n)=>{for(var i=0,a=t.length;i<a;i++){var o=t[i];if(null!=o)for(var l=0,c=o.length;l<c;l++){var u=o[l];if(null!=u&&u.sourceLinks.length){var s=f_(r,u.sourceLinks),f=d_(e,r,u.sourceLinks)/s;u.y+=(f-u_(u))*n}}}},g_=(e,t,r,n)=>{for(var i=t.length-1;i>=0;i--){var a=t[i];if(null!=a)for(var o=0,l=a.length;o<l;o++){var c=a[o];if(null!=c&&c.targetLinks.length){var u=f_(r,c.targetLinks),s=p_(e,r,c.targetLinks)/u;c.y+=(s-u_(c))*n}}}},b_=e=>{var{data:t,width:r,height:n,iterations:i,nodeWidth:a,nodePadding:o,sort:l,verticalAlign:c,align:u}=e,{links:s}=t,{tree:f}=((e,t,r,n)=>{for(var i,a,{nodes:o,links:l}=e,c=o.map(((e,t)=>{var r=((e,t)=>{for(var r=[],n=[],i=[],a=[],o=0,l=e.length;o<l;o++){var c=e[o];(null==c?void 0:c.source)===t&&(i.push(c.target),a.push(o)),(null==c?void 0:c.target)===t&&(r.push(c.source),n.push(o))}return{sourceNodes:r,sourceLinks:n,targetLinks:a,targetNodes:i}})(l,t);return l_(l_(l_({},e),r),{},{value:Math.max(f_(l,r.sourceLinks),f_(l,r.targetLinks)),depth:0})})),u=0,s=c.length;u<s;u++){var f=c[u];null==f||f.sourceNodes.length||y_(c,f)}var d=null!==(i=null===(a=MO()(c,(e=>e.depth)))||void 0===a?void 0:a.depth)&&void 0!==i?i:0;if(d>=1)for(var p=(t-r)/d,h=0,y=c.length;h<y;h++){var v=c[h];null!=v&&(v.targetNodes.length||"justify"===n&&(v.depth=d),v.x=v.depth*p,v.dx=r)}return{tree:c,maxDepth:d}})(t,r,a,u),d=(e=>{for(var t=[],r=0,n=e.length;r<n;r++){var i,a=e[r];null!=a&&(t[a.depth]||(t[a.depth]=[]),null===(i=t[a.depth])||void 0===i||i.push(a))}return t})(f),p=((e,t,r,n,i)=>{for(var a=Math.min(...e.map((e=>(t-(e.length-1)*r)/t_()(e,s_)))),o=0,l=e.length;o<l;o++){var c=e[o];if(null!=c)if("top"===i)for(var u=0,s=0,f=c.length;s<f;s++){var d=c[s];null!=d&&(d.dy=d.value*a,d.y=u,u+=d.dy+r)}else for(var p=0,h=c.length;p<h;p++){var y=c[p];null!=y&&(y.y=p,y.dy=y.value*a)}}return n.map((e=>l_(l_({},e),{},{dy:s_(e)*a})))})(d,n,o,s,c);if(v_(d,n,o,l),"justify"===c)for(var h=1,y=1;y<=i;y++)g_(f,d,p,h*=.99),v_(d,n,o,l),m_(f,d,p,h),v_(d,n,o,l);return((e,t)=>{for(var r=0,n=e.length;r<n;r++){var i=e[r];if(null!=i){var a=0,o=0;i.targetLinks.sort(((r,n)=>{var i,a,o,l,c=null===(i=t[r])||void 0===i?void 0:i.target,u=null===(a=t[n])||void 0===a?void 0:a.target;if(null==c||null==u)return 0;var s=null===(o=e[c])||void 0===o?void 0:o.y,f=null===(l=e[u])||void 0===l?void 0:l.y;return null==s||null==f?0:s-f})),i.sourceLinks.sort(((r,n)=>{var i,a,o,l,c=null===(i=t[r])||void 0===i?void 0:i.source,u=null===(a=t[n])||void 0===a?void 0:a.source;if(null==c||null==u)return 0;var s=null===(o=e[c])||void 0===o?void 0:o.y,f=null===(l=e[u])||void 0===l?void 0:l.y;return null==s||null==f?0:s-f}));for(var l=0,c=i.targetLinks.length;l<c;l++){var u=i.targetLinks[l];if(null!=u){var s=t[u];s&&(s.sy=a,a+=s.dy)}}for(var f=0,d=i.sourceLinks.length;f<d;f++){var p=i.sourceLinks[f];if(null!=p){var h=t[p];h&&(h.ty=o,o+=h.dy)}}}}})(f,p),{nodes:f,links:p}},x_=e=>({x:+e.x+ +e.width/2,y:+e.y+ +e.height/2}),w_=e=>"sourceX"in e?{x:(e.sourceX+e.targetX)/2,y:(e.sourceY+e.targetY)/2}:void 0,O_={chartName:"Sankey",defaultTooltipEventType:"item",validateTooltipEventTypes:["item"],tooltipPayloadSearcher:(e,t,r,n)=>{if(null!=t&&"string"==typeof t&&null!=r&&"object"==typeof r){var i=t.split("-"),[a,o]=i,l=ee()(r,"".concat(a,"s[").concat(o,"]"));if(l){var c=((e,t,r)=>{var{payload:n}=e;if("node"===t)return{payload:n,name:li(n,r,""),value:li(n,"value")};if("source"in n&&n.source&&n.target){var i=li(n.source,r,""),a=li(n.target,r,"");return{payload:n,name:"".concat(i," - ").concat(a),value:li(n,"value")}}})(l,a,n);return c}}},eventEmitter:void 0},P_=t.memo((e=>{var{dataKey:r,nameKey:n,stroke:i,strokeWidth:a,fill:o,name:l,data:c,id:u}=e,s={dataDefinedOnItem:c,getPosition:ge,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:r,name:l,nameKey:n,hide:!1,type:void 0,color:o,unit:"",graphicalItemId:u}};return t.createElement(JP,{tooltipEntrySettings:s})}));var E_=e=>{var{link:t,nodes:r,left:n,top:i,i:a,linkContent:o,linkCurvature:l}=e,{sy:c,ty:u,dy:s}=t,f=r[t.source],p=r[t.target];if(null!=f&&null!=p){var h=f.x+f.dx+n,y=p.x+n,v=((e,t)=>{var r=+e,n=t-r;return e=>r+n*e})(h,y),m=v(l),g=v(1-l);return l_({sourceX:h,targetX:y,sourceY:f.y+c+s/2+i,targetY:p.y+u+s/2+i,sourceControlX:m,targetControlX:g,sourceRelativeY:c,targetRelativeY:u,linkWidth:s,index:a,payload:l_(l_({},t),{},{source:f,target:p})},d(o))}};function j_(e){var{graphicalItemId:r,props:n,i,linkContent:a,onMouseEnter:o,onMouseLeave:l,onClick:c,dataKey:u}=e,s=w_(n),d="link-".concat(i),p=$e(),h={onMouseEnter:e=>{p(Nm({activeIndex:d,activeDataKey:u,activeCoordinate:s,activeGraphicalItemId:r})),o(n,e)},onMouseLeave:e=>{p(_m()),l(n,e)},onClick:e=>{p(Rm({activeIndex:d,activeDataKey:u,activeCoordinate:s,activeGraphicalItemId:r})),c(n,e)}};return t.createElement(b,h,function(e,r){if(t.isValidElement(e))return t.cloneElement(e,r);if("function"==typeof e)return e(r);var{sourceX:n,sourceY:i,sourceControlX:a,targetX:o,targetY:l,targetControlX:c,linkWidth:u}=r,s=a_(r,r_);return t.createElement("path",i_({className:"recharts-sankey-link",d:"\n          M".concat(n,",").concat(i,"\n          C").concat(a,",").concat(i," ").concat(c,",").concat(l," ").concat(o,",").concat(l,"\n        "),fill:"none",stroke:"#333",strokeWidth:u,strokeOpacity:"0.2"},f(s)))}(a,n))}function A_(e){var{graphicalItemId:r,modifiedLinks:n,links:i,linkContent:a,onMouseEnter:o,onMouseLeave:l,onClick:c,dataKey:u}=e;return t.createElement(b,{className:"recharts-sankey-links",key:"recharts-sankey-links"},i.map(((e,i)=>{var s=n[i];return null==s?null:t.createElement(j_,{graphicalItemId:r,key:"link-".concat(e.source,"-").concat(e.target,"-").concat(e.value),props:s,linkContent:a,i,onMouseEnter:o,onMouseLeave:l,onClick:c,dataKey:u})})))}var S_=e=>{var{node:t,nodeContent:r,top:n,left:i,i:a}=e,{x:o,y:l,dx:c,dy:u}=t;return l_(l_({},d(r)),{},{x:o+i,y:l+n,width:c,height:u,index:a,payload:t})};function k_(e){var{graphicalItemId:r,props:n,nodeContent:i,i:a,onMouseEnter:o,onMouseLeave:l,onClick:c,dataKey:u}=e,s=$e(),d=x_(n),p="node-".concat(a),h={onMouseEnter:e=>{s(Nm({activeIndex:p,activeDataKey:u,activeCoordinate:d,activeGraphicalItemId:r})),o(n,e)},onMouseLeave:e=>{s(_m()),l(n,e)},onClick:e=>{s(Rm({activeIndex:p,activeDataKey:u,activeCoordinate:d,activeGraphicalItemId:r})),c(n,e)}};return t.createElement(b,h,function(e,r){return t.isValidElement(e)?t.cloneElement(e,r):"function"==typeof e?e(r):t.createElement(Dc,i_({className:"recharts-sankey-node",fill:"#0088fe",fillOpacity:"0.8"},f(r)))}(i,n))}function I_(e){var{graphicalItemId:r,modifiedNodes:n,nodeContent:i,onMouseEnter:a,onMouseLeave:o,onClick:l,dataKey:c}=e;return t.createElement(b,{className:"recharts-sankey-nodes",key:"recharts-sankey-nodes"},n.map(((e,n)=>t.createElement(k_,{graphicalItemId:r,key:"node-".concat(e.index,"-").concat(e.x,"-").concat(e.y),props:e,nodeContent:i,i:n,onMouseEnter:a,onMouseLeave:o,onClick:l,dataKey:c}))))}var M_={align:"justify",dataKey:"value",iterations:32,linkCurvature:.5,margin:{top:5,right:5,bottom:5,left:5},nameKey:"name",nodePadding:10,nodeWidth:10,sort:!0,verticalAlign:"justify"};function T_(e){var{className:r,style:n,children:i,id:a}=e,o=a_(e,n_),{link:l,dataKey:c,node:u,onMouseEnter:s,onMouseLeave:d,onClick:p,data:h,iterations:y,nodeWidth:m,nodePadding:g,sort:b,linkCurvature:x,margin:w,verticalAlign:O,align:P}=e,E=f(o),j=pa(),A=ha(),{links:S,modifiedLinks:k,modifiedNodes:I}=(0,t.useMemo)((()=>{var e,t,r,n;if(!h||!j||!A||j<=0||A<=0)return{nodes:[],links:[],modifiedLinks:[],modifiedNodes:[]};var i=j-(null!==(e=w.left)&&void 0!==e?e:0)-(null!==(t=w.right)&&void 0!==t?t:0),a=A-(null!==(r=w.top)&&void 0!==r?r:0)-(null!==(n=w.bottom)&&void 0!==n?n:0),o=b_({data:h,width:i,height:a,iterations:y,nodeWidth:m,nodePadding:g,sort:b,verticalAlign:O,align:P}),c=w.top||0,s=w.left||0,f=o.links.map(((e,t)=>E_({link:e,nodes:o.nodes,i:t,top:c,left:s,linkContent:l,linkCurvature:x}))).filter(me),d=o.nodes.map(((e,t)=>S_({node:e,nodeContent:u,i:t,top:c,left:s})));return{nodes:o.nodes,links:o.links,modifiedLinks:f,modifiedNodes:d}}),[h,j,A,w,y,m,g,b,l,u,x,P,O]),M=(0,t.useCallback)(((e,t,r)=>{s&&s(e,t,r)}),[s]),T=(0,t.useCallback)(((e,t,r)=>{d&&d(e,t,r)}),[d]),D=(0,t.useCallback)(((e,t,r)=>{p&&p(e,t,r)}),[p]);return ni(j)&&ni(A)&&h&&h.links&&h.nodes?t.createElement(t.Fragment,null,t.createElement(oS,{computedData:{links:k,nodes:I}}),t.createElement(v,i_({},E,{width:j,height:A}),i,t.createElement(A_,{graphicalItemId:a,links:S,modifiedLinks:k,linkContent:l,dataKey:c,onMouseEnter:(e,t)=>M(e,"link",t),onMouseLeave:(e,t)=>T(e,"link",t),onClick:(e,t)=>D(e,"link",t)}),t.createElement(I_,{graphicalItemId:a,modifiedNodes:I,nodeContent:u,dataKey:c,onMouseEnter:(e,t)=>M(e,"node",t),onMouseLeave:(e,t)=>T(e,"node",t),onClick:(e,t)=>D(e,"node",t)}))):null}function D_(e){var r=De(e,M_),{width:n,height:i,style:a,className:o,id:l}=r,[c,u]=(0,t.useState)(null);return t.createElement(WC,{preloadedState:{options:O_},reduxStoreName:null!=o?o:"Sankey"},t.createElement(Oa,{width:n,height:i}),t.createElement(Pa,{margin:r.margin}),t.createElement(uN,{className:o,style:a,width:n,height:i,responsive:!1,ref:e=>{e&&!c&&u(e)},onMouseEnter:void 0,onMouseLeave:void 0,onClick:void 0,onMouseMove:void 0,onMouseDown:void 0,onMouseUp:void 0,onContextMenu:void 0,onDoubleClick:void 0,onTouchStart:void 0,onTouchMove:void 0,onTouchEnd:void 0},t.createElement(Wb.Provider,{value:c},t.createElement(iE,{id:l,type:"sankey"},(e=>t.createElement(t.Fragment,null,t.createElement(P_,{dataKey:r.dataKey,nameKey:r.nameKey,stroke:r.stroke,strokeWidth:r.strokeWidth,fill:r.fill,name:r.name,data:r.data,id:e}),t.createElement(T_,i_({},r,{id:e}))))))))}function C_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function N_(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C_(Object(r),!0).forEach((function(t){__(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function __(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}D_.displayName="Sankey";var z_=["axis"],R_=N_(N_({},ON),{},{layout:"centric",startAngle:90,endAngle:-270}),L_=(0,t.forwardRef)(((e,r)=>{var n=De(e,R_);return t.createElement(PN,{chartName:"RadarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:z_,tooltipPayloadSearcher:Hb,categoricalChartProps:n,ref:r})})),K_=["item"],B_=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"ScatterChart",defaultTooltipEventType:"item",validateTooltipEventTypes:K_,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r}))),W_=["axis"],F_=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:W_,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r})));function U_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function V_(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U_(Object(r),!0).forEach((function(t){X_(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function X_(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var H_=["axis","item"],$_=V_(V_({},ON),{},{layout:"radial",startAngle:0,endAngle:360}),q_=(0,t.forwardRef)(((e,r)=>{var n=De(e,$_);return t.createElement(PN,{chartName:"RadialBarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:H_,tooltipPayloadSearcher:Hb,categoricalChartProps:n,ref:r})})),Y_=["axis"],G_=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"ComposedChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Y_,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r})));function Z_(){return Z_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Z_.apply(null,arguments)}function J_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Q_(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?J_(Object(r),!0).forEach((function(t){ez(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):J_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ez(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function tz(e){if(!e.children||0===e.children.length)return 1;var t=e.children.map((e=>tz(e)));return 1+Math.max(...t)}var rz=t.memo((e=>{var{dataKey:r,nameKey:n,data:i,stroke:a,fill:o,positions:l,id:c}=e,u={dataDefinedOnItem:i.children,getPosition:e=>l.get(e),settings:{stroke:a,strokeWidth:void 0,fill:o,nameKey:n,dataKey:r,name:n?void 0:r,hide:!1,type:void 0,color:o,unit:"",graphicalItemId:c}};return t.createElement(JP,{tooltipEntrySettings:u})})),nz={top:0,right:0,bottom:0,left:0},iz={options:{validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",chartName:"Sunburst",tooltipPayloadSearcher:(e,t)=>{if(null!=t)return ee()(e,t)},eventEmitter:void 0}},az={padding:2,dataKey:"value",nameKey:"name",ringPadding:2,innerRadius:50,fill:"#333",stroke:"#FFF",textOptions:{fontWeight:"bold",paintOrder:"stroke fill",fontSize:".75rem",stroke:"#FFF",fill:"black",pointerEvents:"none"},startAngle:0,endAngle:360,responsive:!1},oz=e=>{var{className:r,data:i,children:a,padding:o,dataKey:l,nameKey:c,ringPadding:u,innerRadius:s,fill:f,stroke:d,textOptions:p,outerRadius:h,cx:y,cy:m,startAngle:g,endAngle:x,onClick:w,onMouseEnter:O,onMouseLeave:P,id:E}=e,j=$e(),A=pa(),S=ha();if(null==A||null==S)return null;var k=null!=h?h:Math.min(A,S)/2,I=null!=y?y:A/2,M=null!=m?m:S/2,T=nf([0,i[l]],[0,x]),D=(k-s)/tz(i),C=[],N=new Map([]);!function e(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{radius:a,innerR:c,initialAngle:s,childColor:h,nestedActiveTooltipIndex:y}=n,v=s;r&&r.forEach(((r,n)=>{var s,m,g=1===i?"[".concat(n,"]"):function(e){return"".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"","children[").concat(e,"]")}(n,y),b=Q_(Q_({},r),{},{tooltipIndex:g}),x=T(r[l]),A=v,S=null!==(s=null!==(m=null==r?void 0:r.fill)&&void 0!==m?m:h)&&void 0!==s?s:f,{x:k,y:D}=Hc(0,0,c+a/2,-(A+x-x/2));v+=x,C.push(t.createElement("g",{key:"sunburst-sector-".concat(r.name,"-").concat(n)},t.createElement(nu,{onClick:()=>{return e=b,w&&w(e),void j(Rm({activeIndex:e.tooltipIndex,activeDataKey:l,activeCoordinate:N.get(e.name),activeGraphicalItemId:E}));var e},onMouseEnter:e=>function(e,t){O&&O(e,t),j(Nm({activeIndex:e.tooltipIndex,activeDataKey:l,activeCoordinate:N.get(e.name),activeGraphicalItemId:E}))}(b,e),onMouseLeave:e=>function(e,t){P&&P(e,t),j(_m())}(b,e),fill:S,stroke:d,strokeWidth:o,startAngle:A,endAngle:A+x,innerRadius:c,outerRadius:c+a,cx:I,cy:M}),t.createElement(Jx,Z_({},p,{alignmentBaseline:"middle",textAnchor:"middle",x:k+I,y:M-D}),r[l])));var{x:_,y:z}=Hc(I,M,c+a/2,A);return N.set(r.name,{x:_,y:z}),e(r.children,{radius:a,innerR:c+a+u,initialAngle:A,childColor:S,nestedActiveTooltipIndex:g},i+1)}))}(i.children,{radius:D,innerR:s,initialAngle:g});var _=n("recharts-sunburst",r);return t.createElement(v,{width:A,height:S},t.createElement(b,{className:_},C),t.createElement(rz,{dataKey:l,nameKey:c,data:i,stroke:d,fill:f,positions:N,id:E}),a)},lz=e=>{var r=De(e,az),{className:n,width:i,height:a,responsive:o,style:l,id:c}=r,[u,s]=(0,t.useState)(null);return t.createElement(WC,{preloadedState:iz,reduxStoreName:null!=n?n:"SunburstChart"},t.createElement(Oa,{width:i,height:a}),t.createElement(Pa,{margin:nz}),t.createElement(Wb.Provider,{value:u},t.createElement(uN,{className:n,width:i,height:a,responsive:o,style:l,ref:e=>{null==u&&null!=e&&s(e)},onMouseEnter:void 0,onMouseLeave:void 0,onClick:void 0,onMouseMove:void 0,onMouseDown:void 0,onMouseUp:void 0,onContextMenu:void 0,onDoubleClick:void 0,onTouchStart:void 0,onTouchMove:void 0,onTouchEnd:void 0},t.createElement(iE,{id:c,type:"sunburst"},(e=>t.createElement(oz,Z_({},r,{id:e})))))))};function cz(){return cz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},cz.apply(null,arguments)}function uz(e){return t.createElement($P,cz({shapeType:"trapezoid"},e))}function sz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function fz(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?sz(Object(r),!0).forEach((function(t){dz(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):sz(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function dz(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var pz=it([zi,(e,t)=>t,mh],((e,t,r)=>{var n,{data:i,dataKey:a,nameKey:o,tooltipType:l,lastShapeType:c,reversed:u,customWidth:s,cells:f,presentationProps:d,id:p}=t,{chartData:h}=r;if(null!=i&&i.length>0?n=i:null!=h&&h.length>0&&(n=h),n&&n.length)n=n.map(((e,t)=>fz(fz(fz({payload:e},d),e),f&&f[t]&&f[t].props)));else{if(!f||!f.length)return[];n=f.map((e=>fz(fz({},d),e.props)))}return function(e){var{dataKey:t,nameKey:r,displayedData:n,tooltipType:i,lastShapeType:a,reversed:o,offset:l,customWidth:c,graphicalItemId:u}=e,{realHeight:s,realWidth:f,offsetX:d,offsetY:p}=kz(c,l),h=n.map((e=>{var r=li(e,t,0);return"number"==typeof r?r:0})),y=Math.max.apply(null,h),v=n.length,m=s/v,g={x:l.left,y:l.top,width:l.width,height:l.height},b=n.map(((e,o)=>{var l,c=li(e,t,0),s=String(li(e,r,o)),h=c;if(o!==v-1){var b=li(n[o+1],t,0);if("number"==typeof b)l=b;else if(Array.isArray(b)){var[x,w]=b;"number"==typeof x&&(h=x),"number"==typeof w&&(l=w)}}else if(c instanceof Array&&2===c.length){var[O,P]=c;"number"==typeof O&&(h=O),"number"==typeof P&&(l=P)}else l="rectangle"===a?h:0;var E=(y-h)*f/(2*y)+d,j=m*o+p,A=h/y*f,S=l/y*f,k=[{name:s,value:h,payload:e,dataKey:t,type:i,graphicalItemId:u}],I={x:E+A/2,y:j+m/2},M={x:E,y:j,upperWidth:A,lowerWidth:S,width:Math.max(A,S),height:m};return wz(wz(wz({},M),{},{name:s,val:h,tooltipPayload:k,tooltipPosition:I},null!=e&&"object"==typeof e?TN()(e,["width"]):{}),{},{payload:e,parentViewBox:g,labelViewBox:M})}));o&&(b=b.map(((e,t)=>{var r={x:e.x-(e.lowerWidth-e.upperWidth)/2,y:e.y-t*m+(v-1-t)*m,upperWidth:e.lowerWidth,lowerWidth:e.upperWidth,width:Math.max(e.lowerWidth,e.upperWidth),height:m};return wz(wz(wz({},e),r),{},{tooltipPosition:wz(wz({},e.tooltipPosition),{},{y:e.y-t*m+(v-1-t)*m+m/2}),labelViewBox:r})})));return b}({dataKey:a,nameKey:o,displayedData:n,tooltipType:l,lastShapeType:c,reversed:u,offset:e,customWidth:s,graphicalItemId:p})})),hz=["onMouseEnter","onClick","onMouseLeave","shape","activeShape"],yz=["id"],vz=["stroke","fill","legendType","hide","isAnimationActive","animationBegin","animationDuration","animationEasing","nameKey","lastShapeType","id"],mz=["id"];function gz(){return gz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gz.apply(null,arguments)}function bz(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function xz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wz(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xz(Object(r),!0).forEach((function(t){Oz(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xz(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Oz(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Pz=t.memo((e=>{var{dataKey:r,nameKey:n,stroke:i,strokeWidth:a,fill:o,name:l,hide:c,tooltipType:u,data:s,trapezoids:f,id:d}=e,p={dataDefinedOnItem:s,getPosition:e=>{var t;return null===(t=f[Number(e)])||void 0===t?void 0:t.tooltipPosition},settings:{stroke:i,strokeWidth:a,fill:o,dataKey:r,name:l,nameKey:n,hide:c,type:u,color:o,unit:"",graphicalItemId:d}};return t.createElement(JP,{tooltipEntrySettings:p})}));function Ez(e){var{showLabels:r,trapezoids:n,children:i}=e,a=(0,t.useMemo)((()=>{if(r)return null==n?void 0:n.map((e=>{var t=e.labelViewBox;return wz(wz({},t),{},{value:e.name,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})}))}),[r,n]);return t.createElement(Nw,{value:a},i)}function jz(e){var{trapezoids:r,allOtherFunnelProps:n}=e,i=Ze((e=>fb(e,"item",e.tooltip.settings.trigger,void 0))),{onMouseEnter:a,onClick:o,onMouseLeave:l,shape:c,activeShape:u}=n,s=bz(n,hz),f=YP(a,n.dataKey,n.id),d=GP(l),p=ZP(o,n.dataKey,n.id);return t.createElement(t.Fragment,null,r.map(((e,r)=>{var n=Boolean(u)&&i===String(r),a=n?u:c,o=wz(wz({},e),{},{option:a,isActive:n,stroke:e.stroke}),{id:l}=o,h=bz(o,yz);return t.createElement(b,gz({key:"trapezoid-".concat(null==e?void 0:e.x,"-").concat(null==e?void 0:e.y,"-").concat(null==e?void 0:e.name,"-").concat(null==e?void 0:e.value),className:"recharts-funnel-trapezoid"},Ie(s,e,r),{onMouseEnter:f(e,r),onMouseLeave:d(e,r),onClick:p(e,r)}),t.createElement(uz,h))})))}function Az(e){var{previousTrapezoidsRef:r,props:n}=e,{trapezoids:i,isAnimationActive:a,animationBegin:o,animationDuration:l,animationEasing:c,onAnimationEnd:u,onAnimationStart:s}=n,f=r.current,[d,p]=(0,t.useState)(!1),h=!d,y=fc(i,"recharts-funnel-"),v=(0,t.useCallback)((()=>{"function"==typeof u&&u(),p(!1)}),[u]),m=(0,t.useCallback)((()=>{"function"==typeof s&&s(),p(!0)}),[s]);return t.createElement(Ez,{showLabels:h,trapezoids:i},t.createElement(sc,{animationId:y,begin:o,duration:l,isActive:a,easing:c,key:y,onAnimationStart:m,onAnimationEnd:v},(e=>{var a=1===e?i:i.map(((t,r)=>{var n=f&&f[r];return wz(wz({},t),{},n?{x:pe(n.x,t.x,e),y:pe(n.y,t.y,e),upperWidth:pe(n.upperWidth,t.upperWidth,e),lowerWidth:pe(n.lowerWidth,t.lowerWidth,e),height:pe(n.height,t.height,e)}:{x:pe(t.x+t.upperWidth/2,t.x,e),y:pe(t.y+t.height/2,t.y,e),upperWidth:pe(0,t.upperWidth,e),lowerWidth:pe(0,t.lowerWidth,e),height:pe(0,t.height,e)})}));return e>0&&(r.current=a),t.createElement(b,null,t.createElement(jz,{trapezoids:a,allOtherFunnelProps:n}))})),t.createElement(Lw,{label:n.label}),n.children)}function Sz(e){var r=(0,t.useRef)(void 0);return t.createElement(Az,{props:e,previousTrapezoidsRef:r})}var kz=(e,t)=>{var{width:r,height:n,left:i,top:a}=t;return{realWidth:fe(e,r,r),realHeight:n,offsetX:i,offsetY:a}},Iz={animationBegin:400,animationDuration:1500,animationEasing:"ease",fill:"#808080",hide:!1,isAnimationActive:"auto",lastShapeType:"triangle",legendType:"rect",nameKey:"name",reversed:!1,stroke:"#fff"};function Mz(e){var r=pj(),{stroke:i,fill:a,legendType:o,hide:l,isAnimationActive:c,animationBegin:u,animationDuration:s,animationEasing:d,nameKey:p,lastShapeType:h,id:y}=e,v=bz(e,vz),m=f(e),g=jP(e.children,yx),x=(0,t.useMemo)((()=>({dataKey:e.dataKey,nameKey:p,data:e.data,tooltipType:e.tooltipType,lastShapeType:h,reversed:e.reversed,customWidth:e.width,cells:g,presentationProps:m,id:y})),[e.dataKey,p,e.data,e.tooltipType,h,e.reversed,e.width,g,m,y]),w=Ze((e=>pz(e,x)));if(l||!w||!w.length||!r)return null;var{height:O,width:P}=r,E=n("recharts-trapezoids",e.className);return t.createElement(t.Fragment,null,t.createElement(Pz,{dataKey:e.dataKey,nameKey:e.nameKey,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,data:e.data,trapezoids:w,id:y}),t.createElement(b,{className:E},t.createElement(Sz,gz({},v,{id:y,stroke:i,fill:a,nameKey:p,lastShapeType:h,animationBegin:u,animationDuration:s,animationEasing:d,isAnimationActive:c,hide:l,legendType:o,height:O,width:P,trapezoids:w}))))}function Tz(e){var r=De(e,Iz),{id:n}=r,i=bz(r,mz);return t.createElement(iE,{id:n,type:"funnel"},(e=>t.createElement(Mz,gz({},i,{id:e}))))}Tz.displayName="Funnel";var Dz=["item"],Cz=(0,t.forwardRef)(((e,r)=>t.createElement(hN,{chartName:"FunnelChart",defaultTooltipEventType:"item",validateTooltipEventTypes:Dz,tooltipPayloadSearcher:Hb,categoricalChartProps:e,ref:r})))})(),o})()));
-//# sourceMappingURL=Recharts.js.map
Index: de_modules/recharts/umd/Recharts.js.LICENSE.txt
===================================================================
--- node_modules/recharts/umd/Recharts.js.LICENSE.txt	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */
-
-/**
- * @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.
- */
-
-/**
- * @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.
- */
Index: de_modules/recharts/umd/Recharts.js.map
===================================================================
--- node_modules/recharts/umd/Recharts.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"file":"Recharts.js","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,aAChD,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,QAAS,YAAa,YAAaJ,GACjB,iBAAZC,QACdA,QAAkB,SAAID,EAAQG,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,aAE9EJ,EAAe,SAAIC,EAAQD,EAAY,MAAGA,EAAe,SAAGA,EAAc,QAC3E,CATD,CASGO,MAAM,CAACC,EAAmCC,EAAmCC,I,mCCPhFC,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMC,EAAa,EAAQ,MA6C3Bd,EAAQe,SA3CR,SAAkBC,EAAMC,EAAa,EAAGC,EAAU,CAAC,GACxB,iBAAZA,IACPA,EAAU,CAAC,GAEf,MAAM,QAAEC,GAAU,EAAK,SAAEC,GAAW,EAAI,QAAEC,GAAYH,EAChDI,EAAQC,MAAM,GAOpB,IAAIC,EANAL,IACAG,EAAM,GAAK,WAEXF,IACAE,EAAM,GAAK,YAGf,IAAIG,EAAY,KAChB,MAAMC,EAAaZ,EAAWC,UAAS,YAAaY,GAChDH,EAASR,EAAKY,MAAMvB,KAAMsB,GAC1BF,EAAY,IAChB,GAAGR,EAAY,CAAEK,UACXO,EAAY,YAAaF,GAC3B,OAAe,MAAXN,IACkB,OAAdI,IACAA,EAAYK,KAAKC,OAEjBD,KAAKC,MAAQN,GAAaJ,IAC1BG,EAASR,EAAKY,MAAMvB,KAAMsB,GAC1BF,EAAYK,KAAKC,MACjBL,EAAWM,SACXN,EAAWO,WACJT,IAGfE,EAAWE,MAAMvB,KAAMsB,GAChBH,EACX,EAOA,OAFAK,EAAUG,OAASN,EAAWM,OAC9BH,EAAUK,MALI,KACVR,EAAWQ,QACJV,GAIJK,CACX,C,YC/CA5B,EAAOD,QAAU,EAAjB,U,yBCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMsB,EAAW,EAAQ,MAMzBnC,EAAQoC,YAJR,SAAqBvB,GACjB,OAAgB,MAATA,GAAkC,mBAAVA,GAAwBsB,EAASA,SAAStB,EAAMwB,OACnF,C,aCRApC,EAAOD,QAAU,EAAjB,Y,sBCEA,IAAIsC,EAAM7B,OAAO8B,UAAUC,eACvBC,EAAS,IASb,SAASC,IAAU,CA4BnB,SAASC,EAAGC,EAAIC,EAASC,GACvBzC,KAAKuC,GAAKA,EACVvC,KAAKwC,QAAUA,EACfxC,KAAKyC,KAAOA,IAAQ,CACtB,CAaA,SAASC,EAAYC,EAASC,EAAOL,EAAIC,EAASC,GAChD,GAAkB,mBAAPF,EACT,MAAM,IAAIM,UAAU,mCAGtB,IAAIC,EAAW,IAAIR,EAAGC,EAAIC,GAAWG,EAASF,GAC1CM,EAAMX,EAASA,EAASQ,EAAQA,EAMpC,OAJKD,EAAQK,QAAQD,GACXJ,EAAQK,QAAQD,GAAKR,GAC1BI,EAAQK,QAAQD,GAAO,CAACJ,EAAQK,QAAQD,GAAMD,GADhBH,EAAQK,QAAQD,GAAKE,KAAKH,IADlCH,EAAQK,QAAQD,GAAOD,EAAUH,EAAQO,gBAI7DP,CACT,CASA,SAASQ,EAAWR,EAASI,GACI,KAAzBJ,EAAQO,aAAoBP,EAAQK,QAAU,IAAIX,SAC5CM,EAAQK,QAAQD,EAC9B,CASA,SAASK,IACPpD,KAAKgD,QAAU,IAAIX,EACnBrC,KAAKkD,aAAe,CACtB,CAzEI9C,OAAOiD,SACThB,EAAOH,UAAY9B,OAAOiD,OAAO,OAM5B,IAAIhB,GAASiB,YAAWlB,GAAS,IA2ExCgB,EAAalB,UAAUqB,WAAa,WAClC,IACIC,EACAC,EAFAC,EAAQ,GAIZ,GAA0B,IAAtB1D,KAAKkD,aAAoB,OAAOQ,EAEpC,IAAKD,KAASD,EAASxD,KAAKgD,QACtBf,EAAI0B,KAAKH,EAAQC,IAAOC,EAAMT,KAAKb,EAASqB,EAAKG,MAAM,GAAKH,GAGlE,OAAIrD,OAAOyD,sBACFH,EAAMI,OAAO1D,OAAOyD,sBAAsBL,IAG5CE,CACT,EASAN,EAAalB,UAAU6B,UAAY,SAAmBnB,GACpD,IAAIG,EAAMX,EAASA,EAASQ,EAAQA,EAChCoB,EAAWhE,KAAKgD,QAAQD,GAE5B,IAAKiB,EAAU,MAAO,GACtB,GAAIA,EAASzB,GAAI,MAAO,CAACyB,EAASzB,IAElC,IAAK,IAAI0B,EAAI,EAAGC,EAAIF,EAAShC,OAAQmC,EAAK,IAAIjD,MAAMgD,GAAID,EAAIC,EAAGD,IAC7DE,EAAGF,GAAKD,EAASC,GAAG1B,GAGtB,OAAO4B,CACT,EASAf,EAAalB,UAAUkC,cAAgB,SAAuBxB,GAC5D,IAAIG,EAAMX,EAASA,EAASQ,EAAQA,EAChCmB,EAAY/D,KAAKgD,QAAQD,GAE7B,OAAKgB,EACDA,EAAUxB,GAAW,EAClBwB,EAAU/B,OAFM,CAGzB,EASAoB,EAAalB,UAAUmC,KAAO,SAAczB,EAAO0B,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAI3B,EAAMX,EAASA,EAASQ,EAAQA,EAEpC,IAAK5C,KAAKgD,QAAQD,GAAM,OAAO,EAE/B,IAEIzB,EACA2C,EAHAF,EAAY/D,KAAKgD,QAAQD,GACzB4B,EAAMC,UAAU5C,OAIpB,GAAI+B,EAAUxB,GAAI,CAGhB,OAFIwB,EAAUtB,MAAMzC,KAAK6E,eAAejC,EAAOmB,EAAUxB,QAAIuC,GAAW,GAEhEH,GACN,KAAK,EAAG,OAAOZ,EAAUxB,GAAGoB,KAAKI,EAAUvB,UAAU,EACrD,KAAK,EAAG,OAAOuB,EAAUxB,GAAGoB,KAAKI,EAAUvB,QAAS8B,IAAK,EACzD,KAAK,EAAG,OAAOP,EAAUxB,GAAGoB,KAAKI,EAAUvB,QAAS8B,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOR,EAAUxB,GAAGoB,KAAKI,EAAUvB,QAAS8B,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOT,EAAUxB,GAAGoB,KAAKI,EAAUvB,QAAS8B,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOV,EAAUxB,GAAGoB,KAAKI,EAAUvB,QAAS8B,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKT,EAAI,EAAG3C,EAAO,IAAIJ,MAAMyD,EAAK,GAAIV,EAAIU,EAAKV,IAC7C3C,EAAK2C,EAAI,GAAKW,UAAUX,GAG1BF,EAAUxB,GAAGhB,MAAMwC,EAAUvB,QAASlB,EACxC,KAAO,CACL,IACIyD,EADA/C,EAAS+B,EAAU/B,OAGvB,IAAKiC,EAAI,EAAGA,EAAIjC,EAAQiC,IAGtB,OAFIF,EAAUE,GAAGxB,MAAMzC,KAAK6E,eAAejC,EAAOmB,EAAUE,GAAG1B,QAAIuC,GAAW,GAEtEH,GACN,KAAK,EAAGZ,EAAUE,GAAG1B,GAAGoB,KAAKI,EAAUE,GAAGzB,SAAU,MACpD,KAAK,EAAGuB,EAAUE,GAAG1B,GAAGoB,KAAKI,EAAUE,GAAGzB,QAAS8B,GAAK,MACxD,KAAK,EAAGP,EAAUE,GAAG1B,GAAGoB,KAAKI,EAAUE,GAAGzB,QAAS8B,EAAIC,GAAK,MAC5D,KAAK,EAAGR,EAAUE,GAAG1B,GAAGoB,KAAKI,EAAUE,GAAGzB,QAAS8B,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKlD,EAAM,IAAKyD,EAAI,EAAGzD,EAAO,IAAIJ,MAAMyD,EAAK,GAAII,EAAIJ,EAAKI,IACxDzD,EAAKyD,EAAI,GAAKH,UAAUG,GAG1BhB,EAAUE,GAAG1B,GAAGhB,MAAMwC,EAAUE,GAAGzB,QAASlB,GAGpD,CAEA,OAAO,CACT,EAWA8B,EAAalB,UAAU8C,GAAK,SAAYpC,EAAOL,EAAIC,GACjD,OAAOE,EAAY1C,KAAM4C,EAAOL,EAAIC,GAAS,EAC/C,EAWAY,EAAalB,UAAUO,KAAO,SAAcG,EAAOL,EAAIC,GACrD,OAAOE,EAAY1C,KAAM4C,EAAOL,EAAIC,GAAS,EAC/C,EAYAY,EAAalB,UAAU2C,eAAiB,SAAwBjC,EAAOL,EAAIC,EAASC,GAClF,IAAIM,EAAMX,EAASA,EAASQ,EAAQA,EAEpC,IAAK5C,KAAKgD,QAAQD,GAAM,OAAO/C,KAC/B,IAAKuC,EAEH,OADAY,EAAWnD,KAAM+C,GACV/C,KAGT,IAAI+D,EAAY/D,KAAKgD,QAAQD,GAE7B,GAAIgB,EAAUxB,GAEVwB,EAAUxB,KAAOA,GACfE,IAAQsB,EAAUtB,MAClBD,GAAWuB,EAAUvB,UAAYA,GAEnCW,EAAWnD,KAAM+C,OAEd,CACL,IAAK,IAAIkB,EAAI,EAAGT,EAAS,GAAIxB,EAAS+B,EAAU/B,OAAQiC,EAAIjC,EAAQiC,KAEhEF,EAAUE,GAAG1B,KAAOA,GACnBE,IAASsB,EAAUE,GAAGxB,MACtBD,GAAWuB,EAAUE,GAAGzB,UAAYA,IAErCgB,EAAOP,KAAKc,EAAUE,IAOtBT,EAAOxB,OAAQhC,KAAKgD,QAAQD,GAAyB,IAAlBS,EAAOxB,OAAewB,EAAO,GAAKA,EACpEL,EAAWnD,KAAM+C,EACxB,CAEA,OAAO/C,IACT,EASAoD,EAAalB,UAAU+C,mBAAqB,SAA4BrC,GACtE,IAAIG,EAUJ,OARIH,GACFG,EAAMX,EAASA,EAASQ,EAAQA,EAC5B5C,KAAKgD,QAAQD,IAAMI,EAAWnD,KAAM+C,KAExC/C,KAAKgD,QAAU,IAAIX,EACnBrC,KAAKkD,aAAe,GAGflD,IACT,EAKAoD,EAAalB,UAAUgD,IAAM9B,EAAalB,UAAU2C,eACpDzB,EAAalB,UAAUQ,YAAcU,EAAalB,UAAU8C,GAK5D5B,EAAa+B,SAAW/C,EAKxBgB,EAAaA,aAAeA,EAM1BxD,EAAOD,QAAUyD,C,aC9UnBxD,EAAOD,QAAU,EAAjB,S,0BCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM4E,EAAU,EAAQ,MAClBrD,EAAc,EAAQ,IACtBsD,EAAW,EAAQ,MACnBC,EAAwB,EAAQ,MAatC3F,EAAQ4F,eAXR,SAAwB/E,EAAOgF,EAAOC,GAClC,QAAKJ,EAASA,SAASI,QAGD,iBAAVD,GAAsBzD,EAAYA,YAAY0D,IAAWL,EAAQA,QAAQI,IAAUA,EAAQC,EAAOzD,QACxF,iBAAVwD,GAAsBA,KAASC,IAChCH,EAAsBA,sBAAsBG,EAAOD,GAAQhF,GAG1E,C,wBChBAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAmB5Db,EAAQ+F,MAjBR,SAAeC,EAAOC,GAClB,GAAqB,IAAjBD,EAAM3D,OACN,OAEJ,IAAI6D,EAAaF,EAAM,GACnBG,EAAMF,EAASC,EAAY,EAAGF,GAClC,IAAK,IAAI1B,EAAI,EAAGA,EAAI0B,EAAM3D,OAAQiC,IAAK,CACnC,MAAM8B,EAAUJ,EAAM1B,GAChBzD,EAAQoF,EAASG,EAAS9B,EAAG0B,GAC/BnF,EAAQsF,IACRA,EAAMtF,EACNqF,EAAaE,EAErB,CACA,OAAOF,CACX,C,0BCjBAzF,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMwF,EAAiB,EAAQ,MAM/BrG,EAAQsG,aAJR,SAAsBC,GAClB,OAAOF,EAAeC,aAAaC,EACvC,C,wBCNA9F,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQwG,SAJR,SAAkBD,GACd,MAAyB,oBAAXE,QAA0BA,OAAOD,SAASD,EAC5D,C,wBCJA9F,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQ0G,KAJR,SAAcC,GACV,OAAOA,EAAIA,EAAItE,OAAS,EAC5B,C,0BCJA5B,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM+F,EAAc,EAAQ,MAM5B5G,EAAQ6G,QAJR,SAAiBC,EAAQC,GACrB,OAAOH,EAAYA,YAAYE,EAAQC,GAAQ,KAAe,GAClE,C,0BCNAtG,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMmG,EAAU,EAAQ,MAClBC,EAAW,EAAQ,MACnBC,EAAW,EAAQ,MASzBlH,EAAQmH,MAPR,SAAenB,EAAOoB,GAClB,GAAa,MAATpB,EAGJ,OAAOgB,EAAQG,MAAM5F,MAAM8F,KAAKrB,GAAQkB,EAASA,SAASE,GAAcH,EAASA,UACrF,C,cCbAhH,EAAOD,QAAU,EAAjB,Y,2BCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMyG,EAAS,EAAQ,KACjBC,EAAU,EAAQ,MAClBnF,EAAc,EAAQ,IAS5BpC,EAAQ0G,KAPR,SAAcc,GACV,GAAKpF,EAAYA,YAAYoF,GAG7B,OAAOF,EAAOZ,KAAKa,EAAQA,QAAQC,GACvC,C,yBCXA/G,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQyH,SAJR,SAAkB5G,GACd,MAAwB,iBAAVA,GAAsBA,aAAiBF,MACzD,C,yBCJAF,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAY5Db,EAAQ0H,MAVR,SAAe7G,GACX,MAAqB,iBAAVA,GAAuC,iBAAVA,EAC7BA,EAEPJ,OAAOkH,GAAG9G,GAAO+G,aAAc,GACxB,KAEJC,OAAOhH,EAClB,C,cCZAZ,EAAOD,QAAU,EAAjB,U,2BCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM2F,EAAW,EAAQ,KACnBsB,EAAc,EAAQ,MACtB1F,EAAc,EAAQ,IACtBkE,EAAe,EAAQ,KACvByB,EAAQ,EAAQ,MAsBtB,SAASC,EAAWlC,GAChB,MAAMtE,EAAS,GACf,IAAK,MAAMyG,KAAOnC,EACdtE,EAAO8B,KAAK2E,GAEhB,OAAOzG,CACX,CAwBAxB,EAAQkI,OAlDR,SAAgBpC,GACZ,GAAc,MAAVA,EACA,MAAO,GAEX,cAAeA,GACX,IAAK,SACL,IAAK,WACD,OAAI1D,EAAYA,YAAY0D,GAwBxC,SAAyBA,GACrB,MAAMqC,EAAUJ,EAAMA,MAAMjC,EAAOzD,QAAQwD,GAAS,GAAGA,MACjDuC,EAAe,IAAIC,IAAIF,GACzB3B,EAASA,SAASV,KAClBsC,EAAaE,IAAI,UACjBF,EAAaE,IAAI,WAEjBhC,EAAaA,aAAaR,KAC1BsC,EAAaE,IAAI,UACjBF,EAAaE,IAAI,cACjBF,EAAaE,IAAI,eAErB,MAAMC,EAAgBP,EAAWlC,GAAQ0C,QAAOP,IAAQG,EAAa9F,IAAI2F,KACzE,GAAI1G,MAAMkH,QAAQ3C,GACd,MAAO,IAAIqC,KAAYI,GAE3B,MAAO,IAAIJ,EAAQK,QAAO3C,GAASpF,OAAOiI,OAAO5C,EAAQD,QAAY0C,EACzE,CAxCuBI,CAAgB7C,GAEvBgC,EAAYA,YAAYhC,GAiBxC,SAAyBA,GACrB,MAAM8C,EAAOZ,EAAWlC,GACxB,OAAO8C,EAAKJ,QAAOP,GAAe,gBAARA,GAC9B,CAnBuBY,CAAgB/C,GAEpBkC,EAAWlC,GAEtB,QACI,OAAOkC,EAAWvH,OAAOqF,IAGrC,C,yBC3BArF,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQ8I,aAJR,SAAsBjI,GAClB,MAAwB,iBAAVA,GAAgC,OAAVA,CACxC,C,yBCJAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAmB5Db,EAAQ+I,SAjBR,SAASA,EAASlI,GACd,GAAa,MAATA,EACA,MAAO,GAEX,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAIU,MAAMkH,QAAQ5H,GACd,OAAOA,EAAMmI,IAAID,GAAUE,KAAK,KAEpC,MAAMzH,EAASqG,OAAOhH,GACtB,MAAe,MAAXW,GAAkBf,OAAOkH,GAAGuB,OAAOrI,IAAS,GACrC,KAEJW,CACX,C,2BCjBAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMsI,EAAa,EAAQ,MAW3BnJ,EAAQoJ,aATR,SAAsBtD,GAClB,MAAMtE,EAAS,GACf,KAAOsE,GACHtE,EAAO8B,QAAQ6F,EAAWA,WAAWrD,IACrCA,EAASrF,OAAO4I,eAAevD,GAEnC,OAAOtE,CACX,C,yBCXAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAS5Db,EAAQsJ,OAPR,SAAgBzI,GACZ,OAAa,MAATA,OACiBsE,IAAVtE,EAAsB,qBAAuB,gBAEjDJ,OAAO8B,UAAUwG,SAAS/E,KAAKnD,EAC1C,C,cCTAZ,EAAOD,QAAU,EAAjB,W,2BCWA,IAAIuJ,EAAQ,EAAQ,MAClBC,EAAO,EAAQ,MAIjB,IAAIC,EAAW,mBAAsBhJ,OAAOkH,GAAKlH,OAAOkH,GAHxD,SAAYpB,EAAGmD,GACb,OAAQnD,IAAMmD,IAAM,IAAMnD,GAAK,EAAIA,GAAM,EAAImD,IAAQnD,GAAMA,GAAKmD,GAAMA,CACxE,EAEEC,EAAuBH,EAAKG,qBAC5BC,EAASL,EAAMK,OACfC,EAAYN,EAAMM,UAClBC,EAAUP,EAAMO,QAChBC,EAAgBR,EAAMQ,cACxB/J,EAAQgK,iCAAmC,SACzCC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAUV,EAAO,MACrB,GAAI,OAASU,EAAQC,QAAS,CAC5B,IAAIC,EAAO,CAAEC,UAAU,EAAI5J,MAAO,MAClCyJ,EAAQC,QAAUC,CACpB,MAAOA,EAAOF,EAAQC,QACtBD,EAAUR,GACR,WACE,SAASY,EAAiBC,GACxB,IAAKC,EAAS,CAIZ,GAHAA,GAAU,EACVC,EAAmBF,EACnBA,EAAeP,EAASO,QACpB,IAAWN,GAAWG,EAAKC,SAAU,CACvC,IAAIK,EAAmBN,EAAK3J,MAC5B,GAAIwJ,EAAQS,EAAkBH,GAC5B,OAAQI,EAAoBD,CAChC,CACA,OAAQC,EAAoBJ,CAC9B,CAEA,GADAG,EAAmBC,EACftB,EAASoB,EAAkBF,GAAe,OAAOG,EACrD,IAAIE,EAAgBZ,EAASO,GAC7B,YAAI,IAAWN,GAAWA,EAAQS,EAAkBE,IAC1CH,EAAmBF,EAAeG,IAC5CD,EAAmBF,EACXI,EAAoBC,EAC9B,CACA,IACEH,EACAE,EAFEH,GAAU,EAGZK,OACE,IAAWd,EAAoB,KAAOA,EAC1C,MAAO,CACL,WACE,OAAOO,EAAiBR,IAC1B,EACA,OAASe,OACL,EACA,WACE,OAAOP,EAAiBO,IAC1B,EAER,GACA,CAACf,EAAaC,EAAmBC,EAAUC,IAE7C,IAAIxJ,EAAQ8I,EAAqBM,EAAWK,EAAQ,GAAIA,EAAQ,IAShE,OARAT,GACE,WACEW,EAAKC,UAAW,EAChBD,EAAK3J,MAAQA,CACf,GACA,CAACA,IAEHkJ,EAAclJ,GACPA,CACT,C,yBClFAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQkL,YAJR,SAAqBrK,GACjB,OAAgB,MAATA,GAAmC,iBAAVA,GAAuC,mBAAVA,CACjE,C,uBCNAZ,EAAOD,QAAUQ,C,2BCEjBC,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMsK,EAAW,EAAQ,MACnBC,EAAM,EAAQ,MACdnE,EAAW,EAAQ,MACnBoE,EAAoB,EAAQ,MAC5BnE,EAAW,EAAQ,MASzBlH,EAAQsL,OAPR,SAAgB9D,EAAOJ,EAAaH,EAASA,UACzC,OAAKoE,EAAkBA,kBAAkB7D,GAGlC2D,EAASG,OAAO/J,MAAM8F,KAAKG,GAAQ4D,EAAIA,IAAIlE,EAASA,SAASE,GAAa,IAFtE,EAGf,C,cCfAnH,EAAOD,QAAU,EAAjB,mB,cCAAC,EAAOD,QAAU,EAAjB,U,2BCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMyI,EAAS,EAAQ,MAMvBtJ,EAAQuL,YAJR,SAAqB1K,GACjB,OAAiB,OAAVA,GAAmC,iBAAVA,GAA+C,uBAAzByI,EAAOA,OAAOzI,EACxE,C,2BCNAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMkI,EAAW,EAAQ,MACnBrB,EAAQ,EAAQ,MA4EtB1H,EAAQwL,OA1ER,SAAgBC,GACZ,GAAIlK,MAAMkH,QAAQgD,GACd,OAAOA,EAAQzC,IAAItB,EAAMA,OAE7B,GAAuB,iBAAZ+D,EACP,MAAO,CAACA,GAGZ,MAAMjK,EAAS,GACTa,GAFNoJ,EAAU1C,EAASA,SAAS0C,IAELpJ,OACvB,GAAe,IAAXA,EACA,OAAOb,EAEX,IAAIqE,EAAQ,EACRoC,EAAM,GACNyD,EAAY,GACZC,GAAU,EAKd,IAJ8B,KAA1BF,EAAQG,WAAW,KACnBpK,EAAO8B,KAAK,IACZuC,KAEGA,EAAQxD,GAAQ,CACnB,MAAMwJ,EAAOJ,EAAQ5F,GACjB6F,EACa,OAATG,GAAiBhG,EAAQ,EAAIxD,GAC7BwD,IACAoC,GAAOwD,EAAQ5F,IAEVgG,IAASH,EACdA,EAAY,GAGZzD,GAAO4D,EAGNF,EACQ,MAATE,GAAyB,MAATA,EAChBH,EAAYG,EAEE,MAATA,GACLF,GAAU,EACVnK,EAAO8B,KAAK2E,GACZA,EAAM,IAGNA,GAAO4D,EAIE,MAATA,GACAF,GAAU,EACN1D,IACAzG,EAAO8B,KAAK2E,GACZA,EAAM,KAGI,MAAT4D,EACD5D,IACAzG,EAAO8B,KAAK2E,GACZA,EAAM,IAIVA,GAAO4D,EAGfhG,GACJ,CAIA,OAHIoC,GACAzG,EAAO8B,KAAK2E,GAETzG,CACX,C,2BC7EAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMgG,EAAU,EAAQ,KAClBa,EAAQ,EAAQ,MAChBoE,EAAY,EAAQ,MACpBC,EAAM,EAAQ,MACdzJ,EAAM,EAAQ,MA4BpBtC,EAAQgM,gBA1BR,SAAyBC,EAAUlF,GAC/B,cAAekF,GACX,IAAK,SACGxL,OAAOkH,GAAGsE,GAAUrE,WAAY,KAChCqE,EAAW,MAEf,MAEJ,IAAK,SACDA,EAAWvE,EAAMA,MAAMuE,GAK/B,OADAlF,EAAS+E,EAAUA,UAAU/E,GACtB,SAAUD,GACb,MAAMtF,EAASuK,EAAIA,IAAIjF,EAAQmF,GAC/B,YAAe9G,IAAX3D,EACOc,EAAIA,IAAIwE,EAAQmF,QAEZ9G,IAAX4B,OACkB5B,IAAX3D,EAEJqF,EAAQA,QAAQrF,EAAQuF,EACnC,CACJ,C,2BChCAtG,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMqL,EAAgB,EAAQ,MACxBC,EAAQ,EAAQ,MAChBX,EAAS,EAAQ,MA2EvBxL,EAAQoM,QAzER,SAAiBC,EAAYC,EAAUC,EAAQC,GAC3C,GAAkB,MAAdH,EACA,MAAO,GAEXE,EAASC,OAAQrH,EAAYoH,EACxBhL,MAAMkH,QAAQ4D,KACfA,EAAa5L,OAAOgM,OAAOJ,IAE1B9K,MAAMkH,QAAQ6D,KACfA,EAAuB,MAAZA,EAAmB,CAAC,MAAQ,CAACA,IAEpB,IAApBA,EAASjK,SACTiK,EAAW,CAAC,OAEX/K,MAAMkH,QAAQ8D,KACfA,EAAmB,MAAVA,EAAiB,GAAK,CAACA,IAEpCA,EAASA,EAAOvD,KAAI0D,GAAS7E,OAAO6E,KACpC,MAAMC,EAAuB,CAAC7G,EAAQ8G,KAClC,IAAI9F,EAAShB,EACb,IAAK,IAAIxB,EAAI,EAAGA,EAAIsI,EAAKvK,QAAoB,MAAVyE,IAAkBxC,EACjDwC,EAASA,EAAO8F,EAAKtI,IAEzB,OAAOwC,CAAM,EAuBX+F,EAAmBP,EAAStD,KAAK8D,IAC/BvL,MAAMkH,QAAQqE,IAAmC,IAArBA,EAAUzK,SACtCyK,EAAYA,EAAU,IAET,MAAbA,GAA0C,mBAAdA,GAA4BvL,MAAMkH,QAAQqE,IAAcX,EAAMA,MAAMW,GACzFA,EAEJ,CAAE7E,IAAK6E,EAAWF,KAAMpB,EAAOA,OAAOsB,OAMjD,OAJ2BT,EAAWrD,KAAI+D,IAAQ,CAC9CC,SAAUD,EACVT,SAAUO,EAAiB7D,KAAK8D,GAhCR,EAACA,EAAWhH,IACtB,MAAVA,GAA+B,MAAbgH,EACXhH,EAEc,iBAAdgH,GAA0B,QAASA,EACtCrM,OAAOiI,OAAO5C,EAAQgH,EAAU7E,KACzBnC,EAAOgH,EAAU7E,KAErB0E,EAAqB7G,EAAQgH,EAAUF,MAEzB,mBAAdE,EACAA,EAAUhH,GAEjBvE,MAAMkH,QAAQqE,GACPH,EAAqB7G,EAAQgH,GAElB,iBAAXhH,EACAA,EAAOgH,GAEXhH,EAauCmH,CAAoBH,EAAWC,SAG5E9I,QACAiJ,MAAK,CAACC,EAAGC,KACV,IAAK,IAAI9I,EAAI,EAAGA,EAAIuI,EAAiBxK,OAAQiC,IAAK,CAC9C,MAAM+I,EAAiBnB,EAAcA,cAAciB,EAAEb,SAAShI,GAAI8I,EAAEd,SAAShI,GAAIiI,EAAOjI,IACxF,GAAuB,IAAnB+I,EACA,OAAOA,CAEf,CACA,OAAO,CAAC,IAEPrE,KAAI+D,GAAQA,EAAKC,UAC1B,C,2BC7EAvM,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMkL,EAAM,EAAQ,MAQpB/L,EAAQiM,SANR,SAAkBW,GACd,OAAO,SAAU9G,GACb,OAAOiG,EAAIA,IAAIjG,EAAQ8G,EAC3B,CACJ,C,cCVA3M,EAAOD,QAAU,EAAjB,W,yBCIA,SAASsN,EAAYH,GACjB,MAAiB,iBAANA,EACA,EAED,OAANA,EACO,OAEDhI,IAANgI,EACO,EAEPA,GAAMA,EACC,EAEJ,CACX,CAhBA1M,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAkC5Db,EAAQkM,cAjBc,CAACiB,EAAGC,EAAGV,KACzB,GAAIS,IAAMC,EAAG,CACT,MAAMG,EAAYD,EAAYH,GACxBK,EAAYF,EAAYF,GAC9B,GAAIG,IAAcC,GAA2B,IAAdD,EAAiB,CAC5C,GAAIJ,EAAIC,EACJ,MAAiB,SAAVV,EAAmB,GAAK,EAEnC,GAAIS,EAAIC,EACJ,MAAiB,SAAVV,GAAoB,EAAI,CAEvC,CACA,MAAiB,SAAVA,EAAmBc,EAAYD,EAAYA,EAAYC,CAClE,CACA,OAAO,CAAC,C,2BC/BZ/M,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMqG,EAAW,EAAQ,MAwBzBlH,EAAQyN,MAtBR,SAAejG,EAAOJ,GAClB,IAAKI,IAAUA,EAAMnF,OACjB,OAAO,EAKX,IAAIb,EAHc,MAAd4F,IACAA,EAAaF,EAASA,SAASE,IAGnC,IAAK,IAAI9C,EAAI,EAAGA,EAAIkD,EAAMnF,OAAQiC,IAAK,CACnC,MAAMiG,EAAUnD,EAAaA,EAAWI,EAAMlD,IAAMkD,EAAMlD,QAC1Ca,IAAZoF,SACepF,IAAX3D,EACAA,EAAS+I,EAGT/I,GAAU+I,EAGtB,CACA,OAAO/I,CACX,C,2BCxBAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM6M,EAAgB,EAAQ,MAM9B1N,EAAQ8L,UAJR,SAAmB6B,GACf,OAAOD,EAAcE,kBAAkBD,OAAKxI,EAAWwI,EAAK,IAAIE,SAAO1I,EAC3E,C,yBCNA1E,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQsG,aAJR,SAAsBC,GAClB,OAAOuH,YAAYC,OAAOxH,MAAQA,aAAayH,SACnD,C,2BCJAvN,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM6M,EAAgB,EAAQ,MAM9B1N,EAAQ8L,UAJR,SAAmB6B,GACf,OAAOD,EAAcA,cAAcC,EACvC,C,2BCNAlN,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMsI,EAAa,EAAQ,MACrBG,EAAS,EAAQ,MACjB2E,EAAO,EAAQ,MACf/C,EAAc,EAAQ,MACtB5E,EAAe,EAAQ,MAK7B,SAASsH,EAAkBM,EAAcC,EAAYC,EAAeC,EAAQ,IAAIR,IAAOS,OAAanJ,GAChG,MAAMoJ,EAASD,IAAaJ,EAAcC,EAAYC,EAAeC,GACrE,QAAelJ,IAAXoJ,EACA,OAAOA,EAEX,GAAIrD,EAAYA,YAAYgD,GACxB,OAAOA,EAEX,GAAIG,EAAM/L,IAAI4L,GACV,OAAOG,EAAMtC,IAAImC,GAErB,GAAI3M,MAAMkH,QAAQyF,GAAe,CAC7B,MAAM1M,EAAS,IAAID,MAAM2M,EAAa7L,QACtCgM,EAAMG,IAAIN,EAAc1M,GACxB,IAAK,IAAI8C,EAAI,EAAGA,EAAI4J,EAAa7L,OAAQiC,IACrC9C,EAAO8C,GAAKsJ,EAAkBM,EAAa5J,GAAIA,EAAG8J,EAAeC,EAAOC,GAQ5E,OANI7N,OAAOiI,OAAOwF,EAAc,WAC5B1M,EAAOqE,MAAQqI,EAAarI,OAE5BpF,OAAOiI,OAAOwF,EAAc,WAC5B1M,EAAOiN,MAAQP,EAAaO,OAEzBjN,CACX,CACA,GAAI0M,aAAwBpM,KACxB,OAAO,IAAIA,KAAKoM,EAAaQ,WAEjC,GAAIR,aAAwBS,OAAQ,CAChC,MAAMnN,EAAS,IAAImN,OAAOT,EAAanH,OAAQmH,EAAaU,OAE5D,OADApN,EAAOqN,UAAYX,EAAaW,UACzBrN,CACX,CACA,GAAI0M,aAAwBL,IAAK,CAC7B,MAAMrM,EAAS,IAAIqM,IACnBQ,EAAMG,IAAIN,EAAc1M,GACxB,IAAK,MAAOyG,EAAKpH,KAAUqN,EACvB1M,EAAOgN,IAAIvG,EAAK2F,EAAkB/M,EAAOoH,EAAKmG,EAAeC,EAAOC,IAExE,OAAO9M,CACX,CACA,GAAI0M,aAAwB7F,IAAK,CAC7B,MAAM7G,EAAS,IAAI6G,IACnBgG,EAAMG,IAAIN,EAAc1M,GACxB,IAAK,MAAMX,KAASqN,EAChB1M,EAAO8G,IAAIsF,EAAkB/M,OAAOsE,EAAWiJ,EAAeC,EAAOC,IAEzE,OAAO9M,CACX,CACA,GAAsB,oBAAXiF,QAA0BA,OAAOD,SAAS0H,GACjD,OAAOA,EAAaY,WAExB,GAAIxI,EAAaA,aAAa4H,GAAe,CACzC,MAAM1M,EAAS,IAAKf,OAAO4I,eAAe6E,GAAyB,aAAEA,EAAa7L,QAClFgM,EAAMG,IAAIN,EAAc1M,GACxB,IAAK,IAAI8C,EAAI,EAAGA,EAAI4J,EAAa7L,OAAQiC,IACrC9C,EAAO8C,GAAKsJ,EAAkBM,EAAa5J,GAAIA,EAAG8J,EAAeC,EAAOC,GAE5E,OAAO9M,CACX,CACA,GAAI0M,aAAwBJ,aACM,oBAAtBiB,mBAAqCb,aAAwBa,kBACrE,OAAOb,EAAajK,MAAM,GAE9B,GAAIiK,aAAwBF,SAAU,CAClC,MAAMxM,EAAS,IAAIwM,SAASE,EAAac,OAAO/K,MAAM,GAAIiK,EAAae,WAAYf,EAAagB,YAGhG,OAFAb,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAoB,oBAAT4N,MAAwBlB,aAAwBkB,KAAM,CAC7D,MAAM5N,EAAS,IAAI4N,KAAK,CAAClB,GAAeA,EAAapK,KAAM,CACvDuL,KAAMnB,EAAamB,OAIvB,OAFAhB,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAoB,oBAAT8N,MAAwBpB,aAAwBoB,KAAM,CAC7D,MAAM9N,EAAS,IAAI8N,KAAK,CAACpB,GAAe,CAAEmB,KAAMnB,EAAamB,OAG7D,OAFAhB,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAI0M,aAAwBqB,MAAO,CAC/B,MAAM/N,EAAS,IAAI0M,EAAasB,YAOhC,OANAnB,EAAMG,IAAIN,EAAc1M,GACxBA,EAAOiO,QAAUvB,EAAauB,QAC9BjO,EAAOsC,KAAOoK,EAAapK,KAC3BtC,EAAO6M,MAAQH,EAAaG,MAC5B7M,EAAOkO,MAAQxB,EAAawB,MAC5BP,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAI0M,aAAwByB,QAAS,CACjC,MAAMnO,EAAS,IAAImO,QAAQzB,EAAatG,WAGxC,OAFAyG,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAI0M,aAAwBhF,OAAQ,CAChC,MAAM1H,EAAS,IAAI0H,OAAOgF,EAAatG,WAGvC,OAFAyG,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAAI0M,aAAwBrG,OAAQ,CAChC,MAAMrG,EAAS,IAAIqG,OAAOqG,EAAatG,WAGvC,OAFAyG,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,GAA4B,iBAAjB0M,GAkBf,SAA2BpI,GACvB,OAAQwD,EAAOA,OAAOxD,IAClB,KAAKmI,EAAK2B,aACV,KAAK3B,EAAK4B,SACV,KAAK5B,EAAK6B,eACV,KAAK7B,EAAK8B,YACV,KAAK9B,EAAK+B,WACV,KAAK/B,EAAKgC,QACV,KAAKhC,EAAKiC,gBACV,KAAKjC,EAAKkC,gBACV,KAAKlC,EAAKmC,aACV,KAAKnC,EAAKoC,cACV,KAAKpC,EAAKqC,cACV,KAAKrC,EAAKsC,OACV,KAAKtC,EAAKuC,UACV,KAAKvC,EAAKwC,UACV,KAAKxC,EAAKyC,UACV,KAAKzC,EAAK0C,OACV,KAAK1C,EAAK2C,UACV,KAAK3C,EAAK4C,UACV,KAAK5C,EAAK6C,cACV,KAAK7C,EAAK8C,qBACV,KAAK9C,EAAK+C,eACV,KAAK/C,EAAKgD,eACN,OAAO,EAEX,QACI,OAAO,EAGnB,CAhD4CC,CAAkBhD,GAAe,CACrE,MAAM1M,EAASf,OAAOiD,OAAOjD,OAAO4I,eAAe6E,IAGnD,OAFAG,EAAMG,IAAIN,EAAc1M,GACxB2N,EAAe3N,EAAQ0M,EAAcE,EAAeC,EAAOC,GACpD9M,CACX,CACA,OAAO0M,CACX,CACA,SAASiB,EAAerI,EAAQC,EAAQqH,EAAgBtH,EAAQuH,EAAOC,GACnE,MAAM1F,EAAO,IAAInI,OAAOmI,KAAK7B,MAAYoC,EAAWA,WAAWpC,IAC/D,IAAK,IAAIzC,EAAI,EAAGA,EAAIsE,EAAKvG,OAAQiC,IAAK,CAClC,MAAM2D,EAAMW,EAAKtE,GACX6M,EAAa1Q,OAAO2Q,yBAAyBtK,EAAQmB,IACzC,MAAdkJ,GAAsBA,EAAWE,YACjCvK,EAAOmB,GAAO2F,EAAkB7G,EAAOkB,GAAMA,EAAKmG,EAAeC,EAAOC,GAEhF,CACJ,CAiCAtO,EAAQ0N,cArKR,SAAuBC,EAAKW,GACxB,OAAOV,EAAkBD,OAAKxI,EAAWwI,EAAK,IAAIE,IAAOS,EAC7D,EAoKAtO,EAAQ4N,kBAAoBA,EAC5B5N,EAAQmP,eAAiBA,C,2BC/KzB1O,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM4G,EAAW,EAAQ,MAEnB6J,EAAkB,mDAClBC,EAAmB,QAYzBvR,EAAQmM,MAXR,SAAetL,EAAOiF,GAClB,OAAIvE,MAAMkH,QAAQ5H,OAGG,iBAAVA,GAAuC,kBAAVA,GAAgC,MAATA,IAAiB4G,EAASA,SAAS5G,MAGxE,iBAAVA,IAAuB0Q,EAAiBC,KAAK3Q,KAAWyQ,EAAgBE,KAAK3Q,KAC9E,MAAViF,GAAkBrF,OAAOiI,OAAO5C,EAAQjF,IACjD,C,2BCfA,IAAI4Q,EAAU,EAAQ,MAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACX/C,MAAM,GAEJgD,EAAgB,CAClBvO,MAAM,EACNzB,QAAQ,EACRE,WAAW,EACX+P,QAAQ,EACRC,QAAQ,EACRtN,WAAW,EACXuN,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTZ,cAAc,EACdC,aAAa,EACbK,WAAW,EACX/C,MAAM,GAEJsD,EAAe,CAAC,EAIpB,SAASC,EAAWC,GAElB,OAAIpB,EAAQqB,OAAOD,GACVJ,EAIFE,EAAaE,EAAoB,WAAMnB,CAChD,CAXAiB,EAAalB,EAAQsB,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACRlB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbO,EAAalB,EAAQwB,MAAQR,EAY7B,IAAI/R,EAAiBD,OAAOC,eACxBwS,EAAsBzS,OAAOyS,oBAC7BhP,EAAwBzD,OAAOyD,sBAC/BkN,EAA2B3Q,OAAO2Q,yBAClC/H,EAAiB5I,OAAO4I,eACxB8J,EAAkB1S,OAAO8B,UAsC7BtC,EAAOD,QArCP,SAASoT,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBnK,EAAeiK,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAI3K,EAAOsK,EAAoBI,GAE3BpP,IACF0E,EAAOA,EAAKzE,OAAOD,EAAsBoP,KAM3C,IAHA,IAAIG,EAAgBb,EAAWS,GAC3BK,EAAgBd,EAAWU,GAEtBhP,EAAI,EAAGA,EAAIsE,EAAKvG,SAAUiC,EAAG,CACpC,IAAI2D,EAAMW,EAAKtE,GAEf,KAAK+N,EAAcpK,IAAUsL,GAAaA,EAAUtL,IAAWyL,GAAiBA,EAAczL,IAAWwL,GAAiBA,EAAcxL,IAAO,CAC7I,IAAIkJ,EAAaC,EAAyBkC,EAAiBrL,GAE3D,IAEEvH,EAAe2S,EAAiBpL,EAAKkJ,EACvC,CAAE,MAAOwC,GAAI,CACf,CACF,CACF,CAEA,OAAON,CACT,C,2BClGA5S,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM6M,EAAgB,EAAQ,MACxBxF,EAAS,EAAQ,MACjB0L,EAAQ,EAAQ,MAChBxK,EAAe,EAAQ,MACvByK,EAAY,EAAQ,MACpBC,EAAU,EAAQ,MAClBC,EAAgB,EAAQ,MA8D9B/T,EAAQgU,KA5DR,SAAcrG,KAAQsG,GAClB,GAAW,MAAPtG,EACA,MAAO,CAAC,EAGZ,MAAMnM,EAwBV,SAAqBmM,EAAK/E,GAEtB,GADmBA,EAAKsL,MAAKjM,GAAO1G,MAAMkH,QAAQR,IAAQ4L,EAAUA,UAAU5L,KAE1E,OAaR,SAAyB0F,GACrB,MAAMnM,EAAS,CAAC,EACV2S,EAAa,IAAIjM,EAAOA,OAAOyF,MAASvE,EAAaA,aAAauE,IACxE,IAAK,IAAIrJ,EAAI,EAAGA,EAAI6P,EAAW9R,OAAQiC,IAAK,CACxC,MAAM2D,EAAMkM,EAAW7P,GACvB9C,EAAOyG,GAAOyF,EAAcA,cAAcC,EAAI1F,IAAMiG,IAChD,IAAI6F,EAAcA,cAAc7F,GAGhC,OAAOA,CAAY,GAE3B,CACA,OAAO1M,CACX,CA1Be4S,CAAgBzG,GAE3B,OAEJ,SAA4BA,GACxB,MAAMnM,EAAS,CAAC,EACV2S,EAAa,IAAIjM,EAAOA,OAAOyF,MAASvE,EAAaA,aAAauE,IACxE,IAAK,IAAIrJ,EAAI,EAAGA,EAAI6P,EAAW9R,OAAQiC,IAAK,CACxC,MAAM2D,EAAMkM,EAAW7P,GACvB9C,EAAOyG,GAAO0F,EAAI1F,EACtB,CACA,OAAOzG,CACX,CAVW6S,CAAmB1G,EAC9B,CA9BmB2G,CAAY3G,EAD3BsG,EAAUH,EAAQA,QAAQG,IAE1B,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAQ5R,OAAQiC,IAAK,CACrC,IAAIsE,EAAOqL,EAAQ3P,GACnB,cAAesE,GACX,IAAK,SACIrH,MAAMkH,QAAQG,KACfA,EAAOrH,MAAM8F,KAAKuB,IAEtB,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAKvG,OAAQ+C,IAAK,CAClC,MAAM6C,EAAMW,EAAKxD,GACjBwO,EAAMA,MAAMpS,EAAQyG,EACxB,CACA,MAEJ,IAAK,SACL,IAAK,SACL,IAAK,SACD2L,EAAMA,MAAMpS,EAAQoH,GAIhC,CACA,OAAOpH,CACX,C,2BCtCAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM0T,EAAmB,EAAQ,MAC3BV,EAAY,EAAQ,MACpBnM,EAAQ,EAAQ,MAChB8D,EAAS,EAAQ,MA0EvBxL,EAAQ+L,IAxER,SAASA,EAAIjG,EAAQ8G,EAAM4H,GACvB,GAAc,MAAV1O,EACA,OAAO0O,EAEX,cAAe5H,GACX,IAAK,SAAU,CACX,GAAI2H,EAAiBA,iBAAiB3H,GAClC,OAAO4H,EAEX,MAAMhT,EAASsE,EAAO8G,GACtB,YAAezH,IAAX3D,EACIqS,EAAUA,UAAUjH,GACbb,EAAIjG,EAAQ0F,EAAOA,OAAOoB,GAAO4H,GAGjCA,EAGRhT,CACX,CACA,IAAK,SACL,IAAK,SAAU,CACS,iBAAToL,IACPA,EAAOlF,EAAMA,MAAMkF,IAEvB,MAAMpL,EAASsE,EAAO8G,GACtB,YAAezH,IAAX3D,EACOgT,EAEJhT,CACX,CACA,QAAS,CACL,GAAID,MAAMkH,QAAQmE,GACd,OAmBhB,SAAqB9G,EAAQ8G,EAAM4H,GAC/B,GAAoB,IAAhB5H,EAAKvK,OACL,OAAOmS,EAEX,IAAIjK,EAAUzE,EACd,IAAK,IAAID,EAAQ,EAAGA,EAAQ+G,EAAKvK,OAAQwD,IAAS,CAC9C,GAAe,MAAX0E,EACA,OAAOiK,EAEX,GAAID,EAAiBA,iBAAiB3H,EAAK/G,IACvC,OAAO2O,EAEXjK,EAAUA,EAAQqC,EAAK/G,GAC3B,CACA,QAAgBV,IAAZoF,EACA,OAAOiK,EAEX,OAAOjK,CACX,CArCuBkK,CAAY3O,EAAQ8G,EAAM4H,GAQrC,GALI5H,EADAnM,OAAOkH,GAAGiF,GAAMhF,WAAY,GACrB,KAGAC,OAAO+E,GAEd2H,EAAiBA,iBAAiB3H,GAClC,OAAO4H,EAEX,MAAMhT,EAASsE,EAAO8G,GACtB,YAAezH,IAAX3D,EACOgT,EAEJhT,CACX,EAER,C,2BC1DAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMuL,EAAU,EAAQ,MAClB0H,EAAU,EAAQ,MAClBlO,EAAiB,EAAQ,KAa/B5F,EAAQ0U,OAXR,SAAgBrI,KAAeC,GAC3B,MAAMjK,EAASiK,EAASjK,OAOxB,OANIA,EAAS,GAAKuD,EAAeA,eAAeyG,EAAYC,EAAS,GAAIA,EAAS,IAC9EA,EAAW,GAENjK,EAAS,GAAKuD,EAAeA,eAAe0G,EAAS,GAAIA,EAAS,GAAIA,EAAS,MACpFA,EAAW,CAACA,EAAS,KAElBF,EAAQA,QAAQC,EAAYyH,EAAQA,QAAQxH,GAAW,CAAC,OACnE,C,cCjBArM,EAAOD,QAAU,EAAjB,c,cCAAC,EAAOD,QAAU,EAAjB,W,yBCEAS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQuH,QAJR,SAAiB1G,GACb,OAAOU,MAAMkH,QAAQ5H,GAASA,EAAQU,MAAM8F,KAAKxG,EACrD,C,yBCJAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQ2F,sBAJR,SAA+B9E,EAAO8T,GAClC,OAAO9T,IAAU8T,GAAUzL,OAAO0L,MAAM/T,IAAUqI,OAAO0L,MAAMD,EACnE,C,2BCJAlU,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMgU,EAAW,EAAQ,MAczB7U,EAAQ8U,SAZR,SAAkBjU,GACd,IAAKA,EACD,OAAiB,IAAVA,EAAcA,EAAQ,EAGjC,IADAA,EAAQgU,EAASA,SAAShU,MACZkU,KAAYlU,KAAWkU,IAAU,CAE3C,OADalU,EAAQ,GAAK,EAAI,GAChBqI,OAAO8L,SACzB,CACA,OAAOnU,GAAUA,EAAQA,EAAQ,CACrC,C,yBCdAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQ0F,SAJR,SAAkB7E,GACd,OAAiB,OAAVA,IAAoC,iBAAVA,GAAuC,mBAAVA,EAClE,C,2BCJAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM+E,EAAiB,EAAQ,KACzBkP,EAAW,EAAQ,MAwBzB9U,EAAQiV,MAtBR,SAAeC,EAAOC,EAAKC,GACnBA,GAAwB,iBAATA,GAAqBxP,EAAeA,eAAesP,EAAOC,EAAKC,KAC9ED,EAAMC,OAAOjQ,GAEjB+P,EAAQJ,EAASA,SAASI,QACd/P,IAARgQ,GACAA,EAAMD,EACNA,EAAQ,GAGRC,EAAML,EAASA,SAASK,GAE5BC,OAAgBjQ,IAATiQ,EAAsBF,EAAQC,EAAM,GAAK,EAAKL,EAASA,SAASM,GACvE,MAAM/S,EAASgT,KAAKlP,IAAIkP,KAAKC,MAAMH,EAAMD,IAAUE,GAAQ,IAAK,GAC1D5T,EAAS,IAAID,MAAMc,GACzB,IAAK,IAAIwD,EAAQ,EAAGA,EAAQxD,EAAQwD,IAChCrE,EAAOqE,GAASqP,EAChBA,GAASE,EAEb,OAAO5T,CACX,C,yBCzBAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAc5Db,EAAQ6T,UAZR,SAAmB5L,GACf,cAAeA,GACX,IAAK,SACL,IAAK,SACD,OAAO,EAEX,IAAK,SACD,OAAOA,EAAIsN,SAAS,MAAQtN,EAAIsN,SAAS,MAAQtN,EAAIsN,SAAS,KAG1E,C,2BCZA9U,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAME,EAAW,EAAQ,GAWzBf,EAAQwV,SATR,SAAkBxU,EAAMyU,EAAa,EAAGvU,EAAU,CAAC,GAC/C,MAAM,QAAEC,GAAU,EAAI,SAAEC,GAAW,GAASF,EAC5C,OAAOH,EAASA,SAASC,EAAMyU,EAAY,CACvCtU,UACAE,QAASoU,EACTrU,YAER,C,yBCXAX,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAQ5Db,EAAQ8H,YANR,SAAqBjH,GACjB,MAAM2O,EAAc3O,GAAO2O,YAE3B,OAAO3O,KADkC,mBAAhB2O,EAA6BA,EAAYjN,UAAY9B,OAAO8B,UAEzF,C,uBCRAtC,EAAOD,QAAUM,C,yBCEjBG,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAoB5Db,EAAQ8T,QAlBR,SAAiBnN,EAAK+O,EAAQ,GAC1B,MAAMlU,EAAS,GACTmU,EAAeN,KAAKO,MAAMF,GAC1BG,EAAY,CAAClP,EAAKmP,KACpB,IAAK,IAAIxR,EAAI,EAAGA,EAAIqC,EAAItE,OAAQiC,IAAK,CACjC,MAAMyI,EAAOpG,EAAIrC,GACb/C,MAAMkH,QAAQsE,IAAS+I,EAAeH,EACtCE,EAAU9I,EAAM+I,EAAe,GAG/BtU,EAAO8B,KAAKyJ,EAEpB,GAGJ,OADA8I,EAAUlP,EAAK,GACRnF,CACX,C,2BClBAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMkV,EAAU,EAAQ,KAClB9O,EAAW,EAAQ,MACnBC,EAAW,EAAQ,MASzBlH,EAAQ+F,MAPR,SAAeC,EAAOoB,GAClB,GAAa,MAATpB,EAGJ,OAAO+P,EAAQhQ,MAAMxE,MAAM8F,KAAKrB,GAAQkB,EAASA,SAASE,GAAcH,EAASA,UACrF,C,uBCbAhH,EAAOD,QAAUO,C,yBCEjBE,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQmJ,WAJR,SAAoBrD,GAChB,OAAOrF,OAAOyD,sBAAsB4B,GAAQ0C,QAAOwN,GAAUvV,OAAO8B,UAAU0T,qBAAqBjS,KAAK8B,EAAQkQ,IACpH,C,2BCJAvV,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMuB,EAAc,EAAQ,IA+B5BpC,EAAQ8T,QA7BR,SAAiBjT,EAAO6U,EAAQ,GAC5B,MAAMlU,EAAS,GACTmU,EAAeN,KAAKO,MAAMF,GAChC,IAAKtT,EAAYA,YAAYvB,GACzB,OAAOW,EAEX,MAAMqU,EAAY,CAAClP,EAAKmP,KACpB,IAAK,IAAIxR,EAAI,EAAGA,EAAIqC,EAAItE,OAAQiC,IAAK,CACjC,MAAMyI,EAAOpG,EAAIrC,GACbwR,EAAeH,IACdpU,MAAMkH,QAAQsE,IACX4C,QAAQ5C,IAAOpM,OAAOuV,sBACZ,OAATnJ,GAAiC,iBAATA,GAA8D,uBAAzCtM,OAAO8B,UAAUwG,SAAS/E,KAAK+I,IAC7ExL,MAAMkH,QAAQsE,GACd8I,EAAU9I,EAAM+I,EAAe,GAG/BD,EAAUtU,MAAM8F,KAAK0F,GAAO+I,EAAe,GAI/CtU,EAAO8B,KAAKyJ,EAEpB,GAGJ,OADA8I,EAAUtU,MAAM8F,KAAKxG,GAAQ,GACtBW,CACX,C,yBC/BAf,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQiH,SAJR,SAAkBV,GACd,OAAOA,CACX,C,yBCJA9F,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WA+D5Db,EAAQe,SA7DR,SAAkBC,EAAMC,GAAY,OAAEkV,EAAM,MAAE7U,GAAU,CAAC,GACrD,IAAI8U,EACAC,EAAc,KAClB,MAAMlV,EAAmB,MAATG,GAAiBA,EAAMiU,SAAS,WAC1CnU,EAAoB,MAATE,GAAiBA,EAAMiU,SAAS,YAC3Ce,EAAS,KACS,OAAhBD,IACArV,EAAKY,MAAMwU,EAAaC,GACxBD,OAAcjR,EACdkR,EAAc,KAClB,EAQJ,IAAIE,EAAY,KAChB,MAAMtU,EAAW,KACI,MAAbsU,GACAC,aAAaD,GAEjBA,EAAYE,YAAW,KACnBF,EAAY,KAXZnV,GACAkV,IAEJtU,GASgB,GACbf,EAAW,EAQZe,EAAS,KALO,OAAduU,IACAC,aAAaD,GACbA,EAAY,MAKhBH,OAAcjR,EACdkR,EAAc,IAAI,EAKhBxU,EAAY,YAAaF,GAC3B,GAAIwU,GAAQO,QACR,OAEJN,EAAc/V,KACdgW,EAAc1U,EACd,MAAMgV,EAA2B,MAAbJ,EACpBtU,IACId,GAAWwV,GACXL,GAER,EAKA,OAJAzU,EAAUI,SAAWA,EACrBJ,EAAUG,OAASA,EACnBH,EAAUK,MAjBI,KACVoU,GAAQ,EAiBZH,GAAQS,iBAAiB,QAAS5U,EAAQ,CAAEc,MAAM,IAC3CjB,CACX,C,yBC7DApB,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAQ5Db,EAAQoL,IANR,SAAapK,EAAM6V,GACf,OAAO,YAAalV,GAChB,OAAOX,EAAKY,MAAMvB,KAAMsB,EAAKsC,MAAM,EAAG4S,GAC1C,CACJ,C,2BCNApW,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMgT,EAAY,EAAQ,MACpBpO,EAAU,EAAQ,MAClB8F,EAAc,EAAQ,MACtBC,EAAS,EAAQ,MA8BvBxL,EAAQsC,IA5BR,SAAawD,EAAQ8G,GACjB,IAAIkK,EAUJ,GARIA,EADAvV,MAAMkH,QAAQmE,GACCA,EAEM,iBAATA,GAAqBiH,EAAUA,UAAUjH,IAA2B,MAAlB9G,IAAS8G,GACxDpB,EAAOA,OAAOoB,GAGd,CAACA,GAEQ,IAAxBkK,EAAazU,OACb,OAAO,EAEX,IAAIkI,EAAUzE,EACd,IAAK,IAAIxB,EAAI,EAAGA,EAAIwS,EAAazU,OAAQiC,IAAK,CAC1C,MAAM2D,EAAM6O,EAAaxS,GACzB,GAAe,MAAXiG,IAAoB9J,OAAOiI,OAAO6B,EAAStC,GAAM,CAEjD,MADuB1G,MAAMkH,QAAQ8B,IAAYgB,EAAYA,YAAYhB,KAAa9E,EAAQA,QAAQwC,IAAQA,EAAMsC,EAAQlI,QAExH,OAAO,CAEf,CACAkI,EAAUA,EAAQtC,EACtB,CACA,OAAO,CACX,C,2BCjCAxH,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMiU,EAAW,EAAQ,MAQzB9U,EAAQ+W,UANR,SAAmBlW,GACf,MAAMmW,EAASlC,EAASA,SAASjU,GAC3BoW,EAAYD,EAAS,EAC3B,OAAOC,EAAYD,EAASC,EAAYD,CAC5C,C,2BCRAvW,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMkL,EAAM,EAAQ,MACdwI,EAAmB,EAAQ,MAC3BV,EAAY,EAAQ,MACpBnM,EAAQ,EAAQ,MAChB8D,EAAS,EAAQ,MAuDvB,SAAS0L,EAAcvJ,EAAKf,GACxB,MAAMuK,EAAyB,IAAhBvK,EAAKvK,OAAesL,EAAM5B,EAAIA,IAAI4B,EAAKf,EAAK3I,MAAM,GAAI,IAC/DmT,EAAUxK,EAAKA,EAAKvK,OAAS,GACnC,QAA0B8C,IAAtBgS,IAASC,GACT,OAAO,EAEX,GAAI7C,EAAiBA,iBAAiB6C,GAClC,OAAO,EAEX,IAEI,cADOD,EAAOC,IACP,CACX,CACA,MACI,OAAO,CACX,CACJ,CAEApX,EAAQ4T,MAvER,SAAejG,EAAKf,GAChB,GAAW,MAAPe,EACA,OAAO,EAEX,cAAef,GACX,IAAK,SACL,IAAK,SACL,IAAK,SACD,GAAIrL,MAAMkH,QAAQmE,GACd,OAAOsK,EAAcvJ,EAAKf,GAa9B,GAXoB,iBAATA,EACPA,EAAOlF,EAAMA,MAAMkF,GAEE,iBAATA,IAERA,EADAnM,OAAOkH,GAAGiF,GAAMhF,WAAY,GACrB,KAGAC,OAAO+E,IAGlB2H,EAAiBA,iBAAiB3H,GAClC,OAAO,EAEX,QAAoBzH,IAAhBwI,IAAMf,GACN,OAAO,EAEX,IAEI,cADOe,EAAIf,IACJ,CACX,CACA,MACI,OAAO,CACX,CAEJ,IAAK,SACD,QAAoBzH,IAAhBwI,IAAMf,IAAuBiH,EAAUA,UAAUjH,GACjD,OAAOsK,EAAcvJ,EAAKnC,EAAOA,OAAOoB,IAE5C,GAAI2H,EAAiBA,iBAAiB3H,GAClC,OAAO,EAEX,IAEI,cADOe,EAAIf,IACJ,CACX,CACA,MACI,OAAO,CACX,EAGZ,C,2BC5DAnM,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMgG,EAAU,EAAQ,KAClBiF,EAAY,EAAQ,MAS1B9L,EAAQqX,QAPR,SAAiBtQ,GAEb,OADAA,EAAS+E,EAAUA,UAAU/E,GACrBD,GACGD,EAAQA,QAAQC,EAAQC,EAEvC,C,2BCVAtG,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMuB,EAAc,EAAQ,IACtB0G,EAAe,EAAQ,MAM7B9I,EAAQqL,kBAJR,SAA2BxK,GACvB,OAAOiI,EAAaA,aAAajI,IAAUuB,EAAYA,YAAYvB,EACvE,C,yBCPAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQuU,iBAJR,SAA0BtM,GACtB,MAAe,cAARA,CACX,C,2BCJAxH,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMoG,EAAW,EAAQ,MACnBgF,EAAW,EAAQ,MACnBoL,EAAU,EAAQ,MAClBrL,EAAkB,EAAQ,MAwBhChM,EAAQkH,SAtBR,SAAkBrG,GACd,GAAa,MAATA,EACA,OAAOoG,EAASA,SAEpB,cAAepG,GACX,IAAK,WACD,OAAOA,EAEX,IAAK,SACD,OAAIU,MAAMkH,QAAQ5H,IAA2B,IAAjBA,EAAMwB,OACvB2J,EAAgBA,gBAAgBnL,EAAM,GAAIA,EAAM,IAEpDwW,EAAQA,QAAQxW,GAE3B,IAAK,SACL,IAAK,SACL,IAAK,SACD,OAAOoL,EAASA,SAASpL,GAGrC,C,yBC3BAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAmB5Db,EAAQmH,MAjBR,SAAenB,EAAOC,GAClB,GAAqB,IAAjBD,EAAM3D,OACN,OAEJ,IAAIiV,EAAatR,EAAM,GACnBuR,EAAMtR,EAASqR,EAAY,EAAGtR,GAClC,IAAK,IAAI1B,EAAI,EAAGA,EAAI0B,EAAM3D,OAAQiC,IAAK,CACnC,MAAM8B,EAAUJ,EAAM1B,GAChBzD,EAAQoF,EAASG,EAAS9B,EAAG0B,GAC/BnF,EAAQ0W,IACRA,EAAM1W,EACNyW,EAAalR,EAErB,CACA,OAAOkR,CACX,C,2BCjBA7W,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM6E,EAAW,EAAQ,MACnBwF,EAAc,EAAQ,MACtBvF,EAAwB,EAAQ,MActC,SAAS6R,EAAoB1Q,EAAQC,EAAQ2L,EAASrE,GAClD,GAAItH,IAAWD,EACX,OAAO,EAEX,cAAeC,GACX,IAAK,SACD,OAoBZ,SAAuBD,EAAQC,EAAQ2L,EAASrE,GAC5C,GAAc,MAAVtH,EACA,OAAO,EAEX,GAAIxF,MAAMkH,QAAQ1B,GACd,OAAO0Q,EAAa3Q,EAAQC,EAAQ2L,EAASrE,GAEjD,GAAItH,aAAkB8G,IAClB,OAuCR,SAAoB/G,EAAQC,EAAQ2L,EAASrE,GACzC,GAAoB,IAAhBtH,EAAO2Q,KACP,OAAO,EAEX,KAAM5Q,aAAkB+G,KACpB,OAAO,EAEX,IAAK,MAAO5F,EAAK0P,KAAgB5Q,EAAO6Q,UAAW,CAG/C,IAAgB,IADAlF,EADI5L,EAAOiF,IAAI9D,GACM0P,EAAa1P,EAAKnB,EAAQC,EAAQsH,GAEnE,OAAO,CAEf,CACA,OAAO,CACX,CAtDewJ,CAAW/Q,EAAQC,EAAQ2L,EAASrE,GAE/C,GAAItH,aAAkBsB,IAClB,OAAOyP,EAAWhR,EAAQC,EAAQ2L,EAASrE,GAE/C,MAAMzF,EAAOnI,OAAOmI,KAAK7B,GACzB,GAAc,MAAVD,GAAkBoE,EAAYA,YAAYpE,GAC1C,OAAuB,IAAhB8B,EAAKvG,OAEhB,GAAoB,IAAhBuG,EAAKvG,OACL,OAAO,EAEX,GAAIgM,GAAO/L,IAAIyE,GACX,OAAOsH,EAAMtC,IAAIhF,KAAYD,EAEjCuH,GAAOG,IAAIzH,EAAQD,GACnB,IACI,IAAK,IAAIxC,EAAI,EAAGA,EAAIsE,EAAKvG,OAAQiC,IAAK,CAClC,MAAM2D,EAAMW,EAAKtE,GACjB,IAAK4G,EAAYA,YAAYpE,MAAamB,KAAOnB,GAC7C,OAAO,EAEX,QAAoB3B,IAAhB4B,EAAOkB,SAAsC9C,IAAhB2B,EAAOmB,GACpC,OAAO,EAEX,GAAoB,OAAhBlB,EAAOkB,IAAiC,OAAhBnB,EAAOmB,GAC/B,OAAO,EAGX,IADgByK,EAAQ5L,EAAOmB,GAAMlB,EAAOkB,GAAMA,EAAKnB,EAAQC,EAAQsH,GAEnE,OAAO,CAEf,CACA,OAAO,CACX,CACA,QACIA,GAAO0J,OAAOhR,EAClB,CACJ,CAlEmBiR,CAAclR,EAAQC,EAAQ2L,EAASrE,GAElD,IAAK,WAED,OADmB5N,OAAOmI,KAAK7B,GAChB1E,OAAS,EACbmV,EAAoB1Q,EAAQ,IAAKC,GAAU2L,EAASrE,GAExD1I,EAAsBA,sBAAsBmB,EAAQC,GAE/D,QACI,OAAKrB,EAASA,SAASoB,GAGD,iBAAXC,GACW,KAAXA,EAHApB,EAAsBA,sBAAsBmB,EAAQC,GAQ3E,CAgEA,SAAS0Q,EAAa3Q,EAAQC,EAAQ2L,EAASrE,GAC3C,GAAsB,IAAlBtH,EAAO1E,OACP,OAAO,EAEX,IAAKd,MAAMkH,QAAQ3B,GACf,OAAO,EAEX,MAAMmR,EAAe,IAAI5P,IACzB,IAAK,IAAI/D,EAAI,EAAGA,EAAIyC,EAAO1E,OAAQiC,IAAK,CACpC,MAAM4T,EAAanR,EAAOzC,GAC1B,IAAI6T,GAAQ,EACZ,IAAK,IAAI/S,EAAI,EAAGA,EAAI0B,EAAOzE,OAAQ+C,IAAK,CACpC,GAAI6S,EAAa3V,IAAI8C,GACjB,SAGJ,IAAIiS,GAAU,EAKd,GAJgB3E,EAFG5L,EAAO1B,GAEU8S,EAAY5T,EAAGwC,EAAQC,EAAQsH,KAE/DgJ,GAAU,GAEVA,EAAS,CACTY,EAAa3P,IAAIlD,GACjB+S,GAAQ,EACR,KACJ,CACJ,CACA,IAAKA,EACD,OAAO,CAEf,CACA,OAAO,CACX,CACA,SAASL,EAAWhR,EAAQC,EAAQ2L,EAASrE,GACzC,OAAoB,IAAhBtH,EAAO2Q,MAGL5Q,aAAkBuB,KAGjBoP,EAAa,IAAI3Q,GAAS,IAAIC,GAAS2L,EAASrE,EAC3D,CAEArO,EAAQ4G,YAhJR,SAASA,EAAYE,EAAQC,EAAQ2L,GACjC,MAAuB,mBAAZA,EACA9L,EAAYE,EAAQC,GAAQ,KAAe,IAE/CyQ,EAAoB1Q,EAAQC,GAAQ,SAASqR,EAAUC,EAAUC,EAAUrQ,EAAKnC,EAAQiB,EAAQsH,GACnG,MAAMhE,EAAUqI,EAAQ2F,EAAUC,EAAUrQ,EAAKnC,EAAQiB,EAAQsH,GACjE,YAAgBlJ,IAAZkF,EACOsF,QAAQtF,GAEZmN,EAAoBa,EAAUC,EAAUF,EAAW/J,EAC9D,GAAG,IAAIR,IACX,EAsIA7N,EAAQ8X,WAAaA,C,cCzJrB,OACC,WACC,aAiBA,IA2DES,EA3DEC,EAAa,IAIfC,EAAU,CAORC,UAAW,GAkBXC,SAAU,EAIVC,UAAW,EAIXC,SAAW,GAIXC,KAAM,wHAORC,GAAW,EAEXC,EAAe,kBACfC,EAAkBD,EAAe,qBACjCE,EAAqBF,EAAe,0BAEpCG,EAAY9D,KAAKO,MACjBwD,EAAU/D,KAAKgE,IAEfC,EAAY,qCAGZC,EAAO,IAEPC,EAAmB,iBACnBC,EAAQN,EAAUK,oBAGlBE,EAAI,CAAC,EAg0BP,SAASpR,EAAI/B,EAAGmD,GACd,IAAIiQ,EAAOC,EAAGjG,EAAGrP,EAAGuV,EAAG7U,EAAK8U,EAAIC,EAC9BC,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UAGZ,IAAKnS,EAAE2T,IAAMxQ,EAAEwQ,EAKb,OADKxQ,EAAEwQ,IAAGxQ,EAAI,IAAIsQ,EAAKzT,IAChBwS,EAAWoB,EAAMzQ,EAAGuQ,GAAMvQ,EAcnC,GAXAoQ,EAAKvT,EAAEqT,EACPG,EAAKrQ,EAAEkQ,EAIPC,EAAItT,EAAEoN,EACNA,EAAIjK,EAAEiK,EACNmG,EAAKA,EAAG7V,QACRK,EAAIuV,EAAIlG,EAGD,CAsBL,IArBIrP,EAAI,GACNsV,EAAIE,EACJxV,GAAKA,EACLU,EAAM+U,EAAG1X,SAETuX,EAAIG,EACJpG,EAAIkG,EACJ7U,EAAM8U,EAAGzX,QAOPiC,GAFJU,GADA6U,EAAIxE,KAAKC,KAAK2E,EA12BL,IA22BCjV,EAAM6U,EAAI,EAAI7U,EAAM,KAG5BV,EAAIU,EACJ4U,EAAEvX,OAAS,GAIbuX,EAAEQ,UACK9V,KAAMsV,EAAEtW,KAAK,GACpBsW,EAAEQ,SACJ,CAcA,KAZApV,EAAM8U,EAAGzX,SACTiC,EAAIyV,EAAG1X,QAGO,IACZiC,EAAIU,EACJ4U,EAAIG,EACJA,EAAKD,EACLA,EAAKF,GAIFD,EAAQ,EAAGrV,GACdqV,GAASG,IAAKxV,GAAKwV,EAAGxV,GAAKyV,EAAGzV,GAAKqV,GAASJ,EAAO,EACnDO,EAAGxV,IAAMiV,EAUX,IAPII,IACFG,EAAGO,QAAQV,KACThG,GAKC3O,EAAM8U,EAAGzX,OAAqB,GAAbyX,IAAK9U,IAAY8U,EAAGQ,MAK1C,OAHA5Q,EAAEkQ,EAAIE,EACNpQ,EAAEiK,EAAIA,EAECoF,EAAWoB,EAAMzQ,EAAGuQ,GAAMvQ,CACnC,CAGA,SAAS6Q,EAAWjW,EAAGiT,EAAKpR,GAC1B,GAAI7B,MAAQA,GAAKA,EAAIiT,GAAOjT,EAAI6B,EAC9B,MAAMoJ,MAAM0J,EAAkB3U,EAElC,CAGA,SAASkW,EAAeZ,GACtB,IAAItV,EAAGuV,EAAGY,EACRC,EAAkBd,EAAEvX,OAAS,EAC7BsY,EAAM,GACNC,EAAIhB,EAAE,GAER,GAAIc,EAAkB,EAAG,CAEvB,IADAC,GAAOC,EACFtW,EAAI,EAAGA,EAAIoW,EAAiBpW,KAE/BuV,EA16BO,GAy6BPY,EAAKb,EAAEtV,GAAK,IACMjC,UACXsY,GAAOE,EAAchB,IAC5Bc,GAAOF,GAKTZ,EAj7BS,GAg7BTY,GADAG,EAAIhB,EAAEtV,IACG,IACSjC,UACXsY,GAAOE,EAAchB,GAC9B,MAAO,GAAU,IAANe,EACT,MAAO,IAIT,KAAOA,EAAI,IAAO,GAAIA,GAAK,GAE3B,OAAOD,EAAMC,CACf,CAr4BAlB,EAAEoB,cAAgBpB,EAAEqB,IAAM,WACxB,IAAIxU,EAAI,IAAIlG,KAAKmP,YAAYnP,MAE7B,OADIkG,EAAE2T,IAAG3T,EAAE2T,EAAI,GACR3T,CACT,EAUAmT,EAAEsB,WAAatB,EAAEuB,IAAM,SAAUvR,GAC/B,IAAIpF,EAAGc,EAAG8V,EAAKC,EACb5U,EAAIlG,KAKN,GAHAqJ,EAAI,IAAInD,EAAEiJ,YAAY9F,GAGlBnD,EAAE2T,IAAMxQ,EAAEwQ,EAAG,OAAO3T,EAAE2T,IAAMxQ,EAAEwQ,EAGlC,GAAI3T,EAAEoN,IAAMjK,EAAEiK,EAAG,OAAOpN,EAAEoN,EAAIjK,EAAEiK,EAAIpN,EAAE2T,EAAI,EAAI,GAAK,EAMnD,IAAK5V,EAAI,EAAGc,GAJZ8V,EAAM3U,EAAEqT,EAAEvX,SACV8Y,EAAMzR,EAAEkQ,EAAEvX,QAGkB6Y,EAAMC,EAAK7W,EAAIc,IAAKd,EAC9C,GAAIiC,EAAEqT,EAAEtV,KAAOoF,EAAEkQ,EAAEtV,GAAI,OAAOiC,EAAEqT,EAAEtV,GAAKoF,EAAEkQ,EAAEtV,GAAKiC,EAAE2T,EAAI,EAAI,GAAK,EAIjE,OAAOgB,IAAQC,EAAM,EAAID,EAAMC,EAAM5U,EAAE2T,EAAI,EAAI,GAAK,CACtD,EAOAR,EAAE0B,cAAgB1B,EAAE2B,GAAK,WACvB,IAAI9U,EAAIlG,KACNua,EAAIrU,EAAEqT,EAAEvX,OAAS,EACjBgZ,EApGS,GAoGHT,EAAIrU,EAAEoN,GAId,GADAiH,EAAIrU,EAAEqT,EAAEgB,GACD,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIS,IAEpC,OAAOA,EAAK,EAAI,EAAIA,CACtB,EAQA3B,EAAE4B,UAAY5B,EAAE6B,IAAM,SAAU7R,GAC9B,OAAO8R,EAAOnb,KAAM,IAAIA,KAAKmP,YAAY9F,GAC3C,EAQAgQ,EAAE+B,mBAAqB/B,EAAEgC,KAAO,SAAUhS,GACxC,IACEsQ,EADM3Z,KACGmP,YACX,OAAO2K,EAAMqB,EAFLnb,KAEe,IAAI2Z,EAAKtQ,GAAI,EAAG,GAAIsQ,EAAKtB,UAClD,EAOAgB,EAAEiC,OAASjC,EAAEkC,GAAK,SAAUlS,GAC1B,OAAQrJ,KAAK4a,IAAIvR,EACnB,EAOAgQ,EAAEmC,SAAW,WACX,OAAOC,EAAkBzb,KAC3B,EAQAqZ,EAAEqC,YAAcrC,EAAEsC,GAAK,SAAUtS,GAC/B,OAAOrJ,KAAK4a,IAAIvR,GAAK,CACvB,EAQAgQ,EAAEuC,qBAAuBvC,EAAEwC,IAAM,SAAUxS,GACzC,OAAOrJ,KAAK4a,IAAIvR,IAAM,CACxB,EAOAgQ,EAAEyC,UAAYzC,EAAE0C,MAAQ,WACtB,OAAO/b,KAAKsT,EAAItT,KAAKuZ,EAAEvX,OAAS,CAClC,EAOAqX,EAAE2C,WAAa3C,EAAE4C,MAAQ,WACvB,OAAOjc,KAAK6Z,EAAI,CAClB,EAOAR,EAAE6C,WAAa7C,EAAE8C,MAAQ,WACvB,OAAOnc,KAAK6Z,EAAI,CAClB,EAOAR,EAAE+C,OAAS,WACT,OAAkB,IAAXpc,KAAK6Z,CACd,EAOAR,EAAEgD,SAAWhD,EAAEiD,GAAK,SAAUjT,GAC5B,OAAOrJ,KAAK4a,IAAIvR,GAAK,CACvB,EAOAgQ,EAAEkD,kBAAoBlD,EAAEmD,IAAM,SAAUnT,GACtC,OAAOrJ,KAAK4a,IAAIvR,GAAK,CACvB,EAgBAgQ,EAAEoD,UAAYpD,EAAEqD,IAAM,SAAUC,GAC9B,IAAIC,EACF1W,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UACVwE,EAAMjD,EAAK,EAGb,QAAa,IAAT+C,EACFA,EAAO,IAAIhD,EAAK,SAOhB,IALAgD,EAAO,IAAIhD,EAAKgD,IAKP9C,EAAI,GAAK8C,EAAKpB,GAAGrD,GAAM,MAAMhJ,MAAMyJ,EAAe,OAK7D,GAAIzS,EAAE2T,EAAI,EAAG,MAAM3K,MAAMyJ,GAAgBzS,EAAE2T,EAAI,MAAQ,cAGvD,OAAI3T,EAAEqV,GAAGrD,GAAa,IAAIyB,EAAK,IAE/BjB,GAAW,EACXkE,EAAIzB,EAAO2B,EAAG5W,EAAG2W,GAAMC,EAAGH,EAAME,GAAMA,GACtCnE,GAAW,EAEJoB,EAAM8C,EAAGhD,GAClB,EAQAP,EAAE0D,MAAQ1D,EAAE2D,IAAM,SAAU3T,GAC1B,IAAInD,EAAIlG,KAER,OADAqJ,EAAI,IAAInD,EAAEiJ,YAAY9F,GACfnD,EAAE2T,GAAKxQ,EAAEwQ,EAAIoD,EAAS/W,EAAGmD,GAAKpB,EAAI/B,GAAImD,EAAEwQ,GAAKxQ,EAAEwQ,EAAGxQ,GAC3D,EAQAgQ,EAAE6D,OAAS7D,EAAE8D,IAAM,SAAU9T,GAC3B,IAAI+T,EACFlX,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UAKZ,KAHAhP,EAAI,IAAIsQ,EAAKtQ,IAGNwQ,EAAG,MAAM3K,MAAMyJ,EAAe,OAGrC,OAAKzS,EAAE2T,GAGPnB,GAAW,EACX0E,EAAIjC,EAAOjV,EAAGmD,EAAG,EAAG,GAAG3B,MAAM2B,GAC7BqP,GAAW,EAEJxS,EAAE6W,MAAMK,IAPEtD,EAAM,IAAIH,EAAKzT,GAAI0T,EAQtC,EASAP,EAAEgE,mBAAqBhE,EAAEiE,IAAM,WAC7B,OAAOA,EAAItd,KACb,EAQAqZ,EAAEkE,iBAAmBlE,EAAEyD,GAAK,WAC1B,OAAOA,EAAG9c,KACZ,EAQAqZ,EAAEmE,QAAUnE,EAAEoE,IAAM,WAClB,IAAIvX,EAAI,IAAIlG,KAAKmP,YAAYnP,MAE7B,OADAkG,EAAE2T,GAAK3T,EAAE2T,GAAK,EACP3T,CACT,EAQAmT,EAAEqE,KAAOrE,EAAEpR,IAAM,SAAUoB,GACzB,IAAInD,EAAIlG,KAER,OADAqJ,EAAI,IAAInD,EAAEiJ,YAAY9F,GACfnD,EAAE2T,GAAKxQ,EAAEwQ,EAAI5R,EAAI/B,EAAGmD,GAAK4T,EAAS/W,GAAImD,EAAEwQ,GAAKxQ,EAAEwQ,EAAGxQ,GAC3D,EASAgQ,EAAEhB,UAAYgB,EAAEsE,GAAK,SAAUC,GAC7B,IAAItK,EAAGqK,EAAIpD,EACTrU,EAAIlG,KAEN,QAAU,IAAN4d,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,MAAM1O,MAAM0J,EAAkBgF,GAQnF,GANAtK,EAAImI,EAAkBvV,GAAK,EAE3ByX,EAlXW,GAiXXpD,EAAIrU,EAAEqT,EAAEvX,OAAS,GACG,EACpBuY,EAAIrU,EAAEqT,EAAEgB,GAGD,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIoD,IAG7B,IAAKpD,EAAIrU,EAAEqT,EAAE,GAAIgB,GAAK,GAAIA,GAAK,GAAIoD,GACrC,CAEA,OAAOC,GAAKtK,EAAIqK,EAAKrK,EAAIqK,CAC3B,EAQAtE,EAAEwE,WAAaxE,EAAEyE,KAAO,WACtB,IAAIxK,EAAGkD,EAAGoD,EAAIgD,EAAG/C,EAAGkE,EAAGlB,EACrB3W,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YAGX,GAAIjJ,EAAE2T,EAAI,EAAG,CACX,IAAK3T,EAAE2T,EAAG,OAAO,IAAIF,EAAK,GAG1B,MAAMzK,MAAMyJ,EAAe,MAC7B,CAgCA,IA9BArF,EAAImI,EAAkBvV,GACtBwS,GAAW,EAOF,IAJTmB,EAAI7E,KAAK8I,MAAM5X,KAID2T,GAAK,OACjBrD,EAAI2D,EAAejU,EAAEqT,IACdvX,OAASsR,GAAK,GAAK,IAAGkD,GAAK,KAClCqD,EAAI7E,KAAK8I,KAAKtH,GACdlD,EAAIwF,GAAWxF,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS3CsJ,EAAI,IAAIjD,EANNnD,EADEqD,GAAK,IACH,KAAOvG,GAEXkD,EAAIqD,EAAEmE,iBACApa,MAAM,EAAG4S,EAAEyH,QAAQ,KAAO,GAAK3K,IAKvCsJ,EAAI,IAAIjD,EAAKE,EAAEnR,YAIjBmR,EAAIgD,GADJjD,EAAKD,EAAKtB,WACK,IAOb,GAFAuE,GADAmB,EAAInB,GACEc,KAAKvC,EAAOjV,EAAG6X,EAAGlB,EAAM,IAAInV,MAAM,IAEpCyS,EAAe4D,EAAExE,GAAG3V,MAAM,EAAGiZ,MAAUrG,EAAI2D,EAAeyC,EAAErD,IAAI3V,MAAM,EAAGiZ,GAAM,CAKjF,GAJArG,EAAIA,EAAE5S,MAAMiZ,EAAM,EAAGA,EAAM,GAIvBhD,GAAKgD,GAAY,QAALrG,GAMd,GAFAsD,EAAMiE,EAAGnE,EAAK,EAAG,GAEbmE,EAAErW,MAAMqW,GAAGxC,GAAGrV,GAAI,CACpB0W,EAAImB,EACJ,KACF,OACK,GAAS,QAALvH,EACT,MAGFqG,GAAO,CACT,CAKF,OAFAnE,GAAW,EAEJoB,EAAM8C,EAAGhD,EAClB,EAQAP,EAAE3R,MAAQ2R,EAAE6E,IAAM,SAAU7U,GAC1B,IAAIiQ,EAAOhG,EAAGrP,EAAGuV,EAAGoD,EAAGuB,EAAIJ,EAAGlD,EAAKC,EACjC5U,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YACTsK,EAAKvT,EAAEqT,EACPG,GAAMrQ,EAAI,IAAIsQ,EAAKtQ,IAAIkQ,EAGzB,IAAKrT,EAAE2T,IAAMxQ,EAAEwQ,EAAG,OAAO,IAAIF,EAAK,GAoBlC,IAlBAtQ,EAAEwQ,GAAK3T,EAAE2T,EACTvG,EAAIpN,EAAEoN,EAAIjK,EAAEiK,GACZuH,EAAMpB,EAAGzX,SACT8Y,EAAMpB,EAAG1X,UAIP4a,EAAInD,EACJA,EAAKC,EACLA,EAAKkD,EACLuB,EAAKtD,EACLA,EAAMC,EACNA,EAAMqD,GAIRvB,EAAI,GAEC3Y,EADLka,EAAKtD,EAAMC,EACE7W,KAAM2Y,EAAE3Z,KAAK,GAG1B,IAAKgB,EAAI6W,IAAO7W,GAAK,GAAI,CAEvB,IADAqV,EAAQ,EACHE,EAAIqB,EAAM5W,EAAGuV,EAAIvV,GACpB8Z,EAAInB,EAAEpD,GAAKE,EAAGzV,GAAKwV,EAAGD,EAAIvV,EAAI,GAAKqV,EACnCsD,EAAEpD,KAAOuE,EAAI7E,EAAO,EACpBI,EAAQyE,EAAI7E,EAAO,EAGrB0D,EAAEpD,IAAMoD,EAAEpD,GAAKF,GAASJ,EAAO,CACjC,CAGA,MAAQ0D,IAAIuB,IAAMvB,EAAE3C,MAQpB,OANIX,IAAShG,EACRsJ,EAAEwB,QAEP/U,EAAEkQ,EAAIqD,EACNvT,EAAEiK,EAAIA,EAECoF,EAAWoB,EAAMzQ,EAAGsQ,EAAKtB,WAAahP,CAC/C,EAaAgQ,EAAEgF,gBAAkBhF,EAAEiF,KAAO,SAAUtD,EAAIuD,GACzC,IAAIrY,EAAIlG,KACN2Z,EAAOzT,EAAEiJ,YAGX,OADAjJ,EAAI,IAAIyT,EAAKzT,QACF,IAAP8U,EAAsB9U,GAE1BgU,EAAWc,EAAI,EAAG7C,QAEP,IAAPoG,EAAeA,EAAK5E,EAAKrB,SACxB4B,EAAWqE,EAAI,EAAG,GAEhBzE,EAAM5T,EAAG8U,EAAKS,EAAkBvV,GAAK,EAAGqY,GACjD,EAWAlF,EAAE2E,cAAgB,SAAUhD,EAAIuD,GAC9B,IAAIjE,EACFpU,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YAcX,YAZW,IAAP6L,EACFV,EAAM5R,EAASxC,GAAG,IAElBgU,EAAWc,EAAI,EAAG7C,QAEP,IAAPoG,EAAeA,EAAK5E,EAAKrB,SACxB4B,EAAWqE,EAAI,EAAG,GAGvBjE,EAAM5R,EADNxC,EAAI4T,EAAM,IAAIH,EAAKzT,GAAI8U,EAAK,EAAGuD,IACb,EAAMvD,EAAK,IAGxBV,CACT,EAmBAjB,EAAEmF,QAAU,SAAUxD,EAAIuD,GACxB,IAAIjE,EAAKjR,EACPnD,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YAEX,YAAW,IAAP6L,EAAsBtS,EAASxC,IAEnCgU,EAAWc,EAAI,EAAG7C,QAEP,IAAPoG,EAAeA,EAAK5E,EAAKrB,SACxB4B,EAAWqE,EAAI,EAAG,GAGvBjE,EAAM5R,GADNW,EAAIyQ,EAAM,IAAIH,EAAKzT,GAAI8U,EAAKS,EAAkBvV,GAAK,EAAGqY,IACrC7D,OAAO,EAAOM,EAAKS,EAAkBpS,GAAK,GAIpDnD,EAAE+V,UAAY/V,EAAEkW,SAAW,IAAM9B,EAAMA,EAChD,EAQAjB,EAAE3C,UAAY2C,EAAEoF,MAAQ,WACtB,IAAIvY,EAAIlG,KACN2Z,EAAOzT,EAAEiJ,YACX,OAAO2K,EAAM,IAAIH,EAAKzT,GAAIuV,EAAkBvV,GAAK,EAAGyT,EAAKrB,SAC3D,EAOAe,EAAE7E,SAAW,WACX,OAAQxU,IACV,EAgBAqZ,EAAEqF,QAAUrF,EAAEL,IAAM,SAAU3P,GAC5B,IAAIiK,EAAGkG,EAAGI,EAAIgD,EAAG+B,EAAMC,EACrB1Y,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YAET0P,IAAOxV,EAAI,IAAIsQ,EAAKtQ,IAGtB,IAAKA,EAAEwQ,EAAG,OAAO,IAAIF,EAAKzB,GAM1B,KAJAhS,EAAI,IAAIyT,EAAKzT,IAIN2T,EAAG,CACR,GAAIxQ,EAAEwQ,EAAI,EAAG,MAAM3K,MAAMyJ,EAAe,YACxC,OAAOzS,CACT,CAGA,GAAIA,EAAEqV,GAAGrD,GAAM,OAAOhS,EAKtB,GAHA0T,EAAKD,EAAKtB,UAGNhP,EAAEkS,GAAGrD,GAAM,OAAO4B,EAAM5T,EAAG0T,GAO/B,GAHAgF,GAFAtL,EAAIjK,EAAEiK,KACNkG,EAAInQ,EAAEkQ,EAAEvX,OAAS,GAEjB2c,EAAOzY,EAAE2T,EAEJ+E,GAME,IAAKpF,EAAIqF,EAAK,GAAKA,EAAKA,IAAO1F,EAAkB,CAStD,IARAyD,EAAI,IAAIjD,EAAKzB,GAIb5E,EAAI0B,KAAKC,KAAK2E,EAzrBL,EAyrBqB,GAE9BlB,GAAW,EAGLc,EAAI,GAENsF,GADAlC,EAAIA,EAAElV,MAAMxB,IACDqT,EAAGjG,GAIN,KADVkG,EAAIV,EAAUU,EAAI,KAIlBsF,GADA5Y,EAAIA,EAAEwB,MAAMxB,IACDqT,EAAGjG,GAKhB,OAFAoF,GAAW,EAEJrP,EAAEwQ,EAAI,EAAI,IAAIF,EAAKzB,GAAKgD,IAAI0B,GAAK9C,EAAM8C,EAAGhD,EACnD,OA5BE,GAAI+E,EAAO,EAAG,MAAMzP,MAAMyJ,EAAe,OAwC3C,OATAgG,EAAOA,EAAO,GAA2B,EAAtBtV,EAAEkQ,EAAEvE,KAAKlP,IAAIwN,EAAGkG,KAAW,EAAI,EAElDtT,EAAE2T,EAAI,EACNnB,GAAW,EACXkE,EAAIvT,EAAE3B,MAAMoV,EAAG5W,EAAG0T,EAlER,KAmEVlB,GAAW,GACXkE,EAAIU,EAAIV,IACN/C,EAAI8E,EAEC/B,CACT,EAcAvD,EAAE0F,YAAc,SAAUpB,EAAIY,GAC5B,IAAIjL,EAAGgH,EACLpU,EAAIlG,KACJ2Z,EAAOzT,EAAEiJ,YAgBX,YAdW,IAAPwO,EAEFrD,EAAM5R,EAASxC,GADfoN,EAAImI,EAAkBvV,KACCyT,EAAKpB,UAAYjF,GAAKqG,EAAKnB,WAElD0B,EAAWyD,EAAI,EAAGxF,QAEP,IAAPoG,EAAeA,EAAK5E,EAAKrB,SACxB4B,EAAWqE,EAAI,EAAG,GAIvBjE,EAAM5R,EAFNxC,EAAI4T,EAAM,IAAIH,EAAKzT,GAAIyX,EAAIY,GAETZ,IADlBrK,EAAImI,EAAkBvV,KACOoN,GAAKqG,EAAKpB,SAAUoF,IAG5CrD,CACT,EAYAjB,EAAE2F,oBAAsB3F,EAAE4F,KAAO,SAAUtB,EAAIY,GAC7C,IACE5E,EADM3Z,KACGmP,YAYX,YAVW,IAAPwO,GACFA,EAAKhE,EAAKtB,UACVkG,EAAK5E,EAAKrB,WAEV4B,EAAWyD,EAAI,EAAGxF,QAEP,IAAPoG,EAAeA,EAAK5E,EAAKrB,SACxB4B,EAAWqE,EAAI,EAAG,IAGlBzE,EAAM,IAAIH,EAbT3Z,MAakB2d,EAAIY,EAChC,EAUAlF,EAAE3Q,SAAW2Q,EAAE9R,QAAU8R,EAAE6F,IAAM7F,EAAE8F,OAAS,WAC1C,IAAIjZ,EAAIlG,KACNsT,EAAImI,EAAkBvV,GACtByT,EAAOzT,EAAEiJ,YAEX,OAAOzG,EAASxC,EAAGoN,GAAKqG,EAAKpB,UAAYjF,GAAKqG,EAAKnB,SACrD,EAuJA,IAAI2C,EAAS,WAGX,SAASiE,EAAgBlZ,EAAGsT,GAC1B,IAAI6F,EACF/F,EAAQ,EACRrV,EAAIiC,EAAElE,OAER,IAAKkE,EAAIA,EAAEtC,QAASK,KAClBob,EAAOnZ,EAAEjC,GAAKuV,EAAIF,EAClBpT,EAAEjC,GAAKob,EAAOnG,EAAO,EACrBI,EAAQ+F,EAAOnG,EAAO,EAKxB,OAFII,GAAOpT,EAAE8T,QAAQV,GAEdpT,CACT,CAEA,SAASmM,EAAQvF,EAAGC,EAAGuS,EAAIC,GACzB,IAAItb,EAAG2Y,EAEP,GAAI0C,GAAMC,EACR3C,EAAI0C,EAAKC,EAAK,GAAK,OAEnB,IAAKtb,EAAI2Y,EAAI,EAAG3Y,EAAIqb,EAAIrb,IACtB,GAAI6I,EAAE7I,IAAM8I,EAAE9I,GAAI,CAChB2Y,EAAI9P,EAAE7I,GAAK8I,EAAE9I,GAAK,GAAK,EACvB,KACF,CAIJ,OAAO2Y,CACT,CAEA,SAASK,EAASnQ,EAAGC,EAAGuS,GAItB,IAHA,IAAIrb,EAAI,EAGDqb,KACLxS,EAAEwS,IAAOrb,EACTA,EAAI6I,EAAEwS,GAAMvS,EAAEuS,GAAM,EAAI,EACxBxS,EAAEwS,GAAMrb,EAAIiV,EAAOpM,EAAEwS,GAAMvS,EAAEuS,GAI/B,MAAQxS,EAAE,IAAMA,EAAE9K,OAAS,GAAI8K,EAAEsR,OACnC,CAEA,OAAO,SAAUlY,EAAGmD,EAAGuQ,EAAIoB,GACzB,IAAIJ,EAAKtH,EAAGrP,EAAGuV,EAAGgG,EAAMC,EAAOrC,EAAGsC,EAAIC,EAAKC,EAAMC,EAAMlC,EAAII,EAAG+B,EAAIC,EAAIC,EAAKC,EAAIC,EAC7EvG,EAAOzT,EAAEiJ,YACTwP,EAAOzY,EAAE2T,GAAKxQ,EAAEwQ,EAAI,GAAK,EACzBJ,EAAKvT,EAAEqT,EACPG,EAAKrQ,EAAEkQ,EAGT,IAAKrT,EAAE2T,EAAG,OAAO,IAAIF,EAAKzT,GAC1B,IAAKmD,EAAEwQ,EAAG,MAAM3K,MAAMyJ,EAAe,oBASrC,IAPArF,EAAIpN,EAAEoN,EAAIjK,EAAEiK,EACZ2M,EAAKvG,EAAG1X,OACR+d,EAAKtG,EAAGzX,OAER0d,GADAtC,EAAI,IAAIzD,EAAKgF,IACNpF,EAAI,GAGNtV,EAAI,EAAGyV,EAAGzV,KAAOwV,EAAGxV,IAAM,MAAQA,EAWvC,GAVIyV,EAAGzV,IAAMwV,EAAGxV,IAAM,MAAMqP,GAG1BqK,EADQ,MAAN/D,EACGA,EAAKD,EAAKtB,UACN2C,EACJpB,GAAM6B,EAAkBvV,GAAKuV,EAAkBpS,IAAM,EAErDuQ,GAGE,EAAG,OAAO,IAAID,EAAK,GAO5B,GAJAgE,EAAKA,EAhhCI,EAghCY,EAAI,EACzB1Z,EAAI,EAGM,GAANgc,EAMF,IALAzG,EAAI,EACJE,EAAKA,EAAG,GACRiE,KAGQ1Z,EAAI8b,GAAMvG,IAAMmE,IAAM1Z,IAC5B8Z,EAAIvE,EAAIN,GAAQO,EAAGxV,IAAM,GACzByb,EAAGzb,GAAK8Z,EAAIrE,EAAK,EACjBF,EAAIuE,EAAIrE,EAAK,MAIV,CAiBL,KAdAF,EAAIN,GAAQQ,EAAG,GAAK,GAAK,GAEjB,IACNA,EAAK0F,EAAgB1F,EAAIF,GACzBC,EAAK2F,EAAgB3F,EAAID,GACzByG,EAAKvG,EAAG1X,OACR+d,EAAKtG,EAAGzX,QAGV8d,EAAKG,EAELL,GADAD,EAAMlG,EAAG7V,MAAM,EAAGqc,IACPje,OAGJ4d,EAAOK,GAAKN,EAAIC,KAAU,GAEjCM,EAAKxG,EAAG9V,SACLoW,QAAQ,GACXgG,EAAMtG,EAAG,GAELA,EAAG,IAAMR,EAAO,KAAK8G,EAEzB,GACExG,EAAI,GAGJoB,EAAMvI,EAAQqH,EAAIiG,EAAKM,EAAIL,IAGjB,GAGRC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAO3G,GAAQyG,EAAI,IAAM,KAGhDnG,EAAIqG,EAAOG,EAAM,GAUT,GACFxG,GAAKN,IAAMM,EAAIN,EAAO,GAWf,IAHX0B,EAAMvI,EALNmN,EAAOJ,EAAgB1F,EAAIF,GAKPmG,EAJpBF,EAAQD,EAAKxd,OACb4d,EAAOD,EAAI3d,WAOTwX,IAGAyD,EAASuC,EAAMS,EAAKR,EAAQS,EAAKxG,EAAI+F,MAO9B,GAALjG,IAAQoB,EAAMpB,EAAI,GACtBgG,EAAO9F,EAAG9V,UAGZ6b,EAAQD,EAAKxd,QACD4d,GAAMJ,EAAKxF,QAAQ,GAG/BiD,EAAS0C,EAAKH,EAAMI,IAGR,GAARhF,IAIFA,EAAMvI,EAAQqH,EAAIiG,EAAKM,EAHvBL,EAAOD,EAAI3d,SAMD,IACRwX,IAGAyD,EAAS0C,EAAKM,EAAKL,EAAOM,EAAKxG,EAAIkG,IAIvCA,EAAOD,EAAI3d,QACM,IAAR4Y,IACTpB,IACAmG,EAAM,CAAC,IAITD,EAAGzb,KAAOuV,EAGNoB,GAAO+E,EAAI,GACbA,EAAIC,KAAUnG,EAAGqG,IAAO,GAExBH,EAAM,CAAClG,EAAGqG,IACVF,EAAO,UAGDE,IAAOC,QAAiB,IAAXJ,EAAI,KAAkBhC,IAC/C,CAOA,OAJK+B,EAAG,IAAIA,EAAGtB,QAEfhB,EAAE9J,EAAIA,EAECwG,EAAMsD,EAAGpC,EAAKpB,EAAK6B,EAAkB2B,GAAK,EAAIxD,EACvD,CACD,CAhOY,GAyPb,SAAS0D,EAAIpX,EAAGyX,GACd,IAAIwC,EAAoBnH,EAAKoH,EAAKrC,EAAGlB,EACnC5Y,EAAI,EACJuV,EAAI,EACJG,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UAEZ,GAAIoD,EAAkBvV,GAAK,GAAI,MAAMgJ,MAAM2J,EAAqB4C,EAAkBvV,IAGlF,IAAKA,EAAE2T,EAAG,OAAO,IAAIF,EAAKzB,GAW1B,IATU,MAANyF,GACFjF,GAAW,EACXmE,EAAMjD,GAENiD,EAAMc,EAGRI,EAAI,IAAIpE,EAAK,QAENzT,EAAEwU,MAAMmB,IAAI,KACjB3V,EAAIA,EAAEwB,MAAMqW,GACZvE,GAAK,EASP,IAJAqD,GADQ7H,KAAK0H,IAAI3D,EAAQ,EAAGS,IAAMxE,KAAKyD,KAAO,EAAI,EAAI,EAEtD0H,EAAcnH,EAAMoH,EAAM,IAAIzG,EAAKzB,GACnCyB,EAAKtB,UAAYwE,IAER,CAKP,GAJA7D,EAAMc,EAAMd,EAAItR,MAAMxB,GAAI2W,GAC1BsD,EAAcA,EAAYzY,QAAQzD,GAG9BkW,GAFJ4D,EAAIqC,EAAI1C,KAAKvC,EAAOnC,EAAKmH,EAAatD,KAEjBtD,GAAG3V,MAAM,EAAGiZ,KAAS1C,EAAeiG,EAAI7G,GAAG3V,MAAM,EAAGiZ,GAAM,CAC7E,KAAOrD,KAAK4G,EAAMtG,EAAMsG,EAAI1Y,MAAM0Y,GAAMvD,GAExC,OADAlD,EAAKtB,UAAYuB,EACJ,MAAN+D,GAAcjF,GAAW,EAAMoB,EAAMsG,EAAKxG,IAAOwG,CAC1D,CAEAA,EAAMrC,CACR,CACF,CAIA,SAAStC,EAAkBvV,GAKzB,IAJA,IAAIoN,EAzuCO,EAyuCHpN,EAAEoN,EACRiH,EAAIrU,EAAEqT,EAAE,GAGHgB,GAAK,GAAIA,GAAK,GAAIjH,IACzB,OAAOA,CACT,CAGA,SAAS+M,EAAQ1G,EAAMgE,EAAI/D,GAEzB,GAAI+D,EAAKhE,EAAKlB,KAAKkF,KAMjB,MAFAjF,GAAW,EACPkB,IAAID,EAAKtB,UAAYuB,GACnB1K,MAAMyJ,EAAe,iCAG7B,OAAOmB,EAAM,IAAIH,EAAKA,EAAKlB,MAAOkF,EACpC,CAGA,SAASnD,EAAchB,GAErB,IADA,IAAI8G,EAAK,GACF9G,KAAM8G,GAAM,IACnB,OAAOA,CACT,CAUA,SAASxD,EAAGzT,EAAGsU,GACb,IAAI4C,EAAGC,EAAIL,EAAa7M,EAAGmN,EAAWL,EAAKrC,EAAGlB,EAAK6D,EACjDlK,EAAI,EAEJtQ,EAAImD,EACJoQ,EAAKvT,EAAEqT,EACPI,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UAIZ,GAAInS,EAAE2T,EAAI,EAAG,MAAM3K,MAAMyJ,GAAgBzS,EAAE2T,EAAI,MAAQ,cAGvD,GAAI3T,EAAEqV,GAAGrD,GAAM,OAAO,IAAIyB,EAAK,GAS/B,GAPU,MAANgE,GACFjF,GAAW,EACXmE,EAAMjD,GAENiD,EAAMc,EAGJzX,EAAEqV,GAAG,IAEP,OADU,MAANoC,IAAYjF,GAAW,GACpB2H,EAAQ1G,EAAMkD,GASvB,GANAA,GAzBU,GA0BVlD,EAAKtB,UAAYwE,EAEjB2D,GADAD,EAAIpG,EAAeV,IACZkH,OAAO,GACdrN,EAAImI,EAAkBvV,KAElB8O,KAAK0F,IAAIpH,GAAK,OAqChB,OAJAyK,EAAIsC,EAAQ1G,EAAMkD,EAAM,EAAGjD,GAAIlS,MAAM4L,EAAI,IACzCpN,EAAI4W,EAAG,IAAInD,EAAK6G,EAAK,IAAMD,EAAE3c,MAAM,IAAKiZ,EAjEhC,IAiE6Ca,KAAKK,GAE1DpE,EAAKtB,UAAYuB,EACJ,MAAN+D,GAAcjF,GAAW,EAAMoB,EAAM5T,EAAG0T,IAAO1T,EAxBtD,KAAOsa,EAAK,GAAW,GAANA,GAAiB,GAANA,GAAWD,EAAEI,OAAO,GAAK,GAGnDH,GADAD,EAAIpG,GADJjU,EAAIA,EAAEwB,MAAM2B,IACSkQ,IACdoH,OAAO,GACdnK,IAgCJ,IA7BElD,EAAImI,EAAkBvV,GAElBsa,EAAK,GACPta,EAAI,IAAIyT,EAAK,KAAO4G,GACpBjN,KAEApN,EAAI,IAAIyT,EAAK6G,EAAK,IAAMD,EAAE3c,MAAM,IAmBpCwc,EAAMK,EAAYva,EAAIiV,EAAOjV,EAAE6W,MAAM7E,GAAMhS,EAAEwX,KAAKxF,GAAM2E,GACxD6D,EAAK5G,EAAM5T,EAAEwB,MAAMxB,GAAI2W,GACvBsD,EAAc,IAEL,CAIP,GAHAM,EAAY3G,EAAM2G,EAAU/Y,MAAMgZ,GAAK7D,GAGnC1C,GAFJ4D,EAAIqC,EAAI1C,KAAKvC,EAAOsF,EAAW,IAAI9G,EAAKwG,GAActD,KAEjCtD,GAAG3V,MAAM,EAAGiZ,KAAS1C,EAAeiG,EAAI7G,GAAG3V,MAAM,EAAGiZ,GAQvE,OAPAuD,EAAMA,EAAI1Y,MAAM,GAGN,IAAN4L,IAAS8M,EAAMA,EAAI1C,KAAK2C,EAAQ1G,EAAMkD,EAAM,EAAGjD,GAAIlS,MAAM4L,EAAI,MACjE8M,EAAMjF,EAAOiF,EAAK,IAAIzG,EAAKnD,GAAIqG,GAE/BlD,EAAKtB,UAAYuB,EACJ,MAAN+D,GAAcjF,GAAW,EAAMoB,EAAMsG,EAAKxG,IAAOwG,EAG1DA,EAAMrC,EACNoC,GAAe,CACjB,CACF,CAMA,SAASS,EAAa1a,EAAGoU,GACvB,IAAIhH,EAAGrP,EAAGU,EAmBV,KAhBK2O,EAAIgH,EAAI2D,QAAQ,OAAS,IAAG3D,EAAMA,EAAIuG,QAAQ,IAAK,MAGnD5c,EAAIqW,EAAIwG,OAAO,OAAS,GAGvBxN,EAAI,IAAGA,EAAIrP,GACfqP,IAAMgH,EAAI1W,MAAMK,EAAI,GACpBqW,EAAMA,EAAIyG,UAAU,EAAG9c,IACdqP,EAAI,IAGbA,EAAIgH,EAAItY,QAILiC,EAAI,EAAyB,KAAtBqW,EAAI/O,WAAWtH,MAAcA,EAGzC,IAAKU,EAAM2V,EAAItY,OAAoC,KAA5BsY,EAAI/O,WAAW5G,EAAM,MAAcA,EAG1D,GAFA2V,EAAMA,EAAI1W,MAAMK,EAAGU,GAEV,CAaP,GAZAA,GAAOV,EACPqP,EAAIA,EAAIrP,EAAI,EACZiC,EAAEoN,EAAIwF,EAAUxF,EAv5CP,GAw5CTpN,EAAEqT,EAAI,GAMNtV,GAAKqP,EAAI,GA95CA,EA+5CLA,EAAI,IAAGrP,GA/5CF,GAi6CLA,EAAIU,EAAK,CAEX,IADIV,GAAGiC,EAAEqT,EAAEtW,MAAMqX,EAAI1W,MAAM,EAAGK,IACzBU,GAn6CE,EAm6CeV,EAAIU,GAAMuB,EAAEqT,EAAEtW,MAAMqX,EAAI1W,MAAMK,EAAGA,GAn6ChD,IAq6CPA,EAr6CO,GAo6CPqW,EAAMA,EAAI1W,MAAMK,IACGjC,MACrB,MACEiC,GAAKU,EAGP,KAAOV,KAAMqW,GAAO,IAGpB,GAFApU,EAAEqT,EAAEtW,MAAMqX,GAEN5B,IAAaxS,EAAEoN,EAAI8F,GAASlT,EAAEoN,GAAK8F,GAAQ,MAAMlK,MAAM2J,EAAqBvF,EAClF,MAGEpN,EAAE2T,EAAI,EACN3T,EAAEoN,EAAI,EACNpN,EAAEqT,EAAI,CAAC,GAGT,OAAOrT,CACT,CAMC,SAAS4T,EAAM5T,EAAGyX,EAAIY,GACrB,IAAIta,EAAGc,EAAGyU,EAAGhD,EAAGwK,EAAIC,EAAS1G,EAAG2G,EAC9BzH,EAAKvT,EAAEqT,EAWT,IAAK/C,EAAI,EAAGgD,EAAIC,EAAG,GAAID,GAAK,GAAIA,GAAK,GAAIhD,IAIzC,IAHAvS,EAAI0Z,EAAKnH,GAGD,EACNvS,GA/8CS,EAg9CTc,EAAI4Y,EACJpD,EAAId,EAAGyH,EAAM,OACR,CAGL,IAFAA,EAAMlM,KAAKC,MAAMhR,EAAI,GAn9CZ,MAo9CTuV,EAAIC,EAAGzX,QACO,OAAOkE,EAIrB,IAHAqU,EAAIf,EAAIC,EAAGyH,GAGN1K,EAAI,EAAGgD,GAAK,GAAIA,GAAK,GAAIhD,IAO9BzR,GAJAd,GA59CS,KAg+CUuS,CACrB,CAwBA,QAtBW,IAAP+H,IAIFyC,EAAKzG,GAHLf,EAAIT,EAAQ,GAAIvC,EAAIzR,EAAI,IAGX,GAAK,EAGlBkc,EAAUtD,EAAK,QAAqB,IAAhBlE,EAAGyH,EAAM,IAAiB3G,EAAIf,EAMlDyH,EAAU1C,EAAK,GACVyC,GAAMC,KAAmB,GAAN1C,GAAWA,IAAOrY,EAAE2T,EAAI,EAAI,EAAI,IACpDmH,EAAK,GAAW,GAANA,IAAkB,GAANzC,GAAW0C,GAAiB,GAAN1C,IAG1Cta,EAAI,EAAIc,EAAI,EAAIwV,EAAIxB,EAAQ,GAAIvC,EAAIzR,GAAK,EAAI0U,EAAGyH,EAAM,IAAM,GAAM,GAClE3C,IAAOrY,EAAE2T,EAAI,EAAI,EAAI,KAGzB8D,EAAK,IAAMlE,EAAG,GAkBhB,OAjBIwH,GACFzH,EAAIiC,EAAkBvV,GACtBuT,EAAGzX,OAAS,EAGZ2b,EAAKA,EAAKnE,EAAI,EAGdC,EAAG,GAAKV,EAAQ,IAlgDT,EAkgDyB4E,EAlgDzB,MAmgDPzX,EAAEoN,EAAIwF,GAAW6E,EAngDV,IAmgD4B,IAEnClE,EAAGzX,OAAS,EAGZyX,EAAG,GAAKvT,EAAEoN,EAAIpN,EAAE2T,EAAI,GAGf3T,EAiBT,GAbS,GAALjC,GACFwV,EAAGzX,OAASkf,EACZ1H,EAAI,EACJ0H,MAEAzH,EAAGzX,OAASkf,EAAM,EAClB1H,EAAIT,EAAQ,GArhDH,EAqhDkB9U,GAI3BwV,EAAGyH,GAAOnc,EAAI,GAAKwV,EAAIxB,EAAQ,GAAIvC,EAAIzR,GAAKgU,EAAQ,GAAIhU,GAAK,GAAKyU,EAAI,GAGpEyH,EACF,OAAS,CAGP,GAAW,GAAPC,EAAU,EACPzH,EAAG,IAAMD,IAAMN,IAClBO,EAAG,GAAK,IACNvT,EAAEoN,GAGN,KACF,CAEE,GADAmG,EAAGyH,IAAQ1H,EACPC,EAAGyH,IAAQhI,EAAM,MACrBO,EAAGyH,KAAS,EACZ1H,EAAI,CAER,CAIF,IAAKvV,EAAIwV,EAAGzX,OAAoB,IAAZyX,IAAKxV,IAAWwV,EAAGQ,MAEvC,GAAIvB,IAAaxS,EAAEoN,EAAI8F,GAASlT,EAAEoN,GAAK8F,GACrC,MAAMlK,MAAM2J,EAAqB4C,EAAkBvV,IAGrD,OAAOA,CACT,CAGA,SAAS+W,EAAS/W,EAAGmD,GACnB,IAAIkQ,EAAGjG,EAAGrP,EAAGc,EAAGyU,EAAG7U,EAAK8U,EAAI0H,EAAIC,EAAM1H,EACpCC,EAAOzT,EAAEiJ,YACTyK,EAAKD,EAAKtB,UAIZ,IAAKnS,EAAE2T,IAAMxQ,EAAEwQ,EAGb,OAFIxQ,EAAEwQ,EAAGxQ,EAAEwQ,GAAKxQ,EAAEwQ,EACbxQ,EAAI,IAAIsQ,EAAKzT,GACXwS,EAAWoB,EAAMzQ,EAAGuQ,GAAMvQ,EAcnC,GAXAoQ,EAAKvT,EAAEqT,EACPG,EAAKrQ,EAAEkQ,EAIPjG,EAAIjK,EAAEiK,EACN6N,EAAKjb,EAAEoN,EACPmG,EAAKA,EAAG7V,QACR4V,EAAI2H,EAAK7N,EAGF,CAyBL,KAxBA8N,EAAO5H,EAAI,IAGTD,EAAIE,EACJD,GAAKA,EACL7U,EAAM+U,EAAG1X,SAETuX,EAAIG,EACJpG,EAAI6N,EACJxc,EAAM8U,EAAGzX,QAQPwX,GAFJvV,EAAI+Q,KAAKlP,IAAIkP,KAAKC,KAAK2E,EAnmDd,GAmmD8BjV,GAAO,KAG5C6U,EAAIvV,EACJsV,EAAEvX,OAAS,GAIbuX,EAAEQ,UACG9V,EAAIuV,EAAGvV,KAAMsV,EAAEtW,KAAK,GACzBsW,EAAEQ,SAGJ,KAAO,CASL,KAHAqH,GAFAnd,EAAIwV,EAAGzX,SACP2C,EAAM+U,EAAG1X,WAEC2C,EAAMV,GAEXA,EAAI,EAAGA,EAAIU,EAAKV,IACnB,GAAIwV,EAAGxV,IAAMyV,EAAGzV,GAAI,CAClBmd,EAAO3H,EAAGxV,GAAKyV,EAAGzV,GAClB,KACF,CAGFuV,EAAI,CACN,CAaA,IAXI4H,IACF7H,EAAIE,EACJA,EAAKC,EACLA,EAAKH,EACLlQ,EAAEwQ,GAAKxQ,EAAEwQ,GAGXlV,EAAM8U,EAAGzX,OAIJiC,EAAIyV,EAAG1X,OAAS2C,EAAKV,EAAI,IAAKA,EAAGwV,EAAG9U,KAAS,EAGlD,IAAKV,EAAIyV,EAAG1X,OAAQiC,EAAIuV,GAAI,CAC1B,GAAIC,IAAKxV,GAAKyV,EAAGzV,GAAI,CACnB,IAAKc,EAAId,EAAGc,GAAiB,IAAZ0U,IAAK1U,IAAW0U,EAAG1U,GAAKmU,EAAO,IAC9CO,EAAG1U,GACL0U,EAAGxV,IAAMiV,CACX,CAEAO,EAAGxV,IAAMyV,EAAGzV,EACd,CAGA,KAAqB,IAAdwV,IAAK9U,IAAa8U,EAAGQ,MAG5B,KAAiB,IAAVR,EAAG,GAAUA,EAAG2E,UAAW9K,EAGlC,OAAKmG,EAAG,IAERpQ,EAAEkQ,EAAIE,EACNpQ,EAAEiK,EAAIA,EAGCoF,EAAWoB,EAAMzQ,EAAGuQ,GAAMvQ,GANd,IAAIsQ,EAAK,EAO9B,CAGA,SAASjR,EAASxC,EAAGmb,EAAO1D,GAC1B,IAAInE,EACFlG,EAAImI,EAAkBvV,GACtBoU,EAAMH,EAAejU,EAAEqT,GACvB5U,EAAM2V,EAAItY,OAwBZ,OAtBIqf,GACE1D,IAAOnE,EAAImE,EAAKhZ,GAAO,EACzB2V,EAAMA,EAAIqG,OAAO,GAAK,IAAMrG,EAAI1W,MAAM,GAAK4W,EAAchB,GAChD7U,EAAM,IACf2V,EAAMA,EAAIqG,OAAO,GAAK,IAAMrG,EAAI1W,MAAM,IAGxC0W,EAAMA,GAAOhH,EAAI,EAAI,IAAM,MAAQA,GAC1BA,EAAI,GACbgH,EAAM,KAAOE,GAAelH,EAAI,GAAKgH,EACjCqD,IAAOnE,EAAImE,EAAKhZ,GAAO,IAAG2V,GAAOE,EAAchB,KAC1ClG,GAAK3O,GACd2V,GAAOE,EAAclH,EAAI,EAAI3O,GACzBgZ,IAAOnE,EAAImE,EAAKrK,EAAI,GAAK,IAAGgH,EAAMA,EAAM,IAAME,EAAchB,OAE3DA,EAAIlG,EAAI,GAAK3O,IAAK2V,EAAMA,EAAI1W,MAAM,EAAG4V,GAAK,IAAMc,EAAI1W,MAAM4V,IAC3DmE,IAAOnE,EAAImE,EAAKhZ,GAAO,IACrB2O,EAAI,IAAM3O,IAAK2V,GAAO,KAC1BA,GAAOE,EAAchB,KAIlBtT,EAAE2T,EAAI,EAAI,IAAMS,EAAMA,CAC/B,CAIA,SAASwE,EAASxY,EAAK3B,GACrB,GAAI2B,EAAItE,OAAS2C,EAEf,OADA2B,EAAItE,OAAS2C,GACN,CAEX,CAgIA,SAAS2c,EAAOhU,GACd,IAAKA,GAAsB,iBAARA,EACjB,MAAM4B,MAAMyJ,EAAe,mBAE7B,IAAI1U,EAAGsd,EAAGC,EACRC,EAAK,CACH,YAAa,EAAGtJ,EAChB,WAAY,EAAG,EACf,YAAY,IAAQ,EACpB,WAAY,EAAG,KAGnB,IAAKlU,EAAI,EAAGA,EAAIwd,EAAGzf,OAAQiC,GAAK,EAC9B,QAA6B,KAAxBud,EAAIlU,EAAIiU,EAAIE,EAAGxd,KAAiB,CACnC,KAAI6U,EAAU0I,KAAOA,GAAKA,GAAKC,EAAGxd,EAAI,IAAMud,GAAKC,EAAGxd,EAAI,IACnD,MAAMiL,MAAM0J,EAAkB2I,EAAI,KAAOC,GADcxhB,KAAKuhB,GAAKC,CAExE,CAGF,QAA8B,KAAzBA,EAAIlU,EAAIiU,EAAI,SAAqB,CAClC,GAAIC,GAAKxM,KAAKyD,KACT,MAAMvJ,MAAM0J,EAAkB2I,EAAI,KAAOC,GAD1BxhB,KAAKuhB,GAAK,IAAIvhB,KAAKwhB,EAE3C,CAEA,OAAOxhB,IACT,CAIAoY,EA5IA,SAASsJ,EAAMpU,GACb,IAAIrJ,EAAGsd,EAAGE,EASV,SAASrJ,EAAQ5X,GACf,IAAI0F,EAAIlG,KAGR,KAAMkG,aAAakS,GAAU,OAAO,IAAIA,EAAQ5X,GAOhD,GAHA0F,EAAEiJ,YAAciJ,EAGZ5X,aAAiB4X,EAInB,OAHAlS,EAAE2T,EAAIrZ,EAAMqZ,EACZ3T,EAAEoN,EAAI9S,EAAM8S,OACZpN,EAAEqT,GAAK/Y,EAAQA,EAAM+Y,GAAK/Y,EAAMoD,QAAUpD,GAI5C,GAAqB,iBAAVA,EAAoB,CAG7B,GAAY,EAARA,GAAc,EAChB,MAAM0O,MAAM0J,EAAkBpY,GAGhC,GAAIA,EAAQ,EACV0F,EAAE2T,EAAI,MACD,MAAIrZ,EAAQ,GAOjB,OAHA0F,EAAE2T,EAAI,EACN3T,EAAEoN,EAAI,OACNpN,EAAEqT,EAAI,CAAC,IALP/Y,GAASA,EACT0F,EAAE2T,GAAK,CAMT,CAGA,OAAIrZ,MAAYA,GAASA,EAAQ,KAC/B0F,EAAEoN,EAAI,OACNpN,EAAEqT,EAAI,CAAC/Y,KAIFogB,EAAa1a,EAAG1F,EAAMkI,WAC/B,CAAO,GAAqB,iBAAVlI,EAChB,MAAM0O,MAAM0J,EAAkBpY,GAWhC,GAP4B,KAAxBA,EAAM+K,WAAW,IACnB/K,EAAQA,EAAMoD,MAAM,GACpBsC,EAAE2T,GAAK,GAEP3T,EAAE2T,EAAI,GAGJZ,EAAU9H,KAAK3Q,GACd,MAAM0O,MAAM0J,EAAkBpY,GADRogB,EAAa1a,EAAG1F,EAE7C,CAkBA,GAhBA4X,EAAQlW,UAAYmX,EAEpBjB,EAAQuJ,SAAW,EACnBvJ,EAAQwJ,WAAa,EACrBxJ,EAAQyJ,WAAa,EACrBzJ,EAAQ0J,YAAc,EACtB1J,EAAQ2J,cAAgB,EACxB3J,EAAQ4J,gBAAkB,EAC1B5J,EAAQ6J,gBAAkB,EAC1B7J,EAAQ8J,gBAAkB,EAC1B9J,EAAQ+J,iBAAmB,EAE3B/J,EAAQsJ,MAAQA,EAChBtJ,EAAQkJ,OAASlJ,EAAQjK,IAAMmT,OAEnB,IAARhU,IAAgBA,EAAM,CAAC,GACvBA,EAEF,IADAmU,EAAK,CAAC,YAAa,WAAY,WAAY,WAAY,QAClDxd,EAAI,EAAGA,EAAIwd,EAAGzf,QAAcsL,EAAInL,eAAeof,EAAIE,EAAGxd,QAAOqJ,EAAIiU,GAAKvhB,KAAKuhB,IAKlF,OAFAnJ,EAAQkJ,OAAOhU,GAER8K,CACT,CA6CUsJ,CAAMtJ,GAEhBA,EAAiB,QAAIA,EAAQA,QAAUA,EAGvCF,EAAM,IAAIE,EAAQ,QAUf,KAFD,aACE,OAAOA,CACR,+BAeJ,CA59DA,E,2BCCDhY,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMkW,EAAY,EAAQ,MAc1B/W,EAAQ+H,MAZR,SAAe8O,EAAG5Q,GAEd,IADA4Q,EAAIE,EAAUA,UAAUF,IAChB,IAAM3N,OAAOuZ,cAAc5L,GAC/B,MAAO,GAEX,MAAMrV,EAAS,IAAID,MAAMsV,GACzB,IAAK,IAAIvS,EAAI,EAAGA,EAAIuS,EAAGvS,IACnB9C,EAAO8C,GAAyB,mBAAb2B,EAA0BA,EAAS3B,GAAKA,EAE/D,OAAO9C,CACX,C,2BCLA,IAAI+H,EAAQ,EAAQ,MAIpB,IAAIE,EAAW,mBAAsBhJ,OAAOkH,GAAKlH,OAAOkH,GAHxD,SAAYpB,EAAGmD,GACb,OAAQnD,IAAMmD,IAAM,IAAMnD,GAAK,EAAIA,GAAM,EAAImD,IAAQnD,GAAMA,GAAKmD,GAAMA,CACxE,EAEEgZ,EAAWnZ,EAAMmZ,SACjB7Y,EAAYN,EAAMM,UAClB8Y,EAAkBpZ,EAAMoZ,gBACxB5Y,EAAgBR,EAAMQ,cA0BxB,SAAS6Y,EAAuBpY,GAC9B,IAAIqY,EAAoBrY,EAAKN,YAC7BM,EAAOA,EAAK3J,MACZ,IACE,IAAIiiB,EAAYD,IAChB,OAAQpZ,EAASe,EAAMsY,EACzB,CAAE,MAAOC,GACP,OAAO,CACT,CACF,CAIA,IAAIvZ,EACF,oBAAuBwZ,aACvB,IAAuBA,OAAOC,eAC9B,IAAuBD,OAAOC,SAASC,cANzC,SAAgCjZ,EAAWC,GACzC,OAAOA,GACT,EArCA,SAAgCD,EAAWC,GACzC,IAAIrJ,EAAQqJ,IACViZ,EAAYT,EAAS,CAAElY,KAAM,CAAE3J,MAAOA,EAAOqJ,YAAaA,KAC1DM,EAAO2Y,EAAU,GAAG3Y,KACpB4Y,EAAcD,EAAU,GAmB1B,OAlBAR,GACE,WACEnY,EAAK3J,MAAQA,EACb2J,EAAKN,YAAcA,EACnB0Y,EAAuBpY,IAAS4Y,EAAY,CAAE5Y,KAAMA,GACtD,GACA,CAACP,EAAWpJ,EAAOqJ,IAErBL,GACE,WAEE,OADA+Y,EAAuBpY,IAAS4Y,EAAY,CAAE5Y,KAAMA,IAC7CP,GAAU,WACf2Y,EAAuBpY,IAAS4Y,EAAY,CAAE5Y,KAAMA,GACtD,GACF,GACA,CAACP,IAEHF,EAAclJ,GACPA,CACT,EAoBAb,EAAQ2J,0BACN,IAAWJ,EAAMI,qBAAuBJ,EAAMI,qBAAuBH,C,yBC/DvE/I,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMwiB,EAAsB,mBAe5BrjB,EAAQyF,QAdR,SAAiB5E,EAAOwB,EAAS6G,OAAOsQ,kBACpC,cAAe3Y,GACX,IAAK,SACD,OAAOqI,OAAOiT,UAAUtb,IAAUA,GAAS,GAAKA,EAAQwB,EAE5D,IAAK,SACD,OAAO,EAEX,IAAK,SACD,OAAOghB,EAAoB7R,KAAK3Q,GAG5C,C,yBCfAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WA8B5Db,EAAQ+T,cA5BR,SAAuBjO,GACnB,GAAsB,iBAAXA,EACP,OAAO,EAEX,GAAc,MAAVA,EACA,OAAO,EAEX,GAAsC,OAAlCrF,OAAO4I,eAAevD,GACtB,OAAO,EAEX,GAA+C,oBAA3CrF,OAAO8B,UAAUwG,SAAS/E,KAAK8B,GAA+B,CAC9D,MAAMwd,EAAMxd,EAAOnF,OAAOC,aAC1B,GAAW,MAAP0iB,EACA,OAAO,EAGX,QADuB7iB,OAAO2Q,yBAAyBtL,EAAQnF,OAAOC,cAAcyQ,UAI7EvL,EAAOiD,aAAe,WAAWua,IAC5C,CACA,IAAIC,EAAQzd,EACZ,KAAwC,OAAjCrF,OAAO4I,eAAeka,IACzBA,EAAQ9iB,OAAO4I,eAAeka,GAElC,OAAO9iB,OAAO4I,eAAevD,KAAYyd,CAC7C,C,yBC5BA9iB,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAc5Db,EAAQsL,OAZR,SAAgB3E,EAAK6c,GACjB,MAAMxa,EAAM,IAAI6E,IAChB,IAAK,IAAIvJ,EAAI,EAAGA,EAAIqC,EAAItE,OAAQiC,IAAK,CACjC,MAAMyI,EAAOpG,EAAIrC,GACX2D,EAAMub,EAAOzW,EAAMzI,EAAGqC,GACvBqC,EAAI1G,IAAI2F,IACTe,EAAIwF,IAAIvG,EAAK8E,EAErB,CACA,OAAOxL,MAAM8F,KAAK2B,EAAIyD,SAC1B,C,2BCZAhM,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAM4G,EAAW,EAAQ,MASzBzH,EAAQ6U,SAPR,SAAkBhU,GACd,OAAI4G,EAASA,SAAS5G,GACX4iB,IAEJva,OAAOrI,EAClB,C,yBCTAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAM5Db,EAAQmC,SAJR,SAAkBtB,GACd,OAAOqI,OAAOuZ,cAAc5hB,IAAUA,GAAS,CACnD,C,yBCJAJ,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WA6B5Db,EAAQ4P,aAvBa,qBAwBrB5P,EAAQ8P,eAjBe,uBAkBvB9P,EAAQ6P,SApBS,iBAqBjB7P,EAAQ0jB,iBAPiB,yBAQzB1jB,EAAQ2jB,kBAZkB,0BAa1B3jB,EAAQgQ,WA7BW,mBA8BnBhQ,EAAQ+P,YAnBY,oBAoBpB/P,EAAQiQ,QA5BQ,gBA6BhBjQ,EAAQ4jB,SAtBS,iBAuBjB5jB,EAAQkQ,gBAZgB,wBAaxBlQ,EAAQmQ,gBAZgB,wBAaxBnQ,EAAQ6jB,YA5BY,oBA6BpB7jB,EAAQqQ,cAlBc,sBAmBtBrQ,EAAQsQ,cAlBc,sBAmBtBtQ,EAAQoQ,aArBa,qBAsBrBpQ,EAAQuQ,OAnCO,eAoCfvQ,EAAQwQ,UAzCU,kBA0ClBxQ,EAAQyQ,UAhCU,kBAiClBzQ,EAAQ0Q,UA7CU,kBA8ClB1Q,EAAQ2Q,OAtCO,eAuCf3Q,EAAQ4Q,UA9CU,kBA+ClB5Q,EAAQ6Q,UA3CU,kBA4ClB7Q,EAAQgR,eAhCe,uBAiCvBhR,EAAQiR,eAhCe,uBAiCvBjR,EAAQ8Q,cApCc,sBAqCtB9Q,EAAQ+Q,qBApCqB,4B,2BCjB3B9Q,EAAOD,QAAU,EAAjB,K,2BCDFS,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE5D,MAAMijB,EAAkB,EAAQ,MAC1Bxa,EAAS,EAAQ,MACjB2E,EAAO,EAAQ,MAuCrBjO,EAAQ0N,cArCR,SAAuBC,EAAKoW,GACxB,OAAOD,EAAgBpW,cAAcC,GAAK,CAAC9M,EAAOoH,EAAKnC,EAAQuI,KAC3D,MAAME,EAASwV,IAAaljB,EAAOoH,EAAKnC,EAAQuI,GAChD,QAAelJ,IAAXoJ,EACA,OAAOA,EAEX,GAAmB,iBAARZ,EAAX,CAGA,GAAIrE,EAAOA,OAAOqE,KAASM,EAAKwC,WAAwC,mBAApB9C,EAAI6B,YAA4B,CAChF,MAAMhO,EAAS,CAAC,EAGhB,OAFA6M,EAAMG,IAAIb,EAAKnM,GACfsiB,EAAgB3U,eAAe3N,EAAQmM,EAAK7H,EAAQuI,GAC7C7M,CACX,CACA,OAAQf,OAAO8B,UAAUwG,SAAS/E,KAAK2J,IACnC,KAAKM,EAAKuC,UACV,KAAKvC,EAAK2C,UACV,KAAK3C,EAAK+B,WAAY,CAClB,MAAMxO,EAAS,IAAImM,EAAI6B,YAAY7B,GAAK/F,WAExC,OADAkc,EAAgB3U,eAAe3N,EAAQmM,GAChCnM,CACX,CACA,KAAKyM,EAAK2B,aAAc,CACpB,MAAMpO,EAAS,CAAC,EAIhB,OAHAsiB,EAAgB3U,eAAe3N,EAAQmM,GACvCnM,EAAOa,OAASsL,EAAItL,OACpBb,EAAOb,OAAOqjB,UAAYrW,EAAIhN,OAAOqjB,UAC9BxiB,CACX,CACA,QACI,OAvBR,CAyBA,GAER,C,2BCxCEvB,EAAOD,QAAU,EAAjB,K,GCFEikB,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBhf,IAAjBif,EACH,OAAOA,EAAapkB,QAGrB,IAAIC,EAASgkB,EAAyBE,GAAY,CAGjDnkB,QAAS,CAAC,GAOX,OAHAqkB,EAAoBF,GAAUngB,KAAK/D,EAAOD,QAASC,EAAQA,EAAOD,QAASkkB,GAGpEjkB,EAAOD,OACf,CCrBAkkB,EAAoBrN,EAAK5W,IACxB,IAAIqkB,EAASrkB,GAAUA,EAAOskB,WAC7B,IAAOtkB,EAAiB,QACxB,IAAM,EAEP,OADAikB,EAAoBtK,EAAE0K,EAAQ,CAAEnX,EAAGmX,IAC5BA,CAAM,ECLdJ,EAAoBtK,EAAI,CAAC5Z,EAASwkB,KACjC,IAAI,IAAIvc,KAAOuc,EACXN,EAAoBO,EAAED,EAAYvc,KAASic,EAAoBO,EAAEzkB,EAASiI,IAC5ExH,OAAOC,eAAeV,EAASiI,EAAK,CAAEyc,YAAY,EAAM3Y,IAAKyY,EAAWvc,IAE1E,ECNDic,EAAoBS,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOvkB,MAAQ,IAAIwkB,SAAS,cAAb,EAChB,CAAE,MAAOlR,GACR,GAAsB,iBAAXqP,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBkB,EAAoBO,EAAI,CAAC9W,EAAKmX,IAAUrkB,OAAO8B,UAAUC,eAAewB,KAAK2J,EAAKmX,GCClFZ,EAAoBjH,EAAKjd,IACH,oBAAXW,QAA0BA,OAAOC,aAC1CH,OAAOC,eAAeV,EAASW,OAAOC,YAAa,CAAEC,MAAO,WAE7DJ,OAAOC,eAAeV,EAAS,aAAc,CAAEa,OAAO,GAAO,E,g5DCL9D,SAASoc,EAAEtJ,GAAG,IAAIyK,EAAE2G,EAAElO,EAAE,GAAG,GAAG,iBAAiBlD,GAAG,iBAAiBA,EAAEkD,GAAGlD,OAAO,GAAG,iBAAiBA,EAAE,GAAGpS,MAAMkH,QAAQkL,GAAG,CAAC,IAAI8Q,EAAE9Q,EAAEtR,OAAO,IAAI+b,EAAE,EAAEA,EAAEqG,EAAErG,IAAIzK,EAAEyK,KAAK2G,EAAE9H,EAAEtJ,EAAEyK,OAAOvH,IAAIA,GAAG,KAAKA,GAAGkO,EAAE,MAAM,IAAIA,KAAKpR,EAAEA,EAAEoR,KAAKlO,IAAIA,GAAG,KAAKA,GAAGkO,GAAG,OAAOlO,CAAC,CAAQ,SAASmO,IAAO,IAAI,IAAIrR,EAAEyK,EAAE2G,EAAE,EAAElO,EAAE,GAAG4N,EAAExf,UAAU5C,OAAO0iB,EAAEN,EAAEM,KAAKpR,EAAE1O,UAAU8f,MAAM3G,EAAEnB,EAAEtJ,MAAMkD,IAAIA,GAAG,KAAKA,GAAGuH,GAAG,OAAOvH,CAAC,CCA/W,IAAMoO,EAAY,CAChB,0BACA,SACA,gBACA,QACA,eACA,UACA,iBACA,mBACA,0BACA,qBACA,4BACA,sBACA,6BACA,UACA,iBACA,SACA,gBACA,WACA,kBACA,gBACA,uBACA,UACA,iBACA,UACA,iBACA,WACA,kBACA,YACA,mBACA,SACA,gBACA,UACA,iBACA,YACA,mBACA,aACA,oBACA,UACA,iBACA,UACA,iBACA,YACA,mBACA,mBACA,0BACA,mBACA,0BACA,YACA,mBACA,cACA,qBACA,UACA,iBACA,eACA,sBACA,mBACA,0BACA,cACA,qBACA,UACA,iBACA,SACA,gBACA,YACA,mBACA,aACA,oBACA,eACA,sBACA,WACA,kBACA,YACA,mBACA,YACA,mBACA,YACA,mBACA,eACA,sBACA,iBACA,wBACA,YACA,mBACA,aACA,oBACA,UACA,iBACA,gBACA,uBACA,gBACA,uBACA,SACA,gBACA,YACA,mBACA,cACA,qBACA,aACA,oBACA,cACA,qBACA,aACA,oBACA,cACA,qBACA,SACA,gBACA,cACA,qBACA,eACA,eACA,cACA,qBACA,aACA,oBACA,cACA,qBACA,YACA,mBACA,WACA,kBACA,gBACA,uBACA,aACA,oBACA,cACA,qBACA,eACA,sBACA,gBACA,uBACA,gBACA,uBACA,cACA,qBACA,kBACA,yBACA,iBACA,wBACA,iBACA,wBACA,gBACA,uBACA,eACA,sBACA,sBACA,6BACA,uBACA,8BACA,WACA,kBACA,UACA,iBACA,mBACA,0BACA,iBACA,wBACA,uBACA,8BACA,kBACA,0BAKK,SAASC,EAAWjd,GACzB,MAAmB,iBAARA,GAGqCgd,EACxB1P,SAAStN,EACnC,CC1KA,IAyTMkd,EAAuB,IAAI9c,IAzTN,CACzB,wBACA,cACA,oBACA,YACA,eACA,gBACA,gBACA,eACA,gBACA,eACA,mBACA,eACA,gBACA,oBACA,gBACA,cACA,gBACA,cACA,eACA,oBACA,aACA,kBACA,aACA,YACA,aACA,iBACA,uBACA,mBACA,YACA,mBACA,gBACA,eACA,gBACA,gBACA,gBACA,uBACA,gBACA,gBACA,eACA,gBACA,eACA,YACA,gBACA,gBACA,gBACA,iBACA,YACA,QACA,SACA,KACA,OACA,MACA,QACA,SACA,MACA,OACA,QAQA,SACA,QACA,OACA,WACA,eACA,aACA,WACA,oBACA,eACA,aACA,YACA,aACA,SACA,gBACA,gBACA,cACA,UACA,gBACA,gBACA,cACA,OACA,QACA,OACA,KACA,WACA,YACA,OACA,WACA,gBACA,WACA,qBACA,4BACA,eACA,iBACA,oBACA,mBACA,SACA,KACA,KACA,IACA,aACA,UACA,kBACA,YACA,UACA,UACA,mBACA,MACA,KACA,KACA,WACA,YACA,mBACA,MACA,WACA,4BACA,OACA,cACA,WACA,SACA,YACA,cACA,aACA,eACA,YACA,aACA,WACA,iBACA,cACA,YACA,cACA,aACA,SACA,OACA,KACA,KACA,KACA,KACA,YACA,6BACA,2BACA,WACA,oBACA,gBACA,UACA,YACA,eACA,OACA,cACA,iBACA,MACA,KACA,YACA,KACA,KACA,KACA,KACA,IACA,eACA,mBACA,UACA,YACA,aACA,WACA,eACA,gBACA,gBACA,oBACA,QACA,YACA,eACA,YACA,cACA,cACA,cACA,OACA,mBACA,YACA,eACA,OACA,aACA,SACA,UACA,WACA,QACA,SACA,cACA,SACA,WACA,mBACA,oBACA,aACA,UACA,aACA,sBACA,mBACA,eACA,gBACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,IACA,SACA,OACA,OACA,kBACA,cACA,YACA,qBACA,mBACA,UACA,SACA,SACA,KACA,KACA,OACA,iBACA,QACA,UACA,mBACA,mBACA,QACA,eACA,cACA,eACA,QACA,QACA,cACA,YACA,cACA,wBACA,yBACA,SACA,SACA,kBACA,mBACA,gBACA,iBACA,mBACA,gBACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,iBACA,aACA,gBACA,KACA,YACA,KACA,KACA,oBACA,qBACA,UACA,cACA,eACA,aACA,cACA,SACA,eACA,UACA,WACA,cACA,cACA,WACA,eACA,aACA,aACA,gBACA,SACA,cACA,cACA,KACA,KACA,IACA,mBACA,UACA,eACA,eACA,YACA,YACA,YACA,aACA,YACA,UACA,UACA,QACA,aACA,WACA,KACA,KACA,IACA,mBACA,IACA,aACA,MACA,MACA,UAOK,SAAS+c,EAAoBnd,GAClC,MAAmB,iBAARA,GAGJkd,EAAqB7iB,IAAI2F,EAClC,CAWO,SAASod,EAAgBpd,GAC9B,MAAsB,iBAARA,GAAoBA,EAAIqd,WAAW,QACnD,CAOO,SAASC,EAA0D5X,GACxE,GAAmB,iBAARA,GAA4B,OAARA,EAC7B,MAAO,CAAC,EAEV,IAAMnM,EAAmC,CAAC,EAE1C,IAAK,IAAMyG,KAAO0F,EACZlN,OAAO8B,UAAUC,eAAewB,KAAK2J,EAAK1F,KACxCmd,EAAoBnd,IAAQod,EAAgBpd,MAC9CzG,EAAOyG,GAAO0F,EAAI1F,IAIxB,OAAOzG,CACT,CAiBO,SAASgkB,EACd/W,GAEA,OAAa,MAATA,EACK,MAGLgX,EAAAA,EAAAA,gBAAehX,IAAiC,iBAAhBA,EAAMiX,OAAsC,OAAhBjX,EAAMiX,MAE7DH,EAD0C9W,EAAMiX,OAIpC,iBAAVjX,GAAuBlN,MAAMkH,QAAQgG,GAIzC,KAHE8W,EAAsB9W,EAIjC,CCpXO,SAASkX,EAA2DhY,GACzE,IAAMnM,EAAmC,CAAC,EAG1C,IAAK,IAAMyG,KAAO0F,EACZlN,OAAO8B,UAAUC,eAAewB,KAAK2J,EAAK1F,KACxCmd,EAAoBnd,IAAQod,EAAgBpd,IAAQid,EAAWjd,MACjEzG,EAAOyG,GAAO0F,EAAI1F,IAIxB,OAAOzG,CACT,C,ySCJO,IAAMokB,GAAUC,EAAAA,EAAAA,aAAiC,CAACH,EAAcI,KACrE,IAAM,SAAEC,EAAQ,MAAEC,EAAK,OAAEC,EAAM,QAAEC,EAAO,UAAEC,EAAS,MAAEC,EAAK,MAAEC,EAAK,KAAEC,GAAoBZ,EAAXa,E,6WAAMC,CAAKd,EAAKe,GACtFC,EAAUR,GAAW,CAAEF,QAAOC,SAAQ1f,EAAG,EAAGmD,EAAG,GAC/Cid,EAAa3B,EAAK,mBAAoBmB,GAE5C,OACE5c,EAAAA,cAAA,MAAAqd,EAAA,GACMjB,EAAuBY,GAAO,CAClCJ,UAAWQ,EACXX,MAAOA,EACPC,OAAQA,EACRG,MAAOA,EACPF,QAAO,GAAA/hB,OAAKuiB,EAAQngB,EAAC,KAAApC,OAAIuiB,EAAQhd,EAAC,KAAAvF,OAAIuiB,EAAQV,MAAK,KAAA7hB,OAAIuiB,EAAQT,QAC/DH,IAAKA,IAELvc,EAAAA,cAAA,aAAQ8c,GACR9c,EAAAA,cAAA,YAAO+c,GACNP,EACG,I,mPCxBH,IAAMc,EAAQtd,EAAAA,YAAqC,CAACmc,EAAcI,KACvE,IAAM,SAAEC,EAAQ,UAAEI,GAAyBT,EAAXa,E,6WAAMC,CAAKd,EAAKe,GAC1CE,EAAa3B,EAAK,iBAAkBmB,GAE1C,OACE5c,EAAAA,cAAA,IAAAqd,EAAA,CAAGT,UAAWQ,GAAgBhB,EAAuBY,GAAO,CAAET,IAAKA,IAChEC,EACC,I,UCzBKe,GAAsBC,EAAAA,EAAAA,eAAkC,MAExDC,EAAkBA,KAA0BC,EAAAA,EAAAA,YAAWH,GCJjDzR,KAAK0F,IACH1F,KAAK6R,MADnB,MAEMC,EAAM9R,KAAK8R,IAGXC,GAFM/R,KAAKlP,IACLkP,KAAKkC,IACLlC,KAAK+R,KACXjJ,EAAO9I,KAAK8I,KAGZkJ,EAAKhS,KAAKiS,GAEVC,EAAM,EAAIF,ECTvB,SACE,IAAAG,CAAK3kB,EAAS6U,GACZ,MAAMuF,EAAIkB,EAAKzG,EAAO2P,GACtBxkB,EAAQ4kB,OAAOxK,EAAG,GAClBpa,EAAQ6kB,IAAI,EAAG,EAAGzK,EAAG,EAAGsK,EAC1B,GCLF,GACE,IAAAC,CAAK3kB,EAAS6U,GACZ,MAAMuF,EAAIkB,EAAKzG,EAAO,GAAK,EAC3B7U,EAAQ4kB,QAAQ,EAAIxK,GAAIA,GACxBpa,EAAQ8kB,QAAQ1K,GAAIA,GACpBpa,EAAQ8kB,QAAQ1K,GAAI,EAAIA,GACxBpa,EAAQ8kB,OAAO1K,GAAI,EAAIA,GACvBpa,EAAQ8kB,OAAO1K,GAAIA,GACnBpa,EAAQ8kB,OAAO,EAAI1K,GAAIA,GACvBpa,EAAQ8kB,OAAO,EAAI1K,EAAGA,GACtBpa,EAAQ8kB,OAAO1K,EAAGA,GAClBpa,EAAQ8kB,OAAO1K,EAAG,EAAIA,GACtBpa,EAAQ8kB,QAAQ1K,EAAG,EAAIA,GACvBpa,EAAQ8kB,QAAQ1K,EAAGA,GACnBpa,EAAQ8kB,QAAQ,EAAI1K,EAAGA,GACvBpa,EAAQ+kB,WACV,GChBIC,EAAQ1J,EAAK,EAAI,GACjB2J,EAAkB,EAARD,EAEhB,GACE,IAAAL,CAAK3kB,EAAS6U,GACZ,MAAMhO,EAAIyU,EAAKzG,EAAOoQ,GAChBvhB,EAAImD,EAAIme,EACdhlB,EAAQ4kB,OAAO,GAAI/d,GACnB7G,EAAQ8kB,OAAOphB,EAAG,GAClB1D,EAAQ8kB,OAAO,EAAGje,GAClB7G,EAAQ8kB,QAAQphB,EAAG,GACnB1D,EAAQ+kB,WACV,GCZF,GACE,IAAAJ,CAAK3kB,EAAS6U,GACZ,MAAMkD,EAAIuD,EAAKzG,GACTnR,GAAKqU,EAAI,EACf/X,EAAQklB,KAAKxhB,EAAGA,EAAGqU,EAAGA,EACxB,GCJIoN,EAAKZ,EAAIC,EAAK,IAAMD,EAAI,EAAIC,EAAK,IACjCY,EAAKb,EAAIG,EAAM,IAAMS,EACrBE,GAAMf,EAAII,EAAM,IAAMS,EAE5B,GACE,IAAAR,CAAK3kB,EAAS6U,GACZ,MAAMuF,EAAIkB,EAPH,kBAOQzG,GACTnR,EAAI0hB,EAAKhL,EACTvT,EAAIwe,EAAKjL,EACfpa,EAAQ4kB,OAAO,GAAIxK,GACnBpa,EAAQ8kB,OAAOphB,EAAGmD,GAClB,IAAK,IAAIpF,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,MAAM6I,EAAIoa,EAAMjjB,EAAI,EACdsc,EAAIuG,EAAIha,GACR+M,EAAIkN,EAAIja,GACdtK,EAAQ8kB,OAAOzN,EAAI+C,GAAI2D,EAAI3D,GAC3Bpa,EAAQ8kB,OAAO/G,EAAIra,EAAI2T,EAAIxQ,EAAGwQ,EAAI3T,EAAIqa,EAAIlX,EAC5C,CACA7G,EAAQ+kB,WACV,GCpBIO,EAAQhK,EAAK,GAEnB,GACE,IAAAqJ,CAAK3kB,EAAS6U,GACZ,MAAMhO,GAAKyU,EAAKzG,GAAgB,EAARyQ,IACxBtlB,EAAQ4kB,OAAO,EAAO,EAAJ/d,GAClB7G,EAAQ8kB,QAAQQ,EAAQze,GAAIA,GAC5B7G,EAAQ8kB,OAAOQ,EAAQze,GAAIA,GAC3B7G,EAAQ+kB,WACV,GCTIhH,GAAK,GACL1G,EAAIiE,EAAK,GAAK,EACdtE,EAAI,EAAIsE,EAAK,IACbhR,EAAkB,GAAb0M,EAAI,EAAI,GAEnB,GACE,IAAA2N,CAAK3kB,EAAS6U,GACZ,MAAMuF,EAAIkB,EAAKzG,EAAOvK,GAChBib,EAAKnL,EAAI,EAAGoL,EAAKpL,EAAIpD,EACrByO,EAAKF,EAAIG,EAAKtL,EAAIpD,EAAIoD,EACtB8D,GAAMuH,EAAIE,EAAKD,EACrB1lB,EAAQ4kB,OAAOW,EAAIC,GACnBxlB,EAAQ8kB,OAAOW,EAAIC,GACnB1lB,EAAQ8kB,OAAO5G,EAAIyH,GACnB3lB,EAAQ8kB,OAAO/G,EAAIwH,EAAKlO,EAAImO,EAAInO,EAAIkO,EAAKxH,EAAIyH,GAC7CxlB,EAAQ8kB,OAAO/G,EAAI0H,EAAKpO,EAAIqO,EAAIrO,EAAIoO,EAAK1H,EAAI2H,GAC7C1lB,EAAQ8kB,OAAO/G,EAAIG,EAAK7G,EAAIsO,EAAItO,EAAI6G,EAAKH,EAAI4H,GAC7C3lB,EAAQ8kB,OAAO/G,EAAIwH,EAAKlO,EAAImO,EAAIzH,EAAIyH,EAAKnO,EAAIkO,GAC7CvlB,EAAQ8kB,OAAO/G,EAAI0H,EAAKpO,EAAIqO,EAAI3H,EAAI2H,EAAKrO,EAAIoO,GAC7CzlB,EAAQ8kB,OAAO/G,EAAIG,EAAK7G,EAAIsO,EAAI5H,EAAI4H,EAAKtO,EAAI6G,GAC7Cle,EAAQ+kB,WACV,GCvBa,WAASrhB,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJA,MAAM,EAAK8O,KAAKiS,GACZ,EAAM,EAAI,EACV,EAAU,KACVmB,EAAa,EAAM,EAEvB,SAASC,EAAOC,GACdtoB,KAAKuoB,GAAKD,EAAQ,GAClB,IAAK,IAAIrkB,EAAI,EAAGuS,EAAI8R,EAAQtmB,OAAQiC,EAAIuS,IAAKvS,EAC3CjE,KAAKuoB,GAAK3jB,UAAUX,GAAKqkB,EAAQrkB,EAErC,CAeO,MAAMukB,EACX,WAAArZ,CAAYsZ,GACVzoB,KAAK0oB,IAAM1oB,KAAK2oB,IAChB3oB,KAAK4oB,IAAM5oB,KAAK6oB,IAAM,KACtB7oB,KAAKuoB,EAAI,GACTvoB,KAAK8oB,QAAoB,MAAVL,EAAiBJ,EAlBpC,SAAqBI,GACnB,IAAIlP,EAAIvE,KAAKO,MAAMkT,GACnB,KAAMlP,GAAK,GAAI,MAAM,IAAIrK,MAAM,mBAAmBuZ,KAClD,GAAIlP,EAAI,GAAI,OAAO8O,EACnB,MAAM7O,EAAI,IAAMD,EAChB,OAAO,SAAS+O,GACdtoB,KAAKuoB,GAAKD,EAAQ,GAClB,IAAK,IAAIrkB,EAAI,EAAGuS,EAAI8R,EAAQtmB,OAAQiC,EAAIuS,IAAKvS,EAC3CjE,KAAKuoB,GAAKvT,KAAK8E,MAAMlV,UAAUX,GAAKuV,GAAKA,EAAI8O,EAAQrkB,EAEzD,CACF,CAO6C8kB,CAAYN,EACvD,CACA,MAAArB,CAAOlhB,EAAGmD,GACRrJ,KAAK8oB,OAAO,IAAI9oB,KAAK0oB,IAAM1oB,KAAK4oB,KAAO1iB,KAAKlG,KAAK2oB,IAAM3oB,KAAK6oB,KAAOxf,GACrE,CACA,SAAAke,GACmB,OAAbvnB,KAAK4oB,MACP5oB,KAAK4oB,IAAM5oB,KAAK0oB,IAAK1oB,KAAK6oB,IAAM7oB,KAAK2oB,IACrC3oB,KAAK8oB,OAAO,IAEhB,CACA,MAAAxB,CAAOphB,EAAGmD,GACRrJ,KAAK8oB,OAAO,IAAI9oB,KAAK4oB,KAAO1iB,KAAKlG,KAAK6oB,KAAOxf,GAC/C,CACA,gBAAA2f,CAAiBf,EAAIC,EAAIhiB,EAAGmD,GAC1BrJ,KAAK8oB,OAAO,KAAKb,MAAOC,KAAMloB,KAAK4oB,KAAO1iB,KAAKlG,KAAK6oB,KAAOxf,GAC7D,CACA,aAAA4f,CAAchB,EAAIC,EAAIxH,EAAIyH,EAAIjiB,EAAGmD,GAC/BrJ,KAAK8oB,OAAO,KAAKb,MAAOC,MAAOxH,MAAOyH,KAAMnoB,KAAK4oB,KAAO1iB,KAAKlG,KAAK6oB,KAAOxf,GAC3E,CACA,KAAA6f,CAAMjB,EAAIC,EAAIxH,EAAIyH,EAAIvL,GAIpB,GAHAqL,GAAMA,EAAIC,GAAMA,EAAIxH,GAAMA,EAAIyH,GAAMA,GAAIvL,GAAKA,GAGrC,EAAG,MAAM,IAAI1N,MAAM,oBAAoB0N,KAE/C,IAAImL,EAAK/nB,KAAK4oB,IACVZ,EAAKhoB,KAAK6oB,IACVM,EAAMzI,EAAKuH,EACXmB,EAAMjB,EAAKD,EACXmB,EAAMtB,EAAKE,EACXqB,EAAMtB,EAAKE,EACXqB,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAiB,OAAbtpB,KAAK4oB,IACP5oB,KAAK8oB,OAAO,IAAI9oB,KAAK4oB,IAAMX,KAAMjoB,KAAK6oB,IAAMX,SAIzC,GAAMqB,EAAQ,EAKd,GAAMvU,KAAK0F,IAAI4O,EAAMH,EAAMC,EAAMC,GAAO,GAAazM,EAKrD,CACH,IAAI4M,EAAM9I,EAAKqH,EACX0B,EAAMtB,EAAKH,EACX0B,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM5U,KAAK8I,KAAK4L,GAChBG,EAAM7U,KAAK8I,KAAKyL,GAChBrlB,EAAI0Y,EAAI5H,KAAK8U,KAAK,EAAK9U,KAAK+U,MAAML,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,KAAS,GAC/EG,EAAM9lB,EAAI2lB,EACVI,EAAM/lB,EAAI0lB,EAGV5U,KAAK0F,IAAIsP,EAAM,GAAK,GACtBhqB,KAAK8oB,OAAO,IAAIb,EAAK+B,EAAMX,KAAOnB,EAAK8B,EAAMV,IAG/CtpB,KAAK8oB,OAAO,IAAIlM,KAAKA,WAAW0M,EAAME,EAAMH,EAAMI,MAAQzpB,KAAK4oB,IAAMX,EAAKgC,EAAMd,KAAOnpB,KAAK6oB,IAAMX,EAAK+B,EAAMb,GAC/G,MArBEppB,KAAK8oB,OAAO,IAAI9oB,KAAK4oB,IAAMX,KAAMjoB,KAAK6oB,IAAMX,SAsBhD,CACA,GAAAb,CAAInhB,EAAGmD,EAAGuT,EAAGsN,EAAI5lB,EAAI6lB,GAInB,GAHAjkB,GAAKA,EAAGmD,GAAKA,EAAW8gB,IAAQA,GAAhBvN,GAAKA,GAGb,EAAG,MAAM,IAAI1N,MAAM,oBAAoB0N,KAE/C,IAAIwN,EAAKxN,EAAI5H,KAAK8R,IAAIoD,GAClBG,EAAKzN,EAAI5H,KAAK+R,IAAImD,GAClBnC,EAAK7hB,EAAIkkB,EACTpC,EAAK3e,EAAIghB,EACTC,EAAK,EAAIH,EACTI,EAAKJ,EAAMD,EAAK5lB,EAAKA,EAAK4lB,EAGb,OAAblqB,KAAK4oB,IACP5oB,KAAK8oB,OAAO,IAAIf,KAAMC,KAIfhT,KAAK0F,IAAI1a,KAAK4oB,IAAMb,GAAM,GAAW/S,KAAK0F,IAAI1a,KAAK6oB,IAAMb,GAAM,IACtEhoB,KAAK8oB,OAAO,IAAIf,KAAMC,IAInBpL,IAGD2N,EAAK,IAAGA,EAAKA,EAAK,EAAM,GAGxBA,EAAKnC,EACPpoB,KAAK8oB,OAAO,IAAIlM,KAAKA,SAAS0N,KAAMpkB,EAAIkkB,KAAM/gB,EAAIghB,KAAMzN,KAAKA,SAAS0N,KAAMtqB,KAAK4oB,IAAMb,KAAM/nB,KAAK6oB,IAAMb,IAIjGuC,EAAK,GACZvqB,KAAK8oB,OAAO,IAAIlM,KAAKA,SAAS2N,GAAM,MAAOD,KAAMtqB,KAAK4oB,IAAM1iB,EAAI0W,EAAI5H,KAAK8R,IAAIxiB,MAAOtE,KAAK6oB,IAAMxf,EAAIuT,EAAI5H,KAAK+R,IAAIziB,KAEpH,CACA,IAAAojB,CAAKxhB,EAAGmD,EAAGkR,EAAGiQ,GACZxqB,KAAK8oB,OAAO,IAAI9oB,KAAK0oB,IAAM1oB,KAAK4oB,KAAO1iB,KAAKlG,KAAK2oB,IAAM3oB,KAAK6oB,KAAOxf,KAAKkR,GAAKA,MAAMiQ,MAAMjQ,IAC3F,CACA,QAAA7R,GACE,OAAO1I,KAAKuoB,CACd,EC7IK,SAASkC,EAASC,GACvB,IAAIjC,EAAS,EAcb,OAZAiC,EAAMjC,OAAS,SAASF,GACtB,IAAK3jB,UAAU5C,OAAQ,OAAOymB,EAC9B,GAAS,MAALF,EACFE,EAAS,SACJ,CACL,MAAMlP,EAAIvE,KAAKO,MAAMgT,GACrB,KAAMhP,GAAK,GAAI,MAAM,IAAIoR,WAAW,mBAAmBpC,KACvDE,EAASlP,CACX,CACA,OAAOmR,CACT,EAEO,IAAM,IAAIlC,EAAKC,EACxB,CChBc3K,EAAK,GCALA,EAAK,G,uBCDb8M,GAAwB,EAEvB,SAAS9Q,GAAM+Q,GAAqE,IACnFC,EAAS,KADwClmB,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAGgmB,IAEpDG,EAAU/V,KAAK8E,MAAM+Q,EAAMC,GAAUA,EAC3C,OAAI1qB,OAAOkH,GAAGyjB,GAAU,GACf,EAEFA,CACT,CAOO,SAASC,GAAqB1C,GAA0E,QAAA2C,EAAArmB,UAAA5C,OAAxCoK,EAAM,IAAAlL,MAAA+pB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9e,EAAM8e,EAAA,GAAAtmB,UAAAsmB,GAC3E,OAAO5C,EAAQ6C,QAAO,CAAChqB,EAAQiqB,EAAQnnB,KACrC,IAAMzD,EAAQ4L,EAAOnI,EAAI,GACzB,MAAqB,iBAAVzD,EACFW,EAASX,EAAQ4qB,OAEZtmB,IAAVtE,EACKW,EAAS2Y,GAAMtZ,GAAS4qB,EAE1BjqB,EAASiqB,CAAM,GACrB,GACL,CCxBO,IAAMC,GAAY7qB,GACT,IAAVA,EACK,EAELA,EAAQ,EACH,GAGD,EAGG8qB,GAAS9qB,GAEG,iBAATA,GAAqBA,IAAUA,EAGlC+qB,GAAa/qB,GACP,iBAAVA,GAAsBA,EAAMyd,QAAQ,OAASzd,EAAMwB,OAAS,EAExDwpB,GAAYhrB,IACL,iBAAVA,GAAsBA,aAAiBqI,UAAYyiB,GAAM9qB,GAEtDirB,GAAcjrB,GAA6CgrB,GAAShrB,IAA2B,iBAAVA,EAE9FkrB,GAAY,EACHC,GAAYvpB,IACvB,IAAMwpB,IAAOF,GAEb,MAAO,GAAP5nB,OAAU1B,GAAU,IAAE0B,OAAG8nB,EAAE,EAkBhBC,GAAkB,SAC7BC,EACAC,GAGG,IAKCvrB,EAPJ2T,EAAYvP,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,EACfonB,EAAQpnB,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,IAAAA,UAAA,GAER,IAAK4mB,GAASM,IAA+B,iBAAZA,EAC/B,OAAO3X,EAKT,GAAIoX,GAAUO,GAAU,CACtB,GAAkB,MAAdC,EACF,OAAO5X,EAET,IAAM3O,EAAQsmB,EAAQ7N,QAAQ,KAC9Bzd,EAASurB,EAAaE,WAAYH,EAAmBloB,MAAM,EAAG4B,IAAW,GAC3E,MACEhF,GAASsrB,EAWX,OARIR,GAAM9qB,KACRA,EAAQ2T,GAGN6X,GAA0B,MAAdD,GAAsBvrB,EAAQurB,IAC5CvrB,EAAQurB,GAGHvrB,CACT,EAEa0rB,GAAgBnhB,IAC3B,IAAK7J,MAAMkH,QAAQ2C,GACjB,OAAO,EAMT,IAHA,IAAMpG,EAAMoG,EAAI/I,OACVmqB,EAAiC,CAAC,EAE/BloB,EAAI,EAAGA,EAAIU,EAAKV,IAAK,CAC5B,GAAKkoB,EAAM3kB,OAAOuD,EAAI9G,KAGpB,OAAO,EAFPkoB,EAAM3kB,OAAOuD,EAAI9G,MAAO,CAI5B,CAEA,OAAO,CAAK,EAMP,SAASmoB,GAAYvX,EAAgBC,EAAoBiJ,GAC9D,OAAIyN,GAAS3W,IAAU2W,GAAS1W,GACvBgF,GAAMjF,EAAQkJ,GAAKjJ,EAAMD,IAE3BC,CACT,CAEO,SAASuX,GACdthB,EACAuhB,EACAC,GAEA,GAAKxhB,GAAQA,EAAI/I,OAIjB,OAAO+I,EAAIyhB,MACTC,GACEA,IAAkC,mBAAjBH,EAA8BA,EAAaG,GAAS/gB,KAAI+gB,EAAOH,MAAmBC,GAEzG,CAcO,IAwCMG,GAAalsB,GACjBA,QAQImsB,GAAcnsB,GACrBksB,GAAUlsB,GACLA,EAGF,GAAPsD,OAAUtD,EAAMmgB,OAAO,GAAGiM,eAAa9oB,OAAGtD,EAAMoD,MAAM,IAQjD,SAASipB,GAAYrsB,GAC1B,OAAgB,MAATA,CACT,CAMO,SAASssB,KAAmB,C,+vCCxLnC,IAAMC,GAAiC,CACrCC,aAAY,EACZC,YAAW,EACXC,cAAa,EACbC,aAAY,EACZC,WAAU,EACVC,eAAc,EACdC,UAASA,GAELC,GAASvY,KAAKiS,GAAK,IAoDZuG,GAAUC,IAA8E,IAA7E,KAAEze,EAAO,SAAQ,KAAEqI,EAAO,GAAE,SAAEqW,EAAW,QAA+BD,EAApBE,E,6WAAIxH,CAAAsH,EAAArH,IACxEf,EAAKuI,GAAAA,GAAA,GAAQD,GAAI,IAAE3e,OAAMqI,OAAMqW,aACjCG,EAAuB,SACP,iBAAT7e,IAQT6e,EAAW7e,GAOb,IAaM,UAAE8W,EAAS,GAAEgI,EAAE,GAAEC,GAAO1I,EACxB2I,EAAgB1I,EAAuBD,GAE7C,OAAImG,GAASsC,IAAOtC,GAASuC,IAAOvC,GAASnU,GAEzCnO,EAAAA,cAAA,OAAAqd,GAAA,GACMyH,EAAa,CACjBlI,UAAWnB,EAAK,mBAAoBmB,GACpCmI,UAAS,aAAAnqB,OAAegqB,EAAE,MAAAhqB,OAAKiqB,EAAE,KACjCxU,EAtBU2U,MACd,IAAMC,EArEgBnf,KACxB,IAAMvL,EAAO,SAAHK,OAAY6oB,GAAW3d,IAEjC,OAAO+d,GAAgBtpB,IAASupB,CAAY,EAkEpBoB,CAAiBP,GACjClY,ECpEK,SAAgB3G,EAAMqI,GACnC,IAAI7U,EAAU,KACV+J,EAAOke,EAAS9U,GAKpB,SAASA,IACP,IAAIhH,EAGJ,GAFKnM,IAASA,EAAUmM,EAASpC,KACjCyC,EAAKzN,MAAMvB,KAAM4E,WAAWuiB,KAAK3kB,GAAU6U,EAAK9V,MAAMvB,KAAM4E,YACxD+J,EAAQ,OAAOnM,EAAU,KAAMmM,EAAS,IAAM,IACpD,CAcA,OAtBAK,EAAuB,mBAATA,EAAsBA,EAAO,EAASA,GAAQqf,GAC5DhX,EAAuB,mBAATA,EAAsBA,EAAO,OAAkBvS,IAATuS,EAAqB,IAAMA,GAS/E1B,EAAO3G,KAAO,SAASuZ,GACrB,OAAO3jB,UAAU5C,QAAUgN,EAAoB,mBAANuZ,EAAmBA,EAAI,EAASA,GAAI5S,GAAU3G,CACzF,EAEA2G,EAAO0B,KAAO,SAASkR,GACrB,OAAO3jB,UAAU5C,QAAUqV,EAAoB,mBAANkR,EAAmBA,EAAI,GAAUA,GAAI5S,GAAU0B,CAC1F,EAEA1B,EAAOnT,QAAU,SAAS+lB,GACxB,OAAO3jB,UAAU5C,QAAUQ,EAAe,MAAL+lB,EAAY,KAAOA,EAAG5S,GAAUnT,CACvE,EAEOmT,CACT,CDyCmB2Y,GACZtf,KAAKmf,GACL9W,KAlEmBkX,EAAClX,EAAcqW,EAAoB1e,KAC3D,GAAiB,SAAb0e,EACF,OAAOrW,EAGT,OAAQrI,GACN,IAAK,QACH,OAAQ,EAAIqI,EAAOA,EAAQ,EAC7B,IAAK,UACH,MAAQ,GAAMA,EAAOA,EAAQrC,KAAK8I,KAAK,GACzC,IAAK,SACH,OAAOzG,EAAOA,EAChB,IAAK,OACH,IAAMmX,EAAQ,GAAKjB,GAEnB,OAAO,KAAOlW,EAAOA,GAAQrC,KAAK8U,IAAI0E,GAASxZ,KAAK8U,IAAY,EAAR0E,GAAaxZ,KAAK8U,IAAI0E,IAAU,GAE1F,IAAK,WACH,OAAQxZ,KAAK8I,KAAK,GAAKzG,EAAOA,EAAQ,EACxC,IAAK,MACH,OAAS,GAAK,GAAKrC,KAAK8I,KAAK,IAAMzG,EAAOA,EAAQ,EACpD,QACE,OAAQrC,KAAKiS,GAAK5P,EAAOA,EAAQ,EACrC,EA2CUkX,CAAkBlX,EAAMqW,EAAUG,IAEpChU,EAAIlE,IACV,GAAU,OAANkE,EAGJ,OAAOA,CAAC,EAYDqU,MAKF,IAAI,EAGbV,GAAQiB,eAvDeA,CAAC7mB,EAAalI,KACnCqtB,GAAgB,SAADjpB,OAAU6oB,GAAW/kB,KAAUlI,CAAO,EEwGhD,IAAMgvB,GAAqBnO,GACzB,WAAYA,GAAK,eAAgBA,GAAK,aAAcA,EA45BhDoO,GAAqBA,CAChCtJ,EACAuJ,KAEA,IAAKvJ,GAA0B,mBAAVA,GAAyC,kBAAVA,EAClD,OAAO,KAGT,IAAIwJ,EAAaxJ,EAMjB,IAJID,EAAAA,EAAAA,gBAAeC,KACjBwJ,EAAaxJ,EAAMA,OAGK,iBAAfwJ,GAAiD,mBAAfA,EAC3C,OAAO,KAGT,IAAMC,EAAwC,CAAC,EAQ/C,OANA1uB,OAAOmI,KAAKsmB,GAAYE,SAAQnnB,IAC1Bid,EAAWjd,KACbknB,EAAIlnB,GAAOgnB,GAAc,CAAEtb,GAAaub,EAAWjnB,GAAKinB,EAAYvb,IACtE,IAGKwb,CAAG,EAWCE,GAAqBA,CAChC3J,EACA4J,EACAzpB,KAEA,GAAc,OAAV6f,GAAoC,iBAAVA,GAAuC,mBAAVA,EACzD,OAAO,KAGT,IAAIyJ,EAA+C,KAYnD,OAVA1uB,OAAOmI,KAAK8c,GAAO0J,SAASnnB,IAC1B,IAAM8E,EAAQ2Y,EAAczd,GAExBid,EAAWjd,IAAwB,mBAAT8E,IACvBoiB,IAAKA,EAAM,CAAC,GAEjBA,EAAIlnB,GAxBRsnB,EAACC,EAA+DF,EAAWzpB,IAC1E8N,IACC6b,EAAgBF,EAAMzpB,EAAO8N,GAEtB,MAoBM4b,CAAuBxiB,EAAMuiB,EAAMzpB,GAChD,IAGKspB,CAAG,E,6pBChoCL,SAASM,GACdC,EACA5d,GAMA,IAAM6d,E,kWAAgB1B,CAAA,GAAQyB,GAOxBrU,EAAiBvJ,EAqBvB,OAXarR,OAAOmI,KAAKkJ,GACI0Z,QAAO,CAACoE,EAAQ3nB,UAC1B9C,IAAbyqB,EAAI3nB,SAAkC9C,IAAZkW,EAAGpT,KAC/B2nB,EAAI3nB,GAAOoT,EAAGpT,IAET2nB,IACND,EAML,C,w3BCrCA,IAAME,GAAO,GAqGPC,GAAmC,CACvCC,MAAO,SACPC,SAAU,GACVC,cAAe,OACfC,OAAQ,aACRC,cAAe,UAOjB,SAASC,GAAItC,GAQV,IAUkCuC,GAlBvB,KACZf,EAAI,SACJgB,EAAQ,cACRL,GAKDnC,EACOyC,EAAWV,GACXW,EAAYX,GAAO,EACnBY,EAAYZ,GAAO,EACnBa,EAAQpB,EAAKqB,SAAWV,EAAgBX,EAAKoB,MAC7CE,EAAgBN,QAAAA,EAAYhB,EAAKjgB,KAEvC,GAAsB,SAAlBuhB,EACF,OAAO,KAET,GAAsB,cAAlBA,EACF,OACErnB,EAAAA,cAAA,QACEsnB,YAAa,EACbC,KAAK,OACLC,OAAQL,EACRM,gBAA6B,QAAdX,EAAEf,EAAK2B,eAAO,IAAAZ,OAAA,EAAZA,EAAcW,gBAC/B1I,GAAI,EACJC,GAAIgI,EACJxP,GAAI8O,GACJrH,GAAI+H,EACJpK,UAAU,yBAIhB,GAAsB,SAAlByK,EACF,OACErnB,EAAAA,cAAA,QACEsnB,YAAa,EACbC,KAAK,OACLC,OAAQL,EACR9W,EAAC,MAAAzV,OAAQosB,EAAQ,KAAApsB,OAAIssB,EAAS,mBAAAtsB,OACvBqsB,EAAS,KAAArsB,OAAIqsB,EAAS,WAAArsB,OAAU,EAAIssB,EAAS,KAAAtsB,OAAIosB,EAAQ,mBAAApsB,OACzD0rB,GAAI,KAAA1rB,OAAI,EAAIssB,EAAS,KAAAtsB,OAAIosB,EAAQ,mBAAApsB,OACjCqsB,EAAS,KAAArsB,OAAIqsB,EAAS,WAAArsB,OAAUssB,EAAS,KAAAtsB,OAAIosB,GACpDpK,UAAU,yBAIhB,GAAsB,SAAlByK,EACF,OACErnB,EAAAA,cAAA,QACEwnB,OAAO,OACPD,KAAMJ,EACN9W,EAAC,MAAAzV,OAAQ0rB,EAAQ,KAAA1rB,OAAI0rB,GAAI,KAAA1rB,OAAK0rB,GAAa,KAAA1rB,QAAI,GAAK,KACpDgiB,UAAU,yBAIhB,GAAI5c,EAAAA,eAAqB+lB,EAAK4B,YAAa,CACzC,IAAMC,E,kWAAclD,CAAA,GAAQqB,GAE5B,cADO6B,EAAUD,WACV3nB,EAAAA,aAAmB+lB,EAAK4B,WAAYC,EAC7C,CAEA,OAAO5nB,EAAAA,cAACskB,GAAO,CAACiD,KAAMJ,EAAOvC,GAAIoC,EAAUnC,GAAImC,EAAU7Y,KAAMmY,GAAM9B,SAAS,WAAW1e,KAAMuhB,GACjG,CAEA,SAASQ,GAAM1L,GACb,IAAM,QAAEuL,EAAO,SAAEjB,EAAQ,OAAEE,EAAM,UAAEmB,EAAS,cAAEpB,EAAa,SAAEK,GAAa5K,EACpEQ,EAAU,CAAE3f,EAAG,EAAGmD,EAAG,EAAGsc,MAAO6J,GAAM5J,OAAQ4J,IAC7CyB,EAAY,CAChBC,QAAoB,eAAXrB,EAA0B,eAAiB,QACpDsB,YAAa,IAETC,EAAW,CAAEF,QAAS,eAAgBpB,cAAe,SAAUqB,YAAa,GAClF,OAAOP,EAAQjoB,KAAI,CAAC8jB,EAAsBxoB,KACxC,IAAMotB,EAAiB5E,EAAMuE,WAAaA,EACpClL,EAAYnB,EAAK,CACrB,wBAAwB,EACxB,CAAC,eAAD7gB,OAAgBG,KAAM,EACtBqsB,SAAU7D,EAAM6D,WAGlB,GAAmB,SAAf7D,EAAMzd,KACR,OAAO,KAGT,IAAMqhB,EAAQ5D,EAAM6D,SAAWV,EAAgBnD,EAAM4D,MAC/CiB,EAAaD,EAAiBA,EAAe5E,EAAMjsB,MAAOisB,EAAOxoB,GAAKwoB,EAAMjsB,MAElF,OACE0I,EAAAA,cAAA,KAAAqd,GAAA,CAAIT,UAAWA,EAAWC,MAAOkL,EAAWrpB,IAAG,eAAA9D,OAAiBG,IAAS+qB,GAAmB3J,EAAOoH,EAAOxoB,IACxGiF,EAAAA,cAACqc,EAAO,CACNI,MAAOgK,EACP/J,OAAQ+J,EACR9J,QAASA,EACTE,MAAOqL,EACP,gBAAAttB,OAAewtB,EAAU,iBAEzBpoB,EAAAA,cAAC6mB,GAAI,CAACd,KAAMxC,EAAOwD,SAAUA,EAAUL,cAAeA,KAExD1mB,EAAAA,cAAA,QAAM4c,UAAU,4BAA4BC,MAAO,CAAEsK,UAClDiB,GAEA,GAGX,CAQO,IAAMC,GAAwBC,IACnC,IAAMnM,EAAQ+J,GAAoBoC,EAAc/B,KAC1C,QAAEmB,EAAO,OAAEf,EAAM,MAAEH,GAAUrK,EAEnC,IAAKuL,IAAYA,EAAQ5uB,OACvB,OAAO,KAGT,IAAMyvB,EAAa,CACjBC,QAAS,EACTC,OAAQ,EACRC,UAAsB,eAAX/B,EAA0BH,EAAQ,QAG/C,OACExmB,EAAAA,cAAA,MAAI4c,UAAU,0BAA0BC,MAAO0L,GAC7CvoB,EAAAA,cAAC6nB,GAAKxK,GAAA,GAAKlB,EAAK,CAAEuL,QAASA,KACxB,E,sBCtPF,SAASiB,GACdjB,EACAkB,EACAC,GAEA,OAAe,IAAXD,EACK7mB,KAAO2lB,EAASmB,GAGH,mBAAXD,EACF7mB,KAAO2lB,EAASkB,GAGlBlB,CACT,C,eCDaoB,IAAuBtL,EAAAA,EAAAA,eAAgD,MCpB9EuL,GAA4BnlB,GAAKA,EAE1BolB,GAAiBA,KAC5B,IAAM1vB,GAAUokB,EAAAA,EAAAA,YAAWoL,IAC3B,OAAIxvB,EACKA,EAAQ2vB,MAAMC,SAEhBH,EAAY,EAGfnF,GAAOA,OAEPuF,GAAmBA,IAAMvF,GAGzBwF,GAAmCA,CAACxlB,EAAGC,IAAMD,IAAMC,EAkBlD,SAASwlB,GAAkBxoB,GAChC,IAAMvH,GAAUokB,EAAAA,EAAAA,YAAWoL,IAErBQ,GAAgF/oB,EAAAA,EAAAA,UAAQ,IACvFjH,EAGGiwB,IACN,GAAa,MAATA,EAGJ,OAAO1oB,EAAS0oB,EAAM,EANf3F,IAQR,CAACtqB,EAASuH,IAEb,OAAOJ,EAAAA,GAAAA,kCACLnH,EAAUA,EAAQkwB,aAAaC,aAAeN,GAC9C7vB,EAAUA,EAAQ2vB,MAAMS,SAAW9F,GACnCtqB,EAAUA,EAAQ2vB,MAAMS,SAAW9F,GACnC0F,EACAF,GAEJ,CCEA,SAASO,GAAiBlyB,EAAMmyB,EAAe,gDAAgDnyB,GAC7F,GAAoB,mBAATA,EACT,MAAM,IAAIkC,UAAUiwB,EAExB,CAcA,IAAIC,GAAiBrmB,GACZxL,MAAMkH,QAAQsE,GAAQA,EAAO,CAACA,GAEvC,SAASsmB,GAAgBC,GACvB,MAAMC,EAAehyB,MAAMkH,QAAQ6qB,EAAmB,IAAMA,EAAmB,GAAKA,EAKpF,OAjBF,SAAkC9rB,EAAO2rB,EAAe,8EACtD,IAAK3rB,EAAMgsB,OAAOzmB,GAAyB,mBAATA,IAAsB,CACtD,MAAM0mB,EAAYjsB,EAAMwB,KACrB+D,GAAyB,mBAATA,EAAsB,YAAYA,EAAKjJ,MAAQ,qBAAuBiJ,IACvF9D,KAAK,MACP,MAAM,IAAI/F,UAAU,GAAGiwB,KAAgBM,KACzC,CACF,CAMEC,CACEH,EACA,kGAEKA,CACT,CA6IwB5yB,SAEZF,OAAO4I,eAAe,CAAC,GAiSnC,IAQIsqB,GAAyB,oBAAZC,QAA0BA,QAR3B,MACd,WAAApkB,CAAY3O,GACVR,KAAKQ,MAAQA,CACf,CACA,KAAAgzB,GACE,OAAOxzB,KAAKQ,KACd,GAaF,SAASizB,GAAe9yB,EAAME,EAAU,CAAC,GACvC,IAAI6yB,EARG,CACL7Z,EAJe,EAKf2H,OAAG,EACH4C,EAAG,KACH7C,EAAG,MAKL,MAAM,oBAAEoS,GAAwB9yB,EAChC,IAAI+yB,EACAC,EAAe,EACnB,SAASC,IACP,IAAIC,EAAYL,EAChB,MAAM,OAAE1xB,GAAW4C,UACnB,IAAK,IAAIX,EAAI,EAAGC,EAAIlC,EAAQiC,EAAIC,EAAGD,IAAK,CACtC,MAAM+vB,EAAMpvB,UAAUX,GACtB,GAAmB,mBAAR+vB,GAAqC,iBAARA,GAA4B,OAARA,EAAc,CACxE,IAAIC,EAAcF,EAAU3P,EACR,OAAhB6P,IACFF,EAAU3P,EAAI6P,EAA8B,IAAIC,SAElD,MAAMC,EAAaF,EAAYvoB,IAAIsoB,QAChB,IAAfG,GACFJ,EAxBD,CACLla,EAJe,EAKf2H,OAAG,EACH4C,EAAG,KACH7C,EAAG,MAqBG0S,EAAY9lB,IAAI6lB,EAAKD,IAErBA,EAAYI,CAEhB,KAAO,CACL,IAAIC,EAAiBL,EAAUxS,EACR,OAAnB6S,IACFL,EAAUxS,EAAI6S,EAAiC,IAAI5mB,KAErD,MAAM6mB,EAAgBD,EAAe1oB,IAAIsoB,QACnB,IAAlBK,GACFN,EApCD,CACLla,EAJe,EAKf2H,OAAG,EACH4C,EAAG,KACH7C,EAAG,MAiCG6S,EAAejmB,IAAI6lB,EAAKD,IAExBA,EAAYM,CAEhB,CACF,CACA,MAAMC,EAAiBP,EACvB,IAAI5yB,EACJ,GA/Ca,IA+CT4yB,EAAUla,EACZ1Y,EAAS4yB,EAAUvS,OAInB,GAFArgB,EAASR,EAAKY,MAAM,KAAMqD,WAC1BivB,IACIF,EAAqB,CACvB,MAAMY,EAAkBX,GAAYJ,WAAaI,EAC1B,MAAnBW,GAA2BZ,EAAoBY,EAAiBpzB,KAClEA,EAASozB,EACQ,IAAjBV,GAAsBA,KAGxBD,EADuC,iBAAXzyB,GAAkC,OAAXA,GAAqC,mBAAXA,EACjD,IAAImyB,GAAInyB,GAAUA,CAChD,CAIF,OAFAmzB,EAAeza,EA9DF,EA+Dbya,EAAe9S,EAAIrgB,EACZA,CACT,CASA,OARA2yB,EAASU,WAAa,KACpBd,EAjEK,CACL7Z,EAJe,EAKf2H,OAAG,EACH4C,EAAG,KACH7C,EAAG,MA8DHuS,EAASW,mBAAmB,EAE9BX,EAASD,aAAe,IAAMA,EAC9BC,EAASW,kBAAoB,KAC3BZ,EAAe,CAAC,EAEXC,CACT,CAGA,SAASY,GAAsBC,KAAqBC,GAClD,MAAMC,EAA2D,mBAArBF,EAAkC,CAC5EG,QAASH,EACTI,eAAgBH,GACdD,EACEK,EAAkB,IAAI/B,KAC1B,IAEIW,EAFAqB,EAAiB,EACjBC,EAA2B,EAE3BC,EAAwB,CAAC,EACzBC,EAAanC,EAAmBhZ,MACV,iBAAfmb,IACTD,EAAwBC,EACxBA,EAAanC,EAAmBhZ,OAElC4Y,GACEuC,EACA,qFAAqFA,MAEvF,MAAMC,EAAkB,IACnBR,KACAM,IAEC,QACJL,EAAO,eACPC,EAAiB,GAAE,YACnBO,EAAc7B,GAAc,mBAC5B8B,EAAqB,GAAE,cACvBC,EAAgB,CAAC,GACfH,EACEI,EAAsB1C,GAAcgC,GACpCW,EAA0B3C,GAAcwC,GACxCrC,EAAeF,GAAgBC,GAC/B0C,EAAqBb,GAAQ,WAEjC,OADAG,IACOG,EAAW7zB,MAChB,KACAqD,UAEJ,MAAM6wB,GAEN,MAAM1rB,EAAWurB,GAAY,WAC3BJ,IACA,MAAMU,EAljBZ,SAAqC1C,EAAc2C,GACjD,MAAMD,EAAuB,IACvB,OAAE5zB,GAAWkxB,EACnB,IAAK,IAAIjvB,EAAI,EAAGA,EAAIjC,EAAQiC,IAC1B2xB,EAAqB3yB,KAAKiwB,EAAajvB,GAAG1C,MAAM,KAAMs0B,IAExD,OAAOD,CACT,CA2iBmCE,CAC3B5C,EACAtuB,WA0BF,OAxBAgvB,EAAa+B,EAAmBp0B,MAAM,KAAMq0B,GAwBrChC,CACT,MAAM8B,GACN,OAAOt1B,OAAO21B,OAAOhsB,EAAU,CAC7BqrB,aACAO,qBACAzC,eACAgC,yBAA0B,IAAMA,EAChCc,8BAA+B,KAC7Bd,EAA2B,CAAC,EAE9BtB,WAAY,IAAMA,EAClBqB,eAAgB,IAAMA,EACtBgB,oBAAqB,KACnBhB,EAAiB,CAAC,EAEpBH,UACAQ,eACA,EAKJ,OAHAl1B,OAAO21B,OAAOf,EAAiB,CAC7BkB,UAAW,IAAMlB,IAEZA,CACT,CACA,IAAI,GAAiCN,GAAsBjB,IAGvD0C,GAA2B/1B,OAAO21B,QACpC,CAACK,EAAsBC,EAAkB,OAloB3C,SAAwB5wB,EAAQqtB,EAAe,+CAA+CrtB,GAC5F,GAAsB,iBAAXA,EACT,MAAM,IAAI5C,UAAUiwB,EAExB,CA+nBIwD,CACEF,EACA,gIAAgIA,GAElI,MAAMG,EAAoBn2B,OAAOmI,KAAK6tB,GAIhCI,EAAqBH,EAHNE,EAAkB5tB,KACpCf,GAAQwuB,EAAqBxuB,MAI9B,IAAIguB,IACKA,EAAqBzK,QAAO,CAACsL,EAAaj2B,EAAOgF,KACtDixB,EAAYF,EAAkB/wB,IAAUhF,EACjCi2B,IACN,CAAC,KAGR,OAAOD,CAAkB,GAE3B,CAAEN,UAAW,IAAMC,K,qBCntBRO,GAAwBjE,GAA6CA,EAAMkE,OAAOC,SAOlFC,GAAkFC,GAC7F,CAJqCrE,GACrCA,EAAMkE,OAAO/F,QAGmB8F,KAChC,CAACK,EAAQtJ,KAAqB,IAAnB,WAAEuJ,GAAYvJ,EACjBwJ,EAAOF,EAASE,KAAK,GAC3B,OAAOD,EAAa3iB,KAAO4iB,EAAMD,GAAcC,CAAI,IChBvD,IAAMC,GAAM,EA+CL,SAASC,KAAoG,IAAnFC,EAAyCxyB,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,IACpEyyB,EAAiBC,IAAsBjV,EAAAA,EAAAA,UAAwB,CAAEuD,OAAQ,EAAG2R,KAAM,EAAGC,IAAK,EAAG7R,MAAO,IACrG8R,GAAoBC,EAAAA,EAAAA,cACvBC,IACC,GAAY,MAARA,EAAc,CAChB,IAAMjQ,EAAOiQ,EAAKC,wBACZC,EAAqB,CACzBjS,OAAQ8B,EAAK9B,OACb2R,KAAM7P,EAAK6P,KACXC,IAAK9P,EAAK8P,IACV7R,MAAO+B,EAAK/B,QAGZ3Q,KAAK0F,IAAImd,EAAIjS,OAASyR,EAAgBzR,QAAUsR,IAChDliB,KAAK0F,IAAImd,EAAIN,KAAOF,EAAgBE,MAAQL,IAC5CliB,KAAK0F,IAAImd,EAAIL,IAAMH,EAAgBG,KAAON,IAC1CliB,KAAK0F,IAAImd,EAAIlS,MAAQ0R,EAAgB1R,OAASuR,KAE9CI,EAAmB,CAAE1R,OAAQiS,EAAIjS,OAAQ2R,KAAMM,EAAIN,KAAMC,IAAKK,EAAIL,IAAK7R,MAAOkS,EAAIlS,OAEtF,IAGF,CAAC0R,EAAgB1R,MAAO0R,EAAgBzR,OAAQyR,EAAgBG,IAAKH,EAAgBE,QAASH,IAEhG,MAAO,CAACC,EAAiBI,EAC3B,CC3EA,SAASjhB,GAAEA,GAAG,IAAI,IAAIoG,EAAEhY,UAAU5C,OAAO+b,EAAE7c,MAAM0b,EAAE,EAAEA,EAAE,EAAE,GAAGtJ,EAAE,EAAEA,EAAEsJ,EAAEtJ,IAAIyK,EAAEzK,EAAE,GAAG1O,UAAU0O,GAAkJ,MAAMpE,MAAM,8BAA8BsH,GAAGuH,EAAE/b,OAAO,IAAI+b,EAAEpV,KAAI,SAAU6N,GAAG,MAAM,IAAIA,EAAE,GAAI,IAAG5N,KAAK,KAAK,IAAI,mDAAmD,CAAC,SAAS,GAAE4N,GAAG,QAAQA,KAAKA,EAAEshB,GAAE,CAAC,SAAS/Z,GAAEvH,GAAG,IAAIoG,EAAE,QAAQpG,IAAI,SAASA,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,OAAM,EAAG,IAAIoG,EAAExc,OAAO4I,eAAewN,GAAG,GAAG,OAAOoG,EAAE,OAAM,EAAG,IAAImB,EAAE3d,OAAO+B,eAAewB,KAAKiZ,EAAE,gBAAgBA,EAAEzN,YAAY,OAAO4O,IAAI3d,QAAQ,mBAAmB2d,GAAGyG,SAAS9b,SAAS/E,KAAKoa,KAAKga,EAAC,CAA1O,CAA4OvhB,IAAItV,MAAMkH,QAAQoO,MAAMA,EAAEwhB,QAAO,QAAQpb,EAAEpG,EAAErH,mBAAc,IAASyN,OAAE,EAAOA,EAAEob,MAAK,GAAExhB,IAAIgL,GAAEhL,GAAG,CAA2C,SAASvS,GAAEuS,EAAEoG,EAAEmB,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIqG,GAAE5N,IAAIuH,EAAE3d,OAAOmI,KAAK0vB,IAAIzhB,GAAGuY,SAAQ,SAAUzb,GAAGyK,GAAG,iBAAiBzK,GAAGsJ,EAAEtJ,EAAEkD,EAAElD,GAAGkD,EAAG,IAAGA,EAAEuY,SAAQ,SAAUhR,EAAEzK,GAAG,OAAOsJ,EAAEtJ,EAAEyK,EAAEvH,EAAG,GAAE,CAAC,SAAS4N,GAAE5N,GAAG,IAAIoG,EAAEpG,EAAEshB,IAAG,OAAOlb,EAAEA,EAAE3Y,EAAE,EAAE2Y,EAAE3Y,EAAE,EAAE2Y,EAAE3Y,EAAE/C,MAAMkH,QAAQoO,GAAG,EAAE,GAAEA,GAAG,EAAEgL,GAAEhL,GAAG,EAAE,CAAC,CAAC,SAAS0hB,GAAE1hB,EAAEoG,GAAG,OAAO,IAAIwH,GAAE5N,GAAGA,EAAEvU,IAAI2a,GAAGxc,OAAO8B,UAAUC,eAAewB,KAAK6S,EAAEoG,EAAE,CAAC,SAAS,GAAEpG,EAAEoG,GAAG,OAAO,IAAIwH,GAAE5N,GAAGA,EAAE9K,IAAIkR,GAAGpG,EAAEoG,EAAE,CAAC,SAAS8H,GAAElO,EAAEoG,EAAEmB,GAAG,IAAIzK,EAAE8Q,GAAE5N,GAAG,IAAIlD,EAAEkD,EAAErI,IAAIyO,EAAEmB,GAAG,IAAIzK,EAAEkD,EAAEvO,IAAI8V,GAAGvH,EAAEoG,GAAGmB,CAAC,CAAC,SAAS,GAAEvH,EAAEoG,GAAG,OAAOpG,IAAIoG,EAAE,IAAIpG,GAAG,EAAEA,GAAG,EAAEoG,EAAEpG,GAAGA,GAAGoG,GAAGA,CAAC,CAAC,SAAS,GAAEpG,GAAG,OAAO2hB,IAAG3hB,aAAahJ,GAAG,CAAC,SAASgU,GAAEhL,GAAG,OAAO4G,IAAG5G,aAAaxO,GAAG,CAAC,SAASuZ,GAAE/K,GAAG,OAAOA,EAAE4N,GAAG5N,EAAEuH,CAAC,CAAC,SAAS7Z,GAAEsS,GAAG,GAAGtV,MAAMkH,QAAQoO,GAAG,OAAOtV,MAAMgB,UAAU0B,MAAMD,KAAK6S,GAAG,IAAIoG,EAAEwb,GAAG5hB,UAAUoG,EAAEkb,IAAG,IAAI,IAAI/Z,EAAEka,GAAGrb,GAAGtJ,EAAE,EAAEA,EAAEyK,EAAE/b,OAAOsR,IAAI,CAAC,IAAIrP,EAAE8Z,EAAEzK,GAAG8Q,EAAExH,EAAE3Y,IAAG,IAAKmgB,EAAEpT,WAAWoT,EAAEpT,UAAS,EAAGoT,EAAEiU,cAAa,IAAKjU,EAAE1Y,KAAK0Y,EAAEjW,OAAOyO,EAAE3Y,GAAG,CAACo0B,cAAa,EAAGrnB,UAAS,EAAGqT,WAAWD,EAAEC,WAAW7jB,MAAMgW,EAAEvS,IAAI,CAAC,OAAO7D,OAAOiD,OAAOjD,OAAO4I,eAAewN,GAAGoG,EAAE,CAAC,SAASrD,GAAE/C,EAAElD,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAIjK,GAAEmN,IAAI,GAAEA,KAAKuH,GAAEvH,KAAK4N,GAAE5N,GAAG,IAAIA,EAAErI,IAAIqI,EAAEvO,IAAIuO,EAAE8hB,MAAM9hB,EAAEkB,OAAO8S,IAAGpqB,OAAOm4B,OAAO/hB,GAAGlD,GAAGrP,GAAEuS,GAAE,SAAUA,EAAEoG,GAAG,OAAOrD,GAAEqD,GAAE,EAAI,IAAE,IAAKpG,CAAC,CAAC,SAASgU,KAAIhU,GAAE,EAAE,CAAC,SAASnN,GAAEmN,GAAG,OAAO,MAAMA,GAAG,iBAAiBA,GAAGpW,OAAOo4B,SAAShiB,EAAE,CAAC,SAASzJ,GAAE6P,GAAG,IAAImB,EAAE0a,GAAG7b,GAAG,OAAOmB,GAAGvH,GAAE,GAAGoG,GAAGmB,CAAC,CAAC,SAAS2a,GAAEliB,EAAEoG,GAAG6b,GAAGjiB,KAAKiiB,GAAGjiB,GAAGoG,EAAE,CAAC,SAAS2L,KAAI,OAAmDoQ,EAAC,CAAC,SAAS5zB,GAAEyR,EAAEoG,GAAGA,IAAI7P,GAAE,WAAWyJ,EAAE0hB,EAAE,GAAG1hB,EAAEqD,EAAE,GAAGrD,EAAEgL,EAAE5E,EAAE,CAAC,SAAS0H,GAAE9N,GAAGoiB,GAAEpiB,GAAGA,EAAE+K,EAAEwN,QAAQ8J,IAAGriB,EAAE+K,EAAE,IAAI,CAAC,SAASqX,GAAEpiB,GAAGA,IAAImiB,KAAIA,GAAEniB,EAAEtS,EAAE,CAAC,SAASqW,GAAE/D,GAAG,OAAOmiB,GAAE,CAACpX,EAAE,GAAGrd,EAAEy0B,GAAEnO,EAAEhU,EAAEkiB,GAAE,EAAGnQ,EAAE,EAAE,CAAC,SAASsQ,GAAEriB,GAAG,IAAIoG,EAAEpG,EAAEshB,IAAG,IAAIlb,EAAE3Y,GAAG,IAAI2Y,EAAE3Y,EAAE2Y,EAAE7X,IAAI6X,EAAE0H,GAAE,CAAE,CAAC,SAASjL,GAAEuD,EAAEtJ,GAAGA,EAAEiV,EAAEjV,EAAEiO,EAAEvf,OAAO,IAAIiC,EAAEqP,EAAEiO,EAAE,GAAG6C,OAAE,IAASxH,GAAGA,IAAI3Y,EAAE,OAAOqP,EAAEkX,EAAEoO,GAAG7rB,GAAE,OAAO8rB,EAAEvlB,EAAEsJ,EAAEwH,GAAGA,GAAGngB,EAAE6zB,IAAGze,IAAIiL,GAAEhR,GAAGkD,GAAE,IAAIuH,GAAEnB,KAAKA,EAAEkc,GAAExlB,EAAEsJ,GAAGtJ,EAAEpP,GAAGgC,GAAEoN,EAAEsJ,IAAItJ,EAAE4kB,GAAGnrB,GAAE,WAAW+rB,EAAE70B,EAAE6zB,IAAG/Z,EAAEnB,EAAEtJ,EAAE4kB,EAAE5kB,EAAEuG,IAAI+C,EAAEkc,GAAExlB,EAAErP,EAAE,IAAIqgB,GAAEhR,GAAGA,EAAE4kB,GAAG5kB,EAAEkO,EAAElO,EAAE4kB,EAAE5kB,EAAEuG,GAAG+C,IAAImc,GAAEnc,OAAE,CAAM,CAAC,SAASkc,GAAEtiB,EAAEoG,EAAEmB,GAAG,GAAG1U,GAAEuT,GAAG,OAAOA,EAAE,IAAItJ,EAAEsJ,EAAEkb,IAAG,IAAIxkB,EAAE,OAAOrP,GAAE2Y,GAAE,SAAU3Y,EAAEmgB,GAAG,OAAO4U,GAAExiB,EAAElD,EAAEsJ,EAAE3Y,EAAEmgB,EAAErG,EAAG,IAAE,GAAInB,EAAE,GAAGtJ,EAAE0lB,IAAIxiB,EAAE,OAAOoG,EAAE,IAAItJ,EAAE+F,EAAE,OAAOnT,GAAEsQ,EAAElD,EAAEyK,GAAE,GAAIzK,EAAEyK,EAAE,IAAIzK,EAAE2lB,EAAE,CAAC3lB,EAAE2lB,GAAE,EAAG3lB,EAAE0lB,EAAEzQ,IAAI,IAAInE,EAAE,IAAI9Q,EAAErP,GAAG,IAAIqP,EAAErP,EAAEqP,EAAE8Q,EAAElgB,GAAEoP,EAAEkG,GAAGlG,EAAE8Q,EAAE8T,EAAE9T,EAAEtX,GAAE,EAAG,IAAIwG,EAAErP,IAAIi0B,EAAE,IAAIlwB,IAAIoc,GAAGA,EAAEkU,QAAQxrB,GAAE,GAAI7I,GAAEi0B,GAAE,SAAUtb,EAAE3Y,GAAG,OAAO+0B,GAAExiB,EAAElD,EAAE8Q,EAAExH,EAAE3Y,EAAE8Z,EAAEjR,EAAG,IAAG5G,GAAEsQ,EAAE4N,GAAE,GAAIrG,GAAGvH,EAAE0hB,GAAGnrB,GAAE,WAAWmsB,EAAE5lB,EAAEyK,EAAEvH,EAAE0hB,EAAE1hB,EAAEqD,EAAE,CAAC,OAAOvG,EAAE8Q,CAAC,CAAC,SAAS4U,GAAE1lB,EAAErP,EAAEmgB,EAAEtX,EAAEyT,EAAE1G,EAAE2H,GAAG,GAAoD,GAAEjB,GAAG,CAAC,IAAIgB,EAAEuX,GAAExlB,EAAEiN,EAAE1G,GAAG5V,GAAG,IAAIA,EAAEA,IAAIi0B,GAAEj0B,EAAEk1B,EAAErsB,GAAG+M,EAAE/V,OAAOgJ,QAAG,GAAQ,GAAG4X,GAAEN,EAAEtX,EAAEyU,IAAI,GAAEA,GAAG,OAAOjO,EAAEolB,GAAE,CAAE,MAAMlX,GAAG4C,EAAEnc,IAAIsY,GAAG,GAAGxC,GAAEwC,KAAKlX,GAAEkX,GAAG,CAAC,IAAIjN,EAAEkX,EAAE4O,GAAG9lB,EAAEiV,EAAE,EAAE,OAAOuQ,GAAExlB,EAAEiN,GAAGtc,GAAGA,EAAE+0B,EAAE90B,GAAGgC,GAAEoN,EAAEiN,EAAE,CAAC,CAAC,SAASra,GAAEsQ,EAAEoG,EAAEmB,QAAG,IAASA,IAAIA,GAAE,IAAKvH,EAAEtS,GAAGsS,EAAEgU,EAAE4O,GAAG5iB,EAAEkiB,GAAGnf,GAAEqD,EAAEmB,EAAE,CAAC,SAASH,GAAEpH,EAAEoG,GAAG,IAAImB,EAAEvH,EAAEshB,IAAG,OAAO/Z,EAAEwD,GAAExD,GAAGvH,GAAGoG,EAAE,CAAC,SAASqc,GAAEziB,EAAEoG,GAAG,GAAGA,KAAKpG,EAAE,IAAI,IAAIuH,EAAE3d,OAAO4I,eAAewN,GAAGuH,GAAG,CAAC,IAAIzK,EAAElT,OAAO2Q,yBAAyBgN,EAAEnB,GAAG,GAAGtJ,EAAE,OAAOA,EAAEyK,EAAE3d,OAAO4I,eAAe+U,EAAE,CAAC,CAAC,SAAS,GAAEvH,GAAGA,EAAE6C,IAAI7C,EAAE6C,GAAE,EAAG7C,EAAEtS,GAAG,GAAEsS,EAAEtS,GAAG,CAAC,SAASm1B,GAAE7iB,GAAGA,EAAE4N,IAAI5N,EAAE4N,EAAElgB,GAAEsS,EAAEuH,GAAG,CAAC,SAASmb,GAAE1iB,EAAEoG,EAAEmB,GAAG,IAAIzK,EAAE,GAAEsJ,GAAG7P,GAAE,UAAUusB,EAAE1c,EAAEmB,GAAGyD,GAAE5E,GAAG7P,GAAE,UAAUwsB,EAAE3c,EAAEmB,GAAGvH,EAAEoiB,EAAE,SAASpiB,EAAEoG,GAAG,IAAImB,EAAE7c,MAAMkH,QAAQoO,GAAGlD,EAAE,CAACrP,EAAE8Z,EAAE,EAAE,EAAEib,EAAEpc,EAAEA,EAAEoc,EAAEzQ,KAAIlP,GAAE,EAAG4f,GAAE,EAAGE,EAAE,CAAC,EAAEj1B,EAAE0Y,EAAEmB,EAAEvH,EAAEgD,EAAE,KAAK4K,EAAE,KAAKrf,EAAE,KAAKy0B,GAAE,GAAIv1B,EAAEqP,EAAE8Q,EAAEqV,GAAG1b,IAAI9Z,EAAE,CAACqP,GAAG8Q,EAAEpf,IAAI,IAAIkzB,EAAEwB,MAAMC,UAAU11B,EAAEmgB,GAAGtX,EAAEorB,EAAE0B,OAAOlV,EAAEwT,EAAE2B,MAAM,OAAOvmB,EAAEkG,EAAEkL,EAAEpR,EAAEvO,EAAE+H,EAAE4X,CAAC,CAA3M,CAA6M9H,EAAEmB,GAAGhR,GAAE,OAAO+sB,EAAEld,EAAEmB,GAAG,OAAOA,EAAEA,EAAEib,EAAEzQ,MAAKhH,EAAEte,KAAKqQ,GAAGA,CAAC,CAAC,SAAS6lB,GAAE7lB,GAAG,OAAO,GAAEA,IAAIkD,GAAE,GAAGlD,GAAG,SAASkD,EAAEoG,GAAG,IAAImB,GAAEnB,GAAG,OAAOA,EAAE,IAAItJ,EAAE4kB,EAAEtb,EAAEkb,IAAGvX,EAAE6D,GAAExH,GAAG,GAAGsb,EAAE,CAAC,IAAIA,EAAE7e,IAAI6e,EAAEj0B,EAAE,IAAI8I,GAAE,OAAOgtB,EAAE7B,IAAI,OAAOA,EAAEna,EAAEma,EAAEe,GAAE,EAAG3lB,EAAE8lB,GAAExc,EAAE2D,GAAG2X,EAAEe,GAAE,CAAE,MAAM3lB,EAAE8lB,GAAExc,EAAE2D,GAAG,OAAOtc,GAAEqP,GAAE,SAAUsJ,EAAEmB,GAAGma,GAAG,GAAEA,EAAEna,EAAEnB,KAAKmB,GAAG2G,GAAEpR,EAAEsJ,EAAEpG,EAAEuH,GAAI,IAAG,IAAIwC,EAAE,IAAIvY,IAAIsL,GAAGA,CAAC,CAAvN,CAAyNA,EAAE,CAAC,SAAS8lB,GAAE5iB,EAAEoG,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,IAAIpP,IAAIgJ,GAAG,KAAK,EAAE,OAAOtV,MAAM8F,KAAKwP,GAAG,OAAOtS,GAAEsS,EAAE,CAAC,SAAS8iB,KAAI,SAASvb,EAAEvH,EAAEoG,GAAG,IAAImB,EAAElE,EAAErD,GAAG,OAAOuH,EAAEA,EAAEsG,WAAWzH,EAAE/C,EAAErD,GAAGuH,EAAE,CAACsa,cAAa,EAAGhU,WAAWzH,EAAElR,IAAI,WAAW,IAAIkR,EAAE5c,KAAK83B,IAAG,OAAgD2B,GAAG/tB,IAAIkR,EAAEpG,EAAE,EAAErI,IAAI,SAASyO,GAAG,IAAImB,EAAE/d,KAAK83B,IAA6C2B,GAAGtrB,IAAI4P,EAAEvH,EAAEoG,EAAE,GAAGmB,CAAC,CAAC,SAASzK,EAAEkD,GAAG,IAAI,IAAIoG,EAAEpG,EAAExU,OAAO,EAAE4a,GAAG,EAAEA,IAAI,CAAC,IAAImB,EAAEvH,EAAEoG,GAAGkb,IAAG,IAAI/Z,EAAE1E,EAAE,OAAO0E,EAAE9Z,GAAG,KAAK,EAAE6I,EAAEiR,IAAI,GAAEA,GAAG,MAAM,KAAK,EAAEqG,EAAErG,IAAI,GAAEA,GAAG,CAAC,CAAC,SAASqG,EAAE5N,GAAG,IAAI,IAAIoG,EAAEpG,EAAEuH,EAAEA,EAAEvH,EAAEgD,EAAElG,EAAE2kB,GAAGla,GAAG9Z,EAAEqP,EAAEtR,OAAO,EAAEiC,GAAG,EAAEA,IAAI,CAAC,IAAImgB,EAAE9Q,EAAErP,GAAG,GAAGmgB,IAAI0T,GAAE,CAAC,IAAIhrB,EAAE8P,EAAEwH,GAAG,QAAG,IAAStX,IAAIorB,GAAEtb,EAAEwH,GAAG,OAAM,EAAG,IAAIM,EAAE3G,EAAEqG,GAAGvK,EAAE6K,GAAGA,EAAEoT,IAAG,GAAGje,EAAEA,EAAEkE,IAAIjR,GAAG,GAAE4X,EAAE5X,GAAG,OAAM,CAAE,CAAC,CAAC,IAAI0U,IAAI5E,EAAEkb,IAAG,OAAOxkB,EAAEtR,SAASi2B,GAAGrb,GAAG5a,QAAQwf,EAAE,EAAE,EAAE,CAAC,SAAS1U,EAAE0J,GAAG,IAAIoG,EAAEpG,EAAEgD,EAAE,GAAGoD,EAAE5a,SAASwU,EAAEuH,EAAE/b,OAAO,OAAM,EAAG,IAAI+b,EAAE3d,OAAO2Q,yBAAyB6L,EAAEA,EAAE5a,OAAO,GAAG,GAAG+b,IAAIA,EAAErS,IAAI,OAAM,EAAG,IAAI,IAAI4H,EAAE,EAAEA,EAAEsJ,EAAE5a,OAAOsR,IAAI,IAAIsJ,EAAEza,eAAemR,GAAG,OAAM,EAAG,OAAM,CAAE,CAA8C,IAAIuG,EAAE,CAAC,EAAE6e,GAAE,MAAM,CAACoB,EAAE,SAAStjB,EAAEoG,GAAG,IAAItJ,EAAEpS,MAAMkH,QAAQoO,GAAGvS,EAAE,SAASuS,EAAEoG,GAAG,GAAGpG,EAAE,CAAC,IAAI,IAAIlD,EAAEpS,MAAM0b,EAAE5a,QAAQiC,EAAE,EAAEA,EAAE2Y,EAAE5a,OAAOiC,IAAI7D,OAAOC,eAAeiT,EAAE,GAAGrP,EAAE8Z,EAAE9Z,GAAE,IAAK,OAAOqP,CAAC,CAAC,IAAI8Q,EAAEgU,GAAGxb,UAAUwH,EAAE0T,IAAG,IAAI,IAAII,EAAED,GAAG7T,GAAGtX,EAAE,EAAEA,EAAEorB,EAAEl2B,OAAO8K,IAAI,CAAC,IAAI4X,EAAEwT,EAAEprB,GAAGsX,EAAEM,GAAG3G,EAAE2G,EAAElO,KAAK4N,EAAEM,GAAGL,WAAW,CAAC,OAAOjkB,OAAOiD,OAAOjD,OAAO4I,eAAe4T,GAAGwH,EAAE,CAAtQ,CAAwQ9Q,EAAEkD,GAAG4N,EAAE,CAACngB,EAAEqP,EAAE,EAAE,EAAE0lB,EAAEpc,EAAEA,EAAEoc,EAAEzQ,KAAIlP,GAAE,EAAG4f,GAAE,EAAGE,EAAE,CAAC,EAAEj1B,EAAE0Y,EAAEmB,EAAIvE,EAAEvV,EAAEmgB,EAAE,KAAKE,GAAE,EAAGkV,GAAE,GAAI,OAAOp5B,OAAOC,eAAe4D,EAAE6zB,GAAE,CAACt3B,MAAM4jB,EAAEpT,UAAS,IAAK/M,CAAC,EAAE40B,EAAE,SAASriB,EAAEuH,EAAEqG,GAAGA,EAAE,GAAErG,IAAIA,EAAE+Z,IAAGkB,IAAIxiB,GAAGlD,EAAEkD,EAAE+K,IAAI/K,EAAE0hB,GAAG,SAAS1hB,EAAEoG,GAAG,GAAGA,GAAG,iBAAiBA,EAAE,CAAC,IAAImB,EAAEnB,EAAEkb,IAAG,GAAG/Z,EAAE,CAAC,IAAIzK,EAAEyK,EAAEA,EAAEqG,EAAErG,EAAEvE,EAAEkL,EAAE3G,EAAEob,EAAE5Y,EAAExC,EAAE9Z,EAAE,GAAG,IAAIsc,EAAEtc,GAAEmgB,GAAE,SAAUxH,GAAGA,IAAIkb,UAAI,IAASxkB,EAAEsJ,IAAIsb,GAAE5kB,EAAEsJ,GAAG8H,EAAE9H,IAAIpG,EAAE4N,EAAExH,KAAK8H,EAAE9H,IAAG,EAAG,GAAEmB,IAAK,IAAG9Z,GAAEqP,GAAE,SAAUkD,QAAG,IAAS4N,EAAE5N,IAAI0hB,GAAE9T,EAAE5N,KAAKkO,EAAElO,IAAG,EAAG,GAAEuH,GAAI,SAAQ,GAAG,IAAIwC,EAAE,CAAC,GAAGzT,EAAEiR,KAAK,GAAEA,GAAG2G,EAAE1iB,QAAO,GAAIoiB,EAAEpiB,OAAOsR,EAAEtR,OAAO,IAAI,IAAI6X,EAAEuK,EAAEpiB,OAAO6X,EAAEvG,EAAEtR,OAAO6X,IAAI6K,EAAE7K,IAAG,OAAQ,IAAI,IAAI2H,EAAElO,EAAEtR,OAAOwf,EAAE4C,EAAEpiB,OAAOwf,IAAIkD,EAAElD,IAAG,EAAG,IAAI,IAAID,EAAEvM,KAAKkC,IAAIkN,EAAEpiB,OAAOsR,EAAEtR,QAAQkC,EAAE,EAAEA,EAAEqd,EAAErd,IAAIkgB,EAAEjiB,eAAe+B,KAAKwgB,EAAExgB,IAAG,QAAI,IAASwgB,EAAExgB,IAAIsS,EAAE4N,EAAElgB,GAAG,CAAC,CAAC,CAAC,CAAxe,CAA0esS,EAAE+K,EAAE,IAAIjO,EAAEkD,EAAE+K,GAAG,EAAEwY,EAAE,SAASvjB,GAAG,OAAO,IAAIA,EAAEvS,EAAEmgB,EAAE5N,GAAG1J,EAAE0J,EAAE,GAAG,CAA00K,IAAIwjB,GAAErB,GAAEsB,GAAE,oBAAoB35B,QAAQ,iBAAiBA,OAAO,KAAK63B,GAAE,oBAAoB3qB,IAAI4P,GAAE,oBAAoBpV,IAAIkyB,GAAE,oBAAoBR,YAAO,IAASA,MAAMC,WAAW,oBAAoBQ,QAAQpB,GAAEkB,GAAE35B,OAAO85B,IAAI,mBAAmBJ,GAAE,CAAC,GAAG,kBAAiB,EAAGA,IAAGhC,GAAEiC,GAAE35B,OAAO85B,IAAI,mBAAmB,qBAAqBtC,GAAEmC,GAAE35B,OAAO85B,IAAI,eAAe,iBAAy2DrC,IAAt1D,oBAAoBz3B,QAAQA,OAAOqjB,SAAqzD,GAAGvjB,OAAO8B,UAAUiN,aAAY8oB,GAAG,oBAAoBkC,SAASA,QAAQE,QAAQF,QAAQE,aAAQ,IAASj6B,OAAOyD,sBAAsB,SAAS2S,GAAG,OAAOpW,OAAOyS,oBAAoB2D,GAAG1S,OAAO1D,OAAOyD,sBAAsB2S,GAAG,EAAEpW,OAAOyS,oBAAoBulB,GAAGh4B,OAAOk6B,2BAA2B,SAAS9jB,GAAG,IAAIoG,EAAE,CAAC,EAAE,OAAOqb,GAAGzhB,GAAGuY,SAAQ,SAAUhR,GAAGnB,EAAEmB,GAAG3d,OAAO2Q,yBAAyByF,EAAEuH,EAAG,IAAGnB,CAAC,EAAE6b,GAAG,CAAC,EAAEgB,GAAG,CAAC/tB,IAAI,SAAS8K,EAAEoG,GAAG,GAAGA,IAAIkb,GAAE,OAAOthB,EAAE,IAAIlD,EAAEiO,GAAE/K,GAAG,IAAI0hB,GAAE5kB,EAAEsJ,GAAG,OAAO,SAASpG,EAAEoG,EAAEmB,GAAG,IAAIzK,EAAErP,EAAEg1B,GAAErc,EAAEmB,GAAG,OAAO9Z,EAAE,UAAUA,EAAEA,EAAEzD,MAAM,QAAQ8S,EAAErP,EAAEyH,WAAM,IAAS4H,OAAE,EAAOA,EAAE3P,KAAK6S,EAAEgD,QAAG,CAAM,CAAlH,CAAoHhD,EAAElD,EAAEsJ,GAAG,IAAI3Y,EAAEqP,EAAEsJ,GAAG,OAAOpG,EAAEyiB,IAAIlb,GAAE9Z,GAAGA,EAAEA,IAAI2Z,GAAEpH,EAAEuH,EAAEnB,IAAIyc,GAAE7iB,GAAGA,EAAE4N,EAAExH,GAAGsc,GAAE1iB,EAAEwiB,EAAExO,EAAEvmB,EAAEuS,IAAIvS,CAAC,EAAEhC,IAAI,SAASuU,EAAEoG,GAAG,OAAOA,KAAK2E,GAAE/K,EAAE,EAAE6jB,QAAQ,SAAS7jB,GAAG,OAAO2jB,QAAQE,QAAQ9Y,GAAE/K,GAAG,EAAErI,IAAI,SAASqI,EAAEoG,EAAEmB,GAAG,IAAIzK,EAAE2lB,GAAE1X,GAAE/K,GAAGoG,GAAG,GAAG,MAAMtJ,OAAE,EAAOA,EAAEnF,IAAI,OAAOmF,EAAEnF,IAAIxK,KAAK6S,EAAEgD,EAAEuE,IAAG,EAAG,IAAIvH,EAAE6C,EAAE,CAAC,IAAIpV,EAAE2Z,GAAE2D,GAAE/K,GAAGoG,GAAGwH,EAAE,MAAMngB,OAAE,EAAOA,EAAE6zB,IAAG,GAAG1T,GAAGA,EAAErG,IAAIA,EAAE,OAAOvH,EAAE4N,EAAExH,GAAGmB,EAAEvH,EAAE2iB,EAAEvc,IAAG,GAAG,EAAG,GAAG,GAAEmB,EAAE9Z,UAAK,IAAS8Z,GAAGma,GAAE1hB,EAAEuH,EAAEnB,IAAI,OAAM,EAAGyc,GAAE7iB,GAAG,GAAEA,EAAE,CAAC,OAAOA,EAAE4N,EAAExH,KAAKmB,SAAI,IAASA,GAAGnB,KAAKpG,EAAE4N,IAAIvb,OAAO0L,MAAMwJ,IAAIlV,OAAO0L,MAAMiC,EAAE4N,EAAExH,MAAMpG,EAAE4N,EAAExH,GAAGmB,EAAEvH,EAAE2iB,EAAEvc,IAAG,IAAI,CAAE,EAAE2d,eAAe,SAAS/jB,EAAEoG,GAAG,YAAO,IAASgB,GAAEpH,EAAEuH,EAAEnB,IAAIA,KAAKpG,EAAEuH,GAAGvH,EAAE2iB,EAAEvc,IAAG,EAAGyc,GAAE7iB,GAAG,GAAEA,WAAWA,EAAE2iB,EAAEvc,GAAGpG,EAAE4N,UAAU5N,EAAE4N,EAAExH,IAAG,CAAE,EAAE7L,yBAAyB,SAASyF,EAAEoG,GAAG,IAAImB,EAAEwD,GAAE/K,GAAGlD,EAAE6mB,QAAQppB,yBAAyBgN,EAAEnB,GAAG,OAAOtJ,EAAE,CAACtC,UAAS,EAAGqnB,aAAa,IAAI7hB,EAAEvS,GAAG,WAAW2Y,EAAEyH,WAAW/Q,EAAE+Q,WAAW7jB,MAAMud,EAAEnB,IAAItJ,CAAC,EAAEjT,eAAe,WAAWmW,GAAE,GAAG,EAAExN,eAAe,SAASwN,GAAG,OAAOpW,OAAO4I,eAAewN,EAAEuH,EAAE,EAAEyc,eAAe,WAAWhkB,GAAE,GAAG,GAAGxR,GAAG,CAAC,EAAEf,GAAEw1B,IAAG,SAAUjjB,EAAEoG,GAAG5X,GAAGwR,GAAG,WAAW,OAAO5R,UAAU,GAAGA,UAAU,GAAG,GAAGgY,EAAErb,MAAMvB,KAAK4E,UAAU,CAAE,IAAGI,GAAGu1B,eAAe,SAAS3d,EAAEmB,GAAG,OAAqE/Y,GAAGmJ,IAAIxK,KAAK3D,KAAK4c,EAAEmB,OAAE,EAAO,EAAE/Y,GAAGmJ,IAAI,SAASyO,EAAEmB,EAAEzK,GAAG,OAAmFmmB,GAAGtrB,IAAIxK,KAAK3D,KAAK4c,EAAE,GAAGmB,EAAEzK,EAAEsJ,EAAE,GAAG,EAAE,IAAI6d,GAAG,WAAW,SAASnnB,EAAEsJ,GAAG,IAAItJ,EAAEtT,KAAKA,KAAK44B,EAAEsB,GAAEl6B,KAAKo5B,GAAE,EAAGp5B,KAAK06B,QAAQ,SAAS9d,EAAE3Y,EAAEmgB,GAAG,GAAG,mBAAmBxH,GAAG,mBAAmB3Y,EAAE,CAAC,IAAIi0B,EAAEj0B,EAAEA,EAAE2Y,EAAE,IAAI9P,EAAEwG,EAAE,OAAO,SAASkD,GAAG,IAAIoG,EAAE5c,UAAK,IAASwW,IAAIA,EAAE0hB,GAAG,IAAI,IAAIna,EAAEnZ,UAAU5C,OAAOsR,EAAEpS,MAAM6c,EAAE,EAAEA,EAAE,EAAE,GAAGqG,EAAE,EAAEA,EAAErG,EAAEqG,IAAI9Q,EAAE8Q,EAAE,GAAGxf,UAAUwf,GAAG,OAAOtX,EAAE4tB,QAAQlkB,GAAE,SAAUA,GAAG,IAAIuH,EAAE,OAAOA,EAAE9Z,GAAGN,KAAKpC,MAAMwc,EAAE,CAACnB,EAAEpG,GAAG1S,OAAOwP,GAAI,GAAE,CAAC,CAAC,IAAIoR,EAAE,GAAG,mBAAmBzgB,GAAGuS,GAAE,QAAG,IAAS4N,GAAG,mBAAmBA,GAAG5N,GAAE,GAAGuH,GAAEnB,GAAG,CAAC,IAAI2D,EAAEhG,GAAEjH,GAAGuG,EAAEqf,GAAE5lB,EAAEsJ,OAAE,GAAQ4E,GAAE,EAAG,IAAIkD,EAAEzgB,EAAE4V,GAAG2H,GAAE,CAAE,CAAC,QAAQA,EAAE8C,GAAE/D,GAAGqY,GAAErY,EAAE,CAAC,MAAM,oBAAoBoa,SAASjW,aAAaiW,QAAQjW,EAAEkW,MAAK,SAAUpkB,GAAG,OAAOzR,GAAEwb,EAAE6D,GAAG/K,GAAE7C,EAAE+J,EAAG,IAAE,SAAU/J,GAAG,MAAM8N,GAAE/D,GAAG/J,CAAE,KAAIzR,GAAEwb,EAAE6D,GAAG/K,GAAEqL,EAAEnE,GAAG,CAAC,IAAI3D,GAAG,iBAAiBA,EAAE,CAAC,QAAG,KAAU8H,EAAEzgB,EAAE2Y,MAAM8H,EAAE9H,GAAG8H,IAAIqU,KAAIrU,OAAE,GAAQpR,EAAE8lB,GAAG7f,GAAEmL,GAAE,GAAIN,EAAE,CAAC,IAAI7C,EAAE,GAAGrd,EAAE,GAAG6I,GAAE,WAAW+rB,EAAElc,EAAE8H,EAAEnD,EAAErd,GAAGkgB,EAAE7C,EAAErd,EAAE,CAAC,OAAOwgB,CAAC,CAAClO,GAAE,GAAGoG,EAAE,EAAE5c,KAAK66B,mBAAmB,SAASrkB,EAAEoG,GAAG,GAAG,mBAAmBpG,EAAE,OAAO,SAASoG,GAAG,IAAI,IAAImB,EAAEnZ,UAAU5C,OAAOiC,EAAE/C,MAAM6c,EAAE,EAAEA,EAAE,EAAE,GAAGqG,EAAE,EAAEA,EAAErG,EAAEqG,IAAIngB,EAAEmgB,EAAE,GAAGxf,UAAUwf,GAAG,OAAO9Q,EAAEunB,mBAAmBje,GAAE,SAAUA,GAAG,OAAOpG,EAAEjV,WAAM,EAAO,CAACqb,GAAG9Y,OAAOG,GAAI,GAAE,EAAE,IAAI8Z,EAAE9Z,EAAEmgB,EAAE9Q,EAAEonB,QAAQlkB,EAAEoG,GAAE,SAAUpG,EAAEoG,GAAGmB,EAAEvH,EAAEvS,EAAE2Y,CAAE,IAAG,MAAM,oBAAoB+d,SAASvW,aAAauW,QAAQvW,EAAEwW,MAAK,SAAUpkB,GAAG,MAAM,CAACA,EAAEuH,EAAE9Z,EAAG,IAAG,CAACmgB,EAAErG,EAAE9Z,EAAE,EAAE,kBAAkB,MAAM2Y,OAAE,EAAOA,EAAEke,aAAa96B,KAAK+6B,cAAcne,EAAEke,YAAY,kBAAkB,MAAMle,OAAE,EAAOA,EAAEoe,aAAah7B,KAAKi7B,cAAcre,EAAEoe,WAAW,CAAC,IAAI/2B,EAAEqP,EAAEpR,UAAU,OAAO+B,EAAEi3B,YAAY,SAAS5nB,GAAGyK,GAAEzK,IAAIkD,GAAE,GAAG,GAAElD,KAAKA,EAAE6lB,GAAE7lB,IAAI,IAAIrP,EAAEsW,GAAEva,MAAMokB,EAAE8U,GAAEl5B,KAAKsT,OAAE,GAAQ,OAAO8Q,EAAE0T,IAAG0B,GAAE,EAAGZ,GAAE30B,GAAGmgB,CAAC,EAAEngB,EAAEk3B,YAAY,SAASve,EAAEmB,GAAG,IAAiF9Z,GAA3E2Y,GAAGA,EAAEkb,KAA0EkB,EAAE,OAAOj0B,GAAEd,EAAE8Z,GAAG1E,QAAE,EAAOpV,EAAE,EAAEA,EAAEg3B,cAAc,SAASzkB,GAAGxW,KAAKo5B,EAAE5iB,CAAC,EAAEvS,EAAE82B,cAAc,SAASne,GAAGA,IAAIsd,IAAG1jB,GAAE,IAAIxW,KAAK44B,EAAEhc,CAAC,EAAE3Y,EAAEm3B,aAAa,SAAS5kB,EAAEuH,GAAG,IAAIzK,EAAE,IAAIA,EAAEyK,EAAE/b,OAAO,EAAEsR,GAAG,EAAEA,IAAI,CAAC,IAAIrP,EAAE8Z,EAAEzK,GAAG,GAAG,IAAIrP,EAAEsI,KAAKvK,QAAQ,YAAYiC,EAAEo3B,GAAG,CAAC7kB,EAAEvS,EAAEzD,MAAM,KAAK,CAAC,CAAC8S,GAAG,IAAIyK,EAAEA,EAAEna,MAAM0P,EAAE,IAAI,IAAI8Q,EAAErX,GAAE,WAAWuuB,EAAE,OAAO,GAAE9kB,GAAG4N,EAAE5N,EAAEuH,GAAG/d,KAAK06B,QAAQlkB,GAAE,SAAUA,GAAG,OAAO4N,EAAE5N,EAAEuH,EAAG,GAAE,EAAEzK,CAAC,CAAj7D,GAAq7DioB,GAAG,IAAId,GAAGl4B,GAAGg5B,GAAGb,QAAWa,GAAGV,mBAAmBW,KAAKD,IAAOA,GAAGN,cAAcO,KAAKD,IAAOA,GAAGR,cAAcS,KAAKD,IAAOA,GAAGH,aAAaI,KAAKD,IAAOA,GAAGL,YAAYM,KAAKD,IAAOA,GAAGJ,YAAYK,KAAKD,IAAI,YCAxljB,SAASE,GAAQrX,GAGf,OAAOqX,GAAU,mBAAqBn7B,QAAU,iBAAmBA,OAAOqjB,SAAW,SAAUS,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqB9jB,QAAU8jB,EAAEjV,cAAgB7O,QAAU8jB,IAAM9jB,OAAO4B,UAAY,gBAAkBkiB,CACpH,EAAGqX,GAAQrX,EACb,CCNA,SAASsX,GAAc3d,GACrB,IAAI9Z,ECFN,SAAqB8Z,EAAGnB,GACtB,GAAI,UAAY6e,GAAQ1d,KAAOA,EAAG,OAAOA,EACzC,IAAIzK,EAAIyK,EAAEzd,OAAOq7B,aACjB,QAAI,IAAWroB,EAAG,CAChB,IAAIrP,EAAIqP,EAAE3P,KAAKoa,EAAGnB,GAAK,WACvB,GAAI,UAAY6e,GAAQx3B,GAAI,OAAOA,EACnC,MAAM,IAAIpB,UAAU,+CACtB,CACA,OAAQ,WAAa+Z,EAAIpV,OAASqB,QAAQkV,EAC5C,CDPU4d,CAAY5d,EAAG,UACvB,MAAO,UAAY0d,GAAQx3B,GAAKA,EAAIA,EAAI,EAC1C,CEJA,SAAS,GAAgBqP,EAAGsJ,EAAGmB,GAC7B,OAAQnB,EAAI8e,GAAc9e,MAAOtJ,EAAIlT,OAAOC,eAAeiT,EAAGsJ,EAAG,CAC/Dpc,MAAOud,EACPsG,YAAY,EACZgU,cAAc,EACdrnB,UAAU,IACPsC,EAAEsJ,GAAKmB,EAAGzK,CACjB,CCPA,SAAS,GAAQA,EAAGsJ,GAClB,IAAImB,EAAI3d,OAAOmI,KAAK+K,GACpB,GAAIlT,OAAOyD,sBAAuB,CAChC,IAAIugB,EAAIhkB,OAAOyD,sBAAsByP,GACrCsJ,IAAMwH,EAAIA,EAAEjc,QAAO,SAAUyU,GAC3B,OAAOxc,OAAO2Q,yBAAyBuC,EAAGsJ,GAAGyH,UAC/C,KAAKtG,EAAE9a,KAAK1B,MAAMwc,EAAGqG,EACvB,CACA,OAAOrG,CACT,CACA,SAAS6d,GAAetoB,GACtB,IAAK,IAAIsJ,EAAI,EAAGA,EAAIhY,UAAU5C,OAAQ4a,IAAK,CACzC,IAAImB,EAAI,MAAQnZ,UAAUgY,GAAKhY,UAAUgY,GAAK,CAAC,EAC/CA,EAAI,EAAI,GAAQxc,OAAO2d,IAAI,GAAIgR,SAAQ,SAAUnS,GAC/C,GAAetJ,EAAGsJ,EAAGmB,EAAEnB,GACzB,IAAKxc,OAAOk6B,0BAA4Bl6B,OAAOy7B,iBAAiBvoB,EAAGlT,OAAOk6B,0BAA0Bvc,IAAM,GAAQ3d,OAAO2d,IAAIgR,SAAQ,SAAUnS,GAC7Ixc,OAAOC,eAAeiT,EAAGsJ,EAAGxc,OAAO2Q,yBAAyBgN,EAAGnB,GACjE,GACF,CACA,OAAOtJ,CACT,CCZA,SAASwoB,GAAuBC,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,iFACT,CAGA,IAAIC,GACuB,mBAAX17B,QAAyBA,OAAO27B,YAAc,eAS1DC,GAAe,WACjB,OAAOlnB,KAAKmnB,SAASzzB,SAAS,IAAIqY,UAAU,GAAGqb,MAAM,IAAIxzB,KAAK,IAChE,EAEIyzB,GAAc,CAChBC,KAAM,eAAiBJ,KACvBK,QAAS,kBAAoBL,KAC7BM,qBAAsB,WACpB,MAAO,+BAAiCN,IAC1C,GAOF,SAASxoB,GAAcpG,GACrB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAI4V,EAAQ5V,EAE4B,OAAjClN,OAAO4I,eAAeka,IAC3BA,EAAQ9iB,OAAO4I,eAAeka,GAGhC,OAAO9iB,OAAO4I,eAAesE,KAAS4V,CACxC,CAuFA,SAASuZ,GAAYC,EAASC,EAAgBC,GAC5C,IAAIC,EAEJ,GAA8B,mBAAnBF,GAAqD,mBAAbC,GAA+C,mBAAbA,GAAmD,mBAAjBh4B,UAAU,GAC/H,MAAM,IAAIsK,MAA8C4sB,GAAuB,IAQjF,GAL8B,mBAAnBa,QAAqD,IAAbC,IACjDA,EAAWD,EACXA,OAAiB73B,QAGK,IAAb83B,EAA0B,CACnC,GAAwB,mBAAbA,EACT,MAAM,IAAI1tB,MAA8C4sB,GAAuB,IAGjF,OAAOc,EAASH,GAATG,CAAsBF,EAASC,EACxC,CAEA,GAAuB,mBAAZD,EACT,MAAM,IAAIxtB,MAA8C4sB,GAAuB,IAGjF,IAAIgB,EAAiBJ,EACjBK,EAAeJ,EACfK,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBp5B,QAErC,CAQA,SAASgvB,IACP,GAAIsK,EACF,MAAM,IAAIhuB,MAA8C4sB,GAAuB,IAGjF,OAAOiB,CACT,CA0BA,SAASnzB,EAAU9G,GACjB,GAAwB,mBAAbA,EACT,MAAM,IAAIoM,MAA8C4sB,GAAuB,IAGjF,GAAIoB,EACF,MAAM,IAAIhuB,MAA8C4sB,GAAuB,IAGjF,IAAIsB,GAAe,EAGnB,OAFAD,IACAF,EAAch6B,KAAKH,GACZ,WACL,GAAKs6B,EAAL,CAIA,GAAIF,EACF,MAAM,IAAIhuB,MAA8C4sB,GAAuB,IAGjFsB,GAAe,EACfD,IACA,IAAI33B,EAAQy3B,EAAchf,QAAQnb,GAClCm6B,EAAcI,OAAO73B,EAAO,GAC5Bw3B,EAAmB,IAVnB,CAWF,CACF,CA4BA,SAAS5K,EAASkL,GAChB,IAAK5pB,GAAc4pB,GACjB,MAAM,IAAIpuB,MAA8C4sB,GAAuB,IAGjF,QAA2B,IAAhBwB,EAAOtuB,KAChB,MAAM,IAAIE,MAA8C4sB,GAAuB,IAGjF,GAAIoB,EACF,MAAM,IAAIhuB,MAA8C4sB,GAAuB,IAGjF,IACEoB,GAAgB,EAChBH,EAAeD,EAAeC,EAAcO,EAC9C,CAAE,QACAJ,GAAgB,CAClB,CAIA,IAFA,IAAIn5B,EAAYi5B,EAAmBC,EAE1Bh5B,EAAI,EAAGA,EAAIF,EAAU/B,OAAQiC,IAAK,EAEzCnB,EADeiB,EAAUE,KAE3B,CAEA,OAAOq5B,CACT,CA4EA,OAHAlL,EAAS,CACPpjB,KAAMqtB,GAAYC,QAEbO,EAAQ,CACbzK,SAAUA,EACVxoB,UAAWA,EACXgpB,SAAUA,EACV2K,eAnEF,SAAwBC,GACtB,GAA2B,mBAAhBA,EACT,MAAM,IAAItuB,MAA8C4sB,GAAuB,KAGjFgB,EAAiBU,EAKjBpL,EAAS,CACPpjB,KAAMqtB,GAAYE,SAEtB,IAuDSP,IA9CT,WACE,IAAIvO,EAEAgQ,EAAiB7zB,EACrB,OAAO6jB,EAAO,CASZ7jB,UAAW,SAAmB8zB,GAC5B,GAAwB,iBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAIxuB,MAA8C4sB,GAAuB,KAGjF,SAAS6B,IACHD,EAASE,MACXF,EAASE,KAAKhL,IAElB,CAIA,OAFA+K,IAEO,CACLE,YAFgBJ,EAAeE,GAInC,IACM3B,IAAgB,WACtB,OAAOh8B,IACT,EAAGytB,CACL,EAaqCoP,CACvC,CAsHA,SAASiB,GAAgBC,GAIvB,IAHA,IAAIC,EAAc59B,OAAOmI,KAAKw1B,GAC1BE,EAAgB,CAAC,EAEZh6B,EAAI,EAAGA,EAAI+5B,EAAYh8B,OAAQiC,IAAK,CAC3C,IAAI2D,EAAMo2B,EAAY/5B,GAElB,EAMyB,mBAAlB85B,EAASn2B,KAClBq2B,EAAcr2B,GAAOm2B,EAASn2B,GAElC,CAEA,IASIs2B,EATAC,EAAmB/9B,OAAOmI,KAAK01B,GAWnC,KAjEF,SAA4BF,GAC1B39B,OAAOmI,KAAKw1B,GAAUhP,SAAQ,SAAUnnB,GACtC,IAAI80B,EAAUqB,EAASn2B,GAKvB,QAA4B,IAJT80B,OAAQ53B,EAAW,CACpCkK,KAAMqtB,GAAYC,OAIlB,MAAM,IAAIptB,MAA8C4sB,GAAuB,KAGjF,QAEO,IAFIY,OAAQ53B,EAAW,CAC5BkK,KAAMqtB,GAAYG,yBAElB,MAAM,IAAIttB,MAA8C4sB,GAAuB,IAEnF,GACF,CAiDIsC,CAAmBH,EACrB,CAAE,MAAO3qB,GACP4qB,EAAsB5qB,CACxB,CAEA,OAAO,SAAqBmf,EAAO6K,GAKjC,QAJc,IAAV7K,IACFA,EAAQ,CAAC,GAGPyL,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbC,EAAY,CAAC,EAERC,EAAK,EAAGA,EAAKJ,EAAiBn8B,OAAQu8B,IAAM,CACnD,IAAIrT,EAAOiT,EAAiBI,GACxB7B,EAAUuB,EAAc/S,GACxBsT,EAAsB/L,EAAMvH,GAC5BuT,EAAkB/B,EAAQ8B,EAAqBlB,GAEnD,QAA+B,IAApBmB,EAAiC,CACzBnB,GAAUA,EAAOtuB,KAClC,MAAM,IAAIE,MAA8C4sB,GAAuB,IACjF,CAEAwC,EAAUpT,GAAQuT,EAClBJ,EAAaA,GAAcI,IAAoBD,CACjD,CAGA,OADAH,EAAaA,GAAcF,EAAiBn8B,SAAW5B,OAAOmI,KAAKkqB,GAAOzwB,QACtDs8B,EAAY7L,CAClC,CACF,CA8DA,SAASiM,KACP,IAAK,IAAIzT,EAAOrmB,UAAU5C,OAAQ28B,EAAQ,IAAIz9B,MAAM+pB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFyT,EAAMzT,GAAQtmB,UAAUsmB,GAG1B,OAAqB,IAAjByT,EAAM38B,OACD,SAAUgyB,GACf,OAAOA,CACT,EAGmB,IAAjB2K,EAAM38B,OACD28B,EAAM,GAGRA,EAAMxT,QAAO,SAAUre,EAAGC,GAC/B,OAAO,WACL,OAAOD,EAAEC,EAAExL,WAAM,EAAQqD,WAC3B,CACF,GACF,CAmBA,SAASg6B,KACP,IAAK,IAAI3T,EAAOrmB,UAAU5C,OAAQ68B,EAAc,IAAI39B,MAAM+pB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACtF2T,EAAY3T,GAAQtmB,UAAUsmB,GAGhC,OAAO,SAAUuR,GACf,OAAO,WACL,IAAItK,EAAQsK,EAAYl7B,WAAM,EAAQqD,WAElCk6B,EAAY,WACd,MAAM,IAAI5vB,MAA8C4sB,GAAuB,IACjF,EAEIiD,EAAgB,CAClBnM,SAAUT,EAAMS,SAChBR,SAAU,WACR,OAAO0M,EAAUv9B,WAAM,EAAQqD,UACjC,GAEEo6B,EAAQH,EAAYl2B,KAAI,SAAUs2B,GACpC,OAAOA,EAAWF,EACpB,IAEA,OADAD,EAAYJ,GAAQn9B,WAAM,EAAQy9B,EAAtBN,CAA6BvM,EAAMC,UACxC,GAAc,GAAc,CAAC,EAAGD,GAAQ,CAAC,EAAG,CACjDC,SAAU0M,GAEd,CACF,CACF,CC3rBA,SAASI,GAAsBC,GAqB7B,OAlBiB,SAAoB1R,GACnC,IAAI2E,EAAW3E,EAAK2E,SAChBQ,EAAWnF,EAAKmF,SACpB,OAAO,SAAUgL,GACf,OAAO,SAAUN,GAGf,MAAsB,mBAAXA,EAEFA,EAAOlL,EAAUQ,EAAUuM,GAI7BvB,EAAKN,EACd,CACF,CACF,CAGF,CAEA,IAAI8B,GAAQF,KAGZE,GAAMC,kBAAoBH,GAC1B,YC/BA,IACQI,GADJC,IACID,GAAgB,SAAU/lB,EAAGxM,GAI7B,OAHAuyB,GAAgBl/B,OAAOo6B,gBAClB,CAAEl3B,UAAW,cAAgBpC,OAAS,SAAUqY,EAAGxM,GAAKwM,EAAEjW,UAAYyJ,CAAG,GAC1E,SAAUwM,EAAGxM,GAAK,IAAK,IAAIwU,KAAKxU,EAAO3M,OAAO8B,UAAUC,eAAewB,KAAKoJ,EAAGwU,KAAIhI,EAAEgI,GAAKxU,EAAEwU,GAAI,EAC7F+d,GAAc/lB,EAAGxM,EAC5B,EACO,SAAUwM,EAAGxM,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIlK,UAAU,uBAAyB2E,OAAOuF,GAAK,iCAE7D,SAASyyB,IAAOx/B,KAAKmP,YAAcoK,CAAG,CADtC+lB,GAAc/lB,EAAGxM,GAEjBwM,EAAErX,UAAkB,OAAN6K,EAAa3M,OAAOiD,OAAO0J,IAAMyyB,EAAGt9B,UAAY6K,EAAE7K,UAAW,IAAIs9B,EACnF,GAEAC,GAA4C,SAAUC,EAASC,GAC/D,IAAsGjb,EAAGrb,EAAG0U,EAAGuG,EAA3GiE,EAAI,CAAEqX,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP9hB,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG+hB,KAAM,GAAIC,IAAK,IAChG,OAAOzb,EAAI,CAAEsZ,KAAMoC,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAX1/B,SAA0BgkB,EAAEhkB,OAAOqjB,UAAY,WAAa,OAAO3jB,IAAM,GAAIskB,EACvJ,SAAS0b,EAAKxpB,GAAK,OAAO,SAAUgL,GAAK,OACzC,SAAc6Z,GACV,GAAI3W,EAAG,MAAM,IAAI7hB,UAAU,mCAC3B,KAAO0lB,OACH,GAAI7D,EAAI,EAAGrb,IAAM0U,EAAY,EAARsd,EAAG,GAAShyB,EAAU,OAAIgyB,EAAG,GAAKhyB,EAAS,SAAO0U,EAAI1U,EAAU,SAAM0U,EAAEpa,KAAK0F,GAAI,GAAKA,EAAEu0B,SAAW7f,EAAIA,EAAEpa,KAAK0F,EAAGgyB,EAAG,KAAK4E,KAAM,OAAOliB,EAE3J,OADI1U,EAAI,EAAG0U,IAAGsd,EAAK,CAAS,EAARA,EAAG,GAAQtd,EAAEvd,QACzB66B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGtd,EAAIsd,EAAI,MACxB,KAAK,EAAc,OAAX9S,EAAEqX,QAAgB,CAAEp/B,MAAO66B,EAAG,GAAI4E,MAAM,GAChD,KAAK,EAAG1X,EAAEqX,QAASv2B,EAAIgyB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK9S,EAAEwX,IAAI9lB,MAAOsO,EAAEuX,KAAK7lB,MAAO,SACxC,QACI,KAAM8D,EAAIwK,EAAEuX,MAAM/hB,EAAIA,EAAE/b,OAAS,GAAK+b,EAAEA,EAAE/b,OAAS,KAAkB,IAAVq5B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE9S,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV8S,EAAG,MAActd,GAAMsd,EAAG,GAAKtd,EAAE,IAAMsd,EAAG,GAAKtd,EAAE,IAAM,CAAEwK,EAAEqX,MAAQvE,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAY9S,EAAEqX,MAAQ7hB,EAAE,GAAI,CAAEwK,EAAEqX,MAAQ7hB,EAAE,GAAIA,EAAIsd,EAAI,KAAO,CACpE,GAAItd,GAAKwK,EAAEqX,MAAQ7hB,EAAE,GAAI,CAAEwK,EAAEqX,MAAQ7hB,EAAE,GAAIwK,EAAEwX,IAAI98B,KAAKo4B,GAAK,KAAO,CAC9Dtd,EAAE,IAAIwK,EAAEwX,IAAI9lB,MAChBsO,EAAEuX,KAAK7lB,MAAO,SAEtBohB,EAAKsE,EAAKh8B,KAAK+7B,EAASnX,EAC5B,CAAE,MAAOjV,GAAK+nB,EAAK,CAAC,EAAG/nB,GAAIjK,EAAI,CAAG,CAAE,QAAUqb,EAAI3G,EAAI,CAAG,CACzD,GAAY,EAARsd,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE76B,MAAO66B,EAAG,GAAKA,EAAG,QAAK,EAAQ4E,MAAM,EAC9E,CAtBgDlrB,CAAK,CAACyB,EAAGgL,GAAK,CAAG,CAuBrE,EACI0e,GAAgD,SAAUC,EAAIn5B,GAC9D,IAAK,IAAI/C,EAAI,EAAGm8B,EAAKp5B,EAAKhF,OAAQ+C,EAAIo7B,EAAGn+B,OAAQiC,EAAIm8B,EAAIn8B,IAAKc,IAC1Do7B,EAAGp7B,GAAKiC,EAAK/C,GACjB,OAAOk8B,CACX,EACIE,GAAYjgC,OAAOC,eACnBigC,GAAalgC,OAAOy7B,iBACpB0E,GAAoBngC,OAAOk6B,0BAC3BkG,GAAsBpgC,OAAOyD,sBAC7B48B,GAAergC,OAAO8B,UAAUC,eAChCu+B,GAAetgC,OAAO8B,UAAU0T,qBAChC+qB,GAAkB,SAAUrzB,EAAK1F,EAAKpH,GAAS,OAAOoH,KAAO0F,EAAM+yB,GAAU/yB,EAAK1F,EAAK,CAAEyc,YAAY,EAAMgU,cAAc,EAAMrnB,UAAU,EAAMxQ,MAAOA,IAAW8M,EAAI1F,GAAOpH,CAAO,EACnLogC,GAAiB,SAAU9zB,EAAGC,GAC9B,IAAK,IAAI0X,KAAQ1X,IAAMA,EAAI,CAAC,GACpB0zB,GAAa98B,KAAKoJ,EAAG0X,IACrBkc,GAAgB7zB,EAAG2X,EAAM1X,EAAE0X,IACnC,GAAI+b,GACA,IAAK,IAAIjC,EAAK,EAAGsC,EAAKL,GAAoBzzB,GAAIwxB,EAAKsC,EAAG7+B,OAAQu8B,IAAM,CAC5D9Z,EAAOoc,EAAGtC,GACVmC,GAAa/8B,KAAKoJ,EAAG0X,IACrBkc,GAAgB7zB,EAAG2X,EAAM1X,EAAE0X,GACnC,CACJ,OAAO3X,CACX,EACIg0B,GAAgB,SAAUh0B,EAAGC,GAAK,OAAOuzB,GAAWxzB,EAAGyzB,GAAkBxzB,GAAK,EAC9Eg0B,GAAU,SAAUC,EAAQC,EAAaC,GACzC,OAAO,IAAIvG,SAAQ,SAAUwG,EAASC,GAClC,IAAIC,EAAY,SAAU7gC,GACtB,IACIuU,EAAKmsB,EAAUtD,KAAKp9B,GACxB,CACA,MAAO8S,GACH8tB,EAAO9tB,EACX,CACJ,EACIguB,EAAW,SAAU9gC,GACrB,IACIuU,EAAKmsB,EAAUK,MAAM/gC,GACzB,CACA,MAAO8S,GACH8tB,EAAO9tB,EACX,CACJ,EACIyB,EAAO,SAAU7O,GAAK,OAAOA,EAAE+5B,KAAOkB,EAAQj7B,EAAE1F,OAASm6B,QAAQwG,QAAQj7B,EAAE1F,OAAOo6B,KAAKyG,EAAWC,EAAW,EACjHvsB,GAAMmsB,EAAYA,EAAU3/B,MAAMy/B,EAAQC,IAAcrD,OAC5D,GACJ,EA4BI4D,GAAwC,oBAAX7e,QAA0BA,OAAO8e,qCAAuC9e,OAAO8e,qCAAuC,WACnJ,GAAyB,IAArB78B,UAAU5C,OAEd,MAA4B,iBAAjB4C,UAAU,GACV85B,GACJA,GAAQn9B,MAAM,KAAMqD,UAC/B,EACyC,oBAAX+d,QAA0BA,OAAO+e,8BAA+B/e,OAAO+e,6BAMrG,SAAS,GAAclhC,GACnB,GAAqB,iBAAVA,GAAgC,OAAVA,EAC7B,OAAO,EACX,IAAI0iB,EAAQ9iB,OAAO4I,eAAexI,GAClC,GAAc,OAAV0iB,EACA,OAAO,EAEX,IADA,IAAIye,EAAYze,EAC4B,OAArC9iB,OAAO4I,eAAe24B,IACzBA,EAAYvhC,OAAO4I,eAAe24B,GAEtC,OAAOze,IAAUye,CACrB,CAQA,SAASC,GAAa5yB,EAAM6yB,GACxB,SAASC,IAEL,IADA,IAAIxgC,EAAO,GACFi9B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj9B,EAAKi9B,GAAM35B,UAAU25B,GAEzB,GAAIsD,EAAe,CACf,IAAIE,EAAWF,EAActgC,WAAM,EAAQD,GAC3C,IAAKygC,EACD,MAAM,IAAI7yB,MAAM,0CAEpB,OAAO0xB,GAAeA,GAAe,CACjC5xB,KAAMA,EACN4hB,QAASmR,EAASnR,SACnB,SAAUmR,GAAY,CAAEC,KAAMD,EAASC,OAAS,UAAWD,GAAY,CAAErf,MAAOqf,EAASrf,OAChG,CACA,MAAO,CAAE1T,KAAMA,EAAM4hB,QAAStvB,EAAK,GACvC,CAIA,OAHAwgC,EAAcp5B,SAAW,WAAc,MAAO,GAAKsG,CAAM,EACzD8yB,EAAc9yB,KAAOA,EACrB8yB,EAAcG,MAAQ,SAAU3E,GAAU,OAAOA,EAAOtuB,OAASA,CAAM,EAChE8yB,CACX,CACA,SAASI,GAAS5E,GACd,OAAO,GAAcA,IAAW,SAAUA,CAC9C,CAsDA,IAAI6E,GAAiC,SAAUC,GAE3C,SAASD,IAEL,IADA,IAAI7gC,EAAO,GACFi9B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj9B,EAAKi9B,GAAM35B,UAAU25B,GAEzB,IAAI8D,EAAQD,EAAO7gC,MAAMvB,KAAMsB,IAAStB,KAExC,OADAI,OAAOo6B,eAAe6H,EAAOF,EAAgBjgC,WACtCmgC,CACX,CAyBA,OAlCA9C,GAAU4C,EAAiBC,GAU3BhiC,OAAOC,eAAe8hC,EAAiB7hC,OAAOgiC,QAAS,CACnD52B,IAAK,WACD,OAAOy2B,CACX,EACA9d,YAAY,EACZgU,cAAc,IAElB8J,EAAgBjgC,UAAU4B,OAAS,WAE/B,IADA,IAAIwC,EAAM,GACDi4B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj4B,EAAIi4B,GAAM35B,UAAU25B,GAExB,OAAO6D,EAAOlgC,UAAU4B,OAAOvC,MAAMvB,KAAMsG,EAC/C,EACA67B,EAAgBjgC,UAAUqgC,QAAU,WAEhC,IADA,IAAIj8B,EAAM,GACDi4B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj4B,EAAIi4B,GAAM35B,UAAU25B,GAExB,OAAmB,IAAfj4B,EAAItE,QAAgBd,MAAMkH,QAAQ9B,EAAI,IAC/B,IAAK67B,EAAgB3G,KAAKj6B,MAAM4gC,EAAiBjC,GAAc,MAAC,GAAS55B,EAAI,GAAGxC,OAAO9D,SAE3F,IAAKmiC,EAAgB3G,KAAKj6B,MAAM4gC,EAAiBjC,GAAc,MAAC,GAAS55B,EAAIxC,OAAO9D,QAC/F,EACOmiC,CACX,CApCoC,CAoClCjhC,OACEshC,GAA+B,SAAUJ,GAEzC,SAASI,IAEL,IADA,IAAIlhC,EAAO,GACFi9B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj9B,EAAKi9B,GAAM35B,UAAU25B,GAEzB,IAAI8D,EAAQD,EAAO7gC,MAAMvB,KAAMsB,IAAStB,KAExC,OADAI,OAAOo6B,eAAe6H,EAAOG,EAActgC,WACpCmgC,CACX,CAyBA,OAlCA9C,GAAUiD,EAAeJ,GAUzBhiC,OAAOC,eAAemiC,EAAeliC,OAAOgiC,QAAS,CACjD52B,IAAK,WACD,OAAO82B,CACX,EACAne,YAAY,EACZgU,cAAc,IAElBmK,EAActgC,UAAU4B,OAAS,WAE7B,IADA,IAAIwC,EAAM,GACDi4B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj4B,EAAIi4B,GAAM35B,UAAU25B,GAExB,OAAO6D,EAAOlgC,UAAU4B,OAAOvC,MAAMvB,KAAMsG,EAC/C,EACAk8B,EAActgC,UAAUqgC,QAAU,WAE9B,IADA,IAAIj8B,EAAM,GACDi4B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj4B,EAAIi4B,GAAM35B,UAAU25B,GAExB,OAAmB,IAAfj4B,EAAItE,QAAgBd,MAAMkH,QAAQ9B,EAAI,IAC/B,IAAKk8B,EAAchH,KAAKj6B,MAAMihC,EAAetC,GAAc,MAAC,GAAS55B,EAAI,GAAGxC,OAAO9D,SAEvF,IAAKwiC,EAAchH,KAAKj6B,MAAMihC,EAAetC,GAAc,MAAC,GAAS55B,EAAIxC,OAAO9D,QAC3F,EACOwiC,CACX,CApCkC,CAoChCthC,OACF,SAASuhC,GAAgBvjB,GACrB,OAAO,GAAYA,GAAO,GAAgBA,GAAK,WAC/C,IAAKA,CACT,CA4PA,SAASwjB,KACL,OAAO,SAAqC7hC,GACxC,OAGR,SAA8BA,QACV,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIggC,EAAKhgC,EAAQu+B,MAAOA,OAAe,IAAPyB,GAAuBA,EACnD8B,GAD4D9hC,EAAQ+hC,eAAiE/hC,EAAQgiC,kBAAuEhiC,EAAQiiC,mBAC1M,IAAIX,IACtB/C,KAZR,SAAmBl5B,GACf,MAAoB,kBAANA,CAClB,CAWY68B,CAAU3D,GAIVuD,EAAgB1/B,KAAK,GAAgBo8B,kBAAkBD,EAAMD,gBAH7DwD,EAAgB1/B,KAAK,KAMzB,EAuBJ,OAAO0/B,CACX,CAvCeK,CAAqBniC,EAChC,CACJ,CAwCA,SAASoiC,GAAepiC,GACpB,IAEIqiC,EAFAC,EAA8BT,KAC9B7B,EAAKhgC,GAAW,CAAC,EAAGuiC,EAAKvC,EAAGnE,QAASA,OAAiB,IAAP0G,OAAgB,EAASA,EAAIC,EAAKxC,EAAG5B,WAAYA,OAAoB,IAAPoE,EAAgBF,IAAgCE,EAAIC,EAAKzC,EAAG0C,SAAUA,OAAkB,IAAPD,GAAuBA,EAAIE,EAAK3C,EAAGlE,eAAgBA,OAAwB,IAAP6G,OAAgB,EAASA,EAAIC,EAAK5C,EAAG6C,UAAWA,OAAmB,IAAPD,OAAgB,EAASA,EAE3V,GAAuB,mBAAZ/G,EACPwG,EAAcxG,MAEb,KAAI,GAAcA,GAInB,MAAM,IAAIxtB,MAAM,4HAHhBg0B,EAAcpF,GAAgBpB,EAIlC,CACA,IAAIiH,EAAkB1E,EACS,mBAApB0E,IACPA,EAAkBA,EAAgBR,IAQtC,IAAIS,EAAqBhF,GAAgBr9B,WAAM,EAAQoiC,GACnDE,EAAenF,GACf6E,IACAM,EAAerC,GAAoBZ,GAAe,CAC9CkD,OAAO,GACY,iBAAbP,GAAyBA,KAEvC,IAAIQ,EAAmB,IAAIvB,GAAcoB,GACrCI,EAAiBD,EAQrB,OAPI7iC,MAAMkH,QAAQs7B,GACdM,EAAiB9D,GAAc,CAAC0D,GAAqBF,GAE3B,mBAAdA,IACZM,EAAiBN,EAAUK,IAGxBtH,GAAYyG,EAAavG,EADTkH,EAAatiC,WAAM,EAAQyiC,GAEtD,CAIA,SAASC,GAA8BC,GACnC,IAEIC,EAFAC,EAAa,CAAC,EACdC,EAAiB,GAEjBC,EAAU,CACVC,QAAS,SAAUC,EAAqB9H,GASpC,IAAI1tB,EAAsC,iBAAxBw1B,EAAmCA,EAAsBA,EAAoBx1B,KAC/F,IAAKA,EACD,MAAM,IAAIE,MAAM,gEAEpB,GAAIF,KAAQo1B,EACR,MAAM,IAAIl1B,MAAM,iFAGpB,OADAk1B,EAAWp1B,GAAQ0tB,EACZ4H,CACX,EACAG,WAAY,SAAUC,EAAShI,GAO3B,OADA2H,EAAephC,KAAK,CAAEyhC,QAASA,EAAShI,QAASA,IAC1C4H,CACX,EACAK,eAAgB,SAAUjI,GAOtB,OADAyH,EAAqBzH,EACd4H,CACX,GAGJ,OADAJ,EAAgBI,GACT,CAACF,EAAYC,EAAgBF,EACxC,CA4EA,SAASS,GAAY/jC,GACjB,IAAI4C,EAAO5C,EAAQ4C,KACnB,IAAKA,EACD,MAAM,IAAIyL,MAAM,+CAOpB,IA8CI21B,EA9CAC,EAA8C,mBAAxBjkC,EAAQikC,aAA6BjkC,EAAQikC,aAAerC,GAAgB5hC,EAAQikC,cAC1G/G,EAAWl9B,EAAQk9B,UAAY,CAAC,EAChCgH,EAAe3kC,OAAOmI,KAAKw1B,GAC3BiH,EAA0B,CAAC,EAC3BC,EAA0B,CAAC,EAC3BC,EAAiB,CAAC,EAiBtB,SAASC,IASL,IAAItE,EAAsC,mBAA1BhgC,EAAQukC,cAA+BnB,GAA8BpjC,EAAQukC,eAAiB,CAACvkC,EAAQukC,eAAgBhC,EAAKvC,EAAG,GAAIuE,OAAuB,IAAPhC,EAAgB,CAAC,EAAIA,EAAIC,EAAKxC,EAAG,GAAIwD,OAAwB,IAAPhB,EAAgB,GAAKA,EAAIC,EAAKzC,EAAG,GAAIsD,OAA4B,IAAPb,OAAgB,EAASA,EACxS+B,EAAoBzE,GAAeA,GAAe,CAAC,EAAGwE,GAAgBH,GAC1E,OAjHR,SAAuBH,EAAcQ,EAAsBjB,EAAgBF,QAChD,IAAnBE,IAA6BA,EAAiB,IASlD,IACIkB,EADA1E,EAAqC,mBAAzByE,EAAsCrB,GAA8BqB,GAAwB,CAACA,EAAsBjB,EAAgBF,GAAqBC,EAAavD,EAAG,GAAI2E,EAAsB3E,EAAG,GAAI4E,EAA0B5E,EAAG,GAEtP,GAhBJ,SAAyB36B,GACrB,MAAoB,mBAANA,CAClB,CAcQw/B,CAAgBZ,GAChBS,EAAkB,WAAc,OAAO9C,GAAgBqC,IAAiB,MAEvE,CACD,IAAIa,EAAuBlD,GAAgBqC,GAC3CS,EAAkB,WAAc,OAAOI,CAAsB,CACjE,CACA,SAASjJ,EAAQjK,EAAO6K,QACN,IAAV7K,IAAoBA,EAAQ8S,KAChC,IAAIK,EAAe1F,GAAc,CAC7BkE,EAAW9G,EAAOtuB,OACnBw2B,EAAoBr9B,QAAO,SAAU04B,GAEpC,OAAO6D,EADO7D,EAAG6D,SACFpH,EACnB,IAAG30B,KAAI,SAAUk4B,GAEb,OADeA,EAAGnE,OAEtB,KAIA,OAHmE,IAA/DkJ,EAAaz9B,QAAO,SAAU09B,GAAM,QAASA,CAAI,IAAG7jC,SACpD4jC,EAAe,CAACH,IAEbG,EAAaza,QAAO,SAAU2a,EAAeC,GAChD,GAAIA,EAAa,CAET,IAQI5kC,EATR,GAAI,GAAS2kC,GAGT,YAAe,KADX3kC,EAAS4kC,EADDD,EACoBxI,IAErBwI,EAEJ3kC,EAEN,GAAK,GAAa2kC,GAWnB,OAAO,GAAiBA,GAAe,SAAUE,GAC7C,OAAOD,EAAYC,EAAO1I,EAC9B,IAXA,QAAe,KADXn8B,EAAS4kC,EAAYD,EAAexI,IACjB,CACnB,GAAsB,OAAlBwI,EACA,OAAOA,EAEX,MAAM52B,MAAM,oEAChB,CACA,OAAO/N,CAOf,CACA,OAAO2kC,CACX,GAAGrT,EACP,CAEA,OADAiK,EAAQ6I,gBAAkBA,EACnB7I,CACX,CAiDeuJ,CAAcnB,GAAc,SAAUR,GACzC,IAAK,IAAI18B,KAAOy9B,EACZf,EAAQC,QAAQ38B,EAAKy9B,EAAkBz9B,IAE3C,IAAK,IAAI22B,EAAK,EAAG2H,EAAmB7B,EAAgB9F,EAAK2H,EAAiBlkC,OAAQu8B,IAAM,CACpF,IAAI7F,EAAIwN,EAAiB3H,GACzB+F,EAAQG,WAAW/L,EAAEgM,QAAShM,EAAEgE,QACpC,CACIyH,GACAG,EAAQK,eAAeR,EAE/B,GACJ,CAEA,OAzCAY,EAAahW,SAAQ,SAAUoX,GAC3B,IAEIJ,EACAK,EAHAC,EAA0BtI,EAASoI,GACnCn3B,EArBZ,SAAkBpL,EAAO0iC,GACrB,OAAO1iC,EAAQ,IAAM0iC,CACzB,CAmBmBC,CAAS9iC,EAAM0iC,GAGtB,YAAaE,GACbN,EAAcM,EAAwB3J,QACtC0J,EAAkBC,EAAwBG,SAG1CT,EAAcM,EAElBrB,EAAwBmB,GAAeJ,EACvCd,EAAwBj2B,GAAQ+2B,EAChCb,EAAeiB,GAAeC,EAAkBxE,GAAa5yB,EAAMo3B,GAAmBxE,GAAa5yB,EACvG,IA0BO,CACHvL,KAAMA,EACNi5B,QAAS,SAAUjK,EAAO6K,GAGtB,OAFKuH,IACDA,EAAWM,KACRN,EAASpS,EAAO6K,EAC3B,EACAmJ,QAASvB,EACTU,aAAcZ,EACdO,gBAAiB,WAGb,OAFKV,IACDA,EAAWM,KACRN,EAASU,iBACpB,EAER,CAiVA,IACImB,GAAS,SAAUrvB,QACN,IAATA,IAAmBA,EAAO,IAG9B,IAFA,IAAIuU,EAAK,GACL3nB,EAAIoT,EACDpT,KACH2nB,GANU,mEAMwB,GAAhB5W,KAAKmnB,SAAgB,GAE3C,OAAOvQ,CACX,EAEI+a,GAAmB,CACnB,OACA,UACA,QACA,QAEAC,GACA,SAAyBhW,EAASoR,GAC9BhiC,KAAK4wB,QAAUA,EACf5wB,KAAKgiC,KAAOA,CAChB,EAGA6E,GACA,SAAyBjW,EAASoR,GAC9BhiC,KAAK4wB,QAAUA,EACf5wB,KAAKgiC,KAAOA,CAChB,EAGA8E,GAAqB,SAAUtmC,GAC/B,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,CAE7C,IADA,IAAIumC,EAAc,CAAC,EACVxI,EAAK,EAAGyI,EAAqBL,GAAkBpI,EAAKyI,EAAmBhlC,OAAQu8B,IAAM,CAC1F,IAAI3yB,EAAWo7B,EAAmBzI,GACH,iBAApB/9B,EAAMoL,KACbm7B,EAAYn7B,GAAYpL,EAAMoL,GAEtC,CACA,OAAOm7B,CACX,CACA,MAAO,CAAE33B,QAAS5H,OAAOhH,GAC7B,GACuB,WACnB,SAASymC,EAAkBC,EAAYC,EAAgBtmC,GACnD,IAAIwgC,EAAYO,GAAasF,EAAa,cAAc,SAAUtW,EAASwW,EAAWpT,EAAKgO,GAAQ,MAAO,CACtGpR,QAASA,EACToR,KAAMlB,GAAcF,GAAe,CAAC,EAAGoB,GAAQ,CAAC,GAAI,CAChDhO,IAAKA,EACLoT,UAAWA,EACXC,cAAe,cAEnB,IACAC,EAAU1F,GAAasF,EAAa,YAAY,SAAUE,EAAWpT,EAAKgO,GAAQ,MAAO,CACzFpR,aAAS,EACToR,KAAMlB,GAAcF,GAAe,CAAC,EAAGoB,GAAQ,CAAC,GAAI,CAChDhO,IAAKA,EACLoT,UAAWA,EACXC,cAAe,YAEnB,IACA/F,EAAWM,GAAasF,EAAa,aAAa,SAAUxkB,EAAO0kB,EAAWpT,EAAKpD,EAASoR,GAAQ,MAAO,CAC3GpR,QAASA,EACTlO,OAAQ7hB,GAAWA,EAAQ0mC,gBAAkBT,IAAoBpkB,GAAS,YAC1Esf,KAAMlB,GAAcF,GAAe,CAAC,EAAGoB,GAAQ,CAAC,GAAI,CAChDhO,IAAKA,EACLoT,UAAWA,EACXI,oBAAqB5W,EACrByW,cAAe,WACfhxB,QAAmD,gBAAhC,MAATqM,OAAgB,EAASA,EAAMjf,MACzCgkC,UAAqD,oBAAhC,MAAT/kB,OAAgB,EAASA,EAAMjf,QAE/C,IAEAikC,EAAgC,oBAApBC,gBAAkCA,gBAAiC,WAC/E,SAASC,IACL5nC,KAAK8V,OAAS,CACVO,SAAS,EACTE,iBAAkB,WAClB,EACAsxB,cAAe,WACX,OAAO,CACX,EACAC,QAAS,WACT,EACAC,oBAAqB,WACrB,EACAC,YAAQ,EACRC,eAAgB,WAChB,EAER,CASA,OARAL,EAAQ1lC,UAAUgmC,MAAQ,WAClB,CAMR,EACON,CACX,CA3BkF,GAoHlF,OAAOxnC,OAAO21B,QAxFd,SAAuB/B,GACnB,OAAO,SAAU5B,EAAUQ,EAAUuV,GACjC,IAEIC,EAFAhB,GAAwB,MAAXvmC,OAAkB,EAASA,EAAQwnC,aAAexnC,EAAQwnC,YAAYrU,GAAO0S,KAC1F4B,EAAkB,IAAIZ,EAG1B,SAASQ,EAAMF,GACXI,EAAcJ,EACdM,EAAgBJ,OACpB,CACA,IAAIK,EAAW,WACX,OAAOxH,GAAQ/gC,KAAM,MAAM,WACvB,IAAIwoC,EAAIC,EAAIC,EAAaC,EAAiBC,EAAgBC,EAC1D,OAAOpJ,GAAYz/B,MAAM,SAAU6gC,GAC/B,OAAQA,EAAGjB,OACP,KAAK,EAGD,OAFAiB,EAAGf,KAAK78B,KAAK,CAAC,EAAG,EAAG,CAAE,IA2F1D,SAAoBzC,GAChB,OAAiB,OAAVA,GAAmC,iBAAVA,GAA4C,mBAAfA,EAAMo6B,IACvE,CA3FyCkO,CADLH,EAAyE,OAAtDH,EAAgB,MAAX3nC,OAAkB,EAASA,EAAQ4mC,gBAAqB,EAASe,EAAG7kC,KAAK9C,EAASmzB,EAAK,CAAEpB,SAAUA,EAAUuV,MAAOA,KAErI,CAAC,EAAaQ,GADoB,CAAC,EAAa,GAE3D,KAAK,EACDA,EAAkB9H,EAAGhB,OACrBgB,EAAGjB,MAAQ,EACf,KAAK,EACD,IAAwB,IAApB+I,GAA6BL,EAAgBxyB,OAAOO,QACpD,KAAM,CACF5S,KAAM,iBACN2L,QAAS,sDASjB,OALAw5B,EAAiB,IAAIjO,SAAQ,SAAUpS,EAAG6Y,GAAU,OAAOkH,EAAgBxyB,OAAOS,iBAAiB,SAAS,WAAc,OAAO6qB,EAAO,CACpI39B,KAAM,aACN2L,QAASg5B,GAAe,WACxB,GAAI,IACRhW,EAASkV,EAAQF,EAAWpT,EAAiE,OAA3DyU,EAAgB,MAAX5nC,OAAkB,EAASA,EAAQkoC,qBAA0B,EAASN,EAAG9kC,KAAK9C,EAAS,CAAEumC,UAAWA,EAAWpT,IAAKA,GAAO,CAAEpB,SAAUA,EAAUuV,MAAOA,MACxL,CAAC,EAAaxN,QAAQqO,KAAK,CAC1BJ,EACAjO,QAAQwG,QAAQgG,EAAenT,EAAK,CAChC5B,SAAUA,EACVQ,SAAUA,EACVuV,MAAOA,EACPf,UAAWA,EACXtxB,OAAQwyB,EAAgBxyB,OACxBoyB,MAAOA,EACPe,gBAAiB,SAAUzoC,EAAOwhC,GAC9B,OAAO,IAAI4E,GAAgBpmC,EAAOwhC,EACtC,EACAkH,iBAAkB,SAAU1oC,EAAOwhC,GAC/B,OAAO,IAAI6E,GAAgBrmC,EAAOwhC,EACtC,KACApH,MAAK,SAAUz5B,GACf,GAAIA,aAAkBylC,GAClB,MAAMzlC,EAEV,OAAIA,aAAkB0lC,GACXxF,EAAUlgC,EAAOyvB,QAASwW,EAAWpT,EAAK7yB,EAAO6gC,MAErDX,EAAUlgC,EAAQimC,EAAWpT,EACxC,OAEZ,KAAK,EAED,OADA0U,EAAc7H,EAAGhB,OACV,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAgJ,EAAQhI,EAAGhB,OACX6I,EAAcG,aAAiBjC,GAAkBtF,EAAS,KAAM8F,EAAWpT,EAAK6U,EAAMjY,QAASiY,EAAM7G,MAAQV,EAASuH,EAAOzB,EAAWpT,GACjI,CAAC,EAAa,GACzB,KAAK,EAKD,OAJenzB,IAAYA,EAAQsoC,4BAA8B7H,EAASW,MAAMyG,IAAgBA,EAAY1G,KAAKyF,WAE7GrV,EAASsW,GAEN,CAAC,EAAcA,GAElC,GACJ,GACJ,CAnEe,GAoEf,OAAOtoC,OAAO21B,OAAOwS,EAAU,CAC3BL,MAAOA,EACPd,UAAWA,EACXpT,IAAKA,EACLoV,OAAQ,WACJ,OAAOb,EAAS3N,KAAKyO,GACzB,GAER,CACJ,GACoC,CAChC/B,QAASA,EACThG,SAAUA,EACVD,UAAWA,EACX6F,WAAYA,GAEpB,CACAD,EAAkB/Q,UAAY,WAAc,OAAO+Q,CAAmB,CAEzE,CA5JsB,GA6JvB,SAASoC,GAAa/L,GAClB,GAAIA,EAAO0E,MAAQ1E,EAAO0E,KAAKwF,kBAC3B,MAAMlK,EAAO1M,QAEjB,GAAI0M,EAAO5a,MACP,MAAM4a,EAAO5a,MAEjB,OAAO4a,EAAO1M,OAClB,CAwIA,IAAI0Y,GAAiB,SAAU3oC,EAAM4oC,GACjC,GAAoB,mBAAT5oC,EACP,MAAM,IAAIkC,UAAU0mC,EAAW,qBAEvC,EACI,GAAO,WACX,EACIC,GAAiB,SAAUjB,EAAUkB,GAGrC,YAFgB,IAAZA,IAAsBA,EAAU,IACpClB,EAASmB,MAAMD,GACRlB,CACX,EACIoB,GAAyB,SAAUC,EAAaC,GAEhD,OADAD,EAAYrzB,iBAAiB,QAASszB,EAAU,CAAEpnC,MAAM,IACjD,WAAc,OAAOmnC,EAAY7B,oBAAoB,QAAS8B,EAAW,CACpF,EACIC,GAA4B,SAAUxB,EAAiBN,GACvD,IAAIlyB,EAASwyB,EAAgBxyB,OACzBA,EAAOO,UAGL,WAAYP,GACd1V,OAAOC,eAAeyV,EAAQ,SAAU,CACpCuO,YAAY,EACZ7jB,MAAOwnC,EACP3P,cAAc,EACdrnB,UAAU,IAIlBs3B,EAAgBJ,MAAMF,GAC1B,EAGIllC,GAAW,WACXinC,GAAY,YACZC,GAAY,YACZC,GAAgB,QAAUD,GAC1BE,GAAgB,QAAUH,GAC1BI,GAAoBrnC,GAAW,IAAMknC,GACrCI,GAAoBtnC,GAAW,IAAMinC,GACrCM,GACA,SAAwBtO,GACpB/7B,KAAK+7B,KAAOA,EACZ/7B,KAAKyD,KAAO,iBACZzD,KAAKoP,QAAUk7B,QAAaN,GAAY,aAAejO,EAAO,GAClE,EAIAwO,GAAiB,SAAUz0B,GAC3B,GAAIA,EAAOO,QACP,MAAM,IAAIg0B,GAAev0B,EAAOkyB,OAExC,EACA,SAASwC,GAAe10B,EAAQyyB,GAC5B,IAAIkC,EAAU,GACd,OAAO,IAAI9P,SAAQ,SAAUwG,EAASC,GAClC,IAAIsJ,EAAkB,WAAc,OAAOtJ,EAAO,IAAIiJ,GAAev0B,EAAOkyB,QAAU,EAClFlyB,EAAOO,QACPq0B,KAGJD,EAAUd,GAAuB7zB,EAAQ40B,GACzCnC,EAASoC,SAAQ,WAAc,OAAOF,GAAW,IAAG7P,KAAKuG,EAASC,GACtE,IAAGuJ,SAAQ,WACPF,EAAU,EACd,GACJ,CACA,IA6BIG,GAAc,SAAU90B,GACxB,OAAO,SAAUyyB,GACb,OAAOiB,GAAegB,GAAe10B,EAAQyyB,GAAU3N,MAAK,SAAUiQ,GAElE,OADAN,GAAez0B,GACR+0B,CACX,IACJ,CACJ,EACIC,GAAc,SAAUh1B,GACxB,IAAIi1B,EAAQH,GAAY90B,GACxB,OAAO,SAAUk1B,GACb,OAAOD,EAAM,IAAIpQ,SAAQ,SAAUwG,GAAW,OAAO/qB,WAAW+qB,EAAS6J,EAAY,IACzF,CACJ,EAEI,GAAS5qC,OAAO21B,OAChBkV,GAAqB,CAAC,EACtBC,GAAM,qBACNC,GAAa,SAAUC,EAAmBC,GAE1C,OAAO,SAAUC,EAAcC,GAC3BjC,GAAegC,EAAc,gBAC7B,IAH4BE,EAGxBC,EAAuB,IAAI9D,gBAHH6D,EAIZC,EAJiC9B,GAAuByB,GAAmB,WAAc,OAAOtB,GAA0B0B,EAAYJ,EAAkBpD,OAAS,IAKjL,IArDgB0D,EAAOC,EAqDnBxqC,GArDYuqC,EAqDK,WAAc,OAAO3K,QAAQ,EAAQ,MAAM,WAC5D,IAAI6K,EACJ,OAAOnM,GAAYz/B,MAAM,SAAU6gC,GAC/B,OAAQA,EAAGjB,OACP,KAAK,EAGD,OAFA2K,GAAea,GACfb,GAAekB,EAAqB31B,QAC7B,CAAC,EAAaw1B,EAAa,CAC1BP,MAAOH,GAAYa,EAAqB31B,QACxC+1B,MAAOf,GAAYW,EAAqB31B,QACxCA,OAAQ21B,EAAqB31B,UAEzC,KAAK,EAGD,OAFA81B,EAAU/K,EAAGhB,OACb0K,GAAekB,EAAqB31B,QAC7B,CAAC,EAAc81B,GAElC,GACJ,GAAI,EAvEmBD,EAuEhB,WAAc,OAAO7B,GAA0B2B,EAAsBvB,GAAgB,EAvEnDnJ,QAAQ,EAAQ,MAAM,WACnE,IAAW+K,EACX,OAAOrM,GAAYz/B,MAAM,SAAU6gC,GAC/B,OAAQA,EAAGjB,OACP,KAAK,EAED,OADAiB,EAAGf,KAAK78B,KAAK,CAAC,EAAG,EAAG,EAAG,IAChB,CAAC,EAAa03B,QAAQwG,WACjC,KAAK,EAED,OADAN,EAAGhB,OACI,CAAC,EAAa6L,KACzB,KAAK,EAED,MAAO,CAAC,EAAc,CACdK,OAAQ,KACRvrC,MAHAqgC,EAAGhB,SAKf,KAAK,EAED,MAAO,CAAC,EAAc,CACdkM,QAFRD,EAAUjL,EAAGhB,kBAEsBwK,GAAiB,YAAc,WAC1D3nB,MAAOopB,IAEnB,KAAK,EAED,OADW,MAAXH,GAA2BA,IACpB,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,KA+CQ,OAHY,MAARJ,OAAe,EAASA,EAAKS,WAC7BX,EAAuBpoC,KAAK9B,GAEzB,CACHA,OAAQypC,GAAYQ,EAAZR,CAA+BzpC,GACvCQ,OAAQ,WACJmoC,GAA0B2B,EAAsBxB,GACpD,EAER,CACJ,EACIgC,GAAoB,SAAUC,EAAgBp2B,GA+C9C,OAAO,SAAUq2B,EAAWC,GAAW,OAAO5C,GA9CnC,SAAU2C,EAAWC,GAAW,OAAOrL,QAAQ,EAAQ,MAAM,WACpE,IAAIlD,EAAawO,EAAcC,EAAUzB,EACzC,OAAOpL,GAAYz/B,MAAM,SAAU6gC,GAC/B,OAAQA,EAAGjB,OACP,KAAK,EACD2K,GAAez0B,GACf+nB,EAAc,WACd,EACAwO,EAAe,IAAI1R,SAAQ,SAAUwG,EAASC,GAC1C,IAAImL,EAAgBL,EAAe,CAC/BC,UAAWA,EACXK,OAAQ,SAAUlP,EAAQmP,GACtBA,EAAY5O,cACZsD,EAAQ,CACJ7D,EACAmP,EAAY7Z,WACZ6Z,EAAYC,oBAEpB,IAEJ7O,EAAc,WACV0O,IACAnL,GACJ,CACJ,IACAkL,EAAW,CACPD,GAEW,MAAXD,GACAE,EAASrpC,KAAK,IAAI03B,SAAQ,SAAUwG,GAAW,OAAO/qB,WAAW+qB,EAASiL,EAAS,KAAO,KAE9FvL,EAAGjB,MAAQ,EACf,KAAK,EAED,OADAiB,EAAGf,KAAK78B,KAAK,CAAC,EAAG,CAAE,EAAG,IACf,CAAC,EAAaunC,GAAe10B,EAAQ6kB,QAAQqO,KAAKsD,KAC7D,KAAK,EAGD,OAFAzB,EAAShK,EAAGhB,OACZ0K,GAAez0B,GACR,CAAC,EAAc+0B,GAC1B,KAAK,EAED,OADAhN,IACO,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,CACyD8O,CAAKR,EAAWC,GAAW,CAC5F,EACIQ,GAA4B,SAAU/rC,GACtC,IAAImO,EAAOnO,EAAQmO,KAAM8yB,EAAgBjhC,EAAQihC,cAAe4C,EAAU7jC,EAAQ6jC,QAASyH,EAAYtrC,EAAQsrC,UAAWK,EAAS3rC,EAAQ2rC,OAC3I,GAAIx9B,EACAm9B,EAAYvK,GAAa5yB,GAAMizB,WAE9B,GAAIH,EACL9yB,EAAO8yB,EAAc9yB,KACrBm9B,EAAYrK,EAAcG,WAEzB,GAAIyC,EACLyH,EAAYzH,OAEX,IAAIyH,EAGL,MAAM,IAAIj9B,MAAM,2FAGpB,OADAo6B,GAAekD,EAAQ,oBAChB,CAAEL,UAAWA,EAAWn9B,KAAMA,EAAMw9B,OAAQA,EACvD,EAgBIK,GAAwB,SAAUpgB,GAClCA,EAAM6a,QAAQvY,SAAQ,SAAUyc,GAC5B1B,GAA0B0B,EAAYrB,GAC1C,GACJ,EAOI2C,GAAoB,SAAUC,EAAcC,EAAeC,GAC3D,IACIF,EAAaC,EAAeC,EAChC,CACA,MAAOC,GACH92B,YAAW,WACP,MAAM82B,CACV,GAAG,EACP,CACJ,EACIxqC,GAAck/B,GAAasJ,GAAM,QACjCiC,GAAoBvL,GAAasJ,GAAM,cACvCrmC,GAAiB+8B,GAAasJ,GAAM,WACpCkC,GAAsB,WAEtB,IADA,IAAI9rC,EAAO,GACFi9B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj9B,EAAKi9B,GAAM35B,UAAU25B,GAEzB8O,QAAQ3qB,MAAMnhB,MAAM8rC,QAASnN,GAAc,CAACgL,GAAM,UAAW5pC,GACjE,EACA,SAASgsC,GAAyBC,GAC9B,IAAIlL,EAAQriC,UACc,IAAtButC,IAAgCA,EAAoB,CAAC,GACzD,IAAIC,EAAc,IAAIhgC,IAClB26B,EAAQoF,EAAkBpF,MAAOtH,EAAK0M,EAAkB9D,QAASA,OAAiB,IAAP5I,EAAgBuM,GAAsBvM,EACrHyI,GAAeG,EAAS,WACxB,IAUIgE,EAAoB,SAAUC,GAC9B,IAAK,IAAInP,EAAK,EAAGsC,EAAK3/B,MAAM8F,KAAKwmC,EAAYphC,UAAWmyB,EAAKsC,EAAG7+B,OAAQu8B,IAAM,CAC1E,IAAI9R,EAAQoU,EAAGtC,GACf,GAAImP,EAAWjhB,GACX,OAAOA,CAEf,CAEJ,EACIyf,EAAiB,SAAUrrC,GAC3B,IAAI4rB,EAAQghB,GAAkB,SAAUE,GAAiB,OAAOA,EAAcnB,SAAW3rC,EAAQ2rC,MAAQ,IAIzG,OAHK/f,IACDA,EA1Ec,SAAU5rB,GAChC,IAAIggC,EAAK+L,GAA0B/rC,GAAUmO,EAAO6xB,EAAG7xB,KAAMm9B,EAAYtL,EAAGsL,UAAWK,EAAS3L,EAAG2L,OAYnG,MAVY,CACR5gB,GAFK8a,KAGL8F,OAAQA,EACRx9B,KAAMA,EACNm9B,UAAWA,EACX7E,QAAS,IAAIt/B,IACb61B,YAAa,WACT,MAAM,IAAI3uB,MAAM,8BACpB,EAGR,CA4DoB0+B,CAAoB/sC,IAtBlB,SAAU4rB,GAGxB,OAFAA,EAAMoR,YAAc,WAAc,OAAO2P,EAAY91B,OAAO+U,EAAMb,GAAK,EACvE4hB,EAAYr/B,IAAIse,EAAMb,GAAIa,GACnB,SAAUohB,GACbphB,EAAMoR,eACe,MAAjBgQ,OAAwB,EAASA,EAAcC,eAC/CjB,GAAsBpgB,EAE9B,CACJ,CAeWshB,CAAYthB,EACvB,EACI8f,EAAgB,SAAU1rC,GAC1B,IAAIggC,EAAK+L,GAA0B/rC,GAAUmO,EAAO6xB,EAAG7xB,KAAMw9B,EAAS3L,EAAG2L,OAAQL,EAAYtL,EAAGsL,UAC5F1f,EAAQghB,GAAkB,SAAUO,GAEpC,OAD2C,iBAATh/B,EAAoBg/B,EAAOh/B,OAASA,EAAOg/B,EAAO7B,YAAcA,IACnE6B,EAAOxB,SAAWA,CACrD,IAOA,OANI/f,IACAA,EAAMoR,cACFh9B,EAAQitC,cACRjB,GAAsBpgB,MAGrBA,CACb,EACIwhB,EAAiB,SAAUxhB,EAAO6Q,EAAQ4Q,EAAKxB,GAAoB,OAAO3L,GAAQsB,EAAO,MAAM,WAC/F,IAAI8L,EAAwBxB,EAAMyB,EAAkBC,EACpD,OAAO5O,GAAYz/B,MAAM,SAAU6gC,GAC/B,OAAQA,EAAGjB,OACP,KAAK,EACDuO,EAAyB,IAAIxG,gBAC7BgF,EAAOV,GAAkBC,EAAgBiC,EAAuBr4B,QAChEs4B,EAAmB,GACnBvN,EAAGjB,MAAQ,EACf,KAAK,EAGD,OAFAiB,EAAGf,KAAK78B,KAAK,CAAC,EAAG,EAAG,EAAG,IACvBwpB,EAAM6a,QAAQr/B,IAAIkmC,GACX,CAAC,EAAaxT,QAAQwG,QAAQ1U,EAAM+f,OAAOlP,EAAQ,GAAO,CAAC,EAAG4Q,EAAK,CAClExB,iBAAkBA,EAClBjF,UAAW,SAAU0E,EAAWC,GAAW,OAAOO,EAAKR,EAAWC,GAASxR,KAAKtrB,QAAU,EAC1Fq9B,KAAMA,EACNd,MAAOf,GAAYqD,EAAuBr4B,QAC1Ci1B,MAAOH,GAAYuD,EAAuBr4B,QAC1CqyB,MAAOA,EACPryB,OAAQq4B,EAAuBr4B,OAC/Bw4B,KAAMnD,GAAWgD,EAAuBr4B,OAAQs4B,GAChDvQ,YAAapR,EAAMoR,YACnBj0B,UAAW,WACP4jC,EAAYr/B,IAAIse,EAAMb,GAAIa,EAC9B,EACAogB,sBAAuB,WACnBpgB,EAAM6a,QAAQvY,SAAQ,SAAUyc,EAAYjjB,EAAGpa,GACvCq9B,IAAe2C,IACfrE,GAA0B0B,EAAYrB,IACtCh8B,EAAIuJ,OAAO8zB,GAEnB,GACJ,OAEZ,KAAK,EAED,OADA3K,EAAGhB,OACI,CAAC,EAAa,GACzB,KAAK,EAOD,OANAwO,EAAkBxN,EAAGhB,kBACYwK,IAC7ByC,GAAkBrD,EAAS4E,EAAiB,CACxCE,SAAU,WAGX,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa5T,QAAQ6T,WAAWJ,IAChD,KAAK,EAID,OAHAvN,EAAGhB,OACHiK,GAA0BqE,EAAwB/D,IAClD3d,EAAM6a,QAAQ5vB,OAAOy2B,GACd,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACAM,EA/H4B,SAAUjB,GAC1C,OAAO,WACHA,EAAYze,QAAQ8d,IACpBW,EAAYlV,OAChB,CACJ,CA0HkCoW,CAA8BlB,GAoD5D,MAAO,CACHvO,WApDa,SAAUiP,GAAO,OAAO,SAAUtQ,GAAQ,OAAO,SAAUN,GACxE,IAAK4E,GAAS5E,GACV,OAAOM,EAAKN,GAEhB,GAAI56B,GAAYu/B,MAAM3E,GAClB,OAAO4O,EAAe5O,EAAO1M,SAEjC,IAAIuc,GAAkBlL,MAAM3E,GAA5B,CAIA,GAAIz4B,GAAeo9B,MAAM3E,GACrB,OAAOiP,EAAcjP,EAAO1M,SAEhC,IAOIzvB,EAPAwtC,EAAgBT,EAAItb,WACpB8Z,EAAmB,WACnB,GAAIiC,IAAkB1D,GAClB,MAAM,IAAI/7B,MAAMg8B,GAAM,uDAE1B,OAAOyD,CACX,EAEA,IAEI,GADAxtC,EAASy8B,EAAKN,GACVkQ,EAAYn2B,KAAO,EAGnB,IAFA,IAAI0lB,EAAemR,EAAItb,WACnBgc,EAAkB1tC,MAAM8F,KAAKwmC,EAAYphC,UACpCmyB,EAAK,EAAGsQ,EAAoBD,EAAiBrQ,EAAKsQ,EAAkB7sC,OAAQu8B,IAAM,CACvF,IAAI9R,EAAQoiB,EAAkBtQ,GAC1BuQ,GAAc,EAClB,IACIA,EAAcriB,EAAM0f,UAAU7O,EAAQP,EAAc4R,EACxD,CACA,MAAOI,GACHD,GAAc,EACdhC,GAAkBrD,EAASsF,EAAgB,CACvCR,SAAU,aAElB,CACKO,GAGLb,EAAexhB,EAAO6Q,EAAQ4Q,EAAKxB,EACvC,CAER,CACA,QACIiC,EAAgB1D,EACpB,CACA,OAAO9pC,CAvCP,CAFIstC,GA0CR,CAAG,CAAG,EAGFvC,eAAgBA,EAChBK,cAAeA,EACfyC,eAAgBP,EAExB,CAEA,IAQIQ,GARAC,GAAmB,gBACnBC,GAAqB,WAAc,OAAO,SAAUve,GACpD,IAAIiQ,EACJ,MAAO,CACHjQ,QAASA,EACToR,MAAOnB,EAAK,CAAC,EAAGA,EAAGqO,KAAoB,EAAMrO,GAErD,CAAG,EAECuO,GAA+C,mBAAnBC,eAAgCA,eAAe7T,KAAuB,oBAAX7Y,OAAyBA,YAA2B,IAAX,EAAA2B,EAAyB,EAAAA,EAASC,YAAc,SAAU+qB,GAAM,OAAQL,KAAYA,GAAUtU,QAAQwG,YAAYvG,KAAK0U,GAAI5F,OAAM,SAAU6F,GAAO,OAAOn5B,YAAW,WACpS,MAAMm5B,CACV,GAAG,EAAI,GAAI,EACPC,GAAuB,SAAUpD,GACjC,OAAO,SAAUqD,GACbr5B,WAAWq5B,EAAQrD,EACvB,CACJ,EACIsD,GAAwB,oBAAX/sB,QAA0BA,OAAOgtB,sBAAwBhtB,OAAOgtB,sBAAwBH,GAAqB,IAoD9H,KCj9DA,IAQMI,GAAmBhL,GAAY,CACnCnhC,KAAM,cACNqhC,aAVqC,CACrC+K,WAAY,aACZlqB,MAAO,EACPC,OAAQ,EACR+L,OAAQ,CAAE6F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,GAC7CyY,MAAO,GAMPjS,SAAU,CACRkS,SAAAA,CAAUxd,EAAO6K,GACf7K,EAAMod,WAAavS,EAAO1M,OAC5B,EACAsf,YAAAA,CAAazd,EAAO6K,GAClB7K,EAAM9M,MAAQ2X,EAAO1M,QAAQjL,MAC7B8M,EAAM7M,OAAS0X,EAAO1M,QAAQhL,MAChC,EACAuqB,SAAAA,CAAU1d,EAAO6K,GAAwC,IAAA8S,EAAAC,EAAAC,EAAAC,EACvD9d,EAAMd,OAAO6F,IAAwB,QAArB4Y,EAAG9S,EAAO1M,QAAQ4G,WAAG,IAAA4Y,EAAAA,EAAI,EACzC3d,EAAMd,OAAOme,MAA4B,QAAvBO,EAAG/S,EAAO1M,QAAQkf,aAAK,IAAAO,EAAAA,EAAI,EAC7C5d,EAAMd,OAAOoe,OAA8B,QAAxBO,EAAGhT,EAAO1M,QAAQmf,cAAM,IAAAO,EAAAA,EAAI,EAC/C7d,EAAMd,OAAO4F,KAA0B,QAAtBgZ,EAAGjT,EAAO1M,QAAQ2G,YAAI,IAAAgZ,EAAAA,EAAI,CAC7C,EACAC,QAAAA,CAAS/d,EAAO6K,GACd7K,EAAMud,MAAQ1S,EAAO1M,OACvB,MAIS,UAAEuf,GAAS,UAAEF,GAAS,aAAEC,GAAY,SAAEM,IAAaZ,GAAiBnJ,QAEpEgK,GAAqBb,GAAiBlT,QChDpC,YAASgU,EAAQrkC,GAC9B,IAAOmK,EAAIk6B,EAAO1uC,QAAU,EAC5B,IAAK,IAAW+C,EAAG4rC,EAA2Bn6B,EAArCvS,EAAI,EAAU2sC,EAAKF,EAAOrkC,EAAM,IAAQqsB,EAAIkY,EAAG5uC,OAAQiC,EAAIuS,IAAKvS,EAEvE,IADA0sC,EAAKC,EAAIA,EAAKF,EAAOrkC,EAAMpI,IACtBc,EAAI,EAAGA,EAAI2zB,IAAK3zB,EACnB6rC,EAAG7rC,GAAG,IAAM6rC,EAAG7rC,GAAG,GAAKwP,MAAMo8B,EAAG5rC,GAAG,IAAM4rC,EAAG5rC,GAAG,GAAK4rC,EAAG5rC,GAAG,EAGhE,CCRmB7D,MAAMgB,UAAU0B,MAEpB,YAASsC,GACtB,MAAoB,iBAANA,GAAkB,WAAYA,EACxCA,EACAhF,MAAM8F,KAAKd,EACjB,CCNe,YAASwqC,GAEtB,IADA,IAAIl6B,EAAIk6B,EAAO1uC,OAAQoiB,EAAI,IAAIljB,MAAMsV,KAC5BA,GAAK,GAAG4N,EAAE5N,GAAKA,EACxB,OAAO4N,CACT,CCCA,SAASysB,GAAWt3B,EAAG3R,GACrB,OAAO2R,EAAE3R,EACX,CAEA,SAASkpC,GAAYlpC,GACnB,MAAM8oC,EAAS,GAEf,OADAA,EAAO9oC,IAAMA,EACN8oC,CACT,CCbO,SAASK,GAAazqC,EAAuB0qC,EAAoBC,GACtE,OAAK/vC,MAAMkH,QAAQ9B,IAGfA,GAAO0qC,EAAaC,IAAa,EAC5B3qC,EAAI1C,MAAMotC,EAAYC,EAAW,GAHjC3qC,CAMX,CCRO,SAAS4qC,GAAoB16B,GAClC,OAAO3N,OAAOsoC,SAAS36B,EACzB,CAEO,SAAS46B,GAAiB56B,GAC/B,MAAoB,iBAANA,GAAkBA,EAAI,GAAK3N,OAAOsoC,SAAS36B,EAC3D,C,kgCCqCO,SAAS66B,GACd/jC,EACAgkC,EACAn9B,GAEA,OAAIuY,GAAUpf,IAAQof,GAAU4kB,GACvBn9B,EAGLsX,GAAW6lB,GACN5lC,KAAI4B,EAAKgkC,EAASn9B,GAGJ,mBAAZm9B,EACFA,EAAQhkC,GAGV6G,CACT,CAkBO,IA6BMo9B,GAAoBA,CAAC1hB,EAAoB2hB,IACxC,eAAX3hB,GAAwC,UAAb2hB,GAChB,aAAX3hB,GAAsC,UAAb2hB,GACd,YAAX3hB,GAAqC,cAAb2hB,GACb,WAAX3hB,GAAoC,eAAb2hB,EAUbC,GAAuBA,CAClCC,EACAC,EACAC,EACAC,KAEA,GAAIA,EACF,OAAOH,EAAM/oC,KAAI8jB,GAASA,EAAMqlB,aAGlC,IAAIC,EAAQC,EAEN5lC,EAASslC,EAAM/oC,KAAI8jB,IACnBA,EAAMqlB,aAAeH,IACvBI,GAAS,GAEPtlB,EAAMqlB,aAAeF,IACvBI,GAAS,GAGJvlB,EAAMqlB,cAUf,OAPKC,GACH3lC,EAAOnJ,KAAK0uC,GAETK,GACH5lC,EAAOnJ,KAAK2uC,GAGPxlC,CAAM,EA4BF6lC,GAAiBA,CAC5BC,EACAC,EACAC,KAEA,IAAKF,EACH,OAAO,KAET,IAAM,gBACJG,EAAe,KACfrjC,EAAI,MACJ4F,EAAK,MACLo7B,EAAK,cACLsC,EAAa,cACbC,EAAa,kBACbC,EAAiB,UACjBC,EAAS,MACTf,EAAK,UACLgB,EAAS,SACTlB,GACEU,EAEJ,IAAKlC,EACH,OAAO,KAGT,IAAM2C,EAAkC,cAAlBL,GAAiCtC,EAAM4C,UAAY5C,EAAM4C,YAAc,EAAI,EAC7FC,GAAUV,GAAUC,IAAmB,aAATpjC,GAAuBghC,EAAM4C,UAAY5C,EAAM4C,YAAcD,EAAgB,EAK/G,OAHAE,EAAsB,cAAbrB,GAA4B58B,GAASA,EAAM5S,QAAU,EAAoC,EAAhCqpB,GAASzW,EAAM,GAAKA,EAAM,IAAUi+B,EAASA,EAG3GV,IAAWT,GAASgB,IACNhB,GAASgB,GAAa,IACnC/pC,KAAI,CAAC8jB,EAAiBjnB,KACrB,IAAMstC,EAAeT,EAAkBA,EAAgBp0B,QAAQwO,GAASA,EAElEsmB,EAAS/C,EAAMrnC,IAAImqC,GACzB,OAAK5B,GAAoB6B,GAGlB,CAGLjB,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPomB,SACArtC,SARO,IASR,IAEF2C,OAAO0kB,IAMR0lB,GAAiBC,EACZA,EACJ7pC,KAAI,CAAC8jB,EAAgBjnB,KACpB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPjnB,QACAqtC,UANO,IAOR,IAEF1qC,OAAO0kB,IAGRmjB,EAAM0B,QAAUU,GAAsB,MAAbK,EACpBzC,EACJ0B,MAAMe,GACN9pC,KAAI,CAAC8jB,EAAejnB,KACnB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CAAEjB,WAAYiB,EAASF,EAAQryC,MAAOisB,EAAOjnB,QAAOqtC,UAFlD,IAE0D,IAEpE1qC,OAAO0kB,IAILmjB,EACJgD,SACArqC,KAAI,CAAC8jB,EAA8BjnB,KAClC,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EAErBryC,MAAO6xC,EAAkBA,EAAgB5lB,GAASA,EAClDjnB,QACAqtC,UAPO,IAQR,IAEF1qC,OAAO0kB,GAAS,EAURomB,GAAmBA,CAC9BzyC,EACAwyC,KAEA,IAAKA,GAA4B,IAAlBA,EAAOhxC,SAAiBwpB,GAASwnB,EAAO,MAAQxnB,GAASwnB,EAAO,IAC7E,OAAOxyC,EAGT,IAAMmxC,EAAW38B,KAAKkC,IAAI87B,EAAO,GAAIA,EAAO,IACtCpB,EAAW58B,KAAKlP,IAAIktC,EAAO,GAAIA,EAAO,IAEtC7xC,EAA2B,CAACX,EAAM,GAAIA,EAAM,IAiBlD,QAhBKgrB,GAAShrB,EAAM,KAAOA,EAAM,GAAKmxC,KACpCxwC,EAAO,GAAKwwC,KAGTnmB,GAAShrB,EAAM,KAAOA,EAAM,GAAKoxC,KACpCzwC,EAAO,GAAKywC,GAGVzwC,EAAO,GAAKywC,IACdzwC,EAAO,GAAKywC,GAGVzwC,EAAO,GAAKwwC,IACdxwC,EAAO,GAAKwwC,GAGPxwC,CAAM,EAyGT+xC,GAA4D,CAChEv0B,KA/FwC+xB,IAAU,IAAAyC,EAC5C38B,EAAIk6B,EAAO1uC,OACjB,KAAIwU,GAAK,GAAT,CAGA,IAAMkiB,EAAa,QAAZya,EAAGzC,EAAO,UAAE,IAAAyC,OAAA,EAATA,EAAWnxC,OACrB,KAAS,MAAL02B,GAAaA,GAAK,GAItB,IAAK,IAAI3zB,EAAI,EAAGA,EAAI2zB,IAAK3zB,EAIvB,IAHA,IAAIquC,EAAW,EACXC,EAAW,EAENpvC,EAAI,EAAGA,EAAIuS,IAAKvS,EAAG,CAC1B,IAAMqvC,EAAM5C,EAAOzsC,GACbsvC,EAAMD,aAAG,EAAHA,EAAMvuC,GAClB,GAAW,MAAPwuC,EAAJ,CAGA,IAAMC,EAAUD,EAAI,GACdE,EAAUF,EAAI,GACd/yC,EAAQ8qB,GAAMkoB,GAAWC,EAAUD,EAErChzC,GAAS,GACX+yC,EAAI,GAAKH,EACTA,GAAY5yC,EACZ+yC,EAAI,GAAKH,IAETG,EAAI,GAAKF,EACTA,GAAY7yC,EACZ+yC,EAAI,GAAKF,EAZX,CAcF,CA7BF,CA8BA,EA+DAK,OC1aa,SAAShD,EAAQrkC,GAC9B,IAAOmK,EAAIk6B,EAAO1uC,QAAU,EAA5B,CACA,IAAK,IAAIiC,EAAGuS,EAAgCnN,EAA7BtE,EAAI,EAAG2zB,EAAIgY,EAAO,GAAG1uC,OAAW+C,EAAI2zB,IAAK3zB,EAAG,CACzD,IAAKsE,EAAIpF,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGoF,GAAKqnC,EAAOzsC,GAAGc,GAAG,IAAM,EACpD,GAAIsE,EAAG,IAAKpF,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGysC,EAAOzsC,GAAGc,GAAG,IAAMsE,CACpD,CACAsqC,GAAKjD,EAAQrkC,EALyB,CAMxC,EDqaEsnC,KAAMC,GAENC,WE9aa,SAASnD,EAAQrkC,GAC9B,IAAOmK,EAAIk6B,EAAO1uC,QAAU,EAA5B,CACA,IAAK,IAAkCwU,EAA9BzR,EAAI,EAAG4rC,EAAKD,EAAOrkC,EAAM,IAAQqsB,EAAIiY,EAAG3uC,OAAQ+C,EAAI2zB,IAAK3zB,EAAG,CACnE,IAAK,IAAId,EAAI,EAAGoF,EAAI,EAAGpF,EAAIuS,IAAKvS,EAAGoF,GAAKqnC,EAAOzsC,GAAGc,GAAG,IAAM,EAC3D4rC,EAAG5rC,GAAG,IAAM4rC,EAAG5rC,GAAG,IAAMsE,EAAI,CAC9B,CACAsqC,GAAKjD,EAAQrkC,EALyB,CAMxC,EFyaEynC,OGhba,SAASpD,EAAQrkC,GAC9B,IAAOmK,EAAIk6B,EAAO1uC,QAAU,IAAS02B,GAAKiY,EAAKD,EAAOrkC,EAAM,KAAKrK,QAAU,EAA3E,CACA,IAAK,IAAkB2uC,EAAIjY,EAAGliB,EAArBnN,EAAI,EAAGtE,EAAI,EAAaA,EAAI2zB,IAAK3zB,EAAG,CAC3C,IAAK,IAAId,EAAI,EAAG2sC,EAAK,EAAGmD,EAAK,EAAG9vC,EAAIuS,IAAKvS,EAAG,CAK1C,IAJA,IAAI+vC,EAAKtD,EAAOrkC,EAAMpI,IAClBgwC,EAAOD,EAAGjvC,GAAG,IAAM,EAEnBmvC,GAAMD,GADCD,EAAGjvC,EAAI,GAAG,IAAM,IACF,EAChByU,EAAI,EAAGA,EAAIvV,IAAKuV,EAAG,CAC1B,IAAI26B,EAAKzD,EAAOrkC,EAAMmN,IAGtB06B,IAFWC,EAAGpvC,GAAG,IAAM,IACZovC,EAAGpvC,EAAI,GAAG,IAAM,EAE7B,CACA6rC,GAAMqD,EAAMF,GAAMG,EAAKD,CACzB,CACAtD,EAAG5rC,EAAI,GAAG,IAAM4rC,EAAG5rC,EAAI,GAAG,GAAKsE,EAC3BunC,IAAIvnC,GAAK0qC,EAAKnD,EACpB,CACAD,EAAG5rC,EAAI,GAAG,IAAM4rC,EAAG5rC,EAAI,GAAG,GAAKsE,EAC/BsqC,GAAKjD,EAAQrkC,EAnBwE,CAoBvF,EH4ZE+mC,SA3D4C1C,IAAU,IAAA0D,EAChD59B,EAAIk6B,EAAO1uC,OACjB,KAAIwU,GAAK,GAAT,CAGA,IAAMkiB,EAAa,QAAZ0b,EAAG1D,EAAO,UAAE,IAAA0D,OAAA,EAATA,EAAWpyC,OACrB,KAAS,MAAL02B,GAAaA,GAAK,GAItB,IAAK,IAAI3zB,EAAI,EAAGA,EAAI2zB,IAAK3zB,EAGvB,IAFA,IAAIquC,EAAW,EAENnvC,EAAI,EAAGA,EAAIuS,IAAKvS,EAAG,CAC1B,IAAMqvC,EAAM5C,EAAOzsC,GACbsvC,EAAMD,aAAG,EAAHA,EAAMvuC,GAClB,GAAW,MAAPwuC,EAAJ,CAGA,IAAM/yC,EAAQ8qB,GAAMioB,EAAI,IAAMA,EAAI,GAAKA,EAAI,GAEvC/yC,GAAS,GACX+yC,EAAI,GAAKH,EACTA,GAAY5yC,EACZ+yC,EAAI,GAAKH,IAETG,EAAI,GAAK,EACTA,EAAI,GAAK,EATX,CAWF,CAzBF,CA0BA,GAgCWc,GAAiBA,CAC5BplB,EACAqlB,EACAC,KACiE,IAAAC,EAC3DC,EAA6D,QAA/BD,EAAGtB,GAAiBqB,UAAW,IAAAC,EAAAA,EAAIZ,GACjE5lC,EH7aO,WACb,IAAIzF,EAAO,EAAS,IAChB8D,EAAQ,GACRwmC,EAAS,GACTryC,EAAQqwC,GAEZ,SAAS7iC,EAAMihB,GACb,IACIhrB,EACAywC,EAFAC,EAAKzzC,MAAM8F,KAAKuB,EAAKhH,MAAMvB,KAAM4E,WAAYksC,IAC1Ct6B,EAAIm+B,EAAG3yC,OAAQ+C,GAAK,EAG3B,IAAK,MAAMwU,KAAK0V,EACd,IAAKhrB,EAAI,IAAKc,EAAGd,EAAIuS,IAAKvS,GACvB0wC,EAAG1wC,GAAGc,GAAK,CAAC,GAAIvE,EAAM+Y,EAAGo7B,EAAG1wC,GAAG2D,IAAK7C,EAAGkqB,KAAQA,KAAO1V,EAI3D,IAAKtV,EAAI,EAAGywC,EAAKvtC,GAAMkF,EAAMsoC,IAAM1wC,EAAIuS,IAAKvS,EAC1C0wC,EAAGD,EAAGzwC,IAAIuB,MAAQvB,EAIpB,OADA4uC,EAAO8B,EAAID,GACJC,CACT,CAkBA,OAhBA3mC,EAAMzF,KAAO,SAASggB,GACpB,OAAO3jB,UAAU5C,QAAUuG,EAAoB,mBAANggB,EAAmBA,EAAI,EAASrnB,MAAM8F,KAAKuhB,IAAKva,GAASzF,CACpG,EAEAyF,EAAMxN,MAAQ,SAAS+nB,GACrB,OAAO3jB,UAAU5C,QAAUxB,EAAqB,mBAAN+nB,EAAmBA,EAAI,GAAUA,GAAIva,GAASxN,CAC1F,EAEAwN,EAAM3B,MAAQ,SAASkc,GACrB,OAAO3jB,UAAU5C,QAAUqK,EAAa,MAALkc,EAAY,GAAyB,mBAANA,EAAmBA,EAAI,EAASrnB,MAAM8F,KAAKuhB,IAAKva,GAAS3B,CAC7H,EAEA2B,EAAM6kC,OAAS,SAAStqB,GACtB,OAAO3jB,UAAU5C,QAAU6wC,EAAc,MAALtqB,EAAY,GAAaA,EAAGva,GAAS6kC,CAC3E,EAEO7kC,CACT,CGmYgB4mC,GACXrsC,KAAK+rC,GACL9zC,OAAM,CAAC+Y,EAAG3R,IAAQiB,OAAOwoC,GAAkB93B,EAAG3R,EAAK,MACnDyE,MAAMwoC,IAENhC,OAAO4B,GAEJtzC,EAAS6M,EAAMihB,GAerB,OAZA9tB,EAAO4tB,SAAQ,CAAC2hB,EAAQoE,KACtBpE,EAAO3hB,SAAQ,CAACgmB,EAAOC,KACrB,IAAMx0C,EAAQ6wC,GAAkBpiB,EAAK+lB,GAAaV,EAASQ,GAAc,GACrE5zC,MAAMkH,QAAQ5H,IAA2B,IAAjBA,EAAMwB,QAAgBwpB,GAAShrB,EAAM,KAAOgrB,GAAShrB,EAAM,MAErFu0C,EAAM,GAAKv0C,EAAM,GAEjBu0C,EAAM,GAAKv0C,EAAM,GACnB,GACA,IAGGW,CAAM,EAeR,SAAS8zC,GAAqBC,GACnC,OAAwB,MAAjBA,OAAwBpwC,EAAY0C,OAAO0tC,EACpD,CAEO,SAASC,GAAuB1nB,GAmBrB,IAnByD,KACzEykB,EAAI,MACJR,EAAK,SACL0D,EAAQ,MACR3oB,EAAK,MACLjnB,EAAK,QACL8rC,GAaD7jB,EACC,GAAkB,aAAdykB,EAAKljC,KAAqB,CAG5B,IAAKkjC,EAAKmD,yBAA2BnD,EAAKZ,UAAY5kB,GAAUD,EAAMylB,EAAKZ,UAAW,CAEpF,IAAMgE,EAAcjpB,GAAiBqlB,EAAO,QAASjlB,EAAMylB,EAAKZ,UAEhE,GAAIgE,EACF,OAAOA,EAAYxD,WAAasD,EAAW,CAE/C,CAEA,OAAO1D,SAAAA,EAAQlsC,GAASksC,EAAMlsC,GAAOssC,WAAasD,EAAW,EAAI,IACnE,CAEA,IAAM50C,EAAQ6wC,GAAkB5kB,EAAQC,GAAU4kB,GAAqBY,EAAKZ,QAAfA,GAEvDyB,EAASb,EAAKlC,MAAMrnC,IAAInI,GAC9B,OAAKgrB,GAASunB,GAGPA,EAFE,IAGX,CAEO,IAAMwC,GAAyB1Y,IAcjB,IAdkB,KACrCqV,EAAI,MACJR,EAAK,OACLmB,EAAM,SACNuC,EAAQ,MACR3oB,EAAK,MACLjnB,GAQDq3B,EACC,GAAkB,aAAdqV,EAAKljC,KACP,OAAO0iC,EAAMlsC,GAASksC,EAAMlsC,GAAOssC,WAAae,EAAS,KAG3D,IAAMryC,EAA4B6wC,GAAkB5kB,EAAOylB,EAAKZ,QAASY,EAAKlC,MAAMgD,SAASxtC,IAE7F,GAAIknB,GAAUlsB,GACZ,OAAO,KAGT,IAAMuyC,EAASb,EAAKlC,MAAMrnC,IAAInI,GAC9B,OAAKgrB,GAASunB,GAGPA,EAASqC,EAAW,EAAIvC,EAFtB,IAE4B,EAG1B2C,GAAoBC,IAA2E,IAA1E,YAAEC,GAAiDD,EAC7EzC,EAAS0C,EAAY1F,MAAMgD,SAEjC,GAAyB,WAArB0C,EAAY1mC,KAAmB,CAEjC,IAAM2iC,EAAW38B,KAAKkC,IAAI87B,EAAO,GAAIA,EAAO,IAEtCpB,EAAW58B,KAAKlP,IAAIktC,EAAO,GAAIA,EAAO,IAE5C,OAAIrB,GAAY,GAAKC,GAAY,EACxB,EAELA,EAAW,EACNA,EAGFD,CACT,CAEA,OAAOqB,EAAO,EAAE,EAYL2C,GAAyBA,CACpCC,EACA5E,EACAC,KAPwB+B,MASxB,GAAmB,MAAf4C,EAGJ,OAZwB5C,EAatB5yC,OAAOmI,KAAKqtC,GAAazqB,QACvB,CAAChqB,EAAQ00C,KACP,IAAMC,EAAQF,EAAYC,GAC1B,IAAKC,EACH,OAAO30C,EAET,IAAM,YAAE40C,GAAgBD,EAClB9C,EAAuB+C,EAAY5qB,QACvC,CAAC6qB,EAAmBvpB,KAClB,IA1BJwK,EA0BUgf,EAASlF,GAAUtkB,EAAOukB,EAAYC,GACtCp3B,GA3BVod,EA2BgCgf,EA3BpBhf,KAAK,GAAG9uB,OAAOqjB,IAC1B,CAACxW,KAAKkC,OAAO+f,GAAOjiB,KAAKlP,OAAOmxB,KA2B7B,OAAKia,GAAoBr3B,EAAE,KAAQq3B,GAAoBr3B,EAAE,IAGlD,CAAC7E,KAAKkC,IAAI8+B,EAAI,GAAIn8B,EAAE,IAAK7E,KAAKlP,IAAIkwC,EAAI,GAAIn8B,EAAE,KAF1Cm8B,CAE8C,GAEzD,CAACthC,KAAU,MAGb,MAAO,CAACM,KAAKkC,IAAI87B,EAAO,GAAI7xC,EAAO,IAAK6T,KAAKlP,IAAIktC,EAAO,GAAI7xC,EAAO,IAAI,GAEzE,CAACuT,KAAU,MAjCR,CAACs+B,EAAO,KAAOt+B,IAAW,EAAIs+B,EAAO,GAAIA,EAAO,MAAO,IAAY,EAAIA,EAAO,GAmCpF,EAGUkD,GAAgB,kDAChBC,GAAgB,mDAShBC,GAAoBA,CAC/BlE,EACAR,EACA2E,KAEA,GAAInE,GAAQA,EAAKlC,OAASkC,EAAKlC,MAAM4C,UAAW,CAC9C,IAAM0D,EAAYpE,EAAKlC,MAAM4C,YAE7B,IAAKyD,GAASC,EAAY,EACxB,OAAOA,CAEX,CAEA,GAAIpE,GAAQR,GAASA,EAAM1vC,QAAU,EAAG,CAItC,IAHA,IAAMu0C,EAAwCliC,KAAOq9B,GAAQttB,GAAgBA,EAAE0tB,aAC3EsD,EAAW1gC,IAENzQ,EAAI,EAAGU,EAAM4xC,EAAav0C,OAAQiC,EAAIU,EAAKV,IAAK,CACvD,IAAMuyC,EAAMD,EAAatyC,GACnBwyC,EAAOF,EAAatyC,EAAI,GAE9BmxC,EAAWpgC,KAAKkC,MAAKs/B,aAAG,EAAHA,EAAK1E,aAAc,KAAM2E,aAAI,EAAJA,EAAM3E,aAAc,GAAIsD,EACxE,CAEA,OAAOA,IAAa1gC,IAAW,EAAI0gC,CACrC,CAEA,OAAOiB,OAAQvxC,EAAY,CAAC,EAGvB,SAAS4xC,GAAeC,GAYP,IAZQ,qBAC9BC,EAAoB,QACpBtF,EAAO,QACP1gB,EAAO,MACPpwB,EAAK,KACLiD,GAODkzC,EACC,OAAA/oB,GAAAA,GAAA,GACKgpB,GAAoB,IACvBtF,UACA1gB,UACApwB,QACAiD,QAEJ,CAEO,SAASozC,GACdC,EACAxF,GAEA,OAAIwF,EACKtvC,OAAOsvC,GAEO,iBAAZxF,EACFA,OADT,CAIF,CAEO,II3rBMyF,GAAoBtkB,GAAqCA,EAAM5C,OAAOlK,MAEtEqxB,GAAqBvkB,GAAqCA,EAAM5C,OAAOjK,OAEvEqxB,GAA6DxkB,GAASA,EAAM5C,OAAOmgB,MAEnFkH,GAAgBzkB,GAAqCA,EAAM5C,OAAO8B,OCLlEwlB,GAA6ErgB,IACvFrE,GAA6BA,EAAM2kB,cAAcC,QACjDC,GACQl3C,OAAOgM,OAAOkrC,KAIZC,GAA6EzgB,IACvFrE,GAA6BA,EAAM2kB,cAAcI,QACjDC,GACQr3C,OAAOgM,OAAOqrC,KCdZC,GAAc,CACzB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAQWC,GAAiC,2BAMjCC,GAA6C,wB,kgCC+BnD,IAAMC,GAA+E/gB,GAC1F,CACEigB,GACAC,GACAE,GAtD8BzkB,GAA6BA,EAAMqlB,MAAMlyB,OAE3E,SAA8B6M,GAE5B,OADc8kB,GAAe9kB,GAChBtH,QAAO,CAAChqB,EAAgBsrB,IACT,SAAtBA,EAAMsrB,aAA2BtrB,EAAMurB,QAAWvrB,EAAMwrB,KAIrD92C,EAFEA,GAD8B,iBAAhBsrB,EAAM9G,MAAqB8G,EAAM9G,MDexB,KCX/B,EACL,EAEA,SAA+B8M,GAE7B,OADc8kB,GAAe9kB,GAChBtH,QAAO,CAAChqB,EAAgBsrB,IACT,UAAtBA,EAAMsrB,aAA4BtrB,EAAMurB,QAAWvrB,EAAMwrB,KAItD92C,EAFEA,GAD8B,iBAAhBsrB,EAAM9G,MAAqB8G,EAAM9G,MDIxB,KCA/B,EACL,EAEA,SAA6B8M,GAE3B,OADc0kB,GAAe1kB,GAChBtH,QAAO,CAAChqB,EAAgBsrB,IACT,QAAtBA,EAAMsrB,aAA0BtrB,EAAMurB,QAAWvrB,EAAMwrB,KAGpD92C,EAFEA,EAASsrB,EAAM7G,QAGvB,EACL,EAEA,SAAgC6M,GAE9B,OADc0kB,GAAe1kB,GAChBtH,QAAO,CAAChqB,EAAgBsrB,IACT,WAAtBA,EAAMsrB,aAA6BtrB,EAAMurB,QAAWvrB,EAAMwrB,KAGvD92C,EAFEA,EAASsrB,EAAM7G,QAGvB,EACL,EAkBI8Q,GzBtE6BjE,GAAmCA,EAAMkE,OAAOtf,OyByE/E,CACE6gC,EACAC,EACAxmB,EACAymB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,KAEA,IAAMC,EAA4B,CAChCphB,MAAO5F,EAAO4F,MAAQ,GAAK8gB,EAC3BvI,OAAQne,EAAOme,OAAS,GAAKwI,GAQ3BzF,EAAMjlB,GAAAA,GAAA,GALsB,CAC9B4J,KAAM7F,EAAO6F,KAAO,GAAK+gB,EACzBxI,QAASpe,EAAOoe,QAAU,GAAKyI,IAGHG,GAExBC,EAAc/F,EAAO9C,OAE3B8C,EAAO9C,QAAUqI,EAEjBvF,EP/BgCgG,EAClChG,EACA4F,EACAC,KAEA,GAAID,GAAkBC,EAAY,CAChC,IAAQ/yB,MAAOmzB,EAAUlzB,OAAQmzB,GAAcL,GACzC,MAAEhpB,EAAK,cAAEI,EAAa,OAAED,GAAW4oB,EAEzC,IACc,aAAX5oB,GAAqC,eAAXA,GAA6C,WAAlBC,IAC5C,WAAVJ,GACAlE,GAASqnB,EAAOnjB,IAEhB,OAAA9B,GAAAA,GAAA,GAAYilB,GAAM,IAAE,CAACnjB,GAAQmjB,EAAOnjB,IAAUopB,GAAY,KAG5D,IACc,eAAXjpB,GAAuC,aAAXA,GAAmC,WAAVH,IACpC,WAAlBI,GACAtE,GAASqnB,EAAO/iB,IAEhB,OAAAlC,GAAAA,GAAA,GAAYilB,GAAM,IAAE,CAAC/iB,GAAgB+iB,EAAO/iB,IAAkBipB,GAAa,IAE/E,CAEA,OAAOlG,CAAM,EOKFgG,CAAqBhG,EAAQ4F,EAAgBC,GAEtD,IAAMM,EAAcd,EAAarF,EAAOtb,KAAOsb,EAAO/C,MAChDmJ,EAAed,EAActF,EAAOrb,IAAMqb,EAAO9C,OAEvD,OAAAniB,GAAAA,GAAA,CACEgrB,eACG/F,GAAM,IAETltB,MAAO3Q,KAAKlP,IAAIkzC,EAAa,GAC7BpzB,OAAQ5Q,KAAKlP,IAAImzC,EAAc,IAAE,IAK1BC,GAAqBpiB,GAChC+gB,IACChF,IAA2B,CAC1B3sC,EAAG2sC,EAAOtb,KACVluB,EAAGwpC,EAAOrb,IACV7R,MAAOktB,EAAOltB,MACdC,OAAQitB,EAAOjtB,WAINuzB,GAAoBriB,GAC/BigB,GACAC,IACA,CAACrxB,EAAeC,KAAc,CAC5B1f,EAAG,EACHmD,EAAG,EACHsc,QACAC,aC3IEwzB,IAAkB1yB,EAAAA,EAAAA,eAA8B,MAEzC2yB,GAAgBA,IAA8C,OAA/BzyB,EAAAA,EAAAA,YAAWwyB,IAE1CE,GAA0B7rB,IAAA,IAAC,SAAE/H,GAAmC+H,EAAA,OAC3EvkB,EAAAA,cAACkwC,GAAgBG,SAAQ,CAAC/4C,OAAK,GAAEklB,EAAoC,ECD1D8zB,GAAuB/mB,GAA4CA,EAAMqlB,MASzE2B,GAAuE3iB,GAClF,CAAC0iB,GAAqB3B,GAA2BX,KACjD,CAACwC,EAAe7G,EAAQlhB,KAAM,CAC5B/L,OAAQ8zB,EAAc9zB,OACtB1f,EAAGslB,GAASkuB,EAAcxzC,GAAKwzC,EAAcxzC,EAAI2sC,EAAOtb,KACxDluB,EAAGmiB,GAASkuB,EAAcrwC,GACtBqwC,EAAcrwC,EACdwpC,EAAOrb,IAAMqb,EAAOjtB,OAASitB,EAAO+F,cAAejnB,aAAM,EAANA,EAAQoe,SAAU,GACzEpqB,MAAO6F,GAASkuB,EAAc/zB,OAAS+zB,EAAc/zB,MAAQktB,EAAOltB,U,sBCrB3Dg0B,GAAO,SAAClS,EAAoBmS,GAAmC,QAAA3uB,EAAArmB,UAAA5C,OAAhBV,EAAI,IAAAJ,MAAA+pB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5pB,EAAI4pB,EAAA,GAAAtmB,UAAAsmB,EAmBhE,EChBa2uB,GAAkC,CAC7Cl0B,MAAO,OACPC,OAAQ,OACRllB,SAAU,EACVo5C,SAAU,EACVC,iBAAkB,CAChBp0B,OAAQ,EACRC,QAAS,IAIAo0B,GAA2BA,CACtCC,EACAC,EACA70B,KAOA,IAAM,MACJM,EAAQk0B,GAAgCl0B,MAAK,OAC7CC,EAASi0B,GAAgCj0B,OAAM,OAC/Cu0B,EAAM,UACNC,GACE/0B,EAMAg1B,EAAsC9uB,GAAU5F,GAASs0B,EAAiBpxC,OAAO8c,GACjF20B,EAAuC/uB,GAAU3F,GAAUs0B,EAAkBrxC,OAAO+c,GAkBxF,OAhBIu0B,GAAUA,EAAS,IAEjBE,EAEFC,EAAmBD,EAAkBF,EAC5BG,IAETD,EAAkBC,EAAmBH,GAInCC,GAAiC,MAApBE,GAA4BA,EAAmBF,IAC9DE,EAAmBF,IAIhB,CAAEC,kBAAiBC,mBAAkB,EAGxCC,GAA8B,CAClC50B,MAAO,EACPC,OAAQ,EACR40B,SAAU,WAENC,GAA2B,CAC/B90B,MAAO,EACP80B,UAAW,WAEPC,GAA2B,CAC/B90B,OAAQ,EACR80B,UAAW,WAEPC,GAAyB,CAAC,EAgBnBC,GAAoBv1B,IAC/B,IAAM,MAAEM,EAAK,OAAEC,GAAWP,EACpBw1B,EAAiBtvB,GAAU5F,GAC3Bm1B,EAAkBvvB,GAAU3F,GAElC,OAAIi1B,GAAkBC,EACbP,GAELM,EACKJ,GAELK,EACKJ,GAEFC,EAAO,E,6tCCfhB,IAAMI,IAA6Br0B,EAAAA,EAAAA,eAAoBmzB,GAAgCE,kBAMvF,SAASiB,GAAkCvtB,GAQxC,IARyC,SAC1C/H,EAAQ,MACRC,EAAK,OACLC,GAKD6H,EACOpW,GAAO5N,EAAAA,EAAAA,UAAQ,KAAM,CAAGkc,QAAOC,YAAW,CAACD,EAAOC,IACxD,OAdF,SAA0BvO,GACxB,OAAO+5B,GAAiB/5B,EAAKsO,QAAUyrB,GAAiB/5B,EAAKuO,OAC/D,CAYOq1B,CAAiB5jC,GAQfnO,EAAAA,cAAC6xC,GAA2BxB,SAAQ,CAAC/4C,MAAO6W,GAAOqO,GAFjD,IAGX,CAEO,IAAMw1B,GAAgCA,KAAMt0B,EAAAA,EAAAA,YAAWm0B,IAExDI,IAAwB31B,EAAAA,EAAAA,aAC5B,CAAAqX,EAoBEpX,KACG,IApBH,OACE00B,EAAM,iBACNJ,EAAmBF,GAAgCE,iBAAgB,MACnEp0B,EAAK,OACLC,EAAM,SAKNk0B,EAAWD,GAAgCC,SAAQ,UACnDsB,EAAS,UACThB,EAAS,SACT10B,EAAQ,SACRhlB,EAAWm5C,GAAgCn5C,SAAQ,GACnDkrB,EAAE,UACF9F,EAAS,SACTu1B,EAAQ,MACRt1B,EAAQ,CAAC,GACH8W,EAGFye,GAAe/xC,EAAAA,EAAAA,QAA8B,MAK7CgyC,GAAchyC,EAAAA,EAAAA,UACpBgyC,EAAYrxC,QAAUmxC,GACtBG,EAAAA,EAAAA,qBAAkE/1B,GAAK,IAAM61B,EAAapxC,UAE1F,IAAOuxC,EAAOC,IAAYr5B,EAAAA,EAAAA,UAGvB,CACD43B,eAAgBF,EAAiBp0B,MACjCu0B,gBAAiBH,EAAiBn0B,SAG9B+1B,GAAmBjkB,EAAAA,EAAAA,cAAY,CAACkkB,EAAkBC,KACtDH,GAASI,IACP,IAAMC,EAAe/mC,KAAK8E,MAAM8hC,GAC1BI,EAAgBhnC,KAAK8E,MAAM+hC,GACjC,OAAIC,EAAU7B,iBAAmB8B,GAAgBD,EAAU5B,kBAAoB8B,EACtEF,EAGF,CAAE7B,eAAgB8B,EAAc7B,gBAAiB8B,EAAe,GACvE,GACD,KAEHxyC,EAAAA,EAAAA,YAAU,KACR,GAA4B,MAAxB8xC,EAAapxC,SAA6C,oBAAnB+xC,eACzC,OAAOnvB,GAET,IAAI+c,EAAYtyB,IAAmC,IAAA2kC,EAC3CzvB,EAAQlV,EAAQ,GACtB,GAAa,MAATkV,EAAJ,CAGA,IAAQ9G,MAAOs0B,EAAgBr0B,OAAQs0B,GAAoBztB,EAAM0vB,YACjER,EAAiB1B,EAAgBC,GACd,QAAnBgC,EAAAX,EAAYrxC,eAAO,IAAAgyC,GAAnBA,EAAAv4C,KAAA43C,EAAsBtB,EAAgBC,EAHtC,CAGsD,EAEpDx5C,EAAW,IACbmpC,EAAW10B,KAAS00B,EAAUnpC,EAAU,CACtCK,UAAU,EACVD,SAAS,KAGb,IAAM48B,EAAW,IAAIue,eAAepS,IAE5BlkB,MAAOs0B,EAAgBr0B,OAAQs0B,GAAoBoB,EAAapxC,QAAQ0tB,wBAKhF,OAJA+jB,EAAiB1B,EAAgBC,GAEjCxc,EAAS0e,QAAQd,EAAapxC,SAEvB,KACLwzB,EAAS2e,YAAY,CACtB,GACA,CAACV,EAAkBj7C,IAEtB,IAAM,eAAEu5C,EAAc,gBAAEC,GAAoBuB,EAE5C9B,IAAMQ,GAAUA,EAAS,EAAG,4CAA6CA,GAEzE,IAAM,gBAAEE,EAAe,iBAAEC,GAAqBN,GAAyBC,EAAgBC,EAAiB,CACtGv0B,QACAC,SACAu0B,SACAC,cAkBF,OAfAT,GACsB,MAAnBU,GAA2BA,EAAkB,GAA2B,MAApBC,GAA4BA,EAAmB,EAAE,gQAKtGD,EACAC,EACA30B,EACAC,EACAk0B,EACAsB,EACAjB,GAIAjxC,EAAAA,cAAA,OACE0iB,GAAIA,EAAK,GAAH9nB,OAAM8nB,QAAO9mB,EACnBghB,UAAWnB,EAAK,gCAAiCmB,GACjDC,MAAK6H,GAAAA,GAAA,GAAO7H,GAAK,IAAEJ,QAAOC,SAAQk0B,WAAUsB,YAAWhB,cACvD30B,IAAK61B,GAELpyC,EAAAA,cAAA,OAAK6c,MAAO60B,GAAiB,CAAEj1B,QAAOC,YACpC1c,EAAAA,cAAC8xC,GAAkC,CAACr1B,MAAO00B,EAAiBz0B,OAAQ00B,GACjE50B,IAGD,IAgBC42B,IAAsB92B,EAAAA,EAAAA,aAAkC,CAACH,EAAOI,KAC3E,IAAM82B,EAA6BrB,KACnC,GAAI9J,GAAiBmL,EAA2B52B,QAAUyrB,GAAiBmL,EAA2B32B,QAKpG,OAAOP,EAAMK,SAGf,IAAM,MAAEC,EAAK,OAAEC,GD9JV,SAAiC6H,GAQ0C,IARzC,MACvC9H,EAAK,OACLC,EAAM,OACNu0B,GAKD1sB,EACK4sB,EAAkB10B,EAClB20B,EAAmB10B,EAWvB,YATwB9gB,IAApBu1C,QAAsDv1C,IAArBw1C,GACnCD,EAAkBR,GAAgCl0B,MAClD20B,EAAmBT,GAAgCj0B,aACtB9gB,IAApBu1C,EACTA,EAAkBF,GAAUA,EAAS,OAAIr1C,EAAY+0C,GAAgCl0B,WACvD7gB,IAArBw1C,IACTA,EAAmBH,GAAUA,EAAS,OAAIr1C,EAAY+0C,GAAgCj0B,QAGjF,CAAED,MAAO00B,EAAiBz0B,OAAQ00B,EAC3C,CCwI4BkC,CAAyB,CACjD72B,MAAON,EAAMM,MACbC,OAAQP,EAAMO,OACdu0B,OAAQ90B,EAAM80B,UAOV,gBAAEE,EAAe,iBAAEC,GAAqBN,QAAyBl1C,OAAWA,EAAW,CAC3F6gB,QACAC,SACAu0B,OAAQ90B,EAAM80B,OACdC,UAAW/0B,EAAM+0B,YAGnB,OAAI5uB,GAAS6uB,IAAoB7uB,GAAS8uB,GAWtCpxC,EAAAA,cAAC8xC,GAAkC,CAACr1B,MAAO00B,EAAiBz0B,OAAQ00B,GACjEj1B,EAAMK,UAQNxc,EAAAA,cAACiyC,GAAqB50B,GAAA,GAAKlB,EAAK,CAAEM,MAAOA,EAAOC,OAAQA,EAAQH,IAAKA,IAAO,ICtR9E,SAASg3B,GACd5kB,GAEA,GAAKA,EAGL,MAAO,CACL3xB,EAAG2xB,EAAI3xB,EACPmD,EAAGwuB,EAAIxuB,EACPqzC,WAAY,eAAgB7kB,EAAMA,EAAI6kB,WAAa7kB,EAAIlS,MACvDg3B,WAAY,eAAgB9kB,EAAMA,EAAI8kB,WAAa9kB,EAAIlS,MACvDA,MAAOkS,EAAIlS,MACXC,OAAQiS,EAAIjS,OAEhB,CAEO,IAAMg3B,GAAaA,KAA4C,IAAAC,EAC9DC,EAAWzD,KACX0D,EAAcxqB,GAAe2mB,IAC7B8D,EAAkBzqB,GAAeknB,IACjCwD,EAAkD,QAAtCJ,EAAGtqB,GAAeinB,WAAoB,IAAAqD,OAAA,EAAnCA,EAAqCnrB,QAC1D,OAAKorB,GAAaE,GAAoBC,EAG/B,CACLt3B,MAAOq3B,EAAgBr3B,MAAQs3B,EAAa1lB,KAAO0lB,EAAanN,MAChElqB,OAAQo3B,EAAgBp3B,OAASq3B,EAAazlB,IAAMylB,EAAalN,OACjE7pC,EAAG+2C,EAAa1lB,KAChBluB,EAAG4zC,EAAazlB,KANTulB,CAOR,EAGGG,GAAoE,CACxE1lB,IAAK,EACLuY,OAAQ,EACRxY,KAAM,EACNuY,MAAO,EACPnqB,MAAO,EACPC,OAAQ,EACRgzB,YAAa,GASFuE,GAAoBA,KAA2B,IAAAC,EAC1D,OAAgD,QAAhDA,EAAO7qB,GAAeslB,WAA0B,IAAAuF,EAAAA,EAAIF,EAA4C,EAsBrFG,GAAgBA,IACpB9qB,GAAewkB,IAsBXuG,GAAiBA,IACrB/qB,GAAeykB,IAaXuG,GAAYA,IAChBhrB,IAAeE,GAASA,EAAM5C,OAAO8B,SAGjC6rB,GAAqB/qB,GAAyCA,EAAM5C,OAAOggB,WAE3E4N,GAAiBA,IAAMlrB,GAAeirB,IAEtCE,GAA0BA,KACrC,IAAM7tB,EAAS4tB,KACf,GAAe,eAAX5tB,GAAsC,aAAXA,EAC7B,OAAOA,CAEO,EAGL8tB,GAA0BlrB,IACrC,IAAM5C,EAAS4C,EAAM5C,OAAOggB,WAC5B,GAAe,YAAXhgB,GAAmC,WAAXA,EAC1B,OAAOA,CAEO,EAGL+tB,GAAsBA,IAC1BrrB,GAAeorB,IAcXE,GAAsBA,SAMf/4C,IADH24C,KAIJK,GAAmBz4B,IAI9B,IAAM+M,EAAWF,KAQX6rB,EAAa1E,MAEX1zB,MAAOq4B,EAAgBp4B,OAAQq4B,GAAoB54B,EACrD64B,EAAkChD,KAEpCv1B,EAAQq4B,EACRp4B,EAASq4B,EAwBb,OAtBIC,IAYFv4B,EAAQu4B,EAAgCv4B,MAAQ,EAAIu4B,EAAgCv4B,MAAQq4B,EAC5Fp4B,EAASs4B,EAAgCt4B,OAAS,EAAIs4B,EAAgCt4B,OAASq4B,IAGjGz0C,EAAAA,EAAAA,YAAU,MACHu0C,GAAc3M,GAAiBzrB,IAAUyrB,GAAiBxrB,IAC7DwM,EAAS8d,GAAa,CAAEvqB,QAAOC,WACjC,GACC,CAACwM,EAAU2rB,EAAYp4B,EAAOC,IAE1B,IAAI,EAGAu4B,GAAoB1wB,IAAmD,IAAlD,OAAEkE,GAAqClE,EACjE2E,EAAWF,KAIjB,OAHA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAAS+d,GAAUxe,GAAQ,GAC1B,CAACS,EAAUT,IACP,IAAI,ECpOTysB,GAAU99C,OAAO85B,IAAI,iBACrBikB,GAAY/9C,OAAO85B,IAAI,mBACvBkkB,GAAch+C,OAAO85B,IAAI,eAkC7B,SAASmkB,GAAI77B,KAAUphB,GAMrB,MAAM,IAAI4N,MACR,8BAA8BwT,2CAElC,CAGA,IAAI1Z,GAAiB5I,OAAO4I,eAC5B,SAAS,GAAQxI,GACf,QAASA,KAAWA,EAAM89C,GAC5B,CACA,SAASE,GAAYh+C,GACnB,QAAKA,IAEE,GAAcA,IAAUU,MAAMkH,QAAQ5H,MAAYA,EAAM69C,OAAgB79C,EAAM2O,cAAckvC,KAAcI,GAAMj+C,IAAUk+C,GAAMl+C,GACzI,CACA,IAAIm+C,GAAmBv+C,OAAO8B,UAAUiN,YAAYzG,WAChDk2C,GAAoC,IAAI1qB,QAC5C,SAAS,GAAc1zB,GACrB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,EACT,MAAM0iB,EAAQ9iB,OAAO4I,eAAexI,GACpC,GAAc,OAAV0iB,GAAkBA,IAAU9iB,OAAO8B,UACrC,OAAO,EACT,MAAMyX,EAAOvZ,OAAO+B,eAAewB,KAAKuf,EAAO,gBAAkBA,EAAM/T,YACvE,GAAIwK,IAASvZ,OACX,OAAO,EACT,GAAoB,mBAATuZ,EACT,OAAO,EACT,IAAIklC,EAAaD,GAAkBlzC,IAAIiO,GAKvC,YAJmB,IAAfklC,IACFA,EAAar6B,SAAS9b,SAAS/E,KAAKgW,GACpCilC,GAAkBzwC,IAAIwL,EAAMklC,IAEvBA,IAAeF,EACxB,CAMA,SAASG,GAAKxxC,EAAKyxC,EAAMC,GAAS,GAChC,GAAyB,IAArBC,GAAY3xC,GAAyB,EAC1B0xC,EAAS7kB,QAAQE,QAAQ/sB,GAAOlN,OAAOmI,KAAK+E,IACpDyhB,SAASnnB,IACZm3C,EAAKn3C,EAAK0F,EAAI1F,GAAM0F,EAAI,GAE5B,MACEA,EAAIyhB,SAAQ,CAACtC,EAAOjnB,IAAUu5C,EAAKv5C,EAAOinB,EAAOnf,IAErD,CACA,SAAS2xC,GAAYC,GACnB,MAAMzsB,EAAQysB,EAAMZ,IACpB,OAAO7rB,EAAQA,EAAM0sB,MAAQj+C,MAAMkH,QAAQ82C,GAAS,EAAgBT,GAAMS,GAAS,EAAcR,GAAMQ,GAAS,EAAc,CAChI,CACA,SAASj9C,GAAIi9C,EAAOz6B,GAClB,OAA8B,IAAvBw6B,GAAYC,GAAyBA,EAAMj9C,IAAIwiB,GAAQrkB,OAAO8B,UAAUC,eAAewB,KAAKu7C,EAAOz6B,EAC5G,CAIA,SAAStW,GAAI+wC,EAAOE,EAAgB5+C,GAClC,MAAMud,EAAIkhC,GAAYC,GACZ,IAANnhC,EACFmhC,EAAM/wC,IAAIixC,EAAgB5+C,GACb,IAANud,EACPmhC,EAAMj3C,IAAIzH,GAEV0+C,EAAME,GAAkB5+C,CAC5B,CAQA,SAASi+C,GAAMh4C,GACb,OAAOA,aAAkB+G,GAC3B,CACA,SAASkxC,GAAMj4C,GACb,OAAOA,aAAkBuB,GAC3B,CACA,SAASq3C,GAAO5sB,GACd,OAAOA,EAAM6sB,OAAS7sB,EAAM8sB,KAC9B,CACA,SAASC,GAAY7iC,EAAMqiC,GACzB,GAAIP,GAAM9hC,GACR,OAAO,IAAInP,IAAImP,GAEjB,GAAI+hC,GAAM/hC,GACR,OAAO,IAAI3U,IAAI2U,GAEjB,GAAIzb,MAAMkH,QAAQuU,GAChB,OAAOzb,MAAMgB,UAAU0B,MAAMD,KAAKgZ,GACpC,MAAM8iC,EAAU,GAAc9iC,GAC9B,IAAe,IAAXqiC,GAA8B,eAAXA,IAA4BS,EAAS,CAC1D,MAAMC,EAAct/C,OAAOk6B,0BAA0B3d,UAC9C+iC,EAAYpB,IACnB,IAAI/1C,EAAO4xB,QAAQE,QAAQqlB,GAC3B,IAAK,IAAIz7C,EAAI,EAAGA,EAAIsE,EAAKvG,OAAQiC,IAAK,CACpC,MAAM2D,EAAMW,EAAKtE,GACXgiB,EAAOy5B,EAAY93C,IACH,IAAlBqe,EAAKjV,WACPiV,EAAKjV,UAAW,EAChBiV,EAAKoS,cAAe,IAElBpS,EAAKva,KAAOua,EAAK9X,OACnBuxC,EAAY93C,GAAO,CACjBywB,cAAc,EACdrnB,UAAU,EAEVqT,WAAY4B,EAAK5B,WACjB7jB,MAAOmc,EAAK/U,IAElB,CACA,OAAOxH,OAAOiD,OAAO2F,GAAe2T,GAAO+iC,EAC7C,CAAO,CACL,MAAMx8B,EAAQla,GAAe2T,GAC7B,GAAc,OAAVuG,GAAkBu8B,EACpB,MAAO,IAAK9iC,GAEd,MAAMrP,EAAMlN,OAAOiD,OAAO6f,GAC1B,OAAO9iB,OAAO21B,OAAOzoB,EAAKqP,EAC5B,CACF,CACA,SAAS4b,GAAOjrB,EAAKqyC,GAAO,GAC1B,OAAInnB,GAASlrB,IAAQ,GAAQA,KAASkxC,GAAYlxC,KAE9C2xC,GAAY3xC,GAAO,GACrBlN,OAAOy7B,iBAAiBvuB,EAAK,CAC3Ba,IAAKyxC,GACL33C,IAAK23C,GACLtnB,MAAOsnB,GACPloC,OAAQkoC,KAGZx/C,OAAOm4B,OAAOjrB,GACVqyC,GACFv/C,OAAOgM,OAAOkB,GAAKyhB,SAASvuB,GAAU+3B,GAAO/3B,GAAO,MAX7C8M,CAaX,CAIA,IAAIsyC,GAA2B,CAC7Bp/C,MAJF,WACE+9C,GAAI,EACN,GAIA,SAAS/lB,GAASlrB,GAChB,OAAY,OAARA,GAA+B,iBAARA,GAEpBlN,OAAOo4B,SAASlrB,EACzB,CAGA,IAcIuyC,GAdAC,GAAU,CAAC,EACf,SAASC,GAAUC,GACjB,MAAMC,EAASH,GAAQE,GAIvB,OAHKC,GACH1B,GAAI,GAEC0B,CACT,CAQA,SAASC,KACP,OAAOL,EACT,CAYA,SAASM,GAAkBC,EAAOC,GAC5BA,IACFN,GAAU,WACVK,EAAME,SAAW,GACjBF,EAAMG,gBAAkB,GACxBH,EAAMI,eAAiBH,EAE3B,CACA,SAASI,GAAYL,GACnBM,GAAWN,GACXA,EAAMO,QAAQ5xB,QAAQ6xB,IACtBR,EAAMO,QAAU,IAClB,CACA,SAASD,GAAWN,GACdA,IAAUP,KACZA,GAAeO,EAAMS,QAEzB,CACA,SAASC,GAAWC,GAClB,OAAOlB,GA7BA,CACLc,QAAS,GACTE,QA2BgChB,GA1BhCmB,OA0B8CD,EAvB9CE,gBAAgB,EAChBC,mBAAoB,EAuBxB,CACA,SAASN,GAAY5a,GACnB,MAAMvT,EAAQuT,EAAMsY,IACA,IAAhB7rB,EAAM0sB,OAA4C,IAAhB1sB,EAAM0sB,MAC1C1sB,EAAM0uB,UAEN1uB,EAAM2uB,UAAW,CACrB,CAGA,SAASC,GAAclgD,EAAQi/C,GAC7BA,EAAMc,mBAAqBd,EAAMO,QAAQ3+C,OACzC,MAAMs/C,EAAYlB,EAAMO,QAAQ,GA2BhC,YA1B8B,IAAXx/C,GAAqBA,IAAWmgD,GAE7CA,EAAUhD,IAAaiD,YACzBd,GAAYL,GACZ7B,GAAI,IAEFC,GAAYr9C,KACdA,EAASqgD,GAASpB,EAAOj/C,GACpBi/C,EAAMS,SACTY,GAAYrB,EAAOj/C,IAEnBi/C,EAAME,UACRP,GAAU,WAAW2B,4BACnBJ,EAAUhD,IAAaiB,MACvBp+C,EACAi/C,EAAME,SACNF,EAAMG,kBAIVp/C,EAASqgD,GAASpB,EAAOkB,EAAW,IAEtCb,GAAYL,GACRA,EAAME,UACRF,EAAMI,eAAeJ,EAAME,SAAUF,EAAMG,iBAEtCp/C,IAAWi9C,GAAUj9C,OAAS,CACvC,CACA,SAASqgD,GAASG,EAAWnhD,EAAO+L,GAClC,GAAIisB,GAASh4B,GACX,OAAOA,EACT,MAAMohD,EAAqBD,EAAUX,OAAOa,2BACtCpvB,EAAQjyB,EAAM89C,IACpB,IAAK7rB,EAMH,OALAqsB,GACEt+C,GACA,CAACoH,EAAKk6C,IAAeC,GAAiBJ,EAAWlvB,EAAOjyB,EAAOoH,EAAKk6C,EAAYv1C,IAChFq1C,GAEKphD,EAET,GAAIiyB,EAAMuvB,SAAWL,EACnB,OAAOnhD,EACT,IAAKiyB,EAAM8uB,UAET,OADAE,GAAYE,EAAWlvB,EAAM8sB,OAAO,GAC7B9sB,EAAM8sB,MAEf,IAAK9sB,EAAMwvB,WAAY,CACrBxvB,EAAMwvB,YAAa,EACnBxvB,EAAMuvB,OAAOd,qBACb,MAAM//C,EAASsxB,EAAM6sB,MACrB,IAAI4C,EAAa/gD,EACbghD,GAAS,EACO,IAAhB1vB,EAAM0sB,QACR+C,EAAa,IAAIl6C,IAAI7G,GACrBA,EAAOm3B,QACP6pB,GAAS,GAEXrD,GACEoD,GACA,CAACt6C,EAAKk6C,IAAeC,GACnBJ,EACAlvB,EACAtxB,EACAyG,EACAk6C,EACAv1C,EACA41C,IAEFP,GAEFH,GAAYE,EAAWxgD,GAAQ,GAC3BoL,GAAQo1C,EAAUrB,UACpBP,GAAU,WAAWqC,iBACnB3vB,EACAlmB,EACAo1C,EAAUrB,SACVqB,EAAUpB,gBAGhB,CACA,OAAO9tB,EAAM6sB,KACf,CACA,SAASyC,GAAiBJ,EAAWU,EAAaC,EAAc79B,EAAMq9B,EAAYS,EAAUC,GAC1F,GAAkB,MAAdV,EACF,OAEF,GAA0B,iBAAfA,IAA4BU,EACrC,OAEF,MAAMC,EAAgBjqB,GAASspB,GAC/B,IAAIW,GAAkBD,EAAtB,CAKA,GAAI,GAAQV,GAAa,CACvB,MAEM9L,EAAMwL,GAASG,EAAWG,EAFnBS,GAAYF,GAAqC,IAAtBA,EAAYlD,QACnDl9C,GAAIogD,EAAYK,UAAWj+B,GAAQ89B,EAASz+C,OAAO2gB,QAAQ,GAG5D,GADAtW,GAAIm0C,EAAc79B,EAAMuxB,IACpB,GAAQA,GAGV,OAFA2L,EAAUV,gBAAiB,CAG/B,MAAWuB,GACTF,EAAar6C,IAAI65C,GAEnB,GAAItD,GAAYsD,KAAgBW,EAAe,CAC7C,IAAKd,EAAUX,OAAO2B,aAAehB,EAAUT,mBAAqB,EAClE,OAEF,GAAImB,GAAeA,EAAY9C,OAAS8C,EAAY9C,MAAM96B,KAAUq9B,GAAcW,EAChF,OAEFjB,GAASG,EAAWG,GACdO,GAAgBA,EAAYL,OAAOnB,SAA4B,iBAATp8B,KAAsBg6B,GAAM6D,GAAgBA,EAAargD,IAAIwiB,GAAQrkB,OAAO8B,UAAU0T,qBAAqBjS,KAAK2+C,EAAc79B,KACxLg9B,GAAYE,EAAWG,EAC3B,CAzBA,CA0BF,CACA,SAASL,GAAYrB,EAAO5/C,EAAOm/C,GAAO,IACnCS,EAAMS,SAAWT,EAAMY,OAAO2B,aAAevC,EAAMa,gBACtD1oB,GAAO/3B,EAAOm/C,EAElB,CAuCA,IAAIiD,GAAc,CAChB,GAAAl3C,CAAI+mB,EAAOhO,GACT,GAAIA,IAAS65B,GACX,OAAO7rB,EACT,MAAM/rB,EAAS24C,GAAO5sB,GACtB,IAAKxwB,GAAIyE,EAAQ+d,GACf,OAwGN,SAA2BgO,EAAO/rB,EAAQ+d,GACxC,MAAMwB,EAAO48B,GAAuBn8C,EAAQ+d,GAC5C,OAAOwB,EAAO,UAAWA,EAAOA,EAAKzlB,MAGnCylB,EAAKva,KAAK/H,KAAK8uB,EAAMqwB,aACnB,CACN,CA/GaC,CAAkBtwB,EAAO/rB,EAAQ+d,GAE1C,MAAMjkB,EAAQkG,EAAO+d,GACrB,OAAIgO,EAAMwvB,aAAezD,GAAYh+C,GAC5BA,EAELA,IAAUwiD,GAAKvwB,EAAM8sB,MAAO96B,IAC9Bw+B,GAAYxwB,GACLA,EAAM6sB,MAAM76B,GAAQy+B,GAAY1iD,EAAOiyB,IAEzCjyB,CACT,EACAyB,IAAG,CAACwwB,EAAOhO,IACFA,KAAQ46B,GAAO5sB,GAExB4H,QAAQ5H,GACC0H,QAAQE,QAAQglB,GAAO5sB,IAEhC,GAAAtkB,CAAIskB,EAAOhO,EAAMjkB,GACf,MAAMylB,EAAO48B,GAAuBxD,GAAO5sB,GAAQhO,GACnD,GAAIwB,GAAM9X,IAER,OADA8X,EAAK9X,IAAIxK,KAAK8uB,EAAMqwB,OAAQtiD,IACrB,EAET,IAAKiyB,EAAM8uB,UAAW,CACpB,MAAM4B,EAAWH,GAAK3D,GAAO5sB,GAAQhO,GAC/BsY,EAAeomB,IAAW7E,IAChC,GAAIvhB,GAAgBA,EAAawiB,QAAU/+C,EAGzC,OAFAiyB,EAAM6sB,MAAM76B,GAAQjkB,EACpBiyB,EAAMiwB,UAAUj+B,IAAQ,GACjB,EAET,GA5VN,SAAYve,EAAGmD,GACb,OAAInD,IAAMmD,EACK,IAANnD,GAAW,EAAIA,GAAM,EAAImD,EAEzBnD,GAAMA,GAAKmD,GAAMA,CAE5B,CAsVU/B,CAAG9G,EAAO2iD,UAAwB,IAAV3iD,GAAoByB,GAAIwwB,EAAM8sB,MAAO96B,IAC/D,OAAO,EACTw+B,GAAYxwB,GACZ2wB,GAAY3wB,EACd,CACA,OAAIA,EAAM6sB,MAAM76B,KAAUjkB,SACf,IAAVA,GAAoBikB,KAAQgO,EAAM6sB,QACnCz2C,OAAO0L,MAAM/T,IAAUqI,OAAO0L,MAAMke,EAAM6sB,MAAM76B,MAEhDgO,EAAM6sB,MAAM76B,GAAQjkB,EACpBiyB,EAAMiwB,UAAUj+B,IAAQ,IAFf,CAIX,EACA8V,eAAc,CAAC9H,EAAOhO,UACY,IAA5Bu+B,GAAKvwB,EAAM8sB,MAAO96B,IAAoBA,KAAQgO,EAAM8sB,OACtD9sB,EAAMiwB,UAAUj+B,IAAQ,EACxBw+B,GAAYxwB,GACZ2wB,GAAY3wB,WAELA,EAAMiwB,UAAUj+B,GAErBgO,EAAM6sB,cACD7sB,EAAM6sB,MAAM76B,IAEd,GAIT,wBAAA1T,CAAyB0hB,EAAOhO,GAC9B,MAAM4+B,EAAQhE,GAAO5sB,GACfxM,EAAOkU,QAAQppB,yBAAyBsyC,EAAO5+B,GACrD,OAAKwB,EAEE,CACLjV,UAAU,EACVqnB,aAA8B,IAAhB5F,EAAM0sB,OAAoC,WAAT16B,EAC/CJ,WAAY4B,EAAK5B,WACjB7jB,MAAO6iD,EAAM5+B,IALNwB,CAOX,EACA,cAAA5lB,GACEk+C,GAAI,GACN,EACAv1C,eAAeypB,GACNzpB,GAAeypB,EAAM8sB,OAE9B,cAAA/kB,GACE+jB,GAAI,GACN,GAEE+E,GAAa,CAAC,EAiBlB,SAASN,GAAKhd,EAAOvhB,GACnB,MAAMgO,EAAQuT,EAAMsY,IAEpB,OADe7rB,EAAQ4sB,GAAO5sB,GAASuT,GACzBvhB,EAChB,CASA,SAASo+B,GAAuBn8C,EAAQ+d,GACtC,KAAMA,KAAQ/d,GACZ,OACF,IAAIwc,EAAQla,GAAetC,GAC3B,KAAOwc,GAAO,CACZ,MAAM+C,EAAO7lB,OAAO2Q,yBAAyBmS,EAAOuB,GACpD,GAAIwB,EACF,OAAOA,EACT/C,EAAQla,GAAeka,EACzB,CAEF,CACA,SAASkgC,GAAY3wB,GACdA,EAAM8uB,YACT9uB,EAAM8uB,WAAY,EACd9uB,EAAMouB,SACRuC,GAAY3wB,EAAMouB,SAGxB,CACA,SAASoC,GAAYxwB,GACdA,EAAM6sB,QACT7sB,EAAM6sB,MAAQE,GACZ/sB,EAAM8sB,MACN9sB,EAAMuvB,OAAOhB,OAAOuC,uBAG1B,CAxDAzE,GAAK8D,IAAa,CAACh7C,EAAKrF,KACtB+gD,GAAW17C,GAAO,WAEhB,OADAhD,UAAU,GAAKA,UAAU,GAAG,GACrBrC,EAAGhB,MAAMvB,KAAM4E,UACxB,CAAC,IAEH0+C,GAAW/oB,eAAiB,SAAS9H,EAAOhO,GAG1C,OAAO6+B,GAAWn1C,IAAIxK,KAAK3D,KAAMyyB,EAAOhO,OAAM,EAChD,EACA6+B,GAAWn1C,IAAM,SAASskB,EAAOhO,EAAMjkB,GAGrC,OAAOoiD,GAAYz0C,IAAIxK,KAAK3D,KAAMyyB,EAAM,GAAIhO,EAAMjkB,EAAOiyB,EAAM,GACjE,EA0MA,SAASywB,GAAY1iD,EAAOsW,GAC1B,MAAMkvB,EAAQyY,GAAMj+C,GAASu/C,GAAU,UAAUyD,UAAUhjD,EAAOsW,GAAU4nC,GAAMl+C,GAASu/C,GAAU,UAAU0D,UAAUjjD,EAAOsW,GAvVlI,SAA0B6F,EAAM7F,GAC9B,MAAM1O,EAAUlH,MAAMkH,QAAQuU,GACxB8V,EAAQ,CACZ0sB,MAAO/2C,EAAU,EAAgB,EAEjC45C,OAAQlrC,EAASA,EAAOkrC,OAAS9B,KAEjCqB,WAAW,EAEXU,YAAY,EAEZS,UAAW,CAAC,EAEZ7B,QAAS/pC,EAETyoC,MAAO5iC,EAEPmmC,OAAQ,KAGRxD,MAAO,KAEP6B,QAAS,KACTuC,WAAW,GAEb,IAAIj9C,EAASgsB,EACTkxB,EAAQf,GACRx6C,IACF3B,EAAS,CAACgsB,GACVkxB,EAAQL,IAEV,MAAM,OAAE1pB,EAAM,MAAEC,GAAUH,MAAMC,UAAUlzB,EAAQk9C,GAGlD,OAFAlxB,EAAMqwB,OAASjpB,EACfpH,EAAM0uB,QAAUvnB,EACTC,CACT,CAoT4I+pB,CAAiBpjD,EAAOsW,GAGlK,OAFcA,EAASA,EAAOkrC,OAAS9B,MACjCS,QAAQ19C,KAAK+iC,GACZA,CACT,CAQA,SAAS6d,GAAYrjD,GACnB,IAAKg+C,GAAYh+C,IAAUg4B,GAASh4B,GAClC,OAAOA,EACT,MAAMiyB,EAAQjyB,EAAM89C,IACpB,IAAIwF,EACA9E,GAAS,EACb,GAAIvsB,EAAO,CACT,IAAKA,EAAM8uB,UACT,OAAO9uB,EAAM8sB,MACf9sB,EAAMwvB,YAAa,EACnB6B,EAAOtE,GAAYh/C,EAAOiyB,EAAMuvB,OAAOhB,OAAOuC,uBAC9CvE,EAASvsB,EAAMuvB,OAAOhB,OAAOa,0BAC/B,MACEiC,EAAOtE,GAAYh/C,GAAO,GAY5B,OAVAs+C,GACEgF,GACA,CAACl8C,EAAKk6C,KACJ3zC,GAAI21C,EAAMl8C,EAAKi8C,GAAY/B,GAAY,GAEzC9C,GAEEvsB,IACFA,EAAMwvB,YAAa,GAEd6B,CACT,CAyeA,IAAIC,GAAQ,IA9qBC,MACX,WAAA50C,CAAYmS,GACVthB,KAAK2iD,aAAc,EACnB3iD,KAAKujD,uBAAwB,EAC7BvjD,KAAKgkD,qBAAsB,EAoB3BhkD,KAAK06B,QAAU,CAAC/d,EAAMsnC,EAAQ5D,KAC5B,GAAoB,mBAAT1jC,GAAyC,mBAAXsnC,EAAuB,CAC9D,MAAMC,EAAcD,EACpBA,EAAStnC,EACT,MAAMwnC,EAAOnkD,KACb,OAAO,SAAwBokD,EAAQF,KAAgB5iD,GACrD,OAAO6iD,EAAKzpB,QAAQ0pB,GAAQpe,GAAUie,EAAOtgD,KAAK3D,KAAMgmC,KAAU1kC,IACpE,CACF,CAKA,IAAIH,EACJ,GALsB,mBAAX8iD,GACT1F,GAAI,QACgB,IAAlB8B,GAAqD,mBAAlBA,GACrC9B,GAAI,GAEFC,GAAY7hC,GAAO,CACrB,MAAMyjC,EAAQU,GAAW9gD,MACnB65B,EAAQqpB,GAAYvmC,OAAM,GAChC,IAAI0nC,GAAW,EACf,IACEljD,EAAS8iD,EAAOpqB,GAChBwqB,GAAW,CACb,CAAE,QACIA,EACF5D,GAAYL,GAEZM,GAAWN,EACf,CAEA,OADAD,GAAkBC,EAAOC,GAClBgB,GAAclgD,EAAQi/C,EAC/B,CAAO,IAAKzjC,GAAwB,iBAATA,EAAmB,CAQ5C,GAPAxb,EAAS8iD,EAAOtnC,QACD,IAAXxb,IACFA,EAASwb,GACPxb,IAAWi9C,KACbj9C,OAAS,GACPnB,KAAK2iD,aACPpqB,GAAOp3B,GAAQ,GACbk/C,EAAe,CACjB,MAAM9+B,EAAI,GACJ+iC,EAAK,GACXvE,GAAU,WAAW2B,4BAA4B/kC,EAAMxb,EAAQogB,EAAG+iC,GAClEjE,EAAc9+B,EAAG+iC,EACnB,CACA,OAAOnjD,CACT,CACEo9C,GAAI,EAAQ,EAEhBv+C,KAAK66B,mBAAqB,CAACle,EAAMsnC,KAC/B,GAAoB,mBAATtnC,EACT,MAAO,CAAC8V,KAAUnxB,IAAStB,KAAK66B,mBAAmBpI,GAAQuT,GAAUrpB,EAAKqpB,KAAU1kC,KAEtF,IAAIijD,EAASC,EACb,MAAMrjD,EAASnB,KAAK06B,QAAQ/d,EAAMsnC,GAAQ,CAAC1iC,EAAG+iC,KAC5CC,EAAUhjC,EACVijC,EAAiBF,CAAE,IAErB,MAAO,CAACnjD,EAAQojD,EAASC,EAAe,EAER,kBAAvBljC,GAAQ0Z,YACjBh7B,KAAKi7B,cAAc3Z,EAAO0Z,YACgB,kBAAjC1Z,GAAQmjC,sBACjBzkD,KAAK0kD,wBAAwBpjC,EAAOmjC,sBACI,kBAA/BnjC,GAAQsgC,oBACjB5hD,KAAK2kD,sBAAsBrjC,EAAOsgC,mBACtC,CACA,WAAA1mB,CAAYve,GACL6hC,GAAY7hC,IACf4hC,GAAI,GACF,GAAQ5hC,KACVA,EAyEN,SAAiBnc,GACV,GAAQA,IACX+9C,GAAI,IACN,OAAOsF,GAAYrjD,EACrB,CA7Ea,CAAQmc,IACjB,MAAMyjC,EAAQU,GAAW9gD,MACnB65B,EAAQqpB,GAAYvmC,OAAM,GAGhC,OAFAkd,EAAMykB,IAAaoF,WAAY,EAC/BhD,GAAWN,GACJvmB,CACT,CACA,WAAAsB,CAAY6K,EAAOqa,GACjB,MAAM5tB,EAAQuT,GAASA,EAAMsY,IACxB7rB,GAAUA,EAAMixB,WACnBnF,GAAI,GACN,MAAQyD,OAAQ5B,GAAU3tB,EAE1B,OADA0tB,GAAkBC,EAAOC,GAClBgB,QAAc,EAAQjB,EAC/B,CAMA,aAAAnlB,CAAcz6B,GACZR,KAAK2iD,YAAcniD,CACrB,CAMA,uBAAAkkD,CAAwBlkD,GACtBR,KAAKujD,sBAAwB/iD,CAC/B,CAOA,qBAAAmkD,CAAsBnkD,GACpBR,KAAKgkD,oBAAsBxjD,CAC7B,CACA,wBAAAqhD,GACE,OAAO7hD,KAAKgkD,mBACd,CACA,YAAA5oB,CAAaze,EAAM4nC,GACjB,IAAItgD,EACJ,IAAKA,EAAIsgD,EAAQviD,OAAS,EAAGiC,GAAK,EAAGA,IAAK,CACxC,MAAM2gD,EAAQL,EAAQtgD,GACtB,GAA0B,IAAtB2gD,EAAMr4C,KAAKvK,QAA6B,YAAb4iD,EAAMvpB,GAAkB,CACrD1e,EAAOioC,EAAMpkD,MACb,KACF,CACF,CACIyD,GAAK,IACPsgD,EAAUA,EAAQ3gD,MAAMK,EAAI,IAE9B,MAAM4gD,EAAmB9E,GAAU,WAAW+E,cAC9C,OAAI,GAAQnoC,GACHkoC,EAAiBloC,EAAM4nC,GAEzBvkD,KAAK06B,QACV/d,GACCqpB,GAAU6e,EAAiB7e,EAAOue,IAEvC,GAmhBYR,GAAMrpB,QC3sCpB,IAcMqqB,GAAcngB,GAAY,CAC9BnhC,KAAM,SACNqhC,aAhBgC,CAChClO,SAAU,CACR/G,OAAQ,aACRH,MAAO,SACPI,cAAe,SACfkH,WAAY,SAEd3f,KAAM,CACJsO,MAAO,EACPC,OAAQ,GAEVgL,QAAS,IAMTmN,SAAU,CACRinB,aAAAA,CAAcvyB,EAAO6K,GACnB7K,EAAMpb,KAAKsO,MAAQ2X,EAAO1M,QAAQjL,MAClC8M,EAAMpb,KAAKuO,OAAS0X,EAAO1M,QAAQhL,MACrC,EACAq/B,iBAAAA,CAAkBxyB,EAAO6K,GACvB7K,EAAMmE,SAASlH,MAAQ4N,EAAO1M,QAAQlB,MACtC+C,EAAMmE,SAAS/G,OAASyN,EAAO1M,QAAQf,OACvC4C,EAAMmE,SAAS9G,cAAgBwN,EAAO1M,QAAQd,cAC9C2C,EAAMmE,SAASI,WAAasG,EAAO1M,QAAQoG,UAC7C,EACAkuB,iBAAkB,CAChBxoB,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAM7B,QAAQ3tB,KAAeq6B,EAAO1M,QACtC,EACA4V,QAAS2I,MAEXgW,qBAAsB,CACpBzoB,OAAAA,CACEjK,EACA6K,GAKA,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,QACxBprB,EAAQ0E,GAAQuoB,GAAO7B,QAAQ3S,QAAkBw4B,GACnDjxC,GAAS,IACXitB,EAAM7B,QAAQprB,GAAmBo4B,EAErC,EACA4I,QAAS2I,MAKXiW,oBAAqB,CACnB1oB,OAAAA,CAAQjK,EAAO6K,GACb,IAAM93B,EAAQ0E,GAAQuoB,GAAO7B,QAAQ3S,QAAkBqf,EAAO1M,SAC1DprB,GAAS,GACXitB,EAAM7B,QAAQyM,OAAO73B,EAAO,EAEhC,EACAghC,QAAS2I,UAKF,cAAE6V,GAAa,kBAAEC,GAAiB,iBAAEC,GAAgB,qBAAEC,GAAoB,oBAAEC,IACvFL,GAAYte,QAED4e,GAAgBN,GAAYroB,Q,mvCC7EzC,SAAS3K,GAActF,GACrB,OAAOA,EAAMjsB,KACf,CASA,SAAS8kD,GAAcjgC,GACrB,IAAM,eAAEkgC,GAAkClgC,EAAfmgC,E,6WAAUr/B,CAAKd,EAAKe,IACzCq/B,EAAe5zB,GAAe0zB,EAAgBlgC,EAAMqgC,cAAe3zB,IACnE4zB,EAAY/3B,GAAAA,GAAA,GACb43B,GAAU,IACb50B,QAAS60B,IAGX,OAAIv8C,EAAAA,eAAqBmc,EAAMugC,SACtB18C,EAAAA,aAAmBmc,EAAMugC,QAASD,GAEd,mBAAlBtgC,EAAMugC,QACR18C,EAAAA,cAAoBmc,EAAMugC,QAAgBD,GAG5Cz8C,EAAAA,cAACqoB,GAAyBo0B,EACnC,CA6GA,SAASE,GAAyBxgC,GAChC,IAAM+M,EAAWF,KAIjB,OAHA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAAS6yB,GAAkB5/B,GAAO,GACjC,CAAC+M,EAAU/M,IACP,IACT,CAEA,SAASygC,GAAqBzgC,GAC5B,IAAM+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAAS4yB,GAAc3/B,IAChB,KACL+M,EAAS4yB,GAAc,CAAEr/B,MAAO,EAAGC,OAAQ,IAAK,IAEjD,CAACwM,EAAU/M,IACP,IACT,CAsBO,IAAM0gC,GAAqB,CAChCr2B,MAAO,SACPC,SAAU,GACVC,cAAe,OACfoH,WAAY,QACZnH,OAAQ,aACRC,cAAe,UAOV,SAASk2B,GAAOx0B,GACrB,IAAMnM,EAAQ+J,GAAoBoC,EAAcu0B,IAC1CR,EC1MChzB,GAAesE,ID2MhBovB,EAA0Bt/B,IAC1BgL,EAAS4rB,MACP53B,MAAOq4B,EAAgBp4B,OAAQq4B,EAAe,aAAEiI,EAAcC,OAAQC,GAAoB/gC,GAG3FgS,EAAiBI,GAAqBN,GAAiB,CAACouB,IACzDrN,EAAamF,KACblF,EAAcmF,KACpB,GAAkB,MAAdpF,GAAqC,MAAfC,EACxB,OAAO,KAET,IAAMkO,EAAWnO,IAAcvmB,aAAM,EAANA,EAAQ4F,OAAQ,KAAM5F,aAAM,EAANA,EAAQme,QAAS,GAChEwW,EAhDR,SACEz2B,EACAjK,EACAD,EACA0gC,GAEA,MAAe,aAAXx2B,GAAmC,MAAVjK,EACpB,CACLA,UAGW,eAAXiK,EACK,CACLlK,MAAOA,GAAS0gC,GAIb,IACT,CA8BwBE,CAAiBlhC,EAAMwK,OAAQouB,EAAiBD,EAAgBqI,GAEhFG,EAAwCJ,EAC1CF,EAAYt4B,GAAAA,GAAA,CAEV64B,SAAU,WACV9gC,OAAO2gC,aAAa,EAAbA,EAAe3gC,QAASq4B,GAAkB,OACjDp4B,QAAQ0gC,aAAa,EAAbA,EAAe1gC,SAAUq4B,GAAmB,QA/K5D,SACEl4B,EACAV,EACAsM,EACAumB,EACAC,EACAtgB,GAEA,IACI6uB,EAAMC,GADJ,OAAE92B,EAAM,MAAEH,EAAK,cAAEI,GAAkBzK,EA0BzC,OAtBGU,SACgBjhB,IAAfihB,EAAMwR,MAAqC,OAAfxR,EAAMwR,WAAmCzyB,IAAhBihB,EAAM+pB,OAAuC,OAAhB/pB,EAAM+pB,SAGxF4W,EADY,WAAVh3B,GAAiC,aAAXG,EACjB,CAAE0H,OAAQ2gB,GAAc,GAAKrgB,EAAIlS,OAAS,GAEhC,UAAV+J,EAAoB,CAAEogB,MAAQne,GAAUA,EAAOme,OAAU,GAAM,CAAEvY,KAAO5F,GAAUA,EAAO4F,MAAS,IAK1GxR,SACejhB,IAAdihB,EAAMyR,KAAmC,OAAdzR,EAAMyR,UAAmC1yB,IAAjBihB,EAAMgqB,QAAyC,OAAjBhqB,EAAMgqB,UAGvF4W,EADoB,WAAlB72B,EACK,CAAE0H,MAAO2gB,GAAe,GAAKtgB,EAAIjS,QAAU,GAG9B,WAAlBkK,EAA6B,CAAEigB,OAASpe,GAAUA,EAAOoe,QAAW,GAAM,CAAEvY,IAAM7F,GAAUA,EAAO6F,KAAQ,IAIjH5J,GAAAA,GAAA,GAAY84B,GAASC,EACvB,CA6IWC,CAAmBV,EAAc7gC,EAAOsM,EAAQumB,EAAYC,EAAa9gB,IACzE6uB,GAGHW,EAAeT,QAAAA,EAAmBH,EAExC,GAAoB,MAAhBY,GAA0C,MAAlBtB,EAC1B,OAAO,KAGT,IAAMuB,EACJ59C,EAAAA,cAAA,OAAK4c,UAAU,0BAA0BC,MAAOygC,EAAY/gC,IAAKgS,GAC/DvuB,EAAAA,cAAC28C,GAAwB,CACvBh2B,OAAQxK,EAAMwK,OACdH,MAAOrK,EAAMqK,MACbI,cAAezK,EAAMyK,cACrBkH,WAAY3R,EAAM2R,cAGlBovB,GAAmBl9C,EAAAA,cAAC48C,GAAoB,CAACngC,MAAO0R,EAAgB1R,MAAOC,OAAQyR,EAAgBzR,SACjG1c,EAAAA,cAACo8C,GAAa/+B,GAAA,GACRlB,EACAihC,EAAa,CACjB30B,OAAQA,EACRumB,WAAYA,EACZC,YAAaA,EACboN,eAAgBA,MAKtB,OAAOwB,EAAAA,EAAAA,cAAaD,EAAeD,EACrC,C,6tCE7PA,SAASG,GAAiBxmD,GACxB,OAAOU,MAAMkH,QAAQ5H,IAAUirB,GAAWjrB,EAAM,KAAOirB,GAAWjrB,EAAM,IAAMA,EAAMoI,KAAK,OAASpI,CACpG,CF6PAwlD,GAAOt0C,YAAc,SE1Md,IAAMu1C,GAAoC,CAC/CC,UAAW,MACXC,aAAc,CACZx1B,OAAQ,EACRD,QAAS,GACT01B,gBAAiB,OACjBC,OAAQ,iBACRC,WAAY,UAEdr2B,UAAW,CACTC,QAAS,QACTq2B,WAAY,EACZC,cAAe,EACfn3B,MAAO,QAETo3B,WAAY,CAAC,EACbC,oBAAoB,GASTC,GACXtiC,IAEA,IAAM,UACJ6hC,EAAYD,GAAkCC,UAAS,aACvDC,EAAY,UACZl2B,EAAS,WACTw2B,EAAaR,GAAkCQ,WAAU,QACzD72B,EAAO,UACPI,EAAS,WACTgG,EAAU,iBACV4wB,EAAgB,eAChBC,EAAc,MACdjoB,EAAK,eACLkoB,EAAc,mBACdJ,EAAqBT,GAAkCS,oBACrDriC,EAsDEoM,EAA+B7D,GAAAA,GAAA,GAChCq5B,GAAkCE,cAClCA,GAECY,EAAen6B,GAAA,CACnB+D,OAAQ,GACL81B,GAECO,GAAYt7B,GAAUkT,GACxBqoB,EAAwBD,EAAWpoB,EAAQ,GACzCsoB,EAAYvjC,EAAK,2BAA4BijC,GAC7CO,EAAUxjC,EAAK,yBAA0BkjC,GAE3CG,GAAYF,GAAZE,MAA8Bp3B,IAChCq3B,EAAaH,EAAeloB,EAAOhP,IAGrC,IAAMw3B,EAA0BV,EAC3B,CACCW,KAAM,SACN,YAAa,aAEf,CAAC,EAEL,OACEn/C,EAAAA,cAAA,MAAAqd,GAAA,CAAKT,UAAWoiC,EAAWniC,MAAO0L,GAAgB22B,GAChDl/C,EAAAA,cAAA,KAAG4c,UAAWqiC,EAASpiC,MAAOgiC,GAC3B7+C,EAAAA,eAAqB++C,GAAcA,EAAa,GAAHnkD,OAAMmkD,IA/EpCK,MACpB,GAAI13B,GAAWA,EAAQ5uB,OAAQ,CAC7B,IAEM2D,GAASqxB,EAAa3iB,KAAOuc,EAASoG,GAAcpG,GAASjoB,KACjE,CAAC8jB,EAA+BxoB,KAC9B,GAAmB,SAAfwoB,EAAMzd,KACR,OAAO,KAGT,IAAMqiB,EAA2C5E,EAAMuE,WAAaA,GAAag2B,IAC3E,MAAExmD,EAAK,KAAEiD,GAASgpB,EACpB6E,EAA8B9wB,EAC9B+nD,EAA6B9kD,EACjC,GAAI4tB,EAAgB,CAClB,IAAMm3B,EAAYn3B,EAAe7wB,EAAOiD,EAAMgpB,EAAOxoB,EAAG2sB,GACxD,GAAI1vB,MAAMkH,QAAQogD,IACfl3B,EAAYi3B,GAAaC,MACrB,IAAiB,MAAbA,EAGT,OAAO,KAFPl3B,EAAak3B,CAGf,CACF,CAEA,IAAMC,EAAc76B,GAAAA,GAAA,GACfq5B,GAAkCh2B,WAAS,IAC9CZ,MAAO5D,EAAM4D,OAAS42B,GAAkCh2B,UAAUZ,OAC/DY,GAGL,OACE/nB,EAAAA,cAAA,MAAI4c,UAAU,wBAAwBle,IAAG,gBAAA9D,OAAkBG,GAAK8hB,MAAO0iC,GACpEh9B,GAAW88B,GAAar/C,EAAAA,cAAA,QAAM4c,UAAU,8BAA8ByiC,GAAoB,KAC1F98B,GAAW88B,GAAar/C,EAAAA,cAAA,QAAM4c,UAAU,mCAAmCohC,GAAoB,KAChGh+C,EAAAA,cAAA,QAAM4c,UAAU,+BAA+BwL,GAC/CpoB,EAAAA,cAAA,QAAM4c,UAAU,8BAA8B2G,EAAMi8B,MAAQ,IACzD,IAKX,OACEx/C,EAAAA,cAAA,MAAI4c,UAAU,6BAA6BC,MAzC3B,CAAE2L,QAAS,EAAGC,OAAQ,IA0CnChsB,EAGP,CAEA,OAAO,IAAI,EAgCR2iD,GACG,ECtLJK,GAAmB,2BAEnBC,GAAgC,CAAEC,WAAY,UAE7C,SAASC,GAAsBr7B,GAQ3B,IAR4B,WACrCqkB,EAAU,WACViX,EAAU,WACVC,GAKDv7B,EACC,OAAO9I,EAAKgkC,GAAkB,CAC5B,CAAC,GAAD7kD,OAAI6kD,GAAgB,WAClBn9B,GAASu9B,IAAejX,GAActmB,GAASsmB,EAAW5rC,IAAM6iD,GAAcjX,EAAW5rC,EAC3F,CAAC,GAADpC,OAAI6kD,GAAgB,UAClBn9B,GAASu9B,IAAejX,GAActmB,GAASsmB,EAAW5rC,IAAM6iD,EAAajX,EAAW5rC,EAC1F,CAAC,GAADpC,OAAI6kD,GAAgB,YAClBn9B,GAASw9B,IAAelX,GAActmB,GAASsmB,EAAWzoC,IAAM2/C,GAAclX,EAAWzoC,EAC3F,CAAC,GAADvF,OAAI6kD,GAAgB,SAClBn9B,GAASw9B,IAAelX,GAActmB,GAASsmB,EAAWzoC,IAAM2/C,EAAalX,EAAWzoC,GAE9F,CAEO,SAAS4/C,GAAqBpsB,GAoB1B,IApB2B,mBACpCqsB,EAAkB,WAClBpX,EAAU,IACVlqC,EAAG,OACHirC,EAAM,SACN4T,EAAQ,iBACR0C,EAAgB,iBAChBC,EAAgB,QAChBvjC,EAAO,iBACPwjC,GAWDxsB,EACC,GAAI4pB,GAAYj7B,GAASi7B,EAAS7+C,IAChC,OAAO6+C,EAAS7+C,GAGlB,IAAMyrC,EAAWvB,EAAWlqC,GAAOwhD,GAAoBvW,EAAS,EAAIA,EAAS,GACvEO,EAAWtB,EAAWlqC,GAAOirC,EAEnC,GAAIqW,EAAmBthD,GACrB,OAAOuhD,EAAiBvhD,GAAOyrC,EAAWD,EAG5C,IAAMkW,EAAazjC,EAAQje,GAC3B,OAAkB,MAAd0hD,EACK,EAGLH,EAAiBvhD,GACKyrC,EACAiW,EAEft0C,KAAKlP,IAAIstC,EAAUkW,GAErBt0C,KAAKlP,IAAIutC,EAAUiW,GAGJ,MAApBD,EACK,EAEejW,EAAWgW,EACXE,EAAaD,EAE5Br0C,KAAKlP,IAAIutC,EAAUiW,GAErBt0C,KAAKlP,IAAIstC,EAAUkW,EAC5B,C,kgCCjDO,MAAMC,WAA2BC,EAAAA,cAA8Cr6C,WAAAA,GAAA,SAAAvK,WAAA6kD,GAAA,aAC5E,CACNC,WAAW,EACXC,sBAAuB,CAAEzjD,EAAG,EAAGmD,EAAG,KACnCogD,GAAA,sBAuBgB7mD,IACa,IAAAgnD,EAAAC,EAAAC,EAAAC,EAAV,WAAdnnD,EAAMgF,KACR5H,KAAKgqD,SAAS,CACZN,WAAW,EACXC,sBAAuB,CACrBzjD,EAA2B,QAA1B0jD,EAAuB,QAAvBC,EAAE7pD,KAAKqlB,MAAMysB,kBAAU,IAAA+X,OAAA,EAArBA,EAAuB3jD,SAAC,IAAA0jD,EAAAA,EAAI,EAC/BvgD,EAA2B,QAA1BygD,EAAuB,QAAvBC,EAAE/pD,KAAKqlB,MAAMysB,kBAAU,IAAAiY,OAAA,EAArBA,EAAuB1gD,SAAC,IAAAygD,EAAAA,EAAI,IAGrC,GACD,CA/BDG,iBAAAA,GACErnC,SAASrM,iBAAiB,UAAWvW,KAAKkqD,cAC5C,CAEAC,oBAAAA,GACEvnC,SAASmlB,oBAAoB,UAAW/nC,KAAKkqD,cAC/C,CAEAE,kBAAAA,GAAqB,IAAAC,EAAAC,EACdtqD,KAAKyyB,MAAMi3B,aAKO,QAArBW,EAAArqD,KAAKqlB,MAAMysB,kBAAU,IAAAuY,OAAA,EAArBA,EAAuBnkD,KAAMlG,KAAKyyB,MAAMk3B,sBAAsBzjD,IACzC,QAArBokD,EAAAtqD,KAAKqlB,MAAMysB,kBAAU,IAAAwY,OAAA,EAArBA,EAAuBjhD,KAAMrJ,KAAKyyB,MAAMk3B,sBAAsBtgD,IAE9DrJ,KAAKyyB,MAAMi3B,WAAY,GAE3B,CAcA/2C,MAAAA,GACE,IAAM,OACJ43C,EAAM,mBACNrB,EAAkB,kBAClBsB,EAAiB,gBACjBC,EAAe,SACf/kC,EAAQ,WACRosB,EAAU,WACV4Y,EAAU,kBACVC,EAAiB,OACjB9X,EAAM,SACN4T,EAAQ,iBACR0C,EAAgB,eAChByB,EAAc,QACd/kC,EAAO,aACPqgC,EAAY,gBACZ7uB,EAAe,SACfwzB,EAAQ,mBACRC,GACE9qD,KAAKqlB,MAEH0lC,EAA+B,iBAAXlY,EAAsBA,EAASA,EAAO3sC,EAC1D8kD,EAA8B,iBAAXnY,EAAsBA,EAASA,EAAOxpC,GAEzD,WAAE4hD,EAAU,cAAEC,GDIjB,SAA4BvU,GAoBsB,IACnDuU,EAA8BnC,EAAgCC,GArBhC,mBAClCE,EAAkB,WAClBpX,EAAU,UACVkZ,EAAS,WACTD,EAAU,SACVtE,EAAQ,iBACR0C,EAAgB,WAChBgC,EAAU,eACVP,EAAc,QACd/kC,GAWD8wB,EAkCC,OAREuU,EAxBEC,EAAWvlC,OAAS,GAAKulC,EAAWxlC,MAAQ,GAAKmsB,EAtChD,SAA0B2D,GAQf,IARgB,WAChCsT,EAAU,WACVC,EAAU,eACV4B,GAKDnV,EACC,MAAO,CACLxnB,UAAW28B,EAAc,eAAA9mD,OACNilD,EAAU,QAAAjlD,OAAOklD,EAAU,uBAAAllD,OAC7BilD,EAAU,QAAAjlD,OAAOklD,EAAU,OAEhD,CAgDoBoC,CAAkB,CAChCrC,WAxBFA,EAAaE,GAAsB,CACjCC,qBACApX,aACAlqC,IAAK,IACLirC,OAAQkY,EACRtE,WACA0C,mBACAC,iBAAkB+B,EAAWxlC,MAC7BE,UACAwjC,iBAAkBxjC,EAAQF,QAgB1BqjC,WAbFA,EAAaC,GAAsB,CACjCC,qBACApX,aACAlqC,IAAK,IACLirC,OAAQmY,EACRvE,WACA0C,mBACAC,iBAAkB+B,EAAWvlC,OAC7BC,UACAwjC,iBAAkBxjC,EAAQD,SAK1BglC,mBAGchC,GAEX,CACLsC,gBACAD,WAAYnC,GAAuB,CACjCC,aACAC,aACAlX,eAGN,CClE0CuZ,CAAoB,CACxDnC,qBACApX,aACAiZ,aACAC,YACAvE,WACA0C,mBACAgC,WAAY,CACVvlC,OAAQyR,EAAgBzR,OACxBD,MAAO0R,EAAgB1R,OAEzBilC,iBACA/kC,YAIIylC,EAAgCR,EAClC,CAAC,EAACl9B,GAAAA,GAAA,CAEA29B,WAAYZ,GAAqBJ,EAAS,aAAHzmD,OAAgB0mD,EAAiB,OAAA1mD,OAAM2mD,QAAoB3lD,GAC/FomD,GAAa,IAChBM,cAAe,OACf3C,YAAa7oD,KAAKyyB,MAAMi3B,WAAaa,GAAUG,EAAa,UAAY,SACxEjE,SAAU,WACVjvB,IAAK,EACLD,KAAM,IAGNivB,EAAyB54B,GAAAA,GAAA,GAC1B09B,GAAc,IACjBzC,YAAa7oD,KAAKyyB,MAAMi3B,WAAaa,GAAUG,EAAa,UAAY,UACrExE,GAGL,OAEEh9C,EAAAA,cAAA,OAEEuiD,MAAM,+BACNC,UAAW,EACX5lC,UAAWmlC,EACXllC,MAAOygC,EACP/gC,IAAKolC,GAEJnlC,EAGP,EClJK,IAAMimC,GAAuCA,KAAA,IAAA9O,EAAA,OACS,QADTA,EAClDtqB,IAAeE,GAASA,EAAMm5B,UAAUlE,4BAAmB,IAAA7K,GAAAA,CAAQ,ECHtD,cAAY,CCApB,SAAS9H,GAAM8W,EAAM3lD,EAAGmD,GAC7BwiD,EAAKC,SAAS7iC,eACX,EAAI4iC,EAAKnjC,IAAMmjC,EAAKjjC,KAAO,GAC3B,EAAIijC,EAAKljC,IAAMkjC,EAAKhjC,KAAO,GAC3BgjC,EAAKnjC,IAAM,EAAImjC,EAAKjjC,KAAO,GAC3BijC,EAAKljC,IAAM,EAAIkjC,EAAKhjC,KAAO,GAC3BgjC,EAAKnjC,IAAM,EAAImjC,EAAKjjC,IAAM1iB,GAAK,GAC/B2lD,EAAKljC,IAAM,EAAIkjC,EAAKhjC,IAAMxf,GAAK,EAEpC,CAEO,SAAS0iD,GAAMvpD,GACpBxC,KAAK8rD,SAAWtpD,CAClB,CCVA,SAASwpD,GAAYxpD,GACnBxC,KAAK8rD,SAAWtpD,CAClB,CCHA,SAASypD,GAAUzpD,GACjBxC,KAAK8rD,SAAWtpD,CAClB,CFWAupD,GAAM7pD,UAAY,CAChBgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAK0oB,IAAM1oB,KAAK4oB,IAChB5oB,KAAK2oB,IAAM3oB,KAAK6oB,IAAMzF,IACtBpjB,KAAKssD,OAAS,CAChB,EACAC,QAAS,WACP,OAAQvsD,KAAKssD,QACX,KAAK,EAAGvX,GAAM/0C,KAAMA,KAAK4oB,IAAK5oB,KAAK6oB,KACnC,KAAK,EAAG7oB,KAAK8rD,SAASxkC,OAAOtnB,KAAK4oB,IAAK5oB,KAAK6oB,MAE1C7oB,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACzEvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,KACxB,EACApX,MAAO,SAAS7uC,EAAGmD,GAEjB,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GAAKrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAAI,MAC/F,KAAK,EAAGrJ,KAAKssD,OAAS,EAAG,MACzB,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAK8rD,SAASxkC,QAAQ,EAAItnB,KAAK0oB,IAAM1oB,KAAK4oB,KAAO,GAAI,EAAI5oB,KAAK2oB,IAAM3oB,KAAK6oB,KAAO,GACzG,QAASksB,GAAM/0C,KAAMkG,EAAGmD,GAE1BrJ,KAAK0oB,IAAM1oB,KAAK4oB,IAAK5oB,KAAK4oB,IAAM1iB,EAChClG,KAAK2oB,IAAM3oB,KAAK6oB,IAAK7oB,KAAK6oB,IAAMxf,CAClC,GCtCF2iD,GAAY9pD,UAAY,CACtBgqD,UAAW,GACXE,QAAS,GACTC,UAAW,WACTrsD,KAAK0oB,IAAM1oB,KAAK4oB,IAAM5oB,KAAKwsD,IAAMxsD,KAAKysD,IAAMzsD,KAAK0sD,IACjD1sD,KAAK2oB,IAAM3oB,KAAK6oB,IAAM7oB,KAAK2sD,IAAM3sD,KAAK4sD,IAAM5sD,KAAK6sD,IAAMzpC,IACvDpjB,KAAKssD,OAAS,CAChB,EACAC,QAAS,WACP,OAAQvsD,KAAKssD,QACX,KAAK,EACHtsD,KAAK8rD,SAAS1kC,OAAOpnB,KAAKwsD,IAAKxsD,KAAK2sD,KACpC3sD,KAAK8rD,SAASvkC,YACd,MAEF,KAAK,EACHvnB,KAAK8rD,SAAS1kC,QAAQpnB,KAAKwsD,IAAM,EAAIxsD,KAAKysD,KAAO,GAAIzsD,KAAK2sD,IAAM,EAAI3sD,KAAK4sD,KAAO,GAChF5sD,KAAK8rD,SAASxkC,QAAQtnB,KAAKysD,IAAM,EAAIzsD,KAAKwsD,KAAO,GAAIxsD,KAAK4sD,IAAM,EAAI5sD,KAAK2sD,KAAO,GAChF3sD,KAAK8rD,SAASvkC,YACd,MAEF,KAAK,EACHvnB,KAAK+0C,MAAM/0C,KAAKwsD,IAAKxsD,KAAK2sD,KAC1B3sD,KAAK+0C,MAAM/0C,KAAKysD,IAAKzsD,KAAK4sD,KAC1B5sD,KAAK+0C,MAAM/0C,KAAK0sD,IAAK1sD,KAAK6sD,KAIhC,EACA9X,MAAO,SAAS7uC,EAAGmD,GAEjB,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAKwsD,IAAMtmD,EAAGlG,KAAK2sD,IAAMtjD,EAAG,MACrD,KAAK,EAAGrJ,KAAKssD,OAAS,EAAGtsD,KAAKysD,IAAMvmD,EAAGlG,KAAK4sD,IAAMvjD,EAAG,MACrD,KAAK,EAAGrJ,KAAKssD,OAAS,EAAGtsD,KAAK0sD,IAAMxmD,EAAGlG,KAAK6sD,IAAMxjD,EAAGrJ,KAAK8rD,SAAS1kC,QAAQpnB,KAAK0oB,IAAM,EAAI1oB,KAAK4oB,IAAM1iB,GAAK,GAAIlG,KAAK2oB,IAAM,EAAI3oB,KAAK6oB,IAAMxf,GAAK,GAAI,MACjJ,QAAS0rC,GAAM/0C,KAAMkG,EAAGmD,GAE1BrJ,KAAK0oB,IAAM1oB,KAAK4oB,IAAK5oB,KAAK4oB,IAAM1iB,EAChClG,KAAK2oB,IAAM3oB,KAAK6oB,IAAK7oB,KAAK6oB,IAAMxf,CAClC,GCxCF4iD,GAAU/pD,UAAY,CACpBgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAK0oB,IAAM1oB,KAAK4oB,IAChB5oB,KAAK2oB,IAAM3oB,KAAK6oB,IAAMzF,IACtBpjB,KAAKssD,OAAS,CAChB,EACAC,QAAS,YACHvsD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACzEvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,KACxB,EACApX,MAAO,SAAS7uC,EAAGmD,GAEjB,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAG,MACzB,KAAK,EAAGtsD,KAAKssD,OAAS,EAAG,MACzB,KAAK,EAAGtsD,KAAKssD,OAAS,EAAG,IAAIvkC,GAAM/nB,KAAK0oB,IAAM,EAAI1oB,KAAK4oB,IAAM1iB,GAAK,EAAG8hB,GAAMhoB,KAAK2oB,IAAM,EAAI3oB,KAAK6oB,IAAMxf,GAAK,EAAGrJ,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOS,EAAIC,GAAMhoB,KAAK8rD,SAAS1kC,OAAOW,EAAIC,GAAK,MACvL,KAAK,EAAGhoB,KAAKssD,OAAS,EACtB,QAASvX,GAAM/0C,KAAMkG,EAAGmD,GAE1BrJ,KAAK0oB,IAAM1oB,KAAK4oB,IAAK5oB,KAAK4oB,IAAM1iB,EAChClG,KAAK2oB,IAAM3oB,KAAK6oB,IAAK7oB,KAAK6oB,IAAMxf,CAClC,GC/BF,MAAMyjD,GACJ,WAAA39C,CAAY3M,EAAS0D,GACnBlG,KAAK8rD,SAAWtpD,EAChBxC,KAAK+sD,GAAK7mD,CACZ,CACA,SAAAgmD,GACElsD,KAAKmsD,MAAQ,CACf,CACA,OAAAC,GACEpsD,KAAKmsD,MAAQ/oC,GACf,CACA,SAAAipC,GACErsD,KAAKssD,OAAS,CAChB,CACA,OAAAC,IACMvsD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACzEvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,KACxB,CACA,KAAApX,CAAM7uC,EAAGmD,GAEP,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EACHtsD,KAAKssD,OAAS,EACVtsD,KAAKmsD,MAAOnsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GACnCrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAC7B,MAEF,KAAK,EAAGrJ,KAAKssD,OAAS,EACtB,QACMtsD,KAAK+sD,GAAI/sD,KAAK8rD,SAAS7iC,cAAcjpB,KAAK0oB,KAAO1oB,KAAK0oB,IAAMxiB,GAAK,EAAGlG,KAAK2oB,IAAK3oB,KAAK0oB,IAAKrf,EAAGnD,EAAGmD,GAC7FrJ,KAAK8rD,SAAS7iC,cAAcjpB,KAAK0oB,IAAK1oB,KAAK2oB,KAAO3oB,KAAK2oB,IAAMtf,GAAK,EAAGnD,EAAGlG,KAAK2oB,IAAKziB,EAAGmD,GAI9FrJ,KAAK0oB,IAAMxiB,EAAGlG,KAAK2oB,IAAMtf,CAC3B,ECnCF,SAAS2jD,GAAaxqD,GACpBxC,KAAK8rD,SAAWtpD,CAClB,CCJA,SAASyqD,GAAOzqD,GACdxC,KAAK8rD,SAAWtpD,CAClB,CA0Be,YAASA,GACtB,OAAO,IAAIyqD,GAAOzqD,EACpB,CC9BA,SAASmc,GAAKzY,GACZ,OAAOA,EAAI,GAAK,EAAI,CACtB,CAMA,SAASgnD,GAAOrB,EAAMnrC,EAAIyH,GACxB,IAAIglC,EAAKtB,EAAKjjC,IAAMijC,EAAKnjC,IACrB0kC,EAAK1sC,EAAKmrC,EAAKjjC,IACf+nB,GAAMkb,EAAKhjC,IAAMgjC,EAAKljC,MAAQwkC,GAAMC,EAAK,IAAM,GAC/Cxc,GAAMzoB,EAAK0jC,EAAKhjC,MAAQukC,GAAMD,EAAK,IAAM,GACzC5rC,GAAKovB,EAAKyc,EAAKxc,EAAKuc,IAAOA,EAAKC,GACpC,OAAQzuC,GAAKgyB,GAAMhyB,GAAKiyB,IAAO57B,KAAKkC,IAAIlC,KAAK0F,IAAIi2B,GAAK37B,KAAK0F,IAAIk2B,GAAK,GAAM57B,KAAK0F,IAAI6G,KAAO,CAC5F,CAGA,SAAS8rC,GAAOxB,EAAM9tC,GACpB,IAAIyM,EAAIqhC,EAAKjjC,IAAMijC,EAAKnjC,IACxB,OAAO8B,GAAK,GAAKqhC,EAAKhjC,IAAMgjC,EAAKljC,KAAO6B,EAAIzM,GAAK,EAAIA,CACvD,CAKA,SAAS,GAAM8tC,EAAMyB,EAAIC,GACvB,IAAIxlC,EAAK8jC,EAAKnjC,IACVV,EAAK6jC,EAAKljC,IACVV,EAAK4jC,EAAKjjC,IACVV,EAAK2jC,EAAKhjC,IACVuB,GAAMnC,EAAKF,GAAM,EACrB8jC,EAAKC,SAAS7iC,cAAclB,EAAKqC,EAAIpC,EAAKoC,EAAKkjC,EAAIrlC,EAAKmC,EAAIlC,EAAKkC,EAAKmjC,EAAItlC,EAAIC,EAChF,CAEA,SAASslC,GAAUhrD,GACjBxC,KAAK8rD,SAAWtpD,CAClB,CAyCA,SAASirD,GAAUjrD,GACjBxC,KAAK8rD,SAAW,IAAI4B,GAAelrD,EACrC,CAMA,SAASkrD,GAAelrD,GACtBxC,KAAK8rD,SAAWtpD,CAClB,CCxFA,SAASmrD,GAAQnrD,GACfxC,KAAK8rD,SAAWtpD,CAClB,CA0CA,SAASorD,GAAc1nD,GACrB,IAAIjC,EAEAy0B,EADAliB,EAAItQ,EAAElE,OAAS,EAEf8K,EAAI,IAAI5L,MAAMsV,GACdzJ,EAAI,IAAI7L,MAAMsV,GACdoG,EAAI,IAAI1b,MAAMsV,GAElB,IADA1J,EAAE,GAAK,EAAGC,EAAE,GAAK,EAAG6P,EAAE,GAAK1W,EAAE,GAAK,EAAIA,EAAE,GACnCjC,EAAI,EAAGA,EAAIuS,EAAI,IAAKvS,EAAG6I,EAAE7I,GAAK,EAAG8I,EAAE9I,GAAK,EAAG2Y,EAAE3Y,GAAK,EAAIiC,EAAEjC,GAAK,EAAIiC,EAAEjC,EAAI,GAE5E,IADA6I,EAAE0J,EAAI,GAAK,EAAGzJ,EAAEyJ,EAAI,GAAK,EAAGoG,EAAEpG,EAAI,GAAK,EAAItQ,EAAEsQ,EAAI,GAAKtQ,EAAEsQ,GACnDvS,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGy0B,EAAI5rB,EAAE7I,GAAK8I,EAAE9I,EAAI,GAAI8I,EAAE9I,IAAMy0B,EAAG9b,EAAE3Y,IAAMy0B,EAAI9b,EAAE3Y,EAAI,GAE1E,IADA6I,EAAE0J,EAAI,GAAKoG,EAAEpG,EAAI,GAAKzJ,EAAEyJ,EAAI,GACvBvS,EAAIuS,EAAI,EAAGvS,GAAK,IAAKA,EAAG6I,EAAE7I,IAAM2Y,EAAE3Y,GAAK6I,EAAE7I,EAAI,IAAM8I,EAAE9I,GAE1D,IADA8I,EAAEyJ,EAAI,IAAMtQ,EAAEsQ,GAAK1J,EAAE0J,EAAI,IAAM,EAC1BvS,EAAI,EAAGA,EAAIuS,EAAI,IAAKvS,EAAG8I,EAAE9I,GAAK,EAAIiC,EAAEjC,EAAI,GAAK6I,EAAE7I,EAAI,GACxD,MAAO,CAAC6I,EAAGC,EACb,CC5DA,SAAS8gD,GAAKrrD,EAASub,GACrB/d,KAAK8rD,SAAWtpD,EAChBxC,KAAK8tD,GAAK/vC,CACZ,CCHO,SAAS,GAAEwD,GAChB,OAAOA,EAAE,EACX,CAEO,SAAS,GAAEA,GAChB,OAAOA,EAAE,EACX,CCAe,YAASrb,EAAGmD,GACzB,IAAI0kD,EAAU,GAAS,GACnBvrD,EAAU,KACVwrD,EAAQ,GACRnjB,EAAS,KACTt+B,EAAOke,EAASwjC,GAKpB,SAASA,EAAKh/B,GACZ,IAAIhrB,EAEAsV,EAEA5K,EAHA6H,GAAKyY,EAAO9nB,GAAM8nB,IAAOjtB,OAEzBksD,GAAW,EAKf,IAFe,MAAX1rD,IAAiBqoC,EAASmjB,EAAMr/C,EAASpC,MAExCtI,EAAI,EAAGA,GAAKuS,IAAKvS,IACdA,EAAIuS,GAAKu3C,EAAQx0C,EAAI0V,EAAKhrB,GAAIA,EAAGgrB,MAAWi/B,KAC5CA,GAAYA,GAAUrjB,EAAOwhB,YAC5BxhB,EAAO0hB,WAEV2B,GAAUrjB,EAAOkK,OAAO7uC,EAAEqT,EAAGtV,EAAGgrB,IAAQ5lB,EAAEkQ,EAAGtV,EAAGgrB,IAGtD,GAAItgB,EAAQ,OAAOk8B,EAAS,KAAMl8B,EAAS,IAAM,IACnD,CAsBA,OA3CAzI,EAAiB,mBAANA,EAAmBA,OAAWpB,IAANoB,EAAmB,GAAS,EAASA,GACxEmD,EAAiB,mBAANA,EAAmBA,OAAWvE,IAANuE,EAAmB,GAAS,EAASA,GAsBxE4kD,EAAK/nD,EAAI,SAASqiB,GAChB,OAAO3jB,UAAU5C,QAAUkE,EAAiB,mBAANqiB,EAAmBA,EAAI,GAAUA,GAAI0lC,GAAQ/nD,CACrF,EAEA+nD,EAAK5kD,EAAI,SAASkf,GAChB,OAAO3jB,UAAU5C,QAAUqH,EAAiB,mBAANkf,EAAmBA,EAAI,GAAUA,GAAI0lC,GAAQ5kD,CACrF,EAEA4kD,EAAKF,QAAU,SAASxlC,GACtB,OAAO3jB,UAAU5C,QAAU+rD,EAAuB,mBAANxlC,EAAmBA,EAAI,IAAWA,GAAI0lC,GAAQF,CAC5F,EAEAE,EAAKD,MAAQ,SAASzlC,GACpB,OAAO3jB,UAAU5C,QAAUgsD,EAAQzlC,EAAc,MAAX/lB,IAAoBqoC,EAASmjB,EAAMxrD,IAAWyrD,GAAQD,CAC9F,EAEAC,EAAKzrD,QAAU,SAAS+lB,GACtB,OAAO3jB,UAAU5C,QAAe,MAALumB,EAAY/lB,EAAUqoC,EAAS,KAAOA,EAASmjB,EAAMxrD,EAAU+lB,GAAI0lC,GAAQzrD,CACxG,EAEOyrD,CACT,CClDe,YAASlmC,EAAIC,EAAIE,GAC9B,IAAID,EAAK,KACL8lC,EAAU,GAAS,GACnBvrD,EAAU,KACVwrD,EAAQ,GACRnjB,EAAS,KACTt+B,EAAOke,EAAS0jC,GAMpB,SAASA,EAAKl/B,GACZ,IAAIhrB,EACAc,EACAyU,EAEAD,EAEA5K,EAHA6H,GAAKyY,EAAO9nB,GAAM8nB,IAAOjtB,OAEzBksD,GAAW,EAEXE,EAAM,IAAIltD,MAAMsV,GAChB63C,EAAM,IAAIntD,MAAMsV,GAIpB,IAFe,MAAXhU,IAAiBqoC,EAASmjB,EAAMr/C,EAASpC,MAExCtI,EAAI,EAAGA,GAAKuS,IAAKvS,EAAG,CACvB,KAAMA,EAAIuS,GAAKu3C,EAAQx0C,EAAI0V,EAAKhrB,GAAIA,EAAGgrB,MAAWi/B,EAChD,GAAIA,GAAYA,EACdnpD,EAAId,EACJ4mC,EAAOqhB,YACPrhB,EAAOwhB,gBACF,CAGL,IAFAxhB,EAAO0hB,UACP1hB,EAAOwhB,YACF7yC,EAAIvV,EAAI,EAAGuV,GAAKzU,IAAKyU,EACxBqxB,EAAOkK,MAAMqZ,EAAI50C,GAAI60C,EAAI70C,IAE3BqxB,EAAO0hB,UACP1hB,EAAOuhB,SACT,CAEE8B,IACFE,EAAInqD,IAAM8jB,EAAGxO,EAAGtV,EAAGgrB,GAAOo/B,EAAIpqD,IAAM+jB,EAAGzO,EAAGtV,EAAGgrB,GAC7C4b,EAAOkK,MAAM9sB,GAAMA,EAAG1O,EAAGtV,EAAGgrB,GAAQm/B,EAAInqD,GAAIikB,GAAMA,EAAG3O,EAAGtV,EAAGgrB,GAAQo/B,EAAIpqD,IAE3E,CAEA,GAAI0K,EAAQ,OAAOk8B,EAAS,KAAMl8B,EAAS,IAAM,IACnD,CAEA,SAAS2/C,IACP,OAAOL,KAAOF,QAAQA,GAASC,MAAMA,GAAOxrD,QAAQA,EACtD,CAmDA,OA/FAulB,EAAmB,mBAAPA,EAAoBA,OAAajjB,IAAPijB,EAAoB,GAAS,GAAUA,GAC7EC,EAAmB,mBAAPA,EAAoBA,EAA0B,OAAbljB,IAAPkjB,EAA6B,GAAeA,GAClFE,EAAmB,mBAAPA,EAAoBA,OAAapjB,IAAPojB,EAAoB,GAAS,GAAUA,GA4C7EimC,EAAKjoD,EAAI,SAASqiB,GAChB,OAAO3jB,UAAU5C,QAAU+lB,EAAkB,mBAANQ,EAAmBA,EAAI,GAAUA,GAAIN,EAAK,KAAMkmC,GAAQpmC,CACjG,EAEAomC,EAAKpmC,GAAK,SAASQ,GACjB,OAAO3jB,UAAU5C,QAAU+lB,EAAkB,mBAANQ,EAAmBA,EAAI,GAAUA,GAAI4lC,GAAQpmC,CACtF,EAEAomC,EAAKlmC,GAAK,SAASM,GACjB,OAAO3jB,UAAU5C,QAAUimB,EAAU,MAALM,EAAY,KAAoB,mBAANA,EAAmBA,EAAI,GAAUA,GAAI4lC,GAAQlmC,CACzG,EAEAkmC,EAAK9kD,EAAI,SAASkf,GAChB,OAAO3jB,UAAU5C,QAAUgmB,EAAkB,mBAANO,EAAmBA,EAAI,GAAUA,GAAIL,EAAK,KAAMimC,GAAQnmC,CACjG,EAEAmmC,EAAKnmC,GAAK,SAASO,GACjB,OAAO3jB,UAAU5C,QAAUgmB,EAAkB,mBAANO,EAAmBA,EAAI,GAAUA,GAAI4lC,GAAQnmC,CACtF,EAEAmmC,EAAKjmC,GAAK,SAASK,GACjB,OAAO3jB,UAAU5C,QAAUkmB,EAAU,MAALK,EAAY,KAAoB,mBAANA,EAAmBA,EAAI,GAAUA,GAAI4lC,GAAQjmC,CACzG,EAEAimC,EAAKI,OACLJ,EAAKK,OAAS,WACZ,OAAOF,IAAWpoD,EAAE6hB,GAAI1e,EAAE2e,EAC5B,EAEAmmC,EAAKM,OAAS,WACZ,OAAOH,IAAWpoD,EAAE6hB,GAAI1e,EAAE6e,EAC5B,EAEAimC,EAAKO,OAAS,WACZ,OAAOJ,IAAWpoD,EAAE+hB,GAAI5e,EAAE2e,EAC5B,EAEAmmC,EAAKJ,QAAU,SAASxlC,GACtB,OAAO3jB,UAAU5C,QAAU+rD,EAAuB,mBAANxlC,EAAmBA,EAAI,IAAWA,GAAI4lC,GAAQJ,CAC5F,EAEAI,EAAKH,MAAQ,SAASzlC,GACpB,OAAO3jB,UAAU5C,QAAUgsD,EAAQzlC,EAAc,MAAX/lB,IAAoBqoC,EAASmjB,EAAMxrD,IAAW2rD,GAAQH,CAC9F,EAEAG,EAAK3rD,QAAU,SAAS+lB,GACtB,OAAO3jB,UAAU5C,QAAe,MAALumB,EAAY/lB,EAAUqoC,EAAS,KAAOA,EAASmjB,EAAMxrD,EAAU+lB,GAAI4lC,GAAQ3rD,CACxG,EAEO2rD,CACT,C,6tCPzGAnB,GAAa9qD,UAAY,CACvBgqD,UAAW,GACXE,QAAS,GACTC,UAAW,WACTrsD,KAAKssD,OAAS,CAChB,EACAC,QAAS,WACHvsD,KAAKssD,QAAQtsD,KAAK8rD,SAASvkC,WACjC,EACAwtB,MAAO,SAAS7uC,EAAGmD,GACjBnD,GAAKA,EAAGmD,GAAKA,EACTrJ,KAAKssD,OAAQtsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,IACpCrJ,KAAKssD,OAAS,EAAGtsD,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAChD,GCfF4jD,GAAO/qD,UAAY,CACjBgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAKssD,OAAS,CAChB,EACAC,QAAS,YACHvsD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACzEvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,KACxB,EACApX,MAAO,SAAS7uC,EAAGmD,GAEjB,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GAAKrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAAI,MAC/F,KAAK,EAAGrJ,KAAKssD,OAAS,EACtB,QAAStsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GAErC,GCcFmkD,GAAUtrD,UAAY,CACpBgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAK0oB,IAAM1oB,KAAK4oB,IAChB5oB,KAAK2oB,IAAM3oB,KAAK6oB,IAChB7oB,KAAK2uD,IAAMvrC,IACXpjB,KAAKssD,OAAS,CAChB,EACAC,QAAS,WACP,OAAQvsD,KAAKssD,QACX,KAAK,EAAGtsD,KAAK8rD,SAASxkC,OAAOtnB,KAAK4oB,IAAK5oB,KAAK6oB,KAAM,MAClD,KAAK,EAAG,GAAM7oB,KAAMA,KAAK2uD,IAAKtB,GAAOrtD,KAAMA,KAAK2uD,OAE9C3uD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACzEvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,KACxB,EACApX,MAAO,SAAS7uC,EAAGmD,GACjB,IAAIkkD,EAAKnqC,IAGT,GADQ/Z,GAAKA,GAAbnD,GAAKA,KACKlG,KAAK4oB,KAAOvf,IAAMrJ,KAAK6oB,IAAjC,CACA,OAAQ7oB,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GAAKrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAAI,MAC/F,KAAK,EAAGrJ,KAAKssD,OAAS,EAAG,MACzB,KAAK,EAAGtsD,KAAKssD,OAAS,EAAG,GAAMtsD,KAAMqtD,GAAOrtD,KAAMutD,EAAKL,GAAOltD,KAAMkG,EAAGmD,IAAKkkD,GAAK,MACjF,QAAS,GAAMvtD,KAAMA,KAAK2uD,IAAKpB,EAAKL,GAAOltD,KAAMkG,EAAGmD,IAGtDrJ,KAAK0oB,IAAM1oB,KAAK4oB,IAAK5oB,KAAK4oB,IAAM1iB,EAChClG,KAAK2oB,IAAM3oB,KAAK6oB,IAAK7oB,KAAK6oB,IAAMxf,EAChCrJ,KAAK2uD,IAAMpB,CAViC,CAW9C,IAODE,GAAUvrD,UAAY9B,OAAOiD,OAAOmqD,GAAUtrD,YAAY6yC,MAAQ,SAAS7uC,EAAGmD,GAC7EmkD,GAAUtrD,UAAU6yC,MAAMpxC,KAAK3D,KAAMqJ,EAAGnD,EAC1C,EAMAwnD,GAAexrD,UAAY,CACzBklB,OAAQ,SAASlhB,EAAGmD,GAAKrJ,KAAK8rD,SAAS1kC,OAAO/d,EAAGnD,EAAI,EACrDqhB,UAAW,WAAavnB,KAAK8rD,SAASvkC,WAAa,EACnDD,OAAQ,SAASphB,EAAGmD,GAAKrJ,KAAK8rD,SAASxkC,OAAOje,EAAGnD,EAAI,EACrD+iB,cAAe,SAAShB,EAAIC,EAAIxH,EAAIyH,EAAIjiB,EAAGmD,GAAKrJ,KAAK8rD,SAAS7iC,cAAcf,EAAID,EAAIE,EAAIzH,EAAIrX,EAAGnD,EAAI,GC1FrGynD,GAAQzrD,UAAY,CAClBgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAK+sD,GAAK,GACV/sD,KAAK4uD,GAAK,EACZ,EACArC,QAAS,WACP,IAAIrmD,EAAIlG,KAAK+sD,GACT1jD,EAAIrJ,KAAK4uD,GACTp4C,EAAItQ,EAAElE,OAEV,GAAIwU,EAEF,GADAxW,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOphB,EAAE,GAAImD,EAAE,IAAMrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAE,GAAImD,EAAE,IACnE,IAANmN,EACFxW,KAAK8rD,SAASxkC,OAAOphB,EAAE,GAAImD,EAAE,SAI7B,IAFA,IAAIwlD,EAAKjB,GAAc1nD,GACnB4oD,EAAKlB,GAAcvkD,GACd0lD,EAAK,EAAGC,EAAK,EAAGA,EAAKx4C,IAAKu4C,IAAMC,EACvChvD,KAAK8rD,SAAS7iC,cAAc4lC,EAAG,GAAGE,GAAKD,EAAG,GAAGC,GAAKF,EAAG,GAAGE,GAAKD,EAAG,GAAGC,GAAK7oD,EAAE8oD,GAAK3lD,EAAE2lD,KAKnFhvD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAAqB,IAAN31C,IAAUxW,KAAK8rD,SAASvkC,YAC/DvnB,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,MACtBnsD,KAAK+sD,GAAK/sD,KAAK4uD,GAAK,IACtB,EACA7Z,MAAO,SAAS7uC,EAAGmD,GACjBrJ,KAAK+sD,GAAG9pD,MAAMiD,GACdlG,KAAK4uD,GAAG3rD,MAAMoG,EAChB,GCnCFwkD,GAAK3rD,UAAY,CACfgqD,UAAW,WACTlsD,KAAKmsD,MAAQ,CACf,EACAC,QAAS,WACPpsD,KAAKmsD,MAAQ/oC,GACf,EACAipC,UAAW,WACTrsD,KAAK+sD,GAAK/sD,KAAK4uD,GAAKxrC,IACpBpjB,KAAKssD,OAAS,CAChB,EACAC,QAAS,WACH,EAAIvsD,KAAK8tD,IAAM9tD,KAAK8tD,GAAK,GAAqB,IAAhB9tD,KAAKssD,QAActsD,KAAK8rD,SAASxkC,OAAOtnB,KAAK+sD,GAAI/sD,KAAK4uD,KACpF5uD,KAAKmsD,OAAyB,IAAfnsD,KAAKmsD,OAA+B,IAAhBnsD,KAAKssD,SAAetsD,KAAK8rD,SAASvkC,YACrEvnB,KAAKmsD,OAAS,IAAGnsD,KAAK8tD,GAAK,EAAI9tD,KAAK8tD,GAAI9tD,KAAKmsD,MAAQ,EAAInsD,KAAKmsD,MACpE,EACApX,MAAO,SAAS7uC,EAAGmD,GAEjB,OADAnD,GAAKA,EAAGmD,GAAKA,EACLrJ,KAAKssD,QACX,KAAK,EAAGtsD,KAAKssD,OAAS,EAAGtsD,KAAKmsD,MAAQnsD,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,GAAKrJ,KAAK8rD,SAAS1kC,OAAOlhB,EAAGmD,GAAI,MAC/F,KAAK,EAAGrJ,KAAKssD,OAAS,EACtB,QACE,GAAItsD,KAAK8tD,IAAM,EACb9tD,KAAK8rD,SAASxkC,OAAOtnB,KAAK+sD,GAAI1jD,GAC9BrJ,KAAK8rD,SAASxkC,OAAOphB,EAAGmD,OACnB,CACL,IAAI4e,EAAKjoB,KAAK+sD,IAAM,EAAI/sD,KAAK8tD,IAAM5nD,EAAIlG,KAAK8tD,GAC5C9tD,KAAK8rD,SAASxkC,OAAOW,EAAIjoB,KAAK4uD,IAC9B5uD,KAAK8rD,SAASxkC,OAAOW,EAAI5e,EAC3B,EAIJrJ,KAAK+sD,GAAK7mD,EAAGlG,KAAK4uD,GAAKvlD,CACzB,GIKF,IAAM4lD,GAAkC,CACtCC,iBXIa,SAAS1sD,GACtB,OAAO,IAAIwpD,GAAYxpD,EACzB,EWLE2sD,eVVa,SAAS3sD,GACtB,OAAO,IAAIypD,GAAUzpD,EACvB,EUSE4sD,WZCa,SAAS5sD,GACtB,OAAO,IAAIupD,GAAMvpD,EACnB,EYFE6sD,WTgBK,SAAe7sD,GACpB,OAAO,IAAIsqD,GAAKtqD,GAAS,EAC3B,ESjBE8sD,WTmBK,SAAe9sD,GACpB,OAAO,IAAIsqD,GAAKtqD,GAAS,EAC3B,ESpBE+sD,kBR5Ba,SAAS/sD,GACtB,OAAO,IAAIwqD,GAAaxqD,EAC1B,EQ2BEgtD,YAAW,GACXC,eN6CK,SAAmBjtD,GACxB,OAAO,IAAIgrD,GAAUhrD,EACvB,EM9CEktD,eNgDK,SAAmBltD,GACxB,OAAO,IAAIirD,GAAUjrD,EACvB,EMjDEmtD,aLQa,SAASntD,GACtB,OAAO,IAAImrD,GAAQnrD,EACrB,EKTEotD,UJba,SAASptD,GACtB,OAAO,IAAIqrD,GAAKrrD,EAAS,GAC3B,EIYEqtD,eJNK,SAAmBrtD,GACxB,OAAO,IAAIqrD,GAAKrrD,EAAS,EAC3B,EIKEstD,gBJXK,SAAoBttD,GACzB,OAAO,IAAIqrD,GAAKrrD,EAAS,EAC3B,GIqCMurD,GAAWxsC,GAA2C2vB,GAAoB3vB,EAAErb,IAAMgrC,GAAoB3vB,EAAElY,GACxG0mD,GAAex2C,GAAmD,MAAVA,EAAEoD,MAAgBoxC,GAAQx0C,EAAEoD,OAASoxC,GAAQx0C,GACrGy2C,GAAQzuC,GAAkBA,EAAErb,EAC5B+pD,GAAQ1uC,GAAkBA,EAAElY,EAwHrB6mD,GAAoB,CAC/BC,cAAc,EACdnhD,KAAM,UAOKkf,GAAUT,IAMY,IANX,KACtBze,EAAOkhD,GAAkBlhD,KAAI,OAC7BohD,EAAS,GAAE,SACXC,EAAQ,OACRxgC,EAAM,aACNsgC,EAAeD,GAAkBC,cACpB1iC,EACP6iC,EAtIgBC,EAACvhD,EAAiB6gB,KACxC,GAAoB,mBAAT7gB,EACT,OAAOA,EAGT,IAAMvL,EAAO,QAAHK,OAAW6oB,GAAW3d,IAEhC,IAAc,kBAATvL,GAAqC,cAATA,IAAyBosB,EAAQ,CAChE,IAAMnwB,EAAUuvD,GAAgB,GAADnrD,OAAIL,GAAIK,OAAc,aAAX+rB,EAAwB,IAAM,MACxE,GAAInwB,EACF,OAAOA,CAEX,CACA,OAAOuvD,GAAgBxrD,IAAS+rD,EAAW,EAyHtBe,CAAgBvhD,EAAM6gB,GACrC2gC,EAAkDL,EAAeC,EAAOjoD,OAAO4lD,IAAWqC,EAMhG,GAAIlvD,MAAMkH,QAAQioD,GAAW,CAC3B,IAAII,EAEEC,EAA+CN,EAAOznD,KAAI,CAAC8jB,EAAOjnB,IAAKooB,GAAAA,GAAA,GACxEnB,GAAK,IACR9P,KAAM0zC,EAAS7qD,OA4BjB,OAxBEirD,EADa,aAAX5gC,EACa8gC,KACZtnD,EAAE4mD,IACFhoC,GAAG+nC,IACHjoC,IAAGxO,GAAKA,EAAEoD,KAAKzW,IAEHyqD,KACZzqD,EAAE8pD,IACF9nC,GAAG+nC,IACHjoC,IAAGzO,GAAKA,EAAEoD,KAAKtT,IAYyConD,EAAa1C,QAAQgC,IAAa/B,MAAMsC,EAI9FM,CAF+CT,EAAeO,EAAWvoD,OAAO4nD,IAAeW,EAGxG,CAcA,OAXe,aAAX7gC,GAAyBrE,GAAS6kC,GACrBM,KAAwBtnD,EAAE4mD,IAAMhoC,GAAG+nC,IAAMjoC,GAAGsoC,GAClD7kC,GAAS6kC,GACHM,KAAwBzqD,EAAE8pD,IAAM9nC,GAAG+nC,IAAMjoC,GAAGqoC,GAE5CQ,KAAwB3qD,EAAE8pD,IAAM3mD,EAAE4mD,KAIwBlC,QAAQA,IAASC,MAAMsC,EAE3FM,CAAqBJ,EAAa,EAG9BM,GAAyBzrC,IACpC,IAAM,UAAES,EAAS,OAAEsqC,EAAM,KAAE7jD,EAAI,QAAEwkD,GAAY1rC,EACvCwK,EAAS4tB,KAEf,KAAM2S,GAAWA,EAAOpuD,QAAYuK,GAClC,OAAO,KAGT,IAAMykD,EAA6B,CACjChiD,KAAMqW,EAAMrW,KACZohD,OAAQ/qC,EAAM+qC,OACdC,SAAUhrC,EAAMgrC,SAChBxgC,OAAQxK,EAAMwK,QAAUA,EACxBsgC,aAAc9qC,EAAM8qC,cAGhBc,EAAsCb,GAAUA,EAAOpuD,OAASksB,GAAQ8iC,GAAgBzkD,EAE9F,OACErD,EAAAA,cAAA,OAAAqd,GAAA,GACMrB,EAAsBG,GACtBsJ,GAAmBtJ,GAAM,CAC7BS,UAAWnB,EAAK,iBAAkBmB,GAClCvM,EAAgB,OAAb03C,OAAoBnsD,EAAYmsD,EACnCxrC,IAAKsrC,IACL,E,+6BC5QN,IAAM7iC,GAAUA,CAAChoB,EAAWmD,EAAWsc,EAAeC,EAAgB4R,EAAaD,IAC1E,IAAPzzB,OAAWoC,EAAC,KAAApC,OAAI0zB,EAAG,KAAA1zB,OAAI8hB,EAAM,KAAA9hB,OAAIyzB,EAAI,KAAAzzB,OAAIuF,EAAC,KAAAvF,OAAI6hB,GAGnCurC,GAAyBzjC,IAShC,IATiC,EACrCvnB,EAAI,EAAC,EACLmD,EAAI,EAAC,IACLmuB,EAAM,EAAC,KACPD,EAAO,EAAC,MACR5R,EAAQ,EAAC,OACTC,EAAS,EAAC,UACVE,GAED2H,EADIE,E,6WAAIxH,CAAAsH,EAAArH,IAEDf,E,kWAAKuI,CAAA,CAAK1nB,IAAGmD,IAAGmuB,MAAKD,OAAM5R,QAAOC,UAAW+H,GAEnD,OAAKnC,GAAStlB,IAAOslB,GAASniB,IAAOmiB,GAAS7F,IAAW6F,GAAS5F,IAAY4F,GAASgM,IAAShM,GAAS+L,GAKvGruB,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBD,GAAM,CACjCS,UAAWnB,EAAK,iBAAkBmB,GAClCvM,EAAG2U,GAAQhoB,EAAGmD,EAAGsc,EAAOC,EAAQ4R,EAAKD,MAPhC,IAQL,E,kgCC5DC,IAEM45B,GAAmBA,CAAC9rC,EAA8B+rC,EAA2BC,IACxFhsC,EAAM1c,KAAI8b,IAAQ,SAAJ3gB,QAHYL,EAGOghB,EAHUhhB,EAAKod,QAAQ,YAAYW,GAAK,IAAJ1d,OAAQ0d,EAAE8vC,kBAGzC,KAAAxtD,OAAIstD,EAAQ,OAAAttD,OAAMutD,GAH9B5tD,KAGsC,IAAEmF,KAAK,KAiB5D2oD,GAAYA,CACvBhvD,EACA+K,IAEAlN,OAAOmI,KAAK+E,GAAK6d,QACf,CAAC6qB,EAAKpuC,IAAGgmB,GAAAA,GAAA,GACJooB,GAAG,IACN,CAACpuC,GAAMrF,EAAGqF,EAAgB0F,EAAI1F,OAEhC,CAAC,G,kgCC7BE,IAAM4pD,GAAQA,CAACC,EAAe38C,EAAa0E,IAAci4C,GAAS38C,EAAM28C,GAASj4C,EAClFk4C,GAAejkC,IAAA,IAAC,KAAEzmB,EAAI,GAAEm5B,GAAS1S,EAAA,OAAKzmB,IAASm5B,CAAE,EAYjDwxB,GAAiBA,CAACN,EAA8BO,EAA8BC,KAClF,IAAMC,EAAoCP,IAAU,CAAC3pD,EAAKsX,KACxD,GAAIwyC,GAAaxyC,GAAM,CACrB,IAAO6yC,EAAMC,GAAQX,EAAOnyC,EAAIlY,KAAMkY,EAAIihB,GAAIjhB,EAAI+yC,UAClD,OAAArkC,GAAAA,GAAA,GACK1O,GAAG,IACNlY,KAAM+qD,EACNE,SAAUD,GAEd,CAEA,OAAO9yC,CAAG,GACT0yC,GAEH,OAAIC,EAAQ,EACHN,IAAU,CAAC3pD,EAAKsX,IACjBwyC,GAAaxyC,IAA6B,MAArB4yC,EAAalqD,GACpCgmB,GAAAA,GAAA,GACK1O,GAAG,IACN+yC,SAAUT,GAAMtyC,EAAI+yC,SAAUH,EAAalqD,GAAKqqD,SAAUJ,GAC1D7qD,KAAMwqD,GAAMtyC,EAAIlY,KAAM8qD,EAAalqD,GAAKZ,KAAM6qD,KAI3C3yC,GACN0yC,GAGED,GAAeN,EAAQS,EAAcD,EAAQ,EAAE,EAexD,SAASK,GACPlrD,EACAm5B,EACAkxB,EACAc,EACAx/C,EACAy/C,GAEA,IAAIC,EACAC,EAAoCH,EAAUhnC,QAChD,CAAC6qB,EAAKpuC,IAAGgmB,GAAAA,GAAA,GACJooB,GAAG,IACN,CAACpuC,GAAM,CACLZ,KAAMA,EAAKY,GACXqqD,SAAU,EACV9xB,GAAIA,EAAGv4B,OAGX,CAAC,GAKC2qD,EAAgD,KAE9CC,EAAiB9wD,IAChB2wD,IACHA,EAAU3wD,GAEZ,IACMmwD,GADYnwD,EAAM2wD,GACEhB,EAAOoB,GAEjCH,EAAeX,GAAeN,EAAQiB,EAAcT,GAEpDl/C,EAAMib,GAAAA,GAAAA,GAAC,CAAC,EACH5mB,GACAm5B,GAhBoBoxB,IAAU,CAAC3pD,EAAKsX,IAAaA,EAAIlY,MAAMsrD,KAoBhED,EAAU3wD,EAnBuBtB,OAAOgM,OAAOkmD,GAAcnqD,OAAOupD,IAAc1vD,SAsBhFuwD,EAAgBH,EAAkBh8C,WAAWo8C,GAC/C,EAIF,MAAO,KACLD,EAAgBH,EAAkBh8C,WAAWo8C,GAGtC,KAAM,IAAAE,EACE,QAAbA,EAAAH,SAAa,IAAAG,GAAbA,GAAiB,EAGvB,CAsEA,UACE1rD,EACAm5B,EACAkxB,EACAD,EACAz+C,EACAy/C,KAEA,IDnLkCO,EAAiCC,ECmL7DT,GDnL4BQ,ECmL2B3rD,EDnLM4rD,ECmLAzyB,EDlLnE,CAAC//B,OAAOmI,KAAKoqD,GAASvyD,OAAOmI,KAAKqqD,IAAUznC,QAAO,CAACre,EAAGC,IAAMD,EAAE3E,QAAOoY,GAAKxT,EAAEmI,SAASqL,QCoLtF,OAAc,MAAV8wC,EAEK,KACL1+C,EAAMib,GAAAA,GAAC,CAAC,EACH5mB,GACAm5B,IAEE,SAIiB,IAArBkxB,EAAOwB,UACVX,GAAoBlrD,EAAMm5B,EAAIkxB,EAAQc,EAAWx/C,EAAQy/C,GAxF/D,SACEprD,EACAm5B,EACAkxB,EACAD,EACAe,EACAx/C,EACAy/C,GAEA,IAcIU,EAdAP,EAAgD,KAE9CQ,EAA2BZ,EAAUhnC,QAAO,CAAC6qB,EAAkBpuC,KACnE,IAAMorD,EAAchsD,EAAKY,GACnBqrD,EAAY9yB,EAAGv4B,GACrB,OAAmB,MAAforD,GAAoC,MAAbC,EAClBjd,EAETpoB,GAAAA,GAAA,GACKooB,GAAG,IACN,CAACpuC,GAAM,CAACorD,EAAaC,IAAmB,GAEzC,CAAC,GAIEC,EAAgBxxD,IACfoxD,IACHA,EAAYpxD,GAGd,IAAMqc,GAAKrc,EAAMoxD,GAAa1B,EACxB+B,EAAY5B,IAAU,CAAC3pD,EAAKsX,IAAQsyC,MAAStyC,EAAKmyC,EAAOtzC,KAAKg1C,GASpE,GANApgD,EAAMib,GAAAA,GAAAA,GAAC,CAAC,EACH5mB,GACAm5B,GACAgzB,IAGDp1C,EAAI,EACNw0C,EAAgBH,EAAkBh8C,WAAW88C,OACxC,CACL,IAAMzhC,EAAa8/B,IAAU,CAAC3pD,EAAKsX,IAAQsyC,MAAStyC,EAAKmyC,EAAO,KAAK0B,GAErEpgD,EAAMib,GAAAA,GAAAA,GAAC,CAAC,EACH5mB,GACAm5B,GACA1O,GAEP,GAIF,MAAO,KACL8gC,EAAgBH,EAAkBh8C,WAAW88C,GAGtC,KAAM,IAAAE,EACE,QAAbA,EAAAb,SAAa,IAAAa,GAAbA,GAAiB,EAGvB,CA2BMC,CAAmBrsD,EAAMm5B,EAAIkxB,EAAQD,EAAUe,EAAWx/C,EAAQy/C,EACvE,EClNM,IAAMkB,GAAW,KAElBC,GAAoBA,CAACC,EAAYC,IAAe,CAAC,EAAG,EAAID,EAAI,EAAIC,EAAK,EAAID,EAAI,EAAIA,EAAK,EAAIC,EAAK,GAE/FC,GAAqBA,CAACC,EAA+B51C,IACzD41C,EAAOhrD,KAAI,CAACirD,EAAO3vD,IAAM2vD,EAAQ71C,GAAK9Z,IAAGknB,QAAO,CAAC0oC,EAAKC,IAASD,EAAMC,IAEjEC,GAAcA,CAACP,EAAYC,IAAgB11C,IAC/C,IAAM41C,EAASJ,GAAkBC,EAAIC,GAErC,OAAOC,GAAmBC,EAAQ51C,EAAE,EAkChCi2C,GAAuB,WAA4D,QAAA/oC,EAAArmB,UAAA5C,OAAxDV,EAAI,IAAAJ,MAAA+pB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5pB,EAAI4pB,GAAAtmB,UAAAsmB,GACnC,GAAoB,IAAhB5pB,EAAKU,OACP,OAAQV,EAAK,IACX,IAAK,SACH,MAAO,CAAC,EAAK,EAAK,EAAK,GACzB,IAAK,OACH,MAAO,CAAC,IAAM,GAAK,IAAM,GAC3B,IAAK,UACH,MAAO,CAAC,IAAM,EAAK,EAAK,GAC1B,IAAK,WACH,MAAO,CAAC,IAAM,EAAK,IAAM,GAC3B,IAAK,cACH,MAAO,CAAC,EAAK,EAAK,IAAM,GAC1B,QACE,IAAM+vD,EA3BYA,KAA4D,IAAA4C,EAC9EC,EAAc7C,EAAOj1B,MAAM,KACjC,GAA2B,IAAvB83B,EAAYlyD,QAAmC,iBAAnBkyD,EAAY,GAC1C,OAAO,KAET,IAAMC,EAAwB,QAAjBF,EAAGC,EAAY,UAAE,IAAAD,GAAe,QAAfA,EAAdA,EAAgB73B,MAAM,KAAK,UAAE,IAAA63B,OAAA,EAA7BA,EAA+B73B,MAAM,KACrD,GAAe,MAAX+3B,GAAsC,IAAnBA,EAAQnyD,OAC7B,OAAO,KAET,IAAMoyD,EAASD,EAAQxrD,KAAKzC,GAAc+lB,WAAW/lB,KACrD,MAAO,CAACkuD,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAI,EAiBlCC,CAAiB/yD,EAAK,IACrC,GAAI+vD,EACF,OAAOA,EAMf,OAAoB,IAAhB/vD,EAAKU,OACAV,EAKF,CAAC,EAAK,EAAK,EAAK,EACzB,EAEMgzD,GAAqBA,CAACrsC,EAAYC,EAAYxH,EAAYyH,KAC9D,IA/D6BqrC,EAAYC,EA+DnCc,EAASR,GAAY9rC,EAAIvH,GACzB8zC,EAAST,GAAY7rC,EAAIC,GACzBssC,GAjEuBjB,EAiEWvrC,EAjECwrC,EAiEG/yC,EAjEa3C,IACzD,IACM22C,EAAY,IADHnB,GAAkBC,EAAIC,GACR9qD,KAAI,CAACirD,EAAO3vD,IAAM2vD,EAAQ3vD,IAAGL,MAAM,GAAI,GAEpE,OAAO8vD,GAAmBgB,EAAW32C,EAAE,GA8DjC42C,EAAcn0D,GACdA,EAAQ,EACH,EAELA,EAAQ,EACH,EAGFA,EAGHo0D,EAAU9G,IAId,IAHA,IAAM/vC,EAAI+vC,EAAK,EAAI,EAAIA,EACnB5nD,EAAI6X,EAEC9Z,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAM4wD,EAAQN,EAAOruD,GAAK6X,EACpB+2C,EAASL,EAAUvuD,GAEzB,GAAI8O,KAAK0F,IAAIm6C,EAAQ92C,GAAKu1C,IAAYwB,EAASxB,GAC7C,OAAOkB,EAAOtuD,GAGhBA,EAAIyuD,EAAWzuD,EAAI2uD,EAAQC,EAC7B,CAEA,OAAON,EAAOtuD,EAAE,EAKlB,OAFA0uD,EAAO/B,WAAY,EAEZ+B,CAAM,EAIFG,GAAe,WAC1B,OAAOT,MAAsBN,MAAqBpvD,WACpD,EAsCaowD,GAAgB3D,IAC3B,GAAsB,iBAAXA,EACT,OAAQA,GACN,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,UACL,IAAK,SACH,OAAO0D,GAAa1D,GACtB,IAAK,SACH,OAlCoB,WAAoD,IAAnD/vC,EAAmB1c,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,GAC5C,MAAEqwD,EAAQ,IAAG,QAAEC,EAAU,EAAC,GAAEzC,EAAK,IAAOnxC,EACxC6zC,EAAUA,CAACC,EAAeC,EAAeC,KAC7C,IAEMtD,EAAOsD,KAFKF,EAAQC,GAASJ,EAClBK,EAAQJ,GACoBzC,EAAM,IAC7CV,EAAQuD,EAAQ7C,EAAM,IAAO2C,EAEnC,OAAIpgD,KAAK0F,IAAIq3C,EAAOsD,GAAS/B,IAAYt+C,KAAK0F,IAAIs3C,GAAQsB,GACjD,CAAC+B,EAAO,GAEV,CAACtD,EAAMC,EAAK,EAMrB,OAHAmD,EAAQtC,WAAY,EACpBsC,EAAQ1C,GAAKA,EAEN0C,CACT,CAgBeI,GACT,QACE,GAA6B,iBAAzBlE,EAAOj1B,MAAM,KAAK,GACpB,OAAO24B,GAAa1D,GAK5B,MAAsB,mBAAXA,EACFA,EAGF,IAAI,EC3JN,MAAMmE,GACXp/C,UAAAA,CAAWyzB,GAA8D,IAAtCgC,EAAajnC,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAC3C6wD,EAAYC,YAAYh0D,MAE1B0lC,EAA2B,KAEzBuuB,EAAmBj0D,IACnBA,EAAM+zD,GAAa5pB,EACrBhC,EAASnoC,GAGiC,mBAA1BiuC,wBAChBvI,EAAYuI,sBAAsBgmB,GACpC,EAKF,OAFAvuB,EAAYuI,sBAAsBgmB,GAE3B,KACY,MAAbvuB,GACFwuB,qBAAqBxuB,EACvB,CAEJ,ECzCK,SAASyuB,KACd,OCuBmCzD,EDvBP,IAAIoD,GCyB5BM,EAA+BA,IAAM,KACrCC,GAAa,EACbC,EAA0C,KAExCC,EAAYC,IAChB,IAAIH,EAAJ,CAIA,GAAI70D,MAAMkH,QAAQ8tD,GAAS,CACzB,IAAKA,EAAOl0D,OACV,OAGF,IAAMm0D,EAA2BD,GAC1BpC,KAASsC,GAAcD,EAE9B,MAAoB,iBAATrC,OACTkC,EAAgB5D,EAAkBh8C,WAAW6/C,EAASz6B,KAAK,KAAM46B,GAAatC,KAKhFmC,EAASnC,QACTkC,EAAgB5D,EAAkBh8C,WAAW6/C,EAASz6B,KAAK,KAAM46B,KAEnE,CAEsB,iBAAXF,GAETJ,EADYI,GAIQ,iBAAXA,GAETJ,EADYI,GAIQ,mBAAXA,GACTA,GAhCF,CAiCA,EAGK,CACLG,KAAMA,KACJN,GAAa,CAAI,EAEnBlhD,MAAQkR,IACNgwC,GAAa,EACTC,IACFA,IACAA,EAAgB,MAElBC,EAASlwC,EAAM,EAEjBnc,UAAY0sD,IACVR,EAAeQ,EAER,KACLR,EAAeA,IAAM,IAAI,GAG7BS,qBAAsBA,IAAMnE,GAhEzB,IAA8BA,EAE/B0D,EACAC,EACAC,EAEEC,CD5BR,CECO,IAAMO,IAA0B9vC,EAAAA,EAAAA,eAAuCmvC,IAEvE,SAASY,GACdC,EACAC,GAEA,IAAMC,GAA0BhwC,EAAAA,EAAAA,YAAW4vC,IAC3C,OAAO/sD,EAAAA,EAAAA,UACL,IAAMktD,QAAAA,EAA6BC,EAAwBF,IAC3D,CAACA,EAAaC,EAA2BC,GAE7C,CCjBA,IAGaC,GAAS,CACpBC,iBAAiB,EACjBC,QAJoB,oBAAXp0C,QAA0BA,OAAOC,UAAYtT,QAAQqT,OAAOC,SAASC,gBAAkBF,OAAOvM,aCsBnG4gD,GAAgC,CACpCvF,MAAO,EACPL,SAAU,IACVC,OAAQ,OACR4F,UAAU,EACVC,UAAU,EACVC,eAAgBA,OAChBC,iBAAkBA,QAOdpwD,GAAqB,CAAE+W,EAAG,GAC1BoiB,GAAmB,CAAEpiB,EAAG,GAEvB,SAASs5C,GAAkB7lC,GAChC,IAAMnM,EAAQ+J,GAAoBoC,EAAcwlC,KAE9CC,SAAUK,EAAY,SACtBJ,EAAQ,SACR9F,EAAQ,OACRC,EAAM,MACNI,EAAK,eACL0F,EAAc,iBACdC,EAAgB,SAChB1xC,GACEL,EAEE4xC,EAA4B,SAAjBK,GAA2BT,GAAOE,MAAQO,EAErDC,EAAmBd,GAAoBpxC,EAAMqxC,YAAarxC,EAAMkyC,mBAE/DxxC,EAAOkwC,IAAY5zC,EAAAA,EAAAA,UAAuB40C,EAAWjwD,GAAOm5B,IAC7Dq3B,GAAkBjuD,EAAAA,EAAAA,QAA4B,MAqCpD,OAnCAC,EAAAA,EAAAA,YAAU,KACHytD,GACHhB,EAAS91B,GACX,GACC,CAAC82B,KAEJztD,EAAAA,EAAAA,YAAU,KACR,IAAKytD,IAAaC,EAChB,OAAOpqC,GAGT,IAAM2qC,EAAiBC,GACrB1wD,GACAm5B,GACA60B,GAAa3D,GACbD,EACA6E,EACAsB,EAAiBhB,wBASnB,OAFAgB,EAAiB1iD,MAAM,CAACuiD,EAAkB3F,EAJhBkG,KACxBH,EAAgBttD,QAAUutD,GAAgB,EAGwBrG,EAAU+F,IAEvE,KACLI,EAAiBlB,OACbmB,EAAgBttD,SAClBstD,EAAgBttD,UAElBitD,GAAgB,CACjB,GACA,CAACF,EAAUC,EAAU9F,EAAUC,EAAQI,EAAO2F,EAAkBD,EAAgBI,IAE5E7xC,EAASK,EAAMhI,EACxB,CC/EO,SAAS65C,GAAexpD,GAAuD,IAAvChM,EAAcwC,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,aACxD8xD,GAAcntD,EAAAA,EAAAA,QAAeoiB,GAASvpB,IACtCy1D,GAAYtuD,EAAAA,EAAAA,QAAgB6E,GAOlC,OALIypD,EAAU3tD,UAAYkE,IACxBsoD,EAAYxsD,QAAUyhB,GAASvpB,GAC/By1D,EAAU3tD,QAAUkE,GAGfsoD,EAAYxsD,OACrB,C,8vDCNA,IAAM4tD,GAAmBA,CAAC5xD,EAAWmD,EAAWsc,EAAeC,EAAgBmyC,KAC7E,IAMIxrD,EANEwvC,EAAejiC,GAAM6L,GACrBq2B,EAAgBliC,GAAM8L,GACtBoyC,EAAYhjD,KAAKkC,IAAIlC,KAAK0F,IAAIqhC,GAAgB,EAAG/mC,KAAK0F,IAAIshC,GAAiB,GAC3Eic,EAAQjc,GAAiB,EAAI,GAAK,EAClCkc,EAAQnc,GAAgB,EAAI,GAAK,EACjCoc,EAAanc,GAAiB,GAAKD,GAAgB,GAAOC,EAAgB,GAAKD,EAAe,EAAK,EAAI,EAG7G,GAAIic,EAAY,GAAK92D,MAAMkH,QAAQ2vD,GAAS,CAE1C,IADA,IAAMK,EAAwB,CAAC,EAAG,EAAG,EAAG,GAC/Bn0D,EAAI,EAAYA,EAAH,EAAYA,IAAK,KAAAo0D,EAC/Bz7C,EAAqB,QAAZy7C,EAAGN,EAAO9zD,UAAE,IAAAo0D,EAAAA,EAAI,EAC/BD,EAAUn0D,GAAK2Y,EAAIo7C,EAAYA,EAAYp7C,CAC7C,CAEArQ,EAAOye,GAAoBstC,KAAAA,GAAAC,GAAA,eAAIryD,EAAKmD,EAAI4uD,EAAQG,EAAU,IAEtDA,EAAU,GAAK,IACjB7rD,GAAQye,GAAoBwtC,KAAAA,GAAAD,GAAA,gCAAKH,EAAU,GAAMA,EAAU,GAAUD,EAAajyD,EAAIgyD,EAAQE,EAAU,GAAM/uD,IAGhHkD,GAAQye,GAAoBytC,KAAAA,GAAAF,GAAA,gBAAKryD,EAAIyf,EAAQuyC,EAAQE,EAAU,GAAM/uD,GAEjE+uD,EAAU,GAAK,IACjB7rD,GAAQye,GAAoB0tC,KAAAA,GAAAH,GAAA,0CAAKH,EAAU,GAAMA,EAAU,GAAUD,EACjEjyD,EAAIyf,EAAStc,EAAI4uD,EAAQG,EAAU,KAEzC7rD,GAAQye,GAAoB2tC,KAAAA,GAAAJ,GAAA,gBAAKryD,EAAIyf,EAAStc,EAAIuc,EAASqyC,EAAQG,EAAU,IAEzEA,EAAU,GAAK,IACjB7rD,GAAQye,GAAoB4tC,KAAAA,GAAAL,GAAA,0CAAKH,EAAU,GAAMA,EAAU,GAAUD,EACjEjyD,EAAIyf,EAAQuyC,EAAQE,EAAU,GAAM/uD,EAAIuc,IAE9CrZ,GAAQye,GAAoB6tC,KAAAA,GAAAN,GAAA,gBAAKryD,EAAIgyD,EAAQE,EAAU,GAAM/uD,EAAIuc,GAE7DwyC,EAAU,GAAK,IACjB7rD,GAAQye,GAAoB8tC,KAAAA,GAAAP,GAAA,0CAAKH,EAAU,GAAMA,EAAU,GAAUD,EACjEjyD,EAAKmD,EAAIuc,EAASqyC,EAAQG,EAAU,KAE1C7rD,GAAQ,GACV,MAAO,GAAIyrD,EAAY,GAAKD,KAAYA,GAAUA,EAAS,EAAG,CAC5D,IAAMK,EAAYpjD,KAAKkC,IAAI8gD,EAAWD,GAEtCxrD,EAAOye,GAAoB+tC,KAAAA,GAAAR,GAAA,mPAAKryD,EAAKmD,EAAI4uD,EAAQG,EACrCA,EAAaA,EAAiBD,EAAajyD,EAAIgyD,EAAQE,EAAa/uD,EACpEnD,EAAIyf,EAAQuyC,EAAQE,EAAa/uD,EACjC+uD,EAAaA,EAAiBD,EAAajyD,EAAIyf,EAAStc,EAAI4uD,EAAQG,EACpElyD,EAAIyf,EAAStc,EAAIuc,EAASqyC,EAAQG,EAClCA,EAAaA,EAAiBD,EAAajyD,EAAIyf,EAAQuyC,EAAQE,EAAa/uD,EAAIuc,EAChF1f,EAAIgyD,EAAQE,EAAa/uD,EAAIuc,EAC7BwyC,EAAaA,EAAiBD,EAAajyD,EAAKmD,EAAIuc,EAASqyC,EAAQG,EACnF,MACE7rD,EAAOye,GAAoBguC,KAAAA,GAAAT,GAAA,oCAAKryD,EAAKmD,EAAOsc,EAAWC,GAAaD,GAGtE,OAAOpZ,CAAI,EA4FA0sD,GAAwB,CACnC/yD,EAAG,EACHmD,EAAG,EACHsc,MAAO,EACPC,OAAQ,EACRmyC,OAAQ,EACRpN,mBAAmB,EACnBuO,yBAAyB,EACzBC,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,QAcN2O,GAA6BC,IACxC,IAAMh0C,EAAQ+J,GAAoBiqC,EAAgBJ,IAC5ClI,GAAUxnD,EAAAA,EAAAA,QAAuB,OAChC+vD,EAAaC,IAAkBl3C,EAAAA,EAAAA,WAAU,IAEhD7Y,EAAAA,EAAAA,YAAU,KACR,GAAIunD,EAAQ7mD,SAAW6mD,EAAQ7mD,QAAQsvD,eACrC,IACE,IAAMC,EAAkB1I,EAAQ7mD,QAAQsvD,iBAEpCC,GACFF,EAAeE,EAEnB,CAAE,MAAAC,GACA,CAEJ,GACC,IAEH,IAAM,EAAExzD,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,OAAEmyC,EAAM,UAAEjyC,GAAcT,GAC7C,gBAAEolC,EAAe,kBAAED,EAAiB,eAAE2O,EAAc,kBAAExO,EAAiB,wBAAEuO,GAA4B7zC,EAErGs0C,GAAepwD,EAAAA,EAAAA,QAAeoc,GAC9Bi0C,GAAgBrwD,EAAAA,EAAAA,QAAeqc,GAC/Bi0C,GAAWtwD,EAAAA,EAAAA,QAAerD,GAC1B4zD,GAAWvwD,EAAAA,EAAAA,QAAeF,GAE1BqtD,EAAckB,IADKnuD,EAAAA,EAAAA,UAAQ,KAAM,CAAGvD,IAAGmD,IAAGsc,QAAOC,SAAQmyC,YAAW,CAAC7xD,EAAGmD,EAAGsc,EAAOC,EAAQmyC,IAC3C,cAErD,GAAI7xD,KAAOA,GAAKmD,KAAOA,GAAKsc,KAAWA,GAASC,KAAYA,GAAoB,IAAVD,GAA0B,IAAXC,EACnF,OAAO,KAGT,IAAMU,EAAa3B,EAAK,qBAAsBmB,GAC9C,IAAKozC,EAAyB,CAC5B,IAAAa,EAAyCz0C,EAAuBD,IAAxD0yC,OAAQxvC,GAAsBwxC,EAAhBC,EAAc7zC,GAAA4zC,EAAA3zC,IACpC,OACEld,EAAAA,cAAA,OAAAqd,GAAA,GACMyzC,EAAc,CAClB9zD,EAAG4T,GAAM5T,GACTmD,EAAGyQ,GAAMzQ,GACTsc,MAAO7L,GAAM6L,GACbC,OAAQ9L,GAAM8L,GACdmyC,OAA0B,iBAAXA,EAAsBA,OAASjzD,EAC9CghB,UAAWQ,EACX/M,EAAGu+C,GAAiB5xD,EAAGmD,EAAGsc,EAAOC,EAAQmyC,KAG/C,CAEA,IAAMkC,EAAYN,EAAazvD,QACzBgwD,EAAaN,EAAc1vD,QAC3BiwD,EAAQN,EAAS3vD,QACjBkwD,EAAQN,EAAS5vD,QAEjBlD,EAAO,OAAHlD,QAA2B,IAAjBw1D,EAAqB,EAAIA,EAAW,MAClDn5B,EAAK,GAAHr8B,OAAMw1D,EAAW,UACnB/N,EAAa4F,GACjB,CAAC,mBACD3G,EAC2B,iBAApBC,EAA+BA,EAAkBwO,GAAsBxO,iBAGhF,OACEvhD,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACb9uD,IAAK8uD,EACLQ,SAAUoC,EAAc,EACxBlI,SAAU5G,EACV6G,OAAQ5G,EACRwM,SAAUiC,EACVzH,MAAO0H,IAELp7C,IACA,IAUIs8C,EAVEC,EAAYluC,GAAY6tC,EAAWt0C,EAAO5H,GAC1Cw8C,EAAanuC,GAAY8tC,EAAYt0C,EAAQ7H,GAC7Cq3C,EAAQhpC,GAAY+tC,EAAOj0D,EAAG6X,GAC9By8C,EAAQpuC,GAAYguC,EAAO/wD,EAAG0U,GAChCgzC,EAAQ7mD,UACVyvD,EAAazvD,QAAUowD,EACvBV,EAAc1vD,QAAUqwD,EACxBV,EAAS3vD,QAAUkrD,EACnB0E,EAAS5vD,QAAUswD,GAMnBH,EAHG1P,EAEM5sC,EAAI,EACI,CAAEwtC,aAAY56B,gBAAiBwP,GAE/B,CAAExP,gBAAiB3pB,GAJnB,CAAE2pB,gBAAiBwP,GAOtC,IAAAs6B,EAAyCn1C,EAAuBD,IAAxD0yC,OAAQxvC,GAAsBkyC,EAAhBT,EAAc7zC,GAAAs0C,EAAAC,IAEpC,OACExxD,EAAAA,cAAA,OAAAqd,GAAA,GACMyzC,EAAc,CAClBjC,OAA0B,iBAAXA,EAAsBA,OAASjzD,EAC9CghB,UAAWQ,EACX/M,EAAGu+C,GAAiB1C,EAAOoF,EAAOF,EAAWC,EAAYxC,GACzDtyC,IAAKsrC,EACLhrC,MAAK6H,GAAAA,GAAA,GACAysC,GACAh1C,EAAMU,SAEX,GAGY,E,kgCC5SjB,I,qBAAMwH,GAASvY,KAAKiS,GAAK,IAEnB0zC,GAAkBnsC,GAAmBA,EAAQxZ,KAAKiS,GAAM,IAExD2zC,GAAkBC,GAA2C,IAAhBA,EAAuB7lD,KAAKiS,GAEzE6zC,GAAmBA,CAAChtC,EAAYC,EAAYgqC,EAAgBvpC,KAAa,CACpFtoB,EAAG4nB,EAAK9Y,KAAK8R,KAAKyG,GAASiB,GAASupC,EACpC1uD,EAAG0kB,EAAK/Y,KAAK+R,KAAKwG,GAASiB,GAASupC,IAGzBgD,GAAe,SAC1Bp1C,EACAC,GAAc,IACditB,EAA2BjuC,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAC5B4yB,IAAK,EACLsY,MAAO,EACPC,OAAQ,EACRxY,KAAM,EACN5R,MAAO,EACPC,OAAQ,EACRgzB,YAAa,GACd,OAED5jC,KAAKkC,IACHlC,KAAK0F,IAAIiL,GAASktB,EAAOtb,MAAQ,IAAMsb,EAAO/C,OAAS,IACvD96B,KAAK0F,IAAIkL,GAAUitB,EAAOrb,KAAO,IAAMqb,EAAO9C,QAAU,KACtD,CAAC,EASDirB,GAAkBA,CAAAvtC,EAAAoP,KAA4D,IAA3D,EAAE32B,EAAC,EAAEmD,GAAeokB,GAAE,GAAEK,EAAE,GAAEC,GAA0B8O,EACvEk7B,EARsBkD,EAAClmB,EAAmBmmB,KAChD,IAAQh1D,EAAG+hB,EAAI5e,EAAG6e,GAAO6sB,GACjB7uC,EAAGwa,EAAIrX,EAAG8e,GAAO+yC,EAEzB,OAAOlmD,KAAK8I,MAAMmK,EAAKvH,IAAO,GAAKwH,EAAKC,IAAO,EAAE,EAIlC8yC,CAAsB,CAAE/0D,IAAGmD,KAAK,CAAEnD,EAAG4nB,EAAIzkB,EAAG0kB,IAE3D,GAAIgqC,GAAU,EACZ,MAAO,CAAEA,SAAQvpC,MAAO,GAG1B,IAAM1H,GAAO5gB,EAAI4nB,GAAMiqC,EACnB8C,EAAgB7lD,KAAK+U,KAAKjD,GAM9B,OAJIzd,EAAI0kB,IACN8sC,EAAgB,EAAI7lD,KAAKiS,GAAK4zC,GAGzB,CAAE9C,SAAQvpC,MAAOosC,GAAeC,GAAgBA,gBAAe,EAclEM,GAA6BA,CAAC3sC,EAAamoB,KAA6D,IAA3D,WAAEykB,EAAU,SAAEC,GAAgC1kB,EACzF2kB,EAAWtmD,KAAKO,MAAM6lD,EAAa,KACnCG,EAASvmD,KAAKO,MAAM8lD,EAAW,KAGrC,OAAO7sC,EAAc,IAFTxZ,KAAKkC,IAAIokD,EAAUC,EAEP,EAGbC,GAAkBA,CAAAC,EAE7B51C,KACoB,IAFlB61C,OAAQx1D,EAAGy1D,OAAQtyD,GAAiBoyD,GAGhC,OAAE1D,EAAM,MAAEvpC,GAAUwsC,GAAgB,CAAE90D,IAAGmD,KAAKwc,IAC9C,YAAE+1C,EAAW,YAAEC,GAAgBh2C,EAErC,GAAIkyC,EAAS6D,GAAe7D,EAAS8D,EACnC,OAAO,KAGT,GAAe,IAAX9D,EACF,OAAO,KAGT,IAEI+D,GAFE,WAAEV,EAAU,SAAEC,GAlCM5lB,KAAoD,IAAnD,WAAE2lB,EAAU,SAAEC,GAAgC5lB,EACnE6lB,EAAWtmD,KAAKO,MAAM6lD,EAAa,KACnCG,EAASvmD,KAAKO,MAAM8lD,EAAW,KAC/BnkD,EAAMlC,KAAKkC,IAAIokD,EAAUC,GAE/B,MAAO,CACLH,WAAYA,EAAmB,IAANlkD,EACzBmkD,SAAUA,EAAiB,IAANnkD,EACtB,EA0BgC6kD,CAAoBl2C,GACjDm2C,EAAcxtC,EAGlB,GAAI4sC,GAAcC,EAAU,CAC1B,KAAOW,EAAcX,GACnBW,GAAe,IAEjB,KAAOA,EAAcZ,GACnBY,GAAe,IAEjBF,EAAUE,GAAeZ,GAAcY,GAAeX,CACxD,KAAO,CACL,KAAOW,EAAcZ,GACnBY,GAAe,IAEjB,KAAOA,EAAcX,GACnBW,GAAe,IAEjBF,EAAUE,GAAeX,GAAYW,GAAeZ,CACtD,CAEA,OAAIU,EACFluC,GAAAA,GAAA,GAAY/H,GAAO,IAAEkyC,SAAQvpC,MAAO2sC,GAA2Ba,EAAan2C,KAGvE,IAAI,EClGN,SAASo2C,GAAsBC,GACpC,IAAM,GAAEpuC,EAAE,GAAEC,EAAE,OAAEgqC,EAAM,WAAEqD,EAAU,SAAEC,GAAaa,EAIjD,MAAO,CACL9L,OAAQ,CAJS0K,GAAiBhtC,EAAIC,EAAIgqC,EAAQqD,GACnCN,GAAiBhtC,EAAIC,EAAIgqC,EAAQsD,IAIhDvtC,KACAC,KACAgqC,SACAqD,aACAC,WAEJ,C,8UCpBA,IAkBMc,GAAmB1uC,IASD,IATE,GACxBK,EAAE,GACFC,EAAE,OACFgqC,EAAM,MACNvpC,EAAK,KACL7P,EAAI,WACJy9C,EAAU,aACVC,EAAY,iBACZC,GACiB7uC,EACX8uC,EAAeF,GAAgBD,EAAa,GAAK,GAAKrE,EACtDyE,EAAQxnD,KAAKynD,KAAKJ,EAAeE,GAAgBhvC,GACjDmvC,EAAcJ,EAAmB9tC,EAAQA,EAAQ7P,EAAO69C,EAKxDG,EAAoBL,EAAmB9tC,EAAQ7P,EAAO69C,EAAQhuC,EAEpE,MAAO,CAAEouC,OANM9B,GAAiBhtC,EAAIC,EAAIwuC,EAAcG,GAMrCG,eAJM/B,GAAiBhtC,EAAIC,EAAIgqC,EAAQ2E,GAIvBI,aADZhC,GAAiBhtC,EAAIC,EAAIwuC,EAAevnD,KAAK8R,IAAI01C,EAAQjvC,IAASovC,GACxCH,QAAO,EAGlDO,GAAgBlgC,IAAgF,IAA/E,GAAE/O,EAAE,GAAEC,EAAE,YAAE6tC,EAAW,YAAEC,EAAW,WAAET,EAAU,SAAEC,GAA0Bx+B,EACzFrO,EAzCcwuC,EAAC5B,EAAoBC,IAC5BhwC,GAASgwC,EAAWD,GACdpmD,KAAKkC,IAAIlC,KAAK0F,IAAI2gD,EAAWD,GAAa,SAuC/C4B,CAAc5B,EAAYC,GAGlC4B,EAAe7B,EAAa5sC,EAC5B0uC,EAAkBpC,GAAiBhtC,EAAIC,EAAI8tC,EAAaT,GACxD+B,EAAgBrC,GAAiBhtC,EAAIC,EAAI8tC,EAAaoB,GAExD1wD,EAAOye,GAAoBstC,KAAAA,GAAAC,GAAA,iEAAK2E,EAAgBh3D,EAAKg3D,EAAgB7zD,EACnEwyD,EAAeA,IACf7mD,KAAK0F,IAAI8T,GAAS,OAAU4sC,EAAa6B,GAC3CE,EAAcj3D,EAAKi3D,EAAc9zD,GAGrC,GAAIuyD,EAAc,EAAG,CACnB,IAAMwB,EAAkBtC,GAAiBhtC,EAAIC,EAAI6tC,EAAaR,GACxDiC,EAAgBvC,GAAiBhtC,EAAIC,EAAI6tC,EAAaqB,GAC5D1wD,GAAQye,GAAoBwtC,KAAAA,GAAAD,GAAA,uFAAK8E,EAAcn3D,EAAKm3D,EAAch0D,EACtDuyD,EAAeA,IACf5mD,KAAK0F,IAAI8T,GAAS,OAAU4sC,GAAc6B,GAC5CG,EAAgBl3D,EAAKk3D,EAAgB/zD,EACjD,MACEkD,GAAQye,GAAoBytC,KAAAA,GAAAF,GAAA,kBAAKzqC,EAAMC,GAGzC,OAAOxhB,CAAI,EAuMA+wD,GAAqB,CAChCxvC,GAAI,EACJC,GAAI,EACJ6tC,YAAa,EACbC,YAAa,EACbT,WAAY,EACZC,SAAU,EACVgB,aAAc,EACdkB,mBAAmB,EACnBjB,kBAAkB,GAGPkB,GAA0BC,IACrC,IAAMp4C,EAAQ+J,GAAoBquC,EAAaH,KACzC,GACJxvC,EAAE,GACFC,EAAE,YACF6tC,EAAW,YACXC,EAAW,aACXQ,EAAY,kBACZkB,EAAiB,iBACjBjB,EAAgB,WAChBlB,EAAU,SACVC,EAAQ,UACRv1C,GACET,EAEJ,GAAIw2C,EAAcD,GAAeR,IAAeC,EAC9C,OAAO,KAGT,IAGI9uD,EAHE+Z,EAAa3B,EAAK,kBAAmBmB,GACrC43C,EAAc7B,EAAcD,EAC5B/1B,EAAKha,GAAgBwwC,EAAcqB,EAAa,GAAG,GAmBzD,OAfEnxD,EADEs5B,EAAK,GAAK7wB,KAAK0F,IAAI0gD,EAAaC,GAAY,IAxOtB5lB,KAUU,IAVT,GAC3B3nB,EAAE,GACFC,EAAE,YACF6tC,EAAW,YACXC,EAAW,aACXQ,EAAY,kBACZkB,EAAiB,iBACjBjB,EAAgB,WAChBlB,EAAU,SACVC,GAC+B5lB,EACzB92B,EAAO0M,GAASgwC,EAAWD,IAE/ByB,eAAgBc,EAChBb,aAAcc,EACdpB,MAAOqB,GACL1B,GAAiB,CACnBruC,KACAC,KACAgqC,OAAQ8D,EACRrtC,MAAO4sC,EACPz8C,OACA09C,eACAC,sBAGAO,eAAgBiB,EAChBhB,aAAciB,EACdvB,MAAOwB,GACL7B,GAAiB,CACnBruC,KACAC,KACAgqC,OAAQ8D,EACRrtC,MAAO6sC,EACP18C,MAAOA,EACP09C,eACAC,qBAEI2B,EAAgB3B,EAClBtnD,KAAK0F,IAAI0gD,EAAaC,GACtBrmD,KAAK0F,IAAI0gD,EAAaC,GAAYwC,EAAMG,EAE5C,GAAIC,EAAgB,EAClB,OAAIV,EACKvyC,GAAoB0tC,KAAAA,GAAAH,GAAA,oFAAKqF,EAAK13D,EAAK03D,EAAKv0D,EAC1CgzD,EAAgBA,EAAqC,EAAfA,EACtCA,EAAgBA,EAAsC,GAAfA,GAGvCU,GAAc,CACnBjvC,KACAC,KACA6tC,cACAC,cACAT,aACAC,aAIJ,IAAI9uD,EAAOye,GAAoB2tC,KAAAA,GAAAJ,GAAA,gHAAKqF,EAAK13D,EAAK03D,EAAKv0D,EAC9CgzD,EAAgBA,IAAsB19C,EAAO,GAAMg/C,EAAKz3D,EAAKy3D,EAAKt0D,EAClEwyD,EAAeA,IAAmBoC,EAAgB,OAAUt/C,EAAO,GAAMm/C,EAAK53D,EAAK43D,EAAKz0D,EACxFgzD,EAAgBA,IAAsB19C,EAAO,GAAMo/C,EAAK73D,EAAK63D,EAAK10D,GAGvE,GAAIuyD,EAAc,EAAG,CACnB,IACEiB,eAAgBqB,EAChBpB,aAAcqB,EACd3B,MAAO4B,GACLjC,GAAiB,CACnBruC,KACAC,KACAgqC,OAAQ6D,EACRptC,MAAO4sC,EACPz8C,OACAy9C,YAAY,EACZC,eACAC,sBAGAO,eAAgBwB,EAChBvB,aAAcwB,EACd9B,MAAO+B,GACLpC,GAAiB,CACnBruC,KACAC,KACAgqC,OAAQ6D,EACRptC,MAAO6sC,EACP18C,MAAOA,EACPy9C,YAAY,EACZC,eACAC,qBAEIkC,EAAgBlC,EAClBtnD,KAAK0F,IAAI0gD,EAAaC,GACtBrmD,KAAK0F,IAAI0gD,EAAaC,GAAY+C,EAAMG,EAE5C,GAAIC,EAAgB,GAAsB,IAAjBnC,EACvB,MAAO,GAAPv4D,OAAUyI,EAAI,KAAAzI,OAAIgqB,EAAE,KAAAhqB,OAAIiqB,EAAE,KAG5BxhB,GAAQye,GAAoB4tC,KAAAA,GAAAL,GAAA,kHAAI+F,EAAKp4D,EAAKo4D,EAAKj1D,EAC1CgzD,EAAgBA,IAAsB19C,EAAO,GAAM0/C,EAAKn4D,EAAKm4D,EAAKh1D,EAClEuyD,EAAeA,IAAmB4C,EAAgB,OAAU7/C,EAAO,GAAMu/C,EAAKh4D,EAAKg4D,EAAK70D,EACxFgzD,EAAgBA,IAAsB19C,EAAO,GAAMw/C,EAAKj4D,EAAKi4D,EAAK90D,EACzE,MACEkD,GAAQye,GAAoB6tC,KAAAA,GAAAN,GAAA,gBAAIzqC,EAAMC,GAGxC,OAAOxhB,CAAI,EA2HFkyD,CAAoB,CACzB3wC,KACAC,KACA6tC,cACAC,cACAQ,aAAcrnD,KAAKkC,IAAI2uB,EAAI63B,EAAc,GACzCH,oBACAjB,mBACAlB,aACAC,aAGK0B,GAAc,CAAEjvC,KAAIC,KAAI6tC,cAAaC,cAAaT,aAAYC,aAGhEnyD,EAAAA,cAAA,OAAAqd,GAAA,GAAUjB,EAAuBD,GAAM,CAAES,UAAWQ,EAAY/M,EAAGhN,IAAQ,EC3T7E,SAASmyD,GACd7uC,EACAqsC,EACArpB,GAEA,GAAe,eAAXhjB,EACF,MAAO,CACL,CAAE3pB,EAAGg2D,EAAiBh2D,EAAGmD,EAAGwpC,EAAOrb,KACnC,CAAEtxB,EAAGg2D,EAAiBh2D,EAAGmD,EAAGwpC,EAAOrb,IAAMqb,EAAOjtB,SAIpD,GAAe,aAAXiK,EACF,MAAO,CACL,CAAE3pB,EAAG2sC,EAAOtb,KAAMluB,EAAG6yD,EAAiB7yD,GACtC,CAAEnD,EAAG2sC,EAAOtb,KAAOsb,EAAOltB,MAAOtc,EAAG6yD,EAAiB7yD,IAIzD,GAAIqlB,GAAkBwtC,GAAmB,CACvC,GAAe,YAAXrsC,EAAsB,CACxB,IAAM,GAAE/B,EAAE,GAAEC,EAAE,YAAE6tC,EAAW,YAAEC,EAAW,MAAErtC,GAAU0tC,EAC9CyC,EAAa7D,GAAiBhtC,EAAIC,EAAI6tC,EAAaptC,GACnDowC,EAAa9D,GAAiBhtC,EAAIC,EAAI8tC,EAAartC,GACzD,MAAO,CACL,CAAEtoB,EAAGy4D,EAAWz4D,EAAGmD,EAAGs1D,EAAWt1D,GACjC,CAAEnD,EAAG04D,EAAW14D,EAAGmD,EAAGu1D,EAAWv1D,GAErC,CACA,OAAO4yD,GAAsBC,EAC/B,CAGF,C,0BC5CO,SAAS2C,GAAU7rB,EAAQp+B,GAChC,OAAQhQ,UAAU5C,QAChB,KAAK,EAAG,MACR,KAAK,EAAGhC,KAAK4U,MAAMo+B,GAAS,MAC5B,QAAShzC,KAAK4U,MAAMA,GAAOo+B,OAAOA,GAEpC,OAAOhzC,IACT,CAEO,SAAS8+D,GAAiB9rB,EAAQ+rB,GACvC,OAAQn6D,UAAU5C,QAChB,KAAK,EAAG,MACR,KAAK,EACmB,mBAAXgxC,EAAuBhzC,KAAK++D,aAAa/rB,GAC/ChzC,KAAK4U,MAAMo+B,GAChB,MAEF,QACEhzC,KAAKgzC,OAAOA,GACgB,mBAAjB+rB,EAA6B/+D,KAAK++D,aAAaA,GACrD/+D,KAAK4U,MAAMmqD,GAIpB,OAAO/+D,IACT,CCzBO,MAAMg/D,WAAkBxxD,IAC7B,WAAA2B,CAAYoI,EAAS3P,EAAMq3D,IAGzB,GAFAC,QACA9+D,OAAOy7B,iBAAiB77B,KAAM,CAACm/D,QAAS,CAAC3+D,MAAO,IAAIgN,KAAQ0d,KAAM,CAAC1qB,MAAOoH,KAC3D,MAAX2P,EAAiB,IAAK,MAAO3P,EAAKpH,KAAU+W,EAASvX,KAAKmO,IAAIvG,EAAKpH,EACzE,CACA,GAAAkL,CAAI9D,GACF,OAAOs3D,MAAMxzD,IAAI0zD,GAAWp/D,KAAM4H,GACpC,CACA,GAAA3F,CAAI2F,GACF,OAAOs3D,MAAMj9D,IAAIm9D,GAAWp/D,KAAM4H,GACpC,CACA,GAAAuG,CAAIvG,EAAKpH,GACP,OAAO0+D,MAAM/wD,IAAIkxD,GAAWr/D,KAAM4H,GAAMpH,EAC1C,CACA,OAAOoH,GACL,OAAOs3D,MAAMxnD,OAAO4nD,GAAct/D,KAAM4H,GAC1C,EAG6BI,IAiB/B,SAASo3D,IAAW,QAACD,EAAO,KAAEj0C,GAAO1qB,GACnC,MAAMoH,EAAMsjB,EAAK1qB,GACjB,OAAO2+D,EAAQl9D,IAAI2F,GAAOu3D,EAAQzzD,IAAI9D,GAAOpH,CAC/C,CAEA,SAAS6+D,IAAW,QAACF,EAAO,KAAEj0C,GAAO1qB,GACnC,MAAMoH,EAAMsjB,EAAK1qB,GACjB,OAAI2+D,EAAQl9D,IAAI2F,GAAau3D,EAAQzzD,IAAI9D,IACzCu3D,EAAQhxD,IAAIvG,EAAKpH,GACVA,EACT,CAEA,SAAS8+D,IAAc,QAACH,EAAO,KAAEj0C,GAAO1qB,GACtC,MAAMoH,EAAMsjB,EAAK1qB,GAKjB,OAJI2+D,EAAQl9D,IAAI2F,KACdpH,EAAQ2+D,EAAQzzD,IAAI9D,GACpBu3D,EAAQznD,OAAO9P,IAEVpH,CACT,CAEA,SAASy+D,GAAMz+D,GACb,OAAiB,OAAVA,GAAmC,iBAAVA,EAAqBA,EAAM+G,UAAY/G,CACzE,CCzDO,MAAM++D,GAAWj/D,OAAO,YAEhB,SAASk/D,KACtB,IAAIh6D,EAAQ,IAAIw5D,GACZhsB,EAAS,GACTp+B,EAAQ,GACR6qD,EAAUF,GAEd,SAASvvB,EAAMz2B,GACb,IAAItV,EAAIuB,EAAMkG,IAAI6N,GAClB,QAAUzU,IAANb,EAAiB,CACnB,GAAIw7D,IAAYF,GAAU,OAAOE,EACjCj6D,EAAM2I,IAAIoL,EAAGtV,EAAI+uC,EAAO/vC,KAAKsW,GAAK,EACpC,CACA,OAAO3E,EAAM3Q,EAAI2Q,EAAM5S,OACzB,CA0BA,OAxBAguC,EAAMgD,OAAS,SAASzqB,GACtB,IAAK3jB,UAAU5C,OAAQ,OAAOgxC,EAAOpvC,QACrCovC,EAAS,GAAIxtC,EAAQ,IAAIw5D,GACzB,IAAK,MAAMx+D,KAAS+nB,EACd/iB,EAAMvD,IAAIzB,IACdgF,EAAM2I,IAAI3N,EAAOwyC,EAAO/vC,KAAKzC,GAAS,GAExC,OAAOwvC,CACT,EAEAA,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAU4S,EAAQ1T,MAAM8F,KAAKuhB,GAAIynB,GAASp7B,EAAMhR,OACnE,EAEAosC,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEAzvB,EAAM8T,KAAO,WACX,OAAO0b,GAAQxsB,EAAQp+B,GAAO6qD,QAAQA,EACxC,EAEAZ,GAAUt9D,MAAMyuC,EAAOprC,WAEhBorC,CACT,CCzCe,SAAS0vB,KACtB,IAKI3qD,EACA69B,EANA5C,EAAQwvB,KAAUC,aAAQ36D,GAC1BkuC,EAAShD,EAAMgD,OACf2sB,EAAe3vB,EAAMp7B,MACrBgrD,EAAK,EACLC,EAAK,EAGL/lD,GAAQ,EACRgmD,EAAe,EACfC,EAAe,EACfrwC,EAAQ,GAIZ,SAASswC,IACP,IAAIxpD,EAAIw8B,IAAShxC,OACb+X,EAAU8lD,EAAKD,EACf/qD,EAAQkF,EAAU8lD,EAAKD,EACvBvJ,EAAOt8C,EAAU6lD,EAAKC,EAC1B9qD,GAAQshD,EAAOxhD,GAASG,KAAKlP,IAAI,EAAG0Q,EAAIspD,EAA8B,EAAfC,GACnDjmD,IAAO/E,EAAOC,KAAKO,MAAMR,IAC7BF,IAAUwhD,EAAOxhD,EAAQE,GAAQyB,EAAIspD,IAAiBpwC,EACtDkjB,EAAY79B,GAAQ,EAAI+qD,GACpBhmD,IAAOjF,EAAQG,KAAK8E,MAAMjF,GAAQ+9B,EAAY59B,KAAK8E,MAAM84B,IAC7D,IAAIxmC,EC7BO,SAAeyI,EAAOwhD,EAAMthD,GACzCF,GAASA,EAAOwhD,GAAQA,EAAMthD,GAAQyB,EAAI5R,UAAU5C,QAAU,GAAKq0D,EAAOxhD,EAAOA,EAAQ,EAAG,GAAK2B,EAAI,EAAI,GAAKzB,EAM9G,IAJA,IAAI9Q,GAAK,EACLuS,EAAoD,EAAhDxB,KAAKlP,IAAI,EAAGkP,KAAKC,MAAMohD,EAAOxhD,GAASE,IAC3CH,EAAQ,IAAI1T,MAAMsV,KAEbvS,EAAIuS,GACX5B,EAAM3Q,GAAK4Q,EAAQ5Q,EAAI8Q,EAGzB,OAAOH,CACT,CDiBiB,CAAS4B,GAAG7N,KAAI,SAAS1E,GAAK,OAAO4Q,EAAQE,EAAO9Q,CAAG,IACpE,OAAO07D,EAAa5lD,EAAU3N,EAAO2N,UAAY3N,EACnD,CAkDA,cAhEO4jC,EAAMyvB,QAgBbzvB,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,QAAUgxC,EAAOzqB,GAAIy3C,KAAahtB,GACrD,EAEAhD,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,SAAW49D,EAAIC,GAAMt3C,EAAGq3C,GAAMA,EAAIC,GAAMA,EAAIG,KAAa,CAACJ,EAAIC,EACjF,EAEA7vB,EAAMiwB,WAAa,SAAS13C,GAC1B,OAAQq3C,EAAIC,GAAMt3C,EAAGq3C,GAAMA,EAAIC,GAAMA,EAAI/lD,GAAQ,EAAMkmD,GACzD,EAEAhwB,EAAM4C,UAAY,WAChB,OAAOA,CACT,EAEA5C,EAAMj7B,KAAO,WACX,OAAOA,CACT,EAEAi7B,EAAMl2B,MAAQ,SAASyO,GACrB,OAAO3jB,UAAU5C,QAAU8X,IAAUyO,EAAGy3C,KAAalmD,CACvD,EAEAk2B,EAAMte,QAAU,SAASnJ,GACvB,OAAO3jB,UAAU5C,QAAU89D,EAAe9qD,KAAKkC,IAAI,EAAG6oD,GAAgBx3C,GAAIy3C,KAAaF,CACzF,EAEA9vB,EAAM8vB,aAAe,SAASv3C,GAC5B,OAAO3jB,UAAU5C,QAAU89D,EAAe9qD,KAAKkC,IAAI,EAAGqR,GAAIy3C,KAAaF,CACzE,EAEA9vB,EAAM+vB,aAAe,SAASx3C,GAC5B,OAAO3jB,UAAU5C,QAAU+9D,GAAgBx3C,EAAGy3C,KAAaD,CAC7D,EAEA/vB,EAAMtgB,MAAQ,SAASnH,GACrB,OAAO3jB,UAAU5C,QAAU0tB,EAAQ1a,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,EAAGqR,IAAKy3C,KAAatwC,CAC/E,EAEAsgB,EAAM8T,KAAO,WACX,OAAO4b,GAAK1sB,IAAU,CAAC4sB,EAAIC,IACtB/lD,MAAMA,GACNgmD,aAAaA,GACbC,aAAaA,GACbrwC,MAAMA,EACb,EAEOmvC,GAAUt9D,MAAMy+D,IAAWp7D,UACpC,CAEA,SAASs7D,GAASlwB,GAChB,IAAI8T,EAAO9T,EAAM8T,KAUjB,OARA9T,EAAMte,QAAUse,EAAM+vB,oBACf/vB,EAAM8vB,oBACN9vB,EAAM+vB,aAEb/vB,EAAM8T,KAAO,WACX,OAAOoc,GAASpc,IAClB,EAEO9T,CACT,CAEO,SAAS,KACd,OAAOkwB,GAASR,GAAKn+D,MAAM,KAAMqD,WAAWk7D,aAAa,GAC3D,CEpGA,MAAMK,GAAMnrD,KAAK8I,KAAK,IAClBsiD,GAAKprD,KAAK8I,KAAK,IACfuiD,GAAKrrD,KAAK8I,KAAK,GAEnB,SAASwiD,GAASzrD,EAAOwhD,EAAMkK,GAC7B,MAAMxrD,GAAQshD,EAAOxhD,GAASG,KAAKlP,IAAI,EAAGy6D,GACtCC,EAAQxrD,KAAKO,MAAMP,KAAKyrD,MAAM1rD,IAC9B2N,EAAQ3N,EAAOC,KAAKgE,IAAI,GAAIwnD,GAC5B11C,EAASpI,GAASy9C,GAAM,GAAKz9C,GAAS09C,GAAK,EAAI19C,GAAS29C,GAAK,EAAI,EACrE,IAAIrR,EAAI0R,EAAIC,EAeZ,OAdIH,EAAQ,GACVG,EAAM3rD,KAAKgE,IAAI,IAAKwnD,GAAS11C,EAC7BkkC,EAAKh6C,KAAK8E,MAAMjF,EAAQ8rD,GACxBD,EAAK1rD,KAAK8E,MAAMu8C,EAAOsK,GACnB3R,EAAK2R,EAAM9rD,KAASm6C,EACpB0R,EAAKC,EAAMtK,KAAQqK,EACvBC,GAAOA,IAEPA,EAAM3rD,KAAKgE,IAAI,GAAIwnD,GAAS11C,EAC5BkkC,EAAKh6C,KAAK8E,MAAMjF,EAAQ8rD,GACxBD,EAAK1rD,KAAK8E,MAAMu8C,EAAOsK,GACnB3R,EAAK2R,EAAM9rD,KAASm6C,EACpB0R,EAAKC,EAAMtK,KAAQqK,GAErBA,EAAK1R,GAAM,IAAOuR,GAASA,EAAQ,EAAUD,GAASzrD,EAAOwhD,EAAc,EAARkK,GAChE,CAACvR,EAAI0R,EAAIC,EAClB,CAEe,SAASjvB,GAAM78B,EAAOwhD,EAAMkK,GAEzC,MAD8BA,GAASA,GACzB,GAAI,MAAO,GACzB,IAFc1rD,GAASA,MAAvBwhD,GAAQA,GAEY,MAAO,CAACxhD,GAC5B,MAAMkF,EAAUs8C,EAAOxhD,GAAQm6C,EAAI0R,EAAIC,GAAO5mD,EAAUumD,GAASjK,EAAMxhD,EAAO0rD,GAASD,GAASzrD,EAAOwhD,EAAMkK,GAC7G,KAAMG,GAAM1R,GAAK,MAAO,GACxB,MAAMx4C,EAAIkqD,EAAK1R,EAAK,EAAGtd,EAAQ,IAAIxwC,MAAMsV,GACzC,GAAIuD,EACF,GAAI4mD,EAAM,EAAG,IAAK,IAAI18D,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGytC,EAAMztC,IAAMy8D,EAAKz8D,IAAM08D,OAC3D,IAAK,IAAI18D,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGytC,EAAMztC,IAAMy8D,EAAKz8D,GAAK08D,OAEvD,GAAIA,EAAM,EAAG,IAAK,IAAI18D,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGytC,EAAMztC,IAAM+qD,EAAK/qD,IAAM08D,OAC3D,IAAK,IAAI18D,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGytC,EAAMztC,IAAM+qD,EAAK/qD,GAAK08D,EAEzD,OAAOjvB,CACT,CAEO,SAASkvB,GAAc/rD,EAAOwhD,EAAMkK,GAEzC,OAAOD,GADOzrD,GAASA,EAAvBwhD,GAAQA,EAAsBkK,GAASA,GACH,EACtC,CAEO,SAASM,GAAShsD,EAAOwhD,EAAMkK,GACNA,GAASA,EACvC,MAAMxmD,GADNs8C,GAAQA,IAAMxhD,GAASA,GACO8rD,EAAM5mD,EAAU6mD,GAAcvK,EAAMxhD,EAAO0rD,GAASK,GAAc/rD,EAAOwhD,EAAMkK,GAC7G,OAAQxmD,GAAW,EAAI,IAAM4mD,EAAM,EAAI,GAAKA,EAAMA,EACpD,CCtDe,SAASG,GAAUh0D,EAAGC,GACnC,OAAY,MAALD,GAAkB,MAALC,EAAYqW,IAAMtW,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIqW,GAC9E,CCFe,SAAS29C,GAAWj0D,EAAGC,GACpC,OAAY,MAALD,GAAkB,MAALC,EAAYqW,IAC5BrW,EAAID,GAAK,EACTC,EAAID,EAAI,EACRC,GAAKD,EAAI,EACTsW,GACN,CCHe,SAAS49C,GAASt8C,GAC/B,IAAIu8C,EAAUC,EAAUC,EAiBxB,SAAS5pC,EAAKzqB,EAAG5G,EAAGk7D,EAAK,EAAGC,EAAKv0D,EAAE9K,QACjC,GAAIo/D,EAAKC,EAAI,CACX,GAAuB,IAAnBJ,EAAS/6D,EAAGA,GAAU,OAAOm7D,EACjC,EAAG,CACD,MAAMC,EAAOF,EAAKC,IAAQ,EACtBH,EAASp0D,EAAEw0D,GAAMp7D,GAAK,EAAGk7D,EAAKE,EAAM,EACnCD,EAAKC,CACZ,OAASF,EAAKC,EAChB,CACA,OAAOD,CACT,CAmBA,OAvCiB,IAAb18C,EAAE1iB,QACJi/D,EAAWH,GACXI,EAAW,CAAC3nD,EAAGrT,IAAM46D,GAAUp8C,EAAEnL,GAAIrT,GACrCi7D,EAAQ,CAAC5nD,EAAGrT,IAAMwe,EAAEnL,GAAKrT,IAEzB+6D,EAAWv8C,IAAMo8C,IAAap8C,IAAMq8C,GAAar8C,EAAI68C,GACrDL,EAAWx8C,EACXy8C,EAAQz8C,GAgCH,CAAC6S,OAAMqlC,OALd,SAAgB9vD,EAAG5G,EAAGk7D,EAAK,EAAGC,EAAKv0D,EAAE9K,QACnC,MAAMiC,EAAIszB,EAAKzqB,EAAG5G,EAAGk7D,EAAIC,EAAK,GAC9B,OAAOp9D,EAAIm9D,GAAMD,EAAMr0D,EAAE7I,EAAI,GAAIiC,IAAMi7D,EAAMr0D,EAAE7I,GAAIiC,GAAKjC,EAAI,EAAIA,CAClE,EAEsB6rC,MAjBtB,SAAehjC,EAAG5G,EAAGk7D,EAAK,EAAGC,EAAKv0D,EAAE9K,QAClC,GAAIo/D,EAAKC,EAAI,CACX,GAAuB,IAAnBJ,EAAS/6D,EAAGA,GAAU,OAAOm7D,EACjC,EAAG,CACD,MAAMC,EAAOF,EAAKC,IAAQ,EACtBH,EAASp0D,EAAEw0D,GAAMp7D,IAAM,EAAGk7D,EAAKE,EAAM,EACpCD,EAAKC,CACZ,OAASF,EAAKC,EAChB,CACA,OAAOD,CACT,EAQF,CAEA,SAASG,KACP,OAAO,CACT,CCvDe,SAAS,GAAOr7D,GAC7B,OAAa,OAANA,EAAakd,KAAOld,CAC7B,CCEA,MAAMs7D,GAAkBR,GAASF,IACpBW,GAAcD,GAAgB1xB,MAG3C,IAF0B0xB,GAAgBjqC,KACdypC,GAAS,IAAQpE,OAC7C,ICRe,YAASztD,EAAazP,EAASwC,GAC5CiN,EAAYjN,UAAYxC,EAAQwC,UAAYA,EAC5CA,EAAUiN,YAAcA,CAC1B,CAEO,SAASuyD,GAAO5qD,EAAQqN,GAC7B,IAAIjiB,EAAY9B,OAAOiD,OAAOyT,EAAO5U,WACrC,IAAK,IAAI0F,KAAOuc,EAAYjiB,EAAU0F,GAAOuc,EAAWvc,GACxD,OAAO1F,CACT,CCPO,SAASy/D,KAAS,CAElB,IAAIC,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAI5zD,OAAO,UAAUwzD,MAAOA,MAAOA,UAClDK,GAAe,IAAI7zD,OAAO,UAAU0zD,MAAOA,MAAOA,UAClDI,GAAgB,IAAI9zD,OAAO,WAAWwzD,MAAOA,MAAOA,MAAOC,UAC3DM,GAAgB,IAAI/zD,OAAO,WAAW0zD,MAAOA,MAAOA,MAAOD,UAC3DO,GAAe,IAAIh0D,OAAO,UAAUyzD,MAAOC,MAAOA,UAClDO,GAAgB,IAAIj0D,OAAO,WAAWyzD,MAAOC,MAAOA,MAAOD,UAE3DS,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXnhD,IAAK,SACLohD,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAkBf,SAASC,KACP,OAAO5rE,KAAK6rE,MAAMC,WACpB,CAUA,SAASC,KACP,OAAO/rE,KAAK6rE,MAAMG,WACpB,CAEe,SAAS37C,GAAMupB,GAC5B,IAAIlhB,EAAGx0B,EAEP,OADA01C,GAAUA,EAAS,IAAIqyB,OAAO3a,eACtB54B,EAAIupC,GAAMiK,KAAKtyB,KAAY11C,EAAIw0B,EAAE,GAAG12B,OAAQ02B,EAAIyzC,SAASzzC,EAAE,GAAI,IAAW,IAANx0B,EAAUkoE,GAAK1zC,GAC/E,IAANx0B,EAAU,IAAImoE,GAAK3zC,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANx0B,EAAUooE,GAAK5zC,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANx0B,EAAUooE,GAAM5zC,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAIwpC,GAAagK,KAAKtyB,IAAW,IAAIyyB,GAAI3zC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAIypC,GAAa+J,KAAKtyB,IAAW,IAAIyyB,GAAW,IAAP3zC,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI0pC,GAAc8J,KAAKtyB,IAAW0yB,GAAK5zC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAI2pC,GAAc6J,KAAKtyB,IAAW0yB,GAAY,IAAP5zC,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAI4pC,GAAa4J,KAAKtyB,IAAW2yB,GAAK7zC,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAI6pC,GAAc2J,KAAKtyB,IAAW2yB,GAAK7zC,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxE8pC,GAAMrgE,eAAey3C,GAAUwyB,GAAK5J,GAAM5oB,IAC/B,gBAAXA,EAA2B,IAAIyyB,GAAIjpD,IAAKA,IAAKA,IAAK,GAClD,IACR,CAEA,SAASgpD,GAAK51D,GACZ,OAAO,IAAI61D,GAAI71D,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,EAC1D,CAEA,SAAS81D,GAAK1vD,EAAG0H,EAAGvX,EAAGD,GAErB,OADIA,GAAK,IAAG8P,EAAI0H,EAAIvX,EAAIqW,KACjB,IAAIipD,GAAIzvD,EAAG0H,EAAGvX,EAAGD,EAC1B,CASO,SAAS,GAAI8P,EAAG0H,EAAGvX,EAAGy/D,GAC3B,OAA4B,IAArB5nE,UAAU5C,OARZ,SAAoBoiB,GAEzB,OADMA,aAAau9C,KAAQv9C,EAAIiM,GAAMjM,IAChCA,EAEE,IAAIioD,IADXjoD,EAAIA,EAAEynD,OACWjvD,EAAGwH,EAAEE,EAAGF,EAAErX,EAAGqX,EAAEooD,SAFjB,IAAIH,EAGrB,CAGkCI,CAAW7vD,GAAK,IAAIyvD,GAAIzvD,EAAG0H,EAAGvX,EAAc,MAAXy/D,EAAkB,EAAIA,EACzF,CAEO,SAASH,GAAIzvD,EAAG0H,EAAGvX,EAAGy/D,GAC3BxsE,KAAK4c,GAAKA,EACV5c,KAAKskB,GAAKA,EACVtkB,KAAK+M,GAAKA,EACV/M,KAAKwsE,SAAWA,CAClB,CA8BA,SAASE,KACP,MAAO,IAAIC,GAAI3sE,KAAK4c,KAAK+vD,GAAI3sE,KAAKskB,KAAKqoD,GAAI3sE,KAAK+M,IAClD,CAMA,SAAS6/D,KACP,MAAM9/D,EAAI+/D,GAAO7sE,KAAKwsE,SACtB,MAAO,GAAS,IAAN1/D,EAAU,OAAS,UAAUggE,GAAO9sE,KAAK4c,OAAOkwD,GAAO9sE,KAAKskB,OAAOwoD,GAAO9sE,KAAK+M,KAAW,IAAND,EAAU,IAAM,KAAKA,MACrH,CAEA,SAAS+/D,GAAOL,GACd,OAAOj4D,MAAMi4D,GAAW,EAAIx3D,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,EAAGs1D,GACtD,CAEA,SAASM,GAAOtsE,GACd,OAAOwU,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,IAAKlC,KAAK8E,MAAMtZ,IAAU,GACxD,CAEA,SAASmsE,GAAInsE,GAEX,QADAA,EAAQssE,GAAOtsE,IACC,GAAK,IAAM,IAAMA,EAAMkI,SAAS,GAClD,CAEA,SAAS6jE,GAAK/hD,EAAG3Q,EAAG3V,EAAG4I,GAIrB,OAHIA,GAAK,EAAG0d,EAAI3Q,EAAI3V,EAAIkf,IACflf,GAAK,GAAKA,GAAK,EAAGsmB,EAAI3Q,EAAIuJ,IAC1BvJ,GAAK,IAAG2Q,EAAIpH,KACd,IAAI2pD,GAAIviD,EAAG3Q,EAAG3V,EAAG4I,EAC1B,CAEO,SAASkgE,GAAW5oD,GACzB,GAAIA,aAAa2oD,GAAK,OAAO,IAAIA,GAAI3oD,EAAEoG,EAAGpG,EAAEvK,EAAGuK,EAAElgB,EAAGkgB,EAAEooD,SAEtD,GADMpoD,aAAau9C,KAAQv9C,EAAIiM,GAAMjM,KAChCA,EAAG,OAAO,IAAI2oD,GACnB,GAAI3oD,aAAa2oD,GAAK,OAAO3oD,EAE7B,IAAIxH,GADJwH,EAAIA,EAAEynD,OACIjvD,EAAI,IACV0H,EAAIF,EAAEE,EAAI,IACVvX,EAAIqX,EAAErX,EAAI,IACVmK,EAAMlC,KAAKkC,IAAI0F,EAAG0H,EAAGvX,GACrBjH,EAAMkP,KAAKlP,IAAI8W,EAAG0H,EAAGvX,GACrByd,EAAIpH,IACJvJ,EAAI/T,EAAMoR,EACVhT,GAAK4B,EAAMoR,GAAO,EAUtB,OATI2C,GACa2Q,EAAX5N,IAAM9W,GAAUwe,EAAIvX,GAAK8M,EAAc,GAATyK,EAAIvX,GAC7BuX,IAAMxe,GAAUiH,EAAI6P,GAAK/C,EAAI,GAC5B+C,EAAI0H,GAAKzK,EAAI,EACvBA,GAAK3V,EAAI,GAAM4B,EAAMoR,EAAM,EAAIpR,EAAMoR,EACrCsT,GAAK,IAEL3Q,EAAI3V,EAAI,GAAKA,EAAI,EAAI,EAAIsmB,EAEpB,IAAIuiD,GAAIviD,EAAG3Q,EAAG3V,EAAGkgB,EAAEooD,QAC5B,CAMA,SAASO,GAAIviD,EAAG3Q,EAAG3V,EAAGsoE,GACpBxsE,KAAKwqB,GAAKA,EACVxqB,KAAK6Z,GAAKA,EACV7Z,KAAKkE,GAAKA,EACVlE,KAAKwsE,SAAWA,CAClB,CAsCA,SAASS,GAAOzsE,GAEd,OADAA,GAASA,GAAS,GAAK,KACR,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAAS0sE,GAAO1sE,GACd,OAAOwU,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,EAAG1W,GAAS,GAC1C,CAGA,SAAS2sE,GAAQ3iD,EAAG4iD,EAAIC,GACtB,OAGY,KAHJ7iD,EAAI,GAAK4iD,GAAMC,EAAKD,GAAM5iD,EAAI,GAChCA,EAAI,IAAM6iD,EACV7iD,EAAI,IAAM4iD,GAAMC,EAAKD,IAAO,IAAM5iD,GAAK,GACvC4iD,EACR,CC3YO,SAAS,GAAM7f,EAAI+f,EAAIC,EAAIC,EAAIC,GACpC,IAAIC,EAAKngB,EAAKA,EAAIogB,EAAKD,EAAKngB,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAImgB,EAAKC,GAAML,GAC9B,EAAI,EAAII,EAAK,EAAIC,GAAMJ,GACvB,EAAI,EAAIhgB,EAAK,EAAImgB,EAAK,EAAIC,GAAMH,EACjCG,EAAKF,GAAM,CACnB,CDmKA,GAAO9L,GAAOtxC,GAAO,CACnB,IAAAyzB,CAAK8pB,GACH,OAAOxtE,OAAO21B,OAAO,IAAI/1B,KAAKmP,YAAanP,KAAM4tE,EACnD,EACA,WAAAC,GACE,OAAO7tE,KAAK6rE,MAAMgC,aACpB,EACAlB,IAAKf,GACLE,UAAWF,GACXkC,WAUF,WACE,OAAO9tE,KAAK6rE,MAAMiC,YACpB,EAXEC,UAaF,WACE,OAAOf,GAAWhtE,MAAM+tE,WAC1B,EAdE/B,UAAWD,GACXrjE,SAAUqjE,KAiEZ,GAAOM,GAAK,GAAK3K,GAAOC,GAAO,CAC7B,QAAAE,CAASroD,GAEP,OADAA,EAAS,MAALA,EAAYqoD,GAAW7sD,KAAKgE,IAAI6oD,GAAUroD,GACvC,IAAI6yD,GAAIrsE,KAAK4c,EAAIpD,EAAGxZ,KAAKskB,EAAI9K,EAAGxZ,KAAK+M,EAAIyM,EAAGxZ,KAAKwsE,QAC1D,EACA,MAAA5K,CAAOpoD,GAEL,OADAA,EAAS,MAALA,EAAYooD,GAAS5sD,KAAKgE,IAAI4oD,GAAQpoD,GACnC,IAAI6yD,GAAIrsE,KAAK4c,EAAIpD,EAAGxZ,KAAKskB,EAAI9K,EAAGxZ,KAAK+M,EAAIyM,EAAGxZ,KAAKwsE,QAC1D,EACA,GAAAX,GACE,OAAO7rE,IACT,EACA,KAAAguE,GACE,OAAO,IAAI3B,GAAIS,GAAO9sE,KAAK4c,GAAIkwD,GAAO9sE,KAAKskB,GAAIwoD,GAAO9sE,KAAK+M,GAAI8/D,GAAO7sE,KAAKwsE,SAC7E,EACA,WAAAqB,GACE,OAAS,IAAO7tE,KAAK4c,GAAK5c,KAAK4c,EAAI,QAC1B,IAAO5c,KAAKskB,GAAKtkB,KAAKskB,EAAI,QAC1B,IAAOtkB,KAAK+M,GAAK/M,KAAK+M,EAAI,OAC3B,GAAK/M,KAAKwsE,SAAWxsE,KAAKwsE,SAAW,CAC/C,EACAG,IAAKD,GACLZ,UAAWY,GACXoB,WASF,WACE,MAAO,IAAInB,GAAI3sE,KAAK4c,KAAK+vD,GAAI3sE,KAAKskB,KAAKqoD,GAAI3sE,KAAK+M,KAAK4/D,GAA+C,KAA1Cp4D,MAAMvU,KAAKwsE,SAAW,EAAIxsE,KAAKwsE,WAC3F,EAVER,UAAWY,GACXlkE,SAAUkkE,MAyEZ,GAAOG,IAXA,SAAaviD,EAAG3Q,EAAG3V,EAAGsoE,GAC3B,OAA4B,IAArB5nE,UAAU5C,OAAegrE,GAAWxiD,GAAK,IAAIuiD,GAAIviD,EAAG3Q,EAAG3V,EAAc,MAAXsoE,EAAkB,EAAIA,EACzF,GASiB9K,GAAOC,GAAO,CAC7B,QAAAE,CAASroD,GAEP,OADAA,EAAS,MAALA,EAAYqoD,GAAW7sD,KAAKgE,IAAI6oD,GAAUroD,GACvC,IAAIuzD,GAAI/sE,KAAKwqB,EAAGxqB,KAAK6Z,EAAG7Z,KAAKkE,EAAIsV,EAAGxZ,KAAKwsE,QAClD,EACA,MAAA5K,CAAOpoD,GAEL,OADAA,EAAS,MAALA,EAAYooD,GAAS5sD,KAAKgE,IAAI4oD,GAAQpoD,GACnC,IAAIuzD,GAAI/sE,KAAKwqB,EAAGxqB,KAAK6Z,EAAG7Z,KAAKkE,EAAIsV,EAAGxZ,KAAKwsE,QAClD,EACA,GAAAX,GACE,IAAIrhD,EAAIxqB,KAAKwqB,EAAI,IAAqB,KAAdxqB,KAAKwqB,EAAI,GAC7B3Q,EAAItF,MAAMiW,IAAMjW,MAAMvU,KAAK6Z,GAAK,EAAI7Z,KAAK6Z,EACzC3V,EAAIlE,KAAKkE,EACTmpE,EAAKnpE,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAK2V,EACjCuzD,EAAK,EAAIlpE,EAAImpE,EACjB,OAAO,IAAIhB,GACTc,GAAQ3iD,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK4iD,EAAIC,GAC1CF,GAAQ3iD,EAAG4iD,EAAIC,GACfF,GAAQ3iD,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK4iD,EAAIC,GACzCrtE,KAAKwsE,QAET,EACA,KAAAwB,GACE,OAAO,IAAIjB,GAAIE,GAAOjtE,KAAKwqB,GAAI0iD,GAAOltE,KAAK6Z,GAAIqzD,GAAOltE,KAAKkE,GAAI2oE,GAAO7sE,KAAKwsE,SAC7E,EACA,WAAAqB,GACE,OAAQ,GAAK7tE,KAAK6Z,GAAK7Z,KAAK6Z,GAAK,GAAKtF,MAAMvU,KAAK6Z,KACzC,GAAK7Z,KAAKkE,GAAKlE,KAAKkE,GAAK,GACzB,GAAKlE,KAAKwsE,SAAWxsE,KAAKwsE,SAAW,CAC/C,EACA,SAAAuB,GACE,MAAMjhE,EAAI+/D,GAAO7sE,KAAKwsE,SACtB,MAAO,GAAS,IAAN1/D,EAAU,OAAS,UAAUmgE,GAAOjtE,KAAKwqB,OAAwB,IAAjB0iD,GAAOltE,KAAK6Z,QAA+B,IAAjBqzD,GAAOltE,KAAKkE,MAAkB,IAAN4I,EAAU,IAAM,KAAKA,MACnI,KEzXF,SAAe5G,GAAK,IAAMA,ECE1B,SAAS,GAAO4G,EAAGyM,GACjB,OAAO,SAASwE,GACd,OAAOjR,EAAIiR,EAAIxE,CACjB,CACF,CAaO,SAAS00D,GAAM5kE,GACpB,OAAoB,IAAZA,GAAKA,GAAW6kE,GAAU,SAASphE,EAAGC,GAC5C,OAAOA,EAAID,EAbf,SAAqBA,EAAGC,EAAG1D,GACzB,OAAOyD,EAAIkI,KAAKgE,IAAIlM,EAAGzD,GAAI0D,EAAIiI,KAAKgE,IAAIjM,EAAG1D,GAAKyD,EAAGzD,EAAI,EAAIA,EAAG,SAAS0U,GACrE,OAAO/I,KAAKgE,IAAIlM,EAAIiR,EAAIhR,EAAG1D,EAC7B,CACF,CASmB8kE,CAAYrhE,EAAGC,EAAG1D,GAAK,GAASkL,MAAMzH,GAAKC,EAAID,EAChE,CACF,CAEe,SAASohE,GAAQphE,EAAGC,GACjC,IAAIwM,EAAIxM,EAAID,EACZ,OAAOyM,EAAI,GAAOzM,EAAGyM,GAAK,GAAShF,MAAMzH,GAAKC,EAAID,EACpD,CCvBA,SAAe,SAAUshE,EAAS/kE,GAChC,IAAIgnB,EAAQ49C,GAAM5kE,GAElB,SAASwiE,EAAIh3D,EAAOC,GAClB,IAAI8H,EAAIyT,GAAOxb,EAAQ,GAASA,IAAQ+H,GAAI9H,EAAM,GAASA,IAAM8H,GAC7D0H,EAAI+L,EAAMxb,EAAMyP,EAAGxP,EAAIwP,GACvBvX,EAAIsjB,EAAMxb,EAAM9H,EAAG+H,EAAI/H,GACvBy/D,EAAU0B,GAAQr5D,EAAM23D,QAAS13D,EAAI03D,SACzC,OAAO,SAASzuD,GAKd,OAJAlJ,EAAM+H,EAAIA,EAAEmB,GACZlJ,EAAMyP,EAAIA,EAAEvG,GACZlJ,EAAM9H,EAAIA,EAAEgR,GACZlJ,EAAM23D,QAAUA,EAAQzuD,GACjBlJ,EAAQ,EACjB,CACF,CAIA,OAFAg3D,EAAIoC,MAAQG,EAELvC,CACR,CApBD,CAoBG,GAEH,SAASwC,GAAUC,GACjB,OAAO,SAASC,GACd,IAIItqE,EAAGosB,EAJH7Z,EAAI+3D,EAAOvsE,OACX4a,EAAI,IAAI1b,MAAMsV,GACd8N,EAAI,IAAIpjB,MAAMsV,GACdzJ,EAAI,IAAI7L,MAAMsV,GAElB,IAAKvS,EAAI,EAAGA,EAAIuS,IAAKvS,EACnBosB,EAAQ,GAASk+C,EAAOtqE,IACxB2Y,EAAE3Y,GAAKosB,EAAMzT,GAAK,EAClB0H,EAAErgB,GAAKosB,EAAM/L,GAAK,EAClBvX,EAAE9I,GAAKosB,EAAMtjB,GAAK,EAMpB,OAJA6P,EAAI0xD,EAAO1xD,GACX0H,EAAIgqD,EAAOhqD,GACXvX,EAAIuhE,EAAOvhE,GACXsjB,EAAMm8C,QAAU,EACT,SAASzuD,GAId,OAHAsS,EAAMzT,EAAIA,EAAEmB,GACZsS,EAAM/L,EAAIA,EAAEvG,GACZsS,EAAMtjB,EAAIA,EAAEgR,GACLsS,EAAQ,EACjB,CACF,CACF,CAEsBg+C,IH7CP,SAASjiE,GACtB,IAAIoK,EAAIpK,EAAOpK,OAAS,EACxB,OAAO,SAAS+b,GACd,IAAI9Z,EAAI8Z,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGvH,EAAI,GAAKxB,KAAKO,MAAMwI,EAAIvH,GAChE+2D,EAAKnhE,EAAOnI,GACZupE,EAAKphE,EAAOnI,EAAI,GAChBqpE,EAAKrpE,EAAI,EAAImI,EAAOnI,EAAI,GAAK,EAAIspE,EAAKC,EACtCC,EAAKxpE,EAAIuS,EAAI,EAAIpK,EAAOnI,EAAI,GAAK,EAAIupE,EAAKD,EAC9C,OAAO,IAAOxvD,EAAI9Z,EAAIuS,GAAKA,EAAG82D,EAAIC,EAAIC,EAAIC,EAC5C,CACF,IGoC4BY,ICpDb,SAASjiE,GACtB,IAAIoK,EAAIpK,EAAOpK,OACf,OAAO,SAAS+b,GACd,IAAI9Z,EAAI+Q,KAAKO,QAAQwI,GAAK,GAAK,IAAMA,EAAIA,GAAKvH,GAC1C82D,EAAKlhE,GAAQnI,EAAIuS,EAAI,GAAKA,GAC1B+2D,EAAKnhE,EAAOnI,EAAIuS,GAChBg3D,EAAKphE,GAAQnI,EAAI,GAAKuS,GACtBi3D,EAAKrhE,GAAQnI,EAAI,GAAKuS,GAC1B,OAAO,IAAOuH,EAAI9Z,EAAIuS,GAAKA,EAAG82D,EAAIC,EAAIC,EAAIC,EAC5C,CACF,ICLO,SAASe,GAAa1hE,EAAGC,GAC9B,IAII9I,EAJAwqE,EAAK1hE,EAAIA,EAAE/K,OAAS,EACpB0sE,EAAK5hE,EAAIkI,KAAKkC,IAAIu3D,EAAI3hE,EAAE9K,QAAU,EAClCkE,EAAI,IAAIhF,MAAMwtE,GACdnuD,EAAI,IAAIrf,MAAMutE,GAGlB,IAAKxqE,EAAI,EAAGA,EAAIyqE,IAAMzqE,EAAGiC,EAAEjC,GAAKzD,GAAMsM,EAAE7I,GAAI8I,EAAE9I,IAC9C,KAAOA,EAAIwqE,IAAMxqE,EAAGsc,EAAEtc,GAAK8I,EAAE9I,GAE7B,OAAO,SAAS8Z,GACd,IAAK9Z,EAAI,EAAGA,EAAIyqE,IAAMzqE,EAAGsc,EAAEtc,GAAKiC,EAAEjC,GAAG8Z,GACrC,OAAOwC,CACT,CACF,CCrBe,YAASzT,EAAGC,GACzB,IAAIwM,EAAI,IAAI9X,KACZ,OAAOqL,GAAKA,EAAGC,GAAKA,EAAG,SAASgR,GAC9B,OAAOxE,EAAEo1D,QAAQ7hE,GAAK,EAAIiR,GAAKhR,EAAIgR,GAAIxE,CACzC,CACF,CCLe,YAASzM,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASgR,GAC9B,OAAOjR,GAAK,EAAIiR,GAAKhR,EAAIgR,CAC3B,CACF,CCFe,YAASjR,EAAGC,GACzB,IAEIyM,EAFAvV,EAAI,CAAC,EACLsc,EAAI,CAAC,EAMT,IAAK/G,KAHK,OAAN1M,GAA2B,iBAANA,IAAgBA,EAAI,CAAC,GACpC,OAANC,GAA2B,iBAANA,IAAgBA,EAAI,CAAC,GAEpCA,EACJyM,KAAK1M,EACP7I,EAAEuV,GAAKhZ,GAAMsM,EAAE0M,GAAIzM,EAAEyM,IAErB+G,EAAE/G,GAAKzM,EAAEyM,GAIb,OAAO,SAASuE,GACd,IAAKvE,KAAKvV,EAAGsc,EAAE/G,GAAKvV,EAAEuV,GAAGuE,GACzB,OAAOwC,CACT,CACF,CCpBA,IAAIquD,GAAM,8CACNC,GAAM,IAAIvgE,OAAOsgE,GAAIloE,OAAQ,KAclB,YAASoG,EAAGC,GACzB,IACI+hE,EACAC,EACAC,EAHAC,EAAKL,GAAIpgE,UAAYqgE,GAAIrgE,UAAY,EAIrCvK,GAAK,EACL4V,EAAI,GACJuD,EAAI,GAMR,IAHAtQ,GAAQ,GAAIC,GAAQ,IAGZ+hE,EAAKF,GAAI1C,KAAKp/D,MACdiiE,EAAKF,GAAI3C,KAAKn/D,MACfiiE,EAAKD,EAAGvpE,OAASypE,IACpBD,EAAKjiE,EAAEnJ,MAAMqrE,EAAID,GACbn1D,EAAE5V,GAAI4V,EAAE5V,IAAM+qE,EACbn1D,IAAI5V,GAAK+qE,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBl1D,EAAE5V,GAAI4V,EAAE5V,IAAM8qE,EACbl1D,IAAI5V,GAAK8qE,GAEdl1D,IAAI5V,GAAK,KACTmZ,EAAEna,KAAK,CAACgB,EAAGA,EAAGiC,EAAG,GAAO4oE,EAAIC,MAE9BE,EAAKJ,GAAIrgE,UAYX,OARIygE,EAAKliE,EAAE/K,SACTgtE,EAAKjiE,EAAEnJ,MAAMqrE,GACTp1D,EAAE5V,GAAI4V,EAAE5V,IAAM+qE,EACbn1D,IAAI5V,GAAK+qE,GAKTn1D,EAAE7X,OAAS,EAAKob,EAAE,GA7C3B,SAAarQ,GACX,OAAO,SAASgR,GACd,OAAOhR,EAAEgR,GAAK,EAChB,CACF,CA0CQmxD,CAAI9xD,EAAE,GAAGlX,GApDjB,SAAc6G,GACZ,OAAO,WACL,OAAOA,CACT,CACF,CAiDQ,CAAKA,IACJA,EAAIqQ,EAAEpb,OAAQ,SAAS+b,GACtB,IAAK,IAAWqG,EAAPngB,EAAI,EAAMA,EAAI8I,IAAK9I,EAAG4V,GAAGuK,EAAIhH,EAAEnZ,IAAIA,GAAKmgB,EAAEle,EAAE6X,GACrD,OAAOlE,EAAEjR,KAAK,GAChB,EACR,CC/De,YAASkE,EAAGC,GACpBA,IAAGA,EAAI,IACZ,IAEI9I,EAFAuS,EAAI1J,EAAIkI,KAAKkC,IAAInK,EAAE/K,OAAQ8K,EAAE9K,QAAU,EACvCue,EAAIxT,EAAEnJ,QAEV,OAAO,SAASma,GACd,IAAK9Z,EAAI,EAAGA,EAAIuS,IAAKvS,EAAGsc,EAAEtc,GAAK6I,EAAE7I,IAAM,EAAI8Z,GAAKhR,EAAE9I,GAAK8Z,EACvD,OAAOwC,CACT,CACF,CCCe,YAASzT,EAAGC,GACzB,IAAkBwT,EAAdxC,SAAWhR,EACf,OAAY,MAALA,GAAmB,YAANgR,EAAkB,GAAShR,IAClC,WAANgR,EAAiB,GACZ,WAANA,GAAmBwC,EAAI8P,GAAMtjB,KAAOA,EAAIwT,EAAGsrD,IAAOzgD,GAClDre,aAAasjB,GAAQw7C,GACrB9+D,aAAatL,KAAO0tE,GDLrB,SAAuBjpE,GAC5B,OAAOuH,YAAYC,OAAOxH,MAAQA,aAAayH,SACjD,CCIQ,CAAcZ,GAAK,GACnB7L,MAAMkH,QAAQ2E,GAAKyhE,GACE,mBAAdzhE,EAAExF,SAAgD,mBAAfwF,EAAErE,UAA2B6L,MAAMxH,GAAKtH,GAClF,IAAQqH,EAAGC,EACnB,CCrBe,YAASD,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASgR,GAC9B,OAAO/I,KAAK8E,MAAMhN,GAAK,EAAIiR,GAAKhR,EAAIgR,EACtC,CACF,CCJe,SAAS,GAAO7X,GAC7B,OAAQA,CACV,CCGA,IAAIwiD,GAAO,CAAC,EAAG,GAER,SAAS9hD,GAASV,GACvB,OAAOA,CACT,CAEA,SAASkpE,GAAUtiE,EAAGC,GACpB,OAAQA,GAAMD,GAAKA,GACb,SAAS5G,GAAK,OAAQA,EAAI4G,GAAKC,CAAG,ECb3B,SAAmB7G,GAChC,OAAO,WACL,OAAOA,CACT,CACF,CDUQ,CAASqO,MAAMxH,GAAKqW,IAAM,GAClC,CAUA,SAASisD,GAAMr8B,EAAQp+B,EAAOwX,GAC5B,IAAIkjD,EAAKt8B,EAAO,GAAIu8B,EAAKv8B,EAAO,GAAI4sB,EAAKhrD,EAAM,GAAIirD,EAAKjrD,EAAM,GAG9D,OAFI26D,EAAKD,GAAIA,EAAKF,GAAUG,EAAID,GAAK1P,EAAKxzC,EAAYyzC,EAAID,KACrD0P,EAAKF,GAAUE,EAAIC,GAAK3P,EAAKxzC,EAAYwzC,EAAIC,IAC3C,SAAS35D,GAAK,OAAO05D,EAAG0P,EAAGppE,GAAK,CACzC,CAEA,SAASspE,GAAQx8B,EAAQp+B,EAAOwX,GAC9B,IAAIrnB,EAAIiQ,KAAKkC,IAAI87B,EAAOhxC,OAAQ4S,EAAM5S,QAAU,EAC5CuX,EAAI,IAAIrY,MAAM6D,GACd6X,EAAI,IAAI1b,MAAM6D,GACdd,GAAK,EAQT,IALI+uC,EAAOjuC,GAAKiuC,EAAO,KACrBA,EAASA,EAAOpvC,QAAQmW,UACxBnF,EAAQA,EAAMhR,QAAQmW,aAGf9V,EAAIc,GACXwU,EAAEtV,GAAKmrE,GAAUp8B,EAAO/uC,GAAI+uC,EAAO/uC,EAAI,IACvC2Y,EAAE3Y,GAAKmoB,EAAYxX,EAAM3Q,GAAI2Q,EAAM3Q,EAAI,IAGzC,OAAO,SAASiC,GACd,IAAIjC,EAAIwrE,GAAOz8B,EAAQ9sC,EAAG,EAAGnB,GAAK,EAClC,OAAO6X,EAAE3Y,GAAGsV,EAAEtV,GAAGiC,GACnB,CACF,CAEO,SAAS49C,GAAKp9C,EAAQD,GAC3B,OAAOA,EACFusC,OAAOtsC,EAAOssC,UACdp+B,MAAMlO,EAAOkO,SACbwX,YAAY1lB,EAAO0lB,eACnB4hD,MAAMtnE,EAAOsnE,SACbvO,QAAQ/4D,EAAO+4D,UACtB,CAEO,SAASiQ,KACd,IAGIzhD,EACA0hD,EACAlQ,EAEAmQ,EACA/kC,EACAz8B,EATA4kC,EAAS0V,GACT9zC,EAAQ8zC,GACRt8B,EAAc,GAId4hD,EAAQpnE,GAKZ,SAASo5D,IACP,IAAIxpD,EAAIxB,KAAKkC,IAAI87B,EAAOhxC,OAAQ4S,EAAM5S,QAItC,OAHIgsE,IAAUpnE,KAAUonE,EA7D5B,SAAiBlhE,EAAGC,GAClB,IAAIgR,EAEJ,OADIjR,EAAIC,IAAGgR,EAAIjR,EAAGA,EAAIC,EAAGA,EAAIgR,GACtB,SAAS7X,GAAK,OAAO8O,KAAKlP,IAAIgH,EAAGkI,KAAKkC,IAAInK,EAAG7G,GAAK,CAC3D,CAyDoC2pE,CAAQ78B,EAAO,GAAIA,EAAOx8B,EAAI,KAC9Do5D,EAAYp5D,EAAI,EAAIg5D,GAAUH,GAC9BxkC,EAASz8B,EAAQ,KACV4hC,CACT,CAEA,SAASA,EAAM9pC,GACb,OAAY,MAALA,GAAaqO,MAAMrO,GAAKA,GAAKu5D,GAAW50B,IAAWA,EAAS+kC,EAAU58B,EAAOrqC,IAAIslB,GAAYrZ,EAAOwX,KAAe6B,EAAU+/C,EAAM9nE,IAC5I,CA8BA,OA5BA8pC,EAAM8/B,OAAS,SAASzmE,GACtB,OAAO2kE,EAAM2B,GAAavhE,IAAUA,EAAQwhE,EAAUh7D,EAAOo+B,EAAOrqC,IAAIslB,GAAY,MAAqB5kB,IAC3G,EAEA2mC,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,QAAUgxC,EAAS9xC,MAAM8F,KAAKuhB,EAAG,IAASy3C,KAAahtB,EAAOpvC,OACjF,EAEAosC,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAU4S,EAAQ1T,MAAM8F,KAAKuhB,GAAIy3C,KAAaprD,EAAMhR,OACvE,EAEAosC,EAAMiwB,WAAa,SAAS13C,GAC1B,OAAO3T,EAAQ1T,MAAM8F,KAAKuhB,GAAI6D,EAAc,GAAkB4zC,GAChE,EAEAhwB,EAAMg+B,MAAQ,SAASzlD,GACrB,OAAO3jB,UAAU5C,QAAUgsE,IAAQzlD,GAAW3hB,GAAUo5D,KAAagO,IAAUpnE,EACjF,EAEAopC,EAAM5jB,YAAc,SAAS7D,GAC3B,OAAO3jB,UAAU5C,QAAUoqB,EAAc7D,EAAGy3C,KAAa5zC,CAC3D,EAEA4jB,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEO,SAAS1hD,EAAGma,GAEjB,OADAjK,EAAYlQ,EAAG4xD,EAAcz3C,EACtB8nC,GACT,CACF,CAEe,SAAS+P,KACtB,OAAOL,KAAc9oE,GAAUA,GACjC,CE3HA,ICCWopE,GDDPC,GAAK,2EAEM,SAASC,GAAgBC,GACtC,KAAMluC,EAAQguC,GAAG/D,KAAKiE,IAAa,MAAM,IAAIjhE,MAAM,mBAAqBihE,GACxE,IAAIluC,EACJ,OAAO,IAAImuC,GAAgB,CACzB3/C,KAAMwR,EAAM,GACZvS,MAAOuS,EAAM,GACbtjB,KAAMsjB,EAAM,GACZtsB,OAAQssB,EAAM,GACds/B,KAAMt/B,EAAM,GACZtc,MAAOsc,EAAM,GACbouC,MAAOpuC,EAAM,GACb5pB,UAAW4pB,EAAM,IAAMA,EAAM,GAAGr+B,MAAM,GACtCqoE,KAAMhqC,EAAM,GACZjzB,KAAMizB,EAAM,KAEhB,CAIO,SAASmuC,GAAgBD,GAC9BnwE,KAAKywB,UAA0B3rB,IAAnBqrE,EAAU1/C,KAAqB,IAAM0/C,EAAU1/C,KAAO,GAClEzwB,KAAK0vB,WAA4B5qB,IAApBqrE,EAAUzgD,MAAsB,IAAMygD,EAAUzgD,MAAQ,GACrE1vB,KAAK2e,UAA0B7Z,IAAnBqrE,EAAUxxD,KAAqB,IAAMwxD,EAAUxxD,KAAO,GAClE3e,KAAK2V,YAA8B7Q,IAArBqrE,EAAUx6D,OAAuB,GAAKw6D,EAAUx6D,OAAS,GACvE3V,KAAKuhE,OAAS4O,EAAU5O,KACxBvhE,KAAK2lB,WAA4B7gB,IAApBqrE,EAAUxqD,WAAsB7gB,GAAaqrE,EAAUxqD,MACpE3lB,KAAKqwE,QAAUF,EAAUE,MACzBrwE,KAAKqY,eAAoCvT,IAAxBqrE,EAAU93D,eAA0BvT,GAAaqrE,EAAU93D,UAC5ErY,KAAKisE,OAASkE,EAAUlE,KACxBjsE,KAAKgP,UAA0BlK,IAAnBqrE,EAAUnhE,KAAqB,GAAKmhE,EAAUnhE,KAAO,EACnE,CExBO,SAASshE,GAAmBpqE,EAAGqb,GACpC,IAAKtd,GAAKiC,EAAIqb,EAAIrb,EAAE8X,cAAcuD,EAAI,GAAKrb,EAAE8X,iBAAiBC,QAAQ,MAAQ,EAAG,OAAO,KACxF,IAAIha,EAAGssE,EAAcrqE,EAAEtC,MAAM,EAAGK,GAIhC,MAAO,CACLssE,EAAYvuE,OAAS,EAAIuuE,EAAY,GAAKA,EAAY3sE,MAAM,GAAK2sE,GAChErqE,EAAEtC,MAAMK,EAAI,GAEjB,CCjBe,YAASiC,GACtB,OAAOA,EAAIoqE,GAAmBt7D,KAAK0F,IAAIxU,KAASA,EAAE,GAAKkd,GACzD,CCFe,YAASld,EAAGqb,GACzB,IAAIhI,EAAI+2D,GAAmBpqE,EAAGqb,GAC9B,IAAKhI,EAAG,OAAOrT,EAAI,GACnB,IAAIqqE,EAAch3D,EAAE,GAChBiC,EAAWjC,EAAE,GACjB,OAAOiC,EAAW,EAAI,KAAO,IAAIta,OAAOsa,GAAU5S,KAAK,KAAO2nE,EACxDA,EAAYvuE,OAASwZ,EAAW,EAAI+0D,EAAY3sE,MAAM,EAAG4X,EAAW,GAAK,IAAM+0D,EAAY3sE,MAAM4X,EAAW,GAC5G+0D,EAAc,IAAIrvE,MAAMsa,EAAW+0D,EAAYvuE,OAAS,GAAG4G,KAAK,IACxE,CJUAsnE,GAAgBhuE,UAAYkuE,GAAgBluE,UAe5CkuE,GAAgBluE,UAAUwG,SAAW,WACnC,OAAO1I,KAAKywB,KACNzwB,KAAK0vB,MACL1vB,KAAK2e,KACL3e,KAAK2V,QACJ3V,KAAKuhE,KAAO,IAAM,UACHz8D,IAAf9E,KAAK2lB,MAAsB,GAAK3Q,KAAKlP,IAAI,EAAgB,EAAb9F,KAAK2lB,SACjD3lB,KAAKqwE,MAAQ,IAAM,UACAvrE,IAAnB9E,KAAKqY,UAA0B,GAAK,IAAMrD,KAAKlP,IAAI,EAAoB,EAAjB9F,KAAKqY,aAC3DrY,KAAKisE,KAAO,IAAM,IACnBjsE,KAAKgP,IACb,EK1CA,UACE,IAAK,CAAC9I,EAAGqb,KAAW,IAAJrb,GAASsY,QAAQ+C,GACjC,EAAMrb,GAAM8O,KAAK8E,MAAM5T,GAAGwC,SAAS,GACnC,EAAMxC,GAAMA,EAAI,GAChB,EHRa,SAASA,GACtB,OAAO8O,KAAK0F,IAAIxU,EAAI8O,KAAK8E,MAAM5T,KAAO,KAChCA,EAAEsqE,eAAe,MAAM3vD,QAAQ,KAAM,IACrC3a,EAAEwC,SAAS,GACnB,EGKE,EAAK,CAACxC,EAAGqb,IAAMrb,EAAE8X,cAAcuD,GAC/B,EAAK,CAACrb,EAAGqb,IAAMrb,EAAEsY,QAAQ+C,GACzB,EAAK,CAACrb,EAAGqb,IAAMrb,EAAE6Y,YAAYwC,GAC7B,EAAMrb,GAAM8O,KAAK8E,MAAM5T,GAAGwC,SAAS,GACnC,EAAK,CAACxC,EAAGqb,IAAMkvD,GAAkB,IAAJvqE,EAASqb,GACtC,EAAKkvD,GACL,EJXa,SAASvqE,EAAGqb,GACzB,IAAIhI,EAAI+2D,GAAmBpqE,EAAGqb,GAC9B,IAAKhI,EAAG,OAAOrT,EAAI,GACnB,IAAIqqE,EAAch3D,EAAE,GAChBiC,EAAWjC,EAAE,GACbtV,EAAIuX,GAAYw0D,GAAuE,EAAtDh7D,KAAKlP,KAAK,EAAGkP,KAAKkC,IAAI,EAAGlC,KAAKO,MAAMiG,EAAW,MAAY,EAC5FhF,EAAI+5D,EAAYvuE,OACpB,OAAOiC,IAAMuS,EAAI+5D,EACXtsE,EAAIuS,EAAI+5D,EAAc,IAAIrvE,MAAM+C,EAAIuS,EAAI,GAAG5N,KAAK,KAChD3E,EAAI,EAAIssE,EAAY3sE,MAAM,EAAGK,GAAK,IAAMssE,EAAY3sE,MAAMK,GAC1D,KAAO,IAAI/C,MAAM,EAAI+C,GAAG2E,KAAK,KAAO0nE,GAAmBpqE,EAAG8O,KAAKlP,IAAI,EAAGyb,EAAItd,EAAI,IAAI,EAC1F,EICE,EAAMiC,GAAM8O,KAAK8E,MAAM5T,GAAGwC,SAAS,IAAIkkB,cACvC,EAAM1mB,GAAM8O,KAAK8E,MAAM5T,GAAGwC,SAAS,KCjBtB,YAASxC,GACtB,OAAOA,CACT,CCOA,ICPI,GACO0zC,GACA82B,GDKP/nE,GAAMzH,MAAMgB,UAAUyG,IACtBgoE,GAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAEhE,YAASC,GACtB,IEbsBC,EAAUC,EFa5Bh7B,OAA4BhxC,IAApB8rE,EAAOC,eAA+C/rE,IAArB8rE,EAAOE,UAA0B,IEbxDD,EFa+EloE,GAAIhF,KAAKitE,EAAOC,SAAUhoE,QEb/FioE,EFawGF,EAAOE,UAAY,GEZpJ,SAAStwE,EAAOmlB,GAOrB,IANA,IAAI1hB,EAAIzD,EAAMwB,OACV+b,EAAI,GACJhZ,EAAI,EACJuf,EAAIusD,EAAS,GACb7uE,EAAS,EAENiC,EAAI,GAAKqgB,EAAI,IACdtiB,EAASsiB,EAAI,EAAIqB,IAAOrB,EAAItP,KAAKlP,IAAI,EAAG6f,EAAQ3jB,IACpD+b,EAAE9a,KAAKzC,EAAMugB,UAAU9c,GAAKqgB,EAAGrgB,EAAIqgB,OAC9BtiB,GAAUsiB,EAAI,GAAKqB,KACxBrB,EAAIusD,EAAS9rE,GAAKA,EAAI,GAAK8rE,EAAS7uE,QAGtC,OAAO+b,EAAEhE,UAAUnR,KAAKkoE,EAC1B,GFFIC,OAAqCjsE,IAApB8rE,EAAOI,SAAyB,GAAKJ,EAAOI,SAAS,GAAK,GAC3EC,OAAqCnsE,IAApB8rE,EAAOI,SAAyB,GAAKJ,EAAOI,SAAS,GAAK,GAC3EE,OAA6BpsE,IAAnB8rE,EAAOM,QAAwB,IAAMN,EAAOM,QAAU,GAChEC,OAA+BrsE,IAApB8rE,EAAOO,SAAyB,GGjBlC,SAASA,GACtB,OAAO,SAAS3wE,GACd,OAAOA,EAAMqgB,QAAQ,UAAU,SAAS5c,GACtC,OAAOktE,GAAUltE,EACnB,GACF,CACF,CHW4DmtE,CAAezoE,GAAIhF,KAAKitE,EAAOO,SAAU3pE,SAC/FskB,OAA6BhnB,IAAnB8rE,EAAO9kD,QAAwB,IAAM8kD,EAAO9kD,QAAU,GAChE/O,OAAyBjY,IAAjB8rE,EAAO7zD,MAAsB,IAAM6zD,EAAO7zD,MAAQ,GAC1Ds0D,OAAqBvsE,IAAf8rE,EAAOS,IAAoB,MAAQT,EAAOS,IAAM,GAE1D,SAASC,EAAUnB,GAGjB,IAAI1/C,GAFJ0/C,EAAYD,GAAgBC,IAEP1/C,KACjBf,EAAQygD,EAAUzgD,MAClB/Q,EAAOwxD,EAAUxxD,KACjBhJ,EAASw6D,EAAUx6D,OACnB4rD,EAAO4O,EAAU5O,KACjB57C,EAAQwqD,EAAUxqD,MAClB0qD,EAAQF,EAAUE,MAClBh4D,EAAY83D,EAAU93D,UACtB4zD,EAAOkE,EAAUlE,KACjBj9D,EAAOmhE,EAAUnhE,KAGR,MAATA,GAAcqhE,GAAQ,EAAMrhE,EAAO,KAG7BuiE,GAAYviE,UAAqBlK,IAAduT,IAA4BA,EAAY,IAAK4zD,GAAO,EAAMj9D,EAAO,MAG1FuyD,GAAkB,MAAT9wC,GAA0B,MAAVf,KAAgB6xC,GAAO,EAAM9wC,EAAO,IAAKf,EAAQ,KAI9E,IAAIttB,EAAoB,MAAXuT,EAAiBo7D,EAA4B,MAAXp7D,GAAkB,SAASxE,KAAKnC,GAAQ,IAAMA,EAAKsiD,cAAgB,GAC9GkgB,EAAoB,MAAX77D,EAAiBs7D,EAAiB,OAAO9/D,KAAKnC,GAAQ8c,EAAU,GAKzE2lD,EAAaF,GAAYviE,GACzB0iE,EAAc,aAAavgE,KAAKnC,GAUpC,SAAS4qC,EAAOp5C,GACd,IAEIyD,EAAGuS,EAAG+J,EAFNoxD,EAAcvvE,EACdwvE,EAAcJ,EAGlB,GAAa,MAATxiE,EACF4iE,EAAcH,EAAWjxE,GAASoxE,EAClCpxE,EAAQ,OACH,CAIL,IAAIqxE,GAHJrxE,GAASA,GAGmB,GAAK,EAAIA,EAAQ,EAiB7C,GAdAA,EAAQ+T,MAAM/T,GAAS6wE,EAAMI,EAAWz8D,KAAK0F,IAAIla,GAAQ6X,GAGrD4zD,IAAMzrE,EIjFH,SAASqZ,GACtBiV,EAAK,IAAK,IAAkCkgC,EAA9Bx4C,EAAIqD,EAAE7X,OAAQiC,EAAI,EAAG8qD,GAAM,EAAO9qD,EAAIuS,IAAKvS,EACvD,OAAQ4V,EAAE5V,IACR,IAAK,IAAK8qD,EAAKC,EAAK/qD,EAAG,MACvB,IAAK,IAAgB,IAAP8qD,IAAUA,EAAK9qD,GAAG+qD,EAAK/qD,EAAG,MACxC,QAAS,KAAM4V,EAAE5V,GAAI,MAAM6qB,EAASigC,EAAK,IAAGA,EAAK,GAGrD,OAAOA,EAAK,EAAIl1C,EAAEjW,MAAM,EAAGmrD,GAAMl1C,EAAEjW,MAAMorD,EAAK,GAAKn1C,CACrD,CJwE0Bi4D,CAAWtxE,IAGzBqxE,GAA4B,IAAVrxE,GAAwB,MAATme,IAAckzD,GAAgB,GAGnEF,GAAeE,EAA0B,MAATlzD,EAAeA,EAAO5B,EAAkB,MAAT4B,GAAyB,MAATA,EAAe,GAAKA,GAAQgzD,EAC3GC,GAAwB,MAAT5iE,EAAe2hE,GAAS,EAAIX,GAAiB,GAAK,IAAM4B,GAAeC,GAA0B,MAATlzD,EAAe,IAAM,IAIxH+yD,EAEF,IADAztE,GAAK,EAAGuS,EAAIhW,EAAMwB,SACTiC,EAAIuS,GACX,GAA6B,IAAzB+J,EAAI/f,EAAM+K,WAAWtH,KAAcsc,EAAI,GAAI,CAC7CqxD,GAAqB,KAANrxD,EAAW2wD,EAAU1wE,EAAMoD,MAAMK,EAAI,GAAKzD,EAAMoD,MAAMK,IAAM2tE,EAC3EpxE,EAAQA,EAAMoD,MAAM,EAAGK,GACvB,KACF,CAGN,CAGIosE,IAAU9O,IAAM/gE,EAAQs1C,EAAMt1C,EAAOkU,MAGzC,IAAI1S,EAAS2vE,EAAY3vE,OAASxB,EAAMwB,OAAS4vE,EAAY5vE,OACzD0vB,EAAU1vB,EAAS2jB,EAAQ,IAAIzkB,MAAMykB,EAAQ3jB,EAAS,GAAG4G,KAAK6nB,GAAQ,GAM1E,OAHI4/C,GAAS9O,IAAM/gE,EAAQs1C,EAAMpkB,EAAUlxB,EAAOkxB,EAAQ1vB,OAAS2jB,EAAQisD,EAAY5vE,OAAS0S,KAAWgd,EAAU,IAG7GhC,GACN,IAAK,IAAKlvB,EAAQmxE,EAAcnxE,EAAQoxE,EAAclgD,EAAS,MAC/D,IAAK,IAAKlxB,EAAQmxE,EAAcjgD,EAAUlxB,EAAQoxE,EAAa,MAC/D,IAAK,IAAKpxE,EAAQkxB,EAAQ9tB,MAAM,EAAG5B,EAAS0vB,EAAQ1vB,QAAU,GAAK2vE,EAAcnxE,EAAQoxE,EAAclgD,EAAQ9tB,MAAM5B,GAAS,MAC9H,QAASxB,EAAQkxB,EAAUigD,EAAcnxE,EAAQoxE,EAGnD,OAAOT,EAAS3wE,EAClB,CAMA,OAtEA6X,OAA0BvT,IAAduT,EAA0B,EAChC,SAASlH,KAAKnC,GAAQgG,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,GAAImB,IAC/CrD,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,GAAImB,IAgE/BuhC,EAAOlxC,SAAW,WAChB,OAAOynE,EAAY,EACrB,EAEOv2B,CACT,CAYA,MAAO,CACLA,OAAQ03B,EACRZ,aAZF,SAAsBP,EAAW3vE,GAC/B,IAAIkkB,EAAI4sD,IAAWnB,EAAYD,GAAgBC,IAAsBnhE,KAAO,IAAKmhE,IAC7E78D,EAAiE,EAA7D0B,KAAKlP,KAAK,EAAGkP,KAAKkC,IAAI,EAAGlC,KAAKO,MAAMiG,GAAShb,GAAS,KAC1DgZ,EAAIxE,KAAKgE,IAAI,IAAK1F,GAClBlR,EAASuuE,GAAS,EAAIr9D,EAAI,GAC9B,OAAO,SAAS9S,GACd,OAAOkkB,EAAElL,EAAIhZ,GAAS4B,CACxB,CACF,EAMF,CKhJe,SAAS2vE,GAAWl9D,EAAOwhD,EAAMkK,EAAO4P,GACrD,IACI93D,EADAtD,EAAO8rD,GAAShsD,EAAOwhD,EAAMkK,GAGjC,QADA4P,EAAYD,GAA6B,MAAbC,EAAoB,KAAOA,IACrCnhE,MAChB,IAAK,IACH,IAAIxO,EAAQwU,KAAKlP,IAAIkP,KAAK0F,IAAI7F,GAAQG,KAAK0F,IAAI27C,IAE/C,OAD2B,MAAvB8Z,EAAU93D,WAAsB9D,MAAM8D,ECRjC,SAAStD,EAAMvU,GAC5B,OAAOwU,KAAKlP,IAAI,EAAgE,EAA7DkP,KAAKlP,KAAK,EAAGkP,KAAKkC,IAAI,EAAGlC,KAAKO,MAAMiG,GAAShb,GAAS,KAAWgb,GAASxG,KAAK0F,IAAI3F,IACxG,CDM4Di9D,CAAgBj9D,EAAMvU,MAAS2vE,EAAU93D,UAAYA,GACpGq4D,GAAaP,EAAW3vE,GAEjC,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACwB,MAAvB2vE,EAAU93D,WAAsB9D,MAAM8D,EEhBjC,SAAStD,EAAMjP,GAE5B,OADAiP,EAAOC,KAAK0F,IAAI3F,GAAOjP,EAAMkP,KAAK0F,IAAI5U,GAAOiP,EACtCC,KAAKlP,IAAI,EAAG0V,GAAS1V,GAAO0V,GAASzG,IAAS,CACvD,CFa4Dk9D,CAAel9D,EAAMC,KAAKlP,IAAIkP,KAAK0F,IAAI7F,GAAQG,KAAK0F,IAAI27C,QAAU8Z,EAAU93D,UAAYA,GAAgC,MAAnB83D,EAAUnhE,OACrK,MAEF,IAAK,IACL,IAAK,IACwB,MAAvBmhE,EAAU93D,WAAsB9D,MAAM8D,EGrBjC,SAAStD,GACtB,OAAOC,KAAKlP,IAAI,GAAI0V,GAASxG,KAAK0F,IAAI3F,IACxC,CHmB4Dm9D,CAAen9D,MAAQo7D,EAAU93D,UAAYA,EAAuC,GAAP,MAAnB83D,EAAUnhE,OAI9H,OAAO4qC,GAAOu2B,EAChB,CIvBO,SAASgC,GAAUniC,GACxB,IAAIgD,EAAShD,EAAMgD,OAkDnB,OAhDAhD,EAAM0B,MAAQ,SAAS6uB,GACrB,IAAIhnD,EAAIy5B,IACR,OAAOtB,GAAMn4B,EAAE,GAAIA,EAAEA,EAAEvX,OAAS,GAAa,MAATu+D,EAAgB,GAAKA,EAC3D,EAEAvwB,EAAM+hC,WAAa,SAASxR,EAAO4P,GACjC,IAAI52D,EAAIy5B,IACR,OAAO++B,GAAWx4D,EAAE,GAAIA,EAAEA,EAAEvX,OAAS,GAAa,MAATu+D,EAAgB,GAAKA,EAAO4P,EACvE,EAEAngC,EAAMoiC,KAAO,SAAS7R,GACP,MAATA,IAAeA,EAAQ,IAE3B,IAKI8R,EACAt9D,EANAwE,EAAIy5B,IACJ+b,EAAK,EACLC,EAAKz1C,EAAEvX,OAAS,EAChB6S,EAAQ0E,EAAEw1C,GACVsH,EAAO98C,EAAEy1C,GAGTsjB,EAAU,GAOd,IALIjc,EAAOxhD,IACTE,EAAOF,EAAOA,EAAQwhD,EAAMA,EAAOthD,EACnCA,EAAOg6C,EAAIA,EAAKC,EAAIA,EAAKj6C,GAGpBu9D,KAAY,GAAG,CAEpB,IADAv9D,EAAO6rD,GAAc/rD,EAAOwhD,EAAMkK,MACrB8R,EAGX,OAFA94D,EAAEw1C,GAAMl6C,EACR0E,EAAEy1C,GAAMqH,EACDrjB,EAAOz5B,GACT,GAAIxE,EAAO,EAChBF,EAAQG,KAAKO,MAAMV,EAAQE,GAAQA,EACnCshD,EAAOrhD,KAAKC,KAAKohD,EAAOthD,GAAQA,MAC3B,MAAIA,EAAO,GAIhB,MAHAF,EAAQG,KAAKC,KAAKJ,EAAQE,GAAQA,EAClCshD,EAAOrhD,KAAKO,MAAM8gD,EAAOthD,GAAQA,CAGnC,CACAs9D,EAAUt9D,CACZ,CAEA,OAAOi7B,CACT,EAEOA,CACT,CAEe,SAAS,KACtB,IAAIA,EAAQ+/B,KAQZ,OANA//B,EAAM8T,KAAO,WACX,OAAOA,GAAK9T,EAAO,KACrB,EAEA6uB,GAAUt9D,MAAMyuC,EAAOprC,WAEhButE,GAAUniC,EACnB,CClEe,SAAS,GAASgD,GAC/B,IAAIysB,EAEJ,SAASzvB,EAAM9pC,GACb,OAAY,MAALA,GAAaqO,MAAMrO,GAAKA,GAAKu5D,EAAUv5D,CAChD,CAkBA,OAhBA8pC,EAAM8/B,OAAS9/B,EAEfA,EAAMgD,OAAShD,EAAMp7B,MAAQ,SAAS2T,GACpC,OAAO3jB,UAAU5C,QAAUgxC,EAAS9xC,MAAM8F,KAAKuhB,EAAG,IAASynB,GAASgD,EAAOpvC,OAC7E,EAEAosC,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEAzvB,EAAM8T,KAAO,WACX,OAAO,GAAS9Q,GAAQysB,QAAQA,EAClC,EAEAzsB,EAASpuC,UAAU5C,OAASd,MAAM8F,KAAKgsC,EAAQ,IAAU,CAAC,EAAG,GAEtDm/B,GAAUniC,EACnB,CC3Be,SAASoiC,GAAKp/B,EAAQu/B,GAGnC,IAIIx0D,EAJAgxC,EAAK,EACLC,GAHJhc,EAASA,EAAOpvC,SAGA5B,OAAS,EACrB+lB,EAAKirB,EAAO+b,GACZ9mC,EAAK+qB,EAAOgc,GAUhB,OAPI/mC,EAAKF,IACPhK,EAAIgxC,EAAIA,EAAKC,EAAIA,EAAKjxC,EACtBA,EAAIgK,EAAIA,EAAKE,EAAIA,EAAKlK,GAGxBi1B,EAAO+b,GAAMwjB,EAASh9D,MAAMwS,GAC5BirB,EAAOgc,GAAMujB,EAASt9D,KAAKgT,GACpB+qB,CACT,CCXA,SAASw/B,GAAatsE,GACpB,OAAO8O,KAAK0H,IAAIxW,EAClB,CAEA,SAASusE,GAAavsE,GACpB,OAAO8O,KAAKsI,IAAIpX,EAClB,CAEA,SAASwsE,GAAcxsE,GACrB,OAAQ8O,KAAK0H,KAAKxW,EACpB,CAEA,SAASysE,GAAczsE,GACrB,OAAQ8O,KAAKsI,KAAKpX,EACpB,CAEA,SAAS0sE,GAAM1sE,GACb,OAAOirC,SAASjrC,KAAO,KAAOA,GAAKA,EAAI,EAAI,EAAIA,CACjD,CAeA,SAAS2sE,GAAQnuD,GACf,MAAO,CAACxe,EAAGsT,KAAOkL,GAAGxe,EAAGsT,EAC1B,CAEO,SAASs5D,GAAQ7kD,GACtB,MAAM+hB,EAAQ/hB,EAAUukD,GAAcC,IAChCz/B,EAAShD,EAAMgD,OACrB,IACI+/B,EACAC,EAFAr2D,EAAO,GAIX,SAASqjD,IAQP,OAPA+S,EAnBJ,SAAcp2D,GACZ,OAAOA,IAAS3H,KAAKqkB,EAAIrkB,KAAK0H,IACf,KAATC,GAAe3H,KAAKyrD,OACV,IAAT9jD,GAAc3H,KAAKi+D,OAClBt2D,EAAO3H,KAAK0H,IAAIC,GAAOzW,GAAK8O,KAAK0H,IAAIxW,GAAKyW,EACpD,CAcWu2D,CAAKv2D,GAAOq2D,EAzBvB,SAAcr2D,GACZ,OAAgB,KAATA,EAAci2D,GACfj2D,IAAS3H,KAAKqkB,EAAIrkB,KAAKsI,IACvBpX,GAAK8O,KAAKgE,IAAI2D,EAAMzW,EAC5B,CAqB8BitE,CAAKx2D,GAC3Bq2B,IAAS,GAAK,GAChB+/B,EAAOF,GAAQE,GAAOC,EAAOH,GAAQG,GACrC/kD,EAAUykD,GAAeC,KAEzB1kD,EAAUukD,GAAcC,IAEnBziC,CACT,CAwEA,OAtEAA,EAAMrzB,KAAO,SAAS4L,GACpB,OAAO3jB,UAAU5C,QAAU2a,GAAQ4L,EAAGy3C,KAAarjD,CACrD,EAEAqzB,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,QAAUgxC,EAAOzqB,GAAIy3C,KAAahtB,GACrD,EAEAhD,EAAM0B,MAAQ6uB,IACZ,MAAMhnD,EAAIy5B,IACV,IAAI9a,EAAI3e,EAAE,GACNiI,EAAIjI,EAAEA,EAAEvX,OAAS,GACrB,MAAM4a,EAAI4E,EAAI0W,EAEVtb,KAAKsb,EAAG1W,GAAK,CAACA,EAAG0W,IAErB,IAEI1e,EACAuE,EAHA9Z,EAAI8uE,EAAK76C,GACTnzB,EAAIguE,EAAKvxD,GAGb,MAAMhL,EAAa,MAAT+pD,EAAgB,IAAMA,EAChC,IAAI3iD,EAAI,GAER,KAAMjB,EAAO,IAAM5X,EAAId,EAAIuS,EAAG,CAE5B,GADAvS,EAAI+Q,KAAKO,MAAMtR,GAAIc,EAAIiQ,KAAKC,KAAKlQ,GAC7BmzB,EAAI,GAAG,KAAOj0B,GAAKc,IAAKd,EAC1B,IAAKuV,EAAI,EAAGA,EAAImD,IAAQnD,EAEtB,GADAuE,EAAI9Z,EAAI,EAAIuV,EAAIw5D,GAAM/uE,GAAKuV,EAAIw5D,EAAK/uE,KAChC8Z,EAAIma,GAAR,CACA,GAAIna,EAAIyD,EAAG,MACX5D,EAAE3a,KAAK8a,EAFY,OAIhB,KAAO9Z,GAAKc,IAAKd,EACtB,IAAKuV,EAAImD,EAAO,EAAGnD,GAAK,IAAKA,EAE3B,GADAuE,EAAI9Z,EAAI,EAAIuV,EAAIw5D,GAAM/uE,GAAKuV,EAAIw5D,EAAK/uE,KAChC8Z,EAAIma,GAAR,CACA,GAAIna,EAAIyD,EAAG,MACX5D,EAAE3a,KAAK8a,EAFY,CAKR,EAAXH,EAAE5b,OAAawU,IAAGoH,EAAI8zB,GAAMxZ,EAAG1W,EAAGhL,GACxC,MACEoH,EAAI8zB,GAAMztC,EAAGc,EAAGiQ,KAAKkC,IAAInS,EAAId,EAAGuS,IAAI7N,IAAIqqE,GAE1C,OAAOp2D,EAAIgB,EAAE7D,UAAY6D,CAAC,EAG5BoyB,EAAM+hC,WAAa,CAACxR,EAAO4P,KAOzB,GANa,MAAT5P,IAAeA,EAAQ,IACV,MAAb4P,IAAmBA,EAAqB,KAATxzD,EAAc,IAAM,KAC9B,mBAAdwzD,IACHxzD,EAAO,GAA4D,OAArDwzD,EAAYD,GAAgBC,IAAY93D,YAAmB83D,EAAUlE,MAAO,GAChGkE,EAAYv2B,GAAOu2B,IAEjB5P,IAAU7rD,IAAU,OAAOy7D,EAC/B,MAAM32D,EAAIxE,KAAKlP,IAAI,EAAG6W,EAAO4jD,EAAQvwB,EAAM0B,QAAQ1vC,QACnD,OAAOuX,IACL,IAAItV,EAAIsV,EAAIy5D,EAAKh+D,KAAK8E,MAAMi5D,EAAKx5D,KAEjC,OADItV,EAAI0Y,EAAOA,EAAO,KAAK1Y,GAAK0Y,GACzB1Y,GAAKuV,EAAI22D,EAAU52D,GAAK,EAAE,CAClC,EAGHy2B,EAAMoiC,KAAO,IACJp/B,EAAOo/B,GAAKp/B,IAAU,CAC3Bz9B,MAAOrP,GAAK8sE,EAAKh+D,KAAKO,MAAMw9D,EAAK7sE,KACjC+O,KAAM/O,GAAK8sE,EAAKh+D,KAAKC,KAAK89D,EAAK7sE,QAI5B8pC,CACT,CAEe,SAAStzB,KACtB,MAAMszB,EAAQ8iC,GAAQpD,MAAe18B,OAAO,CAAC,EAAG,KAGhD,OAFAhD,EAAM8T,KAAO,IAAMA,GAAK9T,EAAOtzB,MAAOC,KAAKqzB,EAAMrzB,QACjDkiD,GAAUt9D,MAAMyuC,EAAOprC,WAChBorC,CACT,CCvIA,SAASojC,GAAgB7yD,GACvB,OAAO,SAASra,GACd,OAAO8O,KAAK2J,KAAKzY,GAAK8O,KAAKq+D,MAAMr+D,KAAK0F,IAAIxU,EAAIqa,GAChD,CACF,CAEA,SAAS+yD,GAAgB/yD,GACvB,OAAO,SAASra,GACd,OAAO8O,KAAK2J,KAAKzY,GAAK8O,KAAKu+D,MAAMv+D,KAAK0F,IAAIxU,IAAMqa,CAClD,CACF,CAEO,SAASizD,GAAUvlD,GACxB,IAAI1N,EAAI,EAAGyvB,EAAQ/hB,EAAUmlD,GAAgB7yD,GAAI+yD,GAAgB/yD,IAMjE,OAJAyvB,EAAMyjC,SAAW,SAASlrD,GACxB,OAAO3jB,UAAU5C,OAASisB,EAAUmlD,GAAgB7yD,GAAKgI,GAAI+qD,GAAgB/yD,IAAMA,CACrF,EAEO4xD,GAAUniC,EACnB,CAEe,SAAS0jC,KACtB,IAAI1jC,EAAQwjC,GAAU9D,MAMtB,OAJA1/B,EAAM8T,KAAO,WACX,OAAOA,GAAK9T,EAAO0jC,MAAUD,SAASzjC,EAAMyjC,WAC9C,EAEO5U,GAAUt9D,MAAMyuC,EAAOprC,UAChC,CC9BA,SAAS+uE,GAAan4D,GACpB,OAAO,SAAStV,GACd,OAAOA,EAAI,GAAK8O,KAAKgE,KAAK9S,EAAGsV,GAAYxG,KAAKgE,IAAI9S,EAAGsV,EACvD,CACF,CAEA,SAASo4D,GAAc1tE,GACrB,OAAOA,EAAI,GAAK8O,KAAK8I,MAAM5X,GAAK8O,KAAK8I,KAAK5X,EAC5C,CAEA,SAAS2tE,GAAgB3tE,GACvB,OAAOA,EAAI,GAAKA,EAAIA,EAAIA,EAAIA,CAC9B,CAEO,SAAS4tE,GAAO7lD,GACrB,IAAI+hB,EAAQ/hB,EAAUrnB,GAAUA,IAC5B4U,EAAW,EAYf,OAJAw0B,EAAMx0B,SAAW,SAAS+M,GACxB,OAAO3jB,UAAU5C,OANG,KAMOwZ,GAAY+M,GANf0F,EAAUrnB,GAAUA,IACzB,KAAb4U,EAAmByS,EAAU2lD,GAAeC,IAC5C5lD,EAAU0lD,GAAan4D,GAAWm4D,GAAa,EAAIn4D,IAIFA,CACzD,EAEO22D,GAAUniC,EACnB,CAEe,SAASh3B,KACtB,IAAIg3B,EAAQ8jC,GAAOpE,MAQnB,OANA1/B,EAAM8T,KAAO,WACX,OAAOA,GAAK9T,EAAOh3B,MAAOwC,SAASw0B,EAAMx0B,WAC3C,EAEAqjD,GAAUt9D,MAAMyuC,EAAOprC,WAEhBorC,CACT,CAEO,SAAS,KACd,OAAOh3B,GAAIzX,MAAM,KAAMqD,WAAW4W,SAAS,GAC7C,CC5CA,SAAS,GAAOtV,GACd,OAAO8O,KAAK2J,KAAKzY,GAAKA,EAAIA,CAC5B,CAMe,SAAS6tE,KACtB,IAGItU,EAHAuU,EAAUjE,KACVn7D,EAAQ,CAAC,EAAG,GACZkF,GAAQ,EAGZ,SAASk2B,EAAM9pC,GACb,IAAImD,EAXR,SAAkBnD,GAChB,OAAO8O,KAAK2J,KAAKzY,GAAK8O,KAAK8I,KAAK9I,KAAK0F,IAAIxU,GAC3C,CASY+tE,CAASD,EAAQ9tE,IACzB,OAAOqO,MAAMlL,GAAKo2D,EAAU3lD,EAAQ9E,KAAK8E,MAAMzQ,GAAKA,CACtD,CAuCA,OArCA2mC,EAAM8/B,OAAS,SAASzmE,GACtB,OAAO2qE,EAAQlE,OAAO,GAAOzmE,GAC/B,EAEA2mC,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,QAAUgyE,EAAQhhC,OAAOzqB,GAAIynB,GAASgkC,EAAQhhC,QACjE,EAEAhD,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAUgyE,EAAQp/D,OAAOA,EAAQ1T,MAAM8F,KAAKuhB,EAAG,KAAS5f,IAAI,KAAUqnC,GAASp7B,EAAMhR,OACxG,EAEAosC,EAAMiwB,WAAa,SAAS13C,GAC1B,OAAOynB,EAAMp7B,MAAM2T,GAAGzO,OAAM,EAC9B,EAEAk2B,EAAMl2B,MAAQ,SAASyO,GACrB,OAAO3jB,UAAU5C,QAAU8X,IAAUyO,EAAGynB,GAASl2B,CACnD,EAEAk2B,EAAMg+B,MAAQ,SAASzlD,GACrB,OAAO3jB,UAAU5C,QAAUgyE,EAAQhG,MAAMzlD,GAAIynB,GAASgkC,EAAQhG,OAChE,EAEAh+B,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEAzvB,EAAM8T,KAAO,WACX,OAAOiwB,GAAOC,EAAQhhC,SAAUp+B,GAC3BkF,MAAMA,GACNk0D,MAAMgG,EAAQhG,SACdvO,QAAQA,EACf,EAEAZ,GAAUt9D,MAAMyuC,EAAOprC,WAEhButE,GAAUniC,EACnB,CC9De,SAAS,GAAI5jC,EAAQ8nE,GAClC,IAAIpuE,EACJ,QAAgBhB,IAAZovE,EACF,IAAK,MAAM1zE,KAAS4L,EACL,MAAT5L,IACIsF,EAAMtF,QAAkBsE,IAARgB,GAAqBtF,GAASA,KACpDsF,EAAMtF,OAGL,CACL,IAAIgF,GAAS,EACb,IAAK,IAAIhF,KAAS4L,EACiC,OAA5C5L,EAAQ0zE,EAAQ1zE,IAASgF,EAAO4G,MAC7BtG,EAAMtF,QAAkBsE,IAARgB,GAAqBtF,GAASA,KACpDsF,EAAMtF,EAGZ,CACA,OAAOsF,CACT,CCnBe,SAAS,GAAIsG,EAAQ8nE,GAClC,IAAIh9D,EACJ,QAAgBpS,IAAZovE,EACF,IAAK,MAAM1zE,KAAS4L,EACL,MAAT5L,IACI0W,EAAM1W,QAAkBsE,IAARoS,GAAqB1W,GAASA,KACpD0W,EAAM1W,OAGL,CACL,IAAIgF,GAAS,EACb,IAAK,IAAIhF,KAAS4L,EACiC,OAA5C5L,EAAQ0zE,EAAQ1zE,IAASgF,EAAO4G,MAC7B8K,EAAM1W,QAAkBsE,IAARoS,GAAqB1W,GAASA,KACpD0W,EAAM1W,EAGZ,CACA,OAAO0W,CACT,CCOO,SAASi9D,GAAe9hE,EAAUyuD,IACvC,GAAIzuD,IAAYyuD,GAAW,OAAO,GAClC,GAAuB,mBAAZzuD,EAAwB,MAAM,IAAIxP,UAAU,6BACvD,MAAO,CAACiK,EAAGC,KACT,MAAM7G,EAAImM,EAAQvF,EAAGC,GACrB,OAAI7G,GAAW,IAANA,EAAgBA,GACC,IAAlBmM,EAAQtF,EAAGA,KAA+B,IAAlBsF,EAAQvF,EAAGA,GAAS,CAExD,CAEO,SAAS,GAAiBA,EAAGC,GAClC,OAAa,MAALD,KAAeA,GAAKA,KAAY,MAALC,KAAeA,GAAKA,MAAQD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,EAC1F,CClCe,SAAS,GAAY5F,EAAOqS,EAAG+d,EAAO,EAAGuY,EAAQp7B,IAAUrC,GAKxE,GAJAmH,EAAIxE,KAAKO,MAAMiE,GACf+d,EAAOviB,KAAKO,MAAMP,KAAKlP,IAAI,EAAGyxB,IAC9BuY,EAAQ96B,KAAKO,MAAMP,KAAKkC,IAAI/P,EAAMnF,OAAS,EAAG8tC,MAExCvY,GAAQ/d,GAAKA,GAAKs2B,GAAQ,OAAO3oC,EAIvC,IAFAkL,OAAsBvN,IAAZuN,EAAwB,GAAmB8hE,GAAe9hE,GAE7Dy9B,EAAQvY,GAAM,CACnB,GAAIuY,EAAQvY,EAAO,IAAK,CACtB,MAAM/gB,EAAIs5B,EAAQvY,EAAO,EACnBmB,EAAIlf,EAAI+d,EAAO,EACf3Z,EAAI5I,KAAK0H,IAAIlG,GACbqD,EAAI,GAAM7E,KAAKsI,IAAI,EAAIM,EAAI,GAC3BD,EAAK,GAAM3I,KAAK8I,KAAKF,EAAI/D,GAAKrD,EAAIqD,GAAKrD,IAAMkiB,EAAIliB,EAAI,EAAI,GAAK,EAAI,GAGxE,GAAYrP,EAAOqS,EAFHxE,KAAKlP,IAAIyxB,EAAMviB,KAAKO,MAAMiE,EAAIkf,EAAI7e,EAAIrD,EAAImH,IACzC3I,KAAKkC,IAAI44B,EAAO96B,KAAKO,MAAMiE,GAAKhD,EAAIkiB,GAAK7e,EAAIrD,EAAImH,IACzBtL,EAC3C,CAEA,MAAM0L,EAAI5W,EAAMqS,GAChB,IAAIvV,EAAIszB,EACJxyB,EAAI+qC,EAKR,IAHAskC,GAAKjtE,EAAOowB,EAAM/d,GACdnH,EAAQlL,EAAM2oC,GAAQ/xB,GAAK,GAAGq2D,GAAKjtE,EAAOowB,EAAMuY,GAE7C7rC,EAAIc,GAAG,CAEZ,IADAqvE,GAAKjtE,EAAOlD,EAAGc,KAAMd,IAAKc,EACnBsN,EAAQlL,EAAMlD,GAAI8Z,GAAK,KAAK9Z,EACnC,KAAOoO,EAAQlL,EAAMpC,GAAIgZ,GAAK,KAAKhZ,CACrC,CAEgC,IAA5BsN,EAAQlL,EAAMowB,GAAOxZ,GAAUq2D,GAAKjtE,EAAOowB,EAAMxyB,MAC9CA,EAAGqvE,GAAKjtE,EAAOpC,EAAG+qC,IAErB/qC,GAAKyU,IAAG+d,EAAOxyB,EAAI,GACnByU,GAAKzU,IAAG+qC,EAAQ/qC,EAAI,EAC1B,CAEA,OAAOoC,CACT,CAEA,SAASitE,GAAKjtE,EAAOlD,EAAGc,GACtB,MAAMgZ,EAAI5W,EAAMlD,GAChBkD,EAAMlD,GAAKkD,EAAMpC,GACjBoC,EAAMpC,GAAKgZ,CACb,CC3Ce,SAASs2D,GAASjoE,EAAQmV,EAAG2yD,GAE1C,GADA9nE,EAASkoE,aAAattE,K/CNjB,UAAkBoF,EAAQ8nE,GAC/B,QAAgBpvE,IAAZovE,EACF,IAAK,IAAI1zE,KAAS4L,EACH,MAAT5L,IAAkBA,GAASA,IAAUA,UACjCA,OAGL,CACL,IAAIgF,GAAS,EACb,IAAK,IAAIhF,KAAS4L,EACiC,OAA5C5L,EAAQ0zE,EAAQ1zE,IAASgF,EAAO4G,MAAqB5L,GAASA,IAAUA,UACrEA,EAGZ,CACF,C+CT6B2zD,CAAQ/nD,EAAQ8nE,KACrC19D,EAAIpK,EAAOpK,UAAWuS,MAAMgN,GAAKA,GAAvC,CACA,GAAIA,GAAK,GAAK/K,EAAI,EAAG,OAAO,GAAIpK,GAChC,GAAImV,GAAK,EAAG,OAAO,GAAInV,GACvB,IAAIoK,EACAvS,GAAKuS,EAAI,GAAK+K,EACdwtC,EAAK/5C,KAAKO,MAAMtR,GAChBswE,EAAS,GAAI,GAAYnoE,EAAQ2iD,GAAItgD,SAAS,EAAGsgD,EAAK,IAE1D,OAAOwlB,GADM,GAAInoE,EAAOqC,SAASsgD,EAAK,IACZwlB,IAAWtwE,EAAI8qD,EARQ,CASnD,CAEO,SAASylB,GAAepoE,EAAQmV,EAAG2yD,EAAU,IAClD,IAAM19D,EAAIpK,EAAOpK,UAAWuS,MAAMgN,GAAKA,GAAvC,CACA,GAAIA,GAAK,GAAK/K,EAAI,EAAG,OAAQ09D,EAAQ9nE,EAAO,GAAI,EAAGA,GACnD,GAAImV,GAAK,EAAG,OAAQ2yD,EAAQ9nE,EAAOoK,EAAI,GAAIA,EAAI,EAAGpK,GAClD,IAAIoK,EACAvS,GAAKuS,EAAI,GAAK+K,EACdwtC,EAAK/5C,KAAKO,MAAMtR,GAChBswE,GAAUL,EAAQ9nE,EAAO2iD,GAAKA,EAAI3iD,GAEtC,OAAOmoE,IADOL,EAAQ9nE,EAAO2iD,EAAK,GAAIA,EAAK,EAAG3iD,GACpBmoE,IAAWtwE,EAAI8qD,EARQ,CASnD,CC7Be,SAAS,KACtB,IAGI0Q,EAHAzsB,EAAS,GACTp+B,EAAQ,GACR6/D,EAAa,GAGjB,SAASzU,IACP,IAAI/7D,EAAI,EAAGuS,EAAIxB,KAAKlP,IAAI,EAAG8O,EAAM5S,QAEjC,IADAyyE,EAAa,IAAIvzE,MAAMsV,EAAI,KAClBvS,EAAIuS,GAAGi+D,EAAWxwE,EAAI,GAAK,GAAU+uC,EAAQ/uC,EAAIuS,GAC1D,OAAOw5B,CACT,CAEA,SAASA,EAAM9pC,GACb,OAAY,MAALA,GAAaqO,MAAMrO,GAAKA,GAAKu5D,EAAU7qD,EAAM66D,GAAOgF,EAAYvuE,GACzE,CAqCA,OAnCA8pC,EAAM0kC,aAAe,SAASrrE,GAC5B,IAAIpF,EAAI2Q,EAAMqJ,QAAQ5U,GACtB,OAAOpF,EAAI,EAAI,CAACmf,IAAKA,KAAO,CAC1Bnf,EAAI,EAAIwwE,EAAWxwE,EAAI,GAAK+uC,EAAO,GACnC/uC,EAAIwwE,EAAWzyE,OAASyyE,EAAWxwE,GAAK+uC,EAAOA,EAAOhxC,OAAS,GAEnE,EAEAguC,EAAMgD,OAAS,SAASzqB,GACtB,IAAK3jB,UAAU5C,OAAQ,OAAOgxC,EAAOpvC,QACrCovC,EAAS,GACT,IAAK,IAAIz5B,KAAKgP,EAAY,MAALhP,GAAchF,MAAMgF,GAAKA,IAAIy5B,EAAO/vC,KAAKsW,GAE9D,OADAy5B,EAAOnmC,KAAKi0D,IACLd,GACT,EAEAhwB,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAU4S,EAAQ1T,MAAM8F,KAAKuhB,GAAIy3C,KAAaprD,EAAMhR,OACvE,EAEAosC,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEAzvB,EAAM2kC,UAAY,WAChB,OAAOF,EAAW7wE,OACpB,EAEAosC,EAAM8T,KAAO,WACX,OAAO,KACF9Q,OAAOA,GACPp+B,MAAMA,GACN6qD,QAAQA,EACf,EAEOZ,GAAUt9D,MAAMyuC,EAAOprC,UAChC,CCpDe,SAASgwE,KACtB,IAKInV,EALA13C,EAAK,EACLE,EAAK,EACLzR,EAAI,EACJw8B,EAAS,CAAC,IACVp+B,EAAQ,CAAC,EAAG,GAGhB,SAASo7B,EAAM9pC,GACb,OAAY,MAALA,GAAaA,GAAKA,EAAI0O,EAAM66D,GAAOz8B,EAAQ9sC,EAAG,EAAGsQ,IAAMipD,CAChE,CAEA,SAASO,IACP,IAAI/7D,GAAK,EAET,IADA+uC,EAAS,IAAI9xC,MAAMsV,KACVvS,EAAIuS,GAAGw8B,EAAO/uC,KAAOA,EAAI,GAAKgkB,GAAMhkB,EAAIuS,GAAKuR,IAAOvR,EAAI,GACjE,OAAOw5B,CACT,CAiCA,OA/BAA,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,SAAW+lB,EAAIE,GAAMM,EAAGR,GAAMA,EAAIE,GAAMA,EAAI+3C,KAAa,CAACj4C,EAAIE,EACjF,EAEA+nB,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAUwU,GAAK5B,EAAQ1T,MAAM8F,KAAKuhB,IAAIvmB,OAAS,EAAGg+D,KAAaprD,EAAMhR,OACxF,EAEAosC,EAAM0kC,aAAe,SAASrrE,GAC5B,IAAIpF,EAAI2Q,EAAMqJ,QAAQ5U,GACtB,OAAOpF,EAAI,EAAI,CAACmf,IAAKA,KACfnf,EAAI,EAAI,CAAC8jB,EAAIirB,EAAO,IACpB/uC,GAAKuS,EAAI,CAACw8B,EAAOx8B,EAAI,GAAIyR,GACzB,CAAC+qB,EAAO/uC,EAAI,GAAI+uC,EAAO/uC,GAC/B,EAEA+rC,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASA,CACnD,EAEAA,EAAMykC,WAAa,WACjB,OAAOzhC,EAAOpvC,OAChB,EAEAosC,EAAM8T,KAAO,WACX,OAAO8wB,KACF5hC,OAAO,CAACjrB,EAAIE,IACZrT,MAAMA,GACN6qD,QAAQA,EACf,EAEOZ,GAAUt9D,MAAM4wE,GAAUniC,GAAQprC,UAC3C,CCpDe,SAASiwE,KACtB,IAEIpV,EAFAzsB,EAAS,CAAC,IACVp+B,EAAQ,CAAC,EAAG,GAEZ4B,EAAI,EAER,SAASw5B,EAAM9pC,GACb,OAAY,MAALA,GAAaA,GAAKA,EAAI0O,EAAM66D,GAAOz8B,EAAQ9sC,EAAG,EAAGsQ,IAAMipD,CAChE,CA0BA,OAxBAzvB,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,QAAUgxC,EAAS9xC,MAAM8F,KAAKuhB,GAAI/R,EAAIxB,KAAKkC,IAAI87B,EAAOhxC,OAAQ4S,EAAM5S,OAAS,GAAIguC,GAASgD,EAAOpvC,OACpH,EAEAosC,EAAMp7B,MAAQ,SAAS2T,GACrB,OAAO3jB,UAAU5C,QAAU4S,EAAQ1T,MAAM8F,KAAKuhB,GAAI/R,EAAIxB,KAAKkC,IAAI87B,EAAOhxC,OAAQ4S,EAAM5S,OAAS,GAAIguC,GAASp7B,EAAMhR,OAClH,EAEAosC,EAAM0kC,aAAe,SAASrrE,GAC5B,IAAIpF,EAAI2Q,EAAMqJ,QAAQ5U,GACtB,MAAO,CAAC2pC,EAAO/uC,EAAI,GAAI+uC,EAAO/uC,GAChC,EAEA+rC,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEAzvB,EAAM8T,KAAO,WACX,OAAO+wB,KACF7hC,OAAOA,GACPp+B,MAAMA,GACN6qD,QAAQA,EACf,EAEOZ,GAAUt9D,MAAMyuC,EAAOprC,UAChC,CtBzBE,GAAS,GAPG,CACZksE,UAAW,IACXD,SAAU,CAAC,GACXG,SAAU,CAAC,IAAK,MAKhBp3B,GAAS,GAAOA,OAChB82B,GAAe,GAAOA,auBfjB,MAAMoE,GAAiB,IACjBC,GAAiBD,IACjBE,GAAeD,KACfE,GAAcD,MACdE,GAAeD,OACfE,GAAgBF,OAChBG,GAAeH,QCNtB3nB,GAAK,IAAI7rD,KAAM8rD,GAAK,IAAI9rD,KAEvB,SAAS4zE,GAAaC,EAAQC,EAAShV,EAAOiV,GAEnD,SAASjD,EAASpD,GAChB,OAAOmG,EAAOnG,EAA4B,IAArBvqE,UAAU5C,OAAe,IAAIP,KAAO,IAAIA,MAAM0tE,IAAQA,CAC7E,CA6DA,OA3DAoD,EAASh9D,MAAS45D,IACTmG,EAAOnG,EAAO,IAAI1tE,MAAM0tE,IAAQA,GAGzCoD,EAASt9D,KAAQk6D,IACRmG,EAAOnG,EAAO,IAAI1tE,KAAK0tE,EAAO,IAAKoG,EAAQpG,EAAM,GAAImG,EAAOnG,GAAOA,GAG5EoD,EAASz4D,MAASq1D,IAChB,MAAMG,EAAKiD,EAASpD,GAAOI,EAAKgD,EAASt9D,KAAKk6D,GAC9C,OAAOA,EAAOG,EAAKC,EAAKJ,EAAOG,EAAKC,CAAE,EAGxCgD,EAAS1/B,OAAS,CAACs8B,EAAMp6D,KAChBwgE,EAAQpG,EAAO,IAAI1tE,MAAM0tE,GAAe,MAARp6D,EAAe,EAAIC,KAAKO,MAAMR,IAAQo6D,GAG/EoD,EAAS39D,MAAQ,CAACC,EAAOwhD,EAAMthD,KAC7B,MAAMH,EAAQ,GAGd,GAFAC,EAAQ09D,EAASt9D,KAAKJ,GACtBE,EAAe,MAARA,EAAe,EAAIC,KAAKO,MAAMR,KAC/BF,EAAQwhD,GAAWthD,EAAO,GAAI,OAAOH,EAC3C,IAAI6gE,EACJ,GAAG7gE,EAAM3R,KAAKwyE,EAAW,IAAIh0E,MAAMoT,IAAS0gE,EAAQ1gE,EAAOE,GAAOugE,EAAOzgE,SAClE4gE,EAAW5gE,GAASA,EAAQwhD,GACnC,OAAOzhD,CAAK,EAGd29D,EAASpqE,OAAUgJ,GACVkkE,IAAclG,IACnB,GAAIA,GAAQA,EAAM,KAAOmG,EAAOnG,IAAQh+D,EAAKg+D,IAAOA,EAAKR,QAAQQ,EAAO,EAAE,IACzE,CAACA,EAAMp6D,KACR,GAAIo6D,GAAQA,EACV,GAAIp6D,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAOwgE,EAAQpG,GAAO,IAAKh+D,EAAKg+D,UAC3B,OAASp6D,GAAQ,GACtB,KAAOwgE,EAAQpG,EAAM,IAAMh+D,EAAKg+D,KAEpC,IAIA5O,IACFgS,EAAShS,MAAQ,CAAC1rD,EAAOC,KACvBw4C,GAAGqhB,SAAS95D,GAAQ04C,GAAGohB,SAAS75D,GAChCwgE,EAAOhoB,IAAKgoB,EAAO/nB,IACZv4C,KAAKO,MAAMgrD,EAAMjT,GAAIC,MAG9BglB,EAASp/C,MAASpe,IAChBA,EAAOC,KAAKO,MAAMR,GACVo8B,SAASp8B,IAAWA,EAAO,EAC3BA,EAAO,EACTw9D,EAASpqE,OAAOqtE,EACXj8D,GAAMi8D,EAAMj8D,GAAKxE,GAAS,EAC1BwE,GAAMg5D,EAAShS,MAAM,EAAGhnD,GAAKxE,GAAS,GAH7Bw9D,EADoB,OAQrCA,CACT,CClEO,MAAMmD,GAAcL,IAAa,SAErC,CAAClG,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAK,IACzB,CAACF,EAAOC,IACFA,EAAMD,IAIf6gE,GAAYviD,MAAS3Z,IACnBA,EAAIxE,KAAKO,MAAMiE,GACV23B,SAAS33B,IAAQA,EAAI,EACpBA,EAAI,EACH67D,IAAclG,IACnBA,EAAKR,QAAQ35D,KAAKO,MAAM45D,EAAO31D,GAAKA,EAAE,IACrC,CAAC21D,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAOyE,EAAE,IAC7B,CAAC3E,EAAOC,KACDA,EAAMD,GAAS2E,IANJk8D,GADgB,MAWXA,GAAY9gE,MAAjC,MCrBM+gE,GAASN,IAAclG,IAClCA,EAAKR,QAAQQ,EAAOA,EAAKyG,kBAAkB,IAC1C,CAACzG,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAO+/D,GAAe,IAC1C,CAACjgE,EAAOC,KACDA,EAAMD,GAASigE,KACrB3F,GACKA,EAAK0G,kBCPDC,IDUUH,GAAO/gE,MCVJygE,IAAclG,IACtCA,EAAKR,QAAQQ,EAAOA,EAAKyG,kBAAoBzG,EAAK4G,aAAejB,GAAe,IAC/E,CAAC3F,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAOggE,GAAe,IAC1C,CAAClgE,EAAOC,KACDA,EAAMD,GAASkgE,KACrB5F,GACKA,EAAK6G,gBAKDC,IAFcH,GAAWlhE,MAEbygE,IAAclG,IACrCA,EAAK+G,cAAc,EAAG,EAAE,IACvB,CAAC/G,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAOggE,GAAe,IAC1C,CAAClgE,EAAOC,KACDA,EAAMD,GAASkgE,KACrB5F,GACKA,EAAKgH,mBCnBDC,IDsBaH,GAAUrhE,MCtBZygE,IAAclG,IACpCA,EAAKR,QAAQQ,EAAOA,EAAKyG,kBAAoBzG,EAAK4G,aAAejB,GAAiB3F,EAAK6G,aAAejB,GAAe,IACpH,CAAC5F,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAOigE,GAAa,IACxC,CAACngE,EAAOC,KACDA,EAAMD,GAASmgE,KACrB7F,GACKA,EAAKkH,cAKDC,IAFYF,GAASxhE,MAEXygE,IAAclG,IACnCA,EAAKoH,cAAc,EAAG,EAAG,EAAE,IAC1B,CAACpH,EAAMp6D,KACRo6D,EAAKR,SAASQ,EAAOp6D,EAAOigE,GAAa,IACxC,CAACngE,EAAOC,KACDA,EAAMD,GAASmgE,KACrB7F,GACKA,EAAKqH,iBCnBDC,IDsBWH,GAAQ1hE,MCtBTygE,IACrBlG,GAAQA,EAAKuH,SAAS,EAAG,EAAG,EAAG,KAC/B,CAACvH,EAAMp6D,IAASo6D,EAAKwH,QAAQxH,EAAKyH,UAAY7hE,KAC9C,CAACF,EAAOC,KAASA,EAAMD,GAASC,EAAI+hE,oBAAsBhiE,EAAMgiE,qBAAuB9B,IAAkBE,KACzG9F,GAAQA,EAAKyH,UAAY,KAKdE,IAFWL,GAAQ7hE,MAEVygE,IAAclG,IAClCA,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAK6H,WAAW7H,EAAK8H,aAAeliE,EAAK,IACxC,CAACF,EAAOC,KACDA,EAAMD,GAASogE,KACrB9F,GACKA,EAAK8H,aAAe,KAKhBC,IAFUJ,GAAOliE,MAEPygE,IAAclG,IACnCA,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAK6H,WAAW7H,EAAK8H,aAAeliE,EAAK,IACxC,CAACF,EAAOC,KACDA,EAAMD,GAASogE,KACrB9F,GACKn6D,KAAKO,MAAM45D,EAAO8F,OAGHiC,GAAQtiE,MC/BhC,SAASuiE,GAAYlzE,GACnB,OAAOoxE,IAAclG,IACnBA,EAAKwH,QAAQxH,EAAKyH,WAAazH,EAAKiI,SAAW,EAAInzE,GAAK,GACxDkrE,EAAKuH,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAACvH,EAAMp6D,KACRo6D,EAAKwH,QAAQxH,EAAKyH,UAAmB,EAAP7hE,EAAS,IACtC,CAACF,EAAOC,KACDA,EAAMD,GAASC,EAAI+hE,oBAAsBhiE,EAAMgiE,qBAAuB9B,IAAkBG,IAEpG,CAEO,MAAMmC,GAAaF,GAAY,GACzBG,GAAaH,GAAY,GACzBI,GAAcJ,GAAY,GAC1BK,GAAgBL,GAAY,GAC5BM,GAAeN,GAAY,GAC3BO,GAAaP,GAAY,GACzBQ,GAAeR,GAAY,GAEbE,GAAWziE,MACX0iE,GAAW1iE,MACV2iE,GAAY3iE,MACV4iE,GAAc5iE,MACf6iE,GAAa7iE,MACf8iE,GAAW9iE,MACT+iE,GAAa/iE,MAE1C,SAASgjE,GAAW3zE,GAClB,OAAOoxE,IAAclG,IACnBA,EAAK6H,WAAW7H,EAAK8H,cAAgB9H,EAAK0I,YAAc,EAAI5zE,GAAK,GACjEkrE,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAK6H,WAAW7H,EAAK8H,aAAsB,EAAPliE,EAAS,IAC5C,CAACF,EAAOC,KACDA,EAAMD,GAASqgE,IAE3B,CAEO,MAAM4C,GAAYF,GAAW,GACvBG,GAAYH,GAAW,GACvBI,GAAaJ,GAAW,GACxBK,GAAeL,GAAW,GAC1BM,GAAcN,GAAW,GACzBO,GAAYP,GAAW,GACvBQ,GAAcR,GAAW,GC7CzBS,ID+CaP,GAAUljE,MACVmjE,GAAUnjE,MACTojE,GAAWpjE,MACTqjE,GAAarjE,MACdsjE,GAAYtjE,MACdujE,GAAUvjE,MACRwjE,GAAYxjE,MCrDfygE,IAAclG,IACrCA,EAAKwH,QAAQ,GACbxH,EAAKuH,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAACvH,EAAMp6D,KACRo6D,EAAKmJ,SAASnJ,EAAKoJ,WAAaxjE,EAAK,IACpC,CAACF,EAAOC,IACFA,EAAIyjE,WAAa1jE,EAAM0jE,WAAyD,IAA3CzjE,EAAI0jE,cAAgB3jE,EAAM2jE,iBACpErJ,GACKA,EAAKoJ,cAKDE,IAFaJ,GAAUzjE,MAEZygE,IAAclG,IACpCA,EAAK6H,WAAW,GAChB7H,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAKuJ,YAAYvJ,EAAKwJ,cAAgB5jE,EAAK,IAC1C,CAACF,EAAOC,IACFA,EAAI6jE,cAAgB9jE,EAAM8jE,cAAkE,IAAjD7jE,EAAI8jE,iBAAmB/jE,EAAM+jE,oBAC7EzJ,GACKA,EAAKwJ,iBCrBDE,IDwBYJ,GAAS7jE,MCxBVygE,IAAclG,IACpCA,EAAKmJ,SAAS,EAAG,GACjBnJ,EAAKuH,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAACvH,EAAMp6D,KACRo6D,EAAK2J,YAAY3J,EAAKqJ,cAAgBzjE,EAAK,IAC1C,CAACF,EAAOC,IACFA,EAAI0jE,cAAgB3jE,EAAM2jE,gBAC/BrJ,GACKA,EAAKqJ,iBAIdK,GAAS1lD,MAAS3Z,GACR23B,SAAS33B,EAAIxE,KAAKO,MAAMiE,KAASA,EAAI,EAAY67D,IAAclG,IACrEA,EAAK2J,YAAY9jE,KAAKO,MAAM45D,EAAKqJ,cAAgBh/D,GAAKA,GACtD21D,EAAKmJ,SAAS,EAAG,GACjBnJ,EAAKuH,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAACvH,EAAMp6D,KACRo6D,EAAK2J,YAAY3J,EAAKqJ,cAAgBzjE,EAAOyE,EAAE,IALC,KAS3Bq/D,GAASjkE,MAA3B,MAEMmkE,GAAU1D,IAAclG,IACnCA,EAAKuJ,YAAY,EAAG,GACpBvJ,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAK6J,eAAe7J,EAAKyJ,iBAAmB7jE,EAAK,IAChD,CAACF,EAAOC,IACFA,EAAI8jE,iBAAmB/jE,EAAM+jE,mBAClCzJ,GACKA,EAAKyJ,mBAIdG,GAAQ5lD,MAAS3Z,GACP23B,SAAS33B,EAAIxE,KAAKO,MAAMiE,KAASA,EAAI,EAAY67D,IAAclG,IACrEA,EAAK6J,eAAehkE,KAAKO,MAAM45D,EAAKyJ,iBAAmBp/D,GAAKA,GAC5D21D,EAAKuJ,YAAY,EAAG,GACpBvJ,EAAK4H,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC5H,EAAMp6D,KACRo6D,EAAK6J,eAAe7J,EAAKyJ,iBAAmB7jE,EAAOyE,EAAE,IALL,KAS5Bu/D,GAAQnkE,MCrChC,SAASqkE,GAAOC,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,GAE5C,MAAMC,EAAgB,CACpB,CAAC7D,GAAS,EAAQb,IAClB,CAACa,GAAS,EAAI,KACd,CAACA,GAAQ,GAAI,MACb,CAACA,GAAQ,GAAI,KACb,CAAC4D,EAAS,EAAQxE,IAClB,CAACwE,EAAS,EAAI,KACd,CAACA,EAAQ,GAAI,KACb,CAACA,EAAQ,GAAI,MACb,CAAGD,EAAO,EAAQtE,IAClB,CAAGsE,EAAO,EAAI,OACd,CAAGA,EAAO,EAAI,OACd,CAAGA,EAAM,GAAI,OACb,CAAID,EAAM,EAAQpE,IAClB,CAAIoE,EAAM,EAAI,QACd,CAAGD,EAAO,EAAQlE,IAClB,CAAEiE,EAAQ,EAAQhE,IAClB,CAAEgE,EAAQ,EAAI,QACd,CAAGD,EAAO,EAAQ9D,KAWpB,SAASqE,EAAa5kE,EAAOwhD,EAAMkK,GACjC,MAAM95D,EAASuO,KAAK0F,IAAI27C,EAAOxhD,GAAS0rD,EAClCt8D,EAAI+8D,IAAS,EAAE,CAAC,CAAEjsD,KAAUA,IAAM+6B,MAAM0pC,EAAe/yE,GAC7D,GAAIxC,IAAMu1E,EAAcx3E,OAAQ,OAAOk3E,EAAK/lD,MAAM0tC,GAAShsD,EAAQugE,GAAc/e,EAAO+e,GAAc7U,IACtG,GAAU,IAANt8D,EAAS,OAAOyxE,GAAYviD,MAAMne,KAAKlP,IAAI+6D,GAAShsD,EAAOwhD,EAAMkK,GAAQ,IAC7E,MAAOxiD,EAAGhJ,GAAQykE,EAAc/yE,EAAS+yE,EAAcv1E,EAAI,GAAG,GAAKu1E,EAAcv1E,GAAG,GAAKwC,EAASxC,EAAI,EAAIA,GAC1G,OAAO8Z,EAAEoV,MAAMpe,EACjB,CAEA,MAAO,CAjBP,SAAeF,EAAOwhD,EAAMkK,GAC1B,MAAMxmD,EAAUs8C,EAAOxhD,EACnBkF,KAAUlF,EAAOwhD,GAAQ,CAACA,EAAMxhD,IACpC,MAAM09D,EAAWhS,GAAgC,mBAAhBA,EAAM3rD,MAAuB2rD,EAAQkZ,EAAa5kE,EAAOwhD,EAAMkK,GAC1F7uB,EAAQ6gC,EAAWA,EAAS39D,MAAMC,GAAQwhD,EAAO,GAAK,GAC5D,OAAOt8C,EAAU23B,EAAM33B,UAAY23B,CACrC,EAWe+nC,EACjB,CAEA,MAAOC,GAAUC,IAAmBV,GAAOF,GAASN,GAAUX,GAAWZ,GAASZ,GAASL,KACpF2D,GAAWC,IAAoBZ,GAAOJ,GAAUR,GAAWhB,GAAYZ,GAASL,GAAUN,IC1CjG,SAASgE,GAAUvgE,GACjB,GAAI,GAAKA,EAAElQ,GAAKkQ,EAAElQ,EAAI,IAAK,CACzB,IAAI8lE,EAAO,IAAI1tE,MAAM,EAAG8X,EAAEmf,EAAGnf,EAAEA,EAAGA,EAAEwf,EAAGxf,EAAEuf,EAAGvf,EAAEsf,EAAGtf,EAAEye,GAEnD,OADAm3C,EAAK2J,YAAYv/D,EAAElQ,GACZ8lE,CACT,CACA,OAAO,IAAI1tE,KAAK8X,EAAElQ,EAAGkQ,EAAEmf,EAAGnf,EAAEA,EAAGA,EAAEwf,EAAGxf,EAAEuf,EAAGvf,EAAEsf,EAAGtf,EAAEye,EAClD,CAEA,SAAS+hD,GAAQxgE,GACf,GAAI,GAAKA,EAAElQ,GAAKkQ,EAAElQ,EAAI,IAAK,CACzB,IAAI8lE,EAAO,IAAI1tE,KAAKA,KAAKu4E,KAAK,EAAGzgE,EAAEmf,EAAGnf,EAAEA,EAAGA,EAAEwf,EAAGxf,EAAEuf,EAAGvf,EAAEsf,EAAGtf,EAAEye,IAE5D,OADAm3C,EAAK6J,eAAez/D,EAAElQ,GACf8lE,CACT,CACA,OAAO,IAAI1tE,KAAKA,KAAKu4E,IAAIzgE,EAAElQ,EAAGkQ,EAAEmf,EAAGnf,EAAEA,EAAGA,EAAEwf,EAAGxf,EAAEuf,EAAGvf,EAAEsf,EAAGtf,EAAEye,GAC3D,CAEA,SAASiiD,GAAQ5wE,EAAGqvB,EAAGnf,GACrB,MAAO,CAAClQ,EAAGA,EAAGqvB,EAAGA,EAAGnf,EAAGA,EAAGwf,EAAG,EAAGD,EAAG,EAAGD,EAAG,EAAGb,EAAG,EACjD,CAkWA,ICjYI,GACOkiD,GAEAC,GD8XPC,GAAO,CAAC,IAAK,GAAI,EAAK,IAAK,EAAK,KAChCC,GAAW,UACXC,GAAY,KACZC,GAAY,sBAEhB,SAASC,GAAIh6E,EAAOiwB,EAAM9K,GACxB,IAAIhH,EAAOne,EAAQ,EAAI,IAAM,GACzB4qB,GAAUzM,GAAQne,EAAQA,GAAS,GACnCwB,EAASopB,EAAOppB,OACpB,OAAO2c,GAAQ3c,EAAS2jB,EAAQ,IAAIzkB,MAAMykB,EAAQ3jB,EAAS,GAAG4G,KAAK6nB,GAAQrF,EAASA,EACtF,CAEA,SAASqvD,GAAQ5gE,GACf,OAAOA,EAAEgH,QAAQ05D,GAAW,OAC9B,CAEA,SAASG,GAASh3E,GAChB,OAAO,IAAI4K,OAAO,OAAS5K,EAAMiF,IAAI8xE,IAAS7xE,KAAK,KAAO,IAAK,IACjE,CAEA,SAAS+xE,GAAaj3E,GACpB,OAAO,IAAI8J,IAAI9J,EAAMiF,KAAI,CAAClF,EAAMQ,IAAM,CAACR,EAAK6tD,cAAertD,KAC7D,CAEA,SAAS22E,GAAyBrhE,EAAG6R,EAAQnnB,GAC3C,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEgB,GAAK/D,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS64E,GAAyBthE,EAAG6R,EAAQnnB,GAC3C,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAE2e,GAAK1hB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS84E,GAAsBvhE,EAAG6R,EAAQnnB,GACxC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEof,GAAKniB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS+4E,GAAmBxhE,EAAG6R,EAAQnnB,GACrC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEyhE,GAAKxkE,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASi5E,GAAsB1hE,EAAG6R,EAAQnnB,GACxC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAE0gB,GAAKzjB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASk5E,GAAc3hE,EAAG6R,EAAQnnB,GAChC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAElQ,GAAKmN,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASm5E,GAAU5hE,EAAG6R,EAAQnnB,GAC5B,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAElQ,GAAKmN,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAOvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC5E,CAEA,SAASo5E,GAAU7hE,EAAG6R,EAAQnnB,GAC5B,IAAIuS,EAAI,+BAA+B01D,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAChE,OAAOuS,GAAK+C,EAAEwe,EAAIvhB,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC7E,CAEA,SAASq5E,GAAa9hE,EAAG6R,EAAQnnB,GAC/B,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAE6D,EAAW,EAAP5G,EAAE,GAAS,EAAGvS,EAAIuS,EAAE,GAAGxU,SAAW,CACtD,CAEA,SAASs5E,GAAiB/hE,EAAG6R,EAAQnnB,GACnC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEmf,EAAIliB,EAAE,GAAK,EAAGvS,EAAIuS,EAAE,GAAGxU,SAAW,CAClD,CAEA,SAASu5E,GAAgBhiE,EAAG6R,EAAQnnB,GAClC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEA,GAAK/C,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASw5E,GAAejiE,EAAG6R,EAAQnnB,GACjC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEmf,EAAI,EAAGnf,EAAEA,GAAK/C,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CACxD,CAEA,SAASy5E,GAAYliE,EAAG6R,EAAQnnB,GAC9B,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEwf,GAAKviB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS05E,GAAaniE,EAAG6R,EAAQnnB,GAC/B,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEuf,GAAKtiB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS25E,GAAapiE,EAAG6R,EAAQnnB,GAC/B,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEsf,GAAKriB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS45E,GAAkBriE,EAAG6R,EAAQnnB,GACpC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEye,GAAKxhB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAAS65E,GAAkBtiE,EAAG6R,EAAQnnB,GACpC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC1C,OAAOuS,GAAK+C,EAAEye,EAAIhjB,KAAKO,MAAMiB,EAAE,GAAK,KAAOvS,EAAIuS,EAAE,GAAGxU,SAAW,CACjE,CAEA,SAAS85E,GAAoBviE,EAAG6R,EAAQnnB,GACtC,IAAIuS,EAAI8jE,GAAUpO,KAAK9gD,EAAOxnB,MAAMK,EAAGA,EAAI,IAC3C,OAAOuS,EAAIvS,EAAIuS,EAAE,GAAGxU,QAAU,CAChC,CAEA,SAAS+5E,GAAmBxiE,EAAG6R,EAAQnnB,GACrC,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,IACnC,OAAOuS,GAAK+C,EAAEue,GAAKthB,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASg6E,GAA0BziE,EAAG6R,EAAQnnB,GAC5C,IAAIuS,EAAI6jE,GAASnO,KAAK9gD,EAAOxnB,MAAMK,IACnC,OAAOuS,GAAK+C,EAAEM,GAAKrD,EAAE,GAAIvS,EAAIuS,EAAE,GAAGxU,SAAW,CAC/C,CAEA,SAASi6E,GAAiB1iE,EAAGgI,GAC3B,OAAOi5D,GAAIjhE,EAAEq9D,UAAWr1D,EAAG,EAC7B,CAEA,SAAS26D,GAAa3iE,EAAGgI,GACvB,OAAOi5D,GAAIjhE,EAAE88D,WAAY90D,EAAG,EAC9B,CAEA,SAAS46D,GAAa5iE,EAAGgI,GACvB,OAAOi5D,GAAIjhE,EAAE88D,WAAa,IAAM,GAAI90D,EAAG,EACzC,CAEA,SAAS66D,GAAgB7iE,EAAGgI,GAC1B,OAAOi5D,GAAI,EAAI/D,GAAQlW,MAAMsY,GAASt/D,GAAIA,GAAIgI,EAAG,EACnD,CAEA,SAAS86D,GAAmB9iE,EAAGgI,GAC7B,OAAOi5D,GAAIjhE,EAAEq8D,kBAAmBr0D,EAAG,EACrC,CAEA,SAAS+6D,GAAmB/iE,EAAGgI,GAC7B,OAAO86D,GAAmB9iE,EAAGgI,GAAK,KACpC,CAEA,SAASg7D,GAAkBhjE,EAAGgI,GAC5B,OAAOi5D,GAAIjhE,EAAEg/D,WAAa,EAAGh3D,EAAG,EAClC,CAEA,SAASi7D,GAAcjjE,EAAGgI,GACxB,OAAOi5D,GAAIjhE,EAAEy8D,aAAcz0D,EAAG,EAChC,CAEA,SAASk7D,GAAcljE,EAAGgI,GACxB,OAAOi5D,GAAIjhE,EAAEw8D,aAAcx0D,EAAG,EAChC,CAEA,SAASm7D,GAA0BnjE,GACjC,IAAI8/D,EAAM9/D,EAAE69D,SACZ,OAAe,IAARiC,EAAY,EAAIA,CACzB,CAEA,SAASsD,GAAuBpjE,EAAGgI,GACjC,OAAOi5D,GAAInD,GAAW9W,MAAMsY,GAASt/D,GAAK,EAAGA,GAAIgI,EAAG,EACtD,CAEA,SAASq7D,GAAKrjE,GACZ,IAAI8/D,EAAM9/D,EAAE69D,SACZ,OAAQiC,GAAO,GAAa,IAARA,EAAa5B,GAAal+D,GAAKk+D,GAAaxiE,KAAKsE,EACvE,CAEA,SAASsjE,GAAoBtjE,EAAGgI,GAE9B,OADAhI,EAAIqjE,GAAKrjE,GACFihE,GAAI/C,GAAalX,MAAMsY,GAASt/D,GAAIA,IAA+B,IAAzBs/D,GAASt/D,GAAG69D,UAAiB71D,EAAG,EACnF,CAEA,SAASu7D,GAA0BvjE,GACjC,OAAOA,EAAE69D,QACX,CAEA,SAAS2F,GAAuBxjE,EAAGgI,GACjC,OAAOi5D,GAAIlD,GAAW/W,MAAMsY,GAASt/D,GAAK,EAAGA,GAAIgI,EAAG,EACtD,CAEA,SAASy7D,GAAWzjE,EAAGgI,GACrB,OAAOi5D,GAAIjhE,EAAEi/D,cAAgB,IAAKj3D,EAAG,EACvC,CAEA,SAAS07D,GAAc1jE,EAAGgI,GAExB,OAAOi5D,IADPjhE,EAAIqjE,GAAKrjE,IACIi/D,cAAgB,IAAKj3D,EAAG,EACvC,CAEA,SAAS27D,GAAe3jE,EAAGgI,GACzB,OAAOi5D,GAAIjhE,EAAEi/D,cAAgB,IAAOj3D,EAAG,EACzC,CAEA,SAAS47D,GAAkB5jE,EAAGgI,GAC5B,IAAI83D,EAAM9/D,EAAE69D,SAEZ,OAAOoD,IADPjhE,EAAK8/D,GAAO,GAAa,IAARA,EAAa5B,GAAal+D,GAAKk+D,GAAaxiE,KAAKsE,IACrDi/D,cAAgB,IAAOj3D,EAAG,EACzC,CAEA,SAAS67D,GAAW7jE,GAClB,IAAIqE,EAAIrE,EAAEs9D,oBACV,OAAQj5D,EAAI,EAAI,KAAOA,IAAM,EAAG,MAC1B48D,GAAI58D,EAAI,GAAK,EAAG,IAAK,GACrB48D,GAAI58D,EAAI,GAAI,IAAK,EACzB,CAEA,SAASy/D,GAAoB9jE,EAAGgI,GAC9B,OAAOi5D,GAAIjhE,EAAE09D,aAAc11D,EAAG,EAChC,CAEA,SAAS+7D,GAAgB/jE,EAAGgI,GAC1B,OAAOi5D,GAAIjhE,EAAEi9D,cAAej1D,EAAG,EACjC,CAEA,SAASg8D,GAAgBhkE,EAAGgI,GAC1B,OAAOi5D,GAAIjhE,EAAEi9D,cAAgB,IAAM,GAAIj1D,EAAG,EAC5C,CAEA,SAASi8D,GAAmBjkE,EAAGgI,GAC7B,OAAOi5D,GAAI,EAAI1D,GAAOvW,MAAMwY,GAAQx/D,GAAIA,GAAIgI,EAAG,EACjD,CAEA,SAASk8D,GAAsBlkE,EAAGgI,GAChC,OAAOi5D,GAAIjhE,EAAEmkE,qBAAsBn8D,EAAG,EACxC,CAEA,SAASo8D,GAAsBpkE,EAAGgI,GAChC,OAAOk8D,GAAsBlkE,EAAGgI,GAAK,KACvC,CAEA,SAASq8D,GAAqBrkE,EAAGgI,GAC/B,OAAOi5D,GAAIjhE,EAAEo/D,cAAgB,EAAGp3D,EAAG,EACrC,CAEA,SAASs8D,GAAiBtkE,EAAGgI,GAC3B,OAAOi5D,GAAIjhE,EAAE48D,gBAAiB50D,EAAG,EACnC,CAEA,SAASu8D,GAAiBvkE,EAAGgI,GAC3B,OAAOi5D,GAAIjhE,EAAEs8D,gBAAiBt0D,EAAG,EACnC,CAEA,SAASw8D,GAA6BxkE,GACpC,IAAIykE,EAAMzkE,EAAEs+D,YACZ,OAAe,IAARmG,EAAY,EAAIA,CACzB,CAEA,SAASC,GAA0B1kE,EAAGgI,GACpC,OAAOi5D,GAAI1C,GAAUvX,MAAMwY,GAAQx/D,GAAK,EAAGA,GAAIgI,EAAG,EACpD,CAEA,SAAS28D,GAAQ3kE,GACf,IAAI8/D,EAAM9/D,EAAEs+D,YACZ,OAAQwB,GAAO,GAAa,IAARA,EAAanB,GAAY3+D,GAAK2+D,GAAYjjE,KAAKsE,EACrE,CAEA,SAAS4kE,GAAuB5kE,EAAGgI,GAEjC,OADAhI,EAAI2kE,GAAQ3kE,GACLihE,GAAItC,GAAY3X,MAAMwY,GAAQx/D,GAAIA,IAAiC,IAA3Bw/D,GAAQx/D,GAAGs+D,aAAoBt2D,EAAG,EACnF,CAEA,SAAS68D,GAA6B7kE,GACpC,OAAOA,EAAEs+D,WACX,CAEA,SAASwG,GAA0B9kE,EAAGgI,GACpC,OAAOi5D,GAAIzC,GAAUxX,MAAMwY,GAAQx/D,GAAK,EAAGA,GAAIgI,EAAG,EACpD,CAEA,SAAS+8D,GAAc/kE,EAAGgI,GACxB,OAAOi5D,GAAIjhE,EAAEq/D,iBAAmB,IAAKr3D,EAAG,EAC1C,CAEA,SAASg9D,GAAiBhlE,EAAGgI,GAE3B,OAAOi5D,IADPjhE,EAAI2kE,GAAQ3kE,IACCq/D,iBAAmB,IAAKr3D,EAAG,EAC1C,CAEA,SAASi9D,GAAkBjlE,EAAGgI,GAC5B,OAAOi5D,GAAIjhE,EAAEq/D,iBAAmB,IAAOr3D,EAAG,EAC5C,CAEA,SAASk9D,GAAqBllE,EAAGgI,GAC/B,IAAI83D,EAAM9/D,EAAEs+D,YAEZ,OAAO2C,IADPjhE,EAAK8/D,GAAO,GAAa,IAARA,EAAanB,GAAY3+D,GAAK2+D,GAAYjjE,KAAKsE,IACnDq/D,iBAAmB,IAAOr3D,EAAG,EAC5C,CAEA,SAASm9D,KACP,MAAO,OACT,CAEA,SAASC,KACP,MAAO,GACT,CAEA,SAASC,GAAoBrlE,GAC3B,OAAQA,CACV,CAEA,SAASslE,GAA2BtlE,GAClC,OAAOvE,KAAKO,OAAOgE,EAAI,IACzB,CElrBA,SAAS,GAAKwE,GACZ,OAAO,IAAItc,KAAKsc,EAClB,CAEA,SAAS,GAAOA,GACd,OAAOA,aAAatc,MAAQsc,GAAK,IAAItc,MAAMsc,EAC7C,CAEO,SAAS+gE,GAASptC,EAAO+nC,EAAcP,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,EAAQ5D,EAAQ/7B,GAC1F,IAAI5J,EAAQ+/B,KACRD,EAAS9/B,EAAM8/B,OACf98B,EAAShD,EAAMgD,OAEf+rC,EAAoBnlC,EAAO,OAC3BolC,EAAeplC,EAAO,OACtBqlC,EAAerlC,EAAO,SACtBslC,EAAatlC,EAAO,SACpBulC,EAAYvlC,EAAO,SACnBwlC,EAAaxlC,EAAO,SACpBylC,EAAczlC,EAAO,MACrBojC,EAAapjC,EAAO,MAExB,SAASm4B,EAAW5C,GAClB,OAAQwG,EAAOxG,GAAQA,EAAO4P,EACxBxF,EAAOpK,GAAQA,EAAO6P,EACtB1F,EAAKnK,GAAQA,EAAO8P,EACpB5F,EAAIlK,GAAQA,EAAO+P,EACnB/F,EAAMhK,GAAQA,EAAQiK,EAAKjK,GAAQA,EAAOgQ,EAAYC,EACtDlG,EAAK/J,GAAQA,EAAOkQ,EACpBrC,GAAY7N,EACpB,CA6BA,OA3BAn/B,EAAM8/B,OAAS,SAASzmE,GACtB,OAAO,IAAI5H,KAAKquE,EAAOzmE,GACzB,EAEA2mC,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,OAASgxC,EAAO9xC,MAAM8F,KAAKuhB,EAAG,KAAWyqB,IAASrqC,IAAI,GACzE,EAEAqnC,EAAM0B,MAAQ,SAAS6gC,GACrB,IAAIh5D,EAAIy5B,IACR,OAAOtB,EAAMn4B,EAAE,GAAIA,EAAEA,EAAEvX,OAAS,GAAgB,MAAZuwE,EAAmB,GAAKA,EAC9D,EAEAviC,EAAM+hC,WAAa,SAASxR,EAAO4P,GACjC,OAAoB,MAAbA,EAAoB4B,EAAan4B,EAAOu2B,EACjD,EAEAngC,EAAMoiC,KAAO,SAASG,GACpB,IAAIh5D,EAAIy5B,IAER,OADKu/B,GAAsC,mBAAnBA,EAAS39D,QAAsB29D,EAAWkH,EAAalgE,EAAE,GAAIA,EAAEA,EAAEvX,OAAS,GAAgB,MAAZuwE,EAAmB,GAAKA,IACvHA,EAAWv/B,EAAOo/B,GAAK74D,EAAGg5D,IAAaviC,CAChD,EAEAA,EAAM8T,KAAO,WACX,OAAOA,GAAK9T,EAAO8uC,GAASptC,EAAO+nC,EAAcP,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,EAAQ5D,EAAQ/7B,GACjG,EAEO5J,CACT,CAEe,SAASsvC,KACtB,OAAOzgB,GAAUt9D,MAAMu9E,GAASlF,GAAWC,GAAkBhB,GAAUR,GAAW,GAAU5B,GAASL,GAAUN,GAAY,GAAYoE,IAAYlnC,OAAO,CAAC,IAAIvxC,KAAK,IAAM,EAAG,GAAI,IAAIA,KAAK,IAAM,EAAG,KAAMmD,UAC3M,CCjEe,SAAS26E,KACtB,OAAO1gB,GAAUt9D,MAAMu9E,GAASpF,GAAUC,GAAiBZ,GAASN,GAAU,GAAS3B,GAAQR,GAASL,GAAW,GAAWkE,IAAWnnC,OAAO,CAACvxC,KAAKu4E,IAAI,IAAM,EAAG,GAAIv4E,KAAKu4E,IAAI,IAAM,EAAG,KAAMp1E,UACjM,CCCA,SAAS,KACP,IAEI0oD,EACAC,EACAiyB,EACAvxD,EAGAwxC,EARA13C,EAAK,EACLE,EAAK,EAKL82C,EAAen4D,GACfonE,GAAQ,EAGZ,SAASh+B,EAAM9pC,GACb,OAAY,MAALA,GAAaqO,MAAMrO,GAAKA,GAAKu5D,EAAUV,EAAqB,IAARygB,EAAY,IAAOt5E,GAAK+nB,EAAU/nB,GAAKonD,GAAMkyB,EAAKxR,EAAQh5D,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,EAAGhR,IAAMA,GACrJ,CAcA,SAAS0O,EAAMwX,GACb,OAAO,SAAS7D,GACd,IAAIq3C,EAAIC,EACR,OAAOj7D,UAAU5C,SAAW49D,EAAIC,GAAMt3C,EAAGw2C,EAAe3yC,EAAYwzC,EAAIC,GAAK7vB,GAAS,CAAC+uB,EAAa,GAAIA,EAAa,GACvH,CACF,CAUA,OA3BA/uB,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,SAAW+lB,EAAIE,GAAMM,EAAG+kC,EAAKr/B,EAAUlG,GAAMA,GAAKwlC,EAAKt/B,EAAUhG,GAAMA,GAAKu3D,EAAMlyB,IAAOC,EAAK,EAAI,GAAKA,EAAKD,GAAKtd,GAAS,CAACjoB,EAAIE,EAClJ,EAEA+nB,EAAMg+B,MAAQ,SAASzlD,GACrB,OAAO3jB,UAAU5C,QAAUgsE,IAAUzlD,EAAGynB,GAASg+B,CACnD,EAEAh+B,EAAM+uB,aAAe,SAASx2C,GAC5B,OAAO3jB,UAAU5C,QAAU+8D,EAAex2C,EAAGynB,GAAS+uB,CACxD,EASA/uB,EAAMp7B,MAAQA,EAAM,IAEpBo7B,EAAMiwB,WAAarrD,EAAM,IAEzBo7B,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEO,SAAS1hD,GAEd,OADAkQ,EAAYlQ,EAAGuvC,EAAKvvC,EAAEgK,GAAKwlC,EAAKxvC,EAAEkK,GAAKu3D,EAAMlyB,IAAOC,EAAK,EAAI,GAAKA,EAAKD,GAChEtd,CACT,CACF,CAEO,SAAS,GAAKtpC,EAAQD,GAC3B,OAAOA,EACFusC,OAAOtsC,EAAOssC,UACd+rB,aAAar4D,EAAOq4D,gBACpBiP,MAAMtnE,EAAOsnE,SACbvO,QAAQ/4D,EAAO+4D,UACtB,CAEe,SAASggB,KACtB,IAAIzvC,EAAQmiC,GAAU,KAAcvrE,KAMpC,OAJAopC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAOyvC,KACrB,EAEO3gB,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAAS86E,KACd,IAAI1vC,EAAQ8iC,GAAQ,MAAe9/B,OAAO,CAAC,EAAG,KAM9C,OAJAhD,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAO0vC,MAAiB/iE,KAAKqzB,EAAMrzB,OACjD,EAEOmiD,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAAS+6E,KACd,IAAI3vC,EAAQwjC,GAAU,MAMtB,OAJAxjC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAO2vC,MAAoBlM,SAASzjC,EAAMyjC,WACxD,EAEO3U,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASg7E,KACd,IAAI5vC,EAAQ8jC,GAAO,MAMnB,OAJA9jC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAO4vC,MAAiBpkE,SAASw0B,EAAMx0B,WACrD,EAEOsjD,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASi7E,KACd,OAAOD,GAAcr+E,MAAM,KAAMqD,WAAW4W,SAAS,GACvD,CCtGe,SAASskE,KACtB,IAAI9sC,EAAS,GACT+rB,EAAen4D,GAEnB,SAASopC,EAAM9pC,GACb,GAAS,MAALA,IAAcqO,MAAMrO,GAAKA,GAAI,OAAO64D,GAAc0Q,GAAOz8B,EAAQ9sC,EAAG,GAAK,IAAM8sC,EAAOhxC,OAAS,GACrG,CA0BA,OAxBAguC,EAAMgD,OAAS,SAASzqB,GACtB,IAAK3jB,UAAU5C,OAAQ,OAAOgxC,EAAOpvC,QACrCovC,EAAS,GACT,IAAK,IAAIz5B,KAAKgP,EAAY,MAALhP,GAAchF,MAAMgF,GAAKA,IAAIy5B,EAAO/vC,KAAKsW,GAE9D,OADAy5B,EAAOnmC,KAAKi0D,IACL9wB,CACT,EAEAA,EAAM+uB,aAAe,SAASx2C,GAC5B,OAAO3jB,UAAU5C,QAAU+8D,EAAex2C,EAAGynB,GAAS+uB,CACxD,EAEA/uB,EAAMp7B,MAAQ,WACZ,OAAOo+B,EAAOrqC,KAAI,CAAC4Q,EAAGtV,IAAM86D,EAAa96D,GAAK+uC,EAAOhxC,OAAS,KAChE,EAEAguC,EAAM2kC,UAAY,SAASn+D,GACzB,OAAOtV,MAAM8F,KAAK,CAAChF,OAAQwU,EAAI,IAAI,CAAC+R,EAAGtkB,IAAMowE,GAASrhC,EAAQ/uC,EAAIuS,IACpE,EAEAw5B,EAAM8T,KAAO,WACX,OAAOg8B,GAAmB/gB,GAAc/rB,OAAOA,EACjD,EAEO8rB,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CC5BA,SAAS,KACP,IAII0oD,EACAC,EACAmgB,EACA8R,EACAO,EAEA9xD,EAEAwxC,EAZA13C,EAAK,EACLE,EAAK,GACLvH,EAAK,EACL7G,EAAI,EAMJklD,EAAen4D,GAEfonE,GAAQ,EAGZ,SAASh+B,EAAM9pC,GACb,OAAOqO,MAAMrO,GAAKA,GAAKu5D,GAAWv5D,EAAI,KAAQA,GAAK+nB,EAAU/nB,IAAMqnD,IAAO1zC,EAAI3T,EAAI2T,EAAI0zC,EAAKiyB,EAAMO,GAAMhhB,EAAaiP,EAAQh5D,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAI,EAAGhR,IAAMA,GAC5J,CAcA,SAAS0O,EAAMwX,GACb,OAAO,SAAS7D,GACd,IAAIq3C,EAAIC,EAAImgB,EACZ,OAAOp7E,UAAU5C,SAAW49D,EAAIC,EAAImgB,GAAMz3D,EAAGw2C,ECzCpC,SAAmB3yC,EAAahgB,QAC9BtH,IAAXsH,IAAsBA,EAASggB,EAAaA,EAAc5rB,IAE9D,IADA,IAAIyD,EAAI,EAAGuS,EAAIpK,EAAOpK,OAAS,EAAGwf,EAAIpV,EAAO,GAAI6sB,EAAI,IAAI/3B,MAAMsV,EAAI,EAAI,EAAIA,GACpEvS,EAAIuS,GAAGyiB,EAAEh1B,GAAKmoB,EAAY5K,EAAGA,EAAIpV,IAASnI,IACjD,OAAO,SAAS8Z,GACd,IAAI9Z,EAAI+Q,KAAKlP,IAAI,EAAGkP,KAAKkC,IAAIV,EAAI,EAAGxB,KAAKO,MAAMwI,GAAKvH,KACpD,OAAOyiB,EAAEh1B,GAAG8Z,EAAI9Z,EAClB,CACF,CDiCkE2rE,CAAUxjD,EAAa,CAACwzC,EAAIC,EAAImgB,IAAMhwC,GAAS,CAAC+uB,EAAa,GAAIA,EAAa,IAAMA,EAAa,GAC/J,CACF,CAUA,OA3BA/uB,EAAMgD,OAAS,SAASzqB,GACtB,OAAO3jB,UAAU5C,SAAW+lB,EAAIE,EAAIvH,GAAM6H,EAAG+kC,EAAKr/B,EAAUlG,GAAMA,GAAKwlC,EAAKt/B,EAAUhG,GAAMA,GAAKylD,EAAKz/C,EAAUvN,GAAMA,GAAK8+D,EAAMlyB,IAAOC,EAAK,EAAI,IAAOA,EAAKD,GAAKyyB,EAAMxyB,IAAOmgB,EAAK,EAAI,IAAOA,EAAKngB,GAAK1zC,EAAI0zC,EAAKD,GAAM,EAAI,EAAGtd,GAAS,CAACjoB,EAAIE,EAAIvH,EACnP,EAEAsvB,EAAMg+B,MAAQ,SAASzlD,GACrB,OAAO3jB,UAAU5C,QAAUgsE,IAAUzlD,EAAGynB,GAASg+B,CACnD,EAEAh+B,EAAM+uB,aAAe,SAASx2C,GAC5B,OAAO3jB,UAAU5C,QAAU+8D,EAAex2C,EAAGynB,GAAS+uB,CACxD,EASA/uB,EAAMp7B,MAAQA,EAAM,IAEpBo7B,EAAMiwB,WAAarrD,EAAM,IAEzBo7B,EAAMyvB,QAAU,SAASl3C,GACvB,OAAO3jB,UAAU5C,QAAUy9D,EAAUl3C,EAAGynB,GAASyvB,CACnD,EAEO,SAAS1hD,GAEd,OADAkQ,EAAYlQ,EAAGuvC,EAAKvvC,EAAEgK,GAAKwlC,EAAKxvC,EAAEkK,GAAKylD,EAAK3vD,EAAE2C,GAAK8+D,EAAMlyB,IAAOC,EAAK,EAAI,IAAOA,EAAKD,GAAKyyB,EAAMxyB,IAAOmgB,EAAK,EAAI,IAAOA,EAAKngB,GAAK1zC,EAAI0zC,EAAKD,GAAM,EAAI,EAC7Itd,CACT,CACF,CAEe,SAASiwC,KACtB,IAAIjwC,EAAQmiC,GAAU,KAAcvrE,KAMpC,OAJAopC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAOiwC,KACrB,EAEOnhB,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASs7E,KACd,IAAIlwC,EAAQ8iC,GAAQ,MAAe9/B,OAAO,CAAC,GAAK,EAAG,KAMnD,OAJAhD,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAOkwC,MAAgBvjE,KAAKqzB,EAAMrzB,OAChD,EAEOmiD,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASu7E,KACd,IAAInwC,EAAQwjC,GAAU,MAMtB,OAJAxjC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAOmwC,MAAmB1M,SAASzjC,EAAMyjC,WACvD,EAEO3U,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASw7E,KACd,IAAIpwC,EAAQ8jC,GAAO,MAMnB,OAJA9jC,EAAM8T,KAAO,WACX,OAAO,GAAK9T,EAAOowC,MAAgB5kE,SAASw0B,EAAMx0B,WACpD,EAEOsjD,GAAiBv9D,MAAMyuC,EAAOprC,UACvC,CAEO,SAASy7E,KACd,OAAOD,GAAa7+E,MAAM,KAAMqD,WAAW4W,SAAS,GACtD,ELpFe,SAAuB2I,GACpC,GDea,SAAsBysD,GACnC,IAAI0P,EAAkB1P,EAAO2P,SACzBC,EAAc5P,EAAOzB,KACrBsR,EAAc7P,EAAO0O,KACrBoB,EAAiB9P,EAAO+P,QACxBC,EAAkBhQ,EAAOiQ,KACzBC,EAAuBlQ,EAAOmQ,UAC9BC,EAAgBpQ,EAAOqQ,OACvBC,EAAqBtQ,EAAOuQ,YAE5BC,EAAW1G,GAASgG,GACpBW,EAAe1G,GAAa+F,GAC5BY,EAAY5G,GAASkG,GACrBW,EAAgB5G,GAAaiG,GAC7BY,EAAiB9G,GAASoG,GAC1BW,EAAqB9G,GAAamG,GAClCY,EAAUhH,GAASsG,GACnBW,EAAchH,GAAaqG,GAC3BY,EAAelH,GAASwG,GACxBW,EAAmBlH,GAAauG,GAEhCY,EAAU,CACZ,EAkQF,SAA4BvoE,GAC1B,OAAOunE,EAAqBvnE,EAAE69D,SAChC,EAnQE,EAqQF,SAAuB79D,GACrB,OAAOqnE,EAAgBrnE,EAAE69D,SAC3B,EAtQE,EAwQF,SAA0B79D,GACxB,OAAO2nE,EAAmB3nE,EAAEg/D,WAC9B,EAzQE,EA2QF,SAAqBh/D,GACnB,OAAOynE,EAAcznE,EAAEg/D,WACzB,EA5QE,EAAK,KACL,EAAK0D,GACL,EAAKA,GACL,EAAKK,GACL,EAAKW,GACL,EAAKE,GACL,EAAKjB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,GACL,EAkQF,SAAsBjjE,GACpB,OAAOmnE,IAAiBnnE,EAAE88D,YAAc,IAC1C,EAnQE,EAqQF,SAAuB98D,GACrB,OAAO,KAAOA,EAAEg/D,WAAa,EAC/B,EAtQE,EAAKqG,GACL,EAAKC,GACL,EAAKpC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,IAAKuB,IAGHoD,EAAa,CACf,EAuPF,SAA+BxoE,GAC7B,OAAOunE,EAAqBvnE,EAAEs+D,YAChC,EAxPE,EA0PF,SAA0Bt+D,GACxB,OAAOqnE,EAAgBrnE,EAAEs+D,YAC3B,EA3PE,EA6PF,SAA6Bt+D,GAC3B,OAAO2nE,EAAmB3nE,EAAEo/D,cAC9B,EA9PE,EAgQF,SAAwBp/D,GACtB,OAAOynE,EAAcznE,EAAEo/D,cACzB,EAjQE,EAAK,KACL,EAAK0E,GACL,EAAKA,GACL,EAAKM,GACL,EAAKY,GACL,EAAKE,GACL,EAAKnB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKG,GACL,EAAKC,GACL,EAuPF,SAAyBtkE,GACvB,OAAOmnE,IAAiBnnE,EAAEi9D,eAAiB,IAC7C,EAxPE,EA0PF,SAA0Bj9D,GACxB,OAAO,KAAOA,EAAEo/D,cAAgB,EAClC,EA3PE,EAAKiG,GACL,EAAKC,GACL,EAAKf,GACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,IAAKC,IAGHqD,EAAS,CACX,EA4JF,SAA2BzoE,EAAG6R,EAAQnnB,GACpC,IAAIuS,EAAIgrE,EAAetV,KAAK9gD,EAAOxnB,MAAMK,IACzC,OAAOuS,GAAK+C,EAAEgB,EAAIknE,EAAmB/1E,IAAI8K,EAAE,GAAG86C,eAAgBrtD,EAAIuS,EAAE,GAAGxU,SAAW,CACpF,EA9JE,EAgKF,SAAsBuX,EAAG6R,EAAQnnB,GAC/B,IAAIuS,EAAI8qE,EAAUpV,KAAK9gD,EAAOxnB,MAAMK,IACpC,OAAOuS,GAAK+C,EAAEgB,EAAIgnE,EAAc71E,IAAI8K,EAAE,GAAG86C,eAAgBrtD,EAAIuS,EAAE,GAAGxU,SAAW,CAC/E,EAlKE,EAoKF,SAAyBuX,EAAG6R,EAAQnnB,GAClC,IAAIuS,EAAIorE,EAAa1V,KAAK9gD,EAAOxnB,MAAMK,IACvC,OAAOuS,GAAK+C,EAAEmf,EAAImpD,EAAiBn2E,IAAI8K,EAAE,GAAG86C,eAAgBrtD,EAAIuS,EAAE,GAAGxU,SAAW,CAClF,EAtKE,EAwKF,SAAoBuX,EAAG6R,EAAQnnB,GAC7B,IAAIuS,EAAIkrE,EAAQxV,KAAK9gD,EAAOxnB,MAAMK,IAClC,OAAOuS,GAAK+C,EAAEmf,EAAIipD,EAAYj2E,IAAI8K,EAAE,GAAG86C,eAAgBrtD,EAAIuS,EAAE,GAAGxU,SAAW,CAC7E,EA1KE,EA4KF,SAA6BuX,EAAG6R,EAAQnnB,GACtC,OAAOg+E,EAAe1oE,EAAG+mE,EAAiBl1D,EAAQnnB,EACpD,EA7KE,EAAKs3E,GACL,EAAKA,GACL,EAAKM,GACL,EAAKV,GACL,EAAKD,GACL,EAAKO,GACL,EAAKA,GACL,EAAKD,GACL,EAAKI,GACL,EAAKN,GACL,EAAKI,GACL,EAuIF,SAAqBniE,EAAG6R,EAAQnnB,GAC9B,IAAIuS,EAAI4qE,EAASlV,KAAK9gD,EAAOxnB,MAAMK,IACnC,OAAOuS,GAAK+C,EAAEgI,EAAI8/D,EAAa31E,IAAI8K,EAAE,GAAG86C,eAAgBrtD,EAAIuS,EAAE,GAAGxU,SAAW,CAC9E,EAzIE,EAAKq5E,GACL,EAAKU,GACL,EAAKC,GACL,EAAKL,GACL,EAAKd,GACL,EAAKC,GACL,EAAKC,GACL,EAAKH,GACL,EAAKK,GACL,EA0JF,SAAyB1hE,EAAG6R,EAAQnnB,GAClC,OAAOg+E,EAAe1oE,EAAGinE,EAAap1D,EAAQnnB,EAChD,EA3JE,EA6JF,SAAyBsV,EAAG6R,EAAQnnB,GAClC,OAAOg+E,EAAe1oE,EAAGknE,EAAar1D,EAAQnnB,EAChD,EA9JE,EAAKk3E,GACL,EAAKD,GACL,EAAKE,GACL,IAAKU,IAWP,SAASxK,EAAUnB,EAAW2R,GAC5B,OAAO,SAAS3S,GACd,IAII5uD,EACAi6D,EACA5gC,EANAxuB,EAAS,GACTnnB,GAAK,EACLc,EAAI,EACJyR,EAAI25D,EAAUnuE,OAOlB,IAFMmtE,aAAgB1tE,OAAO0tE,EAAO,IAAI1tE,MAAM0tE,MAErClrE,EAAIuS,GACqB,KAA5B25D,EAAU5kE,WAAWtH,KACvBmnB,EAAOnoB,KAAKktE,EAAUvsE,MAAMmB,EAAGd,IACgB,OAA1Cu2E,EAAMJ,GAAK75D,EAAI4vD,EAAUxvD,SAAS1c,KAAcsc,EAAI4vD,EAAUxvD,SAAS1c,GACvEu2E,EAAY,MAANj6D,EAAY,IAAM,KACzBq5B,EAASkoC,EAAQvhE,MAAIA,EAAIq5B,EAAOu1B,EAAMqL,IAC1CpvD,EAAOnoB,KAAKsd,GACZxb,EAAId,EAAI,GAKZ,OADAmnB,EAAOnoB,KAAKktE,EAAUvsE,MAAMmB,EAAGd,IACxBmnB,EAAOxiB,KAAK,GACrB,CACF,CAEA,SAASs5E,EAAS/R,EAAWp4C,GAC3B,OAAO,SAAS3M,GACd,IAEIguD,EAAMC,EAFN9/D,EAAI0gE,GAAQ,UAAMn1E,EAAW,GAGjC,GAFQm9E,EAAe1oE,EAAG42D,EAAW/kD,GAAU,GAAI,IAE1CA,EAAOppB,OAAQ,OAAO,KAG/B,GAAI,MAAOuX,EAAG,OAAO,IAAI9X,KAAK8X,EAAEue,GAChC,GAAI,MAAOve,EAAG,OAAO,IAAI9X,KAAW,IAAN8X,EAAEM,GAAY,MAAON,EAAIA,EAAEye,EAAI,IAY7D,GATID,KAAO,MAAOxe,KAAIA,EAAEwe,EAAI,GAGxB,MAAOxe,IAAGA,EAAEwf,EAAIxf,EAAEwf,EAAI,GAAW,GAANxf,EAAEgI,QAGrBzc,IAARyU,EAAEmf,IAAiBnf,EAAEmf,EAAI,MAAOnf,EAAIA,EAAE6D,EAAI,GAG1C,MAAO7D,EAAG,CACZ,GAAIA,EAAEyhE,EAAI,GAAKzhE,EAAEyhE,EAAI,GAAI,OAAO,KAC1B,MAAOzhE,IAAIA,EAAEgB,EAAI,GACnB,MAAOhB,GAC2B8/D,GAApCD,EAAOW,GAAQE,GAAQ1gE,EAAElQ,EAAG,EAAG,KAAgBwuE,YAC/CuB,EAAOC,EAAM,GAAa,IAARA,EAAYtB,GAAU9iE,KAAKmkE,GAAQrB,GAAUqB,GAC/DA,EAAOtC,GAAOjkC,OAAOumC,EAAkB,GAAX7/D,EAAEyhE,EAAI,IAClCzhE,EAAElQ,EAAI+vE,EAAKR,iBACXr/D,EAAEmf,EAAI0gD,EAAKT,cACXp/D,EAAEA,EAAI6/D,EAAKnC,cAAgB19D,EAAEgB,EAAI,GAAK,IAEA8+D,GAAtCD,EAAOU,GAAUG,GAAQ1gE,EAAElQ,EAAG,EAAG,KAAgB+tE,SACjDgC,EAAOC,EAAM,GAAa,IAARA,EAAY/B,GAAWriE,KAAKmkE,GAAQ9B,GAAW8B,GACjEA,EAAO3C,GAAQ5jC,OAAOumC,EAAkB,GAAX7/D,EAAEyhE,EAAI,IACnCzhE,EAAElQ,EAAI+vE,EAAKZ,cACXj/D,EAAEmf,EAAI0gD,EAAKb,WACXh/D,EAAEA,EAAI6/D,EAAKxC,WAAar9D,EAAEgB,EAAI,GAAK,EAEvC,MAAW,MAAOhB,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAEgB,EAAI,MAAOhB,EAAIA,EAAE2e,EAAI,EAAI,MAAO3e,EAAI,EAAI,GAC3D8/D,EAAM,MAAO9/D,EAAIwgE,GAAQE,GAAQ1gE,EAAElQ,EAAG,EAAG,IAAIwuE,YAAciC,GAAUG,GAAQ1gE,EAAElQ,EAAG,EAAG,IAAI+tE,SACzF79D,EAAEmf,EAAI,EACNnf,EAAEA,EAAI,MAAOA,GAAKA,EAAEgB,EAAI,GAAK,EAAU,EAANhB,EAAE0gB,GAASo/C,EAAM,GAAK,EAAI9/D,EAAEgB,EAAU,EAANhB,EAAEof,GAAS0gD,EAAM,GAAK,GAKzF,MAAI,MAAO9/D,GACTA,EAAEwf,GAAKxf,EAAEwe,EAAI,IAAM,EACnBxe,EAAEuf,GAAKvf,EAAEwe,EAAI,IACNgiD,GAAQxgE,IAIVugE,GAAUvgE,EACnB,CACF,CAEA,SAAS0oE,EAAe1oE,EAAG42D,EAAW/kD,EAAQrmB,GAO5C,IANA,IAGIwb,EACA4hE,EAJAl+E,EAAI,EACJuS,EAAI25D,EAAUnuE,OACd02B,EAAItN,EAAOppB,OAIRiC,EAAIuS,GAAG,CACZ,GAAIzR,GAAK2zB,EAAG,OAAQ,EAEpB,GAAU,MADVnY,EAAI4vD,EAAU5kE,WAAWtH,OAIvB,GAFAsc,EAAI4vD,EAAUxvD,OAAO1c,OACrBk+E,EAAQH,EAAOzhE,KAAK65D,GAAOjK,EAAUxvD,OAAO1c,KAAOsc,MACnCxb,EAAIo9E,EAAM5oE,EAAG6R,EAAQrmB,IAAM,EAAI,OAAQ,OAClD,GAAIwb,GAAK6K,EAAO7f,WAAWxG,KAChC,OAAQ,CAEZ,CAEA,OAAOA,CACT,CAuFA,OAzMA+8E,EAAQ57E,EAAIorE,EAAUkP,EAAasB,GACnCA,EAAQ3pD,EAAIm5C,EAAUmP,EAAaqB,GACnCA,EAAQvhE,EAAI+wD,EAAUgP,EAAiBwB,GACvCC,EAAW77E,EAAIorE,EAAUkP,EAAauB,GACtCA,EAAW5pD,EAAIm5C,EAAUmP,EAAasB,GACtCA,EAAWxhE,EAAI+wD,EAAUgP,EAAiByB,GAoMnC,CACLnoC,OAAQ,SAASu2B,GACf,IAAIzrD,EAAI4sD,EAAUnB,GAAa,GAAI2R,GAEnC,OADAp9D,EAAEhc,SAAW,WAAa,OAAOynE,CAAW,EACrCzrD,CACT,EACAy9D,MAAO,SAAShS,GACd,IAAI5uD,EAAI2gE,EAAS/R,GAAa,IAAI,GAElC,OADA5uD,EAAE7Y,SAAW,WAAa,OAAOynE,CAAW,EACrC5uD,CACT,EACA44D,UAAW,SAAShK,GAClB,IAAIzrD,EAAI4sD,EAAUnB,GAAa,GAAI4R,GAEnC,OADAr9D,EAAEhc,SAAW,WAAa,OAAOynE,CAAW,EACrCzrD,CACT,EACA09D,SAAU,SAASjS,GACjB,IAAI5uD,EAAI2gE,EAAS/R,GAAa,IAAI,GAElC,OADA5uD,EAAE7Y,SAAW,WAAa,OAAOynE,CAAW,EACrC5uD,CACT,EAEJ,CC7WW8gE,CAAal+D,GACtB+1D,GAAa,GAAOtgC,OACR,GAAOuoC,MACnBhI,GAAY,GAAOA,UACR,GAAOiI,QAEpB,CAlBA,CAAc,CACZ7B,SAAU,SACVpR,KAAM,aACNmQ,KAAM,eACNqB,QAAS,CAAC,KAAM,MAChBE,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEE,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDE,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvHE,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SOAtF,IAAMmB,GAA8B7vD,GAA6CA,EAAM8vD,UAOjFC,GAAsF1rD,GACjG,CAACwrD,KACAG,IACC,IAAMC,EAAsC,MAAvBD,EAAUF,UAAoBE,EAAUF,UAAUvgF,OAAS,EAAI,EACpF,MAAO,CACLugF,UAAWE,EAAUF,UACrBI,aAAcF,EAAUE,aACxBD,eACAE,eAAgB,EACjB,IAIQC,GAAqDA,CAChEpwD,EACAqwD,EACAC,EACAhlC,IAEIA,EACKykC,GAAsC/vD,GAExC6vD,GAA2B7vD,GAGvBuwD,GAAqDA,CAChEvwD,EACAqwD,EACA/kC,IAEIA,EACKykC,GAAsC/vD,GAExC6vD,GAA2B7vD,GCnD7B,SAASwwD,GAAyBzhE,GACvC,GAAItgB,MAAMkH,QAAQoZ,IAAmB,IAAbA,EAAExf,OAAc,CACtC,IAAOkV,EAAKpR,GAAO0b,EACnB,GAAI0vB,GAAoBh6B,IAAQg6B,GAAoBprC,GAClD,OAAO,CAEX,CACA,OAAO,CACT,CAEO,SAASo9E,GACdC,EACAC,EACAC,GAEA,OAAIA,EAEKF,EAOF,CAACnuE,KAAKkC,IAAIisE,EAAe,GAAIC,EAAe,IAAKpuE,KAAKlP,IAAIq9E,EAAe,GAAIC,EAAe,IACrG,CAwBO,SAASE,GACdC,EACAF,GAEA,GAAKA,GAIqB,mBAAfE,GAIPriF,MAAMkH,QAAQm7E,IAAqC,IAAtBA,EAAWvhF,OAAc,CACxD,IACIwhF,EAAUC,GADPC,EAAaC,GAAeJ,EAGnC,GAAIryC,GAAoBwyC,GACtBF,EAAWE,OACN,GAA2B,mBAAhBA,EAEhB,OAGF,GAAIxyC,GAAoByyC,GACtBF,EAAWE,OACN,GAA2B,mBAAhBA,EAEhB,OAGF,IAAMC,EAAY,CAACJ,EAAUC,GAC7B,GAAIR,GAAyBW,GAC3B,OAAOA,CAEX,CAEF,C,0BC1EA,SAASC,GAAcrjF,GASrB,OANc,IAAVA,EACO,EAEAwU,KAAKO,MAAM,IAAI6C,KAAJ,CAAY5X,GAAOka,MAAMgC,IAAI,IAAIlI,YAAc,CAIvE,CAWA,SAASsvE,GAAUjvE,EAAgBC,EAAcC,GAM/C,IALA,IAAI8V,EAAM,IAAIzS,KAAJ,CAAYvD,GAClB5Q,EAAI,EACF9C,EAAwB,GAGvB0pB,EAAIvO,GAAGxH,IAAQ7Q,EAAI,KACxB9C,EAAO8B,KAAK4nB,EAAIrW,YAEhBqW,EAAMA,EAAI5iB,IAAI8M,GACd9Q,IAGF,OAAO9C,CACT,CCnCO,IAAM4iF,GAAmBt2D,IAAoD,IAAlDvW,EAAKpR,GAAsB2nB,GACtDu2D,EAAUC,GAAY,CAAC/sE,EAAKpR,GAOjC,OAJIoR,EAAMpR,KACPk+E,EAAUC,GAAY,CAACn+E,EAAKoR,IAGxB,CAAC8sE,EAAUC,EAAS,EAWhBC,GAAgBA,CAACC,EAAoBC,EAAwBC,KACxE,GAAIF,EAAU3nE,IAAI,GAChB,OAAO,IAAIpE,KAAJ,CAAY,GAGrB,IAAMksE,EAAaT,GAAcM,EAAU3vE,YAGrC+vE,EAAkB,IAAInsE,KAAJ,CAAY,IAAIY,IAAIsrE,GACtCE,EAAYL,EAAUjpE,IAAIqpE,GAE1BE,EAAgC,IAAfH,EAAmB,IAAO,GAK3CI,EAJiB,IAAItsE,KAAJ,CAAYpD,KAAKC,KAAKuvE,EAAUtpE,IAAIupE,GAAgBjwE,aACxEvM,IAAIo8E,GACJnmE,IAAIumE,GAE2BvmE,IAAIqmE,GAEtC,OAAOH,EAAgB,IAAIhsE,KAAJ,CAAYssE,EAAWlwE,YAAc,IAAI4D,KAAJ,CAAYpD,KAAKC,KAAKyvE,EAAWlwE,YAAY,EAsD9FmwE,GAAgB,SAC3BztE,EACApR,EACA2sC,EACA2xC,GAMG,IALHC,EAAwBz/E,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAO3B,IAAKiE,OAAOsoC,UAAUrrC,EAAMoR,IAAQu7B,EAAY,IAC9C,MAAO,CACL19B,KAAM,IAAIqD,KAAJ,CAAY,GAClBwsE,QAAS,IAAIxsE,KAAJ,CAAY,GACrBysE,QAAS,IAAIzsE,KAAJ,CAAY,IAKzB,IAGI0sE,EAHE/vE,EAAOmvE,GAAc,IAAI9rE,KAAJ,CAAYtS,GAAKkX,IAAI9F,GAAKgE,IAAIu3B,EAAY,GAAI2xC,EAAeC,GAOtFS,EADE5tE,GAAO,GAAKpR,GAAO,EACZ,IAAIsS,KAAJ,CAAY,IAGrB0sE,EAAS,IAAI1sE,KAAJ,CAAYlB,GAAKjP,IAAInC,GAAKoV,IAAI,IAEvB8B,IAAI,IAAI5E,KAAJ,CAAY0sE,GAAQ3nE,IAAIpI,IAG9C,IAAIgwE,EAAa/vE,KAAKC,KAAK6vE,EAAO9nE,IAAI9F,GAAKgE,IAAInG,GAAMP,YACjDwwE,EAAUhwE,KAAKC,KAAK,IAAImD,KAAJ,CAAYtS,GAAKkX,IAAI8nE,GAAQ5pE,IAAInG,GAAMP,YACzDywE,EAAaF,EAAaC,EAAU,EAE1C,OAAIC,EAAaxyC,EAERkyC,GAAcztE,EAAKpR,EAAK2sC,EAAW2xC,EAAeC,EAAmB,IAE1EY,EAAaxyC,IAEfuyC,EAAUl/E,EAAM,EAAIk/E,GAAWvyC,EAAYwyC,GAAcD,EACzDD,EAAaj/E,EAAM,EAAIi/E,EAAaA,GAActyC,EAAYwyC,IAGzD,CACLlwE,OACA6vE,QAASE,EAAO9nE,IAAI,IAAI5E,KAAJ,CAAY2sE,GAAY7mE,IAAInJ,IAChD8vE,QAASC,EAAO78E,IAAI,IAAImQ,KAAJ,CAAY4sE,GAAS9mE,IAAInJ,KAEjD,EAWamwE,GAAoB,SAAHroD,GAAgF,IAA3E3lB,EAAKpR,GAAkB+2B,EAAE4V,EAAS7tC,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAGw/E,IAAax/E,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,KAAAA,UAAA,GAEhF27D,EAAQvrD,KAAKlP,IAAI2sC,EAAW,IAC3B0yC,EAAQC,GAAUrB,GAAiB,CAAC7sE,EAAKpR,IAEhD,GAAIq/E,KAAYzwE,KAAY0wE,IAAW1wE,IAAU,CAC/C,IAAMtI,EACJg5E,IAAW1wE,IACP,CAACywE,KAAWjkF,MAAMuxC,EAAY,GAAGhiB,KAAK/b,MACtC,IAAIxT,MAAMuxC,EAAY,GAAGhiB,MAAM/b,KAAW0wE,GAEhD,OAAOluE,EAAMpR,EAAMsG,EAAO2N,UAAY3N,CACxC,CAEA,GAAI+4E,IAAWC,EACb,MA5HgCC,EAAC7kF,EAAeiyC,EAAmB2xC,KACrE,IAAIrvE,EAAgB,IAAIqD,KAAJ,CAAY,GAE5B0sE,EAAS,IAAI1sE,KAAJ,CAAY5X,GAEzB,IAAKskF,EAAO/oE,SAAWqoE,EAAe,CACpC,IAAMkB,EAAStwE,KAAK0F,IAAIla,GAEpB8kF,EAAS,GAEXvwE,EAAO,IAAIqD,KAAJ,CAAY,IAAIY,IAAI6qE,GAAcrjF,GAAS,GAElDskF,EAAS,IAAI1sE,KAAJ,CAAYpD,KAAKO,MAAMuvE,EAAO5pE,IAAInG,GAAMP,aAAa0J,IAAInJ,IACzDuwE,EAAS,IAElBR,EAAS,IAAI1sE,KAAJ,CAAYpD,KAAKO,MAAM/U,IAEpC,MAAqB,IAAVA,EACTskF,EAAS,IAAI1sE,KAAJ,CAAYpD,KAAKO,OAAOk9B,EAAY,GAAK,IACxC2xC,IACVU,EAAS,IAAI1sE,KAAJ,CAAYpD,KAAKO,MAAM/U,KAMlC,IAHA,IAAM+kF,EAAcvwE,KAAKO,OAAOk9B,EAAY,GAAK,GAC3Cf,EAAuB,GAEpBztC,EAAI,EAAGA,EAAIwuC,EAAWxuC,IAC7BytC,EAAMzuC,KAAK6hF,EAAO78E,IAAI,IAAImQ,KAAJ,CAAYnU,EAAIshF,GAAarnE,IAAInJ,IAAOP,YAGhE,OAAOk9B,CAAK,EA8FH2zC,CAAqBF,EAAQ1yC,EAAW2xC,GAIjD,IAAM,KAAErvE,EAAI,QAAE6vE,EAAO,QAAEC,GAAYF,GAAcQ,EAAQC,EAAQ7kB,EAAO6jB,EAAe,GAEjFh4E,EAAS03E,GAAUc,EAASC,EAAQ58E,IAAI,IAAImQ,KAAJ,CAAY,IAAK8F,IAAInJ,IAAQA,GAE3E,OAAOmC,EAAMpR,EAAMsG,EAAO2N,UAAY3N,CACxC,EChMao5E,GAAwB/yD,GAAiDA,EAAMm5B,UAAU65B,WACzFC,GAAgBjzD,GAA8CA,EAAMm5B,UAAU+5B,OAC9EC,GAAwBnzD,GAA8CA,EAAMm5B,UAAUi6B,eACtFC,GAAqBrzD,GAA0DA,EAAMm5B,UAAUm6B,QAC/FC,GAAyBvzD,GAA8CA,EAAMm5B,UAAUq6B,YACvFC,GAA2BzzD,GAAsCA,EAAMm5B,UAAUu6B,kBACjFC,GAAmB3zD,GAA6BA,EAAM5xB,QAAQwlF,UAE9DC,GAAgB7zD,GAA6BA,EAAMm5B,UAAU26B,OAC7DC,GAAoB/zD,GAAyCA,EAAMm5B,UAAU66B,WAC7EC,GAAsBj0D,GAA6BA,EAAM5xB,QAAQ8lF,aCVjEC,GAAkB,CAI7BC,MAAO,IAKPC,eAAgB,GAUhB34B,KAAM,IAQN44B,gBAAiB,IAKjBC,IAAK,IAKL/4B,KAAM,IAKN/b,KAAM,IAMN+0C,QAAS,IAKTC,UAAW,IAaXC,WAAY,KAKZC,UAAW,KAKXxnD,MAAO,KC9EIynD,GAA6B,CACxCjD,eAAe,EACf/uC,yBAAyB,EACzBguC,mBAAmB,EACnB70D,MAAO,EACP84D,YAAa,EACbC,UAAU,EACVC,aAAc,UACd15D,GAAI,EACJC,GAAI,EACJkqB,MAAM,EACNwvC,eAAe,EACf7nD,OAAO,EACPmY,YAAa,QACb2vC,UAAU,EACV13C,MAAO,OACP23C,MAAM,EACNC,UAAU,EACVC,SAAU,EACV74E,KAAM,OACN84E,OAAQlB,GAAgB10C,MCpBb61C,GAA8B,CACzC1E,mBAAmB,EACnBe,eAAe,EACf/uC,yBAAyB,EACzB7mB,MAAO,EACP+4D,UAAU,EACVE,eAAe,EACfxvC,MAAM,EACNrY,OAAO,EACPmY,YAAa,QACbiwC,aAAc,EACdN,UAAU,EACV13C,MAAO,OACPtf,OAAQ,OACRi3D,MAAM,EACNl1C,UAAW,EACXm1C,UAAU,EACV54E,KAAM,OACN84E,OAAQlB,GAAgB10C,MClBb+1C,GAA8BA,CACzCC,EACAC,KAEA,GAAKD,GAAiBC,EAGtB,OAAID,SAAAA,EAAcR,SACT,CAACS,EAAU,GAAIA,EAAU,IAE3BA,CAAS,ECNX,SAASC,GACdv4D,EACA2hB,EACA62C,GAEA,MAAuB,SAAnBA,EACKA,EAEK,MAAVx4D,EAGG0hB,GAAkB1hB,EAAQ2hB,GAAY,WAAa,cAH1D,CAIF,C,kgCCFO,IAAM82C,GAAqF,CAChGjF,kBAAmBgE,GAA2BhE,kBAC9Ce,cAAeiD,GAA2BjD,cAC1C/uC,yBAAyB,EACzB/D,aAASxsC,EACTkuC,YAAQluC,EACR8mB,GAAIy7D,GAA2BC,YAC/BG,eAAe,EACfhkF,UAAMqB,EACN4iF,SAAUL,GAA2BK,SACrC13C,MAAOq3C,GAA2Br3C,MAClC23C,KAAMN,GAA2BM,KACjCl1C,eAAW3tC,EACX4sC,WAAO5sC,EACPkK,KAAMq4E,GAA2Br4E,KACjC05C,UAAM5jD,GAGKyjF,GAAuF,CAClGlF,kBAAmB0E,GAA4B1E,kBAC/Ce,cAAe2D,GAA4B3D,cAC3C/uC,wBAAyB0yC,GAA4B1yC,wBACrD/D,aAASxsC,EACTkuC,YAAQluC,EACR8mB,GAAIm8D,GAA4BC,aAChCP,cAAeM,GAA4BN,cAC3ChkF,UAAMqB,EACN4iF,SAAUK,GAA4BL,SACtC13C,MAAO+3C,GAA4B/3C,MACnC23C,KAAMI,GAA4BJ,KAClCl1C,UAAWs1C,GAA4Bt1C,UACvCf,WAAO5sC,EACPkK,KAAM+4E,GAA4B/4E,KAClC05C,UAAM5jD,GAaK0jF,GACX1xD,GACE,CAZ8B2xD,CAChCh2D,EACA60D,KAEA,GAAmB,MAAfA,EAGJ,OAAO70D,EAAMi2D,UAAUC,UAAUrB,EAAY,EAKf3pC,KAC5B,CAACirC,EAAmB/4D,KAAuD,IAAAg5D,EACzE,GAAyB,MAArBD,EACF,OAAOA,EAET,IAAME,EAAqF,QAAxED,EAAGT,GAAyBv4D,EAAQ,YAAay4D,GAAkBt5E,aAAK,IAAA65E,EAAAA,EAAI,WAC/F,OAAAj7D,GAAAA,GAAA,GACK06D,IAAiB,IACpBt5E,KAAM85E,GAAa,IASdC,GAA2FjyD,GACtG,CALiCkyD,CAACv2D,EAA0Bu1D,IACrDv1D,EAAMi2D,UAAUO,WAAWjB,GAILrqC,KAC7B,CAACurC,EAAoBr5D,KAAwD,IAAAs5D,EAC3E,GAA0B,MAAtBD,EACF,OAAOA,EAET,IAAMJ,EAAuF,QAA1EK,EAAGf,GAAyBv4D,EAAQ,aAAc04D,GAAmBv5E,aAAK,IAAAm6E,EAAAA,EAAI,WACjG,OAAAv7D,GAAAA,GAAA,GACK26D,IAAkB,IACrBv5E,KAAM85E,GAAa,IAKZM,GAAsB32D,GAAuDA,EAAM42D,aAEnFC,GAAwDxyD,GACnE,CAACigB,GAAkBC,GAAmBa,IACtCkjB,IAGIwuB,GAAsEzyD,GAC1E,CAACsyD,GAAoBE,KACrB,CAACE,EAA6CxxB,KAC5C,GAAyB,MAArBwxB,EAGJ,OAAO39D,GAAgB29D,EAAkB5tB,YAAa5D,EAAW,EAAE,IAI1DyxB,GAAsE3yD,GACjF,CAACsyD,GAAoBE,KACrB,CAACE,EAA6CxxB,KAC5C,GAAyB,MAArBwxB,EAGJ,OAAO39D,GAAgB29D,EAAkB3tB,YAAa7D,EAAuB,GAAZA,EAAgB,IAYxE0xB,GAAgE5yD,GAC3E,CAACsyD,KAT4BC,IAC7B,GAAoB,MAAhBA,EACF,MAAO,CAAC,EAAG,GAEb,IAAM,WAAEjuB,EAAU,SAAEC,GAAaguB,EACjC,MAAO,CAACjuB,EAAYC,EAAS,IAQlBsuB,GAGgB7yD,GAAe,CAAC0xD,GAAiBkB,IAAuBzB,IAExE2B,GACX9yD,GAAe,CAACwyD,GAAiBC,GAAmBE,KAAoB,CAACzxB,EAAW4D,EAAaC,KAC/F,GAAiB,MAAb7D,GAAoC,MAAf4D,GAAsC,MAAfC,EAGhD,MAAO,CAACD,EAAaC,EAAY,IAGxBguB,GAGgB/yD,GAAe,CAACiyD,GAAkBa,IAAwB3B,IAE1E6B,GAAqFhzD,GAChG,CAAC0mB,GAAmB4rC,GAAoBG,GAAmBE,GAAmB1yC,GAAkBC,KAChG,CACEnnB,EACAw5D,EACAztB,EACAC,EACAl2C,EACAC,KAEA,IACc,YAAXiK,GAAmC,WAAXA,IACT,MAAhBw5D,GACe,MAAfztB,GACe,MAAfC,EAJF,CAQA,IAAM,GAAE/tC,EAAE,GAAEC,EAAE,WAAEqtC,EAAU,SAAEC,GAAaguB,EACzC,MAAO,CACLv7D,GAAIjC,GAAgBiC,EAAInI,EAAOA,EAAQ,GACvCoI,GAAIlC,GAAgBkC,EAAInI,EAAQA,EAAS,GACzCg2C,cACAC,cACAT,aACAC,WACAlD,WAAW,EATb,CAUC,ICnLQ4xB,GAAeA,CAAIC,EAA2Bx4C,IAAmBA,ECCjEy4C,GAAaA,CAACD,EAA2BE,EAAoBC,IAA2BA,ECU9F,SAASC,GACdC,GAEA,OAAOA,aAAa,EAAbA,EAAez+D,EACxB,CCIO,SAAS0+D,GACdC,EAAoE98D,EAEpE+8D,GACsB,IAFtB,UAAEjI,EAAY,IAAoB90D,GAG5B,wBAAE4nB,EAAyB/D,QAASm5C,GAAmBD,EAGvDE,EAAsB,IAAIl9E,IA0BhC,OAxBA+8E,EAAsBx7D,SAAQriB,IAAQ,IAAAi+E,EAE9BC,EAAwB,QAAZD,EAAGj+E,EAAKuiB,YAAI,IAAA07D,EAAAA,EAAIpI,EAClC,GAAoB,MAAhBqI,GAAgD,IAAxBA,EAAa5oF,OAAzC,CAIA,IAAM6oF,EAAkBT,GAAyB19E,GACjDk+E,EAAa77D,SAAQ,CAACtC,EAAOjnB,KAC3B,IAKIsuD,EALEg3B,EACc,MAAlBL,GAA0Bp1C,EACtB7vC,EACAgC,OAAO6pC,GAAkB5kB,EAAOg+D,EAAgB,OAChDM,EAAe15C,GAAkB5kB,EAAO/f,EAAK4kC,QAAS,GAG1DwiB,EADE42B,EAAoBzoF,IAAI6oF,GACnBJ,EAAoBh/E,IAAIo/E,GAExB,CAAC,EAEV1qF,OAAO21B,OAAO+9B,EAAM,CAAE,CAAC+2B,GAAkBE,IACzCL,EAAoBv8E,IAAI28E,EAAch3B,EAAK,GAf7C,CAgBE,IAEG5yD,MAAM8F,KAAK0jF,EAAoBt+E,SACxC,CC9BO,SAAS4+E,GACdX,GAEA,MAAO,YAAaA,GAA0C,MAAzBA,EAAcx0C,SAA4C,MAAzBw0C,EAAc/4C,OACtF,CC5BO,IAAM25C,GAA4BA,CAACn+E,EAA6BC,IACjED,IAAMC,GAGD,MAALD,GAAkB,MAALC,IAGVD,EAAE,KAAOC,EAAE,IAAMD,EAAE,KAAOC,EAAE,ICH9B,SAASm+E,GAA4Bp+E,EAAqBC,GAC/D,SAAI7L,MAAMkH,QAAQ0E,KAAM5L,MAAMkH,QAAQ2E,IAAmB,IAAbD,EAAE9K,QAA6B,IAAb+K,EAAE/K,SAIzD8K,IAAMC,CACf,CCCO,IAAMo+E,GAAyB14D,IACpC,IAAM5C,EAAS2tB,GAAkB/qB,GAEjC,MAAe,eAAX5C,EACK,QAGM,aAAXA,EACK,QAGM,YAAXA,EACK,YAGF,YAAY,ECzBRu7D,GAAuB34D,GAAqCA,EAAM44D,QAAQz0D,SAASuzD,OC8FzF,SAASmB,GACdC,GAEA,IAAMC,EAAUD,EAAQ75C,MAClB+5C,EAAcF,EAAQ34C,UACtB84C,EAAiCH,EAAQ32E,QACzCA,EAA0B,CAACI,KAAKkC,OAAOw0E,GAAU12E,KAAKlP,OAAO4lF,IACnE,MAAO,CACL14C,OAAQA,IAAMu4C,EAAQv4C,SACtBp+B,MAAO,SAAF+2E,GAAA,SAAL/2E,IAAK,OAAA+2E,EAAApqF,MAAA,KAAAqD,UAAA,QAALgQ,EAAKlM,SAAA,kBAAAijF,EAAAjjF,UAAA,EAALkM,CAAK,CAAE,MAAMA,IACbg3E,SAAUA,IAAMh3E,EAAM,GACtBi3E,SAAUA,IAAMj3E,EAAM,GACtBk3E,SAAAA,CAAUtrF,GACR,IAAMurF,EAAQn3E,EAAM,GACdvO,EAAOuO,EAAM,GACnB,OAAOm3E,GAAS1lF,EAAO7F,GAASurF,GAASvrF,GAAS6F,EAAO7F,GAAS6F,GAAQ7F,GAASurF,CACrF,EACAn5C,UAAW64C,EAAc,IAAMA,EAAY9nF,KAAK4nF,QAAWzmF,EAC3D4sC,MAAO85C,EAAWjrB,GAA8BirB,EAAQ7nF,KAAK4nF,EAAShrB,QAASz7D,EAC/E6D,IAAKA,CAACyF,EAAevN,KACnB,IAAImrF,EAAYT,EAAQn9E,GACxB,GAAiB,MAAb49E,EAAJ,CAGA,GAAIT,EAAQ34C,WAAR24C,MAAqB1qF,GAAAA,EAAS4lD,SAAU,CAC1C,IAAMnQ,EAAYi1C,EAAQ34C,YAC1B,OAAQ/xC,EAAQ4lD,UACd,IAAK,SACHulC,GAAa11C,EAAY,EACzB,MACF,IAAK,MACH01C,GAAa11C,EAMnB,CACA,OAAO01C,CAfP,CAegB,EAGtB,CAgCO,SAASC,GACdj8C,EACAk8C,EACA/D,GAEA,GAAqB,mBAAVn4C,EACT,OAAOs7C,GAAuBt7C,EAAM8T,OAAO9Q,OAAOk5C,GAAYt3E,MAAMuzE,IAEtE,GAAa,MAATn4C,EAAJ,CAGA,IAAMm8C,EAnGR,SACE75C,GAEA,GAAIA,KAAiB85C,EAEnB,OAAOA,EAAS95C,KAElB,IAAM7uC,EAAO,QAAHK,OAAW6oB,GAAW2lB,IAChC,OAAI7uC,KAAQ2oF,EAEHA,EAAS3oF,UAFlB,CAKF,CAsFqE4oF,CAAmBr8C,GACtF,GAAuB,MAAnBm8C,EAIJ,OADAA,EAAgBn5C,OAAOk5C,GAAYt3E,MAAMuzE,GAClCmD,GAAuBa,EAN9B,CAOF,CCpLO,IAAMG,GAAuBA,CAClCh6C,EACA45C,KAEA,GAAkB,MAAdA,EAAJ,CAGA,GACO,WADC55C,EACN,CAME,IAAK2wC,GAAyBiJ,GAAa,CAEzC,IADA,IAAIh1E,EAAyBpR,EACpB7B,EAAI,EAAGA,EAAIioF,EAAWlqF,OAAQiC,IAAK,CAC1C,IAAMzD,EAAQ0rF,EAAWjoF,GACpBitC,GAAoB1wC,WAGbsE,IAARoS,GAAqB1W,EAAQ0W,KAC/BA,EAAM1W,SAEIsE,IAARgB,GAAqBtF,EAAQsF,KAC/BA,EAAMtF,GAEV,CACA,YAAYsE,IAARoS,QAA6BpS,IAARgB,EAChB,CAACoR,EAAKpR,QAEf,CACF,CACA,OAAOomF,CACT,CAEE,OAAOA,CA9BX,CA+BA,E,kgCC8CK,IAAMK,GAAmC,CAAC,EAAG,QAWvCC,GAA+B,CAC1CnJ,mBAAmB,EACnBe,eAAe,EACf/uC,yBAAyB,EACzB7mB,MAAO,EACP8iB,aAASxsC,EACTkuC,YAAQluC,EACR8gB,OAAQ,GACRqyB,MAAM,EACNrsB,GAAI,EACJ67D,eAAe,EACflV,SAAU,cACVka,WAAY,EACZz0C,QAAQ,EACRv0C,UAAMqB,EACNizC,YAAa,SACbrmB,QAAS,CAAE6F,KAAM,EAAGuY,MAAO,GAC3B43C,UAAU,EACV13C,MAAO,OACP23C,MAAM,EACNl1C,UAAW,EACXi6C,mBAAe5nF,EACf4sC,WAAO5sC,EACPkK,KAAM,WACN05C,UAAM5jD,GAGK6nF,GAAgCA,CAACl6D,EAA0B03D,IAC/D13D,EAAM2kB,cAAcC,MAAM8yC,GAGtByC,GAAsBA,CAACn6D,EAA0B03D,KAC5D,IAAMj4C,EAAOy6C,GAA8Bl6D,EAAO03D,GAClD,OAAY,MAARj4C,EACKs6C,GAEFt6C,CAAI,EAQA26C,GAA+B,CAC1CxJ,mBAAmB,EACnBe,eAAe,EACf/uC,yBAAyB,EACzB7mB,MAAO,EACP8iB,aAASxsC,EACTkuC,OAAQu5C,GACRt0C,MAAM,EACNrsB,GAAI,EACJ67D,eAAe,EACflV,SAAU,cACVka,WAAY,EACZz0C,QAAQ,EACRv0C,UAAMqB,EACNizC,YAAa,OACbrmB,QAAS,CAAE8F,IAAK,EAAGuY,OAAQ,GAC3B23C,UAAU,EACV13C,MAAO,OACP23C,MAAM,EACNl1C,UAAW,EACXi6C,mBAAe5nF,EACf4sC,WAAO5sC,EACPkK,KAAM,SACN05C,UAAM5jD,EACN6gB,MnJjIkC,ImJoIvBmnE,GAAgCA,CAACr6D,EAA0B03D,IAC/D13D,EAAM2kB,cAAcI,MAAM2yC,GAGtB4C,GAAsBA,CAACt6D,EAA0B03D,KAC5D,IAAMj4C,EAAO46C,GAA8Br6D,EAAO03D,GAClD,OAAY,MAARj4C,EACK26C,GAEF36C,CAAI,EAGA86C,GAA+B,CAC1Ch6C,OAAQ,CAAC,EAAG,QACZy0C,eAAe,EACfC,UAAU,EACVrE,mBAAmB,EACnBhuC,yBAAyB,EACzB/D,aAASxsC,EACT8mB,GAAI,EACJnoB,KAAM,GACNmR,MAAO,CAAC,GAAI,IACZo7B,MAAO,OACPhhC,KAAM,SACN05C,KAAM,IAGKukC,GAAsBA,CAACx6D,EAA0B03D,KAC5D,IAAMj4C,EAAOzf,EAAM2kB,cAAc81C,MAAM/C,GACvC,OAAY,MAARj4C,EACK86C,GAEF96C,CAAI,EAGAi7C,GAAiBA,CAAC16D,EAA0B+e,EAAwB24C,KAC/E,OAAQ34C,GACN,IAAK,QACH,OAAOo7C,GAAoBn6D,EAAO03D,GAEpC,IAAK,QACH,OAAO4C,GAAoBt6D,EAAO03D,GAEpC,IAAK,QACH,OAAO8C,GAAoBx6D,EAAO03D,GAEpC,IAAK,YACH,OAAO3B,GAAgB/1D,EAAO03D,GAEhC,IAAK,aACH,OAAOpB,GAAiBt2D,EAAO03D,GAEjC,QACE,MAAM,IAAIj7E,MAAM,yBAADpL,OAA0B0tC,IAC7C,EA2BW47C,GAA+BA,CAC1C36D,EACA+e,EACA24C,KAEA,OAAQ34C,GACN,IAAK,QACH,OAAOo7C,GAAoBn6D,EAAO03D,GAEpC,IAAK,QACH,OAAO4C,GAAoBt6D,EAAO03D,GAEpC,IAAK,YACH,OAAO3B,GAAgB/1D,EAAO03D,GAEhC,IAAK,aACH,OAAOpB,GAAiBt2D,EAAO03D,GAEjC,QACE,MAAM,IAAIj7E,MAAM,yBAADpL,OAA0B0tC,IAC7C,EAOW67C,GAAgB56D,GAC3BA,EAAM66D,eAAeC,eAAe15E,MAAKnH,GAAsB,QAAdA,EAAKsC,QACtDyjB,EAAM66D,eAAeE,WAAW35E,MAAKnH,GAAsB,cAAdA,EAAKsC,OAS7C,SAASy+E,GAAkBj8C,EAAwB24C,GACxD,OAAQz9E,IACN,OAAQ8kC,GACN,IAAK,QAEH,MAAO,YAAa9kC,GAAQA,EAAKghF,UAAYvD,EAC/C,IAAK,QACH,MAAO,YAAaz9E,GAAQA,EAAKihF,UAAYxD,EAC/C,IAAK,QACH,MAAO,YAAaz9E,GAAQA,EAAKkhF,UAAYzD,EAC/C,IAAK,YACH,MAAO,gBAAiBz9E,GAAQA,EAAK46E,cAAgB6C,EACvD,IAAK,aACH,MAAO,iBAAkBz9E,GAAQA,EAAKs7E,eAAiBmC,EACzD,QACE,OAAO,EACX,CAEJ,CAGO,IAAM0D,GACXp7D,GACkDA,EAAM66D,eAAeC,eAEnEO,GAImDh3D,GAAe,CAACizD,GAAcE,IAAawD,IAEvFM,GAAgCA,CAC3CT,EACApF,EACA8F,IAEAV,EAAenlF,OAAO6lF,GAAe7lF,QAAOuE,IACN,KAAhCw7E,aAAY,EAAZA,EAAcT,iBAGV/6E,EAAKurC,OAGJg2C,GAIwCn3D,GACnD,CAAC+2D,GAAgCV,GAAgBW,IACjDC,GACA,CACEh5D,eAAgB,CACdpB,oBAAqBu3D,MAKdgD,GAIwCp3D,GACnD,CAACm3D,KACAV,GACQA,EAAeplF,QAAOuE,GAAsB,SAAdA,EAAKsC,MAAiC,QAAdtC,EAAKsC,OAAgB7G,OAAO6iF,MAIhFmD,GACXZ,GAEAA,EAAeplF,QAAOuE,KAAU,YAAaA,SAA0B5H,IAAjB4H,EAAKmpC,UAEvDu4C,GAIsCt3D,GAC1C,CAACm3D,IACDE,IAGWE,GAA6Bd,GACxCA,EACG5kF,KAAI+D,GAAQA,EAAKuiB,OACjB9mB,OAAOmH,SACP2nB,KAAK,GAQGq3D,GAIIx3D,GAAe,CAACm3D,IAA+BI,GAA2B,CACzFt5D,eAAgB,CACdpB,oBAAqBu3D,MAIZqD,GAAuBA,CAClCC,EAA6B/gE,KAEf,IADd,UAAE80D,EAAY,GAAE,eAAEK,EAAc,aAAEF,GAA8Bj1D,EAEhE,OAAI+gE,EAAmBxsF,OAAS,EAgBvBwsF,EAEFjM,EAAU3+E,MAAMg/E,EAAgBF,EAAe,EAAE,EAU7C+L,GAKI33D,GACf,CAACw3D,GAAmCzL,IACpC0L,IAGWG,GAAuBA,CAClCz/D,EACAi5D,EACAviF,IAE6B,OAAzBuiF,aAAY,EAAZA,EAAc52C,SACTriB,EAAKtmB,KAAI+D,IAAQ,CAAGlM,MAAO6wC,GAAkB3kC,EAAMw7E,EAAa52C,aAErE3rC,EAAM3D,OAAS,EACV2D,EACJgD,KAAI+D,GAAQA,EAAK4kC,UACjBq9C,SAAQr9C,GAAWriB,EAAKtmB,KAAI8jB,IAAS,CAAGjsB,MAAO6wC,GAAkB5kB,EAAO6kB,SAEtEriB,EAAKtmB,KAAI8jB,IAAS,CAAGjsB,MAAOisB,MASxBmiE,GAKW93D,GACtB,CAAC23D,GAAqBtB,GAAgBc,IACtCS,IAGK,SAASG,GAA8Br9C,EAAwBs9C,GACpE,OAAQt9C,GACN,IAAK,QACH,MAA8B,MAAvBs9C,EAASC,UAClB,IAAK,QACH,MAA8B,MAAvBD,EAASC,UAClB,QACE,OAAO,EAEb,CAgBA,SAASC,GAAW9vE,GAClB,GAAIuM,GAAWvM,IAAQA,aAAezd,KAAM,CAC1C,IAAM+U,EAAI3N,OAAOqW,GACjB,GAAIgyB,GAAoB16B,GACtB,OAAOA,CAEX,CAEF,CAEA,SAASy4E,GAAW/vE,GAClB,GAAIhe,MAAMkH,QAAQ8W,GAAM,CACtB,IAAMgwE,EAAU,CAACF,GAAW9vE,EAAI,IAAK8vE,GAAW9vE,EAAI,KACpD,OAAI+jE,GAAyBiM,GACpBA,OAET,CACF,CACA,IAAM14E,EAAIw4E,GAAW9vE,GACrB,GAAS,MAAL1I,EAGJ,MAAO,CAACA,EAAGA,EACb,CAEA,SAAS24E,GAAiBlgE,GACxB,OAAOA,EAAKtmB,IAAIqmF,IAAY7mF,OAAO0kB,GACrC,CAuCO,IAAMuiE,GAAqB38D,IAChC,IAAM+e,EAAW25C,GAAsB14D,GACjC03D,EAASiB,GAAoB34D,GACnC,OAAO26D,GAA6B36D,EAAO+e,EAAU24C,EAAO,EAGjDkF,GAAmFv4D,GAC9F,CAACs4D,KACAl9C,GAAuEA,aAAI,EAAJA,EAAMZ,UAGnEg+C,GAKex4D,GAC1B,CAACo3D,GAAqCrL,GAAoDuM,IAC1F9E,IAGWiF,GAAqBA,CAChCC,EACA7pF,EACA8pF,EACAtJ,KAEA,IACMuJ,EAA6E/pF,EAAMwlB,QACvF,CAACoE,EAA6D7iB,KAC5D,GAAoB,MAAhBA,EAAKmpC,QACP,OAAOtmB,EAET,IAAIvhB,EAAQuhB,EAAI7iB,EAAKmpC,SAMrB,OALa,MAAT7nC,IACFA,EAAQ,IAEVA,EAAM/K,KAAKyJ,GACX6iB,EAAI7iB,EAAKmpC,SAAW7nC,EACbuhB,CAAG,GAZqE,CAAC,GAiBpF,OAAOnvB,OAAOuvF,YACZvvF,OAAOmX,QAAQm4E,GAAY/mF,KAAIk0B,IAAsD,IAApDgZ,EAASy3C,GAAezwD,EACjD+yD,EAAwBzJ,EAAoB,IAAImH,GAAgBvzE,UAAYuzE,EAC5Eh5C,EAAWs7C,EAAsBjnF,IAAIyhF,IAC3C,MAAO,CACLv0C,EACA,CAEEE,YAAa1B,GAAem7C,EAAel7C,EAAUm7C,GACrDnC,eAAgBsC,GAEnB,IAEJ,EAQUC,GAKqB/4D,GAChC,CAACw4D,GAA4BpB,GAAqClI,GAAuBE,IACzFqJ,IAGWO,GAA6BA,CACxCl6C,EAAuCH,EAEvCjE,EACAu+C,KAC6B,IAH7B,eAAEnN,EAAc,aAAEF,GAA8BjtC,EAIhD,GAAgC,MAA5Bs6C,GAIa,UAAbv+C,EAAJ,CAIA,IAAMw+C,EAAsBr6C,GAAuBC,EAAagtC,EAAgBF,GAChF,GAA2B,MAAvBsN,GAA0D,IAA3BA,EAAoB,IAAuC,IAA3BA,EAAoB,GAGvF,OAAOA,CALP,CAK0B,EAGtBC,GACJn5D,GAAe,CAACq2D,KAAiBjF,GAAgBA,EAAa7E,oBAEnD6M,GAAuBhI,IAA8C,IAAAiI,EAChF,GAAoB,MAAhBjI,KAA0B,WAAYA,GACxC,OAAOqE,GAGT,GAA2B,MAAvBrE,EAAal1C,OACf,OAAOk1C,EAAal1C,OAEtB,GAAI,UAAWk1C,GAAsC,MAAtBA,EAAax2C,MAAe,CACzD,GAA0B,WAAtBw2C,EAAal5E,KAAmB,CAClC,IAAMohF,EAAYjB,GAAiBjH,EAAax2C,OAChD,MAAO,CAAC18B,KAAKkC,OAAOk5E,GAAYp7E,KAAKlP,OAAOsqF,GAC9C,CACA,GAA0B,aAAtBlI,EAAal5E,KACf,OAAOk5E,EAAax2C,MAAM/oC,IAAInB,OAElC,CACA,OAA2B,QAA3B2oF,EAAOjI,aAAY,EAAZA,EAAcl1C,cAAM,IAAAm9C,EAAAA,EAAI5D,EAAoB,EAGxC8D,GACXv5D,GAAe,CAACq2D,IAAiB+C,IAetBI,GAImBx5D,GAC9B,CAACu5D,GAAwBJ,IACzB3M,IAGWiN,GAKmBz5D,GAC9B,CAAC+4D,GAAmBvN,GAA4ByH,GAAcuG,IAC9DR,GACA,CACE/6D,eAAgB,CACdpB,oBAAqBs3D,MAKduF,GAA6B/9D,GAA6CA,EAAMg+D,UAiBhFC,GAAe,WAEG,QAAAzlE,EAAArmB,UAAA5C,OAD1B2uF,EAAO,IAAAzvF,MAAA+pB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPylE,EAAOzlE,GAAAtmB,UAAAsmB,GAEV,IAAM0lE,EAAaD,EAAQxoF,OAAOmH,SAClC,GAA0B,IAAtBshF,EAAW5uF,OAAf,CAGA,IAAMouF,EAAYQ,EAAW35D,OAG7B,MAAO,CAFKjiB,KAAKkC,OAAOk5E,GACZp7E,KAAKlP,OAAOsqF,GAHxB,CAKF,EAEaS,GAA+DA,CAC1E5hE,EACAi5D,EACAviF,EACA8qF,EACAj/C,KAEA,IAAIs/C,EAA8BC,EAqClC,GApCIprF,EAAM3D,OAAS,GACjBitB,EAAKF,SAAQtC,IACX9mB,EAAMopB,SAAQriB,IAAQ,IAAAskF,EAAAC,EACdC,EAAsC,QAArBF,EAAGP,EAAU/jF,EAAKkf,WAAG,IAAAolE,OAAA,EAAlBA,EAAoB7oF,QAAO2mF,GACnDD,GAA8Br9C,EAAUs9C,KAEpCqC,EAAiB9/C,GAAkB5kB,EAA2B,QAAtBwkE,EAAE/I,EAAa52C,eAAO,IAAA2/C,EAAAA,EAAIvkF,EAAK4kC,SACvE8/C,EA3OP,SACL3kE,EACA4kE,EACAH,GAEA,OAAKA,GAA6C,iBAAjBG,GAA6B/lE,GAAM+lE,GAC3D,GAGJH,EAAkBlvF,OAIhBmtF,GACL+B,EAAkBvC,SAAQ2C,IACxB,IACIC,EAAUC,EADRC,EAAapgD,GAAkB5kB,EAAO6kE,EAAGhgD,SAQ/C,GALIpwC,MAAMkH,QAAQqpF,IACfF,EAAUC,GAAaC,EAExBF,EAAWC,EAAYC,EAEpBvgD,GAAoBqgD,IAAcrgD,GAAoBsgD,GAG3D,MAAO,CAACH,EAAeE,EAAUF,EAAeG,EAAU,KAhBrD,EAmBX,CA8M4BE,CAAwBjlE,EAAO0kE,EAAgBD,GACnE,GAAIE,EAAYpvF,QAAU,EAAG,CAC3B,IAAM2vF,EAAa38E,KAAKkC,OAAOk6E,GACzBQ,EAAa58E,KAAKlP,OAAOsrF,IACf,MAAZN,GAAoBa,EAAab,KACnCA,EAAWa,IAEG,MAAZZ,GAAoBa,EAAab,KACnCA,EAAWa,EAEf,CACA,IAAMC,EAA4C5C,GAAWkC,GACtC,MAAnBU,IACFf,EAAuB,MAAZA,EAAmBe,EAAgB,GAAK78E,KAAKkC,IAAI45E,EAAUe,EAAgB,IACtFd,EAAuB,MAAZA,EAAmBc,EAAgB,GAAK78E,KAAKlP,IAAIirF,EAAUc,EAAgB,IACxF,GACA,IAGuB,OAAzB3J,aAAY,EAAZA,EAAc52C,UAChBriB,EAAKF,SAAQriB,IACX,IAAMmlF,EAA4C5C,GAAW59C,GAAkB3kC,EAAMw7E,EAAa52C,UAC3E,MAAnBugD,IACFf,EAAuB,MAAZA,EAAmBe,EAAgB,GAAK78E,KAAKkC,IAAI45E,EAAUe,EAAgB,IACtFd,EAAuB,MAAZA,EAAmBc,EAAgB,GAAK78E,KAAKlP,IAAIirF,EAAUc,EAAgB,IACxF,IAIA3gD,GAAoB4/C,IAAa5/C,GAAoB6/C,GACvD,MAAO,CAACD,EAAUC,EAEJ,EAGZe,GAK0Bh7D,GAC9B,CACE23D,GACAtB,GACAiB,GACAoC,GACAzG,IAEF8G,GACA,CACE97D,eAAgB,CACdpB,oBAAqBs3D,MAK3B,SAAS8G,GAAmCrlF,GAC1C,IAAM,MAAElM,GAAUkM,EAClB,GAAI+e,GAAWjrB,IAAUA,aAAiBiB,KACxC,OAAOjB,CAGX,CAEA,IAsBawxF,GAAuBv/D,GAClCA,EAAMw/D,kBAAkBC,KAEbC,GAA0BA,CACrCC,EACA5gD,EACA24C,IAEOiI,EACJjqF,QAAOkqF,GAAwB,iBAAlBA,EAAGC,aAChBnqF,QAAOkqF,GACW,UAAb7gD,EACK6gD,EAAG3E,UAAYvD,EAEjBkI,EAAG1E,UAAYxD,IAIfoI,GAI8Bz7D,GACzC,CAACk7D,GAAqBjI,GAAcE,IACpCkI,IAGWK,GAAwB//D,GACnCA,EAAMw/D,kBAAkBQ,MAEbC,GAI+B57D,GAC1C,CAAC07D,GAAsBzI,GAAcE,IACrCkI,IAGWQ,GAAwBlgE,GACnCA,EAAMw/D,kBAAkBW,MAEbC,GAI+B/7D,GAC1C,CAAC67D,GAAsB5I,GAAcE,IACrCkI,IAGWW,GAAoBA,CAC/BZ,EACA1gD,KAEA,GAAY,MAAR0gD,EAAJ,CAGA,IAAMa,EAAY5D,GAAiB+C,EAAKvpF,KAAIqqF,GAAqB,UAAbxhD,EAAuBwhD,EAAI9sF,EAAI8sF,EAAI3pF,KACvF,GAAyB,IAArB0pF,EAAU/wF,OAGd,MAAO,CAACgT,KAAKkC,OAAO67E,GAAY/9E,KAAKlP,OAAOitF,GAL5C,CAKuD,EAGnDE,GAA4Bn8D,GAAey7D,GAA2BxI,GAAc+I,IAE7EI,GAAqBA,CAChCT,EACAjhD,KAEA,GAAa,MAATihD,EAAJ,CAGA,IAAMM,EAAY5D,GAChBsD,EAAM9D,SAAQxgC,GAAQ,CAAc,UAAb3c,EAAuB2c,EAAKlmC,GAAKkmC,EAAKjmC,GAAiB,UAAbspB,EAAuB2c,EAAKztC,GAAKytC,EAAKhmC,OAEzG,GAAyB,IAArB4qE,EAAU/wF,OAGd,MAAO,CAACgT,KAAKkC,OAAO67E,GAAY/9E,KAAKlP,OAAOitF,GAP5C,CAOuD,EAGnDI,GAA6Br8D,GAAe,CAAC47D,GAA4B3I,IAAemJ,IAwBvF,IAAME,GAAqBA,CAChCR,EACAphD,KAEA,GAAa,MAATohD,EAAJ,CAGA,IAAMG,EAAmCH,EAAMjE,SAAQ1gC,GACxC,UAAbzc,EA9BJ,SAA6Byc,GAAoD,IAAAolC,EAC/E,GAAc,MAAVplC,EAAK/nD,EACP,OAAOipF,GAAiB,CAAClhC,EAAK/nD,IAEhC,IAAMotF,EAAyF,QAAfD,EAAGplC,EAAKslC,eAAO,IAAAF,OAAA,EAAZA,EAAc1qF,KAAIkR,GAAKA,EAAE3T,IAC5G,OAA0B,MAAtBotF,GAA4D,IAA9BA,EAAmBtxF,OAC5C,GAEFmtF,GAAiBmE,EAC1B,CAqB2BE,CAAoBvlC,GAnB/C,SAA6BA,GAAoD,IAAAwlC,EAC/E,GAAc,MAAVxlC,EAAK5kD,EACP,OAAO8lF,GAAiB,CAAClhC,EAAK5kD,IAEhC,IAAMiqF,EAAyF,QAAfG,EAAGxlC,EAAKslC,eAAO,IAAAE,OAAA,EAAZA,EAAc9qF,KAAIkR,GAAKA,EAAExQ,IAC5G,OAA0B,MAAtBiqF,GAA4D,IAA9BA,EAAmBtxF,OAC5C,GAEFmtF,GAAiBmE,EAC1B,CAUuDI,CAAoBzlC,KAEzE,GAAyB,IAArB8kC,EAAU/wF,OAGd,MAAO,CAACgT,KAAKkC,OAAO67E,GAAY/9E,KAAKlP,OAAOitF,GAP5C,CAOuD,EAGnDY,GAA6B78D,GAAe,CAAC+7D,GAA4B9I,IAAeqJ,IAExFQ,GAAgC98D,GACpCm8D,GACAU,GACAR,IACA,CAACU,EAAYC,EAAaC,IACjBrD,GAAamD,EAAYE,EAAaD,KAIpCE,GAAyBA,CACpC9L,EACA+L,EACAlE,EACAC,EACAkE,EACAC,EACAtkE,EACA2hB,IAEgC,MAA5Bu+C,EAEKA,ErBp3BJ,SACLxM,EACA6Q,EACA/Q,GAEA,GAAKA,GAAmC,MAAd+Q,EAA1B,CAIA,GAA0B,mBAAf7Q,GAA2C,MAAd6Q,EACtC,IACE,IAAMjzF,EAASoiF,EAAW6Q,EAAY/Q,GACtC,GAAIJ,GAAyB9hF,GAC3B,OAAO+hF,GAAa/hF,EAAQizF,EAAY/Q,EAE5C,CAAE,MAAA3pB,GACA,CAGJ,GAAIx4D,MAAMkH,QAAQm7E,IAAqC,IAAtBA,EAAWvhF,OAAc,CACxD,IACIwhF,EAAUC,GADPC,EAAaC,GAAeJ,EAGnC,GAAoB,SAAhBG,EACgB,MAAd0Q,IACF5Q,EAAWxuE,KAAKkC,OAAOk9E,SAEpB,GAAI5oE,GAASk4D,GAClBF,EAAWE,OACN,GAA2B,mBAAhBA,EAChB,IACoB,MAAd0Q,IACF5Q,EAAWE,EAAY0Q,aAAU,EAAVA,EAAa,IAExC,CAAE,MAAArR,GACA,MAEG,GAA2B,iBAAhBW,GAA4BxtC,GAAc/kC,KAAKuyE,GAAc,CAC7E,IAAMzhD,EAAQiU,GAAcg2B,KAAKwX,GACjC,GAAa,MAATzhD,GAA6B,MAAZA,EAAM,IAA4B,MAAdmyD,EACvC5Q,OAAW1+E,MACN,CACL,IAAMtE,GAASyhC,EAAM,GACrBuhD,EAAW4Q,EAAW,GAAK5zF,CAC7B,CACF,MACEgjF,EAAW4Q,aAAU,EAAVA,EAAa,GAG1B,GAAoB,SAAhBzQ,EACgB,MAAdyQ,IACF3Q,EAAWzuE,KAAKlP,OAAOsuF,SAEpB,GAAI5oE,GAASm4D,GAClBF,EAAWE,OACN,GAA2B,mBAAhBA,EAChB,IACoB,MAAdyQ,IACF3Q,EAAWE,EAAYyQ,aAAU,EAAVA,EAAa,IAExC,CAAE,MAAAC,GACA,MAEG,GAA2B,iBAAhB1Q,GAA4BxtC,GAAchlC,KAAKwyE,GAAc,CAC7E,IAAM1hD,EAAQkU,GAAc+1B,KAAKyX,GACjC,GAAa,MAAT1hD,GAA6B,MAAZA,EAAM,IAA4B,MAAdmyD,EACvC3Q,OAAW3+E,MACN,CACL,IAAMtE,GAASyhC,EAAM,GACrBwhD,EAAW2Q,EAAW,GAAK5zF,CAC7B,CACF,MACEijF,EAAW2Q,aAAU,EAAVA,EAAa,GAG1B,IAAMxQ,EAAY,CAACJ,EAAUC,GAC7B,GAAIR,GAAyBW,GAC3B,OAAkB,MAAdwQ,EACKxQ,EAEFV,GAAaU,EAAWwQ,EAAY/Q,EAE/C,CA1EA,CA4EF,CqB0yBSiR,CAAyBL,EANlB,aAAXpkE,GAAsC,UAAb2hB,GAAqC,eAAX3hB,GAAwC,UAAb2hB,EAG7Ek/C,GAAaV,EAAqBmE,EAAyBD,GAC3DxD,GAAayD,EAAyBD,GAEuBhM,EAAa7E,mBAGnEkR,GAKmBz9D,GAC9B,CACEq2D,GACAkD,GACAC,GACAC,GACAuB,GACA8B,GACAp2C,GACAusC,IAEFiK,GACA,CACEj/D,eAAgB,CACdpB,oBAAqBs3D,MAUrBuJ,GAA6B,CAAC,EAAG,GAE1BC,GAAoBA,CAC/BvM,EACAr4D,EACA2/D,EACAkF,EACAjF,EACAj+C,EACAmjD,KAEA,GAAqB,MAAhBzM,GAAyC,MAAjBsH,GAAkD,IAAzBA,EAAcxtF,aAAqC8C,IAApB6vF,EAArF,CAGA,IAGsCC,GAHhC,QAAEtjD,EAAO,KAAEtiC,GAASk5E,EACpB31C,EAAgBhB,GAAkB1hB,EAAQ2hB,GAEhD,OAAIe,GAA4B,MAAXjB,EACZ18B,KAAM,EAAwB,QAAvBggF,EAAEpF,aAAa,EAAbA,EAAextF,cAAM,IAAA4yF,EAAAA,EAAI,GAG9B,aAAT5lF,EAvO8B6lF,EAClCC,EACA5M,EACA31C,KAEA,IAAMC,EAAoBsiD,EAAgBnsF,IAAIopF,IAAoC5pF,QAAOqZ,GAAU,MAALA,IAC9F,OACE+wB,IACyB,MAAxB21C,EAAa52C,SAAoB42C,EAAa7yC,yBAA2BnpB,GAAasmB,IAMhF59B,KAAM,EAAGkgF,EAAgB9yF,QAE9BkmF,EAAa7yC,wBACR7C,EAEFtxC,MAAM8F,KAAK,IAAIgB,IAAIwqC,GAAmB,EAqNpCqiD,CAA4BH,EAAkBxM,EAAc31C,GAG7C,WAApBk9C,EACK+E,GAEFG,CAfP,CAesB,EAGXI,GAKuCj+D,GAClD,CACEq2D,GACA3vC,GACAixC,GACAG,GACA5I,GACA+D,GACAwK,IAEFE,IAOK,IAAMO,GAAuBA,CAClCC,EACAC,EACAC,KAEA,GAAkB,MAAdF,EAAJ,CAGA,IAAM,MAAEjlD,EAAK,KAAEhhC,GAASimF,EACxB,GAAc,SAAVjlD,EACF,MACW,aAAThhC,GACAmmF,IACCA,EAAUl3E,QAAQ,cAAgB,GACjCk3E,EAAUl3E,QAAQ,cAAgB,GACjCk3E,EAAUl3E,QAAQ,kBAAoB,IAAMi3E,GAExC,QAEI,aAATlmF,EACK,OAGF,SAET,GAAqB,iBAAVghC,EAAoB,CAC7B,IAAMvsC,EAAO,QAAHK,OAAW6oB,GAAWqjB,IAEhC,OAhCJ,SAA8BvsC,GAC5B,OAAOA,KAAQ2oF,CACjB,CA8BWgJ,CAAqB3xF,GAAQA,EAAO,OAC7C,CAtBA,CAuBgB,EAGL4xF,GAIkBv+D,GAAe,CAACq2D,GAAgBE,GAAcjH,IAAkB4O,IAExF,SAASM,GACdpjD,EACAI,EACA45C,EACA/D,GAEA,GAAkB,MAAd+D,GAAmC,MAAb/D,EAI1B,MAA0B,mBAAfj2C,EAAKlC,MACPi8C,GAAqB/5C,EAAKlC,MAAOk8C,EAAY/D,GAE/C8D,GAAqB35C,EAAe45C,EAAY/D,EACzD,CAEO,IAAMoN,GAAmBA,CAC9BrJ,EACAhE,EACA51C,KAEA,IAAM2hD,EAA+B/D,GAAoBhI,GAEzD,GAAsB,SAAlB51C,GAA8C,WAAlBA,EAIhC,OACkB,MAAhB41C,GACAA,EAAaz1C,WACbvxC,MAAMkH,QAAQ6rF,KACW,SAAxBA,EAAiB,IAAyC,SAAxBA,EAAiB,KACpDhR,GAAyBiJ,GAElBhH,GAAkBgH,EAAYhE,EAAaz1C,UAAWy1C,EAAa9D,eAI1D,MAAhB8D,GACAA,EAAaz1C,WACS,WAAtBy1C,EAAal5E,MACbi0E,GAAyBiJ,GnBn8BW,SAAHz2C,EAA8BhD,GAA4C,IAArEv7B,EAAKpR,GAAkB2vC,EAAqB2uC,IAAax/E,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,KAAAA,UAAA,IAE1FugF,EAAQC,GAAUrB,GAAiB,CAAC7sE,EAAKpR,IAEhD,GAAIq/E,KAAW,KAAaC,IAAW1wE,IACrC,MAAO,CAACwC,EAAKpR,GAGf,GAAIq/E,IAAWC,EACb,MAAO,CAACD,GAGV,IAAM5kB,EAAQvrD,KAAKlP,IAAI2sC,EAAW,GAC5B19B,EAAOmvE,GAAc,IAAI9rE,KAAJ,CAAYgtE,GAAQpoE,IAAImoE,GAAQjqE,IAAIqlD,EAAQ,GAAI6jB,EAAe,GACtFh4E,EAAS,IAAI03E,GAAU,IAAI1rE,KAAJ,CAAY+sE,GAAS,IAAI/sE,KAAJ,CAAYgtE,GAASrwE,GAAOqwE,GAY5E,OAVsB,IAAlBhB,IAOFh4E,EAASA,EAAOzD,KAAInI,GAASwU,KAAK8E,MAAMtZ,MAGnC0W,EAAMpR,EAAMsG,EAAO2N,UAAY3N,CACxC,CmB06BWopF,CAAyBtJ,EAA4BhE,EAAaz1C,UAAWy1C,EAAa9D,oBANnG,CASgB,EAELqR,GAK4B3+D,GACvC,CAACi+D,GAAkB3H,GAA8BiI,IACjDE,IAGWG,GAAiCA,CAC5CxN,EACAl1C,EACAN,EACAlB,KAEA,GAOe,cAAbA,GACuB,YAAvB02C,aAAY,EAAZA,EAAcl5E,OACdi0E,GAAyBjwC,IACzB9xC,MAAMkH,QAAQsqC,IACdA,EAAU1wC,OAAS,EACnB,KAAA2zF,EAAAC,EACMC,EAAgB7iD,EAAO,GACvB8iD,EAA2B,QAAfH,EAAGjjD,EAAU,UAAE,IAAAijD,EAAAA,EAAI,EAC/BI,EAAgB/iD,EAAO,GACvBgjD,EAA8C,QAAlCJ,EAAGljD,EAAUA,EAAU1wC,OAAS,UAAE,IAAA4zF,EAAAA,EAAI,EACxD,MAAO,CAAC5gF,KAAKkC,IAAI2+E,EAAeC,GAAe9gF,KAAKlP,IAAIiwF,EAAeC,GACzE,CACA,OAAOhjD,CAAM,EAGFijD,GAKuCn/D,GAClD,CAACq2D,GAAgB4H,GAAkBU,GAAiB1L,IACpD2L,IASWQ,GAKap/D,GACxB83D,GACAzB,IACA,CAAC2H,EAAmC5M,KAClC,GAAKA,GAAsC,WAAtBA,EAAal5E,KAAlC,CAGA,IAAImnF,EAAgCzhF,IAC9B0hF,EAAel1F,MAAM8F,KAAKmoF,GAAiB2F,EAAgBnsF,KAAI4Q,GAAKA,EAAE/Y,UAASqM,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAClGg/E,EAAQqK,EAAa,GACrB/vF,EAAO+vF,EAAaA,EAAap0F,OAAS,GAChD,GAAa,MAAT+pF,GAAyB,MAAR1lF,EACnB,OAAOqO,IAET,IAAM2hF,EAAOhwF,EAAO0lF,EACpB,GAAa,IAATsK,EACF,OAAO3hF,IAGT,IAAK,IAAIzQ,EAAI,EAAGA,EAAImyF,EAAap0F,OAAS,EAAGiC,IAAK,CAChD,IAAM6vD,EAAOsiC,EAAanyF,GACpB25B,EAAOw4D,EAAanyF,EAAI,GAC9B,GAAY,MAAR6vD,GAAwB,MAARl2B,EAApB,CAGA,IAAM04D,EAAW14D,EAAOk2B,EACxBqiC,EAAgCnhF,KAAKkC,IAAIi/E,EAA+BG,EAFxE,CAGF,CACA,OAAOH,EAAgCE,CAtBvC,CAsB2C,IAIzCE,GAMQz/D,GACZo/D,GACA14C,GACAooC,GACA/tC,IACA,CAAC2+C,EAAaC,EAAaC,EAAaC,EAAajlE,IAA4BA,IACjF,CACEklE,EACA/mE,EACAg2D,EACAhzC,EACAnhB,KAEA,IAAKwf,GAAoB0lD,GACvB,OAAO,EAET,IAAMC,EAAwB,aAAXhnE,EAAwBgjB,EAAOjtB,OAASitB,EAAOltB,MAElE,GAAgB,QAAZ+L,EACF,OAAQklE,EAA4BC,EAAc,EAGpD,GAAgB,WAAZnlE,EAAsB,CACxB,IAAMolE,EAAMjrE,GAAgBg6D,EAAgB+Q,EAA4BC,GAClEE,EAAYH,EAA4BC,EAAc,EAC5D,OAAOE,EAAWD,GAAQC,EAAWD,GAAOD,EAAcC,CAC5D,CAEA,OAAO,CAAC,IA4BNE,GAIiClgE,GACrC81D,IA7BqHqK,CACrHxkE,EACA03D,EACApsC,KAEA,IAAMm5C,EAAgBtK,GAAoBn6D,EAAO03D,GACjD,OAAqB,MAAjB+M,GAA0D,iBAA1BA,EAAcxlE,QACzC,EAEF6kE,GAAwB9jE,EAAO,QAAS03D,EAAQpsC,EAAYm5C,EAAcxlE,QAAQ,IAsBzF,CAACwlE,EAA8BC,KAAuB,IAAAC,EAAAC,EACpD,GAAqB,MAAjBH,EACF,MAAO,CAAE3/D,KAAM,EAAGuY,MAAO,GAE3B,IAAM,QAAEpe,GAAYwlE,EACpB,MAAuB,iBAAZxlE,EACF,CAAE6F,KAAM4/D,EAAYrnD,MAAOqnD,GAE7B,CACL5/D,MAAmB,QAAb6/D,EAAC1lE,EAAQ6F,YAAI,IAAA6/D,EAAAA,EAAI,GAAKD,EAC5BrnD,OAAqB,QAAdunD,EAAC3lE,EAAQoe,aAAK,IAAAunD,EAAAA,EAAI,GAAKF,EAC/B,IAICG,GAIiCxgE,GACrCi2D,IAvCqHwK,CACrH9kE,EACA03D,EACApsC,KAEA,IAAMy5C,EAAgBzK,GAAoBt6D,EAAO03D,GACjD,OAAqB,MAAjBqN,GAA0D,iBAA1BA,EAAc9lE,QACzC,EAEF6kE,GAAwB9jE,EAAO,QAAS03D,EAAQpsC,EAAYy5C,EAAc9lE,QAAQ,IAgCzF,CAAC8lE,EAA8BL,KAAuB,IAAAM,EAAAC,EACpD,GAAqB,MAAjBF,EACF,MAAO,CAAEhgE,IAAK,EAAGuY,OAAQ,GAE3B,IAAM,QAAEre,GAAY8lE,EACpB,MAAuB,iBAAZ9lE,EACF,CAAE8F,IAAK2/D,EAAYpnD,OAAQonD,GAE7B,CACL3/D,KAAiB,QAAZigE,EAAC/lE,EAAQ8F,WAAG,IAAAigE,EAAAA,EAAI,GAAKN,EAC1BpnD,QAAuB,QAAf2nD,EAAChmE,EAAQqe,cAAM,IAAA2nD,EAAAA,EAAI,GAAKP,EACjC,IAIQQ,GAIgB7gE,GAC3B,CACE+gB,GACAm/C,GACAv9C,GACAD,GACA,CAACwwC,EAA2B4N,EAAiB75C,IAAeA,IAE9D,CACElL,EACAnhB,EACAsrB,EAAgCrG,EAEhCoH,KAC0B,IAFxBrsB,QAASurB,GAActG,EAGzB,OAAIoH,EACK,CAACd,EAAa1lB,KAAMylB,EAAgBr3B,MAAQs3B,EAAanN,OAE3D,CAAC+C,EAAOtb,KAAO7F,EAAQ6F,KAAMsb,EAAOtb,KAAOsb,EAAOltB,MAAQ+L,EAAQoe,MAAM,IAMtE+nD,GAIgB/gE,GAC3B,CACE+gB,GACA2F,GACA85C,GACA79C,GACAD,GACA,CAACwwC,EAA2B4N,EAAiB75C,IAAeA,IAE9D,CACElL,EACAhjB,EACA6B,EACAsrB,EAAgCye,EAEhC1d,KAC0B,IAFxBrsB,QAASurB,GAAcwe,EAGzB,OAAI1d,EACK,CAACf,EAAgBp3B,OAASq3B,EAAalN,OAAQkN,EAAazlB,KAEtD,eAAX3H,EACK,CAACgjB,EAAOrb,IAAMqb,EAAOjtB,OAAS8L,EAAQqe,OAAQ8C,EAAOrb,IAAM9F,EAAQ8F,KAErE,CAACqb,EAAOrb,IAAM9F,EAAQ8F,IAAKqb,EAAOrb,IAAMqb,EAAOjtB,OAAS8L,EAAQqe,OAAO,IAIrE+nD,GAAkBA,CAC7BrlE,EACA+e,EACA24C,EACApsC,KAC0B,IAAAg6C,EAC1B,OAAQvmD,GACN,IAAK,QACH,OAAOmmD,GAAkBllE,EAAO03D,EAAQpsC,GAC1C,IAAK,QACH,OAAO85C,GAAkBplE,EAAO03D,EAAQpsC,GAC1C,IAAK,QACH,OAAyC,QAAzCg6C,EAAO9K,GAAoBx6D,EAAO03D,UAAO,IAAA4N,OAAA,EAAlCA,EAAoCnjF,MAC7C,IAAK,YACH,OAAO80E,GAAqBj3D,GAC9B,IAAK,aACH,OAAOm3D,GAAsBn3D,EAAO03D,GACtC,QACE,OACJ,EAGW6N,GAKgBlhE,GAAe,CAACq2D,GAAgB2K,IAAkB7P,IAEzEgQ,GAK8CnhE,GAClD,CAACu+D,GAAqBY,IACtB3J,IAGW4L,GAKoBphE,GAC/B,CAACq2D,GAAgBkI,GAAqB4C,GAAyBD,IAC/D1C,IAOsCx+D,GACtC,CAACm3D,GAA8BuC,GAA2BzG,KA/vBpBoO,CACtCC,EACAC,EACA7mD,IAEO4mD,EACJzJ,SAAQjiF,GACA2rF,EAAoB3rF,EAAKkf,MAEjCzjB,OAAOmH,SACPnH,QAAOmL,GACCu7E,GAA8Br9C,EAAUl+B,OAwvBrD,SAASglF,GAAWxrF,EAA0BC,GAC5C,OAAID,EAAE8e,GAAK7e,EAAE6e,IACH,EAEN9e,EAAE8e,GAAK7e,EAAE6e,GACJ,EAEF,CACT,CAEA,IAAM2sE,GAAsBA,CAAIvO,EAA2BjyC,IAAsBA,EAE3EygD,GAAaA,CAACxO,EAA2ByO,EAAuBzgD,IAA6BA,EAE7F0gD,GAI8B5hE,GAClCqgB,GACAohD,GACAC,IACA,CAACG,EAAuC5gD,EAA+BC,IACrE2gD,EACGxwF,QAAO+pC,GAAQA,EAAK6F,cAAgBA,IACpC5vC,QAAO+pC,GAAQA,EAAK8F,SAAWA,IAC/BnrC,KAAKyrF,MAGNM,GAI8B9hE,GAClCygB,GACAghD,GACAC,IACA,CAACG,EAAuC5gD,EAA+BC,IACrE2gD,EACGxwF,QAAO+pC,GAAQA,EAAK6F,cAAgBA,IACpC5vC,QAAO+pC,GAAQA,EAAK8F,SAAWA,IAC/BnrC,KAAKyrF,MAGNO,GAAeA,CAAChmD,EAA6Bq1C,KAC1C,CACLviE,MAAOktB,EAAOltB,MACdC,OAAQsiE,EAAatiE,SAYZkzE,GAAuEhiE,GAClF+gB,GACA+0C,GACAiM,IAmCWE,GAIUjiE,GACrBkgB,GACAa,GACA6gD,GACAH,GACAC,IACA,CAACrgD,EAAatF,EAAQmmD,EAA2BjhD,EAA+BC,KAC9E,IACIyO,EADEoL,EAAyB,CAAC,EAWhC,OATAmnC,EAA0BjqE,SAAQmjB,IAChC,IAAM+mD,EAAWJ,GAAahmD,EAAQX,GACtB,MAAZuU,IACFA,EA9CkCyyC,EACxCrmD,EACAkF,EACAI,KAEA,OAAQJ,GACN,IAAK,MACH,OAAOlF,EAAOrb,IAChB,IAAK,SACH,OAAO2gB,EAActF,EAAO9C,OAC9B,QACE,OAAO,EACX,EAkCiBmpD,CAAkCrmD,EAAQkF,EAAaI,IAEpE,IAAMghD,EAA6B,QAAhBphD,IAA0BC,GAA4B,WAAhBD,GAA4BC,EACrF6Z,EAAM3f,EAAKtmB,IAAM66B,EAAW59C,OAAOswF,GAAaF,EAASrzE,OACzD6gC,IAAa0yC,GAAa,EAAI,GAAKF,EAASrzE,MAAM,IAE7CisC,CAAK,IAIHunC,GAIUtiE,GACrBigB,GACAc,GACA+gD,GACAL,GACAC,IACA,CAACtgD,EAAYrF,EAA6BmmD,EAA2BjhD,EAA+BC,KAClG,IACIyO,EADEoL,EAAyB,CAAC,EAWhC,OATAmnC,EAA0BjqE,SAAQmjB,IAChC,IAAM+mD,EAtFSI,EAACxmD,EAA6Bq1C,KAE1C,CACLviE,MAF0C,iBAAvBuiE,EAAaviE,MAAqBuiE,EAAaviE,MnJh+ClC,GmJm+ChCC,OAAQitB,EAAOjtB,SAkFIyzE,CAAaxmD,EAAQX,GACtB,MAAZuU,IACFA,EAzDkC6yC,EACxCzmD,EACAkF,EACAG,KAEA,OAAQH,GACN,IAAK,OACH,OAAOlF,EAAOtb,KAChB,IAAK,QACH,OAAO2gB,EAAarF,EAAO/C,MAC7B,QACE,OAAO,EACX,EA6CiBwpD,CAAkCzmD,EAAQkF,EAAaG,IAEpE,IAAMihD,EAA6B,SAAhBphD,IAA2BC,GAA4B,UAAhBD,GAA2BC,EACrF6Z,EAAM3f,EAAKtmB,IAAM66B,EAAW59C,OAAOswF,GAAaF,EAAStzE,MACzD8gC,IAAa0yC,GAAa,EAAI,GAAKF,EAAStzE,KAAK,IAE5CksC,CAAK,IAYH0nC,GAA4FziE,GACvG,CAAC+gB,GAA2B+0C,GATC4M,CAAC/mE,EAA0B03D,KACxD,IAAMjC,EAAe0E,GAAoBn6D,EAAO03D,GAChD,GAAoB,MAAhBjC,EAGJ,OAAO6Q,GAA0BtmE,EAAOy1D,EAAanwC,YAAamwC,EAAalwC,OAAO,EAIb,CAACzvB,EAAY4hE,IAAmBA,IACzG,CAACt3C,EAAQq1C,EAAcuR,EAAUtP,KAC/B,GAAoB,MAAhBjC,EAAJ,CAGA,IAAMwR,EAAiBD,aAAQ,EAARA,EAAWtP,GAClC,OAAsB,MAAlBuP,EACK,CAAExzF,EAAG2sC,EAAOtb,KAAMluB,EAAG,GAEvB,CAAEnD,EAAG2sC,EAAOtb,KAAMluB,EAAGqwF,EAL5B,CAK4C,IAWnCC,GAA4F7iE,GACvG,CAAC+gB,GAA2Bk1C,GARC6M,CAACnnE,EAA0B03D,KACxD,IAAMjC,EAAe6E,GAAoBt6D,EAAO03D,GAChD,GAAoB,MAAhBjC,EAGJ,OAAOkR,GAA0B3mE,EAAOy1D,EAAanwC,YAAamwC,EAAalwC,OAAO,EAGb,CAACzvB,EAAY4hE,IAAmBA,IACzG,CAACt3C,EAAQq1C,EAAcuR,EAAUtP,KAC/B,GAAoB,MAAhBjC,EAAJ,CAGA,IAAMwR,EAAiBD,aAAQ,EAARA,EAAWtP,GAClC,OAAsB,MAAlBuP,EACK,CAAExzF,EAAG,EAAGmD,EAAGwpC,EAAOrb,KAEpB,CAAEtxB,EAAGwzF,EAAgBrwF,EAAGwpC,EAAOrb,IALtC,CAK2C,IAIlCqiE,GAAuE/iE,GAClF+gB,GACAk1C,IACA,CAACl6C,EAA6Bq1C,KAGrB,CACLviE,MAH0C,iBAAvBuiE,EAAaviE,MAAqBuiE,EAAaviE,MnJhnDpC,GmJonD9BC,OAAQitB,EAAOjtB,WAKRk0E,GAA0BA,CACrCrnE,EACA+e,EACA24C,KAEA,OAAQ34C,GACN,IAAK,QACH,OAAOsnD,GAAgBrmE,EAAO03D,GAAQxkE,MAExC,IAAK,QACH,OAAOk0E,GAAgBpnE,EAAO03D,GAAQvkE,OAExC,QACE,OAEJ,EAGWm0E,GAAyBA,CACpCC,EACAC,EACA/nD,EACAV,KAEA,GAAY,MAARU,EAAJ,CAGA,IAAM,wBAAEmD,EAAuB,KAAErmC,EAAI,QAAEsiC,GAAYY,EAC7CK,EAAgBhB,GAAkByoD,EAAaxoD,GAC/C0oD,EAAUD,EAActxF,KAAIwxF,GAAMA,EAAG35F,QAC3C,OAAI8wC,GAAWiB,GAA0B,aAATvjC,GAAuBqmC,GAA2BnpB,GAAaguE,GACtFA,OADT,CAJA,CAOgB,EAGLE,GAK6BtjE,GACxC,CAAC0mB,GAAmBoxC,GAAwBzB,GAAgBpD,IAC5DgQ,IAGWM,GAA2BA,CACtCxqE,EACAoqE,EACA/nD,EACAV,KAEA,GAAY,MAARU,GAAgC,MAAhBA,EAAKZ,QAAzB,CAGA,IAAM,KAAEtiC,EAAI,MAAEghC,GAAUkC,EAExB,OADsBX,GAAkB1hB,EAAQ2hB,IACjB,WAATxiC,GAA+B,SAAVghC,OAA3C,EACSiqD,EAActxF,KAAI4Q,GAAKA,EAAE/Y,OAJlC,CAMgB,EAGL85F,GAK6BxjE,GACxC,CAAC0mB,GAAmBoxC,GAAwBxB,GAA8BrD,IAC1EsQ,IAGWE,GAK+CzjE,GAC1D,CACE0mB,GA5gDgCg9C,CAClC/nE,EACA+e,EACA24C,KAEA,OAAQ34C,GACN,IAAK,QACH,OAAOo7C,GAAoBn6D,EAAO03D,GAEpC,IAAK,QACH,OAAO4C,GAAoBt6D,EAAO03D,GAEpC,QACE,MAAM,IAAIj7E,MAAM,yBAADpL,OAA0B0tC,IAC7C,EAggDE6jD,GACA6C,GACAkC,GACAE,GACAxC,GACArC,GACA1L,KAEF,CACEl6D,EACAqiB,EACAI,EACAtC,EACAqC,EACAG,EACA21C,EACAz1C,EACAlB,KAEA,GAAY,MAARU,EAAJ,CAGA,IAAMK,EAAgBhB,GAAkB1hB,EAAQ2hB,GAChD,MAAO,CACLhjB,MAAO0jB,EAAK1jB,MACZ+jD,SAAUrgC,EAAKqgC,SACfka,WAAYv6C,EAAKu6C,WACjB10C,YAAa7F,EAAK6F,YAClB4vC,KAAMz1C,EAAKy1C,KACXl1C,UAAWP,EAAKO,UAChBi6C,cAAex6C,EAAKw6C,cACpBh7C,MAAOQ,EAAKR,MACZ1iC,KAAMkjC,EAAKljC,KACX05C,KAAMxW,EAAKwW,KACXlX,WACAgB,oBACAH,kBACAE,gBACAG,YACA99B,MAAOuzE,EACP71C,gBACAtC,QApBF,CAqBC,IAYQyqD,GAAmBA,CAC9B5qE,EACAqiB,EACAI,EACAtC,EACA0C,EACAy1C,EACA91C,EACAG,EACAhB,KAEA,GAAY,MAARU,GAAyB,MAATlC,EAApB,CAIA,IAAMuC,EAAgBhB,GAAkB1hB,EAAQ2hB,IAE1C,KAAExiC,EAAI,MAAE0iC,EAAK,UAAEe,GAAcP,EAE7BS,EAEc,cAAlBL,GAA4D,mBAApBtC,EAAM4C,UAA2B5C,EAAM4C,YAAc,EAAI,EAE/FC,EAAkB,aAAT7jC,GAAuBghC,EAAM4C,UAAY5C,EAAM4C,YAAcD,EAAgB,EAE1FE,EACe,cAAbrB,GAAyC,MAAb22C,GAAqBA,EAAUnmF,QAAU,EACzB,EAAxCqpB,GAAS88D,EAAU,GAAKA,EAAU,IAAUt1C,EAC5CA,EAGN,IAAM6nD,EAAmBhpD,GAASgB,EAClC,OAAIgoD,EACKA,EACJ/xF,KAAI,CAAC8jB,EAAiBjnB,KACrB,IAAMstC,EAAeT,EAAkBA,EAAgBp0B,QAAQwO,GAASA,EAElEsmB,EAAS/C,EAAMrnC,IAAImqC,GACzB,OAAK5B,GAAoB6B,GAGlB,CACLvtC,QACAssC,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPomB,UANO,IAOR,IAEF1qC,OAAO0kB,IAIR0lB,GAAiBC,EACZA,EACJ7pC,KAAI,CAAC8jB,EAAgBjnB,KACpB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPjnB,QACAqtC,UANO,IAOR,IAEF1qC,OAAO0kB,IAGRmjB,EAAM0B,MACD1B,EACJ0B,MAAMe,GACN9pC,KAAI,CAAC8jB,EAAejnB,KACnB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CAAEjB,WAAYiB,EAASF,EAAQryC,MAAOisB,EAAOjnB,QAAOqtC,UAFlD,IAE0D,IAEpE1qC,OAAO0kB,IAILmjB,EACJgD,SACArqC,KAAI,CAAC8jB,EAA8BjnB,KAClC,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EAErBryC,MAAO6xC,EAAkBA,EAAgB5lB,GAASA,EAClDjnB,QACAqtC,UAPO,IAQR,IAEF1qC,OAAO0kB,GArFV,CAqFmB,EAER8tE,GAKuC7jE,GAClD,CACE0mB,GACA4vC,GACAiI,GACA6C,GACAzC,GACAqC,GACAsC,GACAE,GACAvQ,IAEF0Q,IAWWG,GAA4BA,CACvC/qE,EACAqiB,EACAlC,EACAm4C,EACA91C,EACAG,EACAhB,KAEA,GAAY,MAARU,GAAyB,MAATlC,GAA8B,MAAbm4C,GAAqBA,EAAU,KAAOA,EAAU,GAArF,CAGA,IAAM51C,EAAgBhB,GAAkB1hB,EAAQ2hB,IAE1C,UAAEiB,GAAcP,EAElBW,EAAS,EAMb,OAJAA,EACe,cAAbrB,IAA4B22C,aAAS,EAATA,EAAWnmF,SAAU,EAA4C,EAAxCqpB,GAAS88D,EAAU,GAAKA,EAAU,IAAUt1C,EAASA,EAGxGN,GAAiBC,EACZA,EACJ7pC,KAAI,CAAC8jB,EAAgBjnB,KACpB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPjnB,QACAqtC,UANO,IAOR,IAEF1qC,OAAO0kB,IAGRmjB,EAAM0B,MACD1B,EACJ0B,MAAMe,GACN9pC,KAAI,CAAC8jB,EAAejnB,KACnB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CAAEjB,WAAYiB,EAASF,EAAQryC,MAAOisB,EAAOjnB,QAAOqtC,UAFlD,IAE0D,IAEpE1qC,OAAO0kB,IAILmjB,EACJgD,SACArqC,KAAI,CAAC8jB,EAA8BjnB,KAClC,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EAErBryC,MAAO6xC,EAAkBA,EAAgB5lB,GAASA,EAClDjnB,QACAqtC,UAPO,IAQR,IAEF1qC,OAAO0kB,GAzDV,CAyDmB,EAGRguE,GAKiB/jE,GAC5B,CACE0mB,GACA4vC,GACA8K,GACAJ,GACAsC,GACAE,GACAvQ,IAEF6Q,IAUWE,GAKwBhkE,GACnCq2D,GACA+K,IACA,CAAChmD,EAAMlC,KACL,GAAY,MAARkC,GAAyB,MAATlC,EAGpB,OAAApiB,GAAAA,GAAA,GACKskB,GAAI,IACPlC,SAAK,IAKL+qD,GAK2BjkE,GAC/B,CAACq2D,GAAgBkI,GAAqBN,GAAkBiD,IACxD1C,IAKW0F,GAKqBlkE,IAChC,CAACrE,EAA0By3D,EAAoBC,IAAmB8C,GAAoBx6D,EAAO03D,IAC7F4Q,IACA,CAAC7oD,EAAqBlC,KACpB,GAAY,MAARkC,GAAyB,MAATlC,EAGpB,OAAApiB,GAAAA,GAAA,GACKskB,GAAI,IACPlC,SAAK,IAUEirD,GAAgFnkE,GAC3F,CAAC0mB,GAAmBrG,GAAgBI,KACpC,CACE1nB,EACAqrE,EACAC,KAEA,OAAQtrE,GACN,IAAK,aACH,OAAOqrE,EAASrnF,MAAKq+B,GAAQA,EAAKw1C,WAAY,gBAAkB,gBAElE,IAAK,WACH,OAAOyT,EAAStnF,MAAKq+B,GAAQA,EAAKw1C,WAAY,gBAAkB,gBAIlE,IAAK,UACL,IAAK,SACH,MAAO,gBAET,QACE,OAEJ,ICllES0T,GAAiC3oE,GAC5CA,EAAM5xB,QAAQw6F,wBACHC,GACX7oE,GACgDA,EAAM5xB,QAAQ06F,0BAEzD,SAASC,GACdC,EACAJ,EACAE,GAEA,GAAc,MAAVE,EACF,OAAOJ,EAET,IAAMK,EAAYD,EAAS,OAAS,OACpC,OAAiC,MAA7BF,EACKF,EAEFE,EAA0BrmF,SAASwmF,GAAaA,EAAYL,CACrE,CAEO,SAASM,GAAuBlpE,EAA0BgpE,GAG/D,OAAOD,GAAwBC,EAFCL,GAA8B3oE,GAC5B6oE,GAAgC7oE,GAEpE,CCzBO,IAAMmpE,GAAqBA,CAChCC,EACAC,KACgB,IAAAC,EACVvlF,EAAI3N,OAAOizF,GACjB,IAAIxwE,GAAM9U,IAAqB,MAAfslF,EAGhB,OAAOtlF,GAAK,EAAIqlF,SAAiB,QAALE,EAAZF,EAAerlF,UAAE,IAAAulF,OAAA,EAAjBA,EAAmBv7F,WAAQsE,CAAS,ECkLzCk3F,GAAyC,CACpDzxC,QAAQ,EACR/kD,MAAO,KACP8rC,aAASxsC,EACTm3F,qBAAiBn3F,EACjBgtC,gBAAYhtC,GAyKRo3F,GAAet3D,GAAY,CAC/BnhC,KAAM,UACNqhC,aArHwC,CACxCq3D,gBAAiB,CACfC,MAAOJ,GACPK,MAAOL,IAETM,gBAAiB,CACfF,MAAOJ,GACPK,MAAOL,IAETO,oBAAqBP,GACrBQ,gBAAiB,CACfjyC,QAAQ,EACR/kD,MAAO,KACP8rC,aAASxsC,EACT86B,WAAO96B,EACPgtC,gBAAYhtC,EACZ23F,mBAAe33F,EACfm3F,qBAAiBn3F,GAEnB43F,oBAAqB,GACrB9lE,SAAU,CACR6kE,YAAQ32F,EACR63F,QAAS,QACTxS,OAAQ,EACR5/B,QAAQ,EACRqyC,kBAAc93F,IA6FhBi5B,SAAU,CACR8+D,wBAAyB,CACvBngE,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAMiqE,oBAAoBz5F,KAAeq6B,EAAO1M,QAClD,EACA4V,QAAS2I,MAEX2tD,4BAA6B,CAC3BpgE,OAAAA,CAAQjK,EAAO6K,GACb,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,QACxBprB,EAAQ0E,GAAQuoB,GAAOiqE,oBAAoBz+E,QAAkBw4B,GAC/DjxC,GAAS,IACXitB,EAAMiqE,oBAAoBl3F,GAAmBo4B,EAEjD,EACA4I,QAAS2I,MAEX4tD,2BAA4B,CAC1BrgE,OAAAA,CAAQjK,EAAO6K,GACb,IAAM93B,EAAQ0E,GAAQuoB,GAAOiqE,oBAAoBz+E,QAAkBqf,EAAO1M,SACtEprB,GAAS,GACXitB,EAAMiqE,oBAAoBr/D,OAAO73B,EAAO,EAE5C,EACAghC,QAAS2I,MAEX6tD,uBAAAA,CAAwBvqE,EAAO6K,GAC7B7K,EAAMmE,SAAW0G,EAAO1M,OAC1B,EACAqsE,2BAAAA,CAA4BxqE,EAAO6K,GACjC7K,EAAM+pE,gBAAgBjyC,QAAS,EAC/B93B,EAAM8pE,oBAAoBhyC,QAAS,EACnC93B,EAAM0pE,gBAAgBE,MAAM9xC,QAAS,EACrC93B,EAAM0pE,gBAAgBE,MAAM72F,MAAQ83B,EAAO1M,QAAQkrE,YACnDrpE,EAAM0pE,gBAAgBE,MAAM/qD,QAAUhU,EAAO1M,QAAQssE,cACrDzqE,EAAM0pE,gBAAgBE,MAAMJ,gBAAkB3+D,EAAO1M,QAAQusE,sBAC7D1qE,EAAM0pE,gBAAgBE,MAAMvqD,WAAaxU,EAAO1M,QAAQsrC,gBAC1D,EACAkhC,eAAAA,CAAgB3qE,GAQdA,EAAM0pE,gBAAgBE,MAAM9xC,QAAS,EACrC93B,EAAM6pE,gBAAgBD,MAAM9xC,QAAS,CACvC,EACA8yC,cAAAA,CAAe5qE,GACbA,EAAM0pE,gBAAgBE,MAAM9xC,QAAS,CACvC,EACA+yC,uBAAAA,CAAwB7qE,EAAO6K,GAC7B7K,EAAM+pE,gBAAgBjyC,QAAS,EAC/B93B,EAAM0pE,gBAAgBC,MAAM7xC,QAAS,EACrC93B,EAAM8pE,oBAAoBhyC,QAAS,EACnC93B,EAAM0pE,gBAAgBC,MAAM52F,MAAQ83B,EAAO1M,QAAQkrE,YACnDrpE,EAAM0pE,gBAAgBC,MAAM9qD,QAAUhU,EAAO1M,QAAQssE,cACrDzqE,EAAM0pE,gBAAgBC,MAAMH,gBAAkB3+D,EAAO1M,QAAQusE,sBAC7D1qE,EAAM0pE,gBAAgBC,MAAMtqD,WAAaxU,EAAO1M,QAAQsrC,gBAC1D,EACAqhC,qBAAAA,CAAsB9qE,EAAO6K,GAC3B7K,EAAM+pE,gBAAgBjyC,QAAS,EAC/B93B,EAAM6pE,gBAAgBD,MAAM9xC,QAAS,EACrC93B,EAAM8pE,oBAAoBhyC,QAAS,EACnC93B,EAAM6pE,gBAAgBD,MAAM72F,MAAQ83B,EAAO1M,QAAQkrE,YACnDrpE,EAAM6pE,gBAAgBD,MAAM/qD,QAAUhU,EAAO1M,QAAQssE,cACrDzqE,EAAM6pE,gBAAgBD,MAAMvqD,WAAaxU,EAAO1M,QAAQsrC,gBAC1D,EACAshC,sBAAAA,CAAuB/qE,EAAO6K,GAC5B7K,EAAM+pE,gBAAgBjyC,QAAS,EAC/B93B,EAAM8pE,oBAAoBhyC,QAAS,EACnC93B,EAAM6pE,gBAAgBF,MAAM7xC,QAAS,EACrC93B,EAAM6pE,gBAAgBF,MAAM52F,MAAQ83B,EAAO1M,QAAQkrE,YACnDrpE,EAAM6pE,gBAAgBF,MAAM9qD,QAAUhU,EAAO1M,QAAQssE,cACrDzqE,EAAM6pE,gBAAgBF,MAAMtqD,WAAaxU,EAAO1M,QAAQsrC,gBAC1D,EACAuhC,kBAAAA,CAAmBhrE,EAAO6K,GACxB7K,EAAM+pE,gBAAkBl/D,EAAO1M,OACjC,EACA8sE,sBAAAA,CAAuBjrE,EAAO6K,GAC5B7K,EAAM8pE,oBAAoBhyC,OAASjtB,EAAO1M,QAAQ25B,OAClD93B,EAAM8pE,oBAAoB/2F,MAAQ83B,EAAO1M,QAAQkrE,YACjDrpE,EAAM8pE,oBAAoBzqD,WAAaxU,EAAO1M,QAAQsrC,gBACxD,MAIS,wBACX2gC,GAAuB,4BACvBC,GAA2B,2BAC3BC,GAA0B,wBAC1BC,GAAuB,4BACvBC,GAA2B,eAC3BI,GAAc,gBACdD,GAAe,wBACfE,GAAuB,sBACvBC,GAAqB,uBACrBC,GAAsB,mBACtBC,GAAkB,uBAClBC,IACExB,GAAaz1D,QAEJk3D,GAAiBzB,GAAax/D,Q,kgCC9bpC,IAAMkhE,GAAiCA,CAC5CC,EACAC,EACAnB,EACAC,KAEA,GAAwB,MAApBkB,EACF,OAAO9B,GAET,IAAM+B,EA9BR,SACEF,EACAC,EACAnB,GAEA,MAAyB,SAArBmB,EACc,UAAZnB,EACKkB,EAAavB,gBAAgBF,MAE/ByB,EAAavB,gBAAgBD,MAEtB,UAAZM,EACKkB,EAAa1B,gBAAgBC,MAE/ByB,EAAa1B,gBAAgBE,KACtC,CAesC2B,CAAkCH,EAAcC,EAAkBnB,GAEtG,GAAmC,MAA/BoB,EACF,OAAO/B,GAGT,GAAI+B,EAA4BxzC,OAC9B,OAAOwzC,EAGT,GAAIF,EAAatB,oBAAoBhyC,OACnC,OAAOszC,EAAatB,oBAGtB,GAAIsB,EAAarB,gBAAgBjyC,QAAgD,MAAtCszC,EAAarB,gBAAgBh3F,MACtE,OAAOq4F,EAAarB,gBAGtB,IAAMyB,GAAmD,IAAjCJ,EAAajnE,SAAS2zB,OAE9C,GAhCwC,MAgCZwzC,EAhCGv4F,OAiC7B,GAAIy4F,EACF,OAAArwE,GAAAA,GAAA,GACKmwE,GAA2B,IAC9BxzC,QAAQ,SAGP,GAAoB,MAAhBqyC,EACT,MAAO,CACLryC,QAAQ,EACRzY,gBAAYhtC,EACZwsC,aAASxsC,EACTU,MAAOo3F,EACPX,qBAAiBn3F,GAIrB,OAAA8oB,GAAAA,GAAA,GACKouE,IAAa,IAChBlqD,WAAYisD,EAA4BjsD,YAAU,ECtDtD,SAASosD,GAA0B19F,EAAgBwyC,GACjD,IAAM+3C,EAbR,SAAwBvqF,GACtB,GAAqB,iBAAVA,EACT,OAAOqI,OAAOsoC,SAAS3wC,GAASA,OAAQsE,EAE1C,GAAItE,aAAiBiB,KAAM,CACzB,IAAMspF,EAAevqF,EAAM+G,UAC3B,OAAOsB,OAAOsoC,SAAS45C,GAAgBA,OAAejmF,CACxD,CACA,IAAMq5F,EAASt1F,OAAOrI,GACtB,OAAOqI,OAAOsoC,SAASgtD,GAAUA,OAASr5F,CAC5C,CAGuBs5F,CAAe59F,GAC9B69F,EAAarrD,EAAO,GACpBsrD,EAAatrD,EAAO,GAE1B,QAAqBluC,IAAjBimF,EACF,OAAO,EAGT,IAAM7zE,EAAMlC,KAAKkC,IAAImnF,EAAYC,GAC3Bx4F,EAAMkP,KAAKlP,IAAIu4F,EAAYC,GACjC,OAAOvT,GAAgB7zE,GAAO6zE,GAAgBjlF,CAChD,CAuBO,IAAMy4F,GAA4BA,CACvCC,EACAjc,EACAkc,EACAzrD,KAEA,IAAM0rD,EAAyCF,aAAkB,EAAlBA,EAAoBh5F,MACnE,GAAoB,MAAhBk5F,EACF,OAAO,KAGT,IAAMC,EAAgB91F,OAAO61F,GAC7B,IAAKxtD,GAAoBytD,GAEvB,OAAOD,EAOT,IACIE,EAAsBlqF,IAEtB6tE,EAAUvgF,OAAS,IACrB48F,EAAarc,EAAUvgF,OAAS,GAIlC,IAAM68F,EAAe7pF,KAAKlP,IARP,EAQuBkP,KAAKkC,IAAIynF,EAAeC,IAC5DnyE,EAAQ81D,EAAUsc,GAExB,OAAa,MAATpyE,GArDN,SACEA,EACAgyE,EACAzrD,GAEA,GAAc,MAAVA,GAAiC,MAAfyrD,EACpB,OAAO,EAGT,IAAMj+F,EAAQ6wC,GAAkB5kB,EAAOgyE,GACvC,OAAa,MAATj+F,IAICyiF,GAAyBjwC,IAIvBkrD,GAA0B19F,EAAOwyC,EAC1C,CAsCO8rD,CAAoBryE,EAAOgyE,EAAazrD,GAHpCxrC,OAAOq3F,GAIP,IAGkB,EC3FhBE,GAAmCA,CAC9Cp5E,EACAC,EACAiK,EACAgjB,EACAgpD,EACAe,EACAoC,KAEA,GAAoB,MAAhBpC,EAAJ,CAQA,IAAMqC,EAAqBD,EAAsB,GAC3CE,EAAwCD,aAAkB,EAAlBA,EAAoBE,YAAYvC,GAC9E,GAAqB,MAAjBsC,EACF,OAAOA,EAET,IAAMvX,EAAOkU,aAAY,EAAZA,EAAehzF,OAAO+zF,IACnC,GAAKjV,EAGL,MACO,eADC93D,EAEG,CACL3pB,EAAGyhF,EAAK71C,WACRzoC,GAAIwpC,EAAOrb,IAAM5R,GAAU,GAKtB,CACL1f,GAAI2sC,EAAOtb,KAAO5R,GAAS,EAC3Btc,EAAGs+E,EAAK71C,WA1Bd,CA6BA,ECtCWstD,GAAsCA,CACjDvB,EACAC,EACAnB,EACAC,KAGA,GAAyB,SAArBkB,EACF,OAAOD,EAAanB,oBAMtB,GAAgD,IAA5CmB,EAAanB,oBAAoB16F,OAEnC,MAAO,GAET,IAAIq9F,EAMJ,GAA+B,OAJ7BA,EADc,UAAZ1C,EACwBkB,EAAa1B,gBAAgBE,MAAMJ,gBAEnC4B,EAAa1B,gBAAgBC,MAAMH,kBAER,MAAhBW,EAAsB,CAM3D,IAAM0C,EAAmBzB,EAAanB,oBAAoB,GAC1D,OAAwB,MAApB4C,EACK,CAACA,GAEH,EACT,CACA,OAAOzB,EAAanB,oBAAoBv0F,QAAOo3F,IAAG,IAAAC,EAAA,OAAgB,QAAZA,EAAAD,EAAI3oE,gBAAQ,IAAA4oE,OAAA,EAAZA,EAAcvD,mBAAoBoD,CAAuB,GAAC,ECtCrGI,GAAgChtE,GAC3CA,EAAM5xB,QAAQ6+F,uBCDHC,GAAsBltE,GAA2CA,EAAM44D,Q,kgCCuB7E,IAAMuU,GAAwBA,CACnCC,EACA/D,EACAgE,EACAC,EACAC,EACAN,EACA5B,KAEA,GAAmB,MAAfhC,GAAiD,MAA1B4D,EAA3B,CAGA,IAAM,UAAEnd,EAAS,aAAEI,EAAY,eAAEC,EAAc,aAAEF,GAAiBod,EAIlE,OAAOD,EAA6B10E,QAAO,CAAC80E,EAAGxyE,KAAkE,IAAAyyE,EAQ3GC,EAkEGC,GA1EwC,kBAAEC,EAAiB,SAAEzpE,GAAUnJ,EACxE6yE,EA5BV,SAAyBD,EAA4BE,GAKnD,OAAyB,MAArBF,EACKA,EAEFE,CACT,CAmBsBC,CAAgBH,EAAmB9d,GAE/CtsC,EAAS/0C,MAAMkH,QAAQk4F,GAAavvD,GAAUuvD,EAAW1d,EAAgBF,GAAgB4d,EAEzFG,EAA0D,QAApBP,EAAGtpE,aAAQ,EAARA,EAAU0a,eAAO,IAAA4uD,EAAAA,EAAIH,EAE9DW,EAAyC9pE,aAAQ,EAARA,EAAU+pE,SA6BvDR,EA1BAJ,GACA7+F,MAAMkH,QAAQ6tC,KAQb/0C,MAAMkH,QAAQ6tC,EAAO,KAeD,SAArB6nD,EAEiBzxE,GAAiB4pB,EAAQ8pD,EAAoBC,GAQ7CN,EAAuBzpD,EAAQ6lD,EAAanZ,EAAc+d,GAGzEx/F,MAAMkH,QAAQ+3F,IAChBA,EAAepxE,SAAQriB,IACrB,IAAMk0F,EAAiChzE,GAAAA,GAAA,GAClCgJ,GAAQ,IAEXnzB,KAAMiJ,EAAKjJ,KAEXilD,KAAMh8C,EAAKg8C,KAEXr4B,WAAOvrB,EAEP2rB,UAAM3rB,IAERm7F,EAAIh9F,KACFyzC,GAAgB,CACdE,qBAAsBgqD,EAEtBtvD,QAAS5kC,EAAK4kC,QAEd1gB,QAASlkB,EAAKkkB,QAEdpwB,MAAO6wC,GAAkB3kC,EAAKkkB,QAASlkB,EAAK4kC,SAE5C7tC,KAAMiJ,EAAKjJ,OAEd,IAIHw8F,EAAIh9F,KACFyzC,GAAgB,CACdE,qBAAsBhgB,EACtB0a,QAASmvD,EACT7vE,QAASuvE,EAET3/F,MAAO6wC,GAAkB8uD,EAAgBM,GAEzCh9F,KAAqD,QAAjD28F,EAAE/uD,GAAkB8uD,EAAgBO,UAAa,IAAAN,EAAAA,EAAIxpE,aAAQ,EAARA,EAAUnzB,QAIzE,OAAOw8F,CAAG,GA1F6B,GAHzC,CA8FQ,ECnCGY,GAAwF/pE,GACnG,CAACs4D,GAAmB/B,GAAcjH,IAClC4O,IAGW8L,GAEqEhqE,GAChF,CACGrE,GAA6BA,EAAM66D,eAAeC,eAClD96D,GAA6BA,EAAM66D,eAAeE,aAErD,CAACD,EAAgBC,IAAe,IAAID,KAAmBC,KAGnDuT,GAA6BjqE,GAAe,CAACq0D,GAAuBC,IAAsBqC,IAEnFuT,GACXlqE,GACE,CAACgqE,GAAmC1R,GAAmB2R,IACvDhT,GACA,CACEh5D,eAAgB,CACdpB,oBAAqBu3D,MAKvB+V,GAE+CnqE,GACnD,CAACkqE,KACA1T,GACCA,EAAenlF,OAAO6iF,MAGbkW,GAAkCpqE,GAC7C,CAACkqE,IACD3S,GACA,CACEt5D,eAAgB,CACdpB,oBAAqBu3D,MAWdiW,GAAsErqE,GACjF,CAACoqE,GAAiC5e,IAClCiM,IAGI6S,GAA+EtqE,GACnF,CAACmqE,GAAwC3e,GAA4B8M,IACrE9E,IAGI+W,GAAgFvqE,GACpF,CAACqqE,GAA4B/R,GAAmB4R,IAChDtS,IAGI4S,GAA0FxqE,GAC9F,CAACs4D,IACDc,IAGIqR,GAAmEzqE,GACvE,CAACs4D,KACDlH,GAAgBA,EAAa7E,oBAGzBme,GAAiG1qE,GACrG,CAACwqE,GAAmCC,IACpCje,IAGIme,GACJ3qE,GAAe,CAACkqE,KAAmC1T,GACjDA,EAAenlF,OAAO6iF,MAGpB0W,GAAsF5qE,GAC1F,CAACsqE,GAA0BK,GAAgCzb,GAAuBE,IAClFqJ,IAGIoS,GAA2F7qE,GAC/F,CAAC4qE,GAA0Bpf,GAA4B6I,GAAuBqW,IAC9E1R,IAGI8R,GACJ9qE,GAAe,CAACkqE,IAAkC7S,IAE9C2D,GAE0Bh7D,GAC9B,CACEqqE,GACA/R,GACAwS,GACApR,GACArF,IAEF0F,GACA,CACE97D,eAAgB,CACdpB,oBAAqBs3D,MAKrB4W,GACJ/qE,GAAe,CAACk7D,GAAqB7G,GAAuBC,IAAsB+G,IAE9E2P,GAA2FhrE,GAC/F,CAAC+qE,GAAkC1W,IACnC2H,IAGIiP,GAEkDjrE,GACtD,CAAC07D,GAAsBrH,GAAuBC,IAC9C+G,IAGI6P,GAA4FlrE,GAChG,CAACirE,GAAmC5W,IACpC+H,IAGI+O,GAEkDnrE,GACtD,CAAC67D,GAAsBxH,GAAuBC,IAC9C+G,IAGI+P,GAA4FprE,GAChG,CAACmrE,GAAmC9W,IACpCiI,IAGI+O,GAA+FrrE,GACnG,CAACgrE,GAAkCI,GAAmCF,IACtEtR,IAGI0R,GAAuFtrE,GAC3F,CACEs4D,GACAkS,GACAE,GACAG,GACA7P,GACAqQ,GACA3kD,GACA2tC,IAEF6I,IAGWqO,GACXvrE,GACE,CACEs4D,GACA5xC,GACA2jD,GACAE,GACArb,GACAmF,GACAiX,IAEF3N,IAGE6N,GAA0FxrE,GAC9F,CAACurE,GAAyBjT,GAAmByR,IAC7CtL,IAGWgN,GAEuCzrE,GAClD,CAACs4D,GAAmBiT,GAAyBC,GAAwBnX,IACrEuK,IAGI8M,GAA0B/vE,IAC9B,IAAM+e,EAAW25C,GAAsB14D,GACjC03D,EAASiB,GAAoB34D,GAEnC,OAAOqlE,GAAgBrlE,EAAO+e,EAAU24C,GADrB,EACwC,EAGhDsY,GAAyF3rE,GACpG,CAACs4D,GAAmBoT,IACpBva,IAGWya,GAAkF5rE,GAC7F,CACEs4D,GACAyR,GACA0B,GACAE,IAEFnN,IAGIqN,GAAiG7rE,GACrG,CAAC0mB,GAAmB6jD,GAA+BjS,GAAmBjE,IACtE4O,IAGW6I,GACX9rE,GACE,CAAC0mB,GAAmB6jD,GAA+BjS,GAAmBjE,IACtEkP,IA6ESwI,GAA4F/rE,GACvG,CACE0mB,GACA4xC,GACAyR,GACA6B,GACAF,GACAG,GACAC,GACAzX,KAnF8B2X,CAChCjzE,EACAqiB,EACAI,EACAtC,EACAp7B,EACAy9B,EACAG,EACAhB,KAEA,GAAKU,EAAL,CAGA,IAAM,KAAEljC,GAASkjC,EAEXK,EAAgBhB,GAAkB1hB,EAAQ2hB,GAEhD,GAAKxB,EAAL,CAIA,IAAM2C,EAAkC,cAAlBL,GAAiCtC,EAAM4C,UAAY5C,EAAM4C,YAAc,EAAI,EAC7FC,EAAkB,aAAT7jC,GAAuBghC,EAAM4C,UAAY5C,EAAM4C,YAAcD,EAAgB,EAQ1F,OANAE,EACe,cAAbrB,GAAqC,MAAT58B,IAAiBA,aAAK,EAALA,EAAO5S,SAAU,EAC1B,EAAhCqpB,GAASzW,EAAM,GAAKA,EAAM,IAAUi+B,EACpCA,EAGFN,GAAiBC,EACZA,EACJ7pC,KAAI,CAAC8jB,EAAgBjnB,KACpB,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EACrBryC,MAAOisB,EACPjnB,QACAqtC,UANO,IAOR,IAEF1qC,OAAO0kB,IAILmjB,EACJgD,SACArqC,KAAI,CAAC8jB,EAA8BjnB,KAClC,IAAMutC,EAAS/C,EAAMrnC,IAAI8jB,GACzB,OAAKykB,GAAoB6B,GAGlB,CACLjB,WAAYiB,EAASF,EAErBryC,MAAO6xC,EAAkBA,EAAgB5lB,GAASA,EAClDjnB,QACAqtC,UAPO,IAQR,IAEF1qC,OAAO0kB,GA5CV,CAPA,CAmDmB,IAyBf8uE,GAAqF7kE,GACzF,CAACskE,GAA+BE,GC1ZI7oE,GAAmDA,EAAM44D,QAAQz0D,WD2ZrG,CAACykE,EAAyB0H,EAA0BnsE,IAClD4kE,GAAwB5kE,EAAS6kE,OAAQJ,EAAyB0H,KAGhEC,GAAwBvwE,GAA6BA,EAAM44D,QAAQz0D,SAAS+lE,QAE5EsG,GAA6ExwE,GACjFA,EAAM44D,QAAQz0D,SAASgmE,aAEnBsG,GAAmGpsE,GACvG,CAAC6oE,GAAoBhE,GAAwBqH,GAAsBC,IACnErF,IAGWuF,GAA8ErsE,GACzF,CAACosE,GAA+B/B,GAA4B9R,GAA0BgT,IACtF9D,IAGW6E,GAA+DtsE,GAC1E,CAAC+rE,GAAwBM,IACzBvH,IAGWyH,GAAqFvsE,GAChG,CAACosE,KACA1E,IACC,GAAKA,EAIL,OAAOA,EAAmBltD,OAAO,IAIxBgyD,GAAuFxsE,GAClG,CAACosE,KACA1E,IACC,GAAKA,EAIL,OAAOA,EAAmBvC,eAAe,IAIvCsH,GAAqCzsE,GACzC,CAAC6oE,GAAoBhE,GAAwBqH,GAAsBC,IACnE7D,IAGIoE,GAA+F1sE,GACnG,CACEigB,GACAC,GACAwG,GACA3F,GACAgrD,GACAI,GACAM,IAEFxE,IAGW0E,GAAsF3sE,GACjG,CAACosE,GAA+BM,KAChC,CACEE,EACAC,IAEID,SAAAA,EAAyB5xD,WACpB4xD,EAAwB5xD,WAG1B6xD,IAIEC,GAA+D9sE,GAC1E,CAACosE,KACAQ,IAA4D,IAAAG,EAAA,OAA6C,QAA7CA,EAAcH,aAAuB,EAAvBA,EAAyBn5C,cAAM,IAAAs5C,GAAAA,CAAS,IAGxGC,GAAuFhtE,GAClG,CACEysE,GACAJ,GACA7gB,GACA+M,GACA+T,GACA3D,GACA9D,IAEFiE,IAGWmE,GAAgCjtE,GAAe,CAACgtE,KAA6BlzE,IACxF,GAAe,MAAXA,EAAJ,CAGA,IAAMozE,EAAapzE,EAAQjoB,KAAI4Y,GAAKA,EAAEqP,UAASzoB,QAAOoZ,GAAU,MAALA,IAC3D,OAAOrgB,MAAM8F,KAAK,IAAIgB,IAAIg8F,GAF1B,CAEsC,I,kgCE9fjC,IAEMC,GAAyBA,KACpC,IAAMC,EAHgE3xE,GAAe68D,IAI/EyM,EAAetpE,GAAeswE,IAC9BsB,EAAmB5xE,GAAemwE,IACxC,OAGOtsD,GAHF8tD,GAAgBC,EAGGv2E,GAAAA,GAAC,CAAC,EAAIs2E,GAAW,IAAEl0D,MAAOm0D,SAFvBr/F,EAE2C+2F,EAAa,E,kgCCqF9E,IAAMuI,GAA2BA,CAQtCtyD,EACAJ,EACA2yD,EACA7yD,EACA58B,KACuB,IAAA0vF,EACjB3/F,EAAmB,QAAhB2/F,EAAG5yD,aAAK,EAALA,EAAO1vC,cAAM,IAAAsiG,EAAAA,EAAI,EAG7B,GAAI3/F,GAAO,GAAmB,MAAdmtC,EACd,OAAO,EAGT,GAAiB,cAAbN,GAAqC,MAAT58B,GAAiBI,KAAK0F,IAAI1F,KAAK0F,IAAI9F,EAAM,GAAKA,EAAM,IAAM,MAAQ,KAEhG,IAAK,IAAI3Q,EAAI,EAAGA,EAAIU,EAAKV,IAAK,KAAAsgG,EAAAC,EAAAC,EAAAC,EAAAC,EACtBC,EAAS3gG,EAAI,EAAwB,QAAvBsgG,EAAGF,EAAcpgG,EAAI,UAAE,IAAAsgG,OAAA,EAApBA,EAAsBzyD,WAAmC,QAAzB0yD,EAAGH,EAAc1/F,EAAM,UAAE,IAAA6/F,OAAA,EAAtBA,EAAwB1yD,WAC5E0E,EAAsB,QAAnBiuD,EAAGJ,EAAcpgG,UAAE,IAAAwgG,OAAA,EAAhBA,EAAkB3yD,WACxB+yD,EAAQ5gG,GAAKU,EAAM,EAAoB,QAAnB+/F,EAAGL,EAAc,UAAE,IAAAK,OAAA,EAAhBA,EAAkB5yD,WAAiC,QAAvB6yD,EAAGN,EAAcpgG,EAAI,UAAE,IAAA0gG,OAAA,EAApBA,EAAsB7yD,WAC9EgzD,OAAkB,EAEtB,GAAc,MAAVF,GAAyB,MAAPpuD,GAAwB,MAATquD,EAIrC,GAAIx5E,GAASmrB,EAAMouD,KAAYv5E,GAASw5E,EAAQruD,GAAM,CACpD,IAAMuuD,EAAe,GACrB,GAAI15E,GAASw5E,EAAQruD,KAASnrB,GAASzW,EAAM,GAAKA,EAAM,IAAK,CAC3DkwF,EAAqBD,EAErB,IAAMG,EAAaxuD,EAAM5hC,EAAM,GAAKA,EAAM,GAC1CmwF,EAAa,GAAK/vF,KAAKkC,IAAI8tF,GAAaA,EAAaJ,GAAU,GAC/DG,EAAa,GAAK/vF,KAAKlP,IAAIk/F,GAAaA,EAAaJ,GAAU,EACjE,KAAO,CACLE,EAAqBF,EAErB,IAAMK,EAAeJ,EAAQjwF,EAAM,GAAKA,EAAM,GAC9CmwF,EAAa,GAAK/vF,KAAKkC,IAAIs/B,GAAMyuD,EAAezuD,GAAO,GACvDuuD,EAAa,GAAK/vF,KAAKlP,IAAI0wC,GAAMyuD,EAAezuD,GAAO,EACzD,CACA,IAQE0uD,EARIC,EAAiC,CACrCnwF,KAAKkC,IAAIs/B,GAAMsuD,EAAqBtuD,GAAO,GAC3CxhC,KAAKlP,IAAI0wC,GAAMsuD,EAAqBtuD,GAAO,IAG7C,GACG1E,EAAaqzD,EAAa,IAAMrzD,GAAcqzD,EAAa,IAC3DrzD,GAAcizD,EAAa,IAAMjzD,GAAcizD,EAAa,GAE7D,OAAuB,QAAvBG,EAAOb,EAAcpgG,UAAE,IAAAihG,OAAA,EAAhBA,EAAkB1/F,KAE7B,KAAO,CACL,IAG6E4/F,EAHvEzzD,EAAW38B,KAAKkC,IAAI0tF,EAAQC,GAC5BjzD,EAAW58B,KAAKlP,IAAI8+F,EAAQC,GAElC,GAAI/yD,GAAcH,EAAW6E,GAAO,GAAK1E,IAAeF,EAAW4E,GAAO,EACxE,OAAuB,QAAvB4uD,EAAOf,EAAcpgG,UAAE,IAAAmhG,OAAA,EAAhBA,EAAkB5/F,KAE7B,CACF,MACK,GAAIksC,EAET,IAAK,IAAIztC,EAAI,EAAGA,EAAIU,EAAKV,IAAK,CAC5B,IAAM6vD,EAAOpiB,EAAMztC,GACnB,GAAY,MAAR6vD,EAAJ,CAGA,IAAMl2B,EAAO8T,EAAMztC,EAAI,GACjBwyC,EAAO/E,EAAMztC,EAAI,GAEvB,GAAU,IAANA,GAAmB,MAAR25B,GAAgBkU,IAAegiB,EAAKhiB,WAAalU,EAAKkU,YAAc,EACjF,OAAOgiB,EAAKtuD,MAGd,GAAIvB,IAAMU,EAAM,GAAa,MAAR8xC,GAAgB3E,GAAcgiB,EAAKhiB,WAAa2E,EAAK3E,YAAc,EACtF,OAAOgiB,EAAKtuD,MAGd,GACEvB,EAAI,GACJA,EAAIU,EAAM,GACF,MAAR8xC,GACQ,MAAR7Y,GACAkU,GAAcgiB,EAAKhiB,WAAa2E,EAAK3E,YAAc,GACnDA,IAAegiB,EAAKhiB,WAAalU,EAAKkU,YAAc,EAEpD,OAAOgiB,EAAKtuD,KApBd,CAsBF,CAGF,OAAQ,CAAC,ECrJE6/F,GAAeA,IACnB9yE,GAAe6zD,IAGlBkf,GAAuBA,CAC3Btb,EACA8T,IACiCA,EAE7ByH,GAAcA,CAClBvb,EACAwb,EACA7I,IACmBA,EAEf8I,GAAmBA,CACvBzb,EACAwb,EACAE,EACA9I,IAC6BA,EAElB+I,GAA4B7uE,GACvC+rE,IACCnxD,GAA+Cr9B,KAAOq9B,GAAOttB,GAAKA,EAAE0tB,eAG1DoxD,GAKkBpsE,GAC7B,CAAC6oE,GAAoB2F,GAAsBC,GAAaE,IACxD7H,IAGWgI,GAKc9uE,GACzB,CAACosE,GAA+B/B,GAA4B9R,GAA0BgT,IACtF9D,IAGWsH,GAAuBA,CAClCpzE,EACAqrE,EACAnB,KAEA,GAAwB,MAApBmB,EAAJ,CAGA,IAAMD,EAAe8B,GAAmBltE,GACxC,MAAyB,SAArBqrE,EACc,UAAZnB,EACKkB,EAAavB,gBAAgBD,MAAM/qD,QAErCusD,EAAavB,gBAAgBF,MAAM9qD,QAE5B,UAAZqrD,EACKkB,EAAa1B,gBAAgBE,MAAM/qD,QAErCusD,EAAa1B,gBAAgBC,MAAM9qD,OAX1C,CAWiD,EAGtCiyD,GAKqCzsE,GAChD,CAAC6oE,GAAoB2F,GAAsBC,GAAaE,IACxDrG,IAGW0G,GAKiBhvE,GAC5B,CACEigB,GACAC,GACAwG,GACA3F,GACAgrD,GACA4C,GACAlC,IAEFxE,IAGWgH,GAKiBjvE,GAC5B,CAACosE,GAA+B4C,KAChC,CACEpC,EACAC,KAC2B,IAAAE,EAC3B,OAAyC,QAAzCA,EAAOH,EAAwB5xD,kBAAU,IAAA+xD,EAAAA,EAAIF,CAAsB,IAI1DP,GAKsBtsE,GAAe,CAAC+rE,GAAwB+C,IAAoBhK,IAElFoK,GAKqBlvE,GAChC,CACEysE,GACAqC,GACAtjB,GACA+M,GACA+T,GACA3D,GACA6F,IAEF1F,IAGWgE,GAKkD9sE,GAC7D,CAACosE,GAA+B0C,KAChC,CAAClC,EAAkD5H,KAC1C,CAAE7kC,SAAUysC,EAAwBn5C,QAAyB,MAAfuxC,EAAqBA,kBAkCxEmK,GAA0BA,CAC9BC,EACAr2E,EACAs2E,EACAC,EACAC,EACAxK,EACAyK,KAEA,GAAKJ,GAAeE,GAAoBC,GAAqBxK,GAAiBsK,EAA9E,CAGA,IAAMI,EAAW/qC,GAAgB0qC,EAAYC,GAC7C,GAAKI,EAAL,CAGA,IAAMC,ExKsdgCC,EAACF,EAAoB12E,IAC5C,YAAXA,EACK02E,EAAS/3E,MAGX+3E,EAASxuC,OwK3dgB0uC,CAAyBF,EAAU12E,GAE7DisE,EAAcsI,GAClBoC,EACAF,EACAzK,EACAuK,EACAC,GAGInqC,ED9MgCwqC,EACtC72E,EACAgsE,EACAC,EACAyK,KAEA,IAAM95E,EAAQovE,EAAarvE,MAAKm7D,GAAQA,GAAQA,EAAKniF,QAAUs2F,IAE/D,GAAIrvE,EAAO,CACT,GAAe,YAAXoD,EAAsB,CACxB,IAAMrB,EAAQ/B,EAAMqlB,YACZimB,OAAAA,GAAWwuC,EAEnB,OAAA34E,GAAAA,GAAAA,GAAA,GACK24E,GACAzrC,GAAiByrC,EAASz4E,GAAIy4E,EAASx4E,GAAIgqC,EAAQvpC,IAAM,IAC5DA,MAAAA,EACAupC,OAAAA,GAEJ,CAEA,IAAMA,EAAStrC,EAAMqlB,YACf,MAAEtjB,GAAU+3E,EAElB,OAAA34E,GAAAA,GAAAA,GAAA,GACK24E,GACAzrC,GAAiByrC,EAASz4E,GAAIy4E,EAASx4E,GAAIgqC,EAAQvpC,IAAM,IAC5DA,QACAupC,UAEJ,CAEA,MAAO,CACLvpC,MAAO,EACP2pC,WAAW,EACXrqC,GAAI,EACJC,GAAI,EACJstC,SAAU,EACVO,YAAa,EACbC,YAAa,EACb9D,OAAQ,EACRqD,WAAY,EACZl1D,EAAG,EACHmD,EAAG,EACJ,ECkKyCq9F,CAAyB72E,EAAQgsE,EAAcC,EAAayK,GAEtG,MAAO,CAAEzK,YAAat0F,OAAOs0F,GAAc5/B,mBAb3C,CAJA,CAiB6D,ECnPlDyqC,GAIc7vE,IACxBrE,GAA6BA,EAAMq1D,OAAO8e,YAC3C,CAACr+E,EAAsBu/D,IAA+BA,IACtD,CAACv/D,EAAsBs+E,EAA6B9oD,IAAwBA,IAC5E,CAAC6oD,EAAW9e,EAAQ/pC,KAClB,GAAc,MAAV+pC,EAAJ,CAGA,IAAMr7D,EAAQm6E,EAAU9e,GACxB,GAAa,MAATr7D,EAGJ,OAAIsxB,EACKtxB,EAAMq6E,gBAERr6E,EAAM1mB,OARb,CAQoB,IAIXghG,GAA8BjwE,IACxCrE,GAA6BA,EAAMq1D,OAAO8e,YAC3CA,IACE,IAAMI,EAAa5mG,OAAOmI,KAAKq+F,GAC5Bj+F,KAAIs+F,GAAa96B,SAAS86B,EAAW,MACrCnjG,OAAO1D,OAAOgM,OAAOw6E,KAExB,OADsB1lF,MAAM8F,KAAK,IAAIgB,IAAIg/F,IACpBn6F,MAAK,CAACC,EAAGC,IAAMD,EAAIC,GAAE,GAE5C,CACEgoB,eAAgB,CACdpB,oBrB3BC,SAAuC7mB,EAAqBC,GACjE,GAAID,EAAE9K,SAAW+K,EAAE/K,OAAQ,CACzB,IAAK,IAAIiC,EAAI,EAAGA,EAAI6I,EAAE9K,OAAQiC,IAC5B,GAAI6I,EAAE7I,KAAO8I,EAAE9I,GACb,OAAO,EAGX,OAAO,CACT,CACA,OAAO,CACT,K,kgCsBEA,IAEM6gC,GAA4B,CAChC8hE,UAAWxmG,OAAOgM,OAAOw6E,IAAiBz7D,QACxC,CAACoE,EAA+BrlB,IAAe0jB,GAAAA,GAAA,GAC1C2B,GAAG,IACN,CAACrlB,GAAU,CACTnE,aAASjB,EACTgiG,qBAAiBhiG,EACjBoiG,UAAW,MAToB,CAAC,IAgBlCC,GAAmB,IAAIn/F,IAAY5H,OAAOgM,OAAOw6E,KAKvD,IAAMwgB,GAAcxiE,GAAY,CAC9BnhC,KAAM,SACNqhC,aAAY,GACZ/G,SAAU,CACRspE,qBAAsB,CACpB3qE,QAASA,CAACjK,EAAO6K,KACf,IAAM,OAAEwqD,GAAWxqD,EAAO1M,QACtB6B,EAAMm0E,UAAU9e,GAClBr1D,EAAMm0E,UAAU9e,GAAQof,WAAa,EAErCz0E,EAAMm0E,UAAU9e,GAAU,CACxBof,UAAW,EACXnhG,aAASjB,EACTgiG,qBAAiBhiG,EAErB,EAEF0hC,QAAS2I,MAEXm4D,uBAAwB,CACtB5qE,QAASA,CAACjK,EAAO6K,KACf,IAAM,OAAEwqD,GAAWxqD,EAAO1M,QACtB6B,EAAMm0E,UAAU9e,KAClBr1D,EAAMm0E,UAAU9e,GAAQof,WAAa,EAQjCz0E,EAAMm0E,UAAU9e,GAAQof,WAAa,IAnCnD,SAAyBpf,GACvB,OAAOqf,GAAiBllG,IAAI6lF,EAC9B,CAiCyDyf,CAAgBzf,WACtDr1D,EAAMm0E,UAAU9e,GAE3B,EAEFthD,QAAS2I,MAEXq4D,4BAA6B,CAC3B9qE,QAASA,CAACjK,EAAO6K,KACf,IAAM,OAAEwqD,EAAM,QAAE/hF,EAAO,WAAEg4C,GAAezgB,EAAO1M,QAC3C6B,EAAMm0E,UAAU9e,GACd/pC,EACFtrB,EAAMm0E,UAAU9e,GAAQgf,gBAA4B/gG,EAEpD0sB,EAAMm0E,UAAU9e,GAAQ/hF,QAAoBA,EAG9C0sB,EAAMm0E,UAAU9e,GAAU,CACxBof,UAAW,EACXnhG,QAASg4C,OAAaj5C,EAAsBiB,EAC5C+gG,gBAAiB/oD,EAAuBh4C,OAAWjB,EAEvD,EAEF0hC,QAAS2I,MAEXs4D,8BAA+B,CAC7B/qE,QAASA,CAACjK,EAAO6K,KACf,IAAM,OAAEwqD,GAAWxqD,EAAO1M,QACtB6B,EAAMm0E,UAAU9e,KACdxqD,EAAO1M,QAAQmtB,WACjBtrB,EAAMm0E,UAAU9e,GAAQgf,qBAAkBhiG,EAE1C2tB,EAAMm0E,UAAU9e,GAAQ/hF,aAAUjB,EAEtC,EAEF0hC,QAAS2I,UAKF,qBACXk4D,GAAoB,uBACpBC,GAAsB,4BACtBE,GAA2B,8BAC3BC,IACEL,GAAY3gE,QAEHihE,GAAgBN,GAAY1qE,QC3ElC,SAASirE,GAAWl6E,GAAyC,IAAxC,OAAEq6D,EAAM,SAAEpiE,GAA4B+H,EAW1Dm6E,EANmB/pD,WAMmC/4C,IAAXgjF,GAAmC,IAAXA,EAEnE/pC,EAAa1E,KAEbjnB,EAAWF,MACjB5P,EAAAA,EAAAA,kBAAgB,IACTslF,GAULx1E,EAASi1E,GAAqB,CAAEvf,YACzB,KACL11D,EAASk1E,GAAuB,CAAExf,WAAU,GAVrCh7D,IAYR,CAACsF,EAAU01D,EAAQ8f,IAEtB,IAAMC,EAAqCt1E,IAAeE,GACxDk0E,GAA0Bl0E,EAAOq1D,EAAQ/pC,KAG3C,OAAK6pD,EAKAC,GASE9gD,EAAAA,EAAAA,cAAarhC,EAAUmiF,GAHrB,KATAniF,CAaX,C,6tCC7DA,SAASoiF,GAAYr6E,GAQlB,IARmB,OACpBs6E,EAAM,WACNC,EAAU,YACVC,GAKDx6E,EACC,OAAIrI,EAAAA,EAAAA,gBAAe2iF,IACVG,EAAAA,EAAAA,cAAaH,EAAQE,IAEvBplF,EAAAA,EAAAA,eAAcmlF,EAAYC,EACnC,CAEO,SAASE,GAAe9iF,GAA6B,IAAA+iF,EAWtDC,EAAWL,EAAsCM,GAV/C,WAAEx2D,EAAU,QAAElhB,EAAO,MAAEprB,EAAK,OAAEqtC,EAAM,oBAAE01D,EAAmB,OAAE14E,EAAM,OAAEk4E,EAAM,iBAAEjK,EAAgB,UAAEzX,GACjGhhE,EAGI62C,EAAmBpqB,EACnB02D,EAAgB53E,EAChB63E,EAAqBjjG,EAC3B,IAAKuiG,IAAW7rC,GAAmC,iBAAdmqB,GAAqD,SAArByX,EACnE,OAAO,KAIT,GAAkB,iBAAdzX,EACFgiB,EAAYnsC,EACZ8rC,EAAa92C,GACbo3C,EAAkB1hB,GAAgBO,gBAC7B,GAAkB,aAAdd,EACTgiB,ECtEG,SACLx4E,EACAqsC,EACArpB,EACA01D,GAEA,IAAMr4E,EAAWq4E,EAAsB,EAEvC,MAAO,CACL73E,OAAQ,OACRD,KAAM,OACNvqB,EAAc,eAAX2pB,EAA0BqsC,EAAiBh2D,EAAIgqB,EAAW2iB,EAAOtb,KAAO,GAC3EluB,EAAc,eAAXwmB,EAA0BgjB,EAAOrb,IAAM,GAAM0kC,EAAiB7yD,EAAI6mB,EACrEvK,MAAkB,eAAXkK,EAA0B04E,EAAsB11D,EAAOltB,MAAQ,EACtEC,OAAmB,eAAXiK,EAA0BgjB,EAAOjtB,OAAS,EAAI2iF,EAE1D,CDsDgBG,CAAmB74E,EAAQqsC,EAAkBrpB,EAAQ01D,GACjEP,EAAa5uC,GACbkvC,EAAkB1hB,GAAgBG,qBAC7B,GAAe,WAAXl3D,GAAuBnB,GAAkBwtC,GAAmB,CACrE,IAAM,GAAEpuC,EAAE,GAAEC,EAAE,OAAEgqC,EAAM,WAAEqD,EAAU,SAAEC,GAAaY,GAAsBC,GACvEmsC,EAAY,CACVv6E,KACAC,KACAqtC,aACAC,WACAO,YAAa7D,EACb8D,YAAa9D,GAEfiwC,EAAaxqC,GACb8qC,EAAkB1hB,GAAgBO,UACpC,MACEkhB,EAAY,CAAEj4C,OAAQsO,GAAgB7uC,EAAQqsC,EAAkBrpB,IAChEm1D,EAAal3C,GACbw3C,EAAkB1hB,GAAgBO,WAGpC,IAAMwhB,EACc,iBAAXZ,GAAuB,cAAeA,EAASA,EAAOjiF,eAAYhhB,EAErEmjG,EAAWr6E,GAAAA,GAAAA,GAAAA,GAAA,CACf8C,OAAQ,OACR86B,cAAe,QACZ3Y,GACAw1D,GACAljF,EAAiC4iF,IAAO,IAC3Cn3E,QAAS43E,EACTI,aAAcH,EACd3iF,UAAWnB,EAAK,0BAA2BgkF,KAG7C,OACEz/F,EAAAA,cAACy+F,GAAW,CAAC7f,OAAoB,QAAdsgB,EAAE/iF,EAAMyiE,cAAM,IAAAsgB,EAAAA,EAAIE,GACnCp/F,EAAAA,cAAC4+F,GAAY,CAACC,OAAQA,EAAQC,WAAYA,EAAYC,YAAaA,IAGzE,CAUO,SAASY,GAAOxjF,GACrB,IAAMkjF,EAAsBtE,KACtBpxD,EAASsK,KACTttB,EAAS4tB,KACT4oC,EAAYgf,KAElB,OAA2B,MAAvBkD,GAAyC,MAAV11D,GAA4B,MAAVhjB,GAA+B,MAAbw2D,EAC9D,KAIPn9E,EAAAA,cAACi/F,GAAc5hF,GAAA,GACTlB,EAAK,CACTwtB,OAAQA,EACRhjB,OAAQA,EACR04E,oBAAqBA,EACrBliB,UAAWA,IAGjB,CEpJO,IAAMyiB,IAAuBpiF,EAAAA,EAAAA,eAAkC,MAEzDqiF,GAAmBA,KAA0BniF,EAAAA,EAAAA,YAAWkiF,ICCrE,IAAME,GAAwC,I,QAIjCC,GAAqB,6BAErBC,GAAmB,2BCkBnBC,GAA+CA,CAC1Dl6E,EACAm6E,KAEA,GAAKA,GACAloG,MAAMkH,QAAQ6mB,GAAnB,CACA,IAAMo6E,EAAWxgG,OAAOsjE,SAASi9B,EAAU,IAC3C,IAAI99E,GAAM+9E,GAGV,OAAOp6E,EAAKo6E,EAL8B,CAKrB,EAUjBC,GAAe1kE,GAAY,CAC/BnhC,KAAM,UACNqhC,aATiC,CACjCuhD,UAAW,GACXqZ,uBAAwBA,KAAe,EACvC/Y,kBAAc7hF,EACdu2F,wBAAyB,QAMzBt9D,SAAU,CACRwrE,mBAAqB92E,IACO,MAAtBA,EAAMk0D,eACRl0D,EAAMk0D,aAAermF,OAAO,wBAC9B,KAKOkpG,GAAiBF,GAAa5sE,SAE9B,mBAAE6sE,IAAuBD,GAAa7iE,QC5D5C,SAASgjE,GAA+Bh3E,GAC7C,OAAOA,EAAM44D,QAAQmR,eACvB,CCuCO,IASDkN,GAAiB9kE,GAAY,CACjCnhC,KAAM,YACNqhC,aAXmD,CACnDy9C,eAAWz9E,EACX69E,kBAAc79E,EACd89E,eAAgB,EAChBF,aAAc,GAQd3kD,SAAU,CACR4rE,YAAAA,CAAal3E,EAAO6K,GAElB,GADA7K,EAAM8vD,UAAsBjlD,EAAO1M,QACb,MAAlB0M,EAAO1M,QAGT,OAFA6B,EAAMmwD,eAAiB,OACvBnwD,EAAMiwD,aAAe,GAGnBplD,EAAO1M,QAAQ5uB,OAAS,GAAKywB,EAAMiwD,eAAiBplD,EAAO1M,QAAQ5uB,OAAS,IAC9EywB,EAAMiwD,aAAeplD,EAAO1M,QAAQ5uB,OAAS,EAEjD,EACA4nG,eAAAA,CAAgBn3E,EAAO6K,GACrB7K,EAAMkwD,aAAerlD,EAAO1M,OAC9B,EACAi5E,sBAAAA,CAAuBp3E,EAAO6K,GAC5B,IAAM,WAAE0T,EAAU,SAAEC,GAAa3T,EAAO1M,QACtB,MAAdogB,IACFve,EAAMmwD,eAAiB5xC,GAET,MAAZC,IACFxe,EAAMiwD,aAAezxC,EAEzB,MAIS,aAAE04D,GAAY,uBAAEE,GAAsB,gBAAED,IAAoBF,GAAejjE,QAE3EqjE,GAAmBJ,GAAehtE,Q,+gCCnE/C,SAASqtE,KACP,IAAMC,EAAWz3E,GAAe+zD,IAC1B2jB,EAAiB13E,GAAem0D,IAChCt0D,EAAWF,KACXu0D,EAAal0D,GAAei0D,IAC5BqV,EAAetpE,GAAeswE,IAC9BhzE,EAAS4tB,KACT53B,EAAU+2B,KAEV92B,EAAYyM,IAAeE,GAASA,EAAMm5B,UAAU9lC,aAC1Dtc,EAAAA,EAAAA,YAAU,KACR,GAAgB,MAAZwgG,EAEF,OAAOl9E,GAGT,IAAMhqB,EAAWA,CAAConG,EAAiC5sE,EAAyC36B,KAS9D,IAAAwnG,EAR5B,GAAIF,IAAmBtnG,GAInBqnG,IAAaE,EAIjB,GAAmB,UAAfzjB,GAwBJ,GAAoB,MAAhBoV,EAAJ,CAKA,IAAIuO,EACJ,GAA0B,mBAAf3jB,EAA2B,CAKpC,IAAM4jB,EAAyC,CAC7C5B,mBAA4C,MAAxBnrE,EAAO1M,QAAQprB,WAAgBV,EAAY+D,OAAOy0B,EAAO1M,QAAQprB,OACrF8kG,gBAAiBhtE,EAAO1M,QAAQ25B,OAChCuxC,YAAqC,MAAxBx+D,EAAO1M,QAAQprB,WAAgBV,EAAY+D,OAAOy0B,EAAO1M,QAAQprB,OAC9Ew6F,YAAa1iE,EAAO1M,QAAQgP,MAC5Bs9D,cAAe5/D,EAAO1M,QAAQ0gB,QAC9B4qB,iBAAkB5+B,EAAO1M,QAAQkhB,YAG7B22D,EAAqBhiB,EAAWoV,EAAcwO,GACpDD,EAAavO,EAAa4M,EAC5B,KAA0B,UAAfhiB,IAET2jB,EAAavO,EAAarvE,MAAKm7D,GAAQngF,OAAOmgF,EAAKnnF,SAAW88B,EAAO1M,QAAQgP,SAG/E,IAAM,WAAEkS,GAAexU,EAAO1M,QAE9B,GAAkB,MAAdw5E,IAAgD,IAA1B9sE,EAAO1M,QAAQ25B,QAAkC,MAAdzY,GAAiC,MAAXjsB,EAAnF,CAeA,IAAM,EAAE3f,EAAC,EAAEmD,GAAMyoC,EACXy4D,EAAiBv1F,KAAKkC,IAAIhR,EAAG2f,EAAQ3f,EAAI2f,EAAQF,OACjD6kF,EAAiBx1F,KAAKkC,IAAI7N,EAAGwc,EAAQxc,EAAIwc,EAAQD,QACjDs2C,EAA+B,CACnCh2D,EAAc,eAAX2pB,EAA0Bu6E,EAAWt4D,WAAay4D,EACrDlhG,EAAc,eAAXwmB,EAA0B26E,EAAiBJ,EAAWt4D,YAGrD24D,EAAahN,GAAmB,CACpClzC,OAAQjtB,EAAO1M,QAAQ25B,OACvBzY,WAAYoqB,EACZ5qB,QAAShU,EAAO1M,QAAQ0gB,QACxB9rC,MAAOgC,OAAO4iG,EAAW5kG,OACzBo6B,MAAOtC,EAAO1M,QAAQgP,MACtB68D,cAAen/D,EAAO1M,QAAQ6rE,cAC9BR,gBAAiB3+D,EAAO1M,QAAQqrE,kBAElC7pE,EAASq4E,EAnBT,MAZEr4E,EACEqrE,GAAmB,CACjBlzC,QAAQ,EACRzY,gBAAYhtC,EACZwsC,aAASxsC,EACTU,MAAO,KACPo6B,WAAO96B,EACP23F,mBAAe33F,EACfm3F,qBAAiBn3F,IAnCvB,OA1BE,GAAI+gB,SAAWyX,GAAe,QAAT6sE,EAAN7sE,EAAQ1M,eAAO,IAAAu5E,GAAfA,EAAiBr4D,YAAcxU,EAAO1M,QAAQ6rE,cAAe,CAC1E,IAAAiO,EAA0CptE,EAAO1M,QAAQkhB,YAAjD5rC,EAAAA,EAAGmD,EAAAA,GAA4BqhG,EAAtBC,E,6WAAoBxkF,CAAAukF,EAAAtkF,KAC7BlgB,EAAG0kG,EAASvhG,EAAGwhG,EAASllF,MAAOmlF,EAAallF,OAAQmlF,GAAiBztE,EAAO1M,QAAQ6rE,cAEtFuO,EAAgBp9E,GAAAA,GAAA,GACjB+8E,GAAoB,IACvBzkG,EAAG2f,EAAQ3f,GAAK4kG,GAAe5kG,EAAI0kG,GAAWE,EAAc,GAAKjlF,EAAQF,MACzEtc,EAAGwc,EAAQxc,GAAK0hG,GAAgB1hG,EAAIwhG,GAAWE,EAAe,GAAKllF,EAAQD,SAG7EwM,EAAQxE,GAAAA,GAAC,CAAC,EACL0P,GAAM,IACT1M,QAAOhD,GAAAA,GAAA,GACF0P,EAAO1M,SAAO,IACjBkhB,WAAYk5D,MAGlB,MACE54E,EAASkL,EAkEO,EAItB,OAFA0rE,GAAYhkG,GAAGikG,GAAoBnmG,GAE5B,KACLkmG,GAAY9jG,IAAI+jG,GAAoBnmG,EAAS,CAC9C,GACA,CAACgjB,EAAWsM,EAAU63E,EAAgBD,EAAUvjB,EAAYoV,EAAchsE,EAAQhK,GACvF,CAoCO,SAASolF,KACd,IAAM74E,EAAWF,MACjB1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASm3E,KAAqB,GAC7B,CAACn3E,IAEJ23E,KAxCF,WACE,IAAMC,EAAWz3E,GAAe+zD,IAC1B2jB,EAAiB13E,GAAem0D,IAChCt0D,EAAWF,MACjB1oB,EAAAA,EAAAA,YAAU,KACR,GAAgB,MAAZwgG,EAEF,OAAOl9E,GAGT,IAAMhqB,EAAWA,CAAConG,EAAiC5sE,EAA4B36B,KACzEsnG,IAAmBtnG,GAInBqnG,IAAaE,GACf93E,EAASy3E,GAAuBvsE,GAClC,EAIF,OAFA0rE,GAAYhkG,GAAGkkG,GAAkBpmG,GAE1B,KACLkmG,GAAY9jG,IAAIgkG,GAAkBpmG,EAAS,CAC5C,GACA,CAACsvB,EAAU63E,EAAgBD,GAChC,CAgBEkB,EACF,C,kgCC/IA,SAASn5E,GAActF,GACrB,OAAOA,EAAM6kB,OACf,CA0MA,IAAM65D,GAA+B,GAExBC,GAAsB,CACjCliD,mBAAoB,CAAEhjD,GAAG,EAAOmD,GAAG,GACnCmhD,kBAAmB,IACnBC,gBAAiB,OACjB0/B,OAAQ,EACRhjC,aAAc,CAAC,EACf4gD,QAAQ,EACRsD,YAAY,EACZ5jB,eAAe,EACf98B,kBAAmB,OACnB3zB,WAAY,OACZ/F,UAAW,CAAC,EACZw2B,WAAY,CAAC,EACb5U,OAAQ,GACRsW,iBAAkB,CAAEjjD,GAAG,EAAOmD,GAAG,GACjC69C,UAAW,MACXy1C,QAAS,QACT/xC,gBAAgB,EAChB1E,aAAc,CAAC,GAgBV,SAASolD,GAA0D95E,GAA2C,IAAAqrB,EAAApvB,EAC7GpI,EAAQ+J,GAAoBoC,EAAc45E,KAE9C7gD,OAAQ0zC,EAAe,mBACvB/0C,EAAkB,kBAClBsB,EAAiB,gBACjBC,EAAe,QACf7E,EAAO,WACPylD,EAAU,kBACV1gD,EAAiB,OACjB9X,EAAM,cACN6S,EAAa,SACbe,EAAQ,iBACR0C,EAAgB,eAChByB,EAAc,aACd1E,EAAY,OACZ6hD,EAAM,OACNtM,EAAM,QACNkB,EAAO,aACPC,EACAz2C,OAAQC,EAAe,OACvB+jC,GACE9kE,EACE+M,EAAWF,KACXq5E,EACoB,iBAAjB3O,EAA4Bp1F,OAAOo1F,GAAgBA,GAE5DpzF,EAAAA,EAAAA,YAAU,KACR4oB,EACE4qE,GAAwB,CACtBvB,SACAkB,UACAxS,SACA5/B,OAAQ0zC,EACRrB,aAAc2O,IAEjB,GACA,CAACn5E,EAAUqpE,EAAQkB,EAASxS,EAAQ8T,EAAiBsN,IAExD,IAAM1lF,EAAU+2B,KACV8K,EAAqBiE,KACrBmyC,E1B9RD,SAA6BrC,GAClC,OAAOlpE,IAAeE,GAASkpE,GAAuBlpE,EAAOgpE,IAC/D,C0B4R2B+P,CAAoB/P,IAEvC,YAAEK,EAAW,SAAE7kC,GACmF,QADzEpa,EAC7BtqB,IAAeE,GAASmxE,GAAsBnxE,EAAOqrE,EAAkBnB,EAAS4O,YAAsB,IAAA1uD,EAAAA,EAAI,CAAC,EAEvG4uD,EAAmBl5E,IAAeE,GACtCuzE,GAAqBvzE,EAAOqrE,EAAkBnB,EAAS4O,KAGnDG,EAAiBn5E,IAAeE,GACpC2wE,GAAkB3wE,EAAOqrE,EAAkBnB,EAAS4O,KAGhDz5D,EAAqCvf,IAAeE,GACxDszE,GAAuBtzE,EAAOqrE,EAAkBnB,EAAS4O,KAErD36E,EAAsC66E,EACtCE,EAA2B5C,KAO3B6C,EAAoD,QAA9Bn+E,EAAGwwE,QAAAA,EAAmBhnC,SAAQ,IAAAxpC,GAAAA,GACnD4J,EAAiBI,GAAqBN,GAAiB,CAACvG,EAASg7E,IAClE3jD,EAAkC,SAArB61C,EAA8B4N,OAAiB5mG,GDpJ7D,SACLg5F,EACAnB,EACAzgC,EACA8jC,EACAlE,EACAwO,GAEA,IAAMpN,EAAgB3qE,IAAeE,GAASozE,GAAqBpzE,EAAOqrE,EAAkBnB,KACtFkP,EAAqBt5E,GAAem0D,IACpCH,EAASh0D,GAAe+zD,IACxBG,EAAal0D,GAAei0D,IAC5BqX,EAAetrE,GAAek3E,IAC9BqC,EAA6BjO,aAAY,EAAZA,EAActzC,OAC3C1kC,EAAU+2B,MAEhBpzC,EAAAA,EAAAA,YAAU,KACR,IAAIsiG,GAQU,MAAVvlB,GAOsB,MAAtBslB,EAAJ,CAOA,IAAMpB,EAAahN,GAAmB,CACpClzC,OAAQ+/C,EACRx4D,WAAYoqB,EACZ5qB,QAAS4rD,EACT13F,MAAOs2F,EACPl8D,MAA8B,iBAAhBogE,EAA2Bx4F,OAAOw4F,GAAeA,EAC/DvD,cAAe52E,EACfo2E,qBAAiBn3F,IAEnBkkG,GAAY3kG,KAAK4kG,GAAoB1iB,EAAQkkB,EAAYoB,EAVzD,CAU4E,GAC3E,CACDC,EACA5vC,EACAghC,EACApB,EACAkE,EACA6L,EACAtlB,EACAE,EACA6jB,EACAzkF,GAEJ,CCyFEkmF,CAA+BjO,EAAkBnB,EAAS7qD,EAAYmW,EAAY6zC,EAAa8P,GAE/F,IAAMI,EAAgB5lD,QAAAA,EAAmBulD,EACzC,GAAqB,MAAjBK,GAAoC,MAAXnmF,GAAuC,MAApBi4E,EAC9C,OAAO,KAGT,IAAIr4C,EAA+B70B,QAAAA,EAAWu6E,GACzCS,IACHnmD,EAAe0lD,IAGbE,GAAc5lD,EAAazjD,SAC7ByjD,EAAe5zB,GACb4zB,EAAat9C,QAAOskB,GAAwB,MAAfA,EAAMjsB,SAAiC,IAAfisB,EAAMwrB,MAAiB5yB,EAAMoiE,iBAClF/hC,EACA3zB,KAGJ,IAAM24B,EAAajF,EAAazjD,OAAS,EAEnCiqG,EACJ/iG,EAAAA,cAACqgD,GAAkB,CACjBL,mBAAoBA,EACpBsB,kBAAmBA,EACnBC,gBAAiBA,EACjBE,kBAAmBA,EACnBJ,OAAQqhD,EACR95D,WAAYA,EACZ4Y,WAAYA,EACZ7X,OAAQA,EACR4T,SAAUA,EACV0C,iBAAkBA,EAClByB,eAAgBA,EAChB/kC,QAASA,EACTqgC,aAAcA,EACd7uB,gBAAiBA,EACjBwzB,SAAUpzB,EACVqzB,mBAAoBx7C,QAAQ82C,IA9UlC,SACER,EACAvgC,GAEA,OAAInc,EAAAA,eAAqB08C,GAChB18C,EAAAA,aAAmB08C,EAASvgC,GAEd,mBAAZugC,EACF18C,EAAAA,cAAoB08C,EAAgBvgC,GAGtCnc,EAAAA,cAACy+C,GAA0BtiC,EACpC,CAoUOijC,CAAc1C,EAAOh4B,GAAAA,GAAA,GACjBvI,GAAK,IACRuL,QAAS60B,EACT7lB,MAAOqoB,EACPsC,OAAQqhD,EACR9P,cACAhqD,aACA4V,yBAKN,OACEx+C,EAAAA,cAAAA,EAAAA,SAAA,MAEG69C,EAAAA,EAAAA,cAAaklD,EAAgBD,GAC7BJ,GACC1iG,EAAAA,cAAC2/F,GAAM,CACLd,OAAQA,EACRjK,iBAAkBA,EAClBhsD,WAAYA,EACZlhB,QAAS60B,EACTjgD,MAAOs2F,IAKjB,CCnYO,IAAMoQ,GAAkCC,GAAkB,K,8bAEjED,GAAKx6F,YAAc,O,kgCChBnB,IAKI06F,GAAax+E,GAAA,GAL4B,CAC3Cy+E,UAAW,IACXC,aAAa,IAKXC,GAAc,IChBX,MAKLp9F,WAAAA,CAAYq9F,GAAiB/iD,GAAA,aAJb,IAAIj8C,KAKlBxN,KAAKwsG,QAAUA,CACjB,CAEA9gG,GAAAA,CAAI9D,GACF,IAAMpH,EAAQR,KAAKmsB,MAAMzgB,IAAI9D,GAK7B,YAJc9C,IAAVtE,IACFR,KAAKmsB,MAAMzU,OAAO9P,GAClB5H,KAAKmsB,MAAMhe,IAAIvG,EAAKpH,IAEfA,CACT,CAEA2N,GAAAA,CAAIvG,EAAQpH,GACV,GAAIR,KAAKmsB,MAAMlqB,IAAI2F,GACjB5H,KAAKmsB,MAAMzU,OAAO9P,QACb,GAAI5H,KAAKmsB,MAAM9U,MAAQrX,KAAKwsG,QAAS,CAC1C,IAAMC,EAAWzsG,KAAKmsB,MAAM5jB,OAAOq1B,OAAOp9B,MAC1B,MAAZisG,GACFzsG,KAAKmsB,MAAMzU,OAAO+0F,EAEtB,CACAzsG,KAAKmsB,MAAMhe,IAAIvG,EAAKpH,EACtB,CAEA83B,KAAAA,GACEt4B,KAAKmsB,MAAMmM,OACb,CAEAjhB,IAAAA,GACE,OAAOrX,KAAKmsB,MAAM9U,IACpB,GDpB2C+0F,GAAcC,WACrDK,GAAa,CACjBjmD,SAAU,WACVjvB,IAAK,WACLD,KAAM,EACN7F,QAAS,EACTC,OAAQ,EACR01B,OAAQ,OACRC,WAAY,OAERqlD,GAAsB,4BAoB5B,IAAMC,GAAqBA,CAACC,EAAuB9mF,KACjD,IACE,IAAI+mF,EAAkBlqF,SAASmqF,eAAeJ,IACzCG,KACHA,EAAkBlqF,SAASC,cAAc,SACzBmqF,aAAa,KAAML,IACnCG,EAAgBE,aAAa,cAAe,QAC5CpqF,SAAS+c,KAAKstE,YAAYH,IAI5B1sG,OAAO21B,OAAO+2E,EAAgB/mF,MAAO2mF,GAAY3mF,GACjD+mF,EAAgBI,YAAc,GAAHppG,OAAM+oG,GAEjC,IAAMnlF,EAAOolF,EAAgBl1E,wBAC7B,MAAO,CAAEjS,MAAO+B,EAAK/B,MAAOC,OAAQ8B,EAAK9B,OAC3C,CAAE,MAAA8zC,GACA,MAAO,CAAE/zC,MAAO,EAAGC,OAAQ,EAC7B,GAGWunF,GAAgB,SAACN,GAA2D,IAApC9mF,EAAoBnhB,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3E,GAAIioG,SAAuCh2C,GAAOE,MAChD,MAAO,CAAEpxC,MAAO,EAAGC,OAAQ,GAI7B,IAAKwmF,GAAcE,YACjB,OAAOM,GAAmBC,EAAM9mF,GAGlC,IAAMqnF,EAjDR,SAAwBP,EAAuB9mF,GAE7C,IAAMsnF,EAAWtnF,EAAMsnF,UAAY,GAC7BC,EAAavnF,EAAMunF,YAAc,GACjCC,EAAaxnF,EAAMwnF,YAAc,GACjCC,EAAYznF,EAAMynF,WAAa,GAC/BC,EAAgB1nF,EAAM0nF,eAAiB,GACvCC,EAAgB3nF,EAAM2nF,eAAiB,GAE7C,MAAO,GAAP5pG,OAAU+oG,EAAI,KAAA/oG,OAAIupG,EAAQ,KAAAvpG,OAAIwpG,EAAU,KAAAxpG,OAAIypG,EAAU,KAAAzpG,OAAI0pG,EAAS,KAAA1pG,OAAI2pG,EAAa,KAAA3pG,OAAI4pG,EAC1F,CAuCmBC,CAAed,EAAM9mF,GAChC6nF,EAAerB,GAAY7gG,IAAI0hG,GAErC,GAAIQ,EACF,OAAOA,EAIT,IAAMzsG,EAASyrG,GAAmBC,EAAM9mF,GAKxC,OAFAwmF,GAAYp+F,IAAIi/F,EAAUjsG,GAEnBA,CACT,EE5FA,IAAM0sG,GAA2B,+DAC3BC,GAAwB,+DACxBC,GAAwB,uDACxBC,GAAkB,iCAIlBC,GAAmD,CACvDC,GAAI,GAAK,KACTC,GAAI,GAAK,KACTC,GAAI,GAAK,GACTC,GAAI,GACJC,GAAI,GACJx2E,EAAG,GAAK,MACR+2B,GAAI,GAGA0/C,GAAwD,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MAMlG,IAAMC,GAAU,MAMhB,MAAMC,GACJ,YAAOtsB,CAAM7nE,GAAa,IAAAo0F,GACjB,CAAEC,EAAQjmD,GAAiC,QAA5BgmD,EAAGV,GAAgB9hC,KAAK5xD,UAAI,IAAAo0F,EAAAA,EAAI,GAEtD,OAAc,MAAVC,EACKF,GAAWrrF,IAGb,IAAIqrF,GAAWxiF,WAAW0iF,GAASjmD,QAAAA,EAAQ,GACpD,CAIAv5C,WAAAA,CACS0b,EACA69B,GACP,KAFO79B,IAAAA,EAAW,KACX69B,KAAAA,EAEP1oD,KAAK6qB,IAAMA,EACX7qB,KAAK0oD,KAAOA,EAERp9B,GAAMT,KACR7qB,KAAK0oD,KAAO,IAGD,KAATA,GAAgBqlD,GAAsB58F,KAAKu3C,KAC7C1oD,KAAK6qB,IAAMzH,IACXpjB,KAAK0oD,KAAO,IApClB,SAAyBA,GACvB,OAAO6lD,GAAuBr5F,SAASwzC,EACzC,CAqCQkmD,CAAgBlmD,KAClB1oD,KAAK6qB,IAlCX,SAAqBrqB,EAAekoD,GAClC,OAAOloD,EAAQytG,GAAiBvlD,EAClC,CAgCiBmmD,CAAYhkF,EAAK69B,GAC5B1oD,KAAK0oD,KAAO,KAEhB,CAEAzgD,GAAAA,CAAIqM,GACF,OAAItU,KAAK0oD,OAASp0C,EAAMo0C,KACf,IAAI+lD,GAAWrrF,IAAK,IAGtB,IAAIqrF,GAAWzuG,KAAK6qB,IAAMvW,EAAMuW,IAAK7qB,KAAK0oD,KACnD,CAEAzrC,QAAAA,CAAS3I,GACP,OAAItU,KAAK0oD,OAASp0C,EAAMo0C,KACf,IAAI+lD,GAAWrrF,IAAK,IAGtB,IAAIqrF,GAAWzuG,KAAK6qB,IAAMvW,EAAMuW,IAAK7qB,KAAK0oD,KACnD,CAEAomD,QAAAA,CAASx6F,GACP,MAAkB,KAAdtU,KAAK0oD,MAA8B,KAAfp0C,EAAMo0C,MAAe1oD,KAAK0oD,OAASp0C,EAAMo0C,KACxD,IAAI+lD,GAAWrrF,IAAK,IAGtB,IAAIqrF,GAAWzuG,KAAK6qB,IAAMvW,EAAMuW,IAAK7qB,KAAK0oD,MAAQp0C,EAAMo0C,KACjE,CAEAvtC,MAAAA,CAAO7G,GACL,MAAkB,KAAdtU,KAAK0oD,MAA8B,KAAfp0C,EAAMo0C,MAAe1oD,KAAK0oD,OAASp0C,EAAMo0C,KACxD,IAAI+lD,GAAWrrF,IAAK,IAGtB,IAAIqrF,GAAWzuG,KAAK6qB,IAAMvW,EAAMuW,IAAK7qB,KAAK0oD,MAAQp0C,EAAMo0C,KACjE,CAEAhgD,QAAAA,GACE,MAAO,GAAP5E,OAAU9D,KAAK6qB,KAAG/mB,OAAG9D,KAAK0oD,KAC5B,CAEAn0C,KAAAA,GACE,OAAO+W,GAAMtrB,KAAK6qB,IACpB,EAGF,SAASkkF,GAAoBC,GAC3B,GAAY,MAARA,GAAgBA,EAAK95F,SAASs5F,IAChC,OAAOA,GAIT,IADA,IAAIS,EAAUD,EACPC,EAAQ/5F,SAAS,MAAQ+5F,EAAQ/5F,SAAS,MAAM,KAAAg6F,GAC9C,CAAEC,EAAaC,EAAUC,GAAsD,QAAzCH,EAAGrB,GAAyB3hC,KAAK+iC,UAAQ,IAAAC,EAAAA,EAAI,GACpFI,EAAMb,GAAWtsB,MAAMgtB,QAAAA,EAAe,IACtCI,EAAMd,GAAWtsB,MAAMktB,QAAAA,EAAgB,IACvCluG,EAAsB,MAAbiuG,EAAmBE,EAAIR,SAASS,GAAOD,EAAIn0F,OAAOo0F,GACjE,GAAIpuG,EAAOoT,QACT,OAAOi6F,GAETS,EAAUA,EAAQpuF,QAAQgtF,GAA0B1sG,EAAOuH,WAC7D,CAEA,KAAOumG,EAAQ/5F,SAAS,MAAQ,kBAAkB/D,KAAK89F,IAAU,KAAAO,GACxD,CAAEL,EAAaC,EAAUC,GAAmD,QAAtCG,EAAG1B,GAAsB5hC,KAAK+iC,UAAQ,IAAAO,EAAAA,EAAI,GACjFF,EAAMb,GAAWtsB,MAAMgtB,QAAAA,EAAe,IACtCI,EAAMd,GAAWtsB,MAAMktB,QAAAA,EAAgB,IACvCluG,EAAsB,MAAbiuG,EAAmBE,EAAIrnG,IAAIsnG,GAAOD,EAAIryF,SAASsyF,GAC9D,GAAIpuG,EAAOoT,QACT,OAAOi6F,GAETS,EAAUA,EAAQpuF,QAAQitF,GAAuB3sG,EAAOuH,WAC1D,CAEA,OAAOumG,CACT,E,mbAzGgBxlD,CAAVglD,GAAU,MAWD,IAXTA,GAWwBrrF,IAAK,KAgGnC,IAAMqsF,GAAoB,eAc1B,SAASC,GAAmBC,GAC1B,IAAIV,EAAUU,EAAW9uF,QAAQ,OAAQ,IAIzC,OAHAouF,EAdF,SAA8BD,GAI5B,IAHA,IACI/sE,EADAgtE,EAAUD,EAGsC,OAA5C/sE,EAAQwtE,GAAkBvjC,KAAK+iC,KAAmB,CACxD,IAAO,CAAEW,GAA2B3tE,EACpCgtE,EAAUA,EAAQpuF,QAAQ4uF,GAAmBV,GAAoBa,GACnE,CAEA,OAAOX,CACT,CAIYY,CAAqBZ,GAC/BA,EAAUF,GAAoBE,EAGhC,CAUO,SAASa,GAAcH,GAC5B,IAAMxuG,EATD,SAAgCwuG,GACrC,IACE,OAAOD,GAAmBC,EAC5B,CAAE,MAAAj2C,GACA,OAAO80C,EACT,CACF,CAGiBuB,CAAuBJ,EAAW/rG,MAAM,GAAI,IAE3D,OAAIzC,IAAWqtG,GACN,GAGFrtG,CACT,C,qtBCpKA,IAAM6uG,GAAkB,6BAwBlBC,GAAsBxiF,IAA0F,IAAzF,SAAE/H,EAAQ,SAAEwqF,EAAQ,MAAEnqF,GAAiC0H,EAClF,IACE,IAAI0iF,EAAkB,GAatB,OAZKzjF,GAAUhH,KAEXyqF,EADED,EACMxqF,EAAShd,WAAW0zB,MAAM,IAE1B1W,EAAShd,WAAW0zB,MAAM4zE,KAQ/B,CAAEI,uBAJsBD,EAAMxnG,KAAI0nG,IAAQ,CAAGA,OAAM1qF,MAAOwnF,GAAckD,EAAMtqF,GAAOJ,UAI3D2qF,WAFdJ,EAAW,EAAI/C,GAAc,IAAUpnF,GAAOJ,MAGnE,CAAE,MAAA+zC,GACA,OAAO,IACT,GAQK,SAAS62C,GAAkB/vG,GAChC,MAAiB,UAAVA,GAA+B,WAAVA,GAAgC,QAAVA,GAA6B,YAAVA,CACvE,CA0HA,IAAMgwG,GAAYA,CAChBL,EACAM,EACAH,EACAI,IAEAP,EAAMhlF,QAAO,CAAChqB,EAA6B07B,KAAsB,IAApB,KAAEwzE,EAAI,MAAE1qF,GAAOkX,EACpD8zE,EAAcxvG,EAAOA,EAAOa,OAAS,GAE3C,GACE2uG,GACS,MAAThrF,IACc,MAAb8qF,GAAqBC,GAAcC,EAAYhrF,MAAQA,EAAQ2qF,EAAaznG,OAAO4nG,IAGpFE,EAAYR,MAAMltG,KAAKotG,GACvBM,EAAYhrF,OAASA,EAAQ2qF,MACxB,CAEL,IAAMM,EAA0B,CAAET,MAAO,CAACE,GAAO1qF,SACjDxkB,EAAO8B,KAAK2tG,EACd,CAEA,OAAOzvG,CAAM,GACZ,IAEC0vG,GAAmBV,GACvBA,EAAMhlF,QAAO,CAACre,EAAmBC,IAAuBD,EAAE6Y,MAAQ5Y,EAAE4Y,MAAQ7Y,EAAIC,IAI5E+jG,GAAgBA,CACpBjE,EACArnG,EACA0qG,EACAnqF,EACAgrF,EACAN,EACAH,EACAI,KAEA,IAAMM,EAAWnE,EAAKjpG,MAAM,EAAG4B,GAEzB2qG,EAAQF,GAAoB,CAChCC,WACAnqF,QACAL,SAAUsrF,EAjBC,MAoBb,IAAKb,EACH,MAAO,EAAC,EAAO,IAGjB,IAAMhvG,EAAwCqvG,GAC5CL,EAAMC,uBACNK,EACAH,EACAI,GAKF,MAAO,CAFcvvG,EAAOa,OAAS+uG,GAAYF,GAAgB1vG,GAAQwkB,MAAQ9c,OAAO4nG,GAElEtvG,EAAO,EAiFzB8vG,GAA4BvrF,GAEzB,CAAC,CAAEyqF,MADKzjF,GAAUhH,GAAyD,GAA7CA,EAAShd,WAAW0zB,MAAM4zE,IAC9CrqF,WAAO7gB,IAKbosG,GAAkBv6D,IAAsF,IAArF,MAAEhxB,EAAK,WAAE+qF,EAAU,SAAEhrF,EAAQ,MAAEK,EAAK,SAAEmqF,EAAQ,SAAEa,GAAgCp6D,EAE9G,IAAKhxB,GAAS+qF,KAAgB75C,GAAOE,MAAO,CAC1C,IAEMo6C,EAAalB,GAAoB,CAAEC,WAAUxqF,WAAUK,UAE7D,IAAIorF,EAMF,OAAOF,GAAyBvrF,GALhC,IAAQ0qF,uBAAwBgB,EAAKd,WAAYe,GAAOF,EAQ1D,MArG0BG,EAAA77D,EAE5B87D,EACAjB,EACAG,EACAC,KACyB,IALzB,SAAEK,EAAQ,SAAErrF,EAAQ,MAAEK,EAAK,SAAEmqF,GAAsCz6D,EAM7D+7D,EAAmBhmF,GAASulF,GAC5BlE,EAAOrlG,OAAOke,GAEd+rF,EAAgDjB,GACpDe,EACAd,EACAH,EACAI,GAGF,IAAKc,GAAoBd,EACvB,OAAOe,EAIT,KADkBA,EAAezvG,OAAS+uG,GAAYF,GAAgBY,GAAgB9rF,MAAQ9c,OAAO4nG,IAEnG,OAAOgB,EAST,IANA,IAIIC,EAJA78F,EAAQ,EACRC,EAAM+3F,EAAK7qG,OAAS,EAEpB2vG,EAAa,EAGV98F,GAASC,GAAO68F,GAAc9E,EAAK7qG,OAAS,GAAG,CACpD,IAAM8iF,EAAS9vE,KAAKO,OAAOV,EAAQC,GAAO,GACpC2hC,EAAOquC,EAAS,GAEf8sB,EAAkBzwG,GAAU2vG,GACjCjE,EACAp2D,EACAy5D,EACAnqF,EACAgrF,EACAN,EACAH,EACAI,IAEKmB,GAAsBf,GAC3BjE,EACA/nB,EACAorB,EACAnqF,EACAgrF,EACAN,EACAH,EACAI,GAWF,GARKkB,GAAqBC,IACxBh9F,EAAQiwE,EAAS,GAGf8sB,GAAoBC,IACtB/8F,EAAMgwE,EAAS,IAGZ8sB,GAAoBC,EAAoB,CAC3CH,EAAgBvwG,EAChB,KACF,CAEAwwG,GACF,CAIA,OAAOD,GAAiBD,CAAc,EA0B7BH,CACL,CAAEpB,WAAUxqF,WAAUqrF,WAAUhrF,SAPPqrF,EACZC,EASb1rF,EACArW,QAAQohG,GAEZ,CACA,OAAOO,GAAyBvrF,EAAS,EAGrCosF,GAAe,UAERC,GAAmB,CAC9BvjF,MAAO,EACP0hF,UAAU,EAEV8B,UAAW,SACXvhF,KAAMqhF,GACNG,WAAY,MACZvB,YAAY,EACZwB,WAAY,QAEZC,eAAgB,MAChBjsG,EAAG,EACHmD,EAAG,GAGQ+oG,IAAO5sF,EAAAA,EAAAA,aAAkC,CAACgM,EAAc/L,KACnE,IAAA4sF,EAUIjjF,GAAoBoC,EAAcugF,KATpC7rG,EAAGosG,EACHjpG,EAAGkpG,EAAM,WACTN,EAAU,UACVD,EAAS,KACTvhF,EAAI,WACJigF,EAAU,WACVwB,EAAU,eACVC,GAEDE,EADIhtF,EAAKc,GAAAksF,EAAAjsF,IAEJosF,GAAqC/oG,EAAAA,EAAAA,UAAQ,IAC1CynG,GAAgB,CACrBhB,SAAU7qF,EAAM6qF,SAChBxqF,SAAUL,EAAMK,SAChBqrF,SAAU1rF,EAAM0rF,SAChBL,aACA3qF,MAAOV,EAAMU,MACbJ,MAAON,EAAMM,SAEd,CAACN,EAAM6qF,SAAU7qF,EAAMK,SAAUL,EAAM0rF,SAAUL,EAAYrrF,EAAMU,MAAOV,EAAMM,SAE7E,GAAEyE,EAAE,GAAEC,EAAE,MAAEmE,EAAK,UAAE1I,EAAS,SAAEoqF,GAA2B7qF,EAAdotF,EAAStsF,GAAKd,EAAKq1C,IAElE,IAAKjvC,GAAW6mF,KAAY7mF,GAAW8mF,IAAmC,IAAxBC,EAAaxwG,OAC7D,OAAO,KAET,IAOI0wG,EAPExsG,EAAI2C,OAAOypG,IAAW9mF,GAASpB,GAAMA,EAAK,GAC1C/gB,EAAIR,OAAO0pG,IAAW/mF,GAASnB,GAAMA,EAAK,GAEhD,IAAK6mB,GAAoBhrC,KAAOgrC,GAAoB7nC,GAClD,OAAO,KAIT,OAAQ8oG,GACN,IAAK,QACHO,EAAU5C,GAAc,QAADhsG,OAASkuG,EAAS,MACzC,MACF,IAAK,SACHU,EAAU5C,GAAc,QAADhsG,QAAU0uG,EAAaxwG,OAAS,GAAK,EAAC,QAAA8B,OAAOmuG,EAAU,QAAAnuG,OAAOkuG,EAAS,WAC9F,MACF,QACEU,EAAU5C,GAAc,QAADhsG,OAAS0uG,EAAaxwG,OAAS,EAAC,QAAA8B,OAAOmuG,EAAU,MAI5E,IAAMU,EAAa,GACbC,EAAYJ,EAAa,GAC/B,GAAI9B,GAA2B,MAAbkC,EAAmB,CACnC,IAAMnC,EAAYmC,EAAUjtF,OACtB,MAAEA,GAAUN,EAClBstF,EAAW1vG,KAAK,SAADa,OAAU0nB,GAAS7F,IAAU6F,GAASilF,GAAa9qF,EAAQ8qF,EAAY,EAAC,KACzF,CAQA,OAPIjiF,GACFmkF,EAAW1vG,KAAK,UAADa,OAAW0qB,EAAK,MAAA1qB,OAAKoC,EAAC,MAAApC,OAAKuF,EAAC,MAEzCspG,EAAW3wG,SACbywG,EAAUxkF,UAAY0kF,EAAW/pG,KAAK,MAItCM,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBmtF,GAAU,CACrChtF,IAAKA,EACLvf,EAAGA,EACHmD,EAAGA,EACHyc,UAAWnB,EAAK,gBAAiBmB,GACjCosF,WAAYA,EACZzhF,KAAMA,EAAKvb,SAAS,OAAS48F,GAAerhF,IAE3C+hF,EAAa7pG,KAAI,CAACslD,EAAMzoD,KACvB,IAAM2qG,EAAQliD,EAAKkiD,MAAMvnG,KAAKsnG,EAAW,GAAK,KAC9C,OAEEhnG,EAAAA,cAAA,SAAOhD,EAAGA,EAAGmkB,GAAc,IAAV7kB,EAAcktG,EAAUT,EAAYrqG,IAAG,GAAA9D,OAAKqsG,EAAK,KAAArsG,OAAI0B,IACnE2qG,EACK,IAGP,I,kgCAIXiC,GAAK1gG,YAAc,OChZZ,IAAMmhG,GAAwBhyG,IACnC,IAAM,QAAEglB,EAAO,SAAE4gC,EAAQ,OAAE5T,EAAS,EAAGigE,cAAeC,EAAwB,MAAE/kC,GAAUntE,GAEpF,EAAEqF,EAAC,EAAEmD,EAAC,OAAEuc,EAAM,WAAE82B,EAAU,WAAEC,GAAeF,GAA4B52B,GAGvEmtF,EAAS9sG,EAET+sG,EAAS/sG,GAAKw2C,EAAaC,GAAc,EAEzCu2D,GAAWF,EAASC,GAAU,EAE9BE,GAAkBz2D,EAAaC,GAAc,EAE7Cy2D,EAAUJ,EAASt2D,EAAa,EAIhC22D,EAAeztF,GAAU,EAAI,GAAK,EAClC0tF,EAAiBD,EAAexgE,EAChC0gE,EAAcF,EAAe,EAAI,MAAQ,QACzCG,EAAgBH,EAAe,EAAI,QAAU,MAI7CI,EAAiB/2D,GAAc,EAAI,GAAK,EACxCg3D,EAAmBD,EAAiB5gE,EACpC8gE,EAAgBF,EAAiB,EAAI,MAAQ,QAC7CG,EAAkBH,EAAiB,EAAI,QAAU,MAIjDX,EAAgBC,EAEtB,GAAiB,QAAbtsD,EAAoB,CACtB,IAAMtlD,EAA4B,CAChC+E,EAAG8sG,EAASt2D,EAAa,EACzBrzC,EAAGA,EAAIiqG,EACPO,iBAAkB,SAClB1B,eAAgBoB,GAOlB,OAJIvlC,GAAS8kC,IACX3xG,EAAOykB,OAAS5Q,KAAKlP,IAAIuD,EAAIypG,EAAczpG,EAAG,GAC9ClI,EAAOwkB,MAAQ+2B,GAEVv7C,CACT,CAEA,GAAiB,WAAbslD,EAAuB,CACzB,IAAMtlD,EAA4B,CAChC+E,EAAG+sG,EAASt2D,EAAa,EACzBtzC,EAAGA,EAAIuc,EAAS0tF,EAChBO,iBAAkB,SAClB1B,eAAgBqB,GAMlB,OAJIxlC,GAAS8kC,IACX3xG,EAAOykB,OAAS5Q,KAAKlP,IAAIgtG,EAAczpG,EAAIypG,EAAcltF,QAAUvc,EAAIuc,GAAS,GAChFzkB,EAAOwkB,MAAQg3B,GAEVx7C,CACT,CAEA,GAAiB,SAAbslD,EAAqB,CACvB,IAAMtlD,EAA4B,CAChC+E,EAAGgtG,EAAUQ,EACbrqG,EAAGA,EAAIuc,EAAS,EAChBiuF,iBAAkBF,EAClBxB,eAAgB,UAMlB,OAJInkC,GAAS8kC,IACX3xG,EAAOwkB,MAAQ3Q,KAAKlP,IAAI3E,EAAO+E,EAAI4sG,EAAc5sG,EAAG,GACpD/E,EAAOykB,OAASA,GAEXzkB,CACT,CAEA,GAAiB,UAAbslD,EAAsB,CACxB,IAAMtlD,EAA4B,CAChC+E,EAAGgtG,EAAUC,EAAiBO,EAC9BrqG,EAAGA,EAAIuc,EAAS,EAChBiuF,iBAAkBD,EAClBzB,eAAgB,UAMlB,OAJInkC,GAAS8kC,IACX3xG,EAAOwkB,MAAQ3Q,KAAKlP,IAAIgtG,EAAc5sG,EAAI4sG,EAAcntF,MAAQxkB,EAAO+E,EAAG,GAC1E/E,EAAOykB,OAASA,GAEXzkB,CACT,CAEA,IAAM2yG,EAAY9lC,GAAS8kC,EAAgB,CAAEntF,MAAOwtF,EAAgBvtF,UAAW,CAAC,EAEhF,MAAiB,eAAb6gC,EACF74B,GAAA,CACE1nB,EAAGgtG,EAAUQ,EACbrqG,EAAGA,EAAIuc,EAAS,EAChBiuF,iBAAkBD,EAClBzB,eAAgB,UACb2B,GAIU,gBAAbrtD,EACF74B,GAAA,CACE1nB,EAAGgtG,EAAUC,EAAiBO,EAC9BrqG,EAAGA,EAAIuc,EAAS,EAChBiuF,iBAAkBF,EAClBxB,eAAgB,UACb2B,GAIU,cAAbrtD,EACF74B,GAAA,CACE1nB,EAAG8sG,EAASt2D,EAAa,EACzBrzC,EAAGA,EAAIiqG,EACPO,iBAAkB,SAClB1B,eAAgBqB,GACbM,GAIU,iBAAbrtD,EACF74B,GAAA,CACE1nB,EAAG+sG,EAASt2D,EAAa,EACzBtzC,EAAGA,EAAIuc,EAAS0tF,EAChBO,iBAAkB,SAClB1B,eAAgBoB,GACbO,GAIU,kBAAbrtD,EACF74B,GAAA,CACE1nB,EAAG8sG,EAASU,EACZrqG,EAAGA,EAAIiqG,EACPO,iBAAkBD,EAClBzB,eAAgBqB,GACbM,GAIU,mBAAbrtD,EACF74B,GAAA,CACE1nB,EAAG8sG,EAASt2D,EAAag3D,EACzBrqG,EAAGA,EAAIiqG,EACPO,iBAAkBF,EAClBxB,eAAgBqB,GACbM,GAIU,qBAAbrtD,EACF74B,GAAA,CACE1nB,EAAG+sG,EAASS,EACZrqG,EAAGA,EAAIuc,EAAS0tF,EAChBO,iBAAkBD,EAClBzB,eAAgBoB,GACbO,GAIU,sBAAbrtD,EACF74B,GAAA,CACE1nB,EAAG+sG,EAASt2D,EAAa+2D,EACzBrqG,EAAGA,EAAIuc,EAAS0tF,EAChBO,iBAAkBF,EAClBxB,eAAgBoB,GACbO,GAKHrtD,GACkB,iBAAbA,IACNj7B,GAASi7B,EAASvgD,IAAMqlB,GAAUk7B,EAASvgD,MAC3CslB,GAASi7B,EAASp9C,IAAMkiB,GAAUk7B,EAASp9C,IAK5CukB,GAAA,CACE1nB,EAAGA,EAAI2lB,GAAgB46B,EAASvgD,EAAGitG,GACnC9pG,EAAGA,EAAIwiB,GAAgB46B,EAASp9C,EAAGuc,GACnCiuF,iBAAkB,MAClB1B,eAAgB,OACb2B,GAIPlmF,GAAA,CACE1nB,EAAGktG,EACH/pG,EAAGA,EAAIuc,EAAS,EAChBiuF,iBAAkB,SAClB1B,eAAgB,UACb2B,EAAS,E,4mDCzHhB,IAAMC,IAAwBrtF,EAAAA,EAAAA,eAAuC,MAExDstF,GAAgCvmF,IAUvC,IAVwC,EAC5CvnB,EAAC,EACDmD,EAAC,WACDqzC,EAAU,WACVC,EAAU,MACVh3B,EAAK,OACLC,EAAM,SACNF,GAGD+H,EACO5H,GAA4Bpc,EAAAA,EAAAA,UAChC,KAAM,CACJvD,IACAmD,IACAqzC,aACAC,aACAh3B,QACAC,YAEF,CAAC1f,EAAGmD,EAAGqzC,EAAYC,EAAYh3B,EAAOC,IAExC,OAAO1c,EAAAA,cAAC6qG,GAAsBx6D,SAAQ,CAAC/4C,MAAOqlB,GAAUH,EAA0C,EAG9FuuF,GAA2BA,KAC/B,IAAMC,GAAoBttF,EAAAA,EAAAA,YAAWmtF,IAC/BI,EAAev3D,KACrB,OAAOs3D,IAAsBC,EAAe13D,GAA4B03D,QAAgBrvG,EAAU,EAG9FsvG,IAAoB1tF,EAAAA,EAAAA,eAA2C,MAExD2tF,GAA4Bx3E,IAWnC,IAXoC,GACxC/O,EAAE,GACFC,EAAE,YACF6tC,EAAW,YACXC,EAAW,WACXT,EAAU,SACVC,EAAQ,UACRlD,EAAS,SACTzyC,GAGDmX,EACOhX,GAAgCpc,EAAAA,EAAAA,UACpC,KAAM,CACJqkB,KACAC,KACA6tC,cACAC,cACAT,aACAC,WACAlD,eAEF,CAACrqC,EAAIC,EAAI6tC,EAAaC,EAAaT,EAAYC,EAAUlD,IAE3D,OAAOjvD,EAAAA,cAACkrG,GAAkB76D,SAAQ,CAAC/4C,MAAOqlB,GAAUH,EAAsC,EAG/E4uF,GAAuBA,KAClC,IAAMJ,GAAoBttF,EAAAA,EAAAA,YAAWwtF,IAC/BD,EAAe5hF,GAAeu3D,IACpC,OAAOoqB,GAAqBC,CAAY,EAGpCI,GAAYlvF,IAChB,IAAM,MAAE7kB,EAAK,UAAEwwB,GAAc3L,EACvBua,EAAwBlT,GAAUrH,EAAMK,UAAYllB,EAAQ6kB,EAAMK,SAExE,MAAyB,mBAAdsL,EACFA,EAAU4O,GAGZA,CAAK,EAGD40E,GAA2B5uD,GACpB,MAAXA,GAAsC,mBAAZA,EAU7B6uD,GAAoBA,CACxBC,EACAjuD,EACA7mB,EACA+0E,EACA9uF,KAEA,IAKI+uF,EAAY7lB,GALV,OAAEl8C,EAAM,UAAE/sB,GAAc4uF,GACxB,GAAE5mF,EAAE,GAAEC,EAAE,YAAE6tC,EAAW,YAAEC,EAAW,WAAET,EAAU,SAAEC,EAAQ,UAAElD,GAActyC,EACxEkyC,GAAU6D,EAAcC,GAAe,EACvCg5C,EAjBc73C,EAAC5B,EAAoBC,IAC5BhwC,GAASgwC,EAAWD,GACdpmD,KAAKkC,IAAIlC,KAAK0F,IAAI2gD,EAAWD,GAAa,KAe1C4B,CAAc5B,EAAYC,GACvC18C,EAAOk2F,GAAc,EAAI,GAAK,EAGpC,OAAQpuD,GACN,IAAK,cACHmuD,EAAax5C,EAAaz8C,EAAOk0B,EACjCk8C,EAAY52B,EACZ,MACF,IAAK,YACHy8C,EAAav5C,EAAW18C,EAAOk0B,EAC/Bk8C,GAAa52B,EACb,MACF,IAAK,MACHy8C,EAAav5C,EAAW18C,EAAOk0B,EAC/Bk8C,EAAY52B,EACZ,MACF,QACE,MAAM,IAAIjpD,MAAM,wBAADpL,OAAyB2iD,IAG5CsoC,EAAY8lB,GAAc,EAAI9lB,GAAaA,EAE3C,IAAM+lB,EAAah6C,GAAiBhtC,EAAIC,EAAIgqC,EAAQ68C,GAC9CG,EAAWj6C,GAAiBhtC,EAAIC,EAAIgqC,EAAQ68C,EAAoC,KAAtB7lB,EAAY,GAAK,IAC3ExiF,EAAO,IAAHzI,OAAOgxG,EAAW5uG,EAAC,KAAApC,OAAIgxG,EAAWzrG,EAAC,WAAAvF,OACxCi0D,EAAM,KAAAj0D,OAAIi0D,EAAM,SAAAj0D,OAAQirF,EAAY,EAAI,EAAC,WAAAjrF,OAC1CixG,EAAS7uG,EAAC,KAAApC,OAAIixG,EAAS1rG,GACrBuiB,EAAKc,GAAUgoF,EAAW9oF,IAAMD,GAAS,yBAA2B+oF,EAAW9oF,GAErF,OACE1iB,EAAAA,cAAA,OAAAqd,GAAA,GAAUouF,EAAK,CAAEK,iBAAiB,UAAUlvF,UAAWnB,EAAK,4BAA6BmB,KACvF5c,EAAAA,cAAA,YACEA,EAAAA,cAAA,QAAM0iB,GAAIA,EAAIrS,EAAGhN,KAEnBrD,EAAAA,cAAA,YAAU+rG,UAAS,IAAAnxG,OAAM8nB,IAAOgU,GAC3B,EAILs1E,GAAuBA,CAC3BrvF,EACAgtB,EACA4T,KAEA,IAAM,GAAE34B,EAAE,GAAEC,EAAE,YAAE6tC,EAAW,YAAEC,EAAW,WAAET,EAAU,SAAEC,GAAax1C,EAC7DsvF,GAAY/5C,EAAaC,GAAY,EAE3C,GAAiB,YAAb5U,EAAwB,CAC1B,IAAQvgD,EAAAA,EAAGmD,EAAAA,GAAMyxD,GAAiBhtC,EAAIC,EAAI8tC,EAAchpB,EAAQsiE,GAEhE,MAAO,CACLjvG,EAAAA,EACAmD,EAAAA,EACA6oG,WAAYhsG,GAAK4nB,EAAK,QAAU,MAChCqkF,eAAgB,SAEpB,CAEA,GAAiB,WAAb1rD,EACF,MAAO,CACLvgD,EAAG4nB,EACHzkB,EAAG0kB,EACHmkF,WAAY,SACZC,eAAgB,UAIpB,GAAiB,cAAb1rD,EACF,MAAO,CACLvgD,EAAG4nB,EACHzkB,EAAG0kB,EACHmkF,WAAY,SACZC,eAAgB,SAIpB,GAAiB,iBAAb1rD,EACF,MAAO,CACLvgD,EAAG4nB,EACHzkB,EAAG0kB,EACHmkF,WAAY,SACZC,eAAgB,OAIpB,IAAMv1F,GAAKg/C,EAAcC,GAAe,GAClC,EAAE31D,EAAC,EAAEmD,GAAMyxD,GAAiBhtC,EAAIC,EAAInR,EAAGu4F,GAE7C,MAAO,CACLjvG,IACAmD,IACA6oG,WAAY,SACZC,eAAgB,SACjB,EAGGiD,GACJvvF,GAC+C,MAAXA,GAAmB,OAAQA,GAAW2F,GAAS3F,EAAQiI,IAWhFunF,GAAoB,CAC/B7mF,MAAO,EACPqkB,OAAQ,EACRi1C,OAAQlB,GAAgBhnD,MACxB6mB,SAAU,SACV6uD,cAAc,GA2BT,SAASC,GAAMC,GACpB,IAsBI3vF,EACF+Z,EACA61E,EAxBIpwF,EAA2B+J,GAAoBomF,EAAYH,KAE/DxvF,QAAS6vF,EAAgB,cACzB5C,EAAa,SACbrsD,EAAQ,MACRjmD,EAAK,SACLklB,EAAQ,QACRkgC,EAAO,UACP9/B,EAAY,GAAE,aACdwvF,EAAY,SACZK,GACEtwF,EACE8gF,EAAemO,KACfsB,EAAmB3B,KAoBnB4B,EA1DR,SACEhwF,GAEA,IAAKuvF,GAAQvvF,GACX,OAAOA,EAET,IAAM,GAAEiI,EAAE,GAAEC,EAAE,YAAE8tC,GAAgBh2C,EAC1BiwF,EAAyB,EAAdj6C,EACjB,MAAO,CACL31D,EAAG4nB,EAAK+tC,EACRxyD,EAAG0kB,EAAK8tC,EACRl2C,MAAOmwF,EACPp5D,WAAYo5D,EACZn5D,WAAYm5D,EACZlwF,OAAQkwF,EAEZ,CA0CuBC,CAPnBlwF,EADsB,MAApB6vF,EALiC,WAAbjvD,EAAwBmvD,EAAoBzP,QAAAA,EAAgByP,EAOzER,GAAQM,GACPA,EAEAj5D,GAA4Bi5D,IAKxC,IACG7vF,GACA6G,GAAUlsB,IAAUksB,GAAUhH,MAAcN,EAAAA,EAAAA,gBAAewgC,IAA+B,mBAAZA,EAE/E,OAAO,KAGT,IAAMowD,EAAgBpoF,GAAAA,GAAA,GACjBvI,GAAK,IACRQ,YAGF,IAAIT,EAAAA,EAAAA,gBAAewgC,GAAU,CAC3B,IAAQ+vD,SAAUptF,GAA+BytF,EAAzBC,EAAoB9vF,GAAK6vF,EAAgB5vF,IACjE,OAAO8hF,EAAAA,EAAAA,cAAatiD,EAASqwD,EAC/B,CAEA,GAAuB,mBAAZrwD,EAAwB,CACjC,IAAQA,QAASr9B,GAA0BytF,EAApBE,EAAe/vF,GAAK6vF,EAAgBt7C,IAI3D,GAFA96B,GAAQ/c,EAAAA,EAAAA,eAAc+iC,EAASswD,IAE3B9wF,EAAAA,EAAAA,gBAAewa,GACjB,OAAOA,CAEX,MACEA,EAAQ20E,GAASlvF,GAGnB,IAAMsvF,EAAQrvF,EAAuBD,GAErC,GAAI+vF,GAAQvvF,GAAU,CAEpB,GAAiB,gBAAb4gC,GAA2C,cAAbA,GAAyC,QAAbA,EAC5D,OAAOguD,GAAkBpvF,EAAOohC,EAAU7mB,EAAO+0E,EAAO9uF,GAE1D4vF,EAAgBP,GAAqBrvF,EAASR,EAAMwtB,OAAQxtB,EAAMohC,SACpE,KAAO,CACL,IAAKovD,EACH,OAAO,KAET,IAAMM,EAAkBtD,GAAqB,CAC3ChtF,QAASgwF,EACTpvD,WACA5T,OAAQxtB,EAAMwtB,OACdigE,cAAesC,GAAQtC,QAAiBhuG,EAAYguG,EACpD9kC,OAAO,IAGTynC,EAAa7nF,GAAAA,GAAA,CACX1nB,EAAGiwG,EAAgBjwG,EACnBmD,EAAG8sG,EAAgB9sG,EACnB6oG,WAAYiE,EAAgBtC,iBAC5B1B,eAAgBgE,EAAgBhE,qBACFrtG,IAA1BqxG,EAAgBxwF,MAAsB,CAAEA,MAAOwwF,EAAgBxwF,OAAU,CAAC,QAC/C7gB,IAA3BqxG,EAAgBvwF,OAAuB,CAAEA,OAAQuwF,EAAgBvwF,QAAW,CAAC,EAErF,CAEA,OACE1c,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACkpG,GAAI7rF,GAAA,CACHd,IAAKkwF,EACL7vF,UAAWnB,EAAK,iBAAkBmB,IAC9B6uF,EACAc,EAAa,CAKjBvD,WAAY3B,GAAkBoE,EAAMzC,YAAcyC,EAAMzC,WAAauD,EAAcvD,WACnFhC,SAAUoF,IAET11E,GAIT,CAEA21E,GAAM7jG,YAAc,QAEpB,IAAM0kG,GAAaA,CACjBx2E,EACA/Z,EACA8vF,KAEA,IAAK/1E,EACH,OAAO,KAGT,IAAMy2E,EAAc,CAAExwF,UAAS8vF,YAE/B,OAAc,IAAV/1E,EACK12B,EAAAA,cAACqsG,GAAKhvF,GAAA,CAAC3e,IAAI,kBAAqByuG,IAGrC5qF,GAAWmU,GACN12B,EAAAA,cAACqsG,GAAKhvF,GAAA,CAAC3e,IAAI,iBAAiBpH,MAAOo/B,GAAWy2E,KAGnDjxF,EAAAA,EAAAA,gBAAewa,GACbA,EAAM5wB,OAASumG,IACVrN,EAAAA,EAAAA,cAAyBtoE,EAAKhS,GAAA,CAAIhmB,IAAK,kBAAqByuG,IAG9DntG,EAAAA,cAACqsG,GAAKhvF,GAAA,CAAC3e,IAAI,iBAAiBg+C,QAAShmB,GAAWy2E,IAGrD7B,GAAwB50E,GACnB12B,EAAAA,cAACqsG,GAAKhvF,GAAA,CAAC3e,IAAI,iBAAiBg+C,QAAShmB,GAAWy2E,IAGrDz2E,GAA0B,iBAAVA,EACX12B,EAAAA,cAACqsG,GAAKhvF,GAAA,GAAKqZ,EAAK,CAAEh4B,IAAI,kBAAqByuG,IAG7C,IAAI,EAGN,SAASC,GAA2B7gE,GAMxC,IANyC,MAC1C7V,EAAK,SACL+1E,GAIDlgE,EACO5vB,EAAUouF,KAEhB,OAAOmC,GAAWx2E,EAAO/Z,EAAS8vF,IAAa,IACjD,CAEO,SAASY,GAAuB5/D,GAAsD,IAArD,MAAE/W,GAAiD+W,EACnF9wB,EAAUyuF,KAEhB,OAAO8B,GAAWx2E,EAAO/Z,IAAY,IACvC,C,grBClZA,IAAM2wF,GAAmB/pF,GAA2BvrB,MAAMkH,QAAQqkB,EAAMjsB,OAAS6F,KAAKomB,EAAMjsB,OAASisB,EAAMjsB,MAErGi2G,IAA4B/vF,EAAAA,EAAAA,oBAAkE5hB,GAEvF4xG,GAAoCD,GAA0Bl9D,SAErEo9D,IAAwBjwF,EAAAA,EAAAA,oBAA8D5hB,GAE/E8xG,GAAgCD,GAAsBp9D,SAa5D,SAASs9D,GAASppF,GAA2D,IAA1D,cAAEqpF,EAAgBN,IAAsC/oF,EAAlB46E,EAASliF,GAAAsH,EAAArH,KACjE,QAAEkrB,EAAO,UAAE6mB,EAAS,GAAEvsC,EAAE,aAAE0pF,EAAY,OAAExtB,GAAsBugB,EAAXniF,EAAMC,GAAKkiF,EAAS3tC,IACvEq8C,GAZCnwF,EAAAA,EAAAA,YAAW6vF,IAaZO,GATCpwF,EAAAA,EAAAA,YAAW+vF,IAUZ1nF,EAAO8nF,GAAiBC,EAC9B,OAAK/nF,GAASA,EAAKjtB,OAKjBkH,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,QAAAA,EAAUlB,GAAgBhnD,OAC7C12B,EAAAA,cAACsd,EAAK,CAACV,UAAU,uBACdmJ,EAAKtmB,KAAI,CAAC8jB,EAAOjnB,KAAU,IAAAyxG,EACpBz2G,EAAQksB,GAAU4kB,GACpBwlE,EAAcrqF,EAAOjnB,GACpB6rC,GAAkB5kB,EAAMmE,QAAS0gB,GAEhC4lE,EAAUxqF,GAAUd,GAAM,CAAC,EAAI,CAAEA,GAAI,GAAF9nB,OAAK8nB,EAAE,KAAA9nB,OAAI0B,IAEpD,OACE0D,EAAAA,cAACqsG,GAAKhvF,GAAA,CACJ3e,IAAG,SAAA9D,OAAW0B,IACV8f,EAAuBmH,GACvBvG,EACAgxF,EAAO,CAOXzmF,KAAoB,QAAhBwmF,EAAE5O,EAAU53E,YAAI,IAAAwmF,EAAAA,EAAIxqF,EAAMgE,KAC9BqiF,cAAermF,EAAMqmF,cACrBtyG,MAAOA,EACP80G,aAAcA,EACdzvF,QAAS4G,EAAM5G,QACfrgB,MAAOA,EAMPsiF,OAAQ,IACR,MArCH,IA2CX,CAIO,SAASqvB,GAAsBt6E,GAA+C,IAA9C,MAAE+C,GAA0C/C,EACjF,OAAK+C,GAIS,IAAVA,EACK12B,EAAAA,cAAC2tG,GAAS,CAACjvG,IAAI,uBAGpBsB,EAAAA,eAAqB02B,IAAU40E,GAAwB50E,GAClD12B,EAAAA,cAAC2tG,GAAS,CAACjvG,IAAI,qBAAqBg+C,QAAShmB,IAGjC,iBAAVA,EACF12B,EAAAA,cAAC2tG,GAAStwF,GAAA,CAAC3e,IAAI,sBAAyBg4B,EAAK,CAAE5wB,KAAMxH,OAAOo4B,EAAM5wB,SAGpE,KAfE,IAgBX,CApBA6nG,GAAUnlG,YAAc,Y,qBCjMjB,SAAS0lG,GAAU3pF,GAA6D,IACjF4pF,GAD2C,UAAE7kG,GAAkCib,EAApBpI,E,6WAAKc,CAAAsH,EAAArH,IAUpE,OARIhB,EAAAA,EAAAA,gBAAe5S,GACjB6kG,GAAQnP,EAAAA,EAAAA,cAAa11F,EAAW6S,GACF,mBAAd7S,EAEhB6kG,GAAQx0F,EAAAA,EAAAA,eAAcrQ,EAAW6S,GAEjCs0B,IAAK,EAAO,uFAAwFnnC,GAE/FtJ,EAAAA,cAACsd,EAAK,CAACV,UAAU,+BAA+BuxF,EACzD,CAEAD,GAAW1lG,YAAc,a,4RCjCzB,IAAM4lG,GAAmBviE,GACP,MAATA,GAAiBA,EAAM7uC,KAAO6uC,EAAM7uC,GAAK6uC,EAAM1rC,KAAO0rC,EAAM1rC,EAgC/DkuG,GAAuBA,CAACnnD,EAAmCD,KAC/D,IAAIqnD,EA9BkB,WAA4C,IAA3CpnD,EAAiCxrD,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvD4yG,EAAgC,CAAC,IAErCpnD,EAAOrhC,SAAQtC,IACb,IAAMgrF,EAAWD,EAAcA,EAAcx1G,OAAS,GAClDs1G,GAAgB7qF,GACdgrF,GACFA,EAASx0G,KAAKwpB,GAEPgrF,GAAYA,EAASz1G,OAAS,GAEvCw1G,EAAcv0G,KAAK,GACrB,IAGF,IAAMy0G,EAAatnD,EAAO,GACpBqnD,EAAWD,EAAcA,EAAcx1G,OAAS,GAClDs1G,GAAgBI,IAAeD,GACjCA,EAASx0G,KAAKy0G,GAGhB,IAAMC,EAAYH,EAAcA,EAAcx1G,OAAS,GAKvD,OAJI21G,GAAaA,EAAU31G,QAAU,IACnCw1G,EAAgBA,EAAc5zG,MAAM,GAAI,IAGnC4zG,CACT,CAGsBI,CAAgBxnD,GAEhCD,IACFqnD,EAAgB,CACdA,EAAcrsF,QAAO,CAAC6qB,EAAmB6hE,IAChC,IAAI7hE,KAAQ6hE,IAClB,MAIP,IAAMC,EAAcN,EACjB7uG,KAAIkvG,GACIA,EAAU1sF,QAAO,CAAC5e,EAAcwoC,EAAmBvvC,IACjDwlB,GAAoBstC,KAAAA,G,gHAAAC,CAAA,oBAAGhsD,EAAiB,IAAV/G,EAAc,IAAM,IAAMuvC,EAAM7uC,EAAK6uC,EAAM1rC,IAC/E,MAEJT,KAAK,IAER,OAAgC,IAAzB4uG,EAAcx1G,OAAe,GAAH8B,OAAMg0G,EAAW,KAAMA,CAAW,EA6DxDC,GAA2B1yF,IACtC,IAAM,OAAE+qC,EAAM,UAAEtqC,EAAS,eAAEkyF,EAAc,aAAE7nD,GAA4B9qC,EAAXa,E,6WAAMC,CAAKd,EAAKe,IAE5E,IAAKgqC,IAAWA,EAAOpuD,OACrB,OAAO,KAGT,IAAMskB,EAAa3B,EAAK,mBAAoBmB,GAE5C,GAAIkyF,GAAkBA,EAAeh2G,OAAQ,CAC3C,IAAMi2G,EAAY/xF,EAAOwK,QAA4B,SAAlBxK,EAAOwK,OACpCwnF,EArEYC,EACpB/nD,EACA4nD,EACA7nD,KAEA,IAAMioD,EAAYb,GAAqBnnD,EAAQD,GAE/C,MAAO,GAAPrsD,OAAkC,MAAxBs0G,EAAUx0G,OAAO,GAAaw0G,EAAUx0G,MAAM,GAAI,GAAKw0G,EAAS,KAAAt0G,OAAIyzG,GAC5Er2G,MAAM8F,KAAKgxG,GAAgBj+F,UAC3Bo2C,GACAvsD,MAAM,GAAE,EA2DUu0G,CAAc/nD,EAAQ4nD,EAAgB7nD,GAExD,OACEjnD,EAAAA,cAAA,KAAG4c,UAAWQ,GACZpd,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBY,GAAO,CAClCuK,KAA8B,MAAxBynF,EAAUt0G,OAAO,GAAasiB,EAAOuK,KAAO,OAClDC,OAAO,OACPnX,EAAG2+F,KAEJD,EACC/uG,EAAAA,cAAA,OAAAqd,GAAA,GAAUjB,EAAuBY,GAAO,CAAEuK,KAAK,OAAOlX,EAAGg+F,GAAqBnnD,EAAQD,MACpF,KACH8nD,EACC/uG,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBY,GAAO,CAClCuK,KAAK,OACLlX,EAAGg+F,GAAqBS,EAAgB7nD,MAExC,KAGV,CAEA,IAAMkoD,EAAad,GAAqBnnD,EAAQD,GAEhD,OACEjnD,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBY,GAAO,CAClCuK,KAA+B,MAAzB4nF,EAAWz0G,OAAO,GAAasiB,EAAOuK,KAAO,OACnD3K,UAAWQ,EACX/M,EAAG8+F,IACH,E,2NC9HC,IAAMC,GAAuBjzF,IAClC,IAAM,GAAEyI,EAAE,GAAEC,EAAE,EAAEnR,EAAC,UAAEkJ,GAAcT,EAC3BiB,EAAa3B,EAAK,eAAgBmB,GAExC,OAAI0F,GAASsC,IAAOtC,GAASuC,IAAOvC,GAAS5O,GAEzC1T,EAAAA,cAAA,SAAAqd,GAAA,GACMrB,EAAsBG,GACtBsJ,GAAmBtJ,GAAM,CAC7BS,UAAWQ,EACXwH,GAAIA,EACJC,GAAIA,EACJnR,EAAGA,KAKF,IAAI,ECtBA27F,GAA8B9lF,GAA6BA,EAAM66D,eAAeE,WAEvFM,GAI+Ch3D,GAAe,CAACizD,GAAcE,IAAawD,IAEnF+qB,GAIoC1hF,GAC/C,CAACyhF,GAA4BprB,GAAgBW,IAC7CC,IAGI0qB,GAIW3hF,GAAe,CAAC0hF,IAA2BnqB,IAE/CqqB,GAII5hF,GACf,CAAC2hF,GAA+Bj2B,IAChC+L,IAGWoqB,GAIW7hF,GACtB,CAAC4hF,GAA0BvrB,GAAgBqrB,IAC3C9pB,IAuCIkqB,IAhCgD9hF,GACpD,CAAC4hF,GAA0BvrB,GAAgBqrB,KAC3C,CACEvpF,EACAi5D,EACAviF,IAEIA,EAAM3D,OAAS,EACVitB,EACJ0/D,SAAQliE,GACA9mB,EAAMgpF,SAASjiF,IAAsD,IAAAukF,EAE1E,MAAO,CACLzwF,MAF8B6wC,GAAkB5kB,EAA2B,QAAtBwkE,EAAE/I,EAAa52C,eAAO,IAAA2/C,EAAAA,EAAIvkF,EAAK4kC,SAGpF8/C,YAAa,GACd,MAGJjpF,OAAOmH,SAEiB,OAAzB44E,aAAY,EAAZA,EAAc52C,SACTriB,EAAKtmB,KACT+D,IAAI,CACHlM,MAAO6wC,GAAkB3kC,EAAMw7E,EAAa52C,SAC5C8/C,YAAa,OAIZniE,EAAKtmB,KAAK8jB,IAAK,CAAyCjsB,MAAOisB,EAAO2kE,YAAa,SAI9DwnB,KAA0B,GAEpDC,GAI0B/hF,GAC9B,CAAC4hF,GAA0BvrB,GAAgBqrB,GAA0BhoB,GAA2BzG,IAChG8G,IAGIioB,GAI0BhiF,GAC9B,CACEq2D,GACAkD,GACAC,GACAsoB,GACAC,GACAD,GACAp7D,GACAusC,IAEFiK,IAGW+kB,GAIuCjiF,GAClD,CACEq2D,GACA3vC,GACAk7D,GACAC,GACA3yB,GACA+D,GACA+uB,IAEFrkB,IAGWukB,GAAuBliF,GAClC,CAACiiF,GAAuB3rB,GAA8BiI,IACtDE,IAGW0jB,GAIuCniF,GAClD,CAACq2D,GAAgB4rB,GAAuBC,GAAsBjvB,IAC9D2L,IAGWwjB,GAIuCpiF,GAClD,CAACu+D,GAAqB4jB,IACtB3sB,IC1JW6sB,GAAkBA,CAAC1mF,EAA0B+e,EAAsC24C,KAC9F,OAAQ34C,GACN,IAAK,YACH,OAAOg3C,GAAgB/1D,EAAO03D,GAEhC,IAAK,aACH,OAAOpB,GAAiBt2D,EAAO03D,GAEjC,QACE,MAAM,IAAIj7E,MAAM,yBAADpL,OAA0B0tC,IAE7C,EAGI4nE,GAAmCA,CACvC3mF,EACA+e,EACA24C,KAEA,OAAQ34C,GACN,IAAK,YACH,OAAOm4C,GAAiCl3D,EAAO03D,GAEjD,IAAK,aACH,OAAON,GAAkCp3D,EAAO03D,GAElD,QACE,MAAM,IAAIj7E,MAAM,yBAADpL,OAA0B0tC,IAE7C,EAGW6nE,GAIoBviF,GAC/B,CAACqiF,GAAiB9jB,GAAqB6jB,GAA8BE,IACrE9jB,IAGWgkB,GAI6BxiF,GACxC,CAAC0mB,GAAmBm7D,GAA0BvrB,GAA8BrD,IAC5EsQ,IAGWkf,GAKuCziF,GAClD,CACE0mB,GACA27D,GACA9jB,GACAgkB,GACAL,GACAI,GACAhf,GACAkf,GACAvvB,IAEF0Q,IAGW+e,GAKuC1iF,GAAe,CAACyiF,KAAuB7nE,IAKzF,GAAKA,EAAL,CAIA,IAAM+nE,EAAiB,IAAIjsG,IAQ3B,OAPAkkC,EAAM3iB,SAAQ44D,IACZ,IAAM+xB,GAAwB/xB,EAAK71C,WAAa,KAAO,IAClD2nE,EAAex3G,IAAIy3G,IACtBD,EAAetrG,IAAIurG,EAAsB/xB,EAC3C,IAGKzmF,MAAM8F,KAAKyyG,EAAertG,SAVjC,CAU0C,IAG/ButG,GAKuC7iF,GAClD,CACE0mB,GACA27D,GACAE,GACAD,GACAhf,GACAkf,GACAvvB,IAEF6Q,ICzHWgf,GACX9iF,GACE,CALyB+iF,CAACpnF,EAA0BqnF,IACtDP,GAAqB9mF,EAAO,YAAaqnF,GAAY,KAKlDpoE,IACC,GAAKA,EAIL,OAAOA,EAAM/oC,KAAIg/E,GAAQA,EAAK71C,YAAW,IAOlCioE,GACXjjF,GACE,CAL0BkjF,CAACvnF,EAA0Bu1D,IACvDuxB,GAAqB9mF,EAAO,aAAcu1D,GAAc,KAKrDt2C,IACC,GAAKA,EAIL,OAAOA,EAAM/oC,KAAIg/E,GAAQA,EAAK71C,YAAW,I,m2CCiE/C,IAAMmoE,GAAiBA,CAACliD,EAAgBjqC,EAAYC,EAAYmsF,KAC9D,IAAI3tG,EAAO,GAaX,OAXA2tG,EAAYnrF,SAAQ,CAACP,EAAevqB,KAClC,IAAM8wC,EAAQ+lB,GAAiBhtC,EAAIC,EAAIgqC,EAAQvpC,GAG7CjiB,GADEtI,EACM,KAAJH,OAASixC,EAAM7uC,EAAC,KAAApC,OAAIixC,EAAM1rC,GAEtB,KAAJvF,OAASixC,EAAM7uC,EAAC,KAAApC,OAAIixC,EAAM1rC,EAChC,IAEFkD,GAAQ,GAEG,EAIP4tG,GAA4C90F,IAChD,IAAM,GAAEyI,EAAE,GAAEC,EAAE,YAAE6tC,EAAW,YAAEC,EAAW,YAAEq+C,EAAW,YAAEE,GAAgB/0F,EAEvE,IAAK60F,IAAgBA,EAAYl4G,SAAWo4G,EAC1C,OAAO,KAET,IAAMC,EAAgBzsF,GAAA,CACpB8C,OAAQ,QACLxL,EAAsBG,IAG3B,OACEnc,EAAAA,cAAA,KAAG4c,UAAU,6BACVo0F,EAAYvxG,KAAI8jB,IACf,IAAM5X,EAAQimD,GAAiBhtC,EAAIC,EAAI6tC,EAAanvC,GAC9C3X,EAAMgmD,GAAiBhtC,EAAIC,EAAI8tC,EAAapvC,GAElD,OAAOvjB,EAAAA,cAAA,OAAAqd,GAAA,CAAM3e,IAAG,QAAA9D,OAAU2oB,IAAa4tF,EAAgB,CAAEpyF,GAAIpT,EAAM3O,EAAGgiB,GAAIrT,EAAMxL,EAAGqX,GAAI5L,EAAI5O,EAAGiiB,GAAIrT,EAAIzL,IAAK,IAE3G,EAKFixG,GAA8Cj1F,IAClD,IAAM,GAAEyI,EAAE,GAAEC,EAAE,OAAEgqC,GAAW1yC,EACrBk1F,EAAqB3sF,GAAA,CACzB8C,OAAQ,OACRD,KAAM,QACHvL,EAAsBG,IAG3B,OAEEnc,EAAAA,cAAA,SAAAqd,GAAA,GACMg0F,EAAqB,CACzBz0F,UAAWnB,EAAK,wCAAyCU,EAAMS,WAC/DgI,GAAIA,EACJC,GAAIA,EACJnR,EAAGm7C,IACH,EAKAyiD,GAAgDn1F,IACpD,IAAM,OAAE0yC,GAAW1yC,EACbo1F,EAAsB7sF,GAAA,CAC1B8C,OAAQ,OACRD,KAAM,QACHvL,EAAsBG,IAG3B,OACEnc,EAAAA,cAAA,OAAAqd,GAAA,GACMk0F,EAAsB,CAC1B30F,UAAWnB,EAAK,yCAA0CU,EAAMS,WAChEvM,EAAG0gG,GAAeliD,EAAQ1yC,EAAMyI,GAAIzI,EAAM0I,GAAI1I,EAAM60F,eACpD,EAKAQ,GAAsBr1F,IAC1B,IAAM,YAAEs1F,EAAW,SAAEC,GAAav1F,EAElC,IAAKs1F,IAAgBA,EAAY34G,OAC/B,OAAO,KAGT,IAAM64G,EAAyB7lG,KAAKlP,OAAO60G,GACrCG,EAAmBz1F,EAAMoL,MAAuB,SAAfpL,EAAMoL,KAE7C,OACEvnB,EAAAA,cAAA,KAAG4c,UAAU,kCAEVg1F,GAAiC,WAAbF,GAAyB1xG,EAAAA,cAACoxG,GAAgB/zF,GAAA,GAAKlB,EAAK,CAAE0yC,OAAQ8iD,KAClFC,GAAiC,WAAbF,GAAyB1xG,EAAAA,cAACsxG,GAAiBj0F,GAAA,GAAKlB,EAAK,CAAE0yC,OAAQ8iD,KAEnFF,EAAYhyG,KAAI,CAAC8jB,EAAexoB,KAC/B,IAAM2D,EAAM3D,EAEZ,MAAiB,WAAb22G,EACK1xG,EAAAA,cAACoxG,GAAgB/zF,GAAA,CAAC3e,IAAKA,GAASyd,EAAK,CAAEoL,KAAK,OAAOsnC,OAAQtrC,KAG7DvjB,EAAAA,cAACsxG,GAAiBj0F,GAAA,CAAC3e,IAAKA,GAASyd,EAAK,CAAEoL,KAAK,OAAOsnC,OAAQtrC,IAAS,IAE5E,EAIKsuF,GAAwB,CACnCzzB,YAAa,EACbU,aAAc,EACd4yB,SAAU,UACVR,aAAa,EACbtyB,OAAQlB,GAAgBC,MAMbm0B,GAAaxpF,IAAwB,IAAA/D,EAAAwtF,EAAAp+E,EAAAq+E,EAAAzlE,EAAA0lE,EAAAxkE,EAAAykE,EAChD/I,EAaIjjF,GAAoBoC,EAAcupF,KAbhC,SACJH,EAAQ,YACRR,EAAW,YACX9yB,EAAW,aACXU,EACAl6D,GAAIutF,EACJttF,GAAIutF,EACJ1/C,YAAa2/C,EACb1/C,YAAa2/C,EACbtB,YAAauB,EACbd,YAAae,EAAgB,OAC7B5zB,GAEDuqB,EADIsJ,E,6WAAMx1F,CAAAksF,EAAAjsF,IAEL+/E,EAAiD5zE,GAAeu3D,IAEhE8xB,EAAuBrpF,IAAeE,GAASmnF,GAAsBnnF,EAAO60D,KAC5Eu0B,EAAsBtpF,IAAeE,GAASsnF,GAAqBtnF,EAAOu1D,KAE1EkyB,EAAch5G,MAAMkH,QAAQqzG,GAAoBA,EAAmBG,EACnEjB,EAAcz5G,MAAMkH,QAAQszG,GAAoBA,EAAmBG,EAEzE,GAAmB,MAAf3B,GAAsC,MAAfS,EACzB,OAAO,KAGT,IAAMt1F,EAAwBuI,GAAA,CAC5BE,GAAqC,QAAnCL,EAAkB,QAAlBwtF,EAAE9U,aAAY,EAAZA,EAAcr4E,UAAE,IAAAmtF,EAAAA,EAAII,SAAa,IAAA5tF,EAAAA,EAAI,EACzCM,GAAqC,QAAnC8O,EAAkB,QAAlBq+E,EAAE/U,aAAY,EAAZA,EAAcp4E,UAAE,IAAAmtF,EAAAA,EAAII,SAAa,IAAAz+E,EAAAA,EAAI,EACzC++B,YAAgE,QAArDnmB,EAA2B,QAA3B0lE,EAAEhV,aAAY,EAAZA,EAAcvqC,mBAAW,IAAAu/C,EAAAA,EAAII,SAAsB,IAAA9lE,EAAAA,EAAI,EACpEomB,YAAgE,QAArDllB,EAA2B,QAA3BykE,EAAEjV,aAAY,EAAZA,EAActqC,mBAAW,IAAAu/C,EAAAA,EAAII,SAAsB,IAAA7kE,EAAAA,EAAI,EACpEujE,cACAS,cACA7yB,UACG6zB,IAGC,YAAE9/C,GAAgBx2C,EAExB,OAAIw2C,GAAe,EACV,KAIP3yD,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAAA,KAAG4c,UAAU,uBACX5c,EAAAA,cAACwxG,GAAkBn0F,GAAA,CACjBq0F,SAAUA,EACVR,YAAaA,GACT/0F,EAAK,CACT60F,YAAaA,EACbS,YAAaA,KAEfzxG,EAAAA,cAACixG,GAAW5zF,GAAA,CACVq0F,SAAUA,EACVR,YAAaA,GACT/0F,EAAK,CACT60F,YAAaA,EACbS,YAAaA,MAGL,EAIlBK,GAAUtpG,YAAc,Y,gDC9QlBoqG,GAAiBl3E,GAAY,CACjCnhC,KAAM,YACNqhC,aAPmC,CACnCmkD,WAAY,CAAC,EACbN,UAAW,CAAC,GAMZ5qD,SAAU,CACRg+E,aAAAA,CAActpF,EAAO6K,GACnB7K,EAAMw2D,WAAW3rD,EAAO1M,QAAQhF,IAAgB0R,EAAO1M,OACzD,EACAorF,gBAAAA,CAAiBvpF,EAAO6K,UACf7K,EAAMw2D,WAAW3rD,EAAO1M,QAAQhF,GACzC,EACAqwF,YAAAA,CAAaxpF,EAAO6K,GAClB7K,EAAMk2D,UAAUrrD,EAAO1M,QAAQhF,IAAgB0R,EAAO1M,OACxD,EACAsrF,eAAAA,CAAgBzpF,EAAO6K,UACd7K,EAAMk2D,UAAUrrD,EAAO1M,QAAQhF,GACxC,MAIS,cAAEmwF,GAAa,iBAAEC,GAAgB,aAAEC,GAAY,gBAAEC,IAAoBJ,GAAer1E,QAEpF01E,GAAmBL,GAAep/E,QCvCxC,SAAS0/E,GAAwBlkF,GACtC,OAAIA,GAAkB,iBAANA,GAAkB,cAAeA,GAA4B,iBAAhBA,EAAEpS,UACtDoS,EAAEpS,UAEJ,EACT,C,4qDCgNA,SAASu2F,GAAsBh3F,GAC7B,IAAM+M,EAAWF,KACXrC,EAAS+tB,KACThnB,GAA2CntB,EAAAA,EAAAA,UAAQ,KACvD,IAAQuF,KAAMstG,GAA2Bj3F,EAATsI,EAAIxH,GAAKd,EAAKe,IACxC0iE,EAAqDV,GACzDv4D,EACA,aACAysF,GAEF,GAAqB,MAAjBxzB,EAGJ,OAAAl7D,GAAAA,GAAA,GAAYD,GAAI,IAAE3e,KAAM85E,GAAa,GACpC,CAACzjE,EAAOwK,IAUX,OATArmB,EAAAA,EAAAA,YAAU,IACQ,MAAZotB,EACK9J,IAETsF,EAAS2pF,GAAcnlF,IAChB,KACLxE,EAAS4pF,GAAiBplF,GAAU,IAErC,CAACxE,EAAUwE,IACP,IACT,CAUA,IAiFM2lF,GAAcA,CAACl3F,EAAoBqsB,KACvC,IAAM,MAAEljB,EAAK,cAAEk+D,EAAa,OAAEh8D,EAAM,KAAEi3D,GAAoBtiE,EAAXa,EAAMC,GAAKd,EAAKm3F,IACzDtK,EA/EmBn6D,KACzB,IAAIm6D,EAEJ,OAAQn6D,GACN,IAAK,OACHm6D,EAAa,MACb,MACF,IAAK,QACHA,EAAa,QACb,MACF,QACEA,EAAa,SAIjB,OAAOA,CAAU,EAgEEuK,CAAkBp3F,EAAM0yB,aACrC2kE,EAAYx3F,EAAsBgB,GAClCy2F,EAAkBx3F,EAAiCwiE,GAEnDhiF,EAAQ+rC,EAAM/oC,KAAI,CAAC8jB,EAAOxoB,KAC9B,IAAM24G,EAxFgBC,EAAApvF,EAA2Be,EAAeV,EAAYC,KAA2B,IAAhF,WAAE+jB,GAAsBrkB,EACjD,OAAOqtC,GAAiBhtC,EAAIC,EAAI+jB,EAAYtjB,EAAM,EAuFlCquF,CAAkBpwF,EAAOpH,EAAMmJ,MAAOnJ,EAAMyI,GAAIzI,EAAM0I,IAC9D+uF,EAASlvF,GAAAA,GAAAA,GAAAA,GAAA,CACbskF,aACAjkF,UAAW,UAAFnqB,OAAY,GAAK0qB,EAAK,MAAA1qB,OAAK84G,EAAM12G,EAAC,MAAApC,OAAK84G,EAAMvzG,EAAC,MACpDqzG,GAAS,IACZhsF,OAAQ,OACRD,KAAMC,GACHisF,GAAe,IAClBn3G,MAAOvB,GACJ24G,GAAK,IACRhsF,QAASnE,IAGX,OACEvjB,EAAAA,cAACsd,EAAKD,GAAA,CACJT,UAAWnB,EAAK,kCAAmCy3F,GAAwBz0B,IAC3E//E,IAAG,QAAA9D,OAAU2oB,EAAMqlB,aACf9iB,GAAmB3J,EAAOoH,EAAOxoB,IA1CtB84G,EAACjrF,EAAuBgrF,EAAgBt8G,IAGzD0I,EAAAA,eAAqB4oB,GACZ5oB,EAAAA,aAAmB4oB,EAAQgrF,GACX,mBAAXhrF,EACLA,EAAOgrF,GAGhB5zG,EAAAA,cAACkpG,GAAI7rF,GAAA,GAAKu2F,EAAS,CAAEh3F,UAAU,0CAC5BtlB,GAkCAu8G,CAAep1B,EAAMm1B,EAAWpwB,EAAgBA,EAAcjgE,EAAMjsB,MAAOyD,GAAKwoB,EAAMjsB,OACjF,IAIZ,OAAO0I,EAAAA,cAACsd,EAAK,CAACV,UAAU,oCAAoCngB,EAAc,EAG/Dq3G,GAAgEC,IAC3E,IAAM,aAAEj1B,GAAiBi1B,EAEnBp3F,EAAU0M,GAAeu3D,IACzB95C,EAAQzd,IAAeE,GAAS4mF,GAAqB5mF,EAAO,aAAcu1D,KAC1Et2C,EAAQnf,IAAeE,GAAS8mF,GAAqB9mF,EAAO,aAAcu1D,GAAc,KAE9F,GAAe,MAAXniE,IAAoB6rB,IAAUA,EAAM1vC,QAAmB,MAATguC,EAChD,OAAO,KAGT,IAAM3qB,EAAkBuI,GAAAA,GAAA,GACnBqvF,GAAiB,IACpBjtE,SACGnqB,IAGC,KAAE8hE,EAAI,SAAEJ,GAAaliE,EAE3B,OACEnc,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,6BA7KX,aA6KoDU,EAAMS,YACnEyhE,GApGc21B,EAAC73F,EAAoBqsB,KAC1C,IAAM,GAAE5jB,EAAE,GAAEC,EAAE,MAAES,EAAK,SAAE+4D,GAAwBliE,EAAXa,EAAMC,GAAKd,EAAKq1C,IAC9CyiD,EAA2BzrE,EAAMvmB,QACrC,CAAChqB,EAA0BsrB,IAAsC,CAC/DzX,KAAKkC,IAAI/V,EAAO,GAAIsrB,EAAMqlB,YAC1B98B,KAAKlP,IAAI3E,EAAO,GAAIsrB,EAAMqlB,cAE5B,CAACp9B,KAAU,MAEP0oG,EAAStiD,GAAiBhtC,EAAIC,EAAIovF,EAAO,GAAI3uF,GAC7C6uF,EAASviD,GAAiBhtC,EAAIC,EAAIovF,EAAO,GAAI3uF,GAE7C8uF,EAAa1vF,GAAAA,GAAAA,GAAA,GACd1I,EAAsBgB,IAAO,IAChCuK,KAAM,QACHvL,EAAsBqiE,IAAS,IAClCt/D,GAAIm1F,EAAOl3G,EACXgiB,GAAIk1F,EAAO/zG,EACXqX,GAAI28F,EAAOn3G,EACXiiB,GAAIk1F,EAAOh0G,IAIb,OAAOH,EAAAA,cAAA,OAAAqd,GAAA,CAAMT,UAAU,mCAAsCw3F,GAAiB,EA6E3DJ,CAAe73F,EAAOqsB,GAClCi2C,GAAQ40B,GAAYl3F,EAAOqsB,GAC5BxoC,EAAAA,cAACmrG,GArHUkJ,EAAC/uF,EAAeV,EAAYC,EAAY2jB,KACzD,IAAM8rE,EAAgB93G,KAAMgsC,GAAQjlB,GAAoBA,EAAMqlB,YAAc,IACtE2rE,EAAgB32G,KAAM4qC,GAAQjlB,GAAoBA,EAAMqlB,YAAc,IAE5E,MAAO,CACLhkB,KACAC,KACAqtC,WAAY5sC,EACZ6sC,SAAU7sC,EACVotC,aAAa6hD,aAAa,EAAbA,EAAe3rE,aAAc,EAC1C+pB,aAAa2hD,aAAa,EAAbA,EAAe1rE,aAAc,EAC1CqmB,WAAW,EACZ,EAyGoColD,CAAWl4F,EAAMmJ,MAAOnJ,EAAMyI,GAAIzI,EAAM0I,GAAI2jB,GACzExoC,EAAAA,cAACqtG,GAAuB,CAAC32E,MAAOva,EAAMua,QACrCva,EAAMK,WAGC,EAQX,SAASg4F,GAAgBlsF,GAC9B,IAAMnM,EAA2B+J,GAAoBoC,EAAcu2D,IACnE,OACE7+E,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACmzG,GAAqB,CACpBrpE,OAAQ3tB,EAAM2tB,OACdpnB,GAAIvG,EAAM2iE,aACVh4C,MAAO3qB,EAAM2qB,MACbhhC,KAAMqW,EAAMrW,KACZsiC,QAASjsB,EAAMisB,QACfoX,UAAM5jD,EACNrB,KAAM4hB,EAAM5hB,KACZ4xC,wBAAyBhwB,EAAMgwB,wBAC/BguC,kBAAmBh+D,EAAMg+D,kBACzBqE,SAAUriE,EAAMqiE,SAChBD,cAAepiE,EAAMoiE,cACrBrD,cAAe/+D,EAAM++D,cAErB1yC,MAAOrsB,EAAMqsB,MACbe,UAAWptB,EAAMotB,UACjBk1C,KAAMtiE,EAAMsiE,OAEdz+E,EAAAA,cAAC8zG,GAA2B33F,GAGlC,CAEAq4F,GAAgBhsG,YAAc,kB,wvCCvY9B,IAAMisG,GAAM,KACNC,GAAS5oG,KAAK8R,IAAI6zC,GAAe,KA+NvC,SAASkjD,GAAqBx4F,GAC5B,IAAM+M,EAAWF,KACXrC,EAAS+tB,KACThnB,GAA0CntB,EAAAA,EAAAA,UAAQ,KACtD,IAAM,SAAEic,EAAU1W,KAAMstG,GAA2Bj3F,EAATsI,E,6WAAIxH,CAAKd,EAAKe,IAClD0iE,EAAqDV,GACzDv4D,EACA,YACAysF,GAEF,GAAqB,MAAjBxzB,EAGJ,OAAAl7D,GAAAA,GAAA,GAAYD,GAAI,IAAE3e,KAAM85E,GAAa,GACpC,CAACzjE,EAAOwK,IACLiuF,EAAuBvrF,IAAeE,GAAS+1D,GAAgB/1D,EAAOmE,aAAQ,EAARA,EAAUhL,MAChFmyF,EAA0BnnF,IAAaknF,EAW7C,OAVAt0G,EAAAA,EAAAA,YAAU,IACQ,MAAZotB,EACK9J,IAETsF,EAAS6pF,GAAarlF,IACf,KACLxE,EAAS8pF,GAAgBtlF,GAAU,IAEpC,CAACxE,EAAUwE,IAEVmnF,EACK14F,EAAMK,SAER,IACT,CASA,IAqDMs4F,GAAY34F,IAChB,IAAM,GAAEyI,EAAE,GAAEC,EAAE,OAAEgqC,EAAM,aAAEyvB,EAAY,SAAED,EAAQ,MAAE71C,GAAUrsB,EAC1D,IAAKkiE,EACH,OAAO,KAET,IAAM+1B,EAAa1vF,GAAAA,GAAA,GACd1I,EAAsBG,IAAM,IAC/BoL,KAAM,QACHvL,EAAsBqiE,IAG3B,GAAqB,WAAjBC,EAEF,OAAOt+E,EAAAA,cAACovG,GAAG/xF,GAAA,CAACT,UAAU,kCAAqCw3F,EAAa,CAAExvF,GAAIA,EAAIC,GAAIA,EAAInR,EAAGm7C,KAE/F,IAAM3H,EAAS1e,EAAM/oC,KAAI8jB,GAASquC,GAAiBhtC,EAAIC,EAAIgqC,EAAQtrC,EAAMqlB,cAGzE,OAAO5oC,EAAAA,cAAC6uG,GAAOxxF,GAAA,CAACT,UAAU,kCAAqCw3F,EAAa,CAAEltD,OAAQA,IAAU,EAS5F6tD,GAAexwF,IAA0D,IAAzD,KAAEk6D,EAAI,UAAEm1B,EAAS,MAAEt8G,GAAsBitB,EAC7D,OAAKk6D,EAGDz+E,EAAAA,eAAqBy+E,GAChBz+E,EAAAA,aAAmBy+E,EAAMm1B,GAEd,mBAATn1B,EACFA,EAAKm1B,GAGZ5zG,EAAAA,cAACkpG,GAAI7rF,GAAA,GAAKu2F,EAAS,CAAEh3F,UAAU,yCAC5BtlB,GAVI,IAWA,EAIL09G,GAAS74F,IACb,IAAM,KAAEsiE,EAAI,SAAEC,EAAQ,cAAE8E,EAAa,OAAEh8D,EAAM,MAAEghB,GAAUrsB,EACnDq3F,EAAYx3F,EAAsBG,GAClCs3F,EAAkBx3F,EAAiCwiE,GACnDw2B,EAAavwF,GAAAA,GAAA,GACd8uF,GAAS,IACZjsF,KAAM,QACHvL,EAAsB0iE,IAGrBjiF,EAAQ+rC,EAAM/oC,KAAI,CAAC8jB,EAAOxoB,KAC9B,IAAMm6G,EA5GeC,EACvBpvF,EACA5J,KAOA,IAAM,GAAEyI,EAAE,GAAEC,EAAE,OAAEgqC,EAAM,YAAEhgB,EAAW,SAAE8vC,GAAaxiE,EAC5Ci5F,EAAez2B,GAAY,EAC3B02B,EAAKzjD,GAAiBhtC,EAAIC,EAAIgqC,EAAQ9oC,EAAK6iB,YAC3C0sE,EAAK1jD,GAAiBhtC,EAAIC,EAAIgqC,GAA0B,UAAhBhgB,GAA2B,EAAI,GAAKumE,EAAcrvF,EAAK6iB,YAErG,MAAO,CAAE7pB,GAAIs2F,EAAGr4G,EAAGgiB,GAAIq2F,EAAGl1G,EAAGqX,GAAI89F,EAAGt4G,EAAGiiB,GAAIq2F,EAAGn1G,EAAG,EA8F7Bg1G,CAAiB5xF,EAAOpH,GACpC6sF,EAtFgBuK,EAACxtF,EAAgB8oB,KACzC,IAAMjxB,EAAM9R,KAAK8R,IAAI6zC,IAAgB1rC,EAAK6iB,aAE1C,OAAIhrB,EAAM62F,GACe,UAAhB5lE,EAA0B,QAAU,MAEzCjxB,GAAO62F,GACc,UAAhB5lE,EAA0B,MAAQ,QAEpC,QAAQ,EA6EkB0kE,CAAkBhwF,EAAOpH,EAAM0yB,aACxDo6D,EAtEyBljF,KACjC,IAAMnI,EAAM9R,KAAK8R,IAAI6zC,IAAgB1rC,EAAK6iB,aACpC/qB,EAAM/R,KAAK+R,IAAI4zC,IAAgB1rC,EAAK6iB,aAG1C,OAAI98B,KAAK0F,IAAIoM,IAAQ82F,GAEZ72F,EAAM,EAAI,QAAU,MAGtB,QAAQ,EA4D8B03F,CAA0BhyF,GAC/DqwF,EAA+BlvF,GAAAA,GAAAA,GAAA,GAChC8uF,GAAS,IAEZxK,aACAC,iBAEAzhF,OAAQ,OAERD,KAAMC,GACHisF,GAAe,IAClBn3G,MAAOvB,EACP2sB,QAASnE,EACTvmB,EAAGk4G,EAAU19F,GACbrX,EAAG+0G,EAAUj2F,KAGf,OACEjf,EAAAA,cAACsd,EAAKD,GAAA,CACJT,UAAWnB,EAAK,iCAAkCy3F,GAAwBz0B,IAC1E//E,IAAG,QAAA9D,OAAU2oB,EAAMqlB,aACf9iB,GAAmB3J,EAAOoH,EAAOxoB,IAGpC2jF,GAAY1+E,EAAAA,cAAA,OAAAqd,GAAA,CAAMT,UAAU,uCAA0Cq4F,EAAmBC,IAC1Fl1G,EAAAA,cAAC+0G,GAAY,CACXt2B,KAAMA,EACNm1B,UAAWA,EACXt8G,MAAOksF,EAAgBA,EAAcjgE,EAAMjsB,MAAOyD,GAAKwoB,EAAMjsB,QAEzD,IAIZ,OAAO0I,EAAAA,cAACsd,EAAK,CAACV,UAAU,mCAAmCngB,EAAc,EAG9D+4G,GAA+DzB,IAC1E,IAAM,YAAE31B,GAAgB21B,EAElBp3F,EAAU0M,GAAeu3D,IACzB95C,EAAQzd,IAAeE,GAAS4mF,GAAqB5mF,EAAO,YAAa60D,KACzEvpC,EAAa1E,KACb3H,EAAQnf,IAAeE,GAAS+mF,GAA0B/mF,EAAO,YAAa60D,EAAavpC,KAEjG,GAAe,MAAXl4B,IAAoB6rB,IAAUA,EAAM1vC,QAAmB,MAATguC,EAChD,OAAO,KAGT,IAAM3qB,EAAkBuI,GAAAA,GAAAA,GAAA,GACnBqvF,GAAiB,IACpBjtE,SACGnqB,GAAO,IACVkyC,OAAQlyC,EAAQg2C,YAChBnqB,UAGF,OACExoC,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,4BAxNX,YAwNmDU,EAAMS,YACnE5c,EAAAA,cAAC80G,GAAa34F,GACdnc,EAAAA,cAACg1G,GAAU74F,IAED,EAQX,SAASs5F,GAAentF,GAC7B,IAAMnM,EAAQ+J,GAAoBoC,EAAc61D,IAEhD,OACEn+E,EAAAA,cAAC20G,GAAoB,CACnBjyF,GAAIvG,EAAMiiE,YACVt3C,MAAO3qB,EAAM2qB,MACbhhC,KAAMqW,EAAMrW,KACZsiC,QAASjsB,EAAMisB,QACfoX,UAAM5jD,EACNrB,KAAM4hB,EAAM5hB,KACZ4xC,yBAAyB,EACzBguC,mBAAmB,EACnBqE,SAAUriE,EAAMqiE,SAChBD,eAAe,EACfrD,cAAe/+D,EAAM++D,cACrB3xC,UAAWptB,EAAMotB,UAEjBf,MAAOrsB,EAAMqsB,MACbi2C,KAAMtiE,EAAMsiE,KACZ30C,OAAQ3tB,EAAM2tB,QAEd9pC,EAAAA,cAACw1G,GAA0Br5F,GAGjC,C,kgCAEAs5F,GAAejtG,YAAc,iBC7e7B,IAEMktG,GACJ9nF,GAAe,CAACyhF,GAHHsG,CAAC70B,EAA2Bp+D,IAAyCA,IAG7B,CAAC0hE,EAAgB1hE,IACpE0hE,EAAenlF,QAAOuE,GAAsB,QAAdA,EAAKsC,OAAgBwd,MAAK9f,GAAQA,EAAKkf,KAAOA,MAI1EkzF,GAA0C,GAC1CC,GAAYA,CAChB/0B,EACAg1B,EACAC,IAEsB,KAAlBA,aAAK,EAALA,EAAOj9G,QACF88G,GAEFG,EAGIxwB,GAIgB33D,GAC3B,CAAC0rD,GAAuCo8B,GAA+BG,KACvE,CAAAtxF,EAAgCyxF,EAAsCD,KAAiC,IAIjGzvB,GAJL,UAAEjN,GAA2B90D,EAC5B,GAAmB,MAAfyxF,KAKF1vB,EADuB,OAArB0vB,aAAW,EAAXA,EAAajwF,OAAgBiwF,EAAYjwF,KAAKjtB,OAAS,EACzCk9G,EAAYjwF,KAEZszD,IAGMiN,EAAcxtF,QAAoB,MAATi9G,IAC/CzvB,EAAgByvB,EAAMt2G,KAAKw2G,GAA6BvxF,GAAAA,GAAA,GACnDsxF,EAAYE,mBACZD,EAAK95F,UAIS,MAAjBmqE,GAIJ,OAAOA,CAAa,IAIX6vB,GAImCvoF,GAC9C,CAAC23D,GAAqBmwB,GAA+BG,KACrD,CACEvvB,EACA0vB,EACAD,KAEA,GAAqB,MAAjBzvB,GAAwC,MAAf0vB,EAG7B,OAAO1vB,EAAc7mF,KAAI,CAAC8jB,EAAOxoB,KAAqB,IAAAq7G,EAEhDjvF,EADE5sB,EAAO4tC,GAAkB5kB,EAAOyyF,EAAYve,QAASue,EAAYz7G,MASvE,OANE4sB,EADE4uF,SAAU,QAALK,EAALL,EAAQh7G,UAAE,IAAAq7G,GAAO,QAAPA,EAAVA,EAAYj6F,aAAK,IAAAi6F,GAAjBA,EAAmB7uF,KACbwuF,EAAMh7G,GAAGohB,MAAMoL,KACG,iBAAVhE,GAA+B,MAATA,GAAiB,SAAUA,EACzDA,EAAMgE,KAENyuF,EAAYzuF,KAEf,CACLjwB,MAAOq2C,GAAmBpzC,EAAMy7G,EAAY5tE,SAC5CjhB,QAEAO,QAASnE,EACTzd,KAAMkwG,EAAYK,WACnB,GACD,IAIOC,GAIuC1oF,GAClD,CAAC23D,GAAqBmwB,GAA+BG,GAAWlnE,KAChE,CACE23C,EACA0vB,EACAD,EACApsE,KAEA,GAAmB,MAAfqsE,GAAwC,MAAjB1vB,EAG3B,OC8jBG,SAA0B74C,GAUgB,IAAA8oE,EAe3CC,EAGEjpE,GA5B0B,YAChCyoE,EAAW,cACX1vB,EAAa,MACbyvB,EAAK,OACLpsE,GAMD8D,GACO,aAAE0lB,EAAY,WAAEjB,EAAU,SAAEC,EAAQ,QAAE/pB,EAAO,QAAEqvD,EAAO,YAAEgf,GAAgBT,EACxEU,EAAW5qG,KAAK0F,IAAIwkG,EAAYU,UAChC/K,EAAagL,GAAgBzkD,EAAYC,GACzCykD,EAAgB9qG,KAAK0F,IAAIm6F,GACzBkL,EAAevwB,EAAcxtF,QAAU,EAAI,EAA6B,QAA5By9G,EAAIP,EAAYa,oBAAY,IAAAN,EAAAA,EAAI,EAE5EO,EAAmBxwB,EAAcrnF,QAAOskB,GAAkD,IAAzC4kB,GAAkB5kB,EAAO6kB,EAAS,KAAUtvC,OAE7Fi+G,EAAiBH,EAAgBE,EAAmBJ,GAD/BE,GAAiB,IAAME,EAAmBA,EAAmB,GAAKD,EAGvF3/F,EAAMovE,EAAcrkE,QAAO,CAAChqB,EAAgBsrB,KAChD,IAAMvN,EAAMmyB,GAAkB5kB,EAAO6kB,EAAS,GAC9C,OAAOnwC,GAAUqqB,GAAStM,GAAOA,EAAM,EAAE,GACxC,GAGCkB,EAAM,IAERs/F,EAAUlwB,EAAc7mF,KAAI,CAAC8jB,EAAgBxoB,KAE3C,IAKIi8G,EALEhhG,EAAcmyB,GAAkB5kB,EAAO6kB,EAAS,GAEhD7tC,EAAe4tC,GAAkB5kB,EAAOk0E,EAAS18F,GACjD6tC,EAA4BquE,GAAqBjB,EAAarsE,EAAQpmB,GACtEX,GAAWN,GAAStM,GAAOA,EAAM,GAAKkB,EAItCggG,EAA8BxyF,GAAAA,GAAA,GAAQnB,GAAWwyF,GAASA,EAAMh7G,IAAMg7G,EAAMh7G,GAAGohB,OAQ/E43C,GALJijD,EADEj8G,EACewyC,EAAK4kB,SAAWhwC,GAASwpF,GAAckL,GAAwB,IAAR7gG,EAAY,EAAI,GAEvEk8C,GAIA/vC,GAASwpF,KAAwB,IAAR31F,EAAY0gG,EAAW,GAAK9zF,EAAUm0F,GAC5E9K,GAAY+K,EAAiBjjD,GAAgB,EAC7CojD,GAAgBvuE,EAAW8pB,YAAc9pB,EAAW+pB,aAAe,EAEnEskC,EAAiC,CACrC,CACE18F,OACAjD,MAAO0e,EACP0R,QAASwvF,EACT9uE,UACAtiC,KAAM2wG,EACN1jB,gBAAiBijB,EAAYtzF,KAG3B00F,EAAkBxlD,GAAiBhpB,EAAWhkB,GAAIgkB,EAAW/jB,GAAIsyF,EAAclL,GAoBrF,OAlBA1+D,EAAI7oB,GAAAA,GAAAA,GAAAA,GAAA,GACCsxF,EAAYE,mBAAiB,IAChCtzF,UACAuwC,aAAsC,iBAAjBA,EAA4BpwC,WAAWowC,GAAgBA,EAC5E54D,OACA08F,iBACAgV,WACAkL,eACAC,mBACGF,GACAtuE,GAAU,IACbtxC,MAAO0e,EACPoyB,UACA8pB,WAAY8kD,EACZ7kD,SAAU4B,EACVrsC,QAASwvF,EACTL,aAAc10F,GAASwpF,GAAckL,GAE5B,KAGf,OAAOL,CACT,CDppBWa,CAAkB,CACvB1tE,SACAqsE,cACA1vB,gBACAyvB,SACA,I,WE1FOuB,GAAkBC,GACT,iBAATA,EACFA,EAEJA,EAGEA,EAAK/uG,aAAe+uG,EAAKh9G,MAAQ,YAF/B,GAOPi9G,GAAiC,KACjC9sF,GAAiC,KAQxB1sB,GAAgCwe,IAC3C,GAAIA,IAAag7F,IAAgBx/G,MAAMkH,QAAQwrB,IAC7C,OAAOA,GAET,IAAIzyB,EAAc,GAYlB,OAXAw/G,EAAAA,SAAS5xF,QAAQrJ,GAAU2xF,IACrB3qF,GAAU2qF,MACVuJ,EAAAA,GAAAA,YAAWvJ,GACbl2G,EAASA,EAAO2C,OAAOoD,GAAQmwG,EAAMhyF,MAAMK,WAG3CvkB,EAAO8B,KAAKo0G,GACd,IAEFzjF,GAAazyB,EACbu/G,GAAeh7F,EACRvkB,CAAM,EAaR,SAAS0/G,GAGdn7F,EAAqB1W,GACrB,IAAM7N,EAA4B,GAC9B2/G,EAAkB,GAgBtB,OAbEA,EADE5/G,MAAMkH,QAAQ4G,GACRA,EAAKrG,KAAIoV,GAAKyiG,GAAeziG,KAE7B,CAACyiG,GAAexxG,IAG1B9H,GAAQwe,GAAUqJ,SAAQsoF,IAExB,IAAM0J,EAAoBr1G,KAAI2rG,EAAO,qBAAuB3rG,KAAI2rG,EAAO,aACnE0J,IAA2C,IAA9BD,EAAM7iG,QAAQ8iG,IAC7B5/G,EAAO8B,KAAKo0G,EACd,IAGKl2G,CACT,CAEO,I,eAAM6/G,GAAahuB,IACpBA,GAAsB,iBAARA,KAAoB,YAAaA,IAC1C1jF,QAAQ0jF,EAAIiuB,S,s2CC7FvB,IAAMC,GAAmBA,CAACh7G,EAAWmD,EAAWqzC,EAAoBC,EAAoB/2B,KACtF,IACIrZ,EADE40G,EAAWzkE,EAAaC,EAO9B,OALApwC,EAAOye,GAAoBstC,KAAAA,GAAAC,GAAA,gBAAKryD,EAAKmD,GACrCkD,GAAQye,GAAoBwtC,KAAAA,GAAAD,GAAA,gBAAKryD,EAAIw2C,EAAcrzC,GACnDkD,GAAQye,GAAoBytC,KAAAA,GAAAF,GAAA,gBAAKryD,EAAIw2C,EAAaykE,EAAW,EAAK93G,EAAIuc,GACtErZ,GAAQye,GAAoB0tC,KAAAA,GAAAH,GAAA,gBAAKryD,EAAIw2C,EAAaykE,EAAW,EAAIxkE,EAActzC,EAAIuc,GACnFrZ,GAAQye,GAAoB2tC,KAAAA,GAAAJ,GAAA,kBAAKryD,EAAKmD,EAC3B,EA4EA+3G,GAAwB,CACnCl7G,EAAG,EACHmD,EAAG,EACHqzC,WAAY,EACZC,WAAY,EACZ/2B,OAAQ,EACRszC,yBAAyB,EACzBC,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,QAGN42D,GAA6B7vF,IACxC,IAAM8vF,EAAiBlyF,GAAoBoC,EAAc4vF,KAEnD,EAAEl7G,EAAC,EAAEmD,EAAC,WAAEqzC,EAAU,WAAEC,EAAU,OAAE/2B,EAAM,UAAEE,GAAcw7F,GACtD,gBAAE72D,EAAe,kBAAED,EAAiB,eAAE2O,EAAc,wBAAED,GAA4BooD,EAElFvwD,GAAUxnD,EAAAA,EAAAA,QAA8B,OACvC+vD,EAAaC,IAAkBl3C,EAAAA,EAAAA,WAAU,GAE1Ck/F,GAAoBh4G,EAAAA,EAAAA,QAAemzC,GACnC8kE,GAAoBj4G,EAAAA,EAAAA,QAAeozC,GACnCid,GAAgBrwD,EAAAA,EAAAA,QAAeqc,GAC/Bi0C,GAAWtwD,EAAAA,EAAAA,QAAerD,GAC1B4zD,GAAWvwD,EAAAA,EAAAA,QAAeF,GAC1BqtD,EAAckB,GAAepmC,EAAc,cAgBjD,IAdAhoB,EAAAA,EAAAA,YAAU,KACR,GAAIunD,EAAQ7mD,SAAW6mD,EAAQ7mD,QAAQsvD,eACrC,IACE,IAAMC,EAAkB1I,EAAQ7mD,QAAQsvD,iBAEpCC,GACFF,EAAeE,EAEnB,CAAE,MAAAC,GACA,CAEJ,GACC,IAGDxzD,KAAOA,GACPmD,KAAOA,GACPqzC,KAAgBA,GAChBC,KAAgBA,GAChB/2B,KAAYA,GACI,IAAf82B,GAAmC,IAAfC,GACV,IAAX/2B,EAEA,OAAO,KAGT,IAAMU,EAAa3B,EAAK,qBAAsBmB,GAE9C,IAAKozC,EACH,OACEhwD,EAAAA,cAAA,SACEA,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBg8F,GAAe,CAC1Cx7F,UAAWQ,EACX/M,EAAG2nG,GAAiBh7G,EAAGmD,EAAGqzC,EAAYC,EAAY/2B,OAM1D,IAAM67F,EAAiBF,EAAkBr3G,QACnCw3G,EAAiBF,EAAkBt3G,QACnCgwD,EAAaN,EAAc1vD,QAC3BiwD,EAAQN,EAAS3vD,QACjBkwD,EAAQN,EAAS5vD,QAEjBlD,EAAO,OAAHlD,QAA2B,IAAjBw1D,EAAqB,EAAIA,EAAW,MAClDn5B,EAAK,GAAHr8B,OAAMw1D,EAAW,UACnB/N,EAAa4F,GAAiB,CAAC,mBAAoB3G,EAAmBC,GAE5E,OACEvhD,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACb9uD,IAAK8uD,EACLQ,SAAUoC,EAAc,EACxBlI,SAAU5G,EACV6G,OAAQ5G,EACRwM,SAAUiC,EACVzH,MAAO0H,IAELp7C,IACA,IAAM4jG,EAAiBv1F,GAAYq1F,EAAgB/kE,EAAY3+B,GACzD6jG,EAAiBx1F,GAAYs1F,EAAgB/kE,EAAY5+B,GACzDw8C,EAAanuC,GAAY8tC,EAAYt0C,EAAQ7H,GAC7Cq3C,EAAQhpC,GAAY+tC,EAAOj0D,EAAG6X,GAC9By8C,EAAQpuC,GAAYguC,EAAO/wD,EAAG0U,GAEhCgzC,EAAQ7mD,UACVq3G,EAAkBr3G,QAAUy3G,EAC5BH,EAAkBt3G,QAAU03G,EAC5BhoD,EAAc1vD,QAAUqwD,EACxBV,EAAS3vD,QAAUkrD,EACnB0E,EAAS5vD,QAAUswD,GAErB,IAAMH,EAAiBt8C,EAAI,EAAI,CAAEwtC,aAAY56B,gBAAiBwP,GAAO,CAAExP,gBAAiB3pB,GACxF,OACEkC,EAAAA,cAAA,OAAAqd,GAAA,GACMjB,EAAuBg8F,GAAe,CAC1Cx7F,UAAWQ,EACX/M,EAAG2nG,GAAiB9rD,EAAOoF,EAAOmnD,EAAgBC,EAAgBrnD,GAClE90C,IAAKsrC,EACLhrC,MAAK6H,GAAAA,GAAA,GACAysC,GACAinD,EAAev7F,SAEpB,GAGY,E,8iCCvKxB,SAAS87F,GAAap0F,GAMF,IANyD,UAC3Eq0F,EAAS,aACTC,GAIDt0F,EACC,OAAQq0F,GACN,IAAK,YACH,OAAO54G,EAAAA,cAACkwD,GAAc2oD,GACxB,IAAK,YACH,OAAO74G,EAAAA,cAACm4G,GAAcU,GACxB,IAAK,SACH,OAAO74G,EAAAA,cAACs0D,GAAWukD,GACrB,IAAK,UACH,GAnBN,SAAwBD,GACtB,MAAqB,YAAdA,CACT,CAiBUE,CAAeF,GACjB,OAAO54G,EAAAA,cAACskB,GAAYu0F,GAEtB,MACF,IAAK,QACH,OAAO74G,EAAAA,cAAC4nD,GAAUixD,GACpB,QACE,OAAO,KAEb,CAUO,SAASE,GAAKplF,GAKkB,IACjCnS,GAN8F,OAClGoH,EAAM,UACNgwF,EAAS,gBACTI,EAAkB,yBAEiBrlF,EADhCxX,E,6WAAKc,CAAA0W,EAAAzW,IAIR,IAAIhB,EAAAA,EAAAA,gBAAe0M,GAEjBpH,GAAQw9E,EAAAA,EAAAA,cAAap2E,EAAMlE,GAAAA,GAAA,GAAOvI,GAlB/B,SAAoCyM,GACzC,OAAI1M,EAAAA,EAAAA,gBAAe0M,GACVA,EAAOzM,MAGTyM,CACT,CAYgDqwF,CAAwBrwF,UAC/D,GAAsB,mBAAXA,EAChBpH,EAAQoH,EAAOzM,EAAOA,EAAM7f,YACvB,GAAIkO,KAAcoe,IAA6B,kBAAXA,EAAsB,CAC/D,IAAMswF,EA9DV,SACEtwF,EACAzM,GAEA,OAAAuI,GAAAA,GAAA,GACKvI,GACAyM,EAEP,CAsDsCuwF,CAAuBvwF,EAAQzM,GACjEqF,EAAQxhB,EAAAA,cAAC24G,GAAa,CAAiBC,UAAWA,EAAWC,aAAcK,GAC7E,KAAO,CACL,IAAML,EAAe18F,EACrBqF,EAAQxhB,EAAAA,cAAC24G,GAAa,CAAiBC,UAAWA,EAAWC,aAAcA,GAC7E,CAEA,OAAI18F,EAAM4xC,SACD/tD,EAAAA,cAACsd,EAAK,CAACV,UAAWo8F,GAAkBx3F,GAGtCA,CACT,CCxFO,I,GAAM43F,GAA4BA,CACvCC,EACAjxE,EACA2qD,KAEA,IAAM7pE,EAAWF,KACjB,MAAO,CAACjD,EAA6BzpB,IAAmB5C,IACtD2/G,SAAAA,EAAwBtzF,EAAMzpB,EAAO5C,GACrCwvB,EACE6qE,GAA4B,CAC1BnB,YAAat0F,OAAOhC,GACpB03F,cAAe5rD,EACf4qB,iBAAkBjtC,EAAKqxF,gBACvBnjB,sBAAuBlB,IAE1B,CACF,EAGUumB,GACXC,IAEA,IAAMrwF,EAAWF,KACjB,MAAO,CAACjD,EAA6BzpB,IAAmB5C,IACtD6/G,SAAAA,EAAwBxzF,EAAMzpB,EAAO5C,GACrCwvB,EAASirE,KAAiB,CAC3B,EAGUqlB,GAA4BA,CACvCC,EACArxE,EACA2qD,KAEA,IAAM7pE,EAAWF,KACjB,MAAO,CAACjD,EAA6BzpB,IAAmB5C,IACtD+/G,SAAAA,EAAwB1zF,EAAMzpB,EAAO5C,GACrCwvB,EACEkrE,GAAwB,CACtBxB,YAAat0F,OAAOhC,GACpB03F,cAAe5rD,EACf4qB,iBAAkBjtC,EAAKqxF,gBACvBnjB,sBAAuBlB,IAE1B,CACF,ECvDI,SAAS2mB,GAAuBn1F,GAI9B,IAJ+B,qBACtCmpB,GAGDnpB,EACO2E,EAAWF,KACX6rB,EAAa1E,KACbwpE,GAAkBt5G,EAAAA,EAAAA,QAA2C,MAwBnE,OAtBA+Y,EAAAA,EAAAA,kBAAgB,KACVy7B,IAI4B,OAA5B8kE,EAAgB34G,QAClBkoB,EAASyqE,GAAwBjmD,IACxBisE,EAAgB34G,UAAY0sC,GACrCxkB,EAAS0qE,GAA4B,CAAErmD,KAAMosE,EAAgB34G,QAAS0zB,KAAMgZ,KAE9EisE,EAAgB34G,QAAU0sC,EAAoB,GAC7C,CAACA,EAAsBxkB,EAAU2rB,KAEpCz7B,EAAAA,EAAAA,kBAAgB,IACP,KACDugG,EAAgB34G,UAClBkoB,EAAS2qE,GAA2B8lB,EAAgB34G,UACpD24G,EAAgB34G,QAAU,KAC5B,GAED,CAACkoB,IAEG,IACT,CCnCO,SAAS0wF,GAAgBr1F,GAA2E,IAA1E,cAAEs1F,GAAgEt1F,EAC3F2E,EAAWF,KACX6rB,EAAa1E,KACb2pE,GAAiBz5G,EAAAA,EAAAA,QAA4C,MAuBnE,OArBA+Y,EAAAA,EAAAA,kBAAgB,KACVy7B,IAG2B,OAA3BilE,EAAe94G,QACjBkoB,EAAS8yB,GAAiB69D,IACjBC,EAAe94G,UAAY64G,GACpC3wF,EAAS+yB,GAAqB,CAAE1O,KAAMusE,EAAe94G,QAAS0zB,KAAMmlF,KAEtEC,EAAe94G,QAAU64G,EAAa,GACrC,CAAC3wF,EAAU2rB,EAAYglE,KAE1BzgG,EAAAA,EAAAA,kBAAgB,IACP,KACD0gG,EAAe94G,UACjBkoB,EAASgzB,GAAoB49D,EAAe94G,UAC5C84G,EAAe94G,QAAU,KAC3B,GAED,CAACkoB,IAEG,IACT,CAEO,SAAS6wF,GAAqBpmF,GAA2E,IAA1E,cAAEkmF,GAAgElmF,EAChGzK,EAAWF,KACXrC,EAAS0C,GAAeirB,IACxBwlE,GAAiBz5G,EAAAA,EAAAA,QAA4C,MAuBnE,OArBA+Y,EAAAA,EAAAA,kBAAgB,KACC,YAAXuN,GAAmC,WAAXA,IAGG,OAA3BmzF,EAAe94G,QACjBkoB,EAAS8yB,GAAiB69D,IACjBC,EAAe94G,UAAY64G,GACpC3wF,EAAS+yB,GAAqB,CAAE1O,KAAMusE,EAAe94G,QAAS0zB,KAAMmlF,KAEtEC,EAAe94G,QAAU64G,EAAa,GACrC,CAAC3wF,EAAUvC,EAAQkzF,KAEtBzgG,EAAAA,EAAAA,kBAAgB,IACP,KACD0gG,EAAe94G,UACjBkoB,EAASgzB,GAAoB49D,EAAe94G,UAC5C84G,EAAe94G,QAAU,KAC3B,GAED,CAACkoB,IAEG,IACT,CCtDO,IASM8wF,GAAyD,QAAtCz1F,GAAKvkB,EAAc,QAAQR,mBAAW,IAAA+kB,GAAAA,GATzC01F,KAC3B,IAAOv3F,GAAM1iB,EAAAA,UAAe,IAAMyiB,GAAS,UAC3C,OAAOC,CAAE,ECCJ,SAASw3F,GAAYhhH,EAAiBihH,GAK3C,IAAMC,EAAcJ,KAGpB,OAAIG,IAKGjhH,EAAS,GAAH0B,OAAM1B,EAAM,KAAA0B,OAAIw/G,GAAgBA,EAC/C,CCXA,IAAMC,IAAyB78F,EAAAA,EAAAA,oBAA2C5hB,GAE7D0+G,GAA0B/1F,IAAsC,IAArC,GAAE7B,EAAE,KAAE5c,EAAI,SAAE0W,GAAoB+H,EAChEg2F,EAAaL,GAAY,YAADt/G,OAAakL,GAAQ4c,GACnD,OAAO1iB,EAAAA,cAACq6G,GAAuBhqE,SAAQ,CAAC/4C,MAAOijH,GAAa/9F,EAAS+9F,GAA8C,ECmErH,IAUMC,GAAsB9+E,GAAY,CACtCnhC,KAAM,iBACNqhC,aAZwC,CACxCyoD,eAAgB,GAChBC,WAAY,IAWZzvD,SAAU,CACR4lF,0BAA2B,CACzBjnF,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAM86D,eAAetqF,KAAeq6B,EAAO1M,QAC7C,EACA4V,QAAS2I,MAEXy0E,8BAA+B,CAC7BlnF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,QACxBprB,EAAQ0E,GAAQuoB,GAAO86D,eAAetvE,QAAkBw4B,GAC1DjxC,GAAS,IACXitB,EAAM86D,eAAe/nF,GAAmBo4B,EAE5C,EACA4I,QAAS2I,MAEX00E,6BAA8B,CAC5BnnF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM93B,EAAQ0E,GAAQuoB,GAAO86D,eAAetvE,QAAkBqf,EAAO1M,SACjEprB,GAAS,GACXitB,EAAM86D,eAAelwD,OAAO73B,EAAO,EAEvC,EACAghC,QAAS2I,MAEX20E,sBAAuB,CACrBpnF,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAM+6D,WAAWvqF,KAAeq6B,EAAO1M,QACzC,EACA4V,QAAS2I,MAEX40E,yBAA0B,CACxBrnF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM93B,EAAQ0E,GAAQuoB,GAAO+6D,WAAWvvE,QAAkBqf,EAAO1M,SAC7DprB,GAAS,GACXitB,EAAM+6D,WAAWnwD,OAAO73B,EAAO,EAEnC,EACAghC,QAAS2I,UAKF,0BACXw0E,GAAyB,8BACzBC,GAA6B,6BAC7BC,GAA4B,sBAC5BC,GAAqB,yBACrBC,IACEL,GAAoBj9E,QAEXu9E,GAAwBN,GAAoBhnF,QC3InDunF,GAA2E5+F,IAC/E,IAAM+M,EAAWF,KACXgyF,GAAe36G,EAAAA,EAAAA,QAAiB,MAiCtC,OA/BA+Y,EAAAA,EAAAA,kBAAgB,KACe,OAAzB4hG,EAAah6G,QACfkoB,EAASuxF,GAA0Bt+F,IAC1B6+F,EAAah6G,UAAYmb,GAClC+M,EAASwxF,GAA8B,CAAEntE,KAAMytE,EAAah6G,QAAS0zB,KAAMvY,KAE7E6+F,EAAah6G,QAAUmb,CAAK,GAC3B,CAAC+M,EAAU/M,KAEd/C,EAAAA,EAAAA,kBAAgB,IACP,KACD4hG,EAAah6G,UACfkoB,EAASyxF,GAA6BK,EAAah6G,UAcnDg6G,EAAah6G,QAAU,KACzB,GAED,CAACkoB,IAEG,IAAI,EAGA+xF,IAA4BC,EAAAA,EAAAA,MAAKH,IAEvC,SAASI,GAAsBh/F,GACpC,IAAM+M,EAAWF,KAOjB,OANA5P,EAAAA,EAAAA,kBAAgB,KACd8P,EAAS0xF,GAAsBz+F,IACxB,KACL+M,EAAS2xF,GAAyB1+F,GAAO,IAE1C,CAAC+M,EAAU/M,IACP,IACT,C,6pDXsVA,SAASi/F,GAAoBj/F,GAC3B,IAAM45F,GAAQx1G,EAAAA,EAAAA,UAAQ,IAAMo3G,GAAcx7F,EAAMK,SAAUwmF,KAAO,CAAC7mF,EAAMK,WAElEq9F,EAAgBxwF,IAAeE,GAAS4sF,GAAgB5sF,EAAOpN,EAAMuG,GAAIqzF,KAC/E,OAAqB,MAAjB8D,EACK,KAEF75G,EAAAA,cAAC+5G,GAAqB,CAACF,cAAeA,GAC/C,CAiBA,IAAMwB,GAA6Br7G,EAAAA,MACjCukB,IAcM,IAdL,QACC6jB,EAAO,QACPqvD,EAAO,QACP+e,EAAO,OACPhvF,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,YACJ0nE,EAAW,GACX/zF,GAID6B,EACOmpB,EAAoD,CACxDypD,kBAAmBqf,EAAQ/2G,KAAK4Y,GAAyBA,EAAE4+E,iBAC3DhB,YAAa35F,IAAK,IAAAg/G,EAAA,OAA0B,QAA1BA,EAAI9E,EAAQ72G,OAAOrD,WAAO,IAAAg/G,OAAA,EAAtBA,EAAwBlE,eAAe,EAC7D1pF,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACAqvD,UACAl9F,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAI5E6tE,GAAgBA,CAACv+G,EAAW4nB,IAC5B5nB,EAAI4nB,EACC,QAEL5nB,EAAI4nB,EACC,MAGF,SAcHqyF,GAAuBA,CAACjB,EAA0BrsE,EAA6B6xE,KACnF,IAAM,IAAEltF,EAAG,KAAED,EAAI,MAAE5R,EAAK,OAAEC,GAAWitB,EAC/B8xE,EAAe5pD,GAAap1C,EAAOC,GACnCkI,EAAKyJ,EAAO1L,GAAgBqzF,EAAYpxF,GAAInI,EAAOA,EAAQ,GAC3DoI,EAAKyJ,EAAM3L,GAAgBqzF,EAAYnxF,GAAInI,EAAQA,EAAS,GAC5Dg2C,EAAc/vC,GAAgBqzF,EAAYtjD,YAAa+oD,EAAc,GAErE9oD,EAlBe+oD,EACrBF,EACA7oD,EACA8oD,IAGS94F,GADkB,mBAAhBgwC,EACcA,EAAY6oD,GAEd7oD,EAF0B8oD,EAA6B,GAAfA,GAY3CC,CAAeF,EAAWxF,EAAYrjD,YAAa8oD,GAIvE,MAAO,CAAE72F,KAAIC,KAAI6tC,cAAaC,cAAa7D,UAFzBknD,EAAYlnD,WAAahjD,KAAK8I,KAAK6H,EAAQA,EAAQC,EAASA,GAAU,EAElC,EAGlDi6F,GAAkBA,CAACzkD,EAAoBC,IAC9BhwC,GAASgwC,EAAWD,GACdpmD,KAAKkC,IAAIlC,KAAK0F,IAAI2gD,EAAWD,GAAa,KAKzDypD,GAAsBA,CAAC/yF,EAAsBzM,KACjD,GAAInc,EAAAA,eAAqB4oB,GAEvB,OAAO5oB,EAAAA,aAAmB4oB,EAAQzM,GAEpC,GAAsB,mBAAXyM,EACT,OAAOA,EAAOzM,GAGhB,IAAMS,EAAYnB,EAAK,0BAA6C,kBAAXmN,EAAuBA,EAAOhM,UAAY,KAE7F,IAAEle,GAAuByd,EAAfmgC,EAAUr/B,GAAKd,EAAKe,IACpC,OAAOld,EAAAA,cAAC4nD,GAAKvqC,GAAA,GAAKi/B,EAAU,CAAEx2C,KAAK,SAAS8W,UAAWA,IAAa,EAGhEg/F,GAAkBA,CAAChzF,EAAkBzM,EAA4B7kB,KACrE,GAAI0I,EAAAA,eAAqB4oB,GAEvB,OAAO5oB,EAAAA,aAAmB4oB,EAAQzM,GAEpC,IAAIua,EAAQp/B,EACZ,GAAsB,mBAAXsxB,IACT8N,EAAQ9N,EAAOzM,GACXnc,EAAAA,eAAqB02B,IACvB,OAAOA,EAIX,IAAM9Z,EAAYnB,EAAK,0BAA2By3F,GAAwBtqF,IAC1E,OACE5oB,EAAAA,cAACkpG,GAAI7rF,GAAA,GAAKlB,EAAK,CAAE0/F,kBAAkB,SAASj/F,UAAWA,IAEpD8Z,EACI,EAIX,SAASolF,GAASnoF,GAQf,IARgB,QACjB6iF,EAAO,MACPr6F,EAAK,WACL4/F,GAKDpoF,GACO,MAAE+C,EAAK,UAAEslF,EAAS,QAAE5zE,GAAYjsB,EACtC,IAAK4/F,IAAerlF,IAAU8/E,EAC5B,OAAO,KAET,IAAMyF,EAAWjgG,EAAsBG,GACjC+/F,EAAmBjgG,EAAiCya,GACpDylF,EAAuBlgG,EAAiC+/F,GACxDI,EACc,iBAAV1lF,GACN,iBAAkBA,GACY,iBAAvBA,EAAM0lF,cACb1lF,EAAM0lF,cACR,GAEIC,EAAS7F,EAAQ/2G,KAAI,CAAC8jB,EAAOxoB,KACjC,IAAMkxG,GAAY1oF,EAAM2uC,WAAa3uC,EAAM4uC,UAAY,EACjD05C,EAAWj6C,GAAiBruC,EAAMqB,GAAIrB,EAAMsB,GAAItB,EAAMovC,YAAcypD,EAAcnQ,GAClFT,EAA+B9mF,GAAAA,GAAAA,GAAAA,GAAA,GAChCu3F,GACA14F,GAAK,IAERiE,OAAQ,QACL00F,GAAgB,IACnB5/G,MAAOvB,EACPiuG,WAAYuS,GAAc1P,EAAS7uG,EAAGumB,EAAMqB,KACzCinF,GAECyQ,EAAqB53F,GAAAA,GAAAA,GAAAA,GAAA,GACtBu3F,GACA14F,GAAK,IAERgE,KAAM,OAENC,OAAQjE,EAAMgE,MACX40F,GAAoB,IACvB7/G,MAAOvB,EACPmsD,OAAQ,CAAC0K,GAAiBruC,EAAMqB,GAAIrB,EAAMsB,GAAItB,EAAMovC,YAAas5C,GAAWJ,GAC5EntG,IAAK,SAGP,OACEsB,EAAAA,cAACy+F,GAAW,CACV7f,OAAQlB,GAAgBhnD,MACxBh4B,IAAG,SAAA9D,OAAW2oB,EAAM2uC,WAAU,KAAAt3D,OAAI2oB,EAAM4uC,SAAQ,KAAAv3D,OAAI2oB,EAAM0oF,SAAQ,KAAArxG,OAAIG,IAEtEiF,EAAAA,cAACsd,EAAK,KACH0+F,GAAaL,GAAoBK,EAAWM,GAC5CV,GAAgBllF,EAAO80E,EAAYrjE,GAAkB5kB,EAAO6kB,KAEnD,IAIlB,OAAOpoC,EAAAA,cAACsd,EAAK,CAACV,UAAU,uBAAuBy/F,EACjD,CAEA,SAASE,GAAYhwE,GAQlB,IARmB,QACpBiqE,EAAO,MACPr6F,EAAK,WACL4/F,GAKDxvE,GACO,MAAE7V,GAAUva,EAClB,MAAqB,iBAAVua,GAA+B,MAATA,GAAiB,aAAcA,EACvD12B,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOA,IAEjC12B,EAAAA,cAAC87G,GAAS,CAACtF,QAASA,EAASr6F,MAAOA,EAAO4/F,WAAYA,GAChE,CAEA,SAASS,GAAWrgG,GAClB,IAAM,QAAEq6F,EAAO,YAAEiG,EAAaC,cAAeC,EAAiB,iBAAEC,EAAgB,MAAEp7F,EAAK,GAAEkB,GAAOvG,EAE1Fy2E,EAAcvpE,GAAe4wE,IAC7BjG,EAAgB3qE,GAAe8wE,IAC/BlG,EAAwB5qE,GAAe+wE,KAE3CyiB,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,GAEZqD,EADCK,EAAmBhgG,GACpB2/F,EAAgBprD,IAEd0rD,EAA0B9D,GAA0BC,EAAuBuD,EAAiBx0E,QAAS1lB,GACrGy6F,EAA0B7D,GAA0BC,GACpD6D,EAAqB5D,GAA0BuD,EAAsBH,EAAiBx0E,QAAS1lB,GAErG,OAAe,MAAX8zF,GAAsC,IAAnBA,EAAQ19G,OACtB,KAIPkH,EAAAA,cAAAA,EAAAA,SAAA,KACGw2G,EAAQ/2G,KAAI,CAAC8jB,EAA0BxoB,KACtC,GAA0B,KAAtBwoB,aAAK,EAALA,EAAO2uC,aAAwC,KAApB3uC,aAAK,EAALA,EAAO4uC,WAAqC,IAAnBqkD,EAAQ19G,OAAc,OAAO,KAIrF,IAAMukH,EAAgD,MAAzBppB,GAAiCA,IAA0BvxE,EAElFqrC,EACJzvD,OAAOvD,KAAO63F,IACI,MAAjBoB,GAAyB4oB,EAAiBx0E,UAAY4rD,IACvDqpB,EAEIC,EAAgBb,GAAe1uD,EAAW0uD,EAD1B7pB,EAAc+pB,EAAoB,KAElDpoD,EAAW7vC,GAAAA,GAAA,GACZnB,GAAK,IACRiE,OAAQjE,EAAMiE,OACdg7B,UAAW,EACX,CAAC/T,IAAiC1zC,EAClC,CAAC2zC,IAA6ChsB,IAGhD,OACE1iB,EAAAA,cAACsd,EAAKD,GAAA,CACJ3e,IAAG,UAAA9D,OAAY2oB,aAAK,EAALA,EAAO2uC,WAAU,KAAAt3D,OAAI2oB,aAAK,EAALA,EAAO4uC,SAAQ,KAAAv3D,OAAI2oB,EAAM0oF,SAAQ,KAAArxG,OAAIG,GACzEynD,UAAW,EACX5lC,UAAU,uBACNkJ,GAAmBm3F,EAAqB15F,EAAOxoB,GAAE,CAErD8hH,aAAcK,EAAwB35F,EAAOxoB,GAE7CiiH,aAAcG,EAAwB55F,EAAOxoB,GAE7C+hH,QAASM,EAAmB75F,EAAOxoB,KAEnCiF,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACuL,OAAQpH,QAAAA,EAAS87F,EAAehhH,MAAOvB,EAAG69G,UAAU,SAAS7qD,SAAUA,GAAcwG,IACtF,IAKlB,CA0FA,SAASgpD,GAAoBhrD,GAQ1B,IAR2B,WAC5BwpD,EAAU,QACVvF,EAAO,SACPh6F,GAKD+1C,EACOirD,GAAuDj9G,EAAAA,EAAAA,UAAQ,IAC9Dw7G,GAAevF,EAGbA,EAAQ/2G,KACZ8jB,IAAK,CACJjsB,MAAOisB,EAAMjsB,MACbowB,QAASnE,EAAMmE,QACfunC,WAAW,EACX26C,mBAAehuG,EACf+gB,QAAS,CACPiI,GAAIrB,EAAMqB,GACVC,GAAItB,EAAMsB,GACV6tC,YAAanvC,EAAMmvC,YACnBC,YAAapvC,EAAMovC,YACnBT,WAAY3uC,EAAM2uC,WAClBC,SAAU5uC,EAAM4uC,SAChBlD,WAAW,GAEb1nC,KAAMhE,EAAMgE,SAjBP,IAoBR,CAACivF,EAASuF,IACb,OACE/7G,EAAAA,cAAC0tG,GAA6B,CAACp2G,MAAOykH,EAAayB,OAAmB5hH,GACnE4gB,EAGP,CAIA,SAASihG,GAAoBC,GAQ1B,IAR2B,MAC5BvhG,EAAK,mBACLwhG,EAAkB,GAClBj7F,GAKDg7F,GACO,QACJlH,EAAO,kBACP/0D,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,YACfk7D,EAAW,cACXC,EAAa,iBACbxuD,EAAgB,eAChBD,GACE9xC,EACEqxC,EAAckB,GAAevyC,EAAO,iBAEpCyhG,EAAcD,EAAmB38G,SAEhC68G,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GAEzC4kG,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IACJ,OACEluD,EAAAA,cAACu9G,GAAoB,CAACxB,YAAa8B,EAAarH,QAASA,GACvDx2G,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR2M,iBAAkB8vD,EAClB/vD,eAAgB8vD,EAChBr/G,IAAK8uD,IAEH34C,IAAc,IAAAopG,EACRC,EAAgC,GAChCr7B,EAAuC2zB,GAAWA,EAAQ,GAC5D2H,EAAoC,QAApBF,EAAGp7B,aAAK,EAALA,EAAO3wB,kBAAU,IAAA+rD,EAAAA,EAAI,EAgC5C,OA9BAzH,SAAAA,EAAS3wF,SAAQ,CAACtC,EAAOjnB,KACvB,IAAMixC,EAAOqwE,GAAeA,EAAYthH,GAClCu6G,EAAev6G,EAAQ,EAAIkG,KAAI+gB,EAAO,eAAgB,GAAK,EAEjE,GAAIgqB,EAAM,CACR,IAAMjoB,EAAQpC,GAAYqqB,EAAK4kB,SAAW5kB,EAAK2kB,WAAY3uC,EAAM4uC,SAAW5uC,EAAM2uC,WAAYr9C,GACxFshC,EAAMzxB,GAAAA,GAAA,GACPnB,GAAK,IACR2uC,WAAYisD,EAAWtH,EACvB1kD,SAAUgsD,EAAW74F,EAAQuxF,IAG/BqH,EAASnkH,KAAKo8C,GACdgoE,EAAWhoE,EAAOgc,QACpB,KAAO,CACL,IAAM,SAAEA,EAAQ,WAAED,GAAe3uC,EAC3BooF,EAAazoF,GAAY,EAAGivC,EAAWD,EAAYr9C,GACnDshC,EAAMzxB,GAAAA,GAAA,GACPnB,GAAK,IACR2uC,WAAYisD,EAAWtH,EACvB1kD,SAAUgsD,EAAWxS,EAAakL,IAGpCqH,EAASnkH,KAAKo8C,GACdgoE,EAAWhoE,EAAOgc,QACpB,KAIFwrD,EAAmB38G,QAAUk9G,EAE3Bl+G,EAAAA,cAACsd,EAAK,KACJtd,EAAAA,cAACw8G,GAAU,CACThG,QAAS0H,EACTzB,YAAaA,EACbC,cAAeA,EACfE,iBAAkBzgG,EAClBqF,MAAOrF,EAAMqF,MACbkB,GAAIA,IAEA,IAId1iB,EAAAA,cAACu8G,GAAY,CAACR,YAAa8B,EAAarH,QAASA,EAASr6F,MAAOA,IAChEA,EAAMK,SAGb,CAEO,IAAM4hG,GAAkB,CAC7BnuD,eAAgB,IAChB3O,kBAAmB,KACnBC,gBAAiB,OACjB38B,GAAI,MACJC,GAAI,MACJujB,QAAS,QACT+pB,SAAU,IACV5qC,KAAM,UACNwnB,MAAM,EACN2jB,YAAa,EACbjR,kBAAmB,OACnB/qB,OAAO,EACPslF,WAAW,EACX3F,WAAY,OACZK,SAAU,EACVjf,QAAS,OACT9kC,YAAa,MACbkkD,aAAc,EACdwH,aAAc,EACdnsD,WAAY,EACZ1qC,OAAQ,OACRo3D,OAAQlB,GAAgBz4B,MAG1B,SAASq5D,GAAQniG,GACf,IAAM,GAAEuG,GAA0BvG,EAAnBoiG,EAActhG,GAAKd,EAAKm3F,KACjC,KAAEvkE,EAAI,UAAEnyB,EAAS,aAAEyhG,GAAiBliG,EAEpC45F,GAAQx1G,EAAAA,EAAAA,UAAQ,IAAMo3G,GAAcx7F,EAAMK,SAAUwmF,KAAO,CAAC7mF,EAAMK,WAElEg6F,EAAUntF,IAAeE,GAAS+sF,GAAiB/sF,EAAO7G,EAAIqzF,KAE9D4H,GAAqBt9G,EAAAA,EAAAA,QAAgD,MAErE+c,EAAa3B,EAAK,eAAgBmB,GAExC,OAAImyB,GAAmB,MAAXynE,GACVmH,EAAmB38G,QAAU,KACtBhB,EAAAA,cAACsd,EAAK,CAACklC,SAAU67D,EAAczhG,UAAWQ,KAIjDpd,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACq7G,GAA0B,CACzBjzE,QAASjsB,EAAMisB,QACfqvD,QAASt7E,EAAMs7E,QACf+e,QAASA,EACThvF,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZ0nE,YAAat6F,EAAMs6F,YACnB/zF,GAAIA,IAEN1iB,EAAAA,cAACsd,EAAK,CAACklC,SAAU67D,EAAczhG,UAAWQ,GACxCpd,EAAAA,cAACy9G,GAAoB,CAACthG,MAAKuI,GAAAA,GAAA,GAAO65F,GAAc,IAAE/H,YAAWmH,mBAAoBA,EAAoBj7F,GAAIA,KAIjH,CASO,SAAS87F,GAAIl2F,GAClB,IAAMnM,EAAmC+J,GAAoBoC,EAAc81F,KACnE17F,GAAI+7F,GAAkCtiG,EAAnBoiG,EAActhG,GAAKd,EAAKuiG,IAC7CxI,EAAiDl6F,EAAsBuiG,GAE7E,OACEv+G,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAI+7F,EAAY34G,KAAK,QAC3C4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACm7G,GAAqB,CACpBr1G,KAAK,MACL4c,GAAIA,EACJqD,KAAMw4F,EAAex4F,KACrBqiB,QAASm2E,EAAen2E,QACxB2G,KAAMwvE,EAAexvE,KACrBqvC,YAAa,EACbU,aAAc,EACdvkF,KAAMgkH,EAAehkH,KACrBk9F,QAAS8mB,EAAe9mB,QACxBgf,YAAa8H,EAAe9H,YAC5BJ,WAAYkI,EAAelI,WAC3B9uF,KAAMg3F,EAAeh3F,KACrB3C,GAAI25F,EAAe35F,GACnBC,GAAI05F,EAAe15F,GACnBqtC,WAAYqsD,EAAersD,WAC3BC,SAAUosD,EAAepsD,SACzB0kD,aAAc0H,EAAe1H,aAC7BH,SAAU6H,EAAe7H,SACzBhkD,YAAa6rD,EAAe7rD,YAC5BC,YAAa4rD,EAAe5rD,YAC5BQ,aAAcorD,EAAeprD,aAC7B+iD,kBAAmBA,EACnBpnD,UAAW3yC,EAAM2yC,YAEnB9uD,EAAAA,cAACo7G,GAAmB/9F,GAAA,GAAKkhG,EAAc,CAAE77F,GAAIA,KAC7C1iB,EAAAA,cAACs+G,GAAOjhG,GAAA,GAAKkhG,EAAc,CAAE77F,GAAIA,OAK3C,CACA87F,GAAIh2G,YAAc,M,+uCYr/BlB,SAASm2G,GAAOp6F,GAAgD,IAA/C,OAAEqE,EAAM,SAAEg2F,EAAQ,UAAEhiG,GAAyB2H,EAC5D,IAAIrI,EAAAA,EAAAA,gBAAe0M,GAEjB,OAAOo2E,EAAAA,EAAAA,cAAap2E,EAAQg2F,GAG9B,GAAsB,mBAAXh2F,EACT,OAAOA,EAAOg2F,GAGhB,IAAMC,EAAiBpjG,EAAKmB,EAA6B,kBAAXgM,EAAuBA,EAAOhM,UAAY,IACxF+W,EAA6BirF,QAAAA,EAAY,CAAC,GAApC,OAAE13D,GAAkBvzB,EAAPxX,E,6WAAKc,CAAA0W,EAAAzW,IACxB,OAAOld,EAAAA,cAACovG,GAAG/xF,GAAA,GAAKlB,EAAK,CAAES,UAAWiiG,IACpC,CAkDO,SAASC,GAAIvyE,GAUN,IAVO,OACnB2a,EAAM,IACN4iC,EAAG,UACHltE,EAAS,aACTmiG,EAAY,QACZ32E,EAAO,UACP42E,EAAS,SACTC,EAAQ,WACRC,EAAU,OACVtgC,EAASlB,GAAgBK,SACfxxC,EACV,IA3DF,SAA0B2a,EAA6C4iC,GACrE,OAAc,MAAV5iC,MAGA4iC,GAGqB,IAAlB5iC,EAAOpuD,OAChB,CAmDOqmH,CAAiBj4D,EAAQ4iC,GAC5B,OAAO,KAGT,InQvDgD5kF,EmQuD1C6yG,EAAUD,GAAUhuB,GACpBs1B,EnQvDO,OADmCl6G,EmQwDS4kF,GnQtDhD,MAGL5tE,EAAAA,EAAAA,gBAAehX,GAEVkX,EAAuBlX,EAAMiX,OAGjB,iBAAVjX,GAAuBlN,MAAMkH,QAAQgG,GAIzC,KAHEkX,EAAuBlX,GmQ+C1B8jF,EAAO9hC,EAAOznD,KAAI,CAAC8jB,EAAOxoB,KAAM,IAAAskH,EAAAC,EAC9BV,EAAyBl6F,GAAAA,GAAAA,GAAA,CAC7BhR,EAAG,GACAsrG,GACAI,GAAc,IACjB9iH,MAAOvB,EACP6pB,GAAW,QAATy6F,EAAE97F,EAAMvmB,SAAC,IAAAqiH,EAAAA,OAAIzjH,EACfipB,GAAW,QAATy6F,EAAE/7F,EAAMpjB,SAAC,IAAAm/G,EAAAA,OAAI1jH,EACfwsC,UACA9wC,MAAOisB,EAAMjsB,MACbowB,QAASnE,EAAMmE,QACfw/B,WAGF,OAAOlnD,EAAAA,cAAC2+G,GAAO,CAACjgH,IAAG,OAAA9D,OAASG,GAAK6tB,OAAQkhE,EAAK80B,SAAUA,EAAUhiG,UAAWmiG,GAAgB,IAGzFQ,EAAoC,CAAC,EAK3C,OAJIN,GAA0B,MAAdC,IACdK,EAAWC,SAAW,iBAAH5kH,OAAoBm9G,EAAU,GAAK,SAAOn9G,OAAGskH,EAAU,MAI1El/G,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,GACnB5+E,EAAAA,cAACsd,EAAKD,GAAA,CAACT,UAAWA,GAAe2iG,GAC9Bv2B,GAIT,C,kgCCnHO,IAiHDy2B,GAAqB/jF,GAAY,CACrCnhC,KAAM,gBACNqhC,aAZiC,CACjCuS,MAAO,CAAC,EACRG,MAAO,CAAC,EACR01C,MAAO,CAAC,GAURnvD,SAAU,CACR6qF,SAAU,CACRlsF,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAM4kB,MAAM/Z,EAAO1M,QAAQhF,IAAgB0R,EAAO1M,OACpD,EACA4V,QAAS2I,MAEX05E,aAAc,CACZnsF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,aACD9rB,IAAzB2tB,EAAM4kB,MAAMZ,EAAK7qB,MACf6qB,EAAK7qB,KAAOgS,EAAKhS,WACZ6G,EAAM4kB,MAAMZ,EAAK7qB,IAE1B6G,EAAM4kB,MAAMzZ,EAAKhS,IAAgBgS,EAErC,EACA4I,QAAS2I,MAEX25E,YAAa,CACXpsF,OAAAA,CAAQjK,EAAO6K,UACN7K,EAAM4kB,MAAM/Z,EAAO1M,QAAQhF,GACpC,EACA4a,QAAS2I,MAEX45E,SAAU,CACRrsF,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAM+kB,MAAMla,EAAO1M,QAAQhF,IAAgB0R,EAAO1M,OACpD,EACA4V,QAAS2I,MAEX65E,aAAc,CACZtsF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,aACD9rB,IAAzB2tB,EAAM+kB,MAAMf,EAAK7qB,MACf6qB,EAAK7qB,KAAOgS,EAAKhS,WACZ6G,EAAM+kB,MAAMf,EAAK7qB,IAE1B6G,EAAM+kB,MAAM5Z,EAAKhS,IAAgBgS,EAErC,EACA4I,QAAS2I,MAEX85E,YAAa,CACXvsF,OAAAA,CAAQjK,EAAO6K,UACN7K,EAAM+kB,MAAMla,EAAO1M,QAAQhF,GACpC,EACA4a,QAAS2I,MAEX+5E,SAAU,CACRxsF,OAAAA,CAAQjK,EAAO6K,GACb7K,EAAMy6D,MAAM5vD,EAAO1M,QAAQhF,IAAgB0R,EAAO1M,OACpD,EACA4V,QAAS2I,MAEXg6E,aAAc,CACZzsF,OAAAA,CAAQjK,EAAO6K,GACb,IAAM,KAAEmZ,EAAI,KAAE7Y,GAASN,EAAO1M,aACD9rB,IAAzB2tB,EAAMy6D,MAAMz2C,EAAK7qB,MACf6qB,EAAK7qB,KAAOgS,EAAKhS,WACZ6G,EAAMy6D,MAAMz2C,EAAK7qB,IAE1B6G,EAAMy6D,MAAMtvD,EAAKhS,IAAgBgS,EAErC,EACA4I,QAAS2I,MAEXi6E,YAAa,CACX1sF,OAAAA,CAAQjK,EAAO6K,UACN7K,EAAMy6D,MAAM5vD,EAAO1M,QAAQhF,GACpC,EACA4a,QAAS2I,MAEXk6E,gBAAAA,CAAiB52F,EAAO6K,GACtB,IAAM,GAAE1R,EAAE,MAAEjG,GAAU2X,EAAO1M,QACvBshB,EAAOzf,EAAM+kB,MAAM5rB,GACzB,GAAIsmB,EAAM,KAAAo3E,EACFC,EAAUr3E,EAAKs3E,cAAgB,GAGrC,GACqB,IAAnBD,EAAQvnH,QACRunH,EAAQ,KAAOA,EAAQ,IACvB5jG,IAAU4jG,EAAQ,IAClB5jG,IAAUusB,EAAKvsB,OACf3Q,KAAK0F,IAAIiL,GAAmB,QAAd2jG,EAAIC,EAAQ,UAAE,IAAAD,EAAAA,EAAI,KAAO,EAEvC,OAEF,IAAMG,EAAa,IAAIF,EAAS5jG,GAAO/hB,OAAO,GAC9C6uB,EAAM+kB,MAAM5rB,GAAGgC,GAAAA,GAAA,GACVskB,GAAI,IACPvsB,QACA6jG,aAAcC,GAElB,CACF,MAIS,SACXb,GAAQ,aACRC,GAAY,YACZC,GAAW,SACXC,GAAQ,aACRC,GAAY,YACZC,GAAW,SACXC,GAAQ,aACRC,GAAY,YACZC,GAAW,iBACXC,IACEV,GAAmBliF,QAEVijF,GAAuBf,GAAmBjsF,QCnP1CitF,GAAoB7yF,GAC/B,CAAC+gB,KACA+xE,IACQ,CACLpyF,IAAKoyF,EAAepyF,IACpBuY,OAAQ65E,EAAe75E,OACvBxY,KAAMqyF,EAAeryF,KACrBuY,MAAO85E,EAAe95E,UCRf+5E,GAAiB/yF,GAC5B,CAAC6yF,GAAmB5yE,GAAkBC,KACtC,CAACnE,EAAQqF,EAAYC,KACnB,GAAKtF,GAAwB,MAAdqF,GAAqC,MAAfC,EAIrC,MAAO,CACLjyC,EAAG2sC,EAAOtb,KACVluB,EAAGwpC,EAAOrb,IACV7R,MAAO3Q,KAAKlP,IAAI,EAAGoyC,EAAarF,EAAOtb,KAAOsb,EAAO/C,OACrDlqB,OAAQ5Q,KAAKlP,IAAI,EAAGqyC,EAActF,EAAOrb,IAAMqb,EAAO9C,QACvD,ICAQ+5E,GAAYp8B,IACvB,IAAM3vC,EAAa1E,KACnB,OAAO9mB,IAAeE,GAASqoE,GAAoBroE,EAAO,QAASi7D,EAAS3vC,IAAY,EAG7EgsE,GAAYp8B,IACvB,IAAM5vC,EAAa1E,KACnB,OAAO9mB,IAAeE,GAASqoE,GAAoBroE,EAAO,QAASk7D,EAAS5vC,IAAY,EAW7EisE,GAAwBA,IAC5Bz3F,GAAe6wE,IA4BX6mB,GAAYA,IAChB13F,GAAeo3F,IAoBXO,GAAcA,IAClB33F,GAAes3F,IAmBXM,GAA6BA,IACjC53F,GAAewxE,IAkBXqmB,GAAiB,WAAmF,IAAlF18B,EAAe9oF,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GHxGT,EGyG7Bm5C,EAAa1E,KACnB,OAAO9mB,IAAeE,GAASsiE,GAAiBtiE,EAAO,QAASi7D,EAAS3vC,IAC3E,EAgBassE,GAAiB,WAAmF,IAAlF18B,EAAe/oF,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GH3HT,EG4H7Bm5C,EAAa1E,KACnB,OAAO9mB,IAAeE,GAASsiE,GAAiBtiE,EAAO,QAASk7D,EAAS5vC,IAC3E,EAaausE,GAAqBA,KAAe,IAAAztE,EAC/C,OAA4C,QAA5CA,EAAOtqB,GAAeqxE,WAAsB,IAAA/mD,GAAAA,CAAS,EAc1C0tE,GAA6BA,KACxC,IAAMz4E,EAAavf,GAAekxE,IAClC,GAAkB,MAAd3xD,EAGJ,MAAO,CACL5rC,EAAG4rC,EAAW5rC,EACdmD,EAAGyoC,EAAWzoC,EACf,E,kgCCjKH,IAAMmhH,GAAc/8F,IAkBd,IAlBe,MACnBsnB,EAAK,WACL01E,EAAU,UACVC,EAAS,UACTtjC,EAAS,QACT91C,EAAO,SACPo3E,GAYDj7F,EACC,IAAkB,IAAd25D,GAAkC,MAAXryC,EAAM7uC,GAAwB,MAAX6uC,EAAM1rC,EAClD,OAAO,KAET,IAoBI2pF,EANE80B,EAAwBl6F,GAAAA,GAAAA,GAAA,GAdQ,CACpCpoB,MAAOilH,EACPn5E,UACAxjB,GAAIinB,EAAM7uC,EACV6nB,GAAIgnB,EAAM1rC,EACVuT,EAAG,EACH6T,KAAMi6F,QAAAA,EAAa,OACnBl6F,YAAa,EACbE,OAAQ,OACRE,QAASmkB,EAAMnkB,QACfpwB,MAAOu0C,EAAMv0C,QAMV2kB,EAAiCiiE,IACjCz4D,GAAmBy4D,IAcxB,OAPE4L,GAFE5tE,EAAAA,EAAAA,gBAAegiE,IAEX8gB,EAAAA,EAAAA,cAAa9gB,EAAW0gC,GACA,mBAAd1gC,EACVA,EAAU0gC,GAEV5+G,EAAAA,cAACovG,GAAQwP,GAIf5+G,EAAAA,cAACsd,EAAK,CAACV,UAAU,sBAAsB4iG,SAAUA,GAC9C11B,EACK,EAiBL,SAAS23B,GAAY9tF,GAON,IAPO,OAC3BuzB,EAAM,UACNs6D,EAAS,UACTtjC,EAAS,YACTwjC,EAAW,SACXlC,EAAQ,OACR5gC,EAASlB,GAAgBQ,WACPvqD,EACZ4rE,EAAqBl2E,GAAe4wE,IACpC0nB,EAAmBV,KACzB,GAAc,MAAV/5D,GAAsC,MAApBy6D,EACpB,OAAO,KAGT,IAAMC,EAAqC16D,EAAO5jC,MAAKjL,GAAKspG,EAAiB31G,SAASqM,EAAEqP,WAExF,OAAIlE,GAAUo+F,GACL,KAIP5hH,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,GACnB5+E,EAAAA,cAACshH,GAAW,CACVz1E,MAAO+1E,EACPL,WAAY5hH,OAAO4/F,GACnBiiB,UAAWA,EACXp5E,QAASs5E,EACTxjC,UAAWA,EACXshC,SAAUA,IAIlB,C,kgCC5GA,IAAMqC,GAAwBA,CAACt4F,EAA0Bu1D,IACvDqxB,GAAqB5mF,EAAO,aAAcu1D,GAEtCgjC,GACJl0F,GAAe,CAACi0F,KAAyB/6E,IACvC,GAAa,MAATA,EAGJ,MAAO,CAAEA,QAAO,IAGPi7E,GAGwBn0F,GACnC,CAACiyD,GAAkBgiC,KACnB,CAAC7iC,EAA8Cl4C,KAC7C,GAAoB,MAAhBk4C,GAAiC,MAATl4C,EAG5B,OAAApiB,GAAAA,GAAA,GACKs6D,GAAY,IACfl4C,SAAK,IAcLk7E,GAA0BA,CAC9Bz4F,EACA04F,EACA7jC,IACsBkB,GAAgB/1D,EAAO60D,GAEzC8jC,GAA+BA,CACnC34F,EACA04F,EACA7jC,IAC8B+xB,GAAqB5mF,EAAO,YAAa60D,GAE5D+jC,GAIwBv0F,GACnC,CAACo0F,GAAyBE,KAC1B,CAACljC,EAAiCl4C,KAChC,GAAoB,MAAhBk4C,GAAiC,MAATl4C,EAG5B,OAAApiB,GAAAA,GAAA,GACKs6D,GAAY,IACfl4C,SAAK,IAcEs7E,GAIwBx0F,GACnC,CAACo0F,GAAyBE,GAA8BthC,KACxD,CACEyhC,EACAv7E,EACAm2D,KAEA,GAAoB,MAAhBA,GAAiC,MAATn2D,EAG5B,MAAO,CACLA,QACAhhC,KAAMu8G,EAAYv8G,KAClBsiC,QAASi6E,EAAYj6E,QACrBxjB,GAAIq4E,EAAar4E,GACjBC,GAAIo4E,EAAap4E,GAClB,IAYCy9F,GAMoB10F,GACxB,CACE0mB,GACAytE,GAxF0BjR,CAC5BvnF,EACAu1D,EACAyjC,EACA1tE,IAEOw7D,GAAqB9mF,EAAO,aAAcu1D,EAAcjqC,GAoF7DstE,GApDyBxR,CAC3BpnF,EACA04F,EACA7jC,EACAvpC,IAEOw7D,GAAqB9mF,EAAO,YAAa60D,EAAavpC,KAiD7D,CACEluB,EACAo5D,EACAyiC,EACA/iC,EACAgjC,IAEIp6E,GAAkB1hB,EAAQ,cACrBumB,GAAkB6yC,EAAYyiC,GAAiB,GAEjDt1E,GAAkBuyC,EAAWgjC,GAAgB,KAIlDC,GAM0B90F,GAAe,CAACyhF,GA1CjCsG,CACb70B,EACAmhC,EACAM,EACAI,EACAC,IACoBA,IAoC+D,CAACx+B,EAAgBw+B,KACpG,GAAsB,MAAlBx+B,EAAJ,CAIA,IAAMy+B,EAAOz+B,EAAe9gE,MAAK9f,GAAsB,UAAdA,EAAKsC,MAAoB88G,IAAYp/G,EAAKkf,KAEnF,OAAOmgG,aAAI,EAAJA,EAAMz6E,OAJb,CAIoB,IAGT06E,GAMwBl1F,GACnC,CACEk0F,GACAM,GACA9oC,GACAopC,GACAJ,KAEF,CACEviC,EACAN,EAAwCl7D,EAExC6jB,EACA8D,KACkC,IAHlC,UAAEmtC,EAAS,eAAEK,EAAc,aAAEF,GAA8Bj1D,EAI3D,GAAkB,MAAdw7D,GAAmC,MAAbN,GAAkC,MAAbpG,GAAiC,MAAZntC,GAA+B,MAAX9D,EAIxF,OCiEG,SAA2BmE,GAYZ,IAZa,WACjCwzC,EAAU,UACVN,EAAS,cACT6G,EAAa,QACbl+C,EAAO,SACP8D,GAODK,GACO,GAAE3nB,EAAE,GAAEC,GAAO46D,EACfsjC,GAAU,EACR77D,EAAuB,GACvB87D,EAAmC,WAAnBvjC,EAAU35E,MAAqBomC,QAAAA,EAAiB,EAEtEo6C,EAAczgE,SAAQ,CAACtC,EAAOxoB,KAAM,IAAAkoH,EAAAC,EAC5B3oH,EAAO4tC,GAAkB5kB,EAAOk8D,EAAUr3C,QAASrtC,GACnDzD,EAAQ6wC,GAAkB5kB,EAAO6kB,GACjC9iB,GAA0C,QAA1B29F,EAACxjC,EAAU34C,MAAMrnC,IAAIlF,UAAK,IAAA0oH,EAAAA,EAAI,GAAKD,EACnDG,EAAanrH,MAAMkH,QAAQ5H,GAAS6F,KAAK7F,GAASA,EAClDu3D,EAAiBrrC,GAAU2/F,GAAc,EAAqC,QAApCD,EAAInjC,EAAWj5C,MAAMrnC,IAAI0jH,UAAW,IAAAD,EAAAA,EAAI,EAEpFlrH,MAAMkH,QAAQ5H,IAAUA,EAAMwB,QAAU,IAC1CiqH,GAAU,GAGZ77D,EAAOntD,KAAI2qB,GAAAA,GAAC,CAAC,EACRktC,GAAiBhtC,EAAIC,EAAIgqC,EAAQvpC,IAAM,IAE1C/qB,OAEAjD,QACAstB,KACAC,KACAgqC,SACAvpC,QACAoC,QAASnE,IACT,IAEJ,IAAMurF,EAA+B,GAEjCiU,GACF77D,EAAOrhC,SAASgmB,IACd,GAAI7zC,MAAMkH,QAAQ2sC,EAAMv0C,OAAQ,KAAA8rH,EACxBtgC,EAAYj3C,EAAMv0C,MAAM,GACxBu3D,EAAiBrrC,GAAUs/D,GAAa,EAAoC,QAAnCsgC,EAAIrjC,EAAWj5C,MAAMrnC,IAAIqjF,UAAU,IAAAsgC,EAAAA,EAAI,EAEtFtU,EAAe/0G,KAAI2qB,GAAAA,GAAC,CAAC,EAChBmnB,GAAK,IACRgjB,UACG+C,GAAiBhtC,EAAIC,EAAIgqC,EAAQhjB,EAAMvmB,QAE9C,MACEwpF,EAAe/0G,KAAK8xC,EACtB,IAIJ,MAAO,CAAEqb,SAAQ67D,UAASjU,iBAC5B,CD/HWuU,CAAmB,CACxBtjC,aACAN,YACA6G,cAJoBjN,EAAU3+E,MAAMg/E,EAAgBF,EAAe,GAKnEpxC,UACA8D,YACA,I,uuCClBN,SAASo3E,GAAmB97F,EAA4BD,GACtD,OAAOC,GAAqB,SAAXA,EAAoBA,EAASD,CAChD,CAEA,IAAMg8F,GAAwCpnG,IAC5C,IAAM,QAAEisB,EAAO,KAAE7tC,EAAI,OAAEitB,EAAM,KAAED,EAAI,WAAE8uF,EAAU,KAAEtnE,GAAS5yB,EAC1D,MAAO,CACL,CACEiL,SAAU2nB,EACV3G,UACAtiC,KAAMuwG,EACNlvF,MAAOm8F,GAAmB97F,EAAQD,GAClCjwB,MAAOq2C,GAAmBpzC,EAAM6tC,GAChC1gB,QAASvL,GAEZ,EAGGqnG,GAA+BxjH,EAAAA,MACnCukB,IAYM,IAZL,QACC6jB,EAAO,OACP5gB,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,YACJ0nE,EAAW,GACX/zF,GAID6B,EACOmpB,EAAoD,CAOxDypD,uBAAmBv7F,EACnBq6F,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,cACAC,OACAkwE,aAAS77F,EACTwsC,UACA7tC,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOm8F,GAAmB97F,EAAQD,GAClCi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAIlF,SAAS+1E,GAAgB9vF,GAAqF,IAApF,OAAEuzB,EAAM,MAAE/qC,GAAwEwX,GACpG,IAAEm2D,EAAG,QAAE1hD,GAAYjsB,GACnB,GAAEuG,GAA0BvG,EAAnBoiG,E,6WAActhG,CAAKd,EAAKe,IAEjC8hG,EAAYhjG,EAAsBuiG,GAExC,OACEv+G,EAAAA,cAAC8+G,GAAI,CACH53D,OAAQA,EACR4iC,IAAKA,EACLltE,UAAU,sBACVmiG,aAAa,qBACb32E,QAASA,EACT42E,UAAWA,GAGjB,CAkEA,SAAS0E,GAAsBj2E,GAQ5B,IAR6B,WAC9BsuE,EAAU,OACV70D,EAAM,SACN1qC,GAKDixB,EAuBO+vE,EAA2Dt2D,EAAOznD,KAAKosC,IAAmC,IAAA83E,EACxGhnG,EAA4B,CAChC3f,EAAG6uC,EAAM7uC,EACTmD,EAAG0rC,EAAM1rC,EACTsc,MAAO,EACPg3B,WAAY,EACZD,WAAY,EACZ92B,OAAQ,GAEV,OAAAgI,GAAAA,GAAA,GACK/H,GAAO,IACVrlB,MAAkB,QAAbqsH,EAAE93E,EAAMv0C,aAAK,IAAAqsH,EAAAA,EAAI,GACtBj8F,QAASmkB,EAAMnkB,QACfkiF,mBAAehuG,EACf+gB,UACA4K,UAAM3rB,GAAS,IAInB,OACEoE,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOykH,EAAayB,OAAmB5hH,GACvE4gB,EAGP,CAEA,SAASonG,GAAarxD,GAQnB,IARoB,OACrBrL,EAAM,eACN4nD,EAAc,MACd3yF,GAKDo2C,EACC,GAAc,MAAVrL,EACF,OAAO,KAGT,IAkBI28D,GAlBE,MAAEriG,EAAK,QAAEuhG,EAAO,aAAE97D,GAAiB9qC,EAoCzC,OAhBE0nG,EADE7jH,EAAAA,eAAqBwhB,GACfxhB,EAAAA,aAAmBwhB,EAAKkD,GAAAA,GAAA,GAAOvI,GAAK,IAAE+qC,YACpB,mBAAV1lC,EACRA,EAAKkD,GAAAA,GAAC,CAAC,EAAIvI,GAAK,IAAE+qC,YAGxBlnD,EAAAA,cAAC6uG,GAAOxxF,GAAA,GACFjB,EAAuBD,GAAM,CACjC0gG,aAzBoBzyG,IACxB,IAAM,aAAEyyG,GAAiB1gG,EAErB0gG,GACFA,EAAa1gG,EAAO/R,EACtB,EAqBI4yG,aAlBoB5yG,IACxB,IAAM,aAAE4yG,GAAiB7gG,EAErB6gG,GACFA,EAAa7gG,EAAO/R,EACtB,EAcI88C,OAAQA,EACR4nD,eAAgBiU,EAAUjU,OAAiBlzG,EAC3CqrD,aAAcA,KAMlBjnD,EAAAA,cAACsd,EAAK,CAACV,UAAU,0BACdinG,EACD7jH,EAAAA,cAACyjH,GAAgB,CAACtnG,MAAOA,EAAO+qC,OAAQA,IAG9C,CAEA,IAAM48D,GACJA,CAACC,EAAmDC,EAA8BnvG,IAClF,CAAC0O,EAAmBjnB,KAClB,IAAMixC,EAAOw2E,GAAcA,EAAWj4G,KAAKO,MAAM/P,EAAQ0nH,IAEzD,OACEt/F,GAAAA,GAAA,GACKnB,GAAK,GAFRgqB,EAEQ,CACRvwC,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAChC1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,IAK1B,CACR7X,EAAGkmB,GAAYK,EAAMqB,GAAIrB,EAAMvmB,EAAG6X,GAClC1U,EAAG+iB,GAAYK,EAAMsB,GAAItB,EAAMpjB,EAAG0U,IAAE,EAI1C,SAASovG,GAAoBvG,GAQ1B,IAR2B,MAC5BvhG,EAAK,kBACL+nG,EAAiB,0BACjBC,GAKDzG,GACO,OACJx2D,EAAM,eACN4nD,EAAc,kBACdrtD,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,eACf0M,EAAc,iBACdC,GACE/xC,EACE4nG,EAAaG,EAAkBljH,QAC/BojH,EAAqBD,EAA0BnjH,QAE/CgjH,EAA+BD,EAAaA,EAAWjrH,OAASouD,EAAOpuD,OAAS,EAChFurH,EAAuCD,EACzCA,EAAmBtrH,OAASg2G,EAAeh2G,OAC3C,EAEE00D,EAAckB,GAAevyC,EAAO,oBACnC0hG,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GACzC4iG,GAAc8B,EAEdE,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IAEJ,OACEluD,EAAAA,cAAC0jH,GAAsB,CAAC3H,WAAYA,EAAY70D,OAAQA,GACtDlnD,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR7iD,IAAG,SAAA9D,OAAW4yD,GACdS,eAAgB8vD,EAChB7vD,iBAAkB8vD,IAEhBnpG,IACA,IAAMqpG,EAAiB,IAANrpG,EAAUqyC,EAASA,EAAOznD,IAAIqkH,GAAsBC,EAAYC,EAAsBnvG,IAEjGyvG,EACE,IAANzvG,EACIi6F,EACAA,aAAc,EAAdA,EAAgBrvG,IAAIqkH,GAAsBM,EAAoBC,EAA8BxvG,IAQlG,OANIA,EAAI,IAENqvG,EAAkBljH,QAAUk9G,EAE5BiG,EAA0BnjH,QAAUsjH,GAE/BtkH,EAAAA,cAAC4jH,GAAa,CAAC18D,OAAQg3D,EAAUpP,eAAgBwV,EAAoBnoG,MAAOA,GAAS,IAGhGnc,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QACpCva,EAAMK,SAGb,CAEA,SAAS+nG,GAAcpoG,GACrB,IAAM+nG,GAAoB7jH,EAAAA,EAAAA,aAA8CzE,GAClEuoH,GAA4B9jH,EAAAA,EAAAA,aAA8CzE,GAEhF,OACEoE,EAAAA,cAACikH,GAAoB,CACnB9nG,MAAOA,EACP+nG,kBAAmBA,EACnBC,0BAA2BA,GAGjC,CAEO,IAAMK,GAAoB,CAC/BtmC,WAAW,EACXE,YAAa,EACbnuB,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,OACjBuoC,KAAK,EACL/6C,MAAM,EACN0S,kBAAmB,OACnB/qB,OAAO,EACP2/E,WAAY,OACZv3B,aAAc,EACdF,OAAQlB,GAAgBz4B,MAO1B,SAASw/D,GAAetoG,GACtB,IAAM,KAAE4yB,EAAI,UAAEnyB,EAAS,OAAEsqC,GAAW/qC,EAEpC,GAAI4yB,EACF,OAAO,KAGT,IAAM3xB,EAAa3B,EAAK,iBAAkBmB,GAE1C,OACE5c,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GAChBpd,EAAAA,cAACukH,GAAkBpoG,IAErBnc,EAAAA,cAACyhH,GAAY,CACXv6D,OAAQA,EACRs6D,UAAW8B,GAAmBnnG,EAAMqL,OAAQrL,EAAMoL,MAClDm6F,YAAavlG,EAAMisB,QACnB81C,UAAW/hE,EAAM+hE,YAIzB,CAEA,SAASwmC,GAAUvoG,GACjB,IAAM04B,EAAa1E,KACbw0E,EAAct7F,IAAeE,GACjCu5F,GAAkBv5F,EAAOpN,EAAM2iE,aAAc3iE,EAAMiiE,YAAavpC,EAAY14B,EAAMuG,MAGpF,OAA2B,OAAvBiiG,aAAW,EAAXA,EAAaz9D,QACR,KAIPlnD,EAAAA,cAACykH,GAAcpnG,GAAA,GACTlB,EAAK,CACT+qC,OAAQy9D,aAAW,EAAXA,EAAaz9D,OACrB4nD,eAAgB6V,aAAW,EAAXA,EAAa7V,eAC7BiU,QAAS4B,aAAW,EAAXA,EAAa5B,UAG5B,CAMO,SAAS6B,GAAMt8F,GACpB,IAAMnM,EAA2B+J,GAAoBoC,EAAck8F,IACnE,OACExkH,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,UACzC4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACm7G,GAAqB,CACpBr1G,KAAK,QACL4c,GAAIA,EACJqD,UAAMnqB,EACNwsC,QAASjsB,EAAMisB,QACf2G,KAAM5yB,EAAM4yB,KACZqvC,YAAajiE,EAAMiiE,YACnBU,aAAc3iE,EAAM2iE,eAEtB9+E,EAAAA,cAAC+5G,GAAqB,CAACF,cAAe0J,GAAqCpnG,KAC3Enc,EAAAA,cAACwjH,GAA4B,CAC3Bp7E,QAASjsB,EAAMisB,QACf5gB,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZ0nE,YAAat6F,EAAMs6F,YACnB/zF,GAAIA,IAEN1iB,EAAAA,cAAC0kH,GAASrnG,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,OAKpC,C,2NCjoBO,SAASmiG,GAAkB1xD,GAChC,MAA4B,iBAAjBA,EACF8P,SAAS9P,EAAc,IAGzBA,CACT,CAQO,SAAS2xD,GAAgB3oG,GAC9B,OAAOnc,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACu7F,UAAU,UAAaz8F,GACvC,CDmnBAyoG,GAAMp8G,YAAc,QEloBpB,IAAMu8G,GAAaA,CACjBC,EACAC,EACAC,KAEA,IAAMroC,EAAuCqoC,QAAAA,EAAYF,EAEzD,IAAIxhG,GAAUq5D,GAGd,OAAOl6D,GAAgBk6D,EAASooC,EAAW,EAAE,EAGlCE,GAAqBA,CAChCC,EACAJ,EACAC,KAEA,IAEMI,EAA6DD,EAAQnmH,OAAO6iF,IAC5EwjC,EAAgBF,EAAQnmH,QAAO4E,GAAkB,MAAbA,EAAE8oC,UAEtC44E,EAAuEF,EAAYpjG,QAAO,CAACoE,EAAKy3D,KACpG,IAAIntE,EAAI0V,EAAIy3D,EAAInxC,SAMhB,OALS,MAALh8B,IACFA,EAAI,IAENA,EAAE5W,KAAK+jF,GACPz3D,EAAIy3D,EAAInxC,SAAWh8B,EACZ0V,CAAG,GAZiE,CAAC,GAexEm/F,EAA4BtuH,OAAOmX,QAAQk3G,GAAc9lH,KAAI8kB,IAAkC,IAAAkhG,GAAhC94E,EAAS+4E,GAAKnhG,EAC3E6mB,EAAWs6E,EAAKjmH,KAAIoE,GAAKA,EAAEukC,UAEjC,MAAO,CAAEuE,UAASvB,WAAUyxC,QADQkoC,GAAWC,EAAYC,EAAkB,QAATQ,EAAEC,EAAK,UAAE,IAAAD,OAAA,EAAPA,EAAS5oC,SAC1C,IAGjC8oC,EAA8BL,EAAc7lH,KAAKoE,IAG9C,CAAE8oC,aAAS/wC,EAAWwvC,SAFZ,CAACvnC,EAAEukC,SAASnpC,QAAO2mH,GAAY,MAANA,IAEH/oC,QADHkoC,GAAWC,EAAYC,EAAWphH,EAAEg5E,aAI1E,MAAO,IAAI2oC,KAAoBG,EAAkB,E,kgCC0C5C,IAAME,GAAyBA,CACpCC,EACAC,EACAtpC,EACAE,EACAqpC,EACA95E,EACA+5E,KAEA,IAAM1pC,EAAiC/4D,GAAUyiG,GAAmBF,EAAmBE,EAEnFC,EAlGN,SACEzpC,EACAE,EACAzwC,EACA45E,EACAvpC,GAC4C,IAAA4pC,EACtC1qH,EAAMqqH,EAAShtH,OACrB,KAAI2C,EAAM,GAAV,CAIA,IAEIxD,EAFAmuH,EAAazjG,GAAgB85D,EAAQvwC,EAAU,GAAG,GAGhDm6E,EAA+C,GAIrD,GAAIr+E,GAA+B,QAAZm+E,EAACL,EAAS,UAAE,IAAAK,OAAA,EAAXA,EAAatpC,SAAU,CAC7C,IAAIypC,GAAU,EACVC,EAAsBr6E,EAAWzwC,EACjCyb,EAAM4uG,EAAS7jG,QAAO,CAAC6qB,EAAKvpB,IAAUupB,GAAOvpB,EAAMs5D,SAAW,IAAI,IACtE3lE,IAAQzb,EAAM,GAAK2qH,IAERl6E,IACTh1B,IAAQzb,EAAM,GAAK2qH,EACnBA,EAAa,GAEXlvG,GAAOg1B,GAAYq6E,EAAc,IACnCD,GAAU,EAEVpvG,EAAMzb,GADN8qH,GAAe,KAIjB,IACIh5E,EAA4B,CAAE5D,SADjBuC,EAAWh1B,GAAO,EAAM,GACUkvG,EAAYj4G,KAAM,GAErElW,EAAS6tH,EAAS7jG,QAChB,CAAC6qB,EAAqCvpB,KAAuD,IAAAijG,EACrFC,EAA+B,CACnC95E,QAASppB,EAAMopB,QACfvB,SAAU7nB,EAAM6nB,SAChBmS,SAAU,CACR5T,OAAQ4D,EAAK5D,OAAS4D,EAAKp/B,KAAOi4G,EAClCj4G,KAAMm4G,EAAUC,EAA4B,QAAjBC,EAAIjjG,EAAMs5D,eAAO,IAAA2pC,EAAAA,EAAI,IAG9CE,EAAiC,IAAI55E,EAAK25E,GAIhD,OAFAl5E,EAAOk5E,EAAYlpE,SAEZmpE,CAAM,GAEfL,EAEJ,KAAO,CACL,IAAM18E,EAAShnB,GAAgBg6D,EAAgBzwC,EAAU,GAAG,GAExDA,EAAW,EAAIvC,GAAUluC,EAAM,GAAK2qH,GAAc,IACpDA,EAAa,GAGf,IAAIO,GAAgBz6E,EAAW,EAAIvC,GAAUluC,EAAM,GAAK2qH,GAAc3qH,EAClEkrH,EAAe,IACjBA,IAAiB,GAEnB,IAAMx4G,EAAO65B,GAAoBu0C,GAAczwE,KAAKkC,IAAI24G,EAAcpqC,GAAcoqC,EACpF1uH,EAAS6tH,EAAS7jG,QAChB,CAAC6qB,EAAqCvpB,EAAoBxoB,IAAsC,IAC3F+xC,EACH,CACEH,QAASppB,EAAMopB,QACfvB,SAAU7nB,EAAM6nB,SAChBmS,SAAU,CACR5T,OAAQA,GAAUg9E,EAAeP,GAAcrrH,GAAK4rH,EAAex4G,GAAQ,EAC3EA,WAINk4G,EAEJ,CAEA,OAAOpuH,CA1EP,CA2EF,CAaoE2uH,CAChEnqC,EACAE,EACAqpC,IAAgB95E,EAAW85E,EAAc95E,EACzC45E,EACAvpC,GAUF,OAPIypC,IAAgB95E,GAA+B,MAAnBg6E,IAC9BA,EAAkBA,EAAgBzmH,KAAI69F,GAAG54E,GAAAA,GAAA,GACpC44E,GAAG,IACN//C,SAAQ74B,GAAAA,GAAA,GAAO44E,EAAI//C,UAAQ,IAAE5T,OAAQ2zD,EAAI//C,SAAS5T,OAASq8E,EAAc,SAItEE,CAAe,ECnHXW,GAAqBA,CAChCn6E,EACAo6E,KAEA,IAAMC,EAAwB7lC,GAAyB4lC,GACvD,GAAKp6E,GAAwC,MAAzBq6E,GAAgD,MAAfD,EAArD,CAGA,IAAM,QAAEn6E,GAAYm6E,EACpB,GAAe,MAAXn6E,EAAJ,CAGA,IAAMq6E,EAAqCt6E,EAAYC,GACvD,GAAKq6E,EAAL,CAGA,IAAM,YAAEn6E,GAA4Bm6E,EACpC,GAAKn6E,EAGL,OAAOA,EAAYvpB,MAAK7O,GAAMA,EAAG/V,MAAQqoH,GALzC,CAJA,CAJA,CAa+D,ECpBpDE,GAAqBA,CAChCf,EACAY,KAEA,GAAuB,MAAnBZ,GAA0C,MAAfY,EAA/B,CAGA,IAAMvpE,EAAW2oE,EAAgB5iG,MAC9BjL,GACCA,EAAEs0B,UAAYm6E,EAAYn6E,SAAkC,MAAvBm6E,EAAY1+E,SAAmB/vB,EAAE+yB,SAASp/B,SAAS86G,EAAY1+E,WAExG,GAAgB,MAAZmV,EAGJ,OAAOA,EAASA,QARhB,CAQwB,E,kgCCqB1B,IAMa2pE,GAGwBt5F,GACnC,CAVmCu5F,CAAC59F,EAA0Bu1D,IAC9De,GAAiBt2D,EAAOu1D,GAEYsoC,CAAC79F,EAA0Bu1D,IAC/DqxB,GAAqB5mF,EAAO,aAAcu1D,KAO1C,CAAC91C,EAA0BlC,KACzB,GAAY,MAARkC,GAAyB,MAATlC,EAGpB,OAAApiB,GAAAA,GAAA,GAAYskB,GAAI,IAAElC,SAAK,IAIdgqE,GAAwBA,CACnCvnF,EACAu1D,IAEO2xB,GAAkClnF,EAAO,aAAcu1D,GAAc,GAejEuoC,GAIwBz5F,GACnC,CAjBkC05F,CAClC/9F,EACA04F,EACA7jC,IACsBkB,GAAgB/1D,EAAO60D,GAENmpC,CACvCh+F,EACA04F,EACA7jC,IAC8B+xB,GAAqB5mF,EAAO,YAAa60D,KAQvE,CAACp1C,EAAyBlC,KACxB,GAAY,MAARkC,GAAyB,MAATlC,EAGpB,OAAApiB,GAAAA,GAAA,GAAYskB,GAAI,IAAElC,SAAK,IAIrB6pE,GAAuBA,CAC3BpnF,EACA04F,EACA7jC,IAGOiyB,GAAqB9mF,EAAO,YAAa60D,GAAa,GAUzDopC,GAK+B55F,GACnC,CAACyhF,GAb2BoY,CAC5B3mC,EACAmhC,EACAM,EACAmF,IACsBA,IAStB,CAACtjC,EAAgBujC,KACf,GACEvjC,EAAez5E,MACbk4G,GACgB,cAAdA,EAAK/8G,MACL6hH,EAA2Bv/E,UAAYy6E,EAAKz6E,SAC5Cu/E,EAA2Bh7E,UAAYk2E,EAAKl2E,UAGhD,OAAOg7E,CAEO,IAIPC,GAIah6F,GACxB,CAAC0mB,GAAmB4yE,GAA2BpW,GAAuBuW,GAA0B1W,KAChG,CACEhqF,EACAo5D,EACAyiC,EACA/iC,EACAgjC,IAEIp6E,GAAkB1hB,EAAQ,cACrBumB,GAAkB6yC,EAAYyiC,GAAiB,GAEjDt1E,GAAkBuyC,EAAWgjC,GAAgB,KAI3CoF,GAIWj6F,GACtB,CAACy5F,GAA0BH,GAA2B5yE,KACtD,CAACmrC,EAAWM,EAAYp5D,KACtB,IAAM6lB,EAAyB,WAAX7lB,EAAsB84D,EAAYM,EACtD,GAAmB,MAAfvzC,GAA4C,MAArBA,EAAY1F,MAGvC,OAAOwF,GAAkB,CAAEE,eAAc,IA4BhCs7E,GAAiBA,CAC5BhnC,EACAmhC,EACAM,EACAmF,EACAK,IACuBL,EAAkBnrC,WAErCyrC,GAAexkH,GAA8E,cAAdA,EAAKsC,KAEpFmiH,GAMkCr6F,GACtC,CAAC0mB,GAAmB+6D,GAjCE6Y,CACtBpnC,EACAmhC,EACA7jC,EACA+pC,EACAJ,IACW3pC,EAEYgqC,CACvBtnC,EACAhC,EACAyjC,EACA4F,EACAJ,IACWjpC,IAoBX,CACEn4D,EACA0hG,EACAjqC,EACAU,IAEOupC,EACJppH,QAAOlE,GACS,YAAX4rB,EACK5rB,EAAEqjF,cAAgBA,EAEpBrjF,EAAE+jF,eAAiBA,IAE3B7/E,QAAOlE,IAAgB,IAAXA,EAAEg0C,OACd9vC,OAAO+oH,MAWDM,GAMG16F,GACd,CAACq6F,GAA4BrrC,GATA2rC,KAA0B,GAUvDpD,IAGWqD,GAMC56F,GACZ,CACE0mB,GACAgoC,GACA+qC,GACA1W,GACAuW,GACApW,GACAgX,KAEF,CACEnhG,EACAo/F,EACAtmC,EACAgjC,EACA1iC,EACAyiC,EACAyD,KACW,IAAAtyF,EAAA80F,EAEelkG,EAAAmkG,EADpBnsC,EAAiC/4D,GAAUyiG,GAAmBF,EAAmBE,EACvF,MAAe,YAAXt/F,EACqE,QAAvEpC,EAAyD,QAAzDmkG,EAAOx7E,GAAkBuyC,EAAWgjC,GAAgB,UAAK,IAAAiG,EAAAA,EAAInsC,SAAU,IAAAh4D,EAAAA,EAAI,EAEJ,QAAzEoP,EAA2D,QAA3D80F,EAAOv7E,GAAkB6yC,EAAYyiC,GAAiB,UAAK,IAAAiG,EAAAA,EAAIlsC,SAAU,IAAA5oD,EAAAA,EAAI,CAAC,IAIrEg1F,GAMqC/6F,GAChD,CACE06F,GACAhsC,GACAE,GACAE,GACA8rC,GACAZ,GACAE,IAEFjC,IAGW+C,GAM0Bh7F,GACrC,CAAC+6F,GAA4BnB,IAC7BP,IAGI4B,GAI+Cj7F,GACnD,CAAC0hF,KACAwZ,GACCA,EAAc7pH,OAAO+oH,IAAa/oH,OAAO6iF,MAGvCinC,GAIsBn7F,GAC1B,CAACi7F,GAAyBvvC,GAAuC4M,IACjE9E,IAGIuF,GAI4B/4D,GAChC,CAACm7F,GAAgCF,GAAyB/rC,GAAuBE,IACjFqJ,IAiBI2iC,GAMyBp7F,GAC7B,CAfgCq7F,CAAC1/F,EAAOu1D,EAAcV,IAEvC,YADA9pC,GAAkB/qB,GAExBo9D,GAAkBp9D,EAAO,aAAcu1D,GAEzC6H,GAAkBp9D,EAAO,YAAa60D,GAUhBopC,IAC7BX,IAGWqC,GAM2Bt7F,GACtC,CACEy5F,GACA1W,GACAuW,GACApW,GACA13B,GACAouC,GACAI,GACAtzE,GACAuzE,GACAjnC,GAnNci1B,CAChB/0B,EACAmhC,EACAM,EACA4F,EACApS,IACGA,EA+MD6S,GACAI,KAEF,CACEvpC,EACAgjC,EACA1iC,EACAyiC,EAAoDj2E,EAEpDm7E,EACAx7E,EACAvlB,EACAm8D,EACAma,EACA8Y,EACAzY,EACAzwD,KACqC,IATrC,UAAEwsC,EAAS,eAAEK,EAAc,aAAEF,GAA8BjtC,EAU3D,GACuB,MAArBm7E,GACc,MAAd3nC,GACa,MAAbN,GACa,MAAbpG,GACY,MAAZntC,GACO,MAAPoxD,GACY,YAAX32E,GAAmC,WAAXA,GACN,MAAnB67F,GACgB,MAAhBvlB,EAEA,MAAO,GAET,IAAM,QAAE70D,EAAO,aAAE+gF,GAAiBzB,GAC5B,GAAE9iG,EAAE,GAAEC,EAAE,WAAEqtC,EAAU,SAAEC,GAAa8qC,EAIzC,OCuKG,SAAkC1qC,GAwCJ,IAxCK,cACxC+zB,EAAa,YACbz5C,EAAW,eACX6sC,EAAc,cACd0vC,EAAa,QACbhhF,EAAO,UACP06C,EAAS,OACTn8D,EAAM,WACNo5D,EAAU,gBACVyiC,EAAe,SACft2E,EAAQ,IACRoxD,EAAG,UACH7d,EAAS,aACT0pC,EAAY,GACZvkG,EAAE,GACFC,EAAE,eACF49F,EAAc,MACd1M,EACA7jD,WAAYm3D,EACZl3D,SAAUm3D,GAqBX/2D,EACC,GAAsB,MAAlBkwD,GAA6C,MAAnBD,EAC5B,OAAO+G,GAGT,OAAQjjC,QAAAA,EAAiB,IAAI7mF,KAAI,CAAC8jB,EAAgBjnB,KAChD,IAAIhF,EACFo7D,EACAC,EACAT,EACAC,EACAq3D,EAYuBvG,EAAAwG,EAAzB,GAVI58E,EAEFv1C,EAAQyyC,GAAiB8C,EAAY6sC,EAAiBp9E,GAAQ8sH,IAE9D9xH,EAAQ6wC,GAAkB5kB,EAAO6kB,GAC5BpwC,MAAMkH,QAAQ5H,KACjBA,EAAQ,CAACwrF,EAAWxrF,KAIT,WAAXqvB,GAWF,GAVAurC,EAA0C,QAAhC+wD,EAAGxjC,EAAU34C,MAAMrnC,IAAInI,EAAM,WAAG,IAAA2rH,EAAAA,EAAIoG,EAC9Cl3D,EAAwC,QAAhCs3D,EAAGhqC,EAAU34C,MAAMrnC,IAAInI,EAAM,WAAG,IAAAmyH,EAAAA,EAAIH,EASzB,OARnB52D,EAAcrmB,GAAuB,CACnCrD,KAAM+2C,EACNv3C,MAAOg6E,EACPt2E,WACAvC,OAAQ2zD,EAAI3zD,OACZpmB,QACAjnB,YAEqC,MAAZ61D,GAAkC,MAAdD,EAAoB,CACjES,EAAcD,EAAc4qC,EAAInvF,KAChC,IAAMw9F,EAAax5C,EAAWD,EAE9B,GAAIpmD,KAAK0F,IAAI23G,GAAgB,GAAKr9G,KAAK0F,IAAIm6F,GAAc7/F,KAAK0F,IAAI23G,GAGhEh3D,GAFchwC,GAASwpF,GAAcwd,IAAiBr9G,KAAK0F,IAAI23G,GAAgBr9G,KAAK0F,IAAIm6F,IAI1F6d,EAAmB,CACjBE,WAAY,CACV9kG,KACAC,KACA6tC,cACAC,cACAT,WAAYm3D,EACZl3D,SAAUm3D,GAGhB,OAYA,GAVA52D,EAAcqtB,EAAWj5C,MAAMrnC,IAAInI,EAAM,IACzCq7D,EAAcotB,EAAWj5C,MAAMrnC,IAAInI,EAAM,IACzC46D,EAAa7lB,GAAuB,CAClCrD,KAAMy2C,EACNj3C,MAAOi6E,EACPv2E,WACAvC,OAAQ2zD,EAAI3zD,OACZpmB,QACAjnB,UAEiB,MAAfo2D,GAAsC,MAAfC,GAAqC,MAAdT,EAAoB,CACpEC,EAAWD,EAAaorC,EAAInvF,KAC5B,IAAMqmD,EAAc7B,EAAcD,EAElC,GAAI5mD,KAAK0F,IAAI23G,GAAgB,GAAKr9G,KAAK0F,IAAIgjD,GAAe1oD,KAAK0F,IAAI23G,GAEjEx2D,GADcxwC,GAASqyC,GAAe20D,IAAiBr9G,KAAK0F,IAAI23G,GAAgBr9G,KAAK0F,IAAIgjD,GAG7F,CAGF,OAAA9vC,GAAAA,GAAAA,GAAA,GAEKnB,GACAimG,GAAgB,IACnB9hG,QAASnE,EACTjsB,MAAOu1C,EAAcv1C,EAAQA,EAAM,GACnCstB,KACAC,KACA6tC,cACAC,cACAT,aAEAC,YACI4jD,GAASA,EAAMz5G,IAAUy5G,EAAMz5G,GAAO6f,MAAM,GAGtD,CD3SWwtG,CAA0B,CAC/BlqC,YACAgjC,iBACAv2E,WACA42C,YACAizB,QACAnxF,KACAC,KACAujB,UACAsxC,iBACA4M,cAboBjN,EAAU3+E,MAAMg/E,EAAgBF,EAAe,GAcnErnB,WACAxrC,SACAwiG,eACA7rB,MACAvd,aACAyiC,kBACA31E,cACAu8E,cAnBmDv8E,GADtB,YAAXlmB,EAAuBo5D,EAAaN,GACuB34C,MAAMgD,SAAW,KAoB9FooB,cACA,IAIO03D,GAGuBh8F,GAClC,CAAC0rD,GAAuC,CAACuwC,EAAuB7uH,IAA8BA,IAC9F,CAAAyyC,EAEE4oE,KACiC,IAFjC,UAAEh9B,EAAS,eAAEK,EAAc,aAAEF,GAA8B/rC,EAG3D,GAAiB,MAAb4rC,EACF,MAAO,GAET,IAAMiN,EAAgBjN,EAAU3+E,MAAMg/E,EAAgBF,EAAe,GAErE,OAA6B,IAAzB8M,EAAcxtF,OACT,GAGFwtF,EAAc7mF,KAAK8jB,IACjB,CACLzd,KAAMuwG,EAEN/+G,MAAOisB,EAAMhpB,KAEb4sB,MAAO5D,EAAMgE,KAEbG,QAASnE,KAEX,IE/cC,SAASumG,GAAqB5kH,EAAgB6kH,GACnD,OACE7kH,GACiB,iBAAVA,GACP,WAAYA,GACY,iBAAjBA,EAAM05E,QACb52C,GAAoB9iC,EAAM05E,QAEnB15E,EAAM05E,OAERmrC,CACT,C,usDDmDA,IAAMR,GAAmD,GAiBzD,SAASS,GAA0BzlG,GAQhC,IARiC,WAClCw3F,EAAU,QACVvF,EAAO,SACPh6F,GAKD+H,EACOi5F,EAAuDhH,EAAQ/2G,KAClEwqH,IAAyB,CACxB3yH,MAAO2yH,EAAO3yH,MACdowB,QAASuiG,EAAOviG,QAChBkiF,mBAAehuG,EACfqzD,WAAW,EACXtyC,QAAS,CACPiI,GAAIqlG,EAAOrlG,GACXC,GAAIolG,EAAOplG,GACX6tC,YAAau3D,EAAOv3D,YACpBC,YAAas3D,EAAOt3D,YACpBT,WAAY+3D,EAAO/3D,WACnBC,SAAU83D,EAAO93D,SACjBlD,WAAW,GAEb1nC,KAAM0iG,EAAO1iG,SAIjB,OACEvnB,EAAAA,cAAC0tG,GAA6B,CAACp2G,MAAOykH,EAAayB,OAAmB5hH,GACnE4gB,EAGP,CAEA,SAAS0tG,GAAgBv2F,GAAyE,IAAxE,QAAE6iF,EAAO,uBAAE2T,EAAsB,WAAEpO,GAAmCpoF,GACxF,MAAEnS,EAAK,YAAEi7F,EAAW,aAAEtpD,EAAY,GAAEzwC,GAAkBynG,EAAXntG,EAAMC,GAAKktG,EAAsBjtG,IAC5E8hG,EAAYhjG,EAAsBgB,GAElC41E,EAAcvpE,GAAe4wE,KAEjC4iB,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,GAEZ4Q,EADClN,EAAmBhgG,GACpBktG,EAAsB34D,IAEpB0rD,EAA0B9D,GAA0BC,EAAuB8Q,EAAuB/hF,QAAS1lB,GAC3Gy6F,EAA0B7D,GAA0BC,GACpD6D,EAAqB5D,GAA0BuD,EAAsBoN,EAAuB/hF,QAAS1lB,GAE3G,OAAe,MAAX8zF,EACK,KAIPx2G,EAAAA,cAACgqH,GAA0B,CAACjO,WAAYA,EAAYvF,QAASA,GAC1DA,EAAQ/2G,KAAI,CAAC8jB,EAA0BxoB,KACtC,IAAMgzD,EAAW0uD,GAAe7pB,IAAgBt0F,OAAOvD,GAEjD8hH,EAAeK,EAAwB35F,EAAOxoB,GAE9CiiH,EAAeG,EAAwB55F,EAAOxoB,GAE9C+hH,EAAUM,EAAmB75F,EAAOxoB,GAEpCqvH,EAA0C1lG,GAAAA,GAAAA,GAAAA,GAAA,GAC3Cs6F,GAAS,IACZ7rD,aAAc0xD,GAAkB1xD,IAC7B5vC,GACAuC,GAAmBm3F,EAAqB15F,EAAOxoB,IAAE,IACpD8hH,eACAG,eACAF,UACAlgG,UAAW,8BAAFhiB,OAAgC2oB,EAAM3G,WAC/Cy3C,kBAAmBr3C,EAAOq3C,kBAC1BjB,iBAAkBp2C,EAAOo2C,iBACzBrF,WACAnlC,OAAQmlC,EAAW0uD,EAAcj7F,IAGnC,OAAIusC,EAEA/tD,EAAAA,cAACy+F,GAAW,CACV7f,OAAQlB,GAAgBM,UACxBt/E,IAAG,UAAA9D,OAAY2oB,EAAMqB,GAAE,KAAAhqB,OAAI2oB,EAAMsB,GAAE,KAAAjqB,OAAI2oB,EAAMmvC,YAAW,KAAA93D,OAAI2oB,EAAMovC,YAAW,KAAA/3D,OAAI2oB,EAAM2uC,WAAU,KAAAt3D,OAAI2oB,EAAM4uC,SAAQ,KAAAv3D,OAAIG,IAEvHiF,EAAAA,cAAC8kH,GAAoBsF,IAMzBpqH,EAAAA,cAAC8kH,GAAeznG,GAAA,CACd3e,IAAG,UAAA9D,OAAY2oB,EAAMqB,GAAE,KAAAhqB,OAAI2oB,EAAMsB,GAAE,KAAAjqB,OAAI2oB,EAAMmvC,YAAW,KAAA93D,OAAI2oB,EAAMovC,YAAW,KAAA/3D,OAAI2oB,EAAM2uC,WAAU,KAAAt3D,OAAI2oB,EAAM4uC,SAAQ,KAAAv3D,OAAIG,IACnHqvH,GACJ,IAGNpqH,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOyzF,EAAuBzzF,QACrDyzF,EAAuB3tG,SAG9B,CAEA,SAASihG,GAAoBlxE,GAM1B,IAN2B,MAC5BpwB,EAAK,mBACLwhG,GAIDpxE,GACO,QACJiqE,EAAO,kBACP/0D,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,eACf0M,EAAc,iBACdC,GACE/xC,EACEqxC,EAAckB,GAAevyC,EAAO,uBAEpCkuG,EAAW1M,EAAmB38G,SAE7B68G,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GAEzC4kG,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IACJ,OACEluD,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR2M,iBAAkB8vD,EAClB/vD,eAAgB8vD,EAChBr/G,IAAK8uD,IAEH34C,IACA,IAAMqpG,EACE,IAANrpG,EACI2hG,GACCA,QAAAA,EAAW+S,IAAoB9pH,KAAI,CAAC8jB,EAA0BjnB,KAC7D,IAAMixC,EAAO88E,GAAYA,EAAS/tH,GAElC,GAAIixC,EACF,OAAA7oB,GAAAA,GAAA,GACKnB,GAAK,IACR2uC,WAAYhvC,GAAYqqB,EAAK2kB,WAAY3uC,EAAM2uC,WAAYr9C,GAC3Ds9C,SAAUjvC,GAAYqqB,EAAK4kB,SAAU5uC,EAAM4uC,SAAUt9C,KAGzD,IAAM,SAAEs9C,EAAQ,WAAED,GAAe3uC,EAEjC,OAAAmB,GAAAA,GAAA,GAAYnB,GAAK,IAAE4uC,SAAUjvC,GAAYgvC,EAAYC,EAAUt9C,IAAE,IAQzE,OALIA,EAAI,IAEN8oG,EAAmB38G,QAAUk9G,QAAAA,EAAY,MAIzCl+G,EAAAA,cAACsd,EAAK,KACJtd,EAAAA,cAACkqH,GAAgB,CACf1T,QAAS0H,QAAAA,EAAYqL,GACrBY,uBAAwBhuG,EACxB4/F,YAAa8B,IAET,GAKlB,CAEA,SAASyM,GAAcnuG,GACrB,IAAMwhG,GAAqBt9G,EAAAA,EAAAA,QAAgD,MAE3E,OAAOL,EAAAA,cAACy9G,GAAoB,CAACthG,MAAOA,EAAOwhG,mBAAoBA,GACjE,CAiJA,SAAS4M,GAA0BpuG,GACjC,IAAM09F,EAAgBxwF,IAAeE,GAASqgG,GAA6BrgG,EAAOpN,EAAMk6F,cACxF,OAAOr2G,EAAAA,cAAC+5G,GAAqB,CAACF,cAAeA,QAAAA,EAAiB,IAChE,CAEA,IAAM2Q,GAAmCxqH,EAAAA,MACvCytC,IAaM,IAbL,QACCrF,EAAO,QACPouE,EAAO,OACPhvF,EAAM,YACNF,EAAW,KACX/sB,EAAI,KACJw0C,EAAI,KACJxnB,EAAI,YACJkvF,EAAW,GACX/zF,GAID+qB,EACOC,EAAoD,CACxDypD,kBAAmBqf,EACnBvgB,YAAaryE,GACb8J,SAAU,CACRqlE,gBAAiBrwE,EACjB8E,SACAF,cACAC,OACAkwE,aAAS77F,EACTwsC,UACA7tC,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOI,EACPi4B,KAAM,KAGV,OAAOx/C,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAIlF,MAAM+8E,WAA2BnqE,EAAAA,cAC/BsxD,gBAAAA,CAAiB4E,GACf,GAAe,MAAXA,EACF,OAAO,KAET,IAAM,aAAErjD,GAAiBr8D,KAAKqlB,MACxBuuG,EAAkBzuG,EAAiCnlB,KAAKqlB,MAAMutG,YACpE,OACE1pH,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQkrC,GAAqBhzH,KAAKqlB,MAAMutG,WAAYhsC,GAAgBE,gBAC9E44B,EAAQ/2G,KAAI,CAAC8jB,EAAOxoB,KACnB,IAAM,MAAEzD,EAAK,WAAEoyH,GAAwBnmG,EAATkB,EAAIxH,GAAKsG,EAAK+vF,IAE5C,IAAKoW,EACH,OAAO,KAGT,IAAMvtG,EAA2BuI,GAAAA,GAAAA,GAAAA,GAAAA,GAAA,CAC/ByuC,aAAc0xD,GAAkB1xD,IAC7B1uC,GAAI,IAEP8C,KAAM,QACHmiG,GACAgB,GACA5kG,GAAmBhvB,KAAKqlB,MAAOoH,EAAOxoB,IAAE,IAC3CuB,MAAOvB,EACP6hB,UAAWnB,EAAK,wCAAyCnd,OAAOosH,aAAe,EAAfA,EAAiB9tG,YACjFgM,OAAQ8gG,EACR37D,UAAU,IAGZ,OACE/tD,EAAAA,cAAC8kH,GAAeznG,GAAA,CACd3e,IAAG,cAAA9D,OAAgB6pB,EAAKG,GAAE,KAAAhqB,OAAI6pB,EAAKI,GAAE,KAAAjqB,OAAI6pB,EAAKiuC,YAAW,KAAA93D,OAAI6pB,EAAKkuC,YAAW,KAAA/3D,OAAI6pB,EAAKytC,WAAU,KAAAt3D,OAAI6pB,EAAK0tC,SAAQ,KAAAv3D,OAAIG,IACjHohB,GACJ,IAKZ,CAEA1S,MAAAA,GACE,IAAM,KAAEslC,EAAI,QAAEynE,EAAO,UAAE55F,EAAS,WAAE8sG,GAAe5yH,KAAKqlB,MAEtD,GAAI4yB,EACF,OAAO,KAGT,IAAM3xB,EAAa3B,EAAK,gBAAiBmB,GAEzC,OACE5c,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQ9nF,KAAKqlB,MAAMyiE,QAC9B5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GACfssG,GAAc1pH,EAAAA,cAACsd,EAAK,CAACV,UAAU,kCAAkC9lB,KAAK86G,iBAAiB4E,IACxFx2G,EAAAA,cAACsd,EAAK,CAACV,UAAU,+BACf5c,EAAAA,cAACsqH,GAAkBxzH,KAAKqlB,SAKlC,EAGF,SAASwuG,GAAcxuG,GAA0C,IAAAw3B,EACzDoiE,EAAQ4B,GAAcx7F,EAAMK,SAAUwmF,IACtC0kB,EAAuC,CAC3C3hG,UAAMnqB,EACNmzC,MAAM,EACNrsB,GAAIvG,EAAMuG,GACV0lB,QAASjsB,EAAMisB,QACf+gF,aAAchtG,EAAMgtG,aACpBx8E,QAASZ,GAAqB5vB,EAAMwwB,SACpC4vC,WAAYpgE,EAAMogE,WAClBM,QAAS1gE,EAAM0gE,QACf/2E,KAAM,YACNs4E,YAAajiE,EAAMiiE,YACnBU,aAAc3iE,EAAM2iE,cAEhB03B,EAGH,QAH4C7iE,EAC7CtqB,IAAeE,GACb2/F,GAAuB3/F,EAAOpN,EAAM2iE,aAAc3iE,EAAMiiE,YAAaspC,EAAmB3R,YACzF,IAAApiE,EAAAA,EAAI41E,GACP,OACEvpH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACwqH,GAAgC,CAC/BpiF,QAASjsB,EAAMisB,QACfouE,QAASA,EACThvF,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnB/sB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZxnB,KAAMpL,EAAMoL,KACZkvF,YAAat6F,EAAMs6F,YACnB/zF,GAAIvG,EAAMuG,KAEZ1iB,EAAAA,cAACyqH,GAAkBptG,GAAA,GAAKlB,EAAK,CAAEq6F,QAASA,KAG9C,CAEO,IAAMoU,GAAwB,CACnCxsC,YAAa,EACbnuB,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,OACjBmoE,YAAY,EACZt2D,kBAAkB,EAClBD,aAAc,EACdkB,mBAAmB,EACnBtlB,MAAM,EACN0S,kBAAmB,OACnB/qB,OAAO,EACP2/E,WAAY,OACZ8S,aAAc,EACdrqC,aAAc,EACdF,OAAQlB,GAAgBI,KAgJnB,SAAS+sC,GAAUviG,GACxB,IAAMnM,EAA2B+J,GAAoBoC,EAAcsiG,IACnE,OACE5qH,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,cACzC4c,IAAE,IAAAooG,EAAAC,EAAAC,EAAA,OACDhrH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACm7G,GAAqB,CACpBr1G,KAAK,YACL4c,GAAIA,EACJqD,UAAMnqB,EACNwsC,QAASjsB,EAAMisB,QACf2G,KAAgB,QAAZ+7E,EAAE3uG,EAAM4yB,YAAI,IAAA+7E,EAAAA,EAAIF,GAAsB77E,KAC1CqvC,YAA8B,QAAnB2sC,EAAE5uG,EAAMiiE,mBAAW,IAAA2sC,EAAAA,EAAIH,GAAsBxsC,YACxDU,aAAgC,QAApBksC,EAAE7uG,EAAM2iE,oBAAY,IAAAksC,EAAAA,EAAIJ,GAAsB9rC,aAC1DnyC,QAASZ,GAAqB5vB,EAAMwwB,SACpCkwC,QAAS1gE,EAAM0gE,QACfssC,aAAchtG,EAAMgtG,aACpB5sC,WAAYpgE,EAAMogE,aAEpBv8E,EAAAA,cAACuqH,GAA8BpuG,GAC/Bnc,EAAAA,cAAC2qH,GAAattG,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,KAC7B,GAIX,C,kgCAEAmoG,GAAUriH,YAAc,YE1uBxB,IAAMyiH,GAAc,CAAC,SAAU,MAAO,IAAK,MCO9BC,GAA4B/uG,IACvC,IAAM,UAAEk9D,GAAcl9D,EAChB+M,EAAWF,KACX6rB,EAAa1E,KAanB,OAZA7vC,EAAAA,EAAAA,YAAU,IACJu0C,EAEK,QAIT3rB,EAASu3E,GAAapnB,IACf,KACLnwD,EAASu3E,QAAa7kG,GAAW,IAElC,CAACy9E,EAAWnwD,EAAU2rB,IAClB,IAAI,EAGAs2E,GAAmBhvG,IAC9B,IAAM,aAAEs9D,GAAiBt9D,EACnB+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASw3E,GAAgBjnB,IAClB,KACLvwD,EAASu3E,QAAa7kG,GAAW,IAElC,CAAC69E,EAAcvwD,IACX,IAAI,EAGPkiG,GAAmB7hG,GAAoDA,EAAM8vD,UAAUA,UAqBhFgyC,GAAeA,IAA6BhiG,GAAe+hG,IAElEE,GAAmB/hG,IACvB,IAAM,eAAEmwD,EAAc,aAAEF,GAAiBjwD,EAAM8vD,UAC/C,MAAO,CAAEvxC,WAAY4xC,EAAgB3xC,SAAUyxC,EAAc,EAQlD+xC,GAAeA,IACnBliG,GAAeiiG,IC/DXE,IAA6BhuG,EAAAA,EAAAA,gBAA6B,SCMjEoe,GAA8B,CAClC5+B,EAAG,EACHmD,EAAG,EACHsc,MAAO,EACPC,OAAQ,EACR8L,QAAS,CAAE8F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,IAGnCo9F,GAAa/vF,GAAY,CACpCnhC,KAAM,QACNqhC,aAAY,GACZ/G,SAAU,CACR62F,iBAAgBA,CAAC5qC,EAAuB1sD,IAChB,MAAlBA,EAAO1M,QACFkU,GAEFxH,EAAO1M,YAKP,iBAAEgkG,IAAqBD,GAAWluF,QAElCouF,GAAeF,GAAWj4F,Q,6tCCgGvC,SAASo4F,GAAiBzvG,GACxB,IAAM,EAAEnf,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,OAAE8K,GAAWrL,EAClC0vG,EAAQ//G,KAAKO,MAAMlM,EAAIuc,EAAS,GAAK,EAE3C,OACE1c,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,QAAMhD,EAAGA,EAAGmD,EAAGA,EAAGsc,MAAOA,EAAOC,OAAQA,EAAQ6K,KAAMC,EAAQA,OAAO,SACrExnB,EAAAA,cAAA,QAAM+e,GAAI/hB,EAAI,EAAGgiB,GAAI6sG,EAAOr0G,GAAIxa,EAAIyf,EAAQ,EAAGwC,GAAI4sG,EAAOtkG,KAAK,OAAOC,OAAO,SAC7ExnB,EAAAA,cAAA,QAAM+e,GAAI/hB,EAAI,EAAGgiB,GAAI6sG,EAAQ,EAAGr0G,GAAIxa,EAAIyf,EAAQ,EAAGwC,GAAI4sG,EAAQ,EAAGtkG,KAAK,OAAOC,OAAO,SAG3F,CAEA,SAASskG,GAAU3vG,GACjB,IAAM,eAAE4vG,EAAc,cAAEC,GAAkB7vG,EAE1C,OAAInc,EAAAA,eAAqBgsH,GAEhBhsH,EAAAA,aAAmBgsH,EAAeD,GAEd,mBAAlBC,EACFA,EAAcD,GAEhB/rH,EAAAA,cAAC4rH,GAAqBG,EAC/B,CAEA,SAASE,GAAmB30H,GAC1B,GAAIqsB,GAASrsB,IAA2B,iBAAVA,GAAsB,SAAUA,GAA+B,iBAAfA,EAAMiD,KAClF,OAAOjD,EAAMiD,IAGjB,CAQA,SAAS2xH,GAAc3nG,GAsBpB,IAtBqB,WACtB+3B,EAAU,WACV6vE,EAAU,GACVzpG,EAAE,aACFm6F,EAAY,aACZG,EAAY,YACZoP,EAAW,aACXC,EAAY,wBACZC,EAAuB,QACvBC,EAAO,OACPC,GAYDjoG,GACO,EAAEpkB,EAAGnD,EAAGyvH,EAAU,eAAEC,EAAc,OAAEhwG,EAAM,UAAEiwG,EAAS,UAAEC,EAAS,KAAE7mG,EAAI,WAAE+hB,EAAU,SAAEC,GAAauU,EACjGt/C,EAAI8O,KAAKlP,IAAIuvH,EAAYM,GACzBV,EAA8BrnG,GAAAA,GAAA,GAC/B1I,EAAsBsgC,IAAW,IACpCt/C,IACAmD,IACAsc,MAAOiwG,EACPhwG,WAGImwG,EAAiBD,GAvCzB,SAAsB7mG,EAA8B+hB,EAAoBC,GACtE,IAAMp8B,EAAQsgH,GAAmBlmG,EAAK+hB,IAChCl8B,EAAMqgH,GAAmBlmG,EAAKgiB,IACpC,MAAO,cAAPntC,OAAqB+Q,EAAK,iBAAA/Q,OAAgBgR,EAC5C,CAmCsCkhH,CAAa/mG,EAAM+hB,EAAYC,GAEnE,OACE/nC,EAAAA,cAACsd,EAAK,CACJklC,SAAU,EACVrD,KAAK,SACL,aAAY0tE,EACZ,gBAAeV,EACfvvG,UAAU,2BACVigG,aAAcA,EACdG,aAAcA,EACdoP,YAAaA,EACbC,aAAcA,EACdU,UAAW3iH,IACJ,CAAC,YAAa,cAAc4B,SAAS5B,EAAE1L,OAG5C0L,EAAE4iH,iBACF5iH,EAAE6iH,kBACFX,EAAkC,eAAVliH,EAAE1L,IAAuB,GAAK,EAAGgkB,GAAG,EAE9D6pG,QAASA,EACTC,OAAQA,EACR3vG,MAAO,CAAEgiF,OAAQ,eAEjB7+F,EAAAA,cAAC8rH,GAAS,CAACE,cAAeW,EAAWZ,eAAgBA,IAG3D,CAaA,SAASmB,GAAc/wG,GACrB,IAAM,MAAE7f,EAAK,KAAEypB,EAAI,cAAEy9D,EAAa,QAAEp7C,GAAYjsB,EAE1CwnF,EAAex7D,GAAkBpiB,EAAKzpB,GAAQ8rC,EAAS9rC,GAE7D,MAAgC,mBAAlBknF,EAA+BA,EAAcmgB,EAAMrnG,GAASqnG,CAC5E,CAEA,SAASwpB,GAAgBC,EAAsBpwH,GAK7C,IAJA,IACI2O,EAAQ,EACRC,EAFQwhH,EAAWt0H,OAEP,EAET8S,EAAMD,EAAQ,GAAG,CACtB,IAAMiwE,EAAS9vE,KAAKO,OAAOV,EAAQC,GAAO,GACpCyhH,EAAcD,EAAWxxC,GAEZ,MAAfyxC,GAAuBA,EAAcrwH,EACvC4O,EAAMgwE,EAENjwE,EAAQiwE,CAEZ,CAEA,IAAM0xC,EAAWF,EAAWxhH,GAC5B,OAAmB,MAAZ0hH,GAAoBtwH,GAAKswH,EAAW1hH,EAAMD,CACnD,CAEA,SAAS4hH,GAAQ55F,GAYM,IAZL,OAChB65F,EAAM,KACNC,EAAI,YACJC,EAAW,IACX9/B,EAAG,KACH7nE,GAOD4N,EACOruB,EAAYygB,EAAKjtB,OAAS,EAC1BkV,EAAMlC,KAAKkC,IAAIw/G,EAAQC,GACvB7wH,EAAMkP,KAAKlP,IAAI4wH,EAAQC,GACvBE,EAAWR,GAAgBO,EAAa1/G,GACxC4/G,EAAWT,GAAgBO,EAAa9wH,GAC9C,MAAO,CACLkrC,WAAY6lF,EAAYA,EAAW//B,EACnC7lD,SAAU6lF,IAAatoH,EAAYA,EAAYsoH,EAAYA,EAAWhgC,EAE1E,CAEA,SAASigC,GAAUthF,GAchB,IAdiB,EAClBvvC,EAAC,EACDmD,EAAC,MACDsc,EAAK,OACLC,EAAM,KACN6K,EAAI,OACJC,GAQD+kB,EACC,OAAOvsC,EAAAA,cAAA,QAAMwnB,OAAQA,EAAQD,KAAMA,EAAMvqB,EAAGA,EAAGmD,EAAGA,EAAGsc,MAAOA,EAAOC,OAAQA,GAC7E,CAEA,SAASoxG,GAASrgF,GAwBf,IAxBgB,WACjB3F,EAAU,SACVC,EAAQ,EACR5nC,EAAC,OACDuc,EAAM,eACNgwG,EAAc,OACdllG,EAAM,cACNg8D,EAAa,QACbp7C,EAAO,KACPriB,EAAI,OACJynG,EAAM,KACNC,GAaDhgF,EAEOg+D,EAAQ,CACZnpD,cAAe,OACf/6B,KAAMC,GAGR,OACExnB,EAAAA,cAACsd,EAAK,CAACV,UAAU,wBACf5c,EAAAA,cAACkpG,GAAI7rF,GAAA,CAAC2rF,WAAW,MAAMC,eAAe,SAASjsG,EAAG8O,KAAKkC,IAAIw/G,EAAQC,GARxD,EAQwEttH,EAAGA,EAAIuc,EAAS,GAAO+uF,GACvGyhB,GAAc,CAAE5wH,MAAOwrC,EAAY07C,gBAAep7C,UAASriB,UAE9D/lB,EAAAA,cAACkpG,GAAI7rF,GAAA,CACH2rF,WAAW,QACXC,eAAe,SACfjsG,EAAG8O,KAAKlP,IAAI4wH,EAAQC,GAAQf,EAdnB,EAeTvsH,EAAGA,EAAIuc,EAAS,GACZ+uF,GAEHyhB,GAAc,CAAE5wH,MAAOyrC,EAAUy7C,gBAAep7C,UAASriB,UAIlE,CAEA,SAASgoG,GAAKx7D,GAsBX,IAtBY,EACbpyD,EAAC,OACDuc,EAAM,OACN8K,EAAM,eACNklG,EAAc,OACdc,EAAM,KACNC,EAAI,aACJ5Q,EAAY,aACZG,EAAY,YACZoP,EAAW,aACXC,GAYD95D,EACOv1D,EAAI8O,KAAKkC,IAAIw/G,EAAQC,GAAQf,EAC7BjwG,EAAQ3Q,KAAKlP,IAAIkP,KAAK0F,IAAIi8G,EAAOD,GAAUd,EAAgB,GAEjE,OACE1sH,EAAAA,cAAA,QACE4c,UAAU,uBACVigG,aAAcA,EACdG,aAAcA,EACdoP,YAAaA,EACbC,aAAcA,EACdxvG,MAAO,CAAEgiF,OAAQ,QACjBr3E,OAAO,OACPD,KAAMC,EACNwmG,YAAa,GACbhxH,EAAGA,EACHmD,EAAGA,EACHsc,MAAOA,EACPC,OAAQA,GAGd,CAEA,SAASuxG,GAAQvQ,GAgBd,IAhBe,EAChB1gH,EAAC,EACDmD,EAAC,MACDsc,EAAK,OACLC,EAAM,KACNqJ,EAAI,SACJvJ,EAAQ,QACRgM,GASDk1F,EAEC,KADuD,IAAnC19G,EAAAA,SAAeq3D,MAAM76C,IAEvC,OAAO,KAET,IAAM0xG,EAAezW,EAAAA,SAAS0W,KAAK3xG,GAEnC,OAAK0xG,EAIEluH,EAAAA,aAAmBkuH,EAAc,CACtClxH,IACAmD,IACAsc,QACAC,SACA+L,OAAQD,EACR4lG,SAAS,EACTroG,SAVO,IAYX,CAsCA,IAwCMsoG,GAAWjkH,GACdA,EAA6BkkH,kBAAqBlkH,EAA6BkkH,eAAex1H,OAOjG,MAAMy1H,WAAuBjuE,EAAAA,cAC3Br6C,WAAAA,CAAYkW,GACV65C,MAAM75C,GAAOokC,GAAA,mBA0GDn2C,IACRtT,KAAK03H,aACPvhH,aAAanW,KAAK03H,YAClB13H,KAAK03H,WAAa,MAGhB13H,KAAKyyB,MAAMklG,kBACb33H,KAAK43H,oBAAoBtkH,GAChBtT,KAAKyyB,MAAMolG,eACpB73H,KAAK83H,gBAAgBxkH,EACvB,IACDm2C,GAAA,wBAEkBn2C,IAA+B,IAAAykH,EAC1CC,EAAwB,QAAnBD,EAAGzkH,EAAEkkH,sBAAc,IAAAO,OAAA,EAAhBA,EAAmB,GACpB,MAATC,GACFh4H,KAAKi4H,WAAWD,EAClB,IACDvuE,GAAA,sBAce,KACdzpD,KAAKgqD,SACH,CACE2tE,mBAAmB,EACnBE,eAAe,IAEjB,KACE,IAAM,SAAE5mF,EAAQ,UAAEinF,EAAS,WAAElnF,GAAehxC,KAAKqlB,MACjD6yG,SAAAA,EAAY,CACVjnF,WACAD,cACA,IAGNhxC,KAAKm4H,uBAAuB,IAC7B1uE,GAAA,2BAEoB,MACfzpD,KAAKyyB,MAAMklG,mBAAqB33H,KAAKyyB,MAAMolG,iBAC7C73H,KAAK03H,WAAa/0G,OAAOvM,WAAWpW,KAAKo4H,cAAep4H,KAAKqlB,MAAMgzG,cACrE,IACD5uE,GAAA,oCAE6B,KAC5BzpD,KAAKgqD,SAAS,CACZsuE,cAAc,GACd,IACH7uE,GAAA,oCAE6B,KAC5BzpD,KAAKgqD,SAAS,CACZsuE,cAAc,GACd,IACH7uE,GAAA,6BAEuBn2C,IACtB,IAAM1Q,EAAQ20H,GAAQjkH,GAAKA,EAAEkkH,eAAe,GAAKlkH,EACpC,MAAT1Q,IAIJ5C,KAAKgqD,SAAS,CACZ2tE,mBAAmB,EACnBE,eAAe,EACfU,gBAAiB31H,EAAM41H,QAGzBx4H,KAAKy4H,wBAAuB,IAC7BhvE,GAAA,oCAoG6B,CAACslC,EAAmBnjE,KAChD,IAAM,KAAEqD,EAAI,IAAE6nE,EAAG,WAAE9lD,EAAU,SAAEC,GAAajxC,KAAKqlB,OAE3C,YAAEuxG,EAAW,OAAEF,EAAM,KAAEC,GAAS32H,KAAKyyB,MAC3C,GAAmB,MAAfmkG,EAAJ,CAMA,IAAI8B,GAAwB,EAO5B,GANW,WAAP9sG,EACF8sG,EAAe1nF,EACC,SAAPplB,IACT8sG,EAAeznF,KAGbynF,EAAe,GAAKA,GAAgBzpG,EAAKjtB,QAA7C,CAIA,IAAM22H,EAAWD,EAAe3pC,EAChC,MAAkB,IAAd4pC,GAAmBA,GAAY/B,EAAY50H,QAA/C,CAIA,IAAM42H,EAAgBhC,EAAY+B,GACb,MAAjBC,IAKQ,WAAPhtG,GAAmBgtG,GAAiBjC,GAAiB,SAAP/qG,GAAiBgtG,GAAiBlC,GAIrF12H,KAAKgqD,SAEH,CACE,CAACp+B,GAAKgtG,IAER,KACE54H,KAAKqlB,MAAMwzG,SACTpC,GAAS,CACPC,OAAQ12H,KAAKyyB,MAAMikG,OACnBC,KAAM32H,KAAKyyB,MAAMkkG,KACjB1nG,OACA6nE,MACA8/B,gBAEH,IA1BL,CALA,CAbA,CA8CC,IAhVD52H,KAAK84H,2BAA6B,CAChCpC,OAAQ12H,KAAK+4H,yBAAyBv9F,KAAKx7B,KAAM,UACjD22H,KAAM32H,KAAK+4H,yBAAyBv9F,KAAKx7B,KAAM,SAGjDA,KAAKyyB,MAAQ,CAAEumG,gBAAiB,EAAGC,uBAAmBn0H,EAAW6xH,KAAM,EAAGD,OAAQ,EAAG6B,gBAAiB,EACxG,CAMA,+BAAO1mH,CAAyBuwG,EAAgCtmE,GAC9D,IAAM,KACJ7sB,EAAI,MACJtJ,EAAK,EACLzf,EAAC,eACD0vH,EAAc,WACd5kF,EAAU,SACVC,EAAQ,8BACRioF,EAA6B,4BAC7BC,GACE/W,EAEJ,GAAInzF,IAAS6sB,EAAUy3E,SACrB,OAAA3lG,GAAA,CACE2lG,SAAUtkG,EACVmqG,mBAAoBxD,EACpBz7D,MAAOj0D,EACP+zD,UAAWt0C,GACPsJ,GAAQA,EAAKjtB,OAlFLq3H,KAcd,IAde,KACnBpqG,EAAI,WACJ+hB,EAAU,SACVC,EAAQ,EACR/qC,EAAC,MACDyf,EAAK,eACLiwG,GAQDyD,EACC,IAAKpqG,IAASA,EAAKjtB,OACjB,MAAO,CAAC,EAGV,IAAM2C,EAAMsqB,EAAKjtB,OACXguC,EAAQspF,KACXtmF,OAAOp+B,KAAM,EAAGjQ,IAChBiQ,MAAM,CAAC1O,EAAGA,EAAIyf,EAAQiwG,IACnBgB,EAAc5mF,EACjBgD,SACArqC,KAAI8jB,GAASujB,EAAMvjB,KACnBtkB,OAAO0kB,IAEV,MAAO,CACLyrG,cAAc,EACdT,eAAe,EACfF,mBAAmB,EACnB4B,oBAAoB,EACpB7C,OAAQ1mF,EAAMgB,GACd2lF,KAAM3mF,EAAMiB,GACZjB,QACA4mF,cACD,EA8CS4C,CAAY,CAAEvqG,OAAMtJ,QAAOzf,IAAG0vH,iBAAgB5kF,aAAYC,aAC1D,CAAEjB,WAAOlrC,EAAW8xH,iBAAa9xH,IAGzC,IAAM20H,EAAY39E,EAAU9L,MAC5B,GACEypF,IACC9zG,IAAUm2B,EAAUme,WAAa/zD,IAAM41C,EAAUqe,OAASy7D,IAAmB95E,EAAUs9E,oBACxF,CACAK,EAAU7kH,MAAM,CAAC1O,EAAGA,EAAIyf,EAAQiwG,IAEhC,IAAMgB,EAAc6C,EACjBzmF,SACArqC,KAAI8jB,GAASgtG,EAAUhtG,KACvBtkB,QAAO3H,GAAkB,MAATA,IAEnB,MAAO,CACL+yH,SAAUtkG,EACVmqG,mBAAoBxD,EACpBz7D,MAAOj0D,EACP+zD,UAAWt0C,EACX+wG,OAAQ+C,EAAUrX,EAAUpxE,YAC5B2lF,KAAM8C,EAAUrX,EAAUnxE,UAC1B2lF,cAEJ,CAEA,GACE96E,EAAU9L,QACT8L,EAAU+7E,gBACV/7E,EAAU67E,oBACV77E,EAAUy9E,qBACVz9E,EAAUw8E,aACX,CAOA,GACmC,MAAjCY,GACAp9E,EAAU49E,oCAAsCR,EAEhD,MAAO,CACLxC,OAAQ56E,EAAU9L,MAAMkpF,GACxBQ,kCAAmCR,GAIvC,GACiC,MAA/BC,GACAr9E,EAAU69E,kCAAoCR,EAE9C,MAAO,CACLxC,KAAM76E,EAAU9L,MAAMmpF,GACtBQ,gCAAiCR,EAGvC,CAEA,OAAO,IACT,CAEAhvE,oBAAAA,GACMnqD,KAAK03H,aACPvhH,aAAanW,KAAK03H,YAClB13H,KAAK03H,WAAa,MAGpB13H,KAAKm4H,uBACP,CAsBAM,qBAAAA,GACE91G,OAAOpM,iBAAiB,UAAWvW,KAAKo4H,eAAe,GACvDz1G,OAAOpM,iBAAiB,WAAYvW,KAAKo4H,eAAe,GACxDz1G,OAAOpM,iBAAiB,YAAavW,KAAKi4H,YAAY,EACxD,CAEAE,qBAAAA,GACEx1G,OAAOolB,oBAAoB,UAAW/nC,KAAKo4H,eAAe,GAC1Dz1G,OAAOolB,oBAAoB,WAAY/nC,KAAKo4H,eAAe,GAC3Dz1G,OAAOolB,oBAAoB,YAAa/nC,KAAKi4H,YAAY,EAC3D,CAoDAH,eAAAA,CAAgBxkH,GACd,IAAM,gBAAEilH,EAAe,OAAE7B,EAAM,KAAEC,EAAI,YAAEC,GAAgB52H,KAAKyyB,MAC5D,GAAmB,MAAfmkG,EAAJ,CAGA,IAAM,EAAE1wH,EAAC,MAAEyf,EAAK,eAAEiwG,EAAc,WAAE5kF,EAAU,SAAEC,EAAQ,SAAE4nF,EAAQ,KAAE5pG,EAAI,IAAE6nE,GAAQ92F,KAAKqlB,MACjF87C,EAAQ7tD,EAAEklH,MAAQD,EAElBp3D,EAAQ,EACVA,EAAQnsD,KAAKkC,IAAIiqD,EAAOj7D,EAAIyf,EAAQiwG,EAAiBe,EAAMzwH,EAAIyf,EAAQiwG,EAAiBc,GAC/Ev1D,EAAQ,IACjBA,EAAQnsD,KAAKlP,IAAIq7D,EAAOj7D,EAAIwwH,EAAQxwH,EAAIywH,IAE1C,IAAMgC,EAAWlC,GAAS,CACxBC,OAAQA,EAASv1D,EACjBw1D,KAAMA,EAAOx1D,EACblyC,OACA6nE,MACA8/B,gBAGG+B,EAAS3nF,aAAeA,GAAc2nF,EAAS1nF,WAAaA,IAAa4nF,GAC5EA,EAASF,GAGX34H,KAAKgqD,SAAS,CACZ0sE,OAAQA,EAASv1D,EACjBw1D,KAAMA,EAAOx1D,EACbo3D,gBAAiBjlH,EAAEklH,OAxBrB,CA0BF,CAEAO,wBAAAA,CAAyBntG,EAAsBtY,GAC7C,IAAM1Q,EAAQ20H,GAAQjkH,GAAKA,EAAEkkH,eAAe,GAAKlkH,EACpC,MAAT1Q,IAIJ5C,KAAKgqD,SAAS,CACZ6tE,eAAe,EACfF,mBAAmB,EACnBsB,kBAAmBrtG,EACnBotG,gBAAiBp2H,EAAM41H,QAGzBx4H,KAAKy4H,wBACP,CAEAb,mBAAAA,CAAoBtkH,GAClB,IAAM,gBAAE0lH,EAAe,kBAAEC,EAAiB,KAAEtC,EAAI,OAAED,EAAM,YAAEE,GAAgB52H,KAAKyyB,MAC/E,GAAyB,MAArBwmG,GAA4C,MAAfrC,EAAjC,CAGA,IAAMgD,EAAY55H,KAAKyyB,MAAMwmG,IAEvB,EAAE/yH,EAAC,MAAEyf,EAAK,eAAEiwG,EAAc,SAAEiD,EAAQ,IAAE/hC,EAAG,KAAE7nE,GAASjvB,KAAKqlB,MACzDsuC,EAAS,CAAE+iE,OAAQ12H,KAAKyyB,MAAMikG,OAAQC,KAAM32H,KAAKyyB,MAAMkkG,KAAM1nG,OAAM6nE,MAAK8/B,eAE1Ez1D,EAAQ7tD,EAAEklH,MAAQQ,EAClB73D,EAAQ,EACVA,EAAQnsD,KAAKkC,IAAIiqD,EAAOj7D,EAAIyf,EAAQiwG,EAAiBgE,GAC5Cz4D,EAAQ,IACjBA,EAAQnsD,KAAKlP,IAAIq7D,EAAOj7D,EAAI0zH,IAG9BjmE,EAAOslE,GAAqBW,EAAYz4D,EAExC,IAAMw3D,EAAWlC,GAAS9iE,IACpB,WAAE3iB,EAAU,SAAEC,GAAa0nF,EAcjC34H,KAAKgqD,SAEH,CACE,CAACivE,GAAoBW,EAAYz4D,EACjC63D,gBAAiB1lH,EAAEklH,QAErB,KAnBgBqB,IACVrrH,EAmBAqqH,IAnBArqH,EAAYygB,EAAKjtB,OAAS,GAEP,WAAtBi3H,IAAmCtC,EAAOD,EAAS1lF,EAAa8lD,GAAQ,EAAI7lD,EAAW6lD,GAAQ,IAC/F6/B,EAAOD,GAAUzlF,IAAaziC,GACR,SAAtByqH,IAAiCtC,EAAOD,EAASzlF,EAAW6lD,GAAQ,EAAI9lD,EAAa8lD,GAAQ,IAC7F6/B,EAAOD,GAAUzlF,IAAaziC,IAgB3BqqH,EAASF,GAEb,GAzCJ,CA4CF,CAyDAhmH,MAAAA,GACE,IAAM,KACJsc,EAAI,UACJnJ,EAAS,SACTJ,EAAQ,EACRxf,EAAC,EACDmD,EAAC,GACDghB,EAAE,MACF1E,EAAK,OACLC,EAAM,eACNk0G,EAAc,KACdrpG,EAAI,OACJC,EAAM,WACNsgB,EAAU,SACVC,EAAQ,eACR2kF,EAAc,cACdlpC,EAAa,QACbp7C,EAAO,QACP5f,GACE1xB,KAAKqlB,OACH,OAAEqxG,EAAM,KAAEC,EAAI,aAAE2B,EAAY,cAAET,EAAa,kBAAEF,EAAiB,mBAAE4B,GAAuBv5H,KAAKyyB,MAElG,IACGxD,IACAA,EAAKjtB,SACLwpB,GAAStlB,KACTslB,GAASniB,KACTmiB,GAAS7F,KACT6F,GAAS5F,IACVD,GAAS,GACTC,GAAU,EAEV,OAAO,KAGT,IAAMU,EAAa3B,EAAK,iBAAkBmB,GACpCC,EJ94ByBg0G,EAACt2H,EAAcjD,KAChD,GAAKiD,EAAL,CAIA,IAAMu2H,EAAYv2H,EAAKod,QAAQ,QAAQW,GAAKA,EAAEoL,gBACxCzrB,EAAiCgzH,GAAYhpG,QACjD,CAAC6qB,EAAKvpB,IAAKmB,GAAAA,GAAA,GACNooB,GAAG,IACN,CAACvpB,EAAQutG,GAAYx5H,KAEvB,CAAC,GAKH,OAFAW,EAAOsC,GAAQjD,EAERW,CAbP,CAaa,EI83BG44H,CAAoB,aAAc,QAC1CE,EAAc5wH,GAAKghB,QAAAA,EAAM,GAE/B,OACEnhB,EAAAA,cAACsd,EAAK,CACJV,UAAWQ,EACX4/F,aAAclmH,KAAKk6H,mBACnBC,YAAan6H,KAAKo6H,gBAClBr0G,MAAOA,GAEP7c,EAAAA,cAAC6tH,GAAU,CAAC7wH,EAAGA,EAAGmD,EAAG4wH,EAAat0G,MAAOA,EAAOC,OAAQA,EAAQ6K,KAAMA,EAAMC,OAAQA,IACpFxnB,EAAAA,cAACowC,GAAuB,KACtBpwC,EAAAA,cAACiuH,GAAQ,CAACjxH,EAAGA,EAAGmD,EAAG4wH,EAAat0G,MAAOA,EAAOC,OAAQA,EAAQqJ,KAAMA,EAAMyC,QAASA,GAChFhM,IAGLxc,EAAAA,cAAC+tH,GAAK,CACJ5tH,EAAG4wH,EACHr0G,OAAQA,EACR8K,OAAQA,EACRklG,eAAgBA,EAChBc,OAAQA,EACRC,KAAMA,EACN5Q,aAAc/lH,KAAKq6H,4BACnBnU,aAAclmH,KAAKs6H,4BACnBhF,YAAat1H,KAAKu6H,qBAClBhF,aAAcv1H,KAAKu6H,uBAErBrxH,EAAAA,cAACksH,GAAc,CACbC,WAAYqB,EACZ9qG,GAAG,SACH45B,WAAU53B,GAAAA,GAAA,GAAO5tB,KAAKqlB,OAAK,IAAEhc,EAAG4wH,IAChClU,aAAc/lH,KAAKq6H,4BACnBnU,aAAclmH,KAAKs6H,4BACnBhF,YAAat1H,KAAK84H,2BAA2BpC,OAC7CnB,aAAcv1H,KAAK84H,2BAA2BpC,OAC9ClB,wBAAyBx1H,KAAKw6H,4BAC9B/E,QAASA,KACPz1H,KAAKgqD,SAAS,CAAEuvE,oBAAoB,GAAO,EAE7C7D,OAAQA,KACN11H,KAAKgqD,SAAS,CAAEuvE,oBAAoB,GAAQ,IAGhDrwH,EAAAA,cAACksH,GAAc,CACbC,WAAYsB,EACZ/qG,GAAG,OACH45B,WAAU53B,GAAAA,GAAA,GAAO5tB,KAAKqlB,OAAK,IAAEhc,EAAG4wH,IAChClU,aAAc/lH,KAAKq6H,4BACnBnU,aAAclmH,KAAKs6H,4BACnBhF,YAAat1H,KAAK84H,2BAA2BnC,KAC7CpB,aAAcv1H,KAAK84H,2BAA2BnC,KAC9CnB,wBAAyBx1H,KAAKw6H,4BAC9B/E,QAASA,KACPz1H,KAAKgqD,SAAS,CAAEuvE,oBAAoB,GAAO,EAE7C7D,OAAQA,KACN11H,KAAKgqD,SAAS,CAAEuvE,oBAAoB,GAAQ,KAG9CjB,GAAgBT,GAAiBF,GAAqB4B,GAAsBO,IAC5E5wH,EAAAA,cAAC8tH,GAAS,CACRhmF,WAAYA,EACZC,SAAUA,EACV5nC,EAAG4wH,EACHr0G,OAAQA,EACRgwG,eAAgBA,EAChBllG,OAAQA,EACRg8D,cAAeA,EACfp7C,QAASA,EACTriB,KAAMA,EACNynG,OAAQA,EACRC,KAAMA,IAKhB,EAGF,SAAS8D,GAAcp1G,GACrB,ItD7tBMkhE,EACAslB,EACA6uB,EACAC,EsD0tBAvoG,EAAWF,KACXqwD,EAAYgyC,KACZqG,EAAcnG,KACdoG,GAAsBj0G,EAAAA,EAAAA,YAAW8tG,IACjCoG,EAAoBz1G,EAAMwzG,UACxB7nF,WAAY+pF,EAAqB9pF,SAAU+pF,GAAsB31G,GAEzE7b,EAAAA,EAAAA,YAAU,KAER4oB,EAASy3E,GAAuB,CAAE74D,WAAY+pF,EAAqB9pF,SAAU+pF,IAAqB,GACjG,CAAC5oG,EAAU4oG,EAAmBD,ItDvuB3Bx0C,EAASh0D,GAAe+zD,IACxBulB,EAAqBt5E,GAAem0D,IACpCg0C,EAAkBnoG,IAAeE,GAASA,EAAM8vD,UAAUK,iBAC1D+3C,EAAgBpoG,IAAeE,GAASA,EAAM8vD,UAAUG,gBAE9Dl5E,EAAAA,EAAAA,YAAU,KACR,GAAc,MAAV+8E,GAAqC,MAAnBm0C,GAA4C,MAAjBC,GAA+C,MAAtB9uB,EAA1E,CAGA,IAAMpB,EAAiC,CAAEz5D,WAAY0pF,EAAiBzpF,SAAU0pF,GAChF3xB,GAAY3kG,KAAK6kG,GAAkB3iB,EAAQkkB,EAAYoB,EAFvD,CAE0E,GACzE,CAAC8uB,EAAeD,EAAiB7uB,EAAoBtlB,IsDguBxD,IAAMsyC,GAAWnhG,EAAAA,EAAAA,cACd4G,IACC,GAAmB,MAAfs8F,EAAJ,CAGA,IAAM,WAAE5pF,EAAU,SAAEC,GAAa2pF,EAC7Bt8F,EAAU0S,aAAeA,GAAc1S,EAAU2S,WAAaA,IAChE4pF,SAAAA,EAAsBv8F,GACtBw8F,SAAAA,EAAoBx8F,GACpBlM,EAASy3E,GAAuBvrE,IALlC,CAMA,GAEF,CAACw8F,EAAmBD,EAAqBzoG,EAAUwoG,IAG/C59E,EAAkBzqB,GAAeknB,IACvC,GAAuB,MAAnBuD,GAA0C,MAAf49E,GAAoC,MAAbr4C,IAAsBA,EAAUvgF,OACpF,OAAO,KAGT,IAAM,WAAEgvC,EAAU,SAAEC,GAAa2pF,GAC3B,EAAE10H,EAAC,EAAEmD,EAAC,MAAEsc,GAAUq3B,EAElBi+E,EAA2C,CAC/ChsG,KAAMszD,EACNr8E,IACAmD,IACAsc,QACAqrB,aACAC,WACA4nF,YAEF,OACE3vH,EAAAA,cAACuuH,GAAclxG,GAAA,GACTlB,EACA41G,EAAiB,CACrB/B,8BAA+B6B,QAAAA,OAAuBj2H,EACtDq0H,4BAA6B6B,QAAAA,OAAqBl2H,IAGxD,CAEA,SAASo2H,GAAwB71G,GAC/B,IAAM+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASwiG,GAAiBvvG,IACnB,KACL+M,EAASwiG,GAAiB,MAAM,IAEjC,CAACxiG,EAAU/M,IACP,IACT,CAEO,IAAM81G,GAAoB,CAC/Bv1G,OAAQ,GACRgwG,eAAgB,EAChB9+B,IAAK,EACLrmE,KAAM,OACNC,OAAQ,OACRgB,QAAS,CAAE8F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,GAC9C8gG,aAAc,IACdyB,gBAAgB,GAgBX,SAASsB,GAAM5pG,GACpB,IAAMnM,EAAQ+J,GAAoBoC,EAAc2pG,IAChD,OACEjyH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACgyH,GAAuB,CACtBt1G,OAAQP,EAAMO,OACd1f,EAAGmf,EAAMnf,EACTmD,EAAGgc,EAAMhc,EACTsc,MAAON,EAAMM,MACb+L,QAASrM,EAAMqM,UAEjBxoB,EAAAA,cAACuxH,GAAkBp1G,GAGzB,CACA+1G,GAAM1pH,YAAc,QCzkCb,IAAM2pH,GAAiBA,CAAA5tG,EAAAoP,KAAA,IAAG32B,EAAG+hB,EAAI5e,EAAG6e,GAAgBuF,GAAIvnB,EAAGwa,EAAIrX,EAAG8e,GAAgB0U,EAAA,MAAyB,CAChH32B,EAAG8O,KAAKkC,IAAI+Q,EAAIvH,GAChBrX,EAAG2L,KAAKkC,IAAIgR,EAAIC,GAChBxC,MAAO3Q,KAAK0F,IAAIgG,EAAKuH,GACrBrC,OAAQ5Q,KAAK0F,IAAIyN,EAAKD,GACvB,EAOYozG,GAAiB7lF,IAAA,IAAC,GAAExtB,EAAE,GAAEC,EAAE,GAAExH,EAAE,GAAEyH,GAAyBstB,EAAA,OACpE4lF,GAAe,CAAEn1H,EAAG+hB,EAAI5e,EAAG6e,GAAM,CAAEhiB,EAAGwa,EAAIrX,EAAG8e,GAAK,EAc7C,ICcMozG,GAAyB32F,GAAY,CAChDnhC,KAAM,oBACNqhC,aAR0C,CAC1CotD,KAAM,GACNO,MAAO,GACPG,MAAO,IAMP70D,SAAU,CACRy9F,OAAQA,CAAC/oG,EAA6C6K,KACpD7K,EAAMy/D,KAAKjvF,KAAKq6B,EAAO1M,QAAQ,EAEjC6qG,UAAWA,CAAChpG,EAA6C6K,KACvD,IAAM93B,EAAQ0E,GAAQuoB,GAAOy/D,KAAKwpC,WAAU1oC,GAAOA,IAAQ11D,EAAO1M,WACnD,IAAXprB,GACFitB,EAAMy/D,KAAK70D,OAAO73B,EAAO,EAC3B,EAEFm2H,QAASA,CAAClpG,EAA6C6K,KACrD7K,EAAMggE,MAAMxvF,KAAKq6B,EAAO1M,QAAQ,EAElCgrG,WAAYA,CAACnpG,EAA6C6K,KACxD,IAAM93B,EAAQ0E,GAAQuoB,GAAOggE,MAAMipC,WAAUvtE,GAAQA,IAAS7wB,EAAO1M,WACtD,IAAXprB,GACFitB,EAAMggE,MAAMp1D,OAAO73B,EAAO,EAC5B,EAEFq2H,QAASA,CAACppG,EAA6C6K,KACrD7K,EAAMmgE,MAAM3vF,KAAeq6B,EAAO1M,QAAS,EAE7CkrG,WAAYA,CAACrpG,EAA6C6K,KACxD,IAAM93B,EAAQ0E,GAAQuoB,GAAOmgE,MAAM8oC,WAAUztE,GAAQA,IAAS3wB,EAAO1M,WACtD,IAAXprB,GACFitB,EAAMmgE,MAAMv1D,OAAO73B,EAAO,EAC5B,MAKO,OAAEg2H,GAAM,UAAEC,GAAS,QAAEE,GAAO,WAAEC,GAAU,QAAEC,GAAO,WAAEC,IAAeP,GAAuB90F,QAEzFs1F,GAA2BR,GAAuB7+F,QC1EzDs/F,IAAoBt1G,EAAAA,EAAAA,oBAAkC5hB,GAY/Cm3H,GAAmBxuG,IAA2C,IAA1C,SAAE/H,GAAmC+H,GAC7D26F,IAAc/lG,EAAAA,EAAAA,UAAQ,GAAAve,OAAY6nB,GAAS,YAAW,UAEvDuwG,EAAWhS,KAEjB,GAAgB,MAAZgS,EACF,OAAO,KAET,IAAM,EAAEh2H,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,GAAWs2G,EAEhC,OACEhzH,EAAAA,cAAC8yH,GAAkBziF,SAAQ,CAAC/4C,MAAO4nH,GACjCl/G,EAAAA,cAAA,YACEA,EAAAA,cAAA,YAAU0iB,GAAIw8F,GACZl/G,EAAAA,cAAA,QAAMhD,EAAGA,EAAGmD,EAAGA,EAAGuc,OAAQA,EAAQD,MAAOA,MAG5CD,EAC0B,EAIpBy2G,GAAgBA,KACpBv1G,EAAAA,EAAAA,YAAWo1G,ICpBb,MAAMI,GAQXjtH,WAAAA,CAAWse,GAAqE,IAApE,EAAEvnB,EAAC,EAAEmD,GAA6DokB,EAC5EztB,KAAKq8H,WAAan2H,EAClBlG,KAAKs8H,WAAajzH,CACpB,CAEAV,GAAAA,CAAInI,EAAiCq8B,GAAwD,IAAA0/F,EAAAC,GAAtD,SAAE/1E,GAAsC5pB,EAC7E,MAAO,CACL32B,EAA6C,QAA5Cq2H,EAAEv8H,KAAKq8H,WAAW1zH,IAAInI,EAAM0F,EAAG,CAAEugD,oBAAW,IAAA81E,EAAAA,EAAI,EACjDlzH,EAA6C,QAA5CmzH,EAAEx8H,KAAKs8H,WAAW3zH,IAAInI,EAAM6I,EAAG,CAAEo9C,oBAAW,IAAA+1E,EAAAA,EAAI,EAErD,CAEAC,eAAAA,CACEj8H,EAAyEi1C,GAE7D,IAAAinF,EAAAC,EACRC,EAAmBC,GAFvB,SAAEp2E,EAAQ,SAAEq2E,GAA0ErnF,EAiBtF,OAbEmnF,EADe,aAAbE,EACU98H,KAAKs8H,WAAW1wC,WACN,aAAbkxC,EACG98H,KAAKs8H,WAAWzwC,WAEhB,EAGZgxC,EADe,aAAbC,EACU98H,KAAKq8H,WAAWzwC,WACN,aAAbkxC,EACG98H,KAAKq8H,WAAWxwC,WAEhB,EAEP,CACL3lF,EAA6C,QAA5Cw2H,EAAE18H,KAAKq8H,WAAW1zH,IAAInI,EAAM0F,EAAG,CAAEugD,oBAAW,IAAAi2E,EAAAA,EAAIG,EACjDxzH,EAA6C,QAA5CszH,EAAE38H,KAAKs8H,WAAW3zH,IAAInI,EAAM6I,EAAG,CAAEo9C,oBAAW,IAAAk2E,EAAAA,EAAIC,EAErD,CAEA9wC,SAAAA,CAASn1C,GAAiD,IAAhD,EAAEzwC,EAAC,EAAEmD,GAAgCstC,EACvComF,EAAgB,MAAL72H,GAAalG,KAAKq8H,WAAWvwC,UAAU5lF,GAClD82H,EAAgB,MAAL3zH,GAAarJ,KAAKs8H,WAAWxwC,UAAUziF,GACxD,OAAO0zH,GAAYC,CACrB,E,6tCCqEF,IAAMC,GAAaA,CAACnrG,EAAqCzM,KACvD,IAAI4oC,EAEJ,GAAI/kD,EAAAA,eAAqB4oB,GAEvBm8B,EAAO/kD,EAAAA,aAAmB4oB,EAAQzM,QAC7B,GAAsB,mBAAXyM,EAChBm8B,EAAOn8B,EAAOzM,OACT,CACL,KACG6rB,GAAoB7rB,EAAM4C,KAC1BipB,GAAoB7rB,EAAM6C,KAC1BgpB,GAAoB7rB,EAAM3E,KAC1BwwB,GAAoB7rB,EAAM8C,KAE3B,OAAO,KAET8lC,EAAO/kD,EAAAA,cAAA,OAAAqd,GAAA,GAAUlB,EAAK,CAAES,UAAU,iCACpC,CAEA,OAAOmoC,CAAI,EA2EAivE,GAAeA,CAC1Bb,EACAC,EACAz2G,EACA4gC,EACA02E,EACAC,EACA/3G,KAEA,IAAQnf,EAAGm3H,EAAQh0H,EAAGi0H,EAAM,QAAE/pC,EAAO,WAAEjB,GAAejtE,EAChDk4G,EAAW9xG,GAAW4xG,GAG5B,OAFiB5xG,GAAW6xG,GAjFKE,EACjCF,EACAhrC,EACA7rC,EACA22E,EACAd,EACAz2G,KAEA,IAAM,EAAE3f,EAAC,MAAEyf,GAAUE,EACf+2F,EAAQ0f,EAAW3zH,IAAI20H,EAAQ,CAAE72E,aAEvC,IAAKvV,GAAoB0rE,GACvB,OAAO,KAGT,GAAmB,YAAftqB,IAA6BgqC,EAAWxwC,UAAU8wB,GACpD,OAAO,KAGT,IAAMxsD,EAAS,CACb,CAAElqD,EAAGA,EAAIyf,EAAOtc,EAAGuzG,GACnB,CAAE12G,IAAGmD,EAAGuzG,IAEV,MAA4B,SAArBwgB,EAA8BhtE,EAAOr2C,UAAYq2C,CAAM,EA6DrDotE,CAA2BF,EAAQhrC,EAAY7rC,EAAU22E,EAAkBd,EAAYz2G,GAE5F03G,EA5D2BE,EAC/BJ,EACA/qC,EACA7rC,EACA02E,EACAd,EACAx2G,KAEA,IAAM,EAAExc,EAAC,OAAEuc,GAAWC,EAChB+2F,EAAQyf,EAAW1zH,IAAI00H,EAAQ,CAAE52E,aAEvC,IAAKvV,GAAoB0rE,GACvB,OAAO,KAGT,GAAmB,YAAftqB,IAA6B+pC,EAAWvwC,UAAU8wB,GACpD,OAAO,KAGT,IAAMxsD,EAAS,CACb,CAAElqD,EAAG02G,EAAOvzG,EAAGA,EAAIuc,GACnB,CAAE1f,EAAG02G,EAAOvzG,MAEd,MAA4B,QAArB8zH,EAA6B/sE,EAAOr2C,UAAYq2C,CAAM,EAsCpDqtE,CAAyBJ,EAAQ/qC,EAAY7rC,EAAU02E,EAAkBd,EAAYx2G,GAE/E,MAAX0tE,GAAsC,IAAnBA,EAAQvxF,OArCD07H,EAC9BnqC,EACAjB,EACA7rC,EACAk3E,KAEA,IAAMvtE,EAAmC,CACvCutE,EAAOlB,gBAAgBlpC,EAAQ,GAAI,CAAE9sC,WAAUq2E,SAAU,aACzDa,EAAOlB,gBAAgBlpC,EAAQ,GAAI,CAAE9sC,WAAUq2E,SAAU,cAG3D,MAAmB,YAAfxqC,GAA4BliC,EAAOv8C,MAAK0N,IAAMo8G,EAAO7xC,UAAUvqE,KAC1D,KAGF6uC,CAAM,EAuBJstE,CACLnqC,EACAjB,EACA7rC,EACA,IAAI21E,GAAyB,CAAEl2H,EAAGm2H,EAAYhzH,EAAGizH,KAI9C,IAAI,EAGb,SAASsB,GAAoBv4G,GAC3B,IAAM+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASypG,GAAQx2G,IACV,KACL+M,EAAS0pG,GAAWz2G,GAAO,KAGxB,IACT,CAEA,SAASw4G,GAAkBx4G,GACzB,IAAM,QAAEqoE,EAAO,QAAEC,EAAO,MAAEjjE,EAAK,UAAE5E,EAAS,WAAEwsE,GAAejtE,EAErD04B,EAAa1E,KACb+uE,EAAa+T,KACb9kF,EAAQ9kB,IAAeE,GAASm6D,GAAoBn6D,EAAOi7D,KAC3Dl2C,EAAQjlB,IAAeE,GAASs6D,GAAoBt6D,EAAOk7D,KAC3D0uC,EAAa9pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASi7D,EAAS3vC,KAC9Eu+E,EAAa/pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASk7D,EAAS5vC,KAE9El4B,EAAU+2B,KAEhB,IAAKwrE,IAAeviG,GAAoB,MAATwxB,GAA0B,MAATG,GAA+B,MAAd6kF,GAAoC,MAAdC,EACrF,OAAO,KAGT,IAAMwB,EAA8CZ,GAClDb,EACAC,EACAz2G,EACAR,EAAMohC,SACNpP,EAAMU,YACNP,EAAMO,YACN1yB,GAEF,IAAKy4G,EACH,OAAO,KAGT,IAAMzgB,EAASygB,EAAU,GACnBC,EAASD,EAAU,GACzB,GAAc,MAAVzgB,GAA4B,MAAV0gB,EACpB,OAAO,KAET,IAAQ73H,EAAOmD,EAAG6e,GAAOm1F,GACjBn3G,EAAGwa,EAAIrX,EAAG8e,GAAO41G,EAInBvY,EAAmC53F,GAAAA,GAAA,CACvC86F,SAH8B,WAAfp2B,EAA0B,QAAHxuF,OAAWskH,EAAU,UAAMtjH,GAI9DwgB,EAAuBD,IAAM,IAChC4C,KACAC,KACAxH,KACAyH,OAGIT,EAAO4zG,GAAe,CAAErzG,KAAIC,KAAIxH,KAAIyH,OAE1C,OACEjf,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,0BAA2BmB,IAC/Cm3G,GAAWvyG,EAAO86F,GACnBt8G,EAAAA,cAAC8qG,GAA6BztF,GAAA,GAAKmB,EAAI,CAAEi1B,WAAYj1B,EAAK/B,MAAO+2B,WAAYh1B,EAAK/B,QAChFzc,EAAAA,cAACotG,GAA2B,CAAC12E,MAAOva,EAAMua,QACzCva,EAAMK,WAKjB,CAEO,IAAMs4G,GAA4B,CACvC1rC,WAAY,UACZ5E,QAAS,EACTC,QAAS,EACTl9D,KAAM,OACNmP,OAAO,EACPlP,OAAQ,OACRwmG,YAAa,EACb1mG,YAAa,EACbi2B,SAAU,SACVqhC,OAAQlB,GAAgB34B,MAmBnB,SAASgwE,GAAczsG,GAC5B,IAAMnM,EAA2B+J,GAAoBoC,EAAcwsG,IACnE,OACE90H,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC00H,GAAmB,CAClBjwC,QAAStoE,EAAMsoE,QACfD,QAASroE,EAAMqoE,QACf4E,WAAYjtE,EAAMitE,WAClBpsF,EAAGmf,EAAMnf,EACTmD,EAAGgc,EAAMhc,EACTkqF,QAASluE,EAAMkuE,UAEjBrqF,EAAAA,cAAC20H,GAAsBx4G,GAG7B,C,6tCAEA44G,GAAcvsH,YAAc,gBC/P5B,IAAMwsH,GAAgBA,CACpBh4H,EACAmD,EACAqkF,EACAC,EACA2E,KAEA,IAAM6rC,EAAM1yG,GAAWvlB,GACjBk4H,EAAM3yG,GAAWpiB,GACjB00C,EAAa1E,KACbgjF,EAAa9pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASi7D,EAAS3vC,KAC9Eu+E,EAAa/pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASk7D,EAAS5vC,KAEpF,IAAKogF,IAAQC,GAAqB,MAAd/B,GAAoC,MAAdC,EACxC,OAAO,KAGT,IAAMqB,EAAS,IAAIvB,GAAyB,CAAEl2H,EAAGm2H,EAAYhzH,EAAGizH,IAE1Dn7H,EAASw8H,EAAOh1H,IAAI,CAAEzC,IAAGmD,KAAK,CAAEo9C,SAAU,WAEhD,MAAmB,YAAf6rC,GAA6BqrC,EAAO7xC,UAAU3qF,GAI3CA,EAHE,IAGI,EAGf,SAASk9H,GAAmBh5G,GAC1B,IAAM+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASopG,GAAOn2G,IACT,KACL+M,EAASqpG,GAAUp2G,GAAO,KAGvB,IACT,CAEA,IAAMi5G,GAAYA,CAACxsG,EAAwBzM,IAGrCnc,EAAAA,eAAqB4oB,GAEjB5oB,EAAAA,aAAmB4oB,EAAQzM,GACN,mBAAXyM,EACVA,EAAOzM,GAEPnc,EAAAA,cAACovG,GAAG/xF,GAAA,GAAKlB,EAAK,CAAEyI,GAAIzI,EAAMyI,GAAIC,GAAI1I,EAAM0I,GAAIjI,UAAU,gCAMhE,SAASy4G,GAAiBl5G,GACxB,IAAM,EAAEnf,EAAC,EAAEmD,EAAC,EAAEuT,GAAMyI,EACd+iG,EAAa+T,KAEbrqF,EAAaosF,GAAch4H,EAAGmD,EAAGgc,EAAMqoE,QAASroE,EAAMsoE,QAAStoE,EAAMitE,YAE3E,IAAKxgD,EACH,OAAO,KAGT,IAAQ5rC,EAAG4nB,EAAIzkB,EAAG0kB,GAAO+jB,GAEnB,MAAEpnB,EAAK,UAAE5E,EAAS,WAAEwsE,GAAejtE,EAInCyiG,EAAkBl6F,GAAAA,GAAA,CACtB86F,SAH8B,WAAfp2B,EAA0B,QAAHxuF,OAAWskH,EAAU,UAAMtjH,GAI9DwgB,EAAuBD,IAAM,IAChCyI,GAAIA,QAAAA,OAAMhpB,EACVipB,GAAIA,QAAAA,OAAMjpB,IAGZ,OACEoE,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,yBAA0BmB,IAC9Cw4G,GAAU5zG,EAAOo9F,GAClB5+G,EAAAA,cAAC8qG,GAA6B,CAC5B9tG,EAAG4nB,EAAKlR,EACRvT,EAAG0kB,EAAKnR,EACR+I,MAAO,EAAI/I,EACXgJ,OAAQ,EAAIhJ,EACZ8/B,WAAY,EAAI9/B,EAChB+/B,WAAY,EAAI//B,GAEhB1T,EAAAA,cAACotG,GAA2B,CAAC12E,MAAOva,EAAMua,QACzCva,EAAMK,WAKjB,CAEO,IAAM84G,GAA2B,CACtClsC,WAAY,UACZ5E,QAAS,EACTC,QAAS,EACT/wE,EAAG,GACHgjB,OAAO,EACPnP,KAAM,OACNC,OAAQ,OACRwmG,YAAa,EACb1mG,YAAa,EACbs3D,OAAQlB,GAAgBK,SAmBnB,SAASw3C,GAAajtG,GAC3B,IAAMnM,EAAQ+J,GAAoBoC,EAAcgtG,KAC1C,EAAEt4H,EAAC,EAAEmD,EAAC,EAAEuT,EAAC,WAAE01E,EAAU,QAAE3E,EAAO,QAAED,GAAYroE,EAClD,OACEnc,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACm1H,GAAkB,CAACh1H,EAAGA,EAAGnD,EAAGA,EAAG0W,EAAGA,EAAG+wE,QAASA,EAASD,QAASA,EAAS4E,WAAYA,IACtFppF,EAAAA,cAACq1H,GAAqBl5G,GAG5B,C,6tCAEAo5G,GAAa/sH,YAAc,eC7I3B,IAAMgtH,GAAUA,CACdC,EACAC,EACAC,EACAC,EACAzC,EACAC,EACAj3G,KAC6B,IAAA05G,EAAAC,EAAAC,EAAAC,GACrBj3G,GAAIk3G,EAASz+G,GAAI0+G,EAASl3G,GAAIm3G,EAASl3G,GAAIm3G,GAAYj6G,EAE/D,GAAkB,MAAdg3G,GAAoC,MAAdC,EACxB,OAAO,KAGT,IAAMqB,EAAS,IAAIvB,GAAyB,CAAEl2H,EAAGm2H,EAAYhzH,EAAGizH,IAE1D/d,EAAyB,CAC7Br4G,EAAGy4H,EAAuD,QAAlDI,EAAI1C,EAAW1zH,IAAIw2H,EAAS,CAAE14E,SAAU,iBAAU,IAAAs4E,EAAAA,EAAI,KAAQ1C,EAAWzwC,WACjFviF,EAAGw1H,EAAuD,QAAlDG,EAAI1C,EAAW3zH,IAAI02H,EAAS,CAAE54E,SAAU,iBAAU,IAAAu4E,EAAAA,EAAI,KAAQ1C,EAAW1wC,YAG7E4yB,EAAyB,CAC7Bt4G,EAAG04H,EAAqD,QAAhDK,EAAI5C,EAAW1zH,IAAIy2H,EAAS,CAAE34E,SAAU,eAAQ,IAAAw4E,EAAAA,EAAI,KAAQ5C,EAAWxwC,WAC/ExiF,EAAGy1H,EAAqD,QAAhDI,EAAI5C,EAAW3zH,IAAI22H,EAAS,CAAE74E,SAAU,eAAQ,IAAAy4E,EAAAA,EAAI,KAAQ5C,EAAWzwC,YAGjF,MAAyB,YAArBxmE,EAAMitE,YAA8BqrC,EAAO7xC,UAAUyyB,IAAQof,EAAO7xC,UAAU0yB,GAK3E6c,GAAe9c,EAAIC,GAJjB,IAIoB,EAGzB+gB,GAAaA,CAACztG,EAAqCzM,IAGnDnc,EAAAA,eAAqB4oB,GAEhB5oB,EAAAA,aAAmB4oB,EAAQzM,GACP,mBAAXyM,EACTA,EAAOzM,GAEPnc,EAAAA,cAACkwD,GAAS7yC,GAAA,GAAKlB,EAAK,CAAES,UAAU,kCAM3C,SAAS05G,GAAoBn6G,GAC3B,IAAM+M,EAAWF,KAOjB,OANA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASupG,GAAQt2G,IACV,KACL+M,EAASwpG,GAAWv2G,GAAO,KAGxB,IACT,CAEA,SAASo6G,GAAkBp6G,GACzB,IAAM,GAAE4C,EAAE,GAAEvH,EAAE,GAAEwH,EAAE,GAAEC,EAAE,UAAErC,EAAS,MAAE4E,EAAK,QAAEgjE,EAAO,QAAEC,GAAYtoE,EACzD+iG,EAAa+T,KACbp+E,EAAa1E,KACbgjF,EAAa9pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASi7D,EAAS3vC,KAC9Eu+E,EAAa/pG,IAAeE,GAASylE,GAAgBzlE,EAAO,QAASk7D,EAAS5vC,KAEpF,GAAkB,MAAds+E,GAAoC,MAAdC,EACxB,OAAO,KAGT,IAAMqC,EAAQlzG,GAAWxD,GACnB22G,EAAQnzG,GAAW/K,GACnBm+G,EAAQpzG,GAAWvD,GACnB42G,EAAQrzG,GAAWtD,GAEzB,KAAKw2G,GAAUC,GAAUC,GAAUC,GAAUp0G,GAC3C,OAAO,KAGT,IAAMhD,EAAOg3G,GAAQC,EAAOC,EAAOC,EAAOC,EAAOzC,EAAYC,EAAYj3G,GAEzE,IAAKqC,IAASgD,EACZ,OAAO,KAGT,IACMg+F,EADwC,WAArBrjG,EAAMitE,WACK,QAAHxuF,OAAWskH,EAAU,UAAMtjH,EAE5D,OACEoE,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,0BAA2BmB,IAC/Cy5G,GAAW70G,EAAKkD,GAAAA,GAAA,CAAI86F,YAAapjG,EAAuBD,IAAWqC,IAC3D,MAARA,GACCxe,EAAAA,cAAC8qG,GAA6BztF,GAAA,GAAKmB,EAAI,CAAEi1B,WAAYj1B,EAAK/B,MAAO+2B,WAAYh1B,EAAK/B,QAChFzc,EAAAA,cAACotG,GAA2B,CAAC12E,MAAOva,EAAMua,QACzCva,EAAMK,WAMnB,CAEO,IAAMg6G,GAA4B,CACvCptC,WAAY,UACZ5E,QAAS,EACTC,QAAS,EACT51B,OAAQ,EACRtnC,KAAM,OACNmP,OAAO,EACPs3F,YAAa,GACbxmG,OAAQ,OACRF,YAAa,EACbs3D,OAAQlB,GAAgBz4B,MAmBnB,SAASwxE,GAAcnuG,GAC5B,IAAMnM,EAAQ+J,GAAoBoC,EAAckuG,IAChD,OACEx2H,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACs2H,GAAmB,CAClB7xC,QAAStoE,EAAMsoE,QACfD,QAASroE,EAAMqoE,QACf4E,WAAYjtE,EAAMitE,WAClBrqE,GAAI5C,EAAM4C,GACVvH,GAAI2E,EAAM3E,GACVwH,GAAI7C,EAAM6C,GACVC,GAAI9C,EAAM8C,KAEZjf,EAAAA,cAACu2H,GAAsBp6G,GAG7B,CCxQO,SAASu6G,GAAkBz4H,EAA4BqP,GAC5D,GAAIA,EAAI,EACN,MAAO,GAET,GAAU,IAANA,EACF,OAAOrP,EAGT,IADA,IAAMhG,EAAiB,GACd8C,EAAI,EAAGA,EAAIkD,EAAMnF,OAAQiC,GAAKuS,EAAG,CACxC,IAAM9J,EAAOvF,EAAMlD,QACNa,IAAT4H,GACFvL,EAAO8B,KAAKyJ,EAEhB,CACA,OAAOvL,CACT,CCtBO,SAAS0+H,GAAmBC,EAAmBC,EAAgBvxG,GAGpE,ORsBqC,SAAHmoB,GAA+D,IAA3D,MAAEhxB,EAAK,OAAEC,GAAc+wB,EAEvDqpF,EAXD,SAAwBxxG,GAC7B,OAASA,EAAQ,IAAO,KAAO,GACjC,CAS0ByxG,CAFgEr7H,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAGrFs7H,EAAgBF,EAAkBhrH,KAAKiS,GAAM,IAI7Ck5G,EAAiBnrH,KAAKorH,KAAKx6G,EAASD,GAEpC06G,EACJH,EAAeC,GAAkBD,EAAelrH,KAAKiS,GAAKk5G,EACtDv6G,EAAS5Q,KAAK+R,IAAIm5G,GAClBv6G,EAAQ3Q,KAAK8R,IAAIo5G,GAEvB,OAAOlrH,KAAK0F,IAAI2lH,EAClB,CQrCSC,CAFM,CAAE36G,MAAOm6G,EAAYn6G,MAAQo6G,EAASp6G,MAAOC,OAAQk6G,EAAYl6G,OAASm6G,EAASn6G,QAE3D4I,EACvC,CAiBO,SAAS+xG,GACd5hH,EACA6hH,EACAC,EACA5rH,EACAC,GAIA,GAAI6J,EAAO6hH,EAAe7hH,EAAO9J,GAAS8J,EAAO6hH,EAAe7hH,EAAO7J,EACrE,OAAO,EAGT,IAAMuC,EAAOopH,IAEb,OAAO9hH,GAAQ6hH,EAAgB7hH,EAAOtH,EAAQ,EAAIxC,IAAU,GAAK8J,GAAQ6hH,EAAgB7hH,EAAOtH,EAAQ,EAAIvC,IAAQ,CACtH,C,kgCC2GO,SAAS4rH,GACdr7G,EACAgoF,EACAI,GAEA,IAMwCkzB,GANlC,KAAEh5C,EAAI,MAAEj2C,EAAK,QAAE7rB,EAAO,WAAE4mE,EAAU,YAAE10C,EAAW,SAAEw6B,EAAQ,cAAEma,EAAa,KAAEhkC,EAAI,MAAEl6B,GAAUnJ,EAEhG,IAAKqsB,IAAUA,EAAM1vC,SAAW2lF,EAC9B,MAAO,GAGT,GAAIn8D,GAAS+mD,IAAa1b,GAAOE,MAC/B,OAAuE,QAAvE4pE,EDrHG,SACLjvF,EACA6gC,GAEA,OAAOqtD,GAAYluF,EAAO6gC,EAAW,EACvC,CCgHWquD,CAAuBlvF,EAAOlmB,GAAS+mD,GAAYA,EAAW,UAAE,IAAAouD,EAAAA,EAAI,GAG7E,IAAIE,EAA+C,GAE7CC,EAA0B,QAAhB/oF,GAAyC,WAAhBA,EAA2B,QAAU,SACxEgoF,EACJr3E,GAAoB,UAAZo4E,EAAsB3zB,GAAczkD,EAAM,CAAE2kD,WAAUI,kBAAmB,CAAE9nF,MAAO,EAAGC,OAAQ,GAEjGm7G,EAAcA,CAACn7E,EAA4BpgD,KAC/C,IAAMhF,EAAiC,mBAAlBksF,EAA+BA,EAAc9mC,EAAQplD,MAAOgF,GAASogD,EAAQplD,MAElG,MAAmB,UAAZsgI,EACHjB,GAAmB1yB,GAAc3sG,EAAO,CAAE6sG,WAAUI,kBAAkBsyB,EAAUvxG,GAChF2+E,GAAc3sG,EAAO,CAAE6sG,WAAUI,kBAAiBqzB,EAAQ,EAG1DE,EAAQtvF,EAAM,GACduvF,EAAQvvF,EAAM,GACd/yB,EAAO+yB,EAAM1vC,QAAU,GAAc,MAATg/H,GAA0B,MAATC,EAAgB51G,GAAS41G,EAAMnvF,WAAakvF,EAAMlvF,YAAc,EAC7GovF,ED1KD,SAA2Br7G,EAAmClH,EAAcmiH,GACjF,IAAMK,EAAsB,UAAZL,GACV,EAAE56H,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,GAAWC,EAChC,OAAa,IAATlH,EACK,CACL9J,MAAOssH,EAAUj7H,EAAImD,EACrByL,IAAKqsH,EAAUj7H,EAAIyf,EAAQtc,EAAIuc,GAG5B,CACL/Q,MAAOssH,EAAUj7H,EAAIyf,EAAQtc,EAAIuc,EACjC9Q,IAAKqsH,EAAUj7H,EAAImD,EAEvB,CC6JqB+3H,CAAkBv7G,EAASlH,EAAMmiH,GAEpD,MAAiB,6BAAbvuD,ECjLC,SACL5zD,EACAuiH,EACAH,EACArvF,EACA+6C,GAYA,IATA,IA+CC40C,EA/CKlgI,GAAUuwC,GAAS,IAAI9tC,SAErBiR,MAAOysH,EAAY,IAAExsH,GAAQosH,EACjC17H,EAAQ,EAGR+7H,EAAW,EACX1sH,EAAQysH,EAAaE,EAAA,WAMvB,IAAM/0G,EAAQilB,aAAK,EAALA,EAAQlsC,GAGtB,QAAcV,IAAV2nB,EAAqB,OAAAjL,EAChBo+G,GAAYluF,EAAO6vF,IAI5B,IACIlqH,EADEpT,EAAIuB,EAEJi7H,EAAUA,UACD37H,IAATuS,IACFA,EAAO0pH,EAAYt0G,EAAOxoB,IAGrBoT,GAGHoqH,EAAYh1G,EAAMqlB,WAElB4vF,EAAmB,IAAVl8H,GAAe+6H,GAAU5hH,EAAM8iH,EAAWhB,EAAS5rH,EAAOC,GAEpE4sH,IAEHl8H,EAAQ,EACRqP,EAAQysH,EACRC,GAAY,GAGVG,IAEF7sH,EAAQ4sH,EAAY9iH,GAAQ8hH,IAAY,EAAIh0C,GAC5CjnF,GAAS+7H,EAEb,EAtCOA,GAAYpgI,EAAOa,QAAM,GAAAq/H,EAAAG,IAAE,OAAFH,EAAA7/G,EAwChC,MAAO,EACT,CDwHWmgH,CAAoBhjH,EAAMuiH,EAAYH,EAAarvF,EAAO+6C,GAElD,2BAAbla,ECxHC,SACL5zD,EACAuiH,EACAH,EACArvF,EACA+6C,GAIA,IACM9nF,GADU+sC,GAAS,IAAI9tC,QACV5B,OAEnB,GAAY,IAAR2C,EACF,MAAO,GAMT,IAHA,IAAQkQ,MAAOysH,EAAY,IAAExsH,GAAQosH,EAG5BK,EAAW,EAAGA,GAAY58H,EAAK48H,IAAY,CAOlD,IALA,IAsCCK,EAtCK/uF,GAAUluC,EAAM,GAAK48H,EACvB1sH,EAAQysH,EACRO,GAAK,EAETC,EAAA,WAEE,IAAMr1G,EAAQilB,EAAMlsC,GACpB,GAAa,MAATinB,EAAe,SAGnB,IACIpV,EADEpT,EAAIuB,EAIJi7H,EAAUA,UACD37H,IAATuS,IACFA,EAAO0pH,EAAYt0G,EAAOxoB,IAErBoT,GAGHoqH,EAAYh1G,EAAMqlB,WAIlB4vF,EAASl8H,IAAUqtC,GAAU0tF,GAAU5hH,EAAM8iH,EAAWhB,EAAS5rH,EAAOC,GAE9E,IAAK4sH,EAGQ,OAAXG,GAAK,EAAM,EAKTH,IACF7sH,EAAQ4sH,EAAY9iH,GAAQ8hH,IAAY,EAAIh0C,GAEhD,EAjCSjnF,EAAQqtC,EAAQrtC,EAAQb,IAAsB,KAAAi9H,EAAAE,MAG1C,IAAAF,GAHyBp8H,GAAS+7H,GAoC/C,GAAIM,EAAI,CAGN,IADA,IAAME,EAAkC,GAC/Bv8H,EAAQqtC,EAAQrtC,EAAQb,EAAKa,GAAS+7H,EAAU,CACvD,IAAM55C,EAAOj2C,EAAMlsC,GACP,MAARmiF,GACFo6C,EAAW9+H,KAAK0kF,EAEpB,CACA,OAAOo6C,CACT,CACF,CAGA,MAAO,EACT,CD4CWC,CAA+BrjH,EAAMuiH,EAAYH,EAAarvF,EAAO+6C,IAI5Eo0C,EADe,kBAAbtuD,GAA6C,qBAAbA,EAhItC,SACE5zD,EACAuiH,EACAH,EACArvF,EACA+6C,EACAw1C,GAGA,IAAM9gI,GAAoCuwC,GAAS,IAAI9tC,QACjDe,EAAMxD,EAAOa,QAEf,MAAE6S,EAAK,IAAEC,GAAQosH,EAErB,GAAIe,EAAa,CAEf,IAAIC,EAAOxwF,EAAM/sC,EAAM,GACvB,GAAY,MAARu9H,EAAc,CAChB,IAAMC,EAAWpB,EAAYmB,EAAMv9H,EAAM,GACnCy9H,EAAUzjH,GAAQujH,EAAKpwF,WAAcnzB,EAAOwjH,EAAY,EAAIrtH,GAClE3T,EAAOwD,EAAM,GAAKu9H,EAAIt0G,GAAAA,GAAA,GACjBs0G,GAAI,IACPT,UAAWW,EAAU,EAAIF,EAAKpwF,WAAaswF,EAAUzjH,EAAOujH,EAAKpwF,aAG7C,MAAlBowF,EAAKT,WACYlB,GAAU5hH,EAAMujH,EAAKT,WAAW,IAAMU,GAAUttH,EAAOC,KAGxEA,EAAMotH,EAAKT,UAAY9iH,GAAQwjH,EAAW,EAAI11C,GAC9CtrF,EAAOwD,EAAM,GAAEipB,GAAAA,GAAA,GAAQs0G,GAAI,IAAER,QAAQ,IAG3C,CACF,CAGA,IADA,IAAMnhE,EAAQ0hE,EAAct9H,EAAM,EAAIA,EAAIm9H,EAAA,SAAA79H,GAExC,IAAMo+H,EAAelhI,EAAO8C,GAC5B,GAAoB,MAAhBo+H,EAAsB,SAG1B,IACIhrH,EADAoV,EAAQ41G,EAEN5B,EAAUA,UACD37H,IAATuS,IACFA,EAAO0pH,EAAYsB,EAAcp+H,IAG5BoT,GAGT,GAAU,IAANpT,EAAS,CACX,IAAM6yF,EAAMn4E,GAAQ8N,EAAMqlB,WAAcnzB,EAAO8hH,IAAa,EAAI5rH,GAChE1T,EAAO8C,GAAKwoB,EAAKmB,GAAAA,GAAA,GACZnB,GAAK,IACRg1G,UAAW3qC,EAAM,EAAIrqE,EAAMqlB,WAAaglD,EAAMn4E,EAAO8N,EAAMqlB,YAE/D,MACE3wC,EAAO8C,GAAKwoB,EAAKmB,GAAAA,GAAA,GAAQnB,GAAK,IAAEg1G,UAAWh1G,EAAMqlB,aAG5B,MAAnBrlB,EAAMg1G,WACOlB,GAAU5hH,EAAM8N,EAAMg1G,UAAWhB,EAAS5rH,EAAOC,KAG9DD,EAAQ4X,EAAMg1G,UAAY9iH,GAAQ8hH,IAAY,EAAIh0C,GAClDtrF,EAAO8C,GAAE2pB,GAAAA,GAAA,GAAQnB,GAAK,IAAEi1G,QAAQ,IAGtC,EAjCSz9H,EAAI,EAAGA,EAAIs8D,EAAOt8D,IAAG69H,EAAA79H,GAmC9B,OAAO9C,CACT,CAwDiBmhI,CAAc3jH,EAAMuiH,EAAYH,EAAarvF,EAAO+6C,EAAyB,qBAAbla,GApLjF,SACE5zD,EACAuiH,EACAH,EACArvF,EACA+6C,GAQA,IANA,IAAMtrF,GAAUuwC,GAAS,IAAI9tC,QACvBe,EAAMxD,EAAOa,QAEb,MAAE6S,GAAUqsH,GACd,IAAEpsH,GAAQosH,EAAWM,EAAA,SAAAv9H,GAGvB,IAAMo+H,EAAelhI,EAAO8C,GAC5B,GAAoB,MAAhBo+H,EAAsB,SAG1B,IACIhrH,EADAoV,EAAQ41G,EAEN5B,EAAUA,UACD37H,IAATuS,IACFA,EAAO0pH,EAAYsB,EAAcp+H,IAG5BoT,GAGT,GAAIpT,IAAMU,EAAM,EAAG,CACjB,IAAMmyF,EAAMn4E,GAAQ8N,EAAMqlB,WAAcnzB,EAAO8hH,IAAa,EAAI3rH,GAChE3T,EAAO8C,GAAKwoB,EAAKmB,GAAAA,GAAA,GACZnB,GAAK,IACRg1G,UAAW3qC,EAAM,EAAIrqE,EAAMqlB,WAAaglD,EAAMn4E,EAAO8N,EAAMqlB,YAE/D,MACE3wC,EAAO8C,GAAKwoB,EAAKmB,GAAAA,GAAA,GAAQnB,GAAK,IAAEg1G,UAAWh1G,EAAMqlB,aAG5B,MAAnBrlB,EAAMg1G,WACOlB,GAAU5hH,EAAM8N,EAAMg1G,UAAWhB,EAAS5rH,EAAOC,KAG9DA,EAAM2X,EAAMg1G,UAAY9iH,GAAQ8hH,IAAY,EAAIh0C,GAChDtrF,EAAO8C,GAAE2pB,GAAAA,GAAA,GAAQnB,GAAK,IAAEi1G,QAAQ,IAGtC,EAjCSz9H,EAAIU,EAAM,EAAGV,GAAK,EAAGA,IAAGu9H,EAAAv9H,GAmCjC,OAAO9C,CACT,CAqIiBohI,CAAY5jH,EAAMuiH,EAAYH,EAAarvF,EAAO+6C,GAG1Do0C,EAAW14H,QAAOskB,GAASA,EAAMi1G,SAC1C,CHiFA/B,GAAcjuH,YAAc,gBKzQrB,I,oyCC+EA,IAAM8wH,GAA4B,CACvCt8H,EAAG,EACHmD,EAAG,EACHsc,MAAO,EACPC,OAAQ,EACRC,QAAS,CAAE3f,EAAG,EAAGmD,EAAG,EAAGsc,MAAO,EAAGC,OAAQ,GAEzCmyB,YAAa,SAEbrG,MAAO,GAEPhhB,OAAQ,OACRk3D,UAAU,EACVL,UAAU,EACVI,MAAM,EACN3vC,QAAQ,EAERy0C,WAAY,EAEZ5E,SAAU,EACV46C,WAAY,EACZlwD,SAAU,cACVuV,OAAQlB,GAAgB10C,MAa1B,SAAS8rE,GAASV,GAUhB,IAAM,EAAEp3G,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,YAAEmyB,EAAW,OAAEC,EAAM,SAAEuvC,EAAQ,cAAEm7C,GAAkBplB,EAE9E,IAAK/1B,EACH,OAAO,KAGT,IAAIliE,EAA+BuI,GAAAA,GAAAA,GAAA,GAC9B80G,GACAx9G,EAAsBqiE,IAAS,IAClC92D,KAAM,SAGR,GAAoB,QAAhBsnB,GAAyC,WAAhBA,EAA0B,CACrD,IAAM4qF,IAAgC,QAAhB5qF,IAA0BC,GAA4B,WAAhBD,GAA4BC,GACxF3yB,EAAKuI,GAAAA,GAAA,GACAvI,GAAK,IACR4C,GAAI/hB,EACJgiB,GAAI7e,EAAIs5H,EAAa/8G,EACrBlF,GAAIxa,EAAIyf,EACRwC,GAAI9e,EAAIs5H,EAAa/8G,GAEzB,KAAO,CACL,IAAMg9G,IAA+B,SAAhB7qF,IAA2BC,GAA4B,UAAhBD,GAA2BC,GACvF3yB,EAAKuI,GAAAA,GAAA,GACAvI,GAAK,IACR4C,GAAI/hB,EAAI08H,EAAYj9G,EACpBuC,GAAI7e,EACJqX,GAAIxa,EAAI08H,EAAYj9G,EACpBwC,GAAI9e,EAAIuc,GAEZ,CAEA,OAAO1c,EAAAA,cAAA,OAAAqd,GAAA,GAAUlB,EAAK,CAAES,UAAWnB,EAAK,+BAAgCjZ,KAAI67E,EAAU,gBACxF,CAuGA,SAASs7C,GAASx9G,GAChB,IACIy9G,GADE,OAAEhxG,EAAM,UAAEgrF,EAAS,MAAEt8G,GAAU6kB,EAE/B09G,EAAoBp+G,EAAKm4F,EAAUh3F,UAAW,sCAEpD,GAAI5c,EAAAA,eAAqB4oB,GAEvBgxG,EAAW55H,EAAAA,aAAmB4oB,EAAMlE,GAAAA,GAAA,GAAOkvF,GAAS,IAAEh3F,UAAWi9G,UAC5D,GAAsB,mBAAXjxG,EAChBgxG,EAAWhxG,EAAMlE,GAAAA,GAAC,CAAC,EAAIkvF,GAAS,IAAEh3F,UAAWi9G,SACxC,CACL,IAAIj9G,EAAY,qCAEM,kBAAXgM,IACThM,EAAYnB,EAAKmB,EAAWs2F,GAAwBtqF,KAGtDgxG,EACE55H,EAAAA,cAACkpG,GAAI7rF,GAAA,GAAKu2F,EAAS,CAAEh3F,UAAWA,IAC7BtlB,EAGP,CAEA,OAAOsiI,CACT,CA0BA,IAAM5kB,IAAQ14F,EAAAA,EAAAA,aAAoC,CAACH,EAAmBI,KACpE,IAAM,MACJisB,EAAQ,GAAE,KACVi2C,EAAI,SACJC,EAAQ,OACRl3D,EAAM,cACNg8D,EAAa,KACbhkC,EAAI,QACJh3B,EAAO,cACPsxG,EAAa,YACbjrF,EAAW,OACXC,EAAM,EACN9xC,EAAC,EACDmD,EAAC,MACDsc,EAAK,OACLC,EAAM,SACNiiE,EAAQ,WACR46C,EAAU,SACVp1B,EAAQ,cACRI,EAAa,eACbw1B,EAAc,OACdz/H,EAAM,SACNguC,GACEnsB,EAEE08G,EAAarB,GAAQ9yG,GAAAA,GAAC,CAAC,EAAIq1G,GAAc,IAAEvxF,UAAS27D,EAAUI,GAC9DyE,EAzGR,SAA2Bn6D,EAA0BC,GACnD,OAAQD,GACN,IAAK,OACH,OAAOC,EAAS,QAAU,MAC5B,IAAK,QACH,OAAOA,EAAS,MAAQ,QAC1B,QACE,MAAO,SAEb,CAgGiCykE,CAAkB1kE,EAAaC,GACxDm6D,EA1FR,SAA+Bp6D,EAA0BC,GACvD,OAAQD,GACN,IAAK,OACL,IAAK,QACH,MAAO,SACT,IAAK,MACH,OAAOC,EAAS,QAAU,MAC5B,QACE,OAAOA,EAAS,MAAQ,QAE9B,CAgF6CkrF,CAAsBnrF,EAAaC,GACxE0kE,EAAYx3F,EAAsB+9G,GAClCtmB,EAAkBx3F,EAAiCwiE,GACrDw7C,EAAgD,CAAC,EAC7B,iBAAbv7C,IACTu7C,EAAsBv7C,GAExB,IAAMu2B,EAAuCvwF,GAAAA,GAAA,GACxC8uF,GAAS,IACZjsF,KAAM,QACH0yG,GAGCC,EAAiBrB,EAAWp5H,KAAK8jB,GAAwBmB,GAAA,CAC7DnB,SAnLJ,SACEwC,EACA/oB,EACAmD,EACAsc,EACAC,EACAmyB,EACA8vC,EACA7vC,EACAyqF,GAKA,IAAIx6G,EAAIvH,EAAIwH,EAAIC,EAAIk7G,EAAIC,EAElB3kH,EAAOq5B,GAAU,EAAI,EACrBurF,EAAgBt0G,EAAK44D,UAAYA,EACjC45C,EAAYj2G,GAASyD,EAAKwyG,WAAaxyG,EAAKwyG,UAAYxyG,EAAK6iB,WAEnE,OAAQiG,GACN,IAAK,MACH9vB,EAAKvH,EAAKuO,EAAK6iB,WAGfwxF,GADAp7G,GADAC,EAAK9e,KAAM2uC,EAASpyB,GACVjH,EAAO4kH,GACP5kH,EAAO8jH,EACjBY,EAAK5B,EACL,MACF,IAAK,OACHv5G,EAAKC,EAAK8G,EAAK6iB,WAGfuxF,GADAp7G,GADAvH,EAAKxa,KAAM8xC,EAASryB,GACVhH,EAAO4kH,GACP5kH,EAAO8jH,EACjBa,EAAK7B,EACL,MACF,IAAK,QACHv5G,EAAKC,EAAK8G,EAAK6iB,WAGfuxF,GADAp7G,GADAvH,EAAKxa,IAAK8xC,EAASryB,GACThH,EAAO4kH,GACP5kH,EAAO8jH,EACjBa,EAAK7B,EACL,MACF,QACEx5G,EAAKvH,EAAKuO,EAAK6iB,WAGfwxF,GADAp7G,GADAC,EAAK9e,IAAK2uC,EAASpyB,GACTjH,EAAO4kH,GACP5kH,EAAO8jH,EACjBY,EAAK5B,EAIT,MAAO,CAAExzE,KAAM,CAAEhmC,KAAIC,KAAIxH,KAAIyH,MAAMw/D,KAAM,CAAEzhF,EAAGm9H,EAAIh6H,EAAGi6H,GACvD,CAgIOjlB,CAAiB5xF,EAAOvmB,EAAGmD,EAAGsc,EAAOC,EAAQmyB,EAAa8vC,EAAU7vC,EAAQyqF,MAG3Ee,EAAYJ,EAAez6H,KAAI8kB,IAAgC,IAA/B,MAAEhB,EAAOwhC,KAAMmwD,GAAW3wF,EAC9D,OACEvkB,EAAAA,cAACsd,EAAK,CACJV,UAAU,+BACVle,IAAG,QAAA9D,OAAU2oB,EAAMjsB,MAAK,KAAAsD,OAAI2oB,EAAMqlB,WAAU,KAAAhuC,OAAI2oB,EAAMg1G,YAErD75C,GACC1+E,EAAAA,cAAA,OAAAqd,GAAA,GACM43F,EACAC,EAAS,CACbt4F,UAAWnB,EAAK,oCAAqCjZ,KAAIk8E,EAAU,iBAGjE,IAIN67C,EAAaL,EAAez6H,KAAI,CAAAk0B,EAA6B54B,KAAM,IAAAwxC,EAAAiuF,GAAlC,MAAEj3G,EAAOk7D,KAAM85C,GAAW5kG,EAEzDigF,EAAwDlvF,GAAAA,GAAAA,GAAAA,GAAA,CAC5DukF,kBACGuK,GAAS,IACZxK,aACAxhF,OAAQ,OACRD,KAAMC,GACH+wG,GAAS,IACZj8H,MAAOvB,EACP2sB,QAASnE,EACTk3G,kBAAmB5B,EAAW//H,OAC9B0qF,gBACAh7D,WACGsxG,GAAa,IAChBx0G,MAA8C,QAAzCinB,EAAsB,QAAtBiuF,EAAEV,aAAa,EAAbA,EAAex0G,aAAK,IAAAk1G,EAAAA,EAAIhnB,EAAUluF,aAAK,IAAAinB,EAAAA,EAAI,IAI9CmuF,EAAoCh2G,GAAAA,GAAA,GACrCkvF,GACAH,GAEL,OACEzzG,EAAAA,cAACsd,EAAKD,GAAA,CACJT,UAAU,qCACVle,IAAG,cAAA9D,OAAgB2oB,EAAMjsB,MAAK,KAAAsD,OAAI2oB,EAAMqlB,WAAU,KAAAhuC,OAAI2oB,EAAMg1G,YACxDzyG,GAAmBxrB,EAAQipB,EAAOxoB,IAErC0jF,GACCz+E,EAAAA,cAAC25H,GAAQ,CACP/wG,OAAQ61D,EACRm1B,UAAW8mB,EACXpjI,MAAK,GAAAsD,OAA8B,mBAAlB4oF,EAA+BA,EAAcjgE,EAAMjsB,MAAOyD,GAAKwoB,EAAMjsB,OAAKsD,OAAG4kD,GAAQ,MAGpG,IAIZ,OACEx/C,EAAAA,cAAA,KAAG4c,UAAS,0CAAAhiB,OAA4C0tC,EAAQ,WAC7DiyF,EAAWzhI,OAAS,GACnBkH,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQlB,GAAgBhnD,OACnC12B,EAAAA,cAAA,KAAG4c,UAAS,gDAAAhiB,OAAkD0tC,EAAQ,gBAAgB/rB,IAAKA,GACxFg+G,IAIND,EAAUxhI,OAAS,GAClBkH,EAAAA,cAAA,KAAG4c,UAAS,+CAAAhiB,OAAiD0tC,EAAQ,gBAAgBgyF,GAErF,IAIFK,IAAyBr+G,EAAAA,EAAAA,aAA4C,CAACH,EAAOI,KACjF,IAAM,SAAE8hE,EAAQ,MAAE5hE,EAAK,OAAEC,EAAM,UAAEE,EAAS,KAAEmyB,EAAI,MAAEvG,EAAK,SAAEF,GAAsBnsB,EAATsI,E,6WAAIxH,CAAKd,EAAKe,KAC7EinF,EAAUy2B,IAAezhH,EAAAA,EAAAA,UAAS,KAClCorF,EAAes2B,IAAoB1hH,EAAAA,EAAAA,UAAS,IAC7C2hH,GAAWz6H,EAAAA,EAAAA,QAAyC,OAE1DiyC,EAAAA,EAAAA,qBACE/1B,GACA,MACEw+G,mBAAoBA,KAAc,IAAAC,EAChC,MDvb+Bz2G,KAYzB,IAZ0B,MACtCikB,EAAK,MACL9R,EAAK,iBACLukG,EAAmB,EAAC,SACpBt8C,EAAW,EAAC,WACZ46C,EAAa,GAOdh1G,EAEK22G,EAAe,EACnB,GAAI1yF,EAAO,CACTxwC,MAAM8F,KAAK0qC,GAAO3iB,SAASs1G,IACzB,GAAIA,EAAU,CACZ,IAAMC,EAAOD,EAASzsG,wBAElB0sG,EAAK3+G,MAAQy+G,IACfA,EAAeE,EAAK3+G,MAExB,KAIF,IAAM4+G,EAAa3kG,EAAQA,EAAMhI,wBAAwBjS,MAAQ,EAK3D6+G,EAAoBJ,GAHRv8C,EAAW46C,GAGwB8B,GAAc3kG,EAAQukG,EAAmB,GAE9F,OAAOnvH,KAAK8E,MAAM0qH,EACpB,CAEA,OAAO,CAAC,ECkZKC,CAAwB,CAC7B/yF,MAAOsyF,EAAS95H,QAChB01B,MAAqB,QAAhBskG,EAAE7+G,EAAMswF,gBAAQ,IAAAuuB,OAAA,EAAdA,EAAgBh6H,QACvBi6H,iBAAkB,EAClBt8C,SAAUxiE,EAAMwiE,SAChB46C,WAAYp9G,EAAMo9G,YAClB,MAKR,IAAMiC,GAAWhtG,EAAAA,EAAAA,cACd26D,IACC,GAAIA,EAAI,CACN,IAAMsyC,EAAYtyC,EAAGuyC,uBAAuB,sCAC5CZ,EAAS95H,QAAUy6H,EACnB,IAAMh9C,EAA4Bg9C,EAAU,GAE5C,GAAIh9C,EAAM,CACR,IAAMk9C,EAAgBliH,OAAOmiH,iBAAiBn9C,GACxCo9C,EAAqBF,EAAcx3B,SACnC23B,EAA0BH,EAAcp3B,cAC1Cs3B,IAAuB13B,GAAY23B,IAA4Bv3B,IACjEq2B,EAAYiB,GACZhB,EAAiBiB,GAErB,CACF,IAEF,CAAC33B,EAAUI,IAGb,OAAIx1D,GAQU,MAATtyB,GAAiBA,GAAS,GAAiB,MAAVC,GAAkBA,GAAU,EAPzD,KAYP1c,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWnB,EAAK,0BAA2BmB,IAChD5c,EAAAA,cAAC80G,GAAQ,CACP93G,EAAGmf,EAAMnf,EACTmD,EAAGgc,EAAMhc,EACTsc,MAAOA,EACPC,OAAQA,EACRmyB,YAAa1yB,EAAM0yB,YACnBC,OAAQ3yB,EAAM2yB,OACduvC,SAAUA,EACVm7C,cAAex9G,EAAsBG,KAEvCnc,EAAAA,cAACg1G,GAAK,CACJz4F,IAAKi/G,EACLlzF,SAAUA,EACVhuC,OAAQmqB,EACR0/E,SAAUA,EACV41B,eAAgB59G,EAChBO,OAAQP,EAAMO,OACd6nF,cAAeA,EACfz1D,OAAQ3yB,EAAM2yB,OACdD,YAAa1yB,EAAM0yB,YACnBrmB,QAASrM,EAAMqM,QACfhB,OAAQrL,EAAMqL,OACdi3D,KAAMtiE,EAAMsiE,KACZ+E,cAAernE,EAAMqnE,cACrB9E,SAAUviE,EAAMuiE,SAChB66C,WAAYp9G,EAAMo9G,WAClB56C,SAAUxiE,EAAMwiE,SAChBm7C,cAAe39G,EAAM29G,cACrBtxF,MAAOA,EACPgX,KAAMrjC,EAAMqjC,KACZ/iC,MAAON,EAAMM,MACbzf,EAAGmf,EAAMnf,EACTmD,EAAGgc,EAAMhc,IAEXH,EAAAA,cAAC8qG,GAA6B,CAC5B9tG,EAAGmf,EAAMnf,EACTmD,EAAGgc,EAAMhc,EACTsc,MAAON,EAAMM,MACbC,OAAQP,EAAMO,OACd+2B,WAAYt3B,EAAMM,MAClB+2B,WAAYr3B,EAAMM,OAElBzc,EAAAA,cAACotG,GAA2B,CAAC12E,MAAOva,EAAMua,MAAO+1E,SAAUtwF,EAAMswF,WAChEtwF,EAAMK,WAGC,IAYLu/G,GAAgB/7H,EAAAA,YAAiB,CAACsoB,EAAqB/L,KAClE,IAAMJ,EAAQ+J,GAAoBoC,EAAcgxG,IAChD,OAAOt5H,EAAAA,cAAC26H,GAAsBt9G,GAAA,GAAKlB,EAAK,CAAEI,IAAKA,IAAO,IAGxDw/G,GAAcvzH,YAAc,gB,grDCxV5B,IAAMqlH,GAAc1xG,IAClB,IAAM,KAAEoL,GAASpL,EAEjB,IAAKoL,GAAiB,SAATA,EACX,OAAO,KAGT,IAAM,YAAEymG,EAAW,EAAEhxH,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,GAAEs/G,GAAO7/G,EAEjD,OACEnc,EAAAA,cAAA,QACEhD,EAAGA,EACHmD,EAAGA,EACH67H,GAAIA,EACJv/G,MAAOA,EACPC,OAAQA,EACR8K,OAAO,OACPD,KAAMA,EACNymG,YAAaA,EACbpxG,UAAU,8BACV,EAgBN,SAASq/G,GAAQ13G,GAAoF,IAC/F23G,GADY,OAAEtzG,EAAM,cAAEuzG,GAAuE53G,EAGjG,GAAIvkB,EAAAA,eAAqB4oB,GAEvBszG,EAAWl8H,EAAAA,aAAmB4oB,EAAQuzG,QACjC,GAAsB,mBAAXvzG,EAChBszG,EAAWtzG,EAAOuzG,OACb,KAAAC,GACC,GAAEr9G,EAAE,GAAEC,EAAE,GAAExH,EAAE,GAAEyH,EAAE,IAAEvgB,GAAmBy9H,EAC3CxoG,EAA4E,QAA5EyoG,EAA+CpgH,EADTiB,GAAKk/G,EAAaj/G,YACoB,IAAAk/G,EAAAA,EAAI,CAAC,GAAzEzyF,OAAQrT,GAA4B3C,EAArB0oG,EAAmBp/G,GAAA0W,EAAA69B,IAC1C0qE,EAAWl8H,EAAAA,cAAA,OAAAqd,GAAA,GAAUg/G,EAAmB,CAAEt9G,GAAIA,EAAIC,GAAIA,EAAIxH,GAAIA,EAAIyH,GAAIA,EAAIsI,KAAK,OAAO7oB,IAAKA,IAC7F,CAEA,OAAOw9H,CACT,CAQA,SAASI,GAAoBngH,GAC3B,IAAM,EAAEnf,EAAC,MAAEyf,EAAK,WAAE8/G,GAAa,EAAI,iBAAEC,GAAqBrgH,EAE1D,IAAKogH,IAAeC,IAAqBA,EAAiB1jI,OACxD,OAAO,KAGT,IAAM,QAAE0rF,EAAO,QAAEC,GAAmCtoE,EAAvBsgH,EAAkBx/G,GAAKd,EAAKm3F,IAEnD72G,EAAQ+/H,EAAiB/8H,KAAI,CAAC8jB,EAAOxoB,KACzC,IAAMohI,EAA4Bz3G,GAAAA,GAAA,GAC7B+3G,GAAkB,IACrB19G,GAAI/hB,EACJgiB,GAAIuE,EACJ/L,GAAIxa,EAAIyf,EACRwC,GAAIsE,EACJ7kB,IAAK,QAAF9D,OAAUG,GACbuB,MAAOvB,IAGT,OAAOiF,EAAAA,cAACi8H,GAAQ,CAACv9H,IAAG,QAAA9D,OAAUG,GAAK6tB,OAAQ2zG,EAAYJ,cAAeA,GAAiB,IAGzF,OAAOn8H,EAAAA,cAAA,KAAG4c,UAAU,sCAAsCngB,EAC5D,CAEA,SAASigI,GAAkBvgH,GACzB,IAAM,EAAEhc,EAAC,OAAEuc,EAAM,SAAEigH,GAAW,EAAI,eAAEC,GAAmBzgH,EAEvD,IAAKwgH,IAAaC,IAAmBA,EAAe9jI,OAClD,OAAO,KAGT,IAAM,QAAE0rF,EAAO,QAAEC,GAAmCtoE,EAAvBsgH,EAAkBx/G,GAAKd,EAAKuiG,IAEnDjiH,EAAQmgI,EAAen9H,KAAI,CAAC8jB,EAAOxoB,KACvC,IAAMohI,EAA4Bz3G,GAAAA,GAAA,GAC7B+3G,GAAkB,IACrB19G,GAAIwE,EACJvE,GAAI7e,EACJqX,GAAI+L,EACJtE,GAAI9e,EAAIuc,EACRhe,IAAK,QAAF9D,OAAUG,GACbuB,MAAOvB,IAGT,OAAOiF,EAAAA,cAACi8H,GAAQ,CAACrzG,OAAQ+zG,EAAUR,cAAeA,EAAez9H,IAAG,QAAA9D,OAAUG,IAAO,IAGvF,OAAOiF,EAAAA,cAAA,KAAG4c,UAAU,oCAAoCngB,EAC1D,CAEA,SAASogI,GAAkB1gH,GACzB,IAAM,eAAE2gH,EAAc,YAAE9O,EAAW,EAAEhxH,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,iBAAE8/G,EAAgB,WAAED,GAAa,GAASpgH,EAClG,IAAKogH,IAAeO,IAAmBA,EAAehkI,QAA8B,MAApB0jI,EAC9D,OAAO,KAGT,IAAMO,EAAgCP,EAAiB/8H,KAAI2K,GAAK0B,KAAK8E,MAAMxG,EAAIjK,EAAIA,KAAIwD,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAEtG1D,IAAM48H,EAA8B,IACtCA,EAA8BjsH,QAAQ,GAGxC,IAAMrU,EAAQsgI,EAA8Bt9H,KAAI,CAAC8jB,EAAOxoB,KAEtD,IAAMiiI,EAAYD,EAA8BhiI,EAAI,GAE9CguG,EAD0B,MAAbi0B,EACa78H,EAAIuc,EAAS6G,EAAQy5G,EAAYz5G,EACjE,GAAIwlF,GAAc,EAChB,OAAO,KAET,IAAMk0B,EAAaliI,EAAI+hI,EAAehkI,OACtC,OACEkH,EAAAA,cAAA,QACEtB,IAAG,SAAA9D,OAAWG,GACdoF,EAAGojB,EACHvmB,EAAGA,EACH0f,OAAQqsF,EACRtsF,MAAOA,EACP+K,OAAO,OACPD,KAAMu1G,EAAeG,GACrBjP,YAAaA,EACbpxG,UAAU,8BACV,IAIN,OAAO5c,EAAAA,cAAA,KAAG4c,UAAU,6CAA6CngB,EACnE,CAEA,SAASygI,GAAgB/gH,GACvB,IAAM,SAAEwgH,GAAW,EAAI,aAAEQ,EAAY,YAAEnP,EAAW,EAAEhxH,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,eAAEkgH,GAAmBzgH,EAC5F,IAAKwgH,IAAaQ,IAAiBA,EAAarkI,OAC9C,OAAO,KAGT,IAAMskI,EAA8BR,EAAen9H,KAAI2K,GAAK0B,KAAK8E,MAAMxG,EAAIpN,EAAIA,KAAI2G,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAElG7G,IAAMogI,EAA4B,IACpCA,EAA4BtsH,QAAQ,GAGtC,IAAMrU,EAAQ2gI,EAA4B39H,KAAI,CAAC8jB,EAAOxoB,KACpD,IAAMiiI,EAAYI,EAA4BriI,EAAI,GAE5CwsG,EAD0B,MAAby1B,EACYhgI,EAAIyf,EAAQ8G,EAAQy5G,EAAYz5G,EAE/D,GAAIgkF,GAAa,EACf,OAAO,KAET,IAAM01B,EAAaliI,EAAIoiI,EAAarkI,OACpC,OACEkH,EAAAA,cAAA,QACEtB,IAAG,SAAA9D,OAAWG,GACdiC,EAAGumB,EACHpjB,EAAGA,EACHsc,MAAO8qF,EACP7qF,OAAQA,EACR8K,OAAO,OACPD,KAAM41G,EAAaF,GACnBjP,YAAaA,EACbpxG,UAAU,8BACV,IAIN,OAAO5c,EAAAA,cAAA,KAAG4c,UAAU,2CAA2CngB,EACjE,CAEA,IAAM4gI,GAAoEA,CAAA9wF,EAExE5D,KAAa,IADb,MAAEwF,EAAK,MAAE1xB,EAAK,OAAEC,EAAM,OAAEitB,GAAQ4C,EAAA,OAGhChE,GACEivF,GAAQ9yG,GAAAA,GAAAA,GAAC,CAAC,EACL40G,IACAnrF,GAAK,IACR3F,MAAOO,GAAeoF,GAAO,GAC7BxxB,QAAS,CAAE3f,EAAG,EAAGmD,EAAG,EAAGsc,QAAOC,aAEhCitB,EAAOtb,KACPsb,EAAOtb,KAAOsb,EAAOltB,MACrBksB,EACD,EAEG20F,GAAwEA,CAAA7vF,EAE5E9E,KAAa,IADb,MAAE2F,EAAK,MAAE7xB,EAAK,OAAEC,EAAM,OAAEitB,GAAQ8D,EAAA,OAGhClF,GACEivF,GAAQ9yG,GAAAA,GAAAA,GAAC,CAAC,EACL40G,IACAhrF,GAAK,IACR9F,MAAOO,GAAeuF,GAAO,GAC7B3xB,QAAS,CAAE3f,EAAG,EAAGmD,EAAG,EAAGsc,QAAOC,aAEhCitB,EAAOrb,IACPqb,EAAOrb,IAAMqb,EAAOjtB,OACpBisB,EACD,EAEU40F,GAA4B,CACvChB,YAAY,EACZI,UAAU,EAEVH,iBAAkB,GAElBI,eAAgB,GAEhBp1G,OAAQ,OACRD,KAAM,OAEN41G,aAAc,GACdL,eAAgB,GAChBt4C,QAAS,EACTC,QAAS,EACT97C,eAAe,EACfi2C,OAAQlB,GAAgBC,MAQnB,SAAS6/C,GAAcrhH,GAC5B,IAAM6yB,EAAamF,KACblF,EAAcmF,KACdzK,EAASsK,KACTwpF,EAAkD/4G,GAAAA,GAAA,GACnDwB,GAAoB/J,EAAOohH,KAA0B,IACxDvgI,EAAGslB,GAASnG,EAAMnf,GAAKmf,EAAMnf,EAAI2sC,EAAOtb,KACxCluB,EAAGmiB,GAASnG,EAAMhc,GAAKgc,EAAMhc,EAAIwpC,EAAOrb,IACxC7R,MAAO6F,GAASnG,EAAMM,OAASN,EAAMM,MAAQktB,EAAOltB,MACpDC,OAAQ4F,GAASnG,EAAMO,QAAUP,EAAMO,OAASitB,EAAOjtB,UAGnD,QAAE8nE,EAAO,QAAEC,EAAO,EAAEznF,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,cAAEisB,EAAa,iBAAE+0F,EAAgB,eAAEC,GAC9EF,EAEI5oF,EAAa1E,KACbhC,EAA8D9kB,IAAeE,GACjF8nE,GAAoD9nE,EAAO,QAASi7D,EAAS3vC,KAEzEvG,EAA8DjlB,IAAeE,GACjF8nE,GAAoD9nE,EAAO,QAASk7D,EAAS5vC,KAG/E,KAAK3M,GAAiBzrB,IAAWyrB,GAAiBxrB,IAAY4F,GAAStlB,IAAOslB,GAASniB,IACrF,OAAO,KAUT,IAAMy9H,EACJH,EAAuBG,8BAAgCP,GACnDQ,EACJJ,EAAuBI,gCAAkCP,IAEvD,iBAAEd,EAAgB,eAAEI,GAAmBa,EAG3C,KAAMjB,GAAqBA,EAAiB1jI,QAAqD,mBAAnC+kI,GAA+C,CAC3G,IAAMC,EAAqBJ,GAAoBA,EAAiB5kI,OAE1DilI,EAAkBF,EACtB,CACEvvF,MAAOA,EAAK5pB,GAAAA,GAAA,GAEH4pB,GAAK,IACR9F,MAAOs1F,EAAqBJ,EAAmBpvF,EAAM9F,aAEvD5sC,EACJ6gB,MAAOuyB,QAAAA,EAAcvyB,EACrBC,OAAQuyB,QAAAA,EAAevyB,EACvBitB,YAEFm0F,GAA4Bn1F,GAG9B8H,GACEz4C,MAAMkH,QAAQ6+H,GAAgB,+EAAAnjI,cACwDmjI,EAAe,MAEnG/lI,MAAMkH,QAAQ6+H,KAChBvB,EAAmBuB,EAEvB,CAGA,KAAMnB,GAAmBA,EAAe9jI,QAAmD,mBAAjC8kI,GAA6C,CACrG,IAAMI,EAAmBL,GAAkBA,EAAe7kI,OACpDilI,EAAkBH,EACtB,CACEzvF,MAAOA,EAAKzpB,GAAAA,GAAA,GAEHypB,GAAK,IACR3F,MAAOw1F,EAAmBL,EAAiBxvF,EAAM3F,aAEnD5sC,EACJ6gB,MAAOuyB,QAAAA,EAAcvyB,EACrBC,OAAQuyB,QAAAA,EAAevyB,EACvBitB,YAEFq0F,GAA0Br1F,GAE5B8H,GACEz4C,MAAMkH,QAAQ6+H,GAAgB,6EAAAnjI,cACsDmjI,EAAe,MAEjG/lI,MAAMkH,QAAQ6+H,KAChBnB,EAAiBmB,EAErB,CAEA,OACE/9H,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQ6+C,EAAuB7+C,QAC1C5+E,EAAAA,cAAA,KAAG4c,UAAU,2BACX5c,EAAAA,cAAC6tH,GAAU,CACTtmG,KAAMk2G,EAAuBl2G,KAC7BymG,YAAayP,EAAuBzP,YACpChxH,EAAGygI,EAAuBzgI,EAC1BmD,EAAGs9H,EAAuBt9H,EAC1Bsc,MAAOghH,EAAuBhhH,MAC9BC,OAAQ+gH,EAAuB/gH,OAC/Bs/G,GAAIyB,EAAuBzB,KAG7Bh8H,EAAAA,cAAC68H,GAAiBx/G,GAAA,GAAKogH,EAAsB,CAAEjB,iBAAkBA,KACjEx8H,EAAAA,cAACk9H,GAAe7/G,GAAA,GAAKogH,EAAsB,CAAEb,eAAgBA,KAE7D58H,EAAAA,cAACs8H,GAAmBj/G,GAAA,GACdogH,EAAsB,CAC1B9zF,OAAQA,EACR6yF,iBAAkBA,EAClBruF,MAAOA,EACPG,MAAOA,KAGTtuC,EAAAA,cAAC08H,GAAiBr/G,GAAA,GACZogH,EAAsB,CAC1B9zF,OAAQA,EACRizF,eAAgBA,EAChBzuF,MAAOA,EACPG,MAAOA,MAKjB,CAEAkvF,GAAch1H,YAAc,gBCpjB5B,IAEMy1H,GAAgBviG,GAAY,CAChCnhC,KAAM,YACNqhC,aAJmC,CAAC,EAKpC/G,SAAU,CACRqpG,YAAaA,CAAC30G,EAAO6K,KACnB,IAAM,OAAE+pG,EAAM,SAAEv4C,GAAaxxD,EAAO1M,QAC/B6B,EAAM40G,KACT50G,EAAM40G,GAAU,IAElB50G,EAAM40G,GAAQpkI,KAAK6rF,EAAS,EAE9Bw4C,gBAAiBA,CACf70G,EACA6K,KAEA,IAAM,OAAE+pG,EAAM,KAAE5wF,EAAI,KAAE7Y,GAASN,EAAO1M,QAClC6B,EAAM40G,KACR50G,EAAM40G,GAAU50G,EAAM40G,GAAQ1+H,KAAI2K,GAChCA,EAAEg+B,UAAYmF,EAAKnF,SAAWh+B,EAAEy7E,YAAct4C,EAAKs4C,UAAYnxD,EAAOtqB,IAE1E,EAEFi0H,eAAgBA,CAAC90G,EAAO6K,KACtB,IAAM,OAAE+pG,EAAM,SAAEv4C,GAAaxxD,EAAO1M,QAChC6B,EAAM40G,KACR50G,EAAM40G,GAAU50G,EAAM40G,GAAQl/H,QAAOmL,GAAKA,EAAEg+B,UAAYw9C,EAASx9C,SAAWh+B,EAAEy7E,YAAcD,EAASC,YACvG,MAKO,YAAEq4C,GAAW,gBAAEE,GAAe,eAAEC,IAAmBJ,GAAc1gG,QAEjE+gG,GAAkBL,GAAczqG,Q,gBC7C7C,IAAM+qG,GAAgD,CACpDx4G,KAAM,GACNy+D,QAAS,UACTC,QAAS,UACT+5C,mBAAoBA,KAAA,CAASxhI,EAAG,EAAGmD,EAAG,EAAG7I,MAAO,IAChDmnI,eAAgB,GAGZC,IAAkBlhH,EAAAA,EAAAA,eAAc+gH,IAE/B,SAASI,GACdxiH,GAEA,IAAM,SAAEK,GAAsBL,EAATsI,E,6WAAIxH,CAAKd,EAAKe,IACnC,OAAOld,EAAAA,cAAC0+H,GAAgBruF,SAAQ,CAAC/4C,MAAOmtB,GAAOjI,EACjD,CAEO,IAAMoiH,GAAqBA,KAAMlhH,EAAAA,EAAAA,YAAWghH,IAE5C,SAASG,GAAuB1iH,GACrC,IAAM+M,EAAWF,KACX+pE,GvCjBCr1E,EAAAA,EAAAA,YAAW28F,IuCkBZW,GAAe36G,EAAAA,EAAAA,QAAiC,MAwBtD,OAtBAC,EAAAA,EAAAA,YAAU,KACe,MAAnByyF,IAIyB,OAAzBioB,EAAah6G,QACfkoB,EAASg1G,GAAY,CAAEC,OAAQprC,EAAiBnN,SAAUzpE,KACjD6+F,EAAah6G,UAAYmb,GAClC+M,EAASk1G,GAAgB,CAAED,OAAQprC,EAAiBxlD,KAAMytE,EAAah6G,QAAS0zB,KAAMvY,KAExF6+F,EAAah6G,QAAUmb,EAAK,GAC3B,CAAC+M,EAAU6pE,EAAiB52E,KAE/B7b,EAAAA,EAAAA,YAAU,IACD,KACuB,MAAxB06G,EAAah6G,SAAsC,MAAnB+xF,IAClC7pE,EAASm1G,GAAe,CAAEF,OAAQprC,EAAiBnN,SAAUo1B,EAAah6G,WAC1Eg6G,EAAah6G,QAAU,KACzB,GAED,CAACkoB,EAAU6pE,IAEP,IACT,CCjDO,SAAS+rC,GAAat6C,EAAiBC,GAAiB,IAAAs6C,EAAAC,EACvD7wF,EAAQ9kB,IAAeE,GAASm6D,GAAoBn6D,EAAOi7D,KAC3Dl2C,EAAQjlB,IAAeE,GAASs6D,GAAoBt6D,EAAOk7D,KAE3Dw6C,EAA6C,QAA3BF,EAAG5wF,aAAK,EAALA,EAAOgsC,yBAAiB,IAAA4kD,EAAAA,EAAIz7C,GAAcnJ,kBAC/D+kD,EAA6C,QAA3BF,EAAG1wF,aAAK,EAALA,EAAO6rC,yBAAiB,IAAA6kD,EAAAA,EAAIr7C,GAAcxJ,kBAGrE,MAAO,CAAE8kC,SAFQggB,GAAaC,EAEXD,YAAWC,YAChC,CAEO,SAASC,GAAqB56G,GAA+D,IAA9D,QAAEigE,EAAO,QAAEC,EAAO,WAAEy6B,GAAwC36F,EAC1FyuG,EAAWhS,MAEX,UAAEie,EAAS,UAAEC,EAAS,SAAEjgB,GAAa6f,GAAat6C,EAASC,GAEjE,IAAKw6B,IAAa+T,EAChB,OAAO,KAGT,IAAM,EAAEh2H,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,GAAWs2G,EAEhC,OACEhzH,EAAAA,cAAA,YAAU0iB,GAAE,YAAA9nB,OAAcskH,IACxBl/G,EAAAA,cAAA,QACEhD,EAAGiiI,EAAYjiI,EAAIA,EAAIyf,EAAQ,EAC/Btc,EAAG++H,EAAY/+H,EAAIA,EAAIuc,EAAS,EAChCD,MAAOwiH,EAAYxiH,EAAgB,EAARA,EAC3BC,OAAQwiH,EAAYxiH,EAAkB,EAATA,IAIrC,CCrCA,IAAM0iH,GAAuBA,CAAC71G,EAA0Bi7D,EAAiB66C,EAAkBxqF,IACzF+8C,GAAoBroE,EAAO,QAASi7D,EAAS3vC,GAEzCyqF,GAAmBA,CAAC/1G,EAA0Bi7D,EAAiB66C,EAAkBxqF,IACrF88C,GAA2BpoE,EAAO,QAASi7D,EAAS3vC,GAEhD0qF,GAAuBA,CAACh2G,EAA0Bi2G,EAAkB/6C,EAAiB5vC,IACzF+8C,GAAoBroE,EAAO,QAASk7D,EAAS5vC,GAEzC4qF,GAAmBA,CAACl2G,EAA0Bi2G,EAAkB/6C,EAAiB5vC,IACrF88C,GAA2BpoE,EAAO,QAASk7D,EAAS5vC,GAEhD6qF,GAAiB9xG,GACrB,CAAC0mB,GAAmB8qF,GAAsBG,GAAsBD,GAAkBG,KAClF,CAAC94G,EAAQwnB,EAAOG,EAAOqxF,EAAYC,IAC7Bv3F,GAAkB1hB,EAAQ,SACrBumB,GAAkBiB,EAAOwxF,GAAY,GAEvCzyF,GAAkBoB,EAAOsxF,GAAY,KAYhD,SAASC,GAAer8H,GACtB,MAAqB,SAAdA,EAAKsC,IACd,CAUA,IAAMg6H,GAM0BlyG,GAC9B,CAAC+2D,GA3BgBo7C,CACjBj/C,EACA0+C,EACAH,EACA1c,EACAjgG,IACGA,IAsBH,CAAC0hE,EAAgB1hE,IACf0hE,EAAenlF,OAAO4gI,IAAgBv8G,MAAKtmB,GAAKA,EAAE0lB,KAAOA,MAGhDs9G,GAMmCpyG,GAC9C,CACE0mB,GACA8qF,GACAG,GACAD,GACAG,GACAK,GACAJ,GACA/lD,KAEF,CACEhzD,EACAwnB,EACAG,EACAqxF,EACAC,EACAK,EACA/zF,EAAQ3nB,KAEqC,IAD7C,UAAE80D,EAAS,eAAEK,EAAc,aAAEF,GAAcj1D,EAE3C,GACkB,MAAhB07G,GACS,MAAT9xF,GACS,MAATG,GACc,MAAdqxF,GACc,MAAdC,GACsB,IAAtBD,EAAW7mI,QACW,IAAtB8mI,EAAW9mI,QACC,MAAZozC,IACY,eAAXvlB,GAAsC,aAAXA,GAT9B,CAcA,IACI2/D,GADE,QAAEl+C,EAAO,KAAEriB,GAASk6G,EAS1B,GAAqB,OALnB35C,EADU,MAARvgE,GAAgBA,EAAKjtB,OAAS,EAChBitB,EAEAszD,aAAS,EAATA,EAAW3+E,MAAMg/E,EAAgBF,EAAe,IAOlE,OCuxBG,SAA0B22C,GAkBA,IAlBC,OAChCxpG,EAAM,MACNwnB,EAAK,MACLG,EAAK,WACLqxF,EAAU,WACVC,EAAU,QACVx3F,EAAO,SACP8D,EAAQ,cACRo6C,GAUD6pC,EACC,OAAO7pC,EACJ7mF,KAAI,CAAC8jB,EAAOjnB,KAEX,IAAMhF,EAAgB6wC,GAAkB5kB,EAAO6kB,GAE/C,GAAe,eAAXzhB,EAAyB,CAC3B,IAAM3pB,EAAIivC,GAAwB,CAAEjD,KAAMmF,EAAO3F,MAAOm3F,EAAYzzF,WAAU3oB,QAAOjnB,UAC/E6D,EAAIqjB,GAAUlsB,GAAS,KAAOg3C,EAAMxH,MAAMrnC,IAAInI,GACpD,MAAO,CACL0F,EAAAA,EACAmD,EAAGA,QAAAA,EAAK,KACR7I,QACAowB,QAASnE,EAEb,CAEA,IAAMvmB,EAAIwmB,GAAUlsB,GAAS,KAAO62C,EAAMrH,MAAMrnC,IAAInI,GAC9C6I,EAAI8rC,GAAwB,CAAEjD,KAAMsF,EAAO9F,MAAOo3F,EAAY1zF,WAAU3oB,QAAOjnB,UACrF,OAAS,MAALU,GAAkB,MAALmD,EACR,KAEF,CACLnD,IACAmD,IACA7I,QACAowB,QAASnE,EACV,IAEFtkB,OAAOmH,QACZ,CDv0BW85H,CAAkB,CAAEv5G,SAAQwnB,QAAOG,QAAOqxF,aAAYC,aAAYx3F,UAAS8D,WAAUo6C,iBAf5F,CAe4G,IErHzG,SAAS65C,GAA+Br2C,GAI7C,IAAM3tE,EAAQF,EAAiC6tE,GAG/C,GAAa,MAAT3tE,EAAe,CACjB,IAAM,EAAG,YAAEmL,GAAgBnL,EACvBikH,EAAQzgI,OAAO+T,GACf2sH,EAAkB1gI,OAAO2nB,GAO7B,OANI3nB,OAAO0L,MAAM+0H,IAAUA,EAAQ,KACjCA,EAPa,IASXzgI,OAAO0L,MAAMg1H,IAAoBA,EAAkB,KACrDA,EATuB,GAWlB,CACL3sH,EAAG0sH,EACH94G,YAAa+4G,EAEjB,CACA,MAAO,CACL3sH,EAlBe,EAmBf4T,YAlByB,EAoB7B,C,eCxBA,IAAIg5G,GAJJ,SAA0B3/F,GACxBA,GACF,EAIO,MAEM4/F,GAAW,IAAMD,GCRxBE,GAAappI,OAAO85B,IAAI,uBACxBuvG,GAA2B,oBAAfplH,WAA6BA,WAE/C,CAAC,EAED,SAASqlH,KACP,IAAIC,EAEJ,IAAK,gBAAqB,MAAO,CAAC,EAClC,MAAMC,EAAkD,OAApCD,EAAiBF,GAAGD,KAAuBG,EAAiBF,GAAGD,IAAc,IAAIl8H,IACrG,IAAIu8H,EAAcD,EAAWp+H,IAAI,iBAYjC,OAVKq+H,IACHA,EAAc,gBAAoB,MAMlCD,EAAW37H,IAAI,gBAAqB47H,IAG/BA,CACT,CAEO,MAAM,GAAiCH,KCtB9C,IAAIjgI,GAAmC,K,QCoEvC,MAAMqgI,GAAgB,CACpB,MAAAv6F,GAAU,EAEV/jC,IAAK,IAAM,IAEN,SAAS,GAAmBymB,EAAO83G,GACxC,IAAIpsG,EACA95B,EAAYimI,GAEZE,EAAsB,EAEtBC,GAAiB,EAoBrB,SAASC,IACH13G,EAAa23G,eACf33G,EAAa23G,eAEjB,CAMA,SAASC,IACPJ,IAEKrsG,IACHA,EAAcosG,EAAYA,EAAUt3G,aAAay3G,GAAuBj4G,EAAMvoB,UAAUwgI,GACxFrmI,EAlHN,WACE,MAAMylI,EAAQC,KACd,IAAI19C,EAAQ,KACR1lF,EAAO,KACX,MAAO,CACL,KAAAiyB,GACEyzD,EAAQ,KACR1lF,EAAO,IACT,EAEA,MAAAopC,GACE+5F,GAAM,KACJ,IAAI1mI,EAAWipF,EAEf,KAAOjpF,GACLA,EAAS+mC,WACT/mC,EAAWA,EAAS86B,IACtB,GAEJ,EAEA,GAAAlyB,GACE,IAAI3H,EAAY,GACZjB,EAAWipF,EAEf,KAAOjpF,GACLiB,EAAUd,KAAKH,GACfA,EAAWA,EAAS86B,KAGtB,OAAO75B,CACT,EAEA,SAAA6F,CAAUigC,GACR,IAAIzM,GAAe,EACft6B,EAAWuD,EAAO,CACpBwjC,WACAjM,KAAM,KACN6Y,KAAMpwC,GASR,OANIvD,EAAS2zC,KACX3zC,EAAS2zC,KAAK7Y,KAAO96B,EAErBipF,EAAQjpF,EAGH,WACAs6B,GAA0B,OAAV2uD,IACrB3uD,GAAe,EAEXt6B,EAAS86B,KACX96B,EAAS86B,KAAK6Y,KAAO3zC,EAAS2zC,KAE9BpwC,EAAOvD,EAAS2zC,KAGd3zC,EAAS2zC,KACX3zC,EAAS2zC,KAAK7Y,KAAO96B,EAAS86B,KAE9BmuD,EAAQjpF,EAAS86B,KAErB,CACF,EAGJ,CAgDkB2sG,GAEhB,CAEA,SAASC,IACPN,IAEIrsG,GAAuC,IAAxBqsG,IACjBrsG,IACAA,OAAc/4B,EACdf,EAAUu0B,QACVv0B,EAAYimI,GAEhB,CAgBA,MAAMt3G,EAAe,CACnBC,aA/DF,SAAsB7vB,GACpBwnI,IACA,MAAMG,EAAkB1mI,EAAU6F,UAAU9G,GAE5C,IAAI4nI,GAAU,EACd,MAAO,KACAA,IACHA,GAAU,EACVD,IACAD,IACF,CAEJ,EAoDEG,iBAlDF,WACE5mI,EAAU0rC,QACZ,EAiDE26F,sBACAhtG,aA1CF,WACE,OAAO+sG,CACT,EAyCEG,aAnBF,WACOH,IACHA,GAAiB,EACjBG,IAEJ,EAeEE,eAbF,WACML,IACFA,GAAiB,EACjBK,IAEJ,EASEI,aAAc,IAAM7mI,GAEtB,OAAO2uB,CACT,CCnJO,MACM,KADiC,oBAAX/P,aAAqD,IAApBA,OAAOC,eAAqE,IAAlCD,OAAOC,SAASC,eACzE,kBAAwB,YCO7E,IAAIvZ,GAAuB,KC6B3B,SA1CA,UAAkB,MAChB6oB,EAAK,QACL3vB,EAAO,SACPkjB,EAAQ,YACRmlH,EAAW,eACXC,EAAiB,OAAM,UACvBC,EAAY,SAEZ,MAAMC,EAAe,WAAc,KACjC,MAAMt4G,EAAe,GAAmBP,GACxC,MAAO,CACLA,QACAO,eACAu4G,eAAgBJ,EAAc,IAAMA,OAAc/lI,EAClDgmI,iBACAC,YACD,GACA,CAAC54G,EAAO04G,EAAaC,EAAgBC,IAClCjlG,EAAgB,WAAc,IAAM3T,EAAMS,YAAY,CAACT,IAC7D,IAA0B,KACxB,MAAM,aACJO,GACEs4G,EAQJ,OAPAt4G,EAAa23G,cAAgB33G,EAAai4G,iBAC1Cj4G,EAAa43G,eAETxkG,IAAkB3T,EAAMS,YAC1BF,EAAai4G,mBAGR,KACLj4G,EAAa83G,iBACb93G,EAAa23G,mBAAgBvlI,CAAS,CACvC,GACA,CAACkmI,EAAcllG,IAClB,MAAMolG,EAAU1oI,GAAW,GAE3B,OAAoB,gBAAoB0oI,EAAQ3xF,SAAU,CACxD/4C,MAAOwqI,GACNtlH,EACL,EC7CA,SAAS,GAAGxf,EAAGmD,GACb,OAAInD,IAAMmD,EACK,IAANnD,GAAiB,IAANmD,GAAW,EAAInD,GAAM,EAAImD,EAEpCnD,GAAMA,GAAKmD,GAAMA,CAE5B,CAEe,SAAS,GAAa8hI,EAAMC,GACzC,GAAI,GAAGD,EAAMC,GAAO,OAAO,EAE3B,GAAoB,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,MAAMC,EAAQjrI,OAAOmI,KAAK4iI,GACpBG,EAAQlrI,OAAOmI,KAAK6iI,GAC1B,GAAIC,EAAMrpI,SAAWspI,EAAMtpI,OAAQ,OAAO,EAE1C,IAAK,IAAIiC,EAAI,EAAGA,EAAIonI,EAAMrpI,OAAQiC,IAChC,IAAK7D,OAAO8B,UAAUC,eAAewB,KAAKynI,EAAMC,EAAMpnI,MAAQ,GAAGknI,EAAKE,EAAMpnI,IAAKmnI,EAAKC,EAAMpnI,KAC1F,OAAO,EAIX,OAAO,CACT,CPnBwBsnI,OEFahpI,KACnCoH,GAAmCpH,CAAE,EMGvCipI,CAAsB,GAAA7hI,kCHUWpH,KAC/B+G,GAAuB/G,CAAE,EGV3BkpI,CAAkB,GAAAniI,sBRHMiiI,GQMf,0BRN2B/B,GAAQ+B,GSL5C,IAAMG,GAAwB,IAAI1jI,IAAY,CAC5C,WACA,WACA,YACA,YACA,cACA,cACA,qBACA,aACA,SACA,MACA,QACA,OACA,SACA,UACA,WACA,QACA,QACA,OACA,eAEA,WAgBF,SAAS2jI,GAAczlI,EAAYmD,GACjC,OAAS,MAALnD,GAAkB,MAALmD,IAOA,iBAANnD,GAA+B,iBAANmD,EAG3BnD,IAAMmD,GAAMnD,GAAMA,GAAKmD,GAAMA,EAE/BnD,IAAMmD,EACf,CAaO,SAASuiI,GAAiD/zE,EAAcuqD,GAC7E,IAAMypB,EAAU,IAAI7jI,IAAY,IAAI5H,OAAOmI,KAAKsvD,MAAez3D,OAAOmI,KAAK65G,KAC3E,IAAK,IAAMx6G,KAAOikI,EAKhB,GAAIH,GAAsBzpI,IAAI2F,GAAM,CAClC,GAAsB,MAAlBiwD,EAAUjwD,IAAkC,MAAlBw6G,EAAUx6G,GAKtC,SAEF,IAAKkkI,GAAaj0E,EAAUjwD,GAAMw6G,EAAUx6G,IAC1C,OAAO,CAKX,MAAO,IAAK+jI,GAAc9zE,EAAUjwD,GAAMw6G,EAAUx6G,IAClD,OAAO,EAGX,OAAO,CACT,C,20DXgPA,IAAMmkI,GAAoC1mH,IACxC,IAAM,QAAEisB,EAAO,KAAE7tC,EAAI,OAAEitB,EAAM,WAAE6uF,EAAU,KAAEtnE,GAAS5yB,EACpD,MAAO,CACL,CACEiL,SAAU2nB,EACV3G,UACAtiC,KAAMuwG,EACNlvF,MAAOK,EACPlwB,MAAOq2C,GAAmBpzC,EAAM6tC,GAChC1gB,QAASvL,GAEZ,EAGG2mH,GAA8B9iI,EAAAA,MAClCukB,IAcM,IAdL,QACC6jB,EAAO,KACPriB,EAAI,OACJyB,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,KACJyQ,EAAI,YACJi3D,EAAW,GACX/zF,GAID6B,EACOmpB,EAAoD,CACxDypD,kBAAmBpxE,EACnBkwE,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACAqvD,aAAS77F,EACTrB,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOK,EACPg4B,OACAuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAI5Eq1F,GAAgCA,CAAC3yE,EAAqBt3D,IACnD,GAAP8B,OAAU9B,EAAM,OAAA8B,OAAMw1D,EAAct3D,EAAM,MAG5C,SAASkqI,GAAOt5C,EAAiBryB,GAI/B,IAHA,IAAM4rE,EAAYv5C,EAAM5wF,OAAS,GAAM,EAAI,IAAI4wF,EAAO,GAAKA,EACvDzxF,EAAmB,GAEd8C,EAAI,EAAGA,EAAIs8D,IAASt8D,EAC3B9C,EAAS,IAAIA,KAAWgrI,GAG1B,OAAOhrI,CACT,CA4BA,SAASirI,GAAevvG,GAQrB,IARsB,WACvBurF,EAAU,OACVh4D,EAAM,MACN/qC,GAKDwX,GACO,IAAEm2D,EAAG,QAAE1hD,EAAO,SAAE62E,GAAa9iG,GAM7B,GAAEuG,GAA0BvG,EAE5BmgG,EAAYtgG,EAFWiB,GAAKd,EAAKe,KAIvC,OACEld,EAAAA,cAAC8+G,GAAI,CACH53D,OAAQA,EACR4iC,IAAKA,EACLltE,UAAU,qBACVmiG,aAAa,oBACb32E,QAASA,EACT42E,UAAW1C,EACX2C,SAAUA,EACVC,WAAYA,GAGlB,CAEA,SAASikB,GAAqB52F,GAQ3B,IAR4B,WAC7BwvE,EAAU,SACVv/F,EAAQ,OACR0qC,GAKD3a,EACOixE,GAA2Dj9G,EAAAA,EAAAA,UAAQ,IAChE2mD,aAAM,EAANA,EAAQznD,KAAKosC,IAAmC,IAAAu3F,EAAAC,EAC/C1mH,EAA4B,CAChC3f,EAAU,QAATomI,EAAEv3F,EAAM7uC,SAAC,IAAAomI,EAAAA,EAAI,EACdjjI,EAAU,QAATkjI,EAAEx3F,EAAM1rC,SAAC,IAAAkjI,EAAAA,EAAI,EACd5mH,MAAO,EACPg3B,WAAY,EACZD,WAAY,EACZ92B,OAAQ,GAEV,OAAAgI,GAAAA,GAAA,GACK/H,GAAO,IACVrlB,MAAOu0C,EAAMv0C,MACbowB,QAASmkB,EAAMnkB,QACf/K,UAKAitF,mBAAehuG,EACf2rB,UAAM3rB,GAAS,KAGlB,CAACsrD,IACJ,OACElnD,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOykH,EAAayB,OAAmB5hH,GACvE4gB,EAGP,CAEA,SAAS8mH,GAAW71F,GAYjB,IAZkB,WACnByxE,EAAU,QACVr3D,EAAO,OACPX,EAAM,gBACNz/B,EAAe,MACftL,GAODsxB,GACO,KAAE3nC,EAAI,OAAE6gB,EAAM,aAAEsgC,EAAY,SAAEg4D,EAAQ,MAAEz9F,GAAqBrF,EAC7DonH,EAAsB7+G,GAAAA,GAAA,GACvBtI,EAFyDa,GAAKd,EAAKq1C,MAErC,IACjCjqC,KAAM,OACN3K,UAAW,sBACX4iG,SAAUP,EAAW,iBAAHrkH,OAAoBskH,EAAU,UAAMtjH,EACtDsrD,SACAphD,OACA6gB,SACAsgC,eACAx/B,gBAAiBA,QAAAA,EAAmBtL,EAAMsL,kBAG5C,OACEznB,EAAAA,cAAAA,EAAAA,SAAA,MACGknD,aAAM,EAANA,EAAQpuD,QAAS,GAAKkH,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACu7F,UAAU,QAAQhwF,OAAQpH,GAAW+hH,EAAU,CAAE17E,QAASA,KACxF7nD,EAAAA,cAACkjI,GAAe,CAACh8E,OAAQA,EAAQg4D,WAAYA,EAAY/iG,MAAOA,IAGtE,CAUA,SAASqnH,GAAkBjxE,GAYxB,IAZyB,WAC1B2sD,EAAU,MACV/iG,EAAK,QACL0rC,EAAO,kBACPq8D,EAAiB,yBACjBuf,GAODlxE,GACO,OACJrL,EAAM,gBACNz/B,EAAe,kBACfg6B,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,iBACfmiF,EAAgB,MAChBjnH,EAAK,OACLC,EAAM,eACNuxC,EAAc,iBACdC,GACE/xC,EAEE4nG,EAAaG,EAAkBljH,QAC/BwsD,EAAckB,GAAexH,EAAQ,kBACrCy8E,GAAiBtjI,EAAAA,EAAAA,QAAemtD,IAE/BqwD,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GACzC4iG,GAAc8B,EAEdE,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IACEkC,EAvDR,SAAwBwzE,GACtB,IACE,OAAQA,GAAaA,EAAUtzE,gBAAkBszE,EAAUtzE,kBAAqB,CAClF,CAAE,MAAAE,GACA,OAAO,CACT,CACF,CAiDsBF,CAAezI,EAAQ7mD,SAyBrC6iI,GAAmBxjI,EAAAA,EAAAA,QAAO,GAE5BsjI,EAAe3iI,UAAYwsD,IAC7Bq2E,EAAiB7iI,QAAUyiI,EAAyBziI,QACpD2iI,EAAe3iI,QAAUwsD,GAG3B,IAAMs2E,EAAgBD,EAAiB7iI,QAEvC,OACEhB,EAAAA,cAACmjI,GAAqB,CAACj8E,OAAQA,EAAQ60D,WAAYA,GAChD5/F,EAAMK,SACPxc,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR0M,eAAgB8vD,EAChB7vD,iBAAkB8vD,EAClBt/G,IAAK8uD,IAEH34C,IACA,IAEIkvH,EAFEC,EAAqB9gH,GAAY4gH,EAAe1zE,EAAc0zE,EAAejvH,GAC7EovH,EAAYn4H,KAAKkC,IAAIg2H,EAAoB5zE,GAE/C,GAAI3O,EACF,GAAIh6B,EAAiB,CACnB,IAAMiiE,EAAQ,GAAA9uF,OAAG6sB,GAAkByL,MAAM,aAAazzB,KAAIkiB,GAAOoB,WAAWpB,KAC5EoiH,EAlPaG,EAACprI,EAAgBs3D,EAAqBs5B,KAC/D,IAAMy6C,EAAaz6C,EAAMznE,QAAO,CAAC0oC,EAAKj2B,IAASi2B,EAAMj2B,IAGrD,IAAKyvG,EACH,OAAOpB,GAA8B3yE,EAAat3D,GAQpD,IALA,IAAMu+D,EAAQvrD,KAAKO,MAAMvT,EAASqrI,GAC5BC,EAAetrI,EAASqrI,EACxBE,EAAaj0E,EAAct3D,EAE7BwrI,EAAwB,GACnBvpI,EAAI,EAAGmc,EAAM,EAAGnc,EAAI2uF,EAAM5wF,OAAQoe,GAAe,QAAZqtH,EAAI76C,EAAM3uF,UAAE,IAAAwpI,EAAAA,EAAI,IAAKxpI,EAAG,KAAAwpI,EAC9DC,EAAY96C,EAAM3uF,GACxB,GAAiB,MAAbypI,GAAqBttH,EAAMstH,EAAYJ,EAAc,CACvDE,EAAc,IAAI56C,EAAMhvF,MAAM,EAAGK,GAAIqpI,EAAeltH,GACpD,KACF,CACF,CAEA,IAAMutH,EAAaH,EAAYxrI,OAAS,GAAM,EAAI,CAAC,EAAGurI,GAAc,CAACA,GAErE,MAAO,IAAIrB,GAAOt5C,EAAOryB,MAAWitE,KAAgBG,GAAYhlI,KAAIslD,GAAQ,GAAJnqD,OAAOmqD,EAAI,QAAMrlD,KAAK,KAAK,EA2N9DwkI,CAAmBD,EAAW7zE,EAAas5B,EACtE,MACEq6C,EAAyBhB,GAA8B3yE,EAAa6zE,QAGtEF,EAA4C,MAAnBt8G,OAA0B7rB,EAAY0C,OAAOmpB,GAwCxE,GAxBI5S,EAAI,GAAKu7C,EAAc,IAEzB8zD,EAAkBljH,QAAUkmD,EAmB5Bu8E,EAAyBziI,QAAU8K,KAAKlP,IAAI6mI,EAAyBziI,QAASijI,IAG5ElgB,EAAY,CACd,IAAMC,EAAuBD,EAAWjrH,OAASouD,EAAOpuD,OAClDolH,EACE,IAANrpG,EACIqyC,EACAA,EAAOznD,KAAI,CAAC8jB,EAAOjnB,KACjB,IAAMooI,EAAiB54H,KAAKO,MAAM/P,EAAQ0nH,GAC1C,GAAID,EAAW2gB,GAAiB,CAC9B,IAAMn3F,EAAOw2E,EAAW2gB,GACxB,OAAAhgH,GAAAA,GAAA,GACKnB,GAAK,IACRvmB,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAChC1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,IAEpC,CAGA,OACE6P,GAAAA,GAAA,GACKnB,GAAK,GAFRmgH,EAEQ,CACR1mI,EAAGkmB,GAAoB,EAARzG,EAAW8G,EAAMvmB,EAAG6X,GACnC1U,EAAG+iB,GAAYxG,EAAS,EAAG6G,EAAMpjB,EAAG0U,IAI9B,CACR7X,EAAGumB,EAAMvmB,EACTmD,EAAGojB,EAAMpjB,GAAC,IAKpB,OADA+jH,EAAkBljH,QAAUk9G,EAE1Bl+G,EAAAA,cAACsjI,GAAW,CACVnnH,MAAOA,EACP+qC,OAAQg3D,EACRgB,WAAYA,EACZr3D,QAASA,EACTpgC,gBAAiBs8G,GAGvB,CACA,OACE/jI,EAAAA,cAACsjI,GAAW,CACVnnH,MAAOA,EACP+qC,OAAQA,EACRg4D,WAAYA,EACZr3D,QAASA,EACTpgC,gBAAiBs8G,GACjB,IAIR/jI,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QAG3C,CAEA,SAASiuG,GAAWjnB,GAAsE,IAArE,WAAEwB,EAAU,MAAE/iG,GAAqDuhG,EAChFwG,GAAoB7jH,EAAAA,EAAAA,QAA4C,MAChEojI,GAA2BpjI,EAAAA,EAAAA,QAAe,GAC1CwnD,GAAUxnD,EAAAA,EAAAA,QAA8B,MAE9C,OACEL,EAAAA,cAACwjI,GAAkB,CACjBrnH,MAAOA,EACP+iG,WAAYA,EACZgF,kBAAmBA,EACnBuf,yBAA0BA,EAC1B57E,QAASA,GAGf,CAEA,IAAM+8E,GAAwEA,CAC5EppB,EACApzE,KACqB,IAAAy8F,EAAAC,EACrB,MAAO,CACL9nI,EAAc,QAAb6nI,EAAErpB,EAAUx+G,SAAC,IAAA6nI,EAAAA,OAAIjpI,EAClBuE,EAAc,QAAb2kI,EAAEtpB,EAAUr7G,SAAC,IAAA2kI,EAAAA,OAAIlpI,EAClBtE,MAAOkkH,EAAUlkH,MAEjBytI,SAAU58F,GAAkBqzE,EAAU9zF,QAAS0gB,GAChD,EAIH,MAAM48F,WAAsBC,EAAAA,UAC1Bx7H,MAAAA,GACE,IAAM,KAAEslC,EAAI,IAAE+6C,EAAG,OAAE5iC,EAAM,UAAEtqC,EAAS,QAAE4nE,EAAO,QAAEC,EAAO,IAAEn2D,EAAG,KAAED,EAAI,MAAE5R,EAAK,OAAEC,EAAM,GAAEgG,EAAE,SAAEu8F,EAAQ,OAAErgC,GAC9F9nF,KAAKqlB,MAEP,GAAI4yB,EACF,OAAO,KAGT,IAAM3xB,EAAa3B,EAAK,gBAAiBmB,GACnCsiG,EAAax8F,GACb,EAAEhP,EAAC,YAAE4T,GAAgB64G,GAA+Br2C,GACpDiuB,EAAUD,GAAUhuB,GACpBo7C,EAAc,EAAJxxH,EAAQ4T,EAClB69G,EAAuBlmB,EAAW,iBAAHrkH,OAAoBm9G,EAAU,GAAK,SAAOn9G,OAAGskH,EAAU,UAAMtjH,EAElG,OACEoE,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,GACnB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GACf6hG,GACCj/G,EAAAA,cAAA,YACEA,EAAAA,cAACm/H,GAAqB,CAACjgB,WAAYA,EAAY16B,QAASA,EAASC,QAASA,KACxEszB,GACA/3G,EAAAA,cAAA,YAAU0iB,GAAE,iBAAA9nB,OAAmBskH,IAC7Bl/G,EAAAA,cAAA,QACEhD,EAAGqxB,EAAO62G,EAAU,EACpB/kI,EAAGmuB,EAAM42G,EAAU,EACnBzoH,MAAOA,EAAQyoH,EACfxoH,OAAQA,EAASwoH,MAM3BllI,EAAAA,cAAC2+H,GAAkB,CACjBn6C,QAASA,EACTC,QAASA,EACT1+D,KAAMmhC,EACNs3E,mBAAoBoG,GACpBnG,eAAgB,GAEhBz+H,EAAAA,cAAC2kI,GAAW,CAACxoH,MAAOrlB,KAAKqlB,MAAO+iG,WAAYA,MAGhDl/G,EAAAA,cAACyhH,GAAY,CACXvjC,UAAWpnF,KAAKqlB,MAAM+hE,UACtBh3B,OAAQA,EACRs6D,UAAW1qH,KAAKqlB,MAAMqL,OACtBk6F,YAAa5qH,KAAKqlB,MAAMisB,QACxBo3E,SAAU2lB,IAIlB,EAGK,IAAMC,GAAmB,CAC9BlnD,WAAW,EACXwlD,kBAAkB,EAClBzzE,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,OACjB0F,cAAc,EACd6iC,KAAK,EACLviE,KAAM,OACNwnB,MAAM,EACN0S,kBAAmB,OACnB/qB,OAAO,EACP2/E,WAAY,OACZ7uF,OAAQ,UACRF,YAAa,EACbk9D,QAAS,EACTC,QAAS,EACT7F,OAAQlB,GAAgB34B,KACxBj/C,KAAM,UAGR,SAASu/H,GAASlpH,GAChB,IAAAgtF,EAgBIjjF,GAAoB/J,EAAOipH,KAhBzB,UACJlnD,EAAS,iBACTwlD,EAAgB,eAChBzzE,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,aACf0F,EAAY,IACZ6iC,EAAG,KACH/6C,EAAI,kBACJ0S,EAAiB,MACjB/qB,EAAK,WACL2/E,EAAU,QACV7xB,EAAO,QACPC,EAAO,GACP/hE,GAEDymF,EADIm8B,EAAcroH,GAAAksF,EAAAmK,KAGb,SAAE2L,GAAa6f,GAAat6C,EAASC,GACrCuuC,EAAWhS,KACXr6F,EAAS4tB,KACTM,EAAa1E,KACb+W,EAAmD79B,IAAeE,GACtEy2G,GAAiBz2G,EAAOi7D,EAASC,EAAS5vC,EAAYnyB,KAExD,GAAgB,eAAXiE,GAAsC,aAAXA,GAAoC,MAAVugC,GAA8B,MAAZ8rE,EAE1E,OAAO,KAGT,IAAM,OAAEt2G,EAAM,MAAED,EAAOzf,EAAGqxB,EAAMluB,EAAGmuB,GAAQ0kG,EAE3C,OACEhzH,EAAAA,cAACglI,GAAa3nH,GAAA,GACRioH,EAAc,CAClB5iH,GAAIA,EACJukC,aAAcA,EACd6iC,IAAKA,EACL5L,UAAWA,EACXwlD,iBAAkBA,EAClBzzE,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,EACjBE,kBAAmBA,EACnB1S,KAAMA,EACNrY,MAAOA,EACP2/E,WAAYA,EACZ7xB,QAASA,EACTC,QAASA,EACTv9B,OAAQA,EACRvgC,OAAQA,EACRjK,OAAQA,EACRD,MAAOA,EACP4R,KAAMA,EACNC,IAAKA,EACL2wF,SAAUA,IAGhB,CAoDA,SAASsmB,GAAOj9G,GACd,IAAMnM,EAAQ+J,GAAoBoC,EAAc88G,IAC1CvwF,EAAa1E,KACnB,OACEnwC,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,SACzC4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC45G,GAAgB,CAACC,cAAegpB,GAAiC1mH,KAClEnc,EAAAA,cAAC8iI,GAA2B,CAC1B16F,QAASjsB,EAAMisB,QACfriB,KAAM5J,EAAM4J,KACZyB,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZyQ,KAAMrjC,EAAMqjC,KACZi3D,YAAat6F,EAAMs6F,YACnB/zF,GAAIA,IAEN1iB,EAAAA,cAACi7G,GAAyB,CACxBn1G,KAAK,OACL4c,GAAIA,EACJqD,KAAM5J,EAAM4J,KACZy+D,QAASroE,EAAMqoE,QACfC,QAAStoE,EAAMsoE,QACfC,QAAS,EACTt8C,QAASjsB,EAAMisB,QACf2G,KAAM5yB,EAAM4yB,KACZ8F,WAAYA,IAEd70C,EAAAA,cAACqlI,GAAQhoH,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,OAKnC,CAOO,IAAM8iH,GAA6BxlI,EAAAA,KAAWulI,GAAQ7C,IYx+BtD,SAAS+C,GAAiCl8G,EAA0B7G,GAA6B,IAAAgjH,EAAAC,EACtG,OAAgF,QAAhFD,EAAuE,QAAvEC,EAAOp8G,EAAM66D,eAAeC,eAAe/gE,MAAK9f,GAAQA,EAAKkf,KAAOA,WAAG,IAAAijH,OAAA,EAAhEA,EAAkEnhD,eAAO,IAAAkhD,EAAAA,ElDc7C,CkDbrC,CAEO,SAASE,GAAiCr8G,EAA0B7G,GAA6B,IAAAmjH,EAAAC,EACtG,OAAgF,QAAhFD,EAAuE,QAAvEC,EAAOv8G,EAAM66D,eAAeC,eAAe/gE,MAAK9f,GAAQA,EAAKkf,KAAOA,WAAG,IAAAojH,OAAA,EAAhEA,EAAkErhD,eAAO,IAAAohD,EAAAA,ElDU7C,CkDTrC,CZm+BAL,GAAKh9H,YAAc,Oaz8BnB,IAAM42H,GAAuBA,CAAC71G,EAA0BwpE,EAAkCl+C,IACxF+8C,GAAoBroE,EAAO,QAASk8G,GAAiCl8G,EAAOwpE,GAAkBl+C,GAE1FyqF,GAAmBA,CAAC/1G,EAA0BwpE,EAAkCl+C,IACpF88C,GAA2BpoE,EAAO,QAASk8G,GAAiCl8G,EAAOwpE,GAAkBl+C,GAEjG0qF,GAAuBA,CAACh2G,EAA0BwpE,EAAkCl+C,IACxF+8C,GAAoBroE,EAAO,QAASq8G,GAAiCr8G,EAAOwpE,GAAkBl+C,GAE1F4qF,GAAmBA,CAACl2G,EAA0BwpE,EAAkCl+C,IACpF88C,GAA2BpoE,EAAO,QAASq8G,GAAiCr8G,EAAOwpE,GAAkBl+C,GAEjG6qF,GAAiB9xG,GACrB,CAAC0mB,GAAmB8qF,GAAsBG,GAAsBD,GAAkBG,KAClF,CAAC94G,EAAQwnB,EAAOG,EAAOqxF,EAAYC,IAC7Bv3F,GAAkB1hB,EAAQ,SACrBumB,GAAkBiB,EAAOwxF,GAAY,GAEvCzyF,GAAkBoB,EAAOsxF,GAAY,KAe1CmG,GAI0Bn4G,GAC9B,CAAC+2D,GAhBgBqhD,CAACllD,EAA2Bp+D,IAAyCA,IAiBtF,CAAC0hE,EAAgB1hE,IACf0hE,EAAenlF,QAAOuE,GAAsB,SAAdA,EAAKsC,OAAiBwd,MAAK9f,GAAQA,EAAKkf,KAAOA,MAG3EujH,GAA2B18G,IAC/B,IAAM5C,EAAS2tB,GAAkB/qB,GAEjC,OAD2B8e,GAAkB1hB,EAAQ,SACzB,QAAU,OAAO,EA0BlCu/G,GAIoCt4G,GAC/C,CAACm4G,GAjBoCI,CACrC58G,EACAwpE,EACAl+C,IAEA8xC,GACEp9D,EACA08G,GAAwB18G,GAlBqB68G,EAC/C78G,EACAwpE,IAGiB,UADAkzC,GAAwB18G,GAEhCq8G,GAAiCr8G,EAAOwpE,GAE1C0yC,GAAiCl8G,EAAOwpE,GAW7CqzC,CAAyC78G,EAAOwpE,GAChDl+C,KASF,CAACwxF,EAAwC35F,KAAyD,IAAA45F,EAChG,GAAoB,MAAhBD,GAAuC,MAAf35F,EAA5B,CAGA,IAAM,QAAEC,GAAY05F,EACdtf,EAA2D7lC,GAAyBmlD,GAC1F,GAAe,MAAX15F,GAA4C,MAAzBo6E,EAAvB,CAGA,IAAMwf,EAAqE,QAAvBD,EAAG55F,EAAYC,UAAQ,IAAA25F,OAAA,EAApBA,EAAsBz5F,YACvEj+B,EAAiC23H,aAAM,EAANA,EAAQjjH,MAAKhL,GAAKA,EAAE5Z,MAAQqoH,IACnE,GAAa,MAATn4G,EAGJ,OAAOA,EAAMnP,KAAK+D,GAAsD,CAACA,EAAK,GAAIA,EAAK,KANvF,CALA,CAW2F,IAIlFgjI,GAImB54G,GAC9B,CACE0mB,GACA8qF,GACAG,GACAD,GACAG,GACAyG,GACApsD,GACA4lD,GACAqG,GlIlIsFx8G,GACxFA,EAAMm5B,UAAUogC,YkIoIhB,CACEn8D,EACAwnB,EACAG,EACAqxF,EACAC,EACA/yF,EAAsDtoB,EAEtD2nB,EACAm6F,EACAI,KACG,IAJH,UAAEptD,EAAS,eAAEK,EAAc,aAAEF,GAAcj1D,EAK3C,GACkB,MAAhB8hH,IACY,eAAX1/G,GAAsC,aAAXA,IACnB,MAATwnB,GACS,MAATG,GACc,MAAdqxF,GACc,MAAdC,GACsB,IAAtBD,EAAW7mI,QACW,IAAtB8mI,EAAW9mI,QACC,MAAZozC,EATF,CAaA,IAEIo6C,GAFE,KAAEvgE,GAASsgH,EASjB,GAAqB,OALnB//C,EADEvgE,GAAQA,EAAKjtB,OAAS,EACRitB,EAEAszD,aAAS,EAATA,EAAW3+E,MAAMg/E,EAAgBF,EAAe,IAOlE,OCoyBG,SAAoBktD,GAwBV,IA6CXv/E,GApEJk/E,cAAc,aAAEp/E,EAAc67B,UAAW6jD,EAAa,QAAEv+F,GAAS,YACjEyE,EAAW,OACXlmB,EAAM,eACN8/G,EAAc,MACdt4F,EAAK,MACLG,EAAK,cACLg4C,EAAa,eACb5M,EAAc,WACdimD,EAAU,WACVC,EAAU,SACV1zF,GAaDw6F,EACOE,EAAW/5F,GAAeA,EAAY/zC,OACtCgqF,EAAY+jD,GAAalgH,EAAQ8/G,EAAgBE,EAAex4F,EAAOG,GACvEw4F,EAAgC,eAAXngH,EACvBo8F,GAAU,EAER77D,EAAuCo/B,EAAc7mF,KAAI,CAAC8jB,EAAOjnB,KAAyB,IAAAyqI,EAAAC,EAAAC,EAC1FC,EAEJ,GAAIN,EACFM,EAAer6F,EAAY6sC,EAAiBp9E,OACvC,CACL,IAAM6qI,EAAWh/F,GAAkB5kB,EAAO6kB,GAErCpwC,MAAMkH,QAAQioI,IAKjBD,EAAeC,EACfpkB,GAAU,GAJVmkB,EAAe,CAACpkD,EAAWqkD,EAM/B,CAEA,IAIwBC,EAJlBC,EAA0B,QAApBN,EAAe,QAAfC,EAAGE,SAAY,IAAAF,OAAA,EAAZA,EAAe,UAAE,IAAAD,EAAAA,EAAI,KAE9BO,EAAyB,MAAVD,GAAmBT,IAAa3/E,GAAqD,MAArC9e,GAAkB5kB,EAAO6kB,GAE9F,OAAI0+F,EACK,CACL9pI,EAAGivC,GAAwB,CAAEjD,KAAMmF,EAAO3F,MAAOm3F,EAAYzzF,WAAU3oB,QAAOjnB,UAC9E6D,EAAGmnI,EAAe,KAA+B,QAA3BF,EAAI94F,EAAMxH,MAAMrnC,IAAI4nI,UAAO,IAAAD,EAAAA,EAAI,KACrD9vI,MAAO4vI,EACPx/G,QAASnE,GAIN,CACLvmB,EAAGsqI,EAAe,KAA+B,QAA3BL,EAAI94F,EAAMrH,MAAMrnC,IAAI4nI,UAAO,IAAAJ,EAAAA,EAAI,KACrD9mI,EAAG8rC,GAAwB,CAAEjD,KAAMsF,EAAO9F,MAAOo3F,EAAY1zF,WAAU3oB,QAAOjnB,UAC9EhF,MAAO4vI,EACPx/G,QAASnE,EACV,IAKD4jC,EADEy/E,GAAY7jB,EACH77D,EAAOznD,KAAK8jB,IAA8C,IAAAgkH,EAE3CC,EADlBxqI,EAAIhF,MAAMkH,QAAQqkB,EAAMjsB,OAASisB,EAAMjsB,MAAM,GAAK,KACxD,OAAIwvI,EACK,CACL9pI,EAAGumB,EAAMvmB,EACTmD,EAAQ,MAALnD,GAAwB,MAAXumB,EAAMpjB,GAA+B,QAAtBqnI,EAAIl5F,EAAMxH,MAAMrnC,IAAIzC,UAAE,IAAAwqI,EAAAA,EAAY,KACjE9/G,QAASnE,EAAMmE,SAGZ,CACL1qB,EAAQ,MAALA,GAA+B,QAAtBuqI,EAAIp5F,EAAMrH,MAAMrnC,IAAIzC,UAAE,IAAAuqI,EAAAA,EAAY,KAC9CpnI,EAAGojB,EAAMpjB,EACTunB,QAASnE,EAAMmE,QAChB,IAGQo/G,EAAqBx4F,EAAMxH,MAAMrnC,IAAIqjF,GAAa30C,EAAMrH,MAAMrnC,IAAIqjF,GAG/E,MAAO,CACL57B,SACAC,SAAUA,QAAAA,EAAY,EACtB47D,UAEJ,CDn4BW0kB,CAAY,CACjB9gH,SACAwnB,QACAG,QACAqxF,aACAC,aACAlmD,iBACA2sD,eACAx5F,cACAy5C,gBACAmgD,iBACAv6F,YAzBF,CA0BE,I,8wDC+HN,SAASo3E,GAAmB97F,EAA4BD,GACtD,OAAOC,GAAqB,SAAXA,EAAoBA,EAASD,CAChD,CAEA,IAAMs7G,GAAoC1mH,IACxC,IAAM,QAAEisB,EAAO,KAAE7tC,EAAI,OAAEitB,EAAM,KAAED,EAAI,WAAE8uF,EAAU,KAAEtnE,GAAS5yB,EAC1D,MAAO,CACL,CACEiL,SAAU2nB,EACV3G,UACAtiC,KAAMuwG,EACNlvF,MAAOm8F,GAAmB97F,EAAQD,GAClCjwB,MAAOq2C,GAAmBpzC,EAAM6tC,GAChC1gB,QAASvL,GAEZ,EAGGurH,GAA8B1nI,EAAAA,MAClCukB,IAcM,IAdL,QACC6jB,EAAO,KACPriB,EAAI,OACJyB,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,KACJyQ,EAAI,YACJi3D,EAAW,GACX/zF,GAID6B,EACOmpB,EAAoD,CACxDypD,kBAAmBpxE,EACnBkwE,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACAqvD,aAAS77F,EACTrB,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOm8F,GAAmB97F,EAAQD,GAClCi4B,OACAuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAIlF,SAASi6F,GAAeh0G,GAQrB,IARsB,WACvBurF,EAAU,OACVh4D,EAAM,MACN/qC,GAKDwX,GACO,SAAEsrF,EAAQ,IAAEn1B,EAAG,QAAE1hD,GAAYjsB,EAC7ByrH,EAA0B5rH,EAAsBG,GAEtD,OACEnc,EAAAA,cAAC8+G,GAAI,CACH53D,OAAQA,EACR4iC,IAAKA,EACLltE,UAAU,qBACVmiG,aAAa,oBACb32E,QAASA,EACT42E,UAAW4oB,EACX3oB,SAAUA,EACVC,WAAYA,GAGlB,CAEA,SAAS2oB,GAAqBt7F,GAQ3B,IAR4B,WAC7BwvE,EAAU,SACVv/F,EAAQ,OACR0qC,GAKD3a,EACOixE,EAA2Dt2D,EAAOznD,KAAKosC,IAAmC,IAAAu3F,EAAAC,EACxG1mH,EAA4B,CAChC3f,EAAU,QAATomI,EAAEv3F,EAAM7uC,SAAC,IAAAomI,EAAAA,EAAI,EACdjjI,EAAU,QAATkjI,EAAEx3F,EAAM1rC,SAAC,IAAAkjI,EAAAA,EAAI,EACd5mH,MAAO,EACPg3B,WAAY,EACZD,WAAY,EACZ92B,OAAQ,GAEV,OAAAgI,GAAAA,GAAA,GACK/H,GAAO,IACVrlB,MAAOu0C,EAAMv0C,MACbowB,QAASmkB,EAAMnkB,QACfkiF,mBAAehuG,EACf+gB,UACA4K,UAAM3rB,GAAS,IAInB,OACEoE,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOykH,EAAayB,OAAmB5hH,GACvE4gB,EAGP,CAEA,SAASsrH,GAAUr6F,GAYhB,IAZiB,OAClByZ,EAAM,SACNC,EAAQ,SACR83D,EAAQ,WACRC,EAAU,MACV/iG,GAODsxB,GACO,OAAE9mB,EAAM,KAAE7gB,EAAI,OAAE0hB,EAAM,aAAEy/B,EAAY,QAAE87D,GAAY5mG,GAElD,GAAEuG,GAA0BvG,EAAnBoiG,EAActhG,GAAKd,EAAKe,IACjC6qH,EAAgB/rH,EAAsBuiG,GACtCypB,EAAkB5rH,EAAuBmiG,GAE/C,OACEv+G,EAAAA,cAAAA,EAAAA,SAAA,MACGknD,aAAM,EAANA,EAAQpuD,QAAS,GAChBkH,EAAAA,cAACsd,EAAK,CAACkiG,SAAUP,EAAW,iBAAHrkH,OAAoBskH,EAAU,UAAMtjH,GAC3DoE,EAAAA,cAAC4nD,GAAKvqC,GAAA,GACA2qH,EAAe,CACnBtlH,GAAIA,EACJwkC,OAAQA,EACRD,aAAcA,EACdnhD,KAAMA,EACNqhD,SAAUA,EACVxgC,OAAQA,EACRa,OAAO,OACP5K,UAAU,wBAEA,SAAX4K,GACCxnB,EAAAA,cAAC4nD,GAAKvqC,GAAA,GACA0qH,EAAa,CACjBnrH,UAAU,sBACV+J,OAAQA,EACR7gB,KAAMA,EACNmhD,aAAcA,EACd1/B,KAAK,OACL2/B,OAAQA,KAGA,SAAX1/B,GAAqBu7F,GACpB/iH,EAAAA,cAAC4nD,GAAKvqC,GAAA,GACA0qH,EAAa,CACjBnrH,UAAU,sBACV+J,OAAQA,EACR7gB,KAAMA,EACNmhD,aAAcA,EACd1/B,KAAK,OACL2/B,OAAQC,MAKhBnnD,EAAAA,cAAC2nI,GAAe,CAACzgF,OAAQA,EAAQ/qC,MAAOoiG,EAAgBW,WAAYA,IAG1E,CAEA,SAAS+oB,GAAY11E,GAUlB,IAAA21E,EAAAC,GAVmB,MACpB7/E,EAAK,SACLnB,EAAQ,OACRD,EAAM,YACN5/B,GAMDirC,EACO61E,EAAkB,QAAZF,EAAGhhF,EAAO,UAAE,IAAAghF,OAAA,EAATA,EAAW/nI,EACpBkoI,EAAgC,QAA5BF,EAAGjhF,EAAOA,EAAOpuD,OAAS,UAAE,IAAAqvI,OAAA,EAAzBA,EAA2BhoI,EACxC,IAAK6nC,GAAoBogG,KAAYpgG,GAAoBqgG,GACvD,OAAO,KAET,IAAM3rH,EAAS4rC,EAAQx8C,KAAK0F,IAAI42H,EAASC,GACrCC,EAAOx8H,KAAKlP,OAAOsqD,EAAOznD,KAAI8jB,GAASA,EAAMvmB,GAAK,KAQtD,OANIslB,GAAS6kC,GACXmhF,EAAOx8H,KAAKlP,IAAIuqD,EAAUmhF,GACjBnhF,GAAYnvD,MAAMkH,QAAQioD,IAAaA,EAASruD,SACzDwvI,EAAOx8H,KAAKlP,OAAOuqD,EAAS1nD,KAAI8jB,GAASA,EAAMvmB,GAAK,IAAIsrI,IAGtDhmH,GAASgmH,GAETtoI,EAAAA,cAAA,QACEhD,EAAG,EACHmD,EAAGioI,EAASC,EAAOD,EAASA,EAAS1rH,EACrCD,MAAO6rH,GAAQhhH,EAAc27C,SAAS,GAADroE,OAAI0sB,GAAe,IAAM,GAC9D5K,OAAQ5Q,KAAKO,MAAMqQ,KAKlB,IACT,CAEA,SAAS6rH,GAAc7qB,GAUpB,IAAA8qB,EAAAC,GAVqB,MACtBngF,EAAK,SACLnB,EAAQ,OACRD,EAAM,YACN5/B,GAMDo2F,EACO8P,EAAkB,QAAZgb,EAAGthF,EAAO,UAAE,IAAAshF,OAAA,EAATA,EAAWxrI,EACpBywH,EAAgC,QAA5Bgb,EAAGvhF,EAAOA,EAAOpuD,OAAS,UAAE,IAAA2vI,OAAA,EAAzBA,EAA2BzrI,EACxC,IAAKgrC,GAAoBwlF,KAAYxlF,GAAoBylF,GACvD,OAAO,KAET,IAAMhxG,EAAQ6rC,EAAQx8C,KAAK0F,IAAIg8G,EAASC,GACpCib,EAAO58H,KAAKlP,OAAOsqD,EAAOznD,KAAI8jB,GAASA,EAAMpjB,GAAK,KAQtD,OANImiB,GAAS6kC,GACXuhF,EAAO58H,KAAKlP,IAAIuqD,EAAUuhF,GACjBvhF,GAAYnvD,MAAMkH,QAAQioD,IAAaA,EAASruD,SACzD4vI,EAAO58H,KAAKlP,OAAOuqD,EAAS1nD,KAAI8jB,GAASA,EAAMpjB,GAAK,IAAIuoI,IAGtDpmH,GAASomH,GAET1oI,EAAAA,cAAA,QACEhD,EAAGwwH,EAASC,EAAOD,EAASA,EAAS/wG,EACrCtc,EAAG,EACHsc,MAAOA,EACPC,OAAQ5Q,KAAKO,MAAMq8H,GAAQphH,EAAc27C,SAAS,GAADroE,OAAI0sB,GAAe,IAAM,MAKzE,IACT,CAEA,SAASqhH,GAAQxY,GAYd,IAZe,MAChB7nE,EAAK,OACL3hC,EAAM,OACNugC,EAAM,SACNC,EAAQ,YACR7/B,GAOD6oG,EACC,MAAe,aAAXxpG,EACK3mB,EAAAA,cAACioI,GAAY,CAAC3/E,MAAOA,EAAOpB,OAAQA,EAAQC,SAAUA,EAAU7/B,YAAaA,IAG/EtnB,EAAAA,cAACuoI,GAAc,CAACjgF,MAAOA,EAAOpB,OAAQA,EAAQC,SAAUA,EAAU7/B,YAAaA,GACxF,CAEA,SAASshH,GAAiBC,GAYvB,IAZwB,SACzB5pB,EAAQ,WACRC,EAAU,MACV/iG,EAAK,kBACL+nG,EAAiB,oBACjB4kB,GAODD,GACO,OACJ3hF,EAAM,SACNC,EAAQ,kBACR1F,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,iBACf2M,EAAgB,eAChBD,GACE9xC,EAEEqxC,EAAckB,IADGnuD,EAAAA,EAAAA,UAAQ,KAAM,CAAG2mD,SAAQC,cAAa,CAACD,EAAQC,IACnB,kBAC7CxgC,EAAS6tB,MAERqpE,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GACzC4iG,GAAc8B,EAEdE,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IAEJ,GAAc,MAAVvnC,EACF,OAAO,KAGT,IAAMo9F,EAAaG,EAAkBljH,QAC/B+nI,EAAeD,EAAoB9nI,QACzC,OACEhB,EAAAA,cAAC6nI,GAAqB,CAAC9rB,WAAYA,EAAY70D,OAAQA,GACpD/qC,EAAMK,SACPxc,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR0M,eAAgB8vD,EAChB7vD,iBAAkB8vD,EAClBt/G,IAAK8uD,IAEH34C,IACA,GAAIkvG,EAAY,CACd,IAqBIilB,EArBEhlB,EAAuBD,EAAWjrH,OAASouD,EAAOpuD,OAClDmwI,EAQE,IAANp0H,EACIqyC,EACAA,EAAOznD,KAAI,CAAC8jB,EAAOjnB,KACjB,IAAMooI,EAAiB54H,KAAKO,MAAM/P,EAAQ0nH,GAC1C,GAAID,EAAW2gB,GAAiB,CAC9B,IAAMn3F,EAAsBw2E,EAAW2gB,GAEvC,OAAAhgH,GAAAA,GAAA,GAAYnB,GAAK,IAAEvmB,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAAI1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,IACzF,CAEA,OAAO0O,CAAK,IAkCpB,OA7BEylH,EADE1mH,GAAS6kC,GACIjkC,GAAY6lH,EAAc5hF,EAAUtyC,GAC1C2O,GAAU2jC,IAAa/kC,GAAM+kC,GACvBjkC,GAAY6lH,EAAc,EAAGl0H,GAE7BsyC,EAAS1nD,KAAI,CAAC8jB,EAAOjnB,KAClC,IAAMooI,EAAiB54H,KAAKO,MAAM/P,EAAQ0nH,GAC1C,GAAIhsH,MAAMkH,QAAQ6pI,IAAiBA,EAAarE,GAAiB,CAC/D,IAAMn3F,EAAOw7F,EAAarE,GAE1B,OAAAhgH,GAAAA,GAAA,GAAYnB,GAAK,IAAEvmB,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAAI1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,IACzF,CAEA,OAAO0O,CAAK,IAIZ1O,EAAI,IASNqvG,EAAkBljH,QAAUioI,EAE5BH,EAAoB9nI,QAAUgoI,GAG9BhpI,EAAAA,cAAC8nI,GAAU,CACT5gF,OAAQ+hF,EACR9hF,SAAU6hF,EACV/pB,SAAUA,EACVC,WAAYA,EACZ/iG,MAAOA,GAGb,CAQA,OANItH,EAAI,IAENqvG,EAAkBljH,QAAUkmD,EAE5B4hF,EAAoB9nI,QAAUmmD,GAG9BnnD,EAAAA,cAACsd,EAAK,KACHmkC,GACCzhD,EAAAA,cAAA,YACEA,EAAAA,cAAA,YAAU0iB,GAAE,qBAAA9nB,OAAuBskH,IACjCl/G,EAAAA,cAAC2oI,GAAQ,CACPrgF,MAAOzzC,EACPqyC,OAAQA,EACRC,SAAUA,EACVxgC,OAAQA,EACRW,YAAanL,EAAMmL,gBAK3BtnB,EAAAA,cAACsd,EAAK,CAACkiG,SAAQ,0BAAA5kH,OAA4BskH,EAAU,MACnDl/G,EAAAA,cAAC8nI,GAAU,CACT5gF,OAAQA,EACRC,SAAUA,EACV83D,SAAUA,EACVC,WAAYA,EACZ/iG,MAAOA,KAGL,IAIdnc,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QAG3C,CAMA,SAASwyG,GAAUC,GAAmG,IAAlG,SAAElqB,EAAQ,WAAEC,EAAU,MAAE/iG,GAAwEgtH,EAS5GjlB,GAAoB7jH,EAAAA,EAAAA,QAA4C,MAChEyoI,GAAsBzoI,EAAAA,EAAAA,UAE5B,OACEL,EAAAA,cAAC4oI,GAAiB,CAChB3pB,SAAUA,EACVC,WAAYA,EACZ/iG,MAAOA,EACP+nG,kBAAmBA,EACnB4kB,oBAAqBA,GAG3B,CAEA,MAAMM,WAAsB9oF,EAAAA,cAC1B72C,MAAAA,GACE,IAAM,KAAEslC,EAAI,IAAE+6C,EAAG,OAAE5iC,EAAM,UAAEtqC,EAAS,IAAE0R,EAAG,KAAED,EAAI,SAAE4wF,EAAQ,QAAEz6B,EAAO,QAAEC,EAAO,MAAEhoE,EAAK,OAAEC,EAAM,GAAEgG,EAAE,SAAEykC,EAAQ,OAAEy3B,GACxG9nF,KAAKqlB,MAEP,GAAI4yB,EACF,OAAO,KAGT,IAAM3xB,EAAa3B,EAAK,gBAAiBmB,GACnCsiG,EAAax8F,GACb,EAAEhP,EAAC,YAAE4T,GAAgB64G,GAA+Br2C,GACpDiuB,EAAUD,GAAUhuB,GACpBo7C,EAAc,EAAJxxH,EAAQ4T,EAClB69G,EAAuBlmB,EAAW,iBAAHrkH,OAAoBm9G,EAAU,GAAK,SAAOn9G,OAAGskH,EAAU,UAAMtjH,EAElG,OACEoE,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,GACnB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GACf6hG,GACCj/G,EAAAA,cAAA,YACEA,EAAAA,cAACm/H,GAAqB,CAACjgB,WAAYA,EAAY16B,QAASA,EAASC,QAASA,KACxEszB,GACA/3G,EAAAA,cAAA,YAAU0iB,GAAE,iBAAA9nB,OAAmBskH,IAC7Bl/G,EAAAA,cAAA,QACEhD,EAAGqxB,EAAO62G,EAAU,EACpB/kI,EAAGmuB,EAAM42G,EAAU,EACnBzoH,MAAOA,EAAQyoH,EACfxoH,OAAQA,EAASwoH,MAM3BllI,EAAAA,cAACkpI,GAAU,CAACjqB,SAAUA,EAAUC,WAAYA,EAAY/iG,MAAOrlB,KAAKqlB,SAEtEnc,EAAAA,cAACyhH,GAAY,CACXv6D,OAAQA,EACRs6D,UAAW8B,GAAmBxsH,KAAKqlB,MAAMqL,OAAQ1wB,KAAKqlB,MAAMoL,MAC5Dm6F,YAAa5qH,KAAKqlB,MAAMisB,QACxB81C,UAAWpnF,KAAKqlB,MAAM+hE,UACtBshC,SAAU2lB,IAEXruI,KAAKqlB,MAAM4mG,SAAW/qH,MAAMkH,QAAQioD,IACnCnnD,EAAAA,cAACyhH,GAAY,CACXv6D,OAAQC,EACRq6D,UAAW8B,GAAmBxsH,KAAKqlB,MAAMqL,OAAQ1wB,KAAKqlB,MAAMoL,MAC5Dm6F,YAAa5qH,KAAKqlB,MAAMisB,QACxB81C,UAAWpnF,KAAKqlB,MAAM+hE,UACtBshC,SAAU2lB,IAKpB,EAGK,IAAMkE,GAAmB,CAC9BnrD,WAAW,EACXjuB,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,OACjB0F,cAAc,EACd6iC,KAAK,EACLviE,KAAM,UACNymG,YAAa,GACbj/E,MAAM,EACN0S,kBAAmB,OACnB40D,WAAY,OACZ7uF,OAAQ,UACRF,YAAa,EACbxhB,KAAM,SACN4wB,OAAO,EACP8tD,QAAS,EACTC,QAAS,EACT7F,OAAQlB,GAAgBz4B,MAG1B,SAASqkF,GAASntH,GAA8B,IAAAw3B,EAC9Cw1D,EAgBIjjF,GAAoB/J,EAAOktH,KAhBzB,UACJnrD,EAAS,eACTjuB,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,aACf0F,EAAY,IACZ6iC,EAAG,KACHviE,EAAI,YACJymG,EAAW,KACXj/E,EAAI,kBACJ0S,EAAiB,WACjB40D,EAAU,OACV7uF,EAAM,QACNg9D,EAAO,QACPC,GAED0kB,EADIm8B,EAAcroH,GAAAksF,EAAA33C,IAEb7qC,EAAS4tB,KACT4oC,EAAYgf,MACZ,SAAE8iB,GAAa6f,GAAat6C,EAASC,GACrC5vC,EAAa1E,MAEb,OAAE+W,EAAM,QAAE67D,EAAO,SAAE57D,GAA6E,QAAnExT,EAAGtqB,IAAeE,GAASi9G,GAAWj9G,EAAOpN,EAAMuG,GAAImyB,YAAY,IAAAlB,EAAAA,EAAI,CAAC,EACrGq/E,EAAWhS,KAEjB,GAAgB,eAAXr6F,GAAsC,aAAXA,GAAsC,MAAZqsG,EAExD,OAAO,KAGT,GAAkB,cAAd71C,GAA2C,kBAAdA,EAE/B,OAAO,KAGT,IAAM,OAAEzgE,EAAM,MAAED,EAAOzf,EAAGqxB,EAAMluB,EAAGmuB,GAAQ0kG,EAE3C,OAAK9rE,GAAWA,EAAOpuD,OAKrBkH,EAAAA,cAACopI,GAAa/rH,GAAA,GACRioH,EAAc,CAClBpnD,UAAWA,EACXjuB,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,EACjB4F,SAAUA,EACVF,aAAcA,EACd6iC,IAAKA,EACLviE,KAAMA,EACNymG,YAAaA,EACbtxG,OAAQA,EACRqyB,KAAMA,EACNpoB,OAAQA,EACR86B,kBAAyC,SAAtBA,GAAgCkM,GAAOE,MAAQpM,EAClEshE,QAASA,EACT1M,WAAYA,EACZ4I,SAAUA,EACV/3D,OAAQA,EACR1/B,OAAQA,EACR/K,MAAOA,EACP4R,KAAMA,EACNC,IAAKA,EACLk2D,QAASA,EACTC,QAASA,KA5BJ,IA+BX,CAEO,IAAMoiD,GAAeA,CAC1BlgH,EACA8/G,EACAE,EACAx4F,EACAG,KAIA,IAAMw0C,EAAmC6jD,QAAAA,EAAiBF,EAE1D,GAAInkH,GAASwgE,GACX,OAAOA,EAGT,IAAMt2C,EAAyB,eAAX7lB,EAA0B2nB,EAAQH,EAEhDrE,EAA2B0C,EAAY1F,MAAMgD,SAEnD,GAAyB,WAArB0C,EAAY1mC,KAAmB,CACjC,IAAMyjI,EAAYz9H,KAAKlP,IAAIktC,EAAO,GAAIA,EAAO,IACvC0/F,EAAY19H,KAAKkC,IAAI87B,EAAO,GAAIA,EAAO,IAE7C,MAAkB,YAAdg5C,EACK0mD,EAES,YAAd1mD,GAIGymD,EAAY,EAHVA,EAG0Bz9H,KAAKlP,IAAIkP,KAAKkC,IAAI87B,EAAO,GAAIA,EAAO,IAAK,EAC9E,CAEA,MAAkB,YAAdg5C,EACKh5C,EAAO,GAEE,YAAdg5C,EACKh5C,EAAO,GAGTA,EAAO,EAAE,EAoGlB,SAAS2/F,GAAOnhH,GACd,IAAMnM,EAAQ+J,GAAoBoC,EAAc+gH,IAC1Cx0F,EAAa1E,KAEnB,OACEnwC,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,SACzC4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC45G,GAAgB,CAACC,cAAegpB,GAAiC1mH,KAClEnc,EAAAA,cAAC0nI,GAA2B,CAC1Bt/F,QAASjsB,EAAMisB,QACfriB,KAAM5J,EAAM4J,KACZyB,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZyQ,KAAMrjC,EAAMqjC,KACZi3D,YAAat6F,EAAMs6F,YACnB/zF,GAAIA,IAEN1iB,EAAAA,cAACi7G,GAAyB,CACxBn1G,KAAK,OACL4c,GAAIA,EACJqD,KAAM5J,EAAM4J,KACZqiB,QAASjsB,EAAMisB,QACfo8C,QAASroE,EAAMqoE,QACfC,QAAStoE,EAAMsoE,QACfC,QAAS,EACT/3C,QAASZ,GAAqB5vB,EAAMwwB,SACpCoC,KAAM5yB,EAAM4yB,KACZ8tC,aAASjhF,EACTknF,UAAW3mE,EAAM2mE,UACjBjuC,WAAYA,EACZoS,aAAc9qC,EAAM8qC,eAEtBjnD,EAAAA,cAACspI,GAAQjsH,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,OAKnC,CAMO,IAAMgnH,GAA6B1pI,EAAAA,KAAWypI,GAAQ/G,IAC7DgH,GAAKlhI,YAAc,OChnCnB,IACI,GAAS,mB,2NCmBN,SAASmhI,GAAaxtH,GAC3B,OAAOnc,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACu7F,UAAU,YAAYI,gBAAgB,uBAA0B78F,GAChF,CAUO,IAAMytH,GACX,SAACzgB,GAA0B,IAAEl+G,EAAYvP,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAC,MAC7C,CAACpE,EAAgBgF,KACf,GAAIgmB,GAAS6mG,GAAe,OAAOA,EACnC,IAAM0gB,EAAqBvnH,GAAShrB,IAAUksB,GAAUlsB,GACxD,OAAIuyI,EACK1gB,EAAa7xH,EAAOgF,IAI3ButI,GDxCN,SAAmBtrG,GACf,IAAIA,EAIA,MAAM,IAAIv4B,MAAM,GAKxB,CC6BI8jI,EAAU,GAIH7+H,EAAY,CACpB,ECZG8+H,GACJn8G,GAAe,CAAC+2D,GAHAqlD,CAAClpD,EAA2Bp+D,IAAyCA,IAGzB,CAAC0hE,EAAgB1hE,IAC3E0hE,EAAenlF,QAAOuE,GAAsB,QAAdA,EAAKsC,OAAgBwd,MAAK9f,GAAQA,EAAKkf,KAAOA,MAGnEunH,GAA2Fr8G,GACtG,CAACm8G,KACAjjB,GAAyCA,aAAW,EAAXA,EAAavqC,aAU5C2tD,GAIqBt8G,GAChC,CACE0mB,GACAqwC,GACA8gD,GACAG,GA9BmBuE,CAACrpD,EAA2Bg1B,EAAsBjhE,IAAiCA,IAiCxG,CAACluB,EAAoB0hG,EAAU7jC,EAASC,EAAS5vC,IAC/CwzE,EACGppH,QAAOlE,GACS,eAAX4rB,EACK5rB,EAAEypF,UAAYA,EAEhBzpF,EAAE0pF,UAAYA,IAEtBxlF,QAAOlE,GAAKA,EAAE85C,aAAeA,IAC7B51C,QAAOlE,IAAgB,IAAXA,EAAEg0C,OACd9vC,QAAOlE,GAAgB,QAAXA,EAAE+K,SAmCRskI,GACXx8G,GAAe,CAACs8G,GAAsBttD,GAdEytD,CAAC9gH,EAA0B7G,KACnE,IAAMiE,EAAS2tB,GAAkB/qB,GAC3Bi7D,EAAUihD,GAAiCl8G,EAAO7G,GAClD+hE,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX8hE,GAA8B,MAAXC,EAGvB,MAAe,eAAX99D,EACKiqE,GAAwBrnE,EAAO,QAASi7D,GAE1CoM,GAAwBrnE,EAAO,QAASk7D,EAAQ,GAI+B0gC,IA+B3EmlB,GAAqBA,CAChC/gH,EACA7G,EACAmyB,KAEA,IAMI7L,EAAqCR,EANnC7hB,EAAS2tB,GAAkB/qB,GAC3Bi7D,EAAUihD,GAAiCl8G,EAAO7G,GAClD+hE,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX8hE,GAA8B,MAAXC,EAWvB,MAPe,eAAX99D,GACFqiB,EAAO4oD,GAAoBroE,EAAO,QAASi7D,EAAS3vC,GACpDrM,EAAQmpD,GAA2BpoE,EAAO,QAASi7D,EAAS3vC,KAE5D7L,EAAO4oD,GAAoBroE,EAAO,QAASk7D,EAAS5vC,GACpDrM,EAAQmpD,GAA2BpoE,EAAO,QAASk7D,EAAS5vC,IAEvD3H,GAAkBlE,EAAMR,EAAM,EAoB1B+hG,GAIqC38G,GAChD,CACEw8G,GACA9tD,GACAE,GACAE,GA7E6G8tD,CAC/GjhH,EACA7G,EACAmyB,KACW,IAAAtwB,EAAAmkG,EACL5B,EAAuCijB,GAA8BxgH,EAAO7G,GAClF,GAAmB,MAAfokG,EACF,OAAO,EAET,IAAMtiC,EAAUihD,GAAiCl8G,EAAO7G,GAClD+hE,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX8hE,GAA8B,MAAXC,EACrB,OAAO,EAET,IAIIz7C,EAAqCR,EAJnC7hB,EAAS2tB,GAAkB/qB,GAC3Bw8F,EAAuCzpC,GAAqB/yD,IAC1DgzD,WAAY0pC,GAAoBa,EAClCvqC,EAAiC/4D,GAAUyiG,GAAmBF,EAAmBE,EASvF,MAPe,eAAXt/F,GACFqiB,EAAO4oD,GAAoBroE,EAAO,QAASi7D,EAAS3vC,GACpDrM,EAAQmpD,GAA2BpoE,EAAO,QAASi7D,EAAS3vC,KAE5D7L,EAAO4oD,GAAoBroE,EAAO,QAASk7D,EAAS5vC,GACpDrM,EAAQmpD,GAA2BpoE,EAAO,QAASk7D,EAAS5vC,IAEL,QAAzDtwB,EAA2C,QAA3CmkG,EAAOx7E,GAAkBlE,EAAMR,GAAO,UAAK,IAAAkgF,EAAAA,EAAInsC,SAAU,IAAAh4D,EAAAA,EAAI,CAAC,EAqD5D+lH,GACAL,IAEFpkB,IAmCW4kB,GAI0B78G,GACrC,CAAC28G,GAAuBR,IACxB9iB,IAGWyjB,GAIoD98G,GAC/D,CApK2B+8G,CAC3BphH,EACA7G,EACAmyB,KAEA,IAAMluB,EAAS2tB,GAAkB/qB,GAC3Bi7D,EAAUihD,GAAiCl8G,EAAO7G,GAClD+hE,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX8hE,GAA8B,MAAXC,EAGvB,MAAe,eAAX99D,EACKggE,GAAkBp9D,EAAO,QAASk7D,EAAS5vC,GAE7C8xC,GAAkBp9D,EAAO,QAASi7D,EAAS3vC,EAAW,EAsJtCk1F,IACvBljB,IAGW+jB,GAKsCh9G,GACjD,CACE+gB,GACAsB,GA1DyBmvF,CAAC71G,EAA0B7G,EAAqBmyB,KAC3E,IAAM2vC,EAAUihD,GAAiCl8G,EAAO7G,GACxD,GAAe,MAAX8hE,EAGJ,OAAOoN,GAAoBroE,EAAO,QAASi7D,EAAS3vC,EAAW,EAGpC0qF,CAACh2G,EAA0B7G,EAAqBmyB,KAC3E,IAAM4vC,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX+hE,EAGJ,OAAOmN,GAAoBroE,EAAO,QAASk7D,EAAS5vC,EAAW,EAGxCyqF,CAAC/1G,EAA0B7G,EAAqBmyB,KACvE,IAAM2vC,EAAUihD,GAAiCl8G,EAAO7G,GACxD,GAAe,MAAX8hE,EAGJ,OAAOmN,GAA2BpoE,EAAO,QAASi7D,EAAS3vC,EAAW,EAG/C4qF,CAACl2G,EAA0B7G,EAAqBmyB,KACvE,IAAM4vC,EAAUmhD,GAAiCr8G,EAAO7G,GACxD,GAAe,MAAX+hE,EAGJ,OAAOkN,GAA2BpoE,EAAO,QAASk7D,EAAS5vC,EAAW,EAkCpE41F,GACAn2F,GACAwlC,GACAwwD,GACAI,GACAX,GA5Ncl0B,CAChB/0B,EACAg1B,EACA6M,EACA5M,IAC4CA,IA0N5C,CACEpsE,EACAkhG,EACA18F,EACAG,EACAqxF,EACAC,EACAtiC,EACA32E,EAAkBgN,EAElBuY,EACAW,EACAi6E,EACA/Q,KACgD,IALhD,UAAE18B,EAAS,eAAEK,EAAc,aAAEF,GAAc7lD,EAM3C,GACiB,MAAfmzF,GACO,MAAPxpB,GACe,MAAfutC,IACY,eAAXlkH,GAAsC,aAAXA,IACnB,MAATwnB,GACS,MAATG,GACc,MAAdqxF,GACc,MAAdC,GACY,MAAZ1zF,EATF,CAaA,IAEIo6C,GAFE,KAAEvgE,GAAS+gG,EASjB,GAAqB,OALnBxgC,EADU,MAARvgE,GAAgBA,EAAKjtB,OAAS,EAChBitB,EAEAszD,aAAS,EAATA,EAAW3+E,MAAMg/E,EAAgBF,EAAe,IAOlE,OC+oBG,SAA6BkkC,GA8BY,IA9BX,OACnC/2F,EACAmgG,aAAa,QAAE1+E,EAAS+gF,aAAc2hB,GAAkB,IACxDxtC,EAAG,SACHpxD,EAAQ,MACRiC,EAAK,MACLG,EAAK,WACLqxF,EAAU,WACVC,EAAU,YACV/yF,EAAW,cACXy5C,EAAa,OACb38C,EAAM,MACNosE,EAAK,cACLnM,EAAa,eACblwB,GAgBDgkC,EACOlxE,EAAyB,eAAX7lB,EAA0B2nB,EAAQH,EAEhDi7E,EAAuCv8E,EAAcL,EAAY1F,MAAMgD,SAAW,KAClFg5C,EAAYx2C,GAAkB,CAAEE,gBAChCu+F,EAAsCv+F,EAAY1F,MAAMrnC,IAAIqjF,GAElE,OAAOwD,EACJ7mF,KAAI,CAAC8jB,EAAgBjnB,KACpB,IAAIhF,EAAO0F,EAAkBmD,EAAGsc,EAAOC,EAAQgtG,EAE/C,GAAI78E,EAAa,CAEf,IAAMm+F,EAAmBn+F,EAAYvwC,EAAQo9E,GAC7C,GAAwB,MAApBsxD,EACF,OAAO,KAET1zI,EAAQyyC,GAAiBihG,EAAkB5hB,EAC7C,MACE9xH,EAAQ6wC,GAAkB5kB,EAAO6kB,GAE5BpwC,MAAMkH,QAAQ5H,KACjBA,EAAQ,CAACwrF,EAAWxrF,IAIxB,IAAM6xH,EAAeygB,GAAqBkB,EAAkBG,GAAvCrB,CAA4DtyI,EAAM,GAAIgF,GAE3F,GAAe,eAAXqqB,EAAyB,KAAAwpG,EACrB+a,EAAiB58F,EAAMxH,MAAMrnC,IAAInI,EAAM,IACvC6zI,EAAoB78F,EAAMxH,MAAMrnC,IAAInI,EAAM,IAChD,GAAsB,MAAlB4zI,GAA+C,MAArBC,EAC5B,OAAO,KAETnuI,EAAIqvC,GAAuB,CACzBrD,KAAMmF,EACN3F,MAAOm3F,EACPzzF,WACAvC,OAAQ2zD,EAAI3zD,OACZpmB,QACAjnB,UAEF6D,EAAuC,QAAtCgwH,EAAGgb,QAAAA,EAAqBD,SAAc,IAAA/a,EAAAA,OAAIv0H,EAC3C6gB,EAAQ6gF,EAAInvF,KACZ,IAAMi9H,EAAiBF,EAAiBC,EAIxC,GAHAzuH,EAAS0F,GAAMgpH,GAAkB,EAAIA,EACrC1hB,EAAa,CAAE1sH,EAAGmD,EAAGwpC,EAAOrb,IAAK7R,QAAOC,OAAQitB,EAAOjtB,QAEnD5Q,KAAK0F,IAAI23G,GAAgB,GAAKr9G,KAAK0F,IAAIkL,GAAU5Q,KAAK0F,IAAI23G,GAAe,CAC3E,IAAMlxD,EAAQ91C,GAASzF,GAAUysG,IAAiBr9G,KAAK0F,IAAI23G,GAAgBr9G,KAAK0F,IAAIkL,IAEpFvc,GAAK83D,EACLv7C,GAAUu7C,CACZ,CACF,KAAO,CACL,IAAMizE,EAAiB/8F,EAAMrH,MAAMrnC,IAAInI,EAAM,IACvC6zI,EAAoBh9F,EAAMrH,MAAMrnC,IAAInI,EAAM,IAChD,GAAsB,MAAlB4zI,GAA+C,MAArBC,EAC5B,OAAO,KAeT,GAbAnuI,EAAIkuI,EACJ/qI,EAAIksC,GAAuB,CACzBrD,KAAMsF,EACN9F,MAAOo3F,EACP1zF,WACAvC,OAAQ2zD,EAAI3zD,OACZpmB,QACAjnB,UAEFmgB,EAAQ0uH,EAAoBD,EAC5BxuH,EAAS4gF,EAAInvF,KACbu7G,EAAa,CAAE1sH,EAAG2sC,EAAOtb,KAAMluB,IAAGsc,MAAOktB,EAAOltB,MAAOC,UAEnD5Q,KAAK0F,IAAI23G,GAAgB,GAAKr9G,KAAK0F,IAAIiL,GAAS3Q,KAAK0F,IAAI23G,GAE3D1sG,GADc0F,GAAS1F,GAAS0sG,IAAiBr9G,KAAK0F,IAAI23G,GAAgBr9G,KAAK0F,IAAIiL,GAGvF,CAEA,OAAS,MAALzf,GAAkB,MAALmD,GAAsB,MAATsc,GAA2B,MAAVC,EACtC,KAG+BgI,GAAAA,GAAA,GAEnCnB,GAAK,IACRwnH,kBACA/tI,EACAmD,IACAsc,QACAC,SACAplB,MAAOu1C,EAAcv1C,EAAQA,EAAM,GACnCowB,QAASnE,EACTmmG,aACAtS,gBAAiB,CAAEp6G,EAAGA,EAAIyf,EAAQ,EAAGtc,EAAGA,EAAIuc,EAAS,GACrDktF,iBACImM,GAASA,EAAMz5G,IAAUy5G,EAAMz5G,GAAO6f,MAGrB,IAExBld,OAAOmH,QACZ,CDnxBWilI,CAAqB,CAC1B1kH,SACAmgG,cACAxpB,MACAsM,cAAeihC,EACf3+F,WACAiC,QACAG,QACAqxF,aACAC,aACA/yF,cACAy5C,gBACA38C,SACAosE,QACAr8B,kBA5BF,CA6BE,IE3TA4xD,GAAcA,CAAC/hH,EAA0BojB,IAAkDA,EAE3Fw9F,GAAiBA,CAAC5gH,EAA0BojB,EAA4BkI,IAC5EA,EAEW02F,GAIqB39G,GAChC,CAAC09G,GAAa3mD,GAAgCwlD,KAC9C,CACEx9F,EACA07E,EACAxzE,IAEOwzE,EACJppH,QAAOlE,GAAgB,QAAXA,EAAE+K,OACd7G,QAAOlE,GAAKA,EAAE4xC,UAAYA,IAC1B1tC,QAAOlE,GAAKA,EAAE85C,aAAeA,IAC7B51C,QAAOlE,IAAMA,EAAEg0C,SAIhBy8F,GAAyB59G,GAAe,CAAC29G,KAAuBnmB,GAC7DA,EAAQ3lH,KAAIq+E,GAAOA,EAAIp7D,OAoDnB+oH,GAIkC79G,GAC7C,CAACrE,GAASA,EAAO+hH,GAAanB,KAjBeuB,CAACniH,EAAOojB,EAASkI,KAC9D,IAAM82F,EAAYH,GAAuBjiH,EAAOojB,EAASkI,GACnD+2F,EAA8C,GAOpD,OANAD,EAAU9lH,SAAQgmH,IAChB,IAAMC,EAAalB,GAAoBrhH,EAAOsiH,EAAOh3F,OAAYj5C,GACjEkwI,SAAAA,EAAYjmH,SAAQ,CAACrH,EAAMliB,KACzBsvI,EAAWtvI,GA7BcyvI,EAC7BC,EACAC,KAEA,IAAKD,EACH,OAAOC,EAET,IAAKA,EACH,OAAOD,EAET,IAAMhvI,EAAI8O,KAAKkC,IAAIg+H,EAAMhvI,EAAGgvI,EAAMhvI,EAAIgvI,EAAMvvH,MAAOwvH,EAAMjvI,EAAGivI,EAAMjvI,EAAIivI,EAAMxvH,OACtEtc,EAAI2L,KAAKkC,IAAIg+H,EAAM7rI,EAAG6rI,EAAM7rI,EAAI6rI,EAAMtvH,OAAQuvH,EAAM9rI,EAAG8rI,EAAM9rI,EAAI8rI,EAAMvvH,QAK7E,MAAO,CAAE1f,IAAGmD,IAAGsc,MAJF3Q,KAAKlP,IAAIovI,EAAMhvI,EAAGgvI,EAAMhvI,EAAIgvI,EAAMvvH,MAAOwvH,EAAMjvI,EAAGivI,EAAMjvI,EAAIivI,EAAMxvH,OAE1Dzf,EAEC0f,OAHT5Q,KAAKlP,IAAIovI,EAAM7rI,EAAG6rI,EAAM7rI,EAAI6rI,EAAMtvH,OAAQuvH,EAAM9rI,EAAG8rI,EAAM9rI,EAAI8rI,EAAMvvH,QAE1Dvc,EACQ,EAaN4rI,CAAgBH,EAAWtvI,GAAQkiB,EAAK,GAC5D,IAEGotH,CAAU,I,wOClCnB,IAAMM,IAAkB1uH,EAAAA,EAAAA,oBAA4C5hB,GAoBvDuwI,GAAuB,CAClCt9E,OAAQ,GAGJu9E,GAAgBA,CAACz/F,EAA4BrwC,IAC1C,gCAAP1B,OAAuC+xC,EAAO,KAAA/xC,OAAI0B,GAYvC+vI,GAAoB9nH,IAAwD,IAAvD,MAAEjoB,GAAgDioB,EAAtCE,E,6WAAIxH,CAAAsH,EAAArH,IAC1CovH,EAV+BhwI,KACrC,IAAMiwI,GAAkB7uH,EAAAA,EAAAA,YAAWwuH,IACnC,GAAuB,MAAnBK,EAAJ,CAGA,IAAM,QAAE5/F,GAAY4/F,EACpB,MAAO,QAAP3xI,OAAewxI,GAAcz/F,EAASrwC,GAAM,IAF5C,CAE4C,EAIxBkwI,CAAuBlwI,GAC3C,OAAO0D,EAAAA,cAACsd,EAAKD,GAAA,CAACT,UAAU,2BAA2B4iG,SAAU8sB,GAAiB7nH,GAAQ,EAOlFgoH,GAAmB94G,IAA6E,IAA5E,QAAEgZ,EAAO,OAAEkiB,GAA4Dl7B,EACzFkhB,EAAa1E,KACbu8F,EAAYrjH,IAAeE,GAASkiH,GAAiBliH,EAAOojB,EAASkI,KAC3E,OAAiB,MAAb63F,GAA0C,IAArBA,EAAU5zI,OAC1B,KAOPkH,EAAAA,cAAA,YACG0sI,EAAUjtI,KAAI,CAAC69F,EAAKhhG,KACnB,GAAW,MAAPghG,EACF,OAAO,KAET,IAAM4hB,EAAaktB,GAAcz/F,EAASrwC,GAC1C,OACE0D,EAAAA,cAAA,YAAUtB,IAAKwgH,EAAYx8F,GAAIw8F,GAC7Bl/G,EAAAA,cAACkwD,GAAS,CACRzO,mBAAmB,EACnBuO,yBAAyB,EACzBhzD,EAAGsgG,EAAItgG,EACPmD,EAAGm9F,EAAIn9F,EACPsc,MAAO6gF,EAAI7gF,MACXC,OAAQ4gF,EAAI5gF,OACZmyC,OAAQA,IAED,IAGV,EAIL89E,GAAgBxwH,IACpB,IAAMywH,EAAkB1yB,GAAY,qBAAsBnuE,GAAqB5vB,EAAMwwB,WAC/E,SAAEnwB,EAAQ,OAAEqyC,GAAW3oC,GAAoB/J,EAAOgwH,IAElD7yI,GAA4BiH,EAAAA,EAAAA,UAChC,MAA2BosC,QAASigG,EAAiB/9E,YACrD,CAAC+9E,EAAiB/9E,IAEpB,OACE7uD,EAAAA,cAACksI,GAAgB77F,SAAQ,CAAC/4C,MAAOgC,GAC/B0G,EAAAA,cAACysI,GAAgB,CAAC9/F,QAASigG,EAAiB/9E,OAAQA,IACnDryC,EACwB,EAQlBqwH,GAAyC7sI,EAAAA,KAAW2sI,GAAcjK,I,6tDF4Q/E,IAAMoK,GAAmC3wH,IACvC,IAAM,QAAEisB,EAAO,KAAE7tC,EAAI,KAAEgtB,EAAI,WAAE8uF,EAAU,KAAEtnE,GAAS5yB,EAClD,MAAO,CACL,CACEiL,SAAU2nB,EACV3G,UACAtiC,KAAMuwG,EACNlvF,MAAOI,EACPjwB,MAAOq2C,GAAmBpzC,EAAM6tC,GAChC1gB,QAASvL,GAEZ,EAGG4wH,GAA6B/sI,EAAAA,MACjCukB,IAaM,IAbL,QACC6jB,EAAO,OACP5gB,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,KACJyQ,EAAI,YACJi3D,EAAW,GACX/zF,GAID6B,EACOmpB,EAAoD,CACxDypD,uBAAmBv7F,EACnBq6F,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACAqvD,aAAS77F,EACTrB,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOI,EACPi4B,OACAuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAWlF,SAASs/F,GAAc7wH,GACrB,IAAMy2E,EAAcvpE,GAAe4wE,KAE7B,KAAEl0E,EAAI,QAAEqiB,EAASshF,WAAYujB,EAAmB,iBAAEC,GAAqB/wH,GAG3E0gG,aAAcxD,EACd2D,aAAczD,EACduD,QAASC,GAEPmwB,EADCjwB,EAAmBhgG,GACpBiwH,EAAgBhwH,IAGdggG,EAA0B9D,GAA0BC,EAAuBjxE,EAAS8kG,EAAiBxqH,IAErGy6F,EAA0B7D,GAA0BC,GAEpD6D,EAAqB5D,GAA0BuD,EAAsB30E,EAAS8kG,EAAiBxqH,IACrG,IAAKuqH,GAA+B,MAARlnH,EAC1B,OAAO,KAGT,IAAM2kG,EAAkBzuG,EAAiCgxH,GAEzD,OACEjtI,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQkrC,GAAqBmjB,EAAqBvvD,GAAgBE,gBAC5E73D,EAAKtmB,KAAI,CAAC8jB,EAAyBxoB,KAClC,IAAM,MAAEzD,EAAOoyH,WAAYyjB,EAAuB,gBAAE/1B,GAA6B7zF,EAATkB,EAAIxH,GAAKsG,EAAKiuC,IAEtF,IAAK27E,EACH,OAAO,KAIT,IAAMtwB,EAAeK,EAAwB35F,EAAOxoB,GAE9CiiH,EAAeG,EAAwB55F,EAAOxoB,GAE9C+hH,EAAUM,EAAmB75F,EAAOxoB,GAEpCqyI,EAAoC1oH,GAAAA,GAAAA,GAAAA,GAAAA,GAAA,CACxCkE,OAAQqkH,EACRl/E,SAAUzvD,OAAOvD,KAAO63F,GACrBnuE,GAAI,IAEP8C,KAAM,QACH4lH,GACAziB,GACA5kG,GAAmBm3F,EAAqB15F,EAAOxoB,IAAE,IACpD8hH,eACAG,eACAF,UACA10E,UACA9rC,MAAOvB,EACP6hB,UAAW,sCAGb,OAAO5c,EAAAA,cAAC2pI,GAAYtsH,GAAA,CAAC3e,IAAG,kBAAA9D,OAAoBG,IAASqyI,GAAqB,IAIlF,CAMA,SAASC,GAAoB15G,GAQ1B,IAR2B,WAC5BooF,EAAU,SACVv/F,EAAQ,MACR8wH,GAKD35G,EACO6pF,EAAuE8vB,aAAK,EAALA,EAAO7tI,KACjF8jB,IACC,IAAM5G,EAA4B,CAChC3f,EAAGumB,EAAMvmB,EACTmD,EAAGojB,EAAMpjB,EACTsc,MAAO8G,EAAM9G,MACbg3B,WAAYlwB,EAAM9G,MAClB+2B,WAAYjwB,EAAM9G,MAClBC,OAAQ6G,EAAM7G,QAEhB,OAAAgI,GAAAA,GAAA,GACK/H,GAAO,IACVrlB,MAAOisB,EAAMjsB,MACbowB,QAASnE,EAAMmE,QACfkiF,cAAermF,EAAMqmF,cACrBjtF,UACA4K,KAAMhE,EAAMgE,MAAI,IAKtB,OACEvnB,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOykH,EAAayB,OAAmB5hH,GACvE4gB,EAGP,CAEA,SAAS+wH,GAA4BpxH,GAQnC,IAAM,MAAEqF,EAAK,UAAEw8D,EAAS,UAAEghC,EAAS,MAAEz7F,EAAK,MAAEjnB,EAAK,QAAE8rC,GAAYjsB,EACzDy2E,EAAcvpE,GAAe4wE,IAC7BjG,EAAgB3qE,GAAe8wE,IAU/BpsC,EACJiwB,GAAa1/E,OAAOhC,KAAWs2F,IAAiC,MAAjBoB,GAAyB5rD,IAAY4rD,GAChFprE,EAASmlC,EAAWiwB,EAAYx8D,EACtC,OAAIusC,EAEA/tD,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQlB,GAAgBM,WACnCh+E,EAAAA,cAACqsI,GAAiB,CAAC/vI,MAAOA,GACxB0D,EAAAA,cAAC2pI,GAAYtsH,GAAA,GACP2hG,EAAS,CACbzkH,KAAM+D,OAAO0gH,EAAUzkH,OACnBgpB,EAAK,CACTwqC,SAAUA,EACVnlC,OAAQA,EACRtsB,MAAOA,EACP8rC,QAASA,OAOjBpoC,EAAAA,cAAC2pI,GAAYtsH,GAAA,GACP2hG,EAAS,CACbzkH,KAAM+D,OAAO0gH,EAAUzkH,OACnBgpB,EAAK,CACTwqC,SAAUA,EACVnlC,OAAQA,EACRtsB,MAAOA,EACP8rC,QAASA,IAGf,CAEA,SAASolG,GAAwBrxH,GAO/B,IAAM,MAAEqF,EAAK,UAAEw9F,EAAS,MAAEz7F,EAAK,MAAEjnB,EAAK,QAAE8rC,GAAYjsB,EACpD,OACEnc,EAAAA,cAAC2pI,GAAYtsH,GAAA,GACP2hG,EAAS,CACbzkH,KAAM+D,OAAO0gH,EAAUzkH,OACnBgpB,EAAK,CACTwqC,UAAU,EACVnlC,OAAQpH,EACRllB,MAAOA,EACP8rC,QAASA,IAGf,CAEA,SAASqlG,GAAalhG,GAMnB,IAAA6vF,GANoB,KACrBr2G,EAAI,MACJ5J,GAIDowB,EACCkB,EAAyD,QAAzD2uF,EAA6BpgH,EAAsBG,UAAM,IAAAigH,EAAAA,EAAI,CAAC,GAAxD,GAAE15G,GAAkB+qB,EAAXuxE,EAAS/hG,GAAAwwB,EAAA6lE,KAClB,MAAE9xF,EAAK,QAAE4mB,EAAO,UAAE41C,GAAc7hE,GAGpC0gG,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,GAEZp9F,EADC8gG,EAAmBhgG,GACpBd,EAAKuiG,IAGHxB,EAA0B9D,GAA0BC,EAAuBjxE,EAAS1lB,GAEpFy6F,EAA0B7D,GAA0BC,GAEpD6D,EAAqB5D,GAA0BuD,EAAsB30E,EAAS1lB,GAEpF,OAAKqD,EAKH/lB,EAAAA,cAAAA,EAAAA,SAAA,KACG+lB,EAAKtmB,KAAI,CAAC8jB,EAAyBxoB,IAEhCiF,EAAAA,cAACqsI,GAAiBhvH,GAAA,CAChB/gB,MAAOvB,EAEP2D,IAAG,aAAA9D,OAAe2oB,aAAK,EAALA,EAAOvmB,EAAC,KAAApC,OAAI2oB,aAAK,EAALA,EAAOpjB,EAAC,KAAAvF,OAAI2oB,aAAK,EAALA,EAAOjsB,MAAK,KAAAsD,OAAIG,GAC1D6hB,UAAU,0BACNkJ,GAAmBm3F,EAAqB15F,EAAOxoB,GAAE,CAErD8hH,aAAcK,EAAwB35F,EAAOxoB,GAE7CiiH,aAAcG,EAAwB55F,EAAOxoB,GAE7C+hH,QAASM,EAAmB75F,EAAOxoB,KAElCijF,EACCh+E,EAAAA,cAACutI,GAA2B,CAC1B/rH,MAAOA,EACPw8D,UAAWA,EACXghC,UAAWA,EACXz7F,MAAOA,EACPjnB,MAAOvB,EACPqtC,QAASA,IAYXpoC,EAAAA,cAACwtI,GAAuB,CAAChsH,MAAOA,EAAOw9F,UAAWA,EAAWz7F,MAAOA,EAAOjnB,MAAOvB,EAAGqtC,QAASA,QAvCjG,IA8CX,CAEA,SAASslG,GAAuBn7E,GAM7B,IAN8B,MAC/Bp2C,EAAK,sBACLwxH,GAIDp7E,GACO,KACJxsC,EAAI,OACJY,EAAM,kBACN86B,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,eACf0M,EAAc,iBACdC,GACE/xC,EACEkuG,EAAWsjB,EAAsB3sI,QACjCwsD,EAAckB,GAAevyC,EAAO,kBAEnC0hG,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GAEzC4iG,GAAc8B,EAEdE,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IACJ,OACEluD,EAAAA,cAACqtI,GAAoB,CAACtxB,WAAYA,EAAYuxB,MAAOvnH,GACnD/lB,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR0M,eAAgB8vD,EAChB7vD,iBAAkB8vD,EAClBt/G,IAAK8uD,IAEH34C,IACA,IAAMqpG,EACE,IAANrpG,EACIkR,EACAA,aAAI,EAAJA,EAAMtmB,KAAI,CAAC8jB,EAAyBjnB,KAClC,IAAMixC,EAAO88E,GAAYA,EAAS/tH,GAElC,GAAIixC,EACF,OAAA7oB,GAAAA,GAAA,GACKnB,GAAK,IACRvmB,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAChC1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,GAChC4H,MAAOyG,GAAYqqB,EAAK9wB,MAAO8G,EAAM9G,MAAO5H,GAC5C6H,OAAQwG,GAAYqqB,EAAK7wB,OAAQ6G,EAAM7G,OAAQ7H,KAInD,GAAe,eAAX8R,EAAyB,CAC3B,IAAMjK,EAASwG,GAAY,EAAGK,EAAM7G,OAAQ7H,GACtC1U,EAAI+iB,GAAYK,EAAMwnH,gBAAiBxnH,EAAMpjB,EAAG0U,GAEtD,OAAA6P,GAAAA,GAAA,GACKnB,GAAK,IACRpjB,IACAuc,UAEJ,CAEA,IAAMrL,EAAI6R,GAAY,EAAGK,EAAM9G,MAAO5H,GAChC7X,EAAIkmB,GAAYK,EAAMwnH,gBAAiBxnH,EAAMvmB,EAAG6X,GAEtD,OAAA6P,GAAAA,GAAA,GAAYnB,GAAK,IAAE9G,MAAOpL,EAAGrU,KAAC,IAOtC,OAJI6X,EAAI,IAEN84H,EAAsB3sI,QAAUk9G,QAAAA,EAAY,MAE9B,MAAZA,EACK,KAGPl+G,EAAAA,cAACsd,EAAK,KACJtd,EAAAA,cAACytI,GAAa,CAACtxH,MAAOA,EAAO4J,KAAMm4F,IAC7B,IAIdl+G,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QACpCva,EAAMK,SAGb,CAEA,SAASoxH,GAAiBzxH,GACxB,IAAMwxH,GAAwBttI,EAAAA,EAAAA,QAA+C,MAE7E,OAAOL,EAAAA,cAAC0tI,GAAuB,CAACC,sBAAuBA,EAAuBxxH,MAAOA,GACvF,CAEA,IAAM8uH,GAA8B,EAE9BrG,GAA2EA,CAC/EppB,EACApzE,KAMA,IAAM9wC,EAAQU,MAAMkH,QAAQs8G,EAAUlkH,OAASkkH,EAAUlkH,MAAM,GAAKkkH,EAAUlkH,MAC9E,MAAO,CACL0F,EAAGw+G,EAAUx+G,EACbmD,EAAGq7G,EAAUr7G,EACb7I,QAEAytI,SAAU58F,GAAkBqzE,EAAWpzE,GACxC,EAGH,MAAMylG,WAAqBvtF,EAAAA,cACzB72C,MAAAA,GACE,IAAM,KAAEslC,EAAI,KAAEhpB,EAAI,QAAEqiB,EAAO,UAAExrB,EAAS,QAAE4nE,EAAO,QAAEC,EAAO,SAAEw6B,EAAQ,WAAEyK,EAAU,GAAEhnG,GAAO5rB,KAAKqlB,MAC5F,GAAI4yB,GAAgB,MAARhpB,EACV,OAAO,KAGT,IAAM3I,EAAa3B,EAAK,eAAgBmB,GAClCsiG,EAAax8F,EAEnB,OACE1iB,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,EAAYsF,GAAIA,GAC/Bu8F,GACCj/G,EAAAA,cAAA,YACEA,EAAAA,cAACm/H,GAAqB,CAACjgB,WAAYA,EAAY16B,QAASA,EAASC,QAASA,KAG9EzkF,EAAAA,cAACsd,EAAK,CAACV,UAAU,0BAA0B4iG,SAAUP,EAAW,iBAAHrkH,OAAoBskH,EAAU,UAAMtjH,GAC/FoE,EAAAA,cAACgtI,GAAa,CAACjnH,KAAMA,EAAMqiB,QAASA,EAASshF,WAAYA,EAAYwjB,iBAAkBp2I,KAAKqlB,QAC5Fnc,EAAAA,cAAC4tI,GAAqB92I,KAAKqlB,QAInC,EAGK,IAAM2xH,GAAkB,CAC7B9vD,WAAW,EACX/tB,eAAgB,EAChB3O,kBAAmB,IACnBC,gBAAiB,OACjBmoE,YAAY,EACZ36E,MAAM,EACN0S,kBAAmB,OACnB/qB,OAAO,EACP2/E,WAAY,OACZ8S,aAAc8hB,GACdzmD,QAAS,EACTC,QAAS,EACT7F,OAAQlB,GAAgBI,KAK1B,SAASiwD,GAAQ5xH,GACf,IA4BIsiH,GA5BE,QACJj6C,EAAO,QACPC,EAAO,KACP11C,EAAI,WACJsnE,EAAU,aACV8S,EAAY,UACZnrC,EAAS,eACT/tB,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,kBACfE,GACEtlC,GAEE,SAAE8iG,GAAa6f,GAAat6C,EAASC,GACrC99D,EAAS4tB,KAETM,EAAa1E,KAEb4lE,EAAQ4B,GAAcx7F,EAAMK,SAAUwmF,IAEtCsqC,EAAqDjkH,IAAeE,GACxEqhH,GAAoBrhH,EAAOpN,EAAMuG,GAAImyB,EAAYkhE,KAGnD,GAAe,aAAXpvF,GAAoC,eAAXA,EAC3B,OAAO,KAIT,IAAMqnH,EAAiBV,aAAK,EAALA,EAAQ,GAO/B,OALE7O,EADoB,MAAlBuP,GAAmD,MAAzBA,EAAetxH,QAA0C,MAAxBsxH,EAAevxH,MAC3D,EAEW,aAAXkK,EAAwBqnH,EAAetxH,OAAS,EAAIsxH,EAAevxH,MAAQ,EAI5Fzc,EAAAA,cAAC2+H,GAAkB,CACjBn6C,QAASA,EACTC,QAASA,EACT1+D,KAAMunH,EACN9O,mBAAoBoG,GACpBnG,eAAgBA,GAEhBz+H,EAAAA,cAAC6tI,GAAYxwH,GAAA,GACPlB,EAAK,CACTwK,OAAQA,EACRs4F,SAAUA,EACVl5F,KAAMunH,EACN9oD,QAASA,EACTC,QAASA,EACT11C,KAAMA,EACNsnE,WAAYA,EACZ8S,aAAcA,EACdnrC,UAAWA,EACX/tB,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,EACjBE,kBAAmBA,KAI3B,CAwIA,SAASwsF,GAAM3lH,GACb,IEjhCyB4lH,EACnBC,EFghCAhyH,EAAQ+J,GAAoBoC,EAAcwlH,IAE1CnhG,GEnhCmBuhG,EFmhCE/xH,EAAMwwB,QEjhCZ,OADfwhG,GAAgBzwH,EAAAA,EAAAA,YAAWwuH,KAExBiC,EAAcxhG,QAEH,MAAhBuhG,EAGGniG,GAAqBmiG,QAH5B,GF+gCMr5F,EAAa1E,KAEnB,OACEnwC,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,QACzC4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC45G,GAAgB,CAACC,cAAeizB,GAAgC3wH,KACjEnc,EAAAA,cAAC+sI,GAA0B,CACzB3kG,QAASjsB,EAAMisB,QACf5gB,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZyQ,KAAMrjC,EAAMqjC,KACZi3D,YAAat6F,EAAMs6F,YACnB/zF,GAAIA,IAEN1iB,EAAAA,cAACi7G,GAAyB,CACxBn1G,KAAK,MACL4c,GAAIA,EAEJqD,UAAMnqB,EACN4oF,QAASroE,EAAMqoE,QACfC,QAAStoE,EAAMsoE,QACfC,QAAS,EACTt8C,QAASjsB,EAAMisB,QACfuE,QAASA,EACToC,KAAM5yB,EAAM4yB,KACZ8tC,QAAS1gE,EAAM0gE,QACfssC,aAAchtG,EAAMgtG,aACpB5sC,WAAYpgE,EAAMogE,WAClB1nC,WAAYA,IAEd70C,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAAC+tI,GAAO1wH,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,QAMpC,CASO,IAAM0rH,GAA4BpuI,EAAAA,KAAWiuI,GAAOvL,IAC3D0L,GAAI5lI,YAAc,M,wPGnnCX,SAAS6lI,GAAa9pH,GAON,IAPO,OAC5BqE,EAAM,SACNmlC,GAKmBxpC,EAJhBpI,E,6WAAKc,CAAAsH,EAAArH,IAKR,MAAsB,iBAAX0L,EACF5oB,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACuL,OAAQ5oB,EAAAA,cAACskB,GAAOjH,GAAA,CAACvX,KAAM8iB,GAAYzM,IAAW4xC,SAAUA,EAAU6qD,UAAU,WAAcz8F,IAGnGnc,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACuL,OAAQA,EAAQmlC,SAAUA,EAAU6qD,UAAU,WAAcz8F,GAC5E,CCPA,IA0EMmyH,GAM6B1gH,GACjC,CAAC+2D,GAlCmB4pD,CACpBztD,EACA0+C,EACAH,EACAmP,EACA9rH,IACGA,IA6BH,CAAC0hE,EAAgB1hE,IACR0hE,EAAenlF,QAAOuE,GAAsB,YAAdA,EAAKsC,OAAoBwd,MAAK9f,GAAQA,EAAKkf,KAAOA,MAI9E+rH,GAQsC7gH,GACjD,CAhC+B8gH,CAC/BnlH,EACAi2G,EACAH,EACAmP,EACA14B,EACAiS,EACAlzE,IACmB8kC,GAAmDpwD,EAAO3tB,EAAWA,EAAWi5C,GAxExEuqF,CAC3B71G,EACAi7D,EACA66C,EACAmP,EACA14B,EACAiS,EACAlzE,IACG+8C,GAAoBroE,EAAO,QAASi7D,EAAS3vC,GAEzByqF,CACvB/1G,EACAi7D,EACA66C,EACAmP,EACA14B,EACAiS,EACAlzE,IACG88C,GAA2BpoE,EAAO,QAASi7D,EAAS3vC,GAE5B0qF,CAC3Bh2G,EACAi2G,EACA/6C,EACA+pD,EACA14B,EACAiS,EACAlzE,IACG+8C,GAAoBroE,EAAO,QAASk7D,EAAS5vC,GAEzB4qF,CACvBl2G,EACAi2G,EACA/6C,EACA+pD,EACA14B,EACAiS,EACAlzE,IACG88C,GAA2BpoE,EAAO,QAASk7D,EAAS5vC,GAErC85F,CAClBplH,EACAi2G,EACAH,EACA36C,IAC+BoN,GAAqBvoE,EAAO,QAASm7D,GAAS,GA0D3E4pD,GAhDcz4B,CAChB/0B,EACA0+C,EACAH,EACAmP,EACA14B,EACAC,IAC4CA,IA4C5C,CAAAxxF,EAEE4pB,EACAwxF,EACArxF,EACAsxF,EACA57C,EACA4qD,EACA74B,KACgD,IAI5CzvB,GAZJ,UAAEjN,EAAS,eAAEK,EAAc,aAAEF,GAA8Bj1D,EAS3D,GAAuB,MAAnBqqH,IAUe,OALjBtoD,EAD2B,OAAzBsoD,aAAe,EAAfA,EAAiB7oH,OAAgB6oH,EAAgB7oH,KAAKjtB,OAAS,EACjD81I,EAAgB7oH,KAEhBszD,aAAS,EAATA,EAAW3+E,MAAMg/E,EAAgBF,EAAe,KAIvD,MAATrrC,GACS,MAATG,GACc,MAAdqxF,GACc,MAAdC,GACuB,KAAvBD,aAAU,EAAVA,EAAY7mI,SACW,KAAvB8mI,aAAU,EAAVA,EAAY9mI,SAId,OC8fG,SAA6By5D,GAkBA,IAlBC,cACnC+zB,EAAa,MACbn4C,EAAK,MACLG,EAAK,MACL01C,EAAK,gBACL4qD,EAAe,WACfjP,EAAU,WACVC,EAAU,MACV7pB,GAUDxjD,EACOs8E,EAAerrH,GAAU2qB,EAAM/F,SAAWwmG,EAAgBxmG,QAAU+F,EAAM/F,QAC1E0mG,EAAetrH,GAAU8qB,EAAMlG,SAAWwmG,EAAgBxmG,QAAUkG,EAAMlG,QAC1E2mG,EAAe/qD,GAASA,EAAM57C,QAC9B4mG,EAAgBhrD,EAAQA,EAAMt4E,MAAQo4E,GAAcp4E,MACpDujI,EAAWD,GAAiBA,EAAc,GAC1CE,EAAY/gG,EAAMrH,MAAM4C,UAAYyE,EAAMrH,MAAM4C,YAAc,EAC9DylG,EAAY7gG,EAAMxH,MAAM4C,UAAY4E,EAAMxH,MAAM4C,YAAc,EACpE,OAAO48C,EAAc7mF,KAAI,CAAC8jB,EAAOjnB,KAC/B,IAAMU,EAAImrC,GAAkB5kB,EAAOsrH,GAC7B1uI,EAAIgoC,GAAkB5kB,EAAOurH,GAC7Bp6H,GAAM8O,GAAUurH,IAAiB5mG,GAAkB5kB,EAAOwrH,IAAkB,IAE5E93C,EAA6C,CACjD,CACE18F,KAAMipB,GAAU2qB,EAAM/F,SAAWwmG,EAAgBr0I,KAAO4zC,EAAM5zC,MAAQ+D,OAAO6vC,EAAM/F,SACnFoX,KAAMrR,EAAMqR,MAAQ,GAEpBloD,MAAO0F,EACP0qB,QAASnE,EACT6kB,QAASymG,EACT/oI,KAAM8oI,EAAgBn4B,aAExB,CACEl8G,KAAMipB,GAAU8qB,EAAMlG,SAAWwmG,EAAgBr0I,KAAO+zC,EAAM/zC,MAAQ+D,OAAOgwC,EAAMlG,SACnFoX,KAAMlR,EAAMkR,MAAQ,GAEpBloD,MAAO6I,EACPunB,QAASnE,EACT6kB,QAAS0mG,EACThpI,KAAM8oI,EAAgBn4B,cAIhB,MAAN/hG,GAAsB,MAATsvE,GACfiT,EAAel9F,KAAK,CAElBQ,KAAMypF,EAAMzpF,MAAQypF,EAAM57C,QAC1BoX,KAAMwkC,EAAMxkC,MAAQ,GAEpBloD,MAAOod,EACPgT,QAASnE,EACT6kB,QAAS2mG,EACTjpI,KAAM8oI,EAAgBn4B,cAI1B,IAAM7xF,EAAoBqnB,GAAwB,CAChDjD,KAAMmF,EACN3F,MAAOm3F,EACPzzF,SAAUgjG,EACV3rH,QACAjnB,QACA8rC,QAASymG,IAELhqH,EAAKonB,GAAwB,CACjCjD,KAAMsF,EACN9F,MAAOo3F,EACP1zF,SAAUijG,EACV5rH,QACAjnB,QACA8rC,QAAS0mG,IAEL3gI,EAAa,MAANuG,GAAsB,MAATsvE,EAAgBA,EAAMl9C,MAAMrnC,IAAIiV,GAAKu6H,EACzDpgF,EAAiB,MAAR1gD,EAAe,EAAIrC,KAAK8I,KAAK9I,KAAKlP,IAAIuR,EAAM,GAAKrC,KAAKiS,IAErE,OAAA2G,GAAAA,GAAA,GACKnB,GAAK,IACRqB,KACAC,KACA7nB,EAAS,MAAN4nB,OAAahpB,EAAYgpB,EAAKiqC,EACjC1uD,EAAS,MAAN0kB,OAAajpB,EAAYipB,EAAKgqC,EACjCpyC,MAAO,EAAIoyC,EACXnyC,OAAQ,EAAImyC,EACZ1gD,OACAsgB,KAAM,CAAEzxB,IAAGmD,IAAGuU,KACduiF,iBACAmgB,gBAAiB,CAAEp6G,EAAG4nB,EAAIzkB,EAAG0kB,GAC7B6C,QAASnE,GACLwyF,GAASA,EAAMz5G,IAAUy5G,EAAMz5G,GAAO6f,MAAM,GAGtD,CDlmBWizH,CAAqB,CAC1B9oD,gBACAn4C,QACAG,QACA01C,QACA4qD,kBACAjP,aACAC,aACA7pB,SACA,I,yyDCiMN,IAAMs5B,GAAwClzH,IAC5C,IAAM,QAAEisB,EAAO,KAAE7tC,EAAI,KAAEgtB,EAAI,WAAE8uF,EAAU,KAAEtnE,GAAS5yB,EAClD,MAAO,CACL,CACEiL,SAAU2nB,EACV3G,UACAtiC,KAAMuwG,EACNlvF,MAAOI,EACPjwB,MAAOq2C,GAAmBpzC,EAAM6tC,GAChC1gB,QAASvL,GAEZ,EAeGmzH,GAAiCtvI,EAAAA,MACrCukB,IAUkD,IAVjD,QACC6jB,EAAO,OACP8e,EAAM,OACN1/B,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,YACJ0nE,EAAW,GACX/zF,GAC2C6B,EACrCmpB,EAAoD,CACxDypD,kBAAmBjwC,aAAM,EAANA,EAAQznD,KAAK4Y,GAAwBA,EAAE4+E,iBAC1DhB,YAAa35F,IAAK,IAAAizI,EAAA,OAAIroF,SAAuB,QAAjBqoF,EAANroF,EAASvnD,OAAOrD,WAAO,IAAAizI,OAAA,EAAvBA,EAAyBn4B,eAAe,EAC9D1pF,SAAU,CACRlG,SACAF,cACAC,OACAkwE,aAAS77F,EACTwsC,UACA7tC,KAAMozC,GAAmBpzC,EAAM6tC,GAC/B2G,OACAjpC,KAAM2wG,EACNtvF,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAUlF,SAAS8hG,GAAW77G,GAAkG,IAAjG,OAAEuzB,EAAM,MAAE/qC,GAAqFwX,GAC5G,KAAEoxB,EAAI,SAAE0qF,EAAQ,cAAEC,GAAkBvzH,EAE1C,IAAK4oC,EACH,OAAO,KAGT,IAEI4qF,EAA+CzT,EAF7C0T,EAAe5zH,EAAsBG,GACrC0zH,EAAkB5zH,EAAiC8oC,GAGzD,GAAiB,UAAb0qF,EACFE,EAAazoF,EAAOznD,KAAI8jB,IAAK,IAAAusH,EAAAC,EAAA,MAAK,CAAE/yI,EAAW,QAAV8yI,EAAEvsH,EAAMqB,UAAE,IAAAkrH,EAAAA,EAAI,KAAM3vI,EAAW,QAAV4vI,EAAExsH,EAAMsB,UAAE,IAAAkrH,EAAAA,EAAI,KAAM,SACzE,GAAiB,YAAbN,EAAwB,CACjC,IAAM,KAAEO,EAAI,KAAEC,EAAI,EAAErsI,EAAC,EAAEC,G/SzSSkiB,KAWlC,IAVA,IAAMtqB,EAAMsqB,EAAKjtB,OACbo3I,EAAO,EACPC,EAAO,EACPC,EAAQ,EACRC,EAAQ,EACRL,EAAOxkI,IACPykI,GAAO,IACPK,EAAW,EACXC,EAAW,EAENx1I,EAAI,EAAGA,EAAIU,EAAKV,IAAK,KAAAy1I,EAAAC,EAI5BP,GAHAI,GAAkB,QAAPE,EAAAzqH,EAAKhrB,UAAE,IAAAy1I,OAAA,EAAPA,EAAS5rH,KAAM,EAI1BurH,GAHAI,GAAkB,QAAPE,EAAA1qH,EAAKhrB,UAAE,IAAA01I,OAAA,EAAPA,EAAS5rH,KAAM,EAI1BurH,GAASE,EAAWC,EACpBF,GAASC,EAAWA,EACpBN,EAAOlkI,KAAKkC,IAAIgiI,EAAMM,GACtBL,EAAOnkI,KAAKlP,IAAIqzI,EAAMK,EACxB,CAEA,IAAM1sI,EAAInI,EAAM40I,GAAUH,EAAOA,GAAQz0I,EAAM20I,EAAQF,EAAOC,IAAS10I,EAAM40I,EAAQH,EAAOA,GAAQ,EAEpG,MAAO,CACLF,OACAC,OACArsI,IACAC,GAAIssI,EAAOvsI,EAAIssI,GAAQz0I,EACxB,E+S2Q8Bi1I,CAAoBxpF,GAC3CypF,EAAa3zI,GAAc4G,EAAI5G,EAAI6G,EACzC8rI,EAAa,CACX,CAAE3yI,EAAGgzI,EAAM7vI,EAAGwwI,EAAUX,IACxB,CAAEhzI,EAAGizI,EAAM9vI,EAAGwwI,EAAUV,IAE5B,CAEA,IAAM3zB,EAAqB53F,GAAAA,GAAAA,GAAA,GACtBkrH,GAAY,IAEfroH,KAAM,OAENC,OAAQooH,GAAgBA,EAAaroH,MAClCsoH,GAAe,IAElB3oF,OAAQyoF,IAWV,OAPEzT,EADEl8H,EAAAA,eAAqB+kD,GACZ/kD,EAAAA,aAAmB+kD,EAAau3D,GAClB,mBAATv3D,EACLA,EAAKu3D,GAELt8G,EAAAA,cAAC4nD,GAAKvqC,GAAA,GAAKi/F,EAAS,CAAEx2G,KAAM4pI,KAIvC1vI,EAAAA,cAACsd,EAAK,CAACV,UAAU,wBAAwBle,IAAI,yBAC1Cw9H,EAGP,CAEA,SAAS0U,GAAwBrkG,GAQ9B,IAR+B,WAChCwvE,EAAU,OACV70D,EAAM,SACN1qC,GAKD+vB,EACOskG,EAAen9F,KACf8pE,GAA2Dj9G,EAAAA,EAAAA,UAAQ,IAChE2mD,aAAM,EAANA,EAAQznD,KAAKosC,IAAmC,IAAAu3F,EAAAC,EAC/C1mH,EAA4B,CAKhC3f,EAAU,QAATomI,EAAEv3F,EAAM7uC,SAAC,IAAAomI,EAAAA,EAAI,EAKdjjI,EAAU,QAATkjI,EAAEx3F,EAAM1rC,SAAC,IAAAkjI,EAAAA,EAAI,EACd5mH,MAAOovB,EAAMpvB,MACbC,OAAQmvB,EAAMnvB,OACd+2B,WAAY5H,EAAMpvB,MAClB+2B,WAAY3H,EAAMpvB,OAEpB,OAAAiI,GAAAA,GAAA,GACK/H,GAAO,IAMVrlB,WAAOsE,EACP8rB,QAASmkB,EAAMnkB,QACf/K,UACAitF,cAAeinC,EACftpH,UAAM3rB,GAAS,KAGlB,CAACi1I,EAAc3pF,IAElB,OACElnD,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOykH,EAAayB,OAAmB5hH,GACvE4gB,EAGP,CAEA,SAASs0H,GAAe30H,GACtB,I5S2gCiC/e,G4S3gC3B,OAAE8pD,EAAM,qBAAE6pF,GAAyB50H,GACnC,MAAEqF,EAAK,YAAEi7F,EAAW,QAAEr0E,GAAY2oG,GAClC,GAAEruH,GAAkCquH,EAA3BC,EAAsB/zH,GAAK8zH,EAAoB7zH,IAExD01E,EAAcvpE,GAAe4wE,KAEjC4iB,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,GAEZw3B,EADC9zB,EAAmBhgG,GACpB8zH,EAAoBv/E,IAElB0rD,EAA0B9D,GAA0BC,EAAuBjxE,EAAS1lB,GACpFy6F,EAA0B7D,GAA0BC,GACpD6D,EAAqB5D,GAA0BuD,EAAsB30E,EAAS1lB,GACpF,G5S4/BiCtlB,E4S5/BZ8pD,I5S6/BdlvD,MAAMkH,QAAQ9B,IAAQA,EAAItE,OAAS,G4S5/BxC,OAAO,KAGT,IAAMkmH,EAAYhjG,EAAsBg1H,GAExC,OACEhxI,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACwvI,GAAW,CAACtoF,OAAQA,EAAQ/qC,MAAO60H,IACnC9pF,EAAOznD,KAAI,CAAC8jB,EAAOxoB,KAClB,IAAMk2I,EAAgC,MAAfx0B,IAAuC,IAAhBA,EACxC1uD,EAAoBkjF,GAAkBr+C,IAAgBt0F,OAAOvD,GAC7D6tB,EAASqoH,GAAkBljF,EAAW0uD,EAAcj7F,EACpD0vH,EAA8BxsH,GAAAA,GAAAA,GAAA,GAC/Bs6F,GACAz7F,GAAK,IACRjnB,MAAOvB,EACP,CAAC2zC,IAA6CpwC,OAAOokB,KAGvD,OACE1iB,EAAAA,cAACy+F,GAAW,CACV//F,IAAG,UAAA9D,OAAY2oB,aAAK,EAALA,EAAOqB,GAAE,KAAAhqB,OAAI2oB,aAAK,EAALA,EAAOsB,GAAE,KAAAjqB,OAAI2oB,aAAK,EAALA,EAAOpV,KAAI,KAAAvT,OAAIG,GAMxD6jF,OAAQ7wB,EAAW2vB,GAAgBQ,eAAYtiF,GAE/CoE,EAAAA,cAACsd,EAAKD,GAAA,CACJT,UAAU,2BACNkJ,GAAmBm3F,EAAqB15F,EAAOxoB,GAAE,CAErD8hH,aAAcK,EAAwB35F,EAAOxoB,GAE7CiiH,aAAcG,EAAwB55F,EAAOxoB,GAE7C+hH,QAASM,EAAmB75F,EAAOxoB,KAEnCiF,EAAAA,cAACquI,GAAahxH,GAAA,CAACuL,OAAQA,EAAQmlC,SAAUA,GAAcmjF,KAE7C,IAKxB,CAEA,SAASC,GAAoB1jG,GAM1B,IAN2B,kBAC5By2E,EAAiB,MACjB/nG,GAIDsxB,GACO,OAAEyZ,EAAM,kBAAEzF,EAAiB,eAAEwO,EAAc,kBAAE3O,EAAiB,gBAAEC,GAAoBplC,EACpF4nG,EAAaG,EAAkBljH,QAC/BwsD,EAAckB,GAAevyC,EAAO,sBAEnC0hG,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GAEzC4kG,GAAqBvvF,EAAAA,EAAAA,cAAY,KAKrCsvF,GAAe,EAAM,GACpB,IAEGE,GAAuBxvF,EAAAA,EAAAA,cAAY,KAKvCsvF,GAAe,EAAK,GACnB,IAEG/B,GAAc8B,EAEpB,OACE79G,EAAAA,cAAC4wI,GAAwB,CAAC70B,WAAYA,EAAY70D,OAAQA,GACvD/qC,EAAMK,SACPxc,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR0M,eAAgB8vD,EAChB7vD,iBAAkB8vD,EAClBt/G,IAAK8uD,IAEH34C,IACA,IAAMqpG,EACE,IAANrpG,EACIqyC,EACAA,aAAM,EAANA,EAAQznD,KAAI,CAAC8jB,EAAyBjnB,KACpC,IAAMixC,EAAOw2E,GAAcA,EAAWznH,GAEtC,OACEooB,GAAAA,GAAA,GACKnB,GAAK,GAFRgqB,EAEQ,CACR3oB,GAAgB,MAAZrB,EAAMqB,QAAahpB,EAAYsnB,GAAYqqB,EAAK3oB,GAAIrB,EAAMqB,GAAI/P,GAClEgQ,GAAgB,MAAZtB,EAAMsB,QAAajpB,EAAYsnB,GAAYqqB,EAAK1oB,GAAItB,EAAMsB,GAAIhQ,GAClE1G,KAAM+U,GAAYqqB,EAAKp/B,KAAMoV,EAAMpV,KAAM0G,IAI5B,CAAE1G,KAAM+U,GAAY,EAAGK,EAAMpV,KAAM0G,IAAE,IAO9D,OAJIA,EAAI,IAENqvG,EAAkBljH,QAAUk9G,GAG5Bl+G,EAAAA,cAACsd,EAAK,KACJtd,EAAAA,cAAC8wI,GAAc,CAAC5pF,OAAQg3D,EAAU6yB,qBAAsB50H,EAAO4/F,WAAYA,IACrE,IAId/7G,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QAG3C,CAwGA,IAAMkuG,GAA2EA,CAC/EppB,EACApzE,EACAy9C,KAEO,CACL7oF,EAAGw+G,EAAU52F,GACbzkB,EAAGq7G,EAAU32F,GACbvtB,MAA2BqI,OAAN,MAAdkmF,EAA2B21B,EAAU/sF,KAAKzxB,EAAYw+G,EAAU/sF,KAAKtuB,GAE5E4kI,SAAU58F,GAAkBqzE,EAAWpzE,KAI3C,SAASgpG,GAAcj1H,GACrB,IAAM,KAAE4yB,EAAI,OAAEmY,EAAM,UAAEtqC,EAAS,SAAEqiG,EAAQ,QAAEz6B,EAAO,QAAEC,EAAO,GAAE/hE,GAAOvG,EAC9D+nG,GAAoB7jH,EAAAA,EAAAA,QAA+C,MACzE,GAAI0uC,EACF,OAAO,KAET,IAAM3xB,EAAa3B,EAAK,mBAAoBmB,GACtCsiG,EAAax8F,EAEnB,OACE1iB,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQziE,EAAMyiE,QACzB5+E,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,EAAYoiG,SAAUP,EAAW,iBAAHrkH,OAAoBskH,EAAU,UAAMtjH,EAAW8mB,GAAIA,GAChGu8F,GACCj/G,EAAAA,cAAA,YACEA,EAAAA,cAACm/H,GAAqB,CAACjgB,WAAYA,EAAY16B,QAASA,EAASC,QAASA,KAG9EzkF,EAAAA,cAAC2+H,GAAkB,CACjBn6C,QAASA,EACTC,QAASA,EACT1+D,KAAMmhC,EACNs3E,mBAAoBoG,GACpBnG,eAAgB,GAEhBz+H,EAAAA,cAACsd,EAAK,CAAC5e,IAAI,4BACTsB,EAAAA,cAACmxI,GAAoB,CAACh1H,MAAOA,EAAO+nG,kBAAmBA,OAMnE,CAEO,IAAMmtB,GAAsB,CACjC7sD,QAAS,EACTC,QAAS,EACTC,QAAS,EACThuD,OAAO,EACPquB,MAAM,EACNsxD,WAAY,SACZo5B,SAAU,QACVC,cAAe,SACfluH,MAAO,SACPutB,MAAM,EAEN0S,kBAAmB,OACnBwO,eAAgB,EAChB3O,kBAAmB,IACnBC,gBAAiB,SACjBq9B,OAAQlB,GAAgBK,SAG1B,SAASuzD,GAAYn1H,GACnB,IAAAgtF,EAcIjjF,GAAoB/J,EAAOk1H,KAdzB,eACJphF,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,KACfxS,EAAI,kBACJ0S,EAAiB,WACjB40D,EAAU,cACVq5B,EAAa,SACbD,EAAQ,MACRjuH,EAAK,QACLgjE,EAAO,QACPC,EAAO,QACPC,GAEDykB,EADIm8B,EAAcroH,GAAAksF,EAAAmK,KAGb,SAAE2L,GAAa6f,GAAat6C,EAASC,GACrCsxB,GAAQx1G,EAAAA,EAAAA,UAAQ,IAAMo3G,GAAcx7F,EAAMK,SAAUwmF,KAAO,CAAC7mF,EAAMK,WAClEq4B,EAAa1E,KAEb+W,EAAS79B,IAAeE,GACrBklH,GAAoBllH,EAAOi7D,EAASC,EAASC,EAASvoE,EAAMuG,GAAIqzF,EAAOlhE,KAEhF,OAAgB,MAAZoqE,GAGU,MAAV/3D,EAFK,KAMPlnD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACsvI,GAA8B,CAC7BlnG,QAASjsB,EAAMisB,QACf8e,OAAQA,EACR1/B,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZ0nE,YAAat6F,EAAMs6F,YACnB/zF,GAAIvG,EAAMuG,KAEZ1iB,EAAAA,cAACoxI,GAAa/zH,GAAA,GACRioH,EAAc,CAClB9gD,QAASA,EACTC,QAASA,EACTC,QAASA,EACT+qD,SAAUA,EACVC,cAAeA,EACfr5B,WAAYA,EACZ70F,MAAOA,EACPutB,KAAMA,EACN0S,kBAAmBA,EACnBwO,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,EACjB2F,OAAQA,EACR+3D,SAAUA,KAIlB,CAEA,SAASsyB,GAAUjpH,GACjB,IAAMnM,EAAQ+J,GAAoBoC,EAAc+oH,IAC1Cx8F,EAAa1E,KACnB,OACEnwC,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAIvG,EAAMuG,GAAI5c,KAAK,YACzC4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC45G,GAAgB,CAACC,cAAew1B,GAAqClzH,KACtEnc,EAAAA,cAACi7G,GAAyB,CACxBn1G,KAAK,UACL4c,GAAIA,EACJqD,KAAM5J,EAAM4J,KACZy+D,QAASroE,EAAMqoE,QACfC,QAAStoE,EAAMsoE,QACfC,QAASvoE,EAAMuoE,QACft8C,QAASjsB,EAAMisB,QACf2G,KAAM5yB,EAAM4yB,KACZx0C,KAAM4hB,EAAM5hB,KACZk8G,YAAat6F,EAAMs6F,YACnB5hE,WAAYA,IAEd70C,EAAAA,cAACsxI,GAAWj0H,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,OAKtC,CAQO,IAAM8uH,GAAgCxxI,EAAAA,KAAWuxI,GAAW7O,IAEnE8O,GAAQhpI,YAAc,U,gaCh6BtB,SAASipI,GACPC,EACAC,GAEA,OAAID,IAASC,MAIT35I,MAAMkH,QAAQwyI,IAAyB,IAAhBA,EAAK54I,SAAgBd,MAAMkH,QAAQyyI,IAAyB,IAAhBA,EAAK74I,UACnE44I,EAAK,KAAOC,EAAK,IAAMD,EAAK,KAAOC,EAAK,GAInD,CAUO,SAASC,GAAqDjjF,EAAcuqD,GACjF,GAAIvqD,IAAcuqD,EAChB,OAAO,EAET,IAAQpvE,OAAQ+nG,EAAYnmI,MAAOomI,GAA2BnjF,EAAbojF,EAAQ90H,GAAK0xC,EAASzxC,KAC/D4sB,OAAQkoG,EAAYtmI,MAAOumI,GAA2B/4B,EAAbg5B,EAAQj1H,GAAKi8F,EAAS1nD,IAEvE,QAAKigF,GAAoBI,EAAYG,OAIhCP,GAAoBK,EAAWG,IAI7BvP,GAAcqP,EAAUG,GACjC,C,8pDC+HA,SAASC,GAAiBh2H,GACxB,IAAM+M,EAAWF,KACX2wF,GAAkBt5G,EAAAA,EAAAA,QAA6B,MAC/CsmB,EAAS6tB,MACP1uC,KAAMstG,GAAgCj3F,EAAdgjF,EAASliF,GAAKd,EAAKe,IAC7C0iE,EAAqDV,GAAyBv4D,EAAQ,QAASysF,GAE/F1lF,GAAsCntB,EAAAA,EAAAA,UAAQ,KAClD,GAAqB,MAAjBq/E,EAGJ,OAAAl7D,GAAAA,GAAA,GACKy6E,GAAS,IACZr5F,KAAM85E,GAAa,GAEpB,CAACuf,EAAWvf,IAuBf,OArBAxmE,EAAAA,EAAAA,kBAAgB,KACE,MAAZsU,IAG4B,OAA5BisF,EAAgB34G,QAClBkoB,EAASw2F,GAAShyF,IACTisF,EAAgB34G,UAAY0sB,GACrCxE,EAASy2F,GAAa,CAAEpyE,KAAMosE,EAAgB34G,QAAS0zB,KAAMhH,KAE/DisF,EAAgB34G,QAAU0sB,EAAQ,GACjC,CAACA,EAAUxE,KAEd9P,EAAAA,EAAAA,kBAAgB,IACP,KACDugG,EAAgB34G,UAClBkoB,EAAS02F,GAAYjG,EAAgB34G,UACrC24G,EAAgB34G,QAAU,KAC5B,GAED,CAACkoB,IAEG,IACT,CAEA,IAAMkpH,GAAaj2H,IACjB,IAAM,QAAEqoE,EAAO,UAAE5nE,GAAcT,EACzBQ,EAAU0M,GAAe4mB,IACzB4E,EAAa1E,KACb7H,EAAW,QACX+pG,EAAqBhpH,IAAeE,GAASkoE,GAAkBloE,EAAO+e,EAAUk8C,EAAS3vC,KACzFk7C,EAAW1mE,IAAeE,GAASqmE,GAAgBrmE,EAAOi7D,KAC1DjnC,EAAWl0B,IAAeE,GAAS8mE,GAAoB9mE,EAAOi7D,KAO9DowB,EAAuBvrF,IAAeE,GAASk6D,GAA8Bl6D,EAAOi7D,KAE1F,GAAgB,MAAZuL,GAAgC,MAAZxyC,GAA4C,MAAxBq3D,EAC1C,OAAO,KAGT,IAAM,wBAAE09B,EAAuB,MAAE9pG,EAAO1B,MAAOyrG,GAA0Bp2H,EAAlB4rH,EAAa9qH,GAAKd,EAAKq1C,KACxE,GAAE9uC,EAAIokB,MAAO0rG,GAAsC59B,EAA7B69B,EAAwBx1H,GAAK23F,EAAoBtB,IAE7E,OACEtzG,EAAAA,cAAC+7H,GAAa1+G,GAAA,GACR0qH,EACA0K,EAAwB,CAC5Bz1I,EAAGugD,EAASvgD,EACZmD,EAAGo9C,EAASp9C,EACZsc,MAAOszE,EAAStzE,MAChBC,OAAQqzE,EAASrzE,OACjBE,UAAWnB,EAAK,YAAD7gB,OAAa0tC,EAAQ,KAAA1tC,OAAI0tC,GAAY1rB,GACpDD,QAASA,EACT6rB,MAAO6pG,EACP/pG,SAAUA,IACV,EAIOoqG,GAAoB,CAC/Bv4D,kBAAmBmJ,GAAcnJ,kBACjCe,cAAeoI,GAAcpI,cAC7B/uC,wBAAyBm3C,GAAcn3C,wBACvC7mB,MAAOg+D,GAAch+D,MACrB+4D,SAAUi7C,GAA0Bj7C,SACpC3hE,OAAQ4mE,GAAc5mE,OACtBqyB,MAAM,EACNwvC,cAAe+E,GAAc/E,cAC7BlV,SAAUia,GAAcja,SACxB3yC,OAAO,EACP6sD,WAAYD,GAAcC,WAC1Bz0C,OAAQw0C,GAAcx0C,OACtBD,YAAay0C,GAAcz0C,YAC3BrmB,QAAS86D,GAAc96D,QACvBg2D,SAAU8E,GAAc9E,SACxB13C,MAAOw8C,GAAcx8C,MACrB23C,KAAM6E,GAAc7E,KACpBl1C,UAAW+5C,GAAc/5C,UACzBm1C,SAAU46C,GAA0B56C,SACpCC,SAAU26C,GAA0B36C,SACpC74E,KAAMw9E,GAAcx9E,KACpB0+E,QAAS,GAKLmuD,GAA2BrqH,IAC/B,IAAMnM,EAA2B+J,GAAoBoC,EAAcoqH,IACnE,OACE1yI,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACmyI,GAAgB,CACfh4D,kBAAmBh+D,EAAMg+D,kBACzBe,cAAe/+D,EAAM++D,cACrB/uC,wBAAyBhwB,EAAMgwB,wBAC/B7mB,MAAOnJ,EAAMmJ,MACb8iB,QAASjsB,EAAMisB,QACf0B,OAAQ3tB,EAAM2tB,OACdptB,OAAQP,EAAMO,OACdqyB,KAAM5yB,EAAM4yB,KACZrsB,GAAIvG,EAAMqoE,QACVjG,cAAepiE,EAAMoiE,cACrBlV,SAAUltD,EAAMktD,SAChBka,WAAYpnE,EAAMonE,WAClBz0C,OAAQ3yB,EAAM2yB,OACdv0C,KAAM4hB,EAAM5hB,KACZs0C,YAAa1yB,EAAM0yB,YACnBrmB,QAASrM,EAAMqM,QACfg2D,SAAUriE,EAAMqiE,SAChB13C,MAAO3qB,EAAM2qB,MACb23C,KAAMtiE,EAAMsiE,KACZl1C,UAAWptB,EAAMotB,UACjBi6C,cAAernE,EAAMqnE,cACrBh7C,MAAOrsB,EAAMqsB,MACb1iC,KAAMqW,EAAMrW,KACZ05C,KAAMrjC,EAAMqjC,OAEdx/C,EAAAA,cAACoyI,GAAcj2H,GACd,EAQMy2H,GAA8B5yI,EAAAA,KAAW2yI,GAAyBf,IAE/EgB,GAAMpqI,YAAc,Q,8pDCrIpB,SAASqqI,GAAiB12H,GACxB,IAAM+M,EAAWF,KACX2wF,GAAkBt5G,EAAAA,EAAAA,QAA6B,MAC/CsmB,EAAS6tB,MACP1uC,KAAMstG,GAAgCj3F,EAAdgjF,EAASliF,GAAKd,EAAKe,IAC7C0iE,EAAqDV,GAAyBv4D,EAAQ,QAASysF,GAE/F1lF,GAAsCntB,EAAAA,EAAAA,UAAQ,KAClD,GAAqB,MAAjBq/E,EAGJ,OAAAl7D,GAAAA,GAAA,GACKy6E,GAAS,IACZr5F,KAAM85E,GAAa,GAEpB,CAACA,EAAeuf,IAuBnB,OArBA/lF,EAAAA,EAAAA,kBAAgB,KACE,MAAZsU,IAG4B,OAA5BisF,EAAgB34G,QAClBkoB,EAAS22F,GAASnyF,IACTisF,EAAgB34G,UAAY0sB,GACrCxE,EAAS42F,GAAa,CAAEvyE,KAAMosE,EAAgB34G,QAAS0zB,KAAMhH,KAE/DisF,EAAgB34G,QAAU0sB,EAAQ,GACjC,CAACA,EAAUxE,KAEd9P,EAAAA,EAAAA,kBAAgB,IACP,KACDugG,EAAgB34G,UAClBkoB,EAAS62F,GAAYpG,EAAgB34G,UACrC24G,EAAgB34G,QAAU,KAC5B,GAED,CAACkoB,IAEG,IACT,CAEA,SAAS4pH,GAAU32H,GACjB,IAAM,QAAEsoE,EAAO,UAAE7nE,EAAS,MAAEH,EAAK,MAAEia,GAAUva,EAEvC42H,GAAmB1yI,EAAAA,EAAAA,QAAyB,MAC5CosG,GAAWpsG,EAAAA,EAAAA,QAAO,MAElBsc,EAAU0M,GAAe4mB,IACzB4E,EAAa1E,KACbjnB,EAAWF,KACXsf,EAAW,QACXynD,EAA6B1mE,IAAeE,GAASonE,GAAgBpnE,EAAOk7D,KAC5ElnC,EAAWl0B,IAAeE,GAASknE,GAAoBlnE,EAAOk7D,KAC9D4tD,EAAqBhpH,IAAeE,GAASkoE,GAAkBloE,EAAO+e,EAAUm8C,EAAS5vC,KAOzF+/D,EAAuBvrF,IAAeE,GAASq6D,GAA8Br6D,EAAOk7D,KAuC1F,IArCArrE,EAAAA,EAAAA,kBAAgB,KAGd,GACY,SAAVqD,GACCszE,IACDub,GAAwB50E,MACxBxa,EAAAA,EAAAA,gBAAewa,IACS,MAAxBk+E,EALF,CAUA,IAAMo+B,EAAgBD,EAAiB/xI,QACvC,GAAKgyI,EAAL,CAIA,IAAM1X,EAAoB0X,EAAcjY,qBAGpCjvH,KAAK8E,MAAMm/E,EAAStzE,SAAW3Q,KAAK8E,MAAM0qH,IAC5CpyG,EAASi3F,GAAiB,CAAEz9F,GAAI+hE,EAAShoE,MAAO6+G,IANlD,CALA,CAYA,GACC,CAID+W,EACAtiD,EACA7mE,EACAwN,EACA+tD,EACAhoE,EACAm4F,IAGc,MAAZ7kB,GAAgC,MAAZxyC,GAA4C,MAAxBq3D,EAC1C,OAAO,KAGT,IAAM,wBAAE09B,EAAuB,MAAE9pG,EAAO1B,MAAOyrG,GAA0Bp2H,EAAlB4rH,EAAa9qH,GAAKd,EAAKq1C,KACxE,GAAE9uC,EAAIokB,MAAO0rG,GAAsC59B,EAA7B69B,EAAwBx1H,GAAK23F,EAAoBtB,IAE7E,OACEtzG,EAAAA,cAAC+7H,GAAa1+G,GAAA,GACR0qH,EACA0K,EAAwB,CAC5Bl2H,IAAKw2H,EACLtmC,SAAUA,EACVzvG,EAAGugD,EAASvgD,EACZmD,EAAGo9C,EAASp9C,EACZ25H,cAAyB,SAAVr9G,EAAmB,CAAEA,WAAO7gB,GAAc,CAAE6gB,SAC3DA,MAAOszE,EAAStzE,MAChBC,OAAQqzE,EAASrzE,OACjBE,UAAWnB,EAAK,YAAD7gB,OAAa0tC,EAAQ,KAAA1tC,OAAI0tC,GAAY1rB,GACpDD,QAASA,EACT6rB,MAAO6pG,EACP/pG,SAAUA,IAGhB,CAEO,IAAM2qG,GAAoB,CAC/B94D,kBAAmBwJ,GAAcxJ,kBACjCe,cAAeyI,GAAczI,cAC7B/uC,wBAAyBw3C,GAAcx3C,wBACvC7mB,MAAOq+D,GAAcr+D,MACrB+4D,SAAUi7C,GAA0Bj7C,SACpCtvC,MAAM,EACNwvC,cAAeoF,GAAcpF,cAC7BlV,SAAUsa,GAActa,SACxB3yC,OAAO,EACP6sD,WAAYI,GAAcJ,WAC1Bz0C,OAAQ60C,GAAc70C,OACtBD,YAAa80C,GAAc90C,YAC3BrmB,QAASm7D,GAAcn7D,QACvBg2D,SAAUmF,GAAcnF,SACxB13C,MAAO68C,GAAc78C,MACrB23C,KAAMkF,GAAclF,KACpBl1C,UAAWo6C,GAAcp6C,UACzBm1C,SAAU46C,GAA0B56C,SACpCC,SAAU26C,GAA0B36C,SACpC74E,KAAM69E,GAAc79E,KACpB2W,MAAOknE,GAAclnE,MACrBgoE,QAAS,GAKLyuD,GAA2B5qH,IAC/B,IAAMnM,EAA2B+J,GAAoBoC,EAAc2qH,IACnE,OACEjzI,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC6yI,GAAgB,CACfxpE,SAAUltD,EAAMktD,SAChB3mD,GAAIvG,EAAMsoE,QACV39C,MAAO3qB,EAAM2qB,MACbhhC,KAAMqW,EAAMrW,KACZgkC,OAAQ3tB,EAAM2tB,OACdqwC,kBAAmBh+D,EAAMg+D,kBACzB/xC,QAASjsB,EAAMisB,QACf+D,wBAAyBhwB,EAAMgwB,wBAC/B+uC,cAAe/+D,EAAM++D,cACrB3xC,UAAWptB,EAAMotB,UACjB/gB,QAASrM,EAAMqM,QACf+1D,cAAepiE,EAAMoiE,cACrBC,SAAUriE,EAAMqiE,SAChBh2C,MAAOrsB,EAAMqsB,MACb/rB,MAAON,EAAMM,MACboyB,YAAa1yB,EAAM0yB,YACnBC,OAAQ3yB,EAAM2yB,OACdC,KAAM5yB,EAAM4yB,KACZyQ,KAAMrjC,EAAMqjC,KACZjlD,KAAM4hB,EAAM5hB,KACZ+qB,MAAOnJ,EAAMmJ,MACbi+D,WAAYpnE,EAAMonE,WAClB9E,KAAMtiE,EAAMsiE,KACZ+E,cAAernE,EAAMqnE,gBAEvBxjF,EAAAA,cAAC8yI,GAAc32H,GACd,EAQMg3H,GAA8BnzI,EAAAA,KAAWkzI,GAAyBtB,IChX/E,SAASwB,GAAiB1lH,GACxB,IAAMxE,EAAWF,KACX2wF,GAAkBt5G,EAAAA,EAAAA,QAA6B,MAoBrD,OAlBA+Y,EAAAA,EAAAA,kBAAgB,KACkB,OAA5BugG,EAAgB34G,QAClBkoB,EAAS82F,GAAStyF,IACTisF,EAAgB34G,UAAY0sB,GACrCxE,EAAS+2F,GAAa,CAAE1yE,KAAMosE,EAAgB34G,QAAS0zB,KAAMhH,KAE/DisF,EAAgB34G,QAAU0sB,CAAQ,GACjC,CAACA,EAAUxE,KAEd9P,EAAAA,EAAAA,kBAAgB,IACP,KACDugG,EAAgB34G,UAClBkoB,EAASg3F,GAAYvG,EAAgB34G,UACrC24G,EAAgB34G,QAAU,KAC5B,GAED,CAACkoB,IAEG,IACT,CD2VAiqH,GAAM3qI,YAAc,QCjRb,IAAM6qI,GAAoB,CAC/B3uD,QAAS,EACTh5E,MAAOo4E,GAAcp4E,MACrBo7B,MAAOg9C,GAAch9C,MACrBhhC,KAAMg+E,GAAch+E,MASf,SAASwtI,GAAMhrH,GACpB,IAAMnM,EAAQ+J,GAAoBoC,EAAc+qH,IAChD,OACErzI,EAAAA,cAACozI,GAAgB,CACftpG,OAAQ3tB,EAAM2tB,OACdpnB,GAAIvG,EAAMuoE,QACVt8C,QAASjsB,EAAMisB,QACf7tC,KAAM4hB,EAAM5hB,KACZilD,KAAMrjC,EAAMqjC,KACZ9zC,MAAOyQ,EAAMzQ,MACbo7B,MAAO3qB,EAAM2qB,MACbhhC,KAAMqW,EAAMrW,KACZqmC,wBAAyB23C,GAAc33C,wBACvCguC,kBAAmB2J,GAAc3J,kBACjCqE,SAAUsF,GAActF,SACxBD,cAAeuF,GAAcvF,eAGnC,CAEA+0D,GAAM9qI,YAAc,QClHpB,IAAMD,GAAe,CACnBggD,MAAO,EACPL,SAAU,IACVC,OAAQ,OACR4F,UAAU,EACVC,UAAU,EACVC,eAAgBA,OAChBC,iBAAkBA,QAGb,SAASqlF,GAAqBjrH,GACnC,IAAMnM,EAAQ+J,GAAoBoC,EAAc/f,KAC1C,YACJilD,EAAW,KACX1vD,EAAI,GACJm5B,EAAE,cACFu8G,EACAzlF,SAAUK,EAAY,SACtBJ,EAAQ,SACR9F,EAAQ,OACRC,EAAM,MACNI,EAAK,eACL0F,EACAC,iBAAkBulF,EAAyB,SAC3Cj3H,GACEL,EAEE4xC,EAA4B,SAAjBK,GAA2BT,GAAOE,MAAQO,EAErDC,EAAmBd,GAAoBC,EAAcgmF,EAAer3H,EAAMkyC,mBACzExxC,EAAOkwC,IAAY5zC,EAAAA,EAAAA,WAA2B,IAC9C40C,EAGEjwD,EAFEm5B,IAILy8G,GAAcrzI,EAAAA,EAAAA,SAAO,GAErB6tD,GAAmB1/B,EAAAA,EAAAA,cAAY,KACnCu+B,EAASjvD,GACT21I,GAA2B,GAC1B,CAAC31I,EAAM21I,IAoBV,OAlBAnzI,EAAAA,EAAAA,YAAU,KACR,IAAKytD,IAAaC,EAChB,OAAOpqC,GAGT8vH,EAAY1yI,SAAU,EACtB,IAAM2zB,EAAc05B,EAAiB3tD,UAAUqsD,GAG/C,OAFAsB,EAAiB1iD,MAAM,CAACuiD,EAAkB3F,EAAOtxB,EAAIixB,EAAU+F,IAExD,KACLI,EAAiBlB,OACbx4B,GACFA,IAEFs5B,GAAgB,CACjB,GACA,CAACF,EAAUC,EAAU9F,EAAUC,EAAQI,EAAO2F,EAAkBD,EAAgBI,EAAkBp3B,EAAIn5B,IAEpGiwD,EAUAC,EAMD0lF,EAAY1yI,QAEPwb,EAAS,CACd6lC,WAFiB4F,GAAiB,CAACurF,GAAgBtrF,EAAUC,GAG7D,CAACqrF,GAAgB32H,IAGdL,EAAS,CACd,CAACg3H,GAAgB11I,IAbV0e,EAAS,CACd,CAACg3H,GAAgB11I,IANZ0e,EAAS,CACd,CAACg3H,GAAgBv8G,GAmBvB,C,+0CCWA,SAAS08G,GAAax3H,GACpB,IAAM,UACJ0pE,EAAS,MACTppE,EAAK,QACL2rB,EAAO,kBACPqZ,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,GAEEplC,EADCa,E,6WAAMC,CACPd,EAAKe,IACH02H,EAAW53H,EAAsBgB,IAEjC,KAAE+I,EAAI,mBAAEy4G,EAAkB,QAAEh6C,EAAO,QAAEC,EAASg6C,eAAgB90F,GAAWi1F,KAEzEzwF,EAAQyyE,GAASp8B,GACjBl2C,EAAQuyE,GAASp8B,GAEvB,GAAoB,OAAhBt2C,aAAK,EAALA,EAAOrH,QAAiC,OAAhBwH,aAAK,EAALA,EAAOxH,QAAyB,MAAR/gB,EAClD,OAAO,KAIT,GAAkB,MAAd8/D,GAAoC,WAAf13C,EAAMroC,KAC7B,OAAO,KAGT,IAAMyhF,EAAYxhE,EAAKtmB,KAAI,CAAC8jB,EAAYswH,KACtC,IAAM,EAAE72I,EAAC,EAAEmD,EAAC,MAAE7I,EAAK,SAAEytI,GAAavG,EAAmBj7G,EAAO6kB,EAASy9C,GAErE,IAAKk/C,GAAiB,MAAL/nI,GAAkB,MAALmD,EAC5B,OAAO,KAGT,IACIkoF,EAAkBC,EADhBwrD,EAA8C,GAGpD,GAAI97I,MAAMkH,QAAQ6lI,GAAW,CAC3B,IAAOgP,EAAKC,GAAQjP,EACpB,GAAW,MAAPgP,GAAuB,MAARC,EACjB,OAAO,KAET3rD,EAAW0rD,EACXzrD,EAAY0rD,CACd,MACE3rD,EAAWC,EAAYy8C,EAGzB,GAAkB,MAAdl/C,EAAmB,CAErB,IAAM,MAAE/+C,GAAUqH,EAEZ8lG,EAAO9zI,EAAIwpC,EACXuqG,EAAOD,EAAOx3H,EACd03H,EAAOF,EAAOx3H,EAEd23H,EAAOttG,EAAMrnC,IAAInI,EAAQ+wF,GACzBgsD,EAAOvtG,EAAMrnC,IAAInI,EAAQgxF,GAEnB,MAAR8rD,GAAwB,MAARC,IAElBP,EAAgB/5I,KAAK,CAAEglB,GAAIs1H,EAAMr1H,GAAIk1H,EAAM18H,GAAI68H,EAAMp1H,GAAIk1H,IAEzDL,EAAgB/5I,KAAK,CAAEglB,GAAIq1H,EAAMp1H,GAAIi1H,EAAMz8H,GAAI68H,EAAMp1H,GAAIg1H,IAEzDH,EAAgB/5I,KAAK,CAAEglB,GAAIq1H,EAAMp1H,GAAIk1H,EAAM18H,GAAI48H,EAAMn1H,GAAIk1H,IAE7D,MAAO,GAAkB,MAAdtuD,EAAmB,CAE5B,IAAQ/+C,MAAAA,GAAUwH,EAEZgmG,EAAOt3I,EAAI2sC,EACXyqG,EAAOE,EAAO73H,EACd43H,EAAOC,EAAO73H,EAEdy3H,EAAOptG,EAAMrnC,IAAInI,EAAQ+wF,GACzB8rD,EAAOrtG,EAAMrnC,IAAInI,EAAQgxF,GAEnB,MAAR4rD,GAAwB,MAARC,IAElBL,EAAgB/5I,KAAK,CAAEglB,GAAIq1H,EAAMp1H,GAAIm1H,EAAM38H,GAAI68H,EAAMp1H,GAAIk1H,IAEzDL,EAAgB/5I,KAAK,CAAEglB,GAAIu1H,EAAMt1H,GAAIk1H,EAAM18H,GAAI88H,EAAMr1H,GAAIk1H,IAEzDL,EAAgB/5I,KAAK,CAAEglB,GAAIq1H,EAAMp1H,GAAIk1H,EAAM18H,GAAI68H,EAAMp1H,GAAIi1H,IAE7D,CAEA,IAAMK,EAAuC,MAAd1uD,EAAoB,SAAW,SAExD2uD,EAAkB,GAAH55I,OAAMoC,EAAI2sC,EAAM,OAAA/uC,OAAMuF,EAAIwpC,EAAM,MAErD,OACE3pC,EAAAA,cAACsd,EAAKD,GAAA,CAACT,UAAU,oBAAoBle,IAAG,OAAA9D,OAASoC,EAAC,KAAApC,OAAIuF,EAAC,KAAAvF,OAAItD,EAAK,KAAAsD,OAAIi5I,IAAiBD,GAClFE,EAAgBr0I,KAAI,CAAC4X,EAAGo9H,KACvB,IAAMC,EAAYjzF,EAAoB,CAAE+yF,wBAAoB54I,EAC5D,OACEoE,EAAAA,cAACuzI,GAAoB,CACnB/lF,YAAW,aAAA5yD,OAAeirF,EAAS,KAAAjrF,OAAIyc,EAAE0H,GAAE,KAAAnkB,OAAIyc,EAAEG,GAAE,KAAA5c,OAAIyc,EAAE2H,GAAE,KAAApkB,OAAIyc,EAAE4H,IACjEnhB,KAAI,GAAAlD,OAAK25I,EAAc,OACvBt9G,GAAE,GAAAr8B,OAAK25I,EAAc,OACrBf,cAAc,YACdjrF,MAAO0H,EACP9H,OAAQ5G,EACRwM,SAAUtM,EACVyG,SAAU5G,EACV5iD,IAAG,YAAA9D,OAAci5I,EAAS,KAAAj5I,OAAIyc,EAAE0H,GAAE,KAAAnkB,OAAIyc,EAAE2H,GAAE,KAAApkB,OAAIyc,EAAEG,GAAE,KAAA5c,OAAIyc,EAAE4H,GAAE,KAAArkB,OAAI65I,KAE7D53H,GAAS7c,EAAAA,cAAA,OAAAqd,GAAA,GAAUhG,EAAC,CAAEwF,MAAK6H,GAAAA,GAAA,GAAOgwH,GAAc73H,OAC5B,IAGrB,IAIZ,OAAO7c,EAAAA,cAACsd,EAAK,CAACV,UAAU,sBAAsB2qE,EAChD,CAaO,IAAMotD,GAAuB,CAClCntH,OAAQ,QACRF,YAAa,IACb7K,MAAO,EACPktB,OAAQ,EACR8X,mBAAmB,EACnBwO,eAAgB,EAChB3O,kBAAmB,IACnBC,gBAAiB,cACjBq9B,OAAQlB,GAAgB34B,MAyBnB,SAAS6vF,GAAStsH,GACvB,IA9C4BusH,EACtBluH,EA6CAmuH,GA9CsBD,EA8CkCvsH,EAAau9D,UA7CrEl/D,EAAS4tB,KACW,MAAtBsgG,EACKA,EAEK,MAAVluH,GACgB,eAAXA,EAA0B,IAE5B,KAuCDxK,EAAQ+J,GAAoBoC,EAAcqsH,KAC1C,MAAEl4H,EAAK,kBAAEglC,EAAiB,eAAEwO,EAAc,kBAAE3O,EAAiB,gBAAEC,EAAe,OAAEq9B,GAAWziE,EAEjG,OACEnc,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC6+H,GAAsB,CAACz2F,QAASjsB,EAAMisB,QAASy9C,UAAWivD,IAC3D90I,EAAAA,cAACy+F,GAAW,CAAC7f,OAAQA,GACnB5+E,EAAAA,cAAC2zI,GAAYt2H,GAAA,GACPlB,EAAK,CACT0pE,UAAWivD,EACXr4H,MAAOA,EACPglC,kBAAmBA,EACnBwO,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,MAK3B,CAEAqzF,GAASpsI,YAAc,WC3SvB,IAEausI,GAGyBnnH,GACpC,CANuBonH,CAACl0D,EAA2Bm0D,IAA+BA,EAQhF3gG,GACAssC,GACAqB,GACAsX,GACAI,GACA8C,GACA9tD,KlHyO8BumG,CAChCl4C,EACAr2E,EACAs2E,EACAC,EACAC,EACAxK,EACAyK,EACAzzD,KAEA,GAAKqzD,GAAer2E,GAAWu2E,GAAoBC,GAAqBxK,EAGxE,MAAe,eAAXhsE,GAAsC,aAAXA,EA1EGwuH,EAClCn4C,EACAr2E,EACAu2E,EACAC,EACAxK,EACAyK,EACAzzD,KAEA,GAAKqzD,GAAeE,GAAoBC,GAAqBxK,GDhHxD,SAA4ByiD,EAAuBzrG,GACxD,IAAQ6oB,OAAQx1D,EAAGy1D,OAAQtyD,GAAMi1I,EACjC,OAAOp4I,GAAK2sC,EAAOtb,MAAQrxB,GAAK2sC,EAAOtb,KAAOsb,EAAOltB,OAAStc,GAAKwpC,EAAOrb,KAAOnuB,GAAKwpC,EAAOrb,IAAMqb,EAAOjtB,MAC5G,CCgHO24H,CAAmBr4C,EAAYrzD,GAApC,CAGA,IAAM2zD,ExK0eoCg4C,EAAC1sG,EAA0BjiB,IACtD,eAAXA,EACKiiB,EAAW4pB,OAEL,aAAX7rC,EACKiiB,EAAW6pB,YADpB,EwK9egC6iF,CAA6Bt4C,EAAYr2E,GAEnEisE,EAAcsI,GAClBoC,EACAF,EACAzK,EACAuK,EACAC,GAGInqC,ED/MoCuiF,EAC1C5uH,EACAgsE,EACAC,EACAwiD,KAEA,IAAM7xH,EAAQovE,EAAarvE,MAAKm7D,GAAQA,GAAQA,EAAKniF,QAAUs2F,IAE/D,GAAIrvE,EAAO,CACT,GAAe,eAAXoD,EACF,MAAO,CAAE3pB,EAAGumB,EAAMqlB,WAAYzoC,EAAGi1I,EAAQ3iF,QAE3C,GAAe,aAAX9rC,EACF,MAAO,CAAE3pB,EAAGo4I,EAAQ5iF,OAAQryD,EAAGojB,EAAMqlB,WAEzC,CAEA,MAAO,CAAE5rC,EAAG,EAAGmD,EAAG,EAAG,EC8LIo1I,CAA6B5uH,EAAQgsE,EAAcC,EAAaoK,GAEzF,MAAO,CAAEpK,YAAat0F,OAAOs0F,GAAc5/B,mBAb3C,CAa6D,EAgDpDmiF,CACLn4C,EACAr2E,EACAu2E,EACAC,EACAxK,EACAyK,EACAzzD,GAGGozD,GACLC,EACAr2E,EACAs2E,EACAC,EACAC,EACAxK,EACAyK,EACD,ImHnRUo4C,GAAmB97I,IAC9B,IAAM8kB,EAAO9kB,EAAM+7I,cAAc/mH,wBAC3BgnH,EAASl3H,EAAK/B,MAAQ/iB,EAAM+7I,cAAc3lG,YAC1C6lG,EAASn3H,EAAK9B,OAAShjB,EAAM+7I,cAAc1lG,aACjD,MAAO,CAWLyiB,OAAQ1mD,KAAK8E,OAAOlX,EAAMk8I,QAAUp3H,EAAK6P,MAAQqnH,GACjDjjF,OAAQ3mD,KAAK8E,OAAOlX,EAAMm8I,QAAUr3H,EAAK8P,KAAOqnH,GACjD,ECvBUG,GAAmBp9G,GAA2B,cAE9Cq9G,GAAuB3xG,KAGpC2xG,GAAqB/yG,eAAe,CAClCpK,cAAek9G,GACfxyG,OAAQA,CAAClP,EAAqCmP,KAC5C,IAAMyyG,EAAe5hH,EAAO1M,QACtBuuH,EAAclB,GAAkCxxG,EAAY7Z,WAAY8rH,GAAgBQ,IAC9D,OAA5BC,aAAW,EAAXA,EAAarjD,cACfrvD,EAAYra,SACVorE,GAAuB,CACrB1B,YAAaqjD,EAAYrjD,YACzBoB,mBAAep4F,EACfo3D,iBAAkBijF,EAAYjjF,mBAGpC,IAIG,IAAMkjF,GAAkBx9G,GAA2B,aAE7Cy9G,GAAsB/xG,KAU/BgyG,GAAuB,KC3CpB,SAASC,GAAmC33I,EAAapH,GAC9D,OAAIA,aAAiBg/I,YACZ,gBAAP17I,OAAuBtD,EAAMi/I,QAAO,YAAA37I,OAAWtD,EAAMslB,UAAS,MAE5DtlB,IAAUmiB,OACL,gBAEG,aAAR/a,GAAuC,iBAAVpH,GAAgC,OAAVA,EAC9C,eAEFA,CACT,CDkCA6+I,GAAoBnzG,eAAe,CACjCpK,cAAes9G,GACf5yG,OAAQA,CAAClP,EAAqCmP,KAC5C,IAAMyyG,EAAe5hH,EAAO1M,QAGd,OAAV0uH,IACF1pF,qBAAqB0pF,IAEvB,IAAMnB,EAAeO,GAAgBQ,GAGrCI,GAAQ3vG,uBAAsB,KAC5B,IAAMld,EAAQga,EAAY7Z,WAG1B,GAAyB,SAFA+oE,GAAuBlpE,EAAOA,EAAM44D,QAAQz0D,SAAS6kE,QAE7C,CAC/B,IAAM0jD,EAAclB,GAAkCxrH,EAAO0rH,GAC7B,OAA5BgB,aAAW,EAAXA,EAAarjD,aACfrvD,EAAYra,SACVmrE,GAAsB,CACpBzB,YAAaqjD,EAAYrjD,YACzBoB,mBAAep4F,EACfo3D,iBAAkBijF,EAAYjjF,oBAKlCzvB,EAAYra,SAASgrE,KAEzB,CAEAkiD,GAAQ,IAAI,GACZ,IE5CC,IAAMx6G,GAAsC,CACjD4iB,oBAAoB,EACpBm+B,eAAgB,MAChBF,OAAQ,EACRI,aAASjhF,EACTghB,eAAWhhB,EACX2gF,gBAAY3gF,EACZmhF,YAAa,OACbM,YAAQzhF,EACR2hF,WAAY,QACZuF,eAAWlnF,EACXqhF,mBAAmB,GAGfu5D,GAAiB96G,GAAY,CACjCnhC,KAAM,YACNqhC,aAAY,GACZ/G,SAAU,CACR4hH,cAAeA,CAACltH,EAA8B6K,KAAiD,IAAAsiH,EAC7FntH,EAAMi1B,mBAAqBpqB,EAAO1M,QAAQ82B,mBAC1Cj1B,EAAMozD,eAAiBvoD,EAAO1M,QAAQi1D,eACtCpzD,EAAMkzD,OAA8B,QAAxBi6D,EAAGtiH,EAAO1M,QAAQ+0D,cAAM,IAAAi6D,EAAAA,EAAI96G,GAAa6gD,OACrDlzD,EAAMszD,QAAUzoD,EAAO1M,QAAQm1D,QAC/BtzD,EAAMgzD,WAAanoD,EAAO1M,QAAQ60D,WAClChzD,EAAMwzD,YAAc3oD,EAAO1M,QAAQq1D,YACnCxzD,EAAM8zD,OAASjpD,EAAO1M,QAAQ21D,OAC9B9zD,EAAMg0D,WAAanpD,EAAO1M,QAAQ61D,WAClCh0D,EAAM3M,UAAYwX,EAAO1M,QAAQ9K,UACjC2M,EAAMu5D,UAAY1uD,EAAO1M,QAAQo7D,UACjCv5D,EAAM0zD,kBAAoB7oD,EAAO1M,QAAQu1D,iBAAiB,KAKnD05D,GAAmBH,GAAehjH,SAElC,cAAEijH,IAAkBD,GAAej5G,QCjD1Cq5G,GAAoBl7G,GAA8C,CACtEnhC,KAAM,eACNqhC,aAVoC,KAWpC/G,SATe,CACfgiH,mBAAoBA,CAAC/1D,EAAyB1sD,IACrCA,EAAO1M,YAUL,mBAAEmvH,IAAuBD,GAAkBr5G,QAE3Cu5G,GAAsBF,GAAkBpjH,QCjBxCujH,GAAgBr+G,GAAmC,WACnDs+G,GAAct+G,GAAa,SAE3Bu+G,GAA2B7yG,KAExC6yG,GAAyBj0G,eAAe,CACtCpK,cAAem+G,GACfzzG,OAAQA,CACNlP,EACAmP,KAEA,IAAMha,EAA2Bga,EAAY7Z,WAE7C,IAD0E,IAAvCH,EAAMm5B,UAAUlE,mBACnD,CAGA,IAAM,oBAAE60C,GAAwB9pE,EAAM44D,QAChCzjF,EAAM01B,EAAO1M,QACnB,GAAY,eAARhpB,GAAgC,cAARA,GAA+B,UAARA,EAAnD,CAKA,IAAMw4I,EAAgB7hD,GACpBhC,EACA4E,GAA2B1uE,GAC3B48D,GAAyB58D,GACzB4vE,GAAwB5vE,IAEpBimG,EAAgC,MAAjB0nB,GAAyB,EAAIv3I,OAAOu3I,GACzD,GAAKv3I,OAAOsoC,SAASunF,MAAiBA,EAAe,GAArD,CAGA,IAAM78B,EAAegH,GAAuBpwE,GAC5C,GAAY,UAAR7qB,EAAJ,CAYA,IAGMy4I,EAAY3nB,GADO,eAAR9wH,EAAuB,GAAK,IADH,kBADxBqzF,GAAqBxoE,GACqB,GAAK,GAGjE,KAAoB,MAAhBopE,GAAwBwkD,GAAaxkD,EAAa75F,QAAUq+I,EAAY,GAA5E,CAGA,IAAMvuG,EAAag0D,GAAgCrzE,EAAO,OAAQ,QAASjrB,OAAO64I,IAElF5zG,EAAYra,SACVsrE,GAAuB,CACrBnzC,QAAQ,EACRuxC,YAAaukD,EAAU33I,WACvBwzD,iBAAkBpqB,IAPtB,CARA,KAVA,CACE,IAAMA,EAAag0D,GAAgCrzE,EAAO,OAAQ,QAASjrB,OAAO+0F,EAAoB/2F,QACtGinC,EAAYra,SACVsrE,GAAuB,CACrBnzC,QAASgyC,EAAoBhyC,OAC7BuxC,YAAaS,EAAoB/2F,MACjC02D,iBAAkBpqB,IAIxB,CAZA,CAZA,CALA,CA8CC,IAILquG,GAAyBj0G,eAAe,CACtCpK,cAAeo+G,GACf1zG,OAAQA,CAAC8zG,EAAS7zG,KAChB,IAAMha,EAA2Bga,EAAY7Z,WAE7C,IAD0E,IAAvCH,EAAMm5B,UAAUlE,mBACnD,CAGA,IAAM,oBAAE60C,GAAwB9pE,EAAM44D,QACtC,IAAIkR,EAAoBhyC,QAGS,MAA7BgyC,EAAoB/2F,MAAe,CACrC,IACMssC,EAAag0D,GAAgCrzE,EAAO,OAAQ,QAASjrB,OADzD,MAElBilC,EAAYra,SACVsrE,GAAuB,CACrBnzC,QAAQ,EACRuxC,YALc,IAMd5/B,iBAAkBpqB,IAGxB,CAfA,CAeA,ICjFG,IAAMyuG,GAAsB3+G,GAAyC,iBAE/D4+G,GAA2BlzG,KASlCmzG,GAAW,IAAIjzI,IAErBgzI,GAAyBt0G,eAAe,CACtCpK,cAAey+G,GACf/zG,OAAQA,CACNlP,EACAmP,KAEA,IAAM,QAAEi0G,EAAO,WAAEC,GAAerjH,EAAO1M,QACvC,GAAe,MAAX8vH,EAAJ,CAGAC,EAAWC,UAEX,IAAMllD,EAAYilD,EAAW3xI,KAGvB6xI,EAAgBJ,GAAS/0I,IAAIgwF,QACb52F,IAAlB+7I,GACFjrF,qBAAqBirF,GAGvB,IAAMvB,EAAQ3vG,uBAAsB,KAClC,IAOE,IAAMld,EAA2Bga,EAAY7Z,WACvC0L,EAAmC,CACvC49B,iBAAkBunC,GAA8BhxE,GAChDyqE,cAAemG,GAA2B5wE,GAC1CqpE,YAAaqH,GAAyB1wE,GACtCutE,YAAaoD,GAAkB3wE,GAC/Bg2E,mBAAoBtF,GAAyB1wE,GAC7C63E,gBAAiB1G,GAAsBnxE,IAGzCiuH,EAAQpiH,EAAWqiH,EACrB,CAAE,QACAF,GAAS/oI,OAAOgkF,EAClB,KAGF+kD,GAAStyI,IAAIutF,EAAW4jD,EAnCxB,CAmC8B,ICpElC,IAAMwB,GACJhqH,GAAe,CAAC6oE,KAAqB9B,GAAgBA,EAAanB,sBAEvDqkD,GAIiBjqH,GAC5B,CACEgqH,GACA,CAAC92D,EAA2Bg3D,IAA6CA,EACzE,CAACh3D,EAA2Bi3D,EAA6BhlD,IACvDA,IAEJ,CACEilD,EACAF,EACA/kD,KAEA,GAAoB,MAAhB+kD,EAAJ,CAGA,IAAMG,EAAmCD,EAAyB10H,MAAK40H,GAC9DA,EAAqBxqH,SAASqlE,kBAAoBA,IAE3D,GAAwC,MAApCklD,EAAJ,CAGA,IAAM,YAAEhiD,GAAgBgiD,EACxB,GAAmB,MAAfhiD,EAGJ,OAAOA,EAAY6hD,EALnB,CANA,CAWgC,IC3BvBK,GAAmBz/G,GAA+C,aAElE0/G,GAAuBh0G,KAEpCg0G,GAAqBp1G,eAAe,CAClCpK,cAAeu/G,GACf70G,OAAQA,CACNlP,EACAmP,KAEA,IAAM80G,EAAajkH,EAAO1M,QAC1B,GAA0B,MAAtB2wH,EAAWC,SAAiD,IAA9BD,EAAWC,QAAQx/I,OAArD,CAGA,IAAMywB,EAAQga,EAAY7Z,WACpBkrE,EAAmBnC,GAAuBlpE,EAAOA,EAAM44D,QAAQz0D,SAAS6kE,QAC9E,GAAyB,SAArBqC,EAA6B,CAC/B,IAAMk6B,EAAQupB,EAAWC,QAAQ,GACjC,GAAa,MAATxpB,EACF,OAEF,IAAMmnB,EAAclB,GAClBxrH,EACAisH,GAAgB,CACdI,QAAS9mB,EAAM8mB,QACfC,QAAS/mB,EAAM+mB,QACfJ,cAAe4C,EAAW5C,iBAGE,OAA5BQ,aAAW,EAAXA,EAAarjD,cACfrvD,EAAYra,SACVmrE,GAAsB,CACpBzB,YAAaqjD,EAAYrjD,YACzBoB,mBAAep4F,EACfo3D,iBAAkBijF,EAAYjjF,mBAItC,MAAO,GAAyB,SAArB4hC,EAA6B,KAAA2jD,EAChCzpB,EAAQupB,EAAWC,QAAQ,GACjC,GAAiC,MAA7B5+H,SAAS8+H,kBAAqC,MAAT1pB,EACvC,OAEF,IAAMvxH,EAASmc,SAAS8+H,iBAAiB1pB,EAAM8mB,QAAS9mB,EAAM+mB,SAC9D,IAAKt4I,IAAWA,EAAOk7I,aACrB,OAEF,IAAMC,EAAYn7I,EAAOk7I,aAAahqG,IAChCskD,EAAiF,QAAlEwlD,EAAGh7I,EAAOk7I,aAAa/pG,WAA2C,IAAA6pG,EAAAA,OAAI38I,EACrF8xB,EAAWoqE,GAAgCvuE,GAAOjG,MAAK9f,GAAQA,EAAKkf,KAAOqwE,IACjF,GAAiB,MAAb2lD,GAAiC,MAAZhrH,GAAuC,MAAnBqlE,EAC3C,OAEF,IAAM,QAAE3qD,GAAY1a,EACdkb,EAAaivG,GAAwBtuH,EAAOmvH,EAAW3lD,GAE7DxvD,EAAYra,SACV6qE,GAA4B,CAC1BC,cAAe5rD,EACfwqD,YAAa8lD,EACb1lF,iBAAkBpqB,EAClBqrD,sBAAuBlB,IAG7B,CAnDA,CAmDA,ICrCJ,IAAM/4D,GAA0CpF,GAAgB,CAC9Dga,MAAO+8E,GACPz9E,cAAesyE,GACfnnC,UAAWunB,GACXrZ,UAAW+2C,GACXl6C,eAAgB02B,GAChBn0F,OAAQ4gB,GACR9Z,OAAQ0uB,GACRxkD,QAAS2oG,GACT9gB,UAAWyzB,GACX9yB,aAAc22D,GACd/tD,kBAAmB8pC,GACnBnwE,UAAWi0F,GACXx0D,QAASsS,GACT7V,OAAQ4f,KAGGm6C,GAAsB,SACjCllH,GAE6B,IAD7B0pD,EAAiBzhF,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAEpB,OAAOq+B,GAAkC,CACvCvG,QAASwG,GAETvG,eAAgBA,EAEhBsC,WAAY+D,IAAoB,IAAA8+G,EAAA,OAC9B9+G,EAAqB,CACnBH,mBAAmB,EACnBD,gBAAiB,CAAC,WAAY,MAAO,cAAc1tB,SAAQ,QAAA4sI,EAAA,cAAAA,EAAyB,MACnFh+I,OAAO,CACRm7I,GAAqBhgH,WACrBogH,GAAoBpgH,WACpBkhH,GAAyBlhH,WACzBuhH,GAAyBvhH,WACzBqiH,GAAqBriH,YACrB,EASJyE,UAAWq+G,IACT,IAAIr+G,EAAYq+G,EAWhB,MAVmC,mBAAxBA,IAQTr+G,EAAYq+G,KAEPr+G,EAAU5/B,O5S60DC,SAAUjD,GAE9B,YADgB,IAAZA,IAAsBA,EAAU,CAAEmO,KAAM,QACrC,SAAU4uB,GAAQ,OAAO,WAE5B,IADA,IAAIt8B,EAAO,GACFi9B,EAAK,EAAGA,EAAK35B,UAAU5C,OAAQu8B,IACpCj9B,EAAKi9B,GAAM35B,UAAU25B,GAEzB,IAAIpM,EAAQyL,EAAKr8B,WAAM,EAAQD,GAC3B0gJ,GAAY,EACZC,GAA0B,EAC1BC,GAAqB,EACrBn+I,EAAY,IAAIiE,IAChBm6I,EAAiC,SAAjBthJ,EAAQmO,KAAkBogC,GAAsC,QAAjBvuC,EAAQmO,KAAiB0gC,GAAuB,aAAjB7uC,EAAQmO,KAAsBnO,EAAQuhJ,kBAAoB5yG,GAAqB3uC,EAAQurC,SACrLi2G,EAAkB,WAClBH,GAAqB,EACjBD,IACAA,GAA0B,EAC1Bl+I,EAAUgrB,SAAQ,SAAU7qB,GAAK,OAAOA,GAAK,IAErD,EACA,OAAO9D,OAAO21B,OAAO,CAAC,EAAG5D,EAAO,CAC5BvoB,UAAW,SAAU04I,GACjB,IACIzkH,EAAc1L,EAAMvoB,WADF,WAAc,OAAOo4I,GAAaM,GAAa,IAGrE,OADAv+I,EAAUkE,IAAIq6I,GACP,WACHzkH,IACA95B,EAAU2T,OAAO4qI,EACrB,CACJ,EACAlwH,SAAU,SAAUkL,GAChB,IAAIkL,EACJ,IASI,OARAw5G,IAA8D,OAA/Cx5G,EAAe,MAAVlL,OAAiB,EAASA,EAAO0E,WAAgB,EAASwG,EAAG0G,MACjF+yG,GAA2BD,KAElBE,IACDA,GAAqB,EACrBC,EAAcE,KAGflwH,EAAMC,SAASkL,EAC1B,CACA,QACI0kH,GAAY,CAChB,CACJ,GAER,CAAG,CACP,C4S73DQO,CAAkB,CAChBvzI,KAAM,QAET,EAEHu0B,SAAUszB,GAAOC,iBAAmB,CAClC0rF,UAAW,CACTC,SAAUlD,IAEZ97I,KAAM,YAAFK,OAAcuiF,KAGxB,EC/FO,SAASq8D,GAAqBj1H,GAA2E,IAA1E,eAAEkP,EAAc,SAAEjX,EAAQ,eAAEi9H,GAA4Cl1H,EACtGswB,EAAa1E,KAYbupG,GAAsEr5I,EAAAA,EAAAA,QAAO,MASnF,GAAIw0C,EACF,OAAOr4B,EAGe,MAApBk9H,EAAS14I,UACX04I,EAAS14I,QAAU23I,GAAoBllH,EAAgBgmH,IAIzD,IAAME,EAAqD7wH,GAE3D,OACE9oB,EAAAA,cAACqwC,GAAQ,CAAC/2C,QAASqgJ,EAAgB1wH,MAAOywH,EAAS14I,SAChDwb,EAGP,CCpCA,SAASo9H,GAAwBr1H,GAAgD,IAA/C,OAAEoC,EAAM,OAAE8B,GAAwBlE,EAC5D2E,EAAWF,KAQX6rB,EAAa1E,KAanB,OANA7vC,EAAAA,EAAAA,YAAU,KACHu0C,IACH3rB,EAAS6d,GAAUpgB,IACnBuC,EAAS+d,GAAUxe,IACrB,GACC,CAACS,EAAU2rB,EAAYluB,EAAQ8B,IAC3B,IACT,CAEO,IAAMoxH,IAAuB3+B,EAAAA,EAAAA,MAAK0+B,GAA0BlX,ICrC5D,SAASoX,GAAiB39H,GAC/B,IAAM+M,EAAWF,KAIjB,OAHA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAASutH,GAAct6H,GAAO,GAC7B,CAAC+M,EAAU/M,IACP,IACT,CCJA,SAAS49H,GAAex1H,GAAkE,IAAjE,OAAEq6D,EAAM,WAAE/pC,GAAqDtwB,EAChFhI,GAAMlc,EAAAA,EAAAA,QAAoB,MAC1B6oB,EAAWF,KAUjB,OATA5P,EAAAA,EAAAA,kBAAgB,KACVmD,EAAIvb,SACNkoB,EAASo1E,GAA4B,CAAE1f,SAAQ/hF,QAAS0f,EAAIvb,QAAS6zC,gBAEhE,KACL3rB,EAASq1E,GAA8B,CAAE3f,SAAQ/pC,eAAc,IAEhE,CAAC3rB,EAAU01D,EAAQ/pC,IAEf70C,EAAAA,cAAA,KAAGwiD,UAAW,EAAGjmC,IAAKA,GAC/B,CAEO,SAASy9H,GAAgBrmH,GAAgF,IAA/E,SAAEnX,EAAQ,WAAEq4B,GAAiElhB,EACtGsmH,EAA2D5wH,GAAew0E,IAEhF,IAAKo8C,GAA0D,IAAjCA,EAAsBnhJ,OAClD,OAAO0jB,EAGT,IAAM09H,EAAsBD,EAAsBh7I,QAAO2/E,GAAUA,EAAS,IAEtEu7D,EAAsBF,EAAsBh7I,QAAO2/E,GAAUA,EAAS,IAE5E,OACE5+E,EAAAA,cAAAA,EAAAA,SAAA,KACGk6I,EAAoBz6I,KAAIm/E,GACvB5+E,EAAAA,cAAC+5I,GAAe,CAACr7I,IAAKkgF,EAAQA,OAAQA,EAAQ/pC,WAAYA,MAE3Dr4B,EACA29H,EAAoB16I,KAAIm/E,GACvB5+E,EAAAA,cAAC+5I,GAAe,CAACr7I,IAAKkgF,EAAQA,OAAQA,EAAQ/pC,WAAYA,MAIlE,C,+OCzBA,IAAMulG,GAAwB,CAC5B39H,MAAO,OACPC,OAAQ,OAURsL,QAAS,SAGLqyH,IAAmB/9H,EAAAA,EAAAA,aAA4C,CAACH,EAAyBI,KAC7F,IAAME,EAAQ03B,KACRz3B,EAAS03B,KACTkmG,EAAwB73F,KAE9B,IAAKva,GAAiBzrB,KAAWyrB,GAAiBxrB,GAChD,OAAO,KAGT,IAEI8lC,EAA8BrD,GAF5B,SAAE3iC,EAAQ,gBAAE+9H,EAAe,MAAEz9H,EAAK,KAAEC,GAASZ,EAkBnD,OAduB,MAAnBo+H,IAEA/3F,EADsC,iBAA7B+3F,EAAgB/3F,SACd+3F,EAAgB/3F,SAEhB83F,EAAwB,OAAI1+I,EAIvCujD,EADkC,iBAAzBo7F,EAAgBp7F,KAClBo7F,EAAgBp7F,KAEhBm7F,EAAwB,mBAAgB1+I,GAKjDoE,EAAAA,cAACqc,EAAOgB,GAAA,GACFk9H,EAAe,CACnBz9H,MAAOA,EACPC,KAAMA,EACNoiC,KAAMA,EACNqD,SAAUA,EACV/lC,MAAOA,EACPC,OAAQA,EACRG,MAAOu9H,GACP79H,IAAKA,IAEJC,EACO,IAIRg+H,GAAuBj2H,IAA2C,IAA1C,SAAE/H,GAAmC+H,EAC3DuvB,EAAkBzqB,GAAeknB,IAEvC,IAAKuD,EACH,OAAO,KAGT,IAAM,MAAEr3B,EAAK,OAAEC,EAAM,EAAEvc,EAAC,EAAEnD,GAAM82C,EAEhC,OACE9zC,EAAAA,cAACqc,EAAO,CAACI,MAAOA,EAAOC,OAAQA,EAAQ1f,EAAGA,EAAGmD,EAAGA,GAC7Cqc,EACO,EAIDi+H,IAAcn+H,EAAAA,EAAAA,aACzB,CAAAqX,EAA0CpX,KAAQ,IAAjD,SAAEC,GAAqCmX,EAAxBlP,E,6WAAIxH,CAAA0W,EAAAzW,IAGlB,OAFmBizB,KAIfnwC,EAAAA,cAACw6I,GAAoB,KACnBx6I,EAAAA,cAACg6I,GAAgB,CAACnlG,YAAU,GAAEr4B,IAKlCxc,EAAAA,cAACq6I,GAAgBh9H,GAAA,CAACd,IAAKA,GAASkI,GAC9BzkB,EAAAA,cAACg6I,GAAgB,CAACnlG,YAAY,GAAQr4B,GACrB,I,6tCCvDzB,IAAMk+H,GAAoBA,KACxB34C,KACO,MAGT,SAAS44C,GAAgBrjJ,GACvB,GAAqB,iBAAVA,EACT,OAAOA,EAET,GAAqB,iBAAVA,EAAoB,CAC7B,IAAM29F,EAASlyE,WAAWzrB,GAC1B,IAAKqI,OAAO0L,MAAM4pF,GAChB,OAAOA,CAEX,CACA,OAAO,CACT,CAOA,IAAM2lD,IAAgBt+H,EAAAA,EAAAA,aAA4C,CAACH,EAAwBI,KAAmB,IAAAs+H,EAAAC,EACtGC,GAAuD16I,EAAAA,EAAAA,QAAO,OAE7DkyC,EAAOC,IAAYr5B,EAAAA,EAAAA,UAGvB,CACD43B,eAAgB4pG,GAA2B,QAAZE,EAAC1+H,EAAMU,aAAK,IAAAg+H,OAAA,EAAXA,EAAap+H,OAC7Cu0B,gBAAiB2pG,GAA2B,QAAZG,EAAC3+H,EAAMU,aAAK,IAAAi+H,OAAA,EAAXA,EAAap+H,UAG1C+1B,GAAmBjkB,EAAAA,EAAAA,cAAY,CAACkkB,EAAkBC,KACtDH,GAASI,IACP,IAAMC,EAAe/mC,KAAK8E,MAAM8hC,GAC1BI,EAAgBhnC,KAAK8E,MAAM+hC,GACjC,OAAIC,EAAU7B,iBAAmB8B,GAAgBD,EAAU5B,kBAAoB8B,EACtEF,EAGF,CAAE7B,eAAgB8B,EAAc7B,gBAAiB8B,EAAe,GACvE,GACD,IAEG6O,GAAWnzB,EAAAA,EAAAA,cACdC,IAIC,GAHmB,mBAARlS,GACTA,EAAIkS,GAEM,MAARA,GAA0C,oBAAnBskB,eAAgC,CACzD,IAAQt2B,MAAOs0B,EAAgBr0B,OAAQs0B,GAAoBviB,EAAKC,wBAChE+jB,EAAiB1B,EAAgBC,GACjC,IAQMxc,EAAW,IAAIue,gBARH1kC,IAChB,IAAMkV,EAAQlV,EAAQ,GACtB,GAAa,MAATkV,EAAJ,CAGA,IAAM,MAAE9G,EAAK,OAAEC,GAAW6G,EAAM0vB,YAChCR,EAAiBh2B,EAAOC,EAFxB,CAE+B,IAGjC8X,EAAS0e,QAAQzkB,GACjBssH,EAAY/5I,QAAUwzB,CACxB,IAEF,CAACjY,EAAKk2B,IAYR,OATAnyC,EAAAA,EAAAA,YAAU,IACD,KACL,IAAMk0B,EAAWumH,EAAY/5I,QACb,MAAZwzB,GACFA,EAAS2e,YACX,GAED,CAACV,IAGFzyC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC40C,GAAe,CAACn4B,MAAO81B,EAAMxB,eAAgBr0B,OAAQ61B,EAAMvB,kBAC5DhxC,EAAAA,cAAA,MAAAqd,GAAA,CAAKd,IAAKolC,GAAcxlC,IACvB,IAID6+H,IAAkB1+H,EAAAA,EAAAA,aAA4C,CAACH,EAAwBI,KAC3F,IAAM,MAAEE,EAAK,OAAEC,GAAWP,GACnBo2B,EAAOC,IAAYr5B,EAAAA,EAAAA,UAGvB,CACD43B,eAAgB4pG,GAAgBl+H,GAChCu0B,gBAAiB2pG,GAAgBj+H,KAG7B+1B,GAAmBjkB,EAAAA,EAAAA,cAAY,CAACkkB,EAAkBC,KACtDH,GAASI,IACP,IAAMC,EAAe/mC,KAAK8E,MAAM8hC,GAC1BI,EAAgBhnC,KAAK8E,MAAM+hC,GACjC,OAAIC,EAAU7B,iBAAmB8B,GAAgBD,EAAU5B,kBAAoB8B,EACtEF,EAGF,CAAE7B,eAAgB8B,EAAc7B,gBAAiB8B,EAAe,GACvE,GACD,IAEG6O,GAAWnzB,EAAAA,EAAAA,cACdC,IAIC,GAHmB,mBAARlS,GACTA,EAAIkS,GAEM,MAARA,EAAc,CAChB,IAAQhS,MAAOs0B,EAAgBr0B,OAAQs0B,GAAoBviB,EAAKC,wBAChE+jB,EAAiB1B,EAAgBC,EACnC,IAEF,CAACz0B,EAAKk2B,IAER,OACEzyC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC40C,GAAe,CAACn4B,MAAO81B,EAAMxB,eAAgBr0B,OAAQ61B,EAAMvB,kBAC5DhxC,EAAAA,cAAA,MAAAqd,GAAA,CAAKd,IAAKolC,GAAcxlC,IACvB,IASD8+H,IAAY3+H,EAAAA,EAAAA,aAA2C,CAACH,EAAuBI,KACnF,IAAM,MAAEE,EAAK,OAAEC,GAAWP,EAE1B,OACEnc,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC40C,GAAe,CAACn4B,MAAOA,EAAOC,OAAQA,IACvC1c,EAAAA,cAAA,MAAAqd,GAAA,CAAKd,IAAKA,GAASJ,IAClB,IAID++H,IAAmB5+H,EAAAA,EAAAA,aAA4C,CAACH,EAAwBI,KAC5F,IAAM,MAAEE,EAAK,OAAEC,GAAWP,EAE1B,MAAqB,iBAAVM,GAAwC,iBAAXC,EAC/B1c,EAAAA,cAACg7I,GAAe39H,GAAA,GAAKlB,EAAK,CAAEI,IAAKA,KAGrB,iBAAVE,GAAwC,iBAAXC,EAC/B1c,EAAAA,cAACi7I,GAAS59H,GAAA,GAAKlB,EAAK,CAAEM,MAAOA,EAAOC,OAAQA,EAAQH,IAAKA,KAKhEvc,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC40C,GAAe,CAACn4B,MAAOA,EAAOC,OAAQA,IACvC1c,EAAAA,cAAA,MAAAqd,GAAA,CAAKd,IAAKA,GAASJ,IAClB,IAQA,IAAMg/H,IAAkB7+H,EAAAA,EAAAA,aAC7B,CAACH,EAA6BI,KAC5B,IAAM,SACJC,EAAQ,UACRI,EACAF,OAAQq4B,EAAe,QACvB+nE,EAAO,cACPs+B,EAAa,cACbC,EAAa,YACbjvB,EAAW,aACXvP,EAAY,aACZG,EAAY,YACZs+B,EAAW,UACXC,EAAS,WACTC,EAAU,YACVvqB,EAAW,aACX5E,EAAY,MACZxvG,EACAJ,MAAOq4B,EAAc,WACrB2mG,EAAU,oBACVC,GAAsB,GACpBv/H,EACEi2B,GAAwD/xC,EAAAA,EAAAA,QAAuB,MAC/E6oB,EAAWF,MACV85E,EAAe64C,IAAoBxiI,EAAAA,EAAAA,UAA6B,OAChEwkC,EAAci+F,IAAmBziI,EAAAA,EAAAA,UAA6B,MAE/D0iI,EClPH,WACL,IAAM3yH,EAAWF,MACVzM,EAAKu/H,IAAU3iI,EAAAA,EAAAA,UAA6B,MAC7C2tB,EAAQzd,GAAe0kB,IAW7B,OAVAztC,EAAAA,EAAAA,YAAU,KACR,GAAW,MAAPic,EAAJ,CAGA,IACMw/H,EADOx/H,EAAImS,wBACKjS,MAAQF,EAAIuzB,YAC9B9H,GAAoB+zG,IAAaA,IAAaj1G,GAChD5d,EAASoe,GAASy0G,GAJpB,CAKA,GACC,CAACx/H,EAAK2M,EAAU4d,IACZg1G,CACT,CDmOwBE,GAEdhnG,EAAkChD,KAClCv1B,GAAQu4B,aAA+B,EAA/BA,EAAiCv4B,OAAQ,EAAIu4B,EAAgCv4B,MAAQq4B,EAC7Fp4B,GACJs4B,aAA+B,EAA/BA,EAAiCt4B,QAAS,EAAIs4B,EAAgCt4B,OAASq4B,EAEnF4M,GAAWnzB,EAAAA,EAAAA,cACdC,IACCotH,EAAYptH,GACO,mBAARlS,GACTA,EAAIkS,GAENktH,EAAiBltH,GACjBmtH,EAAgBntH,GACJ,MAARA,IACF2jB,EAAapxC,QAAUytB,EACzB,GAEF,CAACotH,EAAat/H,EAAKo/H,EAAkBC,IAGjCK,GAAYztH,EAAAA,EAAAA,cACfpkB,IACC8e,EAAS4sH,GAAiB1rI,IAC1B8e,EAASmuH,GAAoB,CAAEG,QAAS16B,EAAS26B,WAAYrtI,IAAK,GAEpE,CAAC8e,EAAU4zF,IAGPo/B,GAAiB1tH,EAAAA,EAAAA,cACpBpkB,IACC8e,EAASgtH,GAAgB9rI,IACzB8e,EAASmuH,GAAoB,CAAEG,QAAS36B,EAAc46B,WAAYrtI,IAAK,GAEzE,CAAC8e,EAAU2zF,IAGPs/B,GAAiB3tH,EAAAA,EAAAA,cACpBpkB,IACC8e,EAASgrE,MACThrE,EAASmuH,GAAoB,CAAEG,QAASx6B,EAAcy6B,WAAYrtI,IAAK,GAEzE,CAAC8e,EAAU8zF,IAGPo/B,GAAgB5tH,EAAAA,EAAAA,cACnBpkB,IACC8e,EAASgtH,GAAgB9rI,IACzB8e,EAASmuH,GAAoB,CAAEG,QAAS8D,EAAa7D,WAAYrtI,IAAK,GAExE,CAAC8e,EAAUoyH,IAGP/uB,GAAU/9F,EAAAA,EAAAA,cAAY,KAC1BtF,EAAS8tH,KAAc,GACtB,CAAC9tH,IAEE6jG,GAAYv+F,EAAAA,EAAAA,cACfpkB,IACC8e,EAAS6tH,GAAc3sI,EAAE1L,KAAK,GAEhC,CAACwqB,IAGGmzH,GAAkB7tH,EAAAA,EAAAA,cACrBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAAS4D,EAAe3D,WAAYrtI,IAAK,GAE1E,CAAC8e,EAAUkyH,IAGPkB,GAAkB9tH,EAAAA,EAAAA,cACrBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAAS6D,EAAe5D,WAAYrtI,IAAK,GAE1E,CAAC8e,EAAUmyH,IAGPkB,GAAgB/tH,EAAAA,EAAAA,cACnBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAASprB,EAAaqrB,WAAYrtI,IAAK,GAExE,CAAC8e,EAAUkjG,IAGPowB,GAAchuH,EAAAA,EAAAA,cACjBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAAS+D,EAAW9D,WAAYrtI,IAAK,GAEtE,CAAC8e,EAAUqyH,IAGPkB,GAAiBjuH,EAAAA,EAAAA,cACpBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAASnrB,EAAcorB,WAAYrtI,IAAK,GAEzE,CAAC8e,EAAUmjG,IAYPqwB,GAAgBluH,EAAAA,EAAAA,cACnBpkB,IACKsxI,GACFxyH,EAASivH,GAAiB/tI,IAE5B8e,EAASmuH,GAAoB,CAAEG,QAASvmB,EAAawmB,WAAYrtI,IAAK,GAExE,CAAC8e,EAAUwyH,EAAqBzqB,IAG5B0rB,GAAenuH,EAAAA,EAAAA,cAClBpkB,IACC8e,EAASmuH,GAAoB,CAAEG,QAASgE,EAAY/D,WAAYrtI,IAAK,GAEvE,CAAC8e,EAAUsyH,IAGPoB,EA7JV,SAAgCnB,GAC9B,OAAOA,EAAab,GAAgBM,EACtC,CA2JuB2B,CAAuBpB,GAE1C,OACEz7I,EAAAA,cAAC4/F,GAAqBvvD,SAAQ,CAAC/4C,MAAOwrG,GACpC9iG,EAAAA,cAACud,EAAoB8yB,SAAQ,CAAC/4C,MAAOqmD,GACnC39C,EAAAA,cAAC48I,EAAU,CACTngI,MAAOA,QAAAA,EAASI,aAAK,EAALA,EAAOJ,MACvBC,OAAQA,QAAAA,EAAUG,aAAK,EAALA,EAAOH,OACzBE,UAAWnB,EAAK,mBAAoBmB,GACpCC,MAAK6H,GAAA,CACH64B,SAAU,WACVshD,OAAQ,UACRpiF,QACAC,UACGG,GAELigG,QAASm/B,EACTb,cAAeiB,EACfhB,cAAeiB,EACf/vB,QAASA,EACTQ,UAAWA,EACXX,YAAamwB,EACb1/B,aAAcq/B,EACdl/B,aAAcm/B,EACdb,YAAac,EACbb,UAAWiB,EACXhB,WAAYmB,EACZ1rB,YAAayrB,EACbrwB,aAAcowB,EACdlgI,IAAKolC,GAEL3hD,EAAAA,cAAC06I,GAAiB,MACjBl+H,IAGyB,I,2FEhZ/B,IAAMsgI,IAAmBxgI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,KAC1G,IAAM,MAAEE,EAAK,OAAEC,EAAM,WAAE++H,EAAU,SAAEj/H,EAAQ,UAAEI,EAAS,MAAEC,EAAK,QAAEuxG,EAAO,MAAEtxG,EAAK,KAAEC,GAAoBZ,EAAXa,E,6WAAMC,CAAKd,EAAKe,IAClGuuF,EAAQzvF,EAAsBgB,GAMpC,OAAIoxG,EAEApuH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC40C,GAAe,CAACn4B,MAAOA,EAAOC,OAAQA,IACvC1c,EAAAA,cAACy6I,GAAW,CAACF,gBAAiB9uC,EAAO3uF,MAAOA,EAAOC,KAAMA,GACtDP,IAOPxc,EAAAA,cAACm7I,GAAe,CACdv+H,UAAWA,EACXC,MAAOA,EACPJ,MAAOA,EACPC,OAAQA,EACR++H,WAAYA,SAAAA,EACZ3+B,QAAS3gG,EAAM2gG,QACfE,aAAc7gG,EAAM6gG,aACpBH,aAAc1gG,EAAM0gG,aACpBy+B,YAAan/H,EAAMm/H,YACnBlvB,YAAajwG,EAAMiwG,YACnBmvB,UAAWp/H,EAAMo/H,UACjBH,cAAej/H,EAAMi/H,cACrBC,cAAel/H,EAAMk/H,cACrBhvB,aAAclwG,EAAMkwG,aACpB4E,YAAa90G,EAAM80G,YACnBuqB,WAAYr/H,EAAMq/H,YAElBx7I,EAAAA,cAACy6I,GAAW,CAACF,gBAAiB9uC,EAAO3uF,MAAOA,EAAOC,KAAMA,EAAMR,IAAKA,GAClEvc,EAAAA,cAAC+yH,GAAgB,KAAEv2G,IAEL,I,2NCtCtB,IAEaugI,GAA6B,CACxCv+F,oBAAoB,EACpBm+B,eAAgB,MAChBF,OAAQ,EACR91D,OAAQ,aACR8B,OAP4B,CAAE6F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,GAQjEotH,YAAY,EACZx+D,mBAAmB,EACnBF,YAAa,OACbQ,WAAY,SAgBDy/D,IAAiB1gI,EAAAA,EAAAA,aAAiD,SAC7EH,EACAI,GACA,IAAA0gI,EACMC,EAAiBh3H,GAAoB/J,EAAMghI,sBAAuBJ,KAElE,UACJ5/D,EAAS,wBACTgV,EAAuB,0BACvBE,EAAyB,uBACzBmE,EAAsB,sBACtB2mD,GACEhhI,EAEExkB,EAAwB,CAC5BwlF,YACAgV,0BACAE,4BACAmE,yBACA/Y,kBAAc7hF,GAGhB,OACEoE,EAAAA,cAACw5I,GAAqB,CAAC/lH,eAAgB,CAAE97B,WAAW8hJ,eAAwC,QAA1BwD,EAAEE,EAAsBz6H,UAAE,IAAAu6H,EAAAA,EAAI9/D,GAC9Fn9E,EAAAA,cAACkrH,GAAwB,CAAC7xC,UAAW8jE,EAAsBp3H,OAC3D/lB,EAAAA,cAAC65I,GAAoB,CAAClzH,OAAQu2H,EAAev2H,OAAQ8B,OAAQy0H,EAAez0H,SAC5EzoB,EAAAA,cAAC85I,GAAgB,CACfh3D,UAAWo6D,EAAep6D,UAC1BtkC,mBAAoB0+F,EAAe1+F,mBACnCm+B,eAAgBugE,EAAevgE,eAC/BJ,WAAY2gE,EAAe3gE,WAC3BQ,YAAamgE,EAAengE,YAC5BN,OAAQygE,EAAezgE,OACvBI,QAASqgE,EAAergE,QACxBQ,OAAQ6/D,EAAe7/D,OACvBE,WAAY2/D,EAAe3/D,WAC3B3gE,UAAWsgI,EAAetgI,UAC1BqgE,kBAAmBigE,EAAejgE,oBAEpCj9E,EAAAA,cAAC88I,GAAgBz/H,GAAA,GAAK6/H,EAAc,CAAE3gI,IAAKA,KAGjD,IC3EM6gI,GAAuD,CAAC,QAOjDC,IAAY/gI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAEjGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,YACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,MCfL6gI,GAAuD,CAAC,OAAQ,QAOzDE,IAAWhhI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAEhGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,WACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,MCjBJ,SAASghI,GAAmBphI,GACjC,IAAM+M,EAAWF,KAIjB,OAHA1oB,EAAAA,EAAAA,YAAU,KACR4oB,EAAS2tH,GAAmB16H,GAAO,GAClC,CAAC+M,EAAU/M,IACP,IACT,C,6OCGA,IAKaqhI,GAAyB,CACpCh/F,oBAAoB,EACpBu+B,YAAa,OACbJ,eAAgB,MAChBF,OAAQ,EACRh0D,OAV4B,CAAE6F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,GAWjE4uD,mBAAmB,EACnBM,WAAY,QACZ52D,OAAQ,SACR80H,YAAY,EACZ72H,GAAI,MACJC,GAAI,MACJ6tC,YAAa,EACbC,YAAa,OAiCF8qF,IAAanhI,EAAAA,EAAAA,aAA6C,SACrEH,EACAI,GACA,IAAAmhI,EACMC,EAAkBz3H,GAAoB/J,EAAMghI,sBAAuBK,KAEnE,OAAE72H,GAAqCg3H,EAA1BC,E,6WAAqB3gI,CAAK0gI,EAAezgI,KAEtD,UAAEigE,EAAS,wBAAEgV,EAAuB,0BAAEE,EAAyB,uBAAEmE,GAA2Br6E,EAE5FxkB,EAAwB,CAC5BwlF,YACAgV,0BACAE,4BACAmE,yBACA/Y,kBAAc7hF,GAGhB,OACEoE,EAAAA,cAACw5I,GAAqB,CAAC/lH,eAAgB,CAAE97B,WAAW8hJ,eAAkC,QAApBiE,EAAEC,EAAgBj7H,UAAE,IAAAg7H,EAAAA,EAAIvgE,GACxFn9E,EAAAA,cAACkrH,GAAwB,CAAC7xC,UAAWskE,EAAgB53H,OACrD/lB,EAAAA,cAAC65I,GAAoB,CAAClzH,OAAQA,EAAQ8B,OAAQk1H,EAAgBl1H,SAC9DzoB,EAAAA,cAAC85I,GAAgB,CACfh3D,eAAWlnF,EACX4iD,mBAAoBm/F,EAAgBn/F,mBACpCm+B,eAAgBghE,EAAgBhhE,eAChCJ,WAAYohE,EAAgBphE,WAC5BQ,YAAa4gE,EAAgB5gE,YAC7BN,OAAQkhE,EAAgBlhE,OACxBI,QAAS8gE,EAAgB9gE,QACzBQ,OAAQsgE,EAAgBtgE,OACxBE,WAAYogE,EAAgBpgE,WAC5B3gE,UAAW+gI,EAAgB/gI,UAC3BqgE,kBAAmB0gE,EAAgB1gE,oBAErCj9E,EAAAA,cAACu9I,GAAkB,CACjB34H,GAAI+4H,EAAgB/4H,GACpBC,GAAI84H,EAAgB94H,GACpBqtC,WAAYyrF,EAAgBzrF,WAC5BC,SAAUwrF,EAAgBxrF,SAC1BO,YAAairF,EAAgBjrF,YAC7BC,YAAagrF,EAAgBhrF,cAE/B3yD,EAAAA,cAAC88I,GAAgBz/H,GAAA,GAAKugI,EAAqB,CAAErhI,IAAKA,KAGxD,I,kgCCvGA,IAAM6gI,GAAuD,CAAC,QAEjDS,GAAoBn5H,GAAAA,GAAA,GAC5B84H,IAAsB,IACzB72H,OAAQ,UACRurC,WAAY,EACZC,SAAU,MAQC2rF,IAAWxhI,EAAAA,EAAAA,aAA2C,CAACH,EAAwBI,KAC1F,IAAMwhI,EAAoB73H,GAAoB/J,EAAO0hI,IACrD,OACE79I,EAAAA,cAACy9I,GAAU,CACTtgE,UAAU,WACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBY,EACvBxhI,IAAKA,GACL,I,+yCCaN,IAAMyhI,GAAiB,QA8ChB,IAAMC,GAAiDA,CAC5Dl4H,EACA6sE,KAEA,GAAK7sE,GAAS6sE,EAGd,OAAOpwF,KAAIujB,EAAM6sE,EAAY,EAUzBj7F,GAAwB,CAC5BwlF,UAAW,UACXgV,wBAAyB,OACzBE,0BAA2B,CAAC,QAC5BmE,uBAAwBynD,GACxBxgE,kBAAc7hF,GAGHsiJ,GAAc35H,IAcR,IAiBb45H,GA/BsB,MAC1BhyI,EAAK,KACLsiB,EAAI,MACJnyB,EAAK,QACL8rC,EAAO,QACPqvD,EAAO,yBACP2mD,GAQD75H,EACO85H,EAAgC,IAAVlyI,EAAc,GA9BP,SACnCmyI,GAGA,MAAO,GAAP1jJ,OAFiDc,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAEnB,aAAAd,OAAY0jJ,EAAkB,IACjE,CAyBiDC,CAAsBjiJ,EAAO8hJ,IACtE,SAAE5hI,GAAaiS,EACf+vH,EAAaryI,EAAQ,EACrBsyI,EACJjiI,GAAYA,EAAS1jB,OACjB0jB,EAAS/c,KAAI,CAAC0uG,EAAoBpzG,IAChCmjJ,GAAY,CACV/xI,MAAOqyI,EACP/vH,KAAM0/E,EACN7xG,MAAOvB,EACPqtC,UACAqvD,UACA2mD,yBAA0BC,MAG9B,KAGN,GAAII,GAAoBA,EAAiB3lJ,OACvCqlJ,EAAYM,EAAiBx8H,QAAO,CAAChqB,EAAgBk2G,IAAuBl2G,EAASk2G,EAAM72G,OAAO,OAC7F,CAEL,IAAMonJ,EAAejwH,EAAK2Z,GACpBy5C,EAAuC,iBAAjB68D,EAA4BA,EAAe,EACvEP,EAAY/7H,GAAMy/D,IAAiBA,GAAgB,EAAI,EAAIA,CAC7D,CAEA,OAAAn9D,GAAAA,GAAA,GACK+J,GAAI,IACPjS,SAAUiiI,EAEVlkJ,KAAM4tC,GAAkB1Z,EAAMgpE,EAAS,IACvC,CAACumD,IAAiBG,EAClBhyI,QACA7P,QACAw7I,aAAcuG,GAAmB,EA+B/BM,GAAgBA,CAACv0G,EAAqCw0G,EAAoBC,KAC9E,IAAMC,EAAaF,EAAaA,EAC1BG,EAAU30G,EAAI6a,KAAO7a,EAAI6a,MACzB,IAAEj3C,EAAG,IAAEpR,GAAQwtC,EAAInoB,QACvB,CAAChqB,EAAsCk2G,KAA+B,CACpEngG,IAAKlC,KAAKkC,IAAI/V,EAAO+V,IAAKmgG,EAAMlpD,MAChCroD,IAAKkP,KAAKlP,IAAI3E,EAAO2E,IAAKuxG,EAAMlpD,SAElC,CAAEj3C,IAAKxC,IAAU5O,IAAK,IAGxB,OAAOmiJ,EACHjzI,KAAKlP,IAAKkiJ,EAAaliJ,EAAMiiJ,EAAeE,EAASA,GAAWD,EAAa9wI,EAAM6wI,IACnFrzI,GAAQ,EA4ER+xC,GAAWA,CACfnT,EACAw0G,EACAI,EACAC,IAEIL,IAAeI,EAAWviI,MA/ELyiI,EACzB90G,EACAw0G,EACAI,EACAC,KAEA,IAAIE,EAAYP,EAAa9yI,KAAK8E,MAAMw5B,EAAI6a,KAAO25F,GAAc,GAE7DK,GAAWE,EAAYH,EAAWtiI,UACpCyiI,EAAYH,EAAWtiI,QAKzB,IAFA,IACIyxF,EADAixC,EAAOJ,EAAWhiJ,EAEbjC,EAAI,EAAGU,EAAM2uC,EAAItxC,OAAQiC,EAAIU,EAAKV,IAE5B,OADbozG,EAAQ/jE,EAAIrvC,MAIZozG,EAAMnxG,EAAIoiJ,EACVjxC,EAAMhuG,EAAI6+I,EAAW7+I,EACrBguG,EAAMzxF,OAASyiI,EACfhxC,EAAM1xF,MAAQ3Q,KAAKkC,IAAImxI,EAAYrzI,KAAK8E,MAAMu9F,EAAMlpD,KAAOk6F,GAAa,EAAGH,EAAWhiJ,EAAIgiJ,EAAWviI,MAAQ2iI,GAC7GA,GAAQjxC,EAAM1xF,OAOhB,OAJa,MAAT0xF,IACFA,EAAM1xF,OAASuiI,EAAWhiJ,EAAIgiJ,EAAWviI,MAAQ2iI,GAGnD16H,GAAAA,GAAA,GACKs6H,GAAU,IACb7+I,EAAG6+I,EAAW7+I,EAAIg/I,EAClBziI,OAAQsiI,EAAWtiI,OAASyiI,GAAS,EA+C9BD,CAAmB90G,EAAKw0G,EAAYI,EAAYC,GA3ClCI,EACvBj1G,EACAw0G,EACAI,EACAC,KAEA,IAAIK,EAAWV,EAAa9yI,KAAK8E,MAAMw5B,EAAI6a,KAAO25F,GAAc,GAE5DK,GAAWK,EAAWN,EAAWviI,SACnC6iI,EAAWN,EAAWviI,OAKxB,IAFA,IACI0xF,EADAoxC,EAAOP,EAAW7+I,EAEbpF,EAAI,EAAGU,EAAM2uC,EAAItxC,OAAQiC,EAAIU,EAAKV,IAE5B,OADbozG,EAAQ/jE,EAAIrvC,MAIZozG,EAAMnxG,EAAIgiJ,EAAWhiJ,EACrBmxG,EAAMhuG,EAAIo/I,EACVpxC,EAAM1xF,MAAQ6iI,EACdnxC,EAAMzxF,OAAS5Q,KAAKkC,IAAIsxI,EAAWxzI,KAAK8E,MAAMu9F,EAAMlpD,KAAOq6F,GAAY,EAAGN,EAAW7+I,EAAI6+I,EAAWtiI,OAAS6iI,GAC7GA,GAAQpxC,EAAMzxF,QAMhB,OAJIyxF,IACFA,EAAMzxF,QAAUsiI,EAAW7+I,EAAI6+I,EAAWtiI,OAAS6iI,GAGrD76H,GAAAA,GAAA,GACKs6H,GAAU,IACbhiJ,EAAGgiJ,EAAWhiJ,EAAIsiJ,EAClB7iI,MAAOuiI,EAAWviI,MAAQ6iI,GAAQ,EAc7BD,CAAiBj1G,EAAKw0G,EAAYI,EAAYC,GAMjDO,GAAWA,CAAC/wH,EAAmBowH,KACnC,IAAM,SAAEriI,GAAaiS,EAErB,GAAIjS,GAAYA,EAAS1jB,OAAQ,CAC/B,IAIIq1G,EAAOsxC,EAJPjhI,EAxIYiQ,KAAiB,CACnCzxB,EAAGyxB,EAAKzxB,EACRmD,EAAGsuB,EAAKtuB,EACRsc,MAAOgS,EAAKhS,MACZC,OAAQ+R,EAAK/R,SAoImBgjI,CAAWjxH,GAEnC2b,EAAsC,GACxCu1G,EAAOn0I,IAEP2C,EAAOrC,KAAKkC,IAAIwQ,EAAK/B,MAAO+B,EAAK9B,QAC/BkjI,EApIgBC,EACxBrjI,EACAsjI,KAEA,IAAMC,EAAQD,EAAiB,EAAI,EAAIA,EAEvC,OAAOtjI,EAAS/c,KAAK0uG,IACnB,IAAMlpD,EAAOkpD,EAAM6vC,IAAkB+B,EAErC,OAAAr7H,GAAAA,GAAA,GACKypF,GAAK,IACRlpD,KAAM7iC,GAAM6iC,IAASA,GAAQ,EAAI,EAAIA,GAAI,GAE3C,EAuHsB46F,CAAkBrjI,EAAWgC,EAAK/B,MAAQ+B,EAAK9B,OAAU+R,EAAKuvH,KAC9EgC,EAAeJ,EAAcllJ,QAKnC,IAFA0vC,EAAI6a,KAAO,EAEJ+6F,EAAalnJ,OAAS,GAAG,CAcvB,IAAAmnJ,EAAAC,EAZP,IADC/xC,GAAS6xC,EACG,MAAT7xC,EAQJ,GAJA/jE,EAAIrwC,KAAKo0G,GACT/jE,EAAI6a,MAAQkpD,EAAMlpD,MAElBw6F,EAAQd,GAAcv0G,EAAKj8B,EAAM0wI,KACpBc,EAEXK,EAAa9qI,QACbyqI,EAAOF,OAGPr1G,EAAI6a,MAAuB,QAAnBg7F,EAAa,QAAbC,EAAI91G,EAAIr5B,aAAK,IAAAmvI,OAAA,EAATA,EAAWj7F,YAAI,IAAAg7F,EAAAA,EAAI,EAC/BzhI,EAAO++B,GAASnT,EAAKj8B,EAAMqQ,GAAM,GACjCrQ,EAAOrC,KAAKkC,IAAIwQ,EAAK/B,MAAO+B,EAAK9B,QACjC0tB,EAAItxC,OAASsxC,EAAI6a,KAAO,EACxB06F,EAAOn0I,GAEX,CAOA,OALI4+B,EAAItxC,SACN0lB,EAAO++B,GAASnT,EAAKj8B,EAAMqQ,GAAM,GACjC4rB,EAAItxC,OAASsxC,EAAI6a,KAAO,GAG1BvgC,GAAAA,GAAA,GACK+J,GAAI,IACPjS,SAAUojI,EAAcngJ,KAAI4X,GAAKmoI,GAASnoI,EAAGwnI,MAEjD,CAEA,OAAOpwH,CAAI,EAuJA0xH,GAAsB,CACjCtB,YAAa,IAAO,EAAI/yI,KAAK8I,KAAK,IAClCwzB,QAAS,QACTqvD,QAAS,OACT3xF,KAAM,OACN27C,kBAAmB,OACnBuO,wBAAyB,OACzBC,eAAgB,EAChB3O,kBAAmB,KACnBC,gBAAiB,UAGb6+F,GAAsB,CAC1BC,qBAAqB,EACrBC,WAAY,KACZC,iBAAa3kJ,EACb4kJ,UAAW,GACXC,gBAAiBN,GAAoBtB,YACrC6B,YAAaP,GAAoB/3G,SAenC,SAASu4G,GAAWhtH,GAQqB,IARpB,QACnB+oB,EAAO,UACPkkG,EAAS,KACT96I,EAAI,WACJ+6I,EAAU,aACVhkC,EAAY,aACZG,EAAY,QACZF,GACiBnpF,EACjB,GAAI3zB,EAAAA,eAAqB08C,GACvB,OACE18C,EAAAA,cAACsd,EAAK,CAACu/F,aAAcA,EAAcG,aAAcA,EAAcF,QAASA,GACrE98G,EAAAA,aAAmB08C,EAASkkG,IAInC,GAAuB,mBAAZlkG,EACT,OACE18C,EAAAA,cAACsd,EAAK,CAACu/F,aAAcA,EAAcG,aAAcA,EAAcF,QAASA,GACrEpgE,EAAQkkG,IAKf,IAAM,EAAE5jJ,EAAC,EAAEmD,EAAC,MAAEsc,EAAK,OAAEC,EAAM,MAAEpgB,GAAUskJ,EACnCE,EAAQ,KACRrkI,EAAQ,IAAMC,EAAS,IAAMkkI,EAAUpkI,UAAqB,SAAT1W,IACrDg7I,EACE9gJ,EAAAA,cAAC6uG,GAAO,CACN3nD,OAAQ,CACN,CAAElqD,EAAGA,EAAI,EAAGmD,EAAGA,EAAIuc,EAAS,GAC5B,CAAE1f,EAAGA,EAAI,EAAGmD,EAAGA,EAAIuc,EAAS,EAAI,GAChC,CAAE1f,EAAGA,EAAI,EAAGmD,EAAGA,EAAIuc,EAAS,EAAI,OAKxC,IAAIinF,EAAO,KACLo9C,EAAW98C,GAAc28C,EAAUrmJ,MACrCkiB,EAAQ,IAAMC,EAAS,IAAMqkI,EAAStkI,MAAQA,GAASskI,EAASrkI,OAASA,IAC3EinF,EACE3jG,EAAAA,cAAA,QAAMhD,EAAGA,EAAI,EAAGmD,EAAGA,EAAIuc,EAAS,EAAI,EAAGynF,SAAU,IAC9Cy8C,EAAUrmJ,OAKjB,IAAM8qE,EAASw7E,GAAcryG,GAC7B,OACExuC,EAAAA,cAAA,SACEA,EAAAA,cAACkwD,GAAS7yC,GAAA,CACRkK,KAAMq5H,EAAUz0I,MAAQ,EAAIk5D,EAAO/oE,EAAQ+oE,EAAOvsE,QAAU,sBAC5D0uB,OAAO,QACH/c,KAAKm2I,EAAW,CAAC,aAAY,CACjC/jC,aAAcA,EACdG,aAAcA,EACdF,QAASA,EACT,2BAA0B8jC,EAAU9I,gBAErCgJ,EACAn9C,EAGP,CAEA,SAASq9C,GAAsB7kI,GAC7B,IAAM+M,EAAWF,KACXgqC,EAA+B,CACnCh2D,EAAGmf,EAAMykI,UAAU5jJ,EAAImf,EAAMykI,UAAUnkI,MAAQ,EAC/Ctc,EAAGgc,EAAMykI,UAAUzgJ,EAAIgc,EAAMykI,UAAUlkI,OAAS,GA2BlD,OAAO1c,EAAAA,cAAC2gJ,GAAWtjI,GAAA,GAAKlB,EAAK,CAAE0gG,aAxBVA,KACnB3zF,EACE6qE,GAA4B,CAC1BnB,YAAaz2E,EAAMykI,UAAU9I,aAC7B9jD,cAAe73E,EAAMisB,QACrB4qB,mBACAihC,sBAAuB93E,EAAMuG,KAEhC,EAgBwDs6F,aAdtCA,OAckEF,QAVvEA,KACd5zF,EACEkrE,GAAwB,CACtBxB,YAAaz2E,EAAMykI,UAAU9I,aAC7B9jD,cAAe73E,EAAMisB,QACrB4qB,mBACAihC,sBAAuB93E,EAAMuG,KAEhC,IAGL,CAEA,IAAMu+H,GAAiCjhJ,EAAAA,MACrCusC,IASM,IATL,QACCnE,EAAO,QACPqvD,EAAO,OACPjwE,EAAM,KACND,EAAI,YACJg5H,EAAW,GACX79H,GAGD6pB,EACOmB,EAAoD,CACxDypD,kBAAmBopD,EACnBtqD,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,iBAAa1rB,EACb2rB,OACA6gB,UACAqvD,UACAl9F,UAAMqB,EACNmzC,MAAM,EACNjpC,UAAMlK,EACNurB,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAK5EwzG,GAA+B,CACnC5yH,IAAK,EACLsY,MAAO,EACPC,OAAQ,EACRxY,KAAM,GAGR,SAAS8yH,GAAW1zG,GAYN,IAZO,QACnBiP,EAAO,UACPkkG,EAAS,OACTQ,EAAM,aACNC,EAAY,YACZC,GAOD7zG,GACO,GACJ/qB,EAAE,kBACF++B,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,wBACfyO,EAAuB,KACvBlqD,EAAI,WACJ+6I,EAAU,QACVz4G,EAAO,iBACP8lB,EAAgB,eAChBD,EACA4uD,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,GACZ8nC,GACE,MAAE5kI,EAAK,OAAEC,EAAM,EAAE1f,EAAC,EAAEmD,GAAMygJ,EAC1B/gG,GAAc7iD,EAAIyf,EAGlBogG,EAAgBzyG,KACfg3I,GAAmB,SAATt7I,GAAqD,mBAA1BuzG,GACxCA,EAAsBunC,EAAWx2I,EACnC,EAGI4yG,EAAgB5yG,KACfg3I,GAAmB,SAATt7I,GAAqD,mBAA1ByzG,GACxCA,EAAsBqnC,EAAWx2I,EACnC,EAGI0yG,EAAUA,KACD,SAATh3G,GACFw7I,EAAYV,IAETQ,GAAmB,SAATt7I,GAAoD,mBAAzBi3G,GACxCA,EAAqB6jC,EACvB,EAGI7iC,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,GACF,GACC,CAACA,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,GACF,GACC,CAACA,IAEJ,OACEluD,EAAAA,cAACuzI,GAAoB,CACnB/lF,YAAW,WAAA5yD,OAAagmJ,EAAU9I,cAClCh6I,KAAI,aAAAlD,OAAeilD,EAAU,QAAAjlD,OAtCd,EAsC+B,OAC9Cq8B,GAAG,kBACHu8G,cAAc,YACdjrF,MAAO0H,EACP9H,OAAQ5G,EACRwM,SAAUtM,EACVyG,SAAU5G,EACV4M,iBAAkB8vD,EAClB/vD,eAAgB8vD,IAEflhG,GACC7c,EAAAA,cAACsd,EAAK,CACJu/F,aAAcA,EACdG,aAAcA,EACdF,QAASA,EACTjgG,MAAK6H,GAAAA,GAAA,GAAO7H,GAAK,IAAE23H,gBAAiB,GAAF55I,OAAKoC,EAAC,KAAApC,OAAIuF,MAE5CH,EAAAA,cAACghJ,GAAqB,CACpBt+H,GAAIA,EACJg6B,QAASA,EACTtU,QAASA,EACTw4G,UAASl8H,GAAAA,GAAA,GACJk8H,GAAS,IACZn/F,oBACAuO,yBAA0BA,EAC1BvzC,QACAC,SACA1f,IACAmD,MAEF2F,KAAMA,EACN+6I,WAAYA,MAMxB,CASA,MAAMU,WAAyBjhG,EAAAA,cAA2Cr6C,WAAAA,GAAA,SAAAvK,WAAA6kD,GAAA,aAAA77B,GAAA,GAInE07H,KAAY7/F,GAAA,oBAuCF9xB,IACb,IAAM,QAAEquF,EAAO,KAAEh3G,GAAShP,KAAKqlB,MAC/B,GAAa,SAATrW,GAAmB2oB,EAAKjS,SAAU,CACpC,IAAM,MAAEC,EAAK,OAAEC,EAAM,QAAE0rB,EAAO,QAAEqvD,EAAO,YAAEonD,GAAgB/nJ,KAAKqlB,MACxD5lB,EAAO2nJ,GAAY,CACvB/xI,MAAO,EACPsiB,KAAI/J,GAAAA,GAAA,GAAO+J,GAAI,IAAEzxB,EAAG,EAAGmD,EAAG,EAAGsc,QAAOC,WACpCpgB,MAAO,EACP8rC,UACAqvD,UAEA2mD,yBAA0B3vH,EAAKqpH,eAG3BwI,EAAad,GAASjpJ,EAAMsoJ,IAE5B,UAAE2B,GAAc1pJ,KAAKyyB,MAC3Bi3H,EAAUzmJ,KAAK00B,GAEf33B,KAAKgqD,SAAS,CACZw/F,aACAC,YAAahqJ,EACbiqJ,aAEJ,CACI1jC,GACFA,EAAQruF,EACV,IACD8xB,GAAA,wBAiHkBn2C,IACjB,IAAMiuI,EAAajuI,EAAEkuI,QAAQ,GAC7B,GAAkB,MAAdD,EAAJ,CAGA,IAAM96I,EAASmc,SAAS8+H,iBAAiBH,EAAWzC,QAASyC,EAAWxC,SACxE,GAAKt4I,GAAWA,EAAOk7I,cAAyC,MAAzB3hJ,KAAKyyB,MAAM+2H,WAAlD,CAGA,IAAM5H,EAAYn7I,EAAOk7I,aAAa,4BAChC+I,EAAsBvD,GAAuBnnJ,KAAKyyB,MAAM+2H,WAAY5H,GAC1E,GA94BJ,SAAuBphJ,GACrB,OACW,MAATA,GACiB,iBAAVA,GACP,MAAOA,GACP,MAAOA,GACP,UAAWA,GACX,WAAYA,GACO,iBAAZA,EAAM0F,GACM,iBAAZ1F,EAAM6I,GACU,iBAAhB7I,EAAMmlB,OACW,iBAAjBnlB,EAAMolB,MAEjB,CAi4BS+kI,CAAcD,GAAnB,CAIA,IAAM,QAAEp5G,EAAO,SAAElf,GAAapyB,KAAKqlB,MAE7B62C,EAAmB,CACvBh2D,EAAGwkJ,EAAWxkJ,EAAIwkJ,EAAW/kI,MAAQ,EACrCtc,EAAGqhJ,EAAWrhJ,EAAIqhJ,EAAW9kI,OAAS,GAKxCwM,EACE6qE,GAA4B,CAC1BnB,YAAa8lD,EACb1kD,cAAe5rD,EACf4qB,mBACAihC,sBAAuBn9F,KAAKqlB,MAAMuG,KAhBtC,CALA,CAJA,CA2BC,GACF,CAjND,+BAAO/Z,CAAyBuwG,EAAiCtmE,GAC/D,GACEsmE,EAAUnzF,OAAS6sB,EAAUy3E,UAC7BnR,EAAUpzG,OAAS8sC,EAAU8uG,UAC7BxoC,EAAUz8F,QAAUm2B,EAAUme,WAC9BmoD,EAAUx8F,SAAWk2B,EAAUoe,YAC/BkoD,EAAU9wE,UAAYwK,EAAU8tG,aAChCxnC,EAAU2lC,cAAgBjsG,EAAU6tG,gBACpC,CACA,IAAMlqJ,EAAoB2nJ,GAAY,CACpC/xI,MAAO,EAEPsiB,KAAM,CAAEjS,SAAU08F,EAAUnzF,KAAM/oB,EAAG,EAAGmD,EAAG,EAAGsc,MAAOy8F,EAAUz8F,MAAOC,OAAQw8F,EAAUx8F,QACxFpgB,MAAO,EACP8rC,QAAS8wE,EAAU9wE,QACnBqvD,QAASyhB,EAAUzhB,UAEf6oD,EAA0Bd,GAASjpJ,EAAM2iH,EAAU2lC,aAEzD,OAAAn6H,GAAAA,GAAA,GACKkuB,GAAS,IACZ0tG,aACAC,YAAahqJ,EACbiqJ,UAAW,CAACjqJ,GACZkqJ,gBAAiBvnC,EAAU2lC,YAC3Bx0B,SAAUnR,EAAUnzF,KACpBgrC,UAAWmoD,EAAUz8F,MACrBu0C,WAAYkoD,EAAUx8F,OACtBgkI,YAAaxnC,EAAU9wE,QACvBs5G,SAAUxoC,EAAUpzG,MAExB,CAEA,OAAO,IACT,CAgCA67I,eAAAA,CAAgBlzH,EAAmB1zB,GACjC,IAAI,UAAEylJ,GAAc1pJ,KAAKyyB,OACnB,MAAE9M,EAAK,OAAEC,EAAM,QAAE0rB,EAAO,QAAEqvD,EAAO,YAAEonD,GAAgB/nJ,KAAKqlB,MACxD5lB,EAAO2nJ,GAAY,CACvB/xI,MAAO,EACPsiB,KAAI/J,GAAAA,GAAA,GAAO+J,GAAI,IAAEzxB,EAAG,EAAGmD,EAAG,EAAGsc,QAAOC,WACpCpgB,MAAO,EACP8rC,UACAqvD,UAEA2mD,yBAA0B3vH,EAAKqpH,eAG3BwI,EAAad,GAASjpJ,EAAMsoJ,GAElC2B,EAAYA,EAAU9lJ,MAAM,EAAGK,EAAI,GACnCjE,KAAKgqD,SAAS,CACZw/F,aACAC,YAAa9xH,EACb+xH,aAEJ,CAEAoB,UAAAA,CAAWrrJ,EAAmBk4B,GAC5B,IAAM,QAAEiuB,EAAO,KAAE52C,GAAShP,KAAKqlB,MACzBykI,EAASl8H,GAAAA,GAAAA,GAAA,GAAQ1I,EAAsBllB,KAAKqlB,QAAWsS,GAAI,IAAEl4B,SAC7D6qJ,GAAU3yH,EAAKjS,WAAaiS,EAAKjS,SAAS1jB,QAE1C,YAAEynJ,GAAgBzpJ,KAAKyyB,MAK7B,SAJ4Bg3H,aAAW,EAAXA,EAAa/jI,WAAY,IAAIvd,QACtDuE,GAAsBA,EAAK2I,QAAUsiB,EAAKtiB,OAAS3I,EAAKjJ,OAASk0B,EAAKl0B,OAGjDzB,QAAUvC,EAAK4V,OAAkB,SAATrG,EACvC,KAIP9F,EAAAA,cAACsd,EAAK,CACJ5e,IAAG,yBAAA9D,OAA2BgmJ,EAAU5jJ,EAAC,KAAApC,OAAIgmJ,EAAUzgJ,EAAC,KAAAvF,OAAIgmJ,EAAUrmJ,MACtEqiB,UAAS,0BAAAhiB,OAA4B6zB,EAAKtiB,QAE1CnM,EAAAA,cAACmhJ,GAAW,CACVC,OAAQA,EACR1kG,QAASA,EACTkkG,UAAWA,EACXS,aAAcvqJ,KAAKqlB,MACnBmlI,YAAaxqJ,KAAK+qJ,cAEnBpzH,EAAKjS,UAAYiS,EAAKjS,SAAS1jB,OAC5B21B,EAAKjS,SAAS/c,KAAK0uG,GAAuBr3G,KAAK8qJ,WAAWnzH,EAAM0/E,KAChE,KAGV,CAEA2zC,cAAAA,GACE,IAAM,WAAExB,GAAexpJ,KAAKyyB,MAE5B,OAAK+2H,EAIExpJ,KAAK8qJ,WAAWtB,EAAYA,GAH1B,IAIX,CAGAyB,eAAAA,GACE,IAAM,QAAEtqD,EAAO,iBAAEuqD,GAAqBlrJ,KAAKqlB,OACrC,UAAEqkI,GAAc1pJ,KAAKyyB,MAE3B,OACEvpB,EAAAA,cAAA,OAAK4c,UAAU,sCAAsCC,MAAO,CAAEolI,UAAW,MAAOv5H,UAAW,WACxF83H,EAAU/gJ,KAAI,CAAC+D,EAAmBzI,KAEjC,IAEI2hD,EAFEwlG,EAAU1/I,KAAIgB,EAAMi0F,EAAmB,QACvCl9F,EAAkC,iBAAZ2nJ,EAAuBA,EAAU,OAY7D,OAVIliJ,EAAAA,eAAqBgiJ,KAEvBtlG,EAAU18C,EAAAA,aAAmBgiJ,EAAkBx+I,EAAMzI,IAGrD2hD,EAD8B,mBAArBslG,EACCA,EAAiBx+I,EAAMzI,GAEvBR,EAKVyF,EAAAA,cAAA,OACE88G,QAAShmH,KAAK6qJ,gBAAgBrvH,KAAKx7B,KAAM0M,EAAMzI,GAC/C2D,IAAG,cAAA9D,OAAgB6nB,MACnB7F,UAAU,kCACVC,MAAO,CACLgiF,OAAQ,UACR72E,QAAS,eACTQ,QAAS,QACTkhG,WAAY,OACZviG,MAAO,OACPc,YAAa,QAGdy0B,EACG,IAKhB,CAoCAjzC,MAAAA,GACE,IAAA04I,EAAuErrJ,KAAKqlB,OAAtE,MAAEM,EAAK,OAAEC,EAAM,UAAEE,EAAS,MAAEC,EAAK,SAAEL,EAAQ,KAAE1W,GAAiBq8I,EAARnlI,E,6WAAMC,CAAAklI,EAAAjlI,IAC5DuuF,EAAQzvF,EAAsBgB,GAEpC,OACEhd,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACihJ,GAA8B,CAC7B74G,QAAStxC,KAAKqlB,MAAMisB,QACpBqvD,QAAS3gG,KAAKqlB,MAAMs7E,QACpBjwE,OAAQ1wB,KAAKqlB,MAAMqL,OACnBD,KAAMzwB,KAAKqlB,MAAMoL,KACjBg5H,YAAazpJ,KAAKyyB,MAAMg3H,YACxB79H,GAAI5rB,KAAKqlB,MAAMuG,KAEjB1iB,EAAAA,cAACqc,EAAOgB,GAAA,GACFouF,EAAK,CACThvF,MAAOA,EACPC,OAAiB,SAAT5W,EAAkB4W,EAAS,GAAKA,EACxCu0G,YAAan6H,KAAKo6H,kBAEjBp6H,KAAKgrJ,iBACLtlI,GAEO,SAAT1W,GAAmBhP,KAAKirJ,kBAG/B,EAGF,SAASK,GAAsBjmI,GAC7B,IAAM+M,EAAWF,KACXvM,EAAQ03B,KACRz3B,EAAS03B,KACf,IAAKlM,GAAiBzrB,KAAWyrB,GAAiBxrB,GAChD,OAAO,KAET,IAAQgG,GAAI+7F,GAAetiG,EAC3B,OACEnc,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAI+7F,EAAY34G,KAAK,YAC3C4c,GAAM1iB,EAAAA,cAACuhJ,GAAgBlkI,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,EAAIjG,MAAOA,EAAOC,OAAQA,EAAQwM,SAAUA,MAG1F,CAQO,SAASm5H,GAAQ/5H,GAAqB,IAAAg6H,EACrCnmI,EAAQ+J,GAAoBoC,EAAc63H,KAC1C,UAAEvjI,EAAS,MAAEC,EAAK,MAAEJ,EAAK,OAAEC,GAAWP,GAErC2mF,EAAe64C,IAAoBxiI,EAAAA,EAAAA,UAA6B,MAEvE,OACEnZ,EAAAA,cAACw5I,GAAqB,CAAC/lH,eAAgB,CAAE97B,YAAW8hJ,eAA+B,QAAjB6I,EAAEnmI,EAAMS,iBAAS,IAAA0lI,EAAAA,EAAI,WACrFtiJ,EAAAA,cAACi1C,GAAiB,CAACxsB,OAAQy4H,KAC3BlhJ,EAAAA,cAACm7I,GAAe,CACdO,qBAAqB,EACrB9+H,UAAWA,EACXC,MAAOA,EACPJ,MAAOA,EACPC,OAAQA,EAMR++H,YAAY,EACZl/H,IAAMkS,IACiB,MAAjBq0E,GAAiC,MAARr0E,GAC3BktH,EAAiBltH,EACnB,EAEFouF,kBAAcjhH,EACdohH,kBAAcphH,EACdkhH,aAASlhH,EACT0/I,iBAAa1/I,EACbwwH,iBAAaxwH,EACb2/I,eAAW3/I,EACXw/I,mBAAex/I,EACfy/I,mBAAez/I,EACfywH,kBAAczwH,EACdq1H,iBAAar1H,EACb4/I,gBAAY5/I,GAEZoE,EAAAA,cAAC4/F,GAAqBvvD,SAAQ,CAAC/4C,MAAOwrG,GACpC9iG,EAAAA,cAACoiJ,GAA0BjmI,KAKrC,CAnECokC,GArPKghG,GAAgB,cACC,W,2uDCrvBvB,IAMMgB,GAAW9zH,GAAqBA,EAAKtuB,EAAIsuB,EAAKtN,GAAK,EAGnDzkB,GAAY6mB,GAA0DA,GAASA,EAAMjsB,OAAU,EAE/FkrJ,GAAcA,CAACC,EAAoCC,IACvDA,EAAIzgI,QAAO,CAAChqB,EAAQyqB,IAAOzqB,EAASyE,GAAS+lJ,EAAM//H,KAAM,GAErDigI,GAA2BA,CAC/BC,EACAH,EACAC,IAEAA,EAAIzgI,QAAO,CAAChqB,EAAQyqB,KAClB,IAAMmgI,EAAOJ,EAAM//H,GACnB,GAAY,MAARmgI,EACF,OAAO5qJ,EAET,IAAM6qJ,EAAaF,EAAKC,EAAKrlJ,QAC7B,OAAkB,MAAdslJ,EACK7qJ,EAGFA,EAASsqJ,GAAQO,GAAcpmJ,GAAS+lJ,EAAM//H,GAAI,GACxD,GAECqgI,GAA2BA,CAC/BH,EACAH,EACAC,IAEAA,EAAIzgI,QAAO,CAAChqB,EAAgByqB,KAC1B,IAAMmgI,EAAOJ,EAAM//H,GACnB,GAAY,MAARmgI,EACF,OAAO5qJ,EAET,IAAM+qJ,EAAaJ,EAAKC,EAAKtlJ,QAC7B,OAAkB,MAAdylJ,EACK/qJ,EAGFA,EAASsqJ,GAAQS,GAActmJ,GAAS+lJ,EAAM//H,GAAI,GACxD,GAECugI,GAAaA,CAACr/I,EAAkBC,IAAqBD,EAAEzD,EAAI0D,EAAE1D,EAyB7D+iJ,GAAuBA,CAACN,EAAoBO,KAGhD,IAFA,IAAM,YAAEC,GAAgBD,EAEfpoJ,EAAI,EAAGU,EAAM2nJ,EAAYtqJ,OAAQiC,EAAIU,EAAKV,IAAK,CACtD,IAAMioJ,EAAaI,EAAYroJ,GAC/B,GAAkB,MAAdioJ,EAAJ,CAGA,IAAMzlJ,EAASqlJ,EAAKI,GAEhBzlJ,IACFA,EAAO4O,MAAQL,KAAKlP,IAAIumJ,EAAQh3I,MAAQ,EAAG5O,EAAO4O,OAElD+2I,GAAqBN,EAAMrlJ,GAN7B,CAQF,GAsHI8lJ,GAAoB,SAACC,EAA2B5mI,EAAgB6mI,GACpE,IADyG,IAAhB5/I,IAAIjI,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,KAAAA,UAAA,GACpFX,EAAI,EAAGU,EAAM6nJ,EAAUxqJ,OAAQiC,EAAIU,EAAKV,IAAK,CACpD,IAAMyoJ,EAAQF,EAAUvoJ,GACxB,GAAa,MAATyoJ,EAAJ,CAGA,IAAMl2I,EAAIk2I,EAAM1qJ,OAGZ6K,GACF6/I,EAAM7/I,KAAKs/I,IAIb,IADA,IAAInkI,EAAK,EACAjjB,EAAI,EAAGA,EAAIyR,EAAGzR,IAAK,CAC1B,IAAM4yB,EAAO+0H,EAAM3nJ,GACnB,GAAY,MAAR4yB,EAAJ,CAGA,IAAMtN,EAAKrC,EAAK2P,EAAKtuB,EAEjBghB,EAAK,IACPsN,EAAKtuB,GAAKghB,GAGZrC,EAAK2P,EAAKtuB,EAAIsuB,EAAKtN,GAAKoiI,CAPxB,CAQF,CAEAzkI,EAAKpC,EAAS6mI,EACd,IAAK,IAAI1nJ,EAAIyR,EAAI,EAAGzR,GAAK,EAAGA,IAAK,CAC/B,IAAM4yB,EAAO+0H,EAAM3nJ,GACnB,GAAY,MAAR4yB,EAAJ,CAGA,IAAMtN,EAAKsN,EAAKtuB,EAAIsuB,EAAKtN,GAAKoiI,EAAczkI,EAE5C,KAAIqC,EAAK,GAIP,MAHAsN,EAAKtuB,GAAKghB,EACVrC,EAAK2P,EAAKtuB,CALZ,CASF,CArCA,CAsCF,CACF,EAEMsjJ,GAAmBA,CACvBb,EACAU,EACAb,EACAn6F,KAEA,IAAK,IAAIvtD,EAAI,EAAG2oJ,EAAWJ,EAAUxqJ,OAAQiC,EAAI2oJ,EAAU3oJ,IAAK,CAC9D,IAAMyoJ,EAAQF,EAAUvoJ,GACxB,GAAa,MAATyoJ,EAIJ,IAAK,IAAI3nJ,EAAI,EAAGJ,EAAM+nJ,EAAM1qJ,OAAQ+C,EAAIJ,EAAKI,IAAK,CAChD,IAAM4yB,EAAO+0H,EAAM3nJ,GACnB,GAAY,MAAR4yB,GAIAA,EAAKk1H,YAAY7qJ,OAAQ,CAC3B,IAAM8qJ,EAAYpB,GAAYC,EAAOh0H,EAAKk1H,aAEpCxjJ,EADcwiJ,GAAyBC,EAAMH,EAAOh0H,EAAKk1H,aACvCC,EAExBn1H,EAAKtuB,IAAMA,EAAIoiJ,GAAQ9zH,IAAS65B,CAClC,CACF,CACF,GAGIu7F,GAAmBA,CACvBjB,EAIAU,EACAb,EACAn6F,KAEA,IAAK,IAAIvtD,EAAIuoJ,EAAUxqJ,OAAS,EAAGiC,GAAK,EAAGA,IAAK,CAC9C,IAAMyoJ,EAAQF,EAAUvoJ,GACxB,GAAa,MAATyoJ,EAIJ,IAAK,IAAI3nJ,EAAI,EAAGJ,EAAM+nJ,EAAM1qJ,OAAQ+C,EAAIJ,EAAKI,IAAK,CAChD,IAAM4yB,EAAO+0H,EAAM3nJ,GACnB,GAAY,MAAR4yB,GAIAA,EAAKq1H,YAAYhrJ,OAAQ,CAC3B,IAAMirJ,EAAYvB,GAAYC,EAAOh0H,EAAKq1H,aAEpC3jJ,EADc4iJ,GAAyBH,EAAMH,EAAOh0H,EAAKq1H,aACvCC,EAExBt1H,EAAKtuB,IAAMA,EAAIoiJ,GAAQ9zH,IAAS65B,CAClC,CACF,CACF,GAqEI07F,GAAcrwH,IAuBf,IAvBgB,KACnB5N,EAAI,MACJtJ,EAAK,OACLC,EAAM,WACN+rF,EAAU,UACVw7C,EAAS,YACTV,EAAW,KACX5/I,EAAI,cACJijB,EAAa,MACbJ,GAWDmN,GAIO,MAAE8uH,GAAU18H,GACZ,KAAE68H,GAzTWsB,EAAA3/H,EAEnB9H,EACAwnI,EACAz9H,KAaA,IAZ6C,IAAA29H,EAAAC,GAJ7C,MAAEZ,EAAK,MAAEf,GAAmBl+H,EAKtBq+H,EAAOY,EAAM/jJ,KAAI,CAAC8jB,EAAmBjnB,KACzC,IAAMrE,EAhDsBosJ,EAAC5B,EAAuB//H,KAMtD,IALA,IAAM4hI,EAAwB,GACxBX,EAAwB,GACxBP,EAAwB,GACxBU,EAAwB,GAErB/oJ,EAAI,EAAGU,EAAMgnJ,EAAM3pJ,OAAQiC,EAAIU,EAAKV,IAAK,CAChD,IAAM8nJ,EAAOJ,EAAM1nJ,IAEf8nJ,aAAI,EAAJA,EAAMrlJ,UAAWklB,IACnB0gI,EAAYrpJ,KAAK8oJ,EAAKtlJ,QACtBumJ,EAAY/pJ,KAAKgB,KAGf8nJ,aAAI,EAAJA,EAAMtlJ,UAAWmlB,IACnB4hI,EAAYvqJ,KAAK8oJ,EAAKrlJ,QACtBmmJ,EAAY5pJ,KAAKgB,GAErB,CAEA,MAAO,CAAEupJ,cAAaX,cAAaG,cAAaV,cAAa,EA4B5CiB,CAAwB5B,EAAOnmJ,GAE9C,OAAAooB,GAAAA,GAAAA,GAAA,GACKnB,GACAtrB,GAAM,IACTX,MAAOwU,KAAKlP,IAAI4lJ,GAAYC,EAAOxqJ,EAAO0rJ,aAAcnB,GAAYC,EAAOxqJ,EAAO6rJ,cAClF33I,MAAO,GAAC,IAIHpR,EAAI,EAAGU,EAAMmnJ,EAAK9pJ,OAAQiC,EAAIU,EAAKV,IAAK,CAC/C,IAAM0zB,EAAOm0H,EAAK7nJ,GAEN,MAAR0zB,GAAiBA,EAAK61H,YAAYxrJ,QACpCoqJ,GAAqBN,EAAMn0H,EAE/B,CACA,IAAMi1H,EAAiE,QAAzDS,EAAkD,QAAlDC,EAAG5nJ,KAAMomJ,GAAOr/H,GAAsBA,EAAMpX,eAAM,IAAAi4I,OAAA,EAA/CA,EAAiDj4I,aAAK,IAAAg4I,EAAAA,EAAI,EAE3E,GAAIT,GAAY,EAEd,IADA,IAAMa,GAAc9nI,EAAQwnI,GAAaP,EAChC3oJ,EAAI,EAAGU,EAAMmnJ,EAAK9pJ,OAAQiC,EAAIU,EAAKV,IAAK,CAC/C,IAAM0zB,EAAOm0H,EAAK7nJ,GACN,MAAR0zB,IAICA,EAAK20H,YAAYtqJ,QACN,YAAV0tB,IACFiI,EAAKtiB,MAAQu3I,GAGjBj1H,EAAKzxB,EAAIyxB,EAAKtiB,MAAQo4I,EACtB91H,EAAKvN,GAAK+iI,EACZ,CAGF,MAAO,CAAErB,OAAMc,WAAU,EA6QRQ,CAAan+H,EAAMtJ,EAAOwnI,EAAWz9H,GAChD88H,EA3QcV,KAGpB,IAFA,IAAM3qJ,EAAyB,GAEtB8C,EAAI,EAAGU,EAAMmnJ,EAAK9pJ,OAAQiC,EAAIU,EAAKV,IAAK,KAAAypJ,EACzC/1H,EAAOm0H,EAAK7nJ,GACN,MAAR0zB,IAICx2B,EAAOw2B,EAAKtiB,SACflU,EAAOw2B,EAAKtiB,OAAS,IAGL,QAAlBq4I,EAAAvsJ,EAAOw2B,EAAKtiB,cAAM,IAAAq4I,GAAlBA,EAAoBzqJ,KAAK00B,GAC3B,CAEA,OAAOx2B,CAAM,EA2PKwsJ,CAAa7B,GACzB8B,EArPcC,EACpBrB,EACA5mI,EACA6mI,EACAd,EACA77H,KAMA,IAJA,IAAMg+H,EAAiB94I,KAAKkC,OACvBs1I,EAAU7jJ,KAAI+jJ,IAAU9mI,GAAU8mI,EAAM1qJ,OAAS,GAAKyqJ,GAAer/I,KAAMs/I,EAAO9mJ,OAG9E2T,EAAI,EAAGqzI,EAAWJ,EAAUxqJ,OAAQuX,EAAIqzI,EAAUrzI,IAAK,CAC9D,IAAMmzI,EAAQF,EAAUjzI,GACxB,GAAa,MAATmzI,EAIJ,GAAsB,QAAlB58H,EAEF,IADA,IAAIi+H,EAAW,EACN9pJ,EAAI,EAAGU,EAAM+nJ,EAAM1qJ,OAAQiC,EAAIU,EAAKV,IAAK,CAChD,IAAM0zB,EAAO+0H,EAAMzoJ,GACP,MAAR0zB,IAIJA,EAAKtN,GAAKsN,EAAKn3B,MAAQstJ,EACvBn2H,EAAKtuB,EAAI0kJ,EACTA,GAAYp2H,EAAKtN,GAAKoiI,EACxB,MAEA,IAAK,IAAIxoJ,EAAI,EAAGU,EAAM+nJ,EAAM1qJ,OAAQiC,EAAIU,EAAKV,IAAK,CAChD,IAAM0zB,EAAO+0H,EAAMzoJ,GACP,MAAR0zB,IAIJA,EAAKtuB,EAAIpF,EACT0zB,EAAKtN,GAAKsN,EAAKn3B,MAAQstJ,EACzB,CAEJ,CAEA,OAAOnC,EAAMhjJ,KAAKojJ,GAAkBn+H,GAAAA,GAAA,GAA2Bm+H,GAAI,IAAE1hI,GAAIzkB,GAASmmJ,GAAQ+B,KAAU,EA2MzDD,CAAcrB,EAAW5mI,EAAQ6mI,EAAad,EAAO77H,GAIhG,GAFAy8H,GAAkBC,EAAW5mI,EAAQ6mI,EAAa5/I,GAE5B,YAAlBijB,EAEF,IADA,IAAI0hC,EAAQ,EACHvtD,EAAI,EAAGA,GAAK0tG,EAAY1tG,IAC/B8oJ,GAAiBjB,EAAMU,EAAWoB,EAAcp8F,GAAS,KAEzD+6F,GAAkBC,EAAW5mI,EAAQ6mI,EAAa5/I,GAElD8/I,GAAiBb,EAAMU,EAAWoB,EAAap8F,GAE/C+6F,GAAkBC,EAAW5mI,EAAQ6mI,EAAa5/I,GAQtD,MAlHqBmhJ,EAAClC,EAAoBH,KAC1C,IAAK,IAAI1nJ,EAAI,EAAGU,EAAMmnJ,EAAK9pJ,OAAQiC,EAAIU,EAAKV,IAAK,CAC/C,IAAM0zB,EAAOm0H,EAAK7nJ,GAClB,GAAY,MAAR0zB,EAAJ,CAGA,IAAIs2H,EAAK,EACL3qB,EAAK,EAET3rG,EAAKq1H,YAAYngJ,MAAK,CAACC,EAAGC,KAAM,IAAAmhJ,EAAAC,EAAAC,EAAAC,EACxBC,EAAkB,QAAXJ,EAAGvC,EAAM7+I,UAAE,IAAAohJ,OAAA,EAARA,EAAUznJ,OACpB8nJ,EAAkB,QAAXJ,EAAGxC,EAAM5+I,UAAE,IAAAohJ,OAAA,EAARA,EAAU1nJ,OAC1B,GAAe,MAAX6nJ,GAA8B,MAAXC,EACrB,OAAO,EAET,IAAMC,EAAkB,QAAhBJ,EAAGtC,EAAKwC,UAAQ,IAAAF,OAAA,EAAbA,EAAe/kJ,EACpBolJ,EAAkB,QAAhBJ,EAAGvC,EAAKyC,UAAQ,IAAAF,OAAA,EAAbA,EAAehlJ,EAC1B,OAAU,MAANmlJ,GAAoB,MAANC,EACT,EAEFD,EAAKC,CAAE,IAEhB92H,EAAKk1H,YAAYhgJ,MAAK,CAACC,EAAGC,KAAM,IAAA2hJ,EAAAC,EAAAC,EAAAC,EACxBC,EAAkB,QAAXJ,EAAG/C,EAAM7+I,UAAE,IAAA4hJ,OAAA,EAARA,EAAUhoJ,OACpBqoJ,EAAkB,QAAXJ,EAAGhD,EAAM5+I,UAAE,IAAA4hJ,OAAA,EAARA,EAAUjoJ,OAC1B,GAAe,MAAXooJ,GAA8B,MAAXC,EACrB,OAAO,EAET,IAAMP,EAAkB,QAAhBI,EAAG9C,EAAKgD,UAAQ,IAAAF,OAAA,EAAbA,EAAevlJ,EACpBolJ,EAAkB,QAAhBI,EAAG/C,EAAKiD,UAAQ,IAAAF,OAAA,EAAbA,EAAexlJ,EAC1B,OAAU,MAANmlJ,GAAoB,MAANC,EACT,EAEFD,EAAKC,CAAE,IAGhB,IAAK,IAAI1pJ,EAAI,EAAGiqJ,EAAOr3H,EAAKq1H,YAAYhrJ,OAAQ+C,EAAIiqJ,EAAMjqJ,IAAK,CAC7D,IAAMkqJ,EAAat3H,EAAKq1H,YAAYjoJ,GACpC,GAAkB,MAAdkqJ,EAAJ,CAGA,IAAMlD,EAAOJ,EAAMsD,GAEflD,IAEFA,EAAKkC,GAAKA,EACVA,GAAMlC,EAAK1hI,GANb,CAQF,CAEA,IAAK,IAAItlB,EAAI,EAAGmqJ,EAAOv3H,EAAKk1H,YAAY7qJ,OAAQ+C,EAAImqJ,EAAMnqJ,IAAK,CAC7D,IAAMoqJ,EAAax3H,EAAKk1H,YAAY9nJ,GACpC,GAAkB,MAAdoqJ,EAAJ,CAGA,IAAMpD,EAAOJ,EAAMwD,GAEfpD,IAEFA,EAAKzoB,GAAKA,EACVA,GAAMyoB,EAAK1hI,GANb,CAQF,CAzDA,CA0DF,GA+CA2jI,CAAelC,EAAM8B,GAId,CAAElB,MAAOZ,EAAMH,MAFsBiC,EAEL,EAGnCwB,GAA8B1iJ,IAC3B,CAAExG,GAAIwG,EAAKxG,IAAKwG,EAAKiZ,MAAQ,EAAGtc,GAAIqD,EAAKrD,IAAKqD,EAAKkZ,OAAS,IAG/DypI,GAA8B3iJ,GAC3B,YAAaA,EAChB,CACExG,GAAIwG,EAAKk+F,QAAUl+F,EAAK4iJ,SAAW,EACnCjmJ,GAAIqD,EAAKm+F,QAAUn+F,EAAK6iJ,SAAW,QAErCzqJ,EAqDAjE,GAAwB,CAC5BwlF,UAAW,SACXgV,wBAAyB,OACzBE,0BAA2B,CAAC,QAC5BmE,uBA1B2D8vD,CAC3DjnI,EACAuzE,EACAnZ,EACAge,KAEA,GAAmB,MAAf7E,GAA8C,iBAAhBA,GAGd,MAAhBnZ,GAAgD,iBAAjBA,EAAnC,CAGA,IAAM8sE,EAAa3zD,EAAY1/D,MAAM,MAC9BszH,EAAYlqJ,GAASiqJ,EACtB/iJ,EAAOhB,KAAIi3E,EAAc,GAAF7+E,OAAK4rJ,EAAU,MAAA5rJ,OAAK0B,EAAK,MACtD,GAAIkH,EAAM,CACR,IAAMkkB,EA3CkB++H,EAC1BjjJ,EACAsC,EACA2xF,KAEA,IAAM,QAAE/vE,GAAYlkB,EACpB,GAAa,SAATsC,EACF,MAAO,CACL4hB,UACAntB,KAAM4tC,GAAkBzgB,EAAS+vE,EAAS,IAC1CngG,MAAO6wC,GAAkBzgB,EAAS,UAGtC,GAAI,WAAYA,GAAWA,EAAQlqB,QAAUkqB,EAAQnqB,OAAQ,CAC3D,IAAMmpJ,EAAav+G,GAAkBzgB,EAAQlqB,OAAQi6F,EAAS,IACxDkvD,EAAax+G,GAAkBzgB,EAAQnqB,OAAQk6F,EAAS,IAE9D,MAAO,CACL/vE,UACAntB,KAAM,GAAFK,OAAK8rJ,EAAU,OAAA9rJ,OAAM+rJ,GACzBrvJ,MAAO6wC,GAAkBzgB,EAAS,SAEtC,CAEgB,EAmBE++H,CAAoBjjJ,EAAMgjJ,EAAiC/uD,GAC3E,OAAO/vE,CACT,CAPA,CAQgB,EAQhB+1D,kBAAc7hF,GAGVgrJ,GAAgC5mJ,EAAAA,MACpCusC,IASqH,IATpH,QACCnE,EAAO,QACPqvD,EAAO,OACPjwE,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJwrB,EAAI,GACJrD,GAC8G6pB,EACxGmB,EAAoD,CACxDypD,kBAAmBpxE,EACnBkwE,YAAaryE,GACb8J,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACA7tC,OACAk9F,UACA1oD,MAAM,EACNjpC,UAAMlK,EACNurB,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAoNlF,IAAMm5G,GAAiBp5G,IAgBM,IAhBL,KACtBo1G,EAAI,MACJW,EAAK,KACLn1H,EAAI,IACJC,EAAG,EACHvzB,EAAC,YACD+rJ,EAAW,cACXC,GASDt5G,GACSs3G,GAAIiC,EAAiB5sB,GAAI6sB,EAAiB9lI,GAAI+lI,GAAcrE,EAC9DC,EAAaU,EAAMX,EAAKrlJ,QACxBwlJ,EAAaQ,EAAMX,EAAKtlJ,QAC9B,GAAkB,MAAdulJ,GAAoC,MAAdE,EAA1B,CAGA,IAAMthD,EAAUohD,EAAW9lJ,EAAI8lJ,EAAW5hI,GAAKmN,EACzC+3H,EAAUpD,EAAWhmJ,EAAIqxB,EACzB84H,EAhwBuBC,EAACxjJ,EAAWC,KACzC,IAAMwjJ,GAAMzjJ,EACN0jJ,EAAKzjJ,EAAIwjJ,EACf,OAAQxyI,GAAcwyI,EAAKC,EAAKzyI,CAAC,EA6vBPuyI,CAAuB1lD,EAAS0kD,GACpDmB,EAAiBJ,EAAkBJ,GACnCS,EAAiBL,EAAkB,EAAIJ,GAqB7C,OAjB0BriI,GAAA,CACxBg9E,UAEA0kD,UACAzkD,QAPcmhD,EAAW3iJ,EAAI6mJ,EAAkBE,EAAY,EAAI54H,EAS/D+3H,QARcrD,EAAW7iJ,EAAI8mJ,EAAkBC,EAAY,EAAI54H,EAS/Di5H,iBACAC,iBACAR,kBACAC,kBACAC,YACA5qJ,MAAOvB,EACP2sB,QAAOhD,GAAAA,GAAA,GAAOm+H,GAAI,IAAErlJ,OAAQslJ,EAAYvlJ,OAAQylJ,KAC7C/mI,EAAiC6qI,GAvBtC,CA0BgB,EAGlB,SAASW,GAAiBl1F,GAkBvB,IAlBwB,gBACzBwgC,EAAe,MACf52E,EAAK,EACJ,YACD2qI,EACAjqC,aAAAA,EACAG,aAAAA,EACAF,QAAAA,EAAO,QACP10E,GAUDmqB,EACOS,EAAmBmzF,GAA2BhqI,GAC9Cy2E,EAAc,QAAHh4F,OAAWG,GAEtBmuB,EAAWF,KAEX1uB,EAAS,CACbuiH,aAAezyG,IACb8e,EACE6qE,GAA4B,CAC1BnB,cACAoB,cAAe5rD,EACf4qB,mBACAihC,sBAAuBlB,KAG3B8pB,EAAa1gG,EAAO/R,EAAE,EAExB4yG,aAAe5yG,IACb8e,EAASirE,MACT6oB,EAAa7gG,EAAO/R,EAAE,EAExB0yG,QAAU1yG,IACR8e,EACEkrE,GAAwB,CACtBxB,cACAoB,cAAe5rD,EACf4qB,mBACAihC,sBAAuBlB,KAG3B+pB,EAAQ3gG,EAAO/R,EAAE,GAIrB,OAAOpK,EAAAA,cAACsd,EAAUhjB,EAlIpB,SAAwBsuB,EAAuCzM,GAC7D,GAAInc,EAAAA,eAAqB4oB,GACvB,OAAO5oB,EAAAA,aAAmB4oB,EAAQzM,GAEpC,GAAsB,mBAAXyM,EACT,OAAOA,EAAOzM,GAGhB,IAAM,QAAEulF,EAAO,QAAEC,EAAO,eAAE4lD,EAAc,QAAEnB,EAAO,QAAEC,EAAO,eAAEmB,EAAc,UAAEN,GAAyB/qI,EAAXa,EAAMC,GAAKd,EAAKe,IAE1G,OACEld,EAAAA,cAAA,OAAAqd,GAAA,CACET,UAAU,uBACVvM,EAAC,gBAAAzV,OACM8mG,EAAO,KAAA9mG,OAAI+mG,EAAO,iBAAA/mG,OAClB2sJ,EAAc,KAAA3sJ,OAAI+mG,EAAO,KAAA/mG,OAAI4sJ,EAAc,KAAA5sJ,OAAIyrJ,EAAO,KAAAzrJ,OAAIwrJ,EAAO,KAAAxrJ,OAAIyrJ,EAAO,cAEnF9+H,KAAK,OACLC,OAAO,OACPF,YAAa4/H,EACbQ,cAAc,OACV1rI,EAAsBgB,IAGhC,CA0G6B2qI,CAAeb,EAAa3qI,GACzD,CAEA,SAASyrI,GAAqBlqC,GAkB3B,IAlB4B,gBAC7B3qB,EAAe,cACf80D,EAAa,MACbpF,EAAK,YACLqE,EAAW,aACXjqC,EAAY,aACZG,EAAY,QACZF,EAAO,QACP10E,GAUDs1E,EACC,OACE19G,EAAAA,cAACsd,EAAK,CAACV,UAAU,wBAAwBle,IAAI,yBAC1C+jJ,EAAMhjJ,KAAI,CAACojJ,EAAkB9nJ,KAC5B,IAAM+sJ,EAAYD,EAAc9sJ,GAChC,OAAiB,MAAb+sJ,EACK,KAGP9nJ,EAAAA,cAACynJ,GAAiB,CAChB10D,gBAAiBA,EACjBr0F,IAAG,QAAA9D,OAAUioJ,EAAKrlJ,OAAM,KAAA5C,OAAIioJ,EAAKtlJ,OAAM,KAAA3C,OAAIioJ,EAAKvrJ,OAChD6kB,MAAO2rI,EACPhB,YAAaA,EACb/rJ,EACA8hH,aAAcA,EACdG,aAAcA,EACdF,QAASA,EACT10E,QAASA,GACT,IAKZ,CAgBA,IAAM2/G,GAAiB53B,IAYjB,IAZkB,KACtB1hG,EAAI,YACJu5H,EAAW,IACX15H,EAAG,KACHD,EAAI,EACJtzB,GAODo1H,GACO,EAAEnzH,EAAC,EAAEmD,EAAC,GAAE+gB,EAAE,GAAEC,GAAOsN,EAWzB,OAT0B/J,GAAAA,GAAA,GACrBzI,EAAiC+rI,IAAY,IAChDhrJ,EAAGA,EAAIqxB,EACPluB,EAAGA,EAAImuB,EACP7R,MAAOyE,EACPxE,OAAQyE,EACR7kB,MAAOvB,EACP2sB,QAAS+G,GAEK,EAGlB,SAASw5H,GAAWpf,GAkBjB,IAlBkB,gBACnB91C,EAAe,MACf52E,EAAK,YACL6rI,EAAW,EACXjtJ,EACA8hH,aAAAA,EACAG,aAAAA,EACAF,QAAAA,EAAO,QACP10E,GAUDygG,EACO3/G,EAAWF,KAEXgqC,EAAmBkzF,GAA2B/pI,GAC9Cy2E,EAAc,QAAHh4F,OAAWG,GAEtBT,EAAS,CACbuiH,aAAezyG,IACb8e,EACE6qE,GAA4B,CAC1BnB,cACAoB,cAAe5rD,EACf4qB,mBACAihC,sBAAuBlB,KAG3B8pB,EAAa1gG,EAAO/R,EAAE,EAExB4yG,aAAe5yG,IACb8e,EAASirE,MACT6oB,EAAa7gG,EAAO/R,EAAE,EAExB0yG,QAAU1yG,IACR8e,EACEkrE,GAAwB,CACtBxB,cACAoB,cAAe5rD,EACf4qB,mBACAihC,sBAAuBlB,KAG3B+pB,EAAQ3gG,EAAO/R,EAAE,GAIrB,OAAOpK,EAAAA,cAACsd,EAAUhjB,EA9FpB,SAAwBsuB,EAAuCzM,GAC7D,OAAInc,EAAAA,eAAqB4oB,GAChB5oB,EAAAA,aAAmB4oB,EAAQzM,GAEd,mBAAXyM,EACFA,EAAOzM,GAKdnc,EAAAA,cAACkwD,GAAS7yC,GAAA,CAACT,UAAU,uBAAuB2K,KAAK,UAAUymG,YAAY,OAAUhyG,EAAsBG,IAE3G,CAkF6B+rI,CAAeF,EAAa7rI,GACzD,CAEA,SAASgsI,GAAehf,GAgBrB,IAhBsB,gBACvBp2C,EAAe,cACfq1D,EAAa,YACbJ,EAAW,aACXnrC,EAAY,aACZG,EAAY,QACZF,EAAO,QACP10E,GASD+gG,EACC,OACEnpI,EAAAA,cAACsd,EAAK,CAACV,UAAU,wBAAwBle,IAAI,yBAC1C0pJ,EAAc3oJ,KAAI,CAAC4oJ,EAActtJ,IAE9BiF,EAAAA,cAACioJ,GAAW,CACVl1D,gBAAiBA,EACjBr0F,IAAG,QAAA9D,OAAUytJ,EAAa/rJ,MAAK,KAAA1B,OAAIytJ,EAAarrJ,EAAC,KAAApC,OAAIytJ,EAAaloJ,GAClEgc,MAAOksI,EACPL,YAAaA,EACbjtJ,EAAGA,EACH8hH,aAAcA,EACdG,aAAcA,EACdF,QAASA,EACT10E,QAASA,MAMrB,CAEO,IAAMkgH,GAAqB,CAChC9hI,MAAO,UACP4hB,QAAS,QACTqgE,WAAY,GACZs+C,cAAe,GACft+H,OAAQ,CAAE6F,IAAK,EAAGsY,MAAO,EAAGC,OAAQ,EAAGxY,KAAM,GAC7CopE,QAAS,OACT8rD,YAAa,GACbU,UAAW,GACXtgJ,MAAM,EACNijB,cAAe,WAOjB,SAAS2hI,GAAWpsI,GAClB,IAAM,UAAES,EAAS,MAAEC,EAAK,SAAEL,EAAQ,GAAEkG,GAAkBvG,EAAXa,EAAMC,GAAKd,EAAKq1C,KACrD,KACJqxF,EAAI,QACJz6G,EAAO,KACP3Z,EAAI,aACJouF,EAAY,aACZG,EAAY,QACZF,EAAO,KACP/2F,EAAI,WACJ0iF,EAAU,UACVw7C,EAAS,YACTV,EAAW,KACX5/I,EAAI,cACJojJ,EAAa,OACbt+H,EAAM,cACN7B,EAAa,MACbJ,GACErK,EAEEsvF,EAAQzvF,EAAsBgB,GAE9BP,EAAQ03B,KACRz3B,EAAS03B,MAET,MAAEquG,EAAK,cAAEoF,EAAa,cAAEO,IAAkB7nJ,EAAAA,EAAAA,UAAQ,KAAM,IAAAioJ,EAAAC,EAAAC,EAAAC,EAC5D,IAAK5iI,IAAStJ,IAAUC,GAAUD,GAAS,GAAKC,GAAU,EACxD,MAAO,CAAE8mI,MAAO,GAAIf,MAAO,GAAIoF,cAAe,GAAIO,cAAe,IAEnE,IAAMQ,EAAensI,GAAoB,QAAf+rI,EAAI//H,EAAO4F,YAAI,IAAAm6H,EAAAA,EAAI,IAAkB,QAAhBC,EAAIhgI,EAAOme,aAAK,IAAA6hH,EAAAA,EAAI,GAC7DI,EAAgBnsI,GAAoB,QAAdgsI,EAAIjgI,EAAO6F,WAAG,IAAAo6H,EAAAA,EAAI,IAAmB,QAAjBC,EAAIlgI,EAAOoe,cAAM,IAAA8hH,EAAAA,EAAI,GAC/DG,EAAW9E,GAAY,CAC3Bj+H,OACAtJ,MAAOmsI,EACPlsI,OAAQmsI,EACRpgD,aACAw7C,YACAV,cACA5/I,OACAijB,gBACAJ,UAGI8H,EAAM7F,EAAO6F,KAAO,EACpBD,EAAO5F,EAAO4F,MAAQ,EACtB06H,EAAmBD,EAASrG,MAC/BhjJ,KAAI,CAACzE,EAAGD,IACA8rJ,GAAe,CAAEhE,KAAM7nJ,EAAGwoJ,MAAOsF,EAAStF,MAAOzoJ,IAAGuzB,MAAKD,OAAMy4H,YAAajE,EAAMkE,oBAE1F9nJ,OAAO0kB,IAEJqlI,EAAmBF,EAAStF,MAAM/jJ,KAAI,CAAC6N,EAAGvS,IACvCgtJ,GAAe,CACpBt5H,KAAMnhB,EACN06I,YAAav5H,EACb1zB,IACAuzB,MACAD,WAIJ,MAAO,CACLm1H,MAAOsF,EAAStF,MAChBf,MAAOqG,EAASrG,MAChBoF,cAAekB,EACfX,cAAeY,EAChB,GACA,CACDjjI,EACAtJ,EACAC,EACA+L,EACAggF,EACAw7C,EACAV,EACA5/I,EACAk/I,EACAp0H,EACAs4H,EACAvgI,EACAI,IAGIqiI,GAAmBz6H,EAAAA,EAAAA,cACvB,CAAChrB,EAA6BsC,EAAyBsE,KACjDyyG,GACFA,EAAar5G,EAAMsC,EAAMsE,EAC3B,GAEF,CAACyyG,IAGGqsC,GAAmB16H,EAAAA,EAAAA,cACvB,CAAChrB,EAA6BsC,EAAyBsE,KACjD4yG,GACFA,EAAax5G,EAAMsC,EAAMsE,EAC3B,GAEF,CAAC4yG,IAGG6kC,GAAcrzH,EAAAA,EAAAA,cAClB,CAAChrB,EAA6BsC,EAAyBsE,KACjD0yG,GACFA,EAAQt5G,EAAMsC,EAAMsE,EACtB,GAEF,CAAC0yG,IAGH,OAAK50E,GAAiBzrB,IAAWyrB,GAAiBxrB,IAAYqJ,GAASA,EAAK08H,OAAU18H,EAAKy9H,MAKzFxjJ,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACmrH,GAAe,CAAC1xC,aAAc,CAAEgpE,MAAOoF,EAAerE,MAAO4E,KAC9DpoJ,EAAAA,cAACqc,EAAOgB,GAAA,GAAKouF,EAAK,CAAEhvF,MAAOA,EAAOC,OAAQA,IACvCF,EACDxc,EAAAA,cAAC4nJ,GAAqB,CACpB70D,gBAAiBrwE,EACjB+/H,MAAOA,EACPoF,cAAeA,EACff,YAAajE,EACbz6G,QAASA,EACTy0E,aAAcA,CAACirC,EAAsB19I,IAAkB6+I,EAAiBnB,EAAW,OAAQ19I,GAC3F4yG,aAAcA,CAAC8qC,EAAsB19I,IAAkB8+I,EAAiBpB,EAAW,OAAQ19I,GAC3F0yG,QAASA,CAACgrC,EAAsB19I,IAAkBy3I,EAAYiG,EAAW,OAAQ19I,KAEnFpK,EAAAA,cAACmoJ,GAAe,CACdp1D,gBAAiBrwE,EACjB0lI,cAAeA,EACfJ,YAAav5H,EACb2Z,QAASA,EACTy0E,aAAcA,CAAC+jC,EAAsBx2I,IAAkB6+I,EAAiBrI,EAAW,OAAQx2I,GAC3F4yG,aAAcA,CAAC4jC,EAAsBx2I,IAAkB8+I,EAAiBtI,EAAW,OAAQx2I,GAC3F0yG,QAASA,CAAC8jC,EAAsBx2I,IAAkBy3I,EAAYjB,EAAW,OAAQx2I,OAzBhF,IA8BX,CASO,SAAS++I,GAAO7gI,GACrB,IAAMnM,EAAmC+J,GAAoBoC,EAAcggI,KACrE,MAAE7rI,EAAK,OAAEC,EAAM,MAAEG,EAAK,UAAED,EAAW8F,GAAI+7F,GAAetiG,GACrD2mF,EAAe64C,IAAoBxiI,EAAAA,EAAAA,UAA6B,MAEvE,OACEnZ,EAAAA,cAACw5I,GAAqB,CAAC/lH,eAAgB,CAAE97B,QAAOA,IAAI8hJ,eAAgB78H,QAAAA,EAAa,UAC/E5c,EAAAA,cAAC40C,GAAe,CAACn4B,MAAOA,EAAOC,OAAQA,IACvC1c,EAAAA,cAACi1C,GAAiB,CAACxsB,OAAQtM,EAAMsM,SAEjCzoB,EAAAA,cAACm7I,GAAe,CACdv+H,UAAWA,EACXC,MAAOA,EACPJ,MAAOA,EACPC,OAAQA,EAKR++H,YAAY,EACZl/H,IAAMkS,IACAA,IAASq0E,GACX64C,EAAiBltH,EACnB,EAEFouF,kBAAcjhH,EACdohH,kBAAcphH,EACdkhH,aAASlhH,EACT0/I,iBAAa1/I,EACbwwH,iBAAaxwH,EACb2/I,eAAW3/I,EACXw/I,mBAAex/I,EACfy/I,mBAAez/I,EACfywH,kBAAczwH,EACdq1H,iBAAar1H,EACb4/I,gBAAY5/I,GAEZoE,EAAAA,cAAC4/F,GAAqBvvD,SAAQ,CAAC/4C,MAAOwrG,GACpC9iG,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAI+7F,EAAY34G,KAAK,WAC3C4c,GACC1iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC4mJ,GAA6B,CAC5Bx+G,QAASjsB,EAAMisB,QACfqvD,QAASt7E,EAAMs7E,QACfjwE,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZwrB,KAAM5J,EAAM4J,KACZrD,GAAIA,IAEN1iB,EAAAA,cAACuoJ,GAAUlrI,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,UAQ3C,C,kgCAEAymI,GAAO3gJ,YAAc,SCpwCrB,IAAM40I,GAAuD,CAAC,QAEjDgM,GAAsB1kI,GAAAA,GAAA,GAC9B84H,IAAsB,IACzB72H,OAAQ,UACRurC,WAAY,GACZC,UAAW,MA6BAk3F,IAAa/sI,EAAAA,EAAAA,aAA2C,CAACH,EAAwBI,KAC5F,IAAMwhI,EAAoB73H,GAAoB/J,EAAOitI,IACrD,OACEppJ,EAAAA,cAACy9I,GAAU,CACTtgE,UAAU,aACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBY,EACvBxhI,IAAKA,GACL,IC9CA6gI,GAAuD,CAAC,QAOjDkM,IAAehtI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAEpGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,eACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,MCfL6gI,GAAuD,CAAC,QAOjDmM,IAAYjtI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAEjGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,YACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,M,kgCCdX,IAAM6gI,GAAuD,CAAC,OAAQ,QAEzDoM,GAA0B9kI,GAAAA,GAAA,GAClC84H,IAAsB,IACzB72H,OAAQ,SACRurC,WAAY,EACZC,SAAU,MAQCs3F,IAAiBntI,EAAAA,EAAAA,aAA2C,CAACH,EAAwBI,KAChG,IAAMwhI,EAAoB73H,GAAoB/J,EAAOqtI,IACrD,OACExpJ,EAAAA,cAACy9I,GAAU,CACTtgE,UAAU,iBACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBY,EACvBxhI,IAAKA,GACL,ICzBA6gI,GAAuD,CAAC,QAOjDsM,IAAgBptI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAErGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,gBACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,M,6tCCmJX,SAASotI,GAAcl7H,GACrB,IAAKA,EAAKjS,UAAqC,IAAzBiS,EAAKjS,SAAS1jB,OAAc,OAAO,EAGzD,IAAM8wJ,EAAcn7H,EAAKjS,SAAS/c,KAAI4Q,GAAKs5I,GAAct5I,KACzD,OAAO,EAAIvE,KAAKlP,OAAOgtJ,EACzB,CAEA,IAAMC,GAAkC7pJ,EAAAA,MACtCukB,IAUM,IAVL,QACC6jB,EAAO,QACPqvD,EAAO,KACP1xE,EAAI,OACJyB,EAAM,KACND,EAAI,UACJmlH,EAAS,GACThqH,GAGD6B,EACOmpB,EAAoD,CACxDypD,kBAAmBpxE,EAAKvJ,SACxBy5E,YAAa35F,GAASowI,EAAUlqI,IAAIlG,GAEpCoxB,SAAU,CACRlG,SACAF,iBAAa1rB,EACb2rB,OACAkwE,UACArvD,UAEA7tC,KAAMk9F,OAAU77F,EAAYwsC,EAC5B2G,MAAM,EACNjpC,UAAMlK,EACNurB,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAK5Eo8G,GAAgC,CACpCx7H,IAAK,EACLsY,MAAO,EACPC,OAAQ,EACRxY,KAAM,GAiBFoF,GAA6C,CACjD97B,QAAS,CACP06F,0BAA2B,CAAC,QAC5BF,wBAAyB,OACzBhV,UAAW,WACXqZ,uBAnBmDuzD,CAAChkI,EAAe6sE,KACrE,GAAmB,MAAfA,EAGJ,OAAOpwF,KAAIujB,EAAM6sE,EAAY,EAgB3BnV,kBAAc7hF,IAMLouJ,GAA4B,CACvCxhI,QAAS,EACT4f,QAAS,QACTqvD,QAAS,OACTwyD,YAAa,EACbv3F,YAAa,GACbnrC,KAAM,OACNC,OAAQ,OACR0iI,YA9FuB,CACvB7lD,WAAY,OACZ8lD,WAAY,cACZhmD,SAAU,SACV38E,OAAQ,OACRD,KAAM,QACN+6B,cAAe,QAyFf4P,WAAY,EACZC,SAAU,IACVspF,YAAY,GAOR2O,GAAoBz2H,IAqBQ,IArBP,UACzB/W,EAAS,KACTmJ,EAAI,SACJvJ,EAAQ,QACRgM,EAAO,QACP4f,EAAO,QACPqvD,EAAO,YACPwyD,EAAW,YACXv3F,EAAW,KACXnrC,EAAI,OACJC,EAAM,YACN0iI,EACAv3F,YAAa03F,EACbzlI,GAAI0lI,EACJzlI,GAAI0lI,EAAW,WACfr4F,EAAU,SACVC,EAAQ,QACR2qD,EAAO,aACPD,EAAY,aACZG,EAAY,GACZt6F,GAC2BiR,EACrBzK,EAAWF,KAEXvM,EAAQ03B,KACRz3B,EAAS03B,KAEf,GAAa,MAAT33B,GAA2B,MAAVC,EACnB,OAAO,KAGT,IAAMi2C,EAAc03F,QAAAA,EAAwBv+I,KAAKkC,IAAIyO,EAAOC,GAAU,EAChEkI,EAAK0lI,QAAAA,EAAe7tI,EAAQ,EAC5BoI,EAAK0lI,QAAAA,EAAe7tI,EAAS,EAE7B8tI,EAASC,GAAY,CAAC,EAAG1kI,EAAKqiB,IAAW,CAAC,EAAG+pB,IAE7Cu4F,GAAa/3F,EAAcD,GADfi3F,GAAc5jI,GAG1BywF,EAA6B,GAC7Bk2B,EAAiC,IAAIpoI,IAA6B,KAoCxE,SAASqmJ,EAASC,EAAwCjzJ,GAAkD,IAAzBwU,EAAazQ,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3F,OAAEmzD,EAAM,OAAEg8F,EAAM,aAAEC,EAAY,WAAEC,EAAU,yBAAE3M,GAA6BzmJ,EAE3EqzJ,EAAeF,EAEdF,GAELA,EAAW/kI,SAAQ,CAACxV,EAAGtV,KAAM,IAAAwxC,EAAA0+G,EACrB5M,EAAgC,IAAVlyI,EAAc,IAAHvR,OAAOG,EAAC,KAzHtB,SAC7BujJ,GAGA,MAAO,GAAP1jJ,OAFiDc,UAAA5C,OAAA,QAAA8C,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAEnB,aAAAd,OAAY0jJ,EAAkB,IACjE,CAoH2D4M,CAAuBnwJ,EAAGqjJ,GACzE+M,EAA2BzmI,GAAAA,GAAA,GAAQrU,GAAC,IAAEynI,aAAcuG,IAEpD+M,EAAYZ,EAAOn6I,EAAE+3B,IACrBz8B,EAAQq/I,EAERK,EAAiC,QAAxB9+G,EAAU,QAAV0+G,EAAG56I,aAAC,EAADA,EAAGkX,YAAI,IAAA0jI,EAAAA,EAAIF,SAAU,IAAAx+G,EAAAA,EAAIhlB,GACnCvqB,EAAGsuJ,EAAOnrJ,EAAGorJ,GAAU35F,GAAiB,EAAG,EAAGi5F,EAASh8F,EAAS,IAAKljD,EAAQy/I,EAAYA,EAAY,IAC7GJ,GAAgBI,EAChB50C,EAAQz8G,KACNiG,EAAAA,cAAA,KAAGtB,IAAG,mBAAA9D,OAAqByV,EAAE9V,KAAI,KAAAK,OAAIG,IACnCiF,EAAAA,cAACs0D,GAAM,CACLwoD,QAASA,KAAM+kC,OAlCJpzH,EAkCgB08H,EAjC/BruC,GAASA,EAAQruF,QAErBvF,EACEkrE,GAAwB,CACtBxB,YAAankE,EAAKqpH,aAClB9jD,cAAe5rD,EACf4qB,iBAAkB05E,EAAUlqI,IAAIisB,EAAKl0B,MACrC05F,sBAAuBvxE,KAR7B,IAAqB+L,CAkC+B,EAC1CouF,aAAczyG,GAtDxB,SAA0BqkB,EAAoBrkB,GACxCyyG,GAAcA,EAAapuF,EAAMrkB,GAErC8e,EACE6qE,GAA4B,CAC1BnB,YAAankE,EAAKqpH,aAClB9jD,cAAe5rD,EACf4qB,iBAAkB05E,EAAUlqI,IAAIisB,EAAKl0B,MACrC05F,sBAAuBvxE,IAG7B,CA2C6BumI,CAAiBkC,EAAe/gJ,GACnD4yG,aAAc5yG,GA1CxB,SAA0BqkB,EAAoBrkB,GACxC4yG,GAAcA,EAAavuF,EAAMrkB,GAErC8e,EAASirE,KACX,CAsC6B+0D,CAAiBiC,EAAe/gJ,GACnDmd,KAAM8jI,EACN7jI,OAAQA,EACRF,YAAakB,EACb0pC,WAAYvmD,EACZwmD,SAAUxmD,EAAQy/I,EAClB14F,YAAam4F,EACbl4F,YAAak4F,EAASh8F,EACtBjqC,GAAIA,EACJC,GAAIA,IAEN7kB,EAAAA,cAACkpG,GAAI7rF,GAAA,GAAK6sI,EAAW,CAAEruC,kBAAkB,SAAS7S,WAAW,SAAShsG,EAAGsuJ,EAAQ1mI,EAAIzkB,EAAG0kB,EAAK0mI,IAC1Fl7I,EAAE+3B,MAKT,IAAQprC,EAAGwuJ,EAAUrrJ,EAAGsrJ,GAAa75F,GAAiBhtC,EAAIC,EAAIgmI,EAASh8F,EAAS,EAAGljD,GAGnF,OAFA+gI,EAAUznI,IAAIoL,EAAE9V,KAAM,CAAEyC,EAAGwuJ,EAAUrrJ,EAAGsrJ,IAEjCd,EACLt6I,EAAEmM,SACF,CACEqyC,SACAg8F,OAAQA,EAASh8F,EAASo7F,EAC1Ba,aAAcn/I,EACdo/I,WAAYM,EACZjN,yBAA0BC,GAE5BlyI,EAAQ,EACT,GAEL,CAEAw+I,CAAS5kI,EAAKvJ,SAAU,CAAEqyC,OAAQ67F,EAAWG,OAAQn4F,EAAao4F,aAAc54F,IAEhF,IAAM90C,EAAa3B,EAAK,oBAAqBmB,GAC7C,OACE5c,EAAAA,cAACqc,EAAO,CAACI,MAAOA,EAAOC,OAAQA,GAC7B1c,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GAAao5F,GAC/Bx2G,EAAAA,cAAC6pJ,GAA+B,CAC9BzhH,QAASA,EACTqvD,QAASA,EACT1xE,KAAMA,EACNyB,OAAQA,EACRD,KAAMA,EACNmlH,UAAWA,EACXhqH,GAAIA,IAELlG,EACO,EAaDkvI,GAAiBpjI,IAC5B,IAAMnM,EAAQ+J,GAAoBoC,EAAc0hI,KAC1C,UAAEptI,EAAS,MAAEH,EAAK,OAAEC,EAAM,WAAE++H,EAAU,MAAE5+H,EAAO6F,GAAI+7F,GAAetiG,GACjE2mF,EAAe64C,IAAoBxiI,EAAAA,EAAAA,UAA6B,MACvE,OACEnZ,EAAAA,cAACw5I,GAAqB,CAAC/lH,eAAgBA,GAAgBgmH,eAAgB78H,QAAAA,EAAa,iBAClF5c,EAAAA,cAAC40C,GAAe,CAACn4B,MAAOA,EAAOC,OAAQA,IACvC1c,EAAAA,cAACi1C,GAAiB,CAACxsB,OAAQqhI,KAC3B9pJ,EAAAA,cAAC4/F,GAAqBvvD,SAAQ,CAAC/4C,MAAOwrG,GACpC9iG,EAAAA,cAACm7I,GAAe,CACdv+H,UAAWA,EACXH,MAAOA,EACPC,OAAQA,EACR++H,WAAYA,EACZ5+H,MAAOA,EACPN,IAAMkS,IACiB,MAAjBq0E,GAAiC,MAARr0E,GAC3BktH,EAAiBltH,EACnB,EAEFouF,kBAAcjhH,EACdohH,kBAAcphH,EACdkhH,aAASlhH,EACT0/I,iBAAa1/I,EACbwwH,iBAAaxwH,EACb2/I,eAAW3/I,EACXw/I,mBAAex/I,EACfy/I,mBAAez/I,EACfywH,kBAAczwH,EACdq1H,iBAAar1H,EACb4/I,gBAAY5/I,GAEZoE,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAI+7F,EAAY34G,KAAK,aAC3C4c,GAAM1iB,EAAAA,cAACoqJ,GAAiB/sI,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,SAIzB,E,2NCvcrB,SAASipI,GAAgBxvI,GAC9B,OAAOnc,EAAAA,cAAC+4G,GAAK17F,GAAA,CAACu7F,UAAU,aAAgBz8F,GAC1C,C,kgCCgBA,IAKayvI,GAG6Bh+H,GACxC,CAAC+gB,GATwBk9G,CACzB/qE,EACAgrE,IAC2BA,EAMqBxyE,KAChD,CACE3vC,EAA2BplB,EAAAoP,KAcY,IACnC2yD,GAdJ,KACEvgE,EAAI,QACJqiB,EAAO,QACPqvD,EAAO,YACPgf,EAAW,cACXs1C,EAAa,SACbvtE,EAAQ,YACRwtE,EAAW,MACXj2C,EAAK,kBACLG,EACAxzF,GAAIqwE,GACLxuE,GACD,UAAE80D,GAAW1lD,EASb,GANY,MAAR5N,GAAgBA,EAAKjtB,OAAS,EAChCwtF,EAAgBvgE,EACM,MAAbszD,GAAqBA,EAAUvgF,OAAS,IACjDwtF,EAAgBjN,GAGdiN,GAAiBA,EAAcxtF,OACjCwtF,EAAgBA,EAAc7mF,KAAI,CAAC8jB,EAAYjnB,IAAaooB,GAAAA,GAAAA,GAAA,CAC1DgD,QAASnE,GACN2yF,GACA3yF,GACCwyF,GAASA,EAAMz5G,IAAUy5G,EAAMz5G,GAAO6f,aAEvC,KAAI45F,IAASA,EAAMj9G,OAGxB,MAAO,GAFPwtF,EAAgByvB,EAAMt2G,KAAKw2G,GAA6BvxF,GAAAA,GAAA,GAAWwxF,GAAsBD,EAAK95F,QAGhG,CAEA,OC2eG,SAAgCsxB,GAoBA,IApBC,QACtCrF,EAAO,QACPqvD,EAAO,cACPnR,EAAa,YACbmwB,EAAW,cACXs1C,EAAa,SACbvtE,EAAQ,OACR70C,EAAM,YACNqiH,EAAW,gBACXj5D,GAWDtlD,GACO,WAAEw+G,EAAU,UAAEC,EAAS,QAAEC,EAAO,QAAEC,GAAYC,GAAmBL,EAAariH,GAC9EzmC,EAASojF,EAAc7mF,KAAK8jB,IAChC,IAAMvN,EAAMmyB,GAAkB5kB,EAAO6kB,EAAS,GAC9C,MAAsB,iBAARpyB,EAAmBA,EAAM,CAAC,IAEpC0yB,EAAW58B,KAAKlP,IAAIvE,MAAM,KAAM6K,GAChCzH,EAAM6qF,EAAcxtF,OACpBqmJ,EAAY8M,EAAaxwJ,EACzBmuG,EAAgB,CAAE5sG,EAAG2sC,EAAOtb,KAAMluB,EAAGwpC,EAAOrb,IAAK7R,MAAOktB,EAAOltB,MAAOC,OAAQitB,EAAOjtB,QAEvF4vI,EAAiDhmE,EAAc7mF,KACjE,CAAC8jB,EAAgBxoB,KAEf,IAGIwxJ,EAHEC,EAAyCrkH,GAAkB5kB,EAAO6kB,EAAS,GAC3E7tC,EAAe+D,OAAO6pC,GAAkB5kB,EAAOk0E,EAAS18F,IAC1Dib,EAAMw2I,EAGV,GAAIzxJ,IAAMU,EAAM,EAAG,CACjB,IAAMgxJ,EAAgBtkH,GAAkBm+C,EAAcvrF,EAAI,GAAIqtC,EAAS,GACvE,GAA6B,iBAAlBqkH,EACTF,EAAUE,OACL,GAAIz0J,MAAMkH,QAAQutJ,GAAgB,CACvC,IAAO5pE,EAAOpW,GAAUggF,EACH,iBAAV5pE,IACT7sE,EAAM6sE,GAEc,iBAAXpW,IACT8/E,EAAU9/E,EAEd,CACF,MAAO,GAAI+/E,aAAkBx0J,OAA2B,IAAlBw0J,EAAO1zJ,OAAc,CACzD,IAAO+pF,EAAOpW,GAAU+/E,EACH,iBAAV3pE,IACT7sE,EAAM6sE,GAEc,iBAAXpW,IACT8/E,EAAU9/E,EAEd,MACE8/E,EAD2B,cAAlBR,EACC/1I,EAEA,EAIZ,IAAMhZ,GAAM0rC,EAAW1yB,GAAOk2I,GAAc,EAAIxjH,GAAYyjH,EACtDhsJ,EAAIg/I,EAAYpkJ,EAAIqxJ,EAEpB54G,EAAcx9B,EAAM0yB,EAAYwjH,EAEhCz4G,EAAc84G,EAAU7jH,EAAYwjH,EAEpCj1D,EAAiC,CACrC,CAAE18F,OAAMjD,MAAO0e,EAAK0R,QAASnE,EAAO6kB,UAAStiC,KAAM2wG,EAAa1jB,oBAE5DqkB,EAA8B,CAClCp6G,EAAGA,EAAIw2C,EAAa,EACpBrzC,EAAGA,EAAIg/I,EAAY,GAGfuN,EAAqC,CACzC1vJ,IACAmD,IACAqzC,aACAC,aACAh3B,MAAO3Q,KAAKlP,IAAI42C,EAAYC,GAC5B/2B,OAAQyiI,GAGV,OAAAz6H,GAAAA,GAAAA,GAAA,GACKgoI,GAAgB,IACnBnyJ,OACAyb,MACAihF,iBACAmgB,mBACa,MAAT7zF,GAAkC,iBAAVA,EAAqB9Y,KAAK8Y,EAAO,CAAC,UAAY,CAAC,GAAC,IAC5EmE,QAASnE,EACTqmF,gBACA+iD,aAAcD,GAAgB,IAKhCluE,IACF8tE,EAAaA,EAAW7sJ,KAAI,CAAC8jB,EAA4BjnB,KACvD,IAAMswJ,EAAoC,CACxC5vJ,EAAGumB,EAAMvmB,GAAKumB,EAAMkwB,WAAalwB,EAAMiwB,YAAc,EACrDrzC,EAAGojB,EAAMpjB,EAAI7D,EAAQ6iJ,GAAa1jJ,EAAM,EAAIa,GAAS6iJ,EACrD3rG,WAAYjwB,EAAMkwB,WAClBA,WAAYlwB,EAAMiwB,WAClB/2B,MAAO3Q,KAAKlP,IAAI2mB,EAAMkwB,WAAYlwB,EAAMiwB,YACxC92B,OAAQyiI,GAGV,OAAAz6H,GAAAA,GAAAA,GAAA,GACKnB,GACAqpI,GAAe,IAClBx1C,gBAAe1yF,GAAAA,GAAA,GACVnB,EAAM6zF,iBAAe,IACxBj3G,EAAGojB,EAAMpjB,EAAI7D,EAAQ6iJ,GAAa1jJ,EAAM,EAAIa,GAAS6iJ,EAAYA,EAAY,IAE/EwN,aAAcC,GAAe,KAKnC,OAAON,CACT,CD5mBWO,CAAwB,CAC7BzkH,UACAqvD,UACAnR,gBACAmwB,cACAs1C,gBACAvtE,WACA70C,SACAqiH,cACAj5D,mBACA,I,uzDCmIN,IAAM+5D,GAAgC9sJ,EAAAA,MACpCukB,IAiBM,IAjBL,QACC6jB,EAAO,QACPqvD,EAAO,OACPjwE,EAAM,YACNF,EAAW,KACXC,EAAI,KACJhtB,EAAI,KACJw0C,EAAI,YACJ0nE,EAAW,KACX1wF,EAAI,WACJumI,EAAU,GACV5pI,GAMD6B,EACOmpB,EAAoD,CACxDypD,kBAAmBpxE,EACnBkwE,YAAa35F,IAAK,IAAAywJ,EAAA,OAA6B,QAA7BA,EAAIT,EAAW3sJ,OAAOrD,WAAO,IAAAywJ,OAAA,EAAzBA,EAA2B31C,eAAe,EAChE1pF,SAAU,CACRlG,SACAF,cACAC,OACA6gB,UACA7tC,OACAk9F,UACA1oD,OACAjpC,KAAM2wG,EACNtvF,MAAOI,EACPi4B,KAAM,GACNuzC,gBAAiBrwE,IAGrB,OAAO1iB,EAAAA,cAAC05G,GAAuB,CAAChsE,qBAAsBA,GAAwB,IAIlF,SAASs/G,GAAuBr5H,GAQ7B,IAR8B,WAC/BooF,EAAU,WACVuwC,EAAU,SACV9vI,GAKDmX,EACO6pF,GAAuEj9G,EAAAA,EAAAA,UAAQ,KACnF,GAAKw7G,EAGL,OAAOuwC,aAAU,EAAVA,EAAY7sJ,KAAK8jB,IACtB,IAAM5G,EAA4B4G,EAAMopI,aAExC,OAAAjoI,GAAAA,GAAA,GACK/H,GAAO,IACVrlB,MAAOisB,EAAMhpB,KACbmtB,QAASnE,EAAMmE,QACfkiF,cAAermF,EAAMqmF,cACrBjtF,UACA4K,KAAMhE,EAAMgE,MAAI,GAElB,GACD,CAACw0F,EAAYuwC,IAEhB,OAAOtsJ,EAAAA,cAACwtG,GAAiC,CAACl2G,MAAOkmH,GAAmBhhG,EACtE,CAEA,SAASywI,GAAiB9wI,GACxB,IAAM,WAAEmwI,EAAU,oBAAEY,GAAwB/wI,EACtCgxI,EAAkB9jI,IAAeE,GACrCmzE,GAAkBnzE,EAAO,OAAQA,EAAM44D,QAAQz0D,SAAS+lE,aAAS73F,MAGjEihH,aAAcxD,EACdyD,QAASC,EACTC,aAAczD,EAAqB,MACnC/3F,EAAK,YACLi7F,GAEEywC,EADCjwC,EAAmBhgG,GACpBiwI,EAAmBhwI,IAEjBggG,EAA0B9D,GAC9BC,EACA6zC,EAAoB9kH,QACpB8kH,EAAoBxqI,IAEhBy6F,EAA0B7D,GAA0BC,GACpD6D,EAAqB5D,GACzBuD,EACAmwC,EAAoB9kH,QACpB8kH,EAAoBxqI,IAGtB,OACE1iB,EAAAA,cAAAA,EAAAA,SAAA,KACGssJ,EAAW7sJ,KAAI,CAAC8jB,EAA4BxoB,KAC3C,IAAMqyJ,EAAgBhnJ,QAAQq2G,IAAgB0wC,IAAoB7uJ,OAAOvD,GACnEsyJ,EAAmBD,EAAgB3wC,EAAcj7F,EACvD8rI,EAAA5oI,GAAAA,GAAA,GACKnB,GAAK,IACRqF,OAAQykI,EACRt/F,SAAUq/F,EACV5lI,OAAQjE,EAAMiE,UAJV,GAAE9E,GAA6C4qI,EAAtCl1C,EAAcn7F,GAAAqwI,EAAA97F,IAO7B,OACExxD,EAAAA,cAACsd,EAAKD,GAAA,CACJ3e,IAAG,aAAA9D,OAAe2oB,aAAK,EAALA,EAAOvmB,EAAC,KAAApC,OAAI2oB,aAAK,EAALA,EAAOpjB,EAAC,KAAAvF,OAAI2oB,aAAK,EAALA,EAAOhpB,KAAI,KAAAK,OAAI2oB,aAAK,EAALA,EAAOjsB,OAChEslB,UAAU,6BACNkJ,GAAmBm3F,EAAqB15F,EAAOxoB,GAAE,CAErD8hH,aAAcK,EAAwB35F,EAAOxoB,GAE7CiiH,aAAcG,EAAwB55F,EAAOxoB,GAE7C+hH,QAASM,EAAmB75F,EAAOxoB,KAEnCiF,EAAAA,cAAC2rJ,GAAoBvzC,GACf,IAKlB,CAEA,SAASm1C,GAAuBhhH,GAM7B,IAN8B,sBAC/BihH,EAAqB,MACrBrxI,GAIDowB,GACO,WACJ+/G,EAAU,kBACV7qG,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,eACf0M,EAAc,iBACdC,GACE/xC,EACEsxI,EAAiBD,EAAsBxsJ,SAEtC68G,EAAaC,IAAkB3kG,EAAAA,EAAAA,WAAS,GACzC4iG,GAAc8B,EAEdrwD,EAAckB,GAAe49F,EAAY,oBAEzCvuC,GAAqBvvF,EAAAA,EAAAA,cAAY,KACP,mBAAnBy/B,GACTA,IAEF6vD,GAAe,EAAM,GACpB,CAAC7vD,IAEE+vD,GAAuBxvF,EAAAA,EAAAA,cAAY,KACP,mBAArB0/B,GACTA,IAEF4vD,GAAe,EAAK,GACnB,CAAC5vD,IAEJ,OACEluD,EAAAA,cAACgtJ,GAAuB,CAACjxC,WAAYA,EAAYuwC,WAAYA,GAC3DtsJ,EAAAA,cAACmuD,GAAiB,CAChBX,YAAaA,EACbjF,MAAO0H,EACP/H,SAAU5G,EACVyM,SAAUtM,EACV0G,OAAQ5G,EACR7iD,IAAK8uD,EACLU,iBAAkB8vD,EAClB/vD,eAAgB8vD,IAEdlpG,IACA,IAAMqpG,EACE,IAANrpG,EACIy3I,EACAA,EAAW7sJ,KAAI,CAAC8jB,EAA4BjnB,KAC1C,IAAMixC,EAAOkgH,GAAkBA,EAAenxJ,GAE9C,OACEooB,GAAAA,GAAA,GACKnB,GAAK,GAFRgqB,EAEQ,CACRvwC,EAAGkmB,GAAYqqB,EAAKvwC,EAAGumB,EAAMvmB,EAAG6X,GAChC1U,EAAG+iB,GAAYqqB,EAAKptC,EAAGojB,EAAMpjB,EAAG0U,GAChC2+B,WAAYtwB,GAAYqqB,EAAKiG,WAAYjwB,EAAMiwB,WAAY3+B,GAC3D4+B,WAAYvwB,GAAYqqB,EAAKkG,WAAYlwB,EAAMkwB,WAAY5+B,GAC3D6H,OAAQwG,GAAYqqB,EAAK7wB,OAAQ6G,EAAM7G,OAAQ7H,IAKzC,CACR7X,EAAGkmB,GAAYK,EAAMvmB,EAAIumB,EAAMiwB,WAAa,EAAGjwB,EAAMvmB,EAAG6X,GACxD1U,EAAG+iB,GAAYK,EAAMpjB,EAAIojB,EAAM7G,OAAS,EAAG6G,EAAMpjB,EAAG0U,GACpD2+B,WAAYtwB,GAAY,EAAGK,EAAMiwB,WAAY3+B,GAC7C4+B,WAAYvwB,GAAY,EAAGK,EAAMkwB,WAAY5+B,GAC7C6H,OAAQwG,GAAY,EAAGK,EAAM7G,OAAQ7H,IAAE,IAQjD,OAJIA,EAAI,IAEN24I,EAAsBxsJ,QAAUk9G,GAGhCl+G,EAAAA,cAACsd,EAAK,KACJtd,EAAAA,cAACitJ,GAAgB,CAACX,WAAYpuC,EAAUgvC,oBAAqB/wI,IACvD,IAIdnc,EAAAA,cAACiuG,GAAsB,CAACv3E,MAAOva,EAAMua,QACpCva,EAAMK,SAGb,CAEA,SAASkxI,GAAiBvxI,GACxB,IAAMqxI,GAAwBntJ,EAAAA,EAAAA,aAAuDzE,GAErF,OAAOoE,EAAAA,cAACutJ,GAAuB,CAACpxI,MAAOA,EAAOqxI,sBAAuBA,GACvE,CAEA,IAAMnB,GAAqBA,CAACL,EAA0CriH,KACpE,IAAM,MAAEltB,EAAK,OAAEC,EAAM,KAAE2R,EAAI,IAAEC,GAAQqb,EAIrC,MAAO,CACLuiH,UAHwBvpI,GAAgBqpI,EAAavvI,EAAOA,GAI5DwvI,WAAYvvI,EACZyvI,QAAS99H,EACT+9H,QAAS99H,EACV,EAGUq/H,GAAqB,CAChC19F,eAAgB,IAChB3O,kBAAmB,KACnBC,gBAAiB,OACjBh6B,KAAM,UACNwnB,MAAM,EACN0S,kBAAmB,OACnBsqG,cAAe,WACf11C,WAAY,OACZ5e,QAAS,OACTjZ,UAAU,EACVh3D,OAAQ,QAGV,SAASomI,GAAWzxI,GAClB,IAAM62G,EAAWhS,MAEX,OACJx5F,EAAM,KACND,EAAI,WACJ8uF,EAAU,KACVtnE,EAAI,kBACJ0S,EAAiB,eACjBwO,EAAc,kBACd3O,EAAiB,gBACjBC,EAAe,QACfk2C,EAAO,cACPs0D,EAAa,GACbrpI,GAEEvG,EADCmpH,EAAcroH,GACfd,EAAKm3F,IAEH4C,EAAoBl6F,EAAsBG,GAC1C45F,EAAQ4B,GAAcx7F,EAAMK,SAAUwmF,IAEtC8oD,GAAyCvrJ,EAAAA,EAAAA,UAC7C,KAAM,CACJ6nC,QAASjsB,EAAMisB,QACfqvD,UACA1xE,KAAM5J,EAAM4J,KACZ0wF,YAAat6F,EAAMs6F,YACnBs1C,gBACAvtE,SAAUriE,EAAMqiE,SAChBwtE,YAAa7vI,EAAMM,MACnBs5F,QACAG,oBACAxzF,QAEF,CACEvG,EAAMisB,QACNqvD,EACAt7E,EAAM4J,KACN5J,EAAMs6F,YACNs1C,EACA5vI,EAAMqiE,SACNriE,EAAMM,MACNs5F,EACAG,EACAxzF,IAIE4pI,EAAajjI,IAAeE,GAASqiI,GAAuBriI,EAAOuiI,KAEzE,GAAI/8G,IAASu9G,IAAeA,EAAWxzJ,SAAWk6H,EAChD,OAAO,KAET,IAAM,OAAEt2G,EAAM,MAAED,GAAUu2G,EAEpB51G,EAAa3B,EAAK,sBAAuBU,EAAMS,WAErD,OACE5c,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC8sJ,GAA6B,CAC5B1kH,QAASjsB,EAAMisB,QACfqvD,QAASt7E,EAAMs7E,QACfjwE,OAAQrL,EAAMqL,OACdF,YAAanL,EAAMmL,YACnBC,KAAMpL,EAAMoL,KACZhtB,KAAM4hB,EAAM5hB,KACZw0C,KAAM5yB,EAAM4yB,KACZ0nE,YAAat6F,EAAMs6F,YACnB1wF,KAAM5J,EAAM4J,KACZumI,WAAYA,EACZ5pI,GAAIA,IAEN1iB,EAAAA,cAACsd,EAAK,CAACV,UAAWQ,GAChBpd,EAAAA,cAAC0tJ,GAAgBrwI,GAAA,GACXioH,EAAc,CAClB5iH,GAAIA,EACJ8E,OAAQA,EACRD,KAAMA,EACNkwE,QAASA,EACTs0D,cAAeA,EACf97F,eAAgBA,EAChB3O,kBAAmBA,EACnBC,gBAAiBA,EACjBE,kBAAmBA,EACnB1S,KAAMA,EACNsnE,WAAYA,EACZ35F,OAAQA,EACRD,MAAOA,EACP6vI,WAAYA,MAKtB,CA0IO,SAASuB,GAAOvlI,GACrB,IAAA6gF,EAAqCjjF,GAAoBoC,EAAcqlI,KAA/DjrI,GAAI+7F,GAAsBtV,EAAPhtF,EAAKc,GAAAksF,EAAAuV,IAChC,OACE1+G,EAAAA,cAACs6G,GAAuB,CAAC53F,GAAI+7F,EAAY34G,KAAK,WAC3C4c,GAAM1iB,EAAAA,cAAC4tJ,GAAUvwI,GAAA,GAAKlB,EAAK,CAAEuG,GAAIA,MAGxC,CAEAmrI,GAAOrlJ,YAAc,SC5rBrB,IAAM40I,GAAuD,CAAC,QAOjD0Q,IAAcxxI,EAAAA,EAAAA,aAA+C,CAACH,EAA4BI,IAEnGvc,EAAAA,cAACg9I,GAAc,CACb7/D,UAAU,cACVgV,wBAAwB,OACxBE,0BAA2B+qD,GAC3B5mD,uBAAwByJ,GACxBk9C,sBAAuBhhI,EACvBI,IAAKA,K","sources":["webpack://Recharts/webpack/universalModuleDefinition","webpack://Recharts/./node_modules/es-toolkit/dist/compat/function/debounce.js","webpack://Recharts/./node_modules/es-toolkit/compat/last.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js","webpack://Recharts/./node_modules/es-toolkit/compat/sortBy.js","webpack://Recharts/./node_modules/eventemitter3/index.js","webpack://Recharts/./node_modules/es-toolkit/compat/get.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js","webpack://Recharts/./node_modules/es-toolkit/dist/array/maxBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js","webpack://Recharts/./node_modules/es-toolkit/dist/predicate/isBuffer.js","webpack://Recharts/./node_modules/es-toolkit/dist/array/last.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isMatch.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/math/minBy.js","webpack://Recharts/./node_modules/es-toolkit/compat/uniqBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/array/last.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isSymbol.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/toKey.js","webpack://Recharts/./node_modules/es-toolkit/compat/omit.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/keysIn.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/toString.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/getTag.js","webpack://Recharts/./node_modules/es-toolkit/compat/sumBy.js","webpack://Recharts/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","webpack://Recharts/./node_modules/es-toolkit/dist/predicate/isPrimitive.js","webpack://Recharts/external umd {\"root\":\"ReactIs\",\"commonjs2\":\"react-is\",\"commonjs\":\"react-is\",\"amd\":\"react-is\"}","webpack://Recharts/./node_modules/es-toolkit/dist/compat/array/uniqBy.js","webpack://Recharts/./node_modules/es-toolkit/compat/isPlainObject.js","webpack://Recharts/./node_modules/es-toolkit/compat/minBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isArguments.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/toPath.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/array/orderBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/property.js","webpack://Recharts/./node_modules/es-toolkit/compat/range.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/compareValues.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/math/sumBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/object/cloneDeep.js","webpack://Recharts/./node_modules/es-toolkit/dist/predicate/isTypedArray.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/cloneDeep.js","webpack://Recharts/./node_modules/es-toolkit/dist/object/cloneDeepWith.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/isKey.js","webpack://Recharts/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/omit.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/get.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/array/sortBy.js","webpack://Recharts/./node_modules/es-toolkit/compat/throttle.js","webpack://Recharts/./node_modules/es-toolkit/compat/maxBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/toArray.js","webpack://Recharts/./node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/toFinite.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isObject.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/math/range.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/function/throttle.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/isPrototype.js","webpack://Recharts/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Recharts/./node_modules/es-toolkit/dist/array/flatten.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/math/maxBy.js","webpack://Recharts/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/getSymbols.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/array/flatten.js","webpack://Recharts/./node_modules/es-toolkit/dist/function/identity.js","webpack://Recharts/./node_modules/es-toolkit/dist/function/debounce.js","webpack://Recharts/./node_modules/es-toolkit/dist/function/ary.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/has.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/toInteger.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/unset.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/matches.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js","webpack://Recharts/./node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/iteratee.js","webpack://Recharts/./node_modules/es-toolkit/dist/array/minBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js","webpack://Recharts/./node_modules/decimal.js-light/decimal.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/times.js","webpack://Recharts/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/isIndex.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js","webpack://Recharts/./node_modules/es-toolkit/dist/array/uniqBy.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/util/toNumber.js","webpack://Recharts/./node_modules/es-toolkit/dist/predicate/isLength.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/_internal/tags.js","webpack://Recharts/./node_modules/use-sync-external-store/shim/with-selector.js","webpack://Recharts/./node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js","webpack://Recharts/./node_modules/use-sync-external-store/shim/index.js","webpack://Recharts/webpack/bootstrap","webpack://Recharts/webpack/runtime/compat get default export","webpack://Recharts/webpack/runtime/define property getters","webpack://Recharts/webpack/runtime/global","webpack://Recharts/webpack/runtime/hasOwnProperty shorthand","webpack://Recharts/webpack/runtime/make namespace object","webpack://Recharts/./node_modules/clsx/dist/clsx.mjs","webpack://Recharts/./src/util/excludeEventProps.ts","webpack://Recharts/./src/util/svgPropertiesNoEvents.ts","webpack://Recharts/./src/util/svgPropertiesAndEvents.ts","webpack://Recharts/./src/container/Surface.tsx","webpack://Recharts/./src/container/Layer.tsx","webpack://Recharts/./src/context/legendPortalContext.tsx","webpack://Recharts/./node_modules/d3-shape/src/math.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/circle.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/cross.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/diamond.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/square.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/star.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/triangle.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/wye.js","webpack://Recharts/./node_modules/d3-shape/src/constant.js","webpack://Recharts/./node_modules/d3-path/src/path.js","webpack://Recharts/./node_modules/d3-shape/src/path.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/asterisk.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/triangle2.js","webpack://Recharts/./src/util/round.ts","webpack://Recharts/./src/util/DataUtils.ts","webpack://Recharts/./src/shape/Symbols.tsx","webpack://Recharts/./node_modules/d3-shape/src/symbol.js","webpack://Recharts/./src/util/types.ts","webpack://Recharts/./src/util/resolveDefaultProps.tsx","webpack://Recharts/./src/component/DefaultLegendContent.tsx","webpack://Recharts/./src/util/payload/getUniqPayload.ts","webpack://Recharts/./src/state/RechartsReduxContext.tsx","webpack://Recharts/./src/state/hooks.ts","webpack://Recharts/./node_modules/reselect/dist/reselect.mjs","webpack://Recharts/./src/state/selectors/legendSelectors.ts","webpack://Recharts/./src/util/useElementOffset.ts","webpack://Recharts/./node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.esm.mjs","webpack://Recharts/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Recharts/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Recharts/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Recharts/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Recharts/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://Recharts/./node_modules/redux/es/redux.js","webpack://Recharts/./node_modules/redux-thunk/es/index.js","webpack://Recharts/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js","webpack://Recharts/./src/state/layoutSlice.ts","webpack://Recharts/./node_modules/d3-shape/src/offset/none.js","webpack://Recharts/./node_modules/d3-shape/src/array.js","webpack://Recharts/./node_modules/d3-shape/src/order/none.js","webpack://Recharts/./node_modules/d3-shape/src/stack.js","webpack://Recharts/./src/util/getSliced.ts","webpack://Recharts/./src/util/isWellBehavedNumber.ts","webpack://Recharts/./src/util/ChartUtils.ts","webpack://Recharts/./node_modules/d3-shape/src/offset/expand.js","webpack://Recharts/./node_modules/d3-shape/src/offset/silhouette.js","webpack://Recharts/./node_modules/d3-shape/src/offset/wiggle.js","webpack://Recharts/./src/state/selectors/containerSelectors.ts","webpack://Recharts/./src/state/selectors/selectAllAxes.ts","webpack://Recharts/./src/util/Constants.ts","webpack://Recharts/./src/state/selectors/selectChartOffsetInternal.ts","webpack://Recharts/./src/context/PanoramaContext.tsx","webpack://Recharts/./src/state/selectors/brushSelectors.ts","webpack://Recharts/./src/util/LogUtils.ts","webpack://Recharts/./src/component/responsiveContainerUtils.ts","webpack://Recharts/./src/component/ResponsiveContainer.tsx","webpack://Recharts/./src/context/chartLayoutContext.tsx","webpack://Recharts/./node_modules/immer/dist/immer.mjs","webpack://Recharts/./src/state/legendSlice.ts","webpack://Recharts/./src/component/Legend.tsx","webpack://Recharts/./src/context/legendPayloadContext.tsx","webpack://Recharts/./src/component/DefaultTooltipContent.tsx","webpack://Recharts/./src/util/tooltip/translate.ts","webpack://Recharts/./src/component/TooltipBoundingBox.tsx","webpack://Recharts/./src/context/accessibilityContext.tsx","webpack://Recharts/./node_modules/d3-shape/src/noop.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basis.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://Recharts/./node_modules/d3-shape/src/curve/bump.js","webpack://Recharts/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/linear.js","webpack://Recharts/./node_modules/d3-shape/src/curve/monotone.js","webpack://Recharts/./node_modules/d3-shape/src/curve/natural.js","webpack://Recharts/./node_modules/d3-shape/src/curve/step.js","webpack://Recharts/./node_modules/d3-shape/src/point.js","webpack://Recharts/./node_modules/d3-shape/src/line.js","webpack://Recharts/./node_modules/d3-shape/src/area.js","webpack://Recharts/./src/shape/Curve.tsx","webpack://Recharts/./src/shape/Cross.tsx","webpack://Recharts/./src/animation/util.ts","webpack://Recharts/./src/animation/configUpdate.ts","webpack://Recharts/./src/animation/easing.ts","webpack://Recharts/./src/animation/timeoutController.ts","webpack://Recharts/./src/animation/createDefaultAnimationManager.tsx","webpack://Recharts/./src/animation/AnimationManager.ts","webpack://Recharts/./src/animation/useAnimationManager.tsx","webpack://Recharts/./src/util/Global.ts","webpack://Recharts/./src/animation/JavascriptAnimate.tsx","webpack://Recharts/./src/util/useAnimationId.tsx","webpack://Recharts/./src/shape/Rectangle.tsx","webpack://Recharts/./src/util/PolarUtils.ts","webpack://Recharts/./src/util/cursor/getRadialCursorPoints.ts","webpack://Recharts/./src/shape/Sector.tsx","webpack://Recharts/./src/util/cursor/getCursorPoints.ts","webpack://Recharts/./node_modules/d3-scale/src/init.js","webpack://Recharts/./node_modules/internmap/src/index.js","webpack://Recharts/./node_modules/d3-scale/src/ordinal.js","webpack://Recharts/./node_modules/d3-scale/src/band.js","webpack://Recharts/./node_modules/d3-array/src/range.js","webpack://Recharts/./node_modules/d3-array/src/ticks.js","webpack://Recharts/./node_modules/d3-array/src/ascending.js","webpack://Recharts/./node_modules/d3-array/src/descending.js","webpack://Recharts/./node_modules/d3-array/src/bisector.js","webpack://Recharts/./node_modules/d3-array/src/number.js","webpack://Recharts/./node_modules/d3-array/src/bisect.js","webpack://Recharts/./node_modules/d3-color/src/define.js","webpack://Recharts/./node_modules/d3-color/src/color.js","webpack://Recharts/./node_modules/d3-interpolate/src/basis.js","webpack://Recharts/./node_modules/d3-interpolate/src/constant.js","webpack://Recharts/./node_modules/d3-interpolate/src/color.js","webpack://Recharts/./node_modules/d3-interpolate/src/rgb.js","webpack://Recharts/./node_modules/d3-interpolate/src/basisClosed.js","webpack://Recharts/./node_modules/d3-interpolate/src/array.js","webpack://Recharts/./node_modules/d3-interpolate/src/date.js","webpack://Recharts/./node_modules/d3-interpolate/src/number.js","webpack://Recharts/./node_modules/d3-interpolate/src/object.js","webpack://Recharts/./node_modules/d3-interpolate/src/string.js","webpack://Recharts/./node_modules/d3-interpolate/src/numberArray.js","webpack://Recharts/./node_modules/d3-interpolate/src/value.js","webpack://Recharts/./node_modules/d3-interpolate/src/round.js","webpack://Recharts/./node_modules/d3-scale/src/number.js","webpack://Recharts/./node_modules/d3-scale/src/continuous.js","webpack://Recharts/./node_modules/d3-scale/src/constant.js","webpack://Recharts/./node_modules/d3-format/src/formatSpecifier.js","webpack://Recharts/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://Recharts/./node_modules/d3-format/src/formatDecimal.js","webpack://Recharts/./node_modules/d3-format/src/exponent.js","webpack://Recharts/./node_modules/d3-format/src/formatRounded.js","webpack://Recharts/./node_modules/d3-format/src/formatTypes.js","webpack://Recharts/./node_modules/d3-format/src/identity.js","webpack://Recharts/./node_modules/d3-format/src/locale.js","webpack://Recharts/./node_modules/d3-format/src/defaultLocale.js","webpack://Recharts/./node_modules/d3-format/src/formatGroup.js","webpack://Recharts/./node_modules/d3-format/src/formatNumerals.js","webpack://Recharts/./node_modules/d3-format/src/formatTrim.js","webpack://Recharts/./node_modules/d3-scale/src/tickFormat.js","webpack://Recharts/./node_modules/d3-format/src/precisionPrefix.js","webpack://Recharts/./node_modules/d3-format/src/precisionRound.js","webpack://Recharts/./node_modules/d3-format/src/precisionFixed.js","webpack://Recharts/./node_modules/d3-scale/src/linear.js","webpack://Recharts/./node_modules/d3-scale/src/identity.js","webpack://Recharts/./node_modules/d3-scale/src/nice.js","webpack://Recharts/./node_modules/d3-scale/src/log.js","webpack://Recharts/./node_modules/d3-scale/src/symlog.js","webpack://Recharts/./node_modules/d3-scale/src/pow.js","webpack://Recharts/./node_modules/d3-scale/src/radial.js","webpack://Recharts/./node_modules/d3-array/src/max.js","webpack://Recharts/./node_modules/d3-array/src/min.js","webpack://Recharts/./node_modules/d3-array/src/sort.js","webpack://Recharts/./node_modules/d3-array/src/quickselect.js","webpack://Recharts/./node_modules/d3-array/src/quantile.js","webpack://Recharts/./node_modules/d3-scale/src/quantile.js","webpack://Recharts/./node_modules/d3-scale/src/quantize.js","webpack://Recharts/./node_modules/d3-scale/src/threshold.js","webpack://Recharts/./node_modules/d3-time/src/duration.js","webpack://Recharts/./node_modules/d3-time/src/interval.js","webpack://Recharts/./node_modules/d3-time/src/millisecond.js","webpack://Recharts/./node_modules/d3-time/src/second.js","webpack://Recharts/./node_modules/d3-time/src/minute.js","webpack://Recharts/./node_modules/d3-time/src/hour.js","webpack://Recharts/./node_modules/d3-time/src/day.js","webpack://Recharts/./node_modules/d3-time/src/week.js","webpack://Recharts/./node_modules/d3-time/src/month.js","webpack://Recharts/./node_modules/d3-time/src/year.js","webpack://Recharts/./node_modules/d3-time/src/ticks.js","webpack://Recharts/./node_modules/d3-time-format/src/locale.js","webpack://Recharts/./node_modules/d3-time-format/src/defaultLocale.js","webpack://Recharts/./node_modules/d3-scale/src/time.js","webpack://Recharts/./node_modules/d3-scale/src/utcTime.js","webpack://Recharts/./node_modules/d3-scale/src/sequential.js","webpack://Recharts/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://Recharts/./node_modules/d3-scale/src/diverging.js","webpack://Recharts/./node_modules/d3-interpolate/src/piecewise.js","webpack://Recharts/./src/state/selectors/dataSelectors.ts","webpack://Recharts/./src/util/isDomainSpecifiedByUser.ts","webpack://Recharts/./src/util/scale/util/arithmetic.ts","webpack://Recharts/./src/util/scale/getNiceTickValues.ts","webpack://Recharts/./src/state/selectors/rootPropsSelectors.ts","webpack://Recharts/./src/zIndex/DefaultZIndexes.tsx","webpack://Recharts/./src/polar/defaultPolarAngleAxisProps.tsx","webpack://Recharts/./src/polar/defaultPolarRadiusAxisProps.tsx","webpack://Recharts/./src/state/selectors/combiners/combineAxisRangeWithReverse.ts","webpack://Recharts/./src/util/getAxisTypeBasedOnLayout.ts","webpack://Recharts/./src/state/selectors/polarAxisSelectors.ts","webpack://Recharts/./src/state/selectors/pickAxisType.ts","webpack://Recharts/./src/state/selectors/pickAxisId.ts","webpack://Recharts/./src/util/stacks/getStackSeriesIdentifier.ts","webpack://Recharts/./src/state/selectors/combiners/combineDisplayedStackedData.ts","webpack://Recharts/./src/state/types/StackedGraphicalItem.ts","webpack://Recharts/./src/state/selectors/numberDomainEqualityCheck.ts","webpack://Recharts/./src/state/selectors/arrayEqualityCheck.ts","webpack://Recharts/./src/state/selectors/selectTooltipAxisType.ts","webpack://Recharts/./src/state/selectors/selectTooltipAxisId.ts","webpack://Recharts/./src/util/scale/RechartsScale.ts","webpack://Recharts/./src/state/selectors/combiners/combineCheckedDomain.ts","webpack://Recharts/./src/state/selectors/axisSelectors.ts","webpack://Recharts/./src/state/selectors/selectTooltipEventType.ts","webpack://Recharts/./src/state/selectors/combiners/combineActiveLabel.ts","webpack://Recharts/./src/state/tooltipSlice.ts","webpack://Recharts/./src/state/selectors/combiners/combineTooltipInteractionState.ts","webpack://Recharts/./src/state/selectors/combiners/combineActiveTooltipIndex.ts","webpack://Recharts/./src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts","webpack://Recharts/./src/state/selectors/combiners/combineTooltipPayloadConfigurations.ts","webpack://Recharts/./src/state/selectors/selectTooltipPayloadSearcher.ts","webpack://Recharts/./src/state/selectors/selectTooltipState.ts","webpack://Recharts/./src/state/selectors/combiners/combineTooltipPayload.ts","webpack://Recharts/./src/state/selectors/tooltipSelectors.ts","webpack://Recharts/./src/state/selectors/selectTooltipSettings.ts","webpack://Recharts/./src/context/useTooltipAxis.ts","webpack://Recharts/./src/util/getActiveCoordinate.ts","webpack://Recharts/./src/state/selectors/selectors.ts","webpack://Recharts/./src/zIndex/zIndexSelectors.ts","webpack://Recharts/./src/state/zIndexSlice.ts","webpack://Recharts/./src/zIndex/ZIndexLayer.tsx","webpack://Recharts/./src/component/Cursor.tsx","webpack://Recharts/./src/util/cursor/getCursorRectangle.ts","webpack://Recharts/./src/context/tooltipPortalContext.tsx","webpack://Recharts/./src/util/Events.ts","webpack://Recharts/./src/state/optionsSlice.ts","webpack://Recharts/./src/synchronisation/syncSelectors.ts","webpack://Recharts/./src/state/chartDataSlice.ts","webpack://Recharts/./src/synchronisation/useChartSynchronisation.tsx","webpack://Recharts/./src/component/Tooltip.tsx","webpack://Recharts/./src/component/Cell.tsx","webpack://Recharts/./src/util/DOMUtils.ts","webpack://Recharts/./src/util/LRUCache.ts","webpack://Recharts/./src/util/ReduceCSSCalc.ts","webpack://Recharts/./src/component/Text.tsx","webpack://Recharts/./src/cartesian/getCartesianPosition.tsx","webpack://Recharts/./src/component/Label.tsx","webpack://Recharts/./src/component/LabelList.tsx","webpack://Recharts/./src/component/Customized.tsx","webpack://Recharts/./src/shape/Polygon.tsx","webpack://Recharts/./src/shape/Dot.tsx","webpack://Recharts/./src/state/selectors/polarSelectors.ts","webpack://Recharts/./src/state/selectors/polarScaleSelectors.ts","webpack://Recharts/./src/state/selectors/polarGridSelectors.ts","webpack://Recharts/./src/polar/PolarGrid.tsx","webpack://Recharts/./src/state/polarAxisSlice.ts","webpack://Recharts/./src/util/getClassNameFromUnknown.tsx","webpack://Recharts/./src/polar/PolarRadiusAxis.tsx","webpack://Recharts/./src/polar/PolarAngleAxis.tsx","webpack://Recharts/./src/state/selectors/pieSelectors.ts","webpack://Recharts/./src/polar/Pie.tsx","webpack://Recharts/./src/util/ReactUtils.ts","webpack://Recharts/./src/shape/Trapezoid.tsx","webpack://Recharts/./src/util/ActiveShapeUtils.tsx","webpack://Recharts/./src/context/tooltipContext.tsx","webpack://Recharts/./src/state/SetTooltipEntrySettings.tsx","webpack://Recharts/./src/state/SetLegendPayload.ts","webpack://Recharts/./src/util/useId.ts","webpack://Recharts/./src/util/useUniqueId.ts","webpack://Recharts/./src/context/RegisterGraphicalItemId.tsx","webpack://Recharts/./src/state/graphicalItemsSlice.ts","webpack://Recharts/./src/state/SetGraphicalItem.ts","webpack://Recharts/./src/component/Dots.tsx","webpack://Recharts/./src/state/cartesianAxisSlice.ts","webpack://Recharts/./src/state/selectors/selectChartOffset.ts","webpack://Recharts/./src/state/selectors/selectPlotArea.ts","webpack://Recharts/./src/hooks.ts","webpack://Recharts/./src/component/ActivePoints.tsx","webpack://Recharts/./src/state/selectors/radarSelectors.ts","webpack://Recharts/./src/polar/Radar.tsx","webpack://Recharts/./src/util/RadialBarUtils.tsx","webpack://Recharts/./src/state/selectors/combiners/combineBarSizeList.ts","webpack://Recharts/./src/state/selectors/combiners/combineAllBarPositions.ts","webpack://Recharts/./src/state/selectors/combiners/combineStackedData.ts","webpack://Recharts/./src/state/selectors/combiners/combineBarPosition.ts","webpack://Recharts/./src/state/selectors/radialBarSelectors.ts","webpack://Recharts/./src/polar/RadialBar.tsx","webpack://Recharts/./src/zIndex/getZIndexFromUnknown.tsx","webpack://Recharts/./src/util/CssPrefixUtils.ts","webpack://Recharts/./src/context/chartDataContext.tsx","webpack://Recharts/./src/context/brushUpdateContext.tsx","webpack://Recharts/./src/state/brushSlice.ts","webpack://Recharts/./src/cartesian/Brush.tsx","webpack://Recharts/./src/util/CartesianUtils.ts","webpack://Recharts/./src/state/referenceElementsSlice.ts","webpack://Recharts/./src/container/ClipPathProvider.tsx","webpack://Recharts/./src/util/scale/CartesianScaleHelper.ts","webpack://Recharts/./src/cartesian/ReferenceLine.tsx","webpack://Recharts/./src/cartesian/ReferenceDot.tsx","webpack://Recharts/./src/cartesian/ReferenceArea.tsx","webpack://Recharts/./src/util/getEveryNth.ts","webpack://Recharts/./src/util/TickUtils.ts","webpack://Recharts/./src/cartesian/getTicks.ts","webpack://Recharts/./src/cartesian/getEquidistantTicks.ts","webpack://Recharts/./src/util/YAxisUtils.tsx","webpack://Recharts/./src/cartesian/CartesianAxis.tsx","webpack://Recharts/./src/cartesian/CartesianGrid.tsx","webpack://Recharts/./src/state/errorBarSlice.ts","webpack://Recharts/./src/context/ErrorBarContext.tsx","webpack://Recharts/./src/cartesian/GraphicalItemClipPath.tsx","webpack://Recharts/./src/state/selectors/lineSelectors.ts","webpack://Recharts/./src/cartesian/Line.tsx","webpack://Recharts/./src/util/getRadiusAndStrokeWidthFromDot.tsx","webpack://Recharts/./node_modules/react-redux/es/utils/batch.js","webpack://Recharts/./node_modules/react-redux/es/components/Context.js","webpack://Recharts/./node_modules/react-redux/es/hooks/useSelector.js","webpack://Recharts/./node_modules/react-redux/es/utils/Subscription.js","webpack://Recharts/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://Recharts/./node_modules/react-redux/es/components/connect.js","webpack://Recharts/./node_modules/react-redux/es/components/Provider.js","webpack://Recharts/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://Recharts/./node_modules/react-redux/es/index.js","webpack://Recharts/./src/util/propsAreEqual.ts","webpack://Recharts/./src/state/selectors/graphicalItemSelectors.ts","webpack://Recharts/./src/state/selectors/areaSelectors.ts","webpack://Recharts/./src/cartesian/Area.tsx","webpack://Recharts/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://Recharts/./src/util/BarUtils.tsx","webpack://Recharts/./src/state/selectors/barSelectors.ts","webpack://Recharts/./src/cartesian/Bar.tsx","webpack://Recharts/./src/state/selectors/barStackSelectors.ts","webpack://Recharts/./src/cartesian/BarStack.tsx","webpack://Recharts/./src/util/ScatterUtils.tsx","webpack://Recharts/./src/state/selectors/scatterSelectors.ts","webpack://Recharts/./src/cartesian/Scatter.tsx","webpack://Recharts/./src/util/axisPropsAreEqual.ts","webpack://Recharts/./src/cartesian/XAxis.tsx","webpack://Recharts/./src/cartesian/YAxis.tsx","webpack://Recharts/./src/cartesian/ZAxis.tsx","webpack://Recharts/./src/animation/CSSTransitionAnimate.tsx","webpack://Recharts/./src/cartesian/ErrorBar.tsx","webpack://Recharts/./src/state/selectors/selectActivePropsFromChartPointer.ts","webpack://Recharts/./src/util/getChartPointer.ts","webpack://Recharts/./src/state/mouseEventsMiddleware.ts","webpack://Recharts/./src/state/reduxDevtoolsJsonStringifyReplacer.ts","webpack://Recharts/./src/state/rootPropsSlice.ts","webpack://Recharts/./src/state/polarOptionsSlice.ts","webpack://Recharts/./src/state/keyboardEventsMiddleware.ts","webpack://Recharts/./src/state/externalEventsMiddleware.ts","webpack://Recharts/./src/state/selectors/touchSelectors.ts","webpack://Recharts/./src/state/touchEventsMiddleware.ts","webpack://Recharts/./src/state/store.ts","webpack://Recharts/./src/state/RechartsStoreProvider.tsx","webpack://Recharts/./src/state/ReportMainChartProps.tsx","webpack://Recharts/./src/state/ReportChartProps.tsx","webpack://Recharts/./src/zIndex/ZIndexPortal.tsx","webpack://Recharts/./src/container/RootSurface.tsx","webpack://Recharts/./src/chart/RechartsWrapper.tsx","webpack://Recharts/./src/util/useReportScale.ts","webpack://Recharts/./src/chart/CategoricalChart.tsx","webpack://Recharts/./src/chart/CartesianChart.tsx","webpack://Recharts/./src/chart/LineChart.tsx","webpack://Recharts/./src/chart/BarChart.tsx","webpack://Recharts/./src/state/ReportPolarOptions.tsx","webpack://Recharts/./src/chart/PolarChart.tsx","webpack://Recharts/./src/chart/PieChart.tsx","webpack://Recharts/./src/chart/Treemap.tsx","webpack://Recharts/./src/chart/Sankey.tsx","webpack://Recharts/./src/chart/RadarChart.tsx","webpack://Recharts/./src/chart/ScatterChart.tsx","webpack://Recharts/./src/chart/AreaChart.tsx","webpack://Recharts/./src/chart/RadialBarChart.tsx","webpack://Recharts/./src/chart/ComposedChart.tsx","webpack://Recharts/./src/chart/SunburstChart.tsx","webpack://Recharts/./src/util/FunnelUtils.tsx","webpack://Recharts/./src/state/selectors/funnelSelectors.ts","webpack://Recharts/./src/cartesian/Funnel.tsx","webpack://Recharts/./src/chart/FunnelChart.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"react-is\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\", \"react-is\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Recharts\"] = factory(require(\"react\"), require(\"react-dom\"), require(\"react-is\"));\n\telse\n\t\troot[\"Recharts\"] = factory(root[\"React\"], root[\"ReactDOM\"], root[\"ReactIs\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__5442__, __WEBPACK_EXTERNAL_MODULE__6003__, __WEBPACK_EXTERNAL_MODULE__2751__) => {\nreturn ","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst debounce$1 = require('../../function/debounce.js');\n\nfunction debounce(func, debounceMs = 0, options = {}) {\n    if (typeof options !== 'object') {\n        options = {};\n    }\n    const { leading = false, trailing = true, maxWait } = options;\n    const edges = Array(2);\n    if (leading) {\n        edges[0] = 'leading';\n    }\n    if (trailing) {\n        edges[1] = 'trailing';\n    }\n    let result = undefined;\n    let pendingAt = null;\n    const _debounced = debounce$1.debounce(function (...args) {\n        result = func.apply(this, args);\n        pendingAt = null;\n    }, debounceMs, { edges });\n    const debounced = function (...args) {\n        if (maxWait != null) {\n            if (pendingAt === null) {\n                pendingAt = Date.now();\n            }\n            if (Date.now() - pendingAt >= maxWait) {\n                result = func.apply(this, args);\n                pendingAt = Date.now();\n                _debounced.cancel();\n                _debounced.schedule();\n                return result;\n            }\n        }\n        _debounced.apply(this, args);\n        return result;\n    };\n    const flush = () => {\n        _debounced.flush();\n        return result;\n    };\n    debounced.cancel = _debounced.cancel;\n    debounced.flush = flush;\n    return debounced;\n}\n\nexports.debounce = debounce;\n","module.exports = require('../dist/compat/array/last.js').last;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isLength = require('../../predicate/isLength.js');\n\nfunction isArrayLike(value) {\n    return value != null && typeof value !== 'function' && isLength.isLength(value.length);\n}\n\nexports.isArrayLike = isArrayLike;\n","module.exports = require('../dist/compat/array/sortBy.js').sortBy;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","module.exports = require('../dist/compat/object/get.js').get;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isIndex = require('./isIndex.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\nconst isObject = require('../predicate/isObject.js');\nconst isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');\n\nfunction isIterateeCall(value, index, object) {\n    if (!isObject.isObject(object)) {\n        return false;\n    }\n    if ((typeof index === 'number' && isArrayLike.isArrayLike(object) && isIndex.isIndex(index) && index < object.length) ||\n        (typeof index === 'string' && index in object)) {\n        return isEqualsSameValueZero.isEqualsSameValueZero(object[index], value);\n    }\n    return false;\n}\n\nexports.isIterateeCall = isIterateeCall;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction maxBy(items, getValue) {\n    if (items.length === 0) {\n        return undefined;\n    }\n    let maxElement = items[0];\n    let max = getValue(maxElement, 0, items);\n    for (let i = 1; i < items.length; i++) {\n        const element = items[i];\n        const value = getValue(element, i, items);\n        if (value > max) {\n            max = value;\n            maxElement = element;\n        }\n    }\n    return maxElement;\n}\n\nexports.maxBy = maxBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isTypedArray$1 = require('../../predicate/isTypedArray.js');\n\nfunction isTypedArray(x) {\n    return isTypedArray$1.isTypedArray(x);\n}\n\nexports.isTypedArray = isTypedArray;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isBuffer(x) {\n    return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);\n}\n\nexports.isBuffer = isBuffer;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction last(arr) {\n    return arr[arr.length - 1];\n}\n\nexports.last = last;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatchWith = require('./isMatchWith.js');\n\nfunction isMatch(target, source) {\n    return isMatchWith.isMatchWith(target, source, () => undefined);\n}\n\nexports.isMatch = isMatch;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst minBy$1 = require('../../array/minBy.js');\nconst identity = require('../../function/identity.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction minBy(items, iteratee$1) {\n    if (items == null) {\n        return undefined;\n    }\n    return minBy$1.minBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));\n}\n\nexports.minBy = minBy;\n","module.exports = require('../dist/compat/array/uniqBy.js').uniqBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst last$1 = require('../../array/last.js');\nconst toArray = require('../_internal/toArray.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\n\nfunction last(array) {\n    if (!isArrayLike.isArrayLike(array)) {\n        return undefined;\n    }\n    return last$1.last(toArray.toArray(array));\n}\n\nexports.last = last;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isSymbol(value) {\n    return typeof value === 'symbol' || value instanceof Symbol;\n}\n\nexports.isSymbol = isSymbol;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toKey(value) {\n    if (typeof value === 'string' || typeof value === 'symbol') {\n        return value;\n    }\n    if (Object.is(value?.valueOf?.(), -0)) {\n        return '-0';\n    }\n    return String(value);\n}\n\nexports.toKey = toKey;\n","module.exports = require('../dist/compat/object/omit.js').omit;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isBuffer = require('../../predicate/isBuffer.js');\nconst isPrototype = require('../_internal/isPrototype.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\nconst isTypedArray = require('../predicate/isTypedArray.js');\nconst times = require('../util/times.js');\n\nfunction keysIn(object) {\n    if (object == null) {\n        return [];\n    }\n    switch (typeof object) {\n        case 'object':\n        case 'function': {\n            if (isArrayLike.isArrayLike(object)) {\n                return arrayLikeKeysIn(object);\n            }\n            if (isPrototype.isPrototype(object)) {\n                return prototypeKeysIn(object);\n            }\n            return keysInImpl(object);\n        }\n        default: {\n            return keysInImpl(Object(object));\n        }\n    }\n}\nfunction keysInImpl(object) {\n    const result = [];\n    for (const key in object) {\n        result.push(key);\n    }\n    return result;\n}\nfunction prototypeKeysIn(object) {\n    const keys = keysInImpl(object);\n    return keys.filter(key => key !== 'constructor');\n}\nfunction arrayLikeKeysIn(object) {\n    const indices = times.times(object.length, index => `${index}`);\n    const filteredKeys = new Set(indices);\n    if (isBuffer.isBuffer(object)) {\n        filteredKeys.add('offset');\n        filteredKeys.add('parent');\n    }\n    if (isTypedArray.isTypedArray(object)) {\n        filteredKeys.add('buffer');\n        filteredKeys.add('byteLength');\n        filteredKeys.add('byteOffset');\n    }\n    const inheritedKeys = keysInImpl(object).filter(key => !filteredKeys.has(key));\n    if (Array.isArray(object)) {\n        return [...indices, ...inheritedKeys];\n    }\n    return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];\n}\n\nexports.keysIn = keysIn;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isObjectLike(value) {\n    return typeof value === 'object' && value !== null;\n}\n\nexports.isObjectLike = isObjectLike;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toString(value) {\n    if (value == null) {\n        return '';\n    }\n    if (typeof value === 'string') {\n        return value;\n    }\n    if (Array.isArray(value)) {\n        return value.map(toString).join(',');\n    }\n    const result = String(value);\n    if (result === '0' && Object.is(Number(value), -0)) {\n        return '-0';\n    }\n    return result;\n}\n\nexports.toString = toString;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getSymbols = require('./getSymbols.js');\n\nfunction getSymbolsIn(object) {\n    const result = [];\n    while (object) {\n        result.push(...getSymbols.getSymbols(object));\n        object = Object.getPrototypeOf(object);\n    }\n    return result;\n}\n\nexports.getSymbolsIn = getSymbolsIn;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getTag(value) {\n    if (value == null) {\n        return value === undefined ? '[object Undefined]' : '[object Null]';\n    }\n    return Object.prototype.toString.call(value);\n}\n\nexports.getTag = getTag;\n","module.exports = require('../dist/compat/math/sumBy.js').sumBy;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n  shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n  useSyncExternalStore = shim.useSyncExternalStore,\n  useRef = React.useRef,\n  useEffect = React.useEffect,\n  useMemo = React.useMemo,\n  useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n  subscribe,\n  getSnapshot,\n  getServerSnapshot,\n  selector,\n  isEqual\n) {\n  var instRef = useRef(null);\n  if (null === instRef.current) {\n    var inst = { hasValue: !1, value: null };\n    instRef.current = inst;\n  } else inst = instRef.current;\n  instRef = useMemo(\n    function () {\n      function memoizedSelector(nextSnapshot) {\n        if (!hasMemo) {\n          hasMemo = !0;\n          memoizedSnapshot = nextSnapshot;\n          nextSnapshot = selector(nextSnapshot);\n          if (void 0 !== isEqual && inst.hasValue) {\n            var currentSelection = inst.value;\n            if (isEqual(currentSelection, nextSnapshot))\n              return (memoizedSelection = currentSelection);\n          }\n          return (memoizedSelection = nextSnapshot);\n        }\n        currentSelection = memoizedSelection;\n        if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n        var nextSelection = selector(nextSnapshot);\n        if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n          return (memoizedSnapshot = nextSnapshot), currentSelection;\n        memoizedSnapshot = nextSnapshot;\n        return (memoizedSelection = nextSelection);\n      }\n      var hasMemo = !1,\n        memoizedSnapshot,\n        memoizedSelection,\n        maybeGetServerSnapshot =\n          void 0 === getServerSnapshot ? null : getServerSnapshot;\n      return [\n        function () {\n          return memoizedSelector(getSnapshot());\n        },\n        null === maybeGetServerSnapshot\n          ? void 0\n          : function () {\n              return memoizedSelector(maybeGetServerSnapshot());\n            }\n      ];\n    },\n    [getSnapshot, getServerSnapshot, selector, isEqual]\n  );\n  var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n  useEffect(\n    function () {\n      inst.hasValue = !0;\n      inst.value = value;\n    },\n    [value]\n  );\n  useDebugValue(value);\n  return value;\n};\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPrimitive(value) {\n    return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexports.isPrimitive = isPrimitive;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__2751__;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst uniqBy$1 = require('../../array/uniqBy.js');\nconst ary = require('../../function/ary.js');\nconst identity = require('../../function/identity.js');\nconst isArrayLikeObject = require('../predicate/isArrayLikeObject.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction uniqBy(array, iteratee$1 = identity.identity) {\n    if (!isArrayLikeObject.isArrayLikeObject(array)) {\n        return [];\n    }\n    return uniqBy$1.uniqBy(Array.from(array), ary.ary(iteratee.iteratee(iteratee$1), 1));\n}\n\nexports.uniqBy = uniqBy;\n","module.exports = require('../dist/compat/predicate/isPlainObject.js').isPlainObject;\n","module.exports = require('../dist/compat/math/minBy.js').minBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getTag = require('../_internal/getTag.js');\n\nfunction isArguments(value) {\n    return value !== null && typeof value === 'object' && getTag.getTag(value) === '[object Arguments]';\n}\n\nexports.isArguments = isArguments;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toString = require('./toString.js');\nconst toKey = require('../_internal/toKey.js');\n\nfunction toPath(deepKey) {\n    if (Array.isArray(deepKey)) {\n        return deepKey.map(toKey.toKey);\n    }\n    if (typeof deepKey === 'symbol') {\n        return [deepKey];\n    }\n    deepKey = toString.toString(deepKey);\n    const result = [];\n    const length = deepKey.length;\n    if (length === 0) {\n        return result;\n    }\n    let index = 0;\n    let key = '';\n    let quoteChar = '';\n    let bracket = false;\n    if (deepKey.charCodeAt(0) === 46) {\n        result.push('');\n        index++;\n    }\n    while (index < length) {\n        const char = deepKey[index];\n        if (quoteChar) {\n            if (char === '\\\\' && index + 1 < length) {\n                index++;\n                key += deepKey[index];\n            }\n            else if (char === quoteChar) {\n                quoteChar = '';\n            }\n            else {\n                key += char;\n            }\n        }\n        else if (bracket) {\n            if (char === '\"' || char === \"'\") {\n                quoteChar = char;\n            }\n            else if (char === ']') {\n                bracket = false;\n                result.push(key);\n                key = '';\n            }\n            else {\n                key += char;\n            }\n        }\n        else {\n            if (char === '[') {\n                bracket = true;\n                if (key) {\n                    result.push(key);\n                    key = '';\n                }\n            }\n            else if (char === '.') {\n                if (key) {\n                    result.push(key);\n                    key = '';\n                }\n            }\n            else {\n                key += char;\n            }\n        }\n        index++;\n    }\n    if (key) {\n        result.push(key);\n    }\n    return result;\n}\n\nexports.toPath = toPath;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatch = require('./isMatch.js');\nconst toKey = require('../_internal/toKey.js');\nconst cloneDeep = require('../object/cloneDeep.js');\nconst get = require('../object/get.js');\nconst has = require('../object/has.js');\n\nfunction matchesProperty(property, source) {\n    switch (typeof property) {\n        case 'object': {\n            if (Object.is(property?.valueOf(), -0)) {\n                property = '-0';\n            }\n            break;\n        }\n        case 'number': {\n            property = toKey.toKey(property);\n            break;\n        }\n    }\n    source = cloneDeep.cloneDeep(source);\n    return function (target) {\n        const result = get.get(target, property);\n        if (result === undefined) {\n            return has.has(target, property);\n        }\n        if (source === undefined) {\n            return result === undefined;\n        }\n        return isMatch.isMatch(result, source);\n    };\n}\n\nexports.matchesProperty = matchesProperty;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst compareValues = require('../_internal/compareValues.js');\nconst isKey = require('../_internal/isKey.js');\nconst toPath = require('../util/toPath.js');\n\nfunction orderBy(collection, criteria, orders, guard) {\n    if (collection == null) {\n        return [];\n    }\n    orders = guard ? undefined : orders;\n    if (!Array.isArray(collection)) {\n        collection = Object.values(collection);\n    }\n    if (!Array.isArray(criteria)) {\n        criteria = criteria == null ? [null] : [criteria];\n    }\n    if (criteria.length === 0) {\n        criteria = [null];\n    }\n    if (!Array.isArray(orders)) {\n        orders = orders == null ? [] : [orders];\n    }\n    orders = orders.map(order => String(order));\n    const getValueByNestedPath = (object, path) => {\n        let target = object;\n        for (let i = 0; i < path.length && target != null; ++i) {\n            target = target[path[i]];\n        }\n        return target;\n    };\n    const getValueByCriterion = (criterion, object) => {\n        if (object == null || criterion == null) {\n            return object;\n        }\n        if (typeof criterion === 'object' && 'key' in criterion) {\n            if (Object.hasOwn(object, criterion.key)) {\n                return object[criterion.key];\n            }\n            return getValueByNestedPath(object, criterion.path);\n        }\n        if (typeof criterion === 'function') {\n            return criterion(object);\n        }\n        if (Array.isArray(criterion)) {\n            return getValueByNestedPath(object, criterion);\n        }\n        if (typeof object === 'object') {\n            return object[criterion];\n        }\n        return object;\n    };\n    const preparedCriteria = criteria.map((criterion) => {\n        if (Array.isArray(criterion) && criterion.length === 1) {\n            criterion = criterion[0];\n        }\n        if (criterion == null || typeof criterion === 'function' || Array.isArray(criterion) || isKey.isKey(criterion)) {\n            return criterion;\n        }\n        return { key: criterion, path: toPath.toPath(criterion) };\n    });\n    const preparedCollection = collection.map(item => ({\n        original: item,\n        criteria: preparedCriteria.map((criterion) => getValueByCriterion(criterion, item)),\n    }));\n    return preparedCollection\n        .slice()\n        .sort((a, b) => {\n        for (let i = 0; i < preparedCriteria.length; i++) {\n            const comparedResult = compareValues.compareValues(a.criteria[i], b.criteria[i], orders[i]);\n            if (comparedResult !== 0) {\n                return comparedResult;\n            }\n        }\n        return 0;\n    })\n        .map(item => item.original);\n}\n\nexports.orderBy = orderBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst get = require('./get.js');\n\nfunction property(path) {\n    return function (object) {\n        return get.get(object, path);\n    };\n}\n\nexports.property = property;\n","module.exports = require('../dist/compat/math/range.js').range;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getPriority(a) {\n    if (typeof a === 'symbol') {\n        return 1;\n    }\n    if (a === null) {\n        return 2;\n    }\n    if (a === undefined) {\n        return 3;\n    }\n    if (a !== a) {\n        return 4;\n    }\n    return 0;\n}\nconst compareValues = (a, b, order) => {\n    if (a !== b) {\n        const aPriority = getPriority(a);\n        const bPriority = getPriority(b);\n        if (aPriority === bPriority && aPriority === 0) {\n            if (a < b) {\n                return order === 'desc' ? 1 : -1;\n            }\n            if (a > b) {\n                return order === 'desc' ? -1 : 1;\n            }\n        }\n        return order === 'desc' ? bPriority - aPriority : aPriority - bPriority;\n    }\n    return 0;\n};\n\nexports.compareValues = compareValues;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst iteratee = require('../util/iteratee.js');\n\nfunction sumBy(array, iteratee$1) {\n    if (!array || !array.length) {\n        return 0;\n    }\n    if (iteratee$1 != null) {\n        iteratee$1 = iteratee.iteratee(iteratee$1);\n    }\n    let result = undefined;\n    for (let i = 0; i < array.length; i++) {\n        const current = iteratee$1 ? iteratee$1(array[i]) : array[i];\n        if (current !== undefined) {\n            if (result === undefined) {\n                result = current;\n            }\n            else {\n                result += current;\n            }\n        }\n    }\n    return result;\n}\n\nexports.sumBy = sumBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\n\nfunction cloneDeep(obj) {\n    return cloneDeepWith.cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexports.cloneDeep = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isTypedArray(x) {\n    return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexports.isTypedArray = isTypedArray;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\n\nfunction cloneDeep(obj) {\n    return cloneDeepWith.cloneDeepWith(obj);\n}\n\nexports.cloneDeep = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getSymbols = require('../compat/_internal/getSymbols.js');\nconst getTag = require('../compat/_internal/getTag.js');\nconst tags = require('../compat/_internal/tags.js');\nconst isPrimitive = require('../predicate/isPrimitive.js');\nconst isTypedArray = require('../predicate/isTypedArray.js');\n\nfunction cloneDeepWith(obj, cloneValue) {\n    return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n    const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n    if (cloned !== undefined) {\n        return cloned;\n    }\n    if (isPrimitive.isPrimitive(valueToClone)) {\n        return valueToClone;\n    }\n    if (stack.has(valueToClone)) {\n        return stack.get(valueToClone);\n    }\n    if (Array.isArray(valueToClone)) {\n        const result = new Array(valueToClone.length);\n        stack.set(valueToClone, result);\n        for (let i = 0; i < valueToClone.length; i++) {\n            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n        }\n        if (Object.hasOwn(valueToClone, 'index')) {\n            result.index = valueToClone.index;\n        }\n        if (Object.hasOwn(valueToClone, 'input')) {\n            result.input = valueToClone.input;\n        }\n        return result;\n    }\n    if (valueToClone instanceof Date) {\n        return new Date(valueToClone.getTime());\n    }\n    if (valueToClone instanceof RegExp) {\n        const result = new RegExp(valueToClone.source, valueToClone.flags);\n        result.lastIndex = valueToClone.lastIndex;\n        return result;\n    }\n    if (valueToClone instanceof Map) {\n        const result = new Map();\n        stack.set(valueToClone, result);\n        for (const [key, value] of valueToClone) {\n            result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n        }\n        return result;\n    }\n    if (valueToClone instanceof Set) {\n        const result = new Set();\n        stack.set(valueToClone, result);\n        for (const value of valueToClone) {\n            result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n        }\n        return result;\n    }\n    if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n        return valueToClone.subarray();\n    }\n    if (isTypedArray.isTypedArray(valueToClone)) {\n        const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n        stack.set(valueToClone, result);\n        for (let i = 0; i < valueToClone.length; i++) {\n            result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n        }\n        return result;\n    }\n    if (valueToClone instanceof ArrayBuffer ||\n        (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n        return valueToClone.slice(0);\n    }\n    if (valueToClone instanceof DataView) {\n        const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (typeof File !== 'undefined' && valueToClone instanceof File) {\n        const result = new File([valueToClone], valueToClone.name, {\n            type: valueToClone.type,\n        });\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n        const result = new Blob([valueToClone], { type: valueToClone.type });\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (valueToClone instanceof Error) {\n        const result = new valueToClone.constructor();\n        stack.set(valueToClone, result);\n        result.message = valueToClone.message;\n        result.name = valueToClone.name;\n        result.stack = valueToClone.stack;\n        result.cause = valueToClone.cause;\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (valueToClone instanceof Boolean) {\n        const result = new Boolean(valueToClone.valueOf());\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (valueToClone instanceof Number) {\n        const result = new Number(valueToClone.valueOf());\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (valueToClone instanceof String) {\n        const result = new String(valueToClone.valueOf());\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n        const result = Object.create(Object.getPrototypeOf(valueToClone));\n        stack.set(valueToClone, result);\n        copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n        return result;\n    }\n    return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n    const keys = [...Object.keys(source), ...getSymbols.getSymbols(source)];\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        const descriptor = Object.getOwnPropertyDescriptor(target, key);\n        if (descriptor == null || descriptor.writable) {\n            target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n        }\n    }\n}\nfunction isCloneableObject(object) {\n    switch (getTag.getTag(object)) {\n        case tags.argumentsTag:\n        case tags.arrayTag:\n        case tags.arrayBufferTag:\n        case tags.dataViewTag:\n        case tags.booleanTag:\n        case tags.dateTag:\n        case tags.float32ArrayTag:\n        case tags.float64ArrayTag:\n        case tags.int8ArrayTag:\n        case tags.int16ArrayTag:\n        case tags.int32ArrayTag:\n        case tags.mapTag:\n        case tags.numberTag:\n        case tags.objectTag:\n        case tags.regexpTag:\n        case tags.setTag:\n        case tags.stringTag:\n        case tags.symbolTag:\n        case tags.uint8ArrayTag:\n        case tags.uint8ClampedArrayTag:\n        case tags.uint16ArrayTag:\n        case tags.uint32ArrayTag: {\n            return true;\n        }\n        default: {\n            return false;\n        }\n    }\n}\n\nexports.cloneDeepWith = cloneDeepWith;\nexports.cloneDeepWithImpl = cloneDeepWithImpl;\nexports.copyProperties = copyProperties;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isSymbol = require('../predicate/isSymbol.js');\n\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\nconst regexIsPlainProp = /^\\w*$/;\nfunction isKey(value, object) {\n    if (Array.isArray(value)) {\n        return false;\n    }\n    if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol.isSymbol(value)) {\n        return true;\n    }\n    return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||\n        (object != null && Object.hasOwn(object, value)));\n}\n\nexports.isKey = isKey;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\nconst keysIn = require('./keysIn.js');\nconst unset = require('./unset.js');\nconst getSymbolsIn = require('../_internal/getSymbolsIn.js');\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst flatten = require('../array/flatten.js');\nconst isPlainObject = require('../predicate/isPlainObject.js');\n\nfunction omit(obj, ...keysArr) {\n    if (obj == null) {\n        return {};\n    }\n    keysArr = flatten.flatten(keysArr);\n    const result = cloneInOmit(obj, keysArr);\n    for (let i = 0; i < keysArr.length; i++) {\n        let keys = keysArr[i];\n        switch (typeof keys) {\n            case 'object': {\n                if (!Array.isArray(keys)) {\n                    keys = Array.from(keys);\n                }\n                for (let j = 0; j < keys.length; j++) {\n                    const key = keys[j];\n                    unset.unset(result, key);\n                }\n                break;\n            }\n            case 'string':\n            case 'symbol':\n            case 'number': {\n                unset.unset(result, keys);\n                break;\n            }\n        }\n    }\n    return result;\n}\nfunction cloneInOmit(obj, keys) {\n    const hasDeepKey = keys.some(key => Array.isArray(key) || isDeepKey.isDeepKey(key));\n    if (hasDeepKey) {\n        return deepCloneInOmit(obj);\n    }\n    return shallowCloneInOmit(obj);\n}\nfunction shallowCloneInOmit(obj) {\n    const result = {};\n    const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];\n    for (let i = 0; i < keysToCopy.length; i++) {\n        const key = keysToCopy[i];\n        result[key] = obj[key];\n    }\n    return result;\n}\nfunction deepCloneInOmit(obj) {\n    const result = {};\n    const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];\n    for (let i = 0; i < keysToCopy.length; i++) {\n        const key = keysToCopy[i];\n        result[key] = cloneDeepWith.cloneDeepWith(obj[key], valueToClone => {\n            if (isPlainObject.isPlainObject(valueToClone)) {\n                return undefined;\n            }\n            return valueToClone;\n        });\n    }\n    return result;\n}\n\nexports.omit = omit;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst toKey = require('../_internal/toKey.js');\nconst toPath = require('../util/toPath.js');\n\nfunction get(object, path, defaultValue) {\n    if (object == null) {\n        return defaultValue;\n    }\n    switch (typeof path) {\n        case 'string': {\n            if (isUnsafeProperty.isUnsafeProperty(path)) {\n                return defaultValue;\n            }\n            const result = object[path];\n            if (result === undefined) {\n                if (isDeepKey.isDeepKey(path)) {\n                    return get(object, toPath.toPath(path), defaultValue);\n                }\n                else {\n                    return defaultValue;\n                }\n            }\n            return result;\n        }\n        case 'number':\n        case 'symbol': {\n            if (typeof path === 'number') {\n                path = toKey.toKey(path);\n            }\n            const result = object[path];\n            if (result === undefined) {\n                return defaultValue;\n            }\n            return result;\n        }\n        default: {\n            if (Array.isArray(path)) {\n                return getWithPath(object, path, defaultValue);\n            }\n            if (Object.is(path?.valueOf(), -0)) {\n                path = '-0';\n            }\n            else {\n                path = String(path);\n            }\n            if (isUnsafeProperty.isUnsafeProperty(path)) {\n                return defaultValue;\n            }\n            const result = object[path];\n            if (result === undefined) {\n                return defaultValue;\n            }\n            return result;\n        }\n    }\n}\nfunction getWithPath(object, path, defaultValue) {\n    if (path.length === 0) {\n        return defaultValue;\n    }\n    let current = object;\n    for (let index = 0; index < path.length; index++) {\n        if (current == null) {\n            return defaultValue;\n        }\n        if (isUnsafeProperty.isUnsafeProperty(path[index])) {\n            return defaultValue;\n        }\n        current = current[path[index]];\n    }\n    if (current === undefined) {\n        return defaultValue;\n    }\n    return current;\n}\n\nexports.get = get;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst orderBy = require('./orderBy.js');\nconst flatten = require('../../array/flatten.js');\nconst isIterateeCall = require('../_internal/isIterateeCall.js');\n\nfunction sortBy(collection, ...criteria) {\n    const length = criteria.length;\n    if (length > 1 && isIterateeCall.isIterateeCall(collection, criteria[0], criteria[1])) {\n        criteria = [];\n    }\n    else if (length > 2 && isIterateeCall.isIterateeCall(criteria[0], criteria[1], criteria[2])) {\n        criteria = [criteria[0]];\n    }\n    return orderBy.orderBy(collection, flatten.flatten(criteria), ['asc']);\n}\n\nexports.sortBy = sortBy;\n","module.exports = require('../dist/compat/function/throttle.js').throttle;\n","module.exports = require('../dist/compat/math/maxBy.js').maxBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toArray(value) {\n    return Array.isArray(value) ? value : Array.from(value);\n}\n\nexports.toArray = toArray;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isEqualsSameValueZero(value, other) {\n    return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexports.isEqualsSameValueZero = isEqualsSameValueZero;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toNumber = require('./toNumber.js');\n\nfunction toFinite(value) {\n    if (!value) {\n        return value === 0 ? value : 0;\n    }\n    value = toNumber.toNumber(value);\n    if (value === Infinity || value === -Infinity) {\n        const sign = value < 0 ? -1 : 1;\n        return sign * Number.MAX_VALUE;\n    }\n    return value === value ? value : 0;\n}\n\nexports.toFinite = toFinite;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isObject(value) {\n    return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexports.isObject = isObject;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isIterateeCall = require('../_internal/isIterateeCall.js');\nconst toFinite = require('../util/toFinite.js');\n\nfunction range(start, end, step) {\n    if (step && typeof step !== 'number' && isIterateeCall.isIterateeCall(start, end, step)) {\n        end = step = undefined;\n    }\n    start = toFinite.toFinite(start);\n    if (end === undefined) {\n        end = start;\n        start = 0;\n    }\n    else {\n        end = toFinite.toFinite(end);\n    }\n    step = step === undefined ? (start < end ? 1 : -1) : toFinite.toFinite(step);\n    const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);\n    const result = new Array(length);\n    for (let index = 0; index < length; index++) {\n        result[index] = start;\n        start += step;\n    }\n    return result;\n}\n\nexports.range = range;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isDeepKey(key) {\n    switch (typeof key) {\n        case 'number':\n        case 'symbol': {\n            return false;\n        }\n        case 'string': {\n            return key.includes('.') || key.includes('[') || key.includes(']');\n        }\n    }\n}\n\nexports.isDeepKey = isDeepKey;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst debounce = require('./debounce.js');\n\nfunction throttle(func, throttleMs = 0, options = {}) {\n    const { leading = true, trailing = true } = options;\n    return debounce.debounce(func, throttleMs, {\n        leading,\n        maxWait: throttleMs,\n        trailing,\n    });\n}\n\nexports.throttle = throttle;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPrototype(value) {\n    const constructor = value?.constructor;\n    const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n    return value === prototype;\n}\n\nexports.isPrototype = isPrototype;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__5442__;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction flatten(arr, depth = 1) {\n    const result = [];\n    const flooredDepth = Math.floor(depth);\n    const recursive = (arr, currentDepth) => {\n        for (let i = 0; i < arr.length; i++) {\n            const item = arr[i];\n            if (Array.isArray(item) && currentDepth < flooredDepth) {\n                recursive(item, currentDepth + 1);\n            }\n            else {\n                result.push(item);\n            }\n        }\n    };\n    recursive(arr, 0);\n    return result;\n}\n\nexports.flatten = flatten;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst maxBy$1 = require('../../array/maxBy.js');\nconst identity = require('../../function/identity.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction maxBy(items, iteratee$1) {\n    if (items == null) {\n        return undefined;\n    }\n    return maxBy$1.maxBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));\n}\n\nexports.maxBy = maxBy;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6003__;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getSymbols(object) {\n    return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexports.getSymbols = getSymbols;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isArrayLike = require('../predicate/isArrayLike.js');\n\nfunction flatten(value, depth = 1) {\n    const result = [];\n    const flooredDepth = Math.floor(depth);\n    if (!isArrayLike.isArrayLike(value)) {\n        return result;\n    }\n    const recursive = (arr, currentDepth) => {\n        for (let i = 0; i < arr.length; i++) {\n            const item = arr[i];\n            if (currentDepth < flooredDepth &&\n                (Array.isArray(item) ||\n                    Boolean(item?.[Symbol.isConcatSpreadable]) ||\n                    (item !== null && typeof item === 'object' && Object.prototype.toString.call(item) === '[object Arguments]'))) {\n                if (Array.isArray(item)) {\n                    recursive(item, currentDepth + 1);\n                }\n                else {\n                    recursive(Array.from(item), currentDepth + 1);\n                }\n            }\n            else {\n                result.push(item);\n            }\n        }\n    };\n    recursive(Array.from(value), 0);\n    return result;\n}\n\nexports.flatten = flatten;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction identity(x) {\n    return x;\n}\n\nexports.identity = identity;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction debounce(func, debounceMs, { signal, edges } = {}) {\n    let pendingThis = undefined;\n    let pendingArgs = null;\n    const leading = edges != null && edges.includes('leading');\n    const trailing = edges == null || edges.includes('trailing');\n    const invoke = () => {\n        if (pendingArgs !== null) {\n            func.apply(pendingThis, pendingArgs);\n            pendingThis = undefined;\n            pendingArgs = null;\n        }\n    };\n    const onTimerEnd = () => {\n        if (trailing) {\n            invoke();\n        }\n        cancel();\n    };\n    let timeoutId = null;\n    const schedule = () => {\n        if (timeoutId != null) {\n            clearTimeout(timeoutId);\n        }\n        timeoutId = setTimeout(() => {\n            timeoutId = null;\n            onTimerEnd();\n        }, debounceMs);\n    };\n    const cancelTimer = () => {\n        if (timeoutId !== null) {\n            clearTimeout(timeoutId);\n            timeoutId = null;\n        }\n    };\n    const cancel = () => {\n        cancelTimer();\n        pendingThis = undefined;\n        pendingArgs = null;\n    };\n    const flush = () => {\n        invoke();\n    };\n    const debounced = function (...args) {\n        if (signal?.aborted) {\n            return;\n        }\n        pendingThis = this;\n        pendingArgs = args;\n        const isFirstCall = timeoutId == null;\n        schedule();\n        if (leading && isFirstCall) {\n            invoke();\n        }\n    };\n    debounced.schedule = schedule;\n    debounced.cancel = cancel;\n    debounced.flush = flush;\n    signal?.addEventListener('abort', cancel, { once: true });\n    return debounced;\n}\n\nexports.debounce = debounce;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction ary(func, n) {\n    return function (...args) {\n        return func.apply(this, args.slice(0, n));\n    };\n}\n\nexports.ary = ary;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst isIndex = require('../_internal/isIndex.js');\nconst isArguments = require('../predicate/isArguments.js');\nconst toPath = require('../util/toPath.js');\n\nfunction has(object, path) {\n    let resolvedPath;\n    if (Array.isArray(path)) {\n        resolvedPath = path;\n    }\n    else if (typeof path === 'string' && isDeepKey.isDeepKey(path) && object?.[path] == null) {\n        resolvedPath = toPath.toPath(path);\n    }\n    else {\n        resolvedPath = [path];\n    }\n    if (resolvedPath.length === 0) {\n        return false;\n    }\n    let current = object;\n    for (let i = 0; i < resolvedPath.length; i++) {\n        const key = resolvedPath[i];\n        if (current == null || !Object.hasOwn(current, key)) {\n            const isSparseIndex = (Array.isArray(current) || isArguments.isArguments(current)) && isIndex.isIndex(key) && key < current.length;\n            if (!isSparseIndex) {\n                return false;\n            }\n        }\n        current = current[key];\n    }\n    return true;\n}\n\nexports.has = has;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toFinite = require('./toFinite.js');\n\nfunction toInteger(value) {\n    const finite = toFinite.toFinite(value);\n    const remainder = finite % 1;\n    return remainder ? finite - remainder : finite;\n}\n\nexports.toInteger = toInteger;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst get = require('./get.js');\nconst isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst toKey = require('../_internal/toKey.js');\nconst toPath = require('../util/toPath.js');\n\nfunction unset(obj, path) {\n    if (obj == null) {\n        return true;\n    }\n    switch (typeof path) {\n        case 'symbol':\n        case 'number':\n        case 'object': {\n            if (Array.isArray(path)) {\n                return unsetWithPath(obj, path);\n            }\n            if (typeof path === 'number') {\n                path = toKey.toKey(path);\n            }\n            else if (typeof path === 'object') {\n                if (Object.is(path?.valueOf(), -0)) {\n                    path = '-0';\n                }\n                else {\n                    path = String(path);\n                }\n            }\n            if (isUnsafeProperty.isUnsafeProperty(path)) {\n                return false;\n            }\n            if (obj?.[path] === undefined) {\n                return true;\n            }\n            try {\n                delete obj[path];\n                return true;\n            }\n            catch {\n                return false;\n            }\n        }\n        case 'string': {\n            if (obj?.[path] === undefined && isDeepKey.isDeepKey(path)) {\n                return unsetWithPath(obj, toPath.toPath(path));\n            }\n            if (isUnsafeProperty.isUnsafeProperty(path)) {\n                return false;\n            }\n            try {\n                delete obj[path];\n                return true;\n            }\n            catch {\n                return false;\n            }\n        }\n    }\n}\nfunction unsetWithPath(obj, path) {\n    const parent = path.length === 1 ? obj : get.get(obj, path.slice(0, -1));\n    const lastKey = path[path.length - 1];\n    if (parent?.[lastKey] === undefined) {\n        return true;\n    }\n    if (isUnsafeProperty.isUnsafeProperty(lastKey)) {\n        return false;\n    }\n    try {\n        delete parent[lastKey];\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\n\nexports.unset = unset;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatch = require('./isMatch.js');\nconst cloneDeep = require('../../object/cloneDeep.js');\n\nfunction matches(source) {\n    source = cloneDeep.cloneDeep(source);\n    return (target) => {\n        return isMatch.isMatch(target, source);\n    };\n}\n\nexports.matches = matches;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isArrayLike = require('./isArrayLike.js');\nconst isObjectLike = require('./isObjectLike.js');\n\nfunction isArrayLikeObject(value) {\n    return isObjectLike.isObjectLike(value) && isArrayLike.isArrayLike(value);\n}\n\nexports.isArrayLikeObject = isArrayLikeObject;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isUnsafeProperty(key) {\n    return key === '__proto__';\n}\n\nexports.isUnsafeProperty = isUnsafeProperty;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst identity = require('../../function/identity.js');\nconst property = require('../object/property.js');\nconst matches = require('../predicate/matches.js');\nconst matchesProperty = require('../predicate/matchesProperty.js');\n\nfunction iteratee(value) {\n    if (value == null) {\n        return identity.identity;\n    }\n    switch (typeof value) {\n        case 'function': {\n            return value;\n        }\n        case 'object': {\n            if (Array.isArray(value) && value.length === 2) {\n                return matchesProperty.matchesProperty(value[0], value[1]);\n            }\n            return matches.matches(value);\n        }\n        case 'string':\n        case 'symbol':\n        case 'number': {\n            return property.property(value);\n        }\n    }\n}\n\nexports.iteratee = iteratee;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction minBy(items, getValue) {\n    if (items.length === 0) {\n        return undefined;\n    }\n    let minElement = items[0];\n    let min = getValue(minElement, 0, items);\n    for (let i = 1; i < items.length; i++) {\n        const element = items[i];\n        const value = getValue(element, i, items);\n        if (value < min) {\n            min = value;\n            minElement = element;\n        }\n    }\n    return minElement;\n}\n\nexports.minBy = minBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isObject = require('./isObject.js');\nconst isPrimitive = require('../../predicate/isPrimitive.js');\nconst isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.js');\n\nfunction isMatchWith(target, source, compare) {\n    if (typeof compare !== 'function') {\n        return isMatchWith(target, source, () => undefined);\n    }\n    return isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {\n        const isEqual = compare(objValue, srcValue, key, object, source, stack);\n        if (isEqual !== undefined) {\n            return Boolean(isEqual);\n        }\n        return isMatchWithInternal(objValue, srcValue, doesMatch, stack);\n    }, new Map());\n}\nfunction isMatchWithInternal(target, source, compare, stack) {\n    if (source === target) {\n        return true;\n    }\n    switch (typeof source) {\n        case 'object': {\n            return isObjectMatch(target, source, compare, stack);\n        }\n        case 'function': {\n            const sourceKeys = Object.keys(source);\n            if (sourceKeys.length > 0) {\n                return isMatchWithInternal(target, { ...source }, compare, stack);\n            }\n            return isEqualsSameValueZero.isEqualsSameValueZero(target, source);\n        }\n        default: {\n            if (!isObject.isObject(target)) {\n                return isEqualsSameValueZero.isEqualsSameValueZero(target, source);\n            }\n            if (typeof source === 'string') {\n                return source === '';\n            }\n            return true;\n        }\n    }\n}\nfunction isObjectMatch(target, source, compare, stack) {\n    if (source == null) {\n        return true;\n    }\n    if (Array.isArray(source)) {\n        return isArrayMatch(target, source, compare, stack);\n    }\n    if (source instanceof Map) {\n        return isMapMatch(target, source, compare, stack);\n    }\n    if (source instanceof Set) {\n        return isSetMatch(target, source, compare, stack);\n    }\n    const keys = Object.keys(source);\n    if (target == null || isPrimitive.isPrimitive(target)) {\n        return keys.length === 0;\n    }\n    if (keys.length === 0) {\n        return true;\n    }\n    if (stack?.has(source)) {\n        return stack.get(source) === target;\n    }\n    stack?.set(source, target);\n    try {\n        for (let i = 0; i < keys.length; i++) {\n            const key = keys[i];\n            if (!isPrimitive.isPrimitive(target) && !(key in target)) {\n                return false;\n            }\n            if (source[key] === undefined && target[key] !== undefined) {\n                return false;\n            }\n            if (source[key] === null && target[key] !== null) {\n                return false;\n            }\n            const isEqual = compare(target[key], source[key], key, target, source, stack);\n            if (!isEqual) {\n                return false;\n            }\n        }\n        return true;\n    }\n    finally {\n        stack?.delete(source);\n    }\n}\nfunction isMapMatch(target, source, compare, stack) {\n    if (source.size === 0) {\n        return true;\n    }\n    if (!(target instanceof Map)) {\n        return false;\n    }\n    for (const [key, sourceValue] of source.entries()) {\n        const targetValue = target.get(key);\n        const isEqual = compare(targetValue, sourceValue, key, target, source, stack);\n        if (isEqual === false) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction isArrayMatch(target, source, compare, stack) {\n    if (source.length === 0) {\n        return true;\n    }\n    if (!Array.isArray(target)) {\n        return false;\n    }\n    const countedIndex = new Set();\n    for (let i = 0; i < source.length; i++) {\n        const sourceItem = source[i];\n        let found = false;\n        for (let j = 0; j < target.length; j++) {\n            if (countedIndex.has(j)) {\n                continue;\n            }\n            const targetItem = target[j];\n            let matches = false;\n            const isEqual = compare(targetItem, sourceItem, i, target, source, stack);\n            if (isEqual) {\n                matches = true;\n            }\n            if (matches) {\n                countedIndex.add(j);\n                found = true;\n                break;\n            }\n        }\n        if (!found) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction isSetMatch(target, source, compare, stack) {\n    if (source.size === 0) {\n        return true;\n    }\n    if (!(target instanceof Set)) {\n        return false;\n    }\n    return isArrayMatch([...target], [...source], compare, stack);\n}\n\nexports.isMatchWith = isMatchWith;\nexports.isSetMatch = isSetMatch;\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n  'use strict';\r\n\r\n\r\n  /*\r\n   *  decimal.js-light v2.5.1\r\n   *  An arbitrary-precision Decimal type for JavaScript.\r\n   *  https://github.com/MikeMcl/decimal.js-light\r\n   *  Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n   *  MIT Expat Licence\r\n   */\r\n\r\n\r\n  // -----------------------------------  EDITABLE DEFAULTS  ------------------------------------ //\r\n\r\n\r\n    // The limit on the value of `precision`, and on the value of the first argument to\r\n    // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n  var MAX_DIGITS = 1e9,                        // 0 to 1e9\r\n\r\n\r\n    // The initial configuration properties of the Decimal constructor.\r\n    Decimal = {\r\n\r\n      // These values must be integers within the stated ranges (inclusive).\r\n      // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n      // The maximum number of significant digits of the result of a calculation or base conversion.\r\n      // E.g. `Decimal.config({ precision: 20 });`\r\n      precision: 20,                         // 1 to MAX_DIGITS\r\n\r\n      // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n      // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n      //\r\n      // ROUND_UP         0 Away from zero.\r\n      // ROUND_DOWN       1 Towards zero.\r\n      // ROUND_CEIL       2 Towards +Infinity.\r\n      // ROUND_FLOOR      3 Towards -Infinity.\r\n      // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n      // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n      // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n      // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n      // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n      //\r\n      // E.g.\r\n      // `Decimal.rounding = 4;`\r\n      // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n      rounding: 4,                           // 0 to 8\r\n\r\n      // The exponent value at and beneath which `toString` returns exponential notation.\r\n      // JavaScript numbers: -7\r\n      toExpNeg: -7,                          // 0 to -MAX_E\r\n\r\n      // The exponent value at and above which `toString` returns exponential notation.\r\n      // JavaScript numbers: 21\r\n      toExpPos:  21,                         // 0 to MAX_E\r\n\r\n      // The natural logarithm of 10.\r\n      // 115 digits\r\n      LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n    },\r\n\r\n\r\n  // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n    external = true,\r\n\r\n    decimalError = '[DecimalError] ',\r\n    invalidArgument = decimalError + 'Invalid argument: ',\r\n    exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n    mathfloor = Math.floor,\r\n    mathpow = Math.pow,\r\n\r\n    isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n    ONE,\r\n    BASE = 1e7,\r\n    LOG_BASE = 7,\r\n    MAX_SAFE_INTEGER = 9007199254740991,\r\n    MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE),    // 1286742750677284\r\n\r\n    // Decimal.prototype object\r\n    P = {};\r\n\r\n\r\n  // Decimal prototype methods\r\n\r\n\r\n  /*\r\n   *  absoluteValue                       abs\r\n   *  comparedTo                          cmp\r\n   *  decimalPlaces                       dp\r\n   *  dividedBy                           div\r\n   *  dividedToIntegerBy                  idiv\r\n   *  equals                              eq\r\n   *  exponent\r\n   *  greaterThan                         gt\r\n   *  greaterThanOrEqualTo                gte\r\n   *  isInteger                           isint\r\n   *  isNegative                          isneg\r\n   *  isPositive                          ispos\r\n   *  isZero\r\n   *  lessThan                            lt\r\n   *  lessThanOrEqualTo                   lte\r\n   *  logarithm                           log\r\n   *  minus                               sub\r\n   *  modulo                              mod\r\n   *  naturalExponential                  exp\r\n   *  naturalLogarithm                    ln\r\n   *  negated                             neg\r\n   *  plus                                add\r\n   *  precision                           sd\r\n   *  squareRoot                          sqrt\r\n   *  times                               mul\r\n   *  toDecimalPlaces                     todp\r\n   *  toExponential\r\n   *  toFixed\r\n   *  toInteger                           toint\r\n   *  toNumber\r\n   *  toPower                             pow\r\n   *  toPrecision\r\n   *  toSignificantDigits                 tosd\r\n   *  toString\r\n   *  valueOf                             val\r\n   */\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the absolute value of this Decimal.\r\n   *\r\n   */\r\n  P.absoluteValue = P.abs = function () {\r\n    var x = new this.constructor(this);\r\n    if (x.s) x.s = 1;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return\r\n   *   1    if the value of this Decimal is greater than the value of `y`,\r\n   *  -1    if the value of this Decimal is less than the value of `y`,\r\n   *   0    if they have the same value\r\n   *\r\n   */\r\n  P.comparedTo = P.cmp = function (y) {\r\n    var i, j, xdL, ydL,\r\n      x = this;\r\n\r\n    y = new x.constructor(y);\r\n\r\n    // Signs differ?\r\n    if (x.s !== y.s) return x.s || -y.s;\r\n\r\n    // Compare exponents.\r\n    if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n    xdL = x.d.length;\r\n    ydL = y.d.length;\r\n\r\n    // Compare digit by digit.\r\n    for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n      if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n    }\r\n\r\n    // Compare lengths.\r\n    return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the number of decimal places of the value of this Decimal.\r\n   *\r\n   */\r\n  P.decimalPlaces = P.dp = function () {\r\n    var x = this,\r\n      w = x.d.length - 1,\r\n      dp = (w - x.e) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last word.\r\n    w = x.d[w];\r\n    if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n    return dp < 0 ? 0 : dp;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   */\r\n  P.dividedBy = P.div = function (y) {\r\n    return divide(this, new this.constructor(y));\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n   * by the value of `y`, truncated to `precision` significant digits.\r\n   *\r\n   */\r\n  P.dividedToIntegerBy = P.idiv = function (y) {\r\n    var x = this,\r\n      Ctor = x.constructor;\r\n    return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n   *\r\n   */\r\n  P.equals = P.eq = function (y) {\r\n    return !this.cmp(y);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n   *\r\n   */\r\n  P.exponent = function () {\r\n    return getBase10Exponent(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n   * false.\r\n   *\r\n   */\r\n  P.greaterThan = P.gt = function (y) {\r\n    return this.cmp(y) > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n   * otherwise return false.\r\n   *\r\n   */\r\n  P.greaterThanOrEqualTo = P.gte = function (y) {\r\n    return this.cmp(y) >= 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is an integer, otherwise return false.\r\n   *\r\n   */\r\n  P.isInteger = P.isint = function () {\r\n    return this.e > this.d.length - 2;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is negative, otherwise return false.\r\n   *\r\n   */\r\n  P.isNegative = P.isneg = function () {\r\n    return this.s < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is positive, otherwise return false.\r\n   *\r\n   */\r\n  P.isPositive = P.ispos = function () {\r\n    return this.s > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is 0, otherwise return false.\r\n   *\r\n   */\r\n  P.isZero = function () {\r\n    return this.s === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n   *\r\n   */\r\n  P.lessThan = P.lt = function (y) {\r\n    return this.cmp(y) < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n   *\r\n   */\r\n  P.lessThanOrEqualTo = P.lte = function (y) {\r\n    return this.cmp(y) < 1;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   * If no base is specified, return log[10](x).\r\n   *\r\n   * log[base](x) = ln(x) / ln(base)\r\n   *\r\n   * The maximum error of the result is 1 ulp (unit in the last place).\r\n   *\r\n   * [base] {number|string|Decimal} The base of the logarithm.\r\n   *\r\n   */\r\n  P.logarithm = P.log = function (base) {\r\n    var r,\r\n      x = this,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision,\r\n      wpr = pr + 5;\r\n\r\n    // Default base is 10.\r\n    if (base === void 0) {\r\n      base = new Ctor(10);\r\n    } else {\r\n      base = new Ctor(base);\r\n\r\n      // log[-b](x) = NaN\r\n      // log[0](x)  = NaN\r\n      // log[1](x)  = NaN\r\n      if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n    }\r\n\r\n    // log[b](-x) = NaN\r\n    // log[b](0) = -Infinity\r\n    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n    // log[b](1) = 0\r\n    if (x.eq(ONE)) return new Ctor(0);\r\n\r\n    external = false;\r\n    r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n    external = true;\r\n\r\n    return round(r, pr);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   */\r\n  P.minus = P.sub = function (y) {\r\n    var x = this;\r\n    y = new x.constructor(y);\r\n    return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   */\r\n  P.modulo = P.mod = function (y) {\r\n    var q,\r\n      x = this,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision;\r\n\r\n    y = new Ctor(y);\r\n\r\n    // x % 0 = NaN\r\n    if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n    // Return x if x is 0.\r\n    if (!x.s) return round(new Ctor(x), pr);\r\n\r\n    // Prevent rounding of intermediate calculations.\r\n    external = false;\r\n    q = divide(x, y, 0, 1).times(y);\r\n    external = true;\r\n\r\n    return x.minus(q);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n   * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n   * significant digits.\r\n   *\r\n   */\r\n  P.naturalExponential = P.exp = function () {\r\n    return exp(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n   * truncated to `precision` significant digits.\r\n   *\r\n   */\r\n  P.naturalLogarithm = P.ln = function () {\r\n    return ln(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n   * -1.\r\n   *\r\n   */\r\n  P.negated = P.neg = function () {\r\n    var x = new this.constructor(this);\r\n    x.s = -x.s || 0;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   */\r\n  P.plus = P.add = function (y) {\r\n    var x = this;\r\n    y = new x.constructor(y);\r\n    return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the number of significant digits of the value of this Decimal.\r\n   *\r\n   * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n   *\r\n   */\r\n  P.precision = P.sd = function (z) {\r\n    var e, sd, w,\r\n      x = this;\r\n\r\n    if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n    e = getBase10Exponent(x) + 1;\r\n    w = x.d.length - 1;\r\n    sd = w * LOG_BASE + 1;\r\n    w = x.d[w];\r\n\r\n    // If non-zero...\r\n    if (w) {\r\n\r\n      // Subtract the number of trailing zeros of the last word.\r\n      for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n      // Add the number of digits of the first word.\r\n      for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n    }\r\n\r\n    return z && e > sd ? e : sd;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n   * significant digits.\r\n   *\r\n   */\r\n  P.squareRoot = P.sqrt = function () {\r\n    var e, n, pr, r, s, t, wpr,\r\n      x = this,\r\n      Ctor = x.constructor;\r\n\r\n    // Negative or zero?\r\n    if (x.s < 1) {\r\n      if (!x.s) return new Ctor(0);\r\n\r\n      // sqrt(-x) = NaN\r\n      throw Error(decimalError + 'NaN');\r\n    }\r\n\r\n    e = getBase10Exponent(x);\r\n    external = false;\r\n\r\n    // Initial estimate.\r\n    s = Math.sqrt(+x);\r\n\r\n    // Math.sqrt underflow/overflow?\r\n    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n    if (s == 0 || s == 1 / 0) {\r\n      n = digitsToString(x.d);\r\n      if ((n.length + e) % 2 == 0) n += '0';\r\n      s = Math.sqrt(n);\r\n      e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n      if (s == 1 / 0) {\r\n        n = '5e' + e;\r\n      } else {\r\n        n = s.toExponential();\r\n        n = n.slice(0, n.indexOf('e') + 1) + e;\r\n      }\r\n\r\n      r = new Ctor(n);\r\n    } else {\r\n      r = new Ctor(s.toString());\r\n    }\r\n\r\n    pr = Ctor.precision;\r\n    s = wpr = pr + 3;\r\n\r\n    // Newton-Raphson iteration.\r\n    for (;;) {\r\n      t = r;\r\n      r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n      if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n        n = n.slice(wpr - 3, wpr + 1);\r\n\r\n        // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n        // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n        if (s == wpr && n == '4999') {\r\n\r\n          // On the first iteration only, check to see if rounding up gives the exact result as the\r\n          // nines may infinitely repeat.\r\n          round(t, pr + 1, 0);\r\n\r\n          if (t.times(t).eq(x)) {\r\n            r = t;\r\n            break;\r\n          }\r\n        } else if (n != '9999') {\r\n          break;\r\n        }\r\n\r\n        wpr += 4;\r\n      }\r\n    }\r\n\r\n    external = true;\r\n\r\n    return round(r, pr);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n   * `precision` significant digits.\r\n   *\r\n   */\r\n  P.times = P.mul = function (y) {\r\n    var carry, e, i, k, r, rL, t, xdL, ydL,\r\n      x = this,\r\n      Ctor = x.constructor,\r\n      xd = x.d,\r\n      yd = (y = new Ctor(y)).d;\r\n\r\n    // Return 0 if either is 0.\r\n    if (!x.s || !y.s) return new Ctor(0);\r\n\r\n    y.s *= x.s;\r\n    e = x.e + y.e;\r\n    xdL = xd.length;\r\n    ydL = yd.length;\r\n\r\n    // Ensure xd points to the longer array.\r\n    if (xdL < ydL) {\r\n      r = xd;\r\n      xd = yd;\r\n      yd = r;\r\n      rL = xdL;\r\n      xdL = ydL;\r\n      ydL = rL;\r\n    }\r\n\r\n    // Initialise the result array with zeros.\r\n    r = [];\r\n    rL = xdL + ydL;\r\n    for (i = rL; i--;) r.push(0);\r\n\r\n    // Multiply!\r\n    for (i = ydL; --i >= 0;) {\r\n      carry = 0;\r\n      for (k = xdL + i; k > i;) {\r\n        t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n        r[k--] = t % BASE | 0;\r\n        carry = t / BASE | 0;\r\n      }\r\n\r\n      r[k] = (r[k] + carry) % BASE | 0;\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    for (; !r[--rL];) r.pop();\r\n\r\n    if (carry) ++e;\r\n    else r.shift();\r\n\r\n    y.d = r;\r\n    y.e = e;\r\n\r\n    return external ? round(y, Ctor.precision) : y;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n   * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n   *\r\n   * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   */\r\n  P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n    var x = this,\r\n      Ctor = x.constructor;\r\n\r\n    x = new Ctor(x);\r\n    if (dp === void 0) return x;\r\n\r\n    checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n\r\n    return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this Decimal in exponential notation rounded to\r\n   * `dp` fixed decimal places using rounding mode `rounding`.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   */\r\n  P.toExponential = function (dp, rm) {\r\n    var str,\r\n      x = this,\r\n      Ctor = x.constructor;\r\n\r\n    if (dp === void 0) {\r\n      str = toString(x, true);\r\n    } else {\r\n      checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n      if (rm === void 0) rm = Ctor.rounding;\r\n      else checkInt32(rm, 0, 8);\r\n\r\n      x = round(new Ctor(x), dp + 1, rm);\r\n      str = toString(x, true, dp + 1);\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n   * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n   * omitted.\r\n   *\r\n   * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n   * (-0).toFixed(3) is '0.000'.\r\n   * (-0.5).toFixed(0) is '-0'.\r\n   *\r\n   */\r\n  P.toFixed = function (dp, rm) {\r\n    var str, y,\r\n      x = this,\r\n      Ctor = x.constructor;\r\n\r\n    if (dp === void 0) return toString(x);\r\n\r\n    checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n\r\n    y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n    str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n    // To determine whether to add the minus sign look at the value before it was rounded,\r\n    // i.e. look at `x` rather than `y`.\r\n    return x.isneg() && !x.isZero() ? '-' + str : str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n   * rounding mode `rounding`.\r\n   *\r\n   */\r\n  P.toInteger = P.toint = function () {\r\n    var x = this,\r\n      Ctor = x.constructor;\r\n    return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the value of this Decimal converted to a number primitive.\r\n   *\r\n   */\r\n  P.toNumber = function () {\r\n    return +this;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n   * truncated to `precision` significant digits.\r\n   *\r\n   * For non-integer or very large exponents pow(x, y) is calculated using\r\n   *\r\n   *   x^y = exp(y*ln(x))\r\n   *\r\n   * The maximum error is 1 ulp (unit in last place).\r\n   *\r\n   * y {number|string|Decimal} The power to which to raise this Decimal.\r\n   *\r\n   */\r\n  P.toPower = P.pow = function (y) {\r\n    var e, k, pr, r, sign, yIsInt,\r\n      x = this,\r\n      Ctor = x.constructor,\r\n      guard = 12,\r\n      yn = +(y = new Ctor(y));\r\n\r\n    // pow(x, 0) = 1\r\n    if (!y.s) return new Ctor(ONE);\r\n\r\n    x = new Ctor(x);\r\n\r\n    // pow(0, y > 0) = 0\r\n    // pow(0, y < 0) = Infinity\r\n    if (!x.s) {\r\n      if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n      return x;\r\n    }\r\n\r\n    // pow(1, y) = 1\r\n    if (x.eq(ONE)) return x;\r\n\r\n    pr = Ctor.precision;\r\n\r\n    // pow(x, 1) = x\r\n    if (y.eq(ONE)) return round(x, pr);\r\n\r\n    e = y.e;\r\n    k = y.d.length - 1;\r\n    yIsInt = e >= k;\r\n    sign = x.s;\r\n\r\n    if (!yIsInt) {\r\n\r\n      // pow(x < 0, y non-integer) = NaN\r\n      if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n    // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n    } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n      r = new Ctor(ONE);\r\n\r\n      // Max k of 9007199254740991 takes 53 loop iterations.\r\n      // Maximum digits array length; leaves [28, 34] guard digits.\r\n      e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n      external = false;\r\n\r\n      for (;;) {\r\n        if (k % 2) {\r\n          r = r.times(x);\r\n          truncate(r.d, e);\r\n        }\r\n\r\n        k = mathfloor(k / 2);\r\n        if (k === 0) break;\r\n\r\n        x = x.times(x);\r\n        truncate(x.d, e);\r\n      }\r\n\r\n      external = true;\r\n\r\n      return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n    }\r\n\r\n    // Result is negative if x is negative and the last digit of integer y is odd.\r\n    sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n    x.s = 1;\r\n    external = false;\r\n    r = y.times(ln(x, pr + guard));\r\n    external = true;\r\n    r = exp(r);\r\n    r.s = sign;\r\n\r\n    return r;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n   * using rounding mode `rounding`.\r\n   *\r\n   * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n   * the integer part of the value in normal notation.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   */\r\n  P.toPrecision = function (sd, rm) {\r\n    var e, str,\r\n      x = this,\r\n      Ctor = x.constructor;\r\n\r\n    if (sd === void 0) {\r\n      e = getBase10Exponent(x);\r\n      str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n    } else {\r\n      checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n      if (rm === void 0) rm = Ctor.rounding;\r\n      else checkInt32(rm, 0, 8);\r\n\r\n      x = round(new Ctor(x), sd, rm);\r\n      e = getBase10Exponent(x);\r\n      str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n   * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n   * omitted.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   */\r\n  P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n    var x = this,\r\n      Ctor = x.constructor;\r\n\r\n    if (sd === void 0) {\r\n      sd = Ctor.precision;\r\n      rm = Ctor.rounding;\r\n    } else {\r\n      checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n      if (rm === void 0) rm = Ctor.rounding;\r\n      else checkInt32(rm, 0, 8);\r\n    }\r\n\r\n    return round(new Ctor(x), sd, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this Decimal.\r\n   *\r\n   * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n   * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n   *\r\n   */\r\n  P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n    var x = this,\r\n      e = getBase10Exponent(x),\r\n      Ctor = x.constructor;\r\n\r\n    return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n  };\r\n\r\n\r\n  // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n  /*\r\n   *  add                 P.minus, P.plus\r\n   *  checkInt32          P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n   *  digitsToString      P.log, P.sqrt, P.pow, toString, exp, ln\r\n   *  divide              P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n   *  exp                 P.exp, P.pow\r\n   *  getBase10Exponent   P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n   *                      P.toString, divide, round, toString, exp, ln\r\n   *  getLn10             P.log, ln\r\n   *  getZeroString       digitsToString, toString\r\n   *  ln                  P.log, P.ln, P.pow, exp\r\n   *  parseDecimal        Decimal\r\n   *  round               P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n   *                      P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n   *                      divide, getLn10, exp, ln\r\n   *  subtract            P.minus, P.plus\r\n   *  toString            P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n   *  truncate            P.pow\r\n   *\r\n   *  Throws:             P.log, P.mod, P.sd, P.sqrt, P.pow,  checkInt32, divide, round,\r\n   *                      getLn10, exp, ln, parseDecimal, Decimal, config\r\n   */\r\n\r\n\r\n  function add(x, y) {\r\n    var carry, d, e, i, k, len, xd, yd,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision;\r\n\r\n    // If either is zero...\r\n    if (!x.s || !y.s) {\r\n\r\n      // Return x if y is zero.\r\n      // Return y if y is non-zero.\r\n      if (!y.s) y = new Ctor(x);\r\n      return external ? round(y, pr) : y;\r\n    }\r\n\r\n    xd = x.d;\r\n    yd = y.d;\r\n\r\n    // x and y are finite, non-zero numbers with the same sign.\r\n\r\n    k = x.e;\r\n    e = y.e;\r\n    xd = xd.slice();\r\n    i = k - e;\r\n\r\n    // If base 1e7 exponents differ...\r\n    if (i) {\r\n      if (i < 0) {\r\n        d = xd;\r\n        i = -i;\r\n        len = yd.length;\r\n      } else {\r\n        d = yd;\r\n        e = k;\r\n        len = xd.length;\r\n      }\r\n\r\n      // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n      k = Math.ceil(pr / LOG_BASE);\r\n      len = k > len ? k + 1 : len + 1;\r\n\r\n      if (i > len) {\r\n        i = len;\r\n        d.length = 1;\r\n      }\r\n\r\n      // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n      d.reverse();\r\n      for (; i--;) d.push(0);\r\n      d.reverse();\r\n    }\r\n\r\n    len = xd.length;\r\n    i = yd.length;\r\n\r\n    // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n    if (len - i < 0) {\r\n      i = len;\r\n      d = yd;\r\n      yd = xd;\r\n      xd = d;\r\n    }\r\n\r\n    // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n    for (carry = 0; i;) {\r\n      carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n      xd[i] %= BASE;\r\n    }\r\n\r\n    if (carry) {\r\n      xd.unshift(carry);\r\n      ++e;\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n    for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n    y.d = xd;\r\n    y.e = e;\r\n\r\n    return external ? round(y, pr) : y;\r\n  }\r\n\r\n\r\n  function checkInt32(i, min, max) {\r\n    if (i !== ~~i || i < min || i > max) {\r\n      throw Error(invalidArgument + i);\r\n    }\r\n  }\r\n\r\n\r\n  function digitsToString(d) {\r\n    var i, k, ws,\r\n      indexOfLastWord = d.length - 1,\r\n      str = '',\r\n      w = d[0];\r\n\r\n    if (indexOfLastWord > 0) {\r\n      str += w;\r\n      for (i = 1; i < indexOfLastWord; i++) {\r\n        ws = d[i] + '';\r\n        k = LOG_BASE - ws.length;\r\n        if (k) str += getZeroString(k);\r\n        str += ws;\r\n      }\r\n\r\n      w = d[i];\r\n      ws = w + '';\r\n      k = LOG_BASE - ws.length;\r\n      if (k) str += getZeroString(k);\r\n    } else if (w === 0) {\r\n      return '0';\r\n    }\r\n\r\n    // Remove trailing zeros of last w.\r\n    for (; w % 10 === 0;) w /= 10;\r\n\r\n    return str + w;\r\n  }\r\n\r\n\r\n  var divide = (function () {\r\n\r\n    // Assumes non-zero x and k, and hence non-zero result.\r\n    function multiplyInteger(x, k) {\r\n      var temp,\r\n        carry = 0,\r\n        i = x.length;\r\n\r\n      for (x = x.slice(); i--;) {\r\n        temp = x[i] * k + carry;\r\n        x[i] = temp % BASE | 0;\r\n        carry = temp / BASE | 0;\r\n      }\r\n\r\n      if (carry) x.unshift(carry);\r\n\r\n      return x;\r\n    }\r\n\r\n    function compare(a, b, aL, bL) {\r\n      var i, r;\r\n\r\n      if (aL != bL) {\r\n        r = aL > bL ? 1 : -1;\r\n      } else {\r\n        for (i = r = 0; i < aL; i++) {\r\n          if (a[i] != b[i]) {\r\n            r = a[i] > b[i] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      return r;\r\n    }\r\n\r\n    function subtract(a, b, aL) {\r\n      var i = 0;\r\n\r\n      // Subtract b from a.\r\n      for (; aL--;) {\r\n        a[aL] -= i;\r\n        i = a[aL] < b[aL] ? 1 : 0;\r\n        a[aL] = i * BASE + a[aL] - b[aL];\r\n      }\r\n\r\n      // Remove leading zeros.\r\n      for (; !a[0] && a.length > 1;) a.shift();\r\n    }\r\n\r\n    return function (x, y, pr, dp) {\r\n      var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n        Ctor = x.constructor,\r\n        sign = x.s == y.s ? 1 : -1,\r\n        xd = x.d,\r\n        yd = y.d;\r\n\r\n      // Either 0?\r\n      if (!x.s) return new Ctor(x);\r\n      if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n      e = x.e - y.e;\r\n      yL = yd.length;\r\n      xL = xd.length;\r\n      q = new Ctor(sign);\r\n      qd = q.d = [];\r\n\r\n      // Result exponent may be one less than e.\r\n      for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n      if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n      if (pr == null) {\r\n        sd = pr = Ctor.precision;\r\n      } else if (dp) {\r\n        sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n      } else {\r\n        sd = pr;\r\n      }\r\n\r\n      if (sd < 0) return new Ctor(0);\r\n\r\n      // Convert precision in number of base 10 digits to base 1e7 digits.\r\n      sd = sd / LOG_BASE + 2 | 0;\r\n      i = 0;\r\n\r\n      // divisor < 1e7\r\n      if (yL == 1) {\r\n        k = 0;\r\n        yd = yd[0];\r\n        sd++;\r\n\r\n        // k is the carry.\r\n        for (; (i < xL || k) && sd--; i++) {\r\n          t = k * BASE + (xd[i] || 0);\r\n          qd[i] = t / yd | 0;\r\n          k = t % yd | 0;\r\n        }\r\n\r\n      // divisor >= 1e7\r\n      } else {\r\n\r\n        // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n        k = BASE / (yd[0] + 1) | 0;\r\n\r\n        if (k > 1) {\r\n          yd = multiplyInteger(yd, k);\r\n          xd = multiplyInteger(xd, k);\r\n          yL = yd.length;\r\n          xL = xd.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xd.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL;) rem[remL++] = 0;\r\n\r\n        yz = yd.slice();\r\n        yz.unshift(0);\r\n        yd0 = yd[0];\r\n\r\n        if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n        do {\r\n          k = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yd, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, k.\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n            // k will be how many times the divisor goes into the current remainder.\r\n            k = rem0 / yd0 | 0;\r\n\r\n            //  Algorithm:\r\n            //  1. product = divisor * trial digit (k)\r\n            //  2. if product > remainder: product -= divisor, k--\r\n            //  3. remainder -= product\r\n            //  4. if product was < remainder at 2:\r\n            //    5. compare new remainder and divisor\r\n            //    6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n            if (k > 1) {\r\n              if (k >= BASE) k = BASE - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiplyInteger(yd, k);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              cmp = compare(prod, rem, prodL, remL);\r\n\r\n              // product > remainder.\r\n              if (cmp == 1) {\r\n                k--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yd, prodL);\r\n              }\r\n            } else {\r\n\r\n              // cmp is -1.\r\n              // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n              // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n              if (k == 0) cmp = k = 1;\r\n              prod = yd.slice();\r\n            }\r\n\r\n            prodL = prod.length;\r\n            if (prodL < remL) prod.unshift(0);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL);\r\n\r\n            // If product was < previous remainder.\r\n            if (cmp == -1) {\r\n              remL = rem.length;\r\n\r\n              // Compare divisor and new remainder.\r\n              cmp = compare(yd, rem, yL, remL);\r\n\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              if (cmp < 1) {\r\n                k++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yd, remL);\r\n              }\r\n            }\r\n\r\n            remL = rem.length;\r\n          } else if (cmp === 0) {\r\n            k++;\r\n            rem = [0];\r\n          }    // if cmp === 1, k will be 0\r\n\r\n          // Add the next digit, k, to the result array.\r\n          qd[i++] = k;\r\n\r\n          // Update the remainder.\r\n          if (cmp && rem[0]) {\r\n            rem[remL++] = xd[xi] || 0;\r\n          } else {\r\n            rem = [xd[xi]];\r\n            remL = 1;\r\n          }\r\n\r\n        } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n      }\r\n\r\n      // Leading zero?\r\n      if (!qd[0]) qd.shift();\r\n\r\n      q.e = e;\r\n\r\n      return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n    };\r\n  })();\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n   * significant digits.\r\n   *\r\n   * Taylor/Maclaurin series.\r\n   *\r\n   * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n   *\r\n   * Argument reduction:\r\n   *   Repeat x = x / 32, k += 5, until |x| < 0.1\r\n   *   exp(x) = exp(x / 2^k)^(2^k)\r\n   *\r\n   * Previously, the argument was initially reduced by\r\n   * exp(x) = exp(r) * 10^k  where r = x - k * ln10, k = floor(x / ln10)\r\n   * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n   * found to be slower than just dividing repeatedly by 32 as above.\r\n   *\r\n   * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n   *\r\n   *  exp(x) is non-terminating for any finite, non-zero x.\r\n   *\r\n   */\r\n  function exp(x, sd) {\r\n    var denominator, guard, pow, sum, t, wpr,\r\n      i = 0,\r\n      k = 0,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision;\r\n\r\n    if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n    // exp(0) = 1\r\n    if (!x.s) return new Ctor(ONE);\r\n\r\n    if (sd == null) {\r\n      external = false;\r\n      wpr = pr;\r\n    } else {\r\n      wpr = sd;\r\n    }\r\n\r\n    t = new Ctor(0.03125);\r\n\r\n    while (x.abs().gte(0.1)) {\r\n      x = x.times(t);    // x = x / 2^5\r\n      k += 5;\r\n    }\r\n\r\n    // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n    guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n    wpr += guard;\r\n    denominator = pow = sum = new Ctor(ONE);\r\n    Ctor.precision = wpr;\r\n\r\n    for (;;) {\r\n      pow = round(pow.times(x), wpr);\r\n      denominator = denominator.times(++i);\r\n      t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n        while (k--) sum = round(sum.times(sum), wpr);\r\n        Ctor.precision = pr;\r\n        return sd == null ? (external = true, round(sum, pr)) : sum;\r\n      }\r\n\r\n      sum = t;\r\n    }\r\n  }\r\n\r\n\r\n  // Calculate the base 10 exponent from the base 1e7 exponent.\r\n  function getBase10Exponent(x) {\r\n    var e = x.e * LOG_BASE,\r\n      w = x.d[0];\r\n\r\n    // Add the number of digits of the first word of the digits array.\r\n    for (; w >= 10; w /= 10) e++;\r\n    return e;\r\n  }\r\n\r\n\r\n  function getLn10(Ctor, sd, pr) {\r\n\r\n    if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n      // Reset global state in case the exception is caught.\r\n      external = true;\r\n      if (pr) Ctor.precision = pr;\r\n      throw Error(decimalError + 'LN10 precision limit exceeded');\r\n    }\r\n\r\n    return round(new Ctor(Ctor.LN10), sd);\r\n  }\r\n\r\n\r\n  function getZeroString(k) {\r\n    var zs = '';\r\n    for (; k--;) zs += '0';\r\n    return zs;\r\n  }\r\n\r\n\r\n  /*\r\n   * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n   * digits.\r\n   *\r\n   *  ln(n) is non-terminating (n != 1)\r\n   *\r\n   */\r\n  function ln(y, sd) {\r\n    var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n      n = 1,\r\n      guard = 10,\r\n      x = y,\r\n      xd = x.d,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision;\r\n\r\n    // ln(-x) = NaN\r\n    // ln(0) = -Infinity\r\n    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n    // ln(1) = 0\r\n    if (x.eq(ONE)) return new Ctor(0);\r\n\r\n    if (sd == null) {\r\n      external = false;\r\n      wpr = pr;\r\n    } else {\r\n      wpr = sd;\r\n    }\r\n\r\n    if (x.eq(10)) {\r\n      if (sd == null) external = true;\r\n      return getLn10(Ctor, wpr);\r\n    }\r\n\r\n    wpr += guard;\r\n    Ctor.precision = wpr;\r\n    c = digitsToString(xd);\r\n    c0 = c.charAt(0);\r\n    e = getBase10Exponent(x);\r\n\r\n    if (Math.abs(e) < 1.5e15) {\r\n\r\n      // Argument reduction.\r\n      // The series converges faster the closer the argument is to 1, so using\r\n      // ln(a^b) = b * ln(a),   ln(a) = ln(a^b) / b\r\n      // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n      // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n      // later be divided by this number, then separate out the power of 10 using\r\n      // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n      // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n      //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n      // max n is 6 (gives 0.7 - 1.3)\r\n      while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n        x = x.times(y);\r\n        c = digitsToString(x.d);\r\n        c0 = c.charAt(0);\r\n        n++;\r\n      }\r\n\r\n      e = getBase10Exponent(x);\r\n\r\n      if (c0 > 1) {\r\n        x = new Ctor('0.' + c);\r\n        e++;\r\n      } else {\r\n        x = new Ctor(c0 + '.' + c.slice(1));\r\n      }\r\n    } else {\r\n\r\n      // The argument reduction method above may result in overflow if the argument y is a massive\r\n      // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n      // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n      t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n      x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n      Ctor.precision = pr;\r\n      return sd == null ? (external = true, round(x, pr)) : x;\r\n    }\r\n\r\n    // x is reduced to a value near 1.\r\n\r\n    // Taylor series.\r\n    // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n    // where x = (y - 1)/(y + 1)    (|x| < 1)\r\n    sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n    x2 = round(x.times(x), wpr);\r\n    denominator = 3;\r\n\r\n    for (;;) {\r\n      numerator = round(numerator.times(x2), wpr);\r\n      t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n        sum = sum.times(2);\r\n\r\n        // Reverse the argument reduction.\r\n        if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n        sum = divide(sum, new Ctor(n), wpr);\r\n\r\n        Ctor.precision = pr;\r\n        return sd == null ? (external = true, round(sum, pr)) : sum;\r\n      }\r\n\r\n      sum = t;\r\n      denominator += 2;\r\n    }\r\n  }\r\n\r\n\r\n  /*\r\n   * Parse the value of a new Decimal `x` from string `str`.\r\n   */\r\n  function parseDecimal(x, str) {\r\n    var e, i, len;\r\n\r\n    // Decimal point?\r\n    if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n    // Exponential form?\r\n    if ((i = str.search(/e/i)) > 0) {\r\n\r\n      // Determine exponent.\r\n      if (e < 0) e = i;\r\n      e += +str.slice(i + 1);\r\n      str = str.substring(0, i);\r\n    } else if (e < 0) {\r\n\r\n      // Integer.\r\n      e = str.length;\r\n    }\r\n\r\n    // Determine leading zeros.\r\n    for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n    // Determine trailing zeros.\r\n    for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n    str = str.slice(i, len);\r\n\r\n    if (str) {\r\n      len -= i;\r\n      e = e - i - 1;\r\n      x.e = mathfloor(e / LOG_BASE);\r\n      x.d = [];\r\n\r\n      // Transform base\r\n\r\n      // e is the base 10 exponent.\r\n      // i is where to slice str to get the first word of the digits array.\r\n      i = (e + 1) % LOG_BASE;\r\n      if (e < 0) i += LOG_BASE;\r\n\r\n      if (i < len) {\r\n        if (i) x.d.push(+str.slice(0, i));\r\n        for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n        str = str.slice(i);\r\n        i = LOG_BASE - str.length;\r\n      } else {\r\n        i -= len;\r\n      }\r\n\r\n      for (; i--;) str += '0';\r\n      x.d.push(+str);\r\n\r\n      if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n    } else {\r\n\r\n      // Zero.\r\n      x.s = 0;\r\n      x.e = 0;\r\n      x.d = [0];\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  /*\r\n   * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n   */\r\n   function round(x, sd, rm) {\r\n    var i, j, k, n, rd, doRound, w, xdi,\r\n      xd = x.d;\r\n\r\n    // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n    // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n    // xdi: the index of w within xd.\r\n    // n: the number of digits of w.\r\n    // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n    // they had leading zeros)\r\n    // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n    // Get the length of the first word of the digits array xd.\r\n    for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n    i = sd - n;\r\n\r\n    // Is the rounding digit in the first word of xd?\r\n    if (i < 0) {\r\n      i += LOG_BASE;\r\n      j = sd;\r\n      w = xd[xdi = 0];\r\n    } else {\r\n      xdi = Math.ceil((i + 1) / LOG_BASE);\r\n      k = xd.length;\r\n      if (xdi >= k) return x;\r\n      w = k = xd[xdi];\r\n\r\n      // Get the number of digits of w.\r\n      for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n      // Get the index of rd within w.\r\n      i %= LOG_BASE;\r\n\r\n      // Get the index of rd within w, adjusted for leading zeros.\r\n      // The number of leading zeros of w is given by LOG_BASE - n.\r\n      j = i - LOG_BASE + n;\r\n    }\r\n\r\n    if (rm !== void 0) {\r\n      k = mathpow(10, n - j - 1);\r\n\r\n      // Get the rounding digit at index j of w.\r\n      rd = w / k % 10 | 0;\r\n\r\n      // Are there any non-zero digits after the rounding digit?\r\n      doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n      // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n      // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n      // 714.\r\n\r\n      doRound = rm < 4\r\n        ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n        : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n          // Check whether the digit to the left of the rounding digit is odd.\r\n          ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n            rm == (x.s < 0 ? 8 : 7));\r\n    }\r\n\r\n    if (sd < 1 || !xd[0]) {\r\n      if (doRound) {\r\n        k = getBase10Exponent(x);\r\n        xd.length = 1;\r\n\r\n        // Convert sd to decimal places.\r\n        sd = sd - k - 1;\r\n\r\n        // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n        xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n        x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n      } else {\r\n        xd.length = 1;\r\n\r\n        // Zero.\r\n        xd[0] = x.e = x.s = 0;\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n    // Remove excess digits.\r\n    if (i == 0) {\r\n      xd.length = xdi;\r\n      k = 1;\r\n      xdi--;\r\n    } else {\r\n      xd.length = xdi + 1;\r\n      k = mathpow(10, LOG_BASE - i);\r\n\r\n      // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n      // j > 0 means i > number of leading zeros of w.\r\n      xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n    }\r\n\r\n    if (doRound) {\r\n      for (;;) {\r\n\r\n        // Is the digit to be rounded up in the first word of xd?\r\n        if (xdi == 0) {\r\n          if ((xd[0] += k) == BASE) {\r\n            xd[0] = 1;\r\n            ++x.e;\r\n          }\r\n\r\n          break;\r\n        } else {\r\n          xd[xdi] += k;\r\n          if (xd[xdi] != BASE) break;\r\n          xd[xdi--] = 0;\r\n          k = 1;\r\n        }\r\n      }\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n    if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n      throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  function subtract(x, y) {\r\n    var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n      Ctor = x.constructor,\r\n      pr = Ctor.precision;\r\n\r\n    // Return y negated if x is zero.\r\n    // Return x if y is zero and x is non-zero.\r\n    if (!x.s || !y.s) {\r\n      if (y.s) y.s = -y.s;\r\n      else y = new Ctor(x);\r\n      return external ? round(y, pr) : y;\r\n    }\r\n\r\n    xd = x.d;\r\n    yd = y.d;\r\n\r\n    // x and y are non-zero numbers with the same sign.\r\n\r\n    e = y.e;\r\n    xe = x.e;\r\n    xd = xd.slice();\r\n    k = xe - e;\r\n\r\n    // If exponents differ...\r\n    if (k) {\r\n      xLTy = k < 0;\r\n\r\n      if (xLTy) {\r\n        d = xd;\r\n        k = -k;\r\n        len = yd.length;\r\n      } else {\r\n        d = yd;\r\n        e = xe;\r\n        len = xd.length;\r\n      }\r\n\r\n      // Numbers with massively different exponents would result in a very high number of zeros\r\n      // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n      // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n      i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n      if (k > i) {\r\n        k = i;\r\n        d.length = 1;\r\n      }\r\n\r\n      // Prepend zeros to equalise exponents.\r\n      d.reverse();\r\n      for (i = k; i--;) d.push(0);\r\n      d.reverse();\r\n\r\n    // Base 1e7 exponents equal.\r\n    } else {\r\n\r\n      // Check digits to determine which is the bigger number.\r\n\r\n      i = xd.length;\r\n      len = yd.length;\r\n      xLTy = i < len;\r\n      if (xLTy) len = i;\r\n\r\n      for (i = 0; i < len; i++) {\r\n        if (xd[i] != yd[i]) {\r\n          xLTy = xd[i] < yd[i];\r\n          break;\r\n        }\r\n      }\r\n\r\n      k = 0;\r\n    }\r\n\r\n    if (xLTy) {\r\n      d = xd;\r\n      xd = yd;\r\n      yd = d;\r\n      y.s = -y.s;\r\n    }\r\n\r\n    len = xd.length;\r\n\r\n    // Append zeros to xd if shorter.\r\n    // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n    for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n    // Subtract yd from xd.\r\n    for (i = yd.length; i > k;) {\r\n      if (xd[--i] < yd[i]) {\r\n        for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n        --xd[j];\r\n        xd[i] += BASE;\r\n      }\r\n\r\n      xd[i] -= yd[i];\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    for (; xd[--len] === 0;) xd.pop();\r\n\r\n    // Remove leading zeros and adjust exponent accordingly.\r\n    for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n    // Zero?\r\n    if (!xd[0]) return new Ctor(0);\r\n\r\n    y.d = xd;\r\n    y.e = e;\r\n\r\n    //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n    return external ? round(y, pr) : y;\r\n  }\r\n\r\n\r\n  function toString(x, isExp, sd) {\r\n    var k,\r\n      e = getBase10Exponent(x),\r\n      str = digitsToString(x.d),\r\n      len = str.length;\r\n\r\n    if (isExp) {\r\n      if (sd && (k = sd - len) > 0) {\r\n        str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n      } else if (len > 1) {\r\n        str = str.charAt(0) + '.' + str.slice(1);\r\n      }\r\n\r\n      str = str + (e < 0 ? 'e' : 'e+') + e;\r\n    } else if (e < 0) {\r\n      str = '0.' + getZeroString(-e - 1) + str;\r\n      if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n    } else if (e >= len) {\r\n      str += getZeroString(e + 1 - len);\r\n      if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n    } else {\r\n      if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n      if (sd && (k = sd - len) > 0) {\r\n        if (e + 1 === len) str += '.';\r\n        str += getZeroString(k);\r\n      }\r\n    }\r\n\r\n    return x.s < 0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // Does not strip trailing zeros.\r\n  function truncate(arr, len) {\r\n    if (arr.length > len) {\r\n      arr.length = len;\r\n      return true;\r\n    }\r\n  }\r\n\r\n\r\n  // Decimal methods\r\n\r\n\r\n  /*\r\n   *  clone\r\n   *  config/set\r\n   */\r\n\r\n\r\n  /*\r\n   * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n   * constructor.\r\n   *\r\n   */\r\n  function clone(obj) {\r\n    var i, p, ps;\r\n\r\n    /*\r\n     * The Decimal constructor and exported function.\r\n     * Return a new Decimal instance.\r\n     *\r\n     * value {number|string|Decimal} A numeric value.\r\n     *\r\n     */\r\n    function Decimal(value) {\r\n      var x = this;\r\n\r\n      // Decimal called without new.\r\n      if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n      // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n      // which points to Object.\r\n      x.constructor = Decimal;\r\n\r\n      // Duplicate.\r\n      if (value instanceof Decimal) {\r\n        x.s = value.s;\r\n        x.e = value.e;\r\n        x.d = (value = value.d) ? value.slice() : value;\r\n        return;\r\n      }\r\n\r\n      if (typeof value === 'number') {\r\n\r\n        // Reject Infinity/NaN.\r\n        if (value * 0 !== 0) {\r\n          throw Error(invalidArgument + value);\r\n        }\r\n\r\n        if (value > 0) {\r\n          x.s = 1;\r\n        } else if (value < 0) {\r\n          value = -value;\r\n          x.s = -1;\r\n        } else {\r\n          x.s = 0;\r\n          x.e = 0;\r\n          x.d = [0];\r\n          return;\r\n        }\r\n\r\n        // Fast path for small integers.\r\n        if (value === ~~value && value < 1e7) {\r\n          x.e = 0;\r\n          x.d = [value];\r\n          return;\r\n        }\r\n\r\n        return parseDecimal(x, value.toString());\r\n      } else if (typeof value !== 'string') {\r\n        throw Error(invalidArgument + value);\r\n      }\r\n\r\n      // Minus sign?\r\n      if (value.charCodeAt(0) === 45) {\r\n        value = value.slice(1);\r\n        x.s = -1;\r\n      } else {\r\n        x.s = 1;\r\n      }\r\n\r\n      if (isDecimal.test(value)) parseDecimal(x, value);\r\n      else throw Error(invalidArgument + value);\r\n    }\r\n\r\n    Decimal.prototype = P;\r\n\r\n    Decimal.ROUND_UP = 0;\r\n    Decimal.ROUND_DOWN = 1;\r\n    Decimal.ROUND_CEIL = 2;\r\n    Decimal.ROUND_FLOOR = 3;\r\n    Decimal.ROUND_HALF_UP = 4;\r\n    Decimal.ROUND_HALF_DOWN = 5;\r\n    Decimal.ROUND_HALF_EVEN = 6;\r\n    Decimal.ROUND_HALF_CEIL = 7;\r\n    Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n    Decimal.clone = clone;\r\n    Decimal.config = Decimal.set = config;\r\n\r\n    if (obj === void 0) obj = {};\r\n    if (obj) {\r\n      ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n      for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n    }\r\n\r\n    Decimal.config(obj);\r\n\r\n    return Decimal;\r\n  }\r\n\r\n\r\n  /*\r\n   * Configure global settings for a Decimal constructor.\r\n   *\r\n   * `obj` is an object with one or more of the following properties,\r\n   *\r\n   *   precision  {number}\r\n   *   rounding   {number}\r\n   *   toExpNeg   {number}\r\n   *   toExpPos   {number}\r\n   *\r\n   * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n   *\r\n   */\r\n  function config(obj) {\r\n    if (!obj || typeof obj !== 'object') {\r\n      throw Error(decimalError + 'Object expected');\r\n    }\r\n    var i, p, v,\r\n      ps = [\r\n        'precision', 1, MAX_DIGITS,\r\n        'rounding', 0, 8,\r\n        'toExpNeg', -1 / 0, 0,\r\n        'toExpPos', 0, 1 / 0\r\n      ];\r\n\r\n    for (i = 0; i < ps.length; i += 3) {\r\n      if ((v = obj[p = ps[i]]) !== void 0) {\r\n        if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n        else throw Error(invalidArgument + p + ': ' + v);\r\n      }\r\n    }\r\n\r\n    if ((v = obj[p = 'LN10']) !== void 0) {\r\n        if (v == Math.LN10) this[p] = new this(v);\r\n        else throw Error(invalidArgument + p + ': ' + v);\r\n    }\r\n\r\n    return this;\r\n  }\r\n\r\n\r\n  // Create and configure initial Decimal constructor.\r\n  Decimal = clone(Decimal);\r\n\r\n  Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n  // Internal constant.\r\n  ONE = new Decimal(1);\r\n\r\n\r\n  // Export.\r\n\r\n\r\n  // AMD.\r\n  if (typeof define == 'function' && define.amd) {\r\n    define(function () {\r\n      return Decimal;\r\n    });\r\n\r\n  // Node and other environments that support module.exports.\r\n  } else if (typeof module != 'undefined' && module.exports) {\r\n    module.exports = Decimal;\r\n\r\n    // Browser.\r\n  } else {\r\n    if (!globalScope) {\r\n      globalScope = typeof self != 'undefined' && self && self.self == self\r\n        ? self : Function('return this')();\r\n    }\r\n\r\n    globalScope.Decimal = Decimal;\r\n  }\r\n})(this);\r\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toInteger = require('./toInteger.js');\n\nfunction times(n, getValue) {\n    n = toInteger.toInteger(n);\n    if (n < 1 || !Number.isSafeInteger(n)) {\n        return [];\n    }\n    const result = new Array(n);\n    for (let i = 0; i < n; i++) {\n        result[i] = typeof getValue === 'function' ? getValue(i) : i;\n    }\n    return result;\n}\n\nexports.times = times;\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n  useState = React.useState,\n  useEffect = React.useEffect,\n  useLayoutEffect = React.useLayoutEffect,\n  useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n  var value = getSnapshot(),\n    _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n    inst = _useState[0].inst,\n    forceUpdate = _useState[1];\n  useLayoutEffect(\n    function () {\n      inst.value = value;\n      inst.getSnapshot = getSnapshot;\n      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n    },\n    [subscribe, value, getSnapshot]\n  );\n  useEffect(\n    function () {\n      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n      return subscribe(function () {\n        checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n      });\n    },\n    [subscribe]\n  );\n  useDebugValue(value);\n  return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n  var latestGetSnapshot = inst.getSnapshot;\n  inst = inst.value;\n  try {\n    var nextValue = latestGetSnapshot();\n    return !objectIs(inst, nextValue);\n  } catch (error) {\n    return !0;\n  }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n  return getSnapshot();\n}\nvar shim =\n  \"undefined\" === typeof window ||\n  \"undefined\" === typeof window.document ||\n  \"undefined\" === typeof window.document.createElement\n    ? useSyncExternalStore$1\n    : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n  void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n    switch (typeof value) {\n        case 'number': {\n            return Number.isInteger(value) && value >= 0 && value < length;\n        }\n        case 'symbol': {\n            return false;\n        }\n        case 'string': {\n            return IS_UNSIGNED_INTEGER.test(value);\n        }\n    }\n}\n\nexports.isIndex = isIndex;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPlainObject(object) {\n    if (typeof object !== 'object') {\n        return false;\n    }\n    if (object == null) {\n        return false;\n    }\n    if (Object.getPrototypeOf(object) === null) {\n        return true;\n    }\n    if (Object.prototype.toString.call(object) !== '[object Object]') {\n        const tag = object[Symbol.toStringTag];\n        if (tag == null) {\n            return false;\n        }\n        const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n        if (isTagReadonly) {\n            return false;\n        }\n        return object.toString() === `[object ${tag}]`;\n    }\n    let proto = object;\n    while (Object.getPrototypeOf(proto) !== null) {\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Object.getPrototypeOf(object) === proto;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction uniqBy(arr, mapper) {\n    const map = new Map();\n    for (let i = 0; i < arr.length; i++) {\n        const item = arr[i];\n        const key = mapper(item, i, arr);\n        if (!map.has(key)) {\n            map.set(key, item);\n        }\n    }\n    return Array.from(map.values());\n}\n\nexports.uniqBy = uniqBy;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isSymbol = require('../predicate/isSymbol.js');\n\nfunction toNumber(value) {\n    if (isSymbol.isSymbol(value)) {\n        return NaN;\n    }\n    return Number(value);\n}\n\nexports.toNumber = toNumber;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isLength(value) {\n    return Number.isSafeInteger(value) && value >= 0;\n}\n\nexports.isLength = isLength;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexports.argumentsTag = argumentsTag;\nexports.arrayBufferTag = arrayBufferTag;\nexports.arrayTag = arrayTag;\nexports.bigInt64ArrayTag = bigInt64ArrayTag;\nexports.bigUint64ArrayTag = bigUint64ArrayTag;\nexports.booleanTag = booleanTag;\nexports.dataViewTag = dataViewTag;\nexports.dateTag = dateTag;\nexports.errorTag = errorTag;\nexports.float32ArrayTag = float32ArrayTag;\nexports.float64ArrayTag = float64ArrayTag;\nexports.functionTag = functionTag;\nexports.int16ArrayTag = int16ArrayTag;\nexports.int32ArrayTag = int32ArrayTag;\nexports.int8ArrayTag = int8ArrayTag;\nexports.mapTag = mapTag;\nexports.numberTag = numberTag;\nexports.objectTag = objectTag;\nexports.regexpTag = regexpTag;\nexports.setTag = setTag;\nexports.stringTag = stringTag;\nexports.symbolTag = symbolTag;\nexports.uint16ArrayTag = uint16ArrayTag;\nexports.uint32ArrayTag = uint32ArrayTag;\nexports.uint8ArrayTag = uint8ArrayTag;\nexports.uint8ClampedArrayTag = uint8ClampedArrayTag;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n  module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith$1 = require('../../object/cloneDeepWith.js');\nconst getTag = require('../_internal/getTag.js');\nconst tags = require('../_internal/tags.js');\n\nfunction cloneDeepWith(obj, customizer) {\n    return cloneDeepWith$1.cloneDeepWith(obj, (value, key, object, stack) => {\n        const cloned = customizer?.(value, key, object, stack);\n        if (cloned !== undefined) {\n            return cloned;\n        }\n        if (typeof obj !== 'object') {\n            return undefined;\n        }\n        if (getTag.getTag(obj) === tags.objectTag && typeof obj.constructor !== 'function') {\n            const result = {};\n            stack.set(obj, result);\n            cloneDeepWith$1.copyProperties(result, obj, object, stack);\n            return result;\n        }\n        switch (Object.prototype.toString.call(obj)) {\n            case tags.numberTag:\n            case tags.stringTag:\n            case tags.booleanTag: {\n                const result = new obj.constructor(obj?.valueOf());\n                cloneDeepWith$1.copyProperties(result, obj);\n                return result;\n            }\n            case tags.argumentsTag: {\n                const result = {};\n                cloneDeepWith$1.copyProperties(result, obj);\n                result.length = obj.length;\n                result[Symbol.iterator] = obj[Symbol.iterator];\n                return result;\n            }\n            default: {\n                return undefined;\n            }\n        }\n    });\n}\n\nexports.cloneDeepWith = cloneDeepWith;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n  module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const EventKeys = [\n  'dangerouslySetInnerHTML',\n  'onCopy',\n  'onCopyCapture',\n  'onCut',\n  'onCutCapture',\n  'onPaste',\n  'onPasteCapture',\n  'onCompositionEnd',\n  'onCompositionEndCapture',\n  'onCompositionStart',\n  'onCompositionStartCapture',\n  'onCompositionUpdate',\n  'onCompositionUpdateCapture',\n  'onFocus',\n  'onFocusCapture',\n  'onBlur',\n  'onBlurCapture',\n  'onChange',\n  'onChangeCapture',\n  'onBeforeInput',\n  'onBeforeInputCapture',\n  'onInput',\n  'onInputCapture',\n  'onReset',\n  'onResetCapture',\n  'onSubmit',\n  'onSubmitCapture',\n  'onInvalid',\n  'onInvalidCapture',\n  'onLoad',\n  'onLoadCapture',\n  'onError',\n  'onErrorCapture',\n  'onKeyDown',\n  'onKeyDownCapture',\n  'onKeyPress',\n  'onKeyPressCapture',\n  'onKeyUp',\n  'onKeyUpCapture',\n  'onAbort',\n  'onAbortCapture',\n  'onCanPlay',\n  'onCanPlayCapture',\n  'onCanPlayThrough',\n  'onCanPlayThroughCapture',\n  'onDurationChange',\n  'onDurationChangeCapture',\n  'onEmptied',\n  'onEmptiedCapture',\n  'onEncrypted',\n  'onEncryptedCapture',\n  'onEnded',\n  'onEndedCapture',\n  'onLoadedData',\n  'onLoadedDataCapture',\n  'onLoadedMetadata',\n  'onLoadedMetadataCapture',\n  'onLoadStart',\n  'onLoadStartCapture',\n  'onPause',\n  'onPauseCapture',\n  'onPlay',\n  'onPlayCapture',\n  'onPlaying',\n  'onPlayingCapture',\n  'onProgress',\n  'onProgressCapture',\n  'onRateChange',\n  'onRateChangeCapture',\n  'onSeeked',\n  'onSeekedCapture',\n  'onSeeking',\n  'onSeekingCapture',\n  'onStalled',\n  'onStalledCapture',\n  'onSuspend',\n  'onSuspendCapture',\n  'onTimeUpdate',\n  'onTimeUpdateCapture',\n  'onVolumeChange',\n  'onVolumeChangeCapture',\n  'onWaiting',\n  'onWaitingCapture',\n  'onAuxClick',\n  'onAuxClickCapture',\n  'onClick',\n  'onClickCapture',\n  'onContextMenu',\n  'onContextMenuCapture',\n  'onDoubleClick',\n  'onDoubleClickCapture',\n  'onDrag',\n  'onDragCapture',\n  'onDragEnd',\n  'onDragEndCapture',\n  'onDragEnter',\n  'onDragEnterCapture',\n  'onDragExit',\n  'onDragExitCapture',\n  'onDragLeave',\n  'onDragLeaveCapture',\n  'onDragOver',\n  'onDragOverCapture',\n  'onDragStart',\n  'onDragStartCapture',\n  'onDrop',\n  'onDropCapture',\n  'onMouseDown',\n  'onMouseDownCapture',\n  'onMouseEnter',\n  'onMouseLeave',\n  'onMouseMove',\n  'onMouseMoveCapture',\n  'onMouseOut',\n  'onMouseOutCapture',\n  'onMouseOver',\n  'onMouseOverCapture',\n  'onMouseUp',\n  'onMouseUpCapture',\n  'onSelect',\n  'onSelectCapture',\n  'onTouchCancel',\n  'onTouchCancelCapture',\n  'onTouchEnd',\n  'onTouchEndCapture',\n  'onTouchMove',\n  'onTouchMoveCapture',\n  'onTouchStart',\n  'onTouchStartCapture',\n  'onPointerDown',\n  'onPointerDownCapture',\n  'onPointerMove',\n  'onPointerMoveCapture',\n  'onPointerUp',\n  'onPointerUpCapture',\n  'onPointerCancel',\n  'onPointerCancelCapture',\n  'onPointerEnter',\n  'onPointerEnterCapture',\n  'onPointerLeave',\n  'onPointerLeaveCapture',\n  'onPointerOver',\n  'onPointerOverCapture',\n  'onPointerOut',\n  'onPointerOutCapture',\n  'onGotPointerCapture',\n  'onGotPointerCaptureCapture',\n  'onLostPointerCapture',\n  'onLostPointerCaptureCapture',\n  'onScroll',\n  'onScrollCapture',\n  'onWheel',\n  'onWheelCapture',\n  'onAnimationStart',\n  'onAnimationStartCapture',\n  'onAnimationEnd',\n  'onAnimationEndCapture',\n  'onAnimationIteration',\n  'onAnimationIterationCapture',\n  'onTransitionEnd',\n  'onTransitionEndCapture',\n] as const;\n\nexport type EventKeysType = (typeof EventKeys)[number];\n\nexport function isEventKey(key: PropertyKey): key is EventKeysType {\n  if (typeof key !== 'string') {\n    return false;\n  }\n  const allowedEventKeys: ReadonlyArray<string> = EventKeys;\n  return allowedEventKeys.includes(key);\n}\n","import { isValidElement } from 'react';\n\nconst SVGElementPropKeys = [\n  'aria-activedescendant',\n  'aria-atomic',\n  'aria-autocomplete',\n  'aria-busy',\n  'aria-checked',\n  'aria-colcount',\n  'aria-colindex',\n  'aria-colspan',\n  'aria-controls',\n  'aria-current',\n  'aria-describedby',\n  'aria-details',\n  'aria-disabled',\n  'aria-errormessage',\n  'aria-expanded',\n  'aria-flowto',\n  'aria-haspopup',\n  'aria-hidden',\n  'aria-invalid',\n  'aria-keyshortcuts',\n  'aria-label',\n  'aria-labelledby',\n  'aria-level',\n  'aria-live',\n  'aria-modal',\n  'aria-multiline',\n  'aria-multiselectable',\n  'aria-orientation',\n  'aria-owns',\n  'aria-placeholder',\n  'aria-posinset',\n  'aria-pressed',\n  'aria-readonly',\n  'aria-relevant',\n  'aria-required',\n  'aria-roledescription',\n  'aria-rowcount',\n  'aria-rowindex',\n  'aria-rowspan',\n  'aria-selected',\n  'aria-setsize',\n  'aria-sort',\n  'aria-valuemax',\n  'aria-valuemin',\n  'aria-valuenow',\n  'aria-valuetext',\n  'className',\n  'color',\n  'height',\n  'id',\n  'lang',\n  'max',\n  'media',\n  'method',\n  'min',\n  'name',\n  'style',\n  /*\n   * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n   * that can use it, and it conflicts with the recharts prop 'type'\n   * https://github.com/recharts/recharts/pull/3327\n   * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n   */\n  // 'type',\n  'target',\n  'width',\n  'role',\n  'tabIndex',\n  'accentHeight',\n  'accumulate',\n  'additive',\n  'alignmentBaseline',\n  'allowReorder',\n  'alphabetic',\n  'amplitude',\n  'arabicForm',\n  'ascent',\n  'attributeName',\n  'attributeType',\n  'autoReverse',\n  'azimuth',\n  'baseFrequency',\n  'baselineShift',\n  'baseProfile',\n  'bbox',\n  'begin',\n  'bias',\n  'by',\n  'calcMode',\n  'capHeight',\n  'clip',\n  'clipPath',\n  'clipPathUnits',\n  'clipRule',\n  'colorInterpolation',\n  'colorInterpolationFilters',\n  'colorProfile',\n  'colorRendering',\n  'contentScriptType',\n  'contentStyleType',\n  'cursor',\n  'cx',\n  'cy',\n  'd',\n  'decelerate',\n  'descent',\n  'diffuseConstant',\n  'direction',\n  'display',\n  'divisor',\n  'dominantBaseline',\n  'dur',\n  'dx',\n  'dy',\n  'edgeMode',\n  'elevation',\n  'enableBackground',\n  'end',\n  'exponent',\n  'externalResourcesRequired',\n  'fill',\n  'fillOpacity',\n  'fillRule',\n  'filter',\n  'filterRes',\n  'filterUnits',\n  'floodColor',\n  'floodOpacity',\n  'focusable',\n  'fontFamily',\n  'fontSize',\n  'fontSizeAdjust',\n  'fontStretch',\n  'fontStyle',\n  'fontVariant',\n  'fontWeight',\n  'format',\n  'from',\n  'fx',\n  'fy',\n  'g1',\n  'g2',\n  'glyphName',\n  'glyphOrientationHorizontal',\n  'glyphOrientationVertical',\n  'glyphRef',\n  'gradientTransform',\n  'gradientUnits',\n  'hanging',\n  'horizAdvX',\n  'horizOriginX',\n  'href',\n  'ideographic',\n  'imageRendering',\n  'in2',\n  'in',\n  'intercept',\n  'k1',\n  'k2',\n  'k3',\n  'k4',\n  'k',\n  'kernelMatrix',\n  'kernelUnitLength',\n  'kerning',\n  'keyPoints',\n  'keySplines',\n  'keyTimes',\n  'lengthAdjust',\n  'letterSpacing',\n  'lightingColor',\n  'limitingConeAngle',\n  'local',\n  'markerEnd',\n  'markerHeight',\n  'markerMid',\n  'markerStart',\n  'markerUnits',\n  'markerWidth',\n  'mask',\n  'maskContentUnits',\n  'maskUnits',\n  'mathematical',\n  'mode',\n  'numOctaves',\n  'offset',\n  'opacity',\n  'operator',\n  'order',\n  'orient',\n  'orientation',\n  'origin',\n  'overflow',\n  'overlinePosition',\n  'overlineThickness',\n  'paintOrder',\n  'panose1',\n  'pathLength',\n  'patternContentUnits',\n  'patternTransform',\n  'patternUnits',\n  'pointerEvents',\n  'pointsAtX',\n  'pointsAtY',\n  'pointsAtZ',\n  'preserveAlpha',\n  'preserveAspectRatio',\n  'primitiveUnits',\n  'r',\n  'radius',\n  'refX',\n  'refY',\n  'renderingIntent',\n  'repeatCount',\n  'repeatDur',\n  'requiredExtensions',\n  'requiredFeatures',\n  'restart',\n  'result',\n  'rotate',\n  'rx',\n  'ry',\n  'seed',\n  'shapeRendering',\n  'slope',\n  'spacing',\n  'specularConstant',\n  'specularExponent',\n  'speed',\n  'spreadMethod',\n  'startOffset',\n  'stdDeviation',\n  'stemh',\n  'stemv',\n  'stitchTiles',\n  'stopColor',\n  'stopOpacity',\n  'strikethroughPosition',\n  'strikethroughThickness',\n  'string',\n  'stroke',\n  'strokeDasharray',\n  'strokeDashoffset',\n  'strokeLinecap',\n  'strokeLinejoin',\n  'strokeMiterlimit',\n  'strokeOpacity',\n  'strokeWidth',\n  'surfaceScale',\n  'systemLanguage',\n  'tableValues',\n  'targetX',\n  'targetY',\n  'textAnchor',\n  'textDecoration',\n  'textLength',\n  'textRendering',\n  'to',\n  'transform',\n  'u1',\n  'u2',\n  'underlinePosition',\n  'underlineThickness',\n  'unicode',\n  'unicodeBidi',\n  'unicodeRange',\n  'unitsPerEm',\n  'vAlphabetic',\n  'values',\n  'vectorEffect',\n  'version',\n  'vertAdvY',\n  'vertOriginX',\n  'vertOriginY',\n  'vHanging',\n  'vIdeographic',\n  'viewTarget',\n  'visibility',\n  'vMathematical',\n  'widths',\n  'wordSpacing',\n  'writingMode',\n  'x1',\n  'x2',\n  'x',\n  'xChannelSelector',\n  'xHeight',\n  'xlinkActuate',\n  'xlinkArcrole',\n  'xlinkHref',\n  'xlinkRole',\n  'xlinkShow',\n  'xlinkTitle',\n  'xlinkType',\n  'xmlBase',\n  'xmlLang',\n  'xmlns',\n  'xmlnsXlink',\n  'xmlSpace',\n  'y1',\n  'y2',\n  'y',\n  'yChannelSelector',\n  'z',\n  'zoomAndPan',\n  'ref',\n  'key',\n  'angle',\n] as const;\n\nexport type SVGElementPropKeysType = (typeof SVGElementPropKeys)[number];\n\nconst SVGElementPropKeySet = new Set<string>(SVGElementPropKeys);\n\nexport function isSvgElementPropKey(key: PropertyKey): boolean {\n  if (typeof key !== 'string') {\n    return false;\n  }\n  return SVGElementPropKeySet.has(key);\n}\n\nexport type DataAttributeKeyType = `data-${string}`;\n\nexport type SVGPropsNoEvents<T> = Pick<T, Extract<keyof T, SVGElementPropKeysType | DataAttributeKeyType>>;\n\n/**\n * Checks if the property is a data attribute.\n * @param key The property key.\n * @returns True if the key starts with 'data-', false otherwise.\n */\nexport function isDataAttribute(key: PropertyKey): key is DataAttributeKeyType {\n  return typeof key === 'string' && key.startsWith('data-');\n}\n\n/**\n * Filters an object to only include SVG properties. Removes all event handlers too.\n * @param obj - The object to filter\n * @returns A new object containing only valid SVG properties, excluding event handlers.\n */\nexport function svgPropertiesNoEvents<T extends Record<PropertyKey, any>>(obj: T | boolean): SVGPropsNoEvents<T> {\n  if (typeof obj !== 'object' || obj === null) {\n    return {} as SVGPropsNoEvents<T>;\n  }\n  const result: Record<PropertyKey, any> = {};\n\n  for (const key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      if (isSvgElementPropKey(key) || isDataAttribute(key)) {\n        result[key] = obj[key];\n      }\n    }\n  }\n  return result as SVGPropsNoEvents<T>;\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesNoEventsFromUnknown(\n  input: unknown,\n): Partial<Record<SVGElementPropKeysType, unknown>> | null {\n  if (input == null) {\n    return null;\n  }\n\n  if (isValidElement(input) && typeof input.props === 'object' && input.props !== null) {\n    const p: Partial<Record<PropertyKey, unknown>> = input.props;\n    return svgPropertiesNoEvents(p);\n  }\n\n  if (typeof input === 'object' && !Array.isArray(input)) {\n    return svgPropertiesNoEvents(input);\n  }\n\n  return null;\n}\n","import { isValidElement, SVGProps } from 'react';\nimport { EventKeysType, isEventKey } from './excludeEventProps';\nimport {\n  DataAttributeKeyType,\n  isDataAttribute,\n  isSvgElementPropKey,\n  SVGElementPropKeysType,\n} from './svgPropertiesNoEvents';\n\ntype SVGElementPropsAndEventsType = SVGElementPropKeysType | EventKeysType | DataAttributeKeyType;\n\nexport type SVGPropsAndEvents<T> = Pick<T, Extract<keyof T, SVGElementPropsAndEventsType>>;\n\n/**\n * Filters an object to only include SVG properties, data attributes, and event handlers.\n * @param obj - The object to filter.\n * @returns A new object containing only valid SVG properties, data attributes, and event handlers.\n */\nexport function svgPropertiesAndEvents<T extends Record<PropertyKey, any>>(obj: T): SVGPropsAndEvents<T> {\n  const result: Record<PropertyKey, any> = {};\n  // for ... in loop is 10x faster than Object.entries + filter + Object.fromEntries in Chrome\n\n  for (const key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      if (isSvgElementPropKey(key) || isDataAttribute(key) || isEventKey(key)) {\n        result[key] = obj[key];\n      }\n    }\n  }\n  return result as SVGPropsAndEvents<T>;\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesAndEventsFromUnknown(input: unknown): SVGProps<unknown> | null {\n  if (input == null) {\n    return null;\n  }\n\n  if (isValidElement(input)) {\n    // @ts-expect-error we can't type this better because input can be any React element\n    return svgPropertiesAndEvents(input.props);\n  }\n\n  if (typeof input === 'object' && !Array.isArray(input)) {\n    return svgPropertiesAndEvents(input);\n  }\n\n  return null;\n}\n","import * as React from 'react';\nimport { ReactNode, CSSProperties, SVGProps, forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { CartesianViewBox } from '../util/types';\n\ninterface SurfaceProps {\n  width: number | string;\n  height: number | string;\n  viewBox?: CartesianViewBox;\n  className?: string;\n  style?: CSSProperties;\n  children?: ReactNode;\n  title?: string;\n  desc?: string;\n}\n\nexport type Props = Omit<SVGProps<SVGSVGElement>, 'viewBox'> & SurfaceProps;\n\n/**\n * Renders an SVG element.\n *\n * All charts already include a Surface component, so you would not normally use this directly.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg\n */\nexport const Surface = forwardRef<SVGSVGElement, Props>((props: Props, ref) => {\n  const { children, width, height, viewBox, className, style, title, desc, ...others } = props;\n  const svgView = viewBox || { width, height, x: 0, y: 0 };\n  const layerClass = clsx('recharts-surface', className);\n\n  return (\n    <svg\n      {...svgPropertiesAndEvents(others)}\n      className={layerClass}\n      width={width}\n      height={height}\n      style={style}\n      viewBox={`${svgView.x} ${svgView.y} ${svgView.width} ${svgView.height}`}\n      ref={ref}\n    >\n      <title>{title}</title>\n      <desc>{desc}</desc>\n      {children}\n    </svg>\n  );\n});\n","import * as React from 'react';\nimport { ReactNode, SVGAttributes } from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n\ninterface LayerProps {\n  className?: string;\n  children?: ReactNode;\n}\n\nexport type Props = SVGAttributes<SVGGElement> & LayerProps;\n\n/**\n * Creates an SVG group element to group other SVG elements.\n *\n * Useful if you want to apply transformations or styles to a set of elements\n * without affecting other elements in the SVG.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g\n */\nexport const Layer = React.forwardRef<SVGGElement, Props>((props: Props, ref) => {\n  const { children, className, ...others } = props;\n  const layerClass = clsx('recharts-layer', className);\n\n  return (\n    <g className={layerClass} {...svgPropertiesAndEvents(others)} ref={ref}>\n      {children}\n    </g>\n  );\n});\n","import { createContext, useContext } from 'react';\n\nexport const LegendPortalContext = createContext<HTMLElement | null>(null);\n\nexport const useLegendPortal = (): HTMLElement | null => useContext(LegendPortalContext);\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n  draw(context, size) {\n    const r = sqrt(size / pi);\n    context.moveTo(r, 0);\n    context.arc(0, 0, r, 0, tau);\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n  draw(context, size) {\n    const r = sqrt(size / 5) / 2;\n    context.moveTo(-3 * r, -r);\n    context.lineTo(-r, -r);\n    context.lineTo(-r, -3 * r);\n    context.lineTo(r, -3 * r);\n    context.lineTo(r, -r);\n    context.lineTo(3 * r, -r);\n    context.lineTo(3 * r, r);\n    context.lineTo(r, r);\n    context.lineTo(r, 3 * r);\n    context.lineTo(-r, 3 * r);\n    context.lineTo(-r, r);\n    context.lineTo(-3 * r, r);\n    context.closePath();\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n  draw(context, size) {\n    const y = sqrt(size / tan30_2);\n    const x = y * tan30;\n    context.moveTo(0, -y);\n    context.lineTo(x, 0);\n    context.lineTo(0, y);\n    context.lineTo(-x, 0);\n    context.closePath();\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n  draw(context, size) {\n    const w = sqrt(size);\n    const x = -w / 2;\n    context.rect(x, x, w, w);\n  }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n  draw(context, size) {\n    const r = sqrt(size * ka);\n    const x = kx * r;\n    const y = ky * r;\n    context.moveTo(0, -r);\n    context.lineTo(x, y);\n    for (let i = 1; i < 5; ++i) {\n      const a = tau * i / 5;\n      const c = cos(a);\n      const s = sin(a);\n      context.lineTo(s * r, -c * r);\n      context.lineTo(c * x - s * y, s * x + c * y);\n    }\n    context.closePath();\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n  draw(context, size) {\n    const y = -sqrt(size / (sqrt3 * 3));\n    context.moveTo(0, y * 2);\n    context.lineTo(-sqrt3 * y, -y);\n    context.lineTo(sqrt3 * y, -y);\n    context.closePath();\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n  draw(context, size) {\n    const r = sqrt(size / a);\n    const x0 = r / 2, y0 = r * k;\n    const x1 = x0, y1 = r * k + r;\n    const x2 = -x1, y2 = y1;\n    context.moveTo(x0, y0);\n    context.lineTo(x1, y1);\n    context.lineTo(x2, y2);\n    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n    context.closePath();\n  }\n};\n","export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n","const pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n  this._ += strings[0];\n  for (let i = 1, n = strings.length; i < n; ++i) {\n    this._ += arguments[i] + strings[i];\n  }\n}\n\nfunction appendRound(digits) {\n  let d = Math.floor(digits);\n  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n  if (d > 15) return append;\n  const k = 10 ** d;\n  return function(strings) {\n    this._ += strings[0];\n    for (let i = 1, n = strings.length; i < n; ++i) {\n      this._ += Math.round(arguments[i] * k) / k + strings[i];\n    }\n  };\n}\n\nexport class Path {\n  constructor(digits) {\n    this._x0 = this._y0 = // start of current subpath\n    this._x1 = this._y1 = null; // end of current subpath\n    this._ = \"\";\n    this._append = digits == null ? append : appendRound(digits);\n  }\n  moveTo(x, y) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n  }\n  closePath() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._append`Z`;\n    }\n  }\n  lineTo(x, y) {\n    this._append`L${this._x1 = +x},${this._y1 = +y}`;\n  }\n  quadraticCurveTo(x1, y1, x, y) {\n    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  bezierCurveTo(x1, y1, x2, y2, x, y) {\n    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  arcTo(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._append`M${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._append`L${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      let x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n      }\n\n      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n    }\n  }\n  arc(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._append`M${x0},${y0}`;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._append`L${x0},${y0}`;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n    }\n  }\n  rect(x, y, w, h) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n  }\n  toString() {\n    return this._;\n  }\n}\n\nexport function path() {\n  return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n  return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n  let digits = 3;\n\n  shape.digits = function(_) {\n    if (!arguments.length) return digits;\n    if (_ == null) {\n      digits = null;\n    } else {\n      const d = Math.floor(_);\n      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n      digits = d;\n    }\n    return shape;\n  };\n\n  return () => new Path(digits);\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n  draw(context, size) {\n    const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n    const t = r / 2;\n    const u = t * sqrt3;\n    context.moveTo(0, r);\n    context.lineTo(0, -r);\n    context.moveTo(-u, -t);\n    context.lineTo(u, t);\n    context.moveTo(-u, t);\n    context.lineTo(u, -t);\n  }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n  draw(context, size) {\n    const s = sqrt(size) * 0.6824;\n    const t = s  / 2;\n    const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n    context.moveTo(0, -s);\n    context.lineTo(u, t);\n    context.lineTo(-u, t);\n    context.closePath();\n  }\n};\n","// if you go lower than 3, wild wild things happen during rendering\nconst defaultRoundPrecision = 4;\n\nexport function round(num: number, roundPrecision: number = defaultRoundPrecision): number {\n  const factor = 10 ** roundPrecision;\n  const rounded = Math.round(num * factor) / factor;\n  if (Object.is(rounded, -0)) {\n    return 0;\n  }\n  return rounded;\n}\n\n/**\n * This function will accept a string template literal and for each\n * variable placeholder, it will round the value to avoid long float numbers in\n * the SVG path which might cause rendering issues in some browsers.\n */\nexport function roundTemplateLiteral(strings: TemplateStringsArray, ...values: ReadonlyArray<number | string>) {\n  return strings.reduce((result, string, i) => {\n    const value = values[i - 1];\n    if (typeof value === 'string') {\n      return result + value + string;\n    }\n    if (value !== undefined) {\n      return result + round(value) + string;\n    }\n    return result + string;\n  }, '');\n}\n","import get from 'es-toolkit/compat/get';\nimport { NonEmptyArray, Percent } from './types';\nimport { round } from './round';\n\nexport const mathSign = (value: number) => {\n  if (value === 0) {\n    return 0;\n  }\n  if (value > 0) {\n    return 1;\n  }\n\n  return -1;\n};\n\nexport const isNan = (value: unknown): value is number => {\n  // eslint-disable-next-line eqeqeq\n  return typeof value == 'number' && value != +value;\n};\n\nexport const isPercent = (value: string | number | undefined): value is Percent =>\n  typeof value === 'string' && value.indexOf('%') === value.length - 1;\n\nexport const isNumber = (value: unknown): value is number =>\n  (typeof value === 'number' || value instanceof Number) && !isNan(value);\n\nexport const isNumOrStr = (value: unknown): value is number | string => isNumber(value) || typeof value === 'string';\n\nlet idCounter = 0;\nexport const uniqueId = (prefix?: string) => {\n  const id = ++idCounter;\n\n  return `${prefix || ''}${id}`;\n};\n\n/**\n * Calculates the numeric value represented by a percent string or number, based on a total value.\n *\n * - If `percent` is not a number or string, returns `defaultValue`.\n * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.\n * - If the result is NaN, returns `defaultValue`.\n * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.\n *\n * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').\n *                  If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.\n * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.\n * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.\n * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).\n * @returns The calculated value, or `defaultValue` for invalid input.\n */\nexport const getPercentValue = (\n  percent: number | string | undefined,\n  totalValue: number | undefined,\n  defaultValue = 0,\n  validate = false,\n) => {\n  if (!isNumber(percent) && typeof percent !== 'string') {\n    return defaultValue;\n  }\n\n  let value: number;\n\n  if (isPercent(percent)) {\n    if (totalValue == null) {\n      return defaultValue;\n    }\n    const index = percent.indexOf('%');\n    value = (totalValue * parseFloat((percent as string).slice(0, index))) / 100;\n  } else {\n    value = +percent;\n  }\n\n  if (isNan(value)) {\n    value = defaultValue;\n  }\n\n  if (validate && totalValue != null && value > totalValue) {\n    value = totalValue;\n  }\n\n  return value;\n};\n\nexport const hasDuplicate = (ary: ReadonlyArray<unknown>): boolean => {\n  if (!Array.isArray(ary)) {\n    return false;\n  }\n\n  const len = ary.length;\n  const cache: Record<string, boolean> = {};\n\n  for (let i = 0; i < len; i++) {\n    if (!cache[String(ary[i])]) {\n      cache[String(ary[i])] = true;\n    } else {\n      return true;\n    }\n  }\n\n  return false;\n};\n\nexport function interpolate(start: unknown, end: number, t: number): number;\nexport function interpolate(start: unknown, end: null, t: number): null;\nexport function interpolate(start: unknown, end: number | null, t: number): number | null;\nexport function interpolate(start: unknown, end: number | null, t: number): number | null {\n  if (isNumber(start) && isNumber(end)) {\n    return round(start + t * (end - start));\n  }\n  return end;\n}\n\nexport function findEntryInArray<T>(\n  ary: ReadonlyArray<T>,\n  specifiedKey: number | string | ((entry: T) => unknown),\n  specifiedValue: unknown,\n): T | undefined {\n  if (!ary || !ary.length) {\n    return undefined;\n  }\n\n  return ary.find(\n    entry =>\n      entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue,\n  );\n}\n\ntype LinearRegressionResult = {\n  xmin: number;\n  xmax: number;\n  a: number;\n  b: number;\n};\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport const getLinearRegression = (data: NonEmptyArray<{ cx?: number; cy?: number }>): LinearRegressionResult => {\n  const len = data.length;\n  let xsum = 0;\n  let ysum = 0;\n  let xysum = 0;\n  let xxsum = 0;\n  let xmin = Infinity;\n  let xmax = -Infinity;\n  let xcurrent = 0;\n  let ycurrent = 0;\n\n  for (let i = 0; i < len; i++) {\n    xcurrent = data[i]?.cx || 0;\n    ycurrent = data[i]?.cy || 0;\n\n    xsum += xcurrent;\n    ysum += ycurrent;\n    xysum += xcurrent * ycurrent;\n    xxsum += xcurrent * xcurrent;\n    xmin = Math.min(xmin, xcurrent);\n    xmax = Math.max(xmax, xcurrent);\n  }\n\n  const a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n\n  return {\n    xmin,\n    xmax,\n    a,\n    b: (ysum - a * xsum) / len,\n  };\n};\n\ntype Nullish = null | undefined;\n\n/**\n * Checks if the value is null or undefined\n * @param value The value to check\n * @returns true if the value is null or undefined\n */\nexport const isNullish = (value: unknown): value is Nullish => {\n  return value === null || typeof value === 'undefined';\n};\n\n/**\n * Uppercase the first letter of a string\n * @param {string} value The string to uppercase\n * @returns {string} The uppercased string\n */\nexport const upperFirst = (value: string): string => {\n  if (isNullish(value)) {\n    return value;\n  }\n\n  return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n};\n\n/**\n * Checks if the value is not null nor undefined.\n * @param value The value to check\n * @returns true if the value is not null nor undefined\n */\nexport function isNotNil<T>(value: T): value is NonNullable<T> {\n  return value != null;\n}\n\n/**\n * No-operation function that does nothing.\n * Useful as a placeholder or default callback function.\n */\nexport function noop(): undefined {}\n","import * as React from 'react';\nimport { SVGProps } from 'react';\n\nimport {\n  symbol as shapeSymbol,\n  symbolCircle,\n  symbolCross,\n  symbolDiamond,\n  symbolSquare,\n  symbolStar,\n  symbolTriangle,\n  symbolWye,\n  SymbolType as D3SymbolType,\n} from 'victory-vendor/d3-shape';\nimport { clsx } from 'clsx';\nimport { SymbolType } from '../util/types';\nimport { isNumber, upperFirst } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n\ntype SizeType = 'area' | 'diameter';\n\ninterface SymbolFactory {\n  [type: string]: D3SymbolType;\n}\n\nconst symbolFactories: SymbolFactory = {\n  symbolCircle,\n  symbolCross,\n  symbolDiamond,\n  symbolSquare,\n  symbolStar,\n  symbolTriangle,\n  symbolWye,\n};\nconst RADIAN = Math.PI / 180;\n\nconst getSymbolFactory = (type: SymbolType) => {\n  const name = `symbol${upperFirst(type)}`;\n\n  return symbolFactories[name] || symbolCircle;\n};\n\nconst calculateAreaSize = (size: number, sizeType: SizeType, type: SymbolType) => {\n  if (sizeType === 'area') {\n    return size;\n  }\n\n  switch (type) {\n    case 'cross':\n      return (5 * size * size) / 9;\n    case 'diamond':\n      return (0.5 * size * size) / Math.sqrt(3);\n    case 'square':\n      return size * size;\n    case 'star': {\n      const angle = 18 * RADIAN;\n\n      return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.tan(angle) ** 2);\n    }\n    case 'triangle':\n      return (Math.sqrt(3) * size * size) / 4;\n    case 'wye':\n      return ((21 - 10 * Math.sqrt(3)) * size * size) / 8;\n    default:\n      return (Math.PI * size * size) / 4;\n  }\n};\n\nexport interface InnerSymbolsProp {\n  className?: string;\n  type?: SymbolType;\n  cx?: number;\n  cy?: number;\n  size?: number;\n  sizeType?: SizeType;\n}\n\nexport type SymbolsProps = Omit<SVGProps<SVGPathElement>, 'type'> & InnerSymbolsProp;\n\nconst registerSymbol = (key: string, factory: D3SymbolType) => {\n  symbolFactories[`symbol${upperFirst(key)}`] = factory;\n};\n\n/**\n * Renders a symbol from a set of predefined shapes.\n */\nexport const Symbols = ({ type = 'circle', size = 64, sizeType = 'area', ...rest }: SymbolsProps) => {\n  const props = { ...rest, type, size, sizeType };\n  let realType: SymbolType = 'circle';\n  if (typeof type === 'string') {\n    /*\n     * Our type guard is not as strong as it could be (i.e. non-existent),\n     * and so despite the typescript type saying that `type` is a `SymbolType`,\n     * we can get numbers or really anything, so let's have a runtime check here to fix the exception.\n     *\n     * https://github.com/recharts/recharts/issues/6197\n     */\n    realType = type;\n  }\n\n  /**\n   * Calculate the path of curve\n   * @return {String} path\n   */\n  const getPath = (): string | undefined => {\n    const symbolFactory = getSymbolFactory(realType);\n    const symbol = shapeSymbol()\n      .type(symbolFactory)\n      .size(calculateAreaSize(size, sizeType, realType));\n\n    const s = symbol();\n    if (s === null) {\n      return undefined;\n    }\n    return s;\n  };\n\n  const { className, cx, cy } = props;\n  const filteredProps = svgPropertiesAndEvents(props);\n\n  if (isNumber(cx) && isNumber(cy) && isNumber(size)) {\n    return (\n      <path\n        {...filteredProps}\n        className={clsx('recharts-symbols', className)}\n        transform={`translate(${cx}, ${cy})`}\n        d={getPath()}\n      />\n    );\n  }\n\n  return null;\n};\n\nSymbols.registerSymbol = registerSymbol;\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n  circle,\n  cross,\n  diamond,\n  square,\n  star,\n  triangle,\n  wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n  circle,\n  plus,\n  times,\n  triangle2,\n  asterisk,\n  square2,\n  diamond2\n];\n\nexport default function Symbol(type, size) {\n  let context = null,\n      path = withPath(symbol);\n\n  type = typeof type === \"function\" ? type : constant(type || circle);\n  size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n  function symbol() {\n    let buffer;\n    if (!context) context = buffer = path();\n    type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  symbol.type = function(_) {\n    return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n  };\n\n  symbol.size = function(_) {\n    return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n  };\n\n  symbol.context = function(_) {\n    return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n  };\n\n  return symbol;\n}\n","import {\n  AnimationEvent,\n  AriaAttributes,\n  ClipboardEvent,\n  Component,\n  CompositionEvent,\n  CSSProperties,\n  DragEvent,\n  FocusEvent,\n  FormEvent,\n  FunctionComponent,\n  isValidElement,\n  KeyboardEvent,\n  MouseEvent,\n  PointerEvent,\n  ReactElement,\n  ReactNode,\n  SVGProps,\n  SyntheticEvent,\n  TouchEvent,\n  TransitionEvent,\n  UIEvent,\n  WheelEvent,\n} from 'react';\nimport type { Props as DotProps } from '../shape/Dot';\nimport { AxisRange } from '../state/selectors/axisSelectors';\nimport { ExternalMouseEvents } from '../chart/types';\nimport { SyncMethod } from '../synchronisation/types';\nimport { isEventKey } from './excludeEventProps';\nimport { DotPoint } from '../component/Dots';\nimport { SVGPropsNoEvents } from './svgPropertiesNoEvents';\nimport { BaseValue } from '../cartesian/Area';\nimport { ImplicitLabelType } from '../component/Label';\nimport { CustomScaleDefinition } from './scale/CustomScaleDefinition';\nimport { ChartData } from '../state/chartDataSlice';\nimport { XAxisOrientation, XAxisPadding, YAxisOrientation, YAxisPadding } from '../state/cartesianAxisSlice';\nimport { TextAnchor, TextVerticalAnchor } from '../component/Text';\nimport type { TickFormatter } from '../cartesian/CartesianAxis';\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n *\n * @inline\n */\nexport type StackOffsetType = 'sign' | 'expand' | 'none' | 'wiggle' | 'silhouette' | 'positive';\nexport type CartesianLayout = 'horizontal' | 'vertical';\nexport type PolarLayout = 'centric' | 'radial';\n/**\n * @deprecated use either `CartesianLayout` or `PolarLayout` instead.\n * Mixing both charts families leads to ambiguity in the type system.\n * These two layouts share very few properties, so it is best to keep them separate.\n */\nexport type LayoutType = CartesianLayout | PolarLayout;\nexport type AxisType = 'xAxis' | 'yAxis' | 'zAxis' | 'angleAxis' | 'radiusAxis';\n\n/**\n * The type of axis.\n *\n * `category`: Treats data as distinct values.\n * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n *\n * `number`: Treats data as continuous range.\n * Values that are numerically closer are placed closer together on the axis.\n *\n * `auto`: the type is inferred based on the chart layout.\n *\n * This is external type - users will provide this type in props.\n * Internally we will evaluate it to either 'category' or 'number' based on the layout,\n * before sending it to the store.\n *\n * @inline\n */\nexport type AxisDomainTypeInput = 'number' | 'category' | 'auto';\n\n/**\n * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',\n * based on the chart layout and axis kind. Then they can start using this type.\n */\nexport type EvaluatedAxisDomainType = 'number' | 'category';\n\n/**\n * Extracts values from data objects.\n *\n * @inline\n */\nexport type DataKey<T> = string | number | ((obj: T) => any);\nexport type PresentationAttributesWithProps<P, T> = AriaAttributes &\n  DOMAttributesWithProps<P, T> &\n  Omit<SVGProps<T>, keyof DOMAttributesWithProps<P, T>>;\nexport type PresentationAttributesAdaptChildEvent<P, T> = AriaAttributes &\n  DOMAttributesAdaptChildEvent<P, T> &\n  Omit<SVGProps<T>, keyof DOMAttributesAdaptChildEvent<P, T>>;\n\n/**\n * @inline\n */\nexport type SymbolType = 'circle' | 'cross' | 'diamond' | 'square' | 'star' | 'triangle' | 'wye';\n\n/**\n * @inline\n */\nexport type LegendType =\n  | 'circle'\n  | 'cross'\n  | 'diamond'\n  | 'line'\n  | 'plainline'\n  | 'rect'\n  | 'square'\n  | 'star'\n  | 'triangle'\n  | 'wye'\n  | 'none';\nexport type TooltipType = 'none';\n\nexport type AllowInDimension = {\n  x?: boolean;\n  y?: boolean;\n};\n\nexport interface Coordinate {\n  x: number;\n  y: number;\n}\n\nexport interface NullableCoordinate {\n  x: number | null;\n  y: number | null;\n}\n\nexport type RectangleCoordinate = {\n  x1: number;\n  y1: number;\n  x2: number;\n  y2: number;\n};\n\nexport type RectanglePosition = {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n};\n\n/**\n * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.\n * Instead, use either `Coordinate` or `PolarCoordinate`.\n */\nexport interface ChartCoordinate extends Coordinate {\n  xAxis?: any;\n  yAxis?: any;\n  width?: any;\n  height?: any;\n  offset?: ChartOffsetInternal;\n  angle?: number;\n  radius?: number;\n  cx?: number;\n  cy?: number;\n  startAngle?: number;\n  endAngle?: number;\n  innerRadius?: number;\n  outerRadius?: number;\n}\n\nexport type PolarCoordinate = Coordinate & {\n  angle: number;\n  startAngle: number;\n  endAngle: number;\n  clockWise: boolean;\n  cx: number;\n  cy: number;\n  innerRadius: number;\n  outerRadius: number;\n  radius: number;\n};\n\nexport const isPolarCoordinate = (c: Coordinate | PolarCoordinate): c is PolarCoordinate => {\n  return 'radius' in c && 'startAngle' in c && 'endAngle' in c;\n};\n\nexport type D3ScaleType =\n  | 'linear'\n  | 'pow'\n  | 'sqrt'\n  | 'log'\n  | 'symlog'\n  | 'identity'\n  | 'time'\n  | 'band'\n  | 'point'\n  | 'ordinal'\n  | 'quantile'\n  | 'quantize'\n  | 'utc'\n  | 'sequential'\n  | 'threshold';\n\n/**\n * String shortcuts for scale types.\n * In case none of these does what you want you can also provide your own scale function\n * @see {@link CustomScaleDefinition}\n */\nexport type ScaleType = 'auto' | D3ScaleType;\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\ntype EventHandler<P, E extends SyntheticEvent<any>> = {\n  bivarianceHack(props: P, event: E): void;\n}['bivarianceHack'];\n\ntype ReactEventHandler<P, T = Element> = EventHandler<P, SyntheticEvent<T>>;\ntype ClipboardEventHandler<P, T = Element> = EventHandler<P, ClipboardEvent<T>>;\ntype CompositionEventHandler<P, T = Element> = EventHandler<P, CompositionEvent<T>>;\ntype DragEventHandler<P, T = Element> = EventHandler<P, DragEvent<T>>;\ntype FocusEventHandler<P, T = Element> = EventHandler<P, FocusEvent<T>>;\ntype FormEventHandler<P, T = Element> = EventHandler<P, FormEvent<T>>;\ntype KeyboardEventHandler<P, T = Element> = EventHandler<P, KeyboardEvent<T>>;\nexport type RechartsMouseEventHandler<P, T = Element> = EventHandler<P, MouseEvent<T>>;\ntype TouchEventHandler<P, T = Element> = EventHandler<P, TouchEvent<T>>;\ntype PointerEventHandler<P, T = Element> = EventHandler<P, PointerEvent<T>>;\ntype UIEventHandler<P, T = Element> = EventHandler<P, UIEvent<T>>;\ntype WheelEventHandler<P, T = Element> = EventHandler<P, WheelEvent<T>>;\ntype AnimationEventHandler<P, T = Element> = EventHandler<P, AnimationEvent<T>>;\ntype TransitionEventHandler<P, T = Element> = EventHandler<P, TransitionEvent<T>>;\n\nexport interface DOMAttributesWithProps<P, T> {\n  children?: ReactNode;\n  dangerouslySetInnerHTML?: {\n    __html: string | TrustedHTML;\n  };\n\n  // Clipboard Events\n  onCopy?: ClipboardEventHandler<P, T>;\n  onCopyCapture?: ClipboardEventHandler<P, T>;\n  onCut?: ClipboardEventHandler<P, T>;\n  onCutCapture?: ClipboardEventHandler<P, T>;\n  onPaste?: ClipboardEventHandler<P, T>;\n  onPasteCapture?: ClipboardEventHandler<P, T>;\n\n  // Composition Events\n  onCompositionEnd?: CompositionEventHandler<P, T>;\n  onCompositionEndCapture?: CompositionEventHandler<P, T>;\n  onCompositionStart?: CompositionEventHandler<P, T>;\n  onCompositionStartCapture?: CompositionEventHandler<P, T>;\n  onCompositionUpdate?: CompositionEventHandler<P, T>;\n  onCompositionUpdateCapture?: CompositionEventHandler<P, T>;\n\n  // Focus Events\n  onFocus?: FocusEventHandler<P, T>;\n  onFocusCapture?: FocusEventHandler<P, T>;\n  onBlur?: FocusEventHandler<P, T>;\n  onBlurCapture?: FocusEventHandler<P, T>;\n\n  // Form Events\n  onChange?: FormEventHandler<P, T>;\n  onChangeCapture?: FormEventHandler<P, T>;\n  onBeforeInput?: FormEventHandler<P, T>;\n  onBeforeInputCapture?: FormEventHandler<P, T>;\n  onInput?: FormEventHandler<P, T>;\n  onInputCapture?: FormEventHandler<P, T>;\n  onReset?: FormEventHandler<P, T>;\n  onResetCapture?: FormEventHandler<P, T>;\n  onSubmit?: FormEventHandler<P, T>;\n  onSubmitCapture?: FormEventHandler<P, T>;\n  onInvalid?: FormEventHandler<P, T>;\n  onInvalidCapture?: FormEventHandler<P, T>;\n\n  // Image Events\n  onLoad?: ReactEventHandler<P, T>;\n  onLoadCapture?: ReactEventHandler<P, T>;\n  onError?: ReactEventHandler<P, T>; // also a Media Event\n  onErrorCapture?: ReactEventHandler<P, T>; // also a Media Event\n\n  // Keyboard Events\n  onKeyDown?: KeyboardEventHandler<P, T>;\n  onKeyDownCapture?: KeyboardEventHandler<P, T>;\n  onKeyPress?: KeyboardEventHandler<P, T>;\n  onKeyPressCapture?: KeyboardEventHandler<P, T>;\n  onKeyUp?: KeyboardEventHandler<P, T>;\n  onKeyUpCapture?: KeyboardEventHandler<P, T>;\n\n  // Media Events\n  onAbort?: ReactEventHandler<P, T>;\n  onAbortCapture?: ReactEventHandler<P, T>;\n  onCanPlay?: ReactEventHandler<P, T>;\n  onCanPlayCapture?: ReactEventHandler<P, T>;\n  onCanPlayThrough?: ReactEventHandler<P, T>;\n  onCanPlayThroughCapture?: ReactEventHandler<P, T>;\n  onDurationChange?: ReactEventHandler<P, T>;\n  onDurationChangeCapture?: ReactEventHandler<P, T>;\n  onEmptied?: ReactEventHandler<P, T>;\n  onEmptiedCapture?: ReactEventHandler<P, T>;\n  onEncrypted?: ReactEventHandler<P, T>;\n  onEncryptedCapture?: ReactEventHandler<P, T>;\n  onEnded?: ReactEventHandler<P, T>;\n  onEndedCapture?: ReactEventHandler<P, T>;\n  onLoadedData?: ReactEventHandler<P, T>;\n  onLoadedDataCapture?: ReactEventHandler<P, T>;\n  onLoadedMetadata?: ReactEventHandler<P, T>;\n  onLoadedMetadataCapture?: ReactEventHandler<P, T>;\n  onLoadStart?: ReactEventHandler<P, T>;\n  onLoadStartCapture?: ReactEventHandler<P, T>;\n  onPause?: ReactEventHandler<P, T>;\n  onPauseCapture?: ReactEventHandler<P, T>;\n  onPlay?: ReactEventHandler<P, T>;\n  onPlayCapture?: ReactEventHandler<P, T>;\n  onPlaying?: ReactEventHandler<P, T>;\n  onPlayingCapture?: ReactEventHandler<P, T>;\n  onProgress?: ReactEventHandler<P, T>;\n  onProgressCapture?: ReactEventHandler<P, T>;\n  onRateChange?: ReactEventHandler<P, T>;\n  onRateChangeCapture?: ReactEventHandler<P, T>;\n  onSeeked?: ReactEventHandler<P, T>;\n  onSeekedCapture?: ReactEventHandler<P, T>;\n  onSeeking?: ReactEventHandler<P, T>;\n  onSeekingCapture?: ReactEventHandler<P, T>;\n  onStalled?: ReactEventHandler<P, T>;\n  onStalledCapture?: ReactEventHandler<P, T>;\n  onSuspend?: ReactEventHandler<P, T>;\n  onSuspendCapture?: ReactEventHandler<P, T>;\n  onTimeUpdate?: ReactEventHandler<P, T>;\n  onTimeUpdateCapture?: ReactEventHandler<P, T>;\n  onVolumeChange?: ReactEventHandler<P, T>;\n  onVolumeChangeCapture?: ReactEventHandler<P, T>;\n  onWaiting?: ReactEventHandler<P, T>;\n  onWaitingCapture?: ReactEventHandler<P, T>;\n\n  // MouseEvents\n  onAuxClick?: RechartsMouseEventHandler<P, T>;\n  onAuxClickCapture?: RechartsMouseEventHandler<P, T>;\n  onClick?: RechartsMouseEventHandler<P, T>;\n  onClickCapture?: RechartsMouseEventHandler<P, T>;\n  onContextMenu?: RechartsMouseEventHandler<P, T>;\n  onContextMenuCapture?: RechartsMouseEventHandler<P, T>;\n  onDoubleClick?: RechartsMouseEventHandler<P, T>;\n  onDoubleClickCapture?: RechartsMouseEventHandler<P, T>;\n  onDrag?: DragEventHandler<P, T>;\n  onDragCapture?: DragEventHandler<P, T>;\n  onDragEnd?: DragEventHandler<P, T>;\n  onDragEndCapture?: DragEventHandler<P, T>;\n  onDragEnter?: DragEventHandler<P, T>;\n  onDragEnterCapture?: DragEventHandler<P, T>;\n  onDragExit?: DragEventHandler<P, T>;\n  onDragExitCapture?: DragEventHandler<P, T>;\n  onDragLeave?: DragEventHandler<P, T>;\n  onDragLeaveCapture?: DragEventHandler<P, T>;\n  onDragOver?: DragEventHandler<P, T>;\n  onDragOverCapture?: DragEventHandler<P, T>;\n  onDragStart?: DragEventHandler<P, T>;\n  onDragStartCapture?: DragEventHandler<P, T>;\n  onDrop?: DragEventHandler<P, T>;\n  onDropCapture?: DragEventHandler<P, T>;\n  /**\n   * The customized event handler of mousedown in this chart.\n   */\n  onMouseDown?: RechartsMouseEventHandler<P, T>;\n  onMouseDownCapture?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mouseenter in this chart.\n   */\n  onMouseEnter?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mouseleave in this chart.\n   */\n  onMouseLeave?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mousemove in this chart.\n   */\n  onMouseMove?: RechartsMouseEventHandler<P, T>;\n  onMouseMoveCapture?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mouseout in this chart.\n   */\n  onMouseOut?: RechartsMouseEventHandler<P, T>;\n  onMouseOutCapture?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mouseover in this chart.\n   */\n  onMouseOver?: RechartsMouseEventHandler<P, T>;\n  onMouseOverCapture?: RechartsMouseEventHandler<P, T>;\n  /**\n   * The customized event handler of mouseup in this chart.\n   */\n  onMouseUp?: RechartsMouseEventHandler<P, T>;\n  onMouseUpCapture?: RechartsMouseEventHandler<P, T>;\n\n  // Selection Events\n  onSelect?: ReactEventHandler<P, T>;\n  onSelectCapture?: ReactEventHandler<P, T>;\n\n  // Touch Events\n  onTouchCancel?: TouchEventHandler<P, T>;\n  onTouchCancelCapture?: TouchEventHandler<P, T>;\n  onTouchEnd?: TouchEventHandler<P, T>;\n  onTouchEndCapture?: TouchEventHandler<P, T>;\n  onTouchMove?: TouchEventHandler<P, T>;\n  onTouchMoveCapture?: TouchEventHandler<P, T>;\n  onTouchStart?: TouchEventHandler<P, T>;\n  onTouchStartCapture?: TouchEventHandler<P, T>;\n\n  // Pointer Events\n  onPointerDown?: PointerEventHandler<P, T>;\n  onPointerDownCapture?: PointerEventHandler<P, T>;\n  onPointerMove?: PointerEventHandler<P, T>;\n  onPointerMoveCapture?: PointerEventHandler<P, T>;\n  onPointerUp?: PointerEventHandler<P, T>;\n  onPointerUpCapture?: PointerEventHandler<P, T>;\n  onPointerCancel?: PointerEventHandler<P, T>;\n  onPointerCancelCapture?: PointerEventHandler<P, T>;\n  onPointerEnter?: PointerEventHandler<P, T>;\n  onPointerEnterCapture?: PointerEventHandler<P, T>;\n  onPointerLeave?: PointerEventHandler<P, T>;\n  onPointerLeaveCapture?: PointerEventHandler<P, T>;\n  onPointerOver?: PointerEventHandler<P, T>;\n  onPointerOverCapture?: PointerEventHandler<P, T>;\n  onPointerOut?: PointerEventHandler<P, T>;\n  onPointerOutCapture?: PointerEventHandler<P, T>;\n  onGotPointerCapture?: PointerEventHandler<P, T>;\n  onGotPointerCaptureCapture?: PointerEventHandler<P, T>;\n  onLostPointerCapture?: PointerEventHandler<P, T>;\n  onLostPointerCaptureCapture?: PointerEventHandler<P, T>;\n\n  // UI Events\n  onScroll?: UIEventHandler<P, T>;\n  onScrollCapture?: UIEventHandler<P, T>;\n\n  // Wheel Events\n  onWheel?: WheelEventHandler<P, T>;\n  onWheelCapture?: WheelEventHandler<P, T>;\n\n  // Animation Events\n  onAnimationStart?: AnimationEventHandler<P, T>;\n  onAnimationStartCapture?: AnimationEventHandler<P, T>;\n  onAnimationEnd?: AnimationEventHandler<P, T>;\n  onAnimationEndCapture?: AnimationEventHandler<P, T>;\n  onAnimationIteration?: AnimationEventHandler<P, T>;\n  onAnimationIterationCapture?: AnimationEventHandler<P, T>;\n\n  // Transition Events\n  onTransitionEnd?: TransitionEventHandler<P, T>;\n  onTransitionEndCapture?: TransitionEventHandler<P, T>;\n}\n\ntype AdaptChildEventHandler<P, E extends SyntheticEvent<any>> = {\n  bivarianceHack(data: P, index: number, event: E): void;\n}['bivarianceHack'];\n\ntype AdaptChildReactEventHandler<P, T = Element> = AdaptChildEventHandler<P, SyntheticEvent<T>>;\ntype AdaptChildClipboardEventHandler<P, T = Element> = AdaptChildEventHandler<P, ClipboardEvent<T>>;\ntype AdaptChildCompositionEventHandler<P, T = Element> = AdaptChildEventHandler<P, CompositionEvent<T>>;\ntype AdaptChildDragEventHandler<P, T = Element> = AdaptChildEventHandler<P, DragEvent<T>>;\ntype AdaptChildFocusEventHandler<P, T = Element> = AdaptChildEventHandler<P, FocusEvent<T>>;\ntype AdaptChildFormEventHandler<P, T = Element> = AdaptChildEventHandler<P, FormEvent<T>>;\ntype AdaptChildKeyboardEventHandler<P, T = Element> = AdaptChildEventHandler<P, KeyboardEvent<T>>;\ntype AdaptChildMouseEventHandler<P, T = Element> = AdaptChildEventHandler<P, MouseEvent<T>>;\ntype AdaptChildTouchEventHandler<P, T = Element> = AdaptChildEventHandler<P, TouchEvent<T>>;\ntype AdaptChildPointerEventHandler<P, T = Element> = AdaptChildEventHandler<P, PointerEvent<T>>;\ntype AdaptChildUIEventHandler<P, T = Element> = AdaptChildEventHandler<P, UIEvent<T>>;\ntype AdaptChildWheelEventHandler<P, T = Element> = AdaptChildEventHandler<P, WheelEvent<T>>;\ntype AdaptChildAnimationEventHandler<P, T = Element> = AdaptChildEventHandler<P, AnimationEvent<T>>;\ntype AdaptChildTransitionEventHandler<P, T = Element> = AdaptChildEventHandler<P, TransitionEvent<T>>;\n\nexport type DOMAttributesAdaptChildEvent<P, T> = {\n  children?: ReactNode;\n  dangerouslySetInnerHTML?: {\n    __html: string;\n  };\n\n  // Clipboard Events\n  onCopy?: AdaptChildClipboardEventHandler<P, T>;\n  onCopyCapture?: AdaptChildClipboardEventHandler<P, T>;\n  onCut?: AdaptChildClipboardEventHandler<P, T>;\n  onCutCapture?: AdaptChildClipboardEventHandler<P, T>;\n  onPaste?: AdaptChildClipboardEventHandler<P, T>;\n  onPasteCapture?: AdaptChildClipboardEventHandler<P, T>;\n\n  // Composition Events\n  onCompositionEnd?: AdaptChildCompositionEventHandler<P, T>;\n  onCompositionEndCapture?: AdaptChildCompositionEventHandler<P, T>;\n  onCompositionStart?: AdaptChildCompositionEventHandler<P, T>;\n  onCompositionStartCapture?: AdaptChildCompositionEventHandler<P, T>;\n  onCompositionUpdate?: AdaptChildCompositionEventHandler<P, T>;\n  onCompositionUpdateCapture?: AdaptChildCompositionEventHandler<P, T>;\n\n  // Focus Events\n  onFocus?: AdaptChildFocusEventHandler<P, T>;\n  onFocusCapture?: AdaptChildFocusEventHandler<P, T>;\n  onBlur?: AdaptChildFocusEventHandler<P, T>;\n  onBlurCapture?: AdaptChildFocusEventHandler<P, T>;\n\n  // Form Events\n  onChange?: AdaptChildFormEventHandler<P, T>;\n  onChangeCapture?: AdaptChildFormEventHandler<P, T>;\n  onBeforeInput?: AdaptChildFormEventHandler<P, T>;\n  onBeforeInputCapture?: AdaptChildFormEventHandler<P, T>;\n  onInput?: AdaptChildFormEventHandler<P, T>;\n  onInputCapture?: AdaptChildFormEventHandler<P, T>;\n  onReset?: AdaptChildFormEventHandler<P, T>;\n  onResetCapture?: AdaptChildFormEventHandler<P, T>;\n  onSubmit?: AdaptChildFormEventHandler<P, T>;\n  onSubmitCapture?: AdaptChildFormEventHandler<P, T>;\n  onInvalid?: AdaptChildFormEventHandler<P, T>;\n  onInvalidCapture?: AdaptChildFormEventHandler<P, T>;\n\n  // Image Events\n  onLoad?: AdaptChildReactEventHandler<P, T>;\n  onLoadCapture?: AdaptChildReactEventHandler<P, T>;\n  onError?: AdaptChildReactEventHandler<P, T>; // also a Media Event\n  onErrorCapture?: AdaptChildReactEventHandler<P, T>; // also a Media Event\n\n  // Keyboard Events\n  onKeyDown?: AdaptChildKeyboardEventHandler<P, T>;\n  onKeyDownCapture?: AdaptChildKeyboardEventHandler<P, T>;\n  onKeyPress?: AdaptChildKeyboardEventHandler<P, T>;\n  onKeyPressCapture?: AdaptChildKeyboardEventHandler<P, T>;\n  onKeyUp?: AdaptChildKeyboardEventHandler<P, T>;\n  onKeyUpCapture?: AdaptChildKeyboardEventHandler<P, T>;\n\n  // Media Events\n  onAbort?: AdaptChildReactEventHandler<P, T>;\n  onAbortCapture?: AdaptChildReactEventHandler<P, T>;\n  onCanPlay?: AdaptChildReactEventHandler<P, T>;\n  onCanPlayCapture?: AdaptChildReactEventHandler<P, T>;\n  onCanPlayThrough?: AdaptChildReactEventHandler<P, T>;\n  onCanPlayThroughCapture?: AdaptChildReactEventHandler<P, T>;\n  onDurationChange?: AdaptChildReactEventHandler<P, T>;\n  onDurationChangeCapture?: AdaptChildReactEventHandler<P, T>;\n  onEmptied?: AdaptChildReactEventHandler<P, T>;\n  onEmptiedCapture?: AdaptChildReactEventHandler<P, T>;\n  onEncrypted?: AdaptChildReactEventHandler<P, T>;\n  onEncryptedCapture?: AdaptChildReactEventHandler<P, T>;\n  onEnded?: AdaptChildReactEventHandler<P, T>;\n  onEndedCapture?: AdaptChildReactEventHandler<P, T>;\n  onLoadedData?: AdaptChildReactEventHandler<P, T>;\n  onLoadedDataCapture?: AdaptChildReactEventHandler<P, T>;\n  onLoadedMetadata?: AdaptChildReactEventHandler<P, T>;\n  onLoadedMetadataCapture?: AdaptChildReactEventHandler<P, T>;\n  onLoadStart?: AdaptChildReactEventHandler<P, T>;\n  onLoadStartCapture?: AdaptChildReactEventHandler<P, T>;\n  onPause?: AdaptChildReactEventHandler<P, T>;\n  onPauseCapture?: AdaptChildReactEventHandler<P, T>;\n  onPlay?: AdaptChildReactEventHandler<P, T>;\n  onPlayCapture?: AdaptChildReactEventHandler<P, T>;\n  onPlaying?: AdaptChildReactEventHandler<P, T>;\n  onPlayingCapture?: AdaptChildReactEventHandler<P, T>;\n  onProgress?: AdaptChildReactEventHandler<P, T>;\n  onProgressCapture?: AdaptChildReactEventHandler<P, T>;\n  onRateChange?: AdaptChildReactEventHandler<P, T>;\n  onRateChangeCapture?: AdaptChildReactEventHandler<P, T>;\n  onSeeked?: AdaptChildReactEventHandler<P, T>;\n  onSeekedCapture?: AdaptChildReactEventHandler<P, T>;\n  onSeeking?: AdaptChildReactEventHandler<P, T>;\n  onSeekingCapture?: AdaptChildReactEventHandler<P, T>;\n  onStalled?: AdaptChildReactEventHandler<P, T>;\n  onStalledCapture?: AdaptChildReactEventHandler<P, T>;\n  onSuspend?: AdaptChildReactEventHandler<P, T>;\n  onSuspendCapture?: AdaptChildReactEventHandler<P, T>;\n  onTimeUpdate?: AdaptChildReactEventHandler<P, T>;\n  onTimeUpdateCapture?: AdaptChildReactEventHandler<P, T>;\n  onVolumeChange?: AdaptChildReactEventHandler<P, T>;\n  onVolumeChangeCapture?: AdaptChildReactEventHandler<P, T>;\n  onWaiting?: AdaptChildReactEventHandler<P, T>;\n  onWaitingCapture?: AdaptChildReactEventHandler<P, T>;\n\n  // MouseEvents\n  onAuxClick?: AdaptChildMouseEventHandler<P, T>;\n  onAuxClickCapture?: AdaptChildMouseEventHandler<P, T>;\n  onClick?: AdaptChildMouseEventHandler<P, T>;\n  onClickCapture?: AdaptChildMouseEventHandler<P, T>;\n  onContextMenu?: AdaptChildMouseEventHandler<P, T>;\n  onContextMenuCapture?: AdaptChildMouseEventHandler<P, T>;\n  onDoubleClick?: AdaptChildMouseEventHandler<P, T>;\n  onDoubleClickCapture?: AdaptChildMouseEventHandler<P, T>;\n  onDrag?: AdaptChildDragEventHandler<P, T>;\n  onDragCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragEnd?: AdaptChildDragEventHandler<P, T>;\n  onDragEndCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragEnter?: AdaptChildDragEventHandler<P, T>;\n  onDragEnterCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragExit?: AdaptChildDragEventHandler<P, T>;\n  onDragExitCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragLeave?: AdaptChildDragEventHandler<P, T>;\n  onDragLeaveCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragOver?: AdaptChildDragEventHandler<P, T>;\n  onDragOverCapture?: AdaptChildDragEventHandler<P, T>;\n  onDragStart?: AdaptChildDragEventHandler<P, T>;\n  onDragStartCapture?: AdaptChildDragEventHandler<P, T>;\n  onDrop?: AdaptChildDragEventHandler<P, T>;\n  onDropCapture?: AdaptChildDragEventHandler<P, T>;\n  onMouseDown?: AdaptChildMouseEventHandler<P, T>;\n  onMouseDownCapture?: AdaptChildMouseEventHandler<P, T>;\n  onMouseEnter?: AdaptChildMouseEventHandler<P, T>;\n  onMouseLeave?: AdaptChildMouseEventHandler<P, T>;\n  onMouseMove?: AdaptChildMouseEventHandler<P, T>;\n  onMouseMoveCapture?: AdaptChildMouseEventHandler<P, T>;\n  onMouseOut?: AdaptChildMouseEventHandler<P, T>;\n  onMouseOutCapture?: AdaptChildMouseEventHandler<P, T>;\n  onMouseOver?: AdaptChildMouseEventHandler<P, T>;\n  onMouseOverCapture?: AdaptChildMouseEventHandler<P, T>;\n  onMouseUp?: AdaptChildMouseEventHandler<P, T>;\n  onMouseUpCapture?: AdaptChildMouseEventHandler<P, T>;\n\n  // Selection Events\n  onSelect?: AdaptChildReactEventHandler<P, T>;\n  onSelectCapture?: AdaptChildReactEventHandler<P, T>;\n\n  // Touch Events\n  onTouchCancel?: AdaptChildTouchEventHandler<P, T>;\n  onTouchCancelCapture?: AdaptChildTouchEventHandler<P, T>;\n  onTouchEnd?: AdaptChildTouchEventHandler<P, T>;\n  onTouchEndCapture?: AdaptChildTouchEventHandler<P, T>;\n  onTouchMove?: AdaptChildTouchEventHandler<P, T>;\n  onTouchMoveCapture?: AdaptChildTouchEventHandler<P, T>;\n  onTouchStart?: AdaptChildTouchEventHandler<P, T>;\n  onTouchStartCapture?: AdaptChildTouchEventHandler<P, T>;\n\n  // Pointer Events\n  onPointerDown?: AdaptChildPointerEventHandler<P, T>;\n  onPointerDownCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerMove?: AdaptChildPointerEventHandler<P, T>;\n  onPointerMoveCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerUp?: AdaptChildPointerEventHandler<P, T>;\n  onPointerUpCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerCancel?: AdaptChildPointerEventHandler<P, T>;\n  onPointerCancelCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerEnter?: AdaptChildPointerEventHandler<P, T>;\n  onPointerEnterCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerLeave?: AdaptChildPointerEventHandler<P, T>;\n  onPointerLeaveCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerOver?: AdaptChildPointerEventHandler<P, T>;\n  onPointerOverCapture?: AdaptChildPointerEventHandler<P, T>;\n  onPointerOut?: AdaptChildPointerEventHandler<P, T>;\n  onPointerOutCapture?: AdaptChildPointerEventHandler<P, T>;\n  onGotPointerCapture?: AdaptChildPointerEventHandler<P, T>;\n  onGotPointerCaptureCapture?: AdaptChildPointerEventHandler<P, T>;\n  onLostPointerCapture?: AdaptChildPointerEventHandler<P, T>;\n  onLostPointerCaptureCapture?: AdaptChildPointerEventHandler<P, T>;\n\n  // UI Events\n  onScroll?: AdaptChildUIEventHandler<P, T>;\n  onScrollCapture?: AdaptChildUIEventHandler<P, T>;\n\n  // Wheel Events\n  onWheel?: AdaptChildWheelEventHandler<P, T>;\n  onWheelCapture?: AdaptChildWheelEventHandler<P, T>;\n\n  // Animation Events\n  onAnimationStart?: AdaptChildAnimationEventHandler<P, T>;\n  onAnimationStartCapture?: AdaptChildAnimationEventHandler<P, T>;\n  onAnimationEnd?: AdaptChildAnimationEventHandler<P, T>;\n  onAnimationEndCapture?: AdaptChildAnimationEventHandler<P, T>;\n  onAnimationIteration?: AdaptChildAnimationEventHandler<P, T>;\n  onAnimationIterationCapture?: AdaptChildAnimationEventHandler<P, T>;\n\n  // Transition Events\n  onTransitionEnd?: AdaptChildTransitionEventHandler<P, T>;\n  onTransitionEndCapture?: AdaptChildTransitionEventHandler<P, T>;\n};\n\n/**\n * The type of easing function to use for animations\n *\n * @inline\n */\nexport type AnimationTiming = 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';\n/** Specifies the duration of animation, the unit of this option is ms. */\nexport type AnimationDuration = number;\n\nexport type OffsetVertical = {\n  top: number;\n  bottom: number;\n};\n\nexport type OffsetHorizontal = {\n  left: number;\n  right: number;\n};\n\n/**\n * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.\n * We use it internally but let's not expose it to the outside world.\n * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.\n */\nexport type ChartOffsetInternal = {\n  top: number;\n  bottom: number;\n  left: number;\n  right: number;\n  width: number;\n  height: number;\n  brushBottom: number;\n};\n\nexport interface Padding {\n  top: number;\n  bottom: number;\n  left: number;\n  right: number;\n}\n\nexport interface GeometrySector {\n  cx: number;\n  cy: number;\n  innerRadius: number;\n  outerRadius: number;\n  startAngle: number;\n  endAngle: number;\n}\n\nexport type GeometrySectorWithCornerRadius = GeometrySector & {\n  cornerRadius: number;\n  forceCornerRadius: boolean;\n  cornerIsExternal: boolean;\n};\n\nexport type AxisDomainItem = string | number | ((d: number) => string | number) | 'auto' | 'dataMin' | 'dataMax';\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\nexport type AxisDomain =\n  | ReadonlyArray<string>\n  | ReadonlyArray<number>\n  | Readonly<[AxisDomainItem, AxisDomainItem]>\n  | (([dataMin, dataMax]: NumberDomain, allowDataOverflow: boolean) => NumberDomain);\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\nexport type NumberDomain = readonly [min: number, max: number];\n\nexport type CategoricalDomainItem = number | string | Date;\n\nexport type CategoricalDomain = ReadonlyArray<CategoricalDomainItem>;\n\nexport type BaseTickContentProps = {\n  angle: number;\n  className?: string;\n  fill: string | undefined;\n  height?: number | string;\n  index: number;\n  name?: string;\n  stroke: string;\n  payload: CartesianTickItem;\n  textAnchor: TextAnchor;\n  tickFormatter: TickFormatter | undefined;\n  verticalAnchor: TextVerticalAnchor;\n  visibleTicksCount: number;\n  width?: number | string;\n  x: number | string;\n  y: number | string;\n};\n\nexport type XAxisTickContentProps = BaseTickContentProps & {\n  orientation: XAxisOrientation;\n  padding: XAxisPadding | undefined;\n};\n\nexport type YAxisTickContentProps = BaseTickContentProps & {\n  orientation: YAxisOrientation;\n  padding: YAxisPadding | undefined;\n};\n\nexport type TickProp<T> = SVGProps<SVGTextElement> | ReactElement | ((props: T) => ReactNode) | boolean;\n\nexport interface BaseAxisProps {\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * `auto`: the type is inferred based on the chart layout.\n   */\n  type?: 'category' | 'number' | 'auto';\n  /**\n   * The name of data.\n   * This option will be used in tooltip.\n   * If no value was set to this option, the value of dataKey will be used alternatively.\n   */\n  name?: string;\n  /**\n   * The unit of data. This option will be used in tooltip.\n   */\n  unit?: string;\n  /**\n   * Decides how to extract the value of this Axis from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Axis.\n   *\n   * If undefined, it will reuse the dataKey of graphical items.\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <XAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <XAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <XAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <XAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <XAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <XAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <XAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <XAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <XAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <YAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n}\n\n/**\n * Props shared in all renderable axes - meaning the ones that are drawn on the chart,\n * can have ticks, axis line, etc.\n */\nexport interface RenderableAxisProps extends BaseAxisProps {\n  /**\n   * Tick text rotation angle in degrees.\n   * Positive values rotate clockwise, negative values rotate counterclockwise.\n   *\n   * @defaultValue 0\n   */\n  angle?: number;\n  /**\n   * If set true, the axis do not display in the chart.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * Defines how the individual label text is rendered.\n   * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.\n   *\n   * If you want to customize the overall axis label, use the `label` prop instead.\n   *\n   * Options:\n   * - `false`: Do not render any tick labels.\n   * - `true`: Render tick labels with default settings.\n   * - `object`: An object of props to be merged into the internally calculated tick props.\n   * - `ReactElement`: A custom React element to be used as the tick label.\n   * - `function`: A function that returns a React element for custom rendering of tick labels.\n   *\n   * @defaultValue true\n   */\n  tick?: TickProp<unknown>;\n\n  /**\n   * The count of axis ticks. Not used if 'type' is 'category'.\n   * @defaultValue 5\n   */\n  tickCount?: number;\n  /**\n   * Determines how the axis line is drawn. Options:\n   * - `true`: the axis line is drawn with default props;\n   * - `false`: the axis line is not visible;\n   * - `object`: passed as props to SVG `<line>` element representing the axis line.\n   *\n   * @defaultValue true\n   */\n  axisLine?: boolean | SVGProps<SVGLineElement>;\n\n  /**\n   * If false set, tick lines will not be drawn.\n   * If true set, tick lines will be drawn which have the props calculated internally.\n   * If object set, tick lines will be drawn which have the props merged\n   * by the internal calculated props and the option.\n   * @defaultValue true\n   */\n  tickLine?: boolean | SVGProps<SVGLineElement>;\n  /**\n   * The length of tick line.\n   * @defaultValue 6\n   */\n  tickSize?: number;\n  /**\n   * The formatter function of tick.\n   */\n  tickFormatter?: (value: any, index: number) => string;\n  /**\n   * When domain of the axis is specified and the type of the axis is 'number',\n   * if allowDataOverflow is set to be false,\n   * the domain will be adjusted when the minimum value of data is smaller than domain[0] or\n   * the maximum value of data is greater than domain[1] so that the axis displays all data values.\n   * If set to true, graphic elements (line, area, bars) will be clipped to conform to the specified domain.\n   *\n   * @defaultValue false\n   */\n  allowDataOverflow?: boolean;\n  /**\n   * Allow the axis has duplicated categories or not when the type of axis is \"category\".\n   * @defaultValue true\n   */\n  allowDuplicatedCategory?: boolean;\n  /**\n   * Allow the ticks of axis to be decimals or not.\n   *\n   * @defaultValue true\n   */\n  allowDecimals?: boolean;\n  /**\n   * Ensures that all datapoints within a chart contribute to its domain calculation, even when they are hidden\n   * @defaultValue false\n   */\n  includeHidden?: boolean;\n  /**\n   * @deprecated Recharts computes the range automatically based on chart width or height\n   *\n   * Recharts ignores this prop since 3.0\n   */\n  range?: AxisRange;\n  /**\n   * Defines a single label for the whole axis.\n   * This prop renders one label in the center of the axis line.\n   * Useful for labeling the axis as a whole, like \"Time (in seconds)\" or \"Distance (in meters)\".\n   *\n   * This is not controlling tick labels.\n   * If you want to customize tick labels, please see `tickFormatter` or `tick` props.\n   *\n   * - `false`: no label is rendered\n   * - `string` | `number`: the content of the label\n   * - `object`: the props of LabelList component\n   * - `ReactElement`: a custom label element\n   * - `function`: a render function of custom label\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelType;\n  /** The HTML element's class name */\n  className?: string;\n  /**\n   * If set to true, the ticks of this axis are reversed.\n   * @defaultValue false\n   */\n  reversed?: boolean;\n}\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.\n */\nexport type AxisInterval =\n  | number\n  | 'preserveStart'\n  | 'preserveEnd'\n  | 'preserveStartEnd'\n  | 'equidistantPreserveStart'\n  | 'equidistantPreserveEnd';\n\n/**\n * Ticks can be any type when the axis is the type of category.\n *\n * Ticks must be numbers when the axis is the type of number.\n */\nexport type AxisTick = number | string;\n\nexport interface TickItem {\n  value: any;\n  coordinate: number;\n  index: number;\n  /**\n   * How far this tick is offset from the start of a category band.\n   * On axes that do not have bands, this will always be zero.\n   *\n   * We never read offset internally in Recharts,\n   * but it has been part of the external API so let's keep it here for people who do use it.\n   */\n  offset?: number;\n}\n\nexport interface CartesianTickItem extends TickItem {\n  tickCoord?: number;\n  tickSize?: number;\n  isShow?: boolean;\n}\n\nexport interface Margin {\n  top: number;\n  right: number;\n  bottom: number;\n  left: number;\n}\n\n/**\n * @inline\n */\nexport interface CartesianViewBox {\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n}\n\nexport type CartesianViewBoxRequired = Required<CartesianViewBox>;\n\ninterface PolarViewBox {\n  cx?: number;\n  cy?: number;\n  innerRadius?: number;\n  outerRadius?: number;\n  startAngle?: number;\n  endAngle?: number;\n  clockWise?: boolean;\n}\n\nexport type PolarViewBoxRequired = Required<PolarViewBox>;\n\nexport type TrapezoidViewBox = {\n  /**\n   * The x-coordinate of the upper left corner of the trapezoid.\n   * If the upper side is shorter than the lower side, this will be the x-coordinate of the upper left corner,\n   * meaning that the X does take into account the varying width of the trapezoid.\n   */\n  x: number;\n  /**\n   * The y-coordinate of the upper side of the trapezoid.\n   * Nothing exciting happening here.\n   */\n  y: number;\n  /**\n   * The width of the upper side of the trapezoid.\n   */\n  upperWidth: number;\n  /**\n   * The width of the lower side of the trapezoid.\n   */\n  lowerWidth: number;\n  /**\n   * The overall width of the trapezoid: `Math.max(upperWidth, lowerWidth)`.\n   */\n  width: number;\n  /**\n   * The height of the trapezoid.\n   */\n  height: number;\n};\n\n/**\n * @inline\n */\nexport type ViewBox = CartesianViewBoxRequired | PolarViewBoxRequired;\n\ntype RecordString<T> = Record<string, T>;\n\ntype AdaptEventHandlersReturn = RecordString<(e?: Event) => any> | RecordString<(e: Event) => void> | null;\n\nexport const adaptEventHandlers = (\n  props: RecordString<any> | Component | FunctionComponent | boolean,\n  newHandler?: (e?: Event) => any,\n): AdaptEventHandlersReturn => {\n  if (!props || typeof props === 'function' || typeof props === 'boolean') {\n    return null;\n  }\n\n  let inputProps = props as RecordString<any>;\n\n  if (isValidElement(props)) {\n    inputProps = props.props as RecordString<any>;\n  }\n\n  if (typeof inputProps !== 'object' && typeof inputProps !== 'function') {\n    return null;\n  }\n\n  const out: RecordString<(e: Event) => void> = {};\n\n  Object.keys(inputProps).forEach(key => {\n    if (isEventKey(key)) {\n      out[key] = newHandler || ((e: Event) => inputProps[key](inputProps, e));\n    }\n  });\n\n  return out;\n};\n\nconst getEventHandlerOfChild =\n  (originalHandler: (data: any, index: number, e: Event) => void, data: any, index: number) =>\n  (e: Event): null => {\n    originalHandler(data, index, e);\n\n    return null;\n  };\n\nexport const adaptEventsOfChild = (\n  props: RecordString<any>,\n  data: any,\n  index: number,\n): RecordString<(e?: Event) => any> | null => {\n  if (props === null || (typeof props !== 'object' && typeof props !== 'function')) {\n    return null;\n  }\n\n  let out: RecordString<(e: Event) => void> | null = null;\n\n  Object.keys(props).forEach((key: string) => {\n    const item = (props as any)[key];\n\n    if (isEventKey(key) && typeof item === 'function') {\n      if (!out) out = {};\n\n      out[key] = getEventHandlerOfChild(item, data, index);\n    }\n  });\n\n  return out;\n};\n\n/**\n * 'axis' means that all graphical items belonging to this axis tick will be highlighted,\n * and all will be present in the tooltip.\n * Tooltip with 'axis' will display when hovering on the chart background.\n *\n * 'item' means only the one graphical item being hovered will show in the tooltip.\n * Tooltip with 'item' will display when hovering over individual graphical items.\n *\n * This is calculated internally;\n * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.\n *\n * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,\n * and charts will then see what is allowed and what is not.\n */\nexport type TooltipEventType = 'axis' | 'item';\n\nexport interface SankeyNode {\n  // node attributes\n  dx: number;\n  dy: number;\n  name: string;\n  value: any;\n  x: number;\n  y: number;\n  // tree attributes\n  depth: number;\n  targetNodes: number[];\n  targetLinks: number[];\n  sourceNodes: number[];\n  sourceLinks: number[];\n}\n\nexport interface SankeyLink {\n  target: number;\n  source: number;\n  value: number;\n  sy: number;\n  dy: number;\n  ty: number;\n}\n\nexport type Size = { width: number; height: number };\n\n/**\n * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component\n */\nexport type ActiveDotProps = DotProps & {\n  payload: any;\n  index: number;\n  dataKey: DataKey<any> | undefined;\n  cx: number | undefined;\n  cy: number | undefined;\n  r: number | string | undefined;\n  fill: string;\n  strokeWidth: number;\n  stroke: string;\n  value: any;\n};\n\n/**\n * This is the type of `activeDot` prop on:\n * - Area\n * - Line\n * - Radar\n *\n * @inline\n */\nexport type ActiveDotType =\n  /**\n   * true | false will turn the default activeDot on and off, respectively\n   */\n  | boolean\n  /**\n   * activeDot can be a custom React Component.\n   * It should return an SVG element because we are in SVG context - HTML won't work here.\n   * Unfortunately, if you write a regular old functional component and have it return SVG element,\n   * its default, inferred return type is `JSX.Element` and so if this return type was `SVGElement`\n   * then it would look like a type error (even when doing the right thing).\n   * So instead here we have ReactNode return type which is invalid in runtime\n   * (remember, we are in SVG context so HTML elements won't work, we need SVGElement).\n   * But better than forcing everyone to re-type their components I guess.\n   */\n  | ((props: ActiveDotProps) => ReactNode)\n  /**\n   * activeDot can be an object; props from here will be appended to the default active dot\n   */\n  | Partial<ActiveDotProps>\n  /**\n   * activeDot can be an element; it will get cloned and will receive new extra props.\n   * I do not recommend this way! Use React component instead, that way you get more predictable props.\n   */\n  | ReactElement<SVGProps<SVGElement>>;\n\n/**\n * Inside the dot event handlers we provide extra information about the dot point\n * that the Dot component itself does not need but users might find useful.\n */\nexport type DotItemDotProps = SVGPropsNoEvents<Omit<DotProps, 'points' | 'ref'>> & {\n  points: ReadonlyArray<DotPoint>;\n  index: number;\n  payload: any;\n  dataKey: DataKey<any> | undefined;\n  value: any;\n};\n\n/**\n * This is the type of `dot` prop on:\n * - Area\n * - Line\n * - Radar\n *\n * @inline\n */\nexport type DotType =\n  /**\n   * true | false will turn the default dot on and off, respectively\n   */\n  | boolean\n  /**\n   * dot can be a custom React Component.\n   * It should return an SVG element because we are in SVG context - HTML won't work here.\n   * Unfortunately, if you write a regular old functional component and have it return SVG element,\n   * its default, inferred return type is `JSX.Element` and so if this return type was `SVGElement`\n   * then it would look like a type error (even when doing the right thing).\n   * So instead here we have ReactNode return type which is invalid in runtime\n   * (remember, we are in SVG context so HTML elements won't work, we need SVGElement).\n   * But better than forcing everyone to re-type their components I guess.\n   *\n   * Not that when a function, or a component is used, the props received are {@link DotItemDotProps}\n   * which contain some extra information compared to {@link DotProps}.\n   */\n  | ((props: DotItemDotProps) => ReactNode)\n  /**\n   * dot can be an object; props from here will be appended to the default dot\n   */\n  | Partial<DotProps>\n  /**\n   * dot can be an element; it will get cloned and will receive new extra props.\n   * I do not recommend this way! Use React component instead, that way you get more predictable props.\n   */\n  | ReactElement<SVGProps<SVGElement>>;\n\nexport type ActiveShape<PropsType = Record<string, any>, ElementType = SVGElement> =\n  | ReactElement<SVGProps<ElementType>>\n  | ((props: PropsType) => ReactElement | null | undefined)\n  | SVGProps<ElementType>\n  | boolean;\n\nexport type RangeObj = PolarViewBoxRequired & {\n  angle: number;\n  radius: number;\n};\n\n/**\n * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.\n *\n * This is meant to represent the React.MouseEvent\n * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent\n */\nexport interface MousePointer {\n  clientX: number;\n  clientY: number;\n  currentTarget: Pick<HTMLElement, 'getBoundingClientRect' | 'offsetWidth' | 'offsetHeight'>;\n}\n\n/**\n * Coordinates relative to the top-left corner of the chart.\n * Also include scale which means that a chart that's scaled will return the same coordinates as a chart that's not scaled.\n */\nexport interface ChartPointer {\n  chartX: number;\n  chartY: number;\n}\n\nexport interface DataProvider {\n  /**\n   * The source data. Each element should be an object.\n   * The properties of each object represent the values of different data dimensions.\n   *\n   * Use the `dataKey` prop to specify which properties to use.\n   *\n   * @example data={[{ name: 'a', value: 12 }]}\n   * @example data={[{ label: 'foo', measurements: [5, 12] }]}\n   */\n  data?: ChartData;\n}\n\n/**\n * Props shared with all charts.\n */\ninterface BaseChartProps extends DataProvider, ExternalMouseEvents {\n  /**\n   * The width of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  width?: number | Percent;\n  /**\n   * The height of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  height?: number | Percent;\n  id?: string;\n  children?: ReactNode;\n  className?: string;\n  /**\n   * Turn on accessibility support for keyboard-only and screen reader users.\n   *\n   * @defaultValue true\n   */\n  accessibilityLayer?: boolean;\n  desc?: string;\n  /**\n   * Empty space around the container.\n   *\n   * @defaultValue {\"top\":5,\"right\":5,\"bottom\":5,\"left\":5}\n   */\n  margin?: Partial<Margin>;\n  style?: CSSProperties;\n  /**\n   * Charts with the same syncId will synchronize Tooltip and Brush events.\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/SynchronizedAreaChart/ Synchronized Charts Example}\n   */\n  syncId?: number | string;\n  /**\n   * Customize how the charts will synchronize tooltips and brushes.\n   * `index`: synchronize using the data index in the data array. Index expects that all data has the same length.\n   * `value`: synchronize using the data value on categorical axis (categorical: XAxis in horizontal layout, YAxis in vertical layout).\n   * function: a custom sync method which receives tick and data as argument and returns an index.\n   *\n   * @defaultValue index\n   */\n  syncMethod?: SyncMethod;\n  /**\n   * If and where the chart should appear in the tab order\n   */\n  tabIndex?: number;\n  /**\n   * If true, then it will listen to container size changes and adapt the SVG chart accordingly.\n   * If false, then it renders the chart at the specified width and height and will stay that way\n   * even if the container size changes.\n   *\n   * This is similar to ResponsiveContainer but without the need for an extra wrapper component.\n   * The `responsive` prop also uses standard CSS sizing rules, instead of custom resolution logic (like ResponsiveContainer does).\n   * @default false\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  responsive?: boolean;\n}\n\nexport interface CartesianChartProps extends BaseChartProps {\n  /**\n   * The gap between two bar categories, which can be a percent value or a fixed value.\n   *\n   * @defaultValue 10%\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/barAlignment/ Bar Alignment Guide}\n   */\n  barCategoryGap?: number | string;\n  /**\n   * The gap between two bars in the same category.\n   *\n   * @defaultValue 4\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/barAlignment/ Bar Alignment Guide}\n   */\n  barGap?: number | string;\n  /**\n   * The width or height of each bar. If the barSize is not specified, the size of the\n   * bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.\n   */\n  barSize?: number | string;\n  /**\n   * The base value of area.\n   */\n  baseValue?: BaseValue;\n  compact?: boolean;\n  dataKey?: DataKey<any>;\n  /**\n   * The layout of chart defines the orientation of axes, graphical items, and tooltip.\n   *\n   * @defaultValue horizontal\n   */\n  layout?: CartesianLayout;\n  /**\n   * The maximum width of all the bars in a horizontal BarChart, or maximum height in a vertical BarChart.\n   */\n  maxBarSize?: number;\n  /**\n   * If `false`, stacked items will be rendered left to right.\n   * If `true`, stacked items will be rendered right to left.\n   *\n   * Render direction affects SVG layering, not x position.\n   *\n   * @defaultValue false\n   */\n  reverseStackOrder?: boolean;\n  /**\n   * The ARIA role for the chart, which provides semantic information for screen reader users.\n   */\n  role?: string;\n  /**\n   * The type of offset function used to generate the lower and upper values in the series array.\n   * The types are built-in offsets in d3-shape.\n   * Only applicable for stacked Area or Bar charts.\n   * Has no effect when the stackId prop is not set on Area or Bar components.\n   *\n   * @link https://d3js.org/d3-shape/stack#stack_offset\n   * @see {@link https://recharts.github.io/en-US/examples/BarChartStackedBySign/ Chart with stackOffset=sign example}\n   *\n   * @defaultValue none\n   */\n  stackOffset?: StackOffsetType;\n  throttleDelay?: number;\n  title?: string;\n}\n\nexport interface PolarChartProps extends BaseChartProps {\n  /**\n   * The gap between two bar categories, which can be a percent value or a fixed value.\n   *\n   * @defaultValue 10%\n   */\n  barCategoryGap?: number | string;\n  /**\n   * The gap between two bars in the same category.\n   *\n   * @defaultValue 4\n   */\n  barGap?: number | string;\n  /**\n   * The width or height of each bar. If the barSize is not specified, the size of the\n   * bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.\n   */\n  barSize?: number | string;\n  /**\n   * The x-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of width.\n   * @defaultValue 50%\n   */\n  cx?: number | string;\n  /**\n   * The y-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of height.\n   * @defaultValue 50%\n   */\n  cy?: number | string;\n  dataKey?: DataKey<any>;\n  /**\n   * Angle, in degrees, at which the chart should end.\n   */\n  endAngle?: number;\n  /**\n   * The inner radius of the chart.\n   * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.\n   * @defaultValue 0\n   */\n  innerRadius?: number | string;\n  /**\n   * The layout of chart defines the orientation of axes, graphical items, and tooltip.\n   */\n  layout?: PolarLayout;\n  maxBarSize?: number;\n  /**\n   * The outer radius of the chart.\n   * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.\n   * @defaultValue 80%\n   */\n  outerRadius?: number | string;\n  reverseStackOrder?: boolean;\n  role?: string;\n  stackOffset?: StackOffsetType;\n  /**\n   * Angle in degrees from which the chart should start.\n   */\n  startAngle?: number;\n  throttleDelay?: number;\n  title?: string;\n}\n\nexport type Percent = `${number}%`;\n\nexport type NonEmptyArray<T> = readonly [T, ...T[]];\n\nexport const isNonEmptyArray = <T>(arr: ReadonlyArray<T> | null | undefined): arr is NonEmptyArray<T> => {\n  return Array.isArray(arr) && arr.length > 0;\n};\n","/**\n * This function mimics the behavior of the `defaultProps` static property in React.\n * Functional components do not have a defaultProps property, so this function is useful to resolve default props.\n *\n * The common recommendation is to use ES6 destructuring with default values in the function signature,\n * but you need to be careful there and make sure you destructure all the individual properties\n * and not the whole object. See the test file for example.\n *\n * And because destructuring all properties one by one is a faff, and it's easy to miss one property,\n * this function exists.\n *\n * @param realProps - the props object passed to the component by the user\n * @param defaultProps - the default props object defined in the component by Recharts\n * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.\n */\nexport function resolveDefaultProps<T, D extends Partial<T>>(\n  realProps: T,\n  defaultProps: D & DisallowExtraKeys<T, D>,\n): RequiresDefaultProps<T, D> {\n  /*\n   * To avoid mutating the original `realProps` object passed to the function, create a shallow copy of it.\n   * `resolvedProps` will be modified directly with the defaults.\n   */\n  const resolvedProps: T = { ...realProps };\n  /*\n   * Since the function guarantees `D extends Partial<T>`, this assignment is safe.\n   * It allows TypeScript to work with the well-defined `Partial<T>` type inside the loop,\n   * making subsequent type inference (especially for `dp[key]`) much more straightforward for the compiler.\n   * This is a key step to improve type safety *without* value assertions later.\n   */\n  const dp: Partial<T> = defaultProps;\n  /*\n   * `Object.keys` doesn't preserve strong key types - it always returns Array<string>.\n   * However, due to the `D extends Partial<T>` constraint,\n   * we know these keys *must* also be valid keys of `T`.\n   * This assertion informs TypeScript of this relationship, avoiding type errors when using `key` to index `acc` (type T).\n   *\n   * Type assertions are not sound but in this case it's necessary\n   * as `Object.keys` does not do what we want it to do.\n   */\n  const keys = Object.keys(defaultProps) as Array<keyof T>;\n  const withDefaults: T = keys.reduce((acc: T, key: keyof T): T => {\n    if (acc[key] === undefined && dp[key] !== undefined) {\n      acc[key] = dp[key];\n    }\n    return acc;\n  }, resolvedProps);\n  /*\n   * And again type assertions are not safe but here we have done the runtime work\n   * so let's bypass the lack of static type safety and tell the compiler what happened.\n   */\n  return withDefaults as RequiresDefaultProps<T, D>;\n}\n\n/**\n * Helper type to extract the keys of T that are required.\n * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},\n * it means K is required, so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\nexport type RequiredKeys<T> = {\n  [K in keyof T]-?: object extends Pick<T, K> ? never : K;\n}[keyof T];\n\n/**\n * Helper type to extract the keys of T that are optional.\n * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},\n * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\nexport type OptionalKeys<T> = {\n  [K in keyof T]-?: object extends Pick<T, K> ? K : never;\n}[keyof T];\n\n/**\n * Helper type to ensure keys of D exist in T.\n * For each key K in D, if K is also a key of T, keep the type D[K].\n * If K is NOT a key of T, map it to type `never`.\n * An object cannot have a property of type `never`, effectively disallowing extra keys.\n */\nexport type DisallowExtraKeys<T, D> = { [K in keyof D]: K extends keyof T ? D[K] : never };\n\n/**\n * This type will take a source type `Props` and a default type `Defaults` and will return a new type\n * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.\n * Properties that are required in `Props` and optional in `Defaults` will remain required.\n * Properties that are optional in both `Props` and `Defaults` will remain optional.\n *\n * This is useful for creating a type that represents the resolved props of a component with default props.\n */\nexport type RequiresDefaultProps<Props, Defaults extends Partial<Props>> =\n  // Section 1: Properties that were already required in T.\n  // We use Pick<T, RequiredKeys<T>> to select only the keys that were originally\n  // required in T. Pick preserves their required status and original types.\n  Pick<Props, RequiredKeys<Props>> &\n    // Section 2: Properties that were optional in T BUT have a default specified in D.\n    // These properties should become required in the resulting type.\n    // - OptionalKeys<T>: Gets the union of keys that are optional in T.\n    // - RequiredKeys<D>: Gets the keys that are required in the default props D.\n    // - Extract<..., ...>: Finds the intersection of these two sets – the keys that are optional in T AND required in D.\n    // - Pick<T, Extract<...>>: Selects these specific properties from T. At this stage, they still retain their original optional ('?') status from T.\n    // - Required<...>: Wraps the picked properties, removing the '?' modifier and making them required. Their underlying type (e.g., `string | undefined`) remains unchanged.\n    Required<Pick<Props, Extract<OptionalKeys<Props>, RequiredKeys<Defaults>>>> &\n    // Section 3: Properties that were optional in T AND do NOT have a default in D.\n    // These properties should remain optional.\n    // - Exclude<OptionalKeys<T>, keyof D>: Finds the keys that are optional in T but are NOT present in D.\n    // - Pick<T, Exclude<...>>: Selects these properties from T. Pick preserves their original optional status and types.\n    Pick<Props, Exclude<OptionalKeys<Props>, keyof Defaults>>;\n","import * as React from 'react';\nimport { ReactNode, MouseEvent, ReactElement } from 'react';\n\nimport { clsx } from 'clsx';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport {\n  DataKey,\n  LegendType,\n  adaptEventsOfChild,\n  PresentationAttributesAdaptChildEvent,\n  CartesianLayout,\n} from '../util/types';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\n\nconst SIZE = 32;\nexport type ContentType = ReactElement | ((props: Props) => ReactNode);\n\nexport type HorizontalAlignmentType = 'center' | 'left' | 'right';\nexport type VerticalAlignmentType = 'top' | 'bottom' | 'middle';\nexport type Formatter = (value: any, entry: LegendPayload, index: number) => ReactNode;\n\nexport interface LegendPayload {\n  /**\n   * This is the text that will be displayed in the legend in the DOM.\n   * If undefined, the text will not be displayed, so the icon will be rendered without text.\n   */\n  value: string | undefined;\n  type?: LegendType;\n  color?: string;\n  payload?: {\n    strokeDasharray?: number | string;\n    value?: any;\n  };\n  formatter?: Formatter;\n  inactive?: boolean;\n  legendIcon?: ReactElement<SVGElement>;\n  dataKey?: DataKey<any>;\n}\n\ninterface DefaultLegendContentProps {\n  /**\n   * The size of icon in each legend item.\n   * @defaultValue 14\n   */\n  iconSize?: number;\n  /**\n   * The type of icon in each legend item.\n   */\n  iconType?: LegendType;\n  /**\n   * The layout of legend items inside the legend container.\n   * @defaultValue horizontal\n   */\n  layout?: CartesianLayout;\n  /**\n   * Horizontal alignment of the whole Legend container:\n   *\n   * - `left`: shows the Legend to the left of the chart, and chart width reduces automatically to make space for it.\n   * - `right` shows the Legend to the right of the chart, and chart width reduces automatically.\n   * - `center` shows the Legend in the middle of chart, and chart width remains unchanged.\n   *\n   * The exact behavior changes depending on 'verticalAlign' prop.\n   *\n   * @defaultValue center\n   */\n  align?: HorizontalAlignmentType;\n  /**\n   * Vertical alignment of the whole Legend container:\n   *\n   * - `bottom`: shows the Legend below chart, and chart height reduces automatically to make space for it.\n   * - `top`: shows the Legend above chart, and chart height reduces automatically.\n   * - `middle`:  shows the Legend in the middle of chart, covering other content, and chart height remains unchanged.\n   * The exact behavior changes depending on `align` prop.\n   *\n   * @defaultValue middle\n   */\n  verticalAlign?: VerticalAlignmentType;\n  /**\n   * The color of the icon when the item is inactive.\n   * @defaultValue #ccc\n   */\n  inactiveColor?: string;\n  /**\n   * Function to customize how content is serialized before rendering.\n   *\n   * This should return HTML elements, or strings.\n   *\n   * @example (value, entry, index) => <span style={{ color: 'red' }}>{value}</span>\n   * @example https://codesandbox.io/s/legend-formatter-rmzp9\n   */\n  formatter?: Formatter;\n  /**\n   * The customized event handler of mouseenter on the items in this group\n   * @example https://recharts.github.io/examples/LegendEffectOpacity\n   */\n  onMouseEnter?: (data: LegendPayload, index: number, event: MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the items in this group\n   * @example https://recharts.github.io/examples/LegendEffectOpacity\n   */\n  onMouseLeave?: (data: LegendPayload, index: number, event: MouseEvent) => void;\n  /**\n   * The customized event handler of click on the items in this group\n   */\n  onClick?: (data: LegendPayload, index: number, event: MouseEvent) => void;\n  /**\n   * DefaultLegendContent.payload is omitted from Legend props.\n   * A custom payload can be passed here if desired, or it can be passed from the Legend \"content\" callback.\n   */\n  payload?: ReadonlyArray<LegendPayload>;\n}\n\nexport type Props = DefaultLegendContentProps &\n  Omit<PresentationAttributesAdaptChildEvent<any, ReactElement>, keyof DefaultLegendContentProps>;\n\nconst defaultLegendContentDefaultProps = {\n  align: 'center',\n  iconSize: 14,\n  inactiveColor: '#ccc',\n  layout: 'horizontal',\n  verticalAlign: 'middle',\n} as const satisfies Partial<Props>;\n\ntype InternalProps = RequiresDefaultProps<Props, typeof defaultLegendContentDefaultProps> & {\n  payload: ReadonlyArray<LegendPayload>;\n};\n\nfunction Icon({\n  data,\n  iconType,\n  inactiveColor,\n}: {\n  data: LegendPayload;\n  iconType: LegendType | undefined;\n  inactiveColor: string;\n}) {\n  const halfSize = SIZE / 2;\n  const sixthSize = SIZE / 6;\n  const thirdSize = SIZE / 3;\n  const color = data.inactive ? inactiveColor : data.color;\n  const preferredIcon = iconType ?? data.type;\n\n  if (preferredIcon === 'none') {\n    return null;\n  }\n  if (preferredIcon === 'plainline') {\n    return (\n      <line\n        strokeWidth={4}\n        fill=\"none\"\n        stroke={color}\n        strokeDasharray={data.payload?.strokeDasharray}\n        x1={0}\n        y1={halfSize}\n        x2={SIZE}\n        y2={halfSize}\n        className=\"recharts-legend-icon\"\n      />\n    );\n  }\n  if (preferredIcon === 'line') {\n    return (\n      <path\n        strokeWidth={4}\n        fill=\"none\"\n        stroke={color}\n        d={`M0,${halfSize}h${thirdSize}\n            A${sixthSize},${sixthSize},0,1,1,${2 * thirdSize},${halfSize}\n            H${SIZE}M${2 * thirdSize},${halfSize}\n            A${sixthSize},${sixthSize},0,1,1,${thirdSize},${halfSize}`}\n        className=\"recharts-legend-icon\"\n      />\n    );\n  }\n  if (preferredIcon === 'rect') {\n    return (\n      <path\n        stroke=\"none\"\n        fill={color}\n        d={`M0,${SIZE / 8}h${SIZE}v${(SIZE * 3) / 4}h${-SIZE}z`}\n        className=\"recharts-legend-icon\"\n      />\n    );\n  }\n  if (React.isValidElement(data.legendIcon)) {\n    const iconProps: any = { ...data };\n    delete iconProps.legendIcon;\n    return React.cloneElement(data.legendIcon, iconProps);\n  }\n\n  return <Symbols fill={color} cx={halfSize} cy={halfSize} size={SIZE} sizeType=\"diameter\" type={preferredIcon} />;\n}\n\nfunction Items(props: InternalProps) {\n  const { payload, iconSize, layout, formatter, inactiveColor, iconType } = props;\n  const viewBox = { x: 0, y: 0, width: SIZE, height: SIZE };\n  const itemStyle = {\n    display: layout === 'horizontal' ? 'inline-block' : 'block',\n    marginRight: 10,\n  };\n  const svgStyle = { display: 'inline-block', verticalAlign: 'middle', marginRight: 4 };\n  return payload.map((entry: LegendPayload, i: number) => {\n    const finalFormatter = entry.formatter || formatter;\n    const className = clsx({\n      'recharts-legend-item': true,\n      [`legend-item-${i}`]: true,\n      inactive: entry.inactive,\n    });\n\n    if (entry.type === 'none') {\n      return null;\n    }\n\n    const color = entry.inactive ? inactiveColor : entry.color;\n    const finalValue = finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value;\n\n    return (\n      <li className={className} style={itemStyle} key={`legend-item-${i}`} {...adaptEventsOfChild(props, entry, i)}>\n        <Surface\n          width={iconSize}\n          height={iconSize}\n          viewBox={viewBox}\n          style={svgStyle}\n          aria-label={`${finalValue} legend icon`}\n        >\n          <Icon data={entry} iconType={iconType} inactiveColor={inactiveColor} />\n        </Surface>\n        <span className=\"recharts-legend-item-text\" style={{ color }}>\n          {finalValue}\n        </span>\n      </li>\n    );\n  });\n}\n\n/**\n * This component is by default rendered inside the {@link Legend} component. You would not use it directly.\n *\n * You can use this component to customize the content of the legend,\n * or you can provide your own completely independent content.\n */\nexport const DefaultLegendContent = (outsideProps: Props) => {\n  const props = resolveDefaultProps(outsideProps, defaultLegendContentDefaultProps);\n  const { payload, layout, align } = props;\n\n  if (!payload || !payload.length) {\n    return null;\n  }\n\n  const finalStyle = {\n    padding: 0,\n    margin: 0,\n    textAlign: layout === 'horizontal' ? align : 'left',\n  };\n\n  return (\n    <ul className=\"recharts-default-legend\" style={finalStyle}>\n      <Items {...props} payload={payload} />\n    </ul>\n  );\n};\n","import uniqBy from 'es-toolkit/compat/uniqBy';\n\ntype UniqueFunc<T> = (entry: T) => unknown;\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\nexport type UniqueOption<T> = boolean | UniqueFunc<T>;\n\nexport function getUniqPayload<T>(\n  payload: ReadonlyArray<T>,\n  option: UniqueOption<T> | undefined,\n  defaultUniqBy: UniqueFunc<T>,\n): ReadonlyArray<T> {\n  if (option === true) {\n    return uniqBy(payload, defaultUniqBy);\n  }\n\n  if (typeof option === 'function') {\n    return uniqBy(payload, option);\n  }\n\n  return payload;\n}\n","import { createContext } from 'react';\nimport type { Action, Store } from '@reduxjs/toolkit';\nimport type { Subscription } from 'react-redux';\nimport type { CheckFrequency } from 'react-redux/es/hooks/useSelector';\nimport type { RechartsRootState } from './store';\n\n/*\n * This is a copy of the React-Redux context type, but with our own store type.\n * We could import directly from react-redux like this:\n * import { ReactReduxContextValue } from 'react-redux/src/components/Context';\n * but that makes typescript angry with some errors I am not sure how to resolve\n * so copy it is.\n */\nexport type RechartsReduxContextValue = {\n  store: Store<RechartsRootState, Action>;\n  subscription: Subscription;\n  stabilityCheck: CheckFrequency;\n  noopCheck: CheckFrequency;\n};\n\n/**\n * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores\n * in case they decide to install and use Recharts in another Redux app which is likely to happen.\n *\n * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context\n */\nexport const RechartsReduxContext = createContext<RechartsReduxContextValue | null>(null);\n","import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { useContext, useMemo } from 'react';\nimport { type AppDispatch, type RechartsRootState } from './store';\n\nimport { RechartsReduxContext } from './RechartsReduxContext';\n\nconst noopDispatch: AppDispatch = a => a;\n\nexport const useAppDispatch = (): AppDispatch => {\n  const context = useContext(RechartsReduxContext);\n  if (context) {\n    return context.store.dispatch;\n  }\n  return noopDispatch;\n};\n\nconst noop = (): undefined => {};\n\nconst addNestedSubNoop = () => noop;\n\ntype EqualityFn<T> = (a: T, b: T) => boolean;\nconst refEquality: EqualityFn<unknown> = (a, b) => a === b;\n\n/**\n * This is a recharts variant of `useSelector` from 'react-redux' package.\n *\n * The difference is that react-redux version will throw an Error when used outside of Redux context.\n *\n * This, recharts version, will return undefined instead.\n *\n * This is because we want to allow using our components outside the Chart wrapper,\n * and have people provide all props explicitly.\n *\n * If however they use the component inside a chart wrapper then those props become optional,\n * and we read them from Redux state instead.\n *\n * @param selector for pulling things out of Redux store; will not be called if the store is not accessible\n * @return whatever the selector returned; or undefined when outside of Redux store\n */\nexport function useAppSelector<T>(selector: (state: RechartsRootState) => T): T | undefined {\n  const context = useContext(RechartsReduxContext);\n\n  const outOfContextSelector: (state: RechartsRootState | undefined) => T | undefined = useMemo(() => {\n    if (!context) {\n      return noop;\n    }\n    return (state: RechartsRootState | undefined): T | undefined => {\n      if (state == null) {\n        return undefined;\n      }\n      return selector(state);\n    };\n  }, [context, selector]);\n\n  return useSyncExternalStoreWithSelector<RechartsRootState | undefined, T | undefined>(\n    context ? context.subscription.addNestedSub : addNestedSubNoop,\n    context ? context.store.getState : noop,\n    context ? context.store.getState : noop,\n    outOfContextSelector,\n    refEquality,\n  );\n}\n","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n  if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n    let isInputSameAsOutput = false;\n    try {\n      const emptyObject = {};\n      if (resultFunc(emptyObject) === emptyObject)\n        isInputSameAsOutput = true;\n    } catch {\n    }\n    if (isInputSameAsOutput) {\n      let stack = void 0;\n      try {\n        throw new Error();\n      } catch (e) {\n        ;\n        ({ stack } = e);\n      }\n      console.warn(\n        \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n        { stack }\n      );\n    }\n  }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n  const { memoize, memoizeOptions } = options;\n  const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n  const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n  if (!areInputSelectorResultsEqual) {\n    let stack = void 0;\n    try {\n      throw new Error();\n    } catch (e) {\n      ;\n      ({ stack } = e);\n    }\n    console.warn(\n      \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n      {\n        arguments: inputSelectorArgs,\n        firstInputs: inputSelectorResults,\n        secondInputs: inputSelectorResultsCopy,\n        stack\n      }\n    );\n  }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n  inputStabilityCheck: \"once\",\n  identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n  Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n  if (typeof func !== \"function\") {\n    throw new TypeError(errorMessage);\n  }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n  if (typeof object !== \"object\") {\n    throw new TypeError(errorMessage);\n  }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n  if (!array.every((item) => typeof item === \"function\")) {\n    const itemTypes = array.map(\n      (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n    ).join(\", \");\n    throw new TypeError(`${errorMessage}[${itemTypes}]`);\n  }\n}\nvar ensureIsArray = (item) => {\n  return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n  const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n  assertIsArrayOfFunctions(\n    dependencies,\n    `createSelector expects all input-selectors to be functions, but received the following types: `\n  );\n  return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n  const inputSelectorResults = [];\n  const { length } = dependencies;\n  for (let i = 0; i < length; i++) {\n    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n  }\n  return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n  const { identityFunctionCheck, inputStabilityCheck } = {\n    ...globalDevModeChecks,\n    ...devModeChecks\n  };\n  return {\n    identityFunctionCheck: {\n      shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n      run: runIdentityFunctionCheck\n    },\n    inputStabilityCheck: {\n      shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n      run: runInputStabilityCheck\n    }\n  };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n  revision = $REVISION;\n  _value;\n  _lastValue;\n  _isEqual = tripleEq;\n  constructor(initialValue, isEqual = tripleEq) {\n    this._value = this._lastValue = initialValue;\n    this._isEqual = isEqual;\n  }\n  // Whenever a storage value is read, it'll add itself to the current tracker if\n  // one exists, entangling its state with that cache.\n  get value() {\n    CURRENT_TRACKER?.add(this);\n    return this._value;\n  }\n  // Whenever a storage value is updated, we bump the global revision clock,\n  // assign the revision for this storage to the new value, _and_ we schedule a\n  // rerender. This is important, and it's what makes autotracking  _pull_\n  // based. We don't actively tell the caches which depend on the storage that\n  // anything has happened. Instead, we recompute the caches when needed.\n  set value(newValue) {\n    if (this.value === newValue)\n      return;\n    this._value = newValue;\n    this.revision = ++$REVISION;\n  }\n};\nfunction tripleEq(a, b) {\n  return a === b;\n}\nvar TrackingCache = class {\n  _cachedValue;\n  _cachedRevision = -1;\n  _deps = [];\n  hits = 0;\n  fn;\n  constructor(fn) {\n    this.fn = fn;\n  }\n  clear() {\n    this._cachedValue = void 0;\n    this._cachedRevision = -1;\n    this._deps = [];\n    this.hits = 0;\n  }\n  get value() {\n    if (this.revision > this._cachedRevision) {\n      const { fn } = this;\n      const currentTracker = /* @__PURE__ */ new Set();\n      const prevTracker = CURRENT_TRACKER;\n      CURRENT_TRACKER = currentTracker;\n      this._cachedValue = fn();\n      CURRENT_TRACKER = prevTracker;\n      this.hits++;\n      this._deps = Array.from(currentTracker);\n      this._cachedRevision = this.revision;\n    }\n    CURRENT_TRACKER?.add(this);\n    return this._cachedValue;\n  }\n  get revision() {\n    return Math.max(...this._deps.map((d) => d.revision), 0);\n  }\n};\nfunction getValue(cell) {\n  if (!(cell instanceof Cell)) {\n    console.warn(\"Not a valid cell! \", cell);\n  }\n  return cell.value;\n}\nfunction setValue(storage, value) {\n  if (!(storage instanceof Cell)) {\n    throw new TypeError(\n      \"setValue must be passed a tracked store created with `createStorage`.\"\n    );\n  }\n  storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n  return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n  assertIsFunction(\n    fn,\n    \"the first parameter to `createCache` must be a function\"\n  );\n  return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n  return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n  setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n  let tag = node.collectionTag;\n  if (tag === null) {\n    tag = node.collectionTag = createTag();\n  }\n  getValue(tag);\n};\nvar dirtyCollection = (node) => {\n  const tag = node.collectionTag;\n  if (tag !== null) {\n    dirtyTag(tag, null);\n  }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n  constructor(value) {\n    this.value = value;\n    this.value = value;\n    this.tag.value = value;\n  }\n  proxy = new Proxy(this, objectProxyHandler);\n  tag = createTag();\n  tags = {};\n  children = {};\n  collectionTag = null;\n  id = nextId++;\n};\nvar objectProxyHandler = {\n  get(node, key) {\n    function calculateResult() {\n      const { value } = node;\n      const childValue = Reflect.get(value, key);\n      if (typeof key === \"symbol\") {\n        return childValue;\n      }\n      if (key in proto) {\n        return childValue;\n      }\n      if (typeof childValue === \"object\" && childValue !== null) {\n        let childNode = node.children[key];\n        if (childNode === void 0) {\n          childNode = node.children[key] = createNode(childValue);\n        }\n        if (childNode.tag) {\n          getValue(childNode.tag);\n        }\n        return childNode.proxy;\n      } else {\n        let tag = node.tags[key];\n        if (tag === void 0) {\n          tag = node.tags[key] = createTag();\n          tag.value = childValue;\n        }\n        getValue(tag);\n        return childValue;\n      }\n    }\n    const res = calculateResult();\n    return res;\n  },\n  ownKeys(node) {\n    consumeCollection(node);\n    return Reflect.ownKeys(node.value);\n  },\n  getOwnPropertyDescriptor(node, prop) {\n    return Reflect.getOwnPropertyDescriptor(node.value, prop);\n  },\n  has(node, prop) {\n    return Reflect.has(node.value, prop);\n  }\n};\nvar ArrayTreeNode = class {\n  constructor(value) {\n    this.value = value;\n    this.value = value;\n    this.tag.value = value;\n  }\n  proxy = new Proxy([this], arrayProxyHandler);\n  tag = createTag();\n  tags = {};\n  children = {};\n  collectionTag = null;\n  id = nextId++;\n};\nvar arrayProxyHandler = {\n  get([node], key) {\n    if (key === \"length\") {\n      consumeCollection(node);\n    }\n    return objectProxyHandler.get(node, key);\n  },\n  ownKeys([node]) {\n    return objectProxyHandler.ownKeys(node);\n  },\n  getOwnPropertyDescriptor([node], prop) {\n    return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n  },\n  has([node], prop) {\n    return objectProxyHandler.has(node, prop);\n  }\n};\nfunction createNode(value) {\n  if (Array.isArray(value)) {\n    return new ArrayTreeNode(value);\n  }\n  return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n  const { value, tags, children } = node;\n  node.value = newValue;\n  if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n    dirtyCollection(node);\n  } else {\n    if (value !== newValue) {\n      let oldKeysSize = 0;\n      let newKeysSize = 0;\n      let anyKeysAdded = false;\n      for (const _key in value) {\n        oldKeysSize++;\n      }\n      for (const key in newValue) {\n        newKeysSize++;\n        if (!(key in value)) {\n          anyKeysAdded = true;\n          break;\n        }\n      }\n      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n      if (isDifferent) {\n        dirtyCollection(node);\n      }\n    }\n  }\n  for (const key in tags) {\n    const childValue = value[key];\n    const newChildValue = newValue[key];\n    if (childValue !== newChildValue) {\n      dirtyCollection(node);\n      dirtyTag(tags[key], newChildValue);\n    }\n    if (typeof newChildValue === \"object\" && newChildValue !== null) {\n      delete tags[key];\n    }\n  }\n  for (const key in children) {\n    const childNode = children[key];\n    const newChildValue = newValue[key];\n    const childValue = childNode.value;\n    if (childValue === newChildValue) {\n      continue;\n    } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n      updateNode(childNode, newChildValue);\n    } else {\n      deleteNode(childNode);\n      delete children[key];\n    }\n  }\n}\nfunction deleteNode(node) {\n  if (node.tag) {\n    dirtyTag(node.tag, null);\n  }\n  dirtyCollection(node);\n  for (const key in node.tags) {\n    dirtyTag(node.tags[key], null);\n  }\n  for (const key in node.children) {\n    deleteNode(node.children[key]);\n  }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n  let entry;\n  return {\n    get(key) {\n      if (entry && equals(entry.key, key)) {\n        return entry.value;\n      }\n      return NOT_FOUND;\n    },\n    put(key, value) {\n      entry = { key, value };\n    },\n    getEntries() {\n      return entry ? [entry] : [];\n    },\n    clear() {\n      entry = void 0;\n    }\n  };\n}\nfunction createLruCache(maxSize, equals) {\n  let entries = [];\n  function get(key) {\n    const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n    if (cacheIndex > -1) {\n      const entry = entries[cacheIndex];\n      if (cacheIndex > 0) {\n        entries.splice(cacheIndex, 1);\n        entries.unshift(entry);\n      }\n      return entry.value;\n    }\n    return NOT_FOUND;\n  }\n  function put(key, value) {\n    if (get(key) === NOT_FOUND) {\n      entries.unshift({ key, value });\n      if (entries.length > maxSize) {\n        entries.pop();\n      }\n    }\n  }\n  function getEntries() {\n    return entries;\n  }\n  function clear() {\n    entries = [];\n  }\n  return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n  return function areArgumentsShallowlyEqual(prev, next) {\n    if (prev === null || next === null || prev.length !== next.length) {\n      return false;\n    }\n    const { length } = prev;\n    for (let i = 0; i < length; i++) {\n      if (!equalityCheck(prev[i], next[i])) {\n        return false;\n      }\n    }\n    return true;\n  };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n  const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n  const {\n    equalityCheck = referenceEqualityCheck,\n    maxSize = 1,\n    resultEqualityCheck\n  } = providedOptions;\n  const comparator = createCacheKeyComparator(equalityCheck);\n  let resultsCount = 0;\n  const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n  function memoized() {\n    let value = cache.get(arguments);\n    if (value === NOT_FOUND) {\n      value = func.apply(null, arguments);\n      resultsCount++;\n      if (resultEqualityCheck) {\n        const entries = cache.getEntries();\n        const matchingEntry = entries.find(\n          (entry) => resultEqualityCheck(entry.value, value)\n        );\n        if (matchingEntry) {\n          value = matchingEntry.value;\n          resultsCount !== 0 && resultsCount--;\n        }\n      }\n      cache.put(arguments, value);\n    }\n    return value;\n  }\n  memoized.clearCache = () => {\n    cache.clear();\n    memoized.resetResultsCount();\n  };\n  memoized.resultsCount = () => resultsCount;\n  memoized.resetResultsCount = () => {\n    resultsCount = 0;\n  };\n  return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n  const node = createNode(\n    []\n  );\n  let lastArgs = null;\n  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n  const cache = createCache(() => {\n    const res = func.apply(null, node.proxy);\n    return res;\n  });\n  function memoized() {\n    if (!shallowEqual(lastArgs, arguments)) {\n      updateNode(node, arguments);\n      lastArgs = arguments;\n    }\n    return cache.value;\n  }\n  memoized.clearCache = () => {\n    return cache.clear();\n  };\n  return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n  constructor(value) {\n    this.value = value;\n  }\n  deref() {\n    return this.value;\n  }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n  return {\n    s: UNTERMINATED,\n    v: void 0,\n    o: null,\n    p: null\n  };\n}\nfunction weakMapMemoize(func, options = {}) {\n  let fnNode = createCacheNode();\n  const { resultEqualityCheck } = options;\n  let lastResult;\n  let resultsCount = 0;\n  function memoized() {\n    let cacheNode = fnNode;\n    const { length } = arguments;\n    for (let i = 0, l = length; i < l; i++) {\n      const arg = arguments[i];\n      if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n        let objectCache = cacheNode.o;\n        if (objectCache === null) {\n          cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n        }\n        const objectNode = objectCache.get(arg);\n        if (objectNode === void 0) {\n          cacheNode = createCacheNode();\n          objectCache.set(arg, cacheNode);\n        } else {\n          cacheNode = objectNode;\n        }\n      } else {\n        let primitiveCache = cacheNode.p;\n        if (primitiveCache === null) {\n          cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n        }\n        const primitiveNode = primitiveCache.get(arg);\n        if (primitiveNode === void 0) {\n          cacheNode = createCacheNode();\n          primitiveCache.set(arg, cacheNode);\n        } else {\n          cacheNode = primitiveNode;\n        }\n      }\n    }\n    const terminatedNode = cacheNode;\n    let result;\n    if (cacheNode.s === TERMINATED) {\n      result = cacheNode.v;\n    } else {\n      result = func.apply(null, arguments);\n      resultsCount++;\n      if (resultEqualityCheck) {\n        const lastResultValue = lastResult?.deref?.() ?? lastResult;\n        if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n          result = lastResultValue;\n          resultsCount !== 0 && resultsCount--;\n        }\n        const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n        lastResult = needsWeakRef ? new Ref(result) : result;\n      }\n    }\n    terminatedNode.s = TERMINATED;\n    terminatedNode.v = result;\n    return result;\n  }\n  memoized.clearCache = () => {\n    fnNode = createCacheNode();\n    memoized.resetResultsCount();\n  };\n  memoized.resultsCount = () => resultsCount;\n  memoized.resetResultsCount = () => {\n    resultsCount = 0;\n  };\n  return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n  const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n    memoize: memoizeOrOptions,\n    memoizeOptions: memoizeOptionsFromArgs\n  } : memoizeOrOptions;\n  const createSelector2 = (...createSelectorArgs) => {\n    let recomputations = 0;\n    let dependencyRecomputations = 0;\n    let lastResult;\n    let directlyPassedOptions = {};\n    let resultFunc = createSelectorArgs.pop();\n    if (typeof resultFunc === \"object\") {\n      directlyPassedOptions = resultFunc;\n      resultFunc = createSelectorArgs.pop();\n    }\n    assertIsFunction(\n      resultFunc,\n      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n    );\n    const combinedOptions = {\n      ...createSelectorCreatorOptions,\n      ...directlyPassedOptions\n    };\n    const {\n      memoize,\n      memoizeOptions = [],\n      argsMemoize = weakMapMemoize,\n      argsMemoizeOptions = [],\n      devModeChecks = {}\n    } = combinedOptions;\n    const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n    const dependencies = getDependencies(createSelectorArgs);\n    const memoizedResultFunc = memoize(function recomputationWrapper() {\n      recomputations++;\n      return resultFunc.apply(\n        null,\n        arguments\n      );\n    }, ...finalMemoizeOptions);\n    let firstRun = true;\n    const selector = argsMemoize(function dependenciesChecker() {\n      dependencyRecomputations++;\n      const inputSelectorResults = collectInputSelectorResults(\n        dependencies,\n        arguments\n      );\n      lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n      if (process.env.NODE_ENV !== \"production\") {\n        const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n        if (identityFunctionCheck.shouldRun) {\n          identityFunctionCheck.run(\n            resultFunc,\n            inputSelectorResults,\n            lastResult\n          );\n        }\n        if (inputStabilityCheck.shouldRun) {\n          const inputSelectorResultsCopy = collectInputSelectorResults(\n            dependencies,\n            arguments\n          );\n          inputStabilityCheck.run(\n            { inputSelectorResults, inputSelectorResultsCopy },\n            { memoize, memoizeOptions: finalMemoizeOptions },\n            arguments\n          );\n        }\n        if (firstRun)\n          firstRun = false;\n      }\n      return lastResult;\n    }, ...finalArgsMemoizeOptions);\n    return Object.assign(selector, {\n      resultFunc,\n      memoizedResultFunc,\n      dependencies,\n      dependencyRecomputations: () => dependencyRecomputations,\n      resetDependencyRecomputations: () => {\n        dependencyRecomputations = 0;\n      },\n      lastResult: () => lastResult,\n      recomputations: () => recomputations,\n      resetRecomputations: () => {\n        recomputations = 0;\n      },\n      memoize,\n      argsMemoize\n    });\n  };\n  Object.assign(createSelector2, {\n    withTypes: () => createSelector2\n  });\n  return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n  (inputSelectorsObject, selectorCreator = createSelector) => {\n    assertIsObject(\n      inputSelectorsObject,\n      `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n    );\n    const inputSelectorKeys = Object.keys(inputSelectorsObject);\n    const dependencies = inputSelectorKeys.map(\n      (key) => inputSelectorsObject[key]\n    );\n    const structuredSelector = selectorCreator(\n      dependencies,\n      (...inputSelectorResults) => {\n        return inputSelectorResults.reduce((composition, value, index) => {\n          composition[inputSelectorKeys[index]] = value;\n          return composition;\n        }, {});\n      }\n    );\n    return structuredSelector;\n  },\n  { withTypes: () => createStructuredSelector }\n);\nexport {\n  createSelector,\n  createSelectorCreator,\n  createStructuredSelector,\n  lruMemoize,\n  referenceEqualityCheck,\n  setGlobalDevModeChecks,\n  autotrackMemoize as unstable_autotrackMemoize,\n  weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { RechartsRootState } from '../store';\nimport { LegendSettings } from '../legendSlice';\nimport { LegendPayload } from '../../component/DefaultLegendContent';\nimport { Size } from '../../util/types';\n\nexport const selectLegendSettings = (state: RechartsRootState): LegendSettings => state.legend.settings;\n\nexport const selectLegendSize = (state: RechartsRootState): Size => state.legend.size;\n\nconst selectAllLegendPayload2DArray = (state: RechartsRootState): ReadonlyArray<ReadonlyArray<LegendPayload>> =>\n  state.legend.payload;\n\nexport const selectLegendPayload: (state: RechartsRootState) => ReadonlyArray<LegendPayload> = createSelector(\n  [selectAllLegendPayload2DArray, selectLegendSettings],\n  (payloads, { itemSorter }) => {\n    const flat = payloads.flat(1);\n    return itemSorter ? sortBy(flat, itemSorter) : flat;\n  },\n);\n","import { useCallback, useState } from 'react';\n\nconst EPS = 1;\n\n/**\n * TODO this documentation does not reflect what this hook is doing, update it.\n * Stores the `offsetHeight`, `offsetLeft`, `offsetTop`, and `offsetWidth` of a DOM element.\n */\nexport type ElementOffset = {\n  /**\n   * Height of an element, including vertical padding and borders, as an integer.\n   *\n   * Typically, offsetHeight is a measurement in pixels of the element's CSS height, including any borders, padding, and horizontal scrollbars (if rendered). It does not include the height of pseudo-elements such as ::before or ::after\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n   */\n  height: number;\n  /**\n   * Number of pixels that the upper left corner of the current element is offset to the left within the HTMLElement.offsetParent node\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft\n   */\n  left: number;\n  /**\n   * Distance from the outer border of the current element (including its margin) to the top padding edge of the offsetParent, the closest positioned ancestor element.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop\n   */\n  top: number;\n  /**\n   * Layout width of an element as an integer.\n   *\n   * Typically, offsetWidth is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars (if rendered). It does not include the width of pseudo-elements such as ::before or ::after.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth\n   */\n  width: number;\n};\n\nexport type SetElementOffset = (node: HTMLElement | null) => void;\n\n/**\n * Use this to listen to element layout changes.\n *\n * Very useful for reading actual sizes of DOM elements relative to the viewport.\n *\n * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.\n * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`\n */\nexport function useElementOffset(extraDependencies: ReadonlyArray<unknown> = []): [ElementOffset, SetElementOffset] {\n  const [lastBoundingBox, setLastBoundingBox] = useState<ElementOffset>({ height: 0, left: 0, top: 0, width: 0 });\n  const updateBoundingBox = useCallback(\n    (node: HTMLElement | null) => {\n      if (node != null) {\n        const rect = node.getBoundingClientRect();\n        const box: ElementOffset = {\n          height: rect.height,\n          left: rect.left,\n          top: rect.top,\n          width: rect.width,\n        };\n        if (\n          Math.abs(box.height - lastBoundingBox.height) > EPS ||\n          Math.abs(box.left - lastBoundingBox.left) > EPS ||\n          Math.abs(box.top - lastBoundingBox.top) > EPS ||\n          Math.abs(box.width - lastBoundingBox.width) > EPS\n        ) {\n          setLastBoundingBox({ height: box.height, left: box.left, top: box.top, width: box.width });\n        }\n      }\n    },\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [lastBoundingBox.width, lastBoundingBox.height, lastBoundingBox.top, lastBoundingBox.left, ...extraDependencies],\n  );\n  return [lastBoundingBox, updateBoundingBox];\n}\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){var r;return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.g&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.R,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=i[s];\"string\"!=typeof p&&\"number\"!=typeof p&&(p=\"\"+p),0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},N:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.R,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.R,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.R=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=N(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.g&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,R:void 0,t:n,k:this,C:!1,g:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.R.set(n,!0),t.o.set(n,r),t.R.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.R.set(n,!1):r.R.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.R=new Map,i(n.t,(function(r){n.R.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=N(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,g:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{F:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){F(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?g(c):O(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=R(e));var i=w(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n},i.setUseProxies=function(r){r&&!B&&n(20),this.O=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n  return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n  return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n  return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n  INIT: \"@@redux/INIT\" + randomString(),\n  REPLACE: \"@@redux/REPLACE\" + randomString(),\n  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n    return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n  }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  var proto = obj;\n\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n\n  return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n  var type = typeof val;\n\n  switch (type) {\n    case 'boolean':\n    case 'string':\n    case 'number':\n    case 'symbol':\n    case 'function':\n      {\n        return type;\n      }\n  }\n\n  if (Array.isArray(val)) return 'array';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  var constructorName = ctorName(val);\n\n  switch (constructorName) {\n    case 'Symbol':\n    case 'Promise':\n    case 'WeakMap':\n    case 'WeakSet':\n    case 'Map':\n    case 'Set':\n      return constructorName;\n  } // other\n\n\n  return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n  var typeOfVal = typeof val;\n\n  if (process.env.NODE_ENV !== 'production') {\n    typeOfVal = miniKindOf(val);\n  }\n\n  return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n  var _ref2;\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = preloadedState;\n    preloadedState = undefined;\n  }\n\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n    }\n\n    return enhancer(createStore)(reducer, preloadedState);\n  }\n\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n  }\n\n  var currentReducer = reducer;\n  var currentState = preloadedState;\n  var currentListeners = [];\n  var nextListeners = currentListeners;\n  var isDispatching = false;\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = currentListeners.slice();\n    }\n  }\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns {any} The current state tree of your application.\n   */\n\n\n  function getState() {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n\n    return currentState;\n  }\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param {Function} listener A callback to be invoked on every dispatch.\n   * @returns {Function} A function to remove this change listener.\n   */\n\n\n  function subscribe(listener) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n\n    var isSubscribed = true;\n    ensureCanMutateNextListeners();\n    nextListeners.push(listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      var index = nextListeners.indexOf(listener);\n      nextListeners.splice(index, 1);\n      currentListeners = null;\n    };\n  }\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param {Object} action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns {Object} For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n\n\n  function dispatch(action) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n    }\n\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n    }\n\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n\n    var listeners = currentListeners = nextListeners;\n\n    for (var i = 0; i < listeners.length; i++) {\n      var listener = listeners[i];\n      listener();\n    }\n\n    return action;\n  }\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param {Function} nextReducer The reducer for the store to use instead.\n   * @returns {void}\n   */\n\n\n  function replaceReducer(nextReducer) {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n    }\n\n    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n\n    dispatch({\n      type: ActionTypes.REPLACE\n    });\n  }\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns {observable} A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n\n\n  function observable() {\n    var _ref;\n\n    var outerSubscribe = subscribe;\n    return _ref = {\n      /**\n       * The minimal observable subscription method.\n       * @param {Object} observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns {subscription} An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe: function subscribe(observer) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n        }\n\n        function observeState() {\n          if (observer.next) {\n            observer.next(getState());\n          }\n        }\n\n        observeState();\n        var unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe: unsubscribe\n        };\n      }\n    }, _ref[$$observable] = function () {\n      return this;\n    }, _ref;\n  } // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n\n\n  dispatch({\n    type: ActionTypes.INIT\n  });\n  return _ref2 = {\n    dispatch: dispatch,\n    subscribe: subscribe,\n    getState: getState,\n    replaceReducer: replaceReducer\n  }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n\n\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n  var reducerKeys = Object.keys(reducers);\n  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n\n  if (!isPlainObject(inputState)) {\n    return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n  }\n\n  var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n  });\n  unexpectedKeys.forEach(function (key) {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n\n  if (unexpectedKeys.length > 0) {\n    return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n  }\n}\n\nfunction assertReducerShape(reducers) {\n  Object.keys(reducers).forEach(function (key) {\n    var reducer = reducers[key];\n    var initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n    }\n\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n    }\n  });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n  var reducerKeys = Object.keys(reducers);\n  var finalReducers = {};\n\n  for (var i = 0; i < reducerKeys.length; i++) {\n    var key = reducerKeys[i];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n      }\n    }\n\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n\n  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n  // keys multiple times.\n\n  var unexpectedKeyCache;\n\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n\n  var shapeAssertionError;\n\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n\n  return function combination(state, action) {\n    if (state === void 0) {\n      state = {};\n    }\n\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n\n    var hasChanged = false;\n    var nextState = {};\n\n    for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n      var _key = finalReducerKeys[_i];\n      var reducer = finalReducers[_key];\n      var previousStateForKey = state[_key];\n      var nextStateForKey = reducer(previousStateForKey, action);\n\n      if (typeof nextStateForKey === 'undefined') {\n        var actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n      }\n\n      nextState[_key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n  return function () {\n    return dispatch(actionCreator.apply(this, arguments));\n  };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n  }\n\n  var boundActionCreators = {};\n\n  for (var key in actionCreators) {\n    var actionCreator = actionCreators[key];\n\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n\n  return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  if (funcs.length === 0) {\n    return function (arg) {\n      return arg;\n    };\n  }\n\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n\n  return funcs.reduce(function (a, b) {\n    return function () {\n      return a(b.apply(void 0, arguments));\n    };\n  });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n    middlewares[_key] = arguments[_key];\n  }\n\n  return function (createStore) {\n    return function () {\n      var store = createStore.apply(void 0, arguments);\n\n      var _dispatch = function dispatch() {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n      };\n\n      var middlewareAPI = {\n        getState: store.getState,\n        dispatch: function dispatch() {\n          return _dispatch.apply(void 0, arguments);\n        }\n      };\n      var chain = middlewares.map(function (middleware) {\n        return middleware(middlewareAPI);\n      });\n      _dispatch = compose.apply(void 0, chain)(store.dispatch);\n      return _objectSpread(_objectSpread({}, store), {}, {\n        dispatch: _dispatch\n      });\n    };\n  };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n  // Standard Redux middleware definition pattern:\n  // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n  var middleware = function middleware(_ref) {\n    var dispatch = _ref.dispatch,\n        getState = _ref.getState;\n    return function (next) {\n      return function (action) {\n        // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n        // If this \"action\" is really a function, call it and return the result.\n        if (typeof action === 'function') {\n          // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n          return action(dispatch, getState, extraArgument);\n        } // Otherwise, pass the action down the middleware chain as usual\n\n\n        return next(action);\n      };\n    };\n  };\n\n  return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","var __extends = (this && this.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        if (typeof b !== \"function\" && b !== null)\r\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n        to[j] = from[i];\r\n    return to;\r\n};\r\nvar __defProp = Object.defineProperty;\r\nvar __defProps = Object.defineProperties;\r\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\r\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\r\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\r\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\r\nvar __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };\r\nvar __spreadValues = function (a, b) {\r\n    for (var prop in b || (b = {}))\r\n        if (__hasOwnProp.call(b, prop))\r\n            __defNormalProp(a, prop, b[prop]);\r\n    if (__getOwnPropSymbols)\r\n        for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {\r\n            var prop = _c[_i];\r\n            if (__propIsEnum.call(b, prop))\r\n                __defNormalProp(a, prop, b[prop]);\r\n        }\r\n    return a;\r\n};\r\nvar __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };\r\nvar __async = function (__this, __arguments, generator) {\r\n    return new Promise(function (resolve, reject) {\r\n        var fulfilled = function (value) {\r\n            try {\r\n                step(generator.next(value));\r\n            }\r\n            catch (e) {\r\n                reject(e);\r\n            }\r\n        };\r\n        var rejected = function (value) {\r\n            try {\r\n                step(generator.throw(value));\r\n            }\r\n            catch (e) {\r\n                reject(e);\r\n            }\r\n        };\r\n        var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };\r\n        step((generator = generator.apply(__this, __arguments)).next());\r\n    });\r\n};\r\n// src/index.ts\r\nimport { enableES5 } from \"immer\";\r\nexport * from \"redux\";\r\nimport { default as default2, current as current2, freeze, original, isDraft as isDraft4 } from \"immer\";\r\nimport { createSelector as createSelector2 } from \"reselect\";\r\n// src/createDraftSafeSelector.ts\r\nimport { current, isDraft } from \"immer\";\r\nimport { createSelector } from \"reselect\";\r\nvar createDraftSafeSelector = function () {\r\n    var args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        args[_i] = arguments[_i];\r\n    }\r\n    var selector = createSelector.apply(void 0, args);\r\n    var wrappedSelector = function (value) {\r\n        var rest = [];\r\n        for (var _i = 1; _i < arguments.length; _i++) {\r\n            rest[_i - 1] = arguments[_i];\r\n        }\r\n        return selector.apply(void 0, __spreadArray([isDraft(value) ? current(value) : value], rest));\r\n    };\r\n    return wrappedSelector;\r\n};\r\n// src/configureStore.ts\r\nimport { createStore, compose as compose2, applyMiddleware, combineReducers } from \"redux\";\r\n// src/devtoolsExtension.ts\r\nimport { compose } from \"redux\";\r\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\r\n    if (arguments.length === 0)\r\n        return void 0;\r\n    if (typeof arguments[0] === \"object\")\r\n        return compose;\r\n    return compose.apply(null, arguments);\r\n};\r\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\r\n    return function (noop2) {\r\n        return noop2;\r\n    };\r\n};\r\n// src/isPlainObject.ts\r\nfunction isPlainObject(value) {\r\n    if (typeof value !== \"object\" || value === null)\r\n        return false;\r\n    var proto = Object.getPrototypeOf(value);\r\n    if (proto === null)\r\n        return true;\r\n    var baseProto = proto;\r\n    while (Object.getPrototypeOf(baseProto) !== null) {\r\n        baseProto = Object.getPrototypeOf(baseProto);\r\n    }\r\n    return proto === baseProto;\r\n}\r\n// src/getDefaultMiddleware.ts\r\nimport thunkMiddleware from \"redux-thunk\";\r\n// src/tsHelpers.ts\r\nvar hasMatchFunction = function (v) {\r\n    return v && typeof v.match === \"function\";\r\n};\r\n// src/createAction.ts\r\nfunction createAction(type, prepareAction) {\r\n    function actionCreator() {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        if (prepareAction) {\r\n            var prepared = prepareAction.apply(void 0, args);\r\n            if (!prepared) {\r\n                throw new Error(\"prepareAction did not return an object\");\r\n            }\r\n            return __spreadValues(__spreadValues({\r\n                type: type,\r\n                payload: prepared.payload\r\n            }, \"meta\" in prepared && { meta: prepared.meta }), \"error\" in prepared && { error: prepared.error });\r\n        }\r\n        return { type: type, payload: args[0] };\r\n    }\r\n    actionCreator.toString = function () { return \"\" + type; };\r\n    actionCreator.type = type;\r\n    actionCreator.match = function (action) { return action.type === type; };\r\n    return actionCreator;\r\n}\r\nfunction isAction(action) {\r\n    return isPlainObject(action) && \"type\" in action;\r\n}\r\nfunction isActionCreator(action) {\r\n    return typeof action === \"function\" && \"type\" in action && hasMatchFunction(action);\r\n}\r\nfunction isFSA(action) {\r\n    return isAction(action) && typeof action.type === \"string\" && Object.keys(action).every(isValidKey);\r\n}\r\nfunction isValidKey(key) {\r\n    return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\r\n}\r\nfunction getType(actionCreator) {\r\n    return \"\" + actionCreator;\r\n}\r\n// src/actionCreatorInvariantMiddleware.ts\r\nfunction getMessage(type) {\r\n    var splitType = type ? (\"\" + type).split(\"/\") : [];\r\n    var actionName = splitType[splitType.length - 1] || \"actionCreator\";\r\n    return \"Detected an action creator with type \\\"\" + (type || \"unknown\") + \"\\\" being dispatched. \\nMake sure you're calling the action creator before dispatching, i.e. `dispatch(\" + actionName + \"())` instead of `dispatch(\" + actionName + \")`. This is necessary even if the action has no payload.\";\r\n}\r\nfunction createActionCreatorInvariantMiddleware(options) {\r\n    if (options === void 0) { options = {}; }\r\n    if (process.env.NODE_ENV === \"production\") {\r\n        return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n    }\r\n    var _c = options.isActionCreator, isActionCreator2 = _c === void 0 ? isActionCreator : _c;\r\n    return function () { return function (next) { return function (action) {\r\n        if (isActionCreator2(action)) {\r\n            console.warn(getMessage(action.type));\r\n        }\r\n        return next(action);\r\n    }; }; };\r\n}\r\n// src/utils.ts\r\nimport createNextState, { isDraftable } from \"immer\";\r\nfunction getTimeMeasureUtils(maxDelay, fnName) {\r\n    var elapsed = 0;\r\n    return {\r\n        measureTime: function (fn) {\r\n            var started = Date.now();\r\n            try {\r\n                return fn();\r\n            }\r\n            finally {\r\n                var finished = Date.now();\r\n                elapsed += finished - started;\r\n            }\r\n        },\r\n        warnIfExceeded: function () {\r\n            if (elapsed > maxDelay) {\r\n                console.warn(fnName + \" took \" + elapsed + \"ms, which is more than the warning threshold of \" + maxDelay + \"ms. \\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\\nIt is disabled in production builds, so you don't need to worry about that.\");\r\n            }\r\n        }\r\n    };\r\n}\r\nvar MiddlewareArray = /** @class */ (function (_super) {\r\n    __extends(MiddlewareArray, _super);\r\n    function MiddlewareArray() {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var _this = _super.apply(this, args) || this;\r\n        Object.setPrototypeOf(_this, MiddlewareArray.prototype);\r\n        return _this;\r\n    }\r\n    Object.defineProperty(MiddlewareArray, Symbol.species, {\r\n        get: function () {\r\n            return MiddlewareArray;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    MiddlewareArray.prototype.concat = function () {\r\n        var arr = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            arr[_i] = arguments[_i];\r\n        }\r\n        return _super.prototype.concat.apply(this, arr);\r\n    };\r\n    MiddlewareArray.prototype.prepend = function () {\r\n        var arr = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            arr[_i] = arguments[_i];\r\n        }\r\n        if (arr.length === 1 && Array.isArray(arr[0])) {\r\n            return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n        }\r\n        return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))();\r\n    };\r\n    return MiddlewareArray;\r\n}(Array));\r\nvar EnhancerArray = /** @class */ (function (_super) {\r\n    __extends(EnhancerArray, _super);\r\n    function EnhancerArray() {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var _this = _super.apply(this, args) || this;\r\n        Object.setPrototypeOf(_this, EnhancerArray.prototype);\r\n        return _this;\r\n    }\r\n    Object.defineProperty(EnhancerArray, Symbol.species, {\r\n        get: function () {\r\n            return EnhancerArray;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    EnhancerArray.prototype.concat = function () {\r\n        var arr = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            arr[_i] = arguments[_i];\r\n        }\r\n        return _super.prototype.concat.apply(this, arr);\r\n    };\r\n    EnhancerArray.prototype.prepend = function () {\r\n        var arr = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            arr[_i] = arguments[_i];\r\n        }\r\n        if (arr.length === 1 && Array.isArray(arr[0])) {\r\n            return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n        }\r\n        return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr.concat(this))))();\r\n    };\r\n    return EnhancerArray;\r\n}(Array));\r\nfunction freezeDraftable(val) {\r\n    return isDraftable(val) ? createNextState(val, function () {\r\n    }) : val;\r\n}\r\n// src/immutableStateInvariantMiddleware.ts\r\nvar isProduction = process.env.NODE_ENV === \"production\";\r\nvar prefix = \"Invariant failed\";\r\nfunction invariant(condition, message) {\r\n    if (condition) {\r\n        return;\r\n    }\r\n    if (isProduction) {\r\n        throw new Error(prefix);\r\n    }\r\n    throw new Error(prefix + \": \" + (message || \"\"));\r\n}\r\nfunction stringify(obj, serializer, indent, decycler) {\r\n    return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\r\n}\r\nfunction getSerialize(serializer, decycler) {\r\n    var stack = [], keys = [];\r\n    if (!decycler)\r\n        decycler = function (_, value) {\r\n            if (stack[0] === value)\r\n                return \"[Circular ~]\";\r\n            return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\r\n        };\r\n    return function (key, value) {\r\n        if (stack.length > 0) {\r\n            var thisPos = stack.indexOf(this);\r\n            ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n            ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n            if (~stack.indexOf(value))\r\n                value = decycler.call(this, key, value);\r\n        }\r\n        else\r\n            stack.push(value);\r\n        return serializer == null ? value : serializer.call(this, key, value);\r\n    };\r\n}\r\nfunction isImmutableDefault(value) {\r\n    return typeof value !== \"object\" || value == null || Object.isFrozen(value);\r\n}\r\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\r\n    var trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\r\n    return {\r\n        detectMutations: function () {\r\n            return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\r\n        }\r\n    };\r\n}\r\nfunction trackProperties(isImmutable, ignorePaths, obj, path, checkedObjects) {\r\n    if (ignorePaths === void 0) { ignorePaths = []; }\r\n    if (path === void 0) { path = \"\"; }\r\n    if (checkedObjects === void 0) { checkedObjects = new Set(); }\r\n    var tracked = { value: obj };\r\n    if (!isImmutable(obj) && !checkedObjects.has(obj)) {\r\n        checkedObjects.add(obj);\r\n        tracked.children = {};\r\n        for (var key in obj) {\r\n            var childPath = path ? path + \".\" + key : key;\r\n            if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n                continue;\r\n            }\r\n            tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\r\n        }\r\n    }\r\n    return tracked;\r\n}\r\nfunction detectMutations(isImmutable, ignoredPaths, trackedProperty, obj, sameParentRef, path) {\r\n    if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n    if (sameParentRef === void 0) { sameParentRef = false; }\r\n    if (path === void 0) { path = \"\"; }\r\n    var prevObj = trackedProperty ? trackedProperty.value : void 0;\r\n    var sameRef = prevObj === obj;\r\n    if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n        return { wasMutated: true, path: path };\r\n    }\r\n    if (isImmutable(prevObj) || isImmutable(obj)) {\r\n        return { wasMutated: false };\r\n    }\r\n    var keysToDetect = {};\r\n    for (var key in trackedProperty.children) {\r\n        keysToDetect[key] = true;\r\n    }\r\n    for (var key in obj) {\r\n        keysToDetect[key] = true;\r\n    }\r\n    var hasIgnoredPaths = ignoredPaths.length > 0;\r\n    var _loop_1 = function (key) {\r\n        var nestedPath = path ? path + \".\" + key : key;\r\n        if (hasIgnoredPaths) {\r\n            var hasMatches = ignoredPaths.some(function (ignored) {\r\n                if (ignored instanceof RegExp) {\r\n                    return ignored.test(nestedPath);\r\n                }\r\n                return nestedPath === ignored;\r\n            });\r\n            if (hasMatches) {\r\n                return \"continue\";\r\n            }\r\n        }\r\n        var result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\r\n        if (result.wasMutated) {\r\n            return { value: result };\r\n        }\r\n    };\r\n    for (var key in keysToDetect) {\r\n        var state_1 = _loop_1(key);\r\n        if (typeof state_1 === \"object\")\r\n            return state_1.value;\r\n    }\r\n    return { wasMutated: false };\r\n}\r\nfunction createImmutableStateInvariantMiddleware(options) {\r\n    if (options === void 0) { options = {}; }\r\n    if (process.env.NODE_ENV === \"production\") {\r\n        return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n    }\r\n    var _c = options.isImmutable, isImmutable = _c === void 0 ? isImmutableDefault : _c, ignoredPaths = options.ignoredPaths, _d = options.warnAfter, warnAfter = _d === void 0 ? 32 : _d, ignore = options.ignore;\r\n    ignoredPaths = ignoredPaths || ignore;\r\n    var track = trackForMutations.bind(null, isImmutable, ignoredPaths);\r\n    return function (_c) {\r\n        var getState = _c.getState;\r\n        var state = getState();\r\n        var tracker = track(state);\r\n        var result;\r\n        return function (next) { return function (action) {\r\n            var measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\r\n            measureUtils.measureTime(function () {\r\n                state = getState();\r\n                result = tracker.detectMutations();\r\n                tracker = track(state);\r\n                invariant(!result.wasMutated, \"A state mutation was detected between dispatches, in the path '\" + (result.path || \"\") + \"'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n            });\r\n            var dispatchedAction = next(action);\r\n            measureUtils.measureTime(function () {\r\n                state = getState();\r\n                result = tracker.detectMutations();\r\n                tracker = track(state);\r\n                result.wasMutated && invariant(!result.wasMutated, \"A state mutation was detected inside a dispatch, in the path: \" + (result.path || \"\") + \". Take a look at the reducer(s) handling the action \" + stringify(action) + \". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n            });\r\n            measureUtils.warnIfExceeded();\r\n            return dispatchedAction;\r\n        }; };\r\n    };\r\n}\r\n// src/serializableStateInvariantMiddleware.ts\r\nfunction isPlain(val) {\r\n    var type = typeof val;\r\n    return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\r\n}\r\nfunction findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths, cache) {\r\n    if (path === void 0) { path = \"\"; }\r\n    if (isSerializable === void 0) { isSerializable = isPlain; }\r\n    if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n    var foundNestedSerializable;\r\n    if (!isSerializable(value)) {\r\n        return {\r\n            keyPath: path || \"<root>\",\r\n            value: value\r\n        };\r\n    }\r\n    if (typeof value !== \"object\" || value === null) {\r\n        return false;\r\n    }\r\n    if (cache == null ? void 0 : cache.has(value))\r\n        return false;\r\n    var entries = getEntries != null ? getEntries(value) : Object.entries(value);\r\n    var hasIgnoredPaths = ignoredPaths.length > 0;\r\n    var _loop_2 = function (key, nestedValue) {\r\n        var nestedPath = path ? path + \".\" + key : key;\r\n        if (hasIgnoredPaths) {\r\n            var hasMatches = ignoredPaths.some(function (ignored) {\r\n                if (ignored instanceof RegExp) {\r\n                    return ignored.test(nestedPath);\r\n                }\r\n                return nestedPath === ignored;\r\n            });\r\n            if (hasMatches) {\r\n                return \"continue\";\r\n            }\r\n        }\r\n        if (!isSerializable(nestedValue)) {\r\n            return { value: {\r\n                    keyPath: nestedPath,\r\n                    value: nestedValue\r\n                } };\r\n        }\r\n        if (typeof nestedValue === \"object\") {\r\n            foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\r\n            if (foundNestedSerializable) {\r\n                return { value: foundNestedSerializable };\r\n            }\r\n        }\r\n    };\r\n    for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n        var _c = entries_1[_i], key = _c[0], nestedValue = _c[1];\r\n        var state_2 = _loop_2(key, nestedValue);\r\n        if (typeof state_2 === \"object\")\r\n            return state_2.value;\r\n    }\r\n    if (cache && isNestedFrozen(value))\r\n        cache.add(value);\r\n    return false;\r\n}\r\nfunction isNestedFrozen(value) {\r\n    if (!Object.isFrozen(value))\r\n        return false;\r\n    for (var _i = 0, _c = Object.values(value); _i < _c.length; _i++) {\r\n        var nestedValue = _c[_i];\r\n        if (typeof nestedValue !== \"object\" || nestedValue === null)\r\n            continue;\r\n        if (!isNestedFrozen(nestedValue))\r\n            return false;\r\n    }\r\n    return true;\r\n}\r\nfunction createSerializableStateInvariantMiddleware(options) {\r\n    if (options === void 0) { options = {}; }\r\n    if (process.env.NODE_ENV === \"production\") {\r\n        return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n    }\r\n    var _c = options.isSerializable, isSerializable = _c === void 0 ? isPlain : _c, getEntries = options.getEntries, _d = options.ignoredActions, ignoredActions = _d === void 0 ? [] : _d, _e = options.ignoredActionPaths, ignoredActionPaths = _e === void 0 ? [\"meta.arg\", \"meta.baseQueryMeta\"] : _e, _f = options.ignoredPaths, ignoredPaths = _f === void 0 ? [] : _f, _g = options.warnAfter, warnAfter = _g === void 0 ? 32 : _g, _h = options.ignoreState, ignoreState = _h === void 0 ? false : _h, _j = options.ignoreActions, ignoreActions = _j === void 0 ? false : _j, _k = options.disableCache, disableCache = _k === void 0 ? false : _k;\r\n    var cache = !disableCache && WeakSet ? new WeakSet() : void 0;\r\n    return function (storeAPI) { return function (next) { return function (action) {\r\n        var result = next(action);\r\n        var measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\r\n        if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\r\n            measureUtils.measureTime(function () {\r\n                var foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\r\n                if (foundActionNonSerializableValue) {\r\n                    var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value;\r\n                    console.error(\"A non-serializable value was detected in an action, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\r\n                }\r\n            });\r\n        }\r\n        if (!ignoreState) {\r\n            measureUtils.measureTime(function () {\r\n                var state = storeAPI.getState();\r\n                var foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\r\n                if (foundStateNonSerializableValue) {\r\n                    var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value;\r\n                    console.error(\"A non-serializable value was detected in the state, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the reducer(s) handling this action type: \" + action.type + \".\\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)\");\r\n                }\r\n            });\r\n            measureUtils.warnIfExceeded();\r\n        }\r\n        return result;\r\n    }; }; };\r\n}\r\n// src/getDefaultMiddleware.ts\r\nfunction isBoolean(x) {\r\n    return typeof x === \"boolean\";\r\n}\r\nfunction curryGetDefaultMiddleware() {\r\n    return function curriedGetDefaultMiddleware(options) {\r\n        return getDefaultMiddleware(options);\r\n    };\r\n}\r\nfunction getDefaultMiddleware(options) {\r\n    if (options === void 0) { options = {}; }\r\n    var _c = options.thunk, thunk = _c === void 0 ? true : _c, _d = options.immutableCheck, immutableCheck = _d === void 0 ? true : _d, _e = options.serializableCheck, serializableCheck = _e === void 0 ? true : _e, _f = options.actionCreatorCheck, actionCreatorCheck = _f === void 0 ? true : _f;\r\n    var middlewareArray = new MiddlewareArray();\r\n    if (thunk) {\r\n        if (isBoolean(thunk)) {\r\n            middlewareArray.push(thunkMiddleware);\r\n        }\r\n        else {\r\n            middlewareArray.push(thunkMiddleware.withExtraArgument(thunk.extraArgument));\r\n        }\r\n    }\r\n    if (process.env.NODE_ENV !== \"production\") {\r\n        if (immutableCheck) {\r\n            var immutableOptions = {};\r\n            if (!isBoolean(immutableCheck)) {\r\n                immutableOptions = immutableCheck;\r\n            }\r\n            middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\r\n        }\r\n        if (serializableCheck) {\r\n            var serializableOptions = {};\r\n            if (!isBoolean(serializableCheck)) {\r\n                serializableOptions = serializableCheck;\r\n            }\r\n            middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\r\n        }\r\n        if (actionCreatorCheck) {\r\n            var actionCreatorOptions = {};\r\n            if (!isBoolean(actionCreatorCheck)) {\r\n                actionCreatorOptions = actionCreatorCheck;\r\n            }\r\n            middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\r\n        }\r\n    }\r\n    return middlewareArray;\r\n}\r\n// src/configureStore.ts\r\nvar IS_PRODUCTION = process.env.NODE_ENV === \"production\";\r\nfunction configureStore(options) {\r\n    var curriedGetDefaultMiddleware = curryGetDefaultMiddleware();\r\n    var _c = options || {}, _d = _c.reducer, reducer = _d === void 0 ? void 0 : _d, _e = _c.middleware, middleware = _e === void 0 ? curriedGetDefaultMiddleware() : _e, _f = _c.devTools, devTools = _f === void 0 ? true : _f, _g = _c.preloadedState, preloadedState = _g === void 0 ? void 0 : _g, _h = _c.enhancers, enhancers = _h === void 0 ? void 0 : _h;\r\n    var rootReducer;\r\n    if (typeof reducer === \"function\") {\r\n        rootReducer = reducer;\r\n    }\r\n    else if (isPlainObject(reducer)) {\r\n        rootReducer = combineReducers(reducer);\r\n    }\r\n    else {\r\n        throw new Error('\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\r\n    }\r\n    var finalMiddleware = middleware;\r\n    if (typeof finalMiddleware === \"function\") {\r\n        finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware);\r\n        if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n            throw new Error(\"when using a middleware builder function, an array of middleware must be returned\");\r\n        }\r\n    }\r\n    if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== \"function\"; })) {\r\n        throw new Error(\"each middleware provided to configureStore must be a function\");\r\n    }\r\n    var middlewareEnhancer = applyMiddleware.apply(void 0, finalMiddleware);\r\n    var finalCompose = compose2;\r\n    if (devTools) {\r\n        finalCompose = composeWithDevTools(__spreadValues({\r\n            trace: !IS_PRODUCTION\r\n        }, typeof devTools === \"object\" && devTools));\r\n    }\r\n    var defaultEnhancers = new EnhancerArray(middlewareEnhancer);\r\n    var storeEnhancers = defaultEnhancers;\r\n    if (Array.isArray(enhancers)) {\r\n        storeEnhancers = __spreadArray([middlewareEnhancer], enhancers);\r\n    }\r\n    else if (typeof enhancers === \"function\") {\r\n        storeEnhancers = enhancers(defaultEnhancers);\r\n    }\r\n    var composedEnhancer = finalCompose.apply(void 0, storeEnhancers);\r\n    return createStore(rootReducer, preloadedState, composedEnhancer);\r\n}\r\n// src/createReducer.ts\r\nimport createNextState2, { isDraft as isDraft2, isDraftable as isDraftable2 } from \"immer\";\r\n// src/mapBuilders.ts\r\nfunction executeReducerBuilderCallback(builderCallback) {\r\n    var actionsMap = {};\r\n    var actionMatchers = [];\r\n    var defaultCaseReducer;\r\n    var builder = {\r\n        addCase: function (typeOrActionCreator, reducer) {\r\n            if (process.env.NODE_ENV !== \"production\") {\r\n                if (actionMatchers.length > 0) {\r\n                    throw new Error(\"`builder.addCase` should only be called before calling `builder.addMatcher`\");\r\n                }\r\n                if (defaultCaseReducer) {\r\n                    throw new Error(\"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\r\n                }\r\n            }\r\n            var type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\r\n            if (!type) {\r\n                throw new Error(\"`builder.addCase` cannot be called with an empty action type\");\r\n            }\r\n            if (type in actionsMap) {\r\n                throw new Error(\"`builder.addCase` cannot be called with two reducers for the same action type\");\r\n            }\r\n            actionsMap[type] = reducer;\r\n            return builder;\r\n        },\r\n        addMatcher: function (matcher, reducer) {\r\n            if (process.env.NODE_ENV !== \"production\") {\r\n                if (defaultCaseReducer) {\r\n                    throw new Error(\"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\r\n                }\r\n            }\r\n            actionMatchers.push({ matcher: matcher, reducer: reducer });\r\n            return builder;\r\n        },\r\n        addDefaultCase: function (reducer) {\r\n            if (process.env.NODE_ENV !== \"production\") {\r\n                if (defaultCaseReducer) {\r\n                    throw new Error(\"`builder.addDefaultCase` can only be called once\");\r\n                }\r\n            }\r\n            defaultCaseReducer = reducer;\r\n            return builder;\r\n        }\r\n    };\r\n    builderCallback(builder);\r\n    return [actionsMap, actionMatchers, defaultCaseReducer];\r\n}\r\n// src/createReducer.ts\r\nfunction isStateFunction(x) {\r\n    return typeof x === \"function\";\r\n}\r\nvar hasWarnedAboutObjectNotation = false;\r\nfunction createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {\r\n    if (actionMatchers === void 0) { actionMatchers = []; }\r\n    if (process.env.NODE_ENV !== \"production\") {\r\n        if (typeof mapOrBuilderCallback === \"object\") {\r\n            if (!hasWarnedAboutObjectNotation) {\r\n                hasWarnedAboutObjectNotation = true;\r\n                console.warn(\"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\r\n            }\r\n        }\r\n    }\r\n    var _c = typeof mapOrBuilderCallback === \"function\" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];\r\n    var getInitialState;\r\n    if (isStateFunction(initialState)) {\r\n        getInitialState = function () { return freezeDraftable(initialState()); };\r\n    }\r\n    else {\r\n        var frozenInitialState_1 = freezeDraftable(initialState);\r\n        getInitialState = function () { return frozenInitialState_1; };\r\n    }\r\n    function reducer(state, action) {\r\n        if (state === void 0) { state = getInitialState(); }\r\n        var caseReducers = __spreadArray([\r\n            actionsMap[action.type]\r\n        ], finalActionMatchers.filter(function (_c) {\r\n            var matcher = _c.matcher;\r\n            return matcher(action);\r\n        }).map(function (_c) {\r\n            var reducer2 = _c.reducer;\r\n            return reducer2;\r\n        }));\r\n        if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) {\r\n            caseReducers = [finalDefaultCaseReducer];\r\n        }\r\n        return caseReducers.reduce(function (previousState, caseReducer) {\r\n            if (caseReducer) {\r\n                if (isDraft2(previousState)) {\r\n                    var draft = previousState;\r\n                    var result = caseReducer(draft, action);\r\n                    if (result === void 0) {\r\n                        return previousState;\r\n                    }\r\n                    return result;\r\n                }\r\n                else if (!isDraftable2(previousState)) {\r\n                    var result = caseReducer(previousState, action);\r\n                    if (result === void 0) {\r\n                        if (previousState === null) {\r\n                            return previousState;\r\n                        }\r\n                        throw Error(\"A case reducer on a non-draftable value must not return undefined\");\r\n                    }\r\n                    return result;\r\n                }\r\n                else {\r\n                    return createNextState2(previousState, function (draft) {\r\n                        return caseReducer(draft, action);\r\n                    });\r\n                }\r\n            }\r\n            return previousState;\r\n        }, state);\r\n    }\r\n    reducer.getInitialState = getInitialState;\r\n    return reducer;\r\n}\r\n// src/createSlice.ts\r\nvar hasWarnedAboutObjectNotation2 = false;\r\nfunction getType2(slice, actionKey) {\r\n    return slice + \"/\" + actionKey;\r\n}\r\nfunction createSlice(options) {\r\n    var name = options.name;\r\n    if (!name) {\r\n        throw new Error(\"`name` is a required option for createSlice\");\r\n    }\r\n    if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\r\n        if (options.initialState === void 0) {\r\n            console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\r\n        }\r\n    }\r\n    var initialState = typeof options.initialState == \"function\" ? options.initialState : freezeDraftable(options.initialState);\r\n    var reducers = options.reducers || {};\r\n    var reducerNames = Object.keys(reducers);\r\n    var sliceCaseReducersByName = {};\r\n    var sliceCaseReducersByType = {};\r\n    var actionCreators = {};\r\n    reducerNames.forEach(function (reducerName) {\r\n        var maybeReducerWithPrepare = reducers[reducerName];\r\n        var type = getType2(name, reducerName);\r\n        var caseReducer;\r\n        var prepareCallback;\r\n        if (\"reducer\" in maybeReducerWithPrepare) {\r\n            caseReducer = maybeReducerWithPrepare.reducer;\r\n            prepareCallback = maybeReducerWithPrepare.prepare;\r\n        }\r\n        else {\r\n            caseReducer = maybeReducerWithPrepare;\r\n        }\r\n        sliceCaseReducersByName[reducerName] = caseReducer;\r\n        sliceCaseReducersByType[type] = caseReducer;\r\n        actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);\r\n    });\r\n    function buildReducer() {\r\n        if (process.env.NODE_ENV !== \"production\") {\r\n            if (typeof options.extraReducers === \"object\") {\r\n                if (!hasWarnedAboutObjectNotation2) {\r\n                    hasWarnedAboutObjectNotation2 = true;\r\n                    console.warn(\"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\r\n                }\r\n            }\r\n        }\r\n        var _c = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;\r\n        var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);\r\n        return createReducer(initialState, function (builder) {\r\n            for (var key in finalCaseReducers) {\r\n                builder.addCase(key, finalCaseReducers[key]);\r\n            }\r\n            for (var _i = 0, actionMatchers_1 = actionMatchers; _i < actionMatchers_1.length; _i++) {\r\n                var m = actionMatchers_1[_i];\r\n                builder.addMatcher(m.matcher, m.reducer);\r\n            }\r\n            if (defaultCaseReducer) {\r\n                builder.addDefaultCase(defaultCaseReducer);\r\n            }\r\n        });\r\n    }\r\n    var _reducer;\r\n    return {\r\n        name: name,\r\n        reducer: function (state, action) {\r\n            if (!_reducer)\r\n                _reducer = buildReducer();\r\n            return _reducer(state, action);\r\n        },\r\n        actions: actionCreators,\r\n        caseReducers: sliceCaseReducersByName,\r\n        getInitialState: function () {\r\n            if (!_reducer)\r\n                _reducer = buildReducer();\r\n            return _reducer.getInitialState();\r\n        }\r\n    };\r\n}\r\n// src/entities/entity_state.ts\r\nfunction getInitialEntityState() {\r\n    return {\r\n        ids: [],\r\n        entities: {}\r\n    };\r\n}\r\nfunction createInitialStateFactory() {\r\n    function getInitialState(additionalState) {\r\n        if (additionalState === void 0) { additionalState = {}; }\r\n        return Object.assign(getInitialEntityState(), additionalState);\r\n    }\r\n    return { getInitialState: getInitialState };\r\n}\r\n// src/entities/state_selectors.ts\r\nfunction createSelectorsFactory() {\r\n    function getSelectors(selectState) {\r\n        var selectIds = function (state) { return state.ids; };\r\n        var selectEntities = function (state) { return state.entities; };\r\n        var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); });\r\n        var selectId = function (_, id) { return id; };\r\n        var selectById = function (entities, id) { return entities[id]; };\r\n        var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; });\r\n        if (!selectState) {\r\n            return {\r\n                selectIds: selectIds,\r\n                selectEntities: selectEntities,\r\n                selectAll: selectAll,\r\n                selectTotal: selectTotal,\r\n                selectById: createDraftSafeSelector(selectEntities, selectId, selectById)\r\n            };\r\n        }\r\n        var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities);\r\n        return {\r\n            selectIds: createDraftSafeSelector(selectState, selectIds),\r\n            selectEntities: selectGlobalizedEntities,\r\n            selectAll: createDraftSafeSelector(selectState, selectAll),\r\n            selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n            selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById)\r\n        };\r\n    }\r\n    return { getSelectors: getSelectors };\r\n}\r\n// src/entities/state_adapter.ts\r\nimport createNextState3, { isDraft as isDraft3 } from \"immer\";\r\nfunction createSingleArgumentStateOperator(mutator) {\r\n    var operator = createStateOperator(function (_, state) { return mutator(state); });\r\n    return function operation(state) {\r\n        return operator(state, void 0);\r\n    };\r\n}\r\nfunction createStateOperator(mutator) {\r\n    return function operation(state, arg) {\r\n        function isPayloadActionArgument(arg2) {\r\n            return isFSA(arg2);\r\n        }\r\n        var runMutator = function (draft) {\r\n            if (isPayloadActionArgument(arg)) {\r\n                mutator(arg.payload, draft);\r\n            }\r\n            else {\r\n                mutator(arg, draft);\r\n            }\r\n        };\r\n        if (isDraft3(state)) {\r\n            runMutator(state);\r\n            return state;\r\n        }\r\n        else {\r\n            return createNextState3(state, runMutator);\r\n        }\r\n    };\r\n}\r\n// src/entities/utils.ts\r\nfunction selectIdValue(entity, selectId) {\r\n    var key = selectId(entity);\r\n    if (process.env.NODE_ENV !== \"production\" && key === void 0) {\r\n        console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\r\n    }\r\n    return key;\r\n}\r\nfunction ensureEntitiesArray(entities) {\r\n    if (!Array.isArray(entities)) {\r\n        entities = Object.values(entities);\r\n    }\r\n    return entities;\r\n}\r\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\r\n    newEntities = ensureEntitiesArray(newEntities);\r\n    var added = [];\r\n    var updated = [];\r\n    for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) {\r\n        var entity = newEntities_1[_i];\r\n        var id = selectIdValue(entity, selectId);\r\n        if (id in state.entities) {\r\n            updated.push({ id: id, changes: entity });\r\n        }\r\n        else {\r\n            added.push(entity);\r\n        }\r\n    }\r\n    return [added, updated];\r\n}\r\n// src/entities/unsorted_state_adapter.ts\r\nfunction createUnsortedStateAdapter(selectId) {\r\n    function addOneMutably(entity, state) {\r\n        var key = selectIdValue(entity, selectId);\r\n        if (key in state.entities) {\r\n            return;\r\n        }\r\n        state.ids.push(key);\r\n        state.entities[key] = entity;\r\n    }\r\n    function addManyMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) {\r\n            var entity = newEntities_2[_i];\r\n            addOneMutably(entity, state);\r\n        }\r\n    }\r\n    function setOneMutably(entity, state) {\r\n        var key = selectIdValue(entity, selectId);\r\n        if (!(key in state.entities)) {\r\n            state.ids.push(key);\r\n        }\r\n        state.entities[key] = entity;\r\n    }\r\n    function setManyMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) {\r\n            var entity = newEntities_3[_i];\r\n            setOneMutably(entity, state);\r\n        }\r\n    }\r\n    function setAllMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        state.ids = [];\r\n        state.entities = {};\r\n        addManyMutably(newEntities, state);\r\n    }\r\n    function removeOneMutably(key, state) {\r\n        return removeManyMutably([key], state);\r\n    }\r\n    function removeManyMutably(keys, state) {\r\n        var didMutate = false;\r\n        keys.forEach(function (key) {\r\n            if (key in state.entities) {\r\n                delete state.entities[key];\r\n                didMutate = true;\r\n            }\r\n        });\r\n        if (didMutate) {\r\n            state.ids = state.ids.filter(function (id) { return id in state.entities; });\r\n        }\r\n    }\r\n    function removeAllMutably(state) {\r\n        Object.assign(state, {\r\n            ids: [],\r\n            entities: {}\r\n        });\r\n    }\r\n    function takeNewKey(keys, update, state) {\r\n        var original2 = state.entities[update.id];\r\n        var updated = Object.assign({}, original2, update.changes);\r\n        var newKey = selectIdValue(updated, selectId);\r\n        var hasNewKey = newKey !== update.id;\r\n        if (hasNewKey) {\r\n            keys[update.id] = newKey;\r\n            delete state.entities[update.id];\r\n        }\r\n        state.entities[newKey] = updated;\r\n        return hasNewKey;\r\n    }\r\n    function updateOneMutably(update, state) {\r\n        return updateManyMutably([update], state);\r\n    }\r\n    function updateManyMutably(updates, state) {\r\n        var newKeys = {};\r\n        var updatesPerEntity = {};\r\n        updates.forEach(function (update) {\r\n            if (update.id in state.entities) {\r\n                updatesPerEntity[update.id] = {\r\n                    id: update.id,\r\n                    changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes)\r\n                };\r\n            }\r\n        });\r\n        updates = Object.values(updatesPerEntity);\r\n        var didMutateEntities = updates.length > 0;\r\n        if (didMutateEntities) {\r\n            var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;\r\n            if (didMutateIds) {\r\n                state.ids = Object.keys(state.entities);\r\n            }\r\n        }\r\n    }\r\n    function upsertOneMutably(entity, state) {\r\n        return upsertManyMutably([entity], state);\r\n    }\r\n    function upsertManyMutably(newEntities, state) {\r\n        var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n        updateManyMutably(updated, state);\r\n        addManyMutably(added, state);\r\n    }\r\n    return {\r\n        removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n        addOne: createStateOperator(addOneMutably),\r\n        addMany: createStateOperator(addManyMutably),\r\n        setOne: createStateOperator(setOneMutably),\r\n        setMany: createStateOperator(setManyMutably),\r\n        setAll: createStateOperator(setAllMutably),\r\n        updateOne: createStateOperator(updateOneMutably),\r\n        updateMany: createStateOperator(updateManyMutably),\r\n        upsertOne: createStateOperator(upsertOneMutably),\r\n        upsertMany: createStateOperator(upsertManyMutably),\r\n        removeOne: createStateOperator(removeOneMutably),\r\n        removeMany: createStateOperator(removeManyMutably)\r\n    };\r\n}\r\n// src/entities/sorted_state_adapter.ts\r\nfunction createSortedStateAdapter(selectId, sort) {\r\n    var _c = createUnsortedStateAdapter(selectId), removeOne = _c.removeOne, removeMany = _c.removeMany, removeAll = _c.removeAll;\r\n    function addOneMutably(entity, state) {\r\n        return addManyMutably([entity], state);\r\n    }\r\n    function addManyMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });\r\n        if (models.length !== 0) {\r\n            merge(models, state);\r\n        }\r\n    }\r\n    function setOneMutably(entity, state) {\r\n        return setManyMutably([entity], state);\r\n    }\r\n    function setManyMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        if (newEntities.length !== 0) {\r\n            merge(newEntities, state);\r\n        }\r\n    }\r\n    function setAllMutably(newEntities, state) {\r\n        newEntities = ensureEntitiesArray(newEntities);\r\n        state.entities = {};\r\n        state.ids = [];\r\n        addManyMutably(newEntities, state);\r\n    }\r\n    function updateOneMutably(update, state) {\r\n        return updateManyMutably([update], state);\r\n    }\r\n    function updateManyMutably(updates, state) {\r\n        var appliedUpdates = false;\r\n        for (var _i = 0, updates_1 = updates; _i < updates_1.length; _i++) {\r\n            var update = updates_1[_i];\r\n            var entity = state.entities[update.id];\r\n            if (!entity) {\r\n                continue;\r\n            }\r\n            appliedUpdates = true;\r\n            Object.assign(entity, update.changes);\r\n            var newId = selectId(entity);\r\n            if (update.id !== newId) {\r\n                delete state.entities[update.id];\r\n                state.entities[newId] = entity;\r\n            }\r\n        }\r\n        if (appliedUpdates) {\r\n            resortEntities(state);\r\n        }\r\n    }\r\n    function upsertOneMutably(entity, state) {\r\n        return upsertManyMutably([entity], state);\r\n    }\r\n    function upsertManyMutably(newEntities, state) {\r\n        var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n        updateManyMutably(updated, state);\r\n        addManyMutably(added, state);\r\n    }\r\n    function areArraysEqual(a, b) {\r\n        if (a.length !== b.length) {\r\n            return false;\r\n        }\r\n        for (var i = 0; i < a.length && i < b.length; i++) {\r\n            if (a[i] === b[i]) {\r\n                continue;\r\n            }\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n    function merge(models, state) {\r\n        models.forEach(function (model) {\r\n            state.entities[selectId(model)] = model;\r\n        });\r\n        resortEntities(state);\r\n    }\r\n    function resortEntities(state) {\r\n        var allEntities = Object.values(state.entities);\r\n        allEntities.sort(sort);\r\n        var newSortedIds = allEntities.map(selectId);\r\n        var ids = state.ids;\r\n        if (!areArraysEqual(ids, newSortedIds)) {\r\n            state.ids = newSortedIds;\r\n        }\r\n    }\r\n    return {\r\n        removeOne: removeOne,\r\n        removeMany: removeMany,\r\n        removeAll: removeAll,\r\n        addOne: createStateOperator(addOneMutably),\r\n        updateOne: createStateOperator(updateOneMutably),\r\n        upsertOne: createStateOperator(upsertOneMutably),\r\n        setOne: createStateOperator(setOneMutably),\r\n        setMany: createStateOperator(setManyMutably),\r\n        setAll: createStateOperator(setAllMutably),\r\n        addMany: createStateOperator(addManyMutably),\r\n        updateMany: createStateOperator(updateManyMutably),\r\n        upsertMany: createStateOperator(upsertManyMutably)\r\n    };\r\n}\r\n// src/entities/create_adapter.ts\r\nfunction createEntityAdapter(options) {\r\n    if (options === void 0) { options = {}; }\r\n    var _c = __spreadValues({\r\n        sortComparer: false,\r\n        selectId: function (instance) { return instance.id; }\r\n    }, options), selectId = _c.selectId, sortComparer = _c.sortComparer;\r\n    var stateFactory = createInitialStateFactory();\r\n    var selectorsFactory = createSelectorsFactory();\r\n    var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\r\n    return __spreadValues(__spreadValues(__spreadValues({\r\n        selectId: selectId,\r\n        sortComparer: sortComparer\r\n    }, stateFactory), selectorsFactory), stateAdapter);\r\n}\r\n// src/nanoid.ts\r\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\r\nvar nanoid = function (size) {\r\n    if (size === void 0) { size = 21; }\r\n    var id = \"\";\r\n    var i = size;\r\n    while (i--) {\r\n        id += urlAlphabet[Math.random() * 64 | 0];\r\n    }\r\n    return id;\r\n};\r\n// src/createAsyncThunk.ts\r\nvar commonProperties = [\r\n    \"name\",\r\n    \"message\",\r\n    \"stack\",\r\n    \"code\"\r\n];\r\nvar RejectWithValue = /** @class */ (function () {\r\n    function RejectWithValue(payload, meta) {\r\n        this.payload = payload;\r\n        this.meta = meta;\r\n    }\r\n    return RejectWithValue;\r\n}());\r\nvar FulfillWithMeta = /** @class */ (function () {\r\n    function FulfillWithMeta(payload, meta) {\r\n        this.payload = payload;\r\n        this.meta = meta;\r\n    }\r\n    return FulfillWithMeta;\r\n}());\r\nvar miniSerializeError = function (value) {\r\n    if (typeof value === \"object\" && value !== null) {\r\n        var simpleError = {};\r\n        for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {\r\n            var property = commonProperties_1[_i];\r\n            if (typeof value[property] === \"string\") {\r\n                simpleError[property] = value[property];\r\n            }\r\n        }\r\n        return simpleError;\r\n    }\r\n    return { message: String(value) };\r\n};\r\nvar createAsyncThunk = (function () {\r\n    function createAsyncThunk2(typePrefix, payloadCreator, options) {\r\n        var fulfilled = createAction(typePrefix + \"/fulfilled\", function (payload, requestId, arg, meta) { return ({\r\n            payload: payload,\r\n            meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n                arg: arg,\r\n                requestId: requestId,\r\n                requestStatus: \"fulfilled\"\r\n            })\r\n        }); });\r\n        var pending = createAction(typePrefix + \"/pending\", function (requestId, arg, meta) { return ({\r\n            payload: void 0,\r\n            meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n                arg: arg,\r\n                requestId: requestId,\r\n                requestStatus: \"pending\"\r\n            })\r\n        }); });\r\n        var rejected = createAction(typePrefix + \"/rejected\", function (error, requestId, arg, payload, meta) { return ({\r\n            payload: payload,\r\n            error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\r\n            meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n                arg: arg,\r\n                requestId: requestId,\r\n                rejectedWithValue: !!payload,\r\n                requestStatus: \"rejected\",\r\n                aborted: (error == null ? void 0 : error.name) === \"AbortError\",\r\n                condition: (error == null ? void 0 : error.name) === \"ConditionError\"\r\n            })\r\n        }); });\r\n        var displayedWarning = false;\r\n        var AC = typeof AbortController !== \"undefined\" ? AbortController : /** @class */ (function () {\r\n            function class_1() {\r\n                this.signal = {\r\n                    aborted: false,\r\n                    addEventListener: function () {\r\n                    },\r\n                    dispatchEvent: function () {\r\n                        return false;\r\n                    },\r\n                    onabort: function () {\r\n                    },\r\n                    removeEventListener: function () {\r\n                    },\r\n                    reason: void 0,\r\n                    throwIfAborted: function () {\r\n                    }\r\n                };\r\n            }\r\n            class_1.prototype.abort = function () {\r\n                if (process.env.NODE_ENV !== \"production\") {\r\n                    if (!displayedWarning) {\r\n                        displayedWarning = true;\r\n                        console.info(\"This platform does not implement AbortController. \\nIf you want to use the AbortController to react to `abort` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.\");\r\n                    }\r\n                }\r\n            };\r\n            return class_1;\r\n        }());\r\n        function actionCreator(arg) {\r\n            return function (dispatch, getState, extra) {\r\n                var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();\r\n                var abortController = new AC();\r\n                var abortReason;\r\n                var started = false;\r\n                function abort(reason) {\r\n                    abortReason = reason;\r\n                    abortController.abort();\r\n                }\r\n                var promise2 = function () {\r\n                    return __async(this, null, function () {\r\n                        var _a, _b, finalAction, conditionResult, abortedPromise, err_1, skipDispatch;\r\n                        return __generator(this, function (_c) {\r\n                            switch (_c.label) {\r\n                                case 0:\r\n                                    _c.trys.push([0, 4, , 5]);\r\n                                    conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });\r\n                                    if (!isThenable(conditionResult)) return [3 /*break*/, 2];\r\n                                    return [4 /*yield*/, conditionResult];\r\n                                case 1:\r\n                                    conditionResult = _c.sent();\r\n                                    _c.label = 2;\r\n                                case 2:\r\n                                    if (conditionResult === false || abortController.signal.aborted) {\r\n                                        throw {\r\n                                            name: \"ConditionError\",\r\n                                            message: \"Aborted due to condition callback returning false.\"\r\n                                        };\r\n                                    }\r\n                                    started = true;\r\n                                    abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener(\"abort\", function () { return reject({\r\n                                        name: \"AbortError\",\r\n                                        message: abortReason || \"Aborted\"\r\n                                    }); }); });\r\n                                    dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));\r\n                                    return [4 /*yield*/, Promise.race([\r\n                                            abortedPromise,\r\n                                            Promise.resolve(payloadCreator(arg, {\r\n                                                dispatch: dispatch,\r\n                                                getState: getState,\r\n                                                extra: extra,\r\n                                                requestId: requestId,\r\n                                                signal: abortController.signal,\r\n                                                abort: abort,\r\n                                                rejectWithValue: function (value, meta) {\r\n                                                    return new RejectWithValue(value, meta);\r\n                                                },\r\n                                                fulfillWithValue: function (value, meta) {\r\n                                                    return new FulfillWithMeta(value, meta);\r\n                                                }\r\n                                            })).then(function (result) {\r\n                                                if (result instanceof RejectWithValue) {\r\n                                                    throw result;\r\n                                                }\r\n                                                if (result instanceof FulfillWithMeta) {\r\n                                                    return fulfilled(result.payload, requestId, arg, result.meta);\r\n                                                }\r\n                                                return fulfilled(result, requestId, arg);\r\n                                            })\r\n                                        ])];\r\n                                case 3:\r\n                                    finalAction = _c.sent();\r\n                                    return [3 /*break*/, 5];\r\n                                case 4:\r\n                                    err_1 = _c.sent();\r\n                                    finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);\r\n                                    return [3 /*break*/, 5];\r\n                                case 5:\r\n                                    skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\r\n                                    if (!skipDispatch) {\r\n                                        dispatch(finalAction);\r\n                                    }\r\n                                    return [2 /*return*/, finalAction];\r\n                            }\r\n                        });\r\n                    });\r\n                }();\r\n                return Object.assign(promise2, {\r\n                    abort: abort,\r\n                    requestId: requestId,\r\n                    arg: arg,\r\n                    unwrap: function () {\r\n                        return promise2.then(unwrapResult);\r\n                    }\r\n                });\r\n            };\r\n        }\r\n        return Object.assign(actionCreator, {\r\n            pending: pending,\r\n            rejected: rejected,\r\n            fulfilled: fulfilled,\r\n            typePrefix: typePrefix\r\n        });\r\n    }\r\n    createAsyncThunk2.withTypes = function () { return createAsyncThunk2; };\r\n    return createAsyncThunk2;\r\n})();\r\nfunction unwrapResult(action) {\r\n    if (action.meta && action.meta.rejectedWithValue) {\r\n        throw action.payload;\r\n    }\r\n    if (action.error) {\r\n        throw action.error;\r\n    }\r\n    return action.payload;\r\n}\r\nfunction isThenable(value) {\r\n    return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\r\n}\r\n// src/matchers.ts\r\nvar matches = function (matcher, action) {\r\n    if (hasMatchFunction(matcher)) {\r\n        return matcher.match(action);\r\n    }\r\n    else {\r\n        return matcher(action);\r\n    }\r\n};\r\nfunction isAnyOf() {\r\n    var matchers = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        matchers[_i] = arguments[_i];\r\n    }\r\n    return function (action) {\r\n        return matchers.some(function (matcher) { return matches(matcher, action); });\r\n    };\r\n}\r\nfunction isAllOf() {\r\n    var matchers = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        matchers[_i] = arguments[_i];\r\n    }\r\n    return function (action) {\r\n        return matchers.every(function (matcher) { return matches(matcher, action); });\r\n    };\r\n}\r\nfunction hasExpectedRequestMetadata(action, validStatus) {\r\n    if (!action || !action.meta)\r\n        return false;\r\n    var hasValidRequestId = typeof action.meta.requestId === \"string\";\r\n    var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\r\n    return hasValidRequestId && hasValidRequestStatus;\r\n}\r\nfunction isAsyncThunkArray(a) {\r\n    return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\r\n}\r\nfunction isPending() {\r\n    var asyncThunks = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        asyncThunks[_i] = arguments[_i];\r\n    }\r\n    if (asyncThunks.length === 0) {\r\n        return function (action) { return hasExpectedRequestMetadata(action, [\"pending\"]); };\r\n    }\r\n    if (!isAsyncThunkArray(asyncThunks)) {\r\n        return isPending()(asyncThunks[0]);\r\n    }\r\n    return function (action) {\r\n        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; });\r\n        var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n        return combinedMatcher(action);\r\n    };\r\n}\r\nfunction isRejected() {\r\n    var asyncThunks = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        asyncThunks[_i] = arguments[_i];\r\n    }\r\n    if (asyncThunks.length === 0) {\r\n        return function (action) { return hasExpectedRequestMetadata(action, [\"rejected\"]); };\r\n    }\r\n    if (!isAsyncThunkArray(asyncThunks)) {\r\n        return isRejected()(asyncThunks[0]);\r\n    }\r\n    return function (action) {\r\n        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; });\r\n        var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n        return combinedMatcher(action);\r\n    };\r\n}\r\nfunction isRejectedWithValue() {\r\n    var asyncThunks = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        asyncThunks[_i] = arguments[_i];\r\n    }\r\n    var hasFlag = function (action) {\r\n        return action && action.meta && action.meta.rejectedWithValue;\r\n    };\r\n    if (asyncThunks.length === 0) {\r\n        return function (action) {\r\n            var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n            return combinedMatcher(action);\r\n        };\r\n    }\r\n    if (!isAsyncThunkArray(asyncThunks)) {\r\n        return isRejectedWithValue()(asyncThunks[0]);\r\n    }\r\n    return function (action) {\r\n        var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n        return combinedMatcher(action);\r\n    };\r\n}\r\nfunction isFulfilled() {\r\n    var asyncThunks = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        asyncThunks[_i] = arguments[_i];\r\n    }\r\n    if (asyncThunks.length === 0) {\r\n        return function (action) { return hasExpectedRequestMetadata(action, [\"fulfilled\"]); };\r\n    }\r\n    if (!isAsyncThunkArray(asyncThunks)) {\r\n        return isFulfilled()(asyncThunks[0]);\r\n    }\r\n    return function (action) {\r\n        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; });\r\n        var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n        return combinedMatcher(action);\r\n    };\r\n}\r\nfunction isAsyncThunkAction() {\r\n    var asyncThunks = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        asyncThunks[_i] = arguments[_i];\r\n    }\r\n    if (asyncThunks.length === 0) {\r\n        return function (action) { return hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]); };\r\n    }\r\n    if (!isAsyncThunkArray(asyncThunks)) {\r\n        return isAsyncThunkAction()(asyncThunks[0]);\r\n    }\r\n    return function (action) {\r\n        var matchers = [];\r\n        for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) {\r\n            var asyncThunk = asyncThunks_1[_i];\r\n            matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);\r\n        }\r\n        var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n        return combinedMatcher(action);\r\n    };\r\n}\r\n// src/listenerMiddleware/utils.ts\r\nvar assertFunction = function (func, expected) {\r\n    if (typeof func !== \"function\") {\r\n        throw new TypeError(expected + \" is not a function\");\r\n    }\r\n};\r\nvar noop = function () {\r\n};\r\nvar catchRejection = function (promise2, onError) {\r\n    if (onError === void 0) { onError = noop; }\r\n    promise2.catch(onError);\r\n    return promise2;\r\n};\r\nvar addAbortSignalListener = function (abortSignal, callback) {\r\n    abortSignal.addEventListener(\"abort\", callback, { once: true });\r\n    return function () { return abortSignal.removeEventListener(\"abort\", callback); };\r\n};\r\nvar abortControllerWithReason = function (abortController, reason) {\r\n    var signal = abortController.signal;\r\n    if (signal.aborted) {\r\n        return;\r\n    }\r\n    if (!(\"reason\" in signal)) {\r\n        Object.defineProperty(signal, \"reason\", {\r\n            enumerable: true,\r\n            value: reason,\r\n            configurable: true,\r\n            writable: true\r\n        });\r\n    }\r\n    ;\r\n    abortController.abort(reason);\r\n};\r\n// src/listenerMiddleware/exceptions.ts\r\nvar task = \"task\";\r\nvar listener = \"listener\";\r\nvar completed = \"completed\";\r\nvar cancelled = \"cancelled\";\r\nvar taskCancelled = \"task-\" + cancelled;\r\nvar taskCompleted = \"task-\" + completed;\r\nvar listenerCancelled = listener + \"-\" + cancelled;\r\nvar listenerCompleted = listener + \"-\" + completed;\r\nvar TaskAbortError = /** @class */ (function () {\r\n    function TaskAbortError(code) {\r\n        this.code = code;\r\n        this.name = \"TaskAbortError\";\r\n        this.message = task + \" \" + cancelled + \" (reason: \" + code + \")\";\r\n    }\r\n    return TaskAbortError;\r\n}());\r\n// src/listenerMiddleware/task.ts\r\nvar validateActive = function (signal) {\r\n    if (signal.aborted) {\r\n        throw new TaskAbortError(signal.reason);\r\n    }\r\n};\r\nfunction raceWithSignal(signal, promise2) {\r\n    var cleanup = noop;\r\n    return new Promise(function (resolve, reject) {\r\n        var notifyRejection = function () { return reject(new TaskAbortError(signal.reason)); };\r\n        if (signal.aborted) {\r\n            notifyRejection();\r\n            return;\r\n        }\r\n        cleanup = addAbortSignalListener(signal, notifyRejection);\r\n        promise2.finally(function () { return cleanup(); }).then(resolve, reject);\r\n    }).finally(function () {\r\n        cleanup = noop;\r\n    });\r\n}\r\nvar runTask = function (task2, cleanUp) { return __async(void 0, null, function () {\r\n    var value, error_1;\r\n    return __generator(this, function (_c) {\r\n        switch (_c.label) {\r\n            case 0:\r\n                _c.trys.push([0, 3, 4, 5]);\r\n                return [4 /*yield*/, Promise.resolve()];\r\n            case 1:\r\n                _c.sent();\r\n                return [4 /*yield*/, task2()];\r\n            case 2:\r\n                value = _c.sent();\r\n                return [2 /*return*/, {\r\n                        status: \"ok\",\r\n                        value: value\r\n                    }];\r\n            case 3:\r\n                error_1 = _c.sent();\r\n                return [2 /*return*/, {\r\n                        status: error_1 instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\r\n                        error: error_1\r\n                    }];\r\n            case 4:\r\n                cleanUp == null ? void 0 : cleanUp();\r\n                return [7 /*endfinally*/];\r\n            case 5: return [2 /*return*/];\r\n        }\r\n    });\r\n}); };\r\nvar createPause = function (signal) {\r\n    return function (promise2) {\r\n        return catchRejection(raceWithSignal(signal, promise2).then(function (output) {\r\n            validateActive(signal);\r\n            return output;\r\n        }));\r\n    };\r\n};\r\nvar createDelay = function (signal) {\r\n    var pause = createPause(signal);\r\n    return function (timeoutMs) {\r\n        return pause(new Promise(function (resolve) { return setTimeout(resolve, timeoutMs); }));\r\n    };\r\n};\r\n// src/listenerMiddleware/index.ts\r\nvar assign = Object.assign;\r\nvar INTERNAL_NIL_TOKEN = {};\r\nvar alm = \"listenerMiddleware\";\r\nvar createFork = function (parentAbortSignal, parentBlockingPromises) {\r\n    var linkControllers = function (controller) { return addAbortSignalListener(parentAbortSignal, function () { return abortControllerWithReason(controller, parentAbortSignal.reason); }); };\r\n    return function (taskExecutor, opts) {\r\n        assertFunction(taskExecutor, \"taskExecutor\");\r\n        var childAbortController = new AbortController();\r\n        linkControllers(childAbortController);\r\n        var result = runTask(function () { return __async(void 0, null, function () {\r\n            var result2;\r\n            return __generator(this, function (_c) {\r\n                switch (_c.label) {\r\n                    case 0:\r\n                        validateActive(parentAbortSignal);\r\n                        validateActive(childAbortController.signal);\r\n                        return [4 /*yield*/, taskExecutor({\r\n                                pause: createPause(childAbortController.signal),\r\n                                delay: createDelay(childAbortController.signal),\r\n                                signal: childAbortController.signal\r\n                            })];\r\n                    case 1:\r\n                        result2 = _c.sent();\r\n                        validateActive(childAbortController.signal);\r\n                        return [2 /*return*/, result2];\r\n                }\r\n            });\r\n        }); }, function () { return abortControllerWithReason(childAbortController, taskCompleted); });\r\n        if (opts == null ? void 0 : opts.autoJoin) {\r\n            parentBlockingPromises.push(result);\r\n        }\r\n        return {\r\n            result: createPause(parentAbortSignal)(result),\r\n            cancel: function () {\r\n                abortControllerWithReason(childAbortController, taskCancelled);\r\n            }\r\n        };\r\n    };\r\n};\r\nvar createTakePattern = function (startListening, signal) {\r\n    var take = function (predicate, timeout) { return __async(void 0, null, function () {\r\n        var unsubscribe, tuplePromise, promises, output;\r\n        return __generator(this, function (_c) {\r\n            switch (_c.label) {\r\n                case 0:\r\n                    validateActive(signal);\r\n                    unsubscribe = function () {\r\n                    };\r\n                    tuplePromise = new Promise(function (resolve, reject) {\r\n                        var stopListening = startListening({\r\n                            predicate: predicate,\r\n                            effect: function (action, listenerApi) {\r\n                                listenerApi.unsubscribe();\r\n                                resolve([\r\n                                    action,\r\n                                    listenerApi.getState(),\r\n                                    listenerApi.getOriginalState()\r\n                                ]);\r\n                            }\r\n                        });\r\n                        unsubscribe = function () {\r\n                            stopListening();\r\n                            reject();\r\n                        };\r\n                    });\r\n                    promises = [\r\n                        tuplePromise\r\n                    ];\r\n                    if (timeout != null) {\r\n                        promises.push(new Promise(function (resolve) { return setTimeout(resolve, timeout, null); }));\r\n                    }\r\n                    _c.label = 1;\r\n                case 1:\r\n                    _c.trys.push([1, , 3, 4]);\r\n                    return [4 /*yield*/, raceWithSignal(signal, Promise.race(promises))];\r\n                case 2:\r\n                    output = _c.sent();\r\n                    validateActive(signal);\r\n                    return [2 /*return*/, output];\r\n                case 3:\r\n                    unsubscribe();\r\n                    return [7 /*endfinally*/];\r\n                case 4: return [2 /*return*/];\r\n            }\r\n        });\r\n    }); };\r\n    return function (predicate, timeout) { return catchRejection(take(predicate, timeout)); };\r\n};\r\nvar getListenerEntryPropsFrom = function (options) {\r\n    var type = options.type, actionCreator = options.actionCreator, matcher = options.matcher, predicate = options.predicate, effect = options.effect;\r\n    if (type) {\r\n        predicate = createAction(type).match;\r\n    }\r\n    else if (actionCreator) {\r\n        type = actionCreator.type;\r\n        predicate = actionCreator.match;\r\n    }\r\n    else if (matcher) {\r\n        predicate = matcher;\r\n    }\r\n    else if (predicate) {\r\n    }\r\n    else {\r\n        throw new Error(\"Creating or removing a listener requires one of the known fields for matching an action\");\r\n    }\r\n    assertFunction(effect, \"options.listener\");\r\n    return { predicate: predicate, type: type, effect: effect };\r\n};\r\nvar createListenerEntry = function (options) {\r\n    var _c = getListenerEntryPropsFrom(options), type = _c.type, predicate = _c.predicate, effect = _c.effect;\r\n    var id = nanoid();\r\n    var entry = {\r\n        id: id,\r\n        effect: effect,\r\n        type: type,\r\n        predicate: predicate,\r\n        pending: new Set(),\r\n        unsubscribe: function () {\r\n            throw new Error(\"Unsubscribe not initialized\");\r\n        }\r\n    };\r\n    return entry;\r\n};\r\nvar cancelActiveListeners = function (entry) {\r\n    entry.pending.forEach(function (controller) {\r\n        abortControllerWithReason(controller, listenerCancelled);\r\n    });\r\n};\r\nvar createClearListenerMiddleware = function (listenerMap) {\r\n    return function () {\r\n        listenerMap.forEach(cancelActiveListeners);\r\n        listenerMap.clear();\r\n    };\r\n};\r\nvar safelyNotifyError = function (errorHandler, errorToNotify, errorInfo) {\r\n    try {\r\n        errorHandler(errorToNotify, errorInfo);\r\n    }\r\n    catch (errorHandlerError) {\r\n        setTimeout(function () {\r\n            throw errorHandlerError;\r\n        }, 0);\r\n    }\r\n};\r\nvar addListener = createAction(alm + \"/add\");\r\nvar clearAllListeners = createAction(alm + \"/removeAll\");\r\nvar removeListener = createAction(alm + \"/remove\");\r\nvar defaultErrorHandler = function () {\r\n    var args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        args[_i] = arguments[_i];\r\n    }\r\n    console.error.apply(console, __spreadArray([alm + \"/error\"], args));\r\n};\r\nfunction createListenerMiddleware(middlewareOptions) {\r\n    var _this = this;\r\n    if (middlewareOptions === void 0) { middlewareOptions = {}; }\r\n    var listenerMap = new Map();\r\n    var extra = middlewareOptions.extra, _c = middlewareOptions.onError, onError = _c === void 0 ? defaultErrorHandler : _c;\r\n    assertFunction(onError, \"onError\");\r\n    var insertEntry = function (entry) {\r\n        entry.unsubscribe = function () { return listenerMap.delete(entry.id); };\r\n        listenerMap.set(entry.id, entry);\r\n        return function (cancelOptions) {\r\n            entry.unsubscribe();\r\n            if (cancelOptions == null ? void 0 : cancelOptions.cancelActive) {\r\n                cancelActiveListeners(entry);\r\n            }\r\n        };\r\n    };\r\n    var findListenerEntry = function (comparator) {\r\n        for (var _i = 0, _c = Array.from(listenerMap.values()); _i < _c.length; _i++) {\r\n            var entry = _c[_i];\r\n            if (comparator(entry)) {\r\n                return entry;\r\n            }\r\n        }\r\n        return void 0;\r\n    };\r\n    var startListening = function (options) {\r\n        var entry = findListenerEntry(function (existingEntry) { return existingEntry.effect === options.effect; });\r\n        if (!entry) {\r\n            entry = createListenerEntry(options);\r\n        }\r\n        return insertEntry(entry);\r\n    };\r\n    var stopListening = function (options) {\r\n        var _c = getListenerEntryPropsFrom(options), type = _c.type, effect = _c.effect, predicate = _c.predicate;\r\n        var entry = findListenerEntry(function (entry2) {\r\n            var matchPredicateOrType = typeof type === \"string\" ? entry2.type === type : entry2.predicate === predicate;\r\n            return matchPredicateOrType && entry2.effect === effect;\r\n        });\r\n        if (entry) {\r\n            entry.unsubscribe();\r\n            if (options.cancelActive) {\r\n                cancelActiveListeners(entry);\r\n            }\r\n        }\r\n        return !!entry;\r\n    };\r\n    var notifyListener = function (entry, action, api, getOriginalState) { return __async(_this, null, function () {\r\n        var internalTaskController, take, autoJoinPromises, listenerError_1;\r\n        return __generator(this, function (_c) {\r\n            switch (_c.label) {\r\n                case 0:\r\n                    internalTaskController = new AbortController();\r\n                    take = createTakePattern(startListening, internalTaskController.signal);\r\n                    autoJoinPromises = [];\r\n                    _c.label = 1;\r\n                case 1:\r\n                    _c.trys.push([1, 3, 4, 6]);\r\n                    entry.pending.add(internalTaskController);\r\n                    return [4 /*yield*/, Promise.resolve(entry.effect(action, assign({}, api, {\r\n                            getOriginalState: getOriginalState,\r\n                            condition: function (predicate, timeout) { return take(predicate, timeout).then(Boolean); },\r\n                            take: take,\r\n                            delay: createDelay(internalTaskController.signal),\r\n                            pause: createPause(internalTaskController.signal),\r\n                            extra: extra,\r\n                            signal: internalTaskController.signal,\r\n                            fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n                            unsubscribe: entry.unsubscribe,\r\n                            subscribe: function () {\r\n                                listenerMap.set(entry.id, entry);\r\n                            },\r\n                            cancelActiveListeners: function () {\r\n                                entry.pending.forEach(function (controller, _, set) {\r\n                                    if (controller !== internalTaskController) {\r\n                                        abortControllerWithReason(controller, listenerCancelled);\r\n                                        set.delete(controller);\r\n                                    }\r\n                                });\r\n                            }\r\n                        })))];\r\n                case 2:\r\n                    _c.sent();\r\n                    return [3 /*break*/, 6];\r\n                case 3:\r\n                    listenerError_1 = _c.sent();\r\n                    if (!(listenerError_1 instanceof TaskAbortError)) {\r\n                        safelyNotifyError(onError, listenerError_1, {\r\n                            raisedBy: \"effect\"\r\n                        });\r\n                    }\r\n                    return [3 /*break*/, 6];\r\n                case 4: return [4 /*yield*/, Promise.allSettled(autoJoinPromises)];\r\n                case 5:\r\n                    _c.sent();\r\n                    abortControllerWithReason(internalTaskController, listenerCompleted);\r\n                    entry.pending.delete(internalTaskController);\r\n                    return [7 /*endfinally*/];\r\n                case 6: return [2 /*return*/];\r\n            }\r\n        });\r\n    }); };\r\n    var clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\r\n    var middleware = function (api) { return function (next) { return function (action) {\r\n        if (!isAction(action)) {\r\n            return next(action);\r\n        }\r\n        if (addListener.match(action)) {\r\n            return startListening(action.payload);\r\n        }\r\n        if (clearAllListeners.match(action)) {\r\n            clearListenerMiddleware();\r\n            return;\r\n        }\r\n        if (removeListener.match(action)) {\r\n            return stopListening(action.payload);\r\n        }\r\n        var originalState = api.getState();\r\n        var getOriginalState = function () {\r\n            if (originalState === INTERNAL_NIL_TOKEN) {\r\n                throw new Error(alm + \": getOriginalState can only be called synchronously\");\r\n            }\r\n            return originalState;\r\n        };\r\n        var result;\r\n        try {\r\n            result = next(action);\r\n            if (listenerMap.size > 0) {\r\n                var currentState = api.getState();\r\n                var listenerEntries = Array.from(listenerMap.values());\r\n                for (var _i = 0, listenerEntries_1 = listenerEntries; _i < listenerEntries_1.length; _i++) {\r\n                    var entry = listenerEntries_1[_i];\r\n                    var runListener = false;\r\n                    try {\r\n                        runListener = entry.predicate(action, currentState, originalState);\r\n                    }\r\n                    catch (predicateError) {\r\n                        runListener = false;\r\n                        safelyNotifyError(onError, predicateError, {\r\n                            raisedBy: \"predicate\"\r\n                        });\r\n                    }\r\n                    if (!runListener) {\r\n                        continue;\r\n                    }\r\n                    notifyListener(entry, action, api, getOriginalState);\r\n                }\r\n            }\r\n        }\r\n        finally {\r\n            originalState = INTERNAL_NIL_TOKEN;\r\n        }\r\n        return result;\r\n    }; }; };\r\n    return {\r\n        middleware: middleware,\r\n        startListening: startListening,\r\n        stopListening: stopListening,\r\n        clearListeners: clearListenerMiddleware\r\n    };\r\n}\r\n// src/autoBatchEnhancer.ts\r\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\r\nvar prepareAutoBatched = function () { return function (payload) {\r\n    var _c;\r\n    return ({\r\n        payload: payload,\r\n        meta: (_c = {}, _c[SHOULD_AUTOBATCH] = true, _c)\r\n    });\r\n}; };\r\nvar promise;\r\nvar queueMicrotaskShim = typeof queueMicrotask === \"function\" ? queueMicrotask.bind(typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : globalThis) : function (cb) { return (promise || (promise = Promise.resolve())).then(cb).catch(function (err) { return setTimeout(function () {\r\n    throw err;\r\n}, 0); }); };\r\nvar createQueueWithTimer = function (timeout) {\r\n    return function (notify) {\r\n        setTimeout(notify, timeout);\r\n    };\r\n};\r\nvar rAF = typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\r\nvar autoBatchEnhancer = function (options) {\r\n    if (options === void 0) { options = { type: \"raf\" }; }\r\n    return function (next) { return function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var store = next.apply(void 0, args);\r\n        var notifying = true;\r\n        var shouldNotifyAtEndOfTick = false;\r\n        var notificationQueued = false;\r\n        var listeners = new Set();\r\n        var queueCallback = options.type === \"tick\" ? queueMicrotaskShim : options.type === \"raf\" ? rAF : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\r\n        var notifyListeners = function () {\r\n            notificationQueued = false;\r\n            if (shouldNotifyAtEndOfTick) {\r\n                shouldNotifyAtEndOfTick = false;\r\n                listeners.forEach(function (l) { return l(); });\r\n            }\r\n        };\r\n        return Object.assign({}, store, {\r\n            subscribe: function (listener2) {\r\n                var wrappedListener = function () { return notifying && listener2(); };\r\n                var unsubscribe = store.subscribe(wrappedListener);\r\n                listeners.add(listener2);\r\n                return function () {\r\n                    unsubscribe();\r\n                    listeners.delete(listener2);\r\n                };\r\n            },\r\n            dispatch: function (action) {\r\n                var _a;\r\n                try {\r\n                    notifying = !((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a[SHOULD_AUTOBATCH]);\r\n                    shouldNotifyAtEndOfTick = !notifying;\r\n                    if (shouldNotifyAtEndOfTick) {\r\n                        if (!notificationQueued) {\r\n                            notificationQueued = true;\r\n                            queueCallback(notifyListeners);\r\n                        }\r\n                    }\r\n                    return store.dispatch(action);\r\n                }\r\n                finally {\r\n                    notifying = true;\r\n                }\r\n            }\r\n        });\r\n    }; };\r\n};\r\n// src/index.ts\r\nenableES5();\r\nexport { EnhancerArray, MiddlewareArray, SHOULD_AUTOBATCH, TaskAbortError, addListener, autoBatchEnhancer, clearAllListeners, configureStore, createAction, createActionCreatorInvariantMiddleware, createAsyncThunk, createDraftSafeSelector, createEntityAdapter, createImmutableStateInvariantMiddleware, createListenerMiddleware, default2 as createNextState, createReducer, createSelector2 as createSelector, createSerializableStateInvariantMiddleware, createSlice, current2 as current, findNonSerializableValue, freeze, getDefaultMiddleware, getType, isAction, isActionCreator, isAllOf, isAnyOf, isAsyncThunkAction, isDraft4 as isDraft, isFSA as isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isPlainObject, isRejected, isRejectedWithValue, miniSerializeError, nanoid, original, prepareAutoBatched, removeListener, unwrapResult };\r\n//# sourceMappingURL=redux-toolkit.esm.js.map","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { LayoutType, Margin, Size } from '../util/types';\n\ntype ChartLayoutState = {\n  layoutType: LayoutType;\n  width: number;\n  height: number;\n  margin: Margin;\n  /**\n   * How much is the chart zoomed in.\n   * Used for scaling the mouse coordinates to the chart coordinates.\n   */\n  scale: number;\n};\n\nconst initialState: ChartLayoutState = {\n  layoutType: 'horizontal',\n  width: 0,\n  height: 0,\n  margin: { top: 5, right: 5, bottom: 5, left: 5 },\n  scale: 1,\n};\n\nconst chartLayoutSlice = createSlice({\n  name: 'chartLayout',\n  initialState,\n  reducers: {\n    setLayout(state, action: PayloadAction<LayoutType>) {\n      state.layoutType = action.payload;\n    },\n    setChartSize(state, action: PayloadAction<Size>) {\n      state.width = action.payload.width;\n      state.height = action.payload.height;\n    },\n    setMargin(state, action: PayloadAction<Partial<Margin>>) {\n      state.margin.top = action.payload.top ?? 0;\n      state.margin.right = action.payload.right ?? 0;\n      state.margin.bottom = action.payload.bottom ?? 0;\n      state.margin.left = action.payload.left ?? 0;\n    },\n    setScale(state, action: PayloadAction<number>) {\n      state.scale = action.payload;\n    },\n  },\n});\n\nexport const { setMargin, setLayout, setChartSize, setScale } = chartLayoutSlice.actions;\n\nexport const chartLayoutReducer = chartLayoutSlice.reducer;\n","export default function(series, order) {\n  if (!((n = series.length) > 1)) return;\n  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n    s0 = s1, s1 = series[order[i]];\n    for (j = 0; j < m; ++j) {\n      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n    }\n  }\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(series) {\n  var n = series.length, o = new Array(n);\n  while (--n >= 0) o[n] = n;\n  return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n  return d[key];\n}\n\nfunction stackSeries(key) {\n  const series = [];\n  series.key = key;\n  return series;\n}\n\nexport default function() {\n  var keys = constant([]),\n      order = orderNone,\n      offset = offsetNone,\n      value = stackValue;\n\n  function stack(data) {\n    var sz = Array.from(keys.apply(this, arguments), stackSeries),\n        i, n = sz.length, j = -1,\n        oz;\n\n    for (const d of data) {\n      for (i = 0, ++j; i < n; ++i) {\n        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n      }\n    }\n\n    for (i = 0, oz = array(order(sz)); i < n; ++i) {\n      sz[oz[i]].index = i;\n    }\n\n    offset(sz, oz);\n    return sz;\n  }\n\n  stack.keys = function(_) {\n    return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n  };\n\n  stack.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n  };\n\n  stack.order = function(_) {\n    return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n  };\n\n  stack.offset = function(_) {\n    return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n  };\n\n  return stack;\n}\n","export function getSliced<T>(arr: ReadonlyArray<T>, startIndex: number, endIndex: number): ReadonlyArray<T> {\n  if (!Array.isArray(arr)) {\n    return arr;\n  }\n  if (arr && startIndex + endIndex !== 0) {\n    return arr.slice(startIndex, endIndex + 1);\n  }\n  return arr;\n}\n","export function isWellBehavedNumber(n: unknown): n is number {\n  return Number.isFinite(n);\n}\n\nexport function isPositiveNumber(n: unknown): n is number {\n  return typeof n === 'number' && n > 0 && Number.isFinite(n);\n}\n","import sortBy from 'es-toolkit/compat/sortBy';\nimport get from 'es-toolkit/compat/get';\n\nimport {\n  Series,\n  type SeriesPoint,\n  stack as shapeStack,\n  stackOffsetExpand,\n  stackOffsetNone,\n  stackOffsetSilhouette,\n  stackOffsetWiggle,\n  stackOrderNone,\n} from 'victory-vendor/d3-shape';\n\nimport { findEntryInArray, isNan, isNotNil, isNullish, isNumber, isNumOrStr, mathSign } from './DataUtils';\n\nimport { TooltipEntrySettings, TooltipPayloadEntry } from '../state/tooltipSlice';\nimport {\n  AxisTick,\n  AxisType,\n  RenderableAxisProps,\n  CartesianLayout,\n  CategoricalDomainItem,\n  ChartPointer,\n  DataKey,\n  LayoutType,\n  NumberDomain,\n  OffsetHorizontal,\n  OffsetVertical,\n  PolarLayout,\n  RangeObj,\n  Size,\n  StackOffsetType,\n  TickItem,\n} from './types';\nimport { ValueType } from '../component/DefaultTooltipContent';\nimport { LegendSettings } from '../state/legendSlice';\nimport { AxisRange, BaseAxisWithScale } from '../state/selectors/axisSelectors';\nimport { StackGroup } from './stacks/stackTypes';\nimport { getSliced } from './getSliced';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nimport { RechartsScale } from './scale/RechartsScale';\n\nexport function getValueByDataKey<T>(\n  obj: T | null | undefined,\n  dataKey: DataKey<T> | undefined,\n  defaultValue?: any,\n): unknown {\n  if (isNullish(obj) || isNullish(dataKey)) {\n    return defaultValue;\n  }\n\n  if (isNumOrStr(dataKey)) {\n    return get(obj, dataKey, defaultValue);\n  }\n\n  if (typeof dataKey === 'function') {\n    return dataKey(obj);\n  }\n\n  return defaultValue;\n}\n\nexport type BarPositionPosition = {\n  /**\n   * Offset is returned always from zero position.\n   * So in a way it's \"absolute\".\n   *\n   * NOT inbetween bars, but always from zero.\n   */\n  offset: number;\n  /**\n   * Size of the bar.\n   * If the input data is undefined, this will be 0.\n   * If the input data is NaN then this size too will be NaN.\n   */\n  size: number;\n};\n\nexport const appendOffsetOfLegend = (\n  offset: OffsetVertical & OffsetHorizontal,\n  legendSettings: LegendSettings,\n  legendSize: Size,\n): OffsetVertical & OffsetHorizontal => {\n  if (legendSettings && legendSize) {\n    const { width: boxWidth, height: boxHeight } = legendSize;\n    const { align, verticalAlign, layout } = legendSettings;\n\n    if (\n      (layout === 'vertical' || (layout === 'horizontal' && verticalAlign === 'middle')) &&\n      align !== 'center' &&\n      isNumber(offset[align])\n    ) {\n      return { ...offset, [align]: offset[align] + (boxWidth || 0) };\n    }\n\n    if (\n      (layout === 'horizontal' || (layout === 'vertical' && align === 'center')) &&\n      verticalAlign !== 'middle' &&\n      isNumber(offset[verticalAlign])\n    ) {\n      return { ...offset, [verticalAlign]: offset[verticalAlign] + (boxHeight || 0) };\n    }\n  }\n\n  return offset;\n};\n\nexport const isCategoricalAxis = (layout: LayoutType, axisType: AxisType) =>\n  (layout === 'horizontal' && axisType === 'xAxis') ||\n  (layout === 'vertical' && axisType === 'yAxis') ||\n  (layout === 'centric' && axisType === 'angleAxis') ||\n  (layout === 'radial' && axisType === 'radiusAxis');\n\n/**\n * Calculate the Coordinates of grid\n * @param  {Array} ticks           The ticks in axis\n * @param {Number} minValue        The minimum value of axis\n * @param {Number} maxValue        The maximum value of axis\n * @param {boolean} syncWithTicks  Synchronize grid lines with ticks or not\n * @return {Array}                 Coordinates\n */\nexport const getCoordinatesOfGrid = (\n  ticks: ReadonlyArray<TickItem>,\n  minValue: number,\n  maxValue: number,\n  syncWithTicks: boolean,\n) => {\n  if (syncWithTicks) {\n    return ticks.map(entry => entry.coordinate);\n  }\n\n  let hasMin, hasMax;\n\n  const values = ticks.map(entry => {\n    if (entry.coordinate === minValue) {\n      hasMin = true;\n    }\n    if (entry.coordinate === maxValue) {\n      hasMax = true;\n    }\n\n    return entry.coordinate;\n  });\n\n  if (!hasMin) {\n    values.push(minValue);\n  }\n  if (!hasMax) {\n    values.push(maxValue);\n  }\n\n  return values;\n};\n\nexport type AxisPropsNeededForTicksGenerator = {\n  axisType?: AxisType;\n  categoricalDomain?: ReadonlyArray<unknown>;\n  duplicateDomain?: ReadonlyArray<unknown>;\n  isCategorical?: boolean;\n  niceTicks?: ReadonlyArray<AxisTick>;\n  /**\n   * The range appears to be only used in Angle Axis - needs further investigation\n   */\n  range?: AxisRange;\n  realScaleType?: 'scaleBand' | string;\n  scale: RechartsScale | undefined;\n  tickCount?: number;\n  ticks?: ReadonlyArray<AxisTick>;\n  type?: 'number' | 'category';\n};\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport const getTicksOfAxis = (\n  axis: undefined | AxisPropsNeededForTicksGenerator,\n  isGrid?: boolean,\n  isAll?: boolean,\n): ReadonlyArray<TickItem> | null => {\n  if (!axis) {\n    return null;\n  }\n  const {\n    duplicateDomain,\n    type,\n    range,\n    scale,\n    realScaleType,\n    isCategorical,\n    categoricalDomain,\n    tickCount,\n    ticks,\n    niceTicks,\n    axisType,\n  } = axis;\n\n  if (!scale) {\n    return null;\n  }\n\n  const offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n  let offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n\n  offset = axisType === 'angleAxis' && range && range.length >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n  // The ticks set by user should only affect the ticks adjacent to axis line\n  if (isGrid && (ticks || niceTicks)) {\n    const result = (ticks || niceTicks || [])\n      .map((entry: AxisTick, index: number): TickItem | null => {\n        const scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n\n        const scaled = scale.map(scaleContent);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          // If the scaleContent is not a number, the coordinate will be NaN.\n          // That could be the case for example with a PointScale and a string as domain.\n          coordinate: scaled + offset,\n          value: entry,\n          offset,\n          index,\n        };\n      })\n      .filter(isNotNil);\n\n    return result;\n  }\n\n  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n  if (isCategorical && categoricalDomain) {\n    return categoricalDomain\n      .map((entry: unknown, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          coordinate: scaled + offset,\n          value: entry,\n          index,\n          offset,\n        };\n      })\n      .filter(isNotNil);\n  }\n\n  if (scale.ticks && !isAll && tickCount != null) {\n    return scale\n      .ticks(tickCount)\n      .map((entry: number, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return { coordinate: scaled + offset, value: entry, index, offset };\n      })\n      .filter(isNotNil);\n  }\n\n  // When axis has duplicated text, serial numbers are used to generate scale\n  return scale\n    .domain()\n    .map((entry: CategoricalDomainItem, index: number): TickItem | null => {\n      const scaled = scale.map(entry);\n      if (!isWellBehavedNumber(scaled)) {\n        return null;\n      }\n      return {\n        coordinate: scaled + offset,\n        // @ts-expect-error can't use Date as an index\n        value: duplicateDomain ? duplicateDomain[entry] : entry,\n        index,\n        offset,\n      };\n    })\n    .filter(isNotNil);\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param value input that will be truncated\n * @param domain boundaries\n * @returns tuple of two numbers\n */\nexport const truncateByDomain = (\n  value: SeriesPoint<Record<number, number>>,\n  domain: ReadonlyArray<number>,\n): [number, number] | SeriesPoint<Record<number, number>> => {\n  if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n    return value;\n  }\n\n  const minValue = Math.min(domain[0], domain[1]);\n  const maxValue = Math.max(domain[0], domain[1]);\n\n  const result: [number, number] = [value[0], value[1]];\n  if (!isNumber(value[0]) || value[0] < minValue) {\n    result[0] = minValue;\n  }\n\n  if (!isNumber(value[1]) || value[1] > maxValue) {\n    result[1] = maxValue;\n  }\n\n  if (result[0] > maxValue) {\n    result[0] = maxValue;\n  }\n\n  if (result[1] < minValue) {\n    result[1] = minValue;\n  }\n\n  return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport const offsetSign: OffsetAccessor = series => {\n  const n = series.length;\n  if (n <= 0) {\n    return;\n  }\n  const m = series[0]?.length;\n  if (m == null || m <= 0) {\n    return;\n  }\n\n  for (let j = 0; j < m; ++j) {\n    let positive = 0;\n    let negative = 0;\n\n    for (let i = 0; i < n; ++i) {\n      const row = series[i];\n      const col = row?.[j];\n      if (col == null) {\n        continue;\n      }\n      const series1 = col[1];\n      const series0 = col[0];\n      const value = isNan(series1) ? series0 : series1;\n\n      if (value >= 0) {\n        col[0] = positive;\n        positive += value;\n        col[1] = positive;\n      } else {\n        col[0] = negative;\n        negative += value;\n        col[1] = negative;\n      }\n    }\n  }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport const offsetPositive: OffsetAccessor = series => {\n  const n = series.length;\n  if (n <= 0) {\n    return;\n  }\n  const m = series[0]?.length;\n  if (m == null || m <= 0) {\n    return;\n  }\n\n  for (let j = 0; j < m; ++j) {\n    let positive = 0;\n\n    for (let i = 0; i < n; ++i) {\n      const row = series[i];\n      const col = row?.[j];\n      if (col == null) {\n        continue;\n      }\n      const value = isNan(col[1]) ? col[0] : col[1];\n\n      if (value >= 0) {\n        col[0] = positive;\n        positive += value;\n        col[1] = positive;\n      } else {\n        col[0] = 0;\n        col[1] = 0;\n      }\n    }\n  }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\ntype OffsetAccessor = (series: Array<Series<Record<string, unknown>, string>>, order: number[]) => void;\n\nconst STACK_OFFSET_MAP: Record<StackOffsetType, OffsetAccessor> = {\n  sign: offsetSign,\n  // @ts-expect-error definitelytyped types are incorrect\n  expand: stackOffsetExpand,\n  // @ts-expect-error definitelytyped types are incorrect\n  none: stackOffsetNone,\n  // @ts-expect-error definitelytyped types are incorrect\n  silhouette: stackOffsetSilhouette,\n  // @ts-expect-error definitelytyped types are incorrect\n  wiggle: stackOffsetWiggle,\n  positive: offsetPositive,\n};\n\nexport const getStackedData = (\n  data: ReadonlyArray<Record<string, unknown>>,\n  dataKeys: ReadonlyArray<DataKey<any>>,\n  offsetType: StackOffsetType,\n): ReadonlyArray<Series<Record<string, unknown>, DataKey<any>>> => {\n  const offsetAccessor: OffsetAccessor = STACK_OFFSET_MAP[offsetType] ?? stackOffsetNone;\n  const stack = shapeStack<Record<string, unknown>, DataKey<any>>()\n    .keys(dataKeys)\n    .value((d, key) => Number(getValueByDataKey(d, key, 0)))\n    .order(stackOrderNone)\n    // @ts-expect-error definitelytyped types are incorrect\n    .offset(offsetAccessor);\n\n  const result = stack(data);\n\n  // Post-process ranged data: if value is an array of two numbers, use them directly without stacking\n  result.forEach((series, seriesIndex) => {\n    series.forEach((point, pointIndex) => {\n      const value = getValueByDataKey(data[pointIndex], dataKeys[seriesIndex], 0);\n      if (Array.isArray(value) && value.length === 2 && isNumber(value[0]) && isNumber(value[1])) {\n        // eslint-disable-next-line prefer-destructuring,no-param-reassign\n        point[0] = value[0];\n        // eslint-disable-next-line prefer-destructuring,no-param-reassign\n        point[1] = value[1];\n      }\n    });\n  });\n\n  return result;\n};\n\n/**\n * Externally, we accept both strings and numbers as stack IDs\n * @inline\n */\nexport type StackId = string | number;\n/**\n * Stack IDs in the external props allow numbers; but internally we use it as an object key\n * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks\n * so let's just force a string.\n */\nexport type NormalizedStackId = string;\n\nexport function getNormalizedStackId(publicStackId: StackId | undefined): NormalizedStackId | undefined {\n  return publicStackId == null ? undefined : String(publicStackId);\n}\n\nexport function getCateCoordinateOfLine<T extends Record<string, unknown>>({\n  axis,\n  ticks,\n  bandSize,\n  entry,\n  index,\n  dataKey,\n}: {\n  axis: {\n    dataKey?: DataKey<T>;\n    allowDuplicatedCategory?: boolean;\n    type?: RenderableAxisProps['type'];\n    scale: RechartsScale;\n  };\n  ticks: ReadonlyArray<TickItem> | undefined;\n  bandSize: number;\n  entry: T;\n  index: number;\n  dataKey?: DataKey<T>;\n}): number | null {\n  if (axis.type === 'category') {\n    // find coordinate of category axis by the value of category\n    // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n    if (!axis.allowDuplicatedCategory && axis.dataKey && !isNullish(entry[axis.dataKey])) {\n      // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n      const matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n      if (matchedTick) {\n        return matchedTick.coordinate + bandSize / 2;\n      }\n    }\n\n    return ticks?.[index] ? ticks[index].coordinate + bandSize / 2 : null;\n  }\n\n  const value = getValueByDataKey(entry, !isNullish(dataKey) ? dataKey : axis.dataKey);\n\n  const scaled = axis.scale.map(value);\n  if (!isNumber(scaled)) {\n    return null;\n  }\n  return scaled;\n}\n\nexport const getCateCoordinateOfBar = ({\n  axis,\n  ticks,\n  offset,\n  bandSize,\n  entry,\n  index,\n}: {\n  axis: BaseAxisWithScale;\n  ticks: ReadonlyArray<TickItem>;\n  offset: number;\n  bandSize: number;\n  entry: any;\n  index: number;\n}): number | null => {\n  if (axis.type === 'category') {\n    return ticks[index] ? ticks[index].coordinate + offset : null;\n  }\n  // @ts-expect-error getValueByDataKey does not validate the output type\n  const value: number | undefined = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);\n\n  if (isNullish(value)) {\n    return null;\n  }\n\n  const scaled = axis.scale.map(value);\n  if (!isNumber(scaled)) {\n    return null;\n  }\n  return scaled - bandSize / 2 + offset;\n};\n\nexport const getBaseValueOfBar = ({ numericAxis }: { numericAxis: BaseAxisWithScale }): number | unknown => {\n  const domain = numericAxis.scale.domain();\n\n  if (numericAxis.type === 'number') {\n    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n    const minValue = Math.min(domain[0], domain[1]);\n    // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n    const maxValue = Math.max(domain[0], domain[1]);\n\n    if (minValue <= 0 && maxValue >= 0) {\n      return 0;\n    }\n    if (maxValue < 0) {\n      return maxValue;\n    }\n\n    return minValue;\n  }\n\n  return domain[0];\n};\n\nconst getDomainOfSingle = (data: ReadonlyArray<ReadonlyArray<unknown>>): number[] => {\n  const flat = data.flat(2).filter(isNumber);\n  return [Math.min(...flat), Math.max(...flat)];\n};\n\nconst makeDomainFinite = (domain: NumberDomain): NumberDomain => {\n  return [domain[0] === Infinity ? 0 : domain[0], domain[1] === -Infinity ? 0 : domain[1]];\n};\n\nexport const getDomainOfStackGroups = (\n  stackGroups: Record<StackId, StackGroup> | undefined,\n  startIndex: number,\n  endIndex: number,\n): NumberDomain | undefined => {\n  if (stackGroups == null) {\n    return undefined;\n  }\n  return makeDomainFinite(\n    Object.keys(stackGroups).reduce(\n      (result, stackId): NumberDomain => {\n        const group = stackGroups[stackId];\n        if (!group) {\n          return result;\n        }\n        const { stackedData } = group;\n        const domain: NumberDomain = stackedData.reduce(\n          (res: NumberDomain, entry): NumberDomain => {\n            const sliced = getSliced(entry, startIndex, endIndex);\n            const s = getDomainOfSingle(sliced);\n            if (!isWellBehavedNumber(s[0]) || !isWellBehavedNumber(s[1])) {\n              return res;\n            }\n            return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n          },\n          [Infinity, -Infinity],\n        );\n\n        return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n      },\n      [Infinity, -Infinity],\n    ),\n  );\n};\n\nexport const MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport const MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\n\n/**\n * Calculate the size between two category\n * @param  {Object} axis  The options of axis\n * @param  {Array}  ticks The ticks of axis\n * @param  {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport const getBandSizeOfAxis = (\n  axis?: BaseAxisWithScale,\n  ticks?: ReadonlyArray<TickItem>,\n  isBar?: boolean,\n): number | undefined => {\n  if (axis && axis.scale && axis.scale.bandwidth) {\n    const bandWidth = axis.scale.bandwidth();\n\n    if (!isBar || bandWidth > 0) {\n      return bandWidth;\n    }\n  }\n\n  if (axis && ticks && ticks.length >= 2) {\n    const orderedTicks: ReadonlyArray<TickItem> = sortBy(ticks, (o: TickItem) => o.coordinate);\n    let bandSize = Infinity;\n\n    for (let i = 1, len = orderedTicks.length; i < len; i++) {\n      const cur = orderedTicks[i];\n      const prev = orderedTicks[i - 1];\n\n      bandSize = Math.min((cur?.coordinate || 0) - (prev?.coordinate || 0), bandSize);\n    }\n\n    return bandSize === Infinity ? 0 : bandSize;\n  }\n\n  return isBar ? undefined : 0;\n};\n\nexport function getTooltipEntry({\n  tooltipEntrySettings,\n  dataKey,\n  payload,\n  value,\n  name,\n}: {\n  tooltipEntrySettings: TooltipEntrySettings;\n  dataKey: DataKey<any> | undefined;\n  payload: any;\n  value: ValueType;\n  name: string | undefined;\n}): TooltipPayloadEntry {\n  return {\n    ...tooltipEntrySettings,\n    dataKey,\n    payload,\n    value,\n    name,\n  };\n}\n\nexport function getTooltipNameProp(\n  nameFromItem: string | number | undefined | unknown,\n  dataKey: DataKey<any> | undefined,\n): string | undefined {\n  if (nameFromItem) {\n    return String(nameFromItem);\n  }\n  if (typeof dataKey === 'string') {\n    return dataKey;\n  }\n  return undefined;\n}\n\nexport const calculateCartesianTooltipPos = (coordinate: ChartPointer, layout: CartesianLayout): number | undefined => {\n  if (layout === 'horizontal') {\n    return coordinate.chartX;\n  }\n  if (layout === 'vertical') {\n    return coordinate.chartY;\n  }\n\n  return undefined;\n};\n\nexport const calculatePolarTooltipPos = (rangeObj: RangeObj, layout: PolarLayout): number | undefined => {\n  if (layout === 'centric') {\n    return rangeObj.angle;\n  }\n\n  return rangeObj.radius;\n};\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n  }\n  none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n    s0[j][1] += s0[j][0] = -y / 2;\n  }\n  none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n      var si = series[order[i]],\n          sij0 = si[j][1] || 0,\n          sij1 = si[j - 1][1] || 0,\n          s3 = (sij0 - sij1) / 2;\n      for (var k = 0; k < i; ++k) {\n        var sk = series[order[k]],\n            skj0 = sk[j][1] || 0,\n            skj1 = sk[j - 1][1] || 0;\n        s3 += skj0 - skj1;\n      }\n      s1 += sij0, s2 += s3 * sij0;\n    }\n    s0[j - 1][1] += s0[j - 1][0] = y;\n    if (s1) y -= s2 / s1;\n  }\n  s0[j - 1][1] += s0[j - 1][0] = y;\n  none(series, order);\n}\n","import { RechartsRootState } from '../store';\nimport { Margin } from '../../util/types';\n\nexport const selectChartWidth = (state: RechartsRootState): number => state.layout.width;\n\nexport const selectChartHeight = (state: RechartsRootState): number => state.layout.height;\n\nexport const selectContainerScale: (state: RechartsRootState) => number = state => state.layout.scale;\n\nexport const selectMargin = (state: RechartsRootState): Margin => state.layout.margin;\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { XAxisSettings, YAxisSettings } from '../cartesianAxisSlice';\n\nexport const selectAllXAxes: (state: RechartsRootState) => ReadonlyArray<XAxisSettings> = createSelector(\n  (state: RechartsRootState) => state.cartesianAxis.xAxis,\n  (xAxisMap): ReadonlyArray<XAxisSettings> => {\n    return Object.values(xAxisMap);\n  },\n);\n\nexport const selectAllYAxes: (state: RechartsRootState) => ReadonlyArray<YAxisSettings> = createSelector(\n  (state: RechartsRootState) => state.cartesianAxis.yAxis,\n  (yAxisMap): ReadonlyArray<YAxisSettings> => {\n    return Object.values(yAxisMap);\n  },\n);\n","export const COLOR_PANEL = [\n  '#1890FF',\n  '#66B5FF',\n  '#41D9C7',\n  '#2FC25B',\n  '#6EDB8F',\n  '#9AE65C',\n  '#FACC14',\n  '#E6965C',\n  '#57AD71',\n  '#223273',\n  '#738AE6',\n  '#7564CC',\n  '#8543E0',\n  '#A877ED',\n  '#5C8EE6',\n  '#13C2C2',\n  '#70E0E0',\n  '#5CA3E6',\n  '#3436C7',\n  '#8082FF',\n  '#DD81E6',\n  '#F04864',\n  '#FA7D92',\n  '#D598D9',\n];\n\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * The index is the position of the element in the data array.\n * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).\n */\nexport const DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';\n\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * Unlike dataKey, or name, it is always unique.\n */\nexport const DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';\n\nexport const DEFAULT_Y_AXIS_WIDTH = 60;\n","import { createSelector } from 'reselect';\n\nimport { selectLegendSettings, selectLegendSize } from './legendSelectors';\nimport {\n  CartesianViewBoxRequired,\n  ChartOffsetInternal,\n  Margin,\n  OffsetHorizontal,\n  OffsetVertical,\n  Size,\n} from '../../util/types';\nimport { XAxisSettings, YAxisSettings } from '../cartesianAxisSlice';\nimport { LegendSettings } from '../legendSlice';\nimport { appendOffsetOfLegend } from '../../util/ChartUtils';\nimport { selectChartHeight, selectChartWidth, selectMargin } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nimport { RechartsRootState } from '../store';\n\nexport const selectBrushHeight = (state: RechartsRootState) => state.brush.height;\n\nfunction selectLeftAxesOffset(state: RechartsRootState): number {\n  const yAxes = selectAllYAxes(state);\n  return yAxes.reduce((result: number, entry: YAxisSettings): number => {\n    if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {\n      const width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n      return result + width;\n    }\n    return result;\n  }, 0);\n}\n\nfunction selectRightAxesOffset(state: RechartsRootState): number {\n  const yAxes = selectAllYAxes(state);\n  return yAxes.reduce((result: number, entry: YAxisSettings): number => {\n    if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {\n      const width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n      return result + width;\n    }\n    return result;\n  }, 0);\n}\n\nfunction selectTopAxesOffset(state: RechartsRootState): number {\n  const xAxes = selectAllXAxes(state);\n  return xAxes.reduce((result: number, entry: XAxisSettings): number => {\n    if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {\n      return result + entry.height;\n    }\n    return result;\n  }, 0);\n}\n\nfunction selectBottomAxesOffset(state: RechartsRootState): number {\n  const xAxes = selectAllXAxes(state);\n  return xAxes.reduce((result: number, entry: XAxisSettings): number => {\n    if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {\n      return result + entry.height;\n    }\n    return result;\n  }, 0);\n}\n\n/**\n * For internal use only.\n *\n * @param root state\n * @return ChartOffsetInternal\n */\nexport const selectChartOffsetInternal: (state: RechartsRootState) => ChartOffsetInternal = createSelector(\n  [\n    selectChartWidth,\n    selectChartHeight,\n    selectMargin,\n    selectBrushHeight,\n    selectLeftAxesOffset,\n    selectRightAxesOffset,\n    selectTopAxesOffset,\n    selectBottomAxesOffset,\n    selectLegendSettings,\n    selectLegendSize,\n  ],\n  (\n    chartWidth: number,\n    chartHeight: number,\n    margin: Margin,\n    brushHeight: number,\n    leftAxesOffset: number,\n    rightAxesOffset: number,\n    topAxesOffset: number,\n    bottomAxesOffset: number,\n    legendSettings: LegendSettings,\n    legendSize: Size,\n  ): ChartOffsetInternal => {\n    const offsetH: OffsetHorizontal = {\n      left: (margin.left || 0) + leftAxesOffset,\n      right: (margin.right || 0) + rightAxesOffset,\n    };\n\n    const offsetV: OffsetVertical = {\n      top: (margin.top || 0) + topAxesOffset,\n      bottom: (margin.bottom || 0) + bottomAxesOffset,\n    };\n\n    let offset = { ...offsetV, ...offsetH };\n\n    const brushBottom = offset.bottom;\n\n    offset.bottom += brushHeight;\n\n    offset = appendOffsetOfLegend(offset, legendSettings, legendSize);\n\n    const offsetWidth = chartWidth - offset.left - offset.right;\n    const offsetHeight = chartHeight - offset.top - offset.bottom;\n\n    return {\n      brushBottom,\n      ...offset,\n      // never return negative values for height and width\n      width: Math.max(offsetWidth, 0),\n      height: Math.max(offsetHeight, 0),\n    };\n  },\n);\n\nexport const selectChartViewBox = createSelector(\n  selectChartOffsetInternal,\n  (offset: ChartOffsetInternal): CartesianViewBoxRequired => ({\n    x: offset.left,\n    y: offset.top,\n    width: offset.width,\n    height: offset.height,\n  }),\n);\n\nexport const selectAxisViewBox = createSelector(\n  selectChartWidth,\n  selectChartHeight,\n  (width: number, height: number): CartesianViewBoxRequired => ({\n    x: 0,\n    y: 0,\n    width,\n    height,\n  }),\n);\n","import * as React from 'react';\nimport { createContext, ReactNode, useContext } from 'react';\n\nconst PanoramaContext = createContext<boolean | null>(null);\n\nexport const useIsPanorama = (): boolean => useContext(PanoramaContext) != null;\n\nexport const PanoramaContextProvider = ({ children }: { children: ReactNode }) => (\n  <PanoramaContext.Provider value>{children}</PanoramaContext.Provider>\n);\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectMargin } from './containerSelectors';\nimport { isNumber } from '../../util/DataUtils';\nimport { BrushSettings } from '../brushSlice';\n\nexport const selectBrushSettings = (state: RechartsRootState): BrushSettings => state.brush;\n\nexport type BrushDimensions = {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n};\n\nexport const selectBrushDimensions: (state: RechartsRootState) => BrushDimensions = createSelector(\n  [selectBrushSettings, selectChartOffsetInternal, selectMargin],\n  (brushSettings, offset, margin): BrushDimensions => ({\n    height: brushSettings.height,\n    x: isNumber(brushSettings.x) ? brushSettings.x : offset.left,\n    y: isNumber(brushSettings.y)\n      ? brushSettings.y\n      : offset.top + offset.height + offset.brushBottom - (margin?.bottom || 0),\n    width: isNumber(brushSettings.width) ? brushSettings.width : offset.width,\n  }),\n);\n","/* eslint no-console: 0 */\nconst isDev = process.env.NODE_ENV !== 'production';\n\nexport const warn = (condition: boolean, format: string, ...args: any[]) => {\n  if (isDev && typeof console !== 'undefined' && console.warn) {\n    if (format === undefined) {\n      console.warn('LogUtils requires an error message argument');\n    }\n\n    if (!condition) {\n      if (format === undefined) {\n        console.warn(\n          'Minified exception occurred; use the non-minified dev environment ' +\n            'for the full error message and additional helpful warnings.',\n        );\n      } else {\n        let argIndex = 0;\n\n        console.warn(format.replace(/%s/g, () => args[argIndex++]));\n      }\n    }\n  }\n};\n","import type { CSSProperties } from 'react';\nimport { isPercent } from '../util/DataUtils';\n\nimport type { Percent } from '../util/types';\nimport type { Props } from './ResponsiveContainer';\n\nexport const defaultResponsiveContainerProps = {\n  width: '100%',\n  height: '100%',\n  debounce: 0,\n  minWidth: 0,\n  initialDimension: {\n    width: -1,\n    height: -1,\n  },\n} as const satisfies Partial<Props>;\n\nexport const calculateChartDimensions = (\n  containerWidth: number | undefined,\n  containerHeight: number | undefined,\n  props: {\n    width: Percent | number | undefined;\n    height: Percent | number | undefined;\n    aspect: number | undefined;\n    maxHeight: number | undefined;\n  },\n) => {\n  const {\n    width = defaultResponsiveContainerProps.width,\n    height = defaultResponsiveContainerProps.height,\n    aspect,\n    maxHeight,\n  } = props;\n\n  /*\n   * The containerWidth and containerHeight are already percentage based because it's set as that percentage in CSS.\n   * Means we don't have to calculate percentages here.\n   */\n  let calculatedWidth: number | undefined = isPercent(width) ? containerWidth : Number(width);\n  let calculatedHeight: number | undefined = isPercent(height) ? containerHeight : Number(height);\n\n  if (aspect && aspect > 0) {\n    // Preserve the desired aspect ratio\n    if (calculatedWidth) {\n      // Will default to using width for aspect ratio\n      calculatedHeight = calculatedWidth / aspect;\n    } else if (calculatedHeight) {\n      // But we should also take height into consideration\n      calculatedWidth = calculatedHeight * aspect;\n    }\n\n    // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n    if (maxHeight && calculatedHeight != null && calculatedHeight > maxHeight) {\n      calculatedHeight = maxHeight;\n    }\n  }\n\n  return { calculatedWidth, calculatedHeight };\n};\n\nconst bothOverflow: CSSProperties = {\n  width: 0,\n  height: 0,\n  overflow: 'visible',\n};\nconst overflowX: CSSProperties = {\n  width: 0,\n  overflowX: 'visible',\n};\nconst overflowY: CSSProperties = {\n  height: 0,\n  overflowY: 'visible',\n};\nconst noStyle: CSSProperties = {};\n\n/**\n * This zero-size, overflow-visible is required to allow the chart to shrink.\n * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,\n * it would always keep the container at the size of the chart,\n * and ResizeObserver would never fire.\n * With this zero-size element, the chart itself never actually fills the container,\n * it just so happens that it is visible because it overflows.\n * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts\n * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68\n *\n * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),\n * because in that case the chart can't shrink in that dimension anyway.\n * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245\n */\nexport const getInnerDivStyle = (props: { width?: Percent | number; height?: Percent | number }): CSSProperties => {\n  const { width, height } = props;\n  const isWidthPercent = isPercent(width);\n  const isHeightPercent = isPercent(height);\n\n  if (isWidthPercent && isHeightPercent) {\n    return bothOverflow;\n  }\n  if (isWidthPercent) {\n    return overflowX;\n  }\n  if (isHeightPercent) {\n    return overflowY;\n  }\n  return noStyle;\n};\n\nexport function getDefaultWidthAndHeight({\n  width,\n  height,\n  aspect,\n}: {\n  width: Percent | number | undefined;\n  height: Percent | number | undefined;\n  aspect: number | undefined;\n}): { width: Percent | number | undefined; height: Percent | number | undefined } {\n  let calculatedWidth = width;\n  let calculatedHeight = height;\n\n  if (calculatedWidth === undefined && calculatedHeight === undefined) {\n    calculatedWidth = defaultResponsiveContainerProps.width;\n    calculatedHeight = defaultResponsiveContainerProps.height;\n  } else if (calculatedWidth === undefined) {\n    calculatedWidth = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.width;\n  } else if (calculatedHeight === undefined) {\n    calculatedHeight = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.height;\n  }\n\n  return { width: calculatedWidth, height: calculatedHeight };\n}\n","import { clsx } from 'clsx';\nimport * as React from 'react';\nimport {\n  createContext,\n  CSSProperties,\n  forwardRef,\n  ReactNode,\n  useCallback,\n  useContext,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport throttle from 'es-toolkit/compat/throttle';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport {\n  calculateChartDimensions,\n  defaultResponsiveContainerProps,\n  getDefaultWidthAndHeight,\n  getInnerDivStyle,\n} from './responsiveContainerUtils';\nimport { Percent, Size } from '../util/types';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\n\nexport interface Props {\n  /**\n   * width / height. If specified, the height will be calculated by width / aspect.\n   */\n  aspect?: number;\n  /**\n   * The width of chart container.\n   * Can be a number or a percent string like \"100%\".\n   * @default '100%'\n   */\n  width?: Percent | number;\n  /**\n   * The height of chart container.\n   * Can be a number or a percent string like \"100%\".\n   * @default '100%'\n   */\n  height?: Percent | number;\n  /**\n   * The minimum width of the container.\n   * @default 0\n   */\n  minWidth?: string | number;\n  /**\n   * The minimum height of the container.\n   */\n  minHeight?: string | number;\n  /**\n   * The initial width and height of the container.\n   * @default {\"width\":-1,\"height\":-1}\n   */\n  initialDimension?: {\n    width: number;\n    height: number;\n  };\n  /** The maximum height of the container. It can be a number. */\n  maxHeight?: number;\n  /**\n   * The content of the container.\n   * It can contain multiple charts, and then they will all share the same dimensions.\n   */\n  children: ReactNode;\n  /**\n   * If specified a positive number, debounced function will be used to handle the resize event.\n   * @default 0\n   */\n  debounce?: number;\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`.\n   */\n  id?: string | number;\n  /** The HTML element's class name */\n  className?: string | number;\n  /** The style of the container. */\n  style?: Omit<CSSProperties, keyof Props>;\n  /**\n   * If specified provides a callback providing the updated chart width and height values.\n   */\n  onResize?: (width: number, height: number) => void;\n}\n\nconst ResponsiveContainerContext = createContext<Size>(defaultResponsiveContainerProps.initialDimension);\n\nfunction isAcceptableSize(size: { width: number | undefined; height: number | undefined }): size is Size {\n  return isPositiveNumber(size.width) && isPositiveNumber(size.height);\n}\n\nfunction ResponsiveContainerContextProvider({\n  children,\n  width,\n  height,\n}: {\n  children: ReactNode;\n  width: number | undefined;\n  height: number | undefined;\n}) {\n  const size = useMemo(() => ({ width, height }), [width, height]);\n  if (!isAcceptableSize(size)) {\n    /*\n     * Don't render the container if width or height is non-positive because\n     * in that case the chart will not be rendered properly anyway.\n     * We will instead wait for the next resize event to provide the correct dimensions.\n     */\n    return null;\n  }\n  return <ResponsiveContainerContext.Provider value={size}>{children}</ResponsiveContainerContext.Provider>;\n}\n\nexport const useResponsiveContainerContext = () => useContext(ResponsiveContainerContext);\n\nconst SizeDetectorContainer = forwardRef<HTMLDivElement | null, Props>(\n  (\n    {\n      aspect,\n      initialDimension = defaultResponsiveContainerProps.initialDimension,\n      width,\n      height,\n      /*\n       * default min-width to 0 if not specified - 'auto' causes issues with flexbox\n       * https://github.com/recharts/recharts/issues/172\n       */\n      minWidth = defaultResponsiveContainerProps.minWidth,\n      minHeight,\n      maxHeight,\n      children,\n      debounce = defaultResponsiveContainerProps.debounce,\n      id,\n      className,\n      onResize,\n      style = {},\n    }: Props,\n    ref,\n  ) => {\n    const containerRef = useRef<HTMLDivElement | null>(null);\n    /*\n     * We are using a ref to avoid re-creating the ResizeObserver when the onResize function changes.\n     * The ref is updated on every render, so the latest onResize function is always available in the effect.\n     */\n    const onResizeRef = useRef<Props['onResize']>();\n    onResizeRef.current = onResize;\n    useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(ref, () => containerRef.current);\n\n    const [sizes, setSizes] = useState<{\n      containerWidth: number;\n      containerHeight: number;\n    }>({\n      containerWidth: initialDimension.width,\n      containerHeight: initialDimension.height,\n    });\n\n    const setContainerSize = useCallback((newWidth: number, newHeight: number) => {\n      setSizes(prevState => {\n        const roundedWidth = Math.round(newWidth);\n        const roundedHeight = Math.round(newHeight);\n        if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n          return prevState;\n        }\n\n        return { containerWidth: roundedWidth, containerHeight: roundedHeight };\n      });\n    }, []);\n\n    useEffect(() => {\n      if (containerRef.current == null || typeof ResizeObserver === 'undefined') {\n        return noop;\n      }\n      let callback = (entries: ResizeObserverEntry[]) => {\n        const entry = entries[0];\n        if (entry == null) {\n          return;\n        }\n        const { width: containerWidth, height: containerHeight } = entry.contentRect;\n        setContainerSize(containerWidth, containerHeight);\n        onResizeRef.current?.(containerWidth, containerHeight);\n      };\n      if (debounce > 0) {\n        callback = throttle(callback, debounce, {\n          trailing: true,\n          leading: false,\n        });\n      }\n      const observer = new ResizeObserver(callback);\n\n      const { width: containerWidth, height: containerHeight } = containerRef.current.getBoundingClientRect();\n      setContainerSize(containerWidth, containerHeight);\n\n      observer.observe(containerRef.current);\n\n      return () => {\n        observer.disconnect();\n      };\n    }, [setContainerSize, debounce]);\n\n    const { containerWidth, containerHeight } = sizes;\n\n    warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n\n    const { calculatedWidth, calculatedHeight } = calculateChartDimensions(containerWidth, containerHeight, {\n      width,\n      height,\n      aspect,\n      maxHeight,\n    });\n\n    warn(\n      (calculatedWidth != null && calculatedWidth > 0) || (calculatedHeight != null && calculatedHeight > 0),\n      `The width(%s) and height(%s) of chart should be greater than 0,\n       please check the style of container, or the props width(%s) and height(%s),\n       or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n       height and width.`,\n      calculatedWidth,\n      calculatedHeight,\n      width,\n      height,\n      minWidth,\n      minHeight,\n      aspect,\n    );\n\n    return (\n      <div\n        id={id ? `${id}` : undefined}\n        className={clsx('recharts-responsive-container', className)}\n        style={{ ...style, width, height, minWidth, minHeight, maxHeight }}\n        ref={containerRef}\n      >\n        <div style={getInnerDivStyle({ width, height })}>\n          <ResponsiveContainerContextProvider width={calculatedWidth} height={calculatedHeight}>\n            {children}\n          </ResponsiveContainerContextProvider>\n        </div>\n      </div>\n    );\n  },\n);\n\n/**\n * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.\n * It is used to create responsive charts that adapt to different screen sizes.\n *\n * This component uses the {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver} API to monitor changes to the size of its parent element.\n * If you need to support older browsers that do not support this API, you may need to include a polyfill.\n *\n * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}\n *\n * @provides ResponsiveContainerContext\n */\nexport const ResponsiveContainer = forwardRef<HTMLDivElement, Props>((props, ref) => {\n  const responsiveContainerContext = useResponsiveContainerContext();\n  if (isPositiveNumber(responsiveContainerContext.width) && isPositiveNumber(responsiveContainerContext.height)) {\n    /*\n     * If we detect that we are already inside another ResponsiveContainer,\n     * we do not attempt to add another layer of responsiveness.\n     */\n    return props.children;\n  }\n\n  const { width, height } = getDefaultWidthAndHeight({\n    width: props.width,\n    height: props.height,\n    aspect: props.aspect,\n  });\n\n  /*\n   * Let's try to get the calculated dimensions without having the div container set up.\n   * Sometimes this does produce fixed, positive dimensions. If so, we can skip rendering the div and monitoring its size.\n   */\n  const { calculatedWidth, calculatedHeight } = calculateChartDimensions(undefined, undefined, {\n    width,\n    height,\n    aspect: props.aspect,\n    maxHeight: props.maxHeight,\n  });\n\n  if (isNumber(calculatedWidth) && isNumber(calculatedHeight)) {\n    /*\n     * If it just so happens that the combination of width, height, and aspect ratio\n     * results in fixed dimensions, then we don't need to monitor the container's size.\n     * We can just provide these fixed dimensions to the context.\n     *\n     * Note that here we are not checking for positive numbers;\n     * if the user provides a zero or negative width/height, we will just pass that along\n     * as whatever size we detect won't be helping anyway.\n     */\n    return (\n      <ResponsiveContainerContextProvider width={calculatedWidth} height={calculatedHeight}>\n        {props.children}\n      </ResponsiveContainerContextProvider>\n    );\n  }\n  /*\n   * Static analysis did not produce fixed dimensions,\n   * so we need to render a special div and monitor its size.\n   */\n  return <SizeDetectorContainer {...props} width={width} height={height} ref={ref} />;\n});\n","import { useEffect } from 'react';\nimport {\n  CartesianLayout,\n  CartesianViewBoxRequired,\n  ChartOffsetInternal,\n  LayoutType,\n  Margin,\n  Percent,\n  PolarLayout,\n  TrapezoidViewBox,\n} from '../util/types';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { RechartsRootState } from '../state/store';\nimport { setChartSize, setMargin } from '../state/layoutSlice';\nimport { selectChartOffsetInternal, selectChartViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';\nimport { useIsPanorama } from './PanoramaContext';\nimport { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\n\nexport function cartesianViewBoxToTrapezoid(box: undefined): undefined;\nexport function cartesianViewBoxToTrapezoid(box: CartesianViewBoxRequired | TrapezoidViewBox): TrapezoidViewBox;\nexport function cartesianViewBoxToTrapezoid(\n  box: CartesianViewBoxRequired | TrapezoidViewBox | undefined,\n): TrapezoidViewBox | undefined {\n  if (!box) {\n    return undefined;\n  }\n  return {\n    x: box.x,\n    y: box.y,\n    upperWidth: 'upperWidth' in box ? box.upperWidth : box.width,\n    lowerWidth: 'lowerWidth' in box ? box.lowerWidth : box.width,\n    width: box.width,\n    height: box.height,\n  };\n}\n\nexport const useViewBox = (): CartesianViewBoxRequired | undefined => {\n  const panorama = useIsPanorama();\n  const rootViewBox = useAppSelector(selectChartViewBox);\n  const brushDimensions = useAppSelector(selectBrushDimensions);\n  const brushPadding = useAppSelector(selectBrushSettings)?.padding;\n  if (!panorama || !brushDimensions || !brushPadding) {\n    return rootViewBox;\n  }\n  return {\n    width: brushDimensions.width - brushPadding.left - brushPadding.right,\n    height: brushDimensions.height - brushPadding.top - brushPadding.bottom,\n    x: brushPadding.left,\n    y: brushPadding.top,\n  };\n};\n\nconst manyComponentsThrowErrorsIfOffsetIsUndefined: ChartOffsetInternal = {\n  top: 0,\n  bottom: 0,\n  left: 0,\n  right: 0,\n  width: 0,\n  height: 0,\n  brushBottom: 0,\n};\n/**\n * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.\n *\n * Returns the offset of the chart in pixels.\n *\n * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.\n */\nexport const useOffsetInternal = (): ChartOffsetInternal => {\n  return useAppSelector(selectChartOffsetInternal) ?? manyComponentsThrowErrorsIfOffsetIsUndefined;\n};\n\n/**\n * Returns the width of the chart in pixels.\n *\n * If you are using chart with hardcoded `width` prop, then the width returned will be the same\n * as the `width` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `width` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the width.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the width number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport const useChartWidth = (): number | undefined => {\n  return useAppSelector(selectChartWidth);\n};\n\n/**\n * Returns the height of the chart in pixels.\n *\n * If you are using chart with hardcoded `height` props, then the height returned will be the same\n * as the `height` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `height` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the height.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the height number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport const useChartHeight = (): number | undefined => {\n  return useAppSelector(selectChartHeight);\n};\n\n/**\n * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.\n * This is declared by the user in the chart props.\n * If you are interested in the space occupied by axes, legend, or brushes,\n * use {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport const useMargin = (): Margin | undefined => {\n  return useAppSelector(state => state.layout.margin);\n};\n\nexport const selectChartLayout = (state: RechartsRootState): LayoutType => state.layout.layoutType;\n\nexport const useChartLayout = () => useAppSelector(selectChartLayout);\n\nexport const useCartesianChartLayout = (): CartesianLayout | undefined => {\n  const layout = useChartLayout();\n  if (layout === 'horizontal' || layout === 'vertical') {\n    return layout;\n  }\n  return undefined;\n};\n\nexport const selectPolarChartLayout = (state: RechartsRootState): PolarLayout | undefined => {\n  const layout = state.layout.layoutType;\n  if (layout === 'centric' || layout === 'radial') {\n    return layout;\n  }\n  return undefined;\n};\n\nexport const usePolarChartLayout = (): PolarLayout | undefined => {\n  return useAppSelector(selectPolarChartLayout);\n};\n\n/**\n * Returns true if the component is rendered inside a chart context.\n * Some components may be used both inside and outside of charts,\n * and this hook allows them to determine if they are in a chart context or not.\n *\n * Other selectors may return undefined when used outside a chart context,\n * or undefined when inside a chart, but without relevant data.\n * This hook provides a more explicit way to check for chart context.\n *\n * @returns {boolean} True if in chart context, false otherwise.\n */\nexport const useIsInChartContext = (): boolean => {\n  /*\n   * All charts provide a layout type in the chart context.\n   * If we have a layout type, we are in a chart context.\n   */\n  const layout = useChartLayout();\n  return layout !== undefined;\n};\n\nexport const ReportChartSize = (props: {\n  width: number | Percent | undefined;\n  height: number | Percent | undefined;\n}): null => {\n  const dispatch = useAppDispatch();\n\n  /*\n   * Skip dispatching properties in panorama chart for two reasons:\n   * 1. The root chart should be deciding on these properties, and\n   * 2. Brush reads these properties from redux store, and so they must remain stable\n   *      to avoid circular dependency and infinite re-rendering.\n   */\n  const isPanorama = useIsPanorama();\n\n  const { width: widthFromProps, height: heightFromProps } = props;\n  const responsiveContainerCalculations = useResponsiveContainerContext();\n\n  let width = widthFromProps;\n  let height = heightFromProps;\n\n  if (responsiveContainerCalculations) {\n    /*\n     * In case we receive width and height from ResponsiveContainer,\n     * we will always prefer those.\n     * Only in case ResponsiveContainer does not provide width or height,\n     * we will fall back to the explicitly provided width and height.\n     *\n     * This to me feels backwards - we should allow override by the more specific props on individual charts, right?\n     * But this is 3.x behaviour, so let's keep it for backwards compatibility.\n     *\n     * We can change this in 4.x if we want to.\n     */\n    width = responsiveContainerCalculations.width > 0 ? responsiveContainerCalculations.width : widthFromProps;\n    height = responsiveContainerCalculations.height > 0 ? responsiveContainerCalculations.height : heightFromProps;\n  }\n\n  useEffect(() => {\n    if (!isPanorama && isPositiveNumber(width) && isPositiveNumber(height)) {\n      dispatch(setChartSize({ width, height }));\n    }\n  }, [dispatch, isPanorama, width, height]);\n\n  return null;\n};\n\nexport const ReportChartMargin = ({ margin }: { margin: Partial<Margin> }): null => {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(setMargin(margin));\n  }, [dispatch, margin]);\n  return null;\n};\n","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n  // All error codes, starting by 0:\n  function(plugin) {\n    return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n  },\n  function(thing) {\n    return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n  },\n  \"This object has been frozen and should not be mutated\",\n  function(data) {\n    return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n  },\n  \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n  \"Immer forbids circular references\",\n  \"The first or second argument to `produce` must be a function\",\n  \"The third argument to `produce` must be a function or undefined\",\n  \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n  \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n  function(thing) {\n    return `'current' expects a draft, got: ${thing}`;\n  },\n  \"Object.defineProperty() cannot be used on an Immer draft\",\n  \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n  \"Immer only supports deleting array indices\",\n  \"Immer only supports setting array indices and the 'length' property\",\n  function(thing) {\n    return `'original' expects a draft, got: ${thing}`;\n  }\n  // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n  // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n  if (process.env.NODE_ENV !== \"production\") {\n    const e = errors[error];\n    const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n    throw new Error(`[Immer] ${msg}`);\n  }\n  throw new Error(\n    `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n  );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n  return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n  if (!value)\n    return false;\n  return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nvar cachedCtorStrings = /* @__PURE__ */ new WeakMap();\nfunction isPlainObject(value) {\n  if (!value || typeof value !== \"object\")\n    return false;\n  const proto = Object.getPrototypeOf(value);\n  if (proto === null || proto === Object.prototype)\n    return true;\n  const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n  if (Ctor === Object)\n    return true;\n  if (typeof Ctor !== \"function\")\n    return false;\n  let ctorString = cachedCtorStrings.get(Ctor);\n  if (ctorString === void 0) {\n    ctorString = Function.toString.call(Ctor);\n    cachedCtorStrings.set(Ctor, ctorString);\n  }\n  return ctorString === objectCtorString;\n}\nfunction original(value) {\n  if (!isDraft(value))\n    die(15, value);\n  return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter, strict = true) {\n  if (getArchtype(obj) === 0 /* Object */) {\n    const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj);\n    keys.forEach((key) => {\n      iter(key, obj[key], obj);\n    });\n  } else {\n    obj.forEach((entry, index) => iter(index, entry, obj));\n  }\n}\nfunction getArchtype(thing) {\n  const state = thing[DRAFT_STATE];\n  return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n  return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n  return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n  const t = getArchtype(thing);\n  if (t === 2 /* Map */)\n    thing.set(propOrOldValue, value);\n  else if (t === 3 /* Set */) {\n    thing.add(value);\n  } else\n    thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n  if (x === y) {\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    return x !== x && y !== y;\n  }\n}\nfunction isMap(target) {\n  return target instanceof Map;\n}\nfunction isSet(target) {\n  return target instanceof Set;\n}\nfunction latest(state) {\n  return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n  if (isMap(base)) {\n    return new Map(base);\n  }\n  if (isSet(base)) {\n    return new Set(base);\n  }\n  if (Array.isArray(base))\n    return Array.prototype.slice.call(base);\n  const isPlain = isPlainObject(base);\n  if (strict === true || strict === \"class_only\" && !isPlain) {\n    const descriptors = Object.getOwnPropertyDescriptors(base);\n    delete descriptors[DRAFT_STATE];\n    let keys = Reflect.ownKeys(descriptors);\n    for (let i = 0; i < keys.length; i++) {\n      const key = keys[i];\n      const desc = descriptors[key];\n      if (desc.writable === false) {\n        desc.writable = true;\n        desc.configurable = true;\n      }\n      if (desc.get || desc.set)\n        descriptors[key] = {\n          configurable: true,\n          writable: true,\n          // could live with !!desc.set as well here...\n          enumerable: desc.enumerable,\n          value: base[key]\n        };\n    }\n    return Object.create(getPrototypeOf(base), descriptors);\n  } else {\n    const proto = getPrototypeOf(base);\n    if (proto !== null && isPlain) {\n      return { ...base };\n    }\n    const obj = Object.create(proto);\n    return Object.assign(obj, base);\n  }\n}\nfunction freeze(obj, deep = false) {\n  if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n    return obj;\n  if (getArchtype(obj) > 1) {\n    Object.defineProperties(obj, {\n      set: dontMutateMethodOverride,\n      add: dontMutateMethodOverride,\n      clear: dontMutateMethodOverride,\n      delete: dontMutateMethodOverride\n    });\n  }\n  Object.freeze(obj);\n  if (deep)\n    Object.values(obj).forEach((value) => freeze(value, true));\n  return obj;\n}\nfunction dontMutateFrozenCollections() {\n  die(2);\n}\nvar dontMutateMethodOverride = {\n  value: dontMutateFrozenCollections\n};\nfunction isFrozen(obj) {\n  if (obj === null || typeof obj !== \"object\")\n    return true;\n  return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n  const plugin = plugins[pluginKey];\n  if (!plugin) {\n    die(0, pluginKey);\n  }\n  return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n  if (!plugins[pluginKey])\n    plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n  return currentScope;\n}\nfunction createScope(parent_, immer_) {\n  return {\n    drafts_: [],\n    parent_,\n    immer_,\n    // Whenever the modified draft contains a draft from another scope, we\n    // need to prevent auto-freezing so the unowned draft can be finalized.\n    canAutoFreeze_: true,\n    unfinalizedDrafts_: 0\n  };\n}\nfunction usePatchesInScope(scope, patchListener) {\n  if (patchListener) {\n    getPlugin(\"Patches\");\n    scope.patches_ = [];\n    scope.inversePatches_ = [];\n    scope.patchListener_ = patchListener;\n  }\n}\nfunction revokeScope(scope) {\n  leaveScope(scope);\n  scope.drafts_.forEach(revokeDraft);\n  scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n  if (scope === currentScope) {\n    currentScope = scope.parent_;\n  }\n}\nfunction enterScope(immer2) {\n  return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n  const state = draft[DRAFT_STATE];\n  if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n    state.revoke_();\n  else\n    state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n  scope.unfinalizedDrafts_ = scope.drafts_.length;\n  const baseDraft = scope.drafts_[0];\n  const isReplaced = result !== void 0 && result !== baseDraft;\n  if (isReplaced) {\n    if (baseDraft[DRAFT_STATE].modified_) {\n      revokeScope(scope);\n      die(4);\n    }\n    if (isDraftable(result)) {\n      result = finalize(scope, result);\n      if (!scope.parent_)\n        maybeFreeze(scope, result);\n    }\n    if (scope.patches_) {\n      getPlugin(\"Patches\").generateReplacementPatches_(\n        baseDraft[DRAFT_STATE].base_,\n        result,\n        scope.patches_,\n        scope.inversePatches_\n      );\n    }\n  } else {\n    result = finalize(scope, baseDraft, []);\n  }\n  revokeScope(scope);\n  if (scope.patches_) {\n    scope.patchListener_(scope.patches_, scope.inversePatches_);\n  }\n  return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n  if (isFrozen(value))\n    return value;\n  const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();\n  const state = value[DRAFT_STATE];\n  if (!state) {\n    each(\n      value,\n      (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),\n      useStrictIteration\n    );\n    return value;\n  }\n  if (state.scope_ !== rootScope)\n    return value;\n  if (!state.modified_) {\n    maybeFreeze(rootScope, state.base_, true);\n    return state.base_;\n  }\n  if (!state.finalized_) {\n    state.finalized_ = true;\n    state.scope_.unfinalizedDrafts_--;\n    const result = state.copy_;\n    let resultEach = result;\n    let isSet2 = false;\n    if (state.type_ === 3 /* Set */) {\n      resultEach = new Set(result);\n      result.clear();\n      isSet2 = true;\n    }\n    each(\n      resultEach,\n      (key, childValue) => finalizeProperty(\n        rootScope,\n        state,\n        result,\n        key,\n        childValue,\n        path,\n        isSet2\n      ),\n      useStrictIteration\n    );\n    maybeFreeze(rootScope, result, false);\n    if (path && rootScope.patches_) {\n      getPlugin(\"Patches\").generatePatches_(\n        state,\n        path,\n        rootScope.patches_,\n        rootScope.inversePatches_\n      );\n    }\n  }\n  return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n  if (childValue == null) {\n    return;\n  }\n  if (typeof childValue !== \"object\" && !targetIsSet) {\n    return;\n  }\n  const childIsFrozen = isFrozen(childValue);\n  if (childIsFrozen && !targetIsSet) {\n    return;\n  }\n  if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n    die(5);\n  if (isDraft(childValue)) {\n    const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n    !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n    const res = finalize(rootScope, childValue, path);\n    set(targetObject, prop, res);\n    if (isDraft(res)) {\n      rootScope.canAutoFreeze_ = false;\n    } else\n      return;\n  } else if (targetIsSet) {\n    targetObject.add(childValue);\n  }\n  if (isDraftable(childValue) && !childIsFrozen) {\n    if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n      return;\n    }\n    if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {\n      return;\n    }\n    finalize(rootScope, childValue);\n    if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))\n      maybeFreeze(rootScope, childValue);\n  }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n  if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n    freeze(value, deep);\n  }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n  const isArray = Array.isArray(base);\n  const state = {\n    type_: isArray ? 1 /* Array */ : 0 /* Object */,\n    // Track which produce call this is associated with.\n    scope_: parent ? parent.scope_ : getCurrentScope(),\n    // True for both shallow and deep changes.\n    modified_: false,\n    // Used during finalization.\n    finalized_: false,\n    // Track which properties have been assigned (true) or deleted (false).\n    assigned_: {},\n    // The parent draft state.\n    parent_: parent,\n    // The base state.\n    base_: base,\n    // The base proxy.\n    draft_: null,\n    // set below\n    // The base copy with any updated values.\n    copy_: null,\n    // Called by the `produce` function.\n    revoke_: null,\n    isManual_: false\n  };\n  let target = state;\n  let traps = objectTraps;\n  if (isArray) {\n    target = [state];\n    traps = arrayTraps;\n  }\n  const { revoke, proxy } = Proxy.revocable(target, traps);\n  state.draft_ = proxy;\n  state.revoke_ = revoke;\n  return proxy;\n}\nvar objectTraps = {\n  get(state, prop) {\n    if (prop === DRAFT_STATE)\n      return state;\n    const source = latest(state);\n    if (!has(source, prop)) {\n      return readPropFromProto(state, source, prop);\n    }\n    const value = source[prop];\n    if (state.finalized_ || !isDraftable(value)) {\n      return value;\n    }\n    if (value === peek(state.base_, prop)) {\n      prepareCopy(state);\n      return state.copy_[prop] = createProxy(value, state);\n    }\n    return value;\n  },\n  has(state, prop) {\n    return prop in latest(state);\n  },\n  ownKeys(state) {\n    return Reflect.ownKeys(latest(state));\n  },\n  set(state, prop, value) {\n    const desc = getDescriptorFromProto(latest(state), prop);\n    if (desc?.set) {\n      desc.set.call(state.draft_, value);\n      return true;\n    }\n    if (!state.modified_) {\n      const current2 = peek(latest(state), prop);\n      const currentState = current2?.[DRAFT_STATE];\n      if (currentState && currentState.base_ === value) {\n        state.copy_[prop] = value;\n        state.assigned_[prop] = false;\n        return true;\n      }\n      if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n        return true;\n      prepareCopy(state);\n      markChanged(state);\n    }\n    if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n    (value !== void 0 || prop in state.copy_) || // special case: NaN\n    Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n      return true;\n    state.copy_[prop] = value;\n    state.assigned_[prop] = true;\n    return true;\n  },\n  deleteProperty(state, prop) {\n    if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n      state.assigned_[prop] = false;\n      prepareCopy(state);\n      markChanged(state);\n    } else {\n      delete state.assigned_[prop];\n    }\n    if (state.copy_) {\n      delete state.copy_[prop];\n    }\n    return true;\n  },\n  // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n  // the same guarantee in ES5 mode.\n  getOwnPropertyDescriptor(state, prop) {\n    const owner = latest(state);\n    const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n    if (!desc)\n      return desc;\n    return {\n      writable: true,\n      configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n      enumerable: desc.enumerable,\n      value: owner[prop]\n    };\n  },\n  defineProperty() {\n    die(11);\n  },\n  getPrototypeOf(state) {\n    return getPrototypeOf(state.base_);\n  },\n  setPrototypeOf() {\n    die(12);\n  }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n  arrayTraps[key] = function() {\n    arguments[0] = arguments[0][0];\n    return fn.apply(this, arguments);\n  };\n});\narrayTraps.deleteProperty = function(state, prop) {\n  if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n    die(13);\n  return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n  if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n    die(14);\n  return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n  const state = draft[DRAFT_STATE];\n  const source = state ? latest(state) : draft;\n  return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n  const desc = getDescriptorFromProto(source, prop);\n  return desc ? `value` in desc ? desc.value : (\n    // This is a very special case, if the prop is a getter defined by the\n    // prototype, we should invoke it with the draft as context!\n    desc.get?.call(state.draft_)\n  ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n  if (!(prop in source))\n    return void 0;\n  let proto = getPrototypeOf(source);\n  while (proto) {\n    const desc = Object.getOwnPropertyDescriptor(proto, prop);\n    if (desc)\n      return desc;\n    proto = getPrototypeOf(proto);\n  }\n  return void 0;\n}\nfunction markChanged(state) {\n  if (!state.modified_) {\n    state.modified_ = true;\n    if (state.parent_) {\n      markChanged(state.parent_);\n    }\n  }\n}\nfunction prepareCopy(state) {\n  if (!state.copy_) {\n    state.copy_ = shallowCopy(\n      state.base_,\n      state.scope_.immer_.useStrictShallowCopy_\n    );\n  }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n  constructor(config) {\n    this.autoFreeze_ = true;\n    this.useStrictShallowCopy_ = false;\n    this.useStrictIteration_ = true;\n    /**\n     * The `produce` function takes a value and a \"recipe function\" (whose\n     * return value often depends on the base state). The recipe function is\n     * free to mutate its first argument however it wants. All mutations are\n     * only ever applied to a __copy__ of the base state.\n     *\n     * Pass only a function to create a \"curried producer\" which relieves you\n     * from passing the recipe function every time.\n     *\n     * Only plain objects and arrays are made mutable. All other objects are\n     * considered uncopyable.\n     *\n     * Note: This function is __bound__ to its `Immer` instance.\n     *\n     * @param {any} base - the initial state\n     * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n     * @param {Function} patchListener - optional function that will be called with all the patches produced here\n     * @returns {any} a new state, or the initial state if nothing was modified\n     */\n    this.produce = (base, recipe, patchListener) => {\n      if (typeof base === \"function\" && typeof recipe !== \"function\") {\n        const defaultBase = recipe;\n        recipe = base;\n        const self = this;\n        return function curriedProduce(base2 = defaultBase, ...args) {\n          return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n        };\n      }\n      if (typeof recipe !== \"function\")\n        die(6);\n      if (patchListener !== void 0 && typeof patchListener !== \"function\")\n        die(7);\n      let result;\n      if (isDraftable(base)) {\n        const scope = enterScope(this);\n        const proxy = createProxy(base, void 0);\n        let hasError = true;\n        try {\n          result = recipe(proxy);\n          hasError = false;\n        } finally {\n          if (hasError)\n            revokeScope(scope);\n          else\n            leaveScope(scope);\n        }\n        usePatchesInScope(scope, patchListener);\n        return processResult(result, scope);\n      } else if (!base || typeof base !== \"object\") {\n        result = recipe(base);\n        if (result === void 0)\n          result = base;\n        if (result === NOTHING)\n          result = void 0;\n        if (this.autoFreeze_)\n          freeze(result, true);\n        if (patchListener) {\n          const p = [];\n          const ip = [];\n          getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n          patchListener(p, ip);\n        }\n        return result;\n      } else\n        die(1, base);\n    };\n    this.produceWithPatches = (base, recipe) => {\n      if (typeof base === \"function\") {\n        return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n      }\n      let patches, inversePatches;\n      const result = this.produce(base, recipe, (p, ip) => {\n        patches = p;\n        inversePatches = ip;\n      });\n      return [result, patches, inversePatches];\n    };\n    if (typeof config?.autoFreeze === \"boolean\")\n      this.setAutoFreeze(config.autoFreeze);\n    if (typeof config?.useStrictShallowCopy === \"boolean\")\n      this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n    if (typeof config?.useStrictIteration === \"boolean\")\n      this.setUseStrictIteration(config.useStrictIteration);\n  }\n  createDraft(base) {\n    if (!isDraftable(base))\n      die(8);\n    if (isDraft(base))\n      base = current(base);\n    const scope = enterScope(this);\n    const proxy = createProxy(base, void 0);\n    proxy[DRAFT_STATE].isManual_ = true;\n    leaveScope(scope);\n    return proxy;\n  }\n  finishDraft(draft, patchListener) {\n    const state = draft && draft[DRAFT_STATE];\n    if (!state || !state.isManual_)\n      die(9);\n    const { scope_: scope } = state;\n    usePatchesInScope(scope, patchListener);\n    return processResult(void 0, scope);\n  }\n  /**\n   * Pass true to automatically freeze all copies created by Immer.\n   *\n   * By default, auto-freezing is enabled.\n   */\n  setAutoFreeze(value) {\n    this.autoFreeze_ = value;\n  }\n  /**\n   * Pass true to enable strict shallow copy.\n   *\n   * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n   */\n  setUseStrictShallowCopy(value) {\n    this.useStrictShallowCopy_ = value;\n  }\n  /**\n   * Pass false to use faster iteration that skips non-enumerable properties\n   * but still handles symbols for compatibility.\n   *\n   * By default, strict iteration is enabled (includes all own properties).\n   */\n  setUseStrictIteration(value) {\n    this.useStrictIteration_ = value;\n  }\n  shouldUseStrictIteration() {\n    return this.useStrictIteration_;\n  }\n  applyPatches(base, patches) {\n    let i;\n    for (i = patches.length - 1; i >= 0; i--) {\n      const patch = patches[i];\n      if (patch.path.length === 0 && patch.op === \"replace\") {\n        base = patch.value;\n        break;\n      }\n    }\n    if (i > -1) {\n      patches = patches.slice(i + 1);\n    }\n    const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n    if (isDraft(base)) {\n      return applyPatchesImpl(base, patches);\n    }\n    return this.produce(\n      base,\n      (draft) => applyPatchesImpl(draft, patches)\n    );\n  }\n};\nfunction createProxy(value, parent) {\n  const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n  const scope = parent ? parent.scope_ : getCurrentScope();\n  scope.drafts_.push(draft);\n  return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n  if (!isDraft(value))\n    die(10, value);\n  return currentImpl(value);\n}\nfunction currentImpl(value) {\n  if (!isDraftable(value) || isFrozen(value))\n    return value;\n  const state = value[DRAFT_STATE];\n  let copy;\n  let strict = true;\n  if (state) {\n    if (!state.modified_)\n      return state.base_;\n    state.finalized_ = true;\n    copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n    strict = state.scope_.immer_.shouldUseStrictIteration();\n  } else {\n    copy = shallowCopy(value, true);\n  }\n  each(\n    copy,\n    (key, childValue) => {\n      set(copy, key, currentImpl(childValue));\n    },\n    strict\n  );\n  if (state) {\n    state.finalized_ = false;\n  }\n  return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n  const errorOffset = 16;\n  if (process.env.NODE_ENV !== \"production\") {\n    errors.push(\n      'Sets cannot have \"replace\" patches.',\n      function(op) {\n        return \"Unsupported patch operation: \" + op;\n      },\n      function(path) {\n        return \"Cannot apply patch, path doesn't resolve: \" + path;\n      },\n      \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n    );\n  }\n  const REPLACE = \"replace\";\n  const ADD = \"add\";\n  const REMOVE = \"remove\";\n  function generatePatches_(state, basePath, patches, inversePatches) {\n    switch (state.type_) {\n      case 0 /* Object */:\n      case 2 /* Map */:\n        return generatePatchesFromAssigned(\n          state,\n          basePath,\n          patches,\n          inversePatches\n        );\n      case 1 /* Array */:\n        return generateArrayPatches(state, basePath, patches, inversePatches);\n      case 3 /* Set */:\n        return generateSetPatches(\n          state,\n          basePath,\n          patches,\n          inversePatches\n        );\n    }\n  }\n  function generateArrayPatches(state, basePath, patches, inversePatches) {\n    let { base_, assigned_ } = state;\n    let copy_ = state.copy_;\n    if (copy_.length < base_.length) {\n      ;\n      [base_, copy_] = [copy_, base_];\n      [patches, inversePatches] = [inversePatches, patches];\n    }\n    for (let i = 0; i < base_.length; i++) {\n      if (assigned_[i] && copy_[i] !== base_[i]) {\n        const path = basePath.concat([i]);\n        patches.push({\n          op: REPLACE,\n          path,\n          // Need to maybe clone it, as it can in fact be the original value\n          // due to the base/copy inversion at the start of this function\n          value: clonePatchValueIfNeeded(copy_[i])\n        });\n        inversePatches.push({\n          op: REPLACE,\n          path,\n          value: clonePatchValueIfNeeded(base_[i])\n        });\n      }\n    }\n    for (let i = base_.length; i < copy_.length; i++) {\n      const path = basePath.concat([i]);\n      patches.push({\n        op: ADD,\n        path,\n        // Need to maybe clone it, as it can in fact be the original value\n        // due to the base/copy inversion at the start of this function\n        value: clonePatchValueIfNeeded(copy_[i])\n      });\n    }\n    for (let i = copy_.length - 1; base_.length <= i; --i) {\n      const path = basePath.concat([i]);\n      inversePatches.push({\n        op: REMOVE,\n        path\n      });\n    }\n  }\n  function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n    const { base_, copy_ } = state;\n    each(state.assigned_, (key, assignedValue) => {\n      const origValue = get(base_, key);\n      const value = get(copy_, key);\n      const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n      if (origValue === value && op === REPLACE)\n        return;\n      const path = basePath.concat(key);\n      patches.push(op === REMOVE ? { op, path } : { op, path, value });\n      inversePatches.push(\n        op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n      );\n    });\n  }\n  function generateSetPatches(state, basePath, patches, inversePatches) {\n    let { base_, copy_ } = state;\n    let i = 0;\n    base_.forEach((value) => {\n      if (!copy_.has(value)) {\n        const path = basePath.concat([i]);\n        patches.push({\n          op: REMOVE,\n          path,\n          value\n        });\n        inversePatches.unshift({\n          op: ADD,\n          path,\n          value\n        });\n      }\n      i++;\n    });\n    i = 0;\n    copy_.forEach((value) => {\n      if (!base_.has(value)) {\n        const path = basePath.concat([i]);\n        patches.push({\n          op: ADD,\n          path,\n          value\n        });\n        inversePatches.unshift({\n          op: REMOVE,\n          path,\n          value\n        });\n      }\n      i++;\n    });\n  }\n  function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n    patches.push({\n      op: REPLACE,\n      path: [],\n      value: replacement === NOTHING ? void 0 : replacement\n    });\n    inversePatches.push({\n      op: REPLACE,\n      path: [],\n      value: baseValue\n    });\n  }\n  function applyPatches_(draft, patches) {\n    patches.forEach((patch) => {\n      const { path, op } = patch;\n      let base = draft;\n      for (let i = 0; i < path.length - 1; i++) {\n        const parentType = getArchtype(base);\n        let p = path[i];\n        if (typeof p !== \"string\" && typeof p !== \"number\") {\n          p = \"\" + p;\n        }\n        if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n          die(errorOffset + 3);\n        if (typeof base === \"function\" && p === \"prototype\")\n          die(errorOffset + 3);\n        base = get(base, p);\n        if (typeof base !== \"object\")\n          die(errorOffset + 2, path.join(\"/\"));\n      }\n      const type = getArchtype(base);\n      const value = deepClonePatchValue(patch.value);\n      const key = path[path.length - 1];\n      switch (op) {\n        case REPLACE:\n          switch (type) {\n            case 2 /* Map */:\n              return base.set(key, value);\n            case 3 /* Set */:\n              die(errorOffset);\n            default:\n              return base[key] = value;\n          }\n        case ADD:\n          switch (type) {\n            case 1 /* Array */:\n              return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n            case 2 /* Map */:\n              return base.set(key, value);\n            case 3 /* Set */:\n              return base.add(value);\n            default:\n              return base[key] = value;\n          }\n        case REMOVE:\n          switch (type) {\n            case 1 /* Array */:\n              return base.splice(key, 1);\n            case 2 /* Map */:\n              return base.delete(key);\n            case 3 /* Set */:\n              return base.delete(patch.value);\n            default:\n              return delete base[key];\n          }\n        default:\n          die(errorOffset + 1, op);\n      }\n    });\n    return draft;\n  }\n  function deepClonePatchValue(obj) {\n    if (!isDraftable(obj))\n      return obj;\n    if (Array.isArray(obj))\n      return obj.map(deepClonePatchValue);\n    if (isMap(obj))\n      return new Map(\n        Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n      );\n    if (isSet(obj))\n      return new Set(Array.from(obj).map(deepClonePatchValue));\n    const cloned = Object.create(getPrototypeOf(obj));\n    for (const key in obj)\n      cloned[key] = deepClonePatchValue(obj[key]);\n    if (has(obj, DRAFTABLE))\n      cloned[DRAFTABLE] = obj[DRAFTABLE];\n    return cloned;\n  }\n  function clonePatchValueIfNeeded(obj) {\n    if (isDraft(obj)) {\n      return deepClonePatchValue(obj);\n    } else\n      return obj;\n  }\n  loadPlugin(\"Patches\", {\n    applyPatches_,\n    generatePatches_,\n    generateReplacementPatches_\n  });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n  class DraftMap extends Map {\n    constructor(target, parent) {\n      super();\n      this[DRAFT_STATE] = {\n        type_: 2 /* Map */,\n        parent_: parent,\n        scope_: parent ? parent.scope_ : getCurrentScope(),\n        modified_: false,\n        finalized_: false,\n        copy_: void 0,\n        assigned_: void 0,\n        base_: target,\n        draft_: this,\n        isManual_: false,\n        revoked_: false\n      };\n    }\n    get size() {\n      return latest(this[DRAFT_STATE]).size;\n    }\n    has(key) {\n      return latest(this[DRAFT_STATE]).has(key);\n    }\n    set(key, value) {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      if (!latest(state).has(key) || latest(state).get(key) !== value) {\n        prepareMapCopy(state);\n        markChanged(state);\n        state.assigned_.set(key, true);\n        state.copy_.set(key, value);\n        state.assigned_.set(key, true);\n      }\n      return this;\n    }\n    delete(key) {\n      if (!this.has(key)) {\n        return false;\n      }\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      prepareMapCopy(state);\n      markChanged(state);\n      if (state.base_.has(key)) {\n        state.assigned_.set(key, false);\n      } else {\n        state.assigned_.delete(key);\n      }\n      state.copy_.delete(key);\n      return true;\n    }\n    clear() {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      if (latest(state).size) {\n        prepareMapCopy(state);\n        markChanged(state);\n        state.assigned_ = /* @__PURE__ */ new Map();\n        each(state.base_, (key) => {\n          state.assigned_.set(key, false);\n        });\n        state.copy_.clear();\n      }\n    }\n    forEach(cb, thisArg) {\n      const state = this[DRAFT_STATE];\n      latest(state).forEach((_value, key, _map) => {\n        cb.call(thisArg, this.get(key), key, this);\n      });\n    }\n    get(key) {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      const value = latest(state).get(key);\n      if (state.finalized_ || !isDraftable(value)) {\n        return value;\n      }\n      if (value !== state.base_.get(key)) {\n        return value;\n      }\n      const draft = createProxy(value, state);\n      prepareMapCopy(state);\n      state.copy_.set(key, draft);\n      return draft;\n    }\n    keys() {\n      return latest(this[DRAFT_STATE]).keys();\n    }\n    values() {\n      const iterator = this.keys();\n      return {\n        [Symbol.iterator]: () => this.values(),\n        next: () => {\n          const r = iterator.next();\n          if (r.done)\n            return r;\n          const value = this.get(r.value);\n          return {\n            done: false,\n            value\n          };\n        }\n      };\n    }\n    entries() {\n      const iterator = this.keys();\n      return {\n        [Symbol.iterator]: () => this.entries(),\n        next: () => {\n          const r = iterator.next();\n          if (r.done)\n            return r;\n          const value = this.get(r.value);\n          return {\n            done: false,\n            value: [r.value, value]\n          };\n        }\n      };\n    }\n    [(DRAFT_STATE, Symbol.iterator)]() {\n      return this.entries();\n    }\n  }\n  function proxyMap_(target, parent) {\n    return new DraftMap(target, parent);\n  }\n  function prepareMapCopy(state) {\n    if (!state.copy_) {\n      state.assigned_ = /* @__PURE__ */ new Map();\n      state.copy_ = new Map(state.base_);\n    }\n  }\n  class DraftSet extends Set {\n    constructor(target, parent) {\n      super();\n      this[DRAFT_STATE] = {\n        type_: 3 /* Set */,\n        parent_: parent,\n        scope_: parent ? parent.scope_ : getCurrentScope(),\n        modified_: false,\n        finalized_: false,\n        copy_: void 0,\n        base_: target,\n        draft_: this,\n        drafts_: /* @__PURE__ */ new Map(),\n        revoked_: false,\n        isManual_: false\n      };\n    }\n    get size() {\n      return latest(this[DRAFT_STATE]).size;\n    }\n    has(value) {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      if (!state.copy_) {\n        return state.base_.has(value);\n      }\n      if (state.copy_.has(value))\n        return true;\n      if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n        return true;\n      return false;\n    }\n    add(value) {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      if (!this.has(value)) {\n        prepareSetCopy(state);\n        markChanged(state);\n        state.copy_.add(value);\n      }\n      return this;\n    }\n    delete(value) {\n      if (!this.has(value)) {\n        return false;\n      }\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      prepareSetCopy(state);\n      markChanged(state);\n      return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n        /* istanbul ignore next */\n        false\n      ));\n    }\n    clear() {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      if (latest(state).size) {\n        prepareSetCopy(state);\n        markChanged(state);\n        state.copy_.clear();\n      }\n    }\n    values() {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      prepareSetCopy(state);\n      return state.copy_.values();\n    }\n    entries() {\n      const state = this[DRAFT_STATE];\n      assertUnrevoked(state);\n      prepareSetCopy(state);\n      return state.copy_.entries();\n    }\n    keys() {\n      return this.values();\n    }\n    [(DRAFT_STATE, Symbol.iterator)]() {\n      return this.values();\n    }\n    forEach(cb, thisArg) {\n      const iterator = this.values();\n      let result = iterator.next();\n      while (!result.done) {\n        cb.call(thisArg, result.value, result.value, this);\n        result = iterator.next();\n      }\n    }\n  }\n  function proxySet_(target, parent) {\n    return new DraftSet(target, parent);\n  }\n  function prepareSetCopy(state) {\n    if (!state.copy_) {\n      state.copy_ = /* @__PURE__ */ new Set();\n      state.base_.forEach((value) => {\n        if (isDraftable(value)) {\n          const draft = createProxy(value, state);\n          state.drafts_.set(value, draft);\n          state.copy_.add(draft);\n        } else {\n          state.copy_.add(value);\n        }\n      });\n    }\n  }\n  function assertUnrevoked(state) {\n    if (state.revoked_)\n      die(3, JSON.stringify(latest(state)));\n  }\n  loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n  immer\n);\nvar setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n  immer\n);\nvar setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n  immer\n);\nvar applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);\nvar createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);\nvar finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n  return value;\n}\nfunction castImmutable(value) {\n  return value;\n}\nexport {\n  Immer2 as Immer,\n  applyPatches,\n  castDraft,\n  castImmutable,\n  createDraft,\n  current,\n  enableMapSet,\n  enablePatches,\n  finishDraft,\n  freeze,\n  DRAFTABLE as immerable,\n  isDraft,\n  isDraftable,\n  NOTHING as nothing,\n  original,\n  produce,\n  produceWithPatches,\n  setAutoFreeze,\n  setUseStrictIteration,\n  setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { createSlice, current, PayloadAction, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { LayoutType, Size } from '../util/types';\nimport { HorizontalAlignmentType, LegendPayload, VerticalAlignmentType } from '../component/DefaultLegendContent';\nimport type { LegendItemSorter } from '../component/Legend';\n\nexport type LegendSettings = {\n  layout: LayoutType;\n  align: HorizontalAlignmentType;\n  verticalAlign: VerticalAlignmentType;\n  itemSorter: LegendItemSorter | null;\n};\n\n/**\n * The properties inside this state update independently of each other and quite often.\n * When selecting, never select the whole state because you are going to get\n * unnecessary re-renders. Select only the properties you need.\n *\n * This is why this state type is not exported - don't use it directly.\n */\ntype LegendState = {\n  settings: LegendSettings;\n  size: Size;\n  /**\n   * This is a 2D array of LegendPayloads. The first dimension is for each graphical item.\n   * Some items may have multiple legend items, so the second dimension is for each legend item.\n   */\n  payload: ReadonlyArray<ReadonlyArray<LegendPayload>>;\n};\n\nconst initialState: LegendState = {\n  settings: {\n    layout: 'horizontal',\n    align: 'center',\n    verticalAlign: 'middle',\n    itemSorter: 'value',\n  },\n  size: {\n    width: 0,\n    height: 0,\n  },\n  payload: [],\n};\n\nconst legendSlice = createSlice({\n  name: 'legend',\n  initialState,\n  reducers: {\n    setLegendSize(state, action: PayloadAction<Size>) {\n      state.size.width = action.payload.width;\n      state.size.height = action.payload.height;\n    },\n    setLegendSettings(state, action: PayloadAction<LegendSettings>) {\n      state.settings.align = action.payload.align;\n      state.settings.layout = action.payload.layout;\n      state.settings.verticalAlign = action.payload.verticalAlign;\n      state.settings.itemSorter = action.payload.itemSorter;\n    },\n    addLegendPayload: {\n      reducer(state, action: PayloadAction<ReadonlyArray<LegendPayload>>) {\n        state.payload.push(castDraft(action.payload));\n      },\n      prepare: prepareAutoBatched<ReadonlyArray<LegendPayload>>(),\n    },\n    replaceLegendPayload: {\n      reducer(\n        state,\n        action: PayloadAction<{\n          prev: ReadonlyArray<LegendPayload>;\n          next: ReadonlyArray<LegendPayload>;\n        }>,\n      ) {\n        const { prev, next } = action.payload;\n        const index = current(state).payload.indexOf(castDraft(prev));\n        if (index > -1) {\n          state.payload[index] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<{\n        prev: ReadonlyArray<LegendPayload>;\n        next: ReadonlyArray<LegendPayload>;\n      }>(),\n    },\n    removeLegendPayload: {\n      reducer(state, action: PayloadAction<ReadonlyArray<LegendPayload>>) {\n        const index = current(state).payload.indexOf(castDraft(action.payload));\n        if (index > -1) {\n          state.payload.splice(index, 1);\n        }\n      },\n      prepare: prepareAutoBatched<ReadonlyArray<LegendPayload>>(),\n    },\n  },\n});\n\nexport const { setLegendSize, setLegendSettings, addLegendPayload, replaceLegendPayload, removeLegendPayload } =\n  legendSlice.actions;\n\nexport const legendReducer = legendSlice.reducer;\n","import * as React from 'react';\nimport { CSSProperties, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useLegendPortal } from '../context/legendPortalContext';\nimport {\n  ContentType,\n  DefaultLegendContent,\n  LegendPayload,\n  Props as DefaultLegendContentProps,\n  VerticalAlignmentType,\n} from './DefaultLegendContent';\n\nimport { LayoutType, Margin, Size } from '../util/types';\nimport { getUniqPayload, UniqueOption } from '../util/payload/getUniqPayload';\nimport { useLegendPayload } from '../context/legendPayloadContext';\nimport { ElementOffset, useElementOffset } from '../util/useElementOffset';\nimport { useChartHeight, useChartWidth, useMargin } from '../context/chartLayoutContext';\nimport { LegendSettings, setLegendSettings, setLegendSize } from '../state/legendSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\nfunction defaultUniqBy(entry: LegendPayload) {\n  return entry.value;\n}\n\ntype ContentProps = Props & {\n  margin: Margin | undefined;\n  chartWidth: number;\n  chartHeight: number;\n  contextPayload: ReadonlyArray<LegendPayload>;\n};\n\nfunction LegendContent(props: ContentProps) {\n  const { contextPayload, ...otherProps } = props;\n  const finalPayload = getUniqPayload(contextPayload, props.payloadUniqBy, defaultUniqBy);\n  const contentProps = {\n    ...otherProps,\n    payload: finalPayload,\n  };\n\n  if (React.isValidElement(props.content)) {\n    return React.cloneElement(props.content, contentProps);\n  }\n  if (typeof props.content === 'function') {\n    return React.createElement(props.content as any, contentProps);\n  }\n\n  return <DefaultLegendContent {...contentProps} />;\n}\n\ntype PositionInput = {\n  layout?: Props['layout'];\n  align?: Props['align'];\n  verticalAlign?: Props['verticalAlign'];\n};\n\nfunction getDefaultPosition(\n  style: CSSProperties | undefined,\n  props: PositionInput,\n  margin: Margin | undefined,\n  chartWidth: number,\n  chartHeight: number,\n  box: ElementOffset,\n) {\n  const { layout, align, verticalAlign } = props;\n  let hPos, vPos;\n\n  if (\n    !style ||\n    ((style.left === undefined || style.left === null) && (style.right === undefined || style.right === null))\n  ) {\n    if (align === 'center' && layout === 'vertical') {\n      hPos = { left: ((chartWidth || 0) - box.width) / 2 };\n    } else {\n      hPos = align === 'right' ? { right: (margin && margin.right) || 0 } : { left: (margin && margin.left) || 0 };\n    }\n  }\n\n  if (\n    !style ||\n    ((style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null))\n  ) {\n    if (verticalAlign === 'middle') {\n      vPos = { top: ((chartHeight || 0) - box.height) / 2 };\n    } else {\n      vPos =\n        verticalAlign === 'bottom' ? { bottom: (margin && margin.bottom) || 0 } : { top: (margin && margin.top) || 0 };\n    }\n  }\n\n  return { ...hPos, ...vPos };\n}\n\nexport type LegendItemSorter = 'value' | 'dataKey' | ((item: LegendPayload) => number | string);\n\nexport type Props = Omit<DefaultLegendContentProps, 'payload' | 'ref' | 'verticalAlign'> & {\n  /**\n   * Renders the content of the legend.\n   *\n   * This should return HTML elements, not SVG elements.\n   *\n   * - If not set, the {@link DefaultLegendContent} component is used.\n   * - If set to a React element, this element will be cloned and extra props will be passed in.\n   * - If set to a function, the function will be called and should return HTML elements.\n   *\n   * @example <Legend content={CustomizedLegend} />\n   * @example <Legend content={renderLegend} />\n   */\n  content?: ContentType;\n  /**\n   * CSS styles to be applied to the wrapper `div` element.\n   */\n  wrapperStyle?: CSSProperties;\n  /**\n   * Width of the legend.\n   * Accept CSS style string values like `100%` or `fit-content`, or number values like `400`.\n   */\n  width?: number | string;\n  /**\n   * Height of the legend.\n   * Accept CSS style string values like `100%` or `fit-content`, or number values like `400`.\n   */\n  height?: number | string;\n  payloadUniqBy?: UniqueOption<LegendPayload>;\n  onBBoxUpdate?: (box: ElementOffset | null) => void;\n  /**\n   * If portal is defined, then Legend will use this element as a target\n   * for rendering using React Portal.\n   *\n   * If this is undefined then Legend renders inside the recharts-wrapper element.\n   *\n   * @see {@link https://react.dev/reference/react-dom/createPortal}\n   */\n  portal?: HTMLElement | null;\n  /**\n   * Sorts Legend items. Defaults to `value` which means it will sort alphabetically\n   * by the label.\n   *\n   * If `null` is provided then the payload is not sorted. Be aware that without sort,\n   * the order of items may change between renders!\n   *\n   * @defaultValue value\n   */\n  itemSorter?: LegendItemSorter | null;\n  /**\n   * The alignment of the whole Legend container:\n   *\n   * - `bottom`: shows the Legend below chart, and chart height reduces automatically to make space for it.\n   * - `top`: shows the Legend above chart, and chart height reduces automatically.\n   * - `middle`:  shows the Legend in the middle of chart, covering other content, and chart height remains unchanged.\n   * The exact behavior changes depending on `align` prop.\n   *\n   * @defaultValue bottom\n   */\n  verticalAlign?: VerticalAlignmentType;\n};\n\nfunction LegendSettingsDispatcher(props: LegendSettings): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(setLegendSettings(props));\n  }, [dispatch, props]);\n  return null;\n}\n\nfunction LegendSizeDispatcher(props: Size): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(setLegendSize(props));\n    return () => {\n      dispatch(setLegendSize({ width: 0, height: 0 }));\n    };\n  }, [dispatch, props]);\n  return null;\n}\n\nfunction getWidthOrHeight(\n  layout: LayoutType | undefined,\n  height: number | string | undefined,\n  width: number | string | undefined,\n  maxWidth: number,\n): null | { height?: number | string; width?: number | string } {\n  if (layout === 'vertical' && height != null) {\n    return {\n      height,\n    };\n  }\n  if (layout === 'horizontal') {\n    return {\n      width: width || maxWidth,\n    };\n  }\n\n  return null;\n}\n\nexport const legendDefaultProps = {\n  align: 'center',\n  iconSize: 14,\n  inactiveColor: '#ccc',\n  itemSorter: 'value',\n  layout: 'horizontal',\n  verticalAlign: 'bottom',\n} as const satisfies Partial<Props>;\n\n/**\n * @consumes CartesianChartContext\n * @consumes PolarChartContext\n */\nexport function Legend(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, legendDefaultProps);\n  const contextPayload = useLegendPayload();\n  const legendPortalFromContext = useLegendPortal();\n  const margin = useMargin();\n  const { width: widthFromProps, height: heightFromProps, wrapperStyle, portal: portalFromProps } = props;\n  // The contextPayload is not used directly inside the hook, but we need the onBBoxUpdate call\n  // when the payload changes, therefore it's here as a dependency.\n  const [lastBoundingBox, updateBoundingBox] = useElementOffset([contextPayload]);\n  const chartWidth = useChartWidth();\n  const chartHeight = useChartHeight();\n  if (chartWidth == null || chartHeight == null) {\n    return null;\n  }\n  const maxWidth = chartWidth - (margin?.left || 0) - (margin?.right || 0);\n  const widthOrHeight = getWidthOrHeight(props.layout, heightFromProps, widthFromProps, maxWidth);\n  // if the user supplies their own portal, only use their defined wrapper styles\n  const outerStyle: CSSProperties | undefined = portalFromProps\n    ? wrapperStyle\n    : {\n        position: 'absolute',\n        width: widthOrHeight?.width || widthFromProps || 'auto',\n        height: widthOrHeight?.height || heightFromProps || 'auto',\n        ...getDefaultPosition(wrapperStyle, props, margin, chartWidth, chartHeight, lastBoundingBox),\n        ...wrapperStyle,\n      };\n\n  const legendPortal = portalFromProps ?? legendPortalFromContext;\n\n  if (legendPortal == null || contextPayload == null) {\n    return null;\n  }\n\n  const legendElement = (\n    <div className=\"recharts-legend-wrapper\" style={outerStyle} ref={updateBoundingBox}>\n      <LegendSettingsDispatcher\n        layout={props.layout}\n        align={props.align}\n        verticalAlign={props.verticalAlign}\n        itemSorter={props.itemSorter}\n      />\n      {/* if we have a portal from props nothing should need the size of the legend */}\n      {!portalFromProps && <LegendSizeDispatcher width={lastBoundingBox.width} height={lastBoundingBox.height} />}\n      <LegendContent\n        {...props}\n        {...widthOrHeight}\n        margin={margin}\n        chartWidth={chartWidth}\n        chartHeight={chartHeight}\n        contextPayload={contextPayload}\n      />\n    </div>\n  );\n\n  return createPortal(legendElement, legendPortal);\n}\n\nLegend.displayName = 'Legend';\n","import { LegendPayload } from '../component/DefaultLegendContent';\nimport { useAppSelector } from '../state/hooks';\nimport { selectLegendPayload } from '../state/selectors/legendSelectors';\n\n/**\n * Use this hook in Legend, or anywhere else where you want to read the current Legend items.\n * @return all Legend items ready to be rendered\n */\nexport function useLegendPayload(): ReadonlyArray<LegendPayload> | undefined {\n  return useAppSelector(selectLegendPayload);\n}\n","/**\n * @fileOverview Default Tooltip Content\n */\n\nimport * as React from 'react';\nimport { CSSProperties, HTMLAttributes, ReactNode, SVGProps } from 'react';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumOrStr } from '../util/DataUtils';\nimport { DataKey } from '../util/types';\n\nfunction defaultFormatter(value: ValueType | undefined): React.ReactNode {\n  return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport type TooltipType = 'none';\nexport type ValueType = number | string | ReadonlyArray<number | string>;\nexport type NameType = number | string;\nexport type Formatter<TValue extends ValueType, TName extends NameType> = (\n  value: TValue | undefined,\n  name: TName | undefined,\n  item: Payload<TValue, TName>,\n  index: number,\n  payload: ReadonlyArray<Payload<TValue, TName>>,\n) => [React.ReactNode, TName] | React.ReactNode;\n\nexport interface Payload<TValue extends ValueType, TName extends NameType> extends Omit<SVGProps<SVGElement>, 'name'> {\n  type?: TooltipType;\n  color?: string;\n  formatter?: Formatter<TValue, TName>;\n  name?: TName;\n  value?: TValue;\n  unit?: ReactNode;\n  fill?: string;\n  dataKey?: DataKey<any>;\n  nameKey?: DataKey<any>;\n  payload?: any;\n  chartType?: string;\n  stroke?: string;\n  strokeDasharray?: string | number;\n  strokeWidth?: number | string;\n  className?: string;\n  hide?: boolean;\n  /**\n   * The id of the graphical item that the data point belongs to\n   */\n  graphicalItemId: string;\n}\n\nexport interface Props<TValue extends ValueType, TName extends NameType> {\n  separator?: string;\n  wrapperClassName?: string;\n  labelClassName?: string;\n  formatter?: Formatter<TValue, TName>;\n  contentStyle?: CSSProperties;\n  itemStyle?: CSSProperties;\n  labelStyle?: CSSProperties;\n  labelFormatter?: (label: ReactNode, payload: ReadonlyArray<Payload<TValue, TName>>) => ReactNode;\n  label?: ReactNode;\n  payload?: ReadonlyArray<Payload<TValue, TName>>;\n  itemSorter?: 'dataKey' | 'value' | 'name' | ((item: Payload<TValue, TName>) => number | string | undefined);\n  accessibilityLayer?: boolean;\n}\n\nexport const defaultDefaultTooltipContentProps = {\n  separator: ' : ',\n  contentStyle: {\n    margin: 0,\n    padding: 10,\n    backgroundColor: '#fff',\n    border: '1px solid #ccc',\n    whiteSpace: 'nowrap',\n  },\n  itemStyle: {\n    display: 'block',\n    paddingTop: 4,\n    paddingBottom: 4,\n    color: '#000',\n  },\n  labelStyle: {},\n  accessibilityLayer: false,\n} as const satisfies Partial<Props<any, any>>;\n\n/**\n * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.\n *\n * You can use this component to customize the content of the tooltip,\n * or you can provide your own completely independent content.\n */\nexport const DefaultTooltipContent = <TValue extends ValueType, TName extends NameType>(\n  props: Props<TValue, TName>,\n) => {\n  const {\n    separator = defaultDefaultTooltipContentProps.separator,\n    contentStyle,\n    itemStyle,\n    labelStyle = defaultDefaultTooltipContentProps.labelStyle,\n    payload,\n    formatter,\n    itemSorter,\n    wrapperClassName,\n    labelClassName,\n    label,\n    labelFormatter,\n    accessibilityLayer = defaultDefaultTooltipContentProps.accessibilityLayer,\n  } = props;\n\n  const renderContent = () => {\n    if (payload && payload.length) {\n      const listStyle = { padding: 0, margin: 0 };\n\n      const items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(\n        (entry: Payload<TValue, TName>, i: number) => {\n          if (entry.type === 'none') {\n            return null;\n          }\n\n          const finalFormatter: Formatter<TValue, TName> = entry.formatter || formatter || defaultFormatter;\n          const { value, name } = entry;\n          let finalValue: React.ReactNode = value;\n          let finalName: React.ReactNode = name;\n          if (finalFormatter) {\n            const formatted = finalFormatter(value, name, entry, i, payload);\n            if (Array.isArray(formatted)) {\n              [finalValue, finalName] = formatted;\n            } else if (formatted != null) {\n              finalValue = formatted;\n            } else {\n              return null;\n            }\n          }\n\n          const finalItemStyle = {\n            ...defaultDefaultTooltipContentProps.itemStyle,\n            color: entry.color || defaultDefaultTooltipContentProps.itemStyle.color,\n            ...itemStyle,\n          };\n\n          return (\n            <li className=\"recharts-tooltip-item\" key={`tooltip-item-${i}`} style={finalItemStyle}>\n              {isNumOrStr(finalName) ? <span className=\"recharts-tooltip-item-name\">{finalName}</span> : null}\n              {isNumOrStr(finalName) ? <span className=\"recharts-tooltip-item-separator\">{separator}</span> : null}\n              <span className=\"recharts-tooltip-item-value\">{finalValue}</span>\n              <span className=\"recharts-tooltip-item-unit\">{entry.unit || ''}</span>\n            </li>\n          );\n        },\n      );\n\n      return (\n        <ul className=\"recharts-tooltip-item-list\" style={listStyle}>\n          {items}\n        </ul>\n      );\n    }\n\n    return null;\n  };\n\n  const finalStyle: React.CSSProperties = {\n    ...defaultDefaultTooltipContentProps.contentStyle,\n    ...contentStyle,\n  };\n  const finalLabelStyle = {\n    margin: 0,\n    ...labelStyle,\n  };\n  const hasLabel = !isNullish(label);\n  let finalLabel: ReactNode = hasLabel ? label : '';\n  const wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n  const labelCN = clsx('recharts-tooltip-label', labelClassName);\n\n  if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n    finalLabel = labelFormatter(label, payload);\n  }\n\n  const accessibilityAttributes = accessibilityLayer\n    ? ({\n        role: 'status',\n        'aria-live': 'assertive',\n      } as HTMLAttributes<HTMLDivElement>)\n    : {};\n\n  return (\n    <div className={wrapperCN} style={finalStyle} {...accessibilityAttributes}>\n      <p className={labelCN} style={finalLabelStyle}>\n        {React.isValidElement(finalLabel) ? finalLabel : `${finalLabel}`}\n      </p>\n      {renderContent()}\n    </div>\n  );\n};\n","import { clsx } from 'clsx';\nimport { CSSProperties } from 'react';\nimport { isNumber } from '../DataUtils';\nimport { Coordinate, CartesianViewBox, AllowInDimension } from '../types';\n\nexport type Dimension2D = 'x' | 'y';\n\nconst CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\n\nconst TOOLTIP_HIDDEN: CSSProperties = { visibility: 'hidden' };\n\nexport function getTooltipCSSClassName({\n  coordinate,\n  translateX,\n  translateY,\n}: {\n  translateX: number | undefined;\n  translateY: number | undefined;\n  coordinate: Partial<Coordinate> | undefined;\n}): string {\n  return clsx(CSS_CLASS_PREFIX, {\n    [`${CSS_CLASS_PREFIX}-right`]:\n      isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x,\n    [`${CSS_CLASS_PREFIX}-left`]:\n      isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x,\n    [`${CSS_CLASS_PREFIX}-bottom`]:\n      isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y,\n    [`${CSS_CLASS_PREFIX}-top`]:\n      isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y,\n  });\n}\n\nexport function getTooltipTranslateXY({\n  allowEscapeViewBox,\n  coordinate,\n  key,\n  offset,\n  position,\n  reverseDirection,\n  tooltipDimension,\n  viewBox,\n  viewBoxDimension,\n}: {\n  allowEscapeViewBox: AllowInDimension;\n  coordinate: Coordinate;\n  key: Dimension2D;\n  offset: number;\n  position: Partial<Coordinate> | undefined;\n  reverseDirection: AllowInDimension;\n  tooltipDimension: number;\n  viewBox: CartesianViewBox;\n  viewBoxDimension: number | undefined;\n}): number {\n  if (position && isNumber(position[key])) {\n    return position[key];\n  }\n\n  const negative = coordinate[key] - tooltipDimension - (offset > 0 ? offset : 0);\n  const positive = coordinate[key] + offset;\n\n  if (allowEscapeViewBox[key]) {\n    return reverseDirection[key] ? negative : positive;\n  }\n\n  const viewBoxKey = viewBox[key];\n  if (viewBoxKey == null) {\n    return 0;\n  }\n\n  if (reverseDirection[key]) {\n    const tooltipBoundary = negative;\n    const viewBoxBoundary = viewBoxKey;\n    if (tooltipBoundary < viewBoxBoundary) {\n      return Math.max(positive, viewBoxKey);\n    }\n    return Math.max(negative, viewBoxKey);\n  }\n\n  if (viewBoxDimension == null) {\n    return 0;\n  }\n  const tooltipBoundary = positive + tooltipDimension;\n  const viewBoxBoundary = viewBoxKey + viewBoxDimension;\n  if (tooltipBoundary > viewBoxBoundary) {\n    return Math.max(negative, viewBoxKey);\n  }\n  return Math.max(positive, viewBoxKey);\n}\n\nexport function getTransformStyle({\n  translateX,\n  translateY,\n  useTranslate3d,\n}: {\n  useTranslate3d: boolean;\n  translateX: number;\n  translateY: number;\n}): CSSProperties {\n  return {\n    transform: useTranslate3d\n      ? `translate3d(${translateX}px, ${translateY}px, 0)`\n      : `translate(${translateX}px, ${translateY}px)`,\n  };\n}\n\nexport function getTooltipTranslate({\n  allowEscapeViewBox,\n  coordinate,\n  offsetTop,\n  offsetLeft,\n  position,\n  reverseDirection,\n  tooltipBox,\n  useTranslate3d,\n  viewBox,\n}: {\n  allowEscapeViewBox: AllowInDimension;\n  coordinate: Coordinate | undefined;\n  offsetTop: number;\n  offsetLeft: number;\n  position: Partial<Coordinate> | undefined;\n  reverseDirection: AllowInDimension;\n  tooltipBox: { width: number; height: number };\n  useTranslate3d: boolean;\n  viewBox: CartesianViewBox;\n}): { cssProperties: CSSProperties; cssClasses: string } {\n  let cssProperties: CSSProperties, translateX: number | undefined, translateY: number | undefined;\n  if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n    translateX = getTooltipTranslateXY({\n      allowEscapeViewBox,\n      coordinate,\n      key: 'x',\n      offset: offsetLeft,\n      position,\n      reverseDirection,\n      tooltipDimension: tooltipBox.width,\n      viewBox,\n      viewBoxDimension: viewBox.width,\n    });\n\n    translateY = getTooltipTranslateXY({\n      allowEscapeViewBox,\n      coordinate,\n      key: 'y',\n      offset: offsetTop,\n      position,\n      reverseDirection,\n      tooltipDimension: tooltipBox.height,\n      viewBox,\n      viewBoxDimension: viewBox.height,\n    });\n    cssProperties = getTransformStyle({\n      translateX,\n      translateY,\n      useTranslate3d,\n    });\n  } else {\n    cssProperties = TOOLTIP_HIDDEN;\n  }\n  return {\n    cssProperties,\n    cssClasses: getTooltipCSSClassName({\n      translateX,\n      translateY,\n      coordinate,\n    }),\n  };\n}\n","import * as React from 'react';\nimport { CSSProperties, PureComponent, ReactNode } from 'react';\nimport {\n  AllowInDimension,\n  AnimationDuration,\n  AnimationTiming,\n  CartesianViewBox,\n  Coordinate,\n  PolarCoordinate,\n} from '../util/types';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nimport { ElementOffset, SetElementOffset } from '../util/useElementOffset';\n\nexport type TooltipBoundingBoxProps = {\n  active: boolean;\n  allowEscapeViewBox: AllowInDimension;\n  animationDuration: AnimationDuration;\n  animationEasing: AnimationTiming;\n  children: ReactNode;\n  coordinate: Coordinate | PolarCoordinate | undefined;\n  hasPayload: boolean;\n  isAnimationActive: boolean | 'auto';\n  offset: number | Coordinate;\n  position: Partial<Coordinate> | undefined;\n  reverseDirection: AllowInDimension;\n  useTranslate3d: boolean;\n  viewBox: CartesianViewBox;\n  wrapperStyle: CSSProperties;\n  lastBoundingBox: ElementOffset;\n  innerRef: SetElementOffset;\n  hasPortalFromProps: boolean;\n};\n\ntype State = {\n  dismissed: boolean;\n  dismissedAtCoordinate: Coordinate;\n};\n\nexport class TooltipBoundingBox extends PureComponent<TooltipBoundingBoxProps, State> {\n  state = {\n    dismissed: false,\n    dismissedAtCoordinate: { x: 0, y: 0 },\n  };\n\n  componentDidMount() {\n    document.addEventListener('keydown', this.handleKeyDown);\n  }\n\n  componentWillUnmount() {\n    document.removeEventListener('keydown', this.handleKeyDown);\n  }\n\n  componentDidUpdate() {\n    if (!this.state.dismissed) {\n      return;\n    }\n\n    if (\n      this.props.coordinate?.x !== this.state.dismissedAtCoordinate.x ||\n      this.props.coordinate?.y !== this.state.dismissedAtCoordinate.y\n    ) {\n      this.state.dismissed = false;\n    }\n  }\n\n  handleKeyDown = (event: KeyboardEvent) => {\n    if (event.key === 'Escape') {\n      this.setState({\n        dismissed: true,\n        dismissedAtCoordinate: {\n          x: this.props.coordinate?.x ?? 0,\n          y: this.props.coordinate?.y ?? 0,\n        },\n      });\n    }\n  };\n\n  render() {\n    const {\n      active,\n      allowEscapeViewBox,\n      animationDuration,\n      animationEasing,\n      children,\n      coordinate,\n      hasPayload,\n      isAnimationActive,\n      offset,\n      position,\n      reverseDirection,\n      useTranslate3d,\n      viewBox,\n      wrapperStyle,\n      lastBoundingBox,\n      innerRef,\n      hasPortalFromProps,\n    } = this.props;\n\n    const offsetLeft = typeof offset === 'number' ? offset : offset.x;\n    const offsetTop = typeof offset === 'number' ? offset : offset.y;\n\n    const { cssClasses, cssProperties } = getTooltipTranslate({\n      allowEscapeViewBox,\n      coordinate,\n      offsetLeft,\n      offsetTop,\n      position,\n      reverseDirection,\n      tooltipBox: {\n        height: lastBoundingBox.height,\n        width: lastBoundingBox.width,\n      },\n      useTranslate3d,\n      viewBox,\n    });\n\n    // do not use absolute styles if the user has passed a custom portal prop\n    const positionStyles: CSSProperties = hasPortalFromProps\n      ? {}\n      : {\n          transition: isAnimationActive && active ? `transform ${animationDuration}ms ${animationEasing}` : undefined,\n          ...cssProperties,\n          pointerEvents: 'none',\n          visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n          position: 'absolute',\n          top: 0,\n          left: 0,\n        };\n\n    const outerStyle: CSSProperties = {\n      ...positionStyles,\n      visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n      ...wrapperStyle,\n    };\n\n    return (\n      // This element allow listening to the `Escape` key. See https://github.com/recharts/recharts/pull/2925\n      <div\n        // @ts-expect-error typescript library does not recognize xmlns attribute, but it's required for an HTML chunk inside SVG.\n        xmlns=\"http://www.w3.org/1999/xhtml\"\n        tabIndex={-1}\n        className={cssClasses}\n        style={outerStyle}\n        ref={innerRef}\n      >\n        {children}\n      </div>\n    );\n  }\n}\n","import { useAppSelector } from '../state/hooks';\n\nexport const useAccessibilityLayer: () => boolean = () =>\n  useAppSelector(state => state.rootProps.accessibilityLayer) ?? true;\n","export default function() {}\n","export function point(that, x, y) {\n  that._context.bezierCurveTo(\n    (2 * that._x0 + that._x1) / 3,\n    (2 * that._y0 + that._y1) / 3,\n    (that._x0 + 2 * that._x1) / 3,\n    (that._y0 + 2 * that._y1) / 3,\n    (that._x0 + 4 * that._x1 + x) / 6,\n    (that._y0 + 4 * that._y1 + y) / 6\n  );\n}\n\nexport function Basis(context) {\n  this._context = context;\n}\n\nBasis.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 3: point(this, this._x1, this._y1); // falls through\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n  this._context = context;\n}\n\nBasisClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x2, this._y2);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x2, this._y2);\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n  this._context = context;\n}\n\nBasisOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n      case 3: this._point = 4; // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n  constructor(context, x) {\n    this._context = context;\n    this._x = x;\n  }\n  areaStart() {\n    this._line = 0;\n  }\n  areaEnd() {\n    this._line = NaN;\n  }\n  lineStart() {\n    this._point = 0;\n  }\n  lineEnd() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  }\n  point(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: {\n        this._point = 1;\n        if (this._line) this._context.lineTo(x, y);\n        else this._context.moveTo(x, y);\n        break;\n      }\n      case 1: this._point = 2; // falls through\n      default: {\n        if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n        else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n        break;\n      }\n    }\n    this._x0 = x, this._y0 = y;\n  }\n}\n\nclass BumpRadial {\n  constructor(context) {\n    this._context = context;\n  }\n  lineStart() {\n    this._point = 0;\n  }\n  lineEnd() {}\n  point(x, y) {\n    x = +x, y = +y;\n    if (this._point === 0) {\n      this._point = 1;\n    } else {\n      const p0 = pointRadial(this._x0, this._y0);\n      const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n      const p2 = pointRadial(x, this._y0);\n      const p3 = pointRadial(x, y);\n      this._context.moveTo(...p0);\n      this._context.bezierCurveTo(...p1, ...p2, ...p3);\n    }\n    this._x0 = x, this._y0 = y;\n  }\n}\n\nexport function bumpX(context) {\n  return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n  return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n  return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n  this._context = context;\n}\n\nLinearClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._point) this._context.closePath();\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    if (this._point) this._context.lineTo(x, y);\n    else this._point = 1, this._context.moveTo(x, y);\n  }\n};\n\nexport default function(context) {\n  return new LinearClosed(context);\n}\n","function Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // falls through\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\nexport default function(context) {\n  return new Linear(context);\n}\n","function sign(x) {\n  return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n  var h0 = that._x1 - that._x0,\n      h1 = x2 - that._x1,\n      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n      p = (s0 * h1 + s1 * h0) / (h0 + h1);\n  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n  var h = that._x1 - that._x0;\n  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n  var x0 = that._x0,\n      y0 = that._y0,\n      x1 = that._x1,\n      y1 = that._y1,\n      dx = (x1 - x0) / 3;\n  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n  this._context = context;\n}\n\nMonotoneX.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 =\n    this._t0 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n      case 3: point(this, this._t0, slope2(this, this._t0)); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    var t1 = NaN;\n\n    x = +x, y = +y;\n    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n      default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n    }\n\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n    this._t0 = t1;\n  }\n}\n\nfunction MonotoneY(context) {\n  this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n  MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n  this._context = context;\n}\n\nReflectContext.prototype = {\n  moveTo: function(x, y) { this._context.moveTo(y, x); },\n  closePath: function() { this._context.closePath(); },\n  lineTo: function(x, y) { this._context.lineTo(y, x); },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n  return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n  return new MonotoneY(context);\n}\n","function Natural(context) {\n  this._context = context;\n}\n\nNatural.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        n = x.length;\n\n    if (n) {\n      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n      if (n === 2) {\n        this._context.lineTo(x[1], y[1]);\n      } else {\n        var px = controlPoints(x),\n            py = controlPoints(y);\n        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n        }\n      }\n    }\n\n    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n    this._x = this._y = null;\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n  var i,\n      n = x.length - 1,\n      m,\n      a = new Array(n),\n      b = new Array(n),\n      r = new Array(n);\n  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n  a[n - 1] = r[n - 1] / b[n - 1];\n  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n  b[n - 1] = (x[n] + a[n - 1]) / 2;\n  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n  return [a, b];\n}\n\nexport default function(context) {\n  return new Natural(context);\n}\n","function Step(context, t) {\n  this._context = context;\n  this._t = t;\n}\n\nStep.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = this._y = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // falls through\n      default: {\n        if (this._t <= 0) {\n          this._context.lineTo(this._x, y);\n          this._context.lineTo(x, y);\n        } else {\n          var x1 = this._x * (1 - this._t) + x * this._t;\n          this._context.lineTo(x1, this._y);\n          this._context.lineTo(x1, y);\n        }\n        break;\n      }\n    }\n    this._x = x, this._y = y;\n  }\n};\n\nexport default function(context) {\n  return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n  return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n  return new Step(context, 1);\n}\n","export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n  var defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null,\n      path = withPath(line);\n\n  x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n  y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n  function line(data) {\n    var i,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n  var x1 = null,\n      defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null,\n      path = withPath(area);\n\n  x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n  y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n  y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n  function area(data) {\n    var i,\n        j,\n        k,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer,\n        x0z = new Array(n),\n        y0z = new Array(n);\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) {\n          j = i;\n          output.areaStart();\n          output.lineStart();\n        } else {\n          output.lineEnd();\n          output.lineStart();\n          for (k = i - 1; k >= j; --k) {\n            output.point(x0z[k], y0z[k]);\n          }\n          output.lineEnd();\n          output.areaEnd();\n        }\n      }\n      if (defined0) {\n        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n      }\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  function arealine() {\n    return line().defined(defined).curve(curve).context(context);\n  }\n\n  area.x = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n  };\n\n  area.x0 = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n  };\n\n  area.x1 = function(_) {\n    return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n  };\n\n  area.y = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n  };\n\n  area.y0 = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n  };\n\n  area.y1 = function(_) {\n    return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n  };\n\n  area.lineX0 =\n  area.lineY0 = function() {\n    return arealine().x(x0).y(y0);\n  };\n\n  area.lineY1 = function() {\n    return arealine().x(x0).y(y1);\n  };\n\n  area.lineX1 = function() {\n    return arealine().x(x1).y(y0);\n  };\n\n  area.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n  };\n\n  area.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n  };\n\n  area.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n  };\n\n  return area;\n}\n","/**\n * @fileOverview Curve\n */\nimport * as React from 'react';\nimport { Ref } from 'react';\nimport {\n  line as shapeLine,\n  area as shapeArea,\n  CurveFactory,\n  curveBasisClosed,\n  curveBasisOpen,\n  curveBasis,\n  curveBumpX,\n  curveBumpY,\n  curveLinearClosed,\n  curveLinear,\n  curveMonotoneX,\n  curveMonotoneY,\n  curveNatural,\n  curveStep,\n  curveStepAfter,\n  curveStepBefore,\n  Area as D3AreaCurve,\n  Line as D3LineCurve,\n} from 'victory-vendor/d3-shape';\n\nimport { clsx } from 'clsx';\nimport {\n  LayoutType,\n  PresentationAttributesWithProps,\n  adaptEventHandlers,\n  NullableCoordinate,\n  Coordinate,\n  RechartsMouseEventHandler,\n} from '../util/types';\nimport { isNumber, upperFirst } from '../util/DataUtils';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { useChartLayout } from '../context/chartLayoutContext';\n\ninterface CurveFactories {\n  [index: string]: CurveFactory;\n}\n\nconst CURVE_FACTORIES: CurveFactories = {\n  curveBasisClosed,\n  curveBasisOpen,\n  curveBasis,\n  curveBumpX,\n  curveBumpY,\n  curveLinearClosed,\n  curveLinear,\n  curveMonotoneX,\n  curveMonotoneY,\n  curveNatural,\n  curveStep,\n  curveStepAfter,\n  curveStepBefore,\n};\n\n/**\n * @inline\n */\nexport type CurveType =\n  | 'basis'\n  | 'basisClosed'\n  | 'basisOpen'\n  | 'bumpX'\n  | 'bumpY'\n  | 'bump'\n  | 'linear'\n  | 'linearClosed'\n  | 'natural'\n  | 'monotoneX'\n  | 'monotoneY'\n  | 'monotone'\n  | 'step'\n  | 'stepBefore'\n  | 'stepAfter'\n  | CurveFactory;\n\ntype AreaPoint = Coordinate & { base: Coordinate };\n\ntype NullableAreaPoint = NullableCoordinate & { base?: NullableCoordinate };\n\nconst defined = (p: NullableCoordinate): p is Coordinate => isWellBehavedNumber(p.x) && isWellBehavedNumber(p.y);\nconst areaDefined = (d: NullableAreaPoint): d is AreaPoint => d.base != null && defined(d.base) && defined(d);\nconst getX = (p: Coordinate) => p.x;\nconst getY = (p: Coordinate) => p.y;\n\nconst getCurveFactory = (type: CurveType, layout: LayoutType | undefined): CurveFactory => {\n  if (typeof type === 'function') {\n    return type;\n  }\n\n  const name = `curve${upperFirst(type)}`;\n\n  if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n    const factory = CURVE_FACTORIES[`${name}${layout === 'vertical' ? 'Y' : 'X'}`];\n    if (factory) {\n      return factory;\n    }\n  }\n  return CURVE_FACTORIES[name] || curveLinear;\n};\n\ninterface CurveProps {\n  className?: string;\n  /**\n   * The interpolation type of curve. Allows custom interpolation function.\n   *\n   * @defaultValue linear\n   * @link https://d3js.org/d3-shape/curve\n   * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}\n   */\n  type?: CurveType;\n  /**\n   * This option affects the interpolation algorithm when the `type` prop is set to 'monotone'.\n   * It also specifies the type of baseline when the curve is closed.\n   */\n  layout?: LayoutType;\n  /**\n   * Baseline of the area:\n   * - number: uses the corresponding axis value as a flat baseline;\n   * - an array of coordinates: describes a custom baseline path.\n   */\n  baseLine?: number | ReadonlyArray<NullableCoordinate>;\n  /**\n   * The coordinates of all the points in the curve, like an array of objects with x and y coordinates.\n   */\n  points?: ReadonlyArray<NullableCoordinate>;\n  /**\n   * Whether to connect the curve across null points.\n   *\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/LineChartConnectNulls/ LineChart with connectNull true and false}\n   * @see {@link https://recharts.github.io/en-US/examples/AreaChartConnectNulls/ AreaChart with connectNull true and false}\n   */\n  connectNulls?: boolean;\n  path?: string;\n  pathRef?: Ref<SVGPathElement>;\n  /**\n   * The pattern of dashes and gaps used to paint the line.\n   *\n   * @example strokeDasharray=\"5 5\"\n   * @example strokeDasharray={10}\n   * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray}\n   */\n  strokeDasharray?: string | number;\n}\n\nexport type CurveMouseEventHandler = RechartsMouseEventHandler<Props, SVGPathElement>;\n\ntype CurveMouseEvents = {\n  /**\n   * The customized event handler of click on the curve\n   */\n  onClick?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mouseenter on the curve\n   */\n  onMouseEnter?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mouseleave on the curve\n   */\n  onMouseLeave?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mousedown on the curve\n   */\n  onMouseDown?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mouseup on the curve\n   */\n  onMouseUp?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mousemove on the curve\n   */\n  onMouseMove?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mouseover on the curve\n   */\n  onMouseOver?: CurveMouseEventHandler;\n  /**\n   * The customized event handler of mouseout on the curve\n   */\n  onMouseOut?: CurveMouseEventHandler;\n};\n\n// Mouse event handlers receive the full Props, including the event handlers themselves.\nexport type Props = Omit<\n  PresentationAttributesWithProps<CurveProps, SVGPathElement>,\n  | 'type'\n  | 'points'\n  | 'onClick'\n  | 'onMouseEnter'\n  | 'onMouseLeave'\n  | 'onMouseDown'\n  | 'onMouseUp'\n  | 'onMouseMove'\n  | 'onMouseOver'\n  | 'onMouseOut'\n> &\n  CurveMouseEvents &\n  CurveProps;\n\ntype GetPathProps = Pick<Props, 'type' | 'points' | 'baseLine' | 'layout' | 'connectNulls'>;\n\nexport const defaultCurveProps = {\n  connectNulls: false,\n  type: 'linear',\n} as const satisfies Partial<Props>;\n\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport const getPath = ({\n  type = defaultCurveProps.type,\n  points = [],\n  baseLine,\n  layout,\n  connectNulls = defaultCurveProps.connectNulls,\n}: GetPathProps): string | null => {\n  const curveFactory = getCurveFactory(type, layout);\n  const formatPoints: ReadonlyArray<NullableCoordinate> = connectNulls ? points.filter(defined) : points;\n\n  // When dealing with an area chart (where `baseLine` is an array),\n  // we need to pair points with their corresponding `baseLine` points first.\n  // This is to ensure that we filter points and their baseline counterparts together,\n  // preventing errors from mismatched array lengths and ensuring `defined` checks both.\n  if (Array.isArray(baseLine)) {\n    let lineFunction: D3AreaCurve<AreaPoint>;\n\n    const areaPoints: ReadonlyArray<NullableAreaPoint> = points.map((entry, index) => ({\n      ...entry,\n      base: baseLine[index],\n    }));\n\n    if (layout === 'vertical') {\n      lineFunction = shapeArea<AreaPoint>()\n        .y(getY)\n        .x1(getX)\n        .x0(d => d.base.x);\n    } else {\n      lineFunction = shapeArea<AreaPoint>()\n        .x(getX)\n        .y1(getY)\n        .y0(d => d.base.y);\n    }\n    /*\n     * What happens here is that the `.defined()` call will make it so that this function can accept\n     * nullable points, and internally it will filter them out and skip when generating the path.\n     * So on the input it accepts NullableCoordinate, but it never calls getX/getY on null points because of the defined() filter.\n     *\n     * The d3 type definition has only one generic so it doesn't allow to describe this properly.\n     * However. d3 types are mutable, but we can pretend that they are not, and we can pretend\n     * that calling defined() returns a new function with a different generic type.\n     */\n    // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\n    const nullableLineFunction: D3AreaCurve<NullableAreaPoint> = lineFunction.defined(areaDefined).curve(curveFactory);\n\n    const finalPoints: ReadonlyArray<NullableAreaPoint> = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;\n\n    return nullableLineFunction(finalPoints);\n  }\n\n  let lineFunction: D3LineCurve<Coordinate> | D3AreaCurve<Coordinate>;\n  if (layout === 'vertical' && isNumber(baseLine)) {\n    lineFunction = shapeArea<Coordinate>().y(getY).x1(getX).x0(baseLine);\n  } else if (isNumber(baseLine)) {\n    lineFunction = shapeArea<Coordinate>().x(getX).y1(getY).y0(baseLine);\n  } else {\n    lineFunction = shapeLine<Coordinate>().x(getX).y(getY);\n  }\n\n  // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\n  const nullableLineFunction: D3LineCurve<NullableCoordinate> = lineFunction.defined(defined).curve(curveFactory);\n\n  return nullableLineFunction(formatPoints);\n};\n\nexport const Curve: React.FC<Props> = props => {\n  const { className, points, path, pathRef } = props;\n  const layout = useChartLayout();\n\n  if ((!points || !points.length) && !path) {\n    return null;\n  }\n\n  const getPathInput: GetPathProps = {\n    type: props.type,\n    points: props.points,\n    baseLine: props.baseLine,\n    layout: props.layout || layout,\n    connectNulls: props.connectNulls,\n  };\n\n  const realPath: string | null | undefined = points && points.length ? getPath(getPathInput) : path;\n\n  return (\n    <path\n      {...svgPropertiesNoEvents(props)}\n      {...adaptEventHandlers(props)}\n      className={clsx('recharts-curve', className)}\n      d={realPath === null ? undefined : realPath}\n      ref={pathRef}\n    />\n  );\n};\n","/**\n * @fileOverview Cross\n */\nimport * as React from 'react';\nimport { SVGProps } from 'react';\nimport { clsx } from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n\ninterface CrossProps {\n  /**\n   * The x-coordinate of the vertical line of the cross in pixels.\n   */\n  x?: number;\n  /**\n   * The y-coordinate of the horizontal line of the cross in pixels.\n   */\n  y?: number;\n  /**\n   * Width of the cross in pixels.\n   */\n  width?: number;\n  /**\n   * Height of the cross in pixels.\n   */\n  height?: number;\n  /**\n   * The y-coordinate of the top left point in the boundary box of the cross.\n   */\n  top?: number;\n  /**\n   * The x-coordinate of the top left point in the boundary box of the cross.\n   */\n  left?: number;\n  className?: number;\n}\n\nexport type Props = SVGProps<SVGPathElement> & CrossProps;\n\nconst getPath = (x: number, y: number, width: number, height: number, top: number, left: number) => {\n  return `M${x},${top}v${height}M${left},${y}h${width}`;\n};\n\nexport const Cross: React.FC<Props> = ({\n  x = 0,\n  y = 0,\n  top = 0,\n  left = 0,\n  width = 0,\n  height = 0,\n  className,\n  ...rest\n}) => {\n  const props = { x, y, top, left, width, height, ...rest };\n\n  if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n    return null;\n  }\n\n  return (\n    <path\n      {...svgPropertiesAndEvents(props)}\n      className={clsx('recharts-cross', className)}\n      d={getPath(x, y, width, height, top, left)}\n    />\n  );\n};\n","/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport const getDashCase = (name: string) => name.replace(/([A-Z])/g, v => `-${v.toLowerCase()}`);\n\nexport const getTransitionVal = (props: ReadonlyArray<string>, duration: string | number, easing: string): string =>\n  props.map(prop => `${getDashCase(prop)} ${duration}ms ${easing}`).join(',');\n\n/**\n * Finds the intersection of keys between two objects\n * @param {object} preObj previous object\n * @param {object} nextObj next object\n * @returns an array of keys that exist in both objects\n */\nexport const getIntersectionKeys = (preObj: Record<string, unknown>, nextObj: Record<string, unknown>): string[] =>\n  [Object.keys(preObj), Object.keys(nextObj)].reduce((a, b) => a.filter(c => b.includes(c)));\n\n/**\n * Maps an object to another object\n * @param {function} fn function to map\n * @param {object} obj object to map\n * @returns mapped object\n */\nexport const mapObject = <T extends Record<string, any>, R>(\n  fn: (key: keyof T, value: T[keyof T]) => R,\n  obj: T,\n): { [K in keyof T]: R } =>\n  Object.keys(obj).reduce(\n    (res, key) => ({\n      ...res,\n      [key]: fn(key as keyof T, obj[key as keyof T]),\n    }),\n    {} as { [K in keyof T]: R },\n  );\n","import { getIntersectionKeys, mapObject } from './util';\nimport { BezierEasingFunction, EasingFunction, SpringEasingFunction } from './easing';\nimport { TimeoutController } from './timeoutController';\n\nexport const alpha = (begin: number, end: number, k: number) => begin + (end - begin) * k;\nconst needContinue = ({ from, to }: Val) => from !== to;\n\ntype Val = {\n  from: number;\n  to: number;\n  velocity: number;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nconst calStepperVals = (easing: SpringEasingFunction, preVals: Record<string, Val>, steps: number) => {\n  const nextStepVals: Record<string, Val> = mapObject((key, val: Val): Val => {\n    if (needContinue(val)) {\n      const [newX, newV] = easing(val.from, val.to, val.velocity);\n      return {\n        ...val,\n        from: newX,\n        velocity: newV,\n      };\n    }\n\n    return val;\n  }, preVals);\n\n  if (steps < 1) {\n    return mapObject((key, val: Val): Val => {\n      if (needContinue(val) && nextStepVals[key] != null) {\n        return {\n          ...val,\n          velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n          from: alpha(val.from, nextStepVals[key].from, steps),\n        };\n      }\n\n      return val;\n    }, preVals);\n  }\n\n  return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\nexport type FrameId = number;\n\nexport type RequestAnimationFrameCallback = (time: number) => void;\n\nexport type RequestAnimationFrameDi = (callback: RequestAnimationFrameCallback) => FrameId;\n\nexport type CancelAnimationFrameDi = (handle: FrameId) => void;\n\nexport type CancelAnimationFunction = () => void;\n\nexport type StartAnimationFunction = () => CancelAnimationFunction;\n\nfunction createStepperUpdate<T extends Record<string, unknown>>(\n  from: T,\n  to: T,\n  easing: SpringEasingFunction,\n  interKeys: ReadonlyArray<string>,\n  render: (currentStyle: T) => void,\n  timeoutController: TimeoutController,\n) {\n  let preTime: number;\n  let stepperStyle: Record<string, Val> = interKeys.reduce(\n    (res, key) => ({\n      ...res,\n      [key]: {\n        from: from[key],\n        velocity: 0,\n        to: to[key],\n      },\n    }),\n    {},\n  );\n  const getCurrStyle = () => mapObject((key, val: Val) => val.from, stepperStyle);\n  const shouldStopAnimation = () => !Object.values(stepperStyle).filter(needContinue).length;\n\n  let stopAnimation: CancelAnimationFunction | null = null;\n\n  const stepperUpdate = (now: number) => {\n    if (!preTime) {\n      preTime = now;\n    }\n    const deltaTime = now - preTime;\n    const steps = deltaTime / easing.dt;\n\n    stepperStyle = calStepperVals(easing, stepperStyle, steps);\n    // get union set and add compatible prefix\n    render({\n      ...from,\n      ...to,\n      ...getCurrStyle(),\n    });\n\n    preTime = now;\n\n    if (!shouldStopAnimation()) {\n      stopAnimation = timeoutController.setTimeout(stepperUpdate);\n    }\n  };\n\n  // return start animation method\n  return () => {\n    stopAnimation = timeoutController.setTimeout(stepperUpdate);\n\n    // return stop animation method\n    return () => {\n      stopAnimation?.();\n    };\n  };\n}\n\ntype TimingStyle = Record<string, [number, number]>;\n\nfunction createTimingUpdate<T extends Record<string, number>>(\n  from: T,\n  to: T,\n  easing: BezierEasingFunction,\n  duration: number,\n  interKeys: ReadonlyArray<string>,\n  render: (currentStyle: T) => void,\n  timeoutController: TimeoutController,\n) {\n  let stopAnimation: CancelAnimationFunction | null = null;\n\n  const timingStyle: TimingStyle = interKeys.reduce((res: TimingStyle, key: string): TimingStyle => {\n    const fromElement = from[key];\n    const toElement = to[key];\n    if (fromElement == null || toElement == null) {\n      return res;\n    }\n    return {\n      ...res,\n      [key]: [fromElement, toElement] as const,\n    };\n  }, {});\n\n  let beginTime: number;\n\n  const timingUpdate = (now: number) => {\n    if (!beginTime) {\n      beginTime = now;\n    }\n\n    const t = (now - beginTime) / duration;\n    const currStyle = mapObject((key, val) => alpha(...val, easing(t)), timingStyle);\n\n    // get union set and add compatible prefix\n    render({\n      ...from,\n      ...to,\n      ...currStyle,\n    });\n\n    if (t < 1) {\n      stopAnimation = timeoutController.setTimeout(timingUpdate);\n    } else {\n      const finalStyle = mapObject((key, val) => alpha(...val, easing(1)), timingStyle);\n\n      render({\n        ...from,\n        ...to,\n        ...finalStyle,\n      });\n    }\n  };\n\n  // return start animation method\n  return () => {\n    stopAnimation = timeoutController.setTimeout(timingUpdate);\n\n    // return stop animation method\n    return () => {\n      stopAnimation?.();\n    };\n  };\n}\n\n// configure update function\n// eslint-disable-next-line import/no-default-export\nexport default <T extends Record<string, number>>(\n  from: T,\n  to: T,\n  easing: EasingFunction | null,\n  duration: number,\n  render: (currentStyle: T) => void,\n  timeoutController: TimeoutController,\n): StartAnimationFunction => {\n  const interKeys: ReadonlyArray<string> = getIntersectionKeys(from, to);\n\n  if (easing == null) {\n    // no animation, just set to final state\n    return () => {\n      render({\n        ...from,\n        ...to,\n      });\n      return () => {};\n    };\n  }\n\n  return easing.isStepper === true\n    ? createStepperUpdate(from, to, easing, interKeys, render, timeoutController)\n    : createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController);\n};\n","export const ACCURACY = 1e-4;\n\nconst cubicBezierFactor = (c1: number, c2: number) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n\nconst evaluatePolynomial = (params: ReadonlyArray<number>, t: number) =>\n  params.map((param, i) => param * t ** i).reduce((pre, curr) => pre + curr);\n\nconst cubicBezier = (c1: number, c2: number) => (t: number) => {\n  const params = cubicBezierFactor(c1, c2);\n\n  return evaluatePolynomial(params, t);\n};\n\nconst derivativeCubicBezier = (c1: number, c2: number) => (t: number) => {\n  const params = cubicBezierFactor(c1, c2);\n  const newParams = [...params.map((param, i) => param * i).slice(1), 0];\n\n  return evaluatePolynomial(newParams, t);\n};\n\ntype CubicBezierTemplate = `cubic-bezier(${number},${number},${number},${number})`;\n\ntype NamedBezier = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | CubicBezierTemplate;\n\ntype BezierInput = [NamedBezier] | [number, number, number, number];\n\nexport type BezierEasingFunction = {\n  isStepper: false;\n  (t: number): number;\n};\n\nconst parseCubicBezier = (easing: string): [number, number, number, number] | null => {\n  const easingParts = easing.split('(');\n  if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {\n    return null;\n  }\n  const numbers = easingParts[1]?.split(')')[0]?.split(',');\n  if (numbers == null || numbers.length !== 4) {\n    return null;\n  }\n  const coords = numbers.map((x: string) => parseFloat(x));\n  return [coords[0]!, coords[1]!, coords[2]!, coords[3]!];\n};\n\nconst getBezierCoordinates = (...args: BezierInput): [number, number, number, number] => {\n  if (args.length === 1) {\n    switch (args[0]) {\n      case 'linear':\n        return [0.0, 0.0, 1.0, 1.0];\n      case 'ease':\n        return [0.25, 0.1, 0.25, 1.0];\n      case 'ease-in':\n        return [0.42, 0.0, 1.0, 1.0];\n      case 'ease-out':\n        return [0.42, 0.0, 0.58, 1.0];\n      case 'ease-in-out':\n        return [0.0, 0.0, 0.58, 1.0];\n      default: {\n        const easing = parseCubicBezier(args[0]);\n        if (easing) {\n          return easing;\n        }\n      }\n    }\n  }\n\n  if (args.length === 4) {\n    return args;\n  }\n\n  // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.\n  // Returning linear easing is a safe default.\n  return [0.0, 0.0, 1.0, 1.0];\n};\n\nconst createBezierEasing = (x1: number, y1: number, x2: number, y2: number): BezierEasingFunction => {\n  const curveX = cubicBezier(x1, x2);\n  const curveY = cubicBezier(y1, y2);\n  const derCurveX = derivativeCubicBezier(x1, x2);\n  const rangeValue = (value: number): number => {\n    if (value > 1) {\n      return 1;\n    }\n    if (value < 0) {\n      return 0;\n    }\n\n    return value;\n  };\n\n  const bezier = (_t: number) => {\n    const t = _t > 1 ? 1 : _t;\n    let x = t;\n\n    for (let i = 0; i < 8; ++i) {\n      const evalT = curveX(x) - t;\n      const derVal = derCurveX(x);\n\n      if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n        return curveY(x);\n      }\n\n      x = rangeValue(x - evalT / derVal);\n    }\n\n    return curveY(x);\n  };\n\n  bezier.isStepper = false as const;\n\n  return bezier;\n};\n\n// calculate cubic-bezier using Newton's method\nexport const configBezier = (...args: BezierInput): BezierEasingFunction => {\n  return createBezierEasing(...getBezierCoordinates(...args));\n};\n\ntype SpringInput = {\n  stiff?: number;\n  damping?: number;\n  dt?: number;\n};\n\nexport type SpringEasingFunction = {\n  isStepper: true;\n  dt: number;\n  (currX: number, destX: number, currV: number): [number, number];\n};\n\nexport const configSpring = (config: SpringInput = {}): SpringEasingFunction => {\n  const { stiff = 100, damping = 8, dt = 17 } = config;\n  const stepper = (currX: number, destX: number, currV: number): ReturnType<SpringEasingFunction> => {\n    const FSpring = -(currX - destX) * stiff;\n    const FDamping = currV * damping;\n    const newV = currV + ((FSpring - FDamping) * dt) / 1000;\n    const newX = (currV * dt) / 1000 + currX;\n\n    if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n      return [destX, 0];\n    }\n    return [newX, newV];\n  };\n\n  stepper.isStepper = true as const;\n  stepper.dt = dt;\n\n  return stepper;\n};\n\nexport type EasingFunction = BezierEasingFunction | SpringEasingFunction;\n\nexport type EasingInput = NamedBezier | 'spring' | EasingFunction;\n\nexport const configEasing = (easing: EasingInput): EasingFunction | null => {\n  if (typeof easing === 'string') {\n    switch (easing) {\n      case 'ease':\n      case 'ease-in-out':\n      case 'ease-out':\n      case 'ease-in':\n      case 'linear':\n        return configBezier(easing);\n      case 'spring':\n        return configSpring();\n      default:\n        if (easing.split('(')[0] === 'cubic-bezier') {\n          return configBezier(easing);\n        }\n    }\n  }\n\n  if (typeof easing === 'function') {\n    return easing;\n  }\n\n  return null;\n};\n","/**\n * Callback type for the timeout function.\n * Receives current time in milliseconds as an argument.\n */\nexport type CallbackType = (now: number) => void;\n\n/**\n * A function that, when called, cancels the timeout.\n */\nexport type CancelableTimeout = () => void;\n\nexport interface TimeoutController {\n  /**\n   * Sets a timeout that executes a callback after a specified delay.\n   * Allows setting multiple timeouts and provides a way to cancel them independently.\n   * @param callback - The function to execute after the delay. Receives the current time in milliseconds as an argument.\n   * @param delay (optional) - The time in milliseconds to wait before executing the callback. Defaults to 0.\n   */\n  setTimeout(callback: CallbackType, delay?: number): CancelableTimeout;\n}\n\nexport class RequestAnimationFrameTimeoutController implements TimeoutController {\n  setTimeout(callback: CallbackType, delay: number = 0): CancelableTimeout {\n    const startTime = performance.now();\n\n    let requestId: number | null = null;\n\n    const executeCallback = (now: number): void => {\n      if (now - startTime >= delay) {\n        callback(now);\n        // tests fail without the extra if, even when five lines below it's not needed\n        // TODO finish transition to the mocked timeout controller and then remove this condition\n      } else if (typeof requestAnimationFrame === 'function') {\n        requestId = requestAnimationFrame(executeCallback);\n      }\n    };\n\n    requestId = requestAnimationFrame(executeCallback);\n\n    return () => {\n      if (requestId != null) {\n        cancelAnimationFrame(requestId);\n      }\n    };\n  }\n}\n","import { AnimationManager, createAnimateManager } from './AnimationManager';\nimport { RequestAnimationFrameTimeoutController } from './timeoutController';\n\nexport function createDefaultAnimationManager(): AnimationManager {\n  return createAnimateManager(new RequestAnimationFrameTimeoutController());\n}\n","import { CancelableTimeout, TimeoutController } from './timeoutController';\nimport { StartAnimationFunction } from './configUpdate';\n\nexport type ReactSmoothStyle = string | Record<string, unknown>;\n\n/**\n * Represents a single item in the ReactSmoothQueue.\n * The item can be:\n * - A number representing a delay in milliseconds.\n * - An object representing a style change\n * - A StartAnimationFunction that starts eased transition and calls different render\n *      because of course in Recharts we have to have three ways to do everything\n * - An arbitrary function to be executed\n */\nexport type ReactSmoothQueueItem = number | ReactSmoothStyle | StartAnimationFunction | (() => void);\n\nexport type ReactSmoothQueue = ReadonlyArray<ReactSmoothQueueItem>;\n\nexport type HandleChangeFn = (currentStyle: ReactSmoothStyle) => null | void;\n\nexport type AnimationManager = {\n  stop: () => void;\n  start: (style: ReactSmoothQueue) => void;\n  subscribe: (handleChange: (style: ReactSmoothStyle) => void) => () => void;\n  getTimeoutController(): TimeoutController;\n};\n\nexport function createAnimateManager(timeoutController: TimeoutController): AnimationManager {\n  let currStyle: ReactSmoothQueueItem | ReactSmoothQueue | undefined;\n  let handleChange: HandleChangeFn = () => null;\n  let shouldStop = false;\n  let cancelTimeout: CancelableTimeout | null = null;\n\n  const setStyle = (_style: ReactSmoothQueueItem | ReactSmoothQueue | undefined) => {\n    if (shouldStop) {\n      return;\n    }\n\n    if (Array.isArray(_style)) {\n      if (!_style.length) {\n        return;\n      }\n\n      const styles: ReactSmoothQueue = _style;\n      const [curr, ...restStyles] = styles;\n\n      if (typeof curr === 'number') {\n        cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles), curr);\n\n        return;\n      }\n\n      setStyle(curr);\n      cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles));\n      return;\n    }\n\n    if (typeof _style === 'string') {\n      currStyle = _style;\n      handleChange(currStyle);\n    }\n\n    if (typeof _style === 'object') {\n      currStyle = _style;\n      handleChange(currStyle);\n    }\n\n    if (typeof _style === 'function') {\n      _style();\n    }\n  };\n\n  return {\n    stop: () => {\n      shouldStop = true;\n    },\n    start: (style: ReactSmoothQueue) => {\n      shouldStop = false;\n      if (cancelTimeout) {\n        cancelTimeout();\n        cancelTimeout = null;\n      }\n      setStyle(style);\n    },\n    subscribe: (_handleChange: HandleChangeFn) => {\n      handleChange = _handleChange;\n\n      return () => {\n        handleChange = () => null;\n      };\n    },\n    getTimeoutController: () => timeoutController,\n  } satisfies AnimationManager;\n}\n","import { createContext, useContext, useMemo } from 'react';\nimport { AnimationManager } from './AnimationManager';\nimport { createDefaultAnimationManager } from './createDefaultAnimationManager';\n\nexport type AnimationManagerFactory = (animationId: string) => AnimationManager;\n\nexport const AnimationManagerContext = createContext<AnimationManagerFactory>(createDefaultAnimationManager);\n\nexport function useAnimationManager(\n  animationId: string,\n  animationManagerFromProps: AnimationManager | undefined,\n): AnimationManager {\n  const contextAnimationManager = useContext(AnimationManagerContext);\n  return useMemo(\n    () => animationManagerFromProps ?? contextAnimationManager(animationId),\n    [animationId, animationManagerFromProps, contextAnimationManager],\n  );\n}\n","const parseIsSsrByDefault = (): boolean =>\n  !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);\n\nexport const Global = {\n  devToolsEnabled: process.env.NODE_ENV !== 'production',\n  isSsr: parseIsSsrByDefault(),\n};\n","import * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { noop } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport configUpdate from './configUpdate';\nimport { configEasing, EasingInput } from './easing';\nimport { AnimationManager } from './AnimationManager';\nimport { useAnimationManager } from './useAnimationManager';\nimport { Global } from '../util/Global';\n\ntype JavascriptAnimateProps = {\n  animationId: string;\n  animationManager?: AnimationManager;\n  duration?: number;\n  begin?: number;\n  easing?: EasingInput;\n  isActive?: boolean | 'auto';\n  canBegin?: boolean;\n  onAnimationStart?: () => void;\n  onAnimationEnd?: () => void;\n  children: (time: number) => React.ReactNode;\n};\n\nconst defaultJavascriptAnimateProps = {\n  begin: 0,\n  duration: 1000,\n  easing: 'ease',\n  isActive: true,\n  canBegin: true,\n  onAnimationEnd: () => {},\n  onAnimationStart: () => {},\n} as const satisfies Partial<JavascriptAnimateProps>;\n\ntype TimeAsObject = {\n  t: number;\n};\n\nconst from: TimeAsObject = { t: 0 };\nconst to: TimeAsObject = { t: 1 };\n\nexport function JavascriptAnimate(outsideProps: JavascriptAnimateProps) {\n  const props = resolveDefaultProps(outsideProps, defaultJavascriptAnimateProps);\n  const {\n    isActive: isActiveProp,\n    canBegin,\n    duration,\n    easing,\n    begin,\n    onAnimationEnd,\n    onAnimationStart,\n    children,\n  } = props;\n\n  const isActive = isActiveProp === 'auto' ? !Global.isSsr : isActiveProp;\n\n  const animationManager = useAnimationManager(props.animationId, props.animationManager);\n\n  const [style, setStyle] = useState<TimeAsObject>(isActive ? from : to);\n  const stopJSAnimation = useRef<(() => void) | null>(null);\n\n  useEffect(() => {\n    if (!isActive) {\n      setStyle(to);\n    }\n  }, [isActive]);\n\n  useEffect(() => {\n    if (!isActive || !canBegin) {\n      return noop;\n    }\n\n    const startAnimation = configUpdate<TimeAsObject>(\n      from,\n      to,\n      configEasing(easing),\n      duration,\n      setStyle,\n      animationManager.getTimeoutController(),\n    );\n\n    const onAnimationActive = () => {\n      stopJSAnimation.current = startAnimation();\n    };\n\n    animationManager.start([onAnimationStart, begin, onAnimationActive, duration, onAnimationEnd]);\n\n    return () => {\n      animationManager.stop();\n      if (stopJSAnimation.current) {\n        stopJSAnimation.current();\n      }\n      onAnimationEnd();\n    };\n  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager]);\n\n  return children(style.t);\n}\n","import { useRef } from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * This hook returns a unique animation id for the object input.\n * If input changes (as in, reference equality is different), the animation id will change.\n * If input does not change, the animation id will not change.\n *\n * This is useful for animations. The Animate component\n * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.\n * Also, we don't always want to re-animate on every render;\n * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).\n *\n * @param input The object to check for changes. Uses reference equality (=== operator)\n * @param prefix Optional prefix to use for the animation id\n * @returns A unique animation id\n */\nexport function useAnimationId(input: unknown, prefix: string = 'animation-'): string {\n  const animationId = useRef<string>(uniqueId(prefix));\n  const prevProps = useRef<unknown>(input);\n\n  if (prevProps.current !== input) {\n    animationId.current = uniqueId(prefix);\n    prevProps.current = input;\n  }\n\n  return animationId.current;\n}\n","/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { SVGProps, useEffect, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { AnimationDuration } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { EasingInput } from '../animation/easing';\nimport { interpolate } from '../util/DataUtils';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { round, roundTemplateLiteral } from '../util/round';\n\n/**\n * @inline\n */\nexport type RectRadius = number | [number, number, number, number];\n\nconst getRectanglePath = (x: number, y: number, width: number, height: number, radius: RectRadius): string => {\n  const roundedWidth = round(width);\n  const roundedHeight = round(height);\n  const maxRadius = Math.min(Math.abs(roundedWidth) / 2, Math.abs(roundedHeight) / 2);\n  const ySign = roundedHeight >= 0 ? 1 : -1;\n  const xSign = roundedWidth >= 0 ? 1 : -1;\n  const clockWise = (roundedHeight >= 0 && roundedWidth >= 0) || (roundedHeight < 0 && roundedWidth < 0) ? 1 : 0;\n  let path;\n\n  if (maxRadius > 0 && Array.isArray(radius)) {\n    const newRadius: RectRadius = [0, 0, 0, 0];\n    for (let i = 0, len = 4; i < len; i++) {\n      const r: number = radius[i] ?? 0;\n      newRadius[i] = r > maxRadius ? maxRadius : r;\n    }\n\n    path = roundTemplateLiteral`M${x},${y + ySign * newRadius[0]}`;\n\n    if (newRadius[0] > 0) {\n      path += roundTemplateLiteral`A ${newRadius[0]},${newRadius[0]},0,0,${clockWise},${x + xSign * newRadius[0]},${y}`;\n    }\n\n    path += roundTemplateLiteral`L ${x + width - xSign * newRadius[1]},${y}`;\n\n    if (newRadius[1] > 0) {\n      path += roundTemplateLiteral`A ${newRadius[1]},${newRadius[1]},0,0,${clockWise},\n        ${x + width},${y + ySign * newRadius[1]}`;\n    }\n    path += roundTemplateLiteral`L ${x + width},${y + height - ySign * newRadius[2]}`;\n\n    if (newRadius[2] > 0) {\n      path += roundTemplateLiteral`A ${newRadius[2]},${newRadius[2]},0,0,${clockWise},\n        ${x + width - xSign * newRadius[2]},${y + height}`;\n    }\n    path += roundTemplateLiteral`L ${x + xSign * newRadius[3]},${y + height}`;\n\n    if (newRadius[3] > 0) {\n      path += roundTemplateLiteral`A ${newRadius[3]},${newRadius[3]},0,0,${clockWise},\n        ${x},${y + height - ySign * newRadius[3]}`;\n    }\n    path += 'Z';\n  } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n    const newRadius = Math.min(maxRadius, radius);\n\n    path = roundTemplateLiteral`M ${x},${y + ySign * newRadius}\n            A ${newRadius},${newRadius},0,0,${clockWise},${x + xSign * newRadius},${y}\n            L ${x + width - xSign * newRadius},${y}\n            A ${newRadius},${newRadius},0,0,${clockWise},${x + width},${y + ySign * newRadius}\n            L ${x + width},${y + height - ySign * newRadius}\n            A ${newRadius},${newRadius},0,0,${clockWise},${x + width - xSign * newRadius},${y + height}\n            L ${x + xSign * newRadius},${y + height}\n            A ${newRadius},${newRadius},0,0,${clockWise},${x},${y + height - ySign * newRadius} Z`;\n  } else {\n    path = roundTemplateLiteral`M ${x},${y} h ${width} v ${height} h ${-width} Z`;\n  }\n\n  return path;\n};\ninterface RectangleProps {\n  className?: string;\n  /**\n   * The x-coordinate of top left point of the rectangle.\n   * @defaultValue 0\n   */\n  x?: number;\n  /**\n   * The y-coordinate of top left point of the rectangle.\n   * @defaultValue 0\n   */\n  y?: number;\n  /**\n   * Width of the rectangle in pixels.\n   * @defaultValue 0\n   */\n  width?: number;\n  /**\n   * Height of the rectangle in pixels.\n   * @defaultValue 0\n   */\n  height?: number;\n  /**\n   * The radius of corners.\n   *\n   * If you provide a single number, it applies to all four corners.\n   * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/roundedBars/ Guide: Rounded bar corners}\n   *\n   * @defaultValue 0\n   */\n  radius?: RectRadius;\n  /**\n   * @defaultValue false\n   */\n  isAnimationActive?: boolean;\n  /**\n   * @defaultValue false\n   */\n  isUpdateAnimationActive?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * @defaultValue ease\n   */\n  animationEasing?: EasingInput;\n\n  /**\n   * The customized event handler of click on the rectangle\n   */\n  onClick?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousedown on the rectangle\n   */\n  onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseup on the rectangle\n   */\n  onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousemove on the rectangle\n   */\n  onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseover on the rectangle\n   */\n  onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseout on the rectangle\n   */\n  onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseenter on the rectangle\n   */\n  onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseleave on the rectangle\n   */\n  onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;\n}\n\nexport type Props = Omit<SVGProps<SVGPathElement>, 'radius'> & RectangleProps;\n\nexport const defaultRectangleProps = {\n  x: 0,\n  y: 0,\n  width: 0,\n  height: 0,\n  radius: 0,\n  isAnimationActive: false,\n  isUpdateAnimationActive: false,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n} as const satisfies Partial<Props>;\n\n/**\n * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners\n * and animation.\n *\n * This component accepts X and Y coordinates in pixels.\n * If you need to position the rectangle based on your chart's data,\n * consider using the {@link ReferenceArea} component instead.\n *\n * @param rectangleProps\n * @constructor\n */\nexport const Rectangle: React.FC<Props> = rectangleProps => {\n  const props = resolveDefaultProps(rectangleProps, defaultRectangleProps);\n  const pathRef = useRef<SVGPathElement>(null);\n  const [totalLength, setTotalLength] = useState(-1);\n\n  useEffect(() => {\n    if (pathRef.current && pathRef.current.getTotalLength) {\n      try {\n        const pathTotalLength = pathRef.current.getTotalLength();\n\n        if (pathTotalLength) {\n          setTotalLength(pathTotalLength);\n        }\n      } catch {\n        // calculate total length error\n      }\n    }\n  }, []);\n\n  const { x, y, width, height, radius, className } = props;\n  const { animationEasing, animationDuration, animationBegin, isAnimationActive, isUpdateAnimationActive } = props;\n\n  const prevWidthRef = useRef<number>(width);\n  const prevHeightRef = useRef<number>(height);\n  const prevXRef = useRef<number>(x);\n  const prevYRef = useRef<number>(y);\n  const animationIdInput = useMemo(() => ({ x, y, width, height, radius }), [x, y, width, height, radius]);\n  const animationId = useAnimationId(animationIdInput, 'rectangle-');\n\n  if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n    return null;\n  }\n\n  const layerClass = clsx('recharts-rectangle', className);\n  if (!isUpdateAnimationActive) {\n    const { radius: _, ...otherPathProps } = svgPropertiesAndEvents(props);\n    return (\n      <path\n        {...otherPathProps}\n        x={round(x)}\n        y={round(y)}\n        width={round(width)}\n        height={round(height)}\n        radius={typeof radius === 'number' ? radius : undefined}\n        className={layerClass}\n        d={getRectanglePath(x, y, width, height, radius)}\n      />\n    );\n  }\n\n  const prevWidth = prevWidthRef.current;\n  const prevHeight = prevHeightRef.current;\n  const prevX = prevXRef.current;\n  const prevY = prevYRef.current;\n\n  const from = `0px ${totalLength === -1 ? 1 : totalLength}px`;\n  const to = `${totalLength}px 0px`;\n  const transition = getTransitionVal(\n    ['strokeDasharray'],\n    animationDuration,\n    typeof animationEasing === 'string' ? animationEasing : defaultRectangleProps.animationEasing,\n  );\n\n  return (\n    <JavascriptAnimate\n      animationId={animationId}\n      key={animationId}\n      canBegin={totalLength > 0}\n      duration={animationDuration}\n      easing={animationEasing}\n      isActive={isUpdateAnimationActive}\n      begin={animationBegin}\n    >\n      {(t: number) => {\n        const currWidth = interpolate(prevWidth, width, t);\n        const currHeight = interpolate(prevHeight, height, t);\n        const currX = interpolate(prevX, x, t);\n        const currY = interpolate(prevY, y, t);\n        if (pathRef.current) {\n          prevWidthRef.current = currWidth;\n          prevHeightRef.current = currHeight;\n          prevXRef.current = currX;\n          prevYRef.current = currY;\n        }\n        let animationStyle: { transition: string; strokeDasharray: string } | { strokeDasharray: string };\n        if (!isAnimationActive) {\n          animationStyle = { strokeDasharray: to };\n        } else if (t > 0) {\n          animationStyle = { transition, strokeDasharray: to };\n        } else {\n          animationStyle = { strokeDasharray: from };\n        }\n\n        const { radius: _, ...otherPathProps } = svgPropertiesAndEvents(props);\n\n        return (\n          <path\n            {...otherPathProps}\n            radius={typeof radius === 'number' ? radius : undefined}\n            className={layerClass}\n            d={getRectanglePath(currX, currY, currWidth, currHeight, radius)}\n            ref={pathRef}\n            style={{\n              ...animationStyle,\n              ...props.style,\n            }}\n          />\n        );\n      }}\n    </JavascriptAnimate>\n  );\n};\n","import { ChartOffsetInternal, ChartPointer, Coordinate, PolarViewBoxRequired, RangeObj } from './types';\n\nexport const RADIAN = Math.PI / 180;\n\nexport const degreeToRadian = (angle: number) => (angle * Math.PI) / 180;\n\nexport const radianToDegree = (angleInRadian: number) => (angleInRadian * 180) / Math.PI;\n\nexport const polarToCartesian = (cx: number, cy: number, radius: number, angle: number): Coordinate => ({\n  x: cx + Math.cos(-RADIAN * angle) * radius,\n  y: cy + Math.sin(-RADIAN * angle) * radius,\n});\n\nexport const getMaxRadius = (\n  width: number,\n  height: number,\n  offset: ChartOffsetInternal = {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    width: 0,\n    height: 0,\n    brushBottom: 0,\n  },\n) =>\n  Math.min(\n    Math.abs(width - (offset.left || 0) - (offset.right || 0)),\n    Math.abs(height - (offset.top || 0) - (offset.bottom || 0)),\n  ) / 2;\n\nconst distanceBetweenPoints = (point: Coordinate, anotherPoint: Coordinate) => {\n  const { x: x1, y: y1 } = point;\n  const { x: x2, y: y2 } = anotherPoint;\n\n  return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);\n};\n\nconst getAngleOfPoint = ({ x, y }: Coordinate, { cx, cy }: PolarViewBoxRequired) => {\n  const radius = distanceBetweenPoints({ x, y }, { x: cx, y: cy });\n\n  if (radius <= 0) {\n    return { radius, angle: 0 };\n  }\n\n  const cos = (x - cx) / radius;\n  let angleInRadian = Math.acos(cos);\n\n  if (y > cy) {\n    angleInRadian = 2 * Math.PI - angleInRadian;\n  }\n\n  return { radius, angle: radianToDegree(angleInRadian), angleInRadian };\n};\n\nconst formatAngleOfSector = ({ startAngle, endAngle }: PolarViewBoxRequired) => {\n  const startCnt = Math.floor(startAngle / 360);\n  const endCnt = Math.floor(endAngle / 360);\n  const min = Math.min(startCnt, endCnt);\n\n  return {\n    startAngle: startAngle - min * 360,\n    endAngle: endAngle - min * 360,\n  };\n};\n\nconst reverseFormatAngleOfSector = (angle: number, { startAngle, endAngle }: PolarViewBoxRequired): number => {\n  const startCnt = Math.floor(startAngle / 360);\n  const endCnt = Math.floor(endAngle / 360);\n  const min = Math.min(startCnt, endCnt);\n\n  return angle + min * 360;\n};\n\nexport const inRangeOfSector = (\n  { chartX: x, chartY: y }: ChartPointer,\n  viewBox: PolarViewBoxRequired,\n): RangeObj | null => {\n  const { radius, angle } = getAngleOfPoint({ x, y }, viewBox);\n  const { innerRadius, outerRadius } = viewBox;\n\n  if (radius < innerRadius || radius > outerRadius) {\n    return null;\n  }\n\n  if (radius === 0) {\n    return null;\n  }\n\n  const { startAngle, endAngle } = formatAngleOfSector(viewBox);\n  let formatAngle = angle;\n  let inRange;\n\n  if (startAngle <= endAngle) {\n    while (formatAngle > endAngle) {\n      formatAngle -= 360;\n    }\n    while (formatAngle < startAngle) {\n      formatAngle += 360;\n    }\n    inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n  } else {\n    while (formatAngle > startAngle) {\n      formatAngle -= 360;\n    }\n    while (formatAngle < endAngle) {\n      formatAngle += 360;\n    }\n    inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n  }\n\n  if (inRange) {\n    return { ...viewBox, radius, angle: reverseFormatAngleOfSector(formatAngle, viewBox) };\n  }\n\n  return null;\n};\n","import { polarToCartesian } from '../PolarUtils';\nimport { Coordinate, PolarCoordinate } from '../types';\n\nexport type RadialCursorPoints = {\n  points: [startPoint: Coordinate, endPoint: Coordinate];\n  cx?: number;\n  cy?: number;\n  radius?: number;\n  startAngle?: number;\n  endAngle?: number;\n};\n\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate: PolarCoordinate): RadialCursorPoints {\n  const { cx, cy, radius, startAngle, endAngle } = activeCoordinate;\n  const startPoint = polarToCartesian(cx, cy, radius, startAngle);\n  const endPoint = polarToCartesian(cx, cy, radius, endAngle);\n\n  return {\n    points: [startPoint, endPoint],\n    cx,\n    cy,\n    radius,\n    startAngle,\n    endAngle,\n  };\n}\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nimport { clsx } from 'clsx';\nimport { GeometrySector, GeometrySectorWithCornerRadius } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\n\nconst getDeltaAngle = (startAngle: number, endAngle: number) => {\n  const sign = mathSign(endAngle - startAngle);\n  const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n\n  return sign * deltaAngle;\n};\n\ninterface TangentCircleDef {\n  cx: number;\n  cy: number;\n  radius: number;\n  angle: number;\n  sign: number;\n  isExternal?: boolean;\n  cornerRadius: number;\n  cornerIsExternal?: boolean;\n}\n\nconst getTangentCircle = ({\n  cx,\n  cy,\n  radius,\n  angle,\n  sign,\n  isExternal,\n  cornerRadius,\n  cornerIsExternal,\n}: TangentCircleDef) => {\n  const centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n  const theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n  const centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n  const center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n  // The coordinate of point which is tangent to the circle\n  const circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n  // The coordinate of point which is tangent to the radius line\n  const lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n  const lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n  return { center, circleTangency, lineTangency, theta };\n};\n\nconst getSectorPath = ({ cx, cy, innerRadius, outerRadius, startAngle, endAngle }: GeometrySector) => {\n  const angle = getDeltaAngle(startAngle, endAngle);\n\n  // When the angle of sector equals to 360, star point and end point coincide\n  const tempEndAngle = startAngle + angle;\n  const outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n  const outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n\n  let path = roundTemplateLiteral`M ${outerStartPoint.x},${outerStartPoint.y}\n    A ${outerRadius},${outerRadius},0,\n    ${+(Math.abs(angle) > 180)},${+(startAngle > tempEndAngle)},\n    ${outerEndPoint.x},${outerEndPoint.y}\n  `;\n\n  if (innerRadius > 0) {\n    const innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n    const innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n    path += roundTemplateLiteral`L ${innerEndPoint.x},${innerEndPoint.y}\n            A ${innerRadius},${innerRadius},0,\n            ${+(Math.abs(angle) > 180)},${+(startAngle <= tempEndAngle)},\n            ${innerStartPoint.x},${innerStartPoint.y} Z`;\n  } else {\n    path += roundTemplateLiteral`L ${cx},${cy} Z`;\n  }\n\n  return path;\n};\n\nconst getSectorWithCorner = ({\n  cx,\n  cy,\n  innerRadius,\n  outerRadius,\n  cornerRadius,\n  forceCornerRadius,\n  cornerIsExternal,\n  startAngle,\n  endAngle,\n}: GeometrySectorWithCornerRadius) => {\n  const sign = mathSign(endAngle - startAngle);\n  const {\n    circleTangency: soct,\n    lineTangency: solt,\n    theta: sot,\n  } = getTangentCircle({\n    cx,\n    cy,\n    radius: outerRadius,\n    angle: startAngle,\n    sign,\n    cornerRadius,\n    cornerIsExternal,\n  });\n  const {\n    circleTangency: eoct,\n    lineTangency: eolt,\n    theta: eot,\n  } = getTangentCircle({\n    cx,\n    cy,\n    radius: outerRadius,\n    angle: endAngle,\n    sign: -sign,\n    cornerRadius,\n    cornerIsExternal,\n  });\n  const outerArcAngle = cornerIsExternal\n    ? Math.abs(startAngle - endAngle)\n    : Math.abs(startAngle - endAngle) - sot - eot;\n\n  if (outerArcAngle < 0) {\n    if (forceCornerRadius) {\n      return roundTemplateLiteral`M ${solt.x},${solt.y}\n        a${cornerRadius},${cornerRadius},0,0,1,${cornerRadius * 2},0\n        a${cornerRadius},${cornerRadius},0,0,1,${-cornerRadius * 2},0\n      `;\n    }\n    return getSectorPath({\n      cx,\n      cy,\n      innerRadius,\n      outerRadius,\n      startAngle,\n      endAngle,\n    });\n  }\n\n  let path = roundTemplateLiteral`M ${solt.x},${solt.y}\n    A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${soct.x},${soct.y}\n    A${outerRadius},${outerRadius},0,${+(outerArcAngle > 180)},${+(sign < 0)},${eoct.x},${eoct.y}\n    A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${eolt.x},${eolt.y}\n  `;\n\n  if (innerRadius > 0) {\n    const {\n      circleTangency: sict,\n      lineTangency: silt,\n      theta: sit,\n    } = getTangentCircle({\n      cx,\n      cy,\n      radius: innerRadius,\n      angle: startAngle,\n      sign,\n      isExternal: true,\n      cornerRadius,\n      cornerIsExternal,\n    });\n    const {\n      circleTangency: eict,\n      lineTangency: eilt,\n      theta: eit,\n    } = getTangentCircle({\n      cx,\n      cy,\n      radius: innerRadius,\n      angle: endAngle,\n      sign: -sign,\n      isExternal: true,\n      cornerRadius,\n      cornerIsExternal,\n    });\n    const innerArcAngle = cornerIsExternal\n      ? Math.abs(startAngle - endAngle)\n      : Math.abs(startAngle - endAngle) - sit - eit;\n\n    if (innerArcAngle < 0 && cornerRadius === 0) {\n      return `${path}L${cx},${cy}Z`;\n    }\n\n    path += roundTemplateLiteral`L${eilt.x},${eilt.y}\n      A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${eict.x},${eict.y}\n      A${innerRadius},${innerRadius},0,${+(innerArcAngle > 180)},${+(sign > 0)},${sict.x},${sict.y}\n      A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${silt.x},${silt.y}Z`;\n  } else {\n    path += roundTemplateLiteral`L${cx},${cy}Z`;\n  }\n\n  return path;\n};\n\ninterface SectorProps {\n  className?: string;\n  /**\n   * The x-coordinate of center.\n   * @default 0\n   */\n  cx?: number;\n  /**\n   * The y-coordinate of center.\n   * @default 0\n   */\n  cy?: number;\n  /**\n   * The inner radius of the sector.\n   * @default 0\n   */\n  innerRadius?: number;\n  /**\n   * The outer radius of the sector.\n   * @default 0\n   */\n  outerRadius?: number;\n  /**\n   * The start angle of the sector.\n   * @default 0\n   */\n  startAngle?: number;\n  /**\n   * The end angle of the sector.\n   * @default 0\n   */\n  endAngle?: number;\n  /**\n   * The radius of corners.\n   * @default 0\n   */\n  cornerRadius?: number;\n  /**\n   * Whether force to render round corner when the angle of sector is very small\n   * @default false\n   */\n  forceCornerRadius?: boolean;\n  cornerIsExternal?: boolean;\n  /**\n   * The customized event handler of click on the sector\n   */\n  onClick?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousedown on the sector\n   */\n  onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseup on the sector\n   */\n  onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousemove on the sector\n   */\n  onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseover on the sector\n   */\n  onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseout on the sector\n   */\n  onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseenter on the sector\n   */\n  onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseleave on the sector\n   */\n  onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;\n}\n\n/**\n * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's\n * override the types here.\n */\nexport type Props = Omit<SVGProps<SVGPathElement>, 'cx' | 'cy' | 'dangerouslySetInnerHTML'> & Partial<SectorProps>;\n\nexport const defaultSectorProps = {\n  cx: 0,\n  cy: 0,\n  innerRadius: 0,\n  outerRadius: 0,\n  startAngle: 0,\n  endAngle: 0,\n  cornerRadius: 0,\n  forceCornerRadius: false,\n  cornerIsExternal: false,\n} as const satisfies Partial<Props>;\n\nexport const Sector: React.FC<Props> = sectorProps => {\n  const props = resolveDefaultProps(sectorProps, defaultSectorProps);\n  const {\n    cx,\n    cy,\n    innerRadius,\n    outerRadius,\n    cornerRadius,\n    forceCornerRadius,\n    cornerIsExternal,\n    startAngle,\n    endAngle,\n    className,\n  } = props;\n\n  if (outerRadius < innerRadius || startAngle === endAngle) {\n    return null;\n  }\n\n  const layerClass = clsx('recharts-sector', className);\n  const deltaRadius = outerRadius - innerRadius;\n  const cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n  let path;\n\n  if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n    path = getSectorWithCorner({\n      cx,\n      cy,\n      innerRadius,\n      outerRadius,\n      cornerRadius: Math.min(cr, deltaRadius / 2),\n      forceCornerRadius,\n      cornerIsExternal,\n      startAngle,\n      endAngle,\n    });\n  } else {\n    path = getSectorPath({ cx, cy, innerRadius, outerRadius, startAngle, endAngle });\n  }\n\n  return <path {...svgPropertiesAndEvents(props)} className={layerClass} d={path} />;\n};\n","import { polarToCartesian } from '../PolarUtils';\nimport {\n  Coordinate,\n  ChartOffsetInternal,\n  PolarCoordinate,\n  isPolarCoordinate,\n  CartesianLayout,\n  PolarLayout,\n} from '../types';\nimport { RadialCursorPoints, getRadialCursorPoints } from './getRadialCursorPoints';\n\nexport function getCursorPoints(\n  layout: CartesianLayout | PolarLayout,\n  activeCoordinate: Coordinate | PolarCoordinate,\n  offset: ChartOffsetInternal,\n): [Coordinate, Coordinate] | RadialCursorPoints | undefined {\n  if (layout === 'horizontal') {\n    return [\n      { x: activeCoordinate.x, y: offset.top },\n      { x: activeCoordinate.x, y: offset.top + offset.height },\n    ];\n  }\n\n  if (layout === 'vertical') {\n    return [\n      { x: offset.left, y: activeCoordinate.y },\n      { x: offset.left + offset.width, y: activeCoordinate.y },\n    ];\n  }\n\n  if (isPolarCoordinate(activeCoordinate)) {\n    if (layout === 'centric') {\n      const { cx, cy, innerRadius, outerRadius, angle } = activeCoordinate;\n      const innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n      const outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n      return [\n        { x: innerPoint.x, y: innerPoint.y },\n        { x: outerPoint.x, y: outerPoint.y },\n      ];\n    }\n    return getRadialCursorPoints(activeCoordinate);\n  }\n\n  return undefined;\n}\n","export function initRange(domain, range) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: this.range(domain); break;\n    default: this.range(range).domain(domain); break;\n  }\n  return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: {\n      if (typeof domain === \"function\") this.interpolator(domain);\n      else this.range(domain);\n      break;\n    }\n    default: {\n      this.domain(domain);\n      if (typeof interpolator === \"function\") this.interpolator(interpolator);\n      else this.range(interpolator);\n      break;\n    }\n  }\n  return this;\n}\n","export class InternMap extends Map {\n  constructor(entries, key = keyof) {\n    super();\n    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n    if (entries != null) for (const [key, value] of entries) this.set(key, value);\n  }\n  get(key) {\n    return super.get(intern_get(this, key));\n  }\n  has(key) {\n    return super.has(intern_get(this, key));\n  }\n  set(key, value) {\n    return super.set(intern_set(this, key), value);\n  }\n  delete(key) {\n    return super.delete(intern_delete(this, key));\n  }\n}\n\nexport class InternSet extends Set {\n  constructor(values, key = keyof) {\n    super();\n    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n    if (values != null) for (const value of values) this.add(value);\n  }\n  has(value) {\n    return super.has(intern_get(this, value));\n  }\n  add(value) {\n    return super.add(intern_set(this, value));\n  }\n  delete(value) {\n    return super.delete(intern_delete(this, value));\n  }\n}\n\nfunction intern_get({_intern, _key}, value) {\n  const key = _key(value);\n  return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n  const key = _key(value);\n  if (_intern.has(key)) return _intern.get(key);\n  _intern.set(key, value);\n  return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n  const key = _key(value);\n  if (_intern.has(key)) {\n    value = _intern.get(key);\n    _intern.delete(key);\n  }\n  return value;\n}\n\nfunction keyof(value) {\n  return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n  var index = new InternMap(),\n      domain = [],\n      range = [],\n      unknown = implicit;\n\n  function scale(d) {\n    let i = index.get(d);\n    if (i === undefined) {\n      if (unknown !== implicit) return unknown;\n      index.set(d, i = domain.push(d) - 1);\n    }\n    return range[i % range.length];\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [], index = new InternMap();\n    for (const value of _) {\n      if (index.has(value)) continue;\n      index.set(value, domain.push(value) - 1);\n    }\n    return scale;\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), scale) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return ordinal(domain, range).unknown(unknown);\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n  var scale = ordinal().unknown(undefined),\n      domain = scale.domain,\n      ordinalRange = scale.range,\n      r0 = 0,\n      r1 = 1,\n      step,\n      bandwidth,\n      round = false,\n      paddingInner = 0,\n      paddingOuter = 0,\n      align = 0.5;\n\n  delete scale.unknown;\n\n  function rescale() {\n    var n = domain().length,\n        reverse = r1 < r0,\n        start = reverse ? r1 : r0,\n        stop = reverse ? r0 : r1;\n    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n    if (round) step = Math.floor(step);\n    start += (stop - start - step * (n - paddingInner)) * align;\n    bandwidth = step * (1 - paddingInner);\n    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n    var values = sequence(n).map(function(i) { return start + step * i; });\n    return ordinalRange(reverse ? values.reverse() : values);\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n  };\n\n  scale.rangeRound = function(_) {\n    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n  };\n\n  scale.bandwidth = function() {\n    return bandwidth;\n  };\n\n  scale.step = function() {\n    return step;\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, rescale()) : round;\n  };\n\n  scale.padding = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n  };\n\n  scale.paddingInner = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n  };\n\n  scale.paddingOuter = function(_) {\n    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n  };\n\n  scale.align = function(_) {\n    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n  };\n\n  scale.copy = function() {\n    return band(domain(), [r0, r1])\n        .round(round)\n        .paddingInner(paddingInner)\n        .paddingOuter(paddingOuter)\n        .align(align);\n  };\n\n  return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n  var copy = scale.copy;\n\n  scale.padding = scale.paddingOuter;\n  delete scale.paddingInner;\n  delete scale.paddingOuter;\n\n  scale.copy = function() {\n    return pointish(copy());\n  };\n\n  return scale;\n}\n\nexport function point() {\n  return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n  var i = -1,\n      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n      range = new Array(n);\n\n  while (++i < n) {\n    range[i] = start + i * step;\n  }\n\n  return range;\n}\n","const e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n  const step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log10(step)),\n      error = step / Math.pow(10, power),\n      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n  let i1, i2, inc;\n  if (power < 0) {\n    inc = Math.pow(10, -power) / factor;\n    i1 = Math.round(start * inc);\n    i2 = Math.round(stop * inc);\n    if (i1 / inc < start) ++i1;\n    if (i2 / inc > stop) --i2;\n    inc = -inc;\n  } else {\n    inc = Math.pow(10, power) * factor;\n    i1 = Math.round(start / inc);\n    i2 = Math.round(stop / inc);\n    if (i1 * inc < start) ++i1;\n    if (i2 * inc > stop) --i2;\n  }\n  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n  return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  if (!(count > 0)) return [];\n  if (start === stop) return [start];\n  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n  if (!(i2 >= i1)) return [];\n  const n = i2 - i1 + 1, ticks = new Array(n);\n  if (reverse) {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n  } else {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n  }\n  return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n  return a == null || b == null ? NaN\n    : b < a ? -1\n    : b > a ? 1\n    : b >= a ? 0\n    : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n  let compare1, compare2, delta;\n\n  // If an accessor is specified, promote it to a comparator. In this case we\n  // can test whether the search value is (self-) comparable. We can’t do this\n  // for a comparator (except for specific, known comparators) because we can’t\n  // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n  // used to test whether a single value is comparable.\n  if (f.length !== 2) {\n    compare1 = ascending;\n    compare2 = (d, x) => ascending(f(d), x);\n    delta = (d, x) => f(d) - x;\n  } else {\n    compare1 = f === ascending || f === descending ? f : zero;\n    compare2 = f;\n    delta = f;\n  }\n\n  function left(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function right(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) <= 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function center(a, x, lo = 0, hi = a.length) {\n    const i = left(a, x, lo, hi - 1);\n    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n  }\n\n  return {left, center, right};\n}\n\nfunction zero() {\n  return 0;\n}\n","export default function number(x) {\n  return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n","export default function(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n}\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = value(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\n  };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\nexport default function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: number(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n","export default function(a, b) {\n  if (!b) b = [];\n  var n = a ? Math.min(b.length, a.length) : 0,\n      c = b.slice(),\n      i;\n  return function(t) {\n    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n    return c;\n  };\n}\n\nexport function isNumberArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  var t = typeof b, c;\n  return b == null || t === \"boolean\" ? constant(b)\n      : (t === \"number\" ? number\n      : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n      : b instanceof color ? rgb\n      : b instanceof Date ? date\n      : isNumberArray(b) ? numberArray\n      : Array.isArray(b) ? genericArray\n      : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n      : number)(a, b);\n}\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return Math.round(a * (1 - t) + b * t);\n  };\n}\n","export default function number(x) {\n  return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n  return x;\n}\n\nfunction normalize(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n  var t;\n  if (a > b) t = a, a = b, b = t;\n  return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = normalize(domain[i], domain[i + 1]);\n    r[i] = interpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = bisect(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nexport function transformer() {\n  var domain = unit,\n      range = unit,\n      interpolate = interpolateValue,\n      transform,\n      untransform,\n      unknown,\n      clamp = identity,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    var n = Math.min(domain.length, range.length);\n    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n    piecewise = n > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n  }\n\n  scale.invert = function(y) {\n    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = Array.from(_), interpolate = interpolateRound, rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t, u) {\n    transform = t, untransform = u;\n    return rescale();\n  };\n}\n\nexport default function continuous() {\n  return transformer()(identity, identity);\n}\n","export default function constants(x) {\n  return function() {\n    return x;\n  };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": (x, p) => (x * 100).toFixed(p),\n  \"b\": (x) => Math.round(x).toString(2),\n  \"c\": (x) => x + \"\",\n  \"d\": formatDecimal,\n  \"e\": (x, p) => x.toExponential(p),\n  \"f\": (x, p) => x.toFixed(p),\n  \"g\": (x, p) => x.toPrecision(p),\n  \"o\": (x) => Math.round(x).toString(8),\n  \"p\": (x, p) => formatRounded(x * 100, p),\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n  \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n  return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = formatTrim(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n  var step = tickStep(start, stop, count),\n      precision;\n  specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n      return formatPrefix(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n  return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    var d = domain();\n    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n  };\n\n  scale.nice = function(count) {\n    if (count == null) count = 10;\n\n    var d = domain();\n    var i0 = 0;\n    var i1 = d.length - 1;\n    var start = d[i0];\n    var stop = d[i1];\n    var prestep;\n    var step;\n    var maxIter = 10;\n\n    if (stop < start) {\n      step = start, start = stop, stop = step;\n      step = i0, i0 = i1, i1 = step;\n    }\n    \n    while (maxIter-- > 0) {\n      step = tickIncrement(start, stop, count);\n      if (step === prestep) {\n        d[i0] = start\n        d[i1] = stop\n        return domain(d);\n      } else if (step > 0) {\n        start = Math.floor(start / step) * step;\n        stop = Math.ceil(stop / step) * step;\n      } else if (step < 0) {\n        start = Math.ceil(start * step) / step;\n        stop = Math.floor(stop * step) / step;\n      } else {\n        break;\n      }\n      prestep = step;\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nexport default function linear() {\n  var scale = continuous();\n\n  scale.copy = function() {\n    return copy(scale, linear());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n  var unknown;\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : x;\n  }\n\n  scale.invert = scale;\n\n  scale.domain = scale.range = function(_) {\n    return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return identity(domain).unknown(unknown);\n  };\n\n  domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n  return linearish(scale);\n}\n","export default function nice(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n  return Math.log(x);\n}\n\nfunction transformExp(x) {\n  return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n  return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n  return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n  return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n  return base === 10 ? pow10\n      : base === Math.E ? Math.exp\n      : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n  return base === Math.E ? Math.log\n      : base === 10 && Math.log10\n      || base === 2 && Math.log2\n      || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n  return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n  const scale = transform(transformLog, transformExp);\n  const domain = scale.domain;\n  let base = 10;\n  let logs;\n  let pows;\n\n  function rescale() {\n    logs = logp(base), pows = powp(base);\n    if (domain()[0] < 0) {\n      logs = reflect(logs), pows = reflect(pows);\n      transform(transformLogn, transformExpn);\n    } else {\n      transform(transformLog, transformExp);\n    }\n    return scale;\n  }\n\n  scale.base = function(_) {\n    return arguments.length ? (base = +_, rescale()) : base;\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.ticks = count => {\n    const d = domain();\n    let u = d[0];\n    let v = d[d.length - 1];\n    const r = v < u;\n\n    if (r) ([u, v] = [v, u]);\n\n    let i = logs(u);\n    let j = logs(v);\n    let k;\n    let t;\n    const n = count == null ? 10 : +count;\n    let z = [];\n\n    if (!(base % 1) && j - i < n) {\n      i = Math.floor(i), j = Math.ceil(j);\n      if (u > 0) for (; i <= j; ++i) {\n        for (k = 1; k < base; ++k) {\n          t = i < 0 ? k / pows(-i) : k * pows(i);\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      } else for (; i <= j; ++i) {\n        for (k = base - 1; k >= 1; --k) {\n          t = i > 0 ? k / pows(-i) : k * pows(i);\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      }\n      if (z.length * 2 < n) z = ticks(u, v, n);\n    } else {\n      z = ticks(i, j, Math.min(j - i, n)).map(pows);\n    }\n    return r ? z.reverse() : z;\n  };\n\n  scale.tickFormat = (count, specifier) => {\n    if (count == null) count = 10;\n    if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n    if (typeof specifier !== \"function\") {\n      if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n      specifier = format(specifier);\n    }\n    if (count === Infinity) return specifier;\n    const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n    return d => {\n      let i = d / pows(Math.round(logs(d)));\n      if (i * base < base - 0.5) i *= base;\n      return i <= k ? specifier(d) : \"\";\n    };\n  };\n\n  scale.nice = () => {\n    return domain(nice(domain(), {\n      floor: x => pows(Math.floor(logs(x))),\n      ceil: x => pows(Math.ceil(logs(x)))\n    }));\n  };\n\n  return scale;\n}\n\nexport default function log() {\n  const scale = loggish(transformer()).domain([1, 10]);\n  scale.copy = () => copy(scale, log()).base(scale.base());\n  initRange.apply(scale, arguments);\n  return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n  return function(x) {\n    return Math.sign(x) * Math.log1p(Math.abs(x / c));\n  };\n}\n\nfunction transformSymexp(c) {\n  return function(x) {\n    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n  };\n}\n\nexport function symlogish(transform) {\n  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n  scale.constant = function(_) {\n    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n  };\n\n  return linearish(scale);\n}\n\nexport default function symlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, symlog()).constant(scale.constant());\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n  return function(x) {\n    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n  };\n}\n\nfunction transformSqrt(x) {\n  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n  return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n  var scale = transform(identity, identity),\n      exponent = 1;\n\n  function rescale() {\n    return exponent === 1 ? transform(identity, identity)\n        : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n        : transform(transformPow(exponent), transformPow(1 / exponent));\n  }\n\n  scale.exponent = function(_) {\n    return arguments.length ? (exponent = +_, rescale()) : exponent;\n  };\n\n  return linearish(scale);\n}\n\nexport default function pow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, pow()).exponent(scale.exponent());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n\nexport function sqrt() {\n  return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n  return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n  return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n  var squared = continuous(),\n      range = [0, 1],\n      round = false,\n      unknown;\n\n  function scale(x) {\n    var y = unsquare(squared(x));\n    return isNaN(y) ? unknown : round ? Math.round(y) : y;\n  }\n\n  scale.invert = function(y) {\n    return squared.invert(square(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (squared.domain(_), scale) : squared.domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return scale.range(_).round(true);\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, scale) : round;\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return radial(squared.domain(), range)\n        .round(round)\n        .clamp(squared.clamp())\n        .unknown(unknown);\n  };\n\n  initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n","export default function max(values, valueof) {\n  let max;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  }\n  return max;\n}\n","export default function min(values, valueof) {\n  let min;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  }\n  return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n  if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n  values = Array.from(values);\n  let [f] = F;\n  if ((f && f.length !== 2) || F.length > 1) {\n    const index = Uint32Array.from(values, (d, i) => i);\n    if (F.length > 1) {\n      F = F.map(f => values.map(f));\n      index.sort((i, j) => {\n        for (const f of F) {\n          const c = ascendingDefined(f[i], f[j]);\n          if (c) return c;\n        }\n      });\n    } else {\n      f = values.map(f);\n      index.sort((i, j) => ascendingDefined(f[i], f[j]));\n    }\n    return permute(values, index);\n  }\n  return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n  if (compare === ascending) return ascendingDefined;\n  if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n  return (a, b) => {\n    const x = compare(a, b);\n    if (x || x === 0) return x;\n    return (compare(b, b) === 0) - (compare(a, a) === 0);\n  };\n}\n\nexport function ascendingDefined(a, b) {\n  return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n  k = Math.floor(k);\n  left = Math.floor(Math.max(0, left));\n  right = Math.floor(Math.min(array.length - 1, right));\n\n  if (!(left <= k && k <= right)) return array;\n\n  compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n  while (right > left) {\n    if (right - left > 600) {\n      const n = right - left + 1;\n      const m = k - left + 1;\n      const z = Math.log(n);\n      const s = 0.5 * Math.exp(2 * z / 3);\n      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n      quickselect(array, k, newLeft, newRight, compare);\n    }\n\n    const t = array[k];\n    let i = left;\n    let j = right;\n\n    swap(array, left, k);\n    if (compare(array[right], t) > 0) swap(array, left, right);\n\n    while (i < j) {\n      swap(array, i, j), ++i, --j;\n      while (compare(array[i], t) < 0) ++i;\n      while (compare(array[j], t) > 0) --j;\n    }\n\n    if (compare(array[left], t) === 0) swap(array, left, j);\n    else ++j, swap(array, j, right);\n\n    if (j <= k) left = j + 1;\n    if (k <= j) right = j - 1;\n  }\n\n  return array;\n}\n\nfunction swap(array, i, j) {\n  const t = array[i];\n  array[i] = array[j];\n  array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n  values = Float64Array.from(numbers(values, valueof));\n  if (!(n = values.length) || isNaN(p = +p)) return;\n  if (p <= 0 || n < 2) return min(values);\n  if (p >= 1) return max(values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n      value1 = min(values.subarray(i0 + 1));\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n  if (!(n = values.length) || isNaN(p = +p)) return;\n  if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n  if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = +valueof(values[i0], i0, values),\n      value1 = +valueof(values[i0 + 1], i0 + 1, values);\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n  if (isNaN(p = +p)) return;\n  numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n  if (p <= 0) return minIndex(numbers);\n  if (p >= 1) return maxIndex(numbers);\n  var numbers,\n      index = Uint32Array.from(values, (_, i) => i),\n      j = numbers.length - 1,\n      i = Math.floor(j * p);\n  quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n  i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n  return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n  var domain = [],\n      range = [],\n      thresholds = [],\n      unknown;\n\n  function rescale() {\n    var i = 0, n = Math.max(1, range.length);\n    thresholds = new Array(n - 1);\n    while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n  }\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN] : [\n      i > 0 ? thresholds[i - 1] : domain[0],\n      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n    ];\n  };\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(ascending);\n    return rescale();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.quantiles = function() {\n    return thresholds.slice();\n  };\n\n  scale.copy = function() {\n    return quantile()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n  var x0 = 0,\n      x1 = 1,\n      n = 1,\n      domain = [0.5],\n      range = [0, 1],\n      unknown;\n\n  function scale(x) {\n    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n  }\n\n  function rescale() {\n    var i = -1;\n    domain = new Array(n);\n    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n    return scale;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN]\n        : i < 1 ? [x0, domain[0]]\n        : i >= n ? [domain[n - 1], x1]\n        : [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : scale;\n  };\n\n  scale.thresholds = function() {\n    return domain.slice();\n  };\n\n  scale.copy = function() {\n    return quantize()\n        .domain([x0, x1])\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n  var domain = [0.5],\n      range = [0, 1],\n      unknown,\n      n = 1;\n\n  function scale(x) {\n    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return threshold()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = (date) => {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = (date) => {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = (date) => {\n    const d0 = interval(date), d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = (date, step) => {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = (start, stop, step) => {\n    const range = [];\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    let previous;\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = (test) => {\n    return timeInterval((date) => {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, (date, step) => {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = (start, end) => {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = (step) => {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? (d) => field(d) % step === 0\n              : (d) => interval.count(0, d) % step === 0);\n    };\n  }\n\n  return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n  // noop\n}, (date, step) => {\n  date.setTime(+date + step);\n}, (start, end) => {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return timeInterval((date) => {\n    date.setTime(Math.floor(date / k) * k);\n  }, (date, step) => {\n    date.setTime(+date + step * k);\n  }, (start, end) => {\n    return (end - start) / k;\n  });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n  date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n  return (end - start) / durationSecond;\n}, (date) => {\n  return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n  date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n  return (end - start) / durationMinute;\n}, (date) => {\n  return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n  date.setUTCSeconds(0, 0);\n}, (date, step) => {\n  date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n  return (end - start) / durationMinute;\n}, (date) => {\n  return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n  date.setTime(+date + step * durationHour);\n}, (start, end) => {\n  return (end - start) / durationHour;\n}, (date) => {\n  return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n  date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n  date.setTime(+date + step * durationHour);\n}, (start, end) => {\n  return (end - start) / durationHour;\n}, (date) => {\n  return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n  date => date.setHours(0, 0, 0, 0),\n  (date, step) => date.setDate(date.getDate() + step),\n  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n  date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n  return (end - start) / durationDay;\n}, (date) => {\n  return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n  return (end - start) / durationDay;\n}, (date) => {\n  return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n  return timeInterval((date) => {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setDate(date.getDate() + step * 7);\n  }, (start, end) => {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n  return timeInterval((date) => {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, (start, end) => {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n  return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n  return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n  return end.getFullYear() - start.getFullYear();\n}, (date) => {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n  const tickIntervals = [\n    [second,  1,      durationSecond],\n    [second,  5,  5 * durationSecond],\n    [second, 15, 15 * durationSecond],\n    [second, 30, 30 * durationSecond],\n    [minute,  1,      durationMinute],\n    [minute,  5,  5 * durationMinute],\n    [minute, 15, 15 * durationMinute],\n    [minute, 30, 30 * durationMinute],\n    [  hour,  1,      durationHour  ],\n    [  hour,  3,  3 * durationHour  ],\n    [  hour,  6,  6 * durationHour  ],\n    [  hour, 12, 12 * durationHour  ],\n    [   day,  1,      durationDay   ],\n    [   day,  2,  2 * durationDay   ],\n    [  week,  1,      durationWeek  ],\n    [ month,  1,      durationMonth ],\n    [ month,  3,  3 * durationMonth ],\n    [  year,  1,      durationYear  ]\n  ];\n\n  function ticks(start, stop, count) {\n    const reverse = stop < start;\n    if (reverse) [start, stop] = [stop, start];\n    const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n    return reverse ? ticks.reverse() : ticks;\n  }\n\n  function tickInterval(start, stop, count) {\n    const target = Math.abs(stop - start) / count;\n    const i = bisector(([,, step]) => step).right(tickIntervals, target);\n    if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n    if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n    return t.every(step);\n  }\n\n  return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n  var scale = continuous(),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval) {\n    var d = domain();\n    if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n    return interval ? domain(nice(d, interval)) : scale;\n  };\n\n  scale.copy = function() {\n    return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n  };\n\n  return scale;\n}\n\nexport default function time() {\n  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n  return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 1,\n      t0,\n      t1,\n      k10,\n      transform,\n      interpolator = identity,\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1;\n      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n    };\n  }\n\n  scale.range = range(interpolate);\n\n  scale.rangeRound = range(interpolateRound);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n    return scale;\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .interpolator(source.interpolator())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nexport default function sequential() {\n  var scale = linearish(transformer()(identity));\n\n  scale.copy = function() {\n    return copy(scale, sequential());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n  var scale = loggish(transformer()).domain([1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, sequentialLog()).base(scale.base());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialSymlog()).constant(scale.constant());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialPow()).exponent(scale.exponent());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n  return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n  var domain = [],\n      interpolator = identity;\n\n  function scale(x) {\n    if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(ascending);\n    return scale;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  scale.range = function() {\n    return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n  };\n\n  scale.quantiles = function(n) {\n    return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n  };\n\n  scale.copy = function() {\n    return sequentialQuantile(interpolator).domain(domain);\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 0.5,\n      x2 = 1,\n      s = 1,\n      t0,\n      t1,\n      t2,\n      k10,\n      k21,\n      interpolator = identity,\n      transform,\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1, r2;\n      return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n    };\n  }\n\n  scale.range = range(interpolate);\n\n  scale.rangeRound = range(interpolateRound);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n    return scale;\n  };\n}\n\nexport default function diverging() {\n  var scale = linearish(transformer()(identity));\n\n  scale.copy = function() {\n    return copy(scale, diverging());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n  var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, divergingLog()).base(scale.base());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, divergingSymlog()).constant(scale.constant());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, divergingPow()).exponent(scale.exponent());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n  return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n  if (values === undefined) values = interpolate, interpolate = value;\n  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n  while (i < n) I[i] = interpolate(v, v = values[++i]);\n  return function(t) {\n    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n    return I[i](t - i);\n  };\n}\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { ChartDataState } from '../chartDataSlice';\n\n/**\n * This selector always returns the data with the indexes set by a Brush.\n * Trouble is, that might or might not be what you want.\n *\n * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush\n * - even if the Brush is active, the panorama inside the Brush should show the full range of data.\n *\n * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama\n *\n * @param state RechartsRootState\n * @returns data defined on the chart root element, such as BarChart or ScatterChart\n */\nexport const selectChartDataWithIndexes = (state: RechartsRootState): ChartDataState => state.chartData;\n\n/**\n * This selector will always return the full range of data, ignoring the indexes set by a Brush.\n * Useful for when you want to render the full range of data, even if a Brush is active.\n * For example: in the Brush panorama, in Legend, in Tooltip.\n */\nexport const selectChartDataAndAlwaysIgnoreIndexes: (state: RechartsRootState) => ChartDataState = createSelector(\n  [selectChartDataWithIndexes],\n  (dataState: ChartDataState) => {\n    const dataEndIndex = dataState.chartData != null ? dataState.chartData.length - 1 : 0;\n    return {\n      chartData: dataState.chartData,\n      computedData: dataState.computedData,\n      dataEndIndex,\n      dataStartIndex: 0,\n    };\n  },\n);\n\nexport const selectChartDataWithIndexesIfNotInPanoramaPosition4 = (\n  state: RechartsRootState,\n  _unused1: unknown,\n  _unused2: unknown,\n  isPanorama: boolean,\n): ChartDataState => {\n  if (isPanorama) {\n    return selectChartDataAndAlwaysIgnoreIndexes(state);\n  }\n  return selectChartDataWithIndexes(state);\n};\n\nexport const selectChartDataWithIndexesIfNotInPanoramaPosition3 = (\n  state: RechartsRootState,\n  _unused1: unknown,\n  isPanorama: boolean,\n): ChartDataState => {\n  if (isPanorama) {\n    return selectChartDataAndAlwaysIgnoreIndexes(state);\n  }\n  return selectChartDataWithIndexes(state);\n};\n","import { MAX_VALUE_REG, MIN_VALUE_REG } from './ChartUtils';\nimport { isNumber } from './DataUtils';\nimport { AxisDomain, NumberDomain } from './types';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\n\nexport function isWellFormedNumberDomain(v: unknown): v is NumberDomain {\n  if (Array.isArray(v) && v.length === 2) {\n    const [min, max] = v;\n    if (isWellBehavedNumber(min) && isWellBehavedNumber(max)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport function extendDomain(\n  providedDomain: NumberDomain,\n  boundaryDomain: NumberDomain,\n  allowDataOverflow: boolean,\n): NumberDomain {\n  if (allowDataOverflow) {\n    // If the data are allowed to overflow - we're fine with whatever user provided\n    return providedDomain;\n  }\n  /*\n   * If the data are not allowed to overflow - we need to extend the domain.\n   * Means that effectively the user is allowed to make the domain larger\n   * but not smaller.\n   */\n  return [Math.min(providedDomain[0], boundaryDomain[0]), Math.max(providedDomain[1], boundaryDomain[1])];\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n *\n * This function does not accept data as an argument.\n * This is to enable a performance optimization - if the domain is there,\n * and we know what it is without traversing all the data,\n * then we don't have to traverse all the data!\n *\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param allowDataOverflow boolean, provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function numericalDomainSpecifiedWithoutRequiringData(\n  userDomain: AxisDomain | undefined,\n  allowDataOverflow: boolean,\n) {\n  if (!allowDataOverflow) {\n    // Cannot compute data overflow if the data is not provided\n    return undefined;\n  }\n  if (typeof userDomain === 'function') {\n    // The user function expects the data to be provided as an argument\n    return undefined;\n  }\n  if (Array.isArray(userDomain) && userDomain.length === 2) {\n    const [providedMin, providedMax] = userDomain;\n    let finalMin, finalMax: string | number | undefined;\n\n    if (isWellBehavedNumber(providedMin)) {\n      finalMin = providedMin;\n    } else if (typeof providedMin === 'function') {\n      // The user function expects the data to be provided as an argument\n      return undefined;\n    }\n\n    if (isWellBehavedNumber(providedMax)) {\n      finalMax = providedMax;\n    } else if (typeof providedMax === 'function') {\n      // The user function expects the data to be provided as an argument\n      return undefined;\n    }\n\n    const candidate = [finalMin, finalMax];\n    if (isWellFormedNumberDomain(candidate)) {\n      return candidate;\n    }\n  }\n  return undefined;\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n * to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * You are probably thinking, why does domain need tick count?\n * Well it adjusts the domain based on where the \"nice ticks\" land, and nice ticks depend on the tick count.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization\n * @param allowDataOverflow provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function parseNumericalUserDomain(\n  userDomain: AxisDomain | undefined,\n  dataDomain: NumberDomain | undefined,\n  allowDataOverflow: boolean,\n): NumberDomain | undefined {\n  if (!allowDataOverflow && dataDomain == null) {\n    // Cannot compute data overflow if the data is not provided\n    return undefined;\n  }\n  if (typeof userDomain === 'function' && dataDomain != null) {\n    try {\n      const result = userDomain(dataDomain, allowDataOverflow);\n      if (isWellFormedNumberDomain(result)) {\n        return extendDomain(result, dataDomain, allowDataOverflow);\n      }\n    } catch {\n      /* ignore the exception and compute domain from data later */\n    }\n  }\n  if (Array.isArray(userDomain) && userDomain.length === 2) {\n    const [providedMin, providedMax] = userDomain;\n    let finalMin, finalMax: string | number | undefined;\n\n    if (providedMin === 'auto') {\n      if (dataDomain != null) {\n        finalMin = Math.min(...dataDomain);\n      }\n    } else if (isNumber(providedMin)) {\n      finalMin = providedMin;\n    } else if (typeof providedMin === 'function') {\n      try {\n        if (dataDomain != null) {\n          finalMin = providedMin(dataDomain?.[0]);\n        }\n      } catch {\n        /* ignore the exception and compute domain from data later */\n      }\n    } else if (typeof providedMin === 'string' && MIN_VALUE_REG.test(providedMin)) {\n      const match = MIN_VALUE_REG.exec(providedMin);\n      if (match == null || match[1] == null || dataDomain == null) {\n        finalMin = undefined;\n      } else {\n        const value = +match[1];\n        finalMin = dataDomain[0] - value;\n      }\n    } else {\n      finalMin = dataDomain?.[0];\n    }\n\n    if (providedMax === 'auto') {\n      if (dataDomain != null) {\n        finalMax = Math.max(...dataDomain);\n      }\n    } else if (isNumber(providedMax)) {\n      finalMax = providedMax;\n    } else if (typeof providedMax === 'function') {\n      try {\n        if (dataDomain != null) {\n          finalMax = providedMax(dataDomain?.[1]);\n        }\n      } catch {\n        /* ignore the exception and compute domain from data later */\n      }\n    } else if (typeof providedMax === 'string' && MAX_VALUE_REG.test(providedMax)) {\n      const match = MAX_VALUE_REG.exec(providedMax);\n      if (match == null || match[1] == null || dataDomain == null) {\n        finalMax = undefined;\n      } else {\n        const value = +match[1];\n        finalMax = dataDomain[1] + value;\n      }\n    } else {\n      finalMax = dataDomain?.[1];\n    }\n\n    const candidate = [finalMin, finalMax];\n    if (isWellFormedNumberDomain(candidate)) {\n      if (dataDomain == null) {\n        return candidate;\n      }\n      return extendDomain(candidate, dataDomain, allowDataOverflow);\n    }\n  }\n  return undefined;\n}\n","/**\n * @fileOverview Some common arithmetic methods\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\n\n/**\n * Get the digit count of a number.\n * If the absolute value is in the interval [0.1, 1), the result is 0.\n * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.\n * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.\n *\n * @param  {Number} value The number\n * @return {Integer}      Digit count\n */\nfunction getDigitCount(value: number) {\n  let result;\n\n  if (value === 0) {\n    result = 1;\n  } else {\n    result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n  }\n\n  return result;\n}\n\n/**\n * Get the data in the interval [start, end) with a fixed step.\n * Also handles JS calculation precision issues.\n *\n * @param  {Decimal} start Start point\n * @param  {Decimal} end   End point, not included\n * @param  {Decimal} step  Step size\n * @return {Array}         Array of numbers\n */\nfunction rangeStep(start: Decimal, end: Decimal, step: Decimal): Array<number> {\n  let num = new Decimal(start);\n  let i = 0;\n  const result: Array<number> = [];\n\n  // magic number to prevent infinite loop\n  while (num.lt(end) && i < 100000) {\n    result.push(num.toNumber());\n\n    num = num.add(step);\n    i++;\n  }\n\n  return result;\n}\n\nexport { rangeStep, getDigitCount };\n","/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { getDigitCount, rangeStep } from './util/arithmetic';\nimport { NumberDomain } from '../types';\n\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param  {Number} min       The minimum value\n * @param  {Number} max       The maximum value\n * @return {Array} An interval\n */\nexport const getValidInterval = ([min, max]: [number, number]): [number, number] => {\n  let [validMin, validMax] = [min, max];\n\n  // exchange\n  if (min > max) {\n    [validMin, validMax] = [max, min];\n  }\n\n  return [validMin, validMax];\n};\n\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param  roughStep        The rough step calculated by dividing the difference by the tickCount\n * @param  allowDecimals    Allow the ticks to be decimals or not\n * @param  correctionFactor A correction factor\n * @return The step which is easy to understand between two ticks\n */\nexport const getFormatStep = (roughStep: Decimal, allowDecimals: boolean, correctionFactor: number) => {\n  if (roughStep.lte(0)) {\n    return new Decimal(0);\n  }\n\n  const digitCount = getDigitCount(roughStep.toNumber());\n  // The ratio between the rough step and the smallest number which has a bigger\n  // order of magnitudes than the rough step\n  const digitCountValue = new Decimal(10).pow(digitCount);\n  const stepRatio = roughStep.div(digitCountValue);\n  // When an integer and a float multiplied, the accuracy of result may be wrong\n  const stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n  const amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber()))\n    .add(correctionFactor)\n    .mul(stepRatioScale);\n\n  const formatStep = amendStepRatio.mul(digitCountValue);\n\n  return allowDecimals ? new Decimal(formatStep.toNumber()) : new Decimal(Math.ceil(formatStep.toNumber()));\n};\n\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param  value         The minimum value which is also the maximum value\n * @param  tickCount     The count of ticks\n * @param  allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport const getTickOfSingleValue = (value: number, tickCount: number, allowDecimals: boolean): Array<number> => {\n  let step: Decimal = new Decimal(1);\n  // calculate the middle value of ticks\n  let middle = new Decimal(value);\n\n  if (!middle.isint() && allowDecimals) {\n    const absVal = Math.abs(value);\n\n    if (absVal < 1) {\n      // The step should be a float number when the difference is smaller than 1\n      step = new Decimal(10).pow(getDigitCount(value) - 1);\n\n      middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n    } else if (absVal > 1) {\n      // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n      middle = new Decimal(Math.floor(value));\n    }\n  } else if (value === 0) {\n    middle = new Decimal(Math.floor((tickCount - 1) / 2));\n  } else if (!allowDecimals) {\n    middle = new Decimal(Math.floor(value));\n  }\n\n  const middleIndex = Math.floor((tickCount - 1) / 2);\n  const ticks: Array<number> = [];\n\n  for (let i = 0; i < tickCount; i++) {\n    ticks.push(middle.add(new Decimal(i - middleIndex).mul(step)).toNumber());\n  }\n\n  return ticks;\n};\n\n/**\n * Calculate the step\n *\n * @param  min              The minimum value of an interval\n * @param  max              The maximum value of an interval\n * @param  tickCount        The count of ticks\n * @param  allowDecimals    Allow the ticks to be decimals or not\n * @param  correctionFactor A correction factor\n * @return The step, minimum value of ticks, maximum value of ticks\n */\nexport const calculateStep = (\n  min: number,\n  max: number,\n  tickCount: number,\n  allowDecimals: boolean,\n  correctionFactor: number = 0,\n): {\n  step: Decimal;\n  tickMin: Decimal;\n  tickMax: Decimal;\n} => {\n  // dirty hack (for recharts' test)\n  if (!Number.isFinite((max - min) / (tickCount - 1))) {\n    return {\n      step: new Decimal(0),\n      tickMin: new Decimal(0),\n      tickMax: new Decimal(0),\n    };\n  }\n\n  // The step which is easy to understand between two ticks\n  const step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);\n\n  // A medial value of ticks\n  let middle;\n\n  // When 0 is inside the interval, 0 should be a tick\n  if (min <= 0 && max >= 0) {\n    middle = new Decimal(0);\n  } else {\n    // calculate the middle value\n    middle = new Decimal(min).add(max).div(2);\n    // minus modulo value\n    middle = middle.sub(new Decimal(middle).mod(step));\n  }\n\n  let belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n  let upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n  const scaleCount = belowCount + upCount + 1;\n\n  if (scaleCount > tickCount) {\n    // When more ticks need to cover the interval, step should be bigger.\n    return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n  }\n  if (scaleCount < tickCount) {\n    // When less ticks can cover the interval, we should add some additional ticks\n    upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n    belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n  }\n\n  return {\n    step,\n    tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n    tickMax: middle.add(new Decimal(upCount).mul(step)),\n  };\n};\n\n/**\n * Calculate the ticks of an interval. Ticks can appear outside the interval\n * if it makes them more rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount     The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport const getNiceTickValues = ([min, max]: NumberDomain, tickCount = 6, allowDecimals = true): number[] => {\n  // More than two ticks should be return\n  const count = Math.max(tickCount, 2);\n  const [cormin, cormax] = getValidInterval([min, max]);\n\n  if (cormin === -Infinity || cormax === Infinity) {\n    const values: Array<number> =\n      cormax === Infinity\n        ? [cormin, ...Array(tickCount - 1).fill(Infinity)]\n        : [...Array(tickCount - 1).fill(-Infinity), cormax];\n\n    return min > max ? values.reverse() : values;\n  }\n\n  if (cormin === cormax) {\n    return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n  }\n\n  // Get the step between two ticks\n  const { step, tickMin, tickMax } = calculateStep(cormin, cormax, count, allowDecimals, 0);\n\n  const values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n\n  return min > max ? values.reverse() : values;\n};\n\n/**\n * Calculate the ticks of an interval.\n * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount     The count of ticks. This function may return less than tickCount ticks if the interval is too small.\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport const getTickValuesFixedDomain = ([min, max]: NumberDomain, tickCount: number, allowDecimals = true) => {\n  // More than two ticks should be return\n  const [cormin, cormax] = getValidInterval([min, max]);\n\n  if (cormin === -Infinity || cormax === Infinity) {\n    return [min, max];\n  }\n\n  if (cormin === cormax) {\n    return [cormin];\n  }\n\n  const count = Math.max(tickCount, 2);\n  const step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n  let values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];\n\n  if (allowDecimals === false) {\n    /*\n     * allowDecimals is false means that we want to have integer ticks.\n     * The step is guaranteed to be an integer in the code above which is great start\n     * but when the first step is not an integer, it will start stepping from a decimal value anyway.\n     * So we need to round all the values to integers after the fact.\n     */\n    values = values.map(value => Math.round(value));\n  }\n\n  return min > max ? values.reverse() : values;\n};\n","import { RechartsRootState } from '../store';\nimport { StackOffsetType } from '../../util/types';\nimport { SyncMethod } from '../../synchronisation/types';\nimport { BaseValue } from '../../cartesian/Area';\n\nexport const selectRootMaxBarSize = (state: RechartsRootState): number | undefined => state.rootProps.maxBarSize;\nexport const selectBarGap = (state: RechartsRootState): string | number => state.rootProps.barGap;\nexport const selectBarCategoryGap = (state: RechartsRootState): string | number => state.rootProps.barCategoryGap;\nexport const selectRootBarSize = (state: RechartsRootState): string | number | undefined => state.rootProps.barSize;\nexport const selectStackOffsetType = (state: RechartsRootState): StackOffsetType => state.rootProps.stackOffset;\nexport const selectReverseStackOrder = (state: RechartsRootState): boolean => state.rootProps.reverseStackOrder;\nexport const selectChartName = (state: RechartsRootState) => state.options.chartName;\n\nexport const selectSyncId = (state: RechartsRootState) => state.rootProps.syncId;\nexport const selectSyncMethod = (state: RechartsRootState): SyncMethod => state.rootProps.syncMethod;\nexport const selectEventEmitter = (state: RechartsRootState) => state.options.eventEmitter;\nexport const selectChartBaseValue: (state: RechartsRootState) => BaseValue | undefined = (state: RechartsRootState) =>\n  state.rootProps.baseValue;\n","/**\n * A collection of all default zIndex values used by Recharts.\n *\n * You can reuse these, or you can define your own.\n */\nexport const DefaultZIndexes = {\n  /**\n   * CartesianGrid and PolarGrid\n   */\n  grid: -100,\n  /**\n   * Background of Bar and RadialBar.\n   * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.\n   */\n  barBackground: -50,\n\n  /*\n   * other chart elements or custom elements without specific zIndex\n   * render in here, at zIndex 0\n   */\n\n  /**\n   * Area, Pie, Radar, and ReferenceArea\n   */\n  area: 100,\n\n  /**\n   * Cursor is embedded inside Tooltip and controlled by it.\n   * The Tooltip itself has a separate portal and is not included in the zIndex system;\n   * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.\n   * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.\n   */\n  cursorRectangle: 200,\n\n  /**\n   * Bar and RadialBar\n   */\n  bar: 300,\n\n  /**\n   * Line and ReferenceLine, and ErrorBor\n   */\n  line: 400,\n\n  /**\n   * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children\n   */\n  axis: 500,\n\n  /**\n   * Scatter and ReferenceDot,\n   * and Dots of Line and Area and Radar if they have dot=true\n   */\n  scatter: 600,\n\n  /**\n   * Hovering over a Bar or RadialBar renders a highlight rectangle\n   */\n  activeBar: 1000,\n\n  /**\n   * Cursor is embedded inside Tooltip and controlled by it.\n   * The Tooltip itself has a separate portal and is not included in the zIndex system;\n   * Cursor is the decoration inside the chart area, usually a cross or a box.\n   * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.\n   * It renders above the Line and Scatter so that it is always visible.\n   * It renders below active dot so that the dot is always visible and shows the current point.\n   * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.\n   *\n   * This also applies to the radial cursor in RadialBarChart.\n   */\n  cursorLine: 1100,\n\n  /**\n   * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot\n   */\n  activeDot: 1200,\n\n  /**\n   * LabelList and Label, including Axis labels\n   */\n  label: 2000,\n} as const satisfies Record<string, number>;\n","import { Props } from './PolarAngleAxis';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport const defaultPolarAngleAxisProps = {\n  allowDecimals: false,\n  allowDuplicatedCategory: true, // if I set this to false then Tooltip synchronisation stops working in Radar, wtf\n  allowDataOverflow: false,\n  angle: 0,\n  angleAxisId: 0,\n  axisLine: true,\n  axisLineType: 'polygon',\n  cx: 0,\n  cy: 0,\n  hide: false,\n  includeHidden: false,\n  label: false,\n  orientation: 'outer',\n  reversed: false,\n  scale: 'auto',\n  tick: true,\n  tickLine: true,\n  tickSize: 8,\n  type: 'auto',\n  zIndex: DefaultZIndexes.axis,\n} as const satisfies Props;\n","import { Props } from './PolarRadiusAxis';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport const defaultPolarRadiusAxisProps = {\n  allowDataOverflow: false,\n  allowDecimals: false,\n  allowDuplicatedCategory: true,\n  angle: 0,\n  axisLine: true,\n  includeHidden: false,\n  hide: false,\n  label: false,\n  orientation: 'right',\n  radiusAxisId: 0,\n  reversed: false,\n  scale: 'auto',\n  stroke: '#ccc',\n  tick: true,\n  tickCount: 5,\n  tickLine: true,\n  type: 'auto',\n  zIndex: DefaultZIndexes.axis,\n} as const satisfies Props;\n","import { BaseCartesianAxis } from '../../cartesianAxisSlice';\nimport { AxisRange } from '../axisSelectors';\n\nexport const combineAxisRangeWithReverse = (\n  axisSettings: BaseCartesianAxis | undefined,\n  axisRange: AxisRange | undefined,\n): AxisRange | undefined => {\n  if (!axisSettings || !axisRange) {\n    return undefined;\n  }\n  if (axisSettings?.reversed) {\n    return [axisRange[1], axisRange[0]];\n  }\n  return axisRange;\n};\n","import { AxisDomainTypeInput, AxisType, EvaluatedAxisDomainType, LayoutType } from './types';\nimport { isCategoricalAxis } from './ChartUtils';\n\n/**\n * This function evaluates the \"auto\" axis domain type based on the chart layout and axis type.\n * It outputs a definitive axis domain type that can be used for further processing.\n */\nexport function getAxisTypeBasedOnLayout(\n  layout: LayoutType | undefined,\n  axisType: AxisType,\n  axisDomainType: AxisDomainTypeInput,\n): EvaluatedAxisDomainType | undefined {\n  if (axisDomainType !== 'auto') {\n    return axisDomainType;\n  }\n  if (layout == null) {\n    return undefined;\n  }\n  return isCategoricalAxis(layout, axisType) ? 'category' : 'number';\n}\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';\nimport { PolarChartOptions } from '../polarOptionsSlice';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { getMaxRadius } from '../../util/PolarUtils';\nimport { getPercentValue } from '../../util/DataUtils';\nimport { AxisDomainTypeInput, LayoutType, PolarLayout, PolarViewBoxRequired } from '../../util/types';\nimport { defaultPolarAngleAxisProps } from '../../polar/defaultPolarAngleAxisProps';\nimport { defaultPolarRadiusAxisProps } from '../../polar/defaultPolarRadiusAxisProps';\nimport { AxisRange } from './axisSelectors';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { selectChartLayout, selectPolarChartLayout } from '../../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../../util/getAxisTypeBasedOnLayout';\n\nexport const implicitAngleAxis: Omit<AngleAxisSettings, 'type'> & { type: AxisDomainTypeInput } = {\n  allowDataOverflow: defaultPolarAngleAxisProps.allowDataOverflow,\n  allowDecimals: defaultPolarAngleAxisProps.allowDecimals,\n  allowDuplicatedCategory: false, // defaultPolarAngleAxisProps.allowDuplicatedCategory has it set to true but the actual axis rendering ignores the prop because reasons,\n  dataKey: undefined,\n  domain: undefined,\n  id: defaultPolarAngleAxisProps.angleAxisId,\n  includeHidden: false,\n  name: undefined,\n  reversed: defaultPolarAngleAxisProps.reversed,\n  scale: defaultPolarAngleAxisProps.scale,\n  tick: defaultPolarAngleAxisProps.tick,\n  tickCount: undefined,\n  ticks: undefined,\n  type: defaultPolarAngleAxisProps.type,\n  unit: undefined,\n};\n\nexport const implicitRadiusAxis: Omit<RadiusAxisSettings, 'type'> & { type: AxisDomainTypeInput } = {\n  allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,\n  allowDecimals: defaultPolarRadiusAxisProps.allowDecimals,\n  allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,\n  dataKey: undefined,\n  domain: undefined,\n  id: defaultPolarRadiusAxisProps.radiusAxisId,\n  includeHidden: defaultPolarRadiusAxisProps.includeHidden,\n  name: undefined,\n  reversed: defaultPolarRadiusAxisProps.reversed,\n  scale: defaultPolarRadiusAxisProps.scale,\n  tick: defaultPolarRadiusAxisProps.tick,\n  tickCount: defaultPolarRadiusAxisProps.tickCount,\n  ticks: undefined,\n  type: defaultPolarRadiusAxisProps.type,\n  unit: undefined,\n};\n\nconst selectAngleAxisNoDefaults = (\n  state: RechartsRootState,\n  angleAxisId: AxisId | undefined,\n): AngleAxisSettings | undefined => {\n  if (angleAxisId == null) {\n    return undefined;\n  }\n  return state.polarAxis.angleAxis[angleAxisId];\n};\n\nexport const selectAngleAxis: (state: RechartsRootState, angleAxisId: AxisId | undefined) => AngleAxisSettings =\n  createSelector(\n    [selectAngleAxisNoDefaults, selectPolarChartLayout],\n    (angleAxisSettings, layout: PolarLayout | undefined): AngleAxisSettings => {\n      if (angleAxisSettings != null) {\n        return angleAxisSettings;\n      }\n      const evaluatedType = getAxisTypeBasedOnLayout(layout, 'angleAxis', implicitAngleAxis.type) ?? 'category';\n      return {\n        ...implicitAngleAxis,\n        type: evaluatedType,\n      };\n    },\n  );\n\nconst selectRadiusAxisNoDefaults = (state: RechartsRootState, radiusAxisId: AxisId): RadiusAxisSettings | undefined => {\n  return state.polarAxis.radiusAxis[radiusAxisId];\n};\n\nexport const selectRadiusAxis: (state: RechartsRootState, radiusAxisId: AxisId) => RadiusAxisSettings = createSelector(\n  [selectRadiusAxisNoDefaults, selectPolarChartLayout],\n  (radiusAxisSettings, layout: PolarLayout | undefined): RadiusAxisSettings => {\n    if (radiusAxisSettings != null) {\n      return radiusAxisSettings;\n    }\n    const evaluatedType = getAxisTypeBasedOnLayout(layout, 'radiusAxis', implicitRadiusAxis.type) ?? 'category';\n    return {\n      ...implicitRadiusAxis,\n      type: evaluatedType,\n    };\n  },\n);\n\nexport const selectPolarOptions = (state: RechartsRootState): PolarChartOptions | null => state.polarOptions;\n\nexport const selectMaxRadius: (state: RechartsRootState) => number = createSelector(\n  [selectChartWidth, selectChartHeight, selectChartOffsetInternal],\n  getMaxRadius,\n);\n\nconst selectInnerRadius: (state: RechartsRootState) => number | undefined = createSelector(\n  [selectPolarOptions, selectMaxRadius],\n  (polarChartOptions: PolarChartOptions | null, maxRadius: number) => {\n    if (polarChartOptions == null) {\n      return undefined;\n    }\n    return getPercentValue(polarChartOptions.innerRadius, maxRadius, 0);\n  },\n);\n\nexport const selectOuterRadius: (state: RechartsRootState) => number | undefined = createSelector(\n  [selectPolarOptions, selectMaxRadius],\n  (polarChartOptions: PolarChartOptions | null, maxRadius: number) => {\n    if (polarChartOptions == null) {\n      return undefined;\n    }\n    return getPercentValue(polarChartOptions.outerRadius, maxRadius, maxRadius * 0.8);\n  },\n);\n\nconst combineAngleAxisRange = (polarOptions: PolarChartOptions | null): AxisRange => {\n  if (polarOptions == null) {\n    return [0, 0];\n  }\n  const { startAngle, endAngle } = polarOptions;\n  return [startAngle, endAngle];\n};\n\nexport const selectAngleAxisRange: (state: RechartsRootState) => AxisRange = createSelector(\n  [selectPolarOptions],\n  combineAngleAxisRange,\n);\n\nexport const selectAngleAxisRangeWithReversed: (\n  state: RechartsRootState,\n  angleAxisId: AxisId,\n) => AxisRange | undefined = createSelector([selectAngleAxis, selectAngleAxisRange], combineAxisRangeWithReverse);\n\nexport const selectRadiusAxisRange: (state: RechartsRootState, radiusAxisId: AxisId) => AxisRange | undefined =\n  createSelector([selectMaxRadius, selectInnerRadius, selectOuterRadius], (maxRadius, innerRadius, outerRadius) => {\n    if (maxRadius == null || innerRadius == null || outerRadius == null) {\n      return undefined;\n    }\n    return [innerRadius, outerRadius];\n  });\n\nexport const selectRadiusAxisRangeWithReversed: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n) => AxisRange | undefined = createSelector([selectRadiusAxis, selectRadiusAxisRange], combineAxisRangeWithReverse);\n\nexport const selectPolarViewBox: (state: RechartsRootState) => PolarViewBoxRequired | undefined = createSelector(\n  [selectChartLayout, selectPolarOptions, selectInnerRadius, selectOuterRadius, selectChartWidth, selectChartHeight],\n  (\n    layout: LayoutType,\n    polarOptions: PolarChartOptions | null,\n    innerRadius,\n    outerRadius,\n    width,\n    height,\n  ): PolarViewBoxRequired | undefined => {\n    if (\n      (layout !== 'centric' && layout !== 'radial') ||\n      polarOptions == null ||\n      innerRadius == null ||\n      outerRadius == null\n    ) {\n      return undefined;\n    }\n    const { cx, cy, startAngle, endAngle } = polarOptions;\n    return {\n      cx: getPercentValue(cx, width, width / 2),\n      cy: getPercentValue(cy, height, height / 2),\n      innerRadius,\n      outerRadius,\n      startAngle,\n      endAngle,\n      clockWise: false, // this property look useful, why not use it?\n    };\n  },\n);\n","import { RechartsRootState } from '../store';\n\nexport const pickAxisType = <T>(_state: RechartsRootState, axisType: T): T => axisType;\n","import { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\n\nexport const pickAxisId = (_state: RechartsRootState, _axisType: unknown, axisId: AxisId): AxisId => axisId;\n","import { StackSeriesIdentifier } from './stackTypes';\nimport { MaybeStackedGraphicalItem } from '../../state/types/StackedGraphicalItem';\n\nexport function getStackSeriesIdentifier(graphicalItem: MaybeStackedGraphicalItem): StackSeriesIdentifier;\nexport function getStackSeriesIdentifier(graphicalItem: undefined): undefined;\nexport function getStackSeriesIdentifier(\n  graphicalItem: MaybeStackedGraphicalItem | undefined,\n): StackSeriesIdentifier | undefined;\n/**\n * Returns identifier for stack series which is one individual graphical item in the stack.\n * @param graphicalItem - The graphical item representing the series in the stack.\n * @return The identifier for the series in the stack\n */\nexport function getStackSeriesIdentifier(\n  graphicalItem: MaybeStackedGraphicalItem | undefined,\n): StackSeriesIdentifier | undefined {\n  return graphicalItem?.id;\n}\n","import { ChartDataState } from '../../chartDataSlice';\nimport { BaseCartesianAxis } from '../../cartesianAxisSlice';\nimport { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\nimport { StackSeriesIdentifier } from '../../../util/stacks/stackTypes';\nimport { DefinitelyStackedGraphicalItem } from '../../types/StackedGraphicalItem';\n\n/**\n * In a stacked chart, each graphical item has its own data. That data could be either:\n * - defined on the chart root, in which case the item gets a unique dataKey\n * - or defined on the item itself, in which case multiple items can share the same dataKey\n *\n * That means we cannot use the dataKey as a unique identifier for the item.\n *\n * This type represents a single data point in a stacked chart, where each key is a series identifier\n * and the value is the numeric value for that series using the numerical axis dataKey.\n */\nexport type DisplayedStackedDataPoint = Record<StackSeriesIdentifier, number>;\n\nexport type DisplayedStackedData = ReadonlyArray<DisplayedStackedDataPoint>;\n\nexport function combineDisplayedStackedData(\n  stackedGraphicalItems: ReadonlyArray<DefinitelyStackedGraphicalItem>,\n  { chartData = [] }: ChartDataState,\n  tooltipAxisSettings: BaseCartesianAxis,\n): DisplayedStackedData {\n  const { allowDuplicatedCategory, dataKey: tooltipDataKey } = tooltipAxisSettings;\n\n  // A map of tooltip data keys to the stacked data points\n  const knownItemsByDataKey = new Map<string | number, DisplayedStackedDataPoint>();\n\n  stackedGraphicalItems.forEach(item => {\n    // If there is no data on the individual item then we use the root chart data\n    const resolvedData = item.data ?? chartData;\n    if (resolvedData == null || resolvedData.length === 0) {\n      // if that doesn't work then we skip this item\n      return;\n    }\n    const stackIdentifier = getStackSeriesIdentifier(item);\n    resolvedData.forEach((entry, index) => {\n      const tooltipValue =\n        tooltipDataKey == null || allowDuplicatedCategory\n          ? index\n          : String(getValueByDataKey(entry, tooltipDataKey, null));\n      const numericValue = getValueByDataKey(entry, item.dataKey, 0);\n      let curr;\n      if (knownItemsByDataKey.has(tooltipValue)) {\n        curr = knownItemsByDataKey.get(tooltipValue)!;\n      } else {\n        curr = {};\n      }\n      Object.assign(curr, { [stackIdentifier]: numericValue });\n      knownItemsByDataKey.set(tooltipValue, curr);\n    });\n  });\n  return Array.from(knownItemsByDataKey.values());\n}\n","import { GraphicalItemSettings } from '../graphicalItemsSlice';\nimport { NormalizedStackId } from '../../util/ChartUtils';\nimport { DataKey } from '../../util/types';\n\n/**\n * Some graphical items allow data stacking. The stacks are optional,\n * so all props here are optional too.\n */\nexport interface MaybeStackedGraphicalItem extends GraphicalItemSettings {\n  stackId: NormalizedStackId | undefined;\n  /**\n   * Bars have a size but Area does not.\n   */\n  barSize: number | string | undefined;\n}\n\n/**\n * Some graphical items allow data stacking.\n * This interface is used to represent the items that are stacked\n * because the user has provided the stackId and dataKey properties.\n */\nexport interface DefinitelyStackedGraphicalItem extends MaybeStackedGraphicalItem {\n  stackId: NormalizedStackId;\n  dataKey: DataKey<any>;\n}\n\nexport function isStacked<T extends GraphicalItemSettings>(\n  graphicalItem: T,\n): graphicalItem is T & DefinitelyStackedGraphicalItem {\n  return 'stackId' in graphicalItem && graphicalItem.stackId != null && graphicalItem.dataKey != null;\n}\n","import { NumberDomain } from '../../util/types';\n\nexport const numberDomainEqualityCheck = (a: NumberDomain | undefined, b: NumberDomain | undefined): boolean => {\n  if (a === b) {\n    return true;\n  }\n  if (a == null || b == null) {\n    return false;\n  }\n  return a[0] === b[0] && a[1] === b[1];\n};\n","/**\n * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.\n * If both arrays are non-empty, it checks for reference equality.\n * @param a\n * @param b\n */\nexport function emptyArraysAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean {\n  if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {\n    // empty arrays are always equal, regardless of reference\n    return true;\n  }\n  return a === b;\n}\n\n/**\n * Checks if two arrays have the same contents in the same order.\n * @param a\n * @param b\n */\nexport function arrayContentsAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean {\n  if (a.length === b.length) {\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return false;\n}\n","import { RechartsRootState } from '../store';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\n\n/**\n * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings\n */\nexport type AllAxisTypes = 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis';\n\n/**\n * Z axis is never displayed and so it lacks ticks and tick settings.\n */\nexport type RenderableAxisType = 'xAxis' | 'yAxis' | 'angleAxis' | 'radiusAxis';\n\nexport const selectTooltipAxisType = (state: RechartsRootState): RenderableAxisType => {\n  const layout = selectChartLayout(state);\n\n  if (layout === 'horizontal') {\n    return 'xAxis';\n  }\n\n  if (layout === 'vertical') {\n    return 'yAxis';\n  }\n\n  if (layout === 'centric') {\n    return 'angleAxis';\n  }\n\n  return 'radiusAxis';\n};\n","import { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\n\nexport const selectTooltipAxisId = (state: RechartsRootState): AxisId => state.tooltip.settings.axisId;\n","import * as d3Scales from 'victory-vendor/d3-scale';\nimport { CustomScaleDefinition } from './CustomScaleDefinition';\nimport { CategoricalDomainItem, D3ScaleType } from '../types';\nimport { AxisRange } from '../../state/selectors/axisSelectors';\nimport { upperFirst } from '../DataUtils';\n\n/**\n * This is internal representation of scale used in Recharts.\n * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.\n * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.\n * This is important for React integration - if the scale changes, we want to trigger re-renders.\n * Mutating the scale in place would not trigger re-renders, leading to stale UI.\n */\nexport interface RechartsScale<Domain extends CategoricalDomainItem = CategoricalDomainItem> {\n  /**\n   * Returns the scale's current domain.\n   * The domain could be:\n   * - in categorical scales: an array of strings or categories\n   * - in continuous scales: tuple of two numbers: [min, max]\n   */\n  domain(): ReadonlyArray<Domain>;\n\n  /**\n   * Returns the scale’s current range.\n   *\n   * This should be a readonly tuple of two numbers: [min, max]\n   * and so a better type would be `readonly [number, number]` but again - breaking changes,\n   * so let's keep that for 4.0.\n   */\n  range(): ReadonlyArray<number>;\n\n  /**\n   * Returns the minimum value from the range.\n   */\n  rangeMin(): number;\n\n  /**\n   * Returns the maximum value from the range.\n   */\n  rangeMax(): number;\n\n  /**\n   * Returns true if the given value is within the scale's range.\n   * @param value\n   */\n  isInRange(value: number): boolean;\n\n  /**\n   * Returns width of each band.\n   * Most scales are not banded, so this method is optional.\n   * Banded scales (like scaleBand from d3-scale) will implement this method.\n   */\n  bandwidth?: () => number;\n  /**\n   * Quantitative (continuous) scales provide a ticks method that returns representative values from the scale’s domain.\n   * Ordinal and band scales do not have this method.\n   *\n   * An optional count argument requests more or fewer ticks.\n   * The number of ticks returned, however, is not necessarily equal to the requested count.\n   *\n   * @see {@link https://d3js.org/d3-scale/linear#linear_ticks}\n   * @see {@link https://observablehq.com/@d3/scale-ticks}\n   *\n   * @param count number of ticks\n   */\n  ticks?: (count: number | undefined) => ReadonlyArray<number>;\n\n  /**\n   * Given an arbitrary input, returns the corresponding point derived from the output range if the input is in the scale's domain.\n   * If the input is not included in the domain, returns undefined.\n   */\n  map(input: unknown, options?: { position?: BandPosition }): number | undefined;\n}\n\n/**\n * Position within a band for banded scales.\n * In scales that are not banded, this parameter is ignored.\n *\n * @inline\n */\nexport type BandPosition = 'start' | 'middle' | 'end';\n\nfunction getD3ScaleFromType<Domain extends CategoricalDomainItem = CategoricalDomainItem>(\n  realScaleType: D3ScaleType,\n): CustomScaleDefinition<Domain> | undefined {\n  if (realScaleType in d3Scales) {\n    // @ts-expect-error we should do better type verification here\n    return d3Scales[realScaleType]();\n  }\n  const name = `scale${upperFirst(realScaleType)}`;\n  if (name in d3Scales) {\n    // @ts-expect-error we should do better type verification here\n    return d3Scales[name]();\n  }\n  return undefined;\n}\n\nexport function d3ScaleToRechartsScale<Domain extends CategoricalDomainItem = CategoricalDomainItem>(\n  d3Scale: CustomScaleDefinition<Domain>,\n): RechartsScale<Domain> {\n  const ticksFn = d3Scale.ticks;\n  const bandwidthFn = d3Scale.bandwidth;\n  const d3Range: ReadonlyArray<number> = d3Scale.range();\n  const range: [number, number] = [Math.min(...d3Range), Math.max(...d3Range)];\n  return {\n    domain: () => d3Scale.domain(),\n    range: () => range,\n    rangeMin: () => range[0],\n    rangeMax: () => range[1],\n    isInRange(value: number): boolean {\n      const first = range[0];\n      const last = range[1];\n      return first <= last ? value >= first && value <= last : value >= last && value <= first;\n    },\n    bandwidth: bandwidthFn ? () => bandwidthFn.call(d3Scale) : undefined,\n    ticks: ticksFn ? (count: number | undefined) => ticksFn.call(d3Scale, count) : undefined,\n    map: (input: Domain, options?: { position?: BandPosition }) => {\n      let baseValue = d3Scale(input);\n      if (baseValue == null) {\n        return undefined;\n      }\n      if (d3Scale.bandwidth && options?.position) {\n        const bandWidth = d3Scale.bandwidth();\n        switch (options.position) {\n          case 'middle':\n            baseValue += bandWidth / 2;\n            break;\n          case 'end':\n            baseValue += bandWidth;\n            break;\n          default:\n            // 'start' requires no adjustment\n            break;\n        }\n      }\n      return baseValue;\n    },\n  };\n}\n\n/**\n * Converts external scale definition into internal RechartsScale definition.\n * @param scale custom function scale - if you have the string, use `combineRealScaleType` first\n * @param axisDomain\n * @param axisRange\n */\nexport function rechartsScaleFactory(\n  scale:\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>,\n  axisDomain: ReadonlyArray<CategoricalDomainItem>,\n  axisRange: AxisRange,\n): RechartsScale;\nexport function rechartsScaleFactory(\n  scale: D3ScaleType,\n  axisDomain: ReadonlyArray<CategoricalDomainItem>,\n  axisRange: AxisRange,\n): RechartsScale;\nexport function rechartsScaleFactory(\n  scale: D3ScaleType | undefined,\n  axisDomain: ReadonlyArray<CategoricalDomainItem>,\n  axisRange: AxisRange,\n): RechartsScale | undefined;\nexport function rechartsScaleFactory(\n  scale: undefined,\n  axisDomain: ReadonlyArray<CategoricalDomainItem>,\n  axisRange: AxisRange,\n): undefined;\nexport function rechartsScaleFactory<Domain extends CategoricalDomainItem = CategoricalDomainItem>(\n  scale: D3ScaleType | CustomScaleDefinition<Domain> | undefined,\n  axisDomain: ReadonlyArray<Domain>,\n  axisRange: AxisRange,\n): RechartsScale<Domain> | undefined {\n  if (typeof scale === 'function') {\n    return d3ScaleToRechartsScale(scale.copy().domain(axisDomain).range(axisRange));\n  }\n  if (scale == null) {\n    return undefined;\n  }\n  const d3ScaleFunction: CustomScaleDefinition<Domain> | undefined = getD3ScaleFromType(scale);\n  if (d3ScaleFunction == null) {\n    return undefined;\n  }\n  d3ScaleFunction.domain(axisDomain).range(axisRange);\n  return d3ScaleToRechartsScale(d3ScaleFunction);\n}\n","import { CategoricalDomain, NumberDomain } from '../../../util/types';\nimport { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\n\n/**\n * This function validates and transforms the axis domain so that it is safe to use in the provided scale.\n */\nexport const combineCheckedDomain = (\n  realScaleType: string | undefined,\n  axisDomain: NumberDomain | CategoricalDomain | undefined,\n): NumberDomain | CategoricalDomain | undefined => {\n  if (axisDomain == null) {\n    return undefined;\n  }\n  switch (realScaleType) {\n    case 'linear': {\n      /*\n       * linear scale only reads the first two numbers in the domain, and ignores everything else.\n       * So if it happens that someone somehow gave us a bigger domain,\n       * let's pick the min and max from it.\n       */\n      if (!isWellFormedNumberDomain(axisDomain)) {\n        let min: number | undefined, max: number | undefined;\n        for (let i = 0; i < axisDomain.length; i++) {\n          const value = axisDomain[i];\n          if (!isWellBehavedNumber(value)) {\n            continue;\n          }\n          if (min === undefined || value < min) {\n            min = value;\n          }\n          if (max === undefined || value > max) {\n            max = value;\n          }\n        }\n        if (min !== undefined && max !== undefined) {\n          return [min, max];\n        }\n        return undefined;\n      }\n      return axisDomain;\n    }\n    default:\n      return axisDomain;\n  }\n};\n","import { createSelector } from 'reselect';\nimport range from 'es-toolkit/compat/range';\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport {\n  getDomainOfStackGroups,\n  getStackedData,\n  getValueByDataKey,\n  isCategoricalAxis,\n  StackId,\n} from '../../util/ChartUtils';\nimport {\n  AxisDomain,\n  AxisTick,\n  AxisType,\n  CartesianTickItem,\n  CategoricalDomain,\n  CategoricalDomainItem,\n  ChartOffsetInternal,\n  Coordinate,\n  D3ScaleType,\n  DataKey,\n  LayoutType,\n  NumberDomain,\n  Size,\n  StackOffsetType,\n  TickItem,\n} from '../../util/types';\nimport {\n  AxisId,\n  BaseCartesianAxis,\n  CartesianAxisSettings,\n  XAxisOrientation,\n  XAxisSettings,\n  YAxisOrientation,\n  YAxisSettings,\n  ZAxisSettings,\n} from '../cartesianAxisSlice';\nimport { RechartsRootState } from '../store';\nimport { selectChartDataWithIndexes, selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport {\n  isWellFormedNumberDomain,\n  numericalDomainSpecifiedWithoutRequiringData,\n  parseNumericalUserDomain,\n} from '../../util/isDomainSpecifiedByUser';\nimport { AppliedChartData, ChartData, ChartDataState } from '../chartDataSlice';\nimport { getPercentValue, hasDuplicate, isNan, isNotNil, isNumOrStr, mathSign, upperFirst } from '../../util/DataUtils';\nimport {\n  BaseCartesianGraphicalItemSettings,\n  BasePolarGraphicalItemSettings,\n  CartesianGraphicalItemSettings,\n  GraphicalItemSettings,\n} from '../graphicalItemsSlice';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { getNiceTickValues, getTickValuesFixedDomain } from '../../util/scale';\nimport {\n  ReferenceAreaSettings,\n  ReferenceDotSettings,\n  ReferenceElementSettings,\n  ReferenceLineSettings,\n} from '../referenceElementsSlice';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { AxisPropsForCartesianGridTicksGeneration } from '../../cartesian/CartesianGrid';\nimport { BrushDimensions, selectBrushDimensions, selectBrushSettings } from './brushSelectors';\nimport {\n  selectBarCategoryGap,\n  selectChartName,\n  selectReverseStackOrder,\n  selectStackOffsetType,\n} from './rootPropsSelectors';\nimport { selectAngleAxis, selectAngleAxisRange, selectRadiusAxis, selectRadiusAxisRange } from './polarAxisSelectors';\nimport { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';\nimport { pickAxisType } from './pickAxisType';\nimport { pickAxisId } from './pickAxisId';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { AllStackGroups, StackGroup } from '../../util/stacks/stackTypes';\nimport { combineDisplayedStackedData, DisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { DefinitelyStackedGraphicalItem, isStacked } from '../types/StackedGraphicalItem';\nimport { ErrorBarsSettings, ErrorBarsState } from '../errorBarSlice';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nimport { AllAxisTypes, RenderableAxisType, selectTooltipAxisType } from './selectTooltipAxisType';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nimport { RechartsScale, rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { combineCheckedDomain } from './combiners/combineCheckedDomain';\n\nexport const defaultNumericDomain: AxisDomain = [0, 'auto'];\n\nexport type RenderableAxisSettings = XAxisSettings | YAxisSettings | AngleAxisSettings | RadiusAxisSettings;\n\nexport type AllAxisSettings = XAxisSettings | YAxisSettings | ZAxisSettings | AngleAxisSettings | RadiusAxisSettings;\n\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport const implicitXAxis: XAxisSettings = {\n  allowDataOverflow: false,\n  allowDecimals: true,\n  allowDuplicatedCategory: true,\n  angle: 0,\n  dataKey: undefined,\n  domain: undefined,\n  height: 30,\n  hide: true,\n  id: 0,\n  includeHidden: false,\n  interval: 'preserveEnd',\n  minTickGap: 5,\n  mirror: false,\n  name: undefined,\n  orientation: 'bottom',\n  padding: { left: 0, right: 0 },\n  reversed: false,\n  scale: 'auto',\n  tick: true,\n  tickCount: 5,\n  tickFormatter: undefined,\n  ticks: undefined,\n  type: 'category',\n  unit: undefined,\n};\n\nexport const selectXAxisSettingsNoDefaults = (state: RechartsRootState, axisId: AxisId): XAxisSettings | undefined => {\n  return state.cartesianAxis.xAxis[axisId];\n};\n\nexport const selectXAxisSettings = (state: RechartsRootState, axisId: AxisId): XAxisSettings => {\n  const axis = selectXAxisSettingsNoDefaults(state, axisId);\n  if (axis == null) {\n    return implicitXAxis;\n  }\n  return axis;\n};\n\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport const implicitYAxis: YAxisSettings = {\n  allowDataOverflow: false,\n  allowDecimals: true,\n  allowDuplicatedCategory: true,\n  angle: 0,\n  dataKey: undefined,\n  domain: defaultNumericDomain,\n  hide: true,\n  id: 0,\n  includeHidden: false,\n  interval: 'preserveEnd',\n  minTickGap: 5,\n  mirror: false,\n  name: undefined,\n  orientation: 'left',\n  padding: { top: 0, bottom: 0 },\n  reversed: false,\n  scale: 'auto',\n  tick: true,\n  tickCount: 5,\n  tickFormatter: undefined,\n  ticks: undefined,\n  type: 'number',\n  unit: undefined,\n  width: DEFAULT_Y_AXIS_WIDTH,\n};\n\nexport const selectYAxisSettingsNoDefaults = (state: RechartsRootState, axisId: AxisId): YAxisSettings | undefined => {\n  return state.cartesianAxis.yAxis[axisId];\n};\n\nexport const selectYAxisSettings = (state: RechartsRootState, axisId: AxisId): YAxisSettings => {\n  const axis = selectYAxisSettingsNoDefaults(state, axisId);\n  if (axis == null) {\n    return implicitYAxis;\n  }\n  return axis;\n};\n\nexport const implicitZAxis: ZAxisSettings = {\n  domain: [0, 'auto'],\n  includeHidden: false,\n  reversed: false,\n  allowDataOverflow: false,\n  allowDuplicatedCategory: false,\n  dataKey: undefined,\n  id: 0,\n  name: '',\n  range: [64, 64],\n  scale: 'auto',\n  type: 'number',\n  unit: '',\n};\n\nexport const selectZAxisSettings = (state: RechartsRootState, axisId: AxisId): ZAxisSettings => {\n  const axis = state.cartesianAxis.zAxis[axisId];\n  if (axis == null) {\n    return implicitZAxis;\n  }\n  return axis;\n};\n\nexport const selectBaseAxis = (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId): AllAxisSettings => {\n  switch (axisType) {\n    case 'xAxis': {\n      return selectXAxisSettings(state, axisId);\n    }\n    case 'yAxis': {\n      return selectYAxisSettings(state, axisId);\n    }\n    case 'zAxis': {\n      return selectZAxisSettings(state, axisId);\n    }\n    case 'angleAxis': {\n      return selectAngleAxis(state, axisId);\n    }\n    case 'radiusAxis': {\n      return selectRadiusAxis(state, axisId);\n    }\n    default:\n      throw new Error(`Unexpected axis type: ${axisType}`);\n  }\n};\n\nconst selectCartesianAxisSettings = (\n  state: RechartsRootState,\n  axisType: 'xAxis' | 'yAxis',\n  axisId: AxisId,\n): XAxisSettings | YAxisSettings => {\n  switch (axisType) {\n    case 'xAxis': {\n      return selectXAxisSettings(state, axisId);\n    }\n    case 'yAxis': {\n      return selectYAxisSettings(state, axisId);\n    }\n    default:\n      throw new Error(`Unexpected axis type: ${axisType}`);\n  }\n};\n\n/**\n * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.\n * @param state Root state\n * @param axisType xAxis | yAxis\n * @param axisId xAxisId | yAxisId\n * @returns axis settings object\n */\nexport const selectRenderableAxisSettings = (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n): RenderableAxisSettings => {\n  switch (axisType) {\n    case 'xAxis': {\n      return selectXAxisSettings(state, axisId);\n    }\n    case 'yAxis': {\n      return selectYAxisSettings(state, axisId);\n    }\n    case 'angleAxis': {\n      return selectAngleAxis(state, axisId);\n    }\n    case 'radiusAxis': {\n      return selectRadiusAxis(state, axisId);\n    }\n    default:\n      throw new Error(`Unexpected axis type: ${axisType}`);\n  }\n};\n\n/**\n * @param state RechartsRootState\n * @return boolean true if there is at least one Bar or RadialBar\n */\nexport const selectHasBar = (state: RechartsRootState): boolean =>\n  state.graphicalItems.cartesianItems.some(item => item.type === 'bar') ||\n  state.graphicalItems.polarItems.some(item => item.type === 'radialBar');\n\n/**\n * Filters CartesianGraphicalItemSettings by the relevant axis ID\n * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'\n * @param axisId from props, defaults to 0\n *\n * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis\n */\nexport function itemAxisPredicate(axisType: AllAxisTypes, axisId: AxisId) {\n  return (item: BaseCartesianGraphicalItemSettings | BasePolarGraphicalItemSettings) => {\n    switch (axisType) {\n      case 'xAxis':\n        // This is sensitive to the data type, as 0 !== '0'. I wonder if we should be more flexible. How does 2.x branch behave? TODO write test for that\n        return 'xAxisId' in item && item.xAxisId === axisId;\n      case 'yAxis':\n        return 'yAxisId' in item && item.yAxisId === axisId;\n      case 'zAxis':\n        return 'zAxisId' in item && item.zAxisId === axisId;\n      case 'angleAxis':\n        return 'angleAxisId' in item && item.angleAxisId === axisId;\n      case 'radiusAxis':\n        return 'radiusAxisId' in item && item.radiusAxisId === axisId;\n      default:\n        return false;\n    }\n  };\n}\n\n// TODO appears there is a bug where this selector is called from polar context, find and fix it.\nexport const selectUnfilteredCartesianItems = (\n  state: RechartsRootState,\n): ReadonlyArray<CartesianGraphicalItemSettings> => state.graphicalItems.cartesianItems;\n\nconst selectAxisPredicate: (\n  _state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => (item: CartesianGraphicalItemSettings) => boolean = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);\n\nexport const combineGraphicalItemsSettings = <T extends GraphicalItemSettings>(\n  graphicalItems: ReadonlyArray<T>,\n  axisSettings: BaseCartesianAxis,\n  axisPredicate: (item: T) => boolean,\n) =>\n  graphicalItems.filter(axisPredicate).filter(item => {\n    if (axisSettings?.includeHidden === true) {\n      return true;\n    }\n    return !item.hide;\n  });\n\nexport const selectCartesianItemsSettings: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<CartesianGraphicalItemSettings> = createSelector(\n  [selectUnfilteredCartesianItems, selectBaseAxis, selectAxisPredicate],\n  combineGraphicalItemsSettings,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: emptyArraysAreEqualCheck,\n    },\n  },\n);\n\nexport const selectStackedCartesianItemsSettings: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<DefinitelyStackedGraphicalItem> = createSelector(\n  [selectCartesianItemsSettings],\n  (cartesianItems: ReadonlyArray<CartesianGraphicalItemSettings>): ReadonlyArray<DefinitelyStackedGraphicalItem> => {\n    return cartesianItems.filter(item => item.type === 'area' || item.type === 'bar').filter(isStacked);\n  },\n);\n\nexport const filterGraphicalNotStackedItems = (\n  cartesianItems: ReadonlyArray<GraphicalItemSettings>,\n): ReadonlyArray<GraphicalItemSettings> =>\n  cartesianItems.filter(item => !('stackId' in item) || item.stackId === undefined);\n\nconst selectCartesianItemsSettingsExceptStacked: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<GraphicalItemSettings> = createSelector(\n  [selectCartesianItemsSettings],\n  filterGraphicalNotStackedItems,\n);\n\nexport const combineGraphicalItemsData = (cartesianItems: ReadonlyArray<GraphicalItemSettings>) =>\n  cartesianItems\n    .map(item => item.data)\n    .filter(Boolean)\n    .flat(1);\n\n/**\n * This is a \"cheap\" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.\n * Also does not apply dataKey yet.\n * @param state RechartsRootState\n * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey\n */\nexport const selectCartesianGraphicalItemsData: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ChartData = createSelector([selectCartesianItemsSettings], combineGraphicalItemsData, {\n  memoizeOptions: {\n    resultEqualityCheck: emptyArraysAreEqualCheck,\n  },\n});\n\nexport const combineDisplayedData = (\n  graphicalItemsData: ChartData,\n  { chartData = [], dataStartIndex, dataEndIndex }: ChartDataState,\n): ChartData => {\n  if (graphicalItemsData.length > 0) {\n    /*\n     * There is no slicing when data is defined on graphical items. Why?\n     * Because Brush ignores data defined on graphical items,\n     * and does not render.\n     * So Brush will never show up in a Scatter chart for example.\n     * This is something we will need to fix.\n     *\n     * Now, when the root chart data is not defined, the dataEndIndex is 0,\n     * which means the itemsData will be sliced to an empty array anyway.\n     * But that's an implementation detail, and we can fix that too.\n     *\n     * Also, in absence of Axis dataKey, we use the dataKey from each item, respectively.\n     * This is the usual pattern for numerical axis, that is the one where bars go up:\n     * users don't specify any dataKey by default and expect the axis to \"just match the data\".\n     */\n    return graphicalItemsData;\n  }\n  return chartData.slice(dataStartIndex, dataEndIndex + 1);\n};\n\n/**\n * This selector will return all data there is in the chart: graphical items, chart root, all together.\n * Useful for figuring out an axis domain (because that needs to know of everything),\n * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).\n *\n * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.\n */\nexport const selectDisplayedData: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => ChartData = createSelector(\n  [selectCartesianGraphicalItemsData, selectChartDataWithIndexesIfNotInPanoramaPosition4],\n  combineDisplayedData,\n);\n\nexport const combineAppliedValues = (\n  data: ChartData,\n  axisSettings: BaseCartesianAxis,\n  items: ReadonlyArray<GraphicalItemSettings>,\n): AppliedChartData => {\n  if (axisSettings?.dataKey != null) {\n    return data.map(item => ({ value: getValueByDataKey(item, axisSettings.dataKey) }));\n  }\n  if (items.length > 0) {\n    return items\n      .map(item => item.dataKey)\n      .flatMap(dataKey => data.map(entry => ({ value: getValueByDataKey(entry, dataKey) })));\n  }\n  return data.map(entry => ({ value: entry }));\n};\n\n/**\n * This selector will return all values with the appropriate dataKey applied on them.\n * Which dataKey is appropriate depends on where it is defined.\n *\n * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.\n */\nexport const selectAllAppliedValues: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AppliedChartData = createSelector(\n  [selectDisplayedData, selectBaseAxis, selectCartesianItemsSettings],\n  combineAppliedValues,\n);\n\nexport function isErrorBarRelevantForAxisType(axisType: AllAxisTypes, errorBar: ErrorBarsSettings): boolean {\n  switch (axisType) {\n    case 'xAxis':\n      return errorBar.direction === 'x';\n    case 'yAxis':\n      return errorBar.direction === 'y';\n    default:\n      return false;\n  }\n}\n\nexport type AppliedChartDataWithErrorDomain = {\n  /**\n   * This is the value after the dataKey has been applied. Presumably a number? But no guarantees.\n   */\n  value: unknown;\n  /**\n   * This is the error domain, if any, for the current value.\n   * This may be either x or y direction, whatever is applicable.\n   * Assumption is that we're looking at this data from the point of view of a single axis,\n   * and that axis dictates the relevant direction.\n   */\n  errorDomain: ReadonlyArray<number> | undefined;\n};\n\nfunction makeNumber(val: unknown): number | undefined {\n  if (isNumOrStr(val) || val instanceof Date) {\n    const n = Number(val);\n    if (isWellBehavedNumber(n)) {\n      return n;\n    }\n  }\n  return undefined;\n}\n\nfunction makeDomain(val: unknown): NumberDomain | undefined {\n  if (Array.isArray(val)) {\n    const attempt = [makeNumber(val[0]), makeNumber(val[1])];\n    if (isWellFormedNumberDomain(attempt)) {\n      return attempt;\n    }\n    return undefined;\n  }\n  const n = makeNumber(val);\n  if (n == null) {\n    return undefined;\n  }\n  return [n, n];\n}\n\nfunction onlyAllowNumbers(data: ReadonlyArray<unknown>): ReadonlyArray<number> {\n  return data.map(makeNumber).filter(isNotNil);\n}\n\n/**\n * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application\n * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.\n * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.\n * @return either undefined or an array of ErrorValue\n */\nexport function getErrorDomainByDataKey(\n  entry: unknown,\n  appliedValue: unknown,\n  relevantErrorBars: ReadonlyArray<ErrorBarsSettings> | undefined,\n): ReadonlyArray<number> {\n  if (!relevantErrorBars || typeof appliedValue !== 'number' || isNan(appliedValue)) {\n    return [];\n  }\n\n  if (!relevantErrorBars.length) {\n    return [];\n  }\n\n  return onlyAllowNumbers(\n    relevantErrorBars.flatMap(eb => {\n      const errorValue = getValueByDataKey(entry, eb.dataKey);\n      let lowBound, highBound: unknown;\n\n      if (Array.isArray(errorValue)) {\n        [lowBound, highBound] = errorValue;\n      } else {\n        lowBound = highBound = errorValue;\n      }\n      if (!isWellBehavedNumber(lowBound) || !isWellBehavedNumber(highBound)) {\n        return undefined;\n      }\n      return [appliedValue - lowBound, appliedValue + highBound];\n    }),\n  );\n}\n\nexport const selectTooltipAxis = (state: RechartsRootState): RenderableAxisSettings => {\n  const axisType = selectTooltipAxisType(state);\n  const axisId = selectTooltipAxisId(state);\n  return selectRenderableAxisSettings(state, axisType, axisId);\n};\n\nexport const selectTooltipAxisDataKey: (state: RechartsRootState) => DataKey<any> | undefined = createSelector(\n  [selectTooltipAxis],\n  (axis: RenderableAxisSettings | undefined): DataKey<any> | undefined => axis?.dataKey,\n);\n\nexport const selectDisplayedStackedData: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => DisplayedStackedData = createSelector(\n  [selectStackedCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectTooltipAxis],\n  combineDisplayedStackedData,\n);\n\nexport const combineStackGroups = (\n  displayedData: DisplayedStackedData,\n  items: ReadonlyArray<DefinitelyStackedGraphicalItem>,\n  stackOffsetType: StackOffsetType,\n  reverseStackOrder: boolean,\n): AllStackGroups => {\n  const initialItemsGroups: Record<StackId, Array<DefinitelyStackedGraphicalItem>> = {};\n  const itemsGroup: Record<StackId, ReadonlyArray<DefinitelyStackedGraphicalItem>> = items.reduce(\n    (acc: Record<StackId, Array<DefinitelyStackedGraphicalItem>>, item: DefinitelyStackedGraphicalItem) => {\n      if (item.stackId == null) {\n        return acc;\n      }\n      let stack = acc[item.stackId];\n      if (stack == null) {\n        stack = [];\n      }\n      stack.push(item);\n      acc[item.stackId] = stack;\n      return acc;\n    },\n    initialItemsGroups,\n  );\n\n  return Object.fromEntries(\n    Object.entries(itemsGroup).map(([stackId, graphicalItems]): [StackId, StackGroup] => {\n      const orderedGraphicalItems = reverseStackOrder ? [...graphicalItems].reverse() : graphicalItems;\n      const dataKeys = orderedGraphicalItems.map(getStackSeriesIdentifier);\n      return [\n        stackId,\n        {\n          // @ts-expect-error getStackedData requires that the input is array of objects, Recharts does not test for that\n          stackedData: getStackedData(displayedData, dataKeys, stackOffsetType),\n          graphicalItems: orderedGraphicalItems,\n        },\n      ];\n    }),\n  );\n};\n\n/**\n * Stack groups are groups of graphical items that stack on each other.\n * Stack is a function of axis type (X, Y), axis ID, and stack ID.\n * Graphical items that do not have a stack ID are not going to be present in stack groups.\n */\nexport const selectStackGroups: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AllStackGroups | undefined = createSelector(\n  [selectDisplayedStackedData, selectStackedCartesianItemsSettings, selectStackOffsetType, selectReverseStackOrder],\n  combineStackGroups,\n);\n\nexport const combineDomainOfStackGroups = (\n  stackGroups: AllStackGroups | undefined,\n  { dataStartIndex, dataEndIndex }: ChartDataState,\n  axisType: AllAxisTypes,\n  domainFromUserPreference: NumberDomain | undefined,\n): NumberDomain | undefined => {\n  if (domainFromUserPreference != null) {\n    // User has specified a domain, so we respect that and we can skip computing anything else\n    return undefined;\n  }\n  if (axisType === 'zAxis') {\n    // ZAxis ignores stacks\n    return undefined;\n  }\n  const domainOfStackGroups = getDomainOfStackGroups(stackGroups, dataStartIndex, dataEndIndex);\n  if (domainOfStackGroups != null && domainOfStackGroups[0] === 0 && domainOfStackGroups[1] === 0) {\n    return undefined;\n  }\n  return domainOfStackGroups;\n};\n\nconst selectAllowsDataOverflow: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => boolean =\n  createSelector([selectBaseAxis], axisSettings => axisSettings.allowDataOverflow);\n\nexport const getDomainDefinition = (axisSettings: AllAxisSettings): AxisDomain => {\n  if (axisSettings == null || !('domain' in axisSettings)) {\n    return defaultNumericDomain;\n  }\n\n  if (axisSettings.domain != null) {\n    return axisSettings.domain;\n  }\n  if ('ticks' in axisSettings && axisSettings.ticks != null) {\n    if (axisSettings.type === 'number') {\n      const allValues = onlyAllowNumbers(axisSettings.ticks);\n      return [Math.min(...allValues), Math.max(...allValues)];\n    }\n    if (axisSettings.type === 'category') {\n      return axisSettings.ticks.map(String);\n    }\n  }\n  return axisSettings?.domain ?? defaultNumericDomain;\n};\n\nexport const selectDomainDefinition: (state: RechartsRootState, axisType: AllAxisTypes, axisId: AxisId) => AxisDomain =\n  createSelector([selectBaseAxis], getDomainDefinition);\n\n/**\n * Under certain circumstances, we can determine the domain without looking at the data at all.\n * This is the case when the domain is explicitly specified as numbers, or when it is specified\n * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.\n *\n * In that case, this function will return the domain, otherwise it returns undefined.\n *\n * This is an optimization to avoid unnecessary data processing.\n * @param state\n * @param axisType\n * @param axisId\n * @param isPanorama\n */\nexport const selectDomainFromUserPreference: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => NumberDomain | undefined = createSelector(\n  [selectDomainDefinition, selectAllowsDataOverflow],\n  numericalDomainSpecifiedWithoutRequiringData,\n);\n\nexport const selectDomainOfStackGroups: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | undefined = createSelector(\n  [selectStackGroups, selectChartDataWithIndexes, pickAxisType, selectDomainFromUserPreference],\n  combineDomainOfStackGroups,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: numberDomainEqualityCheck,\n    },\n  },\n);\n\nexport const selectAllErrorBarSettings = (state: RechartsRootState): ErrorBarsState => state.errorBars;\n\nconst combineRelevantErrorBarSettings = (\n  cartesianItemsSettings: ReadonlyArray<CartesianGraphicalItemSettings>,\n  allErrorBarSettings: ErrorBarsState,\n  axisType: RenderableAxisType,\n): ReadonlyArray<ErrorBarsSettings> => {\n  return cartesianItemsSettings\n    .flatMap(item => {\n      return allErrorBarSettings[item.id];\n    })\n    .filter(Boolean)\n    .filter(e => {\n      return isErrorBarRelevantForAxisType(axisType, e);\n    });\n};\n\nexport const mergeDomains = (\n  ...domains: ReadonlyArray<ReadonlyArray<number> | undefined>\n): NumberDomain | undefined => {\n  const allDomains = domains.filter(Boolean);\n  if (allDomains.length === 0) {\n    return undefined;\n  }\n  const allValues = allDomains.flat();\n  const min = Math.min(...allValues);\n  const max = Math.max(...allValues);\n  return [min, max];\n};\n\nexport const combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = (\n  data: ChartData,\n  axisSettings: BaseCartesianAxis,\n  items: ReadonlyArray<GraphicalItemSettings>,\n  errorBars: ErrorBarsState,\n  axisType: AllAxisTypes,\n): NumberDomain | undefined => {\n  let lowerEnd: number | undefined, upperEnd: number | undefined;\n  if (items.length > 0) {\n    data.forEach(entry => {\n      items.forEach(item => {\n        const relevantErrorBars = errorBars[item.id]?.filter(errorBar =>\n          isErrorBarRelevantForAxisType(axisType, errorBar),\n        );\n        const valueByDataKey = getValueByDataKey(entry, axisSettings.dataKey ?? item.dataKey);\n        const errorDomain = getErrorDomainByDataKey(entry, valueByDataKey, relevantErrorBars);\n        if (errorDomain.length >= 2) {\n          const localLower = Math.min(...errorDomain);\n          const localUpper = Math.max(...errorDomain);\n          if (lowerEnd == null || localLower < lowerEnd) {\n            lowerEnd = localLower;\n          }\n          if (upperEnd == null || localUpper > upperEnd) {\n            upperEnd = localUpper;\n          }\n        }\n        const dataValueDomain: NumberDomain | undefined = makeDomain(valueByDataKey);\n        if (dataValueDomain != null) {\n          lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n          upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n        }\n      });\n    });\n  }\n  if (axisSettings?.dataKey != null) {\n    data.forEach(item => {\n      const dataValueDomain: NumberDomain | undefined = makeDomain(getValueByDataKey(item, axisSettings.dataKey));\n      if (dataValueDomain != null) {\n        lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n        upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n      }\n    });\n  }\n\n  if (isWellBehavedNumber(lowerEnd) && isWellBehavedNumber(upperEnd)) {\n    return [lowerEnd, upperEnd];\n  }\n  return undefined;\n};\n\nconst selectDomainOfAllAppliedNumericalValuesIncludingErrorValues: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | undefined = createSelector(\n  [\n    selectDisplayedData,\n    selectBaseAxis,\n    selectCartesianItemsSettingsExceptStacked,\n    selectAllErrorBarSettings,\n    pickAxisType,\n  ],\n  combineDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: numberDomainEqualityCheck,\n    },\n  },\n);\n\nfunction onlyAllowNumbersAndStringsAndDates(item: { value: unknown }): string | number | Date | undefined {\n  const { value } = item;\n  if (isNumOrStr(value) || value instanceof Date) {\n    return value;\n  }\n  return undefined;\n}\n\nconst computeDomainOfTypeCategory = (\n  allDataSquished: AppliedChartData,\n  axisSettings: BaseCartesianAxis,\n  isCategorical: boolean,\n): CategoricalDomain => {\n  const categoricalDomain = allDataSquished.map(onlyAllowNumbersAndStringsAndDates).filter(v => v != null);\n  if (\n    isCategorical &&\n    (axisSettings.dataKey == null || (axisSettings.allowDuplicatedCategory && hasDuplicate(categoricalDomain)))\n  ) {\n    /*\n     * 1. In an absence of dataKey, Recharts will use array indexes as its categorical domain\n     * 2. When category axis has duplicated text, serial numbers are used to generate scale\n     */\n    return range(0, allDataSquished.length);\n  }\n  if (axisSettings.allowDuplicatedCategory) {\n    return categoricalDomain;\n  }\n  return Array.from(new Set(categoricalDomain));\n};\n\nexport const selectReferenceDots = (state: RechartsRootState): ReadonlyArray<ReferenceDotSettings> =>\n  state.referenceElements.dots;\n\nexport const filterReferenceElements = <T extends ReferenceElementSettings>(\n  elements: ReadonlyArray<T>,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n): ReadonlyArray<T> => {\n  return elements\n    .filter(el => el.ifOverflow === 'extendDomain')\n    .filter(el => {\n      if (axisType === 'xAxis') {\n        return el.xAxisId === axisId;\n      }\n      return el.yAxisId === axisId;\n    });\n};\n\nexport const selectReferenceDotsByAxis: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<ReferenceDotSettings> = createSelector(\n  [selectReferenceDots, pickAxisType, pickAxisId],\n  filterReferenceElements,\n);\n\nexport const selectReferenceAreas = (state: RechartsRootState): ReadonlyArray<ReferenceAreaSettings> =>\n  state.referenceElements.areas;\n\nexport const selectReferenceAreasByAxis: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<ReferenceAreaSettings> = createSelector(\n  [selectReferenceAreas, pickAxisType, pickAxisId],\n  filterReferenceElements,\n);\n\nexport const selectReferenceLines = (state: RechartsRootState): ReadonlyArray<ReferenceLineSettings> =>\n  state.referenceElements.lines;\n\nexport const selectReferenceLinesByAxis: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<ReferenceLineSettings> = createSelector(\n  [selectReferenceLines, pickAxisType, pickAxisId],\n  filterReferenceElements,\n);\n\nexport const combineDotsDomain = (\n  dots: ReadonlyArray<ReferenceDotSettings> | undefined,\n  axisType: RenderableAxisType,\n): NumberDomain | undefined => {\n  if (dots == null) {\n    return undefined;\n  }\n  const allCoords = onlyAllowNumbers(dots.map(dot => (axisType === 'xAxis' ? dot.x : dot.y)));\n  if (allCoords.length === 0) {\n    return undefined;\n  }\n  return [Math.min(...allCoords), Math.max(...allCoords)];\n};\n\nconst selectReferenceDotsDomain = createSelector(selectReferenceDotsByAxis, pickAxisType, combineDotsDomain);\n\nexport const combineAreasDomain = (\n  areas: ReadonlyArray<ReferenceAreaSettings> | undefined,\n  axisType: RenderableAxisType,\n): NumberDomain | undefined => {\n  if (areas == null) {\n    return undefined;\n  }\n  const allCoords = onlyAllowNumbers(\n    areas.flatMap(area => [axisType === 'xAxis' ? area.x1 : area.y1, axisType === 'xAxis' ? area.x2 : area.y2]),\n  );\n  if (allCoords.length === 0) {\n    return undefined;\n  }\n  return [Math.min(...allCoords), Math.max(...allCoords)];\n};\n\nconst selectReferenceAreasDomain = createSelector([selectReferenceAreasByAxis, pickAxisType], combineAreasDomain);\n\nfunction extractXCoordinates(line: ReferenceLineSettings): ReadonlyArray<number> {\n  if (line.x != null) {\n    return onlyAllowNumbers([line.x]);\n  }\n  const segmentCoordinates: ReadonlyArray<string | number | undefined> | undefined = line.segment?.map(s => s.x);\n  if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n    return [];\n  }\n  return onlyAllowNumbers(segmentCoordinates);\n}\n\nfunction extractYCoordinates(line: ReferenceLineSettings): ReadonlyArray<number> {\n  if (line.y != null) {\n    return onlyAllowNumbers([line.y]);\n  }\n  const segmentCoordinates: ReadonlyArray<string | number | undefined> | undefined = line.segment?.map(s => s.y);\n  if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n    return [];\n  }\n  return onlyAllowNumbers(segmentCoordinates);\n}\n\nexport const combineLinesDomain = (\n  lines: ReadonlyArray<ReferenceLineSettings> | undefined,\n  axisType: RenderableAxisType,\n): NumberDomain | undefined => {\n  if (lines == null) {\n    return undefined;\n  }\n  const allCoords: ReadonlyArray<number> = lines.flatMap(line =>\n    axisType === 'xAxis' ? extractXCoordinates(line) : extractYCoordinates(line),\n  );\n  if (allCoords.length === 0) {\n    return undefined;\n  }\n  return [Math.min(...allCoords), Math.max(...allCoords)];\n};\n\nconst selectReferenceLinesDomain = createSelector([selectReferenceLinesByAxis, pickAxisType], combineLinesDomain);\n\nconst selectReferenceElementsDomain = createSelector(\n  selectReferenceDotsDomain,\n  selectReferenceLinesDomain,\n  selectReferenceAreasDomain,\n  (dotsDomain, linesDomain, areasDomain): NumberDomain | undefined => {\n    return mergeDomains(dotsDomain, areasDomain, linesDomain);\n  },\n);\n\nexport const combineNumericalDomain = (\n  axisSettings: BaseCartesianAxis,\n  domainDefinition: AxisDomain | undefined,\n  domainFromUserPreference: NumberDomain | undefined,\n  domainOfStackGroups: NumberDomain | undefined,\n  dataAndErrorBarsDomain: NumberDomain | undefined,\n  referenceElementsDomain: NumberDomain | undefined,\n  layout: LayoutType,\n  axisType: AllAxisTypes,\n): NumberDomain | undefined => {\n  if (domainFromUserPreference != null) {\n    // We're done! No need to compute anything else.\n    return domainFromUserPreference;\n  }\n\n  const shouldIncludeDomainOfStackGroups =\n    (layout === 'vertical' && axisType === 'xAxis') || (layout === 'horizontal' && axisType === 'yAxis');\n\n  const mergedDomains = shouldIncludeDomainOfStackGroups\n    ? mergeDomains(domainOfStackGroups, referenceElementsDomain, dataAndErrorBarsDomain)\n    : mergeDomains(referenceElementsDomain, dataAndErrorBarsDomain);\n\n  return parseNumericalUserDomain(domainDefinition, mergedDomains, axisSettings.allowDataOverflow);\n};\n\nexport const selectNumericalDomain: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | undefined = createSelector(\n  [\n    selectBaseAxis,\n    selectDomainDefinition,\n    selectDomainFromUserPreference,\n    selectDomainOfStackGroups,\n    selectDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n    selectReferenceElementsDomain,\n    selectChartLayout,\n    pickAxisType,\n  ],\n  combineNumericalDomain,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: numberDomainEqualityCheck,\n    },\n  },\n);\n\n/**\n * Expand by design maps everything between 0 and 1,\n * there is nothing to compute.\n * See https://d3js.org/d3-shape/stack#stack-offsets\n */\nconst expandDomain: NumberDomain = [0, 1];\n\nexport const combineAxisDomain = (\n  axisSettings: BaseCartesianAxis,\n  layout: LayoutType,\n  displayedData: ChartData | undefined,\n  allAppliedValues: AppliedChartData,\n  stackOffsetType: StackOffsetType,\n  axisType: AllAxisTypes,\n  numericalDomain: NumberDomain | undefined,\n): NumberDomain | CategoricalDomain | undefined => {\n  if ((axisSettings == null || displayedData == null || displayedData.length === 0) && numericalDomain === undefined) {\n    return undefined;\n  }\n  const { dataKey, type } = axisSettings;\n  const isCategorical = isCategoricalAxis(layout, axisType);\n\n  if (isCategorical && dataKey == null) {\n    return range(0, displayedData?.length ?? 0);\n  }\n\n  if (type === 'category') {\n    return computeDomainOfTypeCategory(allAppliedValues, axisSettings, isCategorical);\n  }\n\n  if (stackOffsetType === 'expand') {\n    return expandDomain;\n  }\n  return numericalDomain;\n};\n\nexport const selectAxisDomain: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [\n    selectBaseAxis,\n    selectChartLayout,\n    selectDisplayedData,\n    selectAllAppliedValues,\n    selectStackOffsetType,\n    pickAxisType,\n    selectNumericalDomain,\n  ],\n  combineAxisDomain,\n);\n\nfunction isSupportedScaleName(name: string): name is D3ScaleType {\n  return name in d3Scales;\n}\n\nexport const combineRealScaleType = (\n  axisConfig: BaseCartesianAxis | undefined,\n  hasBar: boolean,\n  chartType: string,\n): D3ScaleType | undefined => {\n  if (axisConfig == null) {\n    return undefined;\n  }\n  const { scale, type } = axisConfig;\n  if (scale === 'auto') {\n    if (\n      type === 'category' &&\n      chartType &&\n      (chartType.indexOf('LineChart') >= 0 ||\n        chartType.indexOf('AreaChart') >= 0 ||\n        (chartType.indexOf('ComposedChart') >= 0 && !hasBar))\n    ) {\n      return 'point';\n    }\n    if (type === 'category') {\n      return 'band';\n    }\n\n    return 'linear';\n  }\n  if (typeof scale === 'string') {\n    const name = `scale${upperFirst(scale)}`;\n\n    return isSupportedScaleName(name) ? name : 'point';\n  }\n  return undefined;\n};\n\nexport const selectRealScaleType: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => D3ScaleType | undefined = createSelector([selectBaseAxis, selectHasBar, selectChartName], combineRealScaleType);\n\nexport function combineScaleFunction(\n  axis: BaseCartesianAxis,\n  realScaleType: D3ScaleType | undefined,\n  axisDomain: NumberDomain | CategoricalDomain | undefined,\n  axisRange: AxisRange | undefined,\n): RechartsScale | undefined {\n  if (axisDomain == null || axisRange == null) {\n    return undefined;\n  }\n\n  if (typeof axis.scale === 'function') {\n    return rechartsScaleFactory(axis.scale, axisDomain, axisRange);\n  }\n  return rechartsScaleFactory(realScaleType, axisDomain, axisRange);\n}\n\nexport const combineNiceTicks = (\n  axisDomain: NumberDomain | CategoricalDomain | undefined,\n  axisSettings: RenderableAxisSettings,\n  realScaleType: string | undefined,\n): ReadonlyArray<number> | undefined => {\n  const domainDefinition: AxisDomain = getDomainDefinition(axisSettings);\n\n  if (realScaleType !== 'auto' && realScaleType !== 'linear') {\n    return undefined;\n  }\n\n  if (\n    axisSettings != null &&\n    axisSettings.tickCount &&\n    Array.isArray(domainDefinition) &&\n    (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto') &&\n    isWellFormedNumberDomain(axisDomain)\n  ) {\n    return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);\n  }\n\n  if (\n    axisSettings != null &&\n    axisSettings.tickCount &&\n    axisSettings.type === 'number' &&\n    isWellFormedNumberDomain(axisDomain)\n  ) {\n    return getTickValuesFixedDomain(axisDomain as NumberDomain, axisSettings.tickCount, axisSettings.allowDecimals);\n  }\n\n  return undefined;\n};\nexport const selectNiceTicks: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<number> | undefined = createSelector(\n  [selectAxisDomain, selectRenderableAxisSettings, selectRealScaleType],\n  combineNiceTicks,\n);\n\nexport const combineAxisDomainWithNiceTicks = (\n  axisSettings: BaseCartesianAxis,\n  domain: NumberDomain | CategoricalDomain | undefined,\n  niceTicks: ReadonlyArray<number> | undefined,\n  axisType: RenderableAxisType,\n): NumberDomain | CategoricalDomain | undefined => {\n  if (\n    /*\n     * Angle axis for some reason uses nice ticks when rendering axis tick labels,\n     * but doesn't use nice ticks for extending domain like all the other axes do.\n     * Not really sure why? Is there a good reason,\n     * or is it just because someone added support for nice ticks to the other axes and forgot this one?\n     */\n    axisType !== 'angleAxis' &&\n    axisSettings?.type === 'number' &&\n    isWellFormedNumberDomain(domain) &&\n    Array.isArray(niceTicks) &&\n    niceTicks.length > 0\n  ) {\n    const minFromDomain = domain[0];\n    const minFromTicks = niceTicks[0] ?? 0;\n    const maxFromDomain = domain[1];\n    const maxFromTicks = niceTicks[niceTicks.length - 1] ?? 0;\n    return [Math.min(minFromDomain, minFromTicks), Math.max(maxFromDomain, maxFromTicks)];\n  }\n  return domain;\n};\n\nexport const selectAxisDomainIncludingNiceTicks: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [selectBaseAxis, selectAxisDomain, selectNiceTicks, pickAxisType],\n  combineAxisDomainWithNiceTicks,\n);\n\n/**\n * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).\n * Ignores domain provided by user and only considers domain from data.\n *\n * The result is a number between 0 and 1.\n */\nexport const selectSmallestDistanceBetweenValues: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => number | undefined = createSelector(\n  selectAllAppliedValues,\n  selectBaseAxis,\n  (allDataSquished: AppliedChartData, axisSettings: BaseCartesianAxis): number | undefined => {\n    if (!axisSettings || axisSettings.type !== 'number') {\n      return undefined;\n    }\n    let smallestDistanceBetweenValues = Infinity;\n    const sortedValues = Array.from(onlyAllowNumbers(allDataSquished.map(d => d.value))).sort((a, b) => a - b);\n    const first = sortedValues[0];\n    const last = sortedValues[sortedValues.length - 1];\n    if (first == null || last == null) {\n      return Infinity;\n    }\n    const diff = last - first;\n    if (diff === 0) {\n      return Infinity;\n    }\n    // Only do n - 1 distance calculations because there's only n - 1 distances between n values.\n    for (let i = 0; i < sortedValues.length - 1; i++) {\n      const curr = sortedValues[i];\n      const next = sortedValues[i + 1];\n      if (curr == null || next == null) {\n        continue;\n      }\n      const distance = next - curr;\n      smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);\n    }\n    return smallestDistanceBetweenValues / diff;\n  },\n);\n\nconst selectCalculatedPadding: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n  padding: string,\n) => number = createSelector(\n  selectSmallestDistanceBetweenValues,\n  selectChartLayout,\n  selectBarCategoryGap,\n  selectChartOffsetInternal,\n  (_1: unknown, _2: unknown, _3: unknown, _4: unknown, padding: string): string => padding,\n  (\n    smallestDistanceInPercent: number | undefined,\n    layout: LayoutType,\n    barCategoryGap: number | string,\n    offset: ChartOffsetInternal,\n    padding: string,\n  ): number => {\n    if (!isWellBehavedNumber(smallestDistanceInPercent)) {\n      return 0;\n    }\n    const rangeWidth = layout === 'vertical' ? offset.height : offset.width;\n\n    if (padding === 'gap') {\n      return (smallestDistanceInPercent * rangeWidth) / 2;\n    }\n\n    if (padding === 'no-gap') {\n      const gap = getPercentValue(barCategoryGap, smallestDistanceInPercent * rangeWidth);\n      const halfBand = (smallestDistanceInPercent * rangeWidth) / 2;\n      return halfBand - gap - ((halfBand - gap) / rangeWidth) * gap;\n    }\n\n    return 0;\n  },\n);\n\nexport const selectCalculatedXAxisPadding: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => number = (\n  state,\n  axisId,\n  isPanorama,\n) => {\n  const xAxisSettings = selectXAxisSettings(state, axisId);\n  if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {\n    return 0;\n  }\n  return selectCalculatedPadding(state, 'xAxis', axisId, isPanorama, xAxisSettings.padding);\n};\n\nexport const selectCalculatedYAxisPadding: (state: RechartsRootState, axisId: AxisId, isPanorama: boolean) => number = (\n  state,\n  axisId,\n  isPanorama,\n) => {\n  const yAxisSettings = selectYAxisSettings(state, axisId);\n  if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {\n    return 0;\n  }\n  return selectCalculatedPadding(state, 'yAxis', axisId, isPanorama, yAxisSettings.padding);\n};\n\nconst selectXAxisPadding: (\n  state: RechartsRootState,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => { left: number; right: number } = createSelector(\n  selectXAxisSettings,\n  selectCalculatedXAxisPadding,\n  (xAxisSettings: XAxisSettings, calculated: number) => {\n    if (xAxisSettings == null) {\n      return { left: 0, right: 0 };\n    }\n    const { padding } = xAxisSettings;\n    if (typeof padding === 'string') {\n      return { left: calculated, right: calculated };\n    }\n    return {\n      left: (padding.left ?? 0) + calculated,\n      right: (padding.right ?? 0) + calculated,\n    };\n  },\n);\n\nconst selectYAxisPadding: (\n  state: RechartsRootState,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => { top: number; bottom: number } = createSelector(\n  selectYAxisSettings,\n  selectCalculatedYAxisPadding,\n  (yAxisSettings: YAxisSettings, calculated: number) => {\n    if (yAxisSettings == null) {\n      return { top: 0, bottom: 0 };\n    }\n    const { padding } = yAxisSettings;\n    if (typeof padding === 'string') {\n      return { top: calculated, bottom: calculated };\n    }\n    return {\n      top: (padding.top ?? 0) + calculated,\n      bottom: (padding.bottom ?? 0) + calculated,\n    };\n  },\n);\n\nexport const combineXAxisRange: (\n  state: RechartsRootState,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AxisRange | undefined = createSelector(\n  [\n    selectChartOffsetInternal,\n    selectXAxisPadding,\n    selectBrushDimensions,\n    selectBrushSettings,\n    (_state: RechartsRootState, _axisId: AxisId, isPanorama) => isPanorama,\n  ],\n  (\n    offset: ChartOffsetInternal,\n    padding,\n    brushDimensions: BrushDimensions,\n    { padding: brushPadding },\n    isPanorama: boolean,\n  ): AxisRange | undefined => {\n    if (isPanorama) {\n      return [brushPadding.left, brushDimensions.width - brushPadding.right];\n    }\n    return [offset.left + padding.left, offset.left + offset.width - padding.right];\n  },\n);\n\nexport type AxisRange = readonly [number, number];\n\nexport const combineYAxisRange: (\n  state: RechartsRootState,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AxisRange | undefined = createSelector(\n  [\n    selectChartOffsetInternal,\n    selectChartLayout,\n    selectYAxisPadding,\n    selectBrushDimensions,\n    selectBrushSettings,\n    (_state: RechartsRootState, _axisId: AxisId, isPanorama) => isPanorama,\n  ],\n  (\n    offset: ChartOffsetInternal,\n    layout: LayoutType,\n    padding: { top: number; bottom: number },\n    brushDimensions: BrushDimensions,\n    { padding: brushPadding },\n    isPanorama: boolean,\n  ): AxisRange | undefined => {\n    if (isPanorama) {\n      return [brushDimensions.height - brushPadding.bottom, brushPadding.top];\n    }\n    if (layout === 'horizontal') {\n      return [offset.top + offset.height - padding.bottom, offset.top + padding.top];\n    }\n    return [offset.top + padding.top, offset.top + offset.height - padding.bottom];\n  },\n);\n\nexport const selectAxisRange = (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n): AxisRange | undefined => {\n  switch (axisType) {\n    case 'xAxis':\n      return combineXAxisRange(state, axisId, isPanorama);\n    case 'yAxis':\n      return combineYAxisRange(state, axisId, isPanorama);\n    case 'zAxis':\n      return selectZAxisSettings(state, axisId)?.range;\n    case 'angleAxis':\n      return selectAngleAxisRange(state);\n    case 'radiusAxis':\n      return selectRadiusAxisRange(state, axisId);\n    default:\n      return undefined;\n  }\n};\n\nexport const selectAxisRangeWithReverse: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AxisRange | undefined = createSelector([selectBaseAxis, selectAxisRange], combineAxisRangeWithReverse);\n\nconst selectCheckedAxisDomain: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [selectRealScaleType, selectAxisDomainIncludingNiceTicks],\n  combineCheckedDomain,\n);\n\nexport const selectAxisScale: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => RechartsScale | undefined = createSelector(\n  [selectBaseAxis, selectRealScaleType, selectCheckedAxisDomain, selectAxisRangeWithReverse],\n  combineScaleFunction,\n);\n\nexport const selectErrorBarsSettings: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n) => ReadonlyArray<ErrorBarsSettings> = createSelector(\n  [selectCartesianItemsSettings, selectAllErrorBarSettings, pickAxisType],\n  combineRelevantErrorBarSettings,\n);\n\nfunction compareIds(a: CartesianAxisSettings, b: CartesianAxisSettings) {\n  if (a.id < b.id) {\n    return -1;\n  }\n  if (a.id > b.id) {\n    return 1;\n  }\n  return 0;\n}\n\nconst pickAxisOrientation = <T>(_state: RechartsRootState, orientation: T): T => orientation;\n\nconst pickMirror = (_state: RechartsRootState, _orientation: unknown, mirror: boolean): boolean => mirror;\n\nconst selectAllXAxesWithOffsetType: (\n  state: RechartsRootState,\n  orientation: XAxisOrientation,\n  mirror: boolean,\n) => ReadonlyArray<XAxisSettings> = createSelector(\n  selectAllXAxes,\n  pickAxisOrientation,\n  pickMirror,\n  (allAxes: ReadonlyArray<XAxisSettings>, orientation: XAxisOrientation, mirror: boolean) =>\n    allAxes\n      .filter(axis => axis.orientation === orientation)\n      .filter(axis => axis.mirror === mirror)\n      .sort(compareIds),\n);\n\nconst selectAllYAxesWithOffsetType: (\n  state: RechartsRootState,\n  orientation: YAxisOrientation,\n  mirror: boolean,\n) => ReadonlyArray<YAxisSettings> = createSelector(\n  selectAllYAxes,\n  pickAxisOrientation,\n  pickMirror,\n  (allAxes: ReadonlyArray<YAxisSettings>, orientation: YAxisOrientation, mirror: boolean) =>\n    allAxes\n      .filter(axis => axis.orientation === orientation)\n      .filter(axis => axis.mirror === mirror)\n      .sort(compareIds),\n);\n\nconst getXAxisSize = (offset: ChartOffsetInternal, axisSettings: XAxisSettings): Size => {\n  return {\n    width: offset.width,\n    height: axisSettings.height,\n  };\n};\n\nconst getYAxisSize = (offset: ChartOffsetInternal, axisSettings: YAxisSettings): Size => {\n  const width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n  return {\n    width,\n    height: offset.height,\n  };\n};\n\nexport const selectXAxisSize: (state: RechartsRootState, xAxisId: AxisId) => Size = createSelector(\n  selectChartOffsetInternal,\n  selectXAxisSettings,\n  getXAxisSize,\n);\n\ntype AxisOffsetSteps = Record<AxisId, number>;\n\nconst combineXAxisPositionStartingPoint = (\n  offset: ChartOffsetInternal,\n  orientation: XAxisOrientation,\n  chartHeight: number,\n) => {\n  switch (orientation) {\n    case 'top':\n      return offset.top;\n    case 'bottom':\n      return chartHeight - offset.bottom;\n    default:\n      return 0;\n  }\n};\n\nconst combineYAxisPositionStartingPoint = (\n  offset: ChartOffsetInternal,\n  orientation: YAxisOrientation,\n  chartWidth: number,\n) => {\n  switch (orientation) {\n    case 'left':\n      return offset.left;\n    case 'right':\n      return chartWidth - offset.right;\n    default:\n      return 0;\n  }\n};\n\nexport const selectAllXAxesOffsetSteps: (\n  state: RechartsRootState,\n  orientation: XAxisOrientation,\n  mirror: boolean,\n) => AxisOffsetSteps = createSelector(\n  selectChartHeight,\n  selectChartOffsetInternal,\n  selectAllXAxesWithOffsetType,\n  pickAxisOrientation,\n  pickMirror,\n  (chartHeight, offset, allAxesWithSameOffsetType, orientation: XAxisOrientation, mirror) => {\n    const steps: AxisOffsetSteps = {};\n    let position: number;\n    allAxesWithSameOffsetType.forEach(axis => {\n      const axisSize = getXAxisSize(offset, axis);\n      if (position == null) {\n        position = combineXAxisPositionStartingPoint(offset, orientation, chartHeight);\n      }\n      const needSpace = (orientation === 'top' && !mirror) || (orientation === 'bottom' && mirror);\n      steps[axis.id] = position - Number(needSpace) * axisSize.height;\n      position += (needSpace ? -1 : 1) * axisSize.height;\n    });\n    return steps;\n  },\n);\n\nexport const selectAllYAxesOffsetSteps: (\n  state: RechartsRootState,\n  orientation: YAxisOrientation,\n  mirror: boolean,\n) => AxisOffsetSteps = createSelector(\n  selectChartWidth,\n  selectChartOffsetInternal,\n  selectAllYAxesWithOffsetType,\n  pickAxisOrientation,\n  pickMirror,\n  (chartWidth, offset: ChartOffsetInternal, allAxesWithSameOffsetType, orientation: YAxisOrientation, mirror) => {\n    const steps: AxisOffsetSteps = {};\n    let position: number;\n    allAxesWithSameOffsetType.forEach(axis => {\n      const axisSize = getYAxisSize(offset, axis);\n      if (position == null) {\n        position = combineYAxisPositionStartingPoint(offset, orientation, chartWidth);\n      }\n      const needSpace = (orientation === 'left' && !mirror) || (orientation === 'right' && mirror);\n      steps[axis.id] = position - Number(needSpace) * axisSize.width;\n      position += (needSpace ? -1 : 1) * axisSize.width;\n    });\n    return steps;\n  },\n);\n\nconst selectXAxisOffsetSteps = (state: RechartsRootState, axisId: AxisId) => {\n  const axisSettings = selectXAxisSettings(state, axisId);\n  if (axisSettings == null) {\n    return undefined;\n  }\n  return selectAllXAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\n\nexport const selectXAxisPosition: (state: RechartsRootState, axisId: AxisId) => Coordinate | undefined = createSelector(\n  [selectChartOffsetInternal, selectXAxisSettings, selectXAxisOffsetSteps, (_: unknown, axisId: AxisId) => axisId],\n  (offset, axisSettings, allSteps, axisId) => {\n    if (axisSettings == null) {\n      return undefined;\n    }\n    const stepOfThisAxis = allSteps?.[axisId];\n    if (stepOfThisAxis == null) {\n      return { x: offset.left, y: 0 };\n    }\n    return { x: offset.left, y: stepOfThisAxis };\n  },\n);\n\nconst selectYAxisOffsetSteps = (state: RechartsRootState, axisId: AxisId) => {\n  const axisSettings = selectYAxisSettings(state, axisId);\n  if (axisSettings == null) {\n    return undefined;\n  }\n  return selectAllYAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\nexport const selectYAxisPosition: (state: RechartsRootState, axisId: AxisId) => Coordinate | undefined = createSelector(\n  [selectChartOffsetInternal, selectYAxisSettings, selectYAxisOffsetSteps, (_: unknown, axisId: AxisId) => axisId],\n  (offset, axisSettings, allSteps, axisId) => {\n    if (axisSettings == null) {\n      return undefined;\n    }\n    const stepOfThisAxis = allSteps?.[axisId];\n    if (stepOfThisAxis == null) {\n      return { x: 0, y: offset.top };\n    }\n    return { x: stepOfThisAxis, y: offset.top };\n  },\n);\n\nexport const selectYAxisSize: (state: RechartsRootState, yAxisId: AxisId) => Size = createSelector(\n  selectChartOffsetInternal,\n  selectYAxisSettings,\n  (offset: ChartOffsetInternal, axisSettings: YAxisSettings): Size => {\n    const width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n\n    return {\n      width,\n      height: offset.height,\n    };\n  },\n);\n\nexport const selectCartesianAxisSize = (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n): number | undefined => {\n  switch (axisType) {\n    case 'xAxis': {\n      return selectXAxisSize(state, axisId).width;\n    }\n    case 'yAxis': {\n      return selectYAxisSize(state, axisId).height;\n    }\n    default: {\n      return undefined;\n    }\n  }\n};\n\nexport const combineDuplicateDomain = (\n  chartLayout: LayoutType,\n  appliedValues: AppliedChartData,\n  axis: BaseCartesianAxis,\n  axisType: AllAxisTypes,\n): ReadonlyArray<unknown> | undefined => {\n  if (axis == null) {\n    return undefined;\n  }\n  const { allowDuplicatedCategory, type, dataKey } = axis;\n  const isCategorical = isCategoricalAxis(chartLayout, axisType);\n  const allData = appliedValues.map(av => av.value);\n  if (dataKey && isCategorical && type === 'category' && allowDuplicatedCategory && hasDuplicate(allData)) {\n    return allData;\n  }\n  return undefined;\n};\n\nexport const selectDuplicateDomain: (\n  state: RechartsRootState,\n  axisType: AllAxisTypes,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<unknown> | undefined = createSelector(\n  [selectChartLayout, selectAllAppliedValues, selectBaseAxis, pickAxisType],\n  combineDuplicateDomain,\n);\n\nexport const combineCategoricalDomain = (\n  layout: LayoutType,\n  appliedValues: AppliedChartData,\n  axis: RenderableAxisSettings,\n  axisType: RenderableAxisType,\n): ReadonlyArray<unknown> | undefined => {\n  if (axis == null || axis.dataKey == null) {\n    return undefined;\n  }\n  const { type, scale } = axis;\n  const isCategorical = isCategoricalAxis(layout, axisType);\n  if (isCategorical && (type === 'number' || scale !== 'auto')) {\n    return appliedValues.map(d => d.value);\n  }\n  return undefined;\n};\n\nexport const selectCategoricalDomain: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<unknown> | undefined = createSelector(\n  [selectChartLayout, selectAllAppliedValues, selectRenderableAxisSettings, pickAxisType],\n  combineCategoricalDomain,\n);\n\nexport const selectAxisPropsNeededForCartesianGridTicksGenerator: (\n  state: RechartsRootState,\n  axisType: 'xAxis' | 'yAxis',\n  axisId: AxisId,\n  isPanorama: boolean,\n) => AxisPropsForCartesianGridTicksGeneration | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectCartesianAxisSettings,\n    selectRealScaleType,\n    selectAxisScale,\n    selectDuplicateDomain,\n    selectCategoricalDomain,\n    selectAxisRange,\n    selectNiceTicks,\n    pickAxisType,\n  ],\n  (\n    layout: LayoutType,\n    axis: XAxisSettings | YAxisSettings,\n    realScaleType: string | undefined,\n    scale: RechartsScale | undefined,\n    duplicateDomain,\n    categoricalDomain,\n    axisRange,\n    niceTicks,\n    axisType: AxisType,\n  ): AxisPropsForCartesianGridTicksGeneration | undefined => {\n    if (axis == null) {\n      return undefined;\n    }\n    const isCategorical = isCategoricalAxis(layout, axisType);\n    return {\n      angle: axis.angle,\n      interval: axis.interval,\n      minTickGap: axis.minTickGap,\n      orientation: axis.orientation,\n      tick: axis.tick,\n      tickCount: axis.tickCount,\n      tickFormatter: axis.tickFormatter,\n      ticks: axis.ticks,\n      type: axis.type,\n      unit: axis.unit,\n      axisType,\n      categoricalDomain,\n      duplicateDomain,\n      isCategorical,\n      niceTicks,\n      range: axisRange,\n      realScaleType,\n      scale,\n    };\n  },\n);\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport const combineAxisTicks = (\n  layout: LayoutType,\n  axis: RenderableAxisSettings,\n  realScaleType: D3ScaleType | undefined,\n  scale: RechartsScale | undefined,\n  niceTicks: ReadonlyArray<number> | undefined,\n  axisRange: AxisRange | undefined,\n  duplicateDomain: ReadonlyArray<unknown> | undefined,\n  categoricalDomain: ReadonlyArray<unknown> | undefined,\n  axisType: RenderableAxisType,\n): ReadonlyArray<TickItem> | undefined => {\n  if (axis == null || scale == null) {\n    return undefined;\n  }\n\n  const isCategorical = isCategoricalAxis(layout, axisType);\n\n  const { type, ticks, tickCount } = axis;\n\n  const offsetForBand =\n    // @ts-expect-error This is testing for `scaleBand` but for band axis the type is reported as `band` so this looks like a dead code with a workaround elsewhere?\n    realScaleType === 'scaleBand' && typeof scale.bandwidth === 'function' ? scale.bandwidth() / 2 : 2;\n\n  let offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n\n  offset =\n    axisType === 'angleAxis' && axisRange != null && axisRange.length >= 2\n      ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset\n      : offset;\n\n  // The ticks set by user should only affect the ticks adjacent to axis line\n  const ticksOrNiceTicks = ticks || niceTicks;\n  if (ticksOrNiceTicks) {\n    return ticksOrNiceTicks\n      .map((entry: AxisTick, index: number): TickItem | null => {\n        const scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n\n        const scaled = scale.map(scaleContent);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          index,\n          coordinate: scaled + offset,\n          value: entry,\n          offset,\n        };\n      })\n      .filter(isNotNil);\n  }\n\n  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n  if (isCategorical && categoricalDomain) {\n    return categoricalDomain\n      .map((entry: unknown, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          coordinate: scaled + offset,\n          value: entry,\n          index,\n          offset,\n        };\n      })\n      .filter(isNotNil);\n  }\n\n  if (scale.ticks) {\n    return scale\n      .ticks(tickCount)\n      .map((entry: number, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return { coordinate: scaled + offset, value: entry, index, offset };\n      })\n      .filter(isNotNil);\n  }\n\n  // When axis has duplicated text, serial numbers are used to generate scale\n  return scale\n    .domain()\n    .map((entry: CategoricalDomainItem, index: number): TickItem | null => {\n      const scaled = scale.map(entry);\n      if (!isWellBehavedNumber(scaled)) {\n        return null;\n      }\n      return {\n        coordinate: scaled + offset,\n        // @ts-expect-error can't use Date as index\n        value: duplicateDomain ? duplicateDomain[entry] : entry,\n        index,\n        offset,\n      };\n    })\n    .filter(isNotNil);\n};\nexport const selectTicksOfAxis: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<CartesianTickItem> | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectRenderableAxisSettings,\n    selectRealScaleType,\n    selectAxisScale,\n    selectNiceTicks,\n    selectAxisRange,\n    selectDuplicateDomain,\n    selectCategoricalDomain,\n    pickAxisType,\n  ],\n  combineAxisTicks,\n);\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport const combineGraphicalItemTicks = (\n  layout: LayoutType,\n  axis: RenderableAxisSettings,\n  scale: RechartsScale | undefined,\n  axisRange: AxisRange | undefined,\n  duplicateDomain: ReadonlyArray<unknown> | undefined,\n  categoricalDomain: ReadonlyArray<unknown> | undefined,\n  axisType: RenderableAxisType,\n): TickItem[] | undefined => {\n  if (axis == null || scale == null || axisRange == null || axisRange[0] === axisRange[1]) {\n    return undefined;\n  }\n  const isCategorical = isCategoricalAxis(layout, axisType);\n\n  const { tickCount } = axis;\n\n  let offset = 0;\n\n  offset =\n    axisType === 'angleAxis' && axisRange?.length >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;\n\n  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n  if (isCategorical && categoricalDomain) {\n    return categoricalDomain\n      .map((entry: unknown, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          coordinate: scaled + offset,\n          value: entry,\n          index,\n          offset,\n        };\n      })\n      .filter(isNotNil);\n  }\n\n  if (scale.ticks) {\n    return scale\n      .ticks(tickCount)\n      .map((entry: number, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return { coordinate: scaled + offset, value: entry, index, offset };\n      })\n      .filter(isNotNil);\n  }\n\n  // When axis has duplicated text, serial numbers are used to generate scale\n  return scale\n    .domain()\n    .map((entry: CategoricalDomainItem, index: number): TickItem | null => {\n      const scaled = scale.map(entry);\n      if (!isWellBehavedNumber(scaled)) {\n        return null;\n      }\n      return {\n        coordinate: scaled + offset,\n        // @ts-expect-error can't use unknown as index\n        value: duplicateDomain ? duplicateDomain[entry] : entry,\n        index,\n        offset,\n      };\n    })\n    .filter(isNotNil);\n};\n\nexport const selectTicksOfGraphicalItem: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => TickItem[] | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectRenderableAxisSettings,\n    selectAxisScale,\n    selectAxisRange,\n    selectDuplicateDomain,\n    selectCategoricalDomain,\n    pickAxisType,\n  ],\n  combineGraphicalItemTicks,\n);\n\n/**\n * This is the internal representation of an axis along with its scale function.\n * Here we have already computed the scale function for the axis,\n * and replaced the union type of scale (string | function) with just the function type.\n */\nexport type BaseAxisWithScale = Omit<BaseCartesianAxis, 'scale'> & { scale: RechartsScale };\n\nexport const selectAxisWithScale: (\n  state: RechartsRootState,\n  axisType: RenderableAxisType,\n  axisId: AxisId,\n  isPanorama: boolean,\n) => BaseAxisWithScale | undefined = createSelector(\n  selectBaseAxis,\n  selectAxisScale,\n  (axis, scale): BaseAxisWithScale | undefined => {\n    if (axis == null || scale == null) {\n      return undefined;\n    }\n    return {\n      ...axis,\n      scale,\n    };\n  },\n);\n\nconst selectZAxisScale: (\n  state: RechartsRootState,\n  axisType: 'zAxis',\n  axisId: AxisId,\n  isPanorama: false,\n) => RechartsScale | undefined = createSelector(\n  [selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse],\n  combineScaleFunction,\n);\n\nexport type ZAxisWithScale = Omit<ZAxisSettings, 'scale'> & { scale: RechartsScale };\n\nexport const selectZAxisWithScale: (\n  state: RechartsRootState,\n  _axisType: 'zAxis',\n  axisId: AxisId,\n  isPanorama: false,\n) => ZAxisWithScale | undefined = createSelector(\n  (state: RechartsRootState, _axisType: 'zAxis', axisId: AxisId) => selectZAxisSettings(state, axisId),\n  selectZAxisScale,\n  (axis: ZAxisSettings, scale: RechartsScale | undefined): ZAxisWithScale | undefined => {\n    if (axis == null || scale == null) {\n      return undefined;\n    }\n    return {\n      ...axis,\n      scale,\n    };\n  },\n);\n\n/**\n * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.\n */\nexport type AxisDirection = 'left-to-right' | 'right-to-left' | 'top-to-bottom' | 'bottom-to-top';\n\nexport const selectChartDirection: (state: RechartsRootState) => AxisDirection | undefined = createSelector(\n  [selectChartLayout, selectAllXAxes, selectAllYAxes],\n  (\n    layout: LayoutType,\n    allXAxes: ReadonlyArray<XAxisSettings>,\n    allYAxes: ReadonlyArray<YAxisSettings>,\n  ): AxisDirection | undefined => {\n    switch (layout) {\n      case 'horizontal': {\n        return allXAxes.some(axis => axis.reversed) ? 'right-to-left' : 'left-to-right';\n      }\n      case 'vertical': {\n        return allYAxes.some(axis => axis.reversed) ? 'bottom-to-top' : 'top-to-bottom';\n      }\n      // TODO: make this better. For now, right arrow triggers \"forward\", left arrow \"back\"\n      // however, the tooltip moves an unintuitive direction because of how the indices are rendered\n      case 'centric':\n      case 'radial': {\n        return 'left-to-right';\n      }\n      default: {\n        return undefined;\n      }\n    }\n  },\n);\n","import { RechartsRootState } from '../store';\nimport { TooltipEventType } from '../../util/types';\nimport { useAppSelector } from '../hooks';\nimport { SharedTooltipSettings } from '../tooltipSlice';\n\nexport const selectDefaultTooltipEventType = (state: RechartsRootState): TooltipEventType =>\n  state.options.defaultTooltipEventType;\nexport const selectValidateTooltipEventTypes = (\n  state: RechartsRootState,\n): ReadonlyArray<TooltipEventType> | undefined => state.options.validateTooltipEventTypes;\n\nexport function combineTooltipEventType(\n  shared: SharedTooltipSettings,\n  defaultTooltipEventType: TooltipEventType,\n  validateTooltipEventTypes: ReadonlyArray<TooltipEventType> | undefined,\n): TooltipEventType {\n  if (shared == null) {\n    return defaultTooltipEventType;\n  }\n  const eventType = shared ? 'axis' : 'item';\n  if (validateTooltipEventTypes == null) {\n    return defaultTooltipEventType;\n  }\n  return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;\n}\n\nexport function selectTooltipEventType(state: RechartsRootState, shared: SharedTooltipSettings): TooltipEventType {\n  const defaultTooltipEventType = selectDefaultTooltipEventType(state);\n  const validateTooltipEventTypes = selectValidateTooltipEventTypes(state);\n  return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);\n}\n\nexport function useTooltipEventType(shared: SharedTooltipSettings): TooltipEventType | undefined {\n  return useAppSelector(state => selectTooltipEventType(state, shared));\n}\n","import { TickItem } from '../../../util/types';\nimport { TooltipIndex } from '../../tooltipSlice';\nimport { isNan } from '../../../util/DataUtils';\nimport { ActiveLabel } from '../../../synchronisation/types';\n\nexport const combineActiveLabel = (\n  tooltipTicks: ReadonlyArray<TickItem> | undefined,\n  activeIndex: TooltipIndex,\n): ActiveLabel => {\n  const n = Number(activeIndex);\n  if (isNan(n) || activeIndex == null) {\n    return undefined;\n  }\n  return n >= 0 ? tooltipTicks?.[n]?.value : undefined;\n};\n","import { createSlice, current, PayloadAction, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { TooltipTrigger } from '../chart/types';\nimport type { NameType, Payload, ValueType } from '../component/DefaultTooltipContent';\nimport { CartesianViewBoxRequired, Coordinate, DataKey, PolarCoordinate } from '../util/types';\nimport { AxisId } from './cartesianAxisSlice';\nimport { GraphicalItemId } from './graphicalItemsSlice';\n\n/**\n * One Tooltip can display multiple TooltipPayloadEntries at a time.\n */\nexport type TooltipPayloadEntry = Payload<ValueType, NameType>;\n\n/**\n * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.\n * The dataKey can either be defined on the graphical element (like Line, or Bar)\n * or on the tooltip itself.\n *\n * The data can be defined in the chart element, or in the graphical item.\n *\n * So this type is all the settings, other than the data + dataKey complications.\n */\nexport type TooltipEntrySettings = Omit<TooltipPayloadEntry, 'payload' | 'value'> & {\n  nameKey: DataKey<any> | undefined;\n};\n\n/**\n * This is what Tooltip renders.\n */\nexport type TooltipPayload = ReadonlyArray<TooltipPayloadEntry>;\n\n/**\n * null means no active index\n * string means: whichever index from the chart data it is.\n * Different charts have different requirements on data shapes,\n * and are also responsible for providing a function that will accept this index\n * and return data.\n */\nexport type TooltipIndex = string | null;\n\n/**\n * Different items have different data shapes so the state has no opinion on what the data shape should be;\n * the only requirement is that the chart also provides a searcher function\n * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.\n */\nexport type TooltipPayloadSearcher<T = unknown> = (\n  data: T,\n  index: TooltipIndex,\n  computedData?: unknown,\n  nameKey?: DataKey<any>,\n) => T | undefined;\n\nexport type TooltipPayloadConfiguration = {\n  // This is the data that is the same for all tooltip payloads, regardless of activeIndex\n  settings: TooltipEntrySettings;\n  /**\n   * This is the data that the item has provided, all of it mixed together.\n   * Later as user is interacting with the chart, a redux selector will use this\n   * data + activeIndex, pass it to the TooltipPayloadSearcher, and render the result in a Tooltip.\n   *\n   * Because we have no controls over which data shape the graphical item provides,\n   * this is typed as unknown, and it is the responsibility of the selector\n   * to know what to do with it.\n   *\n   * We can't have better typing here because different graphical items\n   * may provide different data shapes. For example someone may decide to put Area element\n   * in a Sankey chart.\n   */\n  dataDefinedOnItem: unknown;\n  /**\n   * Opportunity for the graphical item to define its own Tooltip coordinates\n   * instead of relying on the axes.\n   *\n   * If undefined, then Recharts will use mouse interaction coordinates, or the axis coordinates,\n   * with some defaults (like, top/left of the chart).\n   *\n   * Unlike the chart data which can be nested, the positions are expected to be flat array or record.\n   * They however should reuse the same tooltip index format as the chart data.\n   */\n  getPosition: (tooltipIndex: NonNullable<TooltipIndex>) => Coordinate | undefined;\n};\n\nexport type ActiveTooltipProps = {\n  activeIndex: TooltipIndex;\n  activeCoordinate: Coordinate | undefined;\n};\n\n/**\n * So this informs the \"tooltip event type\". Tooltip event type can be either \"axis\" or \"item\"\n * and it is used for two things:\n * 1. Sets the active area\n * 2. Sets the background and cursor highlights\n *\n * Some charts only allow to have one type of tooltip event type, some allow both.\n * Those charts that allow both will have one default, and the \"shared\" prop will be used to switch between them.\n * Undefined means \"use the chart default\".\n *\n * Charts that only allow one tooltip event type, will ignore the shared prop.\n */\nexport type SharedTooltipSettings = boolean | undefined;\n\nexport type TooltipSettingsState = {\n  shared: SharedTooltipSettings;\n  trigger: TooltipTrigger;\n  axisId: AxisId;\n  /**\n   * The `active` prop, despite its name, does not mean \"always active\".\n   * It means \"active after user interaction has ended\".\n   * By default, the tooltip is only active while the user is hovering over the chart.\n   * With `active=true`, the tooltip will remain visible after mouse leave event.\n   *\n   * If you want to see the \"active before user interaction\" settings, see `defaultIndex`.\n   *\n   * Undefined means \"depends on user interactions\".\n   */\n  active: boolean | undefined;\n  /**\n   * If you want to set the tooltip to be active before user interaction, you can set this property.\n   */\n  defaultIndex: TooltipIndex | undefined;\n};\n\n/**\n * A generic state for user interaction with the chart.\n * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.\n *\n * Each of the interaction states is represented as TooltipInteractionState,\n * and then the selectors and Tooltip will decide which of the interaction states to use.\n */\nexport type TooltipInteractionState = {\n  /**\n   * If user interaction is in progress or not.\n   * Why is this its own property? Why is this not computed from the index?\n   * Certainly if index !== -1 then the tooltip is active, right?\n   * Well not so fast. Recharts allows Tooltips can be set to `active=true`\n   * which means the tooltip remains displayed after the user stops interacting.\n   * - This implies that we cannot set index to <empty value> after interaction ends,\n   *   because the chart must remember the last position just in case the `active` prop on Tooltip is set to true.\n   */\n  active: boolean;\n  /**\n   * This is the current data index that is set for the chart.\n   * This can come from mouse events, keyboard events, or hardcoded in props\n   * in property `defaultIndex` on Tooltip.\n   */\n  index: TooltipIndex | undefined;\n  /**\n   * DataKey filter.\n   *\n   * In case of multiple graphical items, this is the dataKey that is set for the item.\n   * Very useful for `Tooltip.shared=false`, where activeIndex can display multiple values,\n   * but we only want to display one of them.\n   *\n   * If we want to interact with all the graphical items, then this is undefined.\n   * This is the case for eventTooltipType === 'axis' for example.\n   */\n  dataKey: DataKey<any> | undefined;\n  /**\n   * GraphicalItemId filter.\n   *\n   * In case of multiple graphical items with the same dataKey (e.g., multiple Pie charts),\n   * this identifies which specific graphical item is being interacted with.\n   * This is more reliable than coordinate matching for distinguishing between items.\n   */\n  graphicalItemId: string | undefined;\n  /**\n   * The Coordinate where user last interacted with the chart. This needs saved so we can continue to render the tooltip at that point.\n   * This is undefined on several occasions:\n   * - before the user started interacting with the chart,\n   * - when the chart is controlled programmatically through `defaultIndex` prop\n   * - when the chart is controlled using keyboard interactions\n   */\n  coordinate: Coordinate | PolarCoordinate | undefined;\n};\n\nexport type TooltipSyncState = TooltipInteractionState & {\n  /**\n   * Tooltip synchronization is a feature that allows multiple charts to share the same interaction state.\n   * This comes with one specialty - the syncMethod. `syncMethod=value` allows the user to synchronise charts\n   * based on the active label (which is rendered as the title of the Tooltip).\n   * To allow that, we need the label to be stored in the sync state.\n   */\n  label: string | undefined;\n  /**\n   * ViewBox of the chart that sent the sync event.\n   * Used to scale coordinates between charts of different sizes so tooltips\n   * show up in the right place on all synchronized charts.\n   */\n  sourceViewBox: CartesianViewBoxRequired | undefined;\n};\n\nexport const noInteraction: TooltipInteractionState = {\n  active: false,\n  index: null,\n  dataKey: undefined,\n  graphicalItemId: undefined,\n  coordinate: undefined,\n};\n\n/**\n * The tooltip interaction state stores:\n *\n * - Which graphical item is user interacting with at the moment,\n * - which axis (or, which part of chart background) is user interacting with at the moment\n * - The data that individual graphical items wish to be displayed in case the tooltip gets activated\n */\nexport type TooltipState = {\n  /**\n   * This is the state of interactions with individual graphical items.\n   */\n  itemInteraction: {\n    click: TooltipInteractionState;\n    /**\n     * Why is hover activation separate from click activation? Because they are independent:\n     * If a click is set, then mouseLeave should not clear it.\n     * - the opposite is technically true too - but it's difficult to click on things without also hovering.\n     */\n    hover: TooltipInteractionState;\n  };\n  /**\n   * This is the state of interaction with the bar background - which will get mapped\n   * to the axis index.\n   *\n   * Axis interaction is independent of item interaction so the state must also be independent.\n   */\n  axisInteraction: {\n    click: TooltipInteractionState;\n    hover: TooltipInteractionState;\n  };\n  keyboardInteraction: TooltipInteractionState;\n  /**\n   * This part of the state is the information coming from other charts.\n   * If there are two charts with the same syncId, events from one chart will be transferred\n   * to other charts. So this is what the other charts are reporting.\n   */\n  syncInteraction: TooltipSyncState;\n  /**\n   * One graphical item will have one configuration;\n   * hovering over multiple of them (for example with tooltipEventType===axis)\n   * may render multiple tooltip payloads.\n   */\n  tooltipItemPayloads: ReadonlyArray<TooltipPayloadConfiguration>;\n  /**\n   * Tooltip props or other settings that need redux access.\n   * This assumes that there is always only one Tooltip. In case we want to start supporting multiple Tooltips,\n   * we have to change this to an array - and update all the places reading this state too.\n   */\n  settings: TooltipSettingsState;\n};\n\nexport const initialState: TooltipState = {\n  itemInteraction: {\n    click: noInteraction,\n    hover: noInteraction,\n  },\n  axisInteraction: {\n    click: noInteraction,\n    hover: noInteraction,\n  },\n  keyboardInteraction: noInteraction,\n  syncInteraction: {\n    active: false,\n    index: null,\n    dataKey: undefined,\n    label: undefined,\n    coordinate: undefined,\n    sourceViewBox: undefined,\n    graphicalItemId: undefined,\n  },\n  tooltipItemPayloads: [],\n  settings: {\n    shared: undefined,\n    trigger: 'hover',\n    axisId: 0,\n    active: false,\n    defaultIndex: undefined,\n  },\n};\n\n/**\n * This is the event we get when user is interacting with a specific graphical item.\n */\nexport type GraphicalItemTooltipActionPayload = {\n  /**\n   * Every graphical item must report its own index.\n   */\n  activeIndex: TooltipIndex;\n  /**\n   * A graphical item may or may not have a particular dataKey specified.\n   * This is undefined in case the user did not set a dataKey on the graphical item.\n   * In which case the dataKey is implied by the axes settings.\n   */\n  activeDataKey: DataKey<any> | undefined;\n  /**\n   * This is the coordinate where Recharts think the tooltip should appear.\n   *\n   * Graphical items have a preference where to render the actual tooltip\n   * which is defined in the TooltipPayloadConfiguration.positions.\n   *\n   * This property is resolved by combining that preference with the actual user interaction coordinate.\n   * This is not the raw mouse coordinate! We don't store that currently in this slice.\n   *\n   * This can be undefined depending on the graphical item settings, and the tooltip searcher.\n   */\n  activeCoordinate: Coordinate | undefined;\n  /**\n   * ID of the element user is interacting with.\n   * Cannot be undefined - each graphical item is responsible for generating its own ID\n   * in case user did not provide an explicit one.\n   */\n  activeGraphicalItemId: GraphicalItemId;\n};\n\nexport type AxisTooltipActionPayload = {\n  /**\n   * Each axis interaction must report the index of where the user is interacting.\n   */\n  activeIndex: TooltipIndex;\n  /**\n   * DataKey filter. An axis may or may not have a particular dataKey specified.\n   * This is undefined in case the user did not set a dataKey on the axis.\n   * In which case the dataKey is implied by the graphical item settings.\n   */\n  activeDataKey: DataKey<any> | undefined;\n  /**\n   This is the coordinate where Recharts think the tooltip should appear.\n   *\n   * Graphical items have a preference where to render the actual tooltip\n   * which is defined in the TooltipPayloadConfiguration.positions.\n   *\n   * This property is resolved by combining that preference with the actual user interaction coordinate.\n   * This is not the raw mouse coordinate! We don't store that currently in this slice.\n   *\n   * This can be undefined depending on the graphical item settings, and the tooltip searcher.\n   */\n  activeCoordinate?: Coordinate;\n};\n\n/**\n * Keyboard interaction payload has no graphical item ID,\n * and no dataKey, because keyboard interaction is always\n * with the whole chart, not with a specific graphical item.\n */\nexport type KeyboardTooltipActionPayload = {\n  /**\n   * If true, means user is actively interacting with the chart using keyboard.\n   * If false, means user has stopped interacting with the chart using keyboard - perhaps focus has moved away, or ESC key was pressed.\n   */\n  active: boolean;\n  /**\n   * Keyboard interaction index. The middleware is responsible for computing this index based on\n   * current index, key pressed, chart direction, etc.\n   * Each chart type may have different index types (string or number) and different idea on how to iterate them.\n   */\n  activeIndex: TooltipIndex | undefined;\n  /**\n   This is the coordinate where Recharts think the tooltip should appear.\n\n   * Keyboard coordinate follows the same rules as defaultIndex coordinate.\n   * In an absence of mouse coordinates, the chart must compute where to render the tooltip\n   * based on the activeIndex and domain and range.\n   */\n  activeCoordinate: Coordinate | undefined;\n};\n\nconst tooltipSlice = createSlice({\n  name: 'tooltip',\n  initialState,\n  reducers: {\n    addTooltipEntrySettings: {\n      reducer(state, action: PayloadAction<TooltipPayloadConfiguration>) {\n        state.tooltipItemPayloads.push(castDraft(action.payload));\n      },\n      prepare: prepareAutoBatched<TooltipPayloadConfiguration>(),\n    },\n    replaceTooltipEntrySettings: {\n      reducer(state, action: PayloadAction<{ prev: TooltipPayloadConfiguration; next: TooltipPayloadConfiguration }>) {\n        const { prev, next } = action.payload;\n        const index = current(state).tooltipItemPayloads.indexOf(castDraft(prev));\n        if (index > -1) {\n          state.tooltipItemPayloads[index] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<{ prev: TooltipPayloadConfiguration; next: TooltipPayloadConfiguration }>(),\n    },\n    removeTooltipEntrySettings: {\n      reducer(state, action: PayloadAction<TooltipPayloadConfiguration>) {\n        const index = current(state).tooltipItemPayloads.indexOf(castDraft(action.payload));\n        if (index > -1) {\n          state.tooltipItemPayloads.splice(index, 1);\n        }\n      },\n      prepare: prepareAutoBatched<TooltipPayloadConfiguration>(),\n    },\n    setTooltipSettingsState(state, action: PayloadAction<TooltipSettingsState>) {\n      state.settings = action.payload;\n    },\n    setActiveMouseOverItemIndex(state, action: PayloadAction<GraphicalItemTooltipActionPayload>) {\n      state.syncInteraction.active = false;\n      state.keyboardInteraction.active = false;\n      state.itemInteraction.hover.active = true;\n      state.itemInteraction.hover.index = action.payload.activeIndex;\n      state.itemInteraction.hover.dataKey = action.payload.activeDataKey;\n      state.itemInteraction.hover.graphicalItemId = action.payload.activeGraphicalItemId;\n      state.itemInteraction.hover.coordinate = action.payload.activeCoordinate;\n    },\n    mouseLeaveChart(state) {\n      /*\n       * Clear only the active flags. Why?\n       * 1. Keep Coordinate to preserve animation - next time the Tooltip appears, we want to render it from\n       * the last place where it was when it disappeared.\n       * 2. We want to keep all the properties anyway just in case the tooltip has `active=true` prop\n       * and continues being visible even after the mouse has left the chart.\n       */\n      state.itemInteraction.hover.active = false;\n      state.axisInteraction.hover.active = false;\n    },\n    mouseLeaveItem(state) {\n      state.itemInteraction.hover.active = false;\n    },\n    setActiveClickItemIndex(state, action: PayloadAction<GraphicalItemTooltipActionPayload>) {\n      state.syncInteraction.active = false;\n      state.itemInteraction.click.active = true;\n      state.keyboardInteraction.active = false;\n      state.itemInteraction.click.index = action.payload.activeIndex;\n      state.itemInteraction.click.dataKey = action.payload.activeDataKey;\n      state.itemInteraction.click.graphicalItemId = action.payload.activeGraphicalItemId;\n      state.itemInteraction.click.coordinate = action.payload.activeCoordinate;\n    },\n    setMouseOverAxisIndex(state, action: PayloadAction<AxisTooltipActionPayload>) {\n      state.syncInteraction.active = false;\n      state.axisInteraction.hover.active = true;\n      state.keyboardInteraction.active = false;\n      state.axisInteraction.hover.index = action.payload.activeIndex;\n      state.axisInteraction.hover.dataKey = action.payload.activeDataKey;\n      state.axisInteraction.hover.coordinate = action.payload.activeCoordinate;\n    },\n    setMouseClickAxisIndex(state, action: PayloadAction<AxisTooltipActionPayload>) {\n      state.syncInteraction.active = false;\n      state.keyboardInteraction.active = false;\n      state.axisInteraction.click.active = true;\n      state.axisInteraction.click.index = action.payload.activeIndex;\n      state.axisInteraction.click.dataKey = action.payload.activeDataKey;\n      state.axisInteraction.click.coordinate = action.payload.activeCoordinate;\n    },\n    setSyncInteraction(state, action: PayloadAction<TooltipSyncState>) {\n      state.syncInteraction = action.payload;\n    },\n    setKeyboardInteraction(state, action: PayloadAction<KeyboardTooltipActionPayload>) {\n      state.keyboardInteraction.active = action.payload.active;\n      state.keyboardInteraction.index = action.payload.activeIndex;\n      state.keyboardInteraction.coordinate = action.payload.activeCoordinate;\n    },\n  },\n});\n\nexport const {\n  addTooltipEntrySettings,\n  replaceTooltipEntrySettings,\n  removeTooltipEntrySettings,\n  setTooltipSettingsState,\n  setActiveMouseOverItemIndex,\n  mouseLeaveItem,\n  mouseLeaveChart,\n  setActiveClickItemIndex,\n  setMouseOverAxisIndex,\n  setMouseClickAxisIndex,\n  setSyncInteraction,\n  setKeyboardInteraction,\n} = tooltipSlice.actions;\n\nexport const tooltipReducer = tooltipSlice.reducer;\n","import { noInteraction, TooltipIndex, TooltipInteractionState, TooltipState } from '../../tooltipSlice';\nimport { TooltipEventType } from '../../../util/types';\nimport { TooltipTrigger } from '../../../chart/types';\n\nfunction chooseAppropriateMouseInteraction(\n  tooltipState: TooltipState,\n  tooltipEventType: TooltipEventType,\n  trigger: TooltipTrigger,\n): TooltipInteractionState | undefined {\n  if (tooltipEventType === 'axis') {\n    if (trigger === 'click') {\n      return tooltipState.axisInteraction.click;\n    }\n    return tooltipState.axisInteraction.hover;\n  }\n  if (trigger === 'click') {\n    return tooltipState.itemInteraction.click;\n  }\n  return tooltipState.itemInteraction.hover;\n}\n\nfunction hasBeenActivePreviously(tooltipInteractionState: TooltipInteractionState): boolean {\n  return tooltipInteractionState.index != null;\n}\n\nexport const combineTooltipInteractionState = (\n  tooltipState: TooltipState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n): TooltipInteractionState => {\n  if (tooltipEventType == null) {\n    return noInteraction;\n  }\n  const appropriateMouseInteraction = chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger);\n\n  if (appropriateMouseInteraction == null) {\n    return noInteraction;\n  }\n\n  if (appropriateMouseInteraction.active) {\n    return appropriateMouseInteraction;\n  }\n\n  if (tooltipState.keyboardInteraction.active) {\n    return tooltipState.keyboardInteraction;\n  }\n\n  if (tooltipState.syncInteraction.active && tooltipState.syncInteraction.index != null) {\n    return tooltipState.syncInteraction;\n  }\n\n  const activeFromProps = tooltipState.settings.active === true;\n\n  if (hasBeenActivePreviously(appropriateMouseInteraction)) {\n    if (activeFromProps) {\n      return {\n        ...appropriateMouseInteraction,\n        active: true,\n      };\n    }\n  } else if (defaultIndex != null) {\n    return {\n      active: true,\n      coordinate: undefined,\n      dataKey: undefined,\n      index: defaultIndex,\n      graphicalItemId: undefined,\n    };\n  }\n\n  return {\n    ...noInteraction,\n    coordinate: appropriateMouseInteraction.coordinate,\n  };\n};\n","import { TooltipIndex, TooltipInteractionState } from '../../tooltipSlice';\nimport { ChartData } from '../../chartDataSlice';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nimport { DataKey, CategoricalDomain, NumberDomain } from '../../../util/types';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\nimport { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\n\nfunction toFiniteNumber(value: unknown): number | undefined {\n  if (typeof value === 'number') {\n    return Number.isFinite(value) ? value : undefined;\n  }\n  if (value instanceof Date) {\n    const numericValue = value.valueOf();\n    return Number.isFinite(numericValue) ? numericValue : undefined;\n  }\n  const parsed = Number(value);\n  return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction isValueWithinNumberDomain(value: unknown, domain: NumberDomain): boolean {\n  const numericValue = toFiniteNumber(value);\n  const lowerBound = domain[0];\n  const upperBound = domain[1];\n\n  if (numericValue === undefined) {\n    return false;\n  }\n\n  const min = Math.min(lowerBound, upperBound);\n  const max = Math.max(lowerBound, upperBound);\n  return numericValue >= min && numericValue <= max;\n}\n\nfunction isValueWithinDomain(\n  entry: unknown,\n  axisDataKey: DataKey<unknown> | undefined,\n  domain: NumberDomain | CategoricalDomain | undefined,\n): boolean {\n  if (domain == null || axisDataKey == null) {\n    return true;\n  }\n\n  const value = getValueByDataKey(entry, axisDataKey);\n  if (value == null) {\n    return true;\n  }\n\n  if (!isWellFormedNumberDomain(domain)) {\n    return true;\n  }\n\n  return isValueWithinNumberDomain(value, domain);\n}\n\nexport const combineActiveTooltipIndex = (\n  tooltipInteraction: TooltipInteractionState | undefined,\n  chartData: ChartData,\n  axisDataKey?: DataKey<unknown>,\n  domain?: NumberDomain | CategoricalDomain,\n): TooltipIndex | null => {\n  const desiredIndex: TooltipIndex | undefined = tooltipInteraction?.index;\n  if (desiredIndex == null) {\n    return null;\n  }\n\n  const indexAsNumber = Number(desiredIndex);\n  if (!isWellBehavedNumber(indexAsNumber)) {\n    // this is for charts like Sankey and Treemap that do not support numerical indexes. We need a proper solution for this before we can start supporting keyboard events on these charts.\n    return desiredIndex;\n  }\n\n  /*\n   * Zero is a trivial limit for single-dimensional charts like Line and Area,\n   * but this also needs a support for multidimensional charts like Sankey and Treemap! TODO\n   */\n  const lowerLimit = 0;\n  let upperLimit: number = +Infinity;\n\n  if (chartData.length > 0) {\n    upperLimit = chartData.length - 1;\n  }\n\n  // now let's clamp the desiredIndex between the limits\n  const clampedIndex = Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit));\n  const entry = chartData[clampedIndex];\n\n  if (entry == null) {\n    return String(clampedIndex);\n  }\n\n  if (!isValueWithinDomain(entry, axisDataKey, domain)) {\n    return null;\n  }\n\n  return String(clampedIndex);\n};\n","import { ChartOffsetInternal, Coordinate, LayoutType, TickItem } from '../../../util/types';\nimport { TooltipIndex, TooltipPayloadConfiguration } from '../../tooltipSlice';\n\nexport const combineCoordinateForDefaultIndex = (\n  width: number,\n  height: number,\n  layout: LayoutType,\n  offset: ChartOffsetInternal,\n  tooltipTicks: ReadonlyArray<TickItem> | undefined,\n  defaultIndex: TooltipIndex | undefined,\n  tooltipConfigurations: ReadonlyArray<TooltipPayloadConfiguration>,\n): Coordinate | undefined => {\n  if (defaultIndex == null) {\n    return undefined;\n  }\n  /*\n   * With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display.\n   * Maybe one day we could add new prop `activeGraphicalItemId` to the chart to help with that.\n   * Until then, we choose the first one.\n   */\n  const firstConfiguration = tooltipConfigurations[0];\n  const maybePosition: Coordinate | undefined = firstConfiguration?.getPosition(defaultIndex);\n  if (maybePosition != null) {\n    return maybePosition;\n  }\n  const tick = tooltipTicks?.[Number(defaultIndex)];\n  if (!tick) {\n    return undefined;\n  }\n  switch (layout) {\n    case 'horizontal': {\n      return {\n        x: tick.coordinate,\n        y: (offset.top + height) / 2,\n      };\n    }\n    default: {\n      // This logic is not super sound - it conflates vertical, radial, centric layouts into just one. TODO improve!\n      return {\n        x: (offset.left + width) / 2,\n        y: tick.coordinate,\n      };\n    }\n  }\n};\n","import { TooltipIndex, TooltipPayloadConfiguration, TooltipState } from '../../tooltipSlice';\nimport { TooltipEventType } from '../../../util/types';\nimport { TooltipTrigger } from '../../../chart/types';\nimport { GraphicalItemId } from '../../graphicalItemsSlice';\n\nexport const combineTooltipPayloadConfigurations = (\n  tooltipState: TooltipState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n): ReadonlyArray<TooltipPayloadConfiguration> => {\n  // if tooltip reacts to axis interaction, then we display all items at the same time.\n  if (tooltipEventType === 'axis') {\n    return tooltipState.tooltipItemPayloads;\n  }\n  /*\n   * By now we already know that tooltipEventType is 'item', so we can only search in itemInteractions.\n   * item means that only the hovered or clicked item will be present in the tooltip.\n   */\n  if (tooltipState.tooltipItemPayloads.length === 0) {\n    // No point filtering if the payload is empty\n    return [];\n  }\n  let filterByGraphicalItemId: GraphicalItemId | undefined;\n  if (trigger === 'hover') {\n    filterByGraphicalItemId = tooltipState.itemInteraction.hover.graphicalItemId;\n  } else {\n    filterByGraphicalItemId = tooltipState.itemInteraction.click.graphicalItemId;\n  }\n  if (filterByGraphicalItemId == null && defaultIndex != null) {\n    /*\n     * So when we use `defaultIndex` - we don't have a dataKey to filter by because user did not hover over anything yet.\n     * In that case let's display the first item in the tooltip; after all, this is `item` interaction case,\n     * so we should display only one item at a time instead of all.\n     */\n    const firstItemPayload = tooltipState.tooltipItemPayloads[0];\n    if (firstItemPayload != null) {\n      return [firstItemPayload];\n    }\n    return [];\n  }\n  return tooltipState.tooltipItemPayloads.filter(tpc => tpc.settings?.graphicalItemId === filterByGraphicalItemId);\n};\n","import { RechartsRootState } from '../store';\nimport { TooltipPayloadSearcher } from '../tooltipSlice';\n\nexport const selectTooltipPayloadSearcher = (state: RechartsRootState): TooltipPayloadSearcher =>\n  state.options.tooltipPayloadSearcher;\n","import { RechartsRootState } from '../store';\nimport { TooltipState } from '../tooltipSlice';\n\nexport const selectTooltipState = (state: RechartsRootState): TooltipState => state.tooltip;\n","import {\n  TooltipEntrySettings,\n  TooltipIndex,\n  TooltipPayload,\n  TooltipPayloadConfiguration,\n  TooltipPayloadEntry,\n  TooltipPayloadSearcher,\n} from '../../tooltipSlice';\nimport { ChartData, ChartDataState } from '../../chartDataSlice';\nimport { DataKey, TooltipEventType } from '../../../util/types';\nimport { findEntryInArray } from '../../../util/DataUtils';\nimport { getTooltipEntry, getValueByDataKey } from '../../../util/ChartUtils';\nimport { getSliced } from '../../../util/getSliced';\nimport { ActiveLabel } from '../../../synchronisation/types';\n\nfunction selectFinalData(dataDefinedOnItem: unknown, dataDefinedOnChart: ChartData | undefined): unknown {\n  /*\n   * If a payload has data specified directly from the graphical item, prefer that.\n   * Otherwise, fill in data from the chart level, using the same index.\n   */\n  if (dataDefinedOnItem != null) {\n    return dataDefinedOnItem;\n  }\n  return dataDefinedOnChart;\n}\n\nexport const combineTooltipPayload = (\n  tooltipPayloadConfigurations: ReadonlyArray<TooltipPayloadConfiguration>,\n  activeIndex: TooltipIndex,\n  chartDataState: ChartDataState,\n  tooltipAxisDataKey: DataKey<any> | undefined,\n  activeLabel: ActiveLabel,\n  tooltipPayloadSearcher: TooltipPayloadSearcher | undefined,\n  tooltipEventType: TooltipEventType | undefined,\n): TooltipPayload | undefined => {\n  if (activeIndex == null || tooltipPayloadSearcher == null) {\n    return undefined;\n  }\n  const { chartData, computedData, dataStartIndex, dataEndIndex } = chartDataState;\n\n  const init: Array<TooltipPayloadEntry> = [];\n\n  return tooltipPayloadConfigurations.reduce((agg, { dataDefinedOnItem, settings }): Array<TooltipPayloadEntry> => {\n    const finalData = selectFinalData(dataDefinedOnItem, chartData);\n\n    const sliced = Array.isArray(finalData) ? getSliced(finalData, dataStartIndex, dataEndIndex) : finalData;\n\n    const finalDataKey: DataKey<any> | undefined = settings?.dataKey ?? tooltipAxisDataKey;\n    // BaseAxisProps does not support nameKey but it could!\n    const finalNameKey: DataKey<any> | undefined = settings?.nameKey; // ?? tooltipAxis?.nameKey;\n    let tooltipPayload: unknown;\n    if (\n      tooltipAxisDataKey &&\n      Array.isArray(sliced) &&\n      /*\n       * findEntryInArray won't work for Scatter because Scatter provides an array of arrays\n       * as tooltip payloads and findEntryInArray is not prepared to handle that.\n       * Sad but also ScatterChart only allows 'item' tooltipEventType\n       * and also this is only a problem if there are multiple Scatters and each has its own data array\n       * so let's fix that some other time.\n       */\n      !Array.isArray(sliced[0]) &&\n      /*\n       * If the tooltipEventType is 'axis', we should search for the dataKey in the sliced data\n       * because thanks to allowDuplicatedCategory=false, the order of elements in the array\n       * no longer matches the order of elements in the original data\n       * and so we need to search by the active dataKey + label rather than by index.\n       *\n       * The same happens if multiple graphical items are present in the chart\n       * and each of them has its own data array. Those arrays get concatenated\n       * and again the tooltip index no longer matches the original data.\n       *\n       * On the other hand the tooltipEventType 'item' should always search by index\n       * because we get the index from interacting over the individual elements\n       * which is always accurate, irrespective of the allowDuplicatedCategory setting.\n       */\n      tooltipEventType === 'axis'\n    ) {\n      tooltipPayload = findEntryInArray(sliced, tooltipAxisDataKey, activeLabel);\n    } else {\n      /*\n       * This is a problem because it assumes that the index is pointing to the displayed data\n       * which it isn't because the index is pointing to the tooltip ticks array.\n       * The above approach (with findEntryInArray) is the correct one, but it only works\n       * if the axis dataKey is defined explicitly, and if the data is an array of objects.\n       */\n      tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);\n    }\n\n    if (Array.isArray(tooltipPayload)) {\n      tooltipPayload.forEach(item => {\n        const newSettings: TooltipEntrySettings = {\n          ...settings,\n          // @ts-expect-error we're assuming that item has name and unit properties\n          name: item.name,\n          // @ts-expect-error we're assuming that item has name and unit properties\n          unit: item.unit,\n          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.\n          color: undefined,\n          // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.\n          fill: undefined,\n        };\n        agg.push(\n          getTooltipEntry({\n            tooltipEntrySettings: newSettings,\n            // @ts-expect-error we're assuming that item has name and unit properties\n            dataKey: item.dataKey,\n            // @ts-expect-error we're assuming that item has name and unit properties\n            payload: item.payload,\n            // @ts-expect-error getValueByDataKey does not validate the output type\n            value: getValueByDataKey(item.payload, item.dataKey),\n            // @ts-expect-error we're assuming that item has name and unit properties\n            name: item.name,\n          }),\n        );\n      });\n    } else {\n      // I am not quite sure why these two branches (Array vs Array of Arrays) have to behave differently - I imagine we should unify these. 3.x breaking change?\n      agg.push(\n        getTooltipEntry({\n          tooltipEntrySettings: settings,\n          dataKey: finalDataKey,\n          payload: tooltipPayload,\n          // @ts-expect-error getValueByDataKey does not validate the output type\n          value: getValueByDataKey(tooltipPayload, finalDataKey),\n          // @ts-expect-error getValueByDataKey does not validate the output type\n          name: getValueByDataKey(tooltipPayload, finalNameKey) ?? settings?.name,\n        }),\n      );\n    }\n    return agg;\n  }, init);\n};\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport {\n  AxisRange,\n  RenderableAxisSettings,\n  combineAppliedValues,\n  combineAreasDomain,\n  combineAxisDomain,\n  combineAxisDomainWithNiceTicks,\n  combineCategoricalDomain,\n  combineDisplayedData,\n  combineDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n  combineDomainOfStackGroups,\n  combineDotsDomain,\n  combineDuplicateDomain,\n  combineGraphicalItemsData,\n  combineGraphicalItemsSettings,\n  combineLinesDomain,\n  combineNiceTicks,\n  combineNumericalDomain,\n  combineRealScaleType,\n  combineScaleFunction,\n  combineStackGroups,\n  filterGraphicalNotStackedItems,\n  filterReferenceElements,\n  getDomainDefinition,\n  itemAxisPredicate,\n  mergeDomains,\n  selectAllErrorBarSettings,\n  selectAxisRange,\n  selectHasBar,\n  selectReferenceAreas,\n  selectReferenceDots,\n  selectReferenceLines,\n  selectTooltipAxis,\n  selectTooltipAxisDataKey,\n} from './axisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { isCategoricalAxis, StackId } from '../../util/ChartUtils';\nimport {\n  AxisDomain,\n  CategoricalDomain,\n  CategoricalDomainItem,\n  Coordinate,\n  D3ScaleType,\n  DataKey,\n  LayoutType,\n  NumberDomain,\n  TickItem,\n  TooltipEventType,\n} from '../../util/types';\nimport { AppliedChartData, ChartData } from '../chartDataSlice';\nimport { selectChartDataWithIndexes } from './dataSelectors';\nimport {\n  CartesianGraphicalItemSettings,\n  GraphicalItemSettings,\n  PolarGraphicalItemSettings,\n} from '../graphicalItemsSlice';\nimport { ReferenceAreaSettings, ReferenceDotSettings, ReferenceLineSettings } from '../referenceElementsSlice';\nimport { selectChartName, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';\nimport { isNotNil, mathSign } from '../../util/DataUtils';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { TooltipIndex, TooltipInteractionState, TooltipPayload, TooltipSettingsState } from '../tooltipSlice';\n\nimport {\n  combineTooltipEventType,\n  selectDefaultTooltipEventType,\n  selectValidateTooltipEventTypes,\n} from './selectTooltipEventType';\n\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\n\nimport { selectTooltipSettings } from './selectTooltipSettings';\n\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\n\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport { StackGroup } from '../../util/stacks/stackTypes';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nimport { selectTooltipAxisType, RenderableAxisType } from './selectTooltipAxisType';\nimport { combineDisplayedStackedData, DisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { DefinitelyStackedGraphicalItem, isStacked } from '../types/StackedGraphicalItem';\nimport { numericalDomainSpecifiedWithoutRequiringData } from '../../util/isDomainSpecifiedByUser';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nimport { ActiveLabel } from '../../synchronisation/types';\nimport { RechartsScale } from '../../util/scale/RechartsScale';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\n\nexport const selectTooltipAxisRealScaleType: (state: RechartsRootState) => D3ScaleType | undefined = createSelector(\n  [selectTooltipAxis, selectHasBar, selectChartName],\n  combineRealScaleType,\n);\n\nexport const selectAllUnfilteredGraphicalItems: (\n  state: RechartsRootState,\n) => ReadonlyArray<CartesianGraphicalItemSettings | PolarGraphicalItemSettings> = createSelector(\n  [\n    (state: RechartsRootState) => state.graphicalItems.cartesianItems,\n    (state: RechartsRootState) => state.graphicalItems.polarItems,\n  ],\n  (cartesianItems, polarItems) => [...cartesianItems, ...polarItems],\n);\n\nconst selectTooltipAxisPredicate = createSelector([selectTooltipAxisType, selectTooltipAxisId], itemAxisPredicate);\n\nexport const selectAllGraphicalItemsSettings: (state: RechartsRootState) => ReadonlyArray<GraphicalItemSettings> =\n  createSelector(\n    [selectAllUnfilteredGraphicalItems, selectTooltipAxis, selectTooltipAxisPredicate],\n    combineGraphicalItemsSettings,\n    {\n      memoizeOptions: {\n        resultEqualityCheck: emptyArraysAreEqualCheck,\n      },\n    },\n  );\n\nconst selectAllStackedGraphicalItemsSettings: (\n  state: RechartsRootState,\n) => ReadonlyArray<DefinitelyStackedGraphicalItem> = createSelector(\n  [selectAllGraphicalItemsSettings],\n  (graphicalItems: ReadonlyArray<GraphicalItemSettings>): ReadonlyArray<DefinitelyStackedGraphicalItem> =>\n    graphicalItems.filter(isStacked),\n);\n\nexport const selectTooltipGraphicalItemsData = createSelector(\n  [selectAllGraphicalItemsSettings],\n  combineGraphicalItemsData,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: emptyArraysAreEqualCheck,\n    },\n  },\n);\n\n/**\n * Data for tooltip always use the data with indexes set by a Brush,\n * and never accept the isPanorama flag:\n * because Tooltip never displays inside the panorama anyway\n * so we don't need to worry what would happen there.\n */\nexport const selectTooltipDisplayedData: (state: RechartsRootState) => ChartData = createSelector(\n  [selectTooltipGraphicalItemsData, selectChartDataWithIndexes],\n  combineDisplayedData,\n);\n\nconst selectTooltipStackedData: (state: RechartsRootState) => DisplayedStackedData = createSelector(\n  [selectAllStackedGraphicalItemsSettings, selectChartDataWithIndexes, selectTooltipAxis],\n  combineDisplayedStackedData,\n);\n\nconst selectAllTooltipAppliedValues: (state: RechartsRootState) => AppliedChartData = createSelector(\n  [selectTooltipDisplayedData, selectTooltipAxis, selectAllGraphicalItemsSettings],\n  combineAppliedValues,\n);\n\nconst selectTooltipAxisDomainDefinition: (state: RechartsRootState) => AxisDomain | undefined = createSelector(\n  [selectTooltipAxis],\n  getDomainDefinition,\n);\n\nconst selectTooltipDataOverflow: (state: RechartsRootState) => boolean = createSelector(\n  [selectTooltipAxis],\n  axisSettings => axisSettings.allowDataOverflow,\n);\n\nconst selectTooltipDomainFromUserPreferences: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectTooltipAxisDomainDefinition, selectTooltipDataOverflow],\n  numericalDomainSpecifiedWithoutRequiringData,\n);\n\nconst selectAllStackedGraphicalItems: (state: RechartsRootState) => ReadonlyArray<DefinitelyStackedGraphicalItem> =\n  createSelector([selectAllGraphicalItemsSettings], (graphicalItems: ReadonlyArray<GraphicalItemSettings>) =>\n    graphicalItems.filter(isStacked),\n  );\n\nconst selectTooltipStackGroups: (state: RechartsRootState) => Record<StackId, StackGroup> = createSelector(\n  [selectTooltipStackedData, selectAllStackedGraphicalItems, selectStackOffsetType, selectReverseStackOrder],\n  combineStackGroups,\n);\n\nconst selectTooltipDomainOfStackGroups: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectTooltipStackGroups, selectChartDataWithIndexes, selectTooltipAxisType, selectTooltipDomainFromUserPreferences],\n  combineDomainOfStackGroups,\n);\n\nconst selectTooltipItemsSettingsExceptStacked: (state: RechartsRootState) => ReadonlyArray<GraphicalItemSettings> =\n  createSelector([selectAllGraphicalItemsSettings], filterGraphicalNotStackedItems);\n\nconst selectDomainOfAllAppliedNumericalValuesIncludingErrorValues: (\n  state: RechartsRootState,\n) => NumberDomain | undefined = createSelector(\n  [\n    selectTooltipDisplayedData,\n    selectTooltipAxis,\n    selectTooltipItemsSettingsExceptStacked,\n    selectAllErrorBarSettings,\n    selectTooltipAxisType,\n  ],\n  combineDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n  {\n    memoizeOptions: {\n      resultEqualityCheck: numberDomainEqualityCheck,\n    },\n  },\n);\n\nconst selectReferenceDotsByTooltipAxis: (state: RechartsRootState) => ReadonlyArray<ReferenceDotSettings> | undefined =\n  createSelector([selectReferenceDots, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\n\nconst selectTooltipReferenceDotsDomain: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectReferenceDotsByTooltipAxis, selectTooltipAxisType],\n  combineDotsDomain,\n);\n\nconst selectReferenceAreasByTooltipAxis: (\n  state: RechartsRootState,\n) => ReadonlyArray<ReferenceAreaSettings> | undefined = createSelector(\n  [selectReferenceAreas, selectTooltipAxisType, selectTooltipAxisId],\n  filterReferenceElements,\n);\n\nconst selectTooltipReferenceAreasDomain: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectReferenceAreasByTooltipAxis, selectTooltipAxisType],\n  combineAreasDomain,\n);\n\nconst selectReferenceLinesByTooltipAxis: (\n  state: RechartsRootState,\n) => ReadonlyArray<ReferenceLineSettings> | undefined = createSelector(\n  [selectReferenceLines, selectTooltipAxisType, selectTooltipAxisId],\n  filterReferenceElements,\n);\n\nconst selectTooltipReferenceLinesDomain: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectReferenceLinesByTooltipAxis, selectTooltipAxisType],\n  combineLinesDomain,\n);\n\nconst selectTooltipReferenceElementsDomain: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [selectTooltipReferenceDotsDomain, selectTooltipReferenceLinesDomain, selectTooltipReferenceAreasDomain],\n  mergeDomains,\n);\n\nconst selectTooltipNumericalDomain: (state: RechartsRootState) => NumberDomain | undefined = createSelector(\n  [\n    selectTooltipAxis,\n    selectTooltipAxisDomainDefinition,\n    selectTooltipDomainFromUserPreferences,\n    selectTooltipDomainOfStackGroups,\n    selectDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n    selectTooltipReferenceElementsDomain,\n    selectChartLayout,\n    selectTooltipAxisType,\n  ],\n  combineNumericalDomain,\n);\n\nexport const selectTooltipAxisDomain: (state: RechartsRootState) => NumberDomain | CategoricalDomain | undefined =\n  createSelector(\n    [\n      selectTooltipAxis,\n      selectChartLayout,\n      selectTooltipDisplayedData,\n      selectAllTooltipAppliedValues,\n      selectStackOffsetType,\n      selectTooltipAxisType,\n      selectTooltipNumericalDomain,\n    ],\n    combineAxisDomain,\n  );\n\nconst selectTooltipNiceTicks: (state: RechartsRootState) => ReadonlyArray<number> | undefined = createSelector(\n  [selectTooltipAxisDomain, selectTooltipAxis, selectTooltipAxisRealScaleType],\n  combineNiceTicks,\n);\n\nexport const selectTooltipAxisDomainIncludingNiceTicks: (\n  state: RechartsRootState,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [selectTooltipAxis, selectTooltipAxisDomain, selectTooltipNiceTicks, selectTooltipAxisType],\n  combineAxisDomainWithNiceTicks,\n);\n\nconst selectTooltipAxisRange = (state: RechartsRootState): AxisRange | undefined => {\n  const axisType = selectTooltipAxisType(state);\n  const axisId = selectTooltipAxisId(state);\n  const isPanorama = false; // Tooltip never displays in panorama so this is safe to assume\n  return selectAxisRange(state, axisType, axisId, isPanorama);\n};\n\nexport const selectTooltipAxisRangeWithReverse: (state: RechartsRootState) => AxisRange | undefined = createSelector(\n  [selectTooltipAxis, selectTooltipAxisRange],\n  combineAxisRangeWithReverse,\n);\n\nexport const selectTooltipAxisScale: (state: RechartsRootState) => RechartsScale | undefined = createSelector(\n  [\n    selectTooltipAxis,\n    selectTooltipAxisRealScaleType,\n    selectTooltipAxisDomainIncludingNiceTicks,\n    selectTooltipAxisRangeWithReverse,\n  ],\n  combineScaleFunction,\n);\n\nconst selectTooltipDuplicateDomain: (state: RechartsRootState) => ReadonlyArray<unknown> | undefined = createSelector(\n  [selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType],\n  combineDuplicateDomain,\n);\n\nexport const selectTooltipCategoricalDomain: (state: RechartsRootState) => ReadonlyArray<unknown> | undefined =\n  createSelector(\n    [selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType],\n    combineCategoricalDomain,\n  );\n\nconst combineTicksOfTooltipAxis = (\n  layout: LayoutType,\n  axis: RenderableAxisSettings,\n  realScaleType: string | undefined,\n  scale: RechartsScale | undefined,\n  range: AxisRange | undefined,\n  duplicateDomain: ReadonlyArray<unknown> | undefined,\n  categoricalDomain: ReadonlyArray<unknown> | undefined,\n  axisType: RenderableAxisType,\n): ReadonlyArray<TickItem> | undefined => {\n  if (!axis) {\n    return undefined;\n  }\n  const { type } = axis;\n\n  const isCategorical = isCategoricalAxis(layout, axisType);\n\n  if (!scale) {\n    return undefined;\n  }\n\n  const offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n  let offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n\n  offset =\n    axisType === 'angleAxis' && range != null && range?.length >= 2\n      ? mathSign(range[0] - range[1]) * 2 * offset\n      : offset;\n\n  // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n  if (isCategorical && categoricalDomain) {\n    return categoricalDomain\n      .map((entry: unknown, index: number): TickItem | null => {\n        const scaled = scale.map(entry);\n        if (!isWellBehavedNumber(scaled)) {\n          return null;\n        }\n        return {\n          coordinate: scaled + offset,\n          value: entry,\n          index,\n          offset,\n        };\n      })\n      .filter(isNotNil);\n  }\n\n  // When axis has duplicated text, serial numbers are used to generate scale\n  return scale\n    .domain()\n    .map((entry: CategoricalDomainItem, index: number): TickItem | null => {\n      const scaled = scale.map(entry);\n      if (!isWellBehavedNumber(scaled)) {\n        return null;\n      }\n      return {\n        coordinate: scaled + offset,\n        // @ts-expect-error can't use Date as an index\n        value: duplicateDomain ? duplicateDomain[entry] : entry,\n        index,\n        offset,\n      };\n    })\n    .filter(isNotNil);\n};\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport const selectTooltipAxisTicks: (state: RechartsRootState) => ReadonlyArray<TickItem> | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectTooltipAxis,\n    selectTooltipAxisRealScaleType,\n    selectTooltipAxisScale,\n    selectTooltipAxisRange,\n    selectTooltipDuplicateDomain,\n    selectTooltipCategoricalDomain,\n    selectTooltipAxisType,\n  ],\n  combineTicksOfTooltipAxis,\n);\n\nconst selectTooltipEventType: (state: RechartsRootState) => TooltipEventType | undefined = createSelector(\n  [selectDefaultTooltipEventType, selectValidateTooltipEventTypes, selectTooltipSettings],\n  (defaultTooltipEventType, validateTooltipEventType, settings: TooltipSettingsState) =>\n    combineTooltipEventType(settings.shared, defaultTooltipEventType, validateTooltipEventType),\n);\n\nconst selectTooltipTrigger = (state: RechartsRootState) => state.tooltip.settings.trigger;\n\nconst selectDefaultIndex: (state: RechartsRootState) => TooltipIndex | undefined = state =>\n  state.tooltip.settings.defaultIndex;\n\nconst selectTooltipInteractionState: (state: RechartsRootState) => TooltipInteractionState | undefined = createSelector(\n  [selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex],\n  combineTooltipInteractionState,\n);\n\nexport const selectActiveTooltipIndex: (state: RechartsRootState) => TooltipIndex | null = createSelector(\n  [selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain],\n  combineActiveTooltipIndex,\n);\n\nexport const selectActiveLabel: (state: RechartsRootState) => ActiveLabel = createSelector(\n  [selectTooltipAxisTicks, selectActiveTooltipIndex],\n  combineActiveLabel,\n);\n\nexport const selectActiveTooltipDataKey: (state: RechartsRootState) => DataKey<any> | undefined = createSelector(\n  [selectTooltipInteractionState],\n  (tooltipInteraction: TooltipInteractionState | undefined): DataKey<any> | undefined => {\n    if (!tooltipInteraction) {\n      return undefined;\n    }\n\n    return tooltipInteraction.dataKey;\n  },\n);\n\nexport const selectActiveTooltipGraphicalItemId: (state: RechartsRootState) => string | undefined = createSelector(\n  [selectTooltipInteractionState],\n  (tooltipInteraction: TooltipInteractionState | undefined): string | undefined => {\n    if (!tooltipInteraction) {\n      return undefined;\n    }\n\n    return tooltipInteraction.graphicalItemId;\n  },\n);\n\nconst selectTooltipPayloadConfigurations = createSelector(\n  [selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex],\n  combineTooltipPayloadConfigurations,\n);\n\nconst selectTooltipCoordinateForDefaultIndex: (state: RechartsRootState) => Coordinate | undefined = createSelector(\n  [\n    selectChartWidth,\n    selectChartHeight,\n    selectChartLayout,\n    selectChartOffsetInternal,\n    selectTooltipAxisTicks,\n    selectDefaultIndex,\n    selectTooltipPayloadConfigurations,\n  ],\n  combineCoordinateForDefaultIndex,\n);\n\nexport const selectActiveTooltipCoordinate: (state: RechartsRootState) => Coordinate | undefined = createSelector(\n  [selectTooltipInteractionState, selectTooltipCoordinateForDefaultIndex],\n  (\n    tooltipInteractionState: TooltipInteractionState | undefined,\n    defaultIndexCoordinate: Coordinate | undefined,\n  ): Coordinate | undefined => {\n    if (tooltipInteractionState?.coordinate) {\n      return tooltipInteractionState.coordinate;\n    }\n\n    return defaultIndexCoordinate;\n  },\n);\n\nexport const selectIsTooltipActive: (state: RechartsRootState) => boolean = createSelector(\n  [selectTooltipInteractionState],\n  (tooltipInteractionState: TooltipInteractionState | undefined): boolean => tooltipInteractionState?.active ?? false,\n);\n\nexport const selectActiveTooltipPayload: (state: RechartsRootState) => TooltipPayload | undefined = createSelector(\n  [\n    selectTooltipPayloadConfigurations,\n    selectActiveTooltipIndex,\n    selectChartDataWithIndexes,\n    selectTooltipAxisDataKey,\n    selectActiveLabel,\n    selectTooltipPayloadSearcher,\n    selectTooltipEventType,\n  ],\n  combineTooltipPayload,\n);\n\nexport const selectActiveTooltipDataPoints = createSelector([selectActiveTooltipPayload], payload => {\n  if (payload == null) {\n    return undefined;\n  }\n  const dataPoints = payload.map(p => p.payload).filter(p => p != null);\n  return Array.from(new Set(dataPoints));\n});\n","import { RechartsRootState } from '../store';\nimport { TooltipSettingsState } from '../tooltipSlice';\n\nexport const selectTooltipSettings = (state: RechartsRootState): TooltipSettingsState => state.tooltip.settings;\n","import { useAppSelector } from '../state/hooks';\nimport { getBandSizeOfAxis } from '../util/ChartUtils';\nimport { RenderableAxisSettings, selectTooltipAxis } from '../state/selectors/axisSelectors';\nimport { selectTooltipAxisScale, selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\n\nexport const useTooltipAxis = (): RenderableAxisSettings | undefined => useAppSelector(selectTooltipAxis);\n\nexport const useTooltipAxisBandSize = (): number | undefined => {\n  const tooltipAxis = useTooltipAxis();\n  const tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n  const tooltipAxisScale = useAppSelector(selectTooltipAxisScale);\n  if (!tooltipAxis || !tooltipAxisScale) {\n    return getBandSizeOfAxis(undefined, tooltipTicks);\n  }\n  return getBandSizeOfAxis({ ...tooltipAxis, scale: tooltipAxisScale }, tooltipTicks);\n};\n","import {\n  AxisType,\n  CartesianLayout,\n  ChartOffsetInternal,\n  ChartPointer,\n  Coordinate,\n  PolarCoordinate,\n  PolarLayout,\n  RangeObj,\n  TickItem,\n} from './types';\nimport { polarToCartesian } from './PolarUtils';\nimport { AxisRange } from '../state/selectors/axisSelectors';\nimport { mathSign } from './DataUtils';\n\nexport const getActiveCartesianCoordinate = (\n  layout: CartesianLayout,\n  tooltipTicks: readonly TickItem[],\n  activeIndex: number | undefined,\n  pointer: ChartPointer,\n): Coordinate => {\n  const entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n\n  if (entry) {\n    if (layout === 'horizontal') {\n      return { x: entry.coordinate, y: pointer.chartY };\n    }\n    if (layout === 'vertical') {\n      return { x: pointer.chartX, y: entry.coordinate };\n    }\n  }\n\n  return { x: 0, y: 0 };\n};\n\n/**\n * Get the active coordinate in polar coordinate system.\n * Internally we only really use x and y, but this returned object is part of public API\n * (because it goes straight to the tooltip content) so we keep all the other properties\n * for backwards compatibility.\n *\n * @param layout - The polar layout type ('centric' or 'radial').\n * @param tooltipTicks - Array of tick items used for tooltips.\n * @param activeIndex - The index of the active tick.\n * @param rangeObj - The range object containing polar chart properties.\n * @returns The active coordinate object with polar properties.\n */\nexport const getActivePolarCoordinate = (\n  layout: PolarLayout,\n  tooltipTicks: readonly TickItem[],\n  activeIndex: number | undefined,\n  rangeObj: RangeObj,\n): PolarCoordinate => {\n  const entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n\n  if (entry) {\n    if (layout === 'centric') {\n      const angle = entry.coordinate;\n      const { radius } = rangeObj;\n\n      return {\n        ...rangeObj,\n        ...polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle),\n        angle,\n        radius,\n      };\n    }\n\n    const radius = entry.coordinate;\n    const { angle } = rangeObj;\n\n    return {\n      ...rangeObj,\n      ...polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle),\n      angle,\n      radius,\n    };\n  }\n\n  return {\n    angle: 0,\n    clockWise: false,\n    cx: 0,\n    cy: 0,\n    endAngle: 0,\n    innerRadius: 0,\n    outerRadius: 0,\n    radius: 0,\n    startAngle: 0,\n    x: 0,\n    y: 0,\n  };\n};\n\nexport function isInCartesianRange(pointer: ChartPointer, offset: ChartOffsetInternal): boolean {\n  const { chartX: x, chartY: y } = pointer;\n  return x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n}\n\nexport const calculateActiveTickIndex = (\n  /**\n   * For different layouts, `coordinate` is different:\n   * In horizontal layout, this is expected to be the `x` coordinate\n   * vertical -> y\n   * centric -> angle\n   * radial -> radius\n   */\n  coordinate: number | undefined,\n  ticks: ReadonlyArray<TickItem> | undefined,\n  unsortedTicks: ReadonlyArray<TickItem>,\n  axisType: AxisType | undefined,\n  range: AxisRange | undefined,\n): number | undefined => {\n  const len = ticks?.length ?? 0;\n\n  // if there are 1 or fewer ticks or if there is no coordinate then the active tick is at index 0\n  if (len <= 1 || coordinate == null) {\n    return 0;\n  }\n\n  if (axisType === 'angleAxis' && range != null && Math.abs(Math.abs(range[1] - range[0]) - 360) <= 1e-6) {\n    // ticks are distributed in a circle\n    for (let i = 0; i < len; i++) {\n      const before = i > 0 ? unsortedTicks[i - 1]?.coordinate : unsortedTicks[len - 1]?.coordinate;\n      const cur = unsortedTicks[i]?.coordinate;\n      const after = i >= len - 1 ? unsortedTicks[0]?.coordinate : unsortedTicks[i + 1]?.coordinate;\n      let sameDirectionCoord;\n\n      if (before == null || cur == null || after == null) {\n        continue;\n      }\n\n      if (mathSign(cur - before) !== mathSign(after - cur)) {\n        const diffInterval = [];\n        if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n          sameDirectionCoord = after;\n\n          const curInRange = cur + range[1] - range[0];\n          diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n          diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n        } else {\n          sameDirectionCoord = before;\n\n          const afterInRange = after + range[1] - range[0];\n          diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n          diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n        }\n        const sameInterval: [number, number] = [\n          Math.min(cur, (sameDirectionCoord + cur) / 2),\n          Math.max(cur, (sameDirectionCoord + cur) / 2),\n        ];\n\n        if (\n          (coordinate > sameInterval[0] && coordinate <= sameInterval[1]) ||\n          (coordinate >= diffInterval[0] && coordinate <= diffInterval[1])\n        ) {\n          return unsortedTicks[i]?.index;\n        }\n      } else {\n        const minValue = Math.min(before, after);\n        const maxValue = Math.max(before, after);\n\n        if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n          return unsortedTicks[i]?.index;\n        }\n      }\n    }\n  } else if (ticks) {\n    // ticks are distributed in a single direction\n    for (let i = 0; i < len; i++) {\n      const curr = ticks[i];\n      if (curr == null) {\n        continue;\n      }\n      const next = ticks[i + 1];\n      const prev = ticks[i - 1];\n\n      if (i === 0 && next != null && coordinate <= (curr.coordinate + next.coordinate) / 2) {\n        return curr.index;\n      }\n\n      if (i === len - 1 && prev != null && coordinate > (curr.coordinate + prev.coordinate) / 2) {\n        return curr.index;\n      }\n\n      if (\n        i > 0 &&\n        i < len - 1 &&\n        prev != null &&\n        next != null &&\n        coordinate > (curr.coordinate + prev.coordinate) / 2 &&\n        coordinate <= (curr.coordinate + next.coordinate) / 2\n      ) {\n        return curr.index;\n      }\n    }\n  }\n\n  return -1;\n};\n","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { useAppSelector } from '../hooks';\nimport { RechartsRootState } from '../store';\nimport {\n  ActiveTooltipProps,\n  TooltipIndex,\n  TooltipInteractionState,\n  TooltipPayload,\n  TooltipPayloadConfiguration,\n} from '../tooltipSlice';\nimport { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';\nimport {\n  AxisType,\n  CartesianLayout,\n  ChartOffsetInternal,\n  ChartPointer,\n  Coordinate,\n  DataKey,\n  PolarCoordinate,\n  PolarLayout,\n  PolarViewBoxRequired,\n  TickItem,\n  TooltipEventType,\n} from '../../util/types';\nimport { TooltipTrigger } from '../../chart/types';\nimport { selectChartDataWithIndexes } from './dataSelectors';\nimport { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './tooltipSelectors';\nimport { AxisRange, selectTooltipAxisDataKey } from './axisSelectors';\nimport { selectChartName } from './rootPropsSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport {\n  calculateActiveTickIndex,\n  getActiveCartesianCoordinate,\n  getActivePolarCoordinate,\n  isInCartesianRange,\n} from '../../util/getActiveCoordinate';\nimport { inRangeOfSector } from '../../util/PolarUtils';\n\nexport const useChartName = (): string | undefined => {\n  return useAppSelector(selectChartName);\n};\n\nconst pickTooltipEventType = (\n  _state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n): TooltipEventType | undefined => tooltipEventType;\n\nconst pickTrigger = (\n  _state: RechartsRootState,\n  _tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n): TooltipTrigger => trigger;\n\nconst pickDefaultIndex = (\n  _state: RechartsRootState,\n  _tooltipEventType: TooltipEventType | undefined,\n  _trigger: TooltipTrigger,\n  defaultIndex?: TooltipIndex | undefined,\n): TooltipIndex | undefined => defaultIndex;\n\nexport const selectOrderedTooltipTicks = createSelector(\n  selectTooltipAxisTicks,\n  (ticks: ReadonlyArray<TickItem> | undefined) => sortBy(ticks, o => o.coordinate),\n);\n\nexport const selectTooltipInteractionState: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => TooltipInteractionState = createSelector(\n  [selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex],\n  combineTooltipInteractionState,\n);\n\nexport const selectActiveIndex: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => TooltipIndex | null = createSelector(\n  [selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain],\n  combineActiveTooltipIndex,\n);\n\nexport const selectTooltipDataKey = (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n): DataKey<any> | undefined => {\n  if (tooltipEventType == null) {\n    return undefined;\n  }\n  const tooltipState = selectTooltipState(state);\n  if (tooltipEventType === 'axis') {\n    if (trigger === 'hover') {\n      return tooltipState.axisInteraction.hover.dataKey;\n    }\n    return tooltipState.axisInteraction.click.dataKey;\n  }\n  if (trigger === 'hover') {\n    return tooltipState.itemInteraction.hover.dataKey;\n  }\n  return tooltipState.itemInteraction.click.dataKey;\n};\n\nexport const selectTooltipPayloadConfigurations: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => ReadonlyArray<TooltipPayloadConfiguration> = createSelector(\n  [selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex],\n  combineTooltipPayloadConfigurations,\n);\n\nexport const selectCoordinateForDefaultIndex: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => Coordinate | undefined = createSelector(\n  [\n    selectChartWidth,\n    selectChartHeight,\n    selectChartLayout,\n    selectChartOffsetInternal,\n    selectTooltipAxisTicks,\n    pickDefaultIndex,\n    selectTooltipPayloadConfigurations,\n  ],\n  combineCoordinateForDefaultIndex,\n);\n\nexport const selectActiveCoordinate: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => Coordinate | undefined = createSelector(\n  [selectTooltipInteractionState, selectCoordinateForDefaultIndex],\n  (\n    tooltipInteractionState: TooltipInteractionState,\n    defaultIndexCoordinate: Coordinate | undefined,\n  ): Coordinate | undefined => {\n    return tooltipInteractionState.coordinate ?? defaultIndexCoordinate;\n  },\n);\n\nexport const selectActiveLabel: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => string | number | undefined = createSelector([selectTooltipAxisTicks, selectActiveIndex], combineActiveLabel);\n\nexport const selectTooltipPayload: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => TooltipPayload | undefined = createSelector(\n  [\n    selectTooltipPayloadConfigurations,\n    selectActiveIndex,\n    selectChartDataWithIndexes,\n    selectTooltipAxisDataKey,\n    selectActiveLabel,\n    selectTooltipPayloadSearcher,\n    pickTooltipEventType,\n  ],\n  combineTooltipPayload,\n);\n\nexport const selectIsTooltipActive: (\n  state: RechartsRootState,\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  defaultIndex: TooltipIndex | undefined,\n) => { isActive: boolean; activeIndex: TooltipIndex | null } = createSelector(\n  [selectTooltipInteractionState, selectActiveIndex],\n  (tooltipInteractionState: TooltipInteractionState, activeIndex: TooltipIndex | null) => {\n    return { isActive: tooltipInteractionState.active && activeIndex != null, activeIndex };\n  },\n);\n\nconst combineActiveCartesianProps = (\n  chartEvent: ChartPointer | undefined,\n  layout: CartesianLayout,\n  tooltipAxisType: AxisType | undefined,\n  tooltipAxisRange: AxisRange | undefined,\n  tooltipTicks: ReadonlyArray<TickItem> | undefined,\n  orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,\n  offset: ChartOffsetInternal,\n): ActiveTooltipProps | undefined => {\n  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n    return undefined;\n  }\n  if (!isInCartesianRange(chartEvent, offset)) {\n    return undefined;\n  }\n  const pos: number | undefined = calculateCartesianTooltipPos(chartEvent, layout);\n\n  const activeIndex = calculateActiveTickIndex(\n    pos,\n    orderedTooltipTicks,\n    tooltipTicks,\n    tooltipAxisType,\n    tooltipAxisRange,\n  );\n\n  const activeCoordinate = getActiveCartesianCoordinate(layout, tooltipTicks, activeIndex, chartEvent);\n\n  return { activeIndex: String(activeIndex), activeCoordinate };\n};\n\nconst combineActivePolarProps = (\n  chartEvent: ChartPointer | undefined,\n  layout: PolarLayout,\n  polarViewBox: PolarViewBoxRequired | undefined,\n  tooltipAxisType: AxisType | undefined,\n  tooltipAxisRange: AxisRange | undefined,\n  tooltipTicks: ReadonlyArray<TickItem> | undefined,\n  orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,\n): ActiveTooltipProps | undefined => {\n  if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {\n    return undefined;\n  }\n  const rangeObj = inRangeOfSector(chartEvent, polarViewBox);\n  if (!rangeObj) {\n    return undefined;\n  }\n  const pos: number | undefined = calculatePolarTooltipPos(rangeObj, layout);\n\n  const activeIndex = calculateActiveTickIndex(\n    pos,\n    orderedTooltipTicks,\n    tooltipTicks,\n    tooltipAxisType,\n    tooltipAxisRange,\n  );\n\n  const activeCoordinate: PolarCoordinate = getActivePolarCoordinate(layout, tooltipTicks, activeIndex, rangeObj);\n\n  return { activeIndex: String(activeIndex), activeCoordinate };\n};\n\nexport const combineActiveProps = (\n  chartEvent: ChartPointer | undefined,\n  layout: CartesianLayout | PolarLayout | undefined,\n  polarViewBox: PolarViewBoxRequired | undefined,\n  tooltipAxisType: AxisType | undefined,\n  tooltipAxisRange: AxisRange | undefined,\n  tooltipTicks: ReadonlyArray<TickItem> | undefined,\n  orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,\n  offset: ChartOffsetInternal,\n): ActiveTooltipProps | undefined => {\n  if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n    return undefined;\n  }\n  if (layout === 'horizontal' || layout === 'vertical') {\n    return combineActiveCartesianProps(\n      chartEvent,\n      layout,\n      tooltipAxisType,\n      tooltipAxisRange,\n      tooltipTicks,\n      orderedTooltipTicks,\n      offset,\n    );\n  }\n  return combineActivePolarProps(\n    chartEvent,\n    layout,\n    polarViewBox,\n    tooltipAxisType,\n    tooltipAxisRange,\n    tooltipTicks,\n    orderedTooltipTicks,\n  );\n};\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../state/store';\nimport { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';\n\nimport { DefaultZIndexes } from './DefaultZIndexes';\n\n/**\n * Given a zIndex, returns the corresponding portal element reference.\n * If no zIndex is provided or if the zIndex is not registered, returns undefined.\n *\n * It also returns undefined in case the z-index portal has not been rendered yet.\n */\nexport const selectZIndexPortalElement: (\n  state: RechartsRootState,\n  zIndex: number | undefined,\n  isPanorama: boolean,\n) => Element | undefined = createSelector(\n  (state: RechartsRootState) => state.zIndex.zIndexMap,\n  (_: RechartsRootState, zIndex: number | undefined) => zIndex,\n  (_: RechartsRootState, _zIndex: number | undefined, isPanorama: boolean) => isPanorama,\n  (zIndexMap, zIndex, isPanorama) => {\n    if (zIndex == null) {\n      return undefined;\n    }\n    const entry = zIndexMap[zIndex];\n    if (entry == null) {\n      return undefined;\n    }\n    if (isPanorama) {\n      return entry.panoramaElement;\n    }\n    return entry.element;\n  },\n);\n\nexport const selectAllRegisteredZIndexes = createSelector(\n  (state: RechartsRootState) => state.zIndex.zIndexMap,\n  zIndexMap => {\n    const allNumbers = Object.keys(zIndexMap)\n      .map(zIndexStr => parseInt(zIndexStr, 10))\n      .concat(Object.values(DefaultZIndexes));\n    const uniqueNumbers = Array.from(new Set(allNumbers));\n    return uniqueNumbers.sort((a, b) => a - b);\n  },\n  {\n    memoizeOptions: {\n      resultEqualityCheck: arrayContentsAreEqualCheck,\n    },\n  },\n);\n","/**\n * This slice contains a registry of z-index values for various components.\n * The state is a map from z-index numbers to element references.\n */\nimport { createSlice, PayloadAction, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\ntype ZIndexEntry = {\n  /**\n   * Reference to the DOM element that corresponds to this z-index.\n   * This element is used to create a React portal for rendering components at this z-index.\n   *\n   * If undefined, it means no element is currently registered for this z-index,\n   * and registration is in progress. If that happens, wait for the next render cycle.\n   */\n  element: Element | undefined;\n  /**\n   * Panorama items can't mix with normal items in the same z-index layer,\n   * because they are rendered in a different SVG element.\n   * So we need to have a separate element reference for panorama z-index portals.\n   */\n  panoramaElement: Element | undefined;\n  consumers: number;\n};\n\ntype ZIndexState = {\n  zIndexMap: Record<number, ZIndexEntry>;\n};\n\nconst seed: ZIndexState['zIndexMap'] = {};\n\nconst initialState: ZIndexState = {\n  zIndexMap: Object.values(DefaultZIndexes).reduce(\n    (acc: ZIndexState['zIndexMap'], current: number): ZIndexState['zIndexMap'] => ({\n      ...acc,\n      [current]: {\n        element: undefined,\n        panoramaElement: undefined,\n        consumers: 0,\n      },\n    }),\n    seed,\n  ),\n};\n\nconst defaultZIndexSet = new Set<number>(Object.values(DefaultZIndexes));\nfunction isDefaultZIndex(zIndex: number): boolean {\n  return defaultZIndexSet.has(zIndex);\n}\n\nconst zIndexSlice = createSlice({\n  name: 'zIndex',\n  initialState,\n  reducers: {\n    registerZIndexPortal: {\n      reducer: (state, action: PayloadAction<{ zIndex: number }>) => {\n        const { zIndex } = action.payload;\n        if (state.zIndexMap[zIndex]) {\n          state.zIndexMap[zIndex].consumers += 1;\n        } else {\n          state.zIndexMap[zIndex] = {\n            consumers: 1,\n            element: undefined,\n            panoramaElement: undefined,\n          };\n        }\n      },\n      prepare: prepareAutoBatched<{ zIndex: number }>(),\n    },\n    unregisterZIndexPortal: {\n      reducer: (state, action: PayloadAction<{ zIndex: number }>) => {\n        const { zIndex } = action.payload;\n        if (state.zIndexMap[zIndex]) {\n          state.zIndexMap[zIndex].consumers -= 1;\n          /*\n           * Garbage collect unused z-index entries, except for default z-indexes.\n           * Default z-indexes are always rendered, regardless of whether there are consumers or not.\n           * And because of that, even if we delete this entry, the ZIndexPortal provider will still be rendered\n           * and React is not going to re-create it, and it won't re-register the element ID.\n           * So let's not delete default z-index entries.\n           */\n          if (state.zIndexMap[zIndex].consumers <= 0 && !isDefaultZIndex(zIndex)) {\n            delete state.zIndexMap[zIndex];\n          }\n        }\n      },\n      prepare: prepareAutoBatched<{ zIndex: number }>(),\n    },\n    registerZIndexPortalElement: {\n      reducer: (state, action: PayloadAction<{ zIndex: number; element: Element; isPanorama: boolean }>) => {\n        const { zIndex, element, isPanorama } = action.payload;\n        if (state.zIndexMap[zIndex]) {\n          if (isPanorama) {\n            state.zIndexMap[zIndex].panoramaElement = castDraft(element);\n          } else {\n            state.zIndexMap[zIndex].element = castDraft(element);\n          }\n        } else {\n          state.zIndexMap[zIndex] = {\n            consumers: 0,\n            element: isPanorama ? undefined : castDraft(element),\n            panoramaElement: isPanorama ? castDraft(element) : undefined,\n          };\n        }\n      },\n      prepare: prepareAutoBatched<{ zIndex: number; element: Element; isPanorama: boolean }>(),\n    },\n    unregisterZIndexPortalElement: {\n      reducer: (state, action: PayloadAction<{ zIndex: number; isPanorama: boolean }>) => {\n        const { zIndex } = action.payload;\n        if (state.zIndexMap[zIndex]) {\n          if (action.payload.isPanorama) {\n            state.zIndexMap[zIndex].panoramaElement = undefined;\n          } else {\n            state.zIndexMap[zIndex].element = undefined;\n          }\n        }\n      },\n      prepare: prepareAutoBatched<{ zIndex: number; isPanorama: boolean }>(),\n    },\n  },\n});\n\nexport const {\n  registerZIndexPortal,\n  unregisterZIndexPortal,\n  registerZIndexPortalElement,\n  unregisterZIndexPortalElement,\n} = zIndexSlice.actions;\n\nexport const zIndexReducer = zIndexSlice.reducer;\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { noop } from '../util/DataUtils';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectZIndexPortalElement } from './zIndexSelectors';\nimport { registerZIndexPortal, unregisterZIndexPortal } from '../state/zIndexSlice';\nimport { useIsInChartContext } from '../context/chartLayoutContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\n/**\n * @since 3.4\n */\nexport interface ZIndexable {\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 0\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\ntype ZIndexLayerProps = {\n  /**\n   * Z-Index of this component and its children.\n   *\n   * The higher the value, the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   *\n   * If `undefined` or `0`, the content is rendered in the default layer without portals.\n   */\n  zIndex: number | undefined;\n  /**\n   * The content to render inside this zIndex layer.\n   * Undefined children are allowed and will render nothing and will still report the zIndex to the portal system.\n   */\n  children?: React.ReactNode;\n};\n\n/**\n * A layer that renders its children into a portal corresponding to the given zIndex.\n * We can't use regular CSS `z-index` because SVG does not support it.\n * So instead, we create separate DOM nodes for each zIndex layer\n * and render the children into the corresponding DOM node using React portals.\n *\n * This component must be used inside a Chart component.\n *\n * @param zIndex numeric zIndex value, higher values are rendered on top of lower values\n * @param children the content to render inside this zIndex layer\n *\n * @since 3.4\n */\nexport function ZIndexLayer({ zIndex, children }: ZIndexLayerProps) {\n  /*\n   * If we are outside of chart, then we can't rely on the zIndex portal state,\n   * so we just render normally.\n   */\n  const isInChartContext = useIsInChartContext();\n  /*\n   * If zIndex is undefined then we render normally without portals.\n   * Also, if zIndex is 0, we render normally without portals,\n   * because 0 is the default layer that does not need a portal.\n   */\n  const shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;\n\n  const isPanorama = useIsPanorama();\n\n  const dispatch = useAppDispatch();\n  useLayoutEffect(() => {\n    if (!shouldRenderInPortal) {\n      // Nothing to do. We have to call the hook because of the rules of hooks.\n      return noop;\n    }\n    /*\n     * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,\n     * but we allow users to define any zIndex at any time), we need to register\n     * the requested zIndex in the global store. This way, the ZIndexPortals component\n     * can render the corresponding portals and only the requested ones.\n     */\n    dispatch(registerZIndexPortal({ zIndex }));\n    return () => {\n      dispatch(unregisterZIndexPortal({ zIndex }));\n    };\n  }, [dispatch, zIndex, shouldRenderInPortal]);\n\n  const portalElement: Element | undefined = useAppSelector(state =>\n    selectZIndexPortalElement(state, zIndex, isPanorama),\n  );\n\n  if (!shouldRenderInPortal) {\n    // If no zIndex is provided or zIndex is 0, render normally without portals\n    return children;\n  }\n\n  if (!portalElement) {\n    /*\n     * If we don't have a portal element yet, this means that the registration\n     * has not been processed yet by the ZIndexPortals component.\n     * So here we render null and wait for the next render cycle.\n     */\n    return null;\n  }\n\n  return createPortal(children, portalElement);\n}\n","import * as React from 'react';\nimport { cloneElement, createElement, isValidElement, ReactElement, SVGProps } from 'react';\nimport { clsx } from 'clsx';\nimport {\n  ChartOffsetInternal,\n  Coordinate,\n  isPolarCoordinate,\n  LayoutType,\n  PolarCoordinate,\n  TooltipEventType,\n} from '../util/types';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { useChartLayout, useOffsetInternal } from '../context/chartLayoutContext';\nimport { useTooltipAxisBandSize } from '../context/useTooltipAxis';\nimport { useChartName } from '../state/selectors/selectors';\nimport { TooltipIndex, TooltipPayload } from '../state/tooltipSlice';\nimport { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * If set false, no cursor will be drawn when tooltip is active.\n * If set an object, the option is the configuration of cursor.\n * If set a React element, the option is the custom react element of drawing cursor\n */\nexport type CursorDefinition = boolean | ReactElement | SVGProps<SVGElement>;\n\nexport interface CursorProps extends ZIndexable {\n  cursor: CursorDefinition;\n  tooltipEventType: TooltipEventType;\n  coordinate: Coordinate | PolarCoordinate | undefined;\n  payload: TooltipPayload;\n  index: TooltipIndex | undefined;\n}\n\nexport type CursorConnectedProps = CursorProps & {\n  tooltipAxisBandSize: number;\n  layout: LayoutType;\n  offset: ChartOffsetInternal;\n  chartName: string;\n};\n\nfunction RenderCursor({\n  cursor,\n  cursorComp,\n  cursorProps,\n}: {\n  cursor: CursorDefinition;\n  cursorComp: React.ComponentType<any>;\n  cursorProps: any;\n}) {\n  if (isValidElement(cursor)) {\n    return cloneElement(cursor, cursorProps);\n  }\n  return createElement(cursorComp, cursorProps);\n}\n\nexport function CursorInternal(props: CursorConnectedProps) {\n  const { coordinate, payload, index, offset, tooltipAxisBandSize, layout, cursor, tooltipEventType, chartName } =\n    props;\n\n  // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n  const activeCoordinate = coordinate;\n  const activePayload = payload;\n  const activeTooltipIndex = index;\n  if (!cursor || !activeCoordinate || (chartName !== 'ScatterChart' && tooltipEventType !== 'axis')) {\n    return null;\n  }\n  let restProps, cursorComp: React.ComponentType<any>, preferredZIndex: number;\n\n  if (chartName === 'ScatterChart') {\n    restProps = activeCoordinate;\n    cursorComp = Cross;\n    preferredZIndex = DefaultZIndexes.cursorLine;\n  } else if (chartName === 'BarChart') {\n    restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n    cursorComp = Rectangle;\n    preferredZIndex = DefaultZIndexes.cursorRectangle;\n  } else if (layout === 'radial' && isPolarCoordinate(activeCoordinate)) {\n    const { cx, cy, radius, startAngle, endAngle } = getRadialCursorPoints(activeCoordinate);\n    restProps = {\n      cx,\n      cy,\n      startAngle,\n      endAngle,\n      innerRadius: radius,\n      outerRadius: radius,\n    };\n    cursorComp = Sector;\n    preferredZIndex = DefaultZIndexes.cursorLine;\n  } else {\n    restProps = { points: getCursorPoints(layout, activeCoordinate, offset) };\n    cursorComp = Curve;\n    preferredZIndex = DefaultZIndexes.cursorLine;\n  }\n\n  const extraClassName: string | undefined =\n    typeof cursor === 'object' && 'className' in cursor ? cursor.className : undefined;\n\n  const cursorProps = {\n    stroke: '#ccc',\n    pointerEvents: 'none',\n    ...offset,\n    ...restProps,\n    ...svgPropertiesNoEventsFromUnknown(cursor),\n    payload: activePayload,\n    payloadIndex: activeTooltipIndex,\n    className: clsx('recharts-tooltip-cursor', extraClassName),\n  };\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex ?? preferredZIndex}>\n      <RenderCursor cursor={cursor} cursorComp={cursorComp} cursorProps={cursorProps} />\n    </ZIndexLayer>\n  );\n}\n\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props: CursorProps) {\n  const tooltipAxisBandSize = useTooltipAxisBandSize();\n  const offset = useOffsetInternal();\n  const layout = useChartLayout();\n  const chartName = useChartName();\n\n  if (tooltipAxisBandSize == null || offset == null || layout == null || chartName == null) {\n    return null;\n  }\n\n  return (\n    <CursorInternal\n      {...props}\n      offset={offset}\n      layout={layout}\n      tooltipAxisBandSize={tooltipAxisBandSize}\n      chartName={chartName}\n    />\n  );\n}\n","import { ChartCoordinate, ChartOffsetInternal, LayoutType } from '../types';\n\nexport type CursorRectangle = {\n  stroke: string;\n  fill: string;\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n};\n\nexport function getCursorRectangle(\n  layout: LayoutType,\n  activeCoordinate: ChartCoordinate,\n  offset: ChartOffsetInternal,\n  tooltipAxisBandSize: number,\n): CursorRectangle {\n  const halfSize = tooltipAxisBandSize / 2;\n\n  return {\n    stroke: 'none',\n    fill: '#ccc',\n    x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n    y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n    width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n    height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize,\n  };\n}\n","import { createContext, useContext } from 'react';\n\nexport const TooltipPortalContext = createContext<HTMLElement | null>(null);\n\nexport const useTooltipPortal = (): HTMLElement | null => useContext(TooltipPortalContext);\n","import EventEmitter from 'eventemitter3';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { TooltipSyncState } from '../state/tooltipSlice';\nimport { BrushStartEndIndex } from '../context/brushUpdateContext';\n\nconst eventCenter: EventEmitter<EventTypes> = new EventEmitter();\n\nexport { eventCenter };\n\nexport const TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';\n\nexport const BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';\n\ninterface EventTypes {\n  [TOOLTIP_SYNC_EVENT](syncId: number | string, data: PayloadAction<TooltipSyncState>, emitter: symbol): void;\n  [BRUSH_SYNC_EVENT](syncId: number | string, data: BrushStartEndIndex, emitter: symbol): void;\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport { TooltipEventType } from '../util/types';\nimport { TooltipIndex, TooltipPayloadSearcher } from './tooltipSlice';\nimport { isNan } from '../util/DataUtils';\n\n/**\n * These chart options are decided internally, by Recharts,\n * and will not change during the lifetime of the chart.\n *\n * Changing these options can be done by swapping the root element\n * which will make a brand-new Redux store.\n *\n * If you want to store options that can be changed by the user,\n * use UpdatableChartOptions in rootPropsSlice.ts.\n */\nexport type ChartOptions = {\n  chartName: string;\n  defaultTooltipEventType: TooltipEventType;\n  validateTooltipEventTypes?: ReadonlyArray<TooltipEventType>;\n  // Should this instead be a property of a graphical item? Do we want to mix items with different data types in one chart?\n  tooltipPayloadSearcher: TooltipPayloadSearcher;\n  /**\n   * We use this to identify which chart is sending events when synchronising.\n   * Without it, we can't tell the difference between an action that arrived from another chart\n   * and an action that was dispatched by the chart itself.\n   */\n  eventEmitter: symbol | undefined;\n};\n\nexport const arrayTooltipSearcher: TooltipPayloadSearcher = (\n  data: unknown,\n  strIndex: TooltipIndex,\n): unknown | undefined => {\n  if (!strIndex) return undefined;\n  if (!Array.isArray(data)) return undefined;\n  const numIndex = Number.parseInt(strIndex, 10);\n  if (isNan(numIndex)) {\n    return undefined;\n  }\n  return data[numIndex];\n};\n\nconst initialState: ChartOptions = {\n  chartName: '',\n  tooltipPayloadSearcher: () => undefined,\n  eventEmitter: undefined,\n  defaultTooltipEventType: 'axis',\n};\n\nconst optionsSlice = createSlice({\n  name: 'options',\n  initialState,\n  reducers: {\n    createEventEmitter: (state: ChartOptions) => {\n      if (state.eventEmitter == null) {\n        state.eventEmitter = Symbol('rechartsEventEmitter');\n      }\n    },\n  },\n});\n\nexport const optionsReducer = optionsSlice.reducer;\n\nexport const { createEventEmitter } = optionsSlice.actions;\n","import { RechartsRootState } from '../state/store';\nimport { TooltipSyncState } from '../state/tooltipSlice';\n\nexport function selectSynchronisedTooltipState(state: RechartsRootState): TooltipSyncState {\n  return state.tooltip.syncInteraction;\n}\n","import { PayloadAction, createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { BrushStartEndIndex } from '../context/brushUpdateContext';\n\n/**\n * This is the data that's coming through main chart `data` prop\n * Recharts is very flexible in what it accepts so the type is very flexible too.\n * This will typically be an object, and various components will provide various `dataKey`\n * that dictates how to pull data from that object.\n *\n * TL;DR: before dataKey\n *\n * @inline\n */\nexport type ChartData = ReadonlyArray<unknown>;\n\n/**\n * So this is the same unknown type as ChartData but this is after the dataKey has been applied.\n * We still don't know what the type is - that depends on what exactly it was before the dataKey application,\n * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.\n *\n * TL;DR: ChartData after dataKey.\n */\nexport type AppliedChartData = ReadonlyArray<{ value: unknown }>;\n\nexport type ChartDataState = {\n  chartData: ChartData | undefined;\n  /**\n   * store a copy of chart data after it has been processed by each chart's specific\n   * compute functions. TODO: add other charts besides Sankey\n   */\n  computedData: unknown | undefined;\n  /**\n   * Using Brush, users can choose where they want to zoom in.\n   * This is zero-based index of the starting data point.\n   */\n  dataStartIndex: number;\n  /**\n   * Using Brush, users can choose where they want to zoom in.\n   * This is zero-based index of the last data point.\n   */\n  dataEndIndex: number;\n};\n\nexport const initialChartDataState: ChartDataState = {\n  chartData: undefined,\n  computedData: undefined,\n  dataStartIndex: 0,\n  dataEndIndex: 0,\n};\n\ntype BrushStartEndIndexActionPayload = Partial<BrushStartEndIndex>;\n\nconst chartDataSlice = createSlice({\n  name: 'chartData',\n  initialState: initialChartDataState,\n  reducers: {\n    setChartData(state, action: PayloadAction<ChartData | undefined>) {\n      state.chartData = castDraft(action.payload);\n      if (action.payload == null) {\n        state.dataStartIndex = 0;\n        state.dataEndIndex = 0;\n        return;\n      }\n      if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) {\n        state.dataEndIndex = action.payload.length - 1;\n      }\n    },\n    setComputedData(state, action: PayloadAction<unknown | undefined>) {\n      state.computedData = action.payload;\n    },\n    setDataStartEndIndexes(state, action: PayloadAction<BrushStartEndIndexActionPayload>) {\n      const { startIndex, endIndex } = action.payload;\n      if (startIndex != null) {\n        state.dataStartIndex = startIndex;\n      }\n      if (endIndex != null) {\n        state.dataEndIndex = endIndex;\n      }\n    },\n  },\n});\n\nexport const { setChartData, setDataStartEndIndexes, setComputedData } = chartDataSlice.actions;\n\nexport const chartDataReducer = chartDataSlice.reducer;\n","import { useEffect } from 'react';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectEventEmitter, selectSyncId, selectSyncMethod } from '../state/selectors/rootPropsSelectors';\nimport { BRUSH_SYNC_EVENT, eventCenter, TOOLTIP_SYNC_EVENT } from '../util/Events';\nimport { createEventEmitter } from '../state/optionsSlice';\nimport { setSyncInteraction, TooltipIndex, TooltipSyncState } from '../state/tooltipSlice';\nimport { selectTooltipDataKey } from '../state/selectors/selectors';\nimport { Coordinate, TickItem, TooltipEventType } from '../util/types';\nimport { TooltipTrigger } from '../chart/types';\nimport { selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\nimport { selectSynchronisedTooltipState } from './syncSelectors';\nimport { useChartLayout, useViewBox } from '../context/chartLayoutContext';\nimport { BrushStartEndIndex } from '../context/brushUpdateContext';\nimport { setDataStartEndIndexes } from '../state/chartDataSlice';\nimport { ActiveLabel, MouseHandlerDataParam } from './types';\nimport { noop } from '../util/DataUtils';\n\nfunction useTooltipSyncEventsListener() {\n  const mySyncId = useAppSelector(selectSyncId);\n  const myEventEmitter = useAppSelector(selectEventEmitter);\n  const dispatch = useAppDispatch();\n  const syncMethod = useAppSelector(selectSyncMethod);\n  const tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n  const layout = useChartLayout();\n  const viewBox = useViewBox();\n\n  const className = useAppSelector(state => state.rootProps.className);\n  useEffect(() => {\n    if (mySyncId == null) {\n      // This chart is not synchronised with any other chart so we don't need to listen for any events.\n      return noop;\n    }\n\n    const listener = (incomingSyncId: number | string, action: PayloadAction<TooltipSyncState>, emitter: symbol) => {\n      if (myEventEmitter === emitter) {\n        // We don't want to dispatch actions that we sent ourselves.\n        return;\n      }\n      if (mySyncId !== incomingSyncId) {\n        // This event is not for this chart\n        return;\n      }\n      if (syncMethod === 'index') {\n        if (viewBox && action?.payload?.coordinate && action.payload.sourceViewBox) {\n          const { x, y, ...otherCoordinateProps } = action.payload.coordinate;\n          const { x: sourceX, y: sourceY, width: sourceWidth, height: sourceHeight } = action.payload.sourceViewBox;\n\n          const scaledCoordinate = {\n            ...otherCoordinateProps,\n            x: viewBox.x + (sourceWidth ? (x - sourceX) / sourceWidth : 0) * viewBox.width,\n            y: viewBox.y + (sourceHeight ? (y - sourceY) / sourceHeight : 0) * viewBox.height,\n          };\n\n          dispatch({\n            ...action,\n            payload: {\n              ...action.payload,\n              coordinate: scaledCoordinate,\n            },\n          });\n        } else {\n          dispatch(action);\n        }\n        return;\n      }\n\n      if (tooltipTicks == null) {\n        // for the other two sync methods, we need the ticks to be available\n        return;\n      }\n\n      let activeTick: TickItem | undefined;\n      if (typeof syncMethod === 'function') {\n        /*\n         * This is what the data shape in 2.x CategoricalChartState used to look like.\n         * In 3.x we store things differently but let's try to keep the old shape for compatibility.\n         */\n        const syncMethodParam: MouseHandlerDataParam = {\n          activeTooltipIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n          isTooltipActive: action.payload.active,\n          activeIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n          activeLabel: action.payload.label,\n          activeDataKey: action.payload.dataKey,\n          activeCoordinate: action.payload.coordinate,\n        };\n        // Call a callback function. If there is an application specific algorithm\n        const activeTooltipIndex = syncMethod(tooltipTicks, syncMethodParam);\n        activeTick = tooltipTicks[activeTooltipIndex];\n      } else if (syncMethod === 'value') {\n        // labels are always strings, tick.value might be a string or a number, depending on axis type\n        activeTick = tooltipTicks.find(tick => String(tick.value) === action.payload.label);\n      }\n\n      const { coordinate } = action.payload;\n\n      if (activeTick == null || action.payload.active === false || coordinate == null || viewBox == null) {\n        dispatch(\n          setSyncInteraction({\n            active: false,\n            coordinate: undefined,\n            dataKey: undefined,\n            index: null,\n            label: undefined,\n            sourceViewBox: undefined,\n            graphicalItemId: undefined,\n          }),\n        );\n        return;\n      }\n\n      const { x, y } = coordinate;\n      const validateChartX = Math.min(x, viewBox.x + viewBox.width);\n      const validateChartY = Math.min(y, viewBox.y + viewBox.height);\n      const activeCoordinate: Coordinate = {\n        x: layout === 'horizontal' ? activeTick.coordinate : validateChartX,\n        y: layout === 'horizontal' ? validateChartY : activeTick.coordinate,\n      };\n\n      const syncAction = setSyncInteraction({\n        active: action.payload.active,\n        coordinate: activeCoordinate,\n        dataKey: action.payload.dataKey,\n        index: String(activeTick.index),\n        label: action.payload.label,\n        sourceViewBox: action.payload.sourceViewBox,\n        graphicalItemId: action.payload.graphicalItemId,\n      });\n      dispatch(syncAction);\n    };\n    eventCenter.on(TOOLTIP_SYNC_EVENT, listener);\n\n    return () => {\n      eventCenter.off(TOOLTIP_SYNC_EVENT, listener);\n    };\n  }, [className, dispatch, myEventEmitter, mySyncId, syncMethod, tooltipTicks, layout, viewBox]);\n}\n\nfunction useBrushSyncEventsListener() {\n  const mySyncId = useAppSelector(selectSyncId);\n  const myEventEmitter = useAppSelector(selectEventEmitter);\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    if (mySyncId == null) {\n      // This chart is not synchronised with any other chart so we don't need to listen for any events.\n      return noop;\n    }\n\n    const listener = (incomingSyncId: number | string, action: BrushStartEndIndex, emitter: symbol) => {\n      if (myEventEmitter === emitter) {\n        // We don't want to dispatch actions that we sent ourselves.\n        return;\n      }\n      if (mySyncId === incomingSyncId) {\n        dispatch(setDataStartEndIndexes(action));\n      }\n    };\n    eventCenter.on(BRUSH_SYNC_EVENT, listener);\n\n    return () => {\n      eventCenter.off(BRUSH_SYNC_EVENT, listener);\n    };\n  }, [dispatch, myEventEmitter, mySyncId]);\n}\n\n/**\n * Will receive synchronisation events from other charts.\n *\n * Reads syncMethod from state and decides how to synchronise the tooltip based on that.\n *\n * @returns void\n */\nexport function useSynchronisedEventsFromOtherCharts() {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(createEventEmitter());\n  }, [dispatch]);\n\n  useTooltipSyncEventsListener();\n  useBrushSyncEventsListener();\n}\n\n/**\n * Will send events to other charts.\n * If syncId is undefined, no events will be sent.\n *\n * This ignores the syncMethod, because that is set and computed on the receiving end.\n *\n * @param tooltipEventType from Tooltip\n * @param trigger from Tooltip\n * @param activeCoordinate from state\n * @param activeLabel from state\n * @param activeIndex from state\n * @param isTooltipActive from state\n * @returns void\n */\nexport function useTooltipChartSynchronisation(\n  tooltipEventType: TooltipEventType | undefined,\n  trigger: TooltipTrigger,\n  activeCoordinate: Coordinate | undefined,\n  activeLabel: ActiveLabel,\n  activeIndex: TooltipIndex | undefined,\n  isTooltipActive: boolean,\n) {\n  const activeDataKey = useAppSelector(state => selectTooltipDataKey(state, tooltipEventType, trigger));\n  const eventEmitterSymbol = useAppSelector(selectEventEmitter);\n  const syncId = useAppSelector(selectSyncId);\n  const syncMethod = useAppSelector(selectSyncMethod);\n  const tooltipState = useAppSelector(selectSynchronisedTooltipState);\n  const isReceivingSynchronisation = tooltipState?.active;\n  const viewBox = useViewBox();\n\n  useEffect(() => {\n    if (isReceivingSynchronisation) {\n      /*\n       * This chart currently has active tooltip, synchronised from another chart.\n       * Let's not send any outgoing synchronisation events while that's happening\n       * to avoid infinite loops.\n       */\n      return;\n    }\n    if (syncId == null) {\n      /*\n       * syncId is not set, means that this chart is not synchronised with any other chart,\n       * means we don't need to send synchronisation events\n       */\n      return;\n    }\n    if (eventEmitterSymbol == null) {\n      /*\n       * When using Recharts internal hooks and selectors outside charts context,\n       * these properties will be undefined. Let's return silently instead of throwing an error.\n       */\n      return;\n    }\n    const syncAction = setSyncInteraction({\n      active: isTooltipActive,\n      coordinate: activeCoordinate,\n      dataKey: activeDataKey,\n      index: activeIndex,\n      label: typeof activeLabel === 'number' ? String(activeLabel) : activeLabel,\n      sourceViewBox: viewBox,\n      graphicalItemId: undefined,\n    });\n    eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n  }, [\n    isReceivingSynchronisation,\n    activeCoordinate,\n    activeDataKey,\n    activeIndex,\n    activeLabel,\n    eventEmitterSymbol,\n    syncId,\n    syncMethod,\n    isTooltipActive,\n    viewBox,\n  ]);\n}\n\nexport function useBrushChartSynchronisation() {\n  const syncId = useAppSelector(selectSyncId);\n  const eventEmitterSymbol = useAppSelector(selectEventEmitter);\n  const brushStartIndex = useAppSelector(state => state.chartData.dataStartIndex);\n  const brushEndIndex = useAppSelector(state => state.chartData.dataEndIndex);\n\n  useEffect(() => {\n    if (syncId == null || brushStartIndex == null || brushEndIndex == null || eventEmitterSymbol == null) {\n      return;\n    }\n    const syncAction: BrushStartEndIndex = { startIndex: brushStartIndex, endIndex: brushEndIndex };\n    eventCenter.emit(BRUSH_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n  }, [brushEndIndex, brushStartIndex, eventEmitterSymbol, syncId]);\n}\n","import * as React from 'react';\nimport { CSSProperties, ReactElement, ReactNode, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport {\n  DefaultTooltipContent,\n  NameType,\n  Payload,\n  Props as DefaultTooltipContentProps,\n  ValueType,\n} from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\n\nimport { getUniqPayload, UniqueOption } from '../util/payload/getUniqPayload';\nimport { AllowInDimension, AnimationDuration, AnimationTiming, Coordinate } from '../util/types';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useElementOffset } from '../util/useElementOffset';\nimport { Cursor, CursorDefinition } from './Cursor';\nimport {\n  selectActiveCoordinate,\n  selectActiveLabel,\n  selectIsTooltipActive,\n  selectTooltipPayload,\n} from '../state/selectors/selectors';\nimport { useTooltipPortal } from '../context/tooltipPortalContext';\nimport { TooltipTrigger } from '../chart/types';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setTooltipSettingsState, TooltipIndex, TooltipPayload, TooltipPayloadEntry } from '../state/tooltipSlice';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { useTooltipChartSynchronisation } from '../synchronisation/useChartSynchronisation';\nimport { useTooltipEventType } from '../state/selectors/selectTooltipEventType';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\nexport type ContentType<TValue extends ValueType, TName extends NameType> =\n  | ReactElement\n  | ((props: TooltipContentProps<TValue, TName>) => ReactNode);\n\nfunction defaultUniqBy(entry: Payload<ValueType, NameType>) {\n  return entry.dataKey;\n}\n\nexport type TooltipContentProps<TValue extends ValueType, TName extends NameType> = TooltipProps<TValue, TName> & {\n  label?: string | number;\n  payload: ReadonlyArray<any>;\n  coordinate: Coordinate | undefined;\n  active: boolean;\n  accessibilityLayer: boolean;\n  activeIndex: TooltipIndex | undefined;\n};\n\nfunction renderContent<TValue extends ValueType, TName extends NameType>(\n  content: ContentType<TValue, TName> | undefined,\n  props: TooltipContentProps<TValue, TName>,\n): ReactNode {\n  if (React.isValidElement(content)) {\n    return React.cloneElement(content, props);\n  }\n  if (typeof content === 'function') {\n    return React.createElement(content as any, props);\n  }\n\n  return <DefaultTooltipContent {...props} />;\n}\n\ntype PropertiesReadFromContext = 'viewBox' | 'active' | 'payload' | 'coordinate' | 'label' | 'accessibilityLayer';\n\nexport type TooltipProps<TValue extends ValueType, TName extends NameType> = Omit<\n  DefaultTooltipContentProps<TValue, TName>,\n  PropertiesReadFromContext\n> & {\n  /**\n   * If true, then Tooltip is always displayed, once an activeIndex is set by mouse over, or programmatically.\n   * If false, then Tooltip is never displayed.\n   * If undefined, Recharts will control when the Tooltip displays. This includes mouse and keyboard controls.\n   */\n  active?: boolean;\n  /**\n   * This option allows the tooltip to extend beyond the viewBox of the chart itself.\n   * @defaultValue {\"x\":false,\"y\":false}\n   */\n  allowEscapeViewBox?: AllowInDimension;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 400\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  /**\n   * Tooltip always attaches itself to the \"Tooltip\" axis. Which axis is it? Depends on the layout:\n   * - horizontal layout -> X axis\n   * - vertical layout -> Y axis\n   * - radial layout -> radial axis\n   * - centric layout -> angle axis\n   *\n   * Tooltip will use the default axis for the layout, unless you specify an axisId.\n   *\n   * @defaultValue 0\n   */\n  axisId?: AxisId;\n  /**\n   * Renders the content of the tooltip.\n   *\n   * This should return HTML elements, not SVG elements.\n   *\n   * - If not set, the {@link DefaultTooltipContent} component is used.\n   * - If set to a React element, this element will be cloned and extra props will be passed in.\n   * - If set to a function, the function will be called and should return HTML elements.\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/CustomContentOfTooltip/ Example with custom content}\n   */\n  content?: ContentType<TValue, TName>;\n  /**\n   * The style of tooltip content which is a dom element.\n   * @defaultValue {}\n   */\n  contentStyle?: CSSProperties;\n  /**\n   * If set false, no cursor will be drawn when tooltip is active.\n   * If set a object, the option is the configuration of cursor.\n   * If set a React element, the option is the custom react element of drawing cursor.\n   * @defaultValue true\n   */\n  cursor?: CursorDefinition;\n  defaultIndex?: number | TooltipIndex;\n  /**\n   * When an item of the payload has value null or undefined, this item won't be displayed.\n   * @defaultValue true\n   */\n  filterNull?: boolean;\n  /**\n   * Function to customize the value in the tooltip.\n   * If you return an array, the first entry will be the formatted \"value\", and the second entry will be the formatted \"name\"\n   */\n  formatter?: (\n    value: TValue,\n    name: TName,\n    item: Payload<TValue, TName>,\n    index: number,\n    payload: Payload<TValue, TName>[],\n  ) => ReactNode | [ReactNode, ReactNode];\n  /**\n   * If true, the tooltip will display information about hidden series.\n   * Defaults to false.\n   * Interacting with the hide property of Area, Bar, Line, Scatter.\n   *\n   * @defaultValue false\n   */\n  includeHidden?: boolean | undefined;\n  /**\n   * If set false, animation of tooltip will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  /**\n   * Sorts tooltip items.\n   * Defaults to 'name' which means it sorts alphabetically by graphical item `name` property.\n   * @defaultValue name\n   */\n  itemSorter?: 'dataKey' | 'value' | 'name' | ((item: Payload<TValue, TName>) => number | string | undefined);\n  /**\n   * The style of default tooltip content item which is a li element.\n   * @defaultValue {}\n   */\n  itemStyle?: CSSProperties;\n  /**\n   * The formatter function of label in tooltip.\n   */\n  labelFormatter?: (label: any, payload: Payload<TValue, TName>[]) => ReactNode;\n  /**\n   * The style of default tooltip label which is a p element.\n   * @defaultValue {}\n   */\n  labelStyle?: CSSProperties;\n  /**\n   * The offset size between the position of tooltip and the mouse cursor position.\n   * When a number is provided, the same offset is applied to both x and y axes.\n   *\n   * When a Coordinate object is provided, you can specify different offsets for each axis (x and y as numbers)\n   * @defaultValue 10\n   */\n  offset?: number | Coordinate;\n  payloadUniqBy?: UniqueOption<TooltipPayloadEntry>;\n  /**\n   * If portal is defined, then Tooltip will use this element as a target\n   * for rendering using React Portal: https://react.dev/reference/react-dom/createPortal\n   *\n   * If this is undefined then Tooltip renders inside the recharts-wrapper element.\n   */\n  portal?: HTMLElement | null;\n  /**\n   * If this field is set, the tooltip will be displayed at the specified position\n   * regardless of the mouse position.\n   *\n   * You can set a single field (x or y) and let the other field be calculated automatically based\n   * on the mouse position.\n   */\n  position?: Partial<Coordinate>;\n  /**\n   * @defaultValue {\"x\":false,\"y\":false}\n   */\n  reverseDirection?: AllowInDimension;\n  /**\n   * The separator between name and value.\n   * @defaultValue ' : '\n   */\n  separator?: string;\n  /**\n   * Defines whether the tooltip is reacting to the current data point,\n   * or to all data points at the current axis coordinate.\n   *\n   * - `true`: tooltip will appear on top of all bars on an axis tick.\n   * - `false`: tooltip will appear on individual bars.\n   *\n   * Different chart types allow different modes, and have different defaults.\n   *\n   * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}\n   */\n  shared?: boolean;\n  /**\n   * If `hover` then the Tooltip shows on mouse enter and hides on mouse leave.\n   *\n   * If `click` then the Tooltip shows after clicking and stays active.\n   *\n   * @defaultValue hover\n   */\n  trigger?: TooltipTrigger;\n  /**\n   * @defaultValue false\n   */\n  useTranslate3d?: boolean;\n  /**\n   * CSS styles to be applied to the wrapper `div` element.\n   */\n  wrapperStyle?: CSSProperties;\n};\n\nconst emptyPayload: TooltipPayload = [];\n\nexport const defaultTooltipProps = {\n  allowEscapeViewBox: { x: false, y: false },\n  animationDuration: 400,\n  animationEasing: 'ease',\n  axisId: 0,\n  contentStyle: {},\n  cursor: true,\n  filterNull: true,\n  includeHidden: false,\n  isAnimationActive: 'auto',\n  itemSorter: 'name',\n  itemStyle: {},\n  labelStyle: {},\n  offset: 10,\n  reverseDirection: { x: false, y: false },\n  separator: ' : ',\n  trigger: 'hover',\n  useTranslate3d: false,\n  wrapperStyle: {},\n} as const satisfies Partial<TooltipProps<any, any>>;\n\n/**\n * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.\n *\n * It can be configured to show information for individual data points or for all points at a specific axis coordinate.\n * The appearance and content of the tooltip can be customized via props.\n *\n * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}\n * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}\n *\n * @consumes CartesianChartContext\n * @consumes PolarChartContext\n * @consumes TooltipEntrySettings\n */\nexport function Tooltip<TValue extends ValueType, TName extends NameType>(outsideProps: TooltipProps<TValue, TName>) {\n  const props = resolveDefaultProps(outsideProps, defaultTooltipProps);\n  const {\n    active: activeFromProps,\n    allowEscapeViewBox,\n    animationDuration,\n    animationEasing,\n    content,\n    filterNull,\n    isAnimationActive,\n    offset,\n    payloadUniqBy,\n    position,\n    reverseDirection,\n    useTranslate3d,\n    wrapperStyle,\n    cursor,\n    shared,\n    trigger,\n    defaultIndex,\n    portal: portalFromProps,\n    axisId,\n  } = props;\n  const dispatch = useAppDispatch();\n  const defaultIndexAsString: string | null | undefined =\n    typeof defaultIndex === 'number' ? String(defaultIndex) : defaultIndex;\n\n  useEffect(() => {\n    dispatch(\n      setTooltipSettingsState({\n        shared,\n        trigger,\n        axisId,\n        active: activeFromProps,\n        defaultIndex: defaultIndexAsString,\n      }),\n    );\n  }, [dispatch, shared, trigger, axisId, activeFromProps, defaultIndexAsString]);\n\n  const viewBox = useViewBox();\n  const accessibilityLayer = useAccessibilityLayer();\n  const tooltipEventType = useTooltipEventType(shared);\n\n  const { activeIndex, isActive } =\n    useAppSelector(state => selectIsTooltipActive(state, tooltipEventType, trigger, defaultIndexAsString)) ?? {};\n\n  const payloadFromRedux = useAppSelector(state =>\n    selectTooltipPayload(state, tooltipEventType, trigger, defaultIndexAsString),\n  );\n\n  const labelFromRedux = useAppSelector(state =>\n    selectActiveLabel(state, tooltipEventType, trigger, defaultIndexAsString),\n  );\n\n  const coordinate: Coordinate | undefined = useAppSelector(state =>\n    selectActiveCoordinate(state, tooltipEventType, trigger, defaultIndexAsString),\n  );\n  const payload: TooltipPayload | undefined = payloadFromRedux;\n  const tooltipPortalFromContext = useTooltipPortal();\n  /*\n   * The user can set `active=true` on the Tooltip in which case the Tooltip will stay always active,\n   * or `active=false` in which case the Tooltip never shows.\n   *\n   * If the `active` prop is not defined then it will show and hide based on mouse or keyboard activity.\n   */\n  const finalIsActive: boolean = activeFromProps ?? isActive ?? false;\n  const [lastBoundingBox, updateBoundingBox] = useElementOffset([payload, finalIsActive]);\n  const finalLabel = tooltipEventType === 'axis' ? labelFromRedux : undefined;\n\n  useTooltipChartSynchronisation(tooltipEventType, trigger, coordinate, finalLabel, activeIndex, finalIsActive);\n\n  const tooltipPortal = portalFromProps ?? tooltipPortalFromContext;\n  if (tooltipPortal == null || viewBox == null || tooltipEventType == null) {\n    return null;\n  }\n\n  let finalPayload: TooltipPayload = payload ?? emptyPayload;\n  if (!finalIsActive) {\n    finalPayload = emptyPayload;\n  }\n\n  if (filterNull && finalPayload.length) {\n    finalPayload = getUniqPayload(\n      finalPayload.filter(entry => entry.value != null && (entry.hide !== true || props.includeHidden)),\n      payloadUniqBy,\n      defaultUniqBy,\n    );\n  }\n  const hasPayload = finalPayload.length > 0;\n\n  const tooltipElement = (\n    <TooltipBoundingBox\n      allowEscapeViewBox={allowEscapeViewBox}\n      animationDuration={animationDuration}\n      animationEasing={animationEasing}\n      isAnimationActive={isAnimationActive}\n      active={finalIsActive}\n      coordinate={coordinate}\n      hasPayload={hasPayload}\n      offset={offset}\n      position={position}\n      reverseDirection={reverseDirection}\n      useTranslate3d={useTranslate3d}\n      viewBox={viewBox}\n      wrapperStyle={wrapperStyle}\n      lastBoundingBox={lastBoundingBox}\n      innerRef={updateBoundingBox}\n      hasPortalFromProps={Boolean(portalFromProps)}\n    >\n      {renderContent(content, {\n        ...props,\n        payload: finalPayload,\n        label: finalLabel,\n        active: finalIsActive,\n        activeIndex,\n        coordinate,\n        accessibilityLayer,\n      })}\n    </TooltipBoundingBox>\n  );\n\n  return (\n    <>\n      {/* Tooltip the HTML element renders through a React portal so that it escapes clipping, and it renders on top of everything else */}\n      {createPortal(tooltipElement, tooltipPortal)}\n      {finalIsActive && (\n        <Cursor\n          cursor={cursor}\n          tooltipEventType={tooltipEventType}\n          coordinate={coordinate}\n          payload={finalPayload}\n          index={activeIndex}\n        />\n      )}\n    </>\n  );\n}\n","import type { FunctionComponent, SVGProps } from 'react';\n\nexport interface Props extends SVGProps<SVGElement> {\n  /**\n   * The fill color.\n   */\n  fill?: string;\n  /**\n   * The stroke color.\n   */\n  stroke?: string;\n}\n\n/**\n * Cell component used to define colors and styles of chart elements.\n *\n * This component is now deprecated and will be removed in Recharts 4.0.\n *\n * Please use the `shape` prop or `content` prop on the respective chart components\n * to customize the rendering of chart elements instead of using `Cell`.\n *\n * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}\n *\n * @deprecated\n * @consumes CellReader\n */\nexport const Cell: FunctionComponent<Props> = (_props: Props) => null;\n\nCell.displayName = 'Cell';\n","import { CSSProperties } from 'react';\nimport { Global } from './Global';\nimport { Size } from './types';\nimport { LRUCache } from './LRUCache';\n\nexport interface TextMeasurementConfig {\n  /** Maximum number of items to cache */\n  cacheSize: number;\n  /** Whether to enable caching */\n  enableCache: boolean;\n}\n\nconst defaultConfig: TextMeasurementConfig = {\n  cacheSize: 2000,\n  enableCache: true,\n};\n\nlet currentConfig = { ...defaultConfig };\n\nlet stringCache = new LRUCache<string, Size>(currentConfig.cacheSize);\nconst SPAN_STYLE = {\n  position: 'absolute',\n  top: '-20000px',\n  left: 0,\n  padding: 0,\n  margin: 0,\n  border: 'none',\n  whiteSpace: 'pre',\n};\nconst MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction createCacheKey(text: string | number, style: CSSProperties): string {\n  // Simple string concatenation for better performance than JSON.stringify\n  const fontSize = style.fontSize || '';\n  const fontFamily = style.fontFamily || '';\n  const fontWeight = style.fontWeight || '';\n  const fontStyle = style.fontStyle || '';\n  const letterSpacing = style.letterSpacing || '';\n  const textTransform = style.textTransform || '';\n\n  return `${text}|${fontSize}|${fontFamily}|${fontWeight}|${fontStyle}|${letterSpacing}|${textTransform}`;\n}\n\n/**\n * Measure text using DOM (accurate but slower)\n * @param text - The text to measure\n * @param style - CSS style properties to apply\n * @returns The size of the text\n */\nconst measureTextWithDOM = (text: string | number, style: CSSProperties): Size => {\n  try {\n    let measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n    if (!measurementSpan) {\n      measurementSpan = document.createElement('span');\n      measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n      measurementSpan.setAttribute('aria-hidden', 'true');\n      document.body.appendChild(measurementSpan);\n    }\n\n    // Apply styles directly without unnecessary object creation\n    Object.assign(measurementSpan.style, SPAN_STYLE, style);\n    measurementSpan.textContent = `${text}`;\n\n    const rect = measurementSpan.getBoundingClientRect();\n    return { width: rect.width, height: rect.height };\n  } catch {\n    return { width: 0, height: 0 };\n  }\n};\n\nexport const getStringSize = (text: string | number, style: CSSProperties = {}): Size => {\n  if (text === undefined || text === null || Global.isSsr) {\n    return { width: 0, height: 0 };\n  }\n\n  // If caching is disabled, measure directly\n  if (!currentConfig.enableCache) {\n    return measureTextWithDOM(text, style);\n  }\n\n  const cacheKey = createCacheKey(text, style);\n  const cachedResult = stringCache.get(cacheKey);\n\n  if (cachedResult) {\n    return cachedResult;\n  }\n\n  // Measure using DOM\n  const result = measureTextWithDOM(text, style);\n\n  // Store in LRU cache\n  stringCache.set(cacheKey, result);\n\n  return result;\n};\n\n/**\n * Configure text measurement behavior\n * @param config - Partial configuration to apply\n * @returns void\n */\nexport const configureTextMeasurement = (config: Partial<TextMeasurementConfig>): void => {\n  const newConfig = { ...currentConfig, ...config };\n\n  if (newConfig.cacheSize !== currentConfig.cacheSize) {\n    stringCache = new LRUCache<string, Size>(newConfig.cacheSize);\n  }\n\n  currentConfig = newConfig;\n};\n\n/**\n * Get current text measurement configuration\n * @returns Current configuration\n */\nexport const getTextMeasurementConfig = (): TextMeasurementConfig => ({ ...currentConfig });\n\n/**\n * Clear the string size cache. Useful for testing or memory management.\n * @returns void\n */\nexport const clearStringCache = (): void => {\n  stringCache.clear();\n};\n\n/**\n * Get cache statistics for debugging purposes.\n * @returns Cache statistics including size and max size\n */\nexport const getStringCacheStats = () => ({\n  size: stringCache.size(),\n  maxSize: currentConfig.cacheSize,\n});\n","/**\n * Simple LRU (Least Recently Used) cache implementation\n */\nexport class LRUCache<K, V> {\n  private cache = new Map<K, V>();\n\n  private maxSize: number;\n\n  constructor(maxSize: number) {\n    this.maxSize = maxSize;\n  }\n\n  get(key: K): V | undefined {\n    const value = this.cache.get(key);\n    if (value !== undefined) {\n      this.cache.delete(key);\n      this.cache.set(key, value);\n    }\n    return value;\n  }\n\n  set(key: K, value: V): void {\n    if (this.cache.has(key)) {\n      this.cache.delete(key);\n    } else if (this.cache.size >= this.maxSize) {\n      const firstKey = this.cache.keys().next().value;\n      if (firstKey != null) {\n        this.cache.delete(firstKey);\n      }\n    }\n    this.cache.set(key, value);\n  }\n\n  clear(): void {\n    this.cache.clear();\n  }\n\n  size(): number {\n    return this.cache.size;\n  }\n}\n","import { isNan } from './DataUtils';\n\nconst MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nconst ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nconst CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nconst NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\n\ntype SupportedUnits = 'cm' | 'mm' | 'pt' | 'pc' | 'in' | 'Q' | 'px';\n\nconst CONVERSION_RATES: Record<SupportedUnits, number> = {\n  cm: 96 / 2.54,\n  mm: 96 / 25.4,\n  pt: 96 / 72,\n  pc: 96 / 6,\n  in: 96,\n  Q: 96 / (2.54 * 40),\n  px: 1,\n};\n\nconst FIXED_CSS_LENGTH_UNITS: ReadonlyArray<SupportedUnits> = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];\n\nfunction isSupportedUnit(unit: string): unit is SupportedUnits {\n  return FIXED_CSS_LENGTH_UNITS.includes(unit as SupportedUnits);\n}\n\nconst STR_NAN = 'NaN';\n\nfunction convertToPx(value: number, unit: SupportedUnits): number {\n  return value * CONVERSION_RATES[unit];\n}\n\nclass DecimalCSS {\n  static parse(str: string) {\n    const [, numStr, unit] = NUM_SPLIT_REGEX.exec(str) ?? [];\n\n    if (numStr == null) {\n      return DecimalCSS.NaN;\n    }\n\n    return new DecimalCSS(parseFloat(numStr), unit ?? '');\n  }\n\n  static NaN = new DecimalCSS(NaN, '');\n\n  constructor(\n    public num: number,\n    public unit: string,\n  ) {\n    this.num = num;\n    this.unit = unit;\n\n    if (isNan(num)) {\n      this.unit = '';\n    }\n\n    if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n      this.num = NaN;\n      this.unit = '';\n    }\n\n    if (isSupportedUnit(unit)) {\n      this.num = convertToPx(num, unit);\n      this.unit = 'px';\n    }\n  }\n\n  add(other: DecimalCSS) {\n    if (this.unit !== other.unit) {\n      return new DecimalCSS(NaN, '');\n    }\n\n    return new DecimalCSS(this.num + other.num, this.unit);\n  }\n\n  subtract(other: DecimalCSS) {\n    if (this.unit !== other.unit) {\n      return new DecimalCSS(NaN, '');\n    }\n\n    return new DecimalCSS(this.num - other.num, this.unit);\n  }\n\n  multiply(other: DecimalCSS) {\n    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n      return new DecimalCSS(NaN, '');\n    }\n\n    return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n  }\n\n  divide(other: DecimalCSS) {\n    if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n      return new DecimalCSS(NaN, '');\n    }\n\n    return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n  }\n\n  toString() {\n    return `${this.num}${this.unit}`;\n  }\n\n  isNaN() {\n    return isNan(this.num);\n  }\n}\n\nfunction calculateArithmetic(expr: string | undefined): string {\n  if (expr == null || expr.includes(STR_NAN)) {\n    return STR_NAN;\n  }\n\n  let newExpr = expr;\n  while (newExpr.includes('*') || newExpr.includes('/')) {\n    const [, leftOperand, operator, rightOperand] = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr) ?? [];\n    const lTs = DecimalCSS.parse(leftOperand ?? '');\n    const rTs = DecimalCSS.parse(rightOperand ?? '');\n    const result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n    if (result.isNaN()) {\n      return STR_NAN;\n    }\n    newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n  }\n\n  while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n    const [, leftOperand, operator, rightOperand] = ADD_OR_SUBTRACT_REGEX.exec(newExpr) ?? [];\n    const lTs = DecimalCSS.parse(leftOperand ?? '');\n    const rTs = DecimalCSS.parse(rightOperand ?? '');\n    const result = operator === '+' ? lTs.add(rTs) : lTs.subtract(rTs);\n    if (result.isNaN()) {\n      return STR_NAN;\n    }\n    newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, result.toString());\n  }\n\n  return newExpr;\n}\n\nconst PARENTHESES_REGEX = /\\(([^()]*)\\)/;\n\nfunction calculateParentheses(expr: string): string {\n  let newExpr = expr;\n  let match: ReturnType<typeof RegExp.prototype.exec> | null;\n  // eslint-disable-next-line no-cond-assign\n  while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {\n    const [, parentheticalExpression] = match;\n    newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n  }\n\n  return newExpr;\n}\n\nfunction evaluateExpression(expression: string): string {\n  let newExpr = expression.replace(/\\s+/g, '');\n  newExpr = calculateParentheses(newExpr);\n  newExpr = calculateArithmetic(newExpr);\n\n  return newExpr;\n}\n\nexport function safeEvaluateExpression(expression: string): string {\n  try {\n    return evaluateExpression(expression);\n  } catch {\n    return STR_NAN;\n  }\n}\n\nexport function reduceCSSCalc(expression: string): string {\n  const result = safeEvaluateExpression(expression.slice(5, -1));\n\n  if (result === STR_NAN) {\n    return '';\n  }\n\n  return result;\n}\n","import * as React from 'react';\nimport { CSSProperties, SVGProps, useMemo, forwardRef } from 'react';\n\nimport { clsx } from 'clsx';\nimport { isNullish, isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\n\nconst BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\ninterface Words {\n  words: Array<string>;\n  width: number | undefined;\n}\n\ninterface WordsWithWidth {\n  words: Array<string>;\n  width: number;\n}\n\ninterface WordWithComputedWidth {\n  word: string;\n  width: number;\n}\n\ninterface CalculatedWordWidths {\n  wordsWithComputedWidth: Array<WordWithComputedWidth>;\n  spaceWidth: number;\n}\n\ntype CalculateWordWidthsParam = Pick<Props, 'children' | 'breakAll' | 'style'>;\n\nconst calculateWordWidths = ({ children, breakAll, style }: CalculateWordWidthsParam): CalculatedWordWidths | null => {\n  try {\n    let words: string[] = [];\n    if (!isNullish(children)) {\n      if (breakAll) {\n        words = children.toString().split('');\n      } else {\n        words = children.toString().split(BREAKING_SPACES);\n      }\n    }\n\n    const wordsWithComputedWidth = words.map(word => ({ word, width: getStringSize(word, style).width }));\n\n    const spaceWidth = breakAll ? 0 : getStringSize('\\u00A0', style).width;\n\n    return { wordsWithComputedWidth, spaceWidth };\n  } catch {\n    return null;\n  }\n};\n\n/**\n * @inline\n */\nexport type TextAnchor = 'start' | 'middle' | 'end' | 'inherit';\n\nexport function isValidTextAnchor(value: string | undefined): value is TextAnchor {\n  return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';\n}\n\n/**\n * @inline\n */\nexport type TextVerticalAnchor = 'start' | 'middle' | 'end';\n\n/**\n * @inline\n */\nexport type RenderableText = string | number | boolean | null | undefined;\n\ninterface TextProps {\n  /**\n   * When true, scales the text to fit within the specified width.\n   * The text will be scaled down proportionally to fit the available space.\n   *\n   * **Important interactions:**\n   * - Requires `width` to be defined to have any effect. If width is undefined, scaleToFit does nothing.\n   * - When enabled, `maxLines` restrictions are bypassed and ellipsis truncation is disabled.\n   * - Uses the first line's width to calculate the scale factor.\n   * - The scaling transform is applied as `scale(width / lineWidth)`.\n   *\n   * @defaultValue false\n   */\n  scaleToFit?: boolean;\n\n  /**\n   * Text rotation angle in degrees.\n   * Positive values rotate clockwise, negative values rotate counterclockwise.\n   *\n   * @defaultValue 0\n   */\n  angle?: number;\n\n  /**\n   * Horizontal text alignment within the text element.\n   * - 'start': Text starts at the x coordinate (left-aligned for LTR text)\n   * - 'middle': Text is centered on the x coordinate\n   * - 'end': Text ends at the x coordinate (right-aligned for LTR text)\n   * - 'inherit': Inherits the text-anchor from parent element\n   *\n   * **Note:** This controls horizontal alignment only and does not affect RTL text behavior.\n   * @defaultValue 'start'\n   */\n  textAnchor?: TextAnchor;\n\n  /**\n   * Vertical text alignment relative to the y coordinate.\n   * - 'start': Text baseline starts at y coordinate (text appears below the y position)\n   * - 'middle': Text is vertically centered on the y coordinate\n   * - 'end': Text baseline ends at y coordinate (text appears above the y position)\n   *\n   * **Note:** This controls vertical positioning only and does not affect RTL (right-to-left) text behavior.\n   * The alignment calculation uses capHeight and lineHeight to determine the starting dy offset.\n   *\n   * @defaultValue 'end'\n   */\n  verticalAnchor?: TextVerticalAnchor;\n\n  /**\n   * CSS styles to apply to the text element.\n   * These styles are used for text measurement calculations when width constraints or scaleToFit are used.\n   * Font-related properties (fontSize, fontFamily, fontWeight, etc.) are particularly important for accurate measurements.\n   */\n  style?: CSSProperties;\n\n  /**\n   * Line height for multi-line text.\n   * Can be a number (height in pixels) or a string with CSS units.\n   * Used to calculate spacing between lines when text wraps to multiple lines.\n   * Also used in verticalAnchor calculations for positioning the text block.\n   * @defaultValue '1em'\n   */\n  lineHeight?: number | string;\n\n  /**\n   * When true, enables character-level breaking instead of word-level breaking.\n   * - false: Text breaks at word boundaries (spaces, tabs, etc.)\n   * - true: Text can break between any characters, useful for languages without spaces\n   *\n   * **Note:** Only effective when `width` is defined to enable line breaking.\n   * @defaultValue false\n   */\n  breakAll?: boolean;\n\n  /**\n   * The text content to render.\n   * Can be a string or number. Numbers will be converted to strings.\n   * undefined or null values will result in no text being rendered.\n   */\n  children?: RenderableText;\n\n  /**\n   * Maximum number of lines to display when text wrapping is enabled.\n   * When text exceeds this limit, it will be truncated with an ellipsis (…).\n   *\n   * **Important requirements for ellipsis truncation:**\n   * - `width` must be defined (no effect when width is undefined)\n   * - `scaleToFit` must be false (when scaleToFit is true, maxLines is bypassed)\n   * - Text must actually overflow the specified maxLines or width constraints\n   *\n   * **Truncation behavior:**\n   * - Uses binary search to find the optimal truncation point\n   * - Adds ellipsis (…) at the end of the truncated text\n   * - Ensures the truncated text + ellipsis fits within the constraints\n   *\n   * **Interaction with other props:**\n   * - When `scaleToFit` is true, this property is ignored\n   * - Requires `width` to be set for line breaking to occur\n   */\n  maxLines?: number;\n  /**\n   * When width is specified, the text will automatically wrap by calculating the width of text.\n   */\n  width?: number | string;\n}\n\nexport type Props = Omit<SVGProps<SVGTextElement>, 'textAnchor' | 'verticalAnchor'> & TextProps;\n\ntype CalculateWordsByLinesProps = Pick<Props, 'maxLines' | 'children' | 'style' | 'breakAll'>;\n\nconst calculate = (\n  words: ReadonlyArray<WordWithComputedWidth>,\n  lineWidth: number | string | undefined,\n  spaceWidth: number,\n  scaleToFit: boolean,\n): ReadonlyArray<WordsWithWidth> =>\n  words.reduce((result: Array<WordsWithWidth>, { word, width }) => {\n    const currentLine = result[result.length - 1];\n\n    if (\n      currentLine &&\n      width != null &&\n      (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))\n    ) {\n      // Word can be added to an existing line\n      currentLine.words.push(word);\n      currentLine.width += width + spaceWidth;\n    } else {\n      // Add first word to line or word is too long to scaleToFit on existing line\n      const newLine: WordsWithWidth = { words: [word], width };\n      result.push(newLine);\n    }\n\n    return result;\n  }, []);\n\nconst findLongestLine = (words: ReadonlyArray<WordsWithWidth>): WordsWithWidth =>\n  words.reduce((a: WordsWithWidth, b: WordsWithWidth) => (a.width > b.width ? a : b));\n\nconst suffix = '…';\n\nconst checkOverflow = (\n  text: string,\n  index: number,\n  breakAll: TextProps['breakAll'],\n  style: TextProps['style'],\n  maxLines: number,\n  lineWidth: number | string | undefined,\n  spaceWidth: number,\n  scaleToFit: boolean,\n): [boolean, ReadonlyArray<Words>] => {\n  const tempText = text.slice(0, index);\n\n  const words = calculateWordWidths({\n    breakAll,\n    style,\n    children: tempText + suffix,\n  });\n\n  if (!words) {\n    return [false, []];\n  }\n\n  const result: ReadonlyArray<WordsWithWidth> = calculate(\n    words.wordsWithComputedWidth,\n    lineWidth,\n    spaceWidth,\n    scaleToFit,\n  );\n\n  const doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n\n  return [doesOverflow, result];\n};\n\nconst calculateWordsByLines = (\n  { maxLines, children, style, breakAll }: CalculateWordsByLinesProps,\n  initialWordsWithComputedWith: ReadonlyArray<WordWithComputedWidth>,\n  spaceWidth: number,\n  lineWidth: number | string | undefined,\n  scaleToFit: boolean,\n): ReadonlyArray<Words> => {\n  const shouldLimitLines = isNumber(maxLines);\n  const text = String(children);\n\n  const originalResult: ReadonlyArray<WordsWithWidth> = calculate(\n    initialWordsWithComputedWith,\n    lineWidth,\n    spaceWidth,\n    scaleToFit,\n  );\n\n  if (!shouldLimitLines || scaleToFit) {\n    return originalResult;\n  }\n\n  const overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);\n  if (!overflows) {\n    return originalResult;\n  }\n\n  let start = 0;\n  let end = text.length - 1;\n\n  let iterations = 0;\n  let trimmedResult;\n\n  while (start <= end && iterations <= text.length - 1) {\n    const middle = Math.floor((start + end) / 2);\n    const prev = middle - 1;\n\n    const [doesPrevOverflow, result] = checkOverflow(\n      text,\n      prev,\n      breakAll,\n      style,\n      maxLines,\n      lineWidth,\n      spaceWidth,\n      scaleToFit,\n    );\n    const [doesMiddleOverflow] = checkOverflow(\n      text,\n      middle,\n      breakAll,\n      style,\n      maxLines,\n      lineWidth,\n      spaceWidth,\n      scaleToFit,\n    );\n\n    if (!doesPrevOverflow && !doesMiddleOverflow) {\n      start = middle + 1;\n    }\n\n    if (doesPrevOverflow && doesMiddleOverflow) {\n      end = middle - 1;\n    }\n\n    if (!doesPrevOverflow && doesMiddleOverflow) {\n      trimmedResult = result;\n      break;\n    }\n\n    iterations++;\n  }\n\n  // Fallback to originalResult (result without trimming) if we cannot find the\n  // where to trim.  This should not happen :tm:\n  return trimmedResult || originalResult;\n};\n\nconst getWordsWithoutCalculate = (children: React.ReactNode): Array<Words> => {\n  const words = !isNullish(children) ? children.toString().split(BREAKING_SPACES) : [];\n  return [{ words, width: undefined }];\n};\n\ntype GetWordsByLinesProps = Pick<Props, 'width' | 'scaleToFit' | 'children' | 'style' | 'breakAll' | 'maxLines'>;\n\nexport const getWordsByLines = ({ width, scaleToFit, children, style, breakAll, maxLines }: GetWordsByLinesProps) => {\n  // Only perform calculations if using features that require them (multiline, scaleToFit)\n  if ((width || scaleToFit) && !Global.isSsr) {\n    let wordsWithComputedWidth: ReadonlyArray<WordWithComputedWidth>, spaceWidth: number;\n\n    const wordWidths = calculateWordWidths({ breakAll, children, style });\n\n    if (wordWidths) {\n      const { wordsWithComputedWidth: wcw, spaceWidth: sw } = wordWidths;\n\n      wordsWithComputedWidth = wcw;\n      spaceWidth = sw;\n    } else {\n      return getWordsWithoutCalculate(children);\n    }\n\n    return calculateWordsByLines(\n      { breakAll, children, maxLines, style },\n      wordsWithComputedWidth,\n      spaceWidth,\n      width,\n      Boolean(scaleToFit),\n    );\n  }\n  return getWordsWithoutCalculate(children);\n};\n\nconst DEFAULT_FILL = '#808080';\n\nexport const textDefaultProps = {\n  angle: 0,\n  breakAll: false,\n  // Magic number from d3\n  capHeight: '0.71em',\n  fill: DEFAULT_FILL,\n  lineHeight: '1em',\n  scaleToFit: false,\n  textAnchor: 'start',\n  // Maintain compat with existing charts / default SVG behavior\n  verticalAnchor: 'end',\n  x: 0,\n  y: 0,\n} as const satisfies Partial<Props>;\n\nexport const Text = forwardRef<SVGTextElement, Props>((outsideProps, ref) => {\n  const {\n    x: propsX,\n    y: propsY,\n    lineHeight,\n    capHeight,\n    fill,\n    scaleToFit,\n    textAnchor,\n    verticalAnchor,\n    ...props\n  } = resolveDefaultProps(outsideProps, textDefaultProps);\n  const wordsByLines: ReadonlyArray<Words> = useMemo(() => {\n    return getWordsByLines({\n      breakAll: props.breakAll,\n      children: props.children,\n      maxLines: props.maxLines,\n      scaleToFit,\n      style: props.style,\n      width: props.width,\n    });\n  }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n\n  const { dx, dy, angle, className, breakAll, ...textProps } = props;\n\n  if (!isNumOrStr(propsX) || !isNumOrStr(propsY) || wordsByLines.length === 0) {\n    return null;\n  }\n  const x = Number(propsX) + (isNumber(dx) ? dx : 0);\n  const y = Number(propsY) + (isNumber(dy) ? dy : 0);\n\n  if (!isWellBehavedNumber(x) || !isWellBehavedNumber(y)) {\n    return null;\n  }\n\n  let startDy: string;\n  switch (verticalAnchor) {\n    case 'start':\n      startDy = reduceCSSCalc(`calc(${capHeight})`);\n      break;\n    case 'middle':\n      startDy = reduceCSSCalc(`calc(${(wordsByLines.length - 1) / 2} * -${lineHeight} + (${capHeight} / 2))`);\n      break;\n    default:\n      startDy = reduceCSSCalc(`calc(${wordsByLines.length - 1} * -${lineHeight})`);\n      break;\n  }\n\n  const transforms = [];\n  const firstLine = wordsByLines[0];\n  if (scaleToFit && firstLine != null) {\n    const lineWidth = firstLine.width;\n    const { width } = props;\n    transforms.push(`scale(${isNumber(width) && isNumber(lineWidth) ? width / lineWidth : 1})`);\n  }\n  if (angle) {\n    transforms.push(`rotate(${angle}, ${x}, ${y})`);\n  }\n  if (transforms.length) {\n    textProps.transform = transforms.join(' ');\n  }\n\n  return (\n    <text\n      {...svgPropertiesAndEvents(textProps)}\n      ref={ref}\n      x={x}\n      y={y}\n      className={clsx('recharts-text', className)}\n      textAnchor={textAnchor}\n      fill={fill.includes('url') ? DEFAULT_FILL : fill}\n    >\n      {wordsByLines.map((line, index) => {\n        const words = line.words.join(breakAll ? '' : ' ');\n        return (\n          // duplicate words will cause duplicate keys which is why we add the array index here\n          <tspan x={x} dy={index === 0 ? startDy : lineHeight} key={`${words}-${index}`}>\n            {words}\n          </tspan>\n        );\n      })}\n    </text>\n  );\n});\n\nText.displayName = 'Text';\n","import { getPercentValue, isNumber, isPercent } from '../util/DataUtils';\nimport { CartesianViewBoxRequired, TrapezoidViewBox } from '../util/types';\nimport { TextAnchor, TextVerticalAnchor } from '../component/Text';\nimport { cartesianViewBoxToTrapezoid } from '../context/chartLayoutContext';\n\nexport type CartesianLabelPosition =\n  | 'top'\n  | 'left'\n  | 'right'\n  | 'bottom'\n  | 'inside'\n  | 'outside'\n  | 'insideLeft'\n  | 'insideRight'\n  | 'insideTop'\n  | 'insideBottom'\n  | 'insideTopLeft'\n  | 'insideBottomLeft'\n  | 'insideTopRight'\n  | 'insideBottomRight'\n  | 'insideStart'\n  | 'insideEnd'\n  | 'end'\n  | 'center'\n  | 'centerTop'\n  | 'centerBottom'\n  | 'middle'\n  | {\n      x?: number | string;\n      y?: number | string;\n    };\n\nexport type GetCartesianPositionOptions = {\n  viewBox: TrapezoidViewBox | CartesianViewBoxRequired;\n  parentViewBox?: CartesianViewBoxRequired;\n  /**\n   * The offset to the specified \"position\". Direction of the offset depends on the position.\n   */\n  offset?: number;\n  /**\n   * The position of the element relative to the view box.\n   */\n  position?: CartesianLabelPosition;\n  /**\n   * If true, the returned width and height will be clamped to keep the element within the parentViewBox.\n   * This is useful for preventing labels from overflowing the chart area.\n   */\n  clamp?: boolean;\n};\n\nexport type CartesianPosition = {\n  x: number;\n  y: number;\n  horizontalAnchor: TextAnchor;\n  verticalAnchor: TextVerticalAnchor;\n  width?: number;\n  height?: number;\n};\n\n/**\n * Calculates the position and alignment for a generic element in a Cartesian coordinate system.\n *\n * @param options - The options including viewBox, position, and offset.\n * @returns The calculated x, y, alignment and size.\n */\nexport const getCartesianPosition = (options: GetCartesianPositionOptions): CartesianPosition => {\n  const { viewBox, position, offset = 0, parentViewBox: parentViewBoxFromOptions, clamp } = options;\n\n  const { x, y, height, upperWidth, lowerWidth } = cartesianViewBoxToTrapezoid(viewBox);\n\n  // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.\n  const upperX = x;\n  // The trapezoid is centered, so we can calculate the other corners from the top-left.\n  const lowerX = x + (upperWidth - lowerWidth) / 2;\n  // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.\n  const middleX = (upperX + lowerX) / 2;\n  // The width of the trapezoid at its vertical midpoint.\n  const midHeightWidth = (upperWidth + lowerWidth) / 2;\n  // The center x-coordinate is constant for the entire height of the trapezoid.\n  const centerX = upperX + upperWidth / 2;\n\n  // Define vertical offsets and position inverts based on the value being positive or negative.\n  // This allows labels to be positioned correctly for bars with negative height.\n  const verticalSign = height >= 0 ? 1 : -1;\n  const verticalOffset = verticalSign * offset;\n  const verticalEnd = verticalSign > 0 ? 'end' : 'start';\n  const verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n  // Define horizontal offsets and position inverts based on the value being positive or negative.\n  // This allows labels to be positioned correctly for bars with negative width.\n  const horizontalSign = upperWidth >= 0 ? 1 : -1;\n  const horizontalOffset = horizontalSign * offset;\n  const horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n  const horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n  // We assume parentViewBox is generic if provided.\n  // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.\n  const parentViewBox = parentViewBoxFromOptions;\n\n  if (position === 'top') {\n    const result: CartesianPosition = {\n      x: upperX + upperWidth / 2,\n      y: y - verticalOffset,\n      horizontalAnchor: 'middle',\n      verticalAnchor: verticalEnd,\n    };\n\n    if (clamp && parentViewBox) {\n      result.height = Math.max(y - parentViewBox.y, 0);\n      result.width = upperWidth;\n    }\n    return result;\n  }\n\n  if (position === 'bottom') {\n    const result: CartesianPosition = {\n      x: lowerX + lowerWidth / 2,\n      y: y + height + verticalOffset,\n      horizontalAnchor: 'middle',\n      verticalAnchor: verticalStart,\n    };\n    if (clamp && parentViewBox) {\n      result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);\n      result.width = lowerWidth;\n    }\n    return result;\n  }\n\n  if (position === 'left') {\n    const result: CartesianPosition = {\n      x: middleX - horizontalOffset,\n      y: y + height / 2,\n      horizontalAnchor: horizontalEnd,\n      verticalAnchor: 'middle',\n    };\n    if (clamp && parentViewBox) {\n      result.width = Math.max(result.x - parentViewBox.x, 0);\n      result.height = height;\n    }\n    return result;\n  }\n\n  if (position === 'right') {\n    const result: CartesianPosition = {\n      x: middleX + midHeightWidth + horizontalOffset,\n      y: y + height / 2,\n      horizontalAnchor: horizontalStart,\n      verticalAnchor: 'middle',\n    };\n    if (clamp && parentViewBox) {\n      result.width = Math.max(parentViewBox.x + parentViewBox.width - result.x, 0);\n      result.height = height;\n    }\n    return result;\n  }\n\n  const sizeAttrs = clamp && parentViewBox ? { width: midHeightWidth, height } : {};\n\n  if (position === 'insideLeft') {\n    return {\n      x: middleX + horizontalOffset,\n      y: y + height / 2,\n      horizontalAnchor: horizontalStart,\n      verticalAnchor: 'middle',\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideRight') {\n    return {\n      x: middleX + midHeightWidth - horizontalOffset,\n      y: y + height / 2,\n      horizontalAnchor: horizontalEnd,\n      verticalAnchor: 'middle',\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideTop') {\n    return {\n      x: upperX + upperWidth / 2,\n      y: y + verticalOffset,\n      horizontalAnchor: 'middle',\n      verticalAnchor: verticalStart,\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideBottom') {\n    return {\n      x: lowerX + lowerWidth / 2,\n      y: y + height - verticalOffset,\n      horizontalAnchor: 'middle',\n      verticalAnchor: verticalEnd,\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideTopLeft') {\n    return {\n      x: upperX + horizontalOffset,\n      y: y + verticalOffset,\n      horizontalAnchor: horizontalStart,\n      verticalAnchor: verticalStart,\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideTopRight') {\n    return {\n      x: upperX + upperWidth - horizontalOffset,\n      y: y + verticalOffset,\n      horizontalAnchor: horizontalEnd,\n      verticalAnchor: verticalStart,\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideBottomLeft') {\n    return {\n      x: lowerX + horizontalOffset,\n      y: y + height - verticalOffset,\n      horizontalAnchor: horizontalStart,\n      verticalAnchor: verticalEnd,\n      ...sizeAttrs,\n    };\n  }\n\n  if (position === 'insideBottomRight') {\n    return {\n      x: lowerX + lowerWidth - horizontalOffset,\n      y: y + height - verticalOffset,\n      horizontalAnchor: horizontalEnd,\n      verticalAnchor: verticalEnd,\n      ...sizeAttrs,\n    };\n  }\n\n  if (\n    !!position &&\n    typeof position === 'object' &&\n    (isNumber(position.x) || isPercent(position.x)) &&\n    (isNumber(position.y) || isPercent(position.y))\n  ) {\n    // TODO: This is not quite right. The width of the trapezoid changes with y.\n    // A percentage-based x should be relative to the width at that y.\n    // For now, we use the mid-height width as a reasonable approximation.\n    return {\n      x: x + getPercentValue(position.x, midHeightWidth),\n      y: y + getPercentValue(position.y, height),\n      horizontalAnchor: 'end',\n      verticalAnchor: 'end',\n      ...sizeAttrs,\n    };\n  }\n\n  return {\n    x: centerX,\n    y: y + height / 2,\n    horizontalAnchor: 'middle',\n    verticalAnchor: 'middle',\n    ...sizeAttrs,\n  };\n};\n","import * as React from 'react';\nimport {\n  cloneElement,\n  createContext,\n  createElement,\n  isValidElement,\n  ReactElement,\n  ReactNode,\n  SVGProps,\n  useContext,\n  useMemo,\n} from 'react';\nimport { clsx } from 'clsx';\nimport { isValidTextAnchor, RenderableText, Text, TextAnchor, TextVerticalAnchor } from './Text';\nimport { isNullish, isNumber, isNumOrStr, mathSign, uniqueId } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { CartesianViewBoxRequired, DataKey, PolarViewBoxRequired, TrapezoidViewBox, ViewBox } from '../util/types';\nimport { cartesianViewBoxToTrapezoid, useViewBox } from '../context/chartLayoutContext';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nimport { CartesianLabelPosition, getCartesianPosition } from '../cartesian/getCartesianPosition';\n\n/**\n * @inline\n */\nexport type LabelContentType = ReactElement | ((props: Props) => RenderableText | ReactElement);\n\ntype PolarLabelPosition = 'insideStart' | 'insideEnd' | 'end';\n\n/**\n * @inline\n */\nexport type LabelPosition = CartesianLabelPosition | PolarLabelPosition;\n\n/**\n * @inline\n */\nexport type LabelFormatter = (label: RenderableText) => RenderableText;\n\ninterface LabelProps extends ZIndexable {\n  /**\n   * The box of viewing area. Used for positioning.\n   * If undefined, viewBox will be calculated based on surrounding context.\n   */\n  viewBox?: ViewBox;\n  parentViewBox?: ViewBox;\n  /**\n   * Function to customize how content is serialized before rendering.\n   *\n   * This should return a renderable text - something that the {@link Text} component can render.\n   * Typically, a string or number.\n   * Custom components are not supported here - use the `content` prop instead.\n   */\n  formatter?: LabelFormatter;\n  /**\n   * The value of label can be set as children or as the `value` prop\n   *\n   * @example <Label value=\"foo\" />\n   */\n  value?: RenderableText;\n  /**\n   * The offset to the specified \"position\". Direction of the offset depends on the position.\n   *\n   * @defaultValue 5\n   */\n  offset?: number;\n  /**\n   * The position of label relative to the view box.\n   *\n   * @defaultValue middle\n   */\n  position?: LabelPosition;\n  /**\n   * The value of label can be set as children or as the `value` prop\n   *\n   * @example <Label>foo</Label>\n   */\n  children?: RenderableText;\n  className?: string;\n  /**\n   * If set a React element, the option is the custom react element of rendering label.\n   * If set a function, the function will be called to render label content.\n   *\n   * @example <Label content={CustomizedLabel} />\n   * @example\n   * const renderCustomLabel = (props) => <text {...props}>Custom Label</text>;\n   * <Label content={renderCustomLabel} />\n   */\n  content?: LabelContentType;\n  /**\n   * @defaultValue false\n   */\n  textBreakAll?: boolean;\n  /**\n   * Text rotation angle in degrees.\n   * Positive values rotate clockwise, negative values rotate counterclockwise.\n   *\n   * @defaultValue 0\n   */\n  angle?: number;\n  index?: number;\n  labelRef?: React.RefObject<SVGTextElement> | null;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 2000\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`.\n   */\n  id?: string;\n}\n\nexport type Props = Omit<SVGProps<SVGTextElement>, 'viewBox'> & LabelProps;\n\ntype PropsWithDefaults = Props & {\n  offset: number;\n};\n\nexport type ImplicitLabelType =\n  | boolean\n  | string\n  | number\n  | ReactElement<SVGElement>\n  | ((props: any) => RenderableText | ReactElement)\n  // dataKey is only applicable when label is used implicitly from graphical element props\n  | (Props & { dataKey?: DataKey<any> });\n\nconst CartesianLabelContext = createContext<TrapezoidViewBox | null>(null);\n\nexport const CartesianLabelContextProvider = ({\n  x,\n  y,\n  upperWidth,\n  lowerWidth,\n  width,\n  height,\n  children,\n}: TrapezoidViewBox & {\n  children: ReactNode;\n}) => {\n  const viewBox: TrapezoidViewBox = useMemo(\n    () => ({\n      x,\n      y,\n      upperWidth,\n      lowerWidth,\n      width,\n      height,\n    }),\n    [x, y, upperWidth, lowerWidth, width, height],\n  );\n  return <CartesianLabelContext.Provider value={viewBox}>{children}</CartesianLabelContext.Provider>;\n};\n\nconst useCartesianLabelContext = (): TrapezoidViewBox | undefined => {\n  const labelChildContext = useContext(CartesianLabelContext);\n  const chartContext = useViewBox();\n  return labelChildContext || (chartContext ? cartesianViewBoxToTrapezoid(chartContext) : undefined);\n};\n\nconst PolarLabelContext = createContext<PolarViewBoxRequired | null>(null);\n\nexport const PolarLabelContextProvider = ({\n  cx,\n  cy,\n  innerRadius,\n  outerRadius,\n  startAngle,\n  endAngle,\n  clockWise,\n  children,\n}: PolarViewBoxRequired & {\n  children: ReactNode;\n}) => {\n  const viewBox: PolarViewBoxRequired = useMemo(\n    () => ({\n      cx,\n      cy,\n      innerRadius,\n      outerRadius,\n      startAngle,\n      endAngle,\n      clockWise,\n    }),\n    [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise],\n  );\n  return <PolarLabelContext.Provider value={viewBox}>{children}</PolarLabelContext.Provider>;\n};\n\nexport const usePolarLabelContext = (): PolarViewBoxRequired | undefined => {\n  const labelChildContext = useContext(PolarLabelContext);\n  const chartContext = useAppSelector(selectPolarViewBox);\n  return labelChildContext || chartContext;\n};\n\nconst getLabel = (props: Props): RenderableText => {\n  const { value, formatter } = props;\n  const label: RenderableText = isNullish(props.children) ? value : props.children;\n\n  if (typeof formatter === 'function') {\n    return formatter(label);\n  }\n\n  return label;\n};\n\nexport const isLabelContentAFunction = (content: unknown): content is (props: Props) => React.ReactNode => {\n  return content != null && typeof content === 'function';\n};\n\nconst getDeltaAngle = (startAngle: number, endAngle: number) => {\n  const sign = mathSign(endAngle - startAngle);\n  const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n\n  return sign * deltaAngle;\n};\n\nconst renderRadialLabel = (\n  labelProps: PropsWithDefaults,\n  position: PolarLabelPosition,\n  label: ReactNode,\n  attrs: SVGProps<SVGTextElement>,\n  viewBox: PolarViewBoxRequired,\n) => {\n  const { offset, className } = labelProps;\n  const { cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise } = viewBox;\n  const radius = (innerRadius + outerRadius) / 2;\n  const deltaAngle = getDeltaAngle(startAngle, endAngle);\n  const sign = deltaAngle >= 0 ? 1 : -1;\n  let labelAngle, direction;\n\n  switch (position) {\n    case 'insideStart':\n      labelAngle = startAngle + sign * offset;\n      direction = clockWise;\n      break;\n    case 'insideEnd':\n      labelAngle = endAngle - sign * offset;\n      direction = !clockWise;\n      break;\n    case 'end':\n      labelAngle = endAngle + sign * offset;\n      direction = clockWise;\n      break;\n    default:\n      throw new Error(`Unsupported position ${position}`);\n  }\n\n  direction = deltaAngle <= 0 ? direction : !direction;\n\n  const startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n  const endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n  const path = `M${startPoint.x},${startPoint.y}\n    A${radius},${radius},0,1,${direction ? 0 : 1},\n    ${endPoint.x},${endPoint.y}`;\n  const id = isNullish(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n\n  return (\n    <text {...attrs} dominantBaseline=\"central\" className={clsx('recharts-radial-bar-label', className)}>\n      <defs>\n        <path id={id} d={path} />\n      </defs>\n      <textPath xlinkHref={`#${id}`}>{label}</textPath>\n    </text>\n  );\n};\n\nconst getAttrsOfPolarLabel = (\n  viewBox: PolarViewBoxRequired,\n  offset: number,\n  position: LabelPosition | undefined,\n): LabelPositionAttributes => {\n  const { cx, cy, innerRadius, outerRadius, startAngle, endAngle } = viewBox;\n  const midAngle = (startAngle + endAngle) / 2;\n\n  if (position === 'outside') {\n    const { x, y } = polarToCartesian(cx, cy, outerRadius + offset, midAngle);\n\n    return {\n      x,\n      y,\n      textAnchor: x >= cx ? 'start' : 'end',\n      verticalAnchor: 'middle',\n    };\n  }\n\n  if (position === 'center') {\n    return {\n      x: cx,\n      y: cy,\n      textAnchor: 'middle',\n      verticalAnchor: 'middle',\n    };\n  }\n\n  if (position === 'centerTop') {\n    return {\n      x: cx,\n      y: cy,\n      textAnchor: 'middle',\n      verticalAnchor: 'start',\n    };\n  }\n\n  if (position === 'centerBottom') {\n    return {\n      x: cx,\n      y: cy,\n      textAnchor: 'middle',\n      verticalAnchor: 'end',\n    };\n  }\n\n  const r = (innerRadius + outerRadius) / 2;\n  const { x, y } = polarToCartesian(cx, cy, r, midAngle);\n\n  return {\n    x,\n    y,\n    textAnchor: 'middle',\n    verticalAnchor: 'middle',\n  };\n};\n\nconst isPolar = (\n  viewBox: CartesianViewBoxRequired | TrapezoidViewBox | PolarViewBoxRequired | undefined,\n): viewBox is PolarViewBoxRequired => viewBox != null && 'cx' in viewBox && isNumber(viewBox.cx);\n\nexport type LabelPositionAttributes = {\n  x: number;\n  y: number;\n  textAnchor: TextAnchor;\n  verticalAnchor: TextVerticalAnchor;\n  width?: number;\n  height?: number;\n};\n\nexport const defaultLabelProps = {\n  angle: 0,\n  offset: 5,\n  zIndex: DefaultZIndexes.label,\n  position: 'middle',\n  textBreakAll: false,\n} as const satisfies Partial<Props>;\n\nfunction polarViewBoxToTrapezoid(\n  viewBox: PolarViewBoxRequired | TrapezoidViewBox | undefined,\n): TrapezoidViewBox | undefined {\n  if (!isPolar(viewBox)) {\n    return viewBox;\n  }\n  const { cx, cy, outerRadius } = viewBox;\n  const diameter = outerRadius * 2;\n  return {\n    x: cx - outerRadius,\n    y: cy - outerRadius,\n    width: diameter,\n    upperWidth: diameter,\n    lowerWidth: diameter,\n    height: diameter,\n  };\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @consumes PolarViewBoxContext\n * @consumes CartesianLabelContext\n * @consumes PolarLabelContext\n */\nexport function Label(outerProps: Props) {\n  const props: PropsWithDefaults = resolveDefaultProps(outerProps, defaultLabelProps);\n  const {\n    viewBox: viewBoxFromProps,\n    parentViewBox,\n    position,\n    value,\n    children,\n    content,\n    className = '',\n    textBreakAll,\n    labelRef,\n  } = props;\n  const polarViewBox = usePolarLabelContext();\n  const cartesianViewBox = useCartesianLabelContext();\n\n  /*\n   * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.\n   * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.\n   * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156\n   */\n  const resolvedViewBox = position === 'center' ? cartesianViewBox : (polarViewBox ?? cartesianViewBox);\n\n  let viewBox: PolarViewBoxRequired | TrapezoidViewBox | undefined,\n    label: RenderableText,\n    positionAttrs: LabelPositionAttributes;\n  if (viewBoxFromProps == null) {\n    viewBox = resolvedViewBox;\n  } else if (isPolar(viewBoxFromProps)) {\n    viewBox = viewBoxFromProps;\n  } else {\n    viewBox = cartesianViewBoxToTrapezoid(viewBoxFromProps);\n  }\n\n  const cartesianBox = polarViewBoxToTrapezoid(viewBox);\n\n  if (\n    !viewBox ||\n    (isNullish(value) && isNullish(children) && !isValidElement(content) && typeof content !== 'function')\n  ) {\n    return null;\n  }\n\n  const propsWithViewBox = {\n    ...props,\n    viewBox,\n  };\n\n  if (isValidElement(content)) {\n    const { labelRef: _, ...propsWithoutLabelRef } = propsWithViewBox;\n    return cloneElement(content, propsWithoutLabelRef);\n  }\n\n  if (typeof content === 'function') {\n    const { content: _, ...propsForContent } = propsWithViewBox;\n    // @ts-expect-error we're not checking if the content component returns something that Text is able to render\n    label = createElement(content, propsForContent);\n\n    if (isValidElement(label)) {\n      return label;\n    }\n  } else {\n    label = getLabel(props);\n  }\n\n  const attrs = svgPropertiesAndEvents(props);\n\n  if (isPolar(viewBox)) {\n    // TODO: Generic Polar Hook\n    if (position === 'insideStart' || position === 'insideEnd' || position === 'end') {\n      return renderRadialLabel(props, position, label, attrs, viewBox);\n    }\n    positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);\n  } else {\n    if (!cartesianBox) {\n      return null;\n    }\n    const cartesianResult = getCartesianPosition({\n      viewBox: cartesianBox,\n      position,\n      offset: props.offset,\n      parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,\n      clamp: true,\n    });\n\n    positionAttrs = {\n      x: cartesianResult.x,\n      y: cartesianResult.y,\n      textAnchor: cartesianResult.horizontalAnchor,\n      verticalAnchor: cartesianResult.verticalAnchor,\n      ...(cartesianResult.width !== undefined ? { width: cartesianResult.width } : {}),\n      ...(cartesianResult.height !== undefined ? { height: cartesianResult.height } : {}),\n    };\n  }\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Text\n        ref={labelRef}\n        className={clsx('recharts-label', className)}\n        {...attrs}\n        {...positionAttrs}\n        /*\n         * textAnchor is decided by default based on the `position`\n         * but we allow overriding via props for precise control.\n         */\n        textAnchor={isValidTextAnchor(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor}\n        breakAll={textBreakAll}\n      >\n        {label}\n      </Text>\n    </ZIndexLayer>\n  );\n}\n\nLabel.displayName = 'Label';\n\nconst parseLabel = (\n  label: ImplicitLabelType | undefined,\n  viewBox: ViewBox | undefined,\n  labelRef?: React.RefObject<SVGTextElement> | null,\n) => {\n  if (!label) {\n    return null;\n  }\n\n  const commonProps = { viewBox, labelRef };\n\n  if (label === true) {\n    return <Label key=\"label-implicit\" {...commonProps} />;\n  }\n\n  if (isNumOrStr(label)) {\n    return <Label key=\"label-implicit\" value={label} {...commonProps} />;\n  }\n\n  if (isValidElement(label)) {\n    if (label.type === Label) {\n      return cloneElement<SVGElement>(label, { key: 'label-implicit', ...commonProps });\n    }\n\n    return <Label key=\"label-implicit\" content={label} {...commonProps} />;\n  }\n\n  if (isLabelContentAFunction(label)) {\n    return <Label key=\"label-implicit\" content={label} {...commonProps} />;\n  }\n\n  if (label && typeof label === 'object') {\n    return <Label {...label} key=\"label-implicit\" {...commonProps} />;\n  }\n\n  return null;\n};\n\nexport function CartesianLabelFromLabelProp({\n  label,\n  labelRef,\n}: {\n  label: ImplicitLabelType | undefined;\n  labelRef?: React.RefObject<SVGTextElement> | null;\n}) {\n  const viewBox = useCartesianLabelContext();\n\n  return parseLabel(label, viewBox, labelRef) || null;\n}\n\nexport function PolarLabelFromLabelProp({ label }: { label: ImplicitLabelType | undefined }) {\n  const viewBox = usePolarLabelContext();\n\n  return parseLabel(label, viewBox) || null;\n}\n","import * as React from 'react';\nimport { createContext, PropsWithoutRef, SVGProps, useContext } from 'react';\nimport last from 'es-toolkit/compat/last';\n\nimport { LabelContentType, isLabelContentAFunction, Label, LabelPosition, LabelFormatter } from './Label';\nimport { Layer } from '../container/Layer';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { CartesianViewBoxRequired, DataKey, PolarViewBoxRequired, TrapezoidViewBox } from '../util/types';\nimport { isNullish } from '../util/DataUtils';\nimport { LabelProps } from '../index';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport interface LabelListEntry {\n  /**\n   * Value is what renders in the UI as the label content.\n   * If undefined, then the LabelList will pull it from the payload using the dataKey.\n   */\n  value: number | string | Array<number | string> | undefined;\n  /**\n   * Payload is the source data object for this entry. The shape of this depends on what the user has passed\n   * as the data prop to the chart.\n   */\n  payload: Record<string, unknown> | null | undefined;\n  fill: string | undefined;\n}\n\n/**\n * This is public API because we expose it as the valueAccessor parameter.\n *\n * The properties of \"viewBox\" are repeated as the root props of the entry object.\n * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.\n *\n * It's not necessary to pass redundant data, but we keep it for backward compatibility.\n */\nexport interface CartesianLabelListEntry extends LabelListEntry, TrapezoidViewBox {\n  /**\n   * The bounding box of the graphical element that this label is attached to.\n   * This will be an individual Bar for example.\n   */\n  viewBox: TrapezoidViewBox;\n  parentViewBox?: CartesianViewBoxRequired;\n}\n\nexport interface PolarLabelListEntry extends LabelListEntry {\n  viewBox: PolarViewBoxRequired;\n  parentViewBox?: PolarViewBoxRequired;\n  clockWise?: boolean;\n}\n\ninterface LabelListProps extends ZIndexable {\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`.\n   */\n  id?: string;\n  /**\n   * The accessor function to get the value of each label. Is ignored if dataKey is specified.\n   * @param entry\n   * @param index\n   */\n  valueAccessor?: (entry: CartesianLabelListEntry | PolarLabelListEntry, index: number) => string | number | undefined;\n  /**\n   * The parameter to calculate the view box of label in radial charts.\n   */\n  clockWise?: boolean;\n  /**\n   *\n   * Decides how to extract the value of each label from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of each label.\n   *\n   * If set, then valueAccessor will be ignored.\n   *\n   * Scatter requires this prop to be set.\n   * Other graphical components will show the same value as the dataKey of the component by default.\n   */\n  dataKey?: DataKey<Record<string, unknown>>;\n  /**\n   * If set a React element, the option is the customized React element of rendering each label.\n   * If set to a function, the function is called once for each item\n   *\n   * @example <LabelList content={CustomizedLabel} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/BarChartWithMinHeight/ Customized content of LabelList in a BarChart}\n   */\n  content?: LabelContentType;\n  textBreakAll?: boolean;\n  /**\n   * The position of label relative to the view box.\n   */\n  position?: LabelPosition;\n  /**\n   * The offset to the specified \"position\".\n   * Direction of the offset depends on the position.\n   */\n  offset?: LabelProps['offset'];\n  /**\n   * Text rotation angle in degrees.\n   * Positive values rotate clockwise, negative values rotate counterclockwise.\n   *\n   * @defaultValue 0\n   */\n  angle?: number;\n  /**\n   * Function to customize how content is serialized before rendering.\n   *\n   * This should return a renderable text - something that the {@link Text} component can render.\n   * Typically, a string or number.\n   * Custom components are not supported here - use the `content` prop instead.\n   */\n  formatter?: LabelFormatter;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 2000\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\n/**\n * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.\n */\ntype SvgTextProps = PropsWithoutRef<SVGProps<SVGTextElement>>;\nexport type Props = Omit<SvgTextProps, 'children'> & LabelListProps;\n\n/**\n * This is the type accepted for the `label` prop on various graphical items.\n * It accepts:\n *\n * boolean:\n *    true = labels show,\n *    false = labels don't show\n * React element:\n *    will be cloned with extra props\n * function:\n *    is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)\n * object:\n *    the props to be passed to a LabelList component\n *\n * @inline\n */\nexport type ImplicitLabelListType = boolean | LabelContentType | Props;\n\nconst defaultAccessor = (entry: LabelListEntry) => (Array.isArray(entry.value) ? last(entry.value) : entry.value);\n\nconst CartesianLabelListContext = createContext<ReadonlyArray<CartesianLabelListEntry> | undefined>(undefined);\n\nexport const CartesianLabelListContextProvider = CartesianLabelListContext.Provider;\n\nconst PolarLabelListContext = createContext<ReadonlyArray<PolarLabelListEntry> | undefined>(undefined);\n\nexport const PolarLabelListContextProvider = PolarLabelListContext.Provider;\n\nfunction useCartesianLabelListContext(): ReadonlyArray<CartesianLabelListEntry> | undefined {\n  return useContext(CartesianLabelListContext);\n}\n\nfunction usePolarLabelListContext(): ReadonlyArray<PolarLabelListEntry> | undefined {\n  return useContext(PolarLabelListContext);\n}\n\n/**\n * @consumes LabelListContext\n */\nexport function LabelList({ valueAccessor = defaultAccessor, ...restProps }: Props) {\n  const { dataKey, clockWise, id, textBreakAll, zIndex, ...others } = restProps;\n  const cartesianData = useCartesianLabelListContext();\n  const polarData = usePolarLabelListContext();\n  const data = cartesianData || polarData;\n  if (!data || !data.length) {\n    return null;\n  }\n\n  return (\n    <ZIndexLayer zIndex={zIndex ?? DefaultZIndexes.label}>\n      <Layer className=\"recharts-label-list\">\n        {data.map((entry, index) => {\n          const value = isNullish(dataKey)\n            ? valueAccessor(entry, index)\n            : (getValueByDataKey(entry.payload, dataKey) as string | number);\n\n          const idProps = isNullish(id) ? {} : { id: `${id}-${index}` };\n\n          return (\n            <Label\n              key={`label-${index}`}\n              {...svgPropertiesAndEvents(entry)}\n              {...others}\n              {...idProps}\n              /*\n               * Prefer to use the explicit fill from LabelList props.\n               * Only in an absence of that, fall back to the fill of the entry.\n               * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.\n               * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.\n               */\n              fill={restProps.fill ?? entry.fill}\n              parentViewBox={entry.parentViewBox}\n              value={value}\n              textBreakAll={textBreakAll}\n              viewBox={entry.viewBox}\n              index={index}\n              /*\n               * Here we don't want to use the default Label zIndex,\n               * we want it to inherit the zIndex of the LabelList itself\n               * which means just rendering as a regular child, without portaling anywhere.\n               */\n              zIndex={0}\n            />\n          );\n        })}\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\nLabelList.displayName = 'LabelList';\n\nexport function LabelListFromLabelProp({ label }: { label?: ImplicitLabelListType }) {\n  if (!label) {\n    return null;\n  }\n\n  if (label === true) {\n    return <LabelList key=\"labelList-implicit\" />;\n  }\n\n  if (React.isValidElement(label) || isLabelContentAFunction(label)) {\n    return <LabelList key=\"labelList-implicit\" content={label} />;\n  }\n\n  if (typeof label === 'object') {\n    return <LabelList key=\"labelList-implicit\" {...label} type={String(label.type)} />;\n  }\n\n  return null;\n}\n","/**\n * @fileOverview Customized\n */\nimport * as React from 'react';\nimport { isValidElement, cloneElement, createElement, Component, FunctionComponent, ReactElement } from 'react';\n\nimport { Layer } from '../container/Layer';\nimport { warn } from '../util/LogUtils';\n\ntype Comp<P> = FunctionComponent<P> | Component<P> | ReactElement<P>;\nexport type Props<P, C extends Comp<P>> = P & {\n  /**\n   * Render your components directly, without Customized wrapper. Will be removed in 4.0\n   * @deprecated\n   * @example Before: `<Customized component={<MyCustomComponent />} />`\n   * @example After: `<MyCustomComponent />`\n   */\n  component: C;\n};\n\n/**\n * Customized component used to be necessary to render custom elements in Recharts 2.x.\n * Starting from Recharts 3.x, all charts are able to render arbitrary elements anywhere,\n * and Customized is no longer needed.\n *\n * @example Before: `<Customized component={<MyCustomComponent />} />`\n * @example After: `<MyCustomComponent />`\n *\n * @deprecated Just render your components directly. Will be removed in 4.0\n */\nexport function Customized<P, C extends Comp<P>>({ component, ...props }: Props<P, C>) {\n  let child;\n  if (isValidElement(component)) {\n    child = cloneElement(component, props);\n  } else if (typeof component === 'function') {\n    // @ts-expect-error TS cannot verify that C is FunctionComponent<P> here\n    child = createElement(component, props as any);\n  } else {\n    warn(false, \"Customized's props `component` must be React.element or Function, but got %s.\", typeof component);\n  }\n  return <Layer className=\"recharts-customized-wrapper\">{child}</Layer>;\n}\n\nCustomized.displayName = 'Customized';\n","/**\n * @fileOverview Polygon\n */\nimport * as React from 'react';\nimport { SVGProps } from 'react';\nimport { clsx } from 'clsx';\nimport { Coordinate } from '../util/types';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\n\nconst isValidatePoint = (point: Coordinate | undefined): point is Coordinate => {\n  return point != null && point.x === +point.x && point.y === +point.y;\n};\n\nconst getParsedPoints = (points: ReadonlyArray<Coordinate> = []) => {\n  let segmentPoints: Coordinate[][] = [[]];\n\n  points.forEach(entry => {\n    const lastLink = segmentPoints[segmentPoints.length - 1];\n    if (isValidatePoint(entry)) {\n      if (lastLink) {\n        lastLink.push(entry);\n      }\n    } else if (lastLink && lastLink.length > 0) {\n      // add another path\n      segmentPoints.push([]);\n    }\n  });\n\n  const firstPoint = points[0];\n  const lastLink = segmentPoints[segmentPoints.length - 1];\n  if (isValidatePoint(firstPoint) && lastLink) {\n    lastLink.push(firstPoint);\n  }\n\n  const finalLink = segmentPoints[segmentPoints.length - 1];\n  if (finalLink && finalLink.length <= 0) {\n    segmentPoints = segmentPoints.slice(0, -1);\n  }\n\n  return segmentPoints;\n};\n\nconst getSinglePolygonPath = (points: ReadonlyArray<Coordinate>, connectNulls?: boolean) => {\n  let segmentPoints = getParsedPoints(points);\n\n  if (connectNulls) {\n    segmentPoints = [\n      segmentPoints.reduce((res: Coordinate[], segPoints: Coordinate[]) => {\n        return [...res, ...segPoints];\n      }, []),\n    ];\n  }\n\n  const polygonPath = segmentPoints\n    .map(segPoints => {\n      return segPoints.reduce((path: string, point: Coordinate, index: number) => {\n        return roundTemplateLiteral`${path}${index === 0 ? 'M' : 'L'}${point.x},${point.y}`;\n      }, '');\n    })\n    .join('');\n\n  return segmentPoints.length === 1 ? `${polygonPath}Z` : polygonPath;\n};\n\nconst getRanglePath = (\n  points: ReadonlyArray<Coordinate>,\n  baseLinePoints: ReadonlyArray<Coordinate>,\n  connectNulls?: boolean,\n) => {\n  const outerPath = getSinglePolygonPath(points, connectNulls);\n\n  return `${outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath}L${getSinglePolygonPath(\n    Array.from(baseLinePoints).reverse(),\n    connectNulls,\n  ).slice(1)}`;\n};\n\ninterface PolygonProps {\n  className?: string;\n  /**\n   * The coordinates of all the vertexes of the polygon, like an array of objects with x and y coordinates.\n   */\n  points?: ReadonlyArray<Coordinate>;\n  baseLinePoints?: ReadonlyArray<Coordinate>;\n  connectNulls?: boolean;\n\n  /**\n   * The customized event handler of click on the polygon\n   */\n  onClick?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mousedown on the polygon\n   */\n  onMouseDown?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mouseup on the polygon\n   */\n  onMouseUp?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mousemove on the polygon\n   */\n  onMouseMove?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mouseover on the polygon\n   */\n  onMouseOver?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mouseout on the polygon\n   */\n  onMouseOut?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mouseenter on the polygon\n   */\n  onMouseEnter?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n  /**\n   * The customized event handler of mouseleave on the polygon\n   */\n  onMouseLeave?: (e: React.MouseEvent<SVGPolygonElement, MouseEvent>) => void;\n}\n\nexport type Props = Omit<SVGProps<SVGPolygonElement>, 'points'> & PolygonProps;\n\nexport const Polygon: React.FC<Props> = props => {\n  const { points, className, baseLinePoints, connectNulls, ...others } = props;\n\n  if (!points || !points.length) {\n    return null;\n  }\n\n  const layerClass = clsx('recharts-polygon', className);\n\n  if (baseLinePoints && baseLinePoints.length) {\n    const hasStroke = others.stroke && others.stroke !== 'none';\n    const rangePath = getRanglePath(points, baseLinePoints, connectNulls);\n\n    return (\n      <g className={layerClass}>\n        <path\n          {...svgPropertiesAndEvents(others)}\n          fill={rangePath.slice(-1) === 'Z' ? others.fill : 'none'}\n          stroke=\"none\"\n          d={rangePath}\n        />\n        {hasStroke ? (\n          <path {...svgPropertiesAndEvents(others)} fill=\"none\" d={getSinglePolygonPath(points, connectNulls)} />\n        ) : null}\n        {hasStroke ? (\n          <path\n            {...svgPropertiesAndEvents(others)}\n            fill=\"none\"\n            d={getSinglePolygonPath(baseLinePoints, connectNulls)}\n          />\n        ) : null}\n      </g>\n    );\n  }\n\n  const singlePath = getSinglePolygonPath(points, connectNulls);\n\n  return (\n    <path\n      {...svgPropertiesAndEvents(others)}\n      fill={singlePath.slice(-1) === 'Z' ? others.fill : 'none'}\n      className={layerClass}\n      d={singlePath}\n    />\n  );\n};\n","import * as React from 'react';\nimport { clsx } from 'clsx';\nimport { PresentationAttributesWithProps, adaptEventHandlers, RechartsMouseEventHandler } from '../util/types';\n\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isNumber } from '../util/DataUtils';\n\ninterface DotProps {\n  className?: string;\n  /**\n   * The x-coordinate of center in pixels.\n   */\n  cx?: number;\n  /**\n   * The y-coordinate of center in pixels.\n   */\n  cy?: number;\n  /**\n   * The radius of dot.\n   */\n  r?: number | string;\n  clipDot?: boolean;\n  /**\n   * The customized event handler of click in this chart.\n   */\n  onClick?: RechartsMouseEventHandler<Props>;\n}\n\nexport type Props = PresentationAttributesWithProps<DotProps, SVGCircleElement> & DotProps;\n\n/**\n * Renders a dot in the chart.\n *\n * This component accepts X and Y coordinates in pixels.\n * If you need to position the rectangle based on your chart's data,\n * consider using the {@link ReferenceDot} component instead.\n *\n * @param props\n * @constructor\n */\nexport const Dot: React.FC<Props> = props => {\n  const { cx, cy, r, className } = props;\n  const layerClass = clsx('recharts-dot', className);\n\n  if (isNumber(cx) && isNumber(cy) && isNumber(r)) {\n    return (\n      <circle\n        {...svgPropertiesNoEvents(props)}\n        {...adaptEventHandlers(props)}\n        className={layerClass}\n        cx={cx}\n        cy={cy}\n        r={r}\n      />\n    );\n  }\n\n  return null;\n};\n","import { createSelector } from 'reselect';\nimport { AppliedChartData, ChartData } from '../chartDataSlice';\nimport { RechartsRootState } from '../store';\nimport { AxisId, BaseCartesianAxis } from '../cartesianAxisSlice';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport {\n  AppliedChartDataWithErrorDomain,\n  combineAppliedValues,\n  combineAxisDomain,\n  combineAxisDomainWithNiceTicks,\n  combineDisplayedData,\n  combineDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n  combineGraphicalItemsData,\n  combineGraphicalItemsSettings,\n  combineNiceTicks,\n  combineNumericalDomain,\n  itemAxisPredicate,\n  selectAllErrorBarSettings,\n  selectBaseAxis,\n  selectDomainDefinition,\n  selectDomainFromUserPreference,\n  selectRealScaleType,\n  selectRenderableAxisSettings,\n} from './axisSelectors';\nimport { PolarGraphicalItemSettings } from '../graphicalItemsSlice';\nimport { CategoricalDomain, NumberDomain } from '../../util/types';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getValueByDataKey } from '../../util/ChartUtils';\nimport { pickAxisType } from './pickAxisType';\nimport { pickAxisId } from './pickAxisId';\nimport { selectStackOffsetType } from './rootPropsSelectors';\nimport { combineCheckedDomain } from './combiners/combineCheckedDomain';\n\nexport type PolarAxisType = 'angleAxis' | 'radiusAxis';\n\nexport const selectUnfilteredPolarItems = (state: RechartsRootState) => state.graphicalItems.polarItems;\n\nconst selectAxisPredicate: (\n  _state: RechartsRootState,\n  axisType: PolarAxisType,\n  axisId: AxisId,\n) => (item: PolarGraphicalItemSettings) => boolean = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);\n\nexport const selectPolarItemsSettings: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => ReadonlyArray<PolarGraphicalItemSettings> = createSelector(\n  [selectUnfilteredPolarItems, selectBaseAxis, selectAxisPredicate],\n  combineGraphicalItemsSettings,\n);\n\nconst selectPolarGraphicalItemsData: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => ChartData = createSelector([selectPolarItemsSettings], combineGraphicalItemsData);\n\nexport const selectPolarDisplayedData: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => ChartData = createSelector(\n  [selectPolarGraphicalItemsData, selectChartDataAndAlwaysIgnoreIndexes],\n  combineDisplayedData,\n);\n\nexport const selectPolarAppliedValues: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  axisId: AxisId,\n) => AppliedChartData = createSelector(\n  [selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings],\n  combineAppliedValues,\n);\n\nexport const selectAllPolarAppliedNumericalValues: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  axisId: AxisId,\n) => ReadonlyArray<AppliedChartDataWithErrorDomain> = createSelector(\n  [selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings],\n  (\n    data: ChartData,\n    axisSettings: BaseCartesianAxis,\n    items: ReadonlyArray<PolarGraphicalItemSettings>,\n  ): ReadonlyArray<AppliedChartDataWithErrorDomain> => {\n    if (items.length > 0) {\n      return data\n        .flatMap(entry => {\n          return items.flatMap((item): AppliedChartDataWithErrorDomain | undefined => {\n            const valueByDataKey: unknown = getValueByDataKey(entry, axisSettings.dataKey ?? item.dataKey);\n            return {\n              value: valueByDataKey,\n              errorDomain: [], // polar charts do not have error bars\n            };\n          });\n        })\n        .filter(Boolean);\n    }\n    if (axisSettings?.dataKey != null) {\n      return data.map(\n        (item): AppliedChartDataWithErrorDomain => ({\n          value: getValueByDataKey(item, axisSettings.dataKey),\n          errorDomain: [],\n        }),\n      );\n    }\n    return data.map((entry): AppliedChartDataWithErrorDomain => ({ value: entry, errorDomain: [] }));\n  },\n);\n\nconst unsupportedInPolarChart = (): undefined => undefined;\n\nconst selectDomainOfAllPolarAppliedNumericalValues: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  axisId: AxisId,\n) => NumberDomain | undefined = createSelector(\n  [selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings, selectAllErrorBarSettings, pickAxisType],\n  combineDomainOfAllAppliedNumericalValuesIncludingErrorValues,\n);\n\nconst selectPolarNumericalDomain: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  axisId: AxisId,\n) => NumberDomain | undefined = createSelector(\n  [\n    selectBaseAxis,\n    selectDomainDefinition,\n    selectDomainFromUserPreference,\n    unsupportedInPolarChart,\n    selectDomainOfAllPolarAppliedNumericalValues,\n    unsupportedInPolarChart,\n    selectChartLayout,\n    pickAxisType,\n  ],\n  combineNumericalDomain,\n);\n\nexport const selectPolarAxisDomain: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [\n    selectBaseAxis,\n    selectChartLayout,\n    selectPolarDisplayedData,\n    selectPolarAppliedValues,\n    selectStackOffsetType,\n    pickAxisType,\n    selectPolarNumericalDomain,\n  ],\n  combineAxisDomain,\n);\n\nexport const selectPolarNiceTicks = createSelector(\n  [selectPolarAxisDomain, selectRenderableAxisSettings, selectRealScaleType],\n  combineNiceTicks,\n);\n\nexport const selectPolarAxisDomainIncludingNiceTicks: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [selectBaseAxis, selectPolarAxisDomain, selectPolarNiceTicks, pickAxisType],\n  combineAxisDomainWithNiceTicks,\n);\n\nexport const selectPolarAxisCheckedDomain: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => NumberDomain | CategoricalDomain | undefined = createSelector(\n  [selectRealScaleType, selectPolarAxisDomainIncludingNiceTicks],\n  combineCheckedDomain,\n);\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport {\n  combineAxisTicks,\n  combineCategoricalDomain,\n  combineGraphicalItemTicks,\n  combineScaleFunction,\n  selectRenderableAxisSettings,\n  selectDuplicateDomain,\n  selectRealScaleType,\n} from './axisSelectors';\nimport {\n  selectAngleAxis,\n  selectAngleAxisRangeWithReversed,\n  selectRadiusAxis,\n  selectRadiusAxisRangeWithReversed,\n} from './polarAxisSelectors';\nimport { CartesianTickItem } from '../../util/types';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectPolarAppliedValues, selectPolarAxisCheckedDomain, selectPolarNiceTicks } from './polarSelectors';\nimport { pickAxisType } from './pickAxisType';\nimport { RechartsScale } from '../../util/scale/RechartsScale';\n\nexport const selectPolarAxis = (state: RechartsRootState, axisType: 'angleAxis' | 'radiusAxis', axisId: AxisId) => {\n  switch (axisType) {\n    case 'angleAxis': {\n      return selectAngleAxis(state, axisId);\n    }\n    case 'radiusAxis': {\n      return selectRadiusAxis(state, axisId);\n    }\n    default: {\n      throw new Error(`Unexpected axis type: ${axisType}`);\n    }\n  }\n};\n\nconst selectPolarAxisRangeWithReversed = (\n  state: RechartsRootState,\n  axisType: 'angleAxis' | 'radiusAxis',\n  axisId: AxisId,\n) => {\n  switch (axisType) {\n    case 'angleAxis': {\n      return selectAngleAxisRangeWithReversed(state, axisId);\n    }\n    case 'radiusAxis': {\n      return selectRadiusAxisRangeWithReversed(state, axisId);\n    }\n    default: {\n      throw new Error(`Unexpected axis type: ${axisType}`);\n    }\n  }\n};\n\nexport const selectPolarAxisScale: (\n  state: RechartsRootState,\n  axisType: 'angleAxis' | 'radiusAxis',\n  polarAxisId: AxisId,\n) => RechartsScale | undefined = createSelector(\n  [selectPolarAxis, selectRealScaleType, selectPolarAxisCheckedDomain, selectPolarAxisRangeWithReversed],\n  combineScaleFunction,\n);\n\nexport const selectPolarCategoricalDomain: (\n  state: RechartsRootState,\n  axisType: 'angleAxis' | 'radiusAxis',\n  polarAxisId: AxisId,\n) => ReadonlyArray<unknown> | undefined = createSelector(\n  [selectChartLayout, selectPolarAppliedValues, selectRenderableAxisSettings, pickAxisType],\n  combineCategoricalDomain,\n);\n\nexport const selectPolarAxisTicks: (\n  state: RechartsRootState,\n  axisType: 'angleAxis' | 'radiusAxis',\n  polarAxisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<CartesianTickItem> | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectPolarAxis,\n    selectRealScaleType,\n    selectPolarAxisScale,\n    selectPolarNiceTicks,\n    selectPolarAxisRangeWithReversed,\n    selectDuplicateDomain,\n    selectPolarCategoricalDomain,\n    pickAxisType,\n  ],\n  combineAxisTicks,\n);\n\nexport const selectPolarAngleAxisTicks: (\n  state: RechartsRootState,\n  axisType: 'angleAxis',\n  polarAxisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<CartesianTickItem> | undefined = createSelector([selectPolarAxisTicks], ticks => {\n  /*\n   * Angle axis is circular; so here we need to look for ticks that overlap (i.e., 0 and 360 degrees)\n   * and remove the duplicate tick to avoid rendering issues.\n   */\n  if (!ticks) {\n    return undefined;\n  }\n\n  const uniqueTicksMap = new Map<number, CartesianTickItem>();\n  ticks.forEach(tick => {\n    const normalizedCoordinate = (tick.coordinate + 360) % 360;\n    if (!uniqueTicksMap.has(normalizedCoordinate)) {\n      uniqueTicksMap.set(normalizedCoordinate, tick);\n    }\n  });\n\n  return Array.from(uniqueTicksMap.values());\n});\n\nexport const selectPolarGraphicalItemAxisTicks: (\n  state: RechartsRootState,\n  axisType: 'angleAxis' | 'radiusAxis',\n  polarAxisId: AxisId,\n  isPanorama: boolean,\n) => ReadonlyArray<CartesianTickItem> | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectPolarAxis,\n    selectPolarAxisScale,\n    selectPolarAxisRangeWithReversed,\n    selectDuplicateDomain,\n    selectPolarCategoricalDomain,\n    pickAxisType,\n  ],\n  combineGraphicalItemTicks,\n);\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { selectPolarAxisTicks } from './polarScaleSelectors';\nimport { CartesianTickItem } from '../../util/types';\n\nexport type PolarAngles = Array<number>;\n\nexport type PolarRadius = Array<number>;\n\nconst selectAngleAxisTicks = (state: RechartsRootState, anglexisId: AxisId) =>\n  selectPolarAxisTicks(state, 'angleAxis', anglexisId, false);\n\nexport const selectPolarGridAngles: (state: RechartsRootState, angleAxisId: AxisId) => PolarAngles | undefined =\n  createSelector(\n    [selectAngleAxisTicks],\n    (ticks: ReadonlyArray<CartesianTickItem> | undefined): PolarAngles | undefined => {\n      if (!ticks) {\n        return undefined;\n      }\n\n      return ticks.map(tick => tick.coordinate);\n    },\n  );\n\nconst selectRadiusAxisTicks = (state: RechartsRootState, radiusAxisId: AxisId) =>\n  selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false);\n\nexport const selectPolarGridRadii: (state: RechartsRootState, radiusAxisId: AxisId) => PolarRadius | undefined =\n  createSelector(\n    [selectRadiusAxisTicks],\n    (ticks: ReadonlyArray<CartesianTickItem> | undefined): PolarRadius | undefined => {\n      if (!ticks) {\n        return undefined;\n      }\n\n      return ticks.map(tick => tick.coordinate);\n    },\n  );\n","import { clsx } from 'clsx';\nimport * as React from 'react';\nimport { SVGProps } from 'react';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarGridAngles, selectPolarGridRadii } from '../state/selectors/polarGridSelectors';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { PolarViewBoxRequired } from '../util/types';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\ninterface PolarGridProps extends ZIndexable {\n  /**\n   * The x-coordinate of center.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  cx?: number;\n  /**\n   * The y-coordinate of center.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  cy?: number;\n  /**\n   * The radius of the inner polar grid.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  innerRadius?: number;\n  /**\n   * The radius of the outer polar grid.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  outerRadius?: number;\n  /**\n   * The array of every line grid's angle.\n   */\n  polarAngles?: ReadonlyArray<number>;\n  /**\n   * The array of every circle grid's radius.\n   */\n  polarRadius?: ReadonlyArray<number>;\n  /**\n   * The type of polar grids.\n   * @defaultValue polygon\n   */\n  gridType?: 'polygon' | 'circle';\n  /**\n   * @defaultValue true\n   */\n  radialLines?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  angleAxisId?: AxisId;\n  /**\n   * @defaultValue 0\n   */\n  radiusAxisId?: AxisId;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue -100\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\nexport type Props = SVGProps<SVGLineElement> & PolarGridProps;\n\ntype PropsWithDefaults = Props & {\n  cx: number;\n  cy: number;\n  innerRadius: number;\n  outerRadius: number;\n  polarAngles: ReadonlyArray<number>;\n  polarRadius: ReadonlyArray<number>;\n};\n\ntype ConcentricProps = PropsWithDefaults & {\n  // The radius of circle\n  radius: number;\n};\n\nconst getPolygonPath = (radius: number, cx: number, cy: number, polarAngles: ReadonlyArray<number>) => {\n  let path = '';\n\n  polarAngles.forEach((angle: number, i: number) => {\n    const point = polarToCartesian(cx, cy, radius, angle);\n\n    if (i) {\n      path += `L ${point.x},${point.y}`;\n    } else {\n      path += `M ${point.x},${point.y}`;\n    }\n  });\n  path += 'Z';\n\n  return path;\n};\n\n// Draw axis of radial line\nconst PolarAngles: React.FC<PropsWithDefaults> = (props: PropsWithDefaults) => {\n  const { cx, cy, innerRadius, outerRadius, polarAngles, radialLines } = props;\n\n  if (!polarAngles || !polarAngles.length || !radialLines) {\n    return null;\n  }\n  const polarAnglesProps = {\n    stroke: '#ccc',\n    ...svgPropertiesNoEvents(props),\n  };\n\n  return (\n    <g className=\"recharts-polar-grid-angle\">\n      {polarAngles.map(entry => {\n        const start = polarToCartesian(cx, cy, innerRadius, entry);\n        const end = polarToCartesian(cx, cy, outerRadius, entry);\n\n        return <line key={`line-${entry}`} {...polarAnglesProps} x1={start.x} y1={start.y} x2={end.x} y2={end.y} />;\n      })}\n    </g>\n  );\n};\n\n// Draw concentric circles\nconst ConcentricCircle: React.FC<ConcentricProps> = props => {\n  const { cx, cy, radius } = props;\n  const concentricCircleProps = {\n    stroke: '#ccc',\n    fill: 'none',\n    ...svgPropertiesNoEvents(props),\n  };\n\n  return (\n    // @ts-expect-error wrong SVG element type\n    <circle\n      {...concentricCircleProps}\n      className={clsx('recharts-polar-grid-concentric-circle', props.className)}\n      cx={cx}\n      cy={cy}\n      r={radius}\n    />\n  );\n};\n\n// Draw concentric polygons\nconst ConcentricPolygon: React.FC<ConcentricProps> = (props: ConcentricProps) => {\n  const { radius } = props;\n  const concentricPolygonProps = {\n    stroke: '#ccc',\n    fill: 'none',\n    ...svgPropertiesNoEvents(props),\n  };\n\n  return (\n    <path\n      {...concentricPolygonProps}\n      className={clsx('recharts-polar-grid-concentric-polygon', props.className)}\n      d={getPolygonPath(radius, props.cx, props.cy, props.polarAngles)}\n    />\n  );\n};\n\n// Draw concentric axis\nconst ConcentricGridPath = (props: PropsWithDefaults) => {\n  const { polarRadius, gridType } = props;\n\n  if (!polarRadius || !polarRadius.length) {\n    return null;\n  }\n\n  const maxPolarRadius: number = Math.max(...polarRadius);\n  const renderBackground = props.fill && props.fill !== 'none';\n\n  return (\n    <g className=\"recharts-polar-grid-concentric\">\n      {/* Render background as separate first child to do not cover strokes of smaller figures */}\n      {renderBackground && gridType === 'circle' && <ConcentricCircle {...props} radius={maxPolarRadius} />}\n      {renderBackground && gridType !== 'circle' && <ConcentricPolygon {...props} radius={maxPolarRadius} />}\n\n      {polarRadius.map((entry: number, i: number) => {\n        const key = i;\n\n        if (gridType === 'circle') {\n          return <ConcentricCircle key={key} {...props} fill=\"none\" radius={entry} />;\n        }\n\n        return <ConcentricPolygon key={key} {...props} fill=\"none\" radius={entry} />;\n      })}\n    </g>\n  );\n};\n\nexport const defaultPolarGridProps = {\n  angleAxisId: 0,\n  radiusAxisId: 0,\n  gridType: 'polygon',\n  radialLines: true,\n  zIndex: DefaultZIndexes.grid,\n} as const satisfies Partial<Props>;\n\n/**\n * @consumes PolarViewBoxContext\n */\nexport const PolarGrid = (outsideProps: Props) => {\n  const {\n    gridType,\n    radialLines,\n    angleAxisId,\n    radiusAxisId,\n    cx: cxFromOutside,\n    cy: cyFromOutside,\n    innerRadius: innerRadiusFromOutside,\n    outerRadius: outerRadiusFromOutside,\n    polarAngles: polarAnglesInput,\n    polarRadius: polarRadiusInput,\n    zIndex,\n    ...inputs\n  } = resolveDefaultProps(outsideProps, defaultPolarGridProps);\n  const polarViewBox: PolarViewBoxRequired | undefined = useAppSelector(selectPolarViewBox);\n\n  const polarAnglesFromRedux = useAppSelector(state => selectPolarGridAngles(state, angleAxisId));\n  const polarRadiiFromRedux = useAppSelector(state => selectPolarGridRadii(state, radiusAxisId));\n\n  const polarAngles = Array.isArray(polarAnglesInput) ? polarAnglesInput : polarAnglesFromRedux;\n  const polarRadius = Array.isArray(polarRadiusInput) ? polarRadiusInput : polarRadiiFromRedux;\n\n  if (polarAngles == null || polarRadius == null) {\n    return null;\n  }\n\n  const props: PropsWithDefaults = {\n    cx: polarViewBox?.cx ?? cxFromOutside ?? 0,\n    cy: polarViewBox?.cy ?? cyFromOutside ?? 0,\n    innerRadius: polarViewBox?.innerRadius ?? innerRadiusFromOutside ?? 0,\n    outerRadius: polarViewBox?.outerRadius ?? outerRadiusFromOutside ?? 0,\n    polarAngles,\n    polarRadius,\n    zIndex,\n    ...inputs,\n  };\n\n  const { outerRadius } = props;\n\n  if (outerRadius <= 0) {\n    return null;\n  }\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <g className=\"recharts-polar-grid\">\n        <ConcentricGridPath\n          gridType={gridType}\n          radialLines={radialLines}\n          {...props}\n          polarAngles={polarAngles}\n          polarRadius={polarRadius}\n        />\n        <PolarAngles\n          gridType={gridType}\n          radialLines={radialLines}\n          {...props}\n          polarAngles={polarAngles}\n          polarRadius={polarRadius}\n        />\n      </g>\n    </ZIndexLayer>\n  );\n};\n\nPolarGrid.displayName = 'PolarGrid';\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { AxisId, BaseCartesianAxis, TicksSettings } from './cartesianAxisSlice';\n\nexport type RadiusAxisSettings = BaseCartesianAxis & TicksSettings;\n\nexport type AngleAxisSettings = BaseCartesianAxis & TicksSettings;\n\ntype PolarAxisState = {\n  radiusAxis: Record<AxisId, RadiusAxisSettings>;\n  angleAxis: Record<AxisId, AngleAxisSettings>;\n};\n\nconst initialState: PolarAxisState = {\n  radiusAxis: {},\n  angleAxis: {},\n};\n\nconst polarAxisSlice = createSlice({\n  name: 'polarAxis',\n  initialState,\n  reducers: {\n    addRadiusAxis(state, action: PayloadAction<RadiusAxisSettings>) {\n      state.radiusAxis[action.payload.id] = castDraft(action.payload);\n    },\n    removeRadiusAxis(state, action: PayloadAction<RadiusAxisSettings>) {\n      delete state.radiusAxis[action.payload.id];\n    },\n    addAngleAxis(state, action: PayloadAction<AngleAxisSettings>) {\n      state.angleAxis[action.payload.id] = castDraft(action.payload);\n    },\n    removeAngleAxis(state, action: PayloadAction<AngleAxisSettings>) {\n      delete state.angleAxis[action.payload.id];\n    },\n  },\n});\n\nexport const { addRadiusAxis, removeRadiusAxis, addAngleAxis, removeAngleAxis } = polarAxisSlice.actions;\n\nexport const polarAxisReducer = polarAxisSlice.reducer;\n","export function getClassNameFromUnknown(u: unknown): string {\n  if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {\n    return u.className;\n  }\n  return '';\n}\n","import * as React from 'react';\nimport { FunctionComponent, ReactElement, ReactNode, SVGProps, useEffect, useMemo } from 'react';\nimport maxBy from 'es-toolkit/compat/maxBy';\nimport minBy from 'es-toolkit/compat/minBy';\n\nimport { clsx } from 'clsx';\nimport { Text } from '../component/Text';\nimport { PolarLabelContextProvider, PolarLabelFromLabelProp } from '../component/Label';\nimport { Layer } from '../container/Layer';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport {\n  adaptEventsOfChild,\n  RenderableAxisProps,\n  Coordinate,\n  PolarViewBoxRequired,\n  PresentationAttributesAdaptChildEvent,\n  TickItem,\n  AxisDomain,\n  ScaleType,\n  AxisDomainTypeInput,\n  EvaluatedAxisDomainType,\n  TickProp,\n  BaseTickContentProps,\n} from '../util/types';\nimport { addRadiusAxis, RadiusAxisSettings, removeRadiusAxis } from '../state/polarAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectPolarAxisScale, selectPolarAxisTicks } from '../state/selectors/polarScaleSelectors';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { defaultPolarRadiusAxisProps } from './defaultPolarRadiusAxisProps';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { RechartsScale } from '../util/scale/RechartsScale';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\nimport { usePolarChartLayout } from '../context/chartLayoutContext';\nimport { noop } from '../util/DataUtils';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\n\ntype TickOrientation = 'left' | 'right' | 'middle';\n\nexport interface PolarRadiusAxisProps\n  extends\n    Omit<RenderableAxisProps, 'axisLine' | 'angle' | 'type' | 'tickSize' | 'domain' | 'scale' | 'tick'>,\n    ZIndexable {\n  /**\n   * Determines how the axis line is drawn. Options:\n   * - `true`: the axis line is drawn with default props;\n   * - `false`: the axis line is not visible;\n   * - `object`: passed as props to SVG `<line>` element representing the axis line.\n   *\n   * @example <PolarRadiusAxis axisLine={false} />\n   * @example <PolarRadiusAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />\n   * @defaultValue true\n   */\n  axisLine?: boolean | SVGProps<SVGLineElement>;\n  /**\n   * The angle of the whole axis: the line, ticks and labels, everything.\n   *\n   * This is different from other graphical elements where angle usually means\n   * the angle of text. Here, it means the angle of everything.\n   *\n   * @defaultValue 0\n   */\n  angle?: number;\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * `auto`: the type is inferred based on the chart layout.\n   *\n   * @defaultValue auto\n   */\n  type?: AxisDomainTypeInput;\n  /**\n   * The orientation of axis text.\n   * @defaultValue right\n   */\n  orientation?: TickOrientation;\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <PolarRadiusAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <PolarRadiusAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <PolarRadiusAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <PolarRadiusAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <PolarRadiusAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <PolarRadiusAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <PolarRadiusAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <PolarRadiusAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <PolarRadiusAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <PolarRadiusAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n  /**\n   * The customized event handler of click on the ticks of this axis\n   */\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousedown on the ticks of this axis\n   */\n  onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseup on the ticks of this axis\n   */\n  onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousemove on the ticks of this axis\n   */\n  onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseover on the ticks of this axis\n   */\n  onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseout on the ticks of this axis\n   */\n  onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter on the ticks of this axis\n   */\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the ticks of this axis\n   */\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * Allow the ticks of axis to be decimals or not.\n   *\n   * @defaultValue false\n   */\n  allowDecimals?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  radiusAxisId?: string | number;\n  /**\n   * Defines how the individual label text is rendered.\n   * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.\n   *\n   * If you want to customize the overall axis label, use the `label` prop instead.\n   *\n   * Options:\n   * - `false`: Do not render any tick labels.\n   * - `true`: Render tick labels with default settings.\n   * - `object`: An object of props to be merged into the internally calculated tick props.\n   * - `ReactElement`: A custom React element to be used as the tick label.\n   * - `function`: A function that returns a React element for custom rendering of tick labels.\n   *\n   * @defaultValue true\n   */\n  tick?: TickProp<BaseTickContentProps>;\n  ticks?: ReadonlyArray<TickItem>;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 500\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\ntype AxisSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGTextElement>, 'scale' | 'type'>;\n\nexport type Props = AxisSvgProps & PolarRadiusAxisProps;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof defaultPolarRadiusAxisProps>;\n\ntype InsideProps = Omit<PropsWithDefaults, 'scale'> &\n  PolarViewBoxRequired & {\n    scale: RechartsScale;\n  };\n\nconst AXIS_TYPE = 'radiusAxis';\n\nfunction SetRadiusAxisSettings(props: Omit<RadiusAxisSettings, 'type'> & { type: AxisDomainTypeInput }): null {\n  const dispatch = useAppDispatch();\n  const layout = usePolarChartLayout();\n  const settings: RadiusAxisSettings | undefined = useMemo(() => {\n    const { type: typeFromProps, ...rest } = props;\n    const evaluatedType: EvaluatedAxisDomainType | undefined = getAxisTypeBasedOnLayout(\n      layout,\n      'radiusAxis',\n      typeFromProps,\n    );\n    if (evaluatedType == null) {\n      return undefined;\n    }\n    return { ...rest, type: evaluatedType };\n  }, [props, layout]);\n  useEffect(() => {\n    if (settings == null) {\n      return noop;\n    }\n    dispatch(addRadiusAxis(settings));\n    return () => {\n      dispatch(removeRadiusAxis(settings));\n    };\n  }, [dispatch, settings]);\n  return null;\n}\n\n/**\n * Calculate the coordinate of tick\n * @param coordinate The radius of tick\n * @param angle from props\n * @param cx from chart\n * @param cy from chart\n * @return (x, y)\n */\nconst getTickValueCoord = ({ coordinate }: TickItem, angle: number, cx: number, cy: number): Coordinate => {\n  return polarToCartesian(cx, cy, coordinate, angle);\n};\n\nconst getTickTextAnchor = (orientation: TickOrientation): string => {\n  let textAnchor;\n\n  switch (orientation) {\n    case 'left':\n      textAnchor = 'end';\n      break;\n    case 'right':\n      textAnchor = 'start';\n      break;\n    default:\n      textAnchor = 'middle';\n      break;\n  }\n\n  return textAnchor;\n};\n\nconst getViewBox = (angle: number, cx: number, cy: number, ticks: ReadonlyArray<TickItem>): PolarViewBoxRequired => {\n  const maxRadiusTick = maxBy(ticks, (entry: TickItem) => entry.coordinate || 0);\n  const minRadiusTick = minBy(ticks, (entry: TickItem) => entry.coordinate || 0);\n\n  return {\n    cx,\n    cy,\n    startAngle: angle,\n    endAngle: angle,\n    innerRadius: minRadiusTick?.coordinate || 0,\n    outerRadius: maxRadiusTick?.coordinate || 0,\n    clockWise: false,\n  };\n};\n\nconst renderAxisLine = (props: InsideProps, ticks: ReadonlyArray<TickItem>): ReactElement => {\n  const { cx, cy, angle, axisLine, ...others } = props;\n  const extent: [number, number] = ticks.reduce(\n    (result: [number, number], entry: TickItem): [number, number] => [\n      Math.min(result[0], entry.coordinate),\n      Math.max(result[1], entry.coordinate),\n    ],\n    [Infinity, -Infinity],\n  );\n  const point0 = polarToCartesian(cx, cy, extent[0], angle);\n  const point1 = polarToCartesian(cx, cy, extent[1], angle);\n\n  const axisLineProps = {\n    ...svgPropertiesNoEvents(others),\n    fill: 'none',\n    ...svgPropertiesNoEvents(axisLine),\n    x1: point0.x,\n    y1: point0.y,\n    x2: point1.x,\n    y2: point1.y,\n  };\n\n  // @ts-expect-error wrong SVG element type\n  return <line className=\"recharts-polar-radius-axis-line\" {...axisLineProps} />;\n};\n\nconst renderTickItem = (option: Props['tick'], tickProps: any, value: string | number): ReactNode => {\n  let tickItem;\n\n  if (React.isValidElement(option)) {\n    tickItem = React.cloneElement(option, tickProps);\n  } else if (typeof option === 'function') {\n    tickItem = option(tickProps);\n  } else {\n    tickItem = (\n      <Text {...tickProps} className=\"recharts-polar-radius-axis-tick-value\">\n        {value}\n      </Text>\n    );\n  }\n\n  return tickItem;\n};\n\nconst renderTicks = (props: InsideProps, ticks: ReadonlyArray<TickItem>): ReactElement => {\n  const { angle, tickFormatter, stroke, tick, ...others } = props;\n  const textAnchor = getTickTextAnchor(props.orientation);\n  const axisProps = svgPropertiesNoEvents(others);\n  const customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n\n  const items = ticks.map((entry, i) => {\n    const coord = getTickValueCoord(entry, props.angle, props.cx, props.cy);\n    const tickProps = {\n      textAnchor,\n      transform: `rotate(${90 - angle}, ${coord.x}, ${coord.y})`,\n      ...axisProps,\n      stroke: 'none',\n      fill: stroke,\n      ...customTickProps,\n      index: i,\n      ...coord,\n      payload: entry,\n    };\n\n    return (\n      <Layer\n        className={clsx('recharts-polar-radius-axis-tick', getClassNameFromUnknown(tick))}\n        key={`tick-${entry.coordinate}`}\n        {...adaptEventsOfChild(props, entry, i)}\n      >\n        {renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value)}\n      </Layer>\n    );\n  });\n\n  return <Layer className=\"recharts-polar-radius-axis-ticks\">{items}</Layer>;\n};\n\nexport const PolarRadiusAxisWrapper: FunctionComponent<PropsWithDefaults> = (defaultsAndInputs: PropsWithDefaults) => {\n  const { radiusAxisId } = defaultsAndInputs;\n\n  const viewBox = useAppSelector(selectPolarViewBox);\n  const scale = useAppSelector(state => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId));\n  const ticks = useAppSelector(state => selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false));\n\n  if (viewBox == null || !ticks || !ticks.length || scale == null) {\n    return null;\n  }\n\n  const props: InsideProps = {\n    ...defaultsAndInputs,\n    scale,\n    ...viewBox,\n  };\n\n  const { tick, axisLine } = props;\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-polar-radius-axis', AXIS_TYPE, props.className)}>\n        {axisLine && renderAxisLine(props, ticks)}\n        {tick && renderTicks(props, ticks)}\n        <PolarLabelContextProvider {...getViewBox(props.angle, props.cx, props.cy, ticks)}>\n          <PolarLabelFromLabelProp label={props.label} />\n          {props.children}\n        </PolarLabelContextProvider>\n      </Layer>\n    </ZIndexLayer>\n  );\n};\n\n/**\n * @provides PolarLabelContext\n * @consumes PolarViewBoxContext\n */\nexport function PolarRadiusAxis(outsideProps: Props) {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, defaultPolarRadiusAxisProps);\n  return (\n    <>\n      <SetRadiusAxisSettings\n        domain={props.domain}\n        id={props.radiusAxisId}\n        scale={props.scale}\n        type={props.type}\n        dataKey={props.dataKey}\n        unit={undefined}\n        name={props.name}\n        allowDuplicatedCategory={props.allowDuplicatedCategory}\n        allowDataOverflow={props.allowDataOverflow}\n        reversed={props.reversed}\n        includeHidden={props.includeHidden}\n        allowDecimals={props.allowDecimals}\n        // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?\n        ticks={props.ticks}\n        tickCount={props.tickCount}\n        tick={props.tick}\n      />\n      <PolarRadiusAxisWrapper {...props} />\n    </>\n  );\n}\n\nPolarRadiusAxis.displayName = 'PolarRadiusAxis';\n","import * as React from 'react';\nimport { FunctionComponent, ReactNode, SVGProps, useEffect, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Polygon } from '../shape/Polygon';\nimport { Text, TextAnchor, TextVerticalAnchor } from '../component/Text';\nimport {\n  adaptEventsOfChild,\n  AxisDomain,\n  AxisDomainTypeInput,\n  BaseTickContentProps,\n  EvaluatedAxisDomainType,\n  PresentationAttributesAdaptChildEvent,\n  RenderableAxisProps,\n  ScaleType,\n  TickItem,\n  TickProp,\n} from '../util/types';\nimport { degreeToRadian, polarToCartesian } from '../util/PolarUtils';\nimport { addAngleAxis, AngleAxisSettings, removeAngleAxis } from '../state/polarAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectPolarAngleAxisTicks, selectPolarAxisScale } from '../state/selectors/polarScaleSelectors';\nimport { selectAngleAxis, selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { defaultPolarAngleAxisProps } from './defaultPolarAngleAxisProps';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { RechartsScale } from '../util/scale/RechartsScale';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\nimport { usePolarChartLayout } from '../context/chartLayoutContext';\nimport { noop } from '../util/DataUtils';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\n\nconst eps = 1e-5;\nconst COS_45 = Math.cos(degreeToRadian(45));\n\nexport interface PolarAngleAxisProps\n  extends Omit<RenderableAxisProps, 'axisLine' | 'tickCount' | 'domain' | 'scale' | 'tick'>, ZIndexable {\n  /**\n   * Controls axis line element. These are be passed as props to SVG `<line>` element representing the axis line.\n   * If `true` then the axis line is drawn using props of the PolarAngleAxis component.\n   * If `false` then the axis line is not drawn.\n   *\n   * Also see `axisLineType` prop to change the shape of the axis line.\n   *\n   * @defaultValue true\n   *\n   * @example <PolarAngleAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />\n   * @example <PolarAngleAxis axisLine={false} />\n   * @example <PolarAngleAxis stroke='red' strokeWidth={2} strokeDasharray={4} />\n   */\n  axisLine?: boolean | SVGProps<SVGLineElement>;\n  /**\n   * @defaultValue false\n   */\n  allowDecimals?: boolean;\n  /**\n   * Allow the axis has duplicated categories or not when the type of axis is \"category\".\n   * @defaultValue true\n   */\n  allowDuplicatedCategory?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  angleAxisId?: string | number;\n  /**\n   * The type of axis line.\n   * @defaultValue polygon\n   */\n  axisLineType?: 'polygon' | 'circle';\n  /**\n   * The x-coordinate of center.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  cx?: number;\n  /**\n   * The y-coordinate of center.\n   * When used inside a chart context, this prop is calculated based on the chart's dimensions,\n   * and this prop is ignored.\n   *\n   * This is only used when rendered outside a chart context.\n   */\n  cy?: number;\n  /**\n   * The orientation of axis text.\n   * @defaultValue 'outer'\n   */\n  orientation?: 'inner' | 'outer';\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <PolarAngleAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <PolarAngleAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <PolarAngleAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <PolarAngleAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <PolarAngleAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <PolarAngleAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <PolarAngleAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <PolarAngleAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <PolarAngleAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <PolarAngleAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n  /**\n   * The outer radius of circle grid.\n   * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.\n   */\n  radius?: number | string;\n  /**\n   * Defines how the individual label text is rendered.\n   * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.\n   *\n   * If you want to customize the overall axis label, use the `label` prop instead.\n   *\n   * Options:\n   * - `false`: Do not render any tick labels.\n   * - `true`: Render tick labels with default settings.\n   * - `object`: An object of props to be merged into the internally calculated tick props.\n   * - `ReactElement`: A custom React element to be used as the tick label.\n   * - `function`: A function that returns a React element for custom rendering of tick labels.\n   *\n   * @defaultValue true\n   */\n  tick?: TickProp<BaseTickContentProps>;\n\n  /**\n   * The count of axis ticks. Not used if 'type' is 'category'.\n   */\n  tickCount?: number;\n  /**\n   * The formatter function of ticks.\n   */\n  tickFormatter?: (value: any, index: number) => string;\n  /**\n   * The length of tick line.\n   * @defaultValue 8\n   */\n  tickSize?: number;\n  /**\n   * The array of every tick's value and angle.\n   */\n  ticks?: ReadonlyArray<TickItem>;\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * `auto`: the type is inferred based on the chart layout.\n   *\n   * @defaultValue auto\n   */\n  type?: AxisDomainTypeInput;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 500\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  /**\n   * The customized event handler of click on the ticks of this axis\n   */\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousedown on the ticks of this axis\n   */\n  onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseup on the ticks of this axis\n   */\n  onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousemove on the ticks of this axis\n   */\n  onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseover on the ticks of this axis\n   */\n  onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseout on the ticks of this axis\n   */\n  onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter on the ticks of this axis\n   */\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the ticks of this axis\n   */\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n}\n\ntype AxisSvgProps = Omit<\n  PresentationAttributesAdaptChildEvent<any, SVGTextElement>,\n  'scale' | 'type' | 'dangerouslySetInnerHTML'\n>;\n\nexport type Props = AxisSvgProps & PolarAngleAxisProps;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof defaultPolarAngleAxisProps>;\n\ntype InsideProps = Omit<PropsWithDefaults, 'scale'> & {\n  cx: number;\n  cy: number;\n  radius: number;\n  ticks: ReadonlyArray<TickItem>;\n  scale: RechartsScale;\n};\n\nconst AXIS_TYPE = 'angleAxis';\n\ntype AngleAxisSettingsReporter = Omit<AngleAxisSettings, 'type'> & {\n  children: ReactNode;\n  type: AxisDomainTypeInput;\n};\n\nfunction SetAngleAxisSettings(props: AngleAxisSettingsReporter): ReactNode {\n  const dispatch = useAppDispatch();\n  const layout = usePolarChartLayout();\n  const settings: AngleAxisSettings | undefined = useMemo(() => {\n    const { children, type: typeFromProps, ...rest } = props;\n    const evaluatedType: EvaluatedAxisDomainType | undefined = getAxisTypeBasedOnLayout(\n      layout,\n      'angleAxis',\n      typeFromProps,\n    );\n    if (evaluatedType == null) {\n      return undefined;\n    }\n    return { ...rest, type: evaluatedType };\n  }, [props, layout]);\n  const synchronizedSettings = useAppSelector(state => selectAngleAxis(state, settings?.id));\n  const settingsAreSynchronized = settings === synchronizedSettings;\n  useEffect(() => {\n    if (settings == null) {\n      return noop;\n    }\n    dispatch(addAngleAxis(settings));\n    return () => {\n      dispatch(removeAngleAxis(settings));\n    };\n  }, [dispatch, settings]);\n\n  if (settingsAreSynchronized) {\n    return props.children;\n  }\n  return null;\n}\n\n/**\n * Calculate the coordinate of line endpoint\n * @param data The data if there are ticks\n * @param props axis settings\n * @return (x1, y1): The point close to text,\n *         (x2, y2): The point close to axis\n */\nconst getTickLineCoord = (\n  data: TickItem,\n  props: InsideProps,\n): {\n  x1: number;\n  y1: number;\n  x2: number;\n  y2: number;\n} => {\n  const { cx, cy, radius, orientation, tickSize } = props;\n  const tickLineSize = tickSize || 8;\n  const p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n  const p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n\n  return { x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y };\n};\n\n/**\n * Get the text-anchor of each tick\n * @param data Data of ticks\n * @param orientation of the axis ticks\n * @return text-anchor\n */\nconst getTickTextAnchor = (data: TickItem, orientation: Props['orientation']): TextAnchor => {\n  const cos = Math.cos(degreeToRadian(-data.coordinate));\n\n  if (cos > eps) {\n    return orientation === 'outer' ? 'start' : 'end';\n  }\n  if (cos < -eps) {\n    return orientation === 'outer' ? 'end' : 'start';\n  }\n  return 'middle';\n};\n\n/**\n * Get the text vertical anchor of each tick\n * @param data Data of a tick\n * @return text vertical anchor\n */\nconst getTickTextVerticalAnchor = (data: TickItem): TextVerticalAnchor => {\n  const cos = Math.cos(degreeToRadian(-data.coordinate));\n  const sin = Math.sin(degreeToRadian(-data.coordinate));\n\n  // handle top and bottom sectors: 90±45deg and 270±45deg\n  if (Math.abs(cos) <= COS_45) {\n    // sin > 0: top sector, sin < 0: bottom sector\n    return sin > 0 ? 'start' : 'end';\n  }\n\n  return 'middle';\n};\n\nconst AxisLine = (props: InsideProps) => {\n  const { cx, cy, radius, axisLineType, axisLine, ticks } = props;\n  if (!axisLine) {\n    return null;\n  }\n  const axisLineProps = {\n    ...svgPropertiesNoEvents(props),\n    fill: 'none',\n    ...svgPropertiesNoEvents(axisLine),\n  };\n\n  if (axisLineType === 'circle') {\n    // @ts-expect-error wrong SVG element type\n    return <Dot className=\"recharts-polar-angle-axis-line\" {...axisLineProps} cx={cx} cy={cy} r={radius} />;\n  }\n  const points = ticks.map(entry => polarToCartesian(cx, cy, radius, entry.coordinate));\n\n  // @ts-expect-error wrong SVG element type\n  return <Polygon className=\"recharts-polar-angle-axis-line\" {...axisLineProps} points={points} />;\n};\n\ntype TickItemProps = {\n  tick: TickProp<BaseTickContentProps>;\n  tickProps: BaseTickContentProps;\n  value: string | number;\n};\n\nconst TickItemText = ({ tick, tickProps, value }: TickItemProps): ReactNode => {\n  if (!tick) {\n    return null;\n  }\n  if (React.isValidElement(tick)) {\n    return React.cloneElement(tick, tickProps);\n  }\n  if (typeof tick === 'function') {\n    return tick(tickProps);\n  }\n  return (\n    <Text {...tickProps} className=\"recharts-polar-angle-axis-tick-value\">\n      {value}\n    </Text>\n  );\n};\n\nconst Ticks = (props: InsideProps) => {\n  const { tick, tickLine, tickFormatter, stroke, ticks } = props;\n  const axisProps = svgPropertiesNoEvents(props);\n  const customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n  const tickLineProps = {\n    ...axisProps,\n    fill: 'none',\n    ...svgPropertiesNoEvents(tickLine),\n  };\n\n  const items = ticks.map((entry, i) => {\n    const lineCoord = getTickLineCoord(entry, props);\n    const textAnchor: TextAnchor = getTickTextAnchor(entry, props.orientation);\n    const verticalAnchor: TextVerticalAnchor = getTickTextVerticalAnchor(entry);\n    const tickProps: BaseTickContentProps = {\n      ...axisProps,\n      // @ts-expect-error customTickProps is contributing unknown props\n      textAnchor,\n      verticalAnchor,\n      // @ts-expect-error customTickProps is contributing unknown props\n      stroke: 'none',\n      // @ts-expect-error customTickProps is contributing unknown props\n      fill: stroke,\n      ...customTickProps,\n      index: i,\n      payload: entry,\n      x: lineCoord.x2,\n      y: lineCoord.y2,\n    };\n\n    return (\n      <Layer\n        className={clsx('recharts-polar-angle-axis-tick', getClassNameFromUnknown(tick))}\n        key={`tick-${entry.coordinate}`}\n        {...adaptEventsOfChild(props, entry, i)}\n      >\n        {/* @ts-expect-error we're passing recharts internal `scale` prop in place of SVG scale prop */}\n        {tickLine && <line className=\"recharts-polar-angle-axis-tick-line\" {...tickLineProps} {...lineCoord} />}\n        <TickItemText\n          tick={tick}\n          tickProps={tickProps}\n          value={tickFormatter ? tickFormatter(entry.value, i) : entry.value}\n        />\n      </Layer>\n    );\n  });\n\n  return <Layer className=\"recharts-polar-angle-axis-ticks\">{items}</Layer>;\n};\n\nexport const PolarAngleAxisWrapper: FunctionComponent<PropsWithDefaults> = (defaultsAndInputs: PropsWithDefaults) => {\n  const { angleAxisId } = defaultsAndInputs;\n\n  const viewBox = useAppSelector(selectPolarViewBox);\n  const scale = useAppSelector(state => selectPolarAxisScale(state, 'angleAxis', angleAxisId));\n  const isPanorama = useIsPanorama();\n  const ticks = useAppSelector(state => selectPolarAngleAxisTicks(state, 'angleAxis', angleAxisId, isPanorama));\n\n  if (viewBox == null || !ticks || !ticks.length || scale == null) {\n    return null;\n  }\n\n  const props: InsideProps = {\n    ...defaultsAndInputs,\n    scale,\n    ...viewBox,\n    radius: viewBox.outerRadius,\n    ticks,\n  };\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-polar-angle-axis', AXIS_TYPE, props.className)}>\n        <AxisLine {...props} />\n        <Ticks {...props} />\n      </Layer>\n    </ZIndexLayer>\n  );\n};\n\n/**\n * @provides PolarLabelContext\n * @consumes PolarViewBoxContext\n */\nexport function PolarAngleAxis(outsideProps: Props): React.ReactNode {\n  const props = resolveDefaultProps(outsideProps, defaultPolarAngleAxisProps);\n\n  return (\n    <SetAngleAxisSettings\n      id={props.angleAxisId}\n      scale={props.scale}\n      type={props.type}\n      dataKey={props.dataKey}\n      unit={undefined}\n      name={props.name}\n      allowDuplicatedCategory={false} // Ignoring the prop on purpose because axis calculation behaves as if it was false and Tooltip requires it to be true.\n      allowDataOverflow={false}\n      reversed={props.reversed}\n      includeHidden={false}\n      allowDecimals={props.allowDecimals}\n      tickCount={props.tickCount}\n      // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?\n      ticks={props.ticks}\n      tick={props.tick}\n      domain={props.domain}\n    >\n      <PolarAngleAxisWrapper {...props} />\n    </SetAngleAxisSettings>\n  );\n}\n\nPolarAngleAxis.displayName = 'PolarAngleAxis';\n","import { createSelector } from 'reselect';\nimport { ReactElement } from 'react';\nimport { CellProps } from '../..';\nimport { computePieSectors, PieSectorDataItem } from '../../polar/Pie';\nimport { RechartsRootState } from '../store';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { ChartData, ChartDataState } from '../chartDataSlice';\nimport { ChartOffsetInternal } from '../../util/types';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport type { LegendPayload } from '../../component/DefaultLegendContent';\nimport { getTooltipNameProp, getValueByDataKey } from '../../util/ChartUtils';\nimport { selectUnfilteredPolarItems } from './polarSelectors';\nimport { PieSettings } from '../types/PieSettings';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\n\nconst pickId = (_state: RechartsRootState, id: GraphicalItemId): GraphicalItemId => id;\n\nconst selectSynchronisedPieSettings: (state: RechartsRootState, id: GraphicalItemId) => PieSettings | undefined =\n  createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, id) =>\n    graphicalItems.filter(item => item.type === 'pie').find(item => item.id === id),\n  );\n\n// Keep stable reference to an empty array to prevent re-renders\nconst emptyArray: ReadonlyArray<ReactElement> = [];\nconst pickCells = (\n  _state: RechartsRootState,\n  _id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n): ReadonlyArray<ReactElement> | undefined => {\n  if (cells?.length === 0) {\n    return emptyArray;\n  }\n  return cells;\n};\n\nexport const selectDisplayedData: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ChartData | undefined = createSelector(\n  [selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedPieSettings, pickCells],\n  ({ chartData }: ChartDataState, pieSettings: PieSettings | undefined, cells): ChartData | undefined => {\n    if (pieSettings == null) {\n      return undefined;\n    }\n    let displayedData: ChartData | undefined;\n    if (pieSettings?.data != null && pieSettings.data.length > 0) {\n      displayedData = pieSettings.data;\n    } else {\n      displayedData = chartData;\n    }\n\n    if ((!displayedData || !displayedData.length) && cells != null) {\n      displayedData = cells.map((cell: ReactElement<CellProps>) => ({\n        ...pieSettings.presentationProps,\n        ...cell.props,\n      }));\n    }\n\n    if (displayedData == null) {\n      return undefined;\n    }\n\n    return displayedData;\n  },\n);\n\nexport const selectPieLegend: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<LegendPayload> | undefined = createSelector(\n  [selectDisplayedData, selectSynchronisedPieSettings, pickCells],\n  (\n    displayedData: ChartData | undefined,\n    pieSettings: PieSettings | undefined,\n    cells: ReadonlyArray<ReactElement> | undefined,\n  ): ReadonlyArray<LegendPayload> | undefined => {\n    if (displayedData == null || pieSettings == null) {\n      return undefined;\n    }\n    return displayedData.map((entry, i): LegendPayload => {\n      const name = getValueByDataKey(entry, pieSettings.nameKey, pieSettings.name);\n      let color;\n      if (cells?.[i]?.props?.fill) {\n        color = cells[i].props.fill;\n      } else if (typeof entry === 'object' && entry != null && 'fill' in entry) {\n        color = entry.fill;\n      } else {\n        color = pieSettings.fill;\n      }\n      return {\n        value: getTooltipNameProp(name, pieSettings.dataKey),\n        color,\n        // @ts-expect-error we need a better typing for our data inputs\n        payload: entry,\n        type: pieSettings.legendType,\n      };\n    });\n  },\n);\n\nexport const selectPieSectors: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<PieSectorDataItem> | undefined = createSelector(\n  [selectDisplayedData, selectSynchronisedPieSettings, pickCells, selectChartOffsetInternal],\n  (\n    displayedData: ChartData | undefined,\n    pieSettings: PieSettings | undefined,\n    cells,\n    offset: ChartOffsetInternal,\n  ): ReadonlyArray<PieSectorDataItem> | undefined => {\n    if (pieSettings == null || displayedData == null) {\n      return undefined;\n    }\n    return computePieSectors({\n      offset,\n      pieSettings,\n      displayedData,\n      cells,\n    });\n  },\n);\n","import * as React from 'react';\nimport { MutableRefObject, ReactElement, ReactNode, SVGProps, useCallback, useMemo, useRef, useState } from 'react';\nimport get from 'es-toolkit/compat/get';\n\nimport { clsx } from 'clsx';\nimport { selectPieLegend, selectPieSectors } from '../state/selectors/pieSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { Layer } from '../container/Layer';\nimport { Curve, Props as CurveProps } from '../shape/Curve';\nimport { Text } from '../component/Text';\nimport { Cell } from '../component/Cell';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getMaxRadius, polarToCartesian } from '../util/PolarUtils';\nimport { getPercentValue, interpolate, isNumber, mathSign } from '../util/DataUtils';\nimport { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport {\n  ActiveShape,\n  adaptEventsOfChild,\n  AnimationDuration,\n  AnimationTiming,\n  ChartOffsetInternal,\n  Coordinate,\n  DataKey,\n  DataProvider,\n  GeometrySector,\n  LegendType,\n  PresentationAttributesAdaptChildEvent,\n  TooltipType,\n} from '../util/types';\nimport { Shape } from '../util/ActiveShapeUtils';\nimport {\n  useMouseClickItemDispatch,\n  useMouseEnterItemDispatch,\n  useMouseLeaveItemDispatch,\n} from '../context/tooltipContext';\nimport { TooltipPayload, TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport {\n  selectActiveTooltipDataKey,\n  selectActiveTooltipGraphicalItemId,\n  selectActiveTooltipIndex,\n} from '../state/selectors/tooltipSelectors';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { PiePresentationProps, PieSettings } from '../state/types/PieSettings';\nimport {\n  svgPropertiesNoEvents,\n  svgPropertiesNoEventsFromUnknown,\n  SVGPropsNoEvents,\n} from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport {\n  LabelListFromLabelProp,\n  PolarLabelListContextProvider,\n  PolarLabelListEntry,\n  Props as LabelListProps,\n} from '../component/LabelList';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { ChartData } from '../state/chartDataSlice';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\n\ninterface PieDef {\n  /**\n   * The x-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of container width.\n   */\n  cx?: number | string;\n  /**\n   * The y-coordinate of center. If set a percentage, the final value is obtained by multiplying the percentage of container height.\n   */\n  cy?: number | string;\n  /**\n   * Angle in degrees from which the chart should start.\n   */\n  startAngle?: number;\n  /**\n   * Angle, in degrees, at which the chart should end.\n   */\n  endAngle?: number;\n  /**\n   * The angle between two sectors.\n   *\n   * @example <Pie paddingAngle={5} />\n   * @example https://recharts.github.io/examples/PieChartWithPaddingAngle\n   */\n  paddingAngle?: number;\n  /**\n   * The inner radius of the sectors.\n   * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.\n   */\n  innerRadius?: number | string;\n  /**\n   * The outer radius of the sectors.\n   * If set a percentage, the final value is obtained by multiplying the percentage of maxRadius which is calculated by the width, height, cx, cy.\n   * Function should return a string percentage or number.\n   */\n  outerRadius?: number | string | ((dataPoint: any) => number | string);\n  cornerRadius?: number | string;\n}\n\ntype PieLabelLine =\n  | ReactElement<SVGElement>\n  | ((props: any) => ReactElement<SVGElement>)\n  | SVGProps<SVGPathElement>\n  | boolean;\n\ninterface PieLabelExtraProps {\n  stroke: string;\n  index: number;\n  textAnchor: string;\n}\n\nexport type PieLabelRenderProps = Omit<SVGPropsNoEvents<PieSvgAttributes>, 'offset'> &\n  Omit<PieSectorDataItem, 'offset'> &\n  PieLabelExtraProps &\n  Coordinate;\n\nexport type LabelListPropsWithPosition = LabelListProps & { position: LabelListProps['position'] };\n\n/**\n * The `label` prop in Pie accepts a variety of alternatives.\n */\nexport type PieLabel =\n  /*\n   * If label prop is false, labels don't show.\n   * If label prop is true, labels will be rendered with default props.\n   */\n  | boolean\n  /*\n   * If label prop is an object, and it contains a `position` prop,\n   * the object will become props to a <LabelList /> component.\n   */\n  | LabelListPropsWithPosition\n  /*\n   * If label prop is an object, and it does not have a `position` prop,\n   * this renders a special Pie label that is similar to <Label position=\"outside\"> and supports an optional labelLine.\n   * labelLine is a small line connecting the sector to the label.\n   */\n  | Partial<PieLabelRenderProps>\n  /*\n   * If label prop is a function, or a React component, it will be called once for each label.\n   * The result of each call will be rendered.\n   */\n  | ((props: PieLabelRenderProps) => ReactNode | ReactElement<SVGElement>)\n  /*\n   * If label prop is a ReactElement, it will get cloned and receive brand-new surprise props.\n   * I do not recommend this variant\n   */\n  | ReactElement<SVGElement>;\n\nexport type PieSectorData = GeometrySector & {\n  dataKey?: DataKey<any>;\n  midAngle?: number;\n  middleRadius?: number;\n  name?: string | number;\n  paddingAngle?: number;\n  payload?: any;\n  percent?: number;\n  tooltipPayload?: TooltipPayload;\n  tooltipPosition: Coordinate;\n  value: number;\n};\n\n/**\n * We spread the data object into the sector data item,\n * so we can't really know what is going to be inside.\n *\n * This type represents our best effort, but it all depends on the input data\n * and what is inside of it.\n *\n * https://github.com/recharts/recharts/issues/6380\n * https://github.com/recharts/recharts/discussions/6375\n */\nexport type PieSectorDataItem = PiePresentationProps &\n  PieCoordinate &\n  PieSectorData & {\n    cornerRadius: number | undefined;\n  };\n\nexport type PieSectorShapeProps = PieSectorDataItem & { isActive: boolean; index: number };\nexport type PieShape = ReactNode | ((props: PieSectorShapeProps, index: number) => React.ReactElement);\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\ninterface InternalPieProps extends DataProvider, PieDef, ZIndexable {\n  id: GraphicalItemId;\n  className?: string;\n  dataKey: DataKey<any>;\n  nameKey?: DataKey<any>;\n  /** The minimum angle for no-zero element */\n  minAngle?: number;\n  legendType?: LegendType;\n  tooltipType?: TooltipType;\n  /** the max radius of pie */\n  maxRadius?: number;\n  hide?: boolean;\n  sectors: ReadonlyArray<PieSectorDataItem>;\n  /** @deprecated */\n  activeShape?: ActiveShape<PieSectorDataItem>;\n  /** @deprecated */\n  inactiveShape?: ActiveShape<PieSectorDataItem>;\n  shape?: PieShape;\n  labelLine?: PieLabelLine;\n  label?: PieLabel;\n  animationEasing?: AnimationTiming;\n  isAnimationActive?: boolean | 'auto';\n  animationBegin?: number;\n  animationDuration?: AnimationDuration;\n  onAnimationStart?: () => void;\n  onAnimationEnd?: () => void;\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  rootTabIndex?: number;\n}\n\ninterface PieProps extends DataProvider, PieDef, ZIndexable {\n  /**\n   * This component is rendered when this graphical item is activated\n   * (could be by mouse hover, touch, keyboard, programmatically).\n   *\n   * @deprecated Use the `shape` prop to create each sector. `isActive` designates the \"active\" shape.\n   * @example <Pie activeShape={<CustomActiveShape />} />\n   * @example https://recharts.github.io/examples/CustomActiveShapePieChart\n   */\n  activeShape?: ActiveShape<PieSectorDataItem>;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 400\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  className?: string;\n  /**\n   * Decides how to extract the value of this Pie from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Pie.\n   *\n   * @defaultValue value\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  id?: string;\n  /**\n   * The shape of inactive sector.\n   * @deprecated Use the `shape` prop to modify each sector.\n   */\n  inactiveShape?: ActiveShape<PieSectorDataItem>;\n  /**\n   * If set false, animation will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  /**\n   * Renders one label for each pie sector. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object` that has `position` prop: the props of LabelList component;\n   * - `object` that does not have `position` prop: the props of a custom Pie label (similar to Label with position \"outside\"); this variant supports `labelLine`\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * Also see the `labelLine` prop that draws a line connecting each label to the corresponding sector.\n   *\n   * @defaultValue false\n   * @example <Pie label={<CustomizedLabel />} />\n   * @example https://recharts.github.io/examples/PieChartWithCustomizedLabel\n   */\n  label?: PieLabel;\n  /**\n   * If false set, label lines will not be drawn. If true set, label lines will be drawn which have the props calculated internally.\n   * If object set, label lines will be drawn which have the props merged by the internal calculated props and the option.\n   * If ReactElement set, the option can be the custom label line element.\n   * If set a function, the function will be called to render customized label line.\n   * @defaultValue true\n   * @example <Pie labelLine={<CustomizedLabelLine />} />\n   * @example https://recharts.github.io/examples/PieChartWithCustomizedLabel\n   */\n  labelLine?: PieLabelLine;\n  /**\n   * The type of icon in legend. If set to 'none', no legend item will be rendered.\n   * @defaultValue rect\n   */\n  legendType?: LegendType;\n  /** the max radius of pie */\n  maxRadius?: number;\n  /**\n   * The minimum angle of each unzero data.\n   * @defaultValue 0\n   */\n  minAngle?: number;\n  /**\n   * Name represents each sector in the tooltip, and legend.\n   * This allows you to extract the name from the data:\n   *\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the name.\n   *\n   * @defaultValue name\n   */\n  nameKey?: DataKey<any>;\n  /**\n   * The customized event handler of animation end.\n   */\n  onAnimationEnd?: () => void;\n  /**\n   * The customized event handler of animation start.\n   */\n  onAnimationStart?: () => void;\n  /**\n   * The customized event handler of click on the sectors in this group.\n   */\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousedown on the sectors in this group.\n   */\n  onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseup on the sectors in this group.\n   */\n  onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousemove on the sectors in this group.\n   */\n  onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseover on the sectors in this group.\n   */\n  onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseout on the sectors in this group.\n   */\n  onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter on the sectors in this group.\n   */\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the sectors in this group.\n   */\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The tabindex of wrapper surrounding the cells.\n   * @defaultValue 0\n   */\n  rootTabIndex?: number;\n  /**\n   * The custom shape of a Pie Sector.\n   * Can also be used to render active sector by checking isActive.\n   * If undefined, renders {@link Sector} shape.\n   */\n  shape?: PieShape;\n  tooltipType?: TooltipType;\n  /**\n   * @defaultValue 100\n   */\n  zIndex?: number;\n}\n\ntype PieSvgAttributes = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'ref'>;\n\ntype InternalProps = PieSvgAttributes & InternalPieProps;\n\nexport type Props = PieSvgAttributes & PieProps;\n\ntype RealPieData = Record<string, unknown>;\n\nexport type PieCoordinate = {\n  cx: number;\n  cy: number;\n  innerRadius: number;\n  outerRadius: number;\n  maxRadius: number;\n};\n\nfunction SetPiePayloadLegend(props: { children?: ReactNode; id: GraphicalItemId }) {\n  const cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n\n  const legendPayload = useAppSelector(state => selectPieLegend(state, props.id, cells));\n  if (legendPayload == null) {\n    return null;\n  }\n  return <SetPolarLegendPayload legendPayload={legendPayload} />;\n}\n\ntype PieSectorsProps = {\n  sectors: Readonly<PieSectorDataItem[]>;\n  /**\n   * @deprecated\n   */\n  activeShape: ActiveShape<Readonly<PieSectorDataItem>> | undefined;\n  /**\n   * @deprecated\n   */\n  inactiveShape: ActiveShape<Readonly<PieSectorDataItem>> | undefined;\n  shape: PieShape;\n  allOtherPieProps: WithoutId<InternalProps>;\n  id: GraphicalItemId;\n};\n\nconst SetPieTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    nameKey,\n    sectors,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    tooltipType,\n    id,\n  }: Pick<\n    InternalProps,\n    'dataKey' | 'nameKey' | 'sectors' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: sectors.map((p: PieSectorDataItem) => p.tooltipPayload),\n      getPosition: index => sectors[Number(index)]?.tooltipPosition,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        nameKey,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: fill,\n        unit: '', // why doesn't Pie support unit?\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nconst getTextAnchor = (x: number, cx: number) => {\n  if (x > cx) {\n    return 'start';\n  }\n  if (x < cx) {\n    return 'end';\n  }\n\n  return 'middle';\n};\n\nconst getOuterRadius = (\n  dataPoint: any,\n  outerRadius: number | string | ((element: any) => number | string),\n  maxPieRadius: number,\n) => {\n  if (typeof outerRadius === 'function') {\n    return getPercentValue(outerRadius(dataPoint), maxPieRadius, maxPieRadius * 0.8);\n  }\n  return getPercentValue(outerRadius, maxPieRadius, maxPieRadius * 0.8);\n};\n\nconst parseCoordinateOfPie = (pieSettings: PieSettings, offset: ChartOffsetInternal, dataPoint: any): PieCoordinate => {\n  const { top, left, width, height } = offset;\n  const maxPieRadius = getMaxRadius(width, height);\n  const cx = left + getPercentValue(pieSettings.cx, width, width / 2);\n  const cy = top + getPercentValue(pieSettings.cy, height, height / 2);\n  const innerRadius = getPercentValue(pieSettings.innerRadius, maxPieRadius, 0);\n\n  const outerRadius = getOuterRadius(dataPoint, pieSettings.outerRadius, maxPieRadius);\n\n  const maxRadius = pieSettings.maxRadius || Math.sqrt(width * width + height * height) / 2;\n\n  return { cx, cy, innerRadius, outerRadius, maxRadius };\n};\n\nconst parseDeltaAngle = (startAngle: number, endAngle: number) => {\n  const sign = mathSign(endAngle - startAngle);\n  const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n\n  return sign * deltaAngle;\n};\n\nconst renderLabelLineItem = (option: PieLabelLine, props: CurveProps) => {\n  if (React.isValidElement(option)) {\n    // @ts-expect-error we can't know if the type of props matches the element\n    return React.cloneElement(option, props);\n  }\n  if (typeof option === 'function') {\n    return option(props);\n  }\n\n  const className = clsx('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : '');\n  // React doesn't like it when we spread a key property onto an element\n  const { key, ...otherProps } = props;\n  return <Curve {...otherProps} type=\"linear\" className={className} />;\n};\n\nconst renderLabelItem = (option: PieLabel, props: PieLabelRenderProps, value: unknown) => {\n  if (React.isValidElement(option)) {\n    // @ts-expect-error element cloning is not typed\n    return React.cloneElement(option, props);\n  }\n  let label = value;\n  if (typeof option === 'function') {\n    label = option(props);\n    if (React.isValidElement(label)) {\n      return label;\n    }\n  }\n\n  const className = clsx('recharts-pie-label-text', getClassNameFromUnknown(option));\n  return (\n    <Text {...props} alignmentBaseline=\"middle\" className={className}>\n      {/* @ts-expect-error we pass unknown but Text expects string | number */}\n      {label}\n    </Text>\n  );\n};\n\nfunction PieLabels({\n  sectors,\n  props,\n  showLabels,\n}: {\n  sectors: ReadonlyArray<PieSectorDataItem>;\n  props: WithoutId<InternalProps>;\n  showLabels: boolean;\n}) {\n  const { label, labelLine, dataKey } = props;\n  if (!showLabels || !label || !sectors) {\n    return null;\n  }\n  const pieProps = svgPropertiesNoEvents(props);\n  const customLabelProps = svgPropertiesNoEventsFromUnknown(label);\n  const customLabelLineProps = svgPropertiesNoEventsFromUnknown(labelLine);\n  const offsetRadius =\n    (typeof label === 'object' &&\n      'offsetRadius' in label &&\n      typeof label.offsetRadius === 'number' &&\n      label.offsetRadius) ||\n    20;\n\n  const labels = sectors.map((entry, i) => {\n    const midAngle = (entry.startAngle + entry.endAngle) / 2;\n    const endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n    const labelProps: PieLabelRenderProps = {\n      ...pieProps,\n      ...entry,\n      // @ts-expect-error customLabelProps is contributing unknown props\n      stroke: 'none',\n      ...customLabelProps,\n      index: i,\n      textAnchor: getTextAnchor(endPoint.x, entry.cx),\n      ...endPoint,\n    };\n    const lineProps: CurveProps = {\n      ...pieProps,\n      ...entry,\n      // @ts-expect-error customLabelLineProps is contributing unknown props\n      fill: 'none',\n      // @ts-expect-error customLabelLineProps is contributing unknown props\n      stroke: entry.fill,\n      ...customLabelLineProps,\n      index: i,\n      points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n      key: 'line',\n    };\n\n    return (\n      <ZIndexLayer\n        zIndex={DefaultZIndexes.label}\n        key={`label-${entry.startAngle}-${entry.endAngle}-${entry.midAngle}-${i}`}\n      >\n        <Layer>\n          {labelLine && renderLabelLineItem(labelLine, lineProps)}\n          {renderLabelItem(label, labelProps, getValueByDataKey(entry, dataKey))}\n        </Layer>\n      </ZIndexLayer>\n    );\n  });\n\n  return <Layer className=\"recharts-pie-labels\">{labels}</Layer>;\n}\n\nfunction PieLabelList({\n  sectors,\n  props,\n  showLabels,\n}: {\n  sectors: ReadonlyArray<PieSectorDataItem>;\n  props: WithoutId<InternalProps>;\n  showLabels: boolean;\n}) {\n  const { label } = props;\n  if (typeof label === 'object' && label != null && 'position' in label) {\n    return <LabelListFromLabelProp label={label} />;\n  }\n  return <PieLabels sectors={sectors} props={props} showLabels={showLabels} />;\n}\n\nfunction PieSectors(props: PieSectorsProps) {\n  const { sectors, activeShape, inactiveShape: inactiveShapeProp, allOtherPieProps, shape, id } = props;\n\n  const activeIndex = useAppSelector(selectActiveTooltipIndex);\n  const activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n  const activeGraphicalItemId = useAppSelector(selectActiveTooltipGraphicalItemId);\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    ...restOfAllOtherProps\n  } = allOtherPieProps;\n\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherPieProps.dataKey, id);\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  const onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherPieProps.dataKey, id);\n\n  if (sectors == null || sectors.length === 0) {\n    return null;\n  }\n\n  return (\n    <>\n      {sectors.map((entry: PieSectorDataItem, i: number) => {\n        if (entry?.startAngle === 0 && entry?.endAngle === 0 && sectors.length !== 1) return null;\n\n        // For Pie charts, when multiple Pies share the same dataKey, we need to ensure only the hovered Pie's sector is active.\n        // We do this by checking if the active graphical item ID matches this Pie's ID.\n        const graphicalItemMatches = activeGraphicalItemId == null || activeGraphicalItemId === id;\n\n        const isActive =\n          String(i) === activeIndex &&\n          (activeDataKey == null || allOtherPieProps.dataKey === activeDataKey) &&\n          graphicalItemMatches;\n        const inactiveShape = activeIndex ? inactiveShapeProp : null;\n        const sectorOptions = activeShape && isActive ? activeShape : inactiveShape;\n        const sectorProps = {\n          ...entry,\n          stroke: entry.stroke,\n          tabIndex: -1,\n          [DATA_ITEM_INDEX_ATTRIBUTE_NAME]: i,\n          [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: id,\n        };\n\n        return (\n          <Layer\n            key={`sector-${entry?.startAngle}-${entry?.endAngle}-${entry.midAngle}-${i}`}\n            tabIndex={-1}\n            className=\"recharts-pie-sector\"\n            {...adaptEventsOfChild(restOfAllOtherProps, entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onMouseEnter={onMouseEnterFromContext(entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onMouseLeave={onMouseLeaveFromContext(entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onClick={onClickFromContext(entry, i)}\n          >\n            <Shape option={shape ?? sectorOptions} index={i} shapeType=\"sector\" isActive={isActive} {...sectorProps} />\n          </Layer>\n        );\n      })}\n    </>\n  );\n}\n\nexport function computePieSectors({\n  pieSettings,\n  displayedData,\n  cells,\n  offset,\n}: {\n  pieSettings: PieSettings;\n  displayedData: ChartData;\n  cells: ReadonlyArray<ReactElement> | undefined;\n  offset: ChartOffsetInternal;\n}): ReadonlyArray<PieSectorDataItem> | undefined {\n  const { cornerRadius, startAngle, endAngle, dataKey, nameKey, tooltipType } = pieSettings;\n  const minAngle = Math.abs(pieSettings.minAngle);\n  const deltaAngle = parseDeltaAngle(startAngle, endAngle);\n  const absDeltaAngle = Math.abs(deltaAngle);\n  const paddingAngle = displayedData.length <= 1 ? 0 : (pieSettings.paddingAngle ?? 0);\n\n  const notZeroItemCount = displayedData.filter(entry => getValueByDataKey(entry, dataKey, 0) !== 0).length;\n  const totalPaddingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;\n  const realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPaddingAngle;\n\n  const sum = displayedData.reduce((result: number, entry: any) => {\n    const val = getValueByDataKey(entry, dataKey, 0);\n    return result + (isNumber(val) ? val : 0);\n  }, 0);\n  let sectors;\n\n  if (sum > 0) {\n    let prev: PieSectorDataItem;\n    sectors = displayedData.map((entry: unknown, i: number) => {\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      const val: number = getValueByDataKey(entry, dataKey, 0);\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      const name: string = getValueByDataKey(entry, nameKey, i);\n      const coordinate: PieCoordinate = parseCoordinateOfPie(pieSettings, offset, entry);\n      const percent = (isNumber(val) ? val : 0) / sum;\n      let tempStartAngle;\n\n      // @ts-expect-error can't spread unknown\n      const entryWithCellInfo: RealPieData = { ...entry, ...(cells && cells[i] && cells[i].props) };\n\n      if (i) {\n        tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);\n      } else {\n        tempStartAngle = startAngle;\n      }\n\n      const tempEndAngle =\n        tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);\n      const midAngle = (tempStartAngle + tempEndAngle) / 2;\n      const middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n\n      const tooltipPayload: TooltipPayload = [\n        {\n          name,\n          value: val,\n          payload: entryWithCellInfo,\n          dataKey,\n          type: tooltipType,\n          graphicalItemId: pieSettings.id,\n        },\n      ];\n      const tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n\n      prev = {\n        ...pieSettings.presentationProps,\n        percent,\n        cornerRadius: typeof cornerRadius === 'string' ? parseFloat(cornerRadius) : cornerRadius,\n        name,\n        tooltipPayload,\n        midAngle,\n        middleRadius,\n        tooltipPosition,\n        ...entryWithCellInfo,\n        ...coordinate,\n        value: val,\n        dataKey,\n        startAngle: tempStartAngle,\n        endAngle: tempEndAngle,\n        payload: entryWithCellInfo,\n        paddingAngle: mathSign(deltaAngle) * paddingAngle,\n      };\n      return prev;\n    });\n  }\n  return sectors;\n}\n\nfunction PieLabelListProvider({\n  showLabels,\n  sectors,\n  children,\n}: {\n  showLabels: boolean;\n  sectors: ReadonlyArray<PieSectorDataItem>;\n  children: ReactNode;\n}) {\n  const labelListEntries: ReadonlyArray<PolarLabelListEntry> = useMemo(() => {\n    if (!showLabels || !sectors) {\n      return [];\n    }\n    return sectors.map(\n      (entry): PolarLabelListEntry => ({\n        value: entry.value,\n        payload: entry.payload,\n        clockWise: false,\n        parentViewBox: undefined,\n        viewBox: {\n          cx: entry.cx,\n          cy: entry.cy,\n          innerRadius: entry.innerRadius,\n          outerRadius: entry.outerRadius,\n          startAngle: entry.startAngle,\n          endAngle: entry.endAngle,\n          clockWise: false,\n        },\n        fill: entry.fill,\n      }),\n    );\n  }, [sectors, showLabels]);\n  return (\n    <PolarLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </PolarLabelListContextProvider>\n  );\n}\n\ntype WithoutId<T> = Omit<T, 'id'>;\n\nfunction SectorsWithAnimation({\n  props,\n  previousSectorsRef,\n  id,\n}: {\n  props: WithoutId<InternalProps>;\n  previousSectorsRef: MutableRefObject<ReadonlyArray<PieSectorDataItem> | null>;\n  id: GraphicalItemId;\n}) {\n  const {\n    sectors,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    activeShape,\n    inactiveShape,\n    onAnimationStart,\n    onAnimationEnd,\n  } = props;\n  const animationId = useAnimationId(props, 'recharts-pie-');\n\n  const prevSectors = previousSectorsRef.current;\n\n  const [isAnimating, setIsAnimating] = useState(false);\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n  return (\n    <PieLabelListProvider showLabels={!isAnimating} sectors={sectors}>\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        onAnimationStart={handleAnimationStart}\n        onAnimationEnd={handleAnimationEnd}\n        key={animationId}\n      >\n        {(t: number) => {\n          const stepData: PieSectorDataItem[] = [];\n          const first: PieSectorDataItem | undefined = sectors && sectors[0];\n          let curAngle: number = first?.startAngle ?? 0;\n\n          sectors?.forEach((entry, index) => {\n            const prev = prevSectors && prevSectors[index];\n            const paddingAngle = index > 0 ? get(entry, 'paddingAngle', 0) : 0;\n\n            if (prev) {\n              const angle = interpolate(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle, t);\n              const latest = {\n                ...entry,\n                startAngle: curAngle + paddingAngle,\n                endAngle: curAngle + angle + paddingAngle,\n              };\n\n              stepData.push(latest);\n              curAngle = latest.endAngle;\n            } else {\n              const { endAngle, startAngle } = entry;\n              const deltaAngle = interpolate(0, endAngle - startAngle, t);\n              const latest = {\n                ...entry,\n                startAngle: curAngle + paddingAngle,\n                endAngle: curAngle + deltaAngle + paddingAngle,\n              };\n\n              stepData.push(latest);\n              curAngle = latest.endAngle;\n            }\n          });\n\n          // eslint-disable-next-line no-param-reassign\n          previousSectorsRef.current = stepData;\n          return (\n            <Layer>\n              <PieSectors\n                sectors={stepData}\n                activeShape={activeShape}\n                inactiveShape={inactiveShape}\n                allOtherPieProps={props}\n                shape={props.shape}\n                id={id}\n              />\n            </Layer>\n          );\n        }}\n      </JavascriptAnimate>\n      <PieLabelList showLabels={!isAnimating} sectors={sectors} props={props} />\n      {props.children}\n    </PieLabelListProvider>\n  );\n}\n\nexport const defaultPieProps = {\n  animationBegin: 400,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  cx: '50%',\n  cy: '50%',\n  dataKey: 'value',\n  endAngle: 360,\n  fill: '#808080',\n  hide: false,\n  innerRadius: 0,\n  isAnimationActive: 'auto',\n  label: false,\n  labelLine: true,\n  legendType: 'rect',\n  minAngle: 0,\n  nameKey: 'name',\n  outerRadius: '80%',\n  paddingAngle: 0,\n  rootTabIndex: 0,\n  startAngle: 0,\n  stroke: '#fff',\n  zIndex: DefaultZIndexes.area,\n} as const satisfies Partial<Props>;\n\nfunction PieImpl(props: Omit<InternalProps, 'sectors'>) {\n  const { id, ...propsWithoutId } = props;\n  const { hide, className, rootTabIndex } = props;\n\n  const cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n\n  const sectors = useAppSelector(state => selectPieSectors(state, id, cells));\n\n  const previousSectorsRef = useRef<ReadonlyArray<PieSectorDataItem> | null>(null);\n\n  const layerClass = clsx('recharts-pie', className);\n\n  if (hide || sectors == null) {\n    previousSectorsRef.current = null;\n    return <Layer tabIndex={rootTabIndex} className={layerClass} />;\n  }\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <SetPieTooltipEntrySettings\n        dataKey={props.dataKey}\n        nameKey={props.nameKey}\n        sectors={sectors}\n        stroke={props.stroke}\n        strokeWidth={props.strokeWidth}\n        fill={props.fill}\n        name={props.name}\n        hide={props.hide}\n        tooltipType={props.tooltipType}\n        id={id}\n      />\n      <Layer tabIndex={rootTabIndex} className={layerClass}>\n        <SectorsWithAnimation props={{ ...propsWithoutId, sectors }} previousSectorsRef={previousSectorsRef} id={id} />\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\ntype PropsWithResolvedDefaults = RequiresDefaultProps<Props, typeof defaultPieProps>;\n\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n * @provides CellReader\n */\nexport function Pie(outsideProps: Props) {\n  const props: PropsWithResolvedDefaults = resolveDefaultProps(outsideProps, defaultPieProps);\n  const { id: externalId, ...propsWithoutId } = props;\n  const presentationProps: PiePresentationProps | null = svgPropertiesNoEvents(propsWithoutId);\n\n  return (\n    <RegisterGraphicalItemId id={externalId} type=\"pie\">\n      {id => (\n        <>\n          <SetPolarGraphicalItem\n            type=\"pie\"\n            id={id}\n            data={propsWithoutId.data}\n            dataKey={propsWithoutId.dataKey}\n            hide={propsWithoutId.hide}\n            angleAxisId={0}\n            radiusAxisId={0}\n            name={propsWithoutId.name}\n            nameKey={propsWithoutId.nameKey}\n            tooltipType={propsWithoutId.tooltipType}\n            legendType={propsWithoutId.legendType}\n            fill={propsWithoutId.fill}\n            cx={propsWithoutId.cx}\n            cy={propsWithoutId.cy}\n            startAngle={propsWithoutId.startAngle}\n            endAngle={propsWithoutId.endAngle}\n            paddingAngle={propsWithoutId.paddingAngle}\n            minAngle={propsWithoutId.minAngle}\n            innerRadius={propsWithoutId.innerRadius}\n            outerRadius={propsWithoutId.outerRadius}\n            cornerRadius={propsWithoutId.cornerRadius}\n            presentationProps={presentationProps}\n            maxRadius={props.maxRadius}\n          />\n          <SetPiePayloadLegend {...propsWithoutId} id={id} />\n          <PieImpl {...propsWithoutId} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\nPie.displayName = 'Pie';\n","import get from 'es-toolkit/compat/get';\n\nimport * as React from 'react';\nimport { Children, ReactNode } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNullish } from './DataUtils';\nimport { ActiveDotType, DotType } from './types';\n\nexport const SCALE_TYPES = [\n  'auto',\n  'linear',\n  'pow',\n  'sqrt',\n  'log',\n  'identity',\n  'time',\n  'band',\n  'point',\n  'ordinal',\n  'quantile',\n  'quantize',\n  'utc',\n  'sequential',\n  'threshold',\n];\n\n/**\n * @deprecated instead find another approach that does not depend on displayName.\n * Get the display name of a component\n * @param  {Object} Comp Specified Component\n * @return {String}      Display name of Component\n */\nexport const getDisplayName = (Comp: React.ComponentType | string) => {\n  if (typeof Comp === 'string') {\n    return Comp;\n  }\n  if (!Comp) {\n    return '';\n  }\n  return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nlet lastChildren: ReactNode | null = null;\nlet lastResult: ReactNode[] | null = null;\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * @param children do not use\n * @return deprecated do not use\n */\nexport const toArray = <T extends ReactNode>(children: T | T[]): T[] => {\n  if (children === lastChildren && Array.isArray(lastResult)) {\n    return lastResult as T[];\n  }\n  let result: T[] = [];\n  Children.forEach(children, child => {\n    if (isNullish(child)) return;\n    if (isFragment(child)) {\n      result = result.concat(toArray(child.props.children));\n    } else {\n      // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that\n      result.push(child);\n    }\n  });\n  lastResult = result;\n  lastChildren = children;\n  return result;\n};\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n *\n * @param children do not use\n * @param type do not use\n * @return deprecated do not use\n */\nexport function findAllByType<\n  ComponentType extends React.ComponentType,\n  DetailedElement = React.DetailedReactHTMLElement<React.ComponentProps<ComponentType>, HTMLElement>,\n>(children: ReactNode, type: ComponentType | ComponentType[]): DetailedElement[] {\n  const result: DetailedElement[] = [];\n  let types: string[] = [];\n\n  if (Array.isArray(type)) {\n    types = type.map(t => getDisplayName(t));\n  } else {\n    types = [getDisplayName(type)];\n  }\n\n  toArray(children).forEach(child => {\n    // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function\n    const childType: string = get(child, 'type.displayName') || get(child, 'type.name');\n    if (childType && types.indexOf(childType) !== -1) {\n      result.push(child as DetailedElement);\n    }\n  });\n\n  return result;\n}\n\nexport const isClipDot = (dot: ActiveDotType | DotType): boolean => {\n  if (dot && typeof dot === 'object' && 'clipDot' in dot) {\n    return Boolean(dot.clipDot);\n  }\n  return true;\n};\n","/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { SVGProps, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { AnimationDuration, AnimationTiming } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { interpolate } from '../util/DataUtils';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\n\nconst getTrapezoidPath = (x: number, y: number, upperWidth: number, lowerWidth: number, height: number): string => {\n  const widthGap = upperWidth - lowerWidth;\n  let path;\n  path = roundTemplateLiteral`M ${x},${y}`;\n  path += roundTemplateLiteral`L ${x + upperWidth},${y}`;\n  path += roundTemplateLiteral`L ${x + upperWidth - widthGap / 2},${y + height}`;\n  path += roundTemplateLiteral`L ${x + upperWidth - widthGap / 2 - lowerWidth},${y + height}`;\n  path += roundTemplateLiteral`L ${x},${y} Z`;\n  return path;\n};\n\ninterface TrapezoidProps {\n  className?: string;\n  /**\n   * The x-coordinate of top left point of the trapezoid.\n   * @default 0\n   */\n  x?: number;\n  /**\n   * The y-coordinate of top left point of the trapezoid.\n   * @default 0\n   */\n  y?: number;\n  /**\n   * Width of the upper horizontal side of the trapezoid in pixels.\n   * @default 0\n   */\n  upperWidth?: number;\n  /**\n   * Width of the lower horizontal side of the trapezoid in pixels.\n   * @default 0\n   */\n  lowerWidth?: number;\n  /**\n   * Height of the trapezoid in pixels.\n   * @default 0\n   */\n  height?: number;\n\n  /**\n   * If set to true, trapezoid will update and render with a gradual fade-in animation from left to right.\n   * @default false\n   */\n  isUpdateAnimationActive?: boolean;\n  animationBegin?: number;\n  animationDuration?: AnimationDuration;\n  animationEasing?: AnimationTiming;\n\n  /**\n   * The customized event handler of click on the trapezoid\n   */\n  onClick?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousedown on the trapezoid\n   */\n  onMouseDown?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseup on the trapezoid\n   */\n  onMouseUp?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mousemove on the trapezoid\n   */\n  onMouseMove?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseover on the trapezoid\n   */\n  onMouseOver?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseout on the trapezoid\n   */\n  onMouseOut?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseenter on the trapezoid\n   */\n  onMouseEnter?: (e: React.MouseEvent<SVGPathElement>) => void;\n  /**\n   * The customized event handler of mouseleave on the trapezoid\n   */\n  onMouseLeave?: (e: React.MouseEvent<SVGPathElement>) => void;\n}\n\nexport type Props = SVGProps<SVGPathElement> & TrapezoidProps;\n\nexport const defaultTrapezoidProps = {\n  x: 0,\n  y: 0,\n  upperWidth: 0,\n  lowerWidth: 0,\n  height: 0,\n  isUpdateAnimationActive: false,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n} as const satisfies Partial<Props>;\n\nexport const Trapezoid: React.FC<Props> = outsideProps => {\n  const trapezoidProps = resolveDefaultProps(outsideProps, defaultTrapezoidProps);\n\n  const { x, y, upperWidth, lowerWidth, height, className } = trapezoidProps;\n  const { animationEasing, animationDuration, animationBegin, isUpdateAnimationActive } = trapezoidProps;\n\n  const pathRef = useRef<SVGPathElement | null>(null);\n  const [totalLength, setTotalLength] = useState(-1);\n\n  const prevUpperWidthRef = useRef<number>(upperWidth);\n  const prevLowerWidthRef = useRef<number>(lowerWidth);\n  const prevHeightRef = useRef<number>(height);\n  const prevXRef = useRef<number>(x);\n  const prevYRef = useRef<number>(y);\n  const animationId = useAnimationId(outsideProps, 'trapezoid-');\n\n  useEffect(() => {\n    if (pathRef.current && pathRef.current.getTotalLength) {\n      try {\n        const pathTotalLength = pathRef.current.getTotalLength();\n\n        if (pathTotalLength) {\n          setTotalLength(pathTotalLength);\n        }\n      } catch {\n        // calculate total length error\n      }\n    }\n  }, []);\n\n  if (\n    x !== +x ||\n    y !== +y ||\n    upperWidth !== +upperWidth ||\n    lowerWidth !== +lowerWidth ||\n    height !== +height ||\n    (upperWidth === 0 && lowerWidth === 0) ||\n    height === 0\n  ) {\n    return null;\n  }\n\n  const layerClass = clsx('recharts-trapezoid', className);\n\n  if (!isUpdateAnimationActive) {\n    return (\n      <g>\n        <path\n          {...svgPropertiesAndEvents(trapezoidProps)}\n          className={layerClass}\n          d={getTrapezoidPath(x, y, upperWidth, lowerWidth, height)}\n        />\n      </g>\n    );\n  }\n\n  const prevUpperWidth = prevUpperWidthRef.current;\n  const prevLowerWidth = prevLowerWidthRef.current;\n  const prevHeight = prevHeightRef.current;\n  const prevX = prevXRef.current;\n  const prevY = prevYRef.current;\n\n  const from = `0px ${totalLength === -1 ? 1 : totalLength}px`;\n  const to = `${totalLength}px 0px`;\n  const transition = getTransitionVal(['strokeDasharray'], animationDuration, animationEasing);\n\n  return (\n    <JavascriptAnimate\n      animationId={animationId}\n      key={animationId}\n      canBegin={totalLength > 0}\n      duration={animationDuration}\n      easing={animationEasing}\n      isActive={isUpdateAnimationActive}\n      begin={animationBegin}\n    >\n      {(t: number) => {\n        const currUpperWidth = interpolate(prevUpperWidth, upperWidth, t);\n        const currLowerWidth = interpolate(prevLowerWidth, lowerWidth, t);\n        const currHeight = interpolate(prevHeight, height, t);\n        const currX = interpolate(prevX, x, t);\n        const currY = interpolate(prevY, y, t);\n\n        if (pathRef.current) {\n          prevUpperWidthRef.current = currUpperWidth;\n          prevLowerWidthRef.current = currLowerWidth;\n          prevHeightRef.current = currHeight;\n          prevXRef.current = currX;\n          prevYRef.current = currY;\n        }\n        const animationStyle = t > 0 ? { transition, strokeDasharray: to } : { strokeDasharray: from };\n        return (\n          <path\n            {...svgPropertiesAndEvents(trapezoidProps)}\n            className={layerClass}\n            d={getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight)}\n            ref={pathRef}\n            style={{\n              ...animationStyle,\n              ...trapezoidProps.style,\n            }}\n          />\n        );\n      }}\n    </JavascriptAnimate>\n  );\n};\n","import * as React from 'react';\nimport { cloneElement, isValidElement, ReactElement } from 'react';\nimport isPlainObject from 'es-toolkit/compat/isPlainObject';\n\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols, SymbolsProps } from '../shape/Symbols';\nimport { Curve } from '../shape/Curve';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * <Shape /> is the root and will handle taking in:\n *  - an object of svg properties\n *  - a boolean\n *  - a render prop(inline function that returns jsx)\n *  - a React element\n *\n * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\ntype ShapeType = 'trapezoid' | 'rectangle' | 'sector' | 'symbols' | 'curve';\n\nexport type ShapeProps<OptionType, ExtraProps> = {\n  shapeType: ShapeType;\n  option: OptionType;\n  isActive?: boolean;\n  index?: string | number;\n  activeClassName?: string;\n} & ExtraProps;\n\nfunction defaultPropTransformer<OptionType, ExtraProps, ShapePropsType>(\n  option: OptionType,\n  props: ExtraProps,\n): ShapePropsType {\n  return {\n    ...props,\n    ...option,\n  } as unknown as ShapePropsType;\n}\n\nfunction isSymbolsProps(shapeType: ShapeType, _elementProps: unknown): _elementProps is SymbolsProps {\n  return shapeType === 'symbols';\n}\n\nfunction ShapeSelector<ShapePropsType extends React.JSX.IntrinsicAttributes>({\n  shapeType,\n  elementProps,\n}: {\n  shapeType: ShapeType;\n  elementProps: ShapePropsType;\n}): React.ReactNode {\n  switch (shapeType) {\n    case 'rectangle':\n      return <Rectangle {...elementProps} />;\n    case 'trapezoid':\n      return <Trapezoid {...elementProps} />;\n    case 'sector':\n      return <Sector {...elementProps} />;\n    case 'symbols':\n      if (isSymbolsProps(shapeType, elementProps)) {\n        return <Symbols {...elementProps} />;\n      }\n      break;\n    case 'curve':\n      return <Curve {...elementProps} />;\n    default:\n      return null;\n  }\n}\n\nexport function getPropsFromShapeOption<T>(option: ReactElement<T> | T): T {\n  if (isValidElement(option)) {\n    return option.props;\n  }\n\n  return option;\n}\n\nexport function Shape<OptionType, ExtraProps, ShapePropsType extends React.JSX.IntrinsicAttributes>({\n  option,\n  shapeType,\n  activeClassName = 'recharts-active-shape',\n  ...props\n}: ShapeProps<OptionType, ExtraProps>) {\n  let shape: React.JSX.Element;\n\n  if (isValidElement(option)) {\n    // @ts-expect-error we can't know the type of cloned element props\n    shape = cloneElement(option, { ...props, ...getPropsFromShapeOption(option) });\n  } else if (typeof option === 'function') {\n    shape = option(props, props.index);\n  } else if (isPlainObject(option) && typeof option !== 'boolean') {\n    const nextProps: ShapePropsType = defaultPropTransformer(option, props);\n    shape = <ShapeSelector<ShapePropsType> shapeType={shapeType} elementProps={nextProps} />;\n  } else {\n    const elementProps = props as unknown as ShapePropsType;\n    shape = <ShapeSelector<ShapePropsType> shapeType={shapeType} elementProps={elementProps} />;\n  }\n\n  if (props.isActive) {\n    return <Layer className={activeClassName}>{shape}</Layer>;\n  }\n\n  return shape;\n}\n","import * as React from 'react';\nimport { Coordinate, DataKey } from '../util/types';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\n\nexport type TooltipPayloadType = any[];\n\ntype TooltipTriggerInfo<T extends TooltipPayloadType> = {\n  tooltipPayload: T;\n  tooltipPosition: Coordinate;\n  cx: number;\n  cy: number;\n};\n\nexport type ActivateTooltipAction<T extends TooltipPayloadType> = (\n  tooltipInfo: TooltipTriggerInfo<T>,\n  index: number,\n  event: React.MouseEvent<SVGElement>,\n) => void;\n\nexport const useMouseEnterItemDispatch = <T extends TooltipPayloadType>(\n  onMouseEnterFromProps: ActivateTooltipAction<T> | undefined,\n  dataKey: DataKey<any> | undefined,\n  graphicalItemId: string,\n) => {\n  const dispatch = useAppDispatch();\n  return (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => {\n    onMouseEnterFromProps?.(data, index, event);\n    dispatch(\n      setActiveMouseOverItemIndex({\n        activeIndex: String(index),\n        activeDataKey: dataKey,\n        activeCoordinate: data.tooltipPosition,\n        activeGraphicalItemId: graphicalItemId,\n      }),\n    );\n  };\n};\n\nexport const useMouseLeaveItemDispatch = <T extends TooltipPayloadType>(\n  onMouseLeaveFromProps: undefined | ActivateTooltipAction<T>,\n) => {\n  const dispatch = useAppDispatch();\n  return (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => {\n    onMouseLeaveFromProps?.(data, index, event);\n    dispatch(mouseLeaveItem());\n  };\n};\n\nexport const useMouseClickItemDispatch = <T extends TooltipPayloadType>(\n  onMouseClickFromProps: ActivateTooltipAction<T> | undefined,\n  dataKey: DataKey<any> | undefined,\n  graphicalItemId: string,\n) => {\n  const dispatch = useAppDispatch();\n  return (data: TooltipTriggerInfo<T>, index: number) => (event: React.MouseEvent<SVGElement>) => {\n    onMouseClickFromProps?.(data, index, event);\n    dispatch(\n      setActiveClickItemIndex({\n        activeIndex: String(index),\n        activeDataKey: dataKey,\n        activeCoordinate: data.tooltipPosition,\n        activeGraphicalItemId: graphicalItemId,\n      }),\n    );\n  };\n};\n","import { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport {\n  addTooltipEntrySettings,\n  removeTooltipEntrySettings,\n  replaceTooltipEntrySettings,\n  TooltipPayloadConfiguration,\n} from './tooltipSlice';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\nexport function SetTooltipEntrySettings({\n  tooltipEntrySettings,\n}: {\n  tooltipEntrySettings: TooltipPayloadConfiguration;\n}): null {\n  const dispatch = useAppDispatch();\n  const isPanorama = useIsPanorama();\n  const prevSettingsRef = useRef<TooltipPayloadConfiguration | null>(null);\n\n  useLayoutEffect(() => {\n    if (isPanorama) {\n      // Panorama graphical items should never contribute to Tooltip payload.\n      return;\n    }\n    if (prevSettingsRef.current === null) {\n      dispatch(addTooltipEntrySettings(tooltipEntrySettings));\n    } else if (prevSettingsRef.current !== tooltipEntrySettings) {\n      dispatch(replaceTooltipEntrySettings({ prev: prevSettingsRef.current, next: tooltipEntrySettings }));\n    }\n    prevSettingsRef.current = tooltipEntrySettings;\n  }, [tooltipEntrySettings, dispatch, isPanorama]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevSettingsRef.current) {\n        dispatch(removeTooltipEntrySettings(prevSettingsRef.current));\n        prevSettingsRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n","import { useLayoutEffect, useRef } from 'react';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectChartLayout } from '../context/chartLayoutContext';\nimport { useAppDispatch, useAppSelector } from './hooks';\nimport { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice';\n\nexport function SetLegendPayload({ legendPayload }: { legendPayload: ReadonlyArray<LegendPayload> }): null {\n  const dispatch = useAppDispatch();\n  const isPanorama = useIsPanorama();\n  const prevPayloadRef = useRef<ReadonlyArray<LegendPayload> | null>(null);\n\n  useLayoutEffect(() => {\n    if (isPanorama) {\n      return;\n    }\n    if (prevPayloadRef.current === null) {\n      dispatch(addLegendPayload(legendPayload));\n    } else if (prevPayloadRef.current !== legendPayload) {\n      dispatch(replaceLegendPayload({ prev: prevPayloadRef.current, next: legendPayload }));\n    }\n    prevPayloadRef.current = legendPayload;\n  }, [dispatch, isPanorama, legendPayload]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevPayloadRef.current) {\n        dispatch(removeLegendPayload(prevPayloadRef.current));\n        prevPayloadRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n\nexport function SetPolarLegendPayload({ legendPayload }: { legendPayload: ReadonlyArray<LegendPayload> }): null {\n  const dispatch = useAppDispatch();\n  const layout = useAppSelector(selectChartLayout);\n  const prevPayloadRef = useRef<ReadonlyArray<LegendPayload> | null>(null);\n\n  useLayoutEffect(() => {\n    if (layout !== 'centric' && layout !== 'radial') {\n      return;\n    }\n    if (prevPayloadRef.current === null) {\n      dispatch(addLegendPayload(legendPayload));\n    } else if (prevPayloadRef.current !== legendPayload) {\n      dispatch(replaceLegendPayload({ prev: prevPayloadRef.current, next: legendPayload }));\n    }\n    prevPayloadRef.current = legendPayload;\n  }, [dispatch, layout, legendPayload]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevPayloadRef.current) {\n        dispatch(removeLegendPayload(prevPayloadRef.current));\n        prevPayloadRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n","import * as React from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * Fallback for React.useId() for versions prior to React 18.\n * Generates a unique ID using a simple counter and a prefix.\n *\n * @returns A unique ID that remains consistent across renders.\n */\nexport const useIdFallback = (): string => {\n  const [id] = React.useState(() => uniqueId('uid-'));\n  return id;\n};\n\n/*\n * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.\n * See https://github.com/webpack/webpack/issues/14814\n */\nexport const useId: () => string = ((React as any)['useId'.toString()] as () => string) ?? useIdFallback;\n","import { useId } from './useId';\n\n/**\n * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety\n * and falls back to a client-side-only unique ID generator for older versions.\n *\n * The ID will stay the same across renders, and you can optionally provide a prefix.\n *\n * @param [prefix] - An optional prefix for the generated ID.\n * @param [customId] - An optional custom ID to override the generated one.\n * @returns The unique ID.\n */\nexport function useUniqueId(prefix?: string, customId?: string): string {\n  /*\n   * We have to call this hook here even if we don't use the result because\n   * rules of hooks demand that hooks are never called conditionally.\n   */\n  const generatedId = useId();\n\n  // If a custom ID is provided, it always takes precedence.\n  if (customId) {\n    return customId;\n  }\n\n  // Apply the prefix if one was provided.\n  return prefix ? `${prefix}-${generatedId}` : generatedId;\n}\n\n/**\n * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.\n * Either way the ID is now guaranteed to be present so no more nulls or undefined.\n */\nexport type WithIdRequired<T> = T & {\n  id: string;\n};\n\nexport type WithoutId<T> = Omit<T, 'id'>;\n","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\n\nexport type IdSetter = {\n  id?: string;\n  type: string;\n  /**\n   * Children must be a function that receives the resolved ID of the graphical item.\n   * This ID will either be the one provided via props.id or generated automatically.\n   */\n  children: (id: GraphicalItemId) => React.ReactNode;\n};\n\nconst GraphicalItemIdContext = createContext<GraphicalItemId | undefined>(undefined);\n\nexport const RegisterGraphicalItemId = ({ id, type, children }: IdSetter) => {\n  const resolvedId = useUniqueId(`recharts-${type}`, id);\n  return <GraphicalItemIdContext.Provider value={resolvedId}>{children(resolvedId)}</GraphicalItemIdContext.Provider>;\n};\n\nexport function useGraphicalItemId(): GraphicalItemId | undefined {\n  return useContext(GraphicalItemIdContext);\n}\n","import { createSlice, current, PayloadAction, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { ChartData } from './chartDataSlice';\nimport { AxisId } from './cartesianAxisSlice';\nimport { DataKey } from '../util/types';\nimport { LineSettings } from './types/LineSettings';\nimport { ScatterSettings } from './types/ScatterSettings';\nimport { AreaSettings } from './types/AreaSettings';\nimport { BarSettings } from './types/BarSettings';\nimport { RadialBarSettings } from './types/RadialBarSettings';\nimport { PieSettings } from './types/PieSettings';\nimport { RadarSettings } from './types/RadarSettings';\n\n/**\n * Unique ID of the graphical item.\n * This is used to identify the graphical item in the state and in the React tree.\n * This is required for every graphical item - it's either provided by the user or generated automatically.\n */\nexport type GraphicalItemId = string;\n\nexport interface GraphicalItemSettings {\n  /**\n   * Unique ID of the graphical item.\n   * This is used to identify the graphical item in the state and in the React tree.\n   * This is required for every graphical item - it's either provided by the user or generated automatically.\n   */\n  id: GraphicalItemId;\n  /**\n   * If the given graphical item has its own data array, it will appear here.\n   * If this is undefined, the data will be taken from the chart root prop.\n   */\n  data: ChartData | undefined;\n  dataKey: DataKey<any> | undefined;\n  /**\n   * Why not just stop pushing the graphical items to state when they are hidden?\n   * Well some components decide to continue showing them anyway.\n   * Legend for example will keep showing a record for hidden graphical items.\n   * Stacks for example will ignore them.\n   */\n  hide: boolean;\n}\n\nexport interface BaseCartesianGraphicalItemSettings extends GraphicalItemSettings {\n  /**\n   * Each of the graphical items explicitly says which axis it uses;\n   * this property is optional for users but every graphical item must have a default,\n   * and it is required here.\n   */\n  xAxisId: AxisId;\n  yAxisId: AxisId;\n  zAxisId: AxisId;\n  /**\n   * Graphical items that are inside Brush panorama should not interact with the main area graphical items\n   * and vice versa.\n   */\n  isPanorama: boolean;\n}\n\nexport type CartesianGraphicalItemSettings = AreaSettings | BarSettings | LineSettings | ScatterSettings;\n\nexport interface BasePolarGraphicalItemSettings extends GraphicalItemSettings {\n  angleAxisId: AxisId;\n  radiusAxisId: AxisId;\n}\n\nexport type PolarGraphicalItemSettings = PieSettings | RadarSettings | RadialBarSettings;\n\nexport type GraphicalItemsState = {\n  /**\n   * This is an array of all cartesian graphical items and their settings.\n   * Graphical item is a visual representation of data on the chart.\n   * Some examples are: Line, Bar.\n   *\n   * The order is arbitrary; do not expect that indexes here will be the same as indexes elsewhere.\n   */\n  cartesianItems: ReadonlyArray<CartesianGraphicalItemSettings>;\n  /**\n   * This is an array of all polar graphical items and their settings.\n   * Graphical item is a visual representation of data on the chart.\n   * Some examples are: Pie, Radar, RadialBar\n   *\n   * The order is arbitrary; do not expect that indexes here will be the same as indexes elsewhere.\n   */\n  polarItems: ReadonlyArray<PolarGraphicalItemSettings>;\n};\n\nconst initialState: GraphicalItemsState = {\n  cartesianItems: [],\n  polarItems: [],\n};\n\ntype ReplacePayload<T> = {\n  prev: T;\n  next: T;\n};\n\nconst graphicalItemsSlice = createSlice({\n  name: 'graphicalItems',\n  initialState,\n  reducers: {\n    addCartesianGraphicalItem: {\n      reducer(state, action: PayloadAction<CartesianGraphicalItemSettings>) {\n        state.cartesianItems.push(castDraft(action.payload));\n      },\n      prepare: prepareAutoBatched<CartesianGraphicalItemSettings>(),\n    },\n    replaceCartesianGraphicalItem: {\n      reducer(state, action: PayloadAction<ReplacePayload<CartesianGraphicalItemSettings>>) {\n        const { prev, next } = action.payload;\n        const index = current(state).cartesianItems.indexOf(castDraft(prev));\n        if (index > -1) {\n          state.cartesianItems[index] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<ReplacePayload<CartesianGraphicalItemSettings>>(),\n    },\n    removeCartesianGraphicalItem: {\n      reducer(state, action: PayloadAction<CartesianGraphicalItemSettings>) {\n        const index = current(state).cartesianItems.indexOf(castDraft(action.payload));\n        if (index > -1) {\n          state.cartesianItems.splice(index, 1);\n        }\n      },\n      prepare: prepareAutoBatched<CartesianGraphicalItemSettings>(),\n    },\n    addPolarGraphicalItem: {\n      reducer(state, action: PayloadAction<PolarGraphicalItemSettings>) {\n        state.polarItems.push(castDraft(action.payload));\n      },\n      prepare: prepareAutoBatched<PolarGraphicalItemSettings>(),\n    },\n    removePolarGraphicalItem: {\n      reducer(state, action: PayloadAction<PolarGraphicalItemSettings>) {\n        const index = current(state).polarItems.indexOf(castDraft(action.payload));\n        if (index > -1) {\n          state.polarItems.splice(index, 1);\n        }\n      },\n      prepare: prepareAutoBatched<PolarGraphicalItemSettings>(),\n    },\n  },\n});\n\nexport const {\n  addCartesianGraphicalItem,\n  replaceCartesianGraphicalItem,\n  removeCartesianGraphicalItem,\n  addPolarGraphicalItem,\n  removePolarGraphicalItem,\n} = graphicalItemsSlice.actions;\n\nexport const graphicalItemsReducer = graphicalItemsSlice.reducer;\n","import { memo, useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport {\n  addCartesianGraphicalItem,\n  addPolarGraphicalItem,\n  CartesianGraphicalItemSettings,\n  PolarGraphicalItemSettings,\n  removeCartesianGraphicalItem,\n  removePolarGraphicalItem,\n  replaceCartesianGraphicalItem,\n} from './graphicalItemsSlice';\n\nconst SetCartesianGraphicalItemImpl = <T extends CartesianGraphicalItemSettings>(props: T): null => {\n  const dispatch = useAppDispatch();\n  const prevPropsRef = useRef<T | null>(null);\n\n  useLayoutEffect(() => {\n    if (prevPropsRef.current === null) {\n      dispatch(addCartesianGraphicalItem(props));\n    } else if (prevPropsRef.current !== props) {\n      dispatch(replaceCartesianGraphicalItem({ prev: prevPropsRef.current, next: props }));\n    }\n    prevPropsRef.current = props;\n  }, [dispatch, props]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevPropsRef.current) {\n        dispatch(removeCartesianGraphicalItem(prevPropsRef.current));\n        /*\n         * Here we have to reset the ref to null because in StrictMode, the effect will run twice,\n         * but it will keep the same ref value from the first render.\n         *\n         * In browser, React will clear the ref after the first effect cleanup,\n         * so that wouldn't be an issue.\n         *\n         * In StrictMode, however, the ref is kept,\n         * and in the hook above the code checks for `prevPropsRef.current === null`\n         * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.\n         *\n         * https://github.com/recharts/recharts/issues/6022\n         */\n        prevPropsRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n};\n\nexport const SetCartesianGraphicalItem = memo(SetCartesianGraphicalItemImpl);\n\nexport function SetPolarGraphicalItem(props: PolarGraphicalItemSettings): null {\n  const dispatch = useAppDispatch();\n  useLayoutEffect(() => {\n    dispatch(addPolarGraphicalItem(props));\n    return () => {\n      dispatch(removePolarGraphicalItem(props));\n    };\n  }, [dispatch, props]);\n  return null;\n}\n","import * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { clsx } from 'clsx';\nimport { Dot, type Props as DotProps } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { DataKey, DotItemDotProps, DotType } from '../util/types';\nimport { isClipDot } from '../util/ReactUtils';\nimport { svgPropertiesAndEventsFromUnknown } from '../util/svgPropertiesAndEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport interface DotPoint {\n  readonly x: number | null;\n  readonly y: number | null;\n  readonly value?: any;\n  readonly payload?: any;\n}\n\ntype DotItemProps = {\n  option: DotType;\n  dotProps: DotItemDotProps;\n  className: string;\n};\n\nfunction DotItem({ option, dotProps, className }: DotItemProps) {\n  if (isValidElement(option)) {\n    // @ts-expect-error we can't type check element cloning properly\n    return cloneElement(option, dotProps);\n  }\n\n  if (typeof option === 'function') {\n    return option(dotProps);\n  }\n\n  const finalClassName = clsx(className, typeof option !== 'boolean' ? option.className : '');\n  const { points, ...props } = dotProps ?? {};\n  return <Dot {...props} className={finalClassName} />;\n}\n\nfunction shouldRenderDots(points: ReadonlyArray<DotPoint> | undefined, dot: DotType): boolean {\n  if (points == null) {\n    return false;\n  }\n  if (dot) {\n    return true;\n  }\n  return points.length === 1;\n}\n\nexport type DotsDotProps = Omit<DotProps, 'cx' | 'cy' | 'key' | 'index' | 'dataKey' | 'value' | 'payload'>;\n\ninterface DotsProps extends ZIndexable {\n  /**\n   * Points to render dots for\n   */\n  points: ReadonlyArray<DotPoint>;\n  /**\n   * Dot configuration - boolean, ReactElement, function, or props object\n   */\n  dot: DotType;\n  /**\n   * Base class name for the dots layer (e.g., 'recharts-area-dots')\n   */\n  className: string;\n  /**\n   * Base class name for individual dot (e.g., 'recharts-area-dot')\n   */\n  dotClassName: string;\n  /**\n   * DataKey for the data\n   */\n  dataKey: DataKey<any> | undefined;\n  /**\n   * Base props to spread onto each dot (from parent component).\n   * Except some properties that the Dots component manages itself.\n   */\n  baseProps: DotsDotProps;\n  /**\n   * Whether clipping is needed (cartesian only)\n   */\n  needClip?: boolean;\n  /**\n   * Clip path ID (cartesian only)\n   */\n  clipPathId?: string;\n}\n\nexport function Dots({\n  points,\n  dot,\n  className,\n  dotClassName,\n  dataKey,\n  baseProps,\n  needClip,\n  clipPathId,\n  zIndex = DefaultZIndexes.scatter,\n}: DotsProps) {\n  if (!shouldRenderDots(points, dot)) {\n    return null;\n  }\n\n  const clipDot = isClipDot(dot);\n  const customDotProps = svgPropertiesAndEventsFromUnknown(dot);\n\n  const dots = points.map((entry, i) => {\n    const dotProps: DotItemDotProps = {\n      r: 3,\n      ...baseProps,\n      ...customDotProps,\n      index: i,\n      cx: entry.x ?? undefined,\n      cy: entry.y ?? undefined,\n      dataKey,\n      value: entry.value,\n      payload: entry.payload,\n      points,\n    };\n\n    return <DotItem key={`dot-${i}`} option={dot} dotProps={dotProps} className={dotClassName} />;\n  });\n\n  const layerProps: { clipPath?: string } = {};\n  if (needClip && clipPathId != null) {\n    layerProps.clipPath = `url(#clipPath-${clipDot ? '' : 'dots-'}${clipPathId})`;\n  }\n\n  return (\n    <ZIndexLayer zIndex={zIndex}>\n      <Layer className={className} {...layerProps}>\n        {dots}\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n","import { createSlice, PayloadAction, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport {\n  AxisDomain,\n  AxisInterval,\n  AxisTick,\n  DataKey,\n  EvaluatedAxisDomainType,\n  ScaleType,\n  TickProp,\n} from '../util/types';\nimport { TickFormatter } from '../cartesian/CartesianAxis';\nimport type { AxisRange } from './selectors/axisSelectors';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\n\n/**\n * @inline\n */\nexport type AxisId = string | number;\nexport const defaultAxisId: AxisId = 0;\nexport type XAxisPadding = { left?: number; right?: number } | 'gap' | 'no-gap';\nexport type YAxisPadding = { top?: number; bottom?: number } | 'gap' | 'no-gap';\n\nexport type XAxisOrientation = 'top' | 'bottom';\nexport type YAxisOrientation = 'left' | 'right';\n\n/**\n * Properties shared in X, Y, and Z axes.\n * User defined axis settings, coming from props.\n */\nexport type BaseCartesianAxis = {\n  id: AxisId;\n  scale:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n  /**\n   * Before creating this object, evaluate the domain type based on the chart layout so that we have the 'auto' resolved.\n   */\n  type: EvaluatedAxisDomainType;\n  /**\n   * The axis functionality is severely restricted without a dataKey\n   * - but there is still something left, and the prop is optional\n   * so this can also be undefined even in real charts.\n   * There are no defaults.\n   */\n  dataKey: DataKey<any> | undefined;\n  unit: string | undefined;\n  name: string | undefined;\n  allowDuplicatedCategory: boolean;\n  allowDataOverflow: boolean;\n  reversed: boolean;\n  includeHidden: boolean;\n  domain: AxisDomain | undefined;\n};\n\nexport type TicksSettings = {\n  allowDecimals: boolean;\n  /**\n   * We pass the suggested number of ticks to d3 https://d3js.org/d3-scale/linear#linear_ticks\n   * This number is a suggestion. d3 tries to accommodate it, but it might return more or less ticks than requested:\n   * > The specified count is only a hint; the scale may return more or fewer values depending on the domain.\n   *\n   * If undefined, then d3 decides the number of ticks on its own. The default in d3 is 10,\n   * but it can vary based on the domain size and other factors.\n   */\n  tickCount: number | undefined;\n  /**\n   * Ticks can be any type when the axis is the type of category\n   * Ticks must be numbers when the axis is the type of number\n   */\n  ticks: ReadonlyArray<AxisTick> | undefined;\n  tick: TickProp<any>;\n};\n\n/**\n * These are the external props, visible for users as they set them using our public API.\n * There is all sorts of internal computed things based on these, but they will come through selectors.\n *\n * Properties shared between X and Y axes\n */\nexport type CartesianAxisSettings = BaseCartesianAxis &\n  TicksSettings & {\n    interval: AxisInterval;\n    mirror: boolean;\n    minTickGap: number;\n    angle: number;\n    hide: boolean;\n    tickFormatter: TickFormatter | undefined;\n  };\n\nexport type XAxisSettings = CartesianAxisSettings & {\n  padding: XAxisPadding;\n  height: number;\n  orientation: XAxisOrientation;\n};\n\nexport type YAxisWidth = number | 'auto';\n\nexport type YAxisSettings = CartesianAxisSettings & {\n  padding: YAxisPadding;\n  width: YAxisWidth;\n  orientation: YAxisOrientation;\n  widthHistory?: number[];\n};\n\n/**\n * Z axis is special because it's never displayed. It controls the size of Scatter dots,\n * but it never displays ticks anywhere.\n */\nexport type ZAxisSettings = BaseCartesianAxis & {\n  range: AxisRange;\n};\n\ntype AxisMapState = {\n  xAxis: Record<AxisId, XAxisSettings>;\n  yAxis: Record<AxisId, YAxisSettings>;\n  zAxis: Record<AxisId, ZAxisSettings>;\n};\n\nconst initialState: AxisMapState = {\n  xAxis: {},\n  yAxis: {},\n  zAxis: {},\n};\n\n/**\n * This is the slice where each individual Axis element pushes its own configuration.\n * Prefer to use this one instead of axisSlice.\n */\nconst cartesianAxisSlice = createSlice({\n  name: 'cartesianAxis',\n  initialState,\n  reducers: {\n    addXAxis: {\n      reducer(state, action: PayloadAction<XAxisSettings>) {\n        state.xAxis[action.payload.id] = castDraft(action.payload);\n      },\n      prepare: prepareAutoBatched<XAxisSettings>(),\n    },\n    replaceXAxis: {\n      reducer(state, action: PayloadAction<{ prev: XAxisSettings; next: XAxisSettings }>) {\n        const { prev, next } = action.payload;\n        if (state.xAxis[prev.id] !== undefined) {\n          if (prev.id !== next.id) {\n            delete state.xAxis[prev.id];\n          }\n          state.xAxis[next.id] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<{ prev: XAxisSettings; next: XAxisSettings }>(),\n    },\n    removeXAxis: {\n      reducer(state, action: PayloadAction<XAxisSettings>) {\n        delete state.xAxis[action.payload.id];\n      },\n      prepare: prepareAutoBatched<XAxisSettings>(),\n    },\n    addYAxis: {\n      reducer(state, action: PayloadAction<YAxisSettings>) {\n        state.yAxis[action.payload.id] = castDraft(action.payload);\n      },\n      prepare: prepareAutoBatched<YAxisSettings>(),\n    },\n    replaceYAxis: {\n      reducer(state, action: PayloadAction<{ prev: YAxisSettings; next: YAxisSettings }>) {\n        const { prev, next } = action.payload;\n        if (state.yAxis[prev.id] !== undefined) {\n          if (prev.id !== next.id) {\n            delete state.yAxis[prev.id];\n          }\n          state.yAxis[next.id] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<{ prev: YAxisSettings; next: YAxisSettings }>(),\n    },\n    removeYAxis: {\n      reducer(state, action: PayloadAction<YAxisSettings>) {\n        delete state.yAxis[action.payload.id];\n      },\n      prepare: prepareAutoBatched<YAxisSettings>(),\n    },\n    addZAxis: {\n      reducer(state, action: PayloadAction<ZAxisSettings>) {\n        state.zAxis[action.payload.id] = castDraft(action.payload);\n      },\n      prepare: prepareAutoBatched<ZAxisSettings>(),\n    },\n    replaceZAxis: {\n      reducer(state, action: PayloadAction<{ prev: ZAxisSettings; next: ZAxisSettings }>) {\n        const { prev, next } = action.payload;\n        if (state.zAxis[prev.id] !== undefined) {\n          if (prev.id !== next.id) {\n            delete state.zAxis[prev.id];\n          }\n          state.zAxis[next.id] = castDraft(next);\n        }\n      },\n      prepare: prepareAutoBatched<{ prev: ZAxisSettings; next: ZAxisSettings }>(),\n    },\n    removeZAxis: {\n      reducer(state, action: PayloadAction<ZAxisSettings>) {\n        delete state.zAxis[action.payload.id];\n      },\n      prepare: prepareAutoBatched<ZAxisSettings>(),\n    },\n    updateYAxisWidth(state, action: PayloadAction<{ id: AxisId; width: number }>) {\n      const { id, width } = action.payload;\n      const axis = state.yAxis[id];\n      if (axis) {\n        const history = axis.widthHistory || [];\n        // An oscillation is detected when the new width is the same as the width before the last one.\n        // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.\n        if (\n          history.length === 3 &&\n          history[0] === history[2] &&\n          width === history[1] &&\n          width !== axis.width &&\n          Math.abs(width - (history[0] ?? 0)) <= 1\n        ) {\n          return;\n        }\n        const newHistory = [...history, width].slice(-3);\n        state.yAxis[id] = {\n          ...axis,\n          width,\n          widthHistory: newHistory,\n        };\n      }\n    },\n  },\n});\n\nexport const {\n  addXAxis,\n  replaceXAxis,\n  removeXAxis,\n  addYAxis,\n  replaceYAxis,\n  removeYAxis,\n  addZAxis,\n  replaceZAxis,\n  removeZAxis,\n  updateYAxisWidth,\n} = cartesianAxisSlice.actions;\n\nexport const cartesianAxisReducer = cartesianAxisSlice.reducer;\n","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { ChartOffsetInternal } from '../../util/types';\nimport { ChartOffset } from '../../types';\n\nexport const selectChartOffset = createSelector(\n  [selectChartOffsetInternal],\n  (offsetInternal: ChartOffsetInternal): ChartOffset => {\n    return {\n      top: offsetInternal.top,\n      bottom: offsetInternal.bottom,\n      left: offsetInternal.left,\n      right: offsetInternal.right,\n    };\n  },\n);\n","import { createSelector } from 'reselect';\nimport { selectChartOffset } from './selectChartOffset';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\n\nexport const selectPlotArea = createSelector(\n  [selectChartOffset, selectChartWidth, selectChartHeight],\n  (offset, chartWidth, chartHeight) => {\n    if (!offset || chartWidth == null || chartHeight == null) {\n      return undefined;\n    }\n\n    return {\n      x: offset.left,\n      y: offset.top,\n      width: Math.max(0, chartWidth - offset.left - offset.right),\n      height: Math.max(0, chartHeight - offset.top - offset.bottom),\n    };\n  },\n);\n","import { AxisId, defaultAxisId } from './state/cartesianAxisSlice';\nimport { BaseAxisWithScale, selectAxisDomain, selectAxisWithScale } from './state/selectors/axisSelectors';\nimport { useAppSelector } from './state/hooks';\nimport { useIsPanorama } from './context/PanoramaContext';\nimport {\n  selectActiveLabel,\n  selectActiveTooltipCoordinate,\n  selectActiveTooltipDataPoints,\n  selectIsTooltipActive,\n} from './state/selectors/tooltipSelectors';\nimport { ChartOffset, PlotArea } from './types';\nimport { selectChartOffset } from './state/selectors/selectChartOffset';\nimport { selectPlotArea } from './state/selectors/selectPlotArea';\nimport { CategoricalDomain, Coordinate, NumberDomain } from './util/types';\nimport { ActiveLabel } from './synchronisation/types';\n\nexport const useXAxis = (xAxisId: AxisId): BaseAxisWithScale | undefined => {\n  const isPanorama = useIsPanorama();\n  return useAppSelector(state => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\nexport const useYAxis = (yAxisId: AxisId): BaseAxisWithScale | undefined => {\n  const isPanorama = useIsPanorama();\n  return useAppSelector(state => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns the active tooltip label. The label is one of the values from the chart data,\n * and is used to display in the tooltip content.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context\n *\n * @returns ActiveLabel\n */\nexport const useActiveTooltipLabel = (): ActiveLabel => {\n  return useAppSelector(selectActiveLabel);\n};\n\n/**\n * Returns the offset of the chart in pixels.\n *\n * Offset defines the blank space between the chart and the plot area.\n * This blank space is occupied by supporting elements like axes, legends, and brushes.\n *\n * The offset includes:\n *\n * - Margins\n * - Width and height of the axes\n * - Width and height of the legend\n * - Brush height\n *\n * If you are interested in the margin alone, use {@link useMargin} instead.\n *\n * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.\n *\n * It is also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the numbers will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Offset of the chart in pixels, or undefined if used outside a chart context.\n */\nexport const useOffset = (): ChartOffset | undefined => {\n  return useAppSelector(selectChartOffset);\n};\n\n/**\n * Plot area is the area where the actual chart data is rendered.\n * This means: bars, lines, scatter points, etc.\n *\n * The plot area is calculated based on the chart dimensions and the offset.\n *\n * Plot area `width` and `height` are the dimensions in pixels;\n * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.\n *\n * They are also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the plot area dimensions will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.\n */\nexport const usePlotArea = (): PlotArea | undefined => {\n  return useAppSelector(selectPlotArea);\n};\n\n/**\n * Returns the currently active data points being displayed in the Tooltip.\n * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.\n *\n * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.\n * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.\n *\n * Data point is whatever you pass as an input to the chart using the `data={}` prop.\n *\n * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)\n * and tooltip with `shared={true}` will display all items at the same time.\n *\n * Returns undefined when used outside a chart context.\n *\n * @returns Data points that are currently visible in a Tooltip\n */\nexport const useActiveTooltipDataPoints = <T = unknown>(): ReadonlyArray<T> | undefined => {\n  return useAppSelector(selectActiveTooltipDataPoints);\n};\n\n/**\n * Returns the calculated domain of an X-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the XAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,\n * and the full domain will be returned if the hook is used inside a Brush context.\n *\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n */\nexport const useXAxisDomain = (xAxisId: AxisId = defaultAxisId): NumberDomain | CategoricalDomain | undefined => {\n  const isPanorama = useIsPanorama();\n  return useAppSelector(state => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns the calculated domain of a Y-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the YAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * Does not interact with Brushes, as Y-axes do not support brushing.\n *\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n */\nexport const useYAxisDomain = (yAxisId: AxisId = defaultAxisId): NumberDomain | CategoricalDomain | undefined => {\n  const isPanorama = useIsPanorama();\n  return useAppSelector(state => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns true if the {@link Tooltip} is currently active (visible).\n *\n * Returns false if the Tooltip is not active or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {boolean} True if the Tooltip is active, false otherwise.\n * @since 3.7\n */\nexport const useIsTooltipActive = (): boolean => {\n  return useAppSelector(selectIsTooltipActive) ?? false;\n};\n\n/**\n * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.\n * @since 3.7\n */\nexport const useActiveTooltipCoordinate = (): Coordinate | undefined => {\n  const coordinate = useAppSelector(selectActiveTooltipCoordinate);\n  if (coordinate == null) {\n    return undefined;\n  }\n  return {\n    x: coordinate.x,\n    y: coordinate.y,\n  };\n};\n","import * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { ActiveDotProps, ActiveDotType, adaptEventHandlers, DataKey } from '../util/types';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { useAppSelector } from '../state/hooks';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { useActiveTooltipDataPoints } from '../hooks';\nimport { isNullish } from '../util/DataUtils';\nimport { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport interface PointType {\n  readonly x: number | null;\n  readonly y: number | null;\n  readonly value?: any;\n  readonly payload?: any;\n}\n\nconst ActivePoint = ({\n  point,\n  childIndex,\n  mainColor,\n  activeDot,\n  dataKey,\n  clipPath,\n}: {\n  point: PointType;\n  activeDot: ActiveDotType;\n  childIndex: number;\n  dataKey: DataKey<any> | undefined;\n  /**\n   * Different graphical elements have different opinion on what is their main color.\n   * Sometimes stroke, sometimes fill, sometimes combination.\n   */\n  mainColor: string | undefined;\n  clipPath?: string;\n}) => {\n  if (activeDot === false || point.x == null || point.y == null) {\n    return null;\n  }\n  const dotPropsTyped: ActiveDotProps = {\n    index: childIndex,\n    dataKey,\n    cx: point.x,\n    cy: point.y,\n    r: 4,\n    fill: mainColor ?? 'none',\n    strokeWidth: 2,\n    stroke: '#fff',\n    payload: point.payload,\n    value: point.value,\n  };\n\n  // @ts-expect-error svgPropertiesNoEventsFromUnknown(activeDot) is contributing unknown props\n  const dotProps: ActiveDotProps = {\n    ...dotPropsTyped,\n    ...svgPropertiesNoEventsFromUnknown(activeDot),\n    ...adaptEventHandlers(activeDot),\n  };\n\n  let dot;\n\n  if (isValidElement(activeDot)) {\n    // @ts-expect-error we're improperly typing events\n    dot = cloneElement(activeDot, dotProps);\n  } else if (typeof activeDot === 'function') {\n    dot = activeDot(dotProps);\n  } else {\n    dot = <Dot {...dotProps} />;\n  }\n\n  return (\n    <Layer className=\"recharts-active-dot\" clipPath={clipPath}>\n      {dot}\n    </Layer>\n  );\n};\n\ninterface ActivePointsProps extends ZIndexable {\n  points: ReadonlyArray<PointType>;\n  /**\n   * Different graphical elements have different opinion on what is their main color.\n   * Sometimes stroke, sometimes fill, sometimes combination.\n   * `undefined` means that the color is not set, and the point will be transparent.\n   */\n  mainColor: string | undefined;\n  itemDataKey: DataKey<any> | undefined;\n  activeDot: ActiveDotType;\n  clipPath?: string;\n}\n\nexport function ActivePoints({\n  points,\n  mainColor,\n  activeDot,\n  itemDataKey,\n  clipPath,\n  zIndex = DefaultZIndexes.activeDot,\n}: ActivePointsProps) {\n  const activeTooltipIndex = useAppSelector(selectActiveTooltipIndex);\n  const activeDataPoints = useActiveTooltipDataPoints();\n  if (points == null || activeDataPoints == null) {\n    return null;\n  }\n\n  const activePoint: PointType | undefined = points.find(p => activeDataPoints.includes(p.payload));\n\n  if (isNullish(activePoint)) {\n    return null;\n  }\n\n  return (\n    <ZIndexLayer zIndex={zIndex}>\n      <ActivePoint\n        point={activePoint}\n        childIndex={Number(activeTooltipIndex)}\n        mainColor={mainColor}\n        dataKey={itemDataKey}\n        activeDot={activeDot}\n        clipPath={clipPath}\n      />\n    </ZIndexLayer>\n  );\n}\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { AngleAxisForRadar, computeRadarPoints, RadarComposedData, RadiusAxisForRadar } from '../../polar/Radar';\nimport { BaseAxisWithScale } from './axisSelectors';\nimport { selectPolarAxisScale, selectPolarAxisTicks } from './polarScaleSelectors';\nimport { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { ChartDataState } from '../chartDataSlice';\nimport { DataKey, LayoutType, PolarViewBoxRequired, TickItem } from '../../util/types';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nimport { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';\nimport { selectUnfilteredPolarItems } from './polarSelectors';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\nimport { RechartsScale } from '../../util/scale/RechartsScale';\n\nconst selectRadiusAxisScale = (state: RechartsRootState, radiusAxisId: AxisId): RechartsScale | undefined =>\n  selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);\n\nconst selectRadiusAxisForRadar: (state: RechartsRootState, radiusAxisId: AxisId) => RadiusAxisForRadar | undefined =\n  createSelector([selectRadiusAxisScale], (scale: RechartsScale | undefined): RadiusAxisForRadar | undefined => {\n    if (scale == null) {\n      return undefined;\n    }\n    return { scale };\n  });\n\nexport const selectRadiusAxisForBandSize: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n) => BaseAxisWithScale | undefined = createSelector(\n  [selectRadiusAxis, selectRadiusAxisScale],\n  (axisSettings: RadiusAxisSettings | undefined, scale: RechartsScale | undefined): BaseAxisWithScale | undefined => {\n    if (axisSettings == null || scale == null) {\n      return undefined;\n    }\n    return {\n      ...axisSettings,\n      scale,\n    };\n  },\n);\n\nconst selectRadiusAxisTicks = (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  isPanorama: boolean,\n): ReadonlyArray<TickItem> | undefined => {\n  return selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, isPanorama);\n};\n\nconst selectAngleAxisForRadar = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n): AngleAxisSettings => selectAngleAxis(state, angleAxisId);\n\nconst selectPolarAxisScaleForRadar = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n): RechartsScale | undefined => selectPolarAxisScale(state, 'angleAxis', angleAxisId);\n\nexport const selectAngleAxisForBandSize: (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n) => BaseAxisWithScale | undefined = createSelector(\n  [selectAngleAxisForRadar, selectPolarAxisScaleForRadar],\n  (axisSettings: AngleAxisSettings, scale: RechartsScale | undefined): BaseAxisWithScale | undefined => {\n    if (axisSettings == null || scale == null) {\n      return undefined;\n    }\n    return {\n      ...axisSettings,\n      scale,\n    };\n  },\n);\n\nconst selectAngleAxisTicks = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  isPanorama: boolean,\n): ReadonlyArray<TickItem> | undefined => {\n  return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, isPanorama);\n};\n\nexport const selectAngleAxisWithScaleAndViewport: (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n) => AngleAxisForRadar | undefined = createSelector(\n  [selectAngleAxisForRadar, selectPolarAxisScaleForRadar, selectPolarViewBox],\n  (\n    axisOptions: AngleAxisSettings,\n    scale: RechartsScale | undefined,\n    polarViewBox: PolarViewBoxRequired | undefined,\n  ): AngleAxisForRadar | undefined => {\n    if (polarViewBox == null || scale == null) {\n      return undefined;\n    }\n    return {\n      scale,\n      type: axisOptions.type,\n      dataKey: axisOptions.dataKey,\n      cx: polarViewBox.cx,\n      cy: polarViewBox.cy,\n    };\n  },\n);\n\nconst pickId = (\n  _state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  _isPanorama: boolean,\n  radarId: GraphicalItemId,\n): GraphicalItemId => radarId;\n\nconst selectBandSizeOfAxis: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  isPanorama: boolean,\n  radarId: GraphicalItemId,\n) => number | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectRadiusAxisForBandSize,\n    selectRadiusAxisTicks,\n    selectAngleAxisForBandSize,\n    selectAngleAxisTicks,\n  ],\n  (\n    layout: LayoutType,\n    radiusAxis: BaseAxisWithScale | undefined,\n    radiusAxisTicks: ReadonlyArray<TickItem> | undefined,\n    angleAxis: BaseAxisWithScale | undefined,\n    angleAxisTicks: ReadonlyArray<TickItem> | undefined,\n  ) => {\n    if (isCategoricalAxis(layout, 'radiusAxis')) {\n      return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);\n    }\n    return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);\n  },\n);\n\nconst selectSynchronisedRadarDataKey: (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  _isPanorama: boolean,\n  radarId: GraphicalItemId,\n) => DataKey<any> | undefined = createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, radarId) => {\n  if (graphicalItems == null) {\n    return undefined;\n  }\n  // Find the radar item with the given radarId\n  const pgis = graphicalItems.find(item => item.type === 'radar' && radarId === item.id);\n  // If found, return its dataKey\n  return pgis?.dataKey;\n});\n\nexport const selectRadarPoints: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  isPanorama: boolean,\n  radarId: GraphicalItemId,\n) => RadarComposedData | undefined = createSelector(\n  [\n    selectRadiusAxisForRadar,\n    selectAngleAxisWithScaleAndViewport,\n    selectChartDataAndAlwaysIgnoreIndexes,\n    selectSynchronisedRadarDataKey,\n    selectBandSizeOfAxis,\n  ],\n  (\n    radiusAxis: RadiusAxisForRadar | undefined,\n    angleAxis: AngleAxisForRadar | undefined,\n    { chartData, dataStartIndex, dataEndIndex }: ChartDataState,\n    dataKey: DataKey<any> | undefined,\n    bandSize: number | undefined,\n  ): RadarComposedData | undefined => {\n    if (radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || dataKey == null) {\n      return undefined;\n    }\n    const displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n    return computeRadarPoints({\n      radiusAxis,\n      angleAxis,\n      displayedData,\n      dataKey,\n      bandSize,\n    });\n  },\n);\n","import * as React from 'react';\nimport { MouseEvent, MutableRefObject, ReactElement, ReactNode, SVGProps, useCallback, useRef, useState } from 'react';\nimport last from 'es-toolkit/compat/last';\n\nimport { clsx } from 'clsx';\nimport { interpolate, isNullish, noop } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { Polygon } from '../shape/Polygon';\nimport { Layer } from '../container/Layer';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { Dots } from '../component/Dots';\nimport {\n  ActiveDotType,\n  AnimationDuration,\n  AnimationTiming,\n  DataKey,\n  DotType,\n  LegendType,\n  TooltipType,\n  TrapezoidViewBox,\n} from '../util/types';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { selectRadarPoints } from '../state/selectors/radarSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { WithIdRequired } from '../util/useUniqueId';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { RechartsScale } from '../util/scale/RechartsScale';\n\ninterface RadarPoint {\n  x: number;\n  y: number;\n  cx?: number;\n  cy?: number;\n  angle: number;\n  radius?: number;\n  value?: number;\n  payload?: any;\n  name?: string;\n}\n\ninterface RadarProps extends ZIndexable {\n  /**\n   * @defaultValue true\n   */\n  activeDot?: ActiveDotType;\n  /**\n   * @defaultValue 0\n   */\n  angleAxisId?: string | number;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  baseLinePoints?: RadarPoint[];\n  className?: string;\n  connectNulls?: boolean;\n  /**\n   * Decides how to extract the value of this Radar from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Radar.\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * Renders a circle element at each data point. Options:\n   *\n   * - `false`: no dots are drawn;\n   * - `true`: renders the dots with default settings;\n   * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;\n   * - `ReactElement`: the custom dot element;\n   * - `function`: a render function of the custom dot.\n   *\n   * @defaultValue false\n   */\n  dot?: DotType;\n  /**\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * If set false, animation of polygon will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  isRange?: boolean;\n  /**\n   * Renders one label for each point. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object`: the props of LabelList component;\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelListType;\n  /**\n   * The type of icon in legend.  If set to 'none', no legend item will be rendered.\n   * @defaultValue rect\n   */\n  legendType?: LegendType;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  onMouseEnter?: (props: any, e: MouseEvent<SVGPolygonElement>) => void;\n  onMouseLeave?: (props: any, e: MouseEvent<SVGPolygonElement>) => void;\n  /**\n   * The coordinates of all the vertexes of the radar shape, like an array of objects with x and y coordinates.\n   */\n  points?: RadarPoint[];\n  /**\n   * @defaultValue 0\n   */\n  radiusAxisId?: string | number;\n\n  /**\n   * If set a ReactElement, the shape of radar can be customized.\n   * If set a function, the function will be called to render customized shape.\n   */\n  shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);\n  tooltipType?: TooltipType;\n  /**\n   * @defaultValue 100\n   */\n  zIndex?: number;\n}\n\nexport type RadiusAxisForRadar = { scale: RechartsScale };\nexport type AngleAxisForRadar = {\n  scale: RechartsScale;\n  type: 'number' | 'category';\n  dataKey: DataKey<any> | undefined;\n  cx: number;\n  cy: number;\n};\n\nexport type Props = Omit<SVGProps<SVGElement>, 'onMouseEnter' | 'onMouseLeave' | 'points' | 'ref'> & RadarProps;\n\nexport type RadarComposedData = {\n  points: RadarPoint[];\n  baseLinePoints: RadarPoint[];\n  isRange: boolean;\n};\n\nfunction getLegendItemColor(stroke: string | undefined, fill: string | undefined): string | undefined {\n  return stroke && stroke !== 'none' ? stroke : fill;\n}\n\nconst computeLegendPayloadFromRadarSectors = (props: PropsWithDefaults): ReadonlyArray<LegendPayload> => {\n  const { dataKey, name, stroke, fill, legendType, hide } = props;\n  return [\n    {\n      inactive: hide,\n      dataKey,\n      type: legendType,\n      color: getLegendItemColor(stroke, fill),\n      value: getTooltipNameProp(name, dataKey),\n      payload: props,\n    },\n  ];\n};\n\nconst SetRadarTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    tooltipType,\n    id,\n  }: Pick<\n    WithIdRequired<PropsWithDefaults>,\n    'dataKey' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      /*\n       * I suppose this here _could_ return props.points\n       * because while Radar does not support item tooltip mode, it _could_ support it.\n       * But when I actually do return the points here, a defaultIndex test starts failing.\n       * So, undefined it is.\n       */\n      dataDefinedOnItem: undefined,\n      getPosition: noop,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        nameKey: undefined, // RadarChart does not have nameKey unfortunately\n        dataKey,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: getLegendItemColor(stroke, fill),\n        unit: '', // why doesn't Radar support unit?\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nfunction RadarDotsWrapper({ points, props }: { points: ReadonlyArray<RadarPoint>; props: PropsWithDefaults }) {\n  const { dot, dataKey } = props;\n  const { id, ...propsWithoutId } = props;\n\n  const baseProps = svgPropertiesNoEvents(propsWithoutId);\n\n  return (\n    <Dots\n      points={points}\n      dot={dot}\n      className=\"recharts-radar-dots\"\n      dotClassName=\"recharts-radar-dot\"\n      dataKey={dataKey}\n      baseProps={baseProps}\n    />\n  );\n}\n\nexport function computeRadarPoints({\n  radiusAxis,\n  angleAxis,\n  displayedData,\n  dataKey,\n  bandSize,\n}: {\n  radiusAxis: RadiusAxisForRadar;\n  angleAxis: AngleAxisForRadar;\n  displayedData: any[];\n  dataKey: RadarProps['dataKey'];\n  bandSize: number;\n}): RadarComposedData {\n  const { cx, cy } = angleAxis;\n  let isRange = false;\n  const points: RadarPoint[] = [];\n  const angleBandSize = angleAxis.type !== 'number' ? (bandSize ?? 0) : 0;\n\n  displayedData.forEach((entry, i) => {\n    const name = getValueByDataKey(entry, angleAxis.dataKey, i);\n    const value = getValueByDataKey(entry, dataKey);\n    const angle: number = (angleAxis.scale.map(name) ?? 0) + angleBandSize;\n    const pointValue = Array.isArray(value) ? last(value) : value;\n    const radius: number = isNullish(pointValue) ? 0 : (radiusAxis.scale.map(pointValue) ?? 0);\n\n    if (Array.isArray(value) && value.length >= 2) {\n      isRange = true;\n    }\n\n    points.push({\n      ...polarToCartesian(cx, cy, radius, angle),\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      name,\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      value,\n      cx,\n      cy,\n      radius,\n      angle,\n      payload: entry,\n    });\n  });\n  const baseLinePoints: RadarPoint[] = [];\n\n  if (isRange) {\n    points.forEach((point: RadarPoint) => {\n      if (Array.isArray(point.value)) {\n        const baseValue = point.value[0];\n        const radius: number = isNullish(baseValue) ? 0 : (radiusAxis.scale.map(baseValue) ?? 0);\n\n        baseLinePoints.push({\n          ...point,\n          radius,\n          ...polarToCartesian(cx, cy, radius, point.angle),\n        });\n      } else {\n        baseLinePoints.push(point);\n      }\n    });\n  }\n\n  return { points, isRange, baseLinePoints };\n}\n\nfunction RadarLabelListProvider({\n  showLabels,\n  points,\n  children,\n}: {\n  showLabels: boolean;\n  points: ReadonlyArray<RadarPoint>;\n  children: ReactNode;\n}) {\n  /*\n   * Radar provides a Cartesian label list context. Do we want to also provide a polar label list context?\n   * That way, users can choose to use polar positions for the Radar labels.\n   */\n  // const labelListEntries: ReadonlyArray<PolarLabelListEntry> = points.map(\n  //   (point): PolarLabelListEntry => ({\n  //     value: point.value,\n  //     payload: point.payload,\n  //     parentViewBox: undefined,\n  //     clockWise: false,\n  //     viewBox: {\n  //       cx: point.cx,\n  //       cy: point.cy,\n  //       innerRadius: point.radius,\n  //       outerRadius: point.radius,\n  //       startAngle: point.angle,\n  //       endAngle: point.angle,\n  //       clockWise: false,\n  //     },\n  //   }),\n  // );\n\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> = points.map((point): CartesianLabelListEntry => {\n    const viewBox: TrapezoidViewBox = {\n      x: point.x,\n      y: point.y,\n      width: 0,\n      lowerWidth: 0,\n      upperWidth: 0,\n      height: 0,\n    };\n    return {\n      ...viewBox,\n      value: point.value ?? '',\n      payload: point.payload,\n      parentViewBox: undefined,\n      viewBox,\n      fill: undefined,\n    };\n  });\n\n  return (\n    <CartesianLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </CartesianLabelListContextProvider>\n  );\n}\n\nfunction StaticPolygon({\n  points,\n  baseLinePoints,\n  props,\n}: {\n  points: ReadonlyArray<RadarPoint>;\n  baseLinePoints: ReadonlyArray<RadarPoint>;\n  props: PropsWithDefaults;\n}) {\n  if (points == null) {\n    return null;\n  }\n\n  const { shape, isRange, connectNulls } = props;\n\n  const handleMouseEnter = (e: MouseEvent<SVGPolygonElement>) => {\n    const { onMouseEnter } = props;\n\n    if (onMouseEnter) {\n      onMouseEnter(props, e);\n    }\n  };\n\n  const handleMouseLeave = (e: MouseEvent<SVGPolygonElement>) => {\n    const { onMouseLeave } = props;\n\n    if (onMouseLeave) {\n      onMouseLeave(props, e);\n    }\n  };\n\n  let radar;\n  if (React.isValidElement(shape)) {\n    radar = React.cloneElement(shape, { ...props, points } as any);\n  } else if (typeof shape === 'function') {\n    radar = shape({ ...props, points });\n  } else {\n    radar = (\n      <Polygon\n        {...svgPropertiesAndEvents(props)}\n        onMouseEnter={handleMouseEnter}\n        onMouseLeave={handleMouseLeave}\n        points={points}\n        baseLinePoints={isRange ? baseLinePoints : undefined}\n        connectNulls={connectNulls}\n      />\n    );\n  }\n\n  return (\n    <Layer className=\"recharts-radar-polygon\">\n      {radar}\n      <RadarDotsWrapper props={props} points={points} />\n    </Layer>\n  );\n}\n\nconst interpolatePolarPoint =\n  (prevPoints: ReadonlyArray<RadarPoint> | undefined, prevPointsDiffFactor: number, t: number) =>\n  (entry: RadarPoint, index: number) => {\n    const prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];\n\n    if (prev) {\n      return {\n        ...entry,\n        x: interpolate(prev.x, entry.x, t),\n        y: interpolate(prev.y, entry.y, t),\n      };\n    }\n\n    return {\n      ...entry,\n      x: interpolate(entry.cx, entry.x, t),\n      y: interpolate(entry.cy, entry.y, t),\n    };\n  };\n\nfunction PolygonWithAnimation({\n  props,\n  previousPointsRef,\n  previousBaseLinePointsRef,\n}: {\n  props: InternalProps;\n  previousPointsRef: MutableRefObject<ReadonlyArray<RadarPoint> | undefined>;\n  previousBaseLinePointsRef: MutableRefObject<ReadonlyArray<RadarPoint> | undefined>;\n}) {\n  const {\n    points,\n    baseLinePoints,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    onAnimationEnd,\n    onAnimationStart,\n  } = props;\n  const prevPoints = previousPointsRef.current;\n  const prevBaseLinePoints = previousBaseLinePointsRef.current;\n\n  const prevPointsDiffFactor: number = prevPoints ? prevPoints.length / points.length : 1;\n  const prevBaseLinePointsDiffFactor: number = prevBaseLinePoints\n    ? prevBaseLinePoints.length / baseLinePoints.length\n    : 1;\n\n  const animationId = useAnimationId(props, 'recharts-radar-');\n  const [isAnimating, setIsAnimating] = useState(false);\n  const showLabels = !isAnimating;\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n\n  return (\n    <RadarLabelListProvider showLabels={showLabels} points={points}>\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        key={`radar-${animationId}`}\n        onAnimationEnd={handleAnimationEnd}\n        onAnimationStart={handleAnimationStart}\n      >\n        {(t: number) => {\n          const stepData = t === 1 ? points : points.map(interpolatePolarPoint(prevPoints, prevPointsDiffFactor, t));\n\n          const stepBaseLinePoints =\n            t === 1\n              ? baseLinePoints\n              : baseLinePoints?.map(interpolatePolarPoint(prevBaseLinePoints, prevBaseLinePointsDiffFactor, t));\n\n          if (t > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousPointsRef.current = stepData;\n            // eslint-disable-next-line no-param-reassign\n            previousBaseLinePointsRef.current = stepBaseLinePoints;\n          }\n          return <StaticPolygon points={stepData} baseLinePoints={stepBaseLinePoints} props={props} />;\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n      {props.children}\n    </RadarLabelListProvider>\n  );\n}\n\nfunction RenderPolygon(props: InternalProps) {\n  const previousPointsRef = useRef<ReadonlyArray<RadarPoint> | undefined>(undefined);\n  const previousBaseLinePointsRef = useRef<ReadonlyArray<RadarPoint> | undefined>(undefined);\n\n  return (\n    <PolygonWithAnimation\n      props={props}\n      previousPointsRef={previousPointsRef}\n      previousBaseLinePointsRef={previousBaseLinePointsRef}\n    />\n  );\n}\n\nexport const defaultRadarProps = {\n  activeDot: true,\n  angleAxisId: 0,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  dot: false,\n  hide: false,\n  isAnimationActive: 'auto',\n  label: false,\n  legendType: 'rect',\n  radiusAxisId: 0,\n  zIndex: DefaultZIndexes.area,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof defaultRadarProps>;\n\ntype InternalProps = WithIdRequired<PropsWithDefaults> & RadarComposedData;\n\nfunction RadarWithState(props: InternalProps) {\n  const { hide, className, points } = props;\n\n  if (hide) {\n    return null;\n  }\n\n  const layerClass = clsx('recharts-radar', className);\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={layerClass}>\n        <RenderPolygon {...props} />\n      </Layer>\n      <ActivePoints\n        points={points}\n        mainColor={getLegendItemColor(props.stroke, props.fill)}\n        itemDataKey={props.dataKey}\n        activeDot={props.activeDot}\n      />\n    </ZIndexLayer>\n  );\n}\n\nfunction RadarImpl(props: WithIdRequired<PropsWithDefaults>) {\n  const isPanorama = useIsPanorama();\n  const radarPoints = useAppSelector(state =>\n    selectRadarPoints(state, props.radiusAxisId, props.angleAxisId, isPanorama, props.id),\n  );\n\n  if (radarPoints?.points == null) {\n    return null;\n  }\n\n  return (\n    <RadarWithState\n      {...props}\n      points={radarPoints?.points}\n      baseLinePoints={radarPoints?.baseLinePoints}\n      isRange={radarPoints?.isRange}\n    />\n  );\n}\n\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n */\nexport function Radar(outsideProps: Props) {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, defaultRadarProps);\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"radar\">\n      {id => (\n        <>\n          <SetPolarGraphicalItem\n            type=\"radar\"\n            id={id}\n            data={undefined} // Radar does not have data prop, why?\n            dataKey={props.dataKey}\n            hide={props.hide}\n            angleAxisId={props.angleAxisId}\n            radiusAxisId={props.radiusAxisId}\n          />\n          <SetPolarLegendPayload legendPayload={computeLegendPayloadFromRadarSectors(props)} />\n          <SetRadarTooltipEntrySettings\n            dataKey={props.dataKey}\n            stroke={props.stroke}\n            strokeWidth={props.strokeWidth}\n            fill={props.fill}\n            name={props.name}\n            hide={props.hide}\n            tooltipType={props.tooltipType}\n            id={id}\n          />\n          <RadarImpl {...props} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\nRadar.displayName = 'Radar';\n","import * as React from 'react';\nimport { RadialBarProps } from '../polar/RadialBar';\nimport { Props as SectorProps } from '../shape/Sector';\nimport { Shape } from './ActiveShapeUtils';\n\nexport function parseCornerRadius(cornerRadius: string | number | undefined): number | undefined {\n  if (typeof cornerRadius === 'string') {\n    return parseInt(cornerRadius, 10);\n  }\n\n  return cornerRadius;\n}\n\nexport interface RadialBarSectorProps extends SectorProps {\n  index?: number;\n  option: RadialBarProps['activeShape'];\n  isActive?: boolean;\n}\n\nexport function RadialBarSector(props: RadialBarSectorProps) {\n  return <Shape shapeType=\"sector\" {...props} />;\n}\n","import { DefinitelyStackedGraphicalItem, isStacked, MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';\nimport { StackId } from '../../../util/ChartUtils';\nimport { SizeList } from '../barSelectors';\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nimport { DataKey } from '../../../util/types';\n\nconst getBarSize = (\n  globalSize: string | number | undefined,\n  totalSize: number | undefined,\n  selfSize: number | string | undefined,\n): number | undefined => {\n  const barSize: string | number | undefined = selfSize ?? globalSize;\n\n  if (isNullish(barSize)) {\n    return undefined;\n  }\n  return getPercentValue(barSize, totalSize, 0);\n};\n\nexport const combineBarSizeList = (\n  allBars: ReadonlyArray<MaybeStackedGraphicalItem>,\n  globalSize: string | number | undefined,\n  totalSize: number | undefined,\n): SizeList => {\n  const initialValue: Record<StackId, Array<DefinitelyStackedGraphicalItem>> = {};\n\n  const stackedBars: ReadonlyArray<DefinitelyStackedGraphicalItem> = allBars.filter(isStacked);\n  const unstackedBars = allBars.filter(b => b.stackId == null);\n\n  const groupByStack: Record<StackId, Array<DefinitelyStackedGraphicalItem>> = stackedBars.reduce((acc, bar) => {\n    let s = acc[bar.stackId];\n    if (s == null) {\n      s = [];\n    }\n    s.push(bar);\n    acc[bar.stackId] = s;\n    return acc;\n  }, initialValue);\n\n  const stackedSizeList: SizeList = Object.entries(groupByStack).map(([stackId, bars]): BarCategory => {\n    const dataKeys = bars.map(b => b.dataKey);\n    const barSize: number | undefined = getBarSize(globalSize, totalSize, bars[0]?.barSize);\n    return { stackId, dataKeys, barSize };\n  });\n\n  const unstackedSizeList: SizeList = unstackedBars.map((b): BarCategory => {\n    const dataKeys = [b.dataKey].filter(dk => dk != null);\n    const barSize: number | undefined = getBarSize(globalSize, totalSize, b.barSize);\n    return { stackId: undefined, dataKeys, barSize };\n  });\n\n  return [...stackedSizeList, ...unstackedSizeList];\n};\nexport type BarCategory = {\n  stackId: StackId | undefined;\n  /**\n   * List of dataKeys of items stacked at this position.\n   * All of these Bars are either sharing the same stackId,\n   * or this is an array with one Bar because it has no stackId defined.\n   *\n   * This structure limits us to having one dataKey only once per stack which I think is reasonable.\n   * People who want to have the same data twice can duplicate their data to have two distinct dataKeys.\n   */\n  dataKeys: ReadonlyArray<DataKey<any>>;\n  /**\n   * Width (in horizontal chart) or height (in vertical chart) of this stack of items\n   */\n  barSize: number | undefined;\n};\n","import { getPercentValue, isNullish } from '../../../util/DataUtils';\nimport { BarWithPosition, SizeList } from '../barSelectors';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nimport { BarPositionPosition } from '../../../util/ChartUtils';\nimport { BarCategory } from './combineBarSizeList';\n\nfunction getBarPositions(\n  barGap: string | number,\n  barCategoryGap: string | number,\n  bandSize: number,\n  sizeList: SizeList,\n  maxBarSize: number | undefined,\n): ReadonlyArray<BarWithPosition> | undefined {\n  const len = sizeList.length;\n  if (len < 1) {\n    return undefined;\n  }\n\n  let realBarGap = getPercentValue(barGap, bandSize, 0, true);\n\n  let result: ReadonlyArray<BarWithPosition>;\n  const initialValue: ReadonlyArray<BarWithPosition> = [];\n\n  // whether is barSize set by user\n  // Okay but why does it check only for the first element? What if the first element is set but others are not?\n  if (isWellBehavedNumber(sizeList[0]?.barSize)) {\n    let useFull = false;\n    let fullBarSize: number = bandSize / len;\n    let sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);\n    sum += (len - 1) * realBarGap;\n\n    if (sum >= bandSize) {\n      sum -= (len - 1) * realBarGap;\n      realBarGap = 0;\n    }\n    if (sum >= bandSize && fullBarSize > 0) {\n      useFull = true;\n      fullBarSize *= 0.9;\n      sum = len * fullBarSize;\n    }\n\n    const offset = ((bandSize - sum) / 2) >> 0;\n    let prev: BarPositionPosition = { offset: offset - realBarGap, size: 0 };\n\n    result = sizeList.reduce(\n      (res: ReadonlyArray<BarWithPosition>, entry: BarCategory): ReadonlyArray<BarWithPosition> => {\n        const newPosition: BarWithPosition = {\n          stackId: entry.stackId,\n          dataKeys: entry.dataKeys,\n          position: {\n            offset: prev.offset + prev.size + realBarGap,\n            size: useFull ? fullBarSize : (entry.barSize ?? 0),\n          },\n        };\n        const newRes: Array<BarWithPosition> = [...res, newPosition];\n\n        prev = newPosition.position;\n\n        return newRes;\n      },\n      initialValue,\n    );\n  } else {\n    const offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n    if (bandSize - 2 * offset - (len - 1) * realBarGap <= 0) {\n      realBarGap = 0;\n    }\n\n    let originalSize = (bandSize - 2 * offset - (len - 1) * realBarGap) / len;\n    if (originalSize > 1) {\n      originalSize >>= 0;\n    }\n    const size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n    result = sizeList.reduce(\n      (res: ReadonlyArray<BarWithPosition>, entry: BarCategory, i): ReadonlyArray<BarWithPosition> => [\n        ...res,\n        {\n          stackId: entry.stackId,\n          dataKeys: entry.dataKeys,\n          position: {\n            offset: offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n            size,\n          },\n        },\n      ],\n      initialValue,\n    );\n  }\n\n  return result;\n}\n\nexport const combineAllBarPositions = (\n  sizeList: SizeList,\n  globalMaxBarSize: number | undefined,\n  barGap: string | number,\n  barCategoryGap: string | number,\n  barBandSize: number,\n  bandSize: number | undefined,\n  childMaxBarSize: number | undefined,\n): ReadonlyArray<BarWithPosition> | undefined => {\n  const maxBarSize: number | undefined = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n\n  let allBarPositions: ReadonlyArray<BarWithPosition> | undefined = getBarPositions(\n    barGap,\n    barCategoryGap,\n    barBandSize !== bandSize ? barBandSize : bandSize,\n    sizeList,\n    maxBarSize,\n  );\n\n  if (barBandSize !== bandSize && allBarPositions != null) {\n    allBarPositions = allBarPositions.map(pos => ({\n      ...pos,\n      position: { ...pos.position, offset: pos.position.offset - barBandSize / 2 },\n    }));\n  }\n\n  return allBarPositions;\n};\n","import { AllStackGroups, StackGroup, StackSeries } from '../../../util/stacks/stackTypes';\nimport { MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';\nimport { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\n\nexport const combineStackedData = (\n  stackGroups: AllStackGroups | undefined,\n  barSettings: MaybeStackedGraphicalItem | undefined,\n): StackSeries | undefined => {\n  const stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);\n  if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {\n    return undefined;\n  }\n  const { stackId } = barSettings;\n  if (stackId == null) {\n    return undefined;\n  }\n  const stackGroup: StackGroup | undefined = stackGroups[stackId];\n  if (!stackGroup) {\n    return undefined;\n  }\n  const { stackedData }: StackGroup = stackGroup;\n  if (!stackedData) {\n    return undefined;\n  }\n  return stackedData.find(sd => sd.key === stackSeriesIdentifier);\n};\n","import { MaybeStackedGraphicalItem } from '../../types/StackedGraphicalItem';\nimport { BarPositionPosition } from '../../../util/ChartUtils';\nimport { BarWithPosition } from '../barSelectors';\n\nexport const combineBarPosition = (\n  allBarPositions: ReadonlyArray<BarWithPosition> | undefined,\n  barSettings: MaybeStackedGraphicalItem | undefined,\n): BarPositionPosition | undefined => {\n  if (allBarPositions == null || barSettings == null) {\n    return undefined;\n  }\n  const position = allBarPositions.find(\n    (p: BarWithPosition) =>\n      p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey),\n  );\n  if (position == null) {\n    return undefined;\n  }\n  return position.position;\n};\n","import { createSelector } from 'reselect';\nimport { ReactElement } from 'react';\nimport { Series } from 'victory-vendor/d3-shape';\nimport { computeRadialBarDataItems, RadialBarDataItem } from '../../polar/RadialBar';\nimport { selectChartDataAndAlwaysIgnoreIndexes, selectChartDataWithIndexes } from './dataSelectors';\nimport { RechartsRootState } from '../store';\nimport { ChartDataState } from '../chartDataSlice';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { LayoutType, LegendType, PolarViewBoxRequired, TickItem } from '../../util/types';\nimport { selectPolarAxisScale, selectPolarAxisTicks, selectPolarGraphicalItemAxisTicks } from './polarScaleSelectors';\nimport { BaseAxisWithScale, combineStackGroups, selectTooltipAxis } from './axisSelectors';\nimport { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { BarPositionPosition, getBandSizeOfAxis, getBaseValueOfBar, isCategoricalAxis } from '../../util/ChartUtils';\nimport { BarWithPosition, SizeList } from './barSelectors';\nimport {\n  selectBarCategoryGap,\n  selectBarGap,\n  selectReverseStackOrder,\n  selectRootBarSize,\n  selectRootMaxBarSize,\n  selectStackOffsetType,\n} from './rootPropsSelectors';\nimport { PolarGraphicalItemSettings } from '../graphicalItemsSlice';\nimport { PolarAxisType, selectPolarItemsSettings, selectUnfilteredPolarItems } from './polarSelectors';\nimport { AngleAxisSettings, RadiusAxisSettings } from '../polarAxisSlice';\nimport { LegendPayload } from '../../component/DefaultLegendContent';\nimport { isNullish } from '../../util/DataUtils';\n\nimport { AllStackGroups, StackDataPoint, StackSeries, StackSeriesIdentifier } from '../../util/stacks/stackTypes';\nimport { combineDisplayedStackedData, DisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { RadialBarSettings } from '../types/RadialBarSettings';\nimport { DefinitelyStackedGraphicalItem, isStacked } from '../types/StackedGraphicalItem';\nimport { combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { RechartsScale } from '../../util/scale/RechartsScale';\nimport { combineBarPosition } from './combiners/combineBarPosition';\n\nconst selectRadiusAxisForRadialBar = (state: RechartsRootState, radiusAxisId: AxisId): RadiusAxisSettings =>\n  selectRadiusAxis(state, radiusAxisId);\n\nconst selectRadiusAxisScaleForRadar = (state: RechartsRootState, radiusAxisId: AxisId): RechartsScale | undefined =>\n  selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);\n\nexport const selectRadiusAxisWithScale: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n) => BaseAxisWithScale | undefined = createSelector(\n  [selectRadiusAxisForRadialBar, selectRadiusAxisScaleForRadar],\n  (axis: RadiusAxisSettings, scale: RechartsScale | undefined): BaseAxisWithScale | undefined => {\n    if (axis == null || scale == null) {\n      return undefined;\n    }\n    return { ...axis, scale };\n  },\n);\n\nexport const selectRadiusAxisTicks = (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n): ReadonlyArray<TickItem> | undefined => {\n  return selectPolarGraphicalItemAxisTicks(state, 'radiusAxis', radiusAxisId, false);\n};\n\nconst selectAngleAxisForRadialBar = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n): AngleAxisSettings => selectAngleAxis(state, angleAxisId);\n\nconst selectAngleAxisScaleForRadialBar = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n): RechartsScale | undefined => selectPolarAxisScale(state, 'angleAxis', angleAxisId);\n\nexport const selectAngleAxisWithScale: (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n) => BaseAxisWithScale | undefined = createSelector(\n  [selectAngleAxisForRadialBar, selectAngleAxisScaleForRadialBar],\n  (axis: AngleAxisSettings, scale: RechartsScale | undefined): BaseAxisWithScale | undefined => {\n    if (axis == null || scale == null) {\n      return undefined;\n    }\n    return { ...axis, scale };\n  },\n);\n\nconst selectAngleAxisTicks = (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n): ReadonlyArray<TickItem> | undefined => {\n  // here we can hardcode isPanorama to false because radialBar does not support panorama mode\n  return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, false);\n};\n\nconst pickRadialBarSettings = (\n  _state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n): RadialBarSettings => radialBarSettings;\n\nconst selectSynchronisedRadialBarSettings: (\n  state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n) => RadialBarSettings | undefined = createSelector(\n  [selectUnfilteredPolarItems, pickRadialBarSettings],\n  (graphicalItems, radialBarSettingsFromProps) => {\n    if (\n      graphicalItems.some(\n        pgis =>\n          pgis.type === 'radialBar' &&\n          radialBarSettingsFromProps.dataKey === pgis.dataKey &&\n          radialBarSettingsFromProps.stackId === pgis.stackId,\n      )\n    ) {\n      return radialBarSettingsFromProps;\n    }\n    return undefined;\n  },\n);\n\nexport const selectBandSizeOfPolarAxis: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n) => number | undefined = createSelector(\n  [selectChartLayout, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectAngleAxisWithScale, selectAngleAxisTicks],\n  (\n    layout: LayoutType,\n    radiusAxis: BaseAxisWithScale | undefined,\n    radiusAxisTicks: ReadonlyArray<TickItem> | undefined,\n    angleAxis: BaseAxisWithScale | undefined,\n    angleAxisTicks: ReadonlyArray<TickItem> | undefined,\n  ) => {\n    if (isCategoricalAxis(layout, 'radiusAxis')) {\n      return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);\n    }\n    return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);\n  },\n);\n\nexport const selectBaseValue: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n) => number | unknown = createSelector(\n  [selectAngleAxisWithScale, selectRadiusAxisWithScale, selectChartLayout],\n  (angleAxis, radiusAxis, layout) => {\n    const numericAxis = layout === 'radial' ? angleAxis : radiusAxis;\n    if (numericAxis == null || numericAxis.scale == null) {\n      return undefined;\n    }\n    return getBaseValueOfBar({ numericAxis });\n  },\n);\n\nconst pickCells = (\n  _state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  _radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => cells;\n\nconst pickAngleAxisId = (\n  _state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  _radialBarSettings: RadialBarSettings,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n): AxisId => angleAxisId;\n\nconst pickRadiusAxisId = (\n  _state: RechartsRootState,\n  radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  _radialBarSettings: RadialBarSettings,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n): AxisId => radiusAxisId;\n\nexport const pickMaxBarSize = (\n  _state: RechartsRootState,\n  _radiusAxisId: AxisId,\n  _angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n): number | undefined => radialBarSettings.maxBarSize;\n\nconst isRadialBar = (item: PolarGraphicalItemSettings): item is RadialBarSettings => item.type === 'radialBar';\n\nconst selectAllVisibleRadialBars: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<RadialBarSettings> = createSelector(\n  [selectChartLayout, selectUnfilteredPolarItems, pickAngleAxisId, pickRadiusAxisId],\n  (\n    layout: LayoutType,\n    allItems: ReadonlyArray<PolarGraphicalItemSettings>,\n    angleAxisId: AxisId,\n    radiusAxisId: AxisId,\n  ): ReadonlyArray<RadialBarSettings> => {\n    return allItems\n      .filter(i => {\n        if (layout === 'centric') {\n          return i.angleAxisId === angleAxisId;\n        }\n        return i.radiusAxisId === radiusAxisId;\n      })\n      .filter(i => i.hide === false)\n      .filter(isRadialBar);\n  },\n);\n\n/**\n * The generator never returned the totalSize which means that barSize in polar chart can not support percent values.\n * We can add that if we want to I suppose.\n * @returns undefined - but it should be a total size of numerical axis in polar chart\n */\nconst selectPolarBarAxisSize = (): undefined => undefined;\n\nexport const selectPolarBarSizeList: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => SizeList = createSelector(\n  [selectAllVisibleRadialBars, selectRootBarSize, selectPolarBarAxisSize],\n  combineBarSizeList,\n);\n\nexport const selectPolarBarBandSize: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => number = createSelector(\n  [\n    selectChartLayout,\n    selectRootMaxBarSize,\n    selectAngleAxisWithScale,\n    selectAngleAxisTicks,\n    selectRadiusAxisWithScale,\n    selectRadiusAxisTicks,\n    pickMaxBarSize,\n  ],\n  (\n    layout: LayoutType,\n    globalMaxBarSize: number | undefined,\n    angleAxis: BaseAxisWithScale | undefined,\n    angleAxisTicks: ReadonlyArray<TickItem> | undefined,\n    radiusAxis: BaseAxisWithScale | undefined,\n    radiusAxisTicks: ReadonlyArray<TickItem> | undefined,\n    childMaxBarSize: number | undefined,\n  ): number => {\n    const maxBarSize: number | undefined = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n    if (layout === 'centric') {\n      return getBandSizeOfAxis(angleAxis, angleAxisTicks, true) ?? maxBarSize ?? 0;\n    }\n    return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, true) ?? maxBarSize ?? 0;\n  },\n);\n\nexport const selectAllPolarBarPositions: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<BarWithPosition> | undefined = createSelector(\n  [\n    selectPolarBarSizeList,\n    selectRootMaxBarSize,\n    selectBarGap,\n    selectBarCategoryGap,\n    selectPolarBarBandSize,\n    selectBandSizeOfPolarAxis,\n    pickMaxBarSize,\n  ],\n  combineAllBarPositions,\n);\n\nexport const selectPolarBarPosition: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => BarPositionPosition | undefined = createSelector(\n  [selectAllPolarBarPositions, selectSynchronisedRadialBarSettings],\n  combineBarPosition,\n);\n\nconst selectStackedRadialBars: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => ReadonlyArray<DefinitelyStackedGraphicalItem> = createSelector(\n  [selectPolarItemsSettings],\n  (allPolarItems: ReadonlyArray<PolarGraphicalItemSettings>): ReadonlyArray<DefinitelyStackedGraphicalItem> =>\n    allPolarItems.filter(isRadialBar).filter(isStacked),\n);\n\nconst selectPolarCombinedStackedData: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => DisplayedStackedData = createSelector(\n  [selectStackedRadialBars, selectChartDataAndAlwaysIgnoreIndexes, selectTooltipAxis],\n  combineDisplayedStackedData,\n);\n\nconst selectStackGroups: (\n  state: RechartsRootState,\n  axisType: PolarAxisType,\n  polarAxisId: AxisId,\n) => AllStackGroups | undefined = createSelector(\n  [selectPolarCombinedStackedData, selectStackedRadialBars, selectStackOffsetType, selectReverseStackOrder],\n  combineStackGroups,\n);\n\nconst selectRadialBarStackGroups: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => AllStackGroups | undefined = (state, radiusAxisId, angleAxisId) => {\n  const layout = selectChartLayout(state);\n  if (layout === 'centric') {\n    return selectStackGroups(state, 'radiusAxis', radiusAxisId);\n  }\n  return selectStackGroups(state, 'angleAxis', angleAxisId);\n};\n\nconst selectPolarStackedData: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => StackSeries | undefined = createSelector(\n  [selectRadialBarStackGroups, selectSynchronisedRadialBarSettings],\n  combineStackedData,\n);\n\nexport const selectRadialBarSectors: (\n  state: RechartsRootState,\n  radiusAxisId: AxisId,\n  angleAxisId: AxisId,\n  radialBarSettings: RadialBarSettings,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<RadialBarDataItem> = createSelector(\n  [\n    selectAngleAxisWithScale,\n    selectAngleAxisTicks,\n    selectRadiusAxisWithScale,\n    selectRadiusAxisTicks,\n    selectChartDataWithIndexes,\n    selectSynchronisedRadialBarSettings,\n    selectBandSizeOfPolarAxis,\n    selectChartLayout,\n    selectBaseValue,\n    selectPolarViewBox,\n    pickCells,\n    selectPolarBarPosition,\n    selectPolarStackedData,\n  ],\n  (\n    angleAxis: BaseAxisWithScale | undefined,\n    angleAxisTicks: ReadonlyArray<TickItem> | undefined,\n    radiusAxis: BaseAxisWithScale | undefined,\n    radiusAxisTicks: ReadonlyArray<TickItem> | undefined,\n    { chartData, dataStartIndex, dataEndIndex }: ChartDataState,\n    radialBarSettings: RadialBarSettings | undefined,\n    bandSize: number | undefined,\n    layout: LayoutType,\n    baseValue: number | unknown,\n    polarViewBox: PolarViewBoxRequired | undefined,\n    cells: ReadonlyArray<ReactElement> | undefined,\n    pos: BarPositionPosition | undefined,\n    stackedData: Series<StackDataPoint, StackSeriesIdentifier> | undefined,\n  ): ReadonlyArray<RadialBarDataItem> => {\n    if (\n      radialBarSettings == null ||\n      radiusAxis == null ||\n      angleAxis == null ||\n      chartData == null ||\n      bandSize == null ||\n      pos == null ||\n      (layout !== 'centric' && layout !== 'radial') ||\n      radiusAxisTicks == null ||\n      polarViewBox == null\n    ) {\n      return [];\n    }\n    const { dataKey, minPointSize } = radialBarSettings;\n    const { cx, cy, startAngle, endAngle } = polarViewBox;\n    const displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n    const numericAxis = layout === 'centric' ? radiusAxis : angleAxis;\n    const stackedDomain: ReadonlyArray<unknown> | null = stackedData ? numericAxis.scale.domain() : null;\n    return computeRadialBarDataItems({\n      angleAxis,\n      angleAxisTicks,\n      bandSize,\n      baseValue,\n      cells,\n      cx,\n      cy,\n      dataKey,\n      dataStartIndex,\n      displayedData,\n      endAngle,\n      layout,\n      minPointSize,\n      pos,\n      radiusAxis,\n      radiusAxisTicks,\n      stackedData,\n      stackedDomain,\n      startAngle,\n    });\n  },\n);\n\nexport const selectRadialBarLegendPayload: (\n  state: RechartsRootState,\n  legendType: LegendType | undefined,\n) => ReadonlyArray<LegendPayload> = createSelector(\n  [selectChartDataAndAlwaysIgnoreIndexes, (_s: RechartsRootState, l: LegendType | undefined) => l],\n  (\n    { chartData, dataStartIndex, dataEndIndex }: ChartDataState,\n    legendType: LegendType | undefined,\n  ): ReadonlyArray<LegendPayload> => {\n    if (chartData == null) {\n      return [];\n    }\n    const displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n\n    if (displayedData.length === 0) {\n      return [];\n    }\n\n    return displayedData.map((entry): LegendPayload => {\n      return {\n        type: legendType,\n        // @ts-expect-error we need a better typing for our data inputs\n        value: entry.name,\n        // @ts-expect-error we need a better typing for our data inputs\n        color: entry.fill,\n        // @ts-expect-error we need a better typing for our data inputs\n        payload: entry,\n      };\n    });\n  },\n);\n","import * as React from 'react';\nimport { MutableRefObject, PureComponent, ReactElement, ReactNode, useCallback, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport { Series } from 'victory-vendor/d3-shape';\nimport { parseCornerRadius, RadialBarSector, RadialBarSectorProps } from '../util/RadialBarUtils';\nimport { Props as SectorProps } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport {\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n  PolarLabelListContextProvider,\n  PolarLabelListEntry,\n} from '../component/LabelList';\nimport { Cell } from '../component/Cell';\nimport { interpolate, mathSign, noop } from '../util/DataUtils';\nimport {\n  BarPositionPosition,\n  getCateCoordinateOfBar,\n  getNormalizedStackId,\n  getTooltipNameProp,\n  getValueByDataKey,\n  truncateByDomain,\n} from '../util/ChartUtils';\nimport {\n  ActiveShape,\n  adaptEventsOfChild,\n  AnimationDuration,\n  AnimationTiming,\n  DataKey,\n  LayoutType,\n  LegendType,\n  PolarViewBoxRequired,\n  PresentationAttributesAdaptChildEvent,\n  TickItem,\n  TooltipType,\n} from '../util/types';\nimport {\n  useMouseClickItemDispatch,\n  useMouseEnterItemDispatch,\n  useMouseLeaveItemDispatch,\n} from '../context/tooltipContext';\nimport { TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { BaseAxisWithScale } from '../state/selectors/axisSelectors';\nimport { ChartData } from '../state/chartDataSlice';\nimport { selectRadialBarLegendPayload, selectRadialBarSectors } from '../state/selectors/radialBarSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { RadialBarSettings } from '../state/types/RadialBarSettings';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { WithIdRequired } from '../util/useUniqueId';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\n\nconst STABLE_EMPTY_ARRAY: readonly RadialBarDataItem[] = [];\n\nexport type RadialBarDataItem = SectorProps &\n  PolarViewBoxRequired & {\n    value?: any;\n    payload?: any;\n    background?: SectorProps;\n  };\n\ntype RadialBarBackground = boolean | (ActiveShape<SectorProps> & ZIndexable);\n\ntype RadialBarSectorsProps = {\n  sectors: ReadonlyArray<RadialBarDataItem>;\n  allOtherRadialBarProps: InternalProps;\n  showLabels: boolean;\n};\n\nfunction RadialBarLabelListProvider({\n  showLabels,\n  sectors,\n  children,\n}: {\n  showLabels: boolean;\n  sectors: ReadonlyArray<RadialBarDataItem>;\n  children: ReactNode;\n}) {\n  const labelListEntries: ReadonlyArray<PolarLabelListEntry> = sectors.map(\n    (sector: RadialBarDataItem): PolarLabelListEntry => ({\n      value: sector.value,\n      payload: sector.payload,\n      parentViewBox: undefined,\n      clockWise: false,\n      viewBox: {\n        cx: sector.cx,\n        cy: sector.cy,\n        innerRadius: sector.innerRadius,\n        outerRadius: sector.outerRadius,\n        startAngle: sector.startAngle,\n        endAngle: sector.endAngle,\n        clockWise: false,\n      },\n      fill: sector.fill,\n    }),\n  );\n\n  return (\n    <PolarLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </PolarLabelListContextProvider>\n  );\n}\n\nfunction RadialBarSectors({ sectors, allOtherRadialBarProps, showLabels }: RadialBarSectorsProps) {\n  const { shape, activeShape, cornerRadius, id, ...others } = allOtherRadialBarProps;\n  const baseProps = svgPropertiesNoEvents(others);\n\n  const activeIndex = useAppSelector(selectActiveTooltipIndex);\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    ...restOfAllOtherProps\n  } = allOtherRadialBarProps;\n\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherRadialBarProps.dataKey, id);\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  const onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherRadialBarProps.dataKey, id);\n\n  if (sectors == null) {\n    return null;\n  }\n\n  return (\n    <RadialBarLabelListProvider showLabels={showLabels} sectors={sectors}>\n      {sectors.map((entry: RadialBarDataItem, i: number) => {\n        const isActive = activeShape && activeIndex === String(i);\n        // @ts-expect-error the types need a bit of attention\n        const onMouseEnter = onMouseEnterFromContext(entry, i);\n        // @ts-expect-error the types need a bit of attention\n        const onMouseLeave = onMouseLeaveFromContext(entry, i);\n        // @ts-expect-error the types need a bit of attention\n        const onClick = onClickFromContext(entry, i);\n\n        const radialBarSectorProps: RadialBarSectorProps = {\n          ...baseProps,\n          cornerRadius: parseCornerRadius(cornerRadius),\n          ...entry,\n          ...adaptEventsOfChild(restOfAllOtherProps, entry, i),\n          onMouseEnter,\n          onMouseLeave,\n          onClick,\n          className: `recharts-radial-bar-sector ${entry.className}`,\n          forceCornerRadius: others.forceCornerRadius,\n          cornerIsExternal: others.cornerIsExternal,\n          isActive,\n          option: isActive ? activeShape : shape,\n        };\n\n        if (isActive) {\n          return (\n            <ZIndexLayer\n              zIndex={DefaultZIndexes.activeBar}\n              key={`sector-${entry.cx}-${entry.cy}-${entry.innerRadius}-${entry.outerRadius}-${entry.startAngle}-${entry.endAngle}-${i}`}\n            >\n              <RadialBarSector {...radialBarSectorProps} />\n            </ZIndexLayer>\n          );\n        }\n\n        return (\n          <RadialBarSector\n            key={`sector-${entry.cx}-${entry.cy}-${entry.innerRadius}-${entry.outerRadius}-${entry.startAngle}-${entry.endAngle}-${i}`}\n            {...radialBarSectorProps}\n          />\n        );\n      })}\n      <LabelListFromLabelProp label={allOtherRadialBarProps.label} />\n      {allOtherRadialBarProps.children}\n    </RadialBarLabelListProvider>\n  );\n}\n\nfunction SectorsWithAnimation({\n  props,\n  previousSectorsRef,\n}: {\n  props: InternalProps;\n  previousSectorsRef: MutableRefObject<ReadonlyArray<RadialBarDataItem> | null>;\n}) {\n  const {\n    sectors,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    onAnimationEnd,\n    onAnimationStart,\n  } = props;\n  const animationId = useAnimationId(props, 'recharts-radialbar-');\n\n  const prevData = previousSectorsRef.current;\n\n  const [isAnimating, setIsAnimating] = useState(false);\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n  return (\n    <JavascriptAnimate\n      animationId={animationId}\n      begin={animationBegin}\n      duration={animationDuration}\n      isActive={isAnimationActive}\n      easing={animationEasing}\n      onAnimationStart={handleAnimationStart}\n      onAnimationEnd={handleAnimationEnd}\n      key={animationId}\n    >\n      {(t: number) => {\n        const stepData: ReadonlyArray<RadialBarDataItem> | undefined =\n          t === 1\n            ? sectors\n            : (sectors ?? STABLE_EMPTY_ARRAY).map((entry: RadialBarDataItem, index: number): RadialBarDataItem => {\n                const prev = prevData && prevData[index];\n\n                if (prev) {\n                  return {\n                    ...entry,\n                    startAngle: interpolate(prev.startAngle, entry.startAngle, t),\n                    endAngle: interpolate(prev.endAngle, entry.endAngle, t),\n                  };\n                }\n                const { endAngle, startAngle } = entry;\n\n                return { ...entry, endAngle: interpolate(startAngle, endAngle, t) };\n              });\n\n        if (t > 0) {\n          // eslint-disable-next-line no-param-reassign\n          previousSectorsRef.current = stepData ?? null;\n        }\n\n        return (\n          <Layer>\n            <RadialBarSectors\n              sectors={stepData ?? STABLE_EMPTY_ARRAY}\n              allOtherRadialBarProps={props}\n              showLabels={!isAnimating}\n            />\n          </Layer>\n        );\n      }}\n    </JavascriptAnimate>\n  );\n}\n\nfunction RenderSectors(props: InternalProps) {\n  const previousSectorsRef = useRef<ReadonlyArray<RadialBarDataItem> | null>(null);\n\n  return <SectorsWithAnimation props={props} previousSectorsRef={previousSectorsRef} />;\n}\n\ninterface InternalRadialBarProps extends ZIndexable {\n  activeShape?: ActiveShape<SectorProps, SVGPathElement>;\n  /**\n   * @defaultValue 0\n   */\n  angleAxisId?: AxisId;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  /**\n   * Renders a background for each bar. Options:\n   *  - `false`: no background;\n   *  - `true`: renders default background;\n   *  - `object`: the props of background rectangle;\n   *  - `ReactElement`: a custom background element;\n   *  - `function`: a render function of custom background.\n   *\n   * @defaultValue false\n   */\n  background?: RadialBarBackground;\n  /**\n   * The width or height of each bar. If the barSize is not specified, the size of the bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.\n   */\n  barSize?: number;\n  className?: string;\n  /**\n   * @defaultValue false\n   */\n  cornerIsExternal?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  cornerRadius?: string | number;\n  /**\n   * Calculated radial bar sectors\n   */\n  sectors: ReadonlyArray<RadialBarDataItem>;\n  dataKey: string | number | ((obj: any) => any);\n  /**\n   * @defaultValue false\n   */\n  forceCornerRadius?: boolean;\n  /**\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * If set false, animation of radial bars will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  /**\n   * Renders one label for each data point. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object`: the props of LabelList component;\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelListType;\n  /**\n   * The type of icon in legend.  If set to 'none', no legend item will be rendered.\n   * @defaultValue rect\n   */\n  legendType?: LegendType;\n  maxBarSize?: number;\n  /**\n   * @defaultValue 0\n   */\n  minPointSize?: number;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  /**\n   * The customized event handler of click in this chart.\n   */\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousedown in this chart.\n   */\n  onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseup in this chart.\n   */\n  onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousemove in this chart.\n   */\n  onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseover in this chart.\n   */\n  onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseout in this chart.\n   */\n  onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter in this chart.\n   */\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave in this chart.\n   */\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * @defaultValue 0\n   */\n  radiusAxisId?: AxisId;\n  shape?: ActiveShape<SectorProps, SVGPathElement>;\n  stackId?: string | number;\n  tooltipType?: TooltipType;\n  /**\n   * @defaultValue 300\n   */\n  zIndex?: number;\n}\n\nexport type RadialBarProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'ref'> &\n  Omit<InternalRadialBarProps, 'sectors'>;\n\ntype InternalProps = WithIdRequired<PropsWithDefaults> & Pick<InternalRadialBarProps, 'sectors'>;\n\nfunction SetRadialBarPayloadLegend(props: RadialBarProps) {\n  const legendPayload = useAppSelector(state => selectRadialBarLegendPayload(state, props.legendType));\n  return <SetPolarLegendPayload legendPayload={legendPayload ?? []} />;\n}\n\nconst SetRadialBarTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    sectors,\n    stroke,\n    strokeWidth,\n    name,\n    hide,\n    fill,\n    tooltipType,\n    id,\n  }: Pick<\n    InternalProps,\n    'dataKey' | 'sectors' | 'stroke' | 'strokeWidth' | 'name' | 'hide' | 'fill' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: sectors,\n      getPosition: noop,\n      settings: {\n        graphicalItemId: id,\n        stroke,\n        strokeWidth,\n        fill,\n        nameKey: undefined, // RadialBar does not have nameKey, why?\n        dataKey,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: fill,\n        unit: '', // Why does RadialBar not support unit?\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nclass RadialBarWithState extends PureComponent<InternalProps> {\n  renderBackground(sectors?: ReadonlyArray<RadialBarDataItem>) {\n    if (sectors == null) {\n      return null;\n    }\n    const { cornerRadius } = this.props;\n    const backgroundProps = svgPropertiesNoEventsFromUnknown(this.props.background);\n    return (\n      <ZIndexLayer zIndex={getZIndexFromUnknown(this.props.background, DefaultZIndexes.barBackground)}>\n        {sectors.map((entry, i) => {\n          const { value, background, ...rest } = entry;\n\n          if (!background) {\n            return null;\n          }\n\n          const props: RadialBarSectorProps = {\n            cornerRadius: parseCornerRadius(cornerRadius),\n            ...rest,\n            // @ts-expect-error backgroundProps is contributing unknown props\n            fill: '#eee',\n            ...background,\n            ...backgroundProps,\n            ...adaptEventsOfChild(this.props, entry, i),\n            index: i,\n            className: clsx('recharts-radial-bar-background-sector', String(backgroundProps?.className)),\n            option: background,\n            isActive: false,\n          };\n\n          return (\n            <RadialBarSector\n              key={`background-${rest.cx}-${rest.cy}-${rest.innerRadius}-${rest.outerRadius}-${rest.startAngle}-${rest.endAngle}-${i}`}\n              {...props}\n            />\n          );\n        })}\n      </ZIndexLayer>\n    );\n  }\n\n  render() {\n    const { hide, sectors, className, background } = this.props;\n\n    if (hide) {\n      return null;\n    }\n\n    const layerClass = clsx('recharts-area', className);\n\n    return (\n      <ZIndexLayer zIndex={this.props.zIndex}>\n        <Layer className={layerClass}>\n          {background && <Layer className=\"recharts-radial-bar-background\">{this.renderBackground(sectors)}</Layer>}\n          <Layer className=\"recharts-radial-bar-sectors\">\n            <RenderSectors {...this.props} />\n          </Layer>\n        </Layer>\n      </ZIndexLayer>\n    );\n  }\n}\n\nfunction RadialBarImpl(props: WithIdRequired<PropsWithDefaults>) {\n  const cells = findAllByType(props.children, Cell);\n  const radialBarSettings: RadialBarSettings = {\n    data: undefined,\n    hide: false,\n    id: props.id,\n    dataKey: props.dataKey,\n    minPointSize: props.minPointSize,\n    stackId: getNormalizedStackId(props.stackId),\n    maxBarSize: props.maxBarSize,\n    barSize: props.barSize,\n    type: 'radialBar',\n    angleAxisId: props.angleAxisId,\n    radiusAxisId: props.radiusAxisId,\n  };\n  const sectors: ReadonlyArray<RadialBarDataItem> =\n    useAppSelector(state =>\n      selectRadialBarSectors(state, props.radiusAxisId, props.angleAxisId, radialBarSettings, cells),\n    ) ?? STABLE_EMPTY_ARRAY;\n  return (\n    <>\n      <SetRadialBarTooltipEntrySettings\n        dataKey={props.dataKey}\n        sectors={sectors}\n        stroke={props.stroke}\n        strokeWidth={props.strokeWidth}\n        name={props.name}\n        hide={props.hide}\n        fill={props.fill}\n        tooltipType={props.tooltipType}\n        id={props.id}\n      />\n      <RadialBarWithState {...props} sectors={sectors} />\n    </>\n  );\n}\n\nexport const defaultRadialBarProps = {\n  angleAxisId: 0,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  background: false,\n  cornerIsExternal: false,\n  cornerRadius: 0,\n  forceCornerRadius: false,\n  hide: false,\n  isAnimationActive: 'auto',\n  label: false,\n  legendType: 'rect',\n  minPointSize: 0,\n  radiusAxisId: 0,\n  zIndex: DefaultZIndexes.bar,\n} as const satisfies Partial<RadialBarProps>;\n\ntype PropsWithDefaults = RequiresDefaultProps<RadialBarProps, typeof defaultRadialBarProps>;\n\nexport function computeRadialBarDataItems({\n  displayedData,\n  stackedData,\n  dataStartIndex,\n  stackedDomain,\n  dataKey,\n  baseValue,\n  layout,\n  radiusAxis,\n  radiusAxisTicks,\n  bandSize,\n  pos,\n  angleAxis,\n  minPointSize,\n  cx,\n  cy,\n  angleAxisTicks,\n  cells,\n  startAngle: rootStartAngle,\n  endAngle: rootEndAngle,\n}: {\n  displayedData: ChartData;\n  stackedData: Series<Record<number, number>, DataKey<any>> | undefined;\n  dataStartIndex: number;\n  stackedDomain: ReadonlyArray<unknown> | null;\n  dataKey: DataKey<any> | undefined;\n  baseValue: number | unknown;\n  layout: LayoutType;\n  radiusAxis: BaseAxisWithScale;\n  radiusAxisTicks: ReadonlyArray<TickItem> | undefined;\n  bandSize: number;\n  pos: BarPositionPosition;\n  angleAxis: BaseAxisWithScale;\n  minPointSize: number;\n  cx: number;\n  cy: number;\n  angleAxisTicks: ReadonlyArray<TickItem> | undefined;\n  cells: ReadonlyArray<ReactElement> | undefined;\n  startAngle: number;\n  endAngle: number;\n}): ReadonlyArray<RadialBarDataItem> {\n  if (angleAxisTicks == null || radiusAxisTicks == null) {\n    return STABLE_EMPTY_ARRAY;\n  }\n\n  return (displayedData ?? []).map((entry: unknown, index: number) => {\n    let value,\n      innerRadius: number | null | undefined,\n      outerRadius: number | undefined,\n      startAngle: number | null,\n      endAngle: number,\n      backgroundSector;\n\n    if (stackedData) {\n      // @ts-expect-error truncateByDomain expects only numerical domain, but it can received categorical domain too\n      value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n    } else {\n      value = getValueByDataKey(entry, dataKey);\n      if (!Array.isArray(value)) {\n        value = [baseValue, value];\n      }\n    }\n\n    if (layout === 'radial') {\n      startAngle = angleAxis.scale.map(value[0]) ?? rootStartAngle;\n      endAngle = angleAxis.scale.map(value[1]) ?? rootEndAngle;\n      innerRadius = getCateCoordinateOfBar({\n        axis: radiusAxis,\n        ticks: radiusAxisTicks,\n        bandSize,\n        offset: pos.offset,\n        entry,\n        index,\n      });\n      if (innerRadius != null && endAngle != null && startAngle != null) {\n        outerRadius = innerRadius + pos.size;\n        const deltaAngle = endAngle - startAngle;\n\n        if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {\n          const delta = mathSign(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));\n\n          endAngle += delta;\n        }\n        backgroundSector = {\n          background: {\n            cx,\n            cy,\n            innerRadius,\n            outerRadius,\n            startAngle: rootStartAngle,\n            endAngle: rootEndAngle,\n          },\n        };\n      }\n    } else {\n      innerRadius = radiusAxis.scale.map(value[0]);\n      outerRadius = radiusAxis.scale.map(value[1]);\n      startAngle = getCateCoordinateOfBar({\n        axis: angleAxis,\n        ticks: angleAxisTicks,\n        bandSize,\n        offset: pos.offset,\n        entry,\n        index,\n      });\n      if (innerRadius != null && outerRadius != null && startAngle != null) {\n        endAngle = startAngle + pos.size;\n        const deltaRadius = outerRadius - innerRadius;\n\n        if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {\n          const delta = mathSign(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));\n          outerRadius += delta;\n        }\n      }\n    }\n\n    return {\n      // @ts-expect-error can't spread unknown\n      ...entry,\n      ...backgroundSector,\n      payload: entry,\n      value: stackedData ? value : value[1],\n      cx,\n      cy,\n      innerRadius,\n      outerRadius,\n      startAngle,\n      // @ts-expect-error endAngle is used before assigned (?)\n      endAngle,\n      ...(cells && cells[index] && cells[index].props),\n    } satisfies RadialBarDataItem;\n  });\n}\n\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n * @provides CellReader\n */\nexport function RadialBar(outsideProps: RadialBarProps) {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, defaultRadialBarProps);\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"radialBar\">\n      {id => (\n        <>\n          <SetPolarGraphicalItem\n            type=\"radialBar\"\n            id={id}\n            data={undefined} // why does RadialBar not allow data defined on the item?\n            dataKey={props.dataKey}\n            hide={props.hide ?? defaultRadialBarProps.hide}\n            angleAxisId={props.angleAxisId ?? defaultRadialBarProps.angleAxisId}\n            radiusAxisId={props.radiusAxisId ?? defaultRadialBarProps.radiusAxisId}\n            stackId={getNormalizedStackId(props.stackId)}\n            barSize={props.barSize}\n            minPointSize={props.minPointSize}\n            maxBarSize={props.maxBarSize}\n          />\n          <SetRadialBarPayloadLegend {...props} />\n          <RadialBarImpl {...props} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\nRadialBar.displayName = 'RadialBar';\n","import { isWellBehavedNumber } from '../util/isWellBehavedNumber';\n\nexport function getZIndexFromUnknown(input: unknown, defaultZIndex: number): number {\n  if (\n    input &&\n    typeof input === 'object' &&\n    'zIndex' in input &&\n    typeof input.zIndex === 'number' &&\n    isWellBehavedNumber(input.zIndex)\n  ) {\n    return input.zIndex;\n  }\n  return defaultZIndex;\n}\n","const PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\n\nexport const generatePrefixStyle = (name: string, value: string) => {\n  if (!name) {\n    return undefined;\n  }\n\n  const camelName = name.replace(/(\\w)/, v => v.toUpperCase());\n  const result: Record<string, string> = PREFIX_LIST.reduce(\n    (res, entry) => ({\n      ...res,\n      [entry + camelName]: value,\n    }),\n    {},\n  );\n\n  result[name] = value;\n\n  return result;\n};\n","import { useEffect } from 'react';\nimport { ChartData, setChartData, setComputedData } from '../state/chartDataSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { RechartsRootState } from '../state/store';\nimport { BrushStartEndIndex } from './brushUpdateContext';\nimport { useIsPanorama } from './PanoramaContext';\n\nexport const ChartDataContextProvider = (props: { chartData: ChartData | undefined }): null => {\n  const { chartData } = props;\n  const dispatch = useAppDispatch();\n  const isPanorama = useIsPanorama();\n  useEffect(() => {\n    if (isPanorama) {\n      // Panorama mode reuses data from the main chart, so we must not overwrite it here.\n      return () => {\n        // there is nothing to clean up\n      };\n    }\n    dispatch(setChartData(chartData));\n    return () => {\n      dispatch(setChartData(undefined));\n    };\n  }, [chartData, dispatch, isPanorama]);\n  return null;\n};\n\nexport const SetComputedData = (props: { computedData: any }): null => {\n  const { computedData } = props;\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(setComputedData(computedData));\n    return () => {\n      dispatch(setChartData(undefined));\n    };\n  }, [computedData, dispatch]);\n  return null;\n};\n\nconst selectChartData = (state: RechartsRootState): ChartData | undefined => state.chartData.chartData;\n\n/**\n * \"data\" is the data of the chart - it has no type because this part of recharts is very flexible.\n * Basically it's an array of \"something\" and then there's the dataKey property in various places\n * that's meant to pull other things away from the data.\n *\n * Some charts have `data` defined on the chart root, and they will return the array through this hook.\n * For example: <ComposedChart data={data} />.\n *\n * Other charts, such as Pie, have data defined on individual graphical elements.\n * These charts will return `undefined` through this hook, and you need to read the data from children.\n * For example: <PieChart><Pie data={data} />\n *\n * Some charts also allow setting both - data on the parent, and data on the children at the same time!\n * However, this particular selector will only return the ones defined on the parent.\n *\n * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.\n *\n * @return data array for some charts and undefined for other\n */\nexport const useChartData = (): ChartData | undefined => useAppSelector(selectChartData);\n\nconst selectDataIndex = (state: RechartsRootState): BrushStartEndIndex => {\n  const { dataStartIndex, dataEndIndex } = state.chartData;\n  return { startIndex: dataStartIndex, endIndex: dataEndIndex };\n};\n\n/**\n * startIndex and endIndex are data boundaries, set through Brush.\n *\n * @return object with startIndex and endIndex\n */\nexport const useDataIndex = () => {\n  return useAppSelector(selectDataIndex);\n};\n","import { createContext } from 'react';\n\nexport interface BrushStartEndIndex {\n  startIndex: number;\n  endIndex: number;\n}\n\nexport type OnBrushUpdate = (newState: BrushStartEndIndex) => void;\n\nexport const BrushUpdateDispatchContext = createContext<OnBrushUpdate>(() => {});\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { Padding } from '../util/types';\n\n/**\n * From all Brush properties, only height has a default value and will always be defined.\n * Other properties are nullable and will be computed from offsets and margins if they are not set.\n */\nexport type BrushSettings = {\n  x: number | undefined;\n  y: number | undefined;\n  width: number | undefined;\n  height: number;\n  padding: Padding;\n};\n\nconst initialState: BrushSettings = {\n  x: 0,\n  y: 0,\n  width: 0,\n  height: 0,\n  padding: { top: 0, right: 0, bottom: 0, left: 0 },\n};\n\nexport const brushSlice = createSlice({\n  name: 'brush',\n  initialState,\n  reducers: {\n    setBrushSettings(_state: BrushSettings, action: PayloadAction<BrushSettings | null>) {\n      if (action.payload == null) {\n        return initialState;\n      }\n      return action.payload;\n    },\n  },\n});\n\nexport const { setBrushSettings } = brushSlice.actions;\n\nexport const brushReducer = brushSlice.reducer;\n","import * as React from 'react';\nimport {\n  Children,\n  PureComponent,\n  ReactElement,\n  SVGAttributes,\n  SVGProps,\n  TouchEvent,\n  useCallback,\n  useContext,\n  useEffect,\n} from 'react';\nimport { clsx } from 'clsx';\nimport { scalePoint, ScalePoint } from 'victory-vendor/d3-scale';\nimport range from 'es-toolkit/compat/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber, isNotNil } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { DataKey, Padding } from '../util/types';\nimport { useChartData, useDataIndex } from '../context/chartDataContext';\nimport { BrushStartEndIndex, BrushUpdateDispatchContext, OnBrushUpdate } from '../context/brushUpdateContext';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { ChartData, setDataStartEndIndexes } from '../state/chartDataSlice';\nimport { BrushSettings, setBrushSettings } from '../state/brushSlice';\nimport { PanoramaContextProvider } from '../context/PanoramaContext';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { useBrushChartSynchronisation } from '../synchronisation/useChartSynchronisation';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\n\ntype BrushTravellerType = ReactElement<SVGElement> | ((props: TravellerProps) => ReactElement<SVGElement>);\n\n// Why is this tickFormatter different from the other TickFormatters? This one allows to return numbers too for some reason.\ntype BrushTickFormatter = (value: any, index: number) => number | string;\n\ninterface BrushProps {\n  /**\n   * The x-coordinate of brush.\n   * If left undefined, it will be computed from the chart's offset and margins.\n   */\n  x?: number;\n  /**\n   * The y-coordinate of brush.\n   * If left undefined, it will be computed from the chart's offset and margins.\n   */\n  y?: number;\n  dy?: number;\n  /**\n   * Width of the brush in pixels.\n   * If undefined, defaults to the chart width.\n   */\n  width?: number;\n  className?: string;\n\n  ariaLabel?: string;\n\n  /**\n   * Height of the brush in pixels.\n   *\n   * @defaultValue 40\n   */\n  height?: number;\n  /**\n   * The width of each traveller.\n   *\n   * @defaultValue 5\n   */\n  travellerWidth?: number;\n  traveller?: BrushTravellerType;\n  /**\n   * Number of data points to skip between chart refreshes.\n   *\n   * @defaultValue 1\n   */\n  gap?: number;\n  padding?: Padding;\n\n  /**\n   * Decides how to extract the value of this Brush from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Brush.\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * The default start index of brush.\n   * If the option is not set, the start index will be 0.\n   */\n  startIndex?: number;\n  /**\n   * The default end index of brush.\n   * If the option is not set, the end index will be calculated by the length of data.\n   */\n  endIndex?: number;\n  /**\n   * The formatter function of ticks.\n   */\n  tickFormatter?: BrushTickFormatter;\n\n  children?: ReactElement;\n  /**\n   * The handler of changing the active scope of brush.\n   */\n  onChange?: OnBrushUpdate;\n  onDragEnd?: OnBrushUpdate;\n  /**\n   * @defaultValue 1000\n   */\n  leaveTimeOut?: number;\n  /**\n   * @defaultValue false\n   */\n  alwaysShowText?: boolean;\n}\n\nexport type Props = Omit<SVGProps<SVGElement>, 'onChange' | 'onDragEnd' | 'ref'> & BrushProps;\n\ntype InternalProps = Omit<SVGProps<SVGElement>, 'onChange' | 'onDragEnd' | 'ref'> &\n  RequiresDefaultProps<BrushProps, typeof defaultBrushProps>;\n\ntype PropertiesFromContext = {\n  x: number;\n  y: number;\n  width: number;\n  data: ChartData;\n  startIndex: number;\n  endIndex: number;\n  onChange: OnBrushUpdate;\n};\n\ntype BrushTravellerId = 'startX' | 'endX';\n\nfunction DefaultTraveller(props: TravellerProps) {\n  const { x, y, width, height, stroke } = props;\n  const lineY = Math.floor(y + height / 2) - 1;\n\n  return (\n    <>\n      <rect x={x} y={y} width={width} height={height} fill={stroke} stroke=\"none\" />\n      <line x1={x + 1} y1={lineY} x2={x + width - 1} y2={lineY} fill=\"none\" stroke=\"#fff\" />\n      <line x1={x + 1} y1={lineY + 2} x2={x + width - 1} y2={lineY + 2} fill=\"none\" stroke=\"#fff\" />\n    </>\n  );\n}\n\nfunction Traveller(props: { travellerType: BrushTravellerType | undefined; travellerProps: TravellerProps }) {\n  const { travellerProps, travellerType } = props;\n\n  if (React.isValidElement(travellerType)) {\n    // @ts-expect-error element cloning disagrees with the types (and it should)\n    return React.cloneElement(travellerType, travellerProps);\n  }\n  if (typeof travellerType === 'function') {\n    return travellerType(travellerProps);\n  }\n  return <DefaultTraveller {...travellerProps} />;\n}\n\nfunction getNameFromUnknown(value: unknown): string | undefined {\n  if (isNotNil(value) && typeof value === 'object' && 'name' in value && typeof value.name === 'string') {\n    return value.name;\n  }\n  return undefined;\n}\n\nfunction getAriaLabel(data: ReadonlyArray<unknown>, startIndex: number, endIndex: number) {\n  const start = getNameFromUnknown(data[startIndex]);\n  const end = getNameFromUnknown(data[endIndex]);\n  return `Min value: ${start}, Max value: ${end}`;\n}\n\nfunction TravellerLayer({\n  otherProps,\n  travellerX,\n  id,\n  onMouseEnter,\n  onMouseLeave,\n  onMouseDown,\n  onTouchStart,\n  onTravellerMoveKeyboard,\n  onFocus,\n  onBlur,\n}: {\n  id: BrushTravellerId;\n  travellerX: number;\n  otherProps: BrushWithStateProps;\n  onMouseEnter: (e: MouseOrTouchEvent) => void;\n  onMouseLeave: (e: MouseOrTouchEvent) => void;\n  onMouseDown: (e: MouseOrTouchEvent) => void;\n  onTouchStart: (e: MouseOrTouchEvent) => void;\n  onTravellerMoveKeyboard: (direction: -1 | 1, travellerId: BrushTravellerId) => void;\n  onFocus: () => void;\n  onBlur: () => void;\n}) {\n  const { y, x: xFromProps, travellerWidth, height, traveller, ariaLabel, data, startIndex, endIndex } = otherProps;\n  const x = Math.max(travellerX, xFromProps);\n  const travellerProps: TravellerProps = {\n    ...svgPropertiesNoEvents(otherProps),\n    x,\n    y,\n    width: travellerWidth,\n    height,\n  };\n\n  const ariaLabelBrush = ariaLabel || getAriaLabel(data, startIndex, endIndex);\n\n  return (\n    <Layer\n      tabIndex={0}\n      role=\"slider\"\n      aria-label={ariaLabelBrush}\n      aria-valuenow={travellerX}\n      className=\"recharts-brush-traveller\"\n      onMouseEnter={onMouseEnter}\n      onMouseLeave={onMouseLeave}\n      onMouseDown={onMouseDown}\n      onTouchStart={onTouchStart}\n      onKeyDown={e => {\n        if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n          return;\n        }\n        e.preventDefault();\n        e.stopPropagation();\n        onTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n      }}\n      onFocus={onFocus}\n      onBlur={onBlur}\n      style={{ cursor: 'col-resize' }}\n    >\n      <Traveller travellerType={traveller} travellerProps={travellerProps} />\n    </Layer>\n  );\n}\n\ntype TextOfTickProps = {\n  index: number;\n  data: ChartData;\n  dataKey: DataKey<any> | undefined;\n  tickFormatter: BrushTickFormatter | undefined;\n};\n\n/*\n * This one cannot be a React Component because React is not happy with it returning only string | number.\n * React wants a full React.JSX.Element but that is not compatible with Text component.\n */\nfunction getTextOfTick(props: TextOfTickProps): number | string {\n  const { index, data, tickFormatter, dataKey } = props;\n  // @ts-expect-error getValueByDataKey does not validate the output type\n  const text: string = getValueByDataKey(data[index], dataKey, index);\n\n  return typeof tickFormatter === 'function' ? tickFormatter(text, index) : text;\n}\n\nfunction getIndexInRange(valueRange: number[], x: number) {\n  const len = valueRange.length;\n  let start = 0;\n  let end = len - 1;\n\n  while (end - start > 1) {\n    const middle = Math.floor((start + end) / 2);\n    const middleValue = valueRange[middle];\n\n    if (middleValue != null && middleValue > x) {\n      end = middle;\n    } else {\n      start = middle;\n    }\n  }\n\n  const endValue = valueRange[end];\n  return endValue != null && x >= endValue ? end : start;\n}\n\nfunction getIndex({\n  startX,\n  endX,\n  scaleValues,\n  gap,\n  data,\n}: {\n  startX: number;\n  endX: number;\n  scaleValues: number[];\n  gap: number;\n  data: ChartData;\n}): BrushStartEndIndex {\n  const lastIndex = data.length - 1;\n  const min = Math.min(startX, endX);\n  const max = Math.max(startX, endX);\n  const minIndex = getIndexInRange(scaleValues, min);\n  const maxIndex = getIndexInRange(scaleValues, max);\n  return {\n    startIndex: minIndex - (minIndex % gap),\n    endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - (maxIndex % gap),\n  };\n}\n\nfunction Background({\n  x,\n  y,\n  width,\n  height,\n  fill,\n  stroke,\n}: {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  fill: string | undefined;\n  stroke: string | undefined;\n}) {\n  return <rect stroke={stroke} fill={fill} x={x} y={y} width={width} height={height} />;\n}\n\nfunction BrushText({\n  startIndex,\n  endIndex,\n  y,\n  height,\n  travellerWidth,\n  stroke,\n  tickFormatter,\n  dataKey,\n  data,\n  startX,\n  endX,\n}: {\n  startIndex: number;\n  endIndex: number;\n  y: number;\n  height: number;\n  travellerWidth: number;\n  stroke: string | undefined;\n  tickFormatter: BrushTickFormatter | undefined;\n  dataKey: DataKey<any> | undefined;\n  data: ChartData;\n  startX: number;\n  endX: number;\n}) {\n  const offset = 5;\n  const attrs = {\n    pointerEvents: 'none',\n    fill: stroke,\n  };\n\n  return (\n    <Layer className=\"recharts-brush-texts\">\n      <Text textAnchor=\"end\" verticalAnchor=\"middle\" x={Math.min(startX, endX) - offset} y={y + height / 2} {...attrs}>\n        {getTextOfTick({ index: startIndex, tickFormatter, dataKey, data })}\n      </Text>\n      <Text\n        textAnchor=\"start\"\n        verticalAnchor=\"middle\"\n        x={Math.max(startX, endX) + travellerWidth + offset}\n        y={y + height / 2}\n        {...attrs}\n      >\n        {getTextOfTick({ index: endIndex, tickFormatter, dataKey, data })}\n      </Text>\n    </Layer>\n  );\n}\n\nfunction Slide({\n  y,\n  height,\n  stroke,\n  travellerWidth,\n  startX,\n  endX,\n  onMouseEnter,\n  onMouseLeave,\n  onMouseDown,\n  onTouchStart,\n}: {\n  y: number;\n  height: number;\n  stroke: string | undefined;\n  travellerWidth: number;\n  startX: number;\n  endX: number;\n  onMouseEnter: (e: MouseOrTouchEvent) => void;\n  onMouseLeave: (e: MouseOrTouchEvent) => void;\n  onMouseDown: (e: MouseOrTouchEvent) => void;\n  onTouchStart: (e: MouseOrTouchEvent) => void;\n}) {\n  const x = Math.min(startX, endX) + travellerWidth;\n  const width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n\n  return (\n    <rect\n      className=\"recharts-brush-slide\"\n      onMouseEnter={onMouseEnter}\n      onMouseLeave={onMouseLeave}\n      onMouseDown={onMouseDown}\n      onTouchStart={onTouchStart}\n      style={{ cursor: 'move' }}\n      stroke=\"none\"\n      fill={stroke}\n      fillOpacity={0.2}\n      x={x}\n      y={y}\n      width={width}\n      height={height}\n    />\n  );\n}\n\nfunction Panorama({\n  x,\n  y,\n  width,\n  height,\n  data,\n  children,\n  padding,\n}: {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  data: ChartData;\n  children: ReactElement | undefined;\n  padding: Padding;\n}) {\n  const isPanoramic = React.Children.count(children) === 1;\n  if (!isPanoramic) {\n    return null;\n  }\n  const chartElement = Children.only(children);\n\n  if (!chartElement) {\n    return null;\n  }\n\n  return React.cloneElement(chartElement, {\n    x,\n    y,\n    width,\n    height,\n    margin: padding,\n    compact: true,\n    data,\n  });\n}\n\ninterface State {\n  isTravellerMoving?: boolean;\n  isTravellerFocused?: boolean;\n  isSlideMoving?: boolean;\n  startX: number;\n  endX: number;\n  slideMoveStartX: number;\n  movingTravellerId: BrushTravellerId | undefined;\n  isTextActive?: boolean;\n  brushMoveStartX: number;\n\n  scale?: ScalePoint<number>;\n  scaleValues?: number[];\n\n  prevData?: ChartData;\n  prevWidth?: number;\n  prevX?: number;\n  prevTravellerWidth?: number;\n\n  /**\n   * Used to prevent re-setting of traveller position unless controlled via props.\n   * This is not perfect as mouseout events will still cause the traveller to move position\n   * but only when start/endIndex are controlled via props.\n   * */\n  prevStartIndexControlledFromProps?: number;\n  prevEndIndexControlledFromProps?: number;\n}\n\ntype TravellerProps = {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  stroke?: SVGAttributes<SVGElement>['stroke'];\n};\n\nconst createScale = ({\n  data,\n  startIndex,\n  endIndex,\n  x,\n  width,\n  travellerWidth,\n}: {\n  data: ChartData | undefined;\n  startIndex: number;\n  endIndex: number;\n  x: number;\n  width: number;\n  travellerWidth: number;\n}) => {\n  if (!data || !data.length) {\n    return {};\n  }\n\n  const len = data.length;\n  const scale = scalePoint<number>()\n    .domain(range(0, len))\n    .range([x, x + width - travellerWidth]);\n  const scaleValues = scale\n    .domain()\n    .map(entry => scale(entry))\n    .filter(isNotNil);\n\n  return {\n    isTextActive: false,\n    isSlideMoving: false,\n    isTravellerMoving: false,\n    isTravellerFocused: false,\n    startX: scale(startIndex),\n    endX: scale(endIndex),\n    scale,\n    scaleValues,\n  };\n};\n\nconst isTouch = (e: TouchEvent<SVGElement> | React.MouseEvent<SVGElement>): e is TouchEvent<SVGElement> =>\n  (e as TouchEvent<SVGElement>).changedTouches && !!(e as TouchEvent<SVGElement>).changedTouches.length;\n\ntype MouseOrTouchEvent = React.MouseEvent<SVGGElement> | TouchEvent<SVGGElement>;\n\ntype BrushWithStateProps = InternalProps &\n  PropertiesFromContext & { startIndexControlledFromProps?: number; endIndexControlledFromProps?: number };\n\nclass BrushWithState extends PureComponent<BrushWithStateProps, State> {\n  constructor(props: BrushWithStateProps) {\n    super(props);\n\n    this.travellerDragStartHandlers = {\n      startX: this.handleTravellerDragStart.bind(this, 'startX'),\n      endX: this.handleTravellerDragStart.bind(this, 'endX'),\n    };\n\n    this.state = { brushMoveStartX: 0, movingTravellerId: undefined, endX: 0, startX: 0, slideMoveStartX: 0 };\n  }\n\n  leaveTimer: number | null | undefined;\n\n  travellerDragStartHandlers: Record<BrushTravellerId, (event: MouseOrTouchEvent) => void>;\n\n  static getDerivedStateFromProps(nextProps: BrushWithStateProps, prevState: State): Partial<State> | null {\n    const {\n      data,\n      width,\n      x,\n      travellerWidth,\n      startIndex,\n      endIndex,\n      startIndexControlledFromProps,\n      endIndexControlledFromProps,\n    } = nextProps;\n\n    if (data !== prevState.prevData) {\n      return {\n        prevData: data,\n        prevTravellerWidth: travellerWidth,\n        prevX: x,\n        prevWidth: width,\n        ...(data && data.length\n          ? createScale({ data, width, x, travellerWidth, startIndex, endIndex })\n          : { scale: undefined, scaleValues: undefined }),\n      };\n    }\n    const prevScale = prevState.scale;\n    if (\n      prevScale &&\n      (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)\n    ) {\n      prevScale.range([x, x + width - travellerWidth]);\n\n      const scaleValues = prevScale\n        .domain()\n        .map(entry => prevScale(entry))\n        .filter(value => value != null);\n\n      return {\n        prevData: data,\n        prevTravellerWidth: travellerWidth,\n        prevX: x,\n        prevWidth: width,\n        startX: prevScale(nextProps.startIndex),\n        endX: prevScale(nextProps.endIndex),\n        scaleValues,\n      };\n    }\n\n    if (\n      prevState.scale &&\n      !prevState.isSlideMoving &&\n      !prevState.isTravellerMoving &&\n      !prevState.isTravellerFocused &&\n      !prevState.isTextActive\n    ) {\n      /*\n       * If the startIndex or endIndex are controlled from the outside,\n       * we need to keep the startX and end up to date.\n       * Also we do not want to do that while user is interacting in the brush,\n       * because this will trigger re-render and interrupt the drag&drop.\n       */\n      if (\n        startIndexControlledFromProps != null &&\n        prevState.prevStartIndexControlledFromProps !== startIndexControlledFromProps\n      ) {\n        return {\n          startX: prevState.scale(startIndexControlledFromProps),\n          prevStartIndexControlledFromProps: startIndexControlledFromProps,\n        };\n      }\n\n      if (\n        endIndexControlledFromProps != null &&\n        prevState.prevEndIndexControlledFromProps !== endIndexControlledFromProps\n      ) {\n        return {\n          endX: prevState.scale(endIndexControlledFromProps),\n          prevEndIndexControlledFromProps: endIndexControlledFromProps,\n        };\n      }\n    }\n\n    return null;\n  }\n\n  componentWillUnmount() {\n    if (this.leaveTimer) {\n      clearTimeout(this.leaveTimer);\n      this.leaveTimer = null;\n    }\n\n    this.detachDragEndListener();\n  }\n\n  handleDrag = (e: React.Touch | React.MouseEvent<SVGGElement> | MouseEvent) => {\n    if (this.leaveTimer) {\n      clearTimeout(this.leaveTimer);\n      this.leaveTimer = null;\n    }\n\n    if (this.state.isTravellerMoving) {\n      this.handleTravellerMove(e);\n    } else if (this.state.isSlideMoving) {\n      this.handleSlideDrag(e);\n    }\n  };\n\n  handleTouchMove = (e: TouchEvent<SVGGElement>) => {\n    const touch = e.changedTouches?.[0];\n    if (touch != null) {\n      this.handleDrag(touch);\n    }\n  };\n\n  attachDragEndListener() {\n    window.addEventListener('mouseup', this.handleDragEnd, true);\n    window.addEventListener('touchend', this.handleDragEnd, true);\n    window.addEventListener('mousemove', this.handleDrag, true);\n  }\n\n  detachDragEndListener() {\n    window.removeEventListener('mouseup', this.handleDragEnd, true);\n    window.removeEventListener('touchend', this.handleDragEnd, true);\n    window.removeEventListener('mousemove', this.handleDrag, true);\n  }\n\n  handleDragEnd = () => {\n    this.setState(\n      {\n        isTravellerMoving: false,\n        isSlideMoving: false,\n      },\n      () => {\n        const { endIndex, onDragEnd, startIndex } = this.props;\n        onDragEnd?.({\n          endIndex,\n          startIndex,\n        });\n      },\n    );\n    this.detachDragEndListener();\n  };\n\n  handleLeaveWrapper = () => {\n    if (this.state.isTravellerMoving || this.state.isSlideMoving) {\n      this.leaveTimer = window.setTimeout(this.handleDragEnd, this.props.leaveTimeOut);\n    }\n  };\n\n  handleEnterSlideOrTraveller = () => {\n    this.setState({\n      isTextActive: true,\n    });\n  };\n\n  handleLeaveSlideOrTraveller = () => {\n    this.setState({\n      isTextActive: false,\n    });\n  };\n\n  handleSlideDragStart = (e: MouseOrTouchEvent) => {\n    const event = isTouch(e) ? e.changedTouches[0] : e;\n    if (event == null) {\n      return;\n    }\n\n    this.setState({\n      isTravellerMoving: false,\n      isSlideMoving: true,\n      slideMoveStartX: event.pageX,\n    });\n\n    this.attachDragEndListener();\n  };\n\n  handleSlideDrag(e: React.Touch | React.MouseEvent<SVGGElement> | MouseEvent) {\n    const { slideMoveStartX, startX, endX, scaleValues } = this.state;\n    if (scaleValues == null) {\n      return;\n    }\n    const { x, width, travellerWidth, startIndex, endIndex, onChange, data, gap } = this.props;\n    let delta = e.pageX - slideMoveStartX;\n\n    if (delta > 0) {\n      delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n    } else if (delta < 0) {\n      delta = Math.max(delta, x - startX, x - endX);\n    }\n    const newIndex = getIndex({\n      startX: startX + delta,\n      endX: endX + delta,\n      data,\n      gap,\n      scaleValues,\n    });\n\n    if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n      onChange(newIndex);\n    }\n\n    this.setState({\n      startX: startX + delta,\n      endX: endX + delta,\n      slideMoveStartX: e.pageX,\n    });\n  }\n\n  handleTravellerDragStart(id: BrushTravellerId, e: MouseOrTouchEvent) {\n    const event = isTouch(e) ? e.changedTouches[0] : e;\n    if (event == null) {\n      return;\n    }\n\n    this.setState({\n      isSlideMoving: false,\n      isTravellerMoving: true,\n      movingTravellerId: id,\n      brushMoveStartX: event.pageX,\n    });\n\n    this.attachDragEndListener();\n  }\n\n  handleTravellerMove(e: React.Touch | React.MouseEvent<SVGGElement> | MouseEvent) {\n    const { brushMoveStartX, movingTravellerId, endX, startX, scaleValues } = this.state;\n    if (movingTravellerId == null || scaleValues == null) {\n      return;\n    }\n    const prevValue = this.state[movingTravellerId];\n\n    const { x, width, travellerWidth, onChange, gap, data } = this.props;\n    const params = { startX: this.state.startX, endX: this.state.endX, data, gap, scaleValues };\n\n    let delta = e.pageX - brushMoveStartX;\n    if (delta > 0) {\n      delta = Math.min(delta, x + width - travellerWidth - prevValue);\n    } else if (delta < 0) {\n      delta = Math.max(delta, x - prevValue);\n    }\n\n    params[movingTravellerId] = prevValue + delta;\n\n    const newIndex = getIndex(params);\n    const { startIndex, endIndex } = newIndex;\n    const isFullGap = () => {\n      const lastIndex = data.length - 1;\n      if (\n        (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0)) ||\n        (endX < startX && endIndex === lastIndex) ||\n        (movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0)) ||\n        (endX > startX && endIndex === lastIndex)\n      ) {\n        return true;\n      }\n      return false;\n    };\n\n    this.setState(\n      // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React\n      {\n        [movingTravellerId]: prevValue + delta,\n        brushMoveStartX: e.pageX,\n      },\n      () => {\n        if (onChange) {\n          if (isFullGap()) {\n            onChange(newIndex);\n          }\n        }\n      },\n    );\n  }\n\n  handleTravellerMoveKeyboard = (direction: 1 | -1, id: BrushTravellerId) => {\n    const { data, gap, startIndex, endIndex } = this.props;\n    // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n    const { scaleValues, startX, endX } = this.state;\n    if (scaleValues == null) {\n      return;\n    }\n\n    // unless we search for the closest scaleValue to the current coordinate\n    // we need to move travelers via index when using the keyboard\n    let currentIndex: number = -1;\n    if (id === 'startX') {\n      currentIndex = startIndex;\n    } else if (id === 'endX') {\n      currentIndex = endIndex;\n    }\n\n    if (currentIndex < 0 || currentIndex >= data.length) {\n      return;\n    }\n\n    const newIndex = currentIndex + direction;\n    if (newIndex === -1 || newIndex >= scaleValues.length) {\n      return;\n    }\n\n    const newScaleValue = scaleValues[newIndex];\n    if (newScaleValue == null) {\n      return;\n    }\n\n    // Prevent travellers from being on top of each other or overlapping\n    if ((id === 'startX' && newScaleValue >= endX) || (id === 'endX' && newScaleValue <= startX)) {\n      return;\n    }\n\n    this.setState(\n      // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React\n      {\n        [id]: newScaleValue,\n      },\n      () => {\n        this.props.onChange(\n          getIndex({\n            startX: this.state.startX,\n            endX: this.state.endX,\n            data,\n            gap,\n            scaleValues,\n          }),\n        );\n      },\n    );\n  };\n\n  render() {\n    const {\n      data,\n      className,\n      children,\n      x,\n      y,\n      dy,\n      width,\n      height,\n      alwaysShowText,\n      fill,\n      stroke,\n      startIndex,\n      endIndex,\n      travellerWidth,\n      tickFormatter,\n      dataKey,\n      padding,\n    } = this.props;\n    const { startX, endX, isTextActive, isSlideMoving, isTravellerMoving, isTravellerFocused } = this.state;\n\n    if (\n      !data ||\n      !data.length ||\n      !isNumber(x) ||\n      !isNumber(y) ||\n      !isNumber(width) ||\n      !isNumber(height) ||\n      width <= 0 ||\n      height <= 0\n    ) {\n      return null;\n    }\n\n    const layerClass = clsx('recharts-brush', className);\n    const style = generatePrefixStyle('userSelect', 'none');\n    const calculatedY = y + (dy ?? 0);\n\n    return (\n      <Layer\n        className={layerClass}\n        onMouseLeave={this.handleLeaveWrapper}\n        onTouchMove={this.handleTouchMove}\n        style={style}\n      >\n        <Background x={x} y={calculatedY} width={width} height={height} fill={fill} stroke={stroke} />\n        <PanoramaContextProvider>\n          <Panorama x={x} y={calculatedY} width={width} height={height} data={data} padding={padding}>\n            {children}\n          </Panorama>\n        </PanoramaContextProvider>\n        <Slide\n          y={calculatedY}\n          height={height}\n          stroke={stroke}\n          travellerWidth={travellerWidth}\n          startX={startX}\n          endX={endX}\n          onMouseEnter={this.handleEnterSlideOrTraveller}\n          onMouseLeave={this.handleLeaveSlideOrTraveller}\n          onMouseDown={this.handleSlideDragStart}\n          onTouchStart={this.handleSlideDragStart}\n        />\n        <TravellerLayer\n          travellerX={startX}\n          id=\"startX\"\n          otherProps={{ ...this.props, y: calculatedY }}\n          onMouseEnter={this.handleEnterSlideOrTraveller}\n          onMouseLeave={this.handleLeaveSlideOrTraveller}\n          onMouseDown={this.travellerDragStartHandlers.startX}\n          onTouchStart={this.travellerDragStartHandlers.startX}\n          onTravellerMoveKeyboard={this.handleTravellerMoveKeyboard}\n          onFocus={() => {\n            this.setState({ isTravellerFocused: true });\n          }}\n          onBlur={() => {\n            this.setState({ isTravellerFocused: false });\n          }}\n        />\n        <TravellerLayer\n          travellerX={endX}\n          id=\"endX\"\n          otherProps={{ ...this.props, y: calculatedY }}\n          onMouseEnter={this.handleEnterSlideOrTraveller}\n          onMouseLeave={this.handleLeaveSlideOrTraveller}\n          onMouseDown={this.travellerDragStartHandlers.endX}\n          onTouchStart={this.travellerDragStartHandlers.endX}\n          onTravellerMoveKeyboard={this.handleTravellerMoveKeyboard}\n          onFocus={() => {\n            this.setState({ isTravellerFocused: true });\n          }}\n          onBlur={() => {\n            this.setState({ isTravellerFocused: false });\n          }}\n        />\n        {(isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && (\n          <BrushText\n            startIndex={startIndex}\n            endIndex={endIndex}\n            y={calculatedY}\n            height={height}\n            travellerWidth={travellerWidth}\n            stroke={stroke}\n            tickFormatter={tickFormatter}\n            dataKey={dataKey}\n            data={data}\n            startX={startX}\n            endX={endX}\n          />\n        )}\n      </Layer>\n    );\n  }\n}\n\nfunction BrushInternal(props: InternalProps) {\n  const dispatch = useAppDispatch();\n  const chartData = useChartData();\n  const dataIndexes = useDataIndex();\n  const onChangeFromContext = useContext(BrushUpdateDispatchContext);\n  const onChangeFromProps = props.onChange;\n  const { startIndex: startIndexFromProps, endIndex: endIndexFromProps } = props;\n\n  useEffect(() => {\n    // start and end index can be controlled from props, and we need them to stay up-to-date in the Redux state too\n    dispatch(setDataStartEndIndexes({ startIndex: startIndexFromProps, endIndex: endIndexFromProps }));\n  }, [dispatch, endIndexFromProps, startIndexFromProps]);\n\n  useBrushChartSynchronisation();\n\n  const onChange = useCallback(\n    (nextState: BrushStartEndIndex) => {\n      if (dataIndexes == null) {\n        return;\n      }\n      const { startIndex, endIndex } = dataIndexes;\n      if (nextState.startIndex !== startIndex || nextState.endIndex !== endIndex) {\n        onChangeFromContext?.(nextState);\n        onChangeFromProps?.(nextState);\n        dispatch(setDataStartEndIndexes(nextState));\n      }\n    },\n    [onChangeFromProps, onChangeFromContext, dispatch, dataIndexes],\n  );\n\n  const brushDimensions = useAppSelector(selectBrushDimensions);\n  if (brushDimensions == null || dataIndexes == null || chartData == null || !chartData.length) {\n    return null;\n  }\n\n  const { startIndex, endIndex } = dataIndexes;\n  const { x, y, width } = brushDimensions;\n\n  const contextProperties: PropertiesFromContext = {\n    data: chartData,\n    x,\n    y,\n    width,\n    startIndex,\n    endIndex,\n    onChange,\n  };\n  return (\n    <BrushWithState\n      {...props}\n      {...contextProperties}\n      startIndexControlledFromProps={startIndexFromProps ?? undefined}\n      endIndexControlledFromProps={endIndexFromProps ?? undefined}\n    />\n  );\n}\n\nfunction BrushSettingsDispatcher(props: BrushSettings): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(setBrushSettings(props));\n    return () => {\n      dispatch(setBrushSettings(null));\n    };\n  }, [dispatch, props]);\n  return null;\n}\n\nexport const defaultBrushProps = {\n  height: 40,\n  travellerWidth: 5,\n  gap: 1,\n  fill: '#fff',\n  stroke: '#666',\n  padding: { top: 1, right: 1, bottom: 1, left: 1 },\n  leaveTimeOut: 1000,\n  alwaysShowText: false,\n} as const satisfies Partial<Props>;\n\n/**\n * Renders a scrollbar that allows the user to zoom and pan in the chart along its XAxis.\n * It also allows you to render a small overview of the chart inside the brush that is always visible\n * and shows the full data set so that the user can see where they are zoomed in.\n *\n * If a chart is synchronized with other charts using the `syncId` prop on the chart,\n * the brush will also synchronize the zooming and panning between all synchronized charts.\n *\n * @see {@link https://recharts.github.io/en-US/examples/BrushBarChart/ BarChart with Brush}\n * @see {@link https://recharts.github.io/en-US/examples/SynchronizedLineChart/ Synchronized Brush}\n *\n * @consumes CartesianChartContext\n */\nexport function Brush(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultBrushProps);\n  return (\n    <>\n      <BrushSettingsDispatcher\n        height={props.height}\n        x={props.x}\n        y={props.y}\n        width={props.width}\n        padding={props.padding}\n      />\n      <BrushInternal {...props} />\n    </>\n  );\n}\nBrush.displayName = 'Brush';\n","import { Coordinate, RectangleCoordinate, RectanglePosition, Size } from './types';\n\nexport const rectWithPoints = ({ x: x1, y: y1 }: Coordinate, { x: x2, y: y2 }: Coordinate): RectanglePosition => ({\n  x: Math.min(x1, x2),\n  y: Math.min(y1, y2),\n  width: Math.abs(x2 - x1),\n  height: Math.abs(y2 - y1),\n});\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param  {Object} coords     x1, x2, y1, and y2\n * @return {Object} object\n */\nexport const rectWithCoords = ({ x1, y1, x2, y2 }: RectangleCoordinate): RectanglePosition =>\n  rectWithPoints({ x: x1, y: y1 }, { x: x2, y: y2 });\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle: number) {\n  return ((angle % 180) + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport const getAngledRectangleWidth = ({ width, height }: Size, angle: number | undefined = 0) => {\n  // Ensure angle is >= 0 && < 180\n  const normalizedAngle = normalizeAngle(angle);\n  const angleRadians = (normalizedAngle * Math.PI) / 180;\n\n  /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n   * width. This threshold defines when each formula should kick in. */\n  const angleThreshold = Math.atan(height / width);\n\n  const angledWidth =\n    angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold\n      ? height / Math.sin(angleRadians)\n      : width / Math.cos(angleRadians);\n\n  return Math.abs(angledWidth);\n};\n","import { createSlice, current, PayloadAction } from '@reduxjs/toolkit';\nimport { castDraft, WritableDraft } from 'immer';\nimport { AxisId } from './cartesianAxisSlice';\nimport { IfOverflow } from '../util/IfOverflow';\nimport { ReferenceLineSegment } from '../cartesian/ReferenceLine';\n\nexport type ReferenceElementSettings = {\n  yAxisId: AxisId;\n  xAxisId: AxisId;\n  ifOverflow: IfOverflow;\n};\n\nexport type ReferenceDotSettings = ReferenceElementSettings & {\n  x: unknown;\n  y: unknown;\n  r: number;\n};\n\nexport type ReferenceAreaSettings = ReferenceElementSettings & {\n  x1: unknown;\n  x2: unknown;\n  y1: unknown;\n  y2: unknown;\n};\n\nexport type ReferenceLineSettings = ReferenceElementSettings & {\n  x: unknown;\n  y: unknown;\n  segment: ReferenceLineSegment | undefined;\n};\n\ntype ReferenceElementState = {\n  dots: ReadonlyArray<ReferenceDotSettings>;\n  areas: ReadonlyArray<ReferenceAreaSettings>;\n  lines: ReadonlyArray<ReferenceLineSettings>;\n};\n\nconst initialState: ReferenceElementState = {\n  dots: [],\n  areas: [],\n  lines: [],\n};\n\nexport const referenceElementsSlice = createSlice({\n  name: 'referenceElements',\n  initialState,\n  reducers: {\n    addDot: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceDotSettings>) => {\n      state.dots.push(action.payload);\n    },\n    removeDot: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceDotSettings>) => {\n      const index = current(state).dots.findIndex(dot => dot === action.payload);\n      if (index !== -1) {\n        state.dots.splice(index, 1);\n      }\n    },\n    addArea: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceAreaSettings>) => {\n      state.areas.push(action.payload);\n    },\n    removeArea: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceAreaSettings>) => {\n      const index = current(state).areas.findIndex(area => area === action.payload);\n      if (index !== -1) {\n        state.areas.splice(index, 1);\n      }\n    },\n    addLine: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceLineSettings>) => {\n      state.lines.push(castDraft(action.payload));\n    },\n    removeLine: (state: WritableDraft<ReferenceElementState>, action: PayloadAction<ReferenceLineSettings>) => {\n      const index = current(state).lines.findIndex(line => line === action.payload);\n      if (index !== -1) {\n        state.lines.splice(index, 1);\n      }\n    },\n  },\n});\n\nexport const { addDot, removeDot, addArea, removeArea, addLine, removeLine } = referenceElementsSlice.actions;\n\nexport const referenceElementsReducer = referenceElementsSlice.reducer;\n","import * as React from 'react';\nimport { createContext, ReactNode, useContext, useState } from 'react';\nimport { uniqueId } from '../util/DataUtils';\nimport { usePlotArea } from '../hooks';\n\nconst ClipPathIdContext = createContext<string | undefined>(undefined);\n\n/**\n * Generates a unique clip path ID for use in SVG elements,\n * and puts it in a context provider.\n *\n * To read the clip path ID, use the `useClipPathId` hook,\n * or render `<ClipPath>` component which will automatically use the ID from this context.\n *\n * @param props children - React children to be wrapped by the provider\n * @returns React Context Provider\n */\nexport const ClipPathProvider = ({ children }: { children: ReactNode }) => {\n  const [clipPathId] = useState<string>(`${uniqueId('recharts')}-clip`);\n\n  const plotArea = usePlotArea();\n\n  if (plotArea == null) {\n    return null;\n  }\n  const { x, y, width, height } = plotArea;\n\n  return (\n    <ClipPathIdContext.Provider value={clipPathId}>\n      <defs>\n        <clipPath id={clipPathId}>\n          <rect x={x} y={y} height={height} width={width} />\n        </clipPath>\n      </defs>\n      {children}\n    </ClipPathIdContext.Provider>\n  );\n};\n\nexport const useClipPathId = (): string | undefined => {\n  return useContext(ClipPathIdContext);\n};\n","import { BandPosition, RechartsScale } from './RechartsScale';\nimport { CategoricalDomainItem, Coordinate, NullableCoordinate } from '../types';\n\nexport interface CartesianScaleHelper<\n  XDomain extends CategoricalDomainItem = CategoricalDomainItem,\n  YDomain extends CategoricalDomainItem = CategoricalDomainItem,\n> {\n  map(value: { x: XDomain; y: YDomain }, { position }: { position: BandPosition }): Coordinate;\n\n  mapWithFallback(\n    value: { x?: XDomain | null | undefined; y?: YDomain | null | undefined },\n    { position, fallback }: { position?: BandPosition; fallback: 'rangeMin' | 'rangeMax' },\n  ): Coordinate;\n\n  isInRange({ x, y }: Partial<NullableCoordinate>): boolean;\n}\n\n/**\n * Groups X and Y scale functions together and provides helper methods.\n */\nexport class CartesianScaleHelperImpl<\n  XDomain extends CategoricalDomainItem = CategoricalDomainItem,\n  YDomain extends CategoricalDomainItem = CategoricalDomainItem,\n> implements CartesianScaleHelper<XDomain, YDomain> {\n  private xAxisScale: RechartsScale<XDomain>;\n\n  private yAxisScale: RechartsScale<YDomain>;\n\n  constructor({ x, y }: { x: RechartsScale<XDomain>; y: RechartsScale<YDomain> }) {\n    this.xAxisScale = x;\n    this.yAxisScale = y;\n  }\n\n  map(value: { x: XDomain; y: YDomain }, { position }: { position: BandPosition }): Coordinate {\n    return {\n      x: this.xAxisScale.map(value.x, { position }) ?? 0,\n      y: this.yAxisScale.map(value.y, { position }) ?? 0,\n    };\n  }\n\n  mapWithFallback(\n    value: { x?: XDomain | null | undefined; y?: YDomain | null | undefined },\n    { position, fallback }: { position?: BandPosition; fallback: 'rangeMin' | 'rangeMax' },\n  ): Coordinate {\n    let fallbackY: number, fallbackX: number;\n    if (fallback === 'rangeMin') {\n      fallbackY = this.yAxisScale.rangeMin();\n    } else if (fallback === 'rangeMax') {\n      fallbackY = this.yAxisScale.rangeMax();\n    } else {\n      fallbackY = 0;\n    }\n    if (fallback === 'rangeMin') {\n      fallbackX = this.xAxisScale.rangeMin();\n    } else if (fallback === 'rangeMax') {\n      fallbackX = this.xAxisScale.rangeMax();\n    } else {\n      fallbackX = 0;\n    }\n    return {\n      x: this.xAxisScale.map(value.x, { position }) ?? fallbackX,\n      y: this.yAxisScale.map(value.y, { position }) ?? fallbackY,\n    };\n  }\n\n  isInRange({ x, y }: Partial<NullableCoordinate>): boolean {\n    const xInRange = x == null || this.xAxisScale.isInRange(x);\n    const yInRange = y == null || this.yAxisScale.isInRange(y);\n    return xInRange && yInRange;\n  }\n}\n","/**\n * @fileOverview Reference Line\n */\nimport * as React from 'react';\nimport { ReactElement, SVGProps, useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp, ImplicitLabelType } from '../component/Label';\nimport { IfOverflow, Overflowable } from '../util/IfOverflow';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { rectWithCoords } from '../util/CartesianUtils';\nimport { CartesianViewBoxRequired, Coordinate } from '../util/types';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { addLine, ReferenceLineSettings, removeLine } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { BandPosition, RechartsScale } from '../util/scale/RechartsScale';\nimport { CartesianScaleHelper, CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\n\n/**\n * Single point that defines one end of a segment.\n * These coordinates are in data space, meaning that you should provide\n * values that correspond to the data domain of the axes.\n * So you would provide a value of `Page A` to indicate the data value `Page A`\n * and then recharts will convert that to pixels.\n *\n * Likewise for numbers. If your x-axis goes from 0 to 100,\n * and you want the line to end at 50, you would provide `50` here.\n *\n * @inline\n */\nexport type ReferenceLineSegment = readonly [\n  {\n    x?: number | string;\n    y?: number | string;\n  },\n  {\n    x?: number | string;\n    y?: number | string;\n  },\n];\n\ninterface ReferenceLineProps extends Overflowable, ZIndexable {\n  /**\n   * If defined, renders a horizontal line on this position.\n   *\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceLine will internally calculate the correct pixel position.\n   *\n   * @example <ReferenceLine y=\"Page D\" />\n   */\n  y?: number | string;\n\n  /**\n   * If defined, renders a vertical line on this position.\n   *\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceLine will internally calculate the correct pixel position.\n   *\n   * @example <ReferenceLine x=\"Monday\" />\n   */\n  x?: number | string;\n\n  /**\n   * Tuple of coordinates. If defined, renders a diagonal line segment.\n   */\n  segment?: ReferenceLineSegment;\n\n  /**\n   * The position of the reference line when the axis has bandwidth\n   * (e.g., a band scale). This determines where within the band\n   * the line is drawn.\n   * @defaultValue 'middle'\n   */\n  position?: BandPosition;\n\n  className?: number | string;\n  /**\n   * The id of y-axis which is corresponding to the data.\n   * Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: number | string;\n  /**\n   * The id of x-axis which is corresponding to the data.\n   * Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: number | string;\n  shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);\n  /**\n   * Renders a single label.\n   *\n   * - `false`: no labels are rendered\n   * - `string` | `number`: the content of the label\n   * - `object`: the props of LabelList component\n   * - `ReactElement`: a custom label element\n   * - `function`: a render function of custom label\n   *\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/LineChartWithReferenceLines/ Reference elements with a label}\n   */\n  label?: ImplicitLabelType;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 400\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  /**\n   * The width of the stroke\n   * @defaultValue 1\n   */\n  strokeWidth?: number | string;\n}\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n *    - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `svgPropertiesNoEvents` which filters the viewBox away anyway\n */\nexport type Props = Omit<SVGProps<SVGLineElement>, 'viewBox'> & ReferenceLineProps;\n\nconst renderLine = (option: ReferenceLineProps['shape'], props: SVGProps<SVGLineElement>) => {\n  let line;\n\n  if (React.isValidElement(option)) {\n    // @ts-expect-error element cloning is not typed\n    line = React.cloneElement(option, props);\n  } else if (typeof option === 'function') {\n    line = option(props);\n  } else {\n    if (\n      !isWellBehavedNumber(props.x1) ||\n      !isWellBehavedNumber(props.y1) ||\n      !isWellBehavedNumber(props.x2) ||\n      !isWellBehavedNumber(props.y2)\n    ) {\n      return null;\n    }\n    line = <line {...props} className=\"recharts-reference-line-line\" />;\n  }\n\n  return line;\n};\n\ntype EndPointsPropsSubset = Pick<PropsWithDefaults, 'y' | 'x' | 'segment' | 'ifOverflow'>;\n\nconst getHorizontalLineEndPoints = (\n  yCoord: number | string,\n  ifOverflow: IfOverflow,\n  position: Props['position'],\n  yAxisOrientation: Props['orientation'],\n  yAxisScale: RechartsScale,\n  viewBox: CartesianViewBoxRequired,\n): ReadonlyArray<Coordinate> | null => {\n  const { x, width } = viewBox;\n  const coord = yAxisScale.map(yCoord, { position });\n  // don't render the line if the scale can't compute a result that makes sense\n  if (!isWellBehavedNumber(coord)) {\n    return null;\n  }\n\n  if (ifOverflow === 'discard' && !yAxisScale.isInRange(coord)) {\n    return null;\n  }\n\n  const points = [\n    { x: x + width, y: coord },\n    { x, y: coord },\n  ];\n  return yAxisOrientation === 'left' ? points.reverse() : points;\n};\n\nconst getVerticalLineEndPoints = (\n  xCoord: number | string,\n  ifOverflow: IfOverflow,\n  position: Props['position'],\n  xAxisOrientation: Props['orientation'],\n  xAxisScale: RechartsScale,\n  viewBox: CartesianViewBoxRequired,\n): ReadonlyArray<Coordinate> | null => {\n  const { y, height } = viewBox;\n  const coord = xAxisScale.map(xCoord, { position });\n  // don't render the line if the scale can't compute a result that makes sense\n  if (!isWellBehavedNumber(coord)) {\n    return null;\n  }\n\n  if (ifOverflow === 'discard' && !xAxisScale.isInRange(coord)) {\n    return null;\n  }\n\n  const points = [\n    { x: coord, y: y + height },\n    { x: coord, y },\n  ];\n  return xAxisOrientation === 'top' ? points.reverse() : points;\n};\n\nconst getSegmentLineEndPoints = (\n  segment: ReferenceLineSegment,\n  ifOverflow: IfOverflow,\n  position: Props['position'],\n  scales: CartesianScaleHelper,\n): ReadonlyArray<Coordinate> | null => {\n  const points: [Coordinate, Coordinate] = [\n    scales.mapWithFallback(segment[0], { position, fallback: 'rangeMin' }),\n    scales.mapWithFallback(segment[1], { position, fallback: 'rangeMax' }),\n  ];\n\n  if (ifOverflow === 'discard' && points.some(p => !scales.isInRange(p))) {\n    return null;\n  }\n\n  return points;\n};\n\nexport const getEndPoints = (\n  xAxisScale: RechartsScale,\n  yAxisScale: RechartsScale,\n  viewBox: CartesianViewBoxRequired,\n  position: Props['position'],\n  xAxisOrientation: Props['orientation'],\n  yAxisOrientation: Props['orientation'],\n  props: EndPointsPropsSubset,\n): ReadonlyArray<Coordinate> | null => {\n  const { x: xCoord, y: yCoord, segment, ifOverflow } = props;\n  const isFixedX = isNumOrStr(xCoord);\n  const isFixedY = isNumOrStr(yCoord);\n\n  if (isFixedY) {\n    return getHorizontalLineEndPoints(yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox);\n  }\n  if (isFixedX) {\n    return getVerticalLineEndPoints(xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox);\n  }\n  if (segment != null && segment.length === 2) {\n    return getSegmentLineEndPoints(\n      segment,\n      ifOverflow,\n      position,\n      new CartesianScaleHelperImpl({ x: xAxisScale, y: yAxisScale }),\n    );\n  }\n\n  return null;\n};\n\nfunction ReportReferenceLine(props: ReferenceLineSettings): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(addLine(props));\n    return () => {\n      dispatch(removeLine(props));\n    };\n  });\n  return null;\n}\n\nfunction ReferenceLineImpl(props: PropsWithDefaults) {\n  const { xAxisId, yAxisId, shape, className, ifOverflow } = props;\n\n  const isPanorama = useIsPanorama();\n  const clipPathId = useClipPathId();\n  const xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n  const yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n  const xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n  const yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n\n  const viewBox = useViewBox();\n\n  if (!clipPathId || !viewBox || xAxis == null || yAxis == null || xAxisScale == null || yAxisScale == null) {\n    return null;\n  }\n\n  const endPoints: ReadonlyArray<Coordinate> | null = getEndPoints(\n    xAxisScale,\n    yAxisScale,\n    viewBox,\n    props.position,\n    xAxis.orientation,\n    yAxis.orientation,\n    props,\n  );\n  if (!endPoints) {\n    return null;\n  }\n\n  const point1 = endPoints[0];\n  const point2 = endPoints[1];\n  if (point1 == null || point2 == null) {\n    return null;\n  }\n  const { x: x1, y: y1 } = point1;\n  const { x: x2, y: y2 } = point2;\n\n  const clipPath = ifOverflow === 'hidden' ? `url(#${clipPathId})` : undefined;\n\n  const lineProps: SVGProps<SVGLineElement> = {\n    clipPath,\n    ...svgPropertiesAndEvents(props),\n    x1,\n    y1,\n    x2,\n    y2,\n  };\n\n  const rect = rectWithCoords({ x1, y1, x2, y2 });\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-reference-line', className)}>\n        {renderLine(shape, lineProps)}\n        <CartesianLabelContextProvider {...rect} lowerWidth={rect.width} upperWidth={rect.width}>\n          <CartesianLabelFromLabelProp label={props.label} />\n          {props.children}\n        </CartesianLabelContextProvider>\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\nexport const referenceLineDefaultProps = {\n  ifOverflow: 'discard',\n  xAxisId: 0,\n  yAxisId: 0,\n  fill: 'none',\n  label: false,\n  stroke: '#ccc',\n  fillOpacity: 1,\n  strokeWidth: 1,\n  position: 'middle',\n  zIndex: DefaultZIndexes.line,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof referenceLineDefaultProps>;\n\n/**\n * Draws a line on the chart connecting two points.\n *\n * This component, unlike {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line}, is aware of the cartesian coordinate system,\n * so you specify the dimensions by using data coordinates instead of pixels.\n *\n * ReferenceLine will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render using pixels rather than data coordinates,\n * consider using the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line SVG element} instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceLine(outsideProps: Props) {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, referenceLineDefaultProps);\n  return (\n    <>\n      <ReportReferenceLine\n        yAxisId={props.yAxisId}\n        xAxisId={props.xAxisId}\n        ifOverflow={props.ifOverflow}\n        x={props.x}\n        y={props.y}\n        segment={props.segment}\n      />\n      <ReferenceLineImpl {...props} />\n    </>\n  );\n}\n\nReferenceLine.displayName = 'ReferenceLine';\n","import * as React from 'react';\nimport { ReactElement, useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot, Props as DotProps } from '../shape/Dot';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp, ImplicitLabelType } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { IfOverflow, Overflowable } from '../util/IfOverflow';\nimport { addDot, ReferenceDotSettings, removeDot } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { Coordinate } from '../util/types';\nimport { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\n\ninterface ReferenceDotProps extends Overflowable, ZIndexable {\n  /**\n   * The radius of the dot in pixels.\n   *\n   * @defaultValue 10\n   */\n  r?: number;\n  /**\n   * The x-coordinate of the center of the dot.\n   *\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceDot will internally calculate the correct pixel position.\n   *\n   * @example <ReferenceDot x=\"January\" y=\"2026\" />\n   */\n  x?: number | string;\n  /**\n   * The y-coordinate of the center of the dot.\n   *\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceDot will internally calculate the correct pixel position.\n   *\n   * @example <ReferenceDot x=\"January\" y=\"2026\" />\n   */\n  y?: number | string;\n\n  className?: number | string;\n  /**\n   * The id of y-axis which is corresponding to the data.\n   * Required when there are multiple YAxes.\n   *\n   * @defaultValue 0\n   */\n  yAxisId?: number | string;\n  /**\n   * The id of x-axis which is corresponding to the data.\n   * Required when there are multiple XAxes.\n   *\n   * @defaultValue 0\n   */\n  xAxisId?: number | string;\n  /**\n   * If set a ReactElement, the shape of dot can be customized.\n   * If set a function, the function will be called to render customized shape.\n   */\n  shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);\n  /**\n   * Renders a single label.\n   *\n   * - `false`: no labels are rendered\n   * - `string` | `number`: the content of the label\n   * - `object`: the props of LabelList component\n   * - `ReactElement`: a custom label element\n   * - `function`: a render function of custom label\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelType;\n\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 600\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n\n  /**\n   * The customized event handler of click in this chart.\n   */\n  onClick?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mousedown in this chart.\n   */\n  onMouseDown?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mouseup in this chart.\n   */\n  onMouseUp?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mouseover in this chart.\n   */\n  onMouseOver?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mouseout in this chart.\n   */\n  onMouseOut?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mouseenter in this chart.\n   */\n  onMouseEnter?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mousemove in this chart.\n   */\n  onMouseMove?: (e: React.MouseEvent<SVGElement>) => void;\n  /**\n   * The customized event handler of mouseleave in this chart.\n   */\n  onMouseLeave?: (e: React.MouseEvent<SVGElement>) => void;\n}\n\nexport type Props = Omit<DotProps, 'cx' | 'cy' | 'clipDot' | 'dangerouslySetInnerHTML'> & ReferenceDotProps;\n\nconst useCoordinate = (\n  x: number | string | undefined,\n  y: number | string | undefined,\n  xAxisId: AxisId,\n  yAxisId: AxisId,\n  ifOverflow: IfOverflow,\n): Coordinate | null => {\n  const isX = isNumOrStr(x);\n  const isY = isNumOrStr(y);\n  const isPanorama = useIsPanorama();\n  const xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n  const yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n\n  if (!isX || !isY || xAxisScale == null || yAxisScale == null) {\n    return null;\n  }\n\n  const scales = new CartesianScaleHelperImpl({ x: xAxisScale, y: yAxisScale });\n\n  const result = scales.map({ x, y }, { position: 'middle' });\n\n  if (ifOverflow === 'discard' && !scales.isInRange(result)) {\n    return null;\n  }\n\n  return result;\n};\n\nfunction ReportReferenceDot(props: ReferenceDotSettings): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(addDot(props));\n    return () => {\n      dispatch(removeDot(props));\n    };\n  });\n  return null;\n}\n\nconst renderDot = (option: Props['shape'], props: DotProps) => {\n  let dot;\n\n  if (React.isValidElement(option)) {\n    // @ts-expect-error element cloning is not typed\n    dot = React.cloneElement(option, props);\n  } else if (typeof option === 'function') {\n    dot = option(props);\n  } else {\n    dot = <Dot {...props} cx={props.cx} cy={props.cy} className=\"recharts-reference-dot-dot\" />;\n  }\n\n  return dot;\n};\n\nfunction ReferenceDotImpl(props: PropsWithDefaults) {\n  const { x, y, r } = props;\n  const clipPathId = useClipPathId();\n\n  const coordinate = useCoordinate(x, y, props.xAxisId, props.yAxisId, props.ifOverflow);\n\n  if (!coordinate) {\n    return null;\n  }\n\n  const { x: cx, y: cy } = coordinate;\n\n  const { shape, className, ifOverflow } = props;\n\n  const clipPath = ifOverflow === 'hidden' ? `url(#${clipPathId})` : undefined;\n\n  const dotProps: DotProps = {\n    clipPath,\n    ...svgPropertiesAndEvents(props),\n    cx: cx ?? undefined,\n    cy: cy ?? undefined,\n  };\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-reference-dot', className)}>\n        {renderDot(shape, dotProps)}\n        <CartesianLabelContextProvider\n          x={cx - r}\n          y={cy - r}\n          width={2 * r}\n          height={2 * r}\n          upperWidth={2 * r}\n          lowerWidth={2 * r}\n        >\n          <CartesianLabelFromLabelProp label={props.label} />\n          {props.children}\n        </CartesianLabelContextProvider>\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\nexport const referenceDotDefaultProps = {\n  ifOverflow: 'discard',\n  xAxisId: 0,\n  yAxisId: 0,\n  r: 10,\n  label: false,\n  fill: '#fff',\n  stroke: '#ccc',\n  fillOpacity: 1,\n  strokeWidth: 1,\n  zIndex: DefaultZIndexes.scatter,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof referenceDotDefaultProps>;\n\n/**\n * Draws a circle on the chart to highlight a specific point.\n *\n * This component, unlike {@link Dot} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle circle}, is aware of the cartesian coordinate system,\n * so you specify its center by using data coordinates instead of pixels.\n *\n * ReferenceDot will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render dots using pixels rather than data coordinates,\n * consider using the {@link Dot} component instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceDot(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, referenceDotDefaultProps);\n  const { x, y, r, ifOverflow, yAxisId, xAxisId } = props;\n  return (\n    <>\n      <ReportReferenceDot y={y} x={x} r={r} yAxisId={yAxisId} xAxisId={xAxisId} ifOverflow={ifOverflow} />\n      <ReferenceDotImpl {...props} />\n    </>\n  );\n}\n\nReferenceDot.displayName = 'ReferenceDot';\n","import * as React from 'react';\nimport { ReactElement, useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp, ImplicitLabelType } from '../component/Label';\nimport { rectWithPoints } from '../util/CartesianUtils';\nimport { Overflowable } from '../util/IfOverflow';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { Props as RectangleProps, Rectangle } from '../shape/Rectangle';\n\nimport { addArea, ReferenceAreaSettings, removeArea } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { NullableCoordinate, RectanglePosition } from '../util/types';\nimport { svgPropertiesAndEvents, SVGPropsAndEvents } from '../util/svgPropertiesAndEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { RechartsScale } from '../util/scale/RechartsScale';\nimport { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\n\ninterface ReferenceAreaProps extends Overflowable, ZIndexable {\n  /**\n   * Starting X-coordinate of the area.\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceArea will internally calculate the correct pixel position.\n   *\n   * If undefined then the area will extend to the left edge of the chart plot area.\n   *\n   * @example <ReferenceArea x1=\"Monday\" x2=\"Friday\" />\n   * @example <ReferenceArea x1={10} x2={50} />\n   * @example <ReferenceArea x1=\"Page C\" />\n   */\n  x1?: number | string;\n  /**\n   * Ending X-coordinate of the area.\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceArea will internally calculate the correct pixel position.\n   *\n   * If undefined then the area will extend to the right edge of the chart plot area.\n   *\n   * @example <ReferenceArea x1=\"Monday\" x2=\"Friday\" />\n   * @example <ReferenceArea x1={10} x2={50} />\n   * @example <ReferenceArea x2=\"Page C\" />\n   */\n  x2?: number | string;\n  /**\n   * Starting Y-coordinate of the area.\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceArea will internally calculate the correct pixel position.\n   *\n   * If undefined then the area will extend to the top edge of the chart plot area.\n   *\n   * @example <ReferenceArea y1={100} y2={500} />\n   * @example <ReferenceArea y1=\"low\" y2=\"high\" />\n   * @example <ReferenceArea y1={200} />\n   */\n  y1?: number | string;\n  /**\n   * Ending Y-coordinate of the area.\n   * This value is using your chart's domain, so you will provide a data value instead of a pixel value.\n   * ReferenceArea will internally calculate the correct pixel position.\n   *\n   * If undefined then the area will extend to the bottom edge of the chart plot area.\n   *\n   * @example <ReferenceArea y1={100} y2={500} />\n   * @example <ReferenceArea y1=\"low\" y2=\"high\" />\n   * @example <ReferenceArea y2={400} />\n   */\n  y2?: number | string;\n\n  className?: number | string;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: number | string;\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: number | string;\n  /**\n   * If set a ReactElement, the shape of the reference area can be customized.\n   * If set a function, the function will be called to render customized shape.\n   */\n  shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);\n  /**\n   * Renders a single label.\n   *\n   * - `false`: no labels are rendered\n   * - `string` | `number`: the content of the label\n   * - `object`: the props of LabelList component\n   * - `ReactElement`: a custom label element\n   * - `function`: a render function of custom label\n   *\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/LineChartWithReferenceLines/ Reference elements with a label}\n   */\n  label?: ImplicitLabelType;\n\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 100\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  children?: React.ReactNode;\n}\n\n/*\n * Omit width, height, x, y from SVGPropsAndEvents because ReferenceArea receives x1, x2, y1, y2 instead.\n * The position is calculated internally instead.\n */\nexport type Props = Omit<SVGPropsAndEvents<RectangleProps>, 'width' | 'height' | 'x' | 'y'> & ReferenceAreaProps;\n\nconst getRect = (\n  hasX1: boolean,\n  hasX2: boolean,\n  hasY1: boolean,\n  hasY2: boolean,\n  xAxisScale: RechartsScale | undefined,\n  yAxisScale: RechartsScale | undefined,\n  props: Props,\n): RectanglePosition | null => {\n  const { x1: xValue1, x2: xValue2, y1: yValue1, y2: yValue2 } = props;\n\n  if (xAxisScale == null || yAxisScale == null) {\n    return null;\n  }\n\n  const scales = new CartesianScaleHelperImpl({ x: xAxisScale, y: yAxisScale });\n\n  const p1: NullableCoordinate = {\n    x: hasX1 ? (xAxisScale.map(xValue1, { position: 'start' }) ?? null) : xAxisScale.rangeMin(),\n    y: hasY1 ? (yAxisScale.map(yValue1, { position: 'start' }) ?? null) : yAxisScale.rangeMin(),\n  };\n\n  const p2: NullableCoordinate = {\n    x: hasX2 ? (xAxisScale.map(xValue2, { position: 'end' }) ?? null) : xAxisScale.rangeMax(),\n    y: hasY2 ? (yAxisScale.map(yValue2, { position: 'end' }) ?? null) : yAxisScale.rangeMax(),\n  };\n\n  if (props.ifOverflow === 'discard' && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n    return null;\n  }\n\n  // @ts-expect-error we're sending nullable coordinates but rectWithPoints expects non-nullable Coordinate\n  return rectWithPoints(p1, p2);\n};\n\nconst renderRect = (option: ReferenceAreaProps['shape'], props: SVGPropsAndEvents<RectangleProps>) => {\n  let rect;\n\n  if (React.isValidElement(option)) {\n    // @ts-expect-error element cloning is not typed\n    rect = React.cloneElement(option, props);\n  } else if (typeof option === 'function') {\n    rect = option(props);\n  } else {\n    rect = <Rectangle {...props} className=\"recharts-reference-area-rect\" />;\n  }\n\n  return rect;\n};\n\nfunction ReportReferenceArea(props: ReferenceAreaSettings): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(addArea(props));\n    return () => {\n      dispatch(removeArea(props));\n    };\n  });\n  return null;\n}\n\nfunction ReferenceAreaImpl(props: PropsWithDefaults) {\n  const { x1, x2, y1, y2, className, shape, xAxisId, yAxisId } = props;\n  const clipPathId = useClipPathId();\n  const isPanorama = useIsPanorama();\n  const xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n  const yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n\n  if (xAxisScale == null || yAxisScale == null) {\n    return null;\n  }\n\n  const hasX1 = isNumOrStr(x1);\n  const hasX2 = isNumOrStr(x2);\n  const hasY1 = isNumOrStr(y1);\n  const hasY2 = isNumOrStr(y2);\n\n  if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n    return null;\n  }\n\n  const rect = getRect(hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props);\n\n  if (!rect && !shape) {\n    return null;\n  }\n\n  const isOverflowHidden = props.ifOverflow === 'hidden';\n  const clipPath = isOverflowHidden ? `url(#${clipPathId})` : undefined;\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-reference-area', className)}>\n        {renderRect(shape, { clipPath, ...svgPropertiesAndEvents(props), ...rect })}\n        {rect != null && (\n          <CartesianLabelContextProvider {...rect} lowerWidth={rect.width} upperWidth={rect.width}>\n            <CartesianLabelFromLabelProp label={props.label} />\n            {props.children}\n          </CartesianLabelContextProvider>\n        )}\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\nexport const referenceAreaDefaultProps = {\n  ifOverflow: 'discard',\n  xAxisId: 0,\n  yAxisId: 0,\n  radius: 0,\n  fill: '#ccc',\n  label: false,\n  fillOpacity: 0.5,\n  stroke: 'none',\n  strokeWidth: 1,\n  zIndex: DefaultZIndexes.area,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof referenceAreaDefaultProps>;\n\n/**\n * Draws a rectangular area on the chart to highlight a specific range.\n *\n * This component, unlike {@link Rectangle} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect}, is aware of the cartesian coordinate system,\n * so you specify the area by using data coordinates instead of pixels.\n *\n * ReferenceArea will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render rectangles using pixels rather than data coordinates,\n * consider using the {@link Rectangle} component instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceArea(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, referenceAreaDefaultProps);\n  return (\n    <>\n      <ReportReferenceArea\n        yAxisId={props.yAxisId}\n        xAxisId={props.xAxisId}\n        ifOverflow={props.ifOverflow}\n        x1={props.x1}\n        x2={props.x2}\n        y1={props.y1}\n        y2={props.y2}\n      />\n      <ReferenceAreaImpl {...props} />\n    </>\n  );\n}\n\nReferenceArea.displayName = 'ReferenceArea';\n","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * For n equal to 1, the input array is returned as is.\n * For n greater than the length of the array, an array containing the first element\n * and every nTh element after that (if any) is returned.\n *\n * @param array An input array.\n * @param n A number specifying which elements to take.\n * @returns The result array of the same type as the input array.\n */\nexport function getEveryNth<Type>(array: ReadonlyArray<Type>, n: number): ReadonlyArray<Type> {\n  if (n < 1) {\n    return [];\n  }\n  if (n === 1) {\n    return array;\n  }\n  const result: Type[] = [];\n  for (let i = 0; i < array.length; i += n) {\n    const item = array[i];\n    if (item !== undefined) {\n      result.push(item);\n    }\n  }\n  return result;\n}\n","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNth } from './getEveryNth';\nimport { Size, CartesianTickItem, CartesianViewBoxRequired } from './types';\n\nexport function getAngledTickWidth(contentSize: Size, unitSize: Size, angle: number | undefined) {\n  const size = { width: contentSize.width + unitSize.width, height: contentSize.height + unitSize.height };\n\n  return getAngledRectangleWidth(size, angle);\n}\n\nexport function getTickBoundaries(viewBox: CartesianViewBoxRequired, sign: number, sizeKey: string) {\n  const isWidth = sizeKey === 'width';\n  const { x, y, width, height } = viewBox;\n  if (sign === 1) {\n    return {\n      start: isWidth ? x : y,\n      end: isWidth ? x + width : y + height,\n    };\n  }\n  return {\n    start: isWidth ? x + width : y + height,\n    end: isWidth ? x : y,\n  };\n}\n\nexport function isVisible(\n  sign: number,\n  tickPosition: number,\n  getSize: () => number,\n  start: number,\n  end: number,\n): boolean {\n  /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n   * the tick's size. */\n  if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n    return false;\n  }\n\n  const size = getSize();\n\n  return sign * (tickPosition - (sign * size) / 2 - start) >= 0 && sign * (tickPosition + (sign * size) / 2 - end) <= 0;\n}\n\nexport function getNumberIntervalTicks(\n  ticks: ReadonlyArray<CartesianTickItem>,\n  interval: number,\n): ReadonlyArray<CartesianTickItem> | undefined {\n  return getEveryNth(ticks, interval + 1);\n}\n","import { CartesianTickItem, CartesianViewBoxRequired, Size } from '../util/types';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';\nimport { CartesianAxisSettings, XAxisOrientation, YAxisOrientation } from '../state/cartesianAxisSlice';\n\nexport type Sign = 0 | 1 | -1;\n\nfunction getTicksEnd(\n  sign: Sign,\n  boundaries: { start: number; end: number },\n  getTickSize: (tick: CartesianTickItem, index: number) => number,\n  ticks: ReadonlyArray<CartesianTickItem>,\n  minTickGap: number,\n): ReadonlyArray<CartesianTickItem> {\n  const result = (ticks || []).slice();\n  const len = result.length;\n\n  const { start } = boundaries;\n  let { end } = boundaries;\n\n  for (let i = len - 1; i >= 0; i--) {\n    const initialEntry = result[i];\n    if (initialEntry == null) {\n      continue;\n    }\n    let entry = initialEntry;\n    let size: number | undefined;\n    const getSize = () => {\n      if (size === undefined) {\n        size = getTickSize(initialEntry, i);\n      }\n\n      return size;\n    };\n\n    if (i === len - 1) {\n      const gap = sign * (entry.coordinate + (sign * getSize()) / 2 - end);\n      result[i] = entry = {\n        ...entry,\n        tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate,\n      };\n    } else {\n      result[i] = entry = { ...entry, tickCoord: entry.coordinate };\n    }\n\n    if (entry.tickCoord != null) {\n      const isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n\n      if (isShow) {\n        end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n        result[i] = { ...entry, isShow: true };\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction getTicksStart(\n  sign: Sign,\n  boundaries: { start: number; end: number },\n  getTickSize: (tick: CartesianTickItem, index: number) => number,\n  ticks: ReadonlyArray<CartesianTickItem>,\n  minTickGap: number,\n  preserveEnd?: boolean,\n): ReadonlyArray<CartesianTickItem> {\n  // This method is mutating the array so clone is indeed necessary here\n  const result: Array<CartesianTickItem> = (ticks || []).slice();\n  const len = result.length;\n\n  let { start, end } = boundaries;\n\n  if (preserveEnd) {\n    // Try to guarantee the tail to be displayed\n    let tail = ticks[len - 1];\n    if (tail != null) {\n      const tailSize = getTickSize(tail, len - 1);\n      const tailGap = sign * (tail.coordinate + (sign * tailSize) / 2 - end);\n      result[len - 1] = tail = {\n        ...tail,\n        tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate,\n      };\n\n      if (tail.tickCoord != null) {\n        const isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);\n\n        if (isTailShow) {\n          end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n          result[len - 1] = { ...tail, isShow: true };\n        }\n      }\n    }\n  }\n\n  const count = preserveEnd ? len - 1 : len;\n  for (let i = 0; i < count; i++) {\n    const initialEntry = result[i];\n    if (initialEntry == null) {\n      continue;\n    }\n    let entry = initialEntry;\n    let size: number | undefined;\n    const getSize = () => {\n      if (size === undefined) {\n        size = getTickSize(initialEntry, i);\n      }\n\n      return size;\n    };\n\n    if (i === 0) {\n      const gap = sign * (entry.coordinate - (sign * getSize()) / 2 - start);\n      result[i] = entry = {\n        ...entry,\n        tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate,\n      };\n    } else {\n      result[i] = entry = { ...entry, tickCoord: entry.coordinate };\n    }\n\n    if (entry.tickCoord != null) {\n      const isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n\n      if (isShow) {\n        start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n        result[i] = { ...entry, isShow: true };\n      }\n    }\n  }\n\n  return result;\n}\n\nexport type GetTicksInput = {\n  angle?: number;\n  interval: CartesianAxisSettings['interval'] | undefined;\n  minTickGap: number;\n  orientation: XAxisOrientation | YAxisOrientation;\n  tick: CartesianAxisSettings['tick'];\n  tickFormatter?: CartesianAxisSettings['tickFormatter'];\n  ticks: ReadonlyArray<CartesianTickItem> | null;\n  unit?: CartesianAxisSettings['unit'];\n  viewBox: CartesianViewBoxRequired;\n};\n\nexport function getTicks(\n  props: GetTicksInput,\n  fontSize?: string,\n  letterSpacing?: string,\n): ReadonlyArray<CartesianTickItem> {\n  const { tick, ticks, viewBox, minTickGap, orientation, interval, tickFormatter, unit, angle } = props;\n\n  if (!ticks || !ticks.length || !tick) {\n    return [];\n  }\n\n  if (isNumber(interval) || Global.isSsr) {\n    return getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0) ?? [];\n  }\n\n  let candidates: ReadonlyArray<CartesianTickItem> = [];\n\n  const sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n  const unitSize: Size =\n    unit && sizeKey === 'width' ? getStringSize(unit, { fontSize, letterSpacing }) : { width: 0, height: 0 };\n\n  const getTickSize = (content: CartesianTickItem, index: number) => {\n    const value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;\n    // Recharts only supports angles when sizeKey === 'width'\n    return sizeKey === 'width'\n      ? getAngledTickWidth(getStringSize(value, { fontSize, letterSpacing }), unitSize, angle)\n      : getStringSize(value, { fontSize, letterSpacing })[sizeKey];\n  };\n\n  const tick0 = ticks[0];\n  const tick1 = ticks[1];\n  const sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;\n  const boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n\n  if (interval === 'equidistantPreserveStart') {\n    return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n  }\n  if (interval === 'equidistantPreserveEnd') {\n    return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n  }\n\n  if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n    candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n  } else {\n    candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n  }\n\n  return candidates.filter(entry => entry.isShow);\n}\n","import { isVisible } from '../util/TickUtils';\nimport { CartesianTickItem } from '../util/types';\nimport { getEveryNth } from '../util/getEveryNth';\nimport { Sign } from './getTicks';\n\nexport function getEquidistantTicks(\n  sign: Sign,\n  boundaries: { start: number; end: number },\n  getTickSize: (tick: CartesianTickItem, index: number) => number,\n  ticks: ReadonlyArray<CartesianTickItem>,\n  minTickGap: number,\n): ReadonlyArray<CartesianTickItem> {\n  // If the ticks are readonly, then the slice might not be necessary\n  const result = (ticks || []).slice();\n\n  const { start: initialStart, end } = boundaries;\n  let index = 0;\n  // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n  // For now, start from every tick\n  let stepsize = 1;\n  let start = initialStart;\n\n  while (stepsize <= result.length) {\n    // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n    // If it can not, then increase the stepsize by 1, and try again.\n\n    const entry = ticks?.[index];\n\n    // Break condition - If we have evaluated all the ticks, then we are done.\n    if (entry === undefined) {\n      return getEveryNth(ticks, stepsize);\n    }\n\n    // Check if the element collides with the next element\n    const i = index;\n    let size: number | undefined;\n    const getSize = () => {\n      if (size === undefined) {\n        size = getTickSize(entry, i);\n      }\n\n      return size;\n    };\n\n    const tickCoord = entry.coordinate;\n    // We will always show the first tick.\n    const isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n\n    if (!isShow) {\n      // Start all over with a larger stepsize\n      index = 0;\n      start = initialStart;\n      stepsize += 1;\n    }\n\n    if (isShow) {\n      // If it can be shown, update the start\n      start = tickCoord + sign * (getSize() / 2 + minTickGap);\n      index += stepsize;\n    }\n  }\n\n  return [];\n}\n\nexport function getEquidistantPreserveEndTicks(\n  sign: Sign,\n  boundaries: { start: number; end: number },\n  getTickSize: (tick: CartesianTickItem, index: number) => number,\n  ticks: ReadonlyArray<CartesianTickItem>,\n  minTickGap: number,\n): ReadonlyArray<CartesianTickItem> {\n  // If the ticks are readonly, then the slice might not be necessary\n  // Reworked logic for getEquidistantPreserveEndTicks\n  const result = (ticks || []).slice();\n  const len = result.length;\n\n  if (len === 0) {\n    return [];\n  }\n\n  const { start: initialStart, end } = boundaries;\n\n  // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)\n  for (let stepsize = 1; stepsize <= len; stepsize++) {\n    // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.\n    const offset = (len - 1) % stepsize;\n    let start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap\n    let ok = true;\n\n    // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1\n    for (let index = offset; index < len; index += stepsize) {\n      const entry = ticks[index];\n      if (entry == null) {\n        continue;\n      }\n      const i = index;\n      let size: number | undefined;\n\n      // Use a function to get size, as in the original code\n      const getSize = () => {\n        if (size === undefined) {\n          size = getTickSize(entry, i);\n        }\n        return size;\n      };\n\n      const tickCoord = entry.coordinate;\n\n      // 3. Apply visibility logic (including the first tick special case)\n      // The reviewer says *not* to unconditionally bypass checks for the last tick.\n      const isShow = index === offset || isVisible(sign, tickCoord, getSize, start, end);\n\n      if (!isShow) {\n        // If any tick in this end-anchored sequence fails visibility/collision,\n        // reject this stepsize and move to the next iteration (larger stepsize).\n        ok = false;\n        break;\n      }\n\n      // 4. If showable, update the 'start' coordinate for the next collision check\n      if (isShow) {\n        start = tickCoord + sign * (getSize() / 2 + minTickGap);\n      }\n    }\n\n    // 5. If the entire sequence for this stepsize passed the visibility check, return the result\n    if (ok) {\n      // Build the final result array explicitly using the validated stepsize and offset.\n      const finalTicks: CartesianTickItem[] = [];\n      for (let index = offset; index < len; index += stepsize) {\n        const tick = ticks[index];\n        if (tick != null) {\n          finalTicks.push(tick);\n        }\n      }\n      return finalTicks;\n    }\n  }\n\n  // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.\n  return [];\n}\n","type IGetBoundingClient = Pick<Element, 'getBoundingClientRect'>;\n\n/**\n * Calculates the width of the Y-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated width of the Y-axis.\n */\nexport const getCalculatedYAxisWidth = ({\n  ticks,\n  label,\n  labelGapWithTick = 5, // Default gap between label and tick\n  tickSize = 0,\n  tickMargin = 0,\n}: {\n  ticks: ArrayLike<IGetBoundingClient> | null;\n  label: IGetBoundingClient | null | undefined;\n  labelGapWithTick: number | undefined;\n  tickSize: number | undefined;\n  tickMargin: number | undefined;\n}): number => {\n  // find the max width of the tick labels\n  let maxTickWidth = 0;\n  if (ticks) {\n    Array.from(ticks).forEach((tickNode: IGetBoundingClient) => {\n      if (tickNode) {\n        const bbox = tickNode.getBoundingClientRect();\n\n        if (bbox.width > maxTickWidth) {\n          maxTickWidth = bbox.width;\n        }\n      }\n    });\n\n    // calculate width of the axis label\n    const labelWidth = label ? label.getBoundingClientRect().width : 0;\n\n    const tickWidth = tickSize + tickMargin;\n\n    // calculate the updated width of the y-axis\n    const updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);\n\n    return Math.round(updatedYAxisWidth);\n  }\n\n  return 0;\n};\n","/**\n * @fileOverview Cartesian Axis\n */\nimport * as React from 'react';\nimport { SVGProps, useState, useRef, useCallback, forwardRef, useImperativeHandle } from 'react';\n\nimport get from 'es-toolkit/compat/get';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Text, Props as TextProps, TextAnchor, TextVerticalAnchor } from '../component/Text';\nimport { CartesianLabelContextProvider, ImplicitLabelType, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport {\n  CartesianViewBox,\n  adaptEventsOfChild,\n  PresentationAttributesAdaptChildEvent,\n  CartesianTickItem,\n  AxisInterval,\n  Coordinate,\n  RectangleCoordinate,\n  TickProp,\n  BaseTickContentProps,\n  XAxisTickContentProps,\n  YAxisTickContentProps,\n} from '../util/types';\nimport { getTicks } from './getTicks';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { XAxisOrientation, XAxisPadding, YAxisOrientation, YAxisPadding } from '../state/cartesianAxisSlice';\nimport { getCalculatedYAxisWidth } from '../util/YAxisUtils';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\n\n/** The orientation of the axis in correspondence to the chart */\nexport type Orientation = XAxisOrientation | YAxisOrientation;\n/** A unit to be appended to a value */\nexport type Unit = string | number;\n/** The formatter function of tick */\nexport type TickFormatter = (value: any, index: number) => string;\n\nexport interface CartesianAxisProps extends ZIndexable {\n  className?: string;\n  axisType?: 'xAxis' | 'yAxis';\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n  unit?: Unit;\n  orientation?: Orientation;\n  // The viewBox of svg\n  viewBox?: CartesianViewBox;\n  tick?: TickProp<unknown>;\n  /**\n   * Additional props to spread to each tick Text element.\n   * Optional, the CartesianAxis component will provide its own defaults calculated from other props.\n   */\n  tickTextProps?: TextProps;\n  axisLine?: boolean | SVGProps<SVGLineElement>;\n  tickLine?: boolean | SVGProps<SVGLineElement>;\n  mirror?: boolean;\n  tickMargin?: number;\n  hide?: boolean;\n  label?: ImplicitLabelType;\n  /** Padding information passed to custom tick components */\n  padding?: XAxisPadding | YAxisPadding;\n\n  minTickGap?: number;\n  /**\n   * Careful - this is the same name as XAxis + YAxis `ticks` but completely different object!\n   */\n  ticks?: ReadonlyArray<CartesianTickItem>;\n  tickSize?: number;\n  tickFormatter?: TickFormatter;\n  interval?: AxisInterval;\n  /** Angle in which ticks will be rendered. */\n  angle?: number;\n  /**\n   * CartesianAxis reads scale internally and this prop is ignored since 3.0\n   * @deprecated\n   */\n  scale?: unknown;\n  labelRef?: React.RefObject<SVGTextElement> | null;\n\n  ref?: React.Ref<CartesianAxisRef>;\n}\n\nexport interface CartesianAxisRef {\n  getCalculatedWidth(): number;\n}\n\nexport const defaultCartesianAxisProps = {\n  x: 0,\n  y: 0,\n  width: 0,\n  height: 0,\n  viewBox: { x: 0, y: 0, width: 0, height: 0 },\n  // The orientation of axis\n  orientation: 'bottom',\n  // The ticks\n  ticks: [] as CartesianAxisProps['ticks'],\n\n  stroke: '#666',\n  tickLine: true,\n  axisLine: true,\n  tick: true,\n  mirror: false,\n\n  minTickGap: 5,\n  // The width or height of tick\n  tickSize: 6,\n  tickMargin: 2,\n  interval: 'preserveEnd',\n  zIndex: DefaultZIndexes.axis,\n} as const satisfies Partial<Props>;\n\n/*\n * `viewBox` and `scale` are SVG attributes.\n * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`\n * that are completely different data shape and different purpose.\n */\nexport type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'viewBox' | 'scale' | 'ref'> &\n  CartesianAxisProps;\n\ntype InternalProps = RequiresDefaultProps<Props, typeof defaultCartesianAxisProps>;\n\nfunction AxisLine(axisLineProps: {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  orientation: Orientation;\n  mirror: boolean;\n  axisLine: boolean | SVGProps<SVGLineElement>;\n  otherSvgProps: SVGProps<SVGLineElement> | null;\n}) {\n  const { x, y, width, height, orientation, mirror, axisLine, otherSvgProps } = axisLineProps;\n\n  if (!axisLine) {\n    return null;\n  }\n\n  let props: SVGProps<SVGLineElement> = {\n    ...otherSvgProps,\n    ...svgPropertiesNoEvents(axisLine),\n    fill: 'none',\n  };\n\n  if (orientation === 'top' || orientation === 'bottom') {\n    const needHeight = +((orientation === 'top' && !mirror) || (orientation === 'bottom' && mirror));\n    props = {\n      ...props,\n      x1: x,\n      y1: y + needHeight * height,\n      x2: x + width,\n      y2: y + needHeight * height,\n    };\n  } else {\n    const needWidth = +((orientation === 'left' && !mirror) || (orientation === 'right' && mirror));\n    props = {\n      ...props,\n      x1: x + needWidth * width,\n      y1: y,\n      x2: x + needWidth * width,\n      y2: y + height,\n    };\n  }\n\n  return <line {...props} className={clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))} />;\n}\n\n/**\n * Calculate the coordinates of endpoints in ticks.\n * @param data The data of a simple tick.\n * @param x The x-coordinate of the axis.\n * @param y The y-coordinate of the axis.\n * @param width The width of the axis.\n * @param height The height of the axis.\n * @param orientation The orientation of the axis.\n * @param tickSize The length of the tick line.\n * @param mirror If true, the ticks are mirrored.\n * @param tickMargin The margin between the tick line and the tick text.\n * @returns An object with `line` and `tick` coordinates.\n * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.\n */\nfunction getTickLineCoord(\n  data: CartesianTickItem,\n  x: number,\n  y: number,\n  width: number,\n  height: number,\n  orientation: Orientation,\n  tickSize: number,\n  mirror: boolean,\n  tickMargin: number,\n): {\n  line: RectangleCoordinate;\n  tick: Coordinate;\n} {\n  let x1, x2, y1, y2, tx, ty;\n\n  const sign = mirror ? -1 : 1;\n  const finalTickSize = data.tickSize || tickSize;\n  const tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n  switch (orientation) {\n    case 'top':\n      x1 = x2 = data.coordinate;\n      y2 = y + +!mirror * height;\n      y1 = y2 - sign * finalTickSize;\n      ty = y1 - sign * tickMargin;\n      tx = tickCoord;\n      break;\n    case 'left':\n      y1 = y2 = data.coordinate;\n      x2 = x + +!mirror * width;\n      x1 = x2 - sign * finalTickSize;\n      tx = x1 - sign * tickMargin;\n      ty = tickCoord;\n      break;\n    case 'right':\n      y1 = y2 = data.coordinate;\n      x2 = x + +mirror * width;\n      x1 = x2 + sign * finalTickSize;\n      tx = x1 + sign * tickMargin;\n      ty = tickCoord;\n      break;\n    default:\n      x1 = x2 = data.coordinate;\n      y2 = y + +mirror * height;\n      y1 = y2 + sign * finalTickSize;\n      ty = y1 + sign * tickMargin;\n      tx = tickCoord;\n      break;\n  }\n\n  return { line: { x1, y1, x2, y2 }, tick: { x: tx, y: ty } };\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The text anchor of the tick.\n */\nfunction getTickTextAnchor(orientation: Orientation, mirror: boolean): TextAnchor {\n  switch (orientation) {\n    case 'left':\n      return mirror ? 'start' : 'end';\n    case 'right':\n      return mirror ? 'end' : 'start';\n    default:\n      return 'middle';\n  }\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The vertical text anchor of the tick.\n */\nfunction getTickVerticalAnchor(orientation: Orientation, mirror: boolean): TextVerticalAnchor {\n  switch (orientation) {\n    case 'left':\n    case 'right':\n      return 'middle';\n    case 'top':\n      return mirror ? 'start' : 'end';\n    default:\n      return mirror ? 'end' : 'start';\n  }\n}\n\nfunction TickItem(props: { option: Props['tick']; tickProps: TextProps; value: string }) {\n  const { option, tickProps, value } = props;\n  let tickItem;\n  const combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');\n\n  if (React.isValidElement(option)) {\n    // @ts-expect-error element cloning is not typed\n    tickItem = React.cloneElement(option, { ...tickProps, className: combinedClassName });\n  } else if (typeof option === 'function') {\n    tickItem = option({ ...tickProps, className: combinedClassName });\n  } else {\n    let className = 'recharts-cartesian-axis-tick-value';\n\n    if (typeof option !== 'boolean') {\n      className = clsx(className, getClassNameFromUnknown(option));\n    }\n\n    tickItem = (\n      <Text {...tickProps} className={className}>\n        {value}\n      </Text>\n    );\n  }\n\n  return tickItem;\n}\n\ntype TicksProps = {\n  axisType: 'xAxis' | 'yAxis' | undefined;\n  events: Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'scale' | 'viewBox'>;\n  fontSize: string;\n  getTicksConfig: Omit<Props, 'ticks' | 'ref'>;\n  height: number;\n  letterSpacing: string;\n  mirror: boolean;\n  orientation: Orientation;\n  padding?: Props['padding'];\n  stroke?: Props['stroke'];\n  tick?: Props['tick'];\n  tickFormatter?: Props['tickFormatter'];\n  tickLine?: Props['tickLine'];\n  tickMargin: number;\n  tickSize: number;\n  tickTextProps?: Props['tickTextProps'];\n  ticks?: ReadonlyArray<CartesianTickItem>;\n  unit?: Props['unit'];\n  width: number;\n  x: number;\n  y: number;\n};\n\nconst Ticks = forwardRef<SVGGElement, TicksProps>((props: TicksProps, ref) => {\n  const {\n    ticks = [],\n    tick,\n    tickLine,\n    stroke,\n    tickFormatter,\n    unit,\n    padding,\n    tickTextProps,\n    orientation,\n    mirror,\n    x,\n    y,\n    width,\n    height,\n    tickSize,\n    tickMargin,\n    fontSize,\n    letterSpacing,\n    getTicksConfig,\n    events,\n    axisType,\n  } = props;\n  // @ts-expect-error some properties are optional in props but required in getTicks\n  const finalTicks = getTicks({ ...getTicksConfig, ticks }, fontSize, letterSpacing);\n  const textAnchor: TextAnchor = getTickTextAnchor(orientation, mirror);\n  const verticalAnchor: TextVerticalAnchor = getTickVerticalAnchor(orientation, mirror);\n  const axisProps = svgPropertiesNoEvents(getTicksConfig);\n  const customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n  let tickLinePropsObject: SVGProps<SVGLineElement> = {};\n  if (typeof tickLine === 'object') {\n    tickLinePropsObject = tickLine;\n  }\n  const tickLineProps: SVGProps<SVGLineElement> = {\n    ...axisProps,\n    fill: 'none',\n    ...tickLinePropsObject,\n  };\n\n  const tickLineCoords = finalTicks.map((entry: CartesianTickItem) => ({\n    entry,\n    ...getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin),\n  }));\n\n  const tickLines = tickLineCoords.map(({ entry, line: lineCoord }) => {\n    return (\n      <Layer\n        className=\"recharts-cartesian-axis-tick\"\n        key={`tick-${entry.value}-${entry.coordinate}-${entry.tickCoord}`}\n      >\n        {tickLine && (\n          <line\n            {...tickLineProps}\n            {...lineCoord}\n            className={clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))}\n          />\n        )}\n      </Layer>\n    );\n  });\n\n  const tickLabels = tickLineCoords.map(({ entry, tick: tickCoord }, i) => {\n    // @ts-expect-error we're not checking that padding and orientation types are in sync\n    const tickProps: XAxisTickContentProps | YAxisTickContentProps = {\n      verticalAnchor,\n      ...axisProps,\n      textAnchor,\n      stroke: 'none',\n      fill: stroke,\n      ...tickCoord,\n      index: i,\n      payload: entry,\n      visibleTicksCount: finalTicks.length,\n      tickFormatter,\n      padding,\n      ...tickTextProps,\n      angle: tickTextProps?.angle ?? axisProps.angle ?? 0,\n    };\n\n    // @ts-expect-error customTickProps is contributing unknown props which we don't type properly\n    const finalTickProps: BaseTickContentProps = {\n      ...tickProps,\n      ...customTickProps,\n    };\n    return (\n      <Layer\n        className=\"recharts-cartesian-axis-tick-label\"\n        key={`tick-label-${entry.value}-${entry.coordinate}-${entry.tickCoord}`}\n        {...adaptEventsOfChild(events, entry, i)}\n      >\n        {tick && (\n          <TickItem\n            option={tick}\n            tickProps={finalTickProps}\n            value={`${typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value}${unit || ''}`}\n          />\n        )}\n      </Layer>\n    );\n  });\n\n  return (\n    <g className={`recharts-cartesian-axis-ticks recharts-${axisType}-ticks`}>\n      {tickLabels.length > 0 && (\n        <ZIndexLayer zIndex={DefaultZIndexes.label}>\n          <g className={`recharts-cartesian-axis-tick-labels recharts-${axisType}-tick-labels`} ref={ref}>\n            {tickLabels}\n          </g>\n        </ZIndexLayer>\n      )}\n      {tickLines.length > 0 && (\n        <g className={`recharts-cartesian-axis-tick-lines recharts-${axisType}-tick-lines`}>{tickLines}</g>\n      )}\n    </g>\n  );\n});\n\nconst CartesianAxisComponent = forwardRef<CartesianAxisRef, InternalProps>((props, ref) => {\n  const { axisLine, width, height, className, hide, ticks, axisType, ...rest } = props;\n  const [fontSize, setFontSize] = useState('');\n  const [letterSpacing, setLetterSpacing] = useState('');\n  const tickRefs = useRef<HTMLCollectionOf<Element> | null>(null);\n\n  useImperativeHandle(\n    ref,\n    (): CartesianAxisRef => ({\n      getCalculatedWidth: (): number => {\n        return getCalculatedYAxisWidth({\n          ticks: tickRefs.current,\n          label: props.labelRef?.current,\n          labelGapWithTick: 5,\n          tickSize: props.tickSize,\n          tickMargin: props.tickMargin,\n        });\n      },\n    }),\n  );\n\n  const layerRef = useCallback(\n    (el: SVGElement | null) => {\n      if (el) {\n        const tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');\n        tickRefs.current = tickNodes;\n        const tick: Element | undefined = tickNodes[0];\n\n        if (tick) {\n          const computedStyle = window.getComputedStyle(tick);\n          const calculatedFontSize = computedStyle.fontSize;\n          const calculatedLetterSpacing = computedStyle.letterSpacing;\n          if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {\n            setFontSize(calculatedFontSize);\n            setLetterSpacing(calculatedLetterSpacing);\n          }\n        }\n      }\n    },\n    [fontSize, letterSpacing],\n  );\n\n  if (hide) {\n    return null;\n  }\n\n  /*\n   * This is different condition from what validateWidthHeight is doing;\n   * the CartesianAxis does allow width or height to be undefined.\n   */\n  if ((width != null && width <= 0) || (height != null && height <= 0)) {\n    return null;\n  }\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={clsx('recharts-cartesian-axis', className)}>\n        <AxisLine\n          x={props.x}\n          y={props.y}\n          width={width}\n          height={height}\n          orientation={props.orientation}\n          mirror={props.mirror}\n          axisLine={axisLine}\n          otherSvgProps={svgPropertiesNoEvents(props)}\n        />\n        <Ticks\n          ref={layerRef}\n          axisType={axisType}\n          events={rest}\n          fontSize={fontSize}\n          getTicksConfig={props}\n          height={props.height}\n          letterSpacing={letterSpacing}\n          mirror={props.mirror}\n          orientation={props.orientation}\n          padding={props.padding}\n          stroke={props.stroke}\n          tick={props.tick}\n          tickFormatter={props.tickFormatter}\n          tickLine={props.tickLine}\n          tickMargin={props.tickMargin}\n          tickSize={props.tickSize}\n          tickTextProps={props.tickTextProps}\n          ticks={ticks}\n          unit={props.unit}\n          width={props.width}\n          x={props.x}\n          y={props.y}\n        />\n        <CartesianLabelContextProvider\n          x={props.x}\n          y={props.y}\n          width={props.width}\n          height={props.height}\n          lowerWidth={props.width}\n          upperWidth={props.width}\n        >\n          <CartesianLabelFromLabelProp label={props.label} labelRef={props.labelRef} />\n          {props.children}\n        </CartesianLabelContextProvider>\n      </Layer>\n    </ZIndexLayer>\n  );\n});\n\n/**\n * @deprecated\n *\n * This component is not meant to be used directly in app code.\n * Use XAxis or YAxis instead.\n *\n * Starting from Recharts v4.0 we will make this component internal only.\n */\nexport const CartesianAxis = React.forwardRef((outsideProps: Props, ref: React.Ref<CartesianAxisRef>) => {\n  const props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);\n  return <CartesianAxisComponent {...props} ref={ref} />;\n});\n\nCartesianAxis.displayName = 'CartesianAxis';\n","import * as React from 'react';\nimport { ReactElement, SVGProps } from 'react';\n\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { ChartOffsetInternal } from '../util/types';\n\nimport { AxisPropsNeededForTicksGenerator, getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks, GetTicksInput } from './getTicks';\nimport { defaultCartesianAxisProps } from './CartesianAxis';\nimport { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * The <CartesianGrid horizontal\n */\nexport type GridLineTypeFunctionProps = Omit<LineItemProps, 'key'> & {\n  // React does not pass the key through when calling cloneElement - so it might be undefined when cloning\n  key: LineItemProps['key'] | undefined;\n  // offset is not present in LineItemProps, but it is read from context and then passed to the GridLineType function and element\n  offset: ChartOffsetInternal;\n};\n\nexport type AxisPropsForCartesianGridTicksGeneration = AxisPropsNeededForTicksGenerator &\n  Omit<GetTicksInput, 'ticks' | 'viewBox'>;\n\ntype GridLineType =\n  | SVGProps<SVGLineElement>\n  | ReactElement<SVGElement>\n  | ((props: GridLineTypeFunctionProps) => ReactElement<SVGElement>)\n  | boolean;\n\nexport type HorizontalCoordinatesGenerator = (\n  props: {\n    yAxis: AxisPropsForCartesianGridTicksGeneration | undefined;\n    width: number;\n    height: number;\n    offset: ChartOffsetInternal;\n  },\n  syncWithTicks: boolean,\n) => number[];\n\nexport type VerticalCoordinatesGenerator = (\n  props: {\n    xAxis: AxisPropsForCartesianGridTicksGeneration | undefined;\n    width: number;\n    height: number;\n    offset: ChartOffsetInternal;\n  },\n  syncWithTicks: boolean,\n) => number[];\n\ninterface CartesianGridProps extends ZIndexable {\n  /**\n   * The width of grid. If undefined, covers the full width of the chart plot area.\n   */\n  width?: number;\n  /**\n   * The height of grid. If undefined, covers the full height of the chart plot area.\n   */\n  height?: number;\n  /**\n   * A function that generates the y-coordinates of all horizontal lines.\n   *\n   * @see {@link https://codesandbox.io/p/sandbox/cartesian-grid-with-coordinate-generators-my38cg?file=%2Fsrc%2FApp.tsx Cartesian grid with coordinate generators}\n   */\n  horizontalCoordinatesGenerator?: HorizontalCoordinatesGenerator;\n  /**\n   * A function that generates the x-coordinates of all vertical lines.\n   *\n   * @see {@link https://codesandbox.io/p/sandbox/cartesian-grid-with-coordinate-generators-my38cg?file=%2Fsrc%2FApp.tsx Cartesian grid with coordinate generators}\n   */\n  verticalCoordinatesGenerator?: VerticalCoordinatesGenerator;\n  /**\n   * The x-coordinate of grid.\n   * If left undefined, it will be computed from the chart's offset and margins.\n   */\n  x?: number;\n  /**\n   * The y-coordinate of grid.\n   * If left undefined, it will be computed from the chart's offset and margins.\n   */\n  y?: number;\n  /**\n   * If set false, no horizontal grid lines will be drawn.\n   *\n   * @defaultValue true\n   */\n  horizontal?: GridLineType;\n  /**\n   * If set false, no vertical grid lines will be drawn.\n   *\n   * @defaultValue true\n   */\n  vertical?: GridLineType;\n  /**\n   * Array of coordinates in pixels where to draw horizontal grid lines.\n   * Has priority over syncWithTicks and horizontalValues.\n   *\n   * @defaultValue []\n   */\n  horizontalPoints?: number[];\n  /**\n   * Array of coordinates in pixels where to draw vertical grid lines.\n   * Has priority over syncWithTicks and verticalValues.\n   *\n   * @defaultValue []\n   */\n  verticalPoints?: number[];\n  /**\n   * The background color used to fill the space between grid lines\n   *\n   * @defaultValue none\n   * @example <CartesianGrid fill=\"red\" />\n   * @example <CartesianGrid fill=\"#ccc\" />\n   */\n  fill?: string;\n  /**\n   * The opacity of the background used to fill the space between grid lines\n   *\n   * @example <CartesianGrid fill=\"red\" fillOpacity={0.6} />\n   */\n  fillOpacity?: number | string;\n  /**\n   * Defines background color of stripes.\n   *\n   * The values from this array will be passed in as the `fill` property in a `rect` SVG element.\n   * For possible values see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill#rect\n   *\n   * In case there are more stripes than colors, the colors will start from beginning.\n   * So for example: verticalFill['yellow', 'black'] produces a pattern of yellow|black|yellow|black\n   *\n   * If this is undefined, or an empty array, then there is no background fill.\n   * Note: Grid lines will be rendered above these background stripes.\n   *\n   * @defaultValue []\n   */\n  verticalFill?: string[];\n  /**\n   * Defines background color of stripes.\n   *\n   * The values from this array will be passed in as the `fill` property in a `rect` SVG element.\n   * For possible values see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill#rect\n   *\n   * In case there are more stripes than colors, the colors will start from beginning.\n   * So for example: horizontalFill['yellow', 'black'] produces a pattern of yellow|black|yellow|black\n   *\n   * If this is undefined, or an empty array, then there is no background fill.\n   * Note: Grid lines will be rendered above these background stripes.\n   *\n   * @defaultValue []\n   */\n  horizontalFill?: string[];\n  /**\n   * If true, only the lines that correspond to the axes ticks values will be drawn.\n   * If false, extra lines could be added for each axis (at min and max coordinates), if there will not such ticks.\n   * horizontalPoints, verticalPoints, horizontalValues, verticalValues have priority over syncWithTicks.\n   *\n   * @defaultValue false\n   */\n  syncWithTicks?: boolean;\n  /**\n   * Array of values, where horizontal lines will be drawn. Numbers or strings, in dependence on axis type.\n   * Has priority over syncWithTicks but not over horizontalPoints.\n   */\n  horizontalValues?: number[] | string[];\n  /**\n   * Array of values, where vertical lines will be drawn. Numbers or strings, in dependence on axis type.\n   * Has priority over syncWithTicks but not over verticalPoints.\n   */\n  verticalValues?: number[] | string[];\n  /**\n   * The pattern of dashes and gaps used to paint the lines of the grid\n   *\n   * @example <CartesianGrid strokeDasharray=\"3 3\" />\n   * @example <CartesianGrid strokeDasharray={[5, 5, 1, 5]} />\n   * @example <CartesianGrid strokeDasharray=\"5 5 1 5\" />\n   * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray stroke-dasharray on MDN}\n   */\n  strokeDasharray?: string | number[];\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: AxisId;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: AxisId;\n  /**\n   * @defaultValue -100\n   */\n  zIndex?: number;\n}\n\ntype AcceptedSvgProps = Omit<SVGProps<SVGLineElement>, 'offset'>;\n\nexport type Props = AcceptedSvgProps & CartesianGridProps;\n\ntype CartesianGridInternalProps = AcceptedSvgProps &\n  RequiresDefaultProps<CartesianGridProps, typeof defaultCartesianGridProps> & {\n    // x,y,width,height are not declared directly in default props but are resolved using offset, if undefined\n    x: number;\n    y: number;\n    width: number;\n    height: number;\n  };\n\nconst Background = (props: Pick<AcceptedSvgProps, 'fill' | 'fillOpacity' | 'x' | 'y' | 'width' | 'height' | 'ry'>) => {\n  const { fill } = props;\n\n  if (!fill || fill === 'none') {\n    return null;\n  }\n\n  const { fillOpacity, x, y, width, height, ry } = props;\n\n  return (\n    <rect\n      x={x}\n      y={y}\n      ry={ry}\n      width={width}\n      height={height}\n      stroke=\"none\"\n      fill={fill}\n      fillOpacity={fillOpacity}\n      className=\"recharts-cartesian-grid-bg\"\n    />\n  );\n};\n\ntype LineItemProps = Props & {\n  offset: ChartOffsetInternal;\n  xAxis: undefined | AxisPropsForCartesianGridTicksGeneration;\n  yAxis: undefined | AxisPropsForCartesianGridTicksGeneration;\n  x1: number;\n  y1: number;\n  x2: number;\n  y2: number;\n  key: string;\n  index: number;\n};\n\nfunction LineItem({ option, lineItemProps }: { option: GridLineType; lineItemProps: LineItemProps }) {\n  let lineItem;\n\n  if (React.isValidElement(option)) {\n    // @ts-expect-error typescript does not see the props type when cloning an element\n    lineItem = React.cloneElement(option, lineItemProps);\n  } else if (typeof option === 'function') {\n    lineItem = option(lineItemProps);\n  } else {\n    const { x1, y1, x2, y2, key, ...others } = lineItemProps;\n    const { offset: __, ...restOfFilteredProps } = svgPropertiesNoEvents(others) ?? {};\n    lineItem = <line {...restOfFilteredProps} x1={x1} y1={y1} x2={x2} y2={y2} fill=\"none\" key={key} />;\n  }\n\n  return lineItem;\n}\n\ntype GridLinesProps = CartesianGridInternalProps & {\n  offset: GridLineTypeFunctionProps['offset'];\n  xAxis: GridLineTypeFunctionProps['xAxis'];\n  yAxis: GridLineTypeFunctionProps['yAxis'];\n};\n\nfunction HorizontalGridLines(props: GridLinesProps) {\n  const { x, width, horizontal = true, horizontalPoints } = props;\n\n  if (!horizontal || !horizontalPoints || !horizontalPoints.length) {\n    return null;\n  }\n\n  const { xAxisId, yAxisId, ...otherLineItemProps } = props;\n\n  const items = horizontalPoints.map((entry, i) => {\n    const lineItemProps: LineItemProps = {\n      ...otherLineItemProps,\n      x1: x,\n      y1: entry,\n      x2: x + width,\n      y2: entry,\n      key: `line-${i}`,\n      index: i,\n    };\n\n    return <LineItem key={`line-${i}`} option={horizontal} lineItemProps={lineItemProps} />;\n  });\n\n  return <g className=\"recharts-cartesian-grid-horizontal\">{items}</g>;\n}\n\nfunction VerticalGridLines(props: GridLinesProps) {\n  const { y, height, vertical = true, verticalPoints } = props;\n\n  if (!vertical || !verticalPoints || !verticalPoints.length) {\n    return null;\n  }\n\n  const { xAxisId, yAxisId, ...otherLineItemProps } = props;\n\n  const items = verticalPoints.map((entry, i) => {\n    const lineItemProps: LineItemProps = {\n      ...otherLineItemProps,\n      x1: entry,\n      y1: y,\n      x2: entry,\n      y2: y + height,\n      key: `line-${i}`,\n      index: i,\n    };\n\n    return <LineItem option={vertical} lineItemProps={lineItemProps} key={`line-${i}`} />;\n  });\n\n  return <g className=\"recharts-cartesian-grid-vertical\">{items}</g>;\n}\n\nfunction HorizontalStripes(props: CartesianGridInternalProps) {\n  const { horizontalFill, fillOpacity, x, y, width, height, horizontalPoints, horizontal = true } = props;\n  if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {\n    return null;\n  }\n\n  const roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);\n  // Why is this condition `!==` instead of `<=` ?\n  if (y !== roundedSortedHorizontalPoints[0]) {\n    roundedSortedHorizontalPoints.unshift(0);\n  }\n\n  const items = roundedSortedHorizontalPoints.map((entry, i) => {\n    // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?\n    const nextPoint = roundedSortedHorizontalPoints[i + 1];\n    const lastStripe = nextPoint == null;\n    const lineHeight = lastStripe ? y + height - entry : nextPoint - entry;\n    if (lineHeight <= 0) {\n      return null;\n    }\n    const colorIndex = i % horizontalFill.length;\n    return (\n      <rect\n        key={`react-${i}`}\n        y={entry}\n        x={x}\n        height={lineHeight}\n        width={width}\n        stroke=\"none\"\n        fill={horizontalFill[colorIndex]}\n        fillOpacity={fillOpacity}\n        className=\"recharts-cartesian-grid-bg\"\n      />\n    );\n  });\n\n  return <g className=\"recharts-cartesian-gridstripes-horizontal\">{items}</g>;\n}\n\nfunction VerticalStripes(props: CartesianGridInternalProps) {\n  const { vertical = true, verticalFill, fillOpacity, x, y, width, height, verticalPoints } = props;\n  if (!vertical || !verticalFill || !verticalFill.length) {\n    return null;\n  }\n\n  const roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);\n\n  if (x !== roundedSortedVerticalPoints[0]) {\n    roundedSortedVerticalPoints.unshift(0);\n  }\n\n  const items = roundedSortedVerticalPoints.map((entry, i) => {\n    const nextPoint = roundedSortedVerticalPoints[i + 1];\n    const lastStripe = nextPoint == null;\n    const lineWidth = lastStripe ? x + width - entry : nextPoint - entry;\n\n    if (lineWidth <= 0) {\n      return null;\n    }\n    const colorIndex = i % verticalFill.length;\n    return (\n      <rect\n        key={`react-${i}`}\n        x={entry}\n        y={y}\n        width={lineWidth}\n        height={height}\n        stroke=\"none\"\n        fill={verticalFill[colorIndex]}\n        fillOpacity={fillOpacity}\n        className=\"recharts-cartesian-grid-bg\"\n      />\n    );\n  });\n\n  return <g className=\"recharts-cartesian-gridstripes-vertical\">{items}</g>;\n}\n\nconst defaultVerticalCoordinatesGenerator: VerticalCoordinatesGenerator = (\n  { xAxis, width, height, offset },\n  syncWithTicks,\n) =>\n  getCoordinatesOfGrid(\n    getTicks({\n      ...defaultCartesianAxisProps,\n      ...xAxis,\n      ticks: getTicksOfAxis(xAxis, true),\n      viewBox: { x: 0, y: 0, width, height },\n    }),\n    offset.left,\n    offset.left + offset.width,\n    syncWithTicks,\n  );\n\nconst defaultHorizontalCoordinatesGenerator: HorizontalCoordinatesGenerator = (\n  { yAxis, width, height, offset },\n  syncWithTicks,\n) =>\n  getCoordinatesOfGrid(\n    getTicks({\n      ...defaultCartesianAxisProps,\n      ...yAxis,\n      ticks: getTicksOfAxis(yAxis, true),\n      viewBox: { x: 0, y: 0, width, height },\n    }),\n    offset.top,\n    offset.top + offset.height,\n    syncWithTicks,\n  );\n\nexport const defaultCartesianGridProps = {\n  horizontal: true,\n  vertical: true,\n  // The ordinates of horizontal grid lines\n  horizontalPoints: [],\n  // The abscissas of vertical grid lines\n  verticalPoints: [],\n\n  stroke: '#ccc',\n  fill: 'none',\n  // The fill of colors of grid lines\n  verticalFill: [],\n  horizontalFill: [],\n  xAxisId: 0,\n  yAxisId: 0,\n  syncWithTicks: false,\n  zIndex: DefaultZIndexes.grid,\n} as const satisfies Partial<Props>;\n\n/**\n * Renders background grid with lines and fill colors in a Cartesian chart.\n *\n * @consumes CartesianChartContext\n */\nexport function CartesianGrid(props: Props) {\n  const chartWidth = useChartWidth();\n  const chartHeight = useChartHeight();\n  const offset = useOffsetInternal();\n  const propsIncludingDefaults: CartesianGridInternalProps = {\n    ...resolveDefaultProps(props, defaultCartesianGridProps),\n    x: isNumber(props.x) ? props.x : offset.left,\n    y: isNumber(props.y) ? props.y : offset.top,\n    width: isNumber(props.width) ? props.width : offset.width,\n    height: isNumber(props.height) ? props.height : offset.height,\n  };\n\n  const { xAxisId, yAxisId, x, y, width, height, syncWithTicks, horizontalValues, verticalValues } =\n    propsIncludingDefaults;\n\n  const isPanorama = useIsPanorama();\n  const xAxis: AxisPropsForCartesianGridTicksGeneration | undefined = useAppSelector(state =>\n    selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama),\n  );\n  const yAxis: AxisPropsForCartesianGridTicksGeneration | undefined = useAppSelector(state =>\n    selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama),\n  );\n\n  if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {\n    return null;\n  }\n\n  /*\n   * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined\n   * outside the propsIncludingDefaults because they were never part of the original props\n   * and they were never passed as a prop down to horizontal/vertical custom elements.\n   * If we add these two to propsIncludingDefaults then we are changing public API.\n   * Not a bad thing per se but also not necessary.\n   */\n  const verticalCoordinatesGenerator =\n    propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;\n  const horizontalCoordinatesGenerator =\n    propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;\n\n  let { horizontalPoints, verticalPoints } = propsIncludingDefaults;\n\n  // No horizontal points are specified\n  if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {\n    const isHorizontalValues = horizontalValues && horizontalValues.length;\n\n    const generatorResult = horizontalCoordinatesGenerator(\n      {\n        yAxis: yAxis\n          ? {\n              ...yAxis,\n              ticks: isHorizontalValues ? horizontalValues : yAxis.ticks,\n            }\n          : undefined,\n        width: chartWidth ?? width,\n        height: chartHeight ?? height,\n        offset,\n      },\n      isHorizontalValues ? true : syncWithTicks,\n    );\n\n    warn(\n      Array.isArray(generatorResult),\n      `horizontalCoordinatesGenerator should return Array but instead it returned [${typeof generatorResult}]`,\n    );\n    if (Array.isArray(generatorResult)) {\n      horizontalPoints = generatorResult;\n    }\n  }\n\n  // No vertical points are specified\n  if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {\n    const isVerticalValues = verticalValues && verticalValues.length;\n    const generatorResult = verticalCoordinatesGenerator(\n      {\n        xAxis: xAxis\n          ? {\n              ...xAxis,\n              ticks: isVerticalValues ? verticalValues : xAxis.ticks,\n            }\n          : undefined,\n        width: chartWidth ?? width,\n        height: chartHeight ?? height,\n        offset,\n      },\n      isVerticalValues ? true : syncWithTicks,\n    );\n    warn(\n      Array.isArray(generatorResult),\n      `verticalCoordinatesGenerator should return Array but instead it returned [${typeof generatorResult}]`,\n    );\n    if (Array.isArray(generatorResult)) {\n      verticalPoints = generatorResult;\n    }\n  }\n\n  return (\n    <ZIndexLayer zIndex={propsIncludingDefaults.zIndex}>\n      <g className=\"recharts-cartesian-grid\">\n        <Background\n          fill={propsIncludingDefaults.fill}\n          fillOpacity={propsIncludingDefaults.fillOpacity}\n          x={propsIncludingDefaults.x}\n          y={propsIncludingDefaults.y}\n          width={propsIncludingDefaults.width}\n          height={propsIncludingDefaults.height}\n          ry={propsIncludingDefaults.ry}\n        />\n\n        <HorizontalStripes {...propsIncludingDefaults} horizontalPoints={horizontalPoints} />\n        <VerticalStripes {...propsIncludingDefaults} verticalPoints={verticalPoints} />\n\n        <HorizontalGridLines\n          {...propsIncludingDefaults}\n          offset={offset}\n          horizontalPoints={horizontalPoints}\n          xAxis={xAxis}\n          yAxis={yAxis}\n        />\n\n        <VerticalGridLines\n          {...propsIncludingDefaults}\n          offset={offset}\n          verticalPoints={verticalPoints}\n          xAxis={xAxis}\n          yAxis={yAxis}\n        />\n      </g>\n    </ZIndexLayer>\n  );\n}\n\nCartesianGrid.displayName = 'CartesianGrid';\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { ErrorBarDirection } from '../cartesian/ErrorBar';\nimport { DataKey } from '../util/types';\nimport { GraphicalItemId } from './graphicalItemsSlice';\n\n/**\n * ErrorBars have lot more settings but all the others are scoped to the component itself.\n * Only some of them required to be reported to the global store because XAxis and YAxis need to know\n * if the error bar is contributing to extending the axis domain.\n */\nexport type ErrorBarsSettings = {\n  /**\n   * The direction is only used in Scatter chart, and decided based on ChartLayout in other charts.\n   */\n  direction: ErrorBarDirection;\n  /**\n   * The dataKey decides which property from the data will each individual ErrorBar use.\n   * If it so happens that the ErrorBar data are bigger than the axis domain,\n   * the error bar data will stretch the axis domain.\n   */\n  dataKey: DataKey<any>;\n  /*\n   * ErrorBar props say that it has explicit xAxis and yAxis props,\n   * but actually it always inherits the xAxis and yAxis defined on the parent graphical item.\n   */\n};\n\nexport type ErrorBarsState = Record<GraphicalItemId, ReadonlyArray<ErrorBarsSettings>>;\n\nconst initialState: ErrorBarsState = {};\n\nconst errorBarSlice = createSlice({\n  name: 'errorBars',\n  initialState,\n  reducers: {\n    addErrorBar: (state, action: PayloadAction<{ itemId: GraphicalItemId; errorBar: ErrorBarsSettings }>) => {\n      const { itemId, errorBar } = action.payload;\n      if (!state[itemId]) {\n        state[itemId] = [];\n      }\n      state[itemId].push(errorBar);\n    },\n    replaceErrorBar: (\n      state,\n      action: PayloadAction<{ itemId: GraphicalItemId; prev: ErrorBarsSettings; next: ErrorBarsSettings }>,\n    ) => {\n      const { itemId, prev, next } = action.payload;\n      if (state[itemId]) {\n        state[itemId] = state[itemId].map(e =>\n          e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e,\n        );\n      }\n    },\n    removeErrorBar: (state, action: PayloadAction<{ itemId: GraphicalItemId; errorBar: ErrorBarsSettings }>) => {\n      const { itemId, errorBar } = action.payload;\n      if (state[itemId]) {\n        state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);\n      }\n    },\n  },\n});\n\nexport const { addErrorBar, replaceErrorBar, removeErrorBar } = errorBarSlice.actions;\n\nexport const errorBarReducer = errorBarSlice.reducer;\n","import * as React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { ErrorBarDataPointFormatter } from '../cartesian/ErrorBar';\nimport { addErrorBar, ErrorBarsSettings, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { useGraphicalItemId } from './RegisterGraphicalItemId';\nimport { BarRectangleItem } from '../cartesian/Bar';\nimport { LinePointItem } from '../cartesian/Line';\nimport { ScatterPointItem } from '../cartesian/Scatter';\n\ntype ErrorBarContextType<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = {\n  data: ReadonlyArray<any> | undefined;\n  xAxisId: AxisId;\n  yAxisId: AxisId;\n  dataPointFormatter: ErrorBarDataPointFormatter<T>;\n  errorBarOffset: number;\n};\n\nconst initialContextState: ErrorBarContextType<any> = {\n  data: [],\n  xAxisId: 'xAxis-0',\n  yAxisId: 'yAxis-0',\n  dataPointFormatter: () => ({ x: 0, y: 0, value: 0 }),\n  errorBarOffset: 0,\n};\n\nconst ErrorBarContext = createContext(initialContextState);\n\nexport function SetErrorBarContext<T extends BarRectangleItem | LinePointItem | ScatterPointItem>(\n  props: ErrorBarContextType<T> & { children: React.ReactNode },\n) {\n  const { children, ...rest } = props;\n  return <ErrorBarContext.Provider value={rest}>{children}</ErrorBarContext.Provider>;\n}\n\nexport const useErrorBarContext = () => useContext(ErrorBarContext);\n\nexport function ReportErrorBarSettings(props: ErrorBarsSettings): null {\n  const dispatch = useAppDispatch();\n  const graphicalItemId = useGraphicalItemId();\n  const prevPropsRef = useRef<ErrorBarsSettings | null>(null);\n\n  useEffect(() => {\n    if (graphicalItemId == null) {\n      // ErrorBar outside a graphical item context does not do anything.\n      return;\n    }\n    if (prevPropsRef.current === null) {\n      dispatch(addErrorBar({ itemId: graphicalItemId, errorBar: props }));\n    } else if (prevPropsRef.current !== props) {\n      dispatch(replaceErrorBar({ itemId: graphicalItemId, prev: prevPropsRef.current, next: props }));\n    }\n    prevPropsRef.current = props;\n  }, [dispatch, graphicalItemId, props]);\n\n  useEffect(() => {\n    return () => {\n      if (prevPropsRef.current != null && graphicalItemId != null) {\n        dispatch(removeErrorBar({ itemId: graphicalItemId, errorBar: prevPropsRef.current }));\n        prevPropsRef.current = null;\n      }\n    };\n  }, [dispatch, graphicalItemId]);\n\n  return null;\n}\n","import * as React from 'react';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { useAppSelector } from '../state/hooks';\nimport {\n  implicitXAxis,\n  implicitYAxis,\n  selectXAxisSettings,\n  selectYAxisSettings,\n} from '../state/selectors/axisSelectors';\nimport { usePlotArea } from '../hooks';\n\ntype GraphicalItemClipPathProps = {\n  xAxisId: AxisId;\n  yAxisId: AxisId;\n  clipPathId: string;\n};\n\nexport function useNeedsClip(xAxisId: AxisId, yAxisId: AxisId) {\n  const xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n  const yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n\n  const needClipX: boolean = xAxis?.allowDataOverflow ?? implicitXAxis.allowDataOverflow;\n  const needClipY: boolean = yAxis?.allowDataOverflow ?? implicitYAxis.allowDataOverflow;\n  const needClip = needClipX || needClipY;\n\n  return { needClip, needClipX, needClipY };\n}\n\nexport function GraphicalItemClipPath({ xAxisId, yAxisId, clipPathId }: GraphicalItemClipPathProps) {\n  const plotArea = usePlotArea();\n\n  const { needClipX, needClipY, needClip } = useNeedsClip(xAxisId, yAxisId);\n\n  if (!needClip || !plotArea) {\n    return null;\n  }\n\n  const { x, y, width, height } = plotArea;\n\n  return (\n    <clipPath id={`clipPath-${clipPathId}`}>\n      <rect\n        x={needClipX ? x : x - width / 2}\n        y={needClipY ? y : y - height / 2}\n        width={needClipX ? width : width * 2}\n        height={needClipY ? height : height * 2}\n      />\n    </clipPath>\n  );\n}\n","import { createSelector } from 'reselect';\nimport { computeLinePoints, LinePointItem } from '../../cartesian/Line';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nimport { ChartData } from '../chartDataSlice';\nimport { CartesianGraphicalItemSettings, GraphicalItemId } from '../graphicalItemsSlice';\nimport { LineSettings } from '../types/LineSettings';\n\nconst selectXAxisWithScale = (state: RechartsRootState, xAxisId: AxisId, _yAxisId: AxisId, isPanorama: boolean) =>\n  selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n\nconst selectXAxisTicks = (state: RechartsRootState, xAxisId: AxisId, _yAxisId: AxisId, isPanorama: boolean) =>\n  selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n\nconst selectYAxisWithScale = (state: RechartsRootState, _xAxisId: AxisId, yAxisId: AxisId, isPanorama: boolean) =>\n  selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n\nconst selectYAxisTicks = (state: RechartsRootState, _xAxisId: AxisId, yAxisId: AxisId, isPanorama: boolean) =>\n  selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n\nconst selectBandSize = createSelector(\n  [selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks],\n  (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {\n    if (isCategoricalAxis(layout, 'xAxis')) {\n      return getBandSizeOfAxis(xAxis, xAxisTicks, false);\n    }\n    return getBandSizeOfAxis(yAxis, yAxisTicks, false);\n  },\n);\n\nconst pickLineId = (\n  _state: RechartsRootState,\n  _xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _isPanorama: boolean,\n  id: GraphicalItemId,\n) => id;\n\nfunction isLineSettings(item: CartesianGraphicalItemSettings): item is LineSettings {\n  return item.type === 'line';\n}\n\n/*\n * There is a race condition problem because we read some data from props and some from the state.\n * The state is updated through a dispatch and is one render behind,\n * and so we have this weird one tick render where the displayedData in one selector have the old dataKey\n * but the new dataKey in another selector.\n *\n * So here instead of reading the dataKey from the props, we always read it from the state.\n */\nconst selectSynchronisedLineSettings: (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  yAxisId: AxisId,\n  isPanorama: boolean,\n  id: GraphicalItemId,\n) => LineSettings | undefined = createSelector(\n  [selectUnfilteredCartesianItems, pickLineId],\n  (graphicalItems, id: GraphicalItemId): LineSettings | undefined =>\n    graphicalItems.filter(isLineSettings).find(x => x.id === id),\n);\n\nexport const selectLinePoints: (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  yAxisId: AxisId,\n  isPanorama: boolean,\n  id: GraphicalItemId,\n) => ReadonlyArray<LinePointItem> | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectXAxisWithScale,\n    selectYAxisWithScale,\n    selectXAxisTicks,\n    selectYAxisTicks,\n    selectSynchronisedLineSettings,\n    selectBandSize,\n    selectChartDataWithIndexesIfNotInPanoramaPosition4,\n  ],\n  (\n    layout,\n    xAxis,\n    yAxis,\n    xAxisTicks,\n    yAxisTicks,\n    lineSettings,\n    bandSize,\n    { chartData, dataStartIndex, dataEndIndex },\n  ): ReadonlyArray<LinePointItem> | undefined => {\n    if (\n      lineSettings == null ||\n      xAxis == null ||\n      yAxis == null ||\n      xAxisTicks == null ||\n      yAxisTicks == null ||\n      xAxisTicks.length === 0 ||\n      yAxisTicks.length === 0 ||\n      bandSize == null ||\n      (layout !== 'horizontal' && layout !== 'vertical')\n    ) {\n      return undefined;\n    }\n\n    const { dataKey, data } = lineSettings;\n    let displayedData: ChartData | undefined;\n\n    if (data != null && data.length > 0) {\n      displayedData = data;\n    } else {\n      displayedData = chartData?.slice(dataStartIndex, dataEndIndex + 1);\n    }\n\n    if (displayedData == null) {\n      return undefined;\n    }\n\n    return computeLinePoints({ layout, xAxis, yAxis, xAxisTicks, yAxisTicks, dataKey, bandSize, displayedData });\n  },\n);\n","import * as React from 'react';\nimport {\n  Component,\n  ComponentType,\n  MutableRefObject,\n  ReactNode,\n  Ref,\n  useCallback,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\n\nimport { clsx } from 'clsx';\nimport { CurveType, Props as CurveProps } from '../shape/Curve';\nimport { Layer } from '../container/Layer';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { Dots } from '../component/Dots';\nimport { ErrorBarDataItem, ErrorBarDataPointFormatter } from './ErrorBar';\nimport { interpolate, isNullish, noop } from '../util/DataUtils';\nimport { isClipDot } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport {\n  ActiveDotType,\n  ActiveShape,\n  AnimationDuration,\n  AnimationTiming,\n  CartesianLayout,\n  DataKey,\n  DotType,\n  LegendType,\n  TickItem,\n  TooltipType,\n  TrapezoidViewBox,\n} from '../util/types';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { BaseAxisWithScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectLinePoints } from '../state/selectors/lineSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { usePlotArea } from '../hooks';\nimport { WithIdRequired } from '../util/useUniqueId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';\nimport { Shape } from '../util/ActiveShapeUtils';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\nimport { ChartData } from '../state/chartDataSlice';\n\nexport interface LinePointItem {\n  readonly value: number;\n  readonly payload?: any;\n  /**\n   * Line coordinates can have gaps in them. We have `connectNulls` prop that allows to connect those gaps anyway.\n   * What it means is that some points can have `null` x or y coordinates.\n   */\n  x: number | null;\n  y: number | null;\n}\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\ninterface InternalLineProps extends ZIndexable {\n  activeDot: ActiveDotType;\n  animateNewValues: boolean;\n  animationBegin: number;\n  animationDuration: AnimationDuration;\n  animationEasing: AnimationTiming;\n\n  className?: string;\n  connectNulls: boolean;\n  data?: any;\n  dataKey?: DataKey<any>;\n  dot: DotType;\n  height: number;\n  hide: boolean;\n  id: GraphicalItemId;\n  isAnimationActive: boolean | 'auto';\n  label: ImplicitLabelListType;\n  layout: 'horizontal' | 'vertical';\n  left: number;\n  legendType: LegendType;\n  shape?: ActiveShape<CurveProps, SVGPathElement>;\n\n  name?: string | number;\n  needClip?: boolean;\n\n  onAnimationEnd?: () => void;\n  onAnimationStart?: () => void;\n\n  points: ReadonlyArray<LinePointItem>;\n  tooltipType?: TooltipType;\n  top: number;\n  type?: CurveType;\n  unit?: string | number | null;\n  width: number;\n  xAxisId: AxisId;\n  yAxisId: AxisId;\n}\n\n/**\n * External props, intended for end users to fill in\n */\ninterface LineProps extends ZIndexable {\n  /**\n   * The active dot is rendered on the closest data point when user interacts with the chart. Options:\n   *\n   * - `false`: dots do not change on user activity; both active and inactive dots follow the `dot` prop (see below)\n   * - `true`: renders the active dot with default settings\n   * - `object`: the props of the active dot. This will be merged with the internal calculated props of the active dot\n   * - `ReactElement`: the custom active dot element\n   * - `function`: a render function of the custom active dot\n   *\n   * @defaultValue true\n   * @example <Line dataKey=\"value\" activeDot={false} />\n   * @example <Line dataKey=\"value\" activeDot={{ stroke: 'red', strokeWidth: 2, r: 10 }} />\n   * @example <Line dataKey=\"value\" activeDot={CustomizedActiveDot} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/SimpleLineChart/ A line chart with customized active dot}\n   */\n  activeDot?: ActiveDotType;\n  /**\n   * @defaultValue true\n   */\n  animateNewValues?: boolean;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  className?: string;\n  /**\n   * Whether to connect the line across null points.\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/LineChartConnectNulls/ LineChart with connectNull true and false}\n   */\n  connectNulls?: boolean;\n  data?: ChartData;\n  /**\n   * Decides how to extract the value of this Line from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Line.\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * Renders a circle element at each data point. Options:\n   *\n   * - `false`: no dots are drawn;\n   * - `true`: renders the dots with default settings;\n   * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;\n   * - `ReactElement`: the custom dot element;\n   * - `function`: a render function of the custom dot.\n   *\n   * @defaultValue true\n   *\n   * @example <Line dataKey=\"value\" dot={false} />\n   * @example <Line dataKey=\"value\" dot={{ stroke: 'red', strokeWidth: 2 }} />\n   * @example <Line dataKey=\"value\" dot={CustomizedDot} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/CustomizedDotLineChart/ A line chart with customized dot}\n   */\n  dot?: DotType;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`, and also to identify this element internally.\n   *\n   * If undefined, Recharts will generate a unique ID automatically.\n   */\n  id?: string;\n  /**\n   * If set false, animation of line will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n\n  /**\n   * Renders one label for each data point. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object`: the props of LabelList component;\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * @defaultValue false\n   * @example <Line dataKey=\"value\" label />\n   * @example <Line dataKey=\"value\" label={{ fill: 'red', fontSize: 20 }} />\n   * @example <Line dataKey=\"value\" label={CustomizedLabel} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/CustomizedLabelLineChart/ A line chart with customized label}\n   */\n  label?: ImplicitLabelListType;\n  /**\n   * The type of icon in legend.\n   * If set to 'none', no legend item will be rendered.\n   * @defaultValue line\n   */\n  legendType?: LegendType;\n  /**\n   * If set a ReactElement, the shape of line can be customized.\n   * If set a function, the function will be called to render customized shape.\n   *\n   * @example <Line dataKey=\"value\" shape={CustomizedShapeComponent} />\n   * @example <Line dataKey=\"value\" shape={renderShapeFunction} />\n   */\n  shape?: ActiveShape<CurveProps, SVGPathElement>;\n\n  /**\n   * The name of data.\n   * This option will be used in tooltip and legend to represent this graphical item.\n   * If no value was set to this option, the value of dataKey will be used alternatively.\n   */\n  name?: string | number;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  tooltipType?: TooltipType;\n  /**\n   * The interpolation type of curve. Allows custom interpolation function.\n   *\n   * @defaultValue linear\n   * @link https://d3js.org/d3-shape/curve\n   * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}\n   */\n  type?: CurveType;\n  /**\n   * The unit of data. This option will be used in tooltip.\n   */\n  unit?: string | number | null;\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: AxisId;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: AxisId;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 400\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  /**\n   * The stroke color. If `\"none\"`, no line will be drawn.\n   *\n   * @defaultValue #3182bd\n   */\n  stroke?: string;\n  /**\n   * The width of the stroke\n   *\n   * @defaultValue 1\n   */\n  strokeWidth?: string | number;\n  /**\n   * The pattern of dashes and gaps used to paint the line\n   *\n   * @example <Line strokeDasharray=\"4\" />\n   * @example <Line strokeDasharray=\"4 1\" />\n   * @example <Line strokeDasharray=\"4 1 2\" />\n   */\n  strokeDasharray?: string | number;\n}\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\ntype LineSvgProps = Omit<CurveProps, 'points' | 'pathRef' | 'ref' | 'layout' | 'baseLine'>;\n\ntype InternalProps = LineSvgProps & InternalLineProps;\n\nexport type Props = LineSvgProps & LineProps;\n\nconst computeLegendPayloadFromAreaData = (props: Props): ReadonlyArray<LegendPayload> => {\n  const { dataKey, name, stroke, legendType, hide } = props;\n  return [\n    {\n      inactive: hide,\n      dataKey,\n      type: legendType,\n      color: stroke,\n      value: getTooltipNameProp(name, dataKey),\n      payload: props,\n    },\n  ];\n};\n\nconst SetLineTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    data,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    unit,\n    tooltipType,\n    id,\n  }: Pick<\n    InternalProps,\n    'dataKey' | 'data' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'unit' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: data,\n      getPosition: noop,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        nameKey: undefined,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: stroke,\n        unit,\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nconst generateSimpleStrokeDasharray = (totalLength: number, length: number): string => {\n  return `${length}px ${totalLength - length}px`;\n};\n\nfunction repeat(lines: number[], count: number) {\n  const linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;\n  let result: number[] = [];\n\n  for (let i = 0; i < count; ++i) {\n    result = [...result, ...linesUnit];\n  }\n\n  return result;\n}\n\nconst getStrokeDasharray = (length: number, totalLength: number, lines: number[]) => {\n  const lineLength = lines.reduce((pre, next) => pre + next);\n\n  // if lineLength is 0 return the default when no strokeDasharray is provided\n  if (!lineLength) {\n    return generateSimpleStrokeDasharray(totalLength, length);\n  }\n\n  const count = Math.floor(length / lineLength);\n  const remainLength = length % lineLength;\n  const restLength = totalLength - length;\n\n  let remainLines: number[] = [];\n  for (let i = 0, sum = 0; i < lines.length; sum += lines[i] ?? 0, ++i) {\n    const lineValue = lines[i];\n    if (lineValue != null && sum + lineValue > remainLength) {\n      remainLines = [...lines.slice(0, i), remainLength - sum];\n      break;\n    }\n  }\n\n  const emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n\n  return [...repeat(lines, count), ...remainLines, ...emptyLines].map(line => `${line}px`).join(', ');\n};\n\nfunction LineDotsWrapper({\n  clipPathId,\n  points,\n  props,\n}: {\n  points: ReadonlyArray<LinePointItem>;\n  clipPathId: string;\n  props: InternalProps;\n}) {\n  const { dot, dataKey, needClip } = props;\n\n  /*\n   * Exclude ID from the props passed to the Dots component\n   * because then the ID would be applied to multiple dots, and it would no longer be unique.\n   */\n  const { id, ...propsWithoutId } = props;\n\n  const lineProps = svgPropertiesNoEvents(propsWithoutId);\n\n  return (\n    <Dots\n      points={points}\n      dot={dot}\n      className=\"recharts-line-dots\"\n      dotClassName=\"recharts-line-dot\"\n      dataKey={dataKey}\n      baseProps={lineProps}\n      needClip={needClip}\n      clipPathId={clipPathId}\n    />\n  );\n}\n\nfunction LineLabelListProvider({\n  showLabels,\n  children,\n  points,\n}: {\n  showLabels: boolean;\n  children: ReactNode;\n  points: ReadonlyArray<LinePointItem>;\n}) {\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> = useMemo(() => {\n    return points?.map((point): CartesianLabelListEntry => {\n      const viewBox: TrapezoidViewBox = {\n        x: point.x ?? 0,\n        y: point.y ?? 0,\n        width: 0,\n        lowerWidth: 0,\n        upperWidth: 0,\n        height: 0,\n      };\n      return {\n        ...viewBox,\n        value: point.value,\n        payload: point.payload,\n        viewBox,\n        /*\n         * Line is not passing parentViewBox to the LabelList so the labels can escape - looks like a bug, should we pass parentViewBox?\n         * Or should this just be the root chart viewBox?\n         */\n        parentViewBox: undefined,\n        fill: undefined,\n      };\n    });\n  }, [points]);\n  return (\n    <CartesianLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </CartesianLabelListContextProvider>\n  );\n}\n\nfunction StaticCurve({\n  clipPathId,\n  pathRef,\n  points,\n  strokeDasharray,\n  props,\n}: {\n  clipPathId: string;\n  pathRef: Ref<SVGPathElement>;\n  points: ReadonlyArray<LinePointItem>;\n  props: InternalProps;\n  strokeDasharray?: string;\n}) {\n  const { type, layout, connectNulls, needClip, shape, ...others } = props;\n  const curveProps: CurveProps = {\n    ...svgPropertiesAndEvents(others),\n    fill: 'none',\n    className: 'recharts-line-curve',\n    clipPath: needClip ? `url(#clipPath-${clipPathId})` : undefined,\n    points,\n    type,\n    layout,\n    connectNulls,\n    strokeDasharray: strokeDasharray ?? props.strokeDasharray,\n  };\n\n  return (\n    <>\n      {points?.length > 1 && <Shape shapeType=\"curve\" option={shape} {...curveProps} pathRef={pathRef} />}\n      <LineDotsWrapper points={points} clipPathId={clipPathId} props={props} />\n    </>\n  );\n}\n\nfunction getTotalLength(mainCurve: SVGPathElement | null): number {\n  try {\n    return (mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength()) || 0;\n  } catch {\n    return 0;\n  }\n}\n\nfunction CurveWithAnimation({\n  clipPathId,\n  props,\n  pathRef,\n  previousPointsRef,\n  longestAnimatedLengthRef,\n}: {\n  clipPathId: string;\n  props: InternalProps;\n  pathRef: MutableRefObject<SVGPathElement | null>;\n  longestAnimatedLengthRef: MutableRefObject<number>;\n  previousPointsRef: MutableRefObject<ReadonlyArray<LinePointItem> | null>;\n}) {\n  const {\n    points,\n    strokeDasharray,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    animateNewValues,\n    width,\n    height,\n    onAnimationEnd,\n    onAnimationStart,\n  } = props;\n\n  const prevPoints = previousPointsRef.current;\n  const animationId = useAnimationId(points, 'recharts-line-');\n  const animationIdRef = useRef<string>(animationId);\n\n  const [isAnimating, setIsAnimating] = useState(false);\n  const showLabels = !isAnimating;\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n  const totalLength = getTotalLength(pathRef.current);\n  /*\n   * Here we want to detect if the length animation has been interrupted.\n   * For that we keep a reference to the furthest length that has been animated.\n   *\n   * And then, to keep things smooth, we add to it the current length that is being animated right now.\n   *\n   * If we did Math.max then it makes the length animation \"pause\" but we want to keep it smooth\n   * so in case we have some \"leftover\" length from the previous animation we add it to the current length.\n   *\n   * This is not perfect because the animation changes speed due to easing. The default easing is 'ease' which is not linear\n   * and makes it stand out. But it's good enough I suppose.\n   * If we want to fix it then we need to keep track of multiple animations and their easing and timings.\n   *\n   * If you want to see this in action, try to change the dataKey of the line chart while the initial animation is running.\n   * The Line begins with zero length and slowly grows to the full length. While this growth is in progress,\n   * change the dataKey and the Line will continue growing from where it has grown so far.\n   *\n   * This is for the case when new animation triggers. When that happens we get new points, everything re-renders,\n   * and we get fresh new state in this component and use the ref stored above.\n   *\n   * In case when we get render without new animation - for example when opacity changes, or color changes,\n   * then the animationId remains the same, and we do not update the starting point.\n   * See https://github.com/recharts/recharts/issues/6044\n   */\n  const startingPointRef = useRef(0);\n\n  if (animationIdRef.current !== animationId) {\n    startingPointRef.current = longestAnimatedLengthRef.current;\n    animationIdRef.current = animationId;\n  }\n\n  const startingPoint = startingPointRef.current;\n\n  return (\n    <LineLabelListProvider points={points} showLabels={showLabels}>\n      {props.children}\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        onAnimationEnd={handleAnimationEnd}\n        onAnimationStart={handleAnimationStart}\n        key={animationId}\n      >\n        {(t: number) => {\n          const lengthInterpolated = interpolate(startingPoint, totalLength + startingPoint, t);\n          const curLength = Math.min(lengthInterpolated, totalLength);\n          let currentStrokeDasharray;\n          if (isAnimationActive) {\n            if (strokeDasharray) {\n              const lines = `${strokeDasharray}`.split(/[,\\s]+/gim).map(num => parseFloat(num));\n              currentStrokeDasharray = getStrokeDasharray(curLength, totalLength, lines);\n            } else {\n              currentStrokeDasharray = generateSimpleStrokeDasharray(totalLength, curLength);\n            }\n          } else {\n            currentStrokeDasharray = strokeDasharray == null ? undefined : String(strokeDasharray);\n          }\n\n          /*\n           * Here it is important to wait a little bit with updating the previousPointsRef\n           * before the animation has a time to initialize.\n           * If we set the previous pointsRef immediately, we set it before the Legend height it calculated\n           * and before pathRef is set.\n           * If that happens, the Line will re-render again after Legend had reported its height\n           * which will start a new animation with the previous points as the starting point\n           * which gives the effect of the Line animating slightly upwards (where the animation distance equals the Legend height).\n           * Waiting for t > 0 is indirect but good enough to ensure that the Legend height is calculated and animation works properly.\n           *\n           * Total length similarly is calculated from the pathRef. We should not update the previousPointsRef\n           * before the pathRef is set, otherwise we will have a wrong total length.\n           */\n          if (t > 0 && totalLength > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousPointsRef.current = points;\n            /*\n             * totalLength is set from a ref and is not updated in the first tick of the animation.\n             * It defaults to zero which is exactly what we want here because we want to grow from zero,\n             * however the same happens when the data change.\n             *\n             * In that case we want to remember the previous length and continue from there, and only animate the shape.\n             *\n             * Therefore the totalLength > 0 check.\n             *\n             * The Animate is about to fire handleAnimationStart which will update the state\n             * and cause a re-render and read a new proper totalLength which will be used in the next tick\n             * and update the longestAnimatedLengthRef.\n             *\n             * Why Math.max? Sometimes the curve goes through a smaller length than previously recorded.\n             * If we just set it to curLength, then the next animation would start from a smaller length\n             * which looks weird. So we keep the longest length ever reached and then animate from there.\n             */\n            // eslint-disable-next-line no-param-reassign\n            longestAnimatedLengthRef.current = Math.max(longestAnimatedLengthRef.current, curLength);\n          }\n\n          if (prevPoints) {\n            const prevPointsDiffFactor = prevPoints.length / points.length;\n            const stepData =\n              t === 1\n                ? points\n                : points.map((entry, index): LinePointItem => {\n                    const prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n                    if (prevPoints[prevPointIndex]) {\n                      const prev = prevPoints[prevPointIndex];\n                      return {\n                        ...entry,\n                        x: interpolate(prev.x, entry.x, t),\n                        y: interpolate(prev.y, entry.y, t),\n                      };\n                    }\n\n                    // magic number of faking previous x and y location\n                    if (animateNewValues) {\n                      return {\n                        ...entry,\n                        x: interpolate(width * 2, entry.x, t),\n                        y: interpolate(height / 2, entry.y, t),\n                      };\n                    }\n                    return {\n                      ...entry,\n                      x: entry.x,\n                      y: entry.y,\n                    };\n                  });\n            // eslint-disable-next-line no-param-reassign\n            previousPointsRef.current = stepData;\n            return (\n              <StaticCurve\n                props={props}\n                points={stepData}\n                clipPathId={clipPathId}\n                pathRef={pathRef}\n                strokeDasharray={currentStrokeDasharray}\n              />\n            );\n          }\n          return (\n            <StaticCurve\n              props={props}\n              points={points}\n              clipPathId={clipPathId}\n              pathRef={pathRef}\n              strokeDasharray={currentStrokeDasharray}\n            />\n          );\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n    </LineLabelListProvider>\n  );\n}\n\nfunction RenderCurve({ clipPathId, props }: { clipPathId: string; props: InternalProps }) {\n  const previousPointsRef = useRef<ReadonlyArray<LinePointItem> | null>(null);\n  const longestAnimatedLengthRef = useRef<number>(0);\n  const pathRef = useRef<SVGPathElement | null>(null);\n\n  return (\n    <CurveWithAnimation\n      props={props}\n      clipPathId={clipPathId}\n      previousPointsRef={previousPointsRef}\n      longestAnimatedLengthRef={longestAnimatedLengthRef}\n      pathRef={pathRef}\n    />\n  );\n}\n\nconst errorBarDataPointFormatter: ErrorBarDataPointFormatter<LinePointItem> = (\n  dataPoint: LinePointItem,\n  dataKey,\n): ErrorBarDataItem => {\n  return {\n    x: dataPoint.x ?? undefined,\n    y: dataPoint.y ?? undefined,\n    value: dataPoint.value,\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    errorVal: getValueByDataKey(dataPoint.payload, dataKey),\n  };\n};\n\n// eslint-disable-next-line react/prefer-stateless-function\nclass LineWithState extends Component<InternalProps> {\n  render() {\n    const { hide, dot, points, className, xAxisId, yAxisId, top, left, width, height, id, needClip, zIndex } =\n      this.props;\n\n    if (hide) {\n      return null;\n    }\n\n    const layerClass = clsx('recharts-line', className);\n    const clipPathId = id;\n    const { r, strokeWidth } = getRadiusAndStrokeWidthFromDot(dot);\n    const clipDot = isClipDot(dot);\n    const dotSize = r * 2 + strokeWidth;\n    const activePointsClipPath = needClip ? `url(#clipPath-${clipDot ? '' : 'dots-'}${clipPathId})` : undefined;\n\n    return (\n      <ZIndexLayer zIndex={zIndex}>\n        <Layer className={layerClass}>\n          {needClip && (\n            <defs>\n              <GraphicalItemClipPath clipPathId={clipPathId} xAxisId={xAxisId} yAxisId={yAxisId} />\n              {!clipDot && (\n                <clipPath id={`clipPath-dots-${clipPathId}`}>\n                  <rect\n                    x={left - dotSize / 2}\n                    y={top - dotSize / 2}\n                    width={width + dotSize}\n                    height={height + dotSize}\n                  />\n                </clipPath>\n              )}\n            </defs>\n          )}\n          <SetErrorBarContext\n            xAxisId={xAxisId}\n            yAxisId={yAxisId}\n            data={points}\n            dataPointFormatter={errorBarDataPointFormatter}\n            errorBarOffset={0}\n          >\n            <RenderCurve props={this.props} clipPathId={clipPathId} />\n          </SetErrorBarContext>\n        </Layer>\n        <ActivePoints\n          activeDot={this.props.activeDot}\n          points={points}\n          mainColor={this.props.stroke}\n          itemDataKey={this.props.dataKey}\n          clipPath={activePointsClipPath}\n        />\n      </ZIndexLayer>\n    );\n  }\n}\n\nexport const defaultLineProps = {\n  activeDot: true,\n  animateNewValues: true,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  connectNulls: false,\n  dot: true,\n  fill: '#fff',\n  hide: false,\n  isAnimationActive: 'auto',\n  label: false,\n  legendType: 'line',\n  stroke: '#3182bd',\n  strokeWidth: 1,\n  xAxisId: 0,\n  yAxisId: 0,\n  zIndex: DefaultZIndexes.line,\n  type: 'linear',\n} as const satisfies Partial<Props>;\n\nfunction LineImpl(props: WithIdRequired<Props>) {\n  const {\n    activeDot,\n    animateNewValues,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    connectNulls,\n    dot,\n    hide,\n    isAnimationActive,\n    label,\n    legendType,\n    xAxisId,\n    yAxisId,\n    id,\n    ...everythingElse\n  } = resolveDefaultProps(props, defaultLineProps);\n\n  const { needClip } = useNeedsClip(xAxisId, yAxisId);\n  const plotArea = usePlotArea();\n  const layout = useChartLayout();\n  const isPanorama = useIsPanorama();\n  const points: ReadonlyArray<LinePointItem> | undefined = useAppSelector(state =>\n    selectLinePoints(state, xAxisId, yAxisId, isPanorama, id),\n  );\n  if ((layout !== 'horizontal' && layout !== 'vertical') || points == null || plotArea == null) {\n    // Cannot render Line in an unsupported layout\n    return null;\n  }\n\n  const { height, width, x: left, y: top } = plotArea;\n\n  return (\n    <LineWithState\n      {...everythingElse}\n      id={id}\n      connectNulls={connectNulls}\n      dot={dot}\n      activeDot={activeDot}\n      animateNewValues={animateNewValues}\n      animationBegin={animationBegin}\n      animationDuration={animationDuration}\n      animationEasing={animationEasing}\n      isAnimationActive={isAnimationActive}\n      hide={hide}\n      label={label}\n      legendType={legendType}\n      xAxisId={xAxisId}\n      yAxisId={yAxisId}\n      points={points}\n      layout={layout}\n      height={height}\n      width={width}\n      left={left}\n      top={top}\n      needClip={needClip}\n    />\n  );\n}\n\nexport function computeLinePoints({\n  layout,\n  xAxis,\n  yAxis,\n  xAxisTicks,\n  yAxisTicks,\n  dataKey,\n  bandSize,\n  displayedData,\n}: {\n  layout: CartesianLayout;\n  xAxis: BaseAxisWithScale;\n  yAxis: BaseAxisWithScale;\n  xAxisTicks: TickItem[];\n  yAxisTicks: TickItem[];\n  dataKey: Props['dataKey'];\n  bandSize: number;\n  displayedData: ChartData;\n}): ReadonlyArray<LinePointItem> {\n  return displayedData\n    .map((entry, index): LinePointItem | null => {\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      const value: number = getValueByDataKey(entry, dataKey);\n\n      if (layout === 'horizontal') {\n        const x = getCateCoordinateOfLine({ axis: xAxis, ticks: xAxisTicks, bandSize, entry, index });\n        const y = isNullish(value) ? null : yAxis.scale.map(value);\n        return {\n          x,\n          y: y ?? null,\n          value,\n          payload: entry,\n        };\n      }\n\n      const x = isNullish(value) ? null : xAxis.scale.map(value);\n      const y = getCateCoordinateOfLine({ axis: yAxis, ticks: yAxisTicks, bandSize, entry, index });\n      if (x == null || y == null) {\n        return null;\n      }\n      return {\n        x,\n        y,\n        value,\n        payload: entry,\n      };\n    })\n    .filter(Boolean);\n}\n\nfunction LineFn(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultLineProps);\n  const isPanorama = useIsPanorama();\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"line\">\n      {id => (\n        <>\n          <SetLegendPayload legendPayload={computeLegendPayloadFromAreaData(props)} />\n          <SetLineTooltipEntrySettings\n            dataKey={props.dataKey}\n            data={props.data}\n            stroke={props.stroke}\n            strokeWidth={props.strokeWidth}\n            fill={props.fill}\n            name={props.name}\n            hide={props.hide}\n            unit={props.unit}\n            tooltipType={props.tooltipType}\n            id={id}\n          />\n          <SetCartesianGraphicalItem\n            type=\"line\"\n            id={id}\n            data={props.data}\n            xAxisId={props.xAxisId}\n            yAxisId={props.yAxisId}\n            zAxisId={0}\n            dataKey={props.dataKey}\n            hide={props.hide}\n            isPanorama={isPanorama}\n          />\n          <LineImpl {...props} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\n/**\n * @provides LabelListContext\n * @provides ErrorBarContext\n * @consumes CartesianChartContext\n */\nexport const Line: ComponentType<Props> = React.memo(LineFn, propsAreEqual);\nLine.displayName = 'Line';\n","import { ActiveDotType, DotType } from './types';\nimport { svgPropertiesNoEventsFromUnknown } from './svgPropertiesNoEvents';\n\nexport function getRadiusAndStrokeWidthFromDot(dot: ActiveDotType | DotType): {\n  r: number;\n  strokeWidth: number;\n} {\n  const props = svgPropertiesNoEventsFromUnknown(dot);\n  const defaultR = 3;\n  const defaultStrokeWidth = 2;\n  if (props != null) {\n    const { r, strokeWidth } = props;\n    let realR = Number(r);\n    let realStrokeWidth = Number(strokeWidth);\n    if (Number.isNaN(realR) || realR < 0) {\n      realR = defaultR;\n    }\n    if (Number.isNaN(realStrokeWidth) || realStrokeWidth < 0) {\n      realStrokeWidth = defaultStrokeWidth;\n    }\n    return {\n      r: realR,\n      strokeWidth: realStrokeWidth,\n    };\n  }\n  return {\n    r: defaultR,\n    strokeWidth: defaultStrokeWidth,\n  };\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n  callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n  var _gT$ContextKey;\n\n  if (!React.createContext) return {};\n  const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n  let realContext = contextMap.get(React.createContext);\n\n  if (!realContext) {\n    realContext = React.createContext(null);\n\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux';\n    }\n\n    contextMap.set(React.createContext, realContext);\n  }\n\n  return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n  useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n  const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n  return function useSelector(selector, equalityFnOrOptions = {}) {\n    const {\n      equalityFn = refEquality,\n      stabilityCheck = undefined,\n      noopCheck = undefined\n    } = typeof equalityFnOrOptions === 'function' ? {\n      equalityFn: equalityFnOrOptions\n    } : equalityFnOrOptions;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`);\n      }\n\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`);\n      }\n\n      if (typeof equalityFn !== 'function') {\n        throw new Error(`You must pass a function as an equality function to useSelector`);\n      }\n    }\n\n    const {\n      store,\n      subscription,\n      getServerState,\n      stabilityCheck: globalStabilityCheck,\n      noopCheck: globalNoopCheck\n    } = useReduxContext();\n    const firstRun = useRef(true);\n    const wrappedSelector = useCallback({\n      [selector.name](state) {\n        const selected = selector(state);\n\n        if (process.env.NODE_ENV !== 'production') {\n          const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n          if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n            const toCompare = selector(state);\n\n            if (!equalityFn(selected, toCompare)) {\n              let stack = undefined;\n\n              try {\n                throw new Error();\n              } catch (e) {\n                ;\n                ({\n                  stack\n                } = e);\n              }\n\n              console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n                state,\n                selected,\n                selected2: toCompare,\n                stack\n              });\n            }\n          }\n\n          const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n          if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n            // @ts-ignore\n            if (selected === state) {\n              let stack = undefined;\n\n              try {\n                throw new Error();\n              } catch (e) {\n                ;\n                ({\n                  stack\n                } = e);\n              }\n\n              console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n                stack\n              });\n            }\n          }\n\n          if (firstRun.current) firstRun.current = false;\n        }\n\n        return selected;\n      }\n\n    }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n    const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n    useDebugValue(selectedState);\n    return selectedState;\n  };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n *   const counter = useSelector(state => state.counter)\r\n *   return <div>{counter}</div>\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n  const batch = getBatch();\n  let first = null;\n  let last = null;\n  return {\n    clear() {\n      first = null;\n      last = null;\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first;\n\n        while (listener) {\n          listener.callback();\n          listener = listener.next;\n        }\n      });\n    },\n\n    get() {\n      let listeners = [];\n      let listener = first;\n\n      while (listener) {\n        listeners.push(listener);\n        listener = listener.next;\n      }\n\n      return listeners;\n    },\n\n    subscribe(callback) {\n      let isSubscribed = true;\n      let listener = last = {\n        callback,\n        next: null,\n        prev: last\n      };\n\n      if (listener.prev) {\n        listener.prev.next = listener;\n      } else {\n        first = listener;\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return;\n        isSubscribed = false;\n\n        if (listener.next) {\n          listener.next.prev = listener.prev;\n        } else {\n          last = listener.prev;\n        }\n\n        if (listener.prev) {\n          listener.prev.next = listener.next;\n        } else {\n          first = listener.next;\n        }\n      };\n    }\n\n  };\n}\n\nconst nullListeners = {\n  notify() {},\n\n  get: () => []\n};\nexport function createSubscription(store, parentSub) {\n  let unsubscribe;\n  let listeners = nullListeners; // Reasons to keep the subscription active\n\n  let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n  let selfSubscribed = false;\n\n  function addNestedSub(listener) {\n    trySubscribe();\n    const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n    let removed = false;\n    return () => {\n      if (!removed) {\n        removed = true;\n        cleanupListener();\n        tryUnsubscribe();\n      }\n    };\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify();\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange();\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed;\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++;\n\n    if (!unsubscribe) {\n      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n      listeners = createListenerCollection();\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--;\n\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe();\n      unsubscribe = undefined;\n      listeners.clear();\n      listeners = nullListeners;\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true;\n      trySubscribe();\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false;\n      tryUnsubscribe();\n    }\n  }\n\n  const subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners\n  };\n  return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n  useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n  try {\n    return JSON.stringify(Comp);\n  } catch (err) {\n    return String(Comp);\n  }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n//   and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n  useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n  // We want to capture the wrapper props and child props we used for later comparisons\n  lastWrapperProps.current = wrapperProps;\n  renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n  if (childPropsFromStoreUpdate.current) {\n    childPropsFromStoreUpdate.current = null;\n    notifyNestedSubs();\n  }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch<any>,\nadditionalSubscribeListener) {\n  // If we're not subscribed to the store, nothing to do here\n  if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n  let didUnsubscribe = false;\n  let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n  const checkForUpdates = () => {\n    if (didUnsubscribe || !isMounted.current) {\n      // Don't run stale listeners.\n      // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n      return;\n    } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n    const latestStoreState = store.getState();\n    let newChildProps, error;\n\n    try {\n      // Actually run the selector with the most recent store state and wrapper props\n      // to determine what the child props should be\n      newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n    } catch (e) {\n      error = e;\n      lastThrownError = e;\n    }\n\n    if (!error) {\n      lastThrownError = null;\n    } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n    if (newChildProps === lastChildProps.current) {\n      if (!renderIsScheduled.current) {\n        notifyNestedSubs();\n      }\n    } else {\n      // Save references to the new child props.  Note that we track the \"child props from store update\"\n      // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without\n      // forcing another re-render, which we don't want.\n      lastChildProps.current = newChildProps;\n      childPropsFromStoreUpdate.current = newChildProps;\n      renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n      // Trigger the React `useSyncExternalStore` subscriber\n\n      additionalSubscribeListener();\n    }\n  }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n  subscription.onStateChange = checkForUpdates;\n  subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n  // changed since we began.\n\n  checkForUpdates();\n\n  const unsubscribeWrapper = () => {\n    didUnsubscribe = true;\n    subscription.tryUnsubscribe();\n    subscription.onStateChange = null;\n\n    if (lastThrownError) {\n      // It's possible that we caught an error due to a bad mapState function, but the\n      // parent re-rendered without this component and we're about to unmount.\n      // This shouldn't happen as long as we do top-down subscriptions correctly, but\n      // if we ever do those wrong, this throw will surface the error in our tests.\n      // In that case, throw the error from here so it doesn't get lost.\n      throw lastThrownError;\n    }\n  };\n\n  return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n  return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n  // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n  // @ts-ignore\n  pure,\n  areStatesEqual = strictEqual,\n  areOwnPropsEqual = shallowEqual,\n  areStatePropsEqual = shallowEqual,\n  areMergedPropsEqual = shallowEqual,\n  // use React's forwardRef to expose a ref of the wrapped component\n  forwardRef = false,\n  // the context consumer to use\n  context = ReactReduxContext\n} = {}) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n      hasWarnedAboutDeprecatedPureOption = true;\n      warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n    }\n  }\n\n  const Context = context;\n  const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n  const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n  const initMergeProps = mergePropsFactory(mergeProps);\n  const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n  const wrapWithConnect = WrappedComponent => {\n    if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n      throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n    }\n\n    const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n    const displayName = `Connect(${wrappedComponentName})`;\n    const selectorFactoryOptions = {\n      shouldHandleStateChanges,\n      displayName,\n      wrappedComponentName,\n      WrappedComponent,\n      // @ts-ignore\n      initMapStateToProps,\n      // @ts-ignore\n      initMapDispatchToProps,\n      initMergeProps,\n      areStatesEqual,\n      areStatePropsEqual,\n      areOwnPropsEqual,\n      areMergedPropsEqual\n    };\n\n    function ConnectFunction(props) {\n      const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n        // Distinguish between actual \"data\" props that were passed to the wrapper component,\n        // and values needed to control behavior (forwarded refs, alternate context instances).\n        // To maintain the wrapperProps object reference, memoize this destructuring.\n        const {\n          reactReduxForwardedRef\n        } = props,\n              wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n        return [props.context, reactReduxForwardedRef, wrapperProps];\n      }, [props]);\n      const ContextToUse = React.useMemo(() => {\n        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n        // Memoize the check that determines which context instance we should use.\n        return propsContext && propsContext.Consumer && // @ts-ignore\n        isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n      }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n      const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n      // We'll check to see if it _looks_ like a Redux store first.\n      // This allows us to pass through a `store` prop that is just a plain value.\n\n      const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n      const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n      if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n        throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a <Provider>, ` + `or pass a custom React context provider to <Provider> and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n      } // Based on the previous check, one of these must be true\n\n\n      const store = didStoreComeFromProps ? props.store : contextValue.store;\n      const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n      const childPropsSelector = React.useMemo(() => {\n        // The child props selector needs the store reference as an input.\n        // Re-create this selector whenever the store changes.\n        return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n      }, [store]);\n      const [subscription, notifyNestedSubs] = React.useMemo(() => {\n        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n        // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n        const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n        // the middle of the notification loop, where `subscription` will then be null. This can\n        // probably be avoided if Subscription's listeners logic is changed to not call listeners\n        // that have been unsubscribed in the  middle of the notification loop.\n\n        const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n        return [subscription, notifyNestedSubs];\n      }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n      // and memoize that value to avoid unnecessary context updates.\n\n      const overriddenContextValue = React.useMemo(() => {\n        if (didStoreComeFromProps) {\n          // This component is directly subscribed to a store from props.\n          // We don't want descendants reading from this store - pass down whatever\n          // the existing context value is from the nearest connected ancestor.\n          return contextValue;\n        } // Otherwise, put this component's subscription instance into context, so that\n        // connected descendants won't update until after this component is done\n\n\n        return _extends({}, contextValue, {\n          subscription\n        });\n      }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n      const lastChildProps = React.useRef();\n      const lastWrapperProps = React.useRef(wrapperProps);\n      const childPropsFromStoreUpdate = React.useRef();\n      const renderIsScheduled = React.useRef(false);\n      const isProcessingDispatch = React.useRef(false);\n      const isMounted = React.useRef(false);\n      const latestSubscriptionCallbackError = React.useRef();\n      useIsomorphicLayoutEffect(() => {\n        isMounted.current = true;\n        return () => {\n          isMounted.current = false;\n        };\n      }, []);\n      const actualChildPropsSelector = React.useMemo(() => {\n        const selector = () => {\n          // Tricky logic here:\n          // - This render may have been triggered by a Redux store update that produced new child props\n          // - However, we may have gotten new wrapper props after that\n          // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n          // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n          // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n          if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n            return childPropsFromStoreUpdate.current;\n          } // TODO We're reading the store directly in render() here. Bad idea?\n          // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n          // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n          // to determine what the child props should be.\n\n\n          return childPropsSelector(store.getState(), wrapperProps);\n        };\n\n        return selector;\n      }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n      // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n      // just useEffect instead to avoid the warning, since neither will run anyway.\n\n      const subscribeForReact = React.useMemo(() => {\n        const subscribe = reactListener => {\n          if (!subscription) {\n            return () => {};\n          }\n\n          return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n          childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n        };\n\n        return subscribe;\n      }, [subscription]);\n      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n      let actualChildProps;\n\n      try {\n        actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n        subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n        // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n        actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n      } catch (err) {\n        if (latestSubscriptionCallbackError.current) {\n          ;\n          err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n        }\n\n        throw err;\n      }\n\n      useIsomorphicLayoutEffect(() => {\n        latestSubscriptionCallbackError.current = undefined;\n        childPropsFromStoreUpdate.current = undefined;\n        lastChildProps.current = actualChildProps;\n      }); // Now that all that's done, we can finally try to actually render the child component.\n      // We memoize the elements for the rendered child component as an optimization.\n\n      const renderedWrappedComponent = React.useMemo(() => {\n        return (\n          /*#__PURE__*/\n          // @ts-ignore\n          React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n            ref: reactReduxForwardedRef\n          }))\n        );\n      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n      const renderedChild = React.useMemo(() => {\n        if (shouldHandleStateChanges) {\n          // If this component is subscribed to store updates, we need to pass its own\n          // subscription instance down to our descendants. That means rendering the same\n          // Context instance, and putting a different value into the context.\n          return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n            value: overriddenContextValue\n          }, renderedWrappedComponent);\n        }\n\n        return renderedWrappedComponent;\n      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n      return renderedChild;\n    }\n\n    const _Connect = React.memo(ConnectFunction);\n\n    // Add a hacky cast to get the right output type\n    const Connect = _Connect;\n    Connect.WrappedComponent = WrappedComponent;\n    Connect.displayName = ConnectFunction.displayName = displayName;\n\n    if (forwardRef) {\n      const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n        // @ts-ignore\n        return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n          reactReduxForwardedRef: ref\n        }));\n      });\n\n      const forwarded = _forwarded;\n      forwarded.displayName = displayName;\n      forwarded.WrappedComponent = WrappedComponent;\n      return hoistStatics(forwarded, WrappedComponent);\n    }\n\n    return hoistStatics(Connect, WrappedComponent);\n  };\n\n  return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n  store,\n  context,\n  children,\n  serverState,\n  stabilityCheck = 'once',\n  noopCheck = 'once'\n}) {\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store);\n    return {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n      stabilityCheck,\n      noopCheck\n    };\n  }, [store, serverState, stabilityCheck, noopCheck]);\n  const previousState = React.useMemo(() => store.getState(), [store]);\n  useIsomorphicLayoutEffect(() => {\n    const {\n      subscription\n    } = contextValue;\n    subscription.onStateChange = subscription.notifyNestedSubs;\n    subscription.trySubscribe();\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs();\n    }\n\n    return () => {\n      subscription.tryUnsubscribe();\n      subscription.onStateChange = undefined;\n    };\n  }, [contextValue, previousState]);\n  const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n  return /*#__PURE__*/React.createElement(Context.Provider, {\n    value: contextValue\n  }, children);\n}\n\nexport default Provider;","function is(x, y) {\n  if (x === y) {\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    return x !== x && y !== y;\n  }\n}\n\nexport default function shallowEqual(objA, objB) {\n  if (is(objA, objB)) return true;\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  const keysA = Object.keys(objA);\n  const keysB = Object.keys(objB);\n  if (keysA.length !== keysB.length) return false;\n\n  for (let i = 0; i < keysA.length; i++) {\n    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import { shallowEqual } from 'react-redux';\n\nconst propsToShallowCompare = new Set<string>([\n  'axisLine',\n  'tickLine',\n  'activeBar',\n  'activeDot',\n  'activeLabel',\n  'activeShape',\n  'allowEscapeViewBox',\n  'background',\n  'cursor',\n  'dot',\n  'label',\n  'line',\n  'margin',\n  'padding',\n  'position',\n  'shape',\n  'style',\n  'tick',\n  'wrapperStyle',\n  // radius can be an array of 4 numbers, easy to compare shallowly\n  'radius',\n]);\n\n/**\n * When comparing two values, returns true if they are the same value or\n * are both NaN.\n *\n * If we used just a simple triple equals, we would get false negatives for two NaNs\n * which could cause extra re-renders so let's have this instead.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality\n *\n * @param x first value to compare\n * @param y second value to compare\n * return true if the same, false if different\n */\nfunction sameValueZero(x: unknown, y: unknown): boolean {\n  if (x == null && y == null) {\n    /*\n     * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n     * so there is no need to re-render.\n     */\n    return true;\n  }\n  if (typeof x === 'number' && typeof y === 'number') {\n    // x and y are equal (this is true for -0 and 0) or they are both NaN\n    // eslint-disable-next-line no-self-compare\n    return x === y || (x !== x && y !== y);\n  }\n  return x === y;\n}\n\n/**\n * So usually React would compare only the first level of props using Object.is.\n * However, in our case many props are objects or arrays, and our own docs recommend to do that!\n * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.\n *\n * Because charts can and do receive large props (typically the data array),\n * we only limit this to a subset of known props that are likely to be objects/arrays.\n *\n * @param prevProps\n * @param nextProps\n */\nexport function propsAreEqual<T extends Record<string, unknown>>(prevProps: T, nextProps: T): boolean {\n  const allKeys = new Set<string>([...Object.keys(prevProps), ...Object.keys(nextProps)]);\n  for (const key of allKeys) {\n    /*\n     * If a key is on a special allowlist, go one level deeper\n     * and do a shallow comparison of the values.\n     */\n    if (propsToShallowCompare.has(key)) {\n      if (prevProps[key] == null && nextProps[key] == null) {\n        /*\n         * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n         * so there is no need to re-render.\n         */\n        continue;\n      }\n      if (!shallowEqual(prevProps[key], nextProps[key])) {\n        return false;\n      }\n      /*\n       * Otherwise do a simple same-value comparison (with NaN support).\n       */\n    } else if (!sameValueZero(prevProps[key], nextProps[key])) {\n      return false;\n    }\n  }\n  return true;\n}\n","import { RechartsRootState } from '../store';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\nimport { AxisId, defaultAxisId } from '../cartesianAxisSlice';\n\nexport function selectXAxisIdFromGraphicalItemId(state: RechartsRootState, id: GraphicalItemId): AxisId {\n  return state.graphicalItems.cartesianItems.find(item => item.id === id)?.xAxisId ?? defaultAxisId;\n}\n\nexport function selectYAxisIdFromGraphicalItemId(state: RechartsRootState, id: GraphicalItemId): AxisId {\n  return state.graphicalItems.cartesianItems.find(item => item.id === id)?.yAxisId ?? defaultAxisId;\n}\n","import { createSelector } from 'reselect';\nimport { SeriesPoint } from 'victory-vendor/d3-shape';\nimport { NullableCoordinate } from '../../util/types';\nimport { computeArea } from '../../cartesian/Area';\nimport {\n  selectAxisWithScale,\n  selectStackGroups,\n  selectTicksOfGraphicalItem,\n  selectUnfilteredCartesianItems,\n} from './axisSelectors';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { getBandSizeOfAxis, isCategoricalAxis, StackId } from '../../util/ChartUtils';\nimport { ChartData } from '../chartDataSlice';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { StackDataPoint, StackGroup, StackSeries, StackSeriesIdentifier } from '../../util/stacks/stackTypes';\nimport { AreaSettings } from '../types/AreaSettings';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\nimport { selectChartBaseValue } from './rootPropsSelectors';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\n\nexport interface AreaPointItem extends NullableCoordinate {\n  x: number | null;\n  y: number | null;\n  value?: [number, number];\n  payload?: any;\n}\n\nexport type ComputedArea = {\n  points: ReadonlyArray<AreaPointItem>;\n  baseLine: number | ReadonlyArray<AreaPointItem>;\n  isRange: boolean;\n};\n\nconst selectXAxisWithScale = (state: RechartsRootState, graphicalItemId: GraphicalItemId, isPanorama: boolean) =>\n  selectAxisWithScale(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\n\nconst selectXAxisTicks = (state: RechartsRootState, graphicalItemId: GraphicalItemId, isPanorama: boolean) =>\n  selectTicksOfGraphicalItem(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\n\nconst selectYAxisWithScale = (state: RechartsRootState, graphicalItemId: GraphicalItemId, isPanorama: boolean) =>\n  selectAxisWithScale(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\n\nconst selectYAxisTicks = (state: RechartsRootState, graphicalItemId: GraphicalItemId, isPanorama: boolean) =>\n  selectTicksOfGraphicalItem(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\n\nconst selectBandSize = createSelector(\n  [selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks],\n  (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {\n    if (isCategoricalAxis(layout, 'xAxis')) {\n      return getBandSizeOfAxis(xAxis, xAxisTicks, false);\n    }\n    return getBandSizeOfAxis(yAxis, yAxisTicks, false);\n  },\n);\n\nconst pickAreaId = (_state: RechartsRootState, id: GraphicalItemId): GraphicalItemId => id;\n\n/*\n * There is a race condition problem because we read some data from props and some from the state.\n * The state is updated through a dispatch and is one render behind,\n * and so we have this weird one tick render where the displayedData in one selector have the old dataKey\n * but the new dataKey in another selector.\n *\n * A proper fix is to either move everything into the state, or read the dataKey always from props\n * - but this is a smaller change.\n */\nconst selectSynchronisedAreaSettings: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => AreaSettings | undefined = createSelector(\n  [selectUnfilteredCartesianItems, pickAreaId],\n  (graphicalItems, id: GraphicalItemId) =>\n    graphicalItems.filter(item => item.type === 'area').find(item => item.id === id),\n);\n\nconst selectNumericalAxisType = (state: RechartsRootState): 'xAxis' | 'yAxis' => {\n  const layout = selectChartLayout(state);\n  const isXAxisCategorical = isCategoricalAxis(layout, 'xAxis');\n  return isXAxisCategorical ? 'yAxis' : 'xAxis';\n};\n\nconst selectNumericalAxisIdFromGraphicalItemId = (\n  state: RechartsRootState,\n  graphicalItemId: GraphicalItemId,\n): AxisId => {\n  const axisType = selectNumericalAxisType(state);\n  if (axisType === 'yAxis') {\n    return selectYAxisIdFromGraphicalItemId(state, graphicalItemId);\n  }\n  return selectXAxisIdFromGraphicalItemId(state, graphicalItemId);\n};\n\nconst selectNumericalAxisStackGroups = (\n  state: RechartsRootState,\n  graphicalItemId: GraphicalItemId,\n  isPanorama: boolean,\n): Record<StackId, StackGroup> | undefined =>\n  selectStackGroups(\n    state,\n    selectNumericalAxisType(state),\n    selectNumericalAxisIdFromGraphicalItemId(state, graphicalItemId),\n    isPanorama,\n  );\n\nexport const selectGraphicalItemStackedData: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => ReadonlyArray<StackDataPoint> | undefined = createSelector(\n  [selectSynchronisedAreaSettings, selectNumericalAxisStackGroups],\n  (areaSettings: AreaSettings | undefined, stackGroups: Record<StackId, StackGroup> | undefined) => {\n    if (areaSettings == null || stackGroups == null) {\n      return undefined;\n    }\n    const { stackId } = areaSettings;\n    const stackSeriesIdentifier: StackSeriesIdentifier | undefined = getStackSeriesIdentifier(areaSettings);\n    if (stackId == null || stackSeriesIdentifier == null) {\n      return undefined;\n    }\n    const groups: ReadonlyArray<StackSeries> | undefined = stackGroups[stackId]?.stackedData;\n    const found: StackSeries | undefined = groups?.find(v => v.key === stackSeriesIdentifier);\n    if (found == null) {\n      return undefined;\n    }\n    return found.map((item: SeriesPoint<StackDataPoint>): StackDataPoint => [item[0], item[1]]);\n  },\n);\n\nexport const selectArea: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => ComputedArea | undefined = createSelector(\n  [\n    selectChartLayout,\n    selectXAxisWithScale,\n    selectYAxisWithScale,\n    selectXAxisTicks,\n    selectYAxisTicks,\n    selectGraphicalItemStackedData,\n    selectChartDataWithIndexesIfNotInPanoramaPosition3,\n    selectBandSize,\n    selectSynchronisedAreaSettings,\n    selectChartBaseValue,\n  ],\n  (\n    layout,\n    xAxis,\n    yAxis,\n    xAxisTicks,\n    yAxisTicks,\n    stackedData: ReadonlyArray<StackDataPoint> | undefined,\n    { chartData, dataStartIndex, dataEndIndex },\n    bandSize,\n    areaSettings,\n    chartBaseValue,\n  ) => {\n    if (\n      areaSettings == null ||\n      (layout !== 'horizontal' && layout !== 'vertical') ||\n      xAxis == null ||\n      yAxis == null ||\n      xAxisTicks == null ||\n      yAxisTicks == null ||\n      xAxisTicks.length === 0 ||\n      yAxisTicks.length === 0 ||\n      bandSize == null\n    ) {\n      return undefined;\n    }\n    const { data } = areaSettings;\n\n    let displayedData: ChartData | undefined;\n    if (data && data.length > 0) {\n      displayedData = data;\n    } else {\n      displayedData = chartData?.slice(dataStartIndex, dataEndIndex + 1);\n    }\n\n    if (displayedData == null) {\n      return undefined;\n    }\n\n    return computeArea({\n      layout,\n      xAxis,\n      yAxis,\n      xAxisTicks,\n      yAxisTicks,\n      dataStartIndex,\n      areaSettings,\n      stackedData,\n      displayedData,\n      chartBaseValue,\n      bandSize,\n    });\n  },\n);\n","import * as React from 'react';\nimport {\n  ComponentType,\n  MutableRefObject,\n  PureComponent,\n  ReactNode,\n  useCallback,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport { clsx } from 'clsx';\nimport { Curve, CurveType, Props as CurveProps } from '../shape/Curve';\nimport { Layer } from '../container/Layer';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { Dots, DotsDotProps } from '../component/Dots';\nimport { Global } from '../util/Global';\nimport { interpolate, isNan, isNullish, isNumber, noop } from '../util/DataUtils';\nimport {\n  getCateCoordinateOfLine,\n  getNormalizedStackId,\n  getTooltipNameProp,\n  getValueByDataKey,\n  StackId,\n} from '../util/ChartUtils';\nimport {\n  ActiveDotType,\n  AnimationDuration,\n  AnimationTiming,\n  CartesianLayout,\n  DataKey,\n  DotType,\n  LegendType,\n  NullableCoordinate,\n  TickItem,\n  TooltipType,\n  TrapezoidViewBox,\n} from '../util/types';\nimport { isClipDot } from '../util/ReactUtils';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { BaseAxisWithScale } from '../state/selectors/axisSelectors';\nimport { ChartData } from '../state/chartDataSlice';\nimport { AreaPointItem, ComputedArea, selectArea } from '../state/selectors/areaSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { useCartesianChartLayout, useChartLayout } from '../context/chartLayoutContext';\nimport { useChartName } from '../state/selectors/selectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAppSelector } from '../state/hooks';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { usePlotArea } from '../hooks';\nimport { WithIdRequired, WithoutId } from '../util/useUniqueId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { AreaSettings } from '../state/types/AreaSettings';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { StackDataPoint } from '../util/stacks/stackTypes';\n\n/**\n * @inline\n */\nexport type BaseValue = number | 'dataMin' | 'dataMax';\n\n/**\n * Our base value array has payload in it, and we expose it externally too.\n */\ntype BaseValueCoordinate = NullableCoordinate & { payload: any };\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\ninterface InternalAreaProps extends ZIndexable {\n  activeDot: ActiveDotType;\n  animationBegin: number;\n  animationDuration: AnimationDuration;\n  animationEasing: AnimationTiming;\n  baseLine: number | ReadonlyArray<NullableCoordinate> | undefined;\n\n  baseValue?: BaseValue;\n  className?: string;\n  connectNulls: boolean;\n  data?: ChartData;\n  dataKey: DataKey<any>;\n  dot: DotType;\n  height: number;\n  hide: boolean;\n\n  /**\n   * ID is mandatory internally, but optional externally.\n   */\n  id: string;\n  isAnimationActive: boolean;\n  isRange?: boolean;\n  label?: ImplicitLabelListType;\n  layout: CartesianLayout;\n  left: number;\n\n  legendType: LegendType;\n  name?: string | number;\n  needClip: boolean;\n  onAnimationEnd?: () => void;\n  onAnimationStart?: () => void;\n\n  points: ReadonlyArray<AreaPointItem>;\n  stackId?: StackId;\n\n  tooltipType?: TooltipType;\n  top: number;\n  type?: CurveType;\n  unit?: string | number;\n  width: number;\n  xAxisId: string | number;\n  yAxisId: string | number;\n}\n\n/**\n * External props, intended for end users to fill in\n */\ninterface AreaProps extends ZIndexable {\n  /**\n   * The active dot is rendered on the closest data point when user interacts with the chart. Options:\n   *\n   * - `false`: dots do not change on user activity; both active and inactive dots follow the `dot` prop (see below)\n   * - `true`: renders the active dot with default settings\n   * - `object`: the props of the active dot. This will be merged with the internal calculated props of the active dot\n   * - `ReactElement`: the custom active dot element\n   * - `function`: a render function of the custom active dot\n   *\n   * @defaultValue true\n   * @example <Area dataKey=\"value\" activeDot={false} />\n   * @example <Area dataKey=\"value\" activeDot={{ stroke: 'red', strokeWidth: 2, r: 10 }} />\n   * @example <Area dataKey=\"value\" activeDot={CustomizedActiveDot} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/SimpleLineChart/ A line chart with customized active dot}\n   */\n  activeDot?: ActiveDotType;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue 'ease'\n   */\n  animationEasing?: AnimationTiming;\n  /**\n   * Baseline of the area:\n   * - number: uses the corresponding axis value as a flat baseline;\n   * - an array of coordinates: describes a custom baseline path.\n   */\n  baseLine?: number | ReadonlyArray<NullableCoordinate>;\n  baseValue?: BaseValue;\n  className?: string;\n\n  /**\n   * Whether to connect the area across null points.\n   *\n   * @defaultValue false\n   * @see {@link https://recharts.github.io/en-US/examples/AreaChartConnectNulls/ AreaChart with connectNull true and false}\n   */\n  connectNulls?: boolean;\n  data?: ChartData;\n  /**\n   * Decides how to extract the value of this Area from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Area.\n   */\n  dataKey: DataKey<any>;\n  /**\n   * Renders a circle element at each data point. Options:\n   *\n   * - `false`: no dots are drawn;\n   * - `true`: renders the dots with default settings;\n   * - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;\n   * - `ReactElement`: the custom dot element;\n   * - `function`: a render function of the custom dot.\n   *\n   * @defaultValue false\n   */\n  dot?: DotType;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`, and also to identify this element internally.\n   *\n   * If undefined, Recharts will generate a unique ID automatically.\n   */\n  id?: string;\n\n  /**\n   * If set false, animation of area will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue 'auto'\n   */\n  isAnimationActive?: boolean | 'auto';\n  isRange?: boolean;\n  /**\n   * Renders one label for each data point. Options:\n   *\n   * - `true`: renders default labels\n   * - `false`: no labels are rendered\n   * - `object`: the props of LabelList component\n   * - `ReactElement`: a custom label element\n   * - `function`: a render function of custom label\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelListType;\n  /**\n   * The type of icon in legend.\n   * If set to 'none', no legend item will be rendered.\n   * @defaultValue 'line'\n   */\n  legendType?: LegendType;\n\n  /**\n   * The name of data.\n   * This option will be used in tooltip and legend to represent this graphical item.\n   * If no value was set to this option, the value of dataKey will be used alternatively.\n   */\n  name?: string | number;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  /**\n   * When two Areas have the same axisId and same stackId, then the two Areas are stacked in the chart.\n   */\n  stackId?: StackId;\n  /**\n   * The stroke color. If \"none\", no line will be drawn.\n   * @defaultValue '#3182bd'\n   */\n  stroke?: string;\n  /**\n   * The width of the stroke\n   * @defaultValue 1\n   */\n  strokeWidth?: string | number;\n  tooltipType?: TooltipType;\n  /**\n   * The interpolation type of curve. Allows custom interpolation function.\n   *\n   * @defaultValue linear\n   * @link https://d3js.org/d3-shape/curve\n   * @see {@link https://recharts.github.io/en-US/examples/CardinalAreaChart/ An AreaChart which has two area with different interpolation.}\n   */\n  type?: CurveType;\n  /**\n   * The unit of data. This option will be used in tooltip.\n   */\n  unit?: string | number;\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: AxisId;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: AxisId;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 100\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\ntype AreaSvgProps = Omit<\n  CurveProps,\n  'points' | 'ref' | 'layout' | 'path' | 'pathRef' | 'baseLine' | 'dangerouslySetInnerHTML'\n>;\n\ntype InternalProps = AreaSvgProps & InternalAreaProps;\n\nexport type Props = AreaSvgProps & AreaProps;\n\nfunction getLegendItemColor(stroke: string | undefined, fill: string | undefined): string | undefined {\n  return stroke && stroke !== 'none' ? stroke : fill;\n}\n\nconst computeLegendPayloadFromAreaData = (props: Props): ReadonlyArray<LegendPayload> => {\n  const { dataKey, name, stroke, fill, legendType, hide } = props;\n  return [\n    {\n      inactive: hide,\n      dataKey,\n      type: legendType,\n      color: getLegendItemColor(stroke, fill),\n      value: getTooltipNameProp(name, dataKey),\n      payload: props,\n    },\n  ];\n};\n\nconst SetAreaTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    data,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    unit,\n    tooltipType,\n    id,\n  }: Pick<\n    WithIdRequired<Props>,\n    'dataKey' | 'data' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'unit' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: data,\n      getPosition: noop,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        nameKey: undefined,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: getLegendItemColor(stroke, fill),\n        unit,\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nfunction AreaDotsWrapper({\n  clipPathId,\n  points,\n  props,\n}: {\n  clipPathId: string;\n  points: ReadonlyArray<AreaPointItem>;\n  props: WithoutId<InternalProps>;\n}) {\n  const { needClip, dot, dataKey } = props;\n  const areaProps: DotsDotProps = svgPropertiesNoEvents(props);\n\n  return (\n    <Dots\n      points={points}\n      dot={dot}\n      className=\"recharts-area-dots\"\n      dotClassName=\"recharts-area-dot\"\n      dataKey={dataKey}\n      baseProps={areaProps}\n      needClip={needClip}\n      clipPathId={clipPathId}\n    />\n  );\n}\n\nfunction AreaLabelListProvider({\n  showLabels,\n  children,\n  points,\n}: {\n  showLabels: boolean;\n  children: ReactNode;\n  points: ReadonlyArray<AreaPointItem>;\n}) {\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> = points.map((point): CartesianLabelListEntry => {\n    const viewBox: TrapezoidViewBox = {\n      x: point.x ?? 0,\n      y: point.y ?? 0,\n      width: 0,\n      lowerWidth: 0,\n      upperWidth: 0,\n      height: 0,\n    };\n    return {\n      ...viewBox,\n      value: point.value,\n      payload: point.payload,\n      parentViewBox: undefined,\n      viewBox,\n      fill: undefined,\n    };\n  });\n\n  return (\n    <CartesianLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </CartesianLabelListContextProvider>\n  );\n}\n\nfunction StaticArea({\n  points,\n  baseLine,\n  needClip,\n  clipPathId,\n  props,\n}: {\n  points: ReadonlyArray<AreaPointItem>;\n  baseLine: Props['baseLine'];\n  needClip: boolean;\n  clipPathId: string;\n  props: InternalProps;\n}) {\n  const { layout, type, stroke, connectNulls, isRange } = props;\n\n  const { id, ...propsWithoutId } = props;\n  const allOtherProps = svgPropertiesNoEvents(propsWithoutId);\n  const propsWithEvents = svgPropertiesAndEvents(propsWithoutId);\n\n  return (\n    <>\n      {points?.length > 1 && (\n        <Layer clipPath={needClip ? `url(#clipPath-${clipPathId})` : undefined}>\n          <Curve\n            {...propsWithEvents}\n            id={id}\n            points={points}\n            connectNulls={connectNulls}\n            type={type}\n            baseLine={baseLine}\n            layout={layout}\n            stroke=\"none\"\n            className=\"recharts-area-area\"\n          />\n          {stroke !== 'none' && (\n            <Curve\n              {...allOtherProps}\n              className=\"recharts-area-curve\"\n              layout={layout}\n              type={type}\n              connectNulls={connectNulls}\n              fill=\"none\"\n              points={points}\n            />\n          )}\n          {stroke !== 'none' && isRange && (\n            <Curve\n              {...allOtherProps}\n              className=\"recharts-area-curve\"\n              layout={layout}\n              type={type}\n              connectNulls={connectNulls}\n              fill=\"none\"\n              points={baseLine as NullableCoordinate[]}\n            />\n          )}\n        </Layer>\n      )}\n      <AreaDotsWrapper points={points} props={propsWithoutId} clipPathId={clipPathId} />\n    </>\n  );\n}\n\nfunction VerticalRect({\n  alpha,\n  baseLine,\n  points,\n  strokeWidth,\n}: {\n  alpha: number;\n  points: ReadonlyArray<AreaPointItem>;\n  baseLine: Props['baseLine'];\n  strokeWidth: Props['strokeWidth'];\n}) {\n  const startY = points[0]?.y;\n  const endY = points[points.length - 1]?.y;\n  if (!isWellBehavedNumber(startY) || !isWellBehavedNumber(endY)) {\n    return null;\n  }\n  const height = alpha * Math.abs(startY - endY);\n  let maxX = Math.max(...points.map(entry => entry.x || 0));\n\n  if (isNumber(baseLine)) {\n    maxX = Math.max(baseLine, maxX);\n  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n    maxX = Math.max(...baseLine.map(entry => entry.x || 0), maxX);\n  }\n\n  if (isNumber(maxX)) {\n    return (\n      <rect\n        x={0}\n        y={startY < endY ? startY : startY - height}\n        width={maxX + (strokeWidth ? parseInt(`${strokeWidth}`, 10) : 1)}\n        height={Math.floor(height)}\n      />\n    );\n  }\n\n  return null;\n}\n\nfunction HorizontalRect({\n  alpha,\n  baseLine,\n  points,\n  strokeWidth,\n}: {\n  alpha: number;\n  points: ReadonlyArray<AreaPointItem>;\n  baseLine: Props['baseLine'];\n  strokeWidth: Props['strokeWidth'];\n}) {\n  const startX = points[0]?.x;\n  const endX = points[points.length - 1]?.x;\n  if (!isWellBehavedNumber(startX) || !isWellBehavedNumber(endX)) {\n    return null;\n  }\n  const width = alpha * Math.abs(startX - endX);\n  let maxY = Math.max(...points.map(entry => entry.y || 0));\n\n  if (isNumber(baseLine)) {\n    maxY = Math.max(baseLine, maxY);\n  } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n    maxY = Math.max(...baseLine.map(entry => entry.y || 0), maxY);\n  }\n\n  if (isNumber(maxY)) {\n    return (\n      <rect\n        x={startX < endX ? startX : startX - width}\n        y={0}\n        width={width}\n        height={Math.floor(maxY + (strokeWidth ? parseInt(`${strokeWidth}`, 10) : 1))}\n      />\n    );\n  }\n\n  return null;\n}\n\nfunction ClipRect({\n  alpha,\n  layout,\n  points,\n  baseLine,\n  strokeWidth,\n}: {\n  alpha: number;\n  layout: CartesianLayout;\n  points: ReadonlyArray<AreaPointItem>;\n  baseLine: Props['baseLine'];\n  strokeWidth: Props['strokeWidth'];\n}) {\n  if (layout === 'vertical') {\n    return <VerticalRect alpha={alpha} points={points} baseLine={baseLine} strokeWidth={strokeWidth} />;\n  }\n\n  return <HorizontalRect alpha={alpha} points={points} baseLine={baseLine} strokeWidth={strokeWidth} />;\n}\n\nfunction AreaWithAnimation({\n  needClip,\n  clipPathId,\n  props,\n  previousPointsRef,\n  previousBaselineRef,\n}: {\n  needClip: boolean;\n  clipPathId: string;\n  props: InternalProps;\n  previousPointsRef: MutableRefObject<ReadonlyArray<AreaPointItem> | null>;\n  previousBaselineRef: MutableRefObject<InternalProps['baseLine'] | null>;\n}) {\n  const {\n    points,\n    baseLine,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    onAnimationStart,\n    onAnimationEnd,\n  } = props;\n  const animationInput = useMemo(() => ({ points, baseLine }), [points, baseLine]);\n  const animationId = useAnimationId(animationInput, 'recharts-area-');\n  const layout = useCartesianChartLayout();\n\n  const [isAnimating, setIsAnimating] = useState(false);\n  const showLabels = !isAnimating;\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n\n  if (layout == null) {\n    return null;\n  }\n\n  const prevPoints = previousPointsRef.current;\n  const prevBaseLine = previousBaselineRef.current;\n  return (\n    <AreaLabelListProvider showLabels={showLabels} points={points}>\n      {props.children}\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        onAnimationEnd={handleAnimationEnd}\n        onAnimationStart={handleAnimationStart}\n        key={animationId}\n      >\n        {(t: number) => {\n          if (prevPoints) {\n            const prevPointsDiffFactor = prevPoints.length / points.length;\n            const stepPoints: ReadonlyArray<AreaPointItem> =\n              /*\n               * Here it is important that at the very end of the animation, on the last frame,\n               * we render the original points without any interpolation.\n               * This is needed because the code above is checking for reference equality to decide if the animation should run\n               * and if we create a new array instance (even if the numbers were the same)\n               * then we would break animations.\n               */\n              t === 1\n                ? points\n                : points.map((entry, index): AreaPointItem => {\n                    const prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n                    if (prevPoints[prevPointIndex]) {\n                      const prev: AreaPointItem = prevPoints[prevPointIndex];\n\n                      return { ...entry, x: interpolate(prev.x, entry.x, t), y: interpolate(prev.y, entry.y, t) };\n                    }\n\n                    return entry;\n                  });\n            let stepBaseLine: number | ReadonlyArray<NullableCoordinate>;\n\n            if (isNumber(baseLine)) {\n              stepBaseLine = interpolate(prevBaseLine, baseLine, t);\n            } else if (isNullish(baseLine) || isNan(baseLine)) {\n              stepBaseLine = interpolate(prevBaseLine, 0, t);\n            } else {\n              stepBaseLine = baseLine.map((entry, index) => {\n                const prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n                if (Array.isArray(prevBaseLine) && prevBaseLine[prevPointIndex]) {\n                  const prev = prevBaseLine[prevPointIndex];\n\n                  return { ...entry, x: interpolate(prev.x, entry.x, t), y: interpolate(prev.y, entry.y, t) };\n                }\n\n                return entry;\n              });\n            }\n\n            if (t > 0) {\n              /*\n               * We need to keep the refs in the parent component because we need to remember the last shape of the animation\n               * even if AreaWithAnimation is unmounted as that happens when changing props.\n               *\n               * And we need to update the refs here because here is where the interpolation is computed.\n               * Eslint doesn't like changing function arguments, but we need it so here is an eslint-disable.\n               */\n              // eslint-disable-next-line no-param-reassign\n              previousPointsRef.current = stepPoints;\n              // eslint-disable-next-line no-param-reassign\n              previousBaselineRef.current = stepBaseLine;\n            }\n            return (\n              <StaticArea\n                points={stepPoints}\n                baseLine={stepBaseLine}\n                needClip={needClip}\n                clipPathId={clipPathId}\n                props={props}\n              />\n            );\n          }\n\n          if (t > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousPointsRef.current = points;\n            // eslint-disable-next-line no-param-reassign\n            previousBaselineRef.current = baseLine;\n          }\n          return (\n            <Layer>\n              {isAnimationActive && (\n                <defs>\n                  <clipPath id={`animationClipPath-${clipPathId}`}>\n                    <ClipRect\n                      alpha={t}\n                      points={points}\n                      baseLine={baseLine}\n                      layout={layout}\n                      strokeWidth={props.strokeWidth}\n                    />\n                  </clipPath>\n                </defs>\n              )}\n              <Layer clipPath={`url(#animationClipPath-${clipPathId})`}>\n                <StaticArea\n                  points={points}\n                  baseLine={baseLine}\n                  needClip={needClip}\n                  clipPathId={clipPathId}\n                  props={props}\n                />\n              </Layer>\n            </Layer>\n          );\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n    </AreaLabelListProvider>\n  );\n}\n\n/*\n * This components decides if the area should be animated or not.\n * It also holds the state of the animation.\n */\nfunction RenderArea({ needClip, clipPathId, props }: { needClip: boolean; clipPathId: string; props: InternalProps }) {\n  /*\n   * These two must be refs, not state!\n   * Because we want to store the most recent shape of the animation in case we have to interrupt the animation;\n   * that happens when user initiates another animation before the current one finishes.\n   *\n   * If this was a useState, then every step in the animation would trigger a re-render.\n   * So, useRef it is.\n   */\n  const previousPointsRef = useRef<ReadonlyArray<AreaPointItem> | null>(null);\n  const previousBaselineRef = useRef<InternalProps['baseLine'] | null>();\n\n  return (\n    <AreaWithAnimation\n      needClip={needClip}\n      clipPathId={clipPathId}\n      props={props}\n      previousPointsRef={previousPointsRef}\n      previousBaselineRef={previousBaselineRef}\n    />\n  );\n}\n\nclass AreaWithState extends PureComponent<InternalProps> {\n  render() {\n    const { hide, dot, points, className, top, left, needClip, xAxisId, yAxisId, width, height, id, baseLine, zIndex } =\n      this.props;\n\n    if (hide) {\n      return null;\n    }\n\n    const layerClass = clsx('recharts-area', className);\n    const clipPathId = id;\n    const { r, strokeWidth } = getRadiusAndStrokeWidthFromDot(dot);\n    const clipDot = isClipDot(dot);\n    const dotSize = r * 2 + strokeWidth;\n    const activePointsClipPath = needClip ? `url(#clipPath-${clipDot ? '' : 'dots-'}${clipPathId})` : undefined;\n\n    return (\n      <ZIndexLayer zIndex={zIndex}>\n        <Layer className={layerClass}>\n          {needClip && (\n            <defs>\n              <GraphicalItemClipPath clipPathId={clipPathId} xAxisId={xAxisId} yAxisId={yAxisId} />\n              {!clipDot && (\n                <clipPath id={`clipPath-dots-${clipPathId}`}>\n                  <rect\n                    x={left - dotSize / 2}\n                    y={top - dotSize / 2}\n                    width={width + dotSize}\n                    height={height + dotSize}\n                  />\n                </clipPath>\n              )}\n            </defs>\n          )}\n          <RenderArea needClip={needClip} clipPathId={clipPathId} props={this.props} />\n        </Layer>\n        <ActivePoints\n          points={points}\n          mainColor={getLegendItemColor(this.props.stroke, this.props.fill)}\n          itemDataKey={this.props.dataKey}\n          activeDot={this.props.activeDot}\n          clipPath={activePointsClipPath}\n        />\n        {this.props.isRange && Array.isArray(baseLine) && (\n          <ActivePoints\n            points={baseLine}\n            mainColor={getLegendItemColor(this.props.stroke, this.props.fill)}\n            itemDataKey={this.props.dataKey}\n            activeDot={this.props.activeDot}\n            clipPath={activePointsClipPath}\n          />\n        )}\n      </ZIndexLayer>\n    );\n  }\n}\n\nexport const defaultAreaProps = {\n  activeDot: true,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  connectNulls: false,\n  dot: false,\n  fill: '#3182bd',\n  fillOpacity: 0.6,\n  hide: false,\n  isAnimationActive: 'auto',\n  legendType: 'line',\n  stroke: '#3182bd',\n  strokeWidth: 1,\n  type: 'linear',\n  label: false,\n  xAxisId: 0,\n  yAxisId: 0,\n  zIndex: DefaultZIndexes.area,\n} as const satisfies Partial<Props>;\n\nfunction AreaImpl(props: WithIdRequired<Props>) {\n  const {\n    activeDot,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    connectNulls,\n    dot,\n    fill,\n    fillOpacity,\n    hide,\n    isAnimationActive,\n    legendType,\n    stroke,\n    xAxisId,\n    yAxisId,\n    ...everythingElse\n  } = resolveDefaultProps(props, defaultAreaProps);\n  const layout = useChartLayout();\n  const chartName = useChartName();\n  const { needClip } = useNeedsClip(xAxisId, yAxisId);\n  const isPanorama = useIsPanorama();\n\n  const { points, isRange, baseLine } = useAppSelector(state => selectArea(state, props.id, isPanorama)) ?? {};\n  const plotArea = usePlotArea();\n\n  if ((layout !== 'horizontal' && layout !== 'vertical') || plotArea == null) {\n    // Can't render Area in an unsupported layout\n    return null;\n  }\n\n  if (chartName !== 'AreaChart' && chartName !== 'ComposedChart') {\n    // There is nothing stopping us from rendering Area in other charts, except for historical reasons. Do we want to allow that?\n    return null;\n  }\n\n  const { height, width, x: left, y: top } = plotArea;\n\n  if (!points || !points.length) {\n    return null;\n  }\n\n  return (\n    <AreaWithState\n      {...everythingElse}\n      activeDot={activeDot}\n      animationBegin={animationBegin}\n      animationDuration={animationDuration}\n      animationEasing={animationEasing}\n      baseLine={baseLine}\n      connectNulls={connectNulls}\n      dot={dot}\n      fill={fill}\n      fillOpacity={fillOpacity}\n      height={height}\n      hide={hide}\n      layout={layout}\n      isAnimationActive={isAnimationActive === 'auto' ? !Global.isSsr : isAnimationActive}\n      isRange={isRange}\n      legendType={legendType}\n      needClip={needClip}\n      points={points}\n      stroke={stroke}\n      width={width}\n      left={left}\n      top={top}\n      xAxisId={xAxisId}\n      yAxisId={yAxisId}\n    />\n  );\n}\n\nexport const getBaseValue = (\n  layout: 'horizontal' | 'vertical',\n  chartBaseValue: BaseValue | undefined,\n  itemBaseValue: BaseValue | undefined,\n  xAxis: BaseAxisWithScale,\n  yAxis: BaseAxisWithScale,\n): number => {\n  // The baseValue can be defined both on the AreaChart, and on the Area.\n  // The value for the item takes precedence.\n  const baseValue: BaseValue | undefined = itemBaseValue ?? chartBaseValue;\n\n  if (isNumber(baseValue)) {\n    return baseValue;\n  }\n\n  const numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n  // @ts-expect-error d3scale .domain() returns unknown, Math.max expects number\n  const domain: [number, number] = numericAxis.scale.domain();\n\n  if (numericAxis.type === 'number') {\n    const domainMax = Math.max(domain[0], domain[1]);\n    const domainMin = Math.min(domain[0], domain[1]);\n\n    if (baseValue === 'dataMin') {\n      return domainMin;\n    }\n    if (baseValue === 'dataMax') {\n      return domainMax;\n    }\n\n    return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n  }\n\n  if (baseValue === 'dataMin') {\n    return domain[0];\n  }\n  if (baseValue === 'dataMax') {\n    return domain[1];\n  }\n\n  return domain[0];\n};\n\nexport function computeArea({\n  areaSettings: { connectNulls, baseValue: itemBaseValue, dataKey },\n  stackedData,\n  layout,\n  chartBaseValue,\n  xAxis,\n  yAxis,\n  displayedData,\n  dataStartIndex,\n  xAxisTicks,\n  yAxisTicks,\n  bandSize,\n}: {\n  areaSettings: AreaSettings;\n  stackedData: ReadonlyArray<StackDataPoint> | undefined;\n  layout: 'horizontal' | 'vertical';\n  chartBaseValue: BaseValue | undefined;\n  xAxis: BaseAxisWithScale;\n  yAxis: BaseAxisWithScale;\n  displayedData: ChartData;\n  dataStartIndex: number;\n  xAxisTicks: TickItem[];\n  yAxisTicks: TickItem[];\n  bandSize: number;\n}): ComputedArea {\n  const hasStack = stackedData && stackedData.length;\n  const baseValue = getBaseValue(layout, chartBaseValue, itemBaseValue, xAxis, yAxis);\n  const isHorizontalLayout = layout === 'horizontal';\n  let isRange = false;\n\n  const points: ReadonlyArray<AreaPointItem> = displayedData.map((entry, index): AreaPointItem => {\n    let valueAsArray: [number, number] | undefined;\n\n    if (hasStack) {\n      valueAsArray = stackedData[dataStartIndex + index];\n    } else {\n      const rawValue = getValueByDataKey(entry, dataKey);\n\n      if (!Array.isArray(rawValue)) {\n        // @ts-expect-error getValueByDataKey is not checking its return value\n        valueAsArray = [baseValue, rawValue];\n      } else {\n        // @ts-expect-error getValueByDataKey is not checking its return value\n        valueAsArray = rawValue;\n        isRange = true;\n      }\n    }\n\n    const value1 = valueAsArray?.[1] ?? null;\n\n    const isBreakPoint = value1 == null || (hasStack && !connectNulls && getValueByDataKey(entry, dataKey) == null);\n\n    if (isHorizontalLayout) {\n      return {\n        x: getCateCoordinateOfLine({ axis: xAxis, ticks: xAxisTicks, bandSize, entry, index }),\n        y: isBreakPoint ? null : (yAxis.scale.map(value1) ?? null),\n        value: valueAsArray,\n        payload: entry,\n      };\n    }\n\n    return {\n      x: isBreakPoint ? null : (xAxis.scale.map(value1) ?? null),\n      y: getCateCoordinateOfLine({ axis: yAxis, ticks: yAxisTicks, bandSize, entry, index }),\n      value: valueAsArray,\n      payload: entry,\n    };\n  });\n\n  let baseLine: number | NullableCoordinate[] | undefined;\n  if (hasStack || isRange) {\n    baseLine = points.map((entry: AreaPointItem): BaseValueCoordinate => {\n      const x = Array.isArray(entry.value) ? entry.value[0] : null;\n      if (isHorizontalLayout) {\n        return {\n          x: entry.x,\n          y: x != null && entry.y != null ? (yAxis.scale.map(x) ?? null) : null,\n          payload: entry.payload,\n        };\n      }\n      return {\n        x: x != null ? (xAxis.scale.map(x) ?? null) : null,\n        y: entry.y,\n        payload: entry.payload,\n      };\n    });\n  } else {\n    baseLine = isHorizontalLayout ? yAxis.scale.map(baseValue) : xAxis.scale.map(baseValue);\n  }\n\n  return {\n    points,\n    baseLine: baseLine ?? 0,\n    isRange,\n  };\n}\n\nfunction AreaFn(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultAreaProps);\n  const isPanorama = useIsPanorama();\n  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"area\">\n      {id => (\n        <>\n          <SetLegendPayload legendPayload={computeLegendPayloadFromAreaData(props)} />\n          <SetAreaTooltipEntrySettings\n            dataKey={props.dataKey}\n            data={props.data}\n            stroke={props.stroke}\n            strokeWidth={props.strokeWidth}\n            fill={props.fill}\n            name={props.name}\n            hide={props.hide}\n            unit={props.unit}\n            tooltipType={props.tooltipType}\n            id={id}\n          />\n          <SetCartesianGraphicalItem\n            type=\"area\"\n            id={id}\n            data={props.data}\n            dataKey={props.dataKey}\n            xAxisId={props.xAxisId}\n            yAxisId={props.yAxisId}\n            zAxisId={0}\n            stackId={getNormalizedStackId(props.stackId)}\n            hide={props.hide}\n            barSize={undefined}\n            baseValue={props.baseValue}\n            isPanorama={isPanorama}\n            connectNulls={props.connectNulls}\n          />\n          <AreaImpl {...props} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\n/**\n * @provides LabelListContext\n * @consumes CartesianChartContext\n */\nexport const Area: ComponentType<Props> = React.memo(AreaFn, propsAreEqual);\nArea.displayName = 'Area';\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n    if (condition) {\n        return;\n    }\n    if (isProduction) {\n        throw new Error(prefix);\n    }\n    var provided = typeof message === 'function' ? message() : message;\n    var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n    throw new Error(value);\n}\n\nexport { invariant as default };\n","import * as React from 'react';\nimport invariant from 'tiny-invariant';\nimport { ActiveShape, DataKey } from './types';\nimport { Props as RectangleProps } from '../shape/Rectangle';\nimport { BarShapeProps } from '../cartesian/Bar';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\n\nexport type BarRectangleProps = {\n  option: ActiveShape<BarShapeProps, SVGPathElement> | undefined;\n  isActive: boolean;\n  onMouseEnter?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n  onMouseLeave?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n  onClick?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n  width?: number;\n  height?: number;\n  index: number;\n  dataKey: DataKey<any> | undefined;\n} & Omit<RectangleProps, 'onAnimationStart' | 'onAnimationEnd'>;\n\nexport function BarRectangle(props: BarRectangleProps) {\n  return <Shape shapeType=\"rectangle\" activeClassName=\"recharts-active-bar\" {...props} />;\n}\n\nexport type MinPointSize = number | ((value: number | undefined | null, index: number) => number);\n\n/**\n * Safely gets minPointSize from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport const minPointSizeCallback =\n  (minPointSize: MinPointSize, defaultValue = 0) =>\n  (value: unknown, index: number): number => {\n    if (isNumber(minPointSize)) return minPointSize;\n    const isValueNumberOrNil = isNumber(value) || isNullish(value);\n    if (isValueNumberOrNil) {\n      return minPointSize(value, index);\n    }\n\n    invariant(\n      isValueNumberOrNil,\n      `minPointSize callback function received a value with type of ${typeof value}. Currently only numbers or null/undefined are supported.`,\n    );\n    return defaultValue;\n  };\n","import { createSelector } from 'reselect';\nimport { ReactElement } from 'react';\nimport { Series } from 'victory-vendor/d3-shape';\nimport { RechartsRootState } from '../store';\nimport {\n  BaseAxisWithScale,\n  selectAxisWithScale,\n  selectCartesianAxisSize,\n  selectStackGroups,\n  selectTicksOfGraphicalItem,\n  selectUnfilteredCartesianItems,\n} from './axisSelectors';\nimport { isNullish } from '../../util/DataUtils';\nimport { BarPositionPosition, getBandSizeOfAxis, StackId } from '../../util/ChartUtils';\nimport { CartesianViewBoxRequired, ChartOffsetInternal, DataKey, LayoutType, TickItem } from '../../util/types';\nimport { BarRectangleItem, computeBarRectangles } from '../../cartesian/Bar';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { ChartData } from '../chartDataSlice';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';\nimport { AllStackGroups, StackDataPoint, StackSeriesIdentifier } from '../../util/stacks/stackTypes';\nimport { BarSettings } from '../types/BarSettings';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\nimport { BarCategory, combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\nimport { combineBarPosition } from './combiners/combineBarPosition';\n\nconst pickIsPanorama = (_state: RechartsRootState, _id: GraphicalItemId, isPanorama: boolean): boolean => isPanorama;\n\nconst pickBarId = (_state: RechartsRootState, id: GraphicalItemId): GraphicalItemId => id;\n\nconst selectSynchronisedBarSettings: (state: RechartsRootState, id: GraphicalItemId) => BarSettings | undefined =\n  createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id: GraphicalItemId) =>\n    graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id),\n  );\n\nexport const selectMaxBarSize: (_state: RechartsRootState, id: GraphicalItemId) => number | undefined = createSelector(\n  [selectSynchronisedBarSettings],\n  (barSettings: BarSettings | undefined) => barSettings?.maxBarSize,\n);\n\nconst pickCells = (\n  _state: RechartsRootState,\n  _id: GraphicalItemId,\n  _isPanorama: boolean,\n  cells: ReadonlyArray<ReactElement> | undefined,\n): ReadonlyArray<ReactElement> | undefined => cells;\n\nexport const selectAllVisibleBars: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => ReadonlyArray<BarSettings> = createSelector(\n  [\n    selectChartLayout,\n    selectUnfilteredCartesianItems,\n    selectXAxisIdFromGraphicalItemId,\n    selectYAxisIdFromGraphicalItemId,\n    pickIsPanorama,\n  ],\n  (layout: LayoutType, allItems, xAxisId, yAxisId, isPanorama) =>\n    allItems\n      .filter(i => {\n        if (layout === 'horizontal') {\n          return i.xAxisId === xAxisId;\n        }\n        return i.yAxisId === yAxisId;\n      })\n      .filter(i => i.isPanorama === isPanorama)\n      .filter(i => i.hide === false)\n      .filter(i => i.type === 'bar'),\n);\n\nexport type SizeList = ReadonlyArray<BarCategory>;\n\nconst selectBarStackGroups = (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n): AllStackGroups | undefined => {\n  const layout = selectChartLayout(state);\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null || yAxisId == null) {\n    return undefined;\n  }\n  if (layout === 'horizontal') {\n    return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);\n  }\n  return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);\n};\n\nexport const selectBarCartesianAxisSize = (state: RechartsRootState, id: GraphicalItemId) => {\n  const layout = selectChartLayout(state);\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null || yAxisId == null) {\n    return undefined;\n  }\n  if (layout === 'horizontal') {\n    return selectCartesianAxisSize(state, 'xAxis', xAxisId);\n  }\n  return selectCartesianAxisSize(state, 'yAxis', yAxisId);\n};\n\nexport const selectBarSizeList: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => SizeList =\n  createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);\n\nexport const selectBarBandSize: (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => number = (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n): number => {\n  const barSettings: BarSettings | undefined = selectSynchronisedBarSettings(state, id);\n  if (barSettings == null) {\n    return 0;\n  }\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null || yAxisId == null) {\n    return 0;\n  }\n  const layout = selectChartLayout(state);\n  const globalMaxBarSize: number | undefined = selectRootMaxBarSize(state);\n  const { maxBarSize: childMaxBarSize } = barSettings;\n  const maxBarSize: number | undefined = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n  let axis: BaseAxisWithScale | undefined, ticks: ReadonlyArray<TickItem> | undefined;\n  if (layout === 'horizontal') {\n    axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n    ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n  } else {\n    axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n    ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n  }\n  return getBandSizeOfAxis(axis, ticks, true) ?? maxBarSize ?? 0;\n};\n\nexport const selectAxisBandSize = (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n): number | undefined => {\n  const layout = selectChartLayout(state);\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null || yAxisId == null) {\n    return undefined;\n  }\n  let axis: BaseAxisWithScale | undefined, ticks: ReadonlyArray<TickItem> | undefined;\n  if (layout === 'horizontal') {\n    axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n    ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n  } else {\n    axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n    ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n  }\n  return getBandSizeOfAxis(axis, ticks);\n};\n\nexport type BarWithPosition = {\n  stackId: StackId | undefined;\n  /**\n   * List of dataKeys of items stacked at this position.\n   * All of these Bars are either sharing the same stackId,\n   * or this is an array with one Bar because it has no stackId defined.\n   *\n   * This structure limits us to having one dataKey only once per stack which I think is reasonable.\n   * People who want to have the same data twice can duplicate their data to have two distinct dataKeys.\n   */\n  dataKeys: ReadonlyArray<DataKey<any>>;\n  /**\n   * Position of this stack in absolute pixels measured from the start of the chart\n   */\n  position: BarPositionPosition;\n};\n\nexport const selectAllBarPositions: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => ReadonlyArray<BarWithPosition> | undefined = createSelector(\n  [\n    selectBarSizeList,\n    selectRootMaxBarSize,\n    selectBarGap,\n    selectBarCategoryGap,\n    selectBarBandSize,\n    selectAxisBandSize,\n    selectMaxBarSize,\n  ],\n  combineAllBarPositions,\n);\n\nconst selectXAxisWithScale = (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => {\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null) {\n    return undefined;\n  }\n  return selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n};\n\nconst selectYAxisWithScale = (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => {\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (yAxisId == null) {\n    return undefined;\n  }\n  return selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n};\n\nconst selectXAxisTicks = (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => {\n  const xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n  if (xAxisId == null) {\n    return undefined;\n  }\n  return selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n};\n\nconst selectYAxisTicks = (state: RechartsRootState, id: GraphicalItemId, isPanorama: boolean) => {\n  const yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n  if (yAxisId == null) {\n    return undefined;\n  }\n  return selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n};\n\nexport const selectBarPosition: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => BarPositionPosition | undefined = createSelector(\n  [selectAllBarPositions, selectSynchronisedBarSettings],\n  combineBarPosition,\n);\n\nexport const selectStackedDataOfItem: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n) => Series<StackDataPoint, StackSeriesIdentifier> | undefined = createSelector(\n  [selectBarStackGroups, selectSynchronisedBarSettings],\n  combineStackedData,\n);\n\nexport const selectBarRectangles: (\n  state: RechartsRootState,\n  id: GraphicalItemId,\n  isPanorama: boolean,\n  cells: ReadonlyArray<ReactElement> | undefined,\n) => ReadonlyArray<BarRectangleItem> | undefined = createSelector(\n  [\n    selectChartOffsetInternal,\n    selectAxisViewBox,\n    selectXAxisWithScale,\n    selectYAxisWithScale,\n    selectXAxisTicks,\n    selectYAxisTicks,\n    selectBarPosition,\n    selectChartLayout,\n    selectChartDataWithIndexesIfNotInPanoramaPosition3,\n    selectAxisBandSize,\n    selectStackedDataOfItem,\n    selectSynchronisedBarSettings,\n    pickCells,\n  ],\n  (\n    offset: ChartOffsetInternal,\n    axisViewBox: CartesianViewBoxRequired,\n    xAxis: BaseAxisWithScale | undefined,\n    yAxis: BaseAxisWithScale | undefined,\n    xAxisTicks,\n    yAxisTicks,\n    pos: BarPositionPosition | undefined,\n    layout: LayoutType,\n    { chartData, dataStartIndex, dataEndIndex },\n    bandSize,\n    stackedData,\n    barSettings: BarSettings | undefined,\n    cells,\n  ): ReadonlyArray<BarRectangleItem> | undefined => {\n    if (\n      barSettings == null ||\n      pos == null ||\n      axisViewBox == null ||\n      (layout !== 'horizontal' && layout !== 'vertical') ||\n      xAxis == null ||\n      yAxis == null ||\n      xAxisTicks == null ||\n      yAxisTicks == null ||\n      bandSize == null\n    ) {\n      return undefined;\n    }\n    const { data } = barSettings;\n\n    let displayedData: ChartData | undefined;\n    if (data != null && data.length > 0) {\n      displayedData = data;\n    } else {\n      displayedData = chartData?.slice(dataStartIndex, dataEndIndex + 1);\n    }\n\n    if (displayedData == null) {\n      return undefined;\n    }\n\n    return computeBarRectangles({\n      layout,\n      barSettings,\n      pos,\n      parentViewBox: axisViewBox,\n      bandSize,\n      xAxis,\n      yAxis,\n      xAxisTicks,\n      yAxisTicks,\n      stackedData,\n      displayedData,\n      offset,\n      cells,\n      dataStartIndex,\n    });\n  },\n);\n","import * as React from 'react';\nimport {\n  ComponentType,\n  Key,\n  MutableRefObject,\n  PureComponent,\n  ReactElement,\n  ReactNode,\n  useCallback,\n  useRef,\n  useState,\n} from 'react';\nimport { clsx } from 'clsx';\nimport { Series } from 'victory-vendor/d3-shape';\nimport { Props as RectangleProps, RectRadius } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBarDataItem, ErrorBarDataPointFormatter } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { interpolate, isNan, mathSign, noop } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport {\n  BarPositionPosition,\n  getBaseValueOfBar,\n  getCateCoordinateOfBar,\n  getTooltipNameProp,\n  getValueByDataKey,\n  StackId,\n  truncateByDomain,\n} from '../util/ChartUtils';\nimport {\n  ActiveShape,\n  adaptEventsOfChild,\n  AnimationDuration,\n  CartesianViewBoxRequired,\n  ChartOffsetInternal,\n  Coordinate,\n  DataKey,\n  LegendType,\n  PresentationAttributesAdaptChildEvent,\n  TickItem,\n  TooltipType,\n  TrapezoidViewBox,\n} from '../util/types';\nimport { BarRectangle, BarRectangleProps, MinPointSize, minPointSizeCallback } from '../util/BarUtils';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport {\n  useMouseClickItemDispatch,\n  useMouseEnterItemDispatch,\n  useMouseLeaveItemDispatch,\n} from '../context/tooltipContext';\nimport { TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { selectBarRectangles } from '../state/selectors/barSelectors';\nimport { BaseAxisWithScale } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { BarSettings } from '../state/types/BarSettings';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport {\n  svgPropertiesNoEvents,\n  svgPropertiesNoEventsFromUnknown,\n  SVGPropsNoEvents,\n} from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { EasingInput } from '../animation/easing';\nimport { WithoutId } from '../util/useUniqueId';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { BarStackClipLayer, useStackId } from './BarStack';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\nimport { ChartData } from '../state/chartDataSlice';\n\ntype BarRectangleType = {\n  x: number | null;\n  y: number | null;\n  width: number;\n  height: number;\n};\n\nexport interface BarRectangleItem extends RectangleProps {\n  value: number | [number, number];\n  /** the coordinate of background rectangle */\n  background?: BarRectangleType;\n  tooltipPosition: Coordinate;\n  readonly payload?: any;\n  parentViewBox: CartesianViewBoxRequired;\n  // These are inherited from RectangleProps, but we need to redefine them here and make non-nullable\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  /**\n   * Chart range coordinate of the baseValue of the first bar in a stack.\n   */\n  stackedBarStart: number;\n}\n\nexport type BarShapeProps = BarRectangleItem & {\n  isActive: boolean;\n  index: number;\n  option?: ActiveShape<BarShapeProps, SVGPathElement> | undefined;\n};\n\nexport interface BarProps extends ZIndexable {\n  className?: string;\n  index?: Key;\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   *\n   * @defaultValue 0\n   */\n  xAxisId?: AxisId;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   *\n   * @defaultValue 0\n   */\n  yAxisId?: AxisId;\n  /**\n   * When two Bars have the same axisId and same stackId, then the two Bars are stacked in the chart.\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/StackedBarChart/ Stacked bar chart example}\n   * @see {@link https://recharts.github.io/en-US/examples/MixBarChart/ Chart with both stacked and non-stacked bars}\n   * @see {@link BarStack}\n   */\n  stackId?: StackId;\n  /**\n   * The width or height of each bar. If the barSize is not specified, the size of bar will be calculated by the barCategoryGap, barGap and the quantity of bar groups.\n   */\n  barSize?: string | number;\n  /**\n   * The unit of data. This option will be used in tooltip.\n   */\n  unit?: string | number;\n  /**\n   * The name of data.\n   * This option will be used in tooltip and legend to represent a bar.\n   * If no value was set to this option, the value of dataKey will be used alternatively.\n   */\n  name?: string | number;\n  /**\n   * Decides how to extract the value of this Bar from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Bar.\n   */\n  dataKey?: DataKey<any>;\n  tooltipType?: TooltipType;\n  /**\n   * The type of icon in legend. If set to 'none', no legend item will be rendered.\n   *\n   * @defaultValue rect\n   */\n  legendType?: LegendType;\n  /**\n   * The minimal height of a bar in a horizontal chart, or the minimal width of a bar in a vertical chart.\n   *\n   * By default, 0 values are not shown.\n   * To visualize a 0 (or close to zero) point, set the minimal point size to a pixel value like 3.\n   *\n   * In stacked bar charts, minPointSize might not be respected for tightly packed values.\n   * So we strongly recommend not using this props in stacked BarChart.\n   *\n   * You may provide a function to conditionally change this prop based on Bar value.\n   *\n   * @defaultValue 0\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/BarChartWithMinHeight/ Chart with min bar height}\n   */\n  minPointSize?: MinPointSize;\n  /**\n   * The maximum width of bar in a horizontal chart, or maximum height in a vertical chart.\n   */\n  maxBarSize?: number;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * If set a ReactElement, the shape of bar can be customized.\n   * If set a function, the function will be called to render customized shape.\n   * By default, renders a rectangle.\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/CustomShapeBarChart/ Custom shape bar chart example}\n   */\n  shape?: ActiveShape<BarShapeProps, SVGPathElement>;\n\n  /**\n   * The active bar is shown when a user enters a bar chart and this chart has tooltip. Options:\n   * - `false`: all bars are passive, nothing happens on mouse events;\n   * - `true`: active bar is rendered separately but the default props are the same as others: so mouse events do not change its appearance. className and zIndex are different though;\n   * - `object`: the props of active bar;\n   * - `function`: the render function of active bar;\n   * - `ReactElement`: the active bar element.\n   *\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/SimpleBarChart/ activeBar example}\n   *\n   * @example <Bar activeBar={{ fill: 'red' }} />\n   * @example <Bar activeBar={CustomActiveBarFn} />\n   */\n  activeBar?: ActiveShape<BarShapeProps, SVGPathElement>;\n  /**\n   * Renders a background for each bar. Options:\n   *  - `false`: no background;\n   *  - `true`: renders default background;\n   *  - `object`: the props of background rectangle;\n   *  - `ReactElement`: a custom background element;\n   *  - `function`: a render function of custom background.\n   *\n   * @defaultValue false\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/BarChartHasBackground/ BarChart with background example}\n   */\n  background?: ActiveShape<BarShapeProps, SVGPathElement> & ZIndexable;\n  /**\n   * The radius of corners.\n   *\n   * If you provide a single number, it applies to all four corners.\n   * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/roundedBars/ Guide: Rounded bar corners}\n   */\n  radius?: RectRadius;\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n\n  /**\n   * If set false, animation of bar will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   *\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   *\n   * @defaultValue 400\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   *\n   * @defaultValue 'ease'\n   */\n  animationEasing?: EasingInput;\n  /**\n   * The unique identifier of this component.\n   * Used as an HTML attribute `id`, and also to identify this element internally.\n   *\n   * If undefined, Recharts will generate a unique ID automatically.\n   */\n  id?: string;\n  /**\n   * Renders one label for each bar. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object`: the props of LabelList component;\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * @defaultValue false\n   *\n   * @example <Bar label />\n   * @example <Bar label={{ position: 'top', fontSize: 20 }} />\n   * @example <Bar label={CustomizedLabelFn} />\n   */\n  label?: ImplicitLabelListType;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 300\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n}\n\ntype BarMouseEvent = (\n  data: BarRectangleItem,\n  index: number,\n  event: React.MouseEvent<SVGPathElement, MouseEvent>,\n) => void;\n\ninterface BarEvents {\n  /**\n   * The customized event handler of click on the bars in this group\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/BarChartWithCustomizedEvent/ Chart with customized event example}\n   */\n  onClick: BarMouseEvent;\n  /**\n   * The customized event handler of mouseenter on the bars in this group\n   */\n  onMouseEnter: BarMouseEvent;\n  /**\n   * The customized event handler of mouseleave on the bars in this group\n   */\n  onMouseLeave: BarMouseEvent;\n  /**\n   * The customized event handler of mousemove on the bars in this group\n   */\n  onMouseMove: BarMouseEvent;\n  /**\n   * The customized event handler of mousedown on the bars in this group\n   */\n  onMouseDown: BarMouseEvent;\n  /**\n   * The customized event handler of mouseup on the bars in this group\n   */\n  onMouseUp: BarMouseEvent;\n  /**\n   * The customized event handler of mouseover on the bars in this group\n   */\n  onMouseOver: BarMouseEvent;\n  /**\n   * The customized event handler of mouseout on the bars in this group\n   */\n  onMouseOut: BarMouseEvent;\n}\n\ntype InternalBarProps = {\n  /*\n   * Injected from Redux store\n   */\n  layout: 'horizontal' | 'vertical';\n  data: ReadonlyArray<BarRectangleItem> | undefined;\n\n  /*\n   * Provided by user, has defaults\n   */\n  xAxisId: string | number;\n  yAxisId: string | number;\n  hide: boolean;\n  legendType: LegendType;\n  minPointSize: MinPointSize;\n  activeBar: ActiveShape<BarShapeProps, SVGPathElement>;\n  isAnimationActive: boolean | 'auto';\n  animationBegin: number;\n  animationDuration: AnimationDuration;\n  animationEasing: EasingInput;\n\n  /*\n   * Provided by user\n   */\n  needClip?: boolean;\n  className?: string;\n  index?: Key;\n  stackId?: string | number;\n  barSize?: string | number;\n  unit?: string | number;\n  name?: string | number;\n  dataKey?: DataKey<any>;\n  tooltipType?: TooltipType;\n  maxBarSize?: number;\n  shape?: ActiveShape<BarShapeProps, SVGPathElement>;\n  background?: ActiveShape<BarShapeProps, SVGPathElement>;\n  radius?: number | [number, number, number, number];\n\n  onAnimationStart?: () => void;\n  onAnimationEnd?: () => void;\n\n  /**\n   * Internally, ID is required, either from outside or autogenerated.\n   */\n  id: GraphicalItemId;\n  label?: ImplicitLabelListType;\n};\n\ntype BarSvgProps = Omit<\n  PresentationAttributesAdaptChildEvent<BarRectangleItem, SVGPathElement>,\n  'radius' | 'name' | 'ref'\n>;\n\nexport type Props = Partial<BarEvents> & BarProps & Omit<BarSvgProps, keyof BarEvents>;\n\ntype InternalProps = BarSvgProps & InternalBarProps;\n\nconst computeLegendPayloadFromBarData = (props: Props): ReadonlyArray<LegendPayload> => {\n  const { dataKey, name, fill, legendType, hide } = props;\n  return [\n    {\n      inactive: hide,\n      dataKey,\n      type: legendType,\n      color: fill,\n      value: getTooltipNameProp(name, dataKey),\n      payload: props,\n    },\n  ];\n};\n\nconst SetBarTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    unit,\n    tooltipType,\n    id,\n  }: Pick<\n    InternalProps,\n    'dataKey' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'unit' | 'tooltipType' | 'id'\n  >) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: undefined,\n      getPosition: noop,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        nameKey: undefined,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: fill,\n        unit,\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\ntype BarBackgroundProps = {\n  background?: ActiveShape<BarShapeProps, SVGPathElement>;\n  data: ReadonlyArray<BarRectangleItem> | undefined;\n  dataKey: DataKey<any> | undefined;\n  allOtherBarProps: Props;\n};\n\nfunction BarBackground(props: BarBackgroundProps) {\n  const activeIndex = useAppSelector(selectActiveTooltipIndex);\n\n  const { data, dataKey, background: backgroundFromProps, allOtherBarProps } = props;\n\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    onClick: onItemClickFromProps,\n    ...restOfAllOtherProps\n  } = allOtherBarProps;\n\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, allOtherBarProps.id);\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, allOtherBarProps.id);\n  if (!backgroundFromProps || data == null) {\n    return null;\n  }\n\n  const backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);\n\n  return (\n    <ZIndexLayer zIndex={getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)}>\n      {data.map((entry: BarRectangleItem, i: number) => {\n        const { value, background: backgroundFromDataEntry, tooltipPosition, ...rest } = entry;\n\n        if (!backgroundFromDataEntry) {\n          return null;\n        }\n\n        // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n        const onMouseEnter = onMouseEnterFromContext(entry, i);\n        // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n        const onMouseLeave = onMouseLeaveFromContext(entry, i);\n        // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n        const onClick = onClickFromContext(entry, i);\n\n        const barRectangleProps: BarRectangleProps = {\n          option: backgroundFromProps,\n          isActive: String(i) === activeIndex,\n          ...rest,\n          // @ts-expect-error backgroundProps is contributing unknown props\n          fill: '#eee',\n          ...backgroundFromDataEntry,\n          ...backgroundProps,\n          ...adaptEventsOfChild(restOfAllOtherProps, entry, i),\n          onMouseEnter,\n          onMouseLeave,\n          onClick,\n          dataKey,\n          index: i,\n          className: 'recharts-bar-background-rectangle',\n        };\n\n        return <BarRectangle key={`background-bar-${i}`} {...barRectangleProps} />;\n      })}\n    </ZIndexLayer>\n  );\n}\n\ntype BarRectanglesProps = InternalProps & {\n  data: ReadonlyArray<BarRectangleItem> | undefined;\n};\n\nfunction BarLabelListProvider({\n  showLabels,\n  children,\n  rects,\n}: {\n  showLabels: boolean;\n  children: ReactNode;\n  rects: ReadonlyArray<BarRectangleItem> | undefined;\n}) {\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> | undefined = rects?.map(\n    (entry: BarRectangleItem): CartesianLabelListEntry => {\n      const viewBox: TrapezoidViewBox = {\n        x: entry.x,\n        y: entry.y,\n        width: entry.width,\n        lowerWidth: entry.width,\n        upperWidth: entry.width,\n        height: entry.height,\n      };\n      return {\n        ...viewBox,\n        value: entry.value,\n        payload: entry.payload,\n        parentViewBox: entry.parentViewBox,\n        viewBox,\n        fill: entry.fill,\n      };\n    },\n  );\n\n  return (\n    <CartesianLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </CartesianLabelListContextProvider>\n  );\n}\n\nfunction BarRectangleWithActiveState(props: {\n  shape: ActiveShape<BarShapeProps, SVGPathElement> | undefined;\n  activeBar: ActiveShape<BarShapeProps, SVGPathElement>;\n  baseProps: WithoutId<SVGPropsNoEvents<BarRectanglesProps>>;\n  entry: BarRectangleItem;\n  index: number;\n  dataKey: DataKey<any> | undefined;\n}) {\n  const { shape, activeBar, baseProps, entry, index, dataKey } = props;\n  const activeIndex = useAppSelector(selectActiveTooltipIndex);\n  const activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n  /*\n   * Bars support stacking, meaning that there can be multiple bars at the same x value.\n   * With Tooltip shared=false we only want to highlight the currently active Bar, not all.\n   *\n   * Also, if the tooltip is shared, we want to highlight all bars at the same x value\n   * regardless of the dataKey.\n   *\n   * With shared Tooltip, the activeDataKey is undefined.\n   */\n  const isActive: boolean =\n    activeBar && String(index) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);\n  const option = isActive ? activeBar : shape;\n  if (isActive) {\n    return (\n      <ZIndexLayer zIndex={DefaultZIndexes.activeBar}>\n        <BarStackClipLayer index={index}>\n          <BarRectangle\n            {...baseProps}\n            name={String(baseProps.name)}\n            {...entry}\n            isActive={isActive}\n            option={option}\n            index={index}\n            dataKey={dataKey}\n          />\n        </BarStackClipLayer>\n      </ZIndexLayer>\n    );\n  }\n  return (\n    <BarRectangle\n      {...baseProps}\n      name={String(baseProps.name)}\n      {...entry}\n      isActive={isActive}\n      option={option}\n      index={index}\n      dataKey={dataKey}\n    />\n  );\n}\n\nfunction BarRectangleNeverActive(props: {\n  shape: ActiveShape<BarShapeProps, SVGPathElement> | undefined;\n  baseProps: WithoutId<SVGPropsNoEvents<BarRectanglesProps>>;\n  entry: BarRectangleItem;\n  index: number;\n  dataKey: DataKey<any> | undefined;\n}) {\n  const { shape, baseProps, entry, index, dataKey } = props;\n  return (\n    <BarRectangle\n      {...baseProps}\n      name={String(baseProps.name)}\n      {...entry}\n      isActive={false}\n      option={shape}\n      index={index}\n      dataKey={dataKey}\n    />\n  );\n}\n\nfunction BarRectangles({\n  data,\n  props,\n}: {\n  data: ReadonlyArray<BarRectangleItem> | undefined;\n  props: BarRectanglesProps;\n}) {\n  const { id, ...baseProps } = svgPropertiesNoEvents(props) ?? {};\n  const { shape, dataKey, activeBar } = props;\n\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    ...restOfAllOtherProps\n  } = props;\n\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n  const onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n\n  if (!data) {\n    return null;\n  }\n\n  return (\n    <>\n      {data.map((entry: BarRectangleItem, i: number) => {\n        return (\n          <BarStackClipLayer\n            index={i}\n            // https://github.com/recharts/recharts/issues/5415\n            key={`rectangle-${entry?.x}-${entry?.y}-${entry?.value}-${i}`}\n            className=\"recharts-bar-rectangle\"\n            {...adaptEventsOfChild(restOfAllOtherProps, entry, i)}\n            // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n            onMouseEnter={onMouseEnterFromContext(entry, i)}\n            // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n            onMouseLeave={onMouseLeaveFromContext(entry, i)}\n            // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n            onClick={onClickFromContext(entry, i)}\n          >\n            {activeBar ? (\n              <BarRectangleWithActiveState\n                shape={shape}\n                activeBar={activeBar}\n                baseProps={baseProps}\n                entry={entry}\n                index={i}\n                dataKey={dataKey}\n              />\n            ) : (\n              /*\n               * If the `activeBar` prop is falsy, then let's call the variant without hooks.\n               * Using the `selectActiveTooltipIndex` selector is usually fast\n               * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.\n               * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.\n               * So let's just skip the hooks altogether. That way, React can skip rendering the component,\n               * and can skip the tree reconciliation for its children too.\n               * Because we can't call hooks conditionally, we need to have a separate component for that.\n               */\n              <BarRectangleNeverActive shape={shape} baseProps={baseProps} entry={entry} index={i} dataKey={dataKey} />\n            )}\n          </BarStackClipLayer>\n        );\n      })}\n    </>\n  );\n}\n\nfunction RectanglesWithAnimation({\n  props,\n  previousRectanglesRef,\n}: {\n  props: InternalProps;\n  previousRectanglesRef: MutableRefObject<null | ReadonlyArray<BarRectangleItem>>;\n}) {\n  const {\n    data,\n    layout,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    onAnimationEnd,\n    onAnimationStart,\n  } = props;\n  const prevData = previousRectanglesRef.current;\n  const animationId = useAnimationId(props, 'recharts-bar-');\n\n  const [isAnimating, setIsAnimating] = useState(false);\n\n  const showLabels = !isAnimating;\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n  return (\n    <BarLabelListProvider showLabels={showLabels} rects={data}>\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        onAnimationEnd={handleAnimationEnd}\n        onAnimationStart={handleAnimationStart}\n        key={animationId}\n      >\n        {(t: number) => {\n          const stepData =\n            t === 1\n              ? data\n              : data?.map((entry: BarRectangleItem, index: number): BarRectangleItem => {\n                  const prev = prevData && prevData[index];\n\n                  if (prev) {\n                    return {\n                      ...entry,\n                      x: interpolate(prev.x, entry.x, t),\n                      y: interpolate(prev.y, entry.y, t),\n                      width: interpolate(prev.width, entry.width, t),\n                      height: interpolate(prev.height, entry.height, t),\n                    };\n                  }\n\n                  if (layout === 'horizontal') {\n                    const height = interpolate(0, entry.height, t);\n                    const y = interpolate(entry.stackedBarStart, entry.y, t);\n\n                    return {\n                      ...entry,\n                      y,\n                      height,\n                    };\n                  }\n\n                  const w = interpolate(0, entry.width, t);\n                  const x = interpolate(entry.stackedBarStart, entry.x, t);\n\n                  return { ...entry, width: w, x };\n                });\n\n          if (t > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousRectanglesRef.current = stepData ?? null;\n          }\n          if (stepData == null) {\n            return null;\n          }\n          return (\n            <Layer>\n              <BarRectangles props={props} data={stepData} />\n            </Layer>\n          );\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n      {props.children}\n    </BarLabelListProvider>\n  );\n}\n\nfunction RenderRectangles(props: InternalProps) {\n  const previousRectanglesRef = useRef<ReadonlyArray<BarRectangleItem> | null>(null);\n\n  return <RectanglesWithAnimation previousRectanglesRef={previousRectanglesRef} props={props} />;\n}\n\nconst defaultMinPointSize: number = 0;\n\nconst errorBarDataPointFormatter: ErrorBarDataPointFormatter<BarRectangleItem> = (\n  dataPoint: BarRectangleItem,\n  dataKey,\n): ErrorBarDataItem => {\n  /**\n   * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.\n   * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n   * */\n  const value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n  return {\n    x: dataPoint.x,\n    y: dataPoint.y,\n    value,\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    errorVal: getValueByDataKey(dataPoint, dataKey),\n  };\n};\n\nclass BarWithState extends PureComponent<InternalProps> {\n  render() {\n    const { hide, data, dataKey, className, xAxisId, yAxisId, needClip, background, id } = this.props;\n    if (hide || data == null) {\n      return null;\n    }\n\n    const layerClass = clsx('recharts-bar', className);\n    const clipPathId = id;\n\n    return (\n      <Layer className={layerClass} id={id}>\n        {needClip && (\n          <defs>\n            <GraphicalItemClipPath clipPathId={clipPathId} xAxisId={xAxisId} yAxisId={yAxisId} />\n          </defs>\n        )}\n        <Layer className=\"recharts-bar-rectangles\" clipPath={needClip ? `url(#clipPath-${clipPathId})` : undefined}>\n          <BarBackground data={data} dataKey={dataKey} background={background} allOtherBarProps={this.props} />\n          <RenderRectangles {...this.props} />\n        </Layer>\n      </Layer>\n    );\n  }\n}\n\nexport const defaultBarProps = {\n  activeBar: false,\n  animationBegin: 0,\n  animationDuration: 400,\n  animationEasing: 'ease',\n  background: false,\n  hide: false,\n  isAnimationActive: 'auto',\n  label: false,\n  legendType: 'rect',\n  minPointSize: defaultMinPointSize,\n  xAxisId: 0,\n  yAxisId: 0,\n  zIndex: DefaultZIndexes.bar,\n} as const satisfies Partial<Props>;\n\ntype BarImplProps = Omit<InternalBarProps, 'layout' | 'data'> & { children?: ReactNode };\n\nfunction BarImpl(props: BarImplProps) {\n  const {\n    xAxisId,\n    yAxisId,\n    hide,\n    legendType,\n    minPointSize,\n    activeBar,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    isAnimationActive,\n  } = props;\n\n  const { needClip } = useNeedsClip(xAxisId, yAxisId);\n  const layout = useChartLayout();\n\n  const isPanorama = useIsPanorama();\n\n  const cells = findAllByType(props.children, Cell);\n\n  const rects: ReadonlyArray<BarRectangleItem> | undefined = useAppSelector(state =>\n    selectBarRectangles(state, props.id, isPanorama, cells),\n  );\n\n  if (layout !== 'vertical' && layout !== 'horizontal') {\n    return null;\n  }\n\n  let errorBarOffset: number;\n  const firstDataPoint = rects?.[0];\n  if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {\n    errorBarOffset = 0;\n  } else {\n    errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;\n  }\n\n  return (\n    <SetErrorBarContext\n      xAxisId={xAxisId}\n      yAxisId={yAxisId}\n      data={rects}\n      dataPointFormatter={errorBarDataPointFormatter}\n      errorBarOffset={errorBarOffset}\n    >\n      <BarWithState\n        {...props}\n        layout={layout}\n        needClip={needClip}\n        data={rects}\n        xAxisId={xAxisId}\n        yAxisId={yAxisId}\n        hide={hide}\n        legendType={legendType}\n        minPointSize={minPointSize}\n        activeBar={activeBar}\n        animationBegin={animationBegin}\n        animationDuration={animationDuration}\n        animationEasing={animationEasing}\n        isAnimationActive={isAnimationActive}\n      />\n    </SetErrorBarContext>\n  );\n}\n\nexport function computeBarRectangles({\n  layout,\n  barSettings: { dataKey, minPointSize: minPointSizeProp },\n  pos,\n  bandSize,\n  xAxis,\n  yAxis,\n  xAxisTicks,\n  yAxisTicks,\n  stackedData,\n  displayedData,\n  offset,\n  cells,\n  parentViewBox,\n  dataStartIndex,\n}: {\n  layout: 'horizontal' | 'vertical';\n  barSettings: BarSettings;\n  pos: BarPositionPosition;\n  bandSize: number;\n  xAxis: BaseAxisWithScale;\n  yAxis: BaseAxisWithScale;\n  xAxisTicks: TickItem[];\n  yAxisTicks: TickItem[];\n  stackedData: Series<Record<number, number>, DataKey<any>> | undefined;\n  offset: ChartOffsetInternal;\n  displayedData: ChartData;\n  cells: ReadonlyArray<ReactElement> | undefined;\n  parentViewBox: CartesianViewBoxRequired;\n  dataStartIndex: number;\n}): ReadonlyArray<BarRectangleItem> | undefined {\n  const numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n  // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it\n  const stackedDomain: ReadonlyArray<number> = stackedData ? numericAxis.scale.domain() : null;\n  const baseValue = getBaseValueOfBar({ numericAxis });\n  const stackedBarStart: number | undefined = numericAxis.scale.map(baseValue);\n\n  return displayedData\n    .map((entry: unknown, index): BarRectangleItem | null => {\n      let value, x: number | null, y, width, height, background: BarRectangleType;\n\n      if (stackedData) {\n        // Use dataStartIndex to access the correct element in the full stackedData array\n        const untruncatedValue = stackedData[index + dataStartIndex];\n        if (untruncatedValue == null) {\n          return null;\n        }\n        value = truncateByDomain(untruncatedValue, stackedDomain);\n      } else {\n        value = getValueByDataKey(entry, dataKey);\n\n        if (!Array.isArray(value)) {\n          value = [baseValue, value];\n        }\n      }\n\n      const minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);\n\n      if (layout === 'horizontal') {\n        const baseValueScale = yAxis.scale.map(value[0]);\n        const currentValueScale = yAxis.scale.map(value[1]);\n        if (baseValueScale == null || currentValueScale == null) {\n          return null;\n        }\n        x = getCateCoordinateOfBar({\n          axis: xAxis,\n          ticks: xAxisTicks,\n          bandSize,\n          offset: pos.offset,\n          entry,\n          index,\n        });\n        y = currentValueScale ?? baseValueScale ?? undefined;\n        width = pos.size;\n        const computedHeight = baseValueScale - currentValueScale;\n        height = isNan(computedHeight) ? 0 : computedHeight;\n        background = { x, y: offset.top, width, height: offset.height };\n\n        if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n          const delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n\n          y -= delta;\n          height += delta;\n        }\n      } else {\n        const baseValueScale = xAxis.scale.map(value[0]);\n        const currentValueScale = xAxis.scale.map(value[1]);\n        if (baseValueScale == null || currentValueScale == null) {\n          return null;\n        }\n        x = baseValueScale;\n        y = getCateCoordinateOfBar({\n          axis: yAxis,\n          ticks: yAxisTicks,\n          bandSize,\n          offset: pos.offset,\n          entry,\n          index,\n        });\n        width = currentValueScale - baseValueScale;\n        height = pos.size;\n        background = { x: offset.left, y, width: offset.width, height };\n\n        if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n          const delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n          width += delta;\n        }\n      }\n\n      if (x == null || y == null || width == null || height == null) {\n        return null;\n      }\n\n      const barRectangleItem: BarRectangleItem = {\n        // @ts-expect-error spread of unknown type\n        ...entry,\n        stackedBarStart,\n        x,\n        y,\n        width,\n        height,\n        value: stackedData ? value : value[1],\n        payload: entry,\n        background,\n        tooltipPosition: { x: x + width / 2, y: y + height / 2 },\n        parentViewBox,\n        ...(cells && cells[index] && cells[index].props),\n      } satisfies BarRectangleItem;\n\n      return barRectangleItem;\n    })\n    .filter(Boolean);\n}\n\nfunction BarFn(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultBarProps);\n  // stackId may arrive from props or from BarStack context\n  const stackId = useStackId(props.stackId);\n  const isPanorama = useIsPanorama();\n  // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"bar\">\n      {id => (\n        <>\n          <SetLegendPayload legendPayload={computeLegendPayloadFromBarData(props)} />\n          <SetBarTooltipEntrySettings\n            dataKey={props.dataKey}\n            stroke={props.stroke}\n            strokeWidth={props.strokeWidth}\n            fill={props.fill}\n            name={props.name}\n            hide={props.hide}\n            unit={props.unit}\n            tooltipType={props.tooltipType}\n            id={id}\n          />\n          <SetCartesianGraphicalItem\n            type=\"bar\"\n            id={id}\n            // Bar does not allow setting data directly on the graphical item (why?)\n            data={undefined}\n            xAxisId={props.xAxisId}\n            yAxisId={props.yAxisId}\n            zAxisId={0}\n            dataKey={props.dataKey}\n            stackId={stackId}\n            hide={props.hide}\n            barSize={props.barSize}\n            minPointSize={props.minPointSize}\n            maxBarSize={props.maxBarSize}\n            isPanorama={isPanorama}\n          />\n          <ZIndexLayer zIndex={props.zIndex}>\n            <BarImpl {...props} id={id} />\n          </ZIndexLayer>\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\n/**\n * @provides ErrorBarContext\n * @provides LabelListContext\n * @provides CellReader\n * @consumes CartesianChartContext\n * @consumes BarStackContext\n */\nexport const Bar: ComponentType<Props> = React.memo(BarFn, propsAreEqual);\nBar.displayName = 'Bar';\n","import { createSelector } from 'reselect';\nimport type { RechartsRootState } from '../store';\nimport type { NormalizedStackId } from '../../util/ChartUtils';\nimport type { BarSettings } from '../types/BarSettings';\nimport { selectUnfilteredCartesianItems } from './axisSelectors';\nimport type { CartesianGraphicalItemSettings } from '../graphicalItemsSlice';\nimport { selectBarRectangles } from './barSelectors';\n\nconst pickStackId = (state: RechartsRootState, stackId: NormalizedStackId): NormalizedStackId => stackId;\n\nconst pickIsPanorama = (state: RechartsRootState, stackId: NormalizedStackId, isPanorama: boolean): boolean =>\n  isPanorama;\n\nexport const selectAllBarsInStack: (\n  state: RechartsRootState,\n  stackId: NormalizedStackId,\n  isPanorama: boolean,\n) => ReadonlyArray<BarSettings> = createSelector(\n  [pickStackId, selectUnfilteredCartesianItems, pickIsPanorama],\n  (\n    stackId: NormalizedStackId,\n    allItems: ReadonlyArray<CartesianGraphicalItemSettings>,\n    isPanorama: boolean,\n  ): ReadonlyArray<BarSettings> => {\n    return allItems\n      .filter(i => i.type === 'bar')\n      .filter(i => i.stackId === stackId)\n      .filter(i => i.isPanorama === isPanorama)\n      .filter(i => !i.hide);\n  },\n);\n\nconst selectAllBarIdsInStack = createSelector([selectAllBarsInStack], allBars => {\n  return allBars.map(bar => bar.id);\n});\n\nexport type BarStackItem = {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n};\n\n/**\n * Takes two rectangles and returns a new rectangle that encompasses both.\n * It takes the minimum x and y, and the maximum width and height.\n * It handles overlapping rectangles, and rectangles with a gap between them.\n * @param rect1\n * @param rect2\n */\nexport const expandRectangle = (\n  rect1: BarStackItem | undefined,\n  rect2: BarStackItem | undefined,\n): BarStackItem | undefined => {\n  if (!rect1) {\n    return rect2;\n  }\n  if (!rect2) {\n    return rect1;\n  }\n  const x = Math.min(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);\n  const y = Math.min(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);\n  const maxX = Math.max(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);\n  const maxY = Math.max(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);\n  const width = maxX - x;\n  const height = maxY - y;\n  return { x, y, width, height };\n};\n\nconst combineStackRects: (\n  state: RechartsRootState,\n  stackId: NormalizedStackId,\n  isPanorama: boolean,\n) => ReadonlyArray<BarStackItem | undefined> = (state, stackId, isPanorama) => {\n  const allBarIds = selectAllBarIdsInStack(state, stackId, isPanorama);\n  const stackRects: Array<BarStackItem | undefined> = [];\n  allBarIds.forEach(barId => {\n    const rectangles = selectBarRectangles(state, barId, isPanorama, undefined);\n    rectangles?.forEach((rect, index) => {\n      stackRects[index] = expandRectangle(stackRects[index], rect);\n    });\n  });\n  return stackRects;\n};\n\nexport const selectStackRects: (\n  state: RechartsRootState,\n  stackId: NormalizedStackId,\n  isPanorama: boolean,\n) => ReadonlyArray<BarStackItem | undefined> = createSelector(\n  [state => state, pickStackId, pickIsPanorama],\n  combineStackRects,\n);\n","import * as React from 'react';\nimport { ComponentType, createContext, ReactNode, useContext, useMemo } from 'react';\nimport { getNormalizedStackId, NormalizedStackId, StackId } from '../util/ChartUtils';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAppSelector } from '../state/hooks';\nimport { selectStackRects } from '../state/selectors/barStackSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Layer, Props as LayerProps } from '../container/Layer';\nimport { Rectangle, RectRadius } from '../shape/Rectangle';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\nexport type BarStackProps = {\n  /**\n   * When two Bars have the same axisId and same stackId, then the two Bars are stacked in the chart.\n   * This prop sets the stack ID for all Bar components inside this BarStack component.\n   * If undefined, a unique id will be generated automatically.\n   *\n   * When both BarStack and individual Bar components have stackId defined,\n   * the BarStack's stackId wins, and the individual Bar's stackId is ignored.\n   */\n  stackId?: StackId;\n  /**\n   * Radius applies only once to all bars inside of this stack group,\n   * as if they were one huge bar.\n   * Meaning that if you have three bars stacked together, and you set\n   * radius to 10, only the outer corners of the entire stack will be rounded: the middle bars will have square corners.\n   *\n   * Unless! The edge bars are smaller than the radius value, in which case the bars at the edge get a lot of radius\n   * and the middle one gets a little bit of radius.\n   *\n   * You may want to combine this with setting individual Bar components' radius to their own values for best effect.\n   * `Bar.radius` prop will round corners of individual bars, while `BarStack.radius` will round corners of the entire stack.\n   *\n   * If you provide a single number, it applies to all four corners.\n   * If you provide an array of four numbers, they apply to top-left, top-right, bottom-right, bottom-left corners respectively.\n   *\n   * @defaultValue 0\n   */\n  radius?: RectRadius;\n  children?: ReactNode;\n};\n\nexport type BarStackSettings = {\n  stackId: NormalizedStackId;\n  radius: RectRadius;\n};\n\nconst BarStackContext = createContext<BarStackSettings | undefined>(undefined);\n\n/**\n * Hook to resolve the stack ID for a Bar component.\n * If a stack ID is provided via props, it is used directly.\n * Otherwise, this will read stack ID from BarStack context if available.\n * If both are undefined, it returns undefined.\n * @param childStackId\n */\nexport const useStackId = (childStackId: StackId | undefined): NormalizedStackId | undefined => {\n  const stackSettings = useContext(BarStackContext);\n  if (stackSettings != null) {\n    return stackSettings.stackId;\n  }\n  if (childStackId == null) {\n    return undefined;\n  }\n  return getNormalizedStackId(childStackId);\n};\n\nexport const defaultBarStackProps = {\n  radius: 0,\n} as const satisfies Partial<BarStackProps>;\n\nconst getClipPathId = (stackId: NormalizedStackId, index: number): string => {\n  return `recharts-bar-stack-clip-path-${stackId}-${index}`;\n};\n\nexport const useBarStackClipPathUrl = (index: number): string | undefined => {\n  const barStackContext = useContext(BarStackContext);\n  if (barStackContext == null) {\n    return undefined;\n  }\n  const { stackId } = barStackContext;\n  return `url(#${getClipPathId(stackId, index)})`;\n};\n\nexport const BarStackClipLayer = ({ index, ...rest }: LayerProps & { index: number }) => {\n  const clipPathUrl = useBarStackClipPathUrl(index);\n  return <Layer className=\"recharts-bar-stack-layer\" clipPath={clipPathUrl} {...rest} />;\n};\n\n/**\n * This React component will render a clipPath that the individual bars in the stack will reference\n * to achieve rounded corners for the entire stack.\n */\nconst BarStackClipPath = ({ stackId, radius }: { stackId: NormalizedStackId; radius: RectRadius }) => {\n  const isPanorama = useIsPanorama();\n  const positions = useAppSelector(state => selectStackRects(state, stackId, isPanorama));\n  if (positions == null || positions.length === 0) {\n    return null;\n  }\n  /*\n   * Render one clipPath per rectangle in the stack.\n   * Each rectangle corresponds to one data entry in the chart.\n   */\n  return (\n    <defs>\n      {positions.map((pos, index) => {\n        if (pos == null) {\n          return null;\n        }\n        const clipPathId = getClipPathId(stackId, index);\n        return (\n          <clipPath key={clipPathId} id={clipPathId}>\n            <Rectangle\n              isAnimationActive={false}\n              isUpdateAnimationActive={false}\n              x={pos.x}\n              y={pos.y}\n              width={pos.width}\n              height={pos.height}\n              radius={radius}\n            />\n          </clipPath>\n        );\n      })}\n    </defs>\n  );\n};\n\nconst BarStackImpl = (props: BarStackProps) => {\n  const resolvedStackId = useUniqueId('recharts-bar-stack', getNormalizedStackId(props.stackId));\n  const { children, radius } = resolveDefaultProps(props, defaultBarStackProps);\n\n  const context: BarStackSettings = useMemo(\n    (): BarStackSettings => ({ stackId: resolvedStackId, radius }),\n    [resolvedStackId, radius],\n  );\n  return (\n    <BarStackContext.Provider value={context}>\n      <BarStackClipPath stackId={resolvedStackId} radius={radius} />\n      {children}\n    </BarStackContext.Provider>\n  );\n};\n\n/**\n * @provides BarStackContext\n * @since 3.6\n */\nexport const BarStack: ComponentType<BarStackProps> = React.memo(BarStackImpl, propsAreEqual);\n","import * as React from 'react';\nimport { ActiveShape, SymbolType } from './types';\nimport { ScatterPointItem } from '../cartesian/Scatter';\nimport { Symbols } from '../shape/Symbols';\nimport { Shape } from './ActiveShapeUtils';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from './Constants';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\n\nexport type ScatterShapeProps = ScatterPointItem & {\n  index: number;\n  [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: GraphicalItemId;\n};\n\nexport function ScatterSymbol({\n  option,\n  isActive,\n  ...props\n}: {\n  option: ActiveShape<ScatterShapeProps> | SymbolType;\n  isActive: boolean;\n} & ScatterShapeProps) {\n  if (typeof option === 'string') {\n    return <Shape option={<Symbols type={option} {...props} />} isActive={isActive} shapeType=\"symbols\" {...props} />;\n  }\n\n  return <Shape option={option} isActive={isActive} shapeType=\"symbols\" {...props} />;\n}\n","import { createSelector } from 'reselect';\nimport { ReactElement } from 'react';\nimport { computeScatterPoints, ScatterPointItem } from '../../cartesian/Scatter';\nimport { RechartsRootState } from '../store';\nimport { AxisId } from '../cartesianAxisSlice';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport { ChartData, ChartDataState } from '../chartDataSlice';\nimport {\n  BaseAxisWithScale,\n  selectAxisWithScale,\n  selectTicksOfGraphicalItem,\n  selectUnfilteredCartesianItems,\n  selectZAxisWithScale,\n  ZAxisWithScale,\n} from './axisSelectors';\nimport { ScatterSettings } from '../types/ScatterSettings';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\nimport { TickItem } from '../../util/types';\n\nconst selectXAxisWithScale = (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n\nconst selectXAxisTicks = (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n\nconst selectYAxisWithScale = (\n  state: RechartsRootState,\n  _xAxisId: AxisId,\n  yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n\nconst selectYAxisTicks = (\n  state: RechartsRootState,\n  _xAxisId: AxisId,\n  yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n\nconst selectZAxis = (\n  state: RechartsRootState,\n  _xAxisId: AxisId,\n  _yAxisId: AxisId,\n  zAxisId: AxisId,\n): ZAxisWithScale | undefined => selectZAxisWithScale(state, 'zAxis', zAxisId, false);\n\nconst pickScatterId = (\n  _state: RechartsRootState,\n  _xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _zAxisId: AxisId,\n  id: GraphicalItemId,\n) => id;\n\nconst pickCells = (\n  _state: RechartsRootState,\n  _xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n): ReadonlyArray<ReactElement> | undefined => cells;\n\nconst scatterChartDataSelector = (\n  state: RechartsRootState,\n  _xAxisId: AxisId,\n  _yAxisId: AxisId,\n  _zAxisId: AxisId,\n  _id: GraphicalItemId,\n  _cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n): ChartDataState => selectChartDataWithIndexesIfNotInPanoramaPosition4(state, undefined, undefined, isPanorama);\n\nconst selectSynchronisedScatterSettings: (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  yAxisId: AxisId,\n  _zAxisId: AxisId,\n  id: GraphicalItemId,\n) => ScatterSettings | undefined = createSelector(\n  [selectUnfilteredCartesianItems, pickScatterId],\n  (graphicalItems, id) => {\n    return graphicalItems.filter(item => item.type === 'scatter').find(item => item.id === id);\n  },\n);\n\nexport const selectScatterPoints: (\n  state: RechartsRootState,\n  xAxisId: AxisId,\n  yAxisId: AxisId,\n  zAxisId: AxisId,\n  id: GraphicalItemId,\n  cells: ReadonlyArray<ReactElement> | undefined,\n  isPanorama: boolean,\n) => ReadonlyArray<ScatterPointItem> | undefined = createSelector(\n  [\n    scatterChartDataSelector,\n    selectXAxisWithScale,\n    selectXAxisTicks,\n    selectYAxisWithScale,\n    selectYAxisTicks,\n    selectZAxis,\n    selectSynchronisedScatterSettings,\n    pickCells,\n  ],\n  (\n    { chartData, dataStartIndex, dataEndIndex }: ChartDataState,\n    xAxis: BaseAxisWithScale | undefined,\n    xAxisTicks: ReadonlyArray<TickItem> | undefined,\n    yAxis: BaseAxisWithScale | undefined,\n    yAxisTicks: ReadonlyArray<TickItem> | undefined,\n    zAxis: ZAxisWithScale | undefined,\n    scatterSettings: ScatterSettings | undefined,\n    cells,\n  ): ReadonlyArray<ScatterPointItem> | undefined => {\n    if (scatterSettings == null) {\n      return undefined;\n    }\n    let displayedData: ChartData | undefined;\n    if (scatterSettings?.data != null && scatterSettings.data.length > 0) {\n      displayedData = scatterSettings.data;\n    } else {\n      displayedData = chartData?.slice(dataStartIndex, dataEndIndex + 1);\n    }\n    if (\n      displayedData == null ||\n      xAxis == null ||\n      yAxis == null ||\n      xAxisTicks == null ||\n      yAxisTicks == null ||\n      xAxisTicks?.length === 0 ||\n      yAxisTicks?.length === 0\n    ) {\n      return undefined;\n    }\n    return computeScatterPoints({\n      displayedData,\n      xAxis,\n      yAxis,\n      zAxis,\n      scatterSettings,\n      xAxisTicks,\n      yAxisTicks,\n      cells,\n    });\n  },\n);\n","import * as React from 'react';\nimport {\n  ComponentType,\n  MutableRefObject,\n  ReactElement,\n  ReactNode,\n  useCallback,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\n\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Curve, CurveType, Props as CurveProps } from '../shape/Curve';\nimport { ErrorBarDataItem, ErrorBarDataPointFormatter, ErrorBarDirection } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { getLinearRegression, interpolate, isNullish } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport {\n  ActiveShape,\n  adaptEventsOfChild,\n  AnimationDuration,\n  AnimationTiming,\n  Coordinate,\n  DataKey,\n  DataProvider,\n  isNonEmptyArray,\n  LegendType,\n  NonEmptyArray,\n  NullableCoordinate,\n  PresentationAttributesAdaptChildEvent,\n  SymbolType,\n  TickItem,\n  TrapezoidViewBox,\n} from '../util/types';\nimport { TooltipType } from '../component/DefaultTooltipContent';\nimport { ScatterShapeProps, ScatterSymbol } from '../util/ScatterUtils';\nimport { InnerSymbolsProp } from '../shape/Symbols';\nimport type { LegendPayload } from '../component/DefaultLegendContent';\nimport {\n  useMouseClickItemDispatch,\n  useMouseEnterItemDispatch,\n  useMouseLeaveItemDispatch,\n} from '../context/tooltipContext';\nimport { TooltipPayload, TooltipPayloadConfiguration, TooltipPayloadEntry } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { AxisId } from '../state/cartesianAxisSlice';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { selectScatterPoints } from '../state/selectors/scatterSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { BaseAxisWithScale, implicitZAxis, ZAxisWithScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from '../util/Constants';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { ScatterSettings } from '../state/types/ScatterSettings';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { WithIdRequired, WithoutId } from '../util/useUniqueId';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { ChartData } from '../state/chartDataSlice';\n\nexport interface ScatterPointNode {\n  x?: number | string;\n  y?: number | string;\n  z?: number | string;\n}\n\n/**\n * Scatter coordinates are nullable because sometimes the point value is out of the domain,\n * and we can't compute a valid coordinate for it.\n *\n * Scatter -> Symbol ignores points with null cx or cy so those won't render if using the default shapes.\n * However: the points are exposed via various props and can be used in custom shapes so we keep them around.\n */\nexport interface ScatterPointItem {\n  /**\n   * The x coordinate of the point center in pixels.\n   */\n  cx: number | undefined;\n  /**\n   * The y coordinate of the point center in pixels.\n   */\n  cy: number | undefined;\n  /**\n   * The x coordinate (in pixels) of the top-left corner of the rectangle that wraps the point.\n   */\n  x: number | undefined;\n  /**\n   * The y coordinate (in pixels) of the top-left corner of the rectangle that wraps the point.\n   */\n  y: number | undefined;\n  /**\n   * ScatterPointItem size is an abstract number that is used to calculate the radius of the point.\n   * It's not the radius itself, but rather a value that is used to calculate the radius.\n   * Interacts with the zAxis range.\n   */\n  size: number;\n  /**\n   * Width of the point in pixels.\n   */\n  width: number;\n  /**\n   * Height of the point in pixels.\n   */\n  height: number;\n  node: ScatterPointNode;\n  payload?: any;\n  tooltipPayload?: TooltipPayload;\n  tooltipPosition: Coordinate;\n}\n\nexport type ScatterCustomizedShape = ActiveShape<ScatterShapeProps, SVGPathElement & InnerSymbolsProp> | SymbolType;\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\ninterface ScatterInternalProps extends ZIndexable {\n  data?: ChartData;\n  xAxisId: string | number;\n  yAxisId: string | number;\n  zAxisId: string | number;\n\n  dataKey?: DataKey<any>;\n\n  line?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>) | CurveProps | boolean;\n  lineType: 'fitting' | 'joint';\n  lineJointType: CurveType;\n  legendType: LegendType;\n  tooltipType?: TooltipType;\n  className?: string;\n  name?: string;\n\n  activeShape?: ScatterCustomizedShape;\n  shape: ScatterCustomizedShape;\n  points: ReadonlyArray<ScatterPointItem>;\n  hide: boolean;\n  label?: ImplicitLabelListType;\n\n  isAnimationActive: boolean | 'auto';\n  animationBegin: number;\n  animationDuration: AnimationDuration;\n  animationEasing: AnimationTiming;\n\n  needClip: boolean;\n\n  id: GraphicalItemId;\n  children?: ReactNode;\n}\n\n/**\n * External props, intended for end users to fill in\n */\ninterface ScatterProps extends DataProvider, ZIndexable {\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`, and also to identify this element internally.\n   *\n   * If undefined, Recharts will generate a unique ID automatically.\n   */\n  id?: string;\n  /**\n   * The id of XAxis which is corresponding to the data. Required when there are multiple XAxes.\n   * @defaultValue 0\n   */\n  xAxisId?: AxisId;\n  /**\n   * The id of YAxis which is corresponding to the data. Required when there are multiple YAxes.\n   * @defaultValue 0\n   */\n  yAxisId?: AxisId;\n  /**\n   * The id of ZAxis which is corresponding to the data. Required when there are multiple ZAxes.\n   *\n   * ZAxis does not render directly, has no ticks and no tick line.\n   * It is used to control the size of each scatter point.\n   *\n   * @defaultValue 0\n   * @see {@link https://recharts.github.io/en-US/examples/ThreeDimScatterChart/ Scatter chart with Z axis}\n   */\n  zAxisId?: AxisId;\n\n  /**\n   * Decides how to extract the numerical value of this Scatter from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Scatter.\n   */\n  dataKey?: DataKey<any>;\n\n  /**\n   * Renders line connecting individual points.\n   * Options:\n   * - `false`: no line is drawn.\n   * - `true`: a default line is drawn.\n   * - `ReactElement`: the option is the custom line element.\n   * - `function`: the function will be called to render customized line.\n   * - `object`: the option is the props of Curve element.\n   *\n   * Also see the `lineType` prop which controls how is this line calculated.\n   *\n   * @defaultValue false\n   * @example <Scatter line />\n   * @example <Scatter line={CustomizedLineComponent} />\n   * @example <Scatter line={{ strokeDasharray: '5 5' }} />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}\n   */\n  line?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>) | CurveProps | boolean;\n  /**\n   * Determines calculation method of the line if the `line` prop is set.\n   * Options:\n   * - `'joint'`: line will be generated by connecting all the points.\n   * - `'fitting'`: line will be generated by fitting algorithm (linear regression).\n   *\n   * Has no effect if `line` prop is not set or is false.\n   *\n   * @defaultValue joint\n   * @example <Scatter line lineType=\"fitting\" />\n   * @see {@link http://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}\n   */\n  lineType?: 'fitting' | 'joint';\n  /**\n   * Determines the shape of joint line.\n   * Same as `type` prop on Curve, Line and Area components.\n   *\n   * Has no effect if `line` prop is not set or is false or if `lineType` is 'fitting'.\n   *\n   * @defaultValue linear\n   * @see {@link http://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with joint line}\n   */\n  lineJointType?: CurveType;\n  /**\n   * The type of icon in legend.\n   * If set to 'none', no legend item will be rendered.\n   *\n   * @defaultValue 'circle'\n   * @example <Scatter legendType=\"diamond\" />\n   */\n  legendType?: LegendType;\n  tooltipType?: TooltipType;\n  className?: string;\n  /**\n   * The name of data.\n   * This option will be used in tooltip and legend to represent this graphical item.\n   * If no value was set to this option, the value of dataKey will be used alternatively.\n   */\n  name?: string;\n\n  /**\n   * This component is rendered when this graphical item is activated\n   * (could be by mouse hover, touch, keyboard, programmatically).\n   *\n   * @see {@link http://recharts.github.io/en-US/examples/SimpleScatterChart/ Scatter chart with custom active shape}\n   * @example <Scatter activeShape={{ fill: 'red' }} />\n   */\n  activeShape?: ScatterCustomizedShape;\n  /**\n   * Determines the shape of individual data points.\n   * - Can be one of the predefined shapes as a string, which will be passed to {@link Symbols} component.\n   * - If set a ReactElement, the shape of point can be customized.\n   * - If set a function, the function will be called to render customized shape.\n   * @defaultValue circle\n   *\n   * @example <Scatter shape={CustomizedShapeComponent} />\n   * @example <Scatter shape=\"diamond\" />\n   *\n   * @see {@link https://recharts.github.io/en-US/examples/JointLineScatterChart/ Scatter chart with custom shapes}\n   */\n  shape?: ScatterCustomizedShape;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * Renders one label for each data point. Options:\n   * - `true`: renders default labels;\n   * - `false`: no labels are rendered;\n   * - `object`: the props of LabelList component;\n   * - `ReactElement`: a custom label element;\n   * - `function`: a render function of custom label.\n   *\n   * @defaultValue false\n   */\n  label?: ImplicitLabelListType;\n\n  /**\n   * If set false, animation of Scatter points will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue 'auto'\n   */\n  isAnimationActive?: boolean | 'auto';\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 400\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue 'linear'\n   */\n  animationEasing?: AnimationTiming;\n  /**\n   * Z-Index of this component and its children. The higher the value,\n   * the more on top it will be rendered.\n   * Components with higher zIndex will appear in front of components with lower zIndex.\n   * If undefined or 0, the content is rendered in the default layer without portals.\n   *\n   * @since 3.4\n   * @defaultValue 600\n   * @see {@link https://recharts.github.io/en-US/guide/zIndex/ Z-Index and layers guide}\n   */\n  zIndex?: number;\n  children?: ReactNode;\n}\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\ntype BaseScatterSvgProps = Omit<\n  PresentationAttributesAdaptChildEvent<any, SVGElement>,\n  'points' | 'ref' | 'children' | 'dangerouslySetInnerHTML'\n>;\n\ntype InternalProps = BaseScatterSvgProps & ScatterInternalProps;\n\nexport type Props = BaseScatterSvgProps & ScatterProps;\n\nconst computeLegendPayloadFromScatterProps = (props: Props): ReadonlyArray<LegendPayload> => {\n  const { dataKey, name, fill, legendType, hide } = props;\n  return [\n    {\n      inactive: hide,\n      dataKey,\n      type: legendType,\n      color: fill,\n      value: getTooltipNameProp(name, dataKey),\n      payload: props,\n    },\n  ];\n};\n\ntype InputRequiredToComputeTooltipEntrySettings = {\n  dataKey?: DataKey<any> | undefined;\n  points?: ReadonlyArray<ScatterPointItem>;\n  stroke?: string;\n  strokeWidth?: number | string;\n  fill?: string;\n  name?: string;\n  hide?: boolean;\n  tooltipType?: TooltipType;\n  id: GraphicalItemId;\n};\n\nconst SetScatterTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    points,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    tooltipType,\n    id,\n  }: InputRequiredToComputeTooltipEntrySettings) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: points?.map((p: ScatterPointItem) => p.tooltipPayload),\n      getPosition: index => points?.[Number(index)]?.tooltipPosition,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        nameKey: undefined,\n        dataKey,\n        name: getTooltipNameProp(name, dataKey),\n        hide,\n        type: tooltipType,\n        color: fill,\n        unit: '', // why doesn't Scatter support unit?\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\ntype ScatterSymbolsProps = {\n  points: ReadonlyArray<ScatterPointItem>;\n  showLabels: boolean;\n  allOtherScatterProps: InternalProps;\n};\n\nfunction ScatterLine({ points, props }: { points: NonEmptyArray<ScatterPointItem>; props: WithoutId<InternalProps> }) {\n  const { line, lineType, lineJointType } = props;\n\n  if (!line) {\n    return null;\n  }\n\n  const scatterProps = svgPropertiesNoEvents(props);\n  const customLineProps = svgPropertiesNoEventsFromUnknown(line);\n  let linePoints: ReadonlyArray<NullableCoordinate>, lineItem: ReactNode;\n\n  if (lineType === 'joint') {\n    linePoints = points.map(entry => ({ x: entry.cx ?? null, y: entry.cy ?? null }));\n  } else if (lineType === 'fitting') {\n    const { xmin, xmax, a, b } = getLinearRegression(points);\n    const linearExp = (x: number) => a * x + b;\n    linePoints = [\n      { x: xmin, y: linearExp(xmin) },\n      { x: xmax, y: linearExp(xmax) },\n    ];\n  }\n\n  const lineProps: CurveProps = {\n    ...scatterProps,\n    // @ts-expect-error customLineProps is contributing unknown props\n    fill: 'none',\n    // @ts-expect-error customLineProps is contributing unknown props\n    stroke: scatterProps && scatterProps.fill,\n    ...customLineProps,\n    // @ts-expect-error linePoints is used before it is assigned (???)\n    points: linePoints,\n  };\n\n  if (React.isValidElement(line)) {\n    lineItem = React.cloneElement(line as any, lineProps);\n  } else if (typeof line === 'function') {\n    lineItem = line(lineProps);\n  } else {\n    lineItem = <Curve {...lineProps} type={lineJointType} />;\n  }\n\n  return (\n    <Layer className=\"recharts-scatter-line\" key=\"recharts-scatter-line\">\n      {lineItem}\n    </Layer>\n  );\n}\n\nfunction ScatterLabelListProvider({\n  showLabels,\n  points,\n  children,\n}: {\n  showLabels: boolean;\n  points: ReadonlyArray<ScatterPointItem>;\n  children: ReactNode;\n}) {\n  const chartViewBox = useViewBox();\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> = useMemo(() => {\n    return points?.map((point): CartesianLabelListEntry => {\n      const viewBox: TrapezoidViewBox = {\n        /*\n         * Scatter label uses x and y as the reference point for the label,\n         * not cx and cy.\n         */\n        x: point.x ?? 0,\n        /*\n         * Scatter label uses x and y as the reference point for the label,\n         * not cx and cy.\n         */\n        y: point.y ?? 0,\n        width: point.width,\n        height: point.height,\n        lowerWidth: point.width,\n        upperWidth: point.width,\n      };\n      return {\n        ...viewBox,\n        /*\n         * Here we put undefined because Scatter shows two values usually, one for X and one for Y.\n         * LabelList will see this undefined and will use its own `dataKey` prop to determine which value to show,\n         * using the payload below.\n         */\n        value: undefined,\n        payload: point.payload,\n        viewBox,\n        parentViewBox: chartViewBox,\n        fill: undefined,\n      };\n    });\n  }, [chartViewBox, points]);\n\n  return (\n    <CartesianLabelListContextProvider value={showLabels ? labelListEntries : undefined}>\n      {children}\n    </CartesianLabelListContextProvider>\n  );\n}\n\nfunction ScatterSymbols(props: ScatterSymbolsProps) {\n  const { points, allOtherScatterProps } = props;\n  const { shape, activeShape, dataKey } = allOtherScatterProps;\n  const { id, ...allOtherPropsWithoutId } = allOtherScatterProps;\n\n  const activeIndex = useAppSelector(selectActiveTooltipIndex);\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    ...restOfAllOtherProps\n  } = allOtherScatterProps;\n\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  const onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n  if (!isNonEmptyArray(points)) {\n    return null;\n  }\n\n  const baseProps = svgPropertiesNoEvents(allOtherPropsWithoutId);\n\n  return (\n    <>\n      <ScatterLine points={points} props={allOtherPropsWithoutId} />\n      {points.map((entry, i) => {\n        const hasActiveShape = activeShape != null && activeShape !== false;\n        const isActive: boolean = hasActiveShape && activeIndex === String(i);\n        const option = hasActiveShape && isActive ? activeShape : shape;\n        const symbolProps: ScatterShapeProps = {\n          ...baseProps,\n          ...entry,\n          index: i,\n          [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: String(id),\n        };\n\n        return (\n          <ZIndexLayer\n            key={`symbol-${entry?.cx}-${entry?.cy}-${entry?.size}-${i}`}\n            /*\n             * inactive Scatters use the parent zIndex, which is represented by undefined here.\n             * ZIndexLayer will render undefined zIndex as-is, as regular children, without portals.\n             * Active Scatters use the activeDot zIndex so they render above other elements.\n             */\n            zIndex={isActive ? DefaultZIndexes.activeDot : undefined}\n          >\n            <Layer\n              className=\"recharts-scatter-symbol\"\n              {...adaptEventsOfChild(restOfAllOtherProps, entry, i)}\n              // @ts-expect-error the types need a bit of attention\n              onMouseEnter={onMouseEnterFromContext(entry, i)}\n              // @ts-expect-error the types need a bit of attention\n              onMouseLeave={onMouseLeaveFromContext(entry, i)}\n              // @ts-expect-error the types need a bit of attention\n              onClick={onClickFromContext(entry, i)}\n            >\n              <ScatterSymbol option={option} isActive={isActive} {...symbolProps} />\n            </Layer>\n          </ZIndexLayer>\n        );\n      })}\n    </>\n  );\n}\n\nfunction SymbolsWithAnimation({\n  previousPointsRef,\n  props,\n}: {\n  previousPointsRef: MutableRefObject<ReadonlyArray<ScatterPointItem> | null>;\n  props: InternalProps;\n}) {\n  const { points, isAnimationActive, animationBegin, animationDuration, animationEasing } = props;\n  const prevPoints = previousPointsRef.current;\n  const animationId = useAnimationId(props, 'recharts-scatter-');\n\n  const [isAnimating, setIsAnimating] = useState(false);\n\n  const handleAnimationEnd = useCallback(() => {\n    // Scatter doesn't have onAnimationEnd prop, and if we want to add it we do it here\n    // if (typeof onAnimationEnd === 'function') {\n    //   onAnimationEnd();\n    // }\n    setIsAnimating(false);\n  }, []);\n\n  const handleAnimationStart = useCallback(() => {\n    // Scatter doesn't have onAnimationStart prop, and if we want to add it we do it here\n    // if (typeof onAnimationStart === 'function') {\n    //   onAnimationStart();\n    // }\n    setIsAnimating(true);\n  }, []);\n\n  const showLabels = !isAnimating;\n\n  return (\n    <ScatterLabelListProvider showLabels={showLabels} points={points}>\n      {props.children}\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        onAnimationEnd={handleAnimationEnd}\n        onAnimationStart={handleAnimationStart}\n        key={animationId}\n      >\n        {(t: number) => {\n          const stepData: ReadonlyArray<ScatterPointItem> =\n            t === 1\n              ? points\n              : points?.map((entry: ScatterPointItem, index: number): ScatterPointItem => {\n                  const prev = prevPoints && prevPoints[index];\n\n                  if (prev) {\n                    return {\n                      ...entry,\n                      cx: entry.cx == null ? undefined : interpolate(prev.cx, entry.cx, t),\n                      cy: entry.cy == null ? undefined : interpolate(prev.cy, entry.cy, t),\n                      size: interpolate(prev.size, entry.size, t),\n                    };\n                  }\n\n                  return { ...entry, size: interpolate(0, entry.size, t) };\n                });\n\n          if (t > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousPointsRef.current = stepData;\n          }\n          return (\n            <Layer>\n              <ScatterSymbols points={stepData} allOtherScatterProps={props} showLabels={showLabels} />\n            </Layer>\n          );\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n    </ScatterLabelListProvider>\n  );\n}\n\nexport function computeScatterPoints({\n  displayedData,\n  xAxis,\n  yAxis,\n  zAxis,\n  scatterSettings,\n  xAxisTicks,\n  yAxisTicks,\n  cells,\n}: {\n  displayedData: ReadonlyArray<any>;\n  xAxis: BaseAxisWithScale;\n  yAxis: BaseAxisWithScale;\n  zAxis: ZAxisWithScale | undefined;\n  scatterSettings: ScatterSettings;\n  xAxisTicks: ReadonlyArray<TickItem> | undefined;\n  yAxisTicks: ReadonlyArray<TickItem> | undefined;\n  cells: ReadonlyArray<ReactElement> | undefined;\n}): ReadonlyArray<ScatterPointItem> {\n  const xAxisDataKey = isNullish(xAxis.dataKey) ? scatterSettings.dataKey : xAxis.dataKey;\n  const yAxisDataKey = isNullish(yAxis.dataKey) ? scatterSettings.dataKey : yAxis.dataKey;\n  const zAxisDataKey = zAxis && zAxis.dataKey;\n  const defaultRangeZ = zAxis ? zAxis.range : implicitZAxis.range;\n  const defaultZ = defaultRangeZ && defaultRangeZ[0];\n  const xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n  const yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n  return displayedData.map((entry, index): ScatterPointItem => {\n    const x = getValueByDataKey(entry, xAxisDataKey);\n    const y = getValueByDataKey(entry, yAxisDataKey);\n    const z = (!isNullish(zAxisDataKey) && getValueByDataKey(entry, zAxisDataKey)) || '-';\n\n    const tooltipPayload: Array<TooltipPayloadEntry> = [\n      {\n        name: isNullish(xAxis.dataKey) ? scatterSettings.name : xAxis.name || String(xAxis.dataKey),\n        unit: xAxis.unit || '',\n        // @ts-expect-error getValueByDataKey does not validate the output type\n        value: x,\n        payload: entry,\n        dataKey: xAxisDataKey,\n        type: scatterSettings.tooltipType,\n      },\n      {\n        name: isNullish(yAxis.dataKey) ? scatterSettings.name : yAxis.name || String(yAxis.dataKey),\n        unit: yAxis.unit || '',\n        // @ts-expect-error getValueByDataKey does not validate the output type\n        value: y,\n        payload: entry,\n        dataKey: yAxisDataKey,\n        type: scatterSettings.tooltipType,\n      },\n    ];\n\n    if (z !== '-' && zAxis != null) {\n      tooltipPayload.push({\n        // @ts-expect-error name prop should not have dataKey in it\n        name: zAxis.name || zAxis.dataKey,\n        unit: zAxis.unit || '',\n        // @ts-expect-error getValueByDataKey does not validate the output type\n        value: z,\n        payload: entry,\n        dataKey: zAxisDataKey,\n        type: scatterSettings.tooltipType,\n      });\n    }\n\n    const cx: number | null = getCateCoordinateOfLine({\n      axis: xAxis,\n      ticks: xAxisTicks,\n      bandSize: xBandSize,\n      entry,\n      index,\n      dataKey: xAxisDataKey,\n    });\n    const cy = getCateCoordinateOfLine({\n      axis: yAxis,\n      ticks: yAxisTicks,\n      bandSize: yBandSize,\n      entry,\n      index,\n      dataKey: yAxisDataKey,\n    });\n    const size = z !== '-' && zAxis != null ? zAxis.scale.map(z) : defaultZ;\n    const radius = size == null ? 0 : Math.sqrt(Math.max(size, 0) / Math.PI);\n\n    return {\n      ...entry,\n      cx,\n      cy,\n      x: cx == null ? undefined : cx - radius,\n      y: cy == null ? undefined : cy - radius,\n      width: 2 * radius,\n      height: 2 * radius,\n      size,\n      node: { x, y, z },\n      tooltipPayload,\n      tooltipPosition: { x: cx, y: cy },\n      payload: entry,\n      ...(cells && cells[index] && cells[index].props),\n    };\n  });\n}\n\nconst errorBarDataPointFormatter: ErrorBarDataPointFormatter<ScatterPointItem> = (\n  dataPoint: ScatterPointItem,\n  dataKey: Props['dataKey'],\n  direction: ErrorBarDirection,\n): ErrorBarDataItem => {\n  return {\n    x: dataPoint.cx,\n    y: dataPoint.cy,\n    value: direction === 'x' ? Number(dataPoint.node.x) : Number(dataPoint.node.y),\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    errorVal: getValueByDataKey(dataPoint, dataKey),\n  };\n};\n\nfunction ScatterWithId(props: InternalProps) {\n  const { hide, points, className, needClip, xAxisId, yAxisId, id } = props;\n  const previousPointsRef = useRef<ReadonlyArray<ScatterPointItem> | null>(null);\n  if (hide) {\n    return null;\n  }\n  const layerClass = clsx('recharts-scatter', className);\n  const clipPathId = id;\n\n  return (\n    <ZIndexLayer zIndex={props.zIndex}>\n      <Layer className={layerClass} clipPath={needClip ? `url(#clipPath-${clipPathId})` : undefined} id={id}>\n        {needClip && (\n          <defs>\n            <GraphicalItemClipPath clipPathId={clipPathId} xAxisId={xAxisId} yAxisId={yAxisId} />\n          </defs>\n        )}\n        <SetErrorBarContext\n          xAxisId={xAxisId}\n          yAxisId={yAxisId}\n          data={points}\n          dataPointFormatter={errorBarDataPointFormatter}\n          errorBarOffset={0}\n        >\n          <Layer key=\"recharts-scatter-symbols\">\n            <SymbolsWithAnimation props={props} previousPointsRef={previousPointsRef} />\n          </Layer>\n        </SetErrorBarContext>\n      </Layer>\n    </ZIndexLayer>\n  );\n}\n\nexport const defaultScatterProps = {\n  xAxisId: 0,\n  yAxisId: 0,\n  zAxisId: 0,\n  label: false,\n  line: false,\n  legendType: 'circle',\n  lineType: 'joint',\n  lineJointType: 'linear',\n  shape: 'circle',\n  hide: false,\n\n  isAnimationActive: 'auto',\n  animationBegin: 0,\n  animationDuration: 400,\n  animationEasing: 'linear',\n  zIndex: DefaultZIndexes.scatter,\n} as const satisfies Partial<Props>;\n\nfunction ScatterImpl(props: WithIdRequired<Props>) {\n  const {\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    hide,\n    isAnimationActive,\n    legendType,\n    lineJointType,\n    lineType,\n    shape,\n    xAxisId,\n    yAxisId,\n    zAxisId,\n    ...everythingElse\n  } = resolveDefaultProps(props, defaultScatterProps);\n\n  const { needClip } = useNeedsClip(xAxisId, yAxisId);\n  const cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n  const isPanorama = useIsPanorama();\n\n  const points = useAppSelector(state => {\n    return selectScatterPoints(state, xAxisId, yAxisId, zAxisId, props.id, cells, isPanorama);\n  });\n  if (needClip == null) {\n    return null;\n  }\n  if (points == null) {\n    return null;\n  }\n  return (\n    <>\n      <SetScatterTooltipEntrySettings\n        dataKey={props.dataKey}\n        points={points}\n        stroke={props.stroke}\n        strokeWidth={props.strokeWidth}\n        fill={props.fill}\n        name={props.name}\n        hide={props.hide}\n        tooltipType={props.tooltipType}\n        id={props.id}\n      />\n      <ScatterWithId\n        {...everythingElse}\n        xAxisId={xAxisId}\n        yAxisId={yAxisId}\n        zAxisId={zAxisId}\n        lineType={lineType}\n        lineJointType={lineJointType}\n        legendType={legendType}\n        shape={shape}\n        hide={hide}\n        isAnimationActive={isAnimationActive}\n        animationBegin={animationBegin}\n        animationDuration={animationDuration}\n        animationEasing={animationEasing}\n        points={points}\n        needClip={needClip}\n      />\n    </>\n  );\n}\n\nfunction ScatterFn(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultScatterProps);\n  const isPanorama = useIsPanorama();\n  return (\n    <RegisterGraphicalItemId id={props.id} type=\"scatter\">\n      {id => (\n        <>\n          <SetLegendPayload legendPayload={computeLegendPayloadFromScatterProps(props)} />\n          <SetCartesianGraphicalItem\n            type=\"scatter\"\n            id={id}\n            data={props.data}\n            xAxisId={props.xAxisId}\n            yAxisId={props.yAxisId}\n            zAxisId={props.zAxisId}\n            dataKey={props.dataKey}\n            hide={props.hide}\n            name={props.name}\n            tooltipType={props.tooltipType}\n            isPanorama={isPanorama}\n          />\n          <ScatterImpl {...props} id={id} />\n        </>\n      )}\n    </RegisterGraphicalItemId>\n  );\n}\n\n/**\n * @provides LabelListContext\n * @provides ErrorBarContext\n * @provides CellReader\n * @consumes CartesianChartContext\n */\nexport const Scatter: ComponentType<Props> = React.memo(ScatterFn, propsAreEqual);\n\nScatter.displayName = 'Scatter';\n","import { XAxisProps, YAxisProps } from '../index';\nimport { AxisDomain } from './types';\nimport { AxisRange } from '../state/selectors/axisSelectors';\nimport { propsAreEqual } from './propsAreEqual';\n\nfunction shortArraysAreEqual(\n  arr1: AxisDomain | AxisRange | undefined,\n  arr2: AxisDomain | AxisRange | undefined,\n): boolean {\n  if (arr1 === arr2) {\n    return true;\n  }\n\n  if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {\n    return arr1[0] === arr2[0] && arr1[1] === arr2[1];\n  }\n\n  return false;\n}\n\n/**\n * Usually we would not compare array props deeply for performance consideration.\n * However, for axis props, domain is sometimes defined as a two-elements array, and range is always\n * a two-elements array. So we can do a shallow comparison for the rest props and a shallow\n * comparison for these two array props.\n * @param prevProps\n * @param nextProps\n */\nexport function axisPropsAreEqual<T extends YAxisProps | XAxisProps>(prevProps: T, nextProps: T): boolean {\n  if (prevProps === nextProps) {\n    return true;\n  }\n  const { domain: prevDomain, range: prevRange, ...prevRest } = prevProps;\n  const { domain: nextDomain, range: nextRange, ...nextRest } = nextProps;\n\n  if (!shortArraysAreEqual(prevDomain, nextDomain)) {\n    return false;\n  }\n\n  if (!shortArraysAreEqual(prevRange, nextRange)) {\n    return false;\n  }\n\n  return propsAreEqual(prevRest, nextRest);\n}\n","/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport { ComponentType, ReactNode, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport {\n  AxisInterval,\n  AxisTick,\n  RenderableAxisProps,\n  PresentationAttributesAdaptChildEvent,\n  AxisDomain,\n  ScaleType,\n  AxisDomainTypeInput,\n  EvaluatedAxisDomainType,\n  TickProp,\n  XAxisTickContentProps,\n} from '../util/types';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport {\n  addXAxis,\n  replaceXAxis,\n  removeXAxis,\n  XAxisOrientation,\n  XAxisPadding,\n  XAxisSettings,\n} from '../state/cartesianAxisSlice';\nimport {\n  implicitXAxis,\n  selectTicksOfAxis,\n  selectXAxisPosition,\n  selectXAxisSettingsNoDefaults,\n  selectXAxisSize,\n} from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\n\ninterface XAxisProps extends Omit<RenderableAxisProps, 'domain' | 'scale' | 'tick'> {\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * `auto`: the type is inferred based on the chart layout.\n   *\n   * @defaultValue category\n   */\n  type?: AxisDomainTypeInput;\n  /**\n   * Unique ID that represents this XAxis.\n   * Required when there are multiple XAxes.\n   *\n   * @defaultValue 0\n   */\n  xAxisId?: string | number;\n  /**\n   * Height of the axis in pixels.\n   *\n   * @defaultValue 30\n   */\n  height?: number;\n  /**\n   * If set true, flips ticks around the axis line, displaying the labels inside the chart instead of outside.\n   * @defaultValue false\n   */\n  mirror?: boolean;\n  /**\n   * The orientation of axis\n   * @defaultValue bottom\n   */\n  orientation?: XAxisOrientation;\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <XAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <XAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <XAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <XAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <XAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <XAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <XAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <XAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <XAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <XAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n  /**\n   * Defines how the individual label text is rendered.\n   * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.\n   *\n   * If you want to customize the overall axis label, use the `label` prop instead.\n   *\n   * Options:\n   * - `false`: Do not render any tick labels.\n   * - `true`: Render tick labels with default settings.\n   * - `object`: An object of props to be merged into the internally calculated tick props.\n   * - `ReactElement`: A custom React element to be used as the tick label.\n   * - `function`: A function that returns a React element for custom rendering of tick labels.\n   *\n   * @defaultValue true\n   */\n  tick?: TickProp<XAxisTickContentProps>;\n  /**\n   * Ticks can be any type when the axis is the type of category\n   * Ticks must be numbers when the axis is the type of number\n   */\n  ticks?: ReadonlyArray<AxisTick>;\n  /**\n   * Axis padding is the distance between the edge of plot area and the first/last tick.\n   *\n   * @defaultValue {\"left\":0,\"right\":0}\n   */\n  padding?: XAxisPadding;\n  /**\n   * The minimum gap between two adjacent tick labels\n   *\n   * @defaultValue 5\n   */\n  minTickGap?: number;\n  /**\n   * If set 0, all the ticks will be shown. If set preserveStart\", \"preserveEnd\" or \"preserveStartEnd\", the ticks which is to be shown or hidden will be calculated automatically.\n   * @defaultValue preserveEnd\n   */\n  interval?: AxisInterval;\n  /**\n   * The margin between tick line and tick.\n   */\n  tickMargin?: number;\n}\n\nexport type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'scale' | 'ref'> & XAxisProps;\n\nfunction SetXAxisSettings(props: Omit<XAxisSettings, 'type'> & { type: AxisDomainTypeInput }): ReactNode {\n  const dispatch = useAppDispatch();\n  const prevSettingsRef = useRef<XAxisSettings | null>(null);\n  const layout = useCartesianChartLayout();\n  const { type: typeFromProps, ...restProps } = props;\n  const evaluatedType: EvaluatedAxisDomainType | undefined = getAxisTypeBasedOnLayout(layout, 'xAxis', typeFromProps);\n\n  const settings: XAxisSettings | undefined = useMemo(() => {\n    if (evaluatedType == null) {\n      return undefined;\n    }\n    return {\n      ...restProps,\n      type: evaluatedType,\n    };\n  }, [restProps, evaluatedType]);\n\n  useLayoutEffect(() => {\n    if (settings == null) {\n      return;\n    }\n    if (prevSettingsRef.current === null) {\n      dispatch(addXAxis(settings));\n    } else if (prevSettingsRef.current !== settings) {\n      dispatch(replaceXAxis({ prev: prevSettingsRef.current, next: settings }));\n    }\n    prevSettingsRef.current = settings;\n  }, [settings, dispatch]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevSettingsRef.current) {\n        dispatch(removeXAxis(prevSettingsRef.current));\n        prevSettingsRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n\nconst XAxisImpl = (props: PropsWithDefaults) => {\n  const { xAxisId, className } = props;\n  const viewBox = useAppSelector(selectAxisViewBox);\n  const isPanorama = useIsPanorama();\n  const axisType = 'xAxis';\n  const cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));\n  const axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));\n  const position = useAppSelector(state => selectXAxisPosition(state, xAxisId));\n  /*\n   * Here we select settings from the store and prefer to use them instead of the actual props\n   * so that the chart is consistent. If we used the props directly, some components will use axis settings\n   * from state and some from props and because there is a render step between these two, they might be showing different things.\n   * https://github.com/recharts/recharts/issues/6257\n   */\n  const synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));\n\n  if (axisSize == null || position == null || synchronizedSettings == null) {\n    return null;\n  }\n\n  const { dangerouslySetInnerHTML, ticks, scale: del, ...allOtherProps } = props;\n  const { id, scale: del2, ...restSynchronizedSettings } = synchronizedSettings;\n\n  return (\n    <CartesianAxis\n      {...allOtherProps}\n      {...restSynchronizedSettings}\n      x={position.x}\n      y={position.y}\n      width={axisSize.width}\n      height={axisSize.height}\n      className={clsx(`recharts-${axisType} ${axisType}`, className)}\n      viewBox={viewBox}\n      ticks={cartesianTickItems}\n      axisType={axisType}\n    />\n  );\n};\n\nexport const xAxisDefaultProps = {\n  allowDataOverflow: implicitXAxis.allowDataOverflow,\n  allowDecimals: implicitXAxis.allowDecimals,\n  allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,\n  angle: implicitXAxis.angle,\n  axisLine: defaultCartesianAxisProps.axisLine,\n  height: implicitXAxis.height,\n  hide: false,\n  includeHidden: implicitXAxis.includeHidden,\n  interval: implicitXAxis.interval,\n  label: false,\n  minTickGap: implicitXAxis.minTickGap,\n  mirror: implicitXAxis.mirror,\n  orientation: implicitXAxis.orientation,\n  padding: implicitXAxis.padding,\n  reversed: implicitXAxis.reversed,\n  scale: implicitXAxis.scale,\n  tick: implicitXAxis.tick,\n  tickCount: implicitXAxis.tickCount,\n  tickLine: defaultCartesianAxisProps.tickLine,\n  tickSize: defaultCartesianAxisProps.tickSize,\n  type: implicitXAxis.type,\n  xAxisId: 0,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof xAxisDefaultProps>;\n\nconst XAxisSettingsDispatcher = (outsideProps: Props) => {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, xAxisDefaultProps);\n  return (\n    <>\n      <SetXAxisSettings\n        allowDataOverflow={props.allowDataOverflow}\n        allowDecimals={props.allowDecimals}\n        allowDuplicatedCategory={props.allowDuplicatedCategory}\n        angle={props.angle}\n        dataKey={props.dataKey}\n        domain={props.domain}\n        height={props.height}\n        hide={props.hide}\n        id={props.xAxisId}\n        includeHidden={props.includeHidden}\n        interval={props.interval}\n        minTickGap={props.minTickGap}\n        mirror={props.mirror}\n        name={props.name}\n        orientation={props.orientation}\n        padding={props.padding}\n        reversed={props.reversed}\n        scale={props.scale}\n        tick={props.tick}\n        tickCount={props.tickCount}\n        tickFormatter={props.tickFormatter}\n        ticks={props.ticks}\n        type={props.type}\n        unit={props.unit}\n      />\n      <XAxisImpl {...props} />\n    </>\n  );\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport const XAxis: ComponentType<Props> = React.memo(XAxisSettingsDispatcher, axisPropsAreEqual);\n\nXAxis.displayName = 'XAxis';\n","import * as React from 'react';\nimport { ComponentType, isValidElement, SVGProps, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport {\n  AxisDomainTypeInput,\n  AxisInterval,\n  AxisTick,\n  RenderableAxisProps,\n  PresentationAttributesAdaptChildEvent,\n  Size,\n  AxisDomain,\n  ScaleType,\n  EvaluatedAxisDomainType,\n  TickProp,\n  YAxisTickContentProps,\n} from '../util/types';\nimport { CartesianAxis, CartesianAxisRef, defaultCartesianAxisProps } from './CartesianAxis';\nimport {\n  addYAxis,\n  replaceYAxis,\n  removeYAxis,\n  updateYAxisWidth,\n  YAxisOrientation,\n  YAxisPadding,\n  YAxisSettings,\n  YAxisWidth,\n} from '../state/cartesianAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport {\n  implicitYAxis,\n  selectTicksOfAxis,\n  selectYAxisPosition,\n  selectYAxisSettingsNoDefaults,\n  selectYAxisSize,\n} from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\n\ninterface YAxisProps extends Omit<RenderableAxisProps, 'axisLine' | 'domain' | 'scale' | 'tick'> {\n  /**\n   * Determines how the axis line is drawn. Options:\n   * - `true`: the axis line is drawn with default props;\n   * - `false`: the axis line is not visible;\n   * - `object`: passed as props to SVG `<line>` element representing the axis line.\n   *\n   * @example <YAxis axisLine={false} />\n   * @example <YAxis axisLine={{ stroke: 'red', strokeWidth: 2 }} />\n   * @defaultValue true\n   */\n  axisLine?: boolean | SVGProps<SVGLineElement>;\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * `auto`: the type is inferred based on the chart layout.\n   *\n   * @defaultValue number\n   */\n  type?: AxisDomainTypeInput;\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <YAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <YAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <YAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <YAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <YAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <YAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <YAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <YAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <YAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <YAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n  /**\n   * Unique ID that represents this YAxis.\n   * Required when there are multiple YAxes.\n   *\n   * @defaultValue 0\n   */\n  yAxisId?: string | number;\n  /**\n   * Defines how the individual label text is rendered.\n   * This controls the settings for individual ticks; on a typical axis, there are multiple ticks, depending on your data.\n   *\n   * If you want to customize the overall axis label, use the `label` prop instead.\n   *\n   * Options:\n   * - `false`: Do not render any tick labels.\n   * - `true`: Render tick labels with default settings.\n   * - `object`: An object of props to be merged into the internally calculated tick props.\n   * - `ReactElement`: A custom React element to be used as the tick label.\n   * - `function`: A function that returns a React element for custom rendering of tick labels.\n   *\n   * @defaultValue true\n   */\n  tick?: TickProp<YAxisTickContentProps>;\n  /**\n   * Ticks can be any type when the axis is the type of category\n   * Ticks must be numbers when the axis is the type of number\n   */\n  ticks?: ReadonlyArray<AxisTick>;\n  /**\n   * Width of the axis in pixels.\n   * `auto` will attempt to resize the axis based on its content.\n   *\n   * @defaultValue 60\n   */\n  width?: YAxisWidth;\n  /**\n   * If set true, flips ticks around the axis line, displaying the labels inside the chart instead of outside.\n   * @defaultValue false\n   */\n  mirror?: boolean;\n  /**\n   * The orientation of axis.\n   * @defaultValue left\n   */\n  orientation?: YAxisOrientation;\n  /**\n   * Axis padding is the distance between the edge of plot area and the first/last tick.\n   *\n   * @defaultValue {\"top\":0,\"bottom\":0}\n   */\n  padding?: YAxisPadding;\n  /**\n   * The minimum gap between two adjacent tick labels\n   *\n   * @defaultValue 5\n   */\n  minTickGap?: number;\n  /**\n   * If set 0, all the ticks will be shown. If set \"preserveStart\", \"preserveEnd\" or \"preserveStartEnd\",\n   * the ticks which is to be shown or hidden will be calculated automatically.\n   *\n   * @defaultValue preserveEnd\n   */\n  interval?: AxisInterval;\n  /**\n   * The margin between tick line and tick.\n   */\n  tickMargin?: number;\n}\n\nexport type Props = Omit<PresentationAttributesAdaptChildEvent<any, SVGElement>, 'scale' | 'ref'> & YAxisProps;\n\nfunction SetYAxisSettings(props: Omit<YAxisSettings, 'type'> & { type: AxisDomainTypeInput }): null {\n  const dispatch = useAppDispatch();\n  const prevSettingsRef = useRef<YAxisSettings | null>(null);\n  const layout = useCartesianChartLayout();\n  const { type: typeFromProps, ...restProps } = props;\n  const evaluatedType: EvaluatedAxisDomainType | undefined = getAxisTypeBasedOnLayout(layout, 'yAxis', typeFromProps);\n\n  const settings: YAxisSettings | undefined = useMemo(() => {\n    if (evaluatedType == null) {\n      return undefined;\n    }\n    return {\n      ...restProps,\n      type: evaluatedType,\n    };\n  }, [evaluatedType, restProps]);\n\n  useLayoutEffect(() => {\n    if (settings == null) {\n      return;\n    }\n    if (prevSettingsRef.current === null) {\n      dispatch(addYAxis(settings));\n    } else if (prevSettingsRef.current !== settings) {\n      dispatch(replaceYAxis({ prev: prevSettingsRef.current, next: settings }));\n    }\n    prevSettingsRef.current = settings;\n  }, [settings, dispatch]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevSettingsRef.current) {\n        dispatch(removeYAxis(prevSettingsRef.current));\n        prevSettingsRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n\nfunction YAxisImpl(props: PropsWithDefaults) {\n  const { yAxisId, className, width, label } = props;\n\n  const cartesianAxisRef = useRef<CartesianAxisRef>(null);\n  const labelRef = useRef(null);\n\n  const viewBox = useAppSelector(selectAxisViewBox);\n  const isPanorama = useIsPanorama();\n  const dispatch = useAppDispatch();\n  const axisType = 'yAxis';\n  const axisSize: Size | undefined = useAppSelector(state => selectYAxisSize(state, yAxisId));\n  const position = useAppSelector(state => selectYAxisPosition(state, yAxisId));\n  const cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));\n  /*\n   * Here we select settings from the store and prefer to use them instead of the actual props\n   * so that the chart is consistent. If we used the props directly, some components will use axis settings\n   * from state and some from props and because there is a render step between these two, they might be showing different things.\n   * https://github.com/recharts/recharts/issues/6257\n   */\n  const synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));\n\n  useLayoutEffect(() => {\n    // No dynamic width calculation is done when width !== 'auto'\n    // or when a function/react element is used for label\n    if (\n      width !== 'auto' ||\n      !axisSize ||\n      isLabelContentAFunction(label) ||\n      isValidElement(label) ||\n      synchronizedSettings == null\n    ) {\n      return;\n    }\n\n    const axisComponent = cartesianAxisRef.current;\n    if (!axisComponent) {\n      return;\n    }\n\n    const updatedYAxisWidth = axisComponent.getCalculatedWidth();\n\n    // if the width has changed, dispatch an action to update the width\n    if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {\n      dispatch(updateYAxisWidth({ id: yAxisId, width: updatedYAxisWidth }));\n    }\n  }, [\n    // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n    // The ref will be populated by then.\n    // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n    cartesianTickItems,\n    axisSize,\n    dispatch,\n    label,\n    yAxisId,\n    width,\n    synchronizedSettings,\n  ]);\n\n  if (axisSize == null || position == null || synchronizedSettings == null) {\n    return null;\n  }\n\n  const { dangerouslySetInnerHTML, ticks, scale: del, ...allOtherProps } = props;\n  const { id, scale: del2, ...restSynchronizedSettings } = synchronizedSettings;\n\n  return (\n    <CartesianAxis\n      {...allOtherProps}\n      {...restSynchronizedSettings}\n      ref={cartesianAxisRef}\n      labelRef={labelRef}\n      x={position.x}\n      y={position.y}\n      tickTextProps={width === 'auto' ? { width: undefined } : { width }}\n      width={axisSize.width}\n      height={axisSize.height}\n      className={clsx(`recharts-${axisType} ${axisType}`, className)}\n      viewBox={viewBox}\n      ticks={cartesianTickItems}\n      axisType={axisType}\n    />\n  );\n}\n\nexport const yAxisDefaultProps = {\n  allowDataOverflow: implicitYAxis.allowDataOverflow,\n  allowDecimals: implicitYAxis.allowDecimals,\n  allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,\n  angle: implicitYAxis.angle,\n  axisLine: defaultCartesianAxisProps.axisLine,\n  hide: false,\n  includeHidden: implicitYAxis.includeHidden,\n  interval: implicitYAxis.interval,\n  label: false,\n  minTickGap: implicitYAxis.minTickGap,\n  mirror: implicitYAxis.mirror,\n  orientation: implicitYAxis.orientation,\n  padding: implicitYAxis.padding,\n  reversed: implicitYAxis.reversed,\n  scale: implicitYAxis.scale,\n  tick: implicitYAxis.tick,\n  tickCount: implicitYAxis.tickCount,\n  tickLine: defaultCartesianAxisProps.tickLine,\n  tickSize: defaultCartesianAxisProps.tickSize,\n  type: implicitYAxis.type,\n  width: implicitYAxis.width,\n  yAxisId: 0,\n} as const satisfies Partial<Props>;\n\ntype PropsWithDefaults = RequiresDefaultProps<Props, typeof yAxisDefaultProps>;\n\nconst YAxisSettingsDispatcher = (outsideProps: Props) => {\n  const props: PropsWithDefaults = resolveDefaultProps(outsideProps, yAxisDefaultProps);\n  return (\n    <>\n      <SetYAxisSettings\n        interval={props.interval}\n        id={props.yAxisId}\n        scale={props.scale}\n        type={props.type}\n        domain={props.domain}\n        allowDataOverflow={props.allowDataOverflow}\n        dataKey={props.dataKey}\n        allowDuplicatedCategory={props.allowDuplicatedCategory}\n        allowDecimals={props.allowDecimals}\n        tickCount={props.tickCount}\n        padding={props.padding}\n        includeHidden={props.includeHidden}\n        reversed={props.reversed}\n        ticks={props.ticks}\n        width={props.width}\n        orientation={props.orientation}\n        mirror={props.mirror}\n        hide={props.hide}\n        unit={props.unit}\n        name={props.name}\n        angle={props.angle}\n        minTickGap={props.minTickGap}\n        tick={props.tick}\n        tickFormatter={props.tickFormatter}\n      />\n      <YAxisImpl {...props} />\n    </>\n  );\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport const YAxis: ComponentType<Props> = React.memo(YAxisSettingsDispatcher, axisPropsAreEqual);\n\nYAxis.displayName = 'YAxis';\n","import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { AxisDomain, BaseAxisProps, ScaleType } from '../util/types';\nimport { addZAxis, AxisId, removeZAxis, replaceZAxis, ZAxisSettings } from '../state/cartesianAxisSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { AxisRange, implicitZAxis } from '../state/selectors/axisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';\n\nfunction SetZAxisSettings(settings: ZAxisSettings): null {\n  const dispatch = useAppDispatch();\n  const prevSettingsRef = useRef<ZAxisSettings | null>(null);\n\n  useLayoutEffect(() => {\n    if (prevSettingsRef.current === null) {\n      dispatch(addZAxis(settings));\n    } else if (prevSettingsRef.current !== settings) {\n      dispatch(replaceZAxis({ prev: prevSettingsRef.current, next: settings }));\n    }\n    prevSettingsRef.current = settings;\n  }, [settings, dispatch]);\n\n  useLayoutEffect(() => {\n    return () => {\n      if (prevSettingsRef.current) {\n        dispatch(removeZAxis(prevSettingsRef.current));\n        prevSettingsRef.current = null;\n      }\n    };\n  }, [dispatch]);\n\n  return null;\n}\n\nexport interface Props extends Omit<BaseAxisProps, 'domain'> {\n  /**\n   * The type of axis.\n   *\n   * `category`: Treats data as distinct values.\n   * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n   *\n   * `number`: Treats data as continuous range.\n   * Values that are numerically closer are placed closer together on the axis.\n   *\n   * @defaultValue number\n   */\n  type?: 'number' | 'category';\n  /**\n   * The unique id of z-axis.\n   *\n   * @defaultValue 0\n   */\n  zAxisId?: AxisId;\n  /**\n   * The range of axis.\n   * Unlike other axes, the range of z-axis is not informed by chart dimensions.\n   *\n   * @defaultValue [64,64]\n   */\n  range?: AxisRange;\n  /**\n   * Specify the domain of axis when the axis is a number axis.\n   *\n   * If undefined, then the domain is calculated based on the data and dataKeys.\n   *\n   * The length of domain should be 2, and we will validate the values in domain.\n   *\n   * Each element in the array can be a number, 'auto', 'dataMin', 'dataMax', a string like 'dataMin - 20', 'dataMax + 100',\n   * or a function that accepts a single argument and returns a number.\n   *\n   * If any element of domain is set to be 'auto', comprehensible scale ticks will be calculated, and the final domain of axis is generated by the ticks.\n   * If a function, receives '[dataMin, dataMax]', and must return a computed domain as '[min, max]'.\n   *\n   * @example <ZAxis type=\"number\" domain={['dataMin', 'dataMax']} />\n   * @example <ZAxis type=\"number\" domain={[0, 'dataMax']} />\n   * @example <ZAxis type=\"number\" domain={['auto', 'auto']} />\n   * @example <ZAxis type=\"number\" domain={[0, 'dataMax + 1000']} />\n   * @example <ZAxis type=\"number\" domain={['dataMin - 100', 'dataMax + 100']} />\n   * @example <ZAxis type=\"number\" domain={[dataMin => (0 - Math.abs(dataMin)), dataMax => (dataMax * 2)]} />\n   * @example <ZAxis type=\"number\" domain={([dataMin, dataMax]) => { const absMax = Math.max(Math.abs(dataMin), Math.abs(dataMax)); return [-absMax, absMax]; }} />\n   * @example <ZAxis type=\"number\" domain={[0, 100]} allowDataOverflow />\n   */\n  domain?: AxisDomain;\n  /**\n   * Scale function determines how data values are mapped to visual values.\n   * In other words, decided the mapping between data domain and coordinate range.\n   *\n   * If undefined, or 'auto', the scale function is created internally according to the type of axis and data.\n   *\n   * You can define a custom scale, either as a string shortcut to a d3 scale, or as a complete scale definition object.\n   *\n   * @defaultValue auto\n   * @example <ZAxis scale=\"log\" />\n   * @example\n   * import { scaleLog } from 'd3-scale';\n   * const scale = scaleLog().base(Math.E);\n   * <ZAxis scale={scale} />\n   */\n  scale?:\n    | ScaleType\n    | CustomScaleDefinition\n    | CustomScaleDefinition<string>\n    | CustomScaleDefinition<number>\n    | CustomScaleDefinition<Date>;\n}\n\nexport const zAxisDefaultProps = {\n  zAxisId: 0,\n  range: implicitZAxis.range,\n  scale: implicitZAxis.scale,\n  type: implicitZAxis.type,\n} as const satisfies Partial<Props>;\n\n/**\n * Virtual axis, does not render anything itself. Has no ticks, grid lines, or labels.\n * Useful for dynamically setting Scatter point size, based on data.\n *\n * @consumes CartesianViewBoxContext\n */\nexport function ZAxis(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, zAxisDefaultProps);\n  return (\n    <SetZAxisSettings\n      domain={props.domain}\n      id={props.zAxisId}\n      dataKey={props.dataKey}\n      name={props.name}\n      unit={props.unit}\n      range={props.range}\n      scale={props.scale}\n      type={props.type}\n      allowDuplicatedCategory={implicitZAxis.allowDuplicatedCategory}\n      allowDataOverflow={implicitZAxis.allowDataOverflow}\n      reversed={implicitZAxis.reversed}\n      includeHidden={implicitZAxis.includeHidden}\n    />\n  );\n}\n\nZAxis.displayName = 'ZAxis';\n","import * as React from 'react';\nimport { CSSProperties, useCallback, useEffect, useRef, useState } from 'react';\nimport { noop } from '../util/DataUtils';\nimport { AnimationManager, ReactSmoothStyle } from './AnimationManager';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAnimationManager } from './useAnimationManager';\nimport { getTransitionVal } from './util';\nimport { Global } from '../util/Global';\n\ntype CSSTransitionAnimateProps = {\n  animationId: string;\n  animationManager?: AnimationManager;\n  duration?: number;\n  begin?: number;\n  easing?: string;\n  isActive?: boolean | 'auto';\n  canBegin?: boolean;\n  from: string;\n  to: string;\n  attributeName: string;\n  onAnimationStart?: () => void;\n  onAnimationEnd?: () => void;\n  children: (style: CSSProperties | undefined) => React.ReactNode;\n};\n\nconst defaultProps = {\n  begin: 0,\n  duration: 1000,\n  easing: 'ease',\n  isActive: true,\n  canBegin: true,\n  onAnimationEnd: () => {},\n  onAnimationStart: () => {},\n} as const satisfies Partial<CSSTransitionAnimateProps>;\n\nexport function CSSTransitionAnimate(outsideProps: CSSTransitionAnimateProps) {\n  const props = resolveDefaultProps(outsideProps, defaultProps);\n  const {\n    animationId,\n    from,\n    to,\n    attributeName,\n    isActive: isActiveProp,\n    canBegin,\n    duration,\n    easing,\n    begin,\n    onAnimationEnd,\n    onAnimationStart: onAnimationStartFromProps,\n    children,\n  } = props;\n\n  const isActive = isActiveProp === 'auto' ? !Global.isSsr : isActiveProp;\n\n  const animationManager = useAnimationManager(animationId + attributeName, props.animationManager);\n  const [style, setStyle] = useState<ReactSmoothStyle>(() => {\n    if (!isActive) {\n      return to;\n    }\n    return from;\n  });\n  const initialized = useRef(false);\n\n  const onAnimationStart = useCallback(() => {\n    setStyle(from);\n    onAnimationStartFromProps();\n  }, [from, onAnimationStartFromProps]);\n\n  useEffect(() => {\n    if (!isActive || !canBegin) {\n      return noop;\n    }\n\n    initialized.current = true;\n    const unsubscribe = animationManager.subscribe(setStyle);\n    animationManager.start([onAnimationStart, begin, to, duration, onAnimationEnd]);\n\n    return () => {\n      animationManager.stop();\n      if (unsubscribe) {\n        unsubscribe();\n      }\n      onAnimationEnd();\n    };\n  }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager, to, from]);\n\n  if (!isActive) {\n    /*\n     * With isActive=false, the component always renders with the final style, immediately,\n     * and ignores all other props.\n     * Also there is no transition applied.\n     */\n    return children({\n      [attributeName]: to,\n    });\n  }\n  if (!canBegin) {\n    return children({\n      [attributeName]: from,\n    });\n  }\n\n  if (initialized.current) {\n    const transition = getTransitionVal([attributeName], duration, easing);\n    return children({\n      transition,\n      [attributeName]: style,\n    });\n  }\n  return children({\n    [attributeName]: from,\n  });\n}\n","/**\n * @fileOverview Render a group of error bar\n */\nimport * as React from 'react';\nimport { SVGProps } from 'react';\nimport { Layer } from '../container/Layer';\nimport { AnimationTiming, DataKey, RectangleCoordinate } from '../util/types';\nimport { BarRectangleItem } from './Bar';\nimport { LinePointItem } from './Line';\nimport { ScatterPointItem } from './Scatter';\nimport { ReportErrorBarSettings, useErrorBarContext } from '../context/ErrorBarContext';\nimport { useXAxis, useYAxis } from '../hooks';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';\nimport { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\nexport interface ErrorBarDataItem {\n  x: number | undefined;\n  y: number | undefined;\n  value: number;\n  errorVal?: number[] | number;\n}\n\n/**\n * So usually the direction is decided by the chart layout.\n * Horizontal layout means error bars are vertical means direction=y\n * Vertical layout means error bars are horizontal means direction=x\n *\n * Except! In Scatter chart, error bars can go both ways.\n *\n * So this property is only ever used in Scatter chart, and ignored elsewhere.\n */\nexport type ErrorBarDirection = 'x' | 'y';\n\nexport type ErrorBarDataPointFormatter<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = (\n  entry: T,\n  dataKey: DataKey<any>,\n  direction: ErrorBarDirection,\n) => ErrorBarDataItem;\n\n/**\n * External ErrorBar props, visible for users of the library\n */\ninterface ErrorBarProps extends ZIndexable {\n  /**\n   * Decides how to extract the value of this ErrorBar from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this ErrorBar.\n   *\n   * The error values can be a single value for symmetric error bars;\n   * or an array of a lower and upper error value for asymmetric error bars.\n   */\n  dataKey: DataKey<any>;\n  /**\n   * Width of the error bar ends (the serifs) in pixels.\n   * This is not the total width of the error bar, but just the width of the little lines at the ends.\n   *\n   * The total width of the error bar is determined by the data value plus/minus the error value.\n   *\n   * @defaultValue 5\n   */\n  width?: number;\n  /**\n   * Direction of the error bar. Usually determined by chart layout, except in Scatter chart.\n   * In Scatter chart, \"x\" means horizontal error bars, \"y\" means vertical error bars.\n   */\n  direction?: ErrorBarDirection;\n  /**\n   * @defaultValue true\n   */\n  isAnimationActive?: boolean;\n  /**\n   * @defaultValue 0\n   */\n  animationBegin?: number;\n  /**\n   * @defaultValue 400\n   */\n  animationDuration?: number;\n  /**\n   * @defaultValue ease-in-out\n   */\n  animationEasing?: AnimationTiming;\n  /**\n   * The width of the stroke\n   */\n  strokeWidth?: number | string;\n  /**\n   * The stroke color. If \"none\", no line will be drawn.\n   *\n   * @defaultValue black\n   */\n  stroke?: string;\n  /**\n   * @defaultValue 400\n   */\n  zIndex?: number;\n}\n\nexport type Props = SVGProps<SVGLineElement> & ErrorBarProps;\n\n/**\n * Props after defaults, and required props have been applied.\n */\ntype ErrorBarInternalProps = SVGProps<SVGLineElement> & {\n  dataKey: DataKey<any>;\n  /** the width of the error bar ends */\n  width: number;\n  /**\n   * Only used for ScatterChart with error bars in two directions.\n   * Only accepts a value of \"x\" or \"y\" and makes the error bars lie in that direction.\n   */\n  direction: ErrorBarDirection;\n  isAnimationActive: boolean;\n  animationBegin: number;\n  animationDuration: number;\n  animationEasing: AnimationTiming;\n};\n\nfunction ErrorBarImpl(props: ErrorBarInternalProps) {\n  const {\n    direction,\n    width,\n    dataKey,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    ...others\n  } = props;\n  const svgProps = svgPropertiesNoEvents(others);\n\n  const { data, dataPointFormatter, xAxisId, yAxisId, errorBarOffset: offset } = useErrorBarContext();\n\n  const xAxis = useXAxis(xAxisId);\n  const yAxis = useYAxis(yAxisId);\n\n  if (xAxis?.scale == null || yAxis?.scale == null || data == null) {\n    return null;\n  }\n\n  // ErrorBar requires type number XAxis, why?\n  if (direction === 'x' && xAxis.type !== 'number') {\n    return null;\n  }\n\n  const errorBars = data.map((entry: any, dataIndex: number) => {\n    const { x, y, value, errorVal } = dataPointFormatter(entry, dataKey, direction);\n\n    if (!errorVal || x == null || y == null) {\n      return null;\n    }\n\n    const lineCoordinates: Array<RectangleCoordinate> = [];\n    let lowBound: number, highBound: number;\n\n    if (Array.isArray(errorVal)) {\n      const [low, high] = errorVal;\n      if (low == null || high == null) {\n        return null;\n      }\n      lowBound = low;\n      highBound = high;\n    } else {\n      lowBound = highBound = errorVal;\n    }\n\n    if (direction === 'x') {\n      // error bar for horizontal charts, the y is fixed, x is a range value\n      const { scale } = xAxis;\n\n      const yMid = y + offset;\n      const yMin = yMid + width;\n      const yMax = yMid - width;\n\n      const xMin = scale.map(value - lowBound);\n      const xMax = scale.map(value + highBound);\n\n      if (xMin != null && xMax != null) {\n        // the right line of |--|\n        lineCoordinates.push({ x1: xMax, y1: yMin, x2: xMax, y2: yMax });\n        // the middle line of |--|\n        lineCoordinates.push({ x1: xMin, y1: yMid, x2: xMax, y2: yMid });\n        // the left line of |--|\n        lineCoordinates.push({ x1: xMin, y1: yMin, x2: xMin, y2: yMax });\n      }\n    } else if (direction === 'y') {\n      // error bar for horizontal charts, the x is fixed, y is a range value\n      const { scale } = yAxis;\n\n      const xMid = x + offset;\n      const xMin = xMid - width;\n      const xMax = xMid + width;\n\n      const yMin = scale.map(value - lowBound);\n      const yMax = scale.map(value + highBound);\n\n      if (yMin != null && yMax != null) {\n        // the top line\n        lineCoordinates.push({ x1: xMin, y1: yMax, x2: xMax, y2: yMax });\n        // the middle line\n        lineCoordinates.push({ x1: xMid, y1: yMin, x2: xMid, y2: yMax });\n        // the bottom line\n        lineCoordinates.push({ x1: xMin, y1: yMin, x2: xMax, y2: yMin });\n      }\n    }\n\n    const scaleDirection: string = direction === 'x' ? 'scaleX' : 'scaleY';\n\n    const transformOrigin = `${x + offset}px ${y + offset}px`;\n\n    return (\n      <Layer className=\"recharts-errorBar\" key={`bar-${x}-${y}-${value}-${dataIndex}`} {...svgProps}>\n        {lineCoordinates.map((c, lineIndex) => {\n          const lineStyle = isAnimationActive ? { transformOrigin } : undefined;\n          return (\n            <CSSTransitionAnimate\n              animationId={`error-bar-${direction}_${c.x1}-${c.x2}-${c.y1}-${c.y2}`}\n              from={`${scaleDirection}(0)`}\n              to={`${scaleDirection}(1)`}\n              attributeName=\"transform\"\n              begin={animationBegin}\n              easing={animationEasing}\n              isActive={isAnimationActive}\n              duration={animationDuration}\n              key={`errorbar-${dataIndex}-${c.x1}-${c.y1}-${c.x2}-${c.y2}-${lineIndex}`}\n            >\n              {style => <line {...c} style={{ ...lineStyle, ...style }} />}\n            </CSSTransitionAnimate>\n          );\n        })}\n      </Layer>\n    );\n  });\n\n  return <Layer className=\"recharts-errorBars\">{errorBars}</Layer>;\n}\n\nfunction useErrorBarDirection(directionFromProps: ErrorBarDirection | undefined): ErrorBarDirection {\n  const layout = useChartLayout();\n  if (directionFromProps != null) {\n    return directionFromProps;\n  }\n  if (layout != null) {\n    return layout === 'horizontal' ? 'y' : 'x';\n  }\n  return 'x';\n}\n\nexport const errorBarDefaultProps = {\n  stroke: 'black',\n  strokeWidth: 1.5,\n  width: 5,\n  offset: 0,\n  isAnimationActive: true,\n  animationBegin: 0,\n  animationDuration: 400,\n  animationEasing: 'ease-in-out',\n  zIndex: DefaultZIndexes.line,\n} as const satisfies Partial<Props>;\n\n/**\n * ErrorBar renders whiskers to represent error margins on a chart.\n *\n * It must be a child of a graphical element.\n *\n * ErrorBar expects data in one of the following forms:\n * - Symmetric error bars: a single error value representing both lower and upper bounds.\n * - Asymmetric error bars: an array of two values representing lower and upper bounds separately. First value is the lower bound, second value is the upper bound.\n *\n * The values provided are relative to the main data value.\n * For example, if the main data value is 10 and the error value is 2,\n * the error bar will extend from 8 to 12 for symmetric error bars.\n *\n * In other words, what ErrorBar will render is:\n * - For symmetric error bars: [value - errorVal, value + errorVal]\n * - For asymmetric error bars: [value - errorVal[0], value + errorVal[1]]\n *\n * In stacked or ranged Bar charts, ErrorBar will use the higher data value\n * as the reference point for calculating the error bar positions.\n *\n * @consumes ErrorBarContext\n */\nexport function ErrorBar(outsideProps: Props) {\n  const realDirection: ErrorBarDirection = useErrorBarDirection(outsideProps.direction);\n  const props = resolveDefaultProps(outsideProps, errorBarDefaultProps);\n  const { width, isAnimationActive, animationBegin, animationDuration, animationEasing, zIndex } = props;\n\n  return (\n    <>\n      <ReportErrorBarSettings dataKey={props.dataKey} direction={realDirection} />\n      <ZIndexLayer zIndex={zIndex}>\n        <ErrorBarImpl\n          {...props}\n          direction={realDirection}\n          width={width}\n          isAnimationActive={isAnimationActive}\n          animationBegin={animationBegin}\n          animationDuration={animationDuration}\n          animationEasing={animationEasing}\n        />\n      </ZIndexLayer>\n    </>\n  );\n}\n\nErrorBar.displayName = 'ErrorBar';\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { ActiveTooltipProps } from '../tooltipSlice';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from './tooltipSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineActiveProps, selectOrderedTooltipTicks } from './selectors';\nimport { selectPolarViewBox } from './polarAxisSelectors';\nimport { ChartPointer } from '../../util/types';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\n\nconst pickChartPointer = (_state: RechartsRootState, chartPointer: ChartPointer) => chartPointer;\n\nexport const selectActivePropsFromChartPointer: (\n  state: RechartsRootState,\n  chartPointer: ChartPointer,\n) => ActiveTooltipProps | undefined = createSelector(\n  [\n    pickChartPointer,\n    selectChartLayout,\n    selectPolarViewBox,\n    selectTooltipAxisType,\n    selectTooltipAxisRangeWithReverse,\n    selectTooltipAxisTicks,\n    selectOrderedTooltipTicks,\n    selectChartOffsetInternal,\n  ],\n  combineActiveProps,\n);\n","import { ChartPointer, MousePointer } from './types';\n\n/**\n * Computes the chart coordinates from the mouse event.\n *\n * The coordinates are relative to the top-left corner of the chart,\n * where the top-left corner of the chart is (0, 0).\n * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.\n *\n * The coordinates are rounded to the nearest integer and are including a CSS transform scale.\n * So a chart that's scaled will return the same coordinates as a chart that's not scaled.\n *\n * @param event The mouse event from React event handlers\n * @return chartPointer The chart coordinates relative to the top-left corner of the chart\n */\nexport const getChartPointer = (event: MousePointer): ChartPointer => {\n  const rect = event.currentTarget.getBoundingClientRect();\n  const scaleX = rect.width / event.currentTarget.offsetWidth;\n  const scaleY = rect.height / event.currentTarget.offsetHeight;\n  return {\n    /*\n     * Here it's important to use:\n     * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.\n     * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.\n     * - rect.left and rect.top are used to get the position of the chart relative to the viewport.\n     * - offsetX and offsetY are not used because they are relative to the offset parent\n     *  which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM\n     *  and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.\n     * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.\n     */\n    chartX: Math.round((event.clientX - rect.left) / scaleX),\n    chartY: Math.round((event.clientY - rect.top) / scaleY),\n  };\n};\n","import { createAction, createListenerMiddleware, ListenerEffectAPI, PayloadAction } from '@reduxjs/toolkit';\nimport { AppDispatch, RechartsRootState } from './store';\nimport { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\n\nimport { getChartPointer } from '../util/getChartPointer';\nimport { MousePointer } from '../util/types';\n\nexport const mouseClickAction = createAction<MousePointer>('mouseClick');\n\nexport const mouseClickMiddleware = createListenerMiddleware<RechartsRootState>();\n\n// TODO: there's a bug here when you click the chart the activeIndex resets to zero\nmouseClickMiddleware.startListening({\n  actionCreator: mouseClickAction,\n  effect: (action: PayloadAction<MousePointer>, listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>) => {\n    const mousePointer = action.payload;\n    const activeProps = selectActivePropsFromChartPointer(listenerApi.getState(), getChartPointer(mousePointer));\n    if (activeProps?.activeIndex != null) {\n      listenerApi.dispatch(\n        setMouseClickAxisIndex({\n          activeIndex: activeProps.activeIndex,\n          activeDataKey: undefined,\n          activeCoordinate: activeProps.activeCoordinate,\n        }),\n      );\n    }\n  },\n});\n\nexport const mouseMoveAction = createAction<MousePointer>('mouseMove');\n\nexport const mouseMoveMiddleware = createListenerMiddleware<RechartsRootState>();\n\n/*\n * This single rafId is safe because:\n * 1. Each chart has its own Redux store instance with its own middleware\n * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)\n * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position\n * This is different from externalEventsMiddleware which handles multiple event types\n * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.\n */\nlet rafId: number | null = null;\n\nmouseMoveMiddleware.startListening({\n  actionCreator: mouseMoveAction,\n  effect: (action: PayloadAction<MousePointer>, listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>) => {\n    const mousePointer = action.payload;\n\n    // Cancel any pending animation frame\n    if (rafId !== null) {\n      cancelAnimationFrame(rafId);\n    }\n    const chartPointer = getChartPointer(mousePointer);\n\n    // Schedule the dispatch for the next animation frame\n    rafId = requestAnimationFrame(() => {\n      const state = listenerApi.getState();\n      const tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);\n      // this functionality only applies to charts that have axes\n      if (tooltipEventType === 'axis') {\n        const activeProps = selectActivePropsFromChartPointer(state, chartPointer);\n        if (activeProps?.activeIndex != null) {\n          listenerApi.dispatch(\n            setMouseOverAxisIndex({\n              activeIndex: activeProps.activeIndex,\n              activeDataKey: undefined,\n              activeCoordinate: activeProps.activeCoordinate,\n            }),\n          );\n        } else {\n          // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg\n          listenerApi.dispatch(mouseLeaveChart());\n        }\n      }\n\n      rafId = null;\n    });\n  },\n});\n","export function reduxDevtoolsJsonStringifyReplacer(key: string, value: unknown) {\n  if (value instanceof HTMLElement) {\n    return `HTMLElement <${value.tagName} class=\"${value.className}\">`;\n  }\n  if (value === window) {\n    return 'global.window';\n  }\n  if (key === 'children' && typeof value === 'object' && value !== null) {\n    return '<<CHILDREN>>';\n  }\n  return value;\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { StackOffsetType } from '../util/types';\nimport { SyncMethod } from '../synchronisation/types';\nimport { BaseValue } from '../cartesian/Area';\n\n/**\n * These are chart options that users can choose - which means they can also\n * choose to change them which should trigger a re-render.\n */\nexport type UpdatableChartOptions = {\n  accessibilityLayer: boolean;\n  barCategoryGap: number | string;\n  barGap: number | string;\n  barSize: string | number | undefined;\n  /**\n   * Useful for debugging which chart is which when synchronising.\n   * The className is also passed to the root element of the chart but that's done in the JSX, not through Redux.\n   */\n  className: string | undefined;\n  maxBarSize: number | undefined;\n  stackOffset: StackOffsetType;\n  /**\n   * Charts that share the same syncId will have their Tooltip and Brush synchronised.\n   */\n  syncId: number | string | undefined;\n  syncMethod: SyncMethod;\n  baseValue: BaseValue | undefined;\n  /**\n   * If false, stacked items will be rendered left to right. If true, stacked items will be rendered right to left.\n   * (Render direction affects SVG layering, not x position.)\n   */\n  reverseStackOrder: boolean;\n};\n\nexport const initialState: UpdatableChartOptions = {\n  accessibilityLayer: true,\n  barCategoryGap: '10%',\n  barGap: 4,\n  barSize: undefined,\n  className: undefined,\n  maxBarSize: undefined,\n  stackOffset: 'none',\n  syncId: undefined,\n  syncMethod: 'index',\n  baseValue: undefined,\n  reverseStackOrder: false,\n};\n\nconst rootPropsSlice = createSlice({\n  name: 'rootProps',\n  initialState,\n  reducers: {\n    updateOptions: (state: UpdatableChartOptions, action: PayloadAction<UpdatableChartOptions>) => {\n      state.accessibilityLayer = action.payload.accessibilityLayer;\n      state.barCategoryGap = action.payload.barCategoryGap;\n      state.barGap = action.payload.barGap ?? initialState.barGap;\n      state.barSize = action.payload.barSize;\n      state.maxBarSize = action.payload.maxBarSize;\n      state.stackOffset = action.payload.stackOffset;\n      state.syncId = action.payload.syncId;\n      state.syncMethod = action.payload.syncMethod;\n      state.className = action.payload.className;\n      state.baseValue = action.payload.baseValue;\n      state.reverseStackOrder = action.payload.reverseStackOrder;\n    },\n  },\n});\n\nexport const rootPropsReducer = rootPropsSlice.reducer;\n\nexport const { updateOptions } = rootPropsSlice.actions;\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\n\nexport type PolarChartOptions = {\n  cx: number | string;\n  cy: number | string;\n  startAngle: number;\n  endAngle: number;\n  innerRadius: number | string;\n  outerRadius: number | string;\n};\n\ntype PolarChartState = PolarChartOptions | null;\n\nconst initialState: PolarChartState = null;\n\nconst reducers = {\n  updatePolarOptions: (_state: PolarChartState, action: PayloadAction<PolarChartOptions>): PolarChartOptions => {\n    return action.payload;\n  },\n};\n\nconst polarOptionsSlice = createSlice<PolarChartState, typeof reducers>({\n  name: 'polarOptions',\n  initialState,\n  reducers,\n});\n\nexport const { updatePolarOptions } = polarOptionsSlice.actions;\n\nexport const polarOptionsReducer = polarOptionsSlice.reducer;\n","import { createAction, createListenerMiddleware, ListenerEffectAPI } from '@reduxjs/toolkit';\nimport { setKeyboardInteraction } from './tooltipSlice';\nimport { AppDispatch, RechartsRootState } from './store';\nimport {\n  selectTooltipAxisDomain,\n  selectTooltipAxisTicks,\n  selectTooltipDisplayedData,\n} from './selectors/tooltipSelectors';\nimport { selectCoordinateForDefaultIndex } from './selectors/selectors';\nimport { selectChartDirection, selectTooltipAxisDataKey } from './selectors/axisSelectors';\nimport { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';\n\nexport const keyDownAction = createAction<KeyboardEvent['key']>('keyDown');\nexport const focusAction = createAction('focus');\n\nexport const keyboardEventsMiddleware = createListenerMiddleware<RechartsRootState>();\n\nkeyboardEventsMiddleware.startListening({\n  actionCreator: keyDownAction,\n  effect: (\n    action: ReturnType<typeof keyDownAction>,\n    listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>,\n  ) => {\n    const state: RechartsRootState = listenerApi.getState();\n    const accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n    if (!accessibilityLayerIsActive) {\n      return;\n    }\n    const { keyboardInteraction } = state.tooltip;\n    const key = action.payload;\n    if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {\n      return;\n    }\n\n    // TODO this is lacking index for charts that do not support numeric indexes\n    const resolvedIndex = combineActiveTooltipIndex(\n      keyboardInteraction,\n      selectTooltipDisplayedData(state),\n      selectTooltipAxisDataKey(state),\n      selectTooltipAxisDomain(state),\n    );\n    const currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);\n    if (!Number.isFinite(currentIndex) || currentIndex < 0) {\n      return;\n    }\n    const tooltipTicks = selectTooltipAxisTicks(state);\n    if (key === 'Enter') {\n      const coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(keyboardInteraction.index));\n      listenerApi.dispatch(\n        setKeyboardInteraction({\n          active: !keyboardInteraction.active,\n          activeIndex: keyboardInteraction.index,\n          activeCoordinate: coordinate,\n        }),\n      );\n      return;\n    }\n\n    const direction = selectChartDirection(state);\n    const directionMultiplier = direction === 'left-to-right' ? 1 : -1;\n    const movement = key === 'ArrowRight' ? 1 : -1;\n    const nextIndex = currentIndex + movement * directionMultiplier;\n    if (tooltipTicks == null || nextIndex >= tooltipTicks.length || nextIndex < 0) {\n      return;\n    }\n    const coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));\n\n    listenerApi.dispatch(\n      setKeyboardInteraction({\n        active: true,\n        activeIndex: nextIndex.toString(),\n        activeCoordinate: coordinate,\n      }),\n    );\n  },\n});\n\nkeyboardEventsMiddleware.startListening({\n  actionCreator: focusAction,\n  effect: (_action, listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>) => {\n    const state: RechartsRootState = listenerApi.getState();\n    const accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n    if (!accessibilityLayerIsActive) {\n      return;\n    }\n    const { keyboardInteraction } = state.tooltip;\n    if (keyboardInteraction.active) {\n      return;\n    }\n    if (keyboardInteraction.index == null) {\n      const nextIndex = '0';\n      const coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));\n      listenerApi.dispatch(\n        setKeyboardInteraction({\n          active: true,\n          activeIndex: nextIndex,\n          activeCoordinate: coordinate,\n        }),\n      );\n    }\n  },\n});\n","import { createAction, createListenerMiddleware, ListenerEffectAPI, PayloadAction } from '@reduxjs/toolkit';\nimport { SyntheticEvent } from 'react';\nimport { CategoricalChartFunc } from '../chart/types';\nimport { MouseHandlerDataParam } from '../synchronisation/types';\nimport {\n  selectActiveLabel,\n  selectActiveTooltipCoordinate,\n  selectActiveTooltipDataKey,\n  selectActiveTooltipIndex,\n  selectIsTooltipActive,\n} from './selectors/tooltipSelectors';\nimport { AppDispatch, RechartsRootState } from './store';\n\ntype ExternalEventActionPayload = {\n  reactEvent: SyntheticEvent;\n  handler: CategoricalChartFunc | undefined;\n};\n\nexport const externalEventAction = createAction<ExternalEventActionPayload>('externalEvent');\n\nexport const externalEventsMiddleware = createListenerMiddleware<RechartsRootState>();\n\n/*\n * We need a Map keyed by event type because this middleware handles MULTIPLE different event types\n * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)\n * from the same DOM element. Different event types should NOT cancel each other's animation frames.\n * For example, a click event and a mousemove event can happen in quick succession and both should be processed.\n * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.\n */\nconst rafIdMap = new Map<string, number>();\n\nexternalEventsMiddleware.startListening({\n  actionCreator: externalEventAction,\n  effect: (\n    action: PayloadAction<ExternalEventActionPayload>,\n    listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>,\n  ) => {\n    const { handler, reactEvent } = action.payload;\n    if (handler == null) {\n      return;\n    }\n    reactEvent.persist();\n\n    const eventType = reactEvent.type;\n\n    // Cancel any pending animation frame for this event type\n    const existingRafId = rafIdMap.get(eventType);\n    if (existingRafId !== undefined) {\n      cancelAnimationFrame(existingRafId);\n    }\n\n    const rafId = requestAnimationFrame(() => {\n      try {\n        /*\n         * Here it is important that we get the latest state inside the animation frame callback,\n         * not from the outer scope, because there may have been other actions dispatched\n         * between the time the event was fired and the animation frame callback is executed.\n         * One of those actions is the one that actually sets the active tooltip state!\n         */\n        const state: RechartsRootState = listenerApi.getState();\n        const nextState: MouseHandlerDataParam = {\n          activeCoordinate: selectActiveTooltipCoordinate(state),\n          activeDataKey: selectActiveTooltipDataKey(state),\n          activeIndex: selectActiveTooltipIndex(state),\n          activeLabel: selectActiveLabel(state),\n          activeTooltipIndex: selectActiveTooltipIndex(state),\n          isTooltipActive: selectIsTooltipActive(state),\n        };\n\n        handler(nextState, reactEvent);\n      } finally {\n        rafIdMap.delete(eventType);\n      }\n    });\n\n    rafIdMap.set(eventType, rafId);\n  },\n});\n","import { createSelector } from 'reselect';\nimport { RechartsRootState } from '../store';\nimport { TooltipIndex, TooltipPayloadConfiguration } from '../tooltipSlice';\nimport { Coordinate } from '../../util/types';\nimport { selectTooltipState } from './selectTooltipState';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\n\nconst selectAllTooltipPayloadConfiguration: (state: RechartsRootState) => ReadonlyArray<TooltipPayloadConfiguration> =\n  createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);\n\nexport const selectTooltipCoordinate: (\n  state: RechartsRootState,\n  tooltipIndex: TooltipIndex,\n  graphicalItemId: GraphicalItemId,\n) => Coordinate | undefined = createSelector(\n  [\n    selectAllTooltipPayloadConfiguration,\n    (_state: RechartsRootState, tooltipIndex: TooltipIndex): TooltipIndex => tooltipIndex,\n    (_state: RechartsRootState, _tooltipIndex: TooltipIndex, graphicalItemId: GraphicalItemId): GraphicalItemId =>\n      graphicalItemId,\n  ],\n  (\n    allTooltipConfigurations: ReadonlyArray<TooltipPayloadConfiguration>,\n    tooltipIndex: TooltipIndex,\n    graphicalItemId: GraphicalItemId,\n  ): Coordinate | undefined => {\n    if (tooltipIndex == null) {\n      return undefined;\n    }\n    const mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {\n      return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;\n    });\n    if (mostRelevantTooltipConfiguration == null) {\n      return undefined;\n    }\n    const { getPosition } = mostRelevantTooltipConfiguration;\n    if (getPosition == null) {\n      return undefined;\n    }\n    return getPosition(tooltipIndex);\n  },\n);\n","import { createAction, createListenerMiddleware, ListenerEffectAPI, PayloadAction } from '@reduxjs/toolkit';\nimport * as React from 'react';\nimport { AppDispatch, RechartsRootState } from './store';\nimport { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\n\nimport { getChartPointer } from '../util/getChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { selectTooltipCoordinate } from './selectors/touchSelectors';\nimport { selectAllGraphicalItemsSettings } from './selectors/tooltipSelectors';\n\nexport const touchEventAction = createAction<React.TouchEvent<HTMLDivElement>>('touchMove');\n\nexport const touchEventMiddleware = createListenerMiddleware<RechartsRootState>();\n\ntouchEventMiddleware.startListening({\n  actionCreator: touchEventAction,\n  effect: (\n    action: PayloadAction<React.TouchEvent<HTMLDivElement>>,\n    listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>,\n  ) => {\n    const touchEvent = action.payload;\n    if (touchEvent.touches == null || touchEvent.touches.length === 0) {\n      return;\n    }\n    const state = listenerApi.getState();\n    const tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);\n    if (tooltipEventType === 'axis') {\n      const touch = touchEvent.touches[0];\n      if (touch == null) {\n        return;\n      }\n      const activeProps = selectActivePropsFromChartPointer(\n        state,\n        getChartPointer({\n          clientX: touch.clientX,\n          clientY: touch.clientY,\n          currentTarget: touchEvent.currentTarget,\n        }),\n      );\n      if (activeProps?.activeIndex != null) {\n        listenerApi.dispatch(\n          setMouseOverAxisIndex({\n            activeIndex: activeProps.activeIndex,\n            activeDataKey: undefined,\n            activeCoordinate: activeProps.activeCoordinate,\n          }),\n        );\n      }\n    } else if (tooltipEventType === 'item') {\n      const touch = touchEvent.touches[0];\n      if (document.elementFromPoint == null || touch == null) {\n        return;\n      }\n      const target = document.elementFromPoint(touch.clientX, touch.clientY);\n      if (!target || !target.getAttribute) {\n        return;\n      }\n      const itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);\n      const graphicalItemId = target.getAttribute(DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME) ?? undefined;\n      const settings = selectAllGraphicalItemsSettings(state).find(item => item.id === graphicalItemId);\n      if (itemIndex == null || settings == null || graphicalItemId == null) {\n        return;\n      }\n      const { dataKey } = settings;\n      const coordinate = selectTooltipCoordinate(state, itemIndex, graphicalItemId);\n\n      listenerApi.dispatch(\n        setActiveMouseOverItemIndex({\n          activeDataKey: dataKey,\n          activeIndex: itemIndex,\n          activeCoordinate: coordinate,\n          activeGraphicalItemId: graphicalItemId,\n        }),\n      );\n    }\n  },\n});\n","import { Action, autoBatchEnhancer, combineReducers, configureStore, Dispatch, Reducer, Store } from '@reduxjs/toolkit';\nimport { optionsReducer } from './optionsSlice';\nimport { tooltipReducer } from './tooltipSlice';\nimport { chartDataReducer } from './chartDataSlice';\nimport { chartLayoutReducer } from './layoutSlice';\nimport { mouseClickMiddleware, mouseMoveMiddleware } from './mouseEventsMiddleware';\nimport { reduxDevtoolsJsonStringifyReplacer } from './reduxDevtoolsJsonStringifyReplacer';\nimport { cartesianAxisReducer } from './cartesianAxisSlice';\nimport { graphicalItemsReducer } from './graphicalItemsSlice';\nimport { referenceElementsReducer } from './referenceElementsSlice';\nimport { brushReducer } from './brushSlice';\nimport { legendReducer } from './legendSlice';\nimport { rootPropsReducer } from './rootPropsSlice';\nimport { polarAxisReducer } from './polarAxisSlice';\nimport { polarOptionsReducer } from './polarOptionsSlice';\nimport { keyboardEventsMiddleware } from './keyboardEventsMiddleware';\nimport { externalEventsMiddleware } from './externalEventsMiddleware';\nimport { touchEventMiddleware } from './touchEventsMiddleware';\nimport { errorBarReducer } from './errorBarSlice';\nimport { Global } from '../util/Global';\nimport { zIndexReducer } from './zIndexSlice';\n\nexport type RechartsRootState = {\n  brush: ReturnType<typeof brushReducer>;\n  cartesianAxis: ReturnType<typeof cartesianAxisReducer>;\n  chartData: ReturnType<typeof chartDataReducer>;\n  errorBars: ReturnType<typeof errorBarReducer>;\n  graphicalItems: ReturnType<typeof graphicalItemsReducer>;\n  layout: ReturnType<typeof chartLayoutReducer>;\n  legend: ReturnType<typeof legendReducer>;\n  options: ReturnType<typeof optionsReducer>;\n  polarAxis: ReturnType<typeof polarAxisReducer>;\n  polarOptions: ReturnType<typeof polarOptionsReducer>;\n  referenceElements: ReturnType<typeof referenceElementsReducer>;\n  rootProps: ReturnType<typeof rootPropsReducer>;\n  tooltip: ReturnType<typeof tooltipReducer>;\n  zIndex: ReturnType<typeof zIndexReducer>;\n};\n\nconst rootReducer: Reducer<RechartsRootState> = combineReducers({\n  brush: brushReducer,\n  cartesianAxis: cartesianAxisReducer,\n  chartData: chartDataReducer,\n  errorBars: errorBarReducer,\n  graphicalItems: graphicalItemsReducer,\n  layout: chartLayoutReducer,\n  legend: legendReducer,\n  options: optionsReducer,\n  polarAxis: polarAxisReducer,\n  polarOptions: polarOptionsReducer,\n  referenceElements: referenceElementsReducer,\n  rootProps: rootPropsReducer,\n  tooltip: tooltipReducer,\n  zIndex: zIndexReducer,\n});\n\nexport const createRechartsStore = (\n  preloadedState?: Partial<RechartsRootState>,\n  chartName: string = 'Chart',\n): Store<RechartsRootState> => {\n  return configureStore<RechartsRootState>({\n    reducer: rootReducer,\n    // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2\n    preloadedState: preloadedState as any,\n    // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2\n    middleware: getDefaultMiddleware =>\n      getDefaultMiddleware({\n        serializableCheck: false,\n        immutableCheck: !['commonjs', 'es6', 'production'].includes(process.env.NODE_ENV ?? ''),\n      }).concat([\n        mouseClickMiddleware.middleware,\n        mouseMoveMiddleware.middleware,\n        keyboardEventsMiddleware.middleware,\n        externalEventsMiddleware.middleware,\n        touchEventMiddleware.middleware,\n      ]),\n    /*\n     * I can't find out how to satisfy typescript here.\n     * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,\n     * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.\n     * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.\n     * So let's just ignore the error for now.\n     */\n    // @ts-expect-error mismatched generics\n    enhancers: getDefaultEnhancers => {\n      let enhancers = getDefaultEnhancers;\n      if (typeof getDefaultEnhancers === 'function') {\n        /*\n         * In RTK v2 this is always a function, but in v1 it is an array.\n         * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.\n         * We support both RTK v1 and v2, so we need to do this check.\n         * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback\n         */\n        // @ts-expect-error RTK v2 behaviour on RTK v1 types\n        enhancers = getDefaultEnhancers();\n      }\n      return enhancers.concat(\n        autoBatchEnhancer({\n          type: 'raf',\n        }),\n      );\n    },\n    devTools: Global.devToolsEnabled && {\n      serialize: {\n        replacer: reduxDevtoolsJsonStringifyReplacer,\n      },\n      name: `recharts-${chartName}`,\n    },\n  });\n};\n\nexport type AppDispatch = Dispatch<Action>;\n","import * as React from 'react';\nimport { Context, MutableRefObject, ReactNode, useRef } from 'react';\nimport { Provider } from 'react-redux';\nimport { Action, Store } from '@reduxjs/toolkit';\nimport { createRechartsStore, RechartsRootState } from './store';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RechartsReduxContext, RechartsReduxContextValue } from './RechartsReduxContext';\n\ntype RechartsStoreProviderProps = {\n  children: ReactNode;\n  preloadedState?: Partial<RechartsRootState>;\n  reduxStoreName?: string;\n};\n\nexport function RechartsStoreProvider({ preloadedState, children, reduxStoreName }: RechartsStoreProviderProps) {\n  const isPanorama = useIsPanorama();\n  /*\n   * Why the ref? Redux official documentation recommends to use store as a singleton,\n   * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example\n   *\n   * Which is correct! Except that is considering deploying Redux in an app.\n   * Recharts as a library supports multiple charts on the same page.\n   * And each of these charts needs its own store independent of others!\n   *\n   * The alternative is to have everything in the store keyed by the chart id.\n   * Which would make working with everything a little bit more painful because we need the chart id everywhere.\n   */\n  const storeRef: MutableRefObject<Store<RechartsRootState, Action> | null> = useRef(null);\n\n  /*\n   * Panorama means that this chart is not its own chart, it's only a \"preview\"\n   * being rendered as a child of Brush.\n   * In such case, it should not have a store on its own - it should implicitly inherit\n   * whatever data is in the \"parent\" or \"root\" chart.\n   * Which here is represented by not having a Provider at all. All selectors will use the root store by default.\n   */\n  if (isPanorama) {\n    return children;\n  }\n\n  if (storeRef.current == null) {\n    storeRef.current = createRechartsStore(preloadedState, reduxStoreName);\n  }\n\n  // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.\n  const nonNullContext: Context<RechartsReduxContextValue> = RechartsReduxContext;\n\n  return (\n    <Provider context={nonNullContext} store={storeRef.current}>\n      {children}\n    </Provider>\n  );\n}\n","import { memo, ReactNode, useEffect } from 'react';\nimport { LayoutType, Margin } from '../util/types';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { setLayout, setMargin } from './layoutSlice';\nimport { useAppDispatch } from './hooks';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * \"Main\" props are props that are only accepted on the main chart,\n * as opposed to the small panorama chart inside a Brush.\n */\ntype MainChartProps = {\n  layout: LayoutType;\n  margin: Partial<Margin>;\n};\n\nfunction ReportMainChartPropsImpl({ layout, margin }: MainChartProps): ReactNode {\n  const dispatch = useAppDispatch();\n\n  /*\n   * Skip dispatching properties in panorama chart for two reasons:\n   * 1. The root chart should be deciding on these properties, and\n   * 2. Brush reads these properties from redux store, and so they must remain stable\n   *      to avoid circular dependency and infinite re-rendering.\n   */\n  const isPanorama = useIsPanorama();\n  /*\n   * useEffect here is required to avoid the \"Cannot update a component while rendering a different component\" error.\n   * https://github.com/facebook/react/issues/18178\n   *\n   * Reported in https://github.com/recharts/recharts/issues/5514\n   */\n  useEffect(() => {\n    if (!isPanorama) {\n      dispatch(setLayout(layout));\n      dispatch(setMargin(margin));\n    }\n  }, [dispatch, isPanorama, layout, margin]);\n  return null;\n}\n\nexport const ReportMainChartProps = memo(ReportMainChartPropsImpl, propsAreEqual);\n","import { useEffect } from 'react';\nimport { updateOptions, UpdatableChartOptions } from './rootPropsSlice';\nimport { useAppDispatch } from './hooks';\n\nexport function ReportChartProps(props: UpdatableChartOptions): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(updateOptions(props));\n  }, [dispatch, props]);\n  return null;\n}\n","import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';\nimport { selectAllRegisteredZIndexes } from './zIndexSelectors';\n\nfunction ZIndexSvgPortal({ zIndex, isPanorama }: { zIndex: number; isPanorama: boolean }) {\n  const ref = useRef<SVGGElement>(null);\n  const dispatch = useAppDispatch();\n  useLayoutEffect(() => {\n    if (ref.current) {\n      dispatch(registerZIndexPortalElement({ zIndex, element: ref.current, isPanorama }));\n    }\n    return () => {\n      dispatch(unregisterZIndexPortalElement({ zIndex, isPanorama }));\n    };\n  }, [dispatch, zIndex, isPanorama]);\n  // these g elements should not be tabbable\n  return <g tabIndex={-1} ref={ref} />;\n}\n\nexport function AllZIndexPortals({ children, isPanorama }: { children?: React.ReactNode; isPanorama: boolean }) {\n  const allRegisteredZIndexes: ReadonlyArray<number> | undefined = useAppSelector(selectAllRegisteredZIndexes);\n\n  if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {\n    return children;\n  }\n\n  const allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);\n  // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.\n  const allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);\n\n  return (\n    <>\n      {allNegativeZIndexes.map(zIndex => (\n        <ZIndexSvgPortal key={zIndex} zIndex={zIndex} isPanorama={isPanorama} />\n      ))}\n      {children}\n      {allPositiveZIndexes.map(zIndex => (\n        <ZIndexSvgPortal key={zIndex} zIndex={zIndex} isPanorama={isPanorama} />\n      ))}\n    </>\n  );\n}\n","import * as React from 'react';\nimport { forwardRef, ReactNode } from 'react';\nimport { useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Surface } from './Surface';\nimport { useAppSelector } from '../state/hooks';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { AllZIndexPortals } from '../zIndex/ZIndexPortal';\n\ntype RootSurfaceProps = {\n  children: ReactNode;\n  title: string | undefined;\n  desc: string | undefined;\n  otherAttributes: Record<string, unknown> | null;\n};\n\nconst FULL_WIDTH_AND_HEIGHT = {\n  width: '100%',\n  height: '100%',\n  /*\n   * display: block is necessary here because the default for an SVG is display: inline,\n   * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG\n   * to make space for the descender of letters like \"g\" and \"y\". This throws off the height calculation\n   * and causes the container to grow indefinitely on each render with responsive=true.\n   * Display: block removes that extra space.\n   *\n   * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.\n   */\n  display: 'block',\n};\n\nconst MainChartSurface = forwardRef<SVGSVGElement, RootSurfaceProps>((props: RootSurfaceProps, ref) => {\n  const width = useChartWidth();\n  const height = useChartHeight();\n  const hasAccessibilityLayer = useAccessibilityLayer();\n\n  if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n    return null;\n  }\n\n  const { children, otherAttributes, title, desc } = props;\n\n  let tabIndex: number | undefined, role: string | undefined;\n\n  if (otherAttributes != null) {\n    if (typeof otherAttributes.tabIndex === 'number') {\n      tabIndex = otherAttributes.tabIndex;\n    } else {\n      tabIndex = hasAccessibilityLayer ? 0 : undefined;\n    }\n\n    if (typeof otherAttributes.role === 'string') {\n      role = otherAttributes.role;\n    } else {\n      role = hasAccessibilityLayer ? 'application' : undefined;\n    }\n  }\n\n  return (\n    <Surface\n      {...otherAttributes}\n      title={title}\n      desc={desc}\n      role={role}\n      tabIndex={tabIndex}\n      width={width}\n      height={height}\n      style={FULL_WIDTH_AND_HEIGHT}\n      ref={ref}\n    >\n      {children}\n    </Surface>\n  );\n});\n\nconst BrushPanoramaSurface = ({ children }: { children: ReactNode }) => {\n  const brushDimensions = useAppSelector(selectBrushDimensions);\n\n  if (!brushDimensions) {\n    return null;\n  }\n\n  const { width, height, y, x } = brushDimensions;\n\n  return (\n    <Surface width={width} height={height} x={x} y={y}>\n      {children}\n    </Surface>\n  );\n};\n\nexport const RootSurface = forwardRef<SVGSVGElement, RootSurfaceProps>(\n  ({ children, ...rest }: RootSurfaceProps, ref) => {\n    const isPanorama = useIsPanorama();\n\n    if (isPanorama) {\n      return (\n        <BrushPanoramaSurface>\n          <AllZIndexPortals isPanorama>{children}</AllZIndexPortals>\n        </BrushPanoramaSurface>\n      );\n    }\n    return (\n      <MainChartSurface ref={ref} {...rest}>\n        <AllZIndexPortals isPanorama={false}>{children}</AllZIndexPortals>\n      </MainChartSurface>\n    );\n  },\n);\n","import * as React from 'react';\nimport {\n  CSSProperties,\n  forwardRef,\n  HTMLAttributes,\n  MutableRefObject,\n  ReactNode,\n  Ref,\n  useCallback,\n  useEffect,\n  useRef,\n  useState,\n} from 'react';\nimport { clsx } from 'clsx';\nimport { mouseLeaveChart } from '../state/tooltipSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseClickAction, mouseMoveAction } from '../state/mouseEventsMiddleware';\nimport { useSynchronisedEventsFromOtherCharts } from '../synchronisation/useChartSynchronisation';\nimport { focusAction, keyDownAction } from '../state/keyboardEventsMiddleware';\nimport { useReportScale } from '../util/useReportScale';\nimport { ExternalMouseEvents } from './types';\nimport { externalEventAction } from '../state/externalEventsMiddleware';\nimport { touchEventAction } from '../state/touchEventsMiddleware';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { LegendPortalContext } from '../context/legendPortalContext';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nimport { Percent } from '../util/types';\n\nexport type RechartsWrapperProps = ExternalMouseEvents & {\n  children: ReactNode;\n  width: number | Percent | undefined;\n  height: number | Percent | undefined;\n  /**\n   * If true, then it will listen to container size changes and adapt the SVG chart accordingly.\n   * If false, then it renders the chart at the specified width and height and will stay that way\n   * even if the container size changes.\n   */\n  responsive: boolean;\n  className?: string;\n  style?: CSSProperties;\n  ref?: Ref<HTMLDivElement>;\n  /**\n   * Treemap is special snowflake that handles its own mouse events so\n   * here is a flag to disable the dispatching of mouse events from RechartsWrapper.\n   * If false, then this disables mouse click and touch event dispatching.\n   * Mouse move events are still dispatched because they are needed for tooltip synchronization.\n   * @default true\n   */\n  dispatchTouchEvents?: boolean;\n};\n\nconst EventSynchronizer = (): ReactNode => {\n  useSynchronisedEventsFromOtherCharts();\n  return null;\n};\n\nfunction getNumberOrZero(value: number | string | undefined): number {\n  if (typeof value === 'number') {\n    return value;\n  }\n  if (typeof value === 'string') {\n    const parsed = parseFloat(value);\n    if (!Number.isNaN(parsed)) {\n      return parsed;\n    }\n  }\n  return 0;\n}\n\ntype WrapperDivProps = HTMLAttributes<HTMLDivElement> & {\n  width: number | string | undefined;\n  height: number | string | undefined;\n};\n\nconst ResponsiveDiv = forwardRef<HTMLDivElement, WrapperDivProps>((props: WrapperDivProps, ref): ReactNode => {\n  const observerRef: MutableRefObject<ResizeObserver | null> = useRef(null);\n\n  const [sizes, setSizes] = useState<{\n    containerWidth: number;\n    containerHeight: number;\n  }>({\n    containerWidth: getNumberOrZero(props.style?.width),\n    containerHeight: getNumberOrZero(props.style?.height),\n  });\n\n  const setContainerSize = useCallback((newWidth: number, newHeight: number) => {\n    setSizes(prevState => {\n      const roundedWidth = Math.round(newWidth);\n      const roundedHeight = Math.round(newHeight);\n      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n        return prevState;\n      }\n\n      return { containerWidth: roundedWidth, containerHeight: roundedHeight };\n    });\n  }, []);\n\n  const innerRef = useCallback(\n    (node: HTMLDivElement | null) => {\n      if (typeof ref === 'function') {\n        ref(node);\n      }\n      if (node != null && typeof ResizeObserver !== 'undefined') {\n        const { width: containerWidth, height: containerHeight } = node.getBoundingClientRect();\n        setContainerSize(containerWidth, containerHeight);\n        const callback = (entries: ResizeObserverEntry[]) => {\n          const entry = entries[0];\n          if (entry == null) {\n            return;\n          }\n          const { width, height } = entry.contentRect;\n          setContainerSize(width, height);\n        };\n        const observer = new ResizeObserver(callback);\n        observer.observe(node);\n        observerRef.current = observer;\n      }\n    },\n    [ref, setContainerSize],\n  );\n\n  useEffect(() => {\n    return () => {\n      const observer = observerRef.current;\n      if (observer != null) {\n        observer.disconnect();\n      }\n    };\n  }, [setContainerSize]);\n\n  return (\n    <>\n      <ReportChartSize width={sizes.containerWidth} height={sizes.containerHeight} />\n      <div ref={innerRef} {...props} />\n    </>\n  );\n});\n\nconst ReadSizeOnceDiv = forwardRef<HTMLDivElement, WrapperDivProps>((props: WrapperDivProps, ref): ReactNode => {\n  const { width, height } = props;\n  const [sizes, setSizes] = useState<{\n    containerWidth: number;\n    containerHeight: number;\n  }>({\n    containerWidth: getNumberOrZero(width),\n    containerHeight: getNumberOrZero(height),\n  });\n\n  const setContainerSize = useCallback((newWidth: number, newHeight: number) => {\n    setSizes(prevState => {\n      const roundedWidth = Math.round(newWidth);\n      const roundedHeight = Math.round(newHeight);\n      if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n        return prevState;\n      }\n\n      return { containerWidth: roundedWidth, containerHeight: roundedHeight };\n    });\n  }, []);\n\n  const innerRef = useCallback(\n    (node: HTMLDivElement | null) => {\n      if (typeof ref === 'function') {\n        ref(node);\n      }\n      if (node != null) {\n        const { width: containerWidth, height: containerHeight } = node.getBoundingClientRect();\n        setContainerSize(containerWidth, containerHeight);\n      }\n    },\n    [ref, setContainerSize],\n  );\n  return (\n    <>\n      <ReportChartSize width={sizes.containerWidth} height={sizes.containerHeight} />\n      <div ref={innerRef} {...props} />\n    </>\n  );\n});\n\ntype StaticDivProps = HTMLAttributes<HTMLDivElement> & {\n  width: number;\n  height: number;\n};\n\nconst StaticDiv = forwardRef<HTMLDivElement, StaticDivProps>((props: StaticDivProps, ref): ReactNode => {\n  const { width, height } = props;\n\n  return (\n    <>\n      <ReportChartSize width={width} height={height} />\n      <div ref={ref} {...props} />\n    </>\n  );\n});\n\nconst NonResponsiveDiv = forwardRef<HTMLDivElement, WrapperDivProps>((props: WrapperDivProps, ref): ReactNode => {\n  const { width, height } = props;\n  // When width or height are percentages or CSS short names, read size from DOM once\n  if (typeof width === 'string' || typeof height === 'string') {\n    return <ReadSizeOnceDiv {...props} ref={ref} />;\n  }\n  // When both are numbers, use them directly\n  if (typeof width === 'number' && typeof height === 'number') {\n    return <StaticDiv {...props} width={width} height={height} ref={ref} />;\n  }\n  // When width/height are undefined, render wrapper div without reporting size\n  // This results in no SVG being rendered (intentional for backwards compatibility)\n  return (\n    <>\n      <ReportChartSize width={width} height={height} />\n      <div ref={ref} {...props} />\n    </>\n  );\n});\n\nfunction getWrapperDivComponent(responsive: boolean) {\n  return responsive ? ResponsiveDiv : NonResponsiveDiv;\n}\n\nexport const RechartsWrapper = forwardRef<HTMLDivElement | null, RechartsWrapperProps>(\n  (props: RechartsWrapperProps, ref: Ref<HTMLDivElement | null>) => {\n    const {\n      children,\n      className,\n      height: heightFromProps,\n      onClick,\n      onContextMenu,\n      onDoubleClick,\n      onMouseDown,\n      onMouseEnter,\n      onMouseLeave,\n      onMouseMove,\n      onMouseUp,\n      onTouchEnd,\n      onTouchMove,\n      onTouchStart,\n      style,\n      width: widthFromProps,\n      responsive,\n      dispatchTouchEvents = true,\n    } = props;\n    const containerRef: MutableRefObject<HTMLDivElement | null> = useRef<HTMLDivElement>(null);\n    const dispatch = useAppDispatch();\n    const [tooltipPortal, setTooltipPortal] = useState<HTMLElement | null>(null);\n    const [legendPortal, setLegendPortal] = useState<HTMLElement | null>(null);\n\n    const setScaleRef = useReportScale();\n\n    const responsiveContainerCalculations = useResponsiveContainerContext();\n    const width = responsiveContainerCalculations?.width > 0 ? responsiveContainerCalculations.width : widthFromProps;\n    const height =\n      responsiveContainerCalculations?.height > 0 ? responsiveContainerCalculations.height : heightFromProps;\n\n    const innerRef = useCallback(\n      (node: HTMLDivElement | null) => {\n        setScaleRef(node);\n        if (typeof ref === 'function') {\n          ref(node);\n        }\n        setTooltipPortal(node);\n        setLegendPortal(node);\n        if (node != null) {\n          containerRef.current = node;\n        }\n      },\n      [setScaleRef, ref, setTooltipPortal, setLegendPortal],\n    );\n\n    const myOnClick = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(mouseClickAction(e));\n        dispatch(externalEventAction({ handler: onClick, reactEvent: e }));\n      },\n      [dispatch, onClick],\n    );\n\n    const myOnMouseEnter = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(mouseMoveAction(e));\n        dispatch(externalEventAction({ handler: onMouseEnter, reactEvent: e }));\n      },\n      [dispatch, onMouseEnter],\n    );\n\n    const myOnMouseLeave = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(mouseLeaveChart());\n        dispatch(externalEventAction({ handler: onMouseLeave, reactEvent: e }));\n      },\n      [dispatch, onMouseLeave],\n    );\n\n    const myOnMouseMove = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(mouseMoveAction(e));\n        dispatch(externalEventAction({ handler: onMouseMove, reactEvent: e }));\n      },\n      [dispatch, onMouseMove],\n    );\n\n    const onFocus = useCallback(() => {\n      dispatch(focusAction());\n    }, [dispatch]);\n\n    const onKeyDown = useCallback(\n      (e: React.KeyboardEvent<HTMLDivElement>) => {\n        dispatch(keyDownAction(e.key));\n      },\n      [dispatch],\n    );\n\n    const myOnContextMenu = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onContextMenu, reactEvent: e }));\n      },\n      [dispatch, onContextMenu],\n    );\n\n    const myOnDoubleClick = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onDoubleClick, reactEvent: e }));\n      },\n      [dispatch, onDoubleClick],\n    );\n\n    const myOnMouseDown = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onMouseDown, reactEvent: e }));\n      },\n      [dispatch, onMouseDown],\n    );\n\n    const myOnMouseUp = useCallback(\n      (e: React.MouseEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onMouseUp, reactEvent: e }));\n      },\n      [dispatch, onMouseUp],\n    );\n\n    const myOnTouchStart = useCallback(\n      (e: React.TouchEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onTouchStart, reactEvent: e }));\n      },\n      [dispatch, onTouchStart],\n    );\n\n    /*\n     * onTouchMove is special because it behaves different from mouse events.\n     * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over\n     * a certain element. Touch events don't have that; touch only gives us\n     * start (finger down), end (finger up) and move (finger moving).\n     * So we need to figure out which element the user is touching\n     * ourselves. Fortunately, there's a convenient method for that:\n     * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint\n     */\n    const myOnTouchMove = useCallback(\n      (e: React.TouchEvent<HTMLDivElement>) => {\n        if (dispatchTouchEvents) {\n          dispatch(touchEventAction(e));\n        }\n        dispatch(externalEventAction({ handler: onTouchMove, reactEvent: e }));\n      },\n      [dispatch, dispatchTouchEvents, onTouchMove],\n    );\n\n    const myOnTouchEnd = useCallback(\n      (e: React.TouchEvent<HTMLDivElement>) => {\n        dispatch(externalEventAction({ handler: onTouchEnd, reactEvent: e }));\n      },\n      [dispatch, onTouchEnd],\n    );\n\n    const WrapperDiv = getWrapperDivComponent(responsive);\n\n    return (\n      <TooltipPortalContext.Provider value={tooltipPortal}>\n        <LegendPortalContext.Provider value={legendPortal}>\n          <WrapperDiv\n            width={width ?? style?.width}\n            height={height ?? style?.height}\n            className={clsx('recharts-wrapper', className)}\n            style={{\n              position: 'relative',\n              cursor: 'default',\n              width,\n              height,\n              ...style,\n            }}\n            onClick={myOnClick}\n            onContextMenu={myOnContextMenu}\n            onDoubleClick={myOnDoubleClick}\n            onFocus={onFocus}\n            onKeyDown={onKeyDown}\n            onMouseDown={myOnMouseDown}\n            onMouseEnter={myOnMouseEnter}\n            onMouseLeave={myOnMouseLeave}\n            onMouseMove={myOnMouseMove}\n            onMouseUp={myOnMouseUp}\n            onTouchEnd={myOnTouchEnd}\n            onTouchMove={myOnTouchMove}\n            onTouchStart={myOnTouchStart}\n            ref={innerRef}\n          >\n            <EventSynchronizer />\n            {children}\n          </WrapperDiv>\n        </LegendPortalContext.Provider>\n      </TooltipPortalContext.Provider>\n    );\n  },\n);\n","import { useEffect, useState } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectContainerScale } from '../state/selectors/containerSelectors';\nimport { setScale } from '../state/layoutSlice';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\n\nexport function useReportScale() {\n  const dispatch = useAppDispatch();\n  const [ref, setRef] = useState<HTMLElement | null>(null);\n  const scale = useAppSelector(selectContainerScale);\n  useEffect(() => {\n    if (ref == null) {\n      return;\n    }\n    const rect = ref.getBoundingClientRect();\n    const newScale = rect.width / ref.offsetWidth;\n    if (isWellBehavedNumber(newScale) && newScale !== scale) {\n      dispatch(setScale(newScale));\n    }\n  }, [ref, dispatch, scale]);\n  return setRef;\n}\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RootSurface } from '../container/RootSurface';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { ClipPathProvider } from '../container/ClipPathProvider';\nimport { CartesianChartProps } from '../util/types';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ReportChartSize } from '../context/chartLayoutContext';\n\nexport const CategoricalChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  const { width, height, responsive, children, className, style, compact, title, desc, ...others } = props;\n  const attrs = svgPropertiesNoEvents(others);\n\n  /*\n   * The \"compact\" mode is used as the panorama within Brush.\n   * However because `compact` is a public prop, let's assume that it can render outside of Brush too.\n   */\n  if (compact) {\n    return (\n      <>\n        <ReportChartSize width={width} height={height} />\n        <RootSurface otherAttributes={attrs} title={title} desc={desc}>\n          {children}\n        </RootSurface>\n      </>\n    );\n  }\n\n  return (\n    <RechartsWrapper\n      className={className}\n      style={style}\n      width={width}\n      height={height}\n      responsive={responsive ?? false}\n      onClick={props.onClick}\n      onMouseLeave={props.onMouseLeave}\n      onMouseEnter={props.onMouseEnter}\n      onMouseMove={props.onMouseMove}\n      onMouseDown={props.onMouseDown}\n      onMouseUp={props.onMouseUp}\n      onContextMenu={props.onContextMenu}\n      onDoubleClick={props.onDoubleClick}\n      onTouchStart={props.onTouchStart}\n      onTouchMove={props.onTouchMove}\n      onTouchEnd={props.onTouchEnd}\n    >\n      <RootSurface otherAttributes={attrs} title={title} desc={desc} ref={ref}>\n        <ClipPathProvider>{children}</ClipPathProvider>\n      </RootSurface>\n    </RechartsWrapper>\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { ChartOptions } from '../state/optionsSlice';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { CartesianChartProps, Margin, TooltipEventType } from '../util/types';\nimport { TooltipPayloadSearcher } from '../state/tooltipSlice';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\nconst defaultMargin: Margin = { top: 5, right: 5, bottom: 5, left: 5 };\n\nexport const defaultCartesianChartProps = {\n  accessibilityLayer: true,\n  barCategoryGap: '10%',\n  barGap: 4,\n  layout: 'horizontal',\n  margin: defaultMargin,\n  responsive: false,\n  reverseStackOrder: false,\n  stackOffset: 'none',\n  syncMethod: 'index',\n} as const satisfies Partial<CartesianChartProps>;\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.\n */\nexport type CartesianChartOptions = {\n  chartName: string;\n  defaultTooltipEventType: TooltipEventType;\n  validateTooltipEventTypes: ReadonlyArray<TooltipEventType>;\n  tooltipPayloadSearcher: TooltipPayloadSearcher;\n  categoricalChartProps: CartesianChartProps;\n};\n\nexport const CartesianChart = forwardRef<SVGSVGElement, CartesianChartOptions>(function CartesianChart(\n  props: CartesianChartOptions,\n  ref,\n) {\n  const rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultCartesianChartProps);\n\n  const {\n    chartName,\n    defaultTooltipEventType,\n    validateTooltipEventTypes,\n    tooltipPayloadSearcher,\n    categoricalChartProps,\n  } = props;\n\n  const options: ChartOptions = {\n    chartName,\n    defaultTooltipEventType,\n    validateTooltipEventTypes,\n    tooltipPayloadSearcher,\n    eventEmitter: undefined,\n  };\n\n  return (\n    <RechartsStoreProvider preloadedState={{ options }} reduxStoreName={categoricalChartProps.id ?? chartName}>\n      <ChartDataContextProvider chartData={categoricalChartProps.data} />\n      <ReportMainChartProps layout={rootChartProps.layout} margin={rootChartProps.margin} />\n      <ReportChartProps\n        baseValue={rootChartProps.baseValue}\n        accessibilityLayer={rootChartProps.accessibilityLayer}\n        barCategoryGap={rootChartProps.barCategoryGap}\n        maxBarSize={rootChartProps.maxBarSize}\n        stackOffset={rootChartProps.stackOffset}\n        barGap={rootChartProps.barGap}\n        barSize={rootChartProps.barSize}\n        syncId={rootChartProps.syncId}\n        syncMethod={rootChartProps.syncMethod}\n        className={rootChartProps.className}\n        reverseStackOrder={rootChartProps.reverseStackOrder}\n      />\n      <CategoricalChart {...rootChartProps} ref={ref} />\n    </RechartsStoreProvider>\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const LineChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"LineChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\nimport { CartesianChart } from './CartesianChart';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis', 'item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const BarChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"BarChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n","import { useEffect } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { PolarChartOptions, updatePolarOptions } from './polarOptionsSlice';\n\nexport function ReportPolarOptions(props: PolarChartOptions): null {\n  const dispatch = useAppDispatch();\n  useEffect(() => {\n    dispatch(updatePolarOptions(props));\n  }, [dispatch, props]);\n  return null;\n}\n","import { forwardRef } from 'react';\nimport * as React from 'react';\nimport { ChartOptions } from '../state/optionsSlice';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { ReportPolarOptions } from '../state/ReportPolarOptions';\nimport { Margin, PolarChartProps, TooltipEventType } from '../util/types';\nimport { TooltipPayloadSearcher } from '../state/tooltipSlice';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\nconst defaultMargin: Margin = { top: 5, right: 5, bottom: 5, left: 5 };\n\n/**\n * These default props are the same for all PolarChart components.\n */\nexport const defaultPolarChartProps = {\n  accessibilityLayer: true,\n  stackOffset: 'none',\n  barCategoryGap: '10%',\n  barGap: 4,\n  margin: defaultMargin,\n  reverseStackOrder: false,\n  syncMethod: 'index',\n  layout: 'radial',\n  responsive: false,\n  cx: '50%',\n  cy: '50%',\n  innerRadius: 0,\n  outerRadius: '80%',\n} as const satisfies Partial<PolarChartProps>;\n\n/**\n * These props are required for the PolarChart to function correctly.\n * Users usually would not need to specify these explicitly,\n * because the convenience components like PieChart, RadarChart, etc.\n * will provide these defaults.\n * We can't have the defaults in this file because each of those convenience components\n * have their own opinions about what they should be.\n */\ntype PolarChartPropsWithDefaults = PolarChartProps & {\n  cx: NonNullable<PolarChartProps['cx']>;\n  cy: NonNullable<PolarChartProps['cy']>;\n  startAngle: NonNullable<PolarChartProps['startAngle']>;\n  endAngle: NonNullable<PolarChartProps['endAngle']>;\n  innerRadius: NonNullable<PolarChartProps['innerRadius']>;\n  outerRadius: NonNullable<PolarChartProps['outerRadius']>;\n};\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.\n */\nexport type PolarChartOptions = {\n  chartName: string;\n  defaultTooltipEventType: TooltipEventType;\n  validateTooltipEventTypes: ReadonlyArray<TooltipEventType>;\n  tooltipPayloadSearcher: TooltipPayloadSearcher;\n  categoricalChartProps: PolarChartPropsWithDefaults;\n};\n\nexport const PolarChart = forwardRef<SVGSVGElement, PolarChartOptions>(function PolarChart(\n  props: PolarChartOptions,\n  ref,\n) {\n  const polarChartProps = resolveDefaultProps(props.categoricalChartProps, defaultPolarChartProps);\n\n  const { layout, ...otherCategoricalProps } = polarChartProps;\n\n  const { chartName, defaultTooltipEventType, validateTooltipEventTypes, tooltipPayloadSearcher } = props;\n\n  const options: ChartOptions = {\n    chartName,\n    defaultTooltipEventType,\n    validateTooltipEventTypes,\n    tooltipPayloadSearcher,\n    eventEmitter: undefined,\n  };\n\n  return (\n    <RechartsStoreProvider preloadedState={{ options }} reduxStoreName={polarChartProps.id ?? chartName}>\n      <ChartDataContextProvider chartData={polarChartProps.data} />\n      <ReportMainChartProps layout={layout} margin={polarChartProps.margin} />\n      <ReportChartProps\n        baseValue={undefined}\n        accessibilityLayer={polarChartProps.accessibilityLayer}\n        barCategoryGap={polarChartProps.barCategoryGap}\n        maxBarSize={polarChartProps.maxBarSize}\n        stackOffset={polarChartProps.stackOffset}\n        barGap={polarChartProps.barGap}\n        barSize={polarChartProps.barSize}\n        syncId={polarChartProps.syncId}\n        syncMethod={polarChartProps.syncMethod}\n        className={polarChartProps.className}\n        reverseStackOrder={polarChartProps.reverseStackOrder}\n      />\n      <ReportPolarOptions\n        cx={polarChartProps.cx}\n        cy={polarChartProps.cy}\n        startAngle={polarChartProps.startAngle}\n        endAngle={polarChartProps.endAngle}\n        innerRadius={polarChartProps.innerRadius}\n        outerRadius={polarChartProps.outerRadius}\n      />\n      <CategoricalChart {...otherCategoricalProps} ref={ref} />\n    </RechartsStoreProvider>\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\nimport { PolarChartProps, TooltipEventType } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['item'];\n\nexport const defaultPieChartProps = {\n  ...defaultPolarChartProps,\n  layout: 'centric',\n  startAngle: 0,\n  endAngle: 360,\n} as const satisfies Partial<PolarChartProps>;\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport const PieChart = forwardRef<SVGSVGElement, PolarChartProps>((props: PolarChartProps, ref) => {\n  const propsWithDefaults = resolveDefaultProps(props, defaultPieChartProps);\n  return (\n    <PolarChart\n      chartName=\"PieChart\"\n      defaultTooltipEventType=\"item\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={propsWithDefaults}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { PureComponent, ReactNode, useCallback, useState } from 'react';\nimport omit from 'es-toolkit/compat/omit';\nimport get from 'es-toolkit/compat/get';\n\nimport { Layer } from '../container/Layer';\nimport { Surface } from '../container/Surface';\nimport { Polygon } from '../shape/Polygon';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { COLOR_PANEL } from '../util/Constants';\nimport { isNan, noop, uniqueId } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport {\n  AnimationDuration,\n  AnimationTiming,\n  Coordinate,\n  DataKey,\n  Margin,\n  Percent,\n  RectanglePosition,\n} from '../util/types';\nimport { ReportChartMargin, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport {\n  setActiveClickItemIndex,\n  setActiveMouseOverItemIndex,\n  TooltipIndex,\n  TooltipPayloadConfiguration,\n  TooltipPayloadSearcher,\n} from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { ChartOptions } from '../state/optionsSlice';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { useAppDispatch } from '../state/hooks';\nimport { AppDispatch } from '../state/store';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\n\nconst NODE_VALUE_KEY = 'value';\n\n/**\n * This is what end users defines as `data` on Treemap.\n */\nexport interface TreemapDataType {\n  children?: ReadonlyArray<TreemapDataType>;\n\n  [key: string]: unknown;\n}\n\n/**\n * This is what is returned from `squarify`, the final treemap data structure\n * that gets rendered and is stored in\n */\nexport interface TreemapNode {\n  children: ReadonlyArray<TreemapNode> | null;\n  value: number;\n  depth: number;\n  index: number;\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  name: string;\n  tooltipIndex: TooltipIndex;\n  root: TreemapNode;\n\n  [k: string]: unknown;\n}\n\nfunction isTreemapNode(value: unknown): value is TreemapNode {\n  return (\n    value != null &&\n    typeof value === 'object' &&\n    'x' in value &&\n    'y' in value &&\n    'width' in value &&\n    'height' in value &&\n    typeof value.x === 'number' &&\n    typeof value.y === 'number' &&\n    typeof value.width === 'number' &&\n    typeof value.height === 'number'\n  );\n}\n\nexport const treemapPayloadSearcher: TooltipPayloadSearcher = (\n  data: unknown,\n  activeIndex: TooltipIndex,\n): TreemapNode | undefined => {\n  if (!data || !activeIndex) {\n    return undefined;\n  }\n  return get(data, activeIndex);\n};\n\nexport const addToTreemapNodeIndex = (\n  indexInChildrenArr: number,\n  activeTooltipIndexSoFar: TooltipIndex | undefined = '',\n): TooltipIndex => {\n  return `${activeTooltipIndexSoFar}children[${indexInChildrenArr}]`;\n};\n\nconst options: ChartOptions = {\n  chartName: 'Treemap',\n  defaultTooltipEventType: 'item',\n  validateTooltipEventTypes: ['item'],\n  tooltipPayloadSearcher: treemapPayloadSearcher,\n  eventEmitter: undefined,\n};\n\nexport const computeNode = ({\n  depth,\n  node,\n  index,\n  dataKey,\n  nameKey,\n  nestedActiveTooltipIndex,\n}: {\n  depth: number;\n  node: TreemapNode;\n  index: number;\n  dataKey: DataKey<unknown>;\n  nameKey: DataKey<unknown>;\n  nestedActiveTooltipIndex: TooltipIndex | undefined;\n}): TreemapNode => {\n  const currentTooltipIndex = depth === 0 ? '' : addToTreemapNodeIndex(index, nestedActiveTooltipIndex);\n  const { children } = node;\n  const childDepth = depth + 1;\n  const computedChildren =\n    children && children.length\n      ? children.map((child: TreemapNode, i: number) =>\n          computeNode({\n            depth: childDepth,\n            node: child,\n            index: i,\n            dataKey,\n            nameKey,\n            nestedActiveTooltipIndex: currentTooltipIndex,\n          }),\n        )\n      : null;\n  let nodeValue: number;\n\n  if (computedChildren && computedChildren.length) {\n    nodeValue = computedChildren.reduce((result: number, child: TreemapNode) => result + child.value, 0);\n  } else {\n    // TODO need to verify dataKey\n    const rawNodeValue = node[dataKey as string];\n    const numericValue = typeof rawNodeValue === 'number' ? rawNodeValue : 0;\n    nodeValue = isNan(numericValue) || numericValue <= 0 ? 0 : numericValue;\n  }\n\n  return {\n    ...node,\n    children: computedChildren,\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    name: getValueByDataKey(node, nameKey, ''),\n    [NODE_VALUE_KEY]: nodeValue,\n    depth,\n    index,\n    tooltipIndex: currentTooltipIndex,\n  };\n};\n\nconst filterRect = (node: TreemapNode): RectanglePosition => ({\n  x: node.x,\n  y: node.y,\n  width: node.width,\n  height: node.height,\n});\n\ntype TreemapNodeWithArea = TreemapNode & { area: number };\n\n// Compute the area for each child based on value & scale.\nconst getAreaOfChildren = (\n  children: ReadonlyArray<TreemapNode>,\n  areaValueRatio: number,\n): ReadonlyArray<TreemapNodeWithArea> => {\n  const ratio = areaValueRatio < 0 ? 0 : areaValueRatio;\n\n  return children.map((child: TreemapNode) => {\n    const area = child[NODE_VALUE_KEY] * ratio;\n\n    return {\n      ...child,\n      area: isNan(area) || area <= 0 ? 0 : area,\n    };\n  });\n};\n\n// Computes the score for the specified row, as the worst aspect ratio.\nconst getWorstScore = (row: AreaArray<TreemapNodeWithArea>, parentSize: number, aspectRatio: number): number => {\n  const parentArea = parentSize * parentSize;\n  const rowArea = row.area * row.area;\n  const { min, max } = row.reduce(\n    (result: { min: number; max: number }, child: TreemapNodeWithArea) => ({\n      min: Math.min(result.min, child.area),\n      max: Math.max(result.max, child.area),\n    }),\n    { min: Infinity, max: 0 },\n  );\n\n  return rowArea\n    ? Math.max((parentArea * max * aspectRatio) / rowArea, rowArea / (parentArea * min * aspectRatio))\n    : Infinity;\n};\n\nconst horizontalPosition = (\n  row: AreaArray<TreemapNodeWithArea>,\n  parentSize: number,\n  parentRect: RectanglePosition,\n  isFlush: boolean,\n): RectanglePosition => {\n  let rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;\n\n  if (isFlush || rowHeight > parentRect.height) {\n    rowHeight = parentRect.height;\n  }\n\n  let curX = parentRect.x;\n  let child;\n  for (let i = 0, len = row.length; i < len; i++) {\n    child = row[i];\n    if (child == null) {\n      continue;\n    }\n    child.x = curX;\n    child.y = parentRect.y;\n    child.height = rowHeight;\n    child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);\n    curX += child.width;\n  }\n  // add the remain x to the last one of row\n  if (child != null) {\n    child.width += parentRect.x + parentRect.width - curX;\n  }\n\n  return {\n    ...parentRect,\n    y: parentRect.y + rowHeight,\n    height: parentRect.height - rowHeight,\n  };\n};\n\nconst verticalPosition = (\n  row: AreaArray<TreemapNodeWithArea>,\n  parentSize: number,\n  parentRect: RectanglePosition,\n  isFlush: boolean,\n): RectanglePosition => {\n  let rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;\n\n  if (isFlush || rowWidth > parentRect.width) {\n    rowWidth = parentRect.width;\n  }\n\n  let curY = parentRect.y;\n  let child;\n  for (let i = 0, len = row.length; i < len; i++) {\n    child = row[i];\n    if (child == null) {\n      continue;\n    }\n    child.x = parentRect.x;\n    child.y = curY;\n    child.width = rowWidth;\n    child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);\n    curY += child.height;\n  }\n  if (child) {\n    child.height += parentRect.y + parentRect.height - curY;\n  }\n\n  return {\n    ...parentRect,\n    x: parentRect.x + rowWidth,\n    width: parentRect.width - rowWidth,\n  };\n};\n\nconst position = (\n  row: AreaArray<TreemapNodeWithArea>,\n  parentSize: number,\n  parentRect: RectanglePosition,\n  isFlush: boolean,\n): RectanglePosition => {\n  if (parentSize === parentRect.width) {\n    return horizontalPosition(row, parentSize, parentRect, isFlush);\n  }\n\n  return verticalPosition(row, parentSize, parentRect, isFlush);\n};\n\ntype AreaArray<T> = Array<T> & { area: number };\n\n// Recursively arranges the specified node's children into squarified rows.\nconst squarify = (node: TreemapNode, aspectRatio: number): TreemapNode => {\n  const { children } = node;\n\n  if (children && children.length) {\n    let rect: RectanglePosition = filterRect(node);\n    // @ts-expect-error we can't create an array with static property on a single line so typescript will complain.\n    const row: AreaArray<TreemapNodeWithArea> = [];\n    let best = Infinity; // the best row score so far\n    let child, score; // the current row score\n    let size = Math.min(rect.width, rect.height); // initial orientation\n    const scaleChildren = getAreaOfChildren(children, (rect.width * rect.height) / node[NODE_VALUE_KEY]);\n    const tempChildren = scaleChildren.slice();\n\n    // why are we setting static properties on an array?\n    row.area = 0;\n\n    while (tempChildren.length > 0) {\n      [child] = tempChildren;\n      if (child == null) {\n        continue;\n      }\n      // row first\n      row.push(child);\n      row.area += child.area;\n\n      score = getWorstScore(row, size, aspectRatio);\n      if (score <= best) {\n        // continue with this orientation\n        tempChildren.shift();\n        best = score;\n      } else {\n        // abort, and try a different orientation\n        row.area -= row.pop()?.area ?? 0;\n        rect = position(row, size, rect, false);\n        size = Math.min(rect.width, rect.height);\n        row.length = row.area = 0;\n        best = Infinity;\n      }\n    }\n\n    if (row.length) {\n      rect = position(row, size, rect, true);\n      row.length = row.area = 0;\n    }\n\n    return {\n      ...node,\n      children: scaleChildren.map(c => squarify(c, aspectRatio)),\n    };\n  }\n\n  return node;\n};\n\nexport type TreemapContentType = ReactNode | ((props: TreemapNode) => React.ReactElement);\n\nexport interface Props {\n  /**\n   * The width of chart container.\n   * Can be a number or a percent string like \"100%\".\n   */\n  width?: number | Percent;\n\n  /**\n   * The height of chart container.\n   * Can be a number or a percent string like \"100%\".\n   */\n  height?: number | Percent;\n\n  /**\n   * The source data. Each element should be an object.\n   * The properties of each object represent the values of different data dimensions.\n   *\n   * Use the `dataKey` prop to specify which properties to use.\n   *\n   * If the `children` property is present on an element, it will be treated as a nested treemap.\n   */\n  data?: ReadonlyArray<TreemapDataType>;\n\n  /**\n   * @deprecated unused prop, doesn't do anything, use `key` instead\n   */\n  animationId?: number;\n\n  style?: React.CSSProperties;\n\n  /**\n   * The treemap will try to keep every single rectangle's aspect ratio near the aspectRatio given.\n   * @default 1.618033988749895\n   */\n  aspectRatio?: number;\n\n  /**\n   * If set to a React element, the option is the customized React element of rendering the content.\n   * If set to a function, the function will be called to render the content.\n   */\n  content?: TreemapContentType;\n\n  fill?: string;\n\n  stroke?: string;\n\n  className?: string;\n\n  /**\n   * Name represents each sector in the tooltip.\n   * This allows you to extract the name from the data:\n   *\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the name.\n   *\n   * @defaultValue name\n   */\n  nameKey?: DataKey<any>;\n\n  /**\n   * Decides how to extract the value of this Treemap from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Treemap.\n   * @default 'value'\n   */\n  dataKey?: DataKey<any>;\n\n  children?: ReactNode;\n\n  /**\n   * The type of treemap to render.\n   *\n   * - 'flat': Renders the entire treemap at once, with all leaf nodes visible.\n   * - 'nest': Renders an interactive, nested treemap. Clicking on a parent node will \"zoom in\" to show its children,\n   *   and a breadcrumb navigation will be displayed to allow navigating back up the hierarchy.\n   *\n   * @default 'flat'\n   */\n  type?: 'flat' | 'nest';\n\n  colorPanel?: ReadonlyArray<string>;\n\n  // customize nest index content\n  nestIndexContent?: React.ReactElement | ((item: TreemapNode, i: number) => ReactNode);\n\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n\n  onMouseEnter?: (node: TreemapNode, e: React.MouseEvent) => void;\n\n  onMouseLeave?: (node: TreemapNode, e: React.MouseEvent) => void;\n\n  onClick?: (node: TreemapNode) => void;\n\n  /**\n   * If set false, animation of treemap will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @default 'auto'\n   */\n  isAnimationActive?: boolean | 'auto';\n\n  isUpdateAnimationActive?: boolean | 'auto';\n\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @default 0\n   */\n  animationBegin?: number;\n\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @default 1500\n   */\n  animationDuration?: AnimationDuration;\n\n  /**\n   * The type of easing function.\n   * @default 'linear'\n   */\n  animationEasing?: AnimationTiming;\n\n  id?: string;\n}\n\ninterface State {\n  isAnimationFinished: boolean;\n  formatRoot: TreemapNode | null;\n  currentRoot: TreemapNode | undefined;\n  nestIndex: Array<TreemapNode>;\n  prevData?: ReadonlyArray<TreemapDataType>;\n  prevType?: 'flat' | 'nest';\n  prevWidth?: number;\n  prevHeight?: number;\n  prevDataKey: DataKey<any>;\n  prevAspectRatio: number;\n}\n\nexport const defaultTreeMapProps = {\n  aspectRatio: 0.5 * (1 + Math.sqrt(5)),\n  dataKey: 'value',\n  nameKey: 'name',\n  type: 'flat',\n  isAnimationActive: 'auto',\n  isUpdateAnimationActive: 'auto',\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'linear',\n} as const satisfies Partial<Props>;\n\nconst defaultState: State = {\n  isAnimationFinished: false,\n  formatRoot: null,\n  currentRoot: undefined,\n  nestIndex: [],\n  prevAspectRatio: defaultTreeMapProps.aspectRatio,\n  prevDataKey: defaultTreeMapProps.dataKey,\n};\n\ntype ContentItemProps = {\n  id: GraphicalItemId;\n  content: TreemapContentType;\n  nodeProps: TreemapNode;\n  type: string;\n  colorPanel: ReadonlyArray<string> | undefined;\n  dataKey: DataKey<any>;\n  onClick?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n  onMouseEnter?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n  onMouseLeave?: (e: React.MouseEvent<SVGPathElement, MouseEvent>) => void;\n};\n\nfunction ContentItem({\n  content,\n  nodeProps,\n  type,\n  colorPanel,\n  onMouseEnter,\n  onMouseLeave,\n  onClick,\n}: ContentItemProps): React.ReactElement {\n  if (React.isValidElement(content)) {\n    return (\n      <Layer onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onClick={onClick}>\n        {React.cloneElement(content, nodeProps)}\n      </Layer>\n    );\n  }\n  if (typeof content === 'function') {\n    return (\n      <Layer onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onClick={onClick}>\n        {content(nodeProps)}\n      </Layer>\n    );\n  }\n  // optimize default shape\n  const { x, y, width, height, index } = nodeProps;\n  let arrow = null;\n  if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {\n    arrow = (\n      <Polygon\n        points={[\n          { x: x + 2, y: y + height / 2 },\n          { x: x + 6, y: y + height / 2 + 3 },\n          { x: x + 2, y: y + height / 2 + 6 },\n        ]}\n      />\n    );\n  }\n  let text = null;\n  const nameSize = getStringSize(nodeProps.name);\n  if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {\n    text = (\n      <text x={x + 8} y={y + height / 2 + 7} fontSize={14}>\n        {nodeProps.name}\n      </text>\n    );\n  }\n\n  const colors = colorPanel || COLOR_PANEL;\n  return (\n    <g>\n      <Rectangle\n        fill={nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)'}\n        stroke=\"#fff\"\n        {...omit(nodeProps, ['children'])}\n        onMouseEnter={onMouseEnter}\n        onMouseLeave={onMouseLeave}\n        onClick={onClick}\n        data-recharts-item-index={nodeProps.tooltipIndex}\n      />\n      {arrow}\n      {text}\n    </g>\n  );\n}\n\nfunction ContentItemWithEvents(props: ContentItemProps) {\n  const dispatch = useAppDispatch();\n  const activeCoordinate: Coordinate = {\n    x: props.nodeProps.x + props.nodeProps.width / 2,\n    y: props.nodeProps.y + props.nodeProps.height / 2,\n  };\n\n  const onMouseEnter = () => {\n    dispatch(\n      setActiveMouseOverItemIndex({\n        activeIndex: props.nodeProps.tooltipIndex,\n        activeDataKey: props.dataKey,\n        activeCoordinate,\n        activeGraphicalItemId: props.id,\n      }),\n    );\n  };\n  const onMouseLeave = () => {\n    // clearing state on mouseLeaveItem causes re-rendering issues\n    // we don't actually want to do this for TreeMap - we clear state when we leave the entire chart instead\n  };\n  const onClick = () => {\n    dispatch(\n      setActiveClickItemIndex({\n        activeIndex: props.nodeProps.tooltipIndex,\n        activeDataKey: props.dataKey,\n        activeCoordinate,\n        activeGraphicalItemId: props.id,\n      }),\n    );\n  };\n  return <ContentItem {...props} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onClick={onClick} />;\n}\n\nconst SetTreemapTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    nameKey,\n    stroke,\n    fill,\n    currentRoot,\n    id,\n  }: Pick<InternalTreemapProps, 'dataKey' | 'nameKey' | 'stroke' | 'fill' | 'id'> & {\n    currentRoot: TreemapNode | undefined;\n  }) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: currentRoot,\n      getPosition: noop, // TODO I think Treemap has the capability of computing positions and supporting defaultIndex? Except it doesn't yet\n      settings: {\n        stroke,\n        strokeWidth: undefined,\n        fill,\n        dataKey,\n        nameKey,\n        name: undefined, // Each TreemapNode has its own name\n        hide: false,\n        type: undefined,\n        color: fill,\n        unit: '',\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\n// Why is margin not a treemap prop? No clue. Probably it should be\nconst defaultTreemapMargin: Margin = {\n  top: 0,\n  right: 0,\n  bottom: 0,\n  left: 0,\n};\n\nfunction TreemapItem({\n  content,\n  nodeProps,\n  isLeaf,\n  treemapProps,\n  onNestClick,\n}: {\n  content: TreemapContentType;\n  nodeProps: TreemapNode;\n  isLeaf: boolean;\n  treemapProps: InternalTreemapProps;\n  onNestClick: (node: TreemapNode) => void;\n}): ReactNode {\n  const {\n    id,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    isUpdateAnimationActive,\n    type,\n    colorPanel,\n    dataKey,\n    onAnimationStart,\n    onAnimationEnd,\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n  } = treemapProps;\n  const { width, height, x, y } = nodeProps;\n  const translateX = -x - width;\n  const translateY = 0;\n\n  const onMouseEnter = (e: React.MouseEvent) => {\n    if ((isLeaf || type === 'nest') && typeof onMouseEnterFromProps === 'function') {\n      onMouseEnterFromProps(nodeProps, e);\n    }\n  };\n\n  const onMouseLeave = (e: React.MouseEvent) => {\n    if ((isLeaf || type === 'nest') && typeof onMouseLeaveFromProps === 'function') {\n      onMouseLeaveFromProps(nodeProps, e);\n    }\n  };\n\n  const onClick = () => {\n    if (type === 'nest') {\n      onNestClick(nodeProps);\n    }\n    if ((isLeaf || type === 'nest') && typeof onItemClickFromProps === 'function') {\n      onItemClickFromProps(nodeProps);\n    }\n  };\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n  }, [onAnimationStart]);\n\n  return (\n    <CSSTransitionAnimate\n      animationId={`treemap-${nodeProps.tooltipIndex}`}\n      from={`translate(${translateX}px, ${translateY}px)`}\n      to=\"translate(0, 0)\"\n      attributeName=\"transform\"\n      begin={animationBegin}\n      easing={animationEasing}\n      isActive={isAnimationActive}\n      duration={animationDuration}\n      onAnimationStart={handleAnimationStart}\n      onAnimationEnd={handleAnimationEnd}\n    >\n      {style => (\n        <Layer\n          onMouseEnter={onMouseEnter}\n          onMouseLeave={onMouseLeave}\n          onClick={onClick}\n          style={{ ...style, transformOrigin: `${x} ${y}` }}\n        >\n          <ContentItemWithEvents\n            id={id}\n            content={content}\n            dataKey={dataKey}\n            nodeProps={{\n              ...nodeProps,\n              isAnimationActive,\n              isUpdateAnimationActive: !isUpdateAnimationActive,\n              width,\n              height,\n              x,\n              y,\n            }}\n            type={type}\n            colorPanel={colorPanel}\n          />\n        </Layer>\n      )}\n    </CSSTransitionAnimate>\n  );\n}\n\ntype InternalTreemapProps = RequiresDefaultProps<Props, typeof defaultTreeMapProps> & {\n  width: number;\n  height: number;\n  dispatch: AppDispatch;\n  id: GraphicalItemId;\n};\n\nclass TreemapWithState extends PureComponent<InternalTreemapProps, State> {\n  static displayName = 'Treemap';\n\n  state = {\n    ...defaultState,\n  };\n\n  static getDerivedStateFromProps(nextProps: InternalTreemapProps, prevState: State): State | null {\n    if (\n      nextProps.data !== prevState.prevData ||\n      nextProps.type !== prevState.prevType ||\n      nextProps.width !== prevState.prevWidth ||\n      nextProps.height !== prevState.prevHeight ||\n      nextProps.dataKey !== prevState.prevDataKey ||\n      nextProps.aspectRatio !== prevState.prevAspectRatio\n    ) {\n      const root: TreemapNode = computeNode({\n        depth: 0,\n        // @ts-expect-error missing properties\n        node: { children: nextProps.data, x: 0, y: 0, width: nextProps.width, height: nextProps.height },\n        index: 0,\n        dataKey: nextProps.dataKey,\n        nameKey: nextProps.nameKey,\n      });\n      const formatRoot: TreemapNode = squarify(root, nextProps.aspectRatio);\n\n      return {\n        ...prevState,\n        formatRoot,\n        currentRoot: root,\n        nestIndex: [root],\n        prevAspectRatio: nextProps.aspectRatio,\n        prevData: nextProps.data,\n        prevWidth: nextProps.width,\n        prevHeight: nextProps.height,\n        prevDataKey: nextProps.dataKey,\n        prevType: nextProps.type,\n      };\n    }\n\n    return null;\n  }\n\n  handleClick = (node: TreemapNode) => {\n    const { onClick, type } = this.props;\n    if (type === 'nest' && node.children) {\n      const { width, height, dataKey, nameKey, aspectRatio } = this.props;\n      const root = computeNode({\n        depth: 0,\n        node: { ...node, x: 0, y: 0, width, height },\n        index: 0,\n        dataKey,\n        nameKey,\n        // with Treemap nesting, should this continue nesting the index or start from empty string?\n        nestedActiveTooltipIndex: node.tooltipIndex,\n      });\n\n      const formatRoot = squarify(root, aspectRatio);\n\n      const { nestIndex } = this.state;\n      nestIndex.push(node);\n\n      this.setState({\n        formatRoot,\n        currentRoot: root,\n        nestIndex,\n      });\n    }\n    if (onClick) {\n      onClick(node);\n    }\n  };\n\n  handleNestIndex(node: TreemapNode, i: number) {\n    let { nestIndex } = this.state;\n    const { width, height, dataKey, nameKey, aspectRatio } = this.props;\n    const root = computeNode({\n      depth: 0,\n      node: { ...node, x: 0, y: 0, width, height },\n      index: 0,\n      dataKey,\n      nameKey,\n      // with Treemap nesting, should this continue nesting the index or start from empty string?\n      nestedActiveTooltipIndex: node.tooltipIndex,\n    });\n\n    const formatRoot = squarify(root, aspectRatio);\n\n    nestIndex = nestIndex.slice(0, i + 1);\n    this.setState({\n      formatRoot,\n      currentRoot: node,\n      nestIndex,\n    });\n  }\n\n  renderNode(root: TreemapNode, node: TreemapNode): ReactNode {\n    const { content, type } = this.props;\n    const nodeProps = { ...svgPropertiesNoEvents(this.props), ...node, root };\n    const isLeaf = !node.children || !node.children.length;\n\n    const { currentRoot } = this.state;\n    const isCurrentRootChild = (currentRoot?.children || []).filter(\n      (item: TreemapNode) => item.depth === node.depth && item.name === node.name,\n    );\n\n    if (!isCurrentRootChild.length && root.depth && type === 'nest') {\n      return null;\n    }\n\n    return (\n      <Layer\n        key={`recharts-treemap-node-${nodeProps.x}-${nodeProps.y}-${nodeProps.name}`}\n        className={`recharts-treemap-depth-${node.depth}`}\n      >\n        <TreemapItem\n          isLeaf={isLeaf}\n          content={content}\n          nodeProps={nodeProps}\n          treemapProps={this.props}\n          onNestClick={this.handleClick}\n        />\n        {node.children && node.children.length\n          ? node.children.map((child: TreemapNode) => this.renderNode(node, child))\n          : null}\n      </Layer>\n    );\n  }\n\n  renderAllNodes(): ReactNode {\n    const { formatRoot } = this.state;\n\n    if (!formatRoot) {\n      return null;\n    }\n\n    return this.renderNode(formatRoot, formatRoot);\n  }\n\n  // render nest treemap\n  renderNestIndex(): React.ReactElement {\n    const { nameKey, nestIndexContent } = this.props;\n    const { nestIndex } = this.state;\n\n    return (\n      <div className=\"recharts-treemap-nest-index-wrapper\" style={{ marginTop: '8px', textAlign: 'center' }}>\n        {nestIndex.map((item: TreemapNode, i: number) => {\n          // TODO need to verify nameKey type\n          const rawName = get(item, nameKey as string, 'root');\n          const name: string = typeof rawName === 'string' ? rawName : 'root';\n          let content: ReactNode;\n          if (React.isValidElement(nestIndexContent)) {\n            // the cloned content is ignored at all times - let's remove it?\n            content = React.cloneElement(nestIndexContent, item, i);\n          }\n          if (typeof nestIndexContent === 'function') {\n            content = nestIndexContent(item, i);\n          } else {\n            content = name;\n          }\n\n          return (\n            // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n            <div\n              onClick={this.handleNestIndex.bind(this, item, i)}\n              key={`nest-index-${uniqueId()}`}\n              className=\"recharts-treemap-nest-index-box\"\n              style={{\n                cursor: 'pointer',\n                display: 'inline-block',\n                padding: '0 7px',\n                background: '#000',\n                color: '#fff',\n                marginRight: '3px',\n              }}\n            >\n              {content}\n            </div>\n          );\n        })}\n      </div>\n    );\n  }\n\n  handleTouchMove = (e: React.TouchEvent<SVGElement>) => {\n    const touchEvent = e.touches[0];\n    if (touchEvent == null) {\n      return;\n    }\n    const target = document.elementFromPoint(touchEvent.clientX, touchEvent.clientY);\n    if (!target || !target.getAttribute || this.state.formatRoot == null) {\n      return;\n    }\n    const itemIndex = target.getAttribute('data-recharts-item-index');\n    const activeNode: unknown = treemapPayloadSearcher(this.state.formatRoot, itemIndex);\n    if (!isTreemapNode(activeNode)) {\n      return;\n    }\n\n    const { dataKey, dispatch } = this.props;\n\n    const activeCoordinate = {\n      x: activeNode.x + activeNode.width / 2,\n      y: activeNode.y + activeNode.height / 2,\n    };\n\n    // Treemap does not support onTouchMove prop, but it could\n    // onTouchMove?.(activeNode, Number(itemIndex), e);\n    dispatch(\n      setActiveMouseOverItemIndex({\n        activeIndex: itemIndex,\n        activeDataKey: dataKey,\n        activeCoordinate,\n        activeGraphicalItemId: this.props.id,\n      }),\n    );\n  };\n\n  render() {\n    const { width, height, className, style, children, type, ...others } = this.props;\n    const attrs = svgPropertiesNoEvents(others);\n\n    return (\n      <>\n        <SetTreemapTooltipEntrySettings\n          dataKey={this.props.dataKey}\n          nameKey={this.props.nameKey}\n          stroke={this.props.stroke}\n          fill={this.props.fill}\n          currentRoot={this.state.currentRoot}\n          id={this.props.id}\n        />\n        <Surface\n          {...attrs}\n          width={width}\n          height={type === 'nest' ? height - 30 : height}\n          onTouchMove={this.handleTouchMove}\n        >\n          {this.renderAllNodes()}\n          {children}\n        </Surface>\n        {type === 'nest' && this.renderNestIndex()}\n      </>\n    );\n  }\n}\n\nfunction TreemapDispatchInject(props: RequiresDefaultProps<Props, typeof defaultTreeMapProps>) {\n  const dispatch = useAppDispatch();\n  const width = useChartWidth();\n  const height = useChartHeight();\n  if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n    return null;\n  }\n  const { id: externalId } = props;\n  return (\n    <RegisterGraphicalItemId id={externalId} type=\"treemap\">\n      {id => <TreemapWithState {...props} id={id} width={width} height={height} dispatch={dispatch} />}\n    </RegisterGraphicalItemId>\n  );\n}\n\n/**\n * The Treemap chart is used to visualize hierarchical data using nested rectangles.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport function Treemap(outsideProps: Props) {\n  const props = resolveDefaultProps(outsideProps, defaultTreeMapProps);\n  const { className, style, width, height } = props;\n\n  const [tooltipPortal, setTooltipPortal] = useState<HTMLElement | null>(null);\n\n  return (\n    <RechartsStoreProvider preloadedState={{ options }} reduxStoreName={props.className ?? 'Treemap'}>\n      <ReportChartMargin margin={defaultTreemapMargin} />\n      <RechartsWrapper\n        dispatchTouchEvents={false}\n        className={className}\n        style={style}\n        width={width}\n        height={height}\n        /*\n         * Treemap has a bug where it doesn't include strokeWidth in its dimension calculation\n         * which makes the actual chart exactly {strokeWidth} larger than asked for.\n         * It's not a huge deal usually, but it makes the responsive option cycle infinitely.\n         */\n        responsive={false}\n        ref={(node: HTMLDivElement) => {\n          if (tooltipPortal == null && node != null) {\n            setTooltipPortal(node);\n          }\n        }}\n        onMouseEnter={undefined}\n        onMouseLeave={undefined}\n        onClick={undefined}\n        onMouseMove={undefined}\n        onMouseDown={undefined}\n        onMouseUp={undefined}\n        onContextMenu={undefined}\n        onDoubleClick={undefined}\n        onTouchStart={undefined}\n        onTouchMove={undefined}\n        onTouchEnd={undefined}\n      >\n        <TooltipPortalContext.Provider value={tooltipPortal}>\n          <TreemapDispatchInject {...props} />\n        </TooltipPortalContext.Provider>\n      </RechartsWrapper>\n    </RechartsStoreProvider>\n  );\n}\n","import * as React from 'react';\nimport { MouseEvent, ReactElement, ReactNode, SVGProps, useCallback, useMemo, useState } from 'react';\nimport maxBy from 'es-toolkit/compat/maxBy';\nimport sumBy from 'es-toolkit/compat/sumBy';\nimport get from 'es-toolkit/compat/get';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Props as RectangleProps, Rectangle } from '../shape/Rectangle';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { Coordinate, DataKey, Margin, Percent, SankeyLink, SankeyNode } from '../util/types';\nimport { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { useAppDispatch } from '../state/hooks';\nimport {\n  mouseLeaveItem,\n  setActiveClickItemIndex,\n  setActiveMouseOverItemIndex,\n  TooltipIndex,\n  TooltipPayloadConfiguration,\n  TooltipPayloadSearcher,\n} from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { ChartOptions } from '../state/optionsSlice';\nimport { SetComputedData } from '../context/chartDataContext';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { isNotNil, noop } from '../util/DataUtils';\nimport { WithIdRequired } from '../util/useUniqueId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\n\nconst interpolationGenerator = (a: number, b: number) => {\n  const ka = +a;\n  const kb = b - ka;\n  return (t: number) => ka + kb * t;\n};\n\nconst centerY = (node: SankeyNode) => node.y + node.dy / 2;\n\n// TODO why is this not reading dataKey?\nconst getValue = (entry: LinkDataItem | SankeyNode | undefined): number => (entry && entry.value) || 0;\n\nconst getSumOfIds = (links: ReadonlyArray<LinkDataItem>, ids: number[]): number =>\n  ids.reduce((result, id) => result + getValue(links[id]), 0);\n\nconst getSumWithWeightedSource = (\n  tree: ReadonlyArray<SankeyNode>,\n  links: ReadonlyArray<LinkDataItemDy>,\n  ids: number[],\n) =>\n  ids.reduce((result, id) => {\n    const link = links[id];\n    if (link == null) {\n      return result;\n    }\n    const sourceNode = tree[link.source];\n    if (sourceNode == null) {\n      return result;\n    }\n\n    return result + centerY(sourceNode) * getValue(links[id]);\n  }, 0);\n\nconst getSumWithWeightedTarget = (\n  tree: ReadonlyArray<SankeyNode>,\n  links: ReadonlyArray<LinkDataItemDy>,\n  ids: ReadonlyArray<number>,\n): number =>\n  ids.reduce((result: number, id: number) => {\n    const link = links[id];\n    if (link == null) {\n      return result;\n    }\n    const targetNode = tree[link.target];\n    if (targetNode == null) {\n      return result;\n    }\n\n    return result + centerY(targetNode) * getValue(links[id]);\n  }, 0);\n\nconst ascendingY = (a: { y: number }, b: { y: number }) => a.y - b.y;\n\nconst searchTargetsAndSources = (links: LinkDataItem[], id: number) => {\n  const sourceNodes: number[] = [];\n  const sourceLinks: number[] = [];\n  const targetNodes: number[] = [];\n  const targetLinks: number[] = [];\n\n  for (let i = 0, len = links.length; i < len; i++) {\n    const link = links[i];\n\n    if (link?.source === id) {\n      targetNodes.push(link.target);\n      targetLinks.push(i);\n    }\n\n    if (link?.target === id) {\n      sourceNodes.push(link.source);\n      sourceLinks.push(i);\n    }\n  }\n\n  return { sourceNodes, sourceLinks, targetLinks, targetNodes };\n};\n\nconst updateDepthOfTargets = (tree: SankeyNode[], curNode: SankeyNode) => {\n  const { targetNodes } = curNode;\n\n  for (let i = 0, len = targetNodes.length; i < len; i++) {\n    const targetNode = targetNodes[i];\n    if (targetNode == null) {\n      continue;\n    }\n    const target = tree[targetNode];\n\n    if (target) {\n      target.depth = Math.max(curNode.depth + 1, target.depth);\n\n      updateDepthOfTargets(tree, target);\n    }\n  }\n};\n\nconst getNodesTree = (\n  { nodes, links }: SankeyData,\n  width: number,\n  nodeWidth: number,\n  align: 'left' | 'justify',\n): { tree: SankeyNode[]; maxDepth: number } => {\n  const tree = nodes.map((entry: SankeyNode, index: number) => {\n    const result = searchTargetsAndSources(links, index);\n\n    return {\n      ...entry,\n      ...result,\n      value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),\n      depth: 0,\n    };\n  });\n\n  for (let i = 0, len = tree.length; i < len; i++) {\n    const node = tree[i];\n\n    if (node != null && !node.sourceNodes.length) {\n      updateDepthOfTargets(tree, node);\n    }\n  }\n  const maxDepth = maxBy(tree, (entry: SankeyNode) => entry.depth)?.depth ?? 0;\n\n  if (maxDepth >= 1) {\n    const childWidth = (width - nodeWidth) / maxDepth;\n    for (let i = 0, len = tree.length; i < len; i++) {\n      const node = tree[i];\n      if (node == null) {\n        continue;\n      }\n\n      if (!node.targetNodes.length) {\n        if (align === 'justify') {\n          node.depth = maxDepth;\n        }\n      }\n      node.x = node.depth * childWidth;\n      node.dx = nodeWidth;\n    }\n  }\n\n  return { tree, maxDepth };\n};\n\nconst getDepthTree = (tree: SankeyNode[]): SankeyNode[][] => {\n  const result: SankeyNode[][] = [];\n\n  for (let i = 0, len = tree.length; i < len; i++) {\n    const node = tree[i];\n    if (node == null) {\n      continue;\n    }\n\n    if (!result[node.depth]) {\n      result[node.depth] = [];\n    }\n\n    result[node.depth]?.push(node);\n  }\n\n  return result;\n};\n\ntype LinkDataItemDy = LinkDataItem & { dy: number };\n\ntype SankeyVerticalAlign = 'justify' | 'top';\n\nconst updateYOfTree = (\n  depthTree: SankeyNode[][],\n  height: number,\n  nodePadding: number,\n  links: ReadonlyArray<LinkDataItem>,\n  verticalAlign: SankeyVerticalAlign,\n): Array<LinkDataItemDy> => {\n  const yRatio: number = Math.min(\n    ...depthTree.map(nodes => (height - (nodes.length - 1) * nodePadding) / sumBy(nodes, getValue)),\n  );\n\n  for (let d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n    const nodes = depthTree[d];\n    if (nodes == null) {\n      continue;\n    }\n\n    if (verticalAlign === 'top') {\n      let currentY = 0;\n      for (let i = 0, len = nodes.length; i < len; i++) {\n        const node = nodes[i];\n        if (node == null) {\n          continue;\n        }\n\n        node.dy = node.value * yRatio;\n        node.y = currentY;\n        currentY += node.dy + nodePadding;\n      }\n    } else {\n      for (let i = 0, len = nodes.length; i < len; i++) {\n        const node = nodes[i];\n        if (node == null) {\n          continue;\n        }\n\n        node.y = i;\n        node.dy = node.value * yRatio;\n      }\n    }\n  }\n\n  return links.map((link: LinkDataItem): LinkDataItemDy => ({ ...link, dy: getValue(link) * yRatio }));\n};\n\nconst resolveCollisions = (depthTree: SankeyNode[][], height: number, nodePadding: number, sort = true) => {\n  for (let i = 0, len = depthTree.length; i < len; i++) {\n    const nodes = depthTree[i];\n    if (nodes == null) {\n      continue;\n    }\n    const n = nodes.length;\n\n    // Sort by the value of y\n    if (sort) {\n      nodes.sort(ascendingY);\n    }\n\n    let y0 = 0;\n    for (let j = 0; j < n; j++) {\n      const node = nodes[j];\n      if (node == null) {\n        continue;\n      }\n      const dy = y0 - node.y;\n\n      if (dy > 0) {\n        node.y += dy;\n      }\n\n      y0 = node.y + node.dy + nodePadding;\n    }\n\n    y0 = height + nodePadding;\n    for (let j = n - 1; j >= 0; j--) {\n      const node = nodes[j];\n      if (node == null) {\n        continue;\n      }\n      const dy = node.y + node.dy + nodePadding - y0;\n\n      if (dy > 0) {\n        node.y -= dy;\n        y0 = node.y;\n      } else {\n        break;\n      }\n    }\n  }\n};\n\nconst relaxLeftToRight = (\n  tree: ReadonlyArray<SankeyNode>,\n  depthTree: SankeyNode[][],\n  links: ReadonlyArray<LinkDataItemDy>,\n  alpha: number,\n) => {\n  for (let i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n    const nodes = depthTree[i];\n    if (nodes == null) {\n      continue;\n    }\n\n    for (let j = 0, len = nodes.length; j < len; j++) {\n      const node = nodes[j];\n      if (node == null) {\n        continue;\n      }\n\n      if (node.sourceLinks.length) {\n        const sourceSum = getSumOfIds(links, node.sourceLinks);\n        const weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n        const y = weightedSum / sourceSum;\n\n        node.y += (y - centerY(node)) * alpha;\n      }\n    }\n  }\n};\n\nconst relaxRightToLeft = (\n  tree: ReadonlyArray<SankeyNode>,\n  /*\n   * depthTree array is modified by this method!\n   */\n  depthTree: SankeyNode[][],\n  links: ReadonlyArray<LinkDataItemDy>,\n  alpha: number,\n) => {\n  for (let i = depthTree.length - 1; i >= 0; i--) {\n    const nodes = depthTree[i];\n    if (nodes == null) {\n      continue;\n    }\n\n    for (let j = 0, len = nodes.length; j < len; j++) {\n      const node = nodes[j];\n      if (node == null) {\n        continue;\n      }\n\n      if (node.targetLinks.length) {\n        const targetSum = getSumOfIds(links, node.targetLinks);\n        const weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n        const y = weightedSum / targetSum;\n\n        node.y += (y - centerY(node)) * alpha;\n      }\n    }\n  }\n};\n\nconst updateYOfLinks = (tree: SankeyNode[], links: LinkDataItemDy[]): void => {\n  for (let i = 0, len = tree.length; i < len; i++) {\n    const node = tree[i];\n    if (node == null) {\n      continue;\n    }\n    let sy = 0;\n    let ty = 0;\n\n    node.targetLinks.sort((a, b) => {\n      const targetA = links[a]?.target;\n      const targetB = links[b]?.target;\n      if (targetA == null || targetB == null) {\n        return 0;\n      }\n      const yA = tree[targetA]?.y;\n      const yB = tree[targetB]?.y;\n      if (yA == null || yB == null) {\n        return 0;\n      }\n      return yA - yB;\n    });\n    node.sourceLinks.sort((a, b) => {\n      const sourceA = links[a]?.source;\n      const sourceB = links[b]?.source;\n      if (sourceA == null || sourceB == null) {\n        return 0;\n      }\n      const yA = tree[sourceA]?.y;\n      const yB = tree[sourceB]?.y;\n      if (yA == null || yB == null) {\n        return 0;\n      }\n      return yA - yB;\n    });\n\n    for (let j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n      const targetLink = node.targetLinks[j];\n      if (targetLink == null) {\n        continue;\n      }\n      const link = links[targetLink];\n\n      if (link) {\n        // @ts-expect-error we should refactor this to immutable\n        link.sy = sy;\n        sy += link.dy;\n      }\n    }\n\n    for (let j = 0, sLen = node.sourceLinks.length; j < sLen; j++) {\n      const sourceLink = node.sourceLinks[j];\n      if (sourceLink == null) {\n        continue;\n      }\n      const link = links[sourceLink];\n\n      if (link) {\n        // @ts-expect-error we should refactor this to immutable\n        link.ty = ty;\n        ty += link.dy;\n      }\n    }\n  }\n};\n\nconst computeData = ({\n  data,\n  width,\n  height,\n  iterations,\n  nodeWidth,\n  nodePadding,\n  sort,\n  verticalAlign,\n  align,\n}: {\n  data: SankeyData;\n  width: number;\n  height: number;\n  iterations: number;\n  nodeWidth: number;\n  nodePadding: number;\n  sort: boolean;\n  verticalAlign: SankeyVerticalAlign;\n  align: 'left' | 'justify';\n}): {\n  nodes: ReadonlyArray<SankeyNode>;\n  links: ReadonlyArray<SankeyLink>;\n} => {\n  const { links } = data;\n  const { tree } = getNodesTree(data, width, nodeWidth, align);\n  const depthTree = getDepthTree(tree);\n  const linksWithDy: Array<LinkDataItemDy> = updateYOfTree(depthTree, height, nodePadding, links, verticalAlign);\n\n  resolveCollisions(depthTree, height, nodePadding, sort);\n\n  if (verticalAlign === 'justify') {\n    let alpha = 1;\n    for (let i = 1; i <= iterations; i++) {\n      relaxRightToLeft(tree, depthTree, linksWithDy, (alpha *= 0.99));\n\n      resolveCollisions(depthTree, height, nodePadding, sort);\n\n      relaxLeftToRight(tree, depthTree, linksWithDy, alpha);\n\n      resolveCollisions(depthTree, height, nodePadding, sort);\n    }\n  }\n\n  updateYOfLinks(tree, linksWithDy);\n  // @ts-expect-error updateYOfLinks modifies the links array to add sy and ty in place\n  const newLinks: ReadonlyArray<SankeyLink> = linksWithDy;\n\n  return { nodes: tree, links: newLinks };\n};\n\nconst getNodeCoordinateOfTooltip = (item: NodeProps) => {\n  return { x: +item.x + +item.width / 2, y: +item.y + +item.height / 2 };\n};\n\nconst getLinkCoordinateOfTooltip = (item: LinkProps): Coordinate | undefined => {\n  return 'sourceX' in item\n    ? {\n        x: (item.sourceX + item.targetX) / 2,\n        y: (item.sourceY + item.targetY) / 2,\n      }\n    : undefined;\n};\n\ntype SankeyTooltipPayload = { payload: SankeyNode | SankeyLink; name: unknown; value: unknown };\nconst getPayloadOfTooltip = (\n  item: { payload: SankeyNode | SankeyLink },\n  type: SankeyElementType,\n  nameKey: DataKey<any> | undefined,\n): SankeyTooltipPayload | undefined => {\n  const { payload } = item;\n  if (type === 'node') {\n    return {\n      payload,\n      name: getValueByDataKey(payload, nameKey, ''),\n      value: getValueByDataKey(payload, 'value'),\n    };\n  }\n  if ('source' in payload && payload.source && payload.target) {\n    const sourceName = getValueByDataKey(payload.source, nameKey, '');\n    const targetName = getValueByDataKey(payload.target, nameKey, '');\n\n    return {\n      payload,\n      name: `${sourceName} - ${targetName}`,\n      value: getValueByDataKey(payload, 'value'),\n    };\n  }\n\n  return undefined;\n};\n\nexport const sankeyPayloadSearcher: TooltipPayloadSearcher = (\n  _: unknown,\n  activeIndex: TooltipIndex,\n  computedData?: unknown,\n  nameKey?,\n): SankeyTooltipPayload | undefined => {\n  if (activeIndex == null || typeof activeIndex !== 'string') {\n    return undefined;\n  }\n  if (computedData == null || typeof computedData !== 'object') {\n    return undefined;\n  }\n  const splitIndex = activeIndex.split('-');\n  const [targetType, index] = splitIndex;\n  const item = get(computedData, `${targetType}s[${index}]`);\n  if (item) {\n    const payload = getPayloadOfTooltip(item, targetType as SankeyElementType, nameKey);\n    return payload;\n  }\n  return undefined;\n};\n\nconst options: ChartOptions = {\n  chartName: 'Sankey',\n  defaultTooltipEventType: 'item',\n  validateTooltipEventTypes: ['item'],\n  tooltipPayloadSearcher: sankeyPayloadSearcher,\n  eventEmitter: undefined,\n};\n\nconst SetSankeyTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    nameKey,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    data,\n    id,\n  }: Pick<InternalSankeyProps, 'dataKey' | 'nameKey' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'data' | 'id'>) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: data,\n      getPosition: noop,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        name,\n        nameKey,\n        hide: false,\n        type: undefined,\n        color: fill,\n        unit: '',\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\ninterface LinkDataItem {\n  source: number;\n  target: number;\n  value: number;\n}\n\nexport interface NodeProps extends Omit<SVGProps<SVGRectElement>, 'height' | 'width'> {\n  height: number;\n  width: number;\n  payload: SankeyNode;\n  index: number;\n  x: number;\n  y: number;\n}\n\nexport interface LinkProps extends SVGProps<SVGPathElement> {\n  sourceX: number;\n  targetX: number;\n  sourceY: number;\n  targetY: number;\n  sourceControlX: number;\n  targetControlX: number;\n  sourceRelativeY: number;\n  targetRelativeY: number;\n  linkWidth: number;\n  index: number;\n  // payload is SankeyLink except source and target are now Node objects instead of numbers\n  payload: Omit<SankeyLink, 'source' | 'target'> & { source: SankeyNode; target: SankeyNode };\n}\n\nexport interface SankeyData {\n  nodes: any[];\n  links: LinkDataItem[];\n}\n\n// TODO: improve types - NodeOptions uses SankeyNode, LinkOptions uses LinkProps. Standardize.\nexport type SankeyNodeOptions =\n  | ReactElement<SVGProps<SVGRectElement>>\n  | ((props: NodeProps) => ReactNode)\n  | RectangleProps;\n\ntype SankeyLinkOptions =\n  | ReactElement<SVGProps<SVGPathElement>>\n  | ((props: LinkProps) => ReactElement<SVGProps<SVGPathElement>>)\n  | SVGProps<SVGPathElement>;\n\ninterface SankeyProps {\n  /**\n   * Name represents each sector in the tooltip.\n   * This allows you to extract the name from the data:\n   *\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the name.\n   *\n   * @defaultValue name\n   */\n  nameKey?: DataKey<any>;\n  /**\n   * dataKey prop in Sankey defines which key in the link objects represents the value of the link _in Tooltip only_.\n   *\n   * Unlike other charts where dataKey is used to extract values from the data array, in Sankey charts,\n   * the value of each link is directly taken from the 'value' property of the link objects.\n   *\n   * @default 'value'\n   */\n  dataKey?: DataKey<any>;\n  /**\n   * The width of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  width?: number | Percent;\n  /**\n   * The height of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  height?: number | Percent;\n  /**\n   * The source data, including the array of nodes, and the relationships, represented by links.\n   *\n   * Note that Sankey requires a specific data structure.\n   * Each node should have a unique index in the nodes array, and each link should reference these nodes by their indices.\n   * This is different from other chart types in Recharts, which accept arbitrary data.\n   *\n   * @example\n   * nodes: [\n   *   { name: 'Visit' },\n   *   { name: 'Direct-Favourite' },\n   *   { name: 'Page-Click' },\n   *   { name: 'Detail-Favourite' },\n   *   { name: 'Lost' },\n   * ],\n   * links: [\n   *   { source: 0, target: 1, value: 3728.3 },\n   *   { source: 0, target: 2, value: 354170 },\n   *   { source: 2, target: 3, value: 62429 },\n   *   { source: 2, target: 4, value: 291741 },\n   * ],\n   */\n  data: SankeyData;\n  /**\n   * The padding between the nodes\n   * @default 10\n   */\n  nodePadding?: number;\n  /**\n   * The width of node\n   * @default 10\n   */\n  nodeWidth?: number;\n  /**\n   * The curvature of width\n   * @default 0.5\n   */\n  linkCurvature?: number;\n  /**\n   * The number of the iterations between the links\n   * @default 32\n   */\n  iterations?: number;\n  /**\n   * If set an object, the option is the configuration of nodes.\n   * If set a React element, the option is the custom react element of drawing the nodes.\n   *\n   * @example <Sankey node={MyCustomComponent} />\n   * @example <Sankey node={{stroke: #77c878, strokeWidth: 2}} />\n   */\n  node?: SankeyNodeOptions;\n  /**\n   * If set an object, the option is the configuration of links.\n   * If set a React element, the option is the custom react element of drawing the links.\n   *\n   * @example <Sankey link={MyCustomComponent} />\n   * @example <Sankey link={{ fill: #77c878 }} />\n   */\n  link?: SankeyLinkOptions;\n  style?: React.CSSProperties;\n  className?: string;\n  children?: ReactNode;\n  /**\n   * Empty space around the container.\n   *\n   * @defaultValue {\"top\":5,\"right\":5,\"bottom\":5,\"left\":5}\n   */\n  margin?: Partial<Margin>;\n  /**\n   * The customized event handler of click on the area in this group\n   */\n  onClick?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter on the area in this group\n   */\n  onMouseEnter?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the area in this group\n   */\n  onMouseLeave?: (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => void;\n  /**\n   * Whether to sort the nodes on the y axis, or to display them as user-defined.\n   * @default true\n   */\n  sort?: boolean;\n  /**\n   * Controls the vertical spacing of nodes within a depth. 'justify' distributes nodes evenly and balances link paths, while 'top' positions the group starting from the top edge of the chart.\n   * @default 'justify'\n   */\n  verticalAlign?: SankeyVerticalAlign;\n  /**\n   * If set to 'justify', the start nodes will be aligned to the left edge of the chart and the end nodes will be aligned to the right edge of the chart. If set to 'left', the start nodes will be aligned to the left edge of the chart.\n   * @default 'justify'\n   */\n  align?: 'left' | 'justify';\n}\n\nexport type Props = SVGProps<SVGSVGElement> & SankeyProps;\n\ntype SankeyElementType = 'node' | 'link';\n\nfunction renderLinkItem(option: SankeyLinkOptions | undefined, props: LinkProps) {\n  if (React.isValidElement(option)) {\n    return React.cloneElement(option, props);\n  }\n  if (typeof option === 'function') {\n    return option(props);\n  }\n\n  const { sourceX, sourceY, sourceControlX, targetX, targetY, targetControlX, linkWidth, ...others } = props;\n\n  return (\n    <path\n      className=\"recharts-sankey-link\"\n      d={`\n          M${sourceX},${sourceY}\n          C${sourceControlX},${sourceY} ${targetControlX},${targetY} ${targetX},${targetY}\n        `}\n      fill=\"none\"\n      stroke=\"#333\"\n      strokeWidth={linkWidth}\n      strokeOpacity=\"0.2\"\n      {...svgPropertiesNoEvents(others)}\n    />\n  );\n}\n\nconst buildLinkProps = ({\n  link,\n  nodes,\n  left,\n  top,\n  i,\n  linkContent,\n  linkCurvature,\n}: {\n  link: SankeyLink;\n  nodes: ReadonlyArray<SankeyNode>;\n  top: number;\n  left: number;\n  linkContent: SankeyLinkOptions | undefined;\n  i: number;\n  linkCurvature: number;\n}): LinkProps | undefined => {\n  const { sy: sourceRelativeY, ty: targetRelativeY, dy: linkWidth } = link;\n  const sourceNode = nodes[link.source];\n  const targetNode = nodes[link.target];\n  if (sourceNode == null || targetNode == null) {\n    return undefined;\n  }\n  const sourceX = sourceNode.x + sourceNode.dx + left;\n  const targetX = targetNode.x + left;\n  const interpolationFunc = interpolationGenerator(sourceX, targetX);\n  const sourceControlX = interpolationFunc(linkCurvature);\n  const targetControlX = interpolationFunc(1 - linkCurvature);\n  const sourceY = sourceNode.y + sourceRelativeY + linkWidth / 2 + top;\n  const targetY = targetNode.y + targetRelativeY + linkWidth / 2 + top;\n\n  const linkProps: LinkProps = {\n    sourceX,\n    // @ts-expect-error the linkContent from below is contributing unknown props\n    targetX,\n    sourceY,\n    // @ts-expect-error the linkContent from below is contributing unknown props\n    targetY,\n    sourceControlX,\n    targetControlX,\n    sourceRelativeY,\n    targetRelativeY,\n    linkWidth,\n    index: i,\n    payload: { ...link, source: sourceNode, target: targetNode },\n    ...svgPropertiesNoEventsFromUnknown(linkContent),\n  };\n\n  return linkProps;\n};\n\nfunction SankeyLinkElement({\n  graphicalItemId,\n  props,\n  i,\n  linkContent,\n  onMouseEnter,\n  onMouseLeave,\n  onClick,\n  dataKey,\n}: {\n  graphicalItemId: GraphicalItemId;\n  props: LinkProps;\n  i: number;\n  linkContent: SankeyLinkOptions | undefined;\n  onMouseEnter: (linkProps: LinkProps, e: MouseEvent) => void;\n  onMouseLeave: (linkProps: LinkProps, e: MouseEvent) => void;\n  onClick: (linkProps: LinkProps, e: MouseEvent) => void;\n  dataKey: DataKey<any>;\n}) {\n  const activeCoordinate = getLinkCoordinateOfTooltip(props);\n  const activeIndex = `link-${i}`;\n\n  const dispatch = useAppDispatch();\n\n  const events = {\n    onMouseEnter: (e: MouseEvent) => {\n      dispatch(\n        setActiveMouseOverItemIndex({\n          activeIndex,\n          activeDataKey: dataKey,\n          activeCoordinate,\n          activeGraphicalItemId: graphicalItemId,\n        }),\n      );\n      onMouseEnter(props, e);\n    },\n    onMouseLeave: (e: MouseEvent) => {\n      dispatch(mouseLeaveItem());\n      onMouseLeave(props, e);\n    },\n    onClick: (e: MouseEvent) => {\n      dispatch(\n        setActiveClickItemIndex({\n          activeIndex,\n          activeDataKey: dataKey,\n          activeCoordinate,\n          activeGraphicalItemId: graphicalItemId,\n        }),\n      );\n      onClick(props, e);\n    },\n  };\n\n  return <Layer {...events}>{renderLinkItem(linkContent, props)}</Layer>;\n}\n\nfunction AllSankeyLinkElements({\n  graphicalItemId,\n  modifiedLinks,\n  links,\n  linkContent,\n  onMouseEnter,\n  onMouseLeave,\n  onClick,\n  dataKey,\n}: {\n  graphicalItemId: GraphicalItemId;\n  modifiedLinks: ReadonlyArray<LinkProps>;\n  links: ReadonlyArray<SankeyLink>;\n  linkContent: SankeyLinkOptions | undefined;\n  onMouseEnter: (linkProps: LinkProps, e: MouseEvent) => void;\n  onMouseLeave: (linkProps: LinkProps, e: MouseEvent) => void;\n  onClick: (linkProps: LinkProps, e: MouseEvent) => void;\n  dataKey: DataKey<any>;\n}) {\n  return (\n    <Layer className=\"recharts-sankey-links\" key=\"recharts-sankey-links\">\n      {links.map((link: SankeyLink, i: number) => {\n        const linkProps = modifiedLinks[i];\n        if (linkProps == null) {\n          return null;\n        }\n        return (\n          <SankeyLinkElement\n            graphicalItemId={graphicalItemId}\n            key={`link-${link.source}-${link.target}-${link.value}`}\n            props={linkProps}\n            linkContent={linkContent}\n            i={i}\n            onMouseEnter={onMouseEnter}\n            onMouseLeave={onMouseLeave}\n            onClick={onClick}\n            dataKey={dataKey}\n          />\n        );\n      })}\n    </Layer>\n  );\n}\n\nfunction renderNodeItem(option: SankeyNodeOptions | undefined, props: NodeProps) {\n  if (React.isValidElement(option)) {\n    return React.cloneElement(option, props);\n  }\n  if (typeof option === 'function') {\n    return option(props);\n  }\n\n  return (\n    // @ts-expect-error recharts radius is not compatible with SVG radius\n    <Rectangle className=\"recharts-sankey-node\" fill=\"#0088fe\" fillOpacity=\"0.8\" {...svgPropertiesNoEvents(props)} />\n  );\n}\n\nconst buildNodeProps = ({\n  node,\n  nodeContent,\n  top,\n  left,\n  i,\n}: {\n  node: SankeyNode;\n  nodeContent: SankeyNodeOptions | undefined;\n  top: number;\n  left: number;\n  i: number;\n}) => {\n  const { x, y, dx, dy } = node;\n  // @ts-expect-error nodeContent is passing in unknown props\n  const nodeProps: NodeProps = {\n    ...svgPropertiesNoEventsFromUnknown(nodeContent),\n    x: x + left,\n    y: y + top,\n    width: dx,\n    height: dy,\n    index: i,\n    payload: node,\n  };\n  return nodeProps;\n};\n\nfunction NodeElement({\n  graphicalItemId,\n  props,\n  nodeContent,\n  i,\n  onMouseEnter,\n  onMouseLeave,\n  onClick,\n  dataKey,\n}: {\n  graphicalItemId: GraphicalItemId;\n  props: NodeProps;\n  nodeContent: SankeyNodeOptions | undefined;\n  i: number;\n  onMouseEnter: (nodeProps: NodeProps, e: MouseEvent) => void;\n  onMouseLeave: (nodeProps: NodeProps, e: MouseEvent) => void;\n  onClick: (nodeProps: NodeProps, e: MouseEvent) => void;\n  dataKey: DataKey<any>;\n}) {\n  const dispatch = useAppDispatch();\n\n  const activeCoordinate = getNodeCoordinateOfTooltip(props);\n  const activeIndex = `node-${i}`;\n\n  const events = {\n    onMouseEnter: (e: MouseEvent) => {\n      dispatch(\n        setActiveMouseOverItemIndex({\n          activeIndex,\n          activeDataKey: dataKey,\n          activeCoordinate,\n          activeGraphicalItemId: graphicalItemId,\n        }),\n      );\n      onMouseEnter(props, e);\n    },\n    onMouseLeave: (e: MouseEvent) => {\n      dispatch(mouseLeaveItem());\n      onMouseLeave(props, e);\n    },\n    onClick: (e: MouseEvent) => {\n      dispatch(\n        setActiveClickItemIndex({\n          activeIndex,\n          activeDataKey: dataKey,\n          activeCoordinate,\n          activeGraphicalItemId: graphicalItemId,\n        }),\n      );\n      onClick(props, e);\n    },\n  };\n\n  return <Layer {...events}>{renderNodeItem(nodeContent, props)}</Layer>;\n}\n\nfunction AllNodeElements({\n  graphicalItemId,\n  modifiedNodes,\n  nodeContent,\n  onMouseEnter,\n  onMouseLeave,\n  onClick,\n  dataKey,\n}: {\n  graphicalItemId: GraphicalItemId;\n  modifiedNodes: ReadonlyArray<NodeProps>;\n  nodeContent: SankeyNodeOptions | undefined;\n  onMouseEnter: (nodeProps: NodeProps, e: MouseEvent) => void;\n  onMouseLeave: (nodeProps: NodeProps, e: MouseEvent) => void;\n  onClick: (nodeProps: NodeProps, e: MouseEvent) => void;\n  dataKey: DataKey<any>;\n}) {\n  return (\n    <Layer className=\"recharts-sankey-nodes\" key=\"recharts-sankey-nodes\">\n      {modifiedNodes.map((modifiedNode, i) => {\n        return (\n          <NodeElement\n            graphicalItemId={graphicalItemId}\n            key={`node-${modifiedNode.index}-${modifiedNode.x}-${modifiedNode.y}`}\n            props={modifiedNode}\n            nodeContent={nodeContent}\n            i={i}\n            onMouseEnter={onMouseEnter}\n            onMouseLeave={onMouseLeave}\n            onClick={onClick}\n            dataKey={dataKey}\n          />\n        );\n      })}\n    </Layer>\n  );\n}\n\nexport const sankeyDefaultProps = {\n  align: 'justify',\n  dataKey: 'value',\n  iterations: 32,\n  linkCurvature: 0.5,\n  margin: { top: 5, right: 5, bottom: 5, left: 5 },\n  nameKey: 'name',\n  nodePadding: 10,\n  nodeWidth: 10,\n  sort: true,\n  verticalAlign: 'justify',\n} as const satisfies Partial<Props>;\n\ntype PropsWithResolvedDefaults = RequiresDefaultProps<Props, typeof sankeyDefaultProps>;\n\ntype InternalSankeyProps = WithIdRequired<PropsWithResolvedDefaults>;\n\nfunction SankeyImpl(props: InternalSankeyProps) {\n  const { className, style, children, id, ...others } = props;\n  const {\n    link,\n    dataKey,\n    node,\n    onMouseEnter,\n    onMouseLeave,\n    onClick,\n    data,\n    iterations,\n    nodeWidth,\n    nodePadding,\n    sort,\n    linkCurvature,\n    margin,\n    verticalAlign,\n    align,\n  } = props;\n\n  const attrs = svgPropertiesNoEvents(others);\n\n  const width = useChartWidth();\n  const height = useChartHeight();\n\n  const { links, modifiedLinks, modifiedNodes } = useMemo(() => {\n    if (!data || !width || !height || width <= 0 || height <= 0) {\n      return { nodes: [], links: [], modifiedLinks: [], modifiedNodes: [] };\n    }\n    const contentWidth = width - (margin.left ?? 0) - (margin.right ?? 0);\n    const contentHeight = height - (margin.top ?? 0) - (margin.bottom ?? 0);\n    const computed = computeData({\n      data,\n      width: contentWidth,\n      height: contentHeight,\n      iterations,\n      nodeWidth,\n      nodePadding,\n      sort,\n      verticalAlign,\n      align,\n    });\n\n    const top = margin.top || 0;\n    const left = margin.left || 0;\n    const newModifiedLinks = computed.links\n      .map((l, i) => {\n        return buildLinkProps({ link: l, nodes: computed.nodes, i, top, left, linkContent: link, linkCurvature });\n      })\n      .filter(isNotNil);\n\n    const newModifiedNodes = computed.nodes.map((n, i) => {\n      return buildNodeProps({\n        node: n,\n        nodeContent: node,\n        i,\n        top,\n        left,\n      });\n    });\n\n    return {\n      nodes: computed.nodes,\n      links: computed.links,\n      modifiedLinks: newModifiedLinks,\n      modifiedNodes: newModifiedNodes,\n    };\n  }, [\n    data,\n    width,\n    height,\n    margin,\n    iterations,\n    nodeWidth,\n    nodePadding,\n    sort,\n    link,\n    node,\n    linkCurvature,\n    align,\n    verticalAlign,\n  ]);\n\n  const handleMouseEnter = useCallback(\n    (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => {\n      if (onMouseEnter) {\n        onMouseEnter(item, type, e);\n      }\n    },\n    [onMouseEnter],\n  );\n\n  const handleMouseLeave = useCallback(\n    (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => {\n      if (onMouseLeave) {\n        onMouseLeave(item, type, e);\n      }\n    },\n    [onMouseLeave],\n  );\n\n  const handleClick = useCallback(\n    (item: NodeProps | LinkProps, type: SankeyElementType, e: MouseEvent) => {\n      if (onClick) {\n        onClick(item, type, e);\n      }\n    },\n    [onClick],\n  );\n\n  if (!isPositiveNumber(width) || !isPositiveNumber(height) || !data || !data.links || !data.nodes) {\n    return null;\n  }\n\n  return (\n    <>\n      <SetComputedData computedData={{ links: modifiedLinks, nodes: modifiedNodes }} />\n      <Surface {...attrs} width={width} height={height}>\n        {children}\n        <AllSankeyLinkElements\n          graphicalItemId={id}\n          links={links}\n          modifiedLinks={modifiedLinks}\n          linkContent={link}\n          dataKey={dataKey}\n          onMouseEnter={(linkProps: LinkProps, e: MouseEvent) => handleMouseEnter(linkProps, 'link', e)}\n          onMouseLeave={(linkProps: LinkProps, e: MouseEvent) => handleMouseLeave(linkProps, 'link', e)}\n          onClick={(linkProps: LinkProps, e: MouseEvent) => handleClick(linkProps, 'link', e)}\n        />\n        <AllNodeElements\n          graphicalItemId={id}\n          modifiedNodes={modifiedNodes}\n          nodeContent={node}\n          dataKey={dataKey}\n          onMouseEnter={(nodeProps: NodeProps, e: MouseEvent) => handleMouseEnter(nodeProps, 'node', e)}\n          onMouseLeave={(nodeProps: NodeProps, e: MouseEvent) => handleMouseLeave(nodeProps, 'node', e)}\n          onClick={(nodeProps: NodeProps, e: MouseEvent) => handleClick(nodeProps, 'node', e)}\n        />\n      </Surface>\n    </>\n  );\n}\n\n/**\n * Flow diagram in which the width of the arrows is proportional to the flow rate.\n * It is typically used to visualize energy or material or cost transfers between processes.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport function Sankey(outsideProps: Props) {\n  const props: PropsWithResolvedDefaults = resolveDefaultProps(outsideProps, sankeyDefaultProps);\n  const { width, height, style, className, id: externalId } = props;\n  const [tooltipPortal, setTooltipPortal] = useState<HTMLElement | null>(null);\n\n  return (\n    <RechartsStoreProvider preloadedState={{ options }} reduxStoreName={className ?? 'Sankey'}>\n      <ReportChartSize width={width} height={height} />\n      <ReportChartMargin margin={props.margin} />\n\n      <RechartsWrapper\n        className={className}\n        style={style}\n        width={width}\n        height={height}\n        /*\n         * Sankey, same as Treemap, suffers from overfilling the container\n         * and causing infinite render loops where the chart keeps growing.\n         */\n        responsive={false}\n        ref={(node: HTMLDivElement | null) => {\n          if (node && !tooltipPortal) {\n            setTooltipPortal(node);\n          }\n        }}\n        onMouseEnter={undefined}\n        onMouseLeave={undefined}\n        onClick={undefined}\n        onMouseMove={undefined}\n        onMouseDown={undefined}\n        onMouseUp={undefined}\n        onContextMenu={undefined}\n        onDoubleClick={undefined}\n        onTouchStart={undefined}\n        onTouchMove={undefined}\n        onTouchEnd={undefined}\n      >\n        <TooltipPortalContext.Provider value={tooltipPortal}>\n          <RegisterGraphicalItemId id={externalId} type=\"sankey\">\n            {id => (\n              <>\n                <SetSankeyTooltipEntrySettings\n                  dataKey={props.dataKey}\n                  nameKey={props.nameKey}\n                  stroke={props.stroke}\n                  strokeWidth={props.strokeWidth}\n                  fill={props.fill}\n                  name={props.name}\n                  data={props.data}\n                  id={id}\n                />\n                <SankeyImpl {...props} id={id} />\n              </>\n            )}\n          </RegisterGraphicalItemId>\n        </TooltipPortalContext.Provider>\n      </RechartsWrapper>\n    </RechartsStoreProvider>\n  );\n}\n\nSankey.displayName = 'Sankey';\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { PolarChartProps, PolarLayout, TooltipEventType } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];\n\nexport const defaultRadarChartProps = {\n  ...defaultPolarChartProps,\n  layout: 'centric',\n  startAngle: 90,\n  endAngle: -270,\n} as const satisfies Partial<PolarChartProps>;\n\ntype RadarChartProps = Omit<PolarChartProps, 'layout' | 'startAngle' | 'endAngle'> & {\n  /**\n   * The layout of chart defines the orientation of axes, graphical items, and tooltip.\n   *\n   * @defaultValue centric\n   */\n  layout?: PolarLayout;\n  /**\n   * Angle in degrees from which the chart should start.\n   * @defaultValue 90\n   *\n   */\n  startAngle?: number;\n  /**\n   * Angle, in degrees, at which the chart should end.\n   *\n   * @defaultValue -270\n   */\n  endAngle?: number;\n};\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport const RadarChart = forwardRef<SVGSVGElement, RadarChartProps>((props: RadarChartProps, ref) => {\n  const propsWithDefaults = resolveDefaultProps(props, defaultRadarChartProps);\n  return (\n    <PolarChart\n      chartName=\"RadarChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={propsWithDefaults}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const ScatterChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"ScatterChart\"\n      defaultTooltipEventType=\"item\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const AreaChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"AreaChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { PolarChartProps, TooltipEventType } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis', 'item'];\n\nexport const defaultRadialBarChartProps = {\n  ...defaultPolarChartProps,\n  layout: 'radial',\n  startAngle: 0,\n  endAngle: 360,\n} as const satisfies Partial<PolarChartProps>;\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport const RadialBarChart = forwardRef<SVGSVGElement, PolarChartProps>((props: PolarChartProps, ref) => {\n  const propsWithDefaults = resolveDefaultProps(props, defaultRadialBarChartProps);\n  return (\n    <PolarChart\n      chartName=\"RadialBarChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={propsWithDefaults}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const ComposedChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"ComposedChart\"\n      defaultTooltipEventType=\"axis\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n","import * as React from 'react';\nimport { CSSProperties, useState } from 'react';\nimport { scaleLinear } from 'victory-vendor/d3-scale';\nimport { clsx } from 'clsx';\nimport get from 'es-toolkit/compat/get';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Sector } from '../shape/Sector';\nimport { Text, Props as TextProps } from '../component/Text';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport {\n  mouseLeaveItem,\n  setActiveClickItemIndex,\n  setActiveMouseOverItemIndex,\n  TooltipIndex,\n  TooltipPayloadConfiguration,\n  TooltipPayloadSearcher,\n} from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartCoordinate, DataKey, Margin, Percent } from '../util/types';\nimport { useAppDispatch } from '../state/hooks';\nimport { RechartsRootState } from '../state/store';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { WithIdRequired } from '../util/useUniqueId';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\n\nexport interface SunburstData {\n  [key: string]: any;\n  name: string;\n  value?: number;\n  fill?: string;\n  tooltipIndex?: TooltipIndex;\n  children?: SunburstData[];\n}\n\n/**\n * We require tooltipIndex on each node internally to track which node is active in the tooltip.\n * This is not required from the outside user - we can calculate it as we traverse the tree.\n */\ninterface SunburstNode extends SunburstData {\n  tooltipIndex: TooltipIndex;\n}\n\nexport interface SunburstChartProps {\n  className?: string;\n  /**\n   * The source data. Each element should be an object.\n   * The properties of each object represent the values of different data dimensions.\n   *\n   * Use the `dataKey` prop to specify which properties to use.\n   *\n   * @example data={[{ name: 'a', value: 12, fill: '#8884d8' }, { name: 'b', value: 5, fill: '#83a6ed' }]}\n   */\n  data: SunburstData;\n  /**\n   * The width of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  width?: number | Percent;\n  /**\n   * The height of chart container.\n   * Can be a number or a percent string like \"100%\".\n   *\n   * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart sizing guide}\n   */\n  height?: number | Percent;\n  /**\n   * If true, then it will listen to container size changes and adapt the SVG chart accordingly.\n   * If false, then it renders the chart at the specified width and height and will stay that way\n   * even if the container size changes.\n   *\n   * This is similar to ResponsiveContainer but without the need for an extra wrapper component.\n   * The `responsive` prop also uses standard CSS sizing rules, instead of custom resolution logic (like ResponsiveContainer does).\n   * @default false\n   */\n  responsive?: boolean;\n  /**\n   * Distance between sectors.\n   *\n   * @defaultValue 2\n   */\n  padding?: number;\n  /**\n   * Decides how to extract value from the data.\n   *\n   * @defaultValue value\n   */\n  dataKey?: string;\n  /**\n   * Name represents each sector in the tooltip.\n   * This allows you to extract the name from the data:\n   *\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the name.\n   *\n   * @defaultValue name\n   */\n  nameKey?: DataKey<any>;\n  /**\n   * Padding between each hierarchical level.\n   */\n  ringPadding?: number;\n  /**\n   * The radius of the inner circle at the center of the chart.\n   *\n   * @defaultValue 50\n   */\n  innerRadius?: number;\n  /**\n   * Outermost edge of the chart.\n   * Defaults to the max possible radius for a circle inscribed in the chart container\n   */\n  outerRadius?: number;\n  /**\n   * The x-coordinate of center in pixels.\n   * If undefined, it will be set to half of the chart width.\n   */\n  cx?: number;\n  /**\n   * The y-coordinate of center in pixels.\n   * If undefined, it will be set to half of the chart height.\n   */\n  cy?: number;\n  /** Angle in degrees from which the chart should start. */\n  startAngle?: number;\n  /** Angle, in degrees, at which the chart should end. */\n  endAngle?: number;\n  children?: React.ReactNode;\n  fill?: string;\n  stroke?: string;\n  /**\n   * An object with svg text options to control the appearance of the chart labels.\n   */\n  textOptions?: TextProps;\n\n  onMouseEnter?: (node: SunburstData, e: React.MouseEvent) => void;\n\n  onMouseLeave?: (node: SunburstData, e: React.MouseEvent) => void;\n\n  onClick?: (node: SunburstData) => void;\n  style?: CSSProperties;\n  id?: string;\n}\n\ninterface DrawArcOptions {\n  radius: number;\n  innerR: number;\n  initialAngle: number;\n  childColor?: string;\n  nestedActiveTooltipIndex?: TooltipIndex | undefined;\n}\n\nconst defaultTextProps = {\n  fontWeight: 'bold',\n  paintOrder: 'stroke fill',\n  fontSize: '.75rem',\n  stroke: '#FFF',\n  fill: 'black',\n  pointerEvents: 'none',\n};\n\nfunction getMaxDepthOf(node: SunburstData): number {\n  if (!node.children || node.children.length === 0) return 1;\n\n  // Calculate depth for each child and find the maximum\n  const childDepths = node.children.map(d => getMaxDepthOf(d));\n  return 1 + Math.max(...childDepths);\n}\n\nconst SetSunburstTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    nameKey,\n    data,\n    stroke,\n    fill,\n    positions,\n    id,\n  }: Pick<WithIdRequired<SunburstChartProps>, 'dataKey' | 'data' | 'stroke' | 'fill' | 'nameKey' | 'id'> & {\n    positions: SunburstPositionMap;\n  }) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: data.children,\n      getPosition: index => positions.get(index),\n      // Sunburst does not support many of the properties as other charts do so there's plenty of defaults here\n      settings: {\n        stroke,\n        strokeWidth: undefined,\n        fill,\n        nameKey,\n        dataKey,\n        // if there is a nameKey use it, otherwise make the name of the tooltip the dataKey itself\n        name: nameKey ? undefined : dataKey,\n        hide: false,\n        type: undefined,\n        color: fill,\n        unit: '',\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\n// Why is margin not a sunburst prop? No clue. Probably it should be\nconst defaultSunburstMargin: Margin = {\n  top: 0,\n  right: 0,\n  bottom: 0,\n  left: 0,\n};\n\nexport const payloadSearcher: TooltipPayloadSearcher = (data: unknown, activeIndex: TooltipIndex): unknown => {\n  if (activeIndex == null) {\n    return undefined;\n  }\n  return get(data, activeIndex);\n};\n\nconst addToSunburstNodeIndex = (\n  indexInChildrenArr: number,\n  activeTooltipIndexSoFar: TooltipIndex | undefined = '',\n): TooltipIndex => {\n  return `${activeTooltipIndexSoFar}children[${indexInChildrenArr}]`;\n};\n\nconst preloadedState: Partial<RechartsRootState> = {\n  options: {\n    validateTooltipEventTypes: ['item'],\n    defaultTooltipEventType: 'item',\n    chartName: 'Sunburst',\n    tooltipPayloadSearcher: payloadSearcher,\n    eventEmitter: undefined,\n  },\n};\n\ntype SunburstPositionMap = Map<string, ChartCoordinate>;\n\nexport const defaultSunburstChartProps = {\n  padding: 2,\n  dataKey: 'value',\n  nameKey: 'name',\n  ringPadding: 2,\n  innerRadius: 50,\n  fill: '#333',\n  stroke: '#FFF',\n  textOptions: defaultTextProps,\n  startAngle: 0,\n  endAngle: 360,\n  responsive: false,\n} as const satisfies Partial<SunburstChartProps>;\n\ntype InternalSunburstChartProps = WithIdRequired<\n  RequiresDefaultProps<SunburstChartProps, typeof defaultSunburstChartProps>\n>;\n\nconst SunburstChartImpl = ({\n  className,\n  data,\n  children,\n  padding,\n  dataKey,\n  nameKey,\n  ringPadding,\n  innerRadius,\n  fill,\n  stroke,\n  textOptions,\n  outerRadius: outerRadiusFromProps,\n  cx: cxFromProps,\n  cy: cyFromProps,\n  startAngle,\n  endAngle,\n  onClick,\n  onMouseEnter,\n  onMouseLeave,\n  id,\n}: InternalSunburstChartProps) => {\n  const dispatch = useAppDispatch();\n\n  const width = useChartWidth();\n  const height = useChartHeight();\n\n  if (width == null || height == null) {\n    return null;\n  }\n\n  const outerRadius = outerRadiusFromProps ?? Math.min(width, height) / 2;\n  const cx = cxFromProps ?? width / 2;\n  const cy = cyFromProps ?? height / 2;\n\n  const rScale = scaleLinear([0, data[dataKey]], [0, endAngle]);\n  const treeDepth = getMaxDepthOf(data);\n  const thickness = (outerRadius - innerRadius) / treeDepth;\n\n  const sectors: React.ReactNode[] = [];\n  const positions: SunburstPositionMap = new Map<string, ChartCoordinate>([]);\n\n  // event handlers\n  function handleMouseEnter(node: SunburstNode, e: React.MouseEvent) {\n    if (onMouseEnter) onMouseEnter(node, e);\n\n    dispatch(\n      setActiveMouseOverItemIndex({\n        activeIndex: node.tooltipIndex,\n        activeDataKey: dataKey,\n        activeCoordinate: positions.get(node.name),\n        activeGraphicalItemId: id,\n      }),\n    );\n  }\n\n  function handleMouseLeave(node: SunburstNode, e: React.MouseEvent) {\n    if (onMouseLeave) onMouseLeave(node, e);\n\n    dispatch(mouseLeaveItem());\n  }\n\n  function handleClick(node: SunburstNode) {\n    if (onClick) onClick(node);\n\n    dispatch(\n      setActiveClickItemIndex({\n        activeIndex: node.tooltipIndex,\n        activeDataKey: dataKey,\n        activeCoordinate: positions.get(node.name),\n        activeGraphicalItemId: id,\n      }),\n    );\n  }\n\n  // recursively add nodes for each data point and its children\n  function drawArcs(childNodes: SunburstData[] | undefined, options: DrawArcOptions, depth: number = 1): void {\n    const { radius, innerR, initialAngle, childColor, nestedActiveTooltipIndex } = options;\n\n    let currentAngle = initialAngle;\n\n    if (!childNodes) return; // base case: no children of this node\n\n    childNodes.forEach((d, i) => {\n      const currentTooltipIndex = depth === 1 ? `[${i}]` : addToSunburstNodeIndex(i, nestedActiveTooltipIndex);\n      const nodeWithIndex: SunburstNode = { ...d, tooltipIndex: currentTooltipIndex };\n\n      const arcLength = rScale(d[dataKey]);\n      const start = currentAngle;\n      // color priority - if there's a color on the individual point use that, otherwise use parent color or default\n      const fillColor = d?.fill ?? childColor ?? fill;\n      const { x: textX, y: textY } = polarToCartesian(0, 0, innerR + radius / 2, -(start + arcLength - arcLength / 2));\n      currentAngle += arcLength;\n      sectors.push(\n        <g key={`sunburst-sector-${d.name}-${i}`}>\n          <Sector\n            onClick={() => handleClick(nodeWithIndex)}\n            onMouseEnter={e => handleMouseEnter(nodeWithIndex, e)}\n            onMouseLeave={e => handleMouseLeave(nodeWithIndex, e)}\n            fill={fillColor}\n            stroke={stroke}\n            strokeWidth={padding}\n            startAngle={start}\n            endAngle={start + arcLength}\n            innerRadius={innerR}\n            outerRadius={innerR + radius}\n            cx={cx}\n            cy={cy}\n          />\n          <Text {...textOptions} alignmentBaseline=\"middle\" textAnchor=\"middle\" x={textX + cx} y={cy - textY}>\n            {d[dataKey]}\n          </Text>\n        </g>,\n      );\n\n      const { x: tooltipX, y: tooltipY } = polarToCartesian(cx, cy, innerR + radius / 2, start);\n      positions.set(d.name, { x: tooltipX, y: tooltipY });\n\n      return drawArcs(\n        d.children,\n        {\n          radius,\n          innerR: innerR + radius + ringPadding,\n          initialAngle: start,\n          childColor: fillColor,\n          nestedActiveTooltipIndex: currentTooltipIndex,\n        },\n        depth + 1,\n      );\n    });\n  }\n\n  drawArcs(data.children, { radius: thickness, innerR: innerRadius, initialAngle: startAngle });\n\n  const layerClass = clsx('recharts-sunburst', className);\n  return (\n    <Surface width={width} height={height}>\n      <Layer className={layerClass}>{sectors}</Layer>\n      <SetSunburstTooltipEntrySettings\n        dataKey={dataKey}\n        nameKey={nameKey}\n        data={data}\n        stroke={stroke}\n        fill={fill}\n        positions={positions}\n        id={id}\n      />\n      {children}\n    </Surface>\n  );\n};\n\n/**\n * The sunburst is a hierarchical chart, similar to a {@link Treemap}, plotted in polar coordinates.\n * Sunburst charts effectively convey the hierarchical relationships and proportions within each level.\n * It is easy to see all the middle layers in the hierarchy, which might get lost in other visualizations.\n * For some datasets, the radial layout may be more visually appealing and intuitive than a traditional {@link Treemap}.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport const SunburstChart = (outsideProps: SunburstChartProps) => {\n  const props = resolveDefaultProps(outsideProps, defaultSunburstChartProps);\n  const { className, width, height, responsive, style, id: externalId } = props;\n  const [tooltipPortal, setTooltipPortal] = useState<HTMLElement | null>(null);\n  return (\n    <RechartsStoreProvider preloadedState={preloadedState} reduxStoreName={className ?? 'SunburstChart'}>\n      <ReportChartSize width={width} height={height} />\n      <ReportChartMargin margin={defaultSunburstMargin} />\n      <TooltipPortalContext.Provider value={tooltipPortal}>\n        <RechartsWrapper\n          className={className}\n          width={width}\n          height={height}\n          responsive={responsive}\n          style={style}\n          ref={(node: HTMLDivElement) => {\n            if (tooltipPortal == null && node != null) {\n              setTooltipPortal(node);\n            }\n          }}\n          onMouseEnter={undefined}\n          onMouseLeave={undefined}\n          onClick={undefined}\n          onMouseMove={undefined}\n          onMouseDown={undefined}\n          onMouseUp={undefined}\n          onContextMenu={undefined}\n          onDoubleClick={undefined}\n          onTouchStart={undefined}\n          onTouchMove={undefined}\n          onTouchEnd={undefined}\n        >\n          <RegisterGraphicalItemId id={externalId} type=\"sunburst\">\n            {id => <SunburstChartImpl {...props} id={id} />}\n          </RegisterGraphicalItemId>\n        </RechartsWrapper>\n      </TooltipPortalContext.Provider>\n    </RechartsStoreProvider>\n  );\n};\n","import * as React from 'react';\nimport { Props as FunnelProps, FunnelTrapezoidItem } from '../cartesian/Funnel';\nimport { Shape } from './ActiveShapeUtils';\n\nexport type FunnelTrapezoidProps = { option: FunnelProps['activeShape']; isActive: boolean } & FunnelTrapezoidItem;\n\nexport function FunnelTrapezoid(props: FunnelTrapezoidProps) {\n  return <Shape shapeType=\"trapezoid\" {...props} />;\n}\n","import { createSelector } from 'reselect';\nimport { ReactElement } from 'react';\nimport { computeFunnelTrapezoids, FunnelTrapezoidItem } from '../../cartesian/Funnel';\nimport { ChartData } from '../chartDataSlice';\nimport { RechartsRootState } from '../store';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { ChartOffsetInternal, DataKey, TooltipType } from '../../util/types';\nimport { CellProps } from '../..';\nimport { GraphicalItemId } from '../graphicalItemsSlice';\n\nexport type ResolvedFunnelSettings = {\n  dataKey: DataKey<any>;\n  data: ChartData | undefined;\n  nameKey: DataKey<any>;\n  tooltipType?: TooltipType;\n  lastShapeType?: 'triangle' | 'rectangle';\n  reversed?: boolean;\n  customWidth?: string | number;\n  cells: ReadonlyArray<ReactElement>;\n  presentationProps: Record<string, any> | null;\n  id: GraphicalItemId;\n};\n\nconst pickFunnelSettings = (\n  _state: RechartsRootState,\n  funnelSettings: ResolvedFunnelSettings,\n): ResolvedFunnelSettings => funnelSettings;\n\nexport const selectFunnelTrapezoids: (\n  state: RechartsRootState,\n  funnelSettings: ResolvedFunnelSettings,\n) => ReadonlyArray<FunnelTrapezoidItem> = createSelector(\n  [selectChartOffsetInternal, pickFunnelSettings, selectChartDataAndAlwaysIgnoreIndexes],\n  (\n    offset: ChartOffsetInternal,\n    {\n      data,\n      dataKey,\n      nameKey,\n      tooltipType,\n      lastShapeType,\n      reversed,\n      customWidth,\n      cells,\n      presentationProps,\n      id: graphicalItemId,\n    },\n    { chartData },\n  ): ReadonlyArray<FunnelTrapezoidItem> => {\n    let displayedData: ChartData | undefined;\n    if (data != null && data.length > 0) {\n      displayedData = data;\n    } else if (chartData != null && chartData.length > 0) {\n      displayedData = chartData;\n    }\n\n    if (displayedData && displayedData.length) {\n      displayedData = displayedData.map((entry: any, index: number) => ({\n        payload: entry,\n        ...presentationProps,\n        ...entry,\n        ...(cells && cells[index] && cells[index].props),\n      }));\n    } else if (cells && cells.length) {\n      displayedData = cells.map((cell: ReactElement<CellProps>) => ({ ...presentationProps, ...cell.props }));\n    } else {\n      return [];\n    }\n\n    return computeFunnelTrapezoids({\n      dataKey,\n      nameKey,\n      displayedData,\n      tooltipType,\n      lastShapeType,\n      reversed,\n      offset,\n      customWidth,\n      graphicalItemId,\n    });\n  },\n);\n","import * as React from 'react';\nimport { MutableRefObject, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport omit from 'es-toolkit/compat/omit';\n\nimport { clsx } from 'clsx';\nimport { selectActiveIndex } from '../state/selectors/selectors';\nimport { useAppSelector } from '../state/hooks';\nimport { Layer } from '../container/Layer';\nimport { Props as TrapezoidProps } from '../shape/Trapezoid';\nimport {\n  CartesianLabelListContextProvider,\n  CartesianLabelListEntry,\n  ImplicitLabelListType,\n  LabelListFromLabelProp,\n} from '../component/LabelList';\nimport { getPercentValue, interpolate } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport {\n  ActiveShape,\n  adaptEventsOfChild,\n  AnimationDuration,\n  AnimationTiming,\n  CartesianViewBoxRequired,\n  ChartOffsetInternal,\n  Coordinate,\n  DataKey,\n  DataProvider,\n  LegendType,\n  PresentationAttributesAdaptChildEvent,\n  TooltipType,\n  TrapezoidViewBox,\n} from '../util/types';\nimport { FunnelTrapezoid, FunnelTrapezoidProps } from '../util/FunnelUtils';\nimport {\n  useMouseClickItemDispatch,\n  useMouseEnterItemDispatch,\n  useMouseLeaveItemDispatch,\n} from '../context/tooltipContext';\nimport { TooltipPayload, TooltipPayloadConfiguration } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { ResolvedFunnelSettings, selectFunnelTrapezoids } from '../state/selectors/funnelSelectors';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Cell } from '../component/Cell';\nimport { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { usePlotArea } from '../hooks';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { GraphicalItemId } from '../state/graphicalItemsSlice';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { WithIdRequired } from '../util/useUniqueId';\n\nexport type FunnelTrapezoidItem = TrapezoidProps &\n  TrapezoidViewBox & {\n    value?: number | string;\n    payload?: any;\n    tooltipPosition: Coordinate;\n    name: string;\n    labelViewBox: TrapezoidViewBox;\n    parentViewBox: CartesianViewBoxRequired;\n    val: number | ReadonlyArray<number>;\n    tooltipPayload: TooltipPayload;\n  };\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\ntype InternalFunnelProps = RequiresDefaultProps<FunnelProps, typeof defaultFunnelProps> & {\n  id: GraphicalItemId;\n  trapezoids: ReadonlyArray<FunnelTrapezoidItem>;\n};\n\n/**\n * External props, intended for end users to fill in\n */\ninterface FunnelProps extends DataProvider {\n  /**\n   * This component is rendered when this graphical item is activated\n   * (could be by mouse hover, touch, keyboard, programmatically).\n   */\n  activeShape?: ActiveShape<FunnelTrapezoidItem, SVGPathElement>;\n  /**\n   * Specifies when the animation should begin, the unit of this option is ms.\n   * @defaultValue 400\n   */\n  animationBegin?: number;\n  /**\n   * Specifies the duration of animation, the unit of this option is ms.\n   * @defaultValue 1500\n   */\n  animationDuration?: AnimationDuration;\n  /**\n   * The type of easing function.\n   * @defaultValue ease\n   */\n  animationEasing?: AnimationTiming;\n  className?: string;\n  /**\n   * Decides how to extract the value of this Funnel from the data:\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the value of this Funnel.\n   */\n  dataKey: DataKey<any>;\n  /**\n   * Hides the whole graphical element when true.\n   *\n   * Hiding an element is different from removing it from the chart:\n   * Hidden graphical elements are still visible in Legend,\n   * and can be included in axis domain calculations,\n   * depending on `includeHidden` props of your XAxis/YAxis.\n   *\n   * @defaultValue false\n   */\n  hide?: boolean;\n  /**\n   * Unique identifier of this component.\n   * Used as an HTML attribute `id`, and also to identify this element internally.\n   *\n   * If undefined, Recharts will generate a unique ID automatically.\n   */\n  id?: string;\n  /**\n   * If set false, animation of funnel will be disabled.\n   * If set \"auto\", the animation will be disabled in SSR and enabled in browser.\n   * @defaultValue auto\n   */\n  isAnimationActive?: boolean | 'auto';\n  label?: ImplicitLabelListType;\n  /**\n   * @defaultValue triangle\n   */\n  lastShapeType?: 'triangle' | 'rectangle';\n  /**\n   * The type of icon in legend.  If set to 'none', no legend item will be rendered.\n   * @defaultValue rect\n   */\n  legendType?: LegendType;\n  /**\n   * Name represents each sector in the tooltip.\n   * This allows you to extract the name from the data:\n   *\n   * - `string`: the name of the field in the data object;\n   * - `number`: the index of the field in the data;\n   * - `function`: a function that receives the data object and returns the name.\n   *\n   * @defaultValue name\n   */\n  nameKey?: DataKey<any>;\n  /**\n   * The customized event handler of animation end\n   */\n  onAnimationEnd?: () => void;\n  /**\n   * The customized event handler of animation start\n   */\n  onAnimationStart?: () => void;\n  reversed?: boolean;\n  /**\n   * If set a ReactElement, the shape of funnel can be customized.\n   * If set a function, the function will be called to render customized shape.\n   */\n  shape?: ActiveShape<FunnelTrapezoidItem, SVGPathElement>;\n  tooltipType?: TooltipType;\n  /**\n   * The customized event handler of click on the area in this group\n   */\n  onClick?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousedown on the area in this group\n   */\n  onMouseDown?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseup on the area in this group\n   */\n  onMouseUp?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mousemove on the area in this group\n   */\n  onMouseMove?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseover on the area in this group\n   */\n  onMouseOver?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseout on the area in this group\n   */\n  onMouseOut?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseenter on the area in this group\n   */\n  onMouseEnter?: (data: any, index: number, e: React.MouseEvent) => void;\n  /**\n   * The customized event handler of mouseleave on the area in this group\n   */\n  onMouseLeave?: (data: any, index: number, e: React.MouseEvent) => void;\n}\n\ntype FunnelSvgProps = Omit<PresentationAttributesAdaptChildEvent<any, SVGPathElement>, 'ref'>;\n\ntype InternalProps = FunnelSvgProps & InternalFunnelProps;\n\nexport type Props = FunnelSvgProps & FunnelProps;\n\ntype RealFunnelData = unknown;\n\ntype FunnelTrapezoidsProps = {\n  trapezoids: ReadonlyArray<FunnelTrapezoidItem>;\n  allOtherFunnelProps: InternalProps;\n};\n\nconst SetFunnelTooltipEntrySettings = React.memo(\n  ({\n    dataKey,\n    nameKey,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    tooltipType,\n    data,\n    trapezoids,\n    id,\n  }: Pick<\n    InternalProps,\n    'dataKey' | 'nameKey' | 'stroke' | 'strokeWidth' | 'fill' | 'name' | 'hide' | 'tooltipType' | 'data' | 'id'\n  > & {\n    trapezoids: ReadonlyArray<FunnelTrapezoidItem>;\n  }) => {\n    const tooltipEntrySettings: TooltipPayloadConfiguration = {\n      dataDefinedOnItem: data,\n      getPosition: index => trapezoids[Number(index)]?.tooltipPosition,\n      settings: {\n        stroke,\n        strokeWidth,\n        fill,\n        dataKey,\n        name,\n        nameKey,\n        hide,\n        type: tooltipType,\n        color: fill,\n        unit: '', // Funnel does not have unit, why?\n        graphicalItemId: id,\n      },\n    };\n    return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;\n  },\n);\n\nfunction FunnelLabelListProvider({\n  showLabels,\n  trapezoids,\n  children,\n}: {\n  showLabels: boolean;\n  trapezoids: ReadonlyArray<FunnelTrapezoidItem> | undefined;\n  children: ReactNode;\n}) {\n  const labelListEntries: ReadonlyArray<CartesianLabelListEntry> | undefined = useMemo(() => {\n    if (!showLabels) {\n      return undefined;\n    }\n    return trapezoids?.map((entry): CartesianLabelListEntry => {\n      const viewBox: TrapezoidViewBox = entry.labelViewBox;\n\n      return {\n        ...viewBox,\n        value: entry.name,\n        payload: entry.payload,\n        parentViewBox: entry.parentViewBox,\n        viewBox,\n        fill: entry.fill,\n      };\n    });\n  }, [showLabels, trapezoids]);\n\n  return <CartesianLabelListContextProvider value={labelListEntries}>{children}</CartesianLabelListContextProvider>;\n}\n\nfunction FunnelTrapezoids(props: FunnelTrapezoidsProps) {\n  const { trapezoids, allOtherFunnelProps } = props;\n  const activeItemIndex = useAppSelector(state =>\n    selectActiveIndex(state, 'item', state.tooltip.settings.trigger, undefined),\n  );\n  const {\n    onMouseEnter: onMouseEnterFromProps,\n    onClick: onItemClickFromProps,\n    onMouseLeave: onMouseLeaveFromProps,\n    shape,\n    activeShape,\n    ...restOfAllOtherProps\n  } = allOtherFunnelProps;\n\n  const onMouseEnterFromContext = useMouseEnterItemDispatch(\n    onMouseEnterFromProps,\n    allOtherFunnelProps.dataKey,\n    allOtherFunnelProps.id,\n  );\n  const onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n  const onClickFromContext = useMouseClickItemDispatch(\n    onItemClickFromProps,\n    allOtherFunnelProps.dataKey,\n    allOtherFunnelProps.id,\n  );\n\n  return (\n    <>\n      {trapezoids.map((entry: FunnelTrapezoidItem, i: number) => {\n        const isActiveIndex = Boolean(activeShape) && activeItemIndex === String(i);\n        const trapezoidOptions = isActiveIndex ? activeShape : shape;\n        const { id, ...trapezoidProps }: FunnelTrapezoidProps = {\n          ...entry,\n          option: trapezoidOptions,\n          isActive: isActiveIndex,\n          stroke: entry.stroke,\n        };\n\n        return (\n          <Layer\n            key={`trapezoid-${entry?.x}-${entry?.y}-${entry?.name}-${entry?.value}`}\n            className=\"recharts-funnel-trapezoid\"\n            {...adaptEventsOfChild(restOfAllOtherProps, entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onMouseEnter={onMouseEnterFromContext(entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onMouseLeave={onMouseLeaveFromContext(entry, i)}\n            // @ts-expect-error the types need a bit of attention\n            onClick={onClickFromContext(entry, i)}\n          >\n            <FunnelTrapezoid {...trapezoidProps} />\n          </Layer>\n        );\n      })}\n    </>\n  );\n}\n\nfunction TrapezoidsWithAnimation({\n  previousTrapezoidsRef,\n  props,\n}: {\n  props: InternalProps;\n  previousTrapezoidsRef: MutableRefObject<ReadonlyArray<FunnelTrapezoidItem> | undefined>;\n}) {\n  const {\n    trapezoids,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    onAnimationEnd,\n    onAnimationStart,\n  } = props;\n  const prevTrapezoids = previousTrapezoidsRef.current;\n\n  const [isAnimating, setIsAnimating] = useState(false);\n  const showLabels = !isAnimating;\n\n  const animationId = useAnimationId(trapezoids, 'recharts-funnel-');\n\n  const handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n\n  const handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n\n  return (\n    <FunnelLabelListProvider showLabels={showLabels} trapezoids={trapezoids}>\n      <JavascriptAnimate\n        animationId={animationId}\n        begin={animationBegin}\n        duration={animationDuration}\n        isActive={isAnimationActive}\n        easing={animationEasing}\n        key={animationId}\n        onAnimationStart={handleAnimationStart}\n        onAnimationEnd={handleAnimationEnd}\n      >\n        {(t: number) => {\n          const stepData: ReadonlyArray<FunnelTrapezoidItem> | undefined =\n            t === 1\n              ? trapezoids\n              : trapezoids.map((entry: FunnelTrapezoidItem, index: number): FunnelTrapezoidItem => {\n                  const prev = prevTrapezoids && prevTrapezoids[index];\n\n                  if (prev) {\n                    return {\n                      ...entry,\n                      x: interpolate(prev.x, entry.x, t),\n                      y: interpolate(prev.y, entry.y, t),\n                      upperWidth: interpolate(prev.upperWidth, entry.upperWidth, t),\n                      lowerWidth: interpolate(prev.lowerWidth, entry.lowerWidth, t),\n                      height: interpolate(prev.height, entry.height, t),\n                    };\n                  }\n\n                  return {\n                    ...entry,\n                    x: interpolate(entry.x + entry.upperWidth / 2, entry.x, t),\n                    y: interpolate(entry.y + entry.height / 2, entry.y, t),\n                    upperWidth: interpolate(0, entry.upperWidth, t),\n                    lowerWidth: interpolate(0, entry.lowerWidth, t),\n                    height: interpolate(0, entry.height, t),\n                  };\n                });\n\n          if (t > 0) {\n            // eslint-disable-next-line no-param-reassign\n            previousTrapezoidsRef.current = stepData;\n          }\n          return (\n            <Layer>\n              <FunnelTrapezoids trapezoids={stepData} allOtherFunnelProps={props} />\n            </Layer>\n          );\n        }}\n      </JavascriptAnimate>\n      <LabelListFromLabelProp label={props.label} />\n      {props.children}\n    </FunnelLabelListProvider>\n  );\n}\n\nfunction RenderTrapezoids(props: InternalProps) {\n  const previousTrapezoidsRef = useRef<ReadonlyArray<FunnelTrapezoidItem> | undefined>(undefined);\n\n  return <TrapezoidsWithAnimation props={props} previousTrapezoidsRef={previousTrapezoidsRef} />;\n}\n\nconst getRealWidthHeight = (customWidth: number | string | undefined, offset: ChartOffsetInternal) => {\n  const { width, height, left, top } = offset;\n\n  const realWidth: number = getPercentValue(customWidth, width, width);\n\n  return {\n    realWidth,\n    realHeight: height,\n    offsetX: left,\n    offsetY: top,\n  };\n};\n\nexport const defaultFunnelProps = {\n  animationBegin: 400,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  fill: '#808080',\n  hide: false,\n  isAnimationActive: 'auto',\n  lastShapeType: 'triangle',\n  legendType: 'rect',\n  nameKey: 'name',\n  reversed: false,\n  stroke: '#fff',\n} as const satisfies Partial<Props>;\n\nfunction FunnelImpl(props: WithIdRequired<RequiresDefaultProps<Props, typeof defaultFunnelProps>>) {\n  const plotArea = usePlotArea();\n\n  const {\n    stroke,\n    fill,\n    legendType,\n    hide,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    nameKey,\n    lastShapeType,\n    id,\n    ...everythingElse\n  } = props;\n\n  const presentationProps = svgPropertiesNoEvents(props);\n  const cells = findAllByType(props.children, Cell);\n\n  const funnelSettings: ResolvedFunnelSettings = useMemo(\n    () => ({\n      dataKey: props.dataKey,\n      nameKey,\n      data: props.data,\n      tooltipType: props.tooltipType,\n      lastShapeType,\n      reversed: props.reversed,\n      customWidth: props.width,\n      cells,\n      presentationProps,\n      id,\n    }),\n    [\n      props.dataKey,\n      nameKey,\n      props.data,\n      props.tooltipType,\n      lastShapeType,\n      props.reversed,\n      props.width,\n      cells,\n      presentationProps,\n      id,\n    ],\n  );\n\n  const trapezoids = useAppSelector(state => selectFunnelTrapezoids(state, funnelSettings));\n\n  if (hide || !trapezoids || !trapezoids.length || !plotArea) {\n    return null;\n  }\n  const { height, width } = plotArea;\n\n  const layerClass = clsx('recharts-trapezoids', props.className);\n\n  return (\n    <>\n      <SetFunnelTooltipEntrySettings\n        dataKey={props.dataKey}\n        nameKey={props.nameKey}\n        stroke={props.stroke}\n        strokeWidth={props.strokeWidth}\n        fill={props.fill}\n        name={props.name}\n        hide={props.hide}\n        tooltipType={props.tooltipType}\n        data={props.data}\n        trapezoids={trapezoids}\n        id={id}\n      />\n      <Layer className={layerClass}>\n        <RenderTrapezoids\n          {...everythingElse}\n          id={id}\n          stroke={stroke}\n          fill={fill}\n          nameKey={nameKey}\n          lastShapeType={lastShapeType}\n          animationBegin={animationBegin}\n          animationDuration={animationDuration}\n          animationEasing={animationEasing}\n          isAnimationActive={isAnimationActive}\n          hide={hide}\n          legendType={legendType}\n          height={height}\n          width={width}\n          trapezoids={trapezoids}\n        />\n      </Layer>\n    </>\n  );\n}\n\nexport function computeFunnelTrapezoids({\n  dataKey,\n  nameKey,\n  displayedData,\n  tooltipType,\n  lastShapeType,\n  reversed,\n  offset,\n  customWidth,\n  graphicalItemId,\n}: {\n  dataKey: Props['dataKey'];\n  nameKey: Props['nameKey'];\n  offset: ChartOffsetInternal;\n  displayedData: ReadonlyArray<RealFunnelData>;\n  tooltipType?: TooltipType;\n  lastShapeType?: Props['lastShapeType'];\n  reversed?: boolean;\n  customWidth: number | string | undefined;\n  graphicalItemId: GraphicalItemId;\n}): ReadonlyArray<FunnelTrapezoidItem> {\n  const { realHeight, realWidth, offsetX, offsetY } = getRealWidthHeight(customWidth, offset);\n  const values = displayedData.map((entry: unknown) => {\n    const val = getValueByDataKey(entry, dataKey, 0);\n    return typeof val === 'number' ? val : 0;\n  });\n  const maxValue = Math.max.apply(null, values);\n  const len = displayedData.length;\n  const rowHeight = realHeight / len;\n  const parentViewBox = { x: offset.left, y: offset.top, width: offset.width, height: offset.height };\n\n  let trapezoids: ReadonlyArray<FunnelTrapezoidItem> = displayedData.map(\n    (entry: unknown, i: number): FunnelTrapezoidItem => {\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      const rawVal: number | ReadonlyArray<number> = getValueByDataKey(entry, dataKey, 0);\n      const name: string = String(getValueByDataKey(entry, nameKey, i));\n      let val = rawVal;\n      let nextVal: number | ReadonlyArray<number> | undefined;\n\n      if (i !== len - 1) {\n        const nextDataValue = getValueByDataKey(displayedData[i + 1], dataKey, 0);\n        if (typeof nextDataValue === 'number') {\n          nextVal = nextDataValue;\n        } else if (Array.isArray(nextDataValue)) {\n          const [first, second] = nextDataValue;\n          if (typeof first === 'number') {\n            val = first;\n          }\n          if (typeof second === 'number') {\n            nextVal = second;\n          }\n        }\n      } else if (rawVal instanceof Array && rawVal.length === 2) {\n        const [first, second] = rawVal;\n        if (typeof first === 'number') {\n          val = first;\n        }\n        if (typeof second === 'number') {\n          nextVal = second;\n        }\n      } else if (lastShapeType === 'rectangle') {\n        nextVal = val;\n      } else {\n        nextVal = 0;\n      }\n\n      // @ts-expect-error this is a problem if we have ranged values because `val` can be an array\n      const x = ((maxValue - val) * realWidth) / (2 * maxValue) + offsetX;\n      const y = rowHeight * i + offsetY;\n      // @ts-expect-error getValueByDataKey does not validate the output type\n      const upperWidth = (val / maxValue) * realWidth;\n      // @ts-expect-error nextVal could be an array\n      const lowerWidth = (nextVal / maxValue) * realWidth;\n\n      const tooltipPayload: TooltipPayload = [\n        { name, value: val, payload: entry, dataKey, type: tooltipType, graphicalItemId },\n      ];\n      const tooltipPosition: Coordinate = {\n        x: x + upperWidth / 2,\n        y: y + rowHeight / 2,\n      };\n\n      const trapezoidViewBox: TrapezoidViewBox = {\n        x,\n        y,\n        upperWidth,\n        lowerWidth,\n        width: Math.max(upperWidth, lowerWidth),\n        height: rowHeight,\n      };\n\n      return {\n        ...trapezoidViewBox,\n        name,\n        val,\n        tooltipPayload,\n        tooltipPosition,\n        ...(entry != null && typeof entry === 'object' ? omit(entry, ['width']) : {}),\n        payload: entry,\n        parentViewBox,\n        labelViewBox: trapezoidViewBox,\n      };\n    },\n  );\n\n  if (reversed) {\n    trapezoids = trapezoids.map((entry: FunnelTrapezoidItem, index: number): FunnelTrapezoidItem => {\n      const reversedViewBox: TrapezoidViewBox = {\n        x: entry.x - (entry.lowerWidth - entry.upperWidth) / 2,\n        y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight,\n        upperWidth: entry.lowerWidth,\n        lowerWidth: entry.upperWidth,\n        width: Math.max(entry.lowerWidth, entry.upperWidth),\n        height: rowHeight,\n      };\n\n      return {\n        ...entry,\n        ...reversedViewBox,\n        tooltipPosition: {\n          ...entry.tooltipPosition,\n          y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight + rowHeight / 2,\n        },\n        labelViewBox: reversedViewBox,\n      };\n    });\n  }\n\n  return trapezoids;\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides LabelListContext\n * @provides CellReader\n */\nexport function Funnel(outsideProps: Props) {\n  const { id: externalId, ...props } = resolveDefaultProps(outsideProps, defaultFunnelProps);\n  return (\n    <RegisterGraphicalItemId id={externalId} type=\"funnel\">\n      {id => <FunnelImpl {...props} id={id} />}\n    </RegisterGraphicalItemId>\n  );\n}\n\nFunnel.displayName = 'Funnel';\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nimport { CartesianChartProps, TooltipEventType } from '../util/types';\n\nconst allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport const FunnelChart = forwardRef<SVGSVGElement, CartesianChartProps>((props: CartesianChartProps, ref) => {\n  return (\n    <CartesianChart\n      chartName=\"FunnelChart\"\n      defaultTooltipEventType=\"item\"\n      validateTooltipEventTypes={allowedTooltipTypes}\n      tooltipPayloadSearcher={arrayTooltipSearcher}\n      categoricalChartProps={props}\n      ref={ref}\n    />\n  );\n});\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__5442__","__WEBPACK_EXTERNAL_MODULE__6003__","__WEBPACK_EXTERNAL_MODULE__2751__","Object","defineProperty","Symbol","toStringTag","value","debounce$1","debounce","func","debounceMs","options","leading","trailing","maxWait","edges","Array","result","pendingAt","_debounced","args","apply","debounced","Date","now","cancel","schedule","flush","isLength","isArrayLike","length","has","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","ee","listenerCount","emit","a1","a2","a3","a4","a5","len","arguments","removeListener","undefined","j","on","removeAllListeners","off","prefixed","isIndex","isObject","isEqualsSameValueZero","isIterateeCall","index","object","maxBy","items","getValue","maxElement","max","element","isTypedArray$1","isTypedArray","x","isBuffer","Buffer","last","arr","isMatchWith","isMatch","target","source","minBy$1","identity","iteratee","minBy","iteratee$1","from","last$1","toArray","array","isSymbol","toKey","is","valueOf","String","isPrototype","times","keysInImpl","key","keysIn","indices","filteredKeys","Set","add","inheritedKeys","filter","isArray","hasOwn","arrayLikeKeysIn","keys","prototypeKeysIn","isObjectLike","toString","map","join","Number","getSymbols","getSymbolsIn","getPrototypeOf","getTag","React","shim","objectIs","y","useSyncExternalStore","useRef","useEffect","useMemo","useDebugValue","useSyncExternalStoreWithSelector","subscribe","getSnapshot","getServerSnapshot","selector","isEqual","instRef","current","inst","hasValue","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","isPrimitive","uniqBy$1","ary","isArrayLikeObject","uniqBy","isArguments","toPath","deepKey","quoteChar","bracket","charCodeAt","char","cloneDeep","get","matchesProperty","property","compareValues","isKey","orderBy","collection","criteria","orders","guard","values","order","getValueByNestedPath","path","preparedCriteria","criterion","item","original","getValueByCriterion","sort","a","b","comparedResult","getPriority","aPriority","bPriority","sumBy","cloneDeepWith","obj","cloneDeepWithImpl","Map","ArrayBuffer","isView","DataView","tags","valueToClone","keyToClone","objectToClone","stack","cloneValue","cloned","set","input","getTime","RegExp","flags","lastIndex","subarray","SharedArrayBuffer","buffer","byteOffset","byteLength","copyProperties","File","type","Blob","Error","constructor","message","cause","Boolean","argumentsTag","arrayTag","arrayBufferTag","dataViewTag","booleanTag","dateTag","float32ArrayTag","float64ArrayTag","int8ArrayTag","int16ArrayTag","int32ArrayTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","uint8ArrayTag","uint8ClampedArrayTag","uint16ArrayTag","uint32ArrayTag","isCloneableObject","descriptor","getOwnPropertyDescriptor","writable","regexIsDeepProp","regexIsPlainProp","test","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","e","unset","isDeepKey","flatten","isPlainObject","omit","keysArr","some","keysToCopy","deepCloneInOmit","shallowCloneInOmit","cloneInOmit","isUnsafeProperty","defaultValue","getWithPath","sortBy","other","isNaN","toNumber","toFinite","Infinity","MAX_VALUE","range","start","end","step","Math","ceil","includes","throttle","throttleMs","depth","flooredDepth","floor","recursive","currentDepth","maxBy$1","symbol","propertyIsEnumerable","isConcatSpreadable","signal","pendingThis","pendingArgs","invoke","timeoutId","clearTimeout","setTimeout","aborted","isFirstCall","addEventListener","n","resolvedPath","toInteger","finite","remainder","unsetWithPath","parent","lastKey","matches","minElement","min","isMatchWithInternal","isArrayMatch","size","sourceValue","entries","isMapMatch","isSetMatch","delete","isObjectMatch","countedIndex","sourceItem","found","doesMatch","objValue","srcValue","ONE","MAX_DIGITS","Decimal","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","pow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","carry","d","k","xd","yd","Ctor","pr","s","round","reverse","unshift","pop","checkInt32","digitsToString","ws","indexOfLastWord","str","w","getZeroString","absoluteValue","abs","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","base","r","wpr","ln","minus","sub","subtract","modulo","mod","q","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","sqrt","t","toExponential","indexOf","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toint","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","val","toJSON","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c","c0","numerator","x2","charAt","parseDecimal","replace","search","substring","rd","doRound","xdi","xe","xLTy","isExp","config","p","v","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","isSafeInteger","useState","useLayoutEffect","checkIfSnapshotChanged","latestGetSnapshot","nextValue","error","window","document","createElement","_useState","forceUpdate","IS_UNSIGNED_INTEGER","tag","proto","mapper","NaN","bigInt64ArrayTag","bigUint64ArrayTag","errorTag","functionTag","cloneDeepWith$1","customizer","iterator","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","enumerable","g","globalThis","Function","prop","f","clsx","EventKeys","isEventKey","SVGElementPropKeySet","isSvgElementPropKey","isDataAttribute","startsWith","svgPropertiesNoEvents","svgPropertiesNoEventsFromUnknown","isValidElement","props","svgPropertiesAndEvents","Surface","forwardRef","ref","children","width","height","viewBox","className","style","title","desc","others","_objectWithoutProperties","_excluded","svgView","layerClass","_extends","Layer","LegendPortalContext","createContext","useLegendPortal","useContext","atan2","cos","sin","pi","PI","tau","draw","moveTo","arc","lineTo","closePath","tan30","tan30_2","rect","kr","kx","ky","sqrt3","x0","y0","x1","y1","y2","tauEpsilon","append","strings","_","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","a0","ccw","dx","dy","cw","da","h","withPath","shape","RangeError","defaultRoundPrecision","num","factor","rounded","roundTemplateLiteral","_len","_key","reduce","string","mathSign","isNan","isPercent","isNumber","isNumOrStr","idCounter","uniqueId","id","getPercentValue","percent","totalValue","validate","parseFloat","hasDuplicate","cache","interpolate","findEntryInArray","specifiedKey","specifiedValue","find","entry","isNullish","upperFirst","toUpperCase","isNotNil","noop","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","_ref","sizeType","rest","_objectSpread","realType","cx","cy","filteredProps","transform","getPath","symbolFactory","getSymbolFactory","circle","shapeSymbol","calculateAreaSize","angle","registerSymbol","isPolarCoordinate","adaptEventHandlers","newHandler","inputProps","out","forEach","adaptEventsOfChild","data","getEventHandlerOfChild","originalHandler","resolveDefaultProps","realProps","resolvedProps","acc","SIZE","defaultLegendContentDefaultProps","align","iconSize","inactiveColor","layout","verticalAlign","Icon","_data$payload","iconType","halfSize","sixthSize","thirdSize","color","inactive","preferredIcon","strokeWidth","fill","stroke","strokeDasharray","payload","legendIcon","iconProps","Items","formatter","itemStyle","display","marginRight","svgStyle","finalFormatter","finalValue","DefaultLegendContent","outsideProps","finalStyle","padding","margin","textAlign","getUniqPayload","option","defaultUniqBy","RechartsReduxContext","noopDispatch","useAppDispatch","store","dispatch","addNestedSubNoop","refEquality","useAppSelector","outOfContextSelector","state","subscription","addNestedSub","getState","assertIsFunction","errorMessage","ensureIsArray","getDependencies","createSelectorArgs","dependencies","every","itemTypes","assertIsArrayOfFunctions","Ref","WeakRef","deref","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","arg","objectCache","WeakMap","objectNode","primitiveCache","primitiveNode","terminatedNode","lastResultValue","clearCache","resetResultsCount","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","memoize","memoizeOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","combinedOptions","argsMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","inputSelectorResults","inputSelectorArgs","collectInputSelectorResults","assign","resetDependencyRecomputations","resetRecomputations","withTypes","createStructuredSelector","inputSelectorsObject","selectorCreator","assertIsObject","inputSelectorKeys","structuredSelector","composition","selectLegendSettings","legend","settings","selectLegendPayload","createSelector","payloads","itemSorter","flat","EPS","useElementOffset","extraDependencies","lastBoundingBox","setLastBoundingBox","left","top","updateBoundingBox","useCallback","node","getBoundingClientRect","box","Q","Z","L","nn","u","X","rn","configurable","clear","freeze","isFrozen","tn","m","U","O","S","M","H","A","I","N","R","D","E","F","T","C","en","Proxy","revocable","revoke","proxy","J","K","G","W","B","Reflect","for","ownKeys","getOwnPropertyDescriptors","deleteProperty","setPrototypeOf","un","produce","Promise","then","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","$","an","bind","_typeof","toPropertyKey","toPrimitive","_objectSpread2","defineProperties","formatProdErrorMessage","code","$$observable","observable","randomString","random","split","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","splice","action","replaceReducer","nextReducer","outerSubscribe","observer","observeState","next","unsubscribe","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","_i","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","createThunkMiddleware","extraArgument","thunk","withExtraArgument","extendStatics","__extends","__","__generator","thisArg","body","label","sent","trys","ops","verb","done","__spreadArray","to","il","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","_c","__spreadProps","__async","__this","__arguments","generator","resolve","reject","fulfilled","rejected","throw","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","baseProto","createAction","prepareAction","actionCreator","prepared","meta","match","isAction","MiddlewareArray","_super","_this","species","prepend","EnhancerArray","freezeDraftable","curryGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","isBoolean","getDefaultMiddleware","configureStore","rootReducer","curriedGetDefaultMiddleware","_d","_e","_f","devTools","_g","_h","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","trace","defaultEnhancers","storeEnhancers","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","createSlice","_reducer","initialState","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","previousState","caseReducer","draft","createReducer","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","actionKey","getType2","prepare","actions","nanoid","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","createAsyncThunk2","typePrefix","payloadCreator","requestId","requestStatus","pending","serializeError","rejectedWithValue","condition","AC","AbortController","class_1","dispatchEvent","onabort","removeEventListener","reason","throwIfAborted","abort","extra","abortReason","idGenerator","abortController","promise2","_a","_b","finalAction","conditionResult","abortedPromise","err_1","isThenable","getPendingMeta","race","rejectWithValue","fulfillWithValue","dispatchConditionRejection","unwrap","unwrapResult","assertFunction","expected","catchRejection","onError","catch","addAbortSignalListener","abortSignal","callback","abortControllerWithReason","completed","cancelled","taskCancelled","taskCompleted","listenerCancelled","listenerCompleted","TaskAbortError","task","validateActive","raceWithSignal","cleanup","notifyRejection","finally","createPause","output","createDelay","pause","timeoutMs","INTERNAL_NIL_TOKEN","alm","createFork","parentAbortSignal","parentBlockingPromises","taskExecutor","opts","controller","childAbortController","task2","cleanUp","result2","delay","error_1","status","autoJoin","createTakePattern","startListening","predicate","timeout","tuplePromise","promises","stopListening","effect","listenerApi","getOriginalState","take","getListenerEntryPropsFrom","cancelActiveListeners","safelyNotifyError","errorHandler","errorToNotify","errorInfo","errorHandlerError","clearAllListeners","defaultErrorHandler","console","createListenerMiddleware","middlewareOptions","listenerMap","findListenerEntry","comparator","existingEntry","createListenerEntry","cancelOptions","cancelActive","insertEntry","entry2","notifyListener","api","internalTaskController","autoJoinPromises","listenerError_1","fork","raisedBy","allSettled","clearListenerMiddleware","createClearListenerMiddleware","originalState","listenerEntries","listenerEntries_1","runListener","predicateError","clearListeners","promise","SHOULD_AUTOBATCH","prepareAutoBatched","queueMicrotaskShim","queueMicrotask","cb","err","createQueueWithTimer","notify","rAF","requestAnimationFrame","chartLayoutSlice","layoutType","right","bottom","scale","setLayout","setChartSize","setMargin","_action$payload$top","_action$payload$right","_action$payload$botto","_action$payload$left","setScale","chartLayoutReducer","series","s0","s1","stackValue","stackSeries","getSliced","startIndex","endIndex","isWellBehavedNumber","isFinite","isPositiveNumber","getValueByDataKey","dataKey","isCategoricalAxis","axisType","getCoordinatesOfGrid","ticks","minValue","maxValue","syncWithTicks","coordinate","hasMin","hasMax","getTicksOfAxis","axis","isGrid","isAll","duplicateDomain","realScaleType","isCategorical","categoricalDomain","tickCount","niceTicks","offsetForBand","bandwidth","offset","scaleContent","scaled","domain","truncateByDomain","STACK_OFFSET_MAP","_series$","positive","negative","row","col","series1","series0","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","_series$2","getStackedData","dataKeys","offsetType","_STACK_OFFSET_MAP$off","offsetAccessor","oz","sz","shapeStack","stackOrderNone","seriesIndex","point","pointIndex","getNormalizedStackId","publicStackId","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","_ref3","numericAxis","getDomainOfStackGroups","stackGroups","stackId","group","stackedData","res","sliced","MIN_VALUE_REG","MAX_VALUE_REG","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","cur","prev","getTooltipEntry","_ref4","tooltipEntrySettings","getTooltipNameProp","nameFromItem","selectChartWidth","selectChartHeight","selectContainerScale","selectMargin","selectAllXAxes","cartesianAxis","xAxis","xAxisMap","selectAllYAxes","yAxis","yAxisMap","COLOR_PANEL","DATA_ITEM_INDEX_ATTRIBUTE_NAME","DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME","selectChartOffsetInternal","brush","orientation","mirror","hide","chartWidth","chartHeight","brushHeight","leftAxesOffset","rightAxesOffset","topAxesOffset","bottomAxesOffset","legendSettings","legendSize","offsetH","brushBottom","appendOffsetOfLegend","boxWidth","boxHeight","offsetWidth","offsetHeight","selectChartViewBox","selectAxisViewBox","PanoramaContext","useIsPanorama","PanoramaContextProvider","Provider","selectBrushSettings","selectBrushDimensions","brushSettings","warn","format","defaultResponsiveContainerProps","minWidth","initialDimension","calculateChartDimensions","containerWidth","containerHeight","aspect","maxHeight","calculatedWidth","calculatedHeight","bothOverflow","overflow","overflowX","overflowY","noStyle","getInnerDivStyle","isWidthPercent","isHeightPercent","ResponsiveContainerContext","ResponsiveContainerContextProvider","isAcceptableSize","useResponsiveContainerContext","SizeDetectorContainer","minHeight","onResize","containerRef","onResizeRef","useImperativeHandle","sizes","setSizes","setContainerSize","newWidth","newHeight","prevState","roundedWidth","roundedHeight","ResizeObserver","_onResizeRef$current","contentRect","observe","disconnect","ResponsiveContainer","responsiveContainerContext","getDefaultWidthAndHeight","cartesianViewBoxToTrapezoid","upperWidth","lowerWidth","useViewBox","_useAppSelector","panorama","rootViewBox","brushDimensions","brushPadding","manyComponentsThrowErrorsIfOffsetIsUndefined","useOffsetInternal","_useAppSelector2","useChartWidth","useChartHeight","useMargin","selectChartLayout","useChartLayout","useCartesianChartLayout","selectPolarChartLayout","usePolarChartLayout","useIsInChartContext","ReportChartSize","isPanorama","widthFromProps","heightFromProps","responsiveContainerCalculations","ReportChartMargin","NOTHING","DRAFTABLE","DRAFT_STATE","die","isDraftable","isMap","isSet","objectCtorString","cachedCtorStrings","ctorString","each","iter","strict","getArchtype","thing","type_","propOrOldValue","latest","copy_","base_","shallowCopy","isPlain","descriptors","deep","dontMutateMethodOverride","currentScope","plugins","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","revoke_","revoked_","processResult","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","useStrictIteration","shouldUseStrictIteration","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","childIsFrozen","assigned_","autoFreeze_","objectTraps","getDescriptorFromProto","draft_","readPropFromProto","peek","prepareCopy","createProxy","current2","markChanged","owner","arrayTraps","useStrictShallowCopy_","proxyMap_","proxySet_","isManual_","traps","createProxyProxy","currentImpl","copy","immer","useStrictIteration_","recipe","defaultBase","self","base2","hasError","ip","patches","inversePatches","useStrictShallowCopy","setUseStrictShallowCopy","setUseStrictIteration","patch","applyPatchesImpl","applyPatches_","legendSlice","setLegendSize","setLegendSettings","addLegendPayload","replaceLegendPayload","removeLegendPayload","legendReducer","LegendContent","contextPayload","otherProps","finalPayload","payloadUniqBy","contentProps","content","LegendSettingsDispatcher","LegendSizeDispatcher","legendDefaultProps","Legend","legendPortalFromContext","wrapperStyle","portal","portalFromProps","maxWidth","widthOrHeight","getWidthOrHeight","outerStyle","position","hPos","vPos","getDefaultPosition","legendPortal","legendElement","createPortal","defaultFormatter","defaultDefaultTooltipContentProps","separator","contentStyle","backgroundColor","border","whiteSpace","paddingTop","paddingBottom","labelStyle","accessibilityLayer","DefaultTooltipContent","wrapperClassName","labelClassName","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","role","renderContent","finalName","formatted","finalItemStyle","unit","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","visibility","getTooltipCSSClassName","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","reverseDirection","tooltipDimension","viewBoxDimension","viewBoxKey","TooltipBoundingBox","PureComponent","_defineProperty","dismissed","dismissedAtCoordinate","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","setState","componentDidMount","handleKeyDown","componentWillUnmount","componentDidUpdate","_this$props$coordinat5","_this$props$coordinat6","active","animationDuration","animationEasing","hasPayload","isAnimationActive","useTranslate3d","innerRef","hasPortalFromProps","offsetLeft","offsetTop","cssClasses","cssProperties","tooltipBox","getTransformStyle","getTooltipTranslate","positionStyles","transition","pointerEvents","xmlns","tabIndex","useAccessibilityLayer","rootProps","that","_context","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","Bump","_x","LinearClosed","Linear","slope3","h0","h1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","_t","defined","curve","line","defined0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","_t0","_y","px","py","i0","i1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","areaDefined","getX","getY","defaultCurveProps","connectNulls","points","baseLine","curveFactory","getCurveFactory","formatPoints","lineFunction","areaPoints","shapeArea","nullableLineFunction","shapeLine","Curve","pathRef","getPathInput","realPath","Cross","getTransitionVal","duration","easing","toLowerCase","mapObject","alpha","begin","needContinue","calStepperVals","preVals","steps","nextStepVals","newX","newV","velocity","createStepperUpdate","interKeys","timeoutController","preTime","stepperStyle","stopAnimation","stepperUpdate","dt","_stopAnimation","preObj","nextObj","isStepper","beginTime","timingStyle","fromElement","toElement","timingUpdate","currStyle","_stopAnimation2","createTimingUpdate","ACCURACY","cubicBezierFactor","c1","c2","evaluatePolynomial","params","param","pre","curr","cubicBezier","getBezierCoordinates","_easingParts$","easingParts","numbers","coords","parseCubicBezier","createBezierEasing","curveX","curveY","derCurveX","newParams","rangeValue","bezier","evalT","derVal","configBezier","configEasing","stiff","damping","stepper","currX","destX","currV","configSpring","RequestAnimationFrameTimeoutController","startTime","performance","executeCallback","cancelAnimationFrame","createDefaultAnimationManager","handleChange","shouldStop","cancelTimeout","setStyle","_style","styles","restStyles","stop","_handleChange","getTimeoutController","AnimationManagerContext","useAnimationManager","animationId","animationManagerFromProps","contextAnimationManager","Global","devToolsEnabled","isSsr","defaultJavascriptAnimateProps","isActive","canBegin","onAnimationEnd","onAnimationStart","JavascriptAnimate","isActiveProp","animationManager","stopJSAnimation","startAnimation","configUpdate","onAnimationActive","useAnimationId","prevProps","getRectanglePath","radius","maxRadius","ySign","xSign","clockWise","newRadius","_radius$i","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject0","defaultRectangleProps","isUpdateAnimationActive","animationBegin","Rectangle","rectangleProps","totalLength","setTotalLength","getTotalLength","pathTotalLength","_unused","prevWidthRef","prevHeightRef","prevXRef","prevYRef","_svgPropertiesAndEven","otherPathProps","prevWidth","prevHeight","prevX","prevY","animationStyle","currWidth","currHeight","currY","_svgPropertiesAndEven2","_excluded2","degreeToRadian","radianToDegree","angleInRadian","polarToCartesian","getMaxRadius","getAngleOfPoint","distanceBetweenPoints","anotherPoint","reverseFormatAngleOfSector","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","_ref5","chartX","chartY","innerRadius","outerRadius","inRange","formatAngleOfSector","formatAngle","getRadialCursorPoints","activeCoordinate","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","getDeltaAngle","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","defaultSectorProps","forceCornerRadius","Sector","sectorProps","deltaRadius","soct","solt","sot","eoct","eolt","eot","outerArcAngle","sict","silt","sit","eict","eilt","eit","innerArcAngle","getSectorWithCorner","getCursorPoints","innerPoint","outerPoint","initRange","initInterpolator","interpolator","InternMap","keyof","super","_intern","intern_get","intern_set","intern_delete","implicit","ordinal","unknown","band","ordinalRange","r0","r1","paddingInner","paddingOuter","rescale","rangeRound","pointish","e10","e5","e2","tickSpec","count","power","log10","i2","inc","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","delta","lo","hi","mid","zero","ascendingBisect","bisectRight","extend","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","trim","exec","parseInt","rgbn","Rgb","rgba","hsla","opacity","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","v0","v1","v2","v3","t2","t3","channels","displayable","formatHex8","formatHsl","clamp","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","date","normalize","bimap","d0","d1","polymap","bisect","transformer","untransform","piecewise","clamper","invert","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","coefficient","toLocaleString","formatRounded","formatPrefix","prefixes","locale","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","constant","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","swap","quantile","Float64Array","value0","quantileSorted","thresholds","invertExtent","quantiles","quantize","threshold","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","field","previous","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","V","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","time","utcTime","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","parse","utcParse","formatLocale","selectChartDataWithIndexes","chartData","selectChartDataAndAlwaysIgnoreIndexes","dataState","dataEndIndex","computedData","dataStartIndex","selectChartDataWithIndexesIfNotInPanoramaPosition4","_unused1","_unused2","selectChartDataWithIndexesIfNotInPanoramaPosition3","isWellFormedNumberDomain","extendDomain","providedDomain","boundaryDomain","allowDataOverflow","numericalDomainSpecifiedWithoutRequiringData","userDomain","finalMin","finalMax","providedMin","providedMax","candidate","getDigitCount","rangeStep","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","formatStep","calculateStep","tickMin","tickMax","middle","belowCount","upCount","scaleCount","getNiceTickValues","cormin","cormax","getTickOfSingleValue","absVal","middleIndex","selectRootMaxBarSize","maxBarSize","selectBarGap","barGap","selectBarCategoryGap","barCategoryGap","selectRootBarSize","barSize","selectStackOffsetType","stackOffset","selectReverseStackOrder","reverseStackOrder","selectChartName","chartName","selectSyncId","syncId","selectSyncMethod","syncMethod","selectEventEmitter","eventEmitter","DefaultZIndexes","grid","barBackground","cursorRectangle","bar","scatter","activeBar","cursorLine","activeDot","defaultPolarAngleAxisProps","angleAxisId","axisLine","axisLineType","includeHidden","reversed","tick","tickLine","tickSize","zIndex","defaultPolarRadiusAxisProps","radiusAxisId","combineAxisRangeWithReverse","axisSettings","axisRange","getAxisTypeBasedOnLayout","axisDomainType","implicitAngleAxis","implicitRadiusAxis","selectAngleAxis","selectAngleAxisNoDefaults","polarAxis","angleAxis","angleAxisSettings","_getAxisTypeBasedOnLa","evaluatedType","selectRadiusAxis","selectRadiusAxisNoDefaults","radiusAxis","radiusAxisSettings","_getAxisTypeBasedOnLa2","selectPolarOptions","polarOptions","selectMaxRadius","selectInnerRadius","polarChartOptions","selectOuterRadius","selectAngleAxisRange","selectAngleAxisRangeWithReversed","selectRadiusAxisRange","selectRadiusAxisRangeWithReversed","selectPolarViewBox","pickAxisType","_state","pickAxisId","_axisType","axisId","getStackSeriesIdentifier","graphicalItem","combineDisplayedStackedData","stackedGraphicalItems","tooltipAxisSettings","tooltipDataKey","knownItemsByDataKey","_item$data","resolvedData","stackIdentifier","tooltipValue","numericValue","isStacked","numberDomainEqualityCheck","emptyArraysAreEqualCheck","selectTooltipAxisType","selectTooltipAxisId","tooltip","d3ScaleToRechartsScale","d3Scale","ticksFn","bandwidthFn","d3Range","_range","rangeMin","rangeMax","isInRange","first","baseValue","rechartsScaleFactory","axisDomain","d3ScaleFunction","d3Scales","getD3ScaleFromType","combineCheckedDomain","defaultNumericDomain","implicitXAxis","minTickGap","tickFormatter","selectXAxisSettingsNoDefaults","selectXAxisSettings","implicitYAxis","selectYAxisSettingsNoDefaults","selectYAxisSettings","implicitZAxis","selectZAxisSettings","zAxis","selectBaseAxis","selectRenderableAxisSettings","selectHasBar","graphicalItems","cartesianItems","polarItems","itemAxisPredicate","xAxisId","yAxisId","zAxisId","selectUnfilteredCartesianItems","selectAxisPredicate","combineGraphicalItemsSettings","axisPredicate","selectCartesianItemsSettings","selectStackedCartesianItemsSettings","filterGraphicalNotStackedItems","selectCartesianItemsSettingsExceptStacked","combineGraphicalItemsData","selectCartesianGraphicalItemsData","combineDisplayedData","graphicalItemsData","selectDisplayedData","combineAppliedValues","flatMap","selectAllAppliedValues","isErrorBarRelevantForAxisType","errorBar","direction","makeNumber","makeDomain","attempt","onlyAllowNumbers","selectTooltipAxis","selectTooltipAxisDataKey","selectDisplayedStackedData","combineStackGroups","displayedData","stackOffsetType","itemsGroup","fromEntries","orderedGraphicalItems","selectStackGroups","combineDomainOfStackGroups","domainFromUserPreference","domainOfStackGroups","selectAllowsDataOverflow","getDomainDefinition","_axisSettings$domain","allValues","selectDomainDefinition","selectDomainFromUserPreference","selectDomainOfStackGroups","selectAllErrorBarSettings","errorBars","mergeDomains","domains","allDomains","combineDomainOfAllAppliedNumericalValuesIncludingErrorValues","lowerEnd","upperEnd","_errorBars$item$id","_axisSettings$dataKey","relevantErrorBars","valueByDataKey","errorDomain","appliedValue","eb","lowBound","highBound","errorValue","getErrorDomainByDataKey","localLower","localUpper","dataValueDomain","selectDomainOfAllAppliedNumericalValuesIncludingErrorValues","onlyAllowNumbersAndStringsAndDates","selectReferenceDots","referenceElements","dots","filterReferenceElements","elements","el","ifOverflow","selectReferenceDotsByAxis","selectReferenceAreas","areas","selectReferenceAreasByAxis","selectReferenceLines","lines","selectReferenceLinesByAxis","combineDotsDomain","allCoords","dot","selectReferenceDotsDomain","combineAreasDomain","selectReferenceAreasDomain","combineLinesDomain","_line$segment","segmentCoordinates","segment","extractXCoordinates","_line$segment2","extractYCoordinates","selectReferenceLinesDomain","selectReferenceElementsDomain","dotsDomain","linesDomain","areasDomain","combineNumericalDomain","domainDefinition","dataAndErrorBarsDomain","referenceElementsDomain","dataDomain","_unused3","parseNumericalUserDomain","selectNumericalDomain","expandDomain","combineAxisDomain","allAppliedValues","numericalDomain","_displayedData$length","computeDomainOfTypeCategory","allDataSquished","selectAxisDomain","combineRealScaleType","axisConfig","hasBar","chartType","isSupportedScaleName","selectRealScaleType","combineScaleFunction","combineNiceTicks","getTickValuesFixedDomain","selectNiceTicks","combineAxisDomainWithNiceTicks","_niceTicks$","_niceTicks","minFromDomain","minFromTicks","maxFromDomain","maxFromTicks","selectAxisDomainIncludingNiceTicks","selectSmallestDistanceBetweenValues","smallestDistanceBetweenValues","sortedValues","diff","distance","selectCalculatedPadding","_1","_2","_3","_4","smallestDistanceInPercent","rangeWidth","gap","halfBand","selectXAxisPadding","selectCalculatedXAxisPadding","xAxisSettings","calculated","_padding$left","_padding$right","selectYAxisPadding","selectCalculatedYAxisPadding","yAxisSettings","_padding$top","_padding$bottom","combineXAxisRange","_axisId","combineYAxisRange","selectAxisRange","_selectZAxisSettings","selectAxisRangeWithReverse","selectCheckedAxisDomain","selectAxisScale","combineRelevantErrorBarSettings","cartesianItemsSettings","allErrorBarSettings","compareIds","pickAxisOrientation","pickMirror","_orientation","selectAllXAxesWithOffsetType","allAxes","selectAllYAxesWithOffsetType","getXAxisSize","selectXAxisSize","selectAllXAxesOffsetSteps","allAxesWithSameOffsetType","axisSize","combineXAxisPositionStartingPoint","needSpace","selectAllYAxesOffsetSteps","getYAxisSize","combineYAxisPositionStartingPoint","selectXAxisPosition","selectXAxisOffsetSteps","allSteps","stepOfThisAxis","selectYAxisPosition","selectYAxisOffsetSteps","selectYAxisSize","selectCartesianAxisSize","combineDuplicateDomain","chartLayout","appliedValues","allData","av","selectDuplicateDomain","combineCategoricalDomain","selectCategoricalDomain","selectAxisPropsNeededForCartesianGridTicksGenerator","selectCartesianAxisSettings","combineAxisTicks","ticksOrNiceTicks","selectTicksOfAxis","combineGraphicalItemTicks","selectTicksOfGraphicalItem","selectAxisWithScale","selectZAxisScale","selectZAxisWithScale","selectChartDirection","allXAxes","allYAxes","selectDefaultTooltipEventType","defaultTooltipEventType","selectValidateTooltipEventTypes","validateTooltipEventTypes","combineTooltipEventType","shared","eventType","selectTooltipEventType","combineActiveLabel","tooltipTicks","activeIndex","_tooltipTicks$n","noInteraction","graphicalItemId","tooltipSlice","itemInteraction","click","hover","axisInteraction","keyboardInteraction","syncInteraction","sourceViewBox","tooltipItemPayloads","trigger","defaultIndex","addTooltipEntrySettings","replaceTooltipEntrySettings","removeTooltipEntrySettings","setTooltipSettingsState","setActiveMouseOverItemIndex","activeDataKey","activeGraphicalItemId","mouseLeaveChart","mouseLeaveItem","setActiveClickItemIndex","setMouseOverAxisIndex","setMouseClickAxisIndex","setSyncInteraction","setKeyboardInteraction","tooltipReducer","combineTooltipInteractionState","tooltipState","tooltipEventType","appropriateMouseInteraction","chooseAppropriateMouseInteraction","activeFromProps","isValueWithinNumberDomain","parsed","toFiniteNumber","lowerBound","upperBound","combineActiveTooltipIndex","tooltipInteraction","axisDataKey","desiredIndex","indexAsNumber","upperLimit","clampedIndex","isValueWithinDomain","combineCoordinateForDefaultIndex","tooltipConfigurations","firstConfiguration","maybePosition","getPosition","combineTooltipPayloadConfigurations","filterByGraphicalItemId","firstItemPayload","tpc","_tpc$settings","selectTooltipPayloadSearcher","tooltipPayloadSearcher","selectTooltipState","combineTooltipPayload","tooltipPayloadConfigurations","chartDataState","tooltipAxisDataKey","activeLabel","agg","_settings$dataKey","tooltipPayload","_getValueByDataKey","dataDefinedOnItem","finalData","dataDefinedOnChart","selectFinalData","finalDataKey","finalNameKey","nameKey","newSettings","selectTooltipAxisRealScaleType","selectAllUnfilteredGraphicalItems","selectTooltipAxisPredicate","selectAllGraphicalItemsSettings","selectAllStackedGraphicalItemsSettings","selectTooltipGraphicalItemsData","selectTooltipDisplayedData","selectTooltipStackedData","selectAllTooltipAppliedValues","selectTooltipAxisDomainDefinition","selectTooltipDataOverflow","selectTooltipDomainFromUserPreferences","selectAllStackedGraphicalItems","selectTooltipStackGroups","selectTooltipDomainOfStackGroups","selectTooltipItemsSettingsExceptStacked","selectReferenceDotsByTooltipAxis","selectTooltipReferenceDotsDomain","selectReferenceAreasByTooltipAxis","selectTooltipReferenceAreasDomain","selectReferenceLinesByTooltipAxis","selectTooltipReferenceLinesDomain","selectTooltipReferenceElementsDomain","selectTooltipNumericalDomain","selectTooltipAxisDomain","selectTooltipNiceTicks","selectTooltipAxisDomainIncludingNiceTicks","selectTooltipAxisRange","selectTooltipAxisRangeWithReverse","selectTooltipAxisScale","selectTooltipDuplicateDomain","selectTooltipCategoricalDomain","selectTooltipAxisTicks","combineTicksOfTooltipAxis","validateTooltipEventType","selectTooltipTrigger","selectDefaultIndex","selectTooltipInteractionState","selectActiveTooltipIndex","selectActiveLabel","selectActiveTooltipDataKey","selectActiveTooltipGraphicalItemId","selectTooltipPayloadConfigurations","selectTooltipCoordinateForDefaultIndex","selectActiveTooltipCoordinate","tooltipInteractionState","defaultIndexCoordinate","selectIsTooltipActive","_tooltipInteractionSt","selectActiveTooltipPayload","selectActiveTooltipDataPoints","dataPoints","useTooltipAxisBandSize","tooltipAxis","tooltipAxisScale","calculateActiveTickIndex","unsortedTicks","_ticks$length","_unsortedTicks","_unsortedTicks2","_unsortedTicks$i","_unsortedTicks$","_unsortedTicks3","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","_unsortedTicks$i2","sameInterval","_unsortedTicks$i3","useChartName","pickTooltipEventType","pickTrigger","_tooltipEventType","pickDefaultIndex","_trigger","selectOrderedTooltipTicks","selectActiveIndex","selectTooltipDataKey","selectCoordinateForDefaultIndex","selectActiveCoordinate","selectTooltipPayload","combineActivePolarProps","chartEvent","polarViewBox","tooltipAxisType","tooltipAxisRange","orderedTooltipTicks","rangeObj","pos","calculatePolarTooltipPos","getActivePolarCoordinate","selectZIndexPortalElement","zIndexMap","_zIndex","panoramaElement","selectAllRegisteredZIndexes","allNumbers","zIndexStr","consumers","defaultZIndexSet","zIndexSlice","registerZIndexPortal","unregisterZIndexPortal","isDefaultZIndex","registerZIndexPortalElement","unregisterZIndexPortalElement","zIndexReducer","ZIndexLayer","shouldRenderInPortal","portalElement","RenderCursor","cursor","cursorComp","cursorProps","cloneElement","CursorInternal","_props$zIndex","restProps","preferredZIndex","tooltipAxisBandSize","activePayload","activeTooltipIndex","getCursorRectangle","extraClassName","payloadIndex","Cursor","TooltipPortalContext","useTooltipPortal","eventCenter","TOOLTIP_SYNC_EVENT","BRUSH_SYNC_EVENT","arrayTooltipSearcher","strIndex","numIndex","optionsSlice","createEventEmitter","optionsReducer","selectSynchronisedTooltipState","chartDataSlice","setChartData","setComputedData","setDataStartEndIndexes","chartDataReducer","useTooltipSyncEventsListener","mySyncId","myEventEmitter","incomingSyncId","_action$payload","activeTick","syncMethodParam","isTooltipActive","validateChartX","validateChartY","syncAction","_action$payload$coord","otherCoordinateProps","sourceX","sourceY","sourceWidth","sourceHeight","scaledCoordinate","useSynchronisedEventsFromOtherCharts","useBrushSyncEventsListener","emptyPayload","defaultTooltipProps","filterNull","Tooltip","defaultIndexAsString","useTooltipEventType","payloadFromRedux","labelFromRedux","tooltipPortalFromContext","finalIsActive","eventEmitterSymbol","isReceivingSynchronisation","useTooltipChartSynchronisation","tooltipPortal","tooltipElement","Cell","_props","currentConfig","cacheSize","enableCache","stringCache","maxSize","firstKey","SPAN_STYLE","MEASUREMENT_SPAN_ID","measureTextWithDOM","text","measurementSpan","getElementById","setAttribute","appendChild","textContent","getStringSize","cacheKey","fontSize","fontFamily","fontWeight","fontStyle","letterSpacing","textTransform","createCacheKey","cachedResult","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","mm","pt","pc","in","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","_NUM_SPLIT_REGEX$exec","numStr","isSupportedUnit","convertToPx","multiply","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","PARENTHESES_REGEX","evaluateExpression","expression","parentheticalExpression","calculateParentheses","reduceCSSCalc","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","word","spaceWidth","isValidTextAnchor","calculate","lineWidth","scaleToFit","currentLine","newLine","findLongestLine","checkOverflow","maxLines","tempText","getWordsWithoutCalculate","getWordsByLines","wordWidths","wcw","sw","calculateWordsByLines","initialWordsWithComputedWith","shouldLimitLines","originalResult","trimmedResult","iterations","doesPrevOverflow","doesMiddleOverflow","DEFAULT_FILL","textDefaultProps","capHeight","lineHeight","textAnchor","verticalAnchor","Text","_resolveDefaultProps","propsX","propsY","wordsByLines","textProps","startDy","transforms","firstLine","getCartesianPosition","parentViewBox","parentViewBoxFromOptions","upperX","lowerX","middleX","midHeightWidth","centerX","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","horizontalAnchor","sizeAttrs","CartesianLabelContext","CartesianLabelContextProvider","useCartesianLabelContext","labelChildContext","chartContext","PolarLabelContext","PolarLabelContextProvider","usePolarLabelContext","getLabel","isLabelContentAFunction","renderRadialLabel","labelProps","attrs","labelAngle","deltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","isPolar","defaultLabelProps","textBreakAll","Label","outerProps","positionAttrs","viewBoxFromProps","labelRef","cartesianViewBox","cartesianBox","diameter","polarViewBoxToTrapezoid","propsWithViewBox","propsWithoutLabelRef","propsForContent","cartesianResult","parseLabel","commonProps","CartesianLabelFromLabelProp","PolarLabelFromLabelProp","defaultAccessor","CartesianLabelListContext","CartesianLabelListContextProvider","PolarLabelListContext","PolarLabelListContextProvider","LabelList","valueAccessor","cartesianData","polarData","_restProps$fill","idProps","LabelListFromLabelProp","Customized","child","isValidatePoint","getSinglePolygonPath","segmentPoints","lastLink","firstPoint","finalLink","getParsedPoints","segPoints","polygonPath","Polygon","baseLinePoints","hasStroke","rangePath","getRanglePath","outerPath","singlePath","Dot","selectUnfilteredPolarItems","selectPolarItemsSettings","selectPolarGraphicalItemsData","selectPolarDisplayedData","selectPolarAppliedValues","unsupportedInPolarChart","selectDomainOfAllPolarAppliedNumericalValues","selectPolarNumericalDomain","selectPolarAxisDomain","selectPolarNiceTicks","selectPolarAxisDomainIncludingNiceTicks","selectPolarAxisCheckedDomain","selectPolarAxis","selectPolarAxisRangeWithReversed","selectPolarAxisScale","selectPolarCategoricalDomain","selectPolarAxisTicks","selectPolarAngleAxisTicks","uniqueTicksMap","normalizedCoordinate","selectPolarGraphicalItemAxisTicks","selectPolarGridAngles","selectAngleAxisTicks","anglexisId","selectPolarGridRadii","selectRadiusAxisTicks","getPolygonPath","polarAngles","PolarAngles","radialLines","polarAnglesProps","ConcentricCircle","concentricCircleProps","ConcentricPolygon","concentricPolygonProps","ConcentricGridPath","polarRadius","gridType","maxPolarRadius","renderBackground","defaultPolarGridProps","PolarGrid","_polarViewBox$cx","_polarViewBox$cy","_polarViewBox$innerRa","_polarViewBox$outerRa","cxFromOutside","cyFromOutside","innerRadiusFromOutside","outerRadiusFromOutside","polarAnglesInput","polarRadiusInput","inputs","polarAnglesFromRedux","polarRadiiFromRedux","polarAxisSlice","addRadiusAxis","removeRadiusAxis","addAngleAxis","removeAngleAxis","polarAxisReducer","getClassNameFromUnknown","SetRadiusAxisSettings","typeFromProps","renderTicks","_excluded3","getTickTextAnchor","axisProps","customTickProps","coord","getTickValueCoord","tickProps","renderTickItem","PolarRadiusAxisWrapper","defaultsAndInputs","renderAxisLine","extent","point0","point1","axisLineProps","getViewBox","maxRadiusTick","minRadiusTick","PolarRadiusAxis","eps","COS_45","SetAngleAxisSettings","synchronizedSettings","settingsAreSynchronized","AxisLine","TickItemText","Ticks","tickLineProps","lineCoord","getTickLineCoord","tickLineSize","p1","p2","getTickTextVerticalAnchor","PolarAngleAxisWrapper","PolarAngleAxis","selectSynchronisedPieSettings","pickId","emptyArray","pickCells","_id","cells","pieSettings","cell","presentationProps","selectPieLegend","_cells$i","legendType","selectPieSectors","_pieSettings$paddingA","sectors","tooltipType","minAngle","parseDeltaAngle","absDeltaAngle","paddingAngle","notZeroItemCount","realTotalAngle","tempStartAngle","parseCoordinateOfPie","entryWithCellInfo","middleRadius","tooltipPosition","computePieSectors","getDisplayName","Comp","lastChildren","Children","isFragment","findAllByType","types","childType","isClipDot","clipDot","getTrapezoidPath","widthGap","defaultTrapezoidProps","Trapezoid","trapezoidProps","prevUpperWidthRef","prevLowerWidthRef","prevUpperWidth","prevLowerWidth","currUpperWidth","currLowerWidth","ShapeSelector","shapeType","elementProps","isSymbolsProps","Shape","activeClassName","getPropsFromShapeOption","nextProps","defaultPropTransformer","useMouseEnterItemDispatch","onMouseEnterFromProps","useMouseLeaveItemDispatch","onMouseLeaveFromProps","useMouseClickItemDispatch","onMouseClickFromProps","SetTooltipEntrySettings","prevSettingsRef","SetLegendPayload","legendPayload","prevPayloadRef","SetPolarLegendPayload","useId","useIdFallback","useUniqueId","customId","generatedId","GraphicalItemIdContext","RegisterGraphicalItemId","resolvedId","graphicalItemsSlice","addCartesianGraphicalItem","replaceCartesianGraphicalItem","removeCartesianGraphicalItem","addPolarGraphicalItem","removePolarGraphicalItem","graphicalItemsReducer","SetCartesianGraphicalItemImpl","prevPropsRef","SetCartesianGraphicalItem","memo","SetPolarGraphicalItem","SetPiePayloadLegend","SetPieTooltipEntrySettings","_sectors$Number","getTextAnchor","dataPoint","maxPieRadius","getOuterRadius","renderLabelLineItem","renderLabelItem","alignmentBaseline","PieLabels","showLabels","labelLine","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","lineProps","PieLabelList","PieSectors","activeShape","inactiveShape","inactiveShapeProp","allOtherPieProps","onMouseEnter","onClick","onItemClickFromProps","onMouseLeave","restOfAllOtherProps","onMouseEnterFromContext","onMouseLeaveFromContext","onClickFromContext","graphicalItemMatches","sectorOptions","PieLabelListProvider","labelListEntries","SectorsWithAnimation","_ref6","previousSectorsRef","prevSectors","isAnimating","setIsAnimating","handleAnimationEnd","handleAnimationStart","_first$startAngle","stepData","curAngle","defaultPieProps","rootTabIndex","PieImpl","propsWithoutId","Pie","externalId","_excluded4","DotItem","dotProps","finalClassName","Dots","dotClassName","baseProps","needClip","clipPathId","shouldRenderDots","customDotProps","_entry$x","_entry$y","layerProps","clipPath","cartesianAxisSlice","addXAxis","replaceXAxis","removeXAxis","addYAxis","replaceYAxis","removeYAxis","addZAxis","replaceZAxis","removeZAxis","updateYAxisWidth","_history$","history","widthHistory","newHistory","cartesianAxisReducer","selectChartOffset","offsetInternal","selectPlotArea","useXAxis","useYAxis","useActiveTooltipLabel","useOffset","usePlotArea","useActiveTooltipDataPoints","useXAxisDomain","useYAxisDomain","useIsTooltipActive","useActiveTooltipCoordinate","ActivePoint","childIndex","mainColor","ActivePoints","itemDataKey","activeDataPoints","activePoint","selectRadiusAxisScale","selectRadiusAxisForRadar","selectRadiusAxisForBandSize","selectAngleAxisForRadar","_radiusAxisId","selectPolarAxisScaleForRadar","selectAngleAxisForBandSize","selectAngleAxisWithScaleAndViewport","axisOptions","selectBandSizeOfAxis","_angleAxisId","radiusAxisTicks","angleAxisTicks","selectSynchronisedRadarDataKey","_isPanorama","radarId","pgis","selectRadarPoints","isRange","angleBandSize","_angleAxis$scale$map","_radiusAxis$scale$map","pointValue","_radiusAxis$scale$map2","computeRadarPoints","getLegendItemColor","computeLegendPayloadFromRadarSectors","SetRadarTooltipEntrySettings","RadarDotsWrapper","RadarLabelListProvider","_point$value","StaticPolygon","radar","interpolatePolarPoint","prevPoints","prevPointsDiffFactor","PolygonWithAnimation","previousPointsRef","previousBaseLinePointsRef","prevBaseLinePoints","prevBaseLinePointsDiffFactor","stepBaseLinePoints","RenderPolygon","defaultRadarProps","RadarWithState","RadarImpl","radarPoints","Radar","parseCornerRadius","RadialBarSector","getBarSize","globalSize","totalSize","selfSize","combineBarSizeList","allBars","stackedBars","unstackedBars","groupByStack","stackedSizeList","_bars$","bars","unstackedSizeList","dk","combineAllBarPositions","sizeList","globalMaxBarSize","barBandSize","childMaxBarSize","allBarPositions","_sizeList$","realBarGap","initialValue","useFull","fullBarSize","_entry$barSize","newPosition","newRes","originalSize","getBarPositions","combineStackedData","barSettings","stackSeriesIdentifier","stackGroup","combineBarPosition","selectRadiusAxisWithScale","selectRadiusAxisForRadialBar","selectRadiusAxisScaleForRadar","selectAngleAxisWithScale","selectAngleAxisForRadialBar","selectAngleAxisScaleForRadialBar","selectSynchronisedRadialBarSettings","pickRadialBarSettings","radialBarSettings","radialBarSettingsFromProps","selectBandSizeOfPolarAxis","selectBaseValue","pickMaxBarSize","_cells","isRadialBar","selectAllVisibleRadialBars","pickAngleAxisId","_radialBarSettings","pickRadiusAxisId","allItems","selectPolarBarSizeList","selectPolarBarAxisSize","selectPolarBarBandSize","_getBandSizeOfAxis2","_getBandSizeOfAxis","selectAllPolarBarPositions","selectPolarBarPosition","selectStackedRadialBars","allPolarItems","selectPolarCombinedStackedData","selectPolarStackedData","selectRadialBarStackGroups","selectRadialBarSectors","minPointSize","stackedDomain","rootStartAngle","rootEndAngle","STABLE_EMPTY_ARRAY","backgroundSector","_angleAxis$scale$map2","background","computeRadialBarDataItems","selectRadialBarLegendPayload","_s","getZIndexFromUnknown","defaultZIndex","RadialBarLabelListProvider","sector","RadialBarSectors","allOtherRadialBarProps","radialBarSectorProps","prevData","RenderSectors","SetRadialBarPayloadLegend","SetRadialBarTooltipEntrySettings","RadialBarWithState","backgroundProps","RadialBarImpl","defaultRadialBarProps","RadialBar","_props$hide","_props$angleAxisId","_props$radiusAxisId","PREFIX_LIST","ChartDataContextProvider","SetComputedData","selectChartData","useChartData","selectDataIndex","useDataIndex","BrushUpdateDispatchContext","brushSlice","setBrushSettings","brushReducer","DefaultTraveller","lineY","Traveller","travellerProps","travellerType","getNameFromUnknown","TravellerLayer","travellerX","onMouseDown","onTouchStart","onTravellerMoveKeyboard","onFocus","onBlur","xFromProps","travellerWidth","traveller","ariaLabel","ariaLabelBrush","getAriaLabel","onKeyDown","preventDefault","stopPropagation","getTextOfTick","getIndexInRange","valueRange","middleValue","endValue","getIndex","startX","endX","scaleValues","minIndex","maxIndex","Background","BrushText","Slide","fillOpacity","Panorama","chartElement","only","compact","isTouch","changedTouches","BrushWithState","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","_e$changedTouches","touch","handleDrag","onDragEnd","detachDragEndListener","handleDragEnd","leaveTimeOut","isTextActive","slideMoveStartX","pageX","attachDragEndListener","currentIndex","newIndex","newScaleValue","onChange","travellerDragStartHandlers","handleTravellerDragStart","brushMoveStartX","movingTravellerId","startIndexControlledFromProps","endIndexControlledFromProps","prevTravellerWidth","_ref7","scalePoint","isTravellerFocused","createScale","prevScale","prevStartIndexControlledFromProps","prevEndIndexControlledFromProps","prevValue","isFullGap","alwaysShowText","generatePrefixStyle","camelName","calculatedY","handleLeaveWrapper","onTouchMove","handleTouchMove","handleEnterSlideOrTraveller","handleLeaveSlideOrTraveller","handleSlideDragStart","handleTravellerMoveKeyboard","BrushInternal","brushStartIndex","brushEndIndex","dataIndexes","onChangeFromContext","onChangeFromProps","startIndexFromProps","endIndexFromProps","contextProperties","BrushSettingsDispatcher","defaultBrushProps","Brush","rectWithPoints","rectWithCoords","referenceElementsSlice","addDot","removeDot","findIndex","addArea","removeArea","addLine","removeLine","referenceElementsReducer","ClipPathIdContext","ClipPathProvider","plotArea","useClipPathId","CartesianScaleHelperImpl","xAxisScale","yAxisScale","_this$xAxisScale$map","_this$yAxisScale$map","mapWithFallback","_this$xAxisScale$map2","_this$yAxisScale$map2","fallbackY","fallbackX","fallback","xInRange","yInRange","renderLine","getEndPoints","xAxisOrientation","yAxisOrientation","xCoord","yCoord","isFixedX","getHorizontalLineEndPoints","getVerticalLineEndPoints","getSegmentLineEndPoints","scales","ReportReferenceLine","ReferenceLineImpl","endPoints","point2","referenceLineDefaultProps","ReferenceLine","useCoordinate","isX","isY","ReportReferenceDot","renderDot","ReferenceDotImpl","referenceDotDefaultProps","ReferenceDot","getRect","hasX1","hasX2","hasY1","hasY2","_xAxisScale$map","_yAxisScale$map","_xAxisScale$map2","_yAxisScale$map2","xValue1","xValue2","yValue1","yValue2","renderRect","ReportReferenceArea","ReferenceAreaImpl","referenceAreaDefaultProps","ReferenceArea","getEveryNth","getAngledTickWidth","contentSize","unitSize","normalizedAngle","normalizeAngle","angleRadians","angleThreshold","atan","angledWidth","getAngledRectangleWidth","isVisible","tickPosition","getSize","getTicks","_getNumberIntervalTic","getNumberIntervalTicks","candidates","sizeKey","getTickSize","tick0","tick1","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","_loop","tickCoord","isShow","getEquidistantTicks","_ret2","ok","_loop2","finalTicks","getEquidistantPreserveEndTicks","preserveEnd","tail","tailSize","tailGap","initialEntry","getTicksStart","getTicksEnd","defaultCartesianAxisProps","tickMargin","otherSvgProps","needHeight","needWidth","TickItem","tickItem","combinedClassName","tickTextProps","getTicksConfig","getTickVerticalAnchor","tickLinePropsObject","tickLineCoords","tx","ty","finalTickSize","tickLines","tickLabels","_tickTextProps$angle","visibleTicksCount","finalTickProps","CartesianAxisComponent","setFontSize","setLetterSpacing","tickRefs","getCalculatedWidth","_props$labelRef","labelGapWithTick","maxTickWidth","tickNode","bbox","labelWidth","updatedYAxisWidth","getCalculatedYAxisWidth","layerRef","tickNodes","getElementsByClassName","computedStyle","getComputedStyle","calculatedFontSize","calculatedLetterSpacing","CartesianAxis","ry","LineItem","lineItem","lineItemProps","_svgPropertiesNoEvent","restOfFilteredProps","HorizontalGridLines","horizontal","horizontalPoints","otherLineItemProps","VerticalGridLines","vertical","verticalPoints","HorizontalStripes","horizontalFill","roundedSortedHorizontalPoints","nextPoint","colorIndex","VerticalStripes","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","defaultCartesianGridProps","CartesianGrid","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","errorBarSlice","addErrorBar","itemId","replaceErrorBar","removeErrorBar","errorBarReducer","initialContextState","dataPointFormatter","errorBarOffset","ErrorBarContext","SetErrorBarContext","useErrorBarContext","ReportErrorBarSettings","useNeedsClip","_xAxis$allowDataOverf","_yAxis$allowDataOverf","needClipX","needClipY","GraphicalItemClipPath","selectXAxisWithScale","_yAxisId","selectXAxisTicks","selectYAxisWithScale","_xAxisId","selectYAxisTicks","selectBandSize","xAxisTicks","yAxisTicks","isLineSettings","selectSynchronisedLineSettings","pickLineId","selectLinePoints","lineSettings","computeLinePoints","getRadiusAndStrokeWidthFromDot","realR","realStrokeWidth","batch","getBatch","ContextKey","gT","getContext","_gT$ContextKey","contextMap","realContext","nullListeners","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","serverState","stabilityCheck","noopCheck","contextValue","getServerState","Context","objA","objB","keysA","keysB","newBatch","initializeUseSelector","initializeConnect","propsToShallowCompare","sameValueZero","propsAreEqual","allKeys","shallowEqual","computeLegendPayloadFromAreaData","SetLineTooltipEntrySettings","generateSimpleStrokeDasharray","repeat","linesUnit","LineDotsWrapper","LineLabelListProvider","_point$x","_point$y","StaticCurve","curveProps","CurveWithAnimation","longestAnimatedLengthRef","animateNewValues","animationIdRef","mainCurve","startingPointRef","startingPoint","currentStrokeDasharray","lengthInterpolated","curLength","getStrokeDasharray","lineLength","remainLength","restLength","remainLines","_lines$i","lineValue","emptyLines","prevPointIndex","RenderCurve","errorBarDataPointFormatter","_dataPoint$x","_dataPoint$y","errorVal","LineWithState","Component","dotSize","activePointsClipPath","defaultLineProps","LineImpl","everythingElse","LineFn","Line","selectXAxisIdFromGraphicalItemId","_state$graphicalItems","_state$graphicalItems2","selectYAxisIdFromGraphicalItemId","_state$graphicalItems3","_state$graphicalItems4","selectSynchronisedAreaSettings","pickAreaId","selectNumericalAxisType","selectGraphicalItemStackedData","selectNumericalAxisStackGroups","selectNumericalAxisIdFromGraphicalItemId","areaSettings","_stackGroups$stackId","groups","selectArea","chartBaseValue","_ref0","itemBaseValue","hasStack","getBaseValue","isHorizontalLayout","_valueAsArray$","_valueAsArray","_xAxis$scale$map","valueAsArray","rawValue","_yAxis$scale$map","value1","isBreakPoint","_xAxis$scale$map2","_yAxis$scale$map2","computeArea","SetAreaTooltipEntrySettings","AreaDotsWrapper","areaProps","AreaLabelListProvider","StaticArea","allOtherProps","propsWithEvents","VerticalRect","_points$","_points","startY","endY","maxX","HorizontalRect","_points$2","_points2","maxY","ClipRect","AreaWithAnimation","_ref8","previousBaselineRef","prevBaseLine","stepBaseLine","stepPoints","RenderArea","_ref9","AreaWithState","defaultAreaProps","AreaImpl","domainMax","domainMin","AreaFn","Area","BarRectangle","minPointSizeCallback","isValueNumberOrNil","invariant","selectSynchronisedBarSettings","pickBarId","selectMaxBarSize","selectAllVisibleBars","pickIsPanorama","selectBarSizeList","selectBarCartesianAxisSize","selectAxisBandSize","selectAllBarPositions","selectBarBandSize","selectBarPosition","selectStackedDataOfItem","selectBarStackGroups","selectBarRectangles","axisViewBox","minPointSizeProp","stackedBarStart","untruncatedValue","defaultMinPointSize","baseValueScale","currentValueScale","computedHeight","computeBarRectangles","pickStackId","selectAllBarsInStack","selectAllBarIdsInStack","selectStackRects","combineStackRects","allBarIds","stackRects","barId","rectangles","expandRectangle","rect1","rect2","BarStackContext","defaultBarStackProps","getClipPathId","BarStackClipLayer","clipPathUrl","barStackContext","useBarStackClipPathUrl","BarStackClipPath","positions","BarStackImpl","resolvedStackId","BarStack","computeLegendPayloadFromBarData","SetBarTooltipEntrySettings","BarBackground","backgroundFromProps","allOtherBarProps","backgroundFromDataEntry","barRectangleProps","BarLabelListProvider","rects","BarRectangleWithActiveState","BarRectangleNeverActive","BarRectangles","RectanglesWithAnimation","previousRectanglesRef","RenderRectangles","BarWithState","defaultBarProps","BarImpl","firstDataPoint","BarFn","childStackId","stackSettings","Bar","ScatterSymbol","selectSynchronisedScatterSettings","pickScatterId","_zAxisId","selectScatterPoints","scatterChartDataSelector","selectZAxis","scatterSettings","xAxisDataKey","yAxisDataKey","zAxisDataKey","defaultRangeZ","defaultZ","xBandSize","yBandSize","computeScatterPoints","computeLegendPayloadFromScatterProps","SetScatterTooltipEntrySettings","_points$Number","ScatterLine","lineType","lineJointType","linePoints","scatterProps","customLineProps","_entry$cx","_entry$cy","xmin","xmax","xsum","ysum","xysum","xxsum","xcurrent","ycurrent","_data$i","_data$i2","getLinearRegression","linearExp","ScatterLabelListProvider","chartViewBox","ScatterSymbols","allOtherScatterProps","allOtherPropsWithoutId","hasActiveShape","symbolProps","SymbolsWithAnimation","ScatterWithId","defaultScatterProps","ScatterImpl","ScatterFn","Scatter","shortArraysAreEqual","arr1","arr2","axisPropsAreEqual","prevDomain","prevRange","prevRest","nextDomain","nextRange","nextRest","SetXAxisSettings","XAxisImpl","cartesianTickItems","dangerouslySetInnerHTML","del","del2","restSynchronizedSettings","xAxisDefaultProps","XAxisSettingsDispatcher","XAxis","SetYAxisSettings","YAxisImpl","cartesianAxisRef","axisComponent","yAxisDefaultProps","YAxisSettingsDispatcher","YAxis","SetZAxisSettings","zAxisDefaultProps","ZAxis","CSSTransitionAnimate","attributeName","onAnimationStartFromProps","initialized","ErrorBarImpl","svgProps","dataIndex","lineCoordinates","low","high","yMid","yMin","yMax","xMin","xMax","xMid","scaleDirection","transformOrigin","lineIndex","lineStyle","errorBarDefaultProps","ErrorBar","directionFromProps","realDirection","selectActivePropsFromChartPointer","pickChartPointer","chartPointer","combineActiveProps","combineActiveCartesianProps","pointer","isInCartesianRange","calculateCartesianTooltipPos","getActiveCartesianCoordinate","getChartPointer","currentTarget","scaleX","scaleY","clientX","clientY","mouseClickAction","mouseClickMiddleware","mousePointer","activeProps","mouseMoveAction","mouseMoveMiddleware","rafId","reduxDevtoolsJsonStringifyReplacer","HTMLElement","tagName","rootPropsSlice","updateOptions","_action$payload$barGa","rootPropsReducer","polarOptionsSlice","updatePolarOptions","polarOptionsReducer","keyDownAction","focusAction","keyboardEventsMiddleware","resolvedIndex","nextIndex","_action","externalEventAction","externalEventsMiddleware","rafIdMap","handler","reactEvent","persist","existingRafId","selectAllTooltipPayloadConfiguration","selectTooltipCoordinate","tooltipIndex","_tooltipIndex","allTooltipConfigurations","mostRelevantTooltipConfiguration","tooltipConfiguration","touchEventAction","touchEventMiddleware","touchEvent","touches","_target$getAttribute","elementFromPoint","getAttribute","itemIndex","createRechartsStore","_process$env$NODE_ENV","getDefaultEnhancers","notifying","shouldNotifyAtEndOfTick","notificationQueued","queueCallback","queueNotification","notifyListeners","listener2","autoBatchEnhancer","serialize","replacer","RechartsStoreProvider","reduxStoreName","storeRef","nonNullContext","ReportMainChartPropsImpl","ReportMainChartProps","ReportChartProps","ZIndexSvgPortal","AllZIndexPortals","allRegisteredZIndexes","allNegativeZIndexes","allPositiveZIndexes","FULL_WIDTH_AND_HEIGHT","MainChartSurface","hasAccessibilityLayer","otherAttributes","BrushPanoramaSurface","RootSurface","EventSynchronizer","getNumberOrZero","ResponsiveDiv","_props$style","_props$style2","observerRef","ReadSizeOnceDiv","StaticDiv","NonResponsiveDiv","RechartsWrapper","onContextMenu","onDoubleClick","onMouseMove","onMouseUp","onTouchEnd","responsive","dispatchTouchEvents","setTooltipPortal","setLegendPortal","setScaleRef","setRef","newScale","useReportScale","myOnClick","myOnMouseEnter","myOnMouseLeave","myOnMouseMove","myOnContextMenu","myOnDoubleClick","myOnMouseDown","myOnMouseUp","myOnTouchStart","myOnTouchMove","myOnTouchEnd","WrapperDiv","getWrapperDivComponent","CategoricalChart","defaultCartesianChartProps","CartesianChart","_categoricalChartProp","rootChartProps","categoricalChartProps","allowedTooltipTypes","LineChart","BarChart","ReportPolarOptions","defaultPolarChartProps","PolarChart","_polarChartProps$id","polarChartProps","otherCategoricalProps","defaultPieChartProps","PieChart","propsWithDefaults","NODE_VALUE_KEY","treemapPayloadSearcher","computeNode","nodeValue","nestedActiveTooltipIndex","currentTooltipIndex","indexInChildrenArr","addToTreemapNodeIndex","childDepth","computedChildren","rawNodeValue","getWorstScore","parentSize","aspectRatio","parentArea","rowArea","parentRect","isFlush","horizontalPosition","rowHeight","curX","verticalPosition","rowWidth","curY","squarify","score","filterRect","best","scaleChildren","getAreaOfChildren","areaValueRatio","ratio","tempChildren","_row$pop$area","_row$pop","defaultTreeMapProps","defaultState","isAnimationFinished","formatRoot","currentRoot","nestIndex","prevAspectRatio","prevDataKey","ContentItem","nodeProps","colorPanel","arrow","nameSize","ContentItemWithEvents","SetTreemapTooltipEntrySettings","defaultTreemapMargin","TreemapItem","isLeaf","treemapProps","onNestClick","TreemapWithState","activeNode","isTreemapNode","prevType","handleNestIndex","renderNode","handleClick","renderAllNodes","renderNestIndex","nestIndexContent","marginTop","rawName","_this$props","TreemapDispatchInject","Treemap","_props$className","centerY","getSumOfIds","links","ids","getSumWithWeightedSource","tree","link","sourceNode","getSumWithWeightedTarget","targetNode","ascendingY","updateDepthOfTargets","curNode","targetNodes","resolveCollisions","depthTree","nodePadding","nodes","relaxLeftToRight","maxDepth","sourceLinks","sourceSum","relaxRightToLeft","targetLinks","targetSum","computeData","nodeWidth","getNodesTree","_maxBy$depth","_maxBy","searchTargetsAndSources","sourceNodes","childWidth","_result$node$depth","getDepthTree","linksWithDy","updateYOfTree","yRatio","currentY","updateYOfLinks","sy","_links$a","_links$b","_tree$targetA","_tree$targetB","targetA","targetB","yA","yB","_links$a2","_links$b2","_tree$sourceA","_tree$sourceB","sourceA","sourceB","tLen","targetLink","sLen","sourceLink","getNodeCoordinateOfTooltip","getLinkCoordinateOfTooltip","targetX","targetY","sankeyPayloadSearcher","splitIndex","targetType","getPayloadOfTooltip","sourceName","targetName","SetSankeyTooltipEntrySettings","buildLinkProps","linkContent","linkCurvature","sourceRelativeY","targetRelativeY","linkWidth","interpolationFunc","interpolationGenerator","ka","kb","sourceControlX","targetControlX","SankeyLinkElement","strokeOpacity","renderLinkItem","AllSankeyLinkElements","modifiedLinks","linkProps","buildNodeProps","nodeContent","NodeElement","renderNodeItem","AllNodeElements","modifiedNodes","modifiedNode","sankeyDefaultProps","SankeyImpl","_margin$left","_margin$right","_margin$top","_margin$bottom","contentWidth","contentHeight","computed","newModifiedLinks","newModifiedNodes","handleMouseEnter","handleMouseLeave","Sankey","defaultRadarChartProps","RadarChart","ScatterChart","AreaChart","defaultRadialBarChartProps","RadialBarChart","ComposedChart","getMaxDepthOf","childDepths","SetSunburstTooltipEntrySettings","defaultSunburstMargin","payloadSearcher","defaultSunburstChartProps","ringPadding","textOptions","paintOrder","SunburstChartImpl","outerRadiusFromProps","cxFromProps","cyFromProps","rScale","scaleLinear","thickness","drawArcs","childNodes","innerR","initialAngle","childColor","currentAngle","_d$fill","addToSunburstNodeIndex","nodeWithIndex","arcLength","fillColor","textX","textY","tooltipX","tooltipY","SunburstChart","FunnelTrapezoid","selectFunnelTrapezoids","pickFunnelSettings","funnelSettings","lastShapeType","customWidth","realHeight","realWidth","offsetX","offsetY","getRealWidthHeight","trapezoids","nextVal","rawVal","nextDataValue","trapezoidViewBox","labelViewBox","reversedViewBox","computeFunnelTrapezoids","SetFunnelTooltipEntrySettings","_trapezoids$Number","FunnelLabelListProvider","FunnelTrapezoids","allOtherFunnelProps","activeItemIndex","isActiveIndex","trapezoidOptions","_entry$option$isActiv","TrapezoidsWithAnimation","previousTrapezoidsRef","prevTrapezoids","RenderTrapezoids","defaultFunnelProps","FunnelImpl","Funnel","FunnelChart"],"ignoreList":[],"sourceRoot":""}
Index: de_modules/recharts/umd/report.html
===================================================================
--- node_modules/recharts/umd/report.html	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8"/>
-    <meta name="viewport" content="width=device-width, initial-scale=1"/>
-    <title>recharts [21 Jan 2026 at 13:10]</title>
-    <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
-
-    <script>
-      window.enableWebSocket = false;
-    </script>
-    <!-- viewer.js -->
-<script>/*! For license information please see viewer.js.LICENSE.txt */
-(()=>{var e={184:(e,t)=>{var n;
-/*!
-  Copyright (c) 2018 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/!function(){"use strict";var i={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var a=r.apply(null,n);a&&e.push(a)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)i.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},908:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Button__button{background:#fff;border:1px solid #aaa;border-radius:4px;cursor:pointer;display:inline-block;font:var(--main-font);outline:none;padding:5px 7px;transition:background .3s ease;white-space:nowrap}.Button__button:focus,.Button__button:hover{background:#ffefd7}.Button__button.Button__active{background:orange;color:#000}.Button__button[disabled]{cursor:default}","",{version:3,sources:["webpack://./client/components/Button.css"],names:[],mappings:"AAAA,gBACE,eAAgB,CAChB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,oBAAqB,CACrB,qBAAsB,CACtB,YAAa,CACb,eAAgB,CAChB,8BAA+B,CAC/B,kBACF,CAEA,4CAEE,kBACF,CAEA,+BACE,iBAAmB,CACnB,UACF,CAEA,0BACE,cACF",sourcesContent:[".button {\n  background: #fff;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: pointer;\n  display: inline-block;\n  font: var(--main-font);\n  outline: none;\n  padding: 5px 7px;\n  transition: background .3s ease;\n  white-space: nowrap;\n}\n\n.button:focus,\n.button:hover {\n  background: #ffefd7;\n}\n\n.button.active {\n  background: #ffa500;\n  color: #000;\n}\n\n.button[disabled] {\n  cursor: default;\n}\n"],sourceRoot:""}]),a.locals={button:"Button__button",active:"Button__active"};const s=a},396:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Checkbox__label{display:inline-block}.Checkbox__checkbox,.Checkbox__label{cursor:pointer}.Checkbox__itemText{margin-left:3px;position:relative;top:-2px;vertical-align:middle}","",{version:3,sources:["webpack://./client/components/Checkbox.css"],names:[],mappings:"AAAA,iBAEE,oBACF,CAEA,qCAJE,cAMF,CAEA,oBACE,eAAgB,CAChB,iBAAkB,CAClB,QAAS,CACT,qBACF",sourcesContent:[".label {\n  cursor: pointer;\n  display: inline-block;\n}\n\n.checkbox {\n  cursor: pointer;\n}\n\n.itemText {\n  margin-left: 3px;\n  position: relative;\n  top: -2px;\n  vertical-align: middle;\n}\n"],sourceRoot:""}]),a.locals={label:"Checkbox__label",checkbox:"Checkbox__checkbox",itemText:"Checkbox__itemText"};const s=a},213:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".CheckboxList__container{font:var(--main-font);white-space:nowrap}.CheckboxList__label{font-size:11px;font-weight:700;margin-bottom:7px}.CheckboxList__item+.CheckboxList__item{margin-top:1px}","",{version:3,sources:["webpack://./client/components/CheckboxList.css"],names:[],mappings:"AAAA,yBACE,qBAAsB,CACtB,kBACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,iBACF,CAEA,wCACE,cACF",sourcesContent:[".container {\n  font: var(--main-font);\n  white-space: nowrap;\n}\n\n.label {\n  font-size: 11px;\n  font-weight: bold;\n  margin-bottom: 7px;\n}\n\n.item + .item {\n  margin-top: 1px;\n}\n"],sourceRoot:""}]),a.locals={container:"CheckboxList__container",label:"CheckboxList__label",item:"CheckboxList__item"};const s=a},580:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".ContextMenu__container{background:#fff;border:1px solid #aaa;border-radius:4px;font:var(--main-font);list-style:none;opacity:1;padding:0;position:absolute;transition:opacity .2s ease,visibility .2s ease;visibility:visible;white-space:nowrap}.ContextMenu__hidden{opacity:0;visibility:hidden}","",{version:3,sources:["webpack://./client/components/ContextMenu.css"],names:[],mappings:"AAAA,wBAKE,eAAgB,CAChB,qBAAsB,CAFtB,iBAAkB,CAHlB,qBAAsB,CAMtB,eAAgB,CAChB,SAAU,CALV,SAAU,CADV,iBAAkB,CASlB,+CAAiD,CADjD,kBAAmB,CADnB,kBAGF,CAEA,qBACE,SAAU,CACV,iBACF",sourcesContent:[".container {\n  font: var(--main-font);\n  position: absolute;\n  padding: 0;\n  border-radius: 4px;\n  background: #fff;\n  border: 1px solid #aaa;\n  list-style: none;\n  opacity: 1;\n  white-space: nowrap;\n  visibility: visible;\n  transition: opacity .2s ease, visibility .2s ease;\n}\n\n.hidden {\n  opacity: 0;\n  visibility: hidden;\n}\n"],sourceRoot:""}]),a.locals={container:"ContextMenu__container",hidden:"ContextMenu__hidden"};const s=a},270:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".ContextMenuItem__item{cursor:pointer;margin:0;padding:8px 14px;-webkit-user-select:none;user-select:none}.ContextMenuItem__item:hover{background:#ffefd7}.ContextMenuItem__disabled{color:grey;cursor:default}.ContextMenuItem__item.ContextMenuItem__disabled:hover{background:transparent}","",{version:3,sources:["webpack://./client/components/ContextMenuItem.css"],names:[],mappings:"AAAA,uBACE,cAAe,CACf,QAAS,CACT,gBAAiB,CACjB,wBAAiB,CAAjB,gBACF,CAEA,6BACE,kBACF,CAEA,2BAEE,UAAW,CADX,cAEF,CAEA,uDACE,sBACF",sourcesContent:[".item {\n  cursor: pointer;\n  margin: 0;\n  padding: 8px 14px;\n  user-select: none;\n}\n\n.item:hover {\n  background: #ffefd7;\n}\n\n.disabled {\n  cursor: default;\n  color: gray;\n}\n\n.item.disabled:hover {\n  background: transparent;\n}\n"],sourceRoot:""}]),a.locals={item:"ContextMenuItem__item",disabled:"ContextMenuItem__disabled"};const s=a},172:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Dropdown__container{font:var(--main-font);white-space:nowrap}.Dropdown__label{font-size:11px;font-weight:700;margin-bottom:7px}.Dropdown__input{border:1px solid #aaa;border-radius:4px;color:#7f7f7f;display:block;height:27px;width:100%}.Dropdown__option{cursor:pointer;padding:4px 0}","",{version:3,sources:["webpack://./client/components/Dropdown.css"],names:[],mappings:"AAAA,qBACE,qBAAsB,CACtB,kBACF,CAEA,iBACE,cAAe,CACf,eAAiB,CACjB,iBACF,CAEA,iBACE,qBAAsB,CACtB,iBAAkB,CAGlB,aAAc,CAFd,aAAc,CAGd,WAAY,CAFZ,UAGF,CAEA,kBAEE,cAAe,CADf,aAEF",sourcesContent:[".container {\n  font: var(--main-font);\n  white-space: nowrap;\n}\n\n.label {\n  font-size: 11px;\n  font-weight: bold;\n  margin-bottom: 7px;\n}\n\n.input {\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  display: block;\n  width: 100%;\n  color: #7f7f7f;\n  height: 27px;\n}\n\n.option {\n  padding: 4px 0;\n  cursor: pointer;\n}\n"],sourceRoot:""}]),a.locals={container:"Dropdown__container",label:"Dropdown__label",input:"Dropdown__input",option:"Dropdown__option"};const s=a},746:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Icon__icon{background:no-repeat 50%/contain;display:inline-block}","",{version:3,sources:["webpack://./client/components/Icon.css"],names:[],mappings:"AAAA,YACE,gCAAoC,CACpC,oBACF",sourcesContent:[".icon {\n  background: no-repeat center/contain;\n  display: inline-block;\n}\n"],sourceRoot:""}]),a.locals={icon:"Icon__icon"};const s=a},697:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var i=n(15),r=n.n(i),o=n(645),a=n.n(o),s=n(667),u=n.n(s),l=n(911),c=n(752),h=n(570),f=n(868),d=a()(r()),p=u()(l.Z),g=u()(c.Z),b=u()(h.Z),v=u()(f.Z);d.push([e.id,".ModuleItem__container{background:no-repeat 0;cursor:pointer;margin-bottom:4px;padding-left:18px;position:relative;white-space:nowrap}.ModuleItem__container.ModuleItem__module{background-image:url("+p+");background-position-x:1px}.ModuleItem__container.ModuleItem__folder{background-image:url("+g+")}.ModuleItem__container.ModuleItem__chunk{background-image:url("+b+")}.ModuleItem__container.ModuleItem__invisible:hover:before{background:url("+v+') no-repeat 0;content:"";height:100%;left:0;position:absolute;top:1px;width:13px}',"",{version:3,sources:["webpack://./client/components/ModuleItem.css"],names:[],mappings:"AAAA,uBACE,sBAAiC,CACjC,cAAe,CACf,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,kBACF,CAEA,0CACE,wDAAkD,CAClD,yBACF,CAEA,0CACE,wDACF,CAEA,yCACE,wDACF,CAEA,0DACE,8DAAqE,CACrE,UAAW,CACX,WAAY,CACZ,MAAO,CAEP,iBAAkB,CADlB,OAAQ,CAER,UACF",sourcesContent:[".container {\n  background: no-repeat left center;\n  cursor: pointer;\n  margin-bottom: 4px;\n  padding-left: 18px;\n  position: relative;\n  white-space: nowrap;\n}\n\n.container.module {\n  background-image: url('../assets/icon-module.svg');\n  background-position-x: 1px;\n}\n\n.container.folder {\n  background-image: url('../assets/icon-folder.svg');\n}\n\n.container.chunk {\n  background-image: url('../assets/icon-chunk.svg');\n}\n\n.container.invisible:hover::before {\n  background: url('../assets/icon-invisible.svg') no-repeat left center;\n  content: \"\";\n  height: 100%;\n  left: 0;\n  top: 1px;\n  position: absolute;\n  width: 13px;\n}\n"],sourceRoot:""}]),d.locals={container:"ModuleItem__container",module:"ModuleItem__module",folder:"ModuleItem__folder",chunk:"ModuleItem__chunk",invisible:"ModuleItem__invisible"};const m=d},784:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".ModulesList__container{font:var(--main-font)}","",{version:3,sources:["webpack://./client/components/ModulesList.css"],names:[],mappings:"AAAA,wBACE,qBACF",sourcesContent:[".container {\n  font: var(--main-font);\n}\n"],sourceRoot:""}]),a.locals={container:"ModulesList__container"};const s=a},393:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".ModulesTreemap__container{align-items:stretch;display:flex;height:100%;position:relative;width:100%}.ModulesTreemap__map{flex:1}.ModulesTreemap__sidebarGroup{font:var(--main-font);margin-bottom:20px}.ModulesTreemap__showOption{margin-top:5px}.ModulesTreemap__activeSize{font-weight:700}.ModulesTreemap__foundModulesInfo{display:flex;font:var(--main-font);margin:8px 0 0}.ModulesTreemap__foundModulesInfoItem+.ModulesTreemap__foundModulesInfoItem{margin-left:15px}.ModulesTreemap__foundModulesContainer{margin-top:15px;max-height:600px;overflow:auto}.ModulesTreemap__foundModulesChunk+.ModulesTreemap__foundModulesChunk{margin-top:15px}.ModulesTreemap__foundModulesChunkName{cursor:pointer;font:var(--main-font);font-weight:700;margin-bottom:7px}.ModulesTreemap__foundModulesList{margin-left:7px}","",{version:3,sources:["webpack://./client/components/ModulesTreemap.css"],names:[],mappings:"AAAA,2BACE,mBAAoB,CACpB,YAAa,CACb,WAAY,CACZ,iBAAkB,CAClB,UACF,CAEA,qBACE,MACF,CAEA,8BACE,qBAAsB,CACtB,kBACF,CAEA,4BACE,cACF,CAEA,4BACE,eACF,CAEA,kCACE,YAAa,CACb,qBAAsB,CACtB,cACF,CAEA,4EACE,gBACF,CAEA,uCACE,eAAgB,CAChB,gBAAiB,CACjB,aACF,CAEA,sEACE,eACF,CAEA,uCACE,cAAe,CACf,qBAAsB,CACtB,eAAiB,CACjB,iBACF,CAEA,kCACE,eACF",sourcesContent:[".container {\n  align-items: stretch;\n  display: flex;\n  height: 100%;\n  position: relative;\n  width: 100%;\n}\n\n.map {\n  flex: 1;\n}\n\n.sidebarGroup {\n  font: var(--main-font);\n  margin-bottom: 20px;\n}\n\n.showOption {\n  margin-top: 5px;\n}\n\n.activeSize {\n  font-weight: bold;\n}\n\n.foundModulesInfo {\n  display: flex;\n  font: var(--main-font);\n  margin: 8px 0 0;\n}\n\n.foundModulesInfoItem + .foundModulesInfoItem {\n  margin-left: 15px;\n}\n\n.foundModulesContainer {\n  margin-top: 15px;\n  max-height: 600px;\n  overflow: auto;\n}\n\n.foundModulesChunk + .foundModulesChunk {\n  margin-top: 15px;\n}\n\n.foundModulesChunkName {\n  cursor: pointer;\n  font: var(--main-font);\n  font-weight: bold;\n  margin-bottom: 7px;\n}\n\n.foundModulesList {\n  margin-left: 7px;\n}\n"],sourceRoot:""}]),a.locals={container:"ModulesTreemap__container",map:"ModulesTreemap__map",sidebarGroup:"ModulesTreemap__sidebarGroup",showOption:"ModulesTreemap__showOption",activeSize:"ModulesTreemap__activeSize",foundModulesInfo:"ModulesTreemap__foundModulesInfo",foundModulesInfoItem:"ModulesTreemap__foundModulesInfoItem",foundModulesContainer:"ModulesTreemap__foundModulesContainer",foundModulesChunk:"ModulesTreemap__foundModulesChunk",foundModulesChunkName:"ModulesTreemap__foundModulesChunkName",foundModulesList:"ModulesTreemap__foundModulesList"};const s=a},976:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Search__container{font:var(--main-font);white-space:nowrap}.Search__label{font-weight:700;margin-bottom:7px}.Search__row{display:flex}.Search__input{border:1px solid #aaa;border-radius:4px;display:block;flex:1;padding:5px}.Search__clear{flex:0 0 auto;line-height:1;margin-left:3px;padding:5px 8px 7px}","",{version:3,sources:["webpack://./client/components/Search.css"],names:[],mappings:"AAAA,mBACE,qBAAsB,CACtB,kBACF,CAEA,eACE,eAAiB,CACjB,iBACF,CAEA,aACE,YACF,CAEA,eACE,qBAAsB,CACtB,iBAAkB,CAClB,aAAc,CACd,MAAO,CACP,WACF,CAEA,eACE,aAAc,CACd,aAAc,CACd,eAAgB,CAChB,mBACF",sourcesContent:[".container {\n  font: var(--main-font);\n  white-space: nowrap;\n}\n\n.label {\n  font-weight: bold;\n  margin-bottom: 7px;\n}\n\n.row {\n  display: flex;\n}\n\n.input {\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  display: block;\n  flex: 1;\n  padding: 5px;\n}\n\n.clear {\n  flex: 0 0 auto;\n  line-height: 1;\n  margin-left: 3px;\n  padding: 5px 8px 7px;\n}\n"],sourceRoot:""}]),a.locals={container:"Search__container",label:"Search__label",row:"Search__row",input:"Search__input",clear:"Search__clear"};const s=a},826:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Sidebar__container{background:#fff;border:none;border-right:1px solid #aaa;box-sizing:border-box;max-width:calc(50% - 10px);opacity:.95;z-index:1}.Sidebar__container:not(.Sidebar__hidden){min-width:200px}.Sidebar__container:not(.Sidebar__pinned){bottom:0;position:absolute;top:0;transition:transform .2s ease}.Sidebar__container.Sidebar__pinned{position:relative}.Sidebar__container.Sidebar__left{left:0}.Sidebar__container.Sidebar__left.Sidebar__hidden{transform:translateX(calc(-100% + 7px))}.Sidebar__content{box-sizing:border-box;height:100%;overflow-y:auto;padding:25px 20px 20px;width:100%}.Sidebar__empty.Sidebar__pinned .Sidebar__content{padding:0}.Sidebar__pinButton,.Sidebar__toggleButton{cursor:pointer;height:26px;line-height:0;position:absolute;top:10px;width:27px}.Sidebar__pinButton{right:47px}.Sidebar__toggleButton{padding-left:6px;right:15px}.Sidebar__hidden .Sidebar__toggleButton{right:-35px;transition:transform .2s ease}.Sidebar__hidden .Sidebar__toggleButton:hover{transform:translateX(4px)}.Sidebar__resizer{bottom:0;cursor:col-resize;position:absolute;right:0;top:0;width:7px}","",{version:3,sources:["webpack://./client/components/Sidebar.css"],names:[],mappings:"AAEA,oBACE,eAAgB,CAEhB,WAA4B,CAA5B,2BAA4B,CAC5B,qBAAsB,CACtB,0BAA2B,CAC3B,WAAa,CACb,SACF,CAEA,0CACE,eACF,CAEA,0CACE,QAAS,CACT,iBAAkB,CAClB,KAAM,CACN,6BACF,CAEA,oCACE,iBACF,CAEA,kCACE,MACF,CAEA,kDACE,uCACF,CAEA,kBACE,qBAAsB,CACtB,WAAY,CACZ,eAAgB,CAChB,sBAAuB,CACvB,UACF,CAEA,kDACE,SACF,CAEA,2CAEE,cAAe,CACf,WAAY,CACZ,aAAc,CACd,iBAAkB,CAClB,QAAS,CACT,UACF,CAEA,oBACE,UACF,CAEA,uBACE,gBAAiB,CACjB,UACF,CAEA,wCACE,WAAY,CACZ,6BACF,CAEA,8CACE,yBACF,CAEA,kBACE,QAAS,CACT,iBAAkB,CAClB,iBAAkB,CAClB,OAAQ,CACR,KAAM,CACN,SACF",sourcesContent:["@value toggleTime: 200ms;\n\n.container {\n  background: #fff;\n  border: none;\n  border-right: 1px solid #aaa;\n  box-sizing: border-box;\n  max-width: calc(50% - 10px);\n  opacity: 0.95;\n  z-index: 1;\n}\n\n.container:not(.hidden) {\n  min-width: 200px;\n}\n\n.container:not(.pinned) {\n  bottom: 0;\n  position: absolute;\n  top: 0;\n  transition: transform toggleTime ease;\n}\n\n.container.pinned {\n  position: relative;\n}\n\n.container.left {\n  left: 0;\n}\n\n.container.left.hidden {\n  transform: translateX(calc(-100% + 7px));\n}\n\n.content {\n  box-sizing: border-box;\n  height: 100%;\n  overflow-y: auto;\n  padding: 25px 20px 20px;\n  width: 100%;\n}\n\n.empty.pinned .content {\n  padding: 0;\n}\n\n.pinButton,\n.toggleButton {\n  cursor: pointer;\n  height: 26px;\n  line-height: 0;\n  position: absolute;\n  top: 10px;\n  width: 27px;\n}\n\n.pinButton {\n  right: 47px;\n}\n\n.toggleButton {\n  padding-left: 6px;\n  right: 15px;\n}\n\n.hidden .toggleButton {\n  right: -35px;\n  transition: transform .2s ease;\n}\n\n.hidden .toggleButton:hover {\n  transform: translateX(4px);\n}\n\n.resizer {\n  bottom: 0;\n  cursor: col-resize;\n  position: absolute;\n  right: 0;\n  top: 0;\n  width: 7px;\n}\n"],sourceRoot:""}]),a.locals={toggleTime:".2s",container:"Sidebar__container",hidden:"Sidebar__hidden",pinned:"Sidebar__pinned",left:"Sidebar__left",content:"Sidebar__content",empty:"Sidebar__empty",pinButton:"Sidebar__pinButton",toggleButton:"Sidebar__toggleButton",resizer:"Sidebar__resizer"};const s=a},897:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Switcher__container{font:var(--main-font);white-space:nowrap}.Switcher__label{font-size:11px;font-weight:700;margin-bottom:7px}.Switcher__item+.Switcher__item{margin-left:5px}","",{version:3,sources:["webpack://./client/components/Switcher.css"],names:[],mappings:"AAAA,qBACE,qBAAsB,CACtB,kBACF,CAEA,iBAEE,cAAe,CADf,eAAiB,CAEjB,iBACF,CAEA,gCACE,eACF",sourcesContent:[".container {\n  font: var(--main-font);\n  white-space: nowrap;\n}\n\n.label {\n  font-weight: bold;\n  font-size: 11px;\n  margin-bottom: 7px;\n}\n\n.item + .item {\n  margin-left: 5px;\n}\n"],sourceRoot:""}]),a.locals={container:"Switcher__container",label:"Switcher__label",item:"Switcher__item"};const s=a},527:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,".Tooltip__container{background:#fff;border:1px solid #aaa;border-radius:4px;font:var(--main-font);opacity:.9;padding:5px 10px;position:absolute;transition:opacity .2s ease,visibility .2s ease;visibility:visible;white-space:nowrap}.Tooltip__hidden{opacity:0;visibility:hidden}","",{version:3,sources:["webpack://./client/components/Tooltip.css"],names:[],mappings:"AAAA,oBAKE,eAAgB,CAChB,qBAAsB,CAFtB,iBAAkB,CAHlB,qBAAsB,CAMtB,UAAY,CAJZ,gBAAiB,CADjB,iBAAkB,CAQlB,+CAAiD,CADjD,kBAAmB,CADnB,kBAGF,CAEA,iBACE,SAAU,CACV,iBACF",sourcesContent:[".container {\n  font: var(--main-font);\n  position: absolute;\n  padding: 5px 10px;\n  border-radius: 4px;\n  background: #fff;\n  border: 1px solid #aaa;\n  opacity: 0.9;\n  white-space: nowrap;\n  visibility: visible;\n  transition: opacity .2s ease, visibility .2s ease;\n}\n\n.hidden {\n  opacity: 0;\n  visibility: hidden;\n}\n"],sourceRoot:""}]),a.locals={container:"Tooltip__container",hidden:"Tooltip__hidden"};const s=a},194:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var i=n(15),r=n.n(i),o=n(645),a=n.n(o)()(r());a.push([e.id,":root{--main-font:normal 11px Verdana,sans-serif}#app,body,html{height:100%;margin:0;overflow:hidden;padding:0;width:100%}body.resizing{-webkit-user-select:none!important;user-select:none!important}body.resizing *{pointer-events:none}body.resizing.col{cursor:col-resize!important}","",{version:3,sources:["webpack://./client/viewer.css"],names:[],mappings:"AAAA,MACE,0CACF,CAEA,eAGE,WAAY,CACZ,QAAS,CACT,eAAgB,CAChB,SAAU,CACV,UACF,CAEA,cACE,kCAA4B,CAA5B,0BACF,CAEA,gBACE,mBACF,CAEA,kBACE,2BACF",sourcesContent:[":root {\n  --main-font: normal 11px Verdana, sans-serif;\n}\n\n:global html,\n:global body,\n:global #app {\n  height: 100%;\n  margin: 0;\n  overflow: hidden;\n  padding: 0;\n  width: 100%;\n}\n\n:global body.resizing {\n  user-select: none !important;\n}\n\n:global body.resizing * {\n  pointer-events: none;\n}\n\n:global body.resizing.col {\n  cursor: col-resize !important;\n}\n"],sourceRoot:""}]);const s=a},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,i){"string"==typeof e&&(e=[[null,e,""]]);var r={};if(i)for(var o=0;o<this.length;o++){var a=this[o][0];null!=a&&(r[a]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);i&&r[u[0]]||(n&&(u[2]?u[2]="".concat(n," and ").concat(u[2]):u[2]=n),t.push(u))}},t}},15:e=>{"use strict";function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return n(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}e.exports=function(e){var n=t(e,4),i=n[1],r=n[3];if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),s="/*# ".concat(a," */"),u=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[i].concat(u).concat([s]).join("\n")}return[i].join("\n")}},667:e=>{"use strict";e.exports=function(e,t){return t||(t={}),"string"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e)}},296:e=>{function t(e,t,n){var i,r,o,a,s;function u(){var l=Date.now()-a;l<t&&l>=0?i=setTimeout(u,t-l):(i=null,n||(s=e.apply(o,r),o=r=null))}null==t&&(t=100);var l=function(){o=this,r=arguments,a=Date.now();var l=n&&!i;return i||(i=setTimeout(u,t)),l&&(s=e.apply(o,r),o=r=null),s};return l.clear=function(){i&&(clearTimeout(i),i=null)},l.flush=function(){i&&(s=e.apply(o,r),o=r=null,clearTimeout(i),i=null)},l}t.debounce=t,e.exports=t},150:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},755:function(e){e.exports=function(){"use strict";var e=/^(b|B)$/,t={iec:{bits:["b","Kib","Mib","Gib","Tib","Pib","Eib","Zib","Yib"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},n={iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]},i={floor:Math.floor,ceil:Math.ceil};function r(r){var o,a,s,u,l,c,h,f,d,p,g,b,v,m,y,C,w,_,x,A,S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},M=[],T=0;if(isNaN(r))throw new TypeError("Invalid number");if(s=!0===S.bits,y=!0===S.unix,b=!0===S.pad,a=S.base||2,v=void 0!==S.round?S.round:y?1:2,h=void 0!==S.locale?S.locale:"",f=S.localeOptions||{},C=void 0!==S.separator?S.separator:"",w=void 0!==S.spacer?S.spacer:y?"":" ",x=S.symbols||{},_=2===a&&S.standard||"jedec",g=S.output||"string",l=!0===S.fullform,c=S.fullforms instanceof Array?S.fullforms:[],o=void 0!==S.exponent?S.exponent:-1,A=i[S.roundingMethod]||Math.round,u=a>2?1e3:1024,(d=(p=Number(r))<0)&&(p=-p),(-1===o||isNaN(o))&&(o=Math.floor(Math.log(p)/Math.log(u)))<0&&(o=0),o>8&&(o=8),"exponent"===g)return o;if(0===p)M[0]=0,m=M[1]=y?"":t[_][s?"bits":"bytes"][o];else{T=p/(2===a?Math.pow(2,10*o):Math.pow(1e3,o)),s&&(T*=8)>=u&&o<8&&(T/=u,o++);var k=Math.pow(10,o>0?v:0);M[0]=A(T*k)/k,M[0]===u&&o<8&&void 0===S.exponent&&(M[0]=1,o++),m=M[1]=10===a&&1===o?s?"kb":"kB":t[_][s?"bits":"bytes"][o],y&&(M[1]="jedec"===_?M[1].charAt(0):o>0?M[1].replace(/B$/,""):M[1],e.test(M[1])&&(M[0]=Math.floor(M[0]),M[1]=""))}if(d&&(M[0]=-M[0]),M[1]=x[M[1]]||M[1],!0===h?M[0]=M[0].toLocaleString():h.length>0?M[0]=M[0].toLocaleString(h,f):C.length>0&&(M[0]=M[0].toString().replace(".",C)),b&&!1===Number.isInteger(M[0])&&v>0){var z=C||".",D=M[0].toString().split(z),B=D[1]||"",L=B.length,E=v-L;M[0]="".concat(D[0]).concat(z).concat(B.padEnd(L+E,"0"))}return l&&(M[1]=c[o]?c[o]:n[_][o]+(s?"bit":"byte")+(1===M[0]?"":"s")),"array"===g?M:"object"===g?{value:M[0],symbol:M[1],exponent:o,unit:m}:M.join(w)}return r.partial=function(e){return function(t){return r(t,e)}},r}()},379:(e,t,n)=>{"use strict";var i,r=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},o=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(i){n=null}e[t]=n}return e[t]}}(),a=[];function s(e){for(var t=-1,n=0;n<a.length;n++)if(a[n].identifier===e){t=n;break}return t}function u(e,t){for(var n={},i=[],r=0;r<e.length;r++){var o=e[r],u=t.base?o[0]+t.base:o[0],l=n[u]||0,c="".concat(u," ").concat(l);n[u]=l+1;var h=s(c),f={css:o[1],media:o[2],sourceMap:o[3]};-1!==h?(a[h].references++,a[h].updater(f)):a.push({identifier:c,updater:b(f,t),references:1}),i.push(c)}return i}function l(e){var t=document.createElement("style"),i=e.attributes||{};if(void 0===i.nonce){var r=n.nc;r&&(i.nonce=r)}if(Object.keys(i).forEach((function(e){t.setAttribute(e,i[e])})),"function"==typeof e.insert)e.insert(t);else{var a=o(e.insert||"head");if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}return t}var c,h=(c=[],function(e,t){return c[e]=t,c.filter(Boolean).join("\n")});function f(e,t,n,i){var r=n?"":i.media?"@media ".concat(i.media," {").concat(i.css,"}"):i.css;if(e.styleSheet)e.styleSheet.cssText=h(t,r);else{var o=document.createTextNode(r),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function d(e,t,n){var i=n.css,r=n.media,o=n.sourceMap;if(r?e.setAttribute("media",r):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}var p=null,g=0;function b(e,t){var n,i,r;if(t.singleton){var o=g++;n=p||(p=l(t)),i=f.bind(null,n,o,!1),r=f.bind(null,n,o,!0)}else n=l(t),i=d.bind(null,n,t),r=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=r());var n=u(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var i=0;i<n.length;i++){var r=s(n[i]);a[r].references--}for(var o=u(e,t),l=0;l<n.length;l++){var c=s(n[l]);0===a[c].references&&(a[c].updater(),a.splice(c,1))}n=o}}}},570:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwdjExLjI1YzAgLjQxNC4zMzYuNzUuNzUuNzVoMTAuNWEuNzUuNzUgMCAwIDAgLjc1LS43NVYwSDB6IiBmaWxsPSIjRkM2IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNMCAwcy4xNTYgMyAxLjEyNSAzaDkuNzVDMTEuODQ1IDMgMTIgMCAxMiAwSDB6IiBmaWxsPSIjQ0NBMzUyIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNi43NSAxLjVoLS4zNzVMNiAyLjVsLS4zNzUtMUg1LjI1TDUuODEzIDMgNS4yNSA0LjVoLjM3NUw2IDMuNWwuMzc1IDFoLjM3NUw2LjE4NyAzeiIgZmlsbD0iIzk5N0EzRCIvPjxjaXJjbGUgY3g9Ii43NSIgY3k9Ii43NSIgcj0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS4yNSAzLjc1KSIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIi8+PGNpcmNsZSBjeD0iLjc1IiBjeT0iLjc1IiByPSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LjI1IC43NSkiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4="},752:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTExLjcgMS4zMzNINS44NUw0LjU1IDBIMS4zQy41ODUgMCAwIC42IDAgMS4zMzNWNGgxM1YyLjY2N2MwLS43MzMtLjU4NS0xLjMzNC0xLjMtMS4zMzR6IiBmaWxsPSIjRkZBMDAwIi8+PHBhdGggZD0iTTExLjcgMUgxLjNDLjU4NSAxIDAgMS41NzkgMCAyLjI4NnY2LjQyOEMwIDkuNDIxLjU4NSAxMCAxLjMgMTBoMTAuNGMuNzE1IDAgMS4zLS41NzkgMS4zLTEuMjg2VjIuMjg2QzEzIDEuNTc5IDEyLjQxNSAxIDExLjcgMXoiIGZpbGw9IiNGRkNBMjgiLz48L2c+PC9zdmc+"},868:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjMyNy4wNjRMOC40MzMgMS45NTdhNi4wMjUgNi4wMjUgMCAwIDAtMS45NTItLjM0MkMyLjkxMiAxLjYxNS4wMTkgNS4xOTYuMDE5IDUuMTk2czEuMDk4IDEuMzU4IDIuNzc0IDIuNDAxTC45NiA5LjQzMWwuOTM2LjkzNkwxMS4yNjMgMWwtLjkzNi0uOTM2ek00LjA1IDYuMzRhMi42ODYgMi42ODYgMCAwIDEgMy41NzQtMy41NzRMNC4wNSA2LjM0em02LjQ0OC0zLjMzYTEyLjM0NCAxMi4zNDQgMCAwIDEgMi40NDQgMi4xODZzLTIuODkzIDMuNTgtNi40NjEgMy41OGMtLjUzIDAtMS4wNDQtLjA3OC0xLjUzNy0uMjEzbC43ODgtLjc4OEEyLjY4NCAyLjY4NCAwIDAgMCA5LjA2IDQuNDQ4bDEuNDM4LTEuNDM5eiIgZmlsbD0iIzIzMUYyMCIgZmlsbC1vcGFjaXR5PSIuNTk3Ii8+PC9zdmc+"},911:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNjI1IDBBMS42MyAxLjYzIDAgMCAwIDAgMS42MjV2OS43NUExLjYzIDEuNjMgMCAwIDAgMS42MjUgMTNoNy41ODNhMS42MyAxLjYzIDAgMCAwIDEuNjI1LTEuNjI1VjMuNTY3TDcuMjY2IDBIMS42MjV6bTAgMS4wODNINi41djMuMjVoMy4yNXY3LjA0MmEuNTM1LjUzNSAwIDAgMS0uNTQyLjU0MkgxLjYyNWEuNTM1LjUzNSAwIDAgMS0uNTQyLS41NDJ2LTkuNzVjMC0uMzA1LjIzNy0uNTQyLjU0Mi0uNTQyem01Ljk1OC43NjZMOC45ODQgMy4yNWgtMS40di0xLjR6TTMuMjUgNi41djEuMDgzaDQuMzMzVjYuNUgzLjI1em0wIDIuMTY3VjkuNzVINi41VjguNjY3SDMuMjV6IiBmaWxsLW9wYWNpdHk9Ii40MDMiLz48L3N2Zz4="}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={id:i,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nc=void 0,(()=>{"use strict";var e,t,i,r,o,a={},s=[],u=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function l(e,t){for(var n in t)e[n]=t[n];return e}function c(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,n){var i,r,o,a=arguments,s={};for(o in t)"key"==o?i=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(n=[n],o=3;o<arguments.length;o++)n.push(a[o]);if(null!=n&&(s.children=n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return f(e,s,i,r,null)}function f(t,n,i,r,o){var a={type:t,props:n,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++e.__v:o};return null!=e.vnode&&e.vnode(a),a}function d(){return{current:null}}function p(e){return e.children}function g(e,t){this.props=e,this.context=t}function b(e,t){if(null==t)return e.__?b(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?b(e):null}function v(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return v(e)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!y.__r++||r!==e.debounceRendering)&&((r=e.debounceRendering)||i)(y)}function y(){for(var e;y.__r=t.length;)e=t.sort((function(e,t){return e.__v.__b-t.__v.__b})),t=[],e.some((function(e){var t,n,i,r,o,a;e.__d&&(o=(r=(t=e).__v).__e,(a=t.__P)&&(n=[],(i=l({},r)).__v=r.__v+1,k(a,r,i,t.__n,void 0!==a.ownerSVGElement,null!=r.__h?[o]:null,n,null==o?b(r):o,r.__h),z(n,r),r.__e!=o&&v(r)))}))}function C(e,t,n,i,r,o,u,l,c,h){var d,g,v,m,y,C,_,A=i&&i.__k||s,S=A.length;for(n.__k=[],d=0;d<t.length;d++)if(null!=(m=n.__k[d]=null==(m=t[d])||"boolean"==typeof m?null:"string"==typeof m||"number"==typeof m||"bigint"==typeof m?f(null,m,null,null,m):Array.isArray(m)?f(p,{children:m},null,null,null):m.__b>0?f(m.type,m.props,m.key,null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(v=A[d])||v&&m.key==v.key&&m.type===v.type)A[d]=void 0;else for(g=0;g<S;g++){if((v=A[g])&&m.key==v.key&&m.type===v.type){A[g]=void 0;break}v=null}k(e,m,v=v||a,r,o,u,l,c,h),y=m.__e,(g=m.ref)&&v.ref!=g&&(_||(_=[]),v.ref&&_.push(v.ref,null,m),_.push(g,m.__c||y,m)),null!=y?(null==C&&(C=y),"function"==typeof m.type&&null!=m.__k&&m.__k===v.__k?m.__d=c=w(m,c,e):c=x(e,m,v,A,y,c),h||"option"!==n.type?"function"==typeof n.type&&(n.__d=c):e.value=""):c&&v.__e==c&&c.parentNode!=e&&(c=b(v))}for(n.__e=C,d=S;d--;)null!=A[d]&&("function"==typeof n.type&&null!=A[d].__e&&A[d].__e==n.__d&&(n.__d=b(i,d+1)),L(A[d],A[d]));if(_)for(d=0;d<_.length;d++)B(_[d],_[++d],_[++d])}function w(e,t,n){var i,r;for(i=0;i<e.__k.length;i++)(r=e.__k[i])&&(r.__=e,t="function"==typeof r.type?w(r,t,n):x(n,r,r,e.__k,r.__e,t));return t}function _(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){_(e,t)})):t.push(e)),t}function x(e,t,n,i,r,o){var a,s,u;if(void 0!==t.__d)a=t.__d,t.__d=void 0;else if(null==n||r!=o||null==r.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(r),a=null;else{for(s=o,u=0;(s=s.nextSibling)&&u<i.length;u+=2)if(s==r)break e;e.insertBefore(r,o),a=o}return void 0!==a?a:r.nextSibling}function A(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||u.test(t)?n:n+"px"}function S(e,t,n,i,r){var o;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof i&&(e.style.cssText=i=""),i)for(t in i)n&&t in n||A(e.style,t,"");if(n)for(t in n)i&&n[t]===i[t]||A(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?i||e.addEventListener(t,o?T:M,o):e.removeEventListener(t,o?T:M,o);else if("dangerouslySetInnerHTML"!==t){if(r)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function M(t){this.l[t.type+!1](e.event?e.event(t):t)}function T(t){this.l[t.type+!0](e.event?e.event(t):t)}function k(t,n,i,r,o,a,s,u,c){var h,f,d,b,v,m,y,w,_,x,A,S=n.type;if(void 0!==n.constructor)return null;null!=i.__h&&(c=i.__h,u=n.__e=i.__e,n.__h=null,a=[u]),(h=e.__b)&&h(n);try{e:if("function"==typeof S){if(w=n.props,_=(h=S.contextType)&&r[h.__c],x=h?_?_.props.value:h.__:r,i.__c?y=(f=n.__c=i.__c).__=f.__E:("prototype"in S&&S.prototype.render?n.__c=f=new S(w,x):(n.__c=f=new g(w,x),f.constructor=S,f.render=E),_&&_.sub(f),f.props=w,f.state||(f.state={}),f.context=x,f.__n=r,d=f.__d=!0,f.__h=[]),null==f.__s&&(f.__s=f.state),null!=S.getDerivedStateFromProps&&(f.__s==f.state&&(f.__s=l({},f.__s)),l(f.__s,S.getDerivedStateFromProps(w,f.__s))),b=f.props,v=f.state,d)null==S.getDerivedStateFromProps&&null!=f.componentWillMount&&f.componentWillMount(),null!=f.componentDidMount&&f.__h.push(f.componentDidMount);else{if(null==S.getDerivedStateFromProps&&w!==b&&null!=f.componentWillReceiveProps&&f.componentWillReceiveProps(w,x),!f.__e&&null!=f.shouldComponentUpdate&&!1===f.shouldComponentUpdate(w,f.__s,x)||n.__v===i.__v){f.props=w,f.state=f.__s,n.__v!==i.__v&&(f.__d=!1),f.__v=n,n.__e=i.__e,n.__k=i.__k,n.__k.forEach((function(e){e&&(e.__=n)})),f.__h.length&&s.push(f);break e}null!=f.componentWillUpdate&&f.componentWillUpdate(w,f.__s,x),null!=f.componentDidUpdate&&f.__h.push((function(){f.componentDidUpdate(b,v,m)}))}f.context=x,f.props=w,f.state=f.__s,(h=e.__r)&&h(n),f.__d=!1,f.__v=n,f.__P=t,h=f.render(f.props,f.state,f.context),f.state=f.__s,null!=f.getChildContext&&(r=l(l({},r),f.getChildContext())),d||null==f.getSnapshotBeforeUpdate||(m=f.getSnapshotBeforeUpdate(b,v)),A=null!=h&&h.type===p&&null==h.key?h.props.children:h,C(t,Array.isArray(A)?A:[A],n,i,r,o,a,s,u,c),f.base=n.__e,n.__h=null,f.__h.length&&s.push(f),y&&(f.__E=f.__=null),f.__e=!1}else null==a&&n.__v===i.__v?(n.__k=i.__k,n.__e=i.__e):n.__e=D(i.__e,n,i,r,o,a,s,c);(h=e.diffed)&&h(n)}catch(t){n.__v=null,(c||null!=a)&&(n.__e=u,n.__h=!!c,a[a.indexOf(u)]=null),e.__e(t,n,i)}}function z(t,n){e.__c&&e.__c(n,t),t.some((function(n){try{t=n.__h,n.__h=[],t.some((function(e){e.call(n)}))}catch(t){e.__e(t,n.__v)}}))}function D(e,t,n,i,r,o,u,l){var h,f,d,p,g=n.props,b=t.props,v=t.type,m=0;if("svg"===v&&(r=!0),null!=o)for(;m<o.length;m++)if((h=o[m])&&(h===e||(v?h.localName==v:3==h.nodeType))){e=h,o[m]=null;break}if(null==e){if(null===v)return document.createTextNode(b);e=r?document.createElementNS("http://www.w3.org/2000/svg",v):document.createElement(v,b.is&&b),o=null,l=!1}if(null===v)g===b||l&&e.data===b||(e.data=b);else{if(o=o&&s.slice.call(e.childNodes),f=(g=n.props||a).dangerouslySetInnerHTML,d=b.dangerouslySetInnerHTML,!l){if(null!=o)for(g={},p=0;p<e.attributes.length;p++)g[e.attributes[p].name]=e.attributes[p].value;(d||f)&&(d&&(f&&d.__html==f.__html||d.__html===e.innerHTML)||(e.innerHTML=d&&d.__html||""))}if(function(e,t,n,i,r){var o;for(o in n)"children"===o||"key"===o||o in t||S(e,o,null,n[o],i);for(o in t)r&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||n[o]===t[o]||S(e,o,t[o],n[o],i)}(e,b,g,r,l),d)t.__k=[];else if(m=t.props.children,C(e,Array.isArray(m)?m:[m],t,n,i,r&&"foreignObject"!==v,o,u,e.firstChild,l),null!=o)for(m=o.length;m--;)null!=o[m]&&c(o[m]);l||("value"in b&&void 0!==(m=b.value)&&(m!==e.value||"progress"===v&&!m)&&S(e,"value",m,g.value,!1),"checked"in b&&void 0!==(m=b.checked)&&m!==e.checked&&S(e,"checked",m,g.checked,!1))}return e}function B(t,n,i){try{"function"==typeof t?t(n):t.current=n}catch(t){e.__e(t,i)}}function L(t,n,i){var r,o,a;if(e.unmount&&e.unmount(t),(r=t.ref)&&(r.current&&r.current!==t.__e||B(r,null,n)),i||"function"==typeof t.type||(i=null!=(o=t.__e)),t.__e=t.__d=void 0,null!=(r=t.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(t){e.__e(t,n)}r.base=r.__P=null}if(r=t.__k)for(a=0;a<r.length;a++)r[a]&&L(r[a],n,i);null!=o&&c(o)}function E(e,t,n){return this.constructor(e,n)}function j(t,n,i){var r,o,u;e.__&&e.__(t,n),o=(r="function"==typeof i)?null:i&&i.__k||n.__k,u=[],k(n,t=(!r&&i||n).__k=h(p,null,[t]),o||a,a,void 0!==n.ownerSVGElement,!r&&i?[i]:o?null:n.firstChild?s.slice.call(n.childNodes):null,u,!r&&i?i:o?o.__e:n.firstChild,r),z(u,t)}function O(e,t){j(e,t,O)}function I(e,t,n){var i,r,o,a=arguments,s=l({},e.props);for(o in t)"key"==o?i=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(n=[n],o=3;o<arguments.length;o++)n.push(a[o]);return null!=n&&(s.children=n),f(e.type,s,i||e.key,r||e.ref,null)}function N(e,t,n,i){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(i):void 0})}function P(e,t,n,i,r){var o={};return Object.keys(i).forEach((function(e){o[e]=i[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,i){return i(e,t,n)||n}),o),r&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(r):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}e={__e:function(e,t){for(var n,i,r;t=t.__;)if((n=t.__c)&&!n.__)try{if((i=n.constructor)&&null!=i.getDerivedStateFromError&&(n.setState(i.getDerivedStateFromError(e)),r=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e),r=n.__d),r)return n.__E=n}catch(t){e=t}throw e},__v:0},g.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=l({},this.state),"function"==typeof e&&(e=e(l({},n),this.props)),e&&l(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),m(this))},g.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),m(this))},g.prototype.render=p,t=[],i="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,y.__r=0,o=0;const F=[];Object.freeze(F);const R={};function G(){return++at.mobxGuid}function H(e){throw U(!1,e),"X"}function U(e,t){if(!e)throw new Error("[mobx] "+(t||"An invariant failed, however the error is obfuscated because this is a production build."))}Object.freeze(R);function q(e){let t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}const V=()=>{};function W(e){return null!==e&&"object"==typeof e}function Z(e){if(null===e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}function $(e,t,n){Object.defineProperty(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function K(e,t){const n="isMobX"+e;return t.prototype[n]=!0,function(e){return W(e)&&!0===e[n]}}function Y(e){return e instanceof Map}function J(e){return e instanceof Set}function X(e){const t=new Set;for(let n in e)t.add(n);return Object.getOwnPropertySymbols(e).forEach((n=>{Object.getOwnPropertyDescriptor(e,n).enumerable&&t.add(n)})),Array.from(t)}function Q(e){return e&&e.toString?e.toString():new String(e).toString()}function ee(e){return null===e?null:"object"==typeof e?""+e:e}const te="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols?e=>Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)):Object.getOwnPropertyNames,ne=Symbol("mobx administration");class ie{constructor(e="Atom@"+G()){this.name=e,this.isPendingUnobservation=!1,this.isBeingObserved=!1,this.observers=new Set,this.diffValue=0,this.lastAccessedBy=0,this.lowestObserverState=Be.NOT_TRACKING}onBecomeObserved(){this.onBecomeObservedListeners&&this.onBecomeObservedListeners.forEach((e=>e()))}onBecomeUnobserved(){this.onBecomeUnobservedListeners&&this.onBecomeUnobservedListeners.forEach((e=>e()))}reportObserved(){return ft(this)}reportChanged(){ct(),function(e){if(e.lowestObserverState===Be.STALE)return;e.lowestObserverState=Be.STALE,e.observers.forEach((t=>{t.dependenciesState===Be.UP_TO_DATE&&(t.isTracing!==Le.NONE&&dt(t,e),t.onBecomeStale()),t.dependenciesState=Be.STALE}))}(this),ht()}toString(){return this.name}}const re=K("Atom",ie);function oe(e,t=V,n=V){const i=new ie(e);var r;return t!==V&&Bt("onBecomeObserved",i,t,r),n!==V&&Dt(i,n),i}const ae={identity:function(e,t){return e===t},structural:function(e,t){return _n(e,t)},default:function(e,t){return Object.is(e,t)},shallow:function(e,t){return _n(e,t,1)}},se=Symbol("mobx did run lazy initializers"),ue=Symbol("mobx pending decorators"),le={},ce={};function he(e,t){const n=t?le:ce;return n[e]||(n[e]={configurable:!0,enumerable:t,get(){return fe(this),this[e]},set(t){fe(this),this[e]=t}})}function fe(e){if(!0===e[se])return;const t=e[ue];if(t){$(e,se,!0);const n=[...Object.getOwnPropertySymbols(t),...Object.keys(t)];for(const i of n){const n=t[i];n.propertyCreator(e,n.prop,n.descriptor,n.decoratorTarget,n.decoratorArguments)}}}function de(e,t){return function(){let n;const i=function(i,r,o,a){if(!0===a)return t(i,r,o,i,n),null;if(!Object.prototype.hasOwnProperty.call(i,ue)){const e=i[ue];$(i,ue,Object.assign({},e))}return i[ue][r]={prop:r,propertyCreator:t,descriptor:o,decoratorTarget:i,decoratorArguments:n},he(r,e)};return pe(arguments)?(n=F,i.apply(null,arguments)):(n=Array.prototype.slice.call(arguments),i)}}function pe(e){return(2===e.length||3===e.length)&&("string"==typeof e[1]||"symbol"==typeof e[1])||4===e.length&&!0===e[3]}function ge(e,t,n){return Rt(e)?e:Array.isArray(e)?Me.array(e,{name:n}):Z(e)?Me.object(e,void 0,{name:n}):Y(e)?Me.map(e,{name:n}):J(e)?Me.set(e,{name:n}):e}function be(e){return e}function ve(e){U(e);const t=de(!0,((t,n,i,r,o)=>{const a=i?i.initializer?i.initializer.call(t):i.value:void 0;dn(t).addObservableProp(n,a,e)}));return t.enhancer=e,t}const me={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};function ye(e){return null==e?me:"string"==typeof e?{name:e,deep:!0,proxy:!0}:e}Object.freeze(me);const Ce=ve(ge),we=ve((function(e,t,n){return null==e||mn(e)||nn(e)||sn(e)||hn(e)?e:Array.isArray(e)?Me.array(e,{name:n,deep:!1}):Z(e)?Me.object(e,void 0,{name:n,deep:!1}):Y(e)?Me.map(e,{name:n,deep:!1}):J(e)?Me.set(e,{name:n,deep:!1}):H(!1)})),_e=ve(be),xe=ve((function(e,t,n){return _n(e,t)?t:e}));function Ae(e){return e.defaultDecorator?e.defaultDecorator.enhancer:!1===e.deep?be:ge}const Se={box(e,t){arguments.length>2&&Te("box");const n=ye(t);return new Xe(e,Ae(n),n.name,!0,n.equals)},array(e,t){arguments.length>2&&Te("array");const n=ye(t);return function(e,t,n="ObservableArray@"+G(),i=!1){const r=new Qt(n,t,i);o=r.values,a=ne,s=r,Object.defineProperty(o,a,{enumerable:!1,writable:!1,configurable:!0,value:s});var o,a,s;const u=new Proxy(r.values,Xt);if(r.proxy=u,e&&e.length){const t=Ye(!0);r.spliceWithArray(0,0,e),Je(t)}return u}(e,Ae(n),n.name)},map(e,t){arguments.length>2&&Te("map");const n=ye(t);return new an(e,Ae(n),n.name)},set(e,t){arguments.length>2&&Te("set");const n=ye(t);return new cn(e,Ae(n),n.name)},object(e,t,n){"string"==typeof arguments[1]&&Te("object");const i=ye(n);if(!1===i.proxy)return Et({},e,t,i);{const n=jt(i),r=function(e){const t=new Proxy(e,Vt);return e[ne].proxy=t,t}(Et({},void 0,void 0,i));return Ot(r,e,t,n),r}},ref:_e,shallow:we,deep:Ce,struct:xe},Me=function(e,t,n){if("string"==typeof arguments[1]||"symbol"==typeof arguments[1])return Ce.apply(null,arguments);if(Rt(e))return e;const i=Z(e)?Me.object(e,t,n):Array.isArray(e)?Me.array(e,t):Y(e)?Me.map(e,t):J(e)?Me.set(e,t):e;if(i!==e)return i;H(!1)};function Te(e){H(`Expected one or two arguments to observable.${e}. Did you accidentally try to use observable.${e} as decorator?`)}Object.keys(Se).forEach((e=>Me[e]=Se[e]));const ke=de(!1,((e,t,n,i,r)=>{const{get:o,set:a}=n,s=r[0]||{};dn(e).addComputedProp(e,t,Object.assign({get:o,set:a,context:e},s))})),ze=ke({equals:ae.structural}),De=function(e,t,n){if("string"==typeof t)return ke.apply(null,arguments);if(null!==e&&"object"==typeof e&&1===arguments.length)return ke.apply(null,arguments);const i="object"==typeof t?t:{};return i.get=e,i.set="function"==typeof t?t:i.set,i.name=i.name||e.name||"",new Qe(i)};var Be,Le;De.struct=ze,function(e){e[e.NOT_TRACKING=-1]="NOT_TRACKING",e[e.UP_TO_DATE=0]="UP_TO_DATE",e[e.POSSIBLY_STALE=1]="POSSIBLY_STALE",e[e.STALE=2]="STALE"}(Be||(Be={})),function(e){e[e.NONE=0]="NONE",e[e.LOG=1]="LOG",e[e.BREAK=2]="BREAK"}(Le||(Le={}));class Ee{constructor(e){this.cause=e}}function je(e){return e instanceof Ee}function Oe(e){switch(e.dependenciesState){case Be.UP_TO_DATE:return!1;case Be.NOT_TRACKING:case Be.STALE:return!0;case Be.POSSIBLY_STALE:{const t=He(!0),n=Re(),i=e.observing,r=i.length;for(let o=0;o<r;o++){const r=i[o];if(et(r)){if(at.disableErrorBoundaries)r.get();else try{r.get()}catch(u){return Ge(n),Ue(t),!0}if(e.dependenciesState===Be.STALE)return Ge(n),Ue(t),!0}}return qe(e),Ge(n),Ue(t),!1}}}function Ie(e){const t=e.observers.size>0;at.computationDepth>0&&t&&H(!1),at.allowStateChanges||!t&&"strict"!==at.enforceActions||H(!1)}function Ne(e,t,n){const i=He(!0);qe(e),e.newObserving=new Array(e.observing.length+100),e.unboundDepsCount=0,e.runId=++at.runId;const r=at.trackingDerivation;let o;if(at.trackingDerivation=e,!0===at.disableErrorBoundaries)o=t.call(n);else try{o=t.call(n)}catch(u){o=new Ee(u)}return at.trackingDerivation=r,function(e){const t=e.observing,n=e.observing=e.newObserving;let i=Be.UP_TO_DATE,r=0,o=e.unboundDepsCount;for(let a=0;a<o;a++){const e=n[a];0===e.diffValue&&(e.diffValue=1,r!==a&&(n[r]=e),r++),e.dependenciesState>i&&(i=e.dependenciesState)}n.length=r,e.newObserving=null,o=t.length;for(;o--;){const n=t[o];0===n.diffValue&&ut(n,e),n.diffValue=0}for(;r--;){const t=n[r];1===t.diffValue&&(t.diffValue=0,st(t,e))}i!==Be.UP_TO_DATE&&(e.dependenciesState=i,e.onBecomeStale())}(e),Ue(i),o}function Pe(e){const t=e.observing;e.observing=[];let n=t.length;for(;n--;)ut(t[n],e);e.dependenciesState=Be.NOT_TRACKING}function Fe(e){const t=Re();try{return e()}finally{Ge(t)}}function Re(){const e=at.trackingDerivation;return at.trackingDerivation=null,e}function Ge(e){at.trackingDerivation=e}function He(e){const t=at.allowStateReads;return at.allowStateReads=e,t}function Ue(e){at.allowStateReads=e}function qe(e){if(e.dependenciesState===Be.UP_TO_DATE)return;e.dependenciesState=Be.UP_TO_DATE;const t=e.observing;let n=t.length;for(;n--;)t[n].lowestObserverState=Be.UP_TO_DATE}let Ve=0,We=1;const Ze=Object.getOwnPropertyDescriptor((()=>{}),"name");Ze&&Ze.configurable;function $e(e,t,n){const i=function(){return Ke(e,t,n||this,arguments)};return i.isMobxAction=!0,i}function Ke(e,t,n,i){const r=function(e,t,n){const i=!1;let r=0;0;const o=Re();ct();const a=Ye(!0),s=He(!0),u={prevDerivation:o,prevAllowStateChanges:a,prevAllowStateReads:s,notifySpy:i,startTime:r,actionId:We++,parentActionId:Ve};return Ve=u.actionId,u}();try{return t.apply(n,i)}catch(o){throw r.error=o,o}finally{!function(e){Ve!==e.actionId&&H("invalid action stack. did you forget to finish an action?");Ve=e.parentActionId,void 0!==e.error&&(at.suppressReactionErrors=!0);Je(e.prevAllowStateChanges),Ue(e.prevAllowStateReads),ht(),Ge(e.prevDerivation),e.notifySpy;at.suppressReactionErrors=!1}(r)}}function Ye(e){const t=at.allowStateChanges;return at.allowStateChanges=e,t}function Je(e){at.allowStateChanges=e}class Xe extends ie{constructor(e,t,n="ObservableValue@"+G(),i=!0,r=ae.default){super(n),this.enhancer=t,this.name=n,this.equals=r,this.hasUnreportedChange=!1,this.value=t(e,void 0,n)}dehanceValue(e){return void 0!==this.dehancer?this.dehancer(e):e}set(e){this.value;if((e=this.prepareNewValue(e))!==at.UNCHANGED){0,this.setNewValue(e)}}prepareNewValue(e){if(Ie(this),Wt(this)){const t=$t(this,{object:this,type:"update",newValue:e});if(!t)return at.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value,this.name),this.equals(this.value,e)?at.UNCHANGED:e}setNewValue(e){const t=this.value;this.value=e,this.reportChanged(),Kt(this)&&Jt(this,{type:"update",object:this,newValue:e,oldValue:t})}get(){return this.reportObserved(),this.dehanceValue(this.value)}intercept(e){return Zt(this,e)}observe(e,t){return t&&e({object:this,type:"update",newValue:this.value,oldValue:void 0}),Yt(this,e)}toJSON(){return this.get()}toString(){return`${this.name}[${this.value}]`}valueOf(){return ee(this.get())}[Symbol.toPrimitive](){return this.valueOf()}}K("ObservableValue",Xe);class Qe{constructor(e){this.dependenciesState=Be.NOT_TRACKING,this.observing=[],this.newObserving=null,this.isBeingObserved=!1,this.isPendingUnobservation=!1,this.observers=new Set,this.diffValue=0,this.runId=0,this.lastAccessedBy=0,this.lowestObserverState=Be.UP_TO_DATE,this.unboundDepsCount=0,this.__mapid="#"+G(),this.value=new Ee(null),this.isComputing=!1,this.isRunningSetter=!1,this.isTracing=Le.NONE,U(e.get,"missing option for computed: get"),this.derivation=e.get,this.name=e.name||"ComputedValue@"+G(),e.set&&(this.setter=$e(this.name+"-setter",e.set)),this.equals=e.equals||(e.compareStructural||e.struct?ae.structural:ae.default),this.scope=e.context,this.requiresReaction=!!e.requiresReaction,this.keepAlive=!!e.keepAlive}onBecomeStale(){!function(e){if(e.lowestObserverState!==Be.UP_TO_DATE)return;e.lowestObserverState=Be.POSSIBLY_STALE,e.observers.forEach((t=>{t.dependenciesState===Be.UP_TO_DATE&&(t.dependenciesState=Be.POSSIBLY_STALE,t.isTracing!==Le.NONE&&dt(t,e),t.onBecomeStale())}))}(this)}onBecomeObserved(){this.onBecomeObservedListeners&&this.onBecomeObservedListeners.forEach((e=>e()))}onBecomeUnobserved(){this.onBecomeUnobservedListeners&&this.onBecomeUnobservedListeners.forEach((e=>e()))}get(){this.isComputing&&H(`Cycle detected in computation ${this.name}: ${this.derivation}`),0!==at.inBatch||0!==this.observers.size||this.keepAlive?(ft(this),Oe(this)&&this.trackAndCompute()&&function(e){if(e.lowestObserverState===Be.STALE)return;e.lowestObserverState=Be.STALE,e.observers.forEach((t=>{t.dependenciesState===Be.POSSIBLY_STALE?t.dependenciesState=Be.STALE:t.dependenciesState===Be.UP_TO_DATE&&(e.lowestObserverState=Be.UP_TO_DATE)}))}(this)):Oe(this)&&(this.warnAboutUntrackedRead(),ct(),this.value=this.computeValue(!1),ht());const e=this.value;if(je(e))throw e.cause;return e}peek(){const e=this.computeValue(!1);if(je(e))throw e.cause;return e}set(e){if(this.setter){U(!this.isRunningSetter,`The setter of computed value '${this.name}' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`),this.isRunningSetter=!0;try{this.setter.call(this.scope,e)}finally{this.isRunningSetter=!1}}else U(!1,!1)}trackAndCompute(){const e=this.value,t=this.dependenciesState===Be.NOT_TRACKING,n=this.computeValue(!0),i=t||je(e)||je(n)||!this.equals(e,n);return i&&(this.value=n),i}computeValue(e){let t;if(this.isComputing=!0,at.computationDepth++,e)t=Ne(this,this.derivation,this.scope);else if(!0===at.disableErrorBoundaries)t=this.derivation.call(this.scope);else try{t=this.derivation.call(this.scope)}catch(u){t=new Ee(u)}return at.computationDepth--,this.isComputing=!1,t}suspend(){this.keepAlive||(Pe(this),this.value=void 0)}observe(e,t){let n,i=!0;return Tt((()=>{let r=this.get();if(!i||t){const t=Re();e({type:"update",object:this,newValue:r,oldValue:n}),Ge(t)}i=!1,n=r}))}warnAboutUntrackedRead(){}toJSON(){return this.get()}toString(){return`${this.name}[${this.derivation.toString()}]`}valueOf(){return ee(this.get())}[Symbol.toPrimitive](){return this.valueOf()}}const et=K("ComputedValue",Qe);class tt{constructor(){this.version=5,this.UNCHANGED={},this.trackingDerivation=null,this.computationDepth=0,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!0,this.allowStateReads=!0,this.enforceActions=!1,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.computedConfigurable=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1}}const nt={};function it(){return"undefined"!=typeof window?window:"undefined"!=typeof self?self:nt}let rt=!0,ot=!1,at=function(){const e=it();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(rt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==(new tt).version&&(rt=!1),rt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new tt):(setTimeout((()=>{ot||H("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`")}),1),new tt)}();function st(e,t){e.observers.add(t),e.lowestObserverState>t.dependenciesState&&(e.lowestObserverState=t.dependenciesState)}function ut(e,t){e.observers.delete(t),0===e.observers.size&&lt(e)}function lt(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,at.pendingUnobservations.push(e))}function ct(){at.inBatch++}function ht(){if(0==--at.inBatch){vt();const e=at.pendingUnobservations;for(let t=0;t<e.length;t++){const n=e[t];n.isPendingUnobservation=!1,0===n.observers.size&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBecomeUnobserved()),n instanceof Qe&&n.suspend())}at.pendingUnobservations=[]}}function ft(e){const t=at.trackingDerivation;return null!==t?(t.runId!==e.lastAccessedBy&&(e.lastAccessedBy=t.runId,t.newObserving[t.unboundDepsCount++]=e,e.isBeingObserved||(e.isBeingObserved=!0,e.onBecomeObserved())),!0):(0===e.observers.size&&at.inBatch>0&&lt(e),!1)}function dt(e,t){if(console.log(`[mobx.trace] '${e.name}' is invalidated due to a change in: '${t.name}'`),e.isTracing===Le.BREAK){const n=[];pt(It(e),n,1),new Function(`debugger;\n/*\nTracing '${e.name}'\n\nYou are entering this break point because derivation '${e.name}' is being traced and '${t.name}' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n${e instanceof Qe?e.derivation.toString().replace(/[*]\//g,"/"):""}\n\nThe dependencies for this derivation are:\n\n${n.join("\n")}\n*/\n    `)()}}function pt(e,t,n){t.length>=1e3?t.push("(and many more)"):(t.push(`${new Array(n).join("\t")}${e.name}`),e.dependencies&&e.dependencies.forEach((e=>pt(e,t,n+1))))}class gt{constructor(e="Reaction@"+G(),t,n,i=!1){this.name=e,this.onInvalidate=t,this.errorHandler=n,this.requiresObservable=i,this.observing=[],this.newObserving=[],this.dependenciesState=Be.NOT_TRACKING,this.diffValue=0,this.runId=0,this.unboundDepsCount=0,this.__mapid="#"+G(),this.isDisposed=!1,this._isScheduled=!1,this._isTrackPending=!1,this._isRunning=!1,this.isTracing=Le.NONE}onBecomeStale(){this.schedule()}schedule(){this._isScheduled||(this._isScheduled=!0,at.pendingReactions.push(this),vt())}isScheduled(){return this._isScheduled}runReaction(){if(!this.isDisposed){if(ct(),this._isScheduled=!1,Oe(this)){this._isTrackPending=!0;try{this.onInvalidate(),this._isTrackPending}catch(u){this.reportExceptionInDerivation(u)}}ht()}}track(e){if(this.isDisposed)return;ct();this._isRunning=!0;const t=Ne(this,e,void 0);this._isRunning=!1,this._isTrackPending=!1,this.isDisposed&&Pe(this),je(t)&&this.reportExceptionInDerivation(t.cause),ht()}reportExceptionInDerivation(e){if(this.errorHandler)return void this.errorHandler(e,this);if(at.disableErrorBoundaries)throw e;const t=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`;at.suppressReactionErrors?console.warn(`[mobx] (error in reaction '${this.name}' suppressed, fix error of causing action below)`):console.error(t,e),at.globalReactionErrorHandlers.forEach((t=>t(e,this)))}dispose(){this.isDisposed||(this.isDisposed=!0,this._isRunning||(ct(),Pe(this),ht()))}getDisposer(){const e=this.dispose.bind(this);return e[ne]=this,e}toString(){return`Reaction[${this.name}]`}trace(e=!1){!function(...e){let t=!1;"boolean"==typeof e[e.length-1]&&(t=e.pop());const n=function(e){switch(e.length){case 0:return at.trackingDerivation;case 1:return yn(e[0]);case 2:return yn(e[0],e[1])}}(e);if(!n)return H(!1);n.isTracing===Le.NONE&&console.log(`[mobx.trace] '${n.name}' tracing enabled`);n.isTracing=t?Le.BREAK:Le.LOG}(this,e)}}let bt=e=>e();function vt(){at.inBatch>0||at.isRunningReactions||bt(mt)}function mt(){at.isRunningReactions=!0;const e=at.pendingReactions;let t=0;for(;e.length>0;){100==++t&&(console.error(`Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: ${e[0]}`),e.splice(0));let n=e.splice(0);for(let e=0,t=n.length;e<t;e++)n[e].runReaction()}at.isRunningReactions=!1}const yt=K("Reaction",gt);function Ct(e){const t=bt;bt=n=>e((()=>t(n)))}function wt(e){return console.warn("[mobx.spy] Is a no-op in production builds"),function(){}}function _t(){H(!1)}function xt(e){return function(t,n,i){if(i){if(i.value)return{value:$e(e,i.value),enumerable:!1,configurable:!0,writable:!0};const{initializer:t}=i;return{enumerable:!1,configurable:!0,writable:!0,initializer(){return $e(e,t.call(this))}}}return At(e).apply(this,arguments)}}function At(e){return function(t,n,i){Object.defineProperty(t,n,{configurable:!0,enumerable:!1,get(){},set(t){$(this,n,St(e,t))}})}}const St=function(e,t,n,i){return 1===arguments.length&&"function"==typeof e?$e(e.name||"<unnamed action>",e):2===arguments.length&&"function"==typeof t?$e(e,t):1===arguments.length&&"string"==typeof e?xt(e):!0!==i?xt(t).apply(null,arguments):void $(e,t,$e(e.name||t,n.value,this))};function Mt(e,t,n){$(e,t,$e(t,n.bind(e)))}function Tt(e,t=R){const n=t&&t.name||e.name||"Autorun@"+G();let i;if(!t.scheduler&&!t.delay)i=new gt(n,(function(){this.track(r)}),t.onError,t.requiresObservable);else{const e=zt(t);let o=!1;i=new gt(n,(()=>{o||(o=!0,e((()=>{o=!1,i.isDisposed||i.track(r)})))}),t.onError,t.requiresObservable)}function r(){e(i)}return i.schedule(),i.getDisposer()}St.bound=function(e,t,n,i){return!0===i?(Mt(e,t,n.value),null):n?{configurable:!0,enumerable:!1,get(){return Mt(this,t,n.value||n.initializer.call(this)),this[t]},set:_t}:{enumerable:!1,configurable:!0,set(e){Mt(this,t,e)},get(){}}};const kt=e=>e();function zt(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):kt}function Dt(e,t,n){return Bt("onBecomeUnobserved",e,t,n)}function Bt(e,t,n,i){const r="function"==typeof i?yn(t,n):yn(t),o="function"==typeof i?i:n,a=`${e}Listeners`;r[a]?r[a].add(o):r[a]=new Set([o]);return"function"!=typeof r[e]?H(!1):function(){const e=r[a];e&&(e.delete(o),0===e.size&&delete r[a])}}function Lt(e){const{enforceActions:t,computedRequiresReaction:n,computedConfigurable:i,disableErrorBoundaries:r,reactionScheduler:o,reactionRequiresObservable:a,observableRequiresReaction:s}=e;if(!0===e.isolateGlobalState&&((at.pendingReactions.length||at.inBatch||at.isRunningReactions)&&H("isolateGlobalState should be called before MobX is running any reactions"),ot=!0,rt&&(0==--it().__mobxInstanceCount&&(it().__mobxGlobals=void 0),at=new tt)),void 0!==t){let e;switch(t){case!0:case"observed":e=!0;break;case!1:case"never":e=!1;break;case"strict":case"always":e="strict";break;default:H(`Invalid value for 'enforceActions': '${t}', expected 'never', 'always' or 'observed'`)}at.enforceActions=e,at.allowStateChanges=!0!==e&&"strict"!==e}void 0!==n&&(at.computedRequiresReaction=!!n),void 0!==a&&(at.reactionRequiresObservable=!!a),void 0!==s&&(at.observableRequiresReaction=!!s,at.allowStateReads=!at.observableRequiresReaction),void 0!==i&&(at.computedConfigurable=!!i),void 0!==r&&(!0===r&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),at.disableErrorBoundaries=!!r),o&&Ct(o)}function Et(e,t,n,i){const r=jt(i=ye(i));return fe(e),dn(e,i.name,r.enhancer),t&&Ot(e,t,n,r),e}function jt(e){return e.defaultDecorator||(!1===e.deep?_e:Ce)}function Ot(e,t,n,i){ct();try{const r=te(t);for(const o of r){const r=Object.getOwnPropertyDescriptor(t,o);0;0;const a=(n&&o in n?n[o]:r.get?ke:i)(e,o,r,!0);a&&Object.defineProperty(e,o,a)}}finally{ht()}}function It(e,t){return Nt(yn(e,t))}function Nt(e){const t={name:e.name};return e.observing&&e.observing.length>0&&(t.dependencies=function(e){const t=[];return e.forEach((e=>{-1===t.indexOf(e)&&t.push(e)})),t}(e.observing).map(Nt)),t}function Pt(){this.message="FLOW_CANCELLED"}function Ft(e,t){return null!=e&&(void 0!==t?!!mn(e)&&e[ne].values.has(t):mn(e)||!!e[ne]||re(e)||yt(e)||et(e))}function Rt(e){return 1!==arguments.length&&H(!1),Ft(e)}function Gt(e,t,n){if(2!==arguments.length||hn(e))if(mn(e)){const i=e[ne];i.values.get(t)?i.write(t,n):i.addObservableProp(t,n,i.defaultEnhancer)}else if(sn(e))e.set(t,n);else if(hn(e))e.add(t);else{if(!nn(e))return H(!1);"number"!=typeof t&&(t=parseInt(t,10)),U(t>=0,`Not a valid index: '${t}'`),ct(),t>=e.length&&(e.length=t+1),e[t]=n,ht()}else{ct();const n=t;try{for(let t in n)Gt(e,t,n[t])}finally{ht()}}}Pt.prototype=Object.create(Error.prototype);function Ht(e,t){ct();try{return e.apply(t)}finally{ht()}}function Ut(e){return e[ne]}function qt(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e}const Vt={has(e,t){if(t===ne||"constructor"===t||t===se)return!0;const n=Ut(e);return qt(t)?n.has(t):t in e},get(e,t){if(t===ne||"constructor"===t||t===se)return e[t];const n=Ut(e),i=n.values.get(t);if(i instanceof ie){const e=i.get();return void 0===e&&n.has(t),e}return qt(t)&&n.has(t),e[t]},set:(e,t,n)=>!!qt(t)&&(Gt(e,t,n),!0),deleteProperty(e,t){if(!qt(t))return!1;return Ut(e).remove(t),!0},ownKeys:e=>(Ut(e).keysAtom.reportObserved(),Reflect.ownKeys(e)),preventExtensions:e=>(H("Dynamic observable objects cannot be frozen"),!1)};function Wt(e){return void 0!==e.interceptors&&e.interceptors.length>0}function Zt(e,t){const n=e.interceptors||(e.interceptors=[]);return n.push(t),q((()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function $t(e,t){const n=Re();try{const i=[...e.interceptors||[]];for(let e=0,n=i.length;e<n&&(t=i[e](t),U(!t||t.type,"Intercept handlers should return nothing or a change object"),t);e++);return t}finally{Ge(n)}}function Kt(e){return void 0!==e.changeListeners&&e.changeListeners.length>0}function Yt(e,t){const n=e.changeListeners||(e.changeListeners=[]);return n.push(t),q((()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function Jt(e,t){const n=Re();let i=e.changeListeners;if(i){i=i.slice();for(let e=0,n=i.length;e<n;e++)i[e](t);Ge(n)}}const Xt={get:(e,t)=>t===ne?e[ne]:"length"===t?e[ne].getArrayLength():"number"==typeof t?en.get.call(e,t):"string"!=typeof t||isNaN(t)?en.hasOwnProperty(t)?en[t]:e[t]:en.get.call(e,parseInt(t)),set:(e,t,n)=>("length"===t&&e[ne].setArrayLength(n),"number"==typeof t&&en.set.call(e,t,n),"symbol"==typeof t||isNaN(t)?e[t]=n:en.set.call(e,parseInt(t),n),!0),preventExtensions:e=>(H("Observable arrays cannot be frozen"),!1)};class Qt{constructor(e,t,n){this.owned=n,this.values=[],this.proxy=void 0,this.lastKnownLength=0,this.atom=new ie(e||"ObservableArray@"+G()),this.enhancer=(n,i)=>t(n,i,e+"[..]")}dehanceValue(e){return void 0!==this.dehancer?this.dehancer(e):e}dehanceValues(e){return void 0!==this.dehancer&&e.length>0?e.map(this.dehancer):e}intercept(e){return Zt(this,e)}observe(e,t=!1){return t&&e({object:this.proxy,type:"splice",index:0,added:this.values.slice(),addedCount:this.values.length,removed:[],removedCount:0}),Yt(this,e)}getArrayLength(){return this.atom.reportObserved(),this.values.length}setArrayLength(e){if("number"!=typeof e||e<0)throw new Error("[mobx.array] Out of range: "+e);let t=this.values.length;if(e!==t)if(e>t){const n=new Array(e-t);for(let i=0;i<e-t;i++)n[i]=void 0;this.spliceWithArray(t,0,n)}else this.spliceWithArray(e,t-e)}updateArrayLength(e,t){if(e!==this.lastKnownLength)throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed.");this.lastKnownLength+=t}spliceWithArray(e,t,n){Ie(this.atom);const i=this.values.length;if(void 0===e?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=1===arguments.length?i-e:null==t?0:Math.max(0,Math.min(t,i-e)),void 0===n&&(n=F),Wt(this)){const i=$t(this,{object:this.proxy,type:"splice",index:e,removedCount:t,added:n});if(!i)return F;t=i.removedCount,n=i.added}n=0===n.length?n:n.map((e=>this.enhancer(e,void 0)));const r=this.spliceItemsIntoValues(e,t,n);return 0===t&&0===n.length||this.notifyArraySplice(e,n,r),this.dehanceValues(r)}spliceItemsIntoValues(e,t,n){if(n.length<1e4)return this.values.splice(e,t,...n);{const i=this.values.slice(e,e+t);return this.values=this.values.slice(0,e).concat(n,this.values.slice(e+t)),i}}notifyArrayChildUpdate(e,t,n){const i=!this.owned&&!1,r=Kt(this),o=r||i?{object:this.proxy,type:"update",index:e,newValue:t,oldValue:n}:null;this.atom.reportChanged(),r&&Jt(this,o)}notifyArraySplice(e,t,n){const i=!this.owned&&!1,r=Kt(this),o=r||i?{object:this.proxy,type:"splice",index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.atom.reportChanged(),r&&Jt(this,o)}}const en={intercept(e){return this[ne].intercept(e)},observe(e,t=!1){return this[ne].observe(e,t)},clear(){return this.splice(0)},replace(e){const t=this[ne];return t.spliceWithArray(0,t.values.length,e)},toJS(){return this.slice()},toJSON(){return this.toJS()},splice(e,t,...n){const i=this[ne];switch(arguments.length){case 0:return[];case 1:return i.spliceWithArray(e);case 2:return i.spliceWithArray(e,t)}return i.spliceWithArray(e,t,n)},spliceWithArray(e,t,n){return this[ne].spliceWithArray(e,t,n)},push(...e){const t=this[ne];return t.spliceWithArray(t.values.length,0,e),t.values.length},pop(){return this.splice(Math.max(this[ne].values.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){const t=this[ne];return t.spliceWithArray(0,0,e),t.values.length},reverse(){const e=this.slice();return e.reverse.apply(e,arguments)},sort(e){const t=this.slice();return t.sort.apply(t,arguments)},remove(e){const t=this[ne],n=t.dehanceValues(t.values).indexOf(e);return n>-1&&(this.splice(n,1),!0)},get(e){const t=this[ne];if(t){if(e<t.values.length)return t.atom.reportObserved(),t.dehanceValue(t.values[e]);console.warn(`[mobx.array] Attempt to read an array index (${e}) that is out of bounds (${t.values.length}). Please check length first. Out of bound indices will not be tracked by MobX`)}},set(e,t){const n=this[ne],i=n.values;if(e<i.length){Ie(n.atom);const r=i[e];if(Wt(n)){const i=$t(n,{type:"update",object:n.proxy,index:e,newValue:t});if(!i)return;t=i.newValue}(t=n.enhancer(t,r))!==r&&(i[e]=t,n.notifyArrayChildUpdate(e,t,r))}else{if(e!==i.length)throw new Error(`[mobx.array] Index out of bounds, ${e} is larger than ${i.length}`);n.spliceWithArray(e,0,[t])}}};["concat","flat","includes","indexOf","join","lastIndexOf","slice","toString","toLocaleString"].forEach((e=>{"function"==typeof Array.prototype[e]&&(en[e]=function(){const t=this[ne];t.atom.reportObserved();const n=t.dehanceValues(t.values);return n[e].apply(n,arguments)})})),["every","filter","find","findIndex","flatMap","forEach","map","some"].forEach((e=>{"function"==typeof Array.prototype[e]&&(en[e]=function(t,n){const i=this[ne];i.atom.reportObserved();return i.dehanceValues(i.values)[e](((e,i)=>t.call(n,e,i,this)),n)})})),["reduce","reduceRight"].forEach((e=>{en[e]=function(){const t=this[ne];t.atom.reportObserved();const n=arguments[0];return arguments[0]=(e,i,r)=>(i=t.dehanceValue(i),n(e,i,r,this)),t.values[e].apply(t.values,arguments)}}));const tn=K("ObservableArrayAdministration",Qt);function nn(e){return W(e)&&tn(e[ne])}var rn;const on={};class an{constructor(e,t=ge,n="ObservableMap@"+G()){if(this.enhancer=t,this.name=n,this[rn]=on,this._keysAtom=oe(`${this.name}.keys()`),this[Symbol.toStringTag]="Map","function"!=typeof Map)throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");this._data=new Map,this._hasMap=new Map,this.merge(e)}_has(e){return this._data.has(e)}has(e){if(!at.trackingDerivation)return this._has(e);let t=this._hasMap.get(e);if(!t){const n=t=new Xe(this._has(e),be,`${this.name}.${Q(e)}?`,!1);this._hasMap.set(e,n),Dt(n,(()=>this._hasMap.delete(e)))}return t.get()}set(e,t){const n=this._has(e);if(Wt(this)){const i=$t(this,{type:n?"update":"add",object:this,newValue:t,name:e});if(!i)return this;t=i.newValue}return n?this._updateValue(e,t):this._addValue(e,t),this}delete(e){if(Ie(this._keysAtom),Wt(this)){if(!$t(this,{type:"delete",object:this,name:e}))return!1}if(this._has(e)){const t=!1,n=Kt(this),i=n||t?{type:"delete",object:this,oldValue:this._data.get(e).value,name:e}:null;return Ht((()=>{this._keysAtom.reportChanged(),this._updateHasMapEntry(e,!1);this._data.get(e).setNewValue(void 0),this._data.delete(e)})),n&&Jt(this,i),!0}return!1}_updateHasMapEntry(e,t){let n=this._hasMap.get(e);n&&n.setNewValue(t)}_updateValue(e,t){const n=this._data.get(e);if((t=n.prepareNewValue(t))!==at.UNCHANGED){const i=!1,r=Kt(this),o=r||i?{type:"update",object:this,oldValue:n.value,name:e,newValue:t}:null;0,n.setNewValue(t),r&&Jt(this,o)}}_addValue(e,t){Ie(this._keysAtom),Ht((()=>{const n=new Xe(t,this.enhancer,`${this.name}.${Q(e)}`,!1);this._data.set(e,n),t=n.value,this._updateHasMapEntry(e,!0),this._keysAtom.reportChanged()}));const n=!1,i=Kt(this);i&&Jt(this,i?{type:"add",object:this,name:e,newValue:t}:null)}get(e){return this.has(e)?this.dehanceValue(this._data.get(e).get()):this.dehanceValue(void 0)}dehanceValue(e){return void 0!==this.dehancer?this.dehancer(e):e}keys(){return this._keysAtom.reportObserved(),this._data.keys()}values(){const e=this,t=this.keys();return Mn({next(){const{done:n,value:i}=t.next();return{done:n,value:n?void 0:e.get(i)}}})}entries(){const e=this,t=this.keys();return Mn({next(){const{done:n,value:i}=t.next();return{done:n,value:n?void 0:[i,e.get(i)]}}})}[(rn=ne,Symbol.iterator)](){return this.entries()}forEach(e,t){for(const[n,i]of this)e.call(t,i,n,this)}merge(e){return sn(e)&&(e=e.toJS()),Ht((()=>{const t=Ye(!0);try{Z(e)?X(e).forEach((t=>this.set(t,e[t]))):Array.isArray(e)?e.forEach((([e,t])=>this.set(e,t))):Y(e)?(e.constructor!==Map&&H("Cannot initialize from classes that inherit from Map: "+e.constructor.name),e.forEach(((e,t)=>this.set(t,e)))):null!=e&&H("Cannot initialize map from "+e)}finally{Je(t)}})),this}clear(){Ht((()=>{Fe((()=>{for(const e of this.keys())this.delete(e)}))}))}replace(e){return Ht((()=>{const t=function(e){if(Y(e)||sn(e))return e;if(Array.isArray(e))return new Map(e);if(Z(e)){const t=new Map;for(const n in e)t.set(n,e[n]);return t}return H(`Cannot convert to map from '${e}'`)}(e),n=new Map;let i=!1;for(const e of this._data.keys())if(!t.has(e)){if(this.delete(e))i=!0;else{const t=this._data.get(e);n.set(e,t)}}for(const[e,r]of t.entries()){const t=this._data.has(e);if(this.set(e,r),this._data.has(e)){const r=this._data.get(e);n.set(e,r),t||(i=!0)}}if(!i)if(this._data.size!==n.size)this._keysAtom.reportChanged();else{const e=this._data.keys(),t=n.keys();let i=e.next(),r=t.next();for(;!i.done;){if(i.value!==r.value){this._keysAtom.reportChanged();break}i=e.next(),r=t.next()}}this._data=n})),this}get size(){return this._keysAtom.reportObserved(),this._data.size}toPOJO(){const e={};for(const[t,n]of this)e["symbol"==typeof t?t:Q(t)]=n;return e}toJS(){return new Map(this)}toJSON(){return this.toPOJO()}toString(){return this.name+"[{ "+Array.from(this.keys()).map((e=>`${Q(e)}: ${""+this.get(e)}`)).join(", ")+" }]"}observe(e,t){return Yt(this,e)}intercept(e){return Zt(this,e)}}const sn=K("ObservableMap",an);var un;const ln={};class cn{constructor(e,t=ge,n="ObservableSet@"+G()){if(this.name=n,this[un]=ln,this._data=new Set,this._atom=oe(this.name),this[Symbol.toStringTag]="Set","function"!=typeof Set)throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");this.enhancer=(e,i)=>t(e,i,n),e&&this.replace(e)}dehanceValue(e){return void 0!==this.dehancer?this.dehancer(e):e}clear(){Ht((()=>{Fe((()=>{for(const e of this._data.values())this.delete(e)}))}))}forEach(e,t){for(const n of this)e.call(t,n,n,this)}get size(){return this._atom.reportObserved(),this._data.size}add(e){if(Ie(this._atom),Wt(this)){if(!$t(this,{type:"add",object:this,newValue:e}))return this}if(!this.has(e)){Ht((()=>{this._data.add(this.enhancer(e,void 0)),this._atom.reportChanged()}));const t=!1,n=Kt(this),i=n||t?{type:"add",object:this,newValue:e}:null;0,n&&Jt(this,i)}return this}delete(e){if(Wt(this)){if(!$t(this,{type:"delete",object:this,oldValue:e}))return!1}if(this.has(e)){const t=!1,n=Kt(this),i=n||t?{type:"delete",object:this,oldValue:e}:null;return Ht((()=>{this._atom.reportChanged(),this._data.delete(e)})),n&&Jt(this,i),!0}return!1}has(e){return this._atom.reportObserved(),this._data.has(this.dehanceValue(e))}entries(){let e=0;const t=Array.from(this.keys()),n=Array.from(this.values());return Mn({next(){const i=e;return e+=1,i<n.length?{value:[t[i],n[i]],done:!1}:{done:!0}}})}keys(){return this.values()}values(){this._atom.reportObserved();const e=this;let t=0;const n=Array.from(this._data.values());return Mn({next:()=>t<n.length?{value:e.dehanceValue(n[t++]),done:!1}:{done:!0}})}replace(e){return hn(e)&&(e=e.toJS()),Ht((()=>{const t=Ye(!0);try{Array.isArray(e)||J(e)?(this.clear(),e.forEach((e=>this.add(e)))):null!=e&&H("Cannot initialize set from "+e)}finally{Je(t)}})),this}observe(e,t){return Yt(this,e)}intercept(e){return Zt(this,e)}toJS(){return new Set(this)}toString(){return this.name+"[ "+Array.from(this).join(", ")+" ]"}[(un=ne,Symbol.iterator)](){return this.values()}}const hn=K("ObservableSet",cn);class fn{constructor(e,t=new Map,n,i){this.target=e,this.values=t,this.name=n,this.defaultEnhancer=i,this.keysAtom=new ie(n+".keys")}read(e){return this.values.get(e).get()}write(e,t){const n=this.target,i=this.values.get(e);if(i instanceof Qe)i.set(t);else{if(Wt(this)){const i=$t(this,{type:"update",object:this.proxy||n,name:e,newValue:t});if(!i)return;t=i.newValue}if((t=i.prepareNewValue(t))!==at.UNCHANGED){const r=Kt(this),o=!1,a=r||o?{type:"update",object:this.proxy||n,oldValue:i.value,name:e,newValue:t}:null;0,i.setNewValue(t),r&&Jt(this,a)}}}has(e){const t=this.pendingKeys||(this.pendingKeys=new Map);let n=t.get(e);if(n)return n.get();{const i=!!this.values.get(e);return n=new Xe(i,be,`${this.name}.${Q(e)}?`,!1),t.set(e,n),n.get()}}addObservableProp(e,t,n=this.defaultEnhancer){const{target:i}=this;if(Wt(this)){const n=$t(this,{object:this.proxy||i,name:e,type:"add",newValue:t});if(!n)return;t=n.newValue}const r=new Xe(t,n,`${this.name}.${Q(e)}`,!1);this.values.set(e,r),t=r.value,Object.defineProperty(i,e,function(e){return pn[e]||(pn[e]={configurable:!0,enumerable:!0,get(){return this[ne].read(e)},set(t){this[ne].write(e,t)}})}(e)),this.notifyPropertyAddition(e,t)}addComputedProp(e,t,n){const{target:i}=this;n.name=n.name||`${this.name}.${Q(t)}`,this.values.set(t,new Qe(n)),(e===i||function(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!n||!1!==n.configurable&&!1!==n.writable}(e,t))&&Object.defineProperty(e,t,function(e){return gn[e]||(gn[e]={configurable:at.computedConfigurable,enumerable:!1,get(){return bn(this).read(e)},set(t){bn(this).write(e,t)}})}(t))}remove(e){if(!this.values.has(e))return;const{target:t}=this;if(Wt(this)){if(!$t(this,{object:this.proxy||t,name:e,type:"remove"}))return}try{ct();const n=Kt(this),i=!1,r=this.values.get(e),o=r&&r.get();if(r&&r.set(void 0),this.keysAtom.reportChanged(),this.values.delete(e),this.pendingKeys){const t=this.pendingKeys.get(e);t&&t.set(!1)}delete this.target[e];const a=n||i?{type:"remove",object:this.proxy||t,oldValue:o,name:e}:null;0,n&&Jt(this,a)}finally{ht()}}illegalAccess(e,t){console.warn(`Property '${t}' of '${e}' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner`)}observe(e,t){return Yt(this,e)}intercept(e){return Zt(this,e)}notifyPropertyAddition(e,t){const n=Kt(this),i=n?{type:"add",object:this.proxy||this.target,name:e,newValue:t}:null;if(n&&Jt(this,i),this.pendingKeys){const t=this.pendingKeys.get(e);t&&t.set(!0)}this.keysAtom.reportChanged()}getKeys(){this.keysAtom.reportObserved();const e=[];for(const[t,n]of this.values)n instanceof Xe&&e.push(t);return e}}function dn(e,t="",n=ge){if(Object.prototype.hasOwnProperty.call(e,ne))return e[ne];Z(e)||(t=(e.constructor.name||"ObservableObject")+"@"+G()),t||(t="ObservableObject@"+G());const i=new fn(e,new Map,Q(t),n);return $(e,ne,i),i}const pn=Object.create(null),gn=Object.create(null);function bn(e){const t=e[ne];return t||(fe(e),e[ne])}const vn=K("ObservableObjectAdministration",fn);function mn(e){return!!W(e)&&(fe(e),vn(e[ne]))}function yn(e,t){if("object"==typeof e&&null!==e){if(nn(e))return void 0!==t&&H(!1),e[ne].atom;if(hn(e))return e[ne];if(sn(e)){const n=e;if(void 0===t)return n._keysAtom;const i=n._data.get(t)||n._hasMap.get(t);return i||H(!1),i}if(fe(e),t&&!e[ne]&&e[t],mn(e)){if(!t)return H(!1);const n=e[ne].values.get(t);return n||H(!1),n}if(re(e)||et(e)||yt(e))return e}else if("function"==typeof e&&yt(e[ne]))return e[ne];return H(!1)}function Cn(e,t){return e||H("Expecting some object"),void 0!==t?Cn(yn(e,t)):re(e)||et(e)||yt(e)||sn(e)||hn(e)?e:(fe(e),e[ne]?e[ne]:void H(!1))}const wn=Object.prototype.toString;function _n(e,t,n=-1){return xn(e,t,n)}function xn(e,t,n,i,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;const o=typeof e;if("function"!==o&&"object"!==o&&"object"!=typeof t)return!1;const a=wn.call(e);if(a!==wn.call(t))return!1;switch(a){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return"undefined"!=typeof Symbol&&Symbol.valueOf.call(e)===Symbol.valueOf.call(t);case"[object Map]":case"[object Set]":n>=0&&n++}e=An(e),t=An(t);const s="[object Array]"===a;if(!s){if("object"!=typeof e||"object"!=typeof t)return!1;const n=e.constructor,i=t.constructor;if(n!==i&&!("function"==typeof n&&n instanceof n&&"function"==typeof i&&i instanceof i)&&"constructor"in e&&"constructor"in t)return!1}if(0===n)return!1;n<0&&(n=-1),r=r||[];let u=(i=i||[]).length;for(;u--;)if(i[u]===e)return r[u]===t;if(i.push(e),r.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!xn(e[u],t[u],n-1,i,r))return!1}else{const o=Object.keys(e);let a;if(u=o.length,Object.keys(t).length!==u)return!1;for(;u--;)if(a=o[u],!Sn(t,a)||!xn(e[a],t[a],n-1,i,r))return!1}return i.pop(),r.pop(),!0}function An(e){return nn(e)?e.slice():Y(e)||sn(e)||J(e)||hn(e)?Array.from(e.entries()):e}function Sn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Mn(e){return e[Symbol.iterator]=Tn,e}function Tn(){return this}if("undefined"==typeof Proxy||"undefined"==typeof Symbol)throw new Error("[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.");function kn(e){return"number"==typeof e.parsedSize}function zn(e,t){for(const n of e){if(!1===t(n))return!1;if(n.groups&&!1===zn(n.groups,t))return!1}}"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:wt,extras:{getDebugName:function(e,t){let n;return n=void 0!==t?yn(e,t):mn(e)||sn(e)||hn(e)?Cn(e):yn(e),n.name}},$mobx:ne});const Dn={getItem(e){try{return JSON.parse(window.localStorage.getItem(`wba.${e}`))}catch(t){return null}},setItem(e,t){try{window.localStorage.setItem(`wba.${e}`,JSON.stringify(t))}catch(n){}},removeItem(e){try{window.localStorage.removeItem(`wba.${e}`)}catch(t){}}};var Bn,Ln,En,jn,On,In,Nn,Pn,Fn;const Rn=new(Bn=Me.ref,Ln=Me.shallow,jn=P((En=class{constructor(){this.cid=0,this.sizes=new Set(["statSize","parsedSize","gzipSize"]),N(this,"allChunks",jn,this),N(this,"selectedChunks",On,this),N(this,"searchQuery",In,this),N(this,"defaultSize",Nn,this),N(this,"selectedSize",Pn,this),N(this,"showConcatenatedModulesContent",Fn,this)}setModules(e){zn(e,(e=>{e.cid=this.cid++})),this.allChunks=e,this.selectedChunks=this.allChunks}setEntrypoints(e){this.entrypoints=e}get hasParsedSizes(){return this.allChunks.some(kn)}get activeSize(){const e=this.selectedSize||this.defaultSize;return this.hasParsedSizes&&this.sizes.has(e)?e:"statSize"}get visibleChunks(){const e=this.allChunks.filter((e=>this.selectedChunks.includes(e)));return this.filterModulesForSize(e,this.activeSize)}get allChunksSelected(){return this.visibleChunks.length===this.allChunks.length}get totalChunksSize(){return this.allChunks.reduce(((e,t)=>e+(t[this.activeSize]||0)),0)}get searchQueryRegexp(){const e=this.searchQuery.trim();if(!e)return null;try{return new RegExp(e,"iu")}catch(t){return null}}get isSearching(){return!!this.searchQueryRegexp}get foundModulesByChunk(){if(!this.isSearching)return[];const e=this.searchQueryRegexp;return this.visibleChunks.map((t=>{let n=[];zn(t.groups,(t=>{let i=0;if(e.test(t.label)?i+=3:t.path&&e.test(t.path)&&i++,!i)return;t.groups||(i+=1);(n[i-1]=n[i-1]||[]).push(t)}));const{activeSize:i}=this;return n=n.filter(Boolean).reverse(),n.forEach((e=>e.sort(((e,t)=>t[i]-e[i])))),{chunk:t,modules:[].concat(...n)}})).filter((e=>e.modules.length>0)).sort(((e,t)=>e.modules.length-t.modules.length))}get foundModules(){return this.foundModulesByChunk.reduce(((e,t)=>e.concat(t.modules)),[])}get hasFoundModules(){return this.foundModules.length>0}get hasConcatenatedModules(){let e=!1;return zn(this.visibleChunks,(t=>{if(t.concatenated)return e=!0,!1})),e}get foundModulesSize(){return this.foundModules.reduce(((e,t)=>e+t[this.activeSize]),0)}filterModulesForSize(e,t){return e.reduce(((e,n)=>{if(n[t]){if(n.groups){const e=!n.concatenated||this.showConcatenatedModulesContent;n={...n,groups:e?this.filterModulesForSize(n.groups,t):null}}n.weight=n[t],e.push(n)}return e}),[])}}).prototype,"allChunks",[Bn],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),On=P(En.prototype,"selectedChunks",[Ln],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),In=P(En.prototype,"searchQuery",[Me],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),Nn=P(En.prototype,"defaultSize",[Me],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Pn=P(En.prototype,"selectedSize",[Me],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Fn=P(En.prototype,"showConcatenatedModulesContent",[Me],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0===Dn.getItem("showConcatenatedModulesContent")}}),P(En.prototype,"hasParsedSizes",[De],Object.getOwnPropertyDescriptor(En.prototype,"hasParsedSizes"),En.prototype),P(En.prototype,"activeSize",[De],Object.getOwnPropertyDescriptor(En.prototype,"activeSize"),En.prototype),P(En.prototype,"visibleChunks",[De],Object.getOwnPropertyDescriptor(En.prototype,"visibleChunks"),En.prototype),P(En.prototype,"allChunksSelected",[De],Object.getOwnPropertyDescriptor(En.prototype,"allChunksSelected"),En.prototype),P(En.prototype,"totalChunksSize",[De],Object.getOwnPropertyDescriptor(En.prototype,"totalChunksSize"),En.prototype),P(En.prototype,"searchQueryRegexp",[De],Object.getOwnPropertyDescriptor(En.prototype,"searchQueryRegexp"),En.prototype),P(En.prototype,"isSearching",[De],Object.getOwnPropertyDescriptor(En.prototype,"isSearching"),En.prototype),P(En.prototype,"foundModulesByChunk",[De],Object.getOwnPropertyDescriptor(En.prototype,"foundModulesByChunk"),En.prototype),P(En.prototype,"foundModules",[De],Object.getOwnPropertyDescriptor(En.prototype,"foundModules"),En.prototype),P(En.prototype,"hasFoundModules",[De],Object.getOwnPropertyDescriptor(En.prototype,"hasFoundModules"),En.prototype),P(En.prototype,"hasConcatenatedModules",[De],Object.getOwnPropertyDescriptor(En.prototype,"hasConcatenatedModules"),En.prototype),P(En.prototype,"foundModulesSize",[De],Object.getOwnPropertyDescriptor(En.prototype,"foundModulesSize"),En.prototype),En);var Gn,Hn,Un,qn=n(755),Vn=n.n(qn),Wn=0,Zn=[],$n=e.__b,Kn=e.__r,Yn=e.diffed,Jn=e.__c,Xn=e.unmount;function Qn(t,n){e.__h&&e.__h(Hn,t,Wn||n),Wn=0;var i=Hn.__H||(Hn.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function ei(e){return Wn=1,ti(ci,e)}function ti(e,t,n){var i=Qn(Gn++,2);return i.t=e,i.__c||(i.__=[n?n(t):ci(void 0,t),function(e){var t=i.t(i.__[0],e);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=Hn),i.__}function ni(t,n){var i=Qn(Gn++,4);!e.__s&&li(i.__H,n)&&(i.__=t,i.__H=n,Hn.__h.push(i))}function ii(e,t){var n=Qn(Gn++,7);return li(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function ri(e,t){return Wn=8,ii((function(){return e}),t)}function oi(){Zn.forEach((function(n){if(n.__P)try{n.__H.__h.forEach(si),n.__H.__h.forEach(ui),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}})),Zn=[]}e.__b=function(e){Hn=null,$n&&$n(e)},e.__r=function(e){Kn&&Kn(e),Gn=0;var t=(Hn=e.__c).__H;t&&(t.__h.forEach(si),t.__h.forEach(ui),t.__h=[])},e.diffed=function(t){Yn&&Yn(t);var n=t.__c;n&&n.__H&&n.__H.__h.length&&(1!==Zn.push(n)&&Un===e.requestAnimationFrame||((Un=e.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(i),ai&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,100);ai&&(t=requestAnimationFrame(n))})(oi)),Hn=void 0},e.__c=function(t,n){n.some((function(t){try{t.__h.forEach(si),t.__h=t.__h.filter((function(e){return!e.__||ui(e)}))}catch(a){n.some((function(e){e.__h&&(e.__h=[])})),n=[],e.__e(a,t.__v)}})),Jn&&Jn(t,n)},e.unmount=function(t){Xn&&Xn(t);var n=t.__c;if(n&&n.__H)try{n.__H.__.forEach(si)}catch(t){e.__e(t,n.__v)}};var ai="function"==typeof requestAnimationFrame;function si(e){var t=Hn;"function"==typeof e.__c&&e.__c(),Hn=t}function ui(e){var t=Hn;e.__c=e.__(),Hn=t}function li(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ci(e,t){return"function"==typeof t?t(e):t}function hi(e,t){for(var n in t)e[n]=t[n];return e}function fi(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var i in t)if("__source"!==i&&e[i]!==t[i])return!0;return!1}function di(e){this.props=e}function pi(e,t){function n(e){var n=this.props.ref,i=n==e.ref;return!i&&n&&(n.call?n(null):n.current=null),t?!t(this.props,e)||!i:fi(this.props,e)}function i(t){return this.shouldComponentUpdate=n,h(e,t)}return i.displayName="Memo("+(e.displayName||e.name)+")",i.prototype.isReactComponent=!0,i.__f=!0,i}(di.prototype=new g).isPureReactComponent=!0,di.prototype.shouldComponentUpdate=function(e,t){return fi(this.props,e)||fi(this.state,t)};var gi=e.__b;e.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),gi&&gi(e)};var bi="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function vi(e){function t(t,n){var i=hi({},t);return delete i.ref,e(i,(n=t.ref||n)&&("object"!=typeof n||"current"in n)?n:null)}return t.$$typeof=bi,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var mi=function(e,t){return null==e?null:_(_(e).map(t))},yi={map:mi,forEach:mi,count:function(e){return e?_(e).length:0},only:function(e){var t=_(e);if(1!==t.length)throw"Children.only";return t[0]},toArray:_},Ci=e.__e;e.__e=function(e,t,n){if(e.then)for(var i,r=t;r=r.__;)if((i=r.__c)&&i.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t);Ci(e,t,n)};var wi=e.unmount;function _i(){this.__u=0,this.t=null,this.__b=null}function xi(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function Ai(){this.u=null,this.o=null}e.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),wi&&wi(e)},(_i.prototype=new g).__c=function(e,t){var n=t.__c,i=this;null==i.t&&(i.t=[]),i.t.push(n);var r=xi(i.__v),o=!1,a=function(){o||(o=!0,n.__R=null,r?r(s):s())};n.__R=a;var s=function(){if(!--i.__u){if(i.state.__e){var e=i.state.__e;i.__v.__k[0]=function e(t,n,i){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,i)})),t.__c&&t.__c.__P===n&&(t.__e&&i.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=i)),t}(e,e.__c.__P,e.__c.__O)}var t;for(i.setState({__e:i.__b=null});t=i.t.pop();)t.forceUpdate()}},u=!0===t.__h;i.__u++||u||i.setState({__e:i.__b=i.__v.__k[0]}),e.then(a,a)},_i.prototype.componentWillUnmount=function(){this.t=[]},_i.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,i){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=hi({},t)).__c&&(t.__c.__P===i&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,i)}))),t}(this.__b,n,i.__O=i.__P)}this.__b=null}var r=t.__e&&h(p,null,e.fallback);return r&&(r.__h=null),[h(p,null,t.__e?null:e.children),r]};var Si=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function Mi(e){return this.getChildContext=function(){return e.context},e.children}function Ti(e){var t=this,n=e.i;t.componentWillUnmount=function(){j(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,n){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),j(h(Mi,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(Ai.prototype=new g).__e=function(e){var t=this,n=xi(t.__v),i=t.o.get(e);return i[0]++,function(r){var o=function(){t.props.revealOrder?(i.push(r),Si(t,e,i)):r()};n?n(o):o()}},Ai.prototype.render=function(e){this.u=null,this.o=new Map;var t=_(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Ai.prototype.componentDidUpdate=Ai.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){Si(e,n,t)}))};var ki="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,zi=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Di=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};g.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(g.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var Bi=e.event;function Li(){}function Ei(){return this.cancelBubble}function ji(){return this.defaultPrevented}e.event=function(e){return Bi&&(e=Bi(e)),e.persist=Li,e.isPropagationStopped=Ei,e.isDefaultPrevented=ji,e.nativeEvent=e};var Oi,Ii={configurable:!0,get:function(){return this.class}},Ni=e.vnode;e.vnode=function(e){var t=e.type,n=e.props,i=n;if("string"==typeof t){for(var r in i={},n){var o=n[r];"value"===r&&"defaultValue"in n&&null==o||("defaultValue"===r&&"value"in n&&null==n.value?r="value":"download"===r&&!0===o?o="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!Di(n.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():zi.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),i[r]=o)}"select"==t&&i.multiple&&Array.isArray(i.value)&&(i.value=_(n.children).forEach((function(e){e.props.selected=-1!=i.value.indexOf(e.props.value)}))),"select"==t&&null!=i.defaultValue&&(i.value=_(n.children).forEach((function(e){e.props.selected=i.multiple?-1!=i.defaultValue.indexOf(e.props.value):i.defaultValue==e.props.value}))),e.props=i}t&&n.class!=n.className&&(Ii.enumerable="className"in n,null!=n.className&&(i.class=n.className),Object.defineProperty(i,"className",Ii)),e.$$typeof=ki,Ni&&Ni(e)};var Pi=e.__r;e.__r=function(e){Pi&&Pi(e),Oi=e.__c};var Fi={ReactCurrentDispatcher:{current:{readContext:function(e){return Oi.__n[e.__c].props.value}}}};"object"==typeof performance&&"function"==typeof performance.now&&performance.now.bind(performance);function Ri(e){return!!e&&e.$$typeof===ki}var Gi=function(e,t){return e(t)};const Hi={useState:ei,useReducer:ti,useEffect:function(t,n){var i=Qn(Gn++,3);!e.__s&&li(i.__H,n)&&(i.__=t,i.__H=n,Hn.__H.__h.push(i))},useLayoutEffect:ni,useRef:function(e){return Wn=5,ii((function(){return{current:e}}),[])},useImperativeHandle:function(e,t,n){Wn=6,ni((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==n?n:n.concat(e))},useMemo:ii,useCallback:ri,useContext:function(e){var t=Hn.context[e.__c],n=Qn(Gn++,9);return n.__c=e,t?(null==n.__&&(n.__=!0,t.sub(Hn)),t.props.value):e.__},useDebugValue:function(t,n){e.useDebugValue&&e.useDebugValue(n?n(t):t)},version:"16.8.0",Children:yi,render:function(e,t,n){return null==t.__k&&(t.textContent=""),j(e,t),"function"==typeof n&&n(),e?e.__c:null},hydrate:function(e,t,n){return O(e,t),"function"==typeof n&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(j(null,e),!0)},createPortal:function(e,t){return h(Ti,{__v:e,i:t})},createElement:h,createContext:function(e,t){var n={__c:t="__cC"+o++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,i;return this.getChildContext||(n=[],(i={})[t]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(m)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(e){return h.bind(null,e)},cloneElement:function(e){return Ri(e)?I.apply(null,arguments):e},createRef:d,Fragment:p,isValidElement:Ri,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:g,PureComponent:di,memo:pi,forwardRef:vi,unstable_batchedUpdates:Gi,StrictMode:p,Suspense:_i,SuspenseList:Ai,lazy:function(e){var t,n,i;function r(r){if(t||(t=e()).then((function(e){n=e.default||e}),(function(e){i=e})),i)throw i;if(!n)throw t;return h(n,r)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Fi};if(!ei)throw new Error("mobx-react-lite requires React with Hooks support");if(!wt)throw new Error("mobx-react-lite requires mobx at least version 4 to be available");var Ui=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(s){r={error:s}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a};function qi(){var e=Ui(ei(0),2)[1];return ri((function(){e((function(e){return e+1}))}),[])}var Vi={};var Wi,Zi=(Wi="observerBatching","function"==typeof Symbol?Symbol.for(Wi):"__$mobx-react "+Wi+"__");function $i(e){e()}var Ki=!1;function Yi(){return Ki}function Ji(e){return It(e)}var Xi,Qi=1e4,er=new Set;function tr(){void 0===Xi&&(Xi=setTimeout(nr,1e4))}function nr(){Xi=void 0;var e=Date.now();er.forEach((function(t){var n=t.current;n&&e>=n.cleanAt&&(n.reaction.dispose(),t.current=null,er.delete(t))})),er.size>0&&tr()}var ir=!1,rr=[];var or={};function ar(e){return"observer"+e}function sr(e,t,n){if(void 0===t&&(t="observed"),void 0===n&&(n=or),Yi())return e();var i,r=function(e){return function(){ir?rr.push(e):e()}}((n.useForceUpdate||qi)()),o=Hi.useRef(null);if(!o.current){var a=new gt(ar(t),(function(){s.mounted?r():(a.dispose(),o.current=null)})),s=function(e){return{cleanAt:Date.now()+Qi,reaction:e}}(a);o.current=s,i=o,er.add(i),tr()}var l=o.current.reaction;return Hi.useDebugValue(l,Ji),Hi.useEffect((function(){var e;return e=o,er.delete(e),o.current?o.current.mounted=!0:(o.current={reaction:new gt(ar(t),(function(){r()})),cleanAt:1/0},r()),function(){o.current.reaction.dispose(),o.current=null}}),[]),function(e){ir=!0,rr=[];try{var t=e();ir=!1;var n=rr.length>0?rr:void 0;return Hi.useLayoutEffect((function(){n&&n.forEach((function(e){return e()}))}),[n]),t}finally{ir=!1}}((function(){var t,n;if(l.track((function(){try{t=e()}catch(u){n=u}})),n)throw n;return t}))}var ur=function(){return ur=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},ur.apply(this,arguments)};function lr(e,t){if(Yi())return e;var n,i,r,o=ur({forwardRef:!1},t),a=e.displayName||e.name,s=function(t,n){return sr((function(){return e(t,n)}),a)};return s.displayName=a,n=o.forwardRef?pi(vi(s)):pi(s),i=e,r=n,Object.keys(i).forEach((function(e){cr[e]||Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))})),n.displayName=a,n}var cr={$$typeof:!0,render:!0,compare:!0,type:!0};function hr(e){var t=e.children,n=e.render,i=t||n;return"function"!=typeof i?null:sr(i)}function fr(e,t,n,i,r){var o="children"===t?"render":"children",a="function"==typeof e[t],s="function"==typeof e[o];return a&&s?new Error("MobX Observer: Do not use children and render in the same time in`"+n):a||s?null:new Error("Invalid prop `"+r+"` of type `"+typeof e[t]+"` supplied to `"+n+"`, expected `function`.")}hr.propTypes={children:fr,render:fr},hr.displayName="Observer";!function(e){e||(e=$i),Lt({reactionScheduler:e}),("undefined"!=typeof window?window:"undefined"!=typeof self?self:Vi)[Zi]=!0}(Gi);var dr=0;var pr={};function gr(e){return pr[e]||(pr[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var t="__$mobx-react "+e+" ("+dr+")";return dr++,t}(e)),pr[e]}function br(e,t){if(vr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!Object.hasOwnProperty.call(t,n[r])||!vr(e[n[r]],t[n[r]]))return!1;return!0}function vr(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function mr(e,t,n){Object.hasOwnProperty.call(e,t)?e[t]=n:Object.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})}var yr=gr("patchMixins"),Cr=gr("patchedDefinition");function wr(e,t){for(var n=this,i=arguments.length,r=new Array(i>2?i-2:0),o=2;o<i;o++)r[o-2]=arguments[o];t.locks++;try{var a;return null!=e&&(a=e.apply(this,r)),a}finally{t.locks--,0===t.locks&&t.methods.forEach((function(e){e.apply(n,r)}))}}function _r(e,t){return function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];wr.call.apply(wr,[this,e,t].concat(i))}}function xr(e,t,n){var i=function(e,t){var n=e[yr]=e[yr]||{},i=n[t]=n[t]||{};return i.locks=i.locks||0,i.methods=i.methods||[],i}(e,t);i.methods.indexOf(n)<0&&i.methods.push(n);var r=Object.getOwnPropertyDescriptor(e,t);if(!r||!r[Cr]){var o=e[t],a=Ar(e,t,r?r.enumerable:void 0,i,o);Object.defineProperty(e,t,a)}}function Ar(e,t,n,i,r){var o,a=_r(r,i);return(o={})[Cr]=!0,o.get=function(){return a},o.set=function(r){if(this===e)a=_r(r,i);else{var o=Ar(this,t,n,i,r);Object.defineProperty(this,t,o)}},o.configurable=!0,o.enumerable=n,o}var Sr=ne||"$mobx",Mr=gr("isMobXReactObserver"),Tr=gr("isUnmounted"),kr=gr("skipRender"),zr=gr("isForcingUpdate");function Dr(e){var t=e.prototype;if(e[Mr]){var n=Br(t);console.warn("The provided component class ("+n+") \n                has already been declared as an observer component.")}else e[Mr]=!0;if(t.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==di)if(t.shouldComponentUpdate){if(t.shouldComponentUpdate!==Er)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else t.shouldComponentUpdate=Er;jr(t,"props"),jr(t,"state");var i=t.render;return t.render=function(){return Lr.call(this,i)},xr(t,"componentWillUnmount",(function(){var e;if(!0!==Yi()&&(null===(e=this.render[Sr])||void 0===e||e.dispose(),this[Tr]=!0,!this.render[Sr])){var t=Br(this);console.warn("The reactive render of an observer class component ("+t+") \n                was overriden after MobX attached. This may result in a memory leak if the \n                overriden reactive render was not properly disposed.")}})),e}function Br(e){return e.displayName||e.name||e.constructor&&(e.constructor.displayName||e.constructor.name)||"<component>"}function Lr(e){var t=this;if(!0===Yi())return e.call(this);mr(this,kr,!1),mr(this,zr,!1);var n=Br(this),i=e.bind(this),r=!1,o=new gt(n+".render()",(function(){if(!r&&(r=!0,!0!==t[Tr])){var e=!0;try{mr(t,zr,!0),t[kr]||g.prototype.forceUpdate.call(t),e=!1}finally{mr(t,zr,!1),e&&o.dispose()}}}));function a(){r=!1;var e=void 0,t=void 0;if(o.track((function(){try{t=function(e,t){const n=Ye(e);let i;try{i=t()}finally{Je(n)}return i}(!1,i)}catch(u){e=u}})),e)throw e;return t}return o.reactComponent=this,a[Sr]=o,this.render=a,a.call(this)}function Er(e,t){return Yi()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==t||!br(this.props,e)}function jr(e,t){var n=gr("reactProp_"+t+"_valueHolder"),i=gr("reactProp_"+t+"_atomHolder");function r(){return this[i]||mr(this,i,oe("reactive "+t)),this[i]}Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){var e=!1;return He&&Ue&&(e=He(!0)),r.call(this).reportObserved(),He&&Ue&&Ue(e),this[n]},set:function(e){this[zr]||br(this[n],e)?mr(this,n,e):(mr(this,n,e),mr(this,kr,!0),r.call(this).reportChanged(),mr(this,kr,!1))}})}var Or="function"==typeof Symbol&&Symbol.for,Ir=Or?Symbol.for("react.forward_ref"):vi((function(e){return null})).$$typeof,Nr=Or?Symbol.for("react.memo"):pi((function(e){return null})).$$typeof;function Pr(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),Nr&&e.$$typeof===Nr)throw new Error("Mobx observer: You are trying to use 'observer' on a function component wrapped in either another observer or 'React.memo'. The observer already applies 'React.memo' for you.");if(Ir&&e.$$typeof===Ir){var t=e.render;if("function"!=typeof t)throw new Error("render property of ForwardRef was not a function");return vi((function(){var e=arguments;return h(hr,null,(function(){return t.apply(void 0,e)}))}))}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(g,e)?Dr(e):lr(e)}if(!g)throw new Error("mobx-react requires React to be available");if(!Me)throw new Error("mobx-react requires mobx to be available");
-/**
- * Carrot Search FoamTree HTML5 (demo variant)
- * v3.5.0, bugfix/3.5.x/e3b91c8e, build FOAMTREE-SOFTWARE5-DIST-3, Jan 18, 2021
- * 
- * Carrot Search confidential.
- * Copyright 2002-2021, Carrot Search s.c, All Rights Reserved.
- */
-!function(){var e,t=function(){var e=window.navigator.userAgent;try{window.localStorage.setItem("ftap5caavc","ftap5caavc"),window.localStorage.removeItem("ftap5caavc");var n=!0}catch(i){n=!1}return{Se:function(){return/webkit/i.test(e)},Lh:function(){return/Mac/.test(e)},Qe:function(){return/iPad|iPod|iPhone/.test(e)},Kh:function(){return/Android/.test(e)},Gh:function(){return"ontouchstart"in window||!!window.DocumentTouch&&document instanceof window.DocumentTouch},Fh:function(){return n},Eh:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},md:function(e,n){return[].forEach&&t.Eh()?e&&e():n&&n()}}}(),n=function(){function e(){return window.performance&&(window.performance.now||window.performance.mozNow||window.performance.msNow||window.performance.oNow||window.performance.webkitNow)||Date.now}var t=e();return{create:function(){return{now:function(){var t=e();return function(){return t.call(window.performance)}}()}},now:function(){return t.call(window.performance)}}}();function i(){function i(){if(!u)throw"AF0";var e=n.now();0!==l&&(o.sd=e-l),l=e,s=s.filter((function(e){return null!==e})),o.frames++;for(var t=0;t<s.length;t++){var i=s[t];null!==i&&(!0===i.ee.call(i.context)?s[t]=null:y.zc(i.repeat)&&(i.repeat=i.repeat-1,0>=i.repeat&&(s[t]=null)))}s=s.filter((function(e){return null!==e})),u=!1,r(),0!==(e=n.now()-e)&&(o.rd=e),o.totalTime+=e,o.ue=1e3*o.frames/o.totalTime,l=0===s.length?0:n.now()}function r(){0<s.length&&!u&&(u=!0,a(i))}var o=this.Wf={frames:0,totalTime:0,rd:0,sd:0,ue:0};e=o;var a=t.Qe()?function(e){window.setTimeout(e,0)}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(){var e=n.create();return function(t){var n=0;window.setTimeout((function(){var i=e.now();t(),n=e.now()-i}),16>n?16-n:0)}}(),s=[],u=!1,l=0;this.repeat=function(e,t,n){this.cancel(e),s.push({ee:e,context:n,repeat:t}),r()},this.once=function(e,t){this.repeat(e,1,t)},this.cancel=function(e){for(var t=0;t<s.length;t++){var n=s[t];null!==n&&n.ee===e&&(s[t]=null)}},this.i=function(){s=[]}}var r=t.md((function(){function e(){this.buffer=[],this.ma=0,this.current=y.extend({},s)}function t(e){return function(){var t,n=this.buffer,i=this.ma;for(n[i++]="call",n[i++]=e,n[i++]=arguments.length,t=0;t<arguments.length;t++)n[i++]=arguments[t];this.ma=i}}function n(e){return function(){return o[e].apply(o,arguments)}}var i=document.createElement("canvas");i.width=1,i.height=1;var o=i.getContext("2d");i=["font"];var a="fillStyle globalAlpha globalCompositeOperation lineCap lineDashOffset lineJoin lineWidth miterLimit shadowBlur shadowColor shadowOffsetX shadowOffsetY strokeStyle textAlign textBaseline".split(" "),s={};return a.concat(i).forEach((function(e){s[e]=o[e]})),e.prototype.clear=function(){this.ma=0},e.prototype.Ga=function(){return 0===this.ma},e.prototype.Na=function(e){e instanceof r?function(e,t,n){for(var i=0,r=e.ma,o=e.buffer;i<n;)o[r++]=t[i++];e.ma=r}(e,this.buffer,this.ma):function(e,t,n,i){for(var r=0;r<n;)switch(t[r++]){case"set":e[t[r++]]=t[r++];break;case"setGlobalAlpha":e[t[r++]]=t[r++]*i;break;case"call":var o=t[r++];switch(t[r++]){case 0:e[o]();break;case 1:e[o](t[r++]);break;case 2:e[o](t[r++],t[r++]);break;case 3:e[o](t[r++],t[r++],t[r++]);break;case 4:e[o](t[r++],t[r++],t[r++],t[r++]);break;case 5:e[o](t[r++],t[r++],t[r++],t[r++],t[r++]);break;case 6:e[o](t[r++],t[r++],t[r++],t[r++],t[r++],t[r++]);break;case 7:e[o](t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++]);break;case 8:e[o](t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++]);break;case 9:e[o](t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++],t[r++]);break;default:throw"CB0"}}}(e,this.buffer,this.ma,y.I(e.globalAlpha,1))},e.prototype.replay=e.prototype.Na,e.prototype.i=function(){return new e},e.prototype.scratch=e.prototype.i,"arc arcTo beginPath bezierCurveTo clearRect clip closePath drawImage fill fillRect fillText lineTo moveTo putImageData quadraticCurveTo rect rotate scale setLineDash setTransform stroke strokeRect strokeText transform translate".split(" ").forEach((function(n){e.prototype[n]=t(n)})),["measureText","createLinearGradient","createRadialGradient","createPattern","getLineDash"].forEach((function(t){e.prototype[t]=n(t)})),["save","restore"].forEach((function(i){var r=n(i),o=t(i);e.prototype[i]=function(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}(o,r)})),i.forEach((function(t){Object.defineProperty(e.prototype,t,{set:function(e){o[t]=e,this.current[t]=e;var n=this.buffer;n[this.ma++]="set",n[this.ma++]=t,n[this.ma++]=e},get:function(){return this.current[t]}})})),a.forEach((function(t){Object.defineProperty(e.prototype,t,{set:function(e){this.current[t]=e;var n=this.buffer;n[this.ma++]="globalAlpha"===t?"setGlobalAlpha":"set",n[this.ma++]=t,n[this.ma++]=e},get:function(){return this.current[t]}})})),e.prototype.roundRect=function(e,t,n,i,r){this.beginPath(),this.moveTo(e+r,t),this.lineTo(e+n-r,t),this.quadraticCurveTo(e+n,t,e+n,t+r),this.lineTo(e+n,t+i-r),this.quadraticCurveTo(e+n,t+i,e+n-r,t+i),this.lineTo(e+r,t+i),this.quadraticCurveTo(e,t+i,e,t+i-r),this.lineTo(e,t+r),this.quadraticCurveTo(e,t,e+r,t),this.closePath()},e.prototype.fillPolygonWithText=function(e,t,n,i,o){o||(o={});var a={hb:y.I(o.maxFontSize,B.ya.hb),Gc:y.I(o.minFontSize,B.ya.Gc),lineHeight:y.I(o.lineHeight,B.ya.lineHeight),cb:y.I(o.horizontalPadding,B.ya.cb),Ua:y.I(o.verticalPadding,B.ya.Ua),ib:y.I(o.maxTotalTextHeight,B.ya.ib),fontFamily:y.I(o.fontFamily,B.ya.fontFamily),fontStyle:y.I(o.fontStyle,B.ya.fontStyle),fontVariant:y.I(o.fontVariant,B.ya.fontVariant),fontWeight:y.I(o.fontWeight,B.ya.fontWeight),verticalAlign:y.I(o.verticalAlign,B.ya.verticalAlign)},s=o.cache;if(s&&y.has(o,"area")){s.Qc||(s.Qc=new r);var u=o.area,l=y.I(o.cacheInvalidationThreshold,.05);e=B.de(a,this,i,e,M.F(e,{}),{x:t,y:n},o.allowForcedSplit||!1,o.allowEllipsis||!1,s,u,l,o.invalidateCache)}else e=B.re(a,this,i,e,M.F(e,{}),{x:t,y:n},o.allowForcedSplit||!1,o.allowEllipsis||!1);return e.ka?{fit:!0,lineCount:e.bc,fontSize:e.fontSize,box:{x:e.box.x,y:e.box.y,w:e.box.w,h:e.box.o},ellipsis:e.Ub}:{fit:!1}},e})),o=t.md((function(){function e(e){this.S=e,this.canvas=e.canvas,this.i=[],this.zb=[void 0],this.vc=["#SIZE#px sans-serif"],this.td=[0],this.ud=[1],this.Rd=[0],this.Sd=[0],this.Td=[0],this.yd=[10],this.Xb=[10],this.Hb=[this.zb,this.vc,this.Xb,this.td,this.ud,this.Rd,this.yd,this.Sd,this.Td],this.da=[1,0,0,1,0,0]}function t(e){var t=e.S,n=e.Hb[0].length-1;e.zb[n]&&(t.setLineDash(e.zb[n]),t.lineDashOffset=e.td[n]),t.miterLimit=e.yd[n],t.lineWidth=e.ud[n],t.shadowBlur=e.Rd[n],t.shadowOffsetX=e.Sd[n],t.shadowOffsetY=e.Td[n],t.font=e.vc[n].replace("#SIZE#",e.Xb[n].toString())}function n(e,t,n){return e*n[0]+t*n[2]+n[4]}function i(e,t,n){return e*n[1]+t*n[3]+n[5]}function r(e,t){for(var n=0;n<e.length;n++)e[n]*=t[0];return e}e.prototype.save=function(){this.i.push(this.da.slice(0));for(var e=0;e<this.Hb.length;e++){var t=this.Hb[e];t.push(t[t.length-1])}this.S.save()},e.prototype.restore=function(){this.da=this.i.pop();for(var e=0;e<this.Hb.length;e++)this.Hb[e].pop();this.S.restore(),t(this)},e.prototype.scale=function(e,n){var i=this.da;i[0]*=e,i[1]*=e,i[2]*=n,i[3]*=n,e=this.da,i=(n=this.Hb)[0].length-1;var o=this.zb[i];for(o&&r(o,e),o=2;o<n.length;o++){n[o][i]*=e[0]}t(this)},e.prototype.translate=function(e,t){var n=this.da;n[4]+=n[0]*e+n[2]*t,n[5]+=n[1]*e+n[3]*t},["moveTo","lineTo"].forEach((function(t){e.prototype[t]=function(e){return function(t,r){var o=this.da;return this.S[e].call(this.S,n(t,r,o),i(t,r,o))}}(t)})),["clearRect","fillRect","strokeRect","rect"].forEach((function(t){e.prototype[t]=function(e){return function(t,r,o,a){var s=this.da;return this.S[e].call(this.S,n(t,r,s),i(t,r,s),o*s[0],a*s[3])}}(t)})),"fill stroke beginPath closePath clip createImageData createPattern getImageData putImageData getLineDash setLineDash".split(" ").forEach((function(t){e.prototype[t]=function(e){return function(){return this.S[e].apply(this.S,arguments)}}(t)})),[{p:"lineDashOffset",a:function(e){return e.td}},{p:"lineWidth",a:function(e){return e.ud}},{p:"miterLimit",a:function(e){return e.yd}},{p:"shadowBlur",a:function(e){return e.Rd}},{p:"shadowOffsetX",a:function(e){return e.Sd}},{p:"shadowOffsetY",a:function(e){return e.Td}}].forEach((function(t){Object.defineProperty(e.prototype,t.p,{set:function(e){var n=t.a(this);e*=this.da[0],n[n.length-1]=e,this.S[t.p]=e}})}));var o=/(\d+(?:\.\d+)?)px/;return Object.defineProperty(e.prototype,"font",{set:function(e){var t=o.exec(e);if(1<t.length){var n=this.Xb.length-1;this.Xb[n]=parseFloat(t[1]),this.vc[n]=e.replace(o,"#SIZE#px"),e=this.S,n=this.vc[n].replace("#SIZE#",(this.Xb[n]*this.da[0]).toString()),e.font=n}}}),"fillStyle globalAlpha globalCompositeOperation lineCap lineJoin shadowColor strokeStyle textAlign textBaseline".split(" ").forEach((function(t){Object.defineProperty(e.prototype,t,{set:function(e){this.S[t]=e}})})),e.prototype.arc=function(e,t,r,o,a,s){var u=this.da;this.S.arc(n(e,t,u),i(e,t,u),r*u[0],o,a,s)},e.prototype.arcTo=function(e,t,r,o,a){var s=this.da;this.S.arc(n(e,t,s),i(e,t,s),n(r,o,s),i(r,o,s),a*s[0])},e.prototype.bezierCurveTo=function(e,t,r,o,a,s){var u=this.da;this.S.bezierCurveTo(n(e,t,u),i(e,t,u),n(r,o,u),i(r,o,u),n(a,s,u),i(a,s,u))},e.prototype.drawImage=function(e,t,r,o,a,s,u,l,c){function h(t,r,o,a){d.push(n(t,r,f)),d.push(i(t,r,f)),o=y.V(o)?e.width:o,a=y.V(a)?e.height:a,d.push(o*f[0]),d.push(a*f[3])}var f=this.da,d=[e];y.V(s)?h(t,r,o,a):h(s,u,l,c),this.S.drawImage.apply(this.S,d)},e.prototype.quadraticCurveTo=function(e,t,r,o){var a=this.da;this.S.quadraticCurveTo(n(e,t,a),i(e,t,a),n(r,o,a),i(r,o,a))},e.prototype.fillText=function(e,t,r,o){var a=this.da;this.S.fillText(e,n(t,r,a),i(t,r,a),y.zc(o)?o*a[0]:1e20)},e.prototype.setLineDash=function(e){e=r(e.slice(0),this.da),this.zb[this.zb.length-1]=e,this.S.setLineDash(e)},e})),a=function(){var e=!t.Se()||t.Qe()||t.Kh()?1:7;return{estimate:function(){function t(e){e.beginPath(),s.Ud(e,l)}var i=document.createElement("canvas");i.width=800,i.height=600;var r=i.getContext("2d"),o=i.width;i=i.height;var a,u=0,l=[{x:0,y:100}];for(a=1;6>=a;a++)u=2*a*Math.PI/6,l.push({x:100*Math.sin(u),y:100*Math.cos(u)});a={polygonPlainFill:[t,function(e){e.fillStyle="rgb(255, 0, 0)",e.fill()}],polygonPlainStroke:[t,function(e){e.strokeStyle="rgb(128, 0, 0)",e.lineWidth=2,e.closePath(),e.stroke()}],polygonGradientFill:[t,function(e){var t=e.createRadialGradient(0,0,10,0,0,60);t.addColorStop(0,"rgb(255, 0, 0)"),t.addColorStop(1,"rgb(255, 255, 0)"),e.fillStyle=t,e.fill()}],polygonGradientStroke:[t,function(e){var t=e.createLinearGradient(-100,-100,100,100);t.addColorStop(0,"rgb(224, 0, 0)"),t.addColorStop(1,"rgb(32, 0, 0)"),e.strokeStyle=t,e.lineWidth=2,e.closePath(),e.stroke()}],polygonExposureShadow:[t,function(e){e.shadowBlur=50,e.shadowColor="rgba(0, 0, 0, 1)",e.fillStyle="rgba(0, 0, 0, 1)",e.globalCompositeOperation="source-over",e.fill(),e.shadowBlur=0,e.shadowColor="transparent",e.globalCompositeOperation="destination-out",e.fill()}],labelPlainFill:[function(e){e.fillStyle="#000",e.font="24px sans-serif",e.textAlign="center"},function(e){e.fillText("Some text",0,-16),e.fillText("for testing purposes",0,16)}]},u=100/Object.keys(a).length;var c,h=n.now(),f={};for(c in a){var d=a[c],p=n.now(),g=0;do{r.save(),r.translate(Math.random()*o,Math.random()*i);var b=3*Math.random()+.5;for(r.scale(b,b),b=0;b<d.length;b++)d[b](r);r.restore(),g++,b=n.now()}while(b-p<u);f[c]=e*(b-p)/g}return f.total=n.now()-h,f}}}(),s={Ud:function(e,t){var n=t[0];e.moveTo(n.x,n.y);for(var i=t.length-1;0<i;i--)n=t[i],e.lineTo(n.x,n.y)},Ti:function(e,t,n,i){var r,o=[],a=0,s=t.length;for(r=0;r<s;r++){var u=t[r],l=t[(r+1)%s];u=M.i(u,l),u=Math.sqrt(u),o.push(u),a+=u}n=i*(n+.5*i*a/s),a={};var c={},h={};for(r=0;r<s;r++){u=t[r],l=t[(r+1)%s],i=t[(r+2)%s];var f=o[(r+1)%s];f=Math.min(.5,n/f),M.ga(1-f,l,i,c),M.ga(f,l,i,h),0==r&&(M.ga(Math.min(.5,n/o[0]),u,l,a),e.moveTo(a.x,a.y)),e.quadraticCurveTo(l.x,l.y,c.x,c.y),e.lineTo(h.x,h.y)}return!0}};function u(e){function t(){return"embedded"===r.getAttribute("data-foamtree")}function n(e){h[e]&&(h[e].style.opacity=d*f[e])}function i(e){e.width=Math.round(a*e.B),e.height=Math.round(s*e.B)}var r,o,a,s,u,l,c=[],h={},f={},d=0;this.M=function(n){0!==(r=n).clientWidth&&0!==r.clientHeight||j.i("element has zero dimensions: "+r.clientWidth+" x "+r.clientHeight+"."),r.innerHTML="",a=r.clientWidth,s=r.clientHeight,u=0!==a?a:void 0,l=0!==s?s:void 0,t()&&j.i("visualization already embedded in the element."),r.setAttribute("data-foamtree","embedded"),(o=document.createElement("div")).style.width="100%",o.style.height="100%",o.style.position="relative",r.appendChild(o),e.j.D("stage:initialized",this,o,a,s)},this.Za=function(){t()&&(r.removeAttribute("data-foamtree"),c=[],h={},r.removeChild(o),e.j.D("stage:disposed",this,o))},this.u=function(){if(a=r.clientWidth,s=r.clientHeight,0!==a&&0!==s&&(a!==u||s!==l)){for(var t=c.length-1;0<=t;t--)i(c[t]);e.j.D("stage:resized",u,l,a,s),u=a,l=s}},this.Hi=function(e,t){e.B=t,i(e)},this.dc=function(t,r,a){var s=document.createElement("canvas");return s.setAttribute("style","position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;"),s.B=r,i(s),c.push(s),h[t]=s,f[t]=1,n(t),a||o.appendChild(s),e.j.D("stage:newLayer",t,s),s},this.$b=function(e,t){return y.V(t)||(f[e]=t,n(e)),f[e]},this.i=function(e){return y.V(e)||(d=e,y.Aa(h,(function(e,t){n(t)}))),d}}function l(e){function t(e,t,n){return m=!0,p.x=0,p.y=0,g.x=0,g.y=0,a=f,s.x=d.x,s.y=d.y,t(),u*=e,l=n?u/a:e,l=Math.max(.25/a,l),!0}function n(e,t){return t.x=e.x/f+d.x,t.y=e.y/f+d.y,t}function i(e,t,n,i,r,o,a,s,u){var l=(e-n)*(o-s)-(t-i)*(r-a);return!(1e-5>Math.abs(l))&&(u.x=((e*i-t*n)*(r-a)-(e-n)*(r*s-o*a))/l,u.y=((e*i-t*n)*(o-s)-(t-i)*(r*s-o*a))/l,!0)}var r,o,a=1,s={x:0,y:0},u=1,l=1,c=1,h={x:0,y:0},f=1,d={x:0,y:0},p={x:0,y:0},g={x:0,y:0},b={x:0,y:0,w:0,o:0},v={x:0,y:0,w:0,o:0,scale:1},m=!0;e.j.subscribe("stage:initialized",(function(e,t,n,i){r=n,o=i,b.x=0,b.y=0,b.w=n,b.o=i,v.x=0,v.y=0,v.w=n,v.o=i,v.scale=1})),e.j.subscribe("stage:resized",(function(e,t,n,i){function a(e){e.x*=l,e.y*=c}function u(e){a(e),e.w*=l,e.o*=c}r=n,o=i;var l=n/e,c=i/t;a(s),a(d),a(h),a(p),a(g),u(b),u(v)})),this.Nb=function(e,i){return t(i,(function(){n(e,h)}),!0)},this.ga=function(e,n){if(1==Math.round(1e4*n)/1e4){n=b.x-d.x;var r=b.y-d.y;return t(1,(function(){}),!0),this.i(-n,-r)}return t(n,(function(){for(var t=!1;!t;){t=Math.random();var n=Math.random(),r=Math.random(),o=Math.random();t=i(e.x+t*e.w,e.y+n*e.o,b.x+t*b.w,b.y+n*b.o,e.x+r*e.w,e.y+o*e.o,b.x+r*b.w,b.y+o*b.o,h)}}),!0)},this.ic=function(e,n){var a=e.w/e.o,s=r/o;if(a<s){var u=e.o*s,l=e.o;a=e.x-.5*(u-e.w),s=e.y}else a>s?(u=e.w,l=e.w*o/r,a=e.x,s=e.y-.5*(l-e.o)):(a=e.x,s=e.y,u=e.w,l=e.o);return a-=u*n,u*=1+2*n,i(a,s-=l*n,d.x,d.y,a+u,s,d.x+r/f,d.y,h)?t(r/f/u,y.qa,!1):(m=!1,this.i(f*(d.x-a),f*(d.y-s)))},this.i=function(e,t){return e=Math.round(1e4*e)/1e4,t=Math.round(1e4*t)/1e4,g.x+=e/f,g.y+=t/f,0!==e||0!==t},this.reset=function(e){return e&&this.content(0,0,r,o),this.ga({x:b.x+d.x,y:b.y+d.y,w:b.w/f,o:b.o/f},c/u)},this.Fb=function(e){c=Math.min(1,Math.round(1e4*(e||u))/1e4)},this.u=function(){return d.x<b.x?(b.x-d.x)*f:d.x+r/f>b.x+b.w?-(d.x+r/f-b.x-b.w)*f:0},this.H=function(){return d.y<b.y?(b.y-d.y)*f:d.y+o/f>b.y+b.o?-(d.y+o/f-b.y-b.o)*f:0},this.update=function(e){var t=Math.abs(Math.log(l));6>t?t=2:(t/=4,t+=3*t*(1<l?e:1-e)),t=1<l?Math.pow(e,t):1-Math.pow(1-e,t),f=a*(t=(m?t:1)*(l-1)+1),d.x=h.x-(h.x-s.x)/t,d.y=h.y-(h.y-s.y)/t,d.x-=p.x*(1-e)+g.x*e,d.y-=p.y*(1-e)+g.y*e,1===e&&(p.x=g.x,p.y=g.y),v.x=d.x,v.y=d.y,v.w=r/f,v.o=o/f,v.scale=f},this.T=function(e){return e.x=v.x,e.y=v.y,e.scale=v.scale,e},this.absolute=function(e,t){return n(e,t||{})},this.Uc=function(e,t){return(t=t||{}).x=(e.x-d.x)*f,t.y=(e.y-d.y)*f,t},this.pc=function(e){return this.scale()<c/e},this.zd=function(){return y.od(f,1)},this.scale=function(){return Math.round(1e4*f)/1e4},this.content=function(e,t,n,i){b.x=e,b.y=t,b.w=n,b.o=i},this.rc=function(e,t){var n;for(n=e.length-1;0<=n;n--){var i=e[n];i.save(),i.scale(f,f),i.translate(-d.x,-d.y)}for(t(v),n=e.length-1;0<=n;n--)(i=e[n]).restore()}}var c=new function(){function e(e){if("hsl"==e.model||"hsla"==e.model)return e;var t=e.r/=255,n=e.g/=255,i=e.b/=255,r=Math.max(t,n,i),o=Math.min(t,n,i),a=(r+o)/2;if(r==o)var s=o=0;else{var u=r-o;switch(o=.5<a?u/(2-r-o):u/(r+o),r){case t:s=(n-i)/u+(n<i?6:0);break;case n:s=(i-t)/u+2;break;case i:s=(t-n)/u+4}s/=6}return e.h=360*s,e.s=100*o,e.l=100*a,e.model="hsl",e}var t={h:0,s:0,l:0,a:1,model:"hsla"};this.u=function(n){return y.Ac(n)?e(c.ga(n)):y.wb(n)?e(n):t},this.ga=function(e){var n;return(n=/rgba\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(e))&&5==n.length?{r:parseFloat(n[1]),g:parseFloat(n[2]),b:parseFloat(n[3]),a:parseFloat(n[4]),model:"rgba"}:(n=/hsla\(\s*([^,\s]+)\s*,\s*([^,%\s]+)%\s*,\s*([^,\s%]+)%\s*,\s*([^,\s]+)\s*\)/.exec(e))&&5==n.length?{h:parseFloat(n[1]),s:parseFloat(n[2]),l:parseFloat(n[3]),a:parseFloat(n[4]),model:"hsla"}:(n=/rgb\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(e))&&4==n.length?{r:parseFloat(n[1]),g:parseFloat(n[2]),b:parseFloat(n[3]),a:1,model:"rgb"}:(n=/hsl\(\s*([^,\s]+)\s*,\s*([^,\s%]+)%\s*,\s*([^,\s%]+)%\s*\)/.exec(e))&&4==n.length?{h:parseFloat(n[1]),s:parseFloat(n[2]),l:parseFloat(n[3]),a:1,model:"hsl"}:(n=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))&&4==n.length?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16),a:1,model:"rgb"}:(n=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))&&4==n.length?{r:17*parseInt(n[1],16),g:17*parseInt(n[2],16),b:17*parseInt(n[3],16),a:1,model:"rgb"}:t},this.T=function(e){function t(e,t,n){return 0>n&&(n+=1),1<n&&--n,n<1/6?e+6*(t-e)*n:.5>n?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function n(e,t,n){return Math.sqrt(e*e*.241+t*t*.691+n*n*.068)/255}if("rgb"==e.model||"rgba"==e.model)return n(e.r,e.g,e.b);var i=e.l/100,r=e.s/100,o=e.h/360;if(0==e.zj)i=e=o=i;else{var a=2*i-(r=.5>i?i*(1+r):i+r-i*r);i=t(a,r,o+1/3),e=t(a,r,o),o=t(a,r,o-1/3)}return n(255*i,255*e,255*o)},this.wa=function(e){if(y.Ac(e))return e;if(!y.wb(e))return"#000";switch(e.model){case"hsla":return c.sa(e);case"hsl":return c.H(e);case"rgba":return c.ua(e);case"rgb":return c.ta(e);default:return"#000"}},this.ua=function(e){return"rgba("+(.5+e.r|0)+","+(.5+e.g|0)+","+(.5+e.b|0)+","+e.a+")"},this.ta=function(e){return"rgba("+(.5+e.r|0)+","+(.5+e.g|0)+","+(.5+e.b|0)+")"},this.sa=function(e){return"hsla("+(.5+e.h|0)+","+(.5+e.s|0)+"%,"+(.5+e.l|0)+"%,"+e.a+")"},this.H=function(e){return"hsl("+(.5+e.h|0)+","+(.5+e.s|0)+"%,"+(.5+e.l|0)+"%)"},this.i=function(e,t,n){return"hsl("+(.5+e|0)+","+(.5+t|0)+"%,"+(.5+n|0)+"%)"}};function h(){var e,t=!1,n=[],i=this,r=new function(){this.then=function(r){return r&&(t?r.apply(i,e):n.push(r)),this},this.Fg=function(e){return i=e,{then:this.then}}};this.resolve=function(){e=arguments;for(var r=0;r<n.length;r++)n[r].apply(i,e);return t=!0,this},this.promise=function(){return r}}function f(e){var t=new h,n=e.length;if(0<e.length)for(var i=e.length-1;0<=i;i--)e[i].then((function(){0==--n&&t.resolve()}));else t.resolve();return t.promise()}function d(e){var t=0;this.i=function(){t++},this.u=function(){0===--t&&e()},this.clear=function(){t=0},this.initial=function(){return 0===t}}var p={oe:function(e,t,n,i){i=i||{};try{var r=e.getBoundingClientRect()}catch(g){if(!p.Ih){p.Ih=!0,window.console.log("getBoundingClientRect() failed."),window.console.log("Element",e);for(var o=(r=window.console).log;null!==e.parentElement;)e=e.parentElement;o.call(r,"Attached to DOM",e===document.body.parentElement)}r={left:0,top:0}}return i.x=t-r.left,i.y=n-r.top,i}};function b(){var e=document,t={};this.addEventListener=function(n,i,r){var o=t[n];o||(o=[],t[n]=o),o.push(i),e.addEventListener(n,i,r)},this.i=function(){y.Aa(t,(function(t,n){for(var i=t.length-1;0<=i;i--)e.removeEventListener(n,t[i])}))}}function v(e){function t(e){return function(t){n(t)&&e.apply(this,arguments)}}function n(t){for(t=t.target;t;){if(t===e)return!0;t=t.parentElement}return!1}function i(e,t,n){r(e,n=n||{});for(var i=0;i<t.length;i++)t[i].call(e.target,n);return r(e,n),(void 0===n.Db&&n.$h||"prevent"===n.Db)&&e.preventDefault(),n}function r(t,n){return p.oe(e,t.clientX,t.clientY,n),n.altKey=t.altKey,n.metaKey=t.metaKey,n.ctrlKey=t.ctrlKey,n.shiftKey=t.shiftKey,n.lb=3===t.which,n}var o=new b,a=[],s=[],u=[],l=[],c=[],h=[],f=[],d=[],g=[],v=[],m=[];this.i=function(e){a.push(e)},this.u=function(e){c.push(e)},this.sa=function(e){s.push(e)},this.wa=function(e){u.push(e)},this.Ka=function(e){l.push(e)},this.ua=function(e){m.push(e)},this.ta=function(e){h.push(e)},this.Ja=function(e){f.push(e)},this.ga=function(e){d.push(e)},this.H=function(e){g.push(e)},this.T=function(e){v.push(e)},this.Za=function(){o.i()};var y,C,w,_,x={x:0,y:0},A={x:0,y:0},S=!1,T=!1;o.addEventListener("mousedown",t((function(t){if(t.target!==e){var n=i(t,u);A.x=n.x,A.y=n.y,x.x=n.x,x.y=n.y,S=!0,i(t,d),C=!1,y=window.setTimeout((function(){100>M.i(x,n)&&(window.clearTimeout(_),i(t,s),C=!0)}),400)}}))),o.addEventListener("mouseup",(function(e){var t=i(e,l);S&&(T&&i(e,v),window.clearTimeout(y),C||T||!n(e)||(t={x:t.x,y:t.y},w&&100>M.i(t,w)?i(e,c):i(e,a),w=t,_=window.setTimeout((function(){w=null}),350)),T=S=!1)})),o.addEventListener("mousemove",(function(e){var t=r(e,{});n(e)&&i(e,h,{type:"move"}),x.x=t.x,x.y=t.y,S&&!T&&100<M.i(A,x)&&(T=!0),T&&i(e,g,t)})),o.addEventListener("mouseout",t((function(e){i(e,f,{type:"out"})}))),o.addEventListener("wheel",t((function(e){if("deltaY"in e)var t=e.deltaY;else t=0,"detail"in e&&(t=e.detail),"wheelDelta"in e&&(t=-e.wheelDelta/120),"wheelDeltaY"in e&&(t=-e.wheelDeltaY/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=0),t*=10;t&&e.deltaMode&&(t=1===e.deltaMode?67*t:800*t),i(e,m,{ed:-t/200,$h:!0})})),{passive:!1}),o.addEventListener("contextmenu",t((function(e){e.preventDefault()})))}var m=function(){function e(e){return function(t){return Math.pow(t,e)}}function t(e){return function(t){return 1-Math.pow(1-t,e)}}function n(e){return function(t){return 1>(t*=2)?.5*Math.pow(t,e):1-.5*Math.abs(Math.pow(2-t,e))}}function i(e){return function(t){for(var n=0;n<e.length;n++)t=(0,e[n])(t);return t}}return{ia:function(e){switch(e){case"linear":default:return m.Ab;case"bounce":return m.tg;case"squareIn":return m.Tf;case"squareOut":return m.Gb;case"squareInOut":return m.Uf;case"cubicIn":return m.wg;case"cubicOut":return m.fe;case"cubicInOut":return m.xg;case"quadIn":return m.si;case"quadOut":return m.ui;case"quadInOut":return m.ti}},Ab:function(e){return e},tg:i([n(2),function(e){return 0===e?0:1===e?1:e*(e*(e*(e*(25.9425*e-85.88)+105.78)-58.69)+13.8475)}]),Tf:e(2),Gb:t(2),Uf:n(2),wg:e(3),fe:t(3),xg:n(3),si:e(2),ui:t(2),ti:n(2),oj:i}}(),y={V:function(e){return void 0===e},Re:function(e){return null===e},zc:function(e){return"[object Number]"===Object.prototype.toString.call(e)},Ac:function(e){return"[object String]"===Object.prototype.toString.call(e)},Pe:function(e){return"function"==typeof e},wb:function(e){return e===Object(e)},od:function(e,t){return 1e-6>e-t&&-1e-6<e-t},Ne:function(e){return y.V(e)||y.Re(e)||y.Ac(e)&&!/\S/.test(e)},has:function(e,t){return e&&e.hasOwnProperty(t)},bb:function(e,t){if(e)for(var n=t.length-1;0<=n;n--)if(e.hasOwnProperty(t[n]))return!0;return!1},extend:function(e){return y.Bg(Array.prototype.slice.call(arguments,1),(function(t){if(t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})),e},xj:function(e,t){return e.map((function(e){return e[t]}),[])},Bg:function(e,t,n){null!=e&&(e.forEach?e.forEach(t,n):y.Aa(e,t,n))},Aa:function(e,t,n){for(var i in e)if(e.hasOwnProperty(i)&&!1===t.call(n,e[i],i,e))break},I:function(){for(var e=0;e<arguments.length;e++){var t=arguments[e];if(!(y.V(t)||y.zc(t)&&isNaN(t)||y.Ac(t)&&y.Ne(t)))return t}},If:function(e,t){0<=(t=e.indexOf(t))&&e.splice(t,1)},yg:function(e,t,n){var i;return function(){var r=this,o=arguments,a=n&&!i;clearTimeout(i),i=setTimeout((function(){i=null,n||e.apply(r,o)}),t),a&&e.apply(r,o)}},defer:function(e){setTimeout(e,1)},vj:function(e){return e},qa:function(){}},C=function(e,n,i){return t.Fh()?function(){var t=n+":"+JSON.stringify(arguments),r=window.localStorage.getItem(t);return r&&(r=JSON.parse(r)),r&&Date.now()-r.t<i?r.v:(r=e.apply(this,arguments),window.localStorage.setItem(t,JSON.stringify({v:r,t:Date.now()})),r)}:e},w=function(e,t){function n(){var n=[];if(Array.isArray(e))for(var i=0;i<e.length;i++){var r=e[i];r&&n.push(r.apply(t,arguments))}else e&&n.push(e.apply(t,arguments));return n}return n.empty=function(){return 0===e.length&&!y.Pe(e)},n};function _(){var e={};this.subscribe=function(t,n){var i=e[t];i||(i=[],e[t]=i),i.push(n)},this.D=function(t,n){var i=e[t];if(i)for(var r=Array.prototype.slice.call(arguments,1),o=0;o<i.length;o++)i[o].apply(this,r)}}var x=function(e){for(var t="",n=0;n<e.length;n++)t+=String.fromCharCode(1^e.charCodeAt(n));return t};function A(e){function t(t,n,u){var l,c=this,h=0;this.id=o++,this.name=u||"{unnamed on "+t+"}",this.target=function(){return t},this.xb=function(){return-1!=s.indexOf(c)},this.start=function(){if(!c.xb()){if(-1==s.indexOf(c)){var t=a.now();!0===c.af(t)&&(s=s.slice()).push(c)}0<s.length&&e.repeat(i)}return this},this.stop=function(){for(r(c);l<n.length;l++){var e=n[l];e.Xa&&e.gb.call()}return this},this.af=function(e){if(h++,0!==n.length){if(y.V(l)){var t=n[l=0];t.before&&t.before.call(t,e,h,c)}else t=n[l];for(;l<n.length;){if(t.gb&&t.gb.call(t,e,h,c))return!0;t.after&&t.after.call(t,e,h,c),y.V(l)&&(l=-1),++l<n.length&&((t=n[l]).before&&t.before.call(t,e,h,c))}}return!1}}function i(){!function(){var e=a.now();s.forEach((function(t){!0!==t.af(e)&&r(t)}))}(),0==s.length&&e.cancel(i)}function r(e){s=s.filter((function(t){return t!==e}))}var o=0,a=n.create(),s=[];this.i=function(){for(var e=s.length-1;0<=e;e--)s[e].stop();s=[]},this.K=function(){function e(){}function n(e){function t(e){return y.Pe(e)?e.call(void 0):e}var n,i,r=e.target,o=e.duration,s=e.ba;this.before=function(){for(var o in n={},e.P)r.hasOwnProperty(o)&&(n[o]={start:y.V(e.P[o].start)?r[o]:t(e.P[o].start),end:y.V(e.P[o].end)?r[o]:t(e.P[o].end),easing:y.V(e.P[o].easing)?m.Ab:e.P[o].easing});i=a.now()},this.gb=function(){var e=a.now()-i;for(var t in e=0===o?1:Math.min(o,e)/o,n){var u=n[t];r[t]=u.start+(u.end-u.start)*u.easing(e)}return s&&s.call(r,e),1>e}}function i(e,t,n){this.Xa=n,this.gb=function(){return e.call(t),!1}}function r(e){var t;this.before=function(n,i){t=i+e},this.gb=function(e,n){return n<t}}function o(e){var t;this.before=function(n){t=n+e},this.gb=function(e){return e<t}}function u(e){this.before=function(){e.forEach((function(e){e.start()}))},this.gb=function(){for(var t=0;t<e.length;t++)if(e[t].xb())return!0;return!1}}return e.A=function(e,a){return new function(){function s(t,n,r,o){return n?(y.V(r)&&(r=e),t.Mb(new i(n,r,o))):t}var l=[];this.Mb=function(e){return l.push(e),this},this.wait=function(e){return this.Mb(new o(e))},this.Xd=function(e){return this.Mb(new r(e||1))},this.call=function(e,t){return s(this,e,t,!1)},this.Xa=function(e,t){return s(this,e,t,!0)},this.fa=function(t){return y.V(t.target)&&(t.target=e),this.Mb(new n(t))},this.Qa=function(e){return this.Mb(new u(e))},this.done=function(){return new t(e,l,a)},this.start=function(){return this.done().start()},this.i=function(){var e=new h;return this.Xd().call(e.resolve).done(),e.promise()},this.Ta=function(){var e=this.i();return this.start(),e}}},e.jc=function(t){return function(e){return y.V(e)?s.slice():s.filter((function(t){return t.target()===e}))}(t).forEach((function(e){e.stop()})),e.A(t,void 0)},e}()}var S=function(){var e={ne:function(e,t){if(e.m){e=e.m;for(var n=0;n<e.length;n++)t(e[n],n)}},sc:function(t,n){if(t.m){t=t.m;for(var i=0;i<t.length;i++)if(!1===e.sc(t[i],n)||!1===n(t[i],i))return!1}}};return e.L=e.sc,e.tc=function(t,n){if(t.m){t=t.m;for(var i=0;i<t.length;i++)if(!1===n(t[i],i)||!1===e.tc(t[i],n))return!1}},e.za=function(t,n){if(t.m)for(var i=t.m,r=0;r<i.length;r++)if(!1===e.za(i[r],n))return!1;return n(t)},e.pj=e.za,e.fd=function(t,n){!1!==n(t)&&e.tc(t,n)},e.uc=function(t,n){var i=[];return e.tc(t,(function(e){i.push(e)})),n?i.filter(n):i},e.me=function(e,t){for(e=e.parent;e&&!1!==t(e);)e=e.parent},e.Jh=function(e,t){for(e=e.parent;e&&e!==t;)e=e.parent;return!!e},e}(),M=new function(){function e(e,t){var n=e.x-t.x;return n*n+(e=e.y-t.y)*e}function t(e,t,n){for(var i=0;i<e.length;i++){var r=M.T(e[i],e[i+1]||e[0],t,n,!0);if(r)return r}}return this.T=function(e,t,n,i,r){var o=e.x;e=e.y;var a=t.x-o;t=t.y-e;var s=n.x,u=n.y;n=i.x-s;var l=i.y-u;if(!(1e-12>=(i=a*l-n*t)&&-1e-12<=i)&&(n=((s-=o)*l-n*(u-=e))/i,0<=(i=(s*t-a*u)/i)&&(r||1>=i)&&0<=n&&1>=n))return{x:o+a*n,y:e+t*n}},this.Lb=function(e,t,n,i){var r=e.x;e=e.y;var o=t.x-r;t=t.y-e;var a=n.x;n=n.y;var s=i.x-a,u=o*(i=i.y-n)-s*t;if(!(1e-12>=u&&-1e-12<=u)&&(0<=(i=((a-r)*i-s*(n-e))/u)&&1>=i))return{x:r+o*i,y:e+t*i}},this.wa=function(e,n,i){var r=M.u(n,{}),o=M.u(i,{}),a=o.x-r.x,s=o.y-r.y,u=[];for(o=0;o<i.length;o++){var l=i[o];u.push({x:l.x-a,y:l.y-s})}for(i=[],l=[],o=0;o<e.length;o++){var c=e[o],h=t(n,r,c);h?(i.push(h),l.push(t(u,r,c))):(i.push(null),l.push(null))}for(o=0;o<e.length;o++)if(h=i[o],c=l[o],h&&c){n=e[o],u=r;var f=h.x-r.x;if(h=h.y-r.y,1e-12<(h=Math.sqrt(f*f+h*h))){f=n.x-r.x;var d=n.y-r.y;h=Math.sqrt(f*f+d*d)/h,n.x=u.x+h*(c.x-u.x),n.y=u.y+h*(c.y-u.y)}else n.x=u.x,n.y=u.y}for(o=0;o<e.length;o++)(l=e[o]).x+=a,l.y+=s},this.F=function(e,t){if(0!==e.length){for(var n,i,r=n=e[0].x,o=i=e[0].y,a=e.length;0<--a;)r=Math.min(r,e[a].x),n=Math.max(n,e[a].x),o=Math.min(o,e[a].y),i=Math.max(i,e[a].y);return t.x=r,t.y=o,t.w=n-r,t.o=i-o,t}},this.H=function(e){return[{x:e.x,y:e.y},{x:e.x+e.w,y:e.y},{x:e.x+e.w,y:e.y+e.o},{x:e.x,y:e.y+e.o}]},this.u=function(e,t){for(var n=0,i=0,r=e.length,o=e[0],a=0,s=1;s<r-1;s++){var u=e[s],l=e[s+1],c=o.y+u.y+l.y,h=(u.x-o.x)*(l.y-o.y)-(l.x-o.x)*(u.y-o.y);n+=h*(o.x+u.x+l.x),i+=h*c,a+=h}return t.x=n/(3*a),t.y=i/(3*a),t.ha=a/2,t},this.Ja=function(e,t){this.u(e,t),t.r=Math.sqrt(t.ha/Math.PI)},this.sa=function(e,t){for(var n=0;n<e.length;n++){var i=e[n],r=e[n+1]||e[0];if(0>(t.y-i.y)*(r.x-i.x)-(t.x-i.x)*(r.y-i.y))return!1}return!0},this.Vc=function(e,t,n){var i=e.x,r=t.x;if(e.x>t.x&&(i=t.x,r=e.x),r>n.x+n.w&&(r=n.x+n.w),i<n.x&&(i=n.x),i>r)return!1;var o=e.y,a=t.y,s=t.x-e.x;return 1e-7<Math.abs(s)&&(o=(a=(t.y-e.y)/s)*i+(e=e.y-a*e.x),a=a*r+e),o>a&&(i=a,a=o,o=i),a>n.y+n.o&&(a=n.y+n.o),o<n.y&&(o=n.y),o<=a},this.Ka=function(n,i,r,o,a){var s;function u(r,o,a){if(i.x===h.x&&i.y===h.y)return a;var u=t(n,i,h),f=Math.sqrt(e(u,i)/(r*r+o*o));return f<l?(l=f,s=u.x,c=u.y,0!==o?Math.abs(c-i.y)/Math.abs(o):Math.abs(s-i.x)/Math.abs(r)):a}o=y.I(o,.5),a=y.I(a,.5),r=y.I(r,1);var l=Number.MAX_VALUE,c=s=0,h={x:0,y:0},f=o*r;r*=1-o,o=1-a,h.x=i.x-f,h.y=i.y-a;var d=u(f,a,d);return h.x=i.x+r,h.y=i.y-a,d=u(r,a,d),h.x=i.x-f,h.y=i.y+o,d=u(f,o,d),h.x=i.x+r,h.y=i.y+o,u(r,o,d)},this.pb=function(e,t){function n(e,t,n){var i=t.x,r=n.x;t=t.y;var o=r-i,a=(n=n.y)-t;return Math.abs(a*e.x-o*e.y-i*n+r*t)/Math.sqrt(o*o+a*a)}for(var i=e.length,r=n(t,e[i-1],e[0]),o=0;o<i-1;o++){var a=n(t,e[o],e[o+1]);a<r&&(r=a)}return r},this.ua=function(e,t,n){var i;n={x:t.x+Math.cos(n),y:t.y-Math.sin(n)};var r=[],o=[],a=e.length;for(i=0;i<a;i++){var s=M.Lb(e[i],e[(i+1)%a],t,n);if(s&&(r.push(s),2==o.push(i)))break}if(2==r.length){s=r[0],r=r[1];var u=o[0];o=o[1];var l=[r,s];for(i=u+1;i<=o;i++)l.push(e[i]);for(i=[s,r];o!=u;)o=(o+1)%a,i.push(e[o]);return e=[l,i],a=n.x-t.x,i=r.x-s.x,0===a&&(a=n.y-t.y,i=r.y-s.y),(0>a?-1:0<a?1:0)!=(0>i?-1:0<i?1:0)&&e.reverse(),e}},this.ga=function(e,t,n,i){return i.x=e*(t.x-n.x)+n.x,i.y=e*(t.y-n.y)+n.y,i},this.i=e,this.ta=function(e,n,i){if(y.zc(n))var r=2*Math.PI*n/360;else switch(r=M.F(e,{}),n){case"random":r=Math.random()*Math.PI*2;break;case"top":r=Math.atan2(-r.o,0);break;case"bottom":r=Math.atan2(r.o,0);break;case"left":r=Math.atan2(0,-r.w);break;case"right":r=Math.atan2(0,r.w);break;case"topleft":r=Math.atan2(-r.o,-r.w);break;case"topright":r=Math.atan2(-r.o,r.w);break;case"bottomleft":r=Math.atan2(r.o,-r.w);break;default:r=Math.atan2(r.o,r.w)}return e=t(e,n=M.u(e,{}),{x:n.x+Math.cos(r),y:n.y+Math.sin(r)}),M.ga(i,e,n,{})},this},T=new function(){function e(e,t){this.face=e,this.Rc=t,this.ec=this.Lc=null}function t(e,t,n){this.la=[e,t,n],this.J=Array(3);var i=t.y-e.y,r=n.z-e.z,o=t.x-e.x;t=t.z-e.z;var a=n.x-e.x;e=n.y-e.y,this.Ha={x:i*r-t*e,y:t*a-o*r,z:o*e-i*a},this.Ya=[],this.ad=this.visible=!1}this.i=function(i){function o(t,n,i){var r=t.la[0],o=t.Ha,a=o.x,l=o.y;o=o.z;var c=Array(u),h=(n=n.Ya).length;for(s=0;s<h;s++){var f=n[s].Rc;c[f.index]=!0,0>a*(f.x-r.x)+l*(f.y-r.y)+o*(f.z-r.z)&&e.add(t,f)}for(h=(n=i.Ya).length,s=0;s<h;s++)!0!==c[(f=n[s].Rc).index]&&0>a*(f.x-r.x)+l*(f.y-r.y)+o*(f.z-r.z)&&e.add(t,f)}var a,s,u=i.length;for(a=0;a<u;a++)i[a].index=a,i[a].Pb=null;var l,c=[];if(0<(l=function(){function n(e,n,i,r){var o={x:n.x-e.x,y:n.y-e.y,z:n.z-e.z},a=i.x-e.x,s=i.y-e.y,u=i.z-e.z,l=o.y*u-o.z*s,c=o.z*a-o.x*u;return o=o.x*s-o.y*a,l*r.x+c*r.y+o*r.z>l*e.x+c*e.y+o*e.z?new t(e,n,i):new t(i,n,e)}function r(e,t,n,i){function r(e,t,n){return(e=e.la)[((t=e[0]==t?0:e[1]==t?1:2)+1)%3]!=n?(t+2)%3:t}t.J[r(t,n,i)]=e,e.J[r(e,i,n)]=t}if(4>u)return 0;var o=i[0],a=i[1],s=i[2],l=i[3],h=n(o,a,s,l),f=n(o,s,l,a),d=n(o,a,l,s),p=n(a,s,l,o);for(r(h,f,s,o),r(h,d,o,a),r(h,p,a,s),r(f,d,l,o),r(f,p,s,l),r(d,p,l,a),c.push(h,f,d,p),o=4;o<u;o++)for(a=i[o],s=0;4>s;s++)h=(l=c[s]).la[0],0>(f=l.Ha).x*(a.x-h.x)+f.y*(a.y-h.y)+f.z*(a.z-h.z)&&e.add(l,a);return 4}())){for(;l<u;){var h=i[l];if(h.Pb){for(a=h.Pb;null!==a;)a.face.visible=!0,a=a.ec;a=0;e:for(;a<c.length;a++){var f=c[a];if(!1===f.visible){var d=f.J;for(s=0;3>s;s++)if(!0===d[s].visible){var p=f,g=s;break e}}}f=[],d=[];var b=p,v=g;do{if(f.push(b),d.push(v),v=(v+1)%3,!1===b.J[v].visible)do{for(a=b.la[v],b=b.J[v],s=0;3>s;s++)b.la[s]==a&&(v=s)}while(!1===b.J[v].visible&&(b!==p||v!==g))}while(b!==p||v!==g);var m=null,y=null;for(a=0;a<f.length;a++){b=f[a],v=d[a];var C=b.J[v],w=b.la[(v+1)%3],_=b.la[v],x=w.y-h.y,A=_.z-h.z,S=w.x-h.x,M=w.z-h.z,T=_.x-h.x,k=_.y-h.y;if(0<r.length){var z=r.pop();z.la[0]=h,z.la[1]=w,z.la[2]=_,z.Ha.x=x*A-M*k,z.Ha.y=M*T-S*A,z.Ha.z=S*k-x*T,z.Ya.length=0,z.visible=!1,z.ad=!0}else z={la:[h,w,_],J:Array(3),Ha:{x:x*A-M*k,y:M*T-S*A,z:S*k-x*T},Ya:[],visible:!1};c.push(z),b.J[v]=z,z.J[1]=b,null!==y&&(y.J[0]=z,z.J[2]=y),y=z,null===m&&(m=z),o(z,b,C)}for(y.J[0]=m,m.J[2]=y,a=[],s=0;s<c.length;s++)if(!0===(f=c[s]).visible){for(b=(d=f.Ya).length,h=0;h<b;h++)m=(v=d[h]).Lc,y=v.ec,null!==m&&(m.ec=y),null!==y&&(y.Lc=m),null===m&&(v.Rc.Pb=y),n.push(v);f.ad&&r.push(f)}else a.push(f);c=a}l++}for(a=0;a<c.length;a++)(f=c[a]).ad&&r.push(f)}return{pe:c}},e.add=function(t,i){if(0<n.length){var r=n.pop();r.face=t,r.Rc=i,r.ec=null,r.Lc=null}else r=new e(t,i);t.Ya.push(r),null!==(t=i.Pb)&&(t.Lc=r),r.ec=t,i.Pb=r};for(var n=Array(2e3),i=0;i<n.length;i++)n[i]=new e(null,null);var r=Array(1e3);for(i=0;i<r.length;i++)r[i]={la:Array(3),J:Array(3),Ha:{x:0,y:0,z:0},Ya:[],visible:!1}},k=new function(){function e(e,t,n,i,r,o,a,s){var u=(e-n)*(o-s)-(t-i)*(r-a);if(!(1e-12>Math.abs(u)))return{x:((e*i-t*n)*(r-a)-(e-n)*(r*s-o*a))/u,y:((e*i-t*n)*(o-s)-(t-i)*(r*s-o*a))/u}}return this.i=function(t,n){for(var i=t[0],r=i.x,o=i.y,a=i.x,s=i.y,u=t.length-1;0<u;u--)i=t[u],r=Math.min(r,i.x),o=Math.min(o,i.y),a=Math.max(a,i.x),s=Math.max(s,i.y);if(!(a-r<3*n||s-o<3*n)){e:{for(null==(i=!0)&&(i=!1),r=[],o=t.length,a=0;a<=o;a++){s=t[a%o],u=t[(a+1)%o];var l=t[(a+2)%o],c=u.x-s.x,h=u.y-s.y,f=Math.sqrt(c*c+h*h),d=n*c/f,p=n*h/f;if(c=l.x-u.x,h=l.y-u.y,c=n*c/(f=Math.sqrt(c*c+h*h)),h=n*h/f,(s=e(s.x-p,s.y+d,u.x-p,u.y+d,u.x-h,u.y+c,l.x-h,l.y+c))&&(r.push(s),l=r.length,i&&3<=l&&(s=r[l-3],u=r[l-2],l=r[l-1],0>(u.x-s.x)*(l.y-s.y)-(l.x-s.x)*(u.y-s.y)))){i=void 0;break e}}r.shift(),i=3>r.length?void 0:r}if(!i)e:{for(r=t.slice(0),i=0;i<t.length;i++){if(a=t[i%t.length],l=(u=t[(i+1)%t.length]).x-a.x,o=u.y-a.y,l=n*l/(s=Math.sqrt(l*l+o*o)),s=n*o/s,o=a.x-s,a=a.y+l,s=u.x-s,l=u.y+l,0!=r.length){for(p=o-s,h=a-l,d=[],c=f=!0,u=0;u<r.length;u++){var g=p*(a-r[u].y)-(o-r[u].x)*h;1e-12>=g&&-1e-12<=g&&(g=0),d.push(g),0<g&&(f=!1),0>g&&(c=!1)}if(f)r=[];else if(!c){for(p=[],u=0;u<r.length;u++)h=(u+1)%r.length,f=d[u],c=d[h],0<=f&&p.push(r[u]),(0<f&&0>c||0>f&&0<c)&&p.push(e(r[u].x,r[u].y,r[h].x,r[h].y,o,a,s,l));r=p}}if(3>r.length){i=void 0;break e}}i=r}return i}},this},z=new function(){function e(e){for(var t=e[0].x,n=e[0].y,i=t,r=n,o=1;o<e.length;o++){var a=e[o];t=Math.min(t,a.x),n=Math.min(n,a.y),i=Math.max(i,a.x),r=Math.max(r,a.y)}return[{x:t+2*(e=i-t),y:n+2*(r-=n),w:0},{x:t+2*e,y:n-2*r,w:0},{x:t-2*e,y:n+2*r,w:0}]}this.i=function(t,n){function i(e){var t=[e[0]],n=e[0][0],i=e[0][1],r=e.length,o=1;e:for(;o<r;o++)for(var a=1;a<r;a++){var s=e[a];if(null!==s){if(s[1]===n){if(t.unshift(s),n=s[0],e[a]=null,t.length===r)break e;continue}if(s[0]===i&&(t.push(s),i=s[1],e[a]=null,t.length===r))break e}}return t[0][0]!=t[r-1][1]&&t.push([t[r-1][1],t[0][0]]),t}function r(e,t,n,i){var r,o,a=[],s=[],u=n.length,l=t.length,c=0,h=-1,f=-1,d=i;for(i=0;i<u;i++){var p=(d+1)%u,g=n[d][0],b=n[p][0];if(1e-12<M.i(g.ea,b.ea))if(g.jb&&b.jb){var v=[],m=[];for(r=0;r<l;r++){var y=(c+1)%l;if((o=M.T(t[c],t[y],g.ea,b.ea,!1))&&(m.push(c),2===v.push(o)))break;c=y}if(2===v.length){if(r=v[1],g=(o=M.i(g.ea,v[0]))<(r=M.i(g.ea,r))?0:1,o=o<r?1:0,r=m[g],-1===h&&(h=r),-1!==f)for(;r!=f;)f=(f+1)%l,a.push(t[f]),s.push(null);a.push(v[g],v[o]),s.push(n[d][2],null),f=m[o]}}else if(g.jb&&!b.jb)for(r=0;r<l;r++){if(y=(c+1)%l,o=M.T(t[c],t[y],g.ea,b.ea,!1)){if(-1!==f)for(v=f;c!=v;)v=(v+1)%l,a.push(t[v]),s.push(null);a.push(o),s.push(n[d][2]),-1===h&&(h=c);break}c=y}else if(!g.jb&&b.jb)for(r=0;r<l;r++){if(y=(c+1)%l,o=M.T(t[c],t[y],g.ea,b.ea,!1)){a.push(g.ea,o),s.push(n[d][2],null),f=c;break}c=y}else a.push(g.ea),s.push(n[d][2]);d=p}if(0==a.length)s=a=null;else if(-1!==f)for(;h!=f;)f=(f+1)%l,a.push(t[f]),s.push(null);e.C=a,e.J=s}if(1===t.length)t[0].C=n.slice(0),t[0].J=[];else{var o,a=e(n),s=[];for(o=0;o<a.length;o++){var u=a[o];s.push({x:u.x,y:u.y,z:u.x*u.x+u.y*u.y-u.w})}for(o=0;o<t.length;o++)(u=t[o]).C=null,s.push({x:u.x,y:u.y,z:u.x*u.x+u.y*u.y-u.w});var l=T.i(s).pe;for(function(){for(o=0;o<l.length;o++){var e=l[o],t=e.la,n=t[0],i=t[1],r=t[2];t=n.x;var a=n.y;n=n.z;var s=i.x,u=i.y;i=i.z;var c=r.x,h=r.y;r=r.z;var f=t*(u-h)+s*(h-a)+c*(a-u);e.ea={x:-(a*(i-r)+u*(r-n)+h*(n-i))/f/2,y:-(n*(s-c)+i*(c-t)+r*(t-s))/f/2}}}(),function(e){for(o=0;o<l.length;o++){var t=l[o];t.jb=!M.sa(e,t.ea)}}(n),s=function(e,t){var n,i=Array(t.length);for(n=0;n<i.length;n++)i[n]=[];for(n=0;n<e.length;n++){var r=e[n];if(!(0>r.Ha.z))for(var o=r.J,a=0;a<o.length;a++){var s=o[a];if(!(0>s.Ha.z)){var u=r.la,l=u[(a+1)%3].index;u=u[a].index,2<l&&i[l-3].push([r,s,2<u?t[u-3]:null])}}}return i}(l,t),o=0;o<t.length;o++)if(0!==(u=s[o]).length){var c=t[o],h=(u=i(u)).length,f=-1;for(a=0;a<h;a++)u[a][0].jb&&(f=a);if(0<=f)r(c,n,u,f);else{f=[];var d=[];for(a=0;a<h;a++)1e-12<M.i(u[a][0].ea,u[(a+1)%h][0].ea)&&(f.push(u[a][0].ea),d.push(u[a][2]));c.C=f,c.J=d}c.C&&3>c.C.length&&(c.C=null,c.J=null)}}},this.u=function(t,n){var i,r=!1,o=t.length;for(i=0;i<o;i++){var a=t[i];null===a.C&&(r=!0),a.Yd=a.w}if(r){r=e(n);var s=[];for(i=t.length,a=0;a<r.length;a++){var u=r[a];s.push({x:u.x,y:u.y,z:u.x*u.x+u.y*u.y})}for(a=0;a<i;a++)u=t[a],s.push({x:u.x,y:u.y,z:u.x*u.x+u.y*u.y});for(u=T.i(s).pe,r=Array(i),a=0;a<i;a++)r[a]={};for(s=u.length,a=0;a<s;a++){var l=u[a];if(0<l.Ha.z){var c=l.la,h=c.length;for(l=0;l<h-1;l++){var f=c[l].index-3,d=c[l+1].index-3;0<=f&&0<=d&&(r[f][d]=!0,r[d][f]=!0)}l=c[0].index-3,0<=d&&0<=l&&(r[d][l]=!0,r[l][d]=!0)}}for(a=0;a<i;a++){for(var p in l=r[a],u=t[a],d=Number.MAX_VALUE,s=null,l)l=t[p],d>(c=M.i(u,l))&&(d=c,s=l);u.wj=s,u.Ze=Math.sqrt(d)}for(i=0;i<o;i++)a=t[i],p=Math.min(Math.sqrt(a.w),.95*a.Ze),a.w=p*p;for(this.i(t,n),i=0;i<o;i++)(a=t[i]).Yd!==a.w&&0<a.kc&&(n=Math.min(a.kc,a.Yd-a.w),a.w+=n,a.kc-=n)}}},D=new function(){this.H=function(e){for(var t=0,n=(e=e.m).length,i=0;i<n;i++){var r=e[i];if(r.C){var o=r.x,a=r.y;M.u(r.C,r),t<(r=(0<(o-=r.x)?o:-o)+(0<(r=a-r.y)?r:-r))&&(t=r)}}return t},this.i=function(e,t){var n=e.m;switch(t){case"random":return e.m[Math.floor(n.length*Math.random())];case"topleft":var i=(e=n[0]).x+e.y;for(t=1;t<n.length;t++){var r=n[t],o=r.x+r.y;o<i&&(i=o,e=r)}return e;case"bottomright":for(i=(e=n[0]).x+e.y,t=1;t<n.length;t++)(o=(r=n[t]).x+r.y)>i&&(i=o,e=r);return e;default:for(r=n[0],i=o=M.i(e,r),t=n.length-1;1<=t;t--){var a=n[t];(o=M.i(e,a))<i&&(i=o,r=a)}return r}},this.u=function(e,t,n){var i=e.m;if(i[0].J){var r,o=i.length;for(e=0;e<o;e++)i[e].Sc=!1,i[e].Zb=0;var a=r=0;for((o=[])[r++]=t||i[0],t=t.Zb=0;a<r;)if(!(i=o[a++]).Sc&&i.J){n(i,t++,i.Zb),i.Sc=!0;var s=i.J,u=s.length;for(e=0;e<u;e++){var l=s[e];l&&!0!==l.Sc&&(0===l.Zb&&(l.Zb=i.Zb+1),o[r++]=l)}}}else for(e=0;e<i.length;e++)n(i[e],e,1)}},B=function(){function e(e,r,u,l,c,d,p,g){var b=y.extend({},a,e);1>e.lineHeight&&(e.lineHeight=1),e=b.fontFamily;var v=b.fontStyle+" "+b.fontVariant+" "+b.fontWeight,m=b.hb,C=b.Gc,w=v+" "+e;b.te=w;var _={ka:!1,bc:0,fontSize:0};if(r.save(),r.font=v+" 100px "+e,r.textBaseline="middle",r.textAlign="center",function(e,t){t=t.te;var n=s[t];void 0===n&&(n={},s[t]=n),n[" "]=e.measureText(" ").width,n["…"]=e.measureText("…").width}(r,b),u=u.trim(),h.text=u,function(e,t,n,i){for(var r,o,a=0;a<e.length;a++)e[a].y===t.y&&(void 0===r?r=a:o=a);void 0===o&&(o=r),r!==o&&e[o].x<e[r].x&&(a=r,r=o,o=a),i.C=e,i.F=t,i.cd=n,i.Xe=r,i.Ye=o}(l,c,d,f),/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/.test(u)?(n(h),t(r,h,w),i(b,h,f,C,m,!0,_)):(t(r,h,w),i(b,h,f,C,m,!1,_),!_.ka&&(p&&(n(h),t(r,h,w)),g||p)&&(g&&(_.Ub=!0),i(b,h,f,C,C,!0,_))),_.ka){var x="",A=0,S=Number.MAX_VALUE,M=Number.MIN_VALUE;o(b,h,_.bc,_.fontSize,f,_.Ub,(function(e,t){0<x.length&&" "===t&&(x+=" "),x+=e}),(function(e,t,n,i,o){"­"===i&&(x+="‐"),r.save(),r.translate(d.x,t),e=_.fontSize/100,r.scale(e,e),r.fillText(x,0,0),r.restore(),x=n,A<o&&(A=o),S>t&&(S=t),M<t&&(M=t)})),_.box={x:d.x-A/2,y:S-_.fontSize/2,w:A,o:M-S+_.fontSize},r.restore()}else r.clear&&r.clear();return _}function t(e,t,n){var i,r=t.text.split(/(\n|[ \f\r\t\v\u2028\u2029]+|\u00ad+|\u200b+)/),o=[],a=[],u=r.length>>>1;for(i=0;i<u;i++)o.push(r[2*i]),a.push(r[2*i+1]);for(2*i<r.length&&(o.push(r[2*i]),a.push(void 0)),n=s[n],i=0;i<o.length;i++)void 0===(u=n[r=o[i]])&&(u=e.measureText(r).width,n[r]=u);t.Tc=o,t.Qf=a}function n(e){for(var t=e.text.split(/\s+/),n=[],i={".":!0,",":!0,";":!0,"?":!0,"!":!0,":":!0,"。":!0},r=0;r<t.length;r++){var o=t[r];if(3<o.length){var a="";a+=o.charAt(0),a+=o.charAt(1);for(var s=2;s<o.length-2;s++){var u=o.charAt(s);i[u]||(a+="​"),a+=u}a+="​",a+=o.charAt(o.length-2),a+=o.charAt(o.length-1),n.push(a)}else n.push(o)}e.text=n.join(" ")}function i(e,t,n,i,r,a,s){var u=e.lineHeight,l=Math.max(e.Ua,.001),c=e.ib,h=t.Tc,f=n.cd,d=n.F,p=void 0,g=void 0;switch(e.verticalAlign){case"top":f=d.y+d.o-f.y;break;case"bottom":f=f.y-d.y;break;default:f=2*Math.min(f.y-d.y,d.y+d.o-f.y)}if(!(0>=(c=Math.min(f,c*n.F.o)))){f=i,r=Math.min(r,c),d=Math.min(1,c/Math.max(20,t.Tc.length));do{var b=(f+r)/2,v=Math.min(h.length,Math.floor((c+b*(u-1-2*l))/(b*u))),m=void 0;if(0<v)for(var y=1,C=v;;){var w=Math.floor((y+C)/2);if(o(e,t,w,b,n,a&&b===i&&w===v,null,null)){if(y===(C=p=m=w))break}else if((y=w+1)>C)break}void 0!==m?f=g=b:r=b}while(r-f>d);return void 0===g?(s.ka=!1,s.fontSize=0):(s.ka=!0,s.fontSize=g,s.bc=p,s.Ub=a&&b===f),s}s.ka=!1}function o(e,t,n,i,r,o,a,h){var f=e.cb,d=i*(e.lineHeight-1),p=Math.max(e.Ua,.001),g=s[e.te],b=t.Tc;t=t.Qf;var v=r.C,m=r.cd,y=r.Xe,C=r.Ye;switch(e.verticalAlign){case"top":r=m.y+i/2+i*p;var w=1;break;case"bottom":r=m.y-(i*n+d*(n-1))+i/2-i*p,w=-1;break;default:r=m.y-(i*(n-1)/2+d*(n-1)/2),w=1}for(e=r,p=0;p<n;p++)u[2*p]=r-i/2,u[2*p+1]=r+i/2,r+=w*i,r+=w*d;for(;l.length<u.length;)l.push(Array(2));p=u,r=2*n,w=l;var _=v.length,x=y;y=(y-1+_)%_;var A=C;C=(C+1)%_;for(var S=0;S<r;){for(var M=p[S],T=v[y];T.y<M;)x=y,T=v[y=(y-1+_)%_];for(var k=v[C];k.y<M;)A=C,k=v[C=(C+1)%_];var z=v[x],D=v[A];k=D.x+(k.x-D.x)*(M-D.y)/(k.y-D.y),w[S][0]=z.x+(T.x-z.x)*(M-z.y)/(T.y-z.y),w[S][1]=k,S++}for(p=0;p<n;p++)v=2*p,w=(w=(r=m.x)-l[v][0])<(_=l[v][1]-r)?w:_,v=(_=r-l[v+1][0])<(v=l[v+1][1]-r)?_:v,c[p]=2*(w<v?w:v)-f*i;for(x=g[" "]*i/100,w=g["…"]*i/100,y=c[f=0],m=0,v=void 0,p=0;p<b.length;p++){if(r=b[p],A=t[p],m+(_=g[r]*i/100)<y&&b.length-p>=n-f&&"\n"!=v)m+=_," "===A&&(m+=x),a&&a(r,v);else{if(_>y&&(f!==n-1||!o))return!1;if(f+1>=n)return!!o&&(((n=y-m-w)>w||_>w)&&(0<(n=Math.floor(r.length*n/_))&&a&&a(r.substring(0,n),v)),a&&a("…",void 0),h&&h(f,e,r,v,m),!0);if(f++,h&&h(f,e,r,v,m),e+=i,e+=d,m=_," "===A&&(m+=x),_>(y=c[f])&&(f!==n||!o))return!1}v=A}return h&&h(f,e,void 0,void 0,m),!0}var a={hb:72,Gc:0,lineHeight:1.05,cb:1,Ua:.5,ib:.9,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",verticalAlign:"center"},s={},u=[],l=[],c=[],h={text:"",Tc:void 0,Qf:void 0},f={C:void 0,F:void 0,cd:void 0,Xe:0,Ye:0};return{re:e,de:function(t,n,i,r,o,a,s,u,l,c,h,f){var d=0,p=0;if(i=i.toString().trim(),!f&&l.result&&i===l.Xf&&Math.abs(c-l.Zd)/c<=h){var g=l.result;g.ka&&(d=a.x-l.eg,p=a.y-l.fg,h=l.Qc,n.save(),n.translate(d,p),h.Na(n),n.restore())}return g||((h=l.Qc).clear(),(g=e(t,h,i,r,o,a,s,u)).ka&&h.Na(n),l.Zd=c,l.eg=a.x,l.fg=a.y,l.result=g,l.Xf=i),g.ka?{ka:!0,bc:g.bc,fontSize:g.fontSize,box:{x:g.box.x+d,y:g.box.y+p,w:g.box.w,o:g.box.o},Ub:g.Ub}:{ka:!1}},Zh:function(){return{Zd:0,eg:0,fg:0,result:void 0,Qc:new r,Xf:void 0}},ya:a}}(),L=new function(){function e(e,t){return function(i,r,o,a){function s(e,t,n,i,r){e.C=[{x:t,y:n},{x:t+i,y:n},{x:t+i,y:n+r},{x:t,y:n+r}]}var u=r.x,l=r.y,c=r.w;if(r=r.o,0!=i.length)if(1==i.length)i[0].x=u+c/2,i[0].y=l+r/2,i[0].nd=0,o&&s(i[0],u,l,c,r);else{i=i.slice(0);for(var h=0,f=0;f<i.length;f++)h+=i[f].weight;for(h=c*r/h,f=0;f<i.length;f++)i[f].lc=i[f].weight*h;(function e(i,r,a,u,l){if(0!=i.length){var c=i.shift(),h=n(c);if(t(u,l)){var f=r,d=h/u;do{var p=(h=c.shift()).lc,g=p/d,b=a,v=d;(p=h).x=f+g/2,p.y=b+v/2,o&&s(h,f,a,g,d),f+=g}while(0<c.length);return e(i,r,a+d,u,l-d)}f=a,g=h/l;do{b=f,v=d=(p=(h=c.shift()).lc)/g,(p=h).x=r+g/2,p.y=b+v/2,o&&s(h,r,f,g,d),f+=d}while(0<c.length);return e(i,r+g,a,u-g,l)}})(a=e(i,c,r,[[i.shift()]],a),u,l,c,r)}}}function t(e,t,i,r){function o(e){return Math.max(Math.pow(u*e/s,i),Math.pow(s/(u*e),r))}var a=n(e),s=a*a,u=t*t;for(t=o(e[0].lc),a=1;a<e.length;a++)t=Math.max(t,o(e[a].lc));return t}function n(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].lc;return t}this.u=e((function(e,i,r,o,a){for(var s=1/(a=Math.pow(2,a)),u=i<r;0<e.length;){var l=o[o.length-1],c=e.shift(),h=u?i:r,f=u?a:s,d=u?s:a,p=t(l,h,f,d);l.push(c),p<(h=t(l,h,f,d))&&(l.pop(),o.push([c]),u?r-=n(l)/i:i-=n(l)/r,u=i<r)}return o}),(function(e,t){return e<t})),this.i=e((function(e,n,i,r,o){function a(e){if(1<r.length){for(var i=r[r.length-1],o=r[r.length-2].slice(0),a=0;a<i.length;a++)o.push(i[a]);t(o,n,s,u)<e&&r.splice(-2,2,o)}}for(var s=Math.pow(2,o),u=1/s;0<e.length;){if(o=t(i=r[r.length-1],n,s,u),0==e.length)return;var l=e.shift();i.push(l),o<t(i,n,s,u)&&(i.pop(),a(o),r.push([l]))}return a(t(r[r.length-1],n,s,u)),r}),(function(){return!0}))};function E(e){var t,n={},i=e.Cd;e.j.subscribe("model:loaded",(function(e){t=e})),this.M=function(){e.j.D("api:initialized",this)},this.nc=function(e,t,r,o){this.Xc(n,t),this.Yc(n,t),this.Wc(n,t,!1),o&&o(n),e(i,n,r)},this.bd=function(e,n,i,r,o,a,s){if(e){for(e=n.length-1;0<=e;e--){var u=n[e],l=y.extend({group:u.group},o);l[i]=r(u),a(l)}0<n.length&&s(y.extend({groups:S.uc(t,r).map((function(e){return e.group}))},o))}},this.Yc=function(e,t){return e.selected=t.selected,e.hovered=t.ub,e.open=t.open,e.openness=t.Cb,e.exposed=t.U,e.exposure=t.ja,e.transitionProgress=t.ra,e.revealed=!t.aa.Ga(),e.browseable=t.Ia?t.R:void 0,e.visible=t.Y,e.labelDrawn=t.oa&&t.oa.ka,e},this.Xc=function(e,t){var n=t.parent;return e.group=t.group,e.parent=n&&n.group,e.weightNormalized=t.cg,e.level=t.level-1,e.siblingCount=n&&n.m.length,e.hasChildren=!t.empty(),e.index=t.index,e.indexByWeight=t.nd,e.description=t.description,e.attribution=t.attribution,e},this.Wc=function(e,t,n){if(e.polygonCenterX=t.O.x,e.polygonCenterY=t.O.y,e.polygonArea=t.O.ha,e.boxLeft=t.F.x,e.boxTop=t.F.y,e.boxWidth=t.F.w,e.boxHeight=t.F.o,t.oa&&t.oa.ka){var i=t.oa.box;e.labelBoxLeft=i.x,e.labelBoxTop=i.y,e.labelBoxWidth=i.w,e.labelBoxHeight=i.o,e.labelFontSize=t.oa.fontSize}return n&&t.$&&(e.polygon=t.$.map((function(e){return{x:e.x,y:e.y}})),e.neighbors=t.J&&t.J.map((function(e){return e&&e.group}))),e}}var j=new function(){var e=window.console;this.i=function(e){throw"FoamTree: "+e},this.info=function(t){e.info("FoamTree: "+t)},this.warn=function(t){e.warn("FoamTree: "+t)}};function O(e){function t(t,i){t.m=[],t.Ea=!0;var o=r(i),a=0;if(("flattened"===e.mb||"always"===e.zg&&t.group&&t.group.description)&&0<i.length&&0<t.level){var s=i.reduce((function(e,t){return e+y.I(t.weight,1)}),0),u=n(t.group,!1);u.description=!0,u.weight=s*e.Sb,u.index=a++,u.parent=t,u.level=t.level+1,u.id=u.id+"_d",t.m.push(u)}for(s=0;s<i.length;s++){var l=i[s];if(0>=(u=y.I(l.weight,1))){if(!e.Wi)continue;u=.9*o}(l=n(l,!0)).weight=u,l.index=a,l.parent=t,l.level=t.level+1,t.m.push(l),a++}}function n(e,t){var n=new ee;return i(e),n.id=e.__id,n.group=e,t&&(l[e.__id]=n),n}function i(e){y.has(e,"__id")||(Object.defineProperty(e,"__id",{enumerable:!1,configurable:!1,writable:!1,value:u}),u++)}function r(e){for(var t=Number.MAX_VALUE,n=0;n<e.length;n++){var i=e[n].weight;0<i&&t>i&&(t=i)}return t===Number.MAX_VALUE&&(t=1),t}function o(e){if(!e.empty()){var t,n=0;for(t=(e=e.m).length-1;0<=t;t--){var i=e[t].weight;n<i&&(n=i)}for(t=e.length-1;0<=t;t--)(i=e[t]).cg=i.weight/n}}function a(e){if(!e.empty()){e=e.m.slice(0).sort((function(e,t){return e.weight<t.weight?1:e.weight>t.weight?-1:e.index-t.index}));for(var t=0;t<e.length;t++)e[t].nd=t}}function s(){for(var t=p.m.reduce((function(e,t){return e+t.weight}),0),n=0;n<p.m.length;n++){var i=p.m[n];i.attribution&&(i.weight=Math.max(.025,e.sg)*t)}}var u,l,c,h,f,d=this,p=new ee;this.M=function(){return p},this.T=function(n){var i=n.group.groups,r=e.Rh;return!!(!n.m&&!n.description&&i&&0<i.length&&f+i.length<=r)&&(f+=i.length,t(n,i),o(n),a(n),!0)},this.load=function(e){p.group=e,p.xa=!1,p.R=!1,p.Ia=!1,p.open=!0,p.Cb=1,u=function e(t,n){if(!t)return n;if(n=Math.max(n,t.__id||0),(t=t.groups)&&0<t.length)for(var i=t.length-1;0<=i;i--)n=e(t[i],n);return n}(e,0)+1,l={},c={},h={},f=0,e&&(i(e),l[e.__id]=p,y.V(e.id)||(c[e.id]=e),function e(t){var n=t.groups;if(n)for(var r=0;r<n.length;r++){var o=n[r];i(o);var a=o.__id;l[a]=null,h[a]=t,a=o.id,y.V(a)||(c[a]=o),e(o)}}(e)),t(p,e&&e.groups||[]),function(e){if(!e.empty()){var t=n({attribution:!0});t.index=e.m.length,t.parent=e,t.level=e.level+1,t.attribution=!0,e.m.push(t)}}(p),o(p),s(),a(p)},this.update=function(e){e.forEach((function(e){S.za(e,(function(e){if(!e.empty())for(var t=r((e=e.m).map((function(e){return e.group}))),n=0;n<e.length;n++){var i=e[n];i.weight=0<i.group.weight?i.group.weight:.9*t}})),o(e),e===p&&s(),a(e)}))},this.u=function(e){return function(){if(y.V(e)||y.Re(e))return[];if(Array.isArray(e))return e.map(d.i,d);if(y.wb(e)){if(y.has(e,"__id"))return[d.i(e)];if(y.has(e,"all")){var t=[];return S.L(p,(function(e){t.push(e)})),t}if(y.has(e,"groups"))return d.u(e.groups)}return[d.i(e)]}().filter((function(e){return void 0!==e}))},this.i=function(e){if(y.wb(e)&&y.has(e,"__id")){if(e=e.__id,y.has(l,e)){if(null===l[e]){for(var t=h[e],n=[];t&&(t=t.__id,n.push(t),!l[t]);)t=h[t];for(t=n.length-1;0<=t;t--)this.T(l[n[t]])}return l[e]}}else if(y.has(c,e))return this.i(c[e])},this.H=function(e,t,n){return{m:d.u(e),Ca:y.I(e&&e[t],!0),Ba:y.I(e&&e.keepPrevious,n)}}}function I(e,t,n){var i={};t.Ba&&S.L(e,(function(e){n(e)&&(i[e.id]=e)})),e=t.m,t=t.Ca;for(var r=e.length-1;0<=r;r--){var o=e[r];i[o.id]=t?o:void 0}var a=[];return y.Aa(i,(function(e){void 0!==e&&a.push(e)})),a}function N(e){function t(e,t){e=e.ja,t.opacity=1,t.Da=1,t.va=0>e?1-A.Ch/100*e:1,t.saturation=0>e?1-A.Dh/100*e:1,t.ca=0>e?1+.5*e:1}function n(e){return e=e.ja,Math.max(.001,0===e?1:1+e*(A.Pa-1))}function i(t,n,i,u){var l=o();if(0===t.length&&!l)return(new h).resolve().promise();var v=t.reduce((function(e,t){return e[t.id]=!0,e}),{}),y=[];if(t=[],C.reduce((function(e,t){return e||v[t.id]&&(!t.U||1!==t.ja)||!v[t.id]&&!t.parent.U&&(t.U||-1!==t.ja)}),!1)){var M=[],T={};C.forEach((function(e){v[e.id]&&(e.U||y.push(e),e.U=!0,S.za(e,(function(e){M.push(a(e,1)),T[e.id]=!0})))})),0<M.length?(S.L(c,(function(e){v[e.id]||(e.U&&y.push(e),e.U=!1),T[e.id]||M.push(a(e,-1))})),t.push(b.K.A({}).Qa(M).call(s).Ta()),r(v),t.push(function(t){return t||!g.zd()?b.K.A(d).fa({duration:.7*A.Oa,P:{x:{end:w.x+w.w/2,easing:m.ia(A.Wb)},y:{end:w.y+w.o/2,easing:m.ia(A.Wb)}},ba:function(){e.j.D("foamtree:dirty",!0)}}).Ta():(d.x=w.x+w.w/2,d.y=w.y+w.o/2,(new h).resolve().promise())}(l)),i&&(g.ic(w,A.Yb,A.Oa,m.ia(A.Wb)),g.Fb())):(t.push(function(e){var t=[],n=[];return S.L(c,(function(e){0!==e.ja&&n.push(a(e,0,(function(){this.U=!1})))})),t.push(b.K.A({}).Qa(n).Ta()),g.content(0,0,_,x),e&&(t.push(g.reset(A.Oa,m.ia(A.Wb))),g.Fb()),f(t)}(i)),n&&S.L(c,(function(e){e.U&&y.push(e)})))}return f(t).then((function(){p.bd(n,y,"exposed",(function(e){return e.U}),{indirect:u},e.options.hf,e.options.gf)}))}function r(e){C.reduce(u(!0,void 0,(function(t){return t.U||e[t.id]})),l(w)),w.x-=w.w*(A.Pa-1)/2,w.y-=w.o*(A.Pa-1)/2,w.w*=A.Pa,w.o*=A.Pa}function o(){return!!C&&C.reduce((function(e,t){return e||0!==t.ja}),!1)}function a(n,i,r){var o=b.K.A(n);return 0===n.ja&&0!==i&&o.call((function(){this.mc(M),this.qb(t)})),o.fa({duration:A.Oa,P:{ja:{end:i,easing:m.ia(A.Wb)}},ba:function(){c.N=!0,c.Fa=!0,e.j.D("foamtree:dirty",!0)}}),0===i&&o.call((function(){this.vd(),this.cc(),this.Nc(M),this.Mc(t)})),o.call(r).done()}function s(){var e=c.m.reduce(u(!1,M.transformPoint,void 0),l({})).box,t=A.Yb,n=Math.min(e.x,w.x-w.w*t),i=Math.min(e.y,w.y-w.o*t);g.content(n,i,Math.max(e.x+e.w,w.x+w.w*(1+t))-n,Math.max(e.y+e.o,w.y+w.o*(1+t))-i)}function u(e,t,n){var i={};return function(r,o){if(!n||n(o)){for(var a,s=e&&o.$||o.C,u=s.length-1;0<=u;u--)a=void 0!==t?t(o,s[u],i):s[u],r.Hc=Math.min(r.Hc,a.x),r.wd=Math.max(r.wd,a.x),r.Ic=Math.min(r.Ic,a.y),r.xd=Math.max(r.xd,a.y);r.box.x=r.Hc,r.box.y=r.Ic,r.box.w=r.wd-r.Hc,r.box.o=r.xd-r.Ic}return r}}function l(e){return{Hc:Number.MAX_VALUE,wd:Number.MIN_VALUE,Ic:Number.MAX_VALUE,xd:Number.MIN_VALUE,box:e}}var c,d,p,g,b,v,C,w,_,x,A=e.options,M={Ve:function(e,t){return t.scale=n(e),!1},Ib:function(e,t){e=n(e);var i=d.x,r=d.y;t.translate(i,r),t.scale(e,e),t.translate(-i,-r)},Jb:function(e,t,i){e=n(e);var r=d.x,o=d.y;i.x=(t.x-r)/e+r,i.y=(t.y-o)/e+o},transformPoint:function(e,t,i){e=n(e);var r=d.x,o=d.y;return i.x=(t.x-r)*e+r,i.y=(t.y-o)*e+o,i}};e.j.subscribe("stage:initialized",(function(e,t,n,i){d={x:n/2,y:i/2},w={x:0,y:0,w:_=n,o:x=i}})),e.j.subscribe("stage:resized",(function(e,t,n,i){d.x*=n/e,d.y*=i/t,_=n,x=i})),e.j.subscribe("api:initialized",(function(e){p=e})),e.j.subscribe("zoom:initialized",(function(e){g=e})),e.j.subscribe("model:loaded",(function(e,t){c=e,C=t})),e.j.subscribe("model:childrenAttached",(function(e){C=e})),e.j.subscribe("timeline:initialized",(function(e){b=e})),e.j.subscribe("openclose:initialized",(function(e){v=e}));var T=["groupExposureScale","groupUnexposureScale","groupExposureZoomMargin"];e.j.subscribe("options:changed",(function(e){y.bb(e,T)&&o()&&(r({}),g.cj(w,A.Yb),g.Fb())})),this.M=function(){e.j.D("expose:initialized",this)},this.Vb=function(e,t,n,r){var o=e.m.reduce((function(e,t){for(;t=t.parent;)e[t.id]=!0;return e}),{}),a=I(c,e,(function(e){return e.U&&!e.open&&!o[e.id]})),s=new h;return function(e,t){for(var n=e.reduce((function(e,t){return e[t.id]=t,e}),{}),i=e.length-1;0<=i;i--)S.L(e[i],(function(e){n[e.id]=void 0}));var r=[];y.Aa(n,(function(e){e&&S.me(e,(function(e){e.open||r.push(e)}))}));var o=[];return y.Aa(n,(function(e){e&&e.open&&o.push(e)})),e=[],0!==r.length&&e.push(v.Bb({m:r,Ca:!0,Ba:!0},t,!0)),f(e)}(a,t).then((function(){i(a.filter((function(e){return e.C&&e.$})),t,n,r).then(s.resolve)})),s.promise()}}function P(e){var t,n,i=[],r=new d(y.qa);e.j.subscribe("stage:initialized",(function(){})),e.j.subscribe("stage:resized",(function(){})),e.j.subscribe("stage:newLayer",(function(e,t){i.push(t)})),e.j.subscribe("model:loaded",(function(e){t=e,r.clear()})),e.j.subscribe("zoom:initialized",(function(){})),e.j.subscribe("timeline:initialized",(function(e){n=e}));var o=!1;e.j.subscribe("render:renderers:resolved",(function(e){o=e.labelPlainFill||!1}));var a=new function(){var e=0,t=0,n=0,i=0,r=0,o=0;this.i=function(a,s,u,l,c){t=1-(e=1+s),n=u,i=l,r=c,o=a},this.Ve=function(o,a){return a.scale=e+t*o.ra,0!==r||0!==n||0!==i},this.Ib=function(a,s){var u=e+t*a.ra,l=a.parent,c=o*a.x+(1-o)*l.x,h=o*a.y+(1-o)*l.y;s.translate(c,h),s.scale(u,u),a=1-a.ra,s.rotate(r*Math.PI*a),s.translate(-c,-h),s.translate(l.F.w*n*a,l.F.o*i*a)},this.Jb=function(r,a,s){var u=e+t*r.ra,l=o*r.x+(1-o)*r.parent.x,c=o*r.y+(1-o)*r.parent.y,h=1-r.ra;r=r.parent,s.x=(a.x-l)/u+l-r.F.w*n*h,s.y=(a.y-c)/u+c-r.F.o*i*h},this.transformPoint=function(r,a,s){var u=e+t*r.ra,l=o*r.x+(1-o)*r.parent.x,c=o*r.y+(1-o)*r.parent.y,h=1-r.ra;r=r.parent,s.x=(a.x-l)*u+l-r.F.w*n*h,s.y=(a.y-c)*u+c-r.F.o*i*h}};this.M=function(){},this.u=function(){function i(e,t){var n=Math.min(1,Math.max(0,e.ra));t.opacity=n,t.va=1,t.saturation=n,t.Da=n,t.ca=e.yb}function s(e,t){var n=Math.min(1,Math.max(0,e.Hd));t.opacity=n,t.Da=n,t.va=1,t.saturation=1,t.ca=e.yb}var u=e.options,l=u.Gd,c=u.ii,h=u.ji,f=u.ki,d=u.ei,p=u.fi,g=u.gi,b=u.ai,v=u.bi,y=u.ci,C=d+p+g+b+v+y+c+h+f,w=0<C?l/C:0,_=[];return r.initial()?a.i(u.oi,u.mi,u.pi,u.ri,u.li):a.i(u.Mf,u.Lf,u.Nf,u.Of,u.Kf),D.u(t,D.i(t,e.options.ni),(function(t,r,l){var C="groups"===e.options.hi?l:r;_.push(n.K.A(t).call((function(){this.qb(i)})).wait(o?w*(d+C*p):0).fa({duration:o?w*g:0,P:{yb:{end:0,easing:m.Ab}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",!0)}}).done()),S.L(t,(function(t){_.push(n.K.A(t).call((function(){this.mc(a),this.qb(s)})).wait(w*(b+v*C)).fa({duration:w*y,P:{Hd:{end:0,easing:m.Ab}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",!0)}}).Xa((function(){this.selected=!1,this.Nc(a)})).done())})),_.push(n.K.A(t).call((function(){this.mc(a)})).wait(w*(c+h*C)).fa({duration:w*f,P:{ra:{end:0,easing:m.ia(u.di)}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",!0)}}).Xa((function(){this.selected=!1,this.Nc(a)})).done())})),n.K.A({}).Qa(_).Ta()},this.i=function(t){return function(t){function i(e,t){var n=Math.min(1,Math.max(0,e.ra));t.opacity=n,t.va=1,t.saturation=n,t.Da=n,t.ca=e.yb}var s=e.options,u=s.Ri,l=s.Si,c=s.Oi,f=s.Pi,d=s.Qi,p=s.Od,g=u+l+c+f+d,b=0<g?p/g:0,v=[];if(a.i(s.Mf,s.Lf,s.Nf,s.Of,s.Kf),0===b&&t.m&&t.R){for(p=t.m,g=0;g<p.length;g++){var y=p[g];y.ra=1,y.yb=1,y.qb(i),y.cc(),y.Mc(i)}return t.N=!0,e.j.D("foamtree:dirty",0<b),(new h).resolve().promise()}if(t.m&&t.R){D.u(t,D.i(t,e.options.Qd),(function(t,r,h){t.mc(a),t.qb(i),h="groups"===e.options.Pd?h:r,r=n.K.A(t).wait(h*b*u).fa({duration:b*l,P:{ra:{end:1,easing:m.ia(s.Ni)}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",0<b)}}).done(),h=n.K.A(t).wait(o?b*(c+h*f):0).fa({duration:o?b*d:0,P:{yb:{end:1,easing:m.Ab}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",0<b)}}).done(),t=n.K.A(t).Qa([r,h]).Xd().Xa((function(){this.vd(),this.cc(),this.Nc(a),this.Mc(i)})).done(),v.push(t)})),r.i();var C=new h;return n.K.A({}).Qa(v).call((function(){r.u(),C.resolve()})).start(),C.promise()}return(new h).resolve().promise()}(t)}}function F(e){function t(t,r,s){function u(e,t){t.opacity=1-e.Cb,t.va=1,t.saturation=1,t.ca=1,t.Da=1}var l=[],c=[];return S.L(o,(function(r){if(r.R&&r.X){var o=y.has(t,r.id),a=n[r.id];if(a&&a.xb())a.stop();else if(r.open===o)return;r.Va=o,o||(r.open=o,r.Bd=!1),c.push(r),l.push(function(t,r){t.qb(u);var o=i.K.A(t).fa({duration:e.options.Kc,P:{Cb:{end:r?1:0,easing:m.fe}},ba:function(){this.N=!0,e.j.D("foamtree:dirty",!0)}}).call((function(){this.open=r,t.Va=!1})).Xa((function(){this.cc(),this.Mc(u),delete n[this.id]})).done();return n[t.id]=o}(r,o))}})),0<l.length?(e.j.D("openclose:changing"),i.K.A({}).Qa(l).Ta().then((function(){a.bd(r,c,"open",(function(e){return e.open}),{indirect:s},e.options.rf,e.options.qf)}))):(new h).resolve().promise()}var n,i,r,o,a;e.j.subscribe("api:initialized",(function(e){a=e})),e.j.subscribe("model:loaded",(function(e){o=e,n={}})),e.j.subscribe("timeline:initialized",(function(e){i=e})),e.j.subscribe("expose:initialized",(function(e){r=e})),this.M=function(){e.j.D("openclose:initialized",this)},this.Bb=function(n,i,a){if("flattened"==e.options.mb)return(new h).resolve().promise();n=I(o,n,(function(e){return e.open||e.Va}));for(var s=new h,u=0;u<n.length;u++)n[u].Va=!0;0<n.length&&e.j.D("foamtree:attachChildren",n);var l=n.reduce((function(e,t){return e[t.id]=!0,e}),{});return function(e,t){var n,i=[];if(S.L(o,(function(t){if(t.m){var n=y.has(e,t.id);t.open!==n&&(n||t.U||S.L(t,(function(e){if(e.U)return i.push(t),!1})))}})),0===i.length)return(new h).resolve().promise();for(n=i.length-1;0<=n;n--)i[n].open=!1;for(t=r.Vb({m:i,Ca:!0,Ba:!0},t,!0,!0),n=i.length-1;0<=n;n--)i[n].open=!0;return t}(l,i).then((function(){t(l,i,a).then(s.resolve)})),s.promise()}}function R(e){var t,n;e.j.subscribe("api:initialized",(function(e){n=e})),e.j.subscribe("model:loaded",(function(e){t=e})),this.M=function(){e.j.D("select:initialized",this)},this.select=function(i,r){return function(i,r){var o;for(i=I(t,i,(function(e){return e.selected})),S.L(t,(function(e){!0===e.selected&&(e.selected=!e.selected,e.N=!e.N,e.Sa=!e.Sa)})),o=i.length-1;0<=o;o--){var a=i[o];a.selected=!a.selected,a.N=!a.N,a.Sa=!a.Sa}var s=[];S.L(t,(function(e){e.N&&s.push(e)})),0<s.length&&e.j.D("foamtree:dirty",!1),n.bd(r,s,"selected",(function(e){return e.selected}),{},e.options.tf,e.options.sf)}(i,r)}}function G(e){function n(e){return function(t){e.call(this,{x:t.x,y:t.y,scale:t.scale,ed:t.delta,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,shiftKey:t.shiftKey,lb:t.secondary,touches:t.touches})}}function i(){u.pc(2)?e.j.D("interaction:reset"):u.normalize(N.ob,m.ia(N.Kb))}function r(e){return function(){g.empty()||e.apply(this,arguments)}}function o(e,t,n){var i={},r={};return function(o){switch(e){case"click":var s=N.bf;break;case"doubleclick":s=N.cf;break;case"hold":s=N.jf;break;case"hover":s=N.kf;break;case"mousemove":s=N.mf;break;case"mousewheel":s=N.pf;break;case"mousedown":s=N.lf;break;case"mouseup":s=N.nf;break;case"dragstart":s=N.ff;break;case"drag":s=N.df;break;case"dragend":s=N.ef;break;case"transformstart":s=N.wf;break;case"transform":s=N.uf;break;case"transformend":s=N.vf}var l=!1,c=!s.empty(),h=u.absolute(o,i),f=(t||c)&&a(h),d=(t||c)&&function(e){var t=void 0,n=0;return S.sc(g,(function(i){!0===i.open&&i.Y&&i.scale>n&&H(i,e)&&(t=i,n=i.scale)})),t}(h);c&&(c=f?f.group:null,h=f?f.Jb(h,r):h,o.Db=void 0,s=s({type:e,group:c,topmostClosedGroup:c,bottommostOpenGroup:d?d.group:null,x:o.x,y:o.y,xAbsolute:h.x,yAbsolute:h.y,scale:y.I(o.scale,1),secondary:o.lb,touches:y.I(o.touches,1),delta:y.I(o.ed,0),ctrlKey:o.ctrlKey,metaKey:o.metaKey,altKey:o.altKey,shiftKey:o.shiftKey,preventDefault:function(){l=!0},preventOriginalEventDefault:function(){o.Db="prevent"},allowOriginalEventDefault:function(){o.Db="allow"}}),l=l||0<=s.indexOf(!1),f&&f.attribution&&"click"===e&&(l=!1)),l||n&&n({dd:f,ug:d},o)}}function a(e,t){if("flattened"===N.mb)e=function(e){function t(e,n){var i=n.m;if(i){for(var r,o=-Number.MAX_VALUE,a=0;a<i.length;a++){var s=i[a];!s.description&&s.Y&&H(s,e)&&s.scale>o&&(r=s,o=s.scale)}var u;return r&&(u=t(e,r)),u||r||n}return n}for(var n=j.length,i=j[0].scale,r=j[0].scale,o=0;o<n;o++){var a=j[o];(a=a.scale)<i&&(i=a),a>r&&(r=a)}if(i!==r)for(o=0;o<n;o++)if((a=j[o]).scale===r&&a.Y&&H(a,e))return t(e,a);return t(e,g)}(e);else{t=t||0;for(var n=j.length,i=void 0,r=0;r<n;r++){var o=j[r];o.scale>t&&!1===o.open&&o.Y&&H(o,e)&&(i=o,t=o.scale)}e=i}return e&&e.description&&(e=e.parent),e}var s,u,l,c,h,f,d,g,C,w,_,A,T,k,z,D,B,L,E,j,O=t.Lh(),I=this,N=e.options,P=!1;e.j.subscribe("stage:initialized",(function(t,n,i,r){s=n,L=i,E=r,function(){function t(e){return function(t){return t.x*=L/s.clientWidth,t.y*=E/s.clientHeight,e(t)}}"external"!==N.Me&&("hammerjs"===N.Me&&y.has(window,"Hammer")&&(G.M(s),G.A("tap",t(I.i),!0),G.A("doubletap",t(I.u),!0),G.A("hold",t(I.sa),!0),G.A("touch",t(I.ua),!0),G.A("release",t(I.wa),!1),G.A("dragstart",t(I.ga),!0),G.A("drag",t(I.H),!0),G.A("dragend",t(I.T),!0),G.A("transformstart",t(I.pb),!0),G.A("transform",t(I.transform),!0),G.A("transformend",t(I.Ka),!0)),D=new v(s),B=new b,D.i(t(I.i)),D.u(t(I.u)),D.sa(t(I.sa)),D.wa(t(I.ua)),D.Ka(t(I.wa)),D.ga(t(I.ga)),D.H(t(I.H)),D.T(t(I.T)),D.ta(t(I.ta)),D.Ja(t(I.ta)),D.ua(t(I.Ja)),B.addEventListener("keyup",(function(t){var n=!1,i=void 0,r=N.xf({keyCode:t.keyCode,preventDefault:function(){n=!0},preventOriginalEventDefault:function(){i="prevent"},allowOriginalEventDefault:function(){i="allow"}});"prevent"===i&&t.preventDefault(),(n=n||0<=r.indexOf(!1))||27===t.keyCode&&e.j.D("interaction:reset")})))}()})),e.j.subscribe("stage:resized",(function(e,t,n,i){L=n,E=i})),e.j.subscribe("stage:disposed",(function(){D.Za(),G.Za(),B.i()})),e.j.subscribe("expose:initialized",(function(e){c=e})),e.j.subscribe("zoom:initialized",(function(e){u=e})),e.j.subscribe("openclose:initialized",(function(e){h=e})),e.j.subscribe("select:initialized",(function(e){f=e})),e.j.subscribe("titlebar:initialized",(function(e){d=e})),e.j.subscribe("timeline:initialized",(function(e){l=e})),e.j.subscribe("model:loaded",(function(e,t){g=e,j=t})),e.j.subscribe("model:childrenAttached",(function(e){j=e})),this.M=function(){},this.ua=r(o("mousedown",!1,(function(){u.Wh()}))),this.wa=r(o("mouseup",!1,void 0)),this.i=r(o("click",!0,(function(e,t){t.lb||t.shiftKey||!(e=e.dd)||(e.attribution?t.ctrlKey?document.location.href=x("iuuqr;..b`ssnurd`sbi/bnl.gn`lusdd"):(t=m.ia(N.Kb),e.be?(u.reset(N.ob,t),e.be=!1):(u.bg(e,N.Yb,N.ob,t),e.be=!0)):f.select({m:[e],Ca:!e.selected,Ba:t.metaKey||t.ctrlKey},!0))}))),this.u=r(o("doubleclick",!0,(function(t,n){var i=t.dd;i&&i.attribution||(n.lb||n.shiftKey?i&&(i.parent.U&&(i=i.parent),t={m:i.parent!==g?[i.parent]:[],Ca:!0,Ba:!1},f.select(t,!0),c.Vb(t,!0,!0,!1)):i&&(t={m:[i],Ca:!0,Ba:!1},i.Va=!0,e.j.D("foamtree:attachChildren",[i]),c.Vb(t,!0,!0,!1)),i&&l.K.A({}).wait(N.Oa/2).call((function(){h.Bb({m:S.uc(g,(function(e){return e.Bd&&!S.Jh(i,e)})),Ca:!1,Ba:!0},!0,!0),i.Bd=!0,h.Bb({m:[i],Ca:!(n.lb||n.shiftKey),Ba:!0},!0,!0)})).start())}))),this.sa=r(o("hold",!0,(function(e,t){(e=(t=!(t.metaKey||t.ctrlKey||t.shiftKey||t.lb))?e.dd:e.ug)&&e!==g&&h.Bb({m:[e],Ca:t,Ba:!0},!0,!1)}))),this.ga=r(o("dragstart",!1,(function(e,t){C=t.x,w=t.y,_=Date.now(),P=!0}))),this.H=r(o("drag",!1,(function(e,t){if(P){e=Date.now(),k=Math.min(1,e-_),_=e,e=t.x-C;var n=t.y-w;u.Uh(e,n),A=e,T=n,C=t.x,w=t.y}}))),this.T=r(o("dragend",!1,(function(){if(P){P=!1;var e=Math.sqrt(A*A+T*T)/k;4<=e?u.Vh(e,A,T):u.$e()}}))),this.pb=r(o("transformstart",!1,(function(e,t){z=1,C=t.x,w=t.y})));var F=1,R=!1;this.transform=r(o("transform",!1,(function(e,t){e=t.scale-.01,u.pg(t,e/z,t.x-C,t.y-w),z=e,C=t.x,w=t.y,F=z,R=R||2<t.touches}))),this.Ka=r(o("transformend",!1,(function(){R&&.8>F?e.j.D("interaction:reset"):i(),R=!1}))),this.Ja=r(o("mousewheel",!1,function(){var e=y.yg((function(){i()}),300);return function(t,n){1!==(t=N.ij)&&(t=Math.pow(t,n.ed),O?(u.qg(n,t),e()):u.Nb(n,t,N.ob,m.ia(N.Kb)).then(i))}}())),this.ta=r(function(){var t,n=void 0,i={},r=!1,s=o("hover",!1,(function(){n&&(n.ub=!1,0<n.level&&(n.N=!0)),t&&(t.ub=!0,0<t.level&&(t.N=!0)),d.update(t),e.j.D("foamtree:dirty",!1)})),l=o("mousemove",!1,void 0);return function(e){if("out"===e.type)r=(t=void 0)!==n;else if(u.absolute(e,i),n&&!n.open&&H(n,i)){var o=a(i,n.scale);o&&o!==n?(r=!0,t=o):r=!1}else t=a(i),r=t!==n;r&&(s(e),n=t,r=!1),n&&l(e)}}()),this.Lb={click:n(this.i),doubleclick:n(this.u),hold:n(this.sa),mouseup:n(this.wa),mousedown:n(this.ua),dragstart:n(this.ga),drag:n(this.H),dragend:n(this.T),transformstart:n(this.pb),transform:n(this.transform),transformend:n(this.Ka),hover:n(this.ta),mousewheel:n(this.Ja)};var G=function(){var e,t={};return{M:function(t){e=window.Hammer(t,{doubletap_interval:350,hold_timeout:400,doubletap_distance:10})},A:function(n,i,r){t[n]=i,e.on(n,function(e,t){return function(n){var i=(n=n.gesture).center;(i=p.oe(s,i.pageX,i.pageY,{})).scale=n.scale,i.lb=1<n.touches.length,i.touches=n.touches.length,e.call(s,i),(void 0===i.Db&&t||"prevent"===i.Db)&&n.preventDefault()}}(i,r))},Za:function(){e&&y.Aa(t,(function(t,n){e.off(n,t)}))}}}(),H=function(){var e={};return function(t,n){return t.Jb(n,e),t.$&&M.sa(t.$,e)}}()}function H(e){function t(e,t,n,i){var r,o=0,a=[];for(r=0;r<t.length;r++){var s=Math.sqrt(M.i(t[r],t[(r+1)%t.length]));a.push(s),o+=s}for(r=0;r<a.length;r++)a[r]/=o;e[0].x=n.x,e[0].y=n.y;var u=s=o=0;for(r=1;r<e.length;r++){var l=e[r],c=.95*Math.pow(r/e.length,i);for(o+=.3819;s<o;)s+=a[u],u=(u+1)%a.length;var h=(u-1+a.length)%a.length,f=1-(s-o)/a[h],d=t[h].x;h=t[h].y;var p=t[u].x,g=t[u].y;d=(d-n.x)*c+n.x,h=(h-n.y)*c+n.y,p=(p-n.x)*c+n.x,g=(g-n.y)*c+n.y,l.x=d*(1-f)+p*f,l.y=h*(1-f)+g*f}}var n={random:{vb:function(e,t){for(var n=0;n<e.length;n++){var i=e[n];i.x=t.x+Math.random()*t.w,i.y=t.y+Math.random()*t.o}},Ob:"box"},ordered:{vb:function(e,t){e=e.slice(0),i.ac&&e.sort(te),L.i(e,t,!1,i.Ld)},Ob:"box"},squarified:{vb:function(e,t){e=e.slice(0),i.ac&&e.sort(te),L.u(e,t,!1,i.Ld)},Ob:"box"},fisheye:{vb:function(e,n,r){e=e.slice(0),i.ac&&e.sort(te),t(e,n,r,.25)},Ob:"polygon"},blackhole:{vb:function(e,n,r){e=e.slice(0),i.ac&&e.sort(te).reverse(),t(e,n,r,1)},Ob:"polygon"}};n.order=n.ordered,n.treemap=n.squarified;var i=e.options;this.i=function(e,t,r){if(0<e.length){if("box"===(r=n[r.relaxationInitializer||r.initializer||i.Ii||"random"]).Ob){var o=M.F(t,{});r.vb(e,o),M.wa(e,M.H(o),t)}else r.vb(e,t,M.u(t,{}));for(r=e.length-1;0<=r;r--){if((o=e[r]).description){var a=M.ta(t,i.qc,i.Ag);o.x=a.x,o.y=a.y}o.attribution&&(a=M.ta(t,i.$d,i.rg),o.x=a.x,o.y=a.y),y.wb(o.group.initialPosition)&&(a=o.group.initialPosition,a=M.ta(t,a.position||"bottomright",a.distanceFromCenter||1),o.x=a.x,o.y=a.y)}}}}function U(e){var t,n=e.options,i=new q(e,this),r=new V(e,this),o={relaxed:i,ordered:r,squarified:r},a=o[e.options.Dc]||i;this.jg=5e-5,e.j.subscribe("model:loaded",(function(e){t=e})),e.j.subscribe("options:changed",(function(e){e.layout&&y.has(o,n.Dc)&&(a=o[n.Dc])})),this.step=function(e,t,n,i){return a.step(e,t,n,i)},this.complete=function(e){a.complete(e)},this.Oe=function(e){return e===t||2*Math.sqrt(e.O.ha/(Math.PI*e.m.length))>=Math.max(n.Be,5e-5)},this.gd=function(e,t){var i=Math.pow(n.La,e.level),r=n.$a*i;i*=n.jd;for(var o=(e=e.m).length-1;0<=o;o--){var s=e[o];a.ce(s,i);var u=s;u.$=0<r?k.i(u.C,r):u.C,u.$&&(M.F(u.$,u.F),M.Ja(u.$,u.O)),s.m&&t.push(s)}},this.fc=function(e){a.fc(e)},this.Eb=function(e){a.Eb(e)}}function q(e,t){function n(e){if(e.m){e=e.m;for(var t=0;t<e.length;t++){var n=e[t];n.kc=n.hc*c.oh}}}function i(e,i){t.Oe(e)&&(e.G||(e.G=k.i(e.C,c.jd*Math.pow(c.La,e.level-1)),e.G&&e.m[0]&&e.m[0].description&&"stab"==c.Tb&&s(e)),e.G&&(l.Eb(e),h.i(r(e),e.G,e.group),e.R=!0,i(e)),n(e))}function r(e){return"stab"===c.Tb&&0<e.m.length&&e.m[0].description?e.m.slice(1):e.m}function o(e){var t=r(e);return z.i(t,e.G),z.u(t,e.G),D.H(e)*Math.sqrt(u.O.ha/e.O.ha)}function a(e){return e<c.Hf||1e-4>e}function s(e){var t=c.Sb/(1+c.Sb),n=M.F(e.G,{}),i={x:n.x,y:0},r=n.y,o=n.o,a=c.ie*Math.pow(c.La,e.level-1),s=o*c.he,u=c.qc;"bottom"==u||0<=u&&180>u?(u=Math.PI,r+=o,o=-1):(u=0,o=1);var l=e.G,h=u,f=0,d=1,p=M.u(l,{}),g=p.ha;t*=g;for(var b=0;f<d&&20>b++;){var v=(f+d)/2;i.y=n.y+n.o*v;var m=M.ua(l,i,h);M.u(m[0],p);var y=p.ha-t;if(.01>=Math.abs(y)/g)break;0<(0==h?1:-1)*y?d=v:f=v}M.F(m[0],n),(n.o<a||n.o>s)&&(i.y=n.o<a?r+o*Math.min(a,s):r+o*s,m=M.ua(e.G,i,u)),e.m[0].C=m[0],e.G=m[1]}var u,l=this,c=e.options,h=new H(e),f=0;e.j.subscribe("model:loaded",(function(e){u=e,f=0})),this.step=function(e,n,s,l){function h(n){if(n.R&&n.xa?function(e){e!==u&&2*Math.sqrt(e.O.ha/(Math.PI*e.m.length))<Math.max(.85*c.Be,t.jg)&&(e.R=!1,e.xa=!1,e.Ia=!0,e.G=null)}(n):n.Ia&&n.C&&i(n,(function(){var t=r(n);z.i(t,n.G),z.u(t,n.G),e(n)})),!n.G||!n.R)return 0;if(n.parent&&n.parent.Z||n.Ea){var h=o(n);l&&l(n),n.Ea=!a(h)&&!s,n.Z=!0}else h=0;return t.gd(n,p),h}for(var d=0,p=[u];0<p.length;)d=Math.max(d,h(p.shift()));var g=a(d);return n&&function(e,t,n){f<e&&(f=e);var i=c.Hf;c.Ad(t?1:1-(e-i)/(f-i||1),t,n),t&&(f=0)}(d,g,s),g},this.complete=function(e){for(var n=[u];0<n.length;){var r=n.shift();if(!r.R&&r.Ia&&r.C&&i(r,e),r.G){if(r.parent&&r.parent.Z||r.Ea){for(var s=1e-4>r.O.ha,l=0;!(a(o(r))||s&&32<l++););r.Z=!0,r.Ea=!1}t.gd(r,n)}}},this.fc=function(e){S.L(e,n)},this.ce=function(e,t){if(e.R){var n=e.G;n&&(e.Fd=n),e.G=k.i(e.C,t),e.G&&e.m[0]&&e.m[0].description&&"stab"==c.Tb&&s(e),n&&!e.G&&(e.Z=!0),e.G&&e.Fd&&M.wa(r(e),e.Fd,e.G)}},this.Eb=function(e){for(var t,n=r(e),i=e.ha,o=t=0;o<n.length;o++)t+=n[o].weight;for(e.Dj=t,e=0;e<n.length;e++)(o=n[e]).Vf=o.w,o.hc=i/Math.PI*(0<t?o.weight/t:1/n.length)}}function V(e,t){function n(e,n){if(t.Oe(e)){if(!e.G||e.parent&&e.parent.Z){var i=a.jd*Math.pow(a.La,e.level-1);e.G=M.H(function(e,t){var n=2*t;return e.x+=t,e.y+=t,e.w-=n,e.o-=n,e}(M.F(e.C,{}),i))}e.G&&(e.R=!0,n(e))}else e.R=!1,S.za(e,(function(e){e.G=null}))}function i(e){if("stab"==a.Tb&&0<e.m.length&&e.m[0].description){var t=e.m.slice(1);!function(e){function t(){i.C=M.H(r),i.x=r.x+r.w/2,i.y=r.y+r.o/2}var n=a.Sb/(1+a.Sb),i=e.m[0],r=M.F(e.G,{}),o=r.o;n=Math.min(Math.max(o*n,a.ie*Math.pow(a.La,e.level-1)),o*a.he);var s=a.qc;"bottom"==s||0<=s&&180>s?(r.o=o-n,e.G=M.H(r),r.y+=o-n,r.o=n,t()):(r.o=n,t(),r.y+=n,r.o=o-n,e.G=M.H(r))}(e)}else t=e.m;a.ac&&t.sort(te),"floating"==a.Tb&&r(t,a.qc,(function(e){return e.description})),r(t,a.$d,(function(e){return e.attribution}));var n=M.F(e.G,{});(s[a.Dc]||L.i)(t,n,!0,a.Ld),e.Ea=!1,e.Z=!0,e.N=!0,e.Fa=!0}function r(e,t,n){for(var i=0;i<e.length;i++){var r=e[i];if(n(r)){e.splice(i,1),"topleft"==t||135<=t&&315>t?e.unshift(r):e.push(r);break}}}var o,a=e.options,s={squarified:L.u,ordered:L.i};e.j.subscribe("model:loaded",(function(e){o=e})),this.step=function(e,t,n){return this.complete(e),t&&a.Ad(1,!0,n),!0},this.complete=function(e){for(var r=[o];0<r.length;){var a=r.shift();(!a.R||a.parent&&a.parent.Z)&&a.Ia&&a.C&&n(a,e),a.G&&((a.parent&&a.parent.Z||a.Ea)&&i(a),t.gd(a,r))}},this.Eb=this.fc=this.ce=y.qa}var W,Z,$,K,Y=new function(){this.u=function(e,t){var n=e.globalAlpha;e.fillStyle="dark"===t?"white":"#1d3557",e.globalAlpha=1*n,e.save(),e.transform(.94115,0,0,.94247,-78.54,-58),e.beginPath(),e.moveTo(86.47,533.3),e.bezierCurveTo(83.52,531.5,83.45,530.6,83.45,488.3),e.bezierCurveTo(83.45,444.6,83.35,445.7,87.34,443.7),e.bezierCurveTo(88.39,443.1,90.5,442.5,92.02,442.4),e.bezierCurveTo(93.54,442.2,113,441.7,135.3,441.4),e.bezierCurveTo(177.9,440.7,179.3,440.7,182.7,443.4),e.bezierCurveTo(185.9,445.9,185.6,445,206.2,510.7),e.bezierCurveTo(207.8,515.8,209.5,521.3,210.1,522.9),e.bezierCurveTo(211.7,528,211.9,531.3,210.6,532.7),e.bezierCurveTo(209.5,534,208.4,534,148.5,534),e.bezierCurveTo(106.4,533.9,87.3,533.7,86.47,533.2),e.closePath(),e.fill(),e.globalAlpha=.8*n,e.beginPath(),e.moveTo(237.3,533.3),e.bezierCurveTo(234.8,532.5,233.1,530.9,231.7,528.1),e.bezierCurveTo(231,526.8,224.6,507,217.4,484.1),e.bezierCurveTo(203.1,438.8,202.6,436.7,205,431.4),e.bezierCurveTo(206.3,428.5,239.2,383.2,242.9,379.3),e.bezierCurveTo(245,377,246.9,376.7,249.7,378.2),e.bezierCurveTo(250.6,378.7,263.1,390.8,277.3,405.2),e.bezierCurveTo(301.1,429.2,303.4,431.6,305.1,435.5),e.bezierCurveTo(306.7,439,306.9,440.4,306.9,445.2),e.bezierCurveTo(306.8,455.3,302.2,526.4,301.5,528.9),e.bezierCurveTo(300.2,533.7,301,533.6,268.3,533.7),e.bezierCurveTo(252.2,533.8,238.3,533.6,237.3,533.3),e.closePath(),e.fill(),e.beginPath(),e.globalAlpha=.05*n,e.moveTo(329,533.3),e.bezierCurveTo(326.2,532.5,323.1,528.8,322.6,525.8),e.bezierCurveTo(322,521.6,327.2,446.1,328.4,442.2),e.bezierCurveTo(330.6,434.9,332.8,432.8,368.5,402.4),e.bezierCurveTo(387,386.7,403.9,372.8,406,371.4),e.bezierCurveTo(413.1,366.7,416,366.2,436.5,365.7),e.bezierCurveTo(456.8,365.2,463.6,365.6,470.2,367.6),e.bezierCurveTo(476.2,369.5,546.1,402.8,549.1,405.3),e.bezierCurveTo(550.4,406.3,552.2,408.7,553.2,410.5),e.lineTo(555,413.9),e.lineTo(555.2,459.5),e.bezierCurveTo(555.3,484.6,555.2,505.8,555,506.5),e.bezierCurveTo(554.4,509.1,548.1,517.9,543.8,522.2),e.bezierCurveTo(537.7,528.3,534.2,530.5,527.8,532.4),e.lineTo(522.3,534),e.lineTo(426.6,533.9),e.bezierCurveTo(371.1,533.9,330.1,533.6,328.9,533.3),e.closePath(),e.fill(),e.globalAlpha=.8*n,e.beginPath(),e.moveTo(87.66,423),e.bezierCurveTo(86.23,422.4,85.02,422,84.97,422),e.bezierCurveTo(84.91,422,84.55,421.1,84.16,419.9),e.bezierCurveTo(83.67,418.6,83.45,404.7,83.45,375.9),e.bezierCurveTo(83.45,328.4,83.27,330.3,88.12,328.1),e.bezierCurveTo(90.22,327.2,101.7,325.6,135.4,321.7),e.bezierCurveTo(159.9,318.8,181.1,316.5,182.5,316.5),e.bezierCurveTo(183.9,316.5,187,317.3,189.4,318.2),e.bezierCurveTo(193.5,319.8,194.7,320.8,210.1,336.2),e.bezierCurveTo(226.6,352.7,229.1,355.7,229.1,360),e.bezierCurveTo(229.1,363,226.8,366.5,212.9,385.4),e.bezierCurveTo(187.3,420.2,189.3,417.7,183.4,420.5),e.lineTo(179.5,422.3),e.lineTo(155.3,422.7),e.bezierCurveTo(89.91,424,90.39,423.9,87.65,423),e.closePath(),e.fill(),e.globalAlpha=.6*n,e.beginPath(),e.moveTo(314.6,415),e.bezierCurveTo(311.4,413.4,213.2,314.6,210.9,310.7),e.bezierCurveTo(208.9,307.2,208.5,303.4,209.9,300),e.bezierCurveTo(211.2,297,241.3,257,244.2,254.4),e.bezierCurveTo(247.3,251.7,252.9,249.7,257.4,249.7),e.bezierCurveTo(261.1,249.7,344.7,255.2,350.8,255.8),e.bezierCurveTo(358.5,256.6,363.1,259.5,366,265.1),e.bezierCurveTo(368.7,270.5,394.3,343.7,394.7,347.2),e.bezierCurveTo(395.1,351.6,393.6,356.1,390.5,359.5),e.bezierCurveTo(389.1,361,375.7,372.6,360.5,385.4),e.bezierCurveTo(326.7,414,327,413.7,324.5,415),e.bezierCurveTo(321.8,416.4,317.4,416.3,314.6,414.9),e.closePath(),e.fill(),e.globalAlpha=.4*n,e.beginPath(),e.moveTo(547.9,383.4),e.bezierCurveTo(547.1,383.2,533,376.6,516.5,368.7),e.bezierCurveTo(497.2,359.5,485.7,353.7,484.3,352.4),e.bezierCurveTo(481.6,349.8,480.2,346.5,480.2,342.5),e.bezierCurveTo(480.2,339.2,499.2,237,500.4,233.9),e.bezierCurveTo(502.2,229.1,506.2,225.8,511.3,224.9),e.bezierCurveTo(516.2,224,545.8,222.2,548.2,222.6),e.bezierCurveTo(551.5,223.2,553.7,224.7,555.1,227.3),e.bezierCurveTo(556.2,229.3,556.3,234,556.5,301.9),e.bezierCurveTo(556.6,341.8,556.5,375.7,556.3,377.2),e.bezierCurveTo(555.6,381.8,552,384.4,547.8,383.4),e.closePath(),e.fill(),e.globalAlpha=.4*n,e.beginPath(),e.moveTo(418.7,347),e.bezierCurveTo(416,346.1,413.6,344.3,412.3,342.1),e.bezierCurveTo(411.6,341,404.4,321.3,396.3,298.3),e.bezierCurveTo(382,258.1,381.5,256.4,381.5,251.7),e.bezierCurveTo(381.5,248.2,381.8,246.2,382.7,244.7),e.bezierCurveTo(383.4,243.4,389.5,233.9,396.5,223.4),e.bezierCurveTo(412.6,199,411.3,199.9,430.6,198.6),e.bezierCurveTo(445,197.6,449.5,197.9,454.2,200.4),e.bezierCurveTo(460.5,203.7,479.6,217.5,481.3,220.1),e.bezierCurveTo(484.3,224.6,484.3,224.6,473.1,284),e.bezierCurveTo(465.3,325.9,462.4,339.9,461.3,341.8),e.bezierCurveTo(458.7,346.4,457.1,346.7,437.5,347.1),e.bezierCurveTo(428.1,347.3,419.6,347.3,418.7,347),e.closePath(),e.fill(),e.globalAlpha=.05*n,e.beginPath(),e.moveTo(89.33,308.2),e.bezierCurveTo(88.1,307.5,86.5,306.2,85.77,305.2),e.bezierCurveTo(84.42,303.4,84.42,303.4,84.24,202.6),e.bezierCurveTo(84.11,131.7,84.27,100.2,84.77,96.34),e.bezierCurveTo(85.65,89.58,87.91,84.64,92.77,78.81),e.bezierCurveTo(96.86,73.9,103.2,68.42,107.1,66.53),e.bezierCurveTo(108.6,65.81,112.8,64.64,116.5,63.92),e.bezierCurveTo(122.7,62.73,125.4,62.64,148.5,62.81),e.lineTo(173.7,63),e.lineTo(177.4,64.82),e.bezierCurveTo(179.5,65.82,182.1,67.75,183.3,69.12),e.bezierCurveTo(185.6,71.9,228.8,145.1,231.3,150.7),e.bezierCurveTo(234.5,157.7,234.9,160.8,234.9,176.9),e.bezierCurveTo(234.8,201.7,233.8,229.6,232.8,233.2),e.bezierCurveTo(232.3,235,231.1,238.1,230.2,240),e.bezierCurveTo(228.3,243.9,196.9,286.6,192.7,290.9),e.bezierCurveTo(189.8,293.9,184.3,297.1,180.2,298.2),e.bezierCurveTo(177.6,298.9,95.84,309.3,93.04,309.3),e.bezierCurveTo(92.22,309.3,90.55,308.8,89.33,308.1),e.closePath(),e.fill(),e.globalAlpha=.4*n,e.beginPath(),e.moveTo(305.7,235.6),e.bezierCurveTo(254.5,232,256.5,232.3,253.9,227.1),e.lineTo(252.4,224.2),e.lineTo(253.1,196.7),e.bezierCurveTo(253.8,170.5,253.8,169.1,255.2,166.3),e.bezierCurveTo(257.7,161.2,256.9,161.4,309.3,151.9),e.bezierCurveTo(354.1,143.8,356.8,143.4,359.7,144.2),e.bezierCurveTo(361.4,144.6,363.8,145.8,365,146.8),e.bezierCurveTo(367.3,148.6,389,179.6,391.9,185.2),e.bezierCurveTo(393.8,188.7,394.1,193.5,392.6,196.9),e.bezierCurveTo(391.5,199.6,370.6,231.4,368.4,233.8),e.bezierCurveTo(365.4,237,362,238.3,356.3,238.5),e.bezierCurveTo(353.5,238.6,330.7,237.3,305.7,235.5),e.closePath(),e.fill(),e.globalAlpha=.2*n,e.beginPath(),e.moveTo(497.1,207.1),e.bezierCurveTo(496.2,206.8,494.4,206,493.2,205.4),e.bezierCurveTo(490,203.8,472.7,191.6,469.7,189),e.bezierCurveTo(467,186.6,465.7,183.2,466.2,180.2),e.bezierCurveTo(466.5,178.1,482.4,138.6,484.9,133.5),e.bezierCurveTo(486.5,130.3,488.4,128.2,490.9,126.8),e.bezierCurveTo(492.6,125.9,496.3,125.7,522.2,125.6),e.lineTo(551.5,125.4),e.lineTo(553.7,127.6),e.bezierCurveTo(555.2,129.1,556,130.5,556.3,132.6),e.bezierCurveTo(556.5,134.2,556.6,149.6,556.5,166.9),e.bezierCurveTo(556.3,195.4,556.2,198.5,555.1,200.4),e.bezierCurveTo(553.1,204.1,551.7,204.4,529.8,206.1),e.bezierCurveTo(509.2,207.7,499.9,207.9,497,207.1),e.closePath(),e.fill(),e.globalAlpha=.2*n,e.beginPath(),e.moveTo(412.5,180.5),e.bezierCurveTo(410.9,179.7,408.7,177.9,407.5,176.4),e.bezierCurveTo(403.5,171.3,380.5,137.2,379.2,134.3),e.bezierCurveTo(377.2,129.6,377.1,126.1,378.9,116.8),e.bezierCurveTo(386.5,77.56,388.4,68.28,389.5,66.46),e.bezierCurveTo(390.1,65.34,391.7,63.83,392.9,63.1),e.bezierCurveTo(395.1,61.84,396.2,61.78,419.4,61.78),e.bezierCurveTo(443.4,61.78,443.7,61.8,446.5,63.25),e.bezierCurveTo(448,64.06,449.9,65.81,450.7,67.14),e.bezierCurveTo(452.3,69.73,468,105.5,470,111.1),e.bezierCurveTo(471.4,114.9,471.6,119.1,470.5,122.3),e.bezierCurveTo(470.1,123.5,465.2,135.8,459.7,149.5),e.bezierCurveTo(446.7,181.4,448.1,179.8,431.5,181.2),e.bezierCurveTo(419,182.2,415.7,182,412.5,180.5),e.closePath(),e.fill(),e.globalAlpha=.4*n,e.beginPath(),e.moveTo(253.6,142.8),e.bezierCurveTo(250.2,141.8,246.6,139.4,244.7,136.7),e.bezierCurveTo(242.1,132.9,207.4,73.28,206.2,70.42),e.bezierCurveTo(205.1,67.89,205,67.1,205.7,65.54),e.bezierCurveTo(207.3,61.54,202.3,61.8,284.4,61.59),e.bezierCurveTo(325.7,61.48,360.8,61.58,362.4,61.81),e.bezierCurveTo(366,62.32,369.3,65.36,369.9,68.75),e.bezierCurveTo(370.4,71.55,362.4,113.9,360.5,118.1),e.bezierCurveTo(359.1,121.3,355,125,351.4,126.4),e.bezierCurveTo(348.9,127.3,267.1,142.3,259.5,143.2),e.bezierCurveTo(257.9,143.4,255.2,143.2,253.6,142.7),e.closePath(),e.fill(),e.globalAlpha=.1*n,e.beginPath(),e.moveTo(493.4,106.8),e.bezierCurveTo(490.3,106,488.2,104.5,486.5,101.7),e.bezierCurveTo(483.8,97.43,471.8,68.81,471.8,66.76),e.bezierCurveTo(471.8,62.64,470.7,62.76,512.1,62.76),e.bezierCurveTo(553.3,62.76,552.3,62.67,554.4,66.68),e.bezierCurveTo(555.2,68.34,555.3,71.23,555.2,85.75),e.lineTo(555,102.8),e.lineTo(551.4,106.4),e.lineTo(534.1,106.8),e.bezierCurveTo(510.7,107.4,495.9,107.4,493.3,106.8),e.closePath(),e.fill(),e.restore(),e.transform(.15905,0,0,.15905,-88.65,443.2),e.globalAlpha=1*n,e.save(),e.beginPath(),e.moveTo(557.4,564.9),e.lineTo(557.4,98),e.lineTo(885.8,98),e.lineTo(885.8,185.1),e.lineTo(650.8,185.1),e.lineTo(650.8,284.7),e.lineTo(824.1,284.7),e.lineTo(824.1,371.6),e.lineTo(650.8,371.6),e.lineTo(650.8,564.9),e.lineTo(557.4,564.9),e.closePath(),e.fill(),e.beginPath(),e.moveTo(1029,568),e.quadraticCurveTo(961.1,568,915.7,522.5),e.quadraticCurveTo(870.2,476.7,870.2,409.2),e.quadraticCurveTo(870.2,341.3,915.7,295.9),e.quadraticCurveTo(961.1,250.4,1029,250.4),e.quadraticCurveTo(1096.8,250.4,1142.3,295.9),e.quadraticCurveTo(1187.7,341.3,1187.7,409.2),e.quadraticCurveTo(1187.7,477.1,1142.3,522.5),e.quadraticCurveTo(1097.3,568.1,1029.3,568.1),e.closePath(),e.moveTo(1028.6,492.6),e.quadraticCurveTo(1064.1,492.6,1086.2,469),e.quadraticCurveTo(1108.3,445,1108.3,409.5),e.quadraticCurveTo(1108.3,374,1086.2,350),e.quadraticCurveTo(1064.1,326.1,1028.3,326.1),e.quadraticCurveTo(993.1,326.1,971,350),e.quadraticCurveTo(948.9,374,948.9,409.5),e.quadraticCurveTo(948.9,445,971,469),e.quadraticCurveTo(993.1,492.6,1028.6,492.6),e.closePath(),e.fill(),e.beginPath(),e.moveTo(1253,291),e.quadraticCurveTo(1312.1,253.6,1390,253.6),e.quadraticCurveTo(1446,253.6,1478.7,284.7),e.quadraticCurveTo(1511.4,315.9,1511.4,378.1),e.lineTo(1511.4,564.9),e.lineTo(1424.2,564.9),e.lineTo(1424.2,540),e.quadraticCurveTo(1386.2,564.9,1355.7,564.9),e.quadraticCurveTo(1293.5,564.9,1262.3,538.5),e.quadraticCurveTo(1231.2,512,1231.2,465.3),e.quadraticCurveTo(1231.2,421.7,1260.4,387.5),e.quadraticCurveTo(1290,353.3,1355.7,353.3),e.quadraticCurveTo(1385.9,353.3,1424.2,371.9),e.lineTo(1424.2,362.6),e.quadraticCurveTo(1423.6,328.4,1374.4,325.2),e.quadraticCurveTo(1318.3,325.2,1287.2,343.9),e.lineTo(1253,291),e.closePath(),e.moveTo(1424.2,471.5),e.lineTo(1424.2,436.3),e.quadraticCurveTo(1411.7,412.3,1365,412.3),e.quadraticCurveTo(1309,418.5,1305.9,455.9),e.quadraticCurveTo(1309,492.9,1365,496),e.quadraticCurveTo(1411.7,496,1424.2,471.5),e.closePath(),e.fill(),e.beginPath(),e.moveTo(1675,365.7),e.lineTo(1675,564.9),e.lineTo(1587.8,564.9),e.lineTo(1587.8,262.5),e.lineTo(1675,253.2),e.lineTo(1675,280.9),e.quadraticCurveTo(1704.2,253.5,1749.7,253.5),e.quadraticCurveTo(1808.8,253.5,1839.9,289.3),e.quadraticCurveTo(1874.2,253.5,1942.6,253.5),e.quadraticCurveTo(2001.8,253.5,2032.9,289.3),e.quadraticCurveTo(2064,325.1,2064,371.8),e.lineTo(2064,564.8),e.lineTo(1976.9,564.8),e.lineTo(1976.9,393.6),e.quadraticCurveTo(1976.9,362.5,1962.9,345.4),e.quadraticCurveTo(1948.8,328.2,1917.4,327.3),e.quadraticCurveTo(1891.6,329.2,1872.6,361.6),e.quadraticCurveTo(1871,371.2,1871,381.2),e.lineTo(1871,564.9),e.lineTo(1783.9,564.9),e.lineTo(1783.9,393.7),e.quadraticCurveTo(1783.9,362.5,1769.9,345.4),e.quadraticCurveTo(1755.9,328.3,1724.4,327.4),e.quadraticCurveTo(1695.8,329.2,1674.9,365.7),e.closePath(),e.fill(),e.beginPath(),e.moveTo(2058,97.96),e.lineTo(2058,185.1),e.lineTo(2213.6,185.1),e.lineTo(2213.6,564.9),e.lineTo(2306.9,564.9),e.lineTo(2306.9,185.1),e.lineTo(2462.5,185.1),e.lineTo(2462.5,97.96),e.lineTo(2057.8,97.96),e.closePath(),e.fill(),e.beginPath(),e.moveTo(2549,287.8),e.quadraticCurveTo(2582.3,253.5,2630.2,253.5),e.quadraticCurveTo(2645.5,253.5,2659.2,256),e.lineTo(2645.5,341.9),e.quadraticCurveTo(2630.2,328.2,2601.9,327.3),e.quadraticCurveTo(2570.1,329.5,2549,373.4),e.lineTo(2549,564.8),e.lineTo(2461.8,564.8),e.lineTo(2461.8,262.5),e.lineTo(2549,253.1),e.lineTo(2549,287.7),e.closePath(),e.fill(),e.beginPath(),e.moveTo(2694,409.2),e.quadraticCurveTo(2694,340.7,2737.5,297.1),e.quadraticCurveTo(2781.1,253.5,2849.6,253.5),e.quadraticCurveTo(2918.1,253.5,2958.5,297.1),e.quadraticCurveTo(2999,340.6,2999,409.2),e.lineTo(2999,440.3),e.lineTo(2784.2,440.3),e.quadraticCurveTo(2787.3,465.2,2806,479.2),e.quadraticCurveTo(2824.7,493.2,2849.6,493.2),e.quadraticCurveTo(2893.1,493.2,2927.4,468.3),e.lineTo(2977.2,518.1),e.quadraticCurveTo(2943,564.8,2849.6,564.8),e.quadraticCurveTo(2781.1,564.8,2737.5,521.2),e.quadraticCurveTo(2693.9,477.6,2693.9,409.1),e.closePath(),e.moveTo(2911.9,378),e.quadraticCurveTo(2911.9,353.1,2893.2,339.1),e.quadraticCurveTo(2874.5,325.1,2849.6,325.1),e.quadraticCurveTo(2824.7,325.1,2806,339.1),e.quadraticCurveTo(2787.3,353.1,2787.3,378),e.lineTo(2911.8,378),e.closePath(),e.fill(),e.beginPath(),e.moveTo(3052,409.2),e.quadraticCurveTo(3052,340.7,3095.5,297.1),e.quadraticCurveTo(3139.1,253.5,3207.6,253.5),e.quadraticCurveTo(3276.1,253.5,3316.5,297.1),e.quadraticCurveTo(3357,340.6,3357,409.2),e.lineTo(3357,440.3),e.lineTo(3142.2,440.3),e.quadraticCurveTo(3145.3,465.2,3164,479.2),e.quadraticCurveTo(3182.7,493.2,3207.6,493.2),e.quadraticCurveTo(3251.1,493.2,3285.4,468.3),e.lineTo(3335.2,518.1),e.quadraticCurveTo(3301,564.8,3207.6,564.8),e.quadraticCurveTo(3139.1,564.8,3095.5,521.2),e.quadraticCurveTo(3051.9,477.6,3051.9,409.1),e.closePath(),e.moveTo(3269.9,378),e.quadraticCurveTo(3269.9,353.1,3251.2,339.1),e.quadraticCurveTo(3232.5,325.1,3207.6,325.1),e.quadraticCurveTo(3182.7,325.1,3164,339.1),e.quadraticCurveTo(3145.3,353.1,3145.3,378),e.lineTo(3269.8,378),e.closePath(),e.fill(),e.restore()}};function J(e,n){function i(e,t){var n=e.O.r,i=n/15,r=.5*n/15;n/=5;var o=e.O.x;e=e.O.y,t.fillRect(o-r,e-r,i,i),t.fillRect(o-r-n,e-r,i,i),t.fillRect(o-r+n,e-r,i,i)}function r(e,t,n,i){null===e&&n.clearRect(0,0,D,B);var r,o=Array(te.length);for(r=te.length-1;0<=r;r--)o[r]=te[r].na(n,i);for(r=te.length-1;0<=r;r--)o[r]&&te[r].before(n,i);for(E.rc([n,z],(function(i){var r;if(null!==e){for(n.save(),n.globalCompositeOperation="destination-out",n.fillStyle=n.strokeStyle="rgba(255, 255, 255, 1)",r=e.length-1;0<=r;r--){var a=e[r],u=a.C;u&&(n.save(),n.beginPath(),a.Ib(n),s.Ud(n,u),n.fill(),0<(a=q.$a*Math.pow(q.La,a.level-1))&&(n.lineWidth=a/2,n.stroke()),n.restore())}n.restore()}if(i=i.scale,0!==t.length){for(r={},u=te.length-1;0<=u;u--)te[u].ng(r);for(a=ee.length-1;0<=a;a--)if(r[(u=ee[a]).id]){var l=u.Kd;for(u=0;u<t.length;u++){var c=t[u];!c.parent||c.parent.xa&&c.parent.R?l(c,i):c.aa.clear()}}}for(r=te.length-1;0<=r;r--)a=te[r],o[r]&&a.Nd(t,n,i)})),r=te.length-1;0<=r;r--)o[r]&&te[r].after(n);q.Zc&&(n.canvas.style.opacity=.99,setTimeout((function(){n.canvas.style.opacity=1}),1))}function u(){function e(t,n,i){t.sb=Math.floor(1e3*t.scale)-i*n,0<t.opacity&&!t.open&&n++;var r=t.m;if(r)for(var o=r.length-1;0<=o;o--)t.W&&e(r[o],n,i)}var t=null,n=null,i=null;return E.rc([],(function(r){!function(e){b===w?e<.9*G&&(b=v,x=A,h()):e>=G&&(b=w,x=T,h())}(r.scale);var o=!1;S.L(I,(function(e){e.W&&(o=e.vd()||o,e.cc(),e.Ma=H.i(e)||e.Ma)})),o&&(I.N=!0);var a="onSurfaceDirty"===q.Lg;S.fd(I,(function(e){e.parent&&e.parent.Z&&(e.aa.clear(),e.Ma=!0,a||(e.oc=!0,e.Qb.clear())),a&&(e.oc=!0,e.Qb.clear())}));var s=r.scale*r.scale;if(S.fd(I,(function(e){if(e.R){for(var t=e.m,n=0;n<t.length;n++)if(5<t[n].O.ha*s)return void(e.X=!0);e.X=!1}})),function(e){I.Y=!0,S.fd(I,(function(t){if(t.W&&t.X&&t.xa&&t.R&&(I.N||t.Z||t.Vd)){t.Vd=!1;var n=t.m,i={x:0,y:0,w:0,o:0},r=!!t.G;if(1<D/e.w){var o;for(o=n.length-1;0<=o;o--)n[o].Y=!1;if(t.Y&&r)for(o=n.length-1;0<=o;o--)if(1!==(t=n[o]).scale&&(t.Jb(e,i),i.w=e.w/t.scale,i.o=e.o/t.scale),!1===t.Y&&t.C){var a=(r=t.C).length;if(M.sa(t.C,1===t.scale?e:i))t.Y=!0;else for(var s=0;s<a;s++)if(M.Vc(r[s],r[(s+1)%a],1===t.scale?e:i)){t.Y=!0,t.J&&(t=t.J[s])&&(n[t.index].Y=!0);break}}}else for(o=0;o<n.length;o++)n[o].Y=r}}))}(r),i=[],S.tc(I,(function(e){if(e.parent.X&&e.Y&&e.W){i.push(e);for(var t=e.parent;t!==I&&(t.open||0===t.opacity);)t=t.parent;t!==I&&.02>Math.abs(t.scale-e.scale)&&(e.scale=Math.min(e.scale,t.scale))}})),e(I,0,"flattened"===q.mb?-1:1),i.sort((function(e,t){return e.sb-t.sb})),l())t=i,n=null;else{var u={},c={},f="none"!=q.ld&&q.$a<q.ab/2,d=q.$a<q.yc/2+q.kd*q.De.a;S.L(I,(function(e){if(e.W&&!e.description&&(e.Z||e.N||e.Fc&&e.parent.X&&e.Ma)){var t,n,i,r=[e],o=e.J||e.parent.m;if(f)for(t=0;t<o.length;t++)(n=o[t])&&r.push(n);else if(d)if(!e.selected&&e.Sa){for(n=!0,t=0;t<o.length;t++)o[t]?r.push(o[t]):n=!1;!n&&1<e.level&&r.push(e.parent)}else for(t=0;t<o.length;t++)(n=o[t])&&n.selected&&r.push(n);for(t=e.parent;t!=I;)t.selected&&(i=t),t=t.parent;for(i&&r.push(i),t=0;t<r.length;t++){for(e=(i=r[t]).parent;e&&e!==I;)0<e.opacity&&(i=e),e=e.parent;c[i.id]=!0,S.za(i,(function(e){u[e.id]=!0}))}}})),t=i.filter((function(e){return u[e.id]})),n=t.filter((function(e){return c[e.id]}))}})),function(){var e=!1;q.Gf&&S.L(I,(function(t){if(t.W&&0!==t.pa.a&&1!==t.pa.a)return e=!0,!1})),e?(S.sc(I,(function(e){if(e.W&&(e.opacity!==e.Jc||e.Fa)){var t=e.m;if(t){for(var n=0,i=t.length-1;0<=i;i--)n=Math.max(n,t[i].Ec);e.Ec=n+e.opacity*e.pa.a}else e.Ec=e.opacity*e.pa.a}})),S.L(I,(function(e){if(e.W&&(e.opacity!==e.Jc||e.Fa)){for(var t=e.Ec,n=e;(n=n.parent)&&n!==I;)t+=n.opacity*n.pa.a*q.Ef;e.$c=0<t?1-Math.pow(1-e.pa.a,1/t):0,e.Jc=e.opacity}}))):S.L(I,(function(e){e.W&&(e.$c=1,e.Jc=-1)}))}(),{ag:t,$f:n,Y:i}}function l(){var e=I.Z||I.N||"none"==q.Ke;if(!e&&!I.empty()){var t=I.m[0].scale;S.L(I,(function(n){if(n.W&&n.Y&&n.scale!==t)return e=!0,!1}))}return!e&&0<q.xe&&1!=q.Pa&&S.L(I,(function(t){if(t.W&&0<t.ja)return e=!0,!1})),"accurate"==q.Ke&&(!(e=(e=e||0===q.$a)||"none"!=q.ld&&q.$a<q.ab/2)&&q.$a<q.yc/2+q.kd*q.De.a&&S.L(I,(function(t){if(t.W&&(t.selected&&!t.Sa||!t.selected&&t.Sa))return e=!0,!1}))),e}function h(){function e(e,n,i,r,o){function a(e,t,n,i,r){return e[i]&&(t-=n*p[i],e[i]=!1,r&&(t+=n*p[r],e[r]=!0)),t}switch(e=y.extend({},e),i){case"never":e.labelPlainFill=!1;break;case"always":case"auto":e.labelPlainFill=!0}if(q.xc)switch(r){case"never":e.contentDecoration=!1;break;case"always":case"auto":e.contentDecoration=!0}else e.contentDecoration=!1;var s=0;return y.Aa(e,(function(e,t){e&&(s+=n*p["contentDecoration"===t?"labelPlainFill":t])})),e.polygonExposureShadow=t,(s+=2*p.polygonExposureShadow)<=o||(s=a(e,s,2,"polygonExposureShadow"))<=o||(s=a(e,s,n,"polygonGradientFill","polygonPlainFill"))<=o||(s=a(e,s,n,"polygonGradientStroke"))<=o||(s=a(e,s,n,"polygonPlainStroke"))<=o||"auto"===r&&(s=a(e,s,n,"contentDecoration"))<=o||"auto"===i&&(s=a(e,s,n,"labelPlainFill")),e}var t=b===v,n=0,i=0;S.ne(I,(function(e){var t=1;S.L(e,(function(){t++})),n+=t,i=Math.max(i,t)}));var r={};switch(q.Ug){case"plain":r.polygonPlainFill=!0;break;case"gradient":r.polygonPlainFill=!t,r.polygonGradientFill=t}switch(q.ld){case"plain":r.polygonPlainStroke=!0;break;case"gradient":r.polygonPlainStroke=!t,r.polygonGradientStroke=t}P=e(r,n,q.gj,q.ej,q.fj),R=e(r,2*i,"always","always",q.Eg),F=e(r,n,"always","always",q.Dg)}function f(e){return function(t,n){return t===b?!0===P[e]:!0===(n?R:F)[e]}}function d(e,t){return function(n,i){return e(n,i)&&t(n,i)}}var p,g,b,v,w,_,x,A,T,k,z,D,B,L,E,j,O,I,N,P,F,R,G=t.Se()?50:1e4,H=new X(e),U=new Q(e),q=e.options;e.j.subscribe("stage:initialized",(function(e,t,n,i){D=n,B=i,g=(L=e).dc("wireframe",q.nb,!1),v=g.getContext("2d"),w=new o(v),_=L.dc("hifi",q.B,!1),A=_.getContext("2d"),T=new o(A),b=v,x=A,v.B=q.nb,w.B=q.nb,A.B=q.B,T.B=q.B,k=L.dc("tmp",Math.max(q.B,q.nb),!0),(z=k.getContext("2d")).B=1,[v,A,z].forEach((function(e){e.scale(e.B,e.B)}))})),e.j.subscribe("stage:resized",(function(e,t,n,i){D=n,B=i,[v,A,z].forEach((function(e){e.scale(e.B,e.B)}))})),e.j.subscribe("model:loaded",(function(t){N=!0,function e(t){var n=0;if(!t.empty()){for(var i=t.m,r=i.length-1;0<=r;r--)n=Math.max(n,e(i[r]));n+=1}return t.Sf=n}(I=t),h(),e.j.D("render:renderers:resolved",P,R,F)}));var V="groupFillType groupStrokeType wireframeDrawMaxDuration wireframeLabelDrawing wireframeContentDecorationDrawing finalCompleteDrawMaxDuration finalIncrementalDrawMaxDuration groupContentDecorator".split(" "),J=["groupLabelLightColor","groupLabelDarkColor","groupLabelColorThreshold","groupUnexposureLabelColorThreshold"];e.j.subscribe("options:changed",(function(e){function t(e,t,n,i){L.Hi(e,n),t.B=n,i&&t.scale(n,n)}e.dataObject||(y.bb(e,V)&&h(),y.bb(e,J)&&S.L(I,(function(e){e.hd=-1})));var n=y.has(e,"pixelRatio");e=y.has(e,"wireframePixelRatio"),(n||e)&&(n&&t(_,x,q.B,!0),e&&t(g,b,q.nb,!0),t(k,z,Math.max(q.B,q.nb),!1))})),e.j.subscribe("zoom:initialized",(function(e){E=e})),e.j.subscribe("timeline:initialized",(function(e){j=e})),e.j.subscribe("api:initialized",(function(e){O=e}));var ee=[{id:"offsetPolygon",Kd:function(e){if((e.selected||0<e.opacity&&!1===e.open||!e.X)&&e.aa.Ga()){var t=e.aa;if(t.clear(),e.$){var n=e.$,i=q.Gg;0<i?s.Ti(t,n,e.parent.O.r/32,Math.min(1,i*Math.pow(1-q.Hg*i,e.Sf))):s.Ud(t,n)}e.Dd=!0}}},{id:"label",Kd:function(e){e.Ma&&e.Fc&&H.u(e)}},{id:"custom",Kd:function(t,n){if(t.$&&(0<t.opacity&&(!1===t.open||!0===t.selected)||!t.X)&&t.oc&&e.options.xc&&!t.attribution){var i={};O.Xc(i,t),O.Yc(i,t),O.Wc(i,t,!0),i.context=t.Qb,i.polygonContext=t.aa,i.labelContext=t.Bc,i.shapeDirty=t.Dd,i.viewportScale=n,n={groupLabelDrawn:!0,groupPolygonDrawn:!0},e.options.Kg(e.Cd,i,n),t.Te=n.groupLabelDrawn,t.Ed=n.groupPolygonDrawn,t.Dd=!1,t.oc=!1}}}].reverse(),te=[new function(e){var t=Array(e.length);this.Nd=function(n,i,r){if(0!==n.length){var o,a=[],s=n[0].sb;for(o=0;o<n.length;o++){var u=n[o];u.sb!==s&&(a.push(o),s=u.sb)}a.push(o);for(var l=s=0;l<a.length;l++){for(var c=a[l],h=e.length-1;0<=h;h--)if(t[h]){var f=e[h];for(i.save(),o=s;o<c;o++)u=n[o],i.save(),u.Ib(i),f.kb.call(f,u,i,r),i.restore();f.Wa.call(f,i,r),i.restore()}s=c}}},this.na=function(n,i){for(var r=!1,o=e.length-1;0<=o;o--)t[o]=e[o].na(n,i),r|=t[o];return r},this.before=function(n,i){for(var r=e.length-1;0<=r;r--)if(t[r]){var o=e[r];o.before.call(o,n,i)}},this.after=function(n){for(var i=e.length-1;0<=i;i--)if(t[i]){var r=e[i];r.after.call(r,n)}},this.ng=function(n){for(var i=e.length-1;0<=i;i--){var r=e[i];if(t[i])for(var o=r.Ra.length-1;0<=o;o--)n[r.Ra[o]]=!0}}}([{Ra:["offsetPolygon"],na:f("polygonExposureShadow"),before:function(e){z.save(),z.scale(e.B,e.B)},after:function(){z.restore()},rb:function(){},Wa:function(e){this.Rf&&(this.Rf=!1,e.save(),e.setTransform(1,0,0,1,0,0),e.drawImage(k,0,0,e.canvas.width,e.canvas.height,0,0,e.canvas.width,e.canvas.height),e.restore(),z.save(),z.setTransform(1,0,0,1,0,0),z.clearRect(0,0,k.width,k.height),z.restore())},kb:function(e,t,n){if(!(e.open&&e.X||e.aa.Ga())){var i=q.xe*e.opacity*e.ja*("flattened"===q.mb?1-e.parent.ja:(1-e.Cb)*e.parent.Cb)*(1.1<=q.Pa?1:(q.Pa-1)/.1);0<i&&(z.save(),z.beginPath(),e.Ib(z),e.aa.Na(z),z.shadowBlur=n*t.B*i,z.shadowColor=q.Mg,z.fillStyle="rgba(0, 0, 0, 1)",z.globalCompositeOperation="source-over",z.globalAlpha=e.opacity,z.fill(),z.shadowBlur=0,z.shadowColor="transparent",z.globalCompositeOperation="destination-out",z.fill(),z.restore(),this.Rf=!0)}}},{Ra:["offsetPolygon"],na:function(){return!0},before:function(){function e(e){var n=e.pa,i=e.ub,r=e.selected,o=(n.h+(i?q.Yg:0)+(r?q.ph:0))%360,a=t(n.l*e.va+(i?q.Zg:0)+(r?q.qh:0));return n=t(n.s*e.saturation+(i?q.$g:0)+(r?q.rh:0)),(e=e.we).h=o,e.s=n,e.l=a,e}function t(e){return 100<e?100:0>e?0:e}var n=[{type:"fill",na:f("polygonPlainFill"),Pc:function(t,n){n.fillStyle=c.H(e(t))}},{type:"fill",na:f("polygonGradientFill"),Pc:function(n,i){var r=n.O.r,o=e(n);r=i.createRadialGradient(n.x,n.y,0,n.x,n.y,r*q.Qg);var a=o.l,s=q.Og;r.addColorStop(0,c.i((o.h+q.Ng)%360,t(o.s+q.Pg),t(a+s))),a=o.l,s=q.Sg,r.addColorStop(1,c.i((o.h+q.Rg)%360,t(o.s+q.Tg),t(a+s))),n.aa.Na(i),i.fillStyle=r}},{type:"stroke",na:d(f("polygonPlainStroke"),(function(){return 0<q.ab})),Pc:function(e,n){var i=e.pa,r=e.ub,o=e.selected,a=(i.h+q.He+(r?q.ye:0)+(o?q.Ee:0))%360,s=t(i.s*e.saturation+q.Je+(r?q.Ae:0)+(o?q.Ge:0));i=t(i.l*e.va+q.Ie+(r?q.ze:0)+(o?q.Fe:0)),n.strokeStyle=c.i(a,s,i),n.lineWidth=q.ab*Math.pow(q.La,e.level-1)}},{type:"stroke",na:d(f("polygonGradientStroke"),(function(){return 0<q.ab})),Pc:function(e,n){var i=e.O.r*q.xh,r=e.pa,o=Math.PI*q.th/180;i=n.createLinearGradient(e.x+i*Math.cos(o),e.y+i*Math.sin(o),e.x+i*Math.cos(o+Math.PI),e.y+i*Math.sin(o+Math.PI));var a=e.ub,s=e.selected;o=(r.h+q.He+(a?q.ye:0)+(s?q.Ee:0))%360;var u=t(r.s*e.saturation+q.Je+(a?q.Ae:0)+(s?q.Ge:0));r=t(r.l*e.va+q.Ie+(a?q.ze:0)+(s?q.Fe:0)),a=q.vh,i.addColorStop(0,c.i((o+q.uh)%360,t(u+q.wh),t(r+a))),a=q.zh,i.addColorStop(1,c.i((o+q.yh)%360,t(u+q.Ah),t(r+a))),n.strokeStyle=i,n.lineWidth=q.ab*Math.pow(q.La,e.level-1)}}],i=Array(n.length);return function(e,t){for(var r=n.length-1;0<=r;r--)i[r]=n[r].na(e,t);this.Xi=n,this.vg=i}}(),after:function(){},rb:function(){},Wa:function(){},kb:function(e,t){if(!(!e.Ed||(0===e.opacity||e.open)&&e.X||e.aa.Ga()||!q.je&&e.description)){var n=this.Xi,i=this.vg;t.beginPath(),e.aa.Na(t);for(var r=!1,o=!1,a=n.length-1;0<=a;a--){var s=n[a];if(i[a])switch(s.Pc(e,t),s.type){case"fill":r=!0;break;case"stroke":o=!0}}n=(e.X?e.opacity:1)*e.pa.a,i=!e.empty(),a=q.Gf?e.$c:1,r&&(e=i&&e.X&&e.R&&e.m[0].W?1-e.m.reduce((function(e,t){return e+t.ra*t.Hd}),0)/e.m.length*(1-q.Ef):1,t.globalAlpha=n*e*a,W(t)),o&&(t.globalAlpha=n*(i?q.Xh:1)*a,t.closePath(),Z(t),t.stroke())}}},{Ra:["offsetPolygon"],na:function(){return 0<q.yc},before:function(){},after:function(){},rb:function(){},Wa:function(){},kb:function(e,t,n){if(e.Ed&&e.selected&&!e.aa.Ga()){t.globalAlpha=e.Da,t.beginPath();var i=Math.pow(q.La,e.level-1);t.lineWidth=q.yc*i,t.strokeStyle=q.sh;var r=q.kd;0<r&&(t.shadowBlur=r*i*n*t.B,t.shadowColor=q.Ce),e.aa.Na(t),t.closePath(),t.stroke()}}},{Ra:[],na:function(){return!0},before:function(){},after:function(){},rb:function(){},Wa:function(){},kb:function(e,t){e.attribution&&!e.aa.Ga()&&function(n,i,r){var o=M.Ka(e.$,e.O,n/i);o=Math.min(Math.min(.9*o,.5*e.F.o)/i,.5*e.F.w/n),t.save(),t.translate(e.x,e.y),t.globalAlpha=e.opacity*e.ca,t.scale(o,o),t.translate(-n/2,-i/2),r(t),t.restore()}(Y.i.width,Y.i.height,(function(e){Y.u(e,q.ae)}))}},{Ra:[],na:function(e,t){return function(n,i){return e(n,i)||t(n,i)}}(f("labelPlainFill"),d(f("contentDecoration"),(function(){return q.xc}))),before:function(){},after:function(){},rb:function(){},Wa:function(){},kb:function(e,t,n){(0<e.opacity&&0<e.ca&&!e.open||!e.X)&&!e.aa.Ga()&&(e.Cc=e.oa&&e.oa.ka&&q.B*e.oa.fontSize*e.scale*n>=q.mh,"auto"===e.pd?!q.je&&e.description?e.fb=e.parent.fb:(t=(n=e.we).h+(n.s<<9)+(n.l<<16),e.hd!==t&&(n=c.T(n),e.fb=n>(0>e.ja?q.Bh:q.ah)?q.bh:q.lh,e.hd=t)):e.fb=e.pd)}},{Ra:["custom"],na:d(f("contentDecoration"),(function(){return q.xc})),before:function(){},after:function(){},rb:function(){},Wa:function(){},kb:function(e,t){!(0<e.opacity&&0<e.ca&&!e.open||!e.X)||e.Qb.Ga()||e.aa.Ga()||(e.Cc||void 0===e.oa?(t.globalAlpha=e.ca*(e.X?e.opacity:1)*(e.empty()?1:q.Ff),t.fillStyle=e.fb,t.strokeStyle=e.fb,e.Qb.Na(t)):i(e,t))}},{Ra:["label"],na:f("labelPlainFill"),before:function(){},after:function(){},rb:function(){},Wa:function(){},kb:function(e,t,n){e.Te&&e.Fc&&(0<e.opacity&&0<e.ca&&!e.open||!e.X)&&!e.aa.Ga()&&e.oa&&(t.fillStyle=e.fb,t.globalAlpha=e.ca*(e.X?e.opacity:1)*(e.empty()?1:q.Ff),e.Cc?K(e,t,n):i(e,t))}}].reverse())];this.M=function(){p=C((function(){return a.estimate()}),"CarrotSearchFoamTree",12096e5)({version:"3.5.0",build:"bugfix/3.5.x/e3b91c8e",brandingAllowed:!1}),U.M()},this.clear=function(){b.clearRect(0,0,D,B),x.clearRect(0,0,D,B)};var ne=!1,ie=void 0;this.u=function(e){ne?ie=e:e()},this.Nd=function(){function e(){window.clearTimeout(t),ne=!0,t=setTimeout((function(){if(ne=!1,function(){if(q.B!==q.nb)return!0;var e="polygonPlainFill polygonPlainStroke polygonGradientFill polygonGradientStroke labelPlainFill contentDecoration".split(" ");S.L(I,(function(t){if(t.W&&t.U)return e.push("polygonExposureShadow"),!1}));for(var t=e.length-1;0<=t;t--){var n=e[t];if(!!P[n]!=!!R[n])return!0}return!1}()){var e=!l();r(null,i.Y,x,e),y.defer((function(){re.Ui(),ie&&(ie(),ie=void 0)}))}else ie&&(ie(),ie=void 0)}),Math.max(q.hj,3*n.Wf.sd,3*n.Wf.rd))}var t,i;return function(t){$(U);var n=null!==(i=u()).$f,o=0<L.$b("hifi"),a=o&&(n||!t);t=n||N||!t,N=!1,o&&!a&&re.Vi(),r(i.$f,i.ag,a?x:b,t),S.za(I,(function(e){e.Z=!1,e.N=!1,e.Sa=!1})),a||e(),q.Af(n)}}(),this.i=function(e){e=e||{},$(U),I.N=!0;var t=u(),n=q.B;try{var i=y.I(e.pixelRatio,q.B);q.B=i;var a=L.dc("export",i,!0),s=a.getContext("2d");b===w&&(s=new o(s)),s.scale(i,i);var l=y.has(e,"backgroundColor");l&&(s.save(),s.fillStyle=e.backgroundColor,s.fillRect(0,0,D,B),s.restore()),r(l?[]:null,t.ag,s,!0)}finally{q.B=n}return a.toDataURL(y.I(e.format,"image/png"),y.I(e.quality,.8))};var re=function(){function e(e,t,i,r,o,a){function s(e,t,n,i){return j.K.A({opacity:L.$b(e)}).fa({duration:n,P:{opacity:{end:t,easing:i}},ba:function(){L.$b(e,this.opacity)}}).done()}var u=y.od(L.$b(e),t),l=y.od(L.$b(r),o);if(!u||!l){for(var c=n.length-1;0<=c;c--)n[c].stop();return n=[],u||n.push(s(e,t,i,m.Gb)),l||n.push(s(r,o,a,m.Tf)),j.K.A({}).Qa(n).start()}}var t,n=[];return{Vi:function(){q.Zc?1!==g.style.opacity&&(g.style.visibility="visible",_.style.visibility="hidden",g.style.opacity=1,_.style.opacity=0):t&&t.xb()||(t=e("wireframe",1,q.se,"hifi",0,q.se))},Ui:function(){q.Zc?(_.style.visibility="visible",g.style.visibility="hidden",g.style.opacity=0,_.style.opacity=1):e("hifi",1,q.dg,"wireframe",0,q.dg)}}}();return $=function(e){e.apply()},W=function(e){e.fill()},Z=function(e){e.stroke()},this}function X(e){function t(e){void 0!==e.groupLabelFontFamily&&(r.fontFamily=e.groupLabelFontFamily),void 0!==e.groupLabelFontStyle&&(r.fontStyle=e.groupLabelFontStyle),void 0!==e.groupLabelFontVariant&&(r.fontVariant=e.groupLabelFontVariant),void 0!==e.groupLabelFontWeight&&(r.fontWeight=e.groupLabelFontWeight),void 0!==e.groupLabelLineHeight&&(r.lineHeight=e.groupLabelLineHeight),void 0!==e.groupLabelHorizontalPadding&&(r.cb=e.groupLabelHorizontalPadding),void 0!==e.groupLabelVerticalPadding&&(r.Ua=e.groupLabelVerticalPadding),void 0!==e.groupLabelMaxTotalHeight&&(r.ib=e.groupLabelMaxTotalHeight),void 0!==e.groupLabelMaxFontSize&&(r.hb=e.groupLabelMaxFontSize)}var n,i=e.options,r={},o={},a={groupLabel:""},s={};e.j.subscribe("api:initialized",(function(e){n=e})),e.j.subscribe("options:changed",t),t(e.Cd),this.i=function(e){if(!e.$)return!1;var t=e.group.label;return i.eh&&!e.attribution&&(a.labelText=t,n.nc(i.dh,e,a),t=a.labelText),e.Ue=t,e.qd!==t},this.u=function(e){var t=e.Ue;if(e.qd=t,e.Bc.clear(),e.oa=void 0,e.$&&!y.Ne(t)&&("flattened"!==i.mb||e.empty()||!e.R||!e.m[0].W)){var a=B,u=a.de;if(i.kh){s.fontFamily=r.fontFamily,s.fontStyle=r.fontStyle,s.fontVariant=r.fontVariant,s.fontWeight=r.fontWeight,s.lineHeight=r.lineHeight,s.horizontalPadding=r.cb,s.verticalPadding=r.Ua,s.maxTotalTextHeight=r.ib,s.maxFontSize=r.hb,n.nc(i.jh,e,s),o.fontFamily=s.fontFamily,o.fontStyle=s.fontStyle,o.fontVariant=s.fontVariant,o.fontWeight=s.fontWeight,o.lineHeight=s.lineHeight,o.cb=s.horizontalPadding,o.Ua=s.verticalPadding,o.ib=s.maxTotalTextHeight,o.hb=s.maxFontSize;var l=o}else l=r;e.oa=u.call(a,l,e.Bc,t,e.$,e.F,e.O,!1,!1,e.Mh,e.O.ha,i.nh,e.Ma)}e.Ma=!1},K=this.H=function(e,t){e.Bc.Na(t)}}function Q(e){function t(e,t){var n,i=e.m,r=i.length,a=o.O.r;for(n=0;n<r;n++){var s=i[n];s.tb=(180*(Math.atan2(s.x-e.x,s.y-e.y)+t)/Math.PI+180)/360,s.wc=Math.min(1,Math.sqrt(M.i(s,e))/a)}}function n(e,t){var n=(e=e.m).length;if(1===n||2===n&&e[0].description)e[0].tb=.5;else{var i=0,r=Number.MAX_VALUE,o=Math.sin(t),a=Math.cos(t);for(t=0;t<n;t++){var s=e[t],u=s.x*o+s.y*a;i<u&&(i=u),r>u&&(r=u),s.tb=u,s.wc=1}for(t=0;t<n;t++)(s=e[t]).tb=(s.tb-r)/(i-r)}}function i(e,t,n,i){return(t=t[i])+(n[i]-t)*e}var r,o,a={radial:t,linear:n},s=e.options,u={groupColor:null,labelColor:null};return e.j.subscribe("model:loaded",(function(e){o=e})),e.j.subscribe("api:initialized",(function(e){r=e})),this.M=function(){},this.apply=function(){function e(e,t,n,i){var r=l(e+n*i);return r+t*((e=l(e-n*(1-i)))-r)}function l(e){return 0>e?0:100<e?100:e}var h=a[s.vi]||t,f=n,d=s.Fi,p=s.yi,g=s.Ig,b=s.Jg,v=s.zi,m=s.Di;!function t(n){if(n.R&&n.xa){var o,a=n.m;if(n.Z||n.Fa||b){for(0===n.level?h(n,s.wi*Math.PI/180):f(n,s.Ai*Math.PI/180),o=a.length-1;0<=o;o--){var l=a[o];l.Fa=!0;var C=l.tb,w=l.ve;if(0===n.level)var _=i(C,d,p,"h"),x=(m+(1-m)*l.wc)*i(C,d,p,"s"),A=(1+(0>l.ja?v*(l.ja+1):v)*(1-l.wc))*i(C,d,p,"l"),S=i(C,d,p,"a");else _=(A=n.pa).h,x=A.s,A=e(A.l,C,s.Bi,s.Ci),S=n.ve.a;w.h=_,w.s=x,w.l=A,w.a=S,_=l.pa,l.attribution?(_.h=0,_.s=0,_.l="light"==s.ae?90:10,_.a=1):(_.h=w.h,_.s=w.s,_.l=w.l,_.a=w.a),b&&!l.attribution&&(u.groupColor=_,u.labelColor="auto",r.nc(g,l,u,(function(e){e.ratio=C})),l.pa=c.u(u.groupColor),l.pa.a=y.has(u.groupColor,"a")?u.groupColor.a:1,"auto"!==u.labelColor&&(l.pd=c.wa(u.labelColor)))}n.Fa=!1}for(o=a.length-1;0<=o;o--)t(a[o])}}(o)},this}function ee(){this.kc=this.Yd=this.hc=this.Vf=this.w=this.cg=this.weight=this.y=this.x=this.id=0,this.C=this.parent=this.m=null,this.F={x:0,y:0,w:0,o:0},this.J=null,this.qd=this.Ue=void 0,this.Sc=!1,this.wc=this.tb=0,this.ve={h:0,s:0,l:0,a:0,model:"hsla"},this.pa={h:0,s:0,l:0,a:0,model:"hsla"},this.we={h:0,s:0,l:0,model:"hsl"},this.hd=-1,this.pd="auto",this.fb="#000",this.Sf=this.level=this.nd=this.index=0,this.attribution=!1,this.ha=this.Ze=0,this.Y=!1,this.$=null,this.O={x:0,y:0,ha:0,r:0},this.Fd=this.G=null,this.Fc=this.W=this.Sa=this.oc=this.Vd=this.Dd=this.Ma=this.Fa=this.N=this.Z=this.Ea=this.xa=this.R=this.Ia=!1,this.saturation=this.va=this.Da=this.ca=this.opacity=this.scale=1,this.ra=0,this.Hd=1,this.Cb=this.ja=this.yb=0,this.description=this.selected=this.ub=this.Bd=this.open=this.U=!1,this.sb=0,this.Te=this.Ed=this.X=!0,this.oa=void 0,this.Cc=!1,this.Bc=new r,this.aa=new r,this.Qb=new r,this.Mh=B.Zh(),this.Ec=0,this.$c=1,this.Jc=-1,this.empty=function(){return!this.m||0===this.m.length};var e=[];this.mc=function(t){e.push(t)},this.Nc=function(t){y.If(e,t)};var t={scale:1};this.vd=function(){var n=!1;this.scale=1;for(var i=0;i<e.length;i++)n=e[i].Ve(this,t)||n,this.scale*=t.scale;return n},this.Ib=function(t){for(var n=0;n<e.length;n++)e[n].Ib(this,t)},this.transformPoint=function(t,n){for(n.x=t.x,n.y=t.y,t=0;t<e.length;t++)e[t].transformPoint(this,n,n);return n},this.Jb=function(t,n){for(n.x=t.x,n.y=t.y,t=0;t<e.length;t++)e[t].Jb(this,n,n);return n};var n=[];this.qb=function(e){n.push(e)},this.Mc=function(e){y.If(n,e)};var i={opacity:1,saturation:1,va:1,ca:1,Da:1};this.cc=function(){if(0!==n.length){this.Da=this.ca=this.va=this.saturation=this.opacity=1;for(var e=n.length-1;0<=e;e--)(0,n[e])(this,i),this.opacity*=i.opacity,this.va*=i.va,this.saturation*=i.saturation,this.ca*=i.ca,this.Da*=i.Da}}}function te(e,t){return t.weight>e.weight?1:t.weight<e.weight?-1:e.index-t.index}function ne(e){var t,n,i,r,o,a,s=this,u=e.options;e.j.subscribe("stage:initialized",(function(o,a,l,c){i=l,r=c,t=o.dc("titlebar",u.B,!1),(n=t.getContext("2d")).B=u.B,n.scale(n.B,n.B),e.j.D("titlebar:initialized",s)})),e.j.subscribe("stage:resized",(function(e,t,o,a){i=o,r=a,n.scale(n.B,n.B)})),e.j.subscribe("zoom:initialized",(function(e){a=e})),e.j.subscribe("api:initialized",(function(e){o=e})),e.j.subscribe("model:loaded",(function(){n.clearRect(0,0,i,r)})),this.update=function(e){if(n.clearRect(0,0,i,r),e){!e.empty()&&e.m[0].description&&(e=e.m[0]);var t=u.bj,s=u.aj,l=Math.min(r/2,u.Wd+2*t),c=l-2*t,h=i-2*s;if(!(0>=c||0>=h)){var f=e.Cc?e.oa.fontSize*e.scale*a.scale():0,d={titleBarText:e.qd,titleBarTextColor:u.Zf,titleBarBackgroundColor:u.Yf,titleBarMaxFontSize:u.Wd,titleBarShown:f<u.Sh};if(e.attribution)var p=x("B`ssnu!Rd`sbi!Gn`lUsdd!whrt`mh{`uhno/!Busm,bmhbj!uid!mnfn!un!fn!un!iuuqr;..b`ssnurd`sbi/bnl.gn`lusdd!gns!lnsd!edu`hmr/");else o.nc(u.Yi,e,d,(function(e){e.titleBarWidth=h,e.titleBarHeight=c,e.labelFontSize=f,e.viewportScale=a.scale()})),p=d.titleBarText;p&&0!==p.length&&d.titleBarShown&&(t={x:s,y:(e=a.Uc(e.transformPoint(e,{}),{}).y>r/2)?t:r-l+t,w:h,o:c},s=M.H(t),n.fillStyle=u.Yf,n.fillRect(0,e?0:r-l,i,l),n.fillStyle=u.Zf,B.re({fontFamily:u.Zi||u.fh,fontStyle:u.Aj||u.gh,fontWeight:u.Cj||u.ih,fontVariant:u.Bj||u.hh,hb:u.Wd,Gc:u.$i,cb:0,Ua:0,ib:1},n,p,s,t,{x:t.x+t.w/2,y:t.y+t.o/2},!0,!0).ka||n.clearRect(0,0,i,r))}}}}function ie(e){function t(e,t,n){return C=!0,u&&u.stop(),c&&c.stop(),a(p.reset(e),t,n).then((function(){C=!1}))}function n(t){p.update(t),f.N=!0,e.j.D("foamtree:dirty",!0)}function i(e,t){return p.i((0!==p.u()?.35:1)*e,(0!==p.H()?.35:1)*t)}function r(){if(1===g.ratio){var e=Math.round(1e4*p.u())/1e4;0!==e&&(b.Id=e,u=d.K.jc(b).fa({duration:500,P:{x:{start:e,end:0,easing:m.Gb}},ba:function(){p.i(b.x-b.Id,0),n(1),b.Id=b.x}}).start())}}function o(){if(1===g.ratio){var e=Math.round(1e4*p.H())/1e4;0!==e&&(v.Jd=e,c=d.K.jc(v).fa({duration:500,P:{y:{start:e,end:0,easing:m.Gb}},ba:function(){p.i(0,v.y-v.Jd),n(1),v.Jd=v.y}}).start())}}function a(e,t,i){return e?d.K.jc(g).fa({duration:void 0===t?700:t,P:{ratio:{start:0,end:1,easing:i||m.Uf}},ba:function(){n(g.ratio)}}).Ta():(new h).resolve().promise()}function s(e){return function(){return C?(new h).resolve().promise():e.apply(this,arguments)}}var u,c,f,d,p=new l(e),g={ratio:1},b={ke:0,x:0,Id:0},v={le:0,y:0,Jd:0},y=this,C=!1;e.j.subscribe("model:loaded",(function(e){f=e,p.reset(!1),p.update(1)})),e.j.subscribe("timeline:initialized",(function(e){d=e})),this.M=function(){e.j.D("zoom:initialized",this)},this.reset=function(e,n){return p.Fb(1),t(!0,e,n)},this.normalize=s((function(e,n){p.pc(1)?t(!1,e,n):y.$e()})),this.$e=function(){r(),o()},this.bg=s((function(e,t,n,i){return y.ic(e.F,t,n,i)})),this.Nb=s((function(e,t,n,i){return a(p.Nb(e,t),n,i)})),this.ic=s((function(e,t,n,i){return a(p.ic(e,t),n,i)})),this.cj=s((function(e,t){p.ic(e,t)&&n(1)})),this.Uh=s((function(e,t){1===g.ratio&&i(e,t)&&n(1)})),this.qg=s((function(e,t){p.Nb(e,t)&&n(1)})),this.pg=s((function(e,t,r,o){e=0|p.Nb(e,t),(e|=i(r,o))&&n(1)})),this.Vh=s((function(e,t,a){1===g.ratio&&(u=d.K.jc(b).fa({duration:e/.03,P:{ke:{start:t,end:0,easing:m.Gb}},ba:function(){p.i(b.ke,0)&&n(1),r()}}).start(),c=d.K.jc(v).fa({duration:e/.03,P:{le:{start:a,end:0,easing:m.Gb}},ba:function(){i(0,v.le)&&n(1),o()}}).start())})),this.Wh=function(){u&&0===p.u()&&u.stop(),c&&0===p.H()&&c.stop()},this.rc=function(e,t){p.rc(e,t)},this.Fb=function(e){return p.Fb(e)},this.pc=function(e){return p.pc(e)},this.zd=function(){return p.zd()},this.absolute=function(e,t){return p.absolute(e,t)},this.Uc=function(e,t){return p.Uc(e,t)},this.scale=function(){return p.scale()},this.i=function(e){return p.T(e)},this.content=function(e,t,n,i){p.content(e,t,n,i)}}function re(t,r,o){function a(e){var t=[];return S.L(v,(function(n){e(n)&&t.push(n.group)})),{groups:t}}function s(e,t){var n=w.options,i=n.Mi,r=n.Li;n=n.Od;var o=0<i+r?n:0,a=[];return D.u(e,D.i(e,w.options.Qd),(function(e,n,s){n="groups"===w.options.Pd?s:n,e.m&&(e=T.K.A(e).wait(o*(r+i*n)).call(t).done(),a.push(e))})),T.K.A({}).Qa(a).Ta()}function l(e){ce||(ce=!0,x.once((function(){ce=!1,w.j.D("repaint:before"),H.Nd(this.og)}),{og:e}))}function c(e){function t(e,r){var o=e.W;if(e.W=r<=n,e.Fc=r<=i,e.W!==o&&S.me(e,(function(e){e.Vd=!0})),e.open||e.Va||r++,e=e.m)for(o=0;o<e.length;o++)t(e[o],r)}var n=w.options.We,i=Math.min(w.options.We,w.options.Ph);if(e)for(var r=0;r<e.length;r++){var o=e[r];t(o,b(o))}else t(v,0)}function p(e,t){var n=[];for((e=g(e,t)).Th&&w.j.D("model:childrenAttached",S.uc(v)),e.Gi&&I.complete((function(e){ue.eb(e),n.push(e)})),t=e=0;t<n.length;t++){var i=n[t];i.m&&(e+=i.m.length),i.xa=!0,W.i(i)}return e}function g(e,t){function n(e,t){var n=!e.attribution&&t-(e.Va?1:0)<o;s=s||n,e.Ia=e.Ia||n,e.open||e.Va||t++;var r=e.m;if(!r&&n&&(a=j.T(e)||a,r=e.m,u&&(e.Ma=!0)),r)for(e=0;e<r.length;e++)i.push(r[e],t)}var i,o=t||w.options.Qh,a=!1,s=!1,u="flattened"===r.mb;for(i=e?e.reduce((function(e,t){return e.push(t,1),e}),[]):[v,1];0<i.length;)n(i.shift(),i.shift());return{Th:a,Gi:s}}function b(e){for(var t=0;e.parent;)e.open||e.Va||t++,e=e.parent;return t}var v,C=this,w={j:new _,options:r,Cd:o},x=new i,T=new A(x),k=n.create(),z=new u(w),B=new ie(w),L=new E(w),j=new O(w.options),I=new U(w),H=new J(w,x),q=new G(w);new ne(w);var V=new N(w),W=new P(w),Z=new F(w),$=new R(w);w.j.subscribe("stage:initialized",(function(e,t,n,i){re.Le(n,i)})),w.j.subscribe("stage:resized",(function(e,t,n,i){re.Ki(e,t,n,i)})),w.j.subscribe("foamtree:attachChildren",p),w.j.subscribe("openclose:changing",c),w.j.subscribe("interaction:reset",(function(){le(!0)})),w.j.subscribe("foamtree:dirty",l),this.M=function(){w.j.D("timeline:initialized",T),v=j.M(),z.M(t),L.M(),H.M(),q.M(),V.M(),W.M(),B.M(),Z.M(),$.M()},this.Za=function(){T.i(),se.stop(),x.i(),z.Za()};var K="groupLabelFontFamily groupLabelFontStyle groupLabelFontVariant groupLabelFontWeight groupLabelLineHeight groupLabelHorizontalPadding groupLabelVerticalPadding groupLabelDottingThreshold groupLabelMaxTotalHeight groupLabelMinFontSize groupLabelMaxFontSize groupLabelDecorator".split(" "),Y="rainbowColorDistribution rainbowLightnessDistribution rainbowColorDistributionAngle rainbowLightnessDistributionAngle rainbowColorModelStartPoint rainbowLightnessCorrection rainbowSaturationCorrection rainbowStartColor rainbowEndColor rainbowHueShift rainbowHueShiftCenter rainbowSaturationShift rainbowSaturationShiftCenter rainbowLightnessShift rainbowLightnessShiftCenter attributionTheme".split(" "),X=!1,Q=["groupBorderRadius","groupBorderRadiusCorrection","groupBorderWidth","groupInsetWidth","groupBorderWidthScaling"],ee=["maxGroupLevelsDrawn","maxGroupLabelLevelsDrawn"];this.hg=function(e){w.j.D("options:changed",e),y.bb(e,K)&&S.L(v,(function(e){e.Ma=!0})),y.bb(e,Y)&&(v.Fa=!0),y.bb(e,Q)&&(X=!0),y.bb(e,ee)&&(c(),p())},this.reload=function(){oe.reload()},this.ig=function(e,t){y.defer((function(){if(X)re.Nh(e),X=!1;else{if(t)for(var n=j.u(t),i=n.length-1;0<=i;i--)n[i].N=!0;else v.N=!0;l(e)}}))},this.ga=function(){z.u()},this.update=function(e){var t=(e=e?j.u(e):[v]).reduce((function(e,t){return e[t.id]=t,e}),{});e=e.filter((function(e){for(e=e.parent;e;){if(y.has(t,e.id))return!1;e=e.parent}return!0})),j.update(e),re.dj(e)},this.reset=function(){return le(!1)},this.T=H.i,this.Ja=function(){var e={};return function(t,n){return(t=j.i(t))?L.Wc(e,t,n):null}}(),this.wa=function(){var e={x:0,y:0},t={x:0,y:0};return function(n,i){return(n=j.i(n))?(e.x=i.x,e.y=i.y,n.transformPoint(e,e),B.Uc(e,e),t.x=e.x,t.y=e.y,t):null}}(),this.sa=function(){var e={};return function(t){return(t=j.i(t))?L.Yc(e,t):null}}(),this.gg=function(){var e={};return function(t){return(t=j.i(t))?L.Xc(e,t):null}}(),this.ta=function(){var e={};return function(){return B.i(e)}}(),this.kg=function(){this.H({groups:a((function(e){return e.group.selected})),newState:!0,keepPrevious:!1}),this.u({groups:a((function(e){return e.group.open})),newState:!0,keepPrevious:!1}),this.i({groups:a((function(e){return e.group.exposed})),newState:!0,keepPrevious:!1})},this.Ka=function(){return a((function(e){return e.U}))},this.i=function(e){return oe.submit((function(){return V.Vb(j.H(e,"exposed",!1),!1,!0,!1)}))},this.pb=function(){return a((function(e){return e.open}))},this.u=function(e){return oe.submit((function(){return Z.Bb(j.H(e,"open",!0),!1,!1)}))},this.Lb=function(){return a((function(e){return e.selected}))},this.H=function(e){return oe.submit((function(){return $.select(j.H(e,"selected",!0),!1),(new h).resolve().promise()}))},this.mg=function(e){return(e=j.i(e))?e===v?B.reset(r.ob,m.ia(r.Kb)):B.bg(e,r.Yb,r.ob,m.ia(r.Kb)):(new h).resolve().promise()},this.ua=function(e,t){return(e=j.u(e))?(t=p(e,t),c(e),t):0},this.Vc=function(e){return q.Lb[e]},this.lg=function(){var t=e;return{frames:t.frames,totalTime:t.totalTime,lastFrameTime:t.rd,lastInterFrameTime:t.sd,fps:t.ue}};var te,re=function(){function e(e,o){var a=e||n,s=o||i;n=a,i=s,(e=r.Rb&&r.Rb.boundary)&&2<e.length?v.C=e.map((function(e){return{x:a*e.x,y:s*e.y}})):v.C=[{x:0,y:0},{x:a,y:0},{x:a,y:s},{x:0,y:s}],t()}function t(){v.Z=!0,v.G=v.C,v.F=M.F(v.C,v.F),v.O=v,M.Ja(v.C,v.O)}var n,i;return{Le:e,Ki:function(t,n,i,r){ue.stop();var o=i/t,a=r/n;S.ne(v,(function(e){e.x=e.x*o+(Math.random()-.5)*i/1e3,e.y=e.y*a+(Math.random()-.5)*r/1e3})),e(i,r),v.Ea=!0,I.step(ue.eb,!0,!1,(function(e){var t=e.m;if(t){I.Eb(e);for(var n=t.length-1;0<=n;n--){var i=t[n];i.w=i.hc}e.Ea=!0}}))?l(!1):(I.fc(v),w.options.Md?(l(!1),se.Jf(),se.Oc()):(I.complete(ue.eb),v.Fa=!0,l(!1)))},Nh:function(e){var n=!1;return v.empty()||(t(),se.xb()||(n=I.step(ue.eb,!1,!1),l(e))),n},dj:function(e){e.forEach((function(e){S.za(e,(function(e){e.empty()||I.Eb(e)})),I.fc(e),w.options.Md?(se.Jf(),S.za(e,(function(e){e.empty()||ue.grow(e)}))):(S.za(e,(function(e){e.empty()||ue.eb(e)})),I.complete(ue.eb),e.Fa=!0,l(!1))}))}}}(),oe=function(){function e(){if(0===r.Gd&&B.reset(0),w.options.zf(r.Rb),re.Le(),j.load(r.Rb),g(),c(),w.j.D("model:loaded",v,S.uc(v)),!v.empty()){if(v.open=!0,v.Ia=!0,r.Md)var e=se.Oc();else se.Yh(),e=function(){S.za(v,(function(e){e.xa=!1}));var e=new h,t=new d(e.resolve);return t.i(),v.xa=!0,W.i(v).then(t.u),s(v,(function e(){this.R&&this.C&&(this.Z=this.xa=!0,t.i(),W.i(this).then(t.u),t.i(),s(this,e).then(t.u))})),e.promise()}();!function(){var e=r.Oa,t=r.Kc;r.Oa=0,r.Kc=0,C.kg(),r.Oa=e,r.Kc=t}(),0<r.Od?(H.clear(),z.i(1)):e=f([e,t(1)])}w.options.yf(r.Rb),e&&(w.options.Cf(),e.then((function(){H.u((function(){x.once(w.options.Bf)}))})))}function t(e,t){return 0===r.qe||t?(z.i(e),(new h).resolve().promise()):T.K.A({opacity:z.i()}).Xd(2).fa({duration:r.qe,P:{opacity:{end:e,easing:m.ia(r.Cg)}},ba:function(){z.i(this.opacity)}}).Ta()}function n(){for(var e=0;e<o.length;e++){var t=o[e],n=t.action();y.has(n,"then")?n.then(t.ge.resolve):t.ge.resolve()}o=[]}var i=!1,o=[];return{reload:function(){i||(v.empty()?e():(ue.stop(),T.i(),se.stop(),i=!0,f(0<r.Gd?[W.u(),le(!1)]:[t(0)]).then((function(){t(0,!0),i=!1,e(),y.defer(n)}))))},submit:function(e){if(i){var t=new h;return o.push({action:e,ge:t}),t.promise()}return e()}}}(),ae=new d((function(){te.resolve()})),se=function(){function e(){return o||(ae.initial()&&(te=new h),ae.i(),t(),o=!0,x.repeat(n)),te.promise()}function t(){i=k.now()}function n(){var t=k.now()-i>r.Ji;return t=I.step((function(t){t.xa=!0,ue.grow(t),ae.i(),W.i(t).then(ae.u),ae.i(),s(t,(function(){this.Ia=!0,e()})).then(ae.u)}),!0,t)||t,l(!0),t&&(o=!1,ae.u()),t}var i,o=!1;return{Yh:function(){I.complete(ue.eb)},Oc:e,Jf:t,xb:function(){return!ae.initial()},stop:function(){x.cancel(n),o=!1,ae.clear()}}}(),ue=function(){function e(e){var t=!e.empty();if(e.xa=!0,t){for(var n=e.m,i=n.length-1;0<=i;i--){var r=n[i];r.w=r.hc}e.Ea=!0}return t}var t=[];return{grow:function(n){var i=w.options,r=i.Wg;0<r?D.u(n,D.i(n,w.options.Qd),(function(e,n,o){n="groups"===w.options.Pd?o:n,ae.i(),t.push(T.K.A(e).wait(n*i.Vg*r).fa({duration:r,P:{w:{start:e.Vf,end:e.hc,easing:m.ia(i.Xg)}},ba:function(){this.w=Math.max(0,this.w),this.parent.Ea=!0,se.Oc()}}).Xa(ae.u).start())})):e(n)&&se.Oc()},eb:e,stop:function(){for(var e=t.length-1;0<=e;e--)t[e].stop();t=[]}}}(),le=function(){var e=!1;return function(t){if(e)return(new h).resolve().promise();e=!0;var n=[];n.push(B.reset(r.ob,m.ia(r.Kb)));var i=new h;return V.Vb({m:[],Ca:!1,Ba:!1},t,!1,!0).then((function(){Z.Bb({m:[],Ca:!1,Ba:!1},t,!1).then(i.resolve)})),n.push(i.promise()),f(n).then((function(){e=!1,t&&r.Df()}))}}(),ce=!1}function oe(){return{version:"3.5.0",build:"bugfix/3.5.x/e3b91c8e",brandingAllowed:!1}}Y.i={width:445.2,height:533.5},t.md((function(){window.CarrotSearchFoamTree=function(e){function t(e,t){if(!s||s.exists(e))switch(e){case"selection":return h.Lb();case"open":return h.pb();case"exposure":return h.Ka();case"state":return h.sa.apply(this,t);case"geometry":return h.Ja.apply(this,t);case"hierarchy":return h.gg.apply(this,t);case"containerCoordinates":return h.wa.apply(this,t);case"imageData":return h.T.apply(this,t);case"viewport":return h.ta();case"times":return h.lg();case"onModelChanged":case"onRedraw":case"onRolloutStart":case"onRolloutComplete":case"onRelaxationStep":case"onGroupHover":case"onGroupOpenOrCloseChanging":case"onGroupExposureChanging":case"onGroupSelectionChanging":case"onGroupSelectionChanged":case"onGroupClick":case"onGroupDoubleClick":case"onGroupHold":return e=u[e],Array.isArray(e)?e:[e];default:return u[e]}}function n(e){function t(e,t){return y.has(n,e)?(t(n[e]),delete n[e],1):0}if(0===arguments.length)return 0;if(1===arguments.length)var n=y.extend({},arguments[0]);else 2===arguments.length&&((n={})[arguments[0]]=arguments[1]);s&&s.validate(n,l.Oh);var i=0;h&&(i+=t("selection",h.H),i+=t("open",h.u),i+=t("exposure",h.i));var o={};return y.Aa(n,(function(e,t){(u[t]!==e||y.wb(e))&&(o[t]=e,i++),u[t]=e})),0<i&&r(o),i}function i(e,t){e="on"+e.charAt(0).toUpperCase()+e.slice(1);var n=u[e];u[e]=t(Array.isArray(n)?n:[n]),(t={})[e]=u[e],r(t)}function r(e){!function(){function t(t,n){return y.has(e,t)||void 0===n?w(u[t],a):n}l.Oh=u.logging,l.Rb=u.dataObject,l.B=u.pixelRatio,l.nb=u.wireframePixelRatio,l.mb=u.stacking,l.zg=u.descriptionGroup,l.Tb=u.descriptionGroupType,l.qc=u.descriptionGroupPosition,l.Ag=u.descriptionGroupDistanceFromCenter,l.Sb=u.descriptionGroupSize,l.ie=u.descriptionGroupMinHeight,l.he=u.descriptionGroupMaxHeight,l.je=u.descriptionGroupPolygonDrawn,l.Dc=u.layout,l.ac=u.layoutByWeightOrder,l.Wi=u.showZeroWeightGroups,l.Be=u.groupMinDiameter,l.Ld=u.rectangleAspectRatioPreference,l.Ii=u.initializer||u.relaxationInitializer,l.Ji=u.relaxationMaxDuration,l.Md=u.relaxationVisible,l.Hf=u.relaxationQualityThreshold,l.oh=u.groupResizingBudget,l.Wg=u.groupGrowingDuration,l.Vg=u.groupGrowingDrag,l.Xg=u.groupGrowingEasing,l.Gg=u.groupBorderRadius,l.$a=u.groupBorderWidth,l.La=u.groupBorderWidthScaling,l.jd=u.groupInsetWidth,l.Hg=u.groupBorderRadiusCorrection,l.ab=u.groupStrokeWidth,l.yc=u.groupSelectionOutlineWidth,l.sh=u.groupSelectionOutlineColor,l.kd=u.groupSelectionOutlineShadowSize,l.Ce=u.groupSelectionOutlineShadowColor,l.ph=u.groupSelectionFillHueShift,l.rh=u.groupSelectionFillSaturationShift,l.qh=u.groupSelectionFillLightnessShift,l.Ee=u.groupSelectionStrokeHueShift,l.Ge=u.groupSelectionStrokeSaturationShift,l.Fe=u.groupSelectionStrokeLightnessShift,l.Ug=u.groupFillType,l.Qg=u.groupFillGradientRadius,l.Ng=u.groupFillGradientCenterHueShift,l.Pg=u.groupFillGradientCenterSaturationShift,l.Og=u.groupFillGradientCenterLightnessShift,l.Rg=u.groupFillGradientRimHueShift,l.Tg=u.groupFillGradientRimSaturationShift,l.Sg=u.groupFillGradientRimLightnessShift,l.ld=u.groupStrokeType,l.ab=u.groupStrokeWidth,l.He=u.groupStrokePlainHueShift,l.Je=u.groupStrokePlainSaturationShift,l.Ie=u.groupStrokePlainLightnessShift,l.xh=u.groupStrokeGradientRadius,l.th=u.groupStrokeGradientAngle,l.yh=u.groupStrokeGradientUpperHueShift,l.Ah=u.groupStrokeGradientUpperSaturationShift,l.zh=u.groupStrokeGradientUpperLightnessShift,l.uh=u.groupStrokeGradientLowerHueShift,l.wh=u.groupStrokeGradientLowerSaturationShift,l.vh=u.groupStrokeGradientLowerLightnessShift,l.Yg=u.groupHoverFillHueShift,l.$g=u.groupHoverFillSaturationShift,l.Zg=u.groupHoverFillLightnessShift,l.ye=u.groupHoverStrokeHueShift,l.Ae=u.groupHoverStrokeSaturationShift,l.ze=u.groupHoverStrokeLightnessShift,l.Pa=u.groupExposureScale,l.Mg=u.groupExposureShadowColor,l.xe=u.groupExposureShadowSize,l.Yb=u.groupExposureZoomMargin,l.Ch=u.groupUnexposureLightnessShift,l.Dh=u.groupUnexposureSaturationShift,l.Bh=u.groupUnexposureLabelColorThreshold,l.Oa=u.exposeDuration,l.Wb=u.exposeEasing,l.Kc=u.openCloseDuration,l.Ig=w(u.groupColorDecorator,a),l.Jg=u.groupColorDecorator!==y.qa,l.dh=w(u.groupLabelDecorator,a),l.eh=u.groupLabelDecorator!==y.qa,l.jh=w(u.groupLabelLayoutDecorator,a),l.kh=u.groupLabelLayoutDecorator!==y.qa,l.Kg=w(u.groupContentDecorator,a),l.xc=u.groupContentDecorator!==y.qa,l.Lg=u.groupContentDecoratorTriggering,l.Ei=u.rainbowStartColor,l.xi=u.rainbowEndColor,l.vi=u.rainbowColorDistribution,l.wi=u.rainbowColorDistributionAngle,l.Ai=u.rainbowLightnessDistributionAngle,l.Bi=u.rainbowLightnessShift,l.Ci=u.rainbowLightnessShiftCenter,l.Di=u.rainbowSaturationCorrection,l.zi=u.rainbowLightnessCorrection,l.Ef=u.parentFillOpacity,l.Xh=u.parentStrokeOpacity,l.Ff=u.parentLabelOpacity,l.Gf=u.parentOpacityBalancing,l.nh=u.groupLabelUpdateThreshold,l.fh=u.groupLabelFontFamily,l.gh=u.groupLabelFontStyle,l.hh=u.groupLabelFontVariant,l.ih=u.groupLabelFontWeight,l.mh=u.groupLabelMinFontSize,l.sj=u.groupLabelMaxFontSize,l.rj=u.groupLabelLineHeight,l.qj=u.groupLabelHorizontalPadding,l.uj=u.groupLabelVerticalPadding,l.tj=u.groupLabelMaxTotalHeight,l.bh=u.groupLabelDarkColor,l.lh=u.groupLabelLightColor,l.ah=u.groupLabelColorThreshold,l.fj=u.wireframeDrawMaxDuration,l.gj=u.wireframeLabelDrawing,l.ej=u.wireframeContentDecorationDrawing,l.dg=u.wireframeToFinalFadeDuration,l.hj=u.wireframeToFinalFadeDelay,l.Dg=u.finalCompleteDrawMaxDuration,l.Eg=u.finalIncrementalDrawMaxDuration,l.se=u.finalToWireframeFadeDuration,l.Zc=u.androidStockBrowserWorkaround,l.Ke=u.incrementalDraw,l.Rh=u.maxGroups,l.Qh=u.maxGroupLevelsAttached,l.We=u.maxGroupLevelsDrawn,l.Ph=u.maxGroupLabelLevelsDrawn,l.Qd=u.rolloutStartPoint,l.Pd=u.rolloutMethod,l.Ni=u.rolloutEasing,l.Od=u.rolloutDuration,l.Lf=u.rolloutScalingStrength,l.Nf=u.rolloutTranslationXStrength,l.Of=u.rolloutTranslationYStrength,l.Kf=u.rolloutRotationStrength,l.Mf=u.rolloutTransformationCenter,l.Ri=u.rolloutPolygonDrag,l.Si=u.rolloutPolygonDuration,l.Oi=u.rolloutLabelDelay,l.Pi=u.rolloutLabelDrag,l.Qi=u.rolloutLabelDuration,l.Mi=u.rolloutChildGroupsDrag,l.Li=u.rolloutChildGroupsDelay,l.ni=u.pullbackStartPoint,l.hi=u.pullbackMethod,l.di=u.pullbackEasing,l.yj=u.pullbackType,l.Gd=u.pullbackDuration,l.mi=u.pullbackScalingStrength,l.pi=u.pullbackTranslationXStrength,l.ri=u.pullbackTranslationYStrength,l.li=u.pullbackRotationStrength,l.oi=u.pullbackTransformationCenter,l.ii=u.pullbackPolygonDelay,l.ji=u.pullbackPolygonDrag,l.ki=u.pullbackPolygonDuration,l.ei=u.pullbackLabelDelay,l.fi=u.pullbackLabelDrag,l.gi=u.pullbackLabelDuration,l.ai=u.pullbackChildGroupsDelay,l.bi=u.pullbackChildGroupsDrag,l.ci=u.pullbackChildGroupsDuration,l.qe=u.fadeDuration,l.Cg=u.fadeEasing,l.ij=u.zoomMouseWheelFactor,l.ob=u.zoomMouseWheelDuration,l.Kb=u.zoomMouseWheelEasing,l.Sh=u.maxLabelSizeForTitleBar,l.Zi=u.titleBarFontFamily,l.Yf=u.titleBarBackgroundColor,l.Zf=u.titleBarTextColor,l.$i=u.titleBarMinFontSize,l.Wd=u.titleBarMaxFontSize,l.aj=u.titleBarTextPaddingLeftRight,l.bj=u.titleBarTextPaddingTopBottom,l.Yi=u.titleBarDecorator,l.mj=u.attributionText,l.jj=u.attributionLogo,l.lj=u.attributionLogoScale,l.nj=u.attributionUrl,l.$d=u.attributionPosition,l.rg=u.attributionDistanceFromCenter,l.sg=u.attributionWeight,l.ae=u.attributionTheme,l.Me=u.interactionHandler,l.zf=t("onModelChanging",l.zf),l.yf=t("onModelChanged",l.yf),l.Af=t("onRedraw",l.Af),l.Cf=t("onRolloutStart",l.Cf),l.Bf=t("onRolloutComplete",l.Bf),l.Ad=t("onRelaxationStep",l.Ad),l.Df=t("onViewReset",l.Df),l.rf=t("onGroupOpenOrCloseChanging",l.rf),l.qf=t("onGroupOpenOrCloseChanged",l.qf),l.hf=t("onGroupExposureChanging",l.hf),l.gf=t("onGroupExposureChanged",l.gf),l.tf=t("onGroupSelectionChanging",l.tf),l.sf=t("onGroupSelectionChanged",l.sf),l.kf=t("onGroupHover",l.kf),l.mf=t("onGroupMouseMove",l.mf),l.bf=t("onGroupClick",l.bf),l.cf=t("onGroupDoubleClick",l.cf),l.jf=t("onGroupHold",l.jf),l.pf=t("onGroupMouseWheel",l.pf),l.nf=t("onGroupMouseUp",l.nf),l.lf=t("onGroupMouseDown",l.lf),l.ff=t("onGroupDragStart",l.ff),l.df=t("onGroupDrag",l.df),l.ef=t("onGroupDragEnd",l.ef),l.wf=t("onGroupTransformStart",l.wf),l.uf=t("onGroupTransform",l.uf),l.vf=t("onGroupTransformEnd",l.vf),l.xf=t("onKeyUp",l.xf)}(),l.Fi=c.u(l.Ei),l.yi=c.u(l.xi),l.De=c.u(l.Ce),l.kj=null,h&&(h.hg(e),y.has(e,"dataObject")&&h.reload())}function o(e){return function(){return e.apply(this,arguments).Fg(a)}}var a=this,s=window.CarrotSearchFoamTree.asserts,u=y.extend({},window.CarrotSearchFoamTree.defaults),l={};n(e),(e=u.element||document.getElementById(u.id))||j.i("Element to embed FoamTree in not found."),u.element=e;var h=new re(e,l,u);h.M();var f={get:function(e){return 0===arguments.length?y.extend({},u):t(arguments[0],Array.prototype.slice.call(arguments,1))},set:n,on:function(e,t){i(e,(function(e){return e.push(t),e}))},off:function(e,t){i(e,(function(e){return e.filter((function(e){return e!==t}))}))},resize:h.ga,redraw:h.ig,update:h.update,attach:h.ua,select:o(h.H),expose:o(h.i),open:o(h.u),reset:o(h.reset),zoom:o(h.mg),trigger:function(e,t){(e=h.Vc(e))&&e(t)},dispose:function(){function e(){throw"FoamTree instance disposed"}h.Za(),y.Aa(f,(function(t,n){"dispose"!==n&&(a[n]=e)}))}};y.Aa(f,(function(e,t){a[t]=e})),h.reload()},window["CarrotSearchFoamTree.asserts"]&&(window.CarrotSearchFoamTree.asserts=window["CarrotSearchFoamTree.asserts"],delete window["CarrotSearchFoamTree.asserts"]),window.CarrotSearchFoamTree.supported=!0,window.CarrotSearchFoamTree.version=oe,window.CarrotSearchFoamTree.defaults=Object.freeze({id:void 0,element:void 0,logging:!1,dataObject:void 0,pixelRatio:1,wireframePixelRatio:1,layout:"relaxed",layoutByWeightOrder:!0,showZeroWeightGroups:!0,groupMinDiameter:10,rectangleAspectRatioPreference:-1,relaxationInitializer:"fisheye",relaxationMaxDuration:3e3,relaxationVisible:!1,relaxationQualityThreshold:1,stacking:"hierarchical",descriptionGroup:"auto",descriptionGroupType:"stab",descriptionGroupPosition:225,descriptionGroupDistanceFromCenter:1,descriptionGroupSize:.125,descriptionGroupMinHeight:35,descriptionGroupMaxHeight:.5,descriptionGroupPolygonDrawn:!1,maxGroups:5e4,maxGroupLevelsAttached:4,maxGroupLevelsDrawn:4,maxGroupLabelLevelsDrawn:3,groupGrowingDuration:0,groupGrowingEasing:"bounce",groupGrowingDrag:0,groupResizingBudget:2,groupBorderRadius:.15,groupBorderWidth:4,groupBorderWidthScaling:.6,groupInsetWidth:6,groupBorderRadiusCorrection:1,groupSelectionOutlineWidth:5,groupSelectionOutlineColor:"#222",groupSelectionOutlineShadowSize:0,groupSelectionOutlineShadowColor:"#fff",groupSelectionFillHueShift:0,groupSelectionFillSaturationShift:0,groupSelectionFillLightnessShift:0,groupSelectionStrokeHueShift:0,groupSelectionStrokeSaturationShift:0,groupSelectionStrokeLightnessShift:-10,groupFillType:"gradient",groupFillGradientRadius:1,groupFillGradientCenterHueShift:0,groupFillGradientCenterSaturationShift:0,groupFillGradientCenterLightnessShift:20,groupFillGradientRimHueShift:0,groupFillGradientRimSaturationShift:0,groupFillGradientRimLightnessShift:-5,groupStrokeType:"plain",groupStrokeWidth:1.5,groupStrokePlainHueShift:0,groupStrokePlainSaturationShift:0,groupStrokePlainLightnessShift:-10,groupStrokeGradientRadius:1,groupStrokeGradientAngle:45,groupStrokeGradientUpperHueShift:0,groupStrokeGradientUpperSaturationShift:0,groupStrokeGradientUpperLightnessShift:20,groupStrokeGradientLowerHueShift:0,groupStrokeGradientLowerSaturationShift:0,groupStrokeGradientLowerLightnessShift:-20,groupHoverFillHueShift:0,groupHoverFillSaturationShift:0,groupHoverFillLightnessShift:20,groupHoverStrokeHueShift:0,groupHoverStrokeSaturationShift:0,groupHoverStrokeLightnessShift:-10,groupExposureScale:1.15,groupExposureShadowColor:"rgba(0, 0, 0, 0.5)",groupExposureShadowSize:50,groupExposureZoomMargin:.1,groupUnexposureLightnessShift:65,groupUnexposureSaturationShift:-65,groupUnexposureLabelColorThreshold:.35,exposeDuration:700,exposeEasing:"squareInOut",groupColorDecorator:y.qa,groupLabelDecorator:y.qa,groupLabelLayoutDecorator:y.qa,groupContentDecorator:y.qa,groupContentDecoratorTriggering:"onLayoutDirty",openCloseDuration:500,rainbowColorDistribution:"radial",rainbowColorDistributionAngle:-45,rainbowLightnessDistributionAngle:45,rainbowSaturationCorrection:.1,rainbowLightnessCorrection:.4,rainbowStartColor:"hsla(0, 100%, 55%, 1)",rainbowEndColor:"hsla(359, 100%, 55%, 1)",rainbowLightnessShift:30,rainbowLightnessShiftCenter:.4,parentFillOpacity:.7,parentStrokeOpacity:1,parentLabelOpacity:1,parentOpacityBalancing:!0,wireframeDrawMaxDuration:15,wireframeLabelDrawing:"auto",wireframeContentDecorationDrawing:"auto",wireframeToFinalFadeDuration:500,wireframeToFinalFadeDelay:300,finalCompleteDrawMaxDuration:80,finalIncrementalDrawMaxDuration:100,finalToWireframeFadeDuration:200,androidStockBrowserWorkaround:!1,incrementalDraw:"fast",groupLabelFontFamily:"sans-serif",groupLabelFontStyle:"normal",groupLabelFontWeight:"normal",groupLabelFontVariant:"normal",groupLabelLineHeight:1.05,groupLabelHorizontalPadding:1,groupLabelVerticalPadding:1,groupLabelMinFontSize:6,groupLabelMaxFontSize:160,groupLabelMaxTotalHeight:.9,groupLabelUpdateThreshold:.05,groupLabelDarkColor:"#000",groupLabelLightColor:"#fff",groupLabelColorThreshold:.35,rolloutStartPoint:"center",rolloutEasing:"squareOut",rolloutMethod:"groups",rolloutDuration:2e3,rolloutScalingStrength:-.7,rolloutTranslationXStrength:0,rolloutTranslationYStrength:0,rolloutRotationStrength:-.7,rolloutTransformationCenter:.7,rolloutPolygonDrag:.1,rolloutPolygonDuration:.5,rolloutLabelDelay:.8,rolloutLabelDrag:.1,rolloutLabelDuration:.5,rolloutChildGroupsDrag:.1,rolloutChildGroupsDelay:.2,pullbackStartPoint:"center",pullbackEasing:"squareIn",pullbackMethod:"groups",pullbackDuration:1500,pullbackScalingStrength:-.7,pullbackTranslationXStrength:0,pullbackTranslationYStrength:0,pullbackRotationStrength:-.7,pullbackTransformationCenter:.7,pullbackPolygonDelay:.3,pullbackPolygonDrag:.1,pullbackPolygonDuration:.8,pullbackLabelDelay:0,pullbackLabelDrag:.1,pullbackLabelDuration:.3,pullbackChildGroupsDelay:.1,pullbackChildGroupsDrag:.1,pullbackChildGroupsDuration:.3,fadeDuration:700,fadeEasing:"cubicInOut",zoomMouseWheelFactor:1.5,zoomMouseWheelDuration:500,zoomMouseWheelEasing:"squareOut",maxLabelSizeForTitleBar:8,titleBarFontFamily:null,titleBarFontStyle:"normal",titleBarFontWeight:"normal",titleBarFontVariant:"normal",titleBarBackgroundColor:"rgba(0, 0, 0, 0.5)",titleBarTextColor:"rgba(255, 255, 255, 1)",titleBarMinFontSize:10,titleBarMaxFontSize:40,titleBarTextPaddingLeftRight:20,titleBarTextPaddingTopBottom:15,titleBarDecorator:y.qa,attributionText:null,attributionLogo:null,attributionLogoScale:.5,attributionUrl:"http://carrotsearch.com/foamtree",attributionPosition:"bottomright",attributionDistanceFromCenter:1,attributionWeight:.025,attributionTheme:"light",interactionHandler:t.Gh()?"hammerjs":"builtin",onModelChanging:[],onModelChanged:[],onRedraw:[],onRolloutStart:[],onRolloutComplete:[],onRelaxationStep:[],onViewReset:[],onGroupOpenOrCloseChanging:[],onGroupOpenOrCloseChanged:[],onGroupExposureChanging:[],onGroupExposureChanged:[],onGroupSelectionChanging:[],onGroupSelectionChanged:[],onGroupHover:[],onGroupMouseMove:[],onGroupClick:[],onGroupDoubleClick:[],onGroupHold:[],onGroupMouseWheel:[],onGroupMouseUp:[],onGroupMouseDown:[],onGroupDragStart:[],onGroupDrag:[],onGroupDragEnd:[],onGroupTransformStart:[],onGroupTransform:[],onGroupTransformEnd:[],onKeyUp:[],selection:null,open:null,exposure:null,imageData:null,hierarchy:null,geometry:null,containerCoordinates:null,state:null,viewport:null,times:null}),window.CarrotSearchFoamTree.geometry=Object.freeze({rectangleInPolygon:function(e,t,n,i,r,o,a){return r=y.I(r,1),o=y.I(o,.5),a=y.I(a,.5),{x:t-(e=M.Ka(e,{x:t,y:n},i,o,a)*r)*i*o,y:n-e*a,w:e*i,h:e}},circleInPolygon:function(e,t,n){return M.pb(e,{x:t,y:n})},stabPolygon:function(e,t,n,i){return M.ua(e,{x:t,y:n},i)},polygonCentroid:function(e){return{x:(e=M.u(e,{})).x,y:e.y,area:e.ha}},boundingBox:function(e){for(var t=e[0].x,n=e[0].y,i=e[0].x,r=e[0].y,o=1;o<e.length;o++){var a=e[o];a.x<t&&(t=a.x),a.y<n&&(n=a.y),a.x>i&&(i=a.x),a.y>r&&(r=a.y)}return{x:t,y:n,w:i-t,h:r-n}}})}),(function(){window.CarrotSearchFoamTree=function(){window.console.error("FoamTree is not supported on this browser.")},window.CarrotSearchFoamTree.supported=!1}))}();const Fr=window.CarrotSearchFoamTree;function Rr(t,n,i,r,o){var a={};for(var s in n)"ref"!=s&&(a[s]=n[s]);var u,l,c={type:t,props:a,key:i,ref:n&&n.ref,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:++e.__v,__source:r,__self:o};if("function"==typeof t&&(u=t.defaultProps))for(l in u)void 0===a[l]&&(a[l]=u[l]);return e.vnode&&e.vnode(c),c}class Gr extends g{constructor(e){super(e),this.saveNodeRef=e=>this.node=e,this.resize=()=>{const{props:e}=this;this.treemap.resize(),e.onResize&&e.onResize()},this.treemap=null,this.zoomOutDisabled=!1,this.findChunkNamePartIndex()}componentDidMount(){this.treemap=this.createTreemap(),window.addEventListener("resize",this.resize)}componentWillReceiveProps(e){e.data!==this.props.data?(this.findChunkNamePartIndex(),this.treemap.set({dataObject:this.getTreemapDataObject(e.data)})):e.highlightGroups!==this.props.highlightGroups&&setTimeout((()=>this.treemap.redraw()))}shouldComponentUpdate(){return!1}componentWillUnmount(){window.removeEventListener("resize",this.resize),this.treemap.dispose()}render(){return Rr("div",{...this.props,ref:this.saveNodeRef})}getTreemapDataObject(e=this.props.data){return{groups:e}}createTreemap(){const e=this,{props:t}=this;return new Fr({element:this.node,layout:"squarified",stacking:"flattened",pixelRatio:window.devicePixelRatio||1,maxGroups:1/0,maxGroupLevelsDrawn:1/0,maxGroupLabelLevelsDrawn:1/0,maxGroupLevelsAttached:1/0,wireframeLabelDrawing:"always",groupMinDiameter:0,groupLabelVerticalPadding:.2,rolloutDuration:0,pullbackDuration:0,fadeDuration:0,groupExposureZoomMargin:.2,zoomMouseWheelDuration:300,openCloseDuration:200,dataObject:this.getTreemapDataObject(),titleBarDecorator(e,t,n){n.titleBarShown=!1},groupColorDecorator(t,n,i){const r=e.getGroupRoot(n.group),o=e.getChunkNamePart(r.label),a=/[^0-9]/u.test(o)?function(e){let t=0;for(let n=0;n<e.length;n++){t=(t<<5)-t+e.charCodeAt(n),t&=t}return t}(o):parseInt(o)/1e3*360;i.groupColor={model:"hsla",h:Math.round(Math.abs(a)%360),s:60,l:50,a:.9};const{highlightGroups:s}=e.props,u=n.group;s&&s.has(u)?i.groupColor={model:"rgba",r:255,g:0,b:0,a:.8}:s&&s.size>0&&(i.groupColor.s=10)},onGroupClick(n){Hr(n),(n.ctrlKey||n.secondary)&&t.onGroupSecondaryClick?t.onGroupSecondaryClick.call(e,n):(e.zoomOutDisabled=!1,this.zoom(n.group))},onGroupDoubleClick:Hr,onGroupHover(n){if(n.group&&(n.group.attribution||n.group===this.get("dataObject")))return n.preventDefault(),void(t.onMouseLeave&&t.onMouseLeave.call(e,n));t.onGroupHover&&t.onGroupHover.call(e,n)},onGroupMouseWheel(t){const{scale:n}=this.get("viewport");if(t.delta<0){if(e.zoomOutDisabled)return Hr(t);n<1&&(e.zoomOutDisabled=!0,Hr(t))}else e.zoomOutDisabled=!1}})}getGroupRoot(e){let t;for(;!e.isAsset&&(t=this.treemap.get("hierarchy",e).parent);)e=t;return e}zoomToGroup(e){for(this.zoomOutDisabled=!1;e&&!this.treemap.get("state",e).revealed;)e=this.treemap.get("hierarchy",e).parent;e&&this.treemap.zoom(e)}isGroupRendered(e){const t=this.treemap.get("state",e);return!!t&&t.revealed}update(){this.treemap.update()}findChunkNamePartIndex(){const e=this.props.data.map((e=>e.label.split(/[^a-z0-9]/iu))),t={index:0,votes:0};for(let n=Math.max(...e.map((e=>e.length)))-1;n>=0;n--){const i={name:0,hash:0,ext:0};let r="";for(const t of e){const e=t[n];void 0!==e&&""!==e&&(e===r?i.ext++:/[a-z]/u.test(e)&&/[0-9]/u.test(e)&&e.length===r.length?i.hash++:(/^[a-z]+$/iu.test(e)||/^[0-9]+$/u.test(e))&&i.name++,r=e)}i.name>=t.votes&&(t.index=n,t.votes=i.name)}this.chunkNamePartIndex=t.index}getChunkNamePart(e){return e.split(/[^a-z0-9]/iu)[this.chunkNamePartIndex]||e}}function Hr(e){e.preventDefault()}var Ur=n(184),qr=n.n(Ur),Vr=n(379),Wr=n.n(Vr),Zr=n(527),$r={insert:"head",singleton:!1};Wr()(Zr.Z,$r);const Kr=Zr.Z.locals||{};class Yr extends g{constructor(...e){super(...e),this.mouseCoords={x:0,y:0},this.state={left:0,top:0},this.handleMouseMove=e=>{Object.assign(this.mouseCoords,{x:e.pageX,y:e.pageY}),this.props.visible&&this.updatePosition()},this.saveNode=e=>this.node=e}componentDidMount(){document.addEventListener("mousemove",this.handleMouseMove,!0)}shouldComponentUpdate(e){return this.props.visible||e.visible}componentWillUnmount(){document.removeEventListener("mousemove",this.handleMouseMove,!0)}render(){const{children:e,visible:t}=this.props,n=qr()({[Kr.container]:!0,[Kr.hidden]:!t});return Rr("div",{ref:this.saveNode,className:n,style:this.getStyle(),children:e})}getStyle(){return{left:this.state.left,top:this.state.top}}updatePosition(){if(!this.props.visible)return;const e={left:this.mouseCoords.x+Yr.marginX,top:this.mouseCoords.y+Yr.marginY},t=this.node.getBoundingClientRect();e.left+t.width>window.innerWidth&&(e.left=window.innerWidth-t.width),e.top+t.height>window.innerHeight&&(e.top=this.mouseCoords.y-Yr.marginY-t.height),this.setState(e)}}Yr.marginX=10,Yr.marginY=30;var Jr=n(908),Xr={insert:"head",singleton:!1};Wr()(Jr.Z,Xr);const Qr=Jr.Z.locals||{};class eo extends g{shouldComponentUpdate(e,t){return!to(e,this.props)||!to(this.state,t)}}function to(e,t){if(e===t)return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let i=0;i<n.length;i++){const r=n[i];if(e[r]!==t[r])return!1}return!0}class no extends eo{constructor(...e){super(...e),this.handleClick=e=>{this.elem.blur(),this.props.onClick(e)},this.saveRef=e=>this.elem=e}render({active:e,toggle:t,className:n,children:i,...r}){const o=qr()(n,{[Qr.button]:!0,[Qr.active]:e,[Qr.toggle]:t});return Rr("button",{...r,ref:this.saveRef,type:"button",className:o,disabled:this.disabled,onClick:this.handleClick,children:i})}get disabled(){const{props:e}=this;return e.disabled||e.active&&!e.toggle}}class io extends eo{constructor(...e){super(...e),this.handleClick=()=>{this.props.onClick(this.props.item)}}render({item:e,...t}){return Rr(no,{...t,onClick:this.handleClick,children:e.label})}}var ro=n(897),oo={insert:"head",singleton:!1};Wr()(ro.Z,oo);const ao=ro.Z.locals||{};class so extends eo{render(){const{label:e,items:t,activeItem:n,onSwitch:i}=this.props;return Rr("div",{className:ao.container,children:[Rr("div",{className:ao.label,children:[e,":"]}),Rr("div",{children:t.map((e=>Rr(io,{className:ao.item,item:e,active:e===n,onClick:i},e.label)))})]})}}var uo=n(826),lo={insert:"head",singleton:!1};Wr()(uo.Z,lo);const co=uo.Z.locals||{};var ho=n(746),fo={insert:"head",singleton:!1};Wr()(ho.Z,fo);const po=ho.Z.locals||{},go={"arrow-right":{src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNLjgyMiAxMi44MTFhLjQ0NS40NDUgMCAwIDEtLjMyMi4xMzMuNDU2LjQ1NiAwIDAgMS0uMzIyLS43NzhMNS44NDQgNi41LjE3OC44MzNBLjQ1Ni40NTYgMCAwIDEgLjgyMi4xOWw1Ljk5IDUuOTg5YS40NTYuNDU2IDAgMCAxIDAgLjY0NGwtNS45OSA1Ljk5eiIvPjwvc3ZnPg==",size:[7,13]},pin:{src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuMDEyIDE3Ljk0OWwtMS40OTMtNi4zNzZhMTAuOTM1IDEwLjkzNSAwIDAgMCAyLjk4NS4wMDJMNi4wMTIgMTcuOTV6TTkuMjQ2IDEuODU3YzAgLjUyLS40MTUuOTg1LTEuMDcgMS4zMDhsLS4wMDEgMi42MTZjMS43MjUuNDEgMi45MjIgMS4yOTQgMi45MjIgMi4zMiAwIC40MTYtLjE5NS44MDktLjU0MiAxLjE1Ni0uNjQuNjM5LTEuNzk0IDEuMTI0LTMuMTg3IDEuMzE4LS4wMy4wMDUtLjA2Mi4wMDgtLjA5My4wMTJhOC45MTcgOC45MTcgMCAwIDEtLjcyNS4wNjVsLS4xMi4wMDdhMTAuMTU0IDEwLjE1NCAwIDAgMS0uODk1LS4wMDNjLS4wOTgtLjAwNS0uMTkzLS4wMTMtLjI4OC0uMDItLjA1My0uMDA0LS4xMDYtLjAwNy0uMTU4LS4wMTJhOS4yNDcgOS4yNDcgMCAwIDEtLjM3Mi0uMDQzbC0uMDQ1LS4wMDZDMi41MTQgMTAuMjc4LjkyNiA5LjI4NS45MjYgOC4xMDFjMC0uNDE1LjE5Ni0uODA3LjU0My0xLjE1NC41MTEtLjUxMiAxLjM1Mi0uOTI0IDIuMzgtMS4xNjhWMy4xNjVjLS42NTYtLjMyMy0xLjA3LS43ODktMS4wNy0xLjMwOUMyLjc3OC44ODIgNC4yMjUuMDkyIDYuMDExLjA5MnMzLjIzNC43OSAzLjIzNCAxLjc2NXoiLz48L3N2Zz4=",size:[12,18]}};class bo extends eo{render({className:e}){return Rr("i",{className:qr()(po.icon,e),style:this.style})}get style(){const{name:e,size:t,rotate:n}=this.props,i=go[e];if(!i)throw new TypeError(`Can't find "${e}" icon.`);let[r,o]=i.size;if(t){const e=t/Math.max(r,o);r=Math.min(Math.ceil(r*e),t),o=Math.min(Math.ceil(o*e),t)}return{backgroundImage:`url(${i.src})`,width:`${r}px`,height:`${o}px`,transform:n?`rotate(${n}deg)`:""}}}const vo=parseInt(co.toggleTime);class mo extends g{constructor(...e){super(...e),this.allowHide=!0,this.toggling=!1,this.hideContentTimeout=null,this.width=null,this.state={visible:!0,renderContent:!0},this.handleClick=()=>{this.allowHide=!1},this.handleMouseEnter=()=>{this.toggling||this.props.pinned||(clearTimeout(this.hideTimeoutId),this.toggleVisibility(!0))},this.handleMouseMove=()=>{this.allowHide=!0},this.handleMouseLeave=()=>{!this.allowHide||this.toggling||this.props.pinned||this.toggleVisibility(!1)},this.handleToggleButtonClick=()=>{this.toggleVisibility()},this.handlePinButtonClick=()=>{const e=!this.props.pinned;this.width=e?this.node.getBoundingClientRect().width:null,this.updateNodeWidth(),this.props.onPinStateChange(e)},this.handleResizeStart=e=>{this.resizeInfo={startPageX:e.pageX,initialWidth:this.width},document.body.classList.add("resizing","col"),document.addEventListener("mousemove",this.handleResize,!0),document.addEventListener("mouseup",this.handleResizeEnd,!0)},this.handleResize=e=>{this.width=this.resizeInfo.initialWidth+(e.pageX-this.resizeInfo.startPageX),this.updateNodeWidth()},this.handleResizeEnd=()=>{document.body.classList.remove("resizing","col"),document.removeEventListener("mousemove",this.handleResize,!0),document.removeEventListener("mouseup",this.handleResizeEnd,!0),this.props.onResize()},this.saveNode=e=>this.node=e}componentDidMount(){this.hideTimeoutId=setTimeout((()=>this.toggleVisibility(!1)),3e3)}componentWillUnmount(){clearTimeout(this.hideTimeoutId),clearTimeout(this.hideContentTimeout)}render(){const{position:e,pinned:t,children:n}=this.props,{visible:i,renderContent:r}=this.state,o=qr()({[co.container]:!0,[co.pinned]:t,[co.left]:"left"===e,[co.hidden]:!i,[co.empty]:!r});return Rr("div",{ref:this.saveNode,className:o,onClick:this.handleClick,onMouseLeave:this.handleMouseLeave,children:[i&&Rr(no,{type:"button",title:"Pin",className:co.pinButton,active:t,toggle:!0,onClick:this.handlePinButtonClick,children:Rr(bo,{name:"pin",size:13})}),Rr(no,{type:"button",title:i?"Hide":"Show sidebar",className:co.toggleButton,onClick:this.handleToggleButtonClick,children:Rr(bo,{name:"arrow-right",size:10,rotate:i?180:0})}),t&&i&&Rr("div",{className:co.resizer,onMouseDown:this.handleResizeStart}),Rr("div",{className:co.content,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,children:r?n:null})]})}toggleVisibility(e){clearTimeout(this.hideContentTimeout);const{visible:t}=this.state,{onToggle:n,pinned:i}=this.props;if(void 0===e)e=!t;else if(e===t)return;this.setState({visible:e}),this.toggling=!0,setTimeout((()=>{this.toggling=!1}),vo),i&&this.updateNodeWidth(e?this.width:null),e||i?(this.setState({renderContent:e}),n(e)):e||(this.hideContentTimeout=setTimeout((()=>{this.hideContentTimeout=null,this.setState({renderContent:!1}),n(!1)}),vo))}updateNodeWidth(e=this.width){this.node.style.width=e?`${e}px`:""}}mo.defaultProps={pinned:!1,position:"left"};var yo=n(396),Co={insert:"head",singleton:!1};Wr()(yo.Z,Co);const wo=yo.Z.locals||{};class _o extends g{constructor(...e){super(...e),this.handleChange=()=>{this.props.onChange(!this.props.checked)}}render(){const{checked:e,className:t,children:n}=this.props;return Rr("label",{className:qr()(wo.label,t),children:[Rr("input",{className:wo.checkbox,type:"checkbox",checked:e,onChange:this.handleChange}),Rr("span",{className:wo.itemText,children:n})]})}}var xo=n(213),Ao={insert:"head",singleton:!1};Wr()(xo.Z,Ao);const So=xo.Z.locals||{};class Mo extends g{constructor(...e){super(...e),this.handleChange=()=>{this.props.onChange(this.props.item)}}render(){return Rr("div",{className:So.item,children:Rr(_o,{...this.props,onChange:this.handleChange,children:this.renderLabel()})})}renderLabel(){const{children:e,item:t}=this.props;return e?e(t):t===ko.ALL_ITEM?"All":t.label}}const To=Symbol("ALL_ITEM");class ko extends eo{constructor(e){super(e),this.handleToggleAllCheck=()=>{const e=this.isAllChecked()?[]:this.props.items;this.setState({checkedItems:e}),this.informAboutChange(e)},this.handleItemCheck=e=>{let t;t=this.isItemChecked(e)?this.state.checkedItems.filter((t=>t!==e)):[...this.state.checkedItems,e],this.setState({checkedItems:t}),this.informAboutChange(t)},this.state={checkedItems:e.checkedItems||e.items}}componentWillReceiveProps(e){if(e.items!==this.props.items){if(this.isAllChecked())this.setState({checkedItems:e.items}),this.informAboutChange(e.items);else if(this.state.checkedItems.length){const t=e.items.filter((e=>this.state.checkedItems.find((t=>t.label===e.label))));this.setState({checkedItems:t}),this.informAboutChange(t)}}else e.checkedItems!==this.props.checkedItems&&this.setState({checkedItems:e.checkedItems})}render(){const{label:e,items:t,renderLabel:n}=this.props;return Rr("div",{className:So.container,children:[Rr("div",{className:So.label,children:[e,":"]}),Rr("div",{children:[Rr(Mo,{item:To,checked:this.isAllChecked(),onChange:this.handleToggleAllCheck,children:n}),t.map((e=>Rr(Mo,{item:e,checked:this.isItemChecked(e),onChange:this.handleItemCheck,children:n},e.label)))]})]})}isItemChecked(e){return this.state.checkedItems.includes(e)}isAllChecked(){return this.props.items.length===this.state.checkedItems.length}informAboutChange(e){setTimeout((()=>this.props.onChange(e)))}}ko.ALL_ITEM=To;var zo=n(270),Do={insert:"head",singleton:!1};Wr()(zo.Z,Do);const Bo=zo.Z.locals||{};function Lo(){return!1}function Eo({children:e,disabled:t,onClick:n}){return Rr("li",{className:qr()({[Bo.item]:!0,[Bo.disabled]:t}),onClick:t?Lo:n,children:e})}var jo=n(580),Oo={insert:"head",singleton:!1};Wr()(jo.Z,Oo);const Io=jo.Z.locals||{};class No extends eo{constructor(...e){super(...e),this.handleClickHideChunk=()=>{const{chunk:e}=this.props;if(e&&e.label){const t=Rn.selectedChunks.filter((t=>t.label!==e.label));Rn.selectedChunks=t}this.hide()},this.handleClickFilterToChunk=()=>{const{chunk:e}=this.props;if(e&&e.label){const t=Rn.allChunks.filter((t=>t.label===e.label));Rn.selectedChunks=t}this.hide()},this.handleClickShowAllChunks=()=>{Rn.selectedChunks=Rn.allChunks,this.hide()},this.handleDocumentMousedown=e=>{var t,n;e.ctrlKey||2===e.button||(t=e.target,n=this.node,t===n||n.contains(t))||(e.preventDefault(),e.stopPropagation(),this.hide())},this.saveNode=e=>this.node=e}componentDidMount(){this.boundingRect=this.node.getBoundingClientRect()}componentDidUpdate(e){this.props.visible&&!e.visible?document.addEventListener("mousedown",this.handleDocumentMousedown,!0):e.visible&&!this.props.visible&&document.removeEventListener("mousedown",this.handleDocumentMousedown,!0)}render(){const{visible:e}=this.props,t=qr()({[Io.container]:!0,[Io.hidden]:!e}),n=Rn.selectedChunks.length>1;return Rr("ul",{ref:this.saveNode,className:t,style:this.getStyle(),children:[Rr(Eo,{disabled:!n,onClick:this.handleClickHideChunk,children:"Hide chunk"}),Rr(Eo,{disabled:!n,onClick:this.handleClickFilterToChunk,children:"Hide all other chunks"}),Rr("hr",{}),Rr(Eo,{disabled:Rn.allChunksSelected,onClick:this.handleClickShowAllChunks,children:"Show all chunks"})]})}hide(){this.props.onHide&&this.props.onHide()}getStyle(){const{boundingRect:e}=this;if(!e)return;const{coords:t}=this.props,n={left:t.x,top:t.y};return n.left+e.width>window.innerWidth&&(n.left=window.innerWidth-e.width),n.top+e.height>window.innerHeight&&(n.top=t.y-e.height),n}}var Po=n(393),Fo={insert:"head",singleton:!1};Wr()(Po.Z,Fo);const Ro=Po.Z.locals||{};var Go=n(296),Ho=n.n(Go),Uo=n(976),qo={insert:"head",singleton:!1};Wr()(Uo.Z,qo);const Vo=Uo.Z.locals||{};class Wo extends eo{constructor(...e){super(...e),this.handleValueChange=Ho()((e=>{this.informChange(e.target.value)}),400),this.handleInputBlur=()=>{this.handleValueChange.flush()},this.handleClearClick=()=>{this.clear(),this.focus()},this.handleKeyDown=e=>{let t=!0;switch(e.key){case"Escape":this.clear();break;case"Enter":this.handleValueChange.flush();break;default:t=!1}t&&e.stopPropagation()},this.saveInputNode=e=>this.input=e}componentDidMount(){this.props.autofocus&&this.focus()}componentWillUnmount(){this.handleValueChange.clear()}render(){const{label:e,query:t}=this.props;return Rr("div",{className:Vo.container,children:[Rr("div",{className:Vo.label,children:[e,":"]}),Rr("div",{className:Vo.row,children:[Rr("input",{ref:this.saveInputNode,className:Vo.input,type:"text",value:t,placeholder:"Enter regexp",onInput:this.handleValueChange,onBlur:this.handleInputBlur,onKeyDown:this.handleKeyDown}),Rr(no,{className:Vo.clear,onClick:this.handleClearClick,children:"x"})]})]})}focus(){this.input&&this.input.focus()}clear(){this.handleValueChange.clear(),this.informChange(""),this.input.value=""}informChange(e){this.props.onQueryChange(e)}}var Zo=n(784),$o={insert:"head",singleton:!1};Wr()(Zo.Z,$o);const Ko=Zo.Z.locals||{};var Yo=n(150),Jo=n.n(Yo),Xo="".replace,Qo=/[&<>'"]/g,ea={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"};function ta(e){return Xo.call(e,Qo,na)}function na(e){return ea[e]}var ia=n(697),ra={insert:"head",singleton:!1};Wr()(ia.Z,ra);const oa=ia.Z.locals||{};class aa extends eo{constructor(...e){super(...e),this.state={visible:!0},this.handleClick=()=>this.props.onClick(this.props.module),this.handleMouseEnter=()=>{this.props.isVisible&&this.setState({visible:this.isVisible})}}render({module:e,showSize:t}){const n=!this.state.visible;return Rr("div",{className:qr()(oa.container,oa[this.itemType],{[oa.invisible]:n}),title:n?this.invisibleHint:null,onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,children:[Rr("span",{dangerouslySetInnerHTML:{__html:this.titleHtml}}),t&&[" (",Rr("strong",{children:Vn()(e[t])}),")"]]})}get itemType(){const{module:e}=this.props;return e.path?e.groups?"folder":"module":"chunk"}get titleHtml(){let e;const{module:t}=this.props,n=t.path||t.label,i=this.props.highlightedText;if(i){const t=i instanceof RegExp?new RegExp(i.source,"igu"):new RegExp(`(?:${Jo()(i)})+`,"iu");let r,o;do{o=r,r=t.exec(n)}while(r);o&&(e=ta(n.slice(0,o.index))+`<strong>${ta(o[0])}</strong>`+ta(n.slice(o.index+o[0].length)))}return e||(e=ta(n)),e}get invisibleHint(){return`${this.itemType.charAt(0).toUpperCase()+this.itemType.slice(1)} is not rendered in the treemap because it's too small.`}get isVisible(){const{isVisible:e}=this.props;return!e||e(this.props.module)}}class sa extends eo{constructor(...e){super(...e),this.handleModuleClick=e=>this.props.onModuleClick(e)}render({modules:e,showSize:t,highlightedText:n,isModuleVisible:i,className:r}){return Rr("div",{className:qr()(Ko.container,r),children:e.map((e=>Rr(aa,{module:e,showSize:t,highlightedText:n,isVisible:i,onClick:this.handleModuleClick},e.cid)))})}}var ua=n(172),la={insert:"head",singleton:!1};Wr()(ua.Z,la);const ca=ua.Z.locals||{};class ha extends eo{constructor(...e){super(...e),this.input={current:null},this.state={query:"",showOptions:!1},this.handleClickOutside=e=>{const t=this.input.current;t&&e&&!t.contains(e.target)&&(this.setState({showOptions:!1}),this.state.query&&!this.props.options.some((e=>e===this.state.query))&&(this.setState({query:""}),this.props.onSelectionChange(void 0)))},this.handleInput=e=>{const{value:t}=e.target;this.setState({query:t}),t||this.props.onSelectionChange(void 0)},this.handleFocus=()=>{this.input.current.value=this.state.query,this.setState({showOptions:!0})},this.getOptionClickHandler=e=>()=>{this.props.onSelectionChange(e),this.setState({query:e,showOptions:!1})}}componentDidMount(){document.addEventListener("click",this.handleClickOutside,!0)}componentWillUnmount(){document.removeEventListener("click",this.handleClickOutside,!0)}render(){const{label:e,options:t}=this.props,n=this.state.query?t.filter((e=>e.toLowerCase().includes(this.state.query.toLowerCase()))):t;return Rr("div",{className:ca.container,children:[Rr("div",{className:ca.label,children:[e,":"]}),Rr("div",{children:[Rr("input",{ref:this.input,className:ca.input,type:"text",value:this.state.query,onInput:this.handleInput,onFocus:this.handleFocus}),this.state.showOptions?Rr("div",{className:ca.options,children:n.map((e=>Rr("div",{className:ca.option,onClick:this.getOptionClickHandler(e),children:e},e)))}):null]})]})}}var fa,da;const pa=[{label:"Stat",prop:"statSize"},{label:"Parsed",prop:"parsedSize"},{label:"Gzipped",prop:"gzipSize"}];let ga=Pr((P((da=class extends g{constructor(...e){super(...e),this.mouseCoords={x:0,y:0},this.state={selectedChunk:null,selectedMouseCoords:{x:0,y:0},sidebarPinned:!1,showChunkContextMenu:!1,showTooltip:!1,tooltipContent:null},this.renderChunkItemLabel=e=>{const t=e===ko.ALL_ITEM,n=t?"All":e.label,i=t?Rn.totalChunksSize:e[Rn.activeSize];return[`${n} (`,Rr("strong",{children:Vn()(i)}),")"]},this.handleSelectionChange=e=>{Rn.selectedChunks=e?Rn.allChunks.filter((t=>t.isInitialByEntrypoint[e]??!1)):Rn.allChunks},this.handleConcatenatedModulesContentToggle=e=>{Rn.showConcatenatedModulesContent=e,e?Dn.setItem("showConcatenatedModulesContent",!0):Dn.removeItem("showConcatenatedModulesContent")},this.handleChunkContextMenuHide=()=>{this.setState({showChunkContextMenu:!1})},this.handleResize=()=>{this.state.showChunkContextMenu&&this.setState({showChunkContextMenu:!1})},this.handleSidebarToggle=()=>{this.state.sidebarPinned&&setTimeout((()=>this.treemap.resize()))},this.handleSidebarPinStateChange=e=>{this.setState({sidebarPinned:e}),setTimeout((()=>this.treemap.resize()))},this.handleSidebarResize=()=>{this.treemap.resize()},this.handleSizeSwitch=e=>{Rn.selectedSize=e.prop},this.handleQueryChange=e=>{Rn.searchQuery=e},this.handleSelectedChunksChange=e=>{Rn.selectedChunks=e},this.handleMouseLeaveTreemap=()=>{this.setState({showTooltip:!1})},this.handleTreemapGroupSecondaryClick=e=>{const{group:t}=e;t&&t.isAsset?this.setState({selectedChunk:t,selectedMouseCoords:{...this.mouseCoords},showChunkContextMenu:!0}):this.setState({selectedChunk:null,showChunkContextMenu:!1})},this.handleTreemapGroupHover=e=>{const{group:t}=e;t?this.setState({showTooltip:!0,tooltipContent:this.getTooltipContent(t)}):this.setState({showTooltip:!1})},this.handleFoundModuleClick=e=>this.treemap.zoomToGroup(e),this.handleMouseMove=e=>{Object.assign(this.mouseCoords,{x:e.pageX,y:e.pageY})},this.isModuleVisible=e=>this.treemap.isGroupRendered(e),this.saveTreemapRef=e=>this.treemap=e}componentDidMount(){document.addEventListener("mousemove",this.handleMouseMove,!0)}componentWillUnmount(){document.removeEventListener("mousemove",this.handleMouseMove,!0)}render(){const{selectedChunk:e,selectedMouseCoords:t,sidebarPinned:n,showChunkContextMenu:i,showTooltip:r,tooltipContent:o}=this.state;return Rr("div",{className:Ro.container,children:[Rr(mo,{pinned:n,onToggle:this.handleSidebarToggle,onPinStateChange:this.handleSidebarPinStateChange,onResize:this.handleSidebarResize,children:[Rr("div",{className:Ro.sidebarGroup,children:[Rr(so,{label:"Treemap sizes",items:this.sizeSwitchItems,activeItem:this.activeSizeItem,onSwitch:this.handleSizeSwitch}),Rn.hasConcatenatedModules&&Rr("div",{className:Ro.showOption,children:Rr(_o,{checked:Rn.showConcatenatedModulesContent,onChange:this.handleConcatenatedModulesContentToggle,children:"Show content of concatenated modules"+("statSize"===Rn.activeSize?"":" (inaccurate)")})})]}),Rr("div",{className:Ro.sidebarGroup,children:Rr(ha,{label:"Filter to initial chunks",options:Rn.entrypoints,onSelectionChange:this.handleSelectionChange})}),Rr("div",{className:Ro.sidebarGroup,children:[Rr(Wo,{label:"Search modules",query:Rn.searchQuery,autofocus:!0,onQueryChange:this.handleQueryChange}),Rr("div",{className:Ro.foundModulesInfo,children:this.foundModulesInfo}),Rn.isSearching&&Rn.hasFoundModules&&Rr("div",{className:Ro.foundModulesContainer,children:Rn.foundModulesByChunk.map((({chunk:e,modules:t})=>Rr("div",{className:Ro.foundModulesChunk,children:[Rr("div",{className:Ro.foundModulesChunkName,onClick:()=>this.treemap.zoomToGroup(e),children:e.label}),Rr(sa,{className:Ro.foundModulesList,modules:t,showSize:Rn.activeSize,highlightedText:Rn.searchQueryRegexp,isModuleVisible:this.isModuleVisible,onModuleClick:this.handleFoundModuleClick})]},e.cid)))})]}),this.chunkItems.length>1&&Rr("div",{className:Ro.sidebarGroup,children:Rr(ko,{label:"Show chunks",items:this.chunkItems,checkedItems:Rn.selectedChunks,renderLabel:this.renderChunkItemLabel,onChange:this.handleSelectedChunksChange})})]}),Rr(Gr,{ref:this.saveTreemapRef,className:Ro.map,data:Rn.visibleChunks,highlightGroups:this.highlightedModules,weightProp:Rn.activeSize,onMouseLeave:this.handleMouseLeaveTreemap,onGroupHover:this.handleTreemapGroupHover,onGroupSecondaryClick:this.handleTreemapGroupSecondaryClick,onResize:this.handleResize}),Rr(Yr,{visible:r,children:o}),Rr(No,{visible:i,chunk:e,coords:t,onHide:this.handleChunkContextMenuHide})]})}renderModuleSize(e,t){const n=`${t}Size`,i=e[n],r=pa.find((e=>e.prop===n)).label,o=Rn.activeSize===n;return"number"==typeof i?Rr("div",{className:o?Ro.activeSize:"",children:[r," size: ",Rr("strong",{children:Vn()(i)})]}):null}get sizeSwitchItems(){return Rn.hasParsedSizes?pa:pa.slice(0,1)}get activeSizeItem(){return this.sizeSwitchItems.find((e=>e.prop===Rn.activeSize))}get chunkItems(){const{allChunks:e,activeSize:t}=Rn;let n=[...e];return"statSize"!==t&&(n=n.filter(kn)),n.sort(((e,n)=>n[t]-e[t])),n}get highlightedModules(){return new Set(Rn.foundModules)}get foundModulesInfo(){return Rn.isSearching?Rn.hasFoundModules?[Rr("div",{className:Ro.foundModulesInfoItem,children:["Count: ",Rr("strong",{children:Rn.foundModules.length})]}),Rr("div",{className:Ro.foundModulesInfoItem,children:["Total size: ",Rr("strong",{children:Vn()(Rn.foundModulesSize)})]})]:"Nothing found"+(Rn.allChunksSelected?"":" in selected chunks"):" "}getTooltipContent(e){return e?Rr("div",{children:[Rr("div",{children:Rr("strong",{children:e.label})}),Rr("br",{}),this.renderModuleSize(e,"stat"),!e.inaccurateSizes&&this.renderModuleSize(e,"parsed"),!e.inaccurateSizes&&this.renderModuleSize(e,"gzip"),e.path&&Rr("div",{children:["Path: ",Rr("strong",{children:e.path})]}),e.isAsset&&Rr("div",{children:[Rr("br",{}),Rr("strong",{children:Rr("em",{children:"Right-click to view options related to this chunk"})})]})]}):null}}).prototype,"sizeSwitchItems",[De],Object.getOwnPropertyDescriptor(da.prototype,"sizeSwitchItems"),da.prototype),P(da.prototype,"activeSizeItem",[De],Object.getOwnPropertyDescriptor(da.prototype,"activeSizeItem"),da.prototype),P(da.prototype,"chunkItems",[De],Object.getOwnPropertyDescriptor(da.prototype,"chunkItems"),da.prototype),P(da.prototype,"highlightedModules",[De],Object.getOwnPropertyDescriptor(da.prototype,"highlightedModules"),da.prototype),P(da.prototype,"foundModulesInfo",[De],Object.getOwnPropertyDescriptor(da.prototype,"foundModulesInfo"),da.prototype),fa=da))||fa;var ba=n(194),va={insert:"head",singleton:!1};Wr()(ba.Z,va);ba.Z.locals;let ma;try{window.enableWebSocket&&(ma=new WebSocket(`ws://${location.host}`))}catch(ya){console.warn("Couldn't connect to analyzer websocket server so you'll have to reload page manually to see updates in the treemap")}window.addEventListener("load",(()=>{Rn.defaultSize=`${window.defaultSizes}Size`,Rn.setModules(window.chartData),Rn.setEntrypoints(window.entrypoints),j(Rr(ga,{}),document.getElementById("app")),ma&&ma.addEventListener("message",(e=>{const t=JSON.parse(e.data);"chartDataUpdated"===t.event&&Rn.setModules(t.data)}))}),!1)})()})();
-//# sourceMappingURL=viewer.js.map</script>
-  </head>
-
-  <body>
-    <div id="app"></div>
-    <script>
-      window.chartData = [{"label":"Recharts.js","isAsset":true,"statSize":1554362,"parsedSize":529482,"gzipSize":140075,"groups":[{"label":"node_modules","path":"./node_modules","statSize":127528,"groups":[{"label":"decimal.js-light","path":"./node_modules/decimal.js-light","statSize":53368,"groups":[{"id":8351,"label":"decimal.js","path":"./node_modules/decimal.js-light/decimal.js","statSize":53368}],"parsedSize":0,"gzipSize":0},{"label":"es-toolkit","path":"./node_modules/es-toolkit","statSize":57128,"groups":[{"label":"compat","path":"./node_modules/es-toolkit/compat","statSize":738,"groups":[{"id":305,"label":"get.js","path":"./node_modules/es-toolkit/compat/get.js","statSize":62},{"id":2938,"label":"isPlainObject.js","path":"./node_modules/es-toolkit/compat/isPlainObject.js","statSize":85},{"id":25,"label":"last.js","path":"./node_modules/es-toolkit/compat/last.js","statSize":63},{"id":4338,"label":"maxBy.js","path":"./node_modules/es-toolkit/compat/maxBy.js","statSize":64},{"id":2972,"label":"minBy.js","path":"./node_modules/es-toolkit/compat/minBy.js","statSize":64},{"id":1576,"label":"omit.js","path":"./node_modules/es-toolkit/compat/omit.js","statSize":64},{"id":3412,"label":"range.js","path":"./node_modules/es-toolkit/compat/range.js","statSize":64},{"id":184,"label":"sortBy.js","path":"./node_modules/es-toolkit/compat/sortBy.js","statSize":67},{"id":2067,"label":"sumBy.js","path":"./node_modules/es-toolkit/compat/sumBy.js","statSize":64},{"id":4297,"label":"throttle.js","path":"./node_modules/es-toolkit/compat/throttle.js","statSize":74},{"id":1081,"label":"uniqBy.js","path":"./node_modules/es-toolkit/compat/uniqBy.js","statSize":67}],"parsedSize":0,"gzipSize":0},{"label":"dist","path":"./node_modules/es-toolkit/dist","statSize":56390,"groups":[{"label":"_internal","path":"./node_modules/es-toolkit/dist/_internal","statSize":472,"groups":[{"id":4534,"label":"isEqualsSameValueZero.js","path":"./node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js","statSize":270},{"id":8193,"label":"isUnsafeProperty.js","path":"./node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js","statSize":202}],"parsedSize":0,"gzipSize":0},{"label":"array","path":"./node_modules/es-toolkit/dist/array","statSize":2265,"groups":[{"id":5711,"label":"flatten.js","path":"./node_modules/es-toolkit/dist/array/flatten.js","statSize":610},{"id":645,"label":"last.js","path":"./node_modules/es-toolkit/dist/array/last.js","statSize":166},{"id":334,"label":"maxBy.js","path":"./node_modules/es-toolkit/dist/array/maxBy.js","statSize":543},{"id":8240,"label":"minBy.js","path":"./node_modules/es-toolkit/dist/array/minBy.js","statSize":543},{"id":8805,"label":"uniqBy.js","path":"./node_modules/es-toolkit/dist/array/uniqBy.js","statSize":403}],"parsedSize":0,"gzipSize":0},{"label":"compat","path":"./node_modules/es-toolkit/dist/compat","statSize":43387,"groups":[{"label":"_internal","path":"./node_modules/es-toolkit/dist/compat/_internal","statSize":7170,"groups":[{"id":3500,"label":"compareValues.js","path":"./node_modules/es-toolkit/dist/compat/_internal/compareValues.js","statSize":862},{"id":6012,"label":"getSymbols.js","path":"./node_modules/es-toolkit/dist/compat/_internal/getSymbols.js","statSize":281},{"id":1875,"label":"getSymbolsIn.js","path":"./node_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.js","statSize":381},{"id":2049,"label":"getTag.js","path":"./node_modules/es-toolkit/dist/compat/_internal/getTag.js","statSize":300},{"id":5112,"label":"isDeepKey.js","path":"./node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js","statSize":380},{"id":8509,"label":"isIndex.js","path":"./node_modules/es-toolkit/dist/compat/_internal/isIndex.js","statSize":520},{"id":316,"label":"isIterateeCall.js","path":"./node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js","statSize":775},{"id":3998,"label":"isKey.js","path":"./node_modules/es-toolkit/dist/compat/_internal/isKey.js","statSize":679},{"id":5403,"label":"isPrototype.js","path":"./node_modules/es-toolkit/dist/compat/_internal/isPrototype.js","statSize":333},{"id":9184,"label":"tags.js","path":"./node_modules/es-toolkit/dist/compat/_internal/tags.js","statSize":2122},{"id":4483,"label":"toArray.js","path":"./node_modules/es-toolkit/dist/compat/_internal/toArray.js","statSize":206},{"id":1465,"label":"toKey.js","path":"./node_modules/es-toolkit/dist/compat/_internal/toKey.js","statSize":331}],"parsedSize":0,"gzipSize":0},{"label":"array","path":"./node_modules/es-toolkit/dist/compat/array","statSize":5654,"groups":[{"id":6166,"label":"flatten.js","path":"./node_modules/es-toolkit/dist/compat/array/flatten.js","statSize":1148},{"id":1334,"label":"last.js","path":"./node_modules/es-toolkit/dist/compat/array/last.js","statSize":419},{"id":3097,"label":"orderBy.js","path":"./node_modules/es-toolkit/dist/compat/array/orderBy.js","statSize":2776},{"id":4259,"label":"sortBy.js","path":"./node_modules/es-toolkit/dist/compat/array/sortBy.js","statSize":692},{"id":2810,"label":"uniqBy.js","path":"./node_modules/es-toolkit/dist/compat/array/uniqBy.js","statSize":619}],"parsedSize":0,"gzipSize":0},{"label":"function","path":"./node_modules/es-toolkit/dist/compat/function","statSize":1809,"groups":[{"id":8,"label":"debounce.js","path":"./node_modules/es-toolkit/dist/compat/function/debounce.js","statSize":1410},{"id":5259,"label":"throttle.js","path":"./node_modules/es-toolkit/dist/compat/function/throttle.js","statSize":399}],"parsedSize":0,"gzipSize":0},{"label":"math","path":"./node_modules/es-toolkit/dist/compat/math","statSize":2528,"groups":[{"id":5938,"label":"maxBy.js","path":"./node_modules/es-toolkit/dist/compat/math/maxBy.js","statSize":460},{"id":924,"label":"minBy.js","path":"./node_modules/es-toolkit/dist/compat/math/minBy.js","statSize":460},{"id":5012,"label":"range.js","path":"./node_modules/es-toolkit/dist/compat/math/range.js","statSize":889},{"id":3667,"label":"sumBy.js","path":"./node_modules/es-toolkit/dist/compat/math/sumBy.js","statSize":719}],"parsedSize":0,"gzipSize":0},{"label":"object","path":"./node_modules/es-toolkit/dist/compat/object","statSize":12025,"groups":[{"id":3923,"label":"cloneDeep.js","path":"./node_modules/es-toolkit/dist/compat/object/cloneDeep.js","statSize":248},{"id":9467,"label":"cloneDeepWith.js","path":"./node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js","statSize":1608},{"id":4200,"label":"get.js","path":"./node_modules/es-toolkit/dist/compat/object/get.js","statSize":2369},{"id":7324,"label":"has.js","path":"./node_modules/es-toolkit/dist/compat/object/has.js","statSize":1166},{"id":1621,"label":"keysIn.js","path":"./node_modules/es-toolkit/dist/compat/object/keysIn.js","statSize":1869},{"id":4167,"label":"omit.js","path":"./node_modules/es-toolkit/dist/compat/object/omit.js","statSize":2274},{"id":3403,"label":"property.js","path":"./node_modules/es-toolkit/dist/compat/object/property.js","statSize":257},{"id":7841,"label":"unset.js","path":"./node_modules/es-toolkit/dist/compat/object/unset.js","statSize":2234}],"parsedSize":0,"gzipSize":0},{"label":"predicate","path":"./node_modules/es-toolkit/dist/compat/predicate","statSize":9305,"groups":[{"id":2984,"label":"isArguments.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isArguments.js","statSize":313},{"id":58,"label":"isArrayLike.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js","statSize":307},{"id":8161,"label":"isArrayLikeObject.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js","statSize":355},{"id":717,"label":"isMatch.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isMatch.js","statSize":273},{"id":8273,"label":"isMatchWith.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js","statSize":4751},{"id":4905,"label":"isObject.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isObject.js","statSize":237},{"id":1846,"label":"isObjectLike.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js","statSize":216},{"id":8695,"label":"isPlainObject.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js","statSize":953},{"id":1366,"label":"isSymbol.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isSymbol.js","statSize":213},{"id":555,"label":"isTypedArray.js","path":"./node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js","statSize":267},{"id":7861,"label":"matches.js","path":"./node_modules/es-toolkit/dist/compat/predicate/matches.js","statSize":366},{"id":3036,"label":"matchesProperty.js","path":"./node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js","statSize":1054}],"parsedSize":0,"gzipSize":0},{"label":"util","path":"./node_modules/es-toolkit/dist/compat/util","statSize":4896,"groups":[{"id":8202,"label":"iteratee.js","path":"./node_modules/es-toolkit/dist/compat/util/iteratee.js","statSize":894},{"id":8485,"label":"times.js","path":"./node_modules/es-toolkit/dist/compat/util/times.js","statSize":455},{"id":4569,"label":"toFinite.js","path":"./node_modules/es-toolkit/dist/compat/util/toFinite.js","statSize":474},{"id":7422,"label":"toInteger.js","path":"./node_modules/es-toolkit/dist/compat/util/toInteger.js","statSize":326},{"id":8919,"label":"toNumber.js","path":"./node_modules/es-toolkit/dist/compat/util/toNumber.js","statSize":291},{"id":3025,"label":"toPath.js","path":"./node_modules/es-toolkit/dist/compat/util/toPath.js","statSize":1971},{"id":1863,"label":"toString.js","path":"./node_modules/es-toolkit/dist/compat/util/toString.js","statSize":485}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0},{"label":"function","path":"./node_modules/es-toolkit/dist/function","statSize":2132,"groups":[{"id":6858,"label":"ary.js","path":"./node_modules/es-toolkit/dist/function/ary.js","statSize":225},{"id":6773,"label":"debounce.js","path":"./node_modules/es-toolkit/dist/function/debounce.js","statSize":1749},{"id":6440,"label":"identity.js","path":"./node_modules/es-toolkit/dist/function/identity.js","statSize":158}],"parsedSize":0,"gzipSize":0},{"label":"object","path":"./node_modules/es-toolkit/dist/object","statSize":7261,"groups":[{"id":3844,"label":"cloneDeep.js","path":"./node_modules/es-toolkit/dist/object/cloneDeep.js","statSize":290},{"id":3964,"label":"cloneDeepWith.js","path":"./node_modules/es-toolkit/dist/object/cloneDeepWith.js","statSize":6971}],"parsedSize":0,"gzipSize":0},{"label":"predicate","path":"./node_modules/es-toolkit/dist/predicate","statSize":873,"groups":[{"id":623,"label":"isBuffer.js","path":"./node_modules/es-toolkit/dist/predicate/isBuffer.js","statSize":208},{"id":9181,"label":"isLength.js","path":"./node_modules/es-toolkit/dist/predicate/isLength.js","statSize":202},{"id":2520,"label":"isPrimitive.js","path":"./node_modules/es-toolkit/dist/predicate/isPrimitive.js","statSize":245},{"id":3908,"label":"isTypedArray.js","path":"./node_modules/es-toolkit/dist/predicate/isTypedArray.js","statSize":218}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0},{"label":"eventemitter3","path":"./node_modules/eventemitter3","statSize":9141,"groups":[{"id":228,"label":"index.js","path":"./node_modules/eventemitter3/index.js","statSize":9141}],"parsedSize":0,"gzipSize":0},{"label":"hoist-non-react-statics/dist","path":"./node_modules/hoist-non-react-statics/dist","statSize":2743,"groups":[{"id":4146,"label":"hoist-non-react-statics.cjs.js","path":"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","statSize":2743}],"parsedSize":0,"gzipSize":0},{"label":"use-sync-external-store","path":"./node_modules/use-sync-external-store","statSize":5148,"groups":[{"label":"cjs","path":"./node_modules/use-sync-external-store/cjs","statSize":4652,"groups":[{"id":8493,"label":"use-sync-external-store-shim.production.js","path":"./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","statSize":1967},{"label":"use-sync-external-store-shim","path":"./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim","statSize":2685,"groups":[{"id":2162,"label":"with-selector.production.js","path":"./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","statSize":2685}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0},{"label":"shim","path":"./node_modules/use-sync-external-store/shim","statSize":496,"groups":[{"id":9888,"label":"index.js","path":"./node_modules/use-sync-external-store/shim/index.js","statSize":234},{"id":9242,"label":"with-selector.js","path":"./node_modules/use-sync-external-store/shim/with-selector.js","statSize":262}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0}],"parsedSize":0,"gzipSize":0},{"label":"src","path":"./src","statSize":1426834,"groups":[{"id":8841,"label":"index.ts + 380 modules (concatenated)","path":"./src/index.ts + 380 modules (concatenated)","statSize":1426834,"parsedSize":529476,"gzipSize":140075,"concatenated":true,"groups":[{"label":"src","path":"./src/index.ts + 380 modules (concatenated)/src","statSize":1046561,"groups":[{"id":null,"label":"index.ts","path":"./src/index.ts + 380 modules (concatenated)/src/index.ts","statSize":3382,"parsedSize":1255,"gzipSize":332,"inaccurateSizes":true},{"label":"container","path":"./src/index.ts + 380 modules (concatenated)/src/container","statSize":9052,"groups":[{"id":null,"label":"Surface.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/container/Surface.tsx","statSize":2102,"parsedSize":780,"gzipSize":206,"inaccurateSizes":true},{"id":null,"label":"Layer.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/container/Layer.tsx","statSize":1649,"parsedSize":611,"gzipSize":161,"inaccurateSizes":true},{"id":null,"label":"ClipPathProvider.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/container/ClipPathProvider.tsx","statSize":1313,"parsedSize":487,"gzipSize":128,"inaccurateSizes":true},{"id":null,"label":"RootSurface.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/container/RootSurface.tsx","statSize":3988,"parsedSize":1479,"gzipSize":391,"inaccurateSizes":true}],"parsedSize":3359,"gzipSize":888,"inaccurateSizes":true},{"label":"component","path":"./src/index.ts + 380 modules (concatenated)/src/component","statSize":93623,"groups":[{"id":null,"label":"Legend.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Legend.tsx","statSize":8140,"parsedSize":3020,"gzipSize":799,"inaccurateSizes":true},{"id":null,"label":"DefaultLegendContent.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/DefaultLegendContent.tsx","statSize":6432,"parsedSize":2386,"gzipSize":631,"inaccurateSizes":true},{"id":null,"label":"ResponsiveContainer.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/ResponsiveContainer.tsx","statSize":9614,"parsedSize":3567,"gzipSize":943,"inaccurateSizes":true},{"id":null,"label":"Tooltip.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Tooltip.tsx","statSize":8240,"parsedSize":3057,"gzipSize":808,"inaccurateSizes":true},{"id":null,"label":"DefaultTooltipContent.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/DefaultTooltipContent.tsx","statSize":5929,"parsedSize":2200,"gzipSize":582,"inaccurateSizes":true},{"id":null,"label":"Cell.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Cell.tsx","statSize":529,"parsedSize":196,"gzipSize":51,"inaccurateSizes":true},{"id":null,"label":"Text.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Text.tsx","statSize":9326,"parsedSize":3460,"gzipSize":915,"inaccurateSizes":true},{"id":null,"label":"Label.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Label.tsx","statSize":14015,"parsedSize":5200,"gzipSize":1375,"inaccurateSizes":true},{"id":null,"label":"LabelList.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/LabelList.tsx","statSize":5753,"parsedSize":2134,"gzipSize":564,"inaccurateSizes":true},{"id":null,"label":"Customized.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Customized.tsx","statSize":1910,"parsedSize":708,"gzipSize":187,"inaccurateSizes":true},{"id":null,"label":"responsiveContainerUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/component/responsiveContainerUtils.ts","statSize":3709,"parsedSize":1376,"gzipSize":364,"inaccurateSizes":true},{"id":null,"label":"TooltipBoundingBox.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/TooltipBoundingBox.tsx","statSize":5254,"parsedSize":1949,"gzipSize":515,"inaccurateSizes":true},{"id":null,"label":"Cursor.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Cursor.tsx","statSize":6065,"parsedSize":2250,"gzipSize":595,"inaccurateSizes":true},{"id":null,"label":"Dots.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/Dots.tsx","statSize":4762,"parsedSize":1767,"gzipSize":467,"inaccurateSizes":true},{"id":null,"label":"ActivePoints.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/component/ActivePoints.tsx","statSize":3945,"parsedSize":1463,"gzipSize":387,"inaccurateSizes":true}],"parsedSize":34742,"gzipSize":9191,"inaccurateSizes":true},{"label":"shape","path":"./src/index.ts + 380 modules (concatenated)/src/shape","statSize":46431,"groups":[{"id":null,"label":"Symbols.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Symbols.tsx","statSize":5098,"parsedSize":1891,"gzipSize":500,"inaccurateSizes":true},{"id":null,"label":"Curve.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Curve.tsx","statSize":6582,"parsedSize":2442,"gzipSize":646,"inaccurateSizes":true},{"id":null,"label":"Cross.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Cross.tsx","statSize":3205,"parsedSize":1189,"gzipSize":314,"inaccurateSizes":true},{"id":null,"label":"Rectangle.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Rectangle.tsx","statSize":11045,"parsedSize":4098,"gzipSize":1084,"inaccurateSizes":true},{"id":null,"label":"Sector.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Sector.tsx","statSize":8062,"parsedSize":2991,"gzipSize":791,"inaccurateSizes":true},{"id":null,"label":"Polygon.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Polygon.tsx","statSize":4577,"parsedSize":1698,"gzipSize":449,"inaccurateSizes":true},{"id":null,"label":"Dot.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Dot.tsx","statSize":1187,"parsedSize":440,"gzipSize":116,"inaccurateSizes":true},{"id":null,"label":"Trapezoid.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/shape/Trapezoid.tsx","statSize":6675,"parsedSize":2476,"gzipSize":655,"inaccurateSizes":true}],"parsedSize":17229,"gzipSize":4558,"inaccurateSizes":true},{"label":"context","path":"./src/index.ts + 380 modules (concatenated)/src/context","statSize":18671,"groups":[{"id":null,"label":"chartLayoutContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/chartLayoutContext.tsx","statSize":7993,"parsedSize":2966,"gzipSize":784,"inaccurateSizes":true},{"id":null,"label":"legendPortalContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/legendPortalContext.tsx","statSize":185,"parsedSize":68,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"legendPayloadContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/legendPayloadContext.tsx","statSize":359,"parsedSize":133,"gzipSize":35,"inaccurateSizes":true},{"id":null,"label":"PanoramaContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/PanoramaContext.tsx","statSize":393,"parsedSize":145,"gzipSize":38,"inaccurateSizes":true},{"id":null,"label":"accessibilityContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/accessibilityContext.tsx","statSize":271,"parsedSize":100,"gzipSize":26,"inaccurateSizes":true},{"id":null,"label":"tooltipPortalContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/tooltipPortalContext.tsx","statSize":188,"parsedSize":69,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"tooltipContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/tooltipContext.tsx","statSize":1445,"parsedSize":536,"gzipSize":141,"inaccurateSizes":true},{"id":null,"label":"RegisterGraphicalItemId.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/RegisterGraphicalItemId.tsx","statSize":577,"parsedSize":214,"gzipSize":56,"inaccurateSizes":true},{"id":null,"label":"chartDataContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/chartDataContext.tsx","statSize":2597,"parsedSize":963,"gzipSize":254,"inaccurateSizes":true},{"id":null,"label":"brushUpdateContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/brushUpdateContext.tsx","statSize":116,"parsedSize":43,"gzipSize":11,"inaccurateSizes":true},{"id":null,"label":"ErrorBarContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/context/ErrorBarContext.tsx","statSize":2463,"parsedSize":913,"gzipSize":241,"inaccurateSizes":true},{"id":null,"label":"useTooltipAxis.ts","path":"./src/index.ts + 380 modules (concatenated)/src/context/useTooltipAxis.ts","statSize":2084,"parsedSize":773,"gzipSize":204,"inaccurateSizes":true}],"parsedSize":6928,"gzipSize":1832,"inaccurateSizes":true},{"label":"util","path":"./src/index.ts + 380 modules (concatenated)/src/util","statSize":135827,"groups":[{"id":null,"label":"Global.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/Global.ts","statSize":229,"parsedSize":84,"gzipSize":22,"inaccurateSizes":true},{"label":"scale","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale","statSize":14708,"groups":[{"id":null,"label":"getNiceTickValues.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale/getNiceTickValues.ts","statSize":8284,"parsedSize":3074,"gzipSize":813,"inaccurateSizes":true},{"label":"util","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale/util","statSize":1289,"groups":[{"id":null,"label":"arithmetic.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale/util/arithmetic.ts","statSize":1289,"parsedSize":478,"gzipSize":126,"inaccurateSizes":true}],"parsedSize":478,"gzipSize":126,"inaccurateSizes":true},{"id":null,"label":"CartesianScaleHelper.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale/CartesianScaleHelper.ts","statSize":1888,"parsedSize":700,"gzipSize":185,"inaccurateSizes":true},{"id":null,"label":"RechartsScale.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/scale/RechartsScale.ts","statSize":3247,"parsedSize":1204,"gzipSize":318,"inaccurateSizes":true}],"parsedSize":5457,"gzipSize":1443,"inaccurateSizes":true},{"id":null,"label":"svgPropertiesAndEvents.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/svgPropertiesAndEvents.ts","statSize":2082,"parsedSize":772,"gzipSize":204,"inaccurateSizes":true},{"id":null,"label":"svgPropertiesNoEvents.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/svgPropertiesNoEvents.ts","statSize":6774,"parsedSize":2513,"gzipSize":665,"inaccurateSizes":true},{"id":null,"label":"DataUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/DataUtils.ts","statSize":5144,"parsedSize":1908,"gzipSize":504,"inaccurateSizes":true},{"id":null,"label":"round.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/round.ts","statSize":1114,"parsedSize":413,"gzipSize":109,"inaccurateSizes":true},{"id":null,"label":"types.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/types.ts","statSize":7600,"parsedSize":2820,"gzipSize":746,"inaccurateSizes":true},{"id":null,"label":"resolveDefaultProps.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/resolveDefaultProps.tsx","statSize":5174,"parsedSize":1919,"gzipSize":507,"inaccurateSizes":true},{"label":"payload","path":"./src/index.ts + 380 modules (concatenated)/src/util/payload","statSize":525,"groups":[{"id":null,"label":"getUniqPayload.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/payload/getUniqPayload.ts","statSize":525,"parsedSize":194,"gzipSize":51,"inaccurateSizes":true}],"parsedSize":194,"gzipSize":51,"inaccurateSizes":true},{"id":null,"label":"useElementOffset.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/useElementOffset.ts","statSize":1907,"parsedSize":707,"gzipSize":187,"inaccurateSizes":true},{"id":null,"label":"ChartUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/ChartUtils.ts","statSize":17864,"parsedSize":6629,"gzipSize":1753,"inaccurateSizes":true},{"id":null,"label":"isWellBehavedNumber.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/isWellBehavedNumber.ts","statSize":174,"parsedSize":64,"gzipSize":17,"inaccurateSizes":true},{"id":null,"label":"Constants.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/Constants.ts","statSize":906,"parsedSize":336,"gzipSize":88,"inaccurateSizes":true},{"id":null,"label":"LogUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/LogUtils.ts","statSize":765,"parsedSize":283,"gzipSize":75,"inaccurateSizes":true},{"id":null,"label":"useAnimationId.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/useAnimationId.tsx","statSize":1164,"parsedSize":431,"gzipSize":114,"inaccurateSizes":true},{"id":null,"label":"PolarUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/PolarUtils.ts","statSize":4420,"parsedSize":1640,"gzipSize":433,"inaccurateSizes":true},{"id":null,"label":"getAxisTypeBasedOnLayout.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/getAxisTypeBasedOnLayout.ts","statSize":504,"parsedSize":187,"gzipSize":49,"inaccurateSizes":true},{"id":null,"label":"DOMUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/DOMUtils.ts","statSize":4873,"parsedSize":1808,"gzipSize":478,"inaccurateSizes":true},{"id":null,"label":"ReduceCSSCalc.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/ReduceCSSCalc.ts","statSize":5547,"parsedSize":2058,"gzipSize":544,"inaccurateSizes":true},{"id":null,"label":"getClassNameFromUnknown.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/getClassNameFromUnknown.tsx","statSize":178,"parsedSize":66,"gzipSize":17,"inaccurateSizes":true},{"id":null,"label":"ReactUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/ReactUtils.ts","statSize":2622,"parsedSize":972,"gzipSize":257,"inaccurateSizes":true},{"id":null,"label":"ActiveShapeUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/ActiveShapeUtils.tsx","statSize":4855,"parsedSize":1801,"gzipSize":476,"inaccurateSizes":true},{"id":null,"label":"useUniqueId.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/useUniqueId.ts","statSize":1131,"parsedSize":419,"gzipSize":111,"inaccurateSizes":true},{"id":null,"label":"RadialBarUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/RadialBarUtils.tsx","statSize":653,"parsedSize":242,"gzipSize":64,"inaccurateSizes":true},{"id":null,"label":"CssPrefixUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/CssPrefixUtils.ts","statSize":1680,"parsedSize":623,"gzipSize":164,"inaccurateSizes":true},{"id":null,"label":"CartesianUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/CartesianUtils.ts","statSize":2049,"parsedSize":760,"gzipSize":201,"inaccurateSizes":true},{"id":null,"label":"YAxisUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/YAxisUtils.tsx","statSize":1472,"parsedSize":546,"gzipSize":144,"inaccurateSizes":true},{"id":null,"label":"getRadiusAndStrokeWidthFromDot.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/getRadiusAndStrokeWidthFromDot.tsx","statSize":715,"parsedSize":265,"gzipSize":70,"inaccurateSizes":true},{"id":null,"label":"propsAreEqual.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/propsAreEqual.ts","statSize":2764,"parsedSize":1025,"gzipSize":271,"inaccurateSizes":true},{"id":null,"label":"BarUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/BarUtils.tsx","statSize":1504,"parsedSize":558,"gzipSize":147,"inaccurateSizes":true},{"id":null,"label":"ScatterUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/ScatterUtils.tsx","statSize":1603,"parsedSize":594,"gzipSize":157,"inaccurateSizes":true},{"id":null,"label":"axisPropsAreEqual.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/axisPropsAreEqual.ts","statSize":1858,"parsedSize":689,"gzipSize":182,"inaccurateSizes":true},{"id":null,"label":"FunnelUtils.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/util/FunnelUtils.tsx","statSize":496,"parsedSize":184,"gzipSize":48,"inaccurateSizes":true},{"id":null,"label":"excludeEventProps.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/excludeEventProps.ts","statSize":3129,"parsedSize":1161,"gzipSize":307,"inaccurateSizes":true},{"id":null,"label":"getSliced.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/getSliced.ts","statSize":215,"parsedSize":79,"gzipSize":21,"inaccurateSizes":true},{"label":"tooltip","path":"./src/index.ts + 380 modules (concatenated)/src/util/tooltip","statSize":3479,"groups":[{"id":null,"label":"translate.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/tooltip/translate.ts","statSize":3479,"parsedSize":1291,"gzipSize":341,"inaccurateSizes":true}],"parsedSize":1291,"gzipSize":341,"inaccurateSizes":true},{"label":"cursor","path":"./src/index.ts + 380 modules (concatenated)/src/util/cursor","statSize":2227,"groups":[{"id":null,"label":"getCursorRectangle.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/cursor/getCursorRectangle.ts","statSize":511,"parsedSize":189,"gzipSize":50,"inaccurateSizes":true},{"id":null,"label":"getRadialCursorPoints.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/cursor/getRadialCursorPoints.ts","statSize":571,"parsedSize":211,"gzipSize":56,"inaccurateSizes":true},{"id":null,"label":"getCursorPoints.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/cursor/getCursorPoints.ts","statSize":1145,"parsedSize":424,"gzipSize":112,"inaccurateSizes":true}],"parsedSize":826,"gzipSize":218,"inaccurateSizes":true},{"id":null,"label":"isDomainSpecifiedByUser.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/isDomainSpecifiedByUser.ts","statSize":7118,"parsedSize":2641,"gzipSize":698,"inaccurateSizes":true},{"label":"stacks","path":"./src/index.ts + 380 modules (concatenated)/src/util/stacks","statSize":385,"groups":[{"id":null,"label":"getStackSeriesIdentifier.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/stacks/getStackSeriesIdentifier.ts","statSize":385,"parsedSize":142,"gzipSize":37,"inaccurateSizes":true}],"parsedSize":142,"gzipSize":37,"inaccurateSizes":true},{"id":null,"label":"getActiveCoordinate.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/getActiveCoordinate.ts","statSize":7373,"parsedSize":2736,"gzipSize":723,"inaccurateSizes":true},{"id":null,"label":"Events.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/Events.ts","statSize":223,"parsedSize":82,"gzipSize":21,"inaccurateSizes":true},{"id":null,"label":"LRUCache.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/LRUCache.ts","statSize":1353,"parsedSize":502,"gzipSize":132,"inaccurateSizes":true},{"id":null,"label":"useId.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/useId.ts","statSize":663,"parsedSize":246,"gzipSize":65,"inaccurateSizes":true},{"id":null,"label":"TickUtils.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/TickUtils.ts","statSize":1259,"parsedSize":467,"gzipSize":123,"inaccurateSizes":true},{"id":null,"label":"useReportScale.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/useReportScale.ts","statSize":767,"parsedSize":284,"gzipSize":75,"inaccurateSizes":true},{"id":null,"label":"getEveryNth.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/getEveryNth.ts","statSize":802,"parsedSize":297,"gzipSize":78,"inaccurateSizes":true},{"id":null,"label":"getChartPointer.ts","path":"./src/index.ts + 380 modules (concatenated)/src/util/getChartPointer.ts","statSize":1780,"parsedSize":660,"gzipSize":174,"inaccurateSizes":true}],"parsedSize":50403,"gzipSize":13334,"inaccurateSizes":true},{"label":"zIndex","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex","statSize":8604,"groups":[{"id":null,"label":"DefaultZIndexes.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex/DefaultZIndexes.tsx","statSize":2276,"parsedSize":844,"gzipSize":223,"inaccurateSizes":true},{"id":null,"label":"ZIndexLayer.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex/ZIndexLayer.tsx","statSize":2941,"parsedSize":1091,"gzipSize":288,"inaccurateSizes":true},{"id":null,"label":"zIndexSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex/zIndexSelectors.ts","statSize":1247,"parsedSize":462,"gzipSize":122,"inaccurateSizes":true},{"id":null,"label":"getZIndexFromUnknown.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex/getZIndexFromUnknown.tsx","statSize":320,"parsedSize":118,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"ZIndexPortal.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/zIndex/ZIndexPortal.tsx","statSize":1820,"parsedSize":675,"gzipSize":178,"inaccurateSizes":true}],"parsedSize":3192,"gzipSize":844,"inaccurateSizes":true},{"label":"polar","path":"./src/index.ts + 380 modules (concatenated)/src/polar","statSize":92540,"groups":[{"id":null,"label":"PolarGrid.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/PolarGrid.tsx","statSize":9234,"parsedSize":3426,"gzipSize":906,"inaccurateSizes":true},{"id":null,"label":"PolarRadiusAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/PolarRadiusAxis.tsx","statSize":10190,"parsedSize":3781,"gzipSize":1000,"inaccurateSizes":true},{"id":null,"label":"PolarAngleAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/PolarAngleAxis.tsx","statSize":11206,"parsedSize":4158,"gzipSize":1100,"inaccurateSizes":true},{"id":null,"label":"Pie.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/Pie.tsx","statSize":24609,"parsedSize":9132,"gzipSize":2415,"inaccurateSizes":true},{"id":null,"label":"Radar.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/Radar.tsx","statSize":16400,"parsedSize":6085,"gzipSize":1610,"inaccurateSizes":true},{"id":null,"label":"RadialBar.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/RadialBar.tsx","statSize":19856,"parsedSize":7368,"gzipSize":1949,"inaccurateSizes":true},{"id":null,"label":"defaultPolarAngleAxisProps.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/defaultPolarAngleAxisProps.tsx","statSize":577,"parsedSize":214,"gzipSize":56,"inaccurateSizes":true},{"id":null,"label":"defaultPolarRadiusAxisProps.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/polar/defaultPolarRadiusAxisProps.tsx","statSize":468,"parsedSize":173,"gzipSize":45,"inaccurateSizes":true}],"parsedSize":34340,"gzipSize":9084,"inaccurateSizes":true},{"id":null,"label":"hooks.ts","path":"./src/index.ts + 380 modules (concatenated)/src/hooks.ts","statSize":7343,"parsedSize":2724,"gzipSize":720,"inaccurateSizes":true},{"label":"cartesian","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian","statSize":257708,"groups":[{"id":null,"label":"Brush.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Brush.tsx","statSize":27349,"parsedSize":10148,"gzipSize":2684,"inaccurateSizes":true},{"id":null,"label":"ReferenceLine.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/ReferenceLine.tsx","statSize":9931,"parsedSize":3685,"gzipSize":974,"inaccurateSizes":true},{"id":null,"label":"ReferenceDot.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/ReferenceDot.tsx","statSize":6483,"parsedSize":2405,"gzipSize":636,"inaccurateSizes":true},{"id":null,"label":"ReferenceArea.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/ReferenceArea.tsx","statSize":7763,"parsedSize":2880,"gzipSize":762,"inaccurateSizes":true},{"id":null,"label":"CartesianAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/CartesianAxis.tsx","statSize":16199,"parsedSize":6011,"gzipSize":1590,"inaccurateSizes":true},{"id":null,"label":"CartesianGrid.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/CartesianGrid.tsx","statSize":15356,"parsedSize":5698,"gzipSize":1507,"inaccurateSizes":true},{"id":null,"label":"Line.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Line.tsx","statSize":24885,"parsedSize":9234,"gzipSize":2443,"inaccurateSizes":true},{"id":null,"label":"Area.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Area.tsx","statSize":27591,"parsedSize":10238,"gzipSize":2708,"inaccurateSizes":true},{"id":null,"label":"Bar.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Bar.tsx","statSize":26185,"parsedSize":9716,"gzipSize":2570,"inaccurateSizes":true},{"id":null,"label":"BarStack.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/BarStack.tsx","statSize":4556,"parsedSize":1690,"gzipSize":447,"inaccurateSizes":true},{"id":null,"label":"Scatter.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Scatter.tsx","statSize":22693,"parsedSize":8421,"gzipSize":2227,"inaccurateSizes":true},{"id":null,"label":"XAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/XAxis.tsx","statSize":8145,"parsedSize":3022,"gzipSize":799,"inaccurateSizes":true},{"id":null,"label":"YAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/YAxis.tsx","statSize":9546,"parsedSize":3542,"gzipSize":937,"inaccurateSizes":true},{"id":null,"label":"ZAxis.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/ZAxis.tsx","statSize":1969,"parsedSize":730,"gzipSize":193,"inaccurateSizes":true},{"id":null,"label":"ErrorBar.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/ErrorBar.tsx","statSize":10175,"parsedSize":3775,"gzipSize":998,"inaccurateSizes":true},{"id":null,"label":"Funnel.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/Funnel.tsx","statSize":17656,"parsedSize":6551,"gzipSize":1733,"inaccurateSizes":true},{"id":null,"label":"getCartesianPosition.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/getCartesianPosition.tsx","statSize":7716,"parsedSize":2863,"gzipSize":757,"inaccurateSizes":true},{"id":null,"label":"getTicks.ts","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/getTicks.ts","statSize":7220,"parsedSize":2679,"gzipSize":708,"inaccurateSizes":true},{"id":null,"label":"GraphicalItemClipPath.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/GraphicalItemClipPath.tsx","statSize":1690,"parsedSize":627,"gzipSize":165,"inaccurateSizes":true},{"id":null,"label":"getEquidistantTicks.ts","path":"./src/index.ts + 380 modules (concatenated)/src/cartesian/getEquidistantTicks.ts","statSize":4600,"parsedSize":1706,"gzipSize":451,"inaccurateSizes":true}],"parsedSize":95631,"gzipSize":25299,"inaccurateSizes":true},{"label":"chart","path":"./src/index.ts + 380 modules (concatenated)/src/chart","statSize":104308,"groups":[{"id":null,"label":"LineChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/LineChart.tsx","statSize":686,"parsedSize":254,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"BarChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/BarChart.tsx","statSize":692,"parsedSize":256,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"PieChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/PieChart.tsx","statSize":2296,"parsedSize":852,"gzipSize":225,"inaccurateSizes":true},{"id":null,"label":"Treemap.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/Treemap.tsx","statSize":28032,"parsedSize":10402,"gzipSize":2751,"inaccurateSizes":true},{"id":null,"label":"Sankey.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/Sankey.tsx","statSize":29654,"parsedSize":11004,"gzipSize":2911,"inaccurateSizes":true},{"id":null,"label":"RadarChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/RadarChart.tsx","statSize":2305,"parsedSize":855,"gzipSize":226,"inaccurateSizes":true},{"id":null,"label":"ScatterChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/ScatterChart.tsx","statSize":692,"parsedSize":256,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"AreaChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/AreaChart.tsx","statSize":686,"parsedSize":254,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"RadialBarChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/RadialBarChart.tsx","statSize":2327,"parsedSize":863,"gzipSize":228,"inaccurateSizes":true},{"id":null,"label":"ComposedChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/ComposedChart.tsx","statSize":694,"parsedSize":257,"gzipSize":68,"inaccurateSizes":true},{"id":null,"label":"SunburstChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/SunburstChart.tsx","statSize":12170,"parsedSize":4516,"gzipSize":1194,"inaccurateSizes":true},{"id":null,"label":"FunnelChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/FunnelChart.tsx","statSize":690,"parsedSize":256,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"CartesianChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/CartesianChart.tsx","statSize":3031,"parsedSize":1124,"gzipSize":297,"inaccurateSizes":true},{"id":null,"label":"RechartsWrapper.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/RechartsWrapper.tsx","statSize":13160,"parsedSize":4883,"gzipSize":1291,"inaccurateSizes":true},{"id":null,"label":"PolarChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/PolarChart.tsx","statSize":4521,"parsedSize":1677,"gzipSize":443,"inaccurateSizes":true},{"id":null,"label":"CategoricalChart.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/chart/CategoricalChart.tsx","statSize":2672,"parsedSize":991,"gzipSize":262,"inaccurateSizes":true}],"parsedSize":38707,"gzipSize":10240,"inaccurateSizes":true},{"label":"state","path":"./src/index.ts + 380 modules (concatenated)/src/state","statSize":237130,"groups":[{"id":null,"label":"hooks.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/hooks.ts","statSize":1770,"parsedSize":656,"gzipSize":173,"inaccurateSizes":true},{"id":null,"label":"layoutSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/layoutSlice.ts","statSize":1451,"parsedSize":538,"gzipSize":142,"inaccurateSizes":true},{"label":"selectors","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors","statSize":175860,"groups":[{"id":null,"label":"selectChartOffsetInternal.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectChartOffsetInternal.ts","statSize":4565,"parsedSize":1694,"gzipSize":448,"inaccurateSizes":true},{"id":null,"label":"containerSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/containerSelectors.ts","statSize":238,"parsedSize":88,"gzipSize":23,"inaccurateSizes":true},{"id":null,"label":"brushSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/brushSelectors.ts","statSize":774,"parsedSize":287,"gzipSize":75,"inaccurateSizes":true},{"id":null,"label":"axisSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/axisSelectors.ts","statSize":54047,"parsedSize":20056,"gzipSize":5305,"inaccurateSizes":true},{"id":null,"label":"polarAxisSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/polarAxisSelectors.ts","statSize":7021,"parsedSize":2605,"gzipSize":689,"inaccurateSizes":true},{"id":null,"label":"tooltipSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/tooltipSelectors.ts","statSize":14141,"parsedSize":5247,"gzipSize":1388,"inaccurateSizes":true},{"id":null,"label":"selectTooltipEventType.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipEventType.ts","statSize":1034,"parsedSize":383,"gzipSize":101,"inaccurateSizes":true},{"id":null,"label":"selectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectors.ts","statSize":6336,"parsedSize":2351,"gzipSize":622,"inaccurateSizes":true},{"id":null,"label":"polarGridSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/polarGridSelectors.ts","statSize":684,"parsedSize":253,"gzipSize":67,"inaccurateSizes":true},{"id":null,"label":"polarScaleSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/polarScaleSelectors.ts","statSize":2847,"parsedSize":1056,"gzipSize":279,"inaccurateSizes":true},{"id":null,"label":"pieSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/pieSelectors.ts","statSize":4269,"parsedSize":1584,"gzipSize":419,"inaccurateSizes":true},{"id":null,"label":"selectChartOffset.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectChartOffset.ts","statSize":357,"parsedSize":132,"gzipSize":35,"inaccurateSizes":true},{"id":null,"label":"selectPlotArea.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectPlotArea.ts","statSize":593,"parsedSize":220,"gzipSize":58,"inaccurateSizes":true},{"id":null,"label":"radarSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/radarSelectors.ts","statSize":5235,"parsedSize":1942,"gzipSize":513,"inaccurateSizes":true},{"id":null,"label":"radialBarSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/radialBarSelectors.ts","statSize":11176,"parsedSize":4147,"gzipSize":1097,"inaccurateSizes":true},{"id":null,"label":"lineSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/lineSelectors.ts","statSize":3200,"parsedSize":1187,"gzipSize":314,"inaccurateSizes":true},{"id":null,"label":"areaSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/areaSelectors.ts","statSize":5268,"parsedSize":1954,"gzipSize":517,"inaccurateSizes":true},{"id":null,"label":"barSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/barSelectors.ts","statSize":7856,"parsedSize":2915,"gzipSize":771,"inaccurateSizes":true},{"id":null,"label":"barStackSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/barStackSelectors.ts","statSize":2099,"parsedSize":778,"gzipSize":206,"inaccurateSizes":true},{"id":null,"label":"scatterSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/scatterSelectors.ts","statSize":2845,"parsedSize":1055,"gzipSize":279,"inaccurateSizes":true},{"id":null,"label":"funnelSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/funnelSelectors.ts","statSize":2795,"parsedSize":1037,"gzipSize":274,"inaccurateSizes":true},{"id":null,"label":"legendSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/legendSelectors.ts","statSize":530,"parsedSize":196,"gzipSize":52,"inaccurateSizes":true},{"id":null,"label":"selectAllAxes.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectAllAxes.ts","statSize":304,"parsedSize":112,"gzipSize":29,"inaccurateSizes":true},{"id":null,"label":"dataSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/dataSelectors.ts","statSize":1795,"parsedSize":666,"gzipSize":176,"inaccurateSizes":true},{"id":null,"label":"rootPropsSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/rootPropsSelectors.ts","statSize":751,"parsedSize":278,"gzipSize":73,"inaccurateSizes":true},{"label":"combiners","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners","statSize":26690,"groups":[{"id":null,"label":"combineAxisRangeWithReverse.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineAxisRangeWithReverse.ts","statSize":285,"parsedSize":105,"gzipSize":27,"inaccurateSizes":true},{"id":null,"label":"combineDisplayedStackedData.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineDisplayedStackedData.ts","statSize":2074,"parsedSize":769,"gzipSize":203,"inaccurateSizes":true},{"id":null,"label":"combineCheckedDomain.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineCheckedDomain.ts","statSize":1362,"parsedSize":505,"gzipSize":133,"inaccurateSizes":true},{"id":null,"label":"combineActiveLabel.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineActiveLabel.ts","statSize":428,"parsedSize":158,"gzipSize":42,"inaccurateSizes":true},{"id":null,"label":"combineTooltipInteractionState.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineTooltipInteractionState.ts","statSize":3117,"parsedSize":1156,"gzipSize":306,"inaccurateSizes":true},{"id":null,"label":"combineActiveTooltipIndex.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineActiveTooltipIndex.ts","statSize":2508,"parsedSize":930,"gzipSize":246,"inaccurateSizes":true},{"id":null,"label":"combineCoordinateForDefaultIndex.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts","statSize":1269,"parsedSize":470,"gzipSize":124,"inaccurateSizes":true},{"id":null,"label":"combineTooltipPayloadConfigurations.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineTooltipPayloadConfigurations.ts","statSize":1625,"parsedSize":603,"gzipSize":159,"inaccurateSizes":true},{"id":null,"label":"combineTooltipPayload.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineTooltipPayload.ts","statSize":7113,"parsedSize":2639,"gzipSize":698,"inaccurateSizes":true},{"id":null,"label":"combineBarSizeList.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineBarSizeList.ts","statSize":1455,"parsedSize":539,"gzipSize":142,"inaccurateSizes":true},{"id":null,"label":"combineAllBarPositions.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineAllBarPositions.ts","statSize":4404,"parsedSize":1634,"gzipSize":432,"inaccurateSizes":true},{"id":null,"label":"combineStackedData.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineStackedData.ts","statSize":664,"parsedSize":246,"gzipSize":65,"inaccurateSizes":true},{"id":null,"label":"combineBarPosition.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/combiners/combineBarPosition.ts","statSize":386,"parsedSize":143,"gzipSize":37,"inaccurateSizes":true}],"parsedSize":9904,"gzipSize":2620,"inaccurateSizes":true},{"id":null,"label":"pickAxisType.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/pickAxisType.ts","statSize":57,"parsedSize":21,"gzipSize":5,"inaccurateSizes":true},{"id":null,"label":"pickAxisId.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/pickAxisId.ts","statSize":62,"parsedSize":23,"gzipSize":6,"inaccurateSizes":true},{"id":null,"label":"numberDomainEqualityCheck.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/numberDomainEqualityCheck.ts","statSize":186,"parsedSize":69,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"arrayEqualityCheck.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/arrayEqualityCheck.ts","statSize":747,"parsedSize":277,"gzipSize":73,"inaccurateSizes":true},{"id":null,"label":"selectTooltipAxisType.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipAxisType.ts","statSize":536,"parsedSize":198,"gzipSize":52,"inaccurateSizes":true},{"id":null,"label":"selectTooltipAxisId.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipAxisId.ts","statSize":72,"parsedSize":26,"gzipSize":7,"inaccurateSizes":true},{"id":null,"label":"selectTooltipSettings.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipSettings.ts","statSize":67,"parsedSize":24,"gzipSize":6,"inaccurateSizes":true},{"id":null,"label":"selectTooltipPayloadSearcher.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipPayloadSearcher.ts","statSize":88,"parsedSize":32,"gzipSize":8,"inaccurateSizes":true},{"id":null,"label":"selectTooltipState.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectTooltipState.ts","statSize":55,"parsedSize":20,"gzipSize":5,"inaccurateSizes":true},{"id":null,"label":"polarSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/polarSelectors.ts","statSize":3863,"parsedSize":1433,"gzipSize":379,"inaccurateSizes":true},{"id":null,"label":"graphicalItemSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/graphicalItemSelectors.ts","statSize":894,"parsedSize":331,"gzipSize":87,"inaccurateSizes":true},{"id":null,"label":"selectActivePropsFromChartPointer.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/selectActivePropsFromChartPointer.ts","statSize":823,"parsedSize":305,"gzipSize":80,"inaccurateSizes":true},{"id":null,"label":"touchSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/selectors/touchSelectors.ts","statSize":960,"parsedSize":356,"gzipSize":94,"inaccurateSizes":true}],"parsedSize":65258,"gzipSize":17264,"inaccurateSizes":true},{"id":null,"label":"legendSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/legendSlice.ts","statSize":2086,"parsedSize":774,"gzipSize":204,"inaccurateSizes":true},{"id":null,"label":"tooltipSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/tooltipSlice.ts","statSize":7652,"parsedSize":2839,"gzipSize":751,"inaccurateSizes":true},{"id":null,"label":"zIndexSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/zIndexSlice.ts","statSize":4768,"parsedSize":1769,"gzipSize":468,"inaccurateSizes":true},{"id":null,"label":"optionsSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/optionsSlice.ts","statSize":1209,"parsedSize":448,"gzipSize":118,"inaccurateSizes":true},{"id":null,"label":"chartDataSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/chartDataSlice.ts","statSize":1928,"parsedSize":715,"gzipSize":189,"inaccurateSizes":true},{"id":null,"label":"polarAxisSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/polarAxisSlice.ts","statSize":811,"parsedSize":300,"gzipSize":79,"inaccurateSizes":true},{"id":null,"label":"SetTooltipEntrySettings.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/SetTooltipEntrySettings.tsx","statSize":1270,"parsedSize":471,"gzipSize":124,"inaccurateSizes":true},{"id":null,"label":"SetLegendPayload.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/SetLegendPayload.ts","statSize":2074,"parsedSize":769,"gzipSize":203,"inaccurateSizes":true},{"id":null,"label":"SetGraphicalItem.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/SetGraphicalItem.ts","statSize":1976,"parsedSize":733,"gzipSize":193,"inaccurateSizes":true},{"id":null,"label":"cartesianAxisSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/cartesianAxisSlice.ts","statSize":5481,"parsedSize":2033,"gzipSize":538,"inaccurateSizes":true},{"id":null,"label":"brushSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/brushSlice.ts","statSize":724,"parsedSize":268,"gzipSize":71,"inaccurateSizes":true},{"id":null,"label":"referenceElementsSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/referenceElementsSlice.ts","statSize":1303,"parsedSize":483,"gzipSize":127,"inaccurateSizes":true},{"id":null,"label":"RechartsStoreProvider.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/RechartsStoreProvider.tsx","statSize":1918,"parsedSize":711,"gzipSize":188,"inaccurateSizes":true},{"id":null,"label":"RechartsReduxContext.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/RechartsReduxContext.tsx","statSize":751,"parsedSize":278,"gzipSize":73,"inaccurateSizes":true},{"label":"types","path":"./src/index.ts + 380 modules (concatenated)/src/state/types","statSize":454,"groups":[{"id":null,"label":"StackedGraphicalItem.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/types/StackedGraphicalItem.ts","statSize":454,"parsedSize":168,"gzipSize":44,"inaccurateSizes":true}],"parsedSize":168,"gzipSize":44,"inaccurateSizes":true},{"id":null,"label":"graphicalItemsSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/graphicalItemsSlice.ts","statSize":2048,"parsedSize":759,"gzipSize":201,"inaccurateSizes":true},{"id":null,"label":"errorBarSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/errorBarSlice.ts","statSize":1351,"parsedSize":501,"gzipSize":132,"inaccurateSizes":true},{"id":null,"label":"store.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/store.ts","statSize":4123,"parsedSize":1529,"gzipSize":404,"inaccurateSizes":true},{"id":null,"label":"mouseEventsMiddleware.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/mouseEventsMiddleware.ts","statSize":3109,"parsedSize":1153,"gzipSize":305,"inaccurateSizes":true},{"id":null,"label":"keyboardEventsMiddleware.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/keyboardEventsMiddleware.ts","statSize":3326,"parsedSize":1234,"gzipSize":326,"inaccurateSizes":true},{"id":null,"label":"externalEventsMiddleware.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/externalEventsMiddleware.ts","statSize":2471,"parsedSize":916,"gzipSize":242,"inaccurateSizes":true},{"id":null,"label":"touchEventsMiddleware.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/touchEventsMiddleware.ts","statSize":2996,"parsedSize":1111,"gzipSize":294,"inaccurateSizes":true},{"id":null,"label":"ReportMainChartProps.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/ReportMainChartProps.tsx","statSize":1370,"parsedSize":508,"gzipSize":134,"inaccurateSizes":true},{"id":null,"label":"ReportChartProps.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/ReportChartProps.tsx","statSize":301,"parsedSize":111,"gzipSize":29,"inaccurateSizes":true},{"id":null,"label":"ReportPolarOptions.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/state/ReportPolarOptions.tsx","statSize":316,"parsedSize":117,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"reduxDevtoolsJsonStringifyReplacer.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/reduxDevtoolsJsonStringifyReplacer.ts","statSize":382,"parsedSize":141,"gzipSize":37,"inaccurateSizes":true},{"id":null,"label":"rootPropsSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/rootPropsSlice.ts","statSize":1466,"parsedSize":544,"gzipSize":143,"inaccurateSizes":true},{"id":null,"label":"polarOptionsSlice.ts","path":"./src/index.ts + 380 modules (concatenated)/src/state/polarOptionsSlice.ts","statSize":385,"parsedSize":142,"gzipSize":37,"inaccurateSizes":true}],"parsedSize":87995,"gzipSize":23279,"inaccurateSizes":true},{"label":"animation","path":"./src/index.ts + 380 modules (concatenated)/src/animation","statSize":19905,"groups":[{"id":null,"label":"JavascriptAnimate.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/animation/JavascriptAnimate.tsx","statSize":1901,"parsedSize":705,"gzipSize":186,"inaccurateSizes":true},{"id":null,"label":"util.ts","path":"./src/index.ts + 380 modules (concatenated)/src/animation/util.ts","statSize":2276,"parsedSize":844,"gzipSize":223,"inaccurateSizes":true},{"id":null,"label":"CSSTransitionAnimate.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/animation/CSSTransitionAnimate.tsx","statSize":2385,"parsedSize":885,"gzipSize":234,"inaccurateSizes":true},{"id":null,"label":"configUpdate.ts","path":"./src/index.ts + 380 modules (concatenated)/src/animation/configUpdate.ts","statSize":5654,"parsedSize":2098,"gzipSize":555,"inaccurateSizes":true},{"id":null,"label":"easing.ts","path":"./src/index.ts + 380 modules (concatenated)/src/animation/easing.ts","statSize":4063,"parsedSize":1507,"gzipSize":398,"inaccurateSizes":true},{"id":null,"label":"useAnimationManager.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/animation/useAnimationManager.tsx","statSize":619,"parsedSize":229,"gzipSize":60,"inaccurateSizes":true},{"id":null,"label":"createDefaultAnimationManager.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/animation/createDefaultAnimationManager.tsx","statSize":265,"parsedSize":98,"gzipSize":26,"inaccurateSizes":true},{"id":null,"label":"AnimationManager.ts","path":"./src/index.ts + 380 modules (concatenated)/src/animation/AnimationManager.ts","statSize":1752,"parsedSize":650,"gzipSize":171,"inaccurateSizes":true},{"id":null,"label":"timeoutController.ts","path":"./src/index.ts + 380 modules (concatenated)/src/animation/timeoutController.ts","statSize":990,"parsedSize":367,"gzipSize":97,"inaccurateSizes":true}],"parsedSize":7386,"gzipSize":1954,"inaccurateSizes":true},{"label":"synchronisation","path":"./src/index.ts + 380 modules (concatenated)/src/synchronisation","statSize":12037,"groups":[{"id":null,"label":"useChartSynchronisation.tsx","path":"./src/index.ts + 380 modules (concatenated)/src/synchronisation/useChartSynchronisation.tsx","statSize":11940,"parsedSize":4430,"gzipSize":1172,"inaccurateSizes":true},{"id":null,"label":"syncSelectors.ts","path":"./src/index.ts + 380 modules (concatenated)/src/synchronisation/syncSelectors.ts","statSize":97,"parsedSize":35,"gzipSize":9,"inaccurateSizes":true}],"parsedSize":4466,"gzipSize":1181,"inaccurateSizes":true}],"parsedSize":388362,"gzipSize":102742,"inaccurateSizes":true},{"label":"node_modules","path":"./src/index.ts + 380 modules (concatenated)/node_modules","statSize":380273,"groups":[{"label":"clsx/dist","path":"./src/index.ts + 380 modules (concatenated)/node_modules/clsx/dist","statSize":388,"groups":[{"id":null,"label":"clsx.mjs","path":"./src/index.ts + 380 modules (concatenated)/node_modules/clsx/dist/clsx.mjs","statSize":388,"parsedSize":143,"gzipSize":38,"inaccurateSizes":true}],"parsedSize":143,"gzipSize":38,"inaccurateSizes":true},{"label":"d3-shape/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src","statSize":29228,"groups":[{"id":null,"label":"symbol.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol.js","statSize":1839,"parsedSize":682,"gzipSize":180,"inaccurateSizes":true},{"label":"symbol","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol","statSize":4472,"groups":[{"id":null,"label":"circle.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/circle.js","statSize":182,"parsedSize":67,"gzipSize":17,"inaccurateSizes":true},{"id":null,"label":"cross.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/cross.js","statSize":497,"parsedSize":184,"gzipSize":48,"inaccurateSizes":true},{"id":null,"label":"diamond.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/diamond.js","statSize":329,"parsedSize":122,"gzipSize":32,"inaccurateSizes":true},{"id":null,"label":"square.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/square.js","statSize":160,"parsedSize":59,"gzipSize":15,"inaccurateSizes":true},{"id":null,"label":"star.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/star.js","statSize":603,"parsedSize":223,"gzipSize":59,"inaccurateSizes":true},{"id":null,"label":"triangle.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/triangle.js","statSize":273,"parsedSize":101,"gzipSize":26,"inaccurateSizes":true},{"id":null,"label":"wye.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/wye.js","statSize":734,"parsedSize":272,"gzipSize":72,"inaccurateSizes":true},{"id":null,"label":"asterisk.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/asterisk.js","statSize":377,"parsedSize":139,"gzipSize":37,"inaccurateSizes":true},{"id":null,"label":"diamond2.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/diamond2.js","statSize":249,"parsedSize":92,"gzipSize":24,"inaccurateSizes":true},{"id":null,"label":"plus.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/plus.js","statSize":248,"parsedSize":92,"gzipSize":24,"inaccurateSizes":true},{"id":null,"label":"square2.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/square2.js","statSize":250,"parsedSize":92,"gzipSize":24,"inaccurateSizes":true},{"id":null,"label":"triangle2.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/triangle2.js","statSize":319,"parsedSize":118,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"times.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/symbol/times.js","statSize":251,"parsedSize":93,"gzipSize":24,"inaccurateSizes":true}],"parsedSize":1659,"gzipSize":439,"inaccurateSizes":true},{"id":null,"label":"area.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/area.js","statSize":3218,"parsedSize":1194,"gzipSize":315,"inaccurateSizes":true},{"label":"curve","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve","statSize":13409,"groups":[{"id":null,"label":"linear.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/linear.js","statSize":744,"parsedSize":276,"gzipSize":73,"inaccurateSizes":true},{"id":null,"label":"basisClosed.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/basisClosed.js","statSize":1536,"parsedSize":569,"gzipSize":150,"inaccurateSizes":true},{"id":null,"label":"basis.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/basis.js","statSize":1448,"parsedSize":537,"gzipSize":142,"inaccurateSizes":true},{"id":null,"label":"basisOpen.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/basisOpen.js","statSize":1078,"parsedSize":400,"gzipSize":105,"inaccurateSizes":true},{"id":null,"label":"bump.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/bump.js","statSize":1749,"parsedSize":649,"gzipSize":171,"inaccurateSizes":true},{"id":null,"label":"linearClosed.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/linearClosed.js","statSize":517,"parsedSize":191,"gzipSize":50,"inaccurateSizes":true},{"id":null,"label":"monotone.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/monotone.js","statSize":3203,"parsedSize":1188,"gzipSize":314,"inaccurateSizes":true},{"id":null,"label":"natural.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/natural.js","statSize":1761,"parsedSize":653,"gzipSize":172,"inaccurateSizes":true},{"id":null,"label":"step.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/curve/step.js","statSize":1373,"parsedSize":509,"gzipSize":134,"inaccurateSizes":true}],"parsedSize":4975,"gzipSize":1316,"inaccurateSizes":true},{"id":null,"label":"line.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/line.js","statSize":1733,"parsedSize":643,"gzipSize":170,"inaccurateSizes":true},{"id":null,"label":"constant.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/constant.js","statSize":81,"parsedSize":30,"gzipSize":7,"inaccurateSizes":true},{"id":null,"label":"path.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/path.js","statSize":393,"parsedSize":145,"gzipSize":38,"inaccurateSizes":true},{"id":null,"label":"math.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/math.js","statSize":492,"parsedSize":182,"gzipSize":48,"inaccurateSizes":true},{"id":null,"label":"stack.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/stack.js","statSize":1428,"parsedSize":529,"gzipSize":140,"inaccurateSizes":true},{"id":null,"label":"array.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/array.js","statSize":242,"parsedSize":89,"gzipSize":23,"inaccurateSizes":true},{"label":"offset","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/offset","statSize":1691,"groups":[{"id":null,"label":"none.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/offset/none.js","statSize":309,"parsedSize":114,"gzipSize":30,"inaccurateSizes":true},{"id":null,"label":"expand.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/offset/expand.js","statSize":322,"parsedSize":119,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"silhouette.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/offset/silhouette.js","statSize":317,"parsedSize":117,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"wiggle.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/offset/wiggle.js","statSize":743,"parsedSize":275,"gzipSize":72,"inaccurateSizes":true}],"parsedSize":627,"gzipSize":166,"inaccurateSizes":true},{"label":"order","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/order","statSize":120,"groups":[{"id":null,"label":"none.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/order/none.js","statSize":120,"parsedSize":44,"gzipSize":11,"inaccurateSizes":true}],"parsedSize":44,"gzipSize":11,"inaccurateSizes":true},{"id":null,"label":"point.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/point.js","statSize":81,"parsedSize":30,"gzipSize":7,"inaccurateSizes":true},{"id":null,"label":"noop.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-shape/src/noop.js","statSize":29,"parsedSize":10,"gzipSize":2,"inaccurateSizes":true}],"parsedSize":10846,"gzipSize":2869,"inaccurateSizes":true},{"label":"victory-vendor/es","path":"./src/index.ts + 380 modules (concatenated)/node_modules/victory-vendor/es","statSize":228,"groups":[{"id":null,"label":"d3-scale.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/victory-vendor/es/d3-scale.js","statSize":228,"parsedSize":84,"gzipSize":22,"inaccurateSizes":true}],"parsedSize":84,"gzipSize":22,"inaccurateSizes":true},{"label":"d3-scale/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src","statSize":33500,"groups":[{"id":null,"label":"band.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/band.js","statSize":2653,"parsedSize":984,"gzipSize":260,"inaccurateSizes":true},{"id":null,"label":"linear.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/linear.js","statSize":1620,"parsedSize":601,"gzipSize":159,"inaccurateSizes":true},{"id":null,"label":"index.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/index.js","statSize":1400,"parsedSize":519,"gzipSize":137,"inaccurateSizes":true},{"id":null,"label":"init.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/init.js","statSize":642,"parsedSize":238,"gzipSize":63,"inaccurateSizes":true},{"id":null,"label":"ordinal.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/ordinal.js","statSize":1088,"parsedSize":403,"gzipSize":106,"inaccurateSizes":true},{"id":null,"label":"continuous.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/continuous.js","statSize":3469,"parsedSize":1287,"gzipSize":340,"inaccurateSizes":true},{"id":null,"label":"tickFormat.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/tickFormat.js","statSize":1133,"parsedSize":420,"gzipSize":111,"inaccurateSizes":true},{"id":null,"label":"identity.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/identity.js","statSize":654,"parsedSize":242,"gzipSize":64,"inaccurateSizes":true},{"id":null,"label":"constant.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/constant.js","statSize":82,"parsedSize":30,"gzipSize":8,"inaccurateSizes":true},{"id":null,"label":"number.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/number.js","statSize":51,"parsedSize":18,"gzipSize":5,"inaccurateSizes":true},{"id":null,"label":"log.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/log.js","statSize":3460,"parsedSize":1283,"gzipSize":339,"inaccurateSizes":true},{"id":null,"label":"symlog.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/symlog.js","statSize":848,"parsedSize":314,"gzipSize":83,"inaccurateSizes":true},{"id":null,"label":"pow.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/pow.js","statSize":1183,"parsedSize":438,"gzipSize":116,"inaccurateSizes":true},{"id":null,"label":"radial.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/radial.js","statSize":1478,"parsedSize":548,"gzipSize":145,"inaccurateSizes":true},{"id":null,"label":"quantile.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/quantile.js","statSize":1442,"parsedSize":535,"gzipSize":141,"inaccurateSizes":true},{"id":null,"label":"quantize.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/quantize.js","statSize":1339,"parsedSize":496,"gzipSize":131,"inaccurateSizes":true},{"id":null,"label":"threshold.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/threshold.js","statSize":997,"parsedSize":369,"gzipSize":97,"inaccurateSizes":true},{"id":null,"label":"time.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/time.js","statSize":2367,"parsedSize":878,"gzipSize":232,"inaccurateSizes":true},{"id":null,"label":"utcTime.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/utcTime.js","statSize":477,"parsedSize":177,"gzipSize":46,"inaccurateSizes":true},{"id":null,"label":"sequential.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/sequential.js","statSize":2786,"parsedSize":1033,"gzipSize":273,"inaccurateSizes":true},{"id":null,"label":"sequentialQuantile.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/sequentialQuantile.js","statSize":1078,"parsedSize":400,"gzipSize":105,"inaccurateSizes":true},{"id":null,"label":"diverging.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/diverging.js","statSize":2908,"parsedSize":1079,"gzipSize":285,"inaccurateSizes":true},{"id":null,"label":"nice.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-scale/src/nice.js","statSize":345,"parsedSize":128,"gzipSize":33,"inaccurateSizes":true}],"parsedSize":12431,"gzipSize":3288,"inaccurateSizes":true},{"label":"reselect/dist","path":"./src/index.ts + 380 modules (concatenated)/node_modules/reselect/dist","statSize":21982,"groups":[{"id":null,"label":"reselect.mjs","path":"./src/index.ts + 380 modules (concatenated)/node_modules/reselect/dist/reselect.mjs","statSize":21982,"parsedSize":8157,"gzipSize":2158,"inaccurateSizes":true}],"parsedSize":8157,"gzipSize":2158,"inaccurateSizes":true},{"label":"@reduxjs/toolkit","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@reduxjs/toolkit","statSize":107139,"groups":[{"label":"dist","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@reduxjs/toolkit/dist","statSize":88715,"groups":[{"id":null,"label":"redux-toolkit.esm.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js","statSize":88715,"parsedSize":32920,"gzipSize":8709,"inaccurateSizes":true}],"parsedSize":32920,"gzipSize":8709,"inaccurateSizes":true},{"label":"node_modules/immer/dist","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@reduxjs/toolkit/node_modules/immer/dist","statSize":18424,"groups":[{"id":null,"label":"immer.esm.mjs","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.esm.mjs","statSize":18424,"parsedSize":6836,"gzipSize":1808,"inaccurateSizes":true}],"parsedSize":6836,"gzipSize":1808,"inaccurateSizes":true}],"parsedSize":39757,"gzipSize":10518,"inaccurateSizes":true},{"label":"immer/dist","path":"./src/index.ts + 380 modules (concatenated)/node_modules/immer/dist","statSize":38191,"groups":[{"id":null,"label":"immer.mjs","path":"./src/index.ts + 380 modules (concatenated)/node_modules/immer/dist/immer.mjs","statSize":38191,"parsedSize":14172,"gzipSize":3749,"inaccurateSizes":true}],"parsedSize":14172,"gzipSize":3749,"inaccurateSizes":true},{"label":"d3-array/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src","statSize":10542,"groups":[{"id":null,"label":"range.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/range.js","statSize":350,"parsedSize":129,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"ticks.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/ticks.js","statSize":1958,"parsedSize":726,"gzipSize":192,"inaccurateSizes":true},{"id":null,"label":"bisect.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/bisect.js","statSize":337,"parsedSize":125,"gzipSize":33,"inaccurateSizes":true},{"id":null,"label":"ascending.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/ascending.js","statSize":127,"parsedSize":47,"gzipSize":12,"inaccurateSizes":true},{"id":null,"label":"bisector.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/bisector.js","statSize":1569,"parsedSize":582,"gzipSize":154,"inaccurateSizes":true},{"id":null,"label":"descending.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/descending.js","statSize":144,"parsedSize":53,"gzipSize":14,"inaccurateSizes":true},{"id":null,"label":"quantile.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/quantile.js","statSize":1774,"parsedSize":658,"gzipSize":174,"inaccurateSizes":true},{"id":null,"label":"max.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/max.js","statSize":502,"parsedSize":186,"gzipSize":49,"inaccurateSizes":true},{"id":null,"label":"min.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/min.js","statSize":502,"parsedSize":186,"gzipSize":49,"inaccurateSizes":true},{"id":null,"label":"quickselect.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/quickselect.js","statSize":1561,"parsedSize":579,"gzipSize":153,"inaccurateSizes":true},{"id":null,"label":"sort.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/sort.js","statSize":1253,"parsedSize":464,"gzipSize":123,"inaccurateSizes":true},{"id":null,"label":"number.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-array/src/number.js","statSize":465,"parsedSize":172,"gzipSize":45,"inaccurateSizes":true}],"parsedSize":3911,"gzipSize":1034,"inaccurateSizes":true},{"label":"react-redux/es","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es","statSize":37844,"groups":[{"id":null,"label":"index.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/index.js","statSize":908,"parsedSize":336,"gzipSize":89,"inaccurateSizes":true},{"label":"utils","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils","statSize":5407,"groups":[{"id":null,"label":"reactBatchedUpdates.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils/reactBatchedUpdates.js","statSize":52,"parsedSize":19,"gzipSize":5,"inaccurateSizes":true},{"id":null,"label":"batch.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils/batch.js","statSize":359,"parsedSize":133,"gzipSize":35,"inaccurateSizes":true},{"id":null,"label":"Subscription.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils/Subscription.js","statSize":3374,"parsedSize":1252,"gzipSize":331,"inaccurateSizes":true},{"id":null,"label":"useIsomorphicLayoutEffect.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","statSize":964,"parsedSize":357,"gzipSize":94,"inaccurateSizes":true},{"id":null,"label":"shallowEqual.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/utils/shallowEqual.js","statSize":658,"parsedSize":244,"gzipSize":64,"inaccurateSizes":true}],"parsedSize":2006,"gzipSize":530,"inaccurateSizes":true},{"label":"hooks","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/hooks","statSize":9013,"groups":[{"id":null,"label":"useSelector.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/hooks/useSelector.js","statSize":5218,"parsedSize":1936,"gzipSize":512,"inaccurateSizes":true},{"id":null,"label":"useReduxContext.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/hooks/useReduxContext.js","statSize":1346,"parsedSize":499,"gzipSize":132,"inaccurateSizes":true},{"id":null,"label":"useDispatch.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/hooks/useDispatch.js","statSize":1334,"parsedSize":495,"gzipSize":130,"inaccurateSizes":true},{"id":null,"label":"useStore.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/hooks/useStore.js","statSize":1115,"parsedSize":413,"gzipSize":109,"inaccurateSizes":true}],"parsedSize":3344,"gzipSize":884,"inaccurateSizes":true},{"label":"components","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/components","statSize":21935,"groups":[{"id":null,"label":"connect.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/components/connect.js","statSize":19641,"parsedSize":7288,"gzipSize":1928,"inaccurateSizes":true},{"id":null,"label":"Context.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/components/Context.js","statSize":843,"parsedSize":312,"gzipSize":82,"inaccurateSizes":true},{"id":null,"label":"Provider.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/components/Provider.js","statSize":1451,"parsedSize":538,"gzipSize":142,"inaccurateSizes":true}],"parsedSize":8139,"gzipSize":2153,"inaccurateSizes":true},{"id":null,"label":"exports.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/react-redux/es/exports.js","statSize":581,"parsedSize":215,"gzipSize":57,"inaccurateSizes":true}],"parsedSize":14043,"gzipSize":3715,"inaccurateSizes":true},{"label":"tiny-invariant/dist/esm","path":"./src/index.ts + 380 modules (concatenated)/node_modules/tiny-invariant/dist/esm","statSize":452,"groups":[{"id":null,"label":"tiny-invariant.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","statSize":452,"parsedSize":167,"gzipSize":44,"inaccurateSizes":true}],"parsedSize":167,"gzipSize":44,"inaccurateSizes":true},{"label":"d3-path/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-path/src","statSize":4537,"groups":[{"id":null,"label":"path.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-path/src/path.js","statSize":4537,"parsedSize":1683,"gzipSize":445,"inaccurateSizes":true}],"parsedSize":1683,"gzipSize":445,"inaccurateSizes":true},{"label":"redux/es","path":"./src/index.ts + 380 modules (concatenated)/node_modules/redux/es","statSize":27277,"groups":[{"id":null,"label":"redux.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/redux/es/redux.js","statSize":27277,"parsedSize":10122,"gzipSize":2677,"inaccurateSizes":true}],"parsedSize":10122,"gzipSize":2677,"inaccurateSizes":true},{"label":"redux-thunk/es","path":"./src/index.ts + 380 modules (concatenated)/node_modules/redux-thunk/es","statSize":1304,"groups":[{"id":null,"label":"index.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/redux-thunk/es/index.js","statSize":1304,"parsedSize":483,"gzipSize":128,"inaccurateSizes":true}],"parsedSize":483,"gzipSize":128,"inaccurateSizes":true},{"label":"internmap/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/internmap/src","statSize":1575,"groups":[{"id":null,"label":"index.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/internmap/src/index.js","statSize":1575,"parsedSize":584,"gzipSize":154,"inaccurateSizes":true}],"parsedSize":584,"gzipSize":154,"inaccurateSizes":true},{"label":"d3-interpolate/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src","statSize":7624,"groups":[{"id":null,"label":"value.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/value.js","statSize":806,"parsedSize":299,"gzipSize":79,"inaccurateSizes":true},{"id":null,"label":"number.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/number.js","statSize":110,"parsedSize":40,"gzipSize":10,"inaccurateSizes":true},{"id":null,"label":"round.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/round.js","statSize":122,"parsedSize":45,"gzipSize":11,"inaccurateSizes":true},{"id":null,"label":"rgb.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/rgb.js","statSize":1297,"parsedSize":481,"gzipSize":127,"inaccurateSizes":true},{"id":null,"label":"basis.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/basis.js","statSize":600,"parsedSize":222,"gzipSize":58,"inaccurateSizes":true},{"id":null,"label":"basisClosed.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/basisClosed.js","statSize":363,"parsedSize":134,"gzipSize":35,"inaccurateSizes":true},{"id":null,"label":"constant.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/constant.js","statSize":29,"parsedSize":10,"gzipSize":2,"inaccurateSizes":true},{"id":null,"label":"array.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/array.js","statSize":540,"parsedSize":200,"gzipSize":53,"inaccurateSizes":true},{"id":null,"label":"date.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/date.js","statSize":144,"parsedSize":53,"gzipSize":14,"inaccurateSizes":true},{"id":null,"label":"object.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/object.js","statSize":393,"parsedSize":145,"gzipSize":38,"inaccurateSizes":true},{"id":null,"label":"string.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/string.js","statSize":1761,"parsedSize":653,"gzipSize":172,"inaccurateSizes":true},{"id":null,"label":"numberArray.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/numberArray.js","statSize":332,"parsedSize":123,"gzipSize":32,"inaccurateSizes":true},{"id":null,"label":"piecewise.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/piecewise.js","statSize":427,"parsedSize":158,"gzipSize":41,"inaccurateSizes":true},{"id":null,"label":"color.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-interpolate/src/color.js","statSize":700,"parsedSize":259,"gzipSize":68,"inaccurateSizes":true}],"parsedSize":2829,"gzipSize":748,"inaccurateSizes":true},{"label":"d3-format/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src","statSize":12518,"groups":[{"id":null,"label":"defaultLocale.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/defaultLocale.js","statSize":348,"parsedSize":129,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"formatSpecifier.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatSpecifier.js","statSize":1719,"parsedSize":637,"gzipSize":168,"inaccurateSizes":true},{"id":null,"label":"precisionFixed.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/precisionFixed.js","statSize":122,"parsedSize":45,"gzipSize":11,"inaccurateSizes":true},{"id":null,"label":"precisionPrefix.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/precisionPrefix.js","statSize":193,"parsedSize":71,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"precisionRound.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/precisionRound.js","statSize":189,"parsedSize":70,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"locale.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/locale.js","statSize":6174,"parsedSize":2291,"gzipSize":606,"inaccurateSizes":true},{"id":null,"label":"exponent.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/exponent.js","statSize":149,"parsedSize":55,"gzipSize":14,"inaccurateSizes":true},{"id":null,"label":"formatDecimal.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatDecimal.js","statSize":822,"parsedSize":305,"gzipSize":80,"inaccurateSizes":true},{"id":null,"label":"formatGroup.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatGroup.js","statSize":475,"parsedSize":176,"gzipSize":46,"inaccurateSizes":true},{"id":null,"label":"formatNumerals.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatNumerals.js","statSize":154,"parsedSize":57,"gzipSize":15,"inaccurateSizes":true},{"id":null,"label":"formatTrim.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatTrim.js","statSize":399,"parsedSize":148,"gzipSize":39,"inaccurateSizes":true},{"id":null,"label":"formatTypes.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatTypes.js","statSize":627,"parsedSize":232,"gzipSize":61,"inaccurateSizes":true},{"id":null,"label":"formatPrefixAuto.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatPrefixAuto.js","statSize":631,"parsedSize":234,"gzipSize":61,"inaccurateSizes":true},{"id":null,"label":"identity.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/identity.js","statSize":43,"parsedSize":15,"gzipSize":4,"inaccurateSizes":true},{"id":null,"label":"formatRounded.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-format/src/formatRounded.js","statSize":473,"parsedSize":175,"gzipSize":46,"inaccurateSizes":true}],"parsedSize":4645,"gzipSize":1228,"inaccurateSizes":true},{"label":"eventemitter3","path":"./src/index.ts + 380 modules (concatenated)/node_modules/eventemitter3","statSize":91,"groups":[{"id":null,"label":"index.mjs","path":"./src/index.ts + 380 modules (concatenated)/node_modules/eventemitter3/index.mjs","statSize":91,"parsedSize":33,"gzipSize":8,"inaccurateSizes":true}],"parsedSize":33,"gzipSize":8,"inaccurateSizes":true},{"label":"@babel/runtime/helpers/esm","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm","statSize":2129,"groups":[{"id":null,"label":"objectSpread2.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","statSize":843,"parsedSize":312,"gzipSize":82,"inaccurateSizes":true},{"id":null,"label":"defineProperty.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm/defineProperty.js","statSize":286,"parsedSize":106,"gzipSize":28,"inaccurateSizes":true},{"id":null,"label":"toPropertyKey.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","statSize":227,"parsedSize":84,"gzipSize":22,"inaccurateSizes":true},{"id":null,"label":"typeof.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm/typeof.js","statSize":366,"parsedSize":135,"gzipSize":35,"inaccurateSizes":true},{"id":null,"label":"toPrimitive.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","statSize":407,"parsedSize":151,"gzipSize":39,"inaccurateSizes":true}],"parsedSize":790,"gzipSize":209,"inaccurateSizes":true},{"label":"d3-color/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-color/src","statSize":11426,"groups":[{"id":null,"label":"color.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-color/src/color.js","statSize":11086,"parsedSize":4113,"gzipSize":1088,"inaccurateSizes":true},{"id":null,"label":"define.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-color/src/define.js","statSize":340,"parsedSize":126,"gzipSize":33,"inaccurateSizes":true}],"parsedSize":4240,"gzipSize":1121,"inaccurateSizes":true},{"label":"d3-time/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src","statSize":12851,"groups":[{"id":null,"label":"second.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/second.js","statSize":403,"parsedSize":149,"gzipSize":39,"inaccurateSizes":true},{"id":null,"label":"minute.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/minute.js","statSize":768,"parsedSize":284,"gzipSize":75,"inaccurateSizes":true},{"id":null,"label":"hour.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/hour.js","statSize":798,"parsedSize":296,"gzipSize":78,"inaccurateSizes":true},{"id":null,"label":"day.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/day.js","statSize":1025,"parsedSize":380,"gzipSize":100,"inaccurateSizes":true},{"id":null,"label":"week.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/week.js","statSize":2028,"parsedSize":752,"gzipSize":199,"inaccurateSizes":true},{"id":null,"label":"month.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/month.js","statSize":796,"parsedSize":295,"gzipSize":78,"inaccurateSizes":true},{"id":null,"label":"year.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/year.js","statSize":1475,"parsedSize":547,"gzipSize":144,"inaccurateSizes":true},{"id":null,"label":"ticks.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/ticks.js","statSize":2528,"parsedSize":938,"gzipSize":248,"inaccurateSizes":true},{"id":null,"label":"interval.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/interval.js","statSize":2076,"parsedSize":770,"gzipSize":203,"inaccurateSizes":true},{"id":null,"label":"duration.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/duration.js","statSize":321,"parsedSize":119,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"millisecond.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time/src/millisecond.js","statSize":633,"parsedSize":234,"gzipSize":62,"inaccurateSizes":true}],"parsedSize":4768,"gzipSize":1261,"inaccurateSizes":true},{"label":"d3-time-format/src","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time-format/src","statSize":19447,"groups":[{"id":null,"label":"defaultLocale.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time-format/src/defaultLocale.js","statSize":870,"parsedSize":322,"gzipSize":85,"inaccurateSizes":true},{"id":null,"label":"locale.js","path":"./src/index.ts + 380 modules (concatenated)/node_modules/d3-time-format/src/locale.js","statSize":18577,"parsedSize":6893,"gzipSize":1823,"inaccurateSizes":true}],"parsedSize":7216,"gzipSize":1909,"inaccurateSizes":true}],"parsedSize":141113,"gzipSize":37332,"inaccurateSizes":true}]}],"parsedSize":529476,"gzipSize":140075}],"isInitialByEntrypoint":{"main":true}}];
-      window.entrypoints = ["main"];
-      window.defaultSizes = "parsed";
-    </script>
-  </body>
-</html>
Index: de_modules/redux-thunk/LICENSE.md
===================================================================
--- node_modules/redux-thunk/LICENSE.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-present Dan Abramov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/redux-thunk/README.md
===================================================================
--- node_modules/redux-thunk/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,403 +1,0 @@
-# Redux Thunk
-
-Thunk [middleware](https://redux.js.org/tutorials/fundamentals/part-4-store#middleware) for Redux. It allows writing functions with logic inside that can interact with a Redux store's `dispatch` and `getState` methods.
-
-For complete usage instructions and useful patterns, see the [Redux docs **Writing Logic with Thunks** page](https://redux.js.org/usage/writing-logic-thunks).
-
-![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reduxjs/redux-thunk/test.yml?branch=master)
-[![npm version](https://img.shields.io/npm/v/redux-thunk.svg?style=flat-square)](https://www.npmjs.com/package/redux-thunk)
-[![npm downloads](https://img.shields.io/npm/dm/redux-thunk.svg?style=flat-square)](https://www.npmjs.com/package/redux-thunk)
-
-## Installation and Setup
-
-### Redux Toolkit
-
-If you're using [our official Redux Toolkit package](https://redux-toolkit.js.org) as recommended, there's nothing to install - RTK's `configureStore` API already adds the thunk middleware by default:
-
-```js
-import { configureStore } from '@reduxjs/toolkit'
-
-import todosReducer from './features/todos/todosSlice'
-import filtersReducer from './features/filters/filtersSlice'
-
-const store = configureStore({
-  reducer: {
-    todos: todosReducer,
-    filters: filtersReducer
-  }
-})
-
-// The thunk middleware was automatically added
-```
-
-### Manual Setup
-
-If you're using the basic Redux `createStore` API and need to set this up manually, first add the `redux-thunk` package:
-
-```sh
-npm install redux-thunk
-
-yarn add redux-thunk
-```
-
-The thunk middleware is the default export.
-
-<details>
-<summary><b>More Details: Importing the thunk middleware</b></summary>
-
-If you're using ES modules:
-
-```js
-import thunk from 'redux-thunk' // no changes here 😀
-```
-
-If you use Redux Thunk 2.x in a CommonJS environment,
-[don’t forget to add `.default` to your import](https://github.com/reduxjs/redux-thunk/releases/tag/v2.0.0):
-
-```diff
-- const thunk = require('redux-thunk')
-+ const thunk = require('redux-thunk').default
-```
-
-Additionally, since 2.x, we also support a
-[UMD build](https://unpkg.com/redux-thunk/dist/redux-thunk.min.js) for use as a global script tag:
-
-```js
-const ReduxThunk = window.ReduxThunk
-```
-
-</details>
-
-Then, to enable Redux Thunk, use
-[`applyMiddleware()`](https://redux.js.org/api/applymiddleware):
-
-```js
-import { createStore, applyMiddleware } from 'redux'
-import thunk from 'redux-thunk'
-import rootReducer from './reducers/index'
-
-const store = createStore(rootReducer, applyMiddleware(thunk))
-```
-
-### Injecting a Custom Argument
-
-Since 2.1.0, Redux Thunk supports injecting a custom argument into the thunk middleware. This is typically useful for cases like using an API service layer that could be swapped out for a mock service in tests.
-
-For Redux Toolkit, the `getDefaultMiddleware` callback inside of `configureStore` lets you pass in a custom `extraArgument`:
-
-```js
-import { configureStore } from '@reduxjs/toolkit'
-import rootReducer from './reducer'
-import { myCustomApiService } from './api'
-
-const store = configureStore({
-  reducer: rootReducer,
-  middleware: getDefaultMiddleware =>
-    getDefaultMiddleware({
-      thunk: {
-        extraArgument: myCustomApiService
-      }
-    })
-})
-
-// later
-function fetchUser(id) {
-  // The `extraArgument` is the third arg for thunk functions
-  return (dispatch, getState, api) => {
-    // you can use api here
-  }
-}
-```
-
-If you need to pass in multiple values, combine them into a single object:
-
-```js
-const store = configureStore({
-  reducer: rootReducer,
-  middleware: getDefaultMiddleware =>
-    getDefaultMiddleware({
-      thunk: {
-        extraArgument: {
-          api: myCustomApiService,
-          otherValue: 42
-        }
-      }
-    })
-})
-
-// later
-function fetchUser(id) {
-  return (dispatch, getState, { api, otherValue }) => {
-    // you can use api and something else here
-  }
-}
-```
-
-If you're setting up the store by hand, the named export `withExtraArgument()` function should be used to generate the correct thunk middleware:
-
-```js
-const store = createStore(reducer, applyMiddleware(withExtraArgument(api)))
-```
-
-## Why Do I Need This?
-
-With a plain basic Redux store, you can only do simple synchronous updates by
-dispatching an action. Middleware extends the store's abilities, and lets you
-write async logic that interacts with the store.
-
-Thunks are the recommended middleware for basic Redux side effects logic,
-including complex synchronous logic that needs access to the store, and simple
-async logic like AJAX requests.
-
-For more details on why thunks are useful, see:
-
-- **Redux docs: Writing Logic with Thunks**  
-  https://redux.js.org/usage/writing-logic-thunks  
-  The official usage guide page on thunks. Covers why they exist, how the thunk middleware works, and useful patterns for using thunks.
-
-- **Stack Overflow: Dispatching Redux Actions with a Timeout**  
-  http://stackoverflow.com/questions/35411423/how-to-dispatch-a-redux-action-with-a-timeout/35415559#35415559  
-  Dan Abramov explains the basics of managing async behavior in Redux, walking
-  through a progressive series of approaches (inline async calls, async action
-  creators, thunk middleware).
-
-- **Stack Overflow: Why do we need middleware for async flow in Redux?**  
-  http://stackoverflow.com/questions/34570758/why-do-we-need-middleware-for-async-flow-in-redux/34599594#34599594  
-  Dan Abramov gives reasons for using thunks and async middleware, and some
-  useful patterns for using thunks.
-
-- **What the heck is a "thunk"?**  
-  https://daveceddia.com/what-is-a-thunk/  
-  A quick explanation for what the word "thunk" means in general, and for Redux
-  specifically.
-
-- **Thunks in Redux: The Basics**  
-  https://medium.com/fullstack-academy/thunks-in-redux-the-basics-85e538a3fe60  
-  A detailed look at what thunks are, what they solve, and how to use them.
-
-You may also want to read the
-**[Redux FAQ entry on choosing which async middleware to use](https://redux.js.org/faq/actions#what-async-middleware-should-i-use-how-do-you-decide-between-thunks-sagas-observables-or-something-else)**.
-
-While the thunk middleware is not directly included with the Redux core library,
-it is used by default in our
-**[`@reduxjs/toolkit` package](https://github.com/reduxjs/redux-toolkit)**.
-
-## Motivation
-
-Redux Thunk [middleware](https://redux.js.org/tutorials/fundamentals/part-4-store#middleware)
-allows you to write action creators that return a function instead of an action.
-The thunk can be used to delay the dispatch of an action, or to dispatch only if
-a certain condition is met. The inner function receives the store methods
-`dispatch` and `getState` as parameters.
-
-An action creator that returns a function to perform asynchronous dispatch:
-
-```js
-const INCREMENT_COUNTER = 'INCREMENT_COUNTER'
-
-function increment() {
-  return {
-    type: INCREMENT_COUNTER
-  }
-}
-
-function incrementAsync() {
-  return dispatch => {
-    setTimeout(() => {
-      // Yay! Can invoke sync or async actions with `dispatch`
-      dispatch(increment())
-    }, 1000)
-  }
-}
-```
-
-An action creator that returns a function to perform conditional dispatch:
-
-```js
-function incrementIfOdd() {
-  return (dispatch, getState) => {
-    const { counter } = getState()
-
-    if (counter % 2 === 0) {
-      return
-    }
-
-    dispatch(increment())
-  }
-}
-```
-
-## What’s a thunk?!
-
-A [thunk](https://en.wikipedia.org/wiki/Thunk) is a function that wraps an
-expression to delay its evaluation.
-
-```js
-// calculation of 1 + 2 is immediate
-// x === 3
-let x = 1 + 2
-
-// calculation of 1 + 2 is delayed
-// foo can be called later to perform the calculation
-// foo is a thunk!
-let foo = () => 1 + 2
-```
-
-The term [originated](https://en.wikipedia.org/wiki/Thunk#cite_note-1) as a
-humorous past-tense version of "think".
-
-## Composition
-
-Any return value from the inner function will be available as the return value
-of `dispatch` itself. This is convenient for orchestrating an asynchronous
-control flow with thunk action creators dispatching each other and returning
-Promises to wait for each other’s completion:
-
-```js
-import { createStore, applyMiddleware } from 'redux'
-import thunk from 'redux-thunk'
-import rootReducer from './reducers'
-
-// Note: this API requires redux@>=3.1.0
-const store = createStore(rootReducer, applyMiddleware(thunk))
-
-function fetchSecretSauce() {
-  return fetch('https://www.google.com/search?q=secret+sauce')
-}
-
-// These are the normal action creators you have seen so far.
-// The actions they return can be dispatched without any middleware.
-// However, they only express “facts” and not the “async flow”.
-
-function makeASandwich(forPerson, secretSauce) {
-  return {
-    type: 'MAKE_SANDWICH',
-    forPerson,
-    secretSauce
-  }
-}
-
-function apologize(fromPerson, toPerson, error) {
-  return {
-    type: 'APOLOGIZE',
-    fromPerson,
-    toPerson,
-    error
-  }
-}
-
-function withdrawMoney(amount) {
-  return {
-    type: 'WITHDRAW',
-    amount
-  }
-}
-
-// Even without middleware, you can dispatch an action:
-store.dispatch(withdrawMoney(100))
-
-// But what do you do when you need to start an asynchronous action,
-// such as an API call, or a router transition?
-
-// Meet thunks.
-// A thunk in this context is a function that can be dispatched to perform async
-// activity and can dispatch actions and read state.
-// This is an action creator that returns a thunk:
-function makeASandwichWithSecretSauce(forPerson) {
-  // We can invert control here by returning a function - the "thunk".
-  // When this function is passed to `dispatch`, the thunk middleware will intercept it,
-  // and call it with `dispatch` and `getState` as arguments.
-  // This gives the thunk function the ability to run some logic, and still interact with the store.
-  return function (dispatch) {
-    return fetchSecretSauce().then(
-      sauce => dispatch(makeASandwich(forPerson, sauce)),
-      error => dispatch(apologize('The Sandwich Shop', forPerson, error))
-    )
-  }
-}
-
-// Thunk middleware lets me dispatch thunk async actions
-// as if they were actions!
-
-store.dispatch(makeASandwichWithSecretSauce('Me'))
-
-// It even takes care to return the thunk’s return value
-// from the dispatch, so I can chain Promises as long as I return them.
-
-store.dispatch(makeASandwichWithSecretSauce('My partner')).then(() => {
-  console.log('Done!')
-})
-
-// In fact I can write action creators that dispatch
-// actions and async actions from other action creators,
-// and I can build my control flow with Promises.
-
-function makeSandwichesForEverybody() {
-  return function (dispatch, getState) {
-    if (!getState().sandwiches.isShopOpen) {
-      // You don’t have to return Promises, but it’s a handy convention
-      // so the caller can always call .then() on async dispatch result.
-
-      return Promise.resolve()
-    }
-
-    // We can dispatch both plain object actions and other thunks,
-    // which lets us compose the asynchronous actions in a single flow.
-
-    return dispatch(makeASandwichWithSecretSauce('My Grandma'))
-      .then(() =>
-        Promise.all([
-          dispatch(makeASandwichWithSecretSauce('Me')),
-          dispatch(makeASandwichWithSecretSauce('My wife'))
-        ])
-      )
-      .then(() => dispatch(makeASandwichWithSecretSauce('Our kids')))
-      .then(() =>
-        dispatch(
-          getState().myMoney > 42
-            ? withdrawMoney(42)
-            : apologize('Me', 'The Sandwich Shop')
-        )
-      )
-  }
-}
-
-// This is very useful for server side rendering, because I can wait
-// until data is available, then synchronously render the app.
-
-store
-  .dispatch(makeSandwichesForEverybody())
-  .then(() =>
-    response.send(ReactDOMServer.renderToString(<MyApp store={store} />))
-  )
-
-// I can also dispatch a thunk async action from a component
-// any time its props change to load the missing data.
-
-import { connect } from 'react-redux'
-import { Component } from 'react'
-
-class SandwichShop extends Component {
-  componentDidMount() {
-    this.props.dispatch(makeASandwichWithSecretSauce(this.props.forPerson))
-  }
-
-  componentDidUpdate(prevProps) {
-    if (prevProps.forPerson !== this.props.forPerson) {
-      this.props.dispatch(makeASandwichWithSecretSauce(this.props.forPerson))
-    }
-  }
-
-  render() {
-    return <p>{this.props.sandwiches.join('mustard')}</p>
-  }
-}
-
-export default connect(state => ({
-  sandwiches: state.sandwiches
-}))(SandwichShop)
-```
-
-## License
-
-MIT
Index: de_modules/redux-thunk/dist/cjs/redux-thunk.cjs
===================================================================
--- node_modules/redux-thunk/dist/cjs/redux-thunk.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  thunk: () => thunk,
-  withExtraArgument: () => withExtraArgument
-});
-module.exports = __toCommonJS(src_exports);
-function createThunkMiddleware(extraArgument) {
-  const middleware = ({ dispatch, getState }) => (next) => (action) => {
-    if (typeof action === "function") {
-      return action(dispatch, getState, extraArgument);
-    }
-    return next(action);
-  };
-  return middleware;
-}
-var thunk = createThunkMiddleware();
-var withExtraArgument = createThunkMiddleware;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  thunk,
-  withExtraArgument
-});
Index: de_modules/redux-thunk/dist/redux-thunk.d.ts
===================================================================
--- node_modules/redux-thunk/dist/redux-thunk.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-import { Action, AnyAction, Middleware } from 'redux';
-
-/**
- * The dispatch method as modified by React-Thunk; overloaded so that you can
- * dispatch:
- *   - standard (object) actions: `dispatch()` returns the action itself
- *   - thunk actions: `dispatch()` returns the thunk's return value
- *
- * @template State The redux state
- * @template ExtraThunkArg The extra argument passed to the inner function of
- * thunks (if specified when setting up the Thunk middleware)
- * @template BasicAction The (non-thunk) actions that can be dispatched.
- */
-interface ThunkDispatch<State, ExtraThunkArg, BasicAction extends Action> {
-    /** Accepts a thunk function, runs it, and returns whatever the thunk itself returns */
-    <ReturnType>(thunkAction: ThunkAction<ReturnType, State, ExtraThunkArg, BasicAction>): ReturnType;
-    /** Accepts a standard action object, and returns that action object */
-    <Action extends BasicAction>(action: Action): Action;
-    /** A union of the other two overloads for TS inference purposes */
-    <ReturnType, Action extends BasicAction>(action: Action | ThunkAction<ReturnType, State, ExtraThunkArg, BasicAction>): Action | ReturnType;
-}
-/**
- * A "thunk" action (a callback function that can be dispatched to the Redux
- * store.)
- *
- * Also known as the "thunk inner function", when used with the typical pattern
- * of an action creator function that returns a thunk action.
- *
- * @template ReturnType The return type of the thunk's inner function
- * @template State The redux state
- * @template ExtraThunkArg Optional extra argument passed to the inner function
- * (if specified when setting up the Thunk middleware)
- * @template BasicAction The (non-thunk) actions that can be dispatched.
- */
-type ThunkAction<ReturnType, State, ExtraThunkArg, BasicAction extends Action> = (dispatch: ThunkDispatch<State, ExtraThunkArg, BasicAction>, getState: () => State, extraArgument: ExtraThunkArg) => ReturnType;
-/**
- * A generic type that takes a thunk action creator and returns a function
- * signature which matches how it would appear after being processed using
- * bindActionCreators(): a function that takes the arguments of the outer
- * function, and returns the return type of the inner "thunk" function.
- *
- * @template ActionCreator Thunk action creator to be wrapped
- */
-type ThunkActionDispatch<ActionCreator extends (...args: any[]) => ThunkAction<any, any, any, any>> = (...args: Parameters<ActionCreator>) => ReturnType<ReturnType<ActionCreator>>;
-/**
- * @template State The redux state
- * @template BasicAction The (non-thunk) actions that can be dispatched
- * @template ExtraThunkArg An optional extra argument to pass to a thunk's
- * inner function. (Only used if you call `withExtraArgument()`)
- */
-type ThunkMiddleware<State = any, BasicAction extends Action = AnyAction, ExtraThunkArg = undefined> = Middleware<ThunkDispatch<State, ExtraThunkArg, BasicAction>, State, ThunkDispatch<State, ExtraThunkArg, BasicAction>>;
-
-/** A function that accepts a potential "extra argument" value to be injected later,
- * and returns an instance of the thunk middleware that uses that value
- */
-declare function createThunkMiddleware<State = any, BasicAction extends Action = AnyAction, ExtraThunkArg = undefined>(extraArgument?: ExtraThunkArg): ThunkMiddleware<State, BasicAction, ExtraThunkArg>;
-declare const thunk: ThunkMiddleware<any, AnyAction, undefined>;
-declare const withExtraArgument: typeof createThunkMiddleware;
-
-export { ThunkAction, ThunkActionDispatch, ThunkDispatch, ThunkMiddleware, thunk, withExtraArgument };
Index: de_modules/redux-thunk/dist/redux-thunk.legacy-esm.js
===================================================================
--- node_modules/redux-thunk/dist/redux-thunk.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// src/index.ts
-function createThunkMiddleware(extraArgument) {
-  const middleware = ({ dispatch, getState }) => (next) => (action) => {
-    if (typeof action === "function") {
-      return action(dispatch, getState, extraArgument);
-    }
-    return next(action);
-  };
-  return middleware;
-}
-var thunk = createThunkMiddleware();
-var withExtraArgument = createThunkMiddleware;
-export {
-  thunk,
-  withExtraArgument
-};
Index: de_modules/redux-thunk/dist/redux-thunk.mjs
===================================================================
--- node_modules/redux-thunk/dist/redux-thunk.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// src/index.ts
-function createThunkMiddleware(extraArgument) {
-  const middleware = ({ dispatch, getState }) => (next) => (action) => {
-    if (typeof action === "function") {
-      return action(dispatch, getState, extraArgument);
-    }
-    return next(action);
-  };
-  return middleware;
-}
-var thunk = createThunkMiddleware();
-var withExtraArgument = createThunkMiddleware;
-export {
-  thunk,
-  withExtraArgument
-};
Index: de_modules/redux-thunk/package.json
===================================================================
--- node_modules/redux-thunk/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-{
-  "name": "redux-thunk",
-  "version": "3.1.0",
-  "license": "MIT",
-  "description": "Thunk middleware for Redux.",
-  "repository": "github:reduxjs/redux-thunk",
-  "bugs": "https://github.com/reduxjs/redux-thunk/issues",
-  "homepage": "https://github.com/reduxjs/redux-thunk",
-  "keywords": [
-    "redux",
-    "thunk",
-    "middleware",
-    "redux-middleware",
-    "flux"
-  ],
-  "author": "Dan Abramov <dan.abramov@me.com>",
-  "main": "dist/cjs/redux-thunk.cjs",
-  "module": "dist/redux-thunk.legacy-esm.js",
-  "types": "dist/redux-thunk.d.ts",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "types": "./dist/redux-thunk.d.ts",
-      "import": "./dist/redux-thunk.mjs",
-      "default": "./dist/cjs/redux-thunk.cjs"
-    }
-  },
-  "sideEffects": false,
-  "files": [
-    "dist",
-    "src",
-    "extend-redux.d.ts"
-  ],
-  "scripts": {
-    "clean": "rimraf lib dist es",
-    "prepublishOnly": "yarn clean && yarn lint && yarn test && yarn build",
-    "format": "prettier --write \"{src,test,typescript_test}/**/*.{js,ts}\"",
-    "format:check": "prettier --check \"{src,test,typescript_test}/**/*.{js,ts}\"",
-    "lint": "eslint \"{src,test,typescript_test}/**/*.{js,ts}\"",
-    "test": "vitest run",
-    "test:cov": "vitest run --coverage",
-    "test:typescript": "tsc --noEmit -p typescript_test/tsconfig.json",
-    "build": "tsup",
-    "prepack": "yarn build"
-  },
-  "peerDependencies": {
-    "redux": "^5.0.0"
-  },
-  "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "^5.1.0",
-    "@typescript-eslint/parser": "^5.1.0",
-    "cross-env": "^7.0.3",
-    "eslint": "^7.32.0",
-    "eslint-config-prettier": "^8.3.0",
-    "prettier": "^2.4.1",
-    "redux": "^5",
-    "rimraf": "^3.0.2",
-    "tsup": "7.0.0",
-    "typescript": "^5.0",
-    "vitest": "^0.32.0"
-  }
-}
Index: de_modules/redux-thunk/src/index.ts
===================================================================
--- node_modules/redux-thunk/src/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-import type { Action, AnyAction } from 'redux'
-
-import type { ThunkMiddleware } from './types'
-
-export type {
-  ThunkAction,
-  ThunkDispatch,
-  ThunkActionDispatch,
-  ThunkMiddleware
-} from './types'
-
-/** A function that accepts a potential "extra argument" value to be injected later,
- * and returns an instance of the thunk middleware that uses that value
- */
-function createThunkMiddleware<
-  State = any,
-  BasicAction extends Action = AnyAction,
-  ExtraThunkArg = undefined
->(extraArgument?: ExtraThunkArg) {
-  // Standard Redux middleware definition pattern:
-  // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware
-  const middleware: ThunkMiddleware<State, BasicAction, ExtraThunkArg> =
-    ({ dispatch, getState }) =>
-    next =>
-    action => {
-      // The thunk middleware looks for any functions that were passed to `store.dispatch`.
-      // If this "action" is really a function, call it and return the result.
-      if (typeof action === 'function') {
-        // Inject the store's `dispatch` and `getState` methods, as well as any "extra arg"
-        return action(dispatch, getState, extraArgument)
-      }
-
-      // Otherwise, pass the action down the middleware chain as usual
-      return next(action)
-    }
-  return middleware
-}
-
-export const thunk = createThunkMiddleware()
-
-// Export the factory function so users can create a customized version
-// with whatever "extra arg" they want to inject into their thunks
-export const withExtraArgument = createThunkMiddleware
Index: de_modules/redux-thunk/src/types.ts
===================================================================
--- node_modules/redux-thunk/src/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-import type { Action, AnyAction, Middleware } from 'redux'
-
-/**
- * The dispatch method as modified by React-Thunk; overloaded so that you can
- * dispatch:
- *   - standard (object) actions: `dispatch()` returns the action itself
- *   - thunk actions: `dispatch()` returns the thunk's return value
- *
- * @template State The redux state
- * @template ExtraThunkArg The extra argument passed to the inner function of
- * thunks (if specified when setting up the Thunk middleware)
- * @template BasicAction The (non-thunk) actions that can be dispatched.
- */
-export interface ThunkDispatch<
-  State,
-  ExtraThunkArg,
-  BasicAction extends Action
-> {
-  // When the thunk middleware is added, `store.dispatch` now has three overloads (NOTE: the order here matters for correct behavior and is very fragile - do not reorder these!):
-
-  // 1) The specific thunk function overload
-  /** Accepts a thunk function, runs it, and returns whatever the thunk itself returns */
-  <ReturnType>(
-    thunkAction: ThunkAction<ReturnType, State, ExtraThunkArg, BasicAction>
-  ): ReturnType
-
-  // 2) The base overload.
-  /** Accepts a standard action object, and returns that action object */
-  <Action extends BasicAction>(action: Action): Action
-
-  // 3) A union of the other two overloads. This overload exists to work around a problem
-  //   with TS inference ( see https://github.com/microsoft/TypeScript/issues/14107 )
-  /** A union of the other two overloads for TS inference purposes */
-  <ReturnType, Action extends BasicAction>(
-    action: Action | ThunkAction<ReturnType, State, ExtraThunkArg, BasicAction>
-  ): Action | ReturnType
-}
-
-/**
- * A "thunk" action (a callback function that can be dispatched to the Redux
- * store.)
- *
- * Also known as the "thunk inner function", when used with the typical pattern
- * of an action creator function that returns a thunk action.
- *
- * @template ReturnType The return type of the thunk's inner function
- * @template State The redux state
- * @template ExtraThunkArg Optional extra argument passed to the inner function
- * (if specified when setting up the Thunk middleware)
- * @template BasicAction The (non-thunk) actions that can be dispatched.
- */
-export type ThunkAction<
-  ReturnType,
-  State,
-  ExtraThunkArg,
-  BasicAction extends Action
-> = (
-  dispatch: ThunkDispatch<State, ExtraThunkArg, BasicAction>,
-  getState: () => State,
-  extraArgument: ExtraThunkArg
-) => ReturnType
-
-/**
- * A generic type that takes a thunk action creator and returns a function
- * signature which matches how it would appear after being processed using
- * bindActionCreators(): a function that takes the arguments of the outer
- * function, and returns the return type of the inner "thunk" function.
- *
- * @template ActionCreator Thunk action creator to be wrapped
- */
-export type ThunkActionDispatch<
-  ActionCreator extends (...args: any[]) => ThunkAction<any, any, any, any>
-> = (
-  ...args: Parameters<ActionCreator>
-) => ReturnType<ReturnType<ActionCreator>>
-
-/**
- * @template State The redux state
- * @template BasicAction The (non-thunk) actions that can be dispatched
- * @template ExtraThunkArg An optional extra argument to pass to a thunk's
- * inner function. (Only used if you call `withExtraArgument()`)
- */
-export type ThunkMiddleware<
-  State = any,
-  BasicAction extends Action = AnyAction,
-  ExtraThunkArg = undefined
-> = Middleware<
-  ThunkDispatch<State, ExtraThunkArg, BasicAction>,
-  State,
-  ThunkDispatch<State, ExtraThunkArg, BasicAction>
->
Index: de_modules/redux/LICENSE.md
===================================================================
--- node_modules/redux/LICENSE.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-present Dan Abramov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/redux/README.md
===================================================================
--- node_modules/redux/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,157 +1,0 @@
-# <a href='https://redux.js.org'><img src='https://camo.githubusercontent.com/f28b5bc7822f1b7bb28a96d8d09e7d79169248fc/687474703a2f2f692e696d6775722e636f6d2f4a65567164514d2e706e67' height='60' alt='Redux Logo' aria-label='redux.js.org' /></a>
-
-Redux is a predictable state container for JavaScript apps.
-
-It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as [live code editing combined with a time traveling debugger](https://github.com/reduxjs/redux-devtools).
-
-You can use Redux together with [React](https://react.dev), or with any other view library. The Redux core is tiny (2kB, including dependencies), and has a rich ecosystem of addons.
-
-[**Redux Toolkit**](https://redux-toolkit.js.org) is our official recommended approach for writing Redux logic. It wraps around the Redux core, and contains packages and functions that we think are essential for building a Redux app. Redux Toolkit builds in our suggested best practices, simplifies most Redux tasks, prevents common mistakes, and makes it easier to write Redux applications.
-
-![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reduxjs/redux/test.yaml?branch=master&event=push&style=flat-square)
-[![npm version](https://img.shields.io/npm/v/redux.svg?style=flat-square)](https://www.npmjs.com/package/redux)
-[![npm downloads](https://img.shields.io/npm/dm/redux.svg?style=flat-square)](https://www.npmjs.com/package/redux)
-[![redux channel on discord](https://img.shields.io/badge/discord-%23redux%20%40%20reactiflux-61dafb.svg?style=flat-square)](https://discord.gg/0ZcbPKXt5bZ6au5t)
-
-## Installation
-
-### Create a React Redux App
-
-The recommended way to start new apps with React and Redux Toolkit is by using [our official Redux Toolkit + TS template for Vite](https://github.com/reduxjs/redux-templates), or by creating a new Next.js project using [Next's `with-redux` template](https://github.com/vercel/next.js/tree/canary/examples/with-redux).
-
-Both of these already have Redux Toolkit and React-Redux configured appropriately for that build tool, and come with a small example app that demonstrates how to use several of Redux Toolkit's features.
-
-```bash
-# Vite with our Redux+TS template
-# (using the `degit` tool to clone and extract the template)
-npx degit reduxjs/redux-templates/packages/vite-template-redux my-app
-
-# Next.js using the `with-redux` template
-npx create-next-app --example with-redux my-app
-```
-
-We do not currently have official React Native templates, but recommend these templates for standard React Native and for Expo:
-
-- https://github.com/rahsheen/react-native-template-redux-typescript
-- https://github.com/rahsheen/expo-template-redux-typescript
-
-```
-npm install @reduxjs/toolkit react-redux
-```
-
-For the Redux core library by itself:
-
-```
-npm install redux
-```
-
-For more details, see [the Installation docs page](https://redux.js.org/introduction/installation).
-
-## Documentation
-
-The Redux core docs are located at **https://redux.js.org**, and include the full Redux tutorials, as well usage guides on general Redux patterns:
-
-- [Introduction](https://redux.js.org/introduction/getting-started)
-- [Tutorials](https://redux.js.org/tutorials/index)
-- [Usage Guides](https://redux.js.org/usage/index)
-- [FAQ](https://redux.js.org/faq)
-- [API Reference](https://redux.js.org/api/api-reference)
-
-The Redux Toolkit docs are available at **https://redux-toolkit.js.org**, including API references and usage guides for all of the APIs included in Redux Toolkit.
-
-## Learn Redux
-
-### Redux Essentials Tutorial
-
-The [**Redux Essentials tutorial**](https://redux.js.org/tutorials/essentials/part-1-overview-concepts) is a "top-down" tutorial that teaches "how to use Redux the right way", using our latest recommended APIs and best practices. We recommend starting there.
-
-### Redux Fundamentals Tutorial
-
-The [**Redux Fundamentals tutorial**](https://redux.js.org/tutorials/fundamentals/part-1-overview) is a "bottom-up" tutorial that teaches "how Redux works" from first principles and without any abstractions, and why standard Redux usage patterns exist.
-
-### Help and Discussion
-
-The **[#redux channel](https://discord.gg/0ZcbPKXt5bZ6au5t)** of the **[Reactiflux Discord community](https://www.reactiflux.com)** is our official resource for all questions related to learning and using Redux. Reactiflux is a great place to hang out, ask questions, and learn - please come and join us there!
-
-## Before Proceeding Further
-
-Redux is a valuable tool for organizing your state, but you should also consider whether it's appropriate for your situation. Please don't use Redux just because someone said you should - instead, please take some time to understand the potential benefits and tradeoffs of using it.
-
-Here are some suggestions on when it makes sense to use Redux:
-
-- You have reasonable amounts of data changing over time
-- You need a single source of truth for your state
-- You find that keeping all your state in a top-level component is no longer sufficient
-
-Yes, these guidelines are subjective and vague, but this is for a good reason. The point at which you should integrate Redux into your application is different for every user and different for every application.
-
-> **For more thoughts on how Redux is meant to be used, please see:**<br>
->
-> - **[When (and when not) to reach for Redux](https://changelog.com/posts/when-and-when-not-to-reach-for-redux)**
-> - **[You Might Not Need Redux](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)**<br>
-> - **[The Tao of Redux, Part 1 - Implementation and Intent](https://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-1/)**<br>
-> - **[The Tao of Redux, Part 2 - Practice and Philosophy](https://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-2/)**
-> - **[Redux FAQ](https://redux.js.org/faq)**
-
-## Basic Example
-
-The whole global state of your app is stored in an object tree inside a single _store_.
-The only way to change the state tree is to create an _action_, an object describing what happened, and _dispatch_ it to the store.
-To specify how state gets updated in response to an action, you write pure _reducer_ functions that calculate a new state based on the old state and the action.
-
-Redux Toolkit simplifies the process of writing Redux logic and setting up the store. With Redux Toolkit, the basic app logic looks like:
-
-```js
-import { createSlice, configureStore } from '@reduxjs/toolkit'
-
-const counterSlice = createSlice({
-  name: 'counter',
-  initialState: {
-    value: 0
-  },
-  reducers: {
-    incremented: state => {
-      // Redux Toolkit allows us to write "mutating" logic in reducers. It
-      // doesn't actually mutate the state because it uses the Immer library,
-      // which detects changes to a "draft state" and produces a brand new
-      // immutable state based off those changes
-      state.value += 1
-    },
-    decremented: state => {
-      state.value -= 1
-    }
-  }
-})
-
-export const { incremented, decremented } = counterSlice.actions
-
-const store = configureStore({
-  reducer: counterSlice.reducer
-})
-
-// Can still subscribe to the store
-store.subscribe(() => console.log(store.getState()))
-
-// Still pass action objects to `dispatch`, but they're created for us
-store.dispatch(incremented())
-// {value: 1}
-store.dispatch(incremented())
-// {value: 2}
-store.dispatch(decremented())
-// {value: 1}
-```
-
-Redux Toolkit allows us to write shorter logic that's easier to read, while still following the original core Redux behavior and data flow.
-
-## Logo
-
-You can find the official logo [on GitHub](https://github.com/reduxjs/redux/tree/master/logo).
-
-## Change Log
-
-This project adheres to [Semantic Versioning](https://semver.org/).
-Every release, along with the migration instructions, is documented on the GitHub [Releases](https://github.com/reduxjs/redux/releases) page.
-
-## License
-
-[MIT](LICENSE.md)
Index: de_modules/redux/dist/cjs/redux.cjs
===================================================================
--- node_modules/redux/dist/cjs/redux.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,432 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  __DO_NOT_USE__ActionTypes: () => actionTypes_default,
-  applyMiddleware: () => applyMiddleware,
-  bindActionCreators: () => bindActionCreators,
-  combineReducers: () => combineReducers,
-  compose: () => compose,
-  createStore: () => createStore,
-  isAction: () => isAction,
-  isPlainObject: () => isPlainObject,
-  legacy_createStore: () => legacy_createStore
-});
-module.exports = __toCommonJS(src_exports);
-
-// src/utils/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-
-// src/utils/symbol-observable.ts
-var $$observable = /* @__PURE__ */ (() => typeof Symbol === "function" && Symbol.observable || "@@observable")();
-var symbol_observable_default = $$observable;
-
-// src/utils/actionTypes.ts
-var randomString = () => Math.random().toString(36).substring(7).split("").join(".");
-var ActionTypes = {
-  INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,
-  REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,
-  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`
-};
-var actionTypes_default = ActionTypes;
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null)
-    return false;
-  let proto = obj;
-  while (Object.getPrototypeOf(proto) !== null) {
-    proto = Object.getPrototypeOf(proto);
-  }
-  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;
-}
-
-// src/utils/kindOf.ts
-function miniKindOf(val) {
-  if (val === void 0)
-    return "undefined";
-  if (val === null)
-    return "null";
-  const type = typeof val;
-  switch (type) {
-    case "boolean":
-    case "string":
-    case "number":
-    case "symbol":
-    case "function": {
-      return type;
-    }
-  }
-  if (Array.isArray(val))
-    return "array";
-  if (isDate(val))
-    return "date";
-  if (isError(val))
-    return "error";
-  const constructorName = ctorName(val);
-  switch (constructorName) {
-    case "Symbol":
-    case "Promise":
-    case "WeakMap":
-    case "WeakSet":
-    case "Map":
-    case "Set":
-      return constructorName;
-  }
-  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\s/g, "");
-}
-function ctorName(val) {
-  return typeof val.constructor === "function" ? val.constructor.name : null;
-}
-function isError(val) {
-  return val instanceof Error || typeof val.message === "string" && val.constructor && typeof val.constructor.stackTraceLimit === "number";
-}
-function isDate(val) {
-  if (val instanceof Date)
-    return true;
-  return typeof val.toDateString === "function" && typeof val.getDate === "function" && typeof val.setDate === "function";
-}
-function kindOf(val) {
-  let typeOfVal = typeof val;
-  if (process.env.NODE_ENV !== "production") {
-    typeOfVal = miniKindOf(val);
-  }
-  return typeOfVal;
-}
-
-// src/createStore.ts
-function createStore(reducer, preloadedState, enhancer) {
-  if (typeof reducer !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "function" || typeof enhancer === "function" && typeof arguments[3] === "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(0) : "It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.");
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "undefined") {
-    enhancer = preloadedState;
-    preloadedState = void 0;
-  }
-  if (typeof enhancer !== "undefined") {
-    if (typeof enhancer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);
-    }
-    return enhancer(createStore)(reducer, preloadedState);
-  }
-  let currentReducer = reducer;
-  let currentState = preloadedState;
-  let currentListeners = /* @__PURE__ */ new Map();
-  let nextListeners = currentListeners;
-  let listenerIdCounter = 0;
-  let isDispatching = false;
-  function ensureCanMutateNextListeners() {
-    if (nextListeners === currentListeners) {
-      nextListeners = /* @__PURE__ */ new Map();
-      currentListeners.forEach((listener, key) => {
-        nextListeners.set(key, listener);
-      });
-    }
-  }
-  function getState() {
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(3) : "You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");
-    }
-    return currentState;
-  }
-  function subscribe(listener) {
-    if (typeof listener !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(5) : "You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.");
-    }
-    let isSubscribed = true;
-    ensureCanMutateNextListeners();
-    const listenerId = listenerIdCounter++;
-    nextListeners.set(listenerId, listener);
-    return function unsubscribe() {
-      if (!isSubscribed) {
-        return;
-      }
-      if (isDispatching) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(6) : "You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.");
-      }
-      isSubscribed = false;
-      ensureCanMutateNextListeners();
-      nextListeners.delete(listenerId);
-      currentListeners = null;
-    };
-  }
-  function dispatch(action) {
-    if (!isPlainObject(action)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);
-    }
-    if (typeof action.type === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(8) : 'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');
-    }
-    if (typeof action.type !== "string") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(17) : `Action "type" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(9) : "Reducers may not dispatch actions.");
-    }
-    try {
-      isDispatching = true;
-      currentState = currentReducer(currentState, action);
-    } finally {
-      isDispatching = false;
-    }
-    const listeners = currentListeners = nextListeners;
-    listeners.forEach((listener) => {
-      listener();
-    });
-    return action;
-  }
-  function replaceReducer(nextReducer) {
-    if (typeof nextReducer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);
-    }
-    currentReducer = nextReducer;
-    dispatch({
-      type: actionTypes_default.REPLACE
-    });
-  }
-  function observable() {
-    const outerSubscribe = subscribe;
-    return {
-      /**
-       * The minimal observable subscription method.
-       * @param observer Any object that can be used as an observer.
-       * The observer object should have a `next` method.
-       * @returns An object with an `unsubscribe` method that can
-       * be used to unsubscribe the observable from the store, and prevent further
-       * emission of values from the observable.
-       */
-      subscribe(observer) {
-        if (typeof observer !== "object" || observer === null) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);
-        }
-        function observeState() {
-          const observerAsObserver = observer;
-          if (observerAsObserver.next) {
-            observerAsObserver.next(getState());
-          }
-        }
-        observeState();
-        const unsubscribe = outerSubscribe(observeState);
-        return {
-          unsubscribe
-        };
-      },
-      [symbol_observable_default]() {
-        return this;
-      }
-    };
-  }
-  dispatch({
-    type: actionTypes_default.INIT
-  });
-  const store = {
-    dispatch,
-    subscribe,
-    getState,
-    replaceReducer,
-    [symbol_observable_default]: observable
-  };
-  return store;
-}
-function legacy_createStore(reducer, preloadedState, enhancer) {
-  return createStore(reducer, preloadedState, enhancer);
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/combineReducers.ts
-function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
-  const reducerKeys = Object.keys(reducers);
-  const argumentName = action && action.type === actionTypes_default.INIT ? "preloadedState argument passed to createStore" : "previous state received by the reducer";
-  if (reducerKeys.length === 0) {
-    return "Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";
-  }
-  if (!isPlainObject(inputState)) {
-    return `The ${argumentName} has unexpected type of "${kindOf(inputState)}". Expected argument to be an object with the following keys: "${reducerKeys.join('", "')}"`;
-  }
-  const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);
-  unexpectedKeys.forEach((key) => {
-    unexpectedKeyCache[key] = true;
-  });
-  if (action && action.type === actionTypes_default.REPLACE)
-    return;
-  if (unexpectedKeys.length > 0) {
-    return `Unexpected ${unexpectedKeys.length > 1 ? "keys" : "key"} "${unexpectedKeys.join('", "')}" found in ${argumentName}. Expected to find one of the known reducer keys instead: "${reducerKeys.join('", "')}". Unexpected keys will be ignored.`;
-  }
-}
-function assertReducerShape(reducers) {
-  Object.keys(reducers).forEach((key) => {
-    const reducer = reducers[key];
-    const initialState = reducer(void 0, {
-      type: actionTypes_default.INIT
-    });
-    if (typeof initialState === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(12) : `The slice reducer for key "${key}" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-    }
-    if (typeof reducer(void 0, {
-      type: actionTypes_default.PROBE_UNKNOWN_ACTION()
-    }) === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(13) : `The slice reducer for key "${key}" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);
-    }
-  });
-}
-function combineReducers(reducers) {
-  const reducerKeys = Object.keys(reducers);
-  const finalReducers = {};
-  for (let i = 0; i < reducerKeys.length; i++) {
-    const key = reducerKeys[i];
-    if (process.env.NODE_ENV !== "production") {
-      if (typeof reducers[key] === "undefined") {
-        warning(`No reducer provided for key "${key}"`);
-      }
-    }
-    if (typeof reducers[key] === "function") {
-      finalReducers[key] = reducers[key];
-    }
-  }
-  const finalReducerKeys = Object.keys(finalReducers);
-  let unexpectedKeyCache;
-  if (process.env.NODE_ENV !== "production") {
-    unexpectedKeyCache = {};
-  }
-  let shapeAssertionError;
-  try {
-    assertReducerShape(finalReducers);
-  } catch (e) {
-    shapeAssertionError = e;
-  }
-  return function combination(state = {}, action) {
-    if (shapeAssertionError) {
-      throw shapeAssertionError;
-    }
-    if (process.env.NODE_ENV !== "production") {
-      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
-      if (warningMessage) {
-        warning(warningMessage);
-      }
-    }
-    let hasChanged = false;
-    const nextState = {};
-    for (let i = 0; i < finalReducerKeys.length; i++) {
-      const key = finalReducerKeys[i];
-      const reducer = finalReducers[key];
-      const previousStateForKey = state[key];
-      const nextStateForKey = reducer(previousStateForKey, action);
-      if (typeof nextStateForKey === "undefined") {
-        const actionType = action && action.type;
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `"${String(actionType)}"` : "(unknown type)"}, the slice reducer for key "${key}" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);
-      }
-      nextState[key] = nextStateForKey;
-      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
-    }
-    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
-    return hasChanged ? nextState : state;
-  };
-}
-
-// src/bindActionCreators.ts
-function bindActionCreator(actionCreator, dispatch) {
-  return function(...args) {
-    return dispatch(actionCreator.apply(this, args));
-  };
-}
-function bindActionCreators(actionCreators, dispatch) {
-  if (typeof actionCreators === "function") {
-    return bindActionCreator(actionCreators, dispatch);
-  }
-  if (typeof actionCreators !== "object" || actionCreators === null) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`);
-  }
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/compose.ts
-function compose(...funcs) {
-  if (funcs.length === 0) {
-    return (arg) => arg;
-  }
-  if (funcs.length === 1) {
-    return funcs[0];
-  }
-  return funcs.reduce((a, b) => (...args) => a(b(...args)));
-}
-
-// src/applyMiddleware.ts
-function applyMiddleware(...middlewares) {
-  return (createStore2) => (reducer, preloadedState) => {
-    const store = createStore2(reducer, preloadedState);
-    let dispatch = () => {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(15) : "Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.");
-    };
-    const middlewareAPI = {
-      getState: store.getState,
-      dispatch: (action, ...args) => dispatch(action, ...args)
-    };
-    const chain = middlewares.map((middleware) => middleware(middlewareAPI));
-    dispatch = compose(...chain)(store.dispatch);
-    return {
-      ...store,
-      dispatch
-    };
-  };
-}
-
-// src/utils/isAction.ts
-function isAction(action) {
-  return isPlainObject(action) && "type" in action && typeof action.type === "string";
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  __DO_NOT_USE__ActionTypes,
-  applyMiddleware,
-  bindActionCreators,
-  combineReducers,
-  compose,
-  createStore,
-  isAction,
-  isPlainObject,
-  legacy_createStore
-});
-//# sourceMappingURL=redux.cjs.map
Index: de_modules/redux/dist/cjs/redux.cjs.map
===================================================================
--- node_modules/redux/dist/cjs/redux.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/utils/formatProdErrorMessage.ts","../../src/utils/symbol-observable.ts","../../src/utils/actionTypes.ts","../../src/utils/isPlainObject.ts","../../src/utils/kindOf.ts","../../src/createStore.ts","../../src/utils/warning.ts","../../src/combineReducers.ts","../../src/bindActionCreators.ts","../../src/compose.ts","../../src/applyMiddleware.ts","../../src/utils/isAction.ts"],"sourcesContent":["// functions\nimport { createStore, legacy_createStore } from './createStore';\nimport combineReducers from './combineReducers';\nimport bindActionCreators from './bindActionCreators';\nimport applyMiddleware from './applyMiddleware';\nimport compose from './compose';\nimport isAction from './utils/isAction';\nimport isPlainObject from './utils/isPlainObject';\nimport __DO_NOT_USE__ActionTypes from './utils/actionTypes';\n\n// types\n// store\nexport { Dispatch, Unsubscribe, Observable, Observer, Store, StoreCreator, StoreEnhancer, StoreEnhancerStoreCreator } from './types/store';\n// reducers\nexport { Reducer, ReducersMapObject, StateFromReducersMapObject, ReducerFromReducersMapObject, ActionFromReducer, ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject } from './types/reducers';\n// action creators\nexport { ActionCreator, ActionCreatorsMapObject } from './types/actions';\n// middleware\nexport { MiddlewareAPI, Middleware } from './types/middleware';\n// actions\nexport { Action, UnknownAction, AnyAction } from './types/actions';\nexport { createStore, legacy_createStore, combineReducers, bindActionCreators, applyMiddleware, compose, isAction, isPlainObject, __DO_NOT_USE__ActionTypes };","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n  interface SymbolConstructor {\n    readonly observable: symbol;\n  }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n  INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n  REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n  if (typeof obj !== 'object' || obj === null) return false;\n  let proto = obj;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nexport function miniKindOf(val: any): string {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n  const type = typeof val;\n  switch (type) {\n    case 'boolean':\n    case 'string':\n    case 'number':\n    case 'symbol':\n    case 'function':\n      {\n        return type;\n      }\n  }\n  if (Array.isArray(val)) return 'array';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  const constructorName = ctorName(val);\n  switch (constructorName) {\n    case 'Symbol':\n    case 'Promise':\n    case 'WeakMap':\n    case 'WeakSet':\n    case 'Map':\n    case 'Set':\n      return constructorName;\n  }\n\n  // other\n  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\nfunction ctorName(val: any): string | null {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\nfunction isError(val: any) {\n  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\nfunction isDate(val: any) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\nexport function kindOf(val: any) {\n  let typeOfVal: string = typeof val;\n  if (process.env.NODE_ENV !== 'production') {\n    typeOfVal = miniKindOf(val);\n  }\n  return typeOfVal;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = (preloadedState as StoreEnhancer<Ext, StateExt>);\n    preloadedState = undefined;\n  }\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n    }\n    return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n  }\n  let currentReducer = reducer;\n  let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n  let currentListeners: Map<number, ListenerCallback> | null = new Map();\n  let nextListeners = currentListeners;\n  let listenerIdCounter = 0;\n  let isDispatching = false;\n\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = new Map();\n      currentListeners.forEach((listener, key) => {\n        nextListeners.set(key, listener);\n      });\n    }\n  }\n\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns The current state tree of your application.\n   */\n  function getState(): S {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n    return (currentState as S);\n  }\n\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param listener A callback to be invoked on every dispatch.\n   * @returns A function to remove this change listener.\n   */\n  function subscribe(listener: () => void) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n    let isSubscribed = true;\n    ensureCanMutateNextListeners();\n    const listenerId = listenerIdCounter++;\n    nextListeners.set(listenerId, listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      nextListeners.delete(listenerId);\n      currentListeners = null;\n    };\n  }\n\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n  function dispatch(action: A) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n    }\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n    if (typeof action.type !== 'string') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n    }\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n    const listeners = currentListeners = nextListeners;\n    listeners.forEach(listener => {\n      listener();\n    });\n    return action;\n  }\n\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param nextReducer The reducer for the store to use instead.\n   */\n  function replaceReducer(nextReducer: Reducer<S, A>): void {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n    }\n    currentReducer = ((nextReducer as unknown) as Reducer<S, A, PreloadedState>);\n\n    // This action has a similar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n    dispatch(({\n      type: ActionTypes.REPLACE\n    } as A));\n  }\n\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n  function observable() {\n    const outerSubscribe = subscribe;\n    return {\n      /**\n       * The minimal observable subscription method.\n       * @param observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe(observer: unknown) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n        }\n        function observeState() {\n          const observerAsObserver = (observer as Observer<S>);\n          if (observerAsObserver.next) {\n            observerAsObserver.next(getState());\n          }\n        }\n        observeState();\n        const unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe\n        };\n      },\n      [$$observable]() {\n        return this;\n      }\n    };\n  }\n\n  // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n  dispatch(({\n    type: ActionTypes.INIT\n  } as A));\n  const store = (({\n    dispatch: (dispatch as Dispatch<A>),\n    subscribe,\n    getState,\n    replaceReducer,\n    [$$observable]: observable\n  } as unknown) as Store<S, A, StateExt> & Ext);\n  return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  return createStore(reducer, (preloadedState as any), enhancer);\n}","/**\n * Prints a warning in the console if it exists.\n *\n * @param message The warning message.\n */\nexport default function warning(message: string): void {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n  [key: string]: Reducer<any, any, any>;\n}, action: Action, unexpectedKeyCache: {\n  [key: string]: true;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n  if (!isPlainObject(inputState)) {\n    return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n  }\n  const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n  unexpectedKeys.forEach(key => {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n  if (unexpectedKeys.length > 0) {\n    return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n  }\n}\nfunction assertReducerShape(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  Object.keys(reducers).forEach(key => {\n    const reducer = reducers[key];\n    const initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n    }\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n    }\n  });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n *   functions that need to be combined into one. One handy way to obtain it\n *   is to use `import * as reducers` syntax. The reducers may never\n *   return undefined for any action. Instead, they should return their\n *   initial state if the state passed to them was undefined, and the current\n *   state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n *   object, and builds a state object with the same shape.\n */\nexport default function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;\nexport default function combineReducers(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const finalReducers: {\n    [key: string]: Reducer<any, any, any>;\n  } = {};\n  for (let i = 0; i < reducerKeys.length; i++) {\n    const key = reducerKeys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(`No reducer provided for key \"${key}\"`);\n      }\n    }\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n  const finalReducerKeys = Object.keys(finalReducers);\n\n  // This is used to make sure we don't warn about the same\n  // keys multiple times.\n  let unexpectedKeyCache: {\n    [key: string]: true;\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n  let shapeAssertionError: unknown;\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n  return function combination(state: StateFromReducersMapObject<typeof reducers> = {}, action: Action) {\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n    let hasChanged = false;\n    const nextState: StateFromReducersMapObject<typeof reducers> = {};\n    for (let i = 0; i < finalReducerKeys.length; i++) {\n      const key = finalReducerKeys[i];\n      const reducer = finalReducers[key];\n      const previousStateForKey = state[key];\n      const nextStateForKey = reducer(previousStateForKey, action);\n      if (typeof nextStateForKey === 'undefined') {\n        const actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n      }\n      nextState[key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Dispatch } from './types/store';\nimport { ActionCreator, ActionCreatorsMapObject, Action } from './types/actions';\nimport { kindOf } from './utils/kindOf';\nfunction bindActionCreator<A extends Action>(actionCreator: ActionCreator<A>, dispatch: Dispatch<A>) {\n  return function (this: any, ...args: any[]) {\n    return dispatch(actionCreator.apply(this, args));\n  };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use `import * as`\n * syntax. You may also pass a single function.\n *\n * @param dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators<A, C extends ActionCreator<A>>(actionCreator: C, dispatch: Dispatch): C;\nexport default function bindActionCreators<A extends ActionCreator<any>, B extends ActionCreator<any>>(actionCreator: A, dispatch: Dispatch): B;\nexport default function bindActionCreators<A, M extends ActionCreatorsMapObject<A>>(actionCreators: M, dispatch: Dispatch): M;\nexport default function bindActionCreators<M extends ActionCreatorsMapObject, N extends ActionCreatorsMapObject>(actionCreators: M, dispatch: Dispatch): N;\nexport default function bindActionCreators(actionCreators: ActionCreator<any> | ActionCreatorsMapObject, dispatch: Dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. ` + `Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n  }\n  const boundActionCreators: ActionCreatorsMapObject = {};\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key];\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n  return boundActionCreators;\n}","type Func<T extends any[], R> = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n *   to left. For example, `compose(f, g, h)` is identical to doing\n *   `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): <R>(a: R) => R;\nexport default function compose<F extends Function>(f: F): F;\n\n/* two functions */\nexport default function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;\n\n/* three functions */\nexport default function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;\n\n/* four functions */\nexport default function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;\n\n/* rest */\nexport default function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose<R>(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n  if (funcs.length === 0) {\n    // infer the argument type so it is usable in inference down the line\n    return <T,>(arg: T) => arg;\n  }\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n  return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{\n  dispatch: Ext1;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{\n  dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<any> {\n  return createStore => (reducer, preloadedState) => {\n    const store = createStore(reducer, preloadedState);\n    let dispatch: Dispatch = () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n    };\n    const middlewareAPI: MiddlewareAPI = {\n      getState: store.getState,\n      dispatch: (action, ...args) => dispatch(action, ...args)\n    };\n    const chain = middlewares.map(middleware => middleware(middlewareAPI));\n    dispatch = compose<typeof dispatch>(...chain)(store.dispatch);\n    return {\n      ...store,\n      dispatch\n    };\n  };\n}","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action<string> {\n  return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOO,SAAS,uBAAuB,MAAc;AACnD,SAAO,yBAAyB,IAAI,4CAA4C,IAAI;AACtF;;;ACJA,IAAM,eAA+B,uBAAM,OAAO,WAAW,cAAc,OAAO,cAAc,gBAAgB;AAChH,IAAO,4BAAQ;;;ACCf,IAAM,eAAe,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG;AACrF,IAAM,cAAc;AAAA,EAClB,MAAM,eAA8B,6BAAa,CAAC;AAAA,EAClD,SAAS,kBAAiC,6BAAa,CAAC;AAAA,EACxD,sBAAsB,MAAM,+BAA+B,aAAa,CAAC;AAC3E;AACA,IAAO,sBAAQ;;;ACTA,SAAR,cAA+B,KAAyB;AAC7D,MAAI,OAAO,QAAQ,YAAY,QAAQ;AAAM,WAAO;AACpD,MAAI,QAAQ;AACZ,SAAO,OAAO,eAAe,KAAK,MAAM,MAAM;AAC5C,YAAQ,OAAO,eAAe,KAAK;AAAA,EACrC;AACA,SAAO,OAAO,eAAe,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,MAAM;AAChF;;;ACVO,SAAS,WAAW,KAAkB;AAC3C,MAAI,QAAQ;AAAQ,WAAO;AAC3B,MAAI,QAAQ;AAAM,WAAO;AACzB,QAAM,OAAO,OAAO;AACpB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YACH;AACE,aAAO;AAAA,IACT;AAAA,EACJ;AACA,MAAI,MAAM,QAAQ,GAAG;AAAG,WAAO;AAC/B,MAAI,OAAO,GAAG;AAAG,WAAO;AACxB,MAAI,QAAQ,GAAG;AAAG,WAAO;AACzB,QAAM,kBAAkB,SAAS,GAAG;AACpC,UAAQ,iBAAiB;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,EACX;AAGA,SAAO,OAAO,UAAU,SAAS,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,OAAO,EAAE;AACzF;AACA,SAAS,SAAS,KAAyB;AACzC,SAAO,OAAO,IAAI,gBAAgB,aAAa,IAAI,YAAY,OAAO;AACxE;AACA,SAAS,QAAQ,KAAU;AACzB,SAAO,eAAe,SAAS,OAAO,IAAI,YAAY,YAAY,IAAI,eAAe,OAAO,IAAI,YAAY,oBAAoB;AAClI;AACA,SAAS,OAAO,KAAU;AACxB,MAAI,eAAe;AAAM,WAAO;AAChC,SAAO,OAAO,IAAI,iBAAiB,cAAc,OAAO,IAAI,YAAY,cAAc,OAAO,IAAI,YAAY;AAC/G;AACO,SAAS,OAAO,KAAU;AAC/B,MAAI,YAAoB,OAAO;AAC/B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAY,WAAW,GAAG;AAAA,EAC5B;AACA,SAAO;AACT;;;ACyBO,SAAS,YAAoG,SAAwC,gBAA4E,UAA4F;AAClU,MAAI,OAAO,YAAY,YAAY;AACjC,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,mEAAmE,OAAO,OAAO,CAAC,GAAG;AAAA,EAC5K;AACA,MAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,cAAc,OAAO,aAAa,cAAc,OAAO,UAAU,CAAC,MAAM,YAAY;AAClJ,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,kQAA4Q;AAAA,EACpW;AACA,MAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,aAAa;AAC3E,eAAY;AACZ,qBAAiB;AAAA,EACnB;AACA,MAAI,OAAO,aAAa,aAAa;AACnC,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D,OAAO,QAAQ,CAAC,GAAG;AAAA,IAC1K;AACA,WAAO,SAAS,WAAW,EAAE,SAAU,cAA6C;AAAA,EACtF;AACA,MAAI,iBAAiB;AACrB,MAAI,eAAgD;AACpD,MAAI,mBAAyD,oBAAI,IAAI;AACrE,MAAI,gBAAgB;AACpB,MAAI,oBAAoB;AACxB,MAAI,gBAAgB;AASpB,WAAS,+BAA+B;AACtC,QAAI,kBAAkB,kBAAkB;AACtC,sBAAgB,oBAAI,IAAI;AACxB,uBAAiB,QAAQ,CAAC,UAAU,QAAQ;AAC1C,sBAAc,IAAI,KAAK,QAAQ;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAOA,WAAS,WAAc;AACrB,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sMAAgN;AAAA,IACxS;AACA,WAAQ;AAAA,EACV;AAyBA,WAAS,UAAU,UAAsB;AACvC,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D,OAAO,QAAQ,CAAC,GAAG;AAAA,IAC1K;AACA,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,iTAAgU;AAAA,IACxZ;AACA,QAAI,eAAe;AACnB,iCAA6B;AAC7B,UAAM,aAAa;AACnB,kBAAc,IAAI,YAAY,QAAQ;AACtC,WAAO,SAAS,cAAc;AAC5B,UAAI,CAAC,cAAc;AACjB;AAAA,MACF;AACA,UAAI,eAAe;AACjB,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sJAA2J;AAAA,MACnP;AACA,qBAAe;AACf,mCAA6B;AAC7B,oBAAc,OAAO,UAAU;AAC/B,yBAAmB;AAAA,IACrB;AAAA,EACF;AA2BA,WAAS,SAAS,QAAW;AAC3B,QAAI,CAAC,cAAc,MAAM,GAAG;AAC1B,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,iEAAiE,OAAO,MAAM,CAAC,4UAA4U;AAAA,IACnf;AACA,QAAI,OAAO,OAAO,SAAS,aAAa;AACtC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,4GAA4G;AAAA,IACpM;AACA,QAAI,OAAO,OAAO,SAAS,UAAU;AACnC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,2EAA2E,OAAO,OAAO,IAAI,CAAC,kBAAkB,OAAO,IAAI,iBAAiB;AAAA,IACtO;AACA,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,CAAC,IAAI,oCAAoC;AAAA,IAC7H;AACA,QAAI;AACF,sBAAgB;AAChB,qBAAe,eAAe,cAAc,MAAM;AAAA,IACpD,UAAE;AACA,sBAAgB;AAAA,IAClB;AACA,UAAM,YAAY,mBAAmB;AACrC,cAAU,QAAQ,cAAY;AAC5B,eAAS;AAAA,IACX,CAAC;AACD,WAAO;AAAA,EACT;AAWA,WAAS,eAAe,aAAkC;AACxD,QAAI,OAAO,gBAAgB,YAAY;AACrC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,kEAAkE,OAAO,WAAW,CAAC,EAAE;AAAA,IACjL;AACA,qBAAmB;AAMnB,aAAU;AAAA,MACR,MAAM,oBAAY;AAAA,IACpB,CAAO;AAAA,EACT;AAQA,WAAS,aAAa;AACpB,UAAM,iBAAiB;AACvB,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASL,UAAU,UAAmB;AAC3B,YAAI,OAAO,aAAa,YAAY,aAAa,MAAM;AACrD,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,8DAA8D,OAAO,QAAQ,CAAC,GAAG;AAAA,QAC3K;AACA,iBAAS,eAAe;AACtB,gBAAM,qBAAsB;AAC5B,cAAI,mBAAmB,MAAM;AAC3B,+BAAmB,KAAK,SAAS,CAAC;AAAA,UACpC;AAAA,QACF;AACA,qBAAa;AACb,cAAM,cAAc,eAAe,YAAY;AAC/C,eAAO;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MACA,CAAC,yBAAY,IAAI;AACf,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAKA,WAAU;AAAA,IACR,MAAM,oBAAY;AAAA,EACpB,CAAO;AACP,QAAM,QAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,CAAC,yBAAY,GAAG;AAAA,EAClB;AACA,SAAO;AACT;AAgEO,SAAS,mBAA2G,SAAwB,gBAA4E,UAA4F;AACzT,SAAO,YAAY,SAAU,gBAAwB,QAAQ;AAC/D;;;AC1We,SAAR,QAAyB,SAAuB;AAErD,MAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACzE,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,MAAI;AAIF,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB,SAAS,GAAG;AAAA,EAAC;AACf;;;ACRA,SAAS,sCAAsC,YAAoB,UAEhE,QAAgB,oBAEhB;AACD,QAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,QAAM,eAAe,UAAU,OAAO,SAAS,oBAAY,OAAO,kDAAkD;AACpH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,CAAC,cAAc,UAAU,GAAG;AAC9B,WAAO,OAAO,YAAY,4BAA4B,OAAO,UAAU,CAAC,kEAAuE,YAAY,KAAK,MAAM,CAAC;AAAA,EACzK;AACA,QAAM,iBAAiB,OAAO,KAAK,UAAU,EAAE,OAAO,SAAO,CAAC,SAAS,eAAe,GAAG,KAAK,CAAC,mBAAmB,GAAG,CAAC;AACtH,iBAAe,QAAQ,SAAO;AAC5B,uBAAmB,GAAG,IAAI;AAAA,EAC5B,CAAC;AACD,MAAI,UAAU,OAAO,SAAS,oBAAY;AAAS;AACnD,MAAI,eAAe,SAAS,GAAG;AAC7B,WAAO,cAAc,eAAe,SAAS,IAAI,SAAS,KAAK,KAAU,eAAe,KAAK,MAAM,CAAC,cAAc,YAAY,8DAAwE,YAAY,KAAK,MAAM,CAAC;AAAA,EAChO;AACF;AACA,SAAS,mBAAmB,UAEzB;AACD,SAAO,KAAK,QAAQ,EAAE,QAAQ,SAAO;AACnC,UAAM,UAAU,SAAS,GAAG;AAC5B,UAAM,eAAe,QAAQ,QAAW;AAAA,MACtC,MAAM,oBAAY;AAAA,IACpB,CAAC;AACD,QAAI,OAAO,iBAAiB,aAAa;AACvC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,8BAA8B,GAAG,8QAAkS;AAAA,IAC3Z;AACA,QAAI,OAAO,QAAQ,QAAW;AAAA,MAC5B,MAAM,oBAAY,qBAAqB;AAAA,IACzC,CAAC,MAAM,aAAa;AAClB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8BAA8B,GAAG,6EAAkF,oBAAY,IAAI,8SAAkU;AAAA,IAC9hB;AAAA,EACF,CAAC;AACH;AAqBe,SAAR,gBAAiC,UAErC;AACD,QAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,QAAM,gBAEF,CAAC;AACL,WAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,UAAM,MAAM,YAAY,CAAC;AACzB,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,OAAO,SAAS,GAAG,MAAM,aAAa;AACxC,gBAAQ,gCAAgC,GAAG,GAAG;AAAA,MAChD;AAAA,IACF;AACA,QAAI,OAAO,SAAS,GAAG,MAAM,YAAY;AACvC,oBAAc,GAAG,IAAI,SAAS,GAAG;AAAA,IACnC;AAAA,EACF;AACA,QAAM,mBAAmB,OAAO,KAAK,aAAa;AAIlD,MAAI;AAGJ,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,yBAAqB,CAAC;AAAA,EACxB;AACA,MAAI;AACJ,MAAI;AACF,uBAAmB,aAAa;AAAA,EAClC,SAAS,GAAG;AACV,0BAAsB;AAAA,EACxB;AACA,SAAO,SAAS,YAAY,QAAqD,CAAC,GAAG,QAAgB;AACnG,QAAI,qBAAqB;AACvB,YAAM;AAAA,IACR;AACA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAM,iBAAiB,sCAAsC,OAAO,eAAe,QAAQ,kBAAkB;AAC7G,UAAI,gBAAgB;AAClB,gBAAQ,cAAc;AAAA,MACxB;AAAA,IACF;AACA,QAAI,aAAa;AACjB,UAAM,YAAyD,CAAC;AAChE,aAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;AAChD,YAAM,MAAM,iBAAiB,CAAC;AAC9B,YAAM,UAAU,cAAc,GAAG;AACjC,YAAM,sBAAsB,MAAM,GAAG;AACrC,YAAM,kBAAkB,QAAQ,qBAAqB,MAAM;AAC3D,UAAI,OAAO,oBAAoB,aAAa;AAC1C,cAAM,aAAa,UAAU,OAAO;AACpC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,sCAAsC,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,gBAAgB,gCAAgC,GAAG,gLAA0L;AAAA,MACrZ;AACA,gBAAU,GAAG,IAAI;AACjB,mBAAa,cAAc,oBAAoB;AAAA,IACjD;AACA,iBAAa,cAAc,iBAAiB,WAAW,OAAO,KAAK,KAAK,EAAE;AAC1E,WAAO,aAAa,YAAY;AAAA,EAClC;AACF;;;AC9HA,SAAS,kBAAoC,eAAiC,UAAuB;AACnG,SAAO,YAAwB,MAAa;AAC1C,WAAO,SAAS,cAAc,MAAM,MAAM,IAAI,CAAC;AAAA,EACjD;AACF;AA2Be,SAAR,mBAAoC,gBAA8D,UAAoB;AAC3H,MAAI,OAAO,mBAAmB,YAAY;AACxC,WAAO,kBAAkB,gBAAgB,QAAQ;AAAA,EACnD;AACA,MAAI,OAAO,mBAAmB,YAAY,mBAAmB,MAAM;AACjE,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,+EAA+E,OAAO,cAAc,CAAC,6FAAkG;AAAA,EAC/R;AACA,QAAM,sBAA+C,CAAC;AACtD,aAAW,OAAO,gBAAgB;AAChC,UAAM,gBAAgB,eAAe,GAAG;AACxC,QAAI,OAAO,kBAAkB,YAAY;AACvC,0BAAoB,GAAG,IAAI,kBAAkB,eAAe,QAAQ;AAAA,IACtE;AAAA,EACF;AACA,SAAO;AACT;;;ACvBe,SAAR,WAA4B,OAAmB;AACpD,MAAI,MAAM,WAAW,GAAG;AAEtB,WAAO,CAAK,QAAW;AAAA,EACzB;AACA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO,MAAM,CAAC;AAAA,EAChB;AACA,SAAO,MAAM,OAAO,CAAC,GAAG,MAAM,IAAI,SAAc,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/D;;;ACOe,SAAR,mBAAoC,aAA+C;AACxF,SAAO,CAAAA,iBAAe,CAAC,SAAS,mBAAmB;AACjD,UAAM,QAAQA,aAAY,SAAS,cAAc;AACjD,QAAI,WAAqB,MAAM;AAC7B,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,wHAA6H;AAAA,IACrN;AACA,UAAM,gBAA+B;AAAA,MACnC,UAAU,MAAM;AAAA,MAChB,UAAU,CAAC,WAAW,SAAS,SAAS,QAAQ,GAAG,IAAI;AAAA,IACzD;AACA,UAAM,QAAQ,YAAY,IAAI,gBAAc,WAAW,aAAa,CAAC;AACrE,eAAW,QAAyB,GAAG,KAAK,EAAE,MAAM,QAAQ;AAC5D,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;;;AC1De,SAAR,SAA0B,QAA2C;AAC1E,SAAO,cAAc,MAAM,KAAK,UAAU,UAAU,OAAQ,OAAmC,SAAS;AAC1G;","names":["createStore"]}
Index: de_modules/redux/dist/redux.browser.mjs
===================================================================
--- node_modules/redux/dist/redux.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-function t(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var C=typeof Symbol=="function"&&Symbol.observable||"@@observable",A=C;var M=()=>Math.random().toString(36).substring(7).split("").join("."),I={INIT:`@@redux/INIT${M()}`,REPLACE:`@@redux/REPLACE${M()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${M()}`},y=I;function x(e){if(typeof e!="object"||e===null)return!1;let r=e;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(e)===r||Object.getPrototypeOf(e)===null}function O(e,r,o){if(typeof e!="function")throw new Error(t(2));if(typeof r=="function"&&typeof o=="function"||typeof o=="function"&&typeof arguments[3]=="function")throw new Error(t(0));if(typeof r=="function"&&typeof o>"u"&&(o=r,r=void 0),typeof o<"u"){if(typeof o!="function")throw new Error(t(1));return o(O)(e,r)}let i=e,c=r,d=new Map,a=d,u=0,s=!1;function f(){a===d&&(a=new Map,d.forEach((n,p)=>{a.set(p,n)}))}function h(){if(s)throw new Error(t(3));return c}function l(n){if(typeof n!="function")throw new Error(t(4));if(s)throw new Error(t(5));let p=!0;f();let E=u++;return a.set(E,n),function(){if(p){if(s)throw new Error(t(6));p=!1,f(),a.delete(E),d=null}}}function m(n){if(!x(n))throw new Error(t(7));if(typeof n.type>"u")throw new Error(t(8));if(typeof n.type!="string")throw new Error(t(17));if(s)throw new Error(t(9));try{s=!0,c=i(c,n)}finally{s=!1}return(d=a).forEach(E=>{E()}),n}function g(n){if(typeof n!="function")throw new Error(t(10));i=n,m({type:y.REPLACE})}function S(){let n=l;return{subscribe(p){if(typeof p!="object"||p===null)throw new Error(t(11));function E(){let P=p;P.next&&P.next(h())}return E(),{unsubscribe:n(E)}},[A](){return this}}}return m({type:y.INIT}),{dispatch:m,subscribe:l,getState:h,replaceReducer:g,[A]:S}}function T(e,r,o){return O(e,r,o)}function D(e){Object.keys(e).forEach(r=>{let o=e[r];if(typeof o(void 0,{type:y.INIT})>"u")throw new Error(t(12));if(typeof o(void 0,{type:y.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(t(13))})}function N(e){let r=Object.keys(e),o={};for(let a=0;a<r.length;a++){let u=r[a];typeof e[u]=="function"&&(o[u]=e[u])}let i=Object.keys(o),c,d;try{D(o)}catch(a){d=a}return function(u={},s){if(d)throw d;let f=!1,h={};for(let l=0;l<i.length;l++){let m=i[l],g=o[m],S=u[m],w=g(S,s);if(typeof w>"u"){let n=s&&s.type;throw new Error(t(14))}h[m]=w,f=f||w!==S}return f=f||i.length!==Object.keys(u).length,f?h:u}}function R(e,r){return function(...o){return r(e.apply(this,o))}}function k(e,r){if(typeof e=="function")return R(e,r);if(typeof e!="object"||e===null)throw new Error(t(16));let o={};for(let i in e){let c=e[i];typeof c=="function"&&(o[i]=R(c,r))}return o}function b(...e){return e.length===0?r=>r:e.length===1?e[0]:e.reduce((r,o)=>(...i)=>r(o(...i)))}function v(...e){return r=>(o,i)=>{let c=r(o,i),d=()=>{throw new Error(t(15))},a={getState:c.getState,dispatch:(s,...f)=>d(s,...f)},u=e.map(s=>s(a));return d=b(...u)(c.dispatch),{...c,dispatch:d}}}function _(e){return x(e)&&"type"in e&&typeof e.type=="string"}export{y as __DO_NOT_USE__ActionTypes,v as applyMiddleware,k as bindActionCreators,N as combineReducers,b as compose,O as createStore,_ as isAction,x as isPlainObject,T as legacy_createStore};
-//# sourceMappingURL=redux.browser.mjs.map
Index: de_modules/redux/dist/redux.browser.mjs.map
===================================================================
--- node_modules/redux/dist/redux.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/formatProdErrorMessage.ts","../src/utils/symbol-observable.ts","../src/utils/actionTypes.ts","../src/utils/isPlainObject.ts","../src/createStore.ts","../src/combineReducers.ts","../src/bindActionCreators.ts","../src/compose.ts","../src/applyMiddleware.ts","../src/utils/isAction.ts"],"sourcesContent":["/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n  interface SymbolConstructor {\n    readonly observable: symbol;\n  }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n  INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n  REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n  if (typeof obj !== 'object' || obj === null) return false;\n  let proto = obj;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = (preloadedState as StoreEnhancer<Ext, StateExt>);\n    preloadedState = undefined;\n  }\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n    }\n    return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n  }\n  let currentReducer = reducer;\n  let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n  let currentListeners: Map<number, ListenerCallback> | null = new Map();\n  let nextListeners = currentListeners;\n  let listenerIdCounter = 0;\n  let isDispatching = false;\n\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = new Map();\n      currentListeners.forEach((listener, key) => {\n        nextListeners.set(key, listener);\n      });\n    }\n  }\n\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns The current state tree of your application.\n   */\n  function getState(): S {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n    return (currentState as S);\n  }\n\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param listener A callback to be invoked on every dispatch.\n   * @returns A function to remove this change listener.\n   */\n  function subscribe(listener: () => void) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n    let isSubscribed = true;\n    ensureCanMutateNextListeners();\n    const listenerId = listenerIdCounter++;\n    nextListeners.set(listenerId, listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      nextListeners.delete(listenerId);\n      currentListeners = null;\n    };\n  }\n\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n  function dispatch(action: A) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n    }\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n    if (typeof action.type !== 'string') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n    }\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n    const listeners = currentListeners = nextListeners;\n    listeners.forEach(listener => {\n      listener();\n    });\n    return action;\n  }\n\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param nextReducer The reducer for the store to use instead.\n   */\n  function replaceReducer(nextReducer: Reducer<S, A>): void {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n    }\n    currentReducer = ((nextReducer as unknown) as Reducer<S, A, PreloadedState>);\n\n    // This action has a similar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n    dispatch(({\n      type: ActionTypes.REPLACE\n    } as A));\n  }\n\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n  function observable() {\n    const outerSubscribe = subscribe;\n    return {\n      /**\n       * The minimal observable subscription method.\n       * @param observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe(observer: unknown) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n        }\n        function observeState() {\n          const observerAsObserver = (observer as Observer<S>);\n          if (observerAsObserver.next) {\n            observerAsObserver.next(getState());\n          }\n        }\n        observeState();\n        const unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe\n        };\n      },\n      [$$observable]() {\n        return this;\n      }\n    };\n  }\n\n  // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n  dispatch(({\n    type: ActionTypes.INIT\n  } as A));\n  const store = (({\n    dispatch: (dispatch as Dispatch<A>),\n    subscribe,\n    getState,\n    replaceReducer,\n    [$$observable]: observable\n  } as unknown) as Store<S, A, StateExt> & Ext);\n  return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  return createStore(reducer, (preloadedState as any), enhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n  [key: string]: Reducer<any, any, any>;\n}, action: Action, unexpectedKeyCache: {\n  [key: string]: true;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n  if (!isPlainObject(inputState)) {\n    return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n  }\n  const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n  unexpectedKeys.forEach(key => {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n  if (unexpectedKeys.length > 0) {\n    return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n  }\n}\nfunction assertReducerShape(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  Object.keys(reducers).forEach(key => {\n    const reducer = reducers[key];\n    const initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n    }\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n    }\n  });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n *   functions that need to be combined into one. One handy way to obtain it\n *   is to use `import * as reducers` syntax. The reducers may never\n *   return undefined for any action. Instead, they should return their\n *   initial state if the state passed to them was undefined, and the current\n *   state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n *   object, and builds a state object with the same shape.\n */\nexport default function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;\nexport default function combineReducers(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const finalReducers: {\n    [key: string]: Reducer<any, any, any>;\n  } = {};\n  for (let i = 0; i < reducerKeys.length; i++) {\n    const key = reducerKeys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(`No reducer provided for key \"${key}\"`);\n      }\n    }\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n  const finalReducerKeys = Object.keys(finalReducers);\n\n  // This is used to make sure we don't warn about the same\n  // keys multiple times.\n  let unexpectedKeyCache: {\n    [key: string]: true;\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n  let shapeAssertionError: unknown;\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n  return function combination(state: StateFromReducersMapObject<typeof reducers> = {}, action: Action) {\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n    let hasChanged = false;\n    const nextState: StateFromReducersMapObject<typeof reducers> = {};\n    for (let i = 0; i < finalReducerKeys.length; i++) {\n      const key = finalReducerKeys[i];\n      const reducer = finalReducers[key];\n      const previousStateForKey = state[key];\n      const nextStateForKey = reducer(previousStateForKey, action);\n      if (typeof nextStateForKey === 'undefined') {\n        const actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n      }\n      nextState[key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Dispatch } from './types/store';\nimport { ActionCreator, ActionCreatorsMapObject, Action } from './types/actions';\nimport { kindOf } from './utils/kindOf';\nfunction bindActionCreator<A extends Action>(actionCreator: ActionCreator<A>, dispatch: Dispatch<A>) {\n  return function (this: any, ...args: any[]) {\n    return dispatch(actionCreator.apply(this, args));\n  };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use `import * as`\n * syntax. You may also pass a single function.\n *\n * @param dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators<A, C extends ActionCreator<A>>(actionCreator: C, dispatch: Dispatch): C;\nexport default function bindActionCreators<A extends ActionCreator<any>, B extends ActionCreator<any>>(actionCreator: A, dispatch: Dispatch): B;\nexport default function bindActionCreators<A, M extends ActionCreatorsMapObject<A>>(actionCreators: M, dispatch: Dispatch): M;\nexport default function bindActionCreators<M extends ActionCreatorsMapObject, N extends ActionCreatorsMapObject>(actionCreators: M, dispatch: Dispatch): N;\nexport default function bindActionCreators(actionCreators: ActionCreator<any> | ActionCreatorsMapObject, dispatch: Dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. ` + `Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n  }\n  const boundActionCreators: ActionCreatorsMapObject = {};\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key];\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n  return boundActionCreators;\n}","type Func<T extends any[], R> = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n *   to left. For example, `compose(f, g, h)` is identical to doing\n *   `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): <R>(a: R) => R;\nexport default function compose<F extends Function>(f: F): F;\n\n/* two functions */\nexport default function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;\n\n/* three functions */\nexport default function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;\n\n/* four functions */\nexport default function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;\n\n/* rest */\nexport default function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose<R>(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n  if (funcs.length === 0) {\n    // infer the argument type so it is usable in inference down the line\n    return <T,>(arg: T) => arg;\n  }\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n  return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{\n  dispatch: Ext1;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{\n  dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<any> {\n  return createStore => (reducer, preloadedState) => {\n    const store = createStore(reducer, preloadedState);\n    let dispatch: Dispatch = () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n    };\n    const middlewareAPI: MiddlewareAPI = {\n      getState: store.getState,\n      dispatch: (action, ...args) => dispatch(action, ...args)\n    };\n    const chain = middlewares.map(middleware => middleware(middlewareAPI));\n    dispatch = compose<typeof dispatch>(...chain)(store.dispatch);\n    return {\n      ...store,\n      dispatch\n    };\n  };\n}","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action<string> {\n  return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}"],"mappings":"AAOO,SAASA,EAAuBC,EAAc,CACnD,MAAO,yBAAyBA,CAAI,4CAA4CA,CAAI,iFACtF,CCJA,IAAMC,EAAqC,OAAO,QAAW,YAAc,OAAO,YAAc,eACzFC,EAAQD,ECCf,IAAME,EAAe,IAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAC/EC,EAAc,CAClB,KAAM,eAA8BD,EAAa,CAAC,GAClD,QAAS,kBAAiCA,EAAa,CAAC,GACxD,qBAAsB,IAAM,+BAA+BA,EAAa,CAAC,EAC3E,EACOE,EAAQD,ECTA,SAARE,EAA+BC,EAAyB,CAC7D,GAAI,OAAOA,GAAQ,UAAYA,IAAQ,KAAM,MAAO,GACpD,IAAIC,EAAQD,EACZ,KAAO,OAAO,eAAeC,CAAK,IAAM,MACtCA,EAAQ,OAAO,eAAeA,CAAK,EAErC,OAAO,OAAO,eAAeD,CAAG,IAAMC,GAAS,OAAO,eAAeD,CAAG,IAAM,IAChF,CC8DO,SAASE,EAAoGC,EAAwCC,EAA4EC,EAA4F,CAClU,GAAI,OAAOF,GAAY,WACrB,MAAM,IAAI,MAA8CG,EAAwB,CAAC,CAAyF,EAE5K,GAAI,OAAOF,GAAmB,YAAc,OAAOC,GAAa,YAAc,OAAOA,GAAa,YAAc,OAAO,UAAU,CAAC,GAAM,WACtI,MAAM,IAAI,MAA8CC,EAAyB,CAAC,CAAgR,EAMpW,GAJI,OAAOF,GAAmB,YAAc,OAAOC,EAAa,MAC9DA,EAAYD,EACZA,EAAiB,QAEf,OAAOC,EAAa,IAAa,CACnC,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,MAA8CC,EAAyB,CAAC,CAAsF,EAE1K,OAAOD,EAASH,CAAW,EAAEC,EAAUC,CAA6C,CACtF,CACA,IAAIG,EAAiBJ,EACjBK,EAAgDJ,EAChDK,EAAyD,IAAI,IAC7DC,EAAgBD,EAChBE,EAAoB,EACpBC,EAAgB,GASpB,SAASC,GAA+B,CAClCH,IAAkBD,IACpBC,EAAgB,IAAI,IACpBD,EAAiB,QAAQ,CAACK,EAAUC,IAAQ,CAC1CL,EAAc,IAAIK,EAAKD,CAAQ,CACjC,CAAC,EAEL,CAOA,SAASE,GAAc,CACrB,GAAIJ,EACF,MAAM,IAAI,MAA8CN,EAAyB,CAAC,CAAoN,EAExS,OAAQE,CACV,CAyBA,SAASS,EAAUH,EAAsB,CACvC,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,MAA8CR,EAAyB,CAAC,CAAsF,EAE1K,GAAIM,EACF,MAAM,IAAI,MAA8CN,EAAyB,CAAC,CAAoU,EAExZ,IAAIY,EAAe,GACnBL,EAA6B,EAC7B,IAAMM,EAAaR,IACnB,OAAAD,EAAc,IAAIS,EAAYL,CAAQ,EAC/B,UAAuB,CAC5B,GAAKI,EAGL,IAAIN,EACF,MAAM,IAAI,MAA8CN,EAAyB,CAAC,CAA+J,EAEnPY,EAAe,GACfL,EAA6B,EAC7BH,EAAc,OAAOS,CAAU,EAC/BV,EAAmB,KACrB,CACF,CA2BA,SAASW,EAASC,EAAW,CAC3B,GAAI,CAACC,EAAcD,CAAM,EACvB,MAAM,IAAI,MAA8Cf,EAAyB,CAAC,CAA+Z,EAEnf,GAAI,OAAOe,EAAO,KAAS,IACzB,MAAM,IAAI,MAA8Cf,EAAyB,CAAC,CAAgH,EAEpM,GAAI,OAAOe,EAAO,MAAS,SACzB,MAAM,IAAI,MAA8Cf,EAA0B,EAAE,CAAgJ,EAEtO,GAAIM,EACF,MAAM,IAAI,MAA8CN,EAA0B,CAAC,CAAwC,EAE7H,GAAI,CACFM,EAAgB,GAChBJ,EAAeD,EAAeC,EAAca,CAAM,CACpD,QAAE,CACAT,EAAgB,EAClB,CAEA,OADkBH,EAAmBC,GAC3B,QAAQI,GAAY,CAC5BA,EAAS,CACX,CAAC,EACMO,CACT,CAWA,SAASE,EAAeC,EAAkC,CACxD,GAAI,OAAOA,GAAgB,WACzB,MAAM,IAAI,MAA8ClB,EAA0B,EAAE,CAA2F,EAEjLC,EAAmBiB,EAMnBJ,EAAU,CACR,KAAMK,EAAY,OACpB,CAAO,CACT,CAQA,SAASC,GAAa,CACpB,IAAMC,EAAiBV,EACvB,MAAO,CASL,UAAUW,EAAmB,CAC3B,GAAI,OAAOA,GAAa,UAAYA,IAAa,KAC/C,MAAM,IAAI,MAA8CtB,EAA0B,EAAE,CAAqF,EAE3K,SAASuB,GAAe,CACtB,IAAMC,EAAsBF,EACxBE,EAAmB,MACrBA,EAAmB,KAAKd,EAAS,CAAC,CAEtC,CACA,OAAAa,EAAa,EAEN,CACL,YAFkBF,EAAeE,CAAY,CAG/C,CACF,EACA,CAACE,CAAY,GAAI,CACf,OAAO,IACT,CACF,CACF,CAKA,OAAAX,EAAU,CACR,KAAMK,EAAY,IACpB,CAAO,EACS,CACd,SAAWL,EACX,UAAAH,EACA,SAAAD,EACA,eAAAO,EACA,CAACQ,CAAY,EAAGL,CAClB,CAEF,CAgEO,SAASM,EAA2G7B,EAAwBC,EAA4EC,EAA4F,CACzT,OAAOH,EAAYC,EAAUC,EAAwBC,CAAQ,CAC/D,CChVA,SAAS4B,EAAmBC,EAEzB,CACD,OAAO,KAAKA,CAAQ,EAAE,QAAQC,GAAO,CACnC,IAAMC,EAAUF,EAASC,CAAG,EAI5B,GAAI,OAHiBC,EAAQ,OAAW,CACtC,KAAMC,EAAY,IACpB,CAAC,EAC2B,IAC1B,MAAM,IAAI,MAA8CC,EAAwB,EAAE,CAAuU,EAE3Z,GAAI,OAAOF,EAAQ,OAAW,CAC5B,KAAMC,EAAY,qBAAqB,CACzC,CAAC,EAAM,IACL,MAAM,IAAI,MAA8CC,EAAyB,EAAE,CAAyc,CAEhiB,CAAC,CACH,CAqBe,SAARC,EAAiCL,EAErC,CACD,IAAMM,EAAc,OAAO,KAAKN,CAAQ,EAClCO,EAEF,CAAC,EACL,QAASC,EAAI,EAAGA,EAAIF,EAAY,OAAQE,IAAK,CAC3C,IAAMP,EAAMK,EAAYE,CAAC,EAMrB,OAAOR,EAASC,CAAG,GAAM,aAC3BM,EAAcN,CAAG,EAAID,EAASC,CAAG,EAErC,CACA,IAAMQ,EAAmB,OAAO,KAAKF,CAAa,EAI9CG,EAMAC,EACJ,GAAI,CACFZ,EAAmBQ,CAAa,CAClC,OAASK,EAAG,CACVD,EAAsBC,CACxB,CACA,OAAO,SAAqBC,EAAqD,CAAC,EAAGC,EAAgB,CACnG,GAAIH,EACF,MAAMA,EAQR,IAAII,EAAa,GACXC,EAAyD,CAAC,EAChE,QAASR,EAAI,EAAGA,EAAIC,EAAiB,OAAQD,IAAK,CAChD,IAAMP,EAAMQ,EAAiBD,CAAC,EACxBN,EAAUK,EAAcN,CAAG,EAC3BgB,EAAsBJ,EAAMZ,CAAG,EAC/BiB,EAAkBhB,EAAQe,EAAqBH,CAAM,EAC3D,GAAI,OAAOI,EAAoB,IAAa,CAC1C,IAAMC,EAAaL,GAAUA,EAAO,KACpC,MAAM,IAAI,MAA8CV,EAAyB,EAAE,CAAgU,CACrZ,CACAY,EAAUf,CAAG,EAAIiB,EACjBH,EAAaA,GAAcG,IAAoBD,CACjD,CACA,OAAAF,EAAaA,GAAcN,EAAiB,SAAW,OAAO,KAAKI,CAAK,EAAE,OACnEE,EAAaC,EAAYH,CAClC,CACF,CC9HA,SAASO,EAAoCC,EAAiCC,EAAuB,CACnG,OAAO,YAAwBC,EAAa,CAC1C,OAAOD,EAASD,EAAc,MAAM,KAAME,CAAI,CAAC,CACjD,CACF,CA2Be,SAARC,EAAoCC,EAA8DH,EAAoB,CAC3H,GAAI,OAAOG,GAAmB,WAC5B,OAAOL,EAAkBK,EAAgBH,CAAQ,EAEnD,GAAI,OAAOG,GAAmB,UAAYA,IAAmB,KAC3D,MAAM,IAAI,MAA8CC,EAAwB,EAAE,CAA2M,EAE/R,IAAMC,EAA+C,CAAC,EACtD,QAAWC,KAAOH,EAAgB,CAChC,IAAMJ,EAAgBI,EAAeG,CAAG,EACpC,OAAOP,GAAkB,aAC3BM,EAAoBC,CAAG,EAAIR,EAAkBC,EAAeC,CAAQ,EAExE,CACA,OAAOK,CACT,CCvBe,SAARE,KAA4BC,EAAmB,CACpD,OAAIA,EAAM,SAAW,EAEPC,GAAWA,EAErBD,EAAM,SAAW,EACZA,EAAM,CAAC,EAETA,EAAM,OAAO,CAACE,EAAGC,IAAM,IAAIC,IAAcF,EAAEC,EAAE,GAAGC,CAAI,CAAC,CAAC,CAC/D,CCOe,SAARC,KAAoCC,EAA+C,CACxF,OAAOC,GAAe,CAACC,EAASC,IAAmB,CACjD,IAAMC,EAAQH,EAAYC,EAASC,CAAc,EAC7CE,EAAqB,IAAM,CAC7B,MAAM,IAAI,MAA8CC,EAAwB,EAAE,CAAiI,CACrN,EACMC,EAA+B,CACnC,SAAUH,EAAM,SAChB,SAAU,CAACI,KAAWC,IAASJ,EAASG,EAAQ,GAAGC,CAAI,CACzD,EACMC,EAAQV,EAAY,IAAIW,GAAcA,EAAWJ,CAAa,CAAC,EACrE,OAAAF,EAAWO,EAAyB,GAAGF,CAAK,EAAEN,EAAM,QAAQ,EACrD,CACL,GAAGA,EACH,SAAAC,CACF,CACF,CACF,CC1De,SAARQ,EAA0BC,EAA2C,CAC1E,OAAOC,EAAcD,CAAM,GAAK,SAAUA,GAAU,OAAQA,EAAmC,MAAS,QAC1G","names":["formatProdErrorMessage","code","$$observable","symbol_observable_default","randomString","ActionTypes","actionTypes_default","isPlainObject","obj","proto","createStore","reducer","preloadedState","enhancer","formatProdErrorMessage","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","listener","key","getState","subscribe","isSubscribed","listenerId","dispatch","action","isPlainObject","replaceReducer","nextReducer","actionTypes_default","observable","outerSubscribe","observer","observeState","observerAsObserver","symbol_observable_default","legacy_createStore","assertReducerShape","reducers","key","reducer","actionTypes_default","formatProdErrorMessage","combineReducers","reducerKeys","finalReducers","i","finalReducerKeys","unexpectedKeyCache","shapeAssertionError","e","state","action","hasChanged","nextState","previousStateForKey","nextStateForKey","actionType","bindActionCreator","actionCreator","dispatch","args","bindActionCreators","actionCreators","formatProdErrorMessage","boundActionCreators","key","compose","funcs","arg","a","b","args","applyMiddleware","middlewares","createStore","reducer","preloadedState","store","dispatch","formatProdErrorMessage","middlewareAPI","action","args","chain","middleware","compose","isAction","action","isPlainObject"]}
Index: de_modules/redux/dist/redux.d.ts
===================================================================
--- node_modules/redux/dist/redux.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,588 +1,0 @@
-/**
- * An *action* is a plain object that represents an intention to change the
- * state. Actions are the only way to get data into the store. Any data,
- * whether from UI events, network callbacks, or other sources such as
- * WebSockets needs to eventually be dispatched as actions.
- *
- * Actions must have a `type` field that indicates the type of action being
- * performed. Types can be defined as constants and imported from another
- * module. These must be strings, as strings are serializable.
- *
- * Other than `type`, the structure of an action object is really up to you.
- * If you're interested, check out Flux Standard Action for recommendations on
- * how actions should be constructed.
- *
- * @template T the type of the action's `type` tag.
- */
-type Action<T extends string = string> = {
-    type: T;
-};
-/**
- * An Action type which accepts any other properties.
- * This is mainly for the use of the `Reducer` type.
- * This is not part of `Action` itself to prevent types that extend `Action` from
- * having an index signature.
- */
-interface UnknownAction extends Action {
-    [extraProps: string]: unknown;
-}
-/**
- * An Action type which accepts any other properties.
- * This is mainly for the use of the `Reducer` type.
- * This is not part of `Action` itself to prevent types that extend `Action` from
- * having an index signature.
- * @deprecated use Action or UnknownAction instead
- */
-interface AnyAction extends Action {
-    [extraProps: string]: any;
-}
-/**
- * An *action creator* is, quite simply, a function that creates an action. Do
- * not confuse the two terms—again, an action is a payload of information, and
- * an action creator is a factory that creates an action.
- *
- * Calling an action creator only produces an action, but does not dispatch
- * it. You need to call the store's `dispatch` function to actually cause the
- * mutation. Sometimes we say *bound action creators* to mean functions that
- * call an action creator and immediately dispatch its result to a specific
- * store instance.
- *
- * If an action creator needs to read the current state, perform an API call,
- * or cause a side effect, like a routing transition, it should return an
- * async action instead of an action.
- *
- * @template A Returned action type.
- */
-interface ActionCreator<A, P extends any[] = any[]> {
-    (...args: P): A;
-}
-/**
- * Object whose values are action creator functions.
- */
-interface ActionCreatorsMapObject<A = any, P extends any[] = any[]> {
-    [key: string]: ActionCreator<A, P>;
-}
-
-/**
- * A *reducer* is a function that accepts
- * an accumulation and a value and returns a new accumulation. They are used
- * to reduce a collection of values down to a single value
- *
- * Reducers are not unique to Redux—they are a fundamental concept in
- * functional programming.  Even most non-functional languages, like
- * JavaScript, have a built-in API for reducing. In JavaScript, it's
- * `Array.prototype.reduce()`.
- *
- * In Redux, the accumulated value is the state object, and the values being
- * accumulated are actions. Reducers calculate a new state given the previous
- * state and an action. They must be *pure functions*—functions that return
- * the exact same output for given inputs. They should also be free of
- * side-effects. This is what enables exciting features like hot reloading and
- * time travel.
- *
- * Reducers are the most important concept in Redux.
- *
- * *Do not put API calls into reducers.*
- *
- * @template S The type of state consumed and produced by this reducer.
- * @template A The type of actions the reducer can potentially respond to.
- * @template PreloadedState The type of state consumed by this reducer the first time it's called.
- */
-type Reducer<S = any, A extends Action = UnknownAction, PreloadedState = S> = (state: S | PreloadedState | undefined, action: A) => S;
-/**
- * Object whose values correspond to different reducer functions.
- *
- * @template S The combined state of the reducers.
- * @template A The type of actions the reducers can potentially respond to.
- * @template PreloadedState The combined preloaded state of the reducers.
- */
-type ReducersMapObject<S = any, A extends Action = UnknownAction, PreloadedState = S> = keyof PreloadedState extends keyof S ? {
-    [K in keyof S]: Reducer<S[K], A, K extends keyof PreloadedState ? PreloadedState[K] : never>;
-} : never;
-/**
- * Infer a combined state shape from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-type StateFromReducersMapObject<M> = M[keyof M] extends Reducer<any, any, any> | undefined ? {
-    [P in keyof M]: M[P] extends Reducer<infer S, any, any> ? S : never;
-} : never;
-/**
- * Infer reducer union type from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-type ReducerFromReducersMapObject<M> = M[keyof M] extends Reducer<any, any, any> | undefined ? M[keyof M] : never;
-/**
- * Infer action type from a reducer function.
- *
- * @template R Type of reducer.
- */
-type ActionFromReducer<R> = R extends Reducer<any, infer A, any> ? A : never;
-/**
- * Infer action union type from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-type ActionFromReducersMapObject<M> = ActionFromReducer<ReducerFromReducersMapObject<M>>;
-/**
- * Infer a combined preloaded state shape from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-type PreloadedStateShapeFromReducersMapObject<M> = M[keyof M] extends Reducer<any, any, any> | undefined ? {
-    [P in keyof M]: M[P] extends (inputState: infer InputState, action: UnknownAction) => any ? InputState : never;
-} : never;
-
-/**
- * A *dispatching function* (or simply *dispatch function*) is a function that
- * accepts an action or an async action; it then may or may not dispatch one
- * or more actions to the store.
- *
- * We must distinguish between dispatching functions in general and the base
- * `dispatch` function provided by the store instance without any middleware.
- *
- * The base dispatch function *always* synchronously sends an action to the
- * store's reducer, along with the previous state returned by the store, to
- * calculate a new state. It expects actions to be plain objects ready to be
- * consumed by the reducer.
- *
- * Middleware wraps the base dispatch function. It allows the dispatch
- * function to handle async actions in addition to actions. Middleware may
- * transform, delay, ignore, or otherwise interpret actions or async actions
- * before passing them to the next middleware.
- *
- * @template A The type of things (actions or otherwise) which may be
- *   dispatched.
- */
-interface Dispatch<A extends Action = UnknownAction> {
-    <T extends A>(action: T, ...extraArgs: any[]): T;
-}
-/**
- * Function to remove listener added by `Store.subscribe()`.
- */
-interface Unsubscribe {
-    (): void;
-}
-type ListenerCallback = () => void;
-declare global {
-    interface SymbolConstructor {
-        readonly observable: symbol;
-    }
-}
-/**
- * A minimal observable of state changes.
- * For more information, see the observable proposal:
- * https://github.com/tc39/proposal-observable
- */
-type Observable<T> = {
-    /**
-     * The minimal observable subscription method.
-     * @param {Object} observer Any object that can be used as an observer.
-     * The observer object should have a `next` method.
-     * @returns {subscription} An object with an `unsubscribe` method that can
-     * be used to unsubscribe the observable from the store, and prevent further
-     * emission of values from the observable.
-     */
-    subscribe: (observer: Observer<T>) => {
-        unsubscribe: Unsubscribe;
-    };
-    [Symbol.observable](): Observable<T>;
-};
-/**
- * An Observer is used to receive data from an Observable, and is supplied as
- * an argument to subscribe.
- */
-type Observer<T> = {
-    next?(value: T): void;
-};
-/**
- * A store is an object that holds the application's state tree.
- * There should only be a single store in a Redux app, as the composition
- * happens on the reducer level.
- *
- * @template S The type of state held by this store.
- * @template A the type of actions which may be dispatched by this store.
- * @template StateExt any extension to state from store enhancers
- */
-interface Store<S = any, A extends Action = UnknownAction, StateExt extends unknown = unknown> {
-    /**
-     * Dispatches an action. It is the only way to trigger a state change.
-     *
-     * The `reducer` function, used to create the store, will be called with the
-     * current state tree and the given `action`. Its return value will be
-     * considered the **next** state of the tree, and the change listeners will
-     * be notified.
-     *
-     * The base implementation only supports plain object actions. If you want
-     * to dispatch a Promise, an Observable, a thunk, or something else, you
-     * need to wrap your store creating function into the corresponding
-     * middleware. For example, see the documentation for the `redux-thunk`
-     * package. Even the middleware will eventually dispatch plain object
-     * actions using this method.
-     *
-     * @param action A plain object representing “what changed”. It is a good
-     *   idea to keep actions serializable so you can record and replay user
-     *   sessions, or use the time travelling `redux-devtools`. An action must
-     *   have a `type` property which may not be `undefined`. It is a good idea
-     *   to use string constants for action types.
-     *
-     * @returns For convenience, the same action object you dispatched.
-     *
-     * Note that, if you use a custom middleware, it may wrap `dispatch()` to
-     * return something else (for example, a Promise you can await).
-     */
-    dispatch: Dispatch<A>;
-    /**
-     * Reads the state tree managed by the store.
-     *
-     * @returns The current state tree of your application.
-     */
-    getState(): S & StateExt;
-    /**
-     * Adds a change listener. It will be called any time an action is
-     * dispatched, and some part of the state tree may potentially have changed.
-     * You may then call `getState()` to read the current state tree inside the
-     * callback.
-     *
-     * You may call `dispatch()` from a change listener, with the following
-     * caveats:
-     *
-     * 1. The subscriptions are snapshotted just before every `dispatch()` call.
-     * If you subscribe or unsubscribe while the listeners are being invoked,
-     * this will not have any effect on the `dispatch()` that is currently in
-     * progress. However, the next `dispatch()` call, whether nested or not,
-     * will use a more recent snapshot of the subscription list.
-     *
-     * 2. The listener should not expect to see all states changes, as the state
-     * might have been updated multiple times during a nested `dispatch()` before
-     * the listener is called. It is, however, guaranteed that all subscribers
-     * registered before the `dispatch()` started will be called with the latest
-     * state by the time it exits.
-     *
-     * @param listener A callback to be invoked on every dispatch.
-     * @returns A function to remove this change listener.
-     */
-    subscribe(listener: ListenerCallback): Unsubscribe;
-    /**
-     * Replaces the reducer currently used by the store to calculate the state.
-     *
-     * You might need this if your app implements code splitting and you want to
-     * load some of the reducers dynamically. You might also need this if you
-     * implement a hot reloading mechanism for Redux.
-     *
-     * @param nextReducer The reducer for the store to use instead.
-     */
-    replaceReducer(nextReducer: Reducer<S, A>): void;
-    /**
-     * Interoperability point for observable/reactive libraries.
-     * @returns {observable} A minimal observable of state changes.
-     * For more information, see the observable proposal:
-     * https://github.com/tc39/proposal-observable
-     */
-    [Symbol.observable](): Observable<S & StateExt>;
-}
-type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;
-/**
- * A store creator is a function that creates a Redux store. Like with
- * dispatching function, we must distinguish the base store creator,
- * `createStore(reducer, preloadedState)` exported from the Redux package, from
- * store creators that are returned from the store enhancers.
- *
- * @template S The type of state to be held by the store.
- * @template A The type of actions which may be dispatched.
- * @template PreloadedState The initial state that is passed into the reducer.
- * @template Ext Store extension that is mixed in to the Store type.
- * @template StateExt State extension that is mixed into the state type.
- */
-interface StoreCreator {
-    <S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-    <S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-}
-/**
- * A store enhancer is a higher-order function that composes a store creator
- * to return a new, enhanced store creator. This is similar to middleware in
- * that it allows you to alter the store interface in a composable way.
- *
- * Store enhancers are much the same concept as higher-order components in
- * React, which are also occasionally called “component enhancers”.
- *
- * Because a store is not an instance, but rather a plain-object collection of
- * functions, copies can be easily created and modified without mutating the
- * original store. There is an example in `compose` documentation
- * demonstrating that.
- *
- * Most likely you'll never write a store enhancer, but you may use the one
- * provided by the developer tools. It is what makes time travel possible
- * without the app being aware it is happening. Amusingly, the Redux
- * middleware implementation is itself a store enhancer.
- *
- * @template Ext Store extension that is mixed into the Store type.
- * @template StateExt State extension that is mixed into the state type.
- */
-type StoreEnhancer<Ext extends {} = {}, StateExt extends {} = {}> = <NextExt extends {}, NextStateExt extends {}>(next: StoreEnhancerStoreCreator<NextExt, NextStateExt>) => StoreEnhancerStoreCreator<NextExt & Ext, NextStateExt & StateExt>;
-type StoreEnhancerStoreCreator<Ext extends {} = {}, StateExt extends {} = {}> = <S, A extends Action, PreloadedState>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined) => Store<S, A, StateExt> & Ext;
-
-/**
- * @deprecated
- *
- * **We recommend using the `configureStore` method
- * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
- *
- * Redux Toolkit is our recommended approach for writing Redux logic today,
- * including store setup, reducers, data fetching, and more.
- *
- * **For more details, please read this Redux docs page:**
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * `configureStore` from Redux Toolkit is an improved version of `createStore` that
- * simplifies setup and helps avoid common bugs.
- *
- * You should not be using the `redux` core package by itself today, except for learning purposes.
- * The `createStore` method from the core `redux` package will not be removed, but we encourage
- * all users to migrate to using Redux Toolkit for all Redux code.
- *
- * If you want to use `createStore` without this visual deprecation warning, use
- * the `legacy_createStore` import instead:
- *
- * `import { legacy_createStore as createStore} from 'redux'`
- *
- */
-declare function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-/**
- * @deprecated
- *
- * **We recommend using the `configureStore` method
- * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
- *
- * Redux Toolkit is our recommended approach for writing Redux logic today,
- * including store setup, reducers, data fetching, and more.
- *
- * **For more details, please read this Redux docs page:**
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * `configureStore` from Redux Toolkit is an improved version of `createStore` that
- * simplifies setup and helps avoid common bugs.
- *
- * You should not be using the `redux` core package by itself today, except for learning purposes.
- * The `createStore` method from the core `redux` package will not be removed, but we encourage
- * all users to migrate to using Redux Toolkit for all Redux code.
- *
- * If you want to use `createStore` without this visual deprecation warning, use
- * the `legacy_createStore` import instead:
- *
- * `import { legacy_createStore as createStore} from 'redux'`
- *
- */
-declare function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-/**
- * Creates a Redux store that holds the state tree.
- *
- * **We recommend using `configureStore` from the
- * `@reduxjs/toolkit` package**, which replaces `createStore`:
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * The only way to change the data in the store is to call `dispatch()` on it.
- *
- * There should only be a single store in your app. To specify how different
- * parts of the state tree respond to actions, you may combine several reducers
- * into a single reducer function by using `combineReducers`.
- *
- * @param {Function} reducer A function that returns the next state tree, given
- * the current state tree and the action to handle.
- *
- * @param {any} [preloadedState] The initial state. You may optionally specify it
- * to hydrate the state from the server in universal apps, or to restore a
- * previously serialized user session.
- * If you use `combineReducers` to produce the root reducer function, this must be
- * an object with the same shape as `combineReducers` keys.
- *
- * @param {Function} [enhancer] The store enhancer. You may optionally specify it
- * to enhance the store with third-party capabilities such as middleware,
- * time travel, persistence, etc. The only store enhancer that ships with Redux
- * is `applyMiddleware()`.
- *
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
- * and subscribe to changes.
- */
-declare function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-/**
- * Creates a Redux store that holds the state tree.
- *
- * **We recommend using `configureStore` from the
- * `@reduxjs/toolkit` package**, which replaces `createStore`:
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * The only way to change the data in the store is to call `dispatch()` on it.
- *
- * There should only be a single store in your app. To specify how different
- * parts of the state tree respond to actions, you may combine several reducers
- * into a single reducer function by using `combineReducers`.
- *
- * @param {Function} reducer A function that returns the next state tree, given
- * the current state tree and the action to handle.
- *
- * @param {any} [preloadedState] The initial state. You may optionally specify it
- * to hydrate the state from the server in universal apps, or to restore a
- * previously serialized user session.
- * If you use `combineReducers` to produce the root reducer function, this must be
- * an object with the same shape as `combineReducers` keys.
- *
- * @param {Function} [enhancer] The store enhancer. You may optionally specify it
- * to enhance the store with third-party capabilities such as middleware,
- * time travel, persistence, etc. The only store enhancer that ships with Redux
- * is `applyMiddleware()`.
- *
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
- * and subscribe to changes.
- */
-declare function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;
-
-/**
- * Turns an object whose values are different reducer functions, into a single
- * reducer function. It will call every child reducer, and gather their results
- * into a single state object, whose keys correspond to the keys of the passed
- * reducer functions.
- *
- * @template S Combined state object type.
- *
- * @param reducers An object whose values correspond to different reducer
- *   functions that need to be combined into one. One handy way to obtain it
- *   is to use `import * as reducers` syntax. The reducers may never
- *   return undefined for any action. Instead, they should return their
- *   initial state if the state passed to them was undefined, and the current
- *   state for any unrecognized action.
- *
- * @returns A reducer function that invokes every reducer inside the passed
- *   object, and builds a state object with the same shape.
- */
-declare function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;
-
-/**
- * Turns an object whose values are action creators, into an object with the
- * same keys, but with every function wrapped into a `dispatch` call so they
- * may be invoked directly. This is just a convenience method, as you can call
- * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
- *
- * For convenience, you can also pass an action creator as the first argument,
- * and get a dispatch wrapped function in return.
- *
- * @param actionCreators An object whose values are action
- * creator functions. One handy way to obtain it is to use `import * as`
- * syntax. You may also pass a single function.
- *
- * @param dispatch The `dispatch` function available on your Redux
- * store.
- *
- * @returns The object mimicking the original object, but with
- * every action creator wrapped into the `dispatch` call. If you passed a
- * function as `actionCreators`, the return value will also be a single
- * function.
- */
-declare function bindActionCreators<A, C extends ActionCreator<A>>(actionCreator: C, dispatch: Dispatch): C;
-declare function bindActionCreators<A extends ActionCreator<any>, B extends ActionCreator<any>>(actionCreator: A, dispatch: Dispatch): B;
-declare function bindActionCreators<A, M extends ActionCreatorsMapObject<A>>(actionCreators: M, dispatch: Dispatch): M;
-declare function bindActionCreators<M extends ActionCreatorsMapObject, N extends ActionCreatorsMapObject>(actionCreators: M, dispatch: Dispatch): N;
-
-interface MiddlewareAPI<D extends Dispatch = Dispatch, S = any> {
-    dispatch: D;
-    getState(): S;
-}
-/**
- * A middleware is a higher-order function that composes a dispatch function
- * to return a new dispatch function. It often turns async actions into
- * actions.
- *
- * Middleware is composable using function composition. It is useful for
- * logging actions, performing side effects like routing, or turning an
- * asynchronous API call into a series of synchronous actions.
- *
- * @template DispatchExt Extra Dispatch signature added by this middleware.
- * @template S The type of the state supported by this middleware.
- * @template D The type of Dispatch of the store where this middleware is
- *   installed.
- */
-interface Middleware<_DispatchExt = {}, // TODO: see if this can be used in type definition somehow (can't be removed, as is used to get final dispatch type)
-S = any, D extends Dispatch = Dispatch> {
-    (api: MiddlewareAPI<D, S>): (next: (action: unknown) => unknown) => (action: unknown) => unknown;
-}
-
-/**
- * Creates a store enhancer that applies middleware to the dispatch method
- * of the Redux store. This is handy for a variety of tasks, such as expressing
- * asynchronous actions in a concise manner, or logging every action payload.
- *
- * See `redux-thunk` package as an example of the Redux middleware.
- *
- * Because middleware is potentially asynchronous, this should be the first
- * store enhancer in the composition chain.
- *
- * Note that each middleware will be given the `dispatch` and `getState` functions
- * as named arguments.
- *
- * @param middlewares The middleware chain to be applied.
- * @returns A store enhancer applying the middleware.
- *
- * @template Ext Dispatch signature added by a middleware.
- * @template S The type of the state supported by a middleware.
- */
-declare function applyMiddleware(): StoreEnhancer;
-declare function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{
-    dispatch: Ext1;
-}>;
-declare function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{
-    dispatch: Ext1 & Ext2;
-}>;
-declare function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{
-    dispatch: Ext1 & Ext2 & Ext3;
-}>;
-declare function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{
-    dispatch: Ext1 & Ext2 & Ext3 & Ext4;
-}>;
-declare function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{
-    dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;
-}>;
-declare function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{
-    dispatch: Ext;
-}>;
-
-type Func<T extends any[], R> = (...a: T) => R;
-/**
- * Composes single-argument functions from right to left. The rightmost
- * function can take multiple arguments as it provides the signature for the
- * resulting composite function.
- *
- * @param funcs The functions to compose.
- * @returns A function obtained by composing the argument functions from right
- *   to left. For example, `compose(f, g, h)` is identical to doing
- *   `(...args) => f(g(h(...args)))`.
- */
-declare function compose(): <R>(a: R) => R;
-declare function compose<F extends Function>(f: F): F;
-declare function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;
-declare function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;
-declare function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;
-declare function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;
-declare function compose<R>(...funcs: Function[]): (...args: any[]) => R;
-
-declare function isAction(action: unknown): action is Action<string>;
-
-/**
- * @param obj The object to inspect.
- * @returns True if the argument appears to be a plain object.
- */
-declare function isPlainObject(obj: any): obj is object;
-
-/**
- * These are private action types reserved by Redux.
- * For any unknown actions, you must return the current state.
- * If the current state is undefined, you must return the initial state.
- * Do not reference these action types directly in your code.
- */
-declare const ActionTypes: {
-    INIT: string;
-    REPLACE: string;
-    PROBE_UNKNOWN_ACTION: () => string;
-};
-
-export { Action, ActionCreator, ActionCreatorsMapObject, ActionFromReducer, ActionFromReducersMapObject, AnyAction, Dispatch, Middleware, MiddlewareAPI, Observable, Observer, PreloadedStateShapeFromReducersMapObject, Reducer, ReducerFromReducersMapObject, ReducersMapObject, StateFromReducersMapObject, Store, StoreCreator, StoreEnhancer, StoreEnhancerStoreCreator, UnknownAction, Unsubscribe, ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, isAction, isPlainObject, legacy_createStore };
Index: de_modules/redux/dist/redux.legacy-esm.js
===================================================================
--- node_modules/redux/dist/redux.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,397 +1,0 @@
-// src/utils/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-
-// src/utils/symbol-observable.ts
-var $$observable = /* @__PURE__ */ (() => typeof Symbol === "function" && Symbol.observable || "@@observable")();
-var symbol_observable_default = $$observable;
-
-// src/utils/actionTypes.ts
-var randomString = () => Math.random().toString(36).substring(7).split("").join(".");
-var ActionTypes = {
-  INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,
-  REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,
-  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`
-};
-var actionTypes_default = ActionTypes;
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null)
-    return false;
-  let proto = obj;
-  while (Object.getPrototypeOf(proto) !== null) {
-    proto = Object.getPrototypeOf(proto);
-  }
-  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;
-}
-
-// src/utils/kindOf.ts
-function miniKindOf(val) {
-  if (val === void 0)
-    return "undefined";
-  if (val === null)
-    return "null";
-  const type = typeof val;
-  switch (type) {
-    case "boolean":
-    case "string":
-    case "number":
-    case "symbol":
-    case "function": {
-      return type;
-    }
-  }
-  if (Array.isArray(val))
-    return "array";
-  if (isDate(val))
-    return "date";
-  if (isError(val))
-    return "error";
-  const constructorName = ctorName(val);
-  switch (constructorName) {
-    case "Symbol":
-    case "Promise":
-    case "WeakMap":
-    case "WeakSet":
-    case "Map":
-    case "Set":
-      return constructorName;
-  }
-  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\s/g, "");
-}
-function ctorName(val) {
-  return typeof val.constructor === "function" ? val.constructor.name : null;
-}
-function isError(val) {
-  return val instanceof Error || typeof val.message === "string" && val.constructor && typeof val.constructor.stackTraceLimit === "number";
-}
-function isDate(val) {
-  if (val instanceof Date)
-    return true;
-  return typeof val.toDateString === "function" && typeof val.getDate === "function" && typeof val.setDate === "function";
-}
-function kindOf(val) {
-  let typeOfVal = typeof val;
-  if (process.env.NODE_ENV !== "production") {
-    typeOfVal = miniKindOf(val);
-  }
-  return typeOfVal;
-}
-
-// src/createStore.ts
-function createStore(reducer, preloadedState, enhancer) {
-  if (typeof reducer !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "function" || typeof enhancer === "function" && typeof arguments[3] === "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(0) : "It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.");
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "undefined") {
-    enhancer = preloadedState;
-    preloadedState = void 0;
-  }
-  if (typeof enhancer !== "undefined") {
-    if (typeof enhancer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);
-    }
-    return enhancer(createStore)(reducer, preloadedState);
-  }
-  let currentReducer = reducer;
-  let currentState = preloadedState;
-  let currentListeners = /* @__PURE__ */ new Map();
-  let nextListeners = currentListeners;
-  let listenerIdCounter = 0;
-  let isDispatching = false;
-  function ensureCanMutateNextListeners() {
-    if (nextListeners === currentListeners) {
-      nextListeners = /* @__PURE__ */ new Map();
-      currentListeners.forEach((listener, key) => {
-        nextListeners.set(key, listener);
-      });
-    }
-  }
-  function getState() {
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(3) : "You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");
-    }
-    return currentState;
-  }
-  function subscribe(listener) {
-    if (typeof listener !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(5) : "You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.");
-    }
-    let isSubscribed = true;
-    ensureCanMutateNextListeners();
-    const listenerId = listenerIdCounter++;
-    nextListeners.set(listenerId, listener);
-    return function unsubscribe() {
-      if (!isSubscribed) {
-        return;
-      }
-      if (isDispatching) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(6) : "You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.");
-      }
-      isSubscribed = false;
-      ensureCanMutateNextListeners();
-      nextListeners.delete(listenerId);
-      currentListeners = null;
-    };
-  }
-  function dispatch(action) {
-    if (!isPlainObject(action)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);
-    }
-    if (typeof action.type === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(8) : 'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');
-    }
-    if (typeof action.type !== "string") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(17) : `Action "type" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(9) : "Reducers may not dispatch actions.");
-    }
-    try {
-      isDispatching = true;
-      currentState = currentReducer(currentState, action);
-    } finally {
-      isDispatching = false;
-    }
-    const listeners = currentListeners = nextListeners;
-    listeners.forEach((listener) => {
-      listener();
-    });
-    return action;
-  }
-  function replaceReducer(nextReducer) {
-    if (typeof nextReducer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);
-    }
-    currentReducer = nextReducer;
-    dispatch({
-      type: actionTypes_default.REPLACE
-    });
-  }
-  function observable() {
-    const outerSubscribe = subscribe;
-    return {
-      /**
-       * The minimal observable subscription method.
-       * @param observer Any object that can be used as an observer.
-       * The observer object should have a `next` method.
-       * @returns An object with an `unsubscribe` method that can
-       * be used to unsubscribe the observable from the store, and prevent further
-       * emission of values from the observable.
-       */
-      subscribe(observer) {
-        if (typeof observer !== "object" || observer === null) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);
-        }
-        function observeState() {
-          const observerAsObserver = observer;
-          if (observerAsObserver.next) {
-            observerAsObserver.next(getState());
-          }
-        }
-        observeState();
-        const unsubscribe = outerSubscribe(observeState);
-        return {
-          unsubscribe
-        };
-      },
-      [symbol_observable_default]() {
-        return this;
-      }
-    };
-  }
-  dispatch({
-    type: actionTypes_default.INIT
-  });
-  const store = {
-    dispatch,
-    subscribe,
-    getState,
-    replaceReducer,
-    [symbol_observable_default]: observable
-  };
-  return store;
-}
-function legacy_createStore(reducer, preloadedState, enhancer) {
-  return createStore(reducer, preloadedState, enhancer);
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/combineReducers.ts
-function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
-  const reducerKeys = Object.keys(reducers);
-  const argumentName = action && action.type === actionTypes_default.INIT ? "preloadedState argument passed to createStore" : "previous state received by the reducer";
-  if (reducerKeys.length === 0) {
-    return "Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";
-  }
-  if (!isPlainObject(inputState)) {
-    return `The ${argumentName} has unexpected type of "${kindOf(inputState)}". Expected argument to be an object with the following keys: "${reducerKeys.join('", "')}"`;
-  }
-  const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);
-  unexpectedKeys.forEach((key) => {
-    unexpectedKeyCache[key] = true;
-  });
-  if (action && action.type === actionTypes_default.REPLACE)
-    return;
-  if (unexpectedKeys.length > 0) {
-    return `Unexpected ${unexpectedKeys.length > 1 ? "keys" : "key"} "${unexpectedKeys.join('", "')}" found in ${argumentName}. Expected to find one of the known reducer keys instead: "${reducerKeys.join('", "')}". Unexpected keys will be ignored.`;
-  }
-}
-function assertReducerShape(reducers) {
-  Object.keys(reducers).forEach((key) => {
-    const reducer = reducers[key];
-    const initialState = reducer(void 0, {
-      type: actionTypes_default.INIT
-    });
-    if (typeof initialState === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(12) : `The slice reducer for key "${key}" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-    }
-    if (typeof reducer(void 0, {
-      type: actionTypes_default.PROBE_UNKNOWN_ACTION()
-    }) === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(13) : `The slice reducer for key "${key}" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);
-    }
-  });
-}
-function combineReducers(reducers) {
-  const reducerKeys = Object.keys(reducers);
-  const finalReducers = {};
-  for (let i = 0; i < reducerKeys.length; i++) {
-    const key = reducerKeys[i];
-    if (process.env.NODE_ENV !== "production") {
-      if (typeof reducers[key] === "undefined") {
-        warning(`No reducer provided for key "${key}"`);
-      }
-    }
-    if (typeof reducers[key] === "function") {
-      finalReducers[key] = reducers[key];
-    }
-  }
-  const finalReducerKeys = Object.keys(finalReducers);
-  let unexpectedKeyCache;
-  if (process.env.NODE_ENV !== "production") {
-    unexpectedKeyCache = {};
-  }
-  let shapeAssertionError;
-  try {
-    assertReducerShape(finalReducers);
-  } catch (e) {
-    shapeAssertionError = e;
-  }
-  return function combination(state = {}, action) {
-    if (shapeAssertionError) {
-      throw shapeAssertionError;
-    }
-    if (process.env.NODE_ENV !== "production") {
-      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
-      if (warningMessage) {
-        warning(warningMessage);
-      }
-    }
-    let hasChanged = false;
-    const nextState = {};
-    for (let i = 0; i < finalReducerKeys.length; i++) {
-      const key = finalReducerKeys[i];
-      const reducer = finalReducers[key];
-      const previousStateForKey = state[key];
-      const nextStateForKey = reducer(previousStateForKey, action);
-      if (typeof nextStateForKey === "undefined") {
-        const actionType = action && action.type;
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `"${String(actionType)}"` : "(unknown type)"}, the slice reducer for key "${key}" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);
-      }
-      nextState[key] = nextStateForKey;
-      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
-    }
-    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
-    return hasChanged ? nextState : state;
-  };
-}
-
-// src/bindActionCreators.ts
-function bindActionCreator(actionCreator, dispatch) {
-  return function(...args) {
-    return dispatch(actionCreator.apply(this, args));
-  };
-}
-function bindActionCreators(actionCreators, dispatch) {
-  if (typeof actionCreators === "function") {
-    return bindActionCreator(actionCreators, dispatch);
-  }
-  if (typeof actionCreators !== "object" || actionCreators === null) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`);
-  }
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/compose.ts
-function compose(...funcs) {
-  if (funcs.length === 0) {
-    return (arg) => arg;
-  }
-  if (funcs.length === 1) {
-    return funcs[0];
-  }
-  return funcs.reduce((a, b) => (...args) => a(b(...args)));
-}
-
-// src/applyMiddleware.ts
-function applyMiddleware(...middlewares) {
-  return (createStore2) => (reducer, preloadedState) => {
-    const store = createStore2(reducer, preloadedState);
-    let dispatch = () => {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(15) : "Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.");
-    };
-    const middlewareAPI = {
-      getState: store.getState,
-      dispatch: (action, ...args) => dispatch(action, ...args)
-    };
-    const chain = middlewares.map((middleware) => middleware(middlewareAPI));
-    dispatch = compose(...chain)(store.dispatch);
-    return {
-      ...store,
-      dispatch
-    };
-  };
-}
-
-// src/utils/isAction.ts
-function isAction(action) {
-  return isPlainObject(action) && "type" in action && typeof action.type === "string";
-}
-export {
-  actionTypes_default as __DO_NOT_USE__ActionTypes,
-  applyMiddleware,
-  bindActionCreators,
-  combineReducers,
-  compose,
-  createStore,
-  isAction,
-  isPlainObject,
-  legacy_createStore
-};
-//# sourceMappingURL=redux.mjs.map
Index: de_modules/redux/dist/redux.mjs
===================================================================
--- node_modules/redux/dist/redux.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,397 +1,0 @@
-// src/utils/formatProdErrorMessage.ts
-function formatProdErrorMessage(code) {
-  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
-}
-
-// src/utils/symbol-observable.ts
-var $$observable = /* @__PURE__ */ (() => typeof Symbol === "function" && Symbol.observable || "@@observable")();
-var symbol_observable_default = $$observable;
-
-// src/utils/actionTypes.ts
-var randomString = () => Math.random().toString(36).substring(7).split("").join(".");
-var ActionTypes = {
-  INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,
-  REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,
-  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`
-};
-var actionTypes_default = ActionTypes;
-
-// src/utils/isPlainObject.ts
-function isPlainObject(obj) {
-  if (typeof obj !== "object" || obj === null)
-    return false;
-  let proto = obj;
-  while (Object.getPrototypeOf(proto) !== null) {
-    proto = Object.getPrototypeOf(proto);
-  }
-  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;
-}
-
-// src/utils/kindOf.ts
-function miniKindOf(val) {
-  if (val === void 0)
-    return "undefined";
-  if (val === null)
-    return "null";
-  const type = typeof val;
-  switch (type) {
-    case "boolean":
-    case "string":
-    case "number":
-    case "symbol":
-    case "function": {
-      return type;
-    }
-  }
-  if (Array.isArray(val))
-    return "array";
-  if (isDate(val))
-    return "date";
-  if (isError(val))
-    return "error";
-  const constructorName = ctorName(val);
-  switch (constructorName) {
-    case "Symbol":
-    case "Promise":
-    case "WeakMap":
-    case "WeakSet":
-    case "Map":
-    case "Set":
-      return constructorName;
-  }
-  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\s/g, "");
-}
-function ctorName(val) {
-  return typeof val.constructor === "function" ? val.constructor.name : null;
-}
-function isError(val) {
-  return val instanceof Error || typeof val.message === "string" && val.constructor && typeof val.constructor.stackTraceLimit === "number";
-}
-function isDate(val) {
-  if (val instanceof Date)
-    return true;
-  return typeof val.toDateString === "function" && typeof val.getDate === "function" && typeof val.setDate === "function";
-}
-function kindOf(val) {
-  let typeOfVal = typeof val;
-  if (process.env.NODE_ENV !== "production") {
-    typeOfVal = miniKindOf(val);
-  }
-  return typeOfVal;
-}
-
-// src/createStore.ts
-function createStore(reducer, preloadedState, enhancer) {
-  if (typeof reducer !== "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "function" || typeof enhancer === "function" && typeof arguments[3] === "function") {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(0) : "It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.");
-  }
-  if (typeof preloadedState === "function" && typeof enhancer === "undefined") {
-    enhancer = preloadedState;
-    preloadedState = void 0;
-  }
-  if (typeof enhancer !== "undefined") {
-    if (typeof enhancer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);
-    }
-    return enhancer(createStore)(reducer, preloadedState);
-  }
-  let currentReducer = reducer;
-  let currentState = preloadedState;
-  let currentListeners = /* @__PURE__ */ new Map();
-  let nextListeners = currentListeners;
-  let listenerIdCounter = 0;
-  let isDispatching = false;
-  function ensureCanMutateNextListeners() {
-    if (nextListeners === currentListeners) {
-      nextListeners = /* @__PURE__ */ new Map();
-      currentListeners.forEach((listener, key) => {
-        nextListeners.set(key, listener);
-      });
-    }
-  }
-  function getState() {
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(3) : "You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");
-    }
-    return currentState;
-  }
-  function subscribe(listener) {
-    if (typeof listener !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(5) : "You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.");
-    }
-    let isSubscribed = true;
-    ensureCanMutateNextListeners();
-    const listenerId = listenerIdCounter++;
-    nextListeners.set(listenerId, listener);
-    return function unsubscribe() {
-      if (!isSubscribed) {
-        return;
-      }
-      if (isDispatching) {
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(6) : "You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.");
-      }
-      isSubscribed = false;
-      ensureCanMutateNextListeners();
-      nextListeners.delete(listenerId);
-      currentListeners = null;
-    };
-  }
-  function dispatch(action) {
-    if (!isPlainObject(action)) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);
-    }
-    if (typeof action.type === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(8) : 'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');
-    }
-    if (typeof action.type !== "string") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(17) : `Action "type" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);
-    }
-    if (isDispatching) {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(9) : "Reducers may not dispatch actions.");
-    }
-    try {
-      isDispatching = true;
-      currentState = currentReducer(currentState, action);
-    } finally {
-      isDispatching = false;
-    }
-    const listeners = currentListeners = nextListeners;
-    listeners.forEach((listener) => {
-      listener();
-    });
-    return action;
-  }
-  function replaceReducer(nextReducer) {
-    if (typeof nextReducer !== "function") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);
-    }
-    currentReducer = nextReducer;
-    dispatch({
-      type: actionTypes_default.REPLACE
-    });
-  }
-  function observable() {
-    const outerSubscribe = subscribe;
-    return {
-      /**
-       * The minimal observable subscription method.
-       * @param observer Any object that can be used as an observer.
-       * The observer object should have a `next` method.
-       * @returns An object with an `unsubscribe` method that can
-       * be used to unsubscribe the observable from the store, and prevent further
-       * emission of values from the observable.
-       */
-      subscribe(observer) {
-        if (typeof observer !== "object" || observer === null) {
-          throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);
-        }
-        function observeState() {
-          const observerAsObserver = observer;
-          if (observerAsObserver.next) {
-            observerAsObserver.next(getState());
-          }
-        }
-        observeState();
-        const unsubscribe = outerSubscribe(observeState);
-        return {
-          unsubscribe
-        };
-      },
-      [symbol_observable_default]() {
-        return this;
-      }
-    };
-  }
-  dispatch({
-    type: actionTypes_default.INIT
-  });
-  const store = {
-    dispatch,
-    subscribe,
-    getState,
-    replaceReducer,
-    [symbol_observable_default]: observable
-  };
-  return store;
-}
-function legacy_createStore(reducer, preloadedState, enhancer) {
-  return createStore(reducer, preloadedState, enhancer);
-}
-
-// src/utils/warning.ts
-function warning(message) {
-  if (typeof console !== "undefined" && typeof console.error === "function") {
-    console.error(message);
-  }
-  try {
-    throw new Error(message);
-  } catch (e) {
-  }
-}
-
-// src/combineReducers.ts
-function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
-  const reducerKeys = Object.keys(reducers);
-  const argumentName = action && action.type === actionTypes_default.INIT ? "preloadedState argument passed to createStore" : "previous state received by the reducer";
-  if (reducerKeys.length === 0) {
-    return "Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";
-  }
-  if (!isPlainObject(inputState)) {
-    return `The ${argumentName} has unexpected type of "${kindOf(inputState)}". Expected argument to be an object with the following keys: "${reducerKeys.join('", "')}"`;
-  }
-  const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);
-  unexpectedKeys.forEach((key) => {
-    unexpectedKeyCache[key] = true;
-  });
-  if (action && action.type === actionTypes_default.REPLACE)
-    return;
-  if (unexpectedKeys.length > 0) {
-    return `Unexpected ${unexpectedKeys.length > 1 ? "keys" : "key"} "${unexpectedKeys.join('", "')}" found in ${argumentName}. Expected to find one of the known reducer keys instead: "${reducerKeys.join('", "')}". Unexpected keys will be ignored.`;
-  }
-}
-function assertReducerShape(reducers) {
-  Object.keys(reducers).forEach((key) => {
-    const reducer = reducers[key];
-    const initialState = reducer(void 0, {
-      type: actionTypes_default.INIT
-    });
-    if (typeof initialState === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(12) : `The slice reducer for key "${key}" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);
-    }
-    if (typeof reducer(void 0, {
-      type: actionTypes_default.PROBE_UNKNOWN_ACTION()
-    }) === "undefined") {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(13) : `The slice reducer for key "${key}" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);
-    }
-  });
-}
-function combineReducers(reducers) {
-  const reducerKeys = Object.keys(reducers);
-  const finalReducers = {};
-  for (let i = 0; i < reducerKeys.length; i++) {
-    const key = reducerKeys[i];
-    if (process.env.NODE_ENV !== "production") {
-      if (typeof reducers[key] === "undefined") {
-        warning(`No reducer provided for key "${key}"`);
-      }
-    }
-    if (typeof reducers[key] === "function") {
-      finalReducers[key] = reducers[key];
-    }
-  }
-  const finalReducerKeys = Object.keys(finalReducers);
-  let unexpectedKeyCache;
-  if (process.env.NODE_ENV !== "production") {
-    unexpectedKeyCache = {};
-  }
-  let shapeAssertionError;
-  try {
-    assertReducerShape(finalReducers);
-  } catch (e) {
-    shapeAssertionError = e;
-  }
-  return function combination(state = {}, action) {
-    if (shapeAssertionError) {
-      throw shapeAssertionError;
-    }
-    if (process.env.NODE_ENV !== "production") {
-      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
-      if (warningMessage) {
-        warning(warningMessage);
-      }
-    }
-    let hasChanged = false;
-    const nextState = {};
-    for (let i = 0; i < finalReducerKeys.length; i++) {
-      const key = finalReducerKeys[i];
-      const reducer = finalReducers[key];
-      const previousStateForKey = state[key];
-      const nextStateForKey = reducer(previousStateForKey, action);
-      if (typeof nextStateForKey === "undefined") {
-        const actionType = action && action.type;
-        throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `"${String(actionType)}"` : "(unknown type)"}, the slice reducer for key "${key}" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);
-      }
-      nextState[key] = nextStateForKey;
-      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
-    }
-    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
-    return hasChanged ? nextState : state;
-  };
-}
-
-// src/bindActionCreators.ts
-function bindActionCreator(actionCreator, dispatch) {
-  return function(...args) {
-    return dispatch(actionCreator.apply(this, args));
-  };
-}
-function bindActionCreators(actionCreators, dispatch) {
-  if (typeof actionCreators === "function") {
-    return bindActionCreator(actionCreators, dispatch);
-  }
-  if (typeof actionCreators !== "object" || actionCreators === null) {
-    throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`);
-  }
-  const boundActionCreators = {};
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key];
-    if (typeof actionCreator === "function") {
-      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
-    }
-  }
-  return boundActionCreators;
-}
-
-// src/compose.ts
-function compose(...funcs) {
-  if (funcs.length === 0) {
-    return (arg) => arg;
-  }
-  if (funcs.length === 1) {
-    return funcs[0];
-  }
-  return funcs.reduce((a, b) => (...args) => a(b(...args)));
-}
-
-// src/applyMiddleware.ts
-function applyMiddleware(...middlewares) {
-  return (createStore2) => (reducer, preloadedState) => {
-    const store = createStore2(reducer, preloadedState);
-    let dispatch = () => {
-      throw new Error(process.env.NODE_ENV === "production" ? formatProdErrorMessage(15) : "Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.");
-    };
-    const middlewareAPI = {
-      getState: store.getState,
-      dispatch: (action, ...args) => dispatch(action, ...args)
-    };
-    const chain = middlewares.map((middleware) => middleware(middlewareAPI));
-    dispatch = compose(...chain)(store.dispatch);
-    return {
-      ...store,
-      dispatch
-    };
-  };
-}
-
-// src/utils/isAction.ts
-function isAction(action) {
-  return isPlainObject(action) && "type" in action && typeof action.type === "string";
-}
-export {
-  actionTypes_default as __DO_NOT_USE__ActionTypes,
-  applyMiddleware,
-  bindActionCreators,
-  combineReducers,
-  compose,
-  createStore,
-  isAction,
-  isPlainObject,
-  legacy_createStore
-};
-//# sourceMappingURL=redux.mjs.map
Index: de_modules/redux/dist/redux.mjs.map
===================================================================
--- node_modules/redux/dist/redux.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/utils/formatProdErrorMessage.ts","../src/utils/symbol-observable.ts","../src/utils/actionTypes.ts","../src/utils/isPlainObject.ts","../src/utils/kindOf.ts","../src/createStore.ts","../src/utils/warning.ts","../src/combineReducers.ts","../src/bindActionCreators.ts","../src/compose.ts","../src/applyMiddleware.ts","../src/utils/isAction.ts"],"sourcesContent":["/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n  interface SymbolConstructor {\n    readonly observable: symbol;\n  }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n  INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n  REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n  if (typeof obj !== 'object' || obj === null) return false;\n  let proto = obj;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nexport function miniKindOf(val: any): string {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n  const type = typeof val;\n  switch (type) {\n    case 'boolean':\n    case 'string':\n    case 'number':\n    case 'symbol':\n    case 'function':\n      {\n        return type;\n      }\n  }\n  if (Array.isArray(val)) return 'array';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  const constructorName = ctorName(val);\n  switch (constructorName) {\n    case 'Symbol':\n    case 'Promise':\n    case 'WeakMap':\n    case 'WeakSet':\n    case 'Map':\n    case 'Set':\n      return constructorName;\n  }\n\n  // other\n  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\nfunction ctorName(val: any): string | null {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\nfunction isError(val: any) {\n  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\nfunction isDate(val: any) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\nexport function kindOf(val: any) {\n  let typeOfVal: string = typeof val;\n  if (process.env.NODE_ENV !== 'production') {\n    typeOfVal = miniKindOf(val);\n  }\n  return typeOfVal;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = (preloadedState as StoreEnhancer<Ext, StateExt>);\n    preloadedState = undefined;\n  }\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n    }\n    return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n  }\n  let currentReducer = reducer;\n  let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n  let currentListeners: Map<number, ListenerCallback> | null = new Map();\n  let nextListeners = currentListeners;\n  let listenerIdCounter = 0;\n  let isDispatching = false;\n\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = new Map();\n      currentListeners.forEach((listener, key) => {\n        nextListeners.set(key, listener);\n      });\n    }\n  }\n\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns The current state tree of your application.\n   */\n  function getState(): S {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n    return (currentState as S);\n  }\n\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param listener A callback to be invoked on every dispatch.\n   * @returns A function to remove this change listener.\n   */\n  function subscribe(listener: () => void) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n    let isSubscribed = true;\n    ensureCanMutateNextListeners();\n    const listenerId = listenerIdCounter++;\n    nextListeners.set(listenerId, listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      nextListeners.delete(listenerId);\n      currentListeners = null;\n    };\n  }\n\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n  function dispatch(action: A) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n    }\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n    if (typeof action.type !== 'string') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n    }\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n    const listeners = currentListeners = nextListeners;\n    listeners.forEach(listener => {\n      listener();\n    });\n    return action;\n  }\n\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param nextReducer The reducer for the store to use instead.\n   */\n  function replaceReducer(nextReducer: Reducer<S, A>): void {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n    }\n    currentReducer = ((nextReducer as unknown) as Reducer<S, A, PreloadedState>);\n\n    // This action has a similar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n    dispatch(({\n      type: ActionTypes.REPLACE\n    } as A));\n  }\n\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n  function observable() {\n    const outerSubscribe = subscribe;\n    return {\n      /**\n       * The minimal observable subscription method.\n       * @param observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe(observer: unknown) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n        }\n        function observeState() {\n          const observerAsObserver = (observer as Observer<S>);\n          if (observerAsObserver.next) {\n            observerAsObserver.next(getState());\n          }\n        }\n        observeState();\n        const unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe\n        };\n      },\n      [$$observable]() {\n        return this;\n      }\n    };\n  }\n\n  // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n  dispatch(({\n    type: ActionTypes.INIT\n  } as A));\n  const store = (({\n    dispatch: (dispatch as Dispatch<A>),\n    subscribe,\n    getState,\n    replaceReducer,\n    [$$observable]: observable\n  } as unknown) as Store<S, A, StateExt> & Ext);\n  return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  return createStore(reducer, (preloadedState as any), enhancer);\n}","/**\n * Prints a warning in the console if it exists.\n *\n * @param message The warning message.\n */\nexport default function warning(message: string): void {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n  [key: string]: Reducer<any, any, any>;\n}, action: Action, unexpectedKeyCache: {\n  [key: string]: true;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n  if (!isPlainObject(inputState)) {\n    return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n  }\n  const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n  unexpectedKeys.forEach(key => {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n  if (unexpectedKeys.length > 0) {\n    return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n  }\n}\nfunction assertReducerShape(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  Object.keys(reducers).forEach(key => {\n    const reducer = reducers[key];\n    const initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n    }\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n    }\n  });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n *   functions that need to be combined into one. One handy way to obtain it\n *   is to use `import * as reducers` syntax. The reducers may never\n *   return undefined for any action. Instead, they should return their\n *   initial state if the state passed to them was undefined, and the current\n *   state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n *   object, and builds a state object with the same shape.\n */\nexport default function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;\nexport default function combineReducers(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const finalReducers: {\n    [key: string]: Reducer<any, any, any>;\n  } = {};\n  for (let i = 0; i < reducerKeys.length; i++) {\n    const key = reducerKeys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(`No reducer provided for key \"${key}\"`);\n      }\n    }\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n  const finalReducerKeys = Object.keys(finalReducers);\n\n  // This is used to make sure we don't warn about the same\n  // keys multiple times.\n  let unexpectedKeyCache: {\n    [key: string]: true;\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n  let shapeAssertionError: unknown;\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n  return function combination(state: StateFromReducersMapObject<typeof reducers> = {}, action: Action) {\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n    let hasChanged = false;\n    const nextState: StateFromReducersMapObject<typeof reducers> = {};\n    for (let i = 0; i < finalReducerKeys.length; i++) {\n      const key = finalReducerKeys[i];\n      const reducer = finalReducers[key];\n      const previousStateForKey = state[key];\n      const nextStateForKey = reducer(previousStateForKey, action);\n      if (typeof nextStateForKey === 'undefined') {\n        const actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n      }\n      nextState[key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Dispatch } from './types/store';\nimport { ActionCreator, ActionCreatorsMapObject, Action } from './types/actions';\nimport { kindOf } from './utils/kindOf';\nfunction bindActionCreator<A extends Action>(actionCreator: ActionCreator<A>, dispatch: Dispatch<A>) {\n  return function (this: any, ...args: any[]) {\n    return dispatch(actionCreator.apply(this, args));\n  };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use `import * as`\n * syntax. You may also pass a single function.\n *\n * @param dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators<A, C extends ActionCreator<A>>(actionCreator: C, dispatch: Dispatch): C;\nexport default function bindActionCreators<A extends ActionCreator<any>, B extends ActionCreator<any>>(actionCreator: A, dispatch: Dispatch): B;\nexport default function bindActionCreators<A, M extends ActionCreatorsMapObject<A>>(actionCreators: M, dispatch: Dispatch): M;\nexport default function bindActionCreators<M extends ActionCreatorsMapObject, N extends ActionCreatorsMapObject>(actionCreators: M, dispatch: Dispatch): N;\nexport default function bindActionCreators(actionCreators: ActionCreator<any> | ActionCreatorsMapObject, dispatch: Dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. ` + `Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n  }\n  const boundActionCreators: ActionCreatorsMapObject = {};\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key];\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n  return boundActionCreators;\n}","type Func<T extends any[], R> = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n *   to left. For example, `compose(f, g, h)` is identical to doing\n *   `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): <R>(a: R) => R;\nexport default function compose<F extends Function>(f: F): F;\n\n/* two functions */\nexport default function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;\n\n/* three functions */\nexport default function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;\n\n/* four functions */\nexport default function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;\n\n/* rest */\nexport default function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose<R>(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n  if (funcs.length === 0) {\n    // infer the argument type so it is usable in inference down the line\n    return <T,>(arg: T) => arg;\n  }\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n  return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{\n  dispatch: Ext1;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{\n  dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<any> {\n  return createStore => (reducer, preloadedState) => {\n    const store = createStore(reducer, preloadedState);\n    let dispatch: Dispatch = () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n    };\n    const middlewareAPI: MiddlewareAPI = {\n      getState: store.getState,\n      dispatch: (action, ...args) => dispatch(action, ...args)\n    };\n    const chain = middlewares.map(middleware => middleware(middlewareAPI));\n    dispatch = compose<typeof dispatch>(...chain)(store.dispatch);\n    return {\n      ...store,\n      dispatch\n    };\n  };\n}","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action<string> {\n  return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}"],"mappings":";AAOO,SAAS,uBAAuB,MAAc;AACnD,SAAO,yBAAyB,IAAI,4CAA4C,IAAI;AACtF;;;ACJA,IAAM,eAA+B,uBAAM,OAAO,WAAW,cAAc,OAAO,cAAc,gBAAgB;AAChH,IAAO,4BAAQ;;;ACCf,IAAM,eAAe,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG;AACrF,IAAM,cAAc;AAAA,EAClB,MAAM,eAA8B,6BAAa,CAAC;AAAA,EAClD,SAAS,kBAAiC,6BAAa,CAAC;AAAA,EACxD,sBAAsB,MAAM,+BAA+B,aAAa,CAAC;AAC3E;AACA,IAAO,sBAAQ;;;ACTA,SAAR,cAA+B,KAAyB;AAC7D,MAAI,OAAO,QAAQ,YAAY,QAAQ;AAAM,WAAO;AACpD,MAAI,QAAQ;AACZ,SAAO,OAAO,eAAe,KAAK,MAAM,MAAM;AAC5C,YAAQ,OAAO,eAAe,KAAK;AAAA,EACrC;AACA,SAAO,OAAO,eAAe,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,MAAM;AAChF;;;ACVO,SAAS,WAAW,KAAkB;AAC3C,MAAI,QAAQ;AAAQ,WAAO;AAC3B,MAAI,QAAQ;AAAM,WAAO;AACzB,QAAM,OAAO,OAAO;AACpB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YACH;AACE,aAAO;AAAA,IACT;AAAA,EACJ;AACA,MAAI,MAAM,QAAQ,GAAG;AAAG,WAAO;AAC/B,MAAI,OAAO,GAAG;AAAG,WAAO;AACxB,MAAI,QAAQ,GAAG;AAAG,WAAO;AACzB,QAAM,kBAAkB,SAAS,GAAG;AACpC,UAAQ,iBAAiB;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,EACX;AAGA,SAAO,OAAO,UAAU,SAAS,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,OAAO,EAAE;AACzF;AACA,SAAS,SAAS,KAAyB;AACzC,SAAO,OAAO,IAAI,gBAAgB,aAAa,IAAI,YAAY,OAAO;AACxE;AACA,SAAS,QAAQ,KAAU;AACzB,SAAO,eAAe,SAAS,OAAO,IAAI,YAAY,YAAY,IAAI,eAAe,OAAO,IAAI,YAAY,oBAAoB;AAClI;AACA,SAAS,OAAO,KAAU;AACxB,MAAI,eAAe;AAAM,WAAO;AAChC,SAAO,OAAO,IAAI,iBAAiB,cAAc,OAAO,IAAI,YAAY,cAAc,OAAO,IAAI,YAAY;AAC/G;AACO,SAAS,OAAO,KAAU;AAC/B,MAAI,YAAoB,OAAO;AAC/B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAY,WAAW,GAAG;AAAA,EAC5B;AACA,SAAO;AACT;;;ACyBO,SAAS,YAAoG,SAAwC,gBAA4E,UAA4F;AAClU,MAAI,OAAO,YAAY,YAAY;AACjC,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,CAAC,IAAI,mEAAmE,OAAO,OAAO,CAAC,GAAG;AAAA,EAC5K;AACA,MAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,cAAc,OAAO,aAAa,cAAc,OAAO,UAAU,CAAC,MAAM,YAAY;AAClJ,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,kQAA4Q;AAAA,EACpW;AACA,MAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,aAAa;AAC3E,eAAY;AACZ,qBAAiB;AAAA,EACnB;AACA,MAAI,OAAO,aAAa,aAAa;AACnC,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D,OAAO,QAAQ,CAAC,GAAG;AAAA,IAC1K;AACA,WAAO,SAAS,WAAW,EAAE,SAAU,cAA6C;AAAA,EACtF;AACA,MAAI,iBAAiB;AACrB,MAAI,eAAgD;AACpD,MAAI,mBAAyD,oBAAI,IAAI;AACrE,MAAI,gBAAgB;AACpB,MAAI,oBAAoB;AACxB,MAAI,gBAAgB;AASpB,WAAS,+BAA+B;AACtC,QAAI,kBAAkB,kBAAkB;AACtC,sBAAgB,oBAAI,IAAI;AACxB,uBAAiB,QAAQ,CAAC,UAAU,QAAQ;AAC1C,sBAAc,IAAI,KAAK,QAAQ;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAOA,WAAS,WAAc;AACrB,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sMAAgN;AAAA,IACxS;AACA,WAAQ;AAAA,EACV;AAyBA,WAAS,UAAU,UAAsB;AACvC,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,+DAA+D,OAAO,QAAQ,CAAC,GAAG;AAAA,IAC1K;AACA,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,iTAAgU;AAAA,IACxZ;AACA,QAAI,eAAe;AACnB,iCAA6B;AAC7B,UAAM,aAAa;AACnB,kBAAc,IAAI,YAAY,QAAQ;AACtC,WAAO,SAAS,cAAc;AAC5B,UAAI,CAAC,cAAc;AACjB;AAAA,MACF;AACA,UAAI,eAAe;AACjB,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,sJAA2J;AAAA,MACnP;AACA,qBAAe;AACf,mCAA6B;AAC7B,oBAAc,OAAO,UAAU;AAC/B,yBAAmB;AAAA,IACrB;AAAA,EACF;AA2BA,WAAS,SAAS,QAAW;AAC3B,QAAI,CAAC,cAAc,MAAM,GAAG;AAC1B,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,iEAAiE,OAAO,MAAM,CAAC,4UAA4U;AAAA,IACnf;AACA,QAAI,OAAO,OAAO,SAAS,aAAa;AACtC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,CAAC,IAAI,4GAA4G;AAAA,IACpM;AACA,QAAI,OAAO,OAAO,SAAS,UAAU;AACnC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,2EAA2E,OAAO,OAAO,IAAI,CAAC,kBAAkB,OAAO,IAAI,iBAAiB;AAAA,IACtO;AACA,QAAI,eAAe;AACjB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,CAAC,IAAI,oCAAoC;AAAA,IAC7H;AACA,QAAI;AACF,sBAAgB;AAChB,qBAAe,eAAe,cAAc,MAAM;AAAA,IACpD,UAAE;AACA,sBAAgB;AAAA,IAClB;AACA,UAAM,YAAY,mBAAmB;AACrC,cAAU,QAAQ,cAAY;AAC5B,eAAS;AAAA,IACX,CAAC;AACD,WAAO;AAAA,EACT;AAWA,WAAS,eAAe,aAAkC;AACxD,QAAI,OAAO,gBAAgB,YAAY;AACrC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,kEAAkE,OAAO,WAAW,CAAC,EAAE;AAAA,IACjL;AACA,qBAAmB;AAMnB,aAAU;AAAA,MACR,MAAM,oBAAY;AAAA,IACpB,CAAO;AAAA,EACT;AAQA,WAAS,aAAa;AACpB,UAAM,iBAAiB;AACvB,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASL,UAAU,UAAmB;AAC3B,YAAI,OAAO,aAAa,YAAY,aAAa,MAAM;AACrD,gBAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAA0B,EAAE,IAAI,8DAA8D,OAAO,QAAQ,CAAC,GAAG;AAAA,QAC3K;AACA,iBAAS,eAAe;AACtB,gBAAM,qBAAsB;AAC5B,cAAI,mBAAmB,MAAM;AAC3B,+BAAmB,KAAK,SAAS,CAAC;AAAA,UACpC;AAAA,QACF;AACA,qBAAa;AACb,cAAM,cAAc,eAAe,YAAY;AAC/C,eAAO;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MACA,CAAC,yBAAY,IAAI;AACf,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAKA,WAAU;AAAA,IACR,MAAM,oBAAY;AAAA,EACpB,CAAO;AACP,QAAM,QAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,CAAC,yBAAY,GAAG;AAAA,EAClB;AACA,SAAO;AACT;AAgEO,SAAS,mBAA2G,SAAwB,gBAA4E,UAA4F;AACzT,SAAO,YAAY,SAAU,gBAAwB,QAAQ;AAC/D;;;AC1We,SAAR,QAAyB,SAAuB;AAErD,MAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACzE,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,MAAI;AAIF,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB,SAAS,GAAG;AAAA,EAAC;AACf;;;ACRA,SAAS,sCAAsC,YAAoB,UAEhE,QAAgB,oBAEhB;AACD,QAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,QAAM,eAAe,UAAU,OAAO,SAAS,oBAAY,OAAO,kDAAkD;AACpH,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,CAAC,cAAc,UAAU,GAAG;AAC9B,WAAO,OAAO,YAAY,4BAA4B,OAAO,UAAU,CAAC,kEAAuE,YAAY,KAAK,MAAM,CAAC;AAAA,EACzK;AACA,QAAM,iBAAiB,OAAO,KAAK,UAAU,EAAE,OAAO,SAAO,CAAC,SAAS,eAAe,GAAG,KAAK,CAAC,mBAAmB,GAAG,CAAC;AACtH,iBAAe,QAAQ,SAAO;AAC5B,uBAAmB,GAAG,IAAI;AAAA,EAC5B,CAAC;AACD,MAAI,UAAU,OAAO,SAAS,oBAAY;AAAS;AACnD,MAAI,eAAe,SAAS,GAAG;AAC7B,WAAO,cAAc,eAAe,SAAS,IAAI,SAAS,KAAK,KAAU,eAAe,KAAK,MAAM,CAAC,cAAc,YAAY,8DAAwE,YAAY,KAAK,MAAM,CAAC;AAAA,EAChO;AACF;AACA,SAAS,mBAAmB,UAEzB;AACD,SAAO,KAAK,QAAQ,EAAE,QAAQ,SAAO;AACnC,UAAM,UAAU,SAAS,GAAG;AAC5B,UAAM,eAAe,QAAQ,QAAW;AAAA,MACtC,MAAM,oBAAY;AAAA,IACpB,CAAC;AACD,QAAI,OAAO,iBAAiB,aAAa;AACvC,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,8BAA8B,GAAG,8QAAkS;AAAA,IAC3Z;AACA,QAAI,OAAO,QAAQ,QAAW;AAAA,MAC5B,MAAM,oBAAY,qBAAqB;AAAA,IACzC,CAAC,MAAM,aAAa;AAClB,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,8BAA8B,GAAG,6EAAkF,oBAAY,IAAI,8SAAkU;AAAA,IAC9hB;AAAA,EACF,CAAC;AACH;AAqBe,SAAR,gBAAiC,UAErC;AACD,QAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,QAAM,gBAEF,CAAC;AACL,WAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,UAAM,MAAM,YAAY,CAAC;AACzB,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,OAAO,SAAS,GAAG,MAAM,aAAa;AACxC,gBAAQ,gCAAgC,GAAG,GAAG;AAAA,MAChD;AAAA,IACF;AACA,QAAI,OAAO,SAAS,GAAG,MAAM,YAAY;AACvC,oBAAc,GAAG,IAAI,SAAS,GAAG;AAAA,IACnC;AAAA,EACF;AACA,QAAM,mBAAmB,OAAO,KAAK,aAAa;AAIlD,MAAI;AAGJ,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,yBAAqB,CAAC;AAAA,EACxB;AACA,MAAI;AACJ,MAAI;AACF,uBAAmB,aAAa;AAAA,EAClC,SAAS,GAAG;AACV,0BAAsB;AAAA,EACxB;AACA,SAAO,SAAS,YAAY,QAAqD,CAAC,GAAG,QAAgB;AACnG,QAAI,qBAAqB;AACvB,YAAM;AAAA,IACR;AACA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAM,iBAAiB,sCAAsC,OAAO,eAAe,QAAQ,kBAAkB;AAC7G,UAAI,gBAAgB;AAClB,gBAAQ,cAAc;AAAA,MACxB;AAAA,IACF;AACA,QAAI,aAAa;AACjB,UAAM,YAAyD,CAAC;AAChE,aAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;AAChD,YAAM,MAAM,iBAAiB,CAAC;AAC9B,YAAM,UAAU,cAAc,GAAG;AACjC,YAAM,sBAAsB,MAAM,GAAG;AACrC,YAAM,kBAAkB,QAAQ,qBAAqB,MAAM;AAC3D,UAAI,OAAO,oBAAoB,aAAa;AAC1C,cAAM,aAAa,UAAU,OAAO;AACpC,cAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAyB,EAAE,IAAI,sCAAsC,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,gBAAgB,gCAAgC,GAAG,gLAA0L;AAAA,MACrZ;AACA,gBAAU,GAAG,IAAI;AACjB,mBAAa,cAAc,oBAAoB;AAAA,IACjD;AACA,iBAAa,cAAc,iBAAiB,WAAW,OAAO,KAAK,KAAK,EAAE;AAC1E,WAAO,aAAa,YAAY;AAAA,EAClC;AACF;;;AC9HA,SAAS,kBAAoC,eAAiC,UAAuB;AACnG,SAAO,YAAwB,MAAa;AAC1C,WAAO,SAAS,cAAc,MAAM,MAAM,IAAI,CAAC;AAAA,EACjD;AACF;AA2Be,SAAR,mBAAoC,gBAA8D,UAAoB;AAC3H,MAAI,OAAO,mBAAmB,YAAY;AACxC,WAAO,kBAAkB,gBAAgB,QAAQ;AAAA,EACnD;AACA,MAAI,OAAO,mBAAmB,YAAY,mBAAmB,MAAM;AACjE,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,+EAA+E,OAAO,cAAc,CAAC,6FAAkG;AAAA,EAC/R;AACA,QAAM,sBAA+C,CAAC;AACtD,aAAW,OAAO,gBAAgB;AAChC,UAAM,gBAAgB,eAAe,GAAG;AACxC,QAAI,OAAO,kBAAkB,YAAY;AACvC,0BAAoB,GAAG,IAAI,kBAAkB,eAAe,QAAQ;AAAA,IACtE;AAAA,EACF;AACA,SAAO;AACT;;;ACvBe,SAAR,WAA4B,OAAmB;AACpD,MAAI,MAAM,WAAW,GAAG;AAEtB,WAAO,CAAK,QAAW;AAAA,EACzB;AACA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO,MAAM,CAAC;AAAA,EAChB;AACA,SAAO,MAAM,OAAO,CAAC,GAAG,MAAM,IAAI,SAAc,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/D;;;ACOe,SAAR,mBAAoC,aAA+C;AACxF,SAAO,CAAAA,iBAAe,CAAC,SAAS,mBAAmB;AACjD,UAAM,QAAQA,aAAY,SAAS,cAAc;AACjD,QAAI,WAAqB,MAAM;AAC7B,YAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAwB,EAAE,IAAI,wHAA6H;AAAA,IACrN;AACA,UAAM,gBAA+B;AAAA,MACnC,UAAU,MAAM;AAAA,MAChB,UAAU,CAAC,WAAW,SAAS,SAAS,QAAQ,GAAG,IAAI;AAAA,IACzD;AACA,UAAM,QAAQ,YAAY,IAAI,gBAAc,WAAW,aAAa,CAAC;AACrE,eAAW,QAAyB,GAAG,KAAK,EAAE,MAAM,QAAQ;AAC5D,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;;;AC1De,SAAR,SAA0B,QAA2C;AAC1E,SAAO,cAAc,MAAM,KAAK,UAAU,UAAU,OAAQ,OAAmC,SAAS;AAC1G;","names":["createStore"]}
Index: de_modules/redux/package.json
===================================================================
--- node_modules/redux/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-{
-  "name": "redux",
-  "version": "5.0.1",
-  "description": "Predictable state container for JavaScript apps",
-  "license": "MIT",
-  "homepage": "http://redux.js.org",
-  "repository": "github:reduxjs/redux",
-  "bugs": "https://github.com/reduxjs/redux/issues",
-  "keywords": [
-    "redux",
-    "reducer",
-    "state",
-    "predictable",
-    "functional",
-    "immutable",
-    "hot",
-    "live",
-    "replay",
-    "flux",
-    "elm"
-  ],
-  "authors": [
-    "Dan Abramov <dan.abramov@me.com> (https://github.com/gaearon)",
-    "Andrew Clark <acdlite@me.com> (https://github.com/acdlite)"
-  ],
-  "main": "dist/cjs/redux.cjs",
-  "module": "dist/redux.legacy-esm.js",
-  "types": "dist/redux.d.ts",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "types": "./dist/redux.d.ts",
-      "import": "./dist/redux.mjs",
-      "default": "./dist/cjs/redux.cjs"
-    }
-  },
-  "files": [
-    "dist",
-    "src"
-  ],
-  "scripts": {
-    "clean": "rimraf dist",
-    "format": "prettier --write \"{src,test}/**/*.{js,ts}\" \"**/*.md\"",
-    "format:check": "prettier --list-different \"{src,test}/**/*.{js,ts}\" \"**/*.md\"",
-    "lint": "eslint --ext js,ts src test",
-    "check-types": "tsc --noEmit && echo \"Types compiled\"",
-    "test": "vitest --run",
-    "test:types": "tsc -p test/typescript && echo \"Typetests passed\"",
-    "test:watch": "vitest",
-    "test:cov": "vitest --coverage",
-    "test:typecheck": "tsc -p test && echo \"Types passed\"",
-    "build": "tsup",
-    "prepublishOnly": "yarn clean && yarn check-types && yarn format:check && yarn lint && yarn test",
-    "prepack": "yarn build",
-    "examples:lint": "eslint --ext js,ts examples",
-    "examples:test": "cross-env CI=true babel-node examples/testAll.js",
-    "tsc": "tsc"
-  },
-  "devDependencies": {
-    "@babel/core": "^7.19.0",
-    "@types/node": "^18.7.16",
-    "@typescript-eslint/eslint-plugin": "^6",
-    "@typescript-eslint/parser": "^6",
-    "cross-env": "^7.0.3",
-    "esbuild-extra": "^0.1.3",
-    "eslint": "^8.23.0",
-    "eslint-config-react-app": "^7.0.1",
-    "eslint-import-resolver-typescript": "^3.5.1",
-    "eslint-plugin-import": "^2.26.0",
-    "eslint-plugin-react": "^7.31.8",
-    "eslint-plugin-react-hooks": "^4.6.0",
-    "glob": "^8.0.3",
-    "netlify-plugin-cache": "^1.0.3",
-    "prettier": "^2.7.1",
-    "rimraf": "^3.0.2",
-    "rxjs": "^7.5.6",
-    "tsup": "7.0.0",
-    "typescript": "5.2",
-    "vitest": "^0.34.0"
-  },
-  "resolutions": {
-    "esbuild": "0.19.7",
-    "@typescript-eslint/eslint-plugin": "6.12.0",
-    "@typescript-eslint/parser": "6.12.0"
-  },
-  "sideEffects": false
-}
Index: de_modules/redux/src/applyMiddleware.ts
===================================================================
--- node_modules/redux/src/applyMiddleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,77 +1,0 @@
-import compose from './compose'
-import { Middleware, MiddlewareAPI } from './types/middleware'
-import { StoreEnhancer, Dispatch } from './types/store'
-
-/**
- * Creates a store enhancer that applies middleware to the dispatch method
- * of the Redux store. This is handy for a variety of tasks, such as expressing
- * asynchronous actions in a concise manner, or logging every action payload.
- *
- * See `redux-thunk` package as an example of the Redux middleware.
- *
- * Because middleware is potentially asynchronous, this should be the first
- * store enhancer in the composition chain.
- *
- * Note that each middleware will be given the `dispatch` and `getState` functions
- * as named arguments.
- *
- * @param middlewares The middleware chain to be applied.
- * @returns A store enhancer applying the middleware.
- *
- * @template Ext Dispatch signature added by a middleware.
- * @template S The type of the state supported by a middleware.
- */
-export default function applyMiddleware(): StoreEnhancer
-export default function applyMiddleware<Ext1, S>(
-  middleware1: Middleware<Ext1, S, any>
-): StoreEnhancer<{ dispatch: Ext1 }>
-export default function applyMiddleware<Ext1, Ext2, S>(
-  middleware1: Middleware<Ext1, S, any>,
-  middleware2: Middleware<Ext2, S, any>
-): StoreEnhancer<{ dispatch: Ext1 & Ext2 }>
-export default function applyMiddleware<Ext1, Ext2, Ext3, S>(
-  middleware1: Middleware<Ext1, S, any>,
-  middleware2: Middleware<Ext2, S, any>,
-  middleware3: Middleware<Ext3, S, any>
-): StoreEnhancer<{ dispatch: Ext1 & Ext2 & Ext3 }>
-export default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(
-  middleware1: Middleware<Ext1, S, any>,
-  middleware2: Middleware<Ext2, S, any>,
-  middleware3: Middleware<Ext3, S, any>,
-  middleware4: Middleware<Ext4, S, any>
-): StoreEnhancer<{ dispatch: Ext1 & Ext2 & Ext3 & Ext4 }>
-export default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(
-  middleware1: Middleware<Ext1, S, any>,
-  middleware2: Middleware<Ext2, S, any>,
-  middleware3: Middleware<Ext3, S, any>,
-  middleware4: Middleware<Ext4, S, any>,
-  middleware5: Middleware<Ext5, S, any>
-): StoreEnhancer<{ dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5 }>
-export default function applyMiddleware<Ext, S = any>(
-  ...middlewares: Middleware<any, S, any>[]
-): StoreEnhancer<{ dispatch: Ext }>
-export default function applyMiddleware(
-  ...middlewares: Middleware[]
-): StoreEnhancer<any> {
-  return createStore => (reducer, preloadedState) => {
-    const store = createStore(reducer, preloadedState)
-    let dispatch: Dispatch = () => {
-      throw new Error(
-        'Dispatching while constructing your middleware is not allowed. ' +
-          'Other middleware would not be applied to this dispatch.'
-      )
-    }
-
-    const middlewareAPI: MiddlewareAPI = {
-      getState: store.getState,
-      dispatch: (action, ...args) => dispatch(action, ...args)
-    }
-    const chain = middlewares.map(middleware => middleware(middlewareAPI))
-    dispatch = compose<typeof dispatch>(...chain)(store.dispatch)
-
-    return {
-      ...store,
-      dispatch
-    }
-  }
-}
Index: de_modules/redux/src/bindActionCreators.ts
===================================================================
--- node_modules/redux/src/bindActionCreators.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-import { Dispatch } from './types/store'
-import { ActionCreator, ActionCreatorsMapObject, Action } from './types/actions'
-import { kindOf } from './utils/kindOf'
-
-function bindActionCreator<A extends Action>(
-  actionCreator: ActionCreator<A>,
-  dispatch: Dispatch<A>
-) {
-  return function (this: any, ...args: any[]) {
-    return dispatch(actionCreator.apply(this, args))
-  }
-}
-
-/**
- * Turns an object whose values are action creators, into an object with the
- * same keys, but with every function wrapped into a `dispatch` call so they
- * may be invoked directly. This is just a convenience method, as you can call
- * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
- *
- * For convenience, you can also pass an action creator as the first argument,
- * and get a dispatch wrapped function in return.
- *
- * @param actionCreators An object whose values are action
- * creator functions. One handy way to obtain it is to use `import * as`
- * syntax. You may also pass a single function.
- *
- * @param dispatch The `dispatch` function available on your Redux
- * store.
- *
- * @returns The object mimicking the original object, but with
- * every action creator wrapped into the `dispatch` call. If you passed a
- * function as `actionCreators`, the return value will also be a single
- * function.
- */
-export default function bindActionCreators<A, C extends ActionCreator<A>>(
-  actionCreator: C,
-  dispatch: Dispatch
-): C
-
-export default function bindActionCreators<
-  A extends ActionCreator<any>,
-  B extends ActionCreator<any>
->(actionCreator: A, dispatch: Dispatch): B
-
-export default function bindActionCreators<
-  A,
-  M extends ActionCreatorsMapObject<A>
->(actionCreators: M, dispatch: Dispatch): M
-export default function bindActionCreators<
-  M extends ActionCreatorsMapObject,
-  N extends ActionCreatorsMapObject
->(actionCreators: M, dispatch: Dispatch): N
-
-export default function bindActionCreators(
-  actionCreators: ActionCreator<any> | ActionCreatorsMapObject,
-  dispatch: Dispatch
-) {
-  if (typeof actionCreators === 'function') {
-    return bindActionCreator(actionCreators, dispatch)
-  }
-
-  if (typeof actionCreators !== 'object' || actionCreators === null) {
-    throw new Error(
-      `bindActionCreators expected an object or a function, but instead received: '${kindOf(
-        actionCreators
-      )}'. ` +
-        `Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`
-    )
-  }
-
-  const boundActionCreators: ActionCreatorsMapObject = {}
-  for (const key in actionCreators) {
-    const actionCreator = actionCreators[key]
-    if (typeof actionCreator === 'function') {
-      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch)
-    }
-  }
-  return boundActionCreators
-}
Index: de_modules/redux/src/combineReducers.ts
===================================================================
--- node_modules/redux/src/combineReducers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,201 +1,0 @@
-import { Action } from './types/actions'
-import {
-  ActionFromReducersMapObject,
-  PreloadedStateShapeFromReducersMapObject,
-  Reducer,
-  StateFromReducersMapObject
-} from './types/reducers'
-
-import ActionTypes from './utils/actionTypes'
-import isPlainObject from './utils/isPlainObject'
-import warning from './utils/warning'
-import { kindOf } from './utils/kindOf'
-
-function getUnexpectedStateShapeWarningMessage(
-  inputState: object,
-  reducers: { [key: string]: Reducer<any, any, any> },
-  action: Action,
-  unexpectedKeyCache: { [key: string]: true }
-) {
-  const reducerKeys = Object.keys(reducers)
-  const argumentName =
-    action && action.type === ActionTypes.INIT
-      ? 'preloadedState argument passed to createStore'
-      : 'previous state received by the reducer'
-
-  if (reducerKeys.length === 0) {
-    return (
-      'Store does not have a valid reducer. Make sure the argument passed ' +
-      'to combineReducers is an object whose values are reducers.'
-    )
-  }
-
-  if (!isPlainObject(inputState)) {
-    return (
-      `The ${argumentName} has unexpected type of "${kindOf(
-        inputState
-      )}". Expected argument to be an object with the following ` +
-      `keys: "${reducerKeys.join('", "')}"`
-    )
-  }
-
-  const unexpectedKeys = Object.keys(inputState).filter(
-    key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]
-  )
-
-  unexpectedKeys.forEach(key => {
-    unexpectedKeyCache[key] = true
-  })
-
-  if (action && action.type === ActionTypes.REPLACE) return
-
-  if (unexpectedKeys.length > 0) {
-    return (
-      `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` +
-      `"${unexpectedKeys.join('", "')}" found in ${argumentName}. ` +
-      `Expected to find one of the known reducer keys instead: ` +
-      `"${reducerKeys.join('", "')}". Unexpected keys will be ignored.`
-    )
-  }
-}
-
-function assertReducerShape(reducers: {
-  [key: string]: Reducer<any, any, any>
-}) {
-  Object.keys(reducers).forEach(key => {
-    const reducer = reducers[key]
-    const initialState = reducer(undefined, { type: ActionTypes.INIT })
-
-    if (typeof initialState === 'undefined') {
-      throw new Error(
-        `The slice reducer for key "${key}" returned undefined during initialization. ` +
-          `If the state passed to the reducer is undefined, you must ` +
-          `explicitly return the initial state. The initial state may ` +
-          `not be undefined. If you don't want to set a value for this reducer, ` +
-          `you can use null instead of undefined.`
-      )
-    }
-
-    if (
-      typeof reducer(undefined, {
-        type: ActionTypes.PROBE_UNKNOWN_ACTION()
-      }) === 'undefined'
-    ) {
-      throw new Error(
-        `The slice reducer for key "${key}" returned undefined when probed with a random type. ` +
-          `Don't try to handle '${ActionTypes.INIT}' or other actions in "redux/*" ` +
-          `namespace. They are considered private. Instead, you must return the ` +
-          `current state for any unknown actions, unless it is undefined, ` +
-          `in which case you must return the initial state, regardless of the ` +
-          `action type. The initial state may not be undefined, but can be null.`
-      )
-    }
-  })
-}
-
-/**
- * Turns an object whose values are different reducer functions, into a single
- * reducer function. It will call every child reducer, and gather their results
- * into a single state object, whose keys correspond to the keys of the passed
- * reducer functions.
- *
- * @template S Combined state object type.
- *
- * @param reducers An object whose values correspond to different reducer
- *   functions that need to be combined into one. One handy way to obtain it
- *   is to use `import * as reducers` syntax. The reducers may never
- *   return undefined for any action. Instead, they should return their
- *   initial state if the state passed to them was undefined, and the current
- *   state for any unrecognized action.
- *
- * @returns A reducer function that invokes every reducer inside the passed
- *   object, and builds a state object with the same shape.
- */
-export default function combineReducers<M>(
-  reducers: M
-): M[keyof M] extends Reducer<any, any, any> | undefined
-  ? Reducer<
-      StateFromReducersMapObject<M>,
-      ActionFromReducersMapObject<M>,
-      Partial<PreloadedStateShapeFromReducersMapObject<M>>
-    >
-  : never
-export default function combineReducers(reducers: {
-  [key: string]: Reducer<any, any, any>
-}) {
-  const reducerKeys = Object.keys(reducers)
-  const finalReducers: { [key: string]: Reducer<any, any, any> } = {}
-  for (let i = 0; i < reducerKeys.length; i++) {
-    const key = reducerKeys[i]
-
-    if (process.env.NODE_ENV !== 'production') {
-      if (typeof reducers[key] === 'undefined') {
-        warning(`No reducer provided for key "${key}"`)
-      }
-    }
-
-    if (typeof reducers[key] === 'function') {
-      finalReducers[key] = reducers[key]
-    }
-  }
-  const finalReducerKeys = Object.keys(finalReducers)
-
-  // This is used to make sure we don't warn about the same
-  // keys multiple times.
-  let unexpectedKeyCache: { [key: string]: true }
-  if (process.env.NODE_ENV !== 'production') {
-    unexpectedKeyCache = {}
-  }
-
-  let shapeAssertionError: unknown
-  try {
-    assertReducerShape(finalReducers)
-  } catch (e) {
-    shapeAssertionError = e
-  }
-
-  return function combination(
-    state: StateFromReducersMapObject<typeof reducers> = {},
-    action: Action
-  ) {
-    if (shapeAssertionError) {
-      throw shapeAssertionError
-    }
-
-    if (process.env.NODE_ENV !== 'production') {
-      const warningMessage = getUnexpectedStateShapeWarningMessage(
-        state,
-        finalReducers,
-        action,
-        unexpectedKeyCache
-      )
-      if (warningMessage) {
-        warning(warningMessage)
-      }
-    }
-
-    let hasChanged = false
-    const nextState: StateFromReducersMapObject<typeof reducers> = {}
-    for (let i = 0; i < finalReducerKeys.length; i++) {
-      const key = finalReducerKeys[i]
-      const reducer = finalReducers[key]
-      const previousStateForKey = state[key]
-      const nextStateForKey = reducer(previousStateForKey, action)
-      if (typeof nextStateForKey === 'undefined') {
-        const actionType = action && action.type
-        throw new Error(
-          `When called with an action of type ${
-            actionType ? `"${String(actionType)}"` : '(unknown type)'
-          }, the slice reducer for key "${key}" returned undefined. ` +
-            `To ignore an action, you must explicitly return the previous state. ` +
-            `If you want this reducer to hold no value, you can return null instead of undefined.`
-        )
-      }
-      nextState[key] = nextStateForKey
-      hasChanged = hasChanged || nextStateForKey !== previousStateForKey
-    }
-    hasChanged =
-      hasChanged || finalReducerKeys.length !== Object.keys(state).length
-    return hasChanged ? nextState : state
-  }
-}
Index: de_modules/redux/src/compose.ts
===================================================================
--- node_modules/redux/src/compose.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-type Func<T extends any[], R> = (...a: T) => R
-
-/**
- * Composes single-argument functions from right to left. The rightmost
- * function can take multiple arguments as it provides the signature for the
- * resulting composite function.
- *
- * @param funcs The functions to compose.
- * @returns A function obtained by composing the argument functions from right
- *   to left. For example, `compose(f, g, h)` is identical to doing
- *   `(...args) => f(g(h(...args)))`.
- */
-export default function compose(): <R>(a: R) => R
-
-export default function compose<F extends Function>(f: F): F
-
-/* two functions */
-export default function compose<A, T extends any[], R>(
-  f1: (a: A) => R,
-  f2: Func<T, A>
-): Func<T, R>
-
-/* three functions */
-export default function compose<A, B, T extends any[], R>(
-  f1: (b: B) => R,
-  f2: (a: A) => B,
-  f3: Func<T, A>
-): Func<T, R>
-
-/* four functions */
-export default function compose<A, B, C, T extends any[], R>(
-  f1: (c: C) => R,
-  f2: (b: B) => C,
-  f3: (a: A) => B,
-  f4: Func<T, A>
-): Func<T, R>
-
-/* rest */
-export default function compose<R>(
-  f1: (a: any) => R,
-  ...funcs: Function[]
-): (...args: any[]) => R
-
-export default function compose<R>(...funcs: Function[]): (...args: any[]) => R
-
-export default function compose(...funcs: Function[]) {
-  if (funcs.length === 0) {
-    // infer the argument type so it is usable in inference down the line
-    return <T>(arg: T) => arg
-  }
-
-  if (funcs.length === 1) {
-    return funcs[0]
-  }
-
-  return funcs.reduce(
-    (a, b) =>
-      (...args: any) =>
-        a(b(...args))
-  )
-}
Index: de_modules/redux/src/createStore.ts
===================================================================
--- node_modules/redux/src/createStore.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,490 +1,0 @@
-import $$observable from './utils/symbol-observable'
-
-import {
-  Store,
-  StoreEnhancer,
-  Dispatch,
-  Observer,
-  ListenerCallback,
-  UnknownIfNonSpecific
-} from './types/store'
-import { Action } from './types/actions'
-import { Reducer } from './types/reducers'
-import ActionTypes from './utils/actionTypes'
-import isPlainObject from './utils/isPlainObject'
-import { kindOf } from './utils/kindOf'
-
-/**
- * @deprecated
- *
- * **We recommend using the `configureStore` method
- * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
- *
- * Redux Toolkit is our recommended approach for writing Redux logic today,
- * including store setup, reducers, data fetching, and more.
- *
- * **For more details, please read this Redux docs page:**
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * `configureStore` from Redux Toolkit is an improved version of `createStore` that
- * simplifies setup and helps avoid common bugs.
- *
- * You should not be using the `redux` core package by itself today, except for learning purposes.
- * The `createStore` method from the core `redux` package will not be removed, but we encourage
- * all users to migrate to using Redux Toolkit for all Redux code.
- *
- * If you want to use `createStore` without this visual deprecation warning, use
- * the `legacy_createStore` import instead:
- *
- * `import { legacy_createStore as createStore} from 'redux'`
- *
- */
-export function createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {}
->(
-  reducer: Reducer<S, A>,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-/**
- * @deprecated
- *
- * **We recommend using the `configureStore` method
- * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
- *
- * Redux Toolkit is our recommended approach for writing Redux logic today,
- * including store setup, reducers, data fetching, and more.
- *
- * **For more details, please read this Redux docs page:**
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * `configureStore` from Redux Toolkit is an improved version of `createStore` that
- * simplifies setup and helps avoid common bugs.
- *
- * You should not be using the `redux` core package by itself today, except for learning purposes.
- * The `createStore` method from the core `redux` package will not be removed, but we encourage
- * all users to migrate to using Redux Toolkit for all Redux code.
- *
- * If you want to use `createStore` without this visual deprecation warning, use
- * the `legacy_createStore` import instead:
- *
- * `import { legacy_createStore as createStore} from 'redux'`
- *
- */
-export function createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {},
-  PreloadedState = S
->(
-  reducer: Reducer<S, A, PreloadedState>,
-  preloadedState?: PreloadedState | undefined,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-export function createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {},
-  PreloadedState = S
->(
-  reducer: Reducer<S, A, PreloadedState>,
-  preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {
-  if (typeof reducer !== 'function') {
-    throw new Error(
-      `Expected the root reducer to be a function. Instead, received: '${kindOf(
-        reducer
-      )}'`
-    )
-  }
-
-  if (
-    (typeof preloadedState === 'function' && typeof enhancer === 'function') ||
-    (typeof enhancer === 'function' && typeof arguments[3] === 'function')
-  ) {
-    throw new Error(
-      'It looks like you are passing several store enhancers to ' +
-        'createStore(). This is not supported. Instead, compose them ' +
-        'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.'
-    )
-  }
-
-  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
-    enhancer = preloadedState as StoreEnhancer<Ext, StateExt>
-    preloadedState = undefined
-  }
-
-  if (typeof enhancer !== 'undefined') {
-    if (typeof enhancer !== 'function') {
-      throw new Error(
-        `Expected the enhancer to be a function. Instead, received: '${kindOf(
-          enhancer
-        )}'`
-      )
-    }
-
-    return enhancer(createStore)(
-      reducer,
-      preloadedState as PreloadedState | undefined
-    )
-  }
-
-  let currentReducer = reducer
-  let currentState: S | PreloadedState | undefined = preloadedState as
-    | PreloadedState
-    | undefined
-  let currentListeners: Map<number, ListenerCallback> | null = new Map()
-  let nextListeners = currentListeners
-  let listenerIdCounter = 0
-  let isDispatching = false
-
-  /**
-   * This makes a shallow copy of currentListeners so we can use
-   * nextListeners as a temporary list while dispatching.
-   *
-   * This prevents any bugs around consumers calling
-   * subscribe/unsubscribe in the middle of a dispatch.
-   */
-  function ensureCanMutateNextListeners() {
-    if (nextListeners === currentListeners) {
-      nextListeners = new Map()
-      currentListeners.forEach((listener, key) => {
-        nextListeners.set(key, listener)
-      })
-    }
-  }
-
-  /**
-   * Reads the state tree managed by the store.
-   *
-   * @returns The current state tree of your application.
-   */
-  function getState(): S {
-    if (isDispatching) {
-      throw new Error(
-        'You may not call store.getState() while the reducer is executing. ' +
-          'The reducer has already received the state as an argument. ' +
-          'Pass it down from the top reducer instead of reading it from the store.'
-      )
-    }
-
-    return currentState as S
-  }
-
-  /**
-   * Adds a change listener. It will be called any time an action is dispatched,
-   * and some part of the state tree may potentially have changed. You may then
-   * call `getState()` to read the current state tree inside the callback.
-   *
-   * You may call `dispatch()` from a change listener, with the following
-   * caveats:
-   *
-   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
-   * If you subscribe or unsubscribe while the listeners are being invoked, this
-   * will not have any effect on the `dispatch()` that is currently in progress.
-   * However, the next `dispatch()` call, whether nested or not, will use a more
-   * recent snapshot of the subscription list.
-   *
-   * 2. The listener should not expect to see all state changes, as the state
-   * might have been updated multiple times during a nested `dispatch()` before
-   * the listener is called. It is, however, guaranteed that all subscribers
-   * registered before the `dispatch()` started will be called with the latest
-   * state by the time it exits.
-   *
-   * @param listener A callback to be invoked on every dispatch.
-   * @returns A function to remove this change listener.
-   */
-  function subscribe(listener: () => void) {
-    if (typeof listener !== 'function') {
-      throw new Error(
-        `Expected the listener to be a function. Instead, received: '${kindOf(
-          listener
-        )}'`
-      )
-    }
-
-    if (isDispatching) {
-      throw new Error(
-        'You may not call store.subscribe() while the reducer is executing. ' +
-          'If you would like to be notified after the store has been updated, subscribe from a ' +
-          'component and invoke store.getState() in the callback to access the latest state. ' +
-          'See https://redux.js.org/api/store#subscribelistener for more details.'
-      )
-    }
-
-    let isSubscribed = true
-
-    ensureCanMutateNextListeners()
-    const listenerId = listenerIdCounter++
-    nextListeners.set(listenerId, listener)
-
-    return function unsubscribe() {
-      if (!isSubscribed) {
-        return
-      }
-
-      if (isDispatching) {
-        throw new Error(
-          'You may not unsubscribe from a store listener while the reducer is executing. ' +
-            'See https://redux.js.org/api/store#subscribelistener for more details.'
-        )
-      }
-
-      isSubscribed = false
-
-      ensureCanMutateNextListeners()
-      nextListeners.delete(listenerId)
-      currentListeners = null
-    }
-  }
-
-  /**
-   * Dispatches an action. It is the only way to trigger a state change.
-   *
-   * The `reducer` function, used to create the store, will be called with the
-   * current state tree and the given `action`. Its return value will
-   * be considered the **next** state of the tree, and the change listeners
-   * will be notified.
-   *
-   * The base implementation only supports plain object actions. If you want to
-   * dispatch a Promise, an Observable, a thunk, or something else, you need to
-   * wrap your store creating function into the corresponding middleware. For
-   * example, see the documentation for the `redux-thunk` package. Even the
-   * middleware will eventually dispatch plain object actions using this method.
-   *
-   * @param action A plain object representing “what changed”. It is
-   * a good idea to keep actions serializable so you can record and replay user
-   * sessions, or use the time travelling `redux-devtools`. An action must have
-   * a `type` property which may not be `undefined`. It is a good idea to use
-   * string constants for action types.
-   *
-   * @returns For convenience, the same action object you dispatched.
-   *
-   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
-   * return something else (for example, a Promise you can await).
-   */
-  function dispatch(action: A) {
-    if (!isPlainObject(action)) {
-      throw new Error(
-        `Actions must be plain objects. Instead, the actual type was: '${kindOf(
-          action
-        )}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`
-      )
-    }
-
-    if (typeof action.type === 'undefined') {
-      throw new Error(
-        'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.'
-      )
-    }
-
-    if (typeof action.type !== 'string') {
-      throw new Error(
-        `Action "type" property must be a string. Instead, the actual type was: '${kindOf(
-          action.type
-        )}'. Value was: '${action.type}' (stringified)`
-      )
-    }
-
-    if (isDispatching) {
-      throw new Error('Reducers may not dispatch actions.')
-    }
-
-    try {
-      isDispatching = true
-      currentState = currentReducer(currentState, action)
-    } finally {
-      isDispatching = false
-    }
-
-    const listeners = (currentListeners = nextListeners)
-    listeners.forEach(listener => {
-      listener()
-    })
-    return action
-  }
-
-  /**
-   * Replaces the reducer currently used by the store to calculate the state.
-   *
-   * You might need this if your app implements code splitting and you want to
-   * load some of the reducers dynamically. You might also need this if you
-   * implement a hot reloading mechanism for Redux.
-   *
-   * @param nextReducer The reducer for the store to use instead.
-   */
-  function replaceReducer(nextReducer: Reducer<S, A>): void {
-    if (typeof nextReducer !== 'function') {
-      throw new Error(
-        `Expected the nextReducer to be a function. Instead, received: '${kindOf(
-          nextReducer
-        )}`
-      )
-    }
-
-    currentReducer = nextReducer as unknown as Reducer<S, A, PreloadedState>
-
-    // This action has a similar effect to ActionTypes.INIT.
-    // Any reducers that existed in both the new and old rootReducer
-    // will receive the previous state. This effectively populates
-    // the new state tree with any relevant data from the old one.
-    dispatch({ type: ActionTypes.REPLACE } as A)
-  }
-
-  /**
-   * Interoperability point for observable/reactive libraries.
-   * @returns A minimal observable of state changes.
-   * For more information, see the observable proposal:
-   * https://github.com/tc39/proposal-observable
-   */
-  function observable() {
-    const outerSubscribe = subscribe
-    return {
-      /**
-       * The minimal observable subscription method.
-       * @param observer Any object that can be used as an observer.
-       * The observer object should have a `next` method.
-       * @returns An object with an `unsubscribe` method that can
-       * be used to unsubscribe the observable from the store, and prevent further
-       * emission of values from the observable.
-       */
-      subscribe(observer: unknown) {
-        if (typeof observer !== 'object' || observer === null) {
-          throw new TypeError(
-            `Expected the observer to be an object. Instead, received: '${kindOf(
-              observer
-            )}'`
-          )
-        }
-
-        function observeState() {
-          const observerAsObserver = observer as Observer<S>
-          if (observerAsObserver.next) {
-            observerAsObserver.next(getState())
-          }
-        }
-
-        observeState()
-        const unsubscribe = outerSubscribe(observeState)
-        return { unsubscribe }
-      },
-
-      [$$observable]() {
-        return this
-      }
-    }
-  }
-
-  // When a store is created, an "INIT" action is dispatched so that every
-  // reducer returns their initial state. This effectively populates
-  // the initial state tree.
-  dispatch({ type: ActionTypes.INIT } as A)
-
-  const store = {
-    dispatch: dispatch as Dispatch<A>,
-    subscribe,
-    getState,
-    replaceReducer,
-    [$$observable]: observable
-  } as unknown as Store<S, A, StateExt> & Ext
-  return store
-}
-
-/**
- * Creates a Redux store that holds the state tree.
- *
- * **We recommend using `configureStore` from the
- * `@reduxjs/toolkit` package**, which replaces `createStore`:
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * The only way to change the data in the store is to call `dispatch()` on it.
- *
- * There should only be a single store in your app. To specify how different
- * parts of the state tree respond to actions, you may combine several reducers
- * into a single reducer function by using `combineReducers`.
- *
- * @param {Function} reducer A function that returns the next state tree, given
- * the current state tree and the action to handle.
- *
- * @param {any} [preloadedState] The initial state. You may optionally specify it
- * to hydrate the state from the server in universal apps, or to restore a
- * previously serialized user session.
- * If you use `combineReducers` to produce the root reducer function, this must be
- * an object with the same shape as `combineReducers` keys.
- *
- * @param {Function} [enhancer] The store enhancer. You may optionally specify it
- * to enhance the store with third-party capabilities such as middleware,
- * time travel, persistence, etc. The only store enhancer that ships with Redux
- * is `applyMiddleware()`.
- *
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
- * and subscribe to changes.
- */
-export function legacy_createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {}
->(
-  reducer: Reducer<S, A>,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-/**
- * Creates a Redux store that holds the state tree.
- *
- * **We recommend using `configureStore` from the
- * `@reduxjs/toolkit` package**, which replaces `createStore`:
- * **https://redux.js.org/introduction/why-rtk-is-redux-today**
- *
- * The only way to change the data in the store is to call `dispatch()` on it.
- *
- * There should only be a single store in your app. To specify how different
- * parts of the state tree respond to actions, you may combine several reducers
- * into a single reducer function by using `combineReducers`.
- *
- * @param {Function} reducer A function that returns the next state tree, given
- * the current state tree and the action to handle.
- *
- * @param {any} [preloadedState] The initial state. You may optionally specify it
- * to hydrate the state from the server in universal apps, or to restore a
- * previously serialized user session.
- * If you use `combineReducers` to produce the root reducer function, this must be
- * an object with the same shape as `combineReducers` keys.
- *
- * @param {Function} [enhancer] The store enhancer. You may optionally specify it
- * to enhance the store with third-party capabilities such as middleware,
- * time travel, persistence, etc. The only store enhancer that ships with Redux
- * is `applyMiddleware()`.
- *
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
- * and subscribe to changes.
- */
-export function legacy_createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {},
-  PreloadedState = S
->(
-  reducer: Reducer<S, A, PreloadedState>,
-  preloadedState?: PreloadedState | undefined,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-export function legacy_createStore<
-  S,
-  A extends Action,
-  Ext extends {} = {},
-  StateExt extends {} = {},
-  PreloadedState = S
->(
-  reducer: Reducer<S, A>,
-  preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined,
-  enhancer?: StoreEnhancer<Ext, StateExt>
-): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {
-  return createStore(reducer, preloadedState as any, enhancer)
-}
Index: de_modules/redux/src/index.ts
===================================================================
--- node_modules/redux/src/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-// functions
-import { createStore, legacy_createStore } from './createStore'
-import combineReducers from './combineReducers'
-import bindActionCreators from './bindActionCreators'
-import applyMiddleware from './applyMiddleware'
-import compose from './compose'
-import isAction from './utils/isAction'
-import isPlainObject from './utils/isPlainObject'
-import __DO_NOT_USE__ActionTypes from './utils/actionTypes'
-
-// types
-// store
-export {
-  Dispatch,
-  Unsubscribe,
-  Observable,
-  Observer,
-  Store,
-  StoreCreator,
-  StoreEnhancer,
-  StoreEnhancerStoreCreator
-} from './types/store'
-// reducers
-export {
-  Reducer,
-  ReducersMapObject,
-  StateFromReducersMapObject,
-  ReducerFromReducersMapObject,
-  ActionFromReducer,
-  ActionFromReducersMapObject,
-  PreloadedStateShapeFromReducersMapObject
-} from './types/reducers'
-// action creators
-export { ActionCreator, ActionCreatorsMapObject } from './types/actions'
-// middleware
-export { MiddlewareAPI, Middleware } from './types/middleware'
-// actions
-export { Action, UnknownAction, AnyAction } from './types/actions'
-
-export {
-  createStore,
-  legacy_createStore,
-  combineReducers,
-  bindActionCreators,
-  applyMiddleware,
-  compose,
-  isAction,
-  isPlainObject,
-  __DO_NOT_USE__ActionTypes
-}
Index: de_modules/redux/src/types/actions.ts
===================================================================
--- node_modules/redux/src/types/actions.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,74 +1,0 @@
-/**
- * An *action* is a plain object that represents an intention to change the
- * state. Actions are the only way to get data into the store. Any data,
- * whether from UI events, network callbacks, or other sources such as
- * WebSockets needs to eventually be dispatched as actions.
- *
- * Actions must have a `type` field that indicates the type of action being
- * performed. Types can be defined as constants and imported from another
- * module. These must be strings, as strings are serializable.
- *
- * Other than `type`, the structure of an action object is really up to you.
- * If you're interested, check out Flux Standard Action for recommendations on
- * how actions should be constructed.
- *
- * @template T the type of the action's `type` tag.
- */
-// this needs to be a type, not an interface
-// https://github.com/microsoft/TypeScript/issues/15300
-export type Action<T extends string = string> = {
-  type: T
-}
-
-/**
- * An Action type which accepts any other properties.
- * This is mainly for the use of the `Reducer` type.
- * This is not part of `Action` itself to prevent types that extend `Action` from
- * having an index signature.
- */
-export interface UnknownAction extends Action {
-  // Allows any extra properties to be defined in an action.
-  [extraProps: string]: unknown
-}
-
-/**
- * An Action type which accepts any other properties.
- * This is mainly for the use of the `Reducer` type.
- * This is not part of `Action` itself to prevent types that extend `Action` from
- * having an index signature.
- * @deprecated use Action or UnknownAction instead
- */
-export interface AnyAction extends Action {
-  // Allows any extra properties to be defined in an action.
-  [extraProps: string]: any
-}
-
-/* action creators */
-
-/**
- * An *action creator* is, quite simply, a function that creates an action. Do
- * not confuse the two terms—again, an action is a payload of information, and
- * an action creator is a factory that creates an action.
- *
- * Calling an action creator only produces an action, but does not dispatch
- * it. You need to call the store's `dispatch` function to actually cause the
- * mutation. Sometimes we say *bound action creators* to mean functions that
- * call an action creator and immediately dispatch its result to a specific
- * store instance.
- *
- * If an action creator needs to read the current state, perform an API call,
- * or cause a side effect, like a routing transition, it should return an
- * async action instead of an action.
- *
- * @template A Returned action type.
- */
-export interface ActionCreator<A, P extends any[] = any[]> {
-  (...args: P): A
-}
-
-/**
- * Object whose values are action creator functions.
- */
-export interface ActionCreatorsMapObject<A = any, P extends any[] = any[]> {
-  [key: string]: ActionCreator<A, P>
-}
Index: de_modules/redux/src/types/middleware.ts
===================================================================
--- node_modules/redux/src/types/middleware.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-import { Dispatch } from './store'
-
-export interface MiddlewareAPI<D extends Dispatch = Dispatch, S = any> {
-  dispatch: D
-  getState(): S
-}
-
-/**
- * A middleware is a higher-order function that composes a dispatch function
- * to return a new dispatch function. It often turns async actions into
- * actions.
- *
- * Middleware is composable using function composition. It is useful for
- * logging actions, performing side effects like routing, or turning an
- * asynchronous API call into a series of synchronous actions.
- *
- * @template DispatchExt Extra Dispatch signature added by this middleware.
- * @template S The type of the state supported by this middleware.
- * @template D The type of Dispatch of the store where this middleware is
- *   installed.
- */
-export interface Middleware<
-  _DispatchExt = {}, // TODO: see if this can be used in type definition somehow (can't be removed, as is used to get final dispatch type)
-  S = any,
-  D extends Dispatch = Dispatch
-> {
-  (api: MiddlewareAPI<D, S>): (
-    next: (action: unknown) => unknown
-  ) => (action: unknown) => unknown
-}
Index: de_modules/redux/src/types/reducers.ts
===================================================================
--- node_modules/redux/src/types/reducers.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,115 +1,0 @@
-import { Action, UnknownAction } from './actions'
-
-/* reducers */
-
-/**
- * A *reducer* is a function that accepts
- * an accumulation and a value and returns a new accumulation. They are used
- * to reduce a collection of values down to a single value
- *
- * Reducers are not unique to Redux—they are a fundamental concept in
- * functional programming.  Even most non-functional languages, like
- * JavaScript, have a built-in API for reducing. In JavaScript, it's
- * `Array.prototype.reduce()`.
- *
- * In Redux, the accumulated value is the state object, and the values being
- * accumulated are actions. Reducers calculate a new state given the previous
- * state and an action. They must be *pure functions*—functions that return
- * the exact same output for given inputs. They should also be free of
- * side-effects. This is what enables exciting features like hot reloading and
- * time travel.
- *
- * Reducers are the most important concept in Redux.
- *
- * *Do not put API calls into reducers.*
- *
- * @template S The type of state consumed and produced by this reducer.
- * @template A The type of actions the reducer can potentially respond to.
- * @template PreloadedState The type of state consumed by this reducer the first time it's called.
- */
-export type Reducer<
-  S = any,
-  A extends Action = UnknownAction,
-  PreloadedState = S
-> = (state: S | PreloadedState | undefined, action: A) => S
-
-/**
- * Object whose values correspond to different reducer functions.
- *
- * @template S The combined state of the reducers.
- * @template A The type of actions the reducers can potentially respond to.
- * @template PreloadedState The combined preloaded state of the reducers.
- */
-export type ReducersMapObject<
-  S = any,
-  A extends Action = UnknownAction,
-  PreloadedState = S
-> = keyof PreloadedState extends keyof S
-  ? {
-      [K in keyof S]: Reducer<
-        S[K],
-        A,
-        K extends keyof PreloadedState ? PreloadedState[K] : never
-      >
-    }
-  : never
-
-/**
- * Infer a combined state shape from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-export type StateFromReducersMapObject<M> = M[keyof M] extends
-  | Reducer<any, any, any>
-  | undefined
-  ? {
-      [P in keyof M]: M[P] extends Reducer<infer S, any, any> ? S : never
-    }
-  : never
-
-/**
- * Infer reducer union type from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-export type ReducerFromReducersMapObject<M> = M[keyof M] extends
-  | Reducer<any, any, any>
-  | undefined
-  ? M[keyof M]
-  : never
-
-/**
- * Infer action type from a reducer function.
- *
- * @template R Type of reducer.
- */
-export type ActionFromReducer<R> = R extends Reducer<any, infer A, any>
-  ? A
-  : never
-
-/**
- * Infer action union type from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-export type ActionFromReducersMapObject<M> = ActionFromReducer<
-  ReducerFromReducersMapObject<M>
->
-
-/**
- * Infer a combined preloaded state shape from a `ReducersMapObject`.
- *
- * @template M Object map of reducers as provided to `combineReducers(map: M)`.
- */
-export type PreloadedStateShapeFromReducersMapObject<M> = M[keyof M] extends
-  | Reducer<any, any, any>
-  | undefined
-  ? {
-      [P in keyof M]: M[P] extends (
-        inputState: infer InputState,
-        action: UnknownAction
-      ) => any
-        ? InputState
-        : never
-    }
-  : never
Index: de_modules/redux/src/types/store.ts
===================================================================
--- node_modules/redux/src/types/store.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,232 +1,0 @@
-import { Action, UnknownAction } from './actions'
-import { Reducer } from './reducers'
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-import _$$observable from '../utils/symbol-observable'
-
-/**
- * A *dispatching function* (or simply *dispatch function*) is a function that
- * accepts an action or an async action; it then may or may not dispatch one
- * or more actions to the store.
- *
- * We must distinguish between dispatching functions in general and the base
- * `dispatch` function provided by the store instance without any middleware.
- *
- * The base dispatch function *always* synchronously sends an action to the
- * store's reducer, along with the previous state returned by the store, to
- * calculate a new state. It expects actions to be plain objects ready to be
- * consumed by the reducer.
- *
- * Middleware wraps the base dispatch function. It allows the dispatch
- * function to handle async actions in addition to actions. Middleware may
- * transform, delay, ignore, or otherwise interpret actions or async actions
- * before passing them to the next middleware.
- *
- * @template A The type of things (actions or otherwise) which may be
- *   dispatched.
- */
-export interface Dispatch<A extends Action = UnknownAction> {
-  <T extends A>(action: T, ...extraArgs: any[]): T
-}
-
-/**
- * Function to remove listener added by `Store.subscribe()`.
- */
-export interface Unsubscribe {
-  (): void
-}
-
-export type ListenerCallback = () => void
-
-declare global {
-  interface SymbolConstructor {
-    readonly observable: symbol
-  }
-}
-
-/**
- * A minimal observable of state changes.
- * For more information, see the observable proposal:
- * https://github.com/tc39/proposal-observable
- */
-export type Observable<T> = {
-  /**
-   * The minimal observable subscription method.
-   * @param {Object} observer Any object that can be used as an observer.
-   * The observer object should have a `next` method.
-   * @returns {subscription} An object with an `unsubscribe` method that can
-   * be used to unsubscribe the observable from the store, and prevent further
-   * emission of values from the observable.
-   */
-  subscribe: (observer: Observer<T>) => { unsubscribe: Unsubscribe }
-  [Symbol.observable](): Observable<T>
-}
-
-/**
- * An Observer is used to receive data from an Observable, and is supplied as
- * an argument to subscribe.
- */
-export type Observer<T> = {
-  next?(value: T): void
-}
-
-/**
- * A store is an object that holds the application's state tree.
- * There should only be a single store in a Redux app, as the composition
- * happens on the reducer level.
- *
- * @template S The type of state held by this store.
- * @template A the type of actions which may be dispatched by this store.
- * @template StateExt any extension to state from store enhancers
- */
-export interface Store<
-  S = any,
-  A extends Action = UnknownAction,
-  StateExt extends unknown = unknown
-> {
-  /**
-   * Dispatches an action. It is the only way to trigger a state change.
-   *
-   * The `reducer` function, used to create the store, will be called with the
-   * current state tree and the given `action`. Its return value will be
-   * considered the **next** state of the tree, and the change listeners will
-   * be notified.
-   *
-   * The base implementation only supports plain object actions. If you want
-   * to dispatch a Promise, an Observable, a thunk, or something else, you
-   * need to wrap your store creating function into the corresponding
-   * middleware. For example, see the documentation for the `redux-thunk`
-   * package. Even the middleware will eventually dispatch plain object
-   * actions using this method.
-   *
-   * @param action A plain object representing “what changed”. It is a good
-   *   idea to keep actions serializable so you can record and replay user
-   *   sessions, or use the time travelling `redux-devtools`. An action must
-   *   have a `type` property which may not be `undefined`. It is a good idea
-   *   to use string constants for action types.
-   *
-   * @returns For convenience, the same action object you dispatched.
-   *
-   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
-   * return something else (for example, a Promise you can await).
-   */
-  dispatch: Dispatch<A>
-
-  /**
-   * Reads the state tree managed by the store.
-   *
-   * @returns The current state tree of your application.
-   */
-  getState(): S & StateExt
-
-  /**
-   * Adds a change listener. It will be called any time an action is
-   * dispatched, and some part of the state tree may potentially have changed.
-   * You may then call `getState()` to read the current state tree inside the
-   * callback.
-   *
-   * You may call `dispatch()` from a change listener, with the following
-   * caveats:
-   *
-   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
-   * If you subscribe or unsubscribe while the listeners are being invoked,
-   * this will not have any effect on the `dispatch()` that is currently in
-   * progress. However, the next `dispatch()` call, whether nested or not,
-   * will use a more recent snapshot of the subscription list.
-   *
-   * 2. The listener should not expect to see all states changes, as the state
-   * might have been updated multiple times during a nested `dispatch()` before
-   * the listener is called. It is, however, guaranteed that all subscribers
-   * registered before the `dispatch()` started will be called with the latest
-   * state by the time it exits.
-   *
-   * @param listener A callback to be invoked on every dispatch.
-   * @returns A function to remove this change listener.
-   */
-  subscribe(listener: ListenerCallback): Unsubscribe
-
-  /**
-   * Replaces the reducer currently used by the store to calculate the state.
-   *
-   * You might need this if your app implements code splitting and you want to
-   * load some of the reducers dynamically. You might also need this if you
-   * implement a hot reloading mechanism for Redux.
-   *
-   * @param nextReducer The reducer for the store to use instead.
-   */
-  replaceReducer(nextReducer: Reducer<S, A>): void
-
-  /**
-   * Interoperability point for observable/reactive libraries.
-   * @returns {observable} A minimal observable of state changes.
-   * For more information, see the observable proposal:
-   * https://github.com/tc39/proposal-observable
-   */
-  [Symbol.observable](): Observable<S & StateExt>
-}
-
-export type UnknownIfNonSpecific<T> = {} extends T ? unknown : T
-
-/**
- * A store creator is a function that creates a Redux store. Like with
- * dispatching function, we must distinguish the base store creator,
- * `createStore(reducer, preloadedState)` exported from the Redux package, from
- * store creators that are returned from the store enhancers.
- *
- * @template S The type of state to be held by the store.
- * @template A The type of actions which may be dispatched.
- * @template PreloadedState The initial state that is passed into the reducer.
- * @template Ext Store extension that is mixed in to the Store type.
- * @template StateExt State extension that is mixed into the state type.
- */
-export interface StoreCreator {
-  <S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(
-    reducer: Reducer<S, A>,
-    enhancer?: StoreEnhancer<Ext, StateExt>
-  ): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-  <
-    S,
-    A extends Action,
-    Ext extends {} = {},
-    StateExt extends {} = {},
-    PreloadedState = S
-  >(
-    reducer: Reducer<S, A, PreloadedState>,
-    preloadedState?: PreloadedState | undefined,
-    enhancer?: StoreEnhancer<Ext>
-  ): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext
-}
-
-/**
- * A store enhancer is a higher-order function that composes a store creator
- * to return a new, enhanced store creator. This is similar to middleware in
- * that it allows you to alter the store interface in a composable way.
- *
- * Store enhancers are much the same concept as higher-order components in
- * React, which are also occasionally called “component enhancers”.
- *
- * Because a store is not an instance, but rather a plain-object collection of
- * functions, copies can be easily created and modified without mutating the
- * original store. There is an example in `compose` documentation
- * demonstrating that.
- *
- * Most likely you'll never write a store enhancer, but you may use the one
- * provided by the developer tools. It is what makes time travel possible
- * without the app being aware it is happening. Amusingly, the Redux
- * middleware implementation is itself a store enhancer.
- *
- * @template Ext Store extension that is mixed into the Store type.
- * @template StateExt State extension that is mixed into the state type.
- */
-export type StoreEnhancer<Ext extends {} = {}, StateExt extends {} = {}> = <
-  NextExt extends {},
-  NextStateExt extends {}
->(
-  next: StoreEnhancerStoreCreator<NextExt, NextStateExt>
-) => StoreEnhancerStoreCreator<NextExt & Ext, NextStateExt & StateExt>
-export type StoreEnhancerStoreCreator<
-  Ext extends {} = {},
-  StateExt extends {} = {}
-> = <S, A extends Action, PreloadedState>(
-  reducer: Reducer<S, A, PreloadedState>,
-  preloadedState?: PreloadedState | undefined
-) => Store<S, A, StateExt> & Ext
Index: de_modules/redux/src/utils/actionTypes.ts
===================================================================
--- node_modules/redux/src/utils/actionTypes.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/**
- * These are private action types reserved by Redux.
- * For any unknown actions, you must return the current state.
- * If the current state is undefined, you must return the initial state.
- * Do not reference these action types directly in your code.
- */
-
-const randomString = () =>
-  Math.random().toString(36).substring(7).split('').join('.')
-
-const ActionTypes = {
-  INIT: `@@redux/INIT${/* #__PURE__ */ randomString()}`,
-  REPLACE: `@@redux/REPLACE${/* #__PURE__ */ randomString()}`,
-  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`
-}
-
-export default ActionTypes
Index: de_modules/redux/src/utils/formatProdErrorMessage.ts
===================================================================
--- node_modules/redux/src/utils/formatProdErrorMessage.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
- *
- * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
- * during build.
- * @param {number} code
- */
-export function formatProdErrorMessage(code: number) {
-  return (
-    `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` +
-    'use the non-minified dev environment for full errors. '
-  )
-}
Index: de_modules/redux/src/utils/isAction.ts
===================================================================
--- node_modules/redux/src/utils/isAction.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-import { Action } from '../types/actions'
-import isPlainObject from './isPlainObject'
-
-export default function isAction(action: unknown): action is Action<string> {
-  return (
-    isPlainObject(action) &&
-    'type' in action &&
-    typeof (action as Record<'type', unknown>).type === 'string'
-  )
-}
Index: de_modules/redux/src/utils/isPlainObject.ts
===================================================================
--- node_modules/redux/src/utils/isPlainObject.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-/**
- * @param obj The object to inspect.
- * @returns True if the argument appears to be a plain object.
- */
-export default function isPlainObject(obj: any): obj is object {
-  if (typeof obj !== 'object' || obj === null) return false
-
-  let proto = obj
-  while (Object.getPrototypeOf(proto) !== null) {
-    proto = Object.getPrototypeOf(proto)
-  }
-
-  return (
-    Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null
-  )
-}
Index: de_modules/redux/src/utils/kindOf.ts
===================================================================
--- node_modules/redux/src/utils/kindOf.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of
-export function miniKindOf(val: any): string {
-  if (val === void 0) return 'undefined'
-  if (val === null) return 'null'
-
-  const type = typeof val
-  switch (type) {
-    case 'boolean':
-    case 'string':
-    case 'number':
-    case 'symbol':
-    case 'function': {
-      return type
-    }
-  }
-
-  if (Array.isArray(val)) return 'array'
-  if (isDate(val)) return 'date'
-  if (isError(val)) return 'error'
-
-  const constructorName = ctorName(val)
-  switch (constructorName) {
-    case 'Symbol':
-    case 'Promise':
-    case 'WeakMap':
-    case 'WeakSet':
-    case 'Map':
-    case 'Set':
-      return constructorName
-  }
-
-  // other
-  return Object.prototype.toString
-    .call(val)
-    .slice(8, -1)
-    .toLowerCase()
-    .replace(/\s/g, '')
-}
-
-function ctorName(val: any): string | null {
-  return typeof val.constructor === 'function' ? val.constructor.name : null
-}
-
-function isError(val: any) {
-  return (
-    val instanceof Error ||
-    (typeof val.message === 'string' &&
-      val.constructor &&
-      typeof val.constructor.stackTraceLimit === 'number')
-  )
-}
-
-function isDate(val: any) {
-  if (val instanceof Date) return true
-  return (
-    typeof val.toDateString === 'function' &&
-    typeof val.getDate === 'function' &&
-    typeof val.setDate === 'function'
-  )
-}
-
-export function kindOf(val: any) {
-  let typeOfVal: string = typeof val
-
-  if (process.env.NODE_ENV !== 'production') {
-    typeOfVal = miniKindOf(val)
-  }
-
-  return typeOfVal
-}
Index: de_modules/redux/src/utils/symbol-observable.ts
===================================================================
--- node_modules/redux/src/utils/symbol-observable.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-declare global {
-  interface SymbolConstructor {
-    readonly observable: symbol
-  }
-}
-
-const $$observable = /* #__PURE__ */ (() =>
-  (typeof Symbol === 'function' && Symbol.observable) || '@@observable')()
-
-export default $$observable
Index: de_modules/redux/src/utils/warning.ts
===================================================================
--- node_modules/redux/src/utils/warning.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-/**
- * Prints a warning in the console if it exists.
- *
- * @param message The warning message.
- */
-export default function warning(message: string): void {
-  /* eslint-disable no-console */
-  if (typeof console !== 'undefined' && typeof console.error === 'function') {
-    console.error(message)
-  }
-  /* eslint-enable no-console */
-  try {
-    // This error was thrown as a convenience so that if you enable
-    // "break on all exceptions" in your console,
-    // it would pause the execution at this line.
-    throw new Error(message)
-  } catch (e) {} // eslint-disable-line no-empty
-}
Index: de_modules/reselect/LICENSE
===================================================================
--- node_modules/reselect/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2018 Reselect Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/reselect/README.md
===================================================================
--- node_modules/reselect/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,206 +1,0 @@
-# Reselect
-
-[![npm package][npm-badge]][npm][![Coveralls][coveralls-badge]][coveralls][![GitHub Workflow Status][build-badge]][build]![TypeScript][typescript-badge]
-
-A library for creating memoized "selector" functions. Commonly used with Redux, but usable with any plain JS immutable data as well.
-
-- Selectors can compute derived data, allowing [Redux] to store the minimal possible state.
-- Selectors are efficient. A selector is not recomputed unless one of its arguments changes.
-- Selectors are composable. They can be used as input to other selectors.
-
-The **Redux docs usage page on [Deriving Data with Selectors](https://redux.js.org/usage/deriving-data-selectors)** covers the purpose and motivation for selectors, why memoized selectors are useful, typical Reselect usage patterns, and using selectors with [React-Redux].
-
-## Installation
-
-### Redux Toolkit
-
-While Reselect is not exclusive to [Redux], it is already included by default in [the official Redux Toolkit package](https://redux-toolkit.js.org) - no further installation needed.
-
-```ts
-import { createSelector } from '@reduxjs/toolkit'
-```
-
-### Standalone
-
-For standalone usage, install the `reselect` package:
-
-```bash
-# NPM
-npm install reselect
-
-# Yarn
-yarn add reselect
-```
-
----
-
-## Documentation
-
-The Reselect docs are available at **https://reselect.js.org**, and include usage guides and API references:
-
-- [**Introduction**](#https://reselect.js.org/introduction/getting-started)
-- [**How Does Reselect Work?**](#https://reselect.js.org/introduction/how-does-reselect-work)
-- **API Reference**:
-  - **[`createSelector`]**
-  - **[`createSelectorCreator`]**
-  - **[`createStructuredSelector`]**
-  - [**Development-Only Stability Checks**](#https://reselect.js.org/api/development-only-stability-checks)
-  - **[`lruMemoize`]**
-  - **[`weakMapMemoize`]**
-- [**FAQ**](#https://reselect.js.org/FAQ)
-
-## Basic Usage
-
-Reselect exports a [`createSelector`] API, which generates memoized selector functions. [`createSelector`] accepts one or more [input selectors], which extract values from arguments, and a [result function] function that receives the extracted values and should return a derived value. If the generated [output selector] is called multiple times, the output will only be recalculated when the extracted values have changed.
-
-You can play around with the following **example** in [this CodeSandbox](https://codesandbox.io/s/reselect-example-g3k9gf?file=/src/index.js):
-
-```ts
-import { createSelector } from 'reselect'
-
-interface RootState {
-  todos: { id: number; completed: boolean }[]
-  alerts: { id: number; read: boolean }[]
-}
-
-const state: RootState = {
-  todos: [
-    { id: 0, completed: false },
-    { id: 1, completed: true }
-  ],
-  alerts: [
-    { id: 0, read: false },
-    { id: 1, read: true }
-  ]
-}
-
-const selectCompletedTodos = (state: RootState) => {
-  console.log('selector ran')
-  return state.todos.filter(todo => todo.completed === true)
-}
-
-selectCompletedTodos(state) // selector ran
-selectCompletedTodos(state) // selector ran
-selectCompletedTodos(state) // selector ran
-
-const memoizedSelectCompletedTodos = createSelector(
-  [(state: RootState) => state.todos],
-  todos => {
-    console.log('memoized selector ran')
-    return todos.filter(todo => todo.completed === true)
-  }
-)
-
-memoizedSelectCompletedTodos(state) // memoized selector ran
-memoizedSelectCompletedTodos(state)
-memoizedSelectCompletedTodos(state)
-
-console.log(selectCompletedTodos(state) === selectCompletedTodos(state)) //=> false
-
-console.log(
-  memoizedSelectCompletedTodos(state) === memoizedSelectCompletedTodos(state)
-) //=> true
-```
-
-As you can see from the example above, `memoizedSelectCompletedTodos` does not run the second or third time, but we still get the same return value as last time.
-
-In addition to skipping unnecessary recalculations, `memoizedSelectCompletedTodos` returns the existing result reference if there is no recalculation. This is important for libraries like [React-Redux] or [React] that often rely on reference equality checks to optimize UI updates.
-
----
-
-## Terminology
-
-- <a name="selector-function"></a>[**Selector Function**](#selector-function): A function that accepts one or more JavaScript values as arguments, and derives a result. When used with [Redux], the first argument is typically the entire Redux store state.
-- <a name="input-selectors"></a>[**input selectors**](#input-selectors): Basic selector functions used as building blocks for creating a memoized selector. They are passed as the first argument(s) to [`createSelector`], and are called with all selector arguments. They are responsible for extracting and providing necessary values to the [result function].
-- <a name="output-selector"></a>[**Output Selector**](#output-selector): The actual memoized selectors created by [`createSelector`].
-- <a name="result-function"></a>[**Result Function**](#result-function): The function that comes after the [input selectors]. It takes the [input selectors]' return values as arguments and returns a result.
-- <a name="dependencies"></a>[**`Dependencies`**](#dependencies): Same as [input selectors]. They are what the [output selector] "depends" on.
-
-The below example serves as a visual aid:
-
-```ts
-const outputSelector = createSelector(
-  [inputSelector1, inputSelector2, inputSelector3], // synonymous with `dependencies`.
-  resultFunc // Result function
-)
-```
-
----
-
-## What's New in 5.0.0?
-
-Version 5.0.0 introduces several new features and improvements:
-
-- **Customization Enhancements**:
-
-  - Added the ability to pass an options object to [`createSelectorCreator`], allowing for customized `memoize` and `argsMemoize` functions, alongside their respective options (`memoizeOptions` and `argsMemoizeOptions`).
-  - The [`createSelector`] function now supports direct customization of `memoize` and `argsMemoize` within its options object.
-
-- **Memoization Functions**:
-
-  - Introduced new experimental memoization functions: `weakMapMemoize` and `unstable_autotrackMemoize`.
-  - Incorporated `memoize` and `argsMemoize` into the [output selector fields] for debugging purposes.
-
-- **TypeScript Support and Performance**:
-
-  - Discontinued support for TypeScript versions below 4.7, aligning with modern TypeScript features.
-  - Significantly improved TypeScript performance for nesting [output selectors][output selector]. The nesting limit has increased from approximately 8 to around 30 [output selectors][output selector], greatly reducing the occurrence of the infamous `Type instantiation is excessively deep and possibly infinite` error.
-
-- **Selector API Enhancements**:
-
-  - Removed the second overload of `createStructuredSelector` due to its susceptibility to runtime errors.
-
-- **Additional Functionalities**:
-
-  - Added `dependencyRecomputations` and `resetDependencyRecomputations` to the [output selector fields]. These additions provide greater control and insight over [input selectors], complementing the new `argsMemoize` API.
-  - Introduced `inputStabilityCheck`, a development tool that runs the [input selectors] twice using the same arguments and triggers a warning If they return differing results for the same call.
-  - Introduced `identityFunctionCheck`, a development tool that checks to see if the [result function] returns its own input.
-
-These updates aim to enhance flexibility, performance, and developer experience. For detailed usage and examples, refer to the updated documentation sections for each feature.
-
-- **Breaking Changes**:
-
-  - Removed `ParametricSelector` and `OutputParametricSelector` types. Their functionalities are now integrated into `Selector` and `OutputSelector` respectively, which inherently support additional parameters.
-
-<div align="right">[ <a href="installation">↑ Back to top ↑</a> ]</div>
-
----
-
-## License
-
-MIT
-
-## References
-
-<details><summary><b>Click to Expand</b></summary>
-
-Originally inspired by getters in [NuclearJS](https://github.com/optimizely/nuclear-js.git), [subscriptions](https://github.com/Day8/re-frame#just-a-read-only-cursor) in [re-frame](https://github.com/Day8/re-frame) and this [proposal](https://github.com/reduxjs/redux/pull/169) from [speedskater](https://github.com/speedskater).
-
-[typescript-badge]: https://img.shields.io/badge/TypeScript-v4%2E7%2B-007ACC?style=for-the-badge&logo=TypeScript&logoColor=black&labelColor=blue&color=gray
-[build-badge]: https://img.shields.io/github/actions/workflow/status/reduxjs/reselect/build-and-test-types.yml?branch=master&style=for-the-badge
-[build]: https://github.com/reduxjs/reselect/actions/workflows/build-and-test-types.yml
-[npm-badge]: https://img.shields.io/npm/v/reselect.svg?style=for-the-badge
-[npm]: https://www.npmjs.org/package/reselect
-[coveralls-badge]: https://img.shields.io/coveralls/reduxjs/reselect/master.svg?style=for-the-badge
-[coveralls]: https://coveralls.io/github/reduxjs/reselect
-
-<!-- External Links -->
-
-[Redux]: https://redux.js.org 'Redux'
-[React]: https://react.dev 'React'
-[React-Redux]: https://react-redux.js.org 'React-Redux'
-
-<!-- Internal Links -->
-
-[selector]: #selector-function 'Selector Function'
-[input selectors]: #input-selectors 'Input Selectors'
-[output selector]: #output-selector 'Output Selector'
-[result function]: #result-function 'Result Function'
-[output selector fields]: https://reselect.js.org/api/createSelector#output-selector-fields 'Output Selector Fields'
-[`createSelector`]: https://reselect.js.org/api/createSelector 'createSelector'
-[`createSelectorCreator`]: https://reselect.js.org/api/createSelectorCreator 'createSelectorCreator'
-[`lruMemoize`]: https://reselect.js.org/api/lruMemoize 'lruMemoize'
-[`weakMapMemoize`]: https://reselect.js.org/api/weakMapMemoize 'weakMapMemoize'
-[`createStructuredSelector`]: https://reselect.js.org/api/createStructuredSelector 'createStructuredSelector'
-
-</details>
Index: de_modules/reselect/dist/cjs/reselect.cjs
===================================================================
--- node_modules/reselect/dist/cjs/reselect.cjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,777 +1,0 @@
-"use strict";
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __copyProps = (to, from, except, desc) => {
-  if (from && typeof from === "object" || typeof from === "function") {
-    for (let key of __getOwnPropNames(from))
-      if (!__hasOwnProp.call(to, key) && key !== except)
-        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
-  }
-  return to;
-};
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  createSelector: () => createSelector,
-  createSelectorCreator: () => createSelectorCreator,
-  createStructuredSelector: () => createStructuredSelector,
-  lruMemoize: () => lruMemoize,
-  referenceEqualityCheck: () => referenceEqualityCheck,
-  setGlobalDevModeChecks: () => setGlobalDevModeChecks,
-  unstable_autotrackMemoize: () => autotrackMemoize,
-  weakMapMemoize: () => weakMapMemoize
-});
-module.exports = __toCommonJS(src_exports);
-
-// src/devModeChecks/identityFunctionCheck.ts
-var runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {
-  if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {
-    let isInputSameAsOutput = false;
-    try {
-      const emptyObject = {};
-      if (resultFunc(emptyObject) === emptyObject)
-        isInputSameAsOutput = true;
-    } catch {
-    }
-    if (isInputSameAsOutput) {
-      let stack = void 0;
-      try {
-        throw new Error();
-      } catch (e) {
-        ;
-        ({ stack } = e);
-      }
-      console.warn(
-        "The result function returned its own inputs without modification. e.g\n`createSelector([state => state.todos], todos => todos)`\nThis could lead to inefficient memoization and unnecessary re-renders.\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.",
-        { stack }
-      );
-    }
-  }
-};
-
-// src/devModeChecks/inputStabilityCheck.ts
-var runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {
-  const { memoize, memoizeOptions } = options;
-  const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;
-  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);
-  const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);
-  if (!areInputSelectorResultsEqual) {
-    let stack = void 0;
-    try {
-      throw new Error();
-    } catch (e) {
-      ;
-      ({ stack } = e);
-    }
-    console.warn(
-      "An input selector returned a different result when passed same arguments.\nThis means your output selector will likely run more frequently than intended.\nAvoid returning a new reference inside your input selector, e.g.\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`",
-      {
-        arguments: inputSelectorArgs,
-        firstInputs: inputSelectorResults,
-        secondInputs: inputSelectorResultsCopy,
-        stack
-      }
-    );
-  }
-};
-
-// src/devModeChecks/setGlobalDevModeChecks.ts
-var globalDevModeChecks = {
-  inputStabilityCheck: "once",
-  identityFunctionCheck: "once"
-};
-var setGlobalDevModeChecks = (devModeChecks) => {
-  Object.assign(globalDevModeChecks, devModeChecks);
-};
-
-// src/utils.ts
-var NOT_FOUND = /* @__PURE__ */ Symbol("NOT_FOUND");
-function assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {
-  if (typeof func !== "function") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {
-  if (typeof object !== "object") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {
-  if (!array.every((item) => typeof item === "function")) {
-    const itemTypes = array.map(
-      (item) => typeof item === "function" ? `function ${item.name || "unnamed"}()` : typeof item
-    ).join(", ");
-    throw new TypeError(`${errorMessage}[${itemTypes}]`);
-  }
-}
-var ensureIsArray = (item) => {
-  return Array.isArray(item) ? item : [item];
-};
-function getDependencies(createSelectorArgs) {
-  const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;
-  assertIsArrayOfFunctions(
-    dependencies,
-    `createSelector expects all input-selectors to be functions, but received the following types: `
-  );
-  return dependencies;
-}
-function collectInputSelectorResults(dependencies, inputSelectorArgs) {
-  const inputSelectorResults = [];
-  const { length } = dependencies;
-  for (let i = 0; i < length; i++) {
-    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));
-  }
-  return inputSelectorResults;
-}
-var getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {
-  const { identityFunctionCheck, inputStabilityCheck } = {
-    ...globalDevModeChecks,
-    ...devModeChecks
-  };
-  return {
-    identityFunctionCheck: {
-      shouldRun: identityFunctionCheck === "always" || identityFunctionCheck === "once" && firstRun,
-      run: runIdentityFunctionCheck
-    },
-    inputStabilityCheck: {
-      shouldRun: inputStabilityCheck === "always" || inputStabilityCheck === "once" && firstRun,
-      run: runInputStabilityCheck
-    }
-  };
-};
-
-// src/autotrackMemoize/autotracking.ts
-var $REVISION = 0;
-var CURRENT_TRACKER = null;
-var Cell = class {
-  revision = $REVISION;
-  _value;
-  _lastValue;
-  _isEqual = tripleEq;
-  constructor(initialValue, isEqual = tripleEq) {
-    this._value = this._lastValue = initialValue;
-    this._isEqual = isEqual;
-  }
-  // Whenever a storage value is read, it'll add itself to the current tracker if
-  // one exists, entangling its state with that cache.
-  get value() {
-    CURRENT_TRACKER?.add(this);
-    return this._value;
-  }
-  // Whenever a storage value is updated, we bump the global revision clock,
-  // assign the revision for this storage to the new value, _and_ we schedule a
-  // rerender. This is important, and it's what makes autotracking  _pull_
-  // based. We don't actively tell the caches which depend on the storage that
-  // anything has happened. Instead, we recompute the caches when needed.
-  set value(newValue) {
-    if (this.value === newValue)
-      return;
-    this._value = newValue;
-    this.revision = ++$REVISION;
-  }
-};
-function tripleEq(a, b) {
-  return a === b;
-}
-var TrackingCache = class {
-  _cachedValue;
-  _cachedRevision = -1;
-  _deps = [];
-  hits = 0;
-  fn;
-  constructor(fn) {
-    this.fn = fn;
-  }
-  clear() {
-    this._cachedValue = void 0;
-    this._cachedRevision = -1;
-    this._deps = [];
-    this.hits = 0;
-  }
-  get value() {
-    if (this.revision > this._cachedRevision) {
-      const { fn } = this;
-      const currentTracker = /* @__PURE__ */ new Set();
-      const prevTracker = CURRENT_TRACKER;
-      CURRENT_TRACKER = currentTracker;
-      this._cachedValue = fn();
-      CURRENT_TRACKER = prevTracker;
-      this.hits++;
-      this._deps = Array.from(currentTracker);
-      this._cachedRevision = this.revision;
-    }
-    CURRENT_TRACKER?.add(this);
-    return this._cachedValue;
-  }
-  get revision() {
-    return Math.max(...this._deps.map((d) => d.revision), 0);
-  }
-};
-function getValue(cell) {
-  if (!(cell instanceof Cell)) {
-    console.warn("Not a valid cell! ", cell);
-  }
-  return cell.value;
-}
-function setValue(storage, value) {
-  if (!(storage instanceof Cell)) {
-    throw new TypeError(
-      "setValue must be passed a tracked store created with `createStorage`."
-    );
-  }
-  storage.value = storage._lastValue = value;
-}
-function createCell(initialValue, isEqual = tripleEq) {
-  return new Cell(initialValue, isEqual);
-}
-function createCache(fn) {
-  assertIsFunction(
-    fn,
-    "the first parameter to `createCache` must be a function"
-  );
-  return new TrackingCache(fn);
-}
-
-// src/autotrackMemoize/tracking.ts
-var neverEq = (a, b) => false;
-function createTag() {
-  return createCell(null, neverEq);
-}
-function dirtyTag(tag, value) {
-  setValue(tag, value);
-}
-var consumeCollection = (node) => {
-  let tag = node.collectionTag;
-  if (tag === null) {
-    tag = node.collectionTag = createTag();
-  }
-  getValue(tag);
-};
-var dirtyCollection = (node) => {
-  const tag = node.collectionTag;
-  if (tag !== null) {
-    dirtyTag(tag, null);
-  }
-};
-
-// src/autotrackMemoize/proxy.ts
-var REDUX_PROXY_LABEL = Symbol();
-var nextId = 0;
-var proto = Object.getPrototypeOf({});
-var ObjectTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    this.value = value;
-    this.tag.value = value;
-  }
-  proxy = new Proxy(this, objectProxyHandler);
-  tag = createTag();
-  tags = {};
-  children = {};
-  collectionTag = null;
-  id = nextId++;
-};
-var objectProxyHandler = {
-  get(node, key) {
-    function calculateResult() {
-      const { value } = node;
-      const childValue = Reflect.get(value, key);
-      if (typeof key === "symbol") {
-        return childValue;
-      }
-      if (key in proto) {
-        return childValue;
-      }
-      if (typeof childValue === "object" && childValue !== null) {
-        let childNode = node.children[key];
-        if (childNode === void 0) {
-          childNode = node.children[key] = createNode(childValue);
-        }
-        if (childNode.tag) {
-          getValue(childNode.tag);
-        }
-        return childNode.proxy;
-      } else {
-        let tag = node.tags[key];
-        if (tag === void 0) {
-          tag = node.tags[key] = createTag();
-          tag.value = childValue;
-        }
-        getValue(tag);
-        return childValue;
-      }
-    }
-    const res = calculateResult();
-    return res;
-  },
-  ownKeys(node) {
-    consumeCollection(node);
-    return Reflect.ownKeys(node.value);
-  },
-  getOwnPropertyDescriptor(node, prop) {
-    return Reflect.getOwnPropertyDescriptor(node.value, prop);
-  },
-  has(node, prop) {
-    return Reflect.has(node.value, prop);
-  }
-};
-var ArrayTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    this.value = value;
-    this.tag.value = value;
-  }
-  proxy = new Proxy([this], arrayProxyHandler);
-  tag = createTag();
-  tags = {};
-  children = {};
-  collectionTag = null;
-  id = nextId++;
-};
-var arrayProxyHandler = {
-  get([node], key) {
-    if (key === "length") {
-      consumeCollection(node);
-    }
-    return objectProxyHandler.get(node, key);
-  },
-  ownKeys([node]) {
-    return objectProxyHandler.ownKeys(node);
-  },
-  getOwnPropertyDescriptor([node], prop) {
-    return objectProxyHandler.getOwnPropertyDescriptor(node, prop);
-  },
-  has([node], prop) {
-    return objectProxyHandler.has(node, prop);
-  }
-};
-function createNode(value) {
-  if (Array.isArray(value)) {
-    return new ArrayTreeNode(value);
-  }
-  return new ObjectTreeNode(value);
-}
-function updateNode(node, newValue) {
-  const { value, tags, children } = node;
-  node.value = newValue;
-  if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {
-    dirtyCollection(node);
-  } else {
-    if (value !== newValue) {
-      let oldKeysSize = 0;
-      let newKeysSize = 0;
-      let anyKeysAdded = false;
-      for (const _key in value) {
-        oldKeysSize++;
-      }
-      for (const key in newValue) {
-        newKeysSize++;
-        if (!(key in value)) {
-          anyKeysAdded = true;
-          break;
-        }
-      }
-      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;
-      if (isDifferent) {
-        dirtyCollection(node);
-      }
-    }
-  }
-  for (const key in tags) {
-    const childValue = value[key];
-    const newChildValue = newValue[key];
-    if (childValue !== newChildValue) {
-      dirtyCollection(node);
-      dirtyTag(tags[key], newChildValue);
-    }
-    if (typeof newChildValue === "object" && newChildValue !== null) {
-      delete tags[key];
-    }
-  }
-  for (const key in children) {
-    const childNode = children[key];
-    const newChildValue = newValue[key];
-    const childValue = childNode.value;
-    if (childValue === newChildValue) {
-      continue;
-    } else if (typeof newChildValue === "object" && newChildValue !== null) {
-      updateNode(childNode, newChildValue);
-    } else {
-      deleteNode(childNode);
-      delete children[key];
-    }
-  }
-}
-function deleteNode(node) {
-  if (node.tag) {
-    dirtyTag(node.tag, null);
-  }
-  dirtyCollection(node);
-  for (const key in node.tags) {
-    dirtyTag(node.tags[key], null);
-  }
-  for (const key in node.children) {
-    deleteNode(node.children[key]);
-  }
-}
-
-// src/lruMemoize.ts
-function createSingletonCache(equals) {
-  let entry;
-  return {
-    get(key) {
-      if (entry && equals(entry.key, key)) {
-        return entry.value;
-      }
-      return NOT_FOUND;
-    },
-    put(key, value) {
-      entry = { key, value };
-    },
-    getEntries() {
-      return entry ? [entry] : [];
-    },
-    clear() {
-      entry = void 0;
-    }
-  };
-}
-function createLruCache(maxSize, equals) {
-  let entries = [];
-  function get(key) {
-    const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));
-    if (cacheIndex > -1) {
-      const entry = entries[cacheIndex];
-      if (cacheIndex > 0) {
-        entries.splice(cacheIndex, 1);
-        entries.unshift(entry);
-      }
-      return entry.value;
-    }
-    return NOT_FOUND;
-  }
-  function put(key, value) {
-    if (get(key) === NOT_FOUND) {
-      entries.unshift({ key, value });
-      if (entries.length > maxSize) {
-        entries.pop();
-      }
-    }
-  }
-  function getEntries() {
-    return entries;
-  }
-  function clear() {
-    entries = [];
-  }
-  return { get, put, getEntries, clear };
-}
-var referenceEqualityCheck = (a, b) => a === b;
-function createCacheKeyComparator(equalityCheck) {
-  return function areArgumentsShallowlyEqual(prev, next) {
-    if (prev === null || next === null || prev.length !== next.length) {
-      return false;
-    }
-    const { length } = prev;
-    for (let i = 0; i < length; i++) {
-      if (!equalityCheck(prev[i], next[i])) {
-        return false;
-      }
-    }
-    return true;
-  };
-}
-function lruMemoize(func, equalityCheckOrOptions) {
-  const providedOptions = typeof equalityCheckOrOptions === "object" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };
-  const {
-    equalityCheck = referenceEqualityCheck,
-    maxSize = 1,
-    resultEqualityCheck
-  } = providedOptions;
-  const comparator = createCacheKeyComparator(equalityCheck);
-  let resultsCount = 0;
-  const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);
-  function memoized() {
-    let value = cache.get(arguments);
-    if (value === NOT_FOUND) {
-      value = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const entries = cache.getEntries();
-        const matchingEntry = entries.find(
-          (entry) => resultEqualityCheck(entry.value, value)
-        );
-        if (matchingEntry) {
-          value = matchingEntry.value;
-          resultsCount !== 0 && resultsCount--;
-        }
-      }
-      cache.put(arguments, value);
-    }
-    return value;
-  }
-  memoized.clearCache = () => {
-    cache.clear();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/autotrackMemoize/autotrackMemoize.ts
-function autotrackMemoize(func) {
-  const node = createNode(
-    []
-  );
-  let lastArgs = null;
-  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);
-  const cache = createCache(() => {
-    const res = func.apply(null, node.proxy);
-    return res;
-  });
-  function memoized() {
-    if (!shallowEqual(lastArgs, arguments)) {
-      updateNode(node, arguments);
-      lastArgs = arguments;
-    }
-    return cache.value;
-  }
-  memoized.clearCache = () => {
-    return cache.clear();
-  };
-  return memoized;
-}
-
-// src/weakMapMemoize.ts
-var StrongRef = class {
-  constructor(value) {
-    this.value = value;
-  }
-  deref() {
-    return this.value;
-  }
-};
-var Ref = typeof WeakRef !== "undefined" ? WeakRef : StrongRef;
-var UNTERMINATED = 0;
-var TERMINATED = 1;
-function createCacheNode() {
-  return {
-    s: UNTERMINATED,
-    v: void 0,
-    o: null,
-    p: null
-  };
-}
-function weakMapMemoize(func, options = {}) {
-  let fnNode = createCacheNode();
-  const { resultEqualityCheck } = options;
-  let lastResult;
-  let resultsCount = 0;
-  function memoized() {
-    let cacheNode = fnNode;
-    const { length } = arguments;
-    for (let i = 0, l = length; i < l; i++) {
-      const arg = arguments[i];
-      if (typeof arg === "function" || typeof arg === "object" && arg !== null) {
-        let objectCache = cacheNode.o;
-        if (objectCache === null) {
-          cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();
-        }
-        const objectNode = objectCache.get(arg);
-        if (objectNode === void 0) {
-          cacheNode = createCacheNode();
-          objectCache.set(arg, cacheNode);
-        } else {
-          cacheNode = objectNode;
-        }
-      } else {
-        let primitiveCache = cacheNode.p;
-        if (primitiveCache === null) {
-          cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();
-        }
-        const primitiveNode = primitiveCache.get(arg);
-        if (primitiveNode === void 0) {
-          cacheNode = createCacheNode();
-          primitiveCache.set(arg, cacheNode);
-        } else {
-          cacheNode = primitiveNode;
-        }
-      }
-    }
-    const terminatedNode = cacheNode;
-    let result;
-    if (cacheNode.s === TERMINATED) {
-      result = cacheNode.v;
-    } else {
-      result = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const lastResultValue = lastResult?.deref?.() ?? lastResult;
-        if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {
-          result = lastResultValue;
-          resultsCount !== 0 && resultsCount--;
-        }
-        const needsWeakRef = typeof result === "object" && result !== null || typeof result === "function";
-        lastResult = needsWeakRef ? new Ref(result) : result;
-      }
-    }
-    terminatedNode.s = TERMINATED;
-    terminatedNode.v = result;
-    return result;
-  }
-  memoized.clearCache = () => {
-    fnNode = createCacheNode();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/createSelectorCreator.ts
-function createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {
-  const createSelectorCreatorOptions = typeof memoizeOrOptions === "function" ? {
-    memoize: memoizeOrOptions,
-    memoizeOptions: memoizeOptionsFromArgs
-  } : memoizeOrOptions;
-  const createSelector2 = (...createSelectorArgs) => {
-    let recomputations = 0;
-    let dependencyRecomputations = 0;
-    let lastResult;
-    let directlyPassedOptions = {};
-    let resultFunc = createSelectorArgs.pop();
-    if (typeof resultFunc === "object") {
-      directlyPassedOptions = resultFunc;
-      resultFunc = createSelectorArgs.pop();
-    }
-    assertIsFunction(
-      resultFunc,
-      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`
-    );
-    const combinedOptions = {
-      ...createSelectorCreatorOptions,
-      ...directlyPassedOptions
-    };
-    const {
-      memoize,
-      memoizeOptions = [],
-      argsMemoize = weakMapMemoize,
-      argsMemoizeOptions = [],
-      devModeChecks = {}
-    } = combinedOptions;
-    const finalMemoizeOptions = ensureIsArray(memoizeOptions);
-    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);
-    const dependencies = getDependencies(createSelectorArgs);
-    const memoizedResultFunc = memoize(function recomputationWrapper() {
-      recomputations++;
-      return resultFunc.apply(
-        null,
-        arguments
-      );
-    }, ...finalMemoizeOptions);
-    let firstRun = true;
-    const selector = argsMemoize(function dependenciesChecker() {
-      dependencyRecomputations++;
-      const inputSelectorResults = collectInputSelectorResults(
-        dependencies,
-        arguments
-      );
-      lastResult = memoizedResultFunc.apply(null, inputSelectorResults);
-      if (process.env.NODE_ENV !== "production") {
-        const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);
-        if (identityFunctionCheck.shouldRun) {
-          identityFunctionCheck.run(
-            resultFunc,
-            inputSelectorResults,
-            lastResult
-          );
-        }
-        if (inputStabilityCheck.shouldRun) {
-          const inputSelectorResultsCopy = collectInputSelectorResults(
-            dependencies,
-            arguments
-          );
-          inputStabilityCheck.run(
-            { inputSelectorResults, inputSelectorResultsCopy },
-            { memoize, memoizeOptions: finalMemoizeOptions },
-            arguments
-          );
-        }
-        if (firstRun)
-          firstRun = false;
-      }
-      return lastResult;
-    }, ...finalArgsMemoizeOptions);
-    return Object.assign(selector, {
-      resultFunc,
-      memoizedResultFunc,
-      dependencies,
-      dependencyRecomputations: () => dependencyRecomputations,
-      resetDependencyRecomputations: () => {
-        dependencyRecomputations = 0;
-      },
-      lastResult: () => lastResult,
-      recomputations: () => recomputations,
-      resetRecomputations: () => {
-        recomputations = 0;
-      },
-      memoize,
-      argsMemoize
-    });
-  };
-  Object.assign(createSelector2, {
-    withTypes: () => createSelector2
-  });
-  return createSelector2;
-}
-var createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);
-
-// src/createStructuredSelector.ts
-var createStructuredSelector = Object.assign(
-  (inputSelectorsObject, selectorCreator = createSelector) => {
-    assertIsObject(
-      inputSelectorsObject,
-      `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`
-    );
-    const inputSelectorKeys = Object.keys(inputSelectorsObject);
-    const dependencies = inputSelectorKeys.map(
-      (key) => inputSelectorsObject[key]
-    );
-    const structuredSelector = selectorCreator(
-      dependencies,
-      (...inputSelectorResults) => {
-        return inputSelectorResults.reduce((composition, value, index) => {
-          composition[inputSelectorKeys[index]] = value;
-          return composition;
-        }, {});
-      }
-    );
-    return structuredSelector;
-  },
-  { withTypes: () => createStructuredSelector }
-);
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  createSelector,
-  createSelectorCreator,
-  createStructuredSelector,
-  lruMemoize,
-  referenceEqualityCheck,
-  setGlobalDevModeChecks,
-  unstable_autotrackMemoize,
-  weakMapMemoize
-});
-//# sourceMappingURL=reselect.cjs.map
Index: de_modules/reselect/dist/cjs/reselect.cjs.map
===================================================================
--- node_modules/reselect/dist/cjs/reselect.cjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../../src/index.ts","../../src/devModeChecks/identityFunctionCheck.ts","../../src/devModeChecks/inputStabilityCheck.ts","../../src/devModeChecks/setGlobalDevModeChecks.ts","../../src/utils.ts","../../src/autotrackMemoize/autotracking.ts","../../src/autotrackMemoize/tracking.ts","../../src/autotrackMemoize/proxy.ts","../../src/lruMemoize.ts","../../src/autotrackMemoize/autotrackMemoize.ts","../../src/weakMapMemoize.ts","../../src/createSelectorCreator.ts","../../src/createStructuredSelector.ts"],"sourcesContent":["export { autotrackMemoize as unstable_autotrackMemoize } from './autotrackMemoize/autotrackMemoize'\r\nexport { createSelector, createSelectorCreator } from './createSelectorCreator'\r\nexport type { CreateSelectorFunction } from './createSelectorCreator'\r\nexport { createStructuredSelector } from './createStructuredSelector'\r\nexport type {\r\n  RootStateSelectors,\r\n  SelectorResultsMap,\r\n  SelectorsObject,\r\n  StructuredSelectorCreator,\r\n  TypedStructuredSelectorCreator\r\n} from './createStructuredSelector'\r\nexport { setGlobalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\nexport { lruMemoize, referenceEqualityCheck } from './lruMemoize'\r\nexport type { LruMemoizeOptions } from './lruMemoize'\r\nexport type {\r\n  Combiner,\r\n  CreateSelectorOptions,\r\n  DefaultMemoizeFields,\r\n  DevModeCheckFrequency,\r\n  DevModeChecks,\r\n  DevModeChecksExecutionInfo,\r\n  EqualityFn,\r\n  ExtractMemoizerFields,\r\n  GetParamsFromSelectors,\r\n  GetStateFromSelectors,\r\n  MemoizeOptionsFromParameters,\r\n  OutputSelector,\r\n  OutputSelectorFields,\r\n  OverrideMemoizeOptions,\r\n  Selector,\r\n  SelectorArray,\r\n  SelectorResultArray,\r\n  UnknownMemoizer\r\n} from './types'\r\nexport { weakMapMemoize } from './weakMapMemoize'\r\nexport type { WeakMapMemoizeOptions } from './weakMapMemoize'\r\n","import type { AnyFunction } from '../types'\r\n\r\n/**\r\n * Runs a check to determine if the given result function behaves as an\r\n * identity function. An identity function is one that returns its\r\n * input unchanged, for example, `x => x`. This check helps ensure\r\n * efficient memoization and prevent unnecessary re-renders by encouraging\r\n * proper use of transformation logic in result functions and\r\n * extraction logic in input selectors.\r\n *\r\n * @param resultFunc - The result function to be checked.\r\n * @param inputSelectorsResults - The results of the input selectors.\r\n * @param outputSelectorResult - The result of the output selector.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runIdentityFunctionCheck = (\r\n  resultFunc: AnyFunction,\r\n  inputSelectorsResults: unknown[],\r\n  outputSelectorResult: unknown\r\n) => {\r\n  if (\r\n    inputSelectorsResults.length === 1 &&\r\n    inputSelectorsResults[0] === outputSelectorResult\r\n  ) {\r\n    let isInputSameAsOutput = false\r\n    try {\r\n      const emptyObject = {}\r\n      if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true\r\n    } catch {\r\n      // Do nothing\r\n    }\r\n    if (isInputSameAsOutput) {\r\n      let stack: string | undefined = undefined\r\n      try {\r\n        throw new Error()\r\n      } catch (e) {\r\n        // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n        ;({ stack } = e as Error)\r\n      }\r\n      console.warn(\r\n        'The result function returned its own inputs without modification. e.g' +\r\n          '\\n`createSelector([state => state.todos], todos => todos)`' +\r\n          '\\nThis could lead to inefficient memoization and unnecessary re-renders.' +\r\n          '\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',\r\n        { stack }\r\n      )\r\n    }\r\n  }\r\n}\r\n","import type { CreateSelectorOptions, UnknownMemoizer } from '../types'\r\n\r\n/**\r\n * Runs a stability check to ensure the input selector results remain stable\r\n * when provided with the same arguments. This function is designed to detect\r\n * changes in the output of input selectors, which can impact the performance of memoized selectors.\r\n *\r\n * @param inputSelectorResultsObject - An object containing two arrays: `inputSelectorResults` and `inputSelectorResultsCopy`, representing the results of input selectors.\r\n * @param options - Options object consisting of a `memoize` function and a `memoizeOptions` object.\r\n * @param inputSelectorArgs - List of arguments being passed to the input selectors.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks/#inputstabilitycheck `inputStabilityCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runInputStabilityCheck = (\r\n  inputSelectorResultsObject: {\r\n    inputSelectorResults: unknown[]\r\n    inputSelectorResultsCopy: unknown[]\r\n  },\r\n  options: Required<\r\n    Pick<\r\n      CreateSelectorOptions<UnknownMemoizer, UnknownMemoizer>,\r\n      'memoize' | 'memoizeOptions'\r\n    >\r\n  >,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) => {\r\n  const { memoize, memoizeOptions } = options\r\n  const { inputSelectorResults, inputSelectorResultsCopy } =\r\n    inputSelectorResultsObject\r\n  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions)\r\n  // if the memoize method thinks the parameters are equal, these *should* be the same reference\r\n  const areInputSelectorResultsEqual =\r\n    createAnEmptyObject.apply(null, inputSelectorResults) ===\r\n    createAnEmptyObject.apply(null, inputSelectorResultsCopy)\r\n  if (!areInputSelectorResultsEqual) {\r\n    let stack: string | undefined = undefined\r\n    try {\r\n      throw new Error()\r\n    } catch (e) {\r\n      // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n      ;({ stack } = e as Error)\r\n    }\r\n    console.warn(\r\n      'An input selector returned a different result when passed same arguments.' +\r\n        '\\nThis means your output selector will likely run more frequently than intended.' +\r\n        '\\nAvoid returning a new reference inside your input selector, e.g.' +\r\n        '\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`',\r\n      {\r\n        arguments: inputSelectorArgs,\r\n        firstInputs: inputSelectorResults,\r\n        secondInputs: inputSelectorResultsCopy,\r\n        stack\r\n      }\r\n    )\r\n  }\r\n}\r\n","import type { DevModeChecks } from '../types'\r\n\r\n/**\r\n * Global configuration for development mode checks. This specifies the default\r\n * frequency at which each development mode check should be performed.\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const globalDevModeChecks: DevModeChecks = {\r\n  inputStabilityCheck: 'once',\r\n  identityFunctionCheck: 'once'\r\n}\r\n\r\n/**\r\n * Overrides the development mode checks settings for all selectors.\r\n *\r\n * Reselect performs additional checks in development mode to help identify and\r\n * warn about potential issues in selector behavior. This function allows you to\r\n * customize the behavior of these checks across all selectors in your application.\r\n *\r\n * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.\r\n * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}\r\n * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.\r\n *\r\n * _The development mode checks do not run in production builds._\r\n *\r\n * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.\r\n *\r\n * @example\r\n * ```ts\r\n * import { setGlobalDevModeChecks } from 'reselect'\r\n * import { DevModeChecks } from '../types'\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })\r\n *\r\n * // Never run the input stability check.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })\r\n *\r\n * // Never run the identity function check.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })\r\n * ```\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport const setGlobalDevModeChecks = (\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  Object.assign(globalDevModeChecks, devModeChecks)\r\n}\r\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n  DevModeChecks,\r\n  Selector,\r\n  SelectorArray,\r\n  DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction<FunctionType extends Function>(\r\n  func: unknown,\r\n  errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n  if (typeof func !== 'function') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject<ObjectType extends Record<string, unknown>>(\r\n  object: unknown,\r\n  errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n  if (typeof object !== 'object') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions<FunctionType extends Function>(\r\n  array: unknown[],\r\n  errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n  if (\r\n    !array.every((item): item is FunctionType => typeof item === 'function')\r\n  ) {\r\n    const itemTypes = array\r\n      .map(item =>\r\n        typeof item === 'function'\r\n          ? `function ${item.name || 'unnamed'}()`\r\n          : typeof item\r\n      )\r\n      .join(', ')\r\n    throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n  }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n  return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n  const dependencies = Array.isArray(createSelectorArgs[0])\r\n    ? createSelectorArgs[0]\r\n    : createSelectorArgs\r\n\r\n  assertIsArrayOfFunctions<Selector>(\r\n    dependencies,\r\n    `createSelector expects all input-selectors to be functions, but received the following types: `\r\n  )\r\n\r\n  return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n  dependencies: SelectorArray,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n  const inputSelectorResults = []\r\n  const { length } = dependencies\r\n  for (let i = 0; i < length; i++) {\r\n    // @ts-ignore\r\n    // apply arguments instead of spreading and mutate a local list of params for performance.\r\n    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n  }\r\n  return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns  An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n  firstRun: boolean,\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  const { identityFunctionCheck, inputStabilityCheck } = {\r\n    ...globalDevModeChecks,\r\n    ...devModeChecks\r\n  }\r\n  return {\r\n    identityFunctionCheck: {\r\n      shouldRun:\r\n        identityFunctionCheck === 'always' ||\r\n        (identityFunctionCheck === 'once' && firstRun),\r\n      run: runIdentityFunctionCheck\r\n    },\r\n    inputStabilityCheck: {\r\n      shouldRun:\r\n        inputStabilityCheck === 'always' ||\r\n        (inputStabilityCheck === 'once' && firstRun),\r\n      run: runInputStabilityCheck\r\n    }\r\n  } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original autotracking implementation source:\r\n// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9\r\n// Additional references:\r\n// - https://www.pzuraq.com/blog/how-autotracking-works\r\n// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/\r\nimport type { EqualityFn } from '../types'\r\nimport { assertIsFunction } from '../utils'\r\n\r\n// The global revision clock. Every time state changes, the clock increments.\r\nexport let $REVISION = 0\r\n\r\n// The current dependency tracker. Whenever we compute a cache, we create a Set\r\n// to track any dependencies that are used while computing. If no cache is\r\n// computing, then the tracker is null.\r\nlet CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null\r\n\r\n// Storage represents a root value in the system - the actual state of our app.\r\nexport class Cell<T> {\r\n  revision = $REVISION\r\n\r\n  _value: T\r\n  _lastValue: T\r\n  _isEqual: EqualityFn = tripleEq\r\n\r\n  constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {\r\n    this._value = this._lastValue = initialValue\r\n    this._isEqual = isEqual\r\n  }\r\n\r\n  // Whenever a storage value is read, it'll add itself to the current tracker if\r\n  // one exists, entangling its state with that cache.\r\n  get value() {\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    return this._value\r\n  }\r\n\r\n  // Whenever a storage value is updated, we bump the global revision clock,\r\n  // assign the revision for this storage to the new value, _and_ we schedule a\r\n  // rerender. This is important, and it's what makes autotracking  _pull_\r\n  // based. We don't actively tell the caches which depend on the storage that\r\n  // anything has happened. Instead, we recompute the caches when needed.\r\n  set value(newValue) {\r\n    if (this.value === newValue) return\r\n\r\n    this._value = newValue\r\n    this.revision = ++$REVISION\r\n  }\r\n}\r\n\r\nfunction tripleEq(a: unknown, b: unknown) {\r\n  return a === b\r\n}\r\n\r\n// Caches represent derived state in the system. They are ultimately functions\r\n// that are memoized based on what state they use to produce their output,\r\n// meaning they will only rerun IFF a storage value that could affect the output\r\n// has changed. Otherwise, they'll return the cached value.\r\nexport class TrackingCache {\r\n  _cachedValue: any\r\n  _cachedRevision = -1\r\n  _deps: any[] = []\r\n  hits = 0\r\n\r\n  fn: () => any\r\n\r\n  constructor(fn: () => any) {\r\n    this.fn = fn\r\n  }\r\n\r\n  clear() {\r\n    this._cachedValue = undefined\r\n    this._cachedRevision = -1\r\n    this._deps = []\r\n    this.hits = 0\r\n  }\r\n\r\n  get value() {\r\n    // When getting the value for a Cache, first we check all the dependencies of\r\n    // the cache to see what their current revision is. If the current revision is\r\n    // greater than the cached revision, then something has changed.\r\n    if (this.revision > this._cachedRevision) {\r\n      const { fn } = this\r\n\r\n      // We create a new dependency tracker for this cache. As the cache runs\r\n      // its function, any Storage or Cache instances which are used while\r\n      // computing will be added to this tracker. In the end, it will be the\r\n      // full list of dependencies that this Cache depends on.\r\n      const currentTracker = new Set<Cell<any>>()\r\n      const prevTracker = CURRENT_TRACKER\r\n\r\n      CURRENT_TRACKER = currentTracker\r\n\r\n      // try {\r\n      this._cachedValue = fn()\r\n      // } finally {\r\n      CURRENT_TRACKER = prevTracker\r\n      this.hits++\r\n      this._deps = Array.from(currentTracker)\r\n\r\n      // Set the cached revision. This is the current clock count of all the\r\n      // dependencies. If any dependency changes, this number will be less\r\n      // than the new revision.\r\n      this._cachedRevision = this.revision\r\n      // }\r\n    }\r\n\r\n    // If there is a current tracker, it means another Cache is computing and\r\n    // using this one, so we add this one to the tracker.\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    // Always return the cached value.\r\n    return this._cachedValue\r\n  }\r\n\r\n  get revision() {\r\n    // The current revision is the max of all the dependencies' revisions.\r\n    return Math.max(...this._deps.map(d => d.revision), 0)\r\n  }\r\n}\r\n\r\nexport function getValue<T>(cell: Cell<T>): T {\r\n  if (!(cell instanceof Cell)) {\r\n    console.warn('Not a valid cell! ', cell)\r\n  }\r\n\r\n  return cell.value\r\n}\r\n\r\ntype CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never\r\n\r\nexport function setValue<T extends Cell<unknown>>(\r\n  storage: T,\r\n  value: CellValue<T>\r\n): void {\r\n  if (!(storage instanceof Cell)) {\r\n    throw new TypeError(\r\n      'setValue must be passed a tracked store created with `createStorage`.'\r\n    )\r\n  }\r\n\r\n  storage.value = storage._lastValue = value\r\n}\r\n\r\nexport function createCell<T = unknown>(\r\n  initialValue: T,\r\n  isEqual: EqualityFn = tripleEq\r\n): Cell<T> {\r\n  return new Cell(initialValue, isEqual)\r\n}\r\n\r\nexport function createCache<T = unknown>(fn: () => T): TrackingCache {\r\n  assertIsFunction(\r\n    fn,\r\n    'the first parameter to `createCache` must be a function'\r\n  )\r\n\r\n  return new TrackingCache(fn)\r\n}\r\n","import type { Cell } from './autotracking'\r\nimport {\r\n  getValue as consumeTag,\r\n  createCell as createStorage,\r\n  setValue\r\n} from './autotracking'\r\n\r\nexport type Tag = Cell<unknown>\r\n\r\nconst neverEq = (a: any, b: any): boolean => false\r\n\r\nexport function createTag(): Tag {\r\n  return createStorage(null, neverEq)\r\n}\r\nexport { consumeTag }\r\nexport function dirtyTag(tag: Tag, value: any): void {\r\n  setValue(tag, value)\r\n}\r\n\r\nexport interface Node<\r\n  T extends Array<unknown> | Record<string, unknown> =\r\n    | Array<unknown>\r\n    | Record<string, unknown>\r\n> {\r\n  collectionTag: Tag | null\r\n  tag: Tag | null\r\n  tags: Record<string, Tag>\r\n  children: Record<string, Node>\r\n  proxy: T\r\n  value: T\r\n  id: number\r\n}\r\n\r\nexport const consumeCollection = (node: Node): void => {\r\n  let tag = node.collectionTag\r\n\r\n  if (tag === null) {\r\n    tag = node.collectionTag = createTag()\r\n  }\r\n\r\n  consumeTag(tag)\r\n}\r\n\r\nexport const dirtyCollection = (node: Node): void => {\r\n  const tag = node.collectionTag\r\n\r\n  if (tag !== null) {\r\n    dirtyTag(tag, null)\r\n  }\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n  consumeCollection,\r\n  consumeTag,\r\n  createTag,\r\n  dirtyCollection,\r\n  dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {\r\n  proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {} as Record<string, Tag>\r\n  children = {} as Record<string, Node>\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n  get(node: Node, key: string | symbol): unknown {\r\n    function calculateResult() {\r\n      const { value } = node\r\n\r\n      const childValue = Reflect.get(value, key)\r\n\r\n      if (typeof key === 'symbol') {\r\n        return childValue\r\n      }\r\n\r\n      if (key in proto) {\r\n        return childValue\r\n      }\r\n\r\n      if (typeof childValue === 'object' && childValue !== null) {\r\n        let childNode = node.children[key]\r\n\r\n        if (childNode === undefined) {\r\n          childNode = node.children[key] = createNode(childValue)\r\n        }\r\n\r\n        if (childNode.tag) {\r\n          consumeTag(childNode.tag)\r\n        }\r\n\r\n        return childNode.proxy\r\n      } else {\r\n        let tag = node.tags[key]\r\n\r\n        if (tag === undefined) {\r\n          tag = node.tags[key] = createTag()\r\n          tag.value = childValue\r\n        }\r\n\r\n        consumeTag(tag)\r\n\r\n        return childValue\r\n      }\r\n    }\r\n    const res = calculateResult()\r\n    return res\r\n  },\r\n\r\n  ownKeys(node: Node): ArrayLike<string | symbol> {\r\n    consumeCollection(node)\r\n    return Reflect.ownKeys(node.value)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    node: Node,\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n  },\r\n\r\n  has(node: Node, prop: string | symbol): boolean {\r\n    return Reflect.has(node.value, prop)\r\n  }\r\n}\r\n\r\nclass ArrayTreeNode<T extends Array<unknown>> implements Node<T> {\r\n  proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {}\r\n  children = {}\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n  get([node]: [Node], key: string | symbol): unknown {\r\n    if (key === 'length') {\r\n      consumeCollection(node)\r\n    }\r\n\r\n    return objectProxyHandler.get(node, key)\r\n  },\r\n\r\n  ownKeys([node]: [Node]): ArrayLike<string | symbol> {\r\n    return objectProxyHandler.ownKeys(node)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    [node]: [Node],\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n  },\r\n\r\n  has([node]: [Node], prop: string | symbol): boolean {\r\n    return objectProxyHandler.has(node, prop)\r\n  }\r\n}\r\n\r\nexport function createNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  value: T\r\n): Node<T> {\r\n  if (Array.isArray(value)) {\r\n    return new ArrayTreeNode(value)\r\n  }\r\n\r\n  return new ObjectTreeNode(value) as Node<T>\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n  Array<unknown> | Record<string, unknown>,\r\n  Set<string>\r\n>()\r\n\r\nexport function updateNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  node: Node<T>,\r\n  newValue: T\r\n): void {\r\n  const { value, tags, children } = node\r\n\r\n  node.value = newValue\r\n\r\n  if (\r\n    Array.isArray(value) &&\r\n    Array.isArray(newValue) &&\r\n    value.length !== newValue.length\r\n  ) {\r\n    dirtyCollection(node)\r\n  } else {\r\n    if (value !== newValue) {\r\n      let oldKeysSize = 0\r\n      let newKeysSize = 0\r\n      let anyKeysAdded = false\r\n\r\n      for (const _key in value) {\r\n        oldKeysSize++\r\n      }\r\n\r\n      for (const key in newValue) {\r\n        newKeysSize++\r\n        if (!(key in value)) {\r\n          anyKeysAdded = true\r\n          break\r\n        }\r\n      }\r\n\r\n      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n      if (isDifferent) {\r\n        dirtyCollection(node)\r\n      }\r\n    }\r\n  }\r\n\r\n  for (const key in tags) {\r\n    const childValue = (value as Record<string, unknown>)[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    if (childValue !== newChildValue) {\r\n      dirtyCollection(node)\r\n      dirtyTag(tags[key], newChildValue)\r\n    }\r\n\r\n    if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      delete tags[key]\r\n    }\r\n  }\r\n\r\n  for (const key in children) {\r\n    const childNode = children[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    const childValue = childNode.value\r\n\r\n    if (childValue === newChildValue) {\r\n      continue\r\n    } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      updateNode(childNode, newChildValue as Record<string, unknown>)\r\n    } else {\r\n      deleteNode(childNode)\r\n      delete children[key]\r\n    }\r\n  }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n  if (node.tag) {\r\n    dirtyTag(node.tag, null)\r\n  }\r\n  dirtyCollection(node)\r\n  for (const key in node.tags) {\r\n    dirtyTag(node.tags[key], null)\r\n  }\r\n  for (const key in node.children) {\r\n    deleteNode(node.children[key])\r\n  }\r\n}\r\n","import type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nimport type { NOT_FOUND_TYPE } from './utils'\r\nimport { NOT_FOUND } from './utils'\r\n\r\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\r\n// https://github.com/erikras/lru-memoize\r\n\r\ninterface Entry {\r\n  key: unknown\r\n  value: unknown\r\n}\r\n\r\ninterface Cache {\r\n  get(key: unknown): unknown | NOT_FOUND_TYPE\r\n  put(key: unknown, value: unknown): void\r\n  getEntries(): Entry[]\r\n  clear(): void\r\n}\r\n\r\nfunction createSingletonCache(equals: EqualityFn): Cache {\r\n  let entry: Entry | undefined\r\n  return {\r\n    get(key: unknown) {\r\n      if (entry && equals(entry.key, key)) {\r\n        return entry.value\r\n      }\r\n\r\n      return NOT_FOUND\r\n    },\r\n\r\n    put(key: unknown, value: unknown) {\r\n      entry = { key, value }\r\n    },\r\n\r\n    getEntries() {\r\n      return entry ? [entry] : []\r\n    },\r\n\r\n    clear() {\r\n      entry = undefined\r\n    }\r\n  }\r\n}\r\n\r\nfunction createLruCache(maxSize: number, equals: EqualityFn): Cache {\r\n  let entries: Entry[] = []\r\n\r\n  function get(key: unknown) {\r\n    const cacheIndex = entries.findIndex(entry => equals(key, entry.key))\r\n\r\n    // We found a cached entry\r\n    if (cacheIndex > -1) {\r\n      const entry = entries[cacheIndex]\r\n\r\n      // Cached entry not at top of cache, move it to the top\r\n      if (cacheIndex > 0) {\r\n        entries.splice(cacheIndex, 1)\r\n        entries.unshift(entry)\r\n      }\r\n\r\n      return entry.value\r\n    }\r\n\r\n    // No entry found in cache, return sentinel\r\n    return NOT_FOUND\r\n  }\r\n\r\n  function put(key: unknown, value: unknown) {\r\n    if (get(key) === NOT_FOUND) {\r\n      // TODO Is unshift slow?\r\n      entries.unshift({ key, value })\r\n      if (entries.length > maxSize) {\r\n        entries.pop()\r\n      }\r\n    }\r\n  }\r\n\r\n  function getEntries() {\r\n    return entries\r\n  }\r\n\r\n  function clear() {\r\n    entries = []\r\n  }\r\n\r\n  return { get, put, getEntries, clear }\r\n}\r\n\r\n/**\r\n * Runs a simple reference equality check.\r\n * What {@linkcode lruMemoize lruMemoize} uses by default.\r\n *\r\n * **Note**: This function was previously known as `defaultEqualityCheck`.\r\n *\r\n * @public\r\n */\r\nexport const referenceEqualityCheck: EqualityFn = (a, b) => a === b\r\n\r\nexport function createCacheKeyComparator(equalityCheck: EqualityFn) {\r\n  return function areArgumentsShallowlyEqual(\r\n    prev: unknown[] | IArguments | null,\r\n    next: unknown[] | IArguments | null\r\n  ): boolean {\r\n    if (prev === null || next === null || prev.length !== next.length) {\r\n      return false\r\n    }\r\n\r\n    // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\r\n    const { length } = prev\r\n    for (let i = 0; i < length; i++) {\r\n      if (!equalityCheck(prev[i], next[i])) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n}\r\n\r\n/**\r\n * Options for configuring the behavior of a function memoized with\r\n * LRU (Least Recently Used) caching.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @public\r\n */\r\nexport interface LruMemoizeOptions<Result = any> {\r\n  /**\r\n   * Function used to compare the individual arguments of the\r\n   * provided calculation function.\r\n   *\r\n   * @default referenceEqualityCheck\r\n   */\r\n  equalityCheck?: EqualityFn\r\n\r\n  /**\r\n   * If provided, used to compare a newly generated output value against\r\n   * previous values in the cache. If a match is found,\r\n   * the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes\r\n   * a recalculation due to changed references, but the output is still\r\n   * effectively the same.\r\n   *\r\n   * @since 4.1.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n\r\n  /**\r\n   * The maximum size of the cache used by the selector.\r\n   * A size greater than 1 means the selector will use an\r\n   * LRU (Least Recently Used) cache, allowing for the caching of multiple\r\n   * results based on different sets of arguments.\r\n   *\r\n   * @default 1\r\n   */\r\n  maxSize?: number\r\n}\r\n\r\n/**\r\n * Creates a memoized version of a function with an optional\r\n * LRU (Least Recently Used) cache. The memoized function uses a cache to\r\n * store computed values. Depending on the `maxSize` option, it will use\r\n * either a singleton cache (for a single entry) or an\r\n * LRU cache (for multiple entries).\r\n *\r\n * **Note**: This function was previously known as `defaultMemoize`.\r\n *\r\n * @param func - The function to be memoized.\r\n * @param equalityCheckOrOptions - Either an equality check function or an options object.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}\r\n *\r\n * @public\r\n */\r\nexport function lruMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>\r\n) {\r\n  const providedOptions =\r\n    typeof equalityCheckOrOptions === 'object'\r\n      ? equalityCheckOrOptions\r\n      : { equalityCheck: equalityCheckOrOptions }\r\n\r\n  const {\r\n    equalityCheck = referenceEqualityCheck,\r\n    maxSize = 1,\r\n    resultEqualityCheck\r\n  } = providedOptions\r\n\r\n  const comparator = createCacheKeyComparator(equalityCheck)\r\n\r\n  let resultsCount = 0\r\n\r\n  const cache =\r\n    maxSize <= 1\r\n      ? createSingletonCache(comparator)\r\n      : createLruCache(maxSize, comparator)\r\n\r\n  function memoized() {\r\n    let value = cache.get(arguments) as ReturnType<Func>\r\n    if (value === NOT_FOUND) {\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      value = func.apply(null, arguments) as ReturnType<Func>\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const entries = cache.getEntries()\r\n        const matchingEntry = entries.find(entry =>\r\n          resultEqualityCheck(entry.value as ReturnType<Func>, value)\r\n        )\r\n\r\n        if (matchingEntry) {\r\n          value = matchingEntry.value as ReturnType<Func>\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n      }\r\n\r\n      cache.put(arguments, value)\r\n    }\r\n    return value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    cache.clear()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { createNode, updateNode } from './proxy'\r\nimport type { Node } from './tracking'\r\n\r\nimport { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'\r\nimport type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'\r\nimport { createCache } from './autotracking'\r\n\r\n/**\r\n * Uses an \"auto-tracking\" approach inspired by the work of the Ember Glimmer team.\r\n * It uses a Proxy to wrap arguments and track accesses to nested fields\r\n * in your selector on first read. Later, when the selector is called with\r\n * new arguments, it identifies which accessed fields have changed and\r\n * only recalculates the result if one or more of those accessed fields have changed.\r\n * This allows it to be more precise than the shallow equality checks in `lruMemoize`.\r\n *\r\n * __Design Tradeoffs for `autotrackMemoize`:__\r\n * - Pros:\r\n *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,\r\n *    which may also result in fewer component re-renders.\r\n * - Cons:\r\n *    - It only has a cache size of 1.\r\n *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)\r\n *    - It can have some unexpected behavior. Because it tracks nested field accesses,\r\n *    cases where you don't access a field will not recalculate properly.\r\n *    For example, a badly-written selector like:\r\n *      ```ts\r\n *      createSelector([state => state.todos], todos => todos)\r\n *      ```\r\n *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.\r\n *\r\n * __Use Cases for `autotrackMemoize`:__\r\n * - It is likely best used for cases where you need to access specific nested fields\r\n * in data, and avoid recalculating if other fields in the same data objects are immutably updated.\r\n *\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'\r\n *\r\n * const selectTodoIds = createSelector(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id),\r\n *   { memoize: autotrackMemoize }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'\r\n *\r\n * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })\r\n *\r\n * const selectTodoIds = createSelectorAutotrack(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function autotrackMemoize<Func extends AnyFunction>(func: Func) {\r\n  // we reference arguments instead of spreading them for performance reasons\r\n\r\n  const node: Node<Record<string, unknown>> = createNode(\r\n    [] as unknown as Record<string, unknown>\r\n  )\r\n\r\n  let lastArgs: IArguments | null = null\r\n\r\n  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)\r\n\r\n  const cache = createCache(() => {\r\n    const res = func.apply(null, node.proxy as unknown as any[])\r\n    return res\r\n  })\r\n\r\n  function memoized() {\r\n    if (!shallowEqual(lastArgs, arguments)) {\r\n      updateNode(node, arguments as unknown as Record<string, unknown>)\r\n      lastArgs = arguments\r\n    }\r\n    return cache.value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    return cache.clear()\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nclass StrongRef<T> {\r\n  constructor(private value: T) {}\r\n  deref() {\r\n    return this.value\r\n  }\r\n}\r\n\r\nconst Ref =\r\n  typeof WeakRef !== 'undefined'\r\n    ? WeakRef\r\n    : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 0\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: void\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular Map where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ninterface TerminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 1\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: T\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ntype CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>\r\n\r\nfunction createCacheNode<T>(): CacheNode<T> {\r\n  return {\r\n    s: UNTERMINATED,\r\n    v: undefined,\r\n    o: null,\r\n    p: null\r\n  }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions<Result = any> {\r\n  /**\r\n   * If provided, used to compare a newly generated output value against previous values in the cache.\r\n   * If a match is found, the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes a recalculation\r\n   * due to changed references, but the output is still effectively the same.\r\n   *\r\n   * @since 5.0.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n *   - It has an effectively infinite cache size, but you have no control over\r\n *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n *   - There's currently no way to alter the argument comparisons.\r\n *   They're based on strict reference equality.\r\n *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n *   ```ts\r\n *   useSelector(state => selectSomeData(state, props.category))\r\n *   ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category),\r\n *   {\r\n *     memoize: weakMapMemoize,\r\n *     argsMemoize: weakMapMemoize\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  options: WeakMapMemoizeOptions<ReturnType<Func>> = {}\r\n) {\r\n  let fnNode = createCacheNode()\r\n  const { resultEqualityCheck } = options\r\n\r\n  let lastResult: WeakRef<object> | undefined\r\n\r\n  let resultsCount = 0\r\n\r\n  function memoized() {\r\n    let cacheNode = fnNode\r\n    const { length } = arguments\r\n    for (let i = 0, l = length; i < l; i++) {\r\n      const arg = arguments[i]\r\n      if (\r\n        typeof arg === 'function' ||\r\n        (typeof arg === 'object' && arg !== null)\r\n      ) {\r\n        // Objects go into a WeakMap\r\n        let objectCache = cacheNode.o\r\n        if (objectCache === null) {\r\n          cacheNode.o = objectCache = new WeakMap()\r\n        }\r\n        const objectNode = objectCache.get(arg)\r\n        if (objectNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          objectCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = objectNode\r\n        }\r\n      } else {\r\n        // Primitives go into a regular Map\r\n        let primitiveCache = cacheNode.p\r\n        if (primitiveCache === null) {\r\n          cacheNode.p = primitiveCache = new Map()\r\n        }\r\n        const primitiveNode = primitiveCache.get(arg)\r\n        if (primitiveNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          primitiveCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = primitiveNode\r\n        }\r\n      }\r\n    }\r\n\r\n    const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>\r\n\r\n    let result\r\n\r\n    if (cacheNode.s === TERMINATED) {\r\n      result = cacheNode.v\r\n    } else {\r\n      // Allow errors to propagate\r\n      result = func.apply(null, arguments as unknown as any[])\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n        if (\r\n          lastResultValue != null &&\r\n          resultEqualityCheck(lastResultValue as ReturnType<Func>, result)\r\n        ) {\r\n          result = lastResultValue\r\n\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n\r\n        const needsWeakRef =\r\n          (typeof result === 'object' && result !== null) ||\r\n          typeof result === 'function'\r\n\r\n        lastResult = needsWeakRef ? new Ref(result) : result\r\n      }\r\n    }\r\n\r\n    terminatedNode.s = TERMINATED\r\n\r\n    terminatedNode.v = result\r\n    return result\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    fnNode = createCacheNode()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n  Combiner,\r\n  CreateSelectorOptions,\r\n  DropFirstParameter,\r\n  ExtractMemoizerFields,\r\n  GetParamsFromSelectors,\r\n  GetStateFromSelectors,\r\n  InterruptRecursion,\r\n  OutputSelector,\r\n  Selector,\r\n  SelectorArray,\r\n  SetRequired,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n  assertIsFunction,\r\n  collectInputSelectorResults,\r\n  ensureIsArray,\r\n  getDependencies,\r\n  getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  StateType = any\r\n> {\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <InputSelectors extends SelectorArray<StateType>, Result>(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions: Simplify<\r\n        CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n      >\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param inputSelectors - An array of input selectors.\r\n   * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n   * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    inputSelectors: [...InputSelectors],\r\n    combiner: Combiner<InputSelectors, Result>,\r\n    createSelectorOptions?: Simplify<\r\n      CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    >\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every {@linkcode createSelector createSelector} call.\r\n   *\r\n   * @returns A pre-typed `createSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createAppSelector = createSelector.withTypes<RootState>()\r\n   *\r\n   * const selectTodoIds = createAppSelector(\r\n   *   [\r\n   *     // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *     state => state.todos\r\n   *   ],\r\n   *   todos => todos.map(({ id }) => id)\r\n   * )\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction,\r\n    OverrideStateType\r\n  >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n *   memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n *   ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n  options: Simplify<\r\n    SetRequired<\r\n      CreateSelectorOptions<\r\n        typeof weakMapMemoize,\r\n        typeof weakMapMemoize,\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >,\r\n      'memoize'\r\n    >\r\n  >\r\n): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n *   option1, // Will be passed as second argument to `customMemoize`\r\n *   option2, // Will be passed as third argument to `customMemoize`\r\n *   option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(\r\n  memoize: MemoizeFunction,\r\n  ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>\r\n): CreateSelectorFunction<MemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer,\r\n  MemoizeOrOptions extends\r\n    | MemoizeFunction\r\n    | SetRequired<\r\n        CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n        'memoize'\r\n      >\r\n>(\r\n  memoizeOrOptions: MemoizeOrOptions,\r\n  ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  >\r\n    ? never\r\n    : DropFirstParameter<MemoizeFunction>\r\n) {\r\n  /** options initially passed into `createSelectorCreator`. */\r\n  const createSelectorCreatorOptions: SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  > = typeof memoizeOrOptions === 'function'\r\n    ? {\r\n        memoize: memoizeOrOptions as MemoizeFunction,\r\n        memoizeOptions: memoizeOptionsFromArgs\r\n      }\r\n    : memoizeOrOptions\r\n\r\n  const createSelector = <\r\n    InputSelectors extends SelectorArray,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: [...InputSelectors],\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions?: CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    ]\r\n  ) => {\r\n    let recomputations = 0\r\n    let dependencyRecomputations = 0\r\n    let lastResult: Result\r\n\r\n    // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n    // So, start by declaring the default value here.\r\n    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n    let directlyPassedOptions: CreateSelectorOptions<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    > = {}\r\n\r\n    // Normally, the result func or \"combiner\" is the last arg\r\n    let resultFunc = createSelectorArgs.pop() as\r\n      | Combiner<InputSelectors, Result>\r\n      | CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n\r\n    // If the result func is actually an _object_, assume it's our options object\r\n    if (typeof resultFunc === 'object') {\r\n      directlyPassedOptions = resultFunc\r\n      // and pop the real result func off\r\n      resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>\r\n    }\r\n\r\n    assertIsFunction(\r\n      resultFunc,\r\n      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n    )\r\n\r\n    // Determine which set of options we're using. Prefer options passed directly,\r\n    // but fall back to options given to `createSelectorCreator`.\r\n    const combinedOptions = {\r\n      ...createSelectorCreatorOptions,\r\n      ...directlyPassedOptions\r\n    }\r\n\r\n    const {\r\n      memoize,\r\n      memoizeOptions = [],\r\n      argsMemoize = weakMapMemoize,\r\n      argsMemoizeOptions = [],\r\n      devModeChecks = {}\r\n    } = combinedOptions\r\n\r\n    // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n    // is an array. In most libs I've looked at, it's an equality function or options object.\r\n    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n    // we wrap it in an array so we can apply it.\r\n    const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n    const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n    const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n      recomputations++\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      return (resultFunc as Combiner<InputSelectors, Result>).apply(\r\n        null,\r\n        arguments as unknown as Parameters<Combiner<InputSelectors, Result>>\r\n      )\r\n    }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &\r\n      ExtractMemoizerFields<OverrideMemoizeFunction>\r\n\r\n    let firstRun = true\r\n\r\n    // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n    const selector = argsMemoize(function dependenciesChecker() {\r\n      dependencyRecomputations++\r\n      /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n      const inputSelectorResults = collectInputSelectorResults(\r\n        dependencies,\r\n        arguments\r\n      )\r\n\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        const { identityFunctionCheck, inputStabilityCheck } =\r\n          getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n        if (identityFunctionCheck.shouldRun) {\r\n          identityFunctionCheck.run(\r\n            resultFunc as Combiner<InputSelectors, Result>,\r\n            inputSelectorResults,\r\n            lastResult\r\n          )\r\n        }\r\n\r\n        if (inputStabilityCheck.shouldRun) {\r\n          // make a second copy of the params, to check if we got the same results\r\n          const inputSelectorResultsCopy = collectInputSelectorResults(\r\n            dependencies,\r\n            arguments\r\n          )\r\n\r\n          inputStabilityCheck.run(\r\n            { inputSelectorResults, inputSelectorResultsCopy },\r\n            { memoize, memoizeOptions: finalMemoizeOptions },\r\n            arguments\r\n          )\r\n        }\r\n\r\n        if (firstRun) firstRun = false\r\n      }\r\n\r\n      return lastResult\r\n    }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n      GetStateFromSelectors<InputSelectors>,\r\n      Result,\r\n      GetParamsFromSelectors<InputSelectors>\r\n    > &\r\n      ExtractMemoizerFields<OverrideArgsMemoizeFunction>\r\n\r\n    return Object.assign(selector, {\r\n      resultFunc,\r\n      memoizedResultFunc,\r\n      dependencies,\r\n      dependencyRecomputations: () => dependencyRecomputations,\r\n      resetDependencyRecomputations: () => {\r\n        dependencyRecomputations = 0\r\n      },\r\n      lastResult: () => lastResult,\r\n      recomputations: () => recomputations,\r\n      resetRecomputations: () => {\r\n        recomputations = 0\r\n      },\r\n      memoize,\r\n      argsMemoize\r\n    }) as OutputSelector<\r\n      InputSelectors,\r\n      Result,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    >\r\n  }\r\n\r\n  Object.assign(createSelector, {\r\n    withTypes: () => createSelector\r\n  })\r\n\r\n  return createSelector as CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n  /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n  InterruptRecursion,\r\n  ObjectValuesToTuple,\r\n  OutputSelector,\r\n  Selector,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap<TObject extends SelectorsObject> = {\r\n  [Key in keyof TObject]: ReturnType<TObject[Key]>\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors<RootState = any> = {\r\n  [Key in keyof RootState]: Selector<RootState, RootState[Key], []>\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator<RootState = any> =\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ) => OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject<StateType = any> = Record<\r\n  string,\r\n  Selector<StateType>\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator<StateType = any> {\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends SelectorsObject<StateType>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ): OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of\r\n   * {@linkcode createStructuredSelector createStructuredSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every\r\n   * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n   *\r\n   * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createStructuredSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createStructuredAppSelector =\r\n   *   createStructuredSelector.withTypes<RootState>()\r\n   *\r\n   * const structuredAppSelector = createStructuredAppSelector({\r\n   *   // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *   todos: state => state.todos,\r\n   *   alerts: state => state.alerts,\r\n   *   todoById: (state, id: number) => state.todos[id]\r\n   * })\r\n   *\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <\r\n    OverrideStateType extends StateType\r\n  >() => StructuredSelectorCreator<OverrideStateType>\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   todos: {\r\n *     id: number\r\n *     completed: boolean\r\n *     title: string\r\n *     description: string\r\n *   }[]\r\n *   alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n *   {\r\n *     todos: (state: RootState) => state.todos,\r\n *     alerts: (state: RootState) => state.alerts,\r\n *     todoById: (state: RootState, id: number) => state.todos[id]\r\n *   },\r\n *   createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n *   [\r\n *     (state: RootState) => state.todos,\r\n *     (state: RootState) => state.alerts,\r\n *     (state: RootState, id: number) => state.todos[id]\r\n *   ],\r\n *   (todos, alerts, todoById) => {\r\n *     return {\r\n *       todos,\r\n *       alerts,\r\n *       todoById\r\n *     }\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n  Object.assign(\r\n    <\r\n      InputSelectorsObject extends SelectorsObject,\r\n      MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n      ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n    >(\r\n      inputSelectorsObject: InputSelectorsObject,\r\n      selectorCreator: CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      > = createSelector as CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >\r\n    ) => {\r\n      assertIsObject(\r\n        inputSelectorsObject,\r\n        'createStructuredSelector expects first argument to be an object ' +\r\n          `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n      )\r\n      const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n      const dependencies = inputSelectorKeys.map(\r\n        key => inputSelectorsObject[key]\r\n      )\r\n      const structuredSelector = selectorCreator(\r\n        dependencies,\r\n        (...inputSelectorResults: any[]) => {\r\n          return inputSelectorResults.reduce((composition, value, index) => {\r\n            composition[inputSelectorKeys[index]] = value\r\n            return composition\r\n          }, {})\r\n        }\r\n      )\r\n      return structuredSelector\r\n    },\r\n    { withTypes: () => createStructuredSelector }\r\n  ) as StructuredSelectorCreator\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACmBO,IAAM,2BAA2B,CACtC,YACA,uBACA,yBACG;AACH,MACE,sBAAsB,WAAW,KACjC,sBAAsB,CAAC,MAAM,sBAC7B;AACA,QAAI,sBAAsB;AAC1B,QAAI;AACF,YAAM,cAAc,CAAC;AACrB,UAAI,WAAW,WAAW,MAAM;AAAa,8BAAsB;AAAA,IACrE,QAAE;AAAA,IAEF;AACA,QAAI,qBAAqB;AACvB,UAAI,QAA4B;AAChC,UAAI;AACF,cAAM,IAAI,MAAM;AAAA,MAClB,SAAS,GAAP;AAEA;AAAC,SAAC,EAAE,MAAM,IAAI;AAAA,MAChB;AACA,cAAQ;AAAA,QACN;AAAA,QAIA,EAAE,MAAM;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;ACpCO,IAAM,yBAAyB,CACpC,4BAIA,SAMA,sBACG;AACH,QAAM,EAAE,SAAS,eAAe,IAAI;AACpC,QAAM,EAAE,sBAAsB,yBAAyB,IACrD;AACF,QAAM,sBAAsB,QAAQ,OAAO,CAAC,IAAI,GAAG,cAAc;AAEjE,QAAM,+BACJ,oBAAoB,MAAM,MAAM,oBAAoB,MACpD,oBAAoB,MAAM,MAAM,wBAAwB;AAC1D,MAAI,CAAC,8BAA8B;AACjC,QAAI,QAA4B;AAChC,QAAI;AACF,YAAM,IAAI,MAAM;AAAA,IAClB,SAAS,GAAP;AAEA;AAAC,OAAC,EAAE,MAAM,IAAI;AAAA,IAChB;AACA,YAAQ;AAAA,MACN;AAAA,MAIA;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACjDO,IAAM,sBAAqC;AAAA,EAChD,qBAAqB;AAAA,EACrB,uBAAuB;AACzB;AA8CO,IAAM,yBAAyB,CACpC,kBACG;AACH,SAAO,OAAO,qBAAqB,aAAa;AAClD;;;ACnDO,IAAM,YAA4B,uBAAO,WAAW;AAWpD,SAAS,iBACd,MACA,eAAe,yCAAyC,OAAO,QACjC;AAC9B,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,eACd,QACA,eAAe,wCAAwC,OAAO,UAChC;AAC9B,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,yBACd,OACA,eAAe,8EACkB;AACjC,MACE,CAAC,MAAM,MAAM,CAAC,SAA+B,OAAO,SAAS,UAAU,GACvE;AACA,UAAM,YAAY,MACf;AAAA,MAAI,UACH,OAAO,SAAS,aACZ,YAAY,KAAK,QAAQ,gBACzB,OAAO;AAAA,IACb,EACC,KAAK,IAAI;AACZ,UAAM,IAAI,UAAU,GAAG,gBAAgB,YAAY;AAAA,EACrD;AACF;AASO,IAAM,gBAAgB,CAAC,SAAkB;AAC9C,SAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC3C;AASO,SAAS,gBAAgB,oBAA+B;AAC7D,QAAM,eAAe,MAAM,QAAQ,mBAAmB,CAAC,CAAC,IACpD,mBAAmB,CAAC,IACpB;AAEJ;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,4BACd,cACA,mBACA;AACA,QAAM,uBAAuB,CAAC;AAC9B,QAAM,EAAE,OAAO,IAAI;AACnB,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAG/B,yBAAqB,KAAK,aAAa,CAAC,EAAE,MAAM,MAAM,iBAAiB,CAAC;AAAA,EAC1E;AACA,SAAO;AACT;AASO,IAAM,gCAAgC,CAC3C,UACA,kBACG;AACH,QAAM,EAAE,uBAAuB,oBAAoB,IAAI;AAAA,IACrD,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,SAAO;AAAA,IACL,uBAAuB;AAAA,MACrB,WACE,0BAA0B,YACzB,0BAA0B,UAAU;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,IACA,qBAAqB;AAAA,MACnB,WACE,wBAAwB,YACvB,wBAAwB,UAAU;AAAA,MACrC,KAAK;AAAA,IACP;AAAA,EACF;AACF;;;AClJO,IAAI,YAAY;AAKvB,IAAI,kBAAyD;AAGtD,IAAM,OAAN,MAAc;AAAA,EACnB,WAAW;AAAA,EAEX;AAAA,EACA;AAAA,EACA,WAAuB;AAAA,EAEvB,YAAY,cAAiB,UAAsB,UAAU;AAC3D,SAAK,SAAS,KAAK,aAAa;AAChC,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,qBAAiB,IAAI,IAAI;AAEzB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,MAAM,UAAU;AAClB,QAAI,KAAK,UAAU;AAAU;AAE7B,SAAK,SAAS;AACd,SAAK,WAAW,EAAE;AAAA,EACpB;AACF;AAEA,SAAS,SAAS,GAAY,GAAY;AACxC,SAAO,MAAM;AACf;AAMO,IAAM,gBAAN,MAAoB;AAAA,EACzB;AAAA,EACA,kBAAkB;AAAA,EAClB,QAAe,CAAC;AAAA,EAChB,OAAO;AAAA,EAEP;AAAA,EAEA,YAAY,IAAe;AACzB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,QAAQ;AACN,SAAK,eAAe;AACpB,SAAK,kBAAkB;AACvB,SAAK,QAAQ,CAAC;AACd,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ;AAIV,QAAI,KAAK,WAAW,KAAK,iBAAiB;AACxC,YAAM,EAAE,GAAG,IAAI;AAMf,YAAM,iBAAiB,oBAAI,IAAe;AAC1C,YAAM,cAAc;AAEpB,wBAAkB;AAGlB,WAAK,eAAe,GAAG;AAEvB,wBAAkB;AAClB,WAAK;AACL,WAAK,QAAQ,MAAM,KAAK,cAAc;AAKtC,WAAK,kBAAkB,KAAK;AAAA,IAE9B;AAIA,qBAAiB,IAAI,IAAI;AAGzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW;AAEb,WAAO,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,OAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,EACvD;AACF;AAEO,SAAS,SAAY,MAAkB;AAC5C,MAAI,EAAE,gBAAgB,OAAO;AAC3B,YAAQ,KAAK,sBAAsB,IAAI;AAAA,EACzC;AAEA,SAAO,KAAK;AACd;AAIO,SAAS,SACd,SACA,OACM;AACN,MAAI,EAAE,mBAAmB,OAAO;AAC9B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,QAAQ,QAAQ,aAAa;AACvC;AAEO,SAAS,WACd,cACA,UAAsB,UACb;AACT,SAAO,IAAI,KAAK,cAAc,OAAO;AACvC;AAEO,SAAS,YAAyB,IAA4B;AACnE;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO,IAAI,cAAc,EAAE;AAC7B;;;ACrJA,IAAM,UAAU,CAAC,GAAQ,MAAoB;AAEtC,SAAS,YAAiB;AAC/B,SAAO,WAAc,MAAM,OAAO;AACpC;AAEO,SAAS,SAAS,KAAU,OAAkB;AACnD,WAAS,KAAK,KAAK;AACrB;AAgBO,IAAM,oBAAoB,CAAC,SAAqB;AACrD,MAAI,MAAM,KAAK;AAEf,MAAI,QAAQ,MAAM;AAChB,UAAM,KAAK,gBAAgB,UAAU;AAAA,EACvC;AAEA,WAAW,GAAG;AAChB;AAEO,IAAM,kBAAkB,CAAC,SAAqB;AACnD,QAAM,MAAM,KAAK;AAEjB,MAAI,QAAQ,MAAM;AAChB,aAAS,KAAK,IAAI;AAAA,EACpB;AACF;;;ACrCO,IAAM,oBAAoB,OAAO;AAExC,IAAI,SAAS;AAEb,IAAM,QAAQ,OAAO,eAAe,CAAC,CAAC;AAEtC,IAAM,iBAAN,MAA2E;AAAA,EAQzE,YAAmB,OAAU;AAAV;AACjB,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AAAA,EAVA,QAAW,IAAI,MAAM,MAAM,kBAAkB;AAAA,EAC7C,MAAM,UAAU;AAAA,EAChB,OAAO,CAAC;AAAA,EACR,WAAW,CAAC;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAMP;AAEA,IAAM,qBAAqB;AAAA,EACzB,IAAI,MAAY,KAA+B;AAC7C,aAAS,kBAAkB;AACzB,YAAM,EAAE,MAAM,IAAI;AAElB,YAAM,aAAa,QAAQ,IAAI,OAAO,GAAG;AAEzC,UAAI,OAAO,QAAQ,UAAU;AAC3B,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,OAAO;AAChB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,eAAe,YAAY,eAAe,MAAM;AACzD,YAAI,YAAY,KAAK,SAAS,GAAG;AAEjC,YAAI,cAAc,QAAW;AAC3B,sBAAY,KAAK,SAAS,GAAG,IAAI,WAAW,UAAU;AAAA,QACxD;AAEA,YAAI,UAAU,KAAK;AACjB,mBAAW,UAAU,GAAG;AAAA,QAC1B;AAEA,eAAO,UAAU;AAAA,MACnB,OAAO;AACL,YAAI,MAAM,KAAK,KAAK,GAAG;AAEvB,YAAI,QAAQ,QAAW;AACrB,gBAAM,KAAK,KAAK,GAAG,IAAI,UAAU;AACjC,cAAI,QAAQ;AAAA,QACd;AAEA,iBAAW,GAAG;AAEd,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,MAAM,gBAAgB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAwC;AAC9C,sBAAkB,IAAI;AACtB,WAAO,QAAQ,QAAQ,KAAK,KAAK;AAAA,EACnC;AAAA,EAEA,yBACE,MACA,MACgC;AAChC,WAAO,QAAQ,yBAAyB,KAAK,OAAO,IAAI;AAAA,EAC1D;AAAA,EAEA,IAAI,MAAY,MAAgC;AAC9C,WAAO,QAAQ,IAAI,KAAK,OAAO,IAAI;AAAA,EACrC;AACF;AAEA,IAAM,gBAAN,MAAiE;AAAA,EAQ/D,YAAmB,OAAU;AAAV;AACjB,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AAAA,EAVA,QAAW,IAAI,MAAM,CAAC,IAAI,GAAG,iBAAiB;AAAA,EAC9C,MAAM,UAAU;AAAA,EAChB,OAAO,CAAC;AAAA,EACR,WAAW,CAAC;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAMP;AAEA,IAAM,oBAAoB;AAAA,EACxB,IAAI,CAAC,IAAI,GAAW,KAA+B;AACjD,QAAI,QAAQ,UAAU;AACpB,wBAAkB,IAAI;AAAA,IACxB;AAEA,WAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,EACzC;AAAA,EAEA,QAAQ,CAAC,IAAI,GAAuC;AAClD,WAAO,mBAAmB,QAAQ,IAAI;AAAA,EACxC;AAAA,EAEA,yBACE,CAAC,IAAI,GACL,MACgC;AAChC,WAAO,mBAAmB,yBAAyB,MAAM,IAAI;AAAA,EAC/D;AAAA,EAEA,IAAI,CAAC,IAAI,GAAW,MAAgC;AAClD,WAAO,mBAAmB,IAAI,MAAM,IAAI;AAAA,EAC1C;AACF;AAEO,SAAS,WACd,OACS;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,IAAI,cAAc,KAAK;AAAA,EAChC;AAEA,SAAO,IAAI,eAAe,KAAK;AACjC;AAOO,SAAS,WACd,MACA,UACM;AACN,QAAM,EAAE,OAAO,MAAM,SAAS,IAAI;AAElC,OAAK,QAAQ;AAEb,MACE,MAAM,QAAQ,KAAK,KACnB,MAAM,QAAQ,QAAQ,KACtB,MAAM,WAAW,SAAS,QAC1B;AACA,oBAAgB,IAAI;AAAA,EACtB,OAAO;AACL,QAAI,UAAU,UAAU;AACtB,UAAI,cAAc;AAClB,UAAI,cAAc;AAClB,UAAI,eAAe;AAEnB,iBAAW,QAAQ,OAAO;AACxB;AAAA,MACF;AAEA,iBAAW,OAAO,UAAU;AAC1B;AACA,YAAI,EAAE,OAAO,QAAQ;AACnB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,YAAM,cAAc,gBAAgB,gBAAgB;AAEpD,UAAI,aAAa;AACf,wBAAgB,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAEA,aAAW,OAAO,MAAM;AACtB,UAAM,aAAc,MAAkC,GAAG;AACzD,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,QAAI,eAAe,eAAe;AAChC,sBAAgB,IAAI;AACpB,eAAS,KAAK,GAAG,GAAG,aAAa;AAAA,IACnC;AAEA,QAAI,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AAC/D,aAAO,KAAK,GAAG;AAAA,IACjB;AAAA,EACF;AAEA,aAAW,OAAO,UAAU;AAC1B,UAAM,YAAY,SAAS,GAAG;AAC9B,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,UAAM,aAAa,UAAU;AAE7B,QAAI,eAAe,eAAe;AAChC;AAAA,IACF,WAAW,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AACtE,iBAAW,WAAW,aAAwC;AAAA,IAChE,OAAO;AACL,iBAAW,SAAS;AACpB,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,EACF;AACF;AAEA,SAAS,WAAW,MAAkB;AACpC,MAAI,KAAK,KAAK;AACZ,aAAS,KAAK,KAAK,IAAI;AAAA,EACzB;AACA,kBAAgB,IAAI;AACpB,aAAW,OAAO,KAAK,MAAM;AAC3B,aAAS,KAAK,KAAK,GAAG,GAAG,IAAI;AAAA,EAC/B;AACA,aAAW,OAAO,KAAK,UAAU;AAC/B,eAAW,KAAK,SAAS,GAAG,CAAC;AAAA,EAC/B;AACF;;;AC5MA,SAAS,qBAAqB,QAA2B;AACvD,MAAI;AACJ,SAAO;AAAA,IACL,IAAI,KAAc;AAChB,UAAI,SAAS,OAAO,MAAM,KAAK,GAAG,GAAG;AACnC,eAAO,MAAM;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,KAAc,OAAgB;AAChC,cAAQ,EAAE,KAAK,MAAM;AAAA,IACvB;AAAA,IAEA,aAAa;AACX,aAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;AAAA,IAC5B;AAAA,IAEA,QAAQ;AACN,cAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,SAAS,eAAe,SAAiB,QAA2B;AAClE,MAAI,UAAmB,CAAC;AAExB,WAAS,IAAI,KAAc;AACzB,UAAM,aAAa,QAAQ,UAAU,WAAS,OAAO,KAAK,MAAM,GAAG,CAAC;AAGpE,QAAI,aAAa,IAAI;AACnB,YAAM,QAAQ,QAAQ,UAAU;AAGhC,UAAI,aAAa,GAAG;AAClB,gBAAQ,OAAO,YAAY,CAAC;AAC5B,gBAAQ,QAAQ,KAAK;AAAA,MACvB;AAEA,aAAO,MAAM;AAAA,IACf;AAGA,WAAO;AAAA,EACT;AAEA,WAAS,IAAI,KAAc,OAAgB;AACzC,QAAI,IAAI,GAAG,MAAM,WAAW;AAE1B,cAAQ,QAAQ,EAAE,KAAK,MAAM,CAAC;AAC9B,UAAI,QAAQ,SAAS,SAAS;AAC5B,gBAAQ,IAAI;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAEA,WAAS,aAAa;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,QAAQ;AACf,cAAU,CAAC;AAAA,EACb;AAEA,SAAO,EAAE,KAAK,KAAK,YAAY,MAAM;AACvC;AAUO,IAAM,yBAAqC,CAAC,GAAG,MAAM,MAAM;AAE3D,SAAS,yBAAyB,eAA2B;AAClE,SAAO,SAAS,2BACd,MACA,MACS;AACT,QAAI,SAAS,QAAQ,SAAS,QAAQ,KAAK,WAAW,KAAK,QAAQ;AACjE,aAAO;AAAA,IACT;AAGA,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,UAAI,CAAC,cAAc,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAgEO,SAAS,WACd,MACA,wBACA;AACA,QAAM,kBACJ,OAAO,2BAA2B,WAC9B,yBACA,EAAE,eAAe,uBAAuB;AAE9C,QAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,EACF,IAAI;AAEJ,QAAM,aAAa,yBAAyB,aAAa;AAEzD,MAAI,eAAe;AAEnB,QAAM,QACJ,WAAW,IACP,qBAAqB,UAAU,IAC/B,eAAe,SAAS,UAAU;AAExC,WAAS,WAAW;AAClB,QAAI,QAAQ,MAAM,IAAI,SAAS;AAC/B,QAAI,UAAU,WAAW;AAGvB,cAAQ,KAAK,MAAM,MAAM,SAAS;AAClC;AAEA,UAAI,qBAAqB;AACvB,cAAM,UAAU,MAAM,WAAW;AACjC,cAAM,gBAAgB,QAAQ;AAAA,UAAK,WACjC,oBAAoB,MAAM,OAA2B,KAAK;AAAA,QAC5D;AAEA,YAAI,eAAe;AACjB,kBAAQ,cAAc;AACtB,2BAAiB,KAAK;AAAA,QACxB;AAAA,MACF;AAEA,YAAM,IAAI,WAAW,KAAK;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,UAAM,MAAM;AACZ,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;AClLO,SAAS,iBAA2C,MAAY;AAGrE,QAAM,OAAsC;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,MAAI,WAA8B;AAElC,QAAM,eAAe,yBAAyB,sBAAsB;AAEpE,QAAM,QAAQ,YAAY,MAAM;AAC9B,UAAM,MAAM,KAAK,MAAM,MAAM,KAAK,KAAyB;AAC3D,WAAO;AAAA,EACT,CAAC;AAED,WAAS,WAAW;AAClB,QAAI,CAAC,aAAa,UAAU,SAAS,GAAG;AACtC,iBAAW,MAAM,SAA+C;AAChE,iBAAW;AAAA,IACb;AACA,WAAO,MAAM;AAAA,EACf;AAEA,WAAS,aAAa,MAAM;AAC1B,WAAO,MAAM,MAAM;AAAA,EACrB;AAEA,SAAO;AACT;;;ACzFA,IAAM,YAAN,MAAmB;AAAA,EACjB,YAAoB,OAAU;AAAV;AAAA,EAAW;AAAA,EAC/B,QAAQ;AACN,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAM,MACJ,OAAO,YAAY,cACf,UACC;AAEP,IAAM,eAAe;AACrB,IAAM,aAAa;AA0CnB,SAAS,kBAAmC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAmGO,SAAS,eACd,MACA,UAAmD,CAAC,GACpD;AACA,MAAI,SAAS,gBAAgB;AAC7B,QAAM,EAAE,oBAAoB,IAAI;AAEhC,MAAI;AAEJ,MAAI,eAAe;AAEnB,WAAS,WAAW;AAClB,QAAI,YAAY;AAChB,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,KAAK;AACtC,YAAM,MAAM,UAAU,CAAC;AACvB,UACE,OAAO,QAAQ,cACd,OAAO,QAAQ,YAAY,QAAQ,MACpC;AAEA,YAAI,cAAc,UAAU;AAC5B,YAAI,gBAAgB,MAAM;AACxB,oBAAU,IAAI,cAAc,oBAAI,QAAQ;AAAA,QAC1C;AACA,cAAM,aAAa,YAAY,IAAI,GAAG;AACtC,YAAI,eAAe,QAAW;AAC5B,sBAAY,gBAAgB;AAC5B,sBAAY,IAAI,KAAK,SAAS;AAAA,QAChC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF,OAAO;AAEL,YAAI,iBAAiB,UAAU;AAC/B,YAAI,mBAAmB,MAAM;AAC3B,oBAAU,IAAI,iBAAiB,oBAAI,IAAI;AAAA,QACzC;AACA,cAAM,gBAAgB,eAAe,IAAI,GAAG;AAC5C,YAAI,kBAAkB,QAAW;AAC/B,sBAAY,gBAAgB;AAC5B,yBAAe,IAAI,KAAK,SAAS;AAAA,QACnC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAEA,UAAM,iBAAiB;AAEvB,QAAI;AAEJ,QAAI,UAAU,MAAM,YAAY;AAC9B,eAAS,UAAU;AAAA,IACrB,OAAO;AAEL,eAAS,KAAK,MAAM,MAAM,SAA6B;AACvD;AAEA,UAAI,qBAAqB;AACvB,cAAM,kBAAkB,YAAY,QAAQ,KAAK;AAEjD,YACE,mBAAmB,QACnB,oBAAoB,iBAAqC,MAAM,GAC/D;AACA,mBAAS;AAET,2BAAiB,KAAK;AAAA,QACxB;AAEA,cAAM,eACH,OAAO,WAAW,YAAY,WAAW,QAC1C,OAAO,WAAW;AAEpB,qBAAa,eAAe,IAAI,IAAI,MAAM,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,mBAAe,IAAI;AAEnB,mBAAe,IAAI;AACnB,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,aAAS,gBAAgB;AACzB,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;ACaO,SAAS,sBAUd,qBACG,wBAMH;AAEA,QAAM,+BAGF,OAAO,qBAAqB,aAC5B;AAAA,IACE,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,IACA;AAEJ,QAAMA,kBAAiB,IAMlB,uBAUA;AACH,QAAI,iBAAiB;AACrB,QAAI,2BAA2B;AAC/B,QAAI;AAKJ,QAAI,wBAKA,CAAC;AAGL,QAAI,aAAa,mBAAmB,IAAI;AAUxC,QAAI,OAAO,eAAe,UAAU;AAClC,8BAAwB;AAExB,mBAAa,mBAAmB,IAAI;AAAA,IACtC;AAEA;AAAA,MACE;AAAA,MACA,8EAA8E,OAAO;AAAA,IACvF;AAIA,UAAM,kBAAkB;AAAA,MACtB,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAEA,UAAM;AAAA,MACJ;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,cAAc;AAAA,MACd,qBAAqB,CAAC;AAAA,MACtB,gBAAgB,CAAC;AAAA,IACnB,IAAI;AAOJ,UAAM,sBAAsB,cAAc,cAAc;AACxD,UAAM,0BAA0B,cAAc,kBAAkB;AAChE,UAAM,eAAe,gBAAgB,kBAAkB;AAEvD,UAAM,qBAAqB,QAAQ,SAAS,uBAAuB;AACjE;AAGA,aAAQ,WAAgD;AAAA,QACtD;AAAA,QACA;AAAA,MACF;AAAA,IACF,GAAG,GAAG,mBAAmB;AAGzB,QAAI,WAAW;AAGf,UAAM,WAAW,YAAY,SAAS,sBAAsB;AAC1D;AAEA,YAAM,uBAAuB;AAAA,QAC3B;AAAA,QACA;AAAA,MACF;AAIA,mBAAa,mBAAmB,MAAM,MAAM,oBAAoB;AAEhE,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAM,EAAE,uBAAuB,oBAAoB,IACjD,8BAA8B,UAAU,aAAa;AACvD,YAAI,sBAAsB,WAAW;AACnC,gCAAsB;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,YAAI,oBAAoB,WAAW;AAEjC,gBAAM,2BAA2B;AAAA,YAC/B;AAAA,YACA;AAAA,UACF;AAEA,8BAAoB;AAAA,YAClB,EAAE,sBAAsB,yBAAyB;AAAA,YACjD,EAAE,SAAS,gBAAgB,oBAAoB;AAAA,YAC/C;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAAU,qBAAW;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT,GAAG,GAAG,uBAAuB;AAO7B,WAAO,OAAO,OAAO,UAAU;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,0BAA0B,MAAM;AAAA,MAChC,+BAA+B,MAAM;AACnC,mCAA2B;AAAA,MAC7B;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,gBAAgB,MAAM;AAAA,MACtB,qBAAqB,MAAM;AACzB,yBAAiB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EAMH;AAEA,SAAO,OAAOA,iBAAgB;AAAA,IAC5B,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AAIT;AAWO,IAAM,iBACK,sCAAsB,cAAc;;;AC5E/C,IAAM,2BACX,OAAO;AAAA,EACL,CAKE,sBACA,kBAGI,mBAID;AACH;AAAA,MACE;AAAA,MACA,yHAC2D,OAAO;AAAA,IACpE;AACA,UAAM,oBAAoB,OAAO,KAAK,oBAAoB;AAC1D,UAAM,eAAe,kBAAkB;AAAA,MACrC,SAAO,qBAAqB,GAAG;AAAA,IACjC;AACA,UAAM,qBAAqB;AAAA,MACzB;AAAA,MACA,IAAI,yBAAgC;AAClC,eAAO,qBAAqB,OAAO,CAAC,aAAa,OAAO,UAAU;AAChE,sBAAY,kBAAkB,KAAK,CAAC,IAAI;AACxC,iBAAO;AAAA,QACT,GAAG,CAAC,CAAC;AAAA,MACP;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,EAAE,WAAW,MAAM,yBAAyB;AAC9C;","names":["createSelector"]}
Index: de_modules/reselect/dist/reselect.browser.mjs
===================================================================
--- node_modules/reselect/dist/reselect.browser.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2 +1,0 @@
-var re={inputStabilityCheck:"once",identityFunctionCheck:"once"},ie=e=>{Object.assign(re,e)};var S=Symbol("NOT_FOUND");function T(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function V(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function ce(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){let n=e.map(c=>typeof c=="function"?`function ${c.name||"unnamed"}()`:typeof c).join(", ");throw new TypeError(`${t}[${n}]`)}}var O=e=>Array.isArray(e)?e:[e];function K(e){let t=Array.isArray(e[0])?e[0]:e;return ce(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function W(e,t){let n=[],{length:c}=e;for(let s=0;s<c;s++)n.push(e[s].apply(null,t));return n}var G=0,M=null,F=class{revision=G;_value;_lastValue;_isEqual=v;constructor(t,n=v){this._value=this._lastValue=t,this._isEqual=n}get value(){return M?.add(this),this._value}set value(t){this.value!==t&&(this._value=t,this.revision=++G)}};function v(e,t){return e===t}var b=class{_cachedValue;_cachedRevision=-1;_deps=[];hits=0;fn;constructor(t){this.fn=t}clear(){this._cachedValue=void 0,this._cachedRevision=-1,this._deps=[],this.hits=0}get value(){if(this.revision>this._cachedRevision){let{fn:t}=this,n=new Set,c=M;M=n,this._cachedValue=t(),M=c,this.hits++,this._deps=Array.from(n),this._cachedRevision=this.revision}return M?.add(this),this._cachedValue}get revision(){return Math.max(...this._deps.map(t=>t.revision),0)}};function g(e){return e instanceof F||console.warn("Not a valid cell! ",e),e.value}function L(e,t){if(!(e instanceof F))throw new TypeError("setValue must be passed a tracked store created with `createStorage`.");e.value=e._lastValue=t}function $(e,t=v){return new F(e,t)}function Y(e){return T(e,"the first parameter to `createCache` must be a function"),new b(e)}var se=(e,t)=>!1;function z(){return $(null,se)}function k(e,t){L(e,t)}var A=e=>{let t=e.collectionTag;t===null&&(t=e.collectionTag=z()),g(t)},h=e=>{let t=e.collectionTag;t!==null&&k(t,null)};var xe=Symbol(),H=0,ue=Object.getPrototypeOf({}),I=class{constructor(t){this.value=t;this.value=t,this.tag.value=t}proxy=new Proxy(this,C);tag=z();tags={};children={};collectionTag=null;id=H++},C={get(e,t){function n(){let{value:s}=e,o=Reflect.get(s,t);if(typeof t=="symbol"||t in ue)return o;if(typeof o=="object"&&o!==null){let i=e.children[t];return i===void 0&&(i=e.children[t]=E(o)),i.tag&&g(i.tag),i.proxy}else{let i=e.tags[t];return i===void 0&&(i=e.tags[t]=z(),i.value=o),g(i),o}}return n()},ownKeys(e){return A(e),Reflect.ownKeys(e.value)},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e.value,t)},has(e,t){return Reflect.has(e.value,t)}},N=class{constructor(t){this.value=t;this.value=t,this.tag.value=t}proxy=new Proxy([this],ae);tag=z();tags={};children={};collectionTag=null;id=H++},ae={get([e],t){return t==="length"&&A(e),C.get(e,t)},ownKeys([e]){return C.ownKeys(e)},getOwnPropertyDescriptor([e],t){return C.getOwnPropertyDescriptor(e,t)},has([e],t){return C.has(e,t)}};function E(e){return Array.isArray(e)?new N(e):new I(e)}function D(e,t){let{value:n,tags:c,children:s}=e;if(e.value=t,Array.isArray(n)&&Array.isArray(t)&&n.length!==t.length)h(e);else if(n!==t){let o=0,i=0,r=!1;for(let u in n)o++;for(let u in t)if(i++,!(u in n)){r=!0;break}(r||o!==i)&&h(e)}for(let o in c){let i=n[o],r=t[o];i!==r&&(h(e),k(c[o],r)),typeof r=="object"&&r!==null&&delete c[o]}for(let o in s){let i=s[o],r=t[o];i.value!==r&&(typeof r=="object"&&r!==null?D(i,r):(X(i),delete s[o]))}}function X(e){e.tag&&k(e.tag,null),h(e);for(let t in e.tags)k(e.tags[t],null);for(let t in e.children)X(e.children[t])}function le(e){let t;return{get(n){return t&&e(t.key,n)?t.value:S},put(n,c){t={key:n,value:c}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function pe(e,t){let n=[];function c(r){let a=n.findIndex(u=>t(r,u.key));if(a>-1){let u=n[a];return a>0&&(n.splice(a,1),n.unshift(u)),u.value}return S}function s(r,a){c(r)===S&&(n.unshift({key:r,value:a}),n.length>e&&n.pop())}function o(){return n}function i(){n=[]}return{get:c,put:s,getEntries:o,clear:i}}var w=(e,t)=>e===t;function j(e){return function(n,c){if(n===null||c===null||n.length!==c.length)return!1;let{length:s}=n;for(let o=0;o<s;o++)if(!e(n[o],c[o]))return!1;return!0}}function me(e,t){let n=typeof t=="object"?t:{equalityCheck:t},{equalityCheck:c=w,maxSize:s=1,resultEqualityCheck:o}=n,i=j(c),r=0,a=s<=1?le(i):pe(s,i);function u(){let l=a.get(arguments);if(l===S){if(l=e.apply(null,arguments),r++,o){let y=a.getEntries().find(p=>o(p.value,l));y&&(l=y.value,r!==0&&r--)}a.put(arguments,l)}return l}return u.clearCache=()=>{a.clear(),u.resetResultsCount()},u.resultsCount=()=>r,u.resetResultsCount=()=>{r=0},u}function de(e){let t=E([]),n=null,c=j(w),s=Y(()=>e.apply(null,t.proxy));function o(){return c(n,arguments)||(D(t,arguments),n=arguments),s.value}return o.clearCache=()=>s.clear(),o}var _=class{constructor(t){this.value=t}deref(){return this.value}},ye=typeof WeakRef<"u"?WeakRef:_,fe=0,B=1;function R(){return{s:fe,v:void 0,o:null,p:null}}function x(e,t={}){let n=R(),{resultEqualityCheck:c}=t,s,o=0;function i(){let r=n,{length:a}=arguments;for(let m=0,y=a;m<y;m++){let p=arguments[m];if(typeof p=="function"||typeof p=="object"&&p!==null){let d=r.o;d===null&&(r.o=d=new WeakMap);let f=d.get(p);f===void 0?(r=R(),d.set(p,r)):r=f}else{let d=r.p;d===null&&(r.p=d=new Map);let f=d.get(p);f===void 0?(r=R(),d.set(p,r)):r=f}}let u=r,l;if(r.s===B)l=r.v;else if(l=e.apply(null,arguments),o++,c){let m=s?.deref?.()??s;m!=null&&c(m,l)&&(l=m,o!==0&&o--),s=typeof l=="object"&&l!==null||typeof l=="function"?new ye(l):l}return u.s=B,u.v=l,l}return i.clearCache=()=>{n=R(),i.resetResultsCount()},i.resultsCount=()=>o,i.resetResultsCount=()=>{o=0},i}function J(e,...t){let n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,c=(...s)=>{let o=0,i=0,r,a={},u=s.pop();typeof u=="object"&&(a=u,u=s.pop()),T(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let l={...n,...a},{memoize:m,memoizeOptions:y=[],argsMemoize:p=x,argsMemoizeOptions:d=[],devModeChecks:f={}}=l,Z=O(y),ee=O(d),q=K(s),P=m(function(){return o++,u.apply(null,arguments)},...Z),Se=!0,te=p(function(){i++;let oe=W(q,arguments);return r=P.apply(null,oe),r},...ee);return Object.assign(te,{resultFunc:u,memoizedResultFunc:P,dependencies:q,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>r,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:p})};return Object.assign(c,{withTypes:()=>c}),c}var U=J(x);var Q=Object.assign((e,t=U)=>{V(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e),c=n.map(o=>e[o]);return t(c,(...o)=>o.reduce((i,r,a)=>(i[n[a]]=r,i),{}))},{withTypes:()=>Q});export{U as createSelector,J as createSelectorCreator,Q as createStructuredSelector,me as lruMemoize,w as referenceEqualityCheck,ie as setGlobalDevModeChecks,de as unstable_autotrackMemoize,x as weakMapMemoize};
-//# sourceMappingURL=reselect.browser.mjs.map
Index: de_modules/reselect/dist/reselect.browser.mjs.map
===================================================================
--- node_modules/reselect/dist/reselect.browser.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/devModeChecks/setGlobalDevModeChecks.ts","../src/utils.ts","../src/autotrackMemoize/autotracking.ts","../src/autotrackMemoize/tracking.ts","../src/autotrackMemoize/proxy.ts","../src/lruMemoize.ts","../src/autotrackMemoize/autotrackMemoize.ts","../src/weakMapMemoize.ts","../src/createSelectorCreator.ts","../src/createStructuredSelector.ts"],"sourcesContent":["import type { DevModeChecks } from '../types'\r\n\r\n/**\r\n * Global configuration for development mode checks. This specifies the default\r\n * frequency at which each development mode check should be performed.\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const globalDevModeChecks: DevModeChecks = {\r\n  inputStabilityCheck: 'once',\r\n  identityFunctionCheck: 'once'\r\n}\r\n\r\n/**\r\n * Overrides the development mode checks settings for all selectors.\r\n *\r\n * Reselect performs additional checks in development mode to help identify and\r\n * warn about potential issues in selector behavior. This function allows you to\r\n * customize the behavior of these checks across all selectors in your application.\r\n *\r\n * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.\r\n * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}\r\n * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.\r\n *\r\n * _The development mode checks do not run in production builds._\r\n *\r\n * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.\r\n *\r\n * @example\r\n * ```ts\r\n * import { setGlobalDevModeChecks } from 'reselect'\r\n * import { DevModeChecks } from '../types'\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })\r\n *\r\n * // Never run the input stability check.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })\r\n *\r\n * // Never run the identity function check.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })\r\n * ```\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport const setGlobalDevModeChecks = (\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  Object.assign(globalDevModeChecks, devModeChecks)\r\n}\r\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n  DevModeChecks,\r\n  Selector,\r\n  SelectorArray,\r\n  DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction<FunctionType extends Function>(\r\n  func: unknown,\r\n  errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n  if (typeof func !== 'function') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject<ObjectType extends Record<string, unknown>>(\r\n  object: unknown,\r\n  errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n  if (typeof object !== 'object') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions<FunctionType extends Function>(\r\n  array: unknown[],\r\n  errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n  if (\r\n    !array.every((item): item is FunctionType => typeof item === 'function')\r\n  ) {\r\n    const itemTypes = array\r\n      .map(item =>\r\n        typeof item === 'function'\r\n          ? `function ${item.name || 'unnamed'}()`\r\n          : typeof item\r\n      )\r\n      .join(', ')\r\n    throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n  }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n  return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n  const dependencies = Array.isArray(createSelectorArgs[0])\r\n    ? createSelectorArgs[0]\r\n    : createSelectorArgs\r\n\r\n  assertIsArrayOfFunctions<Selector>(\r\n    dependencies,\r\n    `createSelector expects all input-selectors to be functions, but received the following types: `\r\n  )\r\n\r\n  return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n  dependencies: SelectorArray,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n  const inputSelectorResults = []\r\n  const { length } = dependencies\r\n  for (let i = 0; i < length; i++) {\r\n    // @ts-ignore\r\n    // apply arguments instead of spreading and mutate a local list of params for performance.\r\n    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n  }\r\n  return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns  An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n  firstRun: boolean,\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  const { identityFunctionCheck, inputStabilityCheck } = {\r\n    ...globalDevModeChecks,\r\n    ...devModeChecks\r\n  }\r\n  return {\r\n    identityFunctionCheck: {\r\n      shouldRun:\r\n        identityFunctionCheck === 'always' ||\r\n        (identityFunctionCheck === 'once' && firstRun),\r\n      run: runIdentityFunctionCheck\r\n    },\r\n    inputStabilityCheck: {\r\n      shouldRun:\r\n        inputStabilityCheck === 'always' ||\r\n        (inputStabilityCheck === 'once' && firstRun),\r\n      run: runInputStabilityCheck\r\n    }\r\n  } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original autotracking implementation source:\r\n// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9\r\n// Additional references:\r\n// - https://www.pzuraq.com/blog/how-autotracking-works\r\n// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/\r\nimport type { EqualityFn } from '../types'\r\nimport { assertIsFunction } from '../utils'\r\n\r\n// The global revision clock. Every time state changes, the clock increments.\r\nexport let $REVISION = 0\r\n\r\n// The current dependency tracker. Whenever we compute a cache, we create a Set\r\n// to track any dependencies that are used while computing. If no cache is\r\n// computing, then the tracker is null.\r\nlet CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null\r\n\r\n// Storage represents a root value in the system - the actual state of our app.\r\nexport class Cell<T> {\r\n  revision = $REVISION\r\n\r\n  _value: T\r\n  _lastValue: T\r\n  _isEqual: EqualityFn = tripleEq\r\n\r\n  constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {\r\n    this._value = this._lastValue = initialValue\r\n    this._isEqual = isEqual\r\n  }\r\n\r\n  // Whenever a storage value is read, it'll add itself to the current tracker if\r\n  // one exists, entangling its state with that cache.\r\n  get value() {\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    return this._value\r\n  }\r\n\r\n  // Whenever a storage value is updated, we bump the global revision clock,\r\n  // assign the revision for this storage to the new value, _and_ we schedule a\r\n  // rerender. This is important, and it's what makes autotracking  _pull_\r\n  // based. We don't actively tell the caches which depend on the storage that\r\n  // anything has happened. Instead, we recompute the caches when needed.\r\n  set value(newValue) {\r\n    if (this.value === newValue) return\r\n\r\n    this._value = newValue\r\n    this.revision = ++$REVISION\r\n  }\r\n}\r\n\r\nfunction tripleEq(a: unknown, b: unknown) {\r\n  return a === b\r\n}\r\n\r\n// Caches represent derived state in the system. They are ultimately functions\r\n// that are memoized based on what state they use to produce their output,\r\n// meaning they will only rerun IFF a storage value that could affect the output\r\n// has changed. Otherwise, they'll return the cached value.\r\nexport class TrackingCache {\r\n  _cachedValue: any\r\n  _cachedRevision = -1\r\n  _deps: any[] = []\r\n  hits = 0\r\n\r\n  fn: () => any\r\n\r\n  constructor(fn: () => any) {\r\n    this.fn = fn\r\n  }\r\n\r\n  clear() {\r\n    this._cachedValue = undefined\r\n    this._cachedRevision = -1\r\n    this._deps = []\r\n    this.hits = 0\r\n  }\r\n\r\n  get value() {\r\n    // When getting the value for a Cache, first we check all the dependencies of\r\n    // the cache to see what their current revision is. If the current revision is\r\n    // greater than the cached revision, then something has changed.\r\n    if (this.revision > this._cachedRevision) {\r\n      const { fn } = this\r\n\r\n      // We create a new dependency tracker for this cache. As the cache runs\r\n      // its function, any Storage or Cache instances which are used while\r\n      // computing will be added to this tracker. In the end, it will be the\r\n      // full list of dependencies that this Cache depends on.\r\n      const currentTracker = new Set<Cell<any>>()\r\n      const prevTracker = CURRENT_TRACKER\r\n\r\n      CURRENT_TRACKER = currentTracker\r\n\r\n      // try {\r\n      this._cachedValue = fn()\r\n      // } finally {\r\n      CURRENT_TRACKER = prevTracker\r\n      this.hits++\r\n      this._deps = Array.from(currentTracker)\r\n\r\n      // Set the cached revision. This is the current clock count of all the\r\n      // dependencies. If any dependency changes, this number will be less\r\n      // than the new revision.\r\n      this._cachedRevision = this.revision\r\n      // }\r\n    }\r\n\r\n    // If there is a current tracker, it means another Cache is computing and\r\n    // using this one, so we add this one to the tracker.\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    // Always return the cached value.\r\n    return this._cachedValue\r\n  }\r\n\r\n  get revision() {\r\n    // The current revision is the max of all the dependencies' revisions.\r\n    return Math.max(...this._deps.map(d => d.revision), 0)\r\n  }\r\n}\r\n\r\nexport function getValue<T>(cell: Cell<T>): T {\r\n  if (!(cell instanceof Cell)) {\r\n    console.warn('Not a valid cell! ', cell)\r\n  }\r\n\r\n  return cell.value\r\n}\r\n\r\ntype CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never\r\n\r\nexport function setValue<T extends Cell<unknown>>(\r\n  storage: T,\r\n  value: CellValue<T>\r\n): void {\r\n  if (!(storage instanceof Cell)) {\r\n    throw new TypeError(\r\n      'setValue must be passed a tracked store created with `createStorage`.'\r\n    )\r\n  }\r\n\r\n  storage.value = storage._lastValue = value\r\n}\r\n\r\nexport function createCell<T = unknown>(\r\n  initialValue: T,\r\n  isEqual: EqualityFn = tripleEq\r\n): Cell<T> {\r\n  return new Cell(initialValue, isEqual)\r\n}\r\n\r\nexport function createCache<T = unknown>(fn: () => T): TrackingCache {\r\n  assertIsFunction(\r\n    fn,\r\n    'the first parameter to `createCache` must be a function'\r\n  )\r\n\r\n  return new TrackingCache(fn)\r\n}\r\n","import type { Cell } from './autotracking'\r\nimport {\r\n  getValue as consumeTag,\r\n  createCell as createStorage,\r\n  setValue\r\n} from './autotracking'\r\n\r\nexport type Tag = Cell<unknown>\r\n\r\nconst neverEq = (a: any, b: any): boolean => false\r\n\r\nexport function createTag(): Tag {\r\n  return createStorage(null, neverEq)\r\n}\r\nexport { consumeTag }\r\nexport function dirtyTag(tag: Tag, value: any): void {\r\n  setValue(tag, value)\r\n}\r\n\r\nexport interface Node<\r\n  T extends Array<unknown> | Record<string, unknown> =\r\n    | Array<unknown>\r\n    | Record<string, unknown>\r\n> {\r\n  collectionTag: Tag | null\r\n  tag: Tag | null\r\n  tags: Record<string, Tag>\r\n  children: Record<string, Node>\r\n  proxy: T\r\n  value: T\r\n  id: number\r\n}\r\n\r\nexport const consumeCollection = (node: Node): void => {\r\n  let tag = node.collectionTag\r\n\r\n  if (tag === null) {\r\n    tag = node.collectionTag = createTag()\r\n  }\r\n\r\n  consumeTag(tag)\r\n}\r\n\r\nexport const dirtyCollection = (node: Node): void => {\r\n  const tag = node.collectionTag\r\n\r\n  if (tag !== null) {\r\n    dirtyTag(tag, null)\r\n  }\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n  consumeCollection,\r\n  consumeTag,\r\n  createTag,\r\n  dirtyCollection,\r\n  dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {\r\n  proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {} as Record<string, Tag>\r\n  children = {} as Record<string, Node>\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n  get(node: Node, key: string | symbol): unknown {\r\n    function calculateResult() {\r\n      const { value } = node\r\n\r\n      const childValue = Reflect.get(value, key)\r\n\r\n      if (typeof key === 'symbol') {\r\n        return childValue\r\n      }\r\n\r\n      if (key in proto) {\r\n        return childValue\r\n      }\r\n\r\n      if (typeof childValue === 'object' && childValue !== null) {\r\n        let childNode = node.children[key]\r\n\r\n        if (childNode === undefined) {\r\n          childNode = node.children[key] = createNode(childValue)\r\n        }\r\n\r\n        if (childNode.tag) {\r\n          consumeTag(childNode.tag)\r\n        }\r\n\r\n        return childNode.proxy\r\n      } else {\r\n        let tag = node.tags[key]\r\n\r\n        if (tag === undefined) {\r\n          tag = node.tags[key] = createTag()\r\n          tag.value = childValue\r\n        }\r\n\r\n        consumeTag(tag)\r\n\r\n        return childValue\r\n      }\r\n    }\r\n    const res = calculateResult()\r\n    return res\r\n  },\r\n\r\n  ownKeys(node: Node): ArrayLike<string | symbol> {\r\n    consumeCollection(node)\r\n    return Reflect.ownKeys(node.value)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    node: Node,\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n  },\r\n\r\n  has(node: Node, prop: string | symbol): boolean {\r\n    return Reflect.has(node.value, prop)\r\n  }\r\n}\r\n\r\nclass ArrayTreeNode<T extends Array<unknown>> implements Node<T> {\r\n  proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {}\r\n  children = {}\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n  get([node]: [Node], key: string | symbol): unknown {\r\n    if (key === 'length') {\r\n      consumeCollection(node)\r\n    }\r\n\r\n    return objectProxyHandler.get(node, key)\r\n  },\r\n\r\n  ownKeys([node]: [Node]): ArrayLike<string | symbol> {\r\n    return objectProxyHandler.ownKeys(node)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    [node]: [Node],\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n  },\r\n\r\n  has([node]: [Node], prop: string | symbol): boolean {\r\n    return objectProxyHandler.has(node, prop)\r\n  }\r\n}\r\n\r\nexport function createNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  value: T\r\n): Node<T> {\r\n  if (Array.isArray(value)) {\r\n    return new ArrayTreeNode(value)\r\n  }\r\n\r\n  return new ObjectTreeNode(value) as Node<T>\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n  Array<unknown> | Record<string, unknown>,\r\n  Set<string>\r\n>()\r\n\r\nexport function updateNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  node: Node<T>,\r\n  newValue: T\r\n): void {\r\n  const { value, tags, children } = node\r\n\r\n  node.value = newValue\r\n\r\n  if (\r\n    Array.isArray(value) &&\r\n    Array.isArray(newValue) &&\r\n    value.length !== newValue.length\r\n  ) {\r\n    dirtyCollection(node)\r\n  } else {\r\n    if (value !== newValue) {\r\n      let oldKeysSize = 0\r\n      let newKeysSize = 0\r\n      let anyKeysAdded = false\r\n\r\n      for (const _key in value) {\r\n        oldKeysSize++\r\n      }\r\n\r\n      for (const key in newValue) {\r\n        newKeysSize++\r\n        if (!(key in value)) {\r\n          anyKeysAdded = true\r\n          break\r\n        }\r\n      }\r\n\r\n      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n      if (isDifferent) {\r\n        dirtyCollection(node)\r\n      }\r\n    }\r\n  }\r\n\r\n  for (const key in tags) {\r\n    const childValue = (value as Record<string, unknown>)[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    if (childValue !== newChildValue) {\r\n      dirtyCollection(node)\r\n      dirtyTag(tags[key], newChildValue)\r\n    }\r\n\r\n    if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      delete tags[key]\r\n    }\r\n  }\r\n\r\n  for (const key in children) {\r\n    const childNode = children[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    const childValue = childNode.value\r\n\r\n    if (childValue === newChildValue) {\r\n      continue\r\n    } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      updateNode(childNode, newChildValue as Record<string, unknown>)\r\n    } else {\r\n      deleteNode(childNode)\r\n      delete children[key]\r\n    }\r\n  }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n  if (node.tag) {\r\n    dirtyTag(node.tag, null)\r\n  }\r\n  dirtyCollection(node)\r\n  for (const key in node.tags) {\r\n    dirtyTag(node.tags[key], null)\r\n  }\r\n  for (const key in node.children) {\r\n    deleteNode(node.children[key])\r\n  }\r\n}\r\n","import type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nimport type { NOT_FOUND_TYPE } from './utils'\r\nimport { NOT_FOUND } from './utils'\r\n\r\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\r\n// https://github.com/erikras/lru-memoize\r\n\r\ninterface Entry {\r\n  key: unknown\r\n  value: unknown\r\n}\r\n\r\ninterface Cache {\r\n  get(key: unknown): unknown | NOT_FOUND_TYPE\r\n  put(key: unknown, value: unknown): void\r\n  getEntries(): Entry[]\r\n  clear(): void\r\n}\r\n\r\nfunction createSingletonCache(equals: EqualityFn): Cache {\r\n  let entry: Entry | undefined\r\n  return {\r\n    get(key: unknown) {\r\n      if (entry && equals(entry.key, key)) {\r\n        return entry.value\r\n      }\r\n\r\n      return NOT_FOUND\r\n    },\r\n\r\n    put(key: unknown, value: unknown) {\r\n      entry = { key, value }\r\n    },\r\n\r\n    getEntries() {\r\n      return entry ? [entry] : []\r\n    },\r\n\r\n    clear() {\r\n      entry = undefined\r\n    }\r\n  }\r\n}\r\n\r\nfunction createLruCache(maxSize: number, equals: EqualityFn): Cache {\r\n  let entries: Entry[] = []\r\n\r\n  function get(key: unknown) {\r\n    const cacheIndex = entries.findIndex(entry => equals(key, entry.key))\r\n\r\n    // We found a cached entry\r\n    if (cacheIndex > -1) {\r\n      const entry = entries[cacheIndex]\r\n\r\n      // Cached entry not at top of cache, move it to the top\r\n      if (cacheIndex > 0) {\r\n        entries.splice(cacheIndex, 1)\r\n        entries.unshift(entry)\r\n      }\r\n\r\n      return entry.value\r\n    }\r\n\r\n    // No entry found in cache, return sentinel\r\n    return NOT_FOUND\r\n  }\r\n\r\n  function put(key: unknown, value: unknown) {\r\n    if (get(key) === NOT_FOUND) {\r\n      // TODO Is unshift slow?\r\n      entries.unshift({ key, value })\r\n      if (entries.length > maxSize) {\r\n        entries.pop()\r\n      }\r\n    }\r\n  }\r\n\r\n  function getEntries() {\r\n    return entries\r\n  }\r\n\r\n  function clear() {\r\n    entries = []\r\n  }\r\n\r\n  return { get, put, getEntries, clear }\r\n}\r\n\r\n/**\r\n * Runs a simple reference equality check.\r\n * What {@linkcode lruMemoize lruMemoize} uses by default.\r\n *\r\n * **Note**: This function was previously known as `defaultEqualityCheck`.\r\n *\r\n * @public\r\n */\r\nexport const referenceEqualityCheck: EqualityFn = (a, b) => a === b\r\n\r\nexport function createCacheKeyComparator(equalityCheck: EqualityFn) {\r\n  return function areArgumentsShallowlyEqual(\r\n    prev: unknown[] | IArguments | null,\r\n    next: unknown[] | IArguments | null\r\n  ): boolean {\r\n    if (prev === null || next === null || prev.length !== next.length) {\r\n      return false\r\n    }\r\n\r\n    // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\r\n    const { length } = prev\r\n    for (let i = 0; i < length; i++) {\r\n      if (!equalityCheck(prev[i], next[i])) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n}\r\n\r\n/**\r\n * Options for configuring the behavior of a function memoized with\r\n * LRU (Least Recently Used) caching.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @public\r\n */\r\nexport interface LruMemoizeOptions<Result = any> {\r\n  /**\r\n   * Function used to compare the individual arguments of the\r\n   * provided calculation function.\r\n   *\r\n   * @default referenceEqualityCheck\r\n   */\r\n  equalityCheck?: EqualityFn\r\n\r\n  /**\r\n   * If provided, used to compare a newly generated output value against\r\n   * previous values in the cache. If a match is found,\r\n   * the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes\r\n   * a recalculation due to changed references, but the output is still\r\n   * effectively the same.\r\n   *\r\n   * @since 4.1.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n\r\n  /**\r\n   * The maximum size of the cache used by the selector.\r\n   * A size greater than 1 means the selector will use an\r\n   * LRU (Least Recently Used) cache, allowing for the caching of multiple\r\n   * results based on different sets of arguments.\r\n   *\r\n   * @default 1\r\n   */\r\n  maxSize?: number\r\n}\r\n\r\n/**\r\n * Creates a memoized version of a function with an optional\r\n * LRU (Least Recently Used) cache. The memoized function uses a cache to\r\n * store computed values. Depending on the `maxSize` option, it will use\r\n * either a singleton cache (for a single entry) or an\r\n * LRU cache (for multiple entries).\r\n *\r\n * **Note**: This function was previously known as `defaultMemoize`.\r\n *\r\n * @param func - The function to be memoized.\r\n * @param equalityCheckOrOptions - Either an equality check function or an options object.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}\r\n *\r\n * @public\r\n */\r\nexport function lruMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>\r\n) {\r\n  const providedOptions =\r\n    typeof equalityCheckOrOptions === 'object'\r\n      ? equalityCheckOrOptions\r\n      : { equalityCheck: equalityCheckOrOptions }\r\n\r\n  const {\r\n    equalityCheck = referenceEqualityCheck,\r\n    maxSize = 1,\r\n    resultEqualityCheck\r\n  } = providedOptions\r\n\r\n  const comparator = createCacheKeyComparator(equalityCheck)\r\n\r\n  let resultsCount = 0\r\n\r\n  const cache =\r\n    maxSize <= 1\r\n      ? createSingletonCache(comparator)\r\n      : createLruCache(maxSize, comparator)\r\n\r\n  function memoized() {\r\n    let value = cache.get(arguments) as ReturnType<Func>\r\n    if (value === NOT_FOUND) {\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      value = func.apply(null, arguments) as ReturnType<Func>\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const entries = cache.getEntries()\r\n        const matchingEntry = entries.find(entry =>\r\n          resultEqualityCheck(entry.value as ReturnType<Func>, value)\r\n        )\r\n\r\n        if (matchingEntry) {\r\n          value = matchingEntry.value as ReturnType<Func>\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n      }\r\n\r\n      cache.put(arguments, value)\r\n    }\r\n    return value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    cache.clear()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { createNode, updateNode } from './proxy'\r\nimport type { Node } from './tracking'\r\n\r\nimport { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'\r\nimport type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'\r\nimport { createCache } from './autotracking'\r\n\r\n/**\r\n * Uses an \"auto-tracking\" approach inspired by the work of the Ember Glimmer team.\r\n * It uses a Proxy to wrap arguments and track accesses to nested fields\r\n * in your selector on first read. Later, when the selector is called with\r\n * new arguments, it identifies which accessed fields have changed and\r\n * only recalculates the result if one or more of those accessed fields have changed.\r\n * This allows it to be more precise than the shallow equality checks in `lruMemoize`.\r\n *\r\n * __Design Tradeoffs for `autotrackMemoize`:__\r\n * - Pros:\r\n *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,\r\n *    which may also result in fewer component re-renders.\r\n * - Cons:\r\n *    - It only has a cache size of 1.\r\n *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)\r\n *    - It can have some unexpected behavior. Because it tracks nested field accesses,\r\n *    cases where you don't access a field will not recalculate properly.\r\n *    For example, a badly-written selector like:\r\n *      ```ts\r\n *      createSelector([state => state.todos], todos => todos)\r\n *      ```\r\n *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.\r\n *\r\n * __Use Cases for `autotrackMemoize`:__\r\n * - It is likely best used for cases where you need to access specific nested fields\r\n * in data, and avoid recalculating if other fields in the same data objects are immutably updated.\r\n *\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'\r\n *\r\n * const selectTodoIds = createSelector(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id),\r\n *   { memoize: autotrackMemoize }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'\r\n *\r\n * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })\r\n *\r\n * const selectTodoIds = createSelectorAutotrack(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function autotrackMemoize<Func extends AnyFunction>(func: Func) {\r\n  // we reference arguments instead of spreading them for performance reasons\r\n\r\n  const node: Node<Record<string, unknown>> = createNode(\r\n    [] as unknown as Record<string, unknown>\r\n  )\r\n\r\n  let lastArgs: IArguments | null = null\r\n\r\n  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)\r\n\r\n  const cache = createCache(() => {\r\n    const res = func.apply(null, node.proxy as unknown as any[])\r\n    return res\r\n  })\r\n\r\n  function memoized() {\r\n    if (!shallowEqual(lastArgs, arguments)) {\r\n      updateNode(node, arguments as unknown as Record<string, unknown>)\r\n      lastArgs = arguments\r\n    }\r\n    return cache.value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    return cache.clear()\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nclass StrongRef<T> {\r\n  constructor(private value: T) {}\r\n  deref() {\r\n    return this.value\r\n  }\r\n}\r\n\r\nconst Ref =\r\n  typeof WeakRef !== 'undefined'\r\n    ? WeakRef\r\n    : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 0\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: void\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular Map where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ninterface TerminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 1\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: T\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ntype CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>\r\n\r\nfunction createCacheNode<T>(): CacheNode<T> {\r\n  return {\r\n    s: UNTERMINATED,\r\n    v: undefined,\r\n    o: null,\r\n    p: null\r\n  }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions<Result = any> {\r\n  /**\r\n   * If provided, used to compare a newly generated output value against previous values in the cache.\r\n   * If a match is found, the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes a recalculation\r\n   * due to changed references, but the output is still effectively the same.\r\n   *\r\n   * @since 5.0.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n *   - It has an effectively infinite cache size, but you have no control over\r\n *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n *   - There's currently no way to alter the argument comparisons.\r\n *   They're based on strict reference equality.\r\n *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n *   ```ts\r\n *   useSelector(state => selectSomeData(state, props.category))\r\n *   ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category),\r\n *   {\r\n *     memoize: weakMapMemoize,\r\n *     argsMemoize: weakMapMemoize\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  options: WeakMapMemoizeOptions<ReturnType<Func>> = {}\r\n) {\r\n  let fnNode = createCacheNode()\r\n  const { resultEqualityCheck } = options\r\n\r\n  let lastResult: WeakRef<object> | undefined\r\n\r\n  let resultsCount = 0\r\n\r\n  function memoized() {\r\n    let cacheNode = fnNode\r\n    const { length } = arguments\r\n    for (let i = 0, l = length; i < l; i++) {\r\n      const arg = arguments[i]\r\n      if (\r\n        typeof arg === 'function' ||\r\n        (typeof arg === 'object' && arg !== null)\r\n      ) {\r\n        // Objects go into a WeakMap\r\n        let objectCache = cacheNode.o\r\n        if (objectCache === null) {\r\n          cacheNode.o = objectCache = new WeakMap()\r\n        }\r\n        const objectNode = objectCache.get(arg)\r\n        if (objectNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          objectCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = objectNode\r\n        }\r\n      } else {\r\n        // Primitives go into a regular Map\r\n        let primitiveCache = cacheNode.p\r\n        if (primitiveCache === null) {\r\n          cacheNode.p = primitiveCache = new Map()\r\n        }\r\n        const primitiveNode = primitiveCache.get(arg)\r\n        if (primitiveNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          primitiveCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = primitiveNode\r\n        }\r\n      }\r\n    }\r\n\r\n    const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>\r\n\r\n    let result\r\n\r\n    if (cacheNode.s === TERMINATED) {\r\n      result = cacheNode.v\r\n    } else {\r\n      // Allow errors to propagate\r\n      result = func.apply(null, arguments as unknown as any[])\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n        if (\r\n          lastResultValue != null &&\r\n          resultEqualityCheck(lastResultValue as ReturnType<Func>, result)\r\n        ) {\r\n          result = lastResultValue\r\n\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n\r\n        const needsWeakRef =\r\n          (typeof result === 'object' && result !== null) ||\r\n          typeof result === 'function'\r\n\r\n        lastResult = needsWeakRef ? new Ref(result) : result\r\n      }\r\n    }\r\n\r\n    terminatedNode.s = TERMINATED\r\n\r\n    terminatedNode.v = result\r\n    return result\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    fnNode = createCacheNode()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n  Combiner,\r\n  CreateSelectorOptions,\r\n  DropFirstParameter,\r\n  ExtractMemoizerFields,\r\n  GetParamsFromSelectors,\r\n  GetStateFromSelectors,\r\n  InterruptRecursion,\r\n  OutputSelector,\r\n  Selector,\r\n  SelectorArray,\r\n  SetRequired,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n  assertIsFunction,\r\n  collectInputSelectorResults,\r\n  ensureIsArray,\r\n  getDependencies,\r\n  getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  StateType = any\r\n> {\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <InputSelectors extends SelectorArray<StateType>, Result>(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions: Simplify<\r\n        CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n      >\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param inputSelectors - An array of input selectors.\r\n   * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n   * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    inputSelectors: [...InputSelectors],\r\n    combiner: Combiner<InputSelectors, Result>,\r\n    createSelectorOptions?: Simplify<\r\n      CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    >\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every {@linkcode createSelector createSelector} call.\r\n   *\r\n   * @returns A pre-typed `createSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createAppSelector = createSelector.withTypes<RootState>()\r\n   *\r\n   * const selectTodoIds = createAppSelector(\r\n   *   [\r\n   *     // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *     state => state.todos\r\n   *   ],\r\n   *   todos => todos.map(({ id }) => id)\r\n   * )\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction,\r\n    OverrideStateType\r\n  >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n *   memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n *   ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n  options: Simplify<\r\n    SetRequired<\r\n      CreateSelectorOptions<\r\n        typeof weakMapMemoize,\r\n        typeof weakMapMemoize,\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >,\r\n      'memoize'\r\n    >\r\n  >\r\n): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n *   option1, // Will be passed as second argument to `customMemoize`\r\n *   option2, // Will be passed as third argument to `customMemoize`\r\n *   option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(\r\n  memoize: MemoizeFunction,\r\n  ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>\r\n): CreateSelectorFunction<MemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer,\r\n  MemoizeOrOptions extends\r\n    | MemoizeFunction\r\n    | SetRequired<\r\n        CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n        'memoize'\r\n      >\r\n>(\r\n  memoizeOrOptions: MemoizeOrOptions,\r\n  ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  >\r\n    ? never\r\n    : DropFirstParameter<MemoizeFunction>\r\n) {\r\n  /** options initially passed into `createSelectorCreator`. */\r\n  const createSelectorCreatorOptions: SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  > = typeof memoizeOrOptions === 'function'\r\n    ? {\r\n        memoize: memoizeOrOptions as MemoizeFunction,\r\n        memoizeOptions: memoizeOptionsFromArgs\r\n      }\r\n    : memoizeOrOptions\r\n\r\n  const createSelector = <\r\n    InputSelectors extends SelectorArray,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: [...InputSelectors],\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions?: CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    ]\r\n  ) => {\r\n    let recomputations = 0\r\n    let dependencyRecomputations = 0\r\n    let lastResult: Result\r\n\r\n    // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n    // So, start by declaring the default value here.\r\n    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n    let directlyPassedOptions: CreateSelectorOptions<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    > = {}\r\n\r\n    // Normally, the result func or \"combiner\" is the last arg\r\n    let resultFunc = createSelectorArgs.pop() as\r\n      | Combiner<InputSelectors, Result>\r\n      | CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n\r\n    // If the result func is actually an _object_, assume it's our options object\r\n    if (typeof resultFunc === 'object') {\r\n      directlyPassedOptions = resultFunc\r\n      // and pop the real result func off\r\n      resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>\r\n    }\r\n\r\n    assertIsFunction(\r\n      resultFunc,\r\n      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n    )\r\n\r\n    // Determine which set of options we're using. Prefer options passed directly,\r\n    // but fall back to options given to `createSelectorCreator`.\r\n    const combinedOptions = {\r\n      ...createSelectorCreatorOptions,\r\n      ...directlyPassedOptions\r\n    }\r\n\r\n    const {\r\n      memoize,\r\n      memoizeOptions = [],\r\n      argsMemoize = weakMapMemoize,\r\n      argsMemoizeOptions = [],\r\n      devModeChecks = {}\r\n    } = combinedOptions\r\n\r\n    // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n    // is an array. In most libs I've looked at, it's an equality function or options object.\r\n    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n    // we wrap it in an array so we can apply it.\r\n    const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n    const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n    const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n      recomputations++\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      return (resultFunc as Combiner<InputSelectors, Result>).apply(\r\n        null,\r\n        arguments as unknown as Parameters<Combiner<InputSelectors, Result>>\r\n      )\r\n    }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &\r\n      ExtractMemoizerFields<OverrideMemoizeFunction>\r\n\r\n    let firstRun = true\r\n\r\n    // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n    const selector = argsMemoize(function dependenciesChecker() {\r\n      dependencyRecomputations++\r\n      /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n      const inputSelectorResults = collectInputSelectorResults(\r\n        dependencies,\r\n        arguments\r\n      )\r\n\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        const { identityFunctionCheck, inputStabilityCheck } =\r\n          getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n        if (identityFunctionCheck.shouldRun) {\r\n          identityFunctionCheck.run(\r\n            resultFunc as Combiner<InputSelectors, Result>,\r\n            inputSelectorResults,\r\n            lastResult\r\n          )\r\n        }\r\n\r\n        if (inputStabilityCheck.shouldRun) {\r\n          // make a second copy of the params, to check if we got the same results\r\n          const inputSelectorResultsCopy = collectInputSelectorResults(\r\n            dependencies,\r\n            arguments\r\n          )\r\n\r\n          inputStabilityCheck.run(\r\n            { inputSelectorResults, inputSelectorResultsCopy },\r\n            { memoize, memoizeOptions: finalMemoizeOptions },\r\n            arguments\r\n          )\r\n        }\r\n\r\n        if (firstRun) firstRun = false\r\n      }\r\n\r\n      return lastResult\r\n    }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n      GetStateFromSelectors<InputSelectors>,\r\n      Result,\r\n      GetParamsFromSelectors<InputSelectors>\r\n    > &\r\n      ExtractMemoizerFields<OverrideArgsMemoizeFunction>\r\n\r\n    return Object.assign(selector, {\r\n      resultFunc,\r\n      memoizedResultFunc,\r\n      dependencies,\r\n      dependencyRecomputations: () => dependencyRecomputations,\r\n      resetDependencyRecomputations: () => {\r\n        dependencyRecomputations = 0\r\n      },\r\n      lastResult: () => lastResult,\r\n      recomputations: () => recomputations,\r\n      resetRecomputations: () => {\r\n        recomputations = 0\r\n      },\r\n      memoize,\r\n      argsMemoize\r\n    }) as OutputSelector<\r\n      InputSelectors,\r\n      Result,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    >\r\n  }\r\n\r\n  Object.assign(createSelector, {\r\n    withTypes: () => createSelector\r\n  })\r\n\r\n  return createSelector as CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n  /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n  InterruptRecursion,\r\n  ObjectValuesToTuple,\r\n  OutputSelector,\r\n  Selector,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap<TObject extends SelectorsObject> = {\r\n  [Key in keyof TObject]: ReturnType<TObject[Key]>\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors<RootState = any> = {\r\n  [Key in keyof RootState]: Selector<RootState, RootState[Key], []>\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator<RootState = any> =\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ) => OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject<StateType = any> = Record<\r\n  string,\r\n  Selector<StateType>\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator<StateType = any> {\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends SelectorsObject<StateType>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ): OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of\r\n   * {@linkcode createStructuredSelector createStructuredSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every\r\n   * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n   *\r\n   * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createStructuredSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createStructuredAppSelector =\r\n   *   createStructuredSelector.withTypes<RootState>()\r\n   *\r\n   * const structuredAppSelector = createStructuredAppSelector({\r\n   *   // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *   todos: state => state.todos,\r\n   *   alerts: state => state.alerts,\r\n   *   todoById: (state, id: number) => state.todos[id]\r\n   * })\r\n   *\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <\r\n    OverrideStateType extends StateType\r\n  >() => StructuredSelectorCreator<OverrideStateType>\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   todos: {\r\n *     id: number\r\n *     completed: boolean\r\n *     title: string\r\n *     description: string\r\n *   }[]\r\n *   alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n *   {\r\n *     todos: (state: RootState) => state.todos,\r\n *     alerts: (state: RootState) => state.alerts,\r\n *     todoById: (state: RootState, id: number) => state.todos[id]\r\n *   },\r\n *   createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n *   [\r\n *     (state: RootState) => state.todos,\r\n *     (state: RootState) => state.alerts,\r\n *     (state: RootState, id: number) => state.todos[id]\r\n *   ],\r\n *   (todos, alerts, todoById) => {\r\n *     return {\r\n *       todos,\r\n *       alerts,\r\n *       todoById\r\n *     }\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n  Object.assign(\r\n    <\r\n      InputSelectorsObject extends SelectorsObject,\r\n      MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n      ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n    >(\r\n      inputSelectorsObject: InputSelectorsObject,\r\n      selectorCreator: CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      > = createSelector as CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >\r\n    ) => {\r\n      assertIsObject(\r\n        inputSelectorsObject,\r\n        'createStructuredSelector expects first argument to be an object ' +\r\n          `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n      )\r\n      const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n      const dependencies = inputSelectorKeys.map(\r\n        key => inputSelectorsObject[key]\r\n      )\r\n      const structuredSelector = selectorCreator(\r\n        dependencies,\r\n        (...inputSelectorResults: any[]) => {\r\n          return inputSelectorResults.reduce((composition, value, index) => {\r\n            composition[inputSelectorKeys[index]] = value\r\n            return composition\r\n          }, {})\r\n        }\r\n      )\r\n      return structuredSelector\r\n    },\r\n    { withTypes: () => createStructuredSelector }\r\n  ) as StructuredSelectorCreator\r\n"],"mappings":"AASO,IAAMA,GAAqC,CAChD,oBAAqB,OACrB,sBAAuB,MACzB,EA8CaC,GACXC,GACG,CACH,OAAO,OAAOF,GAAqBE,CAAa,CAClD,ECnDO,IAAMC,EAA4B,OAAO,WAAW,EAWpD,SAASC,EACdC,EACAC,EAAe,yCAAyC,OAAOD,IACjC,CAC9B,GAAI,OAAOA,GAAS,WAClB,MAAM,IAAI,UAAUC,CAAY,CAEpC,CAUO,SAASC,EACdC,EACAF,EAAe,wCAAwC,OAAOE,IAChC,CAC9B,GAAI,OAAOA,GAAW,SACpB,MAAM,IAAI,UAAUF,CAAY,CAEpC,CAUO,SAASG,GACdC,EACAJ,EAAe,6EACkB,CACjC,GACE,CAACI,EAAM,MAAOC,GAA+B,OAAOA,GAAS,UAAU,EACvE,CACA,IAAMC,EAAYF,EACf,IAAIC,GACH,OAAOA,GAAS,WACZ,YAAYA,EAAK,MAAQ,cACzB,OAAOA,CACb,EACC,KAAK,IAAI,EACZ,MAAM,IAAI,UAAU,GAAGL,KAAgBM,IAAY,EAEvD,CASO,IAAMC,EAAiBF,GACrB,MAAM,QAAQA,CAAI,EAAIA,EAAO,CAACA,CAAI,EAUpC,SAASG,EAAgBC,EAA+B,CAC7D,IAAMC,EAAe,MAAM,QAAQD,EAAmB,CAAC,CAAC,EACpDA,EAAmB,CAAC,EACpBA,EAEJ,OAAAN,GACEO,EACA,gGACF,EAEOA,CACT,CASO,SAASC,EACdD,EACAE,EACA,CACA,IAAMC,EAAuB,CAAC,EACxB,CAAE,OAAAC,CAAO,EAAIJ,EACnB,QAASK,EAAI,EAAGA,EAAID,EAAQC,IAG1BF,EAAqB,KAAKH,EAAaK,CAAC,EAAE,MAAM,KAAMH,CAAiB,CAAC,EAE1E,OAAOC,CACT,CCnHO,IAAIG,EAAY,EAKnBC,EAAyD,KAGhDC,EAAN,KAAc,CACnB,SAAWF,EAEX,OACA,WACA,SAAuBG,EAEvB,YAAYC,EAAiBC,EAAsBF,EAAU,CAC3D,KAAK,OAAS,KAAK,WAAaC,EAChC,KAAK,SAAWC,CAClB,CAIA,IAAI,OAAQ,CACV,OAAAJ,GAAiB,IAAI,IAAI,EAElB,KAAK,MACd,CAOA,IAAI,MAAMK,EAAU,CACd,KAAK,QAAUA,IAEnB,KAAK,OAASA,EACd,KAAK,SAAW,EAAEN,EACpB,CACF,EAEA,SAASG,EAASI,EAAYC,EAAY,CACxC,OAAOD,IAAMC,CACf,CAMO,IAAMC,EAAN,KAAoB,CACzB,aACA,gBAAkB,GAClB,MAAe,CAAC,EAChB,KAAO,EAEP,GAEA,YAAYC,EAAe,CACzB,KAAK,GAAKA,CACZ,CAEA,OAAQ,CACN,KAAK,aAAe,OACpB,KAAK,gBAAkB,GACvB,KAAK,MAAQ,CAAC,EACd,KAAK,KAAO,CACd,CAEA,IAAI,OAAQ,CAIV,GAAI,KAAK,SAAW,KAAK,gBAAiB,CACxC,GAAM,CAAE,GAAAA,CAAG,EAAI,KAMTC,EAAiB,IAAI,IACrBC,EAAcX,EAEpBA,EAAkBU,EAGlB,KAAK,aAAeD,EAAG,EAEvBT,EAAkBW,EAClB,KAAK,OACL,KAAK,MAAQ,MAAM,KAAKD,CAAc,EAKtC,KAAK,gBAAkB,KAAK,SAM9B,OAAAV,GAAiB,IAAI,IAAI,EAGlB,KAAK,YACd,CAEA,IAAI,UAAW,CAEb,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,IAAIY,GAAKA,EAAE,QAAQ,EAAG,CAAC,CACvD,CACF,EAEO,SAASC,EAAYC,EAAkB,CAC5C,OAAMA,aAAgBb,GACpB,QAAQ,KAAK,qBAAsBa,CAAI,EAGlCA,EAAK,KACd,CAIO,SAASC,EACdC,EACAC,EACM,CACN,GAAI,EAAED,aAAmBf,GACvB,MAAM,IAAI,UACR,uEACF,EAGFe,EAAQ,MAAQA,EAAQ,WAAaC,CACvC,CAEO,SAASC,EACdf,EACAC,EAAsBF,EACb,CACT,OAAO,IAAID,EAAKE,EAAcC,CAAO,CACvC,CAEO,SAASe,EAAyBV,EAA4B,CACnE,OAAAW,EACEX,EACA,yDACF,EAEO,IAAID,EAAcC,CAAE,CAC7B,CCrJA,IAAMY,GAAU,CAACC,EAAQC,IAAoB,GAEtC,SAASC,GAAiB,CAC/B,OAAOC,EAAc,KAAMJ,EAAO,CACpC,CAEO,SAASK,EAASC,EAAUC,EAAkB,CACnDC,EAASF,EAAKC,CAAK,CACrB,CAgBO,IAAME,EAAqBC,GAAqB,CACrD,IAAIJ,EAAMI,EAAK,cAEXJ,IAAQ,OACVA,EAAMI,EAAK,cAAgBC,EAAU,GAGvCC,EAAWN,CAAG,CAChB,EAEaO,EAAmBH,GAAqB,CACnD,IAAMJ,EAAMI,EAAK,cAEbJ,IAAQ,MACVD,EAASC,EAAK,IAAI,CAEtB,ECrCO,IAAMQ,GAAoB,OAAO,EAEpCC,EAAS,EAEPC,GAAQ,OAAO,eAAe,CAAC,CAAC,EAEhCC,EAAN,KAA2E,CAQzE,YAAmBC,EAAU,CAAV,WAAAA,EACjB,KAAK,MAAQA,EACb,KAAK,IAAI,MAAQA,CACnB,CAVA,MAAW,IAAI,MAAM,KAAMC,CAAkB,EAC7C,IAAMC,EAAU,EAChB,KAAO,CAAC,EACR,SAAW,CAAC,EACZ,cAAgB,KAChB,GAAKL,GAMP,EAEMI,EAAqB,CACzB,IAAIE,EAAYC,EAA+B,CAC7C,SAASC,GAAkB,CACzB,GAAM,CAAE,MAAAL,CAAM,EAAIG,EAEZG,EAAa,QAAQ,IAAIN,EAAOI,CAAG,EAMzC,GAJI,OAAOA,GAAQ,UAIfA,KAAON,GACT,OAAOQ,EAGT,GAAI,OAAOA,GAAe,UAAYA,IAAe,KAAM,CACzD,IAAIC,EAAYJ,EAAK,SAASC,CAAG,EAEjC,OAAIG,IAAc,SAChBA,EAAYJ,EAAK,SAASC,CAAG,EAAII,EAAWF,CAAU,GAGpDC,EAAU,KACZE,EAAWF,EAAU,GAAG,EAGnBA,EAAU,UACZ,CACL,IAAIG,EAAMP,EAAK,KAAKC,CAAG,EAEvB,OAAIM,IAAQ,SACVA,EAAMP,EAAK,KAAKC,CAAG,EAAIF,EAAU,EACjCQ,EAAI,MAAQJ,GAGdG,EAAWC,CAAG,EAEPJ,EAEX,CAEA,OADYD,EAAgB,CAE9B,EAEA,QAAQF,EAAwC,CAC9C,OAAAQ,EAAkBR,CAAI,EACf,QAAQ,QAAQA,EAAK,KAAK,CACnC,EAEA,yBACEA,EACAS,EACgC,CAChC,OAAO,QAAQ,yBAAyBT,EAAK,MAAOS,CAAI,CAC1D,EAEA,IAAIT,EAAYS,EAAgC,CAC9C,OAAO,QAAQ,IAAIT,EAAK,MAAOS,CAAI,CACrC,CACF,EAEMC,EAAN,KAAiE,CAQ/D,YAAmBb,EAAU,CAAV,WAAAA,EACjB,KAAK,MAAQA,EACb,KAAK,IAAI,MAAQA,CACnB,CAVA,MAAW,IAAI,MAAM,CAAC,IAAI,EAAGc,EAAiB,EAC9C,IAAMZ,EAAU,EAChB,KAAO,CAAC,EACR,SAAW,CAAC,EACZ,cAAgB,KAChB,GAAKL,GAMP,EAEMiB,GAAoB,CACxB,IAAI,CAACX,CAAI,EAAWC,EAA+B,CACjD,OAAIA,IAAQ,UACVO,EAAkBR,CAAI,EAGjBF,EAAmB,IAAIE,EAAMC,CAAG,CACzC,EAEA,QAAQ,CAACD,CAAI,EAAuC,CAClD,OAAOF,EAAmB,QAAQE,CAAI,CACxC,EAEA,yBACE,CAACA,CAAI,EACLS,EACgC,CAChC,OAAOX,EAAmB,yBAAyBE,EAAMS,CAAI,CAC/D,EAEA,IAAI,CAACT,CAAI,EAAWS,EAAgC,CAClD,OAAOX,EAAmB,IAAIE,EAAMS,CAAI,CAC1C,CACF,EAEO,SAASJ,EACdR,EACS,CACT,OAAI,MAAM,QAAQA,CAAK,EACd,IAAIa,EAAcb,CAAK,EAGzB,IAAID,EAAeC,CAAK,CACjC,CAOO,SAASe,EACdC,EACAC,EACM,CACN,GAAM,CAAE,MAAAC,EAAO,KAAAC,EAAM,SAAAC,CAAS,EAAIJ,EAIlC,GAFAA,EAAK,MAAQC,EAGX,MAAM,QAAQC,CAAK,GACnB,MAAM,QAAQD,CAAQ,GACtBC,EAAM,SAAWD,EAAS,OAE1BI,EAAgBL,CAAI,UAEhBE,IAAUD,EAAU,CACtB,IAAIK,EAAc,EACdC,EAAc,EACdC,EAAe,GAEnB,QAAWC,KAAQP,EACjBI,IAGF,QAAWI,KAAOT,EAEhB,GADAM,IACI,EAAEG,KAAOR,GAAQ,CACnBM,EAAe,GACf,OAIgBA,GAAgBF,IAAgBC,IAGlDF,EAAgBL,CAAI,EAK1B,QAAWU,KAAOP,EAAM,CACtB,IAAMQ,EAAcT,EAAkCQ,CAAG,EACnDE,EAAiBX,EAAqCS,CAAG,EAE3DC,IAAeC,IACjBP,EAAgBL,CAAI,EACpBa,EAASV,EAAKO,CAAG,EAAGE,CAAa,GAG/B,OAAOA,GAAkB,UAAYA,IAAkB,MACzD,OAAOT,EAAKO,CAAG,EAInB,QAAWA,KAAON,EAAU,CAC1B,IAAMU,EAAYV,EAASM,CAAG,EACxBE,EAAiBX,EAAqCS,CAAG,EAE5CI,EAAU,QAEVF,IAER,OAAOA,GAAkB,UAAYA,IAAkB,KAChEb,EAAWe,EAAWF,CAAwC,GAE9DG,EAAWD,CAAS,EACpB,OAAOV,EAASM,CAAG,IAGzB,CAEA,SAASK,EAAWf,EAAkB,CAChCA,EAAK,KACPa,EAASb,EAAK,IAAK,IAAI,EAEzBK,EAAgBL,CAAI,EACpB,QAAWU,KAAOV,EAAK,KACrBa,EAASb,EAAK,KAAKU,CAAG,EAAG,IAAI,EAE/B,QAAWA,KAAOV,EAAK,SACrBe,EAAWf,EAAK,SAASU,CAAG,CAAC,CAEjC,CC5MA,SAASM,GAAqBC,EAA2B,CACvD,IAAIC,EACJ,MAAO,CACL,IAAIC,EAAc,CAChB,OAAID,GAASD,EAAOC,EAAM,IAAKC,CAAG,EACzBD,EAAM,MAGRE,CACT,EAEA,IAAID,EAAcE,EAAgB,CAChCH,EAAQ,CAAE,IAAAC,EAAK,MAAAE,CAAM,CACvB,EAEA,YAAa,CACX,OAAOH,EAAQ,CAACA,CAAK,EAAI,CAAC,CAC5B,EAEA,OAAQ,CACNA,EAAQ,MACV,CACF,CACF,CAEA,SAASI,GAAeC,EAAiBN,EAA2B,CAClE,IAAIO,EAAmB,CAAC,EAExB,SAASC,EAAIN,EAAc,CACzB,IAAMO,EAAaF,EAAQ,UAAUN,GAASD,EAAOE,EAAKD,EAAM,GAAG,CAAC,EAGpE,GAAIQ,EAAa,GAAI,CACnB,IAAMR,EAAQM,EAAQE,CAAU,EAGhC,OAAIA,EAAa,IACfF,EAAQ,OAAOE,EAAY,CAAC,EAC5BF,EAAQ,QAAQN,CAAK,GAGhBA,EAAM,MAIf,OAAOE,CACT,CAEA,SAASO,EAAIR,EAAcE,EAAgB,CACrCI,EAAIN,CAAG,IAAMC,IAEfI,EAAQ,QAAQ,CAAE,IAAAL,EAAK,MAAAE,CAAM,CAAC,EAC1BG,EAAQ,OAASD,GACnBC,EAAQ,IAAI,EAGlB,CAEA,SAASI,GAAa,CACpB,OAAOJ,CACT,CAEA,SAASK,GAAQ,CACfL,EAAU,CAAC,CACb,CAEA,MAAO,CAAE,IAAAC,EAAK,IAAAE,EAAK,WAAAC,EAAY,MAAAC,CAAM,CACvC,CAUO,IAAMC,EAAqC,CAACC,EAAGC,IAAMD,IAAMC,EAE3D,SAASC,EAAyBC,EAA2B,CAClE,OAAO,SACLC,EACAC,EACS,CACT,GAAID,IAAS,MAAQC,IAAS,MAAQD,EAAK,SAAWC,EAAK,OACzD,MAAO,GAIT,GAAM,CAAE,OAAAC,CAAO,EAAIF,EACnB,QAASG,EAAI,EAAGA,EAAID,EAAQC,IAC1B,GAAI,CAACJ,EAAcC,EAAKG,CAAC,EAAGF,EAAKE,CAAC,CAAC,EACjC,MAAO,GAIX,MAAO,EACT,CACF,CAgEO,SAASC,GACdC,EACAC,EACA,CACA,IAAMC,EACJ,OAAOD,GAA2B,SAC9BA,EACA,CAAE,cAAeA,CAAuB,EAExC,CACJ,cAAAP,EAAgBJ,EAChB,QAAAP,EAAU,EACV,oBAAAoB,CACF,EAAID,EAEEE,EAAaX,EAAyBC,CAAa,EAErDW,EAAe,EAEbC,EACJvB,GAAW,EACPP,GAAqB4B,CAAU,EAC/BtB,GAAeC,EAASqB,CAAU,EAExC,SAASG,GAAW,CAClB,IAAI1B,EAAQyB,EAAM,IAAI,SAAS,EAC/B,GAAIzB,IAAUD,EAAW,CAMvB,GAHAC,EAAQmB,EAAK,MAAM,KAAM,SAAS,EAClCK,IAEIF,EAAqB,CAEvB,IAAMK,EADUF,EAAM,WAAW,EACH,KAAK5B,GACjCyB,EAAoBzB,EAAM,MAA2BG,CAAK,CAC5D,EAEI2B,IACF3B,EAAQ2B,EAAc,MACtBH,IAAiB,GAAKA,KAI1BC,EAAM,IAAI,UAAWzB,CAAK,EAE5B,OAAOA,CACT,CAEA,OAAA0B,EAAS,WAAa,IAAM,CAC1BD,EAAM,MAAM,EACZC,EAAS,kBAAkB,CAC7B,EAEAA,EAAS,aAAe,IAAMF,EAE9BE,EAAS,kBAAoB,IAAM,CACjCF,EAAe,CACjB,EAEOE,CACT,CClLO,SAASE,GAA2CC,EAAY,CAGrE,IAAMC,EAAsCC,EAC1C,CAAC,CACH,EAEIC,EAA8B,KAE5BC,EAAeC,EAAyBC,CAAsB,EAE9DC,EAAQC,EAAY,IACZR,EAAK,MAAM,KAAMC,EAAK,KAAyB,CAE5D,EAED,SAASQ,GAAW,CAClB,OAAKL,EAAaD,EAAU,SAAS,IACnCO,EAAWT,EAAM,SAA+C,EAChEE,EAAW,WAENI,EAAM,KACf,CAEA,OAAAE,EAAS,WAAa,IACbF,EAAM,MAAM,EAGdE,CACT,CCzFA,IAAME,EAAN,KAAmB,CACjB,YAAoBC,EAAU,CAAV,WAAAA,CAAW,CAC/B,OAAQ,CACN,OAAO,KAAK,KACd,CACF,EAEMC,GACJ,OAAO,QAAY,IACf,QACCF,EAEDG,GAAe,EACfC,EAAa,EA0CnB,SAASC,GAAmC,CAC1C,MAAO,CACL,EAAGF,GACH,EAAG,OACH,EAAG,KACH,EAAG,IACL,CACF,CAmGO,SAASG,EACdC,EACAC,EAAmD,CAAC,EACpD,CACA,IAAIC,EAASJ,EAAgB,EACvB,CAAE,oBAAAK,CAAoB,EAAIF,EAE5BG,EAEAC,EAAe,EAEnB,SAASC,GAAW,CAClB,IAAIC,EAAYL,EACV,CAAE,OAAAM,CAAO,EAAI,UACnB,QAASC,EAAI,EAAGC,EAAIF,EAAQC,EAAIC,EAAGD,IAAK,CACtC,IAAME,EAAM,UAAUF,CAAC,EACvB,GACE,OAAOE,GAAQ,YACd,OAAOA,GAAQ,UAAYA,IAAQ,KACpC,CAEA,IAAIC,EAAcL,EAAU,EACxBK,IAAgB,OAClBL,EAAU,EAAIK,EAAc,IAAI,SAElC,IAAMC,EAAaD,EAAY,IAAID,CAAG,EAClCE,IAAe,QACjBN,EAAYT,EAAgB,EAC5Bc,EAAY,IAAID,EAAKJ,CAAS,GAE9BA,EAAYM,MAET,CAEL,IAAIC,EAAiBP,EAAU,EAC3BO,IAAmB,OACrBP,EAAU,EAAIO,EAAiB,IAAI,KAErC,IAAMC,EAAgBD,EAAe,IAAIH,CAAG,EACxCI,IAAkB,QACpBR,EAAYT,EAAgB,EAC5BgB,EAAe,IAAIH,EAAKJ,CAAS,GAEjCA,EAAYQ,GAKlB,IAAMC,EAAiBT,EAEnBU,EAEJ,GAAIV,EAAU,IAAMV,EAClBoB,EAASV,EAAU,UAGnBU,EAASjB,EAAK,MAAM,KAAM,SAA6B,EACvDK,IAEIF,EAAqB,CACvB,IAAMe,EAAkBd,GAAY,QAAQ,GAAKA,EAG/Cc,GAAmB,MACnBf,EAAoBe,EAAqCD,CAAM,IAE/DA,EAASC,EAETb,IAAiB,GAAKA,KAOxBD,EAHG,OAAOa,GAAW,UAAYA,IAAW,MAC1C,OAAOA,GAAW,WAEQ,IAAItB,GAAIsB,CAAM,EAAIA,EAIlD,OAAAD,EAAe,EAAInB,EAEnBmB,EAAe,EAAIC,EACZA,CACT,CAEA,OAAAX,EAAS,WAAa,IAAM,CAC1BJ,EAASJ,EAAgB,EACzBQ,EAAS,kBAAkB,CAC7B,EAEAA,EAAS,aAAe,IAAMD,EAE9BC,EAAS,kBAAoB,IAAM,CACjCD,EAAe,CACjB,EAEOC,CACT,CCaO,SAASa,EAUdC,KACGC,EAMH,CAEA,IAAMC,EAGF,OAAOF,GAAqB,WAC5B,CACE,QAASA,EACT,eAAgBC,CAClB,EACAD,EAEEG,EAAiB,IAMlBC,IAUA,CACH,IAAIC,EAAiB,EACjBC,EAA2B,EAC3BC,EAKAC,EAKA,CAAC,EAGDC,EAAaL,EAAmB,IAAI,EAUpC,OAAOK,GAAe,WACxBD,EAAwBC,EAExBA,EAAaL,EAAmB,IAAI,GAGtCM,EACED,EACA,8EAA8E,OAAOA,IACvF,EAIA,IAAME,EAAkB,CACtB,GAAGT,EACH,GAAGM,CACL,EAEM,CACJ,QAAAI,EACA,eAAAC,EAAiB,CAAC,EAClB,YAAAC,EAAcC,EACd,mBAAAC,EAAqB,CAAC,EACtB,cAAAC,EAAgB,CAAC,CACnB,EAAIN,EAOEO,EAAsBC,EAAcN,CAAc,EAClDO,GAA0BD,EAAcH,CAAkB,EAC1DK,EAAeC,EAAgBlB,CAAkB,EAEjDmB,EAAqBX,EAAQ,UAAgC,CACjE,OAAAP,IAGQI,EAAgD,MACtD,KACA,SACF,CACF,EAAG,GAAGS,CAAmB,EAGrBM,GAAW,GAGTC,GAAWX,EAAY,UAA+B,CAC1DR,IAEA,IAAMoB,GAAuBC,EAC3BN,EACA,SACF,EAIA,OAAAd,EAAagB,EAAmB,MAAM,KAAMG,EAAoB,EA8BzDnB,CACT,EAAG,GAAGa,EAAuB,EAO7B,OAAO,OAAO,OAAOK,GAAU,CAC7B,WAAAhB,EACA,mBAAAc,EACA,aAAAF,EACA,yBAA0B,IAAMf,EAChC,8BAA+B,IAAM,CACnCA,EAA2B,CAC7B,EACA,WAAY,IAAMC,EAClB,eAAgB,IAAMF,EACtB,oBAAqB,IAAM,CACzBA,EAAiB,CACnB,EACA,QAAAO,EACA,YAAAE,CACF,CAAC,CAMH,EAEA,cAAO,OAAOX,EAAgB,CAC5B,UAAW,IAAMA,CACnB,CAAC,EAEMA,CAIT,CAWO,IAAMA,EACKJ,EAAsBgB,CAAc,EC5E/C,IAAMa,EACX,OAAO,OACL,CAKEC,EACAC,EAGIC,IAID,CACHC,EACEH,EACA,yHAC2D,OAAOA,GACpE,EACA,IAAMI,EAAoB,OAAO,KAAKJ,CAAoB,EACpDK,EAAeD,EAAkB,IACrCE,GAAON,EAAqBM,CAAG,CACjC,EAUA,OAT2BL,EACzBI,EACA,IAAIE,IACKA,EAAqB,OAAO,CAACC,EAAaC,EAAOC,KACtDF,EAAYJ,EAAkBM,CAAK,CAAC,EAAID,EACjCD,GACN,CAAC,CAAC,CAET,CAEF,EACA,CAAE,UAAW,IAAMT,CAAyB,CAC9C","names":["globalDevModeChecks","setGlobalDevModeChecks","devModeChecks","NOT_FOUND","assertIsFunction","func","errorMessage","assertIsObject","object","assertIsArrayOfFunctions","array","item","itemTypes","ensureIsArray","getDependencies","createSelectorArgs","dependencies","collectInputSelectorResults","inputSelectorArgs","inputSelectorResults","length","i","$REVISION","CURRENT_TRACKER","Cell","tripleEq","initialValue","isEqual","newValue","a","b","TrackingCache","fn","currentTracker","prevTracker","d","getValue","cell","setValue","storage","value","createCell","createCache","assertIsFunction","neverEq","a","b","createTag","createCell","dirtyTag","tag","value","setValue","consumeCollection","node","createTag","getValue","dirtyCollection","REDUX_PROXY_LABEL","nextId","proto","ObjectTreeNode","value","objectProxyHandler","createTag","node","key","calculateResult","childValue","childNode","createNode","getValue","tag","consumeCollection","prop","ArrayTreeNode","arrayProxyHandler","updateNode","node","newValue","value","tags","children","dirtyCollection","oldKeysSize","newKeysSize","anyKeysAdded","_key","key","childValue","newChildValue","dirtyTag","childNode","deleteNode","createSingletonCache","equals","entry","key","NOT_FOUND","value","createLruCache","maxSize","entries","get","cacheIndex","put","getEntries","clear","referenceEqualityCheck","a","b","createCacheKeyComparator","equalityCheck","prev","next","length","i","lruMemoize","func","equalityCheckOrOptions","providedOptions","resultEqualityCheck","comparator","resultsCount","cache","memoized","matchingEntry","autotrackMemoize","func","node","createNode","lastArgs","shallowEqual","createCacheKeyComparator","referenceEqualityCheck","cache","createCache","memoized","updateNode","StrongRef","value","Ref","UNTERMINATED","TERMINATED","createCacheNode","weakMapMemoize","func","options","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","length","i","l","arg","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","result","lastResultValue","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","createSelector","createSelectorArgs","recomputations","dependencyRecomputations","lastResult","directlyPassedOptions","resultFunc","assertIsFunction","combinedOptions","memoize","memoizeOptions","argsMemoize","weakMapMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","ensureIsArray","finalArgsMemoizeOptions","dependencies","getDependencies","memoizedResultFunc","firstRun","selector","inputSelectorResults","collectInputSelectorResults","createStructuredSelector","inputSelectorsObject","selectorCreator","createSelector","assertIsObject","inputSelectorKeys","dependencies","key","inputSelectorResults","composition","value","index"]}
Index: de_modules/reselect/dist/reselect.d.ts
===================================================================
--- node_modules/reselect/dist/reselect.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1429 +1,0 @@
-/**
- * Represents the longest array within an array of arrays.
- *
- * @template ArrayOfTuples An array of arrays.
- *
- * @internal
- */
-type LongestTuple<ArrayOfTuples extends readonly unknown[][]> = ArrayOfTuples extends [infer FirstArray extends unknown[]] ? FirstArray : ArrayOfTuples extends [
-    infer FirstArray,
-    ...infer RestArrays extends unknown[][]
-] ? LongerOfTwo<FirstArray, LongestTuple<RestArrays>> : never;
-/**
- * Determines the longer of two array types.
- *
- * @template ArrayOne First array type.
- * @template ArrayTwo Second array type.
- *
- * @internal
- */
-type LongerOfTwo<ArrayOne, ArrayTwo> = keyof ArrayTwo extends keyof ArrayOne ? ArrayOne : ArrayTwo;
-/**
- * Extracts the element at a specific index in an array.
- *
- * @template ArrayType The array type.
- * @template Index The index type.
- *
- * @internal
- */
-type ElementAt<ArrayType extends unknown[], Index extends PropertyKey> = Index extends keyof ArrayType ? ArrayType[Index] : unknown;
-/**
- * Maps each array in an array of arrays to its element at a given index.
- *
- * @template ArrayOfTuples An array of arrays.
- * @template Index The index to extract from each array.
- *
- * @internal
- */
-type ElementsAtGivenIndex<ArrayOfTuples extends readonly unknown[][], Index extends PropertyKey> = {
-    [ArrayIndex in keyof ArrayOfTuples]: ElementAt<ArrayOfTuples[ArrayIndex], Index>;
-};
-/**
- * Computes the intersection of all types in a tuple.
- *
- * @template Tuple A tuple of types.
- *
- * @internal
- */
-type Intersect<Tuple extends readonly unknown[]> = Tuple extends [] ? unknown : Tuple extends [infer Head, ...infer Tail] ? Head & Intersect<Tail> : Tuple[number];
-/**
- * Merges a tuple of arrays into a single tuple, intersecting types at each index.
- *
- * @template ArrayOfTuples An array of tuples.
- * @template LongestArray The longest array in ArrayOfTuples.
- *
- * @internal
- */
-type MergeTuples<ArrayOfTuples extends readonly unknown[][], LongestArray extends unknown[] = LongestTuple<ArrayOfTuples>> = {
-    [Index in keyof LongestArray]: Intersect<ElementsAtGivenIndex<ArrayOfTuples, Index>>;
-};
-/**
- * Extracts the parameter types from a tuple of functions.
- *
- * @template FunctionsArray An array of function types.
- *
- * @internal
- */
-type ExtractParameters<FunctionsArray extends readonly AnyFunction[]> = {
-    [Index in keyof FunctionsArray]: Parameters<FunctionsArray[Index]>;
-};
-/**
- * Merges the parameters of a tuple of functions into a single tuple.
- *
- * @template FunctionsArray An array of function types.
- *
- * @internal
- */
-type MergeParameters<FunctionsArray extends readonly AnyFunction[]> = '0' extends keyof FunctionsArray ? MergeTuples<ExtractParameters<FunctionsArray>> : Parameters<FunctionsArray[number]>;
-
-/**
- * Configuration options for a memoization function utilizing `WeakMap` for
- * its caching mechanism.
- *
- * @template Result - The type of the return value of the memoized function.
- *
- * @since 5.0.0
- * @public
- */
-interface WeakMapMemoizeOptions<Result = any> {
-    /**
-     * If provided, used to compare a newly generated output value against previous values in the cache.
-     * If a match is found, the old value is returned. This addresses the common
-     * ```ts
-     * todos.map(todo => todo.id)
-     * ```
-     * use case, where an update to another field in the original data causes a recalculation
-     * due to changed references, but the output is still effectively the same.
-     *
-     * @since 5.0.0
-     */
-    resultEqualityCheck?: EqualityFn<Result>;
-}
-/**
- * Creates a tree of `WeakMap`-based cache nodes based on the identity of the
- * arguments it's been called with (in this case, the extracted values from your input selectors).
- * This allows `weakMapMemoize` to have an effectively infinite cache size.
- * Cache results will be kept in memory as long as references to the arguments still exist,
- * and then cleared out as the arguments are garbage-collected.
- *
- * __Design Tradeoffs for `weakMapMemoize`:__
- * - Pros:
- *   - It has an effectively infinite cache size, but you have no control over
- *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.
- * - Cons:
- *   - There's currently no way to alter the argument comparisons.
- *   They're based on strict reference equality.
- *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.
- *
- * __Use Cases for `weakMapMemoize`:__
- * - This memoizer is likely best used for cases where you need to call the
- * same selector instance with many different arguments, such as a single
- * selector instance that is used in a list item component and called with
- * item IDs like:
- *   ```ts
- *   useSelector(state => selectSomeData(state, props.category))
- *   ```
- * @param func - The function to be memoized.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @example
- * <caption>Using `createSelector`</caption>
- * ```ts
- * import { createSelector, weakMapMemoize } from 'reselect'
- *
- * interface RootState {
- *   items: { id: number; category: string; name: string }[]
- * }
- *
- * const selectItemsByCategory = createSelector(
- *   [
- *     (state: RootState) => state.items,
- *     (state: RootState, category: string) => category
- *   ],
- *   (items, category) => items.filter(item => item.category === category),
- *   {
- *     memoize: weakMapMemoize,
- *     argsMemoize: weakMapMemoize
- *   }
- * )
- * ```
- *
- * @example
- * <caption>Using `createSelectorCreator`</caption>
- * ```ts
- * import { createSelectorCreator, weakMapMemoize } from 'reselect'
- *
- * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })
- *
- * const selectItemsByCategory = createSelectorWeakMap(
- *   [
- *     (state: RootState) => state.items,
- *     (state: RootState, category: string) => category
- *   ],
- *   (items, category) => items.filter(item => item.category === category)
- * )
- * ```
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}
- *
- * @since 5.0.0
- * @public
- * @experimental
- */
-declare function weakMapMemoize<Func extends AnyFunction>(func: Func, options?: WeakMapMemoizeOptions<ReturnType<Func>>): Func & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-};
-
-/**
- * A standard selector function.
- * @template State - The first value, often a Redux root state object.
- * @template Result - The final result returned by the selector.
- * @template Params - All additional arguments passed into the selector.
- *
- * @public
- */
-type Selector<State = any, Result = unknown, Params extends readonly any[] = any[]> = Distribute<
-/**
- * A function that takes a state and returns data that is based on that state.
- *
- * @param state - The first argument, often a Redux root state object.
- * @param params - All additional arguments passed into the selector.
- * @returns A derived value from the state.
- */
-(state: State, ...params: FallbackIfNever<Params, []>) => Result>;
-/**
- * An array of input selectors.
- *
- * @public
- */
-type SelectorArray<State = any> = readonly Selector<State>[];
-/**
- * Extracts an array of all return types from all input selectors.
- *
- * @public
- */
-type SelectorResultArray<Selectors extends SelectorArray> = ExtractReturnType<Selectors>;
-/**
- * The options object used inside `createSelector` and `createSelectorCreator`.
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object inside `createSelector` to override the original `memoize` function that was initially passed into `createSelectorCreator`.
- * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object inside `createSelector` to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`. If none was initially provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-interface CreateSelectorOptions<MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, OverrideMemoizeFunction extends UnknownMemoizer = never, OverrideArgsMemoizeFunction extends UnknownMemoizer = never> {
-    /**
-     * Reselect performs additional checks in development mode to help identify
-     * and warn about potential issues in selector behavior. This option
-     * allows you to customize the behavior of these checks per selector.
-     *
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-     *
-     * @since 5.0.0
-     */
-    devModeChecks?: Partial<DevModeChecks>;
-    /**
-     * The memoize function that is used to memoize the {@linkcode OutputSelectorFields.resultFunc resultFunc}
-     * inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
-     *
-     * When passed directly into `createSelector`, it overrides the `memoize` function initially passed into `createSelectorCreator`.
-     *
-     * @example
-     * ```ts
-     * import { createSelector, weakMapMemoize } from 'reselect'
-     *
-     * const selectItemsByCategory = createSelector(
-     *   [
-     *     (state: RootState) => state.items,
-     *     (state: RootState, category: string) => category
-     *   ],
-     *   (items, category) => items.filter(item => item.category === category),
-     *   { memoize: weakMapMemoize }
-     * )
-     * ```
-     *
-     * @since 5.0.0
-     */
-    memoize?: FallbackIfNever<OverrideMemoizeFunction, MemoizeFunction>;
-    /**
-     * The optional memoize function that is used to memoize the arguments
-     * passed into the output selector generated by `createSelector`
-     * (e.g., `lruMemoize` or `weakMapMemoize`).
-     *
-     * When passed directly into `createSelector`, it overrides the
-     * `argsMemoize` function initially passed into `createSelectorCreator`.
-     * If none was initially provided, `weakMapMemoize` will be used.
-     *
-     * @example
-     * ```ts
-     * import { createSelector, weakMapMemoize } from 'reselect'
-     *
-     * const selectItemsByCategory = createSelector(
-     *   [
-     *     (state: RootState) => state.items,
-     *     (state: RootState, category: string) => category
-     *   ],
-     *   (items, category) => items.filter(item => item.category === category),
-     *   { argsMemoize: weakMapMemoize }
-     * )
-     * ```
-     *
-     * @default weakMapMemoize
-     *
-     * @since 5.0.0
-     */
-    argsMemoize?: FallbackIfNever<OverrideArgsMemoizeFunction, ArgsMemoizeFunction>;
-    /**
-     * Optional configuration options for the {@linkcode CreateSelectorOptions.memoize memoize} function.
-     * These options are passed to the {@linkcode CreateSelectorOptions.memoize memoize} function as the second argument.
-     *
-     * @since 5.0.0
-     */
-    memoizeOptions?: OverrideMemoizeOptions<MemoizeFunction, OverrideMemoizeFunction>;
-    /**
-     * Optional configuration options for the {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} function.
-     * These options are passed to the {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} function as the second argument.
-     *
-     * @since 5.0.0
-     */
-    argsMemoizeOptions?: OverrideMemoizeOptions<ArgsMemoizeFunction, OverrideArgsMemoizeFunction>;
-}
-/**
- * The additional fields attached to the output selector generated by `createSelector`.
- *
- * **Note**: Although {@linkcode CreateSelectorOptions.memoize memoize}
- * and {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} are included in the attached fields,
- * the fields themselves are independent of the type of
- * {@linkcode CreateSelectorOptions.memoize memoize} and {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} functions.
- * Meaning this type is not going to generate additional fields based on what functions we use to memoize our selectors.
- *
- * _This type is not to be confused with {@linkcode ExtractMemoizerFields ExtractMemoizerFields}._
- *
- * @template InputSelectors - The type of the input selectors.
- * @template Result - The type of the result returned by the `resultFunc`.
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-type OutputSelectorFields<InputSelectors extends SelectorArray = SelectorArray, Result = unknown, MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize> = {
-    /**
-     * The final function passed to `createSelector`. Otherwise known as the `combiner`.
-     */
-    resultFunc: Combiner<InputSelectors, Result>;
-    /**
-     * The memoized version of {@linkcode OutputSelectorFields.resultFunc resultFunc}.
-     */
-    memoizedResultFunc: Combiner<InputSelectors, Result> & ExtractMemoizerFields<MemoizeFunction>;
-    /**
-     * @Returns The last result calculated by {@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc}.
-     */
-    lastResult: () => Result;
-    /**
-     * The array of the input selectors used by `createSelector` to compose the
-     * combiner ({@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc}).
-     */
-    dependencies: InputSelectors;
-    /**
-     * Counts the number of times {@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc} has been recalculated.
-     */
-    recomputations: () => number;
-    /**
-     * Resets the count of {@linkcode OutputSelectorFields.recomputations recomputations} count to 0.
-     */
-    resetRecomputations: () => void;
-    /**
-     * Counts the number of times the input selectors ({@linkcode OutputSelectorFields.dependencies dependencies})
-     * have been recalculated. This is distinct from {@linkcode OutputSelectorFields.recomputations recomputations},
-     * which tracks the recalculations of the result function.
-     *
-     * @since 5.0.0
-     */
-    dependencyRecomputations: () => number;
-    /**
-     * Resets the count {@linkcode OutputSelectorFields.dependencyRecomputations dependencyRecomputations}
-     * for the input selectors ({@linkcode OutputSelectorFields.dependencies dependencies})
-     * of a memoized selector.
-     *
-     * @since 5.0.0
-     */
-    resetDependencyRecomputations: () => void;
-} & Simplify<Required<Pick<CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>, 'argsMemoize' | 'memoize'>>>;
-/**
- * Represents the actual selectors generated by `createSelector`.
- *
- * @template InputSelectors - The type of the input selectors.
- * @template Result - The type of the result returned by the `resultFunc`.
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-type OutputSelector<InputSelectors extends SelectorArray = SelectorArray, Result = unknown, MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize> = Selector<GetStateFromSelectors<InputSelectors>, Result, GetParamsFromSelectors<InputSelectors>> & ExtractMemoizerFields<ArgsMemoizeFunction> & OutputSelectorFields<InputSelectors, Result, MemoizeFunction, ArgsMemoizeFunction>;
-/**
- * A function that takes input selectors' return values as arguments and returns a result. Otherwise known as `resultFunc`.
- *
- * @template InputSelectors - An array of input selectors.
- * @template Result - Result returned by `resultFunc`.
- *
- * @public
- */
-type Combiner<InputSelectors extends SelectorArray, Result> = Distribute<
-/**
- * A function that takes input selectors' return values as arguments and returns a result. Otherwise known as `resultFunc`.
- *
- * @param resultFuncArgs - Return values of input selectors.
- * @returns The return value of {@linkcode OutputSelectorFields.resultFunc resultFunc}.
- */
-(...resultFuncArgs: SelectorResultArray<InputSelectors>) => Result>;
-/**
- * A standard function returning true if two values are considered equal.
- *
- * @public
- */
-type EqualityFn<T = any> = (a: T, b: T) => boolean;
-/**
- * The frequency of development mode checks.
- *
- * @since 5.0.0
- * @public
- */
-type DevModeCheckFrequency = 'always' | 'once' | 'never';
-/**
- * Represents the configuration for development mode checks.
- *
- * @since 5.0.0
- * @public
- */
-interface DevModeChecks {
-    /**
-     * Overrides the global input stability check for the selector.
-     * - `once` - Run only the first time the selector is called.
-     * - `always` - Run every time the selector is called.
-     * - `never` - Never run the input stability check.
-     *
-     * @default 'once'
-     *
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks#inputstabilitycheck `inputStabilityCheck`}
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks#2-per-selector-by-passing-an-inputstabilitycheck-option-directly-to- per-selector-configuration}
-     *
-     * @since 5.0.0
-     */
-    inputStabilityCheck: DevModeCheckFrequency;
-    /**
-     * Overrides the global identity function check for the selector.
-     * - `once` - Run only the first time the selector is called.
-     * - `always` - Run every time the selector is called.
-     * - `never` - Never run the identity function check.
-     *
-     * @default 'once'
-     *
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}
-     * @see {@link https://reselect.js.org/api/development-only-stability-checks#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to- per-selector-configuration}
-     *
-     * @since 5.0.0
-     */
-    identityFunctionCheck: DevModeCheckFrequency;
-}
-/**
- * Represents execution information for development mode checks.
- *
- * @public
- * @since 5.0.0
- */
-type DevModeChecksExecutionInfo = {
-    [K in keyof DevModeChecks]: {
-        /**
-         * A boolean indicating whether the check should be executed.
-         */
-        shouldRun: boolean;
-        /**
-         * The function to execute for the check.
-         */
-        run: AnyFunction;
-    };
-};
-/**
- * Determines the combined single "State" type (first arg) from all input selectors.
- *
- * @public
- */
-type GetStateFromSelectors<Selectors extends SelectorArray> = MergeParameters<Selectors>[0];
-/**
- * Determines the combined  "Params" type (all remaining args) from all input selectors.
- *
- * @public
- */
-type GetParamsFromSelectors<Selectors extends SelectorArray> = ArrayTail<MergeParameters<Selectors>>;
-/**
- * Any Memoizer function. A memoizer is a function that accepts another function and returns it.
- *
- * @template FunctionType - The type of the function that is memoized.
- *
- * @public
- */
-type UnknownMemoizer<FunctionType extends UnknownFunction = UnknownFunction> = (func: FunctionType, ...options: any[]) => FunctionType;
-/**
- * Extracts the options type for a memoization function based on its parameters.
- * The first parameter of the function is expected to be the function to be memoized,
- * followed by options for the memoization process.
- *
- * @template MemoizeFunction - The type of the memoize function to be checked.
- *
- * @public
- */
-type MemoizeOptionsFromParameters<MemoizeFunction extends UnknownMemoizer> = (NonFunctionType<DropFirstParameter<MemoizeFunction>[0]> | FunctionType<DropFirstParameter<MemoizeFunction>[0]>) | (NonFunctionType<DropFirstParameter<MemoizeFunction>[number]> | FunctionType<DropFirstParameter<MemoizeFunction>[number]>)[];
-/**
- * Derive the type of memoize options object based on whether the memoize function itself was overridden.
- *
- * _This type can be used for both `memoizeOptions` and `argsMemoizeOptions`._
- *
- * @template MemoizeFunction - The type of the `memoize` or `argsMemoize` function initially passed into `createSelectorCreator`.
- * @template OverrideMemoizeFunction - The type of the optional `memoize` or `argsMemoize` function passed directly into `createSelector` which then overrides the original `memoize` or `argsMemoize` function passed into `createSelectorCreator`.
- *
- * @public
- */
-type OverrideMemoizeOptions<MemoizeFunction extends UnknownMemoizer, OverrideMemoizeFunction extends UnknownMemoizer = never> = IfNever<OverrideMemoizeFunction, Simplify<MemoizeOptionsFromParameters<MemoizeFunction>>, Simplify<MemoizeOptionsFromParameters<OverrideMemoizeFunction>>>;
-/**
- * Extracts the additional properties or methods that a memoize function attaches to
- * the function it memoizes (e.g., `clearCache`).
- *
- * @template MemoizeFunction - The type of the memoize function to be checked.
- *
- * @public
- */
-type ExtractMemoizerFields<MemoizeFunction extends UnknownMemoizer> = Simplify<OmitIndexSignature<ReturnType<MemoizeFunction>>>;
-/**
- * Represents the additional properties attached to a function memoized by `reselect`.
- *
- * `lruMemoize`, `weakMapMemoize` and `autotrackMemoize` all return these properties.
- *
- * @see {@linkcode ExtractMemoizerFields ExtractMemoizerFields}
- *
- * @public
- */
-type DefaultMemoizeFields = {
-    /**
-     * Clears the memoization cache associated with a memoized function.
-     * This method is typically used to reset the state of the cache, allowing
-     * for the garbage collection of previously memoized results and ensuring
-     * that future calls to the function recompute the results.
-     */
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-};
-/**
- * Any function with any arguments.
- *
- * @internal
- */
-type AnyFunction = (...args: any[]) => any;
-/**
- * Any function with unknown arguments.
- *
- * @internal
- */
-type UnknownFunction = (...args: unknown[]) => unknown;
-/**
- * When a generic type parameter is using its default value of `never`, fallback to a different type.
- *
- * @template T - Type to be checked.
- * @template FallbackTo - Type to fallback to if `T` resolves to `never`.
- *
- * @internal
- */
-type FallbackIfNever<T, FallbackTo> = IfNever<T, FallbackTo, T>;
-/**
- * Extracts the non-function part of a type.
- *
- * @template T - The input type to be refined by excluding function types and index signatures.
- *
- * @internal
- */
-type NonFunctionType<T> = Simplify<OmitIndexSignature<Exclude<T, AnyFunction>>>;
-/**
- * Extracts the function part of a type.
- *
- * @template T - The input type to be refined by extracting function types.
- *
- * @internal
- */
-type FunctionType<T> = Extract<T, AnyFunction>;
-/**
- * Extracts the return type from all functions as a tuple.
- *
- * @internal
- */
-type ExtractReturnType<FunctionsArray extends readonly AnyFunction[]> = {
-    [Index in keyof FunctionsArray]: FunctionsArray[Index] extends FunctionsArray[number] ? FallbackIfUnknown<ReturnType<FunctionsArray[Index]>, any> : never;
-};
-/**
- * Utility type to infer the type of "all params of a function except the first",
- * so we can determine what arguments a memoize function accepts.
- *
- * @internal
- */
-type DropFirstParameter<Func extends AnyFunction> = Func extends (firstArg: any, ...restArgs: infer Rest) => any ? Rest : never;
-/**
- * Distributes over a type. It is used mostly to expand a function type
- * in hover previews while preserving their original JSDoc information.
- *
- * If preserving JSDoc information is not a concern, you can use {@linkcode ExpandFunction ExpandFunction}.
- *
- * @template T The type to be distributed.
- *
- * @internal
- */
-type Distribute<T> = T extends T ? T : never;
-/**
- * Extracts the type of an array or tuple minus the first element.
- *
- * @internal
- */
-type ArrayTail<ArrayType> = ArrayType extends readonly [
-    unknown,
-    ...infer Tail
-] ? Tail : [];
-/**
- * An alias for type `{}`. Represents any value that is not `null` or `undefined`.
- * It is mostly used for semantic purposes to help distinguish between an
- * empty object type and `{}` as they are not the same.
- *
- * @internal
- */
-type AnyNonNullishValue = NonNullable<unknown>;
-/**
- * Same as {@linkcode AnyNonNullishValue AnyNonNullishValue} but aliased
- * for semantic purposes. It is intended to be used in scenarios where
- * a recursive type definition needs to be interrupted to ensure type safety
- * and to avoid excessively deep recursion that could lead to performance issues.
- *
- * @internal
- */
-type InterruptRecursion = AnyNonNullishValue;
-/**
- * An if-else-like type that resolves depending on whether the given type is `never`.
- * This is mainly used to conditionally resolve the type of a `memoizeOptions` object based on whether `memoize` is provided or not.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/if-never.d.ts Source}
- *
- * @internal
- */
-type IfNever<T, TypeIfNever, TypeIfNotNever> = [T] extends [never] ? TypeIfNever : TypeIfNotNever;
-/**
- * Omit any index signatures from the given object type, leaving only explicitly defined properties.
- * This is mainly used to remove explicit `any`s from the return type of some memoizers (e.g, `microMemoize`).
- *
- * __Disclaimer:__ When used on an intersection of a function and an object,
- * the function is erased.
- *
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/omit-index-signature.d.ts Source}
- *
- * @internal
- */
-type OmitIndexSignature<ObjectType> = {
-    [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType];
-};
-/**
- * The infamous "convert a union type to an intersection type" hack
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/union-to-intersection.d.ts Source}
- * @see {@link https://github.com/microsoft/TypeScript/issues/29594 Reference}
- *
- * @internal
- */
-type UnionToIntersection<Union> = (Union extends unknown ? (distributedUnion: Union) => void : never) extends (mergedIntersection: infer Intersection) => void ? // The `& Union` is to allow indexing by the resulting type
-Intersection & Union : never;
-/**
- * Code to convert a union of values into a tuple.
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-type Push<T extends any[], V> = [...T, V];
-/**
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never;
-/**
- * TS4.1+
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-type TuplifyUnion<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
-/**
- * Converts "the values of an object" into a tuple, like a type-level `Object.values()`
- * @see {@link https://stackoverflow.com/a/68695508/62937 Source}
- *
- * @internal
- */
-type ObjectValuesToTuple<T, KS extends any[] = TuplifyUnion<keyof T>, R extends any[] = []> = KS extends [infer K, ...infer KT] ? ObjectValuesToTuple<T, KT, [...R, T[K & keyof T]]> : R;
-/**
- * Create a type that makes the given keys required.
- * The remaining keys are kept as is.
- *
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/set-required.d.ts Source}
- *
- * @internal
- */
-type SetRequired<BaseType, Keys extends keyof BaseType> = Omit<BaseType, Keys> & Required<Pick<BaseType, Keys>>;
-/**
- * An if-else-like type that resolves depending on whether the given type is `unknown`.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/if-unknown.d.ts Source}
- *
- * @internal
- */
-type IfUnknown<T, TypeIfUnknown, TypeIfNotUnknown> = unknown extends T ? [T] extends [null] ? TypeIfNotUnknown : TypeIfUnknown : TypeIfNotUnknown;
-/**
- * When a type is resolves to `unknown`, fallback to a different type.
- *
- * @template T - Type to be checked.
- * @template FallbackTo - Type to fallback to if `T` resolves to `unknown`.
- *
- * @internal
- */
-type FallbackIfUnknown<T, FallbackTo> = IfUnknown<T, FallbackTo, T>;
-/**
- * Useful to flatten the type output to improve type hints shown in editors.
- * And also to transform an interface into a type to aide with assignability.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/simplify.d.ts Source}
- *
- * @internal
- */
-type Simplify<T> = T extends AnyFunction ? T : {
-    [KeyType in keyof T]: T[KeyType];
-} & AnyNonNullishValue;
-
-/**
- * Uses an "auto-tracking" approach inspired by the work of the Ember Glimmer team.
- * It uses a Proxy to wrap arguments and track accesses to nested fields
- * in your selector on first read. Later, when the selector is called with
- * new arguments, it identifies which accessed fields have changed and
- * only recalculates the result if one or more of those accessed fields have changed.
- * This allows it to be more precise than the shallow equality checks in `lruMemoize`.
- *
- * __Design Tradeoffs for `autotrackMemoize`:__
- * - Pros:
- *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,
- *    which may also result in fewer component re-renders.
- * - Cons:
- *    - It only has a cache size of 1.
- *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)
- *    - It can have some unexpected behavior. Because it tracks nested field accesses,
- *    cases where you don't access a field will not recalculate properly.
- *    For example, a badly-written selector like:
- *      ```ts
- *      createSelector([state => state.todos], todos => todos)
- *      ```
- *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.
- *
- * __Use Cases for `autotrackMemoize`:__
- * - It is likely best used for cases where you need to access specific nested fields
- * in data, and avoid recalculating if other fields in the same data objects are immutably updated.
- *
- * @param func - The function to be memoized.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @example
- * <caption>Using `createSelector`</caption>
- * ```ts
- * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'
- *
- * const selectTodoIds = createSelector(
- *   [(state: RootState) => state.todos],
- *   (todos) => todos.map(todo => todo.id),
- *   { memoize: autotrackMemoize }
- * )
- * ```
- *
- * @example
- * <caption>Using `createSelectorCreator`</caption>
- * ```ts
- * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'
- *
- * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })
- *
- * const selectTodoIds = createSelectorAutotrack(
- *   [(state: RootState) => state.todos],
- *   (todos) => todos.map(todo => todo.id)
- * )
- * ```
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}
- *
- * @since 5.0.0
- * @public
- * @experimental
- */
-declare function autotrackMemoize<Func extends AnyFunction>(func: Func): Func & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-};
-
-/**
- * An instance of `createSelector`, customized with a given memoize implementation.
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- * @template StateType - The type of state that the selectors created with this selector creator will operate on.
- *
- * @public
- */
-interface CreateSelectorFunction<MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, StateType = any> {
-    /**
-     * Creates a memoized selector function.
-     *
-     * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.
-     * @returns A memoized output selector.
-     *
-     * @template InputSelectors - The type of the input selectors as an array.
-     * @template Result - The return type of the `combiner` as well as the output selector.
-     * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-     * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-     *
-     * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-     */
-    <InputSelectors extends SelectorArray<StateType>, Result>(...createSelectorArgs: [
-        ...inputSelectors: InputSelectors,
-        combiner: Combiner<InputSelectors, Result>
-    ]): OutputSelector<InputSelectors, Result, MemoizeFunction, ArgsMemoizeFunction> & InterruptRecursion;
-    /**
-     * Creates a memoized selector function.
-     *
-     * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.
-     * @returns A memoized output selector.
-     *
-     * @template InputSelectors - The type of the input selectors as an array.
-     * @template Result - The return type of the `combiner` as well as the output selector.
-     * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-     * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-     *
-     * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-     */
-    <InputSelectors extends SelectorArray<StateType>, Result, OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction, OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction>(...createSelectorArgs: [
-        ...inputSelectors: InputSelectors,
-        combiner: Combiner<InputSelectors, Result>,
-        createSelectorOptions: Simplify<CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction, OverrideMemoizeFunction, OverrideArgsMemoizeFunction>>
-    ]): OutputSelector<InputSelectors, Result, OverrideMemoizeFunction, OverrideArgsMemoizeFunction> & InterruptRecursion;
-    /**
-     * Creates a memoized selector function.
-     *
-     * @param inputSelectors - An array of input selectors.
-     * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.
-     * @param createSelectorOptions - An optional options object that allows for further customization per selector.
-     * @returns A memoized output selector.
-     *
-     * @template InputSelectors - The type of the input selectors array.
-     * @template Result - The return type of the `combiner` as well as the output selector.
-     * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-     * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-     *
-     * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-     */
-    <InputSelectors extends SelectorArray<StateType>, Result, OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction, OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction>(inputSelectors: [...InputSelectors], combiner: Combiner<InputSelectors, Result>, createSelectorOptions?: Simplify<CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction, OverrideMemoizeFunction, OverrideArgsMemoizeFunction>>): OutputSelector<InputSelectors, Result, OverrideMemoizeFunction, OverrideArgsMemoizeFunction> & InterruptRecursion;
-    /**
-     * Creates a "pre-typed" version of {@linkcode createSelector createSelector}
-     * where the `state` type is predefined.
-     *
-     * This allows you to set the `state` type once, eliminating the need to
-     * specify it with every {@linkcode createSelector createSelector} call.
-     *
-     * @returns A pre-typed `createSelector` with the state type already defined.
-     *
-     * @example
-     * ```ts
-     * import { createSelector } from 'reselect'
-     *
-     * export interface RootState {
-     *   todos: { id: number; completed: boolean }[]
-     *   alerts: { id: number; read: boolean }[]
-     * }
-     *
-     * export const createAppSelector = createSelector.withTypes<RootState>()
-     *
-     * const selectTodoIds = createAppSelector(
-     *   [
-     *     // Type of `state` is set to `RootState`, no need to manually set the type
-     *     state => state.todos
-     *   ],
-     *   todos => todos.map(({ id }) => id)
-     * )
-     * ```
-     * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.
-     *
-     * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}
-     *
-     * @since 5.1.0
-     */
-    withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction, OverrideStateType>;
-}
-/**
- * Creates a selector creator function with the specified memoization function
- * and options for customizing memoization behavior.
- *
- * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.
- * @returns A customized `createSelector` function.
- *
- * @example
- * ```ts
- * const customCreateSelector = createSelectorCreator({
- *   memoize: customMemoize, // Function to be used to memoize `resultFunc`
- *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards
- *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments
- *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards
- * })
- *
- * const customSelector = customCreateSelector(
- *   [inputSelector1, inputSelector2],
- *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`
- * )
- *
- * customSelector(
- *   ...selectorArgs // Will be memoized by `customArgsMemoize`
- * )
- * ```
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}
- *
- * @since 5.0.0
- * @public
- */
-declare function createSelectorCreator<MemoizeFunction extends UnknownMemoizer, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize>(options: Simplify<SetRequired<CreateSelectorOptions<typeof weakMapMemoize, typeof weakMapMemoize, MemoizeFunction, ArgsMemoizeFunction>, 'memoize'>>): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>;
-/**
- * Creates a selector creator function with the specified memoization function
- * and options for customizing memoization behavior.
- *
- * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.
- * @returns A customized `createSelector` function.
- *
- * @example
- * ```ts
- * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`
- *   option1, // Will be passed as second argument to `customMemoize`
- *   option2, // Will be passed as third argument to `customMemoize`
- *   option3 // Will be passed as fourth argument to `customMemoize`
- * )
- *
- * const customSelector = customCreateSelector(
- *   [inputSelector1, inputSelector2],
- *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`
- * )
- * ```
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- *
- * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}
- *
- * @public
- */
-declare function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(memoize: MemoizeFunction, ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>): CreateSelectorFunction<MemoizeFunction>;
-/**
- * Accepts one or more "input selectors" (either as separate arguments or a single array),
- * a single "result function" / "combiner", and an optional options object, and
- * generates a memoized selector function.
- *
- * @see {@link https://reselect.js.org/api/createSelector `createSelector`}
- *
- * @public
- */
-declare const createSelector: CreateSelectorFunction<typeof weakMapMemoize, typeof weakMapMemoize, any>;
-
-/**
- * Represents a mapping of selectors to their return types.
- *
- * @template TObject - An object type where each property is a selector function.
- *
- * @public
- */
-type SelectorResultsMap<TObject extends SelectorsObject> = {
-    [Key in keyof TObject]: ReturnType<TObject[Key]>;
-};
-/**
- * Represents a mapping of selectors for each key in a given root state.
- *
- * This type is a utility that takes a root state object type and
- * generates a corresponding set of selectors. Each selector is associated
- * with a key in the root state, allowing for the selection
- * of specific parts of the state.
- *
- * @template RootState - The type of the root state object.
- *
- * @since 5.0.0
- * @public
- */
-type RootStateSelectors<RootState = any> = {
-    [Key in keyof RootState]: Selector<RootState, RootState[Key], []>;
-};
-/**
- * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.
- * @template RootState - The type of the root state object.
- *
- * @since 5.0.0
- * @public
- */
-type TypedStructuredSelectorCreator<RootState = any> = 
-/**
- * A convenience function that simplifies returning an object
- * made up of selector results.
- *
- * @param inputSelectorsObject - A key value pair consisting of input selectors.
- * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
- * @returns A memoized structured selector.
- *
- * @example
- * <caption>Modern Use Case</caption>
- * ```ts
- * import { createSelector, createStructuredSelector } from 'reselect'
- *
- * interface RootState {
- *   todos: {
- *     id: number
- *     completed: boolean
- *     title: string
- *     description: string
- *   }[]
- *   alerts: { id: number; read: boolean }[]
- * }
- *
- * // This:
- * const structuredSelector = createStructuredSelector(
- *   {
- *     todos: (state: RootState) => state.todos,
- *     alerts: (state: RootState) => state.alerts,
- *     todoById: (state: RootState, id: number) => state.todos[id]
- *   },
- *   createSelector
- * )
- *
- * // Is essentially the same as this:
- * const selector = createSelector(
- *   [
- *     (state: RootState) => state.todos,
- *     (state: RootState) => state.alerts,
- *     (state: RootState, id: number) => state.todos[id]
- *   ],
- *   (todos, alerts, todoById) => {
- *     return {
- *       todos,
- *       alerts,
- *       todoById
- *     }
- *   }
- * )
- * ```
- *
- * @example
- * <caption>In your component:</caption>
- * ```tsx
- * import type { RootState } from 'createStructuredSelector/modernUseCase'
- * import { structuredSelector } from 'createStructuredSelector/modernUseCase'
- * import type { FC } from 'react'
- * import { useSelector } from 'react-redux'
- *
- * interface Props {
- *   id: number
- * }
- *
- * const MyComponent: FC<Props> = ({ id }) => {
- *   const { todos, alerts, todoById } = useSelector((state: RootState) =>
- *     structuredSelector(state, id)
- *   )
- *
- *   return (
- *     <div>
- *       Next to do is:
- *       <h2>{todoById.title}</h2>
- *       <p>Description: {todoById.description}</p>
- *       <ul>
- *         <h3>All other to dos:</h3>
- *         {todos.map(todo => (
- *           <li key={todo.id}>{todo.title}</li>
- *         ))}
- *       </ul>
- *     </div>
- *   )
- * }
- * ```
- *
- * @example
- * <caption>Simple Use Case</caption>
- * ```ts
- * const selectA = state => state.a
- * const selectB = state => state.b
- *
- * // The result function in the following selector
- * // is simply building an object from the input selectors
- * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({
- *   a,
- *   b
- * }))
- *
- * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }
- * ```
- *
- * @template InputSelectorsObject - The shape of the input selectors object.
- * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.
- * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.
- *
- * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
- */
-<InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>, MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize>(inputSelectorsObject: InputSelectorsObject, selectorCreator?: CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>) => OutputSelector<ObjectValuesToTuple<InputSelectorsObject>, Simplify<SelectorResultsMap<InputSelectorsObject>>, MemoizeFunction, ArgsMemoizeFunction> & InterruptRecursion;
-/**
- * Represents an object where each property is a selector function.
- *
- * @template StateType - The type of state that all the selectors operate on.
- *
- * @public
- */
-type SelectorsObject<StateType = any> = Record<string, Selector<StateType>>;
-/**
- * It provides a way to create structured selectors.
- * The structured selector can take multiple input selectors
- * and map their output to an object with specific keys.
- *
- * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.
- *
- * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
- *
- * @public
- */
-interface StructuredSelectorCreator<StateType = any> {
-    /**
-     * A convenience function that simplifies returning an object
-     * made up of selector results.
-     *
-     * @param inputSelectorsObject - A key value pair consisting of input selectors.
-     * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
-     * @returns A memoized structured selector.
-     *
-     * @example
-     * <caption>Modern Use Case</caption>
-     * ```ts
-     * import { createSelector, createStructuredSelector } from 'reselect'
-     *
-     * interface RootState {
-     *   todos: {
-     *     id: number
-     *     completed: boolean
-     *     title: string
-     *     description: string
-     *   }[]
-     *   alerts: { id: number; read: boolean }[]
-     * }
-     *
-     * // This:
-     * const structuredSelector = createStructuredSelector(
-     *   {
-     *     todos: (state: RootState) => state.todos,
-     *     alerts: (state: RootState) => state.alerts,
-     *     todoById: (state: RootState, id: number) => state.todos[id]
-     *   },
-     *   createSelector
-     * )
-     *
-     * // Is essentially the same as this:
-     * const selector = createSelector(
-     *   [
-     *     (state: RootState) => state.todos,
-     *     (state: RootState) => state.alerts,
-     *     (state: RootState, id: number) => state.todos[id]
-     *   ],
-     *   (todos, alerts, todoById) => {
-     *     return {
-     *       todos,
-     *       alerts,
-     *       todoById
-     *     }
-     *   }
-     * )
-     * ```
-     *
-     * @example
-     * <caption>In your component:</caption>
-     * ```tsx
-     * import type { RootState } from 'createStructuredSelector/modernUseCase'
-     * import { structuredSelector } from 'createStructuredSelector/modernUseCase'
-     * import type { FC } from 'react'
-     * import { useSelector } from 'react-redux'
-     *
-     * interface Props {
-     *   id: number
-     * }
-     *
-     * const MyComponent: FC<Props> = ({ id }) => {
-     *   const { todos, alerts, todoById } = useSelector((state: RootState) =>
-     *     structuredSelector(state, id)
-     *   )
-     *
-     *   return (
-     *     <div>
-     *       Next to do is:
-     *       <h2>{todoById.title}</h2>
-     *       <p>Description: {todoById.description}</p>
-     *       <ul>
-     *         <h3>All other to dos:</h3>
-     *         {todos.map(todo => (
-     *           <li key={todo.id}>{todo.title}</li>
-     *         ))}
-     *       </ul>
-     *     </div>
-     *   )
-     * }
-     * ```
-     *
-     * @example
-     * <caption>Simple Use Case</caption>
-     * ```ts
-     * const selectA = state => state.a
-     * const selectB = state => state.b
-     *
-     * // The result function in the following selector
-     * // is simply building an object from the input selectors
-     * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({
-     *   a,
-     *   b
-     * }))
-     *
-     * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }
-     * ```
-     *
-     * @template InputSelectorsObject - The shape of the input selectors object.
-     * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.
-     * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.
-     *
-     * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
-     */
-    <InputSelectorsObject extends SelectorsObject<StateType>, MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize, ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize>(inputSelectorsObject: InputSelectorsObject, selectorCreator?: CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>): OutputSelector<ObjectValuesToTuple<InputSelectorsObject>, Simplify<SelectorResultsMap<InputSelectorsObject>>, MemoizeFunction, ArgsMemoizeFunction> & InterruptRecursion;
-    /**
-     * Creates a "pre-typed" version of
-     * {@linkcode createStructuredSelector createStructuredSelector}
-     * where the `state` type is predefined.
-     *
-     * This allows you to set the `state` type once, eliminating the need to
-     * specify it with every
-     * {@linkcode createStructuredSelector createStructuredSelector} call.
-     *
-     * @returns A pre-typed `createStructuredSelector` with the state type already defined.
-     *
-     * @example
-     * ```ts
-     * import { createStructuredSelector } from 'reselect'
-     *
-     * export interface RootState {
-     *   todos: { id: number; completed: boolean }[]
-     *   alerts: { id: number; read: boolean }[]
-     * }
-     *
-     * export const createStructuredAppSelector =
-     *   createStructuredSelector.withTypes<RootState>()
-     *
-     * const structuredAppSelector = createStructuredAppSelector({
-     *   // Type of `state` is set to `RootState`, no need to manually set the type
-     *   todos: state => state.todos,
-     *   alerts: state => state.alerts,
-     *   todoById: (state, id: number) => state.todos[id]
-     * })
-     *
-     * ```
-     * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.
-     *
-     * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}
-     *
-     * @since 5.1.0
-     */
-    withTypes: <OverrideStateType extends StateType>() => StructuredSelectorCreator<OverrideStateType>;
-}
-/**
- * A convenience function that simplifies returning an object
- * made up of selector results.
- *
- * @param inputSelectorsObject - A key value pair consisting of input selectors.
- * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
- * @returns A memoized structured selector.
- *
- * @example
- * <caption>Modern Use Case</caption>
- * ```ts
- * import { createSelector, createStructuredSelector } from 'reselect'
- *
- * interface RootState {
- *   todos: {
- *     id: number
- *     completed: boolean
- *     title: string
- *     description: string
- *   }[]
- *   alerts: { id: number; read: boolean }[]
- * }
- *
- * // This:
- * const structuredSelector = createStructuredSelector(
- *   {
- *     todos: (state: RootState) => state.todos,
- *     alerts: (state: RootState) => state.alerts,
- *     todoById: (state: RootState, id: number) => state.todos[id]
- *   },
- *   createSelector
- * )
- *
- * // Is essentially the same as this:
- * const selector = createSelector(
- *   [
- *     (state: RootState) => state.todos,
- *     (state: RootState) => state.alerts,
- *     (state: RootState, id: number) => state.todos[id]
- *   ],
- *   (todos, alerts, todoById) => {
- *     return {
- *       todos,
- *       alerts,
- *       todoById
- *     }
- *   }
- * )
- * ```
- *
- * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
- *
- * @public
- */
-declare const createStructuredSelector: StructuredSelectorCreator;
-
-/**
- * Overrides the development mode checks settings for all selectors.
- *
- * Reselect performs additional checks in development mode to help identify and
- * warn about potential issues in selector behavior. This function allows you to
- * customize the behavior of these checks across all selectors in your application.
- *
- * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.
- * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}
- * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.
- *
- * _The development mode checks do not run in production builds._
- *
- * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.
- *
- * @example
- * ```ts
- * import { setGlobalDevModeChecks } from 'reselect'
- * import { DevModeChecks } from '../types'
- *
- * // Run only the first time the selector is called. (default)
- * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })
- *
- * // Run every time the selector is called.
- * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })
- *
- * // Never run the input stability check.
- * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })
- *
- * // Run only the first time the selector is called. (default)
- * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })
- *
- * // Run every time the selector is called.
- * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })
- *
- * // Never run the identity function check.
- * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })
- * ```
- * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
- * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}
- *
- * @since 5.0.0
- * @public
- */
-declare const setGlobalDevModeChecks: (devModeChecks: Partial<DevModeChecks>) => void;
-
-/**
- * Runs a simple reference equality check.
- * What {@linkcode lruMemoize lruMemoize} uses by default.
- *
- * **Note**: This function was previously known as `defaultEqualityCheck`.
- *
- * @public
- */
-declare const referenceEqualityCheck: EqualityFn;
-/**
- * Options for configuring the behavior of a function memoized with
- * LRU (Least Recently Used) caching.
- *
- * @template Result - The type of the return value of the memoized function.
- *
- * @public
- */
-interface LruMemoizeOptions<Result = any> {
-    /**
-     * Function used to compare the individual arguments of the
-     * provided calculation function.
-     *
-     * @default referenceEqualityCheck
-     */
-    equalityCheck?: EqualityFn;
-    /**
-     * If provided, used to compare a newly generated output value against
-     * previous values in the cache. If a match is found,
-     * the old value is returned. This addresses the common
-     * ```ts
-     * todos.map(todo => todo.id)
-     * ```
-     * use case, where an update to another field in the original data causes
-     * a recalculation due to changed references, but the output is still
-     * effectively the same.
-     *
-     * @since 4.1.0
-     */
-    resultEqualityCheck?: EqualityFn<Result>;
-    /**
-     * The maximum size of the cache used by the selector.
-     * A size greater than 1 means the selector will use an
-     * LRU (Least Recently Used) cache, allowing for the caching of multiple
-     * results based on different sets of arguments.
-     *
-     * @default 1
-     */
-    maxSize?: number;
-}
-/**
- * Creates a memoized version of a function with an optional
- * LRU (Least Recently Used) cache. The memoized function uses a cache to
- * store computed values. Depending on the `maxSize` option, it will use
- * either a singleton cache (for a single entry) or an
- * LRU cache (for multiple entries).
- *
- * **Note**: This function was previously known as `defaultMemoize`.
- *
- * @param func - The function to be memoized.
- * @param equalityCheckOrOptions - Either an equality check function or an options object.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}
- *
- * @public
- */
-declare function lruMemoize<Func extends AnyFunction>(func: Func, equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>): Func & {
-    clearCache: () => void;
-    resultsCount: () => number;
-    resetResultsCount: () => void;
-};
-
-export { Combiner, CreateSelectorFunction, CreateSelectorOptions, DefaultMemoizeFields, DevModeCheckFrequency, DevModeChecks, DevModeChecksExecutionInfo, EqualityFn, ExtractMemoizerFields, GetParamsFromSelectors, GetStateFromSelectors, LruMemoizeOptions, MemoizeOptionsFromParameters, OutputSelector, OutputSelectorFields, OverrideMemoizeOptions, RootStateSelectors, Selector, SelectorArray, SelectorResultArray, SelectorResultsMap, SelectorsObject, StructuredSelectorCreator, TypedStructuredSelectorCreator, UnknownMemoizer, WeakMapMemoizeOptions, createSelector, createSelectorCreator, createStructuredSelector, lruMemoize, referenceEqualityCheck, setGlobalDevModeChecks, autotrackMemoize as unstable_autotrackMemoize, weakMapMemoize };
Index: de_modules/reselect/dist/reselect.legacy-esm.js
===================================================================
--- node_modules/reselect/dist/reselect.legacy-esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,759 +1,0 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __publicField = (obj, key, value) => {
-  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
-  return value;
-};
-
-// src/devModeChecks/identityFunctionCheck.ts
-var runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {
-  if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {
-    let isInputSameAsOutput = false;
-    try {
-      const emptyObject = {};
-      if (resultFunc(emptyObject) === emptyObject)
-        isInputSameAsOutput = true;
-    } catch (e) {
-    }
-    if (isInputSameAsOutput) {
-      let stack = void 0;
-      try {
-        throw new Error();
-      } catch (e) {
-        ;
-        ({ stack } = e);
-      }
-      console.warn(
-        "The result function returned its own inputs without modification. e.g\n`createSelector([state => state.todos], todos => todos)`\nThis could lead to inefficient memoization and unnecessary re-renders.\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.",
-        { stack }
-      );
-    }
-  }
-};
-
-// src/devModeChecks/inputStabilityCheck.ts
-var runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {
-  const { memoize, memoizeOptions } = options;
-  const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;
-  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);
-  const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);
-  if (!areInputSelectorResultsEqual) {
-    let stack = void 0;
-    try {
-      throw new Error();
-    } catch (e) {
-      ;
-      ({ stack } = e);
-    }
-    console.warn(
-      "An input selector returned a different result when passed same arguments.\nThis means your output selector will likely run more frequently than intended.\nAvoid returning a new reference inside your input selector, e.g.\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`",
-      {
-        arguments: inputSelectorArgs,
-        firstInputs: inputSelectorResults,
-        secondInputs: inputSelectorResultsCopy,
-        stack
-      }
-    );
-  }
-};
-
-// src/devModeChecks/setGlobalDevModeChecks.ts
-var globalDevModeChecks = {
-  inputStabilityCheck: "once",
-  identityFunctionCheck: "once"
-};
-var setGlobalDevModeChecks = (devModeChecks) => {
-  Object.assign(globalDevModeChecks, devModeChecks);
-};
-
-// src/utils.ts
-var NOT_FOUND = /* @__PURE__ */ Symbol("NOT_FOUND");
-function assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {
-  if (typeof func !== "function") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {
-  if (typeof object !== "object") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {
-  if (!array.every((item) => typeof item === "function")) {
-    const itemTypes = array.map(
-      (item) => typeof item === "function" ? `function ${item.name || "unnamed"}()` : typeof item
-    ).join(", ");
-    throw new TypeError(`${errorMessage}[${itemTypes}]`);
-  }
-}
-var ensureIsArray = (item) => {
-  return Array.isArray(item) ? item : [item];
-};
-function getDependencies(createSelectorArgs) {
-  const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;
-  assertIsArrayOfFunctions(
-    dependencies,
-    `createSelector expects all input-selectors to be functions, but received the following types: `
-  );
-  return dependencies;
-}
-function collectInputSelectorResults(dependencies, inputSelectorArgs) {
-  const inputSelectorResults = [];
-  const { length } = dependencies;
-  for (let i = 0; i < length; i++) {
-    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));
-  }
-  return inputSelectorResults;
-}
-var getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {
-  const { identityFunctionCheck, inputStabilityCheck } = __spreadValues(__spreadValues({}, globalDevModeChecks), devModeChecks);
-  return {
-    identityFunctionCheck: {
-      shouldRun: identityFunctionCheck === "always" || identityFunctionCheck === "once" && firstRun,
-      run: runIdentityFunctionCheck
-    },
-    inputStabilityCheck: {
-      shouldRun: inputStabilityCheck === "always" || inputStabilityCheck === "once" && firstRun,
-      run: runInputStabilityCheck
-    }
-  };
-};
-
-// src/autotrackMemoize/autotracking.ts
-var $REVISION = 0;
-var CURRENT_TRACKER = null;
-var Cell = class {
-  constructor(initialValue, isEqual = tripleEq) {
-    __publicField(this, "revision", $REVISION);
-    __publicField(this, "_value");
-    __publicField(this, "_lastValue");
-    __publicField(this, "_isEqual", tripleEq);
-    this._value = this._lastValue = initialValue;
-    this._isEqual = isEqual;
-  }
-  // Whenever a storage value is read, it'll add itself to the current tracker if
-  // one exists, entangling its state with that cache.
-  get value() {
-    CURRENT_TRACKER == null ? void 0 : CURRENT_TRACKER.add(this);
-    return this._value;
-  }
-  // Whenever a storage value is updated, we bump the global revision clock,
-  // assign the revision for this storage to the new value, _and_ we schedule a
-  // rerender. This is important, and it's what makes autotracking  _pull_
-  // based. We don't actively tell the caches which depend on the storage that
-  // anything has happened. Instead, we recompute the caches when needed.
-  set value(newValue) {
-    if (this.value === newValue)
-      return;
-    this._value = newValue;
-    this.revision = ++$REVISION;
-  }
-};
-function tripleEq(a, b) {
-  return a === b;
-}
-var TrackingCache = class {
-  constructor(fn) {
-    __publicField(this, "_cachedValue");
-    __publicField(this, "_cachedRevision", -1);
-    __publicField(this, "_deps", []);
-    __publicField(this, "hits", 0);
-    __publicField(this, "fn");
-    this.fn = fn;
-  }
-  clear() {
-    this._cachedValue = void 0;
-    this._cachedRevision = -1;
-    this._deps = [];
-    this.hits = 0;
-  }
-  get value() {
-    if (this.revision > this._cachedRevision) {
-      const { fn } = this;
-      const currentTracker = /* @__PURE__ */ new Set();
-      const prevTracker = CURRENT_TRACKER;
-      CURRENT_TRACKER = currentTracker;
-      this._cachedValue = fn();
-      CURRENT_TRACKER = prevTracker;
-      this.hits++;
-      this._deps = Array.from(currentTracker);
-      this._cachedRevision = this.revision;
-    }
-    CURRENT_TRACKER == null ? void 0 : CURRENT_TRACKER.add(this);
-    return this._cachedValue;
-  }
-  get revision() {
-    return Math.max(...this._deps.map((d) => d.revision), 0);
-  }
-};
-function getValue(cell) {
-  if (!(cell instanceof Cell)) {
-    console.warn("Not a valid cell! ", cell);
-  }
-  return cell.value;
-}
-function setValue(storage, value) {
-  if (!(storage instanceof Cell)) {
-    throw new TypeError(
-      "setValue must be passed a tracked store created with `createStorage`."
-    );
-  }
-  storage.value = storage._lastValue = value;
-}
-function createCell(initialValue, isEqual = tripleEq) {
-  return new Cell(initialValue, isEqual);
-}
-function createCache(fn) {
-  assertIsFunction(
-    fn,
-    "the first parameter to `createCache` must be a function"
-  );
-  return new TrackingCache(fn);
-}
-
-// src/autotrackMemoize/tracking.ts
-var neverEq = (a, b) => false;
-function createTag() {
-  return createCell(null, neverEq);
-}
-function dirtyTag(tag, value) {
-  setValue(tag, value);
-}
-var consumeCollection = (node) => {
-  let tag = node.collectionTag;
-  if (tag === null) {
-    tag = node.collectionTag = createTag();
-  }
-  getValue(tag);
-};
-var dirtyCollection = (node) => {
-  const tag = node.collectionTag;
-  if (tag !== null) {
-    dirtyTag(tag, null);
-  }
-};
-
-// src/autotrackMemoize/proxy.ts
-var REDUX_PROXY_LABEL = Symbol();
-var nextId = 0;
-var proto = Object.getPrototypeOf({});
-var ObjectTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    __publicField(this, "proxy", new Proxy(this, objectProxyHandler));
-    __publicField(this, "tag", createTag());
-    __publicField(this, "tags", {});
-    __publicField(this, "children", {});
-    __publicField(this, "collectionTag", null);
-    __publicField(this, "id", nextId++);
-    this.value = value;
-    this.tag.value = value;
-  }
-};
-var objectProxyHandler = {
-  get(node, key) {
-    function calculateResult() {
-      const { value } = node;
-      const childValue = Reflect.get(value, key);
-      if (typeof key === "symbol") {
-        return childValue;
-      }
-      if (key in proto) {
-        return childValue;
-      }
-      if (typeof childValue === "object" && childValue !== null) {
-        let childNode = node.children[key];
-        if (childNode === void 0) {
-          childNode = node.children[key] = createNode(childValue);
-        }
-        if (childNode.tag) {
-          getValue(childNode.tag);
-        }
-        return childNode.proxy;
-      } else {
-        let tag = node.tags[key];
-        if (tag === void 0) {
-          tag = node.tags[key] = createTag();
-          tag.value = childValue;
-        }
-        getValue(tag);
-        return childValue;
-      }
-    }
-    const res = calculateResult();
-    return res;
-  },
-  ownKeys(node) {
-    consumeCollection(node);
-    return Reflect.ownKeys(node.value);
-  },
-  getOwnPropertyDescriptor(node, prop) {
-    return Reflect.getOwnPropertyDescriptor(node.value, prop);
-  },
-  has(node, prop) {
-    return Reflect.has(node.value, prop);
-  }
-};
-var ArrayTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    __publicField(this, "proxy", new Proxy([this], arrayProxyHandler));
-    __publicField(this, "tag", createTag());
-    __publicField(this, "tags", {});
-    __publicField(this, "children", {});
-    __publicField(this, "collectionTag", null);
-    __publicField(this, "id", nextId++);
-    this.value = value;
-    this.tag.value = value;
-  }
-};
-var arrayProxyHandler = {
-  get([node], key) {
-    if (key === "length") {
-      consumeCollection(node);
-    }
-    return objectProxyHandler.get(node, key);
-  },
-  ownKeys([node]) {
-    return objectProxyHandler.ownKeys(node);
-  },
-  getOwnPropertyDescriptor([node], prop) {
-    return objectProxyHandler.getOwnPropertyDescriptor(node, prop);
-  },
-  has([node], prop) {
-    return objectProxyHandler.has(node, prop);
-  }
-};
-function createNode(value) {
-  if (Array.isArray(value)) {
-    return new ArrayTreeNode(value);
-  }
-  return new ObjectTreeNode(value);
-}
-function updateNode(node, newValue) {
-  const { value, tags, children } = node;
-  node.value = newValue;
-  if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {
-    dirtyCollection(node);
-  } else {
-    if (value !== newValue) {
-      let oldKeysSize = 0;
-      let newKeysSize = 0;
-      let anyKeysAdded = false;
-      for (const _key in value) {
-        oldKeysSize++;
-      }
-      for (const key in newValue) {
-        newKeysSize++;
-        if (!(key in value)) {
-          anyKeysAdded = true;
-          break;
-        }
-      }
-      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;
-      if (isDifferent) {
-        dirtyCollection(node);
-      }
-    }
-  }
-  for (const key in tags) {
-    const childValue = value[key];
-    const newChildValue = newValue[key];
-    if (childValue !== newChildValue) {
-      dirtyCollection(node);
-      dirtyTag(tags[key], newChildValue);
-    }
-    if (typeof newChildValue === "object" && newChildValue !== null) {
-      delete tags[key];
-    }
-  }
-  for (const key in children) {
-    const childNode = children[key];
-    const newChildValue = newValue[key];
-    const childValue = childNode.value;
-    if (childValue === newChildValue) {
-      continue;
-    } else if (typeof newChildValue === "object" && newChildValue !== null) {
-      updateNode(childNode, newChildValue);
-    } else {
-      deleteNode(childNode);
-      delete children[key];
-    }
-  }
-}
-function deleteNode(node) {
-  if (node.tag) {
-    dirtyTag(node.tag, null);
-  }
-  dirtyCollection(node);
-  for (const key in node.tags) {
-    dirtyTag(node.tags[key], null);
-  }
-  for (const key in node.children) {
-    deleteNode(node.children[key]);
-  }
-}
-
-// src/lruMemoize.ts
-function createSingletonCache(equals) {
-  let entry;
-  return {
-    get(key) {
-      if (entry && equals(entry.key, key)) {
-        return entry.value;
-      }
-      return NOT_FOUND;
-    },
-    put(key, value) {
-      entry = { key, value };
-    },
-    getEntries() {
-      return entry ? [entry] : [];
-    },
-    clear() {
-      entry = void 0;
-    }
-  };
-}
-function createLruCache(maxSize, equals) {
-  let entries = [];
-  function get(key) {
-    const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));
-    if (cacheIndex > -1) {
-      const entry = entries[cacheIndex];
-      if (cacheIndex > 0) {
-        entries.splice(cacheIndex, 1);
-        entries.unshift(entry);
-      }
-      return entry.value;
-    }
-    return NOT_FOUND;
-  }
-  function put(key, value) {
-    if (get(key) === NOT_FOUND) {
-      entries.unshift({ key, value });
-      if (entries.length > maxSize) {
-        entries.pop();
-      }
-    }
-  }
-  function getEntries() {
-    return entries;
-  }
-  function clear() {
-    entries = [];
-  }
-  return { get, put, getEntries, clear };
-}
-var referenceEqualityCheck = (a, b) => a === b;
-function createCacheKeyComparator(equalityCheck) {
-  return function areArgumentsShallowlyEqual(prev, next) {
-    if (prev === null || next === null || prev.length !== next.length) {
-      return false;
-    }
-    const { length } = prev;
-    for (let i = 0; i < length; i++) {
-      if (!equalityCheck(prev[i], next[i])) {
-        return false;
-      }
-    }
-    return true;
-  };
-}
-function lruMemoize(func, equalityCheckOrOptions) {
-  const providedOptions = typeof equalityCheckOrOptions === "object" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };
-  const {
-    equalityCheck = referenceEqualityCheck,
-    maxSize = 1,
-    resultEqualityCheck
-  } = providedOptions;
-  const comparator = createCacheKeyComparator(equalityCheck);
-  let resultsCount = 0;
-  const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);
-  function memoized() {
-    let value = cache.get(arguments);
-    if (value === NOT_FOUND) {
-      value = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const entries = cache.getEntries();
-        const matchingEntry = entries.find(
-          (entry) => resultEqualityCheck(entry.value, value)
-        );
-        if (matchingEntry) {
-          value = matchingEntry.value;
-          resultsCount !== 0 && resultsCount--;
-        }
-      }
-      cache.put(arguments, value);
-    }
-    return value;
-  }
-  memoized.clearCache = () => {
-    cache.clear();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/autotrackMemoize/autotrackMemoize.ts
-function autotrackMemoize(func) {
-  const node = createNode(
-    []
-  );
-  let lastArgs = null;
-  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);
-  const cache = createCache(() => {
-    const res = func.apply(null, node.proxy);
-    return res;
-  });
-  function memoized() {
-    if (!shallowEqual(lastArgs, arguments)) {
-      updateNode(node, arguments);
-      lastArgs = arguments;
-    }
-    return cache.value;
-  }
-  memoized.clearCache = () => {
-    return cache.clear();
-  };
-  return memoized;
-}
-
-// src/weakMapMemoize.ts
-var StrongRef = class {
-  constructor(value) {
-    this.value = value;
-  }
-  deref() {
-    return this.value;
-  }
-};
-var Ref = typeof WeakRef !== "undefined" ? WeakRef : StrongRef;
-var UNTERMINATED = 0;
-var TERMINATED = 1;
-function createCacheNode() {
-  return {
-    s: UNTERMINATED,
-    v: void 0,
-    o: null,
-    p: null
-  };
-}
-function weakMapMemoize(func, options = {}) {
-  let fnNode = createCacheNode();
-  const { resultEqualityCheck } = options;
-  let lastResult;
-  let resultsCount = 0;
-  function memoized() {
-    var _a, _b;
-    let cacheNode = fnNode;
-    const { length } = arguments;
-    for (let i = 0, l = length; i < l; i++) {
-      const arg = arguments[i];
-      if (typeof arg === "function" || typeof arg === "object" && arg !== null) {
-        let objectCache = cacheNode.o;
-        if (objectCache === null) {
-          cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();
-        }
-        const objectNode = objectCache.get(arg);
-        if (objectNode === void 0) {
-          cacheNode = createCacheNode();
-          objectCache.set(arg, cacheNode);
-        } else {
-          cacheNode = objectNode;
-        }
-      } else {
-        let primitiveCache = cacheNode.p;
-        if (primitiveCache === null) {
-          cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();
-        }
-        const primitiveNode = primitiveCache.get(arg);
-        if (primitiveNode === void 0) {
-          cacheNode = createCacheNode();
-          primitiveCache.set(arg, cacheNode);
-        } else {
-          cacheNode = primitiveNode;
-        }
-      }
-    }
-    const terminatedNode = cacheNode;
-    let result;
-    if (cacheNode.s === TERMINATED) {
-      result = cacheNode.v;
-    } else {
-      result = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const lastResultValue = (_b = (_a = lastResult == null ? void 0 : lastResult.deref) == null ? void 0 : _a.call(lastResult)) != null ? _b : lastResult;
-        if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {
-          result = lastResultValue;
-          resultsCount !== 0 && resultsCount--;
-        }
-        const needsWeakRef = typeof result === "object" && result !== null || typeof result === "function";
-        lastResult = needsWeakRef ? new Ref(result) : result;
-      }
-    }
-    terminatedNode.s = TERMINATED;
-    terminatedNode.v = result;
-    return result;
-  }
-  memoized.clearCache = () => {
-    fnNode = createCacheNode();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/createSelectorCreator.ts
-function createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {
-  const createSelectorCreatorOptions = typeof memoizeOrOptions === "function" ? {
-    memoize: memoizeOrOptions,
-    memoizeOptions: memoizeOptionsFromArgs
-  } : memoizeOrOptions;
-  const createSelector2 = (...createSelectorArgs) => {
-    let recomputations = 0;
-    let dependencyRecomputations = 0;
-    let lastResult;
-    let directlyPassedOptions = {};
-    let resultFunc = createSelectorArgs.pop();
-    if (typeof resultFunc === "object") {
-      directlyPassedOptions = resultFunc;
-      resultFunc = createSelectorArgs.pop();
-    }
-    assertIsFunction(
-      resultFunc,
-      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`
-    );
-    const combinedOptions = __spreadValues(__spreadValues({}, createSelectorCreatorOptions), directlyPassedOptions);
-    const {
-      memoize,
-      memoizeOptions = [],
-      argsMemoize = weakMapMemoize,
-      argsMemoizeOptions = [],
-      devModeChecks = {}
-    } = combinedOptions;
-    const finalMemoizeOptions = ensureIsArray(memoizeOptions);
-    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);
-    const dependencies = getDependencies(createSelectorArgs);
-    const memoizedResultFunc = memoize(function recomputationWrapper() {
-      recomputations++;
-      return resultFunc.apply(
-        null,
-        arguments
-      );
-    }, ...finalMemoizeOptions);
-    let firstRun = true;
-    const selector = argsMemoize(function dependenciesChecker() {
-      dependencyRecomputations++;
-      const inputSelectorResults = collectInputSelectorResults(
-        dependencies,
-        arguments
-      );
-      lastResult = memoizedResultFunc.apply(null, inputSelectorResults);
-      if (process.env.NODE_ENV !== "production") {
-        const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);
-        if (identityFunctionCheck.shouldRun) {
-          identityFunctionCheck.run(
-            resultFunc,
-            inputSelectorResults,
-            lastResult
-          );
-        }
-        if (inputStabilityCheck.shouldRun) {
-          const inputSelectorResultsCopy = collectInputSelectorResults(
-            dependencies,
-            arguments
-          );
-          inputStabilityCheck.run(
-            { inputSelectorResults, inputSelectorResultsCopy },
-            { memoize, memoizeOptions: finalMemoizeOptions },
-            arguments
-          );
-        }
-        if (firstRun)
-          firstRun = false;
-      }
-      return lastResult;
-    }, ...finalArgsMemoizeOptions);
-    return Object.assign(selector, {
-      resultFunc,
-      memoizedResultFunc,
-      dependencies,
-      dependencyRecomputations: () => dependencyRecomputations,
-      resetDependencyRecomputations: () => {
-        dependencyRecomputations = 0;
-      },
-      lastResult: () => lastResult,
-      recomputations: () => recomputations,
-      resetRecomputations: () => {
-        recomputations = 0;
-      },
-      memoize,
-      argsMemoize
-    });
-  };
-  Object.assign(createSelector2, {
-    withTypes: () => createSelector2
-  });
-  return createSelector2;
-}
-var createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);
-
-// src/createStructuredSelector.ts
-var createStructuredSelector = Object.assign(
-  (inputSelectorsObject, selectorCreator = createSelector) => {
-    assertIsObject(
-      inputSelectorsObject,
-      `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`
-    );
-    const inputSelectorKeys = Object.keys(inputSelectorsObject);
-    const dependencies = inputSelectorKeys.map(
-      (key) => inputSelectorsObject[key]
-    );
-    const structuredSelector = selectorCreator(
-      dependencies,
-      (...inputSelectorResults) => {
-        return inputSelectorResults.reduce((composition, value, index) => {
-          composition[inputSelectorKeys[index]] = value;
-          return composition;
-        }, {});
-      }
-    );
-    return structuredSelector;
-  },
-  { withTypes: () => createStructuredSelector }
-);
-export {
-  createSelector,
-  createSelectorCreator,
-  createStructuredSelector,
-  lruMemoize,
-  referenceEqualityCheck,
-  setGlobalDevModeChecks,
-  autotrackMemoize as unstable_autotrackMemoize,
-  weakMapMemoize
-};
-//# sourceMappingURL=reselect.legacy-esm.js.map
Index: de_modules/reselect/dist/reselect.legacy-esm.js.map
===================================================================
--- node_modules/reselect/dist/reselect.legacy-esm.js.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/devModeChecks/identityFunctionCheck.ts","../src/devModeChecks/inputStabilityCheck.ts","../src/devModeChecks/setGlobalDevModeChecks.ts","../src/utils.ts","../src/autotrackMemoize/autotracking.ts","../src/autotrackMemoize/tracking.ts","../src/autotrackMemoize/proxy.ts","../src/lruMemoize.ts","../src/autotrackMemoize/autotrackMemoize.ts","../src/weakMapMemoize.ts","../src/createSelectorCreator.ts","../src/createStructuredSelector.ts"],"sourcesContent":["import type { AnyFunction } from '../types'\r\n\r\n/**\r\n * Runs a check to determine if the given result function behaves as an\r\n * identity function. An identity function is one that returns its\r\n * input unchanged, for example, `x => x`. This check helps ensure\r\n * efficient memoization and prevent unnecessary re-renders by encouraging\r\n * proper use of transformation logic in result functions and\r\n * extraction logic in input selectors.\r\n *\r\n * @param resultFunc - The result function to be checked.\r\n * @param inputSelectorsResults - The results of the input selectors.\r\n * @param outputSelectorResult - The result of the output selector.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runIdentityFunctionCheck = (\r\n  resultFunc: AnyFunction,\r\n  inputSelectorsResults: unknown[],\r\n  outputSelectorResult: unknown\r\n) => {\r\n  if (\r\n    inputSelectorsResults.length === 1 &&\r\n    inputSelectorsResults[0] === outputSelectorResult\r\n  ) {\r\n    let isInputSameAsOutput = false\r\n    try {\r\n      const emptyObject = {}\r\n      if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true\r\n    } catch {\r\n      // Do nothing\r\n    }\r\n    if (isInputSameAsOutput) {\r\n      let stack: string | undefined = undefined\r\n      try {\r\n        throw new Error()\r\n      } catch (e) {\r\n        // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n        ;({ stack } = e as Error)\r\n      }\r\n      console.warn(\r\n        'The result function returned its own inputs without modification. e.g' +\r\n          '\\n`createSelector([state => state.todos], todos => todos)`' +\r\n          '\\nThis could lead to inefficient memoization and unnecessary re-renders.' +\r\n          '\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',\r\n        { stack }\r\n      )\r\n    }\r\n  }\r\n}\r\n","import type { CreateSelectorOptions, UnknownMemoizer } from '../types'\r\n\r\n/**\r\n * Runs a stability check to ensure the input selector results remain stable\r\n * when provided with the same arguments. This function is designed to detect\r\n * changes in the output of input selectors, which can impact the performance of memoized selectors.\r\n *\r\n * @param inputSelectorResultsObject - An object containing two arrays: `inputSelectorResults` and `inputSelectorResultsCopy`, representing the results of input selectors.\r\n * @param options - Options object consisting of a `memoize` function and a `memoizeOptions` object.\r\n * @param inputSelectorArgs - List of arguments being passed to the input selectors.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks/#inputstabilitycheck `inputStabilityCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runInputStabilityCheck = (\r\n  inputSelectorResultsObject: {\r\n    inputSelectorResults: unknown[]\r\n    inputSelectorResultsCopy: unknown[]\r\n  },\r\n  options: Required<\r\n    Pick<\r\n      CreateSelectorOptions<UnknownMemoizer, UnknownMemoizer>,\r\n      'memoize' | 'memoizeOptions'\r\n    >\r\n  >,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) => {\r\n  const { memoize, memoizeOptions } = options\r\n  const { inputSelectorResults, inputSelectorResultsCopy } =\r\n    inputSelectorResultsObject\r\n  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions)\r\n  // if the memoize method thinks the parameters are equal, these *should* be the same reference\r\n  const areInputSelectorResultsEqual =\r\n    createAnEmptyObject.apply(null, inputSelectorResults) ===\r\n    createAnEmptyObject.apply(null, inputSelectorResultsCopy)\r\n  if (!areInputSelectorResultsEqual) {\r\n    let stack: string | undefined = undefined\r\n    try {\r\n      throw new Error()\r\n    } catch (e) {\r\n      // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n      ;({ stack } = e as Error)\r\n    }\r\n    console.warn(\r\n      'An input selector returned a different result when passed same arguments.' +\r\n        '\\nThis means your output selector will likely run more frequently than intended.' +\r\n        '\\nAvoid returning a new reference inside your input selector, e.g.' +\r\n        '\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`',\r\n      {\r\n        arguments: inputSelectorArgs,\r\n        firstInputs: inputSelectorResults,\r\n        secondInputs: inputSelectorResultsCopy,\r\n        stack\r\n      }\r\n    )\r\n  }\r\n}\r\n","import type { DevModeChecks } from '../types'\r\n\r\n/**\r\n * Global configuration for development mode checks. This specifies the default\r\n * frequency at which each development mode check should be performed.\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const globalDevModeChecks: DevModeChecks = {\r\n  inputStabilityCheck: 'once',\r\n  identityFunctionCheck: 'once'\r\n}\r\n\r\n/**\r\n * Overrides the development mode checks settings for all selectors.\r\n *\r\n * Reselect performs additional checks in development mode to help identify and\r\n * warn about potential issues in selector behavior. This function allows you to\r\n * customize the behavior of these checks across all selectors in your application.\r\n *\r\n * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.\r\n * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}\r\n * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.\r\n *\r\n * _The development mode checks do not run in production builds._\r\n *\r\n * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.\r\n *\r\n * @example\r\n * ```ts\r\n * import { setGlobalDevModeChecks } from 'reselect'\r\n * import { DevModeChecks } from '../types'\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })\r\n *\r\n * // Never run the input stability check.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })\r\n *\r\n * // Never run the identity function check.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })\r\n * ```\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport const setGlobalDevModeChecks = (\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  Object.assign(globalDevModeChecks, devModeChecks)\r\n}\r\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n  DevModeChecks,\r\n  Selector,\r\n  SelectorArray,\r\n  DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction<FunctionType extends Function>(\r\n  func: unknown,\r\n  errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n  if (typeof func !== 'function') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject<ObjectType extends Record<string, unknown>>(\r\n  object: unknown,\r\n  errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n  if (typeof object !== 'object') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions<FunctionType extends Function>(\r\n  array: unknown[],\r\n  errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n  if (\r\n    !array.every((item): item is FunctionType => typeof item === 'function')\r\n  ) {\r\n    const itemTypes = array\r\n      .map(item =>\r\n        typeof item === 'function'\r\n          ? `function ${item.name || 'unnamed'}()`\r\n          : typeof item\r\n      )\r\n      .join(', ')\r\n    throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n  }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n  return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n  const dependencies = Array.isArray(createSelectorArgs[0])\r\n    ? createSelectorArgs[0]\r\n    : createSelectorArgs\r\n\r\n  assertIsArrayOfFunctions<Selector>(\r\n    dependencies,\r\n    `createSelector expects all input-selectors to be functions, but received the following types: `\r\n  )\r\n\r\n  return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n  dependencies: SelectorArray,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n  const inputSelectorResults = []\r\n  const { length } = dependencies\r\n  for (let i = 0; i < length; i++) {\r\n    // @ts-ignore\r\n    // apply arguments instead of spreading and mutate a local list of params for performance.\r\n    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n  }\r\n  return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns  An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n  firstRun: boolean,\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  const { identityFunctionCheck, inputStabilityCheck } = {\r\n    ...globalDevModeChecks,\r\n    ...devModeChecks\r\n  }\r\n  return {\r\n    identityFunctionCheck: {\r\n      shouldRun:\r\n        identityFunctionCheck === 'always' ||\r\n        (identityFunctionCheck === 'once' && firstRun),\r\n      run: runIdentityFunctionCheck\r\n    },\r\n    inputStabilityCheck: {\r\n      shouldRun:\r\n        inputStabilityCheck === 'always' ||\r\n        (inputStabilityCheck === 'once' && firstRun),\r\n      run: runInputStabilityCheck\r\n    }\r\n  } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original autotracking implementation source:\r\n// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9\r\n// Additional references:\r\n// - https://www.pzuraq.com/blog/how-autotracking-works\r\n// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/\r\nimport type { EqualityFn } from '../types'\r\nimport { assertIsFunction } from '../utils'\r\n\r\n// The global revision clock. Every time state changes, the clock increments.\r\nexport let $REVISION = 0\r\n\r\n// The current dependency tracker. Whenever we compute a cache, we create a Set\r\n// to track any dependencies that are used while computing. If no cache is\r\n// computing, then the tracker is null.\r\nlet CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null\r\n\r\n// Storage represents a root value in the system - the actual state of our app.\r\nexport class Cell<T> {\r\n  revision = $REVISION\r\n\r\n  _value: T\r\n  _lastValue: T\r\n  _isEqual: EqualityFn = tripleEq\r\n\r\n  constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {\r\n    this._value = this._lastValue = initialValue\r\n    this._isEqual = isEqual\r\n  }\r\n\r\n  // Whenever a storage value is read, it'll add itself to the current tracker if\r\n  // one exists, entangling its state with that cache.\r\n  get value() {\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    return this._value\r\n  }\r\n\r\n  // Whenever a storage value is updated, we bump the global revision clock,\r\n  // assign the revision for this storage to the new value, _and_ we schedule a\r\n  // rerender. This is important, and it's what makes autotracking  _pull_\r\n  // based. We don't actively tell the caches which depend on the storage that\r\n  // anything has happened. Instead, we recompute the caches when needed.\r\n  set value(newValue) {\r\n    if (this.value === newValue) return\r\n\r\n    this._value = newValue\r\n    this.revision = ++$REVISION\r\n  }\r\n}\r\n\r\nfunction tripleEq(a: unknown, b: unknown) {\r\n  return a === b\r\n}\r\n\r\n// Caches represent derived state in the system. They are ultimately functions\r\n// that are memoized based on what state they use to produce their output,\r\n// meaning they will only rerun IFF a storage value that could affect the output\r\n// has changed. Otherwise, they'll return the cached value.\r\nexport class TrackingCache {\r\n  _cachedValue: any\r\n  _cachedRevision = -1\r\n  _deps: any[] = []\r\n  hits = 0\r\n\r\n  fn: () => any\r\n\r\n  constructor(fn: () => any) {\r\n    this.fn = fn\r\n  }\r\n\r\n  clear() {\r\n    this._cachedValue = undefined\r\n    this._cachedRevision = -1\r\n    this._deps = []\r\n    this.hits = 0\r\n  }\r\n\r\n  get value() {\r\n    // When getting the value for a Cache, first we check all the dependencies of\r\n    // the cache to see what their current revision is. If the current revision is\r\n    // greater than the cached revision, then something has changed.\r\n    if (this.revision > this._cachedRevision) {\r\n      const { fn } = this\r\n\r\n      // We create a new dependency tracker for this cache. As the cache runs\r\n      // its function, any Storage or Cache instances which are used while\r\n      // computing will be added to this tracker. In the end, it will be the\r\n      // full list of dependencies that this Cache depends on.\r\n      const currentTracker = new Set<Cell<any>>()\r\n      const prevTracker = CURRENT_TRACKER\r\n\r\n      CURRENT_TRACKER = currentTracker\r\n\r\n      // try {\r\n      this._cachedValue = fn()\r\n      // } finally {\r\n      CURRENT_TRACKER = prevTracker\r\n      this.hits++\r\n      this._deps = Array.from(currentTracker)\r\n\r\n      // Set the cached revision. This is the current clock count of all the\r\n      // dependencies. If any dependency changes, this number will be less\r\n      // than the new revision.\r\n      this._cachedRevision = this.revision\r\n      // }\r\n    }\r\n\r\n    // If there is a current tracker, it means another Cache is computing and\r\n    // using this one, so we add this one to the tracker.\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    // Always return the cached value.\r\n    return this._cachedValue\r\n  }\r\n\r\n  get revision() {\r\n    // The current revision is the max of all the dependencies' revisions.\r\n    return Math.max(...this._deps.map(d => d.revision), 0)\r\n  }\r\n}\r\n\r\nexport function getValue<T>(cell: Cell<T>): T {\r\n  if (!(cell instanceof Cell)) {\r\n    console.warn('Not a valid cell! ', cell)\r\n  }\r\n\r\n  return cell.value\r\n}\r\n\r\ntype CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never\r\n\r\nexport function setValue<T extends Cell<unknown>>(\r\n  storage: T,\r\n  value: CellValue<T>\r\n): void {\r\n  if (!(storage instanceof Cell)) {\r\n    throw new TypeError(\r\n      'setValue must be passed a tracked store created with `createStorage`.'\r\n    )\r\n  }\r\n\r\n  storage.value = storage._lastValue = value\r\n}\r\n\r\nexport function createCell<T = unknown>(\r\n  initialValue: T,\r\n  isEqual: EqualityFn = tripleEq\r\n): Cell<T> {\r\n  return new Cell(initialValue, isEqual)\r\n}\r\n\r\nexport function createCache<T = unknown>(fn: () => T): TrackingCache {\r\n  assertIsFunction(\r\n    fn,\r\n    'the first parameter to `createCache` must be a function'\r\n  )\r\n\r\n  return new TrackingCache(fn)\r\n}\r\n","import type { Cell } from './autotracking'\r\nimport {\r\n  getValue as consumeTag,\r\n  createCell as createStorage,\r\n  setValue\r\n} from './autotracking'\r\n\r\nexport type Tag = Cell<unknown>\r\n\r\nconst neverEq = (a: any, b: any): boolean => false\r\n\r\nexport function createTag(): Tag {\r\n  return createStorage(null, neverEq)\r\n}\r\nexport { consumeTag }\r\nexport function dirtyTag(tag: Tag, value: any): void {\r\n  setValue(tag, value)\r\n}\r\n\r\nexport interface Node<\r\n  T extends Array<unknown> | Record<string, unknown> =\r\n    | Array<unknown>\r\n    | Record<string, unknown>\r\n> {\r\n  collectionTag: Tag | null\r\n  tag: Tag | null\r\n  tags: Record<string, Tag>\r\n  children: Record<string, Node>\r\n  proxy: T\r\n  value: T\r\n  id: number\r\n}\r\n\r\nexport const consumeCollection = (node: Node): void => {\r\n  let tag = node.collectionTag\r\n\r\n  if (tag === null) {\r\n    tag = node.collectionTag = createTag()\r\n  }\r\n\r\n  consumeTag(tag)\r\n}\r\n\r\nexport const dirtyCollection = (node: Node): void => {\r\n  const tag = node.collectionTag\r\n\r\n  if (tag !== null) {\r\n    dirtyTag(tag, null)\r\n  }\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n  consumeCollection,\r\n  consumeTag,\r\n  createTag,\r\n  dirtyCollection,\r\n  dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {\r\n  proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {} as Record<string, Tag>\r\n  children = {} as Record<string, Node>\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n  get(node: Node, key: string | symbol): unknown {\r\n    function calculateResult() {\r\n      const { value } = node\r\n\r\n      const childValue = Reflect.get(value, key)\r\n\r\n      if (typeof key === 'symbol') {\r\n        return childValue\r\n      }\r\n\r\n      if (key in proto) {\r\n        return childValue\r\n      }\r\n\r\n      if (typeof childValue === 'object' && childValue !== null) {\r\n        let childNode = node.children[key]\r\n\r\n        if (childNode === undefined) {\r\n          childNode = node.children[key] = createNode(childValue)\r\n        }\r\n\r\n        if (childNode.tag) {\r\n          consumeTag(childNode.tag)\r\n        }\r\n\r\n        return childNode.proxy\r\n      } else {\r\n        let tag = node.tags[key]\r\n\r\n        if (tag === undefined) {\r\n          tag = node.tags[key] = createTag()\r\n          tag.value = childValue\r\n        }\r\n\r\n        consumeTag(tag)\r\n\r\n        return childValue\r\n      }\r\n    }\r\n    const res = calculateResult()\r\n    return res\r\n  },\r\n\r\n  ownKeys(node: Node): ArrayLike<string | symbol> {\r\n    consumeCollection(node)\r\n    return Reflect.ownKeys(node.value)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    node: Node,\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n  },\r\n\r\n  has(node: Node, prop: string | symbol): boolean {\r\n    return Reflect.has(node.value, prop)\r\n  }\r\n}\r\n\r\nclass ArrayTreeNode<T extends Array<unknown>> implements Node<T> {\r\n  proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {}\r\n  children = {}\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n  get([node]: [Node], key: string | symbol): unknown {\r\n    if (key === 'length') {\r\n      consumeCollection(node)\r\n    }\r\n\r\n    return objectProxyHandler.get(node, key)\r\n  },\r\n\r\n  ownKeys([node]: [Node]): ArrayLike<string | symbol> {\r\n    return objectProxyHandler.ownKeys(node)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    [node]: [Node],\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n  },\r\n\r\n  has([node]: [Node], prop: string | symbol): boolean {\r\n    return objectProxyHandler.has(node, prop)\r\n  }\r\n}\r\n\r\nexport function createNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  value: T\r\n): Node<T> {\r\n  if (Array.isArray(value)) {\r\n    return new ArrayTreeNode(value)\r\n  }\r\n\r\n  return new ObjectTreeNode(value) as Node<T>\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n  Array<unknown> | Record<string, unknown>,\r\n  Set<string>\r\n>()\r\n\r\nexport function updateNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  node: Node<T>,\r\n  newValue: T\r\n): void {\r\n  const { value, tags, children } = node\r\n\r\n  node.value = newValue\r\n\r\n  if (\r\n    Array.isArray(value) &&\r\n    Array.isArray(newValue) &&\r\n    value.length !== newValue.length\r\n  ) {\r\n    dirtyCollection(node)\r\n  } else {\r\n    if (value !== newValue) {\r\n      let oldKeysSize = 0\r\n      let newKeysSize = 0\r\n      let anyKeysAdded = false\r\n\r\n      for (const _key in value) {\r\n        oldKeysSize++\r\n      }\r\n\r\n      for (const key in newValue) {\r\n        newKeysSize++\r\n        if (!(key in value)) {\r\n          anyKeysAdded = true\r\n          break\r\n        }\r\n      }\r\n\r\n      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n      if (isDifferent) {\r\n        dirtyCollection(node)\r\n      }\r\n    }\r\n  }\r\n\r\n  for (const key in tags) {\r\n    const childValue = (value as Record<string, unknown>)[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    if (childValue !== newChildValue) {\r\n      dirtyCollection(node)\r\n      dirtyTag(tags[key], newChildValue)\r\n    }\r\n\r\n    if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      delete tags[key]\r\n    }\r\n  }\r\n\r\n  for (const key in children) {\r\n    const childNode = children[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    const childValue = childNode.value\r\n\r\n    if (childValue === newChildValue) {\r\n      continue\r\n    } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      updateNode(childNode, newChildValue as Record<string, unknown>)\r\n    } else {\r\n      deleteNode(childNode)\r\n      delete children[key]\r\n    }\r\n  }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n  if (node.tag) {\r\n    dirtyTag(node.tag, null)\r\n  }\r\n  dirtyCollection(node)\r\n  for (const key in node.tags) {\r\n    dirtyTag(node.tags[key], null)\r\n  }\r\n  for (const key in node.children) {\r\n    deleteNode(node.children[key])\r\n  }\r\n}\r\n","import type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nimport type { NOT_FOUND_TYPE } from './utils'\r\nimport { NOT_FOUND } from './utils'\r\n\r\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\r\n// https://github.com/erikras/lru-memoize\r\n\r\ninterface Entry {\r\n  key: unknown\r\n  value: unknown\r\n}\r\n\r\ninterface Cache {\r\n  get(key: unknown): unknown | NOT_FOUND_TYPE\r\n  put(key: unknown, value: unknown): void\r\n  getEntries(): Entry[]\r\n  clear(): void\r\n}\r\n\r\nfunction createSingletonCache(equals: EqualityFn): Cache {\r\n  let entry: Entry | undefined\r\n  return {\r\n    get(key: unknown) {\r\n      if (entry && equals(entry.key, key)) {\r\n        return entry.value\r\n      }\r\n\r\n      return NOT_FOUND\r\n    },\r\n\r\n    put(key: unknown, value: unknown) {\r\n      entry = { key, value }\r\n    },\r\n\r\n    getEntries() {\r\n      return entry ? [entry] : []\r\n    },\r\n\r\n    clear() {\r\n      entry = undefined\r\n    }\r\n  }\r\n}\r\n\r\nfunction createLruCache(maxSize: number, equals: EqualityFn): Cache {\r\n  let entries: Entry[] = []\r\n\r\n  function get(key: unknown) {\r\n    const cacheIndex = entries.findIndex(entry => equals(key, entry.key))\r\n\r\n    // We found a cached entry\r\n    if (cacheIndex > -1) {\r\n      const entry = entries[cacheIndex]\r\n\r\n      // Cached entry not at top of cache, move it to the top\r\n      if (cacheIndex > 0) {\r\n        entries.splice(cacheIndex, 1)\r\n        entries.unshift(entry)\r\n      }\r\n\r\n      return entry.value\r\n    }\r\n\r\n    // No entry found in cache, return sentinel\r\n    return NOT_FOUND\r\n  }\r\n\r\n  function put(key: unknown, value: unknown) {\r\n    if (get(key) === NOT_FOUND) {\r\n      // TODO Is unshift slow?\r\n      entries.unshift({ key, value })\r\n      if (entries.length > maxSize) {\r\n        entries.pop()\r\n      }\r\n    }\r\n  }\r\n\r\n  function getEntries() {\r\n    return entries\r\n  }\r\n\r\n  function clear() {\r\n    entries = []\r\n  }\r\n\r\n  return { get, put, getEntries, clear }\r\n}\r\n\r\n/**\r\n * Runs a simple reference equality check.\r\n * What {@linkcode lruMemoize lruMemoize} uses by default.\r\n *\r\n * **Note**: This function was previously known as `defaultEqualityCheck`.\r\n *\r\n * @public\r\n */\r\nexport const referenceEqualityCheck: EqualityFn = (a, b) => a === b\r\n\r\nexport function createCacheKeyComparator(equalityCheck: EqualityFn) {\r\n  return function areArgumentsShallowlyEqual(\r\n    prev: unknown[] | IArguments | null,\r\n    next: unknown[] | IArguments | null\r\n  ): boolean {\r\n    if (prev === null || next === null || prev.length !== next.length) {\r\n      return false\r\n    }\r\n\r\n    // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\r\n    const { length } = prev\r\n    for (let i = 0; i < length; i++) {\r\n      if (!equalityCheck(prev[i], next[i])) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n}\r\n\r\n/**\r\n * Options for configuring the behavior of a function memoized with\r\n * LRU (Least Recently Used) caching.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @public\r\n */\r\nexport interface LruMemoizeOptions<Result = any> {\r\n  /**\r\n   * Function used to compare the individual arguments of the\r\n   * provided calculation function.\r\n   *\r\n   * @default referenceEqualityCheck\r\n   */\r\n  equalityCheck?: EqualityFn\r\n\r\n  /**\r\n   * If provided, used to compare a newly generated output value against\r\n   * previous values in the cache. If a match is found,\r\n   * the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes\r\n   * a recalculation due to changed references, but the output is still\r\n   * effectively the same.\r\n   *\r\n   * @since 4.1.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n\r\n  /**\r\n   * The maximum size of the cache used by the selector.\r\n   * A size greater than 1 means the selector will use an\r\n   * LRU (Least Recently Used) cache, allowing for the caching of multiple\r\n   * results based on different sets of arguments.\r\n   *\r\n   * @default 1\r\n   */\r\n  maxSize?: number\r\n}\r\n\r\n/**\r\n * Creates a memoized version of a function with an optional\r\n * LRU (Least Recently Used) cache. The memoized function uses a cache to\r\n * store computed values. Depending on the `maxSize` option, it will use\r\n * either a singleton cache (for a single entry) or an\r\n * LRU cache (for multiple entries).\r\n *\r\n * **Note**: This function was previously known as `defaultMemoize`.\r\n *\r\n * @param func - The function to be memoized.\r\n * @param equalityCheckOrOptions - Either an equality check function or an options object.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}\r\n *\r\n * @public\r\n */\r\nexport function lruMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>\r\n) {\r\n  const providedOptions =\r\n    typeof equalityCheckOrOptions === 'object'\r\n      ? equalityCheckOrOptions\r\n      : { equalityCheck: equalityCheckOrOptions }\r\n\r\n  const {\r\n    equalityCheck = referenceEqualityCheck,\r\n    maxSize = 1,\r\n    resultEqualityCheck\r\n  } = providedOptions\r\n\r\n  const comparator = createCacheKeyComparator(equalityCheck)\r\n\r\n  let resultsCount = 0\r\n\r\n  const cache =\r\n    maxSize <= 1\r\n      ? createSingletonCache(comparator)\r\n      : createLruCache(maxSize, comparator)\r\n\r\n  function memoized() {\r\n    let value = cache.get(arguments) as ReturnType<Func>\r\n    if (value === NOT_FOUND) {\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      value = func.apply(null, arguments) as ReturnType<Func>\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const entries = cache.getEntries()\r\n        const matchingEntry = entries.find(entry =>\r\n          resultEqualityCheck(entry.value as ReturnType<Func>, value)\r\n        )\r\n\r\n        if (matchingEntry) {\r\n          value = matchingEntry.value as ReturnType<Func>\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n      }\r\n\r\n      cache.put(arguments, value)\r\n    }\r\n    return value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    cache.clear()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { createNode, updateNode } from './proxy'\r\nimport type { Node } from './tracking'\r\n\r\nimport { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'\r\nimport type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'\r\nimport { createCache } from './autotracking'\r\n\r\n/**\r\n * Uses an \"auto-tracking\" approach inspired by the work of the Ember Glimmer team.\r\n * It uses a Proxy to wrap arguments and track accesses to nested fields\r\n * in your selector on first read. Later, when the selector is called with\r\n * new arguments, it identifies which accessed fields have changed and\r\n * only recalculates the result if one or more of those accessed fields have changed.\r\n * This allows it to be more precise than the shallow equality checks in `lruMemoize`.\r\n *\r\n * __Design Tradeoffs for `autotrackMemoize`:__\r\n * - Pros:\r\n *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,\r\n *    which may also result in fewer component re-renders.\r\n * - Cons:\r\n *    - It only has a cache size of 1.\r\n *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)\r\n *    - It can have some unexpected behavior. Because it tracks nested field accesses,\r\n *    cases where you don't access a field will not recalculate properly.\r\n *    For example, a badly-written selector like:\r\n *      ```ts\r\n *      createSelector([state => state.todos], todos => todos)\r\n *      ```\r\n *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.\r\n *\r\n * __Use Cases for `autotrackMemoize`:__\r\n * - It is likely best used for cases where you need to access specific nested fields\r\n * in data, and avoid recalculating if other fields in the same data objects are immutably updated.\r\n *\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'\r\n *\r\n * const selectTodoIds = createSelector(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id),\r\n *   { memoize: autotrackMemoize }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'\r\n *\r\n * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })\r\n *\r\n * const selectTodoIds = createSelectorAutotrack(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function autotrackMemoize<Func extends AnyFunction>(func: Func) {\r\n  // we reference arguments instead of spreading them for performance reasons\r\n\r\n  const node: Node<Record<string, unknown>> = createNode(\r\n    [] as unknown as Record<string, unknown>\r\n  )\r\n\r\n  let lastArgs: IArguments | null = null\r\n\r\n  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)\r\n\r\n  const cache = createCache(() => {\r\n    const res = func.apply(null, node.proxy as unknown as any[])\r\n    return res\r\n  })\r\n\r\n  function memoized() {\r\n    if (!shallowEqual(lastArgs, arguments)) {\r\n      updateNode(node, arguments as unknown as Record<string, unknown>)\r\n      lastArgs = arguments\r\n    }\r\n    return cache.value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    return cache.clear()\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nclass StrongRef<T> {\r\n  constructor(private value: T) {}\r\n  deref() {\r\n    return this.value\r\n  }\r\n}\r\n\r\nconst Ref =\r\n  typeof WeakRef !== 'undefined'\r\n    ? WeakRef\r\n    : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 0\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: void\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular Map where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ninterface TerminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 1\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: T\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ntype CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>\r\n\r\nfunction createCacheNode<T>(): CacheNode<T> {\r\n  return {\r\n    s: UNTERMINATED,\r\n    v: undefined,\r\n    o: null,\r\n    p: null\r\n  }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions<Result = any> {\r\n  /**\r\n   * If provided, used to compare a newly generated output value against previous values in the cache.\r\n   * If a match is found, the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes a recalculation\r\n   * due to changed references, but the output is still effectively the same.\r\n   *\r\n   * @since 5.0.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n *   - It has an effectively infinite cache size, but you have no control over\r\n *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n *   - There's currently no way to alter the argument comparisons.\r\n *   They're based on strict reference equality.\r\n *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n *   ```ts\r\n *   useSelector(state => selectSomeData(state, props.category))\r\n *   ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category),\r\n *   {\r\n *     memoize: weakMapMemoize,\r\n *     argsMemoize: weakMapMemoize\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  options: WeakMapMemoizeOptions<ReturnType<Func>> = {}\r\n) {\r\n  let fnNode = createCacheNode()\r\n  const { resultEqualityCheck } = options\r\n\r\n  let lastResult: WeakRef<object> | undefined\r\n\r\n  let resultsCount = 0\r\n\r\n  function memoized() {\r\n    let cacheNode = fnNode\r\n    const { length } = arguments\r\n    for (let i = 0, l = length; i < l; i++) {\r\n      const arg = arguments[i]\r\n      if (\r\n        typeof arg === 'function' ||\r\n        (typeof arg === 'object' && arg !== null)\r\n      ) {\r\n        // Objects go into a WeakMap\r\n        let objectCache = cacheNode.o\r\n        if (objectCache === null) {\r\n          cacheNode.o = objectCache = new WeakMap()\r\n        }\r\n        const objectNode = objectCache.get(arg)\r\n        if (objectNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          objectCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = objectNode\r\n        }\r\n      } else {\r\n        // Primitives go into a regular Map\r\n        let primitiveCache = cacheNode.p\r\n        if (primitiveCache === null) {\r\n          cacheNode.p = primitiveCache = new Map()\r\n        }\r\n        const primitiveNode = primitiveCache.get(arg)\r\n        if (primitiveNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          primitiveCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = primitiveNode\r\n        }\r\n      }\r\n    }\r\n\r\n    const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>\r\n\r\n    let result\r\n\r\n    if (cacheNode.s === TERMINATED) {\r\n      result = cacheNode.v\r\n    } else {\r\n      // Allow errors to propagate\r\n      result = func.apply(null, arguments as unknown as any[])\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n        if (\r\n          lastResultValue != null &&\r\n          resultEqualityCheck(lastResultValue as ReturnType<Func>, result)\r\n        ) {\r\n          result = lastResultValue\r\n\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n\r\n        const needsWeakRef =\r\n          (typeof result === 'object' && result !== null) ||\r\n          typeof result === 'function'\r\n\r\n        lastResult = needsWeakRef ? new Ref(result) : result\r\n      }\r\n    }\r\n\r\n    terminatedNode.s = TERMINATED\r\n\r\n    terminatedNode.v = result\r\n    return result\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    fnNode = createCacheNode()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n  Combiner,\r\n  CreateSelectorOptions,\r\n  DropFirstParameter,\r\n  ExtractMemoizerFields,\r\n  GetParamsFromSelectors,\r\n  GetStateFromSelectors,\r\n  InterruptRecursion,\r\n  OutputSelector,\r\n  Selector,\r\n  SelectorArray,\r\n  SetRequired,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n  assertIsFunction,\r\n  collectInputSelectorResults,\r\n  ensureIsArray,\r\n  getDependencies,\r\n  getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  StateType = any\r\n> {\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <InputSelectors extends SelectorArray<StateType>, Result>(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions: Simplify<\r\n        CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n      >\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param inputSelectors - An array of input selectors.\r\n   * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n   * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    inputSelectors: [...InputSelectors],\r\n    combiner: Combiner<InputSelectors, Result>,\r\n    createSelectorOptions?: Simplify<\r\n      CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    >\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every {@linkcode createSelector createSelector} call.\r\n   *\r\n   * @returns A pre-typed `createSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createAppSelector = createSelector.withTypes<RootState>()\r\n   *\r\n   * const selectTodoIds = createAppSelector(\r\n   *   [\r\n   *     // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *     state => state.todos\r\n   *   ],\r\n   *   todos => todos.map(({ id }) => id)\r\n   * )\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction,\r\n    OverrideStateType\r\n  >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n *   memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n *   ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n  options: Simplify<\r\n    SetRequired<\r\n      CreateSelectorOptions<\r\n        typeof weakMapMemoize,\r\n        typeof weakMapMemoize,\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >,\r\n      'memoize'\r\n    >\r\n  >\r\n): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n *   option1, // Will be passed as second argument to `customMemoize`\r\n *   option2, // Will be passed as third argument to `customMemoize`\r\n *   option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(\r\n  memoize: MemoizeFunction,\r\n  ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>\r\n): CreateSelectorFunction<MemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer,\r\n  MemoizeOrOptions extends\r\n    | MemoizeFunction\r\n    | SetRequired<\r\n        CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n        'memoize'\r\n      >\r\n>(\r\n  memoizeOrOptions: MemoizeOrOptions,\r\n  ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  >\r\n    ? never\r\n    : DropFirstParameter<MemoizeFunction>\r\n) {\r\n  /** options initially passed into `createSelectorCreator`. */\r\n  const createSelectorCreatorOptions: SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  > = typeof memoizeOrOptions === 'function'\r\n    ? {\r\n        memoize: memoizeOrOptions as MemoizeFunction,\r\n        memoizeOptions: memoizeOptionsFromArgs\r\n      }\r\n    : memoizeOrOptions\r\n\r\n  const createSelector = <\r\n    InputSelectors extends SelectorArray,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: [...InputSelectors],\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions?: CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    ]\r\n  ) => {\r\n    let recomputations = 0\r\n    let dependencyRecomputations = 0\r\n    let lastResult: Result\r\n\r\n    // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n    // So, start by declaring the default value here.\r\n    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n    let directlyPassedOptions: CreateSelectorOptions<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    > = {}\r\n\r\n    // Normally, the result func or \"combiner\" is the last arg\r\n    let resultFunc = createSelectorArgs.pop() as\r\n      | Combiner<InputSelectors, Result>\r\n      | CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n\r\n    // If the result func is actually an _object_, assume it's our options object\r\n    if (typeof resultFunc === 'object') {\r\n      directlyPassedOptions = resultFunc\r\n      // and pop the real result func off\r\n      resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>\r\n    }\r\n\r\n    assertIsFunction(\r\n      resultFunc,\r\n      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n    )\r\n\r\n    // Determine which set of options we're using. Prefer options passed directly,\r\n    // but fall back to options given to `createSelectorCreator`.\r\n    const combinedOptions = {\r\n      ...createSelectorCreatorOptions,\r\n      ...directlyPassedOptions\r\n    }\r\n\r\n    const {\r\n      memoize,\r\n      memoizeOptions = [],\r\n      argsMemoize = weakMapMemoize,\r\n      argsMemoizeOptions = [],\r\n      devModeChecks = {}\r\n    } = combinedOptions\r\n\r\n    // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n    // is an array. In most libs I've looked at, it's an equality function or options object.\r\n    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n    // we wrap it in an array so we can apply it.\r\n    const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n    const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n    const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n      recomputations++\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      return (resultFunc as Combiner<InputSelectors, Result>).apply(\r\n        null,\r\n        arguments as unknown as Parameters<Combiner<InputSelectors, Result>>\r\n      )\r\n    }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &\r\n      ExtractMemoizerFields<OverrideMemoizeFunction>\r\n\r\n    let firstRun = true\r\n\r\n    // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n    const selector = argsMemoize(function dependenciesChecker() {\r\n      dependencyRecomputations++\r\n      /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n      const inputSelectorResults = collectInputSelectorResults(\r\n        dependencies,\r\n        arguments\r\n      )\r\n\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        const { identityFunctionCheck, inputStabilityCheck } =\r\n          getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n        if (identityFunctionCheck.shouldRun) {\r\n          identityFunctionCheck.run(\r\n            resultFunc as Combiner<InputSelectors, Result>,\r\n            inputSelectorResults,\r\n            lastResult\r\n          )\r\n        }\r\n\r\n        if (inputStabilityCheck.shouldRun) {\r\n          // make a second copy of the params, to check if we got the same results\r\n          const inputSelectorResultsCopy = collectInputSelectorResults(\r\n            dependencies,\r\n            arguments\r\n          )\r\n\r\n          inputStabilityCheck.run(\r\n            { inputSelectorResults, inputSelectorResultsCopy },\r\n            { memoize, memoizeOptions: finalMemoizeOptions },\r\n            arguments\r\n          )\r\n        }\r\n\r\n        if (firstRun) firstRun = false\r\n      }\r\n\r\n      return lastResult\r\n    }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n      GetStateFromSelectors<InputSelectors>,\r\n      Result,\r\n      GetParamsFromSelectors<InputSelectors>\r\n    > &\r\n      ExtractMemoizerFields<OverrideArgsMemoizeFunction>\r\n\r\n    return Object.assign(selector, {\r\n      resultFunc,\r\n      memoizedResultFunc,\r\n      dependencies,\r\n      dependencyRecomputations: () => dependencyRecomputations,\r\n      resetDependencyRecomputations: () => {\r\n        dependencyRecomputations = 0\r\n      },\r\n      lastResult: () => lastResult,\r\n      recomputations: () => recomputations,\r\n      resetRecomputations: () => {\r\n        recomputations = 0\r\n      },\r\n      memoize,\r\n      argsMemoize\r\n    }) as OutputSelector<\r\n      InputSelectors,\r\n      Result,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    >\r\n  }\r\n\r\n  Object.assign(createSelector, {\r\n    withTypes: () => createSelector\r\n  })\r\n\r\n  return createSelector as CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n  /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n  InterruptRecursion,\r\n  ObjectValuesToTuple,\r\n  OutputSelector,\r\n  Selector,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap<TObject extends SelectorsObject> = {\r\n  [Key in keyof TObject]: ReturnType<TObject[Key]>\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors<RootState = any> = {\r\n  [Key in keyof RootState]: Selector<RootState, RootState[Key], []>\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator<RootState = any> =\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ) => OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject<StateType = any> = Record<\r\n  string,\r\n  Selector<StateType>\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator<StateType = any> {\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends SelectorsObject<StateType>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ): OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of\r\n   * {@linkcode createStructuredSelector createStructuredSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every\r\n   * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n   *\r\n   * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createStructuredSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createStructuredAppSelector =\r\n   *   createStructuredSelector.withTypes<RootState>()\r\n   *\r\n   * const structuredAppSelector = createStructuredAppSelector({\r\n   *   // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *   todos: state => state.todos,\r\n   *   alerts: state => state.alerts,\r\n   *   todoById: (state, id: number) => state.todos[id]\r\n   * })\r\n   *\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <\r\n    OverrideStateType extends StateType\r\n  >() => StructuredSelectorCreator<OverrideStateType>\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   todos: {\r\n *     id: number\r\n *     completed: boolean\r\n *     title: string\r\n *     description: string\r\n *   }[]\r\n *   alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n *   {\r\n *     todos: (state: RootState) => state.todos,\r\n *     alerts: (state: RootState) => state.alerts,\r\n *     todoById: (state: RootState, id: number) => state.todos[id]\r\n *   },\r\n *   createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n *   [\r\n *     (state: RootState) => state.todos,\r\n *     (state: RootState) => state.alerts,\r\n *     (state: RootState, id: number) => state.todos[id]\r\n *   ],\r\n *   (todos, alerts, todoById) => {\r\n *     return {\r\n *       todos,\r\n *       alerts,\r\n *       todoById\r\n *     }\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n  Object.assign(\r\n    <\r\n      InputSelectorsObject extends SelectorsObject,\r\n      MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n      ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n    >(\r\n      inputSelectorsObject: InputSelectorsObject,\r\n      selectorCreator: CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      > = createSelector as CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >\r\n    ) => {\r\n      assertIsObject(\r\n        inputSelectorsObject,\r\n        'createStructuredSelector expects first argument to be an object ' +\r\n          `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n      )\r\n      const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n      const dependencies = inputSelectorKeys.map(\r\n        key => inputSelectorsObject[key]\r\n      )\r\n      const structuredSelector = selectorCreator(\r\n        dependencies,\r\n        (...inputSelectorResults: any[]) => {\r\n          return inputSelectorResults.reduce((composition, value, index) => {\r\n            composition[inputSelectorKeys[index]] = value\r\n            return composition\r\n          }, {})\r\n        }\r\n      )\r\n      return structuredSelector\r\n    },\r\n    { withTypes: () => createStructuredSelector }\r\n  ) as StructuredSelectorCreator\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBO,IAAM,2BAA2B,CACtC,YACA,uBACA,yBACG;AACH,MACE,sBAAsB,WAAW,KACjC,sBAAsB,CAAC,MAAM,sBAC7B;AACA,QAAI,sBAAsB;AAC1B,QAAI;AACF,YAAM,cAAc,CAAC;AACrB,UAAI,WAAW,WAAW,MAAM;AAAa,8BAAsB;AAAA,IACrE,SAAQ,GAAN;AAAA,IAEF;AACA,QAAI,qBAAqB;AACvB,UAAI,QAA4B;AAChC,UAAI;AACF,cAAM,IAAI,MAAM;AAAA,MAClB,SAAS,GAAP;AAEA;AAAC,SAAC,EAAE,MAAM,IAAI;AAAA,MAChB;AACA,cAAQ;AAAA,QACN;AAAA,QAIA,EAAE,MAAM;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;ACpCO,IAAM,yBAAyB,CACpC,4BAIA,SAMA,sBACG;AACH,QAAM,EAAE,SAAS,eAAe,IAAI;AACpC,QAAM,EAAE,sBAAsB,yBAAyB,IACrD;AACF,QAAM,sBAAsB,QAAQ,OAAO,CAAC,IAAI,GAAG,cAAc;AAEjE,QAAM,+BACJ,oBAAoB,MAAM,MAAM,oBAAoB,MACpD,oBAAoB,MAAM,MAAM,wBAAwB;AAC1D,MAAI,CAAC,8BAA8B;AACjC,QAAI,QAA4B;AAChC,QAAI;AACF,YAAM,IAAI,MAAM;AAAA,IAClB,SAAS,GAAP;AAEA;AAAC,OAAC,EAAE,MAAM,IAAI;AAAA,IAChB;AACA,YAAQ;AAAA,MACN;AAAA,MAIA;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACjDO,IAAM,sBAAqC;AAAA,EAChD,qBAAqB;AAAA,EACrB,uBAAuB;AACzB;AA8CO,IAAM,yBAAyB,CACpC,kBACG;AACH,SAAO,OAAO,qBAAqB,aAAa;AAClD;;;ACnDO,IAAM,YAA4B,uBAAO,WAAW;AAWpD,SAAS,iBACd,MACA,eAAe,yCAAyC,OAAO,QACjC;AAC9B,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,eACd,QACA,eAAe,wCAAwC,OAAO,UAChC;AAC9B,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,yBACd,OACA,eAAe,8EACkB;AACjC,MACE,CAAC,MAAM,MAAM,CAAC,SAA+B,OAAO,SAAS,UAAU,GACvE;AACA,UAAM,YAAY,MACf;AAAA,MAAI,UACH,OAAO,SAAS,aACZ,YAAY,KAAK,QAAQ,gBACzB,OAAO;AAAA,IACb,EACC,KAAK,IAAI;AACZ,UAAM,IAAI,UAAU,GAAG,gBAAgB,YAAY;AAAA,EACrD;AACF;AASO,IAAM,gBAAgB,CAAC,SAAkB;AAC9C,SAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC3C;AASO,SAAS,gBAAgB,oBAA+B;AAC7D,QAAM,eAAe,MAAM,QAAQ,mBAAmB,CAAC,CAAC,IACpD,mBAAmB,CAAC,IACpB;AAEJ;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,4BACd,cACA,mBACA;AACA,QAAM,uBAAuB,CAAC;AAC9B,QAAM,EAAE,OAAO,IAAI;AACnB,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAG/B,yBAAqB,KAAK,aAAa,CAAC,EAAE,MAAM,MAAM,iBAAiB,CAAC;AAAA,EAC1E;AACA,SAAO;AACT;AASO,IAAM,gCAAgC,CAC3C,UACA,kBACG;AACH,QAAM,EAAE,uBAAuB,oBAAoB,IAAI,kCAClD,sBACA;AAEL,SAAO;AAAA,IACL,uBAAuB;AAAA,MACrB,WACE,0BAA0B,YACzB,0BAA0B,UAAU;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,IACA,qBAAqB;AAAA,MACnB,WACE,wBAAwB,YACvB,wBAAwB,UAAU;AAAA,MACrC,KAAK;AAAA,IACP;AAAA,EACF;AACF;;;AClJO,IAAI,YAAY;AAKvB,IAAI,kBAAyD;AAGtD,IAAM,OAAN,MAAc;AAAA,EAOnB,YAAY,cAAiB,UAAsB,UAAU;AAN7D,oCAAW;AAEX;AACA;AACA,oCAAuB;AAGrB,SAAK,SAAS,KAAK,aAAa;AAChC,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,uDAAiB,IAAI;AAErB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,MAAM,UAAU;AAClB,QAAI,KAAK,UAAU;AAAU;AAE7B,SAAK,SAAS;AACd,SAAK,WAAW,EAAE;AAAA,EACpB;AACF;AAEA,SAAS,SAAS,GAAY,GAAY;AACxC,SAAO,MAAM;AACf;AAMO,IAAM,gBAAN,MAAoB;AAAA,EAQzB,YAAY,IAAe;AAP3B;AACA,2CAAkB;AAClB,iCAAe,CAAC;AAChB,gCAAO;AAEP;AAGE,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,QAAQ;AACN,SAAK,eAAe;AACpB,SAAK,kBAAkB;AACvB,SAAK,QAAQ,CAAC;AACd,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ;AAIV,QAAI,KAAK,WAAW,KAAK,iBAAiB;AACxC,YAAM,EAAE,GAAG,IAAI;AAMf,YAAM,iBAAiB,oBAAI,IAAe;AAC1C,YAAM,cAAc;AAEpB,wBAAkB;AAGlB,WAAK,eAAe,GAAG;AAEvB,wBAAkB;AAClB,WAAK;AACL,WAAK,QAAQ,MAAM,KAAK,cAAc;AAKtC,WAAK,kBAAkB,KAAK;AAAA,IAE9B;AAIA,uDAAiB,IAAI;AAGrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW;AAEb,WAAO,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,OAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,EACvD;AACF;AAEO,SAAS,SAAY,MAAkB;AAC5C,MAAI,EAAE,gBAAgB,OAAO;AAC3B,YAAQ,KAAK,sBAAsB,IAAI;AAAA,EACzC;AAEA,SAAO,KAAK;AACd;AAIO,SAAS,SACd,SACA,OACM;AACN,MAAI,EAAE,mBAAmB,OAAO;AAC9B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,QAAQ,QAAQ,aAAa;AACvC;AAEO,SAAS,WACd,cACA,UAAsB,UACb;AACT,SAAO,IAAI,KAAK,cAAc,OAAO;AACvC;AAEO,SAAS,YAAyB,IAA4B;AACnE;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO,IAAI,cAAc,EAAE;AAC7B;;;ACrJA,IAAM,UAAU,CAAC,GAAQ,MAAoB;AAEtC,SAAS,YAAiB;AAC/B,SAAO,WAAc,MAAM,OAAO;AACpC;AAEO,SAAS,SAAS,KAAU,OAAkB;AACnD,WAAS,KAAK,KAAK;AACrB;AAgBO,IAAM,oBAAoB,CAAC,SAAqB;AACrD,MAAI,MAAM,KAAK;AAEf,MAAI,QAAQ,MAAM;AAChB,UAAM,KAAK,gBAAgB,UAAU;AAAA,EACvC;AAEA,WAAW,GAAG;AAChB;AAEO,IAAM,kBAAkB,CAAC,SAAqB;AACnD,QAAM,MAAM,KAAK;AAEjB,MAAI,QAAQ,MAAM;AAChB,aAAS,KAAK,IAAI;AAAA,EACpB;AACF;;;ACrCO,IAAM,oBAAoB,OAAO;AAExC,IAAI,SAAS;AAEb,IAAM,QAAQ,OAAO,eAAe,CAAC,CAAC;AAEtC,IAAM,iBAAN,MAA2E;AAAA,EAQzE,YAAmB,OAAU;AAAV;AAPnB,iCAAW,IAAI,MAAM,MAAM,kBAAkB;AAC7C,+BAAM,UAAU;AAChB,gCAAO,CAAC;AACR,oCAAW,CAAC;AACZ,yCAAgB;AAChB,8BAAK;AAGH,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AACF;AAEA,IAAM,qBAAqB;AAAA,EACzB,IAAI,MAAY,KAA+B;AAC7C,aAAS,kBAAkB;AACzB,YAAM,EAAE,MAAM,IAAI;AAElB,YAAM,aAAa,QAAQ,IAAI,OAAO,GAAG;AAEzC,UAAI,OAAO,QAAQ,UAAU;AAC3B,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,OAAO;AAChB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,eAAe,YAAY,eAAe,MAAM;AACzD,YAAI,YAAY,KAAK,SAAS,GAAG;AAEjC,YAAI,cAAc,QAAW;AAC3B,sBAAY,KAAK,SAAS,GAAG,IAAI,WAAW,UAAU;AAAA,QACxD;AAEA,YAAI,UAAU,KAAK;AACjB,mBAAW,UAAU,GAAG;AAAA,QAC1B;AAEA,eAAO,UAAU;AAAA,MACnB,OAAO;AACL,YAAI,MAAM,KAAK,KAAK,GAAG;AAEvB,YAAI,QAAQ,QAAW;AACrB,gBAAM,KAAK,KAAK,GAAG,IAAI,UAAU;AACjC,cAAI,QAAQ;AAAA,QACd;AAEA,iBAAW,GAAG;AAEd,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,MAAM,gBAAgB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAwC;AAC9C,sBAAkB,IAAI;AACtB,WAAO,QAAQ,QAAQ,KAAK,KAAK;AAAA,EACnC;AAAA,EAEA,yBACE,MACA,MACgC;AAChC,WAAO,QAAQ,yBAAyB,KAAK,OAAO,IAAI;AAAA,EAC1D;AAAA,EAEA,IAAI,MAAY,MAAgC;AAC9C,WAAO,QAAQ,IAAI,KAAK,OAAO,IAAI;AAAA,EACrC;AACF;AAEA,IAAM,gBAAN,MAAiE;AAAA,EAQ/D,YAAmB,OAAU;AAAV;AAPnB,iCAAW,IAAI,MAAM,CAAC,IAAI,GAAG,iBAAiB;AAC9C,+BAAM,UAAU;AAChB,gCAAO,CAAC;AACR,oCAAW,CAAC;AACZ,yCAAgB;AAChB,8BAAK;AAGH,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AACF;AAEA,IAAM,oBAAoB;AAAA,EACxB,IAAI,CAAC,IAAI,GAAW,KAA+B;AACjD,QAAI,QAAQ,UAAU;AACpB,wBAAkB,IAAI;AAAA,IACxB;AAEA,WAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,EACzC;AAAA,EAEA,QAAQ,CAAC,IAAI,GAAuC;AAClD,WAAO,mBAAmB,QAAQ,IAAI;AAAA,EACxC;AAAA,EAEA,yBACE,CAAC,IAAI,GACL,MACgC;AAChC,WAAO,mBAAmB,yBAAyB,MAAM,IAAI;AAAA,EAC/D;AAAA,EAEA,IAAI,CAAC,IAAI,GAAW,MAAgC;AAClD,WAAO,mBAAmB,IAAI,MAAM,IAAI;AAAA,EAC1C;AACF;AAEO,SAAS,WACd,OACS;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,IAAI,cAAc,KAAK;AAAA,EAChC;AAEA,SAAO,IAAI,eAAe,KAAK;AACjC;AAOO,SAAS,WACd,MACA,UACM;AACN,QAAM,EAAE,OAAO,MAAM,SAAS,IAAI;AAElC,OAAK,QAAQ;AAEb,MACE,MAAM,QAAQ,KAAK,KACnB,MAAM,QAAQ,QAAQ,KACtB,MAAM,WAAW,SAAS,QAC1B;AACA,oBAAgB,IAAI;AAAA,EACtB,OAAO;AACL,QAAI,UAAU,UAAU;AACtB,UAAI,cAAc;AAClB,UAAI,cAAc;AAClB,UAAI,eAAe;AAEnB,iBAAW,QAAQ,OAAO;AACxB;AAAA,MACF;AAEA,iBAAW,OAAO,UAAU;AAC1B;AACA,YAAI,EAAE,OAAO,QAAQ;AACnB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,YAAM,cAAc,gBAAgB,gBAAgB;AAEpD,UAAI,aAAa;AACf,wBAAgB,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAEA,aAAW,OAAO,MAAM;AACtB,UAAM,aAAc,MAAkC,GAAG;AACzD,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,QAAI,eAAe,eAAe;AAChC,sBAAgB,IAAI;AACpB,eAAS,KAAK,GAAG,GAAG,aAAa;AAAA,IACnC;AAEA,QAAI,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AAC/D,aAAO,KAAK,GAAG;AAAA,IACjB;AAAA,EACF;AAEA,aAAW,OAAO,UAAU;AAC1B,UAAM,YAAY,SAAS,GAAG;AAC9B,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,UAAM,aAAa,UAAU;AAE7B,QAAI,eAAe,eAAe;AAChC;AAAA,IACF,WAAW,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AACtE,iBAAW,WAAW,aAAwC;AAAA,IAChE,OAAO;AACL,iBAAW,SAAS;AACpB,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,EACF;AACF;AAEA,SAAS,WAAW,MAAkB;AACpC,MAAI,KAAK,KAAK;AACZ,aAAS,KAAK,KAAK,IAAI;AAAA,EACzB;AACA,kBAAgB,IAAI;AACpB,aAAW,OAAO,KAAK,MAAM;AAC3B,aAAS,KAAK,KAAK,GAAG,GAAG,IAAI;AAAA,EAC/B;AACA,aAAW,OAAO,KAAK,UAAU;AAC/B,eAAW,KAAK,SAAS,GAAG,CAAC;AAAA,EAC/B;AACF;;;AC5MA,SAAS,qBAAqB,QAA2B;AACvD,MAAI;AACJ,SAAO;AAAA,IACL,IAAI,KAAc;AAChB,UAAI,SAAS,OAAO,MAAM,KAAK,GAAG,GAAG;AACnC,eAAO,MAAM;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,KAAc,OAAgB;AAChC,cAAQ,EAAE,KAAK,MAAM;AAAA,IACvB;AAAA,IAEA,aAAa;AACX,aAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;AAAA,IAC5B;AAAA,IAEA,QAAQ;AACN,cAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,SAAS,eAAe,SAAiB,QAA2B;AAClE,MAAI,UAAmB,CAAC;AAExB,WAAS,IAAI,KAAc;AACzB,UAAM,aAAa,QAAQ,UAAU,WAAS,OAAO,KAAK,MAAM,GAAG,CAAC;AAGpE,QAAI,aAAa,IAAI;AACnB,YAAM,QAAQ,QAAQ,UAAU;AAGhC,UAAI,aAAa,GAAG;AAClB,gBAAQ,OAAO,YAAY,CAAC;AAC5B,gBAAQ,QAAQ,KAAK;AAAA,MACvB;AAEA,aAAO,MAAM;AAAA,IACf;AAGA,WAAO;AAAA,EACT;AAEA,WAAS,IAAI,KAAc,OAAgB;AACzC,QAAI,IAAI,GAAG,MAAM,WAAW;AAE1B,cAAQ,QAAQ,EAAE,KAAK,MAAM,CAAC;AAC9B,UAAI,QAAQ,SAAS,SAAS;AAC5B,gBAAQ,IAAI;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAEA,WAAS,aAAa;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,QAAQ;AACf,cAAU,CAAC;AAAA,EACb;AAEA,SAAO,EAAE,KAAK,KAAK,YAAY,MAAM;AACvC;AAUO,IAAM,yBAAqC,CAAC,GAAG,MAAM,MAAM;AAE3D,SAAS,yBAAyB,eAA2B;AAClE,SAAO,SAAS,2BACd,MACA,MACS;AACT,QAAI,SAAS,QAAQ,SAAS,QAAQ,KAAK,WAAW,KAAK,QAAQ;AACjE,aAAO;AAAA,IACT;AAGA,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,UAAI,CAAC,cAAc,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAgEO,SAAS,WACd,MACA,wBACA;AACA,QAAM,kBACJ,OAAO,2BAA2B,WAC9B,yBACA,EAAE,eAAe,uBAAuB;AAE9C,QAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,EACF,IAAI;AAEJ,QAAM,aAAa,yBAAyB,aAAa;AAEzD,MAAI,eAAe;AAEnB,QAAM,QACJ,WAAW,IACP,qBAAqB,UAAU,IAC/B,eAAe,SAAS,UAAU;AAExC,WAAS,WAAW;AAClB,QAAI,QAAQ,MAAM,IAAI,SAAS;AAC/B,QAAI,UAAU,WAAW;AAGvB,cAAQ,KAAK,MAAM,MAAM,SAAS;AAClC;AAEA,UAAI,qBAAqB;AACvB,cAAM,UAAU,MAAM,WAAW;AACjC,cAAM,gBAAgB,QAAQ;AAAA,UAAK,WACjC,oBAAoB,MAAM,OAA2B,KAAK;AAAA,QAC5D;AAEA,YAAI,eAAe;AACjB,kBAAQ,cAAc;AACtB,2BAAiB,KAAK;AAAA,QACxB;AAAA,MACF;AAEA,YAAM,IAAI,WAAW,KAAK;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,UAAM,MAAM;AACZ,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;AClLO,SAAS,iBAA2C,MAAY;AAGrE,QAAM,OAAsC;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,MAAI,WAA8B;AAElC,QAAM,eAAe,yBAAyB,sBAAsB;AAEpE,QAAM,QAAQ,YAAY,MAAM;AAC9B,UAAM,MAAM,KAAK,MAAM,MAAM,KAAK,KAAyB;AAC3D,WAAO;AAAA,EACT,CAAC;AAED,WAAS,WAAW;AAClB,QAAI,CAAC,aAAa,UAAU,SAAS,GAAG;AACtC,iBAAW,MAAM,SAA+C;AAChE,iBAAW;AAAA,IACb;AACA,WAAO,MAAM;AAAA,EACf;AAEA,WAAS,aAAa,MAAM;AAC1B,WAAO,MAAM,MAAM;AAAA,EACrB;AAEA,SAAO;AACT;;;ACzFA,IAAM,YAAN,MAAmB;AAAA,EACjB,YAAoB,OAAU;AAAV;AAAA,EAAW;AAAA,EAC/B,QAAQ;AACN,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAM,MACJ,OAAO,YAAY,cACf,UACC;AAEP,IAAM,eAAe;AACrB,IAAM,aAAa;AA0CnB,SAAS,kBAAmC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAmGO,SAAS,eACd,MACA,UAAmD,CAAC,GACpD;AACA,MAAI,SAAS,gBAAgB;AAC7B,QAAM,EAAE,oBAAoB,IAAI;AAEhC,MAAI;AAEJ,MAAI,eAAe;AAEnB,WAAS,WAAW;AAtLtB;AAuLI,QAAI,YAAY;AAChB,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,KAAK;AACtC,YAAM,MAAM,UAAU,CAAC;AACvB,UACE,OAAO,QAAQ,cACd,OAAO,QAAQ,YAAY,QAAQ,MACpC;AAEA,YAAI,cAAc,UAAU;AAC5B,YAAI,gBAAgB,MAAM;AACxB,oBAAU,IAAI,cAAc,oBAAI,QAAQ;AAAA,QAC1C;AACA,cAAM,aAAa,YAAY,IAAI,GAAG;AACtC,YAAI,eAAe,QAAW;AAC5B,sBAAY,gBAAgB;AAC5B,sBAAY,IAAI,KAAK,SAAS;AAAA,QAChC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF,OAAO;AAEL,YAAI,iBAAiB,UAAU;AAC/B,YAAI,mBAAmB,MAAM;AAC3B,oBAAU,IAAI,iBAAiB,oBAAI,IAAI;AAAA,QACzC;AACA,cAAM,gBAAgB,eAAe,IAAI,GAAG;AAC5C,YAAI,kBAAkB,QAAW;AAC/B,sBAAY,gBAAgB;AAC5B,yBAAe,IAAI,KAAK,SAAS;AAAA,QACnC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAEA,UAAM,iBAAiB;AAEvB,QAAI;AAEJ,QAAI,UAAU,MAAM,YAAY;AAC9B,eAAS,UAAU;AAAA,IACrB,OAAO;AAEL,eAAS,KAAK,MAAM,MAAM,SAA6B;AACvD;AAEA,UAAI,qBAAqB;AACvB,cAAM,mBAAkB,oDAAY,UAAZ,oDAAyB;AAEjD,YACE,mBAAmB,QACnB,oBAAoB,iBAAqC,MAAM,GAC/D;AACA,mBAAS;AAET,2BAAiB,KAAK;AAAA,QACxB;AAEA,cAAM,eACH,OAAO,WAAW,YAAY,WAAW,QAC1C,OAAO,WAAW;AAEpB,qBAAa,eAAe,IAAI,IAAI,MAAM,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,mBAAe,IAAI;AAEnB,mBAAe,IAAI;AACnB,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,aAAS,gBAAgB;AACzB,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;ACaO,SAAS,sBAUd,qBACG,wBAMH;AAEA,QAAM,+BAGF,OAAO,qBAAqB,aAC5B;AAAA,IACE,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,IACA;AAEJ,QAAMA,kBAAiB,IAMlB,uBAUA;AACH,QAAI,iBAAiB;AACrB,QAAI,2BAA2B;AAC/B,QAAI;AAKJ,QAAI,wBAKA,CAAC;AAGL,QAAI,aAAa,mBAAmB,IAAI;AAUxC,QAAI,OAAO,eAAe,UAAU;AAClC,8BAAwB;AAExB,mBAAa,mBAAmB,IAAI;AAAA,IACtC;AAEA;AAAA,MACE;AAAA,MACA,8EAA8E,OAAO;AAAA,IACvF;AAIA,UAAM,kBAAkB,kCACnB,+BACA;AAGL,UAAM;AAAA,MACJ;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,cAAc;AAAA,MACd,qBAAqB,CAAC;AAAA,MACtB,gBAAgB,CAAC;AAAA,IACnB,IAAI;AAOJ,UAAM,sBAAsB,cAAc,cAAc;AACxD,UAAM,0BAA0B,cAAc,kBAAkB;AAChE,UAAM,eAAe,gBAAgB,kBAAkB;AAEvD,UAAM,qBAAqB,QAAQ,SAAS,uBAAuB;AACjE;AAGA,aAAQ,WAAgD;AAAA,QACtD;AAAA,QACA;AAAA,MACF;AAAA,IACF,GAAG,GAAG,mBAAmB;AAGzB,QAAI,WAAW;AAGf,UAAM,WAAW,YAAY,SAAS,sBAAsB;AAC1D;AAEA,YAAM,uBAAuB;AAAA,QAC3B;AAAA,QACA;AAAA,MACF;AAIA,mBAAa,mBAAmB,MAAM,MAAM,oBAAoB;AAEhE,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAM,EAAE,uBAAuB,oBAAoB,IACjD,8BAA8B,UAAU,aAAa;AACvD,YAAI,sBAAsB,WAAW;AACnC,gCAAsB;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,YAAI,oBAAoB,WAAW;AAEjC,gBAAM,2BAA2B;AAAA,YAC/B;AAAA,YACA;AAAA,UACF;AAEA,8BAAoB;AAAA,YAClB,EAAE,sBAAsB,yBAAyB;AAAA,YACjD,EAAE,SAAS,gBAAgB,oBAAoB;AAAA,YAC/C;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAAU,qBAAW;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT,GAAG,GAAG,uBAAuB;AAO7B,WAAO,OAAO,OAAO,UAAU;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,0BAA0B,MAAM;AAAA,MAChC,+BAA+B,MAAM;AACnC,mCAA2B;AAAA,MAC7B;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,gBAAgB,MAAM;AAAA,MACtB,qBAAqB,MAAM;AACzB,yBAAiB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EAMH;AAEA,SAAO,OAAOA,iBAAgB;AAAA,IAC5B,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AAIT;AAWO,IAAM,iBACK,sCAAsB,cAAc;;;AC5E/C,IAAM,2BACX,OAAO;AAAA,EACL,CAKE,sBACA,kBAGI,mBAID;AACH;AAAA,MACE;AAAA,MACA,yHAC2D,OAAO;AAAA,IACpE;AACA,UAAM,oBAAoB,OAAO,KAAK,oBAAoB;AAC1D,UAAM,eAAe,kBAAkB;AAAA,MACrC,SAAO,qBAAqB,GAAG;AAAA,IACjC;AACA,UAAM,qBAAqB;AAAA,MACzB;AAAA,MACA,IAAI,yBAAgC;AAClC,eAAO,qBAAqB,OAAO,CAAC,aAAa,OAAO,UAAU;AAChE,sBAAY,kBAAkB,KAAK,CAAC,IAAI;AACxC,iBAAO;AAAA,QACT,GAAG,CAAC,CAAC;AAAA,MACP;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,EAAE,WAAW,MAAM,yBAAyB;AAC9C;","names":["createSelector"]}
Index: de_modules/reselect/dist/reselect.mjs
===================================================================
--- node_modules/reselect/dist/reselect.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,743 +1,0 @@
-// src/devModeChecks/identityFunctionCheck.ts
-var runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {
-  if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {
-    let isInputSameAsOutput = false;
-    try {
-      const emptyObject = {};
-      if (resultFunc(emptyObject) === emptyObject)
-        isInputSameAsOutput = true;
-    } catch {
-    }
-    if (isInputSameAsOutput) {
-      let stack = void 0;
-      try {
-        throw new Error();
-      } catch (e) {
-        ;
-        ({ stack } = e);
-      }
-      console.warn(
-        "The result function returned its own inputs without modification. e.g\n`createSelector([state => state.todos], todos => todos)`\nThis could lead to inefficient memoization and unnecessary re-renders.\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.",
-        { stack }
-      );
-    }
-  }
-};
-
-// src/devModeChecks/inputStabilityCheck.ts
-var runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {
-  const { memoize, memoizeOptions } = options;
-  const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;
-  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);
-  const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);
-  if (!areInputSelectorResultsEqual) {
-    let stack = void 0;
-    try {
-      throw new Error();
-    } catch (e) {
-      ;
-      ({ stack } = e);
-    }
-    console.warn(
-      "An input selector returned a different result when passed same arguments.\nThis means your output selector will likely run more frequently than intended.\nAvoid returning a new reference inside your input selector, e.g.\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`",
-      {
-        arguments: inputSelectorArgs,
-        firstInputs: inputSelectorResults,
-        secondInputs: inputSelectorResultsCopy,
-        stack
-      }
-    );
-  }
-};
-
-// src/devModeChecks/setGlobalDevModeChecks.ts
-var globalDevModeChecks = {
-  inputStabilityCheck: "once",
-  identityFunctionCheck: "once"
-};
-var setGlobalDevModeChecks = (devModeChecks) => {
-  Object.assign(globalDevModeChecks, devModeChecks);
-};
-
-// src/utils.ts
-var NOT_FOUND = /* @__PURE__ */ Symbol("NOT_FOUND");
-function assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {
-  if (typeof func !== "function") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {
-  if (typeof object !== "object") {
-    throw new TypeError(errorMessage);
-  }
-}
-function assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {
-  if (!array.every((item) => typeof item === "function")) {
-    const itemTypes = array.map(
-      (item) => typeof item === "function" ? `function ${item.name || "unnamed"}()` : typeof item
-    ).join(", ");
-    throw new TypeError(`${errorMessage}[${itemTypes}]`);
-  }
-}
-var ensureIsArray = (item) => {
-  return Array.isArray(item) ? item : [item];
-};
-function getDependencies(createSelectorArgs) {
-  const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;
-  assertIsArrayOfFunctions(
-    dependencies,
-    `createSelector expects all input-selectors to be functions, but received the following types: `
-  );
-  return dependencies;
-}
-function collectInputSelectorResults(dependencies, inputSelectorArgs) {
-  const inputSelectorResults = [];
-  const { length } = dependencies;
-  for (let i = 0; i < length; i++) {
-    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));
-  }
-  return inputSelectorResults;
-}
-var getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {
-  const { identityFunctionCheck, inputStabilityCheck } = {
-    ...globalDevModeChecks,
-    ...devModeChecks
-  };
-  return {
-    identityFunctionCheck: {
-      shouldRun: identityFunctionCheck === "always" || identityFunctionCheck === "once" && firstRun,
-      run: runIdentityFunctionCheck
-    },
-    inputStabilityCheck: {
-      shouldRun: inputStabilityCheck === "always" || inputStabilityCheck === "once" && firstRun,
-      run: runInputStabilityCheck
-    }
-  };
-};
-
-// src/autotrackMemoize/autotracking.ts
-var $REVISION = 0;
-var CURRENT_TRACKER = null;
-var Cell = class {
-  revision = $REVISION;
-  _value;
-  _lastValue;
-  _isEqual = tripleEq;
-  constructor(initialValue, isEqual = tripleEq) {
-    this._value = this._lastValue = initialValue;
-    this._isEqual = isEqual;
-  }
-  // Whenever a storage value is read, it'll add itself to the current tracker if
-  // one exists, entangling its state with that cache.
-  get value() {
-    CURRENT_TRACKER?.add(this);
-    return this._value;
-  }
-  // Whenever a storage value is updated, we bump the global revision clock,
-  // assign the revision for this storage to the new value, _and_ we schedule a
-  // rerender. This is important, and it's what makes autotracking  _pull_
-  // based. We don't actively tell the caches which depend on the storage that
-  // anything has happened. Instead, we recompute the caches when needed.
-  set value(newValue) {
-    if (this.value === newValue)
-      return;
-    this._value = newValue;
-    this.revision = ++$REVISION;
-  }
-};
-function tripleEq(a, b) {
-  return a === b;
-}
-var TrackingCache = class {
-  _cachedValue;
-  _cachedRevision = -1;
-  _deps = [];
-  hits = 0;
-  fn;
-  constructor(fn) {
-    this.fn = fn;
-  }
-  clear() {
-    this._cachedValue = void 0;
-    this._cachedRevision = -1;
-    this._deps = [];
-    this.hits = 0;
-  }
-  get value() {
-    if (this.revision > this._cachedRevision) {
-      const { fn } = this;
-      const currentTracker = /* @__PURE__ */ new Set();
-      const prevTracker = CURRENT_TRACKER;
-      CURRENT_TRACKER = currentTracker;
-      this._cachedValue = fn();
-      CURRENT_TRACKER = prevTracker;
-      this.hits++;
-      this._deps = Array.from(currentTracker);
-      this._cachedRevision = this.revision;
-    }
-    CURRENT_TRACKER?.add(this);
-    return this._cachedValue;
-  }
-  get revision() {
-    return Math.max(...this._deps.map((d) => d.revision), 0);
-  }
-};
-function getValue(cell) {
-  if (!(cell instanceof Cell)) {
-    console.warn("Not a valid cell! ", cell);
-  }
-  return cell.value;
-}
-function setValue(storage, value) {
-  if (!(storage instanceof Cell)) {
-    throw new TypeError(
-      "setValue must be passed a tracked store created with `createStorage`."
-    );
-  }
-  storage.value = storage._lastValue = value;
-}
-function createCell(initialValue, isEqual = tripleEq) {
-  return new Cell(initialValue, isEqual);
-}
-function createCache(fn) {
-  assertIsFunction(
-    fn,
-    "the first parameter to `createCache` must be a function"
-  );
-  return new TrackingCache(fn);
-}
-
-// src/autotrackMemoize/tracking.ts
-var neverEq = (a, b) => false;
-function createTag() {
-  return createCell(null, neverEq);
-}
-function dirtyTag(tag, value) {
-  setValue(tag, value);
-}
-var consumeCollection = (node) => {
-  let tag = node.collectionTag;
-  if (tag === null) {
-    tag = node.collectionTag = createTag();
-  }
-  getValue(tag);
-};
-var dirtyCollection = (node) => {
-  const tag = node.collectionTag;
-  if (tag !== null) {
-    dirtyTag(tag, null);
-  }
-};
-
-// src/autotrackMemoize/proxy.ts
-var REDUX_PROXY_LABEL = Symbol();
-var nextId = 0;
-var proto = Object.getPrototypeOf({});
-var ObjectTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    this.value = value;
-    this.tag.value = value;
-  }
-  proxy = new Proxy(this, objectProxyHandler);
-  tag = createTag();
-  tags = {};
-  children = {};
-  collectionTag = null;
-  id = nextId++;
-};
-var objectProxyHandler = {
-  get(node, key) {
-    function calculateResult() {
-      const { value } = node;
-      const childValue = Reflect.get(value, key);
-      if (typeof key === "symbol") {
-        return childValue;
-      }
-      if (key in proto) {
-        return childValue;
-      }
-      if (typeof childValue === "object" && childValue !== null) {
-        let childNode = node.children[key];
-        if (childNode === void 0) {
-          childNode = node.children[key] = createNode(childValue);
-        }
-        if (childNode.tag) {
-          getValue(childNode.tag);
-        }
-        return childNode.proxy;
-      } else {
-        let tag = node.tags[key];
-        if (tag === void 0) {
-          tag = node.tags[key] = createTag();
-          tag.value = childValue;
-        }
-        getValue(tag);
-        return childValue;
-      }
-    }
-    const res = calculateResult();
-    return res;
-  },
-  ownKeys(node) {
-    consumeCollection(node);
-    return Reflect.ownKeys(node.value);
-  },
-  getOwnPropertyDescriptor(node, prop) {
-    return Reflect.getOwnPropertyDescriptor(node.value, prop);
-  },
-  has(node, prop) {
-    return Reflect.has(node.value, prop);
-  }
-};
-var ArrayTreeNode = class {
-  constructor(value) {
-    this.value = value;
-    this.value = value;
-    this.tag.value = value;
-  }
-  proxy = new Proxy([this], arrayProxyHandler);
-  tag = createTag();
-  tags = {};
-  children = {};
-  collectionTag = null;
-  id = nextId++;
-};
-var arrayProxyHandler = {
-  get([node], key) {
-    if (key === "length") {
-      consumeCollection(node);
-    }
-    return objectProxyHandler.get(node, key);
-  },
-  ownKeys([node]) {
-    return objectProxyHandler.ownKeys(node);
-  },
-  getOwnPropertyDescriptor([node], prop) {
-    return objectProxyHandler.getOwnPropertyDescriptor(node, prop);
-  },
-  has([node], prop) {
-    return objectProxyHandler.has(node, prop);
-  }
-};
-function createNode(value) {
-  if (Array.isArray(value)) {
-    return new ArrayTreeNode(value);
-  }
-  return new ObjectTreeNode(value);
-}
-function updateNode(node, newValue) {
-  const { value, tags, children } = node;
-  node.value = newValue;
-  if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {
-    dirtyCollection(node);
-  } else {
-    if (value !== newValue) {
-      let oldKeysSize = 0;
-      let newKeysSize = 0;
-      let anyKeysAdded = false;
-      for (const _key in value) {
-        oldKeysSize++;
-      }
-      for (const key in newValue) {
-        newKeysSize++;
-        if (!(key in value)) {
-          anyKeysAdded = true;
-          break;
-        }
-      }
-      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;
-      if (isDifferent) {
-        dirtyCollection(node);
-      }
-    }
-  }
-  for (const key in tags) {
-    const childValue = value[key];
-    const newChildValue = newValue[key];
-    if (childValue !== newChildValue) {
-      dirtyCollection(node);
-      dirtyTag(tags[key], newChildValue);
-    }
-    if (typeof newChildValue === "object" && newChildValue !== null) {
-      delete tags[key];
-    }
-  }
-  for (const key in children) {
-    const childNode = children[key];
-    const newChildValue = newValue[key];
-    const childValue = childNode.value;
-    if (childValue === newChildValue) {
-      continue;
-    } else if (typeof newChildValue === "object" && newChildValue !== null) {
-      updateNode(childNode, newChildValue);
-    } else {
-      deleteNode(childNode);
-      delete children[key];
-    }
-  }
-}
-function deleteNode(node) {
-  if (node.tag) {
-    dirtyTag(node.tag, null);
-  }
-  dirtyCollection(node);
-  for (const key in node.tags) {
-    dirtyTag(node.tags[key], null);
-  }
-  for (const key in node.children) {
-    deleteNode(node.children[key]);
-  }
-}
-
-// src/lruMemoize.ts
-function createSingletonCache(equals) {
-  let entry;
-  return {
-    get(key) {
-      if (entry && equals(entry.key, key)) {
-        return entry.value;
-      }
-      return NOT_FOUND;
-    },
-    put(key, value) {
-      entry = { key, value };
-    },
-    getEntries() {
-      return entry ? [entry] : [];
-    },
-    clear() {
-      entry = void 0;
-    }
-  };
-}
-function createLruCache(maxSize, equals) {
-  let entries = [];
-  function get(key) {
-    const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));
-    if (cacheIndex > -1) {
-      const entry = entries[cacheIndex];
-      if (cacheIndex > 0) {
-        entries.splice(cacheIndex, 1);
-        entries.unshift(entry);
-      }
-      return entry.value;
-    }
-    return NOT_FOUND;
-  }
-  function put(key, value) {
-    if (get(key) === NOT_FOUND) {
-      entries.unshift({ key, value });
-      if (entries.length > maxSize) {
-        entries.pop();
-      }
-    }
-  }
-  function getEntries() {
-    return entries;
-  }
-  function clear() {
-    entries = [];
-  }
-  return { get, put, getEntries, clear };
-}
-var referenceEqualityCheck = (a, b) => a === b;
-function createCacheKeyComparator(equalityCheck) {
-  return function areArgumentsShallowlyEqual(prev, next) {
-    if (prev === null || next === null || prev.length !== next.length) {
-      return false;
-    }
-    const { length } = prev;
-    for (let i = 0; i < length; i++) {
-      if (!equalityCheck(prev[i], next[i])) {
-        return false;
-      }
-    }
-    return true;
-  };
-}
-function lruMemoize(func, equalityCheckOrOptions) {
-  const providedOptions = typeof equalityCheckOrOptions === "object" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };
-  const {
-    equalityCheck = referenceEqualityCheck,
-    maxSize = 1,
-    resultEqualityCheck
-  } = providedOptions;
-  const comparator = createCacheKeyComparator(equalityCheck);
-  let resultsCount = 0;
-  const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);
-  function memoized() {
-    let value = cache.get(arguments);
-    if (value === NOT_FOUND) {
-      value = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const entries = cache.getEntries();
-        const matchingEntry = entries.find(
-          (entry) => resultEqualityCheck(entry.value, value)
-        );
-        if (matchingEntry) {
-          value = matchingEntry.value;
-          resultsCount !== 0 && resultsCount--;
-        }
-      }
-      cache.put(arguments, value);
-    }
-    return value;
-  }
-  memoized.clearCache = () => {
-    cache.clear();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/autotrackMemoize/autotrackMemoize.ts
-function autotrackMemoize(func) {
-  const node = createNode(
-    []
-  );
-  let lastArgs = null;
-  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);
-  const cache = createCache(() => {
-    const res = func.apply(null, node.proxy);
-    return res;
-  });
-  function memoized() {
-    if (!shallowEqual(lastArgs, arguments)) {
-      updateNode(node, arguments);
-      lastArgs = arguments;
-    }
-    return cache.value;
-  }
-  memoized.clearCache = () => {
-    return cache.clear();
-  };
-  return memoized;
-}
-
-// src/weakMapMemoize.ts
-var StrongRef = class {
-  constructor(value) {
-    this.value = value;
-  }
-  deref() {
-    return this.value;
-  }
-};
-var Ref = typeof WeakRef !== "undefined" ? WeakRef : StrongRef;
-var UNTERMINATED = 0;
-var TERMINATED = 1;
-function createCacheNode() {
-  return {
-    s: UNTERMINATED,
-    v: void 0,
-    o: null,
-    p: null
-  };
-}
-function weakMapMemoize(func, options = {}) {
-  let fnNode = createCacheNode();
-  const { resultEqualityCheck } = options;
-  let lastResult;
-  let resultsCount = 0;
-  function memoized() {
-    let cacheNode = fnNode;
-    const { length } = arguments;
-    for (let i = 0, l = length; i < l; i++) {
-      const arg = arguments[i];
-      if (typeof arg === "function" || typeof arg === "object" && arg !== null) {
-        let objectCache = cacheNode.o;
-        if (objectCache === null) {
-          cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();
-        }
-        const objectNode = objectCache.get(arg);
-        if (objectNode === void 0) {
-          cacheNode = createCacheNode();
-          objectCache.set(arg, cacheNode);
-        } else {
-          cacheNode = objectNode;
-        }
-      } else {
-        let primitiveCache = cacheNode.p;
-        if (primitiveCache === null) {
-          cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();
-        }
-        const primitiveNode = primitiveCache.get(arg);
-        if (primitiveNode === void 0) {
-          cacheNode = createCacheNode();
-          primitiveCache.set(arg, cacheNode);
-        } else {
-          cacheNode = primitiveNode;
-        }
-      }
-    }
-    const terminatedNode = cacheNode;
-    let result;
-    if (cacheNode.s === TERMINATED) {
-      result = cacheNode.v;
-    } else {
-      result = func.apply(null, arguments);
-      resultsCount++;
-      if (resultEqualityCheck) {
-        const lastResultValue = lastResult?.deref?.() ?? lastResult;
-        if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {
-          result = lastResultValue;
-          resultsCount !== 0 && resultsCount--;
-        }
-        const needsWeakRef = typeof result === "object" && result !== null || typeof result === "function";
-        lastResult = needsWeakRef ? new Ref(result) : result;
-      }
-    }
-    terminatedNode.s = TERMINATED;
-    terminatedNode.v = result;
-    return result;
-  }
-  memoized.clearCache = () => {
-    fnNode = createCacheNode();
-    memoized.resetResultsCount();
-  };
-  memoized.resultsCount = () => resultsCount;
-  memoized.resetResultsCount = () => {
-    resultsCount = 0;
-  };
-  return memoized;
-}
-
-// src/createSelectorCreator.ts
-function createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {
-  const createSelectorCreatorOptions = typeof memoizeOrOptions === "function" ? {
-    memoize: memoizeOrOptions,
-    memoizeOptions: memoizeOptionsFromArgs
-  } : memoizeOrOptions;
-  const createSelector2 = (...createSelectorArgs) => {
-    let recomputations = 0;
-    let dependencyRecomputations = 0;
-    let lastResult;
-    let directlyPassedOptions = {};
-    let resultFunc = createSelectorArgs.pop();
-    if (typeof resultFunc === "object") {
-      directlyPassedOptions = resultFunc;
-      resultFunc = createSelectorArgs.pop();
-    }
-    assertIsFunction(
-      resultFunc,
-      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`
-    );
-    const combinedOptions = {
-      ...createSelectorCreatorOptions,
-      ...directlyPassedOptions
-    };
-    const {
-      memoize,
-      memoizeOptions = [],
-      argsMemoize = weakMapMemoize,
-      argsMemoizeOptions = [],
-      devModeChecks = {}
-    } = combinedOptions;
-    const finalMemoizeOptions = ensureIsArray(memoizeOptions);
-    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);
-    const dependencies = getDependencies(createSelectorArgs);
-    const memoizedResultFunc = memoize(function recomputationWrapper() {
-      recomputations++;
-      return resultFunc.apply(
-        null,
-        arguments
-      );
-    }, ...finalMemoizeOptions);
-    let firstRun = true;
-    const selector = argsMemoize(function dependenciesChecker() {
-      dependencyRecomputations++;
-      const inputSelectorResults = collectInputSelectorResults(
-        dependencies,
-        arguments
-      );
-      lastResult = memoizedResultFunc.apply(null, inputSelectorResults);
-      if (process.env.NODE_ENV !== "production") {
-        const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);
-        if (identityFunctionCheck.shouldRun) {
-          identityFunctionCheck.run(
-            resultFunc,
-            inputSelectorResults,
-            lastResult
-          );
-        }
-        if (inputStabilityCheck.shouldRun) {
-          const inputSelectorResultsCopy = collectInputSelectorResults(
-            dependencies,
-            arguments
-          );
-          inputStabilityCheck.run(
-            { inputSelectorResults, inputSelectorResultsCopy },
-            { memoize, memoizeOptions: finalMemoizeOptions },
-            arguments
-          );
-        }
-        if (firstRun)
-          firstRun = false;
-      }
-      return lastResult;
-    }, ...finalArgsMemoizeOptions);
-    return Object.assign(selector, {
-      resultFunc,
-      memoizedResultFunc,
-      dependencies,
-      dependencyRecomputations: () => dependencyRecomputations,
-      resetDependencyRecomputations: () => {
-        dependencyRecomputations = 0;
-      },
-      lastResult: () => lastResult,
-      recomputations: () => recomputations,
-      resetRecomputations: () => {
-        recomputations = 0;
-      },
-      memoize,
-      argsMemoize
-    });
-  };
-  Object.assign(createSelector2, {
-    withTypes: () => createSelector2
-  });
-  return createSelector2;
-}
-var createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);
-
-// src/createStructuredSelector.ts
-var createStructuredSelector = Object.assign(
-  (inputSelectorsObject, selectorCreator = createSelector) => {
-    assertIsObject(
-      inputSelectorsObject,
-      `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`
-    );
-    const inputSelectorKeys = Object.keys(inputSelectorsObject);
-    const dependencies = inputSelectorKeys.map(
-      (key) => inputSelectorsObject[key]
-    );
-    const structuredSelector = selectorCreator(
-      dependencies,
-      (...inputSelectorResults) => {
-        return inputSelectorResults.reduce((composition, value, index) => {
-          composition[inputSelectorKeys[index]] = value;
-          return composition;
-        }, {});
-      }
-    );
-    return structuredSelector;
-  },
-  { withTypes: () => createStructuredSelector }
-);
-export {
-  createSelector,
-  createSelectorCreator,
-  createStructuredSelector,
-  lruMemoize,
-  referenceEqualityCheck,
-  setGlobalDevModeChecks,
-  autotrackMemoize as unstable_autotrackMemoize,
-  weakMapMemoize
-};
-//# sourceMappingURL=reselect.mjs.map
Index: de_modules/reselect/dist/reselect.mjs.map
===================================================================
--- node_modules/reselect/dist/reselect.mjs.map	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{"version":3,"sources":["../src/devModeChecks/identityFunctionCheck.ts","../src/devModeChecks/inputStabilityCheck.ts","../src/devModeChecks/setGlobalDevModeChecks.ts","../src/utils.ts","../src/autotrackMemoize/autotracking.ts","../src/autotrackMemoize/tracking.ts","../src/autotrackMemoize/proxy.ts","../src/lruMemoize.ts","../src/autotrackMemoize/autotrackMemoize.ts","../src/weakMapMemoize.ts","../src/createSelectorCreator.ts","../src/createStructuredSelector.ts"],"sourcesContent":["import type { AnyFunction } from '../types'\r\n\r\n/**\r\n * Runs a check to determine if the given result function behaves as an\r\n * identity function. An identity function is one that returns its\r\n * input unchanged, for example, `x => x`. This check helps ensure\r\n * efficient memoization and prevent unnecessary re-renders by encouraging\r\n * proper use of transformation logic in result functions and\r\n * extraction logic in input selectors.\r\n *\r\n * @param resultFunc - The result function to be checked.\r\n * @param inputSelectorsResults - The results of the input selectors.\r\n * @param outputSelectorResult - The result of the output selector.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runIdentityFunctionCheck = (\r\n  resultFunc: AnyFunction,\r\n  inputSelectorsResults: unknown[],\r\n  outputSelectorResult: unknown\r\n) => {\r\n  if (\r\n    inputSelectorsResults.length === 1 &&\r\n    inputSelectorsResults[0] === outputSelectorResult\r\n  ) {\r\n    let isInputSameAsOutput = false\r\n    try {\r\n      const emptyObject = {}\r\n      if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true\r\n    } catch {\r\n      // Do nothing\r\n    }\r\n    if (isInputSameAsOutput) {\r\n      let stack: string | undefined = undefined\r\n      try {\r\n        throw new Error()\r\n      } catch (e) {\r\n        // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n        ;({ stack } = e as Error)\r\n      }\r\n      console.warn(\r\n        'The result function returned its own inputs without modification. e.g' +\r\n          '\\n`createSelector([state => state.todos], todos => todos)`' +\r\n          '\\nThis could lead to inefficient memoization and unnecessary re-renders.' +\r\n          '\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',\r\n        { stack }\r\n      )\r\n    }\r\n  }\r\n}\r\n","import type { CreateSelectorOptions, UnknownMemoizer } from '../types'\r\n\r\n/**\r\n * Runs a stability check to ensure the input selector results remain stable\r\n * when provided with the same arguments. This function is designed to detect\r\n * changes in the output of input selectors, which can impact the performance of memoized selectors.\r\n *\r\n * @param inputSelectorResultsObject - An object containing two arrays: `inputSelectorResults` and `inputSelectorResultsCopy`, representing the results of input selectors.\r\n * @param options - Options object consisting of a `memoize` function and a `memoizeOptions` object.\r\n * @param inputSelectorArgs - List of arguments being passed to the input selectors.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks/#inputstabilitycheck `inputStabilityCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runInputStabilityCheck = (\r\n  inputSelectorResultsObject: {\r\n    inputSelectorResults: unknown[]\r\n    inputSelectorResultsCopy: unknown[]\r\n  },\r\n  options: Required<\r\n    Pick<\r\n      CreateSelectorOptions<UnknownMemoizer, UnknownMemoizer>,\r\n      'memoize' | 'memoizeOptions'\r\n    >\r\n  >,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) => {\r\n  const { memoize, memoizeOptions } = options\r\n  const { inputSelectorResults, inputSelectorResultsCopy } =\r\n    inputSelectorResultsObject\r\n  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions)\r\n  // if the memoize method thinks the parameters are equal, these *should* be the same reference\r\n  const areInputSelectorResultsEqual =\r\n    createAnEmptyObject.apply(null, inputSelectorResults) ===\r\n    createAnEmptyObject.apply(null, inputSelectorResultsCopy)\r\n  if (!areInputSelectorResultsEqual) {\r\n    let stack: string | undefined = undefined\r\n    try {\r\n      throw new Error()\r\n    } catch (e) {\r\n      // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n      ;({ stack } = e as Error)\r\n    }\r\n    console.warn(\r\n      'An input selector returned a different result when passed same arguments.' +\r\n        '\\nThis means your output selector will likely run more frequently than intended.' +\r\n        '\\nAvoid returning a new reference inside your input selector, e.g.' +\r\n        '\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`',\r\n      {\r\n        arguments: inputSelectorArgs,\r\n        firstInputs: inputSelectorResults,\r\n        secondInputs: inputSelectorResultsCopy,\r\n        stack\r\n      }\r\n    )\r\n  }\r\n}\r\n","import type { DevModeChecks } from '../types'\r\n\r\n/**\r\n * Global configuration for development mode checks. This specifies the default\r\n * frequency at which each development mode check should be performed.\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const globalDevModeChecks: DevModeChecks = {\r\n  inputStabilityCheck: 'once',\r\n  identityFunctionCheck: 'once'\r\n}\r\n\r\n/**\r\n * Overrides the development mode checks settings for all selectors.\r\n *\r\n * Reselect performs additional checks in development mode to help identify and\r\n * warn about potential issues in selector behavior. This function allows you to\r\n * customize the behavior of these checks across all selectors in your application.\r\n *\r\n * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.\r\n * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}\r\n * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.\r\n *\r\n * _The development mode checks do not run in production builds._\r\n *\r\n * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.\r\n *\r\n * @example\r\n * ```ts\r\n * import { setGlobalDevModeChecks } from 'reselect'\r\n * import { DevModeChecks } from '../types'\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })\r\n *\r\n * // Never run the input stability check.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })\r\n *\r\n * // Never run the identity function check.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })\r\n * ```\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport const setGlobalDevModeChecks = (\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  Object.assign(globalDevModeChecks, devModeChecks)\r\n}\r\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n  DevModeChecks,\r\n  Selector,\r\n  SelectorArray,\r\n  DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction<FunctionType extends Function>(\r\n  func: unknown,\r\n  errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n  if (typeof func !== 'function') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject<ObjectType extends Record<string, unknown>>(\r\n  object: unknown,\r\n  errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n  if (typeof object !== 'object') {\r\n    throw new TypeError(errorMessage)\r\n  }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param  errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions<FunctionType extends Function>(\r\n  array: unknown[],\r\n  errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n  if (\r\n    !array.every((item): item is FunctionType => typeof item === 'function')\r\n  ) {\r\n    const itemTypes = array\r\n      .map(item =>\r\n        typeof item === 'function'\r\n          ? `function ${item.name || 'unnamed'}()`\r\n          : typeof item\r\n      )\r\n      .join(', ')\r\n    throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n  }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n  return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n  const dependencies = Array.isArray(createSelectorArgs[0])\r\n    ? createSelectorArgs[0]\r\n    : createSelectorArgs\r\n\r\n  assertIsArrayOfFunctions<Selector>(\r\n    dependencies,\r\n    `createSelector expects all input-selectors to be functions, but received the following types: `\r\n  )\r\n\r\n  return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n  dependencies: SelectorArray,\r\n  inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n  const inputSelectorResults = []\r\n  const { length } = dependencies\r\n  for (let i = 0; i < length; i++) {\r\n    // @ts-ignore\r\n    // apply arguments instead of spreading and mutate a local list of params for performance.\r\n    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n  }\r\n  return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns  An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n  firstRun: boolean,\r\n  devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n  const { identityFunctionCheck, inputStabilityCheck } = {\r\n    ...globalDevModeChecks,\r\n    ...devModeChecks\r\n  }\r\n  return {\r\n    identityFunctionCheck: {\r\n      shouldRun:\r\n        identityFunctionCheck === 'always' ||\r\n        (identityFunctionCheck === 'once' && firstRun),\r\n      run: runIdentityFunctionCheck\r\n    },\r\n    inputStabilityCheck: {\r\n      shouldRun:\r\n        inputStabilityCheck === 'always' ||\r\n        (inputStabilityCheck === 'once' && firstRun),\r\n      run: runInputStabilityCheck\r\n    }\r\n  } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original autotracking implementation source:\r\n// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9\r\n// Additional references:\r\n// - https://www.pzuraq.com/blog/how-autotracking-works\r\n// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/\r\nimport type { EqualityFn } from '../types'\r\nimport { assertIsFunction } from '../utils'\r\n\r\n// The global revision clock. Every time state changes, the clock increments.\r\nexport let $REVISION = 0\r\n\r\n// The current dependency tracker. Whenever we compute a cache, we create a Set\r\n// to track any dependencies that are used while computing. If no cache is\r\n// computing, then the tracker is null.\r\nlet CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null\r\n\r\n// Storage represents a root value in the system - the actual state of our app.\r\nexport class Cell<T> {\r\n  revision = $REVISION\r\n\r\n  _value: T\r\n  _lastValue: T\r\n  _isEqual: EqualityFn = tripleEq\r\n\r\n  constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {\r\n    this._value = this._lastValue = initialValue\r\n    this._isEqual = isEqual\r\n  }\r\n\r\n  // Whenever a storage value is read, it'll add itself to the current tracker if\r\n  // one exists, entangling its state with that cache.\r\n  get value() {\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    return this._value\r\n  }\r\n\r\n  // Whenever a storage value is updated, we bump the global revision clock,\r\n  // assign the revision for this storage to the new value, _and_ we schedule a\r\n  // rerender. This is important, and it's what makes autotracking  _pull_\r\n  // based. We don't actively tell the caches which depend on the storage that\r\n  // anything has happened. Instead, we recompute the caches when needed.\r\n  set value(newValue) {\r\n    if (this.value === newValue) return\r\n\r\n    this._value = newValue\r\n    this.revision = ++$REVISION\r\n  }\r\n}\r\n\r\nfunction tripleEq(a: unknown, b: unknown) {\r\n  return a === b\r\n}\r\n\r\n// Caches represent derived state in the system. They are ultimately functions\r\n// that are memoized based on what state they use to produce their output,\r\n// meaning they will only rerun IFF a storage value that could affect the output\r\n// has changed. Otherwise, they'll return the cached value.\r\nexport class TrackingCache {\r\n  _cachedValue: any\r\n  _cachedRevision = -1\r\n  _deps: any[] = []\r\n  hits = 0\r\n\r\n  fn: () => any\r\n\r\n  constructor(fn: () => any) {\r\n    this.fn = fn\r\n  }\r\n\r\n  clear() {\r\n    this._cachedValue = undefined\r\n    this._cachedRevision = -1\r\n    this._deps = []\r\n    this.hits = 0\r\n  }\r\n\r\n  get value() {\r\n    // When getting the value for a Cache, first we check all the dependencies of\r\n    // the cache to see what their current revision is. If the current revision is\r\n    // greater than the cached revision, then something has changed.\r\n    if (this.revision > this._cachedRevision) {\r\n      const { fn } = this\r\n\r\n      // We create a new dependency tracker for this cache. As the cache runs\r\n      // its function, any Storage or Cache instances which are used while\r\n      // computing will be added to this tracker. In the end, it will be the\r\n      // full list of dependencies that this Cache depends on.\r\n      const currentTracker = new Set<Cell<any>>()\r\n      const prevTracker = CURRENT_TRACKER\r\n\r\n      CURRENT_TRACKER = currentTracker\r\n\r\n      // try {\r\n      this._cachedValue = fn()\r\n      // } finally {\r\n      CURRENT_TRACKER = prevTracker\r\n      this.hits++\r\n      this._deps = Array.from(currentTracker)\r\n\r\n      // Set the cached revision. This is the current clock count of all the\r\n      // dependencies. If any dependency changes, this number will be less\r\n      // than the new revision.\r\n      this._cachedRevision = this.revision\r\n      // }\r\n    }\r\n\r\n    // If there is a current tracker, it means another Cache is computing and\r\n    // using this one, so we add this one to the tracker.\r\n    CURRENT_TRACKER?.add(this)\r\n\r\n    // Always return the cached value.\r\n    return this._cachedValue\r\n  }\r\n\r\n  get revision() {\r\n    // The current revision is the max of all the dependencies' revisions.\r\n    return Math.max(...this._deps.map(d => d.revision), 0)\r\n  }\r\n}\r\n\r\nexport function getValue<T>(cell: Cell<T>): T {\r\n  if (!(cell instanceof Cell)) {\r\n    console.warn('Not a valid cell! ', cell)\r\n  }\r\n\r\n  return cell.value\r\n}\r\n\r\ntype CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never\r\n\r\nexport function setValue<T extends Cell<unknown>>(\r\n  storage: T,\r\n  value: CellValue<T>\r\n): void {\r\n  if (!(storage instanceof Cell)) {\r\n    throw new TypeError(\r\n      'setValue must be passed a tracked store created with `createStorage`.'\r\n    )\r\n  }\r\n\r\n  storage.value = storage._lastValue = value\r\n}\r\n\r\nexport function createCell<T = unknown>(\r\n  initialValue: T,\r\n  isEqual: EqualityFn = tripleEq\r\n): Cell<T> {\r\n  return new Cell(initialValue, isEqual)\r\n}\r\n\r\nexport function createCache<T = unknown>(fn: () => T): TrackingCache {\r\n  assertIsFunction(\r\n    fn,\r\n    'the first parameter to `createCache` must be a function'\r\n  )\r\n\r\n  return new TrackingCache(fn)\r\n}\r\n","import type { Cell } from './autotracking'\r\nimport {\r\n  getValue as consumeTag,\r\n  createCell as createStorage,\r\n  setValue\r\n} from './autotracking'\r\n\r\nexport type Tag = Cell<unknown>\r\n\r\nconst neverEq = (a: any, b: any): boolean => false\r\n\r\nexport function createTag(): Tag {\r\n  return createStorage(null, neverEq)\r\n}\r\nexport { consumeTag }\r\nexport function dirtyTag(tag: Tag, value: any): void {\r\n  setValue(tag, value)\r\n}\r\n\r\nexport interface Node<\r\n  T extends Array<unknown> | Record<string, unknown> =\r\n    | Array<unknown>\r\n    | Record<string, unknown>\r\n> {\r\n  collectionTag: Tag | null\r\n  tag: Tag | null\r\n  tags: Record<string, Tag>\r\n  children: Record<string, Node>\r\n  proxy: T\r\n  value: T\r\n  id: number\r\n}\r\n\r\nexport const consumeCollection = (node: Node): void => {\r\n  let tag = node.collectionTag\r\n\r\n  if (tag === null) {\r\n    tag = node.collectionTag = createTag()\r\n  }\r\n\r\n  consumeTag(tag)\r\n}\r\n\r\nexport const dirtyCollection = (node: Node): void => {\r\n  const tag = node.collectionTag\r\n\r\n  if (tag !== null) {\r\n    dirtyTag(tag, null)\r\n  }\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n  consumeCollection,\r\n  consumeTag,\r\n  createTag,\r\n  dirtyCollection,\r\n  dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {\r\n  proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {} as Record<string, Tag>\r\n  children = {} as Record<string, Node>\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n  get(node: Node, key: string | symbol): unknown {\r\n    function calculateResult() {\r\n      const { value } = node\r\n\r\n      const childValue = Reflect.get(value, key)\r\n\r\n      if (typeof key === 'symbol') {\r\n        return childValue\r\n      }\r\n\r\n      if (key in proto) {\r\n        return childValue\r\n      }\r\n\r\n      if (typeof childValue === 'object' && childValue !== null) {\r\n        let childNode = node.children[key]\r\n\r\n        if (childNode === undefined) {\r\n          childNode = node.children[key] = createNode(childValue)\r\n        }\r\n\r\n        if (childNode.tag) {\r\n          consumeTag(childNode.tag)\r\n        }\r\n\r\n        return childNode.proxy\r\n      } else {\r\n        let tag = node.tags[key]\r\n\r\n        if (tag === undefined) {\r\n          tag = node.tags[key] = createTag()\r\n          tag.value = childValue\r\n        }\r\n\r\n        consumeTag(tag)\r\n\r\n        return childValue\r\n      }\r\n    }\r\n    const res = calculateResult()\r\n    return res\r\n  },\r\n\r\n  ownKeys(node: Node): ArrayLike<string | symbol> {\r\n    consumeCollection(node)\r\n    return Reflect.ownKeys(node.value)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    node: Node,\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n  },\r\n\r\n  has(node: Node, prop: string | symbol): boolean {\r\n    return Reflect.has(node.value, prop)\r\n  }\r\n}\r\n\r\nclass ArrayTreeNode<T extends Array<unknown>> implements Node<T> {\r\n  proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n  tag = createTag()\r\n  tags = {}\r\n  children = {}\r\n  collectionTag = null\r\n  id = nextId++\r\n\r\n  constructor(public value: T) {\r\n    this.value = value\r\n    this.tag.value = value\r\n  }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n  get([node]: [Node], key: string | symbol): unknown {\r\n    if (key === 'length') {\r\n      consumeCollection(node)\r\n    }\r\n\r\n    return objectProxyHandler.get(node, key)\r\n  },\r\n\r\n  ownKeys([node]: [Node]): ArrayLike<string | symbol> {\r\n    return objectProxyHandler.ownKeys(node)\r\n  },\r\n\r\n  getOwnPropertyDescriptor(\r\n    [node]: [Node],\r\n    prop: string | symbol\r\n  ): PropertyDescriptor | undefined {\r\n    return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n  },\r\n\r\n  has([node]: [Node], prop: string | symbol): boolean {\r\n    return objectProxyHandler.has(node, prop)\r\n  }\r\n}\r\n\r\nexport function createNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  value: T\r\n): Node<T> {\r\n  if (Array.isArray(value)) {\r\n    return new ArrayTreeNode(value)\r\n  }\r\n\r\n  return new ObjectTreeNode(value) as Node<T>\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n  Array<unknown> | Record<string, unknown>,\r\n  Set<string>\r\n>()\r\n\r\nexport function updateNode<T extends Array<unknown> | Record<string, unknown>>(\r\n  node: Node<T>,\r\n  newValue: T\r\n): void {\r\n  const { value, tags, children } = node\r\n\r\n  node.value = newValue\r\n\r\n  if (\r\n    Array.isArray(value) &&\r\n    Array.isArray(newValue) &&\r\n    value.length !== newValue.length\r\n  ) {\r\n    dirtyCollection(node)\r\n  } else {\r\n    if (value !== newValue) {\r\n      let oldKeysSize = 0\r\n      let newKeysSize = 0\r\n      let anyKeysAdded = false\r\n\r\n      for (const _key in value) {\r\n        oldKeysSize++\r\n      }\r\n\r\n      for (const key in newValue) {\r\n        newKeysSize++\r\n        if (!(key in value)) {\r\n          anyKeysAdded = true\r\n          break\r\n        }\r\n      }\r\n\r\n      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n      if (isDifferent) {\r\n        dirtyCollection(node)\r\n      }\r\n    }\r\n  }\r\n\r\n  for (const key in tags) {\r\n    const childValue = (value as Record<string, unknown>)[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    if (childValue !== newChildValue) {\r\n      dirtyCollection(node)\r\n      dirtyTag(tags[key], newChildValue)\r\n    }\r\n\r\n    if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      delete tags[key]\r\n    }\r\n  }\r\n\r\n  for (const key in children) {\r\n    const childNode = children[key]\r\n    const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n    const childValue = childNode.value\r\n\r\n    if (childValue === newChildValue) {\r\n      continue\r\n    } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n      updateNode(childNode, newChildValue as Record<string, unknown>)\r\n    } else {\r\n      deleteNode(childNode)\r\n      delete children[key]\r\n    }\r\n  }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n  if (node.tag) {\r\n    dirtyTag(node.tag, null)\r\n  }\r\n  dirtyCollection(node)\r\n  for (const key in node.tags) {\r\n    dirtyTag(node.tags[key], null)\r\n  }\r\n  for (const key in node.children) {\r\n    deleteNode(node.children[key])\r\n  }\r\n}\r\n","import type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nimport type { NOT_FOUND_TYPE } from './utils'\r\nimport { NOT_FOUND } from './utils'\r\n\r\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\r\n// https://github.com/erikras/lru-memoize\r\n\r\ninterface Entry {\r\n  key: unknown\r\n  value: unknown\r\n}\r\n\r\ninterface Cache {\r\n  get(key: unknown): unknown | NOT_FOUND_TYPE\r\n  put(key: unknown, value: unknown): void\r\n  getEntries(): Entry[]\r\n  clear(): void\r\n}\r\n\r\nfunction createSingletonCache(equals: EqualityFn): Cache {\r\n  let entry: Entry | undefined\r\n  return {\r\n    get(key: unknown) {\r\n      if (entry && equals(entry.key, key)) {\r\n        return entry.value\r\n      }\r\n\r\n      return NOT_FOUND\r\n    },\r\n\r\n    put(key: unknown, value: unknown) {\r\n      entry = { key, value }\r\n    },\r\n\r\n    getEntries() {\r\n      return entry ? [entry] : []\r\n    },\r\n\r\n    clear() {\r\n      entry = undefined\r\n    }\r\n  }\r\n}\r\n\r\nfunction createLruCache(maxSize: number, equals: EqualityFn): Cache {\r\n  let entries: Entry[] = []\r\n\r\n  function get(key: unknown) {\r\n    const cacheIndex = entries.findIndex(entry => equals(key, entry.key))\r\n\r\n    // We found a cached entry\r\n    if (cacheIndex > -1) {\r\n      const entry = entries[cacheIndex]\r\n\r\n      // Cached entry not at top of cache, move it to the top\r\n      if (cacheIndex > 0) {\r\n        entries.splice(cacheIndex, 1)\r\n        entries.unshift(entry)\r\n      }\r\n\r\n      return entry.value\r\n    }\r\n\r\n    // No entry found in cache, return sentinel\r\n    return NOT_FOUND\r\n  }\r\n\r\n  function put(key: unknown, value: unknown) {\r\n    if (get(key) === NOT_FOUND) {\r\n      // TODO Is unshift slow?\r\n      entries.unshift({ key, value })\r\n      if (entries.length > maxSize) {\r\n        entries.pop()\r\n      }\r\n    }\r\n  }\r\n\r\n  function getEntries() {\r\n    return entries\r\n  }\r\n\r\n  function clear() {\r\n    entries = []\r\n  }\r\n\r\n  return { get, put, getEntries, clear }\r\n}\r\n\r\n/**\r\n * Runs a simple reference equality check.\r\n * What {@linkcode lruMemoize lruMemoize} uses by default.\r\n *\r\n * **Note**: This function was previously known as `defaultEqualityCheck`.\r\n *\r\n * @public\r\n */\r\nexport const referenceEqualityCheck: EqualityFn = (a, b) => a === b\r\n\r\nexport function createCacheKeyComparator(equalityCheck: EqualityFn) {\r\n  return function areArgumentsShallowlyEqual(\r\n    prev: unknown[] | IArguments | null,\r\n    next: unknown[] | IArguments | null\r\n  ): boolean {\r\n    if (prev === null || next === null || prev.length !== next.length) {\r\n      return false\r\n    }\r\n\r\n    // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\r\n    const { length } = prev\r\n    for (let i = 0; i < length; i++) {\r\n      if (!equalityCheck(prev[i], next[i])) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n}\r\n\r\n/**\r\n * Options for configuring the behavior of a function memoized with\r\n * LRU (Least Recently Used) caching.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @public\r\n */\r\nexport interface LruMemoizeOptions<Result = any> {\r\n  /**\r\n   * Function used to compare the individual arguments of the\r\n   * provided calculation function.\r\n   *\r\n   * @default referenceEqualityCheck\r\n   */\r\n  equalityCheck?: EqualityFn\r\n\r\n  /**\r\n   * If provided, used to compare a newly generated output value against\r\n   * previous values in the cache. If a match is found,\r\n   * the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes\r\n   * a recalculation due to changed references, but the output is still\r\n   * effectively the same.\r\n   *\r\n   * @since 4.1.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n\r\n  /**\r\n   * The maximum size of the cache used by the selector.\r\n   * A size greater than 1 means the selector will use an\r\n   * LRU (Least Recently Used) cache, allowing for the caching of multiple\r\n   * results based on different sets of arguments.\r\n   *\r\n   * @default 1\r\n   */\r\n  maxSize?: number\r\n}\r\n\r\n/**\r\n * Creates a memoized version of a function with an optional\r\n * LRU (Least Recently Used) cache. The memoized function uses a cache to\r\n * store computed values. Depending on the `maxSize` option, it will use\r\n * either a singleton cache (for a single entry) or an\r\n * LRU cache (for multiple entries).\r\n *\r\n * **Note**: This function was previously known as `defaultMemoize`.\r\n *\r\n * @param func - The function to be memoized.\r\n * @param equalityCheckOrOptions - Either an equality check function or an options object.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}\r\n *\r\n * @public\r\n */\r\nexport function lruMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>\r\n) {\r\n  const providedOptions =\r\n    typeof equalityCheckOrOptions === 'object'\r\n      ? equalityCheckOrOptions\r\n      : { equalityCheck: equalityCheckOrOptions }\r\n\r\n  const {\r\n    equalityCheck = referenceEqualityCheck,\r\n    maxSize = 1,\r\n    resultEqualityCheck\r\n  } = providedOptions\r\n\r\n  const comparator = createCacheKeyComparator(equalityCheck)\r\n\r\n  let resultsCount = 0\r\n\r\n  const cache =\r\n    maxSize <= 1\r\n      ? createSingletonCache(comparator)\r\n      : createLruCache(maxSize, comparator)\r\n\r\n  function memoized() {\r\n    let value = cache.get(arguments) as ReturnType<Func>\r\n    if (value === NOT_FOUND) {\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      value = func.apply(null, arguments) as ReturnType<Func>\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const entries = cache.getEntries()\r\n        const matchingEntry = entries.find(entry =>\r\n          resultEqualityCheck(entry.value as ReturnType<Func>, value)\r\n        )\r\n\r\n        if (matchingEntry) {\r\n          value = matchingEntry.value as ReturnType<Func>\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n      }\r\n\r\n      cache.put(arguments, value)\r\n    }\r\n    return value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    cache.clear()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { createNode, updateNode } from './proxy'\r\nimport type { Node } from './tracking'\r\n\r\nimport { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'\r\nimport type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'\r\nimport { createCache } from './autotracking'\r\n\r\n/**\r\n * Uses an \"auto-tracking\" approach inspired by the work of the Ember Glimmer team.\r\n * It uses a Proxy to wrap arguments and track accesses to nested fields\r\n * in your selector on first read. Later, when the selector is called with\r\n * new arguments, it identifies which accessed fields have changed and\r\n * only recalculates the result if one or more of those accessed fields have changed.\r\n * This allows it to be more precise than the shallow equality checks in `lruMemoize`.\r\n *\r\n * __Design Tradeoffs for `autotrackMemoize`:__\r\n * - Pros:\r\n *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,\r\n *    which may also result in fewer component re-renders.\r\n * - Cons:\r\n *    - It only has a cache size of 1.\r\n *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)\r\n *    - It can have some unexpected behavior. Because it tracks nested field accesses,\r\n *    cases where you don't access a field will not recalculate properly.\r\n *    For example, a badly-written selector like:\r\n *      ```ts\r\n *      createSelector([state => state.todos], todos => todos)\r\n *      ```\r\n *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.\r\n *\r\n * __Use Cases for `autotrackMemoize`:__\r\n * - It is likely best used for cases where you need to access specific nested fields\r\n * in data, and avoid recalculating if other fields in the same data objects are immutably updated.\r\n *\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'\r\n *\r\n * const selectTodoIds = createSelector(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id),\r\n *   { memoize: autotrackMemoize }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'\r\n *\r\n * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })\r\n *\r\n * const selectTodoIds = createSelectorAutotrack(\r\n *   [(state: RootState) => state.todos],\r\n *   (todos) => todos.map(todo => todo.id)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function autotrackMemoize<Func extends AnyFunction>(func: Func) {\r\n  // we reference arguments instead of spreading them for performance reasons\r\n\r\n  const node: Node<Record<string, unknown>> = createNode(\r\n    [] as unknown as Record<string, unknown>\r\n  )\r\n\r\n  let lastArgs: IArguments | null = null\r\n\r\n  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)\r\n\r\n  const cache = createCache(() => {\r\n    const res = func.apply(null, node.proxy as unknown as any[])\r\n    return res\r\n  })\r\n\r\n  function memoized() {\r\n    if (!shallowEqual(lastArgs, arguments)) {\r\n      updateNode(node, arguments as unknown as Record<string, unknown>)\r\n      lastArgs = arguments\r\n    }\r\n    return cache.value\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    return cache.clear()\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n  AnyFunction,\r\n  DefaultMemoizeFields,\r\n  EqualityFn,\r\n  Simplify\r\n} from './types'\r\n\r\nclass StrongRef<T> {\r\n  constructor(private value: T) {}\r\n  deref() {\r\n    return this.value\r\n  }\r\n}\r\n\r\nconst Ref =\r\n  typeof WeakRef !== 'undefined'\r\n    ? WeakRef\r\n    : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 0\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: void\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular Map where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ninterface TerminatedCacheNode<T> {\r\n  /**\r\n   * Status, represents whether the cached computation returned a value or threw an error.\r\n   */\r\n  s: 1\r\n  /**\r\n   * Value, either the cached result or an error, depending on status.\r\n   */\r\n  v: T\r\n  /**\r\n   * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n   */\r\n  o: null | WeakMap<Function | Object, CacheNode<T>>\r\n  /**\r\n   * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n   */\r\n  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ntype CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>\r\n\r\nfunction createCacheNode<T>(): CacheNode<T> {\r\n  return {\r\n    s: UNTERMINATED,\r\n    v: undefined,\r\n    o: null,\r\n    p: null\r\n  }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions<Result = any> {\r\n  /**\r\n   * If provided, used to compare a newly generated output value against previous values in the cache.\r\n   * If a match is found, the old value is returned. This addresses the common\r\n   * ```ts\r\n   * todos.map(todo => todo.id)\r\n   * ```\r\n   * use case, where an update to another field in the original data causes a recalculation\r\n   * due to changed references, but the output is still effectively the same.\r\n   *\r\n   * @since 5.0.0\r\n   */\r\n  resultEqualityCheck?: EqualityFn<Result>\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n *   - It has an effectively infinite cache size, but you have no control over\r\n *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n *   - There's currently no way to alter the argument comparisons.\r\n *   They're based on strict reference equality.\r\n *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n *   ```ts\r\n *   useSelector(state => selectSomeData(state, props.category))\r\n *   ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category),\r\n *   {\r\n *     memoize: weakMapMemoize,\r\n *     argsMemoize: weakMapMemoize\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n *   [\r\n *     (state: RootState) => state.items,\r\n *     (state: RootState, category: string) => category\r\n *   ],\r\n *   (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize<Func extends AnyFunction>(\r\n  func: Func,\r\n  options: WeakMapMemoizeOptions<ReturnType<Func>> = {}\r\n) {\r\n  let fnNode = createCacheNode()\r\n  const { resultEqualityCheck } = options\r\n\r\n  let lastResult: WeakRef<object> | undefined\r\n\r\n  let resultsCount = 0\r\n\r\n  function memoized() {\r\n    let cacheNode = fnNode\r\n    const { length } = arguments\r\n    for (let i = 0, l = length; i < l; i++) {\r\n      const arg = arguments[i]\r\n      if (\r\n        typeof arg === 'function' ||\r\n        (typeof arg === 'object' && arg !== null)\r\n      ) {\r\n        // Objects go into a WeakMap\r\n        let objectCache = cacheNode.o\r\n        if (objectCache === null) {\r\n          cacheNode.o = objectCache = new WeakMap()\r\n        }\r\n        const objectNode = objectCache.get(arg)\r\n        if (objectNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          objectCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = objectNode\r\n        }\r\n      } else {\r\n        // Primitives go into a regular Map\r\n        let primitiveCache = cacheNode.p\r\n        if (primitiveCache === null) {\r\n          cacheNode.p = primitiveCache = new Map()\r\n        }\r\n        const primitiveNode = primitiveCache.get(arg)\r\n        if (primitiveNode === undefined) {\r\n          cacheNode = createCacheNode()\r\n          primitiveCache.set(arg, cacheNode)\r\n        } else {\r\n          cacheNode = primitiveNode\r\n        }\r\n      }\r\n    }\r\n\r\n    const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>\r\n\r\n    let result\r\n\r\n    if (cacheNode.s === TERMINATED) {\r\n      result = cacheNode.v\r\n    } else {\r\n      // Allow errors to propagate\r\n      result = func.apply(null, arguments as unknown as any[])\r\n      resultsCount++\r\n\r\n      if (resultEqualityCheck) {\r\n        const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n        if (\r\n          lastResultValue != null &&\r\n          resultEqualityCheck(lastResultValue as ReturnType<Func>, result)\r\n        ) {\r\n          result = lastResultValue\r\n\r\n          resultsCount !== 0 && resultsCount--\r\n        }\r\n\r\n        const needsWeakRef =\r\n          (typeof result === 'object' && result !== null) ||\r\n          typeof result === 'function'\r\n\r\n        lastResult = needsWeakRef ? new Ref(result) : result\r\n      }\r\n    }\r\n\r\n    terminatedNode.s = TERMINATED\r\n\r\n    terminatedNode.v = result\r\n    return result\r\n  }\r\n\r\n  memoized.clearCache = () => {\r\n    fnNode = createCacheNode()\r\n    memoized.resetResultsCount()\r\n  }\r\n\r\n  memoized.resultsCount = () => resultsCount\r\n\r\n  memoized.resetResultsCount = () => {\r\n    resultsCount = 0\r\n  }\r\n\r\n  return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n  Combiner,\r\n  CreateSelectorOptions,\r\n  DropFirstParameter,\r\n  ExtractMemoizerFields,\r\n  GetParamsFromSelectors,\r\n  GetStateFromSelectors,\r\n  InterruptRecursion,\r\n  OutputSelector,\r\n  Selector,\r\n  SelectorArray,\r\n  SetRequired,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n  assertIsFunction,\r\n  collectInputSelectorResults,\r\n  ensureIsArray,\r\n  getDependencies,\r\n  getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n  StateType = any\r\n> {\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <InputSelectors extends SelectorArray<StateType>, Result>(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors as an array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: InputSelectors,\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions: Simplify<\r\n        CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n      >\r\n    ]\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a memoized selector function.\r\n   *\r\n   * @param inputSelectors - An array of input selectors.\r\n   * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n   * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n   * @returns A memoized output selector.\r\n   *\r\n   * @template InputSelectors - The type of the input selectors array.\r\n   * @template Result - The return type of the `combiner` as well as the output selector.\r\n   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n   */\r\n  <\r\n    InputSelectors extends SelectorArray<StateType>,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    inputSelectors: [...InputSelectors],\r\n    combiner: Combiner<InputSelectors, Result>,\r\n    createSelectorOptions?: Simplify<\r\n      CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    >\r\n  ): OutputSelector<\r\n    InputSelectors,\r\n    Result,\r\n    OverrideMemoizeFunction,\r\n    OverrideArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every {@linkcode createSelector createSelector} call.\r\n   *\r\n   * @returns A pre-typed `createSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createAppSelector = createSelector.withTypes<RootState>()\r\n   *\r\n   * const selectTodoIds = createAppSelector(\r\n   *   [\r\n   *     // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *     state => state.todos\r\n   *   ],\r\n   *   todos => todos.map(({ id }) => id)\r\n   * )\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction,\r\n    OverrideStateType\r\n  >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n *   memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n *   ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n  options: Simplify<\r\n    SetRequired<\r\n      CreateSelectorOptions<\r\n        typeof weakMapMemoize,\r\n        typeof weakMapMemoize,\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >,\r\n      'memoize'\r\n    >\r\n  >\r\n): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n *   option1, // Will be passed as second argument to `customMemoize`\r\n *   option2, // Will be passed as third argument to `customMemoize`\r\n *   option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n *   [inputSelector1, inputSelector2],\r\n *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(\r\n  memoize: MemoizeFunction,\r\n  ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>\r\n): CreateSelectorFunction<MemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n  MemoizeFunction extends UnknownMemoizer,\r\n  ArgsMemoizeFunction extends UnknownMemoizer,\r\n  MemoizeOrOptions extends\r\n    | MemoizeFunction\r\n    | SetRequired<\r\n        CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n        'memoize'\r\n      >\r\n>(\r\n  memoizeOrOptions: MemoizeOrOptions,\r\n  ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  >\r\n    ? never\r\n    : DropFirstParameter<MemoizeFunction>\r\n) {\r\n  /** options initially passed into `createSelectorCreator`. */\r\n  const createSelectorCreatorOptions: SetRequired<\r\n    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n    'memoize'\r\n  > = typeof memoizeOrOptions === 'function'\r\n    ? {\r\n        memoize: memoizeOrOptions as MemoizeFunction,\r\n        memoizeOptions: memoizeOptionsFromArgs\r\n      }\r\n    : memoizeOrOptions\r\n\r\n  const createSelector = <\r\n    InputSelectors extends SelectorArray,\r\n    Result,\r\n    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n  >(\r\n    ...createSelectorArgs: [\r\n      ...inputSelectors: [...InputSelectors],\r\n      combiner: Combiner<InputSelectors, Result>,\r\n      createSelectorOptions?: CreateSelectorOptions<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction,\r\n        OverrideMemoizeFunction,\r\n        OverrideArgsMemoizeFunction\r\n      >\r\n    ]\r\n  ) => {\r\n    let recomputations = 0\r\n    let dependencyRecomputations = 0\r\n    let lastResult: Result\r\n\r\n    // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n    // So, start by declaring the default value here.\r\n    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n    let directlyPassedOptions: CreateSelectorOptions<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    > = {}\r\n\r\n    // Normally, the result func or \"combiner\" is the last arg\r\n    let resultFunc = createSelectorArgs.pop() as\r\n      | Combiner<InputSelectors, Result>\r\n      | CreateSelectorOptions<\r\n          MemoizeFunction,\r\n          ArgsMemoizeFunction,\r\n          OverrideMemoizeFunction,\r\n          OverrideArgsMemoizeFunction\r\n        >\r\n\r\n    // If the result func is actually an _object_, assume it's our options object\r\n    if (typeof resultFunc === 'object') {\r\n      directlyPassedOptions = resultFunc\r\n      // and pop the real result func off\r\n      resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>\r\n    }\r\n\r\n    assertIsFunction(\r\n      resultFunc,\r\n      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n    )\r\n\r\n    // Determine which set of options we're using. Prefer options passed directly,\r\n    // but fall back to options given to `createSelectorCreator`.\r\n    const combinedOptions = {\r\n      ...createSelectorCreatorOptions,\r\n      ...directlyPassedOptions\r\n    }\r\n\r\n    const {\r\n      memoize,\r\n      memoizeOptions = [],\r\n      argsMemoize = weakMapMemoize,\r\n      argsMemoizeOptions = [],\r\n      devModeChecks = {}\r\n    } = combinedOptions\r\n\r\n    // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n    // is an array. In most libs I've looked at, it's an equality function or options object.\r\n    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n    // we wrap it in an array so we can apply it.\r\n    const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n    const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n    const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n      recomputations++\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      return (resultFunc as Combiner<InputSelectors, Result>).apply(\r\n        null,\r\n        arguments as unknown as Parameters<Combiner<InputSelectors, Result>>\r\n      )\r\n    }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &\r\n      ExtractMemoizerFields<OverrideMemoizeFunction>\r\n\r\n    let firstRun = true\r\n\r\n    // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n    const selector = argsMemoize(function dependenciesChecker() {\r\n      dependencyRecomputations++\r\n      /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n      const inputSelectorResults = collectInputSelectorResults(\r\n        dependencies,\r\n        arguments\r\n      )\r\n\r\n      // apply arguments instead of spreading for performance.\r\n      // @ts-ignore\r\n      lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        const { identityFunctionCheck, inputStabilityCheck } =\r\n          getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n        if (identityFunctionCheck.shouldRun) {\r\n          identityFunctionCheck.run(\r\n            resultFunc as Combiner<InputSelectors, Result>,\r\n            inputSelectorResults,\r\n            lastResult\r\n          )\r\n        }\r\n\r\n        if (inputStabilityCheck.shouldRun) {\r\n          // make a second copy of the params, to check if we got the same results\r\n          const inputSelectorResultsCopy = collectInputSelectorResults(\r\n            dependencies,\r\n            arguments\r\n          )\r\n\r\n          inputStabilityCheck.run(\r\n            { inputSelectorResults, inputSelectorResultsCopy },\r\n            { memoize, memoizeOptions: finalMemoizeOptions },\r\n            arguments\r\n          )\r\n        }\r\n\r\n        if (firstRun) firstRun = false\r\n      }\r\n\r\n      return lastResult\r\n    }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n      GetStateFromSelectors<InputSelectors>,\r\n      Result,\r\n      GetParamsFromSelectors<InputSelectors>\r\n    > &\r\n      ExtractMemoizerFields<OverrideArgsMemoizeFunction>\r\n\r\n    return Object.assign(selector, {\r\n      resultFunc,\r\n      memoizedResultFunc,\r\n      dependencies,\r\n      dependencyRecomputations: () => dependencyRecomputations,\r\n      resetDependencyRecomputations: () => {\r\n        dependencyRecomputations = 0\r\n      },\r\n      lastResult: () => lastResult,\r\n      recomputations: () => recomputations,\r\n      resetRecomputations: () => {\r\n        recomputations = 0\r\n      },\r\n      memoize,\r\n      argsMemoize\r\n    }) as OutputSelector<\r\n      InputSelectors,\r\n      Result,\r\n      OverrideMemoizeFunction,\r\n      OverrideArgsMemoizeFunction\r\n    >\r\n  }\r\n\r\n  Object.assign(createSelector, {\r\n    withTypes: () => createSelector\r\n  })\r\n\r\n  return createSelector as CreateSelectorFunction<\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n  /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n  InterruptRecursion,\r\n  ObjectValuesToTuple,\r\n  OutputSelector,\r\n  Selector,\r\n  Simplify,\r\n  UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap<TObject extends SelectorsObject> = {\r\n  [Key in keyof TObject]: ReturnType<TObject[Key]>\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors<RootState = any> = {\r\n  [Key in keyof RootState]: Selector<RootState, RootState[Key], []>\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator<RootState = any> =\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ) => OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject<StateType = any> = Record<\r\n  string,\r\n  Selector<StateType>\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator<StateType = any> {\r\n  /**\r\n   * A convenience function that simplifies returning an object\r\n   * made up of selector results.\r\n   *\r\n   * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n   * @returns A memoized structured selector.\r\n   *\r\n   * @example\r\n   * <caption>Modern Use Case</caption>\r\n   * ```ts\r\n   * import { createSelector, createStructuredSelector } from 'reselect'\r\n   *\r\n   * interface RootState {\r\n   *   todos: {\r\n   *     id: number\r\n   *     completed: boolean\r\n   *     title: string\r\n   *     description: string\r\n   *   }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * // This:\r\n   * const structuredSelector = createStructuredSelector(\r\n   *   {\r\n   *     todos: (state: RootState) => state.todos,\r\n   *     alerts: (state: RootState) => state.alerts,\r\n   *     todoById: (state: RootState, id: number) => state.todos[id]\r\n   *   },\r\n   *   createSelector\r\n   * )\r\n   *\r\n   * // Is essentially the same as this:\r\n   * const selector = createSelector(\r\n   *   [\r\n   *     (state: RootState) => state.todos,\r\n   *     (state: RootState) => state.alerts,\r\n   *     (state: RootState, id: number) => state.todos[id]\r\n   *   ],\r\n   *   (todos, alerts, todoById) => {\r\n   *     return {\r\n   *       todos,\r\n   *       alerts,\r\n   *       todoById\r\n   *     }\r\n   *   }\r\n   * )\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>In your component:</caption>\r\n   * ```tsx\r\n   * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n   * import type { FC } from 'react'\r\n   * import { useSelector } from 'react-redux'\r\n   *\r\n   * interface Props {\r\n   *   id: number\r\n   * }\r\n   *\r\n   * const MyComponent: FC<Props> = ({ id }) => {\r\n   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n   *     structuredSelector(state, id)\r\n   *   )\r\n   *\r\n   *   return (\r\n   *     <div>\r\n   *       Next to do is:\r\n   *       <h2>{todoById.title}</h2>\r\n   *       <p>Description: {todoById.description}</p>\r\n   *       <ul>\r\n   *         <h3>All other to dos:</h3>\r\n   *         {todos.map(todo => (\r\n   *           <li key={todo.id}>{todo.title}</li>\r\n   *         ))}\r\n   *       </ul>\r\n   *     </div>\r\n   *   )\r\n   * }\r\n   * ```\r\n   *\r\n   * @example\r\n   * <caption>Simple Use Case</caption>\r\n   * ```ts\r\n   * const selectA = state => state.a\r\n   * const selectB = state => state.b\r\n   *\r\n   * // The result function in the following selector\r\n   * // is simply building an object from the input selectors\r\n   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n   *   a,\r\n   *   b\r\n   * }))\r\n   *\r\n   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n   * ```\r\n   *\r\n   * @template InputSelectorsObject - The shape of the input selectors object.\r\n   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n   */\r\n  <\r\n    InputSelectorsObject extends SelectorsObject<StateType>,\r\n    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n  >(\r\n    inputSelectorsObject: InputSelectorsObject,\r\n    selectorCreator?: CreateSelectorFunction<\r\n      MemoizeFunction,\r\n      ArgsMemoizeFunction\r\n    >\r\n  ): OutputSelector<\r\n    ObjectValuesToTuple<InputSelectorsObject>,\r\n    Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n    MemoizeFunction,\r\n    ArgsMemoizeFunction\r\n  > &\r\n    InterruptRecursion\r\n\r\n  /**\r\n   * Creates a \"pre-typed\" version of\r\n   * {@linkcode createStructuredSelector createStructuredSelector}\r\n   * where the `state` type is predefined.\r\n   *\r\n   * This allows you to set the `state` type once, eliminating the need to\r\n   * specify it with every\r\n   * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n   *\r\n   * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * import { createStructuredSelector } from 'reselect'\r\n   *\r\n   * export interface RootState {\r\n   *   todos: { id: number; completed: boolean }[]\r\n   *   alerts: { id: number; read: boolean }[]\r\n   * }\r\n   *\r\n   * export const createStructuredAppSelector =\r\n   *   createStructuredSelector.withTypes<RootState>()\r\n   *\r\n   * const structuredAppSelector = createStructuredAppSelector({\r\n   *   // Type of `state` is set to `RootState`, no need to manually set the type\r\n   *   todos: state => state.todos,\r\n   *   alerts: state => state.alerts,\r\n   *   todoById: (state, id: number) => state.todos[id]\r\n   * })\r\n   *\r\n   * ```\r\n   * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n   *\r\n   * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n   *\r\n   * @since 5.1.0\r\n   */\r\n  withTypes: <\r\n    OverrideStateType extends StateType\r\n  >() => StructuredSelectorCreator<OverrideStateType>\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n *   todos: {\r\n *     id: number\r\n *     completed: boolean\r\n *     title: string\r\n *     description: string\r\n *   }[]\r\n *   alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n *   {\r\n *     todos: (state: RootState) => state.todos,\r\n *     alerts: (state: RootState) => state.alerts,\r\n *     todoById: (state: RootState, id: number) => state.todos[id]\r\n *   },\r\n *   createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n *   [\r\n *     (state: RootState) => state.todos,\r\n *     (state: RootState) => state.alerts,\r\n *     (state: RootState, id: number) => state.todos[id]\r\n *   ],\r\n *   (todos, alerts, todoById) => {\r\n *     return {\r\n *       todos,\r\n *       alerts,\r\n *       todoById\r\n *     }\r\n *   }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n  Object.assign(\r\n    <\r\n      InputSelectorsObject extends SelectorsObject,\r\n      MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n      ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n    >(\r\n      inputSelectorsObject: InputSelectorsObject,\r\n      selectorCreator: CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      > = createSelector as CreateSelectorFunction<\r\n        MemoizeFunction,\r\n        ArgsMemoizeFunction\r\n      >\r\n    ) => {\r\n      assertIsObject(\r\n        inputSelectorsObject,\r\n        'createStructuredSelector expects first argument to be an object ' +\r\n          `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n      )\r\n      const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n      const dependencies = inputSelectorKeys.map(\r\n        key => inputSelectorsObject[key]\r\n      )\r\n      const structuredSelector = selectorCreator(\r\n        dependencies,\r\n        (...inputSelectorResults: any[]) => {\r\n          return inputSelectorResults.reduce((composition, value, index) => {\r\n            composition[inputSelectorKeys[index]] = value\r\n            return composition\r\n          }, {})\r\n        }\r\n      )\r\n      return structuredSelector\r\n    },\r\n    { withTypes: () => createStructuredSelector }\r\n  ) as StructuredSelectorCreator\r\n"],"mappings":";AAmBO,IAAM,2BAA2B,CACtC,YACA,uBACA,yBACG;AACH,MACE,sBAAsB,WAAW,KACjC,sBAAsB,CAAC,MAAM,sBAC7B;AACA,QAAI,sBAAsB;AAC1B,QAAI;AACF,YAAM,cAAc,CAAC;AACrB,UAAI,WAAW,WAAW,MAAM;AAAa,8BAAsB;AAAA,IACrE,QAAE;AAAA,IAEF;AACA,QAAI,qBAAqB;AACvB,UAAI,QAA4B;AAChC,UAAI;AACF,cAAM,IAAI,MAAM;AAAA,MAClB,SAAS,GAAP;AAEA;AAAC,SAAC,EAAE,MAAM,IAAI;AAAA,MAChB;AACA,cAAQ;AAAA,QACN;AAAA,QAIA,EAAE,MAAM;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;ACpCO,IAAM,yBAAyB,CACpC,4BAIA,SAMA,sBACG;AACH,QAAM,EAAE,SAAS,eAAe,IAAI;AACpC,QAAM,EAAE,sBAAsB,yBAAyB,IACrD;AACF,QAAM,sBAAsB,QAAQ,OAAO,CAAC,IAAI,GAAG,cAAc;AAEjE,QAAM,+BACJ,oBAAoB,MAAM,MAAM,oBAAoB,MACpD,oBAAoB,MAAM,MAAM,wBAAwB;AAC1D,MAAI,CAAC,8BAA8B;AACjC,QAAI,QAA4B;AAChC,QAAI;AACF,YAAM,IAAI,MAAM;AAAA,IAClB,SAAS,GAAP;AAEA;AAAC,OAAC,EAAE,MAAM,IAAI;AAAA,IAChB;AACA,YAAQ;AAAA,MACN;AAAA,MAIA;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACjDO,IAAM,sBAAqC;AAAA,EAChD,qBAAqB;AAAA,EACrB,uBAAuB;AACzB;AA8CO,IAAM,yBAAyB,CACpC,kBACG;AACH,SAAO,OAAO,qBAAqB,aAAa;AAClD;;;ACnDO,IAAM,YAA4B,uBAAO,WAAW;AAWpD,SAAS,iBACd,MACA,eAAe,yCAAyC,OAAO,QACjC;AAC9B,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,eACd,QACA,eAAe,wCAAwC,OAAO,UAChC;AAC9B,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,IAAI,UAAU,YAAY;AAAA,EAClC;AACF;AAUO,SAAS,yBACd,OACA,eAAe,8EACkB;AACjC,MACE,CAAC,MAAM,MAAM,CAAC,SAA+B,OAAO,SAAS,UAAU,GACvE;AACA,UAAM,YAAY,MACf;AAAA,MAAI,UACH,OAAO,SAAS,aACZ,YAAY,KAAK,QAAQ,gBACzB,OAAO;AAAA,IACb,EACC,KAAK,IAAI;AACZ,UAAM,IAAI,UAAU,GAAG,gBAAgB,YAAY;AAAA,EACrD;AACF;AASO,IAAM,gBAAgB,CAAC,SAAkB;AAC9C,SAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC3C;AASO,SAAS,gBAAgB,oBAA+B;AAC7D,QAAM,eAAe,MAAM,QAAQ,mBAAmB,CAAC,CAAC,IACpD,mBAAmB,CAAC,IACpB;AAEJ;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,4BACd,cACA,mBACA;AACA,QAAM,uBAAuB,CAAC;AAC9B,QAAM,EAAE,OAAO,IAAI;AACnB,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAG/B,yBAAqB,KAAK,aAAa,CAAC,EAAE,MAAM,MAAM,iBAAiB,CAAC;AAAA,EAC1E;AACA,SAAO;AACT;AASO,IAAM,gCAAgC,CAC3C,UACA,kBACG;AACH,QAAM,EAAE,uBAAuB,oBAAoB,IAAI;AAAA,IACrD,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,SAAO;AAAA,IACL,uBAAuB;AAAA,MACrB,WACE,0BAA0B,YACzB,0BAA0B,UAAU;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,IACA,qBAAqB;AAAA,MACnB,WACE,wBAAwB,YACvB,wBAAwB,UAAU;AAAA,MACrC,KAAK;AAAA,IACP;AAAA,EACF;AACF;;;AClJO,IAAI,YAAY;AAKvB,IAAI,kBAAyD;AAGtD,IAAM,OAAN,MAAc;AAAA,EACnB,WAAW;AAAA,EAEX;AAAA,EACA;AAAA,EACA,WAAuB;AAAA,EAEvB,YAAY,cAAiB,UAAsB,UAAU;AAC3D,SAAK,SAAS,KAAK,aAAa;AAChC,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,qBAAiB,IAAI,IAAI;AAEzB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,MAAM,UAAU;AAClB,QAAI,KAAK,UAAU;AAAU;AAE7B,SAAK,SAAS;AACd,SAAK,WAAW,EAAE;AAAA,EACpB;AACF;AAEA,SAAS,SAAS,GAAY,GAAY;AACxC,SAAO,MAAM;AACf;AAMO,IAAM,gBAAN,MAAoB;AAAA,EACzB;AAAA,EACA,kBAAkB;AAAA,EAClB,QAAe,CAAC;AAAA,EAChB,OAAO;AAAA,EAEP;AAAA,EAEA,YAAY,IAAe;AACzB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,QAAQ;AACN,SAAK,eAAe;AACpB,SAAK,kBAAkB;AACvB,SAAK,QAAQ,CAAC;AACd,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ;AAIV,QAAI,KAAK,WAAW,KAAK,iBAAiB;AACxC,YAAM,EAAE,GAAG,IAAI;AAMf,YAAM,iBAAiB,oBAAI,IAAe;AAC1C,YAAM,cAAc;AAEpB,wBAAkB;AAGlB,WAAK,eAAe,GAAG;AAEvB,wBAAkB;AAClB,WAAK;AACL,WAAK,QAAQ,MAAM,KAAK,cAAc;AAKtC,WAAK,kBAAkB,KAAK;AAAA,IAE9B;AAIA,qBAAiB,IAAI,IAAI;AAGzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW;AAEb,WAAO,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,OAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,EACvD;AACF;AAEO,SAAS,SAAY,MAAkB;AAC5C,MAAI,EAAE,gBAAgB,OAAO;AAC3B,YAAQ,KAAK,sBAAsB,IAAI;AAAA,EACzC;AAEA,SAAO,KAAK;AACd;AAIO,SAAS,SACd,SACA,OACM;AACN,MAAI,EAAE,mBAAmB,OAAO;AAC9B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,QAAQ,QAAQ,aAAa;AACvC;AAEO,SAAS,WACd,cACA,UAAsB,UACb;AACT,SAAO,IAAI,KAAK,cAAc,OAAO;AACvC;AAEO,SAAS,YAAyB,IAA4B;AACnE;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAEA,SAAO,IAAI,cAAc,EAAE;AAC7B;;;ACrJA,IAAM,UAAU,CAAC,GAAQ,MAAoB;AAEtC,SAAS,YAAiB;AAC/B,SAAO,WAAc,MAAM,OAAO;AACpC;AAEO,SAAS,SAAS,KAAU,OAAkB;AACnD,WAAS,KAAK,KAAK;AACrB;AAgBO,IAAM,oBAAoB,CAAC,SAAqB;AACrD,MAAI,MAAM,KAAK;AAEf,MAAI,QAAQ,MAAM;AAChB,UAAM,KAAK,gBAAgB,UAAU;AAAA,EACvC;AAEA,WAAW,GAAG;AAChB;AAEO,IAAM,kBAAkB,CAAC,SAAqB;AACnD,QAAM,MAAM,KAAK;AAEjB,MAAI,QAAQ,MAAM;AAChB,aAAS,KAAK,IAAI;AAAA,EACpB;AACF;;;ACrCO,IAAM,oBAAoB,OAAO;AAExC,IAAI,SAAS;AAEb,IAAM,QAAQ,OAAO,eAAe,CAAC,CAAC;AAEtC,IAAM,iBAAN,MAA2E;AAAA,EAQzE,YAAmB,OAAU;AAAV;AACjB,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AAAA,EAVA,QAAW,IAAI,MAAM,MAAM,kBAAkB;AAAA,EAC7C,MAAM,UAAU;AAAA,EAChB,OAAO,CAAC;AAAA,EACR,WAAW,CAAC;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAMP;AAEA,IAAM,qBAAqB;AAAA,EACzB,IAAI,MAAY,KAA+B;AAC7C,aAAS,kBAAkB;AACzB,YAAM,EAAE,MAAM,IAAI;AAElB,YAAM,aAAa,QAAQ,IAAI,OAAO,GAAG;AAEzC,UAAI,OAAO,QAAQ,UAAU;AAC3B,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,OAAO;AAChB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,eAAe,YAAY,eAAe,MAAM;AACzD,YAAI,YAAY,KAAK,SAAS,GAAG;AAEjC,YAAI,cAAc,QAAW;AAC3B,sBAAY,KAAK,SAAS,GAAG,IAAI,WAAW,UAAU;AAAA,QACxD;AAEA,YAAI,UAAU,KAAK;AACjB,mBAAW,UAAU,GAAG;AAAA,QAC1B;AAEA,eAAO,UAAU;AAAA,MACnB,OAAO;AACL,YAAI,MAAM,KAAK,KAAK,GAAG;AAEvB,YAAI,QAAQ,QAAW;AACrB,gBAAM,KAAK,KAAK,GAAG,IAAI,UAAU;AACjC,cAAI,QAAQ;AAAA,QACd;AAEA,iBAAW,GAAG;AAEd,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,MAAM,gBAAgB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAwC;AAC9C,sBAAkB,IAAI;AACtB,WAAO,QAAQ,QAAQ,KAAK,KAAK;AAAA,EACnC;AAAA,EAEA,yBACE,MACA,MACgC;AAChC,WAAO,QAAQ,yBAAyB,KAAK,OAAO,IAAI;AAAA,EAC1D;AAAA,EAEA,IAAI,MAAY,MAAgC;AAC9C,WAAO,QAAQ,IAAI,KAAK,OAAO,IAAI;AAAA,EACrC;AACF;AAEA,IAAM,gBAAN,MAAiE;AAAA,EAQ/D,YAAmB,OAAU;AAAV;AACjB,SAAK,QAAQ;AACb,SAAK,IAAI,QAAQ;AAAA,EACnB;AAAA,EAVA,QAAW,IAAI,MAAM,CAAC,IAAI,GAAG,iBAAiB;AAAA,EAC9C,MAAM,UAAU;AAAA,EAChB,OAAO,CAAC;AAAA,EACR,WAAW,CAAC;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAMP;AAEA,IAAM,oBAAoB;AAAA,EACxB,IAAI,CAAC,IAAI,GAAW,KAA+B;AACjD,QAAI,QAAQ,UAAU;AACpB,wBAAkB,IAAI;AAAA,IACxB;AAEA,WAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,EACzC;AAAA,EAEA,QAAQ,CAAC,IAAI,GAAuC;AAClD,WAAO,mBAAmB,QAAQ,IAAI;AAAA,EACxC;AAAA,EAEA,yBACE,CAAC,IAAI,GACL,MACgC;AAChC,WAAO,mBAAmB,yBAAyB,MAAM,IAAI;AAAA,EAC/D;AAAA,EAEA,IAAI,CAAC,IAAI,GAAW,MAAgC;AAClD,WAAO,mBAAmB,IAAI,MAAM,IAAI;AAAA,EAC1C;AACF;AAEO,SAAS,WACd,OACS;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,IAAI,cAAc,KAAK;AAAA,EAChC;AAEA,SAAO,IAAI,eAAe,KAAK;AACjC;AAOO,SAAS,WACd,MACA,UACM;AACN,QAAM,EAAE,OAAO,MAAM,SAAS,IAAI;AAElC,OAAK,QAAQ;AAEb,MACE,MAAM,QAAQ,KAAK,KACnB,MAAM,QAAQ,QAAQ,KACtB,MAAM,WAAW,SAAS,QAC1B;AACA,oBAAgB,IAAI;AAAA,EACtB,OAAO;AACL,QAAI,UAAU,UAAU;AACtB,UAAI,cAAc;AAClB,UAAI,cAAc;AAClB,UAAI,eAAe;AAEnB,iBAAW,QAAQ,OAAO;AACxB;AAAA,MACF;AAEA,iBAAW,OAAO,UAAU;AAC1B;AACA,YAAI,EAAE,OAAO,QAAQ;AACnB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,YAAM,cAAc,gBAAgB,gBAAgB;AAEpD,UAAI,aAAa;AACf,wBAAgB,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAEA,aAAW,OAAO,MAAM;AACtB,UAAM,aAAc,MAAkC,GAAG;AACzD,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,QAAI,eAAe,eAAe;AAChC,sBAAgB,IAAI;AACpB,eAAS,KAAK,GAAG,GAAG,aAAa;AAAA,IACnC;AAEA,QAAI,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AAC/D,aAAO,KAAK,GAAG;AAAA,IACjB;AAAA,EACF;AAEA,aAAW,OAAO,UAAU;AAC1B,UAAM,YAAY,SAAS,GAAG;AAC9B,UAAM,gBAAiB,SAAqC,GAAG;AAE/D,UAAM,aAAa,UAAU;AAE7B,QAAI,eAAe,eAAe;AAChC;AAAA,IACF,WAAW,OAAO,kBAAkB,YAAY,kBAAkB,MAAM;AACtE,iBAAW,WAAW,aAAwC;AAAA,IAChE,OAAO;AACL,iBAAW,SAAS;AACpB,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,EACF;AACF;AAEA,SAAS,WAAW,MAAkB;AACpC,MAAI,KAAK,KAAK;AACZ,aAAS,KAAK,KAAK,IAAI;AAAA,EACzB;AACA,kBAAgB,IAAI;AACpB,aAAW,OAAO,KAAK,MAAM;AAC3B,aAAS,KAAK,KAAK,GAAG,GAAG,IAAI;AAAA,EAC/B;AACA,aAAW,OAAO,KAAK,UAAU;AAC/B,eAAW,KAAK,SAAS,GAAG,CAAC;AAAA,EAC/B;AACF;;;AC5MA,SAAS,qBAAqB,QAA2B;AACvD,MAAI;AACJ,SAAO;AAAA,IACL,IAAI,KAAc;AAChB,UAAI,SAAS,OAAO,MAAM,KAAK,GAAG,GAAG;AACnC,eAAO,MAAM;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,KAAc,OAAgB;AAChC,cAAQ,EAAE,KAAK,MAAM;AAAA,IACvB;AAAA,IAEA,aAAa;AACX,aAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;AAAA,IAC5B;AAAA,IAEA,QAAQ;AACN,cAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,SAAS,eAAe,SAAiB,QAA2B;AAClE,MAAI,UAAmB,CAAC;AAExB,WAAS,IAAI,KAAc;AACzB,UAAM,aAAa,QAAQ,UAAU,WAAS,OAAO,KAAK,MAAM,GAAG,CAAC;AAGpE,QAAI,aAAa,IAAI;AACnB,YAAM,QAAQ,QAAQ,UAAU;AAGhC,UAAI,aAAa,GAAG;AAClB,gBAAQ,OAAO,YAAY,CAAC;AAC5B,gBAAQ,QAAQ,KAAK;AAAA,MACvB;AAEA,aAAO,MAAM;AAAA,IACf;AAGA,WAAO;AAAA,EACT;AAEA,WAAS,IAAI,KAAc,OAAgB;AACzC,QAAI,IAAI,GAAG,MAAM,WAAW;AAE1B,cAAQ,QAAQ,EAAE,KAAK,MAAM,CAAC;AAC9B,UAAI,QAAQ,SAAS,SAAS;AAC5B,gBAAQ,IAAI;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAEA,WAAS,aAAa;AACpB,WAAO;AAAA,EACT;AAEA,WAAS,QAAQ;AACf,cAAU,CAAC;AAAA,EACb;AAEA,SAAO,EAAE,KAAK,KAAK,YAAY,MAAM;AACvC;AAUO,IAAM,yBAAqC,CAAC,GAAG,MAAM,MAAM;AAE3D,SAAS,yBAAyB,eAA2B;AAClE,SAAO,SAAS,2BACd,MACA,MACS;AACT,QAAI,SAAS,QAAQ,SAAS,QAAQ,KAAK,WAAW,KAAK,QAAQ;AACjE,aAAO;AAAA,IACT;AAGA,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,UAAI,CAAC,cAAc,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAgEO,SAAS,WACd,MACA,wBACA;AACA,QAAM,kBACJ,OAAO,2BAA2B,WAC9B,yBACA,EAAE,eAAe,uBAAuB;AAE9C,QAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,EACF,IAAI;AAEJ,QAAM,aAAa,yBAAyB,aAAa;AAEzD,MAAI,eAAe;AAEnB,QAAM,QACJ,WAAW,IACP,qBAAqB,UAAU,IAC/B,eAAe,SAAS,UAAU;AAExC,WAAS,WAAW;AAClB,QAAI,QAAQ,MAAM,IAAI,SAAS;AAC/B,QAAI,UAAU,WAAW;AAGvB,cAAQ,KAAK,MAAM,MAAM,SAAS;AAClC;AAEA,UAAI,qBAAqB;AACvB,cAAM,UAAU,MAAM,WAAW;AACjC,cAAM,gBAAgB,QAAQ;AAAA,UAAK,WACjC,oBAAoB,MAAM,OAA2B,KAAK;AAAA,QAC5D;AAEA,YAAI,eAAe;AACjB,kBAAQ,cAAc;AACtB,2BAAiB,KAAK;AAAA,QACxB;AAAA,MACF;AAEA,YAAM,IAAI,WAAW,KAAK;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,UAAM,MAAM;AACZ,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;AClLO,SAAS,iBAA2C,MAAY;AAGrE,QAAM,OAAsC;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,MAAI,WAA8B;AAElC,QAAM,eAAe,yBAAyB,sBAAsB;AAEpE,QAAM,QAAQ,YAAY,MAAM;AAC9B,UAAM,MAAM,KAAK,MAAM,MAAM,KAAK,KAAyB;AAC3D,WAAO;AAAA,EACT,CAAC;AAED,WAAS,WAAW;AAClB,QAAI,CAAC,aAAa,UAAU,SAAS,GAAG;AACtC,iBAAW,MAAM,SAA+C;AAChE,iBAAW;AAAA,IACb;AACA,WAAO,MAAM;AAAA,EACf;AAEA,WAAS,aAAa,MAAM;AAC1B,WAAO,MAAM,MAAM;AAAA,EACrB;AAEA,SAAO;AACT;;;ACzFA,IAAM,YAAN,MAAmB;AAAA,EACjB,YAAoB,OAAU;AAAV;AAAA,EAAW;AAAA,EAC/B,QAAQ;AACN,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAM,MACJ,OAAO,YAAY,cACf,UACC;AAEP,IAAM,eAAe;AACrB,IAAM,aAAa;AA0CnB,SAAS,kBAAmC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAmGO,SAAS,eACd,MACA,UAAmD,CAAC,GACpD;AACA,MAAI,SAAS,gBAAgB;AAC7B,QAAM,EAAE,oBAAoB,IAAI;AAEhC,MAAI;AAEJ,MAAI,eAAe;AAEnB,WAAS,WAAW;AAClB,QAAI,YAAY;AAChB,UAAM,EAAE,OAAO,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,KAAK;AACtC,YAAM,MAAM,UAAU,CAAC;AACvB,UACE,OAAO,QAAQ,cACd,OAAO,QAAQ,YAAY,QAAQ,MACpC;AAEA,YAAI,cAAc,UAAU;AAC5B,YAAI,gBAAgB,MAAM;AACxB,oBAAU,IAAI,cAAc,oBAAI,QAAQ;AAAA,QAC1C;AACA,cAAM,aAAa,YAAY,IAAI,GAAG;AACtC,YAAI,eAAe,QAAW;AAC5B,sBAAY,gBAAgB;AAC5B,sBAAY,IAAI,KAAK,SAAS;AAAA,QAChC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF,OAAO;AAEL,YAAI,iBAAiB,UAAU;AAC/B,YAAI,mBAAmB,MAAM;AAC3B,oBAAU,IAAI,iBAAiB,oBAAI,IAAI;AAAA,QACzC;AACA,cAAM,gBAAgB,eAAe,IAAI,GAAG;AAC5C,YAAI,kBAAkB,QAAW;AAC/B,sBAAY,gBAAgB;AAC5B,yBAAe,IAAI,KAAK,SAAS;AAAA,QACnC,OAAO;AACL,sBAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAEA,UAAM,iBAAiB;AAEvB,QAAI;AAEJ,QAAI,UAAU,MAAM,YAAY;AAC9B,eAAS,UAAU;AAAA,IACrB,OAAO;AAEL,eAAS,KAAK,MAAM,MAAM,SAA6B;AACvD;AAEA,UAAI,qBAAqB;AACvB,cAAM,kBAAkB,YAAY,QAAQ,KAAK;AAEjD,YACE,mBAAmB,QACnB,oBAAoB,iBAAqC,MAAM,GAC/D;AACA,mBAAS;AAET,2BAAiB,KAAK;AAAA,QACxB;AAEA,cAAM,eACH,OAAO,WAAW,YAAY,WAAW,QAC1C,OAAO,WAAW;AAEpB,qBAAa,eAAe,IAAI,IAAI,MAAM,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,mBAAe,IAAI;AAEnB,mBAAe,IAAI;AACnB,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM;AAC1B,aAAS,gBAAgB;AACzB,aAAS,kBAAkB;AAAA,EAC7B;AAEA,WAAS,eAAe,MAAM;AAE9B,WAAS,oBAAoB,MAAM;AACjC,mBAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;ACaO,SAAS,sBAUd,qBACG,wBAMH;AAEA,QAAM,+BAGF,OAAO,qBAAqB,aAC5B;AAAA,IACE,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,IACA;AAEJ,QAAMA,kBAAiB,IAMlB,uBAUA;AACH,QAAI,iBAAiB;AACrB,QAAI,2BAA2B;AAC/B,QAAI;AAKJ,QAAI,wBAKA,CAAC;AAGL,QAAI,aAAa,mBAAmB,IAAI;AAUxC,QAAI,OAAO,eAAe,UAAU;AAClC,8BAAwB;AAExB,mBAAa,mBAAmB,IAAI;AAAA,IACtC;AAEA;AAAA,MACE;AAAA,MACA,8EAA8E,OAAO;AAAA,IACvF;AAIA,UAAM,kBAAkB;AAAA,MACtB,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAEA,UAAM;AAAA,MACJ;AAAA,MACA,iBAAiB,CAAC;AAAA,MAClB,cAAc;AAAA,MACd,qBAAqB,CAAC;AAAA,MACtB,gBAAgB,CAAC;AAAA,IACnB,IAAI;AAOJ,UAAM,sBAAsB,cAAc,cAAc;AACxD,UAAM,0BAA0B,cAAc,kBAAkB;AAChE,UAAM,eAAe,gBAAgB,kBAAkB;AAEvD,UAAM,qBAAqB,QAAQ,SAAS,uBAAuB;AACjE;AAGA,aAAQ,WAAgD;AAAA,QACtD;AAAA,QACA;AAAA,MACF;AAAA,IACF,GAAG,GAAG,mBAAmB;AAGzB,QAAI,WAAW;AAGf,UAAM,WAAW,YAAY,SAAS,sBAAsB;AAC1D;AAEA,YAAM,uBAAuB;AAAA,QAC3B;AAAA,QACA;AAAA,MACF;AAIA,mBAAa,mBAAmB,MAAM,MAAM,oBAAoB;AAEhE,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAM,EAAE,uBAAuB,oBAAoB,IACjD,8BAA8B,UAAU,aAAa;AACvD,YAAI,sBAAsB,WAAW;AACnC,gCAAsB;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,YAAI,oBAAoB,WAAW;AAEjC,gBAAM,2BAA2B;AAAA,YAC/B;AAAA,YACA;AAAA,UACF;AAEA,8BAAoB;AAAA,YAClB,EAAE,sBAAsB,yBAAyB;AAAA,YACjD,EAAE,SAAS,gBAAgB,oBAAoB;AAAA,YAC/C;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAAU,qBAAW;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT,GAAG,GAAG,uBAAuB;AAO7B,WAAO,OAAO,OAAO,UAAU;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,0BAA0B,MAAM;AAAA,MAChC,+BAA+B,MAAM;AACnC,mCAA2B;AAAA,MAC7B;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,gBAAgB,MAAM;AAAA,MACtB,qBAAqB,MAAM;AACzB,yBAAiB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EAMH;AAEA,SAAO,OAAOA,iBAAgB;AAAA,IAC5B,WAAW,MAAMA;AAAA,EACnB,CAAC;AAED,SAAOA;AAIT;AAWO,IAAM,iBACK,sCAAsB,cAAc;;;AC5E/C,IAAM,2BACX,OAAO;AAAA,EACL,CAKE,sBACA,kBAGI,mBAID;AACH;AAAA,MACE;AAAA,MACA,yHAC2D,OAAO;AAAA,IACpE;AACA,UAAM,oBAAoB,OAAO,KAAK,oBAAoB;AAC1D,UAAM,eAAe,kBAAkB;AAAA,MACrC,SAAO,qBAAqB,GAAG;AAAA,IACjC;AACA,UAAM,qBAAqB;AAAA,MACzB;AAAA,MACA,IAAI,yBAAgC;AAClC,eAAO,qBAAqB,OAAO,CAAC,aAAa,OAAO,UAAU;AAChE,sBAAY,kBAAkB,KAAK,CAAC,IAAI;AACxC,iBAAO;AAAA,QACT,GAAG,CAAC,CAAC;AAAA,MACP;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,EAAE,WAAW,MAAM,yBAAyB;AAC9C;","names":["createSelector"]}
Index: de_modules/reselect/package.json
===================================================================
--- node_modules/reselect/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-{
-  "name": "reselect",
-  "version": "5.1.1",
-  "description": "Selectors for Redux.",
-  "main": "./dist/cjs/reselect.cjs",
-  "module": "./dist/reselect.legacy-esm.js",
-  "types": "./dist/reselect.d.ts",
-  "exports": {
-    "./package.json": "./package.json",
-    ".": {
-      "types": "./dist/reselect.d.ts",
-      "import": "./dist/reselect.mjs",
-      "default": "./dist/cjs/reselect.cjs"
-    }
-  },
-  "files": [
-    "src",
-    "dist"
-  ],
-  "sideEffects": false,
-  "bugs": {
-    "url": "https://github.com/reduxjs/reselect/issues"
-  },
-  "scripts": {
-    "build": "tsup",
-    "clean": "rimraf dist",
-    "format": "prettier --write \"{src,test}/**/*.{js,ts}\" \"docs/**/*.md\"",
-    "lint": "eslint src test",
-    "prepack": "yarn build",
-    "bench": "vitest --run bench --mode production",
-    "test": "node --expose-gc ./node_modules/vitest/dist/cli-wrapper.js --run && vitest --run --typecheck.only",
-    "test:watch": "node --expose-gc ./node_modules/vitest/dist/cli-wrapper.js --watch",
-    "test:cov": "vitest run --coverage",
-    "type-check": "vitest --run --typecheck.only",
-    "type-check:trace": "vitest --run --typecheck.only && tsc --noEmit -p typescript_test/tsconfig.json --generateTrace trace && npx @typescript/analyze-trace trace && rimraf trace",
-    "test:typescript": "tsc --noEmit -p typescript_test/tsconfig.json",
-    "docs:start": "yarn --cwd website start",
-    "docs:build": "yarn --cwd website build",
-    "docs:clear": "yarn --cwd website clear",
-    "docs:serve": "yarn --cwd website serve"
-  },
-  "keywords": [
-    "react",
-    "redux"
-  ],
-  "authors": [
-    "Lee Bannard",
-    "Robert Binna",
-    "Martijn Faassen",
-    "Philip Spitzlinger"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/reduxjs/reselect.git"
-  },
-  "license": "MIT",
-  "devDependencies": {
-    "@reduxjs/toolkit": "^2.0.1",
-    "@testing-library/react": "^14.1.2",
-    "@types/lodash": "^4.14.175",
-    "@types/react": "^18.2.38",
-    "@types/react-dom": "^18.2.17",
-    "@types/shelljs": "^0.8.11",
-    "@typescript-eslint/eslint-plugin": "^6",
-    "@typescript-eslint/eslint-plugin-tslint": "^6",
-    "@typescript-eslint/parser": "^6",
-    "@typescript/analyze-trace": "^0.10.1",
-    "eslint": "^8.0.1",
-    "eslint-plugin-react": "^7.26.1",
-    "eslint-plugin-typescript": "0.14.0",
-    "jsdom": "^23.0.0",
-    "lodash": "^4.17.21",
-    "lodash.memoize": "^4.1.2",
-    "memoize-one": "^6.0.0",
-    "micro-memoize": "^4.0.9",
-    "netlify-plugin-cache": "^1.0.3",
-    "prettier": "^2.7.1",
-    "react": "^18.2.0",
-    "react-dom": "^18.2.0",
-    "react-redux": "^9.0.4",
-    "rimraf": "^3.0.2",
-    "shelljs": "^0.8.5",
-    "tsup": "^6.7.0",
-    "typescript": "^5.4.2",
-    "vitest": "^1.1.1"
-  },
-  "packageManager": "yarn@4.1.0"
-}
Index: de_modules/reselect/src/autotrackMemoize/autotrackMemoize.ts
===================================================================
--- node_modules/reselect/src/autotrackMemoize/autotrackMemoize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,100 +1,0 @@
-import { createNode, updateNode } from './proxy'
-import type { Node } from './tracking'
-
-import { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'
-import type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'
-import { createCache } from './autotracking'
-
-/**
- * Uses an "auto-tracking" approach inspired by the work of the Ember Glimmer team.
- * It uses a Proxy to wrap arguments and track accesses to nested fields
- * in your selector on first read. Later, when the selector is called with
- * new arguments, it identifies which accessed fields have changed and
- * only recalculates the result if one or more of those accessed fields have changed.
- * This allows it to be more precise than the shallow equality checks in `lruMemoize`.
- *
- * __Design Tradeoffs for `autotrackMemoize`:__
- * - Pros:
- *    - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,
- *    which may also result in fewer component re-renders.
- * - Cons:
- *    - It only has a cache size of 1.
- *    - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)
- *    - It can have some unexpected behavior. Because it tracks nested field accesses,
- *    cases where you don't access a field will not recalculate properly.
- *    For example, a badly-written selector like:
- *      ```ts
- *      createSelector([state => state.todos], todos => todos)
- *      ```
- *      that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.
- *
- * __Use Cases for `autotrackMemoize`:__
- * - It is likely best used for cases where you need to access specific nested fields
- * in data, and avoid recalculating if other fields in the same data objects are immutably updated.
- *
- * @param func - The function to be memoized.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @example
- * <caption>Using `createSelector`</caption>
- * ```ts
- * import { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'
- *
- * const selectTodoIds = createSelector(
- *   [(state: RootState) => state.todos],
- *   (todos) => todos.map(todo => todo.id),
- *   { memoize: autotrackMemoize }
- * )
- * ```
- *
- * @example
- * <caption>Using `createSelectorCreator`</caption>
- * ```ts
- * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'
- *
- * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })
- *
- * const selectTodoIds = createSelectorAutotrack(
- *   [(state: RootState) => state.todos],
- *   (todos) => todos.map(todo => todo.id)
- * )
- * ```
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/unstable_autotrackMemoize autotrackMemoize}
- *
- * @since 5.0.0
- * @public
- * @experimental
- */
-export function autotrackMemoize<Func extends AnyFunction>(func: Func) {
-  // we reference arguments instead of spreading them for performance reasons
-
-  const node: Node<Record<string, unknown>> = createNode(
-    [] as unknown as Record<string, unknown>
-  )
-
-  let lastArgs: IArguments | null = null
-
-  const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)
-
-  const cache = createCache(() => {
-    const res = func.apply(null, node.proxy as unknown as any[])
-    return res
-  })
-
-  function memoized() {
-    if (!shallowEqual(lastArgs, arguments)) {
-      updateNode(node, arguments as unknown as Record<string, unknown>)
-      lastArgs = arguments
-    }
-    return cache.value
-  }
-
-  memoized.clearCache = () => {
-    return cache.clear()
-  }
-
-  return memoized as Func & Simplify<DefaultMemoizeFields>
-}
Index: de_modules/reselect/src/autotrackMemoize/autotracking.ts
===================================================================
--- node_modules/reselect/src/autotrackMemoize/autotracking.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,159 +1,0 @@
-// Original autotracking implementation source:
-// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9
-// Additional references:
-// - https://www.pzuraq.com/blog/how-autotracking-works
-// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/
-import type { EqualityFn } from '../types'
-import { assertIsFunction } from '../utils'
-
-// The global revision clock. Every time state changes, the clock increments.
-export let $REVISION = 0
-
-// The current dependency tracker. Whenever we compute a cache, we create a Set
-// to track any dependencies that are used while computing. If no cache is
-// computing, then the tracker is null.
-let CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null
-
-// Storage represents a root value in the system - the actual state of our app.
-export class Cell<T> {
-  revision = $REVISION
-
-  _value: T
-  _lastValue: T
-  _isEqual: EqualityFn = tripleEq
-
-  constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {
-    this._value = this._lastValue = initialValue
-    this._isEqual = isEqual
-  }
-
-  // Whenever a storage value is read, it'll add itself to the current tracker if
-  // one exists, entangling its state with that cache.
-  get value() {
-    CURRENT_TRACKER?.add(this)
-
-    return this._value
-  }
-
-  // Whenever a storage value is updated, we bump the global revision clock,
-  // assign the revision for this storage to the new value, _and_ we schedule a
-  // rerender. This is important, and it's what makes autotracking  _pull_
-  // based. We don't actively tell the caches which depend on the storage that
-  // anything has happened. Instead, we recompute the caches when needed.
-  set value(newValue) {
-    if (this.value === newValue) return
-
-    this._value = newValue
-    this.revision = ++$REVISION
-  }
-}
-
-function tripleEq(a: unknown, b: unknown) {
-  return a === b
-}
-
-// Caches represent derived state in the system. They are ultimately functions
-// that are memoized based on what state they use to produce their output,
-// meaning they will only rerun IFF a storage value that could affect the output
-// has changed. Otherwise, they'll return the cached value.
-export class TrackingCache {
-  _cachedValue: any
-  _cachedRevision = -1
-  _deps: any[] = []
-  hits = 0
-
-  fn: () => any
-
-  constructor(fn: () => any) {
-    this.fn = fn
-  }
-
-  clear() {
-    this._cachedValue = undefined
-    this._cachedRevision = -1
-    this._deps = []
-    this.hits = 0
-  }
-
-  get value() {
-    // When getting the value for a Cache, first we check all the dependencies of
-    // the cache to see what their current revision is. If the current revision is
-    // greater than the cached revision, then something has changed.
-    if (this.revision > this._cachedRevision) {
-      const { fn } = this
-
-      // We create a new dependency tracker for this cache. As the cache runs
-      // its function, any Storage or Cache instances which are used while
-      // computing will be added to this tracker. In the end, it will be the
-      // full list of dependencies that this Cache depends on.
-      const currentTracker = new Set<Cell<any>>()
-      const prevTracker = CURRENT_TRACKER
-
-      CURRENT_TRACKER = currentTracker
-
-      // try {
-      this._cachedValue = fn()
-      // } finally {
-      CURRENT_TRACKER = prevTracker
-      this.hits++
-      this._deps = Array.from(currentTracker)
-
-      // Set the cached revision. This is the current clock count of all the
-      // dependencies. If any dependency changes, this number will be less
-      // than the new revision.
-      this._cachedRevision = this.revision
-      // }
-    }
-
-    // If there is a current tracker, it means another Cache is computing and
-    // using this one, so we add this one to the tracker.
-    CURRENT_TRACKER?.add(this)
-
-    // Always return the cached value.
-    return this._cachedValue
-  }
-
-  get revision() {
-    // The current revision is the max of all the dependencies' revisions.
-    return Math.max(...this._deps.map(d => d.revision), 0)
-  }
-}
-
-export function getValue<T>(cell: Cell<T>): T {
-  if (!(cell instanceof Cell)) {
-    console.warn('Not a valid cell! ', cell)
-  }
-
-  return cell.value
-}
-
-type CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never
-
-export function setValue<T extends Cell<unknown>>(
-  storage: T,
-  value: CellValue<T>
-): void {
-  if (!(storage instanceof Cell)) {
-    throw new TypeError(
-      'setValue must be passed a tracked store created with `createStorage`.'
-    )
-  }
-
-  storage.value = storage._lastValue = value
-}
-
-export function createCell<T = unknown>(
-  initialValue: T,
-  isEqual: EqualityFn = tripleEq
-): Cell<T> {
-  return new Cell(initialValue, isEqual)
-}
-
-export function createCache<T = unknown>(fn: () => T): TrackingCache {
-  assertIsFunction(
-    fn,
-    'the first parameter to `createCache` must be a function'
-  )
-
-  return new TrackingCache(fn)
-}
Index: de_modules/reselect/src/autotrackMemoize/proxy.ts
===================================================================
--- node_modules/reselect/src/autotrackMemoize/proxy.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,230 +1,0 @@
-// Original source:
-// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts
-
-import type { Node, Tag } from './tracking'
-import {
-  consumeCollection,
-  consumeTag,
-  createTag,
-  dirtyCollection,
-  dirtyTag
-} from './tracking'
-
-export const REDUX_PROXY_LABEL = Symbol()
-
-let nextId = 0
-
-const proto = Object.getPrototypeOf({})
-
-class ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {
-  proxy: T = new Proxy(this, objectProxyHandler) as unknown as T
-  tag = createTag()
-  tags = {} as Record<string, Tag>
-  children = {} as Record<string, Node>
-  collectionTag = null
-  id = nextId++
-
-  constructor(public value: T) {
-    this.value = value
-    this.tag.value = value
-  }
-}
-
-const objectProxyHandler = {
-  get(node: Node, key: string | symbol): unknown {
-    function calculateResult() {
-      const { value } = node
-
-      const childValue = Reflect.get(value, key)
-
-      if (typeof key === 'symbol') {
-        return childValue
-      }
-
-      if (key in proto) {
-        return childValue
-      }
-
-      if (typeof childValue === 'object' && childValue !== null) {
-        let childNode = node.children[key]
-
-        if (childNode === undefined) {
-          childNode = node.children[key] = createNode(childValue)
-        }
-
-        if (childNode.tag) {
-          consumeTag(childNode.tag)
-        }
-
-        return childNode.proxy
-      } else {
-        let tag = node.tags[key]
-
-        if (tag === undefined) {
-          tag = node.tags[key] = createTag()
-          tag.value = childValue
-        }
-
-        consumeTag(tag)
-
-        return childValue
-      }
-    }
-    const res = calculateResult()
-    return res
-  },
-
-  ownKeys(node: Node): ArrayLike<string | symbol> {
-    consumeCollection(node)
-    return Reflect.ownKeys(node.value)
-  },
-
-  getOwnPropertyDescriptor(
-    node: Node,
-    prop: string | symbol
-  ): PropertyDescriptor | undefined {
-    return Reflect.getOwnPropertyDescriptor(node.value, prop)
-  },
-
-  has(node: Node, prop: string | symbol): boolean {
-    return Reflect.has(node.value, prop)
-  }
-}
-
-class ArrayTreeNode<T extends Array<unknown>> implements Node<T> {
-  proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T
-  tag = createTag()
-  tags = {}
-  children = {}
-  collectionTag = null
-  id = nextId++
-
-  constructor(public value: T) {
-    this.value = value
-    this.tag.value = value
-  }
-}
-
-const arrayProxyHandler = {
-  get([node]: [Node], key: string | symbol): unknown {
-    if (key === 'length') {
-      consumeCollection(node)
-    }
-
-    return objectProxyHandler.get(node, key)
-  },
-
-  ownKeys([node]: [Node]): ArrayLike<string | symbol> {
-    return objectProxyHandler.ownKeys(node)
-  },
-
-  getOwnPropertyDescriptor(
-    [node]: [Node],
-    prop: string | symbol
-  ): PropertyDescriptor | undefined {
-    return objectProxyHandler.getOwnPropertyDescriptor(node, prop)
-  },
-
-  has([node]: [Node], prop: string | symbol): boolean {
-    return objectProxyHandler.has(node, prop)
-  }
-}
-
-export function createNode<T extends Array<unknown> | Record<string, unknown>>(
-  value: T
-): Node<T> {
-  if (Array.isArray(value)) {
-    return new ArrayTreeNode(value)
-  }
-
-  return new ObjectTreeNode(value) as Node<T>
-}
-
-const keysMap = new WeakMap<
-  Array<unknown> | Record<string, unknown>,
-  Set<string>
->()
-
-export function updateNode<T extends Array<unknown> | Record<string, unknown>>(
-  node: Node<T>,
-  newValue: T
-): void {
-  const { value, tags, children } = node
-
-  node.value = newValue
-
-  if (
-    Array.isArray(value) &&
-    Array.isArray(newValue) &&
-    value.length !== newValue.length
-  ) {
-    dirtyCollection(node)
-  } else {
-    if (value !== newValue) {
-      let oldKeysSize = 0
-      let newKeysSize = 0
-      let anyKeysAdded = false
-
-      for (const _key in value) {
-        oldKeysSize++
-      }
-
-      for (const key in newValue) {
-        newKeysSize++
-        if (!(key in value)) {
-          anyKeysAdded = true
-          break
-        }
-      }
-
-      const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize
-
-      if (isDifferent) {
-        dirtyCollection(node)
-      }
-    }
-  }
-
-  for (const key in tags) {
-    const childValue = (value as Record<string, unknown>)[key]
-    const newChildValue = (newValue as Record<string, unknown>)[key]
-
-    if (childValue !== newChildValue) {
-      dirtyCollection(node)
-      dirtyTag(tags[key], newChildValue)
-    }
-
-    if (typeof newChildValue === 'object' && newChildValue !== null) {
-      delete tags[key]
-    }
-  }
-
-  for (const key in children) {
-    const childNode = children[key]
-    const newChildValue = (newValue as Record<string, unknown>)[key]
-
-    const childValue = childNode.value
-
-    if (childValue === newChildValue) {
-      continue
-    } else if (typeof newChildValue === 'object' && newChildValue !== null) {
-      updateNode(childNode, newChildValue as Record<string, unknown>)
-    } else {
-      deleteNode(childNode)
-      delete children[key]
-    }
-  }
-}
-
-function deleteNode(node: Node): void {
-  if (node.tag) {
-    dirtyTag(node.tag, null)
-  }
-  dirtyCollection(node)
-  for (const key in node.tags) {
-    dirtyTag(node.tags[key], null)
-  }
-  for (const key in node.children) {
-    deleteNode(node.children[key])
-  }
-}
Index: de_modules/reselect/src/autotrackMemoize/tracking.ts
===================================================================
--- node_modules/reselect/src/autotrackMemoize/tracking.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import type { Cell } from './autotracking'
-import {
-  getValue as consumeTag,
-  createCell as createStorage,
-  setValue
-} from './autotracking'
-
-export type Tag = Cell<unknown>
-
-const neverEq = (a: any, b: any): boolean => false
-
-export function createTag(): Tag {
-  return createStorage(null, neverEq)
-}
-export { consumeTag }
-export function dirtyTag(tag: Tag, value: any): void {
-  setValue(tag, value)
-}
-
-export interface Node<
-  T extends Array<unknown> | Record<string, unknown> =
-    | Array<unknown>
-    | Record<string, unknown>
-> {
-  collectionTag: Tag | null
-  tag: Tag | null
-  tags: Record<string, Tag>
-  children: Record<string, Node>
-  proxy: T
-  value: T
-  id: number
-}
-
-export const consumeCollection = (node: Node): void => {
-  let tag = node.collectionTag
-
-  if (tag === null) {
-    tag = node.collectionTag = createTag()
-  }
-
-  consumeTag(tag)
-}
-
-export const dirtyCollection = (node: Node): void => {
-  const tag = node.collectionTag
-
-  if (tag !== null) {
-    dirtyTag(tag, null)
-  }
-}
Index: de_modules/reselect/src/autotrackMemoize/utils.ts
===================================================================
--- node_modules/reselect/src/autotrackMemoize/utils.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-export function assert(
-  condition: any,
-  msg = 'Assertion failed!'
-): asserts condition {
-  if (!condition) {
-    console.error(msg)
-    throw new Error(msg)
-  }
-}
Index: de_modules/reselect/src/createSelectorCreator.ts
===================================================================
--- node_modules/reselect/src/createSelectorCreator.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,493 +1,0 @@
-import { weakMapMemoize } from './weakMapMemoize'
-
-import type {
-  Combiner,
-  CreateSelectorOptions,
-  DropFirstParameter,
-  ExtractMemoizerFields,
-  GetParamsFromSelectors,
-  GetStateFromSelectors,
-  InterruptRecursion,
-  OutputSelector,
-  Selector,
-  SelectorArray,
-  SetRequired,
-  Simplify,
-  UnknownMemoizer
-} from './types'
-
-import {
-  assertIsFunction,
-  collectInputSelectorResults,
-  ensureIsArray,
-  getDependencies,
-  getDevModeChecksExecutionInfo
-} from './utils'
-
-/**
- * An instance of `createSelector`, customized with a given memoize implementation.
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- * @template StateType - The type of state that the selectors created with this selector creator will operate on.
- *
- * @public
- */
-export interface CreateSelectorFunction<
-  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  StateType = any
-> {
-  /**
-   * Creates a memoized selector function.
-   *
-   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.
-   * @returns A memoized output selector.
-   *
-   * @template InputSelectors - The type of the input selectors as an array.
-   * @template Result - The return type of the `combiner` as well as the output selector.
-   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-   *
-   * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-   */
-  <InputSelectors extends SelectorArray<StateType>, Result>(
-    ...createSelectorArgs: [
-      ...inputSelectors: InputSelectors,
-      combiner: Combiner<InputSelectors, Result>
-    ]
-  ): OutputSelector<
-    InputSelectors,
-    Result,
-    MemoizeFunction,
-    ArgsMemoizeFunction
-  > &
-    InterruptRecursion
-
-  /**
-   * Creates a memoized selector function.
-   *
-   * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.
-   * @returns A memoized output selector.
-   *
-   * @template InputSelectors - The type of the input selectors as an array.
-   * @template Result - The return type of the `combiner` as well as the output selector.
-   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-   *
-   * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-   */
-  <
-    InputSelectors extends SelectorArray<StateType>,
-    Result,
-    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,
-    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction
-  >(
-    ...createSelectorArgs: [
-      ...inputSelectors: InputSelectors,
-      combiner: Combiner<InputSelectors, Result>,
-      createSelectorOptions: Simplify<
-        CreateSelectorOptions<
-          MemoizeFunction,
-          ArgsMemoizeFunction,
-          OverrideMemoizeFunction,
-          OverrideArgsMemoizeFunction
-        >
-      >
-    ]
-  ): OutputSelector<
-    InputSelectors,
-    Result,
-    OverrideMemoizeFunction,
-    OverrideArgsMemoizeFunction
-  > &
-    InterruptRecursion
-
-  /**
-   * Creates a memoized selector function.
-   *
-   * @param inputSelectors - An array of input selectors.
-   * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.
-   * @param createSelectorOptions - An optional options object that allows for further customization per selector.
-   * @returns A memoized output selector.
-   *
-   * @template InputSelectors - The type of the input selectors array.
-   * @template Result - The return type of the `combiner` as well as the output selector.
-   * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.
-   * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.
-   *
-   * @see {@link https://reselect.js.org/api/createselector `createSelector`}
-   */
-  <
-    InputSelectors extends SelectorArray<StateType>,
-    Result,
-    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,
-    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction
-  >(
-    inputSelectors: [...InputSelectors],
-    combiner: Combiner<InputSelectors, Result>,
-    createSelectorOptions?: Simplify<
-      CreateSelectorOptions<
-        MemoizeFunction,
-        ArgsMemoizeFunction,
-        OverrideMemoizeFunction,
-        OverrideArgsMemoizeFunction
-      >
-    >
-  ): OutputSelector<
-    InputSelectors,
-    Result,
-    OverrideMemoizeFunction,
-    OverrideArgsMemoizeFunction
-  > &
-    InterruptRecursion
-
-  /**
-   * Creates a "pre-typed" version of {@linkcode createSelector createSelector}
-   * where the `state` type is predefined.
-   *
-   * This allows you to set the `state` type once, eliminating the need to
-   * specify it with every {@linkcode createSelector createSelector} call.
-   *
-   * @returns A pre-typed `createSelector` with the state type already defined.
-   *
-   * @example
-   * ```ts
-   * import { createSelector } from 'reselect'
-   *
-   * export interface RootState {
-   *   todos: { id: number; completed: boolean }[]
-   *   alerts: { id: number; read: boolean }[]
-   * }
-   *
-   * export const createAppSelector = createSelector.withTypes<RootState>()
-   *
-   * const selectTodoIds = createAppSelector(
-   *   [
-   *     // Type of `state` is set to `RootState`, no need to manually set the type
-   *     state => state.todos
-   *   ],
-   *   todos => todos.map(({ id }) => id)
-   * )
-   * ```
-   * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.
-   *
-   * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}
-   *
-   * @since 5.1.0
-   */
-  withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<
-    MemoizeFunction,
-    ArgsMemoizeFunction,
-    OverrideStateType
-  >
-}
-
-/**
- * Creates a selector creator function with the specified memoization function
- * and options for customizing memoization behavior.
- *
- * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.
- * @returns A customized `createSelector` function.
- *
- * @example
- * ```ts
- * const customCreateSelector = createSelectorCreator({
- *   memoize: customMemoize, // Function to be used to memoize `resultFunc`
- *   memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards
- *   argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments
- *   argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards
- * })
- *
- * const customSelector = customCreateSelector(
- *   [inputSelector1, inputSelector2],
- *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`
- * )
- *
- * customSelector(
- *   ...selectorArgs // Will be memoized by `customArgsMemoize`
- * )
- * ```
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}
- *
- * @since 5.0.0
- * @public
- */
-export function createSelectorCreator<
-  MemoizeFunction extends UnknownMemoizer,
-  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
->(
-  options: Simplify<
-    SetRequired<
-      CreateSelectorOptions<
-        typeof weakMapMemoize,
-        typeof weakMapMemoize,
-        MemoizeFunction,
-        ArgsMemoizeFunction
-      >,
-      'memoize'
-    >
-  >
-): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>
-
-/**
- * Creates a selector creator function with the specified memoization function
- * and options for customizing memoization behavior.
- *
- * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.
- * @returns A customized `createSelector` function.
- *
- * @example
- * ```ts
- * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`
- *   option1, // Will be passed as second argument to `customMemoize`
- *   option2, // Will be passed as third argument to `customMemoize`
- *   option3 // Will be passed as fourth argument to `customMemoize`
- * )
- *
- * const customSelector = customCreateSelector(
- *   [inputSelector1, inputSelector2],
- *   resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`
- * )
- * ```
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- *
- * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}
- *
- * @public
- */
-export function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(
-  memoize: MemoizeFunction,
-  ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>
-): CreateSelectorFunction<MemoizeFunction>
-
-/**
- * Creates a selector creator function with the specified memoization
- * function and options for customizing memoization behavior.
- *
- * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.
- * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.
- * @returns A customized `createSelector` function.
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.
- */
-export function createSelectorCreator<
-  MemoizeFunction extends UnknownMemoizer,
-  ArgsMemoizeFunction extends UnknownMemoizer,
-  MemoizeOrOptions extends
-    | MemoizeFunction
-    | SetRequired<
-        CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,
-        'memoize'
-      >
->(
-  memoizeOrOptions: MemoizeOrOptions,
-  ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<
-    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,
-    'memoize'
-  >
-    ? never
-    : DropFirstParameter<MemoizeFunction>
-) {
-  /** options initially passed into `createSelectorCreator`. */
-  const createSelectorCreatorOptions: SetRequired<
-    CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,
-    'memoize'
-  > = typeof memoizeOrOptions === 'function'
-    ? {
-        memoize: memoizeOrOptions as MemoizeFunction,
-        memoizeOptions: memoizeOptionsFromArgs
-      }
-    : memoizeOrOptions
-
-  const createSelector = <
-    InputSelectors extends SelectorArray,
-    Result,
-    OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,
-    OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction
-  >(
-    ...createSelectorArgs: [
-      ...inputSelectors: [...InputSelectors],
-      combiner: Combiner<InputSelectors, Result>,
-      createSelectorOptions?: CreateSelectorOptions<
-        MemoizeFunction,
-        ArgsMemoizeFunction,
-        OverrideMemoizeFunction,
-        OverrideArgsMemoizeFunction
-      >
-    ]
-  ) => {
-    let recomputations = 0
-    let dependencyRecomputations = 0
-    let lastResult: Result
-
-    // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.
-    // So, start by declaring the default value here.
-    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)
-    let directlyPassedOptions: CreateSelectorOptions<
-      MemoizeFunction,
-      ArgsMemoizeFunction,
-      OverrideMemoizeFunction,
-      OverrideArgsMemoizeFunction
-    > = {}
-
-    // Normally, the result func or "combiner" is the last arg
-    let resultFunc = createSelectorArgs.pop() as
-      | Combiner<InputSelectors, Result>
-      | CreateSelectorOptions<
-          MemoizeFunction,
-          ArgsMemoizeFunction,
-          OverrideMemoizeFunction,
-          OverrideArgsMemoizeFunction
-        >
-
-    // If the result func is actually an _object_, assume it's our options object
-    if (typeof resultFunc === 'object') {
-      directlyPassedOptions = resultFunc
-      // and pop the real result func off
-      resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>
-    }
-
-    assertIsFunction(
-      resultFunc,
-      `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`
-    )
-
-    // Determine which set of options we're using. Prefer options passed directly,
-    // but fall back to options given to `createSelectorCreator`.
-    const combinedOptions = {
-      ...createSelectorCreatorOptions,
-      ...directlyPassedOptions
-    }
-
-    const {
-      memoize,
-      memoizeOptions = [],
-      argsMemoize = weakMapMemoize,
-      argsMemoizeOptions = [],
-      devModeChecks = {}
-    } = combinedOptions
-
-    // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer
-    // is an array. In most libs I've looked at, it's an equality function or options object.
-    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full
-    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so
-    // we wrap it in an array so we can apply it.
-    const finalMemoizeOptions = ensureIsArray(memoizeOptions)
-    const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)
-    const dependencies = getDependencies(createSelectorArgs) as InputSelectors
-
-    const memoizedResultFunc = memoize(function recomputationWrapper() {
-      recomputations++
-      // apply arguments instead of spreading for performance.
-      // @ts-ignore
-      return (resultFunc as Combiner<InputSelectors, Result>).apply(
-        null,
-        arguments as unknown as Parameters<Combiner<InputSelectors, Result>>
-      )
-    }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &
-      ExtractMemoizerFields<OverrideMemoizeFunction>
-
-    let firstRun = true
-
-    // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
-    const selector = argsMemoize(function dependenciesChecker() {
-      dependencyRecomputations++
-      /** Return values of input selectors which the `resultFunc` takes as arguments. */
-      const inputSelectorResults = collectInputSelectorResults(
-        dependencies,
-        arguments
-      )
-
-      // apply arguments instead of spreading for performance.
-      // @ts-ignore
-      lastResult = memoizedResultFunc.apply(null, inputSelectorResults)
-
-      if (process.env.NODE_ENV !== 'production') {
-        const { identityFunctionCheck, inputStabilityCheck } =
-          getDevModeChecksExecutionInfo(firstRun, devModeChecks)
-        if (identityFunctionCheck.shouldRun) {
-          identityFunctionCheck.run(
-            resultFunc as Combiner<InputSelectors, Result>,
-            inputSelectorResults,
-            lastResult
-          )
-        }
-
-        if (inputStabilityCheck.shouldRun) {
-          // make a second copy of the params, to check if we got the same results
-          const inputSelectorResultsCopy = collectInputSelectorResults(
-            dependencies,
-            arguments
-          )
-
-          inputStabilityCheck.run(
-            { inputSelectorResults, inputSelectorResultsCopy },
-            { memoize, memoizeOptions: finalMemoizeOptions },
-            arguments
-          )
-        }
-
-        if (firstRun) firstRun = false
-      }
-
-      return lastResult
-    }, ...finalArgsMemoizeOptions) as unknown as Selector<
-      GetStateFromSelectors<InputSelectors>,
-      Result,
-      GetParamsFromSelectors<InputSelectors>
-    > &
-      ExtractMemoizerFields<OverrideArgsMemoizeFunction>
-
-    return Object.assign(selector, {
-      resultFunc,
-      memoizedResultFunc,
-      dependencies,
-      dependencyRecomputations: () => dependencyRecomputations,
-      resetDependencyRecomputations: () => {
-        dependencyRecomputations = 0
-      },
-      lastResult: () => lastResult,
-      recomputations: () => recomputations,
-      resetRecomputations: () => {
-        recomputations = 0
-      },
-      memoize,
-      argsMemoize
-    }) as OutputSelector<
-      InputSelectors,
-      Result,
-      OverrideMemoizeFunction,
-      OverrideArgsMemoizeFunction
-    >
-  }
-
-  Object.assign(createSelector, {
-    withTypes: () => createSelector
-  })
-
-  return createSelector as CreateSelectorFunction<
-    MemoizeFunction,
-    ArgsMemoizeFunction
-  >
-}
-
-/**
- * Accepts one or more "input selectors" (either as separate arguments or a single array),
- * a single "result function" / "combiner", and an optional options object, and
- * generates a memoized selector function.
- *
- * @see {@link https://reselect.js.org/api/createSelector `createSelector`}
- *
- * @public
- */
-export const createSelector =
-  /* #__PURE__ */ createSelectorCreator(weakMapMemoize)
Index: de_modules/reselect/src/createStructuredSelector.ts
===================================================================
--- node_modules/reselect/src/createStructuredSelector.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,454 +1,0 @@
-import { createSelector } from './createSelectorCreator'
-
-import type { CreateSelectorFunction } from './createSelectorCreator'
-import type {
-  InterruptRecursion,
-  ObjectValuesToTuple,
-  OutputSelector,
-  Selector,
-  Simplify,
-  UnknownMemoizer
-} from './types'
-import { assertIsObject } from './utils'
-import type { weakMapMemoize } from './weakMapMemoize'
-
-/**
- * Represents a mapping of selectors to their return types.
- *
- * @template TObject - An object type where each property is a selector function.
- *
- * @public
- */
-export type SelectorResultsMap<TObject extends SelectorsObject> = {
-  [Key in keyof TObject]: ReturnType<TObject[Key]>
-}
-
-/**
- * Represents a mapping of selectors for each key in a given root state.
- *
- * This type is a utility that takes a root state object type and
- * generates a corresponding set of selectors. Each selector is associated
- * with a key in the root state, allowing for the selection
- * of specific parts of the state.
- *
- * @template RootState - The type of the root state object.
- *
- * @since 5.0.0
- * @public
- */
-export type RootStateSelectors<RootState = any> = {
-  [Key in keyof RootState]: Selector<RootState, RootState[Key], []>
-}
-
-/**
- * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.
- * @template RootState - The type of the root state object.
- *
- * @since 5.0.0
- * @public
- */
-export type TypedStructuredSelectorCreator<RootState = any> =
-  /**
-   * A convenience function that simplifies returning an object
-   * made up of selector results.
-   *
-   * @param inputSelectorsObject - A key value pair consisting of input selectors.
-   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
-   * @returns A memoized structured selector.
-   *
-   * @example
-   * <caption>Modern Use Case</caption>
-   * ```ts
-   * import { createSelector, createStructuredSelector } from 'reselect'
-   *
-   * interface RootState {
-   *   todos: {
-   *     id: number
-   *     completed: boolean
-   *     title: string
-   *     description: string
-   *   }[]
-   *   alerts: { id: number; read: boolean }[]
-   * }
-   *
-   * // This:
-   * const structuredSelector = createStructuredSelector(
-   *   {
-   *     todos: (state: RootState) => state.todos,
-   *     alerts: (state: RootState) => state.alerts,
-   *     todoById: (state: RootState, id: number) => state.todos[id]
-   *   },
-   *   createSelector
-   * )
-   *
-   * // Is essentially the same as this:
-   * const selector = createSelector(
-   *   [
-   *     (state: RootState) => state.todos,
-   *     (state: RootState) => state.alerts,
-   *     (state: RootState, id: number) => state.todos[id]
-   *   ],
-   *   (todos, alerts, todoById) => {
-   *     return {
-   *       todos,
-   *       alerts,
-   *       todoById
-   *     }
-   *   }
-   * )
-   * ```
-   *
-   * @example
-   * <caption>In your component:</caption>
-   * ```tsx
-   * import type { RootState } from 'createStructuredSelector/modernUseCase'
-   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'
-   * import type { FC } from 'react'
-   * import { useSelector } from 'react-redux'
-   *
-   * interface Props {
-   *   id: number
-   * }
-   *
-   * const MyComponent: FC<Props> = ({ id }) => {
-   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>
-   *     structuredSelector(state, id)
-   *   )
-   *
-   *   return (
-   *     <div>
-   *       Next to do is:
-   *       <h2>{todoById.title}</h2>
-   *       <p>Description: {todoById.description}</p>
-   *       <ul>
-   *         <h3>All other to dos:</h3>
-   *         {todos.map(todo => (
-   *           <li key={todo.id}>{todo.title}</li>
-   *         ))}
-   *       </ul>
-   *     </div>
-   *   )
-   * }
-   * ```
-   *
-   * @example
-   * <caption>Simple Use Case</caption>
-   * ```ts
-   * const selectA = state => state.a
-   * const selectB = state => state.b
-   *
-   * // The result function in the following selector
-   * // is simply building an object from the input selectors
-   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({
-   *   a,
-   *   b
-   * }))
-   *
-   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }
-   * ```
-   *
-   * @template InputSelectorsObject - The shape of the input selectors object.
-   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.
-   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.
-   *
-   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
-   */
-  <
-    InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,
-    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
-  >(
-    inputSelectorsObject: InputSelectorsObject,
-    selectorCreator?: CreateSelectorFunction<
-      MemoizeFunction,
-      ArgsMemoizeFunction
-    >
-  ) => OutputSelector<
-    ObjectValuesToTuple<InputSelectorsObject>,
-    Simplify<SelectorResultsMap<InputSelectorsObject>>,
-    MemoizeFunction,
-    ArgsMemoizeFunction
-  > &
-    InterruptRecursion
-
-/**
- * Represents an object where each property is a selector function.
- *
- * @template StateType - The type of state that all the selectors operate on.
- *
- * @public
- */
-export type SelectorsObject<StateType = any> = Record<
-  string,
-  Selector<StateType>
->
-
-/**
- * It provides a way to create structured selectors.
- * The structured selector can take multiple input selectors
- * and map their output to an object with specific keys.
- *
- * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.
- *
- * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
- *
- * @public
- */
-export interface StructuredSelectorCreator<StateType = any> {
-  /**
-   * A convenience function that simplifies returning an object
-   * made up of selector results.
-   *
-   * @param inputSelectorsObject - A key value pair consisting of input selectors.
-   * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
-   * @returns A memoized structured selector.
-   *
-   * @example
-   * <caption>Modern Use Case</caption>
-   * ```ts
-   * import { createSelector, createStructuredSelector } from 'reselect'
-   *
-   * interface RootState {
-   *   todos: {
-   *     id: number
-   *     completed: boolean
-   *     title: string
-   *     description: string
-   *   }[]
-   *   alerts: { id: number; read: boolean }[]
-   * }
-   *
-   * // This:
-   * const structuredSelector = createStructuredSelector(
-   *   {
-   *     todos: (state: RootState) => state.todos,
-   *     alerts: (state: RootState) => state.alerts,
-   *     todoById: (state: RootState, id: number) => state.todos[id]
-   *   },
-   *   createSelector
-   * )
-   *
-   * // Is essentially the same as this:
-   * const selector = createSelector(
-   *   [
-   *     (state: RootState) => state.todos,
-   *     (state: RootState) => state.alerts,
-   *     (state: RootState, id: number) => state.todos[id]
-   *   ],
-   *   (todos, alerts, todoById) => {
-   *     return {
-   *       todos,
-   *       alerts,
-   *       todoById
-   *     }
-   *   }
-   * )
-   * ```
-   *
-   * @example
-   * <caption>In your component:</caption>
-   * ```tsx
-   * import type { RootState } from 'createStructuredSelector/modernUseCase'
-   * import { structuredSelector } from 'createStructuredSelector/modernUseCase'
-   * import type { FC } from 'react'
-   * import { useSelector } from 'react-redux'
-   *
-   * interface Props {
-   *   id: number
-   * }
-   *
-   * const MyComponent: FC<Props> = ({ id }) => {
-   *   const { todos, alerts, todoById } = useSelector((state: RootState) =>
-   *     structuredSelector(state, id)
-   *   )
-   *
-   *   return (
-   *     <div>
-   *       Next to do is:
-   *       <h2>{todoById.title}</h2>
-   *       <p>Description: {todoById.description}</p>
-   *       <ul>
-   *         <h3>All other to dos:</h3>
-   *         {todos.map(todo => (
-   *           <li key={todo.id}>{todo.title}</li>
-   *         ))}
-   *       </ul>
-   *     </div>
-   *   )
-   * }
-   * ```
-   *
-   * @example
-   * <caption>Simple Use Case</caption>
-   * ```ts
-   * const selectA = state => state.a
-   * const selectB = state => state.b
-   *
-   * // The result function in the following selector
-   * // is simply building an object from the input selectors
-   * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({
-   *   a,
-   *   b
-   * }))
-   *
-   * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }
-   * ```
-   *
-   * @template InputSelectorsObject - The shape of the input selectors object.
-   * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.
-   * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.
-   *
-   * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
-   */
-  <
-    InputSelectorsObject extends SelectorsObject<StateType>,
-    MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-    ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
-  >(
-    inputSelectorsObject: InputSelectorsObject,
-    selectorCreator?: CreateSelectorFunction<
-      MemoizeFunction,
-      ArgsMemoizeFunction
-    >
-  ): OutputSelector<
-    ObjectValuesToTuple<InputSelectorsObject>,
-    Simplify<SelectorResultsMap<InputSelectorsObject>>,
-    MemoizeFunction,
-    ArgsMemoizeFunction
-  > &
-    InterruptRecursion
-
-  /**
-   * Creates a "pre-typed" version of
-   * {@linkcode createStructuredSelector createStructuredSelector}
-   * where the `state` type is predefined.
-   *
-   * This allows you to set the `state` type once, eliminating the need to
-   * specify it with every
-   * {@linkcode createStructuredSelector createStructuredSelector} call.
-   *
-   * @returns A pre-typed `createStructuredSelector` with the state type already defined.
-   *
-   * @example
-   * ```ts
-   * import { createStructuredSelector } from 'reselect'
-   *
-   * export interface RootState {
-   *   todos: { id: number; completed: boolean }[]
-   *   alerts: { id: number; read: boolean }[]
-   * }
-   *
-   * export const createStructuredAppSelector =
-   *   createStructuredSelector.withTypes<RootState>()
-   *
-   * const structuredAppSelector = createStructuredAppSelector({
-   *   // Type of `state` is set to `RootState`, no need to manually set the type
-   *   todos: state => state.todos,
-   *   alerts: state => state.alerts,
-   *   todoById: (state, id: number) => state.todos[id]
-   * })
-   *
-   * ```
-   * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.
-   *
-   * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}
-   *
-   * @since 5.1.0
-   */
-  withTypes: <
-    OverrideStateType extends StateType
-  >() => StructuredSelectorCreator<OverrideStateType>
-}
-
-/**
- * A convenience function that simplifies returning an object
- * made up of selector results.
- *
- * @param inputSelectorsObject - A key value pair consisting of input selectors.
- * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.
- * @returns A memoized structured selector.
- *
- * @example
- * <caption>Modern Use Case</caption>
- * ```ts
- * import { createSelector, createStructuredSelector } from 'reselect'
- *
- * interface RootState {
- *   todos: {
- *     id: number
- *     completed: boolean
- *     title: string
- *     description: string
- *   }[]
- *   alerts: { id: number; read: boolean }[]
- * }
- *
- * // This:
- * const structuredSelector = createStructuredSelector(
- *   {
- *     todos: (state: RootState) => state.todos,
- *     alerts: (state: RootState) => state.alerts,
- *     todoById: (state: RootState, id: number) => state.todos[id]
- *   },
- *   createSelector
- * )
- *
- * // Is essentially the same as this:
- * const selector = createSelector(
- *   [
- *     (state: RootState) => state.todos,
- *     (state: RootState) => state.alerts,
- *     (state: RootState, id: number) => state.todos[id]
- *   ],
- *   (todos, alerts, todoById) => {
- *     return {
- *       todos,
- *       alerts,
- *       todoById
- *     }
- *   }
- * )
- * ```
- *
- * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}
- *
- * @public
- */
-export const createStructuredSelector: StructuredSelectorCreator =
-  Object.assign(
-    <
-      InputSelectorsObject extends SelectorsObject,
-      MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-      ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
-    >(
-      inputSelectorsObject: InputSelectorsObject,
-      selectorCreator: CreateSelectorFunction<
-        MemoizeFunction,
-        ArgsMemoizeFunction
-      > = createSelector as CreateSelectorFunction<
-        MemoizeFunction,
-        ArgsMemoizeFunction
-      >
-    ) => {
-      assertIsObject(
-        inputSelectorsObject,
-        'createStructuredSelector expects first argument to be an object ' +
-          `where each property is a selector, instead received a ${typeof inputSelectorsObject}`
-      )
-      const inputSelectorKeys = Object.keys(inputSelectorsObject)
-      const dependencies = inputSelectorKeys.map(
-        key => inputSelectorsObject[key]
-      )
-      const structuredSelector = selectorCreator(
-        dependencies,
-        (...inputSelectorResults: any[]) => {
-          return inputSelectorResults.reduce((composition, value, index) => {
-            composition[inputSelectorKeys[index]] = value
-            return composition
-          }, {})
-        }
-      )
-      return structuredSelector
-    },
-    { withTypes: () => createStructuredSelector }
-  ) as StructuredSelectorCreator
Index: de_modules/reselect/src/devModeChecks/identityFunctionCheck.ts
===================================================================
--- node_modules/reselect/src/devModeChecks/identityFunctionCheck.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-import type { AnyFunction } from '../types'
-
-/**
- * Runs a check to determine if the given result function behaves as an
- * identity function. An identity function is one that returns its
- * input unchanged, for example, `x => x`. This check helps ensure
- * efficient memoization and prevent unnecessary re-renders by encouraging
- * proper use of transformation logic in result functions and
- * extraction logic in input selectors.
- *
- * @param resultFunc - The result function to be checked.
- * @param inputSelectorsResults - The results of the input selectors.
- * @param outputSelectorResult - The result of the output selector.
- *
- * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}
- *
- * @since 5.0.0
- * @internal
- */
-export const runIdentityFunctionCheck = (
-  resultFunc: AnyFunction,
-  inputSelectorsResults: unknown[],
-  outputSelectorResult: unknown
-) => {
-  if (
-    inputSelectorsResults.length === 1 &&
-    inputSelectorsResults[0] === outputSelectorResult
-  ) {
-    let isInputSameAsOutput = false
-    try {
-      const emptyObject = {}
-      if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true
-    } catch {
-      // Do nothing
-    }
-    if (isInputSameAsOutput) {
-      let stack: string | undefined = undefined
-      try {
-        throw new Error()
-      } catch (e) {
-        // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi
-        ;({ stack } = e as Error)
-      }
-      console.warn(
-        'The result function returned its own inputs without modification. e.g' +
-          '\n`createSelector([state => state.todos], todos => todos)`' +
-          '\nThis could lead to inefficient memoization and unnecessary re-renders.' +
-          '\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',
-        { stack }
-      )
-    }
-  }
-}
Index: de_modules/reselect/src/devModeChecks/inputStabilityCheck.ts
===================================================================
--- node_modules/reselect/src/devModeChecks/inputStabilityCheck.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-import type { CreateSelectorOptions, UnknownMemoizer } from '../types'
-
-/**
- * Runs a stability check to ensure the input selector results remain stable
- * when provided with the same arguments. This function is designed to detect
- * changes in the output of input selectors, which can impact the performance of memoized selectors.
- *
- * @param inputSelectorResultsObject - An object containing two arrays: `inputSelectorResults` and `inputSelectorResultsCopy`, representing the results of input selectors.
- * @param options - Options object consisting of a `memoize` function and a `memoizeOptions` object.
- * @param inputSelectorArgs - List of arguments being passed to the input selectors.
- *
- * @see {@link https://reselect.js.org/api/development-only-stability-checks/#inputstabilitycheck `inputStabilityCheck`}
- *
- * @since 5.0.0
- * @internal
- */
-export const runInputStabilityCheck = (
-  inputSelectorResultsObject: {
-    inputSelectorResults: unknown[]
-    inputSelectorResultsCopy: unknown[]
-  },
-  options: Required<
-    Pick<
-      CreateSelectorOptions<UnknownMemoizer, UnknownMemoizer>,
-      'memoize' | 'memoizeOptions'
-    >
-  >,
-  inputSelectorArgs: unknown[] | IArguments
-) => {
-  const { memoize, memoizeOptions } = options
-  const { inputSelectorResults, inputSelectorResultsCopy } =
-    inputSelectorResultsObject
-  const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions)
-  // if the memoize method thinks the parameters are equal, these *should* be the same reference
-  const areInputSelectorResultsEqual =
-    createAnEmptyObject.apply(null, inputSelectorResults) ===
-    createAnEmptyObject.apply(null, inputSelectorResultsCopy)
-  if (!areInputSelectorResultsEqual) {
-    let stack: string | undefined = undefined
-    try {
-      throw new Error()
-    } catch (e) {
-      // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi
-      ;({ stack } = e as Error)
-    }
-    console.warn(
-      'An input selector returned a different result when passed same arguments.' +
-        '\nThis means your output selector will likely run more frequently than intended.' +
-        '\nAvoid returning a new reference inside your input selector, e.g.' +
-        '\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`',
-      {
-        arguments: inputSelectorArgs,
-        firstInputs: inputSelectorResults,
-        secondInputs: inputSelectorResultsCopy,
-        stack
-      }
-    )
-  }
-}
Index: de_modules/reselect/src/devModeChecks/setGlobalDevModeChecks.ts
===================================================================
--- node_modules/reselect/src/devModeChecks/setGlobalDevModeChecks.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-import type { DevModeChecks } from '../types'
-
-/**
- * Global configuration for development mode checks. This specifies the default
- * frequency at which each development mode check should be performed.
- *
- * @since 5.0.0
- * @internal
- */
-export const globalDevModeChecks: DevModeChecks = {
-  inputStabilityCheck: 'once',
-  identityFunctionCheck: 'once'
-}
-
-/**
- * Overrides the development mode checks settings for all selectors.
- *
- * Reselect performs additional checks in development mode to help identify and
- * warn about potential issues in selector behavior. This function allows you to
- * customize the behavior of these checks across all selectors in your application.
- *
- * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.
- * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}
- * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.
- *
- * _The development mode checks do not run in production builds._
- *
- * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.
- *
- * @example
- * ```ts
- * import { setGlobalDevModeChecks } from 'reselect'
- * import { DevModeChecks } from '../types'
- *
- * // Run only the first time the selector is called. (default)
- * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })
- *
- * // Run every time the selector is called.
- * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })
- *
- * // Never run the input stability check.
- * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })
- *
- * // Run only the first time the selector is called. (default)
- * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })
- *
- * // Run every time the selector is called.
- * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })
- *
- * // Never run the identity function check.
- * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })
- * ```
- * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
- * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}
- *
- * @since 5.0.0
- * @public
- */
-export const setGlobalDevModeChecks = (
-  devModeChecks: Partial<DevModeChecks>
-) => {
-  Object.assign(globalDevModeChecks, devModeChecks)
-}
Index: de_modules/reselect/src/index.ts
===================================================================
--- node_modules/reselect/src/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-export { autotrackMemoize as unstable_autotrackMemoize } from './autotrackMemoize/autotrackMemoize'
-export { createSelector, createSelectorCreator } from './createSelectorCreator'
-export type { CreateSelectorFunction } from './createSelectorCreator'
-export { createStructuredSelector } from './createStructuredSelector'
-export type {
-  RootStateSelectors,
-  SelectorResultsMap,
-  SelectorsObject,
-  StructuredSelectorCreator,
-  TypedStructuredSelectorCreator
-} from './createStructuredSelector'
-export { setGlobalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'
-export { lruMemoize, referenceEqualityCheck } from './lruMemoize'
-export type { LruMemoizeOptions } from './lruMemoize'
-export type {
-  Combiner,
-  CreateSelectorOptions,
-  DefaultMemoizeFields,
-  DevModeCheckFrequency,
-  DevModeChecks,
-  DevModeChecksExecutionInfo,
-  EqualityFn,
-  ExtractMemoizerFields,
-  GetParamsFromSelectors,
-  GetStateFromSelectors,
-  MemoizeOptionsFromParameters,
-  OutputSelector,
-  OutputSelectorFields,
-  OverrideMemoizeOptions,
-  Selector,
-  SelectorArray,
-  SelectorResultArray,
-  UnknownMemoizer
-} from './types'
-export { weakMapMemoize } from './weakMapMemoize'
-export type { WeakMapMemoizeOptions } from './weakMapMemoize'
Index: de_modules/reselect/src/lruMemoize.ts
===================================================================
--- node_modules/reselect/src/lruMemoize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,249 +1,0 @@
-import type {
-  AnyFunction,
-  DefaultMemoizeFields,
-  EqualityFn,
-  Simplify
-} from './types'
-
-import type { NOT_FOUND_TYPE } from './utils'
-import { NOT_FOUND } from './utils'
-
-// Cache implementation based on Erik Rasmussen's `lru-memoize`:
-// https://github.com/erikras/lru-memoize
-
-interface Entry {
-  key: unknown
-  value: unknown
-}
-
-interface Cache {
-  get(key: unknown): unknown | NOT_FOUND_TYPE
-  put(key: unknown, value: unknown): void
-  getEntries(): Entry[]
-  clear(): void
-}
-
-function createSingletonCache(equals: EqualityFn): Cache {
-  let entry: Entry | undefined
-  return {
-    get(key: unknown) {
-      if (entry && equals(entry.key, key)) {
-        return entry.value
-      }
-
-      return NOT_FOUND
-    },
-
-    put(key: unknown, value: unknown) {
-      entry = { key, value }
-    },
-
-    getEntries() {
-      return entry ? [entry] : []
-    },
-
-    clear() {
-      entry = undefined
-    }
-  }
-}
-
-function createLruCache(maxSize: number, equals: EqualityFn): Cache {
-  let entries: Entry[] = []
-
-  function get(key: unknown) {
-    const cacheIndex = entries.findIndex(entry => equals(key, entry.key))
-
-    // We found a cached entry
-    if (cacheIndex > -1) {
-      const entry = entries[cacheIndex]
-
-      // Cached entry not at top of cache, move it to the top
-      if (cacheIndex > 0) {
-        entries.splice(cacheIndex, 1)
-        entries.unshift(entry)
-      }
-
-      return entry.value
-    }
-
-    // No entry found in cache, return sentinel
-    return NOT_FOUND
-  }
-
-  function put(key: unknown, value: unknown) {
-    if (get(key) === NOT_FOUND) {
-      // TODO Is unshift slow?
-      entries.unshift({ key, value })
-      if (entries.length > maxSize) {
-        entries.pop()
-      }
-    }
-  }
-
-  function getEntries() {
-    return entries
-  }
-
-  function clear() {
-    entries = []
-  }
-
-  return { get, put, getEntries, clear }
-}
-
-/**
- * Runs a simple reference equality check.
- * What {@linkcode lruMemoize lruMemoize} uses by default.
- *
- * **Note**: This function was previously known as `defaultEqualityCheck`.
- *
- * @public
- */
-export const referenceEqualityCheck: EqualityFn = (a, b) => a === b
-
-export function createCacheKeyComparator(equalityCheck: EqualityFn) {
-  return function areArgumentsShallowlyEqual(
-    prev: unknown[] | IArguments | null,
-    next: unknown[] | IArguments | null
-  ): boolean {
-    if (prev === null || next === null || prev.length !== next.length) {
-      return false
-    }
-
-    // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
-    const { length } = prev
-    for (let i = 0; i < length; i++) {
-      if (!equalityCheck(prev[i], next[i])) {
-        return false
-      }
-    }
-
-    return true
-  }
-}
-
-/**
- * Options for configuring the behavior of a function memoized with
- * LRU (Least Recently Used) caching.
- *
- * @template Result - The type of the return value of the memoized function.
- *
- * @public
- */
-export interface LruMemoizeOptions<Result = any> {
-  /**
-   * Function used to compare the individual arguments of the
-   * provided calculation function.
-   *
-   * @default referenceEqualityCheck
-   */
-  equalityCheck?: EqualityFn
-
-  /**
-   * If provided, used to compare a newly generated output value against
-   * previous values in the cache. If a match is found,
-   * the old value is returned. This addresses the common
-   * ```ts
-   * todos.map(todo => todo.id)
-   * ```
-   * use case, where an update to another field in the original data causes
-   * a recalculation due to changed references, but the output is still
-   * effectively the same.
-   *
-   * @since 4.1.0
-   */
-  resultEqualityCheck?: EqualityFn<Result>
-
-  /**
-   * The maximum size of the cache used by the selector.
-   * A size greater than 1 means the selector will use an
-   * LRU (Least Recently Used) cache, allowing for the caching of multiple
-   * results based on different sets of arguments.
-   *
-   * @default 1
-   */
-  maxSize?: number
-}
-
-/**
- * Creates a memoized version of a function with an optional
- * LRU (Least Recently Used) cache. The memoized function uses a cache to
- * store computed values. Depending on the `maxSize` option, it will use
- * either a singleton cache (for a single entry) or an
- * LRU cache (for multiple entries).
- *
- * **Note**: This function was previously known as `defaultMemoize`.
- *
- * @param func - The function to be memoized.
- * @param equalityCheckOrOptions - Either an equality check function or an options object.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/lruMemoize `lruMemoize`}
- *
- * @public
- */
-export function lruMemoize<Func extends AnyFunction>(
-  func: Func,
-  equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>
-) {
-  const providedOptions =
-    typeof equalityCheckOrOptions === 'object'
-      ? equalityCheckOrOptions
-      : { equalityCheck: equalityCheckOrOptions }
-
-  const {
-    equalityCheck = referenceEqualityCheck,
-    maxSize = 1,
-    resultEqualityCheck
-  } = providedOptions
-
-  const comparator = createCacheKeyComparator(equalityCheck)
-
-  let resultsCount = 0
-
-  const cache =
-    maxSize <= 1
-      ? createSingletonCache(comparator)
-      : createLruCache(maxSize, comparator)
-
-  function memoized() {
-    let value = cache.get(arguments) as ReturnType<Func>
-    if (value === NOT_FOUND) {
-      // apply arguments instead of spreading for performance.
-      // @ts-ignore
-      value = func.apply(null, arguments) as ReturnType<Func>
-      resultsCount++
-
-      if (resultEqualityCheck) {
-        const entries = cache.getEntries()
-        const matchingEntry = entries.find(entry =>
-          resultEqualityCheck(entry.value as ReturnType<Func>, value)
-        )
-
-        if (matchingEntry) {
-          value = matchingEntry.value as ReturnType<Func>
-          resultsCount !== 0 && resultsCount--
-        }
-      }
-
-      cache.put(arguments, value)
-    }
-    return value
-  }
-
-  memoized.clearCache = () => {
-    cache.clear()
-    memoized.resetResultsCount()
-  }
-
-  memoized.resultsCount = () => resultsCount
-
-  memoized.resetResultsCount = () => {
-    resultsCount = 0
-  }
-
-  return memoized as Func & Simplify<DefaultMemoizeFields>
-}
Index: de_modules/reselect/src/types.ts
===================================================================
--- node_modules/reselect/src/types.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,876 +1,0 @@
-import type { MergeParameters } from './versionedTypes'
-import type { weakMapMemoize } from './weakMapMemoize'
-
-export type { MergeParameters } from './versionedTypes'
-
-/*
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- * Reselect Data Types
- *
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- */
-
-/**
- * A standard selector function.
- * @template State - The first value, often a Redux root state object.
- * @template Result - The final result returned by the selector.
- * @template Params - All additional arguments passed into the selector.
- *
- * @public
- */
-export type Selector<
-  State = any,
-  Result = unknown,
-  Params extends readonly any[] = any[]
-> = Distribute<
-  /**
-   * A function that takes a state and returns data that is based on that state.
-   *
-   * @param state - The first argument, often a Redux root state object.
-   * @param params - All additional arguments passed into the selector.
-   * @returns A derived value from the state.
-   */
-  (state: State, ...params: FallbackIfNever<Params, []>) => Result
->
-
-/**
- * An array of input selectors.
- *
- * @public
- */
-export type SelectorArray<State = any> = readonly Selector<State>[]
-
-/**
- * Extracts an array of all return types from all input selectors.
- *
- * @public
- */
-export type SelectorResultArray<Selectors extends SelectorArray> =
-  ExtractReturnType<Selectors>
-
-/**
- * The options object used inside `createSelector` and `createSelectorCreator`.
- *
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object inside `createSelector` to override the original `memoize` function that was initially passed into `createSelectorCreator`.
- * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object inside `createSelector` to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`. If none was initially provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-export interface CreateSelectorOptions<
-  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  OverrideMemoizeFunction extends UnknownMemoizer = never,
-  OverrideArgsMemoizeFunction extends UnknownMemoizer = never
-> {
-  /**
-   * Reselect performs additional checks in development mode to help identify
-   * and warn about potential issues in selector behavior. This option
-   * allows you to customize the behavior of these checks per selector.
-   *
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-   *
-   * @since 5.0.0
-   */
-  devModeChecks?: Partial<DevModeChecks>
-
-  /**
-   * The memoize function that is used to memoize the {@linkcode OutputSelectorFields.resultFunc resultFunc}
-   * inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
-   *
-   * When passed directly into `createSelector`, it overrides the `memoize` function initially passed into `createSelectorCreator`.
-   *
-   * @example
-   * ```ts
-   * import { createSelector, weakMapMemoize } from 'reselect'
-   *
-   * const selectItemsByCategory = createSelector(
-   *   [
-   *     (state: RootState) => state.items,
-   *     (state: RootState, category: string) => category
-   *   ],
-   *   (items, category) => items.filter(item => item.category === category),
-   *   { memoize: weakMapMemoize }
-   * )
-   * ```
-   *
-   * @since 5.0.0
-   */
-  memoize?: FallbackIfNever<OverrideMemoizeFunction, MemoizeFunction>
-
-  /**
-   * The optional memoize function that is used to memoize the arguments
-   * passed into the output selector generated by `createSelector`
-   * (e.g., `lruMemoize` or `weakMapMemoize`).
-   *
-   * When passed directly into `createSelector`, it overrides the
-   * `argsMemoize` function initially passed into `createSelectorCreator`.
-   * If none was initially provided, `weakMapMemoize` will be used.
-   *
-   * @example
-   * ```ts
-   * import { createSelector, weakMapMemoize } from 'reselect'
-   *
-   * const selectItemsByCategory = createSelector(
-   *   [
-   *     (state: RootState) => state.items,
-   *     (state: RootState, category: string) => category
-   *   ],
-   *   (items, category) => items.filter(item => item.category === category),
-   *   { argsMemoize: weakMapMemoize }
-   * )
-   * ```
-   *
-   * @default weakMapMemoize
-   *
-   * @since 5.0.0
-   */
-  argsMemoize?: FallbackIfNever<
-    OverrideArgsMemoizeFunction,
-    ArgsMemoizeFunction
-  >
-
-  /**
-   * Optional configuration options for the {@linkcode CreateSelectorOptions.memoize memoize} function.
-   * These options are passed to the {@linkcode CreateSelectorOptions.memoize memoize} function as the second argument.
-   *
-   * @since 5.0.0
-   */
-  memoizeOptions?: OverrideMemoizeOptions<
-    MemoizeFunction,
-    OverrideMemoizeFunction
-  >
-
-  /**
-   * Optional configuration options for the {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} function.
-   * These options are passed to the {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} function as the second argument.
-   *
-   * @since 5.0.0
-   */
-  argsMemoizeOptions?: OverrideMemoizeOptions<
-    ArgsMemoizeFunction,
-    OverrideArgsMemoizeFunction
-  >
-}
-
-/**
- * The additional fields attached to the output selector generated by `createSelector`.
- *
- * **Note**: Although {@linkcode CreateSelectorOptions.memoize memoize}
- * and {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} are included in the attached fields,
- * the fields themselves are independent of the type of
- * {@linkcode CreateSelectorOptions.memoize memoize} and {@linkcode CreateSelectorOptions.argsMemoize argsMemoize} functions.
- * Meaning this type is not going to generate additional fields based on what functions we use to memoize our selectors.
- *
- * _This type is not to be confused with {@linkcode ExtractMemoizerFields ExtractMemoizerFields}._
- *
- * @template InputSelectors - The type of the input selectors.
- * @template Result - The type of the result returned by the `resultFunc`.
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-export type OutputSelectorFields<
-  InputSelectors extends SelectorArray = SelectorArray,
-  Result = unknown,
-  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
-> = {
-  /**
-   * The final function passed to `createSelector`. Otherwise known as the `combiner`.
-   */
-  resultFunc: Combiner<InputSelectors, Result>
-
-  /**
-   * The memoized version of {@linkcode OutputSelectorFields.resultFunc resultFunc}.
-   */
-  memoizedResultFunc: Combiner<InputSelectors, Result> &
-    ExtractMemoizerFields<MemoizeFunction>
-
-  /**
-   * @Returns The last result calculated by {@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc}.
-   */
-  lastResult: () => Result
-
-  /**
-   * The array of the input selectors used by `createSelector` to compose the
-   * combiner ({@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc}).
-   */
-  dependencies: InputSelectors
-
-  /**
-   * Counts the number of times {@linkcode OutputSelectorFields.memoizedResultFunc memoizedResultFunc} has been recalculated.
-   */
-  recomputations: () => number
-
-  /**
-   * Resets the count of {@linkcode OutputSelectorFields.recomputations recomputations} count to 0.
-   */
-  resetRecomputations: () => void
-
-  /**
-   * Counts the number of times the input selectors ({@linkcode OutputSelectorFields.dependencies dependencies})
-   * have been recalculated. This is distinct from {@linkcode OutputSelectorFields.recomputations recomputations},
-   * which tracks the recalculations of the result function.
-   *
-   * @since 5.0.0
-   */
-  dependencyRecomputations: () => number
-
-  /**
-   * Resets the count {@linkcode OutputSelectorFields.dependencyRecomputations dependencyRecomputations}
-   * for the input selectors ({@linkcode OutputSelectorFields.dependencies dependencies})
-   * of a memoized selector.
-   *
-   * @since 5.0.0
-   */
-  resetDependencyRecomputations: () => void
-} & Simplify<
-  Required<
-    Pick<
-      CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,
-      'argsMemoize' | 'memoize'
-    >
-  >
->
-
-/**
- * Represents the actual selectors generated by `createSelector`.
- *
- * @template InputSelectors - The type of the input selectors.
- * @template Result - The type of the result returned by the `resultFunc`.
- * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).
- * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.
- *
- * @public
- */
-export type OutputSelector<
-  InputSelectors extends SelectorArray = SelectorArray,
-  Result = unknown,
-  MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,
-  ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize
-> = Selector<
-  GetStateFromSelectors<InputSelectors>,
-  Result,
-  GetParamsFromSelectors<InputSelectors>
-> &
-  ExtractMemoizerFields<ArgsMemoizeFunction> &
-  OutputSelectorFields<
-    InputSelectors,
-    Result,
-    MemoizeFunction,
-    ArgsMemoizeFunction
-  >
-
-/**
- * A function that takes input selectors' return values as arguments and returns a result. Otherwise known as `resultFunc`.
- *
- * @template InputSelectors - An array of input selectors.
- * @template Result - Result returned by `resultFunc`.
- *
- * @public
- */
-export type Combiner<InputSelectors extends SelectorArray, Result> = Distribute<
-  /**
-   * A function that takes input selectors' return values as arguments and returns a result. Otherwise known as `resultFunc`.
-   *
-   * @param resultFuncArgs - Return values of input selectors.
-   * @returns The return value of {@linkcode OutputSelectorFields.resultFunc resultFunc}.
-   */
-  (...resultFuncArgs: SelectorResultArray<InputSelectors>) => Result
->
-
-/**
- * A standard function returning true if two values are considered equal.
- *
- * @public
- */
-export type EqualityFn<T = any> = (a: T, b: T) => boolean
-
-/**
- * The frequency of development mode checks.
- *
- * @since 5.0.0
- * @public
- */
-export type DevModeCheckFrequency = 'always' | 'once' | 'never'
-
-/**
- * Represents the configuration for development mode checks.
- *
- * @since 5.0.0
- * @public
- */
-export interface DevModeChecks {
-  /**
-   * Overrides the global input stability check for the selector.
-   * - `once` - Run only the first time the selector is called.
-   * - `always` - Run every time the selector is called.
-   * - `never` - Never run the input stability check.
-   *
-   * @default 'once'
-   *
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks#inputstabilitycheck `inputStabilityCheck`}
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks#2-per-selector-by-passing-an-inputstabilitycheck-option-directly-to- per-selector-configuration}
-   *
-   * @since 5.0.0
-   */
-  inputStabilityCheck: DevModeCheckFrequency
-
-  /**
-   * Overrides the global identity function check for the selector.
-   * - `once` - Run only the first time the selector is called.
-   * - `always` - Run every time the selector is called.
-   * - `never` - Never run the identity function check.
-   *
-   * @default 'once'
-   *
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}
-   * @see {@link https://reselect.js.org/api/development-only-stability-checks#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to- per-selector-configuration}
-   *
-   * @since 5.0.0
-   */
-  identityFunctionCheck: DevModeCheckFrequency
-}
-
-/**
- * Represents execution information for development mode checks.
- *
- * @public
- * @since 5.0.0
- */
-export type DevModeChecksExecutionInfo = {
-  [K in keyof DevModeChecks]: {
-    /**
-     * A boolean indicating whether the check should be executed.
-     */
-    shouldRun: boolean
-
-    /**
-     * The function to execute for the check.
-     */
-    run: AnyFunction
-  }
-}
-
-/**
- * Determines the combined single "State" type (first arg) from all input selectors.
- *
- * @public
- */
-export type GetStateFromSelectors<Selectors extends SelectorArray> =
-  MergeParameters<Selectors>[0]
-
-/**
- * Determines the combined  "Params" type (all remaining args) from all input selectors.
- *
- * @public
- */
-export type GetParamsFromSelectors<Selectors extends SelectorArray> = ArrayTail<
-  MergeParameters<Selectors>
->
-
-/**
- * Any Memoizer function. A memoizer is a function that accepts another function and returns it.
- *
- * @template FunctionType - The type of the function that is memoized.
- *
- * @public
- */
-export type UnknownMemoizer<
-  FunctionType extends UnknownFunction = UnknownFunction
-> = (func: FunctionType, ...options: any[]) => FunctionType
-
-/**
- * Extracts the options type for a memoization function based on its parameters.
- * The first parameter of the function is expected to be the function to be memoized,
- * followed by options for the memoization process.
- *
- * @template MemoizeFunction - The type of the memoize function to be checked.
- *
- * @public
- */
-export type MemoizeOptionsFromParameters<
-  MemoizeFunction extends UnknownMemoizer
-> =
-  | (
-      | NonFunctionType<DropFirstParameter<MemoizeFunction>[0]>
-      | FunctionType<DropFirstParameter<MemoizeFunction>[0]>
-    )
-  | (
-      | NonFunctionType<DropFirstParameter<MemoizeFunction>[number]>
-      | FunctionType<DropFirstParameter<MemoizeFunction>[number]>
-    )[]
-
-/**
- * Derive the type of memoize options object based on whether the memoize function itself was overridden.
- *
- * _This type can be used for both `memoizeOptions` and `argsMemoizeOptions`._
- *
- * @template MemoizeFunction - The type of the `memoize` or `argsMemoize` function initially passed into `createSelectorCreator`.
- * @template OverrideMemoizeFunction - The type of the optional `memoize` or `argsMemoize` function passed directly into `createSelector` which then overrides the original `memoize` or `argsMemoize` function passed into `createSelectorCreator`.
- *
- * @public
- */
-export type OverrideMemoizeOptions<
-  MemoizeFunction extends UnknownMemoizer,
-  OverrideMemoizeFunction extends UnknownMemoizer = never
-> = IfNever<
-  OverrideMemoizeFunction,
-  Simplify<MemoizeOptionsFromParameters<MemoizeFunction>>,
-  Simplify<MemoizeOptionsFromParameters<OverrideMemoizeFunction>>
->
-
-/**
- * Extracts the additional properties or methods that a memoize function attaches to
- * the function it memoizes (e.g., `clearCache`).
- *
- * @template MemoizeFunction - The type of the memoize function to be checked.
- *
- * @public
- */
-export type ExtractMemoizerFields<MemoizeFunction extends UnknownMemoizer> =
-  Simplify<OmitIndexSignature<ReturnType<MemoizeFunction>>>
-
-/**
- * Represents the additional properties attached to a function memoized by `reselect`.
- *
- * `lruMemoize`, `weakMapMemoize` and `autotrackMemoize` all return these properties.
- *
- * @see {@linkcode ExtractMemoizerFields ExtractMemoizerFields}
- *
- * @public
- */
-export type DefaultMemoizeFields = {
-  /**
-   * Clears the memoization cache associated with a memoized function.
-   * This method is typically used to reset the state of the cache, allowing
-   * for the garbage collection of previously memoized results and ensuring
-   * that future calls to the function recompute the results.
-   */
-  clearCache: () => void
-  resultsCount: () => number
-  resetResultsCount: () => void
-}
-
-/*
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- * Reselect Internal Utility Types
- *
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- */
-
-/**
- * Any function with any arguments.
- *
- * @internal
- */
-export type AnyFunction = (...args: any[]) => any
-
-/**
- * Any function with unknown arguments.
- *
- * @internal
- */
-export type UnknownFunction = (...args: unknown[]) => unknown
-
-/**
- * When a generic type parameter is using its default value of `never`, fallback to a different type.
- *
- * @template T - Type to be checked.
- * @template FallbackTo - Type to fallback to if `T` resolves to `never`.
- *
- * @internal
- */
-export type FallbackIfNever<T, FallbackTo> = IfNever<T, FallbackTo, T>
-
-/**
- * Extracts the non-function part of a type.
- *
- * @template T - The input type to be refined by excluding function types and index signatures.
- *
- * @internal
- */
-export type NonFunctionType<T> = Simplify<
-  OmitIndexSignature<Exclude<T, AnyFunction>>
->
-
-/**
- * Extracts the function part of a type.
- *
- * @template T - The input type to be refined by extracting function types.
- *
- * @internal
- */
-export type FunctionType<T> = Extract<T, AnyFunction>
-
-/**
- * Extracts the return type from all functions as a tuple.
- *
- * @internal
- */
-export type ExtractReturnType<FunctionsArray extends readonly AnyFunction[]> = {
-  [Index in keyof FunctionsArray]: FunctionsArray[Index] extends FunctionsArray[number]
-    ? FallbackIfUnknown<ReturnType<FunctionsArray[Index]>, any>
-    : never
-}
-
-/**
- * Utility type to infer the type of "all params of a function except the first",
- * so we can determine what arguments a memoize function accepts.
- *
- * @internal
- */
-export type DropFirstParameter<Func extends AnyFunction> = Func extends (
-  firstArg: any,
-  ...restArgs: infer Rest
-) => any
-  ? Rest
-  : never
-
-/**
- * Distributes over a type. It is used mostly to expand a function type
- * in hover previews while preserving their original JSDoc information.
- *
- * If preserving JSDoc information is not a concern, you can use {@linkcode ExpandFunction ExpandFunction}.
- *
- * @template T The type to be distributed.
- *
- * @internal
- */
-export type Distribute<T> = T extends T ? T : never
-
-/**
- * Extracts the type of the first element of an array or tuple.
- *
- * @internal
- */
-export type FirstArrayElement<ArrayType> = ArrayType extends readonly [
-  unknown,
-  ...unknown[]
-]
-  ? ArrayType[0]
-  : never
-
-/**
- * Extracts the type of an array or tuple minus the first element.
- *
- * @internal
- */
-export type ArrayTail<ArrayType> = ArrayType extends readonly [
-  unknown,
-  ...infer Tail
-]
-  ? Tail
-  : []
-
-/**
- * An alias for type `{}`. Represents any value that is not `null` or `undefined`.
- * It is mostly used for semantic purposes to help distinguish between an
- * empty object type and `{}` as they are not the same.
- *
- * @internal
- */
-export type AnyNonNullishValue = NonNullable<unknown>
-
-/**
- * Same as {@linkcode AnyNonNullishValue AnyNonNullishValue} but aliased
- * for semantic purposes. It is intended to be used in scenarios where
- * a recursive type definition needs to be interrupted to ensure type safety
- * and to avoid excessively deep recursion that could lead to performance issues.
- *
- * @internal
- */
-export type InterruptRecursion = AnyNonNullishValue
-
-/*
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- * External/Copied Utility Types
- *
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- */
-
-/**
- * An if-else-like type that resolves depending on whether the given type is `never`.
- * This is mainly used to conditionally resolve the type of a `memoizeOptions` object based on whether `memoize` is provided or not.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/if-never.d.ts Source}
- *
- * @internal
- */
-export type IfNever<T, TypeIfNever, TypeIfNotNever> = [T] extends [never]
-  ? TypeIfNever
-  : TypeIfNotNever
-
-/**
- * Omit any index signatures from the given object type, leaving only explicitly defined properties.
- * This is mainly used to remove explicit `any`s from the return type of some memoizers (e.g, `microMemoize`).
- *
- * __Disclaimer:__ When used on an intersection of a function and an object,
- * the function is erased.
- *
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/omit-index-signature.d.ts Source}
- *
- * @internal
- */
-export type OmitIndexSignature<ObjectType> = {
-  [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown>
-    ? never
-    : KeyType]: ObjectType[KeyType]
-}
-
-/**
- * The infamous "convert a union type to an intersection type" hack
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/union-to-intersection.d.ts Source}
- * @see {@link https://github.com/microsoft/TypeScript/issues/29594 Reference}
- *
- * @internal
- */
-export type UnionToIntersection<Union> =
-  // `extends unknown` is always going to be the case and is used to convert the
-  // `Union` into a [distributive conditional
-  // type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).
-  (
-    Union extends unknown
-      ? // The union type is used as the only argument to a function since the union
-        // of function arguments is an intersection.
-        (distributedUnion: Union) => void
-      : // This won't happen.
-        never
-  ) extends // Infer the `Intersection` type since TypeScript represents the positional
-  // arguments of unions of functions as an intersection of the union.
-  (mergedIntersection: infer Intersection) => void
-    ? // The `& Union` is to allow indexing by the resulting type
-      Intersection & Union
-    : never
-
-/**
- * Code to convert a union of values into a tuple.
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-type Push<T extends any[], V> = [...T, V]
-
-/**
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-type LastOf<T> = UnionToIntersection<
-  T extends any ? () => T : never
-> extends () => infer R
-  ? R
-  : never
-
-/**
- * TS4.1+
- * @see {@link https://stackoverflow.com/a/55128956/62937 Source}
- *
- * @internal
- */
-export type TuplifyUnion<
-  T,
-  L = LastOf<T>,
-  N = [T] extends [never] ? true : false
-> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>
-
-/**
- * Converts "the values of an object" into a tuple, like a type-level `Object.values()`
- * @see {@link https://stackoverflow.com/a/68695508/62937 Source}
- *
- * @internal
- */
-export type ObjectValuesToTuple<
-  T,
-  KS extends any[] = TuplifyUnion<keyof T>,
-  R extends any[] = []
-> = KS extends [infer K, ...infer KT]
-  ? ObjectValuesToTuple<T, KT, [...R, T[K & keyof T]]>
-  : R
-
-/**
- * Create a type that makes the given keys required.
- * The remaining keys are kept as is.
- *
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/set-required.d.ts Source}
- *
- * @internal
- */
-export type SetRequired<BaseType, Keys extends keyof BaseType> = Omit<
-  BaseType,
-  Keys
-> &
-  Required<Pick<BaseType, Keys>>
-
-/**
- * An if-else-like type that resolves depending on whether the given type is `unknown`.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/if-unknown.d.ts Source}
- *
- * @internal
- */
-export type IfUnknown<T, TypeIfUnknown, TypeIfNotUnknown> = unknown extends T // `T` can be `unknown` or `any`
-  ? [T] extends [null] // `any` can be `null`, but `unknown` can't be
-    ? TypeIfNotUnknown
-    : TypeIfUnknown
-  : TypeIfNotUnknown
-
-/**
- * When a type is resolves to `unknown`, fallback to a different type.
- *
- * @template T - Type to be checked.
- * @template FallbackTo - Type to fallback to if `T` resolves to `unknown`.
- *
- * @internal
- */
-export type FallbackIfUnknown<T, FallbackTo> = IfUnknown<T, FallbackTo, T>
-
-/**
- *
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- * Type Expansion Utilities
- *
- * -----------------------------------------------------------------------------
- * -----------------------------------------------------------------------------
- *
- */
-
-/**
- * Check whether `U` contains `U1`.
- * @see {@link https://millsp.github.io/ts-toolbelt/modules/union_has.html Source}
- *
- * @internal
- */
-export type Has<U, U1> = [U1] extends [U] ? 1 : 0
-
-/**
- * @internal
- */
-export type Boolean2 = 0 | 1
-
-/**
- * @internal
- */
-export type If2<B extends Boolean2, Then, Else = never> = B extends 1
-  ? Then
-  : Else
-
-/**
- * @internal
- */
-export type BuiltIn =
-  | Function
-  | Error
-  | Date
-  | { readonly [Symbol.toStringTag]: string }
-  | RegExp
-  | Generator
-
-/**
- * Expand an item a single level.
- * @see {@link https://stackoverflow.com/a/69288824/62937 Source}
- *
- * @internal
- */
-export type Expand<T> = T extends (...args: infer A) => infer R
-  ? (...args: Expand<A>) => Expand<R>
-  : T extends infer O
-  ? { [K in keyof O]: O[K] }
-  : never
-
-/**
- * Expand an item recursively.
- * @see {@link https://stackoverflow.com/a/69288824/62937 Source}
- *
- * @internal
- */
-export type ExpandRecursively<T> = T extends (...args: infer A) => infer R
-  ? (...args: ExpandRecursively<A>) => ExpandRecursively<R>
-  : T extends object
-  ? T extends infer O
-    ? { [K in keyof O]: ExpandRecursively<O[K]> }
-    : never
-  : T
-
-/**
- * @internal
- */
-export type Identity<T> = T
-
-/**
- * Another form of type value expansion
- * @see {@link https://github.com/microsoft/TypeScript/issues/35247 Source}
- *
- * @internal
- */
-export type Mapped<T> = Identity<{ [k in keyof T]: T[k] }>
-
-/**
- * This utility type is primarily used to expand a function type in order to
- * improve its visual display in hover previews within IDEs.
- *
- * __Disclaimer:__ Functions expanded using this type will not display their
- * original JSDoc information in hover previews.
- *
- * @template FunctionType - The type of the function to be expanded.
- *
- * @internal
- */
-export type ExpandFunction<FunctionType extends AnyFunction> =
-  FunctionType extends FunctionType
-    ? (...args: Parameters<FunctionType>) => ReturnType<FunctionType>
-    : never
-
-/**
- * Useful to flatten the type output to improve type hints shown in editors.
- * And also to transform an interface into a type to aide with assignability.
- * @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/simplify.d.ts Source}
- *
- * @internal
- */
-export type Simplify<T> = T extends AnyFunction
-  ? T
-  : {
-      [KeyType in keyof T]: T[KeyType]
-    } & AnyNonNullishValue
-
-/**
- * Fully expand a type, deeply
- * @see {@link https://github.com/millsp/ts-toolbelt Any.Compute}
- *
- * @internal
- */
-export type ComputeDeep<A, Seen = never> = A extends BuiltIn
-  ? A
-  : If2<
-      Has<Seen, A>,
-      A,
-      A extends any[]
-        ? A extends Record<PropertyKey, any>[]
-          ? ({
-              [K in keyof A[number]]: ComputeDeep<A[number][K], A | Seen>
-            } & unknown)[]
-          : A
-        : A extends readonly any[]
-        ? A extends readonly Record<PropertyKey, any>[]
-          ? readonly ({
-              [K in keyof A[number]]: ComputeDeep<A[number][K], A | Seen>
-            } & unknown)[]
-          : A
-        : { [K in keyof A]: ComputeDeep<A[K], A | Seen> } & unknown
-    >
Index: de_modules/reselect/src/utils.ts
===================================================================
--- node_modules/reselect/src/utils.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,156 +1,0 @@
-import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'
-import { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'
-import { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'
-// eslint-disable-next-line @typescript-eslint/consistent-type-imports
-import type {
-  DevModeChecks,
-  Selector,
-  SelectorArray,
-  DevModeChecksExecutionInfo
-} from './types'
-
-export const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')
-export type NOT_FOUND_TYPE = typeof NOT_FOUND
-
-/**
- * Assert that the provided value is a function. If the assertion fails,
- * a `TypeError` is thrown with an optional custom error message.
- *
- * @param func - The value to be checked.
- * @param  errorMessage - An optional custom error message to use if the assertion fails.
- * @throws A `TypeError` if the assertion fails.
- */
-export function assertIsFunction<FunctionType extends Function>(
-  func: unknown,
-  errorMessage = `expected a function, instead received ${typeof func}`
-): asserts func is FunctionType {
-  if (typeof func !== 'function') {
-    throw new TypeError(errorMessage)
-  }
-}
-
-/**
- * Assert that the provided value is an object. If the assertion fails,
- * a `TypeError` is thrown with an optional custom error message.
- *
- * @param object - The value to be checked.
- * @param  errorMessage - An optional custom error message to use if the assertion fails.
- * @throws A `TypeError` if the assertion fails.
- */
-export function assertIsObject<ObjectType extends Record<string, unknown>>(
-  object: unknown,
-  errorMessage = `expected an object, instead received ${typeof object}`
-): asserts object is ObjectType {
-  if (typeof object !== 'object') {
-    throw new TypeError(errorMessage)
-  }
-}
-
-/**
- * Assert that the provided array is an array of functions. If the assertion fails,
- * a `TypeError` is thrown with an optional custom error message.
- *
- * @param array - The array to be checked.
- * @param  errorMessage - An optional custom error message to use if the assertion fails.
- * @throws A `TypeError` if the assertion fails.
- */
-export function assertIsArrayOfFunctions<FunctionType extends Function>(
-  array: unknown[],
-  errorMessage = `expected all items to be functions, instead received the following types: `
-): asserts array is FunctionType[] {
-  if (
-    !array.every((item): item is FunctionType => typeof item === 'function')
-  ) {
-    const itemTypes = array
-      .map(item =>
-        typeof item === 'function'
-          ? `function ${item.name || 'unnamed'}()`
-          : typeof item
-      )
-      .join(', ')
-    throw new TypeError(`${errorMessage}[${itemTypes}]`)
-  }
-}
-
-/**
- * Ensure that the input is an array. If it's already an array, it's returned as is.
- * If it's not an array, it will be wrapped in a new array.
- *
- * @param item - The item to be checked.
- * @returns An array containing the input item. If the input is already an array, it's returned without modification.
- */
-export const ensureIsArray = (item: unknown) => {
-  return Array.isArray(item) ? item : [item]
-}
-
-/**
- * Extracts the "dependencies" / "input selectors" from the arguments of `createSelector`.
- *
- * @param createSelectorArgs - Arguments passed to `createSelector` as an array.
- * @returns An array of "input selectors" / "dependencies".
- * @throws A `TypeError` if any of the input selectors is not function.
- */
-export function getDependencies(createSelectorArgs: unknown[]) {
-  const dependencies = Array.isArray(createSelectorArgs[0])
-    ? createSelectorArgs[0]
-    : createSelectorArgs
-
-  assertIsArrayOfFunctions<Selector>(
-    dependencies,
-    `createSelector expects all input-selectors to be functions, but received the following types: `
-  )
-
-  return dependencies as SelectorArray
-}
-
-/**
- * Runs each input selector and returns their collective results as an array.
- *
- * @param dependencies - An array of "dependencies" or "input selectors".
- * @param inputSelectorArgs - An array of arguments being passed to the input selectors.
- * @returns An array of input selector results.
- */
-export function collectInputSelectorResults(
-  dependencies: SelectorArray,
-  inputSelectorArgs: unknown[] | IArguments
-) {
-  const inputSelectorResults = []
-  const { length } = dependencies
-  for (let i = 0; i < length; i++) {
-    // @ts-ignore
-    // apply arguments instead of spreading and mutate a local list of params for performance.
-    inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))
-  }
-  return inputSelectorResults
-}
-
-/**
- * Retrieves execution information for development mode checks.
- *
- * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.
- * @param firstRun - Indicates whether it is the first time the selector has run.
- * @returns  An object containing the execution information for each development mode check.
- */
-export const getDevModeChecksExecutionInfo = (
-  firstRun: boolean,
-  devModeChecks: Partial<DevModeChecks>
-) => {
-  const { identityFunctionCheck, inputStabilityCheck } = {
-    ...globalDevModeChecks,
-    ...devModeChecks
-  }
-  return {
-    identityFunctionCheck: {
-      shouldRun:
-        identityFunctionCheck === 'always' ||
-        (identityFunctionCheck === 'once' && firstRun),
-      run: runIdentityFunctionCheck
-    },
-    inputStabilityCheck: {
-      shouldRun:
-        inputStabilityCheck === 'always' ||
-        (inputStabilityCheck === 'once' && firstRun),
-      run: runInputStabilityCheck
-    }
-  } satisfies DevModeChecksExecutionInfo
-}
Index: de_modules/reselect/src/versionedTypes/index.ts
===================================================================
--- node_modules/reselect/src/versionedTypes/index.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export type { MergeParameters } from './ts47-mergeParameters'
Index: de_modules/reselect/src/versionedTypes/ts47-mergeParameters.ts
===================================================================
--- node_modules/reselect/src/versionedTypes/ts47-mergeParameters.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-// This entire implementation courtesy of Anders Hjelsberg:
-// https://github.com/microsoft/TypeScript/pull/50831#issuecomment-1253830522
-
-import type { AnyFunction } from '../types'
-
-/**
- * Represents the longest array within an array of arrays.
- *
- * @template ArrayOfTuples An array of arrays.
- *
- * @internal
- */
-type LongestTuple<ArrayOfTuples extends readonly unknown[][]> =
-  ArrayOfTuples extends [infer FirstArray extends unknown[]]
-    ? FirstArray
-    : ArrayOfTuples extends [
-        infer FirstArray,
-        ...infer RestArrays extends unknown[][]
-      ]
-    ? LongerOfTwo<FirstArray, LongestTuple<RestArrays>>
-    : never
-
-/**
- * Determines the longer of two array types.
- *
- * @template ArrayOne First array type.
- * @template ArrayTwo Second array type.
- *
- * @internal
- */
-type LongerOfTwo<ArrayOne, ArrayTwo> = keyof ArrayTwo extends keyof ArrayOne
-  ? ArrayOne
-  : ArrayTwo
-
-/**
- * Extracts the element at a specific index in an array.
- *
- * @template ArrayType The array type.
- * @template Index The index type.
- *
- * @internal
- */
-type ElementAt<
-  ArrayType extends unknown[],
-  Index extends PropertyKey
-> = Index extends keyof ArrayType ? ArrayType[Index] : unknown
-
-/**
- * Maps each array in an array of arrays to its element at a given index.
- *
- * @template ArrayOfTuples An array of arrays.
- * @template Index The index to extract from each array.
- *
- * @internal
- */
-type ElementsAtGivenIndex<
-  ArrayOfTuples extends readonly unknown[][],
-  Index extends PropertyKey
-> = {
-  [ArrayIndex in keyof ArrayOfTuples]: ElementAt<
-    ArrayOfTuples[ArrayIndex],
-    Index
-  >
-}
-
-/**
- * Computes the intersection of all types in a tuple.
- *
- * @template Tuple A tuple of types.
- *
- * @internal
- */
-type Intersect<Tuple extends readonly unknown[]> = Tuple extends []
-  ? unknown
-  : Tuple extends [infer Head, ...infer Tail]
-  ? Head & Intersect<Tail>
-  : Tuple[number]
-
-/**
- * Merges a tuple of arrays into a single tuple, intersecting types at each index.
- *
- * @template ArrayOfTuples An array of tuples.
- * @template LongestArray The longest array in ArrayOfTuples.
- *
- * @internal
- */
-type MergeTuples<
-  ArrayOfTuples extends readonly unknown[][],
-  LongestArray extends unknown[] = LongestTuple<ArrayOfTuples>
-> = {
-  [Index in keyof LongestArray]: Intersect<
-    ElementsAtGivenIndex<ArrayOfTuples, Index>
-  >
-}
-
-/**
- * Extracts the parameter types from a tuple of functions.
- *
- * @template FunctionsArray An array of function types.
- *
- * @internal
- */
-type ExtractParameters<FunctionsArray extends readonly AnyFunction[]> = {
-  [Index in keyof FunctionsArray]: Parameters<FunctionsArray[Index]>
-}
-
-/**
- * Merges the parameters of a tuple of functions into a single tuple.
- *
- * @template FunctionsArray An array of function types.
- *
- * @internal
- */
-export type MergeParameters<FunctionsArray extends readonly AnyFunction[]> =
-  '0' extends keyof FunctionsArray
-    ? MergeTuples<ExtractParameters<FunctionsArray>>
-    : Parameters<FunctionsArray[number]>
Index: de_modules/reselect/src/weakMapMemoize.ts
===================================================================
--- node_modules/reselect/src/weakMapMemoize.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,269 +1,0 @@
-// Original source:
-// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js
-
-import type {
-  AnyFunction,
-  DefaultMemoizeFields,
-  EqualityFn,
-  Simplify
-} from './types'
-
-class StrongRef<T> {
-  constructor(private value: T) {}
-  deref() {
-    return this.value
-  }
-}
-
-const Ref =
-  typeof WeakRef !== 'undefined'
-    ? WeakRef
-    : (StrongRef as unknown as typeof WeakRef)
-
-const UNTERMINATED = 0
-const TERMINATED = 1
-
-interface UnterminatedCacheNode<T> {
-  /**
-   * Status, represents whether the cached computation returned a value or threw an error.
-   */
-  s: 0
-  /**
-   * Value, either the cached result or an error, depending on status.
-   */
-  v: void
-  /**
-   * Object cache, a `WeakMap` where non-primitive arguments are stored.
-   */
-  o: null | WeakMap<Function | Object, CacheNode<T>>
-  /**
-   * Primitive cache, a regular Map where primitive arguments are stored.
-   */
-  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>
-}
-
-interface TerminatedCacheNode<T> {
-  /**
-   * Status, represents whether the cached computation returned a value or threw an error.
-   */
-  s: 1
-  /**
-   * Value, either the cached result or an error, depending on status.
-   */
-  v: T
-  /**
-   * Object cache, a `WeakMap` where non-primitive arguments are stored.
-   */
-  o: null | WeakMap<Function | Object, CacheNode<T>>
-  /**
-   * Primitive cache, a regular `Map` where primitive arguments are stored.
-   */
-  p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>
-}
-
-type CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>
-
-function createCacheNode<T>(): CacheNode<T> {
-  return {
-    s: UNTERMINATED,
-    v: undefined,
-    o: null,
-    p: null
-  }
-}
-
-/**
- * Configuration options for a memoization function utilizing `WeakMap` for
- * its caching mechanism.
- *
- * @template Result - The type of the return value of the memoized function.
- *
- * @since 5.0.0
- * @public
- */
-export interface WeakMapMemoizeOptions<Result = any> {
-  /**
-   * If provided, used to compare a newly generated output value against previous values in the cache.
-   * If a match is found, the old value is returned. This addresses the common
-   * ```ts
-   * todos.map(todo => todo.id)
-   * ```
-   * use case, where an update to another field in the original data causes a recalculation
-   * due to changed references, but the output is still effectively the same.
-   *
-   * @since 5.0.0
-   */
-  resultEqualityCheck?: EqualityFn<Result>
-}
-
-/**
- * Creates a tree of `WeakMap`-based cache nodes based on the identity of the
- * arguments it's been called with (in this case, the extracted values from your input selectors).
- * This allows `weakMapMemoize` to have an effectively infinite cache size.
- * Cache results will be kept in memory as long as references to the arguments still exist,
- * and then cleared out as the arguments are garbage-collected.
- *
- * __Design Tradeoffs for `weakMapMemoize`:__
- * - Pros:
- *   - It has an effectively infinite cache size, but you have no control over
- *   how long values are kept in cache as it's based on garbage collection and `WeakMap`s.
- * - Cons:
- *   - There's currently no way to alter the argument comparisons.
- *   They're based on strict reference equality.
- *   - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.
- *
- * __Use Cases for `weakMapMemoize`:__
- * - This memoizer is likely best used for cases where you need to call the
- * same selector instance with many different arguments, such as a single
- * selector instance that is used in a list item component and called with
- * item IDs like:
- *   ```ts
- *   useSelector(state => selectSomeData(state, props.category))
- *   ```
- * @param func - The function to be memoized.
- * @returns A memoized function with a `.clearCache()` method attached.
- *
- * @example
- * <caption>Using `createSelector`</caption>
- * ```ts
- * import { createSelector, weakMapMemoize } from 'reselect'
- *
- * interface RootState {
- *   items: { id: number; category: string; name: string }[]
- * }
- *
- * const selectItemsByCategory = createSelector(
- *   [
- *     (state: RootState) => state.items,
- *     (state: RootState, category: string) => category
- *   ],
- *   (items, category) => items.filter(item => item.category === category),
- *   {
- *     memoize: weakMapMemoize,
- *     argsMemoize: weakMapMemoize
- *   }
- * )
- * ```
- *
- * @example
- * <caption>Using `createSelectorCreator`</caption>
- * ```ts
- * import { createSelectorCreator, weakMapMemoize } from 'reselect'
- *
- * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })
- *
- * const selectItemsByCategory = createSelectorWeakMap(
- *   [
- *     (state: RootState) => state.items,
- *     (state: RootState, category: string) => category
- *   ],
- *   (items, category) => items.filter(item => item.category === category)
- * )
- * ```
- *
- * @template Func - The type of the function that is memoized.
- *
- * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}
- *
- * @since 5.0.0
- * @public
- * @experimental
- */
-export function weakMapMemoize<Func extends AnyFunction>(
-  func: Func,
-  options: WeakMapMemoizeOptions<ReturnType<Func>> = {}
-) {
-  let fnNode = createCacheNode()
-  const { resultEqualityCheck } = options
-
-  let lastResult: WeakRef<object> | undefined
-
-  let resultsCount = 0
-
-  function memoized() {
-    let cacheNode = fnNode
-    const { length } = arguments
-    for (let i = 0, l = length; i < l; i++) {
-      const arg = arguments[i]
-      if (
-        typeof arg === 'function' ||
-        (typeof arg === 'object' && arg !== null)
-      ) {
-        // Objects go into a WeakMap
-        let objectCache = cacheNode.o
-        if (objectCache === null) {
-          cacheNode.o = objectCache = new WeakMap()
-        }
-        const objectNode = objectCache.get(arg)
-        if (objectNode === undefined) {
-          cacheNode = createCacheNode()
-          objectCache.set(arg, cacheNode)
-        } else {
-          cacheNode = objectNode
-        }
-      } else {
-        // Primitives go into a regular Map
-        let primitiveCache = cacheNode.p
-        if (primitiveCache === null) {
-          cacheNode.p = primitiveCache = new Map()
-        }
-        const primitiveNode = primitiveCache.get(arg)
-        if (primitiveNode === undefined) {
-          cacheNode = createCacheNode()
-          primitiveCache.set(arg, cacheNode)
-        } else {
-          cacheNode = primitiveNode
-        }
-      }
-    }
-
-    const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>
-
-    let result
-
-    if (cacheNode.s === TERMINATED) {
-      result = cacheNode.v
-    } else {
-      // Allow errors to propagate
-      result = func.apply(null, arguments as unknown as any[])
-      resultsCount++
-
-      if (resultEqualityCheck) {
-        const lastResultValue = lastResult?.deref?.() ?? lastResult
-
-        if (
-          lastResultValue != null &&
-          resultEqualityCheck(lastResultValue as ReturnType<Func>, result)
-        ) {
-          result = lastResultValue
-
-          resultsCount !== 0 && resultsCount--
-        }
-
-        const needsWeakRef =
-          (typeof result === 'object' && result !== null) ||
-          typeof result === 'function'
-
-        lastResult = needsWeakRef ? new Ref(result) : result
-      }
-    }
-
-    terminatedNode.s = TERMINATED
-
-    terminatedNode.v = result
-    return result
-  }
-
-  memoized.clearCache = () => {
-    fnNode = createCacheNode()
-    memoized.resetResultsCount()
-  }
-
-  memoized.resultsCount = () => resultsCount
-
-  memoized.resetResultsCount = () => {
-    resultsCount = 0
-  }
-
-  return memoized as Func & Simplify<DefaultMemoizeFields>
-}
Index: de_modules/robust-predicates/LICENSE
===================================================================
--- node_modules/robust-predicates/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-This is free and unencumbered software released into the public domain.
-
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
-
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-For more information, please refer to <http://unlicense.org>
Index: de_modules/robust-predicates/README.md
===================================================================
--- node_modules/robust-predicates/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,82 +1,0 @@
-# robust-predicates
-
-Fast robust predicates for computational geometry in JavaScript. Provides reliable 2D and 3D point orientation tests (`orient2d`, `orient3d`, `incircle`, `insphere`) that are not susceptible to floating point errors (without sacrificing performance). A modern port of [Jonathan R Shewchuk's C code](https://www.cs.cmu.edu/~quake/robust.html), an industry standard since 1996.
-
-<a href="https://observablehq.com/@mourner/non-robust-arithmetic-as-art"><img width="600" height="200" src="predicates.png" /></a>
-
-_Figure: non-robust vs robust `orient2d` test for points within a tiny range (2<sup>-42</sup>)._
-
-[![Build Status](https://github.com/mourner/robust-predicates/workflows/Node/badge.svg?branch=master)](https://github.com/mourner/robust-predicates/actions)
-[![Simply Awesome](https://img.shields.io/badge/simply-awesome-brightgreen.svg)](https://github.com/mourner/projects)
-[![Browser Build](https://badgen.net/bundlephobia/minzip/robust-predicates)](https://unpkg.com/robust-predicates)
-
-## [Demo](https://observablehq.com/@mourner/non-robust-arithmetic-as-art)
-
-## API
-
-Note: unlike J. Shewchuk's original code, all the functions in this library assume `y` axis is oriented _downwards_ &darr;, so the semantics are different.
-
-### `orient2d(ax,ay, bx,by, cx,cy)`
-
-- Returns a *positive* value if the points `a`, `b`, and `c` occur in _counterclockwise_ order (`c` lies to the left of the directed line defined by points `a` and `b`).
-- Returns a *negative* value if they occur in _clockwise_ order (`c` lies to the right of the directed line `ab`).
-- Returns *zero* if they are _collinear_.
-
-The result is also an approximation of twice the signed area of the triangle defined by the three points.
-
-### `incircle(ax,ay, bx,by, cx,cy, dx,dy)`
-
-- Returns a _positive_ value if the point `d` lies _outside_ the circle passing through `a`, `b`, and `c`.
-- Returns a _negative_ value if it lies _inside_.
-- Returns _zero_ if the four points are _cocircular_.
-
-The points `a`, `b`, and `c` must be in _counterclockwise_ order, or the sign of the result will be reversed.
-
-### `orient3d(ax,ay,az, bx,by,bz, cx,cy,cz, dx,dy,dz)`
-
-- Returns a _positive_ value if the point `d` lies _above_ the plane passing through `a`, `b`, and `c`, meaning that `a`, `b`, and `c` appear in counterclockwise order when viewed from `d`.
-- Returns a _negative_ value if `d` lies _below_ the plane.
-- Returns _zero_ if the points are _coplanar_.
-
-The result is also an approximation of six times the signed volume of the tetrahedron defined by the four points.
-
-### `insphere(ax,ay,az, bx,by,bz, cx,cy,cz, dx,dy,dz, ex,ey,ez)`
-
-- Returns a _positive_ value if the point `e` lies _outside_ the sphere passing through `a`, `b`, `c`, and `d`.
-- Returns a _negative_ value if it lies _inside_.
-- Returns _zero_ if the five points are _cospherical_.
-
-The points `a`, `b`, `c`, and `d` must be ordered so that they have a _positive orientation_
-(as defined by `orient3d`), or the sign of the result will be reversed.
-
-### `orient2dfast`, `orient3dfast`, `incirclefast`, `inspherefast`
-
-Simple, approximate, non-robust versions of predicates above. Use when robustness isn't needed.
-
-## Example
-
-```js
-import {orient2d} from 'robust-predicates';
-
-const ccw = orient2d(ax, ay, bx, by, cx, cy) > 0;
-````
-
-## Install
-
-Install with `npm install robust-predicates` or `yarn add robust-predicates`, or use one of the browser builds:
-
-- [predicates.min.js](https://unpkg.com/robust-predicates/umd/predicates.min.js) (all predicates)
-- [orient2d.min.js](https://unpkg.com/robust-predicates/umd/orient2d.min.js) (`orient2d`, `orient2dfast`)
-- [orient3d.min.js](https://unpkg.com/robust-predicates/umd/orient3d.min.js) (`orient3d`, `orient3dfast`)
-- [incircle.min.js](https://unpkg.com/robust-predicates/umd/incircle.min.js) (`incircle`, `incirclefast`)
-- [insphere.min.js](https://unpkg.com/robust-predicates/umd/insphere.min.js) (`insphere`, `inspherefast`)
-
-## Thanks
-
-This project is just a port — all the brilliant, hard work was done by [Jonathan Richard Shewchuk](https://people.eecs.berkeley.edu/~jrs/).
-
-The port was also inspired by [Mikola Lysenko](https://twitter.com/MikolaLysenko)'s excellent [Robust Arithmetic Notes](https://github.com/mikolalysenko/robust-arithmetic-notes) and related projects like [robust-orientation](https://github.com/mikolalysenko/robust-orientation) and [robust-in-sphere](https://github.com/mikolalysenko/robust-in-sphere).
-
-## License
-
-Since the original code is in the public domain, this project follows the same choice. See [Unlicense](https://unlicense.org).
Index: de_modules/robust-predicates/esm/incircle.js
===================================================================
--- node_modules/robust-predicates/esm/incircle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,765 +1,0 @@
-import {epsilon, splitter, resulterrbound, estimate, vec, sum, sum_three, scale} from './util.js';
-
-const iccerrboundA = (10 + 96 * epsilon) * epsilon;
-const iccerrboundB = (4 + 48 * epsilon) * epsilon;
-const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
-
-const bc = vec(4);
-const ca = vec(4);
-const ab = vec(4);
-const aa = vec(4);
-const bb = vec(4);
-const cc = vec(4);
-const u = vec(4);
-const v = vec(4);
-const axtbc = vec(8);
-const aytbc = vec(8);
-const bxtca = vec(8);
-const bytca = vec(8);
-const cxtab = vec(8);
-const cytab = vec(8);
-const abt = vec(8);
-const bct = vec(8);
-const cat = vec(8);
-const abtt = vec(4);
-const bctt = vec(4);
-const catt = vec(4);
-
-const _8 = vec(8);
-const _16 = vec(16);
-const _16b = vec(16);
-const _16c = vec(16);
-const _32 = vec(32);
-const _32b = vec(32);
-const _48 = vec(48);
-const _64 = vec(64);
-
-let fin = vec(1152);
-let fin2 = vec(1152);
-
-function finadd(finlen, a, alen) {
-    finlen = sum(finlen, fin, a, alen, fin2);
-    const tmp = fin; fin = fin2; fin2 = tmp;
-    return finlen;
-}
-
-function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
-    let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
-    let abtlen, bctlen, catlen;
-    let abttlen, bcttlen, cattlen;
-    let n1, n0;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-
-    finlen = sum(
-        sum(
-            sum(
-                scale(scale(4, bc, adx, _8), _8, adx, _16), _16,
-                scale(scale(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32,
-            sum(
-                scale(scale(4, ca, bdx, _8), _8, bdx, _16), _16,
-                scale(scale(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64,
-        sum(
-            scale(scale(4, ab, cdx, _8), _8, cdx, _16), _16,
-            scale(scale(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = iccerrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
-        return det;
-    }
-
-    errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
-    det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +
-        2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +
-        ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +
-        2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +
-        ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +
-        2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-        s1 = adx * adx;
-        c = splitter * adx;
-        ahi = c - (c - adx);
-        alo = adx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = ady * ady;
-        c = splitter * ady;
-        ahi = c - (c - ady);
-        alo = ady - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        aa[3] = u3;
-    }
-    if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-        s1 = bdx * bdx;
-        c = splitter * bdx;
-        ahi = c - (c - bdx);
-        alo = bdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = bdy * bdy;
-        c = splitter * bdy;
-        ahi = c - (c - bdy);
-        alo = bdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        bb[3] = u3;
-    }
-    if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-        s1 = cdx * cdx;
-        c = splitter * cdx;
-        ahi = c - (c - cdx);
-        alo = cdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = cdy * cdy;
-        c = splitter * cdy;
-        ahi = c - (c - cdy);
-        alo = cdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        cc[3] = u3;
-    }
-
-    if (adxtail !== 0) {
-        axtbclen = scale(4, bc, adxtail, axtbc);
-        finlen = finadd(finlen, sum_three(
-            scale(axtbclen, axtbc, 2 * adx, _16), _16,
-            scale(scale(4, cc, adxtail, _8), _8, bdy, _16b), _16b,
-            scale(scale(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);
-    }
-    if (adytail !== 0) {
-        aytbclen = scale(4, bc, adytail, aytbc);
-        finlen = finadd(finlen, sum_three(
-            scale(aytbclen, aytbc, 2 * ady, _16), _16,
-            scale(scale(4, bb, adytail, _8), _8, cdx, _16b), _16b,
-            scale(scale(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);
-    }
-    if (bdxtail !== 0) {
-        bxtcalen = scale(4, ca, bdxtail, bxtca);
-        finlen = finadd(finlen, sum_three(
-            scale(bxtcalen, bxtca, 2 * bdx, _16), _16,
-            scale(scale(4, aa, bdxtail, _8), _8, cdy, _16b), _16b,
-            scale(scale(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);
-    }
-    if (bdytail !== 0) {
-        bytcalen = scale(4, ca, bdytail, bytca);
-        finlen = finadd(finlen, sum_three(
-            scale(bytcalen, bytca, 2 * bdy, _16), _16,
-            scale(scale(4, cc, bdytail, _8), _8, adx, _16b), _16b,
-            scale(scale(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);
-    }
-    if (cdxtail !== 0) {
-        cxtablen = scale(4, ab, cdxtail, cxtab);
-        finlen = finadd(finlen, sum_three(
-            scale(cxtablen, cxtab, 2 * cdx, _16), _16,
-            scale(scale(4, bb, cdxtail, _8), _8, ady, _16b), _16b,
-            scale(scale(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);
-    }
-    if (cdytail !== 0) {
-        cytablen = scale(4, ab, cdytail, cytab);
-        finlen = finadd(finlen, sum_three(
-            scale(cytablen, cytab, 2 * cdy, _16), _16,
-            scale(scale(4, aa, cdytail, _8), _8, bdx, _16b), _16b,
-            scale(scale(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);
-    }
-
-    if (adxtail !== 0 || adytail !== 0) {
-        if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-            s1 = bdxtail * cdy;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdy;
-            bhi = c - (c - cdy);
-            blo = cdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * cdytail;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            s1 = cdxtail * -bdy;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * -bdy;
-            bhi = c - (c - -bdy);
-            blo = -bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * -bdytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * -bdytail;
-            bhi = c - (c - -bdytail);
-            blo = -bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            bctlen = sum(4, u, 4, v, bct);
-            s1 = bdxtail * cdytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdxtail * bdytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            bctt[3] = u3;
-            bcttlen = 4;
-        } else {
-            bct[0] = 0;
-            bctlen = 1;
-            bctt[0] = 0;
-            bcttlen = 1;
-        }
-        if (adxtail !== 0) {
-            const len = scale(bctlen, bct, adxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(axtbclen, axtbc, adxtail, _16), _16,
-                scale(len, _16c, 2 * adx, _32), _32, _48), _48);
-
-            const len2 = scale(bcttlen, bctt, adxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * adx, _16), _16,
-                scale(len2, _8, adxtail, _16b), _16b,
-                scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
-
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8), _8, bdytail, _16), _16);
-            }
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8), _8, cdytail, _16), _16);
-            }
-        }
-        if (adytail !== 0) {
-            const len = scale(bctlen, bct, adytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(aytbclen, aytbc, adytail, _16), _16,
-                scale(len, _16c, 2 * ady, _32), _32, _48), _48);
-
-            const len2 = scale(bcttlen, bctt, adytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * ady, _16), _16,
-                scale(len2, _8, adytail, _16b), _16b,
-                scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
-        }
-    }
-    if (bdxtail !== 0 || bdytail !== 0) {
-        if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-            s1 = cdxtail * ady;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * ady;
-            bhi = c - (c - ady);
-            blo = ady - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * adytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -cdy;
-            n0 = -cdytail;
-            s1 = adxtail * n1;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * n0;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            catlen = sum(4, u, 4, v, cat);
-            s1 = cdxtail * adytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adxtail * cdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            catt[3] = u3;
-            cattlen = 4;
-        } else {
-            cat[0] = 0;
-            catlen = 1;
-            catt[0] = 0;
-            cattlen = 1;
-        }
-        if (bdxtail !== 0) {
-            const len = scale(catlen, cat, bdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bxtcalen, bxtca, bdxtail, _16), _16,
-                scale(len, _16c, 2 * bdx, _32), _32, _48), _48);
-
-            const len2 = scale(cattlen, catt, bdxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * bdx, _16), _16,
-                scale(len2, _8, bdxtail, _16b), _16b,
-                scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
-
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8), _8, cdytail, _16), _16);
-            }
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8), _8, adytail, _16), _16);
-            }
-        }
-        if (bdytail !== 0) {
-            const len = scale(catlen, cat, bdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bytcalen, bytca, bdytail, _16), _16,
-                scale(len, _16c, 2 * bdy, _32), _32, _48), _48);
-
-            const len2 = scale(cattlen, catt, bdytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * bdy, _16), _16,
-                scale(len2, _8, bdytail, _16b), _16b,
-                scale(len, _16c, bdytail, _32), _32,  _32b, _64), _64);
-        }
-    }
-    if (cdxtail !== 0 || cdytail !== 0) {
-        if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-            s1 = adxtail * bdy;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdy;
-            bhi = c - (c - bdy);
-            blo = bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * bdytail;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -ady;
-            n0 = -adytail;
-            s1 = bdxtail * n1;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * n0;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            abtlen = sum(4, u, 4, v, abt);
-            s1 = adxtail * bdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdxtail * adytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            abtt[3] = u3;
-            abttlen = 4;
-        } else {
-            abt[0] = 0;
-            abtlen = 1;
-            abtt[0] = 0;
-            abttlen = 1;
-        }
-        if (cdxtail !== 0) {
-            const len = scale(abtlen, abt, cdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cxtablen, cxtab, cdxtail, _16), _16,
-                scale(len, _16c, 2 * cdx, _32), _32, _48), _48);
-
-            const len2 = scale(abttlen, abtt, cdxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * cdx, _16), _16,
-                scale(len2, _8, cdxtail, _16b), _16b,
-                scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
-
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8), _8, adytail, _16), _16);
-            }
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);
-            }
-        }
-        if (cdytail !== 0) {
-            const len = scale(abtlen, abt, cdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cytablen, cytab, cdytail, _16), _16,
-                scale(len, _16c, 2 * cdy, _32), _32, _48), _48);
-
-            const len2 = scale(abttlen, abtt, cdytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * cdy, _16), _16,
-                scale(len2, _8, cdytail, _16b), _16b,
-                scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
-        }
-    }
-
-    return fin[finlen - 1];
-}
-
-export function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-    const alift = adx * adx + ady * ady;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-    const blift = bdx * bdx + bdy * bdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-    const clift = cdx * cdx + cdy * cdy;
-
-    const det =
-        alift * (bdxcdy - cdxbdy) +
-        blift * (cdxady - adxcdy) +
-        clift * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
-
-    const errbound = iccerrboundA * permanent;
-
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
-}
-
-export function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const ady = ay - dy;
-    const bdx = bx - dx;
-    const bdy = by - dy;
-    const cdx = cx - dx;
-    const cdy = cy - dy;
-
-    const abdet = adx * bdy - bdx * ady;
-    const bcdet = bdx * cdy - cdx * bdy;
-    const cadet = cdx * ady - adx * cdy;
-    const alift = adx * adx + ady * ady;
-    const blift = bdx * bdx + bdy * bdy;
-    const clift = cdx * cdx + cdy * cdy;
-
-    return alift * bcdet + blift * cadet + clift * abdet;
-}
Index: de_modules/robust-predicates/esm/insphere.js
===================================================================
--- node_modules/robust-predicates/esm/insphere.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,766 +1,0 @@
-import {epsilon, splitter, resulterrbound, estimate, vec, sum, sum_three, scale, negate} from './util.js';
-
-const isperrboundA = (16 + 224 * epsilon) * epsilon;
-const isperrboundB = (5 + 72 * epsilon) * epsilon;
-const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;
-
-const ab = vec(4);
-const bc = vec(4);
-const cd = vec(4);
-const de = vec(4);
-const ea = vec(4);
-const ac = vec(4);
-const bd = vec(4);
-const ce = vec(4);
-const da = vec(4);
-const eb = vec(4);
-
-const abc = vec(24);
-const bcd = vec(24);
-const cde = vec(24);
-const dea = vec(24);
-const eab = vec(24);
-const abd = vec(24);
-const bce = vec(24);
-const cda = vec(24);
-const deb = vec(24);
-const eac = vec(24);
-
-const adet = vec(1152);
-const bdet = vec(1152);
-const cdet = vec(1152);
-const ddet = vec(1152);
-const edet = vec(1152);
-const abdet = vec(2304);
-const cddet = vec(2304);
-const cdedet = vec(3456);
-const deter = vec(5760);
-
-const _8 = vec(8);
-const _8b = vec(8);
-const _8c = vec(8);
-const _16 = vec(16);
-const _24 = vec(24);
-const _48 = vec(48);
-const _48b = vec(48);
-const _96 = vec(96);
-const _192 = vec(192);
-const _384x = vec(384);
-const _384y = vec(384);
-const _384z = vec(384);
-const _768 = vec(768);
-
-function sum_three_scale(a, b, c, az, bz, cz, out) {
-    return sum_three(
-        scale(4, a, az, _8), _8,
-        scale(4, b, bz, _8b), _8b,
-        scale(4, c, cz, _8c), _8c, _16, out);
-}
-
-function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
-    const len = sum(
-        sum(alen, a, blen, b, _48), _48,
-        negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);
-
-    return sum_three(
-        scale(scale(len, _96, x, _192), _192, x, _384x), _384x,
-        scale(scale(len, _96, y, _192), _192, y, _384y), _384y,
-        scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);
-}
-
-function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    s1 = ax * by;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ay;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-    s1 = bx * cy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * by;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cx * dy;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * cy;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    cd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    cd[3] = u3;
-    s1 = dx * ey;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * dy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    de[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    de[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    de[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    de[3] = u3;
-    s1 = ex * ay;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * ey;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ea[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ea[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ea[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ea[3] = u3;
-    s1 = ax * cy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * ay;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ac[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ac[3] = u3;
-    s1 = bx * dy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * by;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bd[3] = u3;
-    s1 = cx * ey;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * cy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ce[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ce[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ce[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ce[3] = u3;
-    s1 = dx * ay;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * dy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    da[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    da[3] = u3;
-    s1 = ex * by;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ey;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    eb[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    eb[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    eb[3] = u3;
-
-    const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
-    const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
-    const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
-    const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
-    const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
-    const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
-    const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
-    const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
-    const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
-    const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
-
-    const deterlen = sum_three(
-        liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,
-        liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,
-        sum_three(
-            liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,
-            liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,
-            liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);
-
-    return deter[deterlen - 1];
-}
-
-const xdet = vec(96);
-const ydet = vec(96);
-const zdet = vec(96);
-const fin = vec(1152);
-
-function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
-    const len = sum_three_scale(a, b, c, az, bz, cz, _24);
-    return sum_three(
-        scale(scale(len, _24, x, _48), _48, x, xdet), xdet,
-        scale(scale(len, _24, y, _48), _48, y, ydet), ydet,
-        scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
-}
-
-function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
-    let ab3, bc3, cd3, da3, ac3, bd3;
-
-    let aextail, bextail, cextail, dextail;
-    let aeytail, beytail, ceytail, deytail;
-    let aeztail, beztail, ceztail, deztail;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;
-
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    s1 = aex * bey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bex * aey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ab3 = _j + _i;
-    bvirt = ab3 - _j;
-    ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
-    ab[3] = ab3;
-    s1 = bex * cey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * bey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bc3 = _j + _i;
-    bvirt = bc3 - _j;
-    bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
-    bc[3] = bc3;
-    s1 = cex * dey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * cey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    cd3 = _j + _i;
-    bvirt = cd3 - _j;
-    cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);
-    cd[3] = cd3;
-    s1 = dex * aey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = aex * dey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    da3 = _j + _i;
-    bvirt = da3 - _j;
-    da[2] = _j - (da3 - bvirt) + (_i - bvirt);
-    da[3] = da3;
-    s1 = aex * cey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * aey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ac3 = _j + _i;
-    bvirt = ac3 - _j;
-    ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);
-    ac[3] = ac3;
-    s1 = bex * dey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * bey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bd3 = _j + _i;
-    bvirt = bd3 - _j;
-    bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);
-    bd[3] = bd3;
-
-    const finlen = sum(
-        sum(
-            negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,
-            liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,
-        sum(
-            negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,
-            liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = isperrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - aex;
-    aextail = ax - (aex + bvirt) + (bvirt - ex);
-    bvirt = ay - aey;
-    aeytail = ay - (aey + bvirt) + (bvirt - ey);
-    bvirt = az - aez;
-    aeztail = az - (aez + bvirt) + (bvirt - ez);
-    bvirt = bx - bex;
-    bextail = bx - (bex + bvirt) + (bvirt - ex);
-    bvirt = by - bey;
-    beytail = by - (bey + bvirt) + (bvirt - ey);
-    bvirt = bz - bez;
-    beztail = bz - (bez + bvirt) + (bvirt - ez);
-    bvirt = cx - cex;
-    cextail = cx - (cex + bvirt) + (bvirt - ex);
-    bvirt = cy - cey;
-    ceytail = cy - (cey + bvirt) + (bvirt - ey);
-    bvirt = cz - cez;
-    ceztail = cz - (cez + bvirt) + (bvirt - ez);
-    bvirt = dx - dex;
-    dextail = dx - (dex + bvirt) + (bvirt - ex);
-    bvirt = dy - dey;
-    deytail = dy - (dey + bvirt) + (bvirt - ey);
-    bvirt = dz - dez;
-    deztail = dz - (dez + bvirt) + (bvirt - ez);
-    if (aextail === 0 && aeytail === 0 && aeztail === 0 &&
-        bextail === 0 && beytail === 0 && beztail === 0 &&
-        cextail === 0 && ceytail === 0 && ceztail === 0 &&
-        dextail === 0 && deytail === 0 && deztail === 0) {
-        return det;
-    }
-
-    errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);
-
-    const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);
-    const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);
-    const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);
-    const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);
-    const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);
-    const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);
-    det +=
-        (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +
-        (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *
-        ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -
-        ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +
-        (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *
-        ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +
-        2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +
-        (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -
-        ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +
-        (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);
-}
-
-export function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    const aexbey = aex * bey;
-    const bexaey = bex * aey;
-    const ab = aexbey - bexaey;
-    const bexcey = bex * cey;
-    const cexbey = cex * bey;
-    const bc = bexcey - cexbey;
-    const cexdey = cex * dey;
-    const dexcey = dex * cey;
-    const cd = cexdey - dexcey;
-    const dexaey = dex * aey;
-    const aexdey = aex * dey;
-    const da = dexaey - aexdey;
-    const aexcey = aex * cey;
-    const cexaey = cex * aey;
-    const ac = aexcey - cexaey;
-    const bexdey = bex * dey;
-    const dexbey = dex * bey;
-    const bd = bexdey - dexbey;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    const det =
-        (clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab)) +
-        (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd));
-
-    const aezplus = Math.abs(aez);
-    const bezplus = Math.abs(bez);
-    const cezplus = Math.abs(cez);
-    const dezplus = Math.abs(dez);
-    const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey);
-    const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey);
-    const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey);
-    const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey);
-    const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey);
-    const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey);
-    const permanent =
-        (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift +
-        (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift +
-        (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift +
-        (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift;
-
-    const errbound = isperrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);
-}
-
-export function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {
-    const aex = pax - pex;
-    const bex = pbx - pex;
-    const cex = pcx - pex;
-    const dex = pdx - pex;
-    const aey = pay - pey;
-    const bey = pby - pey;
-    const cey = pcy - pey;
-    const dey = pdy - pey;
-    const aez = paz - pez;
-    const bez = pbz - pez;
-    const cez = pcz - pez;
-    const dez = pdz - pez;
-
-    const ab = aex * bey - bex * aey;
-    const bc = bex * cey - cex * bey;
-    const cd = cex * dey - dex * cey;
-    const da = dex * aey - aex * dey;
-    const ac = aex * cey - cex * aey;
-    const bd = bex * dey - dex * bey;
-
-    const abc = aez * bc - bez * ac + cez * ab;
-    const bcd = bez * cd - cez * bd + dez * bc;
-    const cda = cez * da + dez * ac + aez * cd;
-    const dab = dez * ab + aez * bd + bez * da;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);
-}
Index: de_modules/robust-predicates/esm/orient2d.js
===================================================================
--- node_modules/robust-predicates/esm/orient2d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,184 +1,0 @@
-import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';
-
-const ccwerrboundA = (3 + 16 * epsilon) * epsilon;
-const ccwerrboundB = (2 + 12 * epsilon) * epsilon;
-const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C1len = sum(4, B, 4, u, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C2len = sum(C1len, C1, 4, u, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const Dlen = sum(C2len, C2, 4, u, D);
-
-    return D[Dlen - 1];
-}
-
-export function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-export function orient2dfast(ax, ay, bx, by, cx, cy) {
-    return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);
-}
Index: de_modules/robust-predicates/esm/orient3d.js
===================================================================
--- node_modules/robust-predicates/esm/orient3d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,462 +1,0 @@
-import {epsilon, splitter, resulterrbound, estimate, vec, sum, scale} from './util.js';
-
-const o3derrboundA = (7 + 56 * epsilon) * epsilon;
-const o3derrboundB = (3 + 28 * epsilon) * epsilon;
-const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;
-
-const bc = vec(4);
-const ca = vec(4);
-const ab = vec(4);
-const at_b = vec(4);
-const at_c = vec(4);
-const bt_c = vec(4);
-const bt_a = vec(4);
-const ct_a = vec(4);
-const ct_b = vec(4);
-const bct = vec(8);
-const cat = vec(8);
-const abt = vec(8);
-const u = vec(4);
-
-const _8 = vec(8);
-const _8b = vec(8);
-const _16 = vec(8);
-const _12 = vec(12);
-
-let fin = vec(192);
-let fin2 = vec(192);
-
-function finadd(finlen, alen, a) {
-    finlen = sum(finlen, fin, alen, a, fin2);
-    const tmp = fin; fin = fin2; fin2 = tmp;
-    return finlen;
-}
-
-function tailinit(xtail, ytail, ax, ay, bx, by, a, b) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate;
-    if (xtail === 0) {
-        if (ytail === 0) {
-            a[0] = 0;
-            b[0] = 0;
-            return 1;
-        } else {
-            negate = -ytail;
-            s1 = negate * ax;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        }
-    } else {
-        if (ytail === 0) {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            negate = -xtail;
-            s1 = negate * by;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        } else {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = ytail * ax;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            a[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            a[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            a[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            a[3] = u3;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = xtail * by;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            b[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            b[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            b[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            b[3] = u3;
-            return 4;
-        }
-    }
-}
-
-function tailadd(finlen, a, b, k, z) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;
-    s1 = a * b;
-    c = splitter * a;
-    ahi = c - (c - a);
-    alo = a - ahi;
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    c = splitter * k;
-    bhi = c - (c - k);
-    blo = k - bhi;
-    _i = s0 * k;
-    c = splitter * s0;
-    ahi = c - (c - s0);
-    alo = s0 - ahi;
-    u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-    _j = s1 * k;
-    c = splitter * s1;
-    ahi = c - (c - s1);
-    alo = s1 - ahi;
-    _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-    _k = _i + _0;
-    bvirt = _k - _i;
-    u[1] = _i - (_k - bvirt) + (_0 - bvirt);
-    u3 = _j + _k;
-    u[2] = _k - (u3 - _j);
-    u[3] = u3;
-    finlen = finadd(finlen, 4, u);
-    if (z !== 0) {
-        c = splitter * z;
-        bhi = c - (c - z);
-        blo = z - bhi;
-        _i = s0 * z;
-        c = splitter * s0;
-        ahi = c - (c - s0);
-        alo = s0 - ahi;
-        u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-        _j = s1 * z;
-        c = splitter * s1;
-        ahi = c - (c - s1);
-        alo = s1 - ahi;
-        _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-        _k = _i + _0;
-        bvirt = _k - _i;
-        u[1] = _i - (_k - bvirt) + (_0 - bvirt);
-        u3 = _j + _k;
-        u[2] = _k - (u3 - _j);
-        u[3] = u3;
-        finlen = finadd(finlen, 4, u);
-    }
-    return finlen;
-}
-
-function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail;
-    let adytail, bdytail, cdytail;
-    let adztail, bdztail, cdztail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-
-    finlen = sum(
-        sum(
-            scale(4, bc, adz, _8), _8,
-            scale(4, ca, bdz, _8b), _8b, _16), _16,
-        scale(4, ab, cdz, _8), _8, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = o3derrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    bvirt = az - adz;
-    adztail = az - (adz + bvirt) + (bvirt - dz);
-    bvirt = bz - bdz;
-    bdztail = bz - (bdz + bvirt) + (bvirt - dz);
-    bvirt = cz - cdz;
-    cdztail = cz - (cdz + bvirt) + (bvirt - dz);
-
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 &&
-        adytail === 0 && bdytail === 0 && cdytail === 0 &&
-        adztail === 0 && bdztail === 0 && cdztail === 0) {
-        return det;
-    }
-
-    errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det);
-    det +=
-        adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) +
-        bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) +
-        cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);
-    const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
-    const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
-
-    const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct);
-    finlen = finadd(finlen, scale(bctlen, bct, adz, _16), _16);
-
-    const catlen = sum(ct_len, ct_a, at_len, at_c, cat);
-    finlen = finadd(finlen, scale(catlen, cat, bdz, _16), _16);
-
-    const abtlen = sum(at_len, at_b, bt_len, bt_a, abt);
-    finlen = finadd(finlen, scale(abtlen, abt, cdz, _16), _16);
-
-    if (adztail !== 0) {
-        finlen = finadd(finlen, scale(4, bc, adztail, _12), _12);
-        finlen = finadd(finlen, scale(bctlen, bct, adztail, _16), _16);
-    }
-    if (bdztail !== 0) {
-        finlen = finadd(finlen, scale(4, ca, bdztail, _12), _12);
-        finlen = finadd(finlen, scale(catlen, cat, bdztail, _16), _16);
-    }
-    if (cdztail !== 0) {
-        finlen = finadd(finlen, scale(4, ab, cdztail, _12), _12);
-        finlen = finadd(finlen, scale(abtlen, abt, cdztail, _16), _16);
-    }
-
-    if (adxtail !== 0) {
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);
-        }
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);
-        }
-    }
-    if (bdxtail !== 0) {
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);
-        }
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);
-        }
-    }
-    if (cdxtail !== 0) {
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);
-        }
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);
-        }
-    }
-
-    return fin[finlen - 1];
-}
-
-export function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-
-    const det =
-        adz * (bdxcdy - cdxbdy) +
-        bdz * (cdxady - adxcdy) +
-        cdz * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);
-
-    const errbound = o3derrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-
-    return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);
-}
-
-export function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    return adx * (bdy * cdz - bdz * cdy) +
-        bdx * (cdy * adz - cdz * ady) +
-        cdx * (ady * bdz - adz * bdy);
-}
Index: de_modules/robust-predicates/esm/util.js
===================================================================
--- node_modules/robust-predicates/esm/util.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,138 +1,0 @@
-export const epsilon = 1.1102230246251565e-16;
-export const splitter = 134217729;
-export const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-export function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-export function sum_three(alen, a, blen, b, clen, c, tmp, out) {
-    return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
-}
-
-// scale_expansion_zeroelim routine from oritinal code
-export function scale(elen, e, b, h) {
-    let Q, sum, hh, product1, product0;
-    let bvirt, c, ahi, alo, bhi, blo;
-
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    let enow = e[0];
-    Q = enow * b;
-    c = splitter * enow;
-    ahi = c - (c - enow);
-    alo = enow - ahi;
-    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
-    let hindex = 0;
-    if (hh !== 0) {
-        h[hindex++] = hh;
-    }
-    for (let i = 1; i < elen; i++) {
-        enow = e[i];
-        product1 = enow * b;
-        c = splitter * enow;
-        ahi = c - (c - enow);
-        alo = enow - ahi;
-        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
-        sum = Q + product0;
-        bvirt = sum - Q;
-        hh = Q - (sum - bvirt) + (product0 - bvirt);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        Q = product1 + sum;
-        hh = sum - (Q - product1);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-export function negate(elen, e) {
-    for (let i = 0; i < elen; i++) e[i] = -e[i];
-    return elen;
-}
-
-export function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-export function vec(n) {
-    return new Float64Array(n);
-}
Index: de_modules/robust-predicates/index.d.ts
===================================================================
--- node_modules/robust-predicates/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-export as namespace predicates;
-
-export function orient2d(
-    ax: number, ay: number,
-    bx: number, by: number,
-    cx: number, cy: number): number;
-
-export function orient2dfast(
-    ax: number, ay: number,
-    bx: number, by: number,
-    cx: number, cy: number): number;
-
-export function incircle(
-    ax: number, ay: number,
-    bx: number, by: number,
-    cx: number, cy: number,
-    dx: number, dy: number): number;
-
-export function incirclefast(
-    ax: number, ay: number,
-    bx: number, by: number,
-    cx: number, cy: number,
-    dx: number, dy: number): number;
-
-export function orient3d(
-    ax: number, ay: number, az: number,
-    bx: number, by: number, bz: number,
-    cx: number, cy: number, cz: number,
-    dx: number, dy: number, dz: number): number;
-
-export function orient3dfast(
-    ax: number, ay: number, az: number,
-    bx: number, by: number, bz: number,
-    cx: number, cy: number, cz: number,
-    dx: number, dy: number, dz: number): number;
-
-export function insphere(
-    ax: number, ay: number, az: number,
-    bx: number, by: number, bz: number,
-    cx: number, cy: number, cz: number,
-    dx: number, dy: number, dz: number,
-    ex: number, ey: number, ez: number): number;
-
-export function inspherefast(
-    ax: number, ay: number, az: number,
-    bx: number, by: number, bz: number,
-    cx: number, cy: number, cz: number,
-    dx: number, dy: number, dz: number,
-    ex: number, ey: number, ez: number): number;
Index: de_modules/robust-predicates/index.js
===================================================================
--- node_modules/robust-predicates/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-export {orient2d, orient2dfast} from './esm/orient2d.js';
-export {orient3d, orient3dfast} from './esm/orient3d.js';
-export {incircle, incirclefast} from './esm/incircle.js';
-export {insphere, inspherefast} from './esm/insphere.js';
Index: de_modules/robust-predicates/package.json
===================================================================
--- node_modules/robust-predicates/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-{
-  "name": "robust-predicates",
-  "version": "3.0.2",
-  "description": "Fast robust predicates for computational geometry",
-  "keywords": [
-    "computational geometry",
-    "robust arithmetic"
-  ],
-  "author": "Vladimir Agafonkin",
-  "license": "Unlicense",
-  "type": "module",
-  "main": "index.js",
-  "unpkg": "umd/predicates.min.js",
-  "module": "index.js",
-  "exports": "./index.js",
-  "types": "index.d.ts",
-  "scripts": {
-    "build": "mkdirp esm && node compile.js",
-    "lint": "eslint *.js src test/test.js",
-    "test": "npm run lint && npm run build && node test/test.js",
-    "cov": "c8 node test/test.js",
-    "bench": "node bench.js",
-    "prepublishOnly": "npm run test && rollup -c"
-  },
-  "devDependencies": {
-    "@rollup/plugin-terser": "^0.4.3",
-    "c8": "^7.13.0",
-    "eslint": "^8.41.0",
-    "eslint-config-mourner": "^3.0.0",
-    "mkdirp": "^3.0.1",
-    "nextafter": "^1.0.0",
-    "robust-in-sphere": "^1.2.1",
-    "robust-orientation": "^1.2.1",
-    "rollup": "^3.23.0"
-  },
-  "files": [
-    "index.js",
-    "index.d.ts",
-    "esm",
-    "umd"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mourner/robust-predicates.git"
-  },
-  "eslintConfig": {
-    "extends": "mourner",
-    "parserOptions": {
-      "ecmaVersion": 2020
-    },
-    "rules": {
-      "camelcase": 0,
-      "new-cap": 0,
-      "no-unused-vars": [
-        2,
-        {
-          "varsIgnorePattern": "splitter|bvirt|c|[ab]hi|[ab]lo|_[ijk0]|u3|[st][01]"
-        }
-      ],
-      "no-lonely-if": 0
-    },
-    "globals": {
-      "$Fast_Two_Sum": false,
-      "$Two_Sum": false,
-      "$Two_Diff_Tail": false,
-      "$Split": false,
-      "$Two_Product": false,
-      "$Two_Product_Presplit": false,
-      "$Two_One_Product": false,
-      "$Cross_Product": false,
-      "$Square_Sum": false,
-      "$Two_Product_Sum": false
-    }
-  }
-}
Index: de_modules/robust-predicates/umd/incircle.js
===================================================================
--- node_modules/robust-predicates/umd/incircle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,908 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
-})(this, (function (exports) { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function sum_three(alen, a, blen, b, clen, c, tmp, out) {
-    return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
-}
-
-// scale_expansion_zeroelim routine from oritinal code
-function scale(elen, e, b, h) {
-    let Q, sum, hh, product1, product0;
-    let bvirt, c, ahi, alo, bhi, blo;
-
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    let enow = e[0];
-    Q = enow * b;
-    c = splitter * enow;
-    ahi = c - (c - enow);
-    alo = enow - ahi;
-    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
-    let hindex = 0;
-    if (hh !== 0) {
-        h[hindex++] = hh;
-    }
-    for (let i = 1; i < elen; i++) {
-        enow = e[i];
-        product1 = enow * b;
-        c = splitter * enow;
-        ahi = c - (c - enow);
-        alo = enow - ahi;
-        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
-        sum = Q + product0;
-        bvirt = sum - Q;
-        hh = Q - (sum - bvirt) + (product0 - bvirt);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        Q = product1 + sum;
-        hh = sum - (Q - product1);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const iccerrboundA = (10 + 96 * epsilon) * epsilon;
-const iccerrboundB = (4 + 48 * epsilon) * epsilon;
-const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
-
-const bc = vec(4);
-const ca = vec(4);
-const ab = vec(4);
-const aa = vec(4);
-const bb = vec(4);
-const cc = vec(4);
-const u = vec(4);
-const v = vec(4);
-const axtbc = vec(8);
-const aytbc = vec(8);
-const bxtca = vec(8);
-const bytca = vec(8);
-const cxtab = vec(8);
-const cytab = vec(8);
-const abt = vec(8);
-const bct = vec(8);
-const cat = vec(8);
-const abtt = vec(4);
-const bctt = vec(4);
-const catt = vec(4);
-
-const _8 = vec(8);
-const _16 = vec(16);
-const _16b = vec(16);
-const _16c = vec(16);
-const _32 = vec(32);
-const _32b = vec(32);
-const _48 = vec(48);
-const _64 = vec(64);
-
-let fin = vec(1152);
-let fin2 = vec(1152);
-
-function finadd(finlen, a, alen) {
-    finlen = sum(finlen, fin, a, alen, fin2);
-    const tmp = fin; fin = fin2; fin2 = tmp;
-    return finlen;
-}
-
-function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
-    let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
-    let abtlen, bctlen, catlen;
-    let abttlen, bcttlen, cattlen;
-    let n1, n0;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-
-    finlen = sum(
-        sum(
-            sum(
-                scale(scale(4, bc, adx, _8), _8, adx, _16), _16,
-                scale(scale(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32,
-            sum(
-                scale(scale(4, ca, bdx, _8), _8, bdx, _16), _16,
-                scale(scale(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64,
-        sum(
-            scale(scale(4, ab, cdx, _8), _8, cdx, _16), _16,
-            scale(scale(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = iccerrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
-        return det;
-    }
-
-    errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
-    det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +
-        2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +
-        ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +
-        2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +
-        ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +
-        2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-        s1 = adx * adx;
-        c = splitter * adx;
-        ahi = c - (c - adx);
-        alo = adx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = ady * ady;
-        c = splitter * ady;
-        ahi = c - (c - ady);
-        alo = ady - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        aa[3] = u3;
-    }
-    if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-        s1 = bdx * bdx;
-        c = splitter * bdx;
-        ahi = c - (c - bdx);
-        alo = bdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = bdy * bdy;
-        c = splitter * bdy;
-        ahi = c - (c - bdy);
-        alo = bdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        bb[3] = u3;
-    }
-    if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-        s1 = cdx * cdx;
-        c = splitter * cdx;
-        ahi = c - (c - cdx);
-        alo = cdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = cdy * cdy;
-        c = splitter * cdy;
-        ahi = c - (c - cdy);
-        alo = cdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        cc[3] = u3;
-    }
-
-    if (adxtail !== 0) {
-        axtbclen = scale(4, bc, adxtail, axtbc);
-        finlen = finadd(finlen, sum_three(
-            scale(axtbclen, axtbc, 2 * adx, _16), _16,
-            scale(scale(4, cc, adxtail, _8), _8, bdy, _16b), _16b,
-            scale(scale(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);
-    }
-    if (adytail !== 0) {
-        aytbclen = scale(4, bc, adytail, aytbc);
-        finlen = finadd(finlen, sum_three(
-            scale(aytbclen, aytbc, 2 * ady, _16), _16,
-            scale(scale(4, bb, adytail, _8), _8, cdx, _16b), _16b,
-            scale(scale(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);
-    }
-    if (bdxtail !== 0) {
-        bxtcalen = scale(4, ca, bdxtail, bxtca);
-        finlen = finadd(finlen, sum_three(
-            scale(bxtcalen, bxtca, 2 * bdx, _16), _16,
-            scale(scale(4, aa, bdxtail, _8), _8, cdy, _16b), _16b,
-            scale(scale(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);
-    }
-    if (bdytail !== 0) {
-        bytcalen = scale(4, ca, bdytail, bytca);
-        finlen = finadd(finlen, sum_three(
-            scale(bytcalen, bytca, 2 * bdy, _16), _16,
-            scale(scale(4, cc, bdytail, _8), _8, adx, _16b), _16b,
-            scale(scale(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);
-    }
-    if (cdxtail !== 0) {
-        cxtablen = scale(4, ab, cdxtail, cxtab);
-        finlen = finadd(finlen, sum_three(
-            scale(cxtablen, cxtab, 2 * cdx, _16), _16,
-            scale(scale(4, bb, cdxtail, _8), _8, ady, _16b), _16b,
-            scale(scale(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);
-    }
-    if (cdytail !== 0) {
-        cytablen = scale(4, ab, cdytail, cytab);
-        finlen = finadd(finlen, sum_three(
-            scale(cytablen, cytab, 2 * cdy, _16), _16,
-            scale(scale(4, aa, cdytail, _8), _8, bdx, _16b), _16b,
-            scale(scale(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);
-    }
-
-    if (adxtail !== 0 || adytail !== 0) {
-        if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-            s1 = bdxtail * cdy;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdy;
-            bhi = c - (c - cdy);
-            blo = cdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * cdytail;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            s1 = cdxtail * -bdy;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * -bdy;
-            bhi = c - (c - -bdy);
-            blo = -bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * -bdytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * -bdytail;
-            bhi = c - (c - -bdytail);
-            blo = -bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            bctlen = sum(4, u, 4, v, bct);
-            s1 = bdxtail * cdytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdxtail * bdytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            bctt[3] = u3;
-            bcttlen = 4;
-        } else {
-            bct[0] = 0;
-            bctlen = 1;
-            bctt[0] = 0;
-            bcttlen = 1;
-        }
-        if (adxtail !== 0) {
-            const len = scale(bctlen, bct, adxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(axtbclen, axtbc, adxtail, _16), _16,
-                scale(len, _16c, 2 * adx, _32), _32, _48), _48);
-
-            const len2 = scale(bcttlen, bctt, adxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * adx, _16), _16,
-                scale(len2, _8, adxtail, _16b), _16b,
-                scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
-
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8), _8, bdytail, _16), _16);
-            }
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8), _8, cdytail, _16), _16);
-            }
-        }
-        if (adytail !== 0) {
-            const len = scale(bctlen, bct, adytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(aytbclen, aytbc, adytail, _16), _16,
-                scale(len, _16c, 2 * ady, _32), _32, _48), _48);
-
-            const len2 = scale(bcttlen, bctt, adytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * ady, _16), _16,
-                scale(len2, _8, adytail, _16b), _16b,
-                scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
-        }
-    }
-    if (bdxtail !== 0 || bdytail !== 0) {
-        if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-            s1 = cdxtail * ady;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * ady;
-            bhi = c - (c - ady);
-            blo = ady - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * adytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -cdy;
-            n0 = -cdytail;
-            s1 = adxtail * n1;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * n0;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            catlen = sum(4, u, 4, v, cat);
-            s1 = cdxtail * adytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adxtail * cdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            catt[3] = u3;
-            cattlen = 4;
-        } else {
-            cat[0] = 0;
-            catlen = 1;
-            catt[0] = 0;
-            cattlen = 1;
-        }
-        if (bdxtail !== 0) {
-            const len = scale(catlen, cat, bdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bxtcalen, bxtca, bdxtail, _16), _16,
-                scale(len, _16c, 2 * bdx, _32), _32, _48), _48);
-
-            const len2 = scale(cattlen, catt, bdxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * bdx, _16), _16,
-                scale(len2, _8, bdxtail, _16b), _16b,
-                scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
-
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8), _8, cdytail, _16), _16);
-            }
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8), _8, adytail, _16), _16);
-            }
-        }
-        if (bdytail !== 0) {
-            const len = scale(catlen, cat, bdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bytcalen, bytca, bdytail, _16), _16,
-                scale(len, _16c, 2 * bdy, _32), _32, _48), _48);
-
-            const len2 = scale(cattlen, catt, bdytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * bdy, _16), _16,
-                scale(len2, _8, bdytail, _16b), _16b,
-                scale(len, _16c, bdytail, _32), _32,  _32b, _64), _64);
-        }
-    }
-    if (cdxtail !== 0 || cdytail !== 0) {
-        if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-            s1 = adxtail * bdy;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdy;
-            bhi = c - (c - bdy);
-            blo = bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * bdytail;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -ady;
-            n0 = -adytail;
-            s1 = bdxtail * n1;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * n0;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            abtlen = sum(4, u, 4, v, abt);
-            s1 = adxtail * bdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdxtail * adytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            abtt[3] = u3;
-            abttlen = 4;
-        } else {
-            abt[0] = 0;
-            abtlen = 1;
-            abtt[0] = 0;
-            abttlen = 1;
-        }
-        if (cdxtail !== 0) {
-            const len = scale(abtlen, abt, cdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cxtablen, cxtab, cdxtail, _16), _16,
-                scale(len, _16c, 2 * cdx, _32), _32, _48), _48);
-
-            const len2 = scale(abttlen, abtt, cdxtail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * cdx, _16), _16,
-                scale(len2, _8, cdxtail, _16b), _16b,
-                scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
-
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8), _8, adytail, _16), _16);
-            }
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);
-            }
-        }
-        if (cdytail !== 0) {
-            const len = scale(abtlen, abt, cdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cytablen, cytab, cdytail, _16), _16,
-                scale(len, _16c, 2 * cdy, _32), _32, _48), _48);
-
-            const len2 = scale(abttlen, abtt, cdytail, _8);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8, 2 * cdy, _16), _16,
-                scale(len2, _8, cdytail, _16b), _16b,
-                scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
-        }
-    }
-
-    return fin[finlen - 1];
-}
-
-function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-    const alift = adx * adx + ady * ady;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-    const blift = bdx * bdx + bdy * bdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-    const clift = cdx * cdx + cdy * cdy;
-
-    const det =
-        alift * (bdxcdy - cdxbdy) +
-        blift * (cdxady - adxcdy) +
-        clift * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
-
-    const errbound = iccerrboundA * permanent;
-
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
-}
-
-function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const ady = ay - dy;
-    const bdx = bx - dx;
-    const bdy = by - dy;
-    const cdx = cx - dx;
-    const cdy = cy - dy;
-
-    const abdet = adx * bdy - bdx * ady;
-    const bcdet = bdx * cdy - cdx * bdy;
-    const cadet = cdx * ady - adx * cdy;
-    const alift = adx * adx + ady * ady;
-    const blift = bdx * bdx + bdy * bdy;
-    const clift = cdx * cdx + cdy * cdy;
-
-    return alift * bcdet + blift * cadet + clift * abdet;
-}
-
-exports.incircle = incircle;
-exports.incirclefast = incirclefast;
-
-}));
Index: de_modules/robust-predicates/umd/incircle.min.js
===================================================================
--- node_modules/robust-predicates/umd/incircle.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const n=11102230246251565e-32,e=134217729,o=(3+8*n)*n;function f(t,n,e,o,f){let i,r,c,s,u=n[0],a=o[0],l=0,b=0;a>u==a>-u?(i=u,u=n[++l]):(i=a,a=o[++b]);let d=0;if(l<t&&b<e)for(a>u==a>-u?(r=u+i,c=i-(r-u),u=n[++l]):(r=a+i,c=i-(r-a),a=o[++b]),i=r,0!==c&&(f[d++]=c);l<t&&b<e;)a>u==a>-u?(r=i+u,s=r-i,c=i-(r-s)+(u-s),u=n[++l]):(r=i+a,s=r-i,c=i-(r-s)+(a-s),a=o[++b]),i=r,0!==c&&(f[d++]=c);for(;l<t;)r=i+u,s=r-i,c=i-(r-s)+(u-s),u=n[++l],i=r,0!==c&&(f[d++]=c);for(;b<e;)r=i+a,s=r-i,c=i-(r-s)+(a-s),a=o[++b],i=r,0!==c&&(f[d++]=c);return 0===i&&0!==d||(f[d++]=i),d}function i(t,n,e,o,i,r,c,s){return f(f(t,n,e,o,c),c,i,r,s)}function r(t,n,o,f){let i,r,c,s,u,a,l,b,d,h,p;l=e*o,h=l-(l-o),p=o-h;let M=n[0];i=M*o,l=e*M,b=l-(l-M),d=M-b,c=d*p-(i-b*h-d*h-b*p);let y=0;0!==c&&(f[y++]=c);for(let x=1;x<t;x++)M=n[x],s=M*o,l=e*M,b=l-(l-M),d=M-b,u=d*p-(s-b*h-d*h-b*p),r=i+u,a=r-i,c=i-(r-a)+(u-a),0!==c&&(f[y++]=c),i=s+r,c=r-(i-s),0!==c&&(f[y++]=c);return 0===i&&0!==y||(f[y++]=i),y}function c(t){return new Float64Array(t)}const s=4440892098500632e-31,u=5423418723394464e-46,a=c(4),l=c(4),b=c(4),d=c(4),h=c(4),p=c(4),M=c(4),y=c(4),x=c(8),g=c(8),m=c(8),T=c(8),j=c(8),w=c(8),A=c(8),F=c(8),k=c(8),q=c(4),v=c(4),z=c(4),B=c(8),C=c(16),D=c(16),E=c(16),G=c(32),H=c(32),I=c(48),J=c(64);let K=c(1152),L=c(1152);function N(t,n,e){t=f(t,K,n,e,L);const o=K;return K=L,L=o,t}t.incircle=function(t,n,c,L,O,P,Q,R){const S=t-Q,U=c-Q,V=O-Q,W=n-R,X=L-R,Y=P-R,Z=U*Y,$=V*X,_=S*S+W*W,tt=V*W,nt=S*Y,et=U*U+X*X,ot=S*X,ft=U*W,it=V*V+Y*Y,rt=_*(Z-$)+et*(tt-nt)+it*(ot-ft),ct=(Math.abs(Z)+Math.abs($))*_+(Math.abs(tt)+Math.abs(nt))*et+(Math.abs(ot)+Math.abs(ft))*it,st=11102230246251577e-31*ct;return rt>st||-rt>st?rt:function(t,n,c,L,O,P,Q,R,S){let U,V,W,X,Y,Z,$,_,tt,nt,et,ot,ft,it,rt,ct,st,ut,at,lt,bt,dt,ht,pt,Mt,yt,xt,gt,mt,Tt,jt,wt,At,Ft,kt;const qt=t-Q,vt=c-Q,zt=O-Q,Bt=n-R,Ct=L-R,Dt=P-R;jt=vt*Dt,ht=e*vt,pt=ht-(ht-vt),Mt=vt-pt,ht=e*Dt,yt=ht-(ht-Dt),xt=Dt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=zt*Ct,ht=e*zt,pt=ht-(ht-zt),Mt=zt-pt,ht=e*Ct,yt=ht-(ht-Ct),xt=Ct-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,a[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,a[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,a[2]=mt-(kt-dt)+(gt-dt),a[3]=kt,jt=zt*Bt,ht=e*zt,pt=ht-(ht-zt),Mt=zt-pt,ht=e*Bt,yt=ht-(ht-Bt),xt=Bt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=qt*Dt,ht=e*qt,pt=ht-(ht-qt),Mt=qt-pt,ht=e*Dt,yt=ht-(ht-Dt),xt=Dt-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,l[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,l[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,l[2]=mt-(kt-dt)+(gt-dt),l[3]=kt,jt=qt*Ct,ht=e*qt,pt=ht-(ht-qt),Mt=qt-pt,ht=e*Ct,yt=ht-(ht-Ct),xt=Ct-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=vt*Bt,ht=e*vt,pt=ht-(ht-vt),Mt=vt-pt,ht=e*Bt,yt=ht-(ht-Bt),xt=Bt-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,b[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,b[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,b[2]=mt-(kt-dt)+(gt-dt),b[3]=kt,U=f(f(f(r(r(4,a,qt,B),B,qt,C),C,r(r(4,a,Bt,B),B,Bt,D),D,G),G,f(r(r(4,l,vt,B),B,vt,C),C,r(r(4,l,Ct,B),B,Ct,D),D,H),H,J),J,f(r(r(4,b,zt,B),B,zt,C),C,r(r(4,b,Dt,B),B,Dt,D),D,G),G,K);let Et=function(t,n){let e=n[0];for(let o=1;o<t;o++)e+=n[o];return e}(U,K),Gt=s*S;if(Et>=Gt||-Et>=Gt)return Et;if(dt=t-qt,V=t-(qt+dt)+(dt-Q),dt=n-Bt,Y=n-(Bt+dt)+(dt-R),dt=c-vt,W=c-(vt+dt)+(dt-Q),dt=L-Ct,Z=L-(Ct+dt)+(dt-R),dt=O-zt,X=O-(zt+dt)+(dt-Q),dt=P-Dt,$=P-(Dt+dt)+(dt-R),0===V&&0===W&&0===X&&0===Y&&0===Z&&0===$)return Et;if(Gt=u*S+o*Math.abs(Et),Et+=(qt*qt+Bt*Bt)*(vt*$+Dt*W-(Ct*X+zt*Z))+2*(qt*V+Bt*Y)*(vt*Dt-Ct*zt)+((vt*vt+Ct*Ct)*(zt*Y+Bt*X-(Dt*V+qt*$))+2*(vt*W+Ct*Z)*(zt*Bt-Dt*qt))+((zt*zt+Dt*Dt)*(qt*Z+Ct*V-(Bt*W+vt*Y))+2*(zt*X+Dt*$)*(qt*Ct-Bt*vt)),Et>=Gt||-Et>=Gt)return Et;if(0===W&&0===Z&&0===X&&0===$||(jt=qt*qt,ht=e*qt,pt=ht-(ht-qt),Mt=qt-pt,wt=Mt*Mt-(jt-pt*pt-(pt+pt)*Mt),At=Bt*Bt,ht=e*Bt,pt=ht-(ht-Bt),Mt=Bt-pt,Ft=Mt*Mt-(At-pt*pt-(pt+pt)*Mt),gt=wt+Ft,dt=gt-wt,d[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,d[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,d[2]=mt-(kt-dt)+(gt-dt),d[3]=kt),0===X&&0===$&&0===V&&0===Y||(jt=vt*vt,ht=e*vt,pt=ht-(ht-vt),Mt=vt-pt,wt=Mt*Mt-(jt-pt*pt-(pt+pt)*Mt),At=Ct*Ct,ht=e*Ct,pt=ht-(ht-Ct),Mt=Ct-pt,Ft=Mt*Mt-(At-pt*pt-(pt+pt)*Mt),gt=wt+Ft,dt=gt-wt,h[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,h[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,h[2]=mt-(kt-dt)+(gt-dt),h[3]=kt),0===V&&0===Y&&0===W&&0===Z||(jt=zt*zt,ht=e*zt,pt=ht-(ht-zt),Mt=zt-pt,wt=Mt*Mt-(jt-pt*pt-(pt+pt)*Mt),At=Dt*Dt,ht=e*Dt,pt=ht-(ht-Dt),Mt=Dt-pt,Ft=Mt*Mt-(At-pt*pt-(pt+pt)*Mt),gt=wt+Ft,dt=gt-wt,p[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,p[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,p[2]=mt-(kt-dt)+(gt-dt),p[3]=kt),0!==V&&(_=r(4,a,V,x),U=N(U,i(r(_,x,2*qt,C),C,r(r(4,p,V,B),B,Ct,D),D,r(r(4,h,V,B),B,-Dt,E),E,G,I),I)),0!==Y&&(tt=r(4,a,Y,g),U=N(U,i(r(tt,g,2*Bt,C),C,r(r(4,h,Y,B),B,zt,D),D,r(r(4,p,Y,B),B,-vt,E),E,G,I),I)),0!==W&&(nt=r(4,l,W,m),U=N(U,i(r(nt,m,2*vt,C),C,r(r(4,d,W,B),B,Dt,D),D,r(r(4,p,W,B),B,-Bt,E),E,G,I),I)),0!==Z&&(et=r(4,l,Z,T),U=N(U,i(r(et,T,2*Ct,C),C,r(r(4,p,Z,B),B,qt,D),D,r(r(4,d,Z,B),B,-zt,E),E,G,I),I)),0!==X&&(ot=r(4,b,X,j),U=N(U,i(r(ot,j,2*zt,C),C,r(r(4,h,X,B),B,Bt,D),D,r(r(4,d,X,B),B,-Ct,E),E,G,I),I)),0!==$&&(ft=r(4,b,$,w),U=N(U,i(r(ft,w,2*Dt,C),C,r(r(4,d,$,B),B,vt,D),D,r(r(4,h,$,B),B,-qt,E),E,G,I),I)),0!==V||0!==Y){if(0!==W||0!==Z||0!==X||0!==$?(jt=W*Dt,ht=e*W,pt=ht-(ht-W),Mt=W-pt,ht=e*Dt,yt=ht-(ht-Dt),xt=Dt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=vt*$,ht=e*vt,pt=ht-(ht-vt),Mt=vt-pt,ht=e*$,yt=ht-(ht-$),xt=$-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,M[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,M[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,M[2]=mt-(kt-dt)+(gt-dt),M[3]=kt,jt=X*-Ct,ht=e*X,pt=ht-(ht-X),Mt=X-pt,ht=e*-Ct,yt=ht-(ht- -Ct),xt=-Ct-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=zt*-Z,ht=e*zt,pt=ht-(ht-zt),Mt=zt-pt,ht=e*-Z,yt=ht-(ht- -Z),xt=-Z-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,y[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,y[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,y[2]=mt-(kt-dt)+(gt-dt),y[3]=kt,rt=f(4,M,4,y,F),jt=W*$,ht=e*W,pt=ht-(ht-W),Mt=W-pt,ht=e*$,yt=ht-(ht-$),xt=$-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=X*Z,ht=e*X,pt=ht-(ht-X),Mt=X-pt,ht=e*Z,yt=ht-(ht-Z),xt=Z-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,v[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,v[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,v[2]=mt-(kt-dt)+(gt-dt),v[3]=kt,ut=4):(F[0]=0,rt=1,v[0]=0,ut=1),0!==V){const t=r(rt,F,V,E);U=N(U,f(r(_,x,V,C),C,r(t,E,2*qt,G),G,I),I);const n=r(ut,v,V,B);U=N(U,i(r(n,B,2*qt,C),C,r(n,B,V,D),D,r(t,E,V,G),G,H,J),J),0!==Z&&(U=N(U,r(r(4,p,V,B),B,Z,C),C)),0!==$&&(U=N(U,r(r(4,h,-V,B),B,$,C),C))}if(0!==Y){const t=r(rt,F,Y,E);U=N(U,f(r(tt,g,Y,C),C,r(t,E,2*Bt,G),G,I),I);const n=r(ut,v,Y,B);U=N(U,i(r(n,B,2*Bt,C),C,r(n,B,Y,D),D,r(t,E,Y,G),G,H,J),J)}}if(0!==W||0!==Z){if(0!==X||0!==$||0!==V||0!==Y?(jt=X*Bt,ht=e*X,pt=ht-(ht-X),Mt=X-pt,ht=e*Bt,yt=ht-(ht-Bt),xt=Bt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=zt*Y,ht=e*zt,pt=ht-(ht-zt),Mt=zt-pt,ht=e*Y,yt=ht-(ht-Y),xt=Y-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,M[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,M[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,M[2]=mt-(kt-dt)+(gt-dt),M[3]=kt,lt=-Dt,bt=-$,jt=V*lt,ht=e*V,pt=ht-(ht-V),Mt=V-pt,ht=e*lt,yt=ht-(ht-lt),xt=lt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=qt*bt,ht=e*qt,pt=ht-(ht-qt),Mt=qt-pt,ht=e*bt,yt=ht-(ht-bt),xt=bt-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,y[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,y[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,y[2]=mt-(kt-dt)+(gt-dt),y[3]=kt,ct=f(4,M,4,y,k),jt=X*Y,ht=e*X,pt=ht-(ht-X),Mt=X-pt,ht=e*Y,yt=ht-(ht-Y),xt=Y-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=V*$,ht=e*V,pt=ht-(ht-V),Mt=V-pt,ht=e*$,yt=ht-(ht-$),xt=$-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,z[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,z[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,z[2]=mt-(kt-dt)+(gt-dt),z[3]=kt,at=4):(k[0]=0,ct=1,z[0]=0,at=1),0!==W){const t=r(ct,k,W,E);U=N(U,f(r(nt,m,W,C),C,r(t,E,2*vt,G),G,I),I);const n=r(at,z,W,B);U=N(U,i(r(n,B,2*vt,C),C,r(n,B,W,D),D,r(t,E,W,G),G,H,J),J),0!==$&&(U=N(U,r(r(4,d,W,B),B,$,C),C)),0!==Y&&(U=N(U,r(r(4,p,-W,B),B,Y,C),C))}if(0!==Z){const t=r(ct,k,Z,E);U=N(U,f(r(et,T,Z,C),C,r(t,E,2*Ct,G),G,I),I);const n=r(at,z,Z,B);U=N(U,i(r(n,B,2*Ct,C),C,r(n,B,Z,D),D,r(t,E,Z,G),G,H,J),J)}}if(0!==X||0!==$){if(0!==V||0!==Y||0!==W||0!==Z?(jt=V*Ct,ht=e*V,pt=ht-(ht-V),Mt=V-pt,ht=e*Ct,yt=ht-(ht-Ct),xt=Ct-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=qt*Z,ht=e*qt,pt=ht-(ht-qt),Mt=qt-pt,ht=e*Z,yt=ht-(ht-Z),xt=Z-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,M[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,M[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,M[2]=mt-(kt-dt)+(gt-dt),M[3]=kt,lt=-Bt,bt=-Y,jt=W*lt,ht=e*W,pt=ht-(ht-W),Mt=W-pt,ht=e*lt,yt=ht-(ht-lt),xt=lt-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=vt*bt,ht=e*vt,pt=ht-(ht-vt),Mt=vt-pt,ht=e*bt,yt=ht-(ht-bt),xt=bt-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt+Ft,dt=gt-wt,y[0]=wt-(gt-dt)+(Ft-dt),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt+At,dt=gt-Tt,y[1]=Tt-(gt-dt)+(At-dt),kt=mt+gt,dt=kt-mt,y[2]=mt-(kt-dt)+(gt-dt),y[3]=kt,it=f(4,M,4,y,A),jt=V*Z,ht=e*V,pt=ht-(ht-V),Mt=V-pt,ht=e*Z,yt=ht-(ht-Z),xt=Z-yt,wt=Mt*xt-(jt-pt*yt-Mt*yt-pt*xt),At=W*Y,ht=e*W,pt=ht-(ht-W),Mt=W-pt,ht=e*Y,yt=ht-(ht-Y),xt=Y-yt,Ft=Mt*xt-(At-pt*yt-Mt*yt-pt*xt),gt=wt-Ft,dt=wt-gt,q[0]=wt-(gt+dt)+(dt-Ft),mt=jt+gt,dt=mt-jt,Tt=jt-(mt-dt)+(gt-dt),gt=Tt-At,dt=Tt-gt,q[1]=Tt-(gt+dt)+(dt-At),kt=mt+gt,dt=kt-mt,q[2]=mt-(kt-dt)+(gt-dt),q[3]=kt,st=4):(A[0]=0,it=1,q[0]=0,st=1),0!==X){const t=r(it,A,X,E);U=N(U,f(r(ot,j,X,C),C,r(t,E,2*zt,G),G,I),I);const n=r(st,q,X,B);U=N(U,i(r(n,B,2*zt,C),C,r(n,B,X,D),D,r(t,E,X,G),G,H,J),J),0!==Y&&(U=N(U,r(r(4,h,X,B),B,Y,C),C)),0!==Z&&(U=N(U,r(r(4,d,-X,B),B,Z,C),C))}if(0!==$){const t=r(it,A,$,E);U=N(U,f(r(ft,w,$,C),C,r(t,E,2*Dt,G),G,I),I);const n=r(st,q,$,B);U=N(U,i(r(n,B,2*Dt,C),C,r(n,B,$,D),D,r(t,E,$,G),G,H,J),J)}}return K[U-1]}(t,n,c,L,O,P,Q,R,ct)},t.incirclefast=function(t,n,e,o,f,i,r,c){const s=t-r,u=n-c,a=e-r,l=o-c,b=f-r,d=i-c;return(s*s+u*u)*(a*d-b*l)+(a*a+l*l)*(b*u-s*d)+(b*b+d*d)*(s*l-a*u)}}));
Index: de_modules/robust-predicates/umd/insphere.js
===================================================================
--- node_modules/robust-predicates/umd/insphere.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,914 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
-})(this, (function (exports) { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function sum_three(alen, a, blen, b, clen, c, tmp, out) {
-    return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
-}
-
-// scale_expansion_zeroelim routine from oritinal code
-function scale(elen, e, b, h) {
-    let Q, sum, hh, product1, product0;
-    let bvirt, c, ahi, alo, bhi, blo;
-
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    let enow = e[0];
-    Q = enow * b;
-    c = splitter * enow;
-    ahi = c - (c - enow);
-    alo = enow - ahi;
-    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
-    let hindex = 0;
-    if (hh !== 0) {
-        h[hindex++] = hh;
-    }
-    for (let i = 1; i < elen; i++) {
-        enow = e[i];
-        product1 = enow * b;
-        c = splitter * enow;
-        ahi = c - (c - enow);
-        alo = enow - ahi;
-        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
-        sum = Q + product0;
-        bvirt = sum - Q;
-        hh = Q - (sum - bvirt) + (product0 - bvirt);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        Q = product1 + sum;
-        hh = sum - (Q - product1);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function negate(elen, e) {
-    for (let i = 0; i < elen; i++) e[i] = -e[i];
-    return elen;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const isperrboundA = (16 + 224 * epsilon) * epsilon;
-const isperrboundB = (5 + 72 * epsilon) * epsilon;
-const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;
-
-const ab = vec(4);
-const bc = vec(4);
-const cd = vec(4);
-const de = vec(4);
-const ea = vec(4);
-const ac = vec(4);
-const bd = vec(4);
-const ce = vec(4);
-const da = vec(4);
-const eb = vec(4);
-
-const abc = vec(24);
-const bcd = vec(24);
-const cde = vec(24);
-const dea = vec(24);
-const eab = vec(24);
-const abd = vec(24);
-const bce = vec(24);
-const cda = vec(24);
-const deb = vec(24);
-const eac = vec(24);
-
-const adet = vec(1152);
-const bdet = vec(1152);
-const cdet = vec(1152);
-const ddet = vec(1152);
-const edet = vec(1152);
-const abdet = vec(2304);
-const cddet = vec(2304);
-const cdedet = vec(3456);
-const deter = vec(5760);
-
-const _8 = vec(8);
-const _8b = vec(8);
-const _8c = vec(8);
-const _16 = vec(16);
-const _24 = vec(24);
-const _48 = vec(48);
-const _48b = vec(48);
-const _96 = vec(96);
-const _192 = vec(192);
-const _384x = vec(384);
-const _384y = vec(384);
-const _384z = vec(384);
-const _768 = vec(768);
-
-function sum_three_scale(a, b, c, az, bz, cz, out) {
-    return sum_three(
-        scale(4, a, az, _8), _8,
-        scale(4, b, bz, _8b), _8b,
-        scale(4, c, cz, _8c), _8c, _16, out);
-}
-
-function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
-    const len = sum(
-        sum(alen, a, blen, b, _48), _48,
-        negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);
-
-    return sum_three(
-        scale(scale(len, _96, x, _192), _192, x, _384x), _384x,
-        scale(scale(len, _96, y, _192), _192, y, _384y), _384y,
-        scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);
-}
-
-function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    s1 = ax * by;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ay;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-    s1 = bx * cy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * by;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cx * dy;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * cy;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    cd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    cd[3] = u3;
-    s1 = dx * ey;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * dy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    de[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    de[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    de[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    de[3] = u3;
-    s1 = ex * ay;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * ey;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ea[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ea[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ea[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ea[3] = u3;
-    s1 = ax * cy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * ay;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ac[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ac[3] = u3;
-    s1 = bx * dy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * by;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bd[3] = u3;
-    s1 = cx * ey;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * cy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ce[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ce[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ce[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ce[3] = u3;
-    s1 = dx * ay;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * dy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    da[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    da[3] = u3;
-    s1 = ex * by;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ey;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    eb[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    eb[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    eb[3] = u3;
-
-    const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
-    const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
-    const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
-    const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
-    const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
-    const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
-    const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
-    const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
-    const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
-    const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
-
-    const deterlen = sum_three(
-        liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,
-        liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,
-        sum_three(
-            liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,
-            liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,
-            liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);
-
-    return deter[deterlen - 1];
-}
-
-const xdet = vec(96);
-const ydet = vec(96);
-const zdet = vec(96);
-const fin = vec(1152);
-
-function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
-    const len = sum_three_scale(a, b, c, az, bz, cz, _24);
-    return sum_three(
-        scale(scale(len, _24, x, _48), _48, x, xdet), xdet,
-        scale(scale(len, _24, y, _48), _48, y, ydet), ydet,
-        scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
-}
-
-function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
-    let ab3, bc3, cd3, da3, ac3, bd3;
-
-    let aextail, bextail, cextail, dextail;
-    let aeytail, beytail, ceytail, deytail;
-    let aeztail, beztail, ceztail, deztail;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;
-
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    s1 = aex * bey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bex * aey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ab3 = _j + _i;
-    bvirt = ab3 - _j;
-    ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
-    ab[3] = ab3;
-    s1 = bex * cey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * bey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bc3 = _j + _i;
-    bvirt = bc3 - _j;
-    bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
-    bc[3] = bc3;
-    s1 = cex * dey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * cey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    cd3 = _j + _i;
-    bvirt = cd3 - _j;
-    cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);
-    cd[3] = cd3;
-    s1 = dex * aey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = aex * dey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    da3 = _j + _i;
-    bvirt = da3 - _j;
-    da[2] = _j - (da3 - bvirt) + (_i - bvirt);
-    da[3] = da3;
-    s1 = aex * cey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * aey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ac3 = _j + _i;
-    bvirt = ac3 - _j;
-    ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);
-    ac[3] = ac3;
-    s1 = bex * dey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * bey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bd3 = _j + _i;
-    bvirt = bd3 - _j;
-    bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);
-    bd[3] = bd3;
-
-    const finlen = sum(
-        sum(
-            negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,
-            liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,
-        sum(
-            negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,
-            liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = isperrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - aex;
-    aextail = ax - (aex + bvirt) + (bvirt - ex);
-    bvirt = ay - aey;
-    aeytail = ay - (aey + bvirt) + (bvirt - ey);
-    bvirt = az - aez;
-    aeztail = az - (aez + bvirt) + (bvirt - ez);
-    bvirt = bx - bex;
-    bextail = bx - (bex + bvirt) + (bvirt - ex);
-    bvirt = by - bey;
-    beytail = by - (bey + bvirt) + (bvirt - ey);
-    bvirt = bz - bez;
-    beztail = bz - (bez + bvirt) + (bvirt - ez);
-    bvirt = cx - cex;
-    cextail = cx - (cex + bvirt) + (bvirt - ex);
-    bvirt = cy - cey;
-    ceytail = cy - (cey + bvirt) + (bvirt - ey);
-    bvirt = cz - cez;
-    ceztail = cz - (cez + bvirt) + (bvirt - ez);
-    bvirt = dx - dex;
-    dextail = dx - (dex + bvirt) + (bvirt - ex);
-    bvirt = dy - dey;
-    deytail = dy - (dey + bvirt) + (bvirt - ey);
-    bvirt = dz - dez;
-    deztail = dz - (dez + bvirt) + (bvirt - ez);
-    if (aextail === 0 && aeytail === 0 && aeztail === 0 &&
-        bextail === 0 && beytail === 0 && beztail === 0 &&
-        cextail === 0 && ceytail === 0 && ceztail === 0 &&
-        dextail === 0 && deytail === 0 && deztail === 0) {
-        return det;
-    }
-
-    errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);
-
-    const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);
-    const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);
-    const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);
-    const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);
-    const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);
-    const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);
-    det +=
-        (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +
-        (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *
-        ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -
-        ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +
-        (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *
-        ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +
-        2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +
-        (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -
-        ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +
-        (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);
-}
-
-function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    const aexbey = aex * bey;
-    const bexaey = bex * aey;
-    const ab = aexbey - bexaey;
-    const bexcey = bex * cey;
-    const cexbey = cex * bey;
-    const bc = bexcey - cexbey;
-    const cexdey = cex * dey;
-    const dexcey = dex * cey;
-    const cd = cexdey - dexcey;
-    const dexaey = dex * aey;
-    const aexdey = aex * dey;
-    const da = dexaey - aexdey;
-    const aexcey = aex * cey;
-    const cexaey = cex * aey;
-    const ac = aexcey - cexaey;
-    const bexdey = bex * dey;
-    const dexbey = dex * bey;
-    const bd = bexdey - dexbey;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    const det =
-        (clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab)) +
-        (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd));
-
-    const aezplus = Math.abs(aez);
-    const bezplus = Math.abs(bez);
-    const cezplus = Math.abs(cez);
-    const dezplus = Math.abs(dez);
-    const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey);
-    const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey);
-    const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey);
-    const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey);
-    const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey);
-    const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey);
-    const permanent =
-        (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift +
-        (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift +
-        (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift +
-        (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift;
-
-    const errbound = isperrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);
-}
-
-function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {
-    const aex = pax - pex;
-    const bex = pbx - pex;
-    const cex = pcx - pex;
-    const dex = pdx - pex;
-    const aey = pay - pey;
-    const bey = pby - pey;
-    const cey = pcy - pey;
-    const dey = pdy - pey;
-    const aez = paz - pez;
-    const bez = pbz - pez;
-    const cez = pcz - pez;
-    const dez = pdz - pez;
-
-    const ab = aex * bey - bex * aey;
-    const bc = bex * cey - cex * bey;
-    const cd = cex * dey - dex * cey;
-    const da = dex * aey - aex * dey;
-    const ac = aex * cey - cex * aey;
-    const bd = bex * dey - dex * bey;
-
-    const abc = aez * bc - bez * ac + cez * ab;
-    const bcd = bez * cd - cez * bd + dez * bc;
-    const cda = cez * da + dez * ac + aez * cd;
-    const dab = dez * ab + aez * bd + bez * da;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);
-}
-
-exports.insphere = insphere;
-exports.inspherefast = inspherefast;
-
-}));
Index: de_modules/robust-predicates/umd/insphere.min.js
===================================================================
--- node_modules/robust-predicates/umd/insphere.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const n=11102230246251565e-32,e=134217729,r=(3+8*n)*n;function o(t,n,e,r,o){let a,s,f,u,i=n[0],c=r[0],h=0,b=0;c>i==c>-i?(a=i,i=n[++h]):(a=c,c=r[++b]);let l=0;if(h<t&&b<e)for(c>i==c>-i?(s=i+a,f=a-(s-i),i=n[++h]):(s=c+a,f=a-(s-c),c=r[++b]),a=s,0!==f&&(o[l++]=f);h<t&&b<e;)c>i==c>-i?(s=a+i,u=s-a,f=a-(s-u)+(i-u),i=n[++h]):(s=a+c,u=s-a,f=a-(s-u)+(c-u),c=r[++b]),a=s,0!==f&&(o[l++]=f);for(;h<t;)s=a+i,u=s-a,f=a-(s-u)+(i-u),i=n[++h],a=s,0!==f&&(o[l++]=f);for(;b<e;)s=a+c,u=s-a,f=a-(s-u)+(c-u),c=r[++b],a=s,0!==f&&(o[l++]=f);return 0===a&&0!==l||(o[l++]=a),l}function a(t,n,e,r,a,s,f,u){return o(o(t,n,e,r,f),f,a,s,u)}function s(t,n,r,o){let a,s,f,u,i,c,h,b,l,M,d;h=e*r,M=h-(h-r),d=r-M;let p=n[0];a=p*r,h=e*p,b=h-(h-p),l=p-b,f=l*d-(a-b*M-l*M-b*d);let y=0;0!==f&&(o[y++]=f);for(let x=1;x<t;x++)p=n[x],u=p*r,h=e*p,b=h-(h-p),l=p-b,i=l*d-(u-b*M-l*M-b*d),s=a+i,c=s-a,f=a-(s-c)+(i-c),0!==f&&(o[y++]=f),a=u+s,f=s-(a-u),0!==f&&(o[y++]=f);return 0===a&&0!==y||(o[y++]=a),y}function f(t,n){for(let e=0;e<t;e++)n[e]=-n[e];return t}function u(t){return new Float64Array(t)}const i=5551115123125792e-31,c=8751425667295619e-46,h=u(4),b=u(4),l=u(4),M=u(4),d=u(4),p=u(4),y=u(4),x=u(4),g=u(4),m=u(4),T=u(24),j=u(24),w=u(24),A=u(24),F=u(24),k=u(24),q=u(24),v=u(24),z=u(24),B=u(24),C=u(1152),D=u(1152),E=u(1152),G=u(1152),H=u(1152),I=u(2304),J=u(2304),K=u(3456),L=u(5760),N=u(8),O=u(8),P=u(8),Q=u(16),R=u(24),S=u(48),U=u(48),V=u(96),W=u(192),X=u(384),Y=u(384),Z=u(384),$=u(768);function _(t,n,e,r,o,f,u){return a(s(4,t,r,N),N,s(4,n,o,O),O,s(4,e,f,P),P,Q,u)}function tt(t,n,e,r,u,i,c,h,b,l,M,d){const p=o(o(t,n,e,r,S),S,f(o(u,i,c,h,U),U),U,V);return a(s(s(p,V,b,W),W,b,X),X,s(s(p,V,l,W),W,l,Y),Y,s(s(p,V,M,W),W,M,Z),Z,$,d)}const nt=u(96),et=u(96),rt=u(96),ot=u(1152);function at(t,n,e,r,o,f,u,i,c,h){const b=_(t,n,e,r,o,f,R);return a(s(s(b,R,u,S),S,u,nt),nt,s(s(b,R,i,S),S,i,et),et,s(s(b,R,c,S),S,c,rt),rt,W,h)}function st(t,n,s,u,N,O,P,Q,R,S,U,V,W,X,Y,Z){let $,nt,et,rt,st,ft,ut,it,ct,ht,bt,lt,Mt,dt,pt,yt,xt,gt,mt,Tt,jt,wt,At,Ft,kt,qt,vt,zt,Bt,Ct,Dt;const Et=t-W,Gt=u-W,Ht=P-W,It=S-W,Jt=n-X,Kt=N-X,Lt=Q-X,Nt=U-X,Ot=s-Y,Pt=O-Y,Qt=R-Y,Rt=V-Y;zt=Et*Kt,Tt=e*Et,jt=Tt-(Tt-Et),wt=Et-jt,Tt=e*Kt,At=Tt-(Tt-Kt),Ft=Kt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=Gt*Jt,Tt=e*Gt,jt=Tt-(Tt-Gt),wt=Gt-jt,Tt=e*Jt,At=Tt-(Tt-Jt),Ft=Jt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,h[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,h[1]=vt-(kt+mt)+(mt-Ct),$=qt+kt,mt=$-qt,h[2]=qt-($-mt)+(kt-mt),h[3]=$,zt=Gt*Lt,Tt=e*Gt,jt=Tt-(Tt-Gt),wt=Gt-jt,Tt=e*Lt,At=Tt-(Tt-Lt),Ft=Lt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=Ht*Kt,Tt=e*Ht,jt=Tt-(Tt-Ht),wt=Ht-jt,Tt=e*Kt,At=Tt-(Tt-Kt),Ft=Kt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,b[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,b[1]=vt-(kt+mt)+(mt-Ct),nt=qt+kt,mt=nt-qt,b[2]=qt-(nt-mt)+(kt-mt),b[3]=nt,zt=Ht*Nt,Tt=e*Ht,jt=Tt-(Tt-Ht),wt=Ht-jt,Tt=e*Nt,At=Tt-(Tt-Nt),Ft=Nt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=It*Lt,Tt=e*It,jt=Tt-(Tt-It),wt=It-jt,Tt=e*Lt,At=Tt-(Tt-Lt),Ft=Lt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,l[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,l[1]=vt-(kt+mt)+(mt-Ct),et=qt+kt,mt=et-qt,l[2]=qt-(et-mt)+(kt-mt),l[3]=et,zt=It*Jt,Tt=e*It,jt=Tt-(Tt-It),wt=It-jt,Tt=e*Jt,At=Tt-(Tt-Jt),Ft=Jt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=Et*Nt,Tt=e*Et,jt=Tt-(Tt-Et),wt=Et-jt,Tt=e*Nt,At=Tt-(Tt-Nt),Ft=Nt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,g[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,g[1]=vt-(kt+mt)+(mt-Ct),rt=qt+kt,mt=rt-qt,g[2]=qt-(rt-mt)+(kt-mt),g[3]=rt,zt=Et*Lt,Tt=e*Et,jt=Tt-(Tt-Et),wt=Et-jt,Tt=e*Lt,At=Tt-(Tt-Lt),Ft=Lt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=Ht*Jt,Tt=e*Ht,jt=Tt-(Tt-Ht),wt=Ht-jt,Tt=e*Jt,At=Tt-(Tt-Jt),Ft=Jt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,p[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,p[1]=vt-(kt+mt)+(mt-Ct),st=qt+kt,mt=st-qt,p[2]=qt-(st-mt)+(kt-mt),p[3]=st,zt=Gt*Nt,Tt=e*Gt,jt=Tt-(Tt-Gt),wt=Gt-jt,Tt=e*Nt,At=Tt-(Tt-Nt),Ft=Nt-At,Bt=wt*Ft-(zt-jt*At-wt*At-jt*Ft),Ct=It*Kt,Tt=e*It,jt=Tt-(Tt-It),wt=It-jt,Tt=e*Kt,At=Tt-(Tt-Kt),Ft=Kt-At,Dt=wt*Ft-(Ct-jt*At-wt*At-jt*Ft),kt=Bt-Dt,mt=Bt-kt,y[0]=Bt-(kt+mt)+(mt-Dt),qt=zt+kt,mt=qt-zt,vt=zt-(qt-mt)+(kt-mt),kt=vt-Ct,mt=vt-kt,y[1]=vt-(kt+mt)+(mt-Ct),ft=qt+kt,mt=ft-qt,y[2]=qt-(ft-mt)+(kt-mt),y[3]=ft;let St=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(o(o(f(at(b,l,y,Rt,Pt,-Qt,Et,Jt,Ot,C),C),C,at(l,g,p,Ot,Qt,Rt,Gt,Kt,Pt,D),D,I),I,o(f(at(g,h,y,Pt,Rt,Ot,Ht,Lt,Qt,E),E),E,at(h,b,p,Qt,Ot,-Pt,It,Nt,Rt,G),G,J),J,ot),ot),Ut=i*Z;if(St>=Ut||-St>=Ut)return St;if(mt=t-Et,ut=t-(Et+mt)+(mt-W),mt=n-Jt,bt=n-(Jt+mt)+(mt-X),mt=s-Ot,pt=s-(Ot+mt)+(mt-Y),mt=u-Gt,it=u-(Gt+mt)+(mt-W),mt=N-Kt,lt=N-(Kt+mt)+(mt-X),mt=O-Pt,yt=O-(Pt+mt)+(mt-Y),mt=P-Ht,ct=P-(Ht+mt)+(mt-W),mt=Q-Lt,Mt=Q-(Lt+mt)+(mt-X),mt=R-Qt,xt=R-(Qt+mt)+(mt-Y),mt=S-It,ht=S-(It+mt)+(mt-W),mt=U-Nt,dt=U-(Nt+mt)+(mt-X),mt=V-Rt,gt=V-(Rt+mt)+(mt-Y),0===ut&&0===bt&&0===pt&&0===it&&0===lt&&0===yt&&0===ct&&0===Mt&&0===xt&&0===ht&&0===dt&&0===gt)return St;Ut=c*Z+r*Math.abs(St);const Vt=Et*lt+Kt*ut-(Jt*it+Gt*bt),Wt=Gt*Mt+Lt*it-(Kt*ct+Ht*lt),Xt=Ht*dt+Nt*ct-(Lt*ht+It*Mt),Yt=It*bt+Jt*ht-(Nt*ut+Et*dt),Zt=Et*Mt+Lt*ut-(Jt*ct+Ht*bt),$t=Gt*dt+Nt*it-(Kt*ht+It*lt);return St+=(Gt*Gt+Kt*Kt+Pt*Pt)*(Qt*Yt+Rt*Zt+Ot*Xt+(xt*rt+gt*st+pt*et))+(It*It+Nt*Nt+Rt*Rt)*(Ot*Wt-Pt*Zt+Qt*Vt+(pt*nt-yt*st+xt*$))-((Et*Et+Jt*Jt+Ot*Ot)*(Pt*Xt-Qt*$t+Rt*Wt+(yt*et-xt*ft+gt*nt))+(Ht*Ht+Lt*Lt+Qt*Qt)*(Rt*Vt+Ot*$t+Pt*Yt+(gt*$+pt*ft+yt*rt)))+2*((Gt*it+Kt*lt+Pt*yt)*(Qt*rt+Rt*st+Ot*et)+(It*ht+Nt*dt+Rt*gt)*(Ot*nt-Pt*st+Qt*$)-((Et*ut+Jt*bt+Ot*pt)*(Pt*et-Qt*ft+Rt*nt)+(Ht*ct+Lt*Mt+Qt*xt)*(Rt*$+Ot*ft+Pt*rt))),St>=Ut||-St>=Ut?St:function(t,n,r,o,s,f,u,i,c,N,O,P,Q,R,S){let U,V,W,X,Y,Z,$,nt,et,rt,ot,at,st,ft;rt=t*s,V=e*t,W=V-(V-t),X=t-W,V=e*s,Y=V-(V-s),Z=s-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=o*n,V=e*o,W=V-(V-o),X=o-W,V=e*n,Y=V-(V-n),Z=n-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,h[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,h[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,h[2]=nt-(ft-U)+($-U),h[3]=ft,rt=o*i,V=e*o,W=V-(V-o),X=o-W,V=e*i,Y=V-(V-i),Z=i-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=u*s,V=e*u,W=V-(V-u),X=u-W,V=e*s,Y=V-(V-s),Z=s-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,b[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,b[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,b[2]=nt-(ft-U)+($-U),b[3]=ft,rt=u*O,V=e*u,W=V-(V-u),X=u-W,V=e*O,Y=V-(V-O),Z=O-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=N*i,V=e*N,W=V-(V-N),X=N-W,V=e*i,Y=V-(V-i),Z=i-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,l[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,l[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,l[2]=nt-(ft-U)+($-U),l[3]=ft,rt=N*R,V=e*N,W=V-(V-N),X=N-W,V=e*R,Y=V-(V-R),Z=R-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=Q*O,V=e*Q,W=V-(V-Q),X=Q-W,V=e*O,Y=V-(V-O),Z=O-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,M[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,M[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,M[2]=nt-(ft-U)+($-U),M[3]=ft,rt=Q*n,V=e*Q,W=V-(V-Q),X=Q-W,V=e*n,Y=V-(V-n),Z=n-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=t*R,V=e*t,W=V-(V-t),X=t-W,V=e*R,Y=V-(V-R),Z=R-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,d[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,d[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,d[2]=nt-(ft-U)+($-U),d[3]=ft,rt=t*i,V=e*t,W=V-(V-t),X=t-W,V=e*i,Y=V-(V-i),Z=i-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=u*n,V=e*u,W=V-(V-u),X=u-W,V=e*n,Y=V-(V-n),Z=n-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,p[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,p[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,p[2]=nt-(ft-U)+($-U),p[3]=ft,rt=o*O,V=e*o,W=V-(V-o),X=o-W,V=e*O,Y=V-(V-O),Z=O-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=N*s,V=e*N,W=V-(V-N),X=N-W,V=e*s,Y=V-(V-s),Z=s-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,y[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,y[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,y[2]=nt-(ft-U)+($-U),y[3]=ft,rt=u*R,V=e*u,W=V-(V-u),X=u-W,V=e*R,Y=V-(V-R),Z=R-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=Q*i,V=e*Q,W=V-(V-Q),X=Q-W,V=e*i,Y=V-(V-i),Z=i-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,x[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,x[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,x[2]=nt-(ft-U)+($-U),x[3]=ft,rt=N*n,V=e*N,W=V-(V-N),X=N-W,V=e*n,Y=V-(V-n),Z=n-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=t*O,V=e*t,W=V-(V-t),X=t-W,V=e*O,Y=V-(V-O),Z=O-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,g[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,g[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,g[2]=nt-(ft-U)+($-U),g[3]=ft,rt=Q*s,V=e*Q,W=V-(V-Q),X=Q-W,V=e*s,Y=V-(V-s),Z=s-Y,ot=X*Z-(rt-W*Y-X*Y-W*Z),at=o*R,V=e*o,W=V-(V-o),X=o-W,V=e*R,Y=V-(V-R),Z=R-Y,st=X*Z-(at-W*Y-X*Y-W*Z),$=ot-st,U=ot-$,m[0]=ot-($+U)+(U-st),nt=rt+$,U=nt-rt,et=rt-(nt-U)+($-U),$=et-at,U=et-$,m[1]=et-($+U)+(U-at),ft=nt+$,U=ft-nt,m[2]=nt-(ft-U)+($-U),m[3]=ft;const ut=_(h,b,p,c,r,-f,T),it=_(b,l,y,P,f,-c,j),ct=_(l,M,x,S,c,-P,w),ht=_(M,d,g,r,P,-S,A),bt=_(d,h,m,f,S,-r,F),lt=_(h,y,g,P,r,f,k),Mt=_(b,x,m,S,f,c,q),dt=_(l,g,p,r,c,P,v),pt=_(M,m,y,f,P,S,z),yt=_(d,p,x,c,S,r,B),xt=a(tt(ct,w,Mt,q,pt,z,it,j,t,n,r,C),C,tt(ht,A,dt,v,yt,B,ct,w,o,s,f,D),D,a(tt(bt,F,pt,z,lt,k,ht,A,u,i,c,E),E,tt(ut,T,yt,B,Mt,q,bt,F,N,O,P,G),G,tt(it,j,lt,k,dt,v,ut,T,Q,R,S,H),H,J,K),K,I,L);return L[xt-1]}(t,n,s,u,N,O,P,Q,R,S,U,V,W,X,Y)}t.insphere=function(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M){const d=t-b,p=r-b,y=s-b,x=i-b,g=n-l,m=o-l,T=f-l,j=c-l,w=e-M,A=a-M,F=u-M,k=h-M,q=d*m,v=p*g,z=q-v,B=p*T,C=y*m,D=B-C,E=y*j,G=x*T,H=E-G,I=x*g,J=d*j,K=I-J,L=d*T,N=y*g,O=L-N,P=p*j,Q=x*m,R=P-Q,S=d*d+g*g+w*w,U=p*p+m*m+A*A,V=y*y+T*T+F*F,W=x*x+j*j+k*k,X=V*(k*z+w*R+A*K)-W*(w*D-A*O+F*z)+(S*(A*H-F*R+k*D)-U*(F*K+k*O+w*H)),Y=Math.abs(w),Z=Math.abs(A),$=Math.abs(F),_=Math.abs(k),tt=Math.abs(q)+Math.abs(v),nt=Math.abs(B)+Math.abs(C),et=Math.abs(E)+Math.abs(G),rt=Math.abs(I)+Math.abs(J),ot=Math.abs(L)+Math.abs(N),at=Math.abs(P)+Math.abs(Q),ft=(et*Z+at*$+nt*_)*S+(rt*$+ot*_+et*Y)*U+(tt*_+at*Y+rt*Z)*V+(nt*Y+ot*Z+tt*$)*W,ut=17763568394002532e-31*ft;return X>ut||-X>ut?X:-st(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M,ft)},t.inspherefast=function(t,n,e,r,o,a,s,f,u,i,c,h,b,l,M){const d=t-b,p=r-b,y=s-b,x=i-b,g=n-l,m=o-l,T=f-l,j=c-l,w=e-M,A=a-M,F=u-M,k=h-M,q=d*m-p*g,v=p*T-y*m,z=y*j-x*T,B=x*g-d*j,C=d*T-y*g,D=p*j-x*m;return(y*y+T*T+F*F)*(k*q+w*D+A*B)-(x*x+j*j+k*k)*(w*v-A*C+F*q)+((d*d+g*g+w*w)*(A*z-F*D+k*v)-(p*p+m*m+A*A)*(F*B+k*C+w*z))}}));
Index: de_modules/robust-predicates/umd/orient2d.js
===================================================================
--- node_modules/robust-predicates/umd/orient2d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,280 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
-})(this, (function (exports) { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const ccwerrboundA = (3 + 16 * epsilon) * epsilon;
-const ccwerrboundB = (2 + 12 * epsilon) * epsilon;
-const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C1len = sum(4, B, 4, u, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const C2len = sum(C1len, C1, 4, u, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u[3] = u3;
-    const Dlen = sum(C2len, C2, 4, u, D);
-
-    return D[Dlen - 1];
-}
-
-function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-function orient2dfast(ax, ay, bx, by, cx, cy) {
-    return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);
-}
-
-exports.orient2d = orient2d;
-exports.orient2dfast = orient2dfast;
-
-}));
Index: de_modules/robust-predicates/umd/orient2d.min.js
===================================================================
--- node_modules/robust-predicates/umd/orient2d.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const e=11102230246251565e-32,n=134217729,o=(3+8*e)*e;function r(t,e,n,o,r){let f,i,u,s,c=e[0],a=o[0],l=0,d=0;a>c==a>-c?(f=c,c=e[++l]):(f=a,a=o[++d]);let p=0;if(l<t&&d<n)for(a>c==a>-c?(i=c+f,u=f-(i-c),c=e[++l]):(i=a+f,u=f-(i-a),a=o[++d]),f=i,0!==u&&(r[p++]=u);l<t&&d<n;)a>c==a>-c?(i=f+c,s=i-f,u=f-(i-s)+(c-s),c=e[++l]):(i=f+a,s=i-f,u=f-(i-s)+(a-s),a=o[++d]),f=i,0!==u&&(r[p++]=u);for(;l<t;)i=f+c,s=i-f,u=f-(i-s)+(c-s),c=e[++l],f=i,0!==u&&(r[p++]=u);for(;d<n;)i=f+a,s=i-f,u=f-(i-s)+(a-s),a=o[++d],f=i,0!==u&&(r[p++]=u);return 0===f&&0!==p||(r[p++]=f),p}function f(t){return new Float64Array(t)}const i=22204460492503146e-32,u=11093356479670487e-47,s=f(4),c=f(8),a=f(12),l=f(16),d=f(4);t.orient2d=function(t,e,f,p,b,h){const y=(e-h)*(f-b),x=(t-b)*(p-h),M=y-x,g=Math.abs(y+x);return Math.abs(M)>=33306690738754716e-32*g?M:-function(t,e,f,p,b,h,y){let x,M,g,m,T,j,w,A,F,k,q,v,z,B,C,D,E,G;const H=t-b,I=f-b,J=e-h,K=p-h;B=H*K,j=n*H,w=j-(j-H),A=H-w,j=n*K,F=j-(j-K),k=K-F,C=A*k-(B-w*F-A*F-w*k),D=J*I,j=n*J,w=j-(j-J),A=J-w,j=n*I,F=j-(j-I),k=I-F,E=A*k-(D-w*F-A*F-w*k),q=C-E,T=C-q,s[0]=C-(q+T)+(T-E),v=B+q,T=v-B,z=B-(v-T)+(q-T),q=z-D,T=z-q,s[1]=z-(q+T)+(T-D),G=v+q,T=G-v,s[2]=v-(G-T)+(q-T),s[3]=G;let L=function(t,e){let n=e[0];for(let o=1;o<t;o++)n+=e[o];return n}(4,s),N=i*y;if(L>=N||-L>=N)return L;if(T=t-H,x=t-(H+T)+(T-b),T=f-I,g=f-(I+T)+(T-b),T=e-J,M=e-(J+T)+(T-h),T=p-K,m=p-(K+T)+(T-h),0===x&&0===M&&0===g&&0===m)return L;if(N=u*y+o*Math.abs(L),L+=H*m+K*x-(J*g+I*M),L>=N||-L>=N)return L;B=x*K,j=n*x,w=j-(j-x),A=x-w,j=n*K,F=j-(j-K),k=K-F,C=A*k-(B-w*F-A*F-w*k),D=M*I,j=n*M,w=j-(j-M),A=M-w,j=n*I,F=j-(j-I),k=I-F,E=A*k-(D-w*F-A*F-w*k),q=C-E,T=C-q,d[0]=C-(q+T)+(T-E),v=B+q,T=v-B,z=B-(v-T)+(q-T),q=z-D,T=z-q,d[1]=z-(q+T)+(T-D),G=v+q,T=G-v,d[2]=v-(G-T)+(q-T),d[3]=G;const O=r(4,s,4,d,c);B=H*m,j=n*H,w=j-(j-H),A=H-w,j=n*m,F=j-(j-m),k=m-F,C=A*k-(B-w*F-A*F-w*k),D=J*g,j=n*J,w=j-(j-J),A=J-w,j=n*g,F=j-(j-g),k=g-F,E=A*k-(D-w*F-A*F-w*k),q=C-E,T=C-q,d[0]=C-(q+T)+(T-E),v=B+q,T=v-B,z=B-(v-T)+(q-T),q=z-D,T=z-q,d[1]=z-(q+T)+(T-D),G=v+q,T=G-v,d[2]=v-(G-T)+(q-T),d[3]=G;const P=r(O,c,4,d,a);B=x*m,j=n*x,w=j-(j-x),A=x-w,j=n*m,F=j-(j-m),k=m-F,C=A*k-(B-w*F-A*F-w*k),D=M*g,j=n*M,w=j-(j-M),A=M-w,j=n*g,F=j-(j-g),k=g-F,E=A*k-(D-w*F-A*F-w*k),q=C-E,T=C-q,d[0]=C-(q+T)+(T-E),v=B+q,T=v-B,z=B-(v-T)+(q-T),q=z-D,T=z-q,d[1]=z-(q+T)+(T-D),G=v+q,T=G-v,d[2]=v-(G-T)+(q-T),d[3]=G;const Q=r(P,a,4,d,l);return l[Q-1]}(t,e,f,p,b,h,g)},t.orient2dfast=function(t,e,n,o,r,f){return(e-f)*(n-r)-(t-r)*(o-f)}}));
Index: de_modules/robust-predicates/umd/orient3d.js
===================================================================
--- node_modules/robust-predicates/umd/orient3d.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,601 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
-})(this, (function (exports) { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-// scale_expansion_zeroelim routine from oritinal code
-function scale(elen, e, b, h) {
-    let Q, sum, hh, product1, product0;
-    let bvirt, c, ahi, alo, bhi, blo;
-
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    let enow = e[0];
-    Q = enow * b;
-    c = splitter * enow;
-    ahi = c - (c - enow);
-    alo = enow - ahi;
-    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
-    let hindex = 0;
-    if (hh !== 0) {
-        h[hindex++] = hh;
-    }
-    for (let i = 1; i < elen; i++) {
-        enow = e[i];
-        product1 = enow * b;
-        c = splitter * enow;
-        ahi = c - (c - enow);
-        alo = enow - ahi;
-        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
-        sum = Q + product0;
-        bvirt = sum - Q;
-        hh = Q - (sum - bvirt) + (product0 - bvirt);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        Q = product1 + sum;
-        hh = sum - (Q - product1);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const o3derrboundA = (7 + 56 * epsilon) * epsilon;
-const o3derrboundB = (3 + 28 * epsilon) * epsilon;
-const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;
-
-const bc = vec(4);
-const ca = vec(4);
-const ab = vec(4);
-const at_b = vec(4);
-const at_c = vec(4);
-const bt_c = vec(4);
-const bt_a = vec(4);
-const ct_a = vec(4);
-const ct_b = vec(4);
-const bct = vec(8);
-const cat = vec(8);
-const abt = vec(8);
-const u = vec(4);
-
-const _8 = vec(8);
-const _8b = vec(8);
-const _16 = vec(8);
-const _12 = vec(12);
-
-let fin = vec(192);
-let fin2 = vec(192);
-
-function finadd(finlen, alen, a) {
-    finlen = sum(finlen, fin, alen, a, fin2);
-    const tmp = fin; fin = fin2; fin2 = tmp;
-    return finlen;
-}
-
-function tailinit(xtail, ytail, ax, ay, bx, by, a, b) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3, negate;
-    if (xtail === 0) {
-        if (ytail === 0) {
-            a[0] = 0;
-            b[0] = 0;
-            return 1;
-        } else {
-            negate = -ytail;
-            s1 = negate * ax;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        }
-    } else {
-        if (ytail === 0) {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            negate = -xtail;
-            s1 = negate * by;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        } else {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = ytail * ax;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            a[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            a[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            a[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            a[3] = u3;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = xtail * by;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            b[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            b[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            b[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            b[3] = u3;
-            return 4;
-        }
-    }
-}
-
-function tailadd(finlen, a, b, k, z) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;
-    s1 = a * b;
-    c = splitter * a;
-    ahi = c - (c - a);
-    alo = a - ahi;
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    c = splitter * k;
-    bhi = c - (c - k);
-    blo = k - bhi;
-    _i = s0 * k;
-    c = splitter * s0;
-    ahi = c - (c - s0);
-    alo = s0 - ahi;
-    u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-    _j = s1 * k;
-    c = splitter * s1;
-    ahi = c - (c - s1);
-    alo = s1 - ahi;
-    _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-    _k = _i + _0;
-    bvirt = _k - _i;
-    u[1] = _i - (_k - bvirt) + (_0 - bvirt);
-    u3 = _j + _k;
-    u[2] = _k - (u3 - _j);
-    u[3] = u3;
-    finlen = finadd(finlen, 4, u);
-    if (z !== 0) {
-        c = splitter * z;
-        bhi = c - (c - z);
-        blo = z - bhi;
-        _i = s0 * z;
-        c = splitter * s0;
-        ahi = c - (c - s0);
-        alo = s0 - ahi;
-        u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-        _j = s1 * z;
-        c = splitter * s1;
-        ahi = c - (c - s1);
-        alo = s1 - ahi;
-        _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-        _k = _i + _0;
-        bvirt = _k - _i;
-        u[1] = _i - (_k - bvirt) + (_0 - bvirt);
-        u3 = _j + _k;
-        u[2] = _k - (u3 - _j);
-        u[3] = u3;
-        finlen = finadd(finlen, 4, u);
-    }
-    return finlen;
-}
-
-function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail;
-    let adytail, bdytail, cdytail;
-    let adztail, bdztail, cdztail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-
-    finlen = sum(
-        sum(
-            scale(4, bc, adz, _8), _8,
-            scale(4, ca, bdz, _8b), _8b, _16), _16,
-        scale(4, ab, cdz, _8), _8, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = o3derrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    bvirt = az - adz;
-    adztail = az - (adz + bvirt) + (bvirt - dz);
-    bvirt = bz - bdz;
-    bdztail = bz - (bdz + bvirt) + (bvirt - dz);
-    bvirt = cz - cdz;
-    cdztail = cz - (cdz + bvirt) + (bvirt - dz);
-
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 &&
-        adytail === 0 && bdytail === 0 && cdytail === 0 &&
-        adztail === 0 && bdztail === 0 && cdztail === 0) {
-        return det;
-    }
-
-    errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det);
-    det +=
-        adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) +
-        bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) +
-        cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);
-    const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
-    const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
-
-    const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct);
-    finlen = finadd(finlen, scale(bctlen, bct, adz, _16), _16);
-
-    const catlen = sum(ct_len, ct_a, at_len, at_c, cat);
-    finlen = finadd(finlen, scale(catlen, cat, bdz, _16), _16);
-
-    const abtlen = sum(at_len, at_b, bt_len, bt_a, abt);
-    finlen = finadd(finlen, scale(abtlen, abt, cdz, _16), _16);
-
-    if (adztail !== 0) {
-        finlen = finadd(finlen, scale(4, bc, adztail, _12), _12);
-        finlen = finadd(finlen, scale(bctlen, bct, adztail, _16), _16);
-    }
-    if (bdztail !== 0) {
-        finlen = finadd(finlen, scale(4, ca, bdztail, _12), _12);
-        finlen = finadd(finlen, scale(catlen, cat, bdztail, _16), _16);
-    }
-    if (cdztail !== 0) {
-        finlen = finadd(finlen, scale(4, ab, cdztail, _12), _12);
-        finlen = finadd(finlen, scale(abtlen, abt, cdztail, _16), _16);
-    }
-
-    if (adxtail !== 0) {
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);
-        }
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);
-        }
-    }
-    if (bdxtail !== 0) {
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);
-        }
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);
-        }
-    }
-    if (cdxtail !== 0) {
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);
-        }
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);
-        }
-    }
-
-    return fin[finlen - 1];
-}
-
-function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-
-    const det =
-        adz * (bdxcdy - cdxbdy) +
-        bdz * (cdxady - adxcdy) +
-        cdz * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);
-
-    const errbound = o3derrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-
-    return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);
-}
-
-function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    return adx * (bdy * cdz - bdz * cdy) +
-        bdx * (cdy * adz - cdz * ady) +
-        cdx * (ady * bdz - adz * bdy);
-}
-
-exports.orient3d = orient3d;
-exports.orient3dfast = orient3dfast;
-
-}));
Index: de_modules/robust-predicates/umd/orient3d.min.js
===================================================================
--- node_modules/robust-predicates/umd/orient3d.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const n=11102230246251565e-32,e=134217729,o=(3+8*n)*n;function r(t,n,e,o,r){let f,s,u,i,a=n[0],c=o[0],l=0,b=0;c>a==c>-a?(f=a,a=n[++l]):(f=c,c=o[++b]);let h=0;if(l<t&&b<e)for(c>a==c>-a?(s=a+f,u=f-(s-a),a=n[++l]):(s=c+f,u=f-(s-c),c=o[++b]),f=s,0!==u&&(r[h++]=u);l<t&&b<e;)c>a==c>-a?(s=f+a,i=s-f,u=f-(s-i)+(a-i),a=n[++l]):(s=f+c,i=s-f,u=f-(s-i)+(c-i),c=o[++b]),f=s,0!==u&&(r[h++]=u);for(;l<t;)s=f+a,i=s-f,u=f-(s-i)+(a-i),a=n[++l],f=s,0!==u&&(r[h++]=u);for(;b<e;)s=f+c,i=s-f,u=f-(s-i)+(c-i),c=o[++b],f=s,0!==u&&(r[h++]=u);return 0===f&&0!==h||(r[h++]=f),h}function f(t,n,o,r){let f,s,u,i,a,c,l,b,h,d,M;l=e*o,d=l-(l-o),M=o-d;let p=n[0];f=p*o,l=e*p,b=l-(l-p),h=p-b,u=h*M-(f-b*d-h*d-b*M);let y=0;0!==u&&(r[y++]=u);for(let x=1;x<t;x++)p=n[x],i=p*o,l=e*p,b=l-(l-p),h=p-b,a=h*M-(i-b*d-h*d-b*M),s=f+a,c=s-f,u=f-(s-c)+(a-c),0!==u&&(r[y++]=u),f=i+s,u=s-(f-i),0!==u&&(r[y++]=u);return 0===f&&0!==y||(r[y++]=f),y}function s(t){return new Float64Array(t)}const u=3330669073875473e-31,i=32047474274603644e-47,a=s(4),c=s(4),l=s(4),b=s(4),h=s(4),d=s(4),M=s(4),p=s(4),y=s(4),x=s(8),g=s(8),m=s(8),T=s(4),j=s(8),w=s(8),A=s(8),F=s(12);let k=s(192),q=s(192);function v(t,n,e){t=r(t,k,n,e,q);const o=k;return k=q,q=o,t}function z(t,n,o,r,f,s,u,i){let a,c,l,b,h,d,M,p,y,x,g,m,T,j,w;return 0===t?0===n?(u[0]=0,i[0]=0,1):(w=-n,x=w*o,c=e*w,l=c-(c-w),b=w-l,c=e*o,h=c-(c-o),d=o-h,u[0]=b*d-(x-l*h-b*h-l*d),u[1]=x,x=n*f,c=e*n,l=c-(c-n),b=n-l,c=e*f,h=c-(c-f),d=f-h,i[0]=b*d-(x-l*h-b*h-l*d),i[1]=x,2):0===n?(x=t*r,c=e*t,l=c-(c-t),b=t-l,c=e*r,h=c-(c-r),d=r-h,u[0]=b*d-(x-l*h-b*h-l*d),u[1]=x,w=-t,x=w*s,c=e*w,l=c-(c-w),b=w-l,c=e*s,h=c-(c-s),d=s-h,i[0]=b*d-(x-l*h-b*h-l*d),i[1]=x,2):(x=t*r,c=e*t,l=c-(c-t),b=t-l,c=e*r,h=c-(c-r),d=r-h,g=b*d-(x-l*h-b*h-l*d),m=n*o,c=e*n,l=c-(c-n),b=n-l,c=e*o,h=c-(c-o),d=o-h,T=b*d-(m-l*h-b*h-l*d),M=g-T,a=g-M,u[0]=g-(M+a)+(a-T),p=x+M,a=p-x,y=x-(p-a)+(M-a),M=y-m,a=y-M,u[1]=y-(M+a)+(a-m),j=p+M,a=j-p,u[2]=p-(j-a)+(M-a),u[3]=j,x=n*f,c=e*n,l=c-(c-n),b=n-l,c=e*f,h=c-(c-f),d=f-h,g=b*d-(x-l*h-b*h-l*d),m=t*s,c=e*t,l=c-(c-t),b=t-l,c=e*s,h=c-(c-s),d=s-h,T=b*d-(m-l*h-b*h-l*d),M=g-T,a=g-M,i[0]=g-(M+a)+(a-T),p=x+M,a=p-x,y=x-(p-a)+(M-a),M=y-m,a=y-M,i[1]=y-(M+a)+(a-m),j=p+M,a=j-p,i[2]=p-(j-a)+(M-a),i[3]=j,4)}function B(t,n,o,r,f){let s,u,i,a,c,l,b,h,d,M,p,y,x;return p=n*o,u=e*n,i=u-(u-n),a=n-i,u=e*o,c=u-(u-o),l=o-c,y=a*l-(p-i*c-a*c-i*l),u=e*r,c=u-(u-r),l=r-c,b=y*r,u=e*y,i=u-(u-y),a=y-i,T[0]=a*l-(b-i*c-a*c-i*l),h=p*r,u=e*p,i=u-(u-p),a=p-i,M=a*l-(h-i*c-a*c-i*l),d=b+M,s=d-b,T[1]=b-(d-s)+(M-s),x=h+d,T[2]=d-(x-h),T[3]=x,t=v(t,4,T),0!==f&&(u=e*f,c=u-(u-f),l=f-c,b=y*f,u=e*y,i=u-(u-y),a=y-i,T[0]=a*l-(b-i*c-a*c-i*l),h=p*f,u=e*p,i=u-(u-p),a=p-i,M=a*l-(h-i*c-a*c-i*l),d=b+M,s=d-b,T[1]=b-(d-s)+(M-s),x=h+d,T[2]=d-(x-h),T[3]=x,t=v(t,4,T)),t}t.orient3d=function(t,n,s,T,q,C,D,E,G,H,I,J){const K=t-H,L=T-H,N=D-H,O=n-I,P=q-I,Q=E-I,R=s-J,S=C-J,U=G-J,V=L*Q,W=N*P,X=N*O,Y=K*Q,Z=K*P,$=L*O,_=R*(V-W)+S*(X-Y)+U*(Z-$),tt=(Math.abs(V)+Math.abs(W))*Math.abs(R)+(Math.abs(X)+Math.abs(Y))*Math.abs(S)+(Math.abs(Z)+Math.abs($))*Math.abs(U),nt=7771561172376103e-31*tt;return _>nt||-_>nt?_:function(t,n,s,T,q,C,D,E,G,H,I,J,K){let L,N,O,P,Q,R,S,U,V,W,X,Y,Z,$,_,tt,nt,et,ot,rt,ft,st,ut,it;const at=t-H,ct=T-H,lt=D-H,bt=n-I,ht=q-I,dt=E-I,Mt=s-J,pt=C-J,yt=G-J;rt=ct*dt,Y=e*ct,Z=Y-(Y-ct),$=ct-Z,Y=e*dt,_=Y-(Y-dt),tt=dt-_,ft=$*tt-(rt-Z*_-$*_-Z*tt),st=lt*ht,Y=e*lt,Z=Y-(Y-lt),$=lt-Z,Y=e*ht,_=Y-(Y-ht),tt=ht-_,ut=$*tt-(st-Z*_-$*_-Z*tt),nt=ft-ut,X=ft-nt,a[0]=ft-(nt+X)+(X-ut),et=rt+nt,X=et-rt,ot=rt-(et-X)+(nt-X),nt=ot-st,X=ot-nt,a[1]=ot-(nt+X)+(X-st),it=et+nt,X=it-et,a[2]=et-(it-X)+(nt-X),a[3]=it,rt=lt*bt,Y=e*lt,Z=Y-(Y-lt),$=lt-Z,Y=e*bt,_=Y-(Y-bt),tt=bt-_,ft=$*tt-(rt-Z*_-$*_-Z*tt),st=at*dt,Y=e*at,Z=Y-(Y-at),$=at-Z,Y=e*dt,_=Y-(Y-dt),tt=dt-_,ut=$*tt-(st-Z*_-$*_-Z*tt),nt=ft-ut,X=ft-nt,c[0]=ft-(nt+X)+(X-ut),et=rt+nt,X=et-rt,ot=rt-(et-X)+(nt-X),nt=ot-st,X=ot-nt,c[1]=ot-(nt+X)+(X-st),it=et+nt,X=it-et,c[2]=et-(it-X)+(nt-X),c[3]=it,rt=at*ht,Y=e*at,Z=Y-(Y-at),$=at-Z,Y=e*ht,_=Y-(Y-ht),tt=ht-_,ft=$*tt-(rt-Z*_-$*_-Z*tt),st=ct*bt,Y=e*ct,Z=Y-(Y-ct),$=ct-Z,Y=e*bt,_=Y-(Y-bt),tt=bt-_,ut=$*tt-(st-Z*_-$*_-Z*tt),nt=ft-ut,X=ft-nt,l[0]=ft-(nt+X)+(X-ut),et=rt+nt,X=et-rt,ot=rt-(et-X)+(nt-X),nt=ot-st,X=ot-nt,l[1]=ot-(nt+X)+(X-st),it=et+nt,X=it-et,l[2]=et-(it-X)+(nt-X),l[3]=it,L=r(r(f(4,a,Mt,j),j,f(4,c,pt,w),w,A),A,f(4,l,yt,j),j,k);let xt=function(t,n){let e=n[0];for(let o=1;o<t;o++)e+=n[o];return e}(L,k),gt=u*K;if(xt>=gt||-xt>=gt)return xt;if(X=t-at,N=t-(at+X)+(X-H),X=T-ct,O=T-(ct+X)+(X-H),X=D-lt,P=D-(lt+X)+(X-H),X=n-bt,Q=n-(bt+X)+(X-I),X=q-ht,R=q-(ht+X)+(X-I),X=E-dt,S=E-(dt+X)+(X-I),X=s-Mt,U=s-(Mt+X)+(X-J),X=C-pt,V=C-(pt+X)+(X-J),X=G-yt,W=G-(yt+X)+(X-J),0===N&&0===O&&0===P&&0===Q&&0===R&&0===S&&0===U&&0===V&&0===W)return xt;if(gt=i*K+o*Math.abs(xt),xt+=Mt*(ct*S+dt*O-(ht*P+lt*R))+U*(ct*dt-ht*lt)+pt*(lt*Q+bt*P-(dt*N+at*S))+V*(lt*bt-dt*at)+yt*(at*R+ht*N-(bt*O+ct*Q))+W*(at*ht-bt*ct),xt>=gt||-xt>=gt)return xt;const mt=z(N,Q,ct,ht,lt,dt,b,h),Tt=z(O,R,lt,dt,at,bt,d,M),jt=z(P,S,at,bt,ct,ht,p,y),wt=r(Tt,d,jt,y,x);L=v(L,f(wt,x,Mt,A),A);const At=r(jt,p,mt,h,g);L=v(L,f(At,g,pt,A),A);const Ft=r(mt,b,Tt,M,m);return L=v(L,f(Ft,m,yt,A),A),0!==U&&(L=v(L,f(4,a,U,F),F),L=v(L,f(wt,x,U,A),A)),0!==V&&(L=v(L,f(4,c,V,F),F),L=v(L,f(At,g,V,A),A)),0!==W&&(L=v(L,f(4,l,W,F),F),L=v(L,f(Ft,m,W,A),A)),0!==N&&(0!==R&&(L=B(L,N,R,yt,W)),0!==S&&(L=B(L,-N,S,pt,V))),0!==O&&(0!==S&&(L=B(L,O,S,Mt,U)),0!==Q&&(L=B(L,-O,Q,yt,W))),0!==P&&(0!==Q&&(L=B(L,P,Q,pt,V)),0!==R&&(L=B(L,-P,R,Mt,U))),k[L-1]}(t,n,s,T,q,C,D,E,G,H,I,J,tt)},t.orient3dfast=function(t,n,e,o,r,f,s,u,i,a,c,l){const b=n-c,h=r-c,d=u-c,M=e-l,p=f-l,y=i-l;return(t-a)*(h*y-p*d)+(o-a)*(d*M-y*b)+(s-a)*(b*p-M*h)}}));
Index: de_modules/robust-predicates/umd/predicates.js
===================================================================
--- node_modules/robust-predicates/umd/predicates.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2328 +1,0 @@
-(function (global, factory) {
-typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-typeof define === 'function' && define.amd ? define(['exports'], factory) :
-(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));
-})(this, (function (exports) { 'use strict';
-
-const epsilon = 1.1102230246251565e-16;
-const splitter = 134217729;
-const resulterrbound = (3 + 8 * epsilon) * epsilon;
-
-// fast_expansion_sum_zeroelim routine from oritinal code
-function sum(elen, e, flen, f, h) {
-    let Q, Qnew, hh, bvirt;
-    let enow = e[0];
-    let fnow = f[0];
-    let eindex = 0;
-    let findex = 0;
-    if ((fnow > enow) === (fnow > -enow)) {
-        Q = enow;
-        enow = e[++eindex];
-    } else {
-        Q = fnow;
-        fnow = f[++findex];
-    }
-    let hindex = 0;
-    if (eindex < elen && findex < flen) {
-        if ((fnow > enow) === (fnow > -enow)) {
-            Qnew = enow + Q;
-            hh = Q - (Qnew - enow);
-            enow = e[++eindex];
-        } else {
-            Qnew = fnow + Q;
-            hh = Q - (Qnew - fnow);
-            fnow = f[++findex];
-        }
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        while (eindex < elen && findex < flen) {
-            if ((fnow > enow) === (fnow > -enow)) {
-                Qnew = Q + enow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (enow - bvirt);
-                enow = e[++eindex];
-            } else {
-                Qnew = Q + fnow;
-                bvirt = Qnew - Q;
-                hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-                fnow = f[++findex];
-            }
-            Q = Qnew;
-            if (hh !== 0) {
-                h[hindex++] = hh;
-            }
-        }
-    }
-    while (eindex < elen) {
-        Qnew = Q + enow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (enow - bvirt);
-        enow = e[++eindex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    while (findex < flen) {
-        Qnew = Q + fnow;
-        bvirt = Qnew - Q;
-        hh = Q - (Qnew - bvirt) + (fnow - bvirt);
-        fnow = f[++findex];
-        Q = Qnew;
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function sum_three(alen, a, blen, b, clen, c, tmp, out) {
-    return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
-}
-
-// scale_expansion_zeroelim routine from oritinal code
-function scale(elen, e, b, h) {
-    let Q, sum, hh, product1, product0;
-    let bvirt, c, ahi, alo, bhi, blo;
-
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    let enow = e[0];
-    Q = enow * b;
-    c = splitter * enow;
-    ahi = c - (c - enow);
-    alo = enow - ahi;
-    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
-    let hindex = 0;
-    if (hh !== 0) {
-        h[hindex++] = hh;
-    }
-    for (let i = 1; i < elen; i++) {
-        enow = e[i];
-        product1 = enow * b;
-        c = splitter * enow;
-        ahi = c - (c - enow);
-        alo = enow - ahi;
-        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
-        sum = Q + product0;
-        bvirt = sum - Q;
-        hh = Q - (sum - bvirt) + (product0 - bvirt);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-        Q = product1 + sum;
-        hh = sum - (Q - product1);
-        if (hh !== 0) {
-            h[hindex++] = hh;
-        }
-    }
-    if (Q !== 0 || hindex === 0) {
-        h[hindex++] = Q;
-    }
-    return hindex;
-}
-
-function negate(elen, e) {
-    for (let i = 0; i < elen; i++) e[i] = -e[i];
-    return elen;
-}
-
-function estimate(elen, e) {
-    let Q = e[0];
-    for (let i = 1; i < elen; i++) Q += e[i];
-    return Q;
-}
-
-function vec(n) {
-    return new Float64Array(n);
-}
-
-const ccwerrboundA = (3 + 16 * epsilon) * epsilon;
-const ccwerrboundB = (2 + 12 * epsilon) * epsilon;
-const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;
-
-const B = vec(4);
-const C1 = vec(8);
-const C2 = vec(12);
-const D = vec(16);
-const u$2 = vec(4);
-
-function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
-    let acxtail, acytail, bcxtail, bcytail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const acx = ax - cx;
-    const bcx = bx - cx;
-    const acy = ay - cy;
-    const bcy = by - cy;
-
-    s1 = acx * bcy;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcx;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    B[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    B[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    B[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    B[3] = u3;
-
-    let det = estimate(4, B);
-    let errbound = ccwerrboundB * detsum;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - acx;
-    acxtail = ax - (acx + bvirt) + (bvirt - cx);
-    bvirt = bx - bcx;
-    bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
-    bvirt = ay - acy;
-    acytail = ay - (acy + bvirt) + (bvirt - cy);
-    bvirt = by - bcy;
-    bcytail = by - (bcy + bvirt) + (bvirt - cy);
-
-    if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
-        return det;
-    }
-
-    errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);
-    det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
-    if (det >= errbound || -det >= errbound) return det;
-
-    s1 = acxtail * bcy;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcy;
-    bhi = c - (c - bcy);
-    blo = bcy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcx;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcx;
-    bhi = c - (c - bcx);
-    blo = bcx - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u$2[3] = u3;
-    const C1len = sum(4, B, 4, u$2, C1);
-
-    s1 = acx * bcytail;
-    c = splitter * acx;
-    ahi = c - (c - acx);
-    alo = acx - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acy * bcxtail;
-    c = splitter * acy;
-    ahi = c - (c - acy);
-    alo = acy - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u$2[3] = u3;
-    const C2len = sum(C1len, C1, 4, u$2, C2);
-
-    s1 = acxtail * bcytail;
-    c = splitter * acxtail;
-    ahi = c - (c - acxtail);
-    alo = acxtail - ahi;
-    c = splitter * bcytail;
-    bhi = c - (c - bcytail);
-    blo = bcytail - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = acytail * bcxtail;
-    c = splitter * acytail;
-    ahi = c - (c - acytail);
-    alo = acytail - ahi;
-    c = splitter * bcxtail;
-    bhi = c - (c - bcxtail);
-    blo = bcxtail - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    u$2[3] = u3;
-    const Dlen = sum(C2len, C2, 4, u$2, D);
-
-    return D[Dlen - 1];
-}
-
-function orient2d(ax, ay, bx, by, cx, cy) {
-    const detleft = (ay - cy) * (bx - cx);
-    const detright = (ax - cx) * (by - cy);
-    const det = detleft - detright;
-
-    const detsum = Math.abs(detleft + detright);
-    if (Math.abs(det) >= ccwerrboundA * detsum) return det;
-
-    return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
-}
-
-function orient2dfast(ax, ay, bx, by, cx, cy) {
-    return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);
-}
-
-const o3derrboundA = (7 + 56 * epsilon) * epsilon;
-const o3derrboundB = (3 + 28 * epsilon) * epsilon;
-const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;
-
-const bc$2 = vec(4);
-const ca$1 = vec(4);
-const ab$2 = vec(4);
-const at_b = vec(4);
-const at_c = vec(4);
-const bt_c = vec(4);
-const bt_a = vec(4);
-const ct_a = vec(4);
-const ct_b = vec(4);
-const bct$1 = vec(8);
-const cat$1 = vec(8);
-const abt$1 = vec(8);
-const u$1 = vec(4);
-
-const _8$2 = vec(8);
-const _8b$1 = vec(8);
-const _16$2 = vec(8);
-const _12 = vec(12);
-
-let fin$2 = vec(192);
-let fin2$1 = vec(192);
-
-function finadd$1(finlen, alen, a) {
-    finlen = sum(finlen, fin$2, alen, a, fin2$1);
-    const tmp = fin$2; fin$2 = fin2$1; fin2$1 = tmp;
-    return finlen;
-}
-
-function tailinit(xtail, ytail, ax, ay, bx, by, a, b) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3, negate;
-    if (xtail === 0) {
-        if (ytail === 0) {
-            a[0] = 0;
-            b[0] = 0;
-            return 1;
-        } else {
-            negate = -ytail;
-            s1 = negate * ax;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        }
-    } else {
-        if (ytail === 0) {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            a[1] = s1;
-            negate = -xtail;
-            s1 = negate * by;
-            c = splitter * negate;
-            ahi = c - (c - negate);
-            alo = negate - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            b[1] = s1;
-            return 2;
-        } else {
-            s1 = xtail * ay;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * ay;
-            bhi = c - (c - ay);
-            blo = ay - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = ytail * ax;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * ax;
-            bhi = c - (c - ax);
-            blo = ax - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            a[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            a[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            a[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            a[3] = u3;
-            s1 = ytail * bx;
-            c = splitter * ytail;
-            ahi = c - (c - ytail);
-            alo = ytail - ahi;
-            c = splitter * bx;
-            bhi = c - (c - bx);
-            blo = bx - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = xtail * by;
-            c = splitter * xtail;
-            ahi = c - (c - xtail);
-            alo = xtail - ahi;
-            c = splitter * by;
-            bhi = c - (c - by);
-            blo = by - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            b[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            b[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            b[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            b[3] = u3;
-            return 4;
-        }
-    }
-}
-
-function tailadd(finlen, a, b, k, z) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;
-    s1 = a * b;
-    c = splitter * a;
-    ahi = c - (c - a);
-    alo = a - ahi;
-    c = splitter * b;
-    bhi = c - (c - b);
-    blo = b - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    c = splitter * k;
-    bhi = c - (c - k);
-    blo = k - bhi;
-    _i = s0 * k;
-    c = splitter * s0;
-    ahi = c - (c - s0);
-    alo = s0 - ahi;
-    u$1[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-    _j = s1 * k;
-    c = splitter * s1;
-    ahi = c - (c - s1);
-    alo = s1 - ahi;
-    _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-    _k = _i + _0;
-    bvirt = _k - _i;
-    u$1[1] = _i - (_k - bvirt) + (_0 - bvirt);
-    u3 = _j + _k;
-    u$1[2] = _k - (u3 - _j);
-    u$1[3] = u3;
-    finlen = finadd$1(finlen, 4, u$1);
-    if (z !== 0) {
-        c = splitter * z;
-        bhi = c - (c - z);
-        blo = z - bhi;
-        _i = s0 * z;
-        c = splitter * s0;
-        ahi = c - (c - s0);
-        alo = s0 - ahi;
-        u$1[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
-        _j = s1 * z;
-        c = splitter * s1;
-        ahi = c - (c - s1);
-        alo = s1 - ahi;
-        _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
-        _k = _i + _0;
-        bvirt = _k - _i;
-        u$1[1] = _i - (_k - bvirt) + (_0 - bvirt);
-        u3 = _j + _k;
-        u$1[2] = _k - (u3 - _j);
-        u$1[3] = u3;
-        finlen = finadd$1(finlen, 4, u$1);
-    }
-    return finlen;
-}
-
-function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail;
-    let adytail, bdytail, cdytail;
-    let adztail, bdztail, cdztail;
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc$2[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca$1[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab$2[3] = u3;
-
-    finlen = sum(
-        sum(
-            scale(4, bc$2, adz, _8$2), _8$2,
-            scale(4, ca$1, bdz, _8b$1), _8b$1, _16$2), _16$2,
-        scale(4, ab$2, cdz, _8$2), _8$2, fin$2);
-
-    let det = estimate(finlen, fin$2);
-    let errbound = o3derrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    bvirt = az - adz;
-    adztail = az - (adz + bvirt) + (bvirt - dz);
-    bvirt = bz - bdz;
-    bdztail = bz - (bdz + bvirt) + (bvirt - dz);
-    bvirt = cz - cdz;
-    cdztail = cz - (cdz + bvirt) + (bvirt - dz);
-
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 &&
-        adytail === 0 && bdytail === 0 && cdytail === 0 &&
-        adztail === 0 && bdztail === 0 && cdztail === 0) {
-        return det;
-    }
-
-    errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det);
-    det +=
-        adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) +
-        bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) +
-        cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);
-    const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
-    const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
-
-    const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct$1);
-    finlen = finadd$1(finlen, scale(bctlen, bct$1, adz, _16$2), _16$2);
-
-    const catlen = sum(ct_len, ct_a, at_len, at_c, cat$1);
-    finlen = finadd$1(finlen, scale(catlen, cat$1, bdz, _16$2), _16$2);
-
-    const abtlen = sum(at_len, at_b, bt_len, bt_a, abt$1);
-    finlen = finadd$1(finlen, scale(abtlen, abt$1, cdz, _16$2), _16$2);
-
-    if (adztail !== 0) {
-        finlen = finadd$1(finlen, scale(4, bc$2, adztail, _12), _12);
-        finlen = finadd$1(finlen, scale(bctlen, bct$1, adztail, _16$2), _16$2);
-    }
-    if (bdztail !== 0) {
-        finlen = finadd$1(finlen, scale(4, ca$1, bdztail, _12), _12);
-        finlen = finadd$1(finlen, scale(catlen, cat$1, bdztail, _16$2), _16$2);
-    }
-    if (cdztail !== 0) {
-        finlen = finadd$1(finlen, scale(4, ab$2, cdztail, _12), _12);
-        finlen = finadd$1(finlen, scale(abtlen, abt$1, cdztail, _16$2), _16$2);
-    }
-
-    if (adxtail !== 0) {
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);
-        }
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);
-        }
-    }
-    if (bdxtail !== 0) {
-        if (cdytail !== 0) {
-            finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);
-        }
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);
-        }
-    }
-    if (cdxtail !== 0) {
-        if (adytail !== 0) {
-            finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);
-        }
-        if (bdytail !== 0) {
-            finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);
-        }
-    }
-
-    return fin$2[finlen - 1];
-}
-
-function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-
-    const det =
-        adz * (bdxcdy - cdxbdy) +
-        bdz * (cdxady - adxcdy) +
-        cdz * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);
-
-    const errbound = o3derrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-
-    return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);
-}
-
-function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-    const adz = az - dz;
-    const bdz = bz - dz;
-    const cdz = cz - dz;
-
-    return adx * (bdy * cdz - bdz * cdy) +
-        bdx * (cdy * adz - cdz * ady) +
-        cdx * (ady * bdz - adz * bdy);
-}
-
-const iccerrboundA = (10 + 96 * epsilon) * epsilon;
-const iccerrboundB = (4 + 48 * epsilon) * epsilon;
-const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
-
-const bc$1 = vec(4);
-const ca = vec(4);
-const ab$1 = vec(4);
-const aa = vec(4);
-const bb = vec(4);
-const cc = vec(4);
-const u = vec(4);
-const v = vec(4);
-const axtbc = vec(8);
-const aytbc = vec(8);
-const bxtca = vec(8);
-const bytca = vec(8);
-const cxtab = vec(8);
-const cytab = vec(8);
-const abt = vec(8);
-const bct = vec(8);
-const cat = vec(8);
-const abtt = vec(4);
-const bctt = vec(4);
-const catt = vec(4);
-
-const _8$1 = vec(8);
-const _16$1 = vec(16);
-const _16b = vec(16);
-const _16c = vec(16);
-const _32 = vec(32);
-const _32b = vec(32);
-const _48$1 = vec(48);
-const _64 = vec(64);
-
-let fin$1 = vec(1152);
-let fin2 = vec(1152);
-
-function finadd(finlen, a, alen) {
-    finlen = sum(finlen, fin$1, a, alen, fin2);
-    const tmp = fin$1; fin$1 = fin2; fin2 = tmp;
-    return finlen;
-}
-
-function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
-    let finlen;
-    let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
-    let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
-    let abtlen, bctlen, catlen;
-    let abttlen, bcttlen, cattlen;
-    let n1, n0;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    s1 = bdx * cdy;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cdx * bdy;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc$1[3] = u3;
-    s1 = cdx * ady;
-    c = splitter * cdx;
-    ahi = c - (c - cdx);
-    alo = cdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = adx * cdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * cdy;
-    bhi = c - (c - cdy);
-    blo = cdy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ca[3] = u3;
-    s1 = adx * bdy;
-    c = splitter * adx;
-    ahi = c - (c - adx);
-    alo = adx - ahi;
-    c = splitter * bdy;
-    bhi = c - (c - bdy);
-    blo = bdy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bdx * ady;
-    c = splitter * bdx;
-    ahi = c - (c - bdx);
-    alo = bdx - ahi;
-    c = splitter * ady;
-    bhi = c - (c - ady);
-    blo = ady - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab$1[3] = u3;
-
-    finlen = sum(
-        sum(
-            sum(
-                scale(scale(4, bc$1, adx, _8$1), _8$1, adx, _16$1), _16$1,
-                scale(scale(4, bc$1, ady, _8$1), _8$1, ady, _16b), _16b, _32), _32,
-            sum(
-                scale(scale(4, ca, bdx, _8$1), _8$1, bdx, _16$1), _16$1,
-                scale(scale(4, ca, bdy, _8$1), _8$1, bdy, _16b), _16b, _32b), _32b, _64), _64,
-        sum(
-            scale(scale(4, ab$1, cdx, _8$1), _8$1, cdx, _16$1), _16$1,
-            scale(scale(4, ab$1, cdy, _8$1), _8$1, cdy, _16b), _16b, _32), _32, fin$1);
-
-    let det = estimate(finlen, fin$1);
-    let errbound = iccerrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - adx;
-    adxtail = ax - (adx + bvirt) + (bvirt - dx);
-    bvirt = ay - ady;
-    adytail = ay - (ady + bvirt) + (bvirt - dy);
-    bvirt = bx - bdx;
-    bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
-    bvirt = by - bdy;
-    bdytail = by - (bdy + bvirt) + (bvirt - dy);
-    bvirt = cx - cdx;
-    cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
-    bvirt = cy - cdy;
-    cdytail = cy - (cdy + bvirt) + (bvirt - dy);
-    if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
-        return det;
-    }
-
-    errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);
-    det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +
-        2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +
-        ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +
-        2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +
-        ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +
-        2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-        s1 = adx * adx;
-        c = splitter * adx;
-        ahi = c - (c - adx);
-        alo = adx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = ady * ady;
-        c = splitter * ady;
-        ahi = c - (c - ady);
-        alo = ady - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        aa[3] = u3;
-    }
-    if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-        s1 = bdx * bdx;
-        c = splitter * bdx;
-        ahi = c - (c - bdx);
-        alo = bdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = bdy * bdy;
-        c = splitter * bdy;
-        ahi = c - (c - bdy);
-        alo = bdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        bb[3] = u3;
-    }
-    if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-        s1 = cdx * cdx;
-        c = splitter * cdx;
-        ahi = c - (c - cdx);
-        alo = cdx - ahi;
-        s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
-        t1 = cdy * cdy;
-        c = splitter * cdy;
-        ahi = c - (c - cdy);
-        alo = cdy - ahi;
-        t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
-        _i = s0 + t0;
-        bvirt = _i - s0;
-        cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-        _j = s1 + _i;
-        bvirt = _j - s1;
-        _0 = s1 - (_j - bvirt) + (_i - bvirt);
-        _i = _0 + t1;
-        bvirt = _i - _0;
-        cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-        u3 = _j + _i;
-        bvirt = u3 - _j;
-        cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-        cc[3] = u3;
-    }
-
-    if (adxtail !== 0) {
-        axtbclen = scale(4, bc$1, adxtail, axtbc);
-        finlen = finadd(finlen, sum_three(
-            scale(axtbclen, axtbc, 2 * adx, _16$1), _16$1,
-            scale(scale(4, cc, adxtail, _8$1), _8$1, bdy, _16b), _16b,
-            scale(scale(4, bb, adxtail, _8$1), _8$1, -cdy, _16c), _16c, _32, _48$1), _48$1);
-    }
-    if (adytail !== 0) {
-        aytbclen = scale(4, bc$1, adytail, aytbc);
-        finlen = finadd(finlen, sum_three(
-            scale(aytbclen, aytbc, 2 * ady, _16$1), _16$1,
-            scale(scale(4, bb, adytail, _8$1), _8$1, cdx, _16b), _16b,
-            scale(scale(4, cc, adytail, _8$1), _8$1, -bdx, _16c), _16c, _32, _48$1), _48$1);
-    }
-    if (bdxtail !== 0) {
-        bxtcalen = scale(4, ca, bdxtail, bxtca);
-        finlen = finadd(finlen, sum_three(
-            scale(bxtcalen, bxtca, 2 * bdx, _16$1), _16$1,
-            scale(scale(4, aa, bdxtail, _8$1), _8$1, cdy, _16b), _16b,
-            scale(scale(4, cc, bdxtail, _8$1), _8$1, -ady, _16c), _16c, _32, _48$1), _48$1);
-    }
-    if (bdytail !== 0) {
-        bytcalen = scale(4, ca, bdytail, bytca);
-        finlen = finadd(finlen, sum_three(
-            scale(bytcalen, bytca, 2 * bdy, _16$1), _16$1,
-            scale(scale(4, cc, bdytail, _8$1), _8$1, adx, _16b), _16b,
-            scale(scale(4, aa, bdytail, _8$1), _8$1, -cdx, _16c), _16c, _32, _48$1), _48$1);
-    }
-    if (cdxtail !== 0) {
-        cxtablen = scale(4, ab$1, cdxtail, cxtab);
-        finlen = finadd(finlen, sum_three(
-            scale(cxtablen, cxtab, 2 * cdx, _16$1), _16$1,
-            scale(scale(4, bb, cdxtail, _8$1), _8$1, ady, _16b), _16b,
-            scale(scale(4, aa, cdxtail, _8$1), _8$1, -bdy, _16c), _16c, _32, _48$1), _48$1);
-    }
-    if (cdytail !== 0) {
-        cytablen = scale(4, ab$1, cdytail, cytab);
-        finlen = finadd(finlen, sum_three(
-            scale(cytablen, cytab, 2 * cdy, _16$1), _16$1,
-            scale(scale(4, aa, cdytail, _8$1), _8$1, bdx, _16b), _16b,
-            scale(scale(4, bb, cdytail, _8$1), _8$1, -adx, _16c), _16c, _32, _48$1), _48$1);
-    }
-
-    if (adxtail !== 0 || adytail !== 0) {
-        if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
-            s1 = bdxtail * cdy;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdy;
-            bhi = c - (c - cdy);
-            blo = cdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * cdytail;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            s1 = cdxtail * -bdy;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * -bdy;
-            bhi = c - (c - -bdy);
-            blo = -bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * -bdytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * -bdytail;
-            bhi = c - (c - -bdytail);
-            blo = -bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            bctlen = sum(4, u, 4, v, bct);
-            s1 = bdxtail * cdytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdxtail * bdytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            bctt[3] = u3;
-            bcttlen = 4;
-        } else {
-            bct[0] = 0;
-            bctlen = 1;
-            bctt[0] = 0;
-            bcttlen = 1;
-        }
-        if (adxtail !== 0) {
-            const len = scale(bctlen, bct, adxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(axtbclen, axtbc, adxtail, _16$1), _16$1,
-                scale(len, _16c, 2 * adx, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(bcttlen, bctt, adxtail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * adx, _16$1), _16$1,
-                scale(len2, _8$1, adxtail, _16b), _16b,
-                scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
-
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
-            }
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
-            }
-        }
-        if (adytail !== 0) {
-            const len = scale(bctlen, bct, adytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(aytbclen, aytbc, adytail, _16$1), _16$1,
-                scale(len, _16c, 2 * ady, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(bcttlen, bctt, adytail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * ady, _16$1), _16$1,
-                scale(len2, _8$1, adytail, _16b), _16b,
-                scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
-        }
-    }
-    if (bdxtail !== 0 || bdytail !== 0) {
-        if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
-            s1 = cdxtail * ady;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * ady;
-            bhi = c - (c - ady);
-            blo = ady - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = cdx * adytail;
-            c = splitter * cdx;
-            ahi = c - (c - cdx);
-            alo = cdx - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -cdy;
-            n0 = -cdytail;
-            s1 = adxtail * n1;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * n0;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            catlen = sum(4, u, 4, v, cat);
-            s1 = cdxtail * adytail;
-            c = splitter * cdxtail;
-            ahi = c - (c - cdxtail);
-            alo = cdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adxtail * cdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * cdytail;
-            bhi = c - (c - cdytail);
-            blo = cdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            catt[3] = u3;
-            cattlen = 4;
-        } else {
-            cat[0] = 0;
-            catlen = 1;
-            catt[0] = 0;
-            cattlen = 1;
-        }
-        if (bdxtail !== 0) {
-            const len = scale(catlen, cat, bdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bxtcalen, bxtca, bdxtail, _16$1), _16$1,
-                scale(len, _16c, 2 * bdx, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(cattlen, catt, bdxtail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * bdx, _16$1), _16$1,
-                scale(len2, _8$1, bdxtail, _16b), _16b,
-                scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
-
-            if (cdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
-            }
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
-            }
-        }
-        if (bdytail !== 0) {
-            const len = scale(catlen, cat, bdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(bytcalen, bytca, bdytail, _16$1), _16$1,
-                scale(len, _16c, 2 * bdy, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(cattlen, catt, bdytail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * bdy, _16$1), _16$1,
-                scale(len2, _8$1, bdytail, _16b), _16b,
-                scale(len, _16c, bdytail, _32), _32,  _32b, _64), _64);
-        }
-    }
-    if (cdxtail !== 0 || cdytail !== 0) {
-        if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
-            s1 = adxtail * bdy;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdy;
-            bhi = c - (c - bdy);
-            blo = bdy - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = adx * bdytail;
-            c = splitter * adx;
-            ahi = c - (c - adx);
-            alo = adx - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            u[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            u[3] = u3;
-            n1 = -ady;
-            n0 = -adytail;
-            s1 = bdxtail * n1;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * n1;
-            bhi = c - (c - n1);
-            blo = n1 - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdx * n0;
-            c = splitter * bdx;
-            ahi = c - (c - bdx);
-            alo = bdx - ahi;
-            c = splitter * n0;
-            bhi = c - (c - n0);
-            blo = n0 - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 + t0;
-            bvirt = _i - s0;
-            v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 + t1;
-            bvirt = _i - _0;
-            v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            v[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            v[3] = u3;
-            abtlen = sum(4, u, 4, v, abt);
-            s1 = adxtail * bdytail;
-            c = splitter * adxtail;
-            ahi = c - (c - adxtail);
-            alo = adxtail - ahi;
-            c = splitter * bdytail;
-            bhi = c - (c - bdytail);
-            blo = bdytail - bhi;
-            s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-            t1 = bdxtail * adytail;
-            c = splitter * bdxtail;
-            ahi = c - (c - bdxtail);
-            alo = bdxtail - ahi;
-            c = splitter * adytail;
-            bhi = c - (c - adytail);
-            blo = adytail - bhi;
-            t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-            _i = s0 - t0;
-            bvirt = s0 - _i;
-            abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
-            _j = s1 + _i;
-            bvirt = _j - s1;
-            _0 = s1 - (_j - bvirt) + (_i - bvirt);
-            _i = _0 - t1;
-            bvirt = _0 - _i;
-            abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
-            u3 = _j + _i;
-            bvirt = u3 - _j;
-            abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
-            abtt[3] = u3;
-            abttlen = 4;
-        } else {
-            abt[0] = 0;
-            abtlen = 1;
-            abtt[0] = 0;
-            abttlen = 1;
-        }
-        if (cdxtail !== 0) {
-            const len = scale(abtlen, abt, cdxtail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cxtablen, cxtab, cdxtail, _16$1), _16$1,
-                scale(len, _16c, 2 * cdx, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(abttlen, abtt, cdxtail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * cdx, _16$1), _16$1,
-                scale(len2, _8$1, cdxtail, _16b), _16b,
-                scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
-
-            if (adytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
-            }
-            if (bdytail !== 0) {
-                finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
-            }
-        }
-        if (cdytail !== 0) {
-            const len = scale(abtlen, abt, cdytail, _16c);
-            finlen = finadd(finlen, sum(
-                scale(cytablen, cytab, cdytail, _16$1), _16$1,
-                scale(len, _16c, 2 * cdy, _32), _32, _48$1), _48$1);
-
-            const len2 = scale(abttlen, abtt, cdytail, _8$1);
-            finlen = finadd(finlen, sum_three(
-                scale(len2, _8$1, 2 * cdy, _16$1), _16$1,
-                scale(len2, _8$1, cdytail, _16b), _16b,
-                scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
-        }
-    }
-
-    return fin$1[finlen - 1];
-}
-
-function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const bdx = bx - dx;
-    const cdx = cx - dx;
-    const ady = ay - dy;
-    const bdy = by - dy;
-    const cdy = cy - dy;
-
-    const bdxcdy = bdx * cdy;
-    const cdxbdy = cdx * bdy;
-    const alift = adx * adx + ady * ady;
-
-    const cdxady = cdx * ady;
-    const adxcdy = adx * cdy;
-    const blift = bdx * bdx + bdy * bdy;
-
-    const adxbdy = adx * bdy;
-    const bdxady = bdx * ady;
-    const clift = cdx * cdx + cdy * cdy;
-
-    const det =
-        alift * (bdxcdy - cdxbdy) +
-        blift * (cdxady - adxcdy) +
-        clift * (adxbdy - bdxady);
-
-    const permanent =
-        (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +
-        (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +
-        (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
-
-    const errbound = iccerrboundA * permanent;
-
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
-}
-
-function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
-    const adx = ax - dx;
-    const ady = ay - dy;
-    const bdx = bx - dx;
-    const bdy = by - dy;
-    const cdx = cx - dx;
-    const cdy = cy - dy;
-
-    const abdet = adx * bdy - bdx * ady;
-    const bcdet = bdx * cdy - cdx * bdy;
-    const cadet = cdx * ady - adx * cdy;
-    const alift = adx * adx + ady * ady;
-    const blift = bdx * bdx + bdy * bdy;
-    const clift = cdx * cdx + cdy * cdy;
-
-    return alift * bcdet + blift * cadet + clift * abdet;
-}
-
-const isperrboundA = (16 + 224 * epsilon) * epsilon;
-const isperrboundB = (5 + 72 * epsilon) * epsilon;
-const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;
-
-const ab = vec(4);
-const bc = vec(4);
-const cd = vec(4);
-const de = vec(4);
-const ea = vec(4);
-const ac = vec(4);
-const bd = vec(4);
-const ce = vec(4);
-const da = vec(4);
-const eb = vec(4);
-
-const abc = vec(24);
-const bcd = vec(24);
-const cde = vec(24);
-const dea = vec(24);
-const eab = vec(24);
-const abd = vec(24);
-const bce = vec(24);
-const cda = vec(24);
-const deb = vec(24);
-const eac = vec(24);
-
-const adet = vec(1152);
-const bdet = vec(1152);
-const cdet = vec(1152);
-const ddet = vec(1152);
-const edet = vec(1152);
-const abdet = vec(2304);
-const cddet = vec(2304);
-const cdedet = vec(3456);
-const deter = vec(5760);
-
-const _8 = vec(8);
-const _8b = vec(8);
-const _8c = vec(8);
-const _16 = vec(16);
-const _24 = vec(24);
-const _48 = vec(48);
-const _48b = vec(48);
-const _96 = vec(96);
-const _192 = vec(192);
-const _384x = vec(384);
-const _384y = vec(384);
-const _384z = vec(384);
-const _768 = vec(768);
-
-function sum_three_scale(a, b, c, az, bz, cz, out) {
-    return sum_three(
-        scale(4, a, az, _8), _8,
-        scale(4, b, bz, _8b), _8b,
-        scale(4, c, cz, _8c), _8c, _16, out);
-}
-
-function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
-    const len = sum(
-        sum(alen, a, blen, b, _48), _48,
-        negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);
-
-    return sum_three(
-        scale(scale(len, _96, x, _192), _192, x, _384x), _384x,
-        scale(scale(len, _96, y, _192), _192, y, _384y), _384y,
-        scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);
-}
-
-function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
-
-    s1 = ax * by;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ay;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ab[3] = u3;
-    s1 = bx * cy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * by;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bc[3] = u3;
-    s1 = cx * dy;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * cy;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    cd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    cd[3] = u3;
-    s1 = dx * ey;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * dy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    de[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    de[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    de[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    de[3] = u3;
-    s1 = ex * ay;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * ey;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ea[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ea[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ea[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ea[3] = u3;
-    s1 = ax * cy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cx * ay;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ac[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ac[3] = u3;
-    s1 = bx * dy;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dx * by;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    bd[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    bd[3] = u3;
-    s1 = cx * ey;
-    c = splitter * cx;
-    ahi = c - (c - cx);
-    alo = cx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ex * cy;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * cy;
-    bhi = c - (c - cy);
-    blo = cy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ce[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ce[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    ce[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    ce[3] = u3;
-    s1 = dx * ay;
-    c = splitter * dx;
-    ahi = c - (c - dx);
-    alo = dx - ahi;
-    c = splitter * ay;
-    bhi = c - (c - ay);
-    blo = ay - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = ax * dy;
-    c = splitter * ax;
-    ahi = c - (c - ax);
-    alo = ax - ahi;
-    c = splitter * dy;
-    bhi = c - (c - dy);
-    blo = dy - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    da[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    da[3] = u3;
-    s1 = ex * by;
-    c = splitter * ex;
-    ahi = c - (c - ex);
-    alo = ex - ahi;
-    c = splitter * by;
-    bhi = c - (c - by);
-    blo = by - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bx * ey;
-    c = splitter * bx;
-    ahi = c - (c - bx);
-    alo = bx - ahi;
-    c = splitter * ey;
-    bhi = c - (c - ey);
-    blo = ey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    eb[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    eb[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    u3 = _j + _i;
-    bvirt = u3 - _j;
-    eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
-    eb[3] = u3;
-
-    const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
-    const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
-    const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
-    const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
-    const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
-    const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
-    const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
-    const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
-    const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
-    const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
-
-    const deterlen = sum_three(
-        liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,
-        liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,
-        sum_three(
-            liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,
-            liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,
-            liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);
-
-    return deter[deterlen - 1];
-}
-
-const xdet = vec(96);
-const ydet = vec(96);
-const zdet = vec(96);
-const fin = vec(1152);
-
-function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
-    const len = sum_three_scale(a, b, c, az, bz, cz, _24);
-    return sum_three(
-        scale(scale(len, _24, x, _48), _48, x, xdet), xdet,
-        scale(scale(len, _24, y, _48), _48, y, ydet), ydet,
-        scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
-}
-
-function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
-    let ab3, bc3, cd3, da3, ac3, bd3;
-
-    let aextail, bextail, cextail, dextail;
-    let aeytail, beytail, ceytail, deytail;
-    let aeztail, beztail, ceztail, deztail;
-
-    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;
-
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    s1 = aex * bey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = bex * aey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ab3 = _j + _i;
-    bvirt = ab3 - _j;
-    ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
-    ab[3] = ab3;
-    s1 = bex * cey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * bey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bc3 = _j + _i;
-    bvirt = bc3 - _j;
-    bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
-    bc[3] = bc3;
-    s1 = cex * dey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * cey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    cd3 = _j + _i;
-    bvirt = cd3 - _j;
-    cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);
-    cd[3] = cd3;
-    s1 = dex * aey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = aex * dey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    da[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    da[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    da3 = _j + _i;
-    bvirt = da3 - _j;
-    da[2] = _j - (da3 - bvirt) + (_i - bvirt);
-    da[3] = da3;
-    s1 = aex * cey;
-    c = splitter * aex;
-    ahi = c - (c - aex);
-    alo = aex - ahi;
-    c = splitter * cey;
-    bhi = c - (c - cey);
-    blo = cey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = cex * aey;
-    c = splitter * cex;
-    ahi = c - (c - cex);
-    alo = cex - ahi;
-    c = splitter * aey;
-    bhi = c - (c - aey);
-    blo = aey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    ac3 = _j + _i;
-    bvirt = ac3 - _j;
-    ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);
-    ac[3] = ac3;
-    s1 = bex * dey;
-    c = splitter * bex;
-    ahi = c - (c - bex);
-    alo = bex - ahi;
-    c = splitter * dey;
-    bhi = c - (c - dey);
-    blo = dey - bhi;
-    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
-    t1 = dex * bey;
-    c = splitter * dex;
-    ahi = c - (c - dex);
-    alo = dex - ahi;
-    c = splitter * bey;
-    bhi = c - (c - bey);
-    blo = bey - bhi;
-    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
-    _i = s0 - t0;
-    bvirt = s0 - _i;
-    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
-    _j = s1 + _i;
-    bvirt = _j - s1;
-    _0 = s1 - (_j - bvirt) + (_i - bvirt);
-    _i = _0 - t1;
-    bvirt = _0 - _i;
-    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
-    bd3 = _j + _i;
-    bvirt = bd3 - _j;
-    bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);
-    bd[3] = bd3;
-
-    const finlen = sum(
-        sum(
-            negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,
-            liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,
-        sum(
-            negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,
-            liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
-
-    let det = estimate(finlen, fin);
-    let errbound = isperrboundB * permanent;
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    bvirt = ax - aex;
-    aextail = ax - (aex + bvirt) + (bvirt - ex);
-    bvirt = ay - aey;
-    aeytail = ay - (aey + bvirt) + (bvirt - ey);
-    bvirt = az - aez;
-    aeztail = az - (aez + bvirt) + (bvirt - ez);
-    bvirt = bx - bex;
-    bextail = bx - (bex + bvirt) + (bvirt - ex);
-    bvirt = by - bey;
-    beytail = by - (bey + bvirt) + (bvirt - ey);
-    bvirt = bz - bez;
-    beztail = bz - (bez + bvirt) + (bvirt - ez);
-    bvirt = cx - cex;
-    cextail = cx - (cex + bvirt) + (bvirt - ex);
-    bvirt = cy - cey;
-    ceytail = cy - (cey + bvirt) + (bvirt - ey);
-    bvirt = cz - cez;
-    ceztail = cz - (cez + bvirt) + (bvirt - ez);
-    bvirt = dx - dex;
-    dextail = dx - (dex + bvirt) + (bvirt - ex);
-    bvirt = dy - dey;
-    deytail = dy - (dey + bvirt) + (bvirt - ey);
-    bvirt = dz - dez;
-    deztail = dz - (dez + bvirt) + (bvirt - ez);
-    if (aextail === 0 && aeytail === 0 && aeztail === 0 &&
-        bextail === 0 && beytail === 0 && beztail === 0 &&
-        cextail === 0 && ceytail === 0 && ceztail === 0 &&
-        dextail === 0 && deytail === 0 && deztail === 0) {
-        return det;
-    }
-
-    errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);
-
-    const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);
-    const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);
-    const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);
-    const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);
-    const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);
-    const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);
-    det +=
-        (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +
-        (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *
-        ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -
-        ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +
-        (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *
-        ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +
-        2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +
-        (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -
-        ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +
-        (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));
-
-    if (det >= errbound || -det >= errbound) {
-        return det;
-    }
-
-    return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);
-}
-
-function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
-    const aex = ax - ex;
-    const bex = bx - ex;
-    const cex = cx - ex;
-    const dex = dx - ex;
-    const aey = ay - ey;
-    const bey = by - ey;
-    const cey = cy - ey;
-    const dey = dy - ey;
-    const aez = az - ez;
-    const bez = bz - ez;
-    const cez = cz - ez;
-    const dez = dz - ez;
-
-    const aexbey = aex * bey;
-    const bexaey = bex * aey;
-    const ab = aexbey - bexaey;
-    const bexcey = bex * cey;
-    const cexbey = cex * bey;
-    const bc = bexcey - cexbey;
-    const cexdey = cex * dey;
-    const dexcey = dex * cey;
-    const cd = cexdey - dexcey;
-    const dexaey = dex * aey;
-    const aexdey = aex * dey;
-    const da = dexaey - aexdey;
-    const aexcey = aex * cey;
-    const cexaey = cex * aey;
-    const ac = aexcey - cexaey;
-    const bexdey = bex * dey;
-    const dexbey = dex * bey;
-    const bd = bexdey - dexbey;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    const det =
-        (clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab)) +
-        (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd));
-
-    const aezplus = Math.abs(aez);
-    const bezplus = Math.abs(bez);
-    const cezplus = Math.abs(cez);
-    const dezplus = Math.abs(dez);
-    const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey);
-    const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey);
-    const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey);
-    const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey);
-    const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey);
-    const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey);
-    const permanent =
-        (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift +
-        (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift +
-        (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift +
-        (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift;
-
-    const errbound = isperrboundA * permanent;
-    if (det > errbound || -det > errbound) {
-        return det;
-    }
-    return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);
-}
-
-function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {
-    const aex = pax - pex;
-    const bex = pbx - pex;
-    const cex = pcx - pex;
-    const dex = pdx - pex;
-    const aey = pay - pey;
-    const bey = pby - pey;
-    const cey = pcy - pey;
-    const dey = pdy - pey;
-    const aez = paz - pez;
-    const bez = pbz - pez;
-    const cez = pcz - pez;
-    const dez = pdz - pez;
-
-    const ab = aex * bey - bex * aey;
-    const bc = bex * cey - cex * bey;
-    const cd = cex * dey - dex * cey;
-    const da = dex * aey - aex * dey;
-    const ac = aex * cey - cex * aey;
-    const bd = bex * dey - dex * bey;
-
-    const abc = aez * bc - bez * ac + cez * ab;
-    const bcd = bez * cd - cez * bd + dez * bc;
-    const cda = cez * da + dez * ac + aez * cd;
-    const dab = dez * ab + aez * bd + bez * da;
-
-    const alift = aex * aex + aey * aey + aez * aez;
-    const blift = bex * bex + bey * bey + bez * bez;
-    const clift = cex * cex + cey * cey + cez * cez;
-    const dlift = dex * dex + dey * dey + dez * dez;
-
-    return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);
-}
-
-exports.incircle = incircle;
-exports.incirclefast = incirclefast;
-exports.insphere = insphere;
-exports.inspherefast = inspherefast;
-exports.orient2d = orient2d;
-exports.orient2dfast = orient2dfast;
-exports.orient3d = orient3d;
-exports.orient3dfast = orient3dfast;
-
-}));
Index: de_modules/robust-predicates/umd/predicates.min.js
===================================================================
--- node_modules/robust-predicates/umd/predicates.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).predicates={})}(this,(function(t){"use strict";const n=11102230246251565e-32,e=134217729,r=(3+8*n)*n;function s(t,n,e,r,s){let o,a,c,f,i=n[0],u=r[0],h=0,b=0;u>i==u>-i?(o=i,i=n[++h]):(o=u,u=r[++b]);let M=0;if(h<t&&b<e)for(u>i==u>-i?(a=i+o,c=o-(a-i),i=n[++h]):(a=u+o,c=o-(a-u),u=r[++b]),o=a,0!==c&&(s[M++]=c);h<t&&b<e;)u>i==u>-i?(a=o+i,f=a-o,c=o-(a-f)+(i-f),i=n[++h]):(a=o+u,f=a-o,c=o-(a-f)+(u-f),u=r[++b]),o=a,0!==c&&(s[M++]=c);for(;h<t;)a=o+i,f=a-o,c=o-(a-f)+(i-f),i=n[++h],o=a,0!==c&&(s[M++]=c);for(;b<e;)a=o+u,f=a-o,c=o-(a-f)+(u-f),u=r[++b],o=a,0!==c&&(s[M++]=c);return 0===o&&0!==M||(s[M++]=o),M}function o(t,n,e,r,o,a,c,f){return s(s(t,n,e,r,c),c,o,a,f)}function a(t,n,r,s){let o,a,c,f,i,u,h,b,M,l,d;h=e*r,l=h-(h-r),d=r-l;let p=n[0];o=p*r,h=e*p,b=h-(h-p),M=p-b,c=M*d-(o-b*l-M*l-b*d);let y=0;0!==c&&(s[y++]=c);for(let x=1;x<t;x++)p=n[x],f=p*r,h=e*p,b=h-(h-p),M=p-b,i=M*d-(f-b*l-M*l-b*d),a=o+i,u=a-o,c=o-(a-u)+(i-u),0!==c&&(s[y++]=c),o=f+a,c=a-(o-f),0!==c&&(s[y++]=c);return 0===o&&0!==y||(s[y++]=o),y}function c(t,n){for(let e=0;e<t;e++)n[e]=-n[e];return t}function f(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}function i(t){return new Float64Array(t)}const u=22204460492503146e-32,h=11093356479670487e-47,b=i(4),M=i(8),l=i(12),d=i(16),p=i(4);const y=3330669073875473e-31,x=32047474274603644e-47,g=i(4),m=i(4),T=i(4),j=i(4),w=i(4),A=i(4),F=i(4),k=i(4),q=i(4),v=i(8),z=i(8),B=i(8),C=i(4),D=i(8),E=i(8),G=i(8),H=i(12);let I=i(192),J=i(192);function K(t,n,e){t=s(t,I,n,e,J);const r=I;return I=J,J=r,t}function L(t,n,r,s,o,a,c,f){let i,u,h,b,M,l,d,p,y,x,g,m,T,j,w;return 0===t?0===n?(c[0]=0,f[0]=0,1):(w=-n,x=w*r,u=e*w,h=u-(u-w),b=w-h,u=e*r,M=u-(u-r),l=r-M,c[0]=b*l-(x-h*M-b*M-h*l),c[1]=x,x=n*o,u=e*n,h=u-(u-n),b=n-h,u=e*o,M=u-(u-o),l=o-M,f[0]=b*l-(x-h*M-b*M-h*l),f[1]=x,2):0===n?(x=t*s,u=e*t,h=u-(u-t),b=t-h,u=e*s,M=u-(u-s),l=s-M,c[0]=b*l-(x-h*M-b*M-h*l),c[1]=x,w=-t,x=w*a,u=e*w,h=u-(u-w),b=w-h,u=e*a,M=u-(u-a),l=a-M,f[0]=b*l-(x-h*M-b*M-h*l),f[1]=x,2):(x=t*s,u=e*t,h=u-(u-t),b=t-h,u=e*s,M=u-(u-s),l=s-M,g=b*l-(x-h*M-b*M-h*l),m=n*r,u=e*n,h=u-(u-n),b=n-h,u=e*r,M=u-(u-r),l=r-M,T=b*l-(m-h*M-b*M-h*l),d=g-T,i=g-d,c[0]=g-(d+i)+(i-T),p=x+d,i=p-x,y=x-(p-i)+(d-i),d=y-m,i=y-d,c[1]=y-(d+i)+(i-m),j=p+d,i=j-p,c[2]=p-(j-i)+(d-i),c[3]=j,x=n*o,u=e*n,h=u-(u-n),b=n-h,u=e*o,M=u-(u-o),l=o-M,g=b*l-(x-h*M-b*M-h*l),m=t*a,u=e*t,h=u-(u-t),b=t-h,u=e*a,M=u-(u-a),l=a-M,T=b*l-(m-h*M-b*M-h*l),d=g-T,i=g-d,f[0]=g-(d+i)+(i-T),p=x+d,i=p-x,y=x-(p-i)+(d-i),d=y-m,i=y-d,f[1]=y-(d+i)+(i-m),j=p+d,i=j-p,f[2]=p-(j-i)+(d-i),f[3]=j,4)}function N(t,n,r,s,o){let a,c,f,i,u,h,b,M,l,d,p,y,x;return p=n*r,c=e*n,f=c-(c-n),i=n-f,c=e*r,u=c-(c-r),h=r-u,y=i*h-(p-f*u-i*u-f*h),c=e*s,u=c-(c-s),h=s-u,b=y*s,c=e*y,f=c-(c-y),i=y-f,C[0]=i*h-(b-f*u-i*u-f*h),M=p*s,c=e*p,f=c-(c-p),i=p-f,d=i*h-(M-f*u-i*u-f*h),l=b+d,a=l-b,C[1]=b-(l-a)+(d-a),x=M+l,C[2]=l-(x-M),C[3]=x,t=K(t,4,C),0!==o&&(c=e*o,u=c-(c-o),h=o-u,b=y*o,c=e*y,f=c-(c-y),i=y-f,C[0]=i*h-(b-f*u-i*u-f*h),M=p*o,c=e*p,f=c-(c-p),i=p-f,d=i*h-(M-f*u-i*u-f*h),l=b+d,a=l-b,C[1]=b-(l-a)+(d-a),x=M+l,C[2]=l-(x-M),C[3]=x,t=K(t,4,C)),t}const O=4440892098500632e-31,P=5423418723394464e-46,Q=i(4),R=i(4),S=i(4),U=i(4),V=i(4),W=i(4),X=i(4),Y=i(4),Z=i(8),$=i(8),_=i(8),tt=i(8),nt=i(8),et=i(8),rt=i(8),st=i(8),ot=i(8),at=i(4),ct=i(4),ft=i(4),it=i(8),ut=i(16),ht=i(16),bt=i(16),Mt=i(32),lt=i(32),dt=i(48),pt=i(64);let yt=i(1152),xt=i(1152);function gt(t,n,e){t=s(t,yt,n,e,xt);const r=yt;return yt=xt,xt=r,t}const mt=5551115123125792e-31,Tt=8751425667295619e-46,jt=i(4),wt=i(4),At=i(4),Ft=i(4),kt=i(4),qt=i(4),vt=i(4),zt=i(4),Bt=i(4),Ct=i(4),Dt=i(24),Et=i(24),Gt=i(24),Ht=i(24),It=i(24),Jt=i(24),Kt=i(24),Lt=i(24),Nt=i(24),Ot=i(24),Pt=i(1152),Qt=i(1152),Rt=i(1152),St=i(1152),Ut=i(1152),Vt=i(2304),Wt=i(2304),Xt=i(3456),Yt=i(5760),Zt=i(8),$t=i(8),_t=i(8),tn=i(16),nn=i(24),en=i(48),rn=i(48),sn=i(96),on=i(192),an=i(384),cn=i(384),fn=i(384),un=i(768);function hn(t,n,e,r,s,c,f){return o(a(4,t,r,Zt),Zt,a(4,n,s,$t),$t,a(4,e,c,_t),_t,tn,f)}function bn(t,n,e,r,f,i,u,h,b,M,l,d){const p=s(s(t,n,e,r,en),en,c(s(f,i,u,h,rn),rn),rn,sn);return o(a(a(p,sn,b,on),on,b,an),an,a(a(p,sn,M,on),on,M,cn),cn,a(a(p,sn,l,on),on,l,fn),fn,un,d)}const Mn=i(96),ln=i(96),dn=i(96),pn=i(1152);function yn(t,n,e,r,s,c,f,i,u,h){const b=hn(t,n,e,r,s,c,nn);return o(a(a(b,nn,f,en),en,f,Mn),Mn,a(a(b,nn,i,en),en,i,ln),ln,a(a(b,nn,u,en),en,u,dn),dn,on,h)}function xn(t,n,a,i,u,h,b,M,l,d,p,y,x,g,m,T){let j,w,A,F,k,q,v,z,B,C,D,E,G,H,I,J,K,L,N,O,P,Q,R,S,U,V,W,X,Y,Z,$;const _=t-x,tt=i-x,nt=b-x,et=d-x,rt=n-g,st=u-g,ot=M-g,at=p-g,ct=a-m,ft=h-m,it=l-m,ut=y-m;X=_*st,O=e*_,P=O-(O-_),Q=_-P,O=e*st,R=O-(O-st),S=st-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=tt*rt,O=e*tt,P=O-(O-tt),Q=tt-P,O=e*rt,R=O-(O-rt),S=rt-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,jt[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,jt[1]=W-(U+N)+(N-Z),j=V+U,N=j-V,jt[2]=V-(j-N)+(U-N),jt[3]=j,X=tt*ot,O=e*tt,P=O-(O-tt),Q=tt-P,O=e*ot,R=O-(O-ot),S=ot-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=nt*st,O=e*nt,P=O-(O-nt),Q=nt-P,O=e*st,R=O-(O-st),S=st-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,wt[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,wt[1]=W-(U+N)+(N-Z),w=V+U,N=w-V,wt[2]=V-(w-N)+(U-N),wt[3]=w,X=nt*at,O=e*nt,P=O-(O-nt),Q=nt-P,O=e*at,R=O-(O-at),S=at-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=et*ot,O=e*et,P=O-(O-et),Q=et-P,O=e*ot,R=O-(O-ot),S=ot-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,At[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,At[1]=W-(U+N)+(N-Z),A=V+U,N=A-V,At[2]=V-(A-N)+(U-N),At[3]=A,X=et*rt,O=e*et,P=O-(O-et),Q=et-P,O=e*rt,R=O-(O-rt),S=rt-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=_*at,O=e*_,P=O-(O-_),Q=_-P,O=e*at,R=O-(O-at),S=at-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,Bt[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,Bt[1]=W-(U+N)+(N-Z),F=V+U,N=F-V,Bt[2]=V-(F-N)+(U-N),Bt[3]=F,X=_*ot,O=e*_,P=O-(O-_),Q=_-P,O=e*ot,R=O-(O-ot),S=ot-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=nt*rt,O=e*nt,P=O-(O-nt),Q=nt-P,O=e*rt,R=O-(O-rt),S=rt-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,qt[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,qt[1]=W-(U+N)+(N-Z),k=V+U,N=k-V,qt[2]=V-(k-N)+(U-N),qt[3]=k,X=tt*at,O=e*tt,P=O-(O-tt),Q=tt-P,O=e*at,R=O-(O-at),S=at-R,Y=Q*S-(X-P*R-Q*R-P*S),Z=et*st,O=e*et,P=O-(O-et),Q=et-P,O=e*st,R=O-(O-st),S=st-R,$=Q*S-(Z-P*R-Q*R-P*S),U=Y-$,N=Y-U,vt[0]=Y-(U+N)+(N-$),V=X+U,N=V-X,W=X-(V-N)+(U-N),U=W-Z,N=W-U,vt[1]=W-(U+N)+(N-Z),q=V+U,N=q-V,vt[2]=V-(q-N)+(U-N),vt[3]=q;let ht=f(s(s(c(yn(wt,At,vt,ut,ft,-it,_,rt,ct,Pt),Pt),Pt,yn(At,Bt,qt,ct,it,ut,tt,st,ft,Qt),Qt,Vt),Vt,s(c(yn(Bt,jt,vt,ft,ut,ct,nt,ot,it,Rt),Rt),Rt,yn(jt,wt,qt,it,ct,-ft,et,at,ut,St),St,Wt),Wt,pn),pn),bt=mt*T;if(ht>=bt||-ht>=bt)return ht;if(N=t-_,v=t-(_+N)+(N-x),N=n-rt,D=n-(rt+N)+(N-g),N=a-ct,I=a-(ct+N)+(N-m),N=i-tt,z=i-(tt+N)+(N-x),N=u-st,E=u-(st+N)+(N-g),N=h-ft,J=h-(ft+N)+(N-m),N=b-nt,B=b-(nt+N)+(N-x),N=M-ot,G=M-(ot+N)+(N-g),N=l-it,K=l-(it+N)+(N-m),N=d-et,C=d-(et+N)+(N-x),N=p-at,H=p-(at+N)+(N-g),N=y-ut,L=y-(ut+N)+(N-m),0===v&&0===D&&0===I&&0===z&&0===E&&0===J&&0===B&&0===G&&0===K&&0===C&&0===H&&0===L)return ht;bt=Tt*T+r*Math.abs(ht);const Mt=_*E+st*v-(rt*z+tt*D),lt=tt*G+ot*z-(st*B+nt*E),dt=nt*H+at*B-(ot*C+et*G),pt=et*D+rt*C-(at*v+_*H),yt=_*G+ot*v-(rt*B+nt*D),xt=tt*H+at*z-(st*C+et*E);return ht+=(tt*tt+st*st+ft*ft)*(it*pt+ut*yt+ct*dt+(K*F+L*k+I*A))+(et*et+at*at+ut*ut)*(ct*lt-ft*yt+it*Mt+(I*w-J*k+K*j))-((_*_+rt*rt+ct*ct)*(ft*dt-it*xt+ut*lt+(J*A-K*q+L*w))+(nt*nt+ot*ot+it*it)*(ut*Mt+ct*xt+ft*pt+(L*j+I*q+J*F)))+2*((tt*z+st*E+ft*J)*(it*F+ut*k+ct*A)+(et*C+at*H+ut*L)*(ct*w-ft*k+it*j)-((_*v+rt*D+ct*I)*(ft*A-it*q+ut*w)+(nt*B+ot*G+it*K)*(ut*j+ct*q+ft*F))),ht>=bt||-ht>=bt?ht:function(t,n,r,s,a,c,f,i,u,h,b,M,l,d,p){let y,x,g,m,T,j,w,A,F,k,q,v,z,B;k=t*a,x=e*t,g=x-(x-t),m=t-g,x=e*a,T=x-(x-a),j=a-T,q=m*j-(k-g*T-m*T-g*j),v=s*n,x=e*s,g=x-(x-s),m=s-g,x=e*n,T=x-(x-n),j=n-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,jt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,jt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,jt[2]=A-(B-y)+(w-y),jt[3]=B,k=s*i,x=e*s,g=x-(x-s),m=s-g,x=e*i,T=x-(x-i),j=i-T,q=m*j-(k-g*T-m*T-g*j),v=f*a,x=e*f,g=x-(x-f),m=f-g,x=e*a,T=x-(x-a),j=a-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,wt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,wt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,wt[2]=A-(B-y)+(w-y),wt[3]=B,k=f*b,x=e*f,g=x-(x-f),m=f-g,x=e*b,T=x-(x-b),j=b-T,q=m*j-(k-g*T-m*T-g*j),v=h*i,x=e*h,g=x-(x-h),m=h-g,x=e*i,T=x-(x-i),j=i-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,At[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,At[1]=F-(w+y)+(y-v),B=A+w,y=B-A,At[2]=A-(B-y)+(w-y),At[3]=B,k=h*d,x=e*h,g=x-(x-h),m=h-g,x=e*d,T=x-(x-d),j=d-T,q=m*j-(k-g*T-m*T-g*j),v=l*b,x=e*l,g=x-(x-l),m=l-g,x=e*b,T=x-(x-b),j=b-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,Ft[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,Ft[1]=F-(w+y)+(y-v),B=A+w,y=B-A,Ft[2]=A-(B-y)+(w-y),Ft[3]=B,k=l*n,x=e*l,g=x-(x-l),m=l-g,x=e*n,T=x-(x-n),j=n-T,q=m*j-(k-g*T-m*T-g*j),v=t*d,x=e*t,g=x-(x-t),m=t-g,x=e*d,T=x-(x-d),j=d-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,kt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,kt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,kt[2]=A-(B-y)+(w-y),kt[3]=B,k=t*i,x=e*t,g=x-(x-t),m=t-g,x=e*i,T=x-(x-i),j=i-T,q=m*j-(k-g*T-m*T-g*j),v=f*n,x=e*f,g=x-(x-f),m=f-g,x=e*n,T=x-(x-n),j=n-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,qt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,qt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,qt[2]=A-(B-y)+(w-y),qt[3]=B,k=s*b,x=e*s,g=x-(x-s),m=s-g,x=e*b,T=x-(x-b),j=b-T,q=m*j-(k-g*T-m*T-g*j),v=h*a,x=e*h,g=x-(x-h),m=h-g,x=e*a,T=x-(x-a),j=a-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,vt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,vt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,vt[2]=A-(B-y)+(w-y),vt[3]=B,k=f*d,x=e*f,g=x-(x-f),m=f-g,x=e*d,T=x-(x-d),j=d-T,q=m*j-(k-g*T-m*T-g*j),v=l*i,x=e*l,g=x-(x-l),m=l-g,x=e*i,T=x-(x-i),j=i-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,zt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,zt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,zt[2]=A-(B-y)+(w-y),zt[3]=B,k=h*n,x=e*h,g=x-(x-h),m=h-g,x=e*n,T=x-(x-n),j=n-T,q=m*j-(k-g*T-m*T-g*j),v=t*b,x=e*t,g=x-(x-t),m=t-g,x=e*b,T=x-(x-b),j=b-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,Bt[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,Bt[1]=F-(w+y)+(y-v),B=A+w,y=B-A,Bt[2]=A-(B-y)+(w-y),Bt[3]=B,k=l*a,x=e*l,g=x-(x-l),m=l-g,x=e*a,T=x-(x-a),j=a-T,q=m*j-(k-g*T-m*T-g*j),v=s*d,x=e*s,g=x-(x-s),m=s-g,x=e*d,T=x-(x-d),j=d-T,z=m*j-(v-g*T-m*T-g*j),w=q-z,y=q-w,Ct[0]=q-(w+y)+(y-z),A=k+w,y=A-k,F=k-(A-y)+(w-y),w=F-v,y=F-w,Ct[1]=F-(w+y)+(y-v),B=A+w,y=B-A,Ct[2]=A-(B-y)+(w-y),Ct[3]=B;const C=hn(jt,wt,qt,u,r,-c,Dt),D=hn(wt,At,vt,M,c,-u,Et),E=hn(At,Ft,zt,p,u,-M,Gt),G=hn(Ft,kt,Bt,r,M,-p,Ht),H=hn(kt,jt,Ct,c,p,-r,It),I=hn(jt,vt,Bt,M,r,c,Jt),J=hn(wt,zt,Ct,p,c,u,Kt),K=hn(At,Bt,qt,r,u,M,Lt),L=hn(Ft,Ct,vt,c,M,p,Nt),N=hn(kt,qt,zt,u,p,r,Ot),O=o(bn(E,Gt,J,Kt,L,Nt,D,Et,t,n,r,Pt),Pt,bn(G,Ht,K,Lt,N,Ot,E,Gt,s,a,c,Qt),Qt,o(bn(H,It,L,Nt,I,Jt,G,Ht,f,i,u,Rt),Rt,bn(C,Dt,N,Ot,J,Kt,H,It,h,b,M,St),St,bn(D,Et,I,Jt,K,Lt,C,Dt,l,d,p,Ut),Ut,Wt,Xt),Xt,Vt,Yt);return Yt[O-1]}(t,n,a,i,u,h,b,M,l,d,p,y,x,g,m)}t.incircle=function(t,n,c,i,u,h,b,M){const l=t-b,d=c-b,p=u-b,y=n-M,x=i-M,g=h-M,m=d*g,T=p*x,j=l*l+y*y,w=p*y,A=l*g,F=d*d+x*x,k=l*x,q=d*y,v=p*p+g*g,z=j*(m-T)+F*(w-A)+v*(k-q),B=(Math.abs(m)+Math.abs(T))*j+(Math.abs(w)+Math.abs(A))*F+(Math.abs(k)+Math.abs(q))*v,C=11102230246251577e-31*B;return z>C||-z>C?z:function(t,n,c,i,u,h,b,M,l){let d,p,y,x,g,m,T,j,w,A,F,k,q,v,z,B,C,D,E,G,H,I,J,K,L,N,xt,mt,Tt,jt,wt,At,Ft,kt,qt;const vt=t-b,zt=c-b,Bt=u-b,Ct=n-M,Dt=i-M,Et=h-M;wt=zt*Et,J=e*zt,K=J-(J-zt),L=zt-K,J=e*Et,N=J-(J-Et),xt=Et-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=Bt*Dt,J=e*Bt,K=J-(J-Bt),L=Bt-K,J=e*Dt,N=J-(J-Dt),xt=Dt-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,Q[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,Q[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,Q[2]=Tt-(qt-I)+(mt-I),Q[3]=qt,wt=Bt*Ct,J=e*Bt,K=J-(J-Bt),L=Bt-K,J=e*Ct,N=J-(J-Ct),xt=Ct-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=vt*Et,J=e*vt,K=J-(J-vt),L=vt-K,J=e*Et,N=J-(J-Et),xt=Et-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,R[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,R[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,R[2]=Tt-(qt-I)+(mt-I),R[3]=qt,wt=vt*Dt,J=e*vt,K=J-(J-vt),L=vt-K,J=e*Dt,N=J-(J-Dt),xt=Dt-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=zt*Ct,J=e*zt,K=J-(J-zt),L=zt-K,J=e*Ct,N=J-(J-Ct),xt=Ct-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,S[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,S[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,S[2]=Tt-(qt-I)+(mt-I),S[3]=qt,d=s(s(s(a(a(4,Q,vt,it),it,vt,ut),ut,a(a(4,Q,Ct,it),it,Ct,ht),ht,Mt),Mt,s(a(a(4,R,zt,it),it,zt,ut),ut,a(a(4,R,Dt,it),it,Dt,ht),ht,lt),lt,pt),pt,s(a(a(4,S,Bt,it),it,Bt,ut),ut,a(a(4,S,Et,it),it,Et,ht),ht,Mt),Mt,yt);let Gt=f(d,yt),Ht=O*l;if(Gt>=Ht||-Gt>=Ht)return Gt;if(I=t-vt,p=t-(vt+I)+(I-b),I=n-Ct,g=n-(Ct+I)+(I-M),I=c-zt,y=c-(zt+I)+(I-b),I=i-Dt,m=i-(Dt+I)+(I-M),I=u-Bt,x=u-(Bt+I)+(I-b),I=h-Et,T=h-(Et+I)+(I-M),0===p&&0===y&&0===x&&0===g&&0===m&&0===T)return Gt;if(Ht=P*l+r*Math.abs(Gt),Gt+=(vt*vt+Ct*Ct)*(zt*T+Et*y-(Dt*x+Bt*m))+2*(vt*p+Ct*g)*(zt*Et-Dt*Bt)+((zt*zt+Dt*Dt)*(Bt*g+Ct*x-(Et*p+vt*T))+2*(zt*y+Dt*m)*(Bt*Ct-Et*vt))+((Bt*Bt+Et*Et)*(vt*m+Dt*p-(Ct*y+zt*g))+2*(Bt*x+Et*T)*(vt*Dt-Ct*zt)),Gt>=Ht||-Gt>=Ht)return Gt;if(0===y&&0===m&&0===x&&0===T||(wt=vt*vt,J=e*vt,K=J-(J-vt),L=vt-K,At=L*L-(wt-K*K-(K+K)*L),Ft=Ct*Ct,J=e*Ct,K=J-(J-Ct),L=Ct-K,kt=L*L-(Ft-K*K-(K+K)*L),mt=At+kt,I=mt-At,U[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,U[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,U[2]=Tt-(qt-I)+(mt-I),U[3]=qt),0===x&&0===T&&0===p&&0===g||(wt=zt*zt,J=e*zt,K=J-(J-zt),L=zt-K,At=L*L-(wt-K*K-(K+K)*L),Ft=Dt*Dt,J=e*Dt,K=J-(J-Dt),L=Dt-K,kt=L*L-(Ft-K*K-(K+K)*L),mt=At+kt,I=mt-At,V[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,V[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,V[2]=Tt-(qt-I)+(mt-I),V[3]=qt),0===p&&0===g&&0===y&&0===m||(wt=Bt*Bt,J=e*Bt,K=J-(J-Bt),L=Bt-K,At=L*L-(wt-K*K-(K+K)*L),Ft=Et*Et,J=e*Et,K=J-(J-Et),L=Et-K,kt=L*L-(Ft-K*K-(K+K)*L),mt=At+kt,I=mt-At,W[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,W[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,W[2]=Tt-(qt-I)+(mt-I),W[3]=qt),0!==p&&(j=a(4,Q,p,Z),d=gt(d,o(a(j,Z,2*vt,ut),ut,a(a(4,W,p,it),it,Dt,ht),ht,a(a(4,V,p,it),it,-Et,bt),bt,Mt,dt),dt)),0!==g&&(w=a(4,Q,g,$),d=gt(d,o(a(w,$,2*Ct,ut),ut,a(a(4,V,g,it),it,Bt,ht),ht,a(a(4,W,g,it),it,-zt,bt),bt,Mt,dt),dt)),0!==y&&(A=a(4,R,y,_),d=gt(d,o(a(A,_,2*zt,ut),ut,a(a(4,U,y,it),it,Et,ht),ht,a(a(4,W,y,it),it,-Ct,bt),bt,Mt,dt),dt)),0!==m&&(F=a(4,R,m,tt),d=gt(d,o(a(F,tt,2*Dt,ut),ut,a(a(4,W,m,it),it,vt,ht),ht,a(a(4,U,m,it),it,-Bt,bt),bt,Mt,dt),dt)),0!==x&&(k=a(4,S,x,nt),d=gt(d,o(a(k,nt,2*Bt,ut),ut,a(a(4,V,x,it),it,Ct,ht),ht,a(a(4,U,x,it),it,-Dt,bt),bt,Mt,dt),dt)),0!==T&&(q=a(4,S,T,et),d=gt(d,o(a(q,et,2*Et,ut),ut,a(a(4,U,T,it),it,zt,ht),ht,a(a(4,V,T,it),it,-vt,bt),bt,Mt,dt),dt)),0!==p||0!==g){if(0!==y||0!==m||0!==x||0!==T?(wt=y*Et,J=e*y,K=J-(J-y),L=y-K,J=e*Et,N=J-(J-Et),xt=Et-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=zt*T,J=e*zt,K=J-(J-zt),L=zt-K,J=e*T,N=J-(J-T),xt=T-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,X[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,X[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,X[2]=Tt-(qt-I)+(mt-I),X[3]=qt,wt=x*-Dt,J=e*x,K=J-(J-x),L=x-K,J=e*-Dt,N=J-(J- -Dt),xt=-Dt-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=Bt*-m,J=e*Bt,K=J-(J-Bt),L=Bt-K,J=e*-m,N=J-(J- -m),xt=-m-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,Y[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,Y[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,Y[2]=Tt-(qt-I)+(mt-I),Y[3]=qt,z=s(4,X,4,Y,st),wt=y*T,J=e*y,K=J-(J-y),L=y-K,J=e*T,N=J-(J-T),xt=T-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=x*m,J=e*x,K=J-(J-x),L=x-K,J=e*m,N=J-(J-m),xt=m-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,ct[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,ct[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,ct[2]=Tt-(qt-I)+(mt-I),ct[3]=qt,D=4):(st[0]=0,z=1,ct[0]=0,D=1),0!==p){const t=a(z,st,p,bt);d=gt(d,s(a(j,Z,p,ut),ut,a(t,bt,2*vt,Mt),Mt,dt),dt);const n=a(D,ct,p,it);d=gt(d,o(a(n,it,2*vt,ut),ut,a(n,it,p,ht),ht,a(t,bt,p,Mt),Mt,lt,pt),pt),0!==m&&(d=gt(d,a(a(4,W,p,it),it,m,ut),ut)),0!==T&&(d=gt(d,a(a(4,V,-p,it),it,T,ut),ut))}if(0!==g){const t=a(z,st,g,bt);d=gt(d,s(a(w,$,g,ut),ut,a(t,bt,2*Ct,Mt),Mt,dt),dt);const n=a(D,ct,g,it);d=gt(d,o(a(n,it,2*Ct,ut),ut,a(n,it,g,ht),ht,a(t,bt,g,Mt),Mt,lt,pt),pt)}}if(0!==y||0!==m){if(0!==x||0!==T||0!==p||0!==g?(wt=x*Ct,J=e*x,K=J-(J-x),L=x-K,J=e*Ct,N=J-(J-Ct),xt=Ct-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=Bt*g,J=e*Bt,K=J-(J-Bt),L=Bt-K,J=e*g,N=J-(J-g),xt=g-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,X[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,X[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,X[2]=Tt-(qt-I)+(mt-I),X[3]=qt,G=-Et,H=-T,wt=p*G,J=e*p,K=J-(J-p),L=p-K,J=e*G,N=J-(J-G),xt=G-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=vt*H,J=e*vt,K=J-(J-vt),L=vt-K,J=e*H,N=J-(J-H),xt=H-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,Y[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,Y[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,Y[2]=Tt-(qt-I)+(mt-I),Y[3]=qt,B=s(4,X,4,Y,ot),wt=x*g,J=e*x,K=J-(J-x),L=x-K,J=e*g,N=J-(J-g),xt=g-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=p*T,J=e*p,K=J-(J-p),L=p-K,J=e*T,N=J-(J-T),xt=T-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,ft[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,ft[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,ft[2]=Tt-(qt-I)+(mt-I),ft[3]=qt,E=4):(ot[0]=0,B=1,ft[0]=0,E=1),0!==y){const t=a(B,ot,y,bt);d=gt(d,s(a(A,_,y,ut),ut,a(t,bt,2*zt,Mt),Mt,dt),dt);const n=a(E,ft,y,it);d=gt(d,o(a(n,it,2*zt,ut),ut,a(n,it,y,ht),ht,a(t,bt,y,Mt),Mt,lt,pt),pt),0!==T&&(d=gt(d,a(a(4,U,y,it),it,T,ut),ut)),0!==g&&(d=gt(d,a(a(4,W,-y,it),it,g,ut),ut))}if(0!==m){const t=a(B,ot,m,bt);d=gt(d,s(a(F,tt,m,ut),ut,a(t,bt,2*Dt,Mt),Mt,dt),dt);const n=a(E,ft,m,it);d=gt(d,o(a(n,it,2*Dt,ut),ut,a(n,it,m,ht),ht,a(t,bt,m,Mt),Mt,lt,pt),pt)}}if(0!==x||0!==T){if(0!==p||0!==g||0!==y||0!==m?(wt=p*Dt,J=e*p,K=J-(J-p),L=p-K,J=e*Dt,N=J-(J-Dt),xt=Dt-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=vt*m,J=e*vt,K=J-(J-vt),L=vt-K,J=e*m,N=J-(J-m),xt=m-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,X[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,X[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,X[2]=Tt-(qt-I)+(mt-I),X[3]=qt,G=-Ct,H=-g,wt=y*G,J=e*y,K=J-(J-y),L=y-K,J=e*G,N=J-(J-G),xt=G-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=zt*H,J=e*zt,K=J-(J-zt),L=zt-K,J=e*H,N=J-(J-H),xt=H-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At+kt,I=mt-At,Y[0]=At-(mt-I)+(kt-I),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt+Ft,I=mt-jt,Y[1]=jt-(mt-I)+(Ft-I),qt=Tt+mt,I=qt-Tt,Y[2]=Tt-(qt-I)+(mt-I),Y[3]=qt,v=s(4,X,4,Y,rt),wt=p*m,J=e*p,K=J-(J-p),L=p-K,J=e*m,N=J-(J-m),xt=m-N,At=L*xt-(wt-K*N-L*N-K*xt),Ft=y*g,J=e*y,K=J-(J-y),L=y-K,J=e*g,N=J-(J-g),xt=g-N,kt=L*xt-(Ft-K*N-L*N-K*xt),mt=At-kt,I=At-mt,at[0]=At-(mt+I)+(I-kt),Tt=wt+mt,I=Tt-wt,jt=wt-(Tt-I)+(mt-I),mt=jt-Ft,I=jt-mt,at[1]=jt-(mt+I)+(I-Ft),qt=Tt+mt,I=qt-Tt,at[2]=Tt-(qt-I)+(mt-I),at[3]=qt,C=4):(rt[0]=0,v=1,at[0]=0,C=1),0!==x){const t=a(v,rt,x,bt);d=gt(d,s(a(k,nt,x,ut),ut,a(t,bt,2*Bt,Mt),Mt,dt),dt);const n=a(C,at,x,it);d=gt(d,o(a(n,it,2*Bt,ut),ut,a(n,it,x,ht),ht,a(t,bt,x,Mt),Mt,lt,pt),pt),0!==g&&(d=gt(d,a(a(4,V,x,it),it,g,ut),ut)),0!==m&&(d=gt(d,a(a(4,U,-x,it),it,m,ut),ut))}if(0!==T){const t=a(v,rt,T,bt);d=gt(d,s(a(q,et,T,ut),ut,a(t,bt,2*Et,Mt),Mt,dt),dt);const n=a(C,at,T,it);d=gt(d,o(a(n,it,2*Et,ut),ut,a(n,it,T,ht),ht,a(t,bt,T,Mt),Mt,lt,pt),pt)}}return yt[d-1]}(t,n,c,i,u,h,b,M,B)},t.incirclefast=function(t,n,e,r,s,o,a,c){const f=t-a,i=n-c,u=e-a,h=r-c,b=s-a,M=o-c;return(f*f+i*i)*(u*M-b*h)+(u*u+h*h)*(b*i-f*M)+(b*b+M*M)*(f*h-u*i)},t.insphere=function(t,n,e,r,s,o,a,c,f,i,u,h,b,M,l){const d=t-b,p=r-b,y=a-b,x=i-b,g=n-M,m=s-M,T=c-M,j=u-M,w=e-l,A=o-l,F=f-l,k=h-l,q=d*m,v=p*g,z=q-v,B=p*T,C=y*m,D=B-C,E=y*j,G=x*T,H=E-G,I=x*g,J=d*j,K=I-J,L=d*T,N=y*g,O=L-N,P=p*j,Q=x*m,R=P-Q,S=d*d+g*g+w*w,U=p*p+m*m+A*A,V=y*y+T*T+F*F,W=x*x+j*j+k*k,X=V*(k*z+w*R+A*K)-W*(w*D-A*O+F*z)+(S*(A*H-F*R+k*D)-U*(F*K+k*O+w*H)),Y=Math.abs(w),Z=Math.abs(A),$=Math.abs(F),_=Math.abs(k),tt=Math.abs(q)+Math.abs(v),nt=Math.abs(B)+Math.abs(C),et=Math.abs(E)+Math.abs(G),rt=Math.abs(I)+Math.abs(J),st=Math.abs(L)+Math.abs(N),ot=Math.abs(P)+Math.abs(Q),at=(et*Z+ot*$+nt*_)*S+(rt*$+st*_+et*Y)*U+(tt*_+ot*Y+rt*Z)*V+(nt*Y+st*Z+tt*$)*W,ct=17763568394002532e-31*at;return X>ct||-X>ct?X:-xn(t,n,e,r,s,o,a,c,f,i,u,h,b,M,l,at)},t.inspherefast=function(t,n,e,r,s,o,a,c,f,i,u,h,b,M,l){const d=t-b,p=r-b,y=a-b,x=i-b,g=n-M,m=s-M,T=c-M,j=u-M,w=e-l,A=o-l,F=f-l,k=h-l,q=d*m-p*g,v=p*T-y*m,z=y*j-x*T,B=x*g-d*j,C=d*T-y*g,D=p*j-x*m;return(y*y+T*T+F*F)*(k*q+w*D+A*B)-(x*x+j*j+k*k)*(w*v-A*C+F*q)+((d*d+g*g+w*w)*(A*z-F*D+k*v)-(p*p+m*m+A*A)*(F*B+k*C+w*z))},t.orient2d=function(t,n,o,a,c,i){const y=(n-i)*(o-c),x=(t-c)*(a-i),g=y-x,m=Math.abs(y+x);return Math.abs(g)>=33306690738754716e-32*m?g:-function(t,n,o,a,c,i,y){let x,g,m,T,j,w,A,F,k,q,v,z,B,C,D,E,G,H;const I=t-c,J=o-c,K=n-i,L=a-i;C=I*L,w=e*I,A=w-(w-I),F=I-A,w=e*L,k=w-(w-L),q=L-k,D=F*q-(C-A*k-F*k-A*q),E=K*J,w=e*K,A=w-(w-K),F=K-A,w=e*J,k=w-(w-J),q=J-k,G=F*q-(E-A*k-F*k-A*q),v=D-G,j=D-v,b[0]=D-(v+j)+(j-G),z=C+v,j=z-C,B=C-(z-j)+(v-j),v=B-E,j=B-v,b[1]=B-(v+j)+(j-E),H=z+v,j=H-z,b[2]=z-(H-j)+(v-j),b[3]=H;let N=f(4,b),O=u*y;if(N>=O||-N>=O)return N;if(j=t-I,x=t-(I+j)+(j-c),j=o-J,m=o-(J+j)+(j-c),j=n-K,g=n-(K+j)+(j-i),j=a-L,T=a-(L+j)+(j-i),0===x&&0===g&&0===m&&0===T)return N;if(O=h*y+r*Math.abs(N),N+=I*T+L*x-(K*m+J*g),N>=O||-N>=O)return N;C=x*L,w=e*x,A=w-(w-x),F=x-A,w=e*L,k=w-(w-L),q=L-k,D=F*q-(C-A*k-F*k-A*q),E=g*J,w=e*g,A=w-(w-g),F=g-A,w=e*J,k=w-(w-J),q=J-k,G=F*q-(E-A*k-F*k-A*q),v=D-G,j=D-v,p[0]=D-(v+j)+(j-G),z=C+v,j=z-C,B=C-(z-j)+(v-j),v=B-E,j=B-v,p[1]=B-(v+j)+(j-E),H=z+v,j=H-z,p[2]=z-(H-j)+(v-j),p[3]=H;const P=s(4,b,4,p,M);C=I*T,w=e*I,A=w-(w-I),F=I-A,w=e*T,k=w-(w-T),q=T-k,D=F*q-(C-A*k-F*k-A*q),E=K*m,w=e*K,A=w-(w-K),F=K-A,w=e*m,k=w-(w-m),q=m-k,G=F*q-(E-A*k-F*k-A*q),v=D-G,j=D-v,p[0]=D-(v+j)+(j-G),z=C+v,j=z-C,B=C-(z-j)+(v-j),v=B-E,j=B-v,p[1]=B-(v+j)+(j-E),H=z+v,j=H-z,p[2]=z-(H-j)+(v-j),p[3]=H;const Q=s(P,M,4,p,l);C=x*T,w=e*x,A=w-(w-x),F=x-A,w=e*T,k=w-(w-T),q=T-k,D=F*q-(C-A*k-F*k-A*q),E=g*m,w=e*g,A=w-(w-g),F=g-A,w=e*m,k=w-(w-m),q=m-k,G=F*q-(E-A*k-F*k-A*q),v=D-G,j=D-v,p[0]=D-(v+j)+(j-G),z=C+v,j=z-C,B=C-(z-j)+(v-j),v=B-E,j=B-v,p[1]=B-(v+j)+(j-E),H=z+v,j=H-z,p[2]=z-(H-j)+(v-j),p[3]=H;const R=s(Q,l,4,p,d);return d[R-1]}(t,n,o,a,c,i,m)},t.orient2dfast=function(t,n,e,r,s,o){return(n-o)*(e-s)-(t-s)*(r-o)},t.orient3d=function(t,n,o,c,i,u,h,b,M,l,d,p){const C=t-l,J=c-l,O=h-l,P=n-d,Q=i-d,R=b-d,S=o-p,U=u-p,V=M-p,W=J*R,X=O*Q,Y=O*P,Z=C*R,$=C*Q,_=J*P,tt=S*(W-X)+U*(Y-Z)+V*($-_),nt=(Math.abs(W)+Math.abs(X))*Math.abs(S)+(Math.abs(Y)+Math.abs(Z))*Math.abs(U)+(Math.abs($)+Math.abs(_))*Math.abs(V),et=7771561172376103e-31*nt;return tt>et||-tt>et?tt:function(t,n,o,c,i,u,h,b,M,l,d,p,C){let J,O,P,Q,R,S,U,V,W,X,Y,Z,$,_,tt,nt,et,rt,st,ot,at,ct,ft,it;const ut=t-l,ht=c-l,bt=h-l,Mt=n-d,lt=i-d,dt=b-d,pt=o-p,yt=u-p,xt=M-p;ot=ht*dt,Z=e*ht,$=Z-(Z-ht),_=ht-$,Z=e*dt,tt=Z-(Z-dt),nt=dt-tt,at=_*nt-(ot-$*tt-_*tt-$*nt),ct=bt*lt,Z=e*bt,$=Z-(Z-bt),_=bt-$,Z=e*lt,tt=Z-(Z-lt),nt=lt-tt,ft=_*nt-(ct-$*tt-_*tt-$*nt),et=at-ft,Y=at-et,g[0]=at-(et+Y)+(Y-ft),rt=ot+et,Y=rt-ot,st=ot-(rt-Y)+(et-Y),et=st-ct,Y=st-et,g[1]=st-(et+Y)+(Y-ct),it=rt+et,Y=it-rt,g[2]=rt-(it-Y)+(et-Y),g[3]=it,ot=bt*Mt,Z=e*bt,$=Z-(Z-bt),_=bt-$,Z=e*Mt,tt=Z-(Z-Mt),nt=Mt-tt,at=_*nt-(ot-$*tt-_*tt-$*nt),ct=ut*dt,Z=e*ut,$=Z-(Z-ut),_=ut-$,Z=e*dt,tt=Z-(Z-dt),nt=dt-tt,ft=_*nt-(ct-$*tt-_*tt-$*nt),et=at-ft,Y=at-et,m[0]=at-(et+Y)+(Y-ft),rt=ot+et,Y=rt-ot,st=ot-(rt-Y)+(et-Y),et=st-ct,Y=st-et,m[1]=st-(et+Y)+(Y-ct),it=rt+et,Y=it-rt,m[2]=rt-(it-Y)+(et-Y),m[3]=it,ot=ut*lt,Z=e*ut,$=Z-(Z-ut),_=ut-$,Z=e*lt,tt=Z-(Z-lt),nt=lt-tt,at=_*nt-(ot-$*tt-_*tt-$*nt),ct=ht*Mt,Z=e*ht,$=Z-(Z-ht),_=ht-$,Z=e*Mt,tt=Z-(Z-Mt),nt=Mt-tt,ft=_*nt-(ct-$*tt-_*tt-$*nt),et=at-ft,Y=at-et,T[0]=at-(et+Y)+(Y-ft),rt=ot+et,Y=rt-ot,st=ot-(rt-Y)+(et-Y),et=st-ct,Y=st-et,T[1]=st-(et+Y)+(Y-ct),it=rt+et,Y=it-rt,T[2]=rt-(it-Y)+(et-Y),T[3]=it,J=s(s(a(4,g,pt,D),D,a(4,m,yt,E),E,G),G,a(4,T,xt,D),D,I);let gt=f(J,I),mt=y*C;if(gt>=mt||-gt>=mt)return gt;if(Y=t-ut,O=t-(ut+Y)+(Y-l),Y=c-ht,P=c-(ht+Y)+(Y-l),Y=h-bt,Q=h-(bt+Y)+(Y-l),Y=n-Mt,R=n-(Mt+Y)+(Y-d),Y=i-lt,S=i-(lt+Y)+(Y-d),Y=b-dt,U=b-(dt+Y)+(Y-d),Y=o-pt,V=o-(pt+Y)+(Y-p),Y=u-yt,W=u-(yt+Y)+(Y-p),Y=M-xt,X=M-(xt+Y)+(Y-p),0===O&&0===P&&0===Q&&0===R&&0===S&&0===U&&0===V&&0===W&&0===X)return gt;if(mt=x*C+r*Math.abs(gt),gt+=pt*(ht*U+dt*P-(lt*Q+bt*S))+V*(ht*dt-lt*bt)+yt*(bt*R+Mt*Q-(dt*O+ut*U))+W*(bt*Mt-dt*ut)+xt*(ut*S+lt*O-(Mt*P+ht*R))+X*(ut*lt-Mt*ht),gt>=mt||-gt>=mt)return gt;const Tt=L(O,R,ht,lt,bt,dt,j,w),jt=L(P,S,bt,dt,ut,Mt,A,F),wt=L(Q,U,ut,Mt,ht,lt,k,q),At=s(jt,A,wt,q,v);J=K(J,a(At,v,pt,G),G);const Ft=s(wt,k,Tt,w,z);J=K(J,a(Ft,z,yt,G),G);const kt=s(Tt,j,jt,F,B);return J=K(J,a(kt,B,xt,G),G),0!==V&&(J=K(J,a(4,g,V,H),H),J=K(J,a(At,v,V,G),G)),0!==W&&(J=K(J,a(4,m,W,H),H),J=K(J,a(Ft,z,W,G),G)),0!==X&&(J=K(J,a(4,T,X,H),H),J=K(J,a(kt,B,X,G),G)),0!==O&&(0!==S&&(J=N(J,O,S,xt,X)),0!==U&&(J=N(J,-O,U,yt,W))),0!==P&&(0!==U&&(J=N(J,P,U,pt,V)),0!==R&&(J=N(J,-P,R,xt,X))),0!==Q&&(0!==R&&(J=N(J,Q,R,yt,W)),0!==S&&(J=N(J,-Q,S,pt,V))),I[J-1]}(t,n,o,c,i,u,h,b,M,l,d,p,nt)},t.orient3dfast=function(t,n,e,r,s,o,a,c,f,i,u,h){const b=n-u,M=s-u,l=c-u,d=e-h,p=o-h,y=f-h;return(t-i)*(M*y-p*l)+(r-i)*(l*d-y*b)+(a-i)*(b*p-d*M)}}));
Index: de_modules/rw/.eslintrc
===================================================================
--- node_modules/rw/.eslintrc	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-env:
-    node: true
-
-extends:
-    "eslint:recommended"
Index: de_modules/rw/.npmignore
===================================================================
--- node_modules/rw/.npmignore	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-.DS_Store
-node_modules
-test/input.txt
Index: de_modules/rw/LICENSE
===================================================================
--- node_modules/rw/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-Copyright (c) 2014-2016, Michael Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* The name Michael Bostock may not be used to endorse or promote products
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/rw/README.md
===================================================================
--- node_modules/rw/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,120 +1,0 @@
-# rw - Now stdin and stdout are files.
-
-How do you read a file from stdin? If you thought,
-
-```js
-var contents = fs.readFileSync("/dev/stdin", "utf8");
-```
-
-you’d be wrong, because Node only reads up to the size of the file reported by fs.stat rather than reading until it receives an EOF. So, if you redirect a file to your program (`cat file | program`), you’ll only read the first 65,536 bytes of your file. Oops.
-
-What about writing a file to stdout? If you thought,
-
-```js
-fs.writeFileSync("/dev/stdout", contents, "utf8");
-```
-
-you’d also be wrong, because this tries to close stdout, so you get this error:
-
-```
-Error: UNKNOWN, unknown error
-    at Object.fs.writeSync (fs.js:528:18)
-    at Object.fs.writeFileSync (fs.js:975:21)
-```
-
-(Also, this doesn’t work on Windows, because Windows doesn’t support /dev/stdout, /dev/stdin and /dev/stderr!)
-
-Shucks. So what should you do?
-
-You could use a different pattern for reading from stdin:
-
-```js
-var chunks = [];
-
-process.stdin
-    .on("data", function(chunk) { chunks.push(chunk); })
-    .on("end", function() { console.log(chunks.join("").length); })
-    .setEncoding("utf8");
-```
-
-But that’s a pain, since now your code has two different code paths for reading inputs depending on whether you’re reading a real file or stdin. And the code gets even more complex if you want to [read that file synchronously](https://github.com/mbostock/rw/blob/master/lib/rw/read-file-sync.js).
-
-You could also try a different pattern for writing to stdout:
-
-```js
-process.stdout.write(contents);
-```
-
-Or even:
-
-```js
-console.log(contents);
-```
-
-But if you try to pipe your output to `head`, you’ll get this error:
-
-```
-Error: write EPIPE
-    at errnoException (net.js:904:11)
-    at Object.afterWrite (net.js:720:19)
-```
-
-Huh.
-
-The **rw** module fixes these problems. It provides an interface just like readFile, readFileSync, writeFile and writeFileSync, but with implementations that work the way you expect on stdin and stdout. If you use these methods on files other than /dev/stdin or /dev/stdout, they simply delegate to the fs methods, so you can trust that they behave identically to the methods you’re used to.
-
-For example, now you can read stdin synchronously like so:
-
-```js
-var contents = rw.readFileSync("/dev/stdin", "utf8");
-```
-
-Or to write to stdout:
-
-```js
-rw.writeFileSync("/dev/stdout", contents, "utf8");
-```
-
-And rw automatically squashes EPIPE errors, so you can pipe the output of your program to `head` and you won’t get a spurious stack trace.
-
-To install, `npm install rw`.
-
-### Note
-
-If you want to read synchronously from stdin using [readFileSync](#readFileSync), you cannot also use process.stdin in the same program. Likewise, if you want to write synchronously to stdout or stderr using [writeFileSync](#writeFileSync), you cannot use process.stdout or process.stderr, respectively. (This includes using console.log and the like!) Failure to heed this warning may result in error: EAGAIN, resource temporarily unavailable. Unfortunately, it does not appear possible for this library to fix this issue automatically, so please use caution.
-
-Only the asynchronous methods [readFile](#readFile) and [writeFile](#writeFile) are supported on Windows. Node has no synchronous API for reading from process.[stdin](https://nodejs.org/api/process.html#process_process_stdin) or writing to process.[stdout](https://nodejs.org/api/process.html#process_process_stdout) or process.[stderr](https://nodejs.org/api/process.html#process_process_stderr), so you’re out of luck!
-
-## API Reference
-
-<a name="readFile" href="#readFile">#</a> rw.<b>readFile</b>(<i>path</i>[, <i>options</i>], <i>callback</i>)
-
-Reads the file at the specified *path* completely into memory, invoking the specified *callback* once the data is available and the file is closed. The *callback* is invoked with two arguments: the *error* that occurred during read (hopefully null), and the read data. If *options* is a string, it specifies the encoding to use, in which case the read data will be a string; otherwise *options* is an object, and may specify encoding and flag properties. This method is a drop-in replacement for [fs.readFile](https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback) and fixes the behavior of special files such as /dev/stdin.
-
-<a name="readFileSync" href="#readFileSync">#</a> rw.<b>readFileSync</b>(<i>path</i>[, <i>options</i>])
-
-Reads the file at the specified *path* completely into memory, synchronously, returning the data. If an error occurred during read, this function throws an error instead. If *options* is a string, it specifies the encoding to use, in which case the read data will be a string; otherwise *options* is an object, and may specify encoding and flag properties. This method is a drop-in replacement for [fs.readFileSync](https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options) and fixes the behavior of special files such as /dev/stdin.
-
-<a name="writeFile" href="#writeFile">#</a> rw.<b>writeFile</b>(<i>path</i>, <i>data</i>[, <i>options</i>], <i>callback</i>)
-
-Writes the specified *data* (completely in memory) to a file at the specified *path*, invoking the specified *callback* once the data is completely written and the file is closed. The *callback* is invoked with a single argument: the *error* that occurred during write (hopefully null). If *options* is a string, it specifies the encoding to use, in which case the *data* must be a string; otherwise *options* is an object, and may specify encoding, mode and flag properties. This method is a drop-in replacement for [fs.writeFile](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) and fixes the behavior of special files such as /dev/stdout.
-
-<a name="writeFileSync" href="#writeFileSync">#</a> rw.<b>writeFileSync</b>(<i>path</i>, <i>data</i>[, <i>options</i>])
-
-Writes the specified *data* (completely in memory) to a file at the specified *path*, synchronously, returning once the data is completely written and the file is closed. Throws an *error* if one occurs during write. If *options* is a string, it specifies the encoding to use, in which case the *data* must be a string; otherwise *options* is an object, and may specify encoding, mode and flag properties. This method is a drop-in replacement for [fs.writeFileSync](https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options) and fixes the behavior of special files such as /dev/stdout.
-
-<a name="dash_readFile" href="#dash_readFile">#</a> rw.dash.<b>readFile</b>(<i>path</i>[, <i>options</i>], <i>callback</i>)
-
-Equivalent to [rw.readFile](#readFile), except treats a *path* of `-` as `/dev/stdin`. Useful for command-line arguments.
-
-<a name="dash_readFileSync" href="#dash_readFileSync">#</a> rw.dash.<b>readFileSync</b>(<i>path</i>[, <i>options</i>])
-
-Equivalent to [rw.readFileSync](#readFileSync), except treats a *path* of `-` as `/dev/stdin`. Useful for command-line arguments.
-
-<a name="dash_writeFile" href="#dash_writeFile">#</a> rw.dash.<b>writeFile</b>(<i>path</i>, <i>data</i>[, <i>options</i>], <i>callback</i>)
-
-Equivalent to [rw.writeFile](#writeFile), except treats a *path* of `-` as `/dev/stdout`. Useful for command-line arguments.
-
-<a name="dash_writeFileSync" href="#dash_writeFileSync">#</a> rw.dash.<b>writeFileSync</b>(<i>path</i>, <i>data</i>[, <i>options</i>])
-
-Equivalent to [rw.writeFileSync](#writeFileSync), except treats a *path* of `-` as `/dev/stdout`. Useful for command-line arguments.
Index: de_modules/rw/index.js
===================================================================
--- node_modules/rw/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-exports.dash = require("./lib/rw/dash");
-exports.readFile = require("./lib/rw/read-file");
-exports.readFileSync = require("./lib/rw/read-file-sync");
-exports.writeFile = require("./lib/rw/write-file");
-exports.writeFileSync = require("./lib/rw/write-file-sync");
Index: de_modules/rw/lib/rw/dash.js
===================================================================
--- node_modules/rw/lib/rw/dash.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-var slice = Array.prototype.slice;
-
-function dashify(method, file) {
-  return function(path) {
-    var argv = arguments;
-    if (path == "-") (argv = slice.call(argv)).splice(0, 1, file);
-    return method.apply(null, argv);
-  };
-}
-
-exports.readFile = dashify(require("./read-file"), "/dev/stdin");
-exports.readFileSync = dashify(require("./read-file-sync"), "/dev/stdin");
-exports.writeFile = dashify(require("./write-file"), "/dev/stdout");
-exports.writeFileSync = dashify(require("./write-file-sync"), "/dev/stdout");
Index: de_modules/rw/lib/rw/decode.js
===================================================================
--- node_modules/rw/lib/rw/decode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-module.exports = function(options) {
-  if (options) {
-    if (typeof options === "string") return encoding(options);
-    if (options.encoding !== null) return encoding(options.encoding);
-  }
-  return identity();
-};
-
-function identity() {
-  var chunks = [];
-  return {
-    push: function(chunk) { chunks.push(chunk); },
-    value: function() { return Buffer.concat(chunks); }
-  };
-}
-
-function encoding(encoding) {
-  var chunks = [];
-  return {
-    push: function(chunk) { chunks.push(chunk); },
-    value: function() { return Buffer.concat(chunks).toString(encoding); }
-  };
-}
Index: de_modules/rw/lib/rw/encode.js
===================================================================
--- node_modules/rw/lib/rw/encode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-module.exports = function(data, options) {
-  return typeof data === "string"
-      ? new Buffer(data, typeof options === "string" ? options
-          : options && options.encoding !== null ? options.encoding
-          : "utf8")
-      : data;
-};
Index: de_modules/rw/lib/rw/read-file-sync.js
===================================================================
--- node_modules/rw/lib/rw/read-file-sync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-var fs = require("fs"),
-    decode = require("./decode");
-
-module.exports = function(filename, options) {
-  if (fs.statSync(filename).isFile()) {
-    return fs.readFileSync(filename, options);
-  } else {
-    var fd = fs.openSync(filename, options && options.flag || "r"),
-        decoder = decode(options);
-
-    while (true) { // eslint-disable-line no-constant-condition
-      try {
-        var buffer = new Buffer(bufferSize),
-            bytesRead = fs.readSync(fd, buffer, 0, bufferSize);
-      } catch (e) {
-        if (e.code === "EOF") break;
-        fs.closeSync(fd);
-        throw e;
-      }
-      if (bytesRead === 0) break;
-      decoder.push(buffer.slice(0, bytesRead));
-    }
-
-    fs.closeSync(fd);
-    return decoder.value();
-  }
-};
-
-var bufferSize = 1 << 16;
Index: de_modules/rw/lib/rw/read-file.js
===================================================================
--- node_modules/rw/lib/rw/read-file.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-var fs = require("fs"),
-    decode = require("./decode");
-
-module.exports = function(path, options, callback) {
-  if (arguments.length < 3) callback = options, options = null;
-
-  switch (path) {
-    case "/dev/stdin": return readStream(process.stdin, options, callback);
-  }
-
-  fs.stat(path, function(error, stat) {
-    if (error) return callback(error);
-    if (stat.isFile()) return fs.readFile(path, options, callback);
-    readStream(fs.createReadStream(path, options ? {flags: options.flag || "r"} : {}), options, callback); // N.B. flag / flags
-  });
-};
-
-function readStream(stream, options, callback) {
-  var decoder = decode(options);
-  stream.on("error", callback);
-  stream.on("data", function(d) { decoder.push(d); });
-  stream.on("end", function() { callback(null, decoder.value()); });
-}
Index: de_modules/rw/lib/rw/write-file-sync.js
===================================================================
--- node_modules/rw/lib/rw/write-file-sync.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-var fs = require("fs"),
-    encode = require("./encode");
-
-module.exports = function(filename, data, options) {
-  var stat;
-
-  try {
-    stat = fs.statSync(filename);
-  } catch (error) {
-    if (error.code !== "ENOENT") throw error;
-  }
-
-  if (!stat || stat.isFile()) {
-    fs.writeFileSync(filename, data, options);
-  } else {
-    var fd = fs.openSync(filename, options && options.flag || "w"),
-        bytesWritten = 0,
-        bytesTotal = (data = encode(data, options)).length;
-
-    while (bytesWritten < bytesTotal) {
-      try {
-        bytesWritten += fs.writeSync(fd, data, bytesWritten, bytesTotal - bytesWritten, null);
-      } catch (error) {
-        if (error.code === "EPIPE") break; // ignore broken pipe, e.g., | head
-        fs.closeSync(fd);
-        throw error;
-      }
-    }
-
-    fs.closeSync(fd);
-  }
-};
Index: de_modules/rw/lib/rw/write-file.js
===================================================================
--- node_modules/rw/lib/rw/write-file.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-var fs = require("fs"),
-    encode = require("./encode");
-
-module.exports = function(path, data, options, callback) {
-  if (arguments.length < 4) callback = options, options = null;
-
-  switch (path) {
-    case "/dev/stdout": return writeStream(process.stdout, "write", data, options, callback);
-    case "/dev/stderr": return writeStream(process.stderr, "write", data, options, callback);
-  }
-
-  fs.stat(path, function(error, stat) {
-    if (error && error.code !== "ENOENT") return callback(error);
-    if (stat && stat.isFile()) return fs.writeFile(path, data, options, callback);
-    writeStream(fs.createWriteStream(path, options ? {flags: options.flag || "w"} : {}), "end", data, options, callback); // N.B. flag / flags
-  });
-};
-
-function writeStream(stream, send, data, options, callback) {
-  stream.on("error", function(error) { callback(error.code === "EPIPE" ? null : error); }); // ignore broken pipe, e.g., | head
-  stream[send](encode(data, options), function(error) { callback(error && error.code === "EPIPE" ? null : error); });
-}
Index: de_modules/rw/package.json
===================================================================
--- node_modules/rw/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-{
-  "name": "rw",
-  "version": "1.3.3",
-  "description": "Now stdin and stdout are files.",
-  "keywords": [
-    "fs",
-    "readFile",
-    "writeFile",
-    "stdin",
-    "stdout"
-  ],
-  "homepage": "https://github.com/mbostock/rw",
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Mike Bostock",
-    "url": "http://bost.ocks.org/mike"
-  },
-  "main": "index.js",
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/mbostock/rw.git"
-  },
-  "scripts": {
-    "test": "test/run-tests && eslint index.js lib",
-    "prepublish": "npm test",
-    "postpublish": "git push && git push --tags"
-  },
-  "devDependencies": {
-    "d3-queue": "3",
-    "eslint": "3"
-  }
-}
Index: de_modules/rw/test/cat-async
===================================================================
--- node_modules/rw/test/cat-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.readFile(process.argv[2] || "-", "utf8", function(error, contents) {
-  if (error) throw error;
-  rw.writeFile("-", contents, "utf8", function(error) {
-    if (error) throw error;
-  });
-});
Index: de_modules/rw/test/cat-sync
===================================================================
--- node_modules/rw/test/cat-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFileSync("-", rw.readFileSync(process.argv[2] || "-", "utf8"), "utf8");
Index: de_modules/rw/test/encode-object-async
===================================================================
--- node_modules/rw/test/encode-object-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFile(process.argv[2] || "-", "gréén\n", {encoding: process.argv[3]}, function(error) {
-  if (error) throw error;
-});
Index: de_modules/rw/test/encode-object-sync
===================================================================
--- node_modules/rw/test/encode-object-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFileSync(process.argv[2] || "-", "gréén\n", {encoding: process.argv[3]});
Index: de_modules/rw/test/encode-string-async
===================================================================
--- node_modules/rw/test/encode-string-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFile(process.argv[2] || "-", "gréén\n", process.argv[3], function(error) {
-  if (error) throw error;
-});
Index: de_modules/rw/test/encode-string-sync
===================================================================
--- node_modules/rw/test/encode-string-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFileSync(process.argv[2] || "-", "gréén\n", process.argv[3]);
Index: de_modules/rw/test/encoding-async
===================================================================
--- node_modules/rw/test/encoding-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#!/usr/bin/env node
-
-var fs = require("fs"),
-    queue = require("d3-queue").queue,
-    rw = require("../");
-
-var code = 0;
-
-queue(1)
-    .defer(testRead, "utf8", "gréén\n")
-    .defer(testRead, {encoding: "utf8"}, "gréén\n")
-    .defer(testRead, "ascii", "grC)C)n\n")
-    .defer(testRead, {encoding: "ascii"}, "grC)C)n\n")
-    .defer(testWrite, "utf8", "gréén\n")
-    .defer(testWrite, {encoding: "utf8"}, "gréén\n")
-    .defer(testWrite, "ascii", "gr��n\n")
-    .defer(testWrite, {encoding: "ascii"}, "gr��n\n")
-    .await(done);
-
-function testRead(options, expected, callback) {
-  rw.readFile("test/utf8.txt", options, function(error, actual) {
-    if (error) return void callback(error);
-    if (actual !== expected) console.warn(actual + " !== " + expected), code = 1;
-    callback(null);
-  });
-}
-
-function testWrite(options, expected, callback) {
-  rw.writeFile("test/encoding-async.out", "gréén\n", options, function(error) {
-    if (error) return void callback(error);
-    fs.readFile("test/encoding-async.out", "utf8", function(error, actual) {
-      if (error) return void callback(error);
-      if (actual !== expected) console.warn(actual + " !== " + expected), code = 1;
-      callback(null);
-    });
-  });
-}
-
-function done(error) {
-  if (error) throw error;
-  process.exit(code);
-}
Index: de_modules/rw/test/encoding-sync
===================================================================
--- node_modules/rw/test/encoding-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-#!/usr/bin/env node
-
-var fs = require("fs"),
-    rw = require("../");
-
-var code = 0,
-    actual,
-    expected;
-
-if ((actual = rw.readFileSync("test/utf8.txt", "utf8")) !== (expected = "gréén\n")) code = 1, console.warn(actual + " !== " + expected);
-if ((actual = rw.readFileSync("test/utf8.txt", {encoding: "utf8"})) !== (expected = "gréén\n")) code = 1, console.warn(actual + " !== " + expected);
-if ((actual = rw.readFileSync("test/utf8.txt", "ascii")) !== (expected = "grC)C)n\n")) code = 1, console.warn(actual + " !== " + expected);
-if ((actual = rw.readFileSync("test/utf8.txt", {encoding: "ascii"})) !== (expected = "grC)C)n\n")) code = 1, console.warn(actual + " !== " + expected);
-
-rw.writeFileSync("test/encoding-sync.out", "gréén\n", "utf8"); if ((actual = fs.readFileSync("test/encoding-sync.out", "utf8")) !== (expected = "gréén\n")) code = 1, console.warn(actual + " !== " + expected);
-rw.writeFileSync("test/encoding-sync.out", "gréén\n", {encoding: "utf8"}); if ((actual = fs.readFileSync("test/encoding-sync.out", "utf8")) !== (expected = "gréén\n")) code = 1, console.warn(actual + " !== " + expected);
-rw.writeFileSync("test/encoding-sync.out", "gréén\n", "ascii"); if ((actual = fs.readFileSync("test/encoding-sync.out", "utf8")) !== (expected = "gr��n\n")) code = 1, console.warn(actual + " !== " + expected);
-rw.writeFileSync("test/encoding-sync.out", "gréén\n", {encoding: "ascii"}); if ((actual = fs.readFileSync("test/encoding-sync.out", "utf8")) !== (expected = "gr��n\n")) code = 1, console.warn(actual + " !== " + expected);
-
-process.exit(code);
Index: de_modules/rw/test/run-tests
===================================================================
--- node_modules/rw/test/run-tests	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-#!/bin/bash
-
-FILE=test/input.txt
-
-rm -f -- $FILE
-for i in {1..10000}; do printf '%09X\n' $RANDOM >> $FILE; done
-
-function test()
-{
-   if [[ $1 -eq 0 ]]
-   then
-      echo -e "\x1B[1;32m✓ $2\x1B[0m"
-   else
-      echo -e "\x1B[1;31m✗ $2\x1B[0m"
-   fi
-}
-
-test/encoding-sync; test $? "encoding-sync applies the specified encodings"
-test/encoding-async; test $? "encoding-async applies the specified encodings"
-[ "$(test/wc-async $FILE)" = "100000" ]; test $? "wc-async reads an entire file"
-[ "$(test/wc-sync $FILE)" = "100000" ]; test $? "wc-sync reads an entire file"
-[ "$(test/wc-async < $FILE)" = "100000" ]; test $? "wc-async reads an entire file from stdin"
-[ "$(test/wc-sync < $FILE)" = "100000" ]; test $? "wc-sync reads an entire file from stdin"
-[ "$(cat $FILE | test/wc-async)" = "100000" ]; test $? "wc-async reads an entire file from a pipe"
-[ "$(cat $FILE | test/wc-sync)" = "100000" ]; test $? "wc-sync reads an entire file from a pipe"
-[ "$(test/cat-async $FILE | wc -c | tr -d ' ')" = "100000" ]; test $? "cat-async reads an entire file and writes it to a pipe"
-[ "$(test/cat-sync $FILE | wc -c | tr -d ' ')" = "100000" ]; test $? "cat-sync reads an entire file and writes it to a pipe"
-[ "$(test/cat-async $FILE | test/wc-async)" = "100000" ]; test $? "cat-async reads an entire file and writes it to a pipe to wc-async "
-[ "$(test/cat-async $FILE | test/wc-sync)" = "100000" ]; test $? "cat-async reads an entire file and writes it to a pipe to wc-sync "
-[ "$(test/cat-sync $FILE | test/wc-async)" = "100000" ]; test $? "cat-sync reads an entire file and writes it to a pipe to wc-async "
-[ "$(test/cat-sync $FILE | test/wc-sync)" = "100000" ]; test $? "cat-sync reads an entire file and writes it to a pipe to wc-sync "
-[ "$(test/cat-async < $FILE | wc -c | tr -d ' ')" = "100000" ]; test $? "cat-async reads an entire file from stdin and writes it to a pipe"
-[ "$(test/cat-sync < $FILE | wc -c | tr -d ' ')" = "100000" ]; test $? "cat-sync reads an entire file from stdin and writes it to a pipe"
-[ "$(test/cat-async < $FILE | test/wc-async)" = "100000" ]; test $? "cat-async reads an entire file from stdin and writes it to a pipe to wc-async"
-[ "$(test/cat-async < $FILE | test/wc-sync)" = "100000" ]; test $? "cat-async reads an entire file from stdin and writes it to a pipe to wc-sync"
-[ "$(test/cat-sync < $FILE | test/wc-async)" = "100000" ]; test $? "cat-sync reads an entire file from stdin and writes it to a pipe to wc-async"
-[ "$(test/cat-sync < $FILE | test/wc-sync)" = "100000" ]; test $? "cat-sync reads an entire file from stdin and writes it to a pipe to wc-sync"
-[ "$(cat $FILE | test/cat-async | test/wc-async)" = "100000" ]; test $? "cat-async reads an entire file from a pipe and writes it to a pipe to wc-async"
-[ "$(cat $FILE | test/cat-async | test/wc-sync)" = "100000" ]; test $? "cat-async reads an entire file from a pipe and writes it to a pipe to wc-sync"
-[ "$(cat $FILE | test/cat-sync | test/wc-async)" = "100000" ]; test $? "cat-sync reads an entire file from a pipe and writes it to a pipe to wc-async"
-[ "$(cat $FILE | test/cat-sync | test/wc-sync)" = "100000" ]; test $? "cat-sync reads an entire file from a pipe and writes it to a pipe to wc-sync"
-[ "$(cat $FILE | test/cat-async | head -n 100 | test/wc-async)" = "1000" ]; test $? "cat-async reads an entire file from a pipe and writes it to a pipe to head to wc-async"
-[ "$(cat $FILE | test/cat-async | head -n 100 | test/wc-sync)" = "1000" ]; test $? "cat-async reads an entire file from a pipe and writes it to a pipe to head to wc-sync"
-[ "$(cat $FILE | test/cat-sync | head -n 100 | test/wc-async)" = "1000" ]; test $? "cat-sync reads an entire file from a pipe and writes it to a pipe to head to wc-async"
-[ "$(cat $FILE | test/cat-sync | head -n 100 | test/wc-sync)" = "1000" ]; test $? "cat-sync reads an entire file from a pipe and writes it to a pipe to head to wc-sync"
-[ "$(cat $FILE 2> /dev/null | head -n 100 | test/cat-async | test/wc-async)" = "1000" ]; test $? "cat-async reads the head of a file from a pipe and writes it to wc-async"
-[ "$(cat $FILE 2> /dev/null | head -n 100 | test/cat-async | test/wc-sync)" = "1000" ]; test $? "cat-async reads the head of a file from a pipe and writes it to wc-sync"
-[ "$(cat $FILE 2> /dev/null | head -n 100 | test/cat-sync | test/wc-async)" = "1000" ]; test $? "cat-sync reads the head of a file from a pipe and writes it to wc-async"
-[ "$(cat $FILE 2> /dev/null | head -n 100 | test/cat-sync | test/wc-sync)" = "1000" ]; test $? "cat-sync reads the head of a file from a pipe and writes it to wc-sync"
-[ "$(test/write-async test/write.out && cat test/write.out)" = "Hello, world!" ]; test $? "write-async writes an entire file"
-[ "$(test/write-sync test/write.out && cat test/write.out)" = "Hello, world!" ]; test $? "write-sync writes an entire file"
-
-rm -f -- $FILE test/write.out test/encoding-sync.out test/encoding-async.out
Index: de_modules/rw/test/utf8.txt
===================================================================
--- node_modules/rw/test/utf8.txt	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-gréén
Index: de_modules/rw/test/wc-async
===================================================================
--- node_modules/rw/test/wc-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.readFile(process.argv[2] || "-", function(error, contents) {
-  if (error) throw error;
-  console.log(contents.length);
-});
Index: de_modules/rw/test/wc-sync
===================================================================
--- node_modules/rw/test/wc-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-console.log(rw.readFileSync(process.argv[2] || "-", "utf8").length);
Index: de_modules/rw/test/write-async
===================================================================
--- node_modules/rw/test/write-async	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFile(process.argv[2] || "-", "Hello, world!", "utf8", function(error) {
-  if (error) throw error;
-});
Index: de_modules/rw/test/write-sync
===================================================================
--- node_modules/rw/test/write-sync	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-#!/usr/bin/env node
-
-var rw = require("../").dash;
-
-rw.writeFileSync(process.argv[2] || "-", "Hello, world!", "utf8");
Index: de_modules/safer-buffer/LICENSE
===================================================================
--- node_modules/safer-buffer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2018 Nikita Skovoroda <chalkerx@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/safer-buffer/Porting-Buffer.md
===================================================================
--- node_modules/safer-buffer/Porting-Buffer.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,268 +1,0 @@
-# Porting to the Buffer.from/Buffer.alloc API
-
-<a id="overview"></a>
-## Overview
-
-- [Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.](#variant-1) (*recommended*)
-- [Variant 2: Use a polyfill](#variant-2)
-- [Variant 3: manual detection, with safeguards](#variant-3)
-
-### Finding problematic bits of code using grep
-
-Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`.
-
-It will find all the potentially unsafe places in your own code (with some considerably unlikely
-exceptions).
-
-### Finding problematic bits of code using Node.js 8
-
-If you’re using Node.js ≥ 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code:
-
-- `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js.
-- `--trace-deprecation` does the same thing, but only for deprecation warnings.
-- `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8.
-
-You can set these flags using an environment variable:
-
-```console
-$ export NODE_OPTIONS='--trace-warnings --pending-deprecation'
-$ cat example.js
-'use strict';
-const foo = new Buffer('foo');
-$ node example.js
-(node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead.
-    at showFlaggedDeprecation (buffer.js:127:13)
-    at new Buffer (buffer.js:148:3)
-    at Object.<anonymous> (/path/to/example.js:2:13)
-    [... more stack trace lines ...]
-```
-
-### Finding problematic bits of code using linters
-
-Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
-or
-[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
-also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets.
-
-There is a drawback, though, that it doesn't always
-[work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is
-overriden e.g. with a polyfill, so recommended is a combination of this and some other method
-described above.
-
-<a id="variant-1"></a>
-## Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.
-
-This is the recommended solution nowadays that would imply only minimal overhead.
-
-The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (→ [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible.
-
-What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way:
-
-- For `new Buffer(number)`, replace it with `Buffer.alloc(number)`.
-- For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`).
-- For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`.
-
-Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than
-`new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling.
-
-Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
-or
-[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
-is recommended to avoid accidential unsafe Buffer API usage.
-
-There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005)
-for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`.
-Note that it currently only works with cases where the arguments are literals or where the
-constructor is invoked with two arguments.
-
-_If you currently support those older Node.js versions and dropping them would be a semver-major change
-for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2)
-or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive
-the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and
-your users will not observe a runtime deprecation warning when running your code on Node.js 10._
-
-<a id="variant-2"></a>
-## Variant 2: Use a polyfill
-
-Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older
-Node.js versions.
-
-You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill
-`const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api.
-
-Make sure that you do not use old `new Buffer` API — in any files where the line above is added,
-using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though.
-
-Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or
-[buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) —
-those are great, the only downsides being 4 deps in the tree and slightly more code changes to
-migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only
-`Buffer.from` polyfilled — `buffer-from` alone which comes with no extra dependencies.
-
-_Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) — it also
-provides a polyfill, but takes a different approach which has
-[it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you
-to also use the older `new Buffer()` API in your code, though — but that's arguably a benefit, as
-it is problematic, can cause issues in your code, and will start emitting runtime deprecation
-warnings starting with Node.js 10._
-
-Note that in either case, it is important that you also remove all calls to the old Buffer
-API manually — just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides
-a polyfill for the new API. I have seen people doing that mistake.
-
-Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
-or
-[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
-is recommended.
-
-_Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._
-
-<a id="variant-3"></a>
-## Variant 3 — manual detection, with safeguards
-
-This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own
-wrapper around them.
-
-### Buffer(0)
-
-This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which
-returns the same result all the way down to Node.js 0.8.x.
-
-### Buffer(notNumber)
-
-Before:
-
-```js
-var buf = new Buffer(notNumber, encoding);
-```
-
-After:
-
-```js
-var buf;
-if (Buffer.from && Buffer.from !== Uint8Array.from) {
-  buf = Buffer.from(notNumber, encoding);
-} else {
-  if (typeof notNumber === 'number')
-    throw new Error('The "size" argument must be of type number.');
-  buf = new Buffer(notNumber, encoding);
-}
-```
-
-`encoding` is optional.
-
-Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not
-hard-coded) and _is not caused by the deprecation of Buffer constructor_ — it's exactly _why_ the
-Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous
-security issues — situations when unsanitized user input could end up in the `Buffer(arg)` create
-problems ranging from DoS to leaking sensitive information to the attacker from the process memory.
-
-When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can
-be omitted.
-
-Also note that using TypeScript does not fix this problem for you — when libs written in
-`TypeScript` are used from JS, or when user input ends up there — it behaves exactly as pure JS, as
-all type checks are translation-time only and are not present in the actual JS code which TS
-compiles to.
-
-### Buffer(number)
-
-For Node.js 0.10.x (and below) support:
-
-```js
-var buf;
-if (Buffer.alloc) {
-  buf = Buffer.alloc(number);
-} else {
-  buf = new Buffer(number);
-  buf.fill(0);
-}
-```
-
-Otherwise (Node.js ≥ 0.12.x):
-
-```js
-const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0);
-```
-
-## Regarding Buffer.allocUnsafe
-
-Be extra cautious when using `Buffer.allocUnsafe`:
- * Don't use it if you don't have a good reason to
-   * e.g. you probably won't ever see a performance difference for small buffers, in fact, those
-     might be even faster with `Buffer.alloc()`,
-   * if your code is not in the hot code path — you also probably won't notice a difference,
-   * keep in mind that zero-filling minimizes the potential risks.
- * If you use it, make sure that you never return the buffer in a partially-filled state,
-   * if you are writing to it sequentially — always truncate it to the actuall written length
-
-Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues,
-ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs)
-leaking to the remote attacker.
-
-_Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js
-version (and lacking type checks also adds DoS to the list of potential problems)._
-
-<a id="faq"></a>
-## FAQ
-
-<a id="design-flaws"></a>
-### What is wrong with the `Buffer` constructor?
-
-The `Buffer` constructor could be used to create a buffer in many different ways:
-
-- `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained
-  *arbitrary memory* for performance reasons, which could include anything ranging from
-  program source code to passwords and encryption keys.
-- `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of
-  the string `'abc'`. A second argument could specify another encoding: For example,
-  `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original
-  sequence of bytes that it represents.
-- There are several other combinations of arguments.
-
-This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell
-what exactly the contents of the generated buffer are* without knowing the type of `foo`.
-
-Sometimes, the value of `foo` comes from an external source. For example, this function
-could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form:
-
-```
-function stringToBase64(req, res) {
-  // The request body should have the format of `{ string: 'foobar' }`
-  const rawBytes = new Buffer(req.body.string)
-  const encoded = rawBytes.toString('base64')
-  res.end({ encoded: encoded })
-}
-```
-
-Note that this code does *not* validate the type of `req.body.string`:
-
-- `req.body.string` is expected to be a string. If this is the case, all goes well.
-- `req.body.string` is controlled by the client that sends the request.
-- If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes:
-  - Before Node.js 8, the content would be uninitialized
-  - After Node.js 8, the content would be `50` bytes with the value `0`
-
-Because of the missing type check, an attacker could intentionally send a number
-as part of the request. Using this, they can either:
-
-- Read uninitialized memory. This **will** leak passwords, encryption keys and other
-  kinds of sensitive information. (Information leak)
-- Force the program to allocate a large amount of memory. For example, when specifying
-  `500000000` as the input value, each request will allocate 500MB of memory.
-  This can be used to either exhaust the memory available of a program completely
-  and make it crash, or slow it down significantly. (Denial of Service)
-
-Both of these scenarios are considered serious security issues in a real-world
-web server context.
-
-when using `Buffer.from(req.body.string)` instead, passing a number will always
-throw an exception instead, giving a controlled behaviour that can always be
-handled by the program.
-
-<a id="ecosystem-usage"></a>
-### The `Buffer()` constructor has been deprecated for a while. Is this really an issue?
-
-Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still
-widely used. This includes new code, and overall usage of such code has actually been
-*increasing*.
Index: de_modules/safer-buffer/Readme.md
===================================================================
--- node_modules/safer-buffer/Readme.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,156 +1,0 @@
-# safer-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![javascript style guide][standard-image]][standard-url] [![Security Responsible Disclosure][secuirty-image]][secuirty-url]
-
-[travis-image]: https://travis-ci.org/ChALkeR/safer-buffer.svg?branch=master
-[travis-url]: https://travis-ci.org/ChALkeR/safer-buffer
-[npm-image]: https://img.shields.io/npm/v/safer-buffer.svg
-[npm-url]: https://npmjs.org/package/safer-buffer
-[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
-[standard-url]: https://standardjs.com
-[secuirty-image]: https://img.shields.io/badge/Security-Responsible%20Disclosure-green.svg
-[secuirty-url]: https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md
-
-Modern Buffer API polyfill without footguns, working on Node.js from 0.8 to current.
-
-## How to use?
-
-First, port all `Buffer()` and `new Buffer()` calls to `Buffer.alloc()` and `Buffer.from()` API.
-
-Then, to achieve compatibility with outdated Node.js versions (`<4.5.0` and 5.x `<5.9.0`), use
-`const Buffer = require('safer-buffer').Buffer` in all files where you make calls to the new
-Buffer API. _Use `var` instead of `const` if you need that for your Node.js version range support._
-
-Also, see the
-[porting Buffer](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) guide.
-
-## Do I need it?
-
-Hopefully, not — dropping support for outdated Node.js versions should be fine nowdays, and that
-is the recommended path forward. You _do_ need to port to the `Buffer.alloc()` and `Buffer.from()`
-though.
-
-See the [porting guide](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md)
-for a better description.
-
-## Why not [safe-buffer](https://npmjs.com/safe-buffer)?
-
-_In short: while `safe-buffer` serves as a polyfill for the new API, it allows old API usage and
-itself contains footguns._
-
-`safe-buffer` could be used safely to get the new API while still keeping support for older
-Node.js versions (like this module), but while analyzing ecosystem usage of the old Buffer API
-I found out that `safe-buffer` is itself causing problems in some cases.
-
-For example, consider the following snippet:
-
-```console
-$ cat example.unsafe.js
-console.log(Buffer(20))
-$ ./node-v6.13.0-linux-x64/bin/node example.unsafe.js
-<Buffer 0a 00 00 00 00 00 00 00 28 13 de 02 00 00 00 00 05 00 00 00>
-$ standard example.unsafe.js
-standard: Use JavaScript Standard Style (https://standardjs.com)
-  /home/chalker/repo/safer-buffer/example.unsafe.js:2:13: 'Buffer()' was deprecated since v6. Use 'Buffer.alloc()' or 'Buffer.from()' (use 'https://www.npmjs.com/package/safe-buffer' for '<4.5.0') instead.
-```
-
-This is allocates and writes to console an uninitialized chunk of memory.
-[standard](https://www.npmjs.com/package/standard) linter (among others) catch that and warn people
-to avoid using unsafe API.
-
-Let's now throw in `safe-buffer`!
-
-```console
-$ cat example.safe-buffer.js
-const Buffer = require('safe-buffer').Buffer
-console.log(Buffer(20))
-$ standard example.safe-buffer.js
-$ ./node-v6.13.0-linux-x64/bin/node example.safe-buffer.js
-<Buffer 08 00 00 00 00 00 00 00 28 58 01 82 fe 7f 00 00 00 00 00 00>
-```
-
-See the problem? Adding in `safe-buffer` _magically removes the lint warning_, but the behavior
-remains identiсal to what we had before, and when launched on Node.js 6.x LTS — this dumps out
-chunks of uninitialized memory.
-_And this code will still emit runtime warnings on Node.js 10.x and above._
-
-That was done by design. I first considered changing `safe-buffer`, prohibiting old API usage or
-emitting warnings on it, but that significantly diverges from `safe-buffer` design. After some
-discussion, it was decided to move my approach into a separate package, and _this is that separate
-package_.
-
-This footgun is not imaginary — I observed top-downloaded packages doing that kind of thing,
-«fixing» the lint warning by blindly including `safe-buffer` without any actual changes.
-
-Also in some cases, even if the API _was_ migrated to use of safe Buffer API — a random pull request
-can bring unsafe Buffer API usage back to the codebase by adding new calls — and that could go
-unnoticed even if you have a linter prohibiting that (becase of the reason stated above), and even
-pass CI. _I also observed that being done in popular packages._
-
-Some examples:
- * [webdriverio](https://github.com/webdriverio/webdriverio/commit/05cbd3167c12e4930f09ef7cf93b127ba4effae4#diff-124380949022817b90b622871837d56cR31)
-   (a module with 548 759 downloads/month),
- * [websocket-stream](https://github.com/maxogden/websocket-stream/commit/c9312bd24d08271687d76da0fe3c83493871cf61)
-   (218 288 d/m, fix in [maxogden/websocket-stream#142](https://github.com/maxogden/websocket-stream/pull/142)),
- * [node-serialport](https://github.com/node-serialport/node-serialport/commit/e8d9d2b16c664224920ce1c895199b1ce2def48c)
-   (113 138 d/m, fix in [node-serialport/node-serialport#1510](https://github.com/node-serialport/node-serialport/pull/1510)),
- * [karma](https://github.com/karma-runner/karma/commit/3d94b8cf18c695104ca195334dc75ff054c74eec)
-   (3 973 193 d/m, fix in [karma-runner/karma#2947](https://github.com/karma-runner/karma/pull/2947)),
- * [spdy-transport](https://github.com/spdy-http2/spdy-transport/commit/5375ac33f4a62a4f65bcfc2827447d42a5dbe8b1)
-   (5 970 727 d/m, fix in [spdy-http2/spdy-transport#53](https://github.com/spdy-http2/spdy-transport/pull/53)).
- * And there are a lot more over the ecosystem.
-
-I filed a PR at
-[mysticatea/eslint-plugin-node#110](https://github.com/mysticatea/eslint-plugin-node/pull/110) to
-partially fix that (for cases when that lint rule is used), but it is a semver-major change for
-linter rules and presets, so it would take significant time for that to reach actual setups.
-_It also hasn't been released yet (2018-03-20)._
-
-Also, `safer-buffer` discourages the usage of `.allocUnsafe()`, which is often done by a mistake.
-It still supports it with an explicit concern barier, by placing it under
-`require('safer-buffer/dangereous')`.
-
-## But isn't throwing bad?
-
-Not really. It's an error that could be noticed and fixed early, instead of causing havoc later like
-unguarded `new Buffer()` calls that end up receiving user input can do.
-
-This package affects only the files where `var Buffer = require('safer-buffer').Buffer` was done, so
-it is really simple to keep track of things and make sure that you don't mix old API usage with that.
-Also, CI should hint anything that you might have missed.
-
-New commits, if tested, won't land new usage of unsafe Buffer API this way.
-_Node.js 10.x also deals with that by printing a runtime depecation warning._
-
-### Would it affect third-party modules?
-
-No, unless you explicitly do an awful thing like monkey-patching or overriding the built-in `Buffer`.
-Don't do that.
-
-### But I don't want throwing…
-
-That is also fine!
-
-Also, it could be better in some cases when you don't comprehensive enough test coverage.
-
-In that case — just don't override `Buffer` and use
-`var SaferBuffer = require('safer-buffer').Buffer` instead.
-
-That way, everything using `Buffer` natively would still work, but there would be two drawbacks:
-
-* `Buffer.from`/`Buffer.alloc` won't be polyfilled — use `SaferBuffer.from` and
-  `SaferBuffer.alloc` instead.
-* You are still open to accidentally using the insecure deprecated API — use a linter to catch that.
-
-Note that using a linter to catch accidential `Buffer` constructor usage in this case is strongly
-recommended. `Buffer` is not overriden in this usecase, so linters won't get confused.
-
-## «Without footguns»?
-
-Well, it is still possible to do _some_ things with `Buffer` API, e.g. accessing `.buffer` property
-on older versions and duping things from there. You shouldn't do that in your code, probabably.
-
-The intention is to remove the most significant footguns that affect lots of packages in the
-ecosystem, and to do it in the proper way.
-
-Also, this package doesn't protect against security issues affecting some Node.js versions, so for
-usage in your own production code, it is still recommended to update to a Node.js version
-[supported by upstream](https://github.com/nodejs/release#release-schedule).
Index: de_modules/safer-buffer/dangerous.js
===================================================================
--- node_modules/safer-buffer/dangerous.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/* eslint-disable node/no-deprecated-api */
-
-'use strict'
-
-var buffer = require('buffer')
-var Buffer = buffer.Buffer
-var safer = require('./safer.js')
-var Safer = safer.Buffer
-
-var dangerous = {}
-
-var key
-
-for (key in safer) {
-  if (!safer.hasOwnProperty(key)) continue
-  dangerous[key] = safer[key]
-}
-
-var Dangereous = dangerous.Buffer = {}
-
-// Copy Safer API
-for (key in Safer) {
-  if (!Safer.hasOwnProperty(key)) continue
-  Dangereous[key] = Safer[key]
-}
-
-// Copy those missing unsafe methods, if they are present
-for (key in Buffer) {
-  if (!Buffer.hasOwnProperty(key)) continue
-  if (Dangereous.hasOwnProperty(key)) continue
-  Dangereous[key] = Buffer[key]
-}
-
-if (!Dangereous.allocUnsafe) {
-  Dangereous.allocUnsafe = function (size) {
-    if (typeof size !== 'number') {
-      throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
-    }
-    if (size < 0 || size >= 2 * (1 << 30)) {
-      throw new RangeError('The value "' + size + '" is invalid for option "size"')
-    }
-    return Buffer(size)
-  }
-}
-
-if (!Dangereous.allocUnsafeSlow) {
-  Dangereous.allocUnsafeSlow = function (size) {
-    if (typeof size !== 'number') {
-      throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
-    }
-    if (size < 0 || size >= 2 * (1 << 30)) {
-      throw new RangeError('The value "' + size + '" is invalid for option "size"')
-    }
-    return buffer.SlowBuffer(size)
-  }
-}
-
-module.exports = dangerous
Index: de_modules/safer-buffer/package.json
===================================================================
--- node_modules/safer-buffer/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-{
-  "name": "safer-buffer",
-  "version": "2.1.2",
-  "description": "Modern Buffer API polyfill without footguns",
-  "main": "safer.js",
-  "scripts": {
-    "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js",
-    "test": "standard && tape tests.js"
-  },
-  "author": {
-    "name": "Nikita Skovoroda",
-    "email": "chalkerx@gmail.com",
-    "url": "https://github.com/ChALkeR"
-  },
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/ChALkeR/safer-buffer.git"
-  },
-  "bugs": {
-    "url": "https://github.com/ChALkeR/safer-buffer/issues"
-  },
-  "devDependencies": {
-    "standard": "^11.0.1",
-    "tape": "^4.9.0"
-  },
-  "files": [
-    "Porting-Buffer.md",
-    "Readme.md",
-    "tests.js",
-    "dangerous.js",
-    "safer.js"
-  ]
-}
Index: de_modules/safer-buffer/safer.js
===================================================================
--- node_modules/safer-buffer/safer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,77 +1,0 @@
-/* eslint-disable node/no-deprecated-api */
-
-'use strict'
-
-var buffer = require('buffer')
-var Buffer = buffer.Buffer
-
-var safer = {}
-
-var key
-
-for (key in buffer) {
-  if (!buffer.hasOwnProperty(key)) continue
-  if (key === 'SlowBuffer' || key === 'Buffer') continue
-  safer[key] = buffer[key]
-}
-
-var Safer = safer.Buffer = {}
-for (key in Buffer) {
-  if (!Buffer.hasOwnProperty(key)) continue
-  if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
-  Safer[key] = Buffer[key]
-}
-
-safer.Buffer.prototype = Buffer.prototype
-
-if (!Safer.from || Safer.from === Uint8Array.from) {
-  Safer.from = function (value, encodingOrOffset, length) {
-    if (typeof value === 'number') {
-      throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
-    }
-    if (value && typeof value.length === 'undefined') {
-      throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
-    }
-    return Buffer(value, encodingOrOffset, length)
-  }
-}
-
-if (!Safer.alloc) {
-  Safer.alloc = function (size, fill, encoding) {
-    if (typeof size !== 'number') {
-      throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
-    }
-    if (size < 0 || size >= 2 * (1 << 30)) {
-      throw new RangeError('The value "' + size + '" is invalid for option "size"')
-    }
-    var buf = Buffer(size)
-    if (!fill || fill.length === 0) {
-      buf.fill(0)
-    } else if (typeof encoding === 'string') {
-      buf.fill(fill, encoding)
-    } else {
-      buf.fill(fill)
-    }
-    return buf
-  }
-}
-
-if (!safer.kStringMaxLength) {
-  try {
-    safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
-  } catch (e) {
-    // we can't determine kStringMaxLength in environments where process.binding
-    // is unsupported, so let's not set it
-  }
-}
-
-if (!safer.constants) {
-  safer.constants = {
-    MAX_LENGTH: safer.kMaxLength
-  }
-  if (safer.kStringMaxLength) {
-    safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
-  }
-}
-
-module.exports = safer
Index: de_modules/safer-buffer/tests.js
===================================================================
--- node_modules/safer-buffer/tests.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,406 +1,0 @@
-/* eslint-disable node/no-deprecated-api */
-
-'use strict'
-
-var test = require('tape')
-
-var buffer = require('buffer')
-
-var index = require('./')
-var safer = require('./safer')
-var dangerous = require('./dangerous')
-
-/* Inheritance tests */
-
-test('Default is Safer', function (t) {
-  t.equal(index, safer)
-  t.notEqual(safer, dangerous)
-  t.notEqual(index, dangerous)
-  t.end()
-})
-
-test('Is not a function', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.equal(typeof impl, 'object')
-    t.equal(typeof impl.Buffer, 'object')
-  });
-  [buffer].forEach(function (impl) {
-    t.equal(typeof impl, 'object')
-    t.equal(typeof impl.Buffer, 'function')
-  })
-  t.end()
-})
-
-test('Constructor throws', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.throws(function () { impl.Buffer() })
-    t.throws(function () { impl.Buffer(0) })
-    t.throws(function () { impl.Buffer('a') })
-    t.throws(function () { impl.Buffer('a', 'utf-8') })
-    t.throws(function () { return new impl.Buffer() })
-    t.throws(function () { return new impl.Buffer(0) })
-    t.throws(function () { return new impl.Buffer('a') })
-    t.throws(function () { return new impl.Buffer('a', 'utf-8') })
-  })
-  t.end()
-})
-
-test('Safe methods exist', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.equal(typeof impl.Buffer.alloc, 'function', 'alloc')
-    t.equal(typeof impl.Buffer.from, 'function', 'from')
-  })
-  t.end()
-})
-
-test('Unsafe methods exist only in Dangerous', function (t) {
-  [index, safer].forEach(function (impl) {
-    t.equal(typeof impl.Buffer.allocUnsafe, 'undefined')
-    t.equal(typeof impl.Buffer.allocUnsafeSlow, 'undefined')
-  });
-  [dangerous].forEach(function (impl) {
-    t.equal(typeof impl.Buffer.allocUnsafe, 'function')
-    t.equal(typeof impl.Buffer.allocUnsafeSlow, 'function')
-  })
-  t.end()
-})
-
-test('Generic methods/properties are defined and equal', function (t) {
-  ['poolSize', 'isBuffer', 'concat', 'byteLength'].forEach(function (method) {
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl.Buffer[method], buffer.Buffer[method], method)
-      t.notEqual(typeof impl.Buffer[method], 'undefined', method)
-    })
-  })
-  t.end()
-})
-
-test('Built-in buffer static methods/properties are inherited', function (t) {
-  Object.keys(buffer).forEach(function (method) {
-    if (method === 'SlowBuffer' || method === 'Buffer') return;
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl[method], buffer[method], method)
-      t.notEqual(typeof impl[method], 'undefined', method)
-    })
-  })
-  t.end()
-})
-
-test('Built-in Buffer static methods/properties are inherited', function (t) {
-  Object.keys(buffer.Buffer).forEach(function (method) {
-    if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return;
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl.Buffer[method], buffer.Buffer[method], method)
-      t.notEqual(typeof impl.Buffer[method], 'undefined', method)
-    })
-  })
-  t.end()
-})
-
-test('.prototype property of Buffer is inherited', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.equal(impl.Buffer.prototype, buffer.Buffer.prototype, 'prototype')
-    t.notEqual(typeof impl.Buffer.prototype, 'undefined', 'prototype')
-  })
-  t.end()
-})
-
-test('All Safer methods are present in Dangerous', function (t) {
-  Object.keys(safer).forEach(function (method) {
-    if (method === 'Buffer') return;
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl[method], safer[method], method)
-      if (method !== 'kStringMaxLength') {
-        t.notEqual(typeof impl[method], 'undefined', method)
-      }
-    })
-  })
-  Object.keys(safer.Buffer).forEach(function (method) {
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl.Buffer[method], safer.Buffer[method], method)
-      t.notEqual(typeof impl.Buffer[method], 'undefined', method)
-    })
-  })
-  t.end()
-})
-
-test('Safe methods from Dangerous methods are present in Safer', function (t) {
-  Object.keys(dangerous).forEach(function (method) {
-    if (method === 'Buffer') return;
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl[method], dangerous[method], method)
-      if (method !== 'kStringMaxLength') {
-        t.notEqual(typeof impl[method], 'undefined', method)
-      }
-    })
-  })
-  Object.keys(dangerous.Buffer).forEach(function (method) {
-    if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return;
-    [index, safer, dangerous].forEach(function (impl) {
-      t.equal(impl.Buffer[method], dangerous.Buffer[method], method)
-      t.notEqual(typeof impl.Buffer[method], 'undefined', method)
-    })
-  })
-  t.end()
-})
-
-/* Behaviour tests */
-
-test('Methods return Buffers', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0)))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 10)))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 'a')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10)))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10, 'x')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(9, 'ab')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string', 'utf-8')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64')))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([0, 42, 3])))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(new Uint8Array([0, 42, 3]))))
-    t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([])))
-  });
-  ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
-    t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](0)))
-    t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](10)))
-  })
-  t.end()
-})
-
-test('Constructor is buffer.Buffer', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.equal(impl.Buffer.alloc(0).constructor, buffer.Buffer)
-    t.equal(impl.Buffer.alloc(0, 10).constructor, buffer.Buffer)
-    t.equal(impl.Buffer.alloc(0, 'a').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.alloc(10).constructor, buffer.Buffer)
-    t.equal(impl.Buffer.alloc(10, 'x').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.alloc(9, 'ab').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from('').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from('string').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from('string', 'utf-8').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from([0, 42, 3]).constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).constructor, buffer.Buffer)
-    t.equal(impl.Buffer.from([]).constructor, buffer.Buffer)
-  });
-  [0, 10, 100].forEach(function (arg) {
-    t.equal(dangerous.Buffer.allocUnsafe(arg).constructor, buffer.Buffer)
-    t.equal(dangerous.Buffer.allocUnsafeSlow(arg).constructor, buffer.SlowBuffer(0).constructor)
-  })
-  t.end()
-})
-
-test('Invalid calls throw', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.throws(function () { impl.Buffer.from(0) })
-    t.throws(function () { impl.Buffer.from(10) })
-    t.throws(function () { impl.Buffer.from(10, 'utf-8') })
-    t.throws(function () { impl.Buffer.from('string', 'invalid encoding') })
-    t.throws(function () { impl.Buffer.from(-10) })
-    t.throws(function () { impl.Buffer.from(1e90) })
-    t.throws(function () { impl.Buffer.from(Infinity) })
-    t.throws(function () { impl.Buffer.from(-Infinity) })
-    t.throws(function () { impl.Buffer.from(NaN) })
-    t.throws(function () { impl.Buffer.from(null) })
-    t.throws(function () { impl.Buffer.from(undefined) })
-    t.throws(function () { impl.Buffer.from() })
-    t.throws(function () { impl.Buffer.from({}) })
-    t.throws(function () { impl.Buffer.alloc('') })
-    t.throws(function () { impl.Buffer.alloc('string') })
-    t.throws(function () { impl.Buffer.alloc('string', 'utf-8') })
-    t.throws(function () { impl.Buffer.alloc('b25ldHdvdGhyZWU=', 'base64') })
-    t.throws(function () { impl.Buffer.alloc(-10) })
-    t.throws(function () { impl.Buffer.alloc(1e90) })
-    t.throws(function () { impl.Buffer.alloc(2 * (1 << 30)) })
-    t.throws(function () { impl.Buffer.alloc(Infinity) })
-    t.throws(function () { impl.Buffer.alloc(-Infinity) })
-    t.throws(function () { impl.Buffer.alloc(null) })
-    t.throws(function () { impl.Buffer.alloc(undefined) })
-    t.throws(function () { impl.Buffer.alloc() })
-    t.throws(function () { impl.Buffer.alloc([]) })
-    t.throws(function () { impl.Buffer.alloc([0, 42, 3]) })
-    t.throws(function () { impl.Buffer.alloc({}) })
-  });
-  ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
-    t.throws(function () { dangerous.Buffer[method]('') })
-    t.throws(function () { dangerous.Buffer[method]('string') })
-    t.throws(function () { dangerous.Buffer[method]('string', 'utf-8') })
-    t.throws(function () { dangerous.Buffer[method](2 * (1 << 30)) })
-    t.throws(function () { dangerous.Buffer[method](Infinity) })
-    if (dangerous.Buffer[method] === buffer.Buffer.allocUnsafe) {
-      t.skip('Skipping, older impl of allocUnsafe coerced negative sizes to 0')
-    } else {
-      t.throws(function () { dangerous.Buffer[method](-10) })
-      t.throws(function () { dangerous.Buffer[method](-1e90) })
-      t.throws(function () { dangerous.Buffer[method](-Infinity) })
-    }
-    t.throws(function () { dangerous.Buffer[method](null) })
-    t.throws(function () { dangerous.Buffer[method](undefined) })
-    t.throws(function () { dangerous.Buffer[method]() })
-    t.throws(function () { dangerous.Buffer[method]([]) })
-    t.throws(function () { dangerous.Buffer[method]([0, 42, 3]) })
-    t.throws(function () { dangerous.Buffer[method]({}) })
-  })
-  t.end()
-})
-
-test('Buffers have appropriate lengths', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.equal(impl.Buffer.alloc(0).length, 0)
-    t.equal(impl.Buffer.alloc(10).length, 10)
-    t.equal(impl.Buffer.from('').length, 0)
-    t.equal(impl.Buffer.from('string').length, 6)
-    t.equal(impl.Buffer.from('string', 'utf-8').length, 6)
-    t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').length, 11)
-    t.equal(impl.Buffer.from([0, 42, 3]).length, 3)
-    t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).length, 3)
-    t.equal(impl.Buffer.from([]).length, 0)
-  });
-  ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
-    t.equal(dangerous.Buffer[method](0).length, 0)
-    t.equal(dangerous.Buffer[method](10).length, 10)
-  })
-  t.end()
-})
-
-test('Buffers have appropriate lengths (2)', function (t) {
-  t.equal(index.Buffer.alloc, safer.Buffer.alloc)
-  t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
-  var ok = true;
-  [ safer.Buffer.alloc,
-    dangerous.Buffer.allocUnsafe,
-    dangerous.Buffer.allocUnsafeSlow
-  ].forEach(function (method) {
-    for (var i = 0; i < 1e2; i++) {
-      var length = Math.round(Math.random() * 1e5)
-      var buf = method(length)
-      if (!buffer.Buffer.isBuffer(buf)) ok = false
-      if (buf.length !== length) ok = false
-    }
-  })
-  t.ok(ok)
-  t.end()
-})
-
-test('.alloc(size) is zero-filled and has correct length', function (t) {
-  t.equal(index.Buffer.alloc, safer.Buffer.alloc)
-  t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
-  var ok = true
-  for (var i = 0; i < 1e2; i++) {
-    var length = Math.round(Math.random() * 2e6)
-    var buf = index.Buffer.alloc(length)
-    if (!buffer.Buffer.isBuffer(buf)) ok = false
-    if (buf.length !== length) ok = false
-    var j
-    for (j = 0; j < length; j++) {
-      if (buf[j] !== 0) ok = false
-    }
-    buf.fill(1)
-    for (j = 0; j < length; j++) {
-      if (buf[j] !== 1) ok = false
-    }
-  }
-  t.ok(ok)
-  t.end()
-})
-
-test('.allocUnsafe / .allocUnsafeSlow are fillable and have correct lengths', function (t) {
-  ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
-    var ok = true
-    for (var i = 0; i < 1e2; i++) {
-      var length = Math.round(Math.random() * 2e6)
-      var buf = dangerous.Buffer[method](length)
-      if (!buffer.Buffer.isBuffer(buf)) ok = false
-      if (buf.length !== length) ok = false
-      buf.fill(0, 0, length)
-      var j
-      for (j = 0; j < length; j++) {
-        if (buf[j] !== 0) ok = false
-      }
-      buf.fill(1, 0, length)
-      for (j = 0; j < length; j++) {
-        if (buf[j] !== 1) ok = false
-      }
-    }
-    t.ok(ok, method)
-  })
-  t.end()
-})
-
-test('.alloc(size, fill) is `fill`-filled', function (t) {
-  t.equal(index.Buffer.alloc, safer.Buffer.alloc)
-  t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
-  var ok = true
-  for (var i = 0; i < 1e2; i++) {
-    var length = Math.round(Math.random() * 2e6)
-    var fill = Math.round(Math.random() * 255)
-    var buf = index.Buffer.alloc(length, fill)
-    if (!buffer.Buffer.isBuffer(buf)) ok = false
-    if (buf.length !== length) ok = false
-    for (var j = 0; j < length; j++) {
-      if (buf[j] !== fill) ok = false
-    }
-  }
-  t.ok(ok)
-  t.end()
-})
-
-test('.alloc(size, fill) is `fill`-filled', function (t) {
-  t.equal(index.Buffer.alloc, safer.Buffer.alloc)
-  t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
-  var ok = true
-  for (var i = 0; i < 1e2; i++) {
-    var length = Math.round(Math.random() * 2e6)
-    var fill = Math.round(Math.random() * 255)
-    var buf = index.Buffer.alloc(length, fill)
-    if (!buffer.Buffer.isBuffer(buf)) ok = false
-    if (buf.length !== length) ok = false
-    for (var j = 0; j < length; j++) {
-      if (buf[j] !== fill) ok = false
-    }
-  }
-  t.ok(ok)
-  t.deepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 97))
-  t.notDeepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 98))
-
-  var tmp = new buffer.Buffer(2)
-  tmp.fill('ok')
-  if (tmp[1] === tmp[0]) {
-    // Outdated Node.js
-    t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('ooooo'))
-  } else {
-    t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('okoko'))
-  }
-  t.notDeepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('kokok'))
-
-  t.end()
-})
-
-test('safer.Buffer.from returns results same as Buffer constructor', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.deepEqual(impl.Buffer.from(''), new buffer.Buffer(''))
-    t.deepEqual(impl.Buffer.from('string'), new buffer.Buffer('string'))
-    t.deepEqual(impl.Buffer.from('string', 'utf-8'), new buffer.Buffer('string', 'utf-8'))
-    t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), new buffer.Buffer('b25ldHdvdGhyZWU=', 'base64'))
-    t.deepEqual(impl.Buffer.from([0, 42, 3]), new buffer.Buffer([0, 42, 3]))
-    t.deepEqual(impl.Buffer.from(new Uint8Array([0, 42, 3])), new buffer.Buffer(new Uint8Array([0, 42, 3])))
-    t.deepEqual(impl.Buffer.from([]), new buffer.Buffer([]))
-  })
-  t.end()
-})
-
-test('safer.Buffer.from returns consistent results', function (t) {
-  [index, safer, dangerous].forEach(function (impl) {
-    t.deepEqual(impl.Buffer.from(''), impl.Buffer.alloc(0))
-    t.deepEqual(impl.Buffer.from([]), impl.Buffer.alloc(0))
-    t.deepEqual(impl.Buffer.from(new Uint8Array([])), impl.Buffer.alloc(0))
-    t.deepEqual(impl.Buffer.from('string', 'utf-8'), impl.Buffer.from('string'))
-    t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from([115, 116, 114, 105, 110, 103]))
-    t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from(impl.Buffer.from('string')))
-    t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), impl.Buffer.from('onetwothree'))
-    t.notDeepEqual(impl.Buffer.from('b25ldHdvdGhyZWU='), impl.Buffer.from('onetwothree'))
-  })
-  t.end()
-})
Index: de_modules/scheduler/LICENSE
===================================================================
--- node_modules/scheduler/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Meta Platforms, Inc. and affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/scheduler/README.md
===================================================================
--- node_modules/scheduler/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-# `scheduler`
-
-This is a package for cooperative scheduling in a browser environment. It is currently used internally by React, but we plan to make it more generic.
-
-The public API for this package is not yet finalized.
-
-### Thanks
-
-The React team thanks [Anton Podviaznikov](https://podviaznikov.com/) for donating the `scheduler` package name.
Index: de_modules/scheduler/cjs/scheduler-unstable_mock.development.js
===================================================================
--- node_modules/scheduler/cjs/scheduler-unstable_mock.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,414 +1,0 @@
-/**
- * @license React
- * scheduler-unstable_mock.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function push(heap, node) {
-      var index = heap.length;
-      heap.push(node);
-      a: for (; 0 < index; ) {
-        var parentIndex = (index - 1) >>> 1,
-          parent = heap[parentIndex];
-        if (0 < compare(parent, node))
-          (heap[parentIndex] = node),
-            (heap[index] = parent),
-            (index = parentIndex);
-        else break a;
-      }
-    }
-    function peek(heap) {
-      return 0 === heap.length ? null : heap[0];
-    }
-    function pop(heap) {
-      if (0 === heap.length) return null;
-      var first = heap[0],
-        last = heap.pop();
-      if (last !== first) {
-        heap[0] = last;
-        a: for (
-          var index = 0, length = heap.length, halfLength = length >>> 1;
-          index < halfLength;
-
-        ) {
-          var leftIndex = 2 * (index + 1) - 1,
-            left = heap[leftIndex],
-            rightIndex = leftIndex + 1,
-            right = heap[rightIndex];
-          if (0 > compare(left, last))
-            rightIndex < length && 0 > compare(right, left)
-              ? ((heap[index] = right),
-                (heap[rightIndex] = last),
-                (index = rightIndex))
-              : ((heap[index] = left),
-                (heap[leftIndex] = last),
-                (index = leftIndex));
-          else if (rightIndex < length && 0 > compare(right, last))
-            (heap[index] = right),
-              (heap[rightIndex] = last),
-              (index = rightIndex);
-          else break a;
-        }
-      }
-      return first;
-    }
-    function compare(a, b) {
-      var diff = a.sortIndex - b.sortIndex;
-      return 0 !== diff ? diff : a.id - b.id;
-    }
-    function advanceTimers(currentTime) {
-      for (var timer = peek(timerQueue); null !== timer; ) {
-        if (null === timer.callback) pop(timerQueue);
-        else if (timer.startTime <= currentTime)
-          pop(timerQueue),
-            (timer.sortIndex = timer.expirationTime),
-            push(taskQueue, timer);
-        else break;
-        timer = peek(timerQueue);
-      }
-    }
-    function handleTimeout(currentTime) {
-      isHostTimeoutScheduled = !1;
-      advanceTimers(currentTime);
-      if (!isHostCallbackScheduled)
-        if (null !== peek(taskQueue))
-          (isHostCallbackScheduled = !0), (scheduledCallback = flushWork);
-        else {
-          var firstTimer = peek(timerQueue);
-          null !== firstTimer &&
-            ((currentTime = firstTimer.startTime - currentTime),
-            (scheduledTimeout = handleTimeout),
-            (timeoutTime = currentMockTime + currentTime));
-        }
-    }
-    function flushWork(hasTimeRemaining, initialTime) {
-      isHostCallbackScheduled = !1;
-      isHostTimeoutScheduled &&
-        ((isHostTimeoutScheduled = !1),
-        (scheduledTimeout = null),
-        (timeoutTime = -1));
-      isPerformingWork = !0;
-      var previousPriorityLevel = currentPriorityLevel;
-      try {
-        a: {
-          advanceTimers(initialTime);
-          for (
-            currentTask = peek(taskQueue);
-            null !== currentTask &&
-            (!(currentTask.expirationTime > initialTime) ||
-              (hasTimeRemaining && !shouldYieldToHost()));
-
-          ) {
-            var callback = currentTask.callback;
-            if ("function" === typeof callback) {
-              currentTask.callback = null;
-              currentPriorityLevel = currentTask.priorityLevel;
-              var continuationCallback = callback(
-                currentTask.expirationTime <= initialTime
-              );
-              initialTime = currentMockTime;
-              if ("function" === typeof continuationCallback) {
-                if (
-                  ((currentTask.callback = continuationCallback),
-                  advanceTimers(initialTime),
-                  shouldYieldForPaint)
-                ) {
-                  var JSCompiler_inline_result = (needsPaint = !0);
-                  break a;
-                }
-              } else
-                currentTask === peek(taskQueue) && pop(taskQueue),
-                  advanceTimers(initialTime);
-            } else pop(taskQueue);
-            currentTask = peek(taskQueue);
-          }
-          if (null !== currentTask) JSCompiler_inline_result = !0;
-          else {
-            var firstTimer = peek(timerQueue);
-            if (null !== firstTimer) {
-              var ms = firstTimer.startTime - initialTime;
-              scheduledTimeout = handleTimeout;
-              timeoutTime = currentMockTime + ms;
-            }
-            JSCompiler_inline_result = !1;
-          }
-        }
-        return JSCompiler_inline_result;
-      } finally {
-        (currentTask = null),
-          (currentPriorityLevel = previousPriorityLevel),
-          (isPerformingWork = !1);
-      }
-    }
-    function shouldYieldToHost() {
-      return (0 === expectedNumberOfYields && null === yieldedValues) ||
-        (-1 !== expectedNumberOfYields &&
-          null !== yieldedValues &&
-          yieldedValues.length >= expectedNumberOfYields) ||
-        (shouldYieldForPaint && needsPaint)
-        ? (didStop = !0)
-        : !1;
-    }
-    function unstable_flushAllWithoutAsserting() {
-      if (isFlushing) throw Error("Already flushing work.");
-      if (null !== scheduledCallback) {
-        var cb = scheduledCallback;
-        isFlushing = !0;
-        try {
-          var hasMoreWork = !0;
-          do hasMoreWork = cb(!0, currentMockTime);
-          while (hasMoreWork);
-          hasMoreWork || (scheduledCallback = null);
-          return !0;
-        } finally {
-          isFlushing = !1;
-        }
-      } else return !1;
-    }
-    var taskQueue = [],
-      timerQueue = [],
-      taskIdCounter = 1,
-      currentTask = null,
-      currentPriorityLevel = 3,
-      isPerformingWork = !1,
-      isHostCallbackScheduled = !1,
-      isHostTimeoutScheduled = !1,
-      currentMockTime = 0,
-      scheduledCallback = null,
-      scheduledTimeout = null,
-      timeoutTime = -1,
-      yieldedValues = null,
-      expectedNumberOfYields = -1,
-      didStop = !1,
-      isFlushing = !1,
-      needsPaint = !1,
-      shouldYieldForPaint = !1,
-      disableYieldValue = !1;
-    exports.log = function (value) {
-      "disabledLog" === console.log.name ||
-        disableYieldValue ||
-        (null === yieldedValues
-          ? (yieldedValues = [value])
-          : yieldedValues.push(value));
-    };
-    exports.reset = function () {
-      if (isFlushing) throw Error("Cannot reset while already flushing work.");
-      currentMockTime = 0;
-      scheduledTimeout = scheduledCallback = null;
-      timeoutTime = -1;
-      yieldedValues = null;
-      expectedNumberOfYields = -1;
-      needsPaint = isFlushing = didStop = !1;
-    };
-    exports.unstable_IdlePriority = 5;
-    exports.unstable_ImmediatePriority = 1;
-    exports.unstable_LowPriority = 4;
-    exports.unstable_NormalPriority = 3;
-    exports.unstable_Profiling = null;
-    exports.unstable_UserBlockingPriority = 2;
-    exports.unstable_advanceTime = function (ms) {
-      "disabledLog" === console.log.name ||
-        disableYieldValue ||
-        ((currentMockTime += ms),
-        null !== scheduledTimeout &&
-          timeoutTime <= currentMockTime &&
-          (scheduledTimeout(currentMockTime),
-          (timeoutTime = -1),
-          (scheduledTimeout = null)));
-    };
-    exports.unstable_cancelCallback = function (task) {
-      task.callback = null;
-    };
-    exports.unstable_clearLog = function () {
-      if (null === yieldedValues) return [];
-      var values = yieldedValues;
-      yieldedValues = null;
-      return values;
-    };
-    exports.unstable_flushAll = function () {
-      if (null !== yieldedValues)
-        throw Error(
-          "Log is not empty. Assert on the log of yielded values before flushing additional work."
-        );
-      unstable_flushAllWithoutAsserting();
-      if (null !== yieldedValues)
-        throw Error(
-          "While flushing work, something yielded a value. Use an assertion helper to assert on the log of yielded values, e.g. expect(Scheduler).toFlushAndYield([...])"
-        );
-    };
-    exports.unstable_flushAllWithoutAsserting =
-      unstable_flushAllWithoutAsserting;
-    exports.unstable_flushExpired = function () {
-      if (isFlushing) throw Error("Already flushing work.");
-      if (null !== scheduledCallback) {
-        isFlushing = !0;
-        try {
-          scheduledCallback(!1, currentMockTime) || (scheduledCallback = null);
-        } finally {
-          isFlushing = !1;
-        }
-      }
-    };
-    exports.unstable_flushNumberOfYields = function (count) {
-      if (isFlushing) throw Error("Already flushing work.");
-      if (null !== scheduledCallback) {
-        var cb = scheduledCallback;
-        expectedNumberOfYields = count;
-        isFlushing = !0;
-        try {
-          count = !0;
-          do count = cb(!0, currentMockTime);
-          while (count && !didStop);
-          count || (scheduledCallback = null);
-        } finally {
-          (expectedNumberOfYields = -1), (isFlushing = didStop = !1);
-        }
-      }
-    };
-    exports.unstable_flushUntilNextPaint = function () {
-      if (isFlushing) throw Error("Already flushing work.");
-      if (null !== scheduledCallback) {
-        var cb = scheduledCallback;
-        shouldYieldForPaint = !0;
-        needsPaint = !1;
-        isFlushing = !0;
-        try {
-          var hasMoreWork = !0;
-          do hasMoreWork = cb(!0, currentMockTime);
-          while (hasMoreWork && !didStop);
-          hasMoreWork || (scheduledCallback = null);
-        } finally {
-          isFlushing = didStop = shouldYieldForPaint = !1;
-        }
-      }
-      return !1;
-    };
-    exports.unstable_forceFrameRate = function () {};
-    exports.unstable_getCurrentPriorityLevel = function () {
-      return currentPriorityLevel;
-    };
-    exports.unstable_hasPendingWork = function () {
-      return null !== scheduledCallback;
-    };
-    exports.unstable_next = function (eventHandler) {
-      switch (currentPriorityLevel) {
-        case 1:
-        case 2:
-        case 3:
-          var priorityLevel = 3;
-          break;
-        default:
-          priorityLevel = currentPriorityLevel;
-      }
-      var previousPriorityLevel = currentPriorityLevel;
-      currentPriorityLevel = priorityLevel;
-      try {
-        return eventHandler();
-      } finally {
-        currentPriorityLevel = previousPriorityLevel;
-      }
-    };
-    exports.unstable_now = function () {
-      return currentMockTime;
-    };
-    exports.unstable_requestPaint = function () {
-      needsPaint = !0;
-    };
-    exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {
-      switch (priorityLevel) {
-        case 1:
-        case 2:
-        case 3:
-        case 4:
-        case 5:
-          break;
-        default:
-          priorityLevel = 3;
-      }
-      var previousPriorityLevel = currentPriorityLevel;
-      currentPriorityLevel = priorityLevel;
-      try {
-        return eventHandler();
-      } finally {
-        currentPriorityLevel = previousPriorityLevel;
-      }
-    };
-    exports.unstable_scheduleCallback = function (
-      priorityLevel,
-      callback,
-      options
-    ) {
-      var currentTime = currentMockTime;
-      "object" === typeof options && null !== options
-        ? ((options = options.delay),
-          (options =
-            "number" === typeof options && 0 < options
-              ? currentTime + options
-              : currentTime))
-        : (options = currentTime);
-      switch (priorityLevel) {
-        case 1:
-          var timeout = -1;
-          break;
-        case 2:
-          timeout = 250;
-          break;
-        case 5:
-          timeout = 1073741823;
-          break;
-        case 4:
-          timeout = 1e4;
-          break;
-        default:
-          timeout = 5e3;
-      }
-      timeout = options + timeout;
-      priorityLevel = {
-        id: taskIdCounter++,
-        callback: callback,
-        priorityLevel: priorityLevel,
-        startTime: options,
-        expirationTime: timeout,
-        sortIndex: -1
-      };
-      options > currentTime
-        ? ((priorityLevel.sortIndex = options),
-          push(timerQueue, priorityLevel),
-          null === peek(taskQueue) &&
-            priorityLevel === peek(timerQueue) &&
-            (isHostTimeoutScheduled
-              ? ((scheduledTimeout = null), (timeoutTime = -1))
-              : (isHostTimeoutScheduled = !0),
-            (scheduledTimeout = handleTimeout),
-            (timeoutTime = currentMockTime + (options - currentTime))))
-        : ((priorityLevel.sortIndex = timeout),
-          push(taskQueue, priorityLevel),
-          isHostCallbackScheduled ||
-            isPerformingWork ||
-            ((isHostCallbackScheduled = !0), (scheduledCallback = flushWork)));
-      return priorityLevel;
-    };
-    exports.unstable_setDisableYieldValue = function (newValue) {
-      disableYieldValue = newValue;
-    };
-    exports.unstable_shouldYield = shouldYieldToHost;
-    exports.unstable_wrapCallback = function (callback) {
-      var parentPriorityLevel = currentPriorityLevel;
-      return function () {
-        var previousPriorityLevel = currentPriorityLevel;
-        currentPriorityLevel = parentPriorityLevel;
-        try {
-          return callback.apply(this, arguments);
-        } finally {
-          currentPriorityLevel = previousPriorityLevel;
-        }
-      };
-    };
-  })();
Index: de_modules/scheduler/cjs/scheduler-unstable_mock.production.js
===================================================================
--- node_modules/scheduler/cjs/scheduler-unstable_mock.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,406 +1,0 @@
-/**
- * @license React
- * scheduler-unstable_mock.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.
- */
-
-"use strict";
-function push(heap, node) {
-  var index = heap.length;
-  heap.push(node);
-  a: for (; 0 < index; ) {
-    var parentIndex = (index - 1) >>> 1,
-      parent = heap[parentIndex];
-    if (0 < compare(parent, node))
-      (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);
-    else break a;
-  }
-}
-function peek(heap) {
-  return 0 === heap.length ? null : heap[0];
-}
-function pop(heap) {
-  if (0 === heap.length) return null;
-  var first = heap[0],
-    last = heap.pop();
-  if (last !== first) {
-    heap[0] = last;
-    a: for (
-      var index = 0, length = heap.length, halfLength = length >>> 1;
-      index < halfLength;
-
-    ) {
-      var leftIndex = 2 * (index + 1) - 1,
-        left = heap[leftIndex],
-        rightIndex = leftIndex + 1,
-        right = heap[rightIndex];
-      if (0 > compare(left, last))
-        rightIndex < length && 0 > compare(right, left)
-          ? ((heap[index] = right),
-            (heap[rightIndex] = last),
-            (index = rightIndex))
-          : ((heap[index] = left),
-            (heap[leftIndex] = last),
-            (index = leftIndex));
-      else if (rightIndex < length && 0 > compare(right, last))
-        (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);
-      else break a;
-    }
-  }
-  return first;
-}
-function compare(a, b) {
-  var diff = a.sortIndex - b.sortIndex;
-  return 0 !== diff ? diff : a.id - b.id;
-}
-var taskQueue = [],
-  timerQueue = [],
-  taskIdCounter = 1,
-  currentTask = null,
-  currentPriorityLevel = 3,
-  isPerformingWork = !1,
-  isHostCallbackScheduled = !1,
-  isHostTimeoutScheduled = !1,
-  currentMockTime = 0,
-  scheduledCallback = null,
-  scheduledTimeout = null,
-  timeoutTime = -1,
-  yieldedValues = null,
-  expectedNumberOfYields = -1,
-  didStop = !1,
-  isFlushing = !1,
-  needsPaint = !1,
-  shouldYieldForPaint = !1,
-  disableYieldValue = !1;
-function advanceTimers(currentTime) {
-  for (var timer = peek(timerQueue); null !== timer; ) {
-    if (null === timer.callback) pop(timerQueue);
-    else if (timer.startTime <= currentTime)
-      pop(timerQueue),
-        (timer.sortIndex = timer.expirationTime),
-        push(taskQueue, timer);
-    else break;
-    timer = peek(timerQueue);
-  }
-}
-function handleTimeout(currentTime) {
-  isHostTimeoutScheduled = !1;
-  advanceTimers(currentTime);
-  if (!isHostCallbackScheduled)
-    if (null !== peek(taskQueue))
-      (isHostCallbackScheduled = !0), (scheduledCallback = flushWork);
-    else {
-      var firstTimer = peek(timerQueue);
-      null !== firstTimer &&
-        ((currentTime = firstTimer.startTime - currentTime),
-        (scheduledTimeout = handleTimeout),
-        (timeoutTime = currentMockTime + currentTime));
-    }
-}
-function flushWork(hasTimeRemaining, initialTime) {
-  isHostCallbackScheduled = !1;
-  isHostTimeoutScheduled &&
-    ((isHostTimeoutScheduled = !1),
-    (scheduledTimeout = null),
-    (timeoutTime = -1));
-  isPerformingWork = !0;
-  var previousPriorityLevel = currentPriorityLevel;
-  try {
-    a: {
-      advanceTimers(initialTime);
-      for (
-        currentTask = peek(taskQueue);
-        null !== currentTask &&
-        (!(currentTask.expirationTime > initialTime) ||
-          (hasTimeRemaining && !shouldYieldToHost()));
-
-      ) {
-        var callback = currentTask.callback;
-        if ("function" === typeof callback) {
-          currentTask.callback = null;
-          currentPriorityLevel = currentTask.priorityLevel;
-          var continuationCallback = callback(
-            currentTask.expirationTime <= initialTime
-          );
-          initialTime = currentMockTime;
-          if ("function" === typeof continuationCallback) {
-            if (
-              ((currentTask.callback = continuationCallback),
-              advanceTimers(initialTime),
-              shouldYieldForPaint)
-            ) {
-              var JSCompiler_inline_result = (needsPaint = !0);
-              break a;
-            }
-          } else
-            currentTask === peek(taskQueue) && pop(taskQueue),
-              advanceTimers(initialTime);
-        } else pop(taskQueue);
-        currentTask = peek(taskQueue);
-      }
-      if (null !== currentTask) JSCompiler_inline_result = !0;
-      else {
-        var firstTimer = peek(timerQueue);
-        if (null !== firstTimer) {
-          var ms = firstTimer.startTime - initialTime;
-          scheduledTimeout = handleTimeout;
-          timeoutTime = currentMockTime + ms;
-        }
-        JSCompiler_inline_result = !1;
-      }
-    }
-    return JSCompiler_inline_result;
-  } finally {
-    (currentTask = null),
-      (currentPriorityLevel = previousPriorityLevel),
-      (isPerformingWork = !1);
-  }
-}
-function shouldYieldToHost() {
-  return (0 === expectedNumberOfYields && null === yieldedValues) ||
-    (-1 !== expectedNumberOfYields &&
-      null !== yieldedValues &&
-      yieldedValues.length >= expectedNumberOfYields) ||
-    (shouldYieldForPaint && needsPaint)
-    ? (didStop = !0)
-    : !1;
-}
-function unstable_flushAllWithoutAsserting() {
-  if (isFlushing) throw Error("Already flushing work.");
-  if (null !== scheduledCallback) {
-    var cb = scheduledCallback;
-    isFlushing = !0;
-    try {
-      var hasMoreWork = !0;
-      do hasMoreWork = cb(!0, currentMockTime);
-      while (hasMoreWork);
-      hasMoreWork || (scheduledCallback = null);
-      return !0;
-    } finally {
-      isFlushing = !1;
-    }
-  } else return !1;
-}
-exports.log = function (value) {
-  "disabledLog" === console.log.name ||
-    disableYieldValue ||
-    (null === yieldedValues
-      ? (yieldedValues = [value])
-      : yieldedValues.push(value));
-};
-exports.reset = function () {
-  if (isFlushing) throw Error("Cannot reset while already flushing work.");
-  currentMockTime = 0;
-  scheduledTimeout = scheduledCallback = null;
-  timeoutTime = -1;
-  yieldedValues = null;
-  expectedNumberOfYields = -1;
-  needsPaint = isFlushing = didStop = !1;
-};
-exports.unstable_IdlePriority = 5;
-exports.unstable_ImmediatePriority = 1;
-exports.unstable_LowPriority = 4;
-exports.unstable_NormalPriority = 3;
-exports.unstable_Profiling = null;
-exports.unstable_UserBlockingPriority = 2;
-exports.unstable_advanceTime = function (ms) {
-  "disabledLog" === console.log.name ||
-    disableYieldValue ||
-    ((currentMockTime += ms),
-    null !== scheduledTimeout &&
-      timeoutTime <= currentMockTime &&
-      (scheduledTimeout(currentMockTime),
-      (timeoutTime = -1),
-      (scheduledTimeout = null)));
-};
-exports.unstable_cancelCallback = function (task) {
-  task.callback = null;
-};
-exports.unstable_clearLog = function () {
-  if (null === yieldedValues) return [];
-  var values = yieldedValues;
-  yieldedValues = null;
-  return values;
-};
-exports.unstable_flushAll = function () {
-  if (null !== yieldedValues)
-    throw Error(
-      "Log is not empty. Assert on the log of yielded values before flushing additional work."
-    );
-  unstable_flushAllWithoutAsserting();
-  if (null !== yieldedValues)
-    throw Error(
-      "While flushing work, something yielded a value. Use an assertion helper to assert on the log of yielded values, e.g. expect(Scheduler).toFlushAndYield([...])"
-    );
-};
-exports.unstable_flushAllWithoutAsserting = unstable_flushAllWithoutAsserting;
-exports.unstable_flushExpired = function () {
-  if (isFlushing) throw Error("Already flushing work.");
-  if (null !== scheduledCallback) {
-    isFlushing = !0;
-    try {
-      scheduledCallback(!1, currentMockTime) || (scheduledCallback = null);
-    } finally {
-      isFlushing = !1;
-    }
-  }
-};
-exports.unstable_flushNumberOfYields = function (count) {
-  if (isFlushing) throw Error("Already flushing work.");
-  if (null !== scheduledCallback) {
-    var cb = scheduledCallback;
-    expectedNumberOfYields = count;
-    isFlushing = !0;
-    try {
-      count = !0;
-      do count = cb(!0, currentMockTime);
-      while (count && !didStop);
-      count || (scheduledCallback = null);
-    } finally {
-      (expectedNumberOfYields = -1), (isFlushing = didStop = !1);
-    }
-  }
-};
-exports.unstable_flushUntilNextPaint = function () {
-  if (isFlushing) throw Error("Already flushing work.");
-  if (null !== scheduledCallback) {
-    var cb = scheduledCallback;
-    shouldYieldForPaint = !0;
-    needsPaint = !1;
-    isFlushing = !0;
-    try {
-      var hasMoreWork = !0;
-      do hasMoreWork = cb(!0, currentMockTime);
-      while (hasMoreWork && !didStop);
-      hasMoreWork || (scheduledCallback = null);
-    } finally {
-      isFlushing = didStop = shouldYieldForPaint = !1;
-    }
-  }
-  return !1;
-};
-exports.unstable_forceFrameRate = function () {};
-exports.unstable_getCurrentPriorityLevel = function () {
-  return currentPriorityLevel;
-};
-exports.unstable_hasPendingWork = function () {
-  return null !== scheduledCallback;
-};
-exports.unstable_next = function (eventHandler) {
-  switch (currentPriorityLevel) {
-    case 1:
-    case 2:
-    case 3:
-      var priorityLevel = 3;
-      break;
-    default:
-      priorityLevel = currentPriorityLevel;
-  }
-  var previousPriorityLevel = currentPriorityLevel;
-  currentPriorityLevel = priorityLevel;
-  try {
-    return eventHandler();
-  } finally {
-    currentPriorityLevel = previousPriorityLevel;
-  }
-};
-exports.unstable_now = function () {
-  return currentMockTime;
-};
-exports.unstable_requestPaint = function () {
-  needsPaint = !0;
-};
-exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {
-  switch (priorityLevel) {
-    case 1:
-    case 2:
-    case 3:
-    case 4:
-    case 5:
-      break;
-    default:
-      priorityLevel = 3;
-  }
-  var previousPriorityLevel = currentPriorityLevel;
-  currentPriorityLevel = priorityLevel;
-  try {
-    return eventHandler();
-  } finally {
-    currentPriorityLevel = previousPriorityLevel;
-  }
-};
-exports.unstable_scheduleCallback = function (
-  priorityLevel,
-  callback,
-  options
-) {
-  var currentTime = currentMockTime;
-  "object" === typeof options && null !== options
-    ? ((options = options.delay),
-      (options =
-        "number" === typeof options && 0 < options
-          ? currentTime + options
-          : currentTime))
-    : (options = currentTime);
-  switch (priorityLevel) {
-    case 1:
-      var timeout = -1;
-      break;
-    case 2:
-      timeout = 250;
-      break;
-    case 5:
-      timeout = 1073741823;
-      break;
-    case 4:
-      timeout = 1e4;
-      break;
-    default:
-      timeout = 5e3;
-  }
-  timeout = options + timeout;
-  priorityLevel = {
-    id: taskIdCounter++,
-    callback: callback,
-    priorityLevel: priorityLevel,
-    startTime: options,
-    expirationTime: timeout,
-    sortIndex: -1
-  };
-  options > currentTime
-    ? ((priorityLevel.sortIndex = options),
-      push(timerQueue, priorityLevel),
-      null === peek(taskQueue) &&
-        priorityLevel === peek(timerQueue) &&
-        (isHostTimeoutScheduled
-          ? ((scheduledTimeout = null), (timeoutTime = -1))
-          : (isHostTimeoutScheduled = !0),
-        (scheduledTimeout = handleTimeout),
-        (timeoutTime = currentMockTime + (options - currentTime))))
-    : ((priorityLevel.sortIndex = timeout),
-      push(taskQueue, priorityLevel),
-      isHostCallbackScheduled ||
-        isPerformingWork ||
-        ((isHostCallbackScheduled = !0), (scheduledCallback = flushWork)));
-  return priorityLevel;
-};
-exports.unstable_setDisableYieldValue = function (newValue) {
-  disableYieldValue = newValue;
-};
-exports.unstable_shouldYield = shouldYieldToHost;
-exports.unstable_wrapCallback = function (callback) {
-  var parentPriorityLevel = currentPriorityLevel;
-  return function () {
-    var previousPriorityLevel = currentPriorityLevel;
-    currentPriorityLevel = parentPriorityLevel;
-    try {
-      return callback.apply(this, arguments);
-    } finally {
-      currentPriorityLevel = previousPriorityLevel;
-    }
-  };
-};
Index: de_modules/scheduler/cjs/scheduler-unstable_post_task.development.js
===================================================================
--- node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,150 +1,0 @@
-/**
- * @license React
- * scheduler-unstable_post_task.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function runTask(priorityLevel, postTaskPriority, node, callback) {
-      deadline = getCurrentTime() + 5;
-      try {
-        currentPriorityLevel_DEPRECATED = priorityLevel;
-        var result = callback(!1);
-        if ("function" === typeof result) {
-          var continuationOptions = { signal: node._controller.signal },
-            nextTask = runTask.bind(
-              null,
-              priorityLevel,
-              postTaskPriority,
-              node,
-              result
-            );
-          void 0 !== scheduler.yield
-            ? scheduler
-                .yield(continuationOptions)
-                .then(nextTask)
-                .catch(handleAbortError)
-            : scheduler
-                .postTask(nextTask, continuationOptions)
-                .catch(handleAbortError);
-        }
-      } catch (error) {
-        setTimeout(function () {
-          throw error;
-        });
-      } finally {
-        currentPriorityLevel_DEPRECATED = 3;
-      }
-    }
-    function handleAbortError() {}
-    var perf = window.performance,
-      setTimeout = window.setTimeout,
-      scheduler = global.scheduler,
-      getCurrentTime = perf.now.bind(perf),
-      deadline = 0,
-      currentPriorityLevel_DEPRECATED = 3;
-    exports.unstable_IdlePriority = 5;
-    exports.unstable_ImmediatePriority = 1;
-    exports.unstable_LowPriority = 4;
-    exports.unstable_NormalPriority = 3;
-    exports.unstable_Profiling = null;
-    exports.unstable_UserBlockingPriority = 2;
-    exports.unstable_cancelCallback = function (node) {
-      node._controller.abort();
-    };
-    exports.unstable_forceFrameRate = function () {};
-    exports.unstable_getCurrentPriorityLevel = function () {
-      return currentPriorityLevel_DEPRECATED;
-    };
-    exports.unstable_next = function (callback) {
-      switch (currentPriorityLevel_DEPRECATED) {
-        case 1:
-        case 2:
-        case 3:
-          var priorityLevel = 3;
-          break;
-        default:
-          priorityLevel = currentPriorityLevel_DEPRECATED;
-      }
-      var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-      currentPriorityLevel_DEPRECATED = priorityLevel;
-      try {
-        return callback();
-      } finally {
-        currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-      }
-    };
-    exports.unstable_now = getCurrentTime;
-    exports.unstable_requestPaint = function () {};
-    exports.unstable_runWithPriority = function (priorityLevel, callback) {
-      var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-      currentPriorityLevel_DEPRECATED = priorityLevel;
-      try {
-        return callback();
-      } finally {
-        currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-      }
-    };
-    exports.unstable_scheduleCallback = function (
-      priorityLevel,
-      callback,
-      options
-    ) {
-      switch (priorityLevel) {
-        case 1:
-        case 2:
-          var postTaskPriority = "user-blocking";
-          break;
-        case 4:
-        case 3:
-          postTaskPriority = "user-visible";
-          break;
-        case 5:
-          postTaskPriority = "background";
-          break;
-        default:
-          postTaskPriority = "user-visible";
-      }
-      var controller = new TaskController({ priority: postTaskPriority });
-      options = {
-        delay:
-          "object" === typeof options && null !== options ? options.delay : 0,
-        signal: controller.signal
-      };
-      controller = { _controller: controller };
-      scheduler
-        .postTask(
-          runTask.bind(
-            null,
-            priorityLevel,
-            postTaskPriority,
-            controller,
-            callback
-          ),
-          options
-        )
-        .catch(handleAbortError);
-      return controller;
-    };
-    exports.unstable_shouldYield = function () {
-      return getCurrentTime() >= deadline;
-    };
-    exports.unstable_wrapCallback = function (callback) {
-      var parentPriorityLevel = currentPriorityLevel_DEPRECATED;
-      return function () {
-        var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-        currentPriorityLevel_DEPRECATED = parentPriorityLevel;
-        try {
-          return callback();
-        } finally {
-          currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-        }
-      };
-    };
-  })();
Index: de_modules/scheduler/cjs/scheduler-unstable_post_task.production.js
===================================================================
--- node_modules/scheduler/cjs/scheduler-unstable_post_task.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-/**
- * @license React
- * scheduler-unstable_post_task.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.
- */
-
-"use strict";
-var perf = window.performance,
-  setTimeout = window.setTimeout,
-  scheduler = global.scheduler,
-  getCurrentTime = perf.now.bind(perf),
-  deadline = 0,
-  currentPriorityLevel_DEPRECATED = 3;
-function runTask(priorityLevel, postTaskPriority, node, callback) {
-  deadline = getCurrentTime() + 5;
-  try {
-    currentPriorityLevel_DEPRECATED = priorityLevel;
-    var result = callback(!1);
-    if ("function" === typeof result) {
-      var continuationOptions = { signal: node._controller.signal },
-        nextTask = runTask.bind(
-          null,
-          priorityLevel,
-          postTaskPriority,
-          node,
-          result
-        );
-      void 0 !== scheduler.yield
-        ? scheduler
-            .yield(continuationOptions)
-            .then(nextTask)
-            .catch(handleAbortError)
-        : scheduler
-            .postTask(nextTask, continuationOptions)
-            .catch(handleAbortError);
-    }
-  } catch (error) {
-    setTimeout(function () {
-      throw error;
-    });
-  } finally {
-    currentPriorityLevel_DEPRECATED = 3;
-  }
-}
-function handleAbortError() {}
-exports.unstable_IdlePriority = 5;
-exports.unstable_ImmediatePriority = 1;
-exports.unstable_LowPriority = 4;
-exports.unstable_NormalPriority = 3;
-exports.unstable_Profiling = null;
-exports.unstable_UserBlockingPriority = 2;
-exports.unstable_cancelCallback = function (node) {
-  node._controller.abort();
-};
-exports.unstable_forceFrameRate = function () {};
-exports.unstable_getCurrentPriorityLevel = function () {
-  return currentPriorityLevel_DEPRECATED;
-};
-exports.unstable_next = function (callback) {
-  switch (currentPriorityLevel_DEPRECATED) {
-    case 1:
-    case 2:
-    case 3:
-      var priorityLevel = 3;
-      break;
-    default:
-      priorityLevel = currentPriorityLevel_DEPRECATED;
-  }
-  var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-  currentPriorityLevel_DEPRECATED = priorityLevel;
-  try {
-    return callback();
-  } finally {
-    currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-  }
-};
-exports.unstable_now = getCurrentTime;
-exports.unstable_requestPaint = function () {};
-exports.unstable_runWithPriority = function (priorityLevel, callback) {
-  var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-  currentPriorityLevel_DEPRECATED = priorityLevel;
-  try {
-    return callback();
-  } finally {
-    currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-  }
-};
-exports.unstable_scheduleCallback = function (
-  priorityLevel,
-  callback,
-  options
-) {
-  switch (priorityLevel) {
-    case 1:
-    case 2:
-      var postTaskPriority = "user-blocking";
-      break;
-    case 4:
-    case 3:
-      postTaskPriority = "user-visible";
-      break;
-    case 5:
-      postTaskPriority = "background";
-      break;
-    default:
-      postTaskPriority = "user-visible";
-  }
-  var controller = new TaskController({ priority: postTaskPriority });
-  options = {
-    delay: "object" === typeof options && null !== options ? options.delay : 0,
-    signal: controller.signal
-  };
-  controller = { _controller: controller };
-  scheduler
-    .postTask(
-      runTask.bind(null, priorityLevel, postTaskPriority, controller, callback),
-      options
-    )
-    .catch(handleAbortError);
-  return controller;
-};
-exports.unstable_shouldYield = function () {
-  return getCurrentTime() >= deadline;
-};
-exports.unstable_wrapCallback = function (callback) {
-  var parentPriorityLevel = currentPriorityLevel_DEPRECATED;
-  return function () {
-    var previousPriorityLevel = currentPriorityLevel_DEPRECATED;
-    currentPriorityLevel_DEPRECATED = parentPriorityLevel;
-    try {
-      return callback();
-    } finally {
-      currentPriorityLevel_DEPRECATED = previousPriorityLevel;
-    }
-  };
-};
Index: de_modules/scheduler/cjs/scheduler.development.js
===================================================================
--- node_modules/scheduler/cjs/scheduler.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,364 +1,0 @@
-/**
- * @license React
- * scheduler.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function performWorkUntilDeadline() {
-      needsPaint = !1;
-      if (isMessageLoopRunning) {
-        var currentTime = exports.unstable_now();
-        startTime = currentTime;
-        var hasMoreWork = !0;
-        try {
-          a: {
-            isHostCallbackScheduled = !1;
-            isHostTimeoutScheduled &&
-              ((isHostTimeoutScheduled = !1),
-              localClearTimeout(taskTimeoutID),
-              (taskTimeoutID = -1));
-            isPerformingWork = !0;
-            var previousPriorityLevel = currentPriorityLevel;
-            try {
-              b: {
-                advanceTimers(currentTime);
-                for (
-                  currentTask = peek(taskQueue);
-                  null !== currentTask &&
-                  !(
-                    currentTask.expirationTime > currentTime &&
-                    shouldYieldToHost()
-                  );
-
-                ) {
-                  var callback = currentTask.callback;
-                  if ("function" === typeof callback) {
-                    currentTask.callback = null;
-                    currentPriorityLevel = currentTask.priorityLevel;
-                    var continuationCallback = callback(
-                      currentTask.expirationTime <= currentTime
-                    );
-                    currentTime = exports.unstable_now();
-                    if ("function" === typeof continuationCallback) {
-                      currentTask.callback = continuationCallback;
-                      advanceTimers(currentTime);
-                      hasMoreWork = !0;
-                      break b;
-                    }
-                    currentTask === peek(taskQueue) && pop(taskQueue);
-                    advanceTimers(currentTime);
-                  } else pop(taskQueue);
-                  currentTask = peek(taskQueue);
-                }
-                if (null !== currentTask) hasMoreWork = !0;
-                else {
-                  var firstTimer = peek(timerQueue);
-                  null !== firstTimer &&
-                    requestHostTimeout(
-                      handleTimeout,
-                      firstTimer.startTime - currentTime
-                    );
-                  hasMoreWork = !1;
-                }
-              }
-              break a;
-            } finally {
-              (currentTask = null),
-                (currentPriorityLevel = previousPriorityLevel),
-                (isPerformingWork = !1);
-            }
-            hasMoreWork = void 0;
-          }
-        } finally {
-          hasMoreWork
-            ? schedulePerformWorkUntilDeadline()
-            : (isMessageLoopRunning = !1);
-        }
-      }
-    }
-    function push(heap, node) {
-      var index = heap.length;
-      heap.push(node);
-      a: for (; 0 < index; ) {
-        var parentIndex = (index - 1) >>> 1,
-          parent = heap[parentIndex];
-        if (0 < compare(parent, node))
-          (heap[parentIndex] = node),
-            (heap[index] = parent),
-            (index = parentIndex);
-        else break a;
-      }
-    }
-    function peek(heap) {
-      return 0 === heap.length ? null : heap[0];
-    }
-    function pop(heap) {
-      if (0 === heap.length) return null;
-      var first = heap[0],
-        last = heap.pop();
-      if (last !== first) {
-        heap[0] = last;
-        a: for (
-          var index = 0, length = heap.length, halfLength = length >>> 1;
-          index < halfLength;
-
-        ) {
-          var leftIndex = 2 * (index + 1) - 1,
-            left = heap[leftIndex],
-            rightIndex = leftIndex + 1,
-            right = heap[rightIndex];
-          if (0 > compare(left, last))
-            rightIndex < length && 0 > compare(right, left)
-              ? ((heap[index] = right),
-                (heap[rightIndex] = last),
-                (index = rightIndex))
-              : ((heap[index] = left),
-                (heap[leftIndex] = last),
-                (index = leftIndex));
-          else if (rightIndex < length && 0 > compare(right, last))
-            (heap[index] = right),
-              (heap[rightIndex] = last),
-              (index = rightIndex);
-          else break a;
-        }
-      }
-      return first;
-    }
-    function compare(a, b) {
-      var diff = a.sortIndex - b.sortIndex;
-      return 0 !== diff ? diff : a.id - b.id;
-    }
-    function advanceTimers(currentTime) {
-      for (var timer = peek(timerQueue); null !== timer; ) {
-        if (null === timer.callback) pop(timerQueue);
-        else if (timer.startTime <= currentTime)
-          pop(timerQueue),
-            (timer.sortIndex = timer.expirationTime),
-            push(taskQueue, timer);
-        else break;
-        timer = peek(timerQueue);
-      }
-    }
-    function handleTimeout(currentTime) {
-      isHostTimeoutScheduled = !1;
-      advanceTimers(currentTime);
-      if (!isHostCallbackScheduled)
-        if (null !== peek(taskQueue))
-          (isHostCallbackScheduled = !0),
-            isMessageLoopRunning ||
-              ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());
-        else {
-          var firstTimer = peek(timerQueue);
-          null !== firstTimer &&
-            requestHostTimeout(
-              handleTimeout,
-              firstTimer.startTime - currentTime
-            );
-        }
-    }
-    function shouldYieldToHost() {
-      return needsPaint
-        ? !0
-        : exports.unstable_now() - startTime < frameInterval
-          ? !1
-          : !0;
-    }
-    function requestHostTimeout(callback, ms) {
-      taskTimeoutID = localSetTimeout(function () {
-        callback(exports.unstable_now());
-      }, ms);
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    exports.unstable_now = void 0;
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      exports.unstable_now = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date,
-        initialTime = localDate.now();
-      exports.unstable_now = function () {
-        return localDate.now() - initialTime;
-      };
-    }
-    var taskQueue = [],
-      timerQueue = [],
-      taskIdCounter = 1,
-      currentTask = null,
-      currentPriorityLevel = 3,
-      isPerformingWork = !1,
-      isHostCallbackScheduled = !1,
-      isHostTimeoutScheduled = !1,
-      needsPaint = !1,
-      localSetTimeout = "function" === typeof setTimeout ? setTimeout : null,
-      localClearTimeout =
-        "function" === typeof clearTimeout ? clearTimeout : null,
-      localSetImmediate =
-        "undefined" !== typeof setImmediate ? setImmediate : null,
-      isMessageLoopRunning = !1,
-      taskTimeoutID = -1,
-      frameInterval = 5,
-      startTime = -1;
-    if ("function" === typeof localSetImmediate)
-      var schedulePerformWorkUntilDeadline = function () {
-        localSetImmediate(performWorkUntilDeadline);
-      };
-    else if ("undefined" !== typeof MessageChannel) {
-      var channel = new MessageChannel(),
-        port = channel.port2;
-      channel.port1.onmessage = performWorkUntilDeadline;
-      schedulePerformWorkUntilDeadline = function () {
-        port.postMessage(null);
-      };
-    } else
-      schedulePerformWorkUntilDeadline = function () {
-        localSetTimeout(performWorkUntilDeadline, 0);
-      };
-    exports.unstable_IdlePriority = 5;
-    exports.unstable_ImmediatePriority = 1;
-    exports.unstable_LowPriority = 4;
-    exports.unstable_NormalPriority = 3;
-    exports.unstable_Profiling = null;
-    exports.unstable_UserBlockingPriority = 2;
-    exports.unstable_cancelCallback = function (task) {
-      task.callback = null;
-    };
-    exports.unstable_forceFrameRate = function (fps) {
-      0 > fps || 125 < fps
-        ? console.error(
-            "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"
-          )
-        : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);
-    };
-    exports.unstable_getCurrentPriorityLevel = function () {
-      return currentPriorityLevel;
-    };
-    exports.unstable_next = function (eventHandler) {
-      switch (currentPriorityLevel) {
-        case 1:
-        case 2:
-        case 3:
-          var priorityLevel = 3;
-          break;
-        default:
-          priorityLevel = currentPriorityLevel;
-      }
-      var previousPriorityLevel = currentPriorityLevel;
-      currentPriorityLevel = priorityLevel;
-      try {
-        return eventHandler();
-      } finally {
-        currentPriorityLevel = previousPriorityLevel;
-      }
-    };
-    exports.unstable_requestPaint = function () {
-      needsPaint = !0;
-    };
-    exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {
-      switch (priorityLevel) {
-        case 1:
-        case 2:
-        case 3:
-        case 4:
-        case 5:
-          break;
-        default:
-          priorityLevel = 3;
-      }
-      var previousPriorityLevel = currentPriorityLevel;
-      currentPriorityLevel = priorityLevel;
-      try {
-        return eventHandler();
-      } finally {
-        currentPriorityLevel = previousPriorityLevel;
-      }
-    };
-    exports.unstable_scheduleCallback = function (
-      priorityLevel,
-      callback,
-      options
-    ) {
-      var currentTime = exports.unstable_now();
-      "object" === typeof options && null !== options
-        ? ((options = options.delay),
-          (options =
-            "number" === typeof options && 0 < options
-              ? currentTime + options
-              : currentTime))
-        : (options = currentTime);
-      switch (priorityLevel) {
-        case 1:
-          var timeout = -1;
-          break;
-        case 2:
-          timeout = 250;
-          break;
-        case 5:
-          timeout = 1073741823;
-          break;
-        case 4:
-          timeout = 1e4;
-          break;
-        default:
-          timeout = 5e3;
-      }
-      timeout = options + timeout;
-      priorityLevel = {
-        id: taskIdCounter++,
-        callback: callback,
-        priorityLevel: priorityLevel,
-        startTime: options,
-        expirationTime: timeout,
-        sortIndex: -1
-      };
-      options > currentTime
-        ? ((priorityLevel.sortIndex = options),
-          push(timerQueue, priorityLevel),
-          null === peek(taskQueue) &&
-            priorityLevel === peek(timerQueue) &&
-            (isHostTimeoutScheduled
-              ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))
-              : (isHostTimeoutScheduled = !0),
-            requestHostTimeout(handleTimeout, options - currentTime)))
-        : ((priorityLevel.sortIndex = timeout),
-          push(taskQueue, priorityLevel),
-          isHostCallbackScheduled ||
-            isPerformingWork ||
-            ((isHostCallbackScheduled = !0),
-            isMessageLoopRunning ||
-              ((isMessageLoopRunning = !0),
-              schedulePerformWorkUntilDeadline())));
-      return priorityLevel;
-    };
-    exports.unstable_shouldYield = shouldYieldToHost;
-    exports.unstable_wrapCallback = function (callback) {
-      var parentPriorityLevel = currentPriorityLevel;
-      return function () {
-        var previousPriorityLevel = currentPriorityLevel;
-        currentPriorityLevel = parentPriorityLevel;
-        try {
-          return callback.apply(this, arguments);
-        } finally {
-          currentPriorityLevel = previousPriorityLevel;
-        }
-      };
-    };
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/scheduler/cjs/scheduler.native.development.js
===================================================================
--- node_modules/scheduler/cjs/scheduler.native.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,350 +1,0 @@
-/**
- * @license React
- * scheduler.native.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function performWorkUntilDeadline() {
-      needsPaint = !1;
-      if (isMessageLoopRunning) {
-        var currentTime = getCurrentTime();
-        startTime = currentTime;
-        var hasMoreWork = !0;
-        try {
-          a: {
-            isHostCallbackScheduled = !1;
-            isHostTimeoutScheduled &&
-              ((isHostTimeoutScheduled = !1),
-              localClearTimeout(taskTimeoutID),
-              (taskTimeoutID = -1));
-            isPerformingWork = !0;
-            var previousPriorityLevel = currentPriorityLevel;
-            try {
-              b: {
-                advanceTimers(currentTime);
-                for (
-                  currentTask = peek(taskQueue);
-                  null !== currentTask &&
-                  !(
-                    currentTask.expirationTime > currentTime &&
-                    shouldYieldToHost()
-                  );
-
-                ) {
-                  var callback = currentTask.callback;
-                  if ("function" === typeof callback) {
-                    currentTask.callback = null;
-                    currentPriorityLevel = currentTask.priorityLevel;
-                    var continuationCallback = callback(
-                      currentTask.expirationTime <= currentTime
-                    );
-                    currentTime = getCurrentTime();
-                    if ("function" === typeof continuationCallback) {
-                      currentTask.callback = continuationCallback;
-                      advanceTimers(currentTime);
-                      hasMoreWork = !0;
-                      break b;
-                    }
-                    currentTask === peek(taskQueue) && pop(taskQueue);
-                    advanceTimers(currentTime);
-                  } else pop(taskQueue);
-                  currentTask = peek(taskQueue);
-                }
-                if (null !== currentTask) hasMoreWork = !0;
-                else {
-                  var firstTimer = peek(timerQueue);
-                  null !== firstTimer &&
-                    requestHostTimeout(
-                      handleTimeout,
-                      firstTimer.startTime - currentTime
-                    );
-                  hasMoreWork = !1;
-                }
-              }
-              break a;
-            } finally {
-              (currentTask = null),
-                (currentPriorityLevel = previousPriorityLevel),
-                (isPerformingWork = !1);
-            }
-            hasMoreWork = void 0;
-          }
-        } finally {
-          hasMoreWork
-            ? schedulePerformWorkUntilDeadline()
-            : (isMessageLoopRunning = !1);
-        }
-      }
-    }
-    function push(heap, node) {
-      var index = heap.length;
-      heap.push(node);
-      a: for (; 0 < index; ) {
-        var parentIndex = (index - 1) >>> 1,
-          parent = heap[parentIndex];
-        if (0 < compare(parent, node))
-          (heap[parentIndex] = node),
-            (heap[index] = parent),
-            (index = parentIndex);
-        else break a;
-      }
-    }
-    function peek(heap) {
-      return 0 === heap.length ? null : heap[0];
-    }
-    function pop(heap) {
-      if (0 === heap.length) return null;
-      var first = heap[0],
-        last = heap.pop();
-      if (last !== first) {
-        heap[0] = last;
-        a: for (
-          var index = 0, length = heap.length, halfLength = length >>> 1;
-          index < halfLength;
-
-        ) {
-          var leftIndex = 2 * (index + 1) - 1,
-            left = heap[leftIndex],
-            rightIndex = leftIndex + 1,
-            right = heap[rightIndex];
-          if (0 > compare(left, last))
-            rightIndex < length && 0 > compare(right, left)
-              ? ((heap[index] = right),
-                (heap[rightIndex] = last),
-                (index = rightIndex))
-              : ((heap[index] = left),
-                (heap[leftIndex] = last),
-                (index = leftIndex));
-          else if (rightIndex < length && 0 > compare(right, last))
-            (heap[index] = right),
-              (heap[rightIndex] = last),
-              (index = rightIndex);
-          else break a;
-        }
-      }
-      return first;
-    }
-    function compare(a, b) {
-      var diff = a.sortIndex - b.sortIndex;
-      return 0 !== diff ? diff : a.id - b.id;
-    }
-    function advanceTimers(currentTime) {
-      for (var timer = peek(timerQueue); null !== timer; ) {
-        if (null === timer.callback) pop(timerQueue);
-        else if (timer.startTime <= currentTime)
-          pop(timerQueue),
-            (timer.sortIndex = timer.expirationTime),
-            push(taskQueue, timer);
-        else break;
-        timer = peek(timerQueue);
-      }
-    }
-    function handleTimeout(currentTime) {
-      isHostTimeoutScheduled = !1;
-      advanceTimers(currentTime);
-      if (!isHostCallbackScheduled)
-        if (null !== peek(taskQueue))
-          (isHostCallbackScheduled = !0),
-            isMessageLoopRunning ||
-              ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());
-        else {
-          var firstTimer = peek(timerQueue);
-          null !== firstTimer &&
-            requestHostTimeout(
-              handleTimeout,
-              firstTimer.startTime - currentTime
-            );
-        }
-    }
-    function unstable_scheduleCallback$1(priorityLevel, callback, options) {
-      var currentTime = getCurrentTime();
-      "object" === typeof options && null !== options
-        ? ((options = options.delay),
-          (options =
-            "number" === typeof options && 0 < options
-              ? currentTime + options
-              : currentTime))
-        : (options = currentTime);
-      switch (priorityLevel) {
-        case 1:
-          var timeout = -1;
-          break;
-        case 2:
-          timeout = 250;
-          break;
-        case 5:
-          timeout = 1073741823;
-          break;
-        case 4:
-          timeout = 1e4;
-          break;
-        default:
-          timeout = 5e3;
-      }
-      timeout = options + timeout;
-      priorityLevel = {
-        id: taskIdCounter++,
-        callback: callback,
-        priorityLevel: priorityLevel,
-        startTime: options,
-        expirationTime: timeout,
-        sortIndex: -1
-      };
-      options > currentTime
-        ? ((priorityLevel.sortIndex = options),
-          push(timerQueue, priorityLevel),
-          null === peek(taskQueue) &&
-            priorityLevel === peek(timerQueue) &&
-            (isHostTimeoutScheduled
-              ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))
-              : (isHostTimeoutScheduled = !0),
-            requestHostTimeout(handleTimeout, options - currentTime)))
-        : ((priorityLevel.sortIndex = timeout),
-          push(taskQueue, priorityLevel),
-          isHostCallbackScheduled ||
-            isPerformingWork ||
-            ((isHostCallbackScheduled = !0),
-            isMessageLoopRunning ||
-              ((isMessageLoopRunning = !0),
-              schedulePerformWorkUntilDeadline())));
-      return priorityLevel;
-    }
-    function unstable_cancelCallback$1(task) {
-      task.callback = null;
-    }
-    function unstable_getCurrentPriorityLevel$1() {
-      return currentPriorityLevel;
-    }
-    function shouldYieldToHost() {
-      return needsPaint
-        ? !0
-        : getCurrentTime() - startTime < frameInterval
-          ? !1
-          : !0;
-    }
-    function requestPaint() {
-      needsPaint = !0;
-    }
-    function requestHostTimeout(callback, ms) {
-      taskTimeoutID = localSetTimeout(function () {
-        callback(getCurrentTime());
-      }, ms);
-    }
-    function throwNotImplemented() {
-      throw Error("Not implemented.");
-    }
-    if (
-      "object" === typeof performance &&
-      "function" === typeof performance.now
-    ) {
-      var localPerformance = performance;
-      var getCurrentTime = function () {
-        return localPerformance.now();
-      };
-    } else {
-      var localDate = Date,
-        initialTime = localDate.now();
-      getCurrentTime = function () {
-        return localDate.now() - initialTime;
-      };
-    }
-    var taskQueue = [],
-      timerQueue = [],
-      taskIdCounter = 1,
-      currentTask = null,
-      currentPriorityLevel = 3,
-      isPerformingWork = !1,
-      isHostCallbackScheduled = !1,
-      isHostTimeoutScheduled = !1,
-      needsPaint = !1,
-      localSetTimeout = "function" === typeof setTimeout ? setTimeout : null,
-      localClearTimeout =
-        "function" === typeof clearTimeout ? clearTimeout : null,
-      localSetImmediate =
-        "undefined" !== typeof setImmediate ? setImmediate : null,
-      isMessageLoopRunning = !1,
-      taskTimeoutID = -1,
-      frameInterval = 5,
-      startTime = -1;
-    if ("function" === typeof localSetImmediate)
-      var schedulePerformWorkUntilDeadline = function () {
-        localSetImmediate(performWorkUntilDeadline);
-      };
-    else if ("undefined" !== typeof MessageChannel) {
-      var channel = new MessageChannel(),
-        port = channel.port2;
-      channel.port1.onmessage = performWorkUntilDeadline;
-      schedulePerformWorkUntilDeadline = function () {
-        port.postMessage(null);
-      };
-    } else
-      schedulePerformWorkUntilDeadline = function () {
-        localSetTimeout(performWorkUntilDeadline, 0);
-      };
-    channel =
-      "undefined" !== typeof nativeRuntimeScheduler
-        ? nativeRuntimeScheduler.unstable_UserBlockingPriority
-        : 2;
-    var unstable_NormalPriority =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_NormalPriority
-          : 3,
-      unstable_LowPriority =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_LowPriority
-          : 4,
-      unstable_ImmediatePriority =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_ImmediatePriority
-          : 1,
-      unstable_scheduleCallback =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_scheduleCallback
-          : unstable_scheduleCallback$1,
-      unstable_cancelCallback =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_cancelCallback
-          : unstable_cancelCallback$1,
-      unstable_getCurrentPriorityLevel =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_getCurrentPriorityLevel
-          : unstable_getCurrentPriorityLevel$1,
-      unstable_shouldYield =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_shouldYield
-          : shouldYieldToHost,
-      unstable_requestPaint =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_requestPaint
-          : requestPaint,
-      unstable_now =
-        "undefined" !== typeof nativeRuntimeScheduler
-          ? nativeRuntimeScheduler.unstable_now
-          : getCurrentTime;
-    exports.unstable_IdlePriority =
-      "undefined" !== typeof nativeRuntimeScheduler
-        ? nativeRuntimeScheduler.unstable_IdlePriority
-        : 5;
-    exports.unstable_ImmediatePriority = unstable_ImmediatePriority;
-    exports.unstable_LowPriority = unstable_LowPriority;
-    exports.unstable_NormalPriority = unstable_NormalPriority;
-    exports.unstable_Profiling = null;
-    exports.unstable_UserBlockingPriority = channel;
-    exports.unstable_cancelCallback = unstable_cancelCallback;
-    exports.unstable_forceFrameRate = throwNotImplemented;
-    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
-    exports.unstable_next = throwNotImplemented;
-    exports.unstable_now = unstable_now;
-    exports.unstable_requestPaint = unstable_requestPaint;
-    exports.unstable_runWithPriority = throwNotImplemented;
-    exports.unstable_scheduleCallback = unstable_scheduleCallback;
-    exports.unstable_shouldYield = unstable_shouldYield;
-    exports.unstable_wrapCallback = throwNotImplemented;
-  })();
Index: de_modules/scheduler/cjs/scheduler.native.production.js
===================================================================
--- node_modules/scheduler/cjs/scheduler.native.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,330 +1,0 @@
-/**
- * @license React
- * scheduler.native.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.
- */
-
-"use strict";
-function push(heap, node) {
-  var index = heap.length;
-  heap.push(node);
-  a: for (; 0 < index; ) {
-    var parentIndex = (index - 1) >>> 1,
-      parent = heap[parentIndex];
-    if (0 < compare(parent, node))
-      (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);
-    else break a;
-  }
-}
-function peek(heap) {
-  return 0 === heap.length ? null : heap[0];
-}
-function pop(heap) {
-  if (0 === heap.length) return null;
-  var first = heap[0],
-    last = heap.pop();
-  if (last !== first) {
-    heap[0] = last;
-    a: for (
-      var index = 0, length = heap.length, halfLength = length >>> 1;
-      index < halfLength;
-
-    ) {
-      var leftIndex = 2 * (index + 1) - 1,
-        left = heap[leftIndex],
-        rightIndex = leftIndex + 1,
-        right = heap[rightIndex];
-      if (0 > compare(left, last))
-        rightIndex < length && 0 > compare(right, left)
-          ? ((heap[index] = right),
-            (heap[rightIndex] = last),
-            (index = rightIndex))
-          : ((heap[index] = left),
-            (heap[leftIndex] = last),
-            (index = leftIndex));
-      else if (rightIndex < length && 0 > compare(right, last))
-        (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);
-      else break a;
-    }
-  }
-  return first;
-}
-function compare(a, b) {
-  var diff = a.sortIndex - b.sortIndex;
-  return 0 !== diff ? diff : a.id - b.id;
-}
-var getCurrentTime;
-if ("object" === typeof performance && "function" === typeof performance.now) {
-  var localPerformance = performance;
-  getCurrentTime = function () {
-    return localPerformance.now();
-  };
-} else {
-  var localDate = Date,
-    initialTime = localDate.now();
-  getCurrentTime = function () {
-    return localDate.now() - initialTime;
-  };
-}
-var taskQueue = [],
-  timerQueue = [],
-  taskIdCounter = 1,
-  currentTask = null,
-  currentPriorityLevel = 3,
-  isPerformingWork = !1,
-  isHostCallbackScheduled = !1,
-  isHostTimeoutScheduled = !1,
-  needsPaint = !1,
-  localSetTimeout = "function" === typeof setTimeout ? setTimeout : null,
-  localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null,
-  localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null;
-function advanceTimers(currentTime) {
-  for (var timer = peek(timerQueue); null !== timer; ) {
-    if (null === timer.callback) pop(timerQueue);
-    else if (timer.startTime <= currentTime)
-      pop(timerQueue),
-        (timer.sortIndex = timer.expirationTime),
-        push(taskQueue, timer);
-    else break;
-    timer = peek(timerQueue);
-  }
-}
-function handleTimeout(currentTime) {
-  isHostTimeoutScheduled = !1;
-  advanceTimers(currentTime);
-  if (!isHostCallbackScheduled)
-    if (null !== peek(taskQueue))
-      (isHostCallbackScheduled = !0),
-        isMessageLoopRunning ||
-          ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());
-    else {
-      var firstTimer = peek(timerQueue);
-      null !== firstTimer &&
-        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
-    }
-}
-function unstable_scheduleCallback$1(priorityLevel, callback, options) {
-  var currentTime = getCurrentTime();
-  "object" === typeof options && null !== options
-    ? ((options = options.delay),
-      (options =
-        "number" === typeof options && 0 < options
-          ? currentTime + options
-          : currentTime))
-    : (options = currentTime);
-  switch (priorityLevel) {
-    case 1:
-      var timeout = -1;
-      break;
-    case 2:
-      timeout = 250;
-      break;
-    case 5:
-      timeout = 1073741823;
-      break;
-    case 4:
-      timeout = 1e4;
-      break;
-    default:
-      timeout = 5e3;
-  }
-  timeout = options + timeout;
-  priorityLevel = {
-    id: taskIdCounter++,
-    callback: callback,
-    priorityLevel: priorityLevel,
-    startTime: options,
-    expirationTime: timeout,
-    sortIndex: -1
-  };
-  options > currentTime
-    ? ((priorityLevel.sortIndex = options),
-      push(timerQueue, priorityLevel),
-      null === peek(taskQueue) &&
-        priorityLevel === peek(timerQueue) &&
-        (isHostTimeoutScheduled
-          ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))
-          : (isHostTimeoutScheduled = !0),
-        requestHostTimeout(handleTimeout, options - currentTime)))
-    : ((priorityLevel.sortIndex = timeout),
-      push(taskQueue, priorityLevel),
-      isHostCallbackScheduled ||
-        isPerformingWork ||
-        ((isHostCallbackScheduled = !0),
-        isMessageLoopRunning ||
-          ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));
-  return priorityLevel;
-}
-function unstable_cancelCallback$1(task) {
-  task.callback = null;
-}
-function unstable_getCurrentPriorityLevel$1() {
-  return currentPriorityLevel;
-}
-var isMessageLoopRunning = !1,
-  taskTimeoutID = -1,
-  startTime = -1;
-function shouldYieldToHost() {
-  return needsPaint ? !0 : 5 > getCurrentTime() - startTime ? !1 : !0;
-}
-function requestPaint() {
-  needsPaint = !0;
-}
-function performWorkUntilDeadline() {
-  needsPaint = !1;
-  if (isMessageLoopRunning) {
-    var currentTime = getCurrentTime();
-    startTime = currentTime;
-    var hasMoreWork = !0;
-    try {
-      a: {
-        isHostCallbackScheduled = !1;
-        isHostTimeoutScheduled &&
-          ((isHostTimeoutScheduled = !1),
-          localClearTimeout(taskTimeoutID),
-          (taskTimeoutID = -1));
-        isPerformingWork = !0;
-        var previousPriorityLevel = currentPriorityLevel;
-        try {
-          b: {
-            advanceTimers(currentTime);
-            for (
-              currentTask = peek(taskQueue);
-              null !== currentTask &&
-              !(
-                currentTask.expirationTime > currentTime && shouldYieldToHost()
-              );
-
-            ) {
-              var callback = currentTask.callback;
-              if ("function" === typeof callback) {
-                currentTask.callback = null;
-                currentPriorityLevel = currentTask.priorityLevel;
-                var continuationCallback = callback(
-                  currentTask.expirationTime <= currentTime
-                );
-                currentTime = getCurrentTime();
-                if ("function" === typeof continuationCallback) {
-                  currentTask.callback = continuationCallback;
-                  advanceTimers(currentTime);
-                  hasMoreWork = !0;
-                  break b;
-                }
-                currentTask === peek(taskQueue) && pop(taskQueue);
-                advanceTimers(currentTime);
-              } else pop(taskQueue);
-              currentTask = peek(taskQueue);
-            }
-            if (null !== currentTask) hasMoreWork = !0;
-            else {
-              var firstTimer = peek(timerQueue);
-              null !== firstTimer &&
-                requestHostTimeout(
-                  handleTimeout,
-                  firstTimer.startTime - currentTime
-                );
-              hasMoreWork = !1;
-            }
-          }
-          break a;
-        } finally {
-          (currentTask = null),
-            (currentPriorityLevel = previousPriorityLevel),
-            (isPerformingWork = !1);
-        }
-        hasMoreWork = void 0;
-      }
-    } finally {
-      hasMoreWork
-        ? schedulePerformWorkUntilDeadline()
-        : (isMessageLoopRunning = !1);
-    }
-  }
-}
-var schedulePerformWorkUntilDeadline;
-if ("function" === typeof localSetImmediate)
-  schedulePerformWorkUntilDeadline = function () {
-    localSetImmediate(performWorkUntilDeadline);
-  };
-else if ("undefined" !== typeof MessageChannel) {
-  var channel = new MessageChannel(),
-    port = channel.port2;
-  channel.port1.onmessage = performWorkUntilDeadline;
-  schedulePerformWorkUntilDeadline = function () {
-    port.postMessage(null);
-  };
-} else
-  schedulePerformWorkUntilDeadline = function () {
-    localSetTimeout(performWorkUntilDeadline, 0);
-  };
-function requestHostTimeout(callback, ms) {
-  taskTimeoutID = localSetTimeout(function () {
-    callback(getCurrentTime());
-  }, ms);
-}
-var unstable_UserBlockingPriority =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_UserBlockingPriority
-      : 2,
-  unstable_NormalPriority =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_NormalPriority
-      : 3,
-  unstable_LowPriority =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_LowPriority
-      : 4,
-  unstable_ImmediatePriority =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_ImmediatePriority
-      : 1,
-  unstable_scheduleCallback =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_scheduleCallback
-      : unstable_scheduleCallback$1,
-  unstable_cancelCallback =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_cancelCallback
-      : unstable_cancelCallback$1,
-  unstable_getCurrentPriorityLevel =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_getCurrentPriorityLevel
-      : unstable_getCurrentPriorityLevel$1,
-  unstable_shouldYield =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_shouldYield
-      : shouldYieldToHost,
-  unstable_requestPaint =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_requestPaint
-      : requestPaint,
-  unstable_now =
-    "undefined" !== typeof nativeRuntimeScheduler
-      ? nativeRuntimeScheduler.unstable_now
-      : getCurrentTime;
-function throwNotImplemented() {
-  throw Error("Not implemented.");
-}
-exports.unstable_IdlePriority =
-  "undefined" !== typeof nativeRuntimeScheduler
-    ? nativeRuntimeScheduler.unstable_IdlePriority
-    : 5;
-exports.unstable_ImmediatePriority = unstable_ImmediatePriority;
-exports.unstable_LowPriority = unstable_LowPriority;
-exports.unstable_NormalPriority = unstable_NormalPriority;
-exports.unstable_Profiling = null;
-exports.unstable_UserBlockingPriority = unstable_UserBlockingPriority;
-exports.unstable_cancelCallback = unstable_cancelCallback;
-exports.unstable_forceFrameRate = throwNotImplemented;
-exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
-exports.unstable_next = throwNotImplemented;
-exports.unstable_now = unstable_now;
-exports.unstable_requestPaint = unstable_requestPaint;
-exports.unstable_runWithPriority = throwNotImplemented;
-exports.unstable_scheduleCallback = unstable_scheduleCallback;
-exports.unstable_shouldYield = unstable_shouldYield;
-exports.unstable_wrapCallback = throwNotImplemented;
Index: de_modules/scheduler/cjs/scheduler.production.js
===================================================================
--- node_modules/scheduler/cjs/scheduler.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,340 +1,0 @@
-/**
- * @license React
- * scheduler.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.
- */
-
-"use strict";
-function push(heap, node) {
-  var index = heap.length;
-  heap.push(node);
-  a: for (; 0 < index; ) {
-    var parentIndex = (index - 1) >>> 1,
-      parent = heap[parentIndex];
-    if (0 < compare(parent, node))
-      (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);
-    else break a;
-  }
-}
-function peek(heap) {
-  return 0 === heap.length ? null : heap[0];
-}
-function pop(heap) {
-  if (0 === heap.length) return null;
-  var first = heap[0],
-    last = heap.pop();
-  if (last !== first) {
-    heap[0] = last;
-    a: for (
-      var index = 0, length = heap.length, halfLength = length >>> 1;
-      index < halfLength;
-
-    ) {
-      var leftIndex = 2 * (index + 1) - 1,
-        left = heap[leftIndex],
-        rightIndex = leftIndex + 1,
-        right = heap[rightIndex];
-      if (0 > compare(left, last))
-        rightIndex < length && 0 > compare(right, left)
-          ? ((heap[index] = right),
-            (heap[rightIndex] = last),
-            (index = rightIndex))
-          : ((heap[index] = left),
-            (heap[leftIndex] = last),
-            (index = leftIndex));
-      else if (rightIndex < length && 0 > compare(right, last))
-        (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);
-      else break a;
-    }
-  }
-  return first;
-}
-function compare(a, b) {
-  var diff = a.sortIndex - b.sortIndex;
-  return 0 !== diff ? diff : a.id - b.id;
-}
-exports.unstable_now = void 0;
-if ("object" === typeof performance && "function" === typeof performance.now) {
-  var localPerformance = performance;
-  exports.unstable_now = function () {
-    return localPerformance.now();
-  };
-} else {
-  var localDate = Date,
-    initialTime = localDate.now();
-  exports.unstable_now = function () {
-    return localDate.now() - initialTime;
-  };
-}
-var taskQueue = [],
-  timerQueue = [],
-  taskIdCounter = 1,
-  currentTask = null,
-  currentPriorityLevel = 3,
-  isPerformingWork = !1,
-  isHostCallbackScheduled = !1,
-  isHostTimeoutScheduled = !1,
-  needsPaint = !1,
-  localSetTimeout = "function" === typeof setTimeout ? setTimeout : null,
-  localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null,
-  localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null;
-function advanceTimers(currentTime) {
-  for (var timer = peek(timerQueue); null !== timer; ) {
-    if (null === timer.callback) pop(timerQueue);
-    else if (timer.startTime <= currentTime)
-      pop(timerQueue),
-        (timer.sortIndex = timer.expirationTime),
-        push(taskQueue, timer);
-    else break;
-    timer = peek(timerQueue);
-  }
-}
-function handleTimeout(currentTime) {
-  isHostTimeoutScheduled = !1;
-  advanceTimers(currentTime);
-  if (!isHostCallbackScheduled)
-    if (null !== peek(taskQueue))
-      (isHostCallbackScheduled = !0),
-        isMessageLoopRunning ||
-          ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());
-    else {
-      var firstTimer = peek(timerQueue);
-      null !== firstTimer &&
-        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
-    }
-}
-var isMessageLoopRunning = !1,
-  taskTimeoutID = -1,
-  frameInterval = 5,
-  startTime = -1;
-function shouldYieldToHost() {
-  return needsPaint
-    ? !0
-    : exports.unstable_now() - startTime < frameInterval
-      ? !1
-      : !0;
-}
-function performWorkUntilDeadline() {
-  needsPaint = !1;
-  if (isMessageLoopRunning) {
-    var currentTime = exports.unstable_now();
-    startTime = currentTime;
-    var hasMoreWork = !0;
-    try {
-      a: {
-        isHostCallbackScheduled = !1;
-        isHostTimeoutScheduled &&
-          ((isHostTimeoutScheduled = !1),
-          localClearTimeout(taskTimeoutID),
-          (taskTimeoutID = -1));
-        isPerformingWork = !0;
-        var previousPriorityLevel = currentPriorityLevel;
-        try {
-          b: {
-            advanceTimers(currentTime);
-            for (
-              currentTask = peek(taskQueue);
-              null !== currentTask &&
-              !(
-                currentTask.expirationTime > currentTime && shouldYieldToHost()
-              );
-
-            ) {
-              var callback = currentTask.callback;
-              if ("function" === typeof callback) {
-                currentTask.callback = null;
-                currentPriorityLevel = currentTask.priorityLevel;
-                var continuationCallback = callback(
-                  currentTask.expirationTime <= currentTime
-                );
-                currentTime = exports.unstable_now();
-                if ("function" === typeof continuationCallback) {
-                  currentTask.callback = continuationCallback;
-                  advanceTimers(currentTime);
-                  hasMoreWork = !0;
-                  break b;
-                }
-                currentTask === peek(taskQueue) && pop(taskQueue);
-                advanceTimers(currentTime);
-              } else pop(taskQueue);
-              currentTask = peek(taskQueue);
-            }
-            if (null !== currentTask) hasMoreWork = !0;
-            else {
-              var firstTimer = peek(timerQueue);
-              null !== firstTimer &&
-                requestHostTimeout(
-                  handleTimeout,
-                  firstTimer.startTime - currentTime
-                );
-              hasMoreWork = !1;
-            }
-          }
-          break a;
-        } finally {
-          (currentTask = null),
-            (currentPriorityLevel = previousPriorityLevel),
-            (isPerformingWork = !1);
-        }
-        hasMoreWork = void 0;
-      }
-    } finally {
-      hasMoreWork
-        ? schedulePerformWorkUntilDeadline()
-        : (isMessageLoopRunning = !1);
-    }
-  }
-}
-var schedulePerformWorkUntilDeadline;
-if ("function" === typeof localSetImmediate)
-  schedulePerformWorkUntilDeadline = function () {
-    localSetImmediate(performWorkUntilDeadline);
-  };
-else if ("undefined" !== typeof MessageChannel) {
-  var channel = new MessageChannel(),
-    port = channel.port2;
-  channel.port1.onmessage = performWorkUntilDeadline;
-  schedulePerformWorkUntilDeadline = function () {
-    port.postMessage(null);
-  };
-} else
-  schedulePerformWorkUntilDeadline = function () {
-    localSetTimeout(performWorkUntilDeadline, 0);
-  };
-function requestHostTimeout(callback, ms) {
-  taskTimeoutID = localSetTimeout(function () {
-    callback(exports.unstable_now());
-  }, ms);
-}
-exports.unstable_IdlePriority = 5;
-exports.unstable_ImmediatePriority = 1;
-exports.unstable_LowPriority = 4;
-exports.unstable_NormalPriority = 3;
-exports.unstable_Profiling = null;
-exports.unstable_UserBlockingPriority = 2;
-exports.unstable_cancelCallback = function (task) {
-  task.callback = null;
-};
-exports.unstable_forceFrameRate = function (fps) {
-  0 > fps || 125 < fps
-    ? console.error(
-        "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"
-      )
-    : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);
-};
-exports.unstable_getCurrentPriorityLevel = function () {
-  return currentPriorityLevel;
-};
-exports.unstable_next = function (eventHandler) {
-  switch (currentPriorityLevel) {
-    case 1:
-    case 2:
-    case 3:
-      var priorityLevel = 3;
-      break;
-    default:
-      priorityLevel = currentPriorityLevel;
-  }
-  var previousPriorityLevel = currentPriorityLevel;
-  currentPriorityLevel = priorityLevel;
-  try {
-    return eventHandler();
-  } finally {
-    currentPriorityLevel = previousPriorityLevel;
-  }
-};
-exports.unstable_requestPaint = function () {
-  needsPaint = !0;
-};
-exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {
-  switch (priorityLevel) {
-    case 1:
-    case 2:
-    case 3:
-    case 4:
-    case 5:
-      break;
-    default:
-      priorityLevel = 3;
-  }
-  var previousPriorityLevel = currentPriorityLevel;
-  currentPriorityLevel = priorityLevel;
-  try {
-    return eventHandler();
-  } finally {
-    currentPriorityLevel = previousPriorityLevel;
-  }
-};
-exports.unstable_scheduleCallback = function (
-  priorityLevel,
-  callback,
-  options
-) {
-  var currentTime = exports.unstable_now();
-  "object" === typeof options && null !== options
-    ? ((options = options.delay),
-      (options =
-        "number" === typeof options && 0 < options
-          ? currentTime + options
-          : currentTime))
-    : (options = currentTime);
-  switch (priorityLevel) {
-    case 1:
-      var timeout = -1;
-      break;
-    case 2:
-      timeout = 250;
-      break;
-    case 5:
-      timeout = 1073741823;
-      break;
-    case 4:
-      timeout = 1e4;
-      break;
-    default:
-      timeout = 5e3;
-  }
-  timeout = options + timeout;
-  priorityLevel = {
-    id: taskIdCounter++,
-    callback: callback,
-    priorityLevel: priorityLevel,
-    startTime: options,
-    expirationTime: timeout,
-    sortIndex: -1
-  };
-  options > currentTime
-    ? ((priorityLevel.sortIndex = options),
-      push(timerQueue, priorityLevel),
-      null === peek(taskQueue) &&
-        priorityLevel === peek(timerQueue) &&
-        (isHostTimeoutScheduled
-          ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))
-          : (isHostTimeoutScheduled = !0),
-        requestHostTimeout(handleTimeout, options - currentTime)))
-    : ((priorityLevel.sortIndex = timeout),
-      push(taskQueue, priorityLevel),
-      isHostCallbackScheduled ||
-        isPerformingWork ||
-        ((isHostCallbackScheduled = !0),
-        isMessageLoopRunning ||
-          ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));
-  return priorityLevel;
-};
-exports.unstable_shouldYield = shouldYieldToHost;
-exports.unstable_wrapCallback = function (callback) {
-  var parentPriorityLevel = currentPriorityLevel;
-  return function () {
-    var previousPriorityLevel = currentPriorityLevel;
-    currentPriorityLevel = parentPriorityLevel;
-    try {
-      return callback.apply(this, arguments);
-    } finally {
-      currentPriorityLevel = previousPriorityLevel;
-    }
-  };
-};
Index: de_modules/scheduler/index.js
===================================================================
--- node_modules/scheduler/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/scheduler.production.js');
-} else {
-  module.exports = require('./cjs/scheduler.development.js');
-}
Index: de_modules/scheduler/index.native.js
===================================================================
--- node_modules/scheduler/index.native.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/scheduler.native.production.js');
-} else {
-  module.exports = require('./cjs/scheduler.native.development.js');
-}
Index: de_modules/scheduler/package.json
===================================================================
--- node_modules/scheduler/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-{
-  "name": "scheduler",
-  "version": "0.27.0",
-  "description": "Cooperative scheduler for the browser environment.",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/scheduler"
-  },
-  "license": "MIT",
-  "keywords": [
-    "react"
-  ],
-  "bugs": {
-    "url": "https://github.com/facebook/react/issues"
-  },
-  "homepage": "https://react.dev/",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "index.js",
-    "index.native.js",
-    "unstable_mock.js",
-    "unstable_post_task.js",
-    "cjs/"
-  ]
-}
Index: de_modules/scheduler/unstable_mock.js
===================================================================
--- node_modules/scheduler/unstable_mock.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/scheduler-unstable_mock.production.js');
-} else {
-  module.exports = require('./cjs/scheduler-unstable_mock.development.js');
-}
Index: de_modules/scheduler/unstable_post_task.js
===================================================================
--- node_modules/scheduler/unstable_post_task.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/scheduler-unstable_post_task.production.js');
-} else {
-  module.exports = require('./cjs/scheduler-unstable_post_task.development.js');
-}
Index: de_modules/source-map-js/LICENSE
===================================================================
--- node_modules/source-map-js/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
-  contributors may be used to endorse or promote products derived from this
-  software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/source-map-js/README.md
===================================================================
--- node_modules/source-map-js/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,765 +1,0 @@
-# Source Map JS
-
-[![NPM](https://nodei.co/npm/source-map-js.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map-js)
-
-Difference between original [source-map](https://github.com/mozilla/source-map):
-
-> TL,DR: it's fork of original source-map@0.6, but with perfomance optimizations.
-
-This journey starts from [source-map@0.7.0](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md#070). Some part of it was rewritten to Rust and WASM and API became async.
-
-It's still a major block for many libraries like PostCSS or Sass for example because they need to migrate the whole API to the async way. This is the reason why 0.6.1 has 2x more downloads than 0.7.3 while it's faster several times.
-
-![Downloads count](media/downloads.png)
-
-More important that WASM version has some optimizations in JS code too. This is why [community asked to create branch for 0.6 version](https://github.com/mozilla/source-map/issues/324) and port these optimizations but, sadly, the answer was «no». A bit later I discovered [the issue](https://github.com/mozilla/source-map/issues/370) created by [Ben Rothman (@benthemonkey)](https://github.com/benthemonkey) with no response at all.
-
-[Roman Dvornov (@lahmatiy)](https://github.com/lahmatiy) wrote a [serveral posts](https://t.me/gorshochekvarit/76) (russian, only, sorry) about source-map library in his own Telegram channel. He mentioned the article [«Maybe you don't need Rust and WASM to speed up your JS»](https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html) written by [Vyacheslav Egorov (@mraleph)](https://github.com/mraleph). This article contains optimizations and hacks that lead to almost the same performance compare to WASM implementation.
-
-I decided to fork the original source-map and port these optimizations from the article and several others PR from the original source-map.
-
----------
-
-This is a library to generate and consume the source map format
-[described here][format].
-
-[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
-
-## Use with Node
-
-    $ npm install source-map-js
-
-<!-- ## Use on the Web
-
-    <script src="https://raw.githubusercontent.com/mozilla/source-map/master/dist/source-map.min.js" defer></script> -->
-
---------------------------------------------------------------------------------
-
-<!-- `npm run toc` to regenerate the Table of Contents -->
-
-<!-- START doctoc generated TOC please keep comment here to allow auto update -->
-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
-## Table of Contents
-
-- [Examples](#examples)
-  - [Consuming a source map](#consuming-a-source-map)
-  - [Generating a source map](#generating-a-source-map)
-    - [With SourceNode (high level API)](#with-sourcenode-high-level-api)
-    - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api)
-- [API](#api)
-  - [SourceMapConsumer](#sourcemapconsumer)
-    - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap)
-    - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans)
-    - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition)
-    - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition)
-    - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition)
-    - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources)
-    - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing)
-    - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order)
-  - [SourceMapGenerator](#sourcemapgenerator)
-    - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap)
-    - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer)
-    - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping)
-    - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent)
-    - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath)
-    - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring)
-  - [SourceNode](#sourcenode)
-    - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name)
-    - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath)
-    - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk)
-    - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk)
-    - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent)
-    - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn)
-    - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn)
-    - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep)
-    - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement)
-    - [SourceNode.prototype.toString()](#sourcenodeprototypetostring)
-    - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap)
-
-<!-- END doctoc generated TOC please keep comment here to allow auto update -->
-
-## Examples
-
-### Consuming a source map
-
-```js
-var rawSourceMap = {
-  version: 3,
-  file: 'min.js',
-  names: ['bar', 'baz', 'n'],
-  sources: ['one.js', 'two.js'],
-  sourceRoot: 'http://example.com/www/js/',
-  mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-};
-
-var smc = new SourceMapConsumer(rawSourceMap);
-
-console.log(smc.sources);
-// [ 'http://example.com/www/js/one.js',
-//   'http://example.com/www/js/two.js' ]
-
-console.log(smc.originalPositionFor({
-  line: 2,
-  column: 28
-}));
-// { source: 'http://example.com/www/js/two.js',
-//   line: 2,
-//   column: 10,
-//   name: 'n' }
-
-console.log(smc.generatedPositionFor({
-  source: 'http://example.com/www/js/two.js',
-  line: 2,
-  column: 10
-}));
-// { line: 2, column: 28 }
-
-smc.eachMapping(function (m) {
-  // ...
-});
-```
-
-### Generating a source map
-
-In depth guide:
-[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
-
-#### With SourceNode (high level API)
-
-```js
-function compile(ast) {
-  switch (ast.type) {
-  case 'BinaryExpression':
-    return new SourceNode(
-      ast.location.line,
-      ast.location.column,
-      ast.location.source,
-      [compile(ast.left), " + ", compile(ast.right)]
-    );
-  case 'Literal':
-    return new SourceNode(
-      ast.location.line,
-      ast.location.column,
-      ast.location.source,
-      String(ast.value)
-    );
-  // ...
-  default:
-    throw new Error("Bad AST");
-  }
-}
-
-var ast = parse("40 + 2", "add.js");
-console.log(compile(ast).toStringWithSourceMap({
-  file: 'add.js'
-}));
-// { code: '40 + 2',
-//   map: [object SourceMapGenerator] }
-```
-
-#### With SourceMapGenerator (low level API)
-
-```js
-var map = new SourceMapGenerator({
-  file: "source-mapped.js"
-});
-
-map.addMapping({
-  generated: {
-    line: 10,
-    column: 35
-  },
-  source: "foo.js",
-  original: {
-    line: 33,
-    column: 2
-  },
-  name: "christopher"
-});
-
-console.log(map.toString());
-// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
-```
-
-## API
-
-Get a reference to the module:
-
-```js
-// Node.js
-var sourceMap = require('source-map');
-
-// Browser builds
-var sourceMap = window.sourceMap;
-
-// Inside Firefox
-const sourceMap = require("devtools/toolkit/sourcemap/source-map.js");
-```
-
-### SourceMapConsumer
-
-A SourceMapConsumer instance represents a parsed source map which we can query
-for information about the original file positions by giving it a file position
-in the generated source.
-
-#### new SourceMapConsumer(rawSourceMap)
-
-The only parameter is the raw source map (either as a string which can be
-`JSON.parse`'d, or an object). According to the spec, source maps have the
-following attributes:
-
-* `version`: Which version of the source map spec this map is following.
-
-* `sources`: An array of URLs to the original source files.
-
-* `names`: An array of identifiers which can be referenced by individual
-  mappings.
-
-* `sourceRoot`: Optional. The URL root from which all sources are relative.
-
-* `sourcesContent`: Optional. An array of contents of the original source files.
-
-* `mappings`: A string of base64 VLQs which contain the actual mappings.
-
-* `file`: Optional. The generated filename this source map is associated with.
-
-```js
-var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData);
-```
-
-#### SourceMapConsumer.prototype.computeColumnSpans()
-
-Compute the last column for each generated mapping. The last column is
-inclusive.
-
-```js
-// Before:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1 },
-//   { line: 2,
-//     column: 10 },
-//   { line: 2,
-//     column: 20 } ]
-
-consumer.computeColumnSpans();
-
-// After:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1,
-//     lastColumn: 9 },
-//   { line: 2,
-//     column: 10,
-//     lastColumn: 19 },
-//   { line: 2,
-//     column: 20,
-//     lastColumn: Infinity } ]
-
-```
-
-#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
-
-Returns the original source, line, and column information for the generated
-source's line and column positions provided. The only argument is an object with
-the following properties:
-
-* `line`: The line number in the generated source.  Line numbers in
-  this library are 1-based (note that the underlying source map
-  specification uses 0-based line numbers -- this library handles the
-  translation).
-
-* `column`: The column number in the generated source.  Column numbers
-  in this library are 0-based.
-
-* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or
-  `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest
-  element that is smaller than or greater than the one we are searching for,
-  respectively, if the exact element cannot be found.  Defaults to
-  `SourceMapConsumer.GREATEST_LOWER_BOUND`.
-
-and an object is returned with the following properties:
-
-* `source`: The original source file, or null if this information is not
-  available.
-
-* `line`: The line number in the original source, or null if this information is
-  not available.  The line number is 1-based.
-
-* `column`: The column number in the original source, or null if this
-  information is not available.  The column number is 0-based.
-
-* `name`: The original identifier, or null if this information is not available.
-
-```js
-consumer.originalPositionFor({ line: 2, column: 10 })
-// { source: 'foo.coffee',
-//   line: 2,
-//   column: 2,
-//   name: null }
-
-consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 })
-// { source: null,
-//   line: null,
-//   column: null,
-//   name: null }
-```
-
-#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
-
-Returns the generated line and column information for the original source,
-line, and column positions provided. The only argument is an object with
-the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.  The line number is
-  1-based.
-
-* `column`: The column number in the original source.  The column
-  number is 0-based.
-
-and an object is returned with the following properties:
-
-* `line`: The line number in the generated source, or null.  The line
-  number is 1-based.
-
-* `column`: The column number in the generated source, or null.  The
-  column number is 0-based.
-
-```js
-consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 })
-// { line: 1,
-//   column: 56 }
-```
-
-#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
-
-Returns all generated line and column information for the original source, line,
-and column provided. If no column is provided, returns all mappings
-corresponding to a either the line we are searching for or the next closest line
-that has any mappings. Otherwise, returns all mappings corresponding to the
-given line and either the column we are searching for or the next closest column
-that has any offsets.
-
-The only argument is an object with the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.  The line number is
-  1-based.
-
-* `column`: Optional. The column number in the original source.  The
-  column number is 0-based.
-
-and an array of objects is returned, each with the following properties:
-
-* `line`: The line number in the generated source, or null.  The line
-  number is 1-based.
-
-* `column`: The column number in the generated source, or null.  The
-  column number is 0-based.
-
-```js
-consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1 },
-//   { line: 2,
-//     column: 10 },
-//   { line: 2,
-//     column: 20 } ]
-```
-
-#### SourceMapConsumer.prototype.hasContentsOfAllSources()
-
-Return true if we have the embedded source content for every source listed in
-the source map, false otherwise.
-
-In other words, if this method returns `true`, then
-`consumer.sourceContentFor(s)` will succeed for every source `s` in
-`consumer.sources`.
-
-```js
-// ...
-if (consumer.hasContentsOfAllSources()) {
-  consumerReadyCallback(consumer);
-} else {
-  fetchSources(consumer, consumerReadyCallback);
-}
-// ...
-```
-
-#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
-
-Returns the original source content for the source provided. The only
-argument is the URL of the original source file.
-
-If the source content for the given source is not found, then an error is
-thrown. Optionally, pass `true` as the second param to have `null` returned
-instead.
-
-```js
-consumer.sources
-// [ "my-cool-lib.clj" ]
-
-consumer.sourceContentFor("my-cool-lib.clj")
-// "..."
-
-consumer.sourceContentFor("this is not in the source map");
-// Error: "this is not in the source map" is not in the source map
-
-consumer.sourceContentFor("this is not in the source map", true);
-// null
-```
-
-#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
-
-Iterate over each mapping between an original source/line/column and a
-generated line/column in this source map.
-
-* `callback`: The function that is called with each mapping. Mappings have the
-  form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
-  name }`
-
-* `context`: Optional. If specified, this object will be the value of `this`
-  every time that `callback` is called.
-
-* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
-  `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
-  the mappings sorted by the generated file's line/column order or the
-  original's source/line/column order, respectively. Defaults to
-  `SourceMapConsumer.GENERATED_ORDER`.
-
-```js
-consumer.eachMapping(function (m) { console.log(m); })
-// ...
-// { source: 'illmatic.js',
-//   generatedLine: 1,
-//   generatedColumn: 0,
-//   originalLine: 1,
-//   originalColumn: 0,
-//   name: null }
-// { source: 'illmatic.js',
-//   generatedLine: 2,
-//   generatedColumn: 0,
-//   originalLine: 2,
-//   originalColumn: 0,
-//   name: null }
-// ...
-```
-### SourceMapGenerator
-
-An instance of the SourceMapGenerator represents a source map which is being
-built incrementally.
-
-#### new SourceMapGenerator([startOfSourceMap])
-
-You may pass an object with the following properties:
-
-* `file`: The filename of the generated source that this source map is
-  associated with.
-
-* `sourceRoot`: A root for all relative URLs in this source map.
-
-* `skipValidation`: Optional. When `true`, disables validation of mappings as
-  they are added. This can improve performance but should be used with
-  discretion, as a last resort. Even then, one should avoid using this flag when
-  running tests, if possible.
-
-* `ignoreInvalidMapping`: Optional. When `true`, instead of throwing error on
-  invalid mapping, it will be ignored.
-
-```js
-var generator = new sourceMap.SourceMapGenerator({
-  file: "my-generated-javascript-file.js",
-  sourceRoot: "http://example.com/app/js/"
-});
-```
-
-#### SourceMapGenerator.fromSourceMap(sourceMapConsumer, sourceMapGeneratorOptions)
-
-Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance.
-
-* `sourceMapConsumer` The SourceMap.
-
-* `sourceMapGeneratorOptions` options that will be passed to the SourceMapGenerator constructor which used under the hood.
-
-```js
-var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer, {
-  ignoreInvalidMapping: true,
-});
-```
-
-#### SourceMapGenerator.prototype.addMapping(mapping)
-
-Add a single mapping from original source line and column to the generated
-source's line and column for this source map being created. The mapping object
-should have the following properties:
-
-* `generated`: An object with the generated line and column positions.
-
-* `original`: An object with the original line and column positions.
-
-* `source`: The original source file (relative to the sourceRoot).
-
-* `name`: An optional original token name for this mapping.
-
-```js
-generator.addMapping({
-  source: "module-one.scm",
-  original: { line: 128, column: 0 },
-  generated: { line: 3, column: 456 }
-})
-```
-
-#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for an original source file.
-
-* `sourceFile` the URL of the original source file.
-
-* `sourceContent` the content of the source file.
-
-```js
-generator.setSourceContent("module-one.scm",
-                           fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
-
-Applies a SourceMap for a source file to the SourceMap.
-Each mapping to the supplied source file is rewritten using the
-supplied SourceMap. Note: The resolution for the resulting mappings
-is the minimum of this map and the supplied map.
-
-* `sourceMapConsumer`: The SourceMap to be applied.
-
-* `sourceFile`: Optional. The filename of the source file.
-  If omitted, sourceMapConsumer.file will be used, if it exists.
-  Otherwise an error will be thrown.
-
-* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
-  to be applied. If relative, it is relative to the SourceMap.
-
-  This parameter is needed when the two SourceMaps aren't in the same
-  directory, and the SourceMap to be applied contains relative source
-  paths. If so, those relative source paths need to be rewritten
-  relative to the SourceMap.
-
-  If omitted, it is assumed that both SourceMaps are in the same directory,
-  thus not needing any rewriting. (Supplying `'.'` has the same effect.)
-
-#### SourceMapGenerator.prototype.toString()
-
-Renders the source map being generated to a string.
-
-```js
-generator.toString()
-// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}'
-```
-
-### SourceNode
-
-SourceNodes provide a way to abstract over interpolating and/or concatenating
-snippets of generated JavaScript source code, while maintaining the line and
-column information associated between those snippets and the original source
-code. This is useful as the final intermediate representation a compiler might
-use before outputting the generated JS and source map.
-
-#### new SourceNode([line, column, source[, chunk[, name]]])
-
-* `line`: The original line number associated with this source node, or null if
-  it isn't associated with an original line.  The line number is 1-based.
-
-* `column`: The original column number associated with this source node, or null
-  if it isn't associated with an original column.  The column number
-  is 0-based.
-
-* `source`: The original source's filename; null if no filename is provided.
-
-* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
-  below.
-
-* `name`: Optional. The original identifier.
-
-```js
-var node = new SourceNode(1, 2, "a.cpp", [
-  new SourceNode(3, 4, "b.cpp", "extern int status;\n"),
-  new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"),
-  new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"),
-]);
-```
-
-#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
-
-Creates a SourceNode from generated code and a SourceMapConsumer.
-
-* `code`: The generated code
-
-* `sourceMapConsumer` The SourceMap for the generated code
-
-* `relativePath` The optional path that relative sources in `sourceMapConsumer`
-  should be relative to.
-
-```js
-var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8"));
-var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"),
-                                              consumer);
-```
-
-#### SourceNode.prototype.add(chunk)
-
-Add a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.add(" + ");
-node.add(otherNode);
-node.add([leftHandOperandNode, " + ", rightHandOperandNode]);
-```
-
-#### SourceNode.prototype.prepend(chunk)
-
-Prepend a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.prepend("/** Build Id: f783haef86324gf **/\n\n");
-```
-
-#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for a source file. This will be added to the
-`SourceMap` in the `sourcesContent` field.
-
-* `sourceFile`: The filename of the source file
-
-* `sourceContent`: The content of the source file
-
-```js
-node.setSourceContent("module-one.scm",
-                      fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceNode.prototype.walk(fn)
-
-Walk over the tree of JS snippets in this node and its children. The walking
-function is called once for each snippet of JS and is passed that snippet and
-the its original associated source's line/column location.
-
-* `fn`: The traversal function.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.walk(function (code, loc) { console.log("WALK:", code, loc); })
-// WALK: uno { source: 'b.js', line: 3, column: 4, name: null }
-// WALK: dos { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: tres { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null }
-```
-
-#### SourceNode.prototype.walkSourceContents(fn)
-
-Walk over the tree of SourceNodes. The walking function is called for each
-source file content and is passed the filename and source content.
-
-* `fn`: The traversal function.
-
-```js
-var a = new SourceNode(1, 2, "a.js", "generated from a");
-a.setSourceContent("a.js", "original a");
-var b = new SourceNode(1, 2, "b.js", "generated from b");
-b.setSourceContent("b.js", "original b");
-var c = new SourceNode(1, 2, "c.js", "generated from c");
-c.setSourceContent("c.js", "original c");
-
-var node = new SourceNode(null, null, null, [a, b, c]);
-node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); })
-// WALK: a.js : original a
-// WALK: b.js : original b
-// WALK: c.js : original c
-```
-
-#### SourceNode.prototype.join(sep)
-
-Like `Array.prototype.join` except for SourceNodes. Inserts the separator
-between each of this source node's children.
-
-* `sep`: The separator.
-
-```js
-var lhs = new SourceNode(1, 2, "a.rs", "my_copy");
-var operand = new SourceNode(3, 4, "a.rs", "=");
-var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()");
-
-var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]);
-var joinedNode = node.join(" ");
-```
-
-#### SourceNode.prototype.replaceRight(pattern, replacement)
-
-Call `String.prototype.replace` on the very right-most source snippet. Useful
-for trimming white space from the end of a source node, etc.
-
-* `pattern`: The pattern to replace.
-
-* `replacement`: The thing to replace the pattern with.
-
-```js
-// Trim trailing white space.
-node.replaceRight(/\s*$/, "");
-```
-
-#### SourceNode.prototype.toString()
-
-Return the string representation of this source node. Walks over the tree and
-concatenates all the various snippets together to one string.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.toString()
-// 'unodostresquatro'
-```
-
-#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
-
-Returns the string representation of this tree of source nodes, plus a
-SourceMapGenerator which contains all the mappings between the generated and
-original sources.
-
-The arguments are the same as those to `new SourceMapGenerator`.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.toStringWithSourceMap({ file: "my-output-file.js" })
-// { code: 'unodostresquatro',
-//   map: [object SourceMapGenerator] }
-```
Index: de_modules/source-map-js/lib/array-set.js
===================================================================
--- node_modules/source-map-js/lib/array-set.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,121 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var has = Object.prototype.hasOwnProperty;
-var hasNativeMap = typeof Map !== "undefined";
-
-/**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
-function ArraySet() {
-  this._array = [];
-  this._set = hasNativeMap ? new Map() : Object.create(null);
-}
-
-/**
- * Static method for creating ArraySet instances from an existing array.
- */
-ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-  var set = new ArraySet();
-  for (var i = 0, len = aArray.length; i < len; i++) {
-    set.add(aArray[i], aAllowDuplicates);
-  }
-  return set;
-};
-
-/**
- * Return how many unique items are in this ArraySet. If duplicates have been
- * added, than those do not count towards the size.
- *
- * @returns Number
- */
-ArraySet.prototype.size = function ArraySet_size() {
-  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
-};
-
-/**
- * Add the given string to this set.
- *
- * @param String aStr
- */
-ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
-  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
-  var idx = this._array.length;
-  if (!isDuplicate || aAllowDuplicates) {
-    this._array.push(aStr);
-  }
-  if (!isDuplicate) {
-    if (hasNativeMap) {
-      this._set.set(aStr, idx);
-    } else {
-      this._set[sStr] = idx;
-    }
-  }
-};
-
-/**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
-ArraySet.prototype.has = function ArraySet_has(aStr) {
-  if (hasNativeMap) {
-    return this._set.has(aStr);
-  } else {
-    var sStr = util.toSetString(aStr);
-    return has.call(this._set, sStr);
-  }
-};
-
-/**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
-ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-  if (hasNativeMap) {
-    var idx = this._set.get(aStr);
-    if (idx >= 0) {
-        return idx;
-    }
-  } else {
-    var sStr = util.toSetString(aStr);
-    if (has.call(this._set, sStr)) {
-      return this._set[sStr];
-    }
-  }
-
-  throw new Error('"' + aStr + '" is not in the set.');
-};
-
-/**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
-ArraySet.prototype.at = function ArraySet_at(aIdx) {
-  if (aIdx >= 0 && aIdx < this._array.length) {
-    return this._array[aIdx];
-  }
-  throw new Error('No element indexed by ' + aIdx);
-};
-
-/**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
-ArraySet.prototype.toArray = function ArraySet_toArray() {
-  return this._array.slice();
-};
-
-exports.ArraySet = ArraySet;
Index: de_modules/source-map-js/lib/base64-vlq.js
===================================================================
--- node_modules/source-map-js/lib/base64-vlq.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,140 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above
- *    copyright notice, this list of conditions and the following
- *    disclaimer in the documentation and/or other materials provided
- *    with the distribution.
- *  * Neither the name of Google Inc. nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-var base64 = require('./base64');
-
-// A single base 64 digit can contain 6 bits of data. For the base 64 variable
-// length quantities we use in the source map spec, the first bit is the sign,
-// the next four bits are the actual value, and the 6th bit is the
-// continuation bit. The continuation bit tells us whether there are more
-// digits in this value following this digit.
-//
-//   Continuation
-//   |    Sign
-//   |    |
-//   V    V
-//   101011
-
-var VLQ_BASE_SHIFT = 5;
-
-// binary: 100000
-var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
-// binary: 011111
-var VLQ_BASE_MASK = VLQ_BASE - 1;
-
-// binary: 100000
-var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
-/**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit.  For example, as decimals:
- *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
-function toVLQSigned(aValue) {
-  return aValue < 0
-    ? ((-aValue) << 1) + 1
-    : (aValue << 1) + 0;
-}
-
-/**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit.  For example, as decimals:
- *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
-function fromVLQSigned(aValue) {
-  var isNegative = (aValue & 1) === 1;
-  var shifted = aValue >> 1;
-  return isNegative
-    ? -shifted
-    : shifted;
-}
-
-/**
- * Returns the base 64 VLQ encoded value.
- */
-exports.encode = function base64VLQ_encode(aValue) {
-  var encoded = "";
-  var digit;
-
-  var vlq = toVLQSigned(aValue);
-
-  do {
-    digit = vlq & VLQ_BASE_MASK;
-    vlq >>>= VLQ_BASE_SHIFT;
-    if (vlq > 0) {
-      // There are still more digits in this value, so we must make sure the
-      // continuation bit is marked.
-      digit |= VLQ_CONTINUATION_BIT;
-    }
-    encoded += base64.encode(digit);
-  } while (vlq > 0);
-
-  return encoded;
-};
-
-/**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
-exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
-  var strLen = aStr.length;
-  var result = 0;
-  var shift = 0;
-  var continuation, digit;
-
-  do {
-    if (aIndex >= strLen) {
-      throw new Error("Expected more digits in base 64 VLQ value.");
-    }
-
-    digit = base64.decode(aStr.charCodeAt(aIndex++));
-    if (digit === -1) {
-      throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
-    }
-
-    continuation = !!(digit & VLQ_CONTINUATION_BIT);
-    digit &= VLQ_BASE_MASK;
-    result = result + (digit << shift);
-    shift += VLQ_BASE_SHIFT;
-  } while (continuation);
-
-  aOutParam.value = fromVLQSigned(result);
-  aOutParam.rest = aIndex;
-};
Index: de_modules/source-map-js/lib/base64.js
===================================================================
--- node_modules/source-map-js/lib/base64.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
-/**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
-exports.encode = function (number) {
-  if (0 <= number && number < intToCharMap.length) {
-    return intToCharMap[number];
-  }
-  throw new TypeError("Must be between 0 and 63: " + number);
-};
-
-/**
- * Decode a single base 64 character code digit to an integer. Returns -1 on
- * failure.
- */
-exports.decode = function (charCode) {
-  var bigA = 65;     // 'A'
-  var bigZ = 90;     // 'Z'
-
-  var littleA = 97;  // 'a'
-  var littleZ = 122; // 'z'
-
-  var zero = 48;     // '0'
-  var nine = 57;     // '9'
-
-  var plus = 43;     // '+'
-  var slash = 47;    // '/'
-
-  var littleOffset = 26;
-  var numberOffset = 52;
-
-  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-  if (bigA <= charCode && charCode <= bigZ) {
-    return (charCode - bigA);
-  }
-
-  // 26 - 51: abcdefghijklmnopqrstuvwxyz
-  if (littleA <= charCode && charCode <= littleZ) {
-    return (charCode - littleA + littleOffset);
-  }
-
-  // 52 - 61: 0123456789
-  if (zero <= charCode && charCode <= nine) {
-    return (charCode - zero + numberOffset);
-  }
-
-  // 62: +
-  if (charCode == plus) {
-    return 62;
-  }
-
-  // 63: /
-  if (charCode == slash) {
-    return 63;
-  }
-
-  // Invalid base64 digit.
-  return -1;
-};
Index: de_modules/source-map-js/lib/binary-search.js
===================================================================
--- node_modules/source-map-js/lib/binary-search.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-exports.GREATEST_LOWER_BOUND = 1;
-exports.LEAST_UPPER_BOUND = 2;
-
-/**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- */
-function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
-  // This function terminates when one of the following is true:
-  //
-  //   1. We find the exact element we are looking for.
-  //
-  //   2. We did not find the exact element, but we can return the index of
-  //      the next-closest element.
-  //
-  //   3. We did not find the exact element, and there is no next-closest
-  //      element than the one we are searching for, so we return -1.
-  var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-  var cmp = aCompare(aNeedle, aHaystack[mid], true);
-  if (cmp === 0) {
-    // Found the element we are looking for.
-    return mid;
-  }
-  else if (cmp > 0) {
-    // Our needle is greater than aHaystack[mid].
-    if (aHigh - mid > 1) {
-      // The element is in the upper half.
-      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
-    }
-
-    // The exact needle element was not found in this haystack. Determine if
-    // we are in termination case (3) or (2) and return the appropriate thing.
-    if (aBias == exports.LEAST_UPPER_BOUND) {
-      return aHigh < aHaystack.length ? aHigh : -1;
-    } else {
-      return mid;
-    }
-  }
-  else {
-    // Our needle is less than aHaystack[mid].
-    if (mid - aLow > 1) {
-      // The element is in the lower half.
-      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
-    }
-
-    // we are in termination case (3) or (2) and return the appropriate thing.
-    if (aBias == exports.LEAST_UPPER_BOUND) {
-      return mid;
-    } else {
-      return aLow < 0 ? -1 : aLow;
-    }
-  }
-}
-
-/**
- * This is an implementation of binary search which will always try and return
- * the index of the closest element if there is no exact hit. This is because
- * mappings between original and generated line/col pairs are single points,
- * and there is an implicit region between each of them, so a miss just means
- * that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- *     array and returns -1, 0, or 1 depending on whether the needle is less
- *     than, equal to, or greater than the element, respectively.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
- */
-exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
-  if (aHaystack.length === 0) {
-    return -1;
-  }
-
-  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
-                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);
-  if (index < 0) {
-    return -1;
-  }
-
-  // We have found either the exact element, or the next-closest element than
-  // the one we are searching for. However, there may be more than one such
-  // element. Make sure we always return the smallest of these.
-  while (index - 1 >= 0) {
-    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
-      break;
-    }
-    --index;
-  }
-
-  return index;
-};
Index: de_modules/source-map-js/lib/mapping-list.js
===================================================================
--- node_modules/source-map-js/lib/mapping-list.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-
-/**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
-function generatedPositionAfter(mappingA, mappingB) {
-  // Optimized for most common case
-  var lineA = mappingA.generatedLine;
-  var lineB = mappingB.generatedLine;
-  var columnA = mappingA.generatedColumn;
-  var columnB = mappingB.generatedColumn;
-  return lineB > lineA || lineB == lineA && columnB >= columnA ||
-         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-}
-
-/**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
-function MappingList() {
-  this._array = [];
-  this._sorted = true;
-  // Serves as infimum
-  this._last = {generatedLine: -1, generatedColumn: 0};
-}
-
-/**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
-MappingList.prototype.unsortedForEach =
-  function MappingList_forEach(aCallback, aThisArg) {
-    this._array.forEach(aCallback, aThisArg);
-  };
-
-/**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
-MappingList.prototype.add = function MappingList_add(aMapping) {
-  if (generatedPositionAfter(this._last, aMapping)) {
-    this._last = aMapping;
-    this._array.push(aMapping);
-  } else {
-    this._sorted = false;
-    this._array.push(aMapping);
-  }
-};
-
-/**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
-MappingList.prototype.toArray = function MappingList_toArray() {
-  if (!this._sorted) {
-    this._array.sort(util.compareByGeneratedPositionsInflated);
-    this._sorted = true;
-  }
-  return this._array;
-};
-
-exports.MappingList = MappingList;
Index: de_modules/source-map-js/lib/quick-sort.js
===================================================================
--- node_modules/source-map-js/lib/quick-sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-// It turns out that some (most?) JavaScript engines don't self-host
-// `Array.prototype.sort`. This makes sense because C++ will likely remain
-// faster than JS when doing raw CPU-intensive sorting. However, when using a
-// custom comparator function, calling back and forth between the VM's C++ and
-// JIT'd JS is rather slow *and* loses JIT type information, resulting in
-// worse generated code for the comparator function than would be optimal. In
-// fact, when sorting with a comparator, these costs outweigh the benefits of
-// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-// a ~3500ms mean speed-up in `bench/bench.html`.
-
-function SortTemplate(comparator) {
-
-/**
- * Swap the elements indexed by `x` and `y` in the array `ary`.
- *
- * @param {Array} ary
- *        The array.
- * @param {Number} x
- *        The index of the first item.
- * @param {Number} y
- *        The index of the second item.
- */
-function swap(ary, x, y) {
-  var temp = ary[x];
-  ary[x] = ary[y];
-  ary[y] = temp;
-}
-
-/**
- * Returns a random integer within the range `low .. high` inclusive.
- *
- * @param {Number} low
- *        The lower bound on the range.
- * @param {Number} high
- *        The upper bound on the range.
- */
-function randomIntInRange(low, high) {
-  return Math.round(low + (Math.random() * (high - low)));
-}
-
-/**
- * The Quick Sort algorithm.
- *
- * @param {Array} ary
- *        An array to sort.
- * @param {function} comparator
- *        Function to use to compare two items.
- * @param {Number} p
- *        Start index of the array
- * @param {Number} r
- *        End index of the array
- */
-function doQuickSort(ary, comparator, p, r) {
-  // If our lower bound is less than our upper bound, we (1) partition the
-  // array into two pieces and (2) recurse on each half. If it is not, this is
-  // the empty array and our base case.
-
-  if (p < r) {
-    // (1) Partitioning.
-    //
-    // The partitioning chooses a pivot between `p` and `r` and moves all
-    // elements that are less than or equal to the pivot to the before it, and
-    // all the elements that are greater than it after it. The effect is that
-    // once partition is done, the pivot is in the exact place it will be when
-    // the array is put in sorted order, and it will not need to be moved
-    // again. This runs in O(n) time.
-
-    // Always choose a random pivot so that an input array which is reverse
-    // sorted does not cause O(n^2) running time.
-    var pivotIndex = randomIntInRange(p, r);
-    var i = p - 1;
-
-    swap(ary, pivotIndex, r);
-    var pivot = ary[r];
-
-    // Immediately after `j` is incremented in this loop, the following hold
-    // true:
-    //
-    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
-    //
-    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
-    for (var j = p; j < r; j++) {
-      if (comparator(ary[j], pivot, false) <= 0) {
-        i += 1;
-        swap(ary, i, j);
-      }
-    }
-
-    swap(ary, i + 1, j);
-    var q = i + 1;
-
-    // (2) Recurse on each half.
-
-    doQuickSort(ary, comparator, p, q - 1);
-    doQuickSort(ary, comparator, q + 1, r);
-  }
-}
-
-  return doQuickSort;
-}
-
-function cloneSort(comparator) {
-  let template = SortTemplate.toString();
-  let templateFn = new Function(`return ${template}`)();
-  return templateFn(comparator);
-}
-
-/**
- * Sort the given array in-place with the given comparator function.
- *
- * @param {Array} ary
- *        An array to sort.
- * @param {function} comparator
- *        Function to use to compare two items.
- */
-
-let sortCache = new WeakMap();
-exports.quickSort = function (ary, comparator, start = 0) {
-  let doQuickSort = sortCache.get(comparator);
-  if (doQuickSort === void 0) {
-    doQuickSort = cloneSort(comparator);
-    sortCache.set(comparator, doQuickSort);
-  }
-  doQuickSort(ary, comparator, start, ary.length - 1);
-};
Index: de_modules/source-map-js/lib/source-map-consumer.d.ts
===================================================================
--- node_modules/source-map-js/lib/source-map-consumer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { SourceMapConsumer } from '..';
Index: de_modules/source-map-js/lib/source-map-consumer.js
===================================================================
--- node_modules/source-map-js/lib/source-map-consumer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1188 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var binarySearch = require('./binary-search');
-var ArraySet = require('./array-set').ArraySet;
-var base64VLQ = require('./base64-vlq');
-var quickSort = require('./quick-sort').quickSort;
-
-function SourceMapConsumer(aSourceMap, aSourceMapURL) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = util.parseSourceMapInput(aSourceMap);
-  }
-
-  return sourceMap.sections != null
-    ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)
-    : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);
-}
-
-SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {
-  return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);
-}
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-SourceMapConsumer.prototype._version = 3;
-
-// `__generatedMappings` and `__originalMappings` are arrays that hold the
-// parsed mapping coordinates from the source map's "mappings" attribute. They
-// are lazily instantiated, accessed via the `_generatedMappings` and
-// `_originalMappings` getters respectively, and we only parse the mappings
-// and create these arrays once queried for a source location. We jump through
-// these hoops because there can be many thousands of mappings, and parsing
-// them is expensive, so we only want to do it if we must.
-//
-// Each object in the arrays is of the form:
-//
-//     {
-//       generatedLine: The line number in the generated code,
-//       generatedColumn: The column number in the generated code,
-//       source: The path to the original source file that generated this
-//               chunk of code,
-//       originalLine: The line number in the original source that
-//                     corresponds to this chunk of generated code,
-//       originalColumn: The column number in the original source that
-//                       corresponds to this chunk of generated code,
-//       name: The name of the original symbol which generated this chunk of
-//             code.
-//     }
-//
-// All properties except for `generatedLine` and `generatedColumn` can be
-// `null`.
-//
-// `_generatedMappings` is ordered by the generated positions.
-//
-// `_originalMappings` is ordered by the original positions.
-
-SourceMapConsumer.prototype.__generatedMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-  configurable: true,
-  enumerable: true,
-  get: function () {
-    if (!this.__generatedMappings) {
-      this._parseMappings(this._mappings, this.sourceRoot);
-    }
-
-    return this.__generatedMappings;
-  }
-});
-
-SourceMapConsumer.prototype.__originalMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-  configurable: true,
-  enumerable: true,
-  get: function () {
-    if (!this.__originalMappings) {
-      this._parseMappings(this._mappings, this.sourceRoot);
-    }
-
-    return this.__originalMappings;
-  }
-});
-
-SourceMapConsumer.prototype._charIsMappingSeparator =
-  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
-    var c = aStr.charAt(index);
-    return c === ";" || c === ",";
-  };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-SourceMapConsumer.prototype._parseMappings =
-  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    throw new Error("Subclasses must implement _parseMappings");
-  };
-
-SourceMapConsumer.GENERATED_ORDER = 1;
-SourceMapConsumer.ORIGINAL_ORDER = 2;
-
-SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
-/**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- *        The function that is called with each mapping.
- * @param Object aContext
- *        Optional. If specified, this object will be the value of `this` every
- *        time that `aCallback` is called.
- * @param aOrder
- *        Either `SourceMapConsumer.GENERATED_ORDER` or
- *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- *        iterate over the mappings sorted by the generated file's line/column
- *        order or the original's source/line/column order, respectively. Defaults to
- *        `SourceMapConsumer.GENERATED_ORDER`.
- */
-SourceMapConsumer.prototype.eachMapping =
-  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-    var context = aContext || null;
-    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
-    var mappings;
-    switch (order) {
-    case SourceMapConsumer.GENERATED_ORDER:
-      mappings = this._generatedMappings;
-      break;
-    case SourceMapConsumer.ORIGINAL_ORDER:
-      mappings = this._originalMappings;
-      break;
-    default:
-      throw new Error("Unknown order of iteration.");
-    }
-
-    var sourceRoot = this.sourceRoot;
-    var boundCallback = aCallback.bind(context);
-    var names = this._names;
-    var sources = this._sources;
-    var sourceMapURL = this._sourceMapURL;
-
-    for (var i = 0, n = mappings.length; i < n; i++) {
-      var mapping = mappings[i];
-      var source = mapping.source === null ? null : sources.at(mapping.source);
-      if(source !== null) {
-        source = util.computeSourceURL(sourceRoot, source, sourceMapURL);
-      }
-      boundCallback({
-        source: source,
-        generatedLine: mapping.generatedLine,
-        generatedColumn: mapping.generatedColumn,
-        originalLine: mapping.originalLine,
-        originalColumn: mapping.originalColumn,
-        name: mapping.name === null ? null : names.at(mapping.name)
-      });
-    }
-  };
-
-/**
- * Returns all generated line and column information for the original source,
- * line, and column provided. If no column is provided, returns all mappings
- * corresponding to a either the line we are searching for or the next
- * closest line that has any mappings. Otherwise, returns all mappings
- * corresponding to the given line and either the column we are searching for
- * or the next closest column that has any offsets.
- *
- * The only argument is an object with the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.  The line number is 1-based.
- *   - column: Optional. the column number in the original source.
- *    The column number is 0-based.
- *
- * and an array of objects is returned, each with the following properties:
- *
- *   - line: The line number in the generated source, or null.  The
- *    line number is 1-based.
- *   - column: The column number in the generated source, or null.
- *    The column number is 0-based.
- */
-SourceMapConsumer.prototype.allGeneratedPositionsFor =
-  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-    var line = util.getArg(aArgs, 'line');
-
-    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
-    // returns the index of the closest mapping less than the needle. By
-    // setting needle.originalColumn to 0, we thus find the last mapping for
-    // the given line, provided such a mapping exists.
-    var needle = {
-      source: util.getArg(aArgs, 'source'),
-      originalLine: line,
-      originalColumn: util.getArg(aArgs, 'column', 0)
-    };
-
-    needle.source = this._findSourceIndex(needle.source);
-    if (needle.source < 0) {
-      return [];
-    }
-
-    var mappings = [];
-
-    var index = this._findMapping(needle,
-                                  this._originalMappings,
-                                  "originalLine",
-                                  "originalColumn",
-                                  util.compareByOriginalPositions,
-                                  binarySearch.LEAST_UPPER_BOUND);
-    if (index >= 0) {
-      var mapping = this._originalMappings[index];
-
-      if (aArgs.column === undefined) {
-        var originalLine = mapping.originalLine;
-
-        // Iterate until either we run out of mappings, or we run into
-        // a mapping for a different line than the one we found. Since
-        // mappings are sorted, this is guaranteed to find all mappings for
-        // the line we found.
-        while (mapping && mapping.originalLine === originalLine) {
-          mappings.push({
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          });
-
-          mapping = this._originalMappings[++index];
-        }
-      } else {
-        var originalColumn = mapping.originalColumn;
-
-        // Iterate until either we run out of mappings, or we run into
-        // a mapping for a different line than the one we were searching for.
-        // Since mappings are sorted, this is guaranteed to find all mappings for
-        // the line we are searching for.
-        while (mapping &&
-               mapping.originalLine === line &&
-               mapping.originalColumn == originalColumn) {
-          mappings.push({
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          });
-
-          mapping = this._originalMappings[++index];
-        }
-      }
-    }
-
-    return mappings;
-  };
-
-exports.SourceMapConsumer = SourceMapConsumer;
-
-/**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The first parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- *   - version: Which version of the source map spec this map is following.
- *   - sources: An array of URLs to the original source files.
- *   - names: An array of identifiers which can be referrenced by individual mappings.
- *   - sourceRoot: Optional. The URL root from which all sources are relative.
- *   - sourcesContent: Optional. An array of contents of the original source files.
- *   - mappings: A string of base64 VLQs which contain the actual mappings.
- *   - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- *     {
- *       version : 3,
- *       file: "out.js",
- *       sourceRoot : "",
- *       sources: ["foo.js", "bar.js"],
- *       names: ["src", "maps", "are", "fun"],
- *       mappings: "AA,AB;;ABCDE;"
- *     }
- *
- * The second parameter, if given, is a string whose value is the URL
- * at which the source map was found.  This URL is used to compute the
- * sources array.
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
-function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = util.parseSourceMapInput(aSourceMap);
-  }
-
-  var version = util.getArg(sourceMap, 'version');
-  var sources = util.getArg(sourceMap, 'sources');
-  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-  // requires the array) to play nice here.
-  var names = util.getArg(sourceMap, 'names', []);
-  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-  var mappings = util.getArg(sourceMap, 'mappings');
-  var file = util.getArg(sourceMap, 'file', null);
-
-  // Once again, Sass deviates from the spec and supplies the version as a
-  // string rather than a number, so we use loose equality checking here.
-  if (version != this._version) {
-    throw new Error('Unsupported version: ' + version);
-  }
-
-  if (sourceRoot) {
-    sourceRoot = util.normalize(sourceRoot);
-  }
-
-  sources = sources
-    .map(String)
-    // Some source maps produce relative source paths like "./foo.js" instead of
-    // "foo.js".  Normalize these first so that future comparisons will succeed.
-    // See bugzil.la/1090768.
-    .map(util.normalize)
-    // Always ensure that absolute sources are internally stored relative to
-    // the source root, if the source root is absolute. Not doing this would
-    // be particularly problematic when the source root is a prefix of the
-    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
-    .map(function (source) {
-      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
-        ? util.relative(sourceRoot, source)
-        : source;
-    });
-
-  // Pass `true` below to allow duplicate names and sources. While source maps
-  // are intended to be compressed and deduplicated, the TypeScript compiler
-  // sometimes generates source maps with duplicates in them. See Github issue
-  // #72 and bugzil.la/889492.
-  this._names = ArraySet.fromArray(names.map(String), true);
-  this._sources = ArraySet.fromArray(sources, true);
-
-  this._absoluteSources = this._sources.toArray().map(function (s) {
-    return util.computeSourceURL(sourceRoot, s, aSourceMapURL);
-  });
-
-  this.sourceRoot = sourceRoot;
-  this.sourcesContent = sourcesContent;
-  this._mappings = mappings;
-  this._sourceMapURL = aSourceMapURL;
-  this.file = file;
-}
-
-BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
-/**
- * Utility function to find the index of a source.  Returns -1 if not
- * found.
- */
-BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {
-  var relativeSource = aSource;
-  if (this.sourceRoot != null) {
-    relativeSource = util.relative(this.sourceRoot, relativeSource);
-  }
-
-  if (this._sources.has(relativeSource)) {
-    return this._sources.indexOf(relativeSource);
-  }
-
-  // Maybe aSource is an absolute URL as returned by |sources|.  In
-  // this case we can't simply undo the transform.
-  var i;
-  for (i = 0; i < this._absoluteSources.length; ++i) {
-    if (this._absoluteSources[i] == aSource) {
-      return i;
-    }
-  }
-
-  return -1;
-};
-
-/**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- *        The source map that will be consumed.
- * @param String aSourceMapURL
- *        The URL at which the source map can be found (optional)
- * @returns BasicSourceMapConsumer
- */
-BasicSourceMapConsumer.fromSourceMap =
-  function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {
-    var smc = Object.create(BasicSourceMapConsumer.prototype);
-
-    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-    smc.sourceRoot = aSourceMap._sourceRoot;
-    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-                                                            smc.sourceRoot);
-    smc.file = aSourceMap._file;
-    smc._sourceMapURL = aSourceMapURL;
-    smc._absoluteSources = smc._sources.toArray().map(function (s) {
-      return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);
-    });
-
-    // Because we are modifying the entries (by converting string sources and
-    // names to indices into the sources and names ArraySets), we have to make
-    // a copy of the entry or else bad things happen. Shared mutable state
-    // strikes again! See github issue #191.
-
-    var generatedMappings = aSourceMap._mappings.toArray().slice();
-    var destGeneratedMappings = smc.__generatedMappings = [];
-    var destOriginalMappings = smc.__originalMappings = [];
-
-    for (var i = 0, length = generatedMappings.length; i < length; i++) {
-      var srcMapping = generatedMappings[i];
-      var destMapping = new Mapping;
-      destMapping.generatedLine = srcMapping.generatedLine;
-      destMapping.generatedColumn = srcMapping.generatedColumn;
-
-      if (srcMapping.source) {
-        destMapping.source = sources.indexOf(srcMapping.source);
-        destMapping.originalLine = srcMapping.originalLine;
-        destMapping.originalColumn = srcMapping.originalColumn;
-
-        if (srcMapping.name) {
-          destMapping.name = names.indexOf(srcMapping.name);
-        }
-
-        destOriginalMappings.push(destMapping);
-      }
-
-      destGeneratedMappings.push(destMapping);
-    }
-
-    quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
-    return smc;
-  };
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-BasicSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
-  get: function () {
-    return this._absoluteSources.slice();
-  }
-});
-
-/**
- * Provide the JIT with a nice shape / hidden class.
- */
-function Mapping() {
-  this.generatedLine = 0;
-  this.generatedColumn = 0;
-  this.source = null;
-  this.originalLine = null;
-  this.originalColumn = null;
-  this.name = null;
-}
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-
-const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;
-function sortGenerated(array, start) {
-  let l = array.length;
-  let n = array.length - start;
-  if (n <= 1) {
-    return;
-  } else if (n == 2) {
-    let a = array[start];
-    let b = array[start + 1];
-    if (compareGenerated(a, b) > 0) {
-      array[start] = b;
-      array[start + 1] = a;
-    }
-  } else if (n < 20) {
-    for (let i = start; i < l; i++) {
-      for (let j = i; j > start; j--) {
-        let a = array[j - 1];
-        let b = array[j];
-        if (compareGenerated(a, b) <= 0) {
-          break;
-        }
-        array[j - 1] = b;
-        array[j] = a;
-      }
-    }
-  } else {
-    quickSort(array, compareGenerated, start);
-  }
-}
-BasicSourceMapConsumer.prototype._parseMappings =
-  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    var generatedLine = 1;
-    var previousGeneratedColumn = 0;
-    var previousOriginalLine = 0;
-    var previousOriginalColumn = 0;
-    var previousSource = 0;
-    var previousName = 0;
-    var length = aStr.length;
-    var index = 0;
-    var cachedSegments = {};
-    var temp = {};
-    var originalMappings = [];
-    var generatedMappings = [];
-    var mapping, str, segment, end, value;
-
-    let subarrayStart = 0;
-    while (index < length) {
-      if (aStr.charAt(index) === ';') {
-        generatedLine++;
-        index++;
-        previousGeneratedColumn = 0;
-
-        sortGenerated(generatedMappings, subarrayStart);
-        subarrayStart = generatedMappings.length;
-      }
-      else if (aStr.charAt(index) === ',') {
-        index++;
-      }
-      else {
-        mapping = new Mapping();
-        mapping.generatedLine = generatedLine;
-
-        for (end = index; end < length; end++) {
-          if (this._charIsMappingSeparator(aStr, end)) {
-            break;
-          }
-        }
-        str = aStr.slice(index, end);
-
-        segment = [];
-        while (index < end) {
-          base64VLQ.decode(aStr, index, temp);
-          value = temp.value;
-          index = temp.rest;
-          segment.push(value);
-        }
-
-        if (segment.length === 2) {
-          throw new Error('Found a source, but no line and column');
-        }
-
-        if (segment.length === 3) {
-          throw new Error('Found a source and line, but no column');
-        }
-
-        // Generated column.
-        mapping.generatedColumn = previousGeneratedColumn + segment[0];
-        previousGeneratedColumn = mapping.generatedColumn;
-
-        if (segment.length > 1) {
-          // Original source.
-          mapping.source = previousSource + segment[1];
-          previousSource += segment[1];
-
-          // Original line.
-          mapping.originalLine = previousOriginalLine + segment[2];
-          previousOriginalLine = mapping.originalLine;
-          // Lines are stored 0-based
-          mapping.originalLine += 1;
-
-          // Original column.
-          mapping.originalColumn = previousOriginalColumn + segment[3];
-          previousOriginalColumn = mapping.originalColumn;
-
-          if (segment.length > 4) {
-            // Original name.
-            mapping.name = previousName + segment[4];
-            previousName += segment[4];
-          }
-        }
-
-        generatedMappings.push(mapping);
-        if (typeof mapping.originalLine === 'number') {
-          let currentSource = mapping.source;
-          while (originalMappings.length <= currentSource) {
-            originalMappings.push(null);
-          }
-          if (originalMappings[currentSource] === null) {
-            originalMappings[currentSource] = [];
-          }
-          originalMappings[currentSource].push(mapping);
-        }
-      }
-    }
-
-    sortGenerated(generatedMappings, subarrayStart);
-    this.__generatedMappings = generatedMappings;
-
-    for (var i = 0; i < originalMappings.length; i++) {
-      if (originalMappings[i] != null) {
-        quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);
-      }
-    }
-    this.__originalMappings = [].concat(...originalMappings);
-  };
-
-/**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
-BasicSourceMapConsumer.prototype._findMapping =
-  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-                                         aColumnName, aComparator, aBias) {
-    // To return the position we are searching for, we must first find the
-    // mapping for the given position and then return the opposite position it
-    // points to. Because the mappings are sorted, we can use binary search to
-    // find the best mapping.
-
-    if (aNeedle[aLineName] <= 0) {
-      throw new TypeError('Line must be greater than or equal to 1, got '
-                          + aNeedle[aLineName]);
-    }
-    if (aNeedle[aColumnName] < 0) {
-      throw new TypeError('Column must be greater than or equal to 0, got '
-                          + aNeedle[aColumnName]);
-    }
-
-    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
-  };
-
-/**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
-BasicSourceMapConsumer.prototype.computeColumnSpans =
-  function SourceMapConsumer_computeColumnSpans() {
-    for (var index = 0; index < this._generatedMappings.length; ++index) {
-      var mapping = this._generatedMappings[index];
-
-      // Mappings do not contain a field for the last generated columnt. We
-      // can come up with an optimistic estimate, however, by assuming that
-      // mappings are contiguous (i.e. given two consecutive mappings, the
-      // first mapping ends where the second one starts).
-      if (index + 1 < this._generatedMappings.length) {
-        var nextMapping = this._generatedMappings[index + 1];
-
-        if (mapping.generatedLine === nextMapping.generatedLine) {
-          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-          continue;
-        }
-      }
-
-      // The last mapping for each line spans the entire line.
-      mapping.lastGeneratedColumn = Infinity;
-    }
-  };
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- *   - line: The line number in the generated source.  The line number
- *     is 1-based.
- *   - column: The column number in the generated source.  The column
- *     number is 0-based.
- *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- *   - source: The original source file, or null.
- *   - line: The line number in the original source, or null.  The
- *     line number is 1-based.
- *   - column: The column number in the original source, or null.  The
- *     column number is 0-based.
- *   - name: The original identifier, or null.
- */
-BasicSourceMapConsumer.prototype.originalPositionFor =
-  function SourceMapConsumer_originalPositionFor(aArgs) {
-    var needle = {
-      generatedLine: util.getArg(aArgs, 'line'),
-      generatedColumn: util.getArg(aArgs, 'column')
-    };
-
-    var index = this._findMapping(
-      needle,
-      this._generatedMappings,
-      "generatedLine",
-      "generatedColumn",
-      util.compareByGeneratedPositionsDeflated,
-      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-    );
-
-    if (index >= 0) {
-      var mapping = this._generatedMappings[index];
-
-      if (mapping.generatedLine === needle.generatedLine) {
-        var source = util.getArg(mapping, 'source', null);
-        if (source !== null) {
-          source = this._sources.at(source);
-          source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);
-        }
-        var name = util.getArg(mapping, 'name', null);
-        if (name !== null) {
-          name = this._names.at(name);
-        }
-        return {
-          source: source,
-          line: util.getArg(mapping, 'originalLine', null),
-          column: util.getArg(mapping, 'originalColumn', null),
-          name: name
-        };
-      }
-    }
-
-    return {
-      source: null,
-      line: null,
-      column: null,
-      name: null
-    };
-  };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
-  function BasicSourceMapConsumer_hasContentsOfAllSources() {
-    if (!this.sourcesContent) {
-      return false;
-    }
-    return this.sourcesContent.length >= this._sources.size() &&
-      !this.sourcesContent.some(function (sc) { return sc == null; });
-  };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-BasicSourceMapConsumer.prototype.sourceContentFor =
-  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-    if (!this.sourcesContent) {
-      return null;
-    }
-
-    var index = this._findSourceIndex(aSource);
-    if (index >= 0) {
-      return this.sourcesContent[index];
-    }
-
-    var relativeSource = aSource;
-    if (this.sourceRoot != null) {
-      relativeSource = util.relative(this.sourceRoot, relativeSource);
-    }
-
-    var url;
-    if (this.sourceRoot != null
-        && (url = util.urlParse(this.sourceRoot))) {
-      // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-      // many users. We can help them out when they expect file:// URIs to
-      // behave like it would if they were running a local HTTP server. See
-      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-      var fileUriAbsPath = relativeSource.replace(/^file:\/\//, "");
-      if (url.scheme == "file"
-          && this._sources.has(fileUriAbsPath)) {
-        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-      }
-
-      if ((!url.path || url.path == "/")
-          && this._sources.has("/" + relativeSource)) {
-        return this.sourcesContent[this._sources.indexOf("/" + relativeSource)];
-      }
-    }
-
-    // This function is used recursively from
-    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
-    // don't want to throw if we can't find the source - we just want to
-    // return null, so we provide a flag to exit gracefully.
-    if (nullOnMissing) {
-      return null;
-    }
-    else {
-      throw new Error('"' + relativeSource + '" is not in the SourceMap.');
-    }
-  };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.  The line number
- *     is 1-based.
- *   - column: The column number in the original source.  The column
- *     number is 0-based.
- *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- *   - line: The line number in the generated source, or null.  The
- *     line number is 1-based.
- *   - column: The column number in the generated source, or null.
- *     The column number is 0-based.
- */
-BasicSourceMapConsumer.prototype.generatedPositionFor =
-  function SourceMapConsumer_generatedPositionFor(aArgs) {
-    var source = util.getArg(aArgs, 'source');
-    source = this._findSourceIndex(source);
-    if (source < 0) {
-      return {
-        line: null,
-        column: null,
-        lastColumn: null
-      };
-    }
-
-    var needle = {
-      source: source,
-      originalLine: util.getArg(aArgs, 'line'),
-      originalColumn: util.getArg(aArgs, 'column')
-    };
-
-    var index = this._findMapping(
-      needle,
-      this._originalMappings,
-      "originalLine",
-      "originalColumn",
-      util.compareByOriginalPositions,
-      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-    );
-
-    if (index >= 0) {
-      var mapping = this._originalMappings[index];
-
-      if (mapping.source === needle.source) {
-        return {
-          line: util.getArg(mapping, 'generatedLine', null),
-          column: util.getArg(mapping, 'generatedColumn', null),
-          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-        };
-      }
-    }
-
-    return {
-      line: null,
-      column: null,
-      lastColumn: null
-    };
-  };
-
-exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
-/**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The first parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- *   - version: Which version of the source map spec this map is following.
- *   - file: Optional. The generated file this source map is associated with.
- *   - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- *   - offset: The offset into the original specified at which this section
- *       begins to apply, defined as an object with a "line" and "column"
- *       field.
- *   - map: A source map definition. This source map could also be indexed,
- *       but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- *  {
- *    version : 3,
- *    file: "app.js",
- *    sections: [{
- *      offset: {line:100, column:10},
- *      map: {
- *        version : 3,
- *        file: "section.js",
- *        sources: ["foo.js", "bar.js"],
- *        names: ["src", "maps", "are", "fun"],
- *        mappings: "AAAA,E;;ABCDE;"
- *      }
- *    }],
- *  }
- *
- * The second parameter, if given, is a string whose value is the URL
- * at which the source map was found.  This URL is used to compute the
- * sources array.
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
-function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = util.parseSourceMapInput(aSourceMap);
-  }
-
-  var version = util.getArg(sourceMap, 'version');
-  var sections = util.getArg(sourceMap, 'sections');
-
-  if (version != this._version) {
-    throw new Error('Unsupported version: ' + version);
-  }
-
-  this._sources = new ArraySet();
-  this._names = new ArraySet();
-
-  var lastOffset = {
-    line: -1,
-    column: 0
-  };
-  this._sections = sections.map(function (s) {
-    if (s.url) {
-      // The url field will require support for asynchronicity.
-      // See https://github.com/mozilla/source-map/issues/16
-      throw new Error('Support for url field in sections not implemented.');
-    }
-    var offset = util.getArg(s, 'offset');
-    var offsetLine = util.getArg(offset, 'line');
-    var offsetColumn = util.getArg(offset, 'column');
-
-    if (offsetLine < lastOffset.line ||
-        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
-      throw new Error('Section offsets must be ordered and non-overlapping.');
-    }
-    lastOffset = offset;
-
-    return {
-      generatedOffset: {
-        // The offset fields are 0-based, but we use 1-based indices when
-        // encoding/decoding from VLQ.
-        generatedLine: offsetLine + 1,
-        generatedColumn: offsetColumn + 1
-      },
-      consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)
-    }
-  });
-}
-
-IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-IndexedSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
-  get: function () {
-    var sources = [];
-    for (var i = 0; i < this._sections.length; i++) {
-      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
-        sources.push(this._sections[i].consumer.sources[j]);
-      }
-    }
-    return sources;
-  }
-});
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- *   - line: The line number in the generated source.  The line number
- *     is 1-based.
- *   - column: The column number in the generated source.  The column
- *     number is 0-based.
- *
- * and an object is returned with the following properties:
- *
- *   - source: The original source file, or null.
- *   - line: The line number in the original source, or null.  The
- *     line number is 1-based.
- *   - column: The column number in the original source, or null.  The
- *     column number is 0-based.
- *   - name: The original identifier, or null.
- */
-IndexedSourceMapConsumer.prototype.originalPositionFor =
-  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
-    var needle = {
-      generatedLine: util.getArg(aArgs, 'line'),
-      generatedColumn: util.getArg(aArgs, 'column')
-    };
-
-    // Find the section containing the generated position we're trying to map
-    // to an original position.
-    var sectionIndex = binarySearch.search(needle, this._sections,
-      function(needle, section) {
-        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
-        if (cmp) {
-          return cmp;
-        }
-
-        return (needle.generatedColumn -
-                section.generatedOffset.generatedColumn);
-      });
-    var section = this._sections[sectionIndex];
-
-    if (!section) {
-      return {
-        source: null,
-        line: null,
-        column: null,
-        name: null
-      };
-    }
-
-    return section.consumer.originalPositionFor({
-      line: needle.generatedLine -
-        (section.generatedOffset.generatedLine - 1),
-      column: needle.generatedColumn -
-        (section.generatedOffset.generatedLine === needle.generatedLine
-         ? section.generatedOffset.generatedColumn - 1
-         : 0),
-      bias: aArgs.bias
-    });
-  };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
-  function IndexedSourceMapConsumer_hasContentsOfAllSources() {
-    return this._sections.every(function (s) {
-      return s.consumer.hasContentsOfAllSources();
-    });
-  };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-IndexedSourceMapConsumer.prototype.sourceContentFor =
-  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-
-      var content = section.consumer.sourceContentFor(aSource, true);
-      if (content || content === '') {
-        return content;
-      }
-    }
-    if (nullOnMissing) {
-      return null;
-    }
-    else {
-      throw new Error('"' + aSource + '" is not in the SourceMap.');
-    }
-  };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.  The line number
- *     is 1-based.
- *   - column: The column number in the original source.  The column
- *     number is 0-based.
- *
- * and an object is returned with the following properties:
- *
- *   - line: The line number in the generated source, or null.  The
- *     line number is 1-based. 
- *   - column: The column number in the generated source, or null.
- *     The column number is 0-based.
- */
-IndexedSourceMapConsumer.prototype.generatedPositionFor =
-  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-
-      // Only consider this section if the requested source is in the list of
-      // sources of the consumer.
-      if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {
-        continue;
-      }
-      var generatedPosition = section.consumer.generatedPositionFor(aArgs);
-      if (generatedPosition) {
-        var ret = {
-          line: generatedPosition.line +
-            (section.generatedOffset.generatedLine - 1),
-          column: generatedPosition.column +
-            (section.generatedOffset.generatedLine === generatedPosition.line
-             ? section.generatedOffset.generatedColumn - 1
-             : 0)
-        };
-        return ret;
-      }
-    }
-
-    return {
-      line: null,
-      column: null
-    };
-  };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-IndexedSourceMapConsumer.prototype._parseMappings =
-  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    this.__generatedMappings = [];
-    this.__originalMappings = [];
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-      var sectionMappings = section.consumer._generatedMappings;
-      for (var j = 0; j < sectionMappings.length; j++) {
-        var mapping = sectionMappings[j];
-
-        var source = section.consumer._sources.at(mapping.source);
-        if(source !== null) {
-          source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);
-        }
-        this._sources.add(source);
-        source = this._sources.indexOf(source);
-
-        var name = null;
-        if (mapping.name) {
-          name = section.consumer._names.at(mapping.name);
-          this._names.add(name);
-          name = this._names.indexOf(name);
-        }
-
-        // The mappings coming from the consumer for the section have
-        // generated positions relative to the start of the section, so we
-        // need to offset them to be relative to the start of the concatenated
-        // generated file.
-        var adjustedMapping = {
-          source: source,
-          generatedLine: mapping.generatedLine +
-            (section.generatedOffset.generatedLine - 1),
-          generatedColumn: mapping.generatedColumn +
-            (section.generatedOffset.generatedLine === mapping.generatedLine
-            ? section.generatedOffset.generatedColumn - 1
-            : 0),
-          originalLine: mapping.originalLine,
-          originalColumn: mapping.originalColumn,
-          name: name
-        };
-
-        this.__generatedMappings.push(adjustedMapping);
-        if (typeof adjustedMapping.originalLine === 'number') {
-          this.__originalMappings.push(adjustedMapping);
-        }
-      }
-    }
-
-    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
-    quickSort(this.__originalMappings, util.compareByOriginalPositions);
-  };
-
-exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
Index: de_modules/source-map-js/lib/source-map-generator.d.ts
===================================================================
--- node_modules/source-map-js/lib/source-map-generator.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { SourceMapGenerator } from '..';
Index: de_modules/source-map-js/lib/source-map-generator.js
===================================================================
--- node_modules/source-map-js/lib/source-map-generator.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,444 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var base64VLQ = require('./base64-vlq');
-var util = require('./util');
-var ArraySet = require('./array-set').ArraySet;
-var MappingList = require('./mapping-list').MappingList;
-
-/**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- *   - file: The filename of the generated source.
- *   - sourceRoot: A root for all relative URLs in this source map.
- */
-function SourceMapGenerator(aArgs) {
-  if (!aArgs) {
-    aArgs = {};
-  }
-  this._file = util.getArg(aArgs, 'file', null);
-  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-  this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false);
-  this._sources = new ArraySet();
-  this._names = new ArraySet();
-  this._mappings = new MappingList();
-  this._sourcesContents = null;
-}
-
-SourceMapGenerator.prototype._version = 3;
-
-/**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
-SourceMapGenerator.fromSourceMap =
-  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {
-    var sourceRoot = aSourceMapConsumer.sourceRoot;
-    var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {
-      file: aSourceMapConsumer.file,
-      sourceRoot: sourceRoot
-    }));
-    aSourceMapConsumer.eachMapping(function (mapping) {
-      var newMapping = {
-        generated: {
-          line: mapping.generatedLine,
-          column: mapping.generatedColumn
-        }
-      };
-
-      if (mapping.source != null) {
-        newMapping.source = mapping.source;
-        if (sourceRoot != null) {
-          newMapping.source = util.relative(sourceRoot, newMapping.source);
-        }
-
-        newMapping.original = {
-          line: mapping.originalLine,
-          column: mapping.originalColumn
-        };
-
-        if (mapping.name != null) {
-          newMapping.name = mapping.name;
-        }
-      }
-
-      generator.addMapping(newMapping);
-    });
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var sourceRelative = sourceFile;
-      if (sourceRoot !== null) {
-        sourceRelative = util.relative(sourceRoot, sourceFile);
-      }
-
-      if (!generator._sources.has(sourceRelative)) {
-        generator._sources.add(sourceRelative);
-      }
-
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        generator.setSourceContent(sourceFile, content);
-      }
-    });
-    return generator;
-  };
-
-/**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- *   - generated: An object with the generated line and column positions.
- *   - original: An object with the original line and column positions.
- *   - source: The original source file (relative to the sourceRoot).
- *   - name: An optional original token name for this mapping.
- */
-SourceMapGenerator.prototype.addMapping =
-  function SourceMapGenerator_addMapping(aArgs) {
-    var generated = util.getArg(aArgs, 'generated');
-    var original = util.getArg(aArgs, 'original', null);
-    var source = util.getArg(aArgs, 'source', null);
-    var name = util.getArg(aArgs, 'name', null);
-
-    if (!this._skipValidation) {
-      if (this._validateMapping(generated, original, source, name) === false) {
-        return;
-      }
-    }
-
-    if (source != null) {
-      source = String(source);
-      if (!this._sources.has(source)) {
-        this._sources.add(source);
-      }
-    }
-
-    if (name != null) {
-      name = String(name);
-      if (!this._names.has(name)) {
-        this._names.add(name);
-      }
-    }
-
-    this._mappings.add({
-      generatedLine: generated.line,
-      generatedColumn: generated.column,
-      originalLine: original != null && original.line,
-      originalColumn: original != null && original.column,
-      source: source,
-      name: name
-    });
-  };
-
-/**
- * Set the source content for a source file.
- */
-SourceMapGenerator.prototype.setSourceContent =
-  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-    var source = aSourceFile;
-    if (this._sourceRoot != null) {
-      source = util.relative(this._sourceRoot, source);
-    }
-
-    if (aSourceContent != null) {
-      // Add the source content to the _sourcesContents map.
-      // Create a new _sourcesContents map if the property is null.
-      if (!this._sourcesContents) {
-        this._sourcesContents = Object.create(null);
-      }
-      this._sourcesContents[util.toSetString(source)] = aSourceContent;
-    } else if (this._sourcesContents) {
-      // Remove the source file from the _sourcesContents map.
-      // If the _sourcesContents map is empty, set the property to null.
-      delete this._sourcesContents[util.toSetString(source)];
-      if (Object.keys(this._sourcesContents).length === 0) {
-        this._sourcesContents = null;
-      }
-    }
-  };
-
-/**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- *        If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- *        to be applied. If relative, it is relative to the SourceMapConsumer.
- *        This parameter is needed when the two source maps aren't in the same
- *        directory, and the source map to be applied contains relative source
- *        paths. If so, those relative source paths need to be rewritten
- *        relative to the SourceMapGenerator.
- */
-SourceMapGenerator.prototype.applySourceMap =
-  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-    var sourceFile = aSourceFile;
-    // If aSourceFile is omitted, we will use the file property of the SourceMap
-    if (aSourceFile == null) {
-      if (aSourceMapConsumer.file == null) {
-        throw new Error(
-          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-          'or the source map\'s "file" property. Both were omitted.'
-        );
-      }
-      sourceFile = aSourceMapConsumer.file;
-    }
-    var sourceRoot = this._sourceRoot;
-    // Make "sourceFile" relative if an absolute Url is passed.
-    if (sourceRoot != null) {
-      sourceFile = util.relative(sourceRoot, sourceFile);
-    }
-    // Applying the SourceMap can add and remove items from the sources and
-    // the names array.
-    var newSources = new ArraySet();
-    var newNames = new ArraySet();
-
-    // Find mappings for the "sourceFile"
-    this._mappings.unsortedForEach(function (mapping) {
-      if (mapping.source === sourceFile && mapping.originalLine != null) {
-        // Check if it can be mapped by the source map, then update the mapping.
-        var original = aSourceMapConsumer.originalPositionFor({
-          line: mapping.originalLine,
-          column: mapping.originalColumn
-        });
-        if (original.source != null) {
-          // Copy mapping
-          mapping.source = original.source;
-          if (aSourceMapPath != null) {
-            mapping.source = util.join(aSourceMapPath, mapping.source)
-          }
-          if (sourceRoot != null) {
-            mapping.source = util.relative(sourceRoot, mapping.source);
-          }
-          mapping.originalLine = original.line;
-          mapping.originalColumn = original.column;
-          if (original.name != null) {
-            mapping.name = original.name;
-          }
-        }
-      }
-
-      var source = mapping.source;
-      if (source != null && !newSources.has(source)) {
-        newSources.add(source);
-      }
-
-      var name = mapping.name;
-      if (name != null && !newNames.has(name)) {
-        newNames.add(name);
-      }
-
-    }, this);
-    this._sources = newSources;
-    this._names = newNames;
-
-    // Copy sourcesContents of applied map.
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        if (aSourceMapPath != null) {
-          sourceFile = util.join(aSourceMapPath, sourceFile);
-        }
-        if (sourceRoot != null) {
-          sourceFile = util.relative(sourceRoot, sourceFile);
-        }
-        this.setSourceContent(sourceFile, content);
-      }
-    }, this);
-  };
-
-/**
- * A mapping can have one of the three levels of data:
- *
- *   1. Just the generated position.
- *   2. The Generated position, original position, and original source.
- *   3. Generated and original position, original source, as well as a name
- *      token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
-SourceMapGenerator.prototype._validateMapping =
-  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-                                              aName) {
-    // When aOriginal is truthy but has empty values for .line and .column,
-    // it is most likely a programmer error. In this case we throw a very
-    // specific error message to try to guide them the right way.
-    // For example: https://github.com/Polymer/polymer-bundler/pull/519
-    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
-      var message = 'original.line and original.column are not numbers -- you probably meant to omit ' +
-      'the original mapping entirely and only map the generated position. If so, pass ' +
-      'null for the original mapping instead of an object with empty or null values.'
-
-      if (this._ignoreInvalidMapping) {
-        if (typeof console !== 'undefined' && console.warn) {
-          console.warn(message);
-        }
-        return false;
-      } else {
-        throw new Error(message);
-      }
-    }
-
-    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-        && aGenerated.line > 0 && aGenerated.column >= 0
-        && !aOriginal && !aSource && !aName) {
-      // Case 1.
-      return;
-    }
-    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-             && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-             && aGenerated.line > 0 && aGenerated.column >= 0
-             && aOriginal.line > 0 && aOriginal.column >= 0
-             && aSource) {
-      // Cases 2 and 3.
-      return;
-    }
-    else {
-      var message = 'Invalid mapping: ' + JSON.stringify({
-        generated: aGenerated,
-        source: aSource,
-        original: aOriginal,
-        name: aName
-      });
-
-      if (this._ignoreInvalidMapping) {
-        if (typeof console !== 'undefined' && console.warn) {
-          console.warn(message);
-        }
-        return false;
-      } else {
-        throw new Error(message)
-      }
-    }
-  };
-
-/**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
-SourceMapGenerator.prototype._serializeMappings =
-  function SourceMapGenerator_serializeMappings() {
-    var previousGeneratedColumn = 0;
-    var previousGeneratedLine = 1;
-    var previousOriginalColumn = 0;
-    var previousOriginalLine = 0;
-    var previousName = 0;
-    var previousSource = 0;
-    var result = '';
-    var next;
-    var mapping;
-    var nameIdx;
-    var sourceIdx;
-
-    var mappings = this._mappings.toArray();
-    for (var i = 0, len = mappings.length; i < len; i++) {
-      mapping = mappings[i];
-      next = ''
-
-      if (mapping.generatedLine !== previousGeneratedLine) {
-        previousGeneratedColumn = 0;
-        while (mapping.generatedLine !== previousGeneratedLine) {
-          next += ';';
-          previousGeneratedLine++;
-        }
-      }
-      else {
-        if (i > 0) {
-          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
-            continue;
-          }
-          next += ',';
-        }
-      }
-
-      next += base64VLQ.encode(mapping.generatedColumn
-                                 - previousGeneratedColumn);
-      previousGeneratedColumn = mapping.generatedColumn;
-
-      if (mapping.source != null) {
-        sourceIdx = this._sources.indexOf(mapping.source);
-        next += base64VLQ.encode(sourceIdx - previousSource);
-        previousSource = sourceIdx;
-
-        // lines are stored 0-based in SourceMap spec version 3
-        next += base64VLQ.encode(mapping.originalLine - 1
-                                   - previousOriginalLine);
-        previousOriginalLine = mapping.originalLine - 1;
-
-        next += base64VLQ.encode(mapping.originalColumn
-                                   - previousOriginalColumn);
-        previousOriginalColumn = mapping.originalColumn;
-
-        if (mapping.name != null) {
-          nameIdx = this._names.indexOf(mapping.name);
-          next += base64VLQ.encode(nameIdx - previousName);
-          previousName = nameIdx;
-        }
-      }
-
-      result += next;
-    }
-
-    return result;
-  };
-
-SourceMapGenerator.prototype._generateSourcesContent =
-  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-    return aSources.map(function (source) {
-      if (!this._sourcesContents) {
-        return null;
-      }
-      if (aSourceRoot != null) {
-        source = util.relative(aSourceRoot, source);
-      }
-      var key = util.toSetString(source);
-      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
-        ? this._sourcesContents[key]
-        : null;
-    }, this);
-  };
-
-/**
- * Externalize the source map.
- */
-SourceMapGenerator.prototype.toJSON =
-  function SourceMapGenerator_toJSON() {
-    var map = {
-      version: this._version,
-      sources: this._sources.toArray(),
-      names: this._names.toArray(),
-      mappings: this._serializeMappings()
-    };
-    if (this._file != null) {
-      map.file = this._file;
-    }
-    if (this._sourceRoot != null) {
-      map.sourceRoot = this._sourceRoot;
-    }
-    if (this._sourcesContents) {
-      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-    }
-
-    return map;
-  };
-
-/**
- * Render the source map being generated to a string.
- */
-SourceMapGenerator.prototype.toString =
-  function SourceMapGenerator_toString() {
-    return JSON.stringify(this.toJSON());
-  };
-
-exports.SourceMapGenerator = SourceMapGenerator;
Index: de_modules/source-map-js/lib/source-node.d.ts
===================================================================
--- node_modules/source-map-js/lib/source-node.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export { SourceNode } from '..';
Index: de_modules/source-map-js/lib/source-node.js
===================================================================
--- node_modules/source-map-js/lib/source-node.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,413 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
-var util = require('./util');
-
-// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-// operating systems these days (capturing the result).
-var REGEX_NEWLINE = /(\r?\n)/;
-
-// Newline character code for charCodeAt() comparisons
-var NEWLINE_CODE = 10;
-
-// Private symbol for identifying `SourceNode`s when multiple versions of
-// the source-map library are loaded. This MUST NOT CHANGE across
-// versions!
-var isSourceNode = "$$$isSourceNode$$$";
-
-/**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- *        generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
-function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-  this.children = [];
-  this.sourceContents = {};
-  this.line = aLine == null ? null : aLine;
-  this.column = aColumn == null ? null : aColumn;
-  this.source = aSource == null ? null : aSource;
-  this.name = aName == null ? null : aName;
-  this[isSourceNode] = true;
-  if (aChunks != null) this.add(aChunks);
-}
-
-/**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- *        SourceMapConsumer should be relative to.
- */
-SourceNode.fromStringWithSourceMap =
-  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-    // The SourceNode we want to fill with the generated code
-    // and the SourceMap
-    var node = new SourceNode();
-
-    // All even indices of this array are one line of the generated code,
-    // while all odd indices are the newlines between two adjacent lines
-    // (since `REGEX_NEWLINE` captures its match).
-    // Processed fragments are accessed by calling `shiftNextLine`.
-    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-    var remainingLinesIndex = 0;
-    var shiftNextLine = function() {
-      var lineContents = getNextLine();
-      // The last line of a file might not have a newline.
-      var newLine = getNextLine() || "";
-      return lineContents + newLine;
-
-      function getNextLine() {
-        return remainingLinesIndex < remainingLines.length ?
-            remainingLines[remainingLinesIndex++] : undefined;
-      }
-    };
-
-    // We need to remember the position of "remainingLines"
-    var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
-    // The generate SourceNodes we need a code range.
-    // To extract it current and last mapping is used.
-    // Here we store the last mapping.
-    var lastMapping = null;
-
-    aSourceMapConsumer.eachMapping(function (mapping) {
-      if (lastMapping !== null) {
-        // We add the code from "lastMapping" to "mapping":
-        // First check if there is a new line in between.
-        if (lastGeneratedLine < mapping.generatedLine) {
-          // Associate first line with "lastMapping"
-          addMappingWithCode(lastMapping, shiftNextLine());
-          lastGeneratedLine++;
-          lastGeneratedColumn = 0;
-          // The remaining code is added without mapping
-        } else {
-          // There is no new line in between.
-          // Associate the code between "lastGeneratedColumn" and
-          // "mapping.generatedColumn" with "lastMapping"
-          var nextLine = remainingLines[remainingLinesIndex] || '';
-          var code = nextLine.substr(0, mapping.generatedColumn -
-                                        lastGeneratedColumn);
-          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
-                                              lastGeneratedColumn);
-          lastGeneratedColumn = mapping.generatedColumn;
-          addMappingWithCode(lastMapping, code);
-          // No more remaining code, continue
-          lastMapping = mapping;
-          return;
-        }
-      }
-      // We add the generated code until the first mapping
-      // to the SourceNode without any mapping.
-      // Each line is added as separate string.
-      while (lastGeneratedLine < mapping.generatedLine) {
-        node.add(shiftNextLine());
-        lastGeneratedLine++;
-      }
-      if (lastGeneratedColumn < mapping.generatedColumn) {
-        var nextLine = remainingLines[remainingLinesIndex] || '';
-        node.add(nextLine.substr(0, mapping.generatedColumn));
-        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
-        lastGeneratedColumn = mapping.generatedColumn;
-      }
-      lastMapping = mapping;
-    }, this);
-    // We have processed all mappings.
-    if (remainingLinesIndex < remainingLines.length) {
-      if (lastMapping) {
-        // Associate the remaining code in the current line with "lastMapping"
-        addMappingWithCode(lastMapping, shiftNextLine());
-      }
-      // and add the remaining lines without any mapping
-      node.add(remainingLines.splice(remainingLinesIndex).join(""));
-    }
-
-    // Copy sourcesContent into SourceNode
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        if (aRelativePath != null) {
-          sourceFile = util.join(aRelativePath, sourceFile);
-        }
-        node.setSourceContent(sourceFile, content);
-      }
-    });
-
-    return node;
-
-    function addMappingWithCode(mapping, code) {
-      if (mapping === null || mapping.source === undefined) {
-        node.add(code);
-      } else {
-        var source = aRelativePath
-          ? util.join(aRelativePath, mapping.source)
-          : mapping.source;
-        node.add(new SourceNode(mapping.originalLine,
-                                mapping.originalColumn,
-                                source,
-                                code,
-                                mapping.name));
-      }
-    }
-  };
-
-/**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- *        SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.add = function SourceNode_add(aChunk) {
-  if (Array.isArray(aChunk)) {
-    aChunk.forEach(function (chunk) {
-      this.add(chunk);
-    }, this);
-  }
-  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-    if (aChunk) {
-      this.children.push(aChunk);
-    }
-  }
-  else {
-    throw new TypeError(
-      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-    );
-  }
-  return this;
-};
-
-/**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- *        SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-  if (Array.isArray(aChunk)) {
-    for (var i = aChunk.length-1; i >= 0; i--) {
-      this.prepend(aChunk[i]);
-    }
-  }
-  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-    this.children.unshift(aChunk);
-  }
-  else {
-    throw new TypeError(
-      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-    );
-  }
-  return this;
-};
-
-/**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-  var chunk;
-  for (var i = 0, len = this.children.length; i < len; i++) {
-    chunk = this.children[i];
-    if (chunk[isSourceNode]) {
-      chunk.walk(aFn);
-    }
-    else {
-      if (chunk !== '') {
-        aFn(chunk, { source: this.source,
-                     line: this.line,
-                     column: this.column,
-                     name: this.name });
-      }
-    }
-  }
-};
-
-/**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
-SourceNode.prototype.join = function SourceNode_join(aSep) {
-  var newChildren;
-  var i;
-  var len = this.children.length;
-  if (len > 0) {
-    newChildren = [];
-    for (i = 0; i < len-1; i++) {
-      newChildren.push(this.children[i]);
-      newChildren.push(aSep);
-    }
-    newChildren.push(this.children[i]);
-    this.children = newChildren;
-  }
-  return this;
-};
-
-/**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
-SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-  var lastChild = this.children[this.children.length - 1];
-  if (lastChild[isSourceNode]) {
-    lastChild.replaceRight(aPattern, aReplacement);
-  }
-  else if (typeof lastChild === 'string') {
-    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-  }
-  else {
-    this.children.push(''.replace(aPattern, aReplacement));
-  }
-  return this;
-};
-
-/**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
-SourceNode.prototype.setSourceContent =
-  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-  };
-
-/**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walkSourceContents =
-  function SourceNode_walkSourceContents(aFn) {
-    for (var i = 0, len = this.children.length; i < len; i++) {
-      if (this.children[i][isSourceNode]) {
-        this.children[i].walkSourceContents(aFn);
-      }
-    }
-
-    var sources = Object.keys(this.sourceContents);
-    for (var i = 0, len = sources.length; i < len; i++) {
-      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-    }
-  };
-
-/**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
-SourceNode.prototype.toString = function SourceNode_toString() {
-  var str = "";
-  this.walk(function (chunk) {
-    str += chunk;
-  });
-  return str;
-};
-
-/**
- * Returns the string representation of this source node along with a source
- * map.
- */
-SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-  var generated = {
-    code: "",
-    line: 1,
-    column: 0
-  };
-  var map = new SourceMapGenerator(aArgs);
-  var sourceMappingActive = false;
-  var lastOriginalSource = null;
-  var lastOriginalLine = null;
-  var lastOriginalColumn = null;
-  var lastOriginalName = null;
-  this.walk(function (chunk, original) {
-    generated.code += chunk;
-    if (original.source !== null
-        && original.line !== null
-        && original.column !== null) {
-      if(lastOriginalSource !== original.source
-         || lastOriginalLine !== original.line
-         || lastOriginalColumn !== original.column
-         || lastOriginalName !== original.name) {
-        map.addMapping({
-          source: original.source,
-          original: {
-            line: original.line,
-            column: original.column
-          },
-          generated: {
-            line: generated.line,
-            column: generated.column
-          },
-          name: original.name
-        });
-      }
-      lastOriginalSource = original.source;
-      lastOriginalLine = original.line;
-      lastOriginalColumn = original.column;
-      lastOriginalName = original.name;
-      sourceMappingActive = true;
-    } else if (sourceMappingActive) {
-      map.addMapping({
-        generated: {
-          line: generated.line,
-          column: generated.column
-        }
-      });
-      lastOriginalSource = null;
-      sourceMappingActive = false;
-    }
-    for (var idx = 0, length = chunk.length; idx < length; idx++) {
-      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-        generated.line++;
-        generated.column = 0;
-        // Mappings end at eol
-        if (idx + 1 === length) {
-          lastOriginalSource = null;
-          sourceMappingActive = false;
-        } else if (sourceMappingActive) {
-          map.addMapping({
-            source: original.source,
-            original: {
-              line: original.line,
-              column: original.column
-            },
-            generated: {
-              line: generated.line,
-              column: generated.column
-            },
-            name: original.name
-          });
-        }
-      } else {
-        generated.column++;
-      }
-    }
-  });
-  this.walkSourceContents(function (sourceFile, sourceContent) {
-    map.setSourceContent(sourceFile, sourceContent);
-  });
-
-  return { code: generated.code, map: map };
-};
-
-exports.SourceNode = SourceNode;
Index: de_modules/source-map-js/lib/util.js
===================================================================
--- node_modules/source-map-js/lib/util.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,594 +1,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
-function getArg(aArgs, aName, aDefaultValue) {
-  if (aName in aArgs) {
-    return aArgs[aName];
-  } else if (arguments.length === 3) {
-    return aDefaultValue;
-  } else {
-    throw new Error('"' + aName + '" is a required argument.');
-  }
-}
-exports.getArg = getArg;
-
-var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;
-var dataUrlRegexp = /^data:.+\,.+$/;
-
-function urlParse(aUrl) {
-  var match = aUrl.match(urlRegexp);
-  if (!match) {
-    return null;
-  }
-  return {
-    scheme: match[1],
-    auth: match[2],
-    host: match[3],
-    port: match[4],
-    path: match[5]
-  };
-}
-exports.urlParse = urlParse;
-
-function urlGenerate(aParsedUrl) {
-  var url = '';
-  if (aParsedUrl.scheme) {
-    url += aParsedUrl.scheme + ':';
-  }
-  url += '//';
-  if (aParsedUrl.auth) {
-    url += aParsedUrl.auth + '@';
-  }
-  if (aParsedUrl.host) {
-    url += aParsedUrl.host;
-  }
-  if (aParsedUrl.port) {
-    url += ":" + aParsedUrl.port
-  }
-  if (aParsedUrl.path) {
-    url += aParsedUrl.path;
-  }
-  return url;
-}
-exports.urlGenerate = urlGenerate;
-
-var MAX_CACHED_INPUTS = 32;
-
-/**
- * Takes some function `f(input) -> result` and returns a memoized version of
- * `f`.
- *
- * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The
- * memoization is a dumb-simple, linear least-recently-used cache.
- */
-function lruMemoize(f) {
-  var cache = [];
-
-  return function(input) {
-    for (var i = 0; i < cache.length; i++) {
-      if (cache[i].input === input) {
-        var temp = cache[0];
-        cache[0] = cache[i];
-        cache[i] = temp;
-        return cache[0].result;
-      }
-    }
-
-    var result = f(input);
-
-    cache.unshift({
-      input,
-      result,
-    });
-
-    if (cache.length > MAX_CACHED_INPUTS) {
-      cache.pop();
-    }
-
-    return result;
-  };
-}
-
-/**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consecutive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '<dir>/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
-var normalize = lruMemoize(function normalize(aPath) {
-  var path = aPath;
-  var url = urlParse(aPath);
-  if (url) {
-    if (!url.path) {
-      return aPath;
-    }
-    path = url.path;
-  }
-  var isAbsolute = exports.isAbsolute(path);
-  // Split the path into parts between `/` characters. This is much faster than
-  // using `.split(/\/+/g)`.
-  var parts = [];
-  var start = 0;
-  var i = 0;
-  while (true) {
-    start = i;
-    i = path.indexOf("/", start);
-    if (i === -1) {
-      parts.push(path.slice(start));
-      break;
-    } else {
-      parts.push(path.slice(start, i));
-      while (i < path.length && path[i] === "/") {
-        i++;
-      }
-    }
-  }
-
-  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-    part = parts[i];
-    if (part === '.') {
-      parts.splice(i, 1);
-    } else if (part === '..') {
-      up++;
-    } else if (up > 0) {
-      if (part === '') {
-        // The first part is blank if the path is absolute. Trying to go
-        // above the root is a no-op. Therefore we can remove all '..' parts
-        // directly after the root.
-        parts.splice(i + 1, up);
-        up = 0;
-      } else {
-        parts.splice(i, 2);
-        up--;
-      }
-    }
-  }
-  path = parts.join('/');
-
-  if (path === '') {
-    path = isAbsolute ? '/' : '.';
-  }
-
-  if (url) {
-    url.path = path;
-    return urlGenerate(url);
-  }
-  return path;
-});
-exports.normalize = normalize;
-
-/**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- *   first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- *   is updated with the result and aRoot is returned. Otherwise the result
- *   is returned.
- *   - If aPath is absolute, the result is aPath.
- *   - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
-function join(aRoot, aPath) {
-  if (aRoot === "") {
-    aRoot = ".";
-  }
-  if (aPath === "") {
-    aPath = ".";
-  }
-  var aPathUrl = urlParse(aPath);
-  var aRootUrl = urlParse(aRoot);
-  if (aRootUrl) {
-    aRoot = aRootUrl.path || '/';
-  }
-
-  // `join(foo, '//www.example.org')`
-  if (aPathUrl && !aPathUrl.scheme) {
-    if (aRootUrl) {
-      aPathUrl.scheme = aRootUrl.scheme;
-    }
-    return urlGenerate(aPathUrl);
-  }
-
-  if (aPathUrl || aPath.match(dataUrlRegexp)) {
-    return aPath;
-  }
-
-  // `join('http://', 'www.example.com')`
-  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-    aRootUrl.host = aPath;
-    return urlGenerate(aRootUrl);
-  }
-
-  var joined = aPath.charAt(0) === '/'
-    ? aPath
-    : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
-  if (aRootUrl) {
-    aRootUrl.path = joined;
-    return urlGenerate(aRootUrl);
-  }
-  return joined;
-}
-exports.join = join;
-
-exports.isAbsolute = function (aPath) {
-  return aPath.charAt(0) === '/' || urlRegexp.test(aPath);
-};
-
-/**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
-function relative(aRoot, aPath) {
-  if (aRoot === "") {
-    aRoot = ".";
-  }
-
-  aRoot = aRoot.replace(/\/$/, '');
-
-  // It is possible for the path to be above the root. In this case, simply
-  // checking whether the root is a prefix of the path won't work. Instead, we
-  // need to remove components from the root one by one, until either we find
-  // a prefix that fits, or we run out of components to remove.
-  var level = 0;
-  while (aPath.indexOf(aRoot + '/') !== 0) {
-    var index = aRoot.lastIndexOf("/");
-    if (index < 0) {
-      return aPath;
-    }
-
-    // If the only part of the root that is left is the scheme (i.e. http://,
-    // file:///, etc.), one or more slashes (/), or simply nothing at all, we
-    // have exhausted all components, so the path is not relative to the root.
-    aRoot = aRoot.slice(0, index);
-    if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
-      return aPath;
-    }
-
-    ++level;
-  }
-
-  // Make sure we add a "../" for each component we removed from the root.
-  return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-}
-exports.relative = relative;
-
-var supportsNullProto = (function () {
-  var obj = Object.create(null);
-  return !('__proto__' in obj);
-}());
-
-function identity (s) {
-  return s;
-}
-
-/**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
-function toSetString(aStr) {
-  if (isProtoString(aStr)) {
-    return '$' + aStr;
-  }
-
-  return aStr;
-}
-exports.toSetString = supportsNullProto ? identity : toSetString;
-
-function fromSetString(aStr) {
-  if (isProtoString(aStr)) {
-    return aStr.slice(1);
-  }
-
-  return aStr;
-}
-exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
-function isProtoString(s) {
-  if (!s) {
-    return false;
-  }
-
-  var length = s.length;
-
-  if (length < 9 /* "__proto__".length */) {
-    return false;
-  }
-
-  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 2) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
-      s.charCodeAt(length - 4) !== 116 /* 't' */ ||
-      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
-      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
-      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
-      s.charCodeAt(length - 8) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 9) !== 95  /* '_' */) {
-    return false;
-  }
-
-  for (var i = length - 10; i >= 0; i--) {
-    if (s.charCodeAt(i) !== 36 /* '$' */) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-/**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
-function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-  var cmp = strcmp(mappingA.source, mappingB.source);
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0 || onlyCompareOriginal) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByOriginalPositions = compareByOriginalPositions;
-
-function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {
-  var cmp
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0 || onlyCompareOriginal) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;
-
-/**
- * Comparator between two mappings with deflated source and name indices where
- * the generated positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
-function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
-  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0 || onlyCompareGenerated) {
-    return cmp;
-  }
-
-  cmp = strcmp(mappingA.source, mappingB.source);
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
-function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {
-  var cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0 || onlyCompareGenerated) {
-    return cmp;
-  }
-
-  cmp = strcmp(mappingA.source, mappingB.source);
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;
-
-function strcmp(aStr1, aStr2) {
-  if (aStr1 === aStr2) {
-    return 0;
-  }
-
-  if (aStr1 === null) {
-    return 1; // aStr2 !== null
-  }
-
-  if (aStr2 === null) {
-    return -1; // aStr1 !== null
-  }
-
-  if (aStr1 > aStr2) {
-    return 1;
-  }
-
-  return -1;
-}
-
-/**
- * Comparator between two mappings with inflated source and name strings where
- * the generated positions are compared.
- */
-function compareByGeneratedPositionsInflated(mappingA, mappingB) {
-  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = strcmp(mappingA.source, mappingB.source);
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
-
-/**
- * Strip any JSON XSSI avoidance prefix from the string (as documented
- * in the source maps specification), and then parse the string as
- * JSON.
- */
-function parseSourceMapInput(str) {
-  return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, ''));
-}
-exports.parseSourceMapInput = parseSourceMapInput;
-
-/**
- * Compute the URL of a source given the the source root, the source's
- * URL, and the source map's URL.
- */
-function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {
-  sourceURL = sourceURL || '';
-
-  if (sourceRoot) {
-    // This follows what Chrome does.
-    if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {
-      sourceRoot += '/';
-    }
-    // The spec says:
-    //   Line 4: An optional source root, useful for relocating source
-    //   files on a server or removing repeated values in the
-    //   “sources” entry.  This value is prepended to the individual
-    //   entries in the “source” field.
-    sourceURL = sourceRoot + sourceURL;
-  }
-
-  // Historically, SourceMapConsumer did not take the sourceMapURL as
-  // a parameter.  This mode is still somewhat supported, which is why
-  // this code block is conditional.  However, it's preferable to pass
-  // the source map URL to SourceMapConsumer, so that this function
-  // can implement the source URL resolution algorithm as outlined in
-  // the spec.  This block is basically the equivalent of:
-  //    new URL(sourceURL, sourceMapURL).toString()
-  // ... except it avoids using URL, which wasn't available in the
-  // older releases of node still supported by this library.
-  //
-  // The spec says:
-  //   If the sources are not absolute URLs after prepending of the
-  //   “sourceRoot”, the sources are resolved relative to the
-  //   SourceMap (like resolving script src in a html document).
-  if (sourceMapURL) {
-    var parsed = urlParse(sourceMapURL);
-    if (!parsed) {
-      throw new Error("sourceMapURL could not be parsed");
-    }
-    if (parsed.path) {
-      // Strip the last path component, but keep the "/".
-      var index = parsed.path.lastIndexOf('/');
-      if (index >= 0) {
-        parsed.path = parsed.path.substring(0, index + 1);
-      }
-    }
-    sourceURL = join(urlGenerate(parsed), sourceURL);
-  }
-
-  return normalize(sourceURL);
-}
-exports.computeSourceURL = computeSourceURL;
Index: de_modules/source-map-js/package.json
===================================================================
--- node_modules/source-map-js/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-{
-  "name": "source-map-js",
-  "description": "Generates and consumes source maps",
-  "version": "1.2.1",
-  "homepage": "https://github.com/7rulnik/source-map-js",
-  "author": "Valentin 7rulnik Semirulnik <v7rulnik@gmail.com>",
-  "contributors": [
-    "Nick Fitzgerald <nfitzgerald@mozilla.com>",
-    "Tobias Koppers <tobias.koppers@googlemail.com>",
-    "Duncan Beevers <duncan@dweebd.com>",
-    "Stephen Crane <scrane@mozilla.com>",
-    "Ryan Seddon <seddon.ryan@gmail.com>",
-    "Miles Elam <miles.elam@deem.com>",
-    "Mihai Bazon <mihai.bazon@gmail.com>",
-    "Michael Ficarra <github.public.email@michael.ficarra.me>",
-    "Todd Wolfson <todd@twolfson.com>",
-    "Alexander Solovyov <alexander@solovyov.net>",
-    "Felix Gnass <fgnass@gmail.com>",
-    "Conrad Irwin <conrad.irwin@gmail.com>",
-    "usrbincc <usrbincc@yahoo.com>",
-    "David Glasser <glasser@davidglasser.net>",
-    "Chase Douglas <chase@newrelic.com>",
-    "Evan Wallace <evan.exe@gmail.com>",
-    "Heather Arthur <fayearthur@gmail.com>",
-    "Hugh Kennedy <hughskennedy@gmail.com>",
-    "David Glasser <glasser@davidglasser.net>",
-    "Simon Lydell <simon.lydell@gmail.com>",
-    "Jmeas Smith <jellyes2@gmail.com>",
-    "Michael Z Goddard <mzgoddard@gmail.com>",
-    "azu <azu@users.noreply.github.com>",
-    "John Gozde <john@gozde.ca>",
-    "Adam Kirkton <akirkton@truefitinnovation.com>",
-    "Chris Montgomery <christopher.montgomery@dowjones.com>",
-    "J. Ryan Stinnett <jryans@gmail.com>",
-    "Jack Herrington <jherrington@walmartlabs.com>",
-    "Chris Truter <jeffpalentine@gmail.com>",
-    "Daniel Espeset <daniel@danielespeset.com>",
-    "Jamie Wong <jamie.lf.wong@gmail.com>",
-    "Eddy Bruël <ejpbruel@mozilla.com>",
-    "Hawken Rives <hawkrives@gmail.com>",
-    "Gilad Peleg <giladp007@gmail.com>",
-    "djchie <djchie.dev@gmail.com>",
-    "Gary Ye <garysye@gmail.com>",
-    "Nicolas Lalevée <nicolas.lalevee@hibnet.org>"
-  ],
-  "repository": "7rulnik/source-map-js",
-  "main": "./source-map.js",
-  "files": [
-    "source-map.js",
-    "source-map.d.ts",
-    "lib/"
-  ],
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "license": "BSD-3-Clause",
-  "scripts": {
-    "test": "npm run build && node test/run-tests.js",
-    "build": "webpack --color",
-    "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md"
-  },
-  "devDependencies": {
-    "clean-publish": "^3.1.0",
-    "doctoc": "^0.15.0",
-    "webpack": "^1.12.0"
-  },
-  "clean-publish": {
-    "cleanDocs": true
-  },
-  "typings": "source-map.d.ts"
-}
Index: de_modules/source-map-js/source-map.d.ts
===================================================================
--- node_modules/source-map-js/source-map.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,104 +1,0 @@
-export interface StartOfSourceMap {
-    file?: string;
-    sourceRoot?: string;
-}
-
-export interface RawSourceMap extends StartOfSourceMap {
-    version: string;
-    sources: string[];
-    names: string[];
-    sourcesContent?: string[];
-    mappings: string;
-}
-
-export interface Position {
-    line: number;
-    column: number;
-}
-
-export interface LineRange extends Position {
-    lastColumn: number;
-}
-
-export interface FindPosition extends Position {
-    // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND
-    bias?: number;
-}
-
-export interface SourceFindPosition extends FindPosition {
-    source: string;
-}
-
-export interface MappedPosition extends Position {
-    source: string;
-    name?: string;
-}
-
-export interface MappingItem {
-    source: string | null;
-    generatedLine: number;
-    generatedColumn: number;
-    originalLine: number | null;
-    originalColumn: number | null;
-    name: string | null;
-}
-
-export class SourceMapConsumer {
-    static GENERATED_ORDER: number;
-    static ORIGINAL_ORDER: number;
-
-    static GREATEST_LOWER_BOUND: number;
-    static LEAST_UPPER_BOUND: number;
-
-    constructor(rawSourceMap: RawSourceMap);
-    readonly file: string | undefined | null;
-    readonly sourceRoot: string | undefined | null;
-    readonly sourcesContent: readonly string[] | null | undefined;
-    readonly sources: readonly string[]
-
-    computeColumnSpans(): void;
-    originalPositionFor(generatedPosition: FindPosition): MappedPosition;
-    generatedPositionFor(originalPosition: SourceFindPosition): LineRange;
-    allGeneratedPositionsFor(originalPosition: MappedPosition): Position[];
-    hasContentsOfAllSources(): boolean;
-    sourceContentFor(source: string, returnNullOnMissing?: boolean): string | null;
-    eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void;
-}
-
-export interface Mapping {
-    generated: Position;
-    original?: Position | null;
-    source?: string | null;
-    name?: string | null;
-}
-
-export class SourceMapGenerator {
-    constructor(startOfSourceMap?: StartOfSourceMap);
-    static fromSourceMap(sourceMapConsumer: SourceMapConsumer, startOfSourceMap?: StartOfSourceMap): SourceMapGenerator;
-    addMapping(mapping: Mapping): void;
-    setSourceContent(sourceFile: string, sourceContent: string | null | undefined): void;
-    applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void;
-    toString(): string;
-    toJSON(): RawSourceMap;
-}
-
-export interface CodeWithSourceMap {
-    code: string;
-    map: SourceMapGenerator;
-}
-
-export class SourceNode {
-    constructor();
-    constructor(line: number, column: number, source: string);
-    constructor(line: number, column: number, source: string, chunk?: string, name?: string);
-    static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode;
-    add(chunk: string): void;
-    prepend(chunk: string): void;
-    setSourceContent(sourceFile: string, sourceContent: string): void;
-    walk(fn: (chunk: string, mapping: MappedPosition) => void): void;
-    walkSourceContents(fn: (file: string, content: string) => void): void;
-    join(sep: string): SourceNode;
-    replaceRight(pattern: string, replacement: string): SourceNode;
-    toString(): string;
-    toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap;
-}
Index: de_modules/source-map-js/source-map.js
===================================================================
--- node_modules/source-map-js/source-map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-/*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;
-exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;
-exports.SourceNode = require('./lib/source-node').SourceNode;
Index: de_modules/tailwindcss/LICENSE
===================================================================
--- node_modules/tailwindcss/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Tailwind Labs, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/tailwindcss/README.md
===================================================================
--- node_modules/tailwindcss/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,36 +1,0 @@
-<p align="center">
-  <a href="https://tailwindcss.com" target="_blank">
-    <picture>
-      <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-dark.svg">
-      <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg">
-      <img alt="Tailwind CSS" src="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg" width="350" height="70" style="max-width: 100%;">
-    </picture>
-  </a>
-</p>
-
-<p align="center">
-  A utility-first CSS framework for rapidly building custom user interfaces.
-</p>
-
-<p align="center">
-    <a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=next" alt="Build Status"></a>
-    <a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
-    <a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
-    <a href="https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
-</p>
-
----
-
-## Documentation
-
-For full documentation, visit [tailwindcss.com](https://tailwindcss.com).
-
-## Community
-
-For help, discussion about best practices, or feature ideas:
-
-[Discuss Tailwind CSS on GitHub](https://github.com/tailwindcss/tailwindcss/discussions)
-
-## Contributing
-
-If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/next/.github/CONTRIBUTING.md) **before submitting a pull request**.
Index: de_modules/tailwindcss/dist/chunk-CT46QCH7.mjs
===================================================================
--- node_modules/tailwindcss/dist/chunk-CT46QCH7.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import{a as Xt,b as j,c as H,d as er,e as P,f as Ct,g as ie,h as et,i as rr}from"./chunk-GFBUASX3.mjs";import{a as tr}from"./chunk-HTB5LLOP.mjs";var ir="4.1.18";function tt(t){let r=[0];for(let n=0;n<t.length;n++)t.charCodeAt(n)===10&&r.push(n+1);function i(n){let s=0,a=r.length;for(;a>0;){let u=(a|0)>>1,f=s+u;r[f]<=n?(s=f+1,a=a-u-1):a=u}s-=1;let p=n-r[s];return{line:s+1,column:p}}function e({line:n,column:s}){n-=1,n=Math.min(Math.max(n,0),r.length-1);let a=r[n],p=r[n+1]??a;return Math.min(Math.max(a+s,0),p)}return{find:i,findOffset:e}}var Fe=92,rt=47,it=42,nr=34,ar=39,Yi=58,nt=59,le=10,at=13,We=32,Be=9,or=123,$t=125,Vt=40,lr=41,Gi=91,qi=93,sr=45,St=64,Zi=33,se=class t extends Error{loc;constructor(r,i){if(i){let e=i[0],n=tt(e.code).find(i[1]);r=`${e.file}:${n.line}:${n.column+1}: ${r}`}super(r),this.name="CssSyntaxError",this.loc=i,Error.captureStackTrace&&Error.captureStackTrace(this,t)}};function $e(t,r){let i=r?.from?{file:r.from,code:t}:null;t[0]==="\uFEFF"&&(t=" "+t.slice(1));let e=[],n=[],s=[],a=null,p=null,u="",f="",m=0,d;for(let c=0;c<t.length;c++){let w=t.charCodeAt(c);if(!(w===at&&(d=t.charCodeAt(c+1),d===le)))if(w===Fe)u===""&&(m=c),u+=t.slice(c,c+2),c+=1;else if(w===rt&&t.charCodeAt(c+1)===it){let h=c;for(let x=c+2;x<t.length;x++)if(d=t.charCodeAt(x),d===Fe)x+=1;else if(d===it&&t.charCodeAt(x+1)===rt){c=x+1;break}let y=t.slice(h,c+1);if(y.charCodeAt(2)===Zi){let x=ot(y.slice(2,-2));n.push(x),i&&(x.src=[i,h,c+1],x.dst=[i,h,c+1])}}else if(w===ar||w===nr){let h=ur(t,c,w,i);u+=t.slice(c,h+1),c=h}else{if((w===We||w===le||w===Be)&&(d=t.charCodeAt(c+1))&&(d===We||d===le||d===Be||d===at&&(d=t.charCodeAt(c+2))&&d==le))continue;if(w===le){if(u.length===0)continue;d=u.charCodeAt(u.length-1),d!==We&&d!==le&&d!==Be&&(u+=" ")}else if(w===sr&&t.charCodeAt(c+1)===sr&&u.length===0){let h="",y=c,x=-1;for(let A=c+2;A<t.length;A++)if(d=t.charCodeAt(A),d===Fe)A+=1;else if(d===ar||d===nr)A=ur(t,A,d,i);else if(d===rt&&t.charCodeAt(A+1)===it){for(let k=A+2;k<t.length;k++)if(d=t.charCodeAt(k),d===Fe)k+=1;else if(d===it&&t.charCodeAt(k+1)===rt){A=k+1;break}}else if(x===-1&&d===Yi)x=u.length+A-y;else if(d===nt&&h.length===0){u+=t.slice(y,A),c=A;break}else if(d===Vt)h+=")";else if(d===Gi)h+="]";else if(d===or)h+="}";else if((d===$t||t.length-1===A)&&h.length===0){c=A-1,u+=t.slice(y,A);break}else(d===lr||d===qi||d===$t)&&h.length>0&&t[A]===h[h.length-1]&&(h=h.slice(0,-1));let $=Tt(u,x);if(!$)throw new se("Invalid custom property, expected a value",i?[i,y,c]:null);i&&($.src=[i,y,c],$.dst=[i,y,c]),a?a.nodes.push($):e.push($),u=""}else if(w===nt&&u.charCodeAt(0)===St)p=Ye(u),i&&(p.src=[i,m,c],p.dst=[i,m,c]),a?a.nodes.push(p):e.push(p),u="",p=null;else if(w===nt&&f[f.length-1]!==")"){let h=Tt(u);if(!h){if(u.length===0)continue;throw new se(`Invalid declaration: \`${u.trim()}\``,i?[i,m,c]:null)}i&&(h.src=[i,m,c],h.dst=[i,m,c]),a?a.nodes.push(h):e.push(h),u=""}else if(w===or&&f[f.length-1]!==")")f+="}",p=J(u.trim()),i&&(p.src=[i,m,c],p.dst=[i,m,c]),a&&a.nodes.push(p),s.push(a),a=p,u="",p=null;else if(w===$t&&f[f.length-1]!==")"){if(f==="")throw new se("Missing opening {",i?[i,c,c]:null);if(f=f.slice(0,-1),u.length>0)if(u.charCodeAt(0)===St)p=Ye(u),i&&(p.src=[i,m,c],p.dst=[i,m,c]),a?a.nodes.push(p):e.push(p),u="",p=null;else{let y=u.indexOf(":");if(a){let x=Tt(u,y);if(!x)throw new se(`Invalid declaration: \`${u.trim()}\``,i?[i,m,c]:null);i&&(x.src=[i,m,c],x.dst=[i,m,c]),a.nodes.push(x)}}let h=s.pop()??null;h===null&&a&&e.push(a),a=h,u="",p=null}else if(w===Vt)f+=")",u+="(";else if(w===lr){if(f[f.length-1]!==")")throw new se("Missing opening (",i?[i,c,c]:null);f=f.slice(0,-1),u+=")"}else{if(u.length===0&&(w===We||w===le||w===Be))continue;u===""&&(m=c),u+=String.fromCharCode(w)}}}if(u.charCodeAt(0)===St){let c=Ye(u);i&&(c.src=[i,m,t.length],c.dst=[i,m,t.length]),e.push(c)}if(f.length>0&&a){if(a.kind==="rule")throw new se(`Missing closing } at ${a.selector}`,a.src?[a.src[0],a.src[1],a.src[1]]:null);if(a.kind==="at-rule")throw new se(`Missing closing } at ${a.name} ${a.params}`,a.src?[a.src[0],a.src[1],a.src[1]]:null)}return n.length>0?n.concat(e):e}function Ye(t,r=[]){let i=t,e="";for(let n=5;n<t.length;n++){let s=t.charCodeAt(n);if(s===We||s===Be||s===Vt){i=t.slice(0,n),e=t.slice(n);break}}return F(i.trim(),e.trim(),r)}function Tt(t,r=t.indexOf(":")){if(r===-1)return null;let i=t.indexOf("!important",r+1);return o(t.slice(0,r).trim(),t.slice(r+1,i===-1?t.length:i).trim(),i!==-1)}function ur(t,r,i,e=null){let n;for(let s=r+1;s<t.length;s++)if(n=t.charCodeAt(s),n===Fe)s+=1;else{if(n===i)return s;if(n===nt&&(t.charCodeAt(s+1)===le||t.charCodeAt(s+1)===at&&t.charCodeAt(s+2)===le))throw new se(`Unterminated string: ${t.slice(r,s+1)+String.fromCharCode(i)}`,e?[e,r,s+1]:null);if(n===le||n===at&&t.charCodeAt(s+1)===le)throw new se(`Unterminated string: ${t.slice(r,s)+String.fromCharCode(i)}`,e?[e,r,s+1]:null)}return r}function ye(t){if(arguments.length===0)throw new TypeError("`CSS.escape` requires an argument.");let r=String(t),i=r.length,e=-1,n,s="",a=r.charCodeAt(0);if(i===1&&a===45)return"\\"+r;for(;++e<i;){if(n=r.charCodeAt(e),n===0){s+="\uFFFD";continue}if(n>=1&&n<=31||n===127||e===0&&n>=48&&n<=57||e===1&&n>=48&&n<=57&&a===45){s+="\\"+n.toString(16)+" ";continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){s+=r.charAt(e);continue}s+="\\"+r.charAt(e)}return s}function Se(t){return t.replace(/\\([\dA-Fa-f]{1,6}[\t\n\f\r ]?|[\S\s])/g,r=>r.length>2?String.fromCodePoint(Number.parseInt(r.slice(1).trim(),16)):r[1])}var cr=new Map([["--font",["--font-weight","--font-size"]],["--inset",["--inset-shadow","--inset-ring"]],["--text",["--text-color","--text-decoration-color","--text-decoration-thickness","--text-indent","--text-shadow","--text-underline-offset"]],["--grid-column",["--grid-column-start","--grid-column-end"]],["--grid-row",["--grid-row-start","--grid-row-end"]]]);function fr(t,r){return(cr.get(r)??[]).some(i=>t===i||t.startsWith(`${i}-`))}var lt=class{constructor(r=new Map,i=new Set([])){this.values=r;this.keyframes=i}prefix=null;get size(){return this.values.size}add(r,i,e=0,n){if(r.endsWith("-*")){if(i!=="initial")throw new Error(`Invalid theme value \`${i}\` for namespace \`${r}\``);r==="--*"?this.values.clear():this.clearNamespace(r.slice(0,-2),0)}if(e&4){let s=this.values.get(r);if(s&&!(s.options&4))return}i==="initial"?this.values.delete(r):this.values.set(r,{value:i,options:e,src:n})}keysInNamespaces(r){let i=[];for(let e of r){let n=`${e}-`;for(let s of this.values.keys())s.startsWith(n)&&s.indexOf("--",2)===-1&&(fr(s,e)||i.push(s.slice(n.length)))}return i}get(r){for(let i of r){let e=this.values.get(i);if(e)return e.value}return null}hasDefault(r){return(this.getOptions(r)&4)===4}getOptions(r){return r=Se(this.#r(r)),this.values.get(r)?.options??0}entries(){return this.prefix?Array.from(this.values,r=>(r[0]=this.prefixKey(r[0]),r)):this.values.entries()}prefixKey(r){return this.prefix?`--${this.prefix}-${r.slice(2)}`:r}#r(r){return this.prefix?`--${r.slice(3+this.prefix.length)}`:r}clearNamespace(r,i){let e=cr.get(r)??[];e:for(let n of this.values.keys())if(n.startsWith(r)){if(i!==0&&(this.getOptions(n)&i)!==i)continue;for(let s of e)if(n.startsWith(s))continue e;this.values.delete(n)}}#e(r,i){for(let e of i){let n=r!==null?`${e}-${r}`:e;if(!this.values.has(n))if(r!==null&&r.includes(".")){if(n=`${e}-${r.replaceAll(".","_")}`,!this.values.has(n))continue}else continue;if(!fr(n,e))return n}return null}#t(r){let i=this.values.get(r);if(!i)return null;let e=null;return i.options&2&&(e=i.value),`var(${ye(this.prefixKey(r))}${e?`, ${e}`:""})`}markUsedVariable(r){let i=Se(this.#r(r)),e=this.values.get(i);if(!e)return!1;let n=e.options&16;return e.options|=16,!n}resolve(r,i,e=0){let n=this.#e(r,i);if(!n)return null;let s=this.values.get(n);return(e|s.options)&1?s.value:this.#t(n)}resolveValue(r,i){let e=this.#e(r,i);return e?this.values.get(e).value:null}resolveWith(r,i,e=[]){let n=this.#e(r,i);if(!n)return null;let s={};for(let p of e){let u=`${n}${p}`,f=this.values.get(u);f&&(f.options&1?s[p]=f.value:s[p]=this.#t(u))}let a=this.values.get(n);return a.options&1?[a.value,s]:[this.#t(n),s]}namespace(r){let i=new Map,e=`${r}-`;for(let[n,s]of this.values)n===r?i.set(null,s.value):n.startsWith(`${e}-`)?i.set(n.slice(r.length),s.value):n.startsWith(e)&&i.set(n.slice(e.length),s.value);return i}addKeyframes(r){this.keyframes.add(r)}getKeyframes(){return Array.from(this.keyframes)}};var K=class extends Map{constructor(i){super();this.factory=i}get(i){let e=super.get(i);return e===void 0&&(e=this.factory(i,this),this.set(i,e)),e}};function ne(t){return{kind:"word",value:t}}function Hi(t,r){return{kind:"function",value:t,nodes:r}}function Ji(t){return{kind:"separator",value:t}}function Z(t){let r="";for(let i of t)switch(i.kind){case"word":case"separator":{r+=i.value;break}case"function":r+=i.value+"("+Z(i.nodes)+")"}return r}var pr=92,Qi=41,dr=58,mr=44,Xi=34,gr=61,hr=62,vr=60,wr=10,en=40,tn=39,rn=47,yr=32,kr=9;function B(t){t=t.replaceAll(`\r
-`,`
-`);let r=[],i=[],e=null,n="",s;for(let a=0;a<t.length;a++){let p=t.charCodeAt(a);switch(p){case pr:{n+=t[a]+t[a+1],a++;break}case rn:{if(n.length>0){let f=ne(n);e?e.nodes.push(f):r.push(f),n=""}let u=ne(t[a]);e?e.nodes.push(u):r.push(u);break}case dr:case mr:case gr:case hr:case vr:case wr:case yr:case kr:{if(n.length>0){let d=ne(n);e?e.nodes.push(d):r.push(d),n=""}let u=a,f=a+1;for(;f<t.length&&(s=t.charCodeAt(f),!(s!==dr&&s!==mr&&s!==gr&&s!==hr&&s!==vr&&s!==wr&&s!==yr&&s!==kr));f++);a=f-1;let m=Ji(t.slice(u,f));e?e.nodes.push(m):r.push(m);break}case tn:case Xi:{let u=a;for(let f=a+1;f<t.length;f++)if(s=t.charCodeAt(f),s===pr)f+=1;else if(s===p){a=f;break}n+=t.slice(u,a+1);break}case en:{let u=Hi(n,[]);n="",e?e.nodes.push(u):r.push(u),i.push(u),e=u;break}case Qi:{let u=i.pop();if(n.length>0){let f=ne(n);u?.nodes.push(f),n=""}i.length>0?e=i[i.length-1]:e=null;break}default:n+=String.fromCharCode(p)}}return n.length>0&&r.push(ne(n)),r}var Et=(a=>(a[a.Continue=0]="Continue",a[a.Skip=1]="Skip",a[a.Stop=2]="Stop",a[a.Replace=3]="Replace",a[a.ReplaceSkip=4]="ReplaceSkip",a[a.ReplaceStop=5]="ReplaceStop",a))(Et||{}),E={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:t=>({kind:3,nodes:Array.isArray(t)?t:[t]}),ReplaceSkip:t=>({kind:4,nodes:Array.isArray(t)?t:[t]}),ReplaceStop:t=>({kind:5,nodes:Array.isArray(t)?t:[t]})};function I(t,r){typeof r=="function"?br(t,r):br(t,r.enter,r.exit)}function br(t,r=()=>E.Continue,i=()=>E.Continue){let e=[[t,0,null]],n={parent:null,depth:0,path(){let s=[];for(let a=1;a<e.length;a++){let p=e[a][2];p&&s.push(p)}return s}};for(;e.length>0;){let s=e.length-1,a=e[s],p=a[0],u=a[1],f=a[2];if(u>=p.length){e.pop();continue}if(n.parent=f,n.depth=s,u>=0){let w=p[u],h=r(w,n)??E.Continue;switch(h.kind){case 0:{w.nodes&&w.nodes.length>0&&e.push([w.nodes,0,w]),a[1]=~u;continue}case 2:return;case 1:{a[1]=~u;continue}case 3:{p.splice(u,1,...h.nodes);continue}case 5:{p.splice(u,1,...h.nodes);return}case 4:{p.splice(u,1,...h.nodes),a[1]+=h.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${Et[h.kind]??`Unknown(${h.kind})`}\` in enter.`)}}let m=~u,d=p[m],c=i(d,n)??E.Continue;switch(c.kind){case 0:a[1]=m+1;continue;case 2:return;case 3:{p.splice(m,1,...c.nodes),a[1]=m+c.nodes.length;continue}case 5:{p.splice(m,1,...c.nodes);return}case 4:{p.splice(m,1,...c.nodes),a[1]=m+c.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${Et[c.kind]??`Unknown(${c.kind})`}\` in exit.`)}}}function st(t){let r=[];return I(B(t),i=>{if(!(i.kind!=="function"||i.value!=="var"))return I(i.nodes,e=>{e.kind!=="word"||e.value[0]!=="-"||e.value[1]!=="-"||r.push(e.value)}),E.Skip}),r}var nn=64;function G(t,r=[]){return{kind:"rule",selector:t,nodes:r}}function F(t,r="",i=[]){return{kind:"at-rule",name:t,params:r,nodes:i}}function J(t,r=[]){return t.charCodeAt(0)===nn?Ye(t,r):G(t,r)}function o(t,r,i=!1){return{kind:"declaration",property:t,value:r,important:i}}function ot(t){return{kind:"comment",value:t}}function ce(t,r){return{kind:"context",context:t,nodes:r}}function W(t){return{kind:"at-root",nodes:t}}function ee(t){switch(t.kind){case"rule":return{kind:t.kind,selector:t.selector,nodes:t.nodes.map(ee),src:t.src,dst:t.dst};case"at-rule":return{kind:t.kind,name:t.name,params:t.params,nodes:t.nodes.map(ee),src:t.src,dst:t.dst};case"at-root":return{kind:t.kind,nodes:t.nodes.map(ee),src:t.src,dst:t.dst};case"context":return{kind:t.kind,context:{...t.context},nodes:t.nodes.map(ee),src:t.src,dst:t.dst};case"declaration":return{kind:t.kind,property:t.property,value:t.value,important:t.important,src:t.src,dst:t.dst};case"comment":return{kind:t.kind,value:t.value,src:t.src,dst:t.dst};default:throw new Error(`Unknown node kind: ${t.kind}`)}}function qe(t){return{depth:t.depth,get context(){let r={};for(let i of t.path())i.kind==="context"&&Object.assign(r,i.context);return Object.defineProperty(this,"context",{value:r}),r},get parent(){let r=this.path().pop()??null;return Object.defineProperty(this,"parent",{value:r}),r},path(){return t.path().filter(r=>r.kind!=="context")}}}function Te(t,r,i=3){let e=[],n=new Set,s=new K(()=>new Set),a=new K(()=>new Set),p=new Set,u=new Set,f=[],m=[],d=new K(()=>new Set);function c(h,y,x={},$=0){if(h.kind==="declaration"){if(h.property==="--tw-sort"||h.value===void 0||h.value===null)return;if(x.theme&&h.property[0]==="-"&&h.property[1]==="-"){if(h.value==="initial"){h.value=void 0;return}x.keyframes||s.get(y).add(h)}if(h.value.includes("var("))if(x.theme&&h.property[0]==="-"&&h.property[1]==="-")for(let A of st(h.value))d.get(A).add(h.property);else r.trackUsedVariables(h.value);if(h.property==="animation")for(let A of xr(h.value))u.add(A);i&2&&h.value.includes("color-mix(")&&!x.keyframes&&a.get(y).add(h),y.push(h)}else if(h.kind==="rule"){let A=[];for(let N of h.nodes)c(N,A,x,$+1);let k={},U=new Set;for(let N of A){if(N.kind!=="declaration")continue;let O=`${N.property}:${N.value}:${N.important}`;k[O]??=[],k[O].push(N)}for(let N in k)for(let O=0;O<k[N].length-1;++O)U.add(k[N][O]);if(U.size>0&&(A=A.filter(N=>!U.has(N))),A.length===0)return;h.selector==="&"?y.push(...A):y.push({...h,nodes:A})}else if(h.kind==="at-rule"&&h.name==="@property"&&$===0){if(n.has(h.params))return;if(i&1){let k=h.params,U=null,N=!1;for(let L of h.nodes)L.kind==="declaration"&&(L.property==="initial-value"?U=L.value:L.property==="inherits"&&(N=L.value==="true"));let O=o(k,U??"initial");O.src=h.src,N?f.push(O):m.push(O)}n.add(h.params);let A={...h,nodes:[]};for(let k of h.nodes)c(k,A.nodes,x,$+1);y.push(A)}else if(h.kind==="at-rule"){h.name==="@keyframes"&&(x={...x,keyframes:!0});let A={...h,nodes:[]};for(let k of h.nodes)c(k,A.nodes,x,$+1);h.name==="@keyframes"&&x.theme&&p.add(A),(A.nodes.length>0||A.name==="@layer"||A.name==="@charset"||A.name==="@custom-media"||A.name==="@namespace"||A.name==="@import")&&y.push(A)}else if(h.kind==="at-root")for(let A of h.nodes){let k=[];c(A,k,x,0);for(let U of k)e.push(U)}else if(h.kind==="context"){if(h.context.reference)return;for(let A of h.nodes)c(A,y,{...x,...h.context},$)}else h.kind==="comment"&&y.push(h)}let w=[];for(let h of t)c(h,w,{},0);e:for(let[h,y]of s)for(let x of y){if(Ar(x.property,r.theme,d)){if(x.property.startsWith(r.theme.prefixKey("--animate-")))for(let k of xr(x.value))u.add(k);continue}let A=h.indexOf(x);if(h.splice(A,1),h.length===0){let k=an(w,U=>U.kind==="rule"&&U.nodes===h);if(!k||k.length===0)continue e;k.unshift({kind:"at-root",nodes:w});do{let U=k.pop();if(!U)break;let N=k[k.length-1];if(!N||N.kind!=="at-root"&&N.kind!=="at-rule")break;let O=N.nodes.indexOf(U);if(O===-1)break;N.nodes.splice(O,1)}while(!0);continue e}}for(let h of p)if(!u.has(h.params)){let y=e.indexOf(h);e.splice(y,1)}if(w=w.concat(e),i&2)for(let[h,y]of a)for(let x of y){let $=h.indexOf(x);if($===-1||x.value==null)continue;let A=B(x.value),k=!1;if(I(A,O=>{if(O.kind!=="function"||O.value!=="color-mix")return;let L=!1,_=!1;if(I(O.nodes,z=>{if(z.kind=="word"&&z.value.toLowerCase()==="currentcolor"){_=!0,k=!0;return}let Y=z,q=null,ae=new Set;do{if(Y.kind!=="function"||Y.value!=="var")return;let oe=Y.nodes[0];if(!oe||oe.kind!=="word")return;let l=oe.value;if(ae.has(l)){L=!0;return}if(ae.add(l),k=!0,q=r.theme.resolveValue(null,[oe.value]),!q){L=!0;return}if(q.toLowerCase()==="currentcolor"){_=!0;return}q.startsWith("var(")?Y=B(q)[0]:Y=null}while(Y);return E.Replace({kind:"word",value:q})}),L||_){let z=O.nodes.findIndex(q=>q.kind==="separator"&&q.value.trim().includes(","));if(z===-1)return;let Y=O.nodes.length>z?O.nodes[z+1]:null;return Y?E.Replace(Y):void 0}else if(k){let z=O.nodes[2];z.kind==="word"&&(z.value==="oklab"||z.value==="oklch"||z.value==="lab"||z.value==="lch")&&(z.value="srgb")}}),!k)continue;let U={...x,value:Z(A)},N=J("@supports (color: color-mix(in lab, red, red))",[x]);N.src=x.src,h.splice($,1,U,N)}if(i&1){let h=[];if(f.length>0){let y=J(":root, :host",f);y.src=f[0].src,h.push(y)}if(m.length>0){let y=J("*, ::before, ::after, ::backdrop",m);y.src=m[0].src,h.push(y)}if(h.length>0){let y=w.findIndex(A=>!(A.kind==="comment"||A.kind==="at-rule"&&(A.name==="@charset"||A.name==="@import"))),x=F("@layer","properties",[]);x.src=h[0].src,w.splice(y<0?w.length:y,0,x);let $=J("@layer properties",[F("@supports","((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b))))",h)]);$.src=h[0].src,$.nodes[0].src=h[0].src,w.push($)}}return w}function re(t,r){let i=0,e={file:null,code:""};function n(a,p=0){let u="",f="  ".repeat(p);if(a.kind==="declaration"){if(u+=`${f}${a.property}: ${a.value}${a.important?" !important":""};
-`,r){i+=f.length;let m=i;i+=a.property.length,i+=2,i+=a.value?.length??0,a.important&&(i+=11);let d=i;i+=2,a.dst=[e,m,d]}}else if(a.kind==="rule"){if(u+=`${f}${a.selector} {
-`,r){i+=f.length;let m=i;i+=a.selector.length,i+=1;let d=i;a.dst=[e,m,d],i+=2}for(let m of a.nodes)u+=n(m,p+1);u+=`${f}}
-`,r&&(i+=f.length,i+=2)}else if(a.kind==="at-rule"){if(a.nodes.length===0){let m=`${f}${a.name} ${a.params};
-`;if(r){i+=f.length;let d=i;i+=a.name.length,i+=1,i+=a.params.length;let c=i;i+=2,a.dst=[e,d,c]}return m}if(u+=`${f}${a.name}${a.params?` ${a.params} `:" "}{
-`,r){i+=f.length;let m=i;i+=a.name.length,a.params&&(i+=1,i+=a.params.length),i+=1;let d=i;a.dst=[e,m,d],i+=2}for(let m of a.nodes)u+=n(m,p+1);u+=`${f}}
-`,r&&(i+=f.length,i+=2)}else if(a.kind==="comment"){if(u+=`${f}/*${a.value}*/
-`,r){i+=f.length;let m=i;i+=2+a.value.length+2;let d=i;a.dst=[e,m,d],i+=1}}else if(a.kind==="context"||a.kind==="at-root")return"";return u}let s="";for(let a of t)s+=n(a,0);return e.code=s,s}function an(t,r){let i=[];return I(t,(e,n)=>{if(r(e))return i=n.path(),i.push(e),E.Stop}),i}function Ar(t,r,i,e=new Set){if(e.has(t)||(e.add(t),r.getOptions(t)&24))return!0;{let s=i.get(t)??[];for(let a of s)if(Ar(a,r,i,e))return!0}return!1}function xr(t){return t.split(/[\s,]+/)}function ke(t){if(t.indexOf("(")===-1)return Ie(t);let r=B(t);return Ot(r),t=Z(r),t=Xt(t),t}function Ie(t,r=!1){let i="";for(let e=0;e<t.length;e++){let n=t[e];n==="\\"&&t[e+1]==="_"?(i+="_",e+=1):n==="_"&&!r?i+=" ":i+=n}return i}function Ot(t){for(let r of t)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=Ie(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=Ie(r.value);for(let i=0;i<r.nodes.length;i++){if(i==0&&r.nodes[i].kind==="word"){r.nodes[i].value=Ie(r.nodes[i].value,!0);continue}Ot([r.nodes[i]])}break}r.value=Ie(r.value),Ot(r.nodes);break}case"separator":case"word":{r.value=Ie(r.value);break}default:on(r)}}function on(t){throw new Error(`Unexpected value: ${t}`)}var Pt=new Uint8Array(256);function he(t){let r=0,i=t.length;for(let e=0;e<i;e++){let n=t.charCodeAt(e);switch(n){case 92:e+=1;break;case 39:case 34:for(;++e<i;){let s=t.charCodeAt(e);if(s===92){e+=1;continue}if(s===n)break}break;case 40:Pt[r]=41,r++;break;case 91:Pt[r]=93,r++;break;case 123:break;case 93:case 125:case 41:if(r===0)return!1;r>0&&n===Pt[r-1]&&r--;break;case 59:if(r===0)return!1;break}}return!0}var ln=58,Cr=45,$r=97,Sr=122,Dt=/^[a-zA-Z0-9_.%-]+$/;function Tr(t){switch(t.kind){case"arbitrary":return{kind:t.kind,property:t.property,value:t.value,modifier:t.modifier?{kind:t.modifier.kind,value:t.modifier.value}:null,variants:t.variants.map(_e),important:t.important,raw:t.raw};case"static":return{kind:t.kind,root:t.root,variants:t.variants.map(_e),important:t.important,raw:t.raw};case"functional":return{kind:t.kind,root:t.root,value:t.value?t.value.kind==="arbitrary"?{kind:t.value.kind,dataType:t.value.dataType,value:t.value.value}:{kind:t.value.kind,value:t.value.value,fraction:t.value.fraction}:null,modifier:t.modifier?{kind:t.modifier.kind,value:t.modifier.value}:null,variants:t.variants.map(_e),important:t.important,raw:t.raw};default:throw new Error("Unknown candidate kind")}}function _e(t){switch(t.kind){case"arbitrary":return{kind:t.kind,selector:t.selector,relative:t.relative};case"static":return{kind:t.kind,root:t.root};case"functional":return{kind:t.kind,root:t.root,value:t.value?{kind:t.value.kind,value:t.value.value}:null,modifier:t.modifier?{kind:t.modifier.kind,value:t.modifier.value}:null};case"compound":return{kind:t.kind,root:t.root,variant:_e(t.variant),modifier:t.modifier?{kind:t.modifier.kind,value:t.modifier.value}:null};default:throw new Error("Unknown variant kind")}}function*Vr(t,r){let i=j(t,":");if(r.theme.prefix){if(i.length===1||i[0]!==r.theme.prefix)return null;i.shift()}let e=i.pop(),n=[];for(let d=i.length-1;d>=0;--d){let c=r.parseVariant(i[d]);if(c===null)return;n.push(c)}let s=!1;e[e.length-1]==="!"?(s=!0,e=e.slice(0,-1)):e[0]==="!"&&(s=!0,e=e.slice(1)),r.utilities.has(e,"static")&&!e.includes("[")&&(yield{kind:"static",root:e,variants:n,important:s,raw:t});let[a,p=null,u]=j(e,"/");if(u)return;let f=p===null?null:It(p);if(p!==null&&f===null)return;if(a[0]==="["){if(a[a.length-1]!=="]")return;let d=a.charCodeAt(1);if(d!==Cr&&!(d>=$r&&d<=Sr))return;a=a.slice(1,-1);let c=a.indexOf(":");if(c===-1||c===0||c===a.length-1)return;let w=a.slice(0,c),h=ke(a.slice(c+1));if(!he(h))return;yield{kind:"arbitrary",property:w,value:h,modifier:f,variants:n,important:s,raw:t};return}let m;if(a[a.length-1]==="]"){let d=a.indexOf("-[");if(d===-1)return;let c=a.slice(0,d);if(!r.utilities.has(c,"functional"))return;let w=a.slice(d+1);m=[[c,w]]}else if(a[a.length-1]===")"){let d=a.indexOf("-(");if(d===-1)return;let c=a.slice(0,d);if(!r.utilities.has(c,"functional"))return;let w=a.slice(d+2,-1),h=j(w,":"),y=null;if(h.length===2&&(y=h[0],w=h[1]),w[0]!=="-"||w[1]!=="-"||!he(w))return;m=[[c,y===null?`[var(${w})]`:`[${y}:var(${w})]`]]}else m=Er(a,d=>r.utilities.has(d,"functional"));for(let[d,c]of m){let w={kind:"functional",root:d,modifier:f,value:null,variants:n,important:s,raw:t};if(c===null){yield w;continue}{let h=c.indexOf("[");if(h!==-1){if(c[c.length-1]!=="]")return;let x=ke(c.slice(h+1,-1));if(!he(x))continue;let $=null;for(let A=0;A<x.length;A++){let k=x.charCodeAt(A);if(k===ln){$=x.slice(0,A),x=x.slice(A+1);break}if(!(k===Cr||k>=$r&&k<=Sr))break}if(x.length===0||x.trim().length===0||$==="")continue;w.value={kind:"arbitrary",dataType:$||null,value:x}}else{let x=p===null||w.modifier?.kind==="arbitrary"?null:`${c}/${p}`;if(!Dt.test(c))continue;w.value={kind:"named",value:c,fraction:x}}}yield w}}function It(t){if(t[0]==="["&&t[t.length-1]==="]"){let r=ke(t.slice(1,-1));return!he(r)||r.length===0||r.trim().length===0?null:{kind:"arbitrary",value:r}}return t[0]==="("&&t[t.length-1]===")"?(t=t.slice(1,-1),t[0]!=="-"||t[1]!=="-"||!he(t)?null:(t=`var(${t})`,{kind:"arbitrary",value:ke(t)})):Dt.test(t)?{kind:"named",value:t}:null}function Nr(t,r){if(t[0]==="["&&t[t.length-1]==="]"){if(t[1]==="@"&&t.includes("&"))return null;let i=ke(t.slice(1,-1));if(!he(i)||i.length===0||i.trim().length===0)return null;let e=i[0]===">"||i[0]==="+"||i[0]==="~";return!e&&i[0]!=="@"&&!i.includes("&")&&(i=`&:is(${i})`),{kind:"arbitrary",selector:i,relative:e}}{let[i,e=null,n]=j(t,"/");if(n)return null;let s=Er(i,a=>r.variants.has(a));for(let[a,p]of s)switch(r.variants.kind(a)){case"static":return p!==null||e!==null?null:{kind:"static",root:a};case"functional":{let u=e===null?null:It(e);if(e!==null&&u===null)return null;if(p===null)return{kind:"functional",root:a,modifier:u,value:null};if(p[p.length-1]==="]"){if(p[0]!=="[")continue;let f=ke(p.slice(1,-1));return!he(f)||f.length===0||f.trim().length===0?null:{kind:"functional",root:a,modifier:u,value:{kind:"arbitrary",value:f}}}if(p[p.length-1]===")"){if(p[0]!=="(")continue;let f=ke(p.slice(1,-1));return!he(f)||f.length===0||f.trim().length===0||f[0]!=="-"||f[1]!=="-"?null:{kind:"functional",root:a,modifier:u,value:{kind:"arbitrary",value:`var(${f})`}}}if(!Dt.test(p))continue;return{kind:"functional",root:a,modifier:u,value:{kind:"named",value:p}}}case"compound":{if(p===null)return null;e&&(a==="not"||a==="has"||a==="in")&&(p=`${p}/${e}`,e=null);let u=r.parseVariant(p);if(u===null||!r.variants.compoundsWith(a,u))return null;let f=e===null?null:It(e);return e!==null&&f===null?null:{kind:"compound",root:a,modifier:f,variant:u}}}}return null}function*Er(t,r){r(t)&&(yield[t,null]);let i=t.lastIndexOf("-");for(;i>0;){let e=t.slice(0,i);if(r(e)){let n=[e,t.slice(i+1)];if(n[1]===""||n[0]==="@"&&r("@")&&t[i]==="-")break;yield n}i=t.lastIndexOf("-",i-1)}t[0]==="@"&&r("@")&&(yield["@",t.slice(1)])}function Rr(t,r){let i=[];for(let n of r.variants)i.unshift(ut(n));t.theme.prefix&&i.unshift(t.theme.prefix);let e="";if(r.kind==="static"&&(e+=r.root),r.kind==="functional"&&(e+=r.root,r.value))if(r.value.kind==="arbitrary"){if(r.value!==null){let n=Kt(r.value.value),s=n?r.value.value.slice(4,-1):r.value.value,[a,p]=n?["(",")"]:["[","]"];r.value.dataType?e+=`-${a}${r.value.dataType}:${be(s)}${p}`:e+=`-${a}${be(s)}${p}`}}else r.value.kind==="named"&&(e+=`-${r.value.value}`);return r.kind==="arbitrary"&&(e+=`[${r.property}:${be(r.value)}]`),(r.kind==="arbitrary"||r.kind==="functional")&&(e+=He(r.modifier)),r.important&&(e+="!"),i.push(e),i.join(":")}function He(t){if(t===null)return"";let r=Kt(t.value),i=r?t.value.slice(4,-1):t.value,[e,n]=r?["(",")"]:["[","]"];return t.kind==="arbitrary"?`/${e}${be(i)}${n}`:t.kind==="named"?`/${t.value}`:""}function ut(t){if(t.kind==="static")return t.root;if(t.kind==="arbitrary")return`[${be(fn(t.selector))}]`;let r="";if(t.kind==="functional"){r+=t.root;let i=t.root!=="@";if(t.value)if(t.value.kind==="arbitrary"){let e=Kt(t.value.value),n=e?t.value.value.slice(4,-1):t.value.value,[s,a]=e?["(",")"]:["[","]"];r+=`${i?"-":""}${s}${be(n)}${a}`}else t.value.kind==="named"&&(r+=`${i?"-":""}${t.value.value}`)}return t.kind==="compound"&&(r+=t.root,r+="-",r+=ut(t.variant)),(t.kind==="functional"||t.kind==="compound")&&(r+=He(t.modifier)),r}var sn=new K(t=>{let r=B(t),i=new Set;return I(r,(e,n)=>{let s=n.parent===null?r:n.parent.nodes??[];if(e.kind==="word"&&(e.value==="+"||e.value==="-"||e.value==="*"||e.value==="/")){let a=s.indexOf(e)??-1;if(a===-1)return;let p=s[a-1];if(p?.kind!=="separator"||p.value!==" ")return;let u=s[a+1];if(u?.kind!=="separator"||u.value!==" ")return;i.add(p),i.add(u)}else e.kind==="separator"&&e.value.length>0&&e.value.trim()===""?(s[0]===e||s[s.length-1]===e)&&i.add(e):e.kind==="separator"&&e.value.trim()===","&&(e.value=",")}),i.size>0&&I(r,e=>{if(i.has(e))return i.delete(e),E.ReplaceSkip([])}),_t(r),Z(r)});function be(t){return sn.get(t)}var un=new K(t=>{let r=B(t);return r.length===3&&r[0].kind==="word"&&r[0].value==="&"&&r[1].kind==="separator"&&r[1].value===":"&&r[2].kind==="function"&&r[2].value==="is"?Z(r[2].nodes):t});function fn(t){return un.get(t)}function _t(t){for(let r of t)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=Ze(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=Ze(r.value);for(let i=0;i<r.nodes.length;i++)_t([r.nodes[i]]);break}r.value=Ze(r.value),_t(r.nodes);break}case"separator":r.value=Ze(r.value);break;case"word":{(r.value[0]!=="-"||r.value[1]!=="-")&&(r.value=Ze(r.value));break}default:pn(r)}}var cn=new K(t=>{let r=B(t);return r.length===1&&r[0].kind==="function"&&r[0].value==="var"});function Kt(t){return cn.get(t)}function pn(t){throw new Error(`Unexpected value: ${t}`)}function Ze(t){return t.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}function Ve(t,r,i){if(t===r)return 0;let e=t.indexOf("("),n=r.indexOf("("),s=e===-1?t.replace(/[\d.]+/g,""):t.slice(0,e),a=n===-1?r.replace(/[\d.]+/g,""):r.slice(0,n),p=(s===a?0:s<a?-1:1)||(i==="asc"?parseInt(t)-parseInt(r):parseInt(r)-parseInt(t));return Number.isNaN(p)?t<r?-1:1:p}var dn=new Set(["inset","inherit","initial","revert","unset"]),Or=/^-?(\d+|\.\d+)(.*?)$/g;function Je(t,r){return j(t,",").map(e=>{e=e.trim();let n=j(e," ").filter(f=>f.trim()!==""),s=null,a=null,p=null;for(let f of n)dn.has(f)||(Or.test(f)?(a===null?a=f:p===null&&(p=f),Or.lastIndex=0):s===null&&(s=f));if(a===null||p===null)return e;let u=r(s??"currentcolor");return s!==null?e.replace(s,u):`${e} ${u}`}).join(", ")}var gn=/^-?[a-z][a-zA-Z0-9/%._-]*$/,hn=/^-?[a-z][a-zA-Z0-9/%._-]*-\*$/,ct=["0","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96"],Ut=class{utilities=new K(()=>[]);completions=new Map;static(r,i){this.utilities.get(r).push({kind:"static",compileFn:i})}functional(r,i,e){this.utilities.get(r).push({kind:"functional",compileFn:i,options:e})}has(r,i){return this.utilities.has(r)&&this.utilities.get(r).some(e=>e.kind===i)}get(r){return this.utilities.has(r)?this.utilities.get(r):[]}getCompletions(r){return this.has(r,"static")?this.completions.get(r)?.()??[{supportsNegative:!1,values:[],modifiers:[]}]:this.completions.get(r)?.()??[]}suggest(r,i){let e=this.completions.get(r);e?this.completions.set(r,()=>[...e?.(),...i?.()]):this.completions.set(r,i)}keys(r){let i=[];for(let[e,n]of this.utilities.entries())for(let s of n)if(s.kind===r){i.push(e);break}return i}};function S(t,r,i){return F("@property",t,[o("syntax",i?`"${i}"`:'"*"'),o("inherits","false"),...r?[o("initial-value",r)]:[]])}function Q(t,r){if(r===null)return t;let i=Number(r);return Number.isNaN(i)||(r=`${i*100}%`),r==="100%"?t:`color-mix(in oklab, ${t} ${r}, transparent)`}function Ir(t,r){let i=Number(r);return Number.isNaN(i)||(r=`${i*100}%`),`oklab(from ${t} l a b / ${r})`}function X(t,r,i){if(!r)return t;if(r.kind==="arbitrary")return Q(t,r.value);let e=i.resolve(r.value,["--opacity"]);return e?Q(t,e):et(r.value)?Q(t,`${r.value}%`):null}function te(t,r,i){let e=null;switch(t.value.value){case"inherit":{e="inherit";break}case"transparent":{e="transparent";break}case"current":{e="currentcolor";break}default:{e=r.resolve(t.value.value,i);break}}return e?X(e,t.modifier,r):null}var _r=/(\d+)_(\d+)/g;function Dr(t){let r=new Ut;function i(l,g){function*v(b){for(let T of t.keysInNamespaces(b))yield T.replace(_r,(D,V,R)=>`${V}.${R}`)}let C=["1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12"];r.suggest(l,()=>{let b=[];for(let T of g()){if(typeof T=="string"){b.push({values:[T],modifiers:[]});continue}let D=[...T.values??[],...v(T.valueThemeKeys??[])],V=[...T.modifiers??[],...v(T.modifierThemeKeys??[])];T.supportsFractions&&D.push(...C),T.hasDefaultValue&&D.unshift(null),b.push({supportsNegative:T.supportsNegative,values:D,modifiers:V})}return b})}function e(l,g){r.static(l,()=>g.map(v=>typeof v=="function"?v():o(v[0],v[1])))}function n(l,g){function v({negative:C}){return b=>{let T=null,D=null;if(b.value)if(b.value.kind==="arbitrary"){if(b.modifier)return;T=b.value.value,D=b.value.dataType}else{if(T=t.resolve(b.value.fraction??b.value.value,g.themeKeys??[]),T===null&&g.supportsFractions&&b.value.fraction){let[V,R]=j(b.value.fraction,"/");if(!P(V)||!P(R))return;T=`calc(${b.value.fraction} * 100%)`}if(T===null&&C&&g.handleNegativeBareValue){if(T=g.handleNegativeBareValue(b.value),!T?.includes("/")&&b.modifier)return;if(T!==null)return g.handle(T,null)}if(T===null&&g.handleBareValue&&(T=g.handleBareValue(b.value),!T?.includes("/")&&b.modifier))return;if(T===null&&!C&&g.staticValues&&!b.modifier){let V=g.staticValues[b.value.value];if(V)return V.map(ee)}}else{if(b.modifier)return;T=g.defaultValue!==void 0?g.defaultValue:t.resolve(null,g.themeKeys??[])}if(T!==null)return g.handle(C?`calc(${T} * -1)`:T,D)}}if(g.supportsNegative&&r.functional(`-${l}`,v({negative:!0})),r.functional(l,v({negative:!1})),i(l,()=>[{supportsNegative:g.supportsNegative,valueThemeKeys:g.themeKeys??[],hasDefaultValue:g.defaultValue!==void 0&&g.defaultValue!==null,supportsFractions:g.supportsFractions}]),g.staticValues&&Object.keys(g.staticValues).length>0){let C=Object.keys(g.staticValues);i(l,()=>[{values:C}])}}function s(l,g){r.functional(l,v=>{if(!v.value)return;let C=null;if(v.value.kind==="arbitrary"?(C=v.value.value,C=X(C,v.modifier,t)):C=te(v,t,g.themeKeys),C!==null)return g.handle(C)}),i(l,()=>[{values:["current","inherit","transparent"],valueThemeKeys:g.themeKeys,modifiers:Array.from({length:21},(v,C)=>`${C*5}`)}])}function a(l,g,v,{supportsNegative:C=!1,supportsFractions:b=!1,staticValues:T}={}){C&&r.static(`-${l}-px`,()=>v("-1px")),r.static(`${l}-px`,()=>v("1px")),n(l,{themeKeys:g,supportsFractions:b,supportsNegative:C,defaultValue:null,handleBareValue:({value:D})=>{let V=t.resolve(null,["--spacing"]);return!V||!ie(D)?null:`calc(${V} * ${D})`},handleNegativeBareValue:({value:D})=>{let V=t.resolve(null,["--spacing"]);return!V||!ie(D)?null:`calc(${V} * -${D})`},handle:v,staticValues:T}),i(l,()=>[{values:t.get(["--spacing"])?ct:[],supportsNegative:C,supportsFractions:b,valueThemeKeys:g}])}e("sr-only",[["position","absolute"],["width","1px"],["height","1px"],["padding","0"],["margin","-1px"],["overflow","hidden"],["clip-path","inset(50%)"],["white-space","nowrap"],["border-width","0"]]),e("not-sr-only",[["position","static"],["width","auto"],["height","auto"],["padding","0"],["margin","0"],["overflow","visible"],["clip-path","none"],["white-space","normal"]]),e("pointer-events-none",[["pointer-events","none"]]),e("pointer-events-auto",[["pointer-events","auto"]]),e("visible",[["visibility","visible"]]),e("invisible",[["visibility","hidden"]]),e("collapse",[["visibility","collapse"]]),e("static",[["position","static"]]),e("fixed",[["position","fixed"]]),e("absolute",[["position","absolute"]]),e("relative",[["position","relative"]]),e("sticky",[["position","sticky"]]);for(let[l,g]of[["inset","inset"],["inset-x","inset-inline"],["inset-y","inset-block"],["start","inset-inline-start"],["end","inset-inline-end"],["top","top"],["right","right"],["bottom","bottom"],["left","left"]])e(`${l}-auto`,[[g,"auto"]]),e(`${l}-full`,[[g,"100%"]]),e(`-${l}-full`,[[g,"-100%"]]),a(l,["--inset","--spacing"],v=>[o(g,v)],{supportsNegative:!0,supportsFractions:!0});e("isolate",[["isolation","isolate"]]),e("isolation-auto",[["isolation","auto"]]),n("z",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--z-index"],handle:l=>[o("z-index",l)],staticValues:{auto:[o("z-index","auto")]}}),i("z",()=>[{supportsNegative:!0,values:["0","10","20","30","40","50"],valueThemeKeys:["--z-index"]}]),n("order",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--order"],handle:l=>[o("order",l)],staticValues:{first:[o("order","-9999")],last:[o("order","9999")]}}),i("order",()=>[{supportsNegative:!0,values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:["--order"]}]),n("col",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-column"],handle:l=>[o("grid-column",l)],staticValues:{auto:[o("grid-column","auto")]}}),n("col-span",{handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("grid-column",`span ${l} / span ${l}`)],staticValues:{full:[o("grid-column","1 / -1")]}}),n("col-start",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-column-start"],handle:l=>[o("grid-column-start",l)],staticValues:{auto:[o("grid-column-start","auto")]}}),n("col-end",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-column-end"],handle:l=>[o("grid-column-end",l)],staticValues:{auto:[o("grid-column-end","auto")]}}),i("col-span",()=>[{values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:[]}]),i("col-start",()=>[{supportsNegative:!0,values:Array.from({length:13},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-column-start"]}]),i("col-end",()=>[{supportsNegative:!0,values:Array.from({length:13},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-column-end"]}]),n("row",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-row"],handle:l=>[o("grid-row",l)],staticValues:{auto:[o("grid-row","auto")]}}),n("row-span",{themeKeys:[],handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("grid-row",`span ${l} / span ${l}`)],staticValues:{full:[o("grid-row","1 / -1")]}}),n("row-start",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-row-start"],handle:l=>[o("grid-row-start",l)],staticValues:{auto:[o("grid-row-start","auto")]}}),n("row-end",{supportsNegative:!0,handleBareValue:({value:l})=>P(l)?l:null,themeKeys:["--grid-row-end"],handle:l=>[o("grid-row-end",l)],staticValues:{auto:[o("grid-row-end","auto")]}}),i("row-span",()=>[{values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:[]}]),i("row-start",()=>[{supportsNegative:!0,values:Array.from({length:13},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-row-start"]}]),i("row-end",()=>[{supportsNegative:!0,values:Array.from({length:13},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-row-end"]}]),e("float-start",[["float","inline-start"]]),e("float-end",[["float","inline-end"]]),e("float-right",[["float","right"]]),e("float-left",[["float","left"]]),e("float-none",[["float","none"]]),e("clear-start",[["clear","inline-start"]]),e("clear-end",[["clear","inline-end"]]),e("clear-right",[["clear","right"]]),e("clear-left",[["clear","left"]]),e("clear-both",[["clear","both"]]),e("clear-none",[["clear","none"]]);for(let[l,g]of[["m","margin"],["mx","margin-inline"],["my","margin-block"],["ms","margin-inline-start"],["me","margin-inline-end"],["mt","margin-top"],["mr","margin-right"],["mb","margin-bottom"],["ml","margin-left"]])e(`${l}-auto`,[[g,"auto"]]),a(l,["--margin","--spacing"],v=>[o(g,v)],{supportsNegative:!0});e("box-border",[["box-sizing","border-box"]]),e("box-content",[["box-sizing","content-box"]]),n("line-clamp",{themeKeys:["--line-clamp"],handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("overflow","hidden"),o("display","-webkit-box"),o("-webkit-box-orient","vertical"),o("-webkit-line-clamp",l)],staticValues:{none:[o("overflow","visible"),o("display","block"),o("-webkit-box-orient","horizontal"),o("-webkit-line-clamp","unset")]}}),i("line-clamp",()=>[{values:["1","2","3","4","5","6"],valueThemeKeys:["--line-clamp"]}]),e("block",[["display","block"]]),e("inline-block",[["display","inline-block"]]),e("inline",[["display","inline"]]),e("hidden",[["display","none"]]),e("inline-flex",[["display","inline-flex"]]),e("table",[["display","table"]]),e("inline-table",[["display","inline-table"]]),e("table-caption",[["display","table-caption"]]),e("table-cell",[["display","table-cell"]]),e("table-column",[["display","table-column"]]),e("table-column-group",[["display","table-column-group"]]),e("table-footer-group",[["display","table-footer-group"]]),e("table-header-group",[["display","table-header-group"]]),e("table-row-group",[["display","table-row-group"]]),e("table-row",[["display","table-row"]]),e("flow-root",[["display","flow-root"]]),e("flex",[["display","flex"]]),e("grid",[["display","grid"]]),e("inline-grid",[["display","inline-grid"]]),e("contents",[["display","contents"]]),e("list-item",[["display","list-item"]]),e("field-sizing-content",[["field-sizing","content"]]),e("field-sizing-fixed",[["field-sizing","fixed"]]),n("aspect",{themeKeys:["--aspect"],handleBareValue:({fraction:l})=>{if(l===null)return null;let[g,v]=j(l,"/");return!P(g)||!P(v)?null:l},handle:l=>[o("aspect-ratio",l)],staticValues:{auto:[o("aspect-ratio","auto")],square:[o("aspect-ratio","1 / 1")]}});for(let[l,g]of[["full","100%"],["svw","100svw"],["lvw","100lvw"],["dvw","100dvw"],["svh","100svh"],["lvh","100lvh"],["dvh","100dvh"],["min","min-content"],["max","max-content"],["fit","fit-content"]])e(`size-${l}`,[["--tw-sort","size"],["width",g],["height",g]]),e(`w-${l}`,[["width",g]]),e(`h-${l}`,[["height",g]]),e(`min-w-${l}`,[["min-width",g]]),e(`min-h-${l}`,[["min-height",g]]),e(`max-w-${l}`,[["max-width",g]]),e(`max-h-${l}`,[["max-height",g]]);e("size-auto",[["--tw-sort","size"],["width","auto"],["height","auto"]]),e("w-auto",[["width","auto"]]),e("h-auto",[["height","auto"]]),e("min-w-auto",[["min-width","auto"]]),e("min-h-auto",[["min-height","auto"]]),e("h-lh",[["height","1lh"]]),e("min-h-lh",[["min-height","1lh"]]),e("max-h-lh",[["max-height","1lh"]]),e("w-screen",[["width","100vw"]]),e("min-w-screen",[["min-width","100vw"]]),e("max-w-screen",[["max-width","100vw"]]),e("h-screen",[["height","100vh"]]),e("min-h-screen",[["min-height","100vh"]]),e("max-h-screen",[["max-height","100vh"]]),e("max-w-none",[["max-width","none"]]),e("max-h-none",[["max-height","none"]]),a("size",["--size","--spacing"],l=>[o("--tw-sort","size"),o("width",l),o("height",l)],{supportsFractions:!0});for(let[l,g,v]of[["w",["--width","--spacing","--container"],"width"],["min-w",["--min-width","--spacing","--container"],"min-width"],["max-w",["--max-width","--spacing","--container"],"max-width"],["h",["--height","--spacing"],"height"],["min-h",["--min-height","--height","--spacing"],"min-height"],["max-h",["--max-height","--height","--spacing"],"max-height"]])a(l,g,C=>[o(v,C)],{supportsFractions:!0});r.static("container",()=>{let l=[...t.namespace("--breakpoint").values()];l.sort((v,C)=>Ve(v,C,"asc"));let g=[o("--tw-sort","--tw-container-component"),o("width","100%")];for(let v of l)g.push(F("@media",`(width >= ${v})`,[o("max-width",v)]));return g}),e("flex-auto",[["flex","auto"]]),e("flex-initial",[["flex","0 auto"]]),e("flex-none",[["flex","none"]]),r.functional("flex",l=>{if(l.value){if(l.value.kind==="arbitrary")return l.modifier?void 0:[o("flex",l.value.value)];if(l.value.fraction){let[g,v]=j(l.value.fraction,"/");return!P(g)||!P(v)?void 0:[o("flex",`calc(${l.value.fraction} * 100%)`)]}if(P(l.value.value))return l.modifier?void 0:[o("flex",l.value.value)]}}),i("flex",()=>[{supportsFractions:!0},{values:Array.from({length:12},(l,g)=>`${g+1}`)}]),n("shrink",{defaultValue:"1",handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("flex-shrink",l)]}),n("grow",{defaultValue:"1",handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("flex-grow",l)]}),i("shrink",()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}]),i("grow",()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}]),e("basis-auto",[["flex-basis","auto"]]),e("basis-full",[["flex-basis","100%"]]),a("basis",["--flex-basis","--spacing","--container"],l=>[o("flex-basis",l)],{supportsFractions:!0}),e("table-auto",[["table-layout","auto"]]),e("table-fixed",[["table-layout","fixed"]]),e("caption-top",[["caption-side","top"]]),e("caption-bottom",[["caption-side","bottom"]]),e("border-collapse",[["border-collapse","collapse"]]),e("border-separate",[["border-collapse","separate"]]);let p=()=>W([S("--tw-border-spacing-x","0","<length>"),S("--tw-border-spacing-y","0","<length>")]);a("border-spacing",["--border-spacing","--spacing"],l=>[p(),o("--tw-border-spacing-x",l),o("--tw-border-spacing-y",l),o("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),a("border-spacing-x",["--border-spacing","--spacing"],l=>[p(),o("--tw-border-spacing-x",l),o("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),a("border-spacing-y",["--border-spacing","--spacing"],l=>[p(),o("--tw-border-spacing-y",l),o("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),n("origin",{themeKeys:["--transform-origin"],handle:l=>[o("transform-origin",l)],staticValues:{center:[o("transform-origin","center")],top:[o("transform-origin","top")],"top-right":[o("transform-origin","100% 0")],right:[o("transform-origin","100%")],"bottom-right":[o("transform-origin","100% 100%")],bottom:[o("transform-origin","bottom")],"bottom-left":[o("transform-origin","0 100%")],left:[o("transform-origin","0")],"top-left":[o("transform-origin","0 0")]}}),n("perspective-origin",{themeKeys:["--perspective-origin"],handle:l=>[o("perspective-origin",l)],staticValues:{center:[o("perspective-origin","center")],top:[o("perspective-origin","top")],"top-right":[o("perspective-origin","100% 0")],right:[o("perspective-origin","100%")],"bottom-right":[o("perspective-origin","100% 100%")],bottom:[o("perspective-origin","bottom")],"bottom-left":[o("perspective-origin","0 100%")],left:[o("perspective-origin","0")],"top-left":[o("perspective-origin","0 0")]}}),n("perspective",{themeKeys:["--perspective"],handle:l=>[o("perspective",l)],staticValues:{none:[o("perspective","none")]}});let u=()=>W([S("--tw-translate-x","0"),S("--tw-translate-y","0"),S("--tw-translate-z","0")]);e("translate-none",[["translate","none"]]),e("-translate-full",[u,["--tw-translate-x","-100%"],["--tw-translate-y","-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),e("translate-full",[u,["--tw-translate-x","100%"],["--tw-translate-y","100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),a("translate",["--translate","--spacing"],l=>[u(),o("--tw-translate-x",l),o("--tw-translate-y",l),o("translate","var(--tw-translate-x) var(--tw-translate-y)")],{supportsNegative:!0,supportsFractions:!0});for(let l of["x","y"])e(`-translate-${l}-full`,[u,[`--tw-translate-${l}`,"-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),e(`translate-${l}-full`,[u,[`--tw-translate-${l}`,"100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),a(`translate-${l}`,["--translate","--spacing"],g=>[u(),o(`--tw-translate-${l}`,g),o("translate","var(--tw-translate-x) var(--tw-translate-y)")],{supportsNegative:!0,supportsFractions:!0});a("translate-z",["--translate","--spacing"],l=>[u(),o("--tw-translate-z",l),o("translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)")],{supportsNegative:!0}),e("translate-3d",[u,["translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)"]]);let f=()=>W([S("--tw-scale-x","1"),S("--tw-scale-y","1"),S("--tw-scale-z","1")]);e("scale-none",[["scale","none"]]);function m({negative:l}){return g=>{if(!g.value||g.modifier)return;let v;return g.value.kind==="arbitrary"?(v=g.value.value,v=l?`calc(${v} * -1)`:v,[o("scale",v)]):(v=t.resolve(g.value.value,["--scale"]),!v&&P(g.value.value)&&(v=`${g.value.value}%`),v?(v=l?`calc(${v} * -1)`:v,[f(),o("--tw-scale-x",v),o("--tw-scale-y",v),o("--tw-scale-z",v),o("scale","var(--tw-scale-x) var(--tw-scale-y)")]):void 0)}}r.functional("-scale",m({negative:!0})),r.functional("scale",m({negative:!1})),i("scale",()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]);for(let l of["x","y","z"])n(`scale-${l}`,{supportsNegative:!0,themeKeys:["--scale"],handleBareValue:({value:g})=>P(g)?`${g}%`:null,handle:g=>[f(),o(`--tw-scale-${l}`,g),o("scale",`var(--tw-scale-x) var(--tw-scale-y)${l==="z"?" var(--tw-scale-z)":""}`)]}),i(`scale-${l}`,()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]);e("scale-3d",[f,["scale","var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)"]]),e("rotate-none",[["rotate","none"]]);function d({negative:l}){return g=>{if(!g.value||g.modifier)return;let v;if(g.value.kind==="arbitrary"){v=g.value.value;let C=g.value.dataType??H(v,["angle","vector"]);if(C==="vector")return[o("rotate",`${v} var(--tw-rotate)`)];if(C!=="angle")return[o("rotate",l?`calc(${v} * -1)`:v)]}else if(v=t.resolve(g.value.value,["--rotate"]),!v&&P(g.value.value)&&(v=`${g.value.value}deg`),!v)return;return[o("rotate",l?`calc(${v} * -1)`:v)]}}r.functional("-rotate",d({negative:!0})),r.functional("rotate",d({negative:!1})),i("rotate",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]);{let l=["var(--tw-rotate-x,)","var(--tw-rotate-y,)","var(--tw-rotate-z,)","var(--tw-skew-x,)","var(--tw-skew-y,)"].join(" "),g=()=>W([S("--tw-rotate-x"),S("--tw-rotate-y"),S("--tw-rotate-z"),S("--tw-skew-x"),S("--tw-skew-y")]);for(let v of["x","y","z"])n(`rotate-${v}`,{supportsNegative:!0,themeKeys:["--rotate"],handleBareValue:({value:C})=>P(C)?`${C}deg`:null,handle:C=>[g(),o(`--tw-rotate-${v}`,`rotate${v.toUpperCase()}(${C})`),o("transform",l)]}),i(`rotate-${v}`,()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]);n("skew",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>P(v)?`${v}deg`:null,handle:v=>[g(),o("--tw-skew-x",`skewX(${v})`),o("--tw-skew-y",`skewY(${v})`),o("transform",l)]}),n("skew-x",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>P(v)?`${v}deg`:null,handle:v=>[g(),o("--tw-skew-x",`skewX(${v})`),o("transform",l)]}),n("skew-y",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>P(v)?`${v}deg`:null,handle:v=>[g(),o("--tw-skew-y",`skewY(${v})`),o("transform",l)]}),i("skew",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),i("skew-x",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),i("skew-y",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),r.functional("transform",v=>{if(v.modifier)return;let C=null;if(v.value?v.value.kind==="arbitrary"&&(C=v.value.value):C=l,C!==null)return[g(),o("transform",C)]}),i("transform",()=>[{hasDefaultValue:!0}]),e("transform-cpu",[["transform",l]]),e("transform-gpu",[["transform",`translateZ(0) ${l}`]]),e("transform-none",[["transform","none"]])}e("transform-flat",[["transform-style","flat"]]),e("transform-3d",[["transform-style","preserve-3d"]]),e("transform-content",[["transform-box","content-box"]]),e("transform-border",[["transform-box","border-box"]]),e("transform-fill",[["transform-box","fill-box"]]),e("transform-stroke",[["transform-box","stroke-box"]]),e("transform-view",[["transform-box","view-box"]]),e("backface-visible",[["backface-visibility","visible"]]),e("backface-hidden",[["backface-visibility","hidden"]]);for(let l of["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out"])e(`cursor-${l}`,[["cursor",l]]);n("cursor",{themeKeys:["--cursor"],handle:l=>[o("cursor",l)]});for(let l of["auto","none","manipulation"])e(`touch-${l}`,[["touch-action",l]]);let c=()=>W([S("--tw-pan-x"),S("--tw-pan-y"),S("--tw-pinch-zoom")]);for(let l of["x","left","right"])e(`touch-pan-${l}`,[c,["--tw-pan-x",`pan-${l}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let l of["y","up","down"])e(`touch-pan-${l}`,[c,["--tw-pan-y",`pan-${l}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);e("touch-pinch-zoom",[c,["--tw-pinch-zoom","pinch-zoom"],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let l of["none","text","all","auto"])e(`select-${l}`,[["-webkit-user-select",l],["user-select",l]]);e("resize-none",[["resize","none"]]),e("resize-x",[["resize","horizontal"]]),e("resize-y",[["resize","vertical"]]),e("resize",[["resize","both"]]),e("snap-none",[["scroll-snap-type","none"]]);let w=()=>W([S("--tw-scroll-snap-strictness","proximity","*")]);for(let l of["x","y","both"])e(`snap-${l}`,[w,["scroll-snap-type",`${l} var(--tw-scroll-snap-strictness)`]]);e("snap-mandatory",[w,["--tw-scroll-snap-strictness","mandatory"]]),e("snap-proximity",[w,["--tw-scroll-snap-strictness","proximity"]]),e("snap-align-none",[["scroll-snap-align","none"]]),e("snap-start",[["scroll-snap-align","start"]]),e("snap-end",[["scroll-snap-align","end"]]),e("snap-center",[["scroll-snap-align","center"]]),e("snap-normal",[["scroll-snap-stop","normal"]]),e("snap-always",[["scroll-snap-stop","always"]]);for(let[l,g]of[["scroll-m","scroll-margin"],["scroll-mx","scroll-margin-inline"],["scroll-my","scroll-margin-block"],["scroll-ms","scroll-margin-inline-start"],["scroll-me","scroll-margin-inline-end"],["scroll-mt","scroll-margin-top"],["scroll-mr","scroll-margin-right"],["scroll-mb","scroll-margin-bottom"],["scroll-ml","scroll-margin-left"]])a(l,["--scroll-margin","--spacing"],v=>[o(g,v)],{supportsNegative:!0});for(let[l,g]of[["scroll-p","scroll-padding"],["scroll-px","scroll-padding-inline"],["scroll-py","scroll-padding-block"],["scroll-ps","scroll-padding-inline-start"],["scroll-pe","scroll-padding-inline-end"],["scroll-pt","scroll-padding-top"],["scroll-pr","scroll-padding-right"],["scroll-pb","scroll-padding-bottom"],["scroll-pl","scroll-padding-left"]])a(l,["--scroll-padding","--spacing"],v=>[o(g,v)]);e("list-inside",[["list-style-position","inside"]]),e("list-outside",[["list-style-position","outside"]]),n("list",{themeKeys:["--list-style-type"],handle:l=>[o("list-style-type",l)],staticValues:{none:[o("list-style-type","none")],disc:[o("list-style-type","disc")],decimal:[o("list-style-type","decimal")]}}),n("list-image",{themeKeys:["--list-style-image"],handle:l=>[o("list-style-image",l)],staticValues:{none:[o("list-style-image","none")]}}),e("appearance-none",[["appearance","none"]]),e("appearance-auto",[["appearance","auto"]]),e("scheme-normal",[["color-scheme","normal"]]),e("scheme-dark",[["color-scheme","dark"]]),e("scheme-light",[["color-scheme","light"]]),e("scheme-light-dark",[["color-scheme","light dark"]]),e("scheme-only-dark",[["color-scheme","only dark"]]),e("scheme-only-light",[["color-scheme","only light"]]),n("columns",{themeKeys:["--columns","--container"],handleBareValue:({value:l})=>P(l)?l:null,handle:l=>[o("columns",l)],staticValues:{auto:[o("columns","auto")]}}),i("columns",()=>[{values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:["--columns","--container"]}]);for(let l of["auto","avoid","all","avoid-page","page","left","right","column"])e(`break-before-${l}`,[["break-before",l]]);for(let l of["auto","avoid","avoid-page","avoid-column"])e(`break-inside-${l}`,[["break-inside",l]]);for(let l of["auto","avoid","all","avoid-page","page","left","right","column"])e(`break-after-${l}`,[["break-after",l]]);e("grid-flow-row",[["grid-auto-flow","row"]]),e("grid-flow-col",[["grid-auto-flow","column"]]),e("grid-flow-dense",[["grid-auto-flow","dense"]]),e("grid-flow-row-dense",[["grid-auto-flow","row dense"]]),e("grid-flow-col-dense",[["grid-auto-flow","column dense"]]),n("auto-cols",{themeKeys:["--grid-auto-columns"],handle:l=>[o("grid-auto-columns",l)],staticValues:{auto:[o("grid-auto-columns","auto")],min:[o("grid-auto-columns","min-content")],max:[o("grid-auto-columns","max-content")],fr:[o("grid-auto-columns","minmax(0, 1fr)")]}}),n("auto-rows",{themeKeys:["--grid-auto-rows"],handle:l=>[o("grid-auto-rows",l)],staticValues:{auto:[o("grid-auto-rows","auto")],min:[o("grid-auto-rows","min-content")],max:[o("grid-auto-rows","max-content")],fr:[o("grid-auto-rows","minmax(0, 1fr)")]}}),n("grid-cols",{themeKeys:["--grid-template-columns"],handleBareValue:({value:l})=>Ct(l)?`repeat(${l}, minmax(0, 1fr))`:null,handle:l=>[o("grid-template-columns",l)],staticValues:{none:[o("grid-template-columns","none")],subgrid:[o("grid-template-columns","subgrid")]}}),n("grid-rows",{themeKeys:["--grid-template-rows"],handleBareValue:({value:l})=>Ct(l)?`repeat(${l}, minmax(0, 1fr))`:null,handle:l=>[o("grid-template-rows",l)],staticValues:{none:[o("grid-template-rows","none")],subgrid:[o("grid-template-rows","subgrid")]}}),i("grid-cols",()=>[{values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-template-columns"]}]),i("grid-rows",()=>[{values:Array.from({length:12},(l,g)=>`${g+1}`),valueThemeKeys:["--grid-template-rows"]}]),e("flex-row",[["flex-direction","row"]]),e("flex-row-reverse",[["flex-direction","row-reverse"]]),e("flex-col",[["flex-direction","column"]]),e("flex-col-reverse",[["flex-direction","column-reverse"]]),e("flex-wrap",[["flex-wrap","wrap"]]),e("flex-nowrap",[["flex-wrap","nowrap"]]),e("flex-wrap-reverse",[["flex-wrap","wrap-reverse"]]),e("place-content-center",[["place-content","center"]]),e("place-content-start",[["place-content","start"]]),e("place-content-end",[["place-content","end"]]),e("place-content-center-safe",[["place-content","safe center"]]),e("place-content-end-safe",[["place-content","safe end"]]),e("place-content-between",[["place-content","space-between"]]),e("place-content-around",[["place-content","space-around"]]),e("place-content-evenly",[["place-content","space-evenly"]]),e("place-content-baseline",[["place-content","baseline"]]),e("place-content-stretch",[["place-content","stretch"]]),e("place-items-center",[["place-items","center"]]),e("place-items-start",[["place-items","start"]]),e("place-items-end",[["place-items","end"]]),e("place-items-center-safe",[["place-items","safe center"]]),e("place-items-end-safe",[["place-items","safe end"]]),e("place-items-baseline",[["place-items","baseline"]]),e("place-items-stretch",[["place-items","stretch"]]),e("content-normal",[["align-content","normal"]]),e("content-center",[["align-content","center"]]),e("content-start",[["align-content","flex-start"]]),e("content-end",[["align-content","flex-end"]]),e("content-center-safe",[["align-content","safe center"]]),e("content-end-safe",[["align-content","safe flex-end"]]),e("content-between",[["align-content","space-between"]]),e("content-around",[["align-content","space-around"]]),e("content-evenly",[["align-content","space-evenly"]]),e("content-baseline",[["align-content","baseline"]]),e("content-stretch",[["align-content","stretch"]]),e("items-center",[["align-items","center"]]),e("items-start",[["align-items","flex-start"]]),e("items-end",[["align-items","flex-end"]]),e("items-center-safe",[["align-items","safe center"]]),e("items-end-safe",[["align-items","safe flex-end"]]),e("items-baseline",[["align-items","baseline"]]),e("items-baseline-last",[["align-items","last baseline"]]),e("items-stretch",[["align-items","stretch"]]),e("justify-normal",[["justify-content","normal"]]),e("justify-center",[["justify-content","center"]]),e("justify-start",[["justify-content","flex-start"]]),e("justify-end",[["justify-content","flex-end"]]),e("justify-center-safe",[["justify-content","safe center"]]),e("justify-end-safe",[["justify-content","safe flex-end"]]),e("justify-between",[["justify-content","space-between"]]),e("justify-around",[["justify-content","space-around"]]),e("justify-evenly",[["justify-content","space-evenly"]]),e("justify-baseline",[["justify-content","baseline"]]),e("justify-stretch",[["justify-content","stretch"]]),e("justify-items-normal",[["justify-items","normal"]]),e("justify-items-center",[["justify-items","center"]]),e("justify-items-start",[["justify-items","start"]]),e("justify-items-end",[["justify-items","end"]]),e("justify-items-center-safe",[["justify-items","safe center"]]),e("justify-items-end-safe",[["justify-items","safe end"]]),e("justify-items-stretch",[["justify-items","stretch"]]),a("gap",["--gap","--spacing"],l=>[o("gap",l)]),a("gap-x",["--gap","--spacing"],l=>[o("column-gap",l)]),a("gap-y",["--gap","--spacing"],l=>[o("row-gap",l)]),a("space-x",["--space","--spacing"],l=>[W([S("--tw-space-x-reverse","0")]),G(":where(& > :not(:last-child))",[o("--tw-sort","row-gap"),o("--tw-space-x-reverse","0"),o("margin-inline-start",`calc(${l} * var(--tw-space-x-reverse))`),o("margin-inline-end",`calc(${l} * calc(1 - var(--tw-space-x-reverse)))`)])],{supportsNegative:!0}),a("space-y",["--space","--spacing"],l=>[W([S("--tw-space-y-reverse","0")]),G(":where(& > :not(:last-child))",[o("--tw-sort","column-gap"),o("--tw-space-y-reverse","0"),o("margin-block-start",`calc(${l} * var(--tw-space-y-reverse))`),o("margin-block-end",`calc(${l} * calc(1 - var(--tw-space-y-reverse)))`)])],{supportsNegative:!0}),e("space-x-reverse",[()=>W([S("--tw-space-x-reverse","0")]),()=>G(":where(& > :not(:last-child))",[o("--tw-sort","row-gap"),o("--tw-space-x-reverse","1")])]),e("space-y-reverse",[()=>W([S("--tw-space-y-reverse","0")]),()=>G(":where(& > :not(:last-child))",[o("--tw-sort","column-gap"),o("--tw-space-y-reverse","1")])]),e("accent-auto",[["accent-color","auto"]]),s("accent",{themeKeys:["--accent-color","--color"],handle:l=>[o("accent-color",l)]}),s("caret",{themeKeys:["--caret-color","--color"],handle:l=>[o("caret-color",l)]}),s("divide",{themeKeys:["--divide-color","--border-color","--color"],handle:l=>[G(":where(& > :not(:last-child))",[o("--tw-sort","divide-color"),o("border-color",l)])]}),e("place-self-auto",[["place-self","auto"]]),e("place-self-start",[["place-self","start"]]),e("place-self-end",[["place-self","end"]]),e("place-self-center",[["place-self","center"]]),e("place-self-end-safe",[["place-self","safe end"]]),e("place-self-center-safe",[["place-self","safe center"]]),e("place-self-stretch",[["place-self","stretch"]]),e("self-auto",[["align-self","auto"]]),e("self-start",[["align-self","flex-start"]]),e("self-end",[["align-self","flex-end"]]),e("self-center",[["align-self","center"]]),e("self-end-safe",[["align-self","safe flex-end"]]),e("self-center-safe",[["align-self","safe center"]]),e("self-stretch",[["align-self","stretch"]]),e("self-baseline",[["align-self","baseline"]]),e("self-baseline-last",[["align-self","last baseline"]]),e("justify-self-auto",[["justify-self","auto"]]),e("justify-self-start",[["justify-self","flex-start"]]),e("justify-self-end",[["justify-self","flex-end"]]),e("justify-self-center",[["justify-self","center"]]),e("justify-self-end-safe",[["justify-self","safe flex-end"]]),e("justify-self-center-safe",[["justify-self","safe center"]]),e("justify-self-stretch",[["justify-self","stretch"]]);for(let l of["auto","hidden","clip","visible","scroll"])e(`overflow-${l}`,[["overflow",l]]),e(`overflow-x-${l}`,[["overflow-x",l]]),e(`overflow-y-${l}`,[["overflow-y",l]]);for(let l of["auto","contain","none"])e(`overscroll-${l}`,[["overscroll-behavior",l]]),e(`overscroll-x-${l}`,[["overscroll-behavior-x",l]]),e(`overscroll-y-${l}`,[["overscroll-behavior-y",l]]);e("scroll-auto",[["scroll-behavior","auto"]]),e("scroll-smooth",[["scroll-behavior","smooth"]]),e("truncate",[["overflow","hidden"],["text-overflow","ellipsis"],["white-space","nowrap"]]),e("text-ellipsis",[["text-overflow","ellipsis"]]),e("text-clip",[["text-overflow","clip"]]),e("hyphens-none",[["-webkit-hyphens","none"],["hyphens","none"]]),e("hyphens-manual",[["-webkit-hyphens","manual"],["hyphens","manual"]]),e("hyphens-auto",[["-webkit-hyphens","auto"],["hyphens","auto"]]),e("whitespace-normal",[["white-space","normal"]]),e("whitespace-nowrap",[["white-space","nowrap"]]),e("whitespace-pre",[["white-space","pre"]]),e("whitespace-pre-line",[["white-space","pre-line"]]),e("whitespace-pre-wrap",[["white-space","pre-wrap"]]),e("whitespace-break-spaces",[["white-space","break-spaces"]]),e("text-wrap",[["text-wrap","wrap"]]),e("text-nowrap",[["text-wrap","nowrap"]]),e("text-balance",[["text-wrap","balance"]]),e("text-pretty",[["text-wrap","pretty"]]),e("break-normal",[["overflow-wrap","normal"],["word-break","normal"]]),e("break-all",[["word-break","break-all"]]),e("break-keep",[["word-break","keep-all"]]),e("wrap-anywhere",[["overflow-wrap","anywhere"]]),e("wrap-break-word",[["overflow-wrap","break-word"]]),e("wrap-normal",[["overflow-wrap","normal"]]);for(let[l,g]of[["rounded",["border-radius"]],["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]],["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]])n(l,{themeKeys:["--radius"],handle:v=>g.map(C=>o(C,v)),staticValues:{none:g.map(v=>o(v,"0")),full:g.map(v=>o(v,"calc(infinity * 1px)"))}});e("border-solid",[["--tw-border-style","solid"],["border-style","solid"]]),e("border-dashed",[["--tw-border-style","dashed"],["border-style","dashed"]]),e("border-dotted",[["--tw-border-style","dotted"],["border-style","dotted"]]),e("border-double",[["--tw-border-style","double"],["border-style","double"]]),e("border-hidden",[["--tw-border-style","hidden"],["border-style","hidden"]]),e("border-none",[["--tw-border-style","none"],["border-style","none"]]);{let g=function(v,C){r.functional(v,b=>{if(!b.value){if(b.modifier)return;let T=t.get(["--default-border-width"])??"1px",D=C.width(T);return D?[l(),...D]:void 0}if(b.value.kind==="arbitrary"){let T=b.value.value;switch(b.value.dataType??H(T,["color","line-width","length"])){case"line-width":case"length":{if(b.modifier)return;let V=C.width(T);return V?[l(),...V]:void 0}default:return T=X(T,b.modifier,t),T===null?void 0:C.color(T)}}{let T=te(b,t,["--border-color","--color"]);if(T)return C.color(T)}{if(b.modifier)return;let T=t.resolve(b.value.value,["--border-width"]);if(T){let D=C.width(T);return D?[l(),...D]:void 0}if(P(b.value.value)){let D=C.width(`${b.value.value}px`);return D?[l(),...D]:void 0}}}),i(v,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--border-color","--color"],modifiers:Array.from({length:21},(b,T)=>`${T*5}`),hasDefaultValue:!0},{values:["0","2","4","8"],valueThemeKeys:["--border-width"]}])};var _=g;let l=()=>W([S("--tw-border-style","solid")]);g("border",{width:v=>[o("border-style","var(--tw-border-style)"),o("border-width",v)],color:v=>[o("border-color",v)]}),g("border-x",{width:v=>[o("border-inline-style","var(--tw-border-style)"),o("border-inline-width",v)],color:v=>[o("border-inline-color",v)]}),g("border-y",{width:v=>[o("border-block-style","var(--tw-border-style)"),o("border-block-width",v)],color:v=>[o("border-block-color",v)]}),g("border-s",{width:v=>[o("border-inline-start-style","var(--tw-border-style)"),o("border-inline-start-width",v)],color:v=>[o("border-inline-start-color",v)]}),g("border-e",{width:v=>[o("border-inline-end-style","var(--tw-border-style)"),o("border-inline-end-width",v)],color:v=>[o("border-inline-end-color",v)]}),g("border-t",{width:v=>[o("border-top-style","var(--tw-border-style)"),o("border-top-width",v)],color:v=>[o("border-top-color",v)]}),g("border-r",{width:v=>[o("border-right-style","var(--tw-border-style)"),o("border-right-width",v)],color:v=>[o("border-right-color",v)]}),g("border-b",{width:v=>[o("border-bottom-style","var(--tw-border-style)"),o("border-bottom-width",v)],color:v=>[o("border-bottom-color",v)]}),g("border-l",{width:v=>[o("border-left-style","var(--tw-border-style)"),o("border-left-width",v)],color:v=>[o("border-left-color",v)]}),n("divide-x",{defaultValue:t.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:v})=>P(v)?`${v}px`:null,handle:v=>[W([S("--tw-divide-x-reverse","0")]),G(":where(& > :not(:last-child))",[o("--tw-sort","divide-x-width"),l(),o("--tw-divide-x-reverse","0"),o("border-inline-style","var(--tw-border-style)"),o("border-inline-start-width",`calc(${v} * var(--tw-divide-x-reverse))`),o("border-inline-end-width",`calc(${v} * calc(1 - var(--tw-divide-x-reverse)))`)])]}),n("divide-y",{defaultValue:t.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:v})=>P(v)?`${v}px`:null,handle:v=>[W([S("--tw-divide-y-reverse","0")]),G(":where(& > :not(:last-child))",[o("--tw-sort","divide-y-width"),l(),o("--tw-divide-y-reverse","0"),o("border-bottom-style","var(--tw-border-style)"),o("border-top-style","var(--tw-border-style)"),o("border-top-width",`calc(${v} * var(--tw-divide-y-reverse))`),o("border-bottom-width",`calc(${v} * calc(1 - var(--tw-divide-y-reverse)))`)])]}),i("divide-x",()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}]),i("divide-y",()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}]),e("divide-x-reverse",[()=>W([S("--tw-divide-x-reverse","0")]),()=>G(":where(& > :not(:last-child))",[o("--tw-divide-x-reverse","1")])]),e("divide-y-reverse",[()=>W([S("--tw-divide-y-reverse","0")]),()=>G(":where(& > :not(:last-child))",[o("--tw-divide-y-reverse","1")])]);for(let v of["solid","dashed","dotted","double","none"])e(`divide-${v}`,[()=>G(":where(& > :not(:last-child))",[o("--tw-sort","divide-style"),o("--tw-border-style",v),o("border-style",v)])])}e("bg-auto",[["background-size","auto"]]),e("bg-cover",[["background-size","cover"]]),e("bg-contain",[["background-size","contain"]]),n("bg-size",{handle(l){if(l)return[o("background-size",l)]}}),e("bg-fixed",[["background-attachment","fixed"]]),e("bg-local",[["background-attachment","local"]]),e("bg-scroll",[["background-attachment","scroll"]]),e("bg-top",[["background-position","top"]]),e("bg-top-left",[["background-position","left top"]]),e("bg-top-right",[["background-position","right top"]]),e("bg-bottom",[["background-position","bottom"]]),e("bg-bottom-left",[["background-position","left bottom"]]),e("bg-bottom-right",[["background-position","right bottom"]]),e("bg-left",[["background-position","left"]]),e("bg-right",[["background-position","right"]]),e("bg-center",[["background-position","center"]]),n("bg-position",{handle(l){if(l)return[o("background-position",l)]}}),e("bg-repeat",[["background-repeat","repeat"]]),e("bg-no-repeat",[["background-repeat","no-repeat"]]),e("bg-repeat-x",[["background-repeat","repeat-x"]]),e("bg-repeat-y",[["background-repeat","repeat-y"]]),e("bg-repeat-round",[["background-repeat","round"]]),e("bg-repeat-space",[["background-repeat","space"]]),e("bg-none",[["background-image","none"]]);{let v=function(T){let D="in oklab";if(T?.kind==="named")switch(T.value){case"longer":case"shorter":case"increasing":case"decreasing":D=`in oklch ${T.value} hue`;break;default:D=`in ${T.value}`}else T?.kind==="arbitrary"&&(D=T.value);return D},C=function({negative:T}){return D=>{if(!D.value)return;if(D.value.kind==="arbitrary"){if(D.modifier)return;let M=D.value.value;switch(D.value.dataType??H(M,["angle"])){case"angle":return M=T?`calc(${M} * -1)`:`${M}`,[o("--tw-gradient-position",M),o("background-image",`linear-gradient(var(--tw-gradient-stops,${M}))`)];default:return T?void 0:[o("--tw-gradient-position",M),o("background-image",`linear-gradient(var(--tw-gradient-stops,${M}))`)]}}let V=D.value.value;if(!T&&g.has(V))V=g.get(V);else if(P(V))V=T?`calc(${V}deg * -1)`:`${V}deg`;else return;let R=v(D.modifier);return[o("--tw-gradient-position",`${V}`),J("@supports (background-image: linear-gradient(in lab, red, red))",[o("--tw-gradient-position",`${V} ${R}`)]),o("background-image","linear-gradient(var(--tw-gradient-stops))")]}},b=function({negative:T}){return D=>{if(D.value?.kind==="arbitrary"){if(D.modifier)return;let M=D.value.value;return[o("--tw-gradient-position",M),o("background-image",`conic-gradient(var(--tw-gradient-stops,${M}))`)]}let V=v(D.modifier);if(!D.value)return[o("--tw-gradient-position",V),o("background-image","conic-gradient(var(--tw-gradient-stops))")];let R=D.value.value;if(P(R))return R=T?`calc(${R}deg * -1)`:`${R}deg`,[o("--tw-gradient-position",`from ${R} ${V}`),o("background-image","conic-gradient(var(--tw-gradient-stops))")]}};var z=v,Y=C,q=b;let l=["oklab","oklch","srgb","hsl","longer","shorter","increasing","decreasing"],g=new Map([["to-t","to top"],["to-tr","to top right"],["to-r","to right"],["to-br","to bottom right"],["to-b","to bottom"],["to-bl","to bottom left"],["to-l","to left"],["to-tl","to top left"]]);r.functional("-bg-linear",C({negative:!0})),r.functional("bg-linear",C({negative:!1})),i("bg-linear",()=>[{values:[...g.keys()],modifiers:l},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:l}]),r.functional("-bg-conic",b({negative:!0})),r.functional("bg-conic",b({negative:!1})),i("bg-conic",()=>[{hasDefaultValue:!0,modifiers:l},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:l}]),r.functional("bg-radial",T=>{if(!T.value){let D=v(T.modifier);return[o("--tw-gradient-position",D),o("background-image","radial-gradient(var(--tw-gradient-stops))")]}if(T.value.kind==="arbitrary"){if(T.modifier)return;let D=T.value.value;return[o("--tw-gradient-position",D),o("background-image",`radial-gradient(var(--tw-gradient-stops,${D}))`)]}}),i("bg-radial",()=>[{hasDefaultValue:!0,modifiers:l}])}r.functional("bg",l=>{if(l.value){if(l.value.kind==="arbitrary"){let g=l.value.value;switch(l.value.dataType??H(g,["image","color","percentage","position","bg-size","length","url"])){case"percentage":case"position":return l.modifier?void 0:[o("background-position",g)];case"bg-size":case"length":case"size":return l.modifier?void 0:[o("background-size",g)];case"image":case"url":return l.modifier?void 0:[o("background-image",g)];default:return g=X(g,l.modifier,t),g===null?void 0:[o("background-color",g)]}}{let g=te(l,t,["--background-color","--color"]);if(g)return[o("background-color",g)]}{if(l.modifier)return;let g=t.resolve(l.value.value,["--background-image"]);if(g)return[o("background-image",g)]}}}),i("bg",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:[],valueThemeKeys:["--background-image"]}]);let h=()=>W([S("--tw-gradient-position"),S("--tw-gradient-from","#0000","<color>"),S("--tw-gradient-via","#0000","<color>"),S("--tw-gradient-to","#0000","<color>"),S("--tw-gradient-stops"),S("--tw-gradient-via-stops"),S("--tw-gradient-from-position","0%","<length-percentage>"),S("--tw-gradient-via-position","50%","<length-percentage>"),S("--tw-gradient-to-position","100%","<length-percentage>")]);function y(l,g){r.functional(l,v=>{if(v.value){if(v.value.kind==="arbitrary"){let C=v.value.value;switch(v.value.dataType??H(C,["color","length","percentage"])){case"length":case"percentage":return v.modifier?void 0:g.position(C);default:return C=X(C,v.modifier,t),C===null?void 0:g.color(C)}}{let C=te(v,t,["--background-color","--color"]);if(C)return g.color(C)}{if(v.modifier)return;let C=t.resolve(v.value.value,["--gradient-color-stop-positions"]);if(C)return g.position(C);if(v.value.value[v.value.value.length-1]==="%"&&P(v.value.value.slice(0,-1)))return g.position(v.value.value)}}}),i(l,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)},{values:Array.from({length:21},(v,C)=>`${C*5}%`),valueThemeKeys:["--gradient-color-stop-positions"]}])}y("from",{color:l=>[h(),o("--tw-sort","--tw-gradient-from"),o("--tw-gradient-from",l),o("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:l=>[h(),o("--tw-gradient-from-position",l)]}),e("via-none",[["--tw-gradient-via-stops","initial"]]),y("via",{color:l=>[h(),o("--tw-sort","--tw-gradient-via"),o("--tw-gradient-via",l),o("--tw-gradient-via-stops","var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position)"),o("--tw-gradient-stops","var(--tw-gradient-via-stops)")],position:l=>[h(),o("--tw-gradient-via-position",l)]}),y("to",{color:l=>[h(),o("--tw-sort","--tw-gradient-to"),o("--tw-gradient-to",l),o("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:l=>[h(),o("--tw-gradient-to-position",l)]}),e("mask-none",[["mask-image","none"]]),r.functional("mask",l=>{if(!l.value||l.modifier||l.value.kind!=="arbitrary")return;let g=l.value.value;switch(l.value.dataType??H(g,["image","percentage","position","bg-size","length","url"])){case"percentage":case"position":return l.modifier?void 0:[o("mask-position",g)];case"bg-size":case"length":case"size":return[o("mask-size",g)];case"image":case"url":default:return[o("mask-image",g)]}}),e("mask-add",[["mask-composite","add"]]),e("mask-subtract",[["mask-composite","subtract"]]),e("mask-intersect",[["mask-composite","intersect"]]),e("mask-exclude",[["mask-composite","exclude"]]),e("mask-alpha",[["mask-mode","alpha"]]),e("mask-luminance",[["mask-mode","luminance"]]),e("mask-match",[["mask-mode","match-source"]]),e("mask-type-alpha",[["mask-type","alpha"]]),e("mask-type-luminance",[["mask-type","luminance"]]),e("mask-auto",[["mask-size","auto"]]),e("mask-cover",[["mask-size","cover"]]),e("mask-contain",[["mask-size","contain"]]),n("mask-size",{handle(l){if(l)return[o("mask-size",l)]}}),e("mask-top",[["mask-position","top"]]),e("mask-top-left",[["mask-position","left top"]]),e("mask-top-right",[["mask-position","right top"]]),e("mask-bottom",[["mask-position","bottom"]]),e("mask-bottom-left",[["mask-position","left bottom"]]),e("mask-bottom-right",[["mask-position","right bottom"]]),e("mask-left",[["mask-position","left"]]),e("mask-right",[["mask-position","right"]]),e("mask-center",[["mask-position","center"]]),n("mask-position",{handle(l){if(l)return[o("mask-position",l)]}}),e("mask-repeat",[["mask-repeat","repeat"]]),e("mask-no-repeat",[["mask-repeat","no-repeat"]]),e("mask-repeat-x",[["mask-repeat","repeat-x"]]),e("mask-repeat-y",[["mask-repeat","repeat-y"]]),e("mask-repeat-round",[["mask-repeat","round"]]),e("mask-repeat-space",[["mask-repeat","space"]]),e("mask-clip-border",[["mask-clip","border-box"]]),e("mask-clip-padding",[["mask-clip","padding-box"]]),e("mask-clip-content",[["mask-clip","content-box"]]),e("mask-clip-fill",[["mask-clip","fill-box"]]),e("mask-clip-stroke",[["mask-clip","stroke-box"]]),e("mask-clip-view",[["mask-clip","view-box"]]),e("mask-no-clip",[["mask-clip","no-clip"]]),e("mask-origin-border",[["mask-origin","border-box"]]),e("mask-origin-padding",[["mask-origin","padding-box"]]),e("mask-origin-content",[["mask-origin","content-box"]]),e("mask-origin-fill",[["mask-origin","fill-box"]]),e("mask-origin-stroke",[["mask-origin","stroke-box"]]),e("mask-origin-view",[["mask-origin","view-box"]]);let x=()=>W([S("--tw-mask-linear","linear-gradient(#fff, #fff)"),S("--tw-mask-radial","linear-gradient(#fff, #fff)"),S("--tw-mask-conic","linear-gradient(#fff, #fff)")]);function $(l,g){r.functional(l,v=>{if(v.value){if(v.value.kind==="arbitrary"){let C=v.value.value;switch(v.value.dataType??H(C,["length","percentage","color"])){case"color":return C=X(C,v.modifier,t),C===null?void 0:g.color(C);case"percentage":return v.modifier||!P(C.slice(0,-1))?void 0:g.position(C);default:return v.modifier?void 0:g.position(C)}}{let C=te(v,t,["--background-color","--color"]);if(C)return g.color(C)}{if(v.modifier)return;let C=H(v.value.value,["number","percentage"]);if(!C)return;switch(C){case"number":{let b=t.resolve(null,["--spacing"]);return!b||!ie(v.value.value)?void 0:g.position(`calc(${b} * ${v.value.value})`)}case"percentage":return P(v.value.value.slice(0,-1))?g.position(v.value.value):void 0;default:return}}}}),i(l,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)},{values:Array.from({length:21},(v,C)=>`${C*5}%`),valueThemeKeys:["--gradient-color-stop-positions"]}]),i(l,()=>[{values:Array.from({length:21},(v,C)=>`${C*5}%`)},{values:t.get(["--spacing"])?ct:[]},{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)}])}let A=()=>W([S("--tw-mask-left","linear-gradient(#fff, #fff)"),S("--tw-mask-right","linear-gradient(#fff, #fff)"),S("--tw-mask-bottom","linear-gradient(#fff, #fff)"),S("--tw-mask-top","linear-gradient(#fff, #fff)")]);function k(l,g,v){$(l,{color(C){let b=[x(),A(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let T of["top","right","bottom","left"])v[T]&&(b.push(o(`--tw-mask-${T}`,`linear-gradient(to ${T}, var(--tw-mask-${T}-from-color) var(--tw-mask-${T}-from-position), var(--tw-mask-${T}-to-color) var(--tw-mask-${T}-to-position))`)),b.push(W([S(`--tw-mask-${T}-from-position`,"0%"),S(`--tw-mask-${T}-to-position`,"100%"),S(`--tw-mask-${T}-from-color`,"black"),S(`--tw-mask-${T}-to-color`,"transparent")])),b.push(o(`--tw-mask-${T}-${g}-color`,C)));return b},position(C){let b=[x(),A(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let T of["top","right","bottom","left"])v[T]&&(b.push(o(`--tw-mask-${T}`,`linear-gradient(to ${T}, var(--tw-mask-${T}-from-color) var(--tw-mask-${T}-from-position), var(--tw-mask-${T}-to-color) var(--tw-mask-${T}-to-position))`)),b.push(W([S(`--tw-mask-${T}-from-position`,"0%"),S(`--tw-mask-${T}-to-position`,"100%"),S(`--tw-mask-${T}-from-color`,"black"),S(`--tw-mask-${T}-to-color`,"transparent")])),b.push(o(`--tw-mask-${T}-${g}-position`,C)));return b}})}k("mask-x-from","from",{top:!1,right:!0,bottom:!1,left:!0}),k("mask-x-to","to",{top:!1,right:!0,bottom:!1,left:!0}),k("mask-y-from","from",{top:!0,right:!1,bottom:!0,left:!1}),k("mask-y-to","to",{top:!0,right:!1,bottom:!0,left:!1}),k("mask-t-from","from",{top:!0,right:!1,bottom:!1,left:!1}),k("mask-t-to","to",{top:!0,right:!1,bottom:!1,left:!1}),k("mask-r-from","from",{top:!1,right:!0,bottom:!1,left:!1}),k("mask-r-to","to",{top:!1,right:!0,bottom:!1,left:!1}),k("mask-b-from","from",{top:!1,right:!1,bottom:!0,left:!1}),k("mask-b-to","to",{top:!1,right:!1,bottom:!0,left:!1}),k("mask-l-from","from",{top:!1,right:!1,bottom:!1,left:!0}),k("mask-l-to","to",{top:!1,right:!1,bottom:!1,left:!0});let U=()=>W([S("--tw-mask-linear-position","0deg"),S("--tw-mask-linear-from-position","0%"),S("--tw-mask-linear-to-position","100%"),S("--tw-mask-linear-from-color","black"),S("--tw-mask-linear-to-color","transparent")]);n("mask-linear",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(l){return P(l.value)?`calc(1deg * ${l.value})`:null},handleNegativeBareValue(l){return P(l.value)?`calc(1deg * -${l.value})`:null},handle:l=>[x(),U(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops, var(--tw-mask-linear-position)))"),o("--tw-mask-linear-position",l)]}),i("mask-linear",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}]),$("mask-linear-from",{color:l=>[x(),U(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),o("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),o("--tw-mask-linear-from-color",l)],position:l=>[x(),U(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),o("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),o("--tw-mask-linear-from-position",l)]}),$("mask-linear-to",{color:l=>[x(),U(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),o("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),o("--tw-mask-linear-to-color",l)],position:l=>[x(),U(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),o("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),o("--tw-mask-linear-to-position",l)]});let N=()=>W([S("--tw-mask-radial-from-position","0%"),S("--tw-mask-radial-to-position","100%"),S("--tw-mask-radial-from-color","black"),S("--tw-mask-radial-to-color","transparent"),S("--tw-mask-radial-shape","ellipse"),S("--tw-mask-radial-size","farthest-corner"),S("--tw-mask-radial-position","center")]);e("mask-circle",[["--tw-mask-radial-shape","circle"]]),e("mask-ellipse",[["--tw-mask-radial-shape","ellipse"]]),e("mask-radial-closest-side",[["--tw-mask-radial-size","closest-side"]]),e("mask-radial-farthest-side",[["--tw-mask-radial-size","farthest-side"]]),e("mask-radial-closest-corner",[["--tw-mask-radial-size","closest-corner"]]),e("mask-radial-farthest-corner",[["--tw-mask-radial-size","farthest-corner"]]),e("mask-radial-at-top",[["--tw-mask-radial-position","top"]]),e("mask-radial-at-top-left",[["--tw-mask-radial-position","top left"]]),e("mask-radial-at-top-right",[["--tw-mask-radial-position","top right"]]),e("mask-radial-at-bottom",[["--tw-mask-radial-position","bottom"]]),e("mask-radial-at-bottom-left",[["--tw-mask-radial-position","bottom left"]]),e("mask-radial-at-bottom-right",[["--tw-mask-radial-position","bottom right"]]),e("mask-radial-at-left",[["--tw-mask-radial-position","left"]]),e("mask-radial-at-right",[["--tw-mask-radial-position","right"]]),e("mask-radial-at-center",[["--tw-mask-radial-position","center"]]),n("mask-radial-at",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:l=>[o("--tw-mask-radial-position",l)]}),n("mask-radial",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:l=>[x(),N(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops, var(--tw-mask-radial-size)))"),o("--tw-mask-radial-size",l)]}),$("mask-radial-from",{color:l=>[x(),N(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),o("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),o("--tw-mask-radial-from-color",l)],position:l=>[x(),N(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),o("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),o("--tw-mask-radial-from-position",l)]}),$("mask-radial-to",{color:l=>[x(),N(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),o("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),o("--tw-mask-radial-to-color",l)],position:l=>[x(),N(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),o("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),o("--tw-mask-radial-to-position",l)]});let O=()=>W([S("--tw-mask-conic-position","0deg"),S("--tw-mask-conic-from-position","0%"),S("--tw-mask-conic-to-position","100%"),S("--tw-mask-conic-from-color","black"),S("--tw-mask-conic-to-color","transparent")]);n("mask-conic",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(l){return P(l.value)?`calc(1deg * ${l.value})`:null},handleNegativeBareValue(l){return P(l.value)?`calc(1deg * -${l.value})`:null},handle:l=>[x(),O(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops, var(--tw-mask-conic-position)))"),o("--tw-mask-conic-position",l)]}),i("mask-conic",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}]),$("mask-conic-from",{color:l=>[x(),O(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),o("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),o("--tw-mask-conic-from-color",l)],position:l=>[x(),O(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),o("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),o("--tw-mask-conic-from-position",l)]}),$("mask-conic-to",{color:l=>[x(),O(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),o("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),o("--tw-mask-conic-to-color",l)],position:l=>[x(),O(),o("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),o("mask-composite","intersect"),o("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),o("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),o("--tw-mask-conic-to-position",l)]}),e("box-decoration-slice",[["-webkit-box-decoration-break","slice"],["box-decoration-break","slice"]]),e("box-decoration-clone",[["-webkit-box-decoration-break","clone"],["box-decoration-break","clone"]]),e("bg-clip-text",[["background-clip","text"]]),e("bg-clip-border",[["background-clip","border-box"]]),e("bg-clip-padding",[["background-clip","padding-box"]]),e("bg-clip-content",[["background-clip","content-box"]]),e("bg-origin-border",[["background-origin","border-box"]]),e("bg-origin-padding",[["background-origin","padding-box"]]),e("bg-origin-content",[["background-origin","content-box"]]);for(let l of["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"])e(`bg-blend-${l}`,[["background-blend-mode",l]]),e(`mix-blend-${l}`,[["mix-blend-mode",l]]);e("mix-blend-plus-darker",[["mix-blend-mode","plus-darker"]]),e("mix-blend-plus-lighter",[["mix-blend-mode","plus-lighter"]]),e("fill-none",[["fill","none"]]),r.functional("fill",l=>{if(!l.value)return;if(l.value.kind==="arbitrary"){let v=X(l.value.value,l.modifier,t);return v===null?void 0:[o("fill",v)]}let g=te(l,t,["--fill","--color"]);if(g)return[o("fill",g)]}),i("fill",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--fill","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)}]),e("stroke-none",[["stroke","none"]]),r.functional("stroke",l=>{if(l.value){if(l.value.kind==="arbitrary"){let g=l.value.value;switch(l.value.dataType??H(g,["color","number","length","percentage"])){case"number":case"length":case"percentage":return l.modifier?void 0:[o("stroke-width",g)];default:return g=X(l.value.value,l.modifier,t),g===null?void 0:[o("stroke",g)]}}{let g=te(l,t,["--stroke","--color"]);if(g)return[o("stroke",g)]}{let g=t.resolve(l.value.value,["--stroke-width"]);if(g)return[o("stroke-width",g)];if(P(l.value.value))return[o("stroke-width",l.value.value)]}}}),i("stroke",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--stroke","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:["0","1","2","3"],valueThemeKeys:["--stroke-width"]}]),e("object-contain",[["object-fit","contain"]]),e("object-cover",[["object-fit","cover"]]),e("object-fill",[["object-fit","fill"]]),e("object-none",[["object-fit","none"]]),e("object-scale-down",[["object-fit","scale-down"]]),n("object",{themeKeys:["--object-position"],handle:l=>[o("object-position",l)],staticValues:{top:[o("object-position","top")],"top-left":[o("object-position","left top")],"top-right":[o("object-position","right top")],bottom:[o("object-position","bottom")],"bottom-left":[o("object-position","left bottom")],"bottom-right":[o("object-position","right bottom")],left:[o("object-position","left")],right:[o("object-position","right")],center:[o("object-position","center")]}});for(let[l,g]of[["p","padding"],["px","padding-inline"],["py","padding-block"],["ps","padding-inline-start"],["pe","padding-inline-end"],["pt","padding-top"],["pr","padding-right"],["pb","padding-bottom"],["pl","padding-left"]])a(l,["--padding","--spacing"],v=>[o(g,v)]);e("text-left",[["text-align","left"]]),e("text-center",[["text-align","center"]]),e("text-right",[["text-align","right"]]),e("text-justify",[["text-align","justify"]]),e("text-start",[["text-align","start"]]),e("text-end",[["text-align","end"]]),a("indent",["--text-indent","--spacing"],l=>[o("text-indent",l)],{supportsNegative:!0}),e("align-baseline",[["vertical-align","baseline"]]),e("align-top",[["vertical-align","top"]]),e("align-middle",[["vertical-align","middle"]]),e("align-bottom",[["vertical-align","bottom"]]),e("align-text-top",[["vertical-align","text-top"]]),e("align-text-bottom",[["vertical-align","text-bottom"]]),e("align-sub",[["vertical-align","sub"]]),e("align-super",[["vertical-align","super"]]),n("align",{themeKeys:[],handle:l=>[o("vertical-align",l)]}),r.functional("font",l=>{if(!(!l.value||l.modifier)){if(l.value.kind==="arbitrary"){let g=l.value.value;switch(l.value.dataType??H(g,["number","generic-name","family-name"])){case"generic-name":case"family-name":return[o("font-family",g)];default:return[W([S("--tw-font-weight")]),o("--tw-font-weight",g),o("font-weight",g)]}}{let g=t.resolveWith(l.value.value,["--font"],["--font-feature-settings","--font-variation-settings"]);if(g){let[v,C={}]=g;return[o("font-family",v),o("font-feature-settings",C["--font-feature-settings"]),o("font-variation-settings",C["--font-variation-settings"])]}}{let g=t.resolve(l.value.value,["--font-weight"]);if(g)return[W([S("--tw-font-weight")]),o("--tw-font-weight",g),o("font-weight",g)]}}}),i("font",()=>[{values:[],valueThemeKeys:["--font"]},{values:[],valueThemeKeys:["--font-weight"]}]),e("uppercase",[["text-transform","uppercase"]]),e("lowercase",[["text-transform","lowercase"]]),e("capitalize",[["text-transform","capitalize"]]),e("normal-case",[["text-transform","none"]]),e("italic",[["font-style","italic"]]),e("not-italic",[["font-style","normal"]]),e("underline",[["text-decoration-line","underline"]]),e("overline",[["text-decoration-line","overline"]]),e("line-through",[["text-decoration-line","line-through"]]),e("no-underline",[["text-decoration-line","none"]]),e("font-stretch-normal",[["font-stretch","normal"]]),e("font-stretch-ultra-condensed",[["font-stretch","ultra-condensed"]]),e("font-stretch-extra-condensed",[["font-stretch","extra-condensed"]]),e("font-stretch-condensed",[["font-stretch","condensed"]]),e("font-stretch-semi-condensed",[["font-stretch","semi-condensed"]]),e("font-stretch-semi-expanded",[["font-stretch","semi-expanded"]]),e("font-stretch-expanded",[["font-stretch","expanded"]]),e("font-stretch-extra-expanded",[["font-stretch","extra-expanded"]]),e("font-stretch-ultra-expanded",[["font-stretch","ultra-expanded"]]),n("font-stretch",{handleBareValue:({value:l})=>{if(!l.endsWith("%"))return null;let g=Number(l.slice(0,-1));return!P(g)||Number.isNaN(g)||g<50||g>200?null:l},handle:l=>[o("font-stretch",l)]}),i("font-stretch",()=>[{values:["50%","75%","90%","95%","100%","105%","110%","125%","150%","200%"]}]),s("placeholder",{themeKeys:["--background-color","--color"],handle:l=>[G("&::placeholder",[o("--tw-sort","placeholder-color"),o("color",l)])]}),e("decoration-solid",[["text-decoration-style","solid"]]),e("decoration-double",[["text-decoration-style","double"]]),e("decoration-dotted",[["text-decoration-style","dotted"]]),e("decoration-dashed",[["text-decoration-style","dashed"]]),e("decoration-wavy",[["text-decoration-style","wavy"]]),e("decoration-auto",[["text-decoration-thickness","auto"]]),e("decoration-from-font",[["text-decoration-thickness","from-font"]]),r.functional("decoration",l=>{if(l.value){if(l.value.kind==="arbitrary"){let g=l.value.value;switch(l.value.dataType??H(g,["color","length","percentage"])){case"length":case"percentage":return l.modifier?void 0:[o("text-decoration-thickness",g)];default:return g=X(g,l.modifier,t),g===null?void 0:[o("text-decoration-color",g)]}}{let g=t.resolve(l.value.value,["--text-decoration-thickness"]);if(g)return l.modifier?void 0:[o("text-decoration-thickness",g)];if(P(l.value.value))return l.modifier?void 0:[o("text-decoration-thickness",`${l.value.value}px`)]}{let g=te(l,t,["--text-decoration-color","--color"]);if(g)return[o("text-decoration-color",g)]}}}),i("decoration",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-decoration-color","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:["0","1","2"],valueThemeKeys:["--text-decoration-thickness"]}]),n("animate",{themeKeys:["--animate"],handle:l=>[o("animation",l)],staticValues:{none:[o("animation","none")]}});{let l=["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,)"].join(" "),g=["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,)"].join(" "),v=()=>W([S("--tw-blur"),S("--tw-brightness"),S("--tw-contrast"),S("--tw-grayscale"),S("--tw-hue-rotate"),S("--tw-invert"),S("--tw-opacity"),S("--tw-saturate"),S("--tw-sepia"),S("--tw-drop-shadow"),S("--tw-drop-shadow-color"),S("--tw-drop-shadow-alpha","100%","<percentage>"),S("--tw-drop-shadow-size")]),C=()=>W([S("--tw-backdrop-blur"),S("--tw-backdrop-brightness"),S("--tw-backdrop-contrast"),S("--tw-backdrop-grayscale"),S("--tw-backdrop-hue-rotate"),S("--tw-backdrop-invert"),S("--tw-backdrop-opacity"),S("--tw-backdrop-saturate"),S("--tw-backdrop-sepia")]);r.functional("filter",b=>{if(!b.modifier){if(b.value===null)return[v(),o("filter",l)];if(b.value.kind==="arbitrary")return[o("filter",b.value.value)];switch(b.value.value){case"none":return[o("filter","none")]}}}),r.functional("backdrop-filter",b=>{if(!b.modifier){if(b.value===null)return[C(),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)];if(b.value.kind==="arbitrary")return[o("-webkit-backdrop-filter",b.value.value),o("backdrop-filter",b.value.value)];switch(b.value.value){case"none":return[o("-webkit-backdrop-filter","none"),o("backdrop-filter","none")]}}}),n("blur",{themeKeys:["--blur"],handle:b=>[v(),o("--tw-blur",`blur(${b})`),o("filter",l)],staticValues:{none:[v(),o("--tw-blur"," "),o("filter",l)]}}),n("backdrop-blur",{themeKeys:["--backdrop-blur","--blur"],handle:b=>[C(),o("--tw-backdrop-blur",`blur(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)],staticValues:{none:[C(),o("--tw-backdrop-blur"," "),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}}),n("brightness",{themeKeys:["--brightness"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[v(),o("--tw-brightness",`brightness(${b})`),o("filter",l)]}),n("backdrop-brightness",{themeKeys:["--backdrop-brightness","--brightness"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[C(),o("--tw-backdrop-brightness",`brightness(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("brightness",()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--brightness"]}]),i("backdrop-brightness",()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--backdrop-brightness","--brightness"]}]),n("contrast",{themeKeys:["--contrast"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[v(),o("--tw-contrast",`contrast(${b})`),o("filter",l)]}),n("backdrop-contrast",{themeKeys:["--backdrop-contrast","--contrast"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[C(),o("--tw-backdrop-contrast",`contrast(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("contrast",()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--contrast"]}]),i("backdrop-contrast",()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--backdrop-contrast","--contrast"]}]),n("grayscale",{themeKeys:["--grayscale"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),o("--tw-grayscale",`grayscale(${b})`),o("filter",l)]}),n("backdrop-grayscale",{themeKeys:["--backdrop-grayscale","--grayscale"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),o("--tw-backdrop-grayscale",`grayscale(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("grayscale",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--grayscale"],hasDefaultValue:!0}]),i("backdrop-grayscale",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-grayscale","--grayscale"],hasDefaultValue:!0}]),n("hue-rotate",{supportsNegative:!0,themeKeys:["--hue-rotate"],handleBareValue:({value:b})=>P(b)?`${b}deg`:null,handle:b=>[v(),o("--tw-hue-rotate",`hue-rotate(${b})`),o("filter",l)]}),n("backdrop-hue-rotate",{supportsNegative:!0,themeKeys:["--backdrop-hue-rotate","--hue-rotate"],handleBareValue:({value:b})=>P(b)?`${b}deg`:null,handle:b=>[C(),o("--tw-backdrop-hue-rotate",`hue-rotate(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("hue-rotate",()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--hue-rotate"]}]),i("backdrop-hue-rotate",()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--backdrop-hue-rotate","--hue-rotate"]}]),n("invert",{themeKeys:["--invert"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),o("--tw-invert",`invert(${b})`),o("filter",l)]}),n("backdrop-invert",{themeKeys:["--backdrop-invert","--invert"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),o("--tw-backdrop-invert",`invert(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("invert",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--invert"],hasDefaultValue:!0}]),i("backdrop-invert",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-invert","--invert"],hasDefaultValue:!0}]),n("saturate",{themeKeys:["--saturate"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[v(),o("--tw-saturate",`saturate(${b})`),o("filter",l)]}),n("backdrop-saturate",{themeKeys:["--backdrop-saturate","--saturate"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,handle:b=>[C(),o("--tw-backdrop-saturate",`saturate(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("saturate",()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--saturate"]}]),i("backdrop-saturate",()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--backdrop-saturate","--saturate"]}]),n("sepia",{themeKeys:["--sepia"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),o("--tw-sepia",`sepia(${b})`),o("filter",l)]}),n("backdrop-sepia",{themeKeys:["--backdrop-sepia","--sepia"],handleBareValue:({value:b})=>P(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),o("--tw-backdrop-sepia",`sepia(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("sepia",()=>[{values:["0","50","100"],valueThemeKeys:["--sepia"],hasDefaultValue:!0}]),i("backdrop-sepia",()=>[{values:["0","50","100"],valueThemeKeys:["--backdrop-sepia","--sepia"],hasDefaultValue:!0}]),e("drop-shadow-none",[v,["--tw-drop-shadow"," "],["filter",l]]),r.functional("drop-shadow",b=>{let T;if(b.modifier&&(b.modifier.kind==="arbitrary"?T=b.modifier.value:P(b.modifier.value)&&(T=`${b.modifier.value}%`)),!b.value){let D=t.get(["--drop-shadow"]),V=t.resolve(null,["--drop-shadow"]);return D===null||V===null?void 0:[v(),o("--tw-drop-shadow-alpha",T),...ft("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),o("--tw-drop-shadow",j(V,",").map(R=>`drop-shadow(${R})`).join(" ")),o("filter",l)]}if(b.value.kind==="arbitrary"){let D=b.value.value;switch(b.value.dataType??H(D,["color"])){case"color":return D=X(D,b.modifier,t),D===null?void 0:[v(),o("--tw-drop-shadow-color",Q(D,"var(--tw-drop-shadow-alpha)")),o("--tw-drop-shadow","var(--tw-drop-shadow-size)")];default:return b.modifier&&!T?void 0:[v(),o("--tw-drop-shadow-alpha",T),...ft("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),o("--tw-drop-shadow","var(--tw-drop-shadow-size)"),o("filter",l)]}}{let D=t.get([`--drop-shadow-${b.value.value}`]),V=t.resolve(b.value.value,["--drop-shadow"]);if(D&&V)return b.modifier&&!T?void 0:T?[v(),o("--tw-drop-shadow-alpha",T),...ft("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),o("--tw-drop-shadow","var(--tw-drop-shadow-size)"),o("filter",l)]:[v(),o("--tw-drop-shadow-alpha",T),...ft("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),o("--tw-drop-shadow",j(V,",").map(R=>`drop-shadow(${R})`).join(" ")),o("filter",l)]}{let D=te(b,t,["--drop-shadow-color","--color"]);if(D)return D==="inherit"?[v(),o("--tw-drop-shadow-color","inherit"),o("--tw-drop-shadow","var(--tw-drop-shadow-size)")]:[v(),o("--tw-drop-shadow-color",Q(D,"var(--tw-drop-shadow-alpha)")),o("--tw-drop-shadow","var(--tw-drop-shadow-size)")]}}),i("drop-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--drop-shadow-color","--color"],modifiers:Array.from({length:21},(b,T)=>`${T*5}`)},{valueThemeKeys:["--drop-shadow"]}]),n("backdrop-opacity",{themeKeys:["--backdrop-opacity","--opacity"],handleBareValue:({value:b})=>et(b)?`${b}%`:null,handle:b=>[C(),o("--tw-backdrop-opacity",`opacity(${b})`),o("-webkit-backdrop-filter",g),o("backdrop-filter",g)]}),i("backdrop-opacity",()=>[{values:Array.from({length:21},(b,T)=>`${T*5}`),valueThemeKeys:["--backdrop-opacity","--opacity"]}])}{let l=`var(--tw-ease, ${t.resolve(null,["--default-transition-timing-function"])??"ease"})`,g=`var(--tw-duration, ${t.resolve(null,["--default-transition-duration"])??"0s"})`;n("transition",{defaultValue:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events",themeKeys:["--transition-property"],handle:v=>[o("transition-property",v),o("transition-timing-function",l),o("transition-duration",g)],staticValues:{none:[o("transition-property","none")],all:[o("transition-property","all"),o("transition-timing-function",l),o("transition-duration",g)],colors:[o("transition-property","color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to"),o("transition-timing-function",l),o("transition-duration",g)],opacity:[o("transition-property","opacity"),o("transition-timing-function",l),o("transition-duration",g)],shadow:[o("transition-property","box-shadow"),o("transition-timing-function",l),o("transition-duration",g)],transform:[o("transition-property","transform, translate, scale, rotate"),o("transition-timing-function",l),o("transition-duration",g)]}}),e("transition-discrete",[["transition-behavior","allow-discrete"]]),e("transition-normal",[["transition-behavior","normal"]]),n("delay",{handleBareValue:({value:v})=>P(v)?`${v}ms`:null,themeKeys:["--transition-delay"],handle:v=>[o("transition-delay",v)]});{let v=()=>W([S("--tw-duration")]);e("duration-initial",[v,["--tw-duration","initial"]]),r.functional("duration",C=>{if(C.modifier||!C.value)return;let b=null;if(C.value.kind==="arbitrary"?b=C.value.value:(b=t.resolve(C.value.fraction??C.value.value,["--transition-duration"]),b===null&&P(C.value.value)&&(b=`${C.value.value}ms`)),b!==null)return[v(),o("--tw-duration",b),o("transition-duration",b)]})}i("delay",()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-delay"]}]),i("duration",()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-duration"]}])}{let l=()=>W([S("--tw-ease")]);n("ease",{themeKeys:["--ease"],handle:g=>[l(),o("--tw-ease",g),o("transition-timing-function",g)],staticValues:{initial:[l(),o("--tw-ease","initial")],linear:[l(),o("--tw-ease","linear"),o("transition-timing-function","linear")]}})}e("will-change-auto",[["will-change","auto"]]),e("will-change-scroll",[["will-change","scroll-position"]]),e("will-change-contents",[["will-change","contents"]]),e("will-change-transform",[["will-change","transform"]]),n("will-change",{themeKeys:[],handle:l=>[o("will-change",l)]}),e("content-none",[["--tw-content","none"],["content","none"]]),n("content",{themeKeys:["--content"],handle:l=>[W([S("--tw-content",'""')]),o("--tw-content",l),o("content","var(--tw-content)")]});{let l="var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)",g=()=>W([S("--tw-contain-size"),S("--tw-contain-layout"),S("--tw-contain-paint"),S("--tw-contain-style")]);e("contain-none",[["contain","none"]]),e("contain-content",[["contain","content"]]),e("contain-strict",[["contain","strict"]]),e("contain-size",[g,["--tw-contain-size","size"],["contain",l]]),e("contain-inline-size",[g,["--tw-contain-size","inline-size"],["contain",l]]),e("contain-layout",[g,["--tw-contain-layout","layout"],["contain",l]]),e("contain-paint",[g,["--tw-contain-paint","paint"],["contain",l]]),e("contain-style",[g,["--tw-contain-style","style"],["contain",l]]),n("contain",{themeKeys:[],handle:v=>[o("contain",v)]})}e("forced-color-adjust-none",[["forced-color-adjust","none"]]),e("forced-color-adjust-auto",[["forced-color-adjust","auto"]]),a("leading",["--leading","--spacing"],l=>[W([S("--tw-leading")]),o("--tw-leading",l),o("line-height",l)],{staticValues:{none:[W([S("--tw-leading")]),o("--tw-leading","1"),o("line-height","1")]}}),n("tracking",{supportsNegative:!0,themeKeys:["--tracking"],handle:l=>[W([S("--tw-tracking")]),o("--tw-tracking",l),o("letter-spacing",l)]}),e("antialiased",[["-webkit-font-smoothing","antialiased"],["-moz-osx-font-smoothing","grayscale"]]),e("subpixel-antialiased",[["-webkit-font-smoothing","auto"],["-moz-osx-font-smoothing","auto"]]);{let l="var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)",g=()=>W([S("--tw-ordinal"),S("--tw-slashed-zero"),S("--tw-numeric-figure"),S("--tw-numeric-spacing"),S("--tw-numeric-fraction")]);e("normal-nums",[["font-variant-numeric","normal"]]),e("ordinal",[g,["--tw-ordinal","ordinal"],["font-variant-numeric",l]]),e("slashed-zero",[g,["--tw-slashed-zero","slashed-zero"],["font-variant-numeric",l]]),e("lining-nums",[g,["--tw-numeric-figure","lining-nums"],["font-variant-numeric",l]]),e("oldstyle-nums",[g,["--tw-numeric-figure","oldstyle-nums"],["font-variant-numeric",l]]),e("proportional-nums",[g,["--tw-numeric-spacing","proportional-nums"],["font-variant-numeric",l]]),e("tabular-nums",[g,["--tw-numeric-spacing","tabular-nums"],["font-variant-numeric",l]]),e("diagonal-fractions",[g,["--tw-numeric-fraction","diagonal-fractions"],["font-variant-numeric",l]]),e("stacked-fractions",[g,["--tw-numeric-fraction","stacked-fractions"],["font-variant-numeric",l]])}{let l=()=>W([S("--tw-outline-style","solid")]);r.static("outline-hidden",()=>[o("--tw-outline-style","none"),o("outline-style","none"),F("@media","(forced-colors: active)",[o("outline","2px solid transparent"),o("outline-offset","2px")])]),e("outline-none",[["--tw-outline-style","none"],["outline-style","none"]]),e("outline-solid",[["--tw-outline-style","solid"],["outline-style","solid"]]),e("outline-dashed",[["--tw-outline-style","dashed"],["outline-style","dashed"]]),e("outline-dotted",[["--tw-outline-style","dotted"],["outline-style","dotted"]]),e("outline-double",[["--tw-outline-style","double"],["outline-style","double"]]),r.functional("outline",g=>{if(g.value===null){if(g.modifier)return;let v=t.get(["--default-outline-width"])??"1px";return[l(),o("outline-style","var(--tw-outline-style)"),o("outline-width",v)]}if(g.value.kind==="arbitrary"){let v=g.value.value;switch(g.value.dataType??H(v,["color","length","number","percentage"])){case"length":case"number":case"percentage":return g.modifier?void 0:[l(),o("outline-style","var(--tw-outline-style)"),o("outline-width",v)];default:return v=X(v,g.modifier,t),v===null?void 0:[o("outline-color",v)]}}{let v=te(g,t,["--outline-color","--color"]);if(v)return[o("outline-color",v)]}{if(g.modifier)return;let v=t.resolve(g.value.value,["--outline-width"]);if(v)return[l(),o("outline-style","var(--tw-outline-style)"),o("outline-width",v)];if(P(g.value.value))return[l(),o("outline-style","var(--tw-outline-style)"),o("outline-width",`${g.value.value}px`)]}}),i("outline",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--outline-color","--color"],modifiers:Array.from({length:21},(g,v)=>`${v*5}`),hasDefaultValue:!0},{values:["0","1","2","4","8"],valueThemeKeys:["--outline-width"]}]),n("outline-offset",{supportsNegative:!0,themeKeys:["--outline-offset"],handleBareValue:({value:g})=>P(g)?`${g}px`:null,handle:g=>[o("outline-offset",g)]}),i("outline-offset",()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--outline-offset"]}])}n("opacity",{themeKeys:["--opacity"],handleBareValue:({value:l})=>et(l)?`${l}%`:null,handle:l=>[o("opacity",l)]}),i("opacity",()=>[{values:Array.from({length:21},(l,g)=>`${g*5}`),valueThemeKeys:["--opacity"]}]),n("underline-offset",{supportsNegative:!0,themeKeys:["--text-underline-offset"],handleBareValue:({value:l})=>P(l)?`${l}px`:null,handle:l=>[o("text-underline-offset",l)],staticValues:{auto:[o("text-underline-offset","auto")]}}),i("underline-offset",()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--text-underline-offset"]}]),r.functional("text",l=>{if(l.value){if(l.value.kind==="arbitrary"){let g=l.value.value;switch(l.value.dataType??H(g,["color","length","percentage","absolute-size","relative-size"])){case"size":case"length":case"percentage":case"absolute-size":case"relative-size":{if(l.modifier){let C=l.modifier.kind==="arbitrary"?l.modifier.value:t.resolve(l.modifier.value,["--leading"]);if(!C&&ie(l.modifier.value)){let b=t.resolve(null,["--spacing"]);if(!b)return null;C=`calc(${b} * ${l.modifier.value})`}return!C&&l.modifier.value==="none"&&(C="1"),C?[o("font-size",g),o("line-height",C)]:null}return[o("font-size",g)]}default:return g=X(g,l.modifier,t),g===null?void 0:[o("color",g)]}}{let g=te(l,t,["--text-color","--color"]);if(g)return[o("color",g)]}{let g=t.resolveWith(l.value.value,["--text"],["--line-height","--letter-spacing","--font-weight"]);if(g){let[v,C={}]=Array.isArray(g)?g:[g];if(l.modifier){let b=l.modifier.kind==="arbitrary"?l.modifier.value:t.resolve(l.modifier.value,["--leading"]);if(!b&&ie(l.modifier.value)){let D=t.resolve(null,["--spacing"]);if(!D)return null;b=`calc(${D} * ${l.modifier.value})`}if(!b&&l.modifier.value==="none"&&(b="1"),!b)return null;let T=[o("font-size",v)];return b&&T.push(o("line-height",b)),T}return typeof C=="string"?[o("font-size",v),o("line-height",C)]:[o("font-size",v),o("line-height",C["--line-height"]?`var(--tw-leading, ${C["--line-height"]})`:void 0),o("letter-spacing",C["--letter-spacing"]?`var(--tw-tracking, ${C["--letter-spacing"]})`:void 0),o("font-weight",C["--font-weight"]?`var(--tw-font-weight, ${C["--font-weight"]})`:void 0)]}}}}),i("text",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-color","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:[],valueThemeKeys:["--text"],modifiers:[],modifierThemeKeys:["--leading"]}]);let L=()=>W([S("--tw-text-shadow-color"),S("--tw-text-shadow-alpha","100%","<percentage>")]);e("text-shadow-initial",[L,["--tw-text-shadow-color","initial"]]),r.functional("text-shadow",l=>{let g;if(l.modifier&&(l.modifier.kind==="arbitrary"?g=l.modifier.value:P(l.modifier.value)&&(g=`${l.modifier.value}%`)),!l.value){let v=t.get(["--text-shadow"]);return v===null?void 0:[L(),o("--tw-text-shadow-alpha",g),...ve("text-shadow",v,g,C=>`var(--tw-text-shadow-color, ${C})`)]}if(l.value.kind==="arbitrary"){let v=l.value.value;switch(l.value.dataType??H(v,["color"])){case"color":return v=X(v,l.modifier,t),v===null?void 0:[L(),o("--tw-text-shadow-color",Q(v,"var(--tw-text-shadow-alpha)"))];default:return[L(),o("--tw-text-shadow-alpha",g),...ve("text-shadow",v,g,b=>`var(--tw-text-shadow-color, ${b})`)]}}switch(l.value.value){case"none":return l.modifier?void 0:[L(),o("text-shadow","none")];case"inherit":return l.modifier?void 0:[L(),o("--tw-text-shadow-color","inherit")]}{let v=t.get([`--text-shadow-${l.value.value}`]);if(v)return[L(),o("--tw-text-shadow-alpha",g),...ve("text-shadow",v,g,C=>`var(--tw-text-shadow-color, ${C})`)]}{let v=te(l,t,["--text-shadow-color","--color"]);if(v)return[L(),o("--tw-text-shadow-color",Q(v,"var(--tw-text-shadow-alpha)"))]}}),i("text-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-shadow-color","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:["none"]},{valueThemeKeys:["--text-shadow"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`),hasDefaultValue:t.get(["--text-shadow"])!==null}]);{let b=function(V){return`var(--tw-ring-inset,) 0 0 0 calc(${V} + var(--tw-ring-offset-width)) var(--tw-ring-color, ${C})`},T=function(V){return`inset 0 0 0 ${V} var(--tw-inset-ring-color, currentcolor)`};var ae=b,oe=T;let l=["var(--tw-inset-shadow)","var(--tw-inset-ring-shadow)","var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow)"].join(", "),g="0 0 #0000",v=()=>W([S("--tw-shadow",g),S("--tw-shadow-color"),S("--tw-shadow-alpha","100%","<percentage>"),S("--tw-inset-shadow",g),S("--tw-inset-shadow-color"),S("--tw-inset-shadow-alpha","100%","<percentage>"),S("--tw-ring-color"),S("--tw-ring-shadow",g),S("--tw-inset-ring-color"),S("--tw-inset-ring-shadow",g),S("--tw-ring-inset"),S("--tw-ring-offset-width","0px","<length>"),S("--tw-ring-offset-color","#fff"),S("--tw-ring-offset-shadow",g)]);e("shadow-initial",[v,["--tw-shadow-color","initial"]]),r.functional("shadow",V=>{let R;if(V.modifier&&(V.modifier.kind==="arbitrary"?R=V.modifier.value:P(V.modifier.value)&&(R=`${V.modifier.value}%`)),!V.value){let M=t.get(["--shadow"]);return M===null?void 0:[v(),o("--tw-shadow-alpha",R),...ve("--tw-shadow",M,R,fe=>`var(--tw-shadow-color, ${fe})`),o("box-shadow",l)]}if(V.value.kind==="arbitrary"){let M=V.value.value;switch(V.value.dataType??H(M,["color"])){case"color":return M=X(M,V.modifier,t),M===null?void 0:[v(),o("--tw-shadow-color",Q(M,"var(--tw-shadow-alpha)"))];default:return[v(),o("--tw-shadow-alpha",R),...ve("--tw-shadow",M,R,At=>`var(--tw-shadow-color, ${At})`),o("box-shadow",l)]}}switch(V.value.value){case"none":return V.modifier?void 0:[v(),o("--tw-shadow",g),o("box-shadow",l)];case"inherit":return V.modifier?void 0:[v(),o("--tw-shadow-color","inherit")]}{let M=t.get([`--shadow-${V.value.value}`]);if(M)return[v(),o("--tw-shadow-alpha",R),...ve("--tw-shadow",M,R,fe=>`var(--tw-shadow-color, ${fe})`),o("box-shadow",l)]}{let M=te(V,t,["--box-shadow-color","--color"]);if(M)return[v(),o("--tw-shadow-color",Q(M,"var(--tw-shadow-alpha)"))]}}),i("shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`)},{values:["none"]},{valueThemeKeys:["--shadow"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`),hasDefaultValue:t.get(["--shadow"])!==null}]),e("inset-shadow-initial",[v,["--tw-inset-shadow-color","initial"]]),r.functional("inset-shadow",V=>{let R;if(V.modifier&&(V.modifier.kind==="arbitrary"?R=V.modifier.value:P(V.modifier.value)&&(R=`${V.modifier.value}%`)),!V.value){let M=t.get(["--inset-shadow"]);return M===null?void 0:[v(),o("--tw-inset-shadow-alpha",R),...ve("--tw-inset-shadow",M,R,fe=>`var(--tw-inset-shadow-color, ${fe})`),o("box-shadow",l)]}if(V.value.kind==="arbitrary"){let M=V.value.value;switch(V.value.dataType??H(M,["color"])){case"color":return M=X(M,V.modifier,t),M===null?void 0:[v(),o("--tw-inset-shadow-color",Q(M,"var(--tw-inset-shadow-alpha)"))];default:return[v(),o("--tw-inset-shadow-alpha",R),...ve("--tw-inset-shadow",M,R,At=>`var(--tw-inset-shadow-color, ${At})`,"inset "),o("box-shadow",l)]}}switch(V.value.value){case"none":return V.modifier?void 0:[v(),o("--tw-inset-shadow",g),o("box-shadow",l)];case"inherit":return V.modifier?void 0:[v(),o("--tw-inset-shadow-color","inherit")]}{let M=t.get([`--inset-shadow-${V.value.value}`]);if(M)return[v(),o("--tw-inset-shadow-alpha",R),...ve("--tw-inset-shadow",M,R,fe=>`var(--tw-inset-shadow-color, ${fe})`),o("box-shadow",l)]}{let M=te(V,t,["--box-shadow-color","--color"]);if(M)return[v(),o("--tw-inset-shadow-color",Q(M,"var(--tw-inset-shadow-alpha)"))]}}),i("inset-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`)},{values:["none"]},{valueThemeKeys:["--inset-shadow"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`),hasDefaultValue:t.get(["--inset-shadow"])!==null}]),e("ring-inset",[v,["--tw-ring-inset","inset"]]);let C=t.get(["--default-ring-color"])??"currentcolor";r.functional("ring",V=>{if(!V.value){if(V.modifier)return;let R=t.get(["--default-ring-width"])??"1px";return[v(),o("--tw-ring-shadow",b(R)),o("box-shadow",l)]}if(V.value.kind==="arbitrary"){let R=V.value.value;switch(V.value.dataType??H(R,["color","length"])){case"length":return V.modifier?void 0:[v(),o("--tw-ring-shadow",b(R)),o("box-shadow",l)];default:return R=X(R,V.modifier,t),R===null?void 0:[o("--tw-ring-color",R)]}}{let R=te(V,t,["--ring-color","--color"]);if(R)return[o("--tw-ring-color",R)]}{if(V.modifier)return;let R=t.resolve(V.value.value,["--ring-width"]);if(R===null&&P(V.value.value)&&(R=`${V.value.value}px`),R)return[v(),o("--tw-ring-shadow",b(R)),o("box-shadow",l)]}}),i("ring",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}]),r.functional("inset-ring",V=>{if(!V.value)return V.modifier?void 0:[v(),o("--tw-inset-ring-shadow",T("1px")),o("box-shadow",l)];if(V.value.kind==="arbitrary"){let R=V.value.value;switch(V.value.dataType??H(R,["color","length"])){case"length":return V.modifier?void 0:[v(),o("--tw-inset-ring-shadow",T(R)),o("box-shadow",l)];default:return R=X(R,V.modifier,t),R===null?void 0:[o("--tw-inset-ring-color",R)]}}{let R=te(V,t,["--ring-color","--color"]);if(R)return[o("--tw-inset-ring-color",R)]}{if(V.modifier)return;let R=t.resolve(V.value.value,["--ring-width"]);if(R===null&&P(V.value.value)&&(R=`${V.value.value}px`),R)return[v(),o("--tw-inset-ring-shadow",T(R)),o("box-shadow",l)]}}),i("inset-ring",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},(V,R)=>`${R*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}]);let D="var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)";r.functional("ring-offset",V=>{if(V.value){if(V.value.kind==="arbitrary"){let R=V.value.value;switch(V.value.dataType??H(R,["color","length"])){case"length":return V.modifier?void 0:[o("--tw-ring-offset-width",R),o("--tw-ring-offset-shadow",D)];default:return R=X(R,V.modifier,t),R===null?void 0:[o("--tw-ring-offset-color",R)]}}{let R=t.resolve(V.value.value,["--ring-offset-width"]);if(R)return V.modifier?void 0:[o("--tw-ring-offset-width",R),o("--tw-ring-offset-shadow",D)];if(P(V.value.value))return V.modifier?void 0:[o("--tw-ring-offset-width",`${V.value.value}px`),o("--tw-ring-offset-shadow",D)]}{let R=te(V,t,["--ring-offset-color","--color"]);if(R)return[o("--tw-ring-offset-color",R)]}}})}return i("ring-offset",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-offset-color","--color"],modifiers:Array.from({length:21},(l,g)=>`${g*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-offset-width"]}]),r.functional("@container",l=>{let g=null;if(l.value===null?g="inline-size":l.value.kind==="arbitrary"?g=l.value.value:l.value.kind==="named"&&l.value.value==="normal"?g="normal":!1,g!==null)return l.modifier?[o("container-type",g),o("container-name",l.modifier.value)]:[o("container-type",g)]}),i("@container",()=>[{values:["normal"],valueThemeKeys:[],hasDefaultValue:!0}]),r}var Lt=["number","integer","ratio","percentage"];function Kr(t){let r=t.params;return hn.test(r)?i=>{let e={"--value":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set},"--modifier":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set}};I(t.nodes,n=>{if(n.kind!=="declaration"||!n.value||!n.value.includes("--value(")&&!n.value.includes("--modifier("))return;let s=B(n.value);I(s,a=>{if(a.kind!=="function")return;if(a.value==="--spacing"&&!(e["--modifier"].usedSpacingNumber&&e["--value"].usedSpacingNumber))return I(a.nodes,u=>{if(u.kind!=="function"||u.value!=="--value"&&u.value!=="--modifier")return;let f=u.value;for(let m of u.nodes)if(m.kind==="word"){if(m.value==="integer")e[f].usedSpacingInteger||=!0;else if(m.value==="number"&&(e[f].usedSpacingNumber||=!0,e["--modifier"].usedSpacingNumber&&e["--value"].usedSpacingNumber))return E.Stop}}),E.Continue;if(a.value!=="--value"&&a.value!=="--modifier")return;let p=j(Z(a.nodes),",");for(let[u,f]of p.entries())f=f.replace(/\\\*/g,"*"),f=f.replace(/--(.*?)\s--(.*?)/g,"--$1-*--$2"),f=f.replace(/\s+/g,""),f=f.replace(/(-\*){2,}/g,"-*"),f[0]==="-"&&f[1]==="-"&&!f.includes("-*")&&(f+="-*"),p[u]=f;a.nodes=B(p.join(","));for(let u of a.nodes)if(u.kind==="word"&&(u.value[0]==='"'||u.value[0]==="'")&&u.value[0]===u.value[u.value.length-1]){let f=u.value.slice(1,-1);e[a.value].literals.add(f)}else if(u.kind==="word"&&u.value[0]==="-"&&u.value[1]==="-"){let f=u.value.replace(/-\*.*$/g,"");e[a.value].themeKeys.add(f)}else if(u.kind==="word"&&!(u.value[0]==="["&&u.value[u.value.length-1]==="]")&&!Lt.includes(u.value)){console.warn(`Unsupported bare value data type: "${u.value}".
-Only valid data types are: ${Lt.map(y=>`"${y}"`).join(", ")}.
-`);let f=u.value,m=structuredClone(a),d="\xB6";I(m.nodes,y=>{if(y.kind==="word"&&y.value===f)return E.ReplaceSkip({kind:"word",value:d})});let c="^".repeat(Z([u]).length),w=Z([m]).indexOf(d),h=["```css",Z([a])," ".repeat(w)+c,"```"].join(`
-`);console.warn(h)}}),n.value=Z(s)}),i.utilities.functional(r.slice(0,-2),n=>{let s=ee(t),a=n.value,p=n.modifier;if(a===null)return;let u=!1,f=!1,m=!1,d=!1,c=new Map,w=!1;if(I([s],(h,y)=>{let x=y.parent;if(x?.kind!=="rule"&&x?.kind!=="at-rule"||h.kind!=="declaration"||!h.value)return;let $=!1,A=B(h.value);if(I(A,k=>{if(k.kind==="function"){if(k.value==="--value"){u=!0;let U=Pr(a,k,i);return U?(f=!0,U.ratio?w=!0:c.set(h,x),E.ReplaceSkip(U.nodes)):(u||=!1,$=!0,E.Stop)}else if(k.value==="--modifier"){if(p===null)return $=!0,E.Stop;m=!0;let U=Pr(p,k,i);return U?(d=!0,E.ReplaceSkip(U.nodes)):(m||=!1,$=!0,E.Stop)}}}),$)return E.ReplaceSkip([]);h.value=Z(A)}),u&&!f||m&&!d||w&&d||p&&!w&&!d)return null;if(w)for(let[h,y]of c){let x=y.nodes.indexOf(h);x!==-1&&y.nodes.splice(x,1)}return s.nodes}),i.utilities.suggest(r.slice(0,-2),()=>{let n=[],s=[];for(let[a,{literals:p,usedSpacingNumber:u,usedSpacingInteger:f,themeKeys:m}]of[[n,e["--value"]],[s,e["--modifier"]]]){for(let d of p)a.push(d);if(u)a.push(...ct);else if(f)for(let d of ct)P(d)&&a.push(d);for(let d of i.theme.keysInNamespaces(m))a.push(d.replace(_r,(c,w,h)=>`${w}.${h}`))}return[{values:n,modifiers:s}]})}:gn.test(r)?i=>{i.utilities.static(r,()=>t.nodes.map(ee))}:null}function Pr(t,r,i){for(let e of r.nodes){if(t.kind==="named"&&e.kind==="word"&&(e.value[0]==="'"||e.value[0]==='"')&&e.value[e.value.length-1]===e.value[0]&&e.value.slice(1,-1)===t.value)return{nodes:B(t.value)};if(t.kind==="named"&&e.kind==="word"&&e.value[0]==="-"&&e.value[1]==="-"){let n=e.value;if(n.endsWith("-*")){n=n.slice(0,-2);let s=i.theme.resolve(t.value,[n]);if(s)return{nodes:B(s)}}else{let s=n.split("-*");if(s.length<=1)continue;let a=[s.shift()],p=i.theme.resolveWith(t.value,a,s);if(p){let[,u={}]=p;{let f=u[s.pop()];if(f)return{nodes:B(f)}}}}}else if(t.kind==="named"&&e.kind==="word"){if(!Lt.includes(e.value))continue;let n=e.value==="ratio"&&"fraction"in t?t.fraction:t.value;if(!n)continue;let s=H(n,[e.value]);if(s===null)continue;if(s==="ratio"){let[a,p]=j(n,"/");if(!P(a)||!P(p))continue}else{if(s==="number"&&!ie(n))continue;if(s==="percentage"&&!P(n.slice(0,-1)))continue}return{nodes:B(n),ratio:s==="ratio"}}else if(t.kind==="arbitrary"&&e.kind==="word"&&e.value[0]==="["&&e.value[e.value.length-1]==="]"){let n=e.value.slice(1,-1);if(n==="*")return{nodes:B(t.value)};if("dataType"in t&&t.dataType&&t.dataType!==n)continue;if("dataType"in t&&t.dataType)return{nodes:B(t.value)};if(H(t.value,[n])!==null)return{nodes:B(t.value)}}}}function ve(t,r,i,e,n=""){let s=!1,a=Je(r,u=>i==null?e(u):u.startsWith("current")?e(Q(u,i)):((u.startsWith("var(")||i.startsWith("var("))&&(s=!0),e(Ir(u,i))));function p(u){return n?j(u,",").map(f=>n+f).join(","):u}return s?[o(t,p(Je(r,e))),J("@supports (color: lab(from red l a b))",[o(t,p(a))])]:[o(t,p(a))]}function ft(t,r,i,e,n=""){let s=!1,a=j(r,",").map(p=>Je(p,u=>i==null?e(u):u.startsWith("current")?e(Q(u,i)):((u.startsWith("var(")||i.startsWith("var("))&&(s=!0),e(Ir(u,i))))).map(p=>`drop-shadow(${p})`).join(" ");return s?[o(t,n+j(r,",").map(p=>`drop-shadow(${Je(p,e)})`).join(" ")),J("@supports (color: lab(from red l a b))",[o(t,n+a)])]:[o(t,n+a)]}var jt={"--alpha":vn,"--spacing":wn,"--theme":yn,theme:kn};function vn(t,r,i,...e){let[n,s]=j(i,"/").map(a=>a.trim());if(!n||!s)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${n||"var(--my-color)"} / ${s||"50%"})\``);if(e.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${n||"var(--my-color)"} / ${s||"50%"})\``);return Q(n,s)}function wn(t,r,i,...e){if(!i)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(e.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${e.length+1}.`);let n=t.theme.resolve(null,["--spacing"]);if(!n)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${n} * ${i})`}function yn(t,r,i,...e){if(!i.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let n=!1;i.endsWith(" inline")&&(n=!0,i=i.slice(0,-7)),r.kind==="at-rule"&&(n=!0);let s=t.resolveThemeValue(i,n);if(!s){if(e.length>0)return e.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(e.length===0)return s;let a=e.join(", ");if(a==="initial")return s;if(s==="initial")return a;if(s.startsWith("var(")||s.startsWith("theme(")||s.startsWith("--theme(")){let p=B(s);return xn(p,a),Z(p)}return s}function kn(t,r,i,...e){i=bn(i);let n=t.resolveThemeValue(i);if(!n&&e.length>0)return e.join(", ");if(!n)throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return n}var Ur=new RegExp(Object.keys(jt).map(t=>`${t}\\(`).join("|"));function De(t,r){let i=0;return I(t,e=>{if(e.kind==="declaration"&&e.value&&Ur.test(e.value)){i|=8,e.value=Lr(e.value,e,r);return}e.kind==="at-rule"&&(e.name==="@media"||e.name==="@custom-media"||e.name==="@container"||e.name==="@supports")&&Ur.test(e.params)&&(i|=8,e.params=Lr(e.params,e,r))}),i}function Lr(t,r,i){let e=B(t);return I(e,n=>{if(n.kind==="function"&&n.value in jt){let s=j(Z(n.nodes).trim(),",").map(p=>p.trim()),a=jt[n.value](i,r,...s);return E.Replace(B(a))}}),Z(e)}function bn(t){if(t[0]!=="'"&&t[0]!=='"')return t;let r="",i=t[0];for(let e=1;e<t.length-1;e++){let n=t[e],s=t[e+1];n==="\\"&&(s===i||s==="\\")?(r+=s,e++):r+=n}return r}function xn(t,r){I(t,i=>{if(i.kind==="function"&&!(i.value!=="var"&&i.value!=="theme"&&i.value!=="--theme"))if(i.nodes.length===1)i.nodes.push({kind:"word",value:`, ${r}`});else{let e=i.nodes[i.nodes.length-1];e.kind==="word"&&e.value==="initial"&&(e.value=r)}})}function pt(t,r){let i=t.length,e=r.length,n=i<e?i:e;for(let s=0;s<n;s++){let a=t.charCodeAt(s),p=r.charCodeAt(s);if(a>=48&&a<=57&&p>=48&&p<=57){let u=s,f=s+1,m=s,d=s+1;for(a=t.charCodeAt(f);a>=48&&a<=57;)a=t.charCodeAt(++f);for(p=r.charCodeAt(d);p>=48&&p<=57;)p=r.charCodeAt(++d);let c=t.slice(u,f),w=r.slice(m,d),h=Number(c)-Number(w);if(h)return h;if(c<w)return-1;if(c>w)return 1;continue}if(a!==p)return a-p}return t.length-r.length}function jr(t){if(t[0]!=="["||t[t.length-1]!=="]")return null;let r=1,i=r,e=t.length-1;for(;Ue(t.charCodeAt(r));)r++;{for(i=r;r<e;r++){let m=t.charCodeAt(r);if(m===92){r++;continue}if(!(m>=65&&m<=90)&&!(m>=97&&m<=122)&&!(m>=48&&m<=57)&&!(m===45||m===95))break}if(i===r)return null}let n=t.slice(i,r);for(;Ue(t.charCodeAt(r));)r++;if(r===e)return{attribute:n,operator:null,quote:null,value:null,sensitivity:null};let s=null,a=t.charCodeAt(r);if(a===61)s="=",r++;else if((a===126||a===124||a===94||a===36||a===42)&&t.charCodeAt(r+1)===61)s=t[r]+"=",r+=2;else return null;for(;Ue(t.charCodeAt(r));)r++;if(r===e)return null;let p="",u=null;if(a=t.charCodeAt(r),a===39||a===34){u=t[r],r++,i=r;for(let m=r;m<e;m++){let d=t.charCodeAt(m);d===a?r=m+1:d===92&&m++}p=t.slice(i,r-1)}else{for(i=r;r<e&&!Ue(t.charCodeAt(r));)r++;p=t.slice(i,r)}for(;Ue(t.charCodeAt(r));)r++;if(r===e)return{attribute:n,operator:s,quote:u,value:p,sensitivity:null};let f=null;switch(t.charCodeAt(r)){case 105:case 73:{f="i",r++;break}case 115:case 83:{f="s",r++;break}default:return null}for(;Ue(t.charCodeAt(r));)r++;return r!==e?null:{attribute:n,operator:s,quote:u,value:p,sensitivity:f}}function Ue(t){switch(t){case 32:case 9:case 10:case 13:return!0;default:return!1}}function Le(t,r=null){return Array.isArray(t)&&t.length===2&&typeof t[1]=="object"&&typeof t[1]!==null?r?t[1][r]??null:t[0]:Array.isArray(t)&&r===null?t.join(", "):typeof t=="string"&&r===null?t:null}function zr(t,{theme:r},i){for(let e of i){let n=je([e]);n&&t.theme.clearNamespace(`--${n}`,4)}for(let[e,n]of Cn(r)){if(typeof n!="string"&&typeof n!="number")continue;if(typeof n=="string"&&(n=n.replace(/<alpha-value>/g,"1")),e[0]==="opacity"&&(typeof n=="number"||typeof n=="string")){let a=typeof n=="string"?parseFloat(n):n;a>=0&&a<=1&&(n=a*100+"%")}let s=je(e);s&&t.theme.add(`--${s}`,""+n,7)}if(Object.hasOwn(r,"fontFamily")){let e=5;{let n=Le(r.fontFamily.sans);n&&t.theme.hasDefault("--font-sans")&&(t.theme.add("--default-font-family",n,e),t.theme.add("--default-font-feature-settings",Le(r.fontFamily.sans,"fontFeatureSettings")??"normal",e),t.theme.add("--default-font-variation-settings",Le(r.fontFamily.sans,"fontVariationSettings")??"normal",e))}{let n=Le(r.fontFamily.mono);n&&t.theme.hasDefault("--font-mono")&&(t.theme.add("--default-mono-font-family",n,e),t.theme.add("--default-mono-font-feature-settings",Le(r.fontFamily.mono,"fontFeatureSettings")??"normal",e),t.theme.add("--default-mono-font-variation-settings",Le(r.fontFamily.mono,"fontVariationSettings")??"normal",e))}}return r}function Cn(t){let r=[];return Mr(t,[],(i,e)=>{if(Vn(i))return r.push([e,i]),1;if(Nn(i)){r.push([e,i[0]]);for(let n of Reflect.ownKeys(i[1]))r.push([[...e,`-${n}`],i[1][n]]);return 1}if(Array.isArray(i)&&i.every(n=>typeof n=="string"))return e[0]==="fontSize"?(r.push([e,i[0]]),i.length>=2&&r.push([[...e,"-line-height"],i[1]])):r.push([e,i.join(", ")]),1}),r}var $n={borderWidth:"border-width",outlineWidth:"outline-width",ringColor:"ring-color",ringWidth:"ring-width",transitionDuration:"transition-duration",transitionTimingFunction:"transition-timing-function"},Sn={animation:"animate",aspectRatio:"aspect",borderRadius:"radius",boxShadow:"shadow",colors:"color",containers:"container",fontFamily:"font",fontSize:"text",letterSpacing:"tracking",lineHeight:"leading",maxWidth:"container",screens:"breakpoint",transitionTimingFunction:"ease"},Tn=/^[a-zA-Z0-9-_%/\.]+$/;function je(t){let r=$n[t[0]];if(r&&t[1]==="DEFAULT")return`default-${r}`;if(t[0]==="container")return null;for(let e of t)if(!Tn.test(e))return null;let i=Sn[t[0]];return i&&(t=t.slice(),t[0]=i),t.map((e,n,s)=>e==="1"&&n!==s.length-1?"":e).map((e,n)=>(e=e.replaceAll(".","_"),(n===0||e.startsWith("-")||e==="lineHeight")&&(e=e.replace(/([a-z])([A-Z])/g,(a,p,u)=>`${p}-${u.toLowerCase()}`)),e)).filter((e,n)=>e!=="DEFAULT"||n!==t.length-1).join("-")}function Vn(t){return typeof t=="number"||typeof t=="string"}function Nn(t){if(!Array.isArray(t)||t.length!==2||typeof t[0]!="string"&&typeof t[0]!="number"||t[1]===void 0||t[1]===null||typeof t[1]!="object")return!1;for(let r of Reflect.ownKeys(t[1]))if(typeof r!="string"||typeof t[1][r]!="string"&&typeof t[1][r]!="number")return!1;return!0}function Mr(t,r=[],i){for(let e of Reflect.ownKeys(t)){let n=t[e];if(n==null)continue;let s=[...r,e],a=i(n,s)??0;if(a!==1){if(a===2)return 2;if(!(!Array.isArray(n)&&typeof n!="object")&&Mr(n,s,i)===2)return 2}}}var En=/^(?<value>[-+]?(?:\d*\.)?\d+)(?<unit>[a-z]+|%)?$/i,Ne=new K(t=>{let r=En.exec(t);if(!r)return null;let i=r.groups?.value;if(i===void 0)return null;let e=Number(i);if(Number.isNaN(e))return null;let n=r.groups?.unit;return n===void 0?[e,null]:[e,n]});function dt(t,r=null){let i=!1,e=B(t);return I(e,{exit(n){if(n.kind==="word"&&n.value!=="0"){let s=Rn(n.value,r);return s===null||s===n.value?void 0:(i=!0,E.ReplaceSkip(ne(s)))}else if(n.kind==="function"&&(n.value==="calc"||n.value==="")){if(n.nodes.length!==5)return;let s=Ne.get(n.nodes[0].value),a=n.nodes[2].value,p=Ne.get(n.nodes[4].value);if(a==="*"&&(s?.[0]===0&&s?.[1]===null||p?.[0]===0&&p?.[1]===null))return i=!0,E.ReplaceSkip(ne("0"));if(s===null||p===null)return;switch(a){case"*":{if(s[1]===p[1]||s[1]===null&&p[1]!==null||s[1]!==null&&p[1]===null)return i=!0,E.ReplaceSkip(ne(`${s[0]*p[0]}${s[1]??""}`));break}case"+":{if(s[1]===p[1])return i=!0,E.ReplaceSkip(ne(`${s[0]+p[0]}${s[1]??""}`));break}case"-":{if(s[1]===p[1])return i=!0,E.ReplaceSkip(ne(`${s[0]-p[0]}${s[1]??""}`));break}case"/":{if(p[0]!==0&&(s[1]===null&&p[1]===null||s[1]!==null&&p[1]===null))return i=!0,E.ReplaceSkip(ne(`${s[0]/p[0]}${s[1]??""}`));break}}}}}),i?Z(e):t}function Rn(t,r=null){let i=Ne.get(t);if(i===null)return null;let[e,n]=i;if(n===null)return`${e}`;if(e===0&&er(t))return"0";switch(n.toLowerCase()){case"in":return`${e*96}px`;case"cm":return`${e*96/2.54}px`;case"mm":return`${e*96/2.54/10}px`;case"q":return`${e*96/2.54/10/4}px`;case"pc":return`${e*96/6}px`;case"pt":return`${e*96/72}px`;case"rem":return r!==null?`${e*r}px`:null;case"grad":return`${e*.9}deg`;case"rad":return`${e*180/Math.PI}deg`;case"turn":return`${e*360}deg`;case"ms":return`${e/1e3}s`;case"khz":return`${e*1e3}hz`;default:return`${e}${n}`}}function Fr(t,r="top",i="right",e="bottom",n="left"){return Gr(`${t}-${r}`,`${t}-${i}`,`${t}-${e}`,`${t}-${n}`)}function Gr(t="top",r="right",i="bottom",e="left"){return{1:[[t,0],[r,0],[i,0],[e,0]],2:[[t,0],[r,1],[i,0],[e,1]],3:[[t,0],[r,1],[i,2],[e,1]],4:[[t,0],[r,1],[i,2],[e,3]]}}function Ee(t,r){return{1:[[t,0],[r,0]],2:[[t,0],[r,1]]}}var Wr={inset:Gr(),margin:Fr("margin"),padding:Fr("padding"),gap:Ee("row-gap","column-gap")},Br={"inset-block":Ee("top","bottom"),"inset-inline":Ee("left","right"),"margin-block":Ee("margin-top","margin-bottom"),"margin-inline":Ee("margin-left","margin-right"),"padding-block":Ee("padding-top","padding-bottom"),"padding-inline":Ee("padding-left","padding-right")},Yr={"border-block":["border-bottom","border-top"],"border-block-color":["border-bottom-color","border-top-color"],"border-block-style":["border-bottom-style","border-top-style"],"border-block-width":["border-bottom-width","border-top-width"],"border-inline":["border-left","border-right"],"border-inline-color":["border-left-color","border-right-color"],"border-inline-style":["border-left-style","border-right-style"],"border-inline-width":["border-left-width","border-right-width"]};function qr(t,r){if(r&2){if(t.property in Br){let i=j(t.value," ");return Br[t.property][i.length]?.map(([e,n])=>o(e,i[n],t.important))}if(t.property in Yr)return Yr[t.property]?.map(i=>o(i,t.value,t.important))}if(t.property in Wr){let i=j(t.value," ");return Wr[t.property][i.length]?.map(([e,n])=>o(e,i[n],t.important))}return null}function On(t){return{kind:"combinator",value:t}}function Pn(t,r){return{kind:"function",value:t,nodes:r}}function xe(t){return{kind:"selector",value:t}}function In(t){return{kind:"separator",value:t}}function _n(t){return{kind:"value",value:t}}function pe(t){let r="";for(let i of t)switch(i.kind){case"combinator":case"selector":case"separator":case"value":{r+=i.value;break}case"function":r+=i.value+"("+pe(i.nodes)+")"}return r}var Zr=92,Dn=93,Hr=41,Kn=58,Jr=44,Un=34,Ln=46,Qr=62,Xr=10,jn=35,ei=91,ti=40,ri=43,zn=39,ii=32,ni=9,ai=126,Mn=38,Fn=42;function Re(t){t=t.replaceAll(`\r
-`,`
-`);let r=[],i=[],e=null,n="",s;for(let a=0;a<t.length;a++){let p=t.charCodeAt(a);switch(p){case Jr:case Qr:case Xr:case ii:case ri:case ni:case ai:{if(n.length>0){let c=xe(n);e?e.nodes.push(c):r.push(c),n=""}let u=a,f=a+1;for(;f<t.length&&(s=t.charCodeAt(f),!(s!==Jr&&s!==Qr&&s!==Xr&&s!==ii&&s!==ri&&s!==ni&&s!==ai));f++);a=f-1;let m=t.slice(u,f),d=m.trim()===","?In(m):On(m);e?e.nodes.push(d):r.push(d);break}case ti:{let u=Pn(n,[]);if(n="",u.value!==":not"&&u.value!==":where"&&u.value!==":has"&&u.value!==":is"){let f=a+1,m=0;for(let c=a+1;c<t.length;c++){if(s=t.charCodeAt(c),s===ti){m++;continue}if(s===Hr){if(m===0){a=c;break}m--}}let d=a;u.nodes.push(_n(t.slice(f,d))),n="",a=d,e?e.nodes.push(u):r.push(u);break}e?e.nodes.push(u):r.push(u),i.push(u),e=u;break}case Hr:{let u=i.pop();if(n.length>0){let f=xe(n);u.nodes.push(f),n=""}i.length>0?e=i[i.length-1]:e=null;break}case Ln:case Kn:case jn:{if(n.length>0){let u=xe(n);e?e.nodes.push(u):r.push(u)}n=t[a];break}case ei:{if(n.length>0){let m=xe(n);e?e.nodes.push(m):r.push(m)}n="";let u=a,f=0;for(let m=a+1;m<t.length;m++){if(s=t.charCodeAt(m),s===ei){f++;continue}if(s===Dn){if(f===0){a=m;break}f--}}n+=t.slice(u,a+1);break}case zn:case Un:{let u=a;for(let f=a+1;f<t.length;f++)if(s=t.charCodeAt(f),s===Zr)f+=1;else if(s===p){a=f;break}n+=t.slice(u,a+1);break}case Mn:case Fn:{if(n.length>0){let u=xe(n);e?e.nodes.push(u):r.push(u),n=""}e?e.nodes.push(xe(t[a])):r.push(xe(t[a]));break}case Zr:{n+=t[a]+t[a+1],a+=1;break}default:n+=t[a]}}return n.length>0&&r.push(xe(n)),r}function ue(t,r){for(let i in t)delete t[i];return Object.assign(t,r)}function Oe(t){let r=[];for(let i of j(t,".")){if(!i.includes("[")){r.push(i);continue}let e=0;for(;;){let n=i.indexOf("[",e),s=i.indexOf("]",n);if(n===-1||s===-1)break;n>e&&r.push(i.slice(e,n)),r.push(i.slice(n+1,s)),e=s+1}e<=i.length-1&&r.push(i.slice(e))}return r}function zt(t,r){let i=t;return i.storage[ui]??=Wn(),i.storage[fi]??=Yn(i),i.storage[ci]??=Zn(),i.storage[pi]??=Jn(),i.storage[di]??=Xn(),i.storage[Ft]??=na(i),i.storage[ht]??=la(i,r),i.storage[de]??=ya(i),i.storage[Wt]??=ba(),i.storage[vt]??=xa(i),i.storage[Bt]??=Aa(i),i.storage[yt]??=Ca(i),i.storage[hi]??=$a(i),i}var ui=Symbol();function Wn(){return new K(t=>new K(r=>({rem:t,features:r})))}function Bn(t,r){let i=0;return r?.collapse&&(i|=1),r?.logicalToPhysical&&(i|=2),zt(t,r).storage[ui].get(r?.rem??null).get(i)}var fi=Symbol();function Yn(t){return new K(r=>new K(i=>({features:i,designSystem:t,signatureOptions:r})))}function Gn(t,r,i){let e=0;return i?.collapse&&(e|=1),zt(t).storage[fi].get(r).get(e)}function Mt(t,r,i){let e=Bn(t,i),n=Gn(t,e,i),s=zt(t),a=new Set,p=s.storage[ci].get(n);for(let u of r)a.add(p.get(u));return a.size<=1||!(n.features&1)?Array.from(a):qn(n,Array.from(a))}function qn(t,r){if(r.length<=1)return r;let i=t.designSystem,e=new K(p=>new K(u=>new Set)),n=t.designSystem.theme.prefix?`${t.designSystem.theme.prefix}:`:"";for(let p of r){let u=j(p,":"),f=u.pop(),m=f.endsWith("!");m&&(f=f.slice(0,-1));let d=u.length>0?`${u.join(":")}:`:"",c=m?"!":"";e.get(d).get(c).add(`${n}${f}`)}let s=new Set;for(let[p,u]of e.entries())for(let[f,m]of u.entries())for(let d of a(Array.from(m)))n&&d.startsWith(n)&&(d=d.slice(n.length)),s.add(`${p}${d}${f}`);return Array.from(s);function a(p){let u=t.signatureOptions,f=i.storage[vt].get(u),m=i.storage[Wt].get(u),d=p.map($=>f.get($));if(d.some($=>$.has("line-height"))){let $=i.theme.keysInNamespaces(["--text"]);if($.length>0){let A=new Set,k=new Set;for(let N of d)for(let O of N.get("line-height")){if(k.has(O))continue;k.add(O);let L=i.storage[ht]?.get(O)??null;if(L!==null)if(ie(L)){A.add(L);for(let _ of $)f.get(`text-${_}/${L}`)}else{A.add(O);for(let _ of $)f.get(`text-${_}/[${O}]`)}}let U=new Set;for(let N of d)for(let O of N.get("font-size"))if(!U.has(O)){U.add(O);for(let L of A)ie(L)?f.get(`text-[${O}]/${L}`):f.get(`text-[${O}]/[${L}]`)}}}let c=d.map($=>{let A=null;for(let k of $.keys()){let U=new Set;for(let N of m.get(k).values())for(let O of N)U.add(O);if(A===null?A=U:A=si(A,U),A.size===0)return A}return A}),w=new K($=>new Set([$]));for(let $=0;$<c.length;$++){let A=c[$];for(let k=$+1;k<c.length;k++){let U=c[k];for(let N of A)if(U.has(N)){w.get($).add(k),w.get(k).add($);break}}}if(w.size===0)return p;let h=new K($=>$.split(",").map(Number));for(let $ of w.values()){let A=Array.from($).sort((k,U)=>k-U);h.get(A.join(","))}let y=new Set(p),x=new Set;for(let $ of h.values())for(let A of Ta($)){if(A.some(N=>x.has(p[N])))continue;let k=A.flatMap(N=>c[N]).reduce(si),U=i.storage[de].get(u).get(A.map(N=>p[N]).sort((N,O)=>N.localeCompare(O)).join(" "));for(let N of k)if(i.storage[de].get(u).get(N)===U){for(let L of A)x.add(p[L]);y.add(N);break}}for(let $ of x)y.delete($);return Array.from(y)}}var ci=Symbol();function Zn(){return new K(t=>{let r=t.designSystem,i=r.theme.prefix?`${r.theme.prefix}:`:"",e=r.storage[pi].get(t),n=r.storage[di].get(t);return new K((s,a)=>{for(let p of r.parseCandidate(s)){let u=p.variants.slice().reverse().flatMap(d=>e.get(d)),f=p.important;if(f||u.length>0){let c=a.get(r.printCandidate({...p,variants:[],important:!1}));return r.theme.prefix!==null&&u.length>0&&(c=c.slice(i.length)),u.length>0&&(c=`${u.map(w=>r.printVariant(w)).join(":")}:${c}`),f&&(c+="!"),r.theme.prefix!==null&&u.length>0&&(c=`${i}${c}`),c}let m=n.get(s);if(m!==s)return m}return s})})}var Hn=[ia,ha,va,da],pi=Symbol();function Jn(){return new K(t=>new K(r=>{let i=[r];for(let e of Hn)for(let n of i.splice(0)){let s=e(_e(n),t);if(Array.isArray(s)){i.push(...s);continue}else i.push(s)}return i}))}var Qn=[ta,ra,sa,fa,pa,ma,ga,wa],di=Symbol();function Xn(){return new K(t=>{let r=t.designSystem;return new K(i=>{for(let e of r.parseCandidate(i)){let n=Tr(e);for(let a of Qn)n=a(n,t);let s=r.printCandidate(n);if(i!==s)return s}return i})})}var ea=["t","tr","r","br","b","bl","l","tl"];function ta(t){if(t.kind==="static"&&t.root.startsWith("bg-gradient-to-")){let r=t.root.slice(15);return ea.includes(r)&&(t.root=`bg-linear-to-${r}`),t}return t}function ra(t,r){let i=r.designSystem.storage[Ft];if(t.kind==="arbitrary"){let[e,n]=i(t.value,t.modifier===null?1:0);e!==t.value&&(t.value=e,n!==null&&(t.modifier=n))}else if(t.kind==="functional"&&t.value?.kind==="arbitrary"){let[e,n]=i(t.value.value,t.modifier===null?1:0);e!==t.value.value&&(t.value.value=e,n!==null&&(t.modifier=n))}return t}function ia(t,r){let i=r.designSystem.storage[Ft],e=wt(t);for(let[n]of e)if(n.kind==="arbitrary"){let[s]=i(n.selector,2);s!==n.selector&&(n.selector=s)}else if(n.kind==="functional"&&n.value?.kind==="arbitrary"){let[s]=i(n.value.value,2);s!==n.value.value&&(n.value.value=s)}return t}var Ft=Symbol();function na(t){return r(t);function r(i){function e(p,u=0){let f=B(p);if(u&2)return[mt(f,a),null];let m=0,d=0;if(I(f,h=>{h.kind==="function"&&h.value==="theme"&&(m+=1,I(h.nodes,y=>y.kind==="separator"&&y.value.includes(",")?E.Stop:y.kind==="word"&&y.value==="/"?(d+=1,E.Stop):E.Skip))}),m===0)return[p,null];if(d===0)return[mt(f,s),null];if(d>1)return[mt(f,a),null];let c=null;return[mt(f,(h,y)=>{let x=j(h,"/").map($=>$.trim());if(x.length>2)return null;if(f.length===1&&x.length===2&&u&1){let[$,A]=x;if(/^\d+%$/.test(A))c={kind:"named",value:A.slice(0,-1)};else if(/^0?\.\d+$/.test(A)){let k=Number(A)*100;c={kind:Number.isInteger(k)?"named":"arbitrary",value:k.toString()}}else c={kind:"arbitrary",value:A};h=$}return s(h,y)||a(h,y)}),c]}function n(p,u=!0){let f=`--${je(Oe(p))}`;return i.theme.get([f])?u&&i.theme.prefix?`--${i.theme.prefix}-${f.slice(2)}`:f:null}function s(p,u){let f=n(p);if(f)return u?`var(${f}, ${u})`:`var(${f})`;let m=Oe(p);if(m[0]==="spacing"&&i.theme.get(["--spacing"])){let d=m[1];return ie(d)?`--spacing(${d})`:null}return null}function a(p,u){let f=j(p,"/").map(c=>c.trim());p=f.shift();let m=n(p,!1);if(!m)return null;let d=f.length>0?`/${f.join("/")}`:"";return u?`--theme(${m}${d}, ${u})`:`--theme(${m}${d})`}return e}}function mt(t,r){return I(t,(i,e)=>{if(i.kind==="function"&&i.value==="theme"){if(i.nodes.length<1)return;i.nodes[0].kind==="separator"&&i.nodes[0].value.trim()===""&&i.nodes.shift();let n=i.nodes[0];if(n.kind!=="word")return;let s=n.value,a=1;for(let f=a;f<i.nodes.length&&!i.nodes[f].value.includes(",");f++)s+=Z([i.nodes[f]]),a=f+1;s=aa(s);let p=i.nodes.slice(a+1),u=p.length>0?r(s,Z(p)):r(s);if(u===null)return;if(e.parent){let f=e.parent.nodes.indexOf(i)-1;for(;f!==-1;){let m=e.parent.nodes[f];if(m.kind==="separator"&&m.value.trim()===""){f-=1;continue}/^[-+*/]$/.test(m.value.trim())&&(u=`(${u})`);break}}return E.Replace(B(u))}}),Z(t)}function aa(t){if(t[0]!=="'"&&t[0]!=='"')return t;let r="",i=t[0];for(let e=1;e<t.length-1;e++){let n=t[e],s=t[e+1];n==="\\"&&(s===i||s==="\\")?(r+=s,e++):r+=n}return r}function*wt(t){function*r(i,e=null){yield[i,e],i.kind==="compound"&&(yield*r(i.variant,i))}yield*r(t,null)}function we(t,r){return t.parseCandidate(t.theme.prefix&&!r.startsWith(`${t.theme.prefix}:`)?`${t.theme.prefix}:${r}`:r)}function oa(t,r){let i=t.printCandidate(r);return t.theme.prefix&&i.startsWith(`${t.theme.prefix}:`)?i.slice(t.theme.prefix.length+1):i}var ht=Symbol();function la(t,r){let i=t.resolveThemeValue("--spacing");if(i===void 0)return null;i=dt(i,r?.rem??null);let e=Ne.get(i);if(!e)return null;let[n,s]=e;return new K(a=>{if(n===0)return null;let p=Ne.get(dt(a,r?.rem??null));if(!p)return null;let[u,f]=p;return f!==s?null:u/n})}function sa(t,r){if(t.kind!=="arbitrary"&&!(t.kind==="functional"&&t.value?.kind==="arbitrary"))return t;let i=r.designSystem,e=i.storage[Bt].get(r.signatureOptions),n=i.storage[de].get(r.signatureOptions),s=i.printCandidate(t),a=n.get(s);if(typeof a!="string")return t;for(let u of p(a,t)){let f=i.printCandidate(u);if(n.get(f)===a&&ua(i,t,u))return u}return t;function*p(u,f){let m=e.get(u);if(!(m.length>1)){if(m.length===0&&f.modifier){let d={...f,modifier:null},c=n.get(i.printCandidate(d));if(typeof c=="string")for(let w of p(c,d))yield Object.assign({},w,{modifier:f.modifier})}if(m.length===1)for(let d of we(i,m[0]))yield d;else if(m.length===0){let d=f.kind==="arbitrary"?f.value:f.value?.value??null;if(d===null)return;if(r.signatureOptions.rem!==null&&f.kind==="functional"&&f.value?.kind==="arbitrary"){let h=i.storage[ht]?.get(d)??null;h!==null&&ie(h)&&(yield Object.assign({},f,{value:{kind:"named",value:h,fraction:null}}))}let c=i.storage[ht]?.get(d)??null,w="";c!==null&&c<0&&(w="-",c=Math.abs(c));for(let h of Array.from(i.utilities.keys("functional")).sort((y,x)=>+(y[0]==="-")-+(x[0]==="-"))){w&&(h=`${w}${h}`);for(let y of we(i,`${h}-${d}`))yield y;if(f.modifier)for(let y of we(i,`${h}-${d}${f.modifier}`))yield y;if(c!==null){for(let y of we(i,`${h}-${c}`))yield y;if(f.modifier)for(let y of we(i,`${h}-${c}${He(f.modifier)}`))yield y}for(let y of we(i,`${h}-[${d}]`))yield y;if(f.modifier)for(let y of we(i,`${h}-[${d}]${He(f.modifier)}`))yield y}}}}}function ua(t,r,i){let e=null;if(r.kind==="functional"&&r.value?.kind==="arbitrary"&&r.value.value.includes("var(--")?e=r.value.value:r.kind==="arbitrary"&&r.value.includes("var(--")&&(e=r.value),e===null)return!0;let n=t.candidatesToCss([t.printCandidate(i)]).join(`
-`),s=!0;return I(B(e),a=>{if(a.kind==="function"&&a.value==="var"){let p=a.nodes[0].value;if(!new RegExp(`var\\(${p}[,)]\\s*`,"g").test(n)||n.includes(`${p}:`))return s=!1,E.Stop}}),s}function fa(t,r){if(t.kind!=="functional"||t.value?.kind!=="named")return t;let i=r.designSystem,e=i.storage[Bt].get(r.signatureOptions),n=i.storage[de].get(r.signatureOptions),s=i.printCandidate(t),a=n.get(s);if(typeof a!="string")return t;for(let u of p(a,t)){let f=i.printCandidate(u);if(n.get(f)===a)return u}return t;function*p(u,f){let m=e.get(u);if(!(m.length>1)){if(m.length===0&&f.modifier){let d={...f,modifier:null},c=n.get(i.printCandidate(d));if(typeof c=="string")for(let w of p(c,d))yield Object.assign({},w,{modifier:f.modifier})}if(m.length===1)for(let d of we(i,m[0]))yield d}}}var ca=new Map([["order-none","order-0"],["break-words","wrap-break-word"]]);function pa(t,r){let i=r.designSystem,e=i.storage[de].get(r.signatureOptions),n=oa(i,t),s=ca.get(n)??null;if(s===null)return t;let a=e.get(n);if(typeof a!="string")return t;let p=e.get(s);if(typeof p!="string"||a!==p)return t;let[u]=we(i,s);return u}function da(t,r){let i=r.designSystem,e=i.storage[yt],n=i.storage[hi],s=wt(t);for(let[a]of s){if(a.kind==="compound")continue;let p=i.printVariant(a),u=e.get(p);if(typeof u!="string")continue;let f=n.get(u);if(f.length!==1)continue;let m=f[0],d=i.parseVariant(m);d!==null&&ue(a,d)}return t}function ma(t,r){let i=r.designSystem,e=i.storage[de].get(r.signatureOptions);if(t.kind==="functional"&&t.value?.kind==="arbitrary"&&t.value.dataType!==null){let n=i.printCandidate({...t,value:{...t.value,dataType:null}});e.get(i.printCandidate(t))===e.get(n)&&(t.value.dataType=null)}return t}function ga(t,r){if(t.kind!=="functional"||t.value?.kind!=="arbitrary")return t;let i=r.designSystem,e=i.storage[de].get(r.signatureOptions),n=e.get(i.printCandidate(t));if(n===null)return t;for(let s of mi(t))if(e.get(i.printCandidate({...t,value:s}))===n)return t.value=s,t;return t}function ha(t){let r=wt(t);for(let[i]of r)if(i.kind==="functional"&&i.root==="data"&&i.value?.kind==="arbitrary"&&!i.value.value.includes("="))i.value={kind:"named",value:i.value.value};else if(i.kind==="functional"&&i.root==="aria"&&i.value?.kind==="arbitrary"&&(i.value.value.endsWith("=true")||i.value.value.endsWith('="true"')||i.value.value.endsWith("='true'"))){let[e,n]=j(i.value.value,"=");if(e[e.length-1]==="~"||e[e.length-1]==="|"||e[e.length-1]==="^"||e[e.length-1]==="$"||e[e.length-1]==="*")continue;i.value={kind:"named",value:i.value.value.slice(0,i.value.value.indexOf("="))}}else i.kind==="functional"&&i.root==="supports"&&i.value?.kind==="arbitrary"&&/^[a-z-][a-z0-9-]*$/i.test(i.value.value)&&(i.value={kind:"named",value:i.value.value});return t}function*mi(t,r=t.value?.value??"",i=new Set){if(i.has(r))return;if(i.add(r),yield{kind:"named",value:r,fraction:null},r.endsWith("%")&&ie(r.slice(0,-1))&&(yield{kind:"named",value:r.slice(0,-1),fraction:null}),r.includes("/")){let[s,a]=r.split("/");P(s)&&P(a)&&(yield{kind:"named",value:s,fraction:`${s}/${a}`})}let e=new Set;for(let s of r.matchAll(/(\d+\/\d+)|(\d+\.?\d+)/g))e.add(s[0].trim());let n=Array.from(e).sort((s,a)=>s.length-a.length);for(let s of n)yield*mi(t,s,i)}function li(t){return!t.some(r=>r.kind==="separator"&&r.value.trim()===",")}function gt(t){let r=t.value.trim();return t.kind==="selector"&&r[0]==="["&&r[r.length-1]==="]"}function va(t,r){let i=[t],e=r.designSystem,n=e.storage[yt],s=wt(t);for(let[a,p]of s)if(a.kind==="compound"&&(a.root==="has"||a.root==="not"||a.root==="in")&&a.modifier!==null&&"modifier"in a.variant&&(a.variant.modifier=a.modifier,a.modifier=null),a.kind==="arbitrary"){if(a.relative)continue;let u=Re(a.selector.trim());if(!li(u))continue;if(p===null&&u.length===3&&u[0].kind==="selector"&&u[0].value==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===">"&&u[2].kind==="selector"&&u[2].value==="*"){ue(a,e.parseVariant("*"));continue}if(p===null&&u.length===3&&u[0].kind==="selector"&&u[0].value==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&u[2].value==="*"){ue(a,e.parseVariant("**"));continue}if(p===null&&u.length===3&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&u[2].value==="&"){u.pop(),u.pop(),ue(a,e.parseVariant(`in-[${pe(u)}]`));continue}if(p===null&&u[0].kind==="selector"&&(u[0].value==="@media"||u[0].value==="@supports")){let c=n.get(e.printVariant(a)),w=B(pe(u)),h=!1;if(I(w,y=>{if(y.kind==="word"&&y.value==="not")return h=!0,E.Replace([])}),w=B(Z(w)),I(w,y=>{y.kind==="separator"&&y.value!==" "&&y.value.trim()===""&&(y.value=" ")}),h){let y=e.parseVariant(`not-[${Z(w)}]`);if(y===null)continue;let x=n.get(e.printVariant(y));if(c===x){ue(a,y);continue}}}let f=null;p===null&&u.length===3&&u[0].kind==="selector"&&u[0].value.trim()==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===">"&&u[2].kind==="selector"&&(gt(u[2])||u[2].value[0]===":")&&(u=[u[2]],f=e.parseVariant("*")),p===null&&u.length===3&&u[0].kind==="selector"&&u[0].value.trim()==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&(gt(u[2])||u[2].value[0]===":")&&(u=[u[2]],f=e.parseVariant("**"));let m=u.filter(c=>!(c.kind==="selector"&&c.value.trim()==="&"));if(m.length!==1)continue;let d=m[0];if(d.kind==="function"&&d.value===":is"){if(!li(d.nodes)||d.nodes.length!==1||!gt(d.nodes[0]))continue;d=d.nodes[0]}if(d.kind==="function"&&d.value[0]===":"||d.kind==="selector"&&d.value[0]===":"){let c=d,w=!1;if(c.kind==="function"&&c.value===":not"){if(w=!0,c.nodes.length!==1||c.nodes[0].kind!=="selector"&&c.nodes[0].kind!=="function"||c.nodes[0].value[0]!==":")continue;c=c.nodes[0]}let h=(x=>{if(x===":nth-child"&&c.kind==="function"&&c.nodes.length===1&&c.nodes[0].kind==="value"&&c.nodes[0].value==="odd")return w?(w=!1,"even"):"odd";if(x===":nth-child"&&c.kind==="function"&&c.nodes.length===1&&c.nodes[0].kind==="value"&&c.nodes[0].value==="even")return w?(w=!1,"odd"):"even";for(let[$,A]of[[":nth-child","nth"],[":nth-last-child","nth-last"],[":nth-of-type","nth-of-type"],[":nth-last-of-type","nth-of-last-type"]])if(x===$&&c.kind==="function"&&c.nodes.length===1)return c.nodes.length===1&&c.nodes[0].kind==="value"&&P(c.nodes[0].value)?`${A}-${c.nodes[0].value}`:`${A}-[${pe(c.nodes)}]`;if(w){let $=n.get(e.printVariant(a)),A=n.get(`not-[${x}]`);if($===A)return`[&${x}]`}return null})(c.value);if(h===null){if(f)return ue(a,{kind:"arbitrary",selector:d.value,relative:!1}),[f,a];continue}w&&(h=`not-${h}`);let y=e.parseVariant(h);if(y===null)continue;ue(a,y)}else if(gt(d)){let c=jr(d.value);if(c===null)continue;if(c.attribute.startsWith("data-")){let w=c.attribute.slice(5);ue(a,{kind:"functional",root:"data",modifier:null,value:c.value===null?{kind:"named",value:w}:{kind:"arbitrary",value:`${w}${c.operator}${c.quote??""}${c.value}${c.quote??""}${c.sensitivity?` ${c.sensitivity}`:""}`}})}else if(c.attribute.startsWith("aria-")){let w=c.attribute.slice(5);ue(a,{kind:"functional",root:"aria",modifier:null,value:c.value===null?{kind:"arbitrary",value:w}:c.operator==="="&&c.value==="true"&&c.sensitivity===null?{kind:"named",value:w}:{kind:"arbitrary",value:`${c.attribute}${c.operator}${c.quote??""}${c.value}${c.quote??""}${c.sensitivity?` ${c.sensitivity}`:""}`}})}else ue(a,{kind:"arbitrary",selector:d.value,relative:!1})}if(f)return[f,a]}return i}function wa(t,r){if(t.kind!=="functional"&&t.kind!=="arbitrary"||t.modifier===null)return t;let i=r.designSystem,e=i.storage[de].get(r.signatureOptions),n=e.get(i.printCandidate(t)),s=t.modifier;if(n===e.get(i.printCandidate({...t,modifier:null})))return t.modifier=null,t;{let a={kind:"named",value:s.value.endsWith("%")?s.value.includes(".")?`${Number(s.value.slice(0,-1))}`:s.value.slice(0,-1):s.value,fraction:null};if(n===e.get(i.printCandidate({...t,modifier:a})))return t.modifier=a,t}{let a={kind:"named",value:`${parseFloat(s.value)*100}`,fraction:null};if(n===e.get(i.printCandidate({...t,modifier:a})))return t.modifier=a,t}return t}var de=Symbol();function ya(t){return new K(r=>new K(i=>{try{i=t.theme.prefix&&!i.startsWith(t.theme.prefix)?`${t.theme.prefix}:${i}`:i;let e=[G(".x",[F("@apply",i)])];return Sa(t,()=>{for(let s of t.parseCandidate(i))t.compileAstNodes(s,1);Ae(e,t)}),gi(t,e,r),re(e)}catch{return Symbol()}}))}function gi(t,r,i){let{rem:e}=i;return I(r,{enter(n,s){if(n.kind==="declaration"){if(n.value===void 0||n.property==="--tw-sort")return E.Replace([]);if(n.property.startsWith("--tw-")&&(s.parent?.nodes??[]).some(a=>a.kind==="declaration"&&n.value===a.value&&n.important===a.important&&!a.property.startsWith("--tw-")))return E.Replace([]);if(i.features&1){let a=qr(n,i.features);if(a)return E.Replace(a)}n.value.includes("var(")&&(n.value=ka(n.value,t)),n.value=dt(n.value,e),n.value=be(n.value)}else{if(n.kind==="context"||n.kind==="at-root")return E.Replace(n.nodes);if(n.kind==="comment")return E.Replace([]);if(n.kind==="at-rule"&&n.name==="@property")return E.Replace([])}},exit(n){if(n.kind==="rule"||n.kind==="at-rule"){if(n.nodes.length>1){let s=new Set;for(let a=n.nodes.length-1;a>=0;a--){let p=n.nodes[a];p.kind==="declaration"&&p.value!==void 0&&(s.has(p.property)&&n.nodes.splice(a,1),s.add(p.property))}}n.nodes.sort((s,a)=>s.kind!=="declaration"||a.kind!=="declaration"?0:s.property.localeCompare(a.property))}}}),r}function ka(t,r){let i=!1,e=B(t),n=new Set;return I(e,s=>{if(s.kind!=="function"||s.value!=="var"||s.nodes.length!==1&&s.nodes.length<3)return;let a=s.nodes[0].value;r.theme.prefix&&a.startsWith(`--${r.theme.prefix}-`)&&(a=a.slice(`--${r.theme.prefix}-`.length));let p=r.resolveThemeValue(a);if(!n.has(a)&&(n.add(a),p!==void 0&&(s.nodes.length===1&&(i=!0,s.nodes.push(...B(`,${p}`))),s.nodes.length>=3))){let u=Z(s.nodes),f=`${s.nodes[0].value},${p}`;if(u===f)return i=!0,E.Replace(B(p))}}),i?Z(e):t}var Wt=Symbol();function ba(){return new K(t=>new K(r=>new K(i=>new Set)))}var vt=Symbol();function xa(t){return new K(r=>new K(i=>{let e=new K(s=>new Set);t.theme.prefix&&!i.startsWith(t.theme.prefix)&&(i=`${t.theme.prefix}:${i}`);let n=t.parseCandidate(i);return n.length===0||I(gi(t,t.compileAstNodes(n[0]).map(s=>ee(s.node)),r),s=>{s.kind==="declaration"&&(e.get(s.property).add(s.value),t.storage[Wt].get(r).get(s.property).get(s.value).add(i))}),e}))}var Bt=Symbol();function Aa(t){return new K(r=>{let i=t.storage[de].get(r),e=new K(()=>[]);for(let[n,s]of t.getClassList()){let a=i.get(n);if(typeof a=="string"){if(n[0]==="-"&&n.endsWith("-0")){let p=i.get(n.slice(1));if(typeof p=="string"&&a===p)continue}e.get(a).push(n),t.storage[vt].get(r).get(n);for(let p of s.modifiers){if(ie(p))continue;let u=`${n}/${p}`,f=i.get(u);typeof f=="string"&&(e.get(f).push(u),t.storage[vt].get(r).get(u))}}}return e})}var yt=Symbol();function Ca(t){return new K(r=>{try{r=t.theme.prefix&&!r.startsWith(t.theme.prefix)?`${t.theme.prefix}:${r}`:r;let i=[G(".x",[F("@apply",`${r}:flex`)])];return Ae(i,t),I(i,n=>{if(n.kind==="at-rule"&&n.params.includes(" "))n.params=n.params.replaceAll(" ","");else if(n.kind==="rule"){let s=Re(n.selector),a=!1;I(s,p=>{if(p.kind==="separator"&&p.value!==" ")p.value=p.value.trim(),a=!0;else if(p.kind==="function"&&p.value===":is"){if(p.nodes.length===1)return a=!0,E.Replace(p.nodes);if(p.nodes.length===2&&p.nodes[0].kind==="selector"&&p.nodes[0].value==="*"&&p.nodes[1].kind==="selector"&&p.nodes[1].value[0]===":")return a=!0,E.Replace(p.nodes[1])}else p.kind==="function"&&p.value[0]===":"&&p.nodes[0]?.kind==="selector"&&p.nodes[0]?.value[0]===":"&&(a=!0,p.nodes.unshift({kind:"selector",value:"*"}))}),a&&(n.selector=pe(s))}}),re(i)}catch{return Symbol()}})}var hi=Symbol();function $a(t){let r=t.storage[yt],i=new K(()=>[]);for(let[e,n]of t.variants.entries())if(n.kind==="static"){let s=r.get(e);if(typeof s!="string")continue;i.get(s).push(e)}return i}function Sa(t,r){let i=t.theme.values.get,e=new Set;t.theme.values.get=n=>{let s=i.call(t.theme.values,n);return s===void 0||s.options&1&&(e.add(s),s.options&=-2),s};try{return r()}finally{t.theme.values.get=i;for(let n of e)n.options|=1}}function*Ta(t){let r=t.length,i=1n<<BigInt(r);for(let e=r;e>=2;e--){let n=(1n<<BigInt(e))-1n;for(;n<i;){let s=[];for(let u=0;u<r;u++)n>>BigInt(u)&1n&&s.push(t[u]);yield s;let a=n&-n,p=n+a;n=((p^n)>>2n)/a|p}}}function si(t,r){if(typeof t.intersection=="function")return t.intersection(r);if(t.size===0||r.size===0)return new Set;let i=new Set(t);for(let e of r)i.has(e)||i.delete(e);return i}var Na=/^\d+\/\d+$/;function vi(t){let r=new K(n=>({name:n,utility:n,fraction:!1,modifiers:[]}));for(let n of t.utilities.keys("static")){if(t.utilities.getCompletions(n).length===0)continue;let a=r.get(n);a.fraction=!1,a.modifiers=[]}for(let n of t.utilities.keys("functional")){let s=t.utilities.getCompletions(n);for(let a of s)for(let p of a.values){let u=p!==null&&Na.test(p),f=p===null?n:`${n}-${p}`,m=r.get(f);if(m.utility=n,m.fraction||=u,m.modifiers.push(...a.modifiers),a.supportsNegative){let d=r.get(`-${f}`);d.utility=`-${n}`,d.fraction||=u,d.modifiers.push(...a.modifiers)}m.modifiers=Array.from(new Set(m.modifiers))}}if(r.size===0)return[];let i=Array.from(r.values());return i.sort((n,s)=>pt(n.name,s.name)),Ea(i)}function Ea(t){let r=[],i=null,e=new Map,n=new K(()=>[]);for(let a of t){let{utility:p,fraction:u}=a;i||(i={utility:p,items:[]},e.set(p,i)),p!==i.utility&&(r.push(i),i={utility:p,items:[]},e.set(p,i)),u?n.get(p).push(a):i.items.push(a)}i&&r[r.length-1]!==i&&r.push(i);for(let[a,p]of n){let u=e.get(a);u&&u.items.push(...p)}let s=[];for(let a of r)for(let p of a.items)s.push([p.name,{modifiers:p.modifiers}]);return s}function wi(t){let r=[];for(let[e,n]of t.variants.entries()){let p=function({value:u,modifier:f}={}){let m=e;u&&(m+=s?`-${u}`:u),f&&(m+=`/${f}`);let d=t.parseVariant(m);if(!d)return[];let c=G(".__placeholder__",[]);if(ze(c,d,t.variants)===null)return[];let w=[];return I(c.nodes,{exit(h,y){if(h.kind!=="rule"&&h.kind!=="at-rule"||h.nodes.length>0)return;let x=y.path();x.push(h),x.sort((k,U)=>{let N=k.kind==="at-rule",O=U.kind==="at-rule";return N&&!O?-1:!N&&O?1:0});let $=x.flatMap(k=>k.kind==="rule"?k.selector==="&"?[]:[k.selector]:k.kind==="at-rule"?[`${k.name} ${k.params}`]:[]),A="";for(let k=$.length-1;k>=0;k--)A=A===""?$[k]:`${$[k]} { ${A} }`;w.push(A)}}),w};var i=p;if(n.kind==="arbitrary")continue;let s=e!=="@",a=t.variants.getCompletions(e);switch(n.kind){case"static":{r.push({name:e,values:a,isArbitrary:!1,hasDash:s,selectors:p});break}case"functional":{r.push({name:e,values:a,isArbitrary:!0,hasDash:s,selectors:p});break}case"compound":{r.push({name:e,values:a,isArbitrary:!0,hasDash:s,selectors:p});break}}}return r}function yi(t,r){let{astNodes:i,nodeSorting:e}=Ce(Array.from(r),t),n=new Map(r.map(a=>[a,null])),s=0n;for(let a of i){let p=e.get(a)?.candidate;p&&n.set(p,n.get(p)??s++)}return r.map(a=>[a,n.get(a)??null])}var kt=/^@?[a-z0-9][a-zA-Z0-9_-]*(?<![_-])$/;var Yt=class{compareFns=new Map;variants=new Map;completions=new Map;groupOrder=null;lastOrder=0;static(r,i,{compounds:e,order:n}={}){this.set(r,{kind:"static",applyFn:i,compoundsWith:0,compounds:e??2,order:n})}fromAst(r,i,e){let n=[],s=!1;I(i,a=>{a.kind==="rule"?n.push(a.selector):a.kind==="at-rule"&&a.name==="@variant"?s=!0:a.kind==="at-rule"&&a.name!=="@slot"&&n.push(`${a.name} ${a.params}`)}),this.static(r,a=>{let p=i.map(ee);s&&Qe(p,e),Gt(p,a.nodes),a.nodes=p},{compounds:Pe(n)})}functional(r,i,{compounds:e,order:n}={}){this.set(r,{kind:"functional",applyFn:i,compoundsWith:0,compounds:e??2,order:n})}compound(r,i,e,{compounds:n,order:s}={}){this.set(r,{kind:"compound",applyFn:e,compoundsWith:i,compounds:n??2,order:s})}group(r,i){this.groupOrder=this.nextOrder(),i&&this.compareFns.set(this.groupOrder,i),r(),this.groupOrder=null}has(r){return this.variants.has(r)}get(r){return this.variants.get(r)}kind(r){return this.variants.get(r)?.kind}compoundsWith(r,i){let e=this.variants.get(r),n=typeof i=="string"?this.variants.get(i):i.kind==="arbitrary"?{compounds:Pe([i.selector])}:this.variants.get(i.root);return!(!e||!n||e.kind!=="compound"||n.compounds===0||e.compoundsWith===0||(e.compoundsWith&n.compounds)===0)}suggest(r,i){this.completions.set(r,i)}getCompletions(r){return this.completions.get(r)?.()??[]}compare(r,i){if(r===i)return 0;if(r===null)return-1;if(i===null)return 1;if(r.kind==="arbitrary"&&i.kind==="arbitrary")return r.selector<i.selector?-1:1;if(r.kind==="arbitrary")return 1;if(i.kind==="arbitrary")return-1;let e=this.variants.get(r.root).order,n=this.variants.get(i.root).order,s=e-n;if(s!==0)return s;if(r.kind==="compound"&&i.kind==="compound"){let f=this.compare(r.variant,i.variant);return f!==0?f:r.modifier&&i.modifier?r.modifier.value<i.modifier.value?-1:1:r.modifier?1:i.modifier?-1:0}let a=this.compareFns.get(e);if(a!==void 0)return a(r,i);if(r.root!==i.root)return r.root<i.root?-1:1;let p=r.value,u=i.value;return p===null?-1:u===null||p.kind==="arbitrary"&&u.kind!=="arbitrary"?1:p.kind!=="arbitrary"&&u.kind==="arbitrary"||p.value<u.value?-1:1}keys(){return this.variants.keys()}entries(){return this.variants.entries()}set(r,{kind:i,applyFn:e,compounds:n,compoundsWith:s,order:a}){let p=this.variants.get(r);p?Object.assign(p,{kind:i,applyFn:e,compounds:n}):(a===void 0&&(this.lastOrder=this.nextOrder(),a=this.lastOrder),this.variants.set(r,{kind:i,applyFn:e,order:a,compoundsWith:s,compounds:n}))}nextOrder(){return this.groupOrder??this.lastOrder+1}};function Pe(t){let r=0;for(let i of t){if(i[0]==="@"){if(!i.startsWith("@media")&&!i.startsWith("@supports")&&!i.startsWith("@container"))return 0;r|=1;continue}if(i.includes("::"))return 0;r|=2}return r}function bi(t){let r=new Yt;function i(f,m,{compounds:d}={}){d=d??Pe(m),r.static(f,c=>{c.nodes=m.map(w=>J(w,c.nodes))},{compounds:d})}i("*",[":is(& > *)"],{compounds:0}),i("**",[":is(& *)"],{compounds:0});function e(f,m){return m.map(d=>{d=d.trim();let c=j(d," ");return c[0]==="not"?c.slice(1).join(" "):f==="@container"?c[0][0]==="("?`not ${d}`:c[1]==="not"?`${c[0]} ${c.slice(2).join(" ")}`:`${c[0]} not ${c.slice(1).join(" ")}`:`not ${d}`})}let n=["@media","@supports","@container"];function s(f){for(let m of n){if(m!==f.name)continue;let d=j(f.params,",");return d.length>1?null:(d=e(f.name,d),F(f.name,d.join(", ")))}return null}function a(f){return f.includes("::")?null:`&:not(${j(f,",").map(d=>(d=d.replaceAll("&","*"),d)).join(", ")})`}r.compound("not",3,(f,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative||m.modifier)return null;let d=!1;if(I([f],(c,w)=>{if(c.kind!=="rule"&&c.kind!=="at-rule")return E.Continue;if(c.nodes.length>0)return E.Continue;let h=[],y=[],x=w.path();x.push(c);for(let A of x)A.kind==="at-rule"?h.push(A):A.kind==="rule"&&y.push(A);if(h.length>1)return E.Stop;if(y.length>1)return E.Stop;let $=[];for(let A of y){let k=a(A.selector);if(!k)return d=!1,E.Stop;$.push(G(k,[]))}for(let A of h){let k=s(A);if(!k)return d=!1,E.Stop;$.push(k)}return Object.assign(f,G("&",$)),d=!0,E.Skip}),f.kind==="rule"&&f.selector==="&"&&f.nodes.length===1&&Object.assign(f,f.nodes[0]),!d)return null}),r.suggest("not",()=>Array.from(r.keys()).filter(f=>r.compoundsWith("not",f))),r.compound("group",2,(f,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative)return null;let d=m.modifier?`:where(.${t.prefix?`${t.prefix}\\:`:""}group\\/${m.modifier.value})`:`:where(.${t.prefix?`${t.prefix}\\:`:""}group)`,c=!1;if(I([f],(w,h)=>{if(w.kind!=="rule")return E.Continue;for(let x of h.path())if(x.kind==="rule")return c=!1,E.Stop;let y=w.selector.replaceAll("&",d);j(y,",").length>1&&(y=`:is(${y})`),w.selector=`&:is(${y} *)`,c=!0}),!c)return null}),r.suggest("group",()=>Array.from(r.keys()).filter(f=>r.compoundsWith("group",f))),r.compound("peer",2,(f,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative)return null;let d=m.modifier?`:where(.${t.prefix?`${t.prefix}\\:`:""}peer\\/${m.modifier.value})`:`:where(.${t.prefix?`${t.prefix}\\:`:""}peer)`,c=!1;if(I([f],(w,h)=>{if(w.kind!=="rule")return E.Continue;for(let x of h.path())if(x.kind==="rule")return c=!1,E.Stop;let y=w.selector.replaceAll("&",d);j(y,",").length>1&&(y=`:is(${y})`),w.selector=`&:is(${y} ~ *)`,c=!0}),!c)return null}),r.suggest("peer",()=>Array.from(r.keys()).filter(f=>r.compoundsWith("peer",f))),i("first-letter",["&::first-letter"]),i("first-line",["&::first-line"]),i("marker",["& *::marker","&::marker","& *::-webkit-details-marker","&::-webkit-details-marker"]),i("selection",["& *::selection","&::selection"]),i("file",["&::file-selector-button"]),i("placeholder",["&::placeholder"]),i("backdrop",["&::backdrop"]),i("details-content",["&::details-content"]);{let f=function(){return W([F("@property","--tw-content",[o("syntax",'"*"'),o("initial-value",'""'),o("inherits","false")])])};var p=f;r.static("before",m=>{m.nodes=[G("&::before",[f(),o("content","var(--tw-content)"),...m.nodes])]},{compounds:0}),r.static("after",m=>{m.nodes=[G("&::after",[f(),o("content","var(--tw-content)"),...m.nodes])]},{compounds:0})}i("first",["&:first-child"]),i("last",["&:last-child"]),i("only",["&:only-child"]),i("odd",["&:nth-child(odd)"]),i("even",["&:nth-child(even)"]),i("first-of-type",["&:first-of-type"]),i("last-of-type",["&:last-of-type"]),i("only-of-type",["&:only-of-type"]),i("visited",["&:visited"]),i("target",["&:target"]),i("open",["&:is([open], :popover-open, :open)"]),i("default",["&:default"]),i("checked",["&:checked"]),i("indeterminate",["&:indeterminate"]),i("placeholder-shown",["&:placeholder-shown"]),i("autofill",["&:autofill"]),i("optional",["&:optional"]),i("required",["&:required"]),i("valid",["&:valid"]),i("invalid",["&:invalid"]),i("user-valid",["&:user-valid"]),i("user-invalid",["&:user-invalid"]),i("in-range",["&:in-range"]),i("out-of-range",["&:out-of-range"]),i("read-only",["&:read-only"]),i("empty",["&:empty"]),i("focus-within",["&:focus-within"]),r.static("hover",f=>{f.nodes=[G("&:hover",[F("@media","(hover: hover)",f.nodes)])]}),i("focus",["&:focus"]),i("focus-visible",["&:focus-visible"]),i("active",["&:active"]),i("enabled",["&:enabled"]),i("disabled",["&:disabled"]),i("inert",["&:is([inert], [inert] *)"]),r.compound("in",2,(f,m)=>{if(m.modifier)return null;let d=!1;if(I([f],(c,w)=>{if(c.kind!=="rule")return E.Continue;for(let h of w.path())if(h.kind==="rule")return d=!1,E.Stop;c.selector=`:where(${c.selector.replaceAll("&","*")}) &`,d=!0}),!d)return null}),r.suggest("in",()=>Array.from(r.keys()).filter(f=>r.compoundsWith("in",f))),r.compound("has",2,(f,m)=>{if(m.modifier)return null;let d=!1;if(I([f],(c,w)=>{if(c.kind!=="rule")return E.Continue;for(let h of w.path())if(h.kind==="rule")return d=!1,E.Stop;c.selector=`&:has(${c.selector.replaceAll("&","*")})`,d=!0}),!d)return null}),r.suggest("has",()=>Array.from(r.keys()).filter(f=>r.compoundsWith("has",f))),r.functional("aria",(f,m)=>{if(!m.value||m.modifier)return null;m.value.kind==="arbitrary"?f.nodes=[G(`&[aria-${ki(m.value.value)}]`,f.nodes)]:f.nodes=[G(`&[aria-${m.value.value}="true"]`,f.nodes)]}),r.suggest("aria",()=>["busy","checked","disabled","expanded","hidden","pressed","readonly","required","selected"]),r.functional("data",(f,m)=>{if(!m.value||m.modifier)return null;f.nodes=[G(`&[data-${ki(m.value.value)}]`,f.nodes)]}),r.functional("nth",(f,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!P(m.value.value))return null;f.nodes=[G(`&:nth-child(${m.value.value})`,f.nodes)]}),r.functional("nth-last",(f,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!P(m.value.value))return null;f.nodes=[G(`&:nth-last-child(${m.value.value})`,f.nodes)]}),r.functional("nth-of-type",(f,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!P(m.value.value))return null;f.nodes=[G(`&:nth-of-type(${m.value.value})`,f.nodes)]}),r.functional("nth-last-of-type",(f,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!P(m.value.value))return null;f.nodes=[G(`&:nth-last-of-type(${m.value.value})`,f.nodes)]}),r.functional("supports",(f,m)=>{if(!m.value||m.modifier)return null;let d=m.value.value;if(d===null)return null;if(/^[\w-]*\s*\(/.test(d)){let c=d.replace(/\b(and|or|not)\b/g," $1 ");f.nodes=[F("@supports",c,f.nodes)];return}d.includes(":")||(d=`${d}: var(--tw)`),(d[0]!=="("||d[d.length-1]!==")")&&(d=`(${d})`),f.nodes=[F("@supports",d,f.nodes)]},{compounds:1}),i("motion-safe",["@media (prefers-reduced-motion: no-preference)"]),i("motion-reduce",["@media (prefers-reduced-motion: reduce)"]),i("contrast-more",["@media (prefers-contrast: more)"]),i("contrast-less",["@media (prefers-contrast: less)"]);{let f=function(m,d,c,w){if(m===d)return 0;let h=w.get(m);if(h===null)return c==="asc"?-1:1;let y=w.get(d);return y===null?c==="asc"?1:-1:Ve(h,y,c)};var u=f;{let m=t.namespace("--breakpoint"),d=new K(c=>{switch(c.kind){case"static":return t.resolveValue(c.root,["--breakpoint"])??null;case"functional":{if(!c.value||c.modifier)return null;let w=null;return c.value.kind==="arbitrary"?w=c.value.value:c.value.kind==="named"&&(w=t.resolveValue(c.value.value,["--breakpoint"])),!w||w.includes("var(")?null:w}case"arbitrary":case"compound":return null}});r.group(()=>{r.functional("max",(c,w)=>{if(w.modifier)return null;let h=d.get(w);if(h===null)return null;c.nodes=[F("@media",`(width < ${h})`,c.nodes)]},{compounds:1})},(c,w)=>f(c,w,"desc",d)),r.suggest("max",()=>Array.from(m.keys()).filter(c=>c!==null)),r.group(()=>{for(let[c,w]of t.namespace("--breakpoint"))c!==null&&r.static(c,h=>{h.nodes=[F("@media",`(width >= ${w})`,h.nodes)]},{compounds:1});r.functional("min",(c,w)=>{if(w.modifier)return null;let h=d.get(w);if(h===null)return null;c.nodes=[F("@media",`(width >= ${h})`,c.nodes)]},{compounds:1})},(c,w)=>f(c,w,"asc",d)),r.suggest("min",()=>Array.from(m.keys()).filter(c=>c!==null))}{let m=t.namespace("--container"),d=new K(c=>{switch(c.kind){case"functional":{if(c.value===null)return null;let w=null;return c.value.kind==="arbitrary"?w=c.value.value:c.value.kind==="named"&&(w=t.resolveValue(c.value.value,["--container"])),!w||w.includes("var(")?null:w}case"static":case"arbitrary":case"compound":return null}});r.group(()=>{r.functional("@max",(c,w)=>{let h=d.get(w);if(h===null)return null;c.nodes=[F("@container",w.modifier?`${w.modifier.value} (width < ${h})`:`(width < ${h})`,c.nodes)]},{compounds:1})},(c,w)=>f(c,w,"desc",d)),r.suggest("@max",()=>Array.from(m.keys()).filter(c=>c!==null)),r.group(()=>{r.functional("@",(c,w)=>{let h=d.get(w);if(h===null)return null;c.nodes=[F("@container",w.modifier?`${w.modifier.value} (width >= ${h})`:`(width >= ${h})`,c.nodes)]},{compounds:1}),r.functional("@min",(c,w)=>{let h=d.get(w);if(h===null)return null;c.nodes=[F("@container",w.modifier?`${w.modifier.value} (width >= ${h})`:`(width >= ${h})`,c.nodes)]},{compounds:1})},(c,w)=>f(c,w,"asc",d)),r.suggest("@min",()=>Array.from(m.keys()).filter(c=>c!==null)),r.suggest("@",()=>Array.from(m.keys()).filter(c=>c!==null))}}return i("portrait",["@media (orientation: portrait)"]),i("landscape",["@media (orientation: landscape)"]),i("ltr",['&:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *)']),i("rtl",['&:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)']),i("dark",["@media (prefers-color-scheme: dark)"]),i("starting",["@starting-style"]),i("print",["@media print"]),i("forced-colors",["@media (forced-colors: active)"]),i("inverted-colors",["@media (inverted-colors: inverted)"]),i("pointer-none",["@media (pointer: none)"]),i("pointer-coarse",["@media (pointer: coarse)"]),i("pointer-fine",["@media (pointer: fine)"]),i("any-pointer-none",["@media (any-pointer: none)"]),i("any-pointer-coarse",["@media (any-pointer: coarse)"]),i("any-pointer-fine",["@media (any-pointer: fine)"]),i("noscript",["@media (scripting: none)"]),r}function ki(t){if(t.includes("=")){let[r,...i]=j(t,"="),e=i.join("=").trim();if(e[0]==="'"||e[0]==='"')return t;if(e.length>1){let n=e[e.length-1];if(e[e.length-2]===" "&&(n==="i"||n==="I"||n==="s"||n==="S"))return`${r}="${e.slice(0,-2)}" ${n}`}return`${r}="${e}"`}return t}function Gt(t,r){I(t,i=>{if(i.kind==="at-rule"&&i.name==="@slot")return E.Replace(r);if(i.kind==="at-rule"&&(i.name==="@keyframes"||i.name==="@property"))return Object.assign(i,W([F(i.name,i.params,i.nodes)])),E.Skip})}function Qe(t,r){let i=0;return I(t,e=>{if(e.kind!=="at-rule"||e.name!=="@variant")return;let n=G("&",e.nodes),s=e.params,a=r.parseVariant(s);if(a===null)throw new Error(`Cannot use \`@variant\` with unknown variant: ${s}`);if(ze(n,a,r.variants)===null)throw new Error(`Cannot use \`@variant\` with variant: ${s}`);return i|=32,E.Replace(n)}),i}function xi(t,r){let i=Dr(t),e=bi(t),n=new K(d=>Nr(d,m)),s=new K(d=>Array.from(Vr(d,m))),a=new K(d=>new K(c=>{let w=Ai(c,m,d);try{De(w.map(({node:h})=>h),m),Qe(w.map(({node:h})=>h),m)}catch{return[]}return w})),p=new K(d=>{for(let c of st(d))t.markUsedVariable(c)});function u(d){let c=[];for(let w of d){let h=!0,{astNodes:y}=Ce([w],m,{onInvalidCandidate(){h=!1}});r&&I(y,x=>(x.src??=r,E.Continue)),y=Te(y,m,0),c.push(h?y:[])}return c}function f(d){return u(d).map(c=>c.length>0?re(c):null)}let m={theme:t,utilities:i,variants:e,invalidCandidates:new Set,important:!1,candidatesToCss:f,candidatesToAst:u,getClassOrder(d){return yi(this,d)},getClassList(){return vi(this)},getVariants(){return wi(this)},parseCandidate(d){return s.get(d)},parseVariant(d){return n.get(d)},compileAstNodes(d,c=1){return a.get(c).get(d)},printCandidate(d){return Rr(m,d)},printVariant(d){return ut(d)},getVariantOrder(){let d=Array.from(n.values());d.sort((y,x)=>this.variants.compare(y,x));let c=new Map,w,h=0;for(let y of d)y!==null&&(w!==void 0&&this.variants.compare(w,y)!==0&&h++,c.set(y,h),w=y);return c},resolveThemeValue(d,c=!0){let w=d.lastIndexOf("/"),h=null;w!==-1&&(h=d.slice(w+1).trim(),d=d.slice(0,w).trim());let y=t.resolve(null,[d],c?1:0)??void 0;return h&&y?Q(y,h):y},trackUsedVariables(d){p.get(d)},canonicalizeCandidates(d,c){return Mt(this,d,c)},storage:{}};return m}var qt=["container-type","pointer-events","visibility","position","inset","inset-inline","inset-block","inset-inline-start","inset-inline-end","top","right","bottom","left","isolation","z-index","order","grid-column","grid-column-start","grid-column-end","grid-row","grid-row-start","grid-row-end","float","clear","--tw-container-component","margin","margin-inline","margin-block","margin-inline-start","margin-inline-end","margin-top","margin-right","margin-bottom","margin-left","box-sizing","display","field-sizing","aspect-ratio","height","max-height","min-height","width","max-width","min-width","flex","flex-shrink","flex-grow","flex-basis","table-layout","caption-side","border-collapse","border-spacing","transform-origin","translate","--tw-translate-x","--tw-translate-y","--tw-translate-z","scale","--tw-scale-x","--tw-scale-y","--tw-scale-z","rotate","--tw-rotate-x","--tw-rotate-y","--tw-rotate-z","--tw-skew-x","--tw-skew-y","transform","animation","cursor","touch-action","--tw-pan-x","--tw-pan-y","--tw-pinch-zoom","resize","scroll-snap-type","--tw-scroll-snap-strictness","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-margin-inline","scroll-margin-block","scroll-margin-inline-start","scroll-margin-inline-end","scroll-margin-top","scroll-margin-right","scroll-margin-bottom","scroll-margin-left","scroll-padding","scroll-padding-inline","scroll-padding-block","scroll-padding-inline-start","scroll-padding-inline-end","scroll-padding-top","scroll-padding-right","scroll-padding-bottom","scroll-padding-left","list-style-position","list-style-type","list-style-image","appearance","columns","break-before","break-inside","break-after","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-template-columns","grid-template-rows","flex-direction","flex-wrap","place-content","place-items","align-content","align-items","justify-content","justify-items","gap","column-gap","row-gap","--tw-space-x-reverse","--tw-space-y-reverse","divide-x-width","divide-y-width","--tw-divide-y-reverse","divide-style","divide-color","place-self","align-self","justify-self","overflow","overflow-x","overflow-y","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-behavior","border-radius","border-start-radius","border-end-radius","border-top-radius","border-right-radius","border-bottom-radius","border-left-radius","border-start-start-radius","border-start-end-radius","border-end-end-radius","border-end-start-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-width","border-inline-width","border-block-width","border-inline-start-width","border-inline-end-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-style","border-inline-style","border-block-style","border-inline-start-style","border-inline-end-style","border-top-style","border-right-style","border-bottom-style","border-left-style","border-color","border-inline-color","border-block-color","border-inline-start-color","border-inline-end-color","border-top-color","border-right-color","border-bottom-color","border-left-color","background-color","background-image","--tw-gradient-position","--tw-gradient-stops","--tw-gradient-via-stops","--tw-gradient-from","--tw-gradient-from-position","--tw-gradient-via","--tw-gradient-via-position","--tw-gradient-to","--tw-gradient-to-position","mask-image","--tw-mask-top","--tw-mask-top-from-color","--tw-mask-top-from-position","--tw-mask-top-to-color","--tw-mask-top-to-position","--tw-mask-right","--tw-mask-right-from-color","--tw-mask-right-from-position","--tw-mask-right-to-color","--tw-mask-right-to-position","--tw-mask-bottom","--tw-mask-bottom-from-color","--tw-mask-bottom-from-position","--tw-mask-bottom-to-color","--tw-mask-bottom-to-position","--tw-mask-left","--tw-mask-left-from-color","--tw-mask-left-from-position","--tw-mask-left-to-color","--tw-mask-left-to-position","--tw-mask-linear","--tw-mask-linear-position","--tw-mask-linear-from-color","--tw-mask-linear-from-position","--tw-mask-linear-to-color","--tw-mask-linear-to-position","--tw-mask-radial","--tw-mask-radial-shape","--tw-mask-radial-size","--tw-mask-radial-position","--tw-mask-radial-from-color","--tw-mask-radial-from-position","--tw-mask-radial-to-color","--tw-mask-radial-to-position","--tw-mask-conic","--tw-mask-conic-position","--tw-mask-conic-from-color","--tw-mask-conic-from-position","--tw-mask-conic-to-color","--tw-mask-conic-to-position","box-decoration-break","background-size","background-attachment","background-clip","background-position","background-repeat","background-origin","mask-composite","mask-mode","mask-type","mask-size","mask-clip","mask-position","mask-repeat","mask-origin","fill","stroke","stroke-width","object-fit","object-position","padding","padding-inline","padding-block","padding-inline-start","padding-inline-end","padding-top","padding-right","padding-bottom","padding-left","text-align","text-indent","vertical-align","font-family","font-size","line-height","font-weight","letter-spacing","text-wrap","overflow-wrap","word-break","text-overflow","hyphens","white-space","color","text-transform","font-style","font-stretch","font-variant-numeric","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","-webkit-font-smoothing","placeholder-color","caret-color","accent-color","color-scheme","opacity","background-blend-mode","mix-blend-mode","box-shadow","--tw-shadow","--tw-shadow-color","--tw-ring-shadow","--tw-ring-color","--tw-inset-shadow","--tw-inset-shadow-color","--tw-inset-ring-shadow","--tw-inset-ring-color","--tw-ring-offset-width","--tw-ring-offset-color","outline","outline-width","outline-offset","outline-color","--tw-blur","--tw-brightness","--tw-contrast","--tw-drop-shadow","--tw-grayscale","--tw-hue-rotate","--tw-invert","--tw-saturate","--tw-sepia","filter","--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","backdrop-filter","transition-property","transition-behavior","transition-delay","transition-duration","transition-timing-function","will-change","contain","content","forced-color-adjust"];function Ce(t,r,{onInvalidCandidate:i,respectImportant:e}={}){let n=new Map,s=[],a=new Map;for(let f of t){if(r.invalidCandidates.has(f)){i?.(f);continue}let m=r.parseCandidate(f);if(m.length===0){i?.(f);continue}a.set(f,m)}let p=0;(e??!0)&&(p|=1);let u=r.getVariantOrder();for(let[f,m]of a){let d=!1;for(let c of m){let w=r.compileAstNodes(c,p);if(w.length!==0){d=!0;for(let{node:h,propertySort:y}of w){let x=0n;for(let $ of c.variants)x|=1n<<BigInt(u.get($));n.set(h,{properties:y,variants:x,candidate:f}),s.push(h)}}}d||i?.(f)}return s.sort((f,m)=>{let d=n.get(f),c=n.get(m);if(d.variants-c.variants!==0n)return Number(d.variants-c.variants);let w=0;for(;w<d.properties.order.length&&w<c.properties.order.length&&d.properties.order[w]===c.properties.order[w];)w+=1;return(d.properties.order[w]??1/0)-(c.properties.order[w]??1/0)||c.properties.count-d.properties.count||pt(d.candidate,c.candidate)}),{astNodes:s,nodeSorting:n}}function Ai(t,r,i){let e=Ra(t,r);if(e.length===0)return[];let n=r.important&&!!(i&1),s=[],a=`.${ye(t.raw)}`;for(let p of e){let u=Oa(p);(t.important||n)&&$i(p);let f={kind:"rule",selector:a,nodes:p};for(let m of t.variants)if(ze(f,m,r.variants)===null)return[];s.push({node:f,propertySort:u})}return s}function ze(t,r,i,e=0){if(r.kind==="arbitrary"){if(r.relative&&e===0)return null;t.nodes=[J(r.selector,t.nodes)];return}let{applyFn:n}=i.get(r.root);if(r.kind==="compound"){let a=F("@slot");if(ze(a,r.variant,i,e+1)===null||r.root==="not"&&a.nodes.length>1)return null;for(let u of a.nodes)if(u.kind!=="rule"&&u.kind!=="at-rule"||n(u,r)===null)return null;I(a.nodes,u=>{if((u.kind==="rule"||u.kind==="at-rule")&&u.nodes.length<=0)return u.nodes=t.nodes,E.Skip}),t.nodes=a.nodes;return}if(n(t,r)===null)return null}function Ci(t){let r=t.options?.types??[];return r.length>1&&r.includes("any")}function Ra(t,r){if(t.kind==="arbitrary"){let a=t.value;return t.modifier&&(a=X(a,t.modifier,r.theme)),a===null?[]:[[o(t.property,a)]]}let i=r.utilities.get(t.root)??[],e=[],n=i.filter(a=>!Ci(a));for(let a of n){if(a.kind!==t.kind)continue;let p=a.compileFn(t);if(p!==void 0){if(p===null)return e;e.push(p)}}if(e.length>0)return e;let s=i.filter(a=>Ci(a));for(let a of s){if(a.kind!==t.kind)continue;let p=a.compileFn(t);if(p!==void 0){if(p===null)return e;e.push(p)}}return e}function $i(t){for(let r of t)r.kind!=="at-root"&&(r.kind==="declaration"?r.important=!0:(r.kind==="rule"||r.kind==="at-rule")&&$i(r.nodes))}function Oa(t){let r=new Set,i=0,e=t.slice(),n=!1;for(;e.length>0;){let s=e.shift();if(s.kind==="declaration"){if(s.value===void 0||(i++,n))continue;if(s.property==="--tw-sort"){let p=qt.indexOf(s.value??"");if(p!==-1){r.add(p),n=!0;continue}}let a=qt.indexOf(s.property);a!==-1&&r.add(a)}else if(s.kind==="rule"||s.kind==="at-rule")for(let a of s.nodes)e.push(a)}return{order:Array.from(r).sort((s,a)=>s-a),count:i}}function Ae(t,r){let i=0,e=J("&",t),n=new Set,s=new K(()=>new Set),a=new K(()=>new Set);I([e],(d,c)=>{if(d.kind==="at-rule"){if(d.name==="@keyframes")return I(d.nodes,w=>{if(w.kind==="at-rule"&&w.name==="@apply")throw new Error("You cannot use `@apply` inside `@keyframes`.")}),E.Skip;if(d.name==="@utility"){let w=d.params.replace(/-\*$/,"");a.get(w).add(d),I(d.nodes,h=>{if(!(h.kind!=="at-rule"||h.name!=="@apply")){n.add(d);for(let y of Si(h,r))s.get(d).add(y)}});return}if(d.name==="@apply"){if(c.parent===null)return;i|=1,n.add(c.parent);for(let w of Si(d,r))for(let h of c.path())n.has(h)&&s.get(h).add(w)}}});let p=new Set,u=[],f=new Set;function m(d,c=[]){if(!p.has(d)){if(f.has(d)){let w=c[(c.indexOf(d)+1)%c.length];throw d.kind==="at-rule"&&d.name==="@utility"&&w.kind==="at-rule"&&w.name==="@utility"&&I(d.nodes,h=>{if(h.kind!=="at-rule"||h.name!=="@apply")return;let y=h.params.split(/\s+/g);for(let x of y)for(let $ of r.parseCandidate(x))switch($.kind){case"arbitrary":break;case"static":case"functional":if(w.params.replace(/-\*$/,"")===$.root)throw new Error(`You cannot \`@apply\` the \`${x}\` utility here because it creates a circular dependency.`);break;default:}}),new Error(`Circular dependency detected:
-
-${re([d])}
-Relies on:
-
-${re([w])}`)}f.add(d);for(let w of s.get(d))for(let h of a.get(w))c.push(d),m(h,c),c.pop();p.add(d),f.delete(d),u.push(d)}}for(let d of n)m(d);for(let d of u)"nodes"in d&&I(d.nodes,c=>{if(c.kind!=="at-rule"||c.name!=="@apply")return;let w=c.params.split(/(\s+)/g),h={},y=0;for(let[x,$]of w.entries())x%2===0&&(h[$]=y),y+=$.length;{let x=Object.keys(h),$=Ce(x,r,{respectImportant:!1,onInvalidCandidate:N=>{if(r.theme.prefix&&!N.startsWith(r.theme.prefix))throw new Error(`Cannot apply unprefixed utility class \`${N}\`. Did you mean \`${r.theme.prefix}:${N}\`?`);if(r.invalidCandidates.has(N))throw new Error(`Cannot apply utility class \`${N}\` because it has been explicitly disabled: https://tailwindcss.com/docs/detecting-classes-in-source-files#explicitly-excluding-classes`);let O=j(N,":");if(O.length>1){let L=O.pop();if(r.candidatesToCss([L])[0]){let _=r.candidatesToCss(O.map(Y=>`${Y}:[--tw-variant-check:1]`)),z=O.filter((Y,q)=>_[q]===null);if(z.length>0){if(z.length===1)throw new Error(`Cannot apply utility class \`${N}\` because the ${z.map(Y=>`\`${Y}\``)} variant does not exist.`);{let Y=new Intl.ListFormat("en",{style:"long",type:"conjunction"});throw new Error(`Cannot apply utility class \`${N}\` because the ${Y.format(z.map(q=>`\`${q}\``))} variants do not exist.`)}}}}throw r.theme.size===0?new Error(`Cannot apply unknown utility class \`${N}\`. Are you using CSS modules or similar and missing \`@reference\`? https://tailwindcss.com/docs/functions-and-directives#reference-directive`):new Error(`Cannot apply unknown utility class \`${N}\``)}}),A=c.src,k=$.astNodes.map(N=>{let O=$.nodeSorting.get(N)?.candidate,L=O?h[O]:void 0;if(N=ee(N),!A||!O||L===void 0)return I([N],z=>{z.src=A}),N;let _=[A[0],A[1],A[2]];return _[1]+=7+L,_[2]=_[1]+O.length,I([N],z=>{z.src=_}),N}),U=[];for(let N of k)if(N.kind==="rule")for(let O of N.nodes)U.push(O);else U.push(N);return E.Replace(U)}});return i}function*Si(t,r){for(let i of t.params.split(/\s+/g))for(let e of r.parseCandidate(i))switch(e.kind){case"arbitrary":break;case"static":case"functional":yield e.root;break;default:}}async function Zt(t,r,i,e=0,n=!1){let s=0,a=[];return I(t,p=>{if(p.kind==="at-rule"&&(p.name==="@import"||p.name==="@reference")){let u=Pa(B(p.params));if(u===null)return;p.name==="@reference"&&(u.media="reference"),s|=2;let{uri:f,layer:m,media:d,supports:c}=u;if(f.startsWith("data:")||f.startsWith("http://")||f.startsWith("https://"))return;let w=ce({},[]);return a.push((async()=>{if(e>100)throw new Error(`Exceeded maximum recursion depth while resolving \`${f}\` in \`${r}\`)`);let h=await i(f,r),y=$e(h.content,{from:n?h.path:void 0});await Zt(y,h.base,i,e+1,n),w.nodes=Ia(p,[ce({base:h.base},y)],m,d,c)})()),E.ReplaceSkip(w)}}),a.length>0&&await Promise.all(a),s}function Pa(t){let r,i=null,e=null,n=null;for(let s=0;s<t.length;s++){let a=t[s];if(a.kind!=="separator"){if(a.kind==="word"&&!r){if(!a.value||a.value[0]!=='"'&&a.value[0]!=="'")return null;r=a.value.slice(1,-1);continue}if(a.kind==="function"&&a.value.toLowerCase()==="url"||!r)return null;if((a.kind==="word"||a.kind==="function")&&a.value.toLowerCase()==="layer"){if(i)return null;if(n)throw new Error("`layer(\u2026)` in an `@import` should come before any other functions or conditions");"nodes"in a?i=Z(a.nodes):i="";continue}if(a.kind==="function"&&a.value.toLowerCase()==="supports"){if(n)return null;n=Z(a.nodes);continue}e=Z(t.slice(s));break}}return r?{uri:r,layer:i,media:e,supports:n}:null}function Ia(t,r,i,e,n){let s=r;if(i!==null){let a=F("@layer",i,s);a.src=t.src,s=[a]}if(e!==null){let a=F("@media",e,s);a.src=t.src,s=[a]}if(n!==null){let a=F("@supports",n[0]==="("?n:`(${n})`,s);a.src=t.src,s=[a]}return s}function Me(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let r=Object.getPrototypeOf(t);return r===null||Object.getPrototypeOf(r)===null}function Xe(t,r,i,e=[]){for(let n of r)if(n!=null)for(let s of Reflect.ownKeys(n)){e.push(s);let a=i(t[s],n[s],e);a!==void 0?t[s]=a:!Me(t[s])||!Me(n[s])?t[s]=n[s]:t[s]=Xe({},[t[s],n[s]],i,e),e.pop()}return t}function bt(t,r,i){return function(n,s){let a=n.lastIndexOf("/"),p=null;a!==-1&&(p=n.slice(a+1).trim(),n=n.slice(0,a).trim());let u=(()=>{let f=Oe(n),[m,d]=_a(t.theme,f),c=i(Ti(r()??{},f)??null);if(typeof c=="string"&&(c=c.replace("<alpha-value>","1")),typeof m!="object")return typeof d!="object"&&d&4?c??m:m;if(c!==null&&typeof c=="object"&&!Array.isArray(c)){let w=Xe({},[c],(h,y)=>y);if(m===null&&Object.hasOwn(c,"__CSS_VALUES__")){let h={};for(let y in c.__CSS_VALUES__)h[y]=c[y],delete w[y];m=h}for(let h in m)h!=="__CSS_VALUES__"&&(c?.__CSS_VALUES__?.[h]&4&&Ti(w,h.split("-"))!==void 0||(w[Se(h)]=m[h]));return w}if(Array.isArray(m)&&Array.isArray(d)&&Array.isArray(c)){let w=m[0],h=m[1];d[0]&4&&(w=c[0]??w);for(let y of Object.keys(h))d[1][y]&4&&(h[y]=c[1][y]??h[y]);return[w,h]}return m??c})();return p&&typeof u=="string"&&(u=Q(u,p)),u??s}}function _a(t,r){if(r.length===1&&r[0].startsWith("--"))return[t.get([r[0]]),t.getOptions(r[0])];let i=je(r),e=new Map,n=new K(()=>new Map),s=t.namespace(`--${i}`);if(s.size===0)return[null,0];let a=new Map;for(let[m,d]of s){if(!m||!m.includes("--")){e.set(m,d),a.set(m,t.getOptions(m?`--${i}-${m}`:`--${i}`));continue}let c=m.indexOf("--"),w=m.slice(0,c),h=m.slice(c+2);h=h.replace(/-([a-z])/g,(y,x)=>x.toUpperCase()),n.get(w===""?null:w).set(h,[d,t.getOptions(`--${i}${m}`)])}let p=t.getOptions(`--${i}`);for(let[m,d]of n){let c=e.get(m);if(typeof c!="string")continue;let w={},h={};for(let[y,[x,$]]of d)w[y]=x,h[y]=$;e.set(m,[c,w]),a.set(m,[p,h])}let u={},f={};for(let[m,d]of e)Vi(u,[m??"DEFAULT"],d);for(let[m,d]of a)Vi(f,[m??"DEFAULT"],d);return r[r.length-1]==="DEFAULT"?[u?.DEFAULT??null,f.DEFAULT??0]:"DEFAULT"in u&&Object.keys(u).length===1?[u.DEFAULT,f.DEFAULT??0]:(u.__CSS_VALUES__=f,[u,f])}function Ti(t,r){for(let i=0;i<r.length;++i){let e=r[i];if(t?.[e]===void 0){if(r[i+1]===void 0)return;r[i+1]=`${e}-${r[i+1]}`;continue}if(typeof t=="string")return;t=t[e]}return t}function Vi(t,r,i){for(let e of r.slice(0,-1))t[e]===void 0&&(t[e]={}),t=t[e];t[r[r.length-1]]=i}var Ni=/^[a-z@][a-zA-Z0-9/%._-]*$/;function Ht({designSystem:t,ast:r,resolvedConfig:i,featuresRef:e,referenceMode:n,src:s}){let a={addBase(p){if(n)return;let u=me(p);e.current|=De(u,t);let f=F("@layer","base",u);I([f],m=>{m.src=s}),r.push(f)},addVariant(p,u){if(!kt.test(p))throw new Error(`\`addVariant('${p}')\` defines an invalid variant name. Variants should only contain alphanumeric, dashes, or underscore characters and start with a lowercase letter or number.`);if(typeof u=="string"){if(u.includes(":merge("))return}else if(Array.isArray(u)){if(u.some(m=>m.includes(":merge(")))return}else if(typeof u=="object"){let m=function(d,c){return Object.entries(d).some(([w,h])=>w.includes(c)||typeof h=="object"&&m(h,c))};var f=m;if(m(u,":merge("))return}typeof u=="string"||Array.isArray(u)?t.variants.static(p,m=>{m.nodes=Ei(u,m.nodes)},{compounds:Pe(typeof u=="string"?[u]:u)}):typeof u=="object"&&t.variants.fromAst(p,me(u),t)},matchVariant(p,u,f){function m(c,w,h){let y=u(c,{modifier:w?.value??null});return Ei(y,h)}try{let c=u("a",{modifier:null});if(typeof c=="string"&&c.includes(":merge("))return;if(Array.isArray(c)&&c.some(w=>w.includes(":merge(")))return}catch{}let d=Object.keys(f?.values??{});t.variants.group(()=>{t.variants.functional(p,(c,w)=>{if(!w.value){if(f?.values&&"DEFAULT"in f.values){c.nodes=m(f.values.DEFAULT,w.modifier,c.nodes);return}return null}if(w.value.kind==="arbitrary")c.nodes=m(w.value.value,w.modifier,c.nodes);else if(w.value.kind==="named"&&f?.values){let h=f.values[w.value.value];if(typeof h!="string")return null;c.nodes=m(h,w.modifier,c.nodes)}else return null})},(c,w)=>{if(c.kind!=="functional"||w.kind!=="functional")return 0;let h=c.value?c.value.value:"DEFAULT",y=w.value?w.value.value:"DEFAULT",x=f?.values?.[h]??h,$=f?.values?.[y]??y;if(f&&typeof f.sort=="function")return f.sort({value:x,modifier:c.modifier?.value??null},{value:$,modifier:w.modifier?.value??null});let A=d.indexOf(h),k=d.indexOf(y);return A=A===-1?d.length:A,k=k===-1?d.length:k,A!==k?A-k:x<$?-1:1}),t.variants.suggest(p,()=>Object.keys(f?.values??{}).filter(c=>c!=="DEFAULT"))},addUtilities(p){p=Array.isArray(p)?p:[p];let u=p.flatMap(m=>Object.entries(m));u=u.flatMap(([m,d])=>j(m,",").map(c=>[c.trim(),d]));let f=new K(()=>[]);for(let[m,d]of u){if(m.startsWith("@keyframes ")){if(!n){let h=J(m,me(d));I([h],y=>{y.src=s}),r.push(h)}continue}let c=Re(m),w=!1;if(I(c,h=>{if(h.kind==="selector"&&h.value[0]==="."&&Ni.test(h.value.slice(1))){let y=h.value;h.value="&";let x=pe(c),$=y.slice(1),A=x==="&"?me(d):[J(x,me(d))];f.get($).push(...A),w=!0,h.value=y;return}if(h.kind==="function"&&h.value===":not")return E.Skip}),!w)throw new Error(`\`addUtilities({ '${m}' : \u2026 })\` defines an invalid utility selector. Utilities must be a single class name and start with a lowercase letter, eg. \`.scrollbar-none\`.`)}for(let[m,d]of f)t.theme.prefix&&I(d,c=>{if(c.kind==="rule"){let w=Re(c.selector);I(w,h=>{h.kind==="selector"&&h.value[0]==="."&&(h.value=`.${t.theme.prefix}\\:${h.value.slice(1)}`)}),c.selector=pe(w)}}),t.utilities.static(m,c=>{let w=d.map(ee);return Ri(w,m,c.raw),e.current|=Ae(w,t),w})},matchUtilities(p,u){let f=u?.type?Array.isArray(u?.type)?u.type:[u.type]:["any"];for(let[d,c]of Object.entries(p)){let w=function({negative:h}){return y=>{if(y.value?.kind==="arbitrary"&&f.length>0&&!f.includes("any")&&(y.value.dataType&&!f.includes(y.value.dataType)||!y.value.dataType&&!H(y.value.value,f)))return;let x=f.includes("color"),$=null,A=!1;{let N=u?.values??{};x&&(N=Object.assign({inherit:"inherit",transparent:"transparent",current:"currentcolor"},N)),y.value?y.value.kind==="arbitrary"?$=y.value.value:y.value.fraction&&N[y.value.fraction]?($=N[y.value.fraction],A=!0):N[y.value.value]?$=N[y.value.value]:N.__BARE_VALUE__&&($=N.__BARE_VALUE__(y.value)??null,A=(y.value.fraction!==null&&$?.includes("/"))??!1):$=N.DEFAULT??null}if($===null)return;let k;{let N=u?.modifiers??null;y.modifier?N==="any"||y.modifier.kind==="arbitrary"?k=y.modifier.value:N?.[y.modifier.value]?k=N[y.modifier.value]:x&&!Number.isNaN(Number(y.modifier.value))?k=`${y.modifier.value}%`:k=null:k=null}if(y.modifier&&k===null&&!A)return y.value?.kind==="arbitrary"?null:void 0;x&&k!==null&&($=Q($,k)),h&&($=`calc(${$} * -1)`);let U=me(c($,{modifier:k}));return Ri(U,d,y.raw),e.current|=Ae(U,t),U}};var m=w;if(!Ni.test(d))throw new Error(`\`matchUtilities({ '${d}' : \u2026 })\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter, eg. \`scrollbar\`.`);u?.supportsNegativeValues&&t.utilities.functional(`-${d}`,w({negative:!0}),{types:f}),t.utilities.functional(d,w({negative:!1}),{types:f}),t.utilities.suggest(d,()=>{let h=u?.values??{},y=new Set(Object.keys(h));y.delete("__BARE_VALUE__"),y.delete("__CSS_VALUES__"),y.has("DEFAULT")&&(y.delete("DEFAULT"),y.add(null));let x=u?.modifiers??{},$=x==="any"?[]:Object.keys(x);return[{supportsNegative:u?.supportsNegativeValues??!1,values:Array.from(y),modifiers:$}]})}},addComponents(p,u){this.addUtilities(p,u)},matchComponents(p,u){this.matchUtilities(p,u)},theme:bt(t,()=>i.theme??{},p=>p),prefix(p){return p},config(p,u){let f=i;if(!p)return f;let m=Oe(p);for(let d=0;d<m.length;++d){let c=m[d];if(f[c]===void 0)return u;f=f[c]}return f??u}};return a.addComponents=a.addComponents.bind(a),a.matchComponents=a.matchComponents.bind(a),a}function me(t){let r=[];t=Array.isArray(t)?t:[t];let i=t.flatMap(e=>Object.entries(e));for(let[e,n]of i)if(n!=null&&n!==!1)if(typeof n!="object"){if(!e.startsWith("--")){if(n==="@slot"){r.push(J(e,[F("@slot")]));continue}e=e.replace(/([A-Z])/g,"-$1").toLowerCase()}r.push(o(e,String(n)))}else if(Array.isArray(n))for(let s of n)typeof s=="string"?r.push(o(e,s)):r.push(J(e,me(s)));else r.push(J(e,me(n)));return r}function Ei(t,r){return(typeof t=="string"?[t]:t).flatMap(e=>{if(e.trim().endsWith("}")){let n=e.replace("}","{@slot}}"),s=$e(n);return Gt(s,r),s}else return J(e,r)})}function Ri(t,r,i){I(t,e=>{if(e.kind==="rule"){let n=Re(e.selector);I(n,s=>{s.kind==="selector"&&s.value===`.${r}`&&(s.value=`.${ye(i)}`)}),e.selector=pe(n)}})}function Oi(t,r){for(let i of Da(r))t.theme.addKeyframes(i)}function Da(t){let r=[];if("keyframes"in t.theme)for(let[i,e]of Object.entries(t.theme.keyframes))r.push(F("@keyframes",i,me(e)));return r}function Pi(t){return{theme:{...rr,colors:({theme:r})=>r("color",{}),extend:{fontSize:({theme:r})=>({...r("text",{})}),boxShadow:({theme:r})=>({...r("shadow",{})}),animation:({theme:r})=>({...r("animate",{})}),aspectRatio:({theme:r})=>({...r("aspect",{})}),borderRadius:({theme:r})=>({...r("radius",{})}),screens:({theme:r})=>({...r("breakpoint",{})}),letterSpacing:({theme:r})=>({...r("tracking",{})}),lineHeight:({theme:r})=>({...r("leading",{})}),transitionDuration:{DEFAULT:t.get(["--default-transition-duration"])??null},transitionTimingFunction:{DEFAULT:t.get(["--default-transition-timing-function"])??null},maxWidth:({theme:r})=>({...r("container",{})})}}}}var Ka={blocklist:[],future:{},experimental:{},prefix:"",important:!1,darkMode:null,theme:{},plugins:[],content:{files:[]}};function Qt(t,r){let i={design:t,configs:[],plugins:[],content:{files:[]},theme:{},extend:{},result:structuredClone(Ka)};for(let n of r)Jt(i,n);for(let n of i.configs)"darkMode"in n&&n.darkMode!==void 0&&(i.result.darkMode=n.darkMode??null),"prefix"in n&&n.prefix!==void 0&&(i.result.prefix=n.prefix??""),"blocklist"in n&&n.blocklist!==void 0&&(i.result.blocklist=n.blocklist??[]),"important"in n&&n.important!==void 0&&(i.result.important=n.important??!1);let e=La(i);return{resolvedConfig:{...i.result,content:i.content,theme:i.theme,plugins:i.plugins},replacedThemeKeys:e}}function Ua(t,r){if(Array.isArray(t)&&Me(t[0]))return t.concat(r);if(Array.isArray(r)&&Me(r[0])&&Me(t))return[t,...r];if(Array.isArray(r))return r}function Jt(t,{config:r,base:i,path:e,reference:n,src:s}){let a=[];for(let f of r.plugins??[])"__isOptionsFunction"in f?a.push({...f(),reference:n,src:s}):"handler"in f?a.push({...f,reference:n,src:s}):a.push({handler:f,reference:n,src:s});if(Array.isArray(r.presets)&&r.presets.length===0)throw new Error("Error in the config file/plugin/preset. An empty preset (`preset: []`) is not currently supported.");for(let f of r.presets??[])Jt(t,{path:e,base:i,config:f,reference:n,src:s});for(let f of a)t.plugins.push(f),f.config&&Jt(t,{path:e,base:i,config:f.config,reference:!!f.reference,src:f.src??s});let p=r.content??[],u=Array.isArray(p)?p:p.files;for(let f of u)t.content.files.push(typeof f=="object"?f:{base:i,pattern:f});t.configs.push(r)}function La(t){let r=new Set,i=bt(t.design,()=>t.theme,n),e=Object.assign(i,{theme:i,colors:tr});function n(s){return typeof s=="function"?s(e)??null:s??null}for(let s of t.configs){let a=s.theme??{},p=a.extend??{};for(let u in a)u!=="extend"&&r.add(u);Object.assign(t.theme,a);for(let u in p)t.extend[u]??=[],t.extend[u].push(p[u])}delete t.theme.extend;for(let s in t.extend){let a=[t.theme[s],...t.extend[s]];t.theme[s]=()=>{let p=a.map(n);return Xe({},p,Ua)}}for(let s in t.theme)t.theme[s]=n(t.theme[s]);if(t.theme.screens&&typeof t.theme.screens=="object")for(let s of Object.keys(t.theme.screens)){let a=t.theme.screens[s];a&&typeof a=="object"&&("raw"in a||"max"in a||"min"in a&&(t.theme.screens[s]=a.min))}return r}function Ii(t,r){let i=t.theme.container||{};if(typeof i!="object"||i===null)return;let e=ja(i,r);e.length!==0&&r.utilities.static("container",()=>e.map(ee))}function ja({center:t,padding:r,screens:i},e){let n=[],s=null;if(t&&n.push(o("margin-inline","auto")),(typeof r=="string"||typeof r=="object"&&r!==null&&"DEFAULT"in r)&&n.push(o("padding-inline",typeof r=="string"?r:r.DEFAULT)),typeof i=="object"&&i!==null){s=new Map;let a=Array.from(e.theme.namespace("--breakpoint").entries());if(a.sort((p,u)=>Ve(p[1],u[1],"asc")),a.length>0){let[p]=a[0];n.push(F("@media",`(width >= --theme(--breakpoint-${p}))`,[o("max-width","none")]))}for(let[p,u]of Object.entries(i)){if(typeof u=="object")if("min"in u)u=u.min;else continue;s.set(p,F("@media",`(width >= ${u})`,[o("max-width",u)]))}}if(typeof r=="object"&&r!==null){let a=Object.entries(r).filter(([p])=>p!=="DEFAULT").map(([p,u])=>[p,e.theme.resolveValue(p,["--breakpoint"]),u]).filter(Boolean);a.sort((p,u)=>Ve(p[1],u[1],"asc"));for(let[p,,u]of a)if(s&&s.has(p))s.get(p).nodes.push(o("padding-inline",u));else{if(s)continue;n.push(F("@media",`(width >= theme(--breakpoint-${p}))`,[o("padding-inline",u)]))}}if(s)for(let[,a]of s)n.push(a);return n}function _i({addVariant:t,config:r}){let i=r("darkMode",null),[e,n=".dark"]=Array.isArray(i)?i:[i];if(e==="variant"){let s;if(Array.isArray(n)||typeof n=="function"?s=n:typeof n=="string"&&(s=[n]),Array.isArray(s))for(let a of s)a===".dark"?(e=!1,console.warn('When using `variant` for `darkMode`, you must provide a selector.\nExample: `darkMode: ["variant", ".your-selector &"]`')):a.includes("&")||(e=!1,console.warn('When using `variant` for `darkMode`, your selector must contain `&`.\nExample `darkMode: ["variant", ".your-selector &"]`'));n=s}e===null||(e==="selector"?t("dark",`&:where(${n}, ${n} *)`):e==="media"?t("dark","@media (prefers-color-scheme: dark)"):e==="variant"?t("dark",n):e==="class"&&t("dark",`&:is(${n} *)`))}function Di(t){for(let[r,i]of[["t","top"],["tr","top right"],["r","right"],["br","bottom right"],["b","bottom"],["bl","bottom left"],["l","left"],["tl","top left"]])t.utilities.suggest(`bg-gradient-to-${r}`,()=>[]),t.utilities.static(`bg-gradient-to-${r}`,()=>[o("--tw-gradient-position",`to ${i} in oklab`),o("background-image","linear-gradient(var(--tw-gradient-stops))")]);t.utilities.suggest("bg-left-top",()=>[]),t.utilities.static("bg-left-top",()=>[o("background-position","left top")]),t.utilities.suggest("bg-right-top",()=>[]),t.utilities.static("bg-right-top",()=>[o("background-position","right top")]),t.utilities.suggest("bg-left-bottom",()=>[]),t.utilities.static("bg-left-bottom",()=>[o("background-position","left bottom")]),t.utilities.suggest("bg-right-bottom",()=>[]),t.utilities.static("bg-right-bottom",()=>[o("background-position","right bottom")]),t.utilities.suggest("object-left-top",()=>[]),t.utilities.static("object-left-top",()=>[o("object-position","left top")]),t.utilities.suggest("object-right-top",()=>[]),t.utilities.static("object-right-top",()=>[o("object-position","right top")]),t.utilities.suggest("object-left-bottom",()=>[]),t.utilities.static("object-left-bottom",()=>[o("object-position","left bottom")]),t.utilities.suggest("object-right-bottom",()=>[]),t.utilities.static("object-right-bottom",()=>[o("object-position","right bottom")]),t.utilities.suggest("max-w-screen",()=>[]),t.utilities.functional("max-w-screen",r=>{if(!r.value||r.value.kind==="arbitrary")return;let i=t.theme.resolve(r.value.value,["--breakpoint"]);if(i)return[o("max-width",i)]}),t.utilities.suggest("overflow-ellipsis",()=>[]),t.utilities.static("overflow-ellipsis",()=>[o("text-overflow","ellipsis")]),t.utilities.suggest("decoration-slice",()=>[]),t.utilities.static("decoration-slice",()=>[o("-webkit-box-decoration-break","slice"),o("box-decoration-break","slice")]),t.utilities.suggest("decoration-clone",()=>[]),t.utilities.static("decoration-clone",()=>[o("-webkit-box-decoration-break","clone"),o("box-decoration-break","clone")]),t.utilities.suggest("flex-shrink",()=>[]),t.utilities.functional("flex-shrink",r=>{if(!r.modifier){if(!r.value)return[o("flex-shrink","1")];if(r.value.kind==="arbitrary")return[o("flex-shrink",r.value.value)];if(P(r.value.value))return[o("flex-shrink",r.value.value)]}}),t.utilities.suggest("flex-grow",()=>[]),t.utilities.functional("flex-grow",r=>{if(!r.modifier){if(!r.value)return[o("flex-grow","1")];if(r.value.kind==="arbitrary")return[o("flex-grow",r.value.value)];if(P(r.value.value))return[o("flex-grow",r.value.value)]}}),t.utilities.suggest("order-none",()=>[]),t.utilities.static("order-none",()=>[o("order","0")]),t.utilities.suggest("break-words",()=>[]),t.utilities.static("break-words",()=>[o("overflow-wrap","break-word")])}function Ki(t,r){let i=t.theme.screens||{},e=r.variants.get("min")?.order??0,n=[];for(let[a,p]of Object.entries(i)){let c=function(w){r.variants.static(a,h=>{h.nodes=[F("@media",d,h.nodes)]},{order:w})};var s=c;let u=r.variants.get(a),f=r.theme.resolveValue(a,["--breakpoint"]);if(u&&f&&!r.theme.hasDefault(`--breakpoint-${a}`))continue;let m=!0;typeof p=="string"&&(m=!1);let d=za(p);m?n.push(c):c(e)}if(n.length!==0){for(let[,a]of r.variants.variants)a.order>e&&(a.order+=n.length);r.variants.compareFns=new Map(Array.from(r.variants.compareFns).map(([a,p])=>(a>e&&(a+=n.length),[a,p])));for(let[a,p]of n.entries())p(e+a+1)}}function za(t){return(Array.isArray(t)?t:[t]).map(i=>typeof i=="string"?{min:i}:i&&typeof i=="object"?i:null).map(i=>{if(i===null)return null;if("raw"in i)return i.raw;let e="";return i.max!==void 0&&(e+=`${i.max} >= `),e+="width",i.min!==void 0&&(e+=` >= ${i.min}`),`(${e})`}).filter(Boolean).join(", ")}function Ui(t,r){let i=t.theme.aria||{},e=t.theme.supports||{},n=t.theme.data||{};if(Object.keys(i).length>0){let s=r.variants.get("aria"),a=s?.applyFn,p=s?.compounds;r.variants.functional("aria",(u,f)=>{let m=f.value;return m&&m.kind==="named"&&m.value in i?a?.(u,{...f,value:{kind:"arbitrary",value:i[m.value]}}):a?.(u,f)},{compounds:p})}if(Object.keys(e).length>0){let s=r.variants.get("supports"),a=s?.applyFn,p=s?.compounds;r.variants.functional("supports",(u,f)=>{let m=f.value;return m&&m.kind==="named"&&m.value in e?a?.(u,{...f,value:{kind:"arbitrary",value:e[m.value]}}):a?.(u,f)},{compounds:p})}if(Object.keys(n).length>0){let s=r.variants.get("data"),a=s?.applyFn,p=s?.compounds;r.variants.functional("data",(u,f)=>{let m=f.value;return m&&m.kind==="named"&&m.value in n?a?.(u,{...f,value:{kind:"arbitrary",value:n[m.value]}}):a?.(u,f)},{compounds:p})}}var Ma=/^[a-z]+$/;async function ji({designSystem:t,base:r,ast:i,loadModule:e,sources:n}){let s=0,a=[],p=[];I(i,(d,c)=>{if(d.kind!=="at-rule")return;let w=qe(c);if(d.name==="@plugin"){if(w.parent!==null)throw new Error("`@plugin` cannot be nested.");let h=d.params.slice(1,-1);if(h.length===0)throw new Error("`@plugin` must have a path.");let y={};for(let x of d.nodes??[]){if(x.kind!=="declaration")throw new Error(`Unexpected \`@plugin\` option:
-
-${re([x])}
-
-\`@plugin\` options must be a flat list of declarations.`);if(x.value===void 0)continue;let $=x.value,A=j($,",").map(k=>{if(k=k.trim(),k==="null")return null;if(k==="true")return!0;if(k==="false")return!1;if(Number.isNaN(Number(k))){if(k[0]==='"'&&k[k.length-1]==='"'||k[0]==="'"&&k[k.length-1]==="'")return k.slice(1,-1);if(k[0]==="{"&&k[k.length-1]==="}")throw new Error(`Unexpected \`@plugin\` option: Value of declaration \`${re([x]).trim()}\` is not supported.
-
-Using an object as a plugin option is currently only supported in JavaScript configuration files.`)}else return Number(k);return k});y[x.property]=A.length===1?A[0]:A}return a.push([{id:h,base:w.context.base,reference:!!w.context.reference,src:d.src},Object.keys(y).length>0?y:null]),s|=4,E.Replace([])}if(d.name==="@config"){if(d.nodes.length>0)throw new Error("`@config` cannot have a body.");if(w.parent!==null)throw new Error("`@config` cannot be nested.");return p.push({id:d.params.slice(1,-1),base:w.context.base,reference:!!w.context.reference,src:d.src}),s|=4,E.Replace([])}}),Di(t);let u=t.resolveThemeValue;if(t.resolveThemeValue=function(c,w){return c.startsWith("--")?u(c,w):(s|=Li({designSystem:t,base:r,ast:i,sources:n,configs:[],pluginDetails:[]}),t.resolveThemeValue(c,w))},!a.length&&!p.length)return 0;let[f,m]=await Promise.all([Promise.all(p.map(async({id:d,base:c,reference:w,src:h})=>{let y=await e(d,c,"config");return{path:d,base:y.base,config:y.module,reference:w,src:h}})),Promise.all(a.map(async([{id:d,base:c,reference:w,src:h},y])=>{let x=await e(d,c,"plugin");return{path:d,base:x.base,plugin:x.module,options:y,reference:w,src:h}}))]);return s|=Li({designSystem:t,base:r,ast:i,sources:n,configs:f,pluginDetails:m}),s}function Li({designSystem:t,base:r,ast:i,sources:e,configs:n,pluginDetails:s}){let a=0,u=[...s.map(y=>{if(!y.options)return{config:{plugins:[y.plugin]},base:y.base,reference:y.reference,src:y.src};if("__isOptionsFunction"in y.plugin)return{config:{plugins:[y.plugin(y.options)]},base:y.base,reference:y.reference,src:y.src};throw new Error(`The plugin "${y.path}" does not accept options`)}),...n],{resolvedConfig:f}=Qt(t,[{config:Pi(t.theme),base:r,reference:!0,src:void 0},...u,{config:{plugins:[_i]},base:r,reference:!0,src:void 0}]),{resolvedConfig:m,replacedThemeKeys:d}=Qt(t,u),c={designSystem:t,ast:i,resolvedConfig:f,featuresRef:{set current(y){a|=y}}},w=Ht({...c,referenceMode:!1,src:void 0}),h=t.resolveThemeValue;t.resolveThemeValue=function(x,$){if(x[0]==="-"&&x[1]==="-")return h(x,$);let A=w.theme(x,void 0);if(Array.isArray(A)&&A.length===2)return A[0];if(Array.isArray(A))return A.join(", ");if(typeof A=="object"&&A!==null&&"DEFAULT"in A)return A.DEFAULT;if(typeof A=="string")return A};for(let{handler:y,reference:x,src:$}of f.plugins){let A=Ht({...c,referenceMode:x??!1,src:$});y(A)}if(zr(t,m,d),Oi(t,m),Ui(m,t),Ki(m,t),Ii(m,t),!t.theme.prefix&&f.prefix){if(f.prefix.endsWith("-")&&(f.prefix=f.prefix.slice(0,-1),console.warn(`The prefix "${f.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only and is written as a variant before all utilities. We have fixed up the prefix for you. Remove the trailing \`-\` to silence this warning.`)),!Ma.test(f.prefix))throw new Error(`The prefix "${f.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);t.theme.prefix=f.prefix}if(!t.important&&f.important===!0&&(t.important=!0),typeof f.important=="string"){let y=f.important;I(i,(x,$)=>{if(x.kind!=="at-rule"||x.name!=="@tailwind"||x.params!=="utilities")return;let A=qe($);return A.parent?.kind==="rule"&&A.parent.selector===y?E.Stop:E.ReplaceStop(G(y,[x]))})}for(let y of f.blocklist)t.invalidCandidates.add(y);for(let y of f.content.files){if("raw"in y)throw new Error(`Error in the config file/plugin/preset. The \`content\` key contains a \`raw\` entry:
-
-${JSON.stringify(y,null,2)}
-
-This feature is not currently supported.`);let x=!1;y.pattern[0]=="!"&&(x=!0,y.pattern=y.pattern.slice(1)),e.push({...y,negated:x})}return a}function zi({ast:t}){let r=new K(n=>tt(n.code)),i=new K(n=>({url:n.file,content:n.code,ignore:!1})),e={file:null,sources:[],mappings:[]};I(t,n=>{if(!n.src||!n.dst)return;let s=i.get(n.src[0]);if(!s.content)return;let a=r.get(n.src[0]),p=r.get(n.dst[0]),u=s.content.slice(n.src[1],n.src[2]),f=0;for(let c of u.split(`
-`)){if(c.trim()!==""){let w=a.find(n.src[1]+f),h=p.find(n.dst[1]);e.mappings.push({name:null,originalPosition:{source:s,...w},generatedPosition:h})}f+=c.length,f+=1}let m=a.find(n.src[2]),d=p.find(n.dst[2]);e.mappings.push({name:null,originalPosition:{source:s,...m},generatedPosition:d})});for(let n of r.keys())e.sources.push(i.get(n));return e.mappings.sort((n,s)=>n.generatedPosition.line-s.generatedPosition.line||n.generatedPosition.column-s.generatedPosition.column||(n.originalPosition?.line??0)-(s.originalPosition?.line??0)||(n.originalPosition?.column??0)-(s.originalPosition?.column??0)),e}var Mi=/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/;function xt(t){let r=t.indexOf("{");if(r===-1)return[t];let i=[],e=t.slice(0,r),n=t.slice(r),s=0,a=n.lastIndexOf("}");for(let d=0;d<n.length;d++){let c=n[d];if(c==="{")s++;else if(c==="}"&&(s--,s===0)){a=d;break}}if(a===-1)throw new Error(`The pattern \`${t}\` is not balanced.`);let p=n.slice(1,a),u=n.slice(a+1),f;Fa(p)?f=Wa(p):f=j(p,","),f=f.flatMap(d=>xt(d));let m=xt(u);for(let d of m)for(let c of f)i.push(e+c+d);return i}function Fa(t){return Mi.test(t)}function Wa(t){let r=t.match(Mi);if(!r)return[t];let[,i,e,n]=r,s=n?parseInt(n,10):void 0,a=[];if(/^-?\d+$/.test(i)&&/^-?\d+$/.test(e)){let p=parseInt(i,10),u=parseInt(e,10);if(s===void 0&&(s=p<=u?1:-1),s===0)throw new Error("Step cannot be zero in sequence expansion.");let f=p<u;f&&s<0&&(s=-s),!f&&s>0&&(s=-s);for(let m=p;f?m<=u:m>=u;m+=s)a.push(m.toString())}return a}function Fi(t,r){let i=new Set,e=new Set,n=[];function s(a,p=[]){if(t.has(a)&&!i.has(a)){e.has(a)&&r.onCircularDependency?.(p,a),e.add(a);for(let u of t.get(a)??[])p.push(a),s(u,p),p.pop();i.add(a),e.delete(a),n.push(a)}}for(let a of t.keys())s(a);return n}var Ba=/^[a-z]+$/,Rt=(n=>(n[n.None=0]="None",n[n.AtProperty=1]="AtProperty",n[n.ColorMix=2]="ColorMix",n[n.All=3]="All",n))(Rt||{});function Ya(){throw new Error("No `loadModule` function provided to `compile`")}function Ga(){throw new Error("No `loadStylesheet` function provided to `compile`")}function qa(t){let r=0,i=null;for(let e of j(t," "))e==="reference"?r|=2:e==="inline"?r|=1:e==="default"?r|=4:e==="static"?r|=8:e.startsWith("prefix(")&&e.endsWith(")")&&(i=e.slice(7,-1));return[r,i]}var Ke=(u=>(u[u.None=0]="None",u[u.AtApply=1]="AtApply",u[u.AtImport=2]="AtImport",u[u.JsPluginCompat=4]="JsPluginCompat",u[u.ThemeFunction=8]="ThemeFunction",u[u.Utilities=16]="Utilities",u[u.Variants=32]="Variants",u[u.AtTheme=64]="AtTheme",u))(Ke||{});async function Wi(t,{base:r="",from:i,loadModule:e=Ya,loadStylesheet:n=Ga}={}){let s=0;t=[ce({base:r},t)],s|=await Zt(t,r,n,0,i!==void 0);let a=null,p=new lt,u=new Map,f=new Map,m=[],d=null,c=null,w=[],h=[],y=[],x=[],$=null;I(t,(k,U)=>{if(k.kind!=="at-rule")return;let N=qe(U);if(k.name==="@tailwind"&&(k.params==="utilities"||k.params.startsWith("utilities"))){if(c!==null)return E.Replace([]);if(N.context.reference)return E.Replace([]);let O=j(k.params," ");for(let L of O)if(L.startsWith("source(")){let _=L.slice(7,-1);if(_==="none"){$=_;continue}if(_[0]==='"'&&_[_.length-1]!=='"'||_[0]==="'"&&_[_.length-1]!=="'"||_[0]!=="'"&&_[0]!=='"')throw new Error("`source(\u2026)` paths must be quoted.");$={base:N.context.sourceBase??N.context.base,pattern:_.slice(1,-1)}}c=k,s|=16}if(k.name==="@utility"){if(N.parent!==null)throw new Error("`@utility` cannot be nested.");if(k.nodes.length===0)throw new Error(`\`@utility ${k.params}\` is empty. Utilities should include at least one property.`);let O=Kr(k);if(O===null){if(!k.params.endsWith("-*")){if(k.params.endsWith("*"))throw new Error(`\`@utility ${k.params}\` defines an invalid utility name. A functional utility must end in \`-*\`.`);if(k.params.includes("*"))throw new Error(`\`@utility ${k.params}\` defines an invalid utility name. The dynamic portion marked by \`-*\` must appear once at the end.`)}throw new Error(`\`@utility ${k.params}\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter.`)}m.push(O)}if(k.name==="@source"){if(k.nodes.length>0)throw new Error("`@source` cannot have a body.");if(N.parent!==null)throw new Error("`@source` cannot be nested.");let O=!1,L=!1,_=k.params;if(_[0]==="n"&&_.startsWith("not ")&&(O=!0,_=_.slice(4)),_[0]==="i"&&_.startsWith("inline(")&&(L=!0,_=_.slice(7,-1)),_[0]==='"'&&_[_.length-1]!=='"'||_[0]==="'"&&_[_.length-1]!=="'"||_[0]!=="'"&&_[0]!=='"')throw new Error("`@source` paths must be quoted.");let z=_.slice(1,-1);if(L){let Y=O?x:y,q=j(z," ");for(let ae of q)for(let oe of xt(ae))Y.push(oe)}else h.push({base:N.context.base,pattern:z,negated:O});return E.ReplaceSkip([])}if(k.name==="@variant"&&(N.parent===null?k.nodes.length===0?k.name="@custom-variant":(I(k.nodes,O=>{if(O.kind==="at-rule"&&O.name==="@slot")return k.name="@custom-variant",E.Stop}),k.name==="@variant"&&w.push(k)):w.push(k)),k.name==="@custom-variant"){if(N.parent!==null)throw new Error("`@custom-variant` cannot be nested.");let[O,L]=j(k.params," ");if(!kt.test(O))throw new Error(`\`@custom-variant ${O}\` defines an invalid variant name. Variants should only contain alphanumeric, dashes, or underscore characters and start with a lowercase letter or number.`);if(k.nodes.length>0&&L)throw new Error(`\`@custom-variant ${O}\` cannot have both a selector and a body.`);if(k.nodes.length===0){if(!L)throw new Error(`\`@custom-variant ${O}\` has no selector or body.`);let _=j(L.slice(1,-1),",");if(_.length===0||_.some(q=>q.trim()===""))throw new Error(`\`@custom-variant ${O} (${_.join(",")})\` selector is invalid.`);let z=[],Y=[];for(let q of _)q=q.trim(),q[0]==="@"?z.push(q):Y.push(q);u.set(O,q=>{q.variants.static(O,ae=>{let oe=[];Y.length>0&&oe.push(G(Y.join(", "),ae.nodes));for(let l of z)oe.push(J(l,ae.nodes));ae.nodes=oe},{compounds:Pe([...Y,...z])})}),f.set(O,new Set)}else{let _=new Set;I(k.nodes,z=>{z.kind==="at-rule"&&z.name==="@variant"&&_.add(z.params)}),u.set(O,z=>{z.variants.fromAst(O,k.nodes,z)}),f.set(O,_)}return E.ReplaceSkip([])}if(k.name==="@media"){let O=j(k.params," "),L=[];for(let _ of O)if(_.startsWith("source(")){let z=_.slice(7,-1);I(k.nodes,Y=>{if(Y.kind==="at-rule"&&Y.name==="@tailwind"&&Y.params==="utilities")return Y.params+=` source(${z})`,E.ReplaceStop([ce({sourceBase:N.context.base},[Y])])})}else if(_.startsWith("theme(")){let z=_.slice(6,-1),Y=z.includes("reference");I(k.nodes,q=>{if(q.kind!=="context"){if(q.kind!=="at-rule"){if(Y)throw new Error('Files imported with `@import "\u2026" theme(reference)` must only contain `@theme` blocks.\nUse `@reference "\u2026";` instead.');return E.Continue}if(q.name==="@theme")return q.params+=" "+z,E.Skip}})}else if(_.startsWith("prefix(")){let z=_.slice(7,-1);I(k.nodes,Y=>{if(Y.kind==="at-rule"&&Y.name==="@theme")return Y.params+=` prefix(${z})`,E.Skip})}else _==="important"?a=!0:_==="reference"?k.nodes=[ce({reference:!0},k.nodes)]:L.push(_);if(L.length>0)k.params=L.join(" ");else if(O.length>0)return E.Replace(k.nodes);return E.Continue}if(k.name==="@theme"){let[O,L]=qa(k.params);if(s|=64,N.context.reference&&(O|=2),L){if(!Ba.test(L))throw new Error(`The prefix "${L}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);p.prefix=L}return I(k.nodes,_=>{if(_.kind==="at-rule"&&_.name==="@keyframes")return p.addKeyframes(_),E.Skip;if(_.kind==="comment")return;if(_.kind==="declaration"&&_.property.startsWith("--")){p.add(Se(_.property),_.value??"",O,_.src);return}let z=re([F(k.name,k.params,[_])]).split(`
-`).map((Y,q,ae)=>`${q===0||q>=ae.length-2?" ":">"} ${Y}`).join(`
-`);throw new Error(`\`@theme\` blocks must only contain custom properties or \`@keyframes\`.
-
-${z}`)}),d?E.ReplaceSkip([]):(d=G(":root, :host",[]),d.src=k.src,E.ReplaceSkip(d))}});let A=xi(p,c?.src);if(a&&(A.important=a),x.length>0)for(let k of x)A.invalidCandidates.add(k);s|=await ji({designSystem:A,base:r,ast:t,loadModule:e,sources:h});for(let k of u.keys())A.variants.static(k,()=>{});for(let k of Fi(f,{onCircularDependency(U,N){let O=re(U.map((L,_)=>F("@custom-variant",L,[F("@variant",U[_+1]??N,[])]))).replaceAll(";"," { \u2026 }").replace(`@custom-variant ${N} {`,`@custom-variant ${N} { /* \u2190 */`);throw new Error(`Circular dependency detected in custom variants:
-
-${O}`)}}))u.get(k)?.(A);for(let k of m)k(A);if(d){let k=[];for(let[N,O]of A.theme.entries()){if(O.options&2)continue;let L=o(ye(N),O.value);L.src=O.src,k.push(L)}let U=A.theme.getKeyframes();for(let N of U)t.push(ce({theme:!0},[W([N])]));d.nodes=[ce({theme:!0},k)]}if(s|=Qe(t,A),s|=De(t,A),s|=Ae(t,A),c){let k=c;k.kind="context",k.context={}}return I(t,k=>{if(k.kind==="at-rule")return k.name==="@utility"?E.Replace([]):E.Skip}),{designSystem:A,ast:t,sources:h,root:$,utilitiesNode:c,features:s,inlineCandidates:y}}async function Za(t,r={}){let{designSystem:i,ast:e,sources:n,root:s,utilitiesNode:a,features:p,inlineCandidates:u}=await Wi(t,r);e.unshift(ot(`! tailwindcss v${ir} | MIT License | https://tailwindcss.com `));function f(h){i.invalidCandidates.add(h)}let m=new Set,d=null,c=0,w=!1;for(let h of u)i.invalidCandidates.has(h)||(m.add(h),w=!0);return{sources:n,root:s,features:p,build(h){if(p===0)return t;if(!a)return d??=Te(e,i,r.polyfills),d;let y=w,x=!1;w=!1;let $=m.size;for(let k of h)if(!i.invalidCandidates.has(k))if(k[0]==="-"&&k[1]==="-"){let U=i.theme.markUsedVariable(k);y||=U,x||=U}else m.add(k),y||=m.size!==$;if(!y)return d??=Te(e,i,r.polyfills),d;let A=Ce(m,i,{onInvalidCandidate:f}).astNodes;return r.from&&I(A,k=>{k.src??=a.src}),!x&&c===A.length?(d??=Te(e,i,r.polyfills),d):(c=A.length,a.nodes=A,d=Te(e,i,r.polyfills),d)}}}async function rf(t,r={}){let i=$e(t,{from:r.from}),e=await Za(i,r),n=i,s=t;return{...e,build(a){let p=e.build(a);return p===n||(s=re(p,!!r.from),n=p),s},buildSourceMap(){return zi({ast:n})}}}async function nf(t,r={}){return(await Wi($e(t,{from:r.from}),r)).designSystem}function Ha(){throw new Error("It looks like you're trying to use `tailwindcss` directly as a PostCSS plugin. The PostCSS plugin has moved to a separate package, so to continue using Tailwind CSS with PostCSS you'll need to install `@tailwindcss/postcss` and update your PostCSS configuration.")}export{Rt as a,Ke as b,Za as c,rf as d,nf as e,Ha as f};
Index: de_modules/tailwindcss/dist/chunk-GFBUASX3.mjs
===================================================================
--- node_modules/tailwindcss/dist/chunk-GFBUASX3.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-import{a as k}from"./chunk-HTB5LLOP.mjs";var _=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent","currentcolor","canvas","canvastext","linktext","visitedtext","activetext","buttonface","buttontext","buttonborder","field","fieldtext","highlight","highlighttext","selecteditem","selecteditemtext","mark","marktext","graytext","accentcolor","accentcolortext"]),U=/^(rgba?|hsla?|hwb|color|(ok)?(lab|lch)|light-dark|color-mix)\(/i;function S(e){return e.charCodeAt(0)===35||U.test(e)||_.has(e.toLowerCase())}var A=["calc","min","max","clamp","mod","rem","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","round"];function b(e){return e.indexOf("(")!==-1&&A.some(t=>e.includes(`${t}(`))}function oe(e){if(!A.some(n=>e.includes(n)))return e;let t="",r=[],s=null,m=null;for(let n=0;n<e.length;n++){let a=e.charCodeAt(n);if(a>=48&&a<=57||s!==null&&(a===37||a>=97&&a<=122||a>=65&&a<=90)?s=n:(m=s,s=null),a===40){t+=e[n];let i=n;for(let p=n-1;p>=0;p--){let c=e.charCodeAt(p);if(c>=48&&c<=57)i=p;else if(c>=97&&c<=122)i=p;else break}let o=e.slice(i,n);if(A.includes(o)){r.unshift(!0);continue}else if(r[0]&&o===""){r.unshift(!0);continue}r.unshift(!1);continue}else if(a===41)t+=e[n],r.shift();else if(a===44&&r[0]){t+=", ";continue}else{if(a===32&&r[0]&&t.charCodeAt(t.length-1)===32)continue;if((a===43||a===42||a===47||a===45)&&r[0]){let i=t.trimEnd(),o=i.charCodeAt(i.length-1),p=i.charCodeAt(i.length-2),c=e.charCodeAt(n+1);if((o===101||o===69)&&p>=48&&p<=57){t+=e[n];continue}else if(o===43||o===42||o===47||o===45){t+=e[n];continue}else if(o===40||o===44){t+=e[n];continue}else e.charCodeAt(n-1)===32?t+=`${e[n]} `:o>=48&&o<=57||c>=48&&c<=57||o===41||c===40||c===43||c===42||c===47||c===45||m!==null&&m===n-1?t+=` ${e[n]} `:t+=e[n]}else t+=e[n]}}return t}var E=new Uint8Array(256);function d(e,t){let r=0,s=[],m=0,n=e.length,a=t.charCodeAt(0);for(let i=0;i<n;i++){let o=e.charCodeAt(i);if(r===0&&o===a){s.push(e.slice(m,i)),m=i+1;continue}switch(o){case 92:i+=1;break;case 39:case 34:for(;++i<n;){let p=e.charCodeAt(i);if(p===92){i+=1;continue}if(p===o)break}break;case 40:E[r]=41,r++;break;case 91:E[r]=93,r++;break;case 123:E[r]=125,r++;break;case 93:case 125:case 41:r>0&&o===E[r-1]&&r--;break}}return s.push(e.slice(m)),s}var P={color:S,length:y,percentage:C,ratio:G,number:v,integer:u,url:R,position:K,"bg-size":Y,"line-width":T,image:F,"family-name":M,"generic-name":H,"absolute-size":$,"relative-size":W,angle:X,vector:te};function me(e,t){if(e.startsWith("var("))return null;for(let r of t)if(P[r]?.(e))return r;return null}var z=/^url\(.*\)$/;function R(e){return z.test(e)}function T(e){return d(e," ").every(t=>y(t)||v(t)||t==="thin"||t==="medium"||t==="thick")}var D=/^(?:element|image|cross-fade|image-set)\(/,I=/^(repeating-)?(conic|linear|radial)-gradient\(/;function F(e){let t=0;for(let r of d(e,","))if(!r.startsWith("var(")){if(R(r)){t+=1;continue}if(I.test(r)){t+=1;continue}if(D.test(r)){t+=1;continue}return!1}return t>0}function H(e){return e==="serif"||e==="sans-serif"||e==="monospace"||e==="cursive"||e==="fantasy"||e==="system-ui"||e==="ui-serif"||e==="ui-sans-serif"||e==="ui-monospace"||e==="ui-rounded"||e==="math"||e==="emoji"||e==="fangsong"}function M(e){let t=0;for(let r of d(e,",")){let s=r.charCodeAt(0);if(s>=48&&s<=57)return!1;r.startsWith("var(")||(t+=1)}return t>0}function $(e){return e==="xx-small"||e==="x-small"||e==="small"||e==="medium"||e==="large"||e==="x-large"||e==="xx-large"||e==="xxx-large"}function W(e){return e==="larger"||e==="smaller"}var x=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,B=new RegExp(`^${x.source}$`);function v(e){return B.test(e)||b(e)}var q=new RegExp(`^${x.source}%$`);function C(e){return q.test(e)||b(e)}var V=new RegExp(`^${x.source}s*/s*${x.source}$`);function G(e){return V.test(e)||b(e)}var Z=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],j=new RegExp(`^${x.source}(${Z.join("|")})$`);function y(e){return j.test(e)||b(e)}function K(e){let t=0;for(let r of d(e," ")){if(r==="center"||r==="top"||r==="right"||r==="bottom"||r==="left"){t+=1;continue}if(!r.startsWith("var(")){if(y(r)||C(r)){t+=1;continue}return!1}}return t>0}function Y(e){let t=0;for(let r of d(e,",")){if(r==="cover"||r==="contain"){t+=1;continue}let s=d(r," ");if(s.length!==1&&s.length!==2)return!1;if(s.every(m=>m==="auto"||y(m)||C(m))){t+=1;continue}}return t>0}var Q=["deg","rad","grad","turn"],J=new RegExp(`^${x.source}(${Q.join("|")})$`);function X(e){return J.test(e)}var ee=new RegExp(`^${x.source} +${x.source} +${x.source}$`);function te(e){return ee.test(e)}function u(e){let t=Number(e);return Number.isInteger(t)&&t>=0&&String(t)===String(e)}function pe(e){let t=Number(e);return Number.isInteger(t)&&t>0&&String(t)===String(e)}function ge(e){return N(e,.25)}function ue(e){return N(e,.25)}function N(e,t){let r=Number(e);return r>=0&&r%t===0&&String(r)===String(e)}function h(e){return{__BARE_VALUE__:e}}var g=h(e=>{if(u(e.value))return e.value}),l=h(e=>{if(u(e.value))return`${e.value}%`}),f=h(e=>{if(u(e.value))return`${e.value}px`}),O=h(e=>{if(u(e.value))return`${e.value}ms`}),w=h(e=>{if(u(e.value))return`${e.value}deg`}),re=h(e=>{if(e.fraction===null)return;let[t,r]=d(e.fraction,"/");if(!(!u(t)||!u(r)))return e.fraction}),L=h(e=>{if(u(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),be={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...re},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...l}),backdropContrast:({theme:e})=>({...e("contrast"),...l}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...l}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...w}),backdropInvert:({theme:e})=>({...e("invert"),...l}),backdropOpacity:({theme:e})=>({...e("opacity"),...l}),backdropSaturate:({theme:e})=>({...e("saturate"),...l}),backdropSepia:({theme:e})=>({...e("sepia"),...l}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...f},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...l},caretColor:({theme:e})=>e("colors"),colors:()=>({...k}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...g},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...l},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...f}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...g},flexShrink:{0:"0",DEFAULT:"1",...g},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...l},grayscale:{0:"0",DEFAULT:"100%",...l},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...g},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...g},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...g},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...g},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...L},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...L},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...w},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...l},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...g},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...l},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...g},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...w},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...l},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...l},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...l},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...w},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...g},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...f},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...O},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...O},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...g}};export{oe as a,d as b,me as c,y as d,u as e,pe as f,ge as g,ue as h,be as i};
Index: de_modules/tailwindcss/dist/chunk-HTB5LLOP.mjs
===================================================================
--- node_modules/tailwindcss/dist/chunk-HTB5LLOP.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-var l={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};export{l as a};
Index: de_modules/tailwindcss/dist/colors-b_6i0Oi7.d.ts
===================================================================
--- node_modules/tailwindcss/dist/colors-b_6i0Oi7.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,295 +1,0 @@
-declare const _default: {
-    inherit: string;
-    current: string;
-    transparent: string;
-    black: string;
-    white: string;
-    slate: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    gray: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    zinc: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    neutral: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    stone: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    red: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    orange: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    amber: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    yellow: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    lime: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    green: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    emerald: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    teal: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    cyan: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    sky: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    blue: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    indigo: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    violet: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    purple: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    fuchsia: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    pink: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    rose: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-};
-
-export { _default as _ };
Index: de_modules/tailwindcss/dist/colors.d.mts
===================================================================
--- node_modules/tailwindcss/dist/colors.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,295 +1,0 @@
-declare const _default: {
-    inherit: string;
-    current: string;
-    transparent: string;
-    black: string;
-    white: string;
-    slate: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    gray: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    zinc: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    neutral: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    stone: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    red: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    orange: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    amber: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    yellow: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    lime: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    green: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    emerald: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    teal: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    cyan: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    sky: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    blue: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    indigo: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    violet: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    purple: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    fuchsia: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    pink: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-    rose: {
-        '50': string;
-        '100': string;
-        '200': string;
-        '300': string;
-        '400': string;
-        '500': string;
-        '600': string;
-        '700': string;
-        '800': string;
-        '900': string;
-        '950': string;
-    };
-};
-
-export { _default as default };
Index: de_modules/tailwindcss/dist/colors.d.ts
===================================================================
--- node_modules/tailwindcss/dist/colors.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-import { _ as _default } from './colors-b_6i0Oi7.js';
-
-
-
-export { _default as default };
Index: de_modules/tailwindcss/dist/colors.js
===================================================================
--- node_modules/tailwindcss/dist/colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";var l={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};module.exports=l;
Index: de_modules/tailwindcss/dist/colors.mjs
===================================================================
--- node_modules/tailwindcss/dist/colors.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-import{a}from"./chunk-HTB5LLOP.mjs";export{a as default};
Index: de_modules/tailwindcss/dist/default-theme.d.mts
===================================================================
--- node_modules/tailwindcss/dist/default-theme.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1147 +1,0 @@
-import { P as PluginUtils, N as NamedUtilityValue } from './resolve-config-QUZ9b-Gn.mjs';
-import './colors.mjs';
-
-declare const _default: {
-    accentColor: ({ theme }: PluginUtils) => any;
-    animation: {
-        none: string;
-        spin: string;
-        ping: string;
-        pulse: string;
-        bounce: string;
-    };
-    aria: {
-        busy: string;
-        checked: string;
-        disabled: string;
-        expanded: string;
-        hidden: string;
-        pressed: string;
-        readonly: string;
-        required: string;
-        selected: string;
-    };
-    aspectRatio: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        square: string;
-        video: string;
-    };
-    backdropBlur: ({ theme }: PluginUtils) => any;
-    backdropBrightness: ({ theme }: PluginUtils) => any;
-    backdropContrast: ({ theme }: PluginUtils) => any;
-    backdropGrayscale: ({ theme }: PluginUtils) => any;
-    backdropHueRotate: ({ theme }: PluginUtils) => any;
-    backdropInvert: ({ theme }: PluginUtils) => any;
-    backdropOpacity: ({ theme }: PluginUtils) => any;
-    backdropSaturate: ({ theme }: PluginUtils) => any;
-    backdropSepia: ({ theme }: PluginUtils) => any;
-    backgroundColor: ({ theme }: PluginUtils) => any;
-    backgroundImage: {
-        none: string;
-        'gradient-to-t': string;
-        'gradient-to-tr': string;
-        'gradient-to-r': string;
-        'gradient-to-br': string;
-        'gradient-to-b': string;
-        'gradient-to-bl': string;
-        'gradient-to-l': string;
-        'gradient-to-tl': string;
-    };
-    backgroundOpacity: ({ theme }: PluginUtils) => any;
-    backgroundPosition: {
-        bottom: string;
-        center: string;
-        left: string;
-        'left-bottom': string;
-        'left-top': string;
-        right: string;
-        'right-bottom': string;
-        'right-top': string;
-        top: string;
-    };
-    backgroundSize: {
-        auto: string;
-        cover: string;
-        contain: string;
-    };
-    blur: {
-        0: string;
-        none: string;
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-    };
-    borderColor: ({ theme }: PluginUtils) => any;
-    borderOpacity: ({ theme }: PluginUtils) => any;
-    borderRadius: {
-        none: string;
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-        full: string;
-    };
-    borderSpacing: ({ theme }: PluginUtils) => any;
-    borderWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    boxShadow: {
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        inner: string;
-        none: string;
-    };
-    boxShadowColor: ({ theme }: PluginUtils) => any;
-    brightness: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        90: string;
-        95: string;
-        100: string;
-        105: string;
-        110: string;
-        125: string;
-        150: string;
-        200: string;
-    };
-    caretColor: ({ theme }: PluginUtils) => any;
-    colors: () => {
-        inherit: string;
-        current: string;
-        transparent: string;
-        black: string;
-        white: string;
-        slate: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        gray: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        zinc: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        neutral: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        stone: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        red: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        orange: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        amber: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        yellow: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        lime: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        green: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        emerald: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        teal: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        cyan: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        sky: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        blue: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        indigo: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        violet: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        purple: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        fuchsia: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        pink: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        rose: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-    };
-    columns: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        '3xs': string;
-        '2xs': string;
-        xs: string;
-        sm: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-        '4xl': string;
-        '5xl': string;
-        '6xl': string;
-        '7xl': string;
-    };
-    container: {};
-    content: {
-        none: string;
-    };
-    contrast: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        100: string;
-        125: string;
-        150: string;
-        200: string;
-    };
-    cursor: {
-        auto: string;
-        default: string;
-        pointer: string;
-        wait: string;
-        text: string;
-        move: string;
-        help: string;
-        'not-allowed': string;
-        none: string;
-        'context-menu': string;
-        progress: string;
-        cell: string;
-        crosshair: string;
-        'vertical-text': string;
-        alias: string;
-        copy: string;
-        'no-drop': string;
-        grab: string;
-        grabbing: string;
-        'all-scroll': string;
-        'col-resize': string;
-        'row-resize': string;
-        'n-resize': string;
-        'e-resize': string;
-        's-resize': string;
-        'w-resize': string;
-        'ne-resize': string;
-        'nw-resize': string;
-        'se-resize': string;
-        'sw-resize': string;
-        'ew-resize': string;
-        'ns-resize': string;
-        'nesw-resize': string;
-        'nwse-resize': string;
-        'zoom-in': string;
-        'zoom-out': string;
-    };
-    divideColor: ({ theme }: PluginUtils) => any;
-    divideOpacity: ({ theme }: PluginUtils) => any;
-    divideWidth: ({ theme }: PluginUtils) => any;
-    dropShadow: {
-        sm: string;
-        DEFAULT: string[];
-        md: string[];
-        lg: string[];
-        xl: string[];
-        '2xl': string;
-        none: string;
-    };
-    fill: ({ theme }: PluginUtils) => any;
-    flex: {
-        1: string;
-        auto: string;
-        initial: string;
-        none: string;
-    };
-    flexBasis: ({ theme }: PluginUtils) => any;
-    flexGrow: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    flexShrink: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    fontFamily: {
-        sans: string[];
-        serif: string[];
-        mono: string[];
-    };
-    fontSize: {
-        xs: (string | {
-            lineHeight: string;
-        })[];
-        sm: (string | {
-            lineHeight: string;
-        })[];
-        base: (string | {
-            lineHeight: string;
-        })[];
-        lg: (string | {
-            lineHeight: string;
-        })[];
-        xl: (string | {
-            lineHeight: string;
-        })[];
-        '2xl': (string | {
-            lineHeight: string;
-        })[];
-        '3xl': (string | {
-            lineHeight: string;
-        })[];
-        '4xl': (string | {
-            lineHeight: string;
-        })[];
-        '5xl': (string | {
-            lineHeight: string;
-        })[];
-        '6xl': (string | {
-            lineHeight: string;
-        })[];
-        '7xl': (string | {
-            lineHeight: string;
-        })[];
-        '8xl': (string | {
-            lineHeight: string;
-        })[];
-        '9xl': (string | {
-            lineHeight: string;
-        })[];
-    };
-    fontWeight: {
-        thin: string;
-        extralight: string;
-        light: string;
-        normal: string;
-        medium: string;
-        semibold: string;
-        bold: string;
-        extrabold: string;
-        black: string;
-    };
-    gap: ({ theme }: PluginUtils) => any;
-    gradientColorStops: ({ theme }: PluginUtils) => any;
-    gradientColorStopPositions: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        '0%': string;
-        '5%': string;
-        '10%': string;
-        '15%': string;
-        '20%': string;
-        '25%': string;
-        '30%': string;
-        '35%': string;
-        '40%': string;
-        '45%': string;
-        '50%': string;
-        '55%': string;
-        '60%': string;
-        '65%': string;
-        '70%': string;
-        '75%': string;
-        '80%': string;
-        '85%': string;
-        '90%': string;
-        '95%': string;
-        '100%': string;
-    };
-    grayscale: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    gridAutoColumns: {
-        auto: string;
-        min: string;
-        max: string;
-        fr: string;
-    };
-    gridAutoRows: {
-        auto: string;
-        min: string;
-        max: string;
-        fr: string;
-    };
-    gridColumn: {
-        auto: string;
-        'span-1': string;
-        'span-2': string;
-        'span-3': string;
-        'span-4': string;
-        'span-5': string;
-        'span-6': string;
-        'span-7': string;
-        'span-8': string;
-        'span-9': string;
-        'span-10': string;
-        'span-11': string;
-        'span-12': string;
-        'span-full': string;
-    };
-    gridColumnEnd: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridColumnStart: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridRow: {
-        auto: string;
-        'span-1': string;
-        'span-2': string;
-        'span-3': string;
-        'span-4': string;
-        'span-5': string;
-        'span-6': string;
-        'span-7': string;
-        'span-8': string;
-        'span-9': string;
-        'span-10': string;
-        'span-11': string;
-        'span-12': string;
-        'span-full': string;
-    };
-    gridRowEnd: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridRowStart: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridTemplateColumns: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        none: string;
-        subgrid: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    gridTemplateRows: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        none: string;
-        subgrid: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    height: ({ theme }: PluginUtils) => any;
-    hueRotate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        15: string;
-        30: string;
-        60: string;
-        90: string;
-        180: string;
-    };
-    inset: ({ theme }: PluginUtils) => any;
-    invert: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    keyframes: {
-        spin: {
-            to: {
-                transform: string;
-            };
-        };
-        ping: {
-            '75%, 100%': {
-                transform: string;
-                opacity: string;
-            };
-        };
-        pulse: {
-            '50%': {
-                opacity: string;
-            };
-        };
-        bounce: {
-            '0%, 100%': {
-                transform: string;
-                animationTimingFunction: string;
-            };
-            '50%': {
-                transform: string;
-                animationTimingFunction: string;
-            };
-        };
-    };
-    letterSpacing: {
-        tighter: string;
-        tight: string;
-        normal: string;
-        wide: string;
-        wider: string;
-        widest: string;
-    };
-    lineHeight: {
-        none: string;
-        tight: string;
-        snug: string;
-        normal: string;
-        relaxed: string;
-        loose: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-    };
-    listStyleType: {
-        none: string;
-        disc: string;
-        decimal: string;
-    };
-    listStyleImage: {
-        none: string;
-    };
-    margin: ({ theme }: PluginUtils) => any;
-    lineClamp: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-    };
-    maxHeight: ({ theme }: PluginUtils) => any;
-    maxWidth: ({ theme }: PluginUtils) => any;
-    minHeight: ({ theme }: PluginUtils) => any;
-    minWidth: ({ theme }: PluginUtils) => any;
-    objectPosition: {
-        bottom: string;
-        center: string;
-        left: string;
-        'left-bottom': string;
-        'left-top': string;
-        right: string;
-        'right-bottom': string;
-        'right-top': string;
-        top: string;
-    };
-    opacity: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        5: string;
-        10: string;
-        15: string;
-        20: string;
-        25: string;
-        30: string;
-        35: string;
-        40: string;
-        45: string;
-        50: string;
-        55: string;
-        60: string;
-        65: string;
-        70: string;
-        75: string;
-        80: string;
-        85: string;
-        90: string;
-        95: string;
-        100: string;
-    };
-    order: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        first: string;
-        last: string;
-        none: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    outlineColor: ({ theme }: PluginUtils) => any;
-    outlineOffset: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    outlineWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    padding: ({ theme }: PluginUtils) => any;
-    placeholderColor: ({ theme }: PluginUtils) => any;
-    placeholderOpacity: ({ theme }: PluginUtils) => any;
-    ringColor: ({ theme }: PluginUtils) => any;
-    ringOffsetColor: ({ theme }: PluginUtils) => any;
-    ringOffsetWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    ringOpacity: ({ theme }: PluginUtils) => any;
-    ringWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    rotate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        3: string;
-        6: string;
-        12: string;
-        45: string;
-        90: string;
-        180: string;
-    };
-    saturate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        100: string;
-        150: string;
-        200: string;
-    };
-    scale: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        90: string;
-        95: string;
-        100: string;
-        105: string;
-        110: string;
-        125: string;
-        150: string;
-    };
-    screens: {
-        sm: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-    };
-    scrollMargin: ({ theme }: PluginUtils) => any;
-    scrollPadding: ({ theme }: PluginUtils) => any;
-    sepia: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    skew: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        3: string;
-        6: string;
-        12: string;
-    };
-    space: ({ theme }: PluginUtils) => any;
-    spacing: {
-        px: string;
-        0: string;
-        0.5: string;
-        1: string;
-        1.5: string;
-        2: string;
-        2.5: string;
-        3: string;
-        3.5: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        14: string;
-        16: string;
-        20: string;
-        24: string;
-        28: string;
-        32: string;
-        36: string;
-        40: string;
-        44: string;
-        48: string;
-        52: string;
-        56: string;
-        60: string;
-        64: string;
-        72: string;
-        80: string;
-        96: string;
-    };
-    stroke: ({ theme }: PluginUtils) => any;
-    strokeWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-    };
-    supports: {};
-    data: {};
-    textColor: ({ theme }: PluginUtils) => any;
-    textDecorationColor: ({ theme }: PluginUtils) => any;
-    textDecorationThickness: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        'from-font': string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    textIndent: ({ theme }: PluginUtils) => any;
-    textOpacity: ({ theme }: PluginUtils) => any;
-    textUnderlineOffset: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    transformOrigin: {
-        center: string;
-        top: string;
-        'top-right': string;
-        right: string;
-        'bottom-right': string;
-        bottom: string;
-        'bottom-left': string;
-        left: string;
-        'top-left': string;
-    };
-    transitionDelay: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        75: string;
-        100: string;
-        150: string;
-        200: string;
-        300: string;
-        500: string;
-        700: string;
-        1000: string;
-    };
-    transitionDuration: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        75: string;
-        100: string;
-        150: string;
-        200: string;
-        300: string;
-        500: string;
-        700: string;
-        1000: string;
-    };
-    transitionProperty: {
-        none: string;
-        all: string;
-        DEFAULT: string;
-        colors: string;
-        opacity: string;
-        shadow: string;
-        transform: string;
-    };
-    transitionTimingFunction: {
-        DEFAULT: string;
-        linear: string;
-        in: string;
-        out: string;
-        'in-out': string;
-    };
-    translate: ({ theme }: PluginUtils) => any;
-    size: ({ theme }: PluginUtils) => any;
-    width: ({ theme }: PluginUtils) => any;
-    willChange: {
-        auto: string;
-        scroll: string;
-        contents: string;
-        transform: string;
-    };
-    zIndex: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        0: string;
-        10: string;
-        20: string;
-        30: string;
-        40: string;
-        50: string;
-    };
-};
-
-export { _default as default };
Index: de_modules/tailwindcss/dist/default-theme.d.ts
===================================================================
--- node_modules/tailwindcss/dist/default-theme.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1147 +1,0 @@
-import { P as PluginUtils, N as NamedUtilityValue } from './resolve-config-BIFUA2FY.js';
-import './colors-b_6i0Oi7.js';
-
-declare const _default: {
-    accentColor: ({ theme }: PluginUtils) => any;
-    animation: {
-        none: string;
-        spin: string;
-        ping: string;
-        pulse: string;
-        bounce: string;
-    };
-    aria: {
-        busy: string;
-        checked: string;
-        disabled: string;
-        expanded: string;
-        hidden: string;
-        pressed: string;
-        readonly: string;
-        required: string;
-        selected: string;
-    };
-    aspectRatio: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        square: string;
-        video: string;
-    };
-    backdropBlur: ({ theme }: PluginUtils) => any;
-    backdropBrightness: ({ theme }: PluginUtils) => any;
-    backdropContrast: ({ theme }: PluginUtils) => any;
-    backdropGrayscale: ({ theme }: PluginUtils) => any;
-    backdropHueRotate: ({ theme }: PluginUtils) => any;
-    backdropInvert: ({ theme }: PluginUtils) => any;
-    backdropOpacity: ({ theme }: PluginUtils) => any;
-    backdropSaturate: ({ theme }: PluginUtils) => any;
-    backdropSepia: ({ theme }: PluginUtils) => any;
-    backgroundColor: ({ theme }: PluginUtils) => any;
-    backgroundImage: {
-        none: string;
-        'gradient-to-t': string;
-        'gradient-to-tr': string;
-        'gradient-to-r': string;
-        'gradient-to-br': string;
-        'gradient-to-b': string;
-        'gradient-to-bl': string;
-        'gradient-to-l': string;
-        'gradient-to-tl': string;
-    };
-    backgroundOpacity: ({ theme }: PluginUtils) => any;
-    backgroundPosition: {
-        bottom: string;
-        center: string;
-        left: string;
-        'left-bottom': string;
-        'left-top': string;
-        right: string;
-        'right-bottom': string;
-        'right-top': string;
-        top: string;
-    };
-    backgroundSize: {
-        auto: string;
-        cover: string;
-        contain: string;
-    };
-    blur: {
-        0: string;
-        none: string;
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-    };
-    borderColor: ({ theme }: PluginUtils) => any;
-    borderOpacity: ({ theme }: PluginUtils) => any;
-    borderRadius: {
-        none: string;
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-        full: string;
-    };
-    borderSpacing: ({ theme }: PluginUtils) => any;
-    borderWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    boxShadow: {
-        sm: string;
-        DEFAULT: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        inner: string;
-        none: string;
-    };
-    boxShadowColor: ({ theme }: PluginUtils) => any;
-    brightness: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        90: string;
-        95: string;
-        100: string;
-        105: string;
-        110: string;
-        125: string;
-        150: string;
-        200: string;
-    };
-    caretColor: ({ theme }: PluginUtils) => any;
-    colors: () => {
-        inherit: string;
-        current: string;
-        transparent: string;
-        black: string;
-        white: string;
-        slate: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        gray: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        zinc: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        neutral: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        stone: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        red: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        orange: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        amber: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        yellow: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        lime: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        green: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        emerald: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        teal: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        cyan: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        sky: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        blue: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        indigo: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        violet: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        purple: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        fuchsia: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        pink: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-        rose: {
-            '50': string;
-            '100': string;
-            '200': string;
-            '300': string;
-            '400': string;
-            '500': string;
-            '600': string;
-            '700': string;
-            '800': string;
-            '900': string;
-            '950': string;
-        };
-    };
-    columns: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        '3xs': string;
-        '2xs': string;
-        xs: string;
-        sm: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-        '3xl': string;
-        '4xl': string;
-        '5xl': string;
-        '6xl': string;
-        '7xl': string;
-    };
-    container: {};
-    content: {
-        none: string;
-    };
-    contrast: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        100: string;
-        125: string;
-        150: string;
-        200: string;
-    };
-    cursor: {
-        auto: string;
-        default: string;
-        pointer: string;
-        wait: string;
-        text: string;
-        move: string;
-        help: string;
-        'not-allowed': string;
-        none: string;
-        'context-menu': string;
-        progress: string;
-        cell: string;
-        crosshair: string;
-        'vertical-text': string;
-        alias: string;
-        copy: string;
-        'no-drop': string;
-        grab: string;
-        grabbing: string;
-        'all-scroll': string;
-        'col-resize': string;
-        'row-resize': string;
-        'n-resize': string;
-        'e-resize': string;
-        's-resize': string;
-        'w-resize': string;
-        'ne-resize': string;
-        'nw-resize': string;
-        'se-resize': string;
-        'sw-resize': string;
-        'ew-resize': string;
-        'ns-resize': string;
-        'nesw-resize': string;
-        'nwse-resize': string;
-        'zoom-in': string;
-        'zoom-out': string;
-    };
-    divideColor: ({ theme }: PluginUtils) => any;
-    divideOpacity: ({ theme }: PluginUtils) => any;
-    divideWidth: ({ theme }: PluginUtils) => any;
-    dropShadow: {
-        sm: string;
-        DEFAULT: string[];
-        md: string[];
-        lg: string[];
-        xl: string[];
-        '2xl': string;
-        none: string;
-    };
-    fill: ({ theme }: PluginUtils) => any;
-    flex: {
-        1: string;
-        auto: string;
-        initial: string;
-        none: string;
-    };
-    flexBasis: ({ theme }: PluginUtils) => any;
-    flexGrow: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    flexShrink: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    fontFamily: {
-        sans: string[];
-        serif: string[];
-        mono: string[];
-    };
-    fontSize: {
-        xs: (string | {
-            lineHeight: string;
-        })[];
-        sm: (string | {
-            lineHeight: string;
-        })[];
-        base: (string | {
-            lineHeight: string;
-        })[];
-        lg: (string | {
-            lineHeight: string;
-        })[];
-        xl: (string | {
-            lineHeight: string;
-        })[];
-        '2xl': (string | {
-            lineHeight: string;
-        })[];
-        '3xl': (string | {
-            lineHeight: string;
-        })[];
-        '4xl': (string | {
-            lineHeight: string;
-        })[];
-        '5xl': (string | {
-            lineHeight: string;
-        })[];
-        '6xl': (string | {
-            lineHeight: string;
-        })[];
-        '7xl': (string | {
-            lineHeight: string;
-        })[];
-        '8xl': (string | {
-            lineHeight: string;
-        })[];
-        '9xl': (string | {
-            lineHeight: string;
-        })[];
-    };
-    fontWeight: {
-        thin: string;
-        extralight: string;
-        light: string;
-        normal: string;
-        medium: string;
-        semibold: string;
-        bold: string;
-        extrabold: string;
-        black: string;
-    };
-    gap: ({ theme }: PluginUtils) => any;
-    gradientColorStops: ({ theme }: PluginUtils) => any;
-    gradientColorStopPositions: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        '0%': string;
-        '5%': string;
-        '10%': string;
-        '15%': string;
-        '20%': string;
-        '25%': string;
-        '30%': string;
-        '35%': string;
-        '40%': string;
-        '45%': string;
-        '50%': string;
-        '55%': string;
-        '60%': string;
-        '65%': string;
-        '70%': string;
-        '75%': string;
-        '80%': string;
-        '85%': string;
-        '90%': string;
-        '95%': string;
-        '100%': string;
-    };
-    grayscale: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    gridAutoColumns: {
-        auto: string;
-        min: string;
-        max: string;
-        fr: string;
-    };
-    gridAutoRows: {
-        auto: string;
-        min: string;
-        max: string;
-        fr: string;
-    };
-    gridColumn: {
-        auto: string;
-        'span-1': string;
-        'span-2': string;
-        'span-3': string;
-        'span-4': string;
-        'span-5': string;
-        'span-6': string;
-        'span-7': string;
-        'span-8': string;
-        'span-9': string;
-        'span-10': string;
-        'span-11': string;
-        'span-12': string;
-        'span-full': string;
-    };
-    gridColumnEnd: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridColumnStart: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridRow: {
-        auto: string;
-        'span-1': string;
-        'span-2': string;
-        'span-3': string;
-        'span-4': string;
-        'span-5': string;
-        'span-6': string;
-        'span-7': string;
-        'span-8': string;
-        'span-9': string;
-        'span-10': string;
-        'span-11': string;
-        'span-12': string;
-        'span-full': string;
-    };
-    gridRowEnd: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridRowStart: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        13: string;
-    };
-    gridTemplateColumns: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        none: string;
-        subgrid: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    gridTemplateRows: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        none: string;
-        subgrid: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    height: ({ theme }: PluginUtils) => any;
-    hueRotate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        15: string;
-        30: string;
-        60: string;
-        90: string;
-        180: string;
-    };
-    inset: ({ theme }: PluginUtils) => any;
-    invert: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    keyframes: {
-        spin: {
-            to: {
-                transform: string;
-            };
-        };
-        ping: {
-            '75%, 100%': {
-                transform: string;
-                opacity: string;
-            };
-        };
-        pulse: {
-            '50%': {
-                opacity: string;
-            };
-        };
-        bounce: {
-            '0%, 100%': {
-                transform: string;
-                animationTimingFunction: string;
-            };
-            '50%': {
-                transform: string;
-                animationTimingFunction: string;
-            };
-        };
-    };
-    letterSpacing: {
-        tighter: string;
-        tight: string;
-        normal: string;
-        wide: string;
-        wider: string;
-        widest: string;
-    };
-    lineHeight: {
-        none: string;
-        tight: string;
-        snug: string;
-        normal: string;
-        relaxed: string;
-        loose: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-    };
-    listStyleType: {
-        none: string;
-        disc: string;
-        decimal: string;
-    };
-    listStyleImage: {
-        none: string;
-    };
-    margin: ({ theme }: PluginUtils) => any;
-    lineClamp: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-    };
-    maxHeight: ({ theme }: PluginUtils) => any;
-    maxWidth: ({ theme }: PluginUtils) => any;
-    minHeight: ({ theme }: PluginUtils) => any;
-    minWidth: ({ theme }: PluginUtils) => any;
-    objectPosition: {
-        bottom: string;
-        center: string;
-        left: string;
-        'left-bottom': string;
-        'left-top': string;
-        right: string;
-        'right-bottom': string;
-        'right-top': string;
-        top: string;
-    };
-    opacity: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        5: string;
-        10: string;
-        15: string;
-        20: string;
-        25: string;
-        30: string;
-        35: string;
-        40: string;
-        45: string;
-        50: string;
-        55: string;
-        60: string;
-        65: string;
-        70: string;
-        75: string;
-        80: string;
-        85: string;
-        90: string;
-        95: string;
-        100: string;
-    };
-    order: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        first: string;
-        last: string;
-        none: string;
-        1: string;
-        2: string;
-        3: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-    };
-    outlineColor: ({ theme }: PluginUtils) => any;
-    outlineOffset: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    outlineWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    padding: ({ theme }: PluginUtils) => any;
-    placeholderColor: ({ theme }: PluginUtils) => any;
-    placeholderOpacity: ({ theme }: PluginUtils) => any;
-    ringColor: ({ theme }: PluginUtils) => any;
-    ringOffsetColor: ({ theme }: PluginUtils) => any;
-    ringOffsetWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    ringOpacity: ({ theme }: PluginUtils) => any;
-    ringWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    rotate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        3: string;
-        6: string;
-        12: string;
-        45: string;
-        90: string;
-        180: string;
-    };
-    saturate: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        100: string;
-        150: string;
-        200: string;
-    };
-    scale: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        50: string;
-        75: string;
-        90: string;
-        95: string;
-        100: string;
-        105: string;
-        110: string;
-        125: string;
-        150: string;
-    };
-    screens: {
-        sm: string;
-        md: string;
-        lg: string;
-        xl: string;
-        '2xl': string;
-    };
-    scrollMargin: ({ theme }: PluginUtils) => any;
-    scrollPadding: ({ theme }: PluginUtils) => any;
-    sepia: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        DEFAULT: string;
-    };
-    skew: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-        3: string;
-        6: string;
-        12: string;
-    };
-    space: ({ theme }: PluginUtils) => any;
-    spacing: {
-        px: string;
-        0: string;
-        0.5: string;
-        1: string;
-        1.5: string;
-        2: string;
-        2.5: string;
-        3: string;
-        3.5: string;
-        4: string;
-        5: string;
-        6: string;
-        7: string;
-        8: string;
-        9: string;
-        10: string;
-        11: string;
-        12: string;
-        14: string;
-        16: string;
-        20: string;
-        24: string;
-        28: string;
-        32: string;
-        36: string;
-        40: string;
-        44: string;
-        48: string;
-        52: string;
-        56: string;
-        60: string;
-        64: string;
-        72: string;
-        80: string;
-        96: string;
-    };
-    stroke: ({ theme }: PluginUtils) => any;
-    strokeWidth: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        1: string;
-        2: string;
-    };
-    supports: {};
-    data: {};
-    textColor: ({ theme }: PluginUtils) => any;
-    textDecorationColor: ({ theme }: PluginUtils) => any;
-    textDecorationThickness: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        'from-font': string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    textIndent: ({ theme }: PluginUtils) => any;
-    textOpacity: ({ theme }: PluginUtils) => any;
-    textUnderlineOffset: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        0: string;
-        1: string;
-        2: string;
-        4: string;
-        8: string;
-    };
-    transformOrigin: {
-        center: string;
-        top: string;
-        'top-right': string;
-        right: string;
-        'bottom-right': string;
-        bottom: string;
-        'bottom-left': string;
-        left: string;
-        'top-left': string;
-    };
-    transitionDelay: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        0: string;
-        75: string;
-        100: string;
-        150: string;
-        200: string;
-        300: string;
-        500: string;
-        700: string;
-        1000: string;
-    };
-    transitionDuration: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        DEFAULT: string;
-        0: string;
-        75: string;
-        100: string;
-        150: string;
-        200: string;
-        300: string;
-        500: string;
-        700: string;
-        1000: string;
-    };
-    transitionProperty: {
-        none: string;
-        all: string;
-        DEFAULT: string;
-        colors: string;
-        opacity: string;
-        shadow: string;
-        transform: string;
-    };
-    transitionTimingFunction: {
-        DEFAULT: string;
-        linear: string;
-        in: string;
-        out: string;
-        'in-out': string;
-    };
-    translate: ({ theme }: PluginUtils) => any;
-    size: ({ theme }: PluginUtils) => any;
-    width: ({ theme }: PluginUtils) => any;
-    willChange: {
-        auto: string;
-        scroll: string;
-        contents: string;
-        transform: string;
-    };
-    zIndex: {
-        __BARE_VALUE__: (value: NamedUtilityValue) => string | undefined;
-        auto: string;
-        0: string;
-        10: string;
-        20: string;
-        30: string;
-        40: string;
-        50: string;
-    };
-};
-
-export { _default as default };
Index: de_modules/tailwindcss/dist/default-theme.js
===================================================================
--- node_modules/tailwindcss/dist/default-theme.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";var m=new Uint8Array(256);function d(e,c){let t=0,g=[],u=0,k=e.length,w=c.charCodeAt(0);for(let n=0;n<k;n++){let h=e.charCodeAt(n);if(t===0&&h===w){g.push(e.slice(u,n)),u=n+1;continue}switch(h){case 92:n+=1;break;case 39:case 34:for(;++n<k;){let x=e.charCodeAt(n);if(x===92){n+=1;continue}if(x===h)break}break;case 40:m[t]=41,t++;break;case 91:m[t]=93,t++;break;case 123:m[t]=125,t++;break;case 93:case 125:case 41:t>0&&h===m[t-1]&&t--;break}}return g.push(e.slice(u)),g}var l=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,z=new RegExp(`^${l.source}$`);var T=new RegExp(`^${l.source}%$`);var D=new RegExp(`^${l.source}s*/s*${l.source}$`);var A=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],I=new RegExp(`^${l.source}(${A.join("|")})$`);var C=["deg","rad","grad","turn"],F=new RegExp(`^${l.source}(${C.join("|")})$`);var H=new RegExp(`^${l.source} +${l.source} +${l.source}$`);function i(e){let c=Number(e);return Number.isInteger(c)&&c>=0&&String(c)===String(e)}var f={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};function s(e){return{__BARE_VALUE__:e}}var r=s(e=>{if(i(e.value))return e.value}),o=s(e=>{if(i(e.value))return`${e.value}%`}),a=s(e=>{if(i(e.value))return`${e.value}px`}),b=s(e=>{if(i(e.value))return`${e.value}ms`}),p=s(e=>{if(i(e.value))return`${e.value}deg`}),S=s(e=>{if(e.fraction===null)return;let[c,t]=d(e.fraction,"/");if(!(!i(c)||!i(t)))return e.fraction}),E=s(e=>{if(i(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),y={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...S},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...o}),backdropContrast:({theme:e})=>({...e("contrast"),...o}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...o}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...p}),backdropInvert:({theme:e})=>({...e("invert"),...o}),backdropOpacity:({theme:e})=>({...e("opacity"),...o}),backdropSaturate:({theme:e})=>({...e("saturate"),...o}),backdropSepia:({theme:e})=>({...e("sepia"),...o}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...a},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...o},caretColor:({theme:e})=>e("colors"),colors:()=>({...f}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...r},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...o},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...a}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...r},flexShrink:{0:"0",DEFAULT:"1",...r},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...o},grayscale:{0:"0",DEFAULT:"100%",...o},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...r},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...r},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...r},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...r},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...E},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...E},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...p},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...o},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...r},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...o},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...r},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...p},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...o},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...o},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...o},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...p},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...r},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...a},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...b},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...b},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...r}};module.exports=y;
Index: de_modules/tailwindcss/dist/default-theme.mjs
===================================================================
--- node_modules/tailwindcss/dist/default-theme.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-import{i as a}from"./chunk-GFBUASX3.mjs";import"./chunk-HTB5LLOP.mjs";export{a as default};
Index: de_modules/tailwindcss/dist/flatten-color-palette.d.mts
===================================================================
--- node_modules/tailwindcss/dist/flatten-color-palette.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-type Colors = {
-    [key: string | number]: string | Colors;
-};
-declare function flattenColorPalette(colors: Colors): Record<string, string>;
-
-export { flattenColorPalette as default };
Index: de_modules/tailwindcss/dist/flatten-color-palette.d.ts
===================================================================
--- node_modules/tailwindcss/dist/flatten-color-palette.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-type Colors = {
-    [key: string | number]: string | Colors;
-};
-declare function flattenColorPalette(colors: Colors): Record<string, string>;
-
-export { flattenColorPalette as default };
Index: de_modules/tailwindcss/dist/flatten-color-palette.js
===================================================================
--- node_modules/tailwindcss/dist/flatten-color-palette.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-"use strict";function N(e){return{kind:"word",value:e}}function we(e,t){return{kind:"function",value:e,nodes:t}}function ye(e){return{kind:"separator",value:e}}function v(e){let t="";for(let i of e)switch(i.kind){case"word":case"separator":{t+=i.value;break}case"function":t+=i.value+"("+v(i.nodes)+")"}return t}var q=92,be=41,Z=58,Q=44,xe=34,J=61,X=62,ee=60,te=10,Ae=40,Ce=39,Se=47,re=32,ie=9;function g(e){e=e.replaceAll(`\r
-`,`
-`);let t=[],i=[],r=null,n="",a;for(let o=0;o<e.length;o++){let l=e.charCodeAt(o);switch(l){case q:{n+=e[o]+e[o+1],o++;break}case Se:{if(n.length>0){let u=N(n);r?r.nodes.push(u):t.push(u),n=""}let s=N(e[o]);r?r.nodes.push(s):t.push(s);break}case Z:case Q:case J:case X:case ee:case te:case re:case ie:{if(n.length>0){let U=N(n);r?r.nodes.push(U):t.push(U),n=""}let s=o,u=o+1;for(;u<e.length&&(a=e.charCodeAt(u),!(a!==Z&&a!==Q&&a!==J&&a!==X&&a!==ee&&a!==te&&a!==re&&a!==ie));u++);o=u-1;let w=ye(e.slice(s,u));r?r.nodes.push(w):t.push(w);break}case Ce:case xe:{let s=o;for(let u=o+1;u<e.length;u++)if(a=e.charCodeAt(u),a===q)u+=1;else if(a===l){o=u;break}n+=e.slice(s,o+1);break}case Ae:{let s=we(n,[]);n="",r?r.nodes.push(s):t.push(s),i.push(s),r=s;break}case be:{let s=i.pop();if(n.length>0){let u=N(n);s?.nodes.push(u),n=""}i.length>0?r=i[i.length-1]:r=null;break}default:n+=String.fromCharCode(l)}}return n.length>0&&t.push(N(n)),t}var p=class extends Map{constructor(i){super();this.factory=i}get(i){let r=super.get(i);return r===void 0&&(r=this.factory(i,this),this.set(i,r)),r}};var ct=new Uint8Array(256);var L=new Uint8Array(256);function d(e,t){let i=0,r=[],n=0,a=e.length,o=t.charCodeAt(0);for(let l=0;l<a;l++){let s=e.charCodeAt(l);if(i===0&&s===o){r.push(e.slice(n,l)),n=l+1;continue}switch(s){case 92:l+=1;break;case 39:case 34:for(;++l<a;){let u=e.charCodeAt(l);if(u===92){l+=1;continue}if(u===s)break}break;case 40:L[i]=41,i++;break;case 91:L[i]=93,i++;break;case 123:L[i]=125,i++;break;case 93:case 125:case 41:i>0&&s===L[i-1]&&i--;break}}return r.push(e.slice(n)),r}var j=(o=>(o[o.Continue=0]="Continue",o[o.Skip=1]="Skip",o[o.Stop=2]="Stop",o[o.Replace=3]="Replace",o[o.ReplaceSkip=4]="ReplaceSkip",o[o.ReplaceStop=5]="ReplaceStop",o))(j||{}),f={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:e=>({kind:3,nodes:Array.isArray(e)?e:[e]}),ReplaceSkip:e=>({kind:4,nodes:Array.isArray(e)?e:[e]}),ReplaceStop:e=>({kind:5,nodes:Array.isArray(e)?e:[e]})};function c(e,t){typeof t=="function"?ne(e,t):ne(e,t.enter,t.exit)}function ne(e,t=()=>f.Continue,i=()=>f.Continue){let r=[[e,0,null]],n={parent:null,depth:0,path(){let a=[];for(let o=1;o<r.length;o++){let l=r[o][2];l&&a.push(l)}return a}};for(;r.length>0;){let a=r.length-1,o=r[a],l=o[0],s=o[1],u=o[2];if(s>=l.length){r.pop();continue}if(n.parent=u,n.depth=a,s>=0){let O=l[s],C=t(O,n)??f.Continue;switch(C.kind){case 0:{O.nodes&&O.nodes.length>0&&r.push([O.nodes,0,O]),o[1]=~s;continue}case 2:return;case 1:{o[1]=~s;continue}case 3:{l.splice(s,1,...C.nodes);continue}case 5:{l.splice(s,1,...C.nodes);return}case 4:{l.splice(s,1,...C.nodes),o[1]+=C.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${j[C.kind]??`Unknown(${C.kind})`}\` in enter.`)}}let w=~s,U=l[w],b=i(U,n)??f.Continue;switch(b.kind){case 0:o[1]=w+1;continue;case 2:return;case 3:{l.splice(w,1,...b.nodes),o[1]=w+b.nodes.length;continue}case 5:{l.splice(w,1,...b.nodes);return}case 4:{l.splice(w,1,...b.nodes),o[1]=w+b.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${j[b.kind]??`Unknown(${b.kind})`}\` in exit.`)}}}var xt=new p(e=>{let t=g(e),i=new Set;return c(t,(r,n)=>{let a=n.parent===null?t:n.parent.nodes??[];if(r.kind==="word"&&(r.value==="+"||r.value==="-"||r.value==="*"||r.value==="/")){let o=a.indexOf(r)??-1;if(o===-1)return;let l=a[o-1];if(l?.kind!=="separator"||l.value!==" ")return;let s=a[o+1];if(s?.kind!=="separator"||s.value!==" ")return;i.add(l),i.add(s)}else r.kind==="separator"&&r.value.length>0&&r.value.trim()===""?(a[0]===r||a[a.length-1]===r)&&i.add(r):r.kind==="separator"&&r.value.trim()===","&&(r.value=",")}),i.size>0&&c(t,r=>{if(i.has(r))return i.delete(r),f.ReplaceSkip([])}),W(t),v(t)});var At=new p(e=>{let t=g(e);return t.length===3&&t[0].kind==="word"&&t[0].value==="&"&&t[1].kind==="separator"&&t[1].value===":"&&t[2].kind==="function"&&t[2].value==="is"?v(t[2].nodes):e});function W(e){for(let t of e)switch(t.kind){case"function":{if(t.value==="url"||t.value.endsWith("_url")){t.value=P(t.value);break}if(t.value==="var"||t.value.endsWith("_var")||t.value==="theme"||t.value.endsWith("_theme")){t.value=P(t.value);for(let i=0;i<t.nodes.length;i++)W([t.nodes[i]]);break}t.value=P(t.value),W(t.nodes);break}case"separator":t.value=P(t.value);break;case"word":{(t.value[0]!=="-"||t.value[1]!=="-")&&(t.value=P(t.value));break}default:$e(t)}}var Ct=new p(e=>{let t=g(e);return t.length===1&&t[0].kind==="function"&&t[0].value==="var"});function $e(e){throw new Error(`Unexpected value: ${e}`)}function P(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}var A=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,_t=new RegExp(`^${A.source}$`);var It=new RegExp(`^${A.source}%$`);var Dt=new RegExp(`^${A.source}s*/s*${A.source}$`);var Te=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Ut=new RegExp(`^${A.source}(${Te.join("|")})$`);var Ee=["deg","rad","grad","turn"],Lt=new RegExp(`^${A.source}(${Ee.join("|")})$`);var Kt=new RegExp(`^${A.source} +${A.source} +${A.source}$`);function h(e){let t=Number(e);return Number.isInteger(t)&&t>=0&&String(t)===String(e)}function _(e,t){if(t===null)return e;let i=Number(t);return Number.isNaN(i)||(t=`${i*100}%`),t==="100%"?e:`color-mix(in oklab, ${e} ${t}, transparent)`}var Re={"--alpha":Oe,"--spacing":Pe,"--theme":_e,theme:Ie};function Oe(e,t,i,...r){let[n,a]=d(i,"/").map(o=>o.trim());if(!n||!a)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${n||"var(--my-color)"} / ${a||"50%"})\``);if(r.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${n||"var(--my-color)"} / ${a||"50%"})\``);return _(n,a)}function Pe(e,t,i,...r){if(!i)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(r.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${r.length+1}.`);let n=e.theme.resolve(null,["--spacing"]);if(!n)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${n} * ${i})`}function _e(e,t,i,...r){if(!i.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let n=!1;i.endsWith(" inline")&&(n=!0,i=i.slice(0,-7)),t.kind==="at-rule"&&(n=!0);let a=e.resolveThemeValue(i,n);if(!a){if(r.length>0)return r.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(r.length===0)return a;let o=r.join(", ");if(o==="initial")return a;if(a==="initial")return o;if(a.startsWith("var(")||a.startsWith("theme(")||a.startsWith("--theme(")){let l=g(a);return Ue(l,o),v(l)}return a}function Ie(e,t,i,...r){i=De(i);let n=e.resolveThemeValue(i);if(!n&&r.length>0)return r.join(", ");if(!n)throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return n}var lr=new RegExp(Object.keys(Re).map(e=>`${e}\\(`).join("|"));function De(e){if(e[0]!=="'"&&e[0]!=='"')return e;let t="",i=e[0];for(let r=1;r<e.length-1;r++){let n=e[r],a=e[r+1];n==="\\"&&(a===i||a==="\\")?(t+=a,r++):t+=n}return t}function Ue(e,t){c(e,i=>{if(i.kind==="function"&&!(i.value!=="var"&&i.value!=="theme"&&i.value!=="--theme"))if(i.nodes.length===1)i.nodes.push({kind:"word",value:`, ${t}`});else{let r=i.nodes[i.nodes.length-1];r.kind==="word"&&r.value==="initial"&&(r.value=t)}})}var Ke=/^(?<value>[-+]?(?:\d*\.)?\d+)(?<unit>[a-z]+|%)?$/i,le=new p(e=>{let t=Ke.exec(e);if(!t)return null;let i=t.groups?.value;if(i===void 0)return null;let r=Number(i);if(Number.isNaN(r))return null;let n=t.groups?.unit;return n===void 0?[r,null]:[r,n]});function se(e,t="top",i="right",r="bottom",n="left"){return ue(`${e}-${t}`,`${e}-${i}`,`${e}-${r}`,`${e}-${n}`)}function ue(e="top",t="right",i="bottom",r="left"){return{1:[[e,0],[t,0],[i,0],[r,0]],2:[[e,0],[t,1],[i,0],[r,1]],3:[[e,0],[t,1],[i,2],[r,1]],4:[[e,0],[t,1],[i,2],[r,3]]}}function T(e,t){return{1:[[e,0],[t,0]],2:[[e,0],[t,1]]}}var xr={inset:ue(),margin:se("margin"),padding:se("padding"),gap:T("row-gap","column-gap")},Ar={"inset-block":T("top","bottom"),"inset-inline":T("left","right"),"margin-block":T("margin-top","margin-bottom"),"margin-inline":T("margin-left","margin-right"),"padding-block":T("padding-top","padding-bottom"),"padding-inline":T("padding-left","padding-right")};var Jr=Symbol();var Xr=Symbol();var ei=Symbol();var ti=Symbol();var ri=Symbol();var ii=Symbol();var ni=Symbol();var oi=Symbol();var ai=Symbol();var li=Symbol();var si=Symbol();var ui=Symbol();var fi=Symbol();var H={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};function E(e){return{__BARE_VALUE__:e}}var k=E(e=>{if(h(e.value))return e.value}),m=E(e=>{if(h(e.value))return`${e.value}%`}),$=E(e=>{if(h(e.value))return`${e.value}px`}),ve=E(e=>{if(h(e.value))return`${e.value}ms`}),M=E(e=>{if(h(e.value))return`${e.value}deg`}),it=E(e=>{if(e.fraction===null)return;let[t,i]=d(e.fraction,"/");if(!(!h(t)||!h(i)))return e.fraction}),ke=E(e=>{if(h(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),nt={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...it},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...m}),backdropContrast:({theme:e})=>({...e("contrast"),...m}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...m}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...M}),backdropInvert:({theme:e})=>({...e("invert"),...m}),backdropOpacity:({theme:e})=>({...e("opacity"),...m}),backdropSaturate:({theme:e})=>({...e("saturate"),...m}),backdropSepia:({theme:e})=>({...e("sepia"),...m}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...$},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...m},caretColor:({theme:e})=>e("colors"),colors:()=>({...H}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...k},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...m},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...$}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...k},flexShrink:{0:"0",DEFAULT:"1",...k},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...m},grayscale:{0:"0",DEFAULT:"100%",...m},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...k},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...k},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...k},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...k},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...ke},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...ke},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...M},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...m},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...k},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...m},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...k},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...M},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...m},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...m},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...m},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...M},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...k},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...$},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...ve},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...ve},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...k}};function F(e){let t={};for(let[i,r]of Object.entries(e??{}))if(i!=="__CSS_VALUES__")if(typeof r=="object"&&r!==null)for(let[n,a]of Object.entries(F(r)))t[`${i}${n==="DEFAULT"?"":`-${n}`}`]=a;else t[i]=r;if("__CSS_VALUES__"in e)for(let[i,r]of Object.entries(e.__CSS_VALUES__))(Number(r)&4)===0&&(t[i]=e[i]);return t}module.exports=F;
Index: de_modules/tailwindcss/dist/flatten-color-palette.mjs
===================================================================
--- node_modules/tailwindcss/dist/flatten-color-palette.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-import"./chunk-CT46QCH7.mjs";import"./chunk-GFBUASX3.mjs";import"./chunk-HTB5LLOP.mjs";function i(r){let n={};for(let[e,t]of Object.entries(r??{}))if(e!=="__CSS_VALUES__")if(typeof t=="object"&&t!==null)for(let[o,f]of Object.entries(i(t)))n[`${e}${o==="DEFAULT"?"":`-${o}`}`]=f;else n[e]=t;if("__CSS_VALUES__"in r)for(let[e,t]of Object.entries(r.__CSS_VALUES__))(Number(t)&4)===0&&(n[e]=r[e]);return n}export{i as default};
Index: de_modules/tailwindcss/dist/lib.d.mts
===================================================================
--- node_modules/tailwindcss/dist/lib.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,378 +1,0 @@
-import { S as SourceLocation, U as UserConfig, P as Plugin } from './types-CJYAW1ql.mjs';
-import { V as Variant, C as Candidate } from './resolve-config-QUZ9b-Gn.mjs';
-import './colors.mjs';
-
-declare const enum ThemeOptions {
-    NONE = 0,
-    INLINE = 1,
-    REFERENCE = 2,
-    DEFAULT = 4,
-    STATIC = 8,
-    USED = 16
-}
-declare class Theme {
-    #private;
-    private values;
-    private keyframes;
-    prefix: string | null;
-    constructor(values?: Map<string, {
-        value: string;
-        options: ThemeOptions;
-        src: Declaration["src"];
-    }>, keyframes?: Set<AtRule>);
-    get size(): number;
-    add(key: string, value: string, options?: ThemeOptions, src?: Declaration['src']): void;
-    keysInNamespaces(themeKeys: Iterable<ThemeKey>): string[];
-    get(themeKeys: ThemeKey[]): string | null;
-    hasDefault(key: string): boolean;
-    getOptions(key: string): ThemeOptions;
-    entries(): IterableIterator<[string, {
-        value: string;
-        options: ThemeOptions;
-        src: Declaration["src"];
-    }]> | [string, {
-        value: string;
-        options: ThemeOptions;
-        src: Declaration["src"];
-    }][];
-    prefixKey(key: string): string;
-    clearNamespace(namespace: string, clearOptions: ThemeOptions): void;
-    markUsedVariable(themeKey: string): boolean;
-    resolve(candidateValue: string | null, themeKeys: ThemeKey[], options?: ThemeOptions): string | null;
-    resolveValue(candidateValue: string | null, themeKeys: ThemeKey[]): string | null;
-    resolveWith(candidateValue: string, themeKeys: ThemeKey[], nestedKeys?: `--${string}`[]): [string, Record<string, string>] | null;
-    namespace(namespace: string): Map<string | null, string>;
-    addKeyframes(value: AtRule): void;
-    getKeyframes(): AtRule[];
-}
-type ThemeKey = `--${string}`;
-
-type VariantFn<T extends Variant['kind']> = (rule: Rule, variant: Extract<Variant, {
-    kind: T;
-}>) => null | void;
-type CompareFn = (a: Variant, z: Variant) => number;
-declare const enum Compounds {
-    Never = 0,
-    AtRules = 1,
-    StyleRules = 2
-}
-declare class Variants {
-    compareFns: Map<number, CompareFn>;
-    variants: Map<string, {
-        kind: Variant["kind"];
-        order: number;
-        applyFn: VariantFn<any>;
-        compoundsWith: Compounds;
-        compounds: Compounds;
-    }>;
-    private completions;
-    /**
-     * Registering a group of variants should result in the same sort number for
-     * all the variants. This is to ensure that the variants are applied in the
-     * correct order.
-     */
-    private groupOrder;
-    /**
-     * Keep track of the last sort order instead of using the size of the map to
-     * avoid unnecessarily skipping order numbers.
-     */
-    private lastOrder;
-    static(name: string, applyFn: VariantFn<'static'>, { compounds, order }?: {
-        compounds?: Compounds;
-        order?: number;
-    }): void;
-    fromAst(name: string, ast: AstNode[], designSystem: DesignSystem): void;
-    functional(name: string, applyFn: VariantFn<'functional'>, { compounds, order }?: {
-        compounds?: Compounds;
-        order?: number;
-    }): void;
-    compound(name: string, compoundsWith: Compounds, applyFn: VariantFn<'compound'>, { compounds, order }?: {
-        compounds?: Compounds;
-        order?: number;
-    }): void;
-    group(fn: () => void, compareFn?: CompareFn): void;
-    has(name: string): boolean;
-    get(name: string): {
-        kind: Variant["kind"];
-        order: number;
-        applyFn: VariantFn<any>;
-        compoundsWith: Compounds;
-        compounds: Compounds;
-    } | undefined;
-    kind(name: string): "arbitrary" | "static" | "functional" | "compound";
-    compoundsWith(parent: string, child: string | Variant): boolean;
-    suggest(name: string, suggestions: () => string[]): void;
-    getCompletions(name: string): string[];
-    compare(a: Variant | null, z: Variant | null): number;
-    keys(): IterableIterator<string>;
-    entries(): IterableIterator<[string, {
-        kind: Variant["kind"];
-        order: number;
-        applyFn: VariantFn<any>;
-        compoundsWith: Compounds;
-        compounds: Compounds;
-    }]>;
-    private set;
-    private nextOrder;
-}
-
-declare function compileAstNodes(candidate: Candidate, designSystem: DesignSystem, flags: CompileAstFlags): {
-    node: AstNode;
-    propertySort: {
-        order: number[];
-        count: number;
-    };
-}[];
-
-interface CanonicalizeOptions {
-    /**
-     * The root font size in pixels. If provided, `rem` values will be normalized
-     * to `px` values.
-     *
-     * E.g.: `mt-[16px]` with `rem: 16` will become `mt-4` (assuming `--spacing: 0.25rem`).
-     */
-    rem?: number;
-    /**
-     * Whether to collapse multiple utilities into a single utility if possible.
-     *
-     * E.g.: `mt-2 mr-2 mb-2 ml-2` → `m-2`
-     */
-    collapse?: boolean;
-    /**
-     * Whether to convert between logical and physical properties when collapsing
-     * utilities.
-     *
-     * E.g.: `mr-2 ml-2` → `mx-2`
-     */
-    logicalToPhysical?: boolean;
-}
-
-interface ClassMetadata {
-    modifiers: string[];
-}
-type ClassEntry = [string, ClassMetadata];
-interface SelectorOptions {
-    modifier?: string;
-    value?: string;
-}
-interface VariantEntry {
-    name: string;
-    isArbitrary: boolean;
-    values: string[];
-    hasDash: boolean;
-    selectors: (options: SelectorOptions) => string[];
-}
-
-type CompileFn<T extends Candidate['kind']> = (value: Extract<Candidate, {
-    kind: T;
-}>) => AstNode[] | undefined | null;
-interface SuggestionGroup {
-    supportsNegative?: boolean;
-    values: (string | null)[];
-    modifiers: string[];
-}
-type UtilityOptions = {
-    types: string[];
-};
-type Utility = {
-    kind: 'static' | 'functional';
-    compileFn: CompileFn<any>;
-    options?: UtilityOptions;
-};
-declare class Utilities {
-    private utilities;
-    private completions;
-    static(name: string, compileFn: CompileFn<'static'>): void;
-    functional(name: string, compileFn: CompileFn<'functional'>, options?: UtilityOptions): void;
-    has(name: string, kind: 'static' | 'functional'): boolean;
-    get(name: string): Utility[];
-    getCompletions(name: string): SuggestionGroup[];
-    suggest(name: string, groups: () => SuggestionGroup[]): void;
-    keys(kind: 'static' | 'functional'): string[];
-}
-
-declare const enum CompileAstFlags {
-    None = 0,
-    RespectImportant = 1
-}
-type DesignSystem = {
-    theme: Theme;
-    utilities: Utilities;
-    variants: Variants;
-    invalidCandidates: Set<string>;
-    important: boolean;
-    getClassOrder(classes: string[]): [string, bigint | null][];
-    getClassList(): ClassEntry[];
-    getVariants(): VariantEntry[];
-    parseCandidate(candidate: string): Readonly<Candidate>[];
-    parseVariant(variant: string): Readonly<Variant> | null;
-    compileAstNodes(candidate: Candidate, flags?: CompileAstFlags): ReturnType<typeof compileAstNodes>;
-    printCandidate(candidate: Candidate): string;
-    printVariant(variant: Variant): string;
-    getVariantOrder(): Map<Variant, number>;
-    resolveThemeValue(path: string, forceInline?: boolean): string | undefined;
-    trackUsedVariables(raw: string): void;
-    canonicalizeCandidates(candidates: string[], options?: CanonicalizeOptions): string[];
-    candidatesToCss(classes: string[]): (string | null)[];
-    candidatesToAst(classes: string[]): AstNode[][];
-    storage: Record<symbol, unknown>;
-};
-
-type StyleRule = {
-    kind: 'rule';
-    selector: string;
-    nodes: AstNode[];
-    src?: SourceLocation;
-    dst?: SourceLocation;
-};
-type AtRule = {
-    kind: 'at-rule';
-    name: string;
-    params: string;
-    nodes: AstNode[];
-    src?: SourceLocation;
-    dst?: SourceLocation;
-};
-type Declaration = {
-    kind: 'declaration';
-    property: string;
-    value: string | undefined;
-    important: boolean;
-    src?: SourceLocation;
-    dst?: SourceLocation;
-};
-type Comment = {
-    kind: 'comment';
-    value: string;
-    src?: SourceLocation;
-    dst?: SourceLocation;
-};
-type Context = {
-    kind: 'context';
-    context: Record<string, string | boolean>;
-    nodes: AstNode[];
-    src?: undefined;
-    dst?: undefined;
-};
-type AtRoot = {
-    kind: 'at-root';
-    nodes: AstNode[];
-    src?: undefined;
-    dst?: undefined;
-};
-type Rule = StyleRule | AtRule;
-type AstNode = StyleRule | AtRule | Declaration | Comment | Context | AtRoot;
-
-/**
- * Line offset tables are the key to generating our source maps. They allow us
- * to store indexes with our AST nodes and later convert them into positions as
- * when given the source that the indexes refer to.
- */
-/**
- * A position in source code
- *
- * https://tc39.es/ecma426/#sec-position-record-type
- */
-interface Position {
-    /** The line number, one-based */
-    line: number;
-    /** The column/character number, one-based */
-    column: number;
-}
-
-interface OriginalPosition extends Position {
-    source: DecodedSource;
-}
-/**
- * A "decoded" sourcemap
- *
- * @see https://tc39.es/ecma426/#decoded-source-map-record
- */
-interface DecodedSourceMap {
-    file: string | null;
-    sources: DecodedSource[];
-    mappings: DecodedMapping[];
-}
-/**
- * A "decoded" source
- *
- * @see https://tc39.es/ecma426/#decoded-source-record
- */
-interface DecodedSource {
-    url: string | null;
-    content: string | null;
-    ignore: boolean;
-}
-/**
- * A "decoded" mapping
- *
- * @see https://tc39.es/ecma426/#decoded-mapping-record
- */
-interface DecodedMapping {
-    originalPosition: OriginalPosition | null;
-    generatedPosition: Position;
-    name: string | null;
-}
-
-type Config = UserConfig;
-declare const enum Polyfills {
-    None = 0,
-    AtProperty = 1,
-    ColorMix = 2,
-    All = 3
-}
-type CompileOptions = {
-    base?: string;
-    from?: string;
-    polyfills?: Polyfills;
-    loadModule?: (id: string, base: string, resourceHint: 'plugin' | 'config') => Promise<{
-        path: string;
-        base: string;
-        module: Plugin | Config;
-    }>;
-    loadStylesheet?: (id: string, base: string) => Promise<{
-        path: string;
-        base: string;
-        content: string;
-    }>;
-};
-type Root = null | 'none' | {
-    base: string;
-    pattern: string;
-};
-declare const enum Features {
-    None = 0,
-    AtApply = 1,
-    AtImport = 2,
-    JsPluginCompat = 4,
-    ThemeFunction = 8,
-    Utilities = 16,
-    Variants = 32,
-    AtTheme = 64
-}
-declare function compileAst(input: AstNode[], opts?: CompileOptions): Promise<{
-    sources: {
-        base: string;
-        pattern: string;
-        negated: boolean;
-    }[];
-    root: Root;
-    features: Features;
-    build(candidates: string[]): AstNode[];
-}>;
-
-declare function compile(css: string, opts?: CompileOptions): Promise<{
-    sources: {
-        base: string;
-        pattern: string;
-        negated: boolean;
-    }[];
-    root: Root;
-    features: Features;
-    build(candidates: string[]): string;
-    buildSourceMap(): DecodedSourceMap;
-}>;
-declare function __unstable__loadDesignSystem(css: string, opts?: CompileOptions): Promise<DesignSystem>;
-declare function postcssPluginWarning(): void;
-
-export { type Config, type DecodedSourceMap, Features, Polyfills, __unstable__loadDesignSystem, compile, compileAst, postcssPluginWarning as default };
Index: de_modules/tailwindcss/dist/lib.d.ts
===================================================================
--- node_modules/tailwindcss/dist/lib.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3 +1,0 @@
-declare function postcssPluginWarning(): void;
-
-export { postcssPluginWarning as default };
Index: de_modules/tailwindcss/dist/lib.js
===================================================================
--- node_modules/tailwindcss/dist/lib.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-"use strict";var fn=Object.defineProperty;var pn=(e,r)=>{for(var i in r)fn(e,i,{get:r[i],enumerable:!0})};var It={};pn(It,{Features:()=>Pe,Polyfills:()=>ht,__unstable__loadDesignSystem:()=>Wa,compile:()=>Fa,compileAst:()=>cn,default:()=>lt});var dr="4.1.18";function st(e){let r=[0];for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&r.push(n+1);function i(n){let l=0,o=r.length;for(;o>0;){let u=(o|0)>>1,c=l+u;r[c]<=n?(l=c+1,o=o-u-1):o=u}l-=1;let f=n-r[l];return{line:l+1,column:f}}function t({line:n,column:l}){n-=1,n=Math.min(Math.max(n,0),r.length-1);let o=r[n],f=r[n+1]??o;return Math.min(Math.max(o+l,0),f)}return{find:i,findOffset:t}}var He=92,ut=47,ct=42,mr=34,gr=39,mn=58,ft=59,se=10,pt=13,Ze=32,Qe=9,hr=123,Ut=125,zt=40,vr=41,gn=91,hn=93,kr=45,Lt=64,vn=33,ue=class e extends Error{loc;constructor(r,i){if(i){let t=i[0],n=st(t.code).find(i[1]);r=`${t.file}:${n.line}:${n.column+1}: ${r}`}super(r),this.name="CssSyntaxError",this.loc=i,Error.captureStackTrace&&Error.captureStackTrace(this,e)}};function Ne(e,r){let i=r?.from?{file:r.from,code:e}:null;e[0]==="\uFEFF"&&(e=" "+e.slice(1));let t=[],n=[],l=[],o=null,f=null,u="",c="",m=0,d;for(let p=0;p<e.length;p++){let k=e.charCodeAt(p);if(!(k===pt&&(d=e.charCodeAt(p+1),d===se)))if(k===He)u===""&&(m=p),u+=e.slice(p,p+2),p+=1;else if(k===ut&&e.charCodeAt(p+1)===ct){let h=p;for(let x=p+2;x<e.length;x++)if(d=e.charCodeAt(x),d===He)x+=1;else if(d===ct&&e.charCodeAt(x+1)===ut){p=x+1;break}let w=e.slice(h,p+1);if(w.charCodeAt(2)===vn){let x=dt(w.slice(2,-2));n.push(x),i&&(x.src=[i,h,p+1],x.dst=[i,h,p+1])}}else if(k===gr||k===mr){let h=wr(e,p,k,i);u+=e.slice(p,h+1),p=h}else{if((k===Ze||k===se||k===Qe)&&(d=e.charCodeAt(p+1))&&(d===Ze||d===se||d===Qe||d===pt&&(d=e.charCodeAt(p+2))&&d==se))continue;if(k===se){if(u.length===0)continue;d=u.charCodeAt(u.length-1),d!==Ze&&d!==se&&d!==Qe&&(u+=" ")}else if(k===kr&&e.charCodeAt(p+1)===kr&&u.length===0){let h="",w=p,x=-1;for(let A=p+2;A<e.length;A++)if(d=e.charCodeAt(A),d===He)A+=1;else if(d===gr||d===mr)A=wr(e,A,d,i);else if(d===ut&&e.charCodeAt(A+1)===ct){for(let y=A+2;y<e.length;y++)if(d=e.charCodeAt(y),d===He)y+=1;else if(d===ct&&e.charCodeAt(y+1)===ut){A=y+1;break}}else if(x===-1&&d===mn)x=u.length+A-w;else if(d===ft&&h.length===0){u+=e.slice(w,A),p=A;break}else if(d===zt)h+=")";else if(d===gn)h+="]";else if(d===hr)h+="}";else if((d===Ut||e.length-1===A)&&h.length===0){p=A-1,u+=e.slice(w,A);break}else(d===vr||d===hn||d===Ut)&&h.length>0&&e[A]===h[h.length-1]&&(h=h.slice(0,-1));let S=Kt(u,x);if(!S)throw new ue("Invalid custom property, expected a value",i?[i,w,p]:null);i&&(S.src=[i,w,p],S.dst=[i,w,p]),o?o.nodes.push(S):t.push(S),u=""}else if(k===ft&&u.charCodeAt(0)===Lt)f=Je(u),i&&(f.src=[i,m,p],f.dst=[i,m,p]),o?o.nodes.push(f):t.push(f),u="",f=null;else if(k===ft&&c[c.length-1]!==")"){let h=Kt(u);if(!h){if(u.length===0)continue;throw new ue(`Invalid declaration: \`${u.trim()}\``,i?[i,m,p]:null)}i&&(h.src=[i,m,p],h.dst=[i,m,p]),o?o.nodes.push(h):t.push(h),u=""}else if(k===hr&&c[c.length-1]!==")")c+="}",f=Z(u.trim()),i&&(f.src=[i,m,p],f.dst=[i,m,p]),o&&o.nodes.push(f),l.push(o),o=f,u="",f=null;else if(k===Ut&&c[c.length-1]!==")"){if(c==="")throw new ue("Missing opening {",i?[i,p,p]:null);if(c=c.slice(0,-1),u.length>0)if(u.charCodeAt(0)===Lt)f=Je(u),i&&(f.src=[i,m,p],f.dst=[i,m,p]),o?o.nodes.push(f):t.push(f),u="",f=null;else{let w=u.indexOf(":");if(o){let x=Kt(u,w);if(!x)throw new ue(`Invalid declaration: \`${u.trim()}\``,i?[i,m,p]:null);i&&(x.src=[i,m,p],x.dst=[i,m,p]),o.nodes.push(x)}}let h=l.pop()??null;h===null&&o&&t.push(o),o=h,u="",f=null}else if(k===zt)c+=")",u+="(";else if(k===vr){if(c[c.length-1]!==")")throw new ue("Missing opening (",i?[i,p,p]:null);c=c.slice(0,-1),u+=")"}else{if(u.length===0&&(k===Ze||k===se||k===Qe))continue;u===""&&(m=p),u+=String.fromCharCode(k)}}}if(u.charCodeAt(0)===Lt){let p=Je(u);i&&(p.src=[i,m,e.length],p.dst=[i,m,e.length]),t.push(p)}if(c.length>0&&o){if(o.kind==="rule")throw new ue(`Missing closing } at ${o.selector}`,o.src?[o.src[0],o.src[1],o.src[1]]:null);if(o.kind==="at-rule")throw new ue(`Missing closing } at ${o.name} ${o.params}`,o.src?[o.src[0],o.src[1],o.src[1]]:null)}return n.length>0?n.concat(t):t}function Je(e,r=[]){let i=e,t="";for(let n=5;n<e.length;n++){let l=e.charCodeAt(n);if(l===Ze||l===Qe||l===zt){i=e.slice(0,n),t=e.slice(n);break}}return F(i.trim(),t.trim(),r)}function Kt(e,r=e.indexOf(":")){if(r===-1)return null;let i=e.indexOf("!important",r+1);return a(e.slice(0,r).trim(),e.slice(r+1,i===-1?e.length:i).trim(),i!==-1)}function wr(e,r,i,t=null){let n;for(let l=r+1;l<e.length;l++)if(n=e.charCodeAt(l),n===He)l+=1;else{if(n===i)return l;if(n===ft&&(e.charCodeAt(l+1)===se||e.charCodeAt(l+1)===pt&&e.charCodeAt(l+2)===se))throw new ue(`Unterminated string: ${e.slice(r,l+1)+String.fromCharCode(i)}`,t?[t,r,l+1]:null);if(n===se||n===pt&&e.charCodeAt(l+1)===se)throw new ue(`Unterminated string: ${e.slice(r,l)+String.fromCharCode(i)}`,t?[t,r,l+1]:null)}return r}function xe(e){if(arguments.length===0)throw new TypeError("`CSS.escape` requires an argument.");let r=String(e),i=r.length,t=-1,n,l="",o=r.charCodeAt(0);if(i===1&&o===45)return"\\"+r;for(;++t<i;){if(n=r.charCodeAt(t),n===0){l+="\uFFFD";continue}if(n>=1&&n<=31||n===127||t===0&&n>=48&&n<=57||t===1&&n>=48&&n<=57&&o===45){l+="\\"+n.toString(16)+" ";continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){l+=r.charAt(t);continue}l+="\\"+r.charAt(t)}return l}function Ve(e){return e.replace(/\\([\dA-Fa-f]{1,6}[\t\n\f\r ]?|[\S\s])/g,r=>r.length>2?String.fromCodePoint(Number.parseInt(r.slice(1).trim(),16)):r[1])}var br=new Map([["--font",["--font-weight","--font-size"]],["--inset",["--inset-shadow","--inset-ring"]],["--text",["--text-color","--text-decoration-color","--text-decoration-thickness","--text-indent","--text-shadow","--text-underline-offset"]],["--grid-column",["--grid-column-start","--grid-column-end"]],["--grid-row",["--grid-row-start","--grid-row-end"]]]);function yr(e,r){return(br.get(r)??[]).some(i=>e===i||e.startsWith(`${i}-`))}var mt=class{constructor(r=new Map,i=new Set([])){this.values=r;this.keyframes=i}prefix=null;get size(){return this.values.size}add(r,i,t=0,n){if(r.endsWith("-*")){if(i!=="initial")throw new Error(`Invalid theme value \`${i}\` for namespace \`${r}\``);r==="--*"?this.values.clear():this.clearNamespace(r.slice(0,-2),0)}if(t&4){let l=this.values.get(r);if(l&&!(l.options&4))return}i==="initial"?this.values.delete(r):this.values.set(r,{value:i,options:t,src:n})}keysInNamespaces(r){let i=[];for(let t of r){let n=`${t}-`;for(let l of this.values.keys())l.startsWith(n)&&l.indexOf("--",2)===-1&&(yr(l,t)||i.push(l.slice(n.length)))}return i}get(r){for(let i of r){let t=this.values.get(i);if(t)return t.value}return null}hasDefault(r){return(this.getOptions(r)&4)===4}getOptions(r){return r=Ve(this.#r(r)),this.values.get(r)?.options??0}entries(){return this.prefix?Array.from(this.values,r=>(r[0]=this.prefixKey(r[0]),r)):this.values.entries()}prefixKey(r){return this.prefix?`--${this.prefix}-${r.slice(2)}`:r}#r(r){return this.prefix?`--${r.slice(3+this.prefix.length)}`:r}clearNamespace(r,i){let t=br.get(r)??[];e:for(let n of this.values.keys())if(n.startsWith(r)){if(i!==0&&(this.getOptions(n)&i)!==i)continue;for(let l of t)if(n.startsWith(l))continue e;this.values.delete(n)}}#e(r,i){for(let t of i){let n=r!==null?`${t}-${r}`:t;if(!this.values.has(n))if(r!==null&&r.includes(".")){if(n=`${t}-${r.replaceAll(".","_")}`,!this.values.has(n))continue}else continue;if(!yr(n,t))return n}return null}#t(r){let i=this.values.get(r);if(!i)return null;let t=null;return i.options&2&&(t=i.value),`var(${xe(this.prefixKey(r))}${t?`, ${t}`:""})`}markUsedVariable(r){let i=Ve(this.#r(r)),t=this.values.get(i);if(!t)return!1;let n=t.options&16;return t.options|=16,!n}resolve(r,i,t=0){let n=this.#e(r,i);if(!n)return null;let l=this.values.get(n);return(t|l.options)&1?l.value:this.#t(n)}resolveValue(r,i){let t=this.#e(r,i);return t?this.values.get(t).value:null}resolveWith(r,i,t=[]){let n=this.#e(r,i);if(!n)return null;let l={};for(let f of t){let u=`${n}${f}`,c=this.values.get(u);c&&(c.options&1?l[f]=c.value:l[f]=this.#t(u))}let o=this.values.get(n);return o.options&1?[o.value,l]:[this.#t(n),l]}namespace(r){let i=new Map,t=`${r}-`;for(let[n,l]of this.values)n===r?i.set(null,l.value):n.startsWith(`${t}-`)?i.set(n.slice(r.length),l.value):n.startsWith(t)&&i.set(n.slice(t.length),l.value);return i}addKeyframes(r){this.keyframes.add(r)}getKeyframes(){return Array.from(this.keyframes)}};var U=class extends Map{constructor(i){super();this.factory=i}get(i){let t=super.get(i);return t===void 0&&(t=this.factory(i,this),this.set(i,t)),t}};function oe(e){return{kind:"word",value:e}}function kn(e,r){return{kind:"function",value:e,nodes:r}}function wn(e){return{kind:"separator",value:e}}function H(e){let r="";for(let i of e)switch(i.kind){case"word":case"separator":{r+=i.value;break}case"function":r+=i.value+"("+H(i.nodes)+")"}return r}var xr=92,yn=41,Ar=58,Cr=44,bn=34,Sr=61,$r=62,Tr=60,Er=10,xn=40,An=39,Cn=47,Nr=32,Vr=9;function B(e){e=e.replaceAll(`\r
-`,`
-`);let r=[],i=[],t=null,n="",l;for(let o=0;o<e.length;o++){let f=e.charCodeAt(o);switch(f){case xr:{n+=e[o]+e[o+1],o++;break}case Cn:{if(n.length>0){let c=oe(n);t?t.nodes.push(c):r.push(c),n=""}let u=oe(e[o]);t?t.nodes.push(u):r.push(u);break}case Ar:case Cr:case Sr:case $r:case Tr:case Er:case Nr:case Vr:{if(n.length>0){let d=oe(n);t?t.nodes.push(d):r.push(d),n=""}let u=o,c=o+1;for(;c<e.length&&(l=e.charCodeAt(c),!(l!==Ar&&l!==Cr&&l!==Sr&&l!==$r&&l!==Tr&&l!==Er&&l!==Nr&&l!==Vr));c++);o=c-1;let m=wn(e.slice(u,c));t?t.nodes.push(m):r.push(m);break}case An:case bn:{let u=o;for(let c=o+1;c<e.length;c++)if(l=e.charCodeAt(c),l===xr)c+=1;else if(l===f){o=c;break}n+=e.slice(u,o+1);break}case xn:{let u=kn(n,[]);n="",t?t.nodes.push(u):r.push(u),i.push(u),t=u;break}case yn:{let u=i.pop();if(n.length>0){let c=oe(n);u?.nodes.push(c),n=""}i.length>0?t=i[i.length-1]:t=null;break}default:n+=String.fromCharCode(f)}}return n.length>0&&r.push(oe(n)),r}var jt=(o=>(o[o.Continue=0]="Continue",o[o.Skip=1]="Skip",o[o.Stop=2]="Stop",o[o.Replace=3]="Replace",o[o.ReplaceSkip=4]="ReplaceSkip",o[o.ReplaceStop=5]="ReplaceStop",o))(jt||{}),V={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:e=>({kind:3,nodes:Array.isArray(e)?e:[e]}),ReplaceSkip:e=>({kind:4,nodes:Array.isArray(e)?e:[e]}),ReplaceStop:e=>({kind:5,nodes:Array.isArray(e)?e:[e]})};function _(e,r){typeof r=="function"?Rr(e,r):Rr(e,r.enter,r.exit)}function Rr(e,r=()=>V.Continue,i=()=>V.Continue){let t=[[e,0,null]],n={parent:null,depth:0,path(){let l=[];for(let o=1;o<t.length;o++){let f=t[o][2];f&&l.push(f)}return l}};for(;t.length>0;){let l=t.length-1,o=t[l],f=o[0],u=o[1],c=o[2];if(u>=f.length){t.pop();continue}if(n.parent=c,n.depth=l,u>=0){let k=f[u],h=r(k,n)??V.Continue;switch(h.kind){case 0:{k.nodes&&k.nodes.length>0&&t.push([k.nodes,0,k]),o[1]=~u;continue}case 2:return;case 1:{o[1]=~u;continue}case 3:{f.splice(u,1,...h.nodes);continue}case 5:{f.splice(u,1,...h.nodes);return}case 4:{f.splice(u,1,...h.nodes),o[1]+=h.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${jt[h.kind]??`Unknown(${h.kind})`}\` in enter.`)}}let m=~u,d=f[m],p=i(d,n)??V.Continue;switch(p.kind){case 0:o[1]=m+1;continue;case 2:return;case 3:{f.splice(m,1,...p.nodes),o[1]=m+p.nodes.length;continue}case 5:{f.splice(m,1,...p.nodes);return}case 4:{f.splice(m,1,...p.nodes),o[1]=m+p.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${jt[p.kind]??`Unknown(${p.kind})`}\` in exit.`)}}}function gt(e){let r=[];return _(B(e),i=>{if(!(i.kind!=="function"||i.value!=="var"))return _(i.nodes,t=>{t.kind!=="word"||t.value[0]!=="-"||t.value[1]!=="-"||r.push(t.value)}),V.Skip}),r}var Sn=64;function q(e,r=[]){return{kind:"rule",selector:e,nodes:r}}function F(e,r="",i=[]){return{kind:"at-rule",name:e,params:r,nodes:i}}function Z(e,r=[]){return e.charCodeAt(0)===Sn?Je(e,r):q(e,r)}function a(e,r,i=!1){return{kind:"declaration",property:e,value:r,important:i}}function dt(e){return{kind:"comment",value:e}}function de(e,r){return{kind:"context",context:e,nodes:r}}function W(e){return{kind:"at-root",nodes:e}}function ee(e){switch(e.kind){case"rule":return{kind:e.kind,selector:e.selector,nodes:e.nodes.map(ee),src:e.src,dst:e.dst};case"at-rule":return{kind:e.kind,name:e.name,params:e.params,nodes:e.nodes.map(ee),src:e.src,dst:e.dst};case"at-root":return{kind:e.kind,nodes:e.nodes.map(ee),src:e.src,dst:e.dst};case"context":return{kind:e.kind,context:{...e.context},nodes:e.nodes.map(ee),src:e.src,dst:e.dst};case"declaration":return{kind:e.kind,property:e.property,value:e.value,important:e.important,src:e.src,dst:e.dst};case"comment":return{kind:e.kind,value:e.value,src:e.src,dst:e.dst};default:throw new Error(`Unknown node kind: ${e.kind}`)}}function et(e){return{depth:e.depth,get context(){let r={};for(let i of e.path())i.kind==="context"&&Object.assign(r,i.context);return Object.defineProperty(this,"context",{value:r}),r},get parent(){let r=this.path().pop()??null;return Object.defineProperty(this,"parent",{value:r}),r},path(){return e.path().filter(r=>r.kind!=="context")}}}function Re(e,r,i=3){let t=[],n=new Set,l=new U(()=>new Set),o=new U(()=>new Set),f=new Set,u=new Set,c=[],m=[],d=new U(()=>new Set);function p(h,w,x={},S=0){if(h.kind==="declaration"){if(h.property==="--tw-sort"||h.value===void 0||h.value===null)return;if(x.theme&&h.property[0]==="-"&&h.property[1]==="-"){if(h.value==="initial"){h.value=void 0;return}x.keyframes||l.get(w).add(h)}if(h.value.includes("var("))if(x.theme&&h.property[0]==="-"&&h.property[1]==="-")for(let A of gt(h.value))d.get(A).add(h.property);else r.trackUsedVariables(h.value);if(h.property==="animation")for(let A of Or(h.value))u.add(A);i&2&&h.value.includes("color-mix(")&&!x.keyframes&&o.get(w).add(h),w.push(h)}else if(h.kind==="rule"){let A=[];for(let N of h.nodes)p(N,A,x,S+1);let y={},K=new Set;for(let N of A){if(N.kind!=="declaration")continue;let P=`${N.property}:${N.value}:${N.important}`;y[P]??=[],y[P].push(N)}for(let N in y)for(let P=0;P<y[N].length-1;++P)K.add(y[N][P]);if(K.size>0&&(A=A.filter(N=>!K.has(N))),A.length===0)return;h.selector==="&"?w.push(...A):w.push({...h,nodes:A})}else if(h.kind==="at-rule"&&h.name==="@property"&&S===0){if(n.has(h.params))return;if(i&1){let y=h.params,K=null,N=!1;for(let z of h.nodes)z.kind==="declaration"&&(z.property==="initial-value"?K=z.value:z.property==="inherits"&&(N=z.value==="true"));let P=a(y,K??"initial");P.src=h.src,N?c.push(P):m.push(P)}n.add(h.params);let A={...h,nodes:[]};for(let y of h.nodes)p(y,A.nodes,x,S+1);w.push(A)}else if(h.kind==="at-rule"){h.name==="@keyframes"&&(x={...x,keyframes:!0});let A={...h,nodes:[]};for(let y of h.nodes)p(y,A.nodes,x,S+1);h.name==="@keyframes"&&x.theme&&f.add(A),(A.nodes.length>0||A.name==="@layer"||A.name==="@charset"||A.name==="@custom-media"||A.name==="@namespace"||A.name==="@import")&&w.push(A)}else if(h.kind==="at-root")for(let A of h.nodes){let y=[];p(A,y,x,0);for(let K of y)t.push(K)}else if(h.kind==="context"){if(h.context.reference)return;for(let A of h.nodes)p(A,w,{...x,...h.context},S)}else h.kind==="comment"&&w.push(h)}let k=[];for(let h of e)p(h,k,{},0);e:for(let[h,w]of l)for(let x of w){if(Pr(x.property,r.theme,d)){if(x.property.startsWith(r.theme.prefixKey("--animate-")))for(let y of Or(x.value))u.add(y);continue}let A=h.indexOf(x);if(h.splice(A,1),h.length===0){let y=$n(k,K=>K.kind==="rule"&&K.nodes===h);if(!y||y.length===0)continue e;y.unshift({kind:"at-root",nodes:k});do{let K=y.pop();if(!K)break;let N=y[y.length-1];if(!N||N.kind!=="at-root"&&N.kind!=="at-rule")break;let P=N.nodes.indexOf(K);if(P===-1)break;N.nodes.splice(P,1)}while(!0);continue e}}for(let h of f)if(!u.has(h.params)){let w=t.indexOf(h);t.splice(w,1)}if(k=k.concat(t),i&2)for(let[h,w]of o)for(let x of w){let S=h.indexOf(x);if(S===-1||x.value==null)continue;let A=B(x.value),y=!1;if(_(A,P=>{if(P.kind!=="function"||P.value!=="color-mix")return;let z=!1,I=!1;if(_(P.nodes,M=>{if(M.kind=="word"&&M.value.toLowerCase()==="currentcolor"){I=!0,y=!0;return}let Y=M,G=null,ae=new Set;do{if(Y.kind!=="function"||Y.value!=="var")return;let le=Y.nodes[0];if(!le||le.kind!=="word")return;let s=le.value;if(ae.has(s)){z=!0;return}if(ae.add(s),y=!0,G=r.theme.resolveValue(null,[le.value]),!G){z=!0;return}if(G.toLowerCase()==="currentcolor"){I=!0;return}G.startsWith("var(")?Y=B(G)[0]:Y=null}while(Y);return V.Replace({kind:"word",value:G})}),z||I){let M=P.nodes.findIndex(G=>G.kind==="separator"&&G.value.trim().includes(","));if(M===-1)return;let Y=P.nodes.length>M?P.nodes[M+1]:null;return Y?V.Replace(Y):void 0}else if(y){let M=P.nodes[2];M.kind==="word"&&(M.value==="oklab"||M.value==="oklch"||M.value==="lab"||M.value==="lch")&&(M.value="srgb")}}),!y)continue;let K={...x,value:H(A)},N=Z("@supports (color: color-mix(in lab, red, red))",[x]);N.src=x.src,h.splice(S,1,K,N)}if(i&1){let h=[];if(c.length>0){let w=Z(":root, :host",c);w.src=c[0].src,h.push(w)}if(m.length>0){let w=Z("*, ::before, ::after, ::backdrop",m);w.src=m[0].src,h.push(w)}if(h.length>0){let w=k.findIndex(A=>!(A.kind==="comment"||A.kind==="at-rule"&&(A.name==="@charset"||A.name==="@import"))),x=F("@layer","properties",[]);x.src=h[0].src,k.splice(w<0?k.length:w,0,x);let S=Z("@layer properties",[F("@supports","((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b))))",h)]);S.src=h[0].src,S.nodes[0].src=h[0].src,k.push(S)}}return k}function ie(e,r){let i=0,t={file:null,code:""};function n(o,f=0){let u="",c="  ".repeat(f);if(o.kind==="declaration"){if(u+=`${c}${o.property}: ${o.value}${o.important?" !important":""};
-`,r){i+=c.length;let m=i;i+=o.property.length,i+=2,i+=o.value?.length??0,o.important&&(i+=11);let d=i;i+=2,o.dst=[t,m,d]}}else if(o.kind==="rule"){if(u+=`${c}${o.selector} {
-`,r){i+=c.length;let m=i;i+=o.selector.length,i+=1;let d=i;o.dst=[t,m,d],i+=2}for(let m of o.nodes)u+=n(m,f+1);u+=`${c}}
-`,r&&(i+=c.length,i+=2)}else if(o.kind==="at-rule"){if(o.nodes.length===0){let m=`${c}${o.name} ${o.params};
-`;if(r){i+=c.length;let d=i;i+=o.name.length,i+=1,i+=o.params.length;let p=i;i+=2,o.dst=[t,d,p]}return m}if(u+=`${c}${o.name}${o.params?` ${o.params} `:" "}{
-`,r){i+=c.length;let m=i;i+=o.name.length,o.params&&(i+=1,i+=o.params.length),i+=1;let d=i;o.dst=[t,m,d],i+=2}for(let m of o.nodes)u+=n(m,f+1);u+=`${c}}
-`,r&&(i+=c.length,i+=2)}else if(o.kind==="comment"){if(u+=`${c}/*${o.value}*/
-`,r){i+=c.length;let m=i;i+=2+o.value.length+2;let d=i;o.dst=[t,m,d],i+=1}}else if(o.kind==="context"||o.kind==="at-root")return"";return u}let l="";for(let o of e)l+=n(o,0);return t.code=l,l}function $n(e,r){let i=[];return _(e,(t,n)=>{if(r(t))return i=n.path(),i.push(t),V.Stop}),i}function Pr(e,r,i,t=new Set){if(t.has(e)||(t.add(e),r.getOptions(e)&24))return!0;{let l=i.get(e)??[];for(let o of l)if(Pr(o,r,i,t))return!0}return!1}function Or(e){return e.split(/[\s,]+/)}var Ft=["calc","min","max","clamp","mod","rem","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","round"];function tt(e){return e.indexOf("(")!==-1&&Ft.some(r=>e.includes(`${r}(`))}function _r(e){if(!Ft.some(l=>e.includes(l)))return e;let r="",i=[],t=null,n=null;for(let l=0;l<e.length;l++){let o=e.charCodeAt(l);if(o>=48&&o<=57||t!==null&&(o===37||o>=97&&o<=122||o>=65&&o<=90)?t=l:(n=t,t=null),o===40){r+=e[l];let f=l;for(let c=l-1;c>=0;c--){let m=e.charCodeAt(c);if(m>=48&&m<=57)f=c;else if(m>=97&&m<=122)f=c;else break}let u=e.slice(f,l);if(Ft.includes(u)){i.unshift(!0);continue}else if(i[0]&&u===""){i.unshift(!0);continue}i.unshift(!1);continue}else if(o===41)r+=e[l],i.shift();else if(o===44&&i[0]){r+=", ";continue}else{if(o===32&&i[0]&&r.charCodeAt(r.length-1)===32)continue;if((o===43||o===42||o===47||o===45)&&i[0]){let f=r.trimEnd(),u=f.charCodeAt(f.length-1),c=f.charCodeAt(f.length-2),m=e.charCodeAt(l+1);if((u===101||u===69)&&c>=48&&c<=57){r+=e[l];continue}else if(u===43||u===42||u===47||u===45){r+=e[l];continue}else if(u===40||u===44){r+=e[l];continue}else e.charCodeAt(l-1)===32?r+=`${e[l]} `:u>=48&&u<=57||m>=48&&m<=57||u===41||m===40||m===43||m===42||m===47||m===45||n!==null&&n===l-1?r+=` ${e[l]} `:r+=e[l]}else r+=e[l]}}return r}function Ae(e){if(e.indexOf("(")===-1)return ze(e);let r=B(e);return Wt(r),e=H(r),e=_r(e),e}function ze(e,r=!1){let i="";for(let t=0;t<e.length;t++){let n=e[t];n==="\\"&&e[t+1]==="_"?(i+="_",t+=1):n==="_"&&!r?i+=" ":i+=n}return i}function Wt(e){for(let r of e)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=ze(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=ze(r.value);for(let i=0;i<r.nodes.length;i++){if(i==0&&r.nodes[i].kind==="word"){r.nodes[i].value=ze(r.nodes[i].value,!0);continue}Wt([r.nodes[i]])}break}r.value=ze(r.value),Wt(r.nodes);break}case"separator":case"word":{r.value=ze(r.value);break}default:Tn(r)}}function Tn(e){throw new Error(`Unexpected value: ${e}`)}var Bt=new Uint8Array(256);function ke(e){let r=0,i=e.length;for(let t=0;t<i;t++){let n=e.charCodeAt(t);switch(n){case 92:t+=1;break;case 39:case 34:for(;++t<i;){let l=e.charCodeAt(t);if(l===92){t+=1;continue}if(l===n)break}break;case 40:Bt[r]=41,r++;break;case 91:Bt[r]=93,r++;break;case 123:break;case 93:case 125:case 41:if(r===0)return!1;r>0&&n===Bt[r-1]&&r--;break;case 59:if(r===0)return!1;break}}return!0}var vt=new Uint8Array(256);function L(e,r){let i=0,t=[],n=0,l=e.length,o=r.charCodeAt(0);for(let f=0;f<l;f++){let u=e.charCodeAt(f);if(i===0&&u===o){t.push(e.slice(n,f)),n=f+1;continue}switch(u){case 92:f+=1;break;case 39:case 34:for(;++f<l;){let c=e.charCodeAt(f);if(c===92){f+=1;continue}if(c===u)break}break;case 40:vt[i]=41,i++;break;case 91:vt[i]=93,i++;break;case 123:vt[i]=125,i++;break;case 93:case 125:case 41:i>0&&u===vt[i-1]&&i--;break}}return t.push(e.slice(n)),t}var En=58,Ir=45,Dr=97,Ur=122,Gt=/^[a-zA-Z0-9_.%-]+$/;function Lr(e){switch(e.kind){case"arbitrary":return{kind:e.kind,property:e.property,value:e.value,modifier:e.modifier?{kind:e.modifier.kind,value:e.modifier.value}:null,variants:e.variants.map(Me),important:e.important,raw:e.raw};case"static":return{kind:e.kind,root:e.root,variants:e.variants.map(Me),important:e.important,raw:e.raw};case"functional":return{kind:e.kind,root:e.root,value:e.value?e.value.kind==="arbitrary"?{kind:e.value.kind,dataType:e.value.dataType,value:e.value.value}:{kind:e.value.kind,value:e.value.value,fraction:e.value.fraction}:null,modifier:e.modifier?{kind:e.modifier.kind,value:e.modifier.value}:null,variants:e.variants.map(Me),important:e.important,raw:e.raw};default:throw new Error("Unknown candidate kind")}}function Me(e){switch(e.kind){case"arbitrary":return{kind:e.kind,selector:e.selector,relative:e.relative};case"static":return{kind:e.kind,root:e.root};case"functional":return{kind:e.kind,root:e.root,value:e.value?{kind:e.value.kind,value:e.value.value}:null,modifier:e.modifier?{kind:e.modifier.kind,value:e.modifier.value}:null};case"compound":return{kind:e.kind,root:e.root,variant:Me(e.variant),modifier:e.modifier?{kind:e.modifier.kind,value:e.modifier.value}:null};default:throw new Error("Unknown variant kind")}}function*Kr(e,r){let i=L(e,":");if(r.theme.prefix){if(i.length===1||i[0]!==r.theme.prefix)return null;i.shift()}let t=i.pop(),n=[];for(let d=i.length-1;d>=0;--d){let p=r.parseVariant(i[d]);if(p===null)return;n.push(p)}let l=!1;t[t.length-1]==="!"?(l=!0,t=t.slice(0,-1)):t[0]==="!"&&(l=!0,t=t.slice(1)),r.utilities.has(t,"static")&&!t.includes("[")&&(yield{kind:"static",root:t,variants:n,important:l,raw:e});let[o,f=null,u]=L(t,"/");if(u)return;let c=f===null?null:Yt(f);if(f!==null&&c===null)return;if(o[0]==="["){if(o[o.length-1]!=="]")return;let d=o.charCodeAt(1);if(d!==Ir&&!(d>=Dr&&d<=Ur))return;o=o.slice(1,-1);let p=o.indexOf(":");if(p===-1||p===0||p===o.length-1)return;let k=o.slice(0,p),h=Ae(o.slice(p+1));if(!ke(h))return;yield{kind:"arbitrary",property:k,value:h,modifier:c,variants:n,important:l,raw:e};return}let m;if(o[o.length-1]==="]"){let d=o.indexOf("-[");if(d===-1)return;let p=o.slice(0,d);if(!r.utilities.has(p,"functional"))return;let k=o.slice(d+1);m=[[p,k]]}else if(o[o.length-1]===")"){let d=o.indexOf("-(");if(d===-1)return;let p=o.slice(0,d);if(!r.utilities.has(p,"functional"))return;let k=o.slice(d+2,-1),h=L(k,":"),w=null;if(h.length===2&&(w=h[0],k=h[1]),k[0]!=="-"||k[1]!=="-"||!ke(k))return;m=[[p,w===null?`[var(${k})]`:`[${w}:var(${k})]`]]}else m=Mr(o,d=>r.utilities.has(d,"functional"));for(let[d,p]of m){let k={kind:"functional",root:d,modifier:c,value:null,variants:n,important:l,raw:e};if(p===null){yield k;continue}{let h=p.indexOf("[");if(h!==-1){if(p[p.length-1]!=="]")return;let x=Ae(p.slice(h+1,-1));if(!ke(x))continue;let S=null;for(let A=0;A<x.length;A++){let y=x.charCodeAt(A);if(y===En){S=x.slice(0,A),x=x.slice(A+1);break}if(!(y===Ir||y>=Dr&&y<=Ur))break}if(x.length===0||x.trim().length===0||S==="")continue;k.value={kind:"arbitrary",dataType:S||null,value:x}}else{let x=f===null||k.modifier?.kind==="arbitrary"?null:`${p}/${f}`;if(!Gt.test(p))continue;k.value={kind:"named",value:p,fraction:x}}}yield k}}function Yt(e){if(e[0]==="["&&e[e.length-1]==="]"){let r=Ae(e.slice(1,-1));return!ke(r)||r.length===0||r.trim().length===0?null:{kind:"arbitrary",value:r}}return e[0]==="("&&e[e.length-1]===")"?(e=e.slice(1,-1),e[0]!=="-"||e[1]!=="-"||!ke(e)?null:(e=`var(${e})`,{kind:"arbitrary",value:Ae(e)})):Gt.test(e)?{kind:"named",value:e}:null}function zr(e,r){if(e[0]==="["&&e[e.length-1]==="]"){if(e[1]==="@"&&e.includes("&"))return null;let i=Ae(e.slice(1,-1));if(!ke(i)||i.length===0||i.trim().length===0)return null;let t=i[0]===">"||i[0]==="+"||i[0]==="~";return!t&&i[0]!=="@"&&!i.includes("&")&&(i=`&:is(${i})`),{kind:"arbitrary",selector:i,relative:t}}{let[i,t=null,n]=L(e,"/");if(n)return null;let l=Mr(i,o=>r.variants.has(o));for(let[o,f]of l)switch(r.variants.kind(o)){case"static":return f!==null||t!==null?null:{kind:"static",root:o};case"functional":{let u=t===null?null:Yt(t);if(t!==null&&u===null)return null;if(f===null)return{kind:"functional",root:o,modifier:u,value:null};if(f[f.length-1]==="]"){if(f[0]!=="[")continue;let c=Ae(f.slice(1,-1));return!ke(c)||c.length===0||c.trim().length===0?null:{kind:"functional",root:o,modifier:u,value:{kind:"arbitrary",value:c}}}if(f[f.length-1]===")"){if(f[0]!=="(")continue;let c=Ae(f.slice(1,-1));return!ke(c)||c.length===0||c.trim().length===0||c[0]!=="-"||c[1]!=="-"?null:{kind:"functional",root:o,modifier:u,value:{kind:"arbitrary",value:`var(${c})`}}}if(!Gt.test(f))continue;return{kind:"functional",root:o,modifier:u,value:{kind:"named",value:f}}}case"compound":{if(f===null)return null;t&&(o==="not"||o==="has"||o==="in")&&(f=`${f}/${t}`,t=null);let u=r.parseVariant(f);if(u===null||!r.variants.compoundsWith(o,u))return null;let c=t===null?null:Yt(t);return t!==null&&c===null?null:{kind:"compound",root:o,modifier:c,variant:u}}}}return null}function*Mr(e,r){r(e)&&(yield[e,null]);let i=e.lastIndexOf("-");for(;i>0;){let t=e.slice(0,i);if(r(t)){let n=[t,e.slice(i+1)];if(n[1]===""||n[0]==="@"&&r("@")&&e[i]==="-")break;yield n}i=e.lastIndexOf("-",i-1)}e[0]==="@"&&r("@")&&(yield["@",e.slice(1)])}function jr(e,r){let i=[];for(let n of r.variants)i.unshift(kt(n));e.theme.prefix&&i.unshift(e.theme.prefix);let t="";if(r.kind==="static"&&(t+=r.root),r.kind==="functional"&&(t+=r.root,r.value))if(r.value.kind==="arbitrary"){if(r.value!==null){let n=Ht(r.value.value),l=n?r.value.value.slice(4,-1):r.value.value,[o,f]=n?["(",")"]:["[","]"];r.value.dataType?t+=`-${o}${r.value.dataType}:${Ce(l)}${f}`:t+=`-${o}${Ce(l)}${f}`}}else r.value.kind==="named"&&(t+=`-${r.value.value}`);return r.kind==="arbitrary"&&(t+=`[${r.property}:${Ce(r.value)}]`),(r.kind==="arbitrary"||r.kind==="functional")&&(t+=it(r.modifier)),r.important&&(t+="!"),i.push(t),i.join(":")}function it(e){if(e===null)return"";let r=Ht(e.value),i=r?e.value.slice(4,-1):e.value,[t,n]=r?["(",")"]:["[","]"];return e.kind==="arbitrary"?`/${t}${Ce(i)}${n}`:e.kind==="named"?`/${e.value}`:""}function kt(e){if(e.kind==="static")return e.root;if(e.kind==="arbitrary")return`[${Ce(Rn(e.selector))}]`;let r="";if(e.kind==="functional"){r+=e.root;let i=e.root!=="@";if(e.value)if(e.value.kind==="arbitrary"){let t=Ht(e.value.value),n=t?e.value.value.slice(4,-1):e.value.value,[l,o]=t?["(",")"]:["[","]"];r+=`${i?"-":""}${l}${Ce(n)}${o}`}else e.value.kind==="named"&&(r+=`${i?"-":""}${e.value.value}`)}return e.kind==="compound"&&(r+=e.root,r+="-",r+=kt(e.variant)),(e.kind==="functional"||e.kind==="compound")&&(r+=it(e.modifier)),r}var Nn=new U(e=>{let r=B(e),i=new Set;return _(r,(t,n)=>{let l=n.parent===null?r:n.parent.nodes??[];if(t.kind==="word"&&(t.value==="+"||t.value==="-"||t.value==="*"||t.value==="/")){let o=l.indexOf(t)??-1;if(o===-1)return;let f=l[o-1];if(f?.kind!=="separator"||f.value!==" ")return;let u=l[o+1];if(u?.kind!=="separator"||u.value!==" ")return;i.add(f),i.add(u)}else t.kind==="separator"&&t.value.length>0&&t.value.trim()===""?(l[0]===t||l[l.length-1]===t)&&i.add(t):t.kind==="separator"&&t.value.trim()===","&&(t.value=",")}),i.size>0&&_(r,t=>{if(i.has(t))return i.delete(t),V.ReplaceSkip([])}),qt(r),H(r)});function Ce(e){return Nn.get(e)}var Vn=new U(e=>{let r=B(e);return r.length===3&&r[0].kind==="word"&&r[0].value==="&"&&r[1].kind==="separator"&&r[1].value===":"&&r[2].kind==="function"&&r[2].value==="is"?H(r[2].nodes):e});function Rn(e){return Vn.get(e)}function qt(e){for(let r of e)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=rt(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=rt(r.value);for(let i=0;i<r.nodes.length;i++)qt([r.nodes[i]]);break}r.value=rt(r.value),qt(r.nodes);break}case"separator":r.value=rt(r.value);break;case"word":{(r.value[0]!=="-"||r.value[1]!=="-")&&(r.value=rt(r.value));break}default:Pn(r)}}var On=new U(e=>{let r=B(e);return r.length===1&&r[0].kind==="function"&&r[0].value==="var"});function Ht(e){return On.get(e)}function Pn(e){throw new Error(`Unexpected value: ${e}`)}function rt(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}function Oe(e,r,i){if(e===r)return 0;let t=e.indexOf("("),n=r.indexOf("("),l=t===-1?e.replace(/[\d.]+/g,""):e.slice(0,t),o=n===-1?r.replace(/[\d.]+/g,""):r.slice(0,n),f=(l===o?0:l<o?-1:1)||(i==="asc"?parseInt(e)-parseInt(r):parseInt(r)-parseInt(e));return Number.isNaN(f)?e<r?-1:1:f}var _n=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent","currentcolor","canvas","canvastext","linktext","visitedtext","activetext","buttonface","buttontext","buttonborder","field","fieldtext","highlight","highlighttext","selecteditem","selecteditemtext","mark","marktext","graytext","accentcolor","accentcolortext"]),In=/^(rgba?|hsla?|hwb|color|(ok)?(lab|lch)|light-dark|color-mix)\(/i;function Fr(e){return e.charCodeAt(0)===35||In.test(e)||_n.has(e.toLowerCase())}var Dn={color:Fr,length:je,percentage:Zt,ratio:Hn,number:Br,integer:O,url:Wr,position:Jn,"bg-size":Xn,"line-width":Ln,image:Mn,"family-name":Fn,"generic-name":jn,"absolute-size":Wn,"relative-size":Bn,angle:ro,vector:no};function Q(e,r){if(e.startsWith("var("))return null;for(let i of r)if(Dn[i]?.(e))return i;return null}var Un=/^url\(.*\)$/;function Wr(e){return Un.test(e)}function Ln(e){return L(e," ").every(r=>je(r)||Br(r)||r==="thin"||r==="medium"||r==="thick")}var Kn=/^(?:element|image|cross-fade|image-set)\(/,zn=/^(repeating-)?(conic|linear|radial)-gradient\(/;function Mn(e){let r=0;for(let i of L(e,","))if(!i.startsWith("var(")){if(Wr(i)){r+=1;continue}if(zn.test(i)){r+=1;continue}if(Kn.test(i)){r+=1;continue}return!1}return r>0}function jn(e){return e==="serif"||e==="sans-serif"||e==="monospace"||e==="cursive"||e==="fantasy"||e==="system-ui"||e==="ui-serif"||e==="ui-sans-serif"||e==="ui-monospace"||e==="ui-rounded"||e==="math"||e==="emoji"||e==="fangsong"}function Fn(e){let r=0;for(let i of L(e,",")){let t=i.charCodeAt(0);if(t>=48&&t<=57)return!1;i.startsWith("var(")||(r+=1)}return r>0}function Wn(e){return e==="xx-small"||e==="x-small"||e==="small"||e==="medium"||e==="large"||e==="x-large"||e==="xx-large"||e==="xxx-large"}function Bn(e){return e==="larger"||e==="smaller"}var we=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,Yn=new RegExp(`^${we.source}$`);function Br(e){return Yn.test(e)||tt(e)}var qn=new RegExp(`^${we.source}%$`);function Zt(e){return qn.test(e)||tt(e)}var Gn=new RegExp(`^${we.source}s*/s*${we.source}$`);function Hn(e){return Gn.test(e)||tt(e)}var Zn=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Qn=new RegExp(`^${we.source}(${Zn.join("|")})$`);function je(e){return Qn.test(e)||tt(e)}function Jn(e){let r=0;for(let i of L(e," ")){if(i==="center"||i==="top"||i==="right"||i==="bottom"||i==="left"){r+=1;continue}if(!i.startsWith("var(")){if(je(i)||Zt(i)){r+=1;continue}return!1}}return r>0}function Xn(e){let r=0;for(let i of L(e,",")){if(i==="cover"||i==="contain"){r+=1;continue}let t=L(i," ");if(t.length!==1&&t.length!==2)return!1;if(t.every(n=>n==="auto"||je(n)||Zt(n))){r+=1;continue}}return r>0}var eo=["deg","rad","grad","turn"],to=new RegExp(`^${we.source}(${eo.join("|")})$`);function ro(e){return to.test(e)}var io=new RegExp(`^${we.source} +${we.source} +${we.source}$`);function no(e){return io.test(e)}function O(e){let r=Number(e);return Number.isInteger(r)&&r>=0&&String(r)===String(e)}function Qt(e){let r=Number(e);return Number.isInteger(r)&&r>0&&String(r)===String(e)}function ne(e){return Yr(e,.25)}function wt(e){return Yr(e,.25)}function Yr(e,r){let i=Number(e);return i>=0&&i%r===0&&String(i)===String(e)}var oo=new Set(["inset","inherit","initial","revert","unset"]),qr=/^-?(\d+|\.\d+)(.*?)$/g;function nt(e,r){return L(e,",").map(t=>{t=t.trim();let n=L(t," ").filter(c=>c.trim()!==""),l=null,o=null,f=null;for(let c of n)oo.has(c)||(qr.test(c)?(o===null?o=c:f===null&&(f=c),qr.lastIndex=0):l===null&&(l=c));if(o===null||f===null)return t;let u=r(l??"currentcolor");return l!==null?t.replace(l,u):`${t} ${u}`}).join(", ")}var lo=/^-?[a-z][a-zA-Z0-9/%._-]*$/,so=/^-?[a-z][a-zA-Z0-9/%._-]*-\*$/,bt=["0","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96"],Jt=class{utilities=new U(()=>[]);completions=new Map;static(r,i){this.utilities.get(r).push({kind:"static",compileFn:i})}functional(r,i,t){this.utilities.get(r).push({kind:"functional",compileFn:i,options:t})}has(r,i){return this.utilities.has(r)&&this.utilities.get(r).some(t=>t.kind===i)}get(r){return this.utilities.has(r)?this.utilities.get(r):[]}getCompletions(r){return this.has(r,"static")?this.completions.get(r)?.()??[{supportsNegative:!1,values:[],modifiers:[]}]:this.completions.get(r)?.()??[]}suggest(r,i){let t=this.completions.get(r);t?this.completions.set(r,()=>[...t?.(),...i?.()]):this.completions.set(r,i)}keys(r){let i=[];for(let[t,n]of this.utilities.entries())for(let l of n)if(l.kind===r){i.push(t);break}return i}};function $(e,r,i){return F("@property",e,[a("syntax",i?`"${i}"`:'"*"'),a("inherits","false"),...r?[a("initial-value",r)]:[]])}function J(e,r){if(r===null)return e;let i=Number(r);return Number.isNaN(i)||(r=`${i*100}%`),r==="100%"?e:`color-mix(in oklab, ${e} ${r}, transparent)`}function Hr(e,r){let i=Number(r);return Number.isNaN(i)||(r=`${i*100}%`),`oklab(from ${e} l a b / ${r})`}function X(e,r,i){if(!r)return e;if(r.kind==="arbitrary")return J(e,r.value);let t=i.resolve(r.value,["--opacity"]);return t?J(e,t):wt(r.value)?J(e,`${r.value}%`):null}function te(e,r,i){let t=null;switch(e.value.value){case"inherit":{t="inherit";break}case"transparent":{t="transparent";break}case"current":{t="currentcolor";break}default:{t=r.resolve(e.value.value,i);break}}return t?X(t,e.modifier,r):null}var Zr=/(\d+)_(\d+)/g;function Qr(e){let r=new Jt;function i(s,g){function*v(b){for(let T of e.keysInNamespaces(b))yield T.replace(Zr,(D,E,R)=>`${E}.${R}`)}let C=["1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12"];r.suggest(s,()=>{let b=[];for(let T of g()){if(typeof T=="string"){b.push({values:[T],modifiers:[]});continue}let D=[...T.values??[],...v(T.valueThemeKeys??[])],E=[...T.modifiers??[],...v(T.modifierThemeKeys??[])];T.supportsFractions&&D.push(...C),T.hasDefaultValue&&D.unshift(null),b.push({supportsNegative:T.supportsNegative,values:D,modifiers:E})}return b})}function t(s,g){r.static(s,()=>g.map(v=>typeof v=="function"?v():a(v[0],v[1])))}function n(s,g){function v({negative:C}){return b=>{let T=null,D=null;if(b.value)if(b.value.kind==="arbitrary"){if(b.modifier)return;T=b.value.value,D=b.value.dataType}else{if(T=e.resolve(b.value.fraction??b.value.value,g.themeKeys??[]),T===null&&g.supportsFractions&&b.value.fraction){let[E,R]=L(b.value.fraction,"/");if(!O(E)||!O(R))return;T=`calc(${b.value.fraction} * 100%)`}if(T===null&&C&&g.handleNegativeBareValue){if(T=g.handleNegativeBareValue(b.value),!T?.includes("/")&&b.modifier)return;if(T!==null)return g.handle(T,null)}if(T===null&&g.handleBareValue&&(T=g.handleBareValue(b.value),!T?.includes("/")&&b.modifier))return;if(T===null&&!C&&g.staticValues&&!b.modifier){let E=g.staticValues[b.value.value];if(E)return E.map(ee)}}else{if(b.modifier)return;T=g.defaultValue!==void 0?g.defaultValue:e.resolve(null,g.themeKeys??[])}if(T!==null)return g.handle(C?`calc(${T} * -1)`:T,D)}}if(g.supportsNegative&&r.functional(`-${s}`,v({negative:!0})),r.functional(s,v({negative:!1})),i(s,()=>[{supportsNegative:g.supportsNegative,valueThemeKeys:g.themeKeys??[],hasDefaultValue:g.defaultValue!==void 0&&g.defaultValue!==null,supportsFractions:g.supportsFractions}]),g.staticValues&&Object.keys(g.staticValues).length>0){let C=Object.keys(g.staticValues);i(s,()=>[{values:C}])}}function l(s,g){r.functional(s,v=>{if(!v.value)return;let C=null;if(v.value.kind==="arbitrary"?(C=v.value.value,C=X(C,v.modifier,e)):C=te(v,e,g.themeKeys),C!==null)return g.handle(C)}),i(s,()=>[{values:["current","inherit","transparent"],valueThemeKeys:g.themeKeys,modifiers:Array.from({length:21},(v,C)=>`${C*5}`)}])}function o(s,g,v,{supportsNegative:C=!1,supportsFractions:b=!1,staticValues:T}={}){C&&r.static(`-${s}-px`,()=>v("-1px")),r.static(`${s}-px`,()=>v("1px")),n(s,{themeKeys:g,supportsFractions:b,supportsNegative:C,defaultValue:null,handleBareValue:({value:D})=>{let E=e.resolve(null,["--spacing"]);return!E||!ne(D)?null:`calc(${E} * ${D})`},handleNegativeBareValue:({value:D})=>{let E=e.resolve(null,["--spacing"]);return!E||!ne(D)?null:`calc(${E} * -${D})`},handle:v,staticValues:T}),i(s,()=>[{values:e.get(["--spacing"])?bt:[],supportsNegative:C,supportsFractions:b,valueThemeKeys:g}])}t("sr-only",[["position","absolute"],["width","1px"],["height","1px"],["padding","0"],["margin","-1px"],["overflow","hidden"],["clip-path","inset(50%)"],["white-space","nowrap"],["border-width","0"]]),t("not-sr-only",[["position","static"],["width","auto"],["height","auto"],["padding","0"],["margin","0"],["overflow","visible"],["clip-path","none"],["white-space","normal"]]),t("pointer-events-none",[["pointer-events","none"]]),t("pointer-events-auto",[["pointer-events","auto"]]),t("visible",[["visibility","visible"]]),t("invisible",[["visibility","hidden"]]),t("collapse",[["visibility","collapse"]]),t("static",[["position","static"]]),t("fixed",[["position","fixed"]]),t("absolute",[["position","absolute"]]),t("relative",[["position","relative"]]),t("sticky",[["position","sticky"]]);for(let[s,g]of[["inset","inset"],["inset-x","inset-inline"],["inset-y","inset-block"],["start","inset-inline-start"],["end","inset-inline-end"],["top","top"],["right","right"],["bottom","bottom"],["left","left"]])t(`${s}-auto`,[[g,"auto"]]),t(`${s}-full`,[[g,"100%"]]),t(`-${s}-full`,[[g,"-100%"]]),o(s,["--inset","--spacing"],v=>[a(g,v)],{supportsNegative:!0,supportsFractions:!0});t("isolate",[["isolation","isolate"]]),t("isolation-auto",[["isolation","auto"]]),n("z",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--z-index"],handle:s=>[a("z-index",s)],staticValues:{auto:[a("z-index","auto")]}}),i("z",()=>[{supportsNegative:!0,values:["0","10","20","30","40","50"],valueThemeKeys:["--z-index"]}]),n("order",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--order"],handle:s=>[a("order",s)],staticValues:{first:[a("order","-9999")],last:[a("order","9999")]}}),i("order",()=>[{supportsNegative:!0,values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:["--order"]}]),n("col",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-column"],handle:s=>[a("grid-column",s)],staticValues:{auto:[a("grid-column","auto")]}}),n("col-span",{handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("grid-column",`span ${s} / span ${s}`)],staticValues:{full:[a("grid-column","1 / -1")]}}),n("col-start",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-column-start"],handle:s=>[a("grid-column-start",s)],staticValues:{auto:[a("grid-column-start","auto")]}}),n("col-end",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-column-end"],handle:s=>[a("grid-column-end",s)],staticValues:{auto:[a("grid-column-end","auto")]}}),i("col-span",()=>[{values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:[]}]),i("col-start",()=>[{supportsNegative:!0,values:Array.from({length:13},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-column-start"]}]),i("col-end",()=>[{supportsNegative:!0,values:Array.from({length:13},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-column-end"]}]),n("row",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-row"],handle:s=>[a("grid-row",s)],staticValues:{auto:[a("grid-row","auto")]}}),n("row-span",{themeKeys:[],handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("grid-row",`span ${s} / span ${s}`)],staticValues:{full:[a("grid-row","1 / -1")]}}),n("row-start",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-row-start"],handle:s=>[a("grid-row-start",s)],staticValues:{auto:[a("grid-row-start","auto")]}}),n("row-end",{supportsNegative:!0,handleBareValue:({value:s})=>O(s)?s:null,themeKeys:["--grid-row-end"],handle:s=>[a("grid-row-end",s)],staticValues:{auto:[a("grid-row-end","auto")]}}),i("row-span",()=>[{values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:[]}]),i("row-start",()=>[{supportsNegative:!0,values:Array.from({length:13},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-row-start"]}]),i("row-end",()=>[{supportsNegative:!0,values:Array.from({length:13},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-row-end"]}]),t("float-start",[["float","inline-start"]]),t("float-end",[["float","inline-end"]]),t("float-right",[["float","right"]]),t("float-left",[["float","left"]]),t("float-none",[["float","none"]]),t("clear-start",[["clear","inline-start"]]),t("clear-end",[["clear","inline-end"]]),t("clear-right",[["clear","right"]]),t("clear-left",[["clear","left"]]),t("clear-both",[["clear","both"]]),t("clear-none",[["clear","none"]]);for(let[s,g]of[["m","margin"],["mx","margin-inline"],["my","margin-block"],["ms","margin-inline-start"],["me","margin-inline-end"],["mt","margin-top"],["mr","margin-right"],["mb","margin-bottom"],["ml","margin-left"]])t(`${s}-auto`,[[g,"auto"]]),o(s,["--margin","--spacing"],v=>[a(g,v)],{supportsNegative:!0});t("box-border",[["box-sizing","border-box"]]),t("box-content",[["box-sizing","content-box"]]),n("line-clamp",{themeKeys:["--line-clamp"],handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("overflow","hidden"),a("display","-webkit-box"),a("-webkit-box-orient","vertical"),a("-webkit-line-clamp",s)],staticValues:{none:[a("overflow","visible"),a("display","block"),a("-webkit-box-orient","horizontal"),a("-webkit-line-clamp","unset")]}}),i("line-clamp",()=>[{values:["1","2","3","4","5","6"],valueThemeKeys:["--line-clamp"]}]),t("block",[["display","block"]]),t("inline-block",[["display","inline-block"]]),t("inline",[["display","inline"]]),t("hidden",[["display","none"]]),t("inline-flex",[["display","inline-flex"]]),t("table",[["display","table"]]),t("inline-table",[["display","inline-table"]]),t("table-caption",[["display","table-caption"]]),t("table-cell",[["display","table-cell"]]),t("table-column",[["display","table-column"]]),t("table-column-group",[["display","table-column-group"]]),t("table-footer-group",[["display","table-footer-group"]]),t("table-header-group",[["display","table-header-group"]]),t("table-row-group",[["display","table-row-group"]]),t("table-row",[["display","table-row"]]),t("flow-root",[["display","flow-root"]]),t("flex",[["display","flex"]]),t("grid",[["display","grid"]]),t("inline-grid",[["display","inline-grid"]]),t("contents",[["display","contents"]]),t("list-item",[["display","list-item"]]),t("field-sizing-content",[["field-sizing","content"]]),t("field-sizing-fixed",[["field-sizing","fixed"]]),n("aspect",{themeKeys:["--aspect"],handleBareValue:({fraction:s})=>{if(s===null)return null;let[g,v]=L(s,"/");return!O(g)||!O(v)?null:s},handle:s=>[a("aspect-ratio",s)],staticValues:{auto:[a("aspect-ratio","auto")],square:[a("aspect-ratio","1 / 1")]}});for(let[s,g]of[["full","100%"],["svw","100svw"],["lvw","100lvw"],["dvw","100dvw"],["svh","100svh"],["lvh","100lvh"],["dvh","100dvh"],["min","min-content"],["max","max-content"],["fit","fit-content"]])t(`size-${s}`,[["--tw-sort","size"],["width",g],["height",g]]),t(`w-${s}`,[["width",g]]),t(`h-${s}`,[["height",g]]),t(`min-w-${s}`,[["min-width",g]]),t(`min-h-${s}`,[["min-height",g]]),t(`max-w-${s}`,[["max-width",g]]),t(`max-h-${s}`,[["max-height",g]]);t("size-auto",[["--tw-sort","size"],["width","auto"],["height","auto"]]),t("w-auto",[["width","auto"]]),t("h-auto",[["height","auto"]]),t("min-w-auto",[["min-width","auto"]]),t("min-h-auto",[["min-height","auto"]]),t("h-lh",[["height","1lh"]]),t("min-h-lh",[["min-height","1lh"]]),t("max-h-lh",[["max-height","1lh"]]),t("w-screen",[["width","100vw"]]),t("min-w-screen",[["min-width","100vw"]]),t("max-w-screen",[["max-width","100vw"]]),t("h-screen",[["height","100vh"]]),t("min-h-screen",[["min-height","100vh"]]),t("max-h-screen",[["max-height","100vh"]]),t("max-w-none",[["max-width","none"]]),t("max-h-none",[["max-height","none"]]),o("size",["--size","--spacing"],s=>[a("--tw-sort","size"),a("width",s),a("height",s)],{supportsFractions:!0});for(let[s,g,v]of[["w",["--width","--spacing","--container"],"width"],["min-w",["--min-width","--spacing","--container"],"min-width"],["max-w",["--max-width","--spacing","--container"],"max-width"],["h",["--height","--spacing"],"height"],["min-h",["--min-height","--height","--spacing"],"min-height"],["max-h",["--max-height","--height","--spacing"],"max-height"]])o(s,g,C=>[a(v,C)],{supportsFractions:!0});r.static("container",()=>{let s=[...e.namespace("--breakpoint").values()];s.sort((v,C)=>Oe(v,C,"asc"));let g=[a("--tw-sort","--tw-container-component"),a("width","100%")];for(let v of s)g.push(F("@media",`(width >= ${v})`,[a("max-width",v)]));return g}),t("flex-auto",[["flex","auto"]]),t("flex-initial",[["flex","0 auto"]]),t("flex-none",[["flex","none"]]),r.functional("flex",s=>{if(s.value){if(s.value.kind==="arbitrary")return s.modifier?void 0:[a("flex",s.value.value)];if(s.value.fraction){let[g,v]=L(s.value.fraction,"/");return!O(g)||!O(v)?void 0:[a("flex",`calc(${s.value.fraction} * 100%)`)]}if(O(s.value.value))return s.modifier?void 0:[a("flex",s.value.value)]}}),i("flex",()=>[{supportsFractions:!0},{values:Array.from({length:12},(s,g)=>`${g+1}`)}]),n("shrink",{defaultValue:"1",handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("flex-shrink",s)]}),n("grow",{defaultValue:"1",handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("flex-grow",s)]}),i("shrink",()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}]),i("grow",()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}]),t("basis-auto",[["flex-basis","auto"]]),t("basis-full",[["flex-basis","100%"]]),o("basis",["--flex-basis","--spacing","--container"],s=>[a("flex-basis",s)],{supportsFractions:!0}),t("table-auto",[["table-layout","auto"]]),t("table-fixed",[["table-layout","fixed"]]),t("caption-top",[["caption-side","top"]]),t("caption-bottom",[["caption-side","bottom"]]),t("border-collapse",[["border-collapse","collapse"]]),t("border-separate",[["border-collapse","separate"]]);let f=()=>W([$("--tw-border-spacing-x","0","<length>"),$("--tw-border-spacing-y","0","<length>")]);o("border-spacing",["--border-spacing","--spacing"],s=>[f(),a("--tw-border-spacing-x",s),a("--tw-border-spacing-y",s),a("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),o("border-spacing-x",["--border-spacing","--spacing"],s=>[f(),a("--tw-border-spacing-x",s),a("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),o("border-spacing-y",["--border-spacing","--spacing"],s=>[f(),a("--tw-border-spacing-y",s),a("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")]),n("origin",{themeKeys:["--transform-origin"],handle:s=>[a("transform-origin",s)],staticValues:{center:[a("transform-origin","center")],top:[a("transform-origin","top")],"top-right":[a("transform-origin","100% 0")],right:[a("transform-origin","100%")],"bottom-right":[a("transform-origin","100% 100%")],bottom:[a("transform-origin","bottom")],"bottom-left":[a("transform-origin","0 100%")],left:[a("transform-origin","0")],"top-left":[a("transform-origin","0 0")]}}),n("perspective-origin",{themeKeys:["--perspective-origin"],handle:s=>[a("perspective-origin",s)],staticValues:{center:[a("perspective-origin","center")],top:[a("perspective-origin","top")],"top-right":[a("perspective-origin","100% 0")],right:[a("perspective-origin","100%")],"bottom-right":[a("perspective-origin","100% 100%")],bottom:[a("perspective-origin","bottom")],"bottom-left":[a("perspective-origin","0 100%")],left:[a("perspective-origin","0")],"top-left":[a("perspective-origin","0 0")]}}),n("perspective",{themeKeys:["--perspective"],handle:s=>[a("perspective",s)],staticValues:{none:[a("perspective","none")]}});let u=()=>W([$("--tw-translate-x","0"),$("--tw-translate-y","0"),$("--tw-translate-z","0")]);t("translate-none",[["translate","none"]]),t("-translate-full",[u,["--tw-translate-x","-100%"],["--tw-translate-y","-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),t("translate-full",[u,["--tw-translate-x","100%"],["--tw-translate-y","100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),o("translate",["--translate","--spacing"],s=>[u(),a("--tw-translate-x",s),a("--tw-translate-y",s),a("translate","var(--tw-translate-x) var(--tw-translate-y)")],{supportsNegative:!0,supportsFractions:!0});for(let s of["x","y"])t(`-translate-${s}-full`,[u,[`--tw-translate-${s}`,"-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),t(`translate-${s}-full`,[u,[`--tw-translate-${s}`,"100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),o(`translate-${s}`,["--translate","--spacing"],g=>[u(),a(`--tw-translate-${s}`,g),a("translate","var(--tw-translate-x) var(--tw-translate-y)")],{supportsNegative:!0,supportsFractions:!0});o("translate-z",["--translate","--spacing"],s=>[u(),a("--tw-translate-z",s),a("translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)")],{supportsNegative:!0}),t("translate-3d",[u,["translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)"]]);let c=()=>W([$("--tw-scale-x","1"),$("--tw-scale-y","1"),$("--tw-scale-z","1")]);t("scale-none",[["scale","none"]]);function m({negative:s}){return g=>{if(!g.value||g.modifier)return;let v;return g.value.kind==="arbitrary"?(v=g.value.value,v=s?`calc(${v} * -1)`:v,[a("scale",v)]):(v=e.resolve(g.value.value,["--scale"]),!v&&O(g.value.value)&&(v=`${g.value.value}%`),v?(v=s?`calc(${v} * -1)`:v,[c(),a("--tw-scale-x",v),a("--tw-scale-y",v),a("--tw-scale-z",v),a("scale","var(--tw-scale-x) var(--tw-scale-y)")]):void 0)}}r.functional("-scale",m({negative:!0})),r.functional("scale",m({negative:!1})),i("scale",()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]);for(let s of["x","y","z"])n(`scale-${s}`,{supportsNegative:!0,themeKeys:["--scale"],handleBareValue:({value:g})=>O(g)?`${g}%`:null,handle:g=>[c(),a(`--tw-scale-${s}`,g),a("scale",`var(--tw-scale-x) var(--tw-scale-y)${s==="z"?" var(--tw-scale-z)":""}`)]}),i(`scale-${s}`,()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]);t("scale-3d",[c,["scale","var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)"]]),t("rotate-none",[["rotate","none"]]);function d({negative:s}){return g=>{if(!g.value||g.modifier)return;let v;if(g.value.kind==="arbitrary"){v=g.value.value;let C=g.value.dataType??Q(v,["angle","vector"]);if(C==="vector")return[a("rotate",`${v} var(--tw-rotate)`)];if(C!=="angle")return[a("rotate",s?`calc(${v} * -1)`:v)]}else if(v=e.resolve(g.value.value,["--rotate"]),!v&&O(g.value.value)&&(v=`${g.value.value}deg`),!v)return;return[a("rotate",s?`calc(${v} * -1)`:v)]}}r.functional("-rotate",d({negative:!0})),r.functional("rotate",d({negative:!1})),i("rotate",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]);{let s=["var(--tw-rotate-x,)","var(--tw-rotate-y,)","var(--tw-rotate-z,)","var(--tw-skew-x,)","var(--tw-skew-y,)"].join(" "),g=()=>W([$("--tw-rotate-x"),$("--tw-rotate-y"),$("--tw-rotate-z"),$("--tw-skew-x"),$("--tw-skew-y")]);for(let v of["x","y","z"])n(`rotate-${v}`,{supportsNegative:!0,themeKeys:["--rotate"],handleBareValue:({value:C})=>O(C)?`${C}deg`:null,handle:C=>[g(),a(`--tw-rotate-${v}`,`rotate${v.toUpperCase()}(${C})`),a("transform",s)]}),i(`rotate-${v}`,()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]);n("skew",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>O(v)?`${v}deg`:null,handle:v=>[g(),a("--tw-skew-x",`skewX(${v})`),a("--tw-skew-y",`skewY(${v})`),a("transform",s)]}),n("skew-x",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>O(v)?`${v}deg`:null,handle:v=>[g(),a("--tw-skew-x",`skewX(${v})`),a("transform",s)]}),n("skew-y",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:v})=>O(v)?`${v}deg`:null,handle:v=>[g(),a("--tw-skew-y",`skewY(${v})`),a("transform",s)]}),i("skew",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),i("skew-x",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),i("skew-y",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}]),r.functional("transform",v=>{if(v.modifier)return;let C=null;if(v.value?v.value.kind==="arbitrary"&&(C=v.value.value):C=s,C!==null)return[g(),a("transform",C)]}),i("transform",()=>[{hasDefaultValue:!0}]),t("transform-cpu",[["transform",s]]),t("transform-gpu",[["transform",`translateZ(0) ${s}`]]),t("transform-none",[["transform","none"]])}t("transform-flat",[["transform-style","flat"]]),t("transform-3d",[["transform-style","preserve-3d"]]),t("transform-content",[["transform-box","content-box"]]),t("transform-border",[["transform-box","border-box"]]),t("transform-fill",[["transform-box","fill-box"]]),t("transform-stroke",[["transform-box","stroke-box"]]),t("transform-view",[["transform-box","view-box"]]),t("backface-visible",[["backface-visibility","visible"]]),t("backface-hidden",[["backface-visibility","hidden"]]);for(let s of["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out"])t(`cursor-${s}`,[["cursor",s]]);n("cursor",{themeKeys:["--cursor"],handle:s=>[a("cursor",s)]});for(let s of["auto","none","manipulation"])t(`touch-${s}`,[["touch-action",s]]);let p=()=>W([$("--tw-pan-x"),$("--tw-pan-y"),$("--tw-pinch-zoom")]);for(let s of["x","left","right"])t(`touch-pan-${s}`,[p,["--tw-pan-x",`pan-${s}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let s of["y","up","down"])t(`touch-pan-${s}`,[p,["--tw-pan-y",`pan-${s}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);t("touch-pinch-zoom",[p,["--tw-pinch-zoom","pinch-zoom"],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let s of["none","text","all","auto"])t(`select-${s}`,[["-webkit-user-select",s],["user-select",s]]);t("resize-none",[["resize","none"]]),t("resize-x",[["resize","horizontal"]]),t("resize-y",[["resize","vertical"]]),t("resize",[["resize","both"]]),t("snap-none",[["scroll-snap-type","none"]]);let k=()=>W([$("--tw-scroll-snap-strictness","proximity","*")]);for(let s of["x","y","both"])t(`snap-${s}`,[k,["scroll-snap-type",`${s} var(--tw-scroll-snap-strictness)`]]);t("snap-mandatory",[k,["--tw-scroll-snap-strictness","mandatory"]]),t("snap-proximity",[k,["--tw-scroll-snap-strictness","proximity"]]),t("snap-align-none",[["scroll-snap-align","none"]]),t("snap-start",[["scroll-snap-align","start"]]),t("snap-end",[["scroll-snap-align","end"]]),t("snap-center",[["scroll-snap-align","center"]]),t("snap-normal",[["scroll-snap-stop","normal"]]),t("snap-always",[["scroll-snap-stop","always"]]);for(let[s,g]of[["scroll-m","scroll-margin"],["scroll-mx","scroll-margin-inline"],["scroll-my","scroll-margin-block"],["scroll-ms","scroll-margin-inline-start"],["scroll-me","scroll-margin-inline-end"],["scroll-mt","scroll-margin-top"],["scroll-mr","scroll-margin-right"],["scroll-mb","scroll-margin-bottom"],["scroll-ml","scroll-margin-left"]])o(s,["--scroll-margin","--spacing"],v=>[a(g,v)],{supportsNegative:!0});for(let[s,g]of[["scroll-p","scroll-padding"],["scroll-px","scroll-padding-inline"],["scroll-py","scroll-padding-block"],["scroll-ps","scroll-padding-inline-start"],["scroll-pe","scroll-padding-inline-end"],["scroll-pt","scroll-padding-top"],["scroll-pr","scroll-padding-right"],["scroll-pb","scroll-padding-bottom"],["scroll-pl","scroll-padding-left"]])o(s,["--scroll-padding","--spacing"],v=>[a(g,v)]);t("list-inside",[["list-style-position","inside"]]),t("list-outside",[["list-style-position","outside"]]),n("list",{themeKeys:["--list-style-type"],handle:s=>[a("list-style-type",s)],staticValues:{none:[a("list-style-type","none")],disc:[a("list-style-type","disc")],decimal:[a("list-style-type","decimal")]}}),n("list-image",{themeKeys:["--list-style-image"],handle:s=>[a("list-style-image",s)],staticValues:{none:[a("list-style-image","none")]}}),t("appearance-none",[["appearance","none"]]),t("appearance-auto",[["appearance","auto"]]),t("scheme-normal",[["color-scheme","normal"]]),t("scheme-dark",[["color-scheme","dark"]]),t("scheme-light",[["color-scheme","light"]]),t("scheme-light-dark",[["color-scheme","light dark"]]),t("scheme-only-dark",[["color-scheme","only dark"]]),t("scheme-only-light",[["color-scheme","only light"]]),n("columns",{themeKeys:["--columns","--container"],handleBareValue:({value:s})=>O(s)?s:null,handle:s=>[a("columns",s)],staticValues:{auto:[a("columns","auto")]}}),i("columns",()=>[{values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:["--columns","--container"]}]);for(let s of["auto","avoid","all","avoid-page","page","left","right","column"])t(`break-before-${s}`,[["break-before",s]]);for(let s of["auto","avoid","avoid-page","avoid-column"])t(`break-inside-${s}`,[["break-inside",s]]);for(let s of["auto","avoid","all","avoid-page","page","left","right","column"])t(`break-after-${s}`,[["break-after",s]]);t("grid-flow-row",[["grid-auto-flow","row"]]),t("grid-flow-col",[["grid-auto-flow","column"]]),t("grid-flow-dense",[["grid-auto-flow","dense"]]),t("grid-flow-row-dense",[["grid-auto-flow","row dense"]]),t("grid-flow-col-dense",[["grid-auto-flow","column dense"]]),n("auto-cols",{themeKeys:["--grid-auto-columns"],handle:s=>[a("grid-auto-columns",s)],staticValues:{auto:[a("grid-auto-columns","auto")],min:[a("grid-auto-columns","min-content")],max:[a("grid-auto-columns","max-content")],fr:[a("grid-auto-columns","minmax(0, 1fr)")]}}),n("auto-rows",{themeKeys:["--grid-auto-rows"],handle:s=>[a("grid-auto-rows",s)],staticValues:{auto:[a("grid-auto-rows","auto")],min:[a("grid-auto-rows","min-content")],max:[a("grid-auto-rows","max-content")],fr:[a("grid-auto-rows","minmax(0, 1fr)")]}}),n("grid-cols",{themeKeys:["--grid-template-columns"],handleBareValue:({value:s})=>Qt(s)?`repeat(${s}, minmax(0, 1fr))`:null,handle:s=>[a("grid-template-columns",s)],staticValues:{none:[a("grid-template-columns","none")],subgrid:[a("grid-template-columns","subgrid")]}}),n("grid-rows",{themeKeys:["--grid-template-rows"],handleBareValue:({value:s})=>Qt(s)?`repeat(${s}, minmax(0, 1fr))`:null,handle:s=>[a("grid-template-rows",s)],staticValues:{none:[a("grid-template-rows","none")],subgrid:[a("grid-template-rows","subgrid")]}}),i("grid-cols",()=>[{values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-template-columns"]}]),i("grid-rows",()=>[{values:Array.from({length:12},(s,g)=>`${g+1}`),valueThemeKeys:["--grid-template-rows"]}]),t("flex-row",[["flex-direction","row"]]),t("flex-row-reverse",[["flex-direction","row-reverse"]]),t("flex-col",[["flex-direction","column"]]),t("flex-col-reverse",[["flex-direction","column-reverse"]]),t("flex-wrap",[["flex-wrap","wrap"]]),t("flex-nowrap",[["flex-wrap","nowrap"]]),t("flex-wrap-reverse",[["flex-wrap","wrap-reverse"]]),t("place-content-center",[["place-content","center"]]),t("place-content-start",[["place-content","start"]]),t("place-content-end",[["place-content","end"]]),t("place-content-center-safe",[["place-content","safe center"]]),t("place-content-end-safe",[["place-content","safe end"]]),t("place-content-between",[["place-content","space-between"]]),t("place-content-around",[["place-content","space-around"]]),t("place-content-evenly",[["place-content","space-evenly"]]),t("place-content-baseline",[["place-content","baseline"]]),t("place-content-stretch",[["place-content","stretch"]]),t("place-items-center",[["place-items","center"]]),t("place-items-start",[["place-items","start"]]),t("place-items-end",[["place-items","end"]]),t("place-items-center-safe",[["place-items","safe center"]]),t("place-items-end-safe",[["place-items","safe end"]]),t("place-items-baseline",[["place-items","baseline"]]),t("place-items-stretch",[["place-items","stretch"]]),t("content-normal",[["align-content","normal"]]),t("content-center",[["align-content","center"]]),t("content-start",[["align-content","flex-start"]]),t("content-end",[["align-content","flex-end"]]),t("content-center-safe",[["align-content","safe center"]]),t("content-end-safe",[["align-content","safe flex-end"]]),t("content-between",[["align-content","space-between"]]),t("content-around",[["align-content","space-around"]]),t("content-evenly",[["align-content","space-evenly"]]),t("content-baseline",[["align-content","baseline"]]),t("content-stretch",[["align-content","stretch"]]),t("items-center",[["align-items","center"]]),t("items-start",[["align-items","flex-start"]]),t("items-end",[["align-items","flex-end"]]),t("items-center-safe",[["align-items","safe center"]]),t("items-end-safe",[["align-items","safe flex-end"]]),t("items-baseline",[["align-items","baseline"]]),t("items-baseline-last",[["align-items","last baseline"]]),t("items-stretch",[["align-items","stretch"]]),t("justify-normal",[["justify-content","normal"]]),t("justify-center",[["justify-content","center"]]),t("justify-start",[["justify-content","flex-start"]]),t("justify-end",[["justify-content","flex-end"]]),t("justify-center-safe",[["justify-content","safe center"]]),t("justify-end-safe",[["justify-content","safe flex-end"]]),t("justify-between",[["justify-content","space-between"]]),t("justify-around",[["justify-content","space-around"]]),t("justify-evenly",[["justify-content","space-evenly"]]),t("justify-baseline",[["justify-content","baseline"]]),t("justify-stretch",[["justify-content","stretch"]]),t("justify-items-normal",[["justify-items","normal"]]),t("justify-items-center",[["justify-items","center"]]),t("justify-items-start",[["justify-items","start"]]),t("justify-items-end",[["justify-items","end"]]),t("justify-items-center-safe",[["justify-items","safe center"]]),t("justify-items-end-safe",[["justify-items","safe end"]]),t("justify-items-stretch",[["justify-items","stretch"]]),o("gap",["--gap","--spacing"],s=>[a("gap",s)]),o("gap-x",["--gap","--spacing"],s=>[a("column-gap",s)]),o("gap-y",["--gap","--spacing"],s=>[a("row-gap",s)]),o("space-x",["--space","--spacing"],s=>[W([$("--tw-space-x-reverse","0")]),q(":where(& > :not(:last-child))",[a("--tw-sort","row-gap"),a("--tw-space-x-reverse","0"),a("margin-inline-start",`calc(${s} * var(--tw-space-x-reverse))`),a("margin-inline-end",`calc(${s} * calc(1 - var(--tw-space-x-reverse)))`)])],{supportsNegative:!0}),o("space-y",["--space","--spacing"],s=>[W([$("--tw-space-y-reverse","0")]),q(":where(& > :not(:last-child))",[a("--tw-sort","column-gap"),a("--tw-space-y-reverse","0"),a("margin-block-start",`calc(${s} * var(--tw-space-y-reverse))`),a("margin-block-end",`calc(${s} * calc(1 - var(--tw-space-y-reverse)))`)])],{supportsNegative:!0}),t("space-x-reverse",[()=>W([$("--tw-space-x-reverse","0")]),()=>q(":where(& > :not(:last-child))",[a("--tw-sort","row-gap"),a("--tw-space-x-reverse","1")])]),t("space-y-reverse",[()=>W([$("--tw-space-y-reverse","0")]),()=>q(":where(& > :not(:last-child))",[a("--tw-sort","column-gap"),a("--tw-space-y-reverse","1")])]),t("accent-auto",[["accent-color","auto"]]),l("accent",{themeKeys:["--accent-color","--color"],handle:s=>[a("accent-color",s)]}),l("caret",{themeKeys:["--caret-color","--color"],handle:s=>[a("caret-color",s)]}),l("divide",{themeKeys:["--divide-color","--border-color","--color"],handle:s=>[q(":where(& > :not(:last-child))",[a("--tw-sort","divide-color"),a("border-color",s)])]}),t("place-self-auto",[["place-self","auto"]]),t("place-self-start",[["place-self","start"]]),t("place-self-end",[["place-self","end"]]),t("place-self-center",[["place-self","center"]]),t("place-self-end-safe",[["place-self","safe end"]]),t("place-self-center-safe",[["place-self","safe center"]]),t("place-self-stretch",[["place-self","stretch"]]),t("self-auto",[["align-self","auto"]]),t("self-start",[["align-self","flex-start"]]),t("self-end",[["align-self","flex-end"]]),t("self-center",[["align-self","center"]]),t("self-end-safe",[["align-self","safe flex-end"]]),t("self-center-safe",[["align-self","safe center"]]),t("self-stretch",[["align-self","stretch"]]),t("self-baseline",[["align-self","baseline"]]),t("self-baseline-last",[["align-self","last baseline"]]),t("justify-self-auto",[["justify-self","auto"]]),t("justify-self-start",[["justify-self","flex-start"]]),t("justify-self-end",[["justify-self","flex-end"]]),t("justify-self-center",[["justify-self","center"]]),t("justify-self-end-safe",[["justify-self","safe flex-end"]]),t("justify-self-center-safe",[["justify-self","safe center"]]),t("justify-self-stretch",[["justify-self","stretch"]]);for(let s of["auto","hidden","clip","visible","scroll"])t(`overflow-${s}`,[["overflow",s]]),t(`overflow-x-${s}`,[["overflow-x",s]]),t(`overflow-y-${s}`,[["overflow-y",s]]);for(let s of["auto","contain","none"])t(`overscroll-${s}`,[["overscroll-behavior",s]]),t(`overscroll-x-${s}`,[["overscroll-behavior-x",s]]),t(`overscroll-y-${s}`,[["overscroll-behavior-y",s]]);t("scroll-auto",[["scroll-behavior","auto"]]),t("scroll-smooth",[["scroll-behavior","smooth"]]),t("truncate",[["overflow","hidden"],["text-overflow","ellipsis"],["white-space","nowrap"]]),t("text-ellipsis",[["text-overflow","ellipsis"]]),t("text-clip",[["text-overflow","clip"]]),t("hyphens-none",[["-webkit-hyphens","none"],["hyphens","none"]]),t("hyphens-manual",[["-webkit-hyphens","manual"],["hyphens","manual"]]),t("hyphens-auto",[["-webkit-hyphens","auto"],["hyphens","auto"]]),t("whitespace-normal",[["white-space","normal"]]),t("whitespace-nowrap",[["white-space","nowrap"]]),t("whitespace-pre",[["white-space","pre"]]),t("whitespace-pre-line",[["white-space","pre-line"]]),t("whitespace-pre-wrap",[["white-space","pre-wrap"]]),t("whitespace-break-spaces",[["white-space","break-spaces"]]),t("text-wrap",[["text-wrap","wrap"]]),t("text-nowrap",[["text-wrap","nowrap"]]),t("text-balance",[["text-wrap","balance"]]),t("text-pretty",[["text-wrap","pretty"]]),t("break-normal",[["overflow-wrap","normal"],["word-break","normal"]]),t("break-all",[["word-break","break-all"]]),t("break-keep",[["word-break","keep-all"]]),t("wrap-anywhere",[["overflow-wrap","anywhere"]]),t("wrap-break-word",[["overflow-wrap","break-word"]]),t("wrap-normal",[["overflow-wrap","normal"]]);for(let[s,g]of[["rounded",["border-radius"]],["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]],["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]])n(s,{themeKeys:["--radius"],handle:v=>g.map(C=>a(C,v)),staticValues:{none:g.map(v=>a(v,"0")),full:g.map(v=>a(v,"calc(infinity * 1px)"))}});t("border-solid",[["--tw-border-style","solid"],["border-style","solid"]]),t("border-dashed",[["--tw-border-style","dashed"],["border-style","dashed"]]),t("border-dotted",[["--tw-border-style","dotted"],["border-style","dotted"]]),t("border-double",[["--tw-border-style","double"],["border-style","double"]]),t("border-hidden",[["--tw-border-style","hidden"],["border-style","hidden"]]),t("border-none",[["--tw-border-style","none"],["border-style","none"]]);{let g=function(v,C){r.functional(v,b=>{if(!b.value){if(b.modifier)return;let T=e.get(["--default-border-width"])??"1px",D=C.width(T);return D?[s(),...D]:void 0}if(b.value.kind==="arbitrary"){let T=b.value.value;switch(b.value.dataType??Q(T,["color","line-width","length"])){case"line-width":case"length":{if(b.modifier)return;let E=C.width(T);return E?[s(),...E]:void 0}default:return T=X(T,b.modifier,e),T===null?void 0:C.color(T)}}{let T=te(b,e,["--border-color","--color"]);if(T)return C.color(T)}{if(b.modifier)return;let T=e.resolve(b.value.value,["--border-width"]);if(T){let D=C.width(T);return D?[s(),...D]:void 0}if(O(b.value.value)){let D=C.width(`${b.value.value}px`);return D?[s(),...D]:void 0}}}),i(v,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--border-color","--color"],modifiers:Array.from({length:21},(b,T)=>`${T*5}`),hasDefaultValue:!0},{values:["0","2","4","8"],valueThemeKeys:["--border-width"]}])};var I=g;let s=()=>W([$("--tw-border-style","solid")]);g("border",{width:v=>[a("border-style","var(--tw-border-style)"),a("border-width",v)],color:v=>[a("border-color",v)]}),g("border-x",{width:v=>[a("border-inline-style","var(--tw-border-style)"),a("border-inline-width",v)],color:v=>[a("border-inline-color",v)]}),g("border-y",{width:v=>[a("border-block-style","var(--tw-border-style)"),a("border-block-width",v)],color:v=>[a("border-block-color",v)]}),g("border-s",{width:v=>[a("border-inline-start-style","var(--tw-border-style)"),a("border-inline-start-width",v)],color:v=>[a("border-inline-start-color",v)]}),g("border-e",{width:v=>[a("border-inline-end-style","var(--tw-border-style)"),a("border-inline-end-width",v)],color:v=>[a("border-inline-end-color",v)]}),g("border-t",{width:v=>[a("border-top-style","var(--tw-border-style)"),a("border-top-width",v)],color:v=>[a("border-top-color",v)]}),g("border-r",{width:v=>[a("border-right-style","var(--tw-border-style)"),a("border-right-width",v)],color:v=>[a("border-right-color",v)]}),g("border-b",{width:v=>[a("border-bottom-style","var(--tw-border-style)"),a("border-bottom-width",v)],color:v=>[a("border-bottom-color",v)]}),g("border-l",{width:v=>[a("border-left-style","var(--tw-border-style)"),a("border-left-width",v)],color:v=>[a("border-left-color",v)]}),n("divide-x",{defaultValue:e.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:v})=>O(v)?`${v}px`:null,handle:v=>[W([$("--tw-divide-x-reverse","0")]),q(":where(& > :not(:last-child))",[a("--tw-sort","divide-x-width"),s(),a("--tw-divide-x-reverse","0"),a("border-inline-style","var(--tw-border-style)"),a("border-inline-start-width",`calc(${v} * var(--tw-divide-x-reverse))`),a("border-inline-end-width",`calc(${v} * calc(1 - var(--tw-divide-x-reverse)))`)])]}),n("divide-y",{defaultValue:e.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:v})=>O(v)?`${v}px`:null,handle:v=>[W([$("--tw-divide-y-reverse","0")]),q(":where(& > :not(:last-child))",[a("--tw-sort","divide-y-width"),s(),a("--tw-divide-y-reverse","0"),a("border-bottom-style","var(--tw-border-style)"),a("border-top-style","var(--tw-border-style)"),a("border-top-width",`calc(${v} * var(--tw-divide-y-reverse))`),a("border-bottom-width",`calc(${v} * calc(1 - var(--tw-divide-y-reverse)))`)])]}),i("divide-x",()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}]),i("divide-y",()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}]),t("divide-x-reverse",[()=>W([$("--tw-divide-x-reverse","0")]),()=>q(":where(& > :not(:last-child))",[a("--tw-divide-x-reverse","1")])]),t("divide-y-reverse",[()=>W([$("--tw-divide-y-reverse","0")]),()=>q(":where(& > :not(:last-child))",[a("--tw-divide-y-reverse","1")])]);for(let v of["solid","dashed","dotted","double","none"])t(`divide-${v}`,[()=>q(":where(& > :not(:last-child))",[a("--tw-sort","divide-style"),a("--tw-border-style",v),a("border-style",v)])])}t("bg-auto",[["background-size","auto"]]),t("bg-cover",[["background-size","cover"]]),t("bg-contain",[["background-size","contain"]]),n("bg-size",{handle(s){if(s)return[a("background-size",s)]}}),t("bg-fixed",[["background-attachment","fixed"]]),t("bg-local",[["background-attachment","local"]]),t("bg-scroll",[["background-attachment","scroll"]]),t("bg-top",[["background-position","top"]]),t("bg-top-left",[["background-position","left top"]]),t("bg-top-right",[["background-position","right top"]]),t("bg-bottom",[["background-position","bottom"]]),t("bg-bottom-left",[["background-position","left bottom"]]),t("bg-bottom-right",[["background-position","right bottom"]]),t("bg-left",[["background-position","left"]]),t("bg-right",[["background-position","right"]]),t("bg-center",[["background-position","center"]]),n("bg-position",{handle(s){if(s)return[a("background-position",s)]}}),t("bg-repeat",[["background-repeat","repeat"]]),t("bg-no-repeat",[["background-repeat","no-repeat"]]),t("bg-repeat-x",[["background-repeat","repeat-x"]]),t("bg-repeat-y",[["background-repeat","repeat-y"]]),t("bg-repeat-round",[["background-repeat","round"]]),t("bg-repeat-space",[["background-repeat","space"]]),t("bg-none",[["background-image","none"]]);{let v=function(T){let D="in oklab";if(T?.kind==="named")switch(T.value){case"longer":case"shorter":case"increasing":case"decreasing":D=`in oklch ${T.value} hue`;break;default:D=`in ${T.value}`}else T?.kind==="arbitrary"&&(D=T.value);return D},C=function({negative:T}){return D=>{if(!D.value)return;if(D.value.kind==="arbitrary"){if(D.modifier)return;let j=D.value.value;switch(D.value.dataType??Q(j,["angle"])){case"angle":return j=T?`calc(${j} * -1)`:`${j}`,[a("--tw-gradient-position",j),a("background-image",`linear-gradient(var(--tw-gradient-stops,${j}))`)];default:return T?void 0:[a("--tw-gradient-position",j),a("background-image",`linear-gradient(var(--tw-gradient-stops,${j}))`)]}}let E=D.value.value;if(!T&&g.has(E))E=g.get(E);else if(O(E))E=T?`calc(${E}deg * -1)`:`${E}deg`;else return;let R=v(D.modifier);return[a("--tw-gradient-position",`${E}`),Z("@supports (background-image: linear-gradient(in lab, red, red))",[a("--tw-gradient-position",`${E} ${R}`)]),a("background-image","linear-gradient(var(--tw-gradient-stops))")]}},b=function({negative:T}){return D=>{if(D.value?.kind==="arbitrary"){if(D.modifier)return;let j=D.value.value;return[a("--tw-gradient-position",j),a("background-image",`conic-gradient(var(--tw-gradient-stops,${j}))`)]}let E=v(D.modifier);if(!D.value)return[a("--tw-gradient-position",E),a("background-image","conic-gradient(var(--tw-gradient-stops))")];let R=D.value.value;if(O(R))return R=T?`calc(${R}deg * -1)`:`${R}deg`,[a("--tw-gradient-position",`from ${R} ${E}`),a("background-image","conic-gradient(var(--tw-gradient-stops))")]}};var M=v,Y=C,G=b;let s=["oklab","oklch","srgb","hsl","longer","shorter","increasing","decreasing"],g=new Map([["to-t","to top"],["to-tr","to top right"],["to-r","to right"],["to-br","to bottom right"],["to-b","to bottom"],["to-bl","to bottom left"],["to-l","to left"],["to-tl","to top left"]]);r.functional("-bg-linear",C({negative:!0})),r.functional("bg-linear",C({negative:!1})),i("bg-linear",()=>[{values:[...g.keys()],modifiers:s},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:s}]),r.functional("-bg-conic",b({negative:!0})),r.functional("bg-conic",b({negative:!1})),i("bg-conic",()=>[{hasDefaultValue:!0,modifiers:s},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:s}]),r.functional("bg-radial",T=>{if(!T.value){let D=v(T.modifier);return[a("--tw-gradient-position",D),a("background-image","radial-gradient(var(--tw-gradient-stops))")]}if(T.value.kind==="arbitrary"){if(T.modifier)return;let D=T.value.value;return[a("--tw-gradient-position",D),a("background-image",`radial-gradient(var(--tw-gradient-stops,${D}))`)]}}),i("bg-radial",()=>[{hasDefaultValue:!0,modifiers:s}])}r.functional("bg",s=>{if(s.value){if(s.value.kind==="arbitrary"){let g=s.value.value;switch(s.value.dataType??Q(g,["image","color","percentage","position","bg-size","length","url"])){case"percentage":case"position":return s.modifier?void 0:[a("background-position",g)];case"bg-size":case"length":case"size":return s.modifier?void 0:[a("background-size",g)];case"image":case"url":return s.modifier?void 0:[a("background-image",g)];default:return g=X(g,s.modifier,e),g===null?void 0:[a("background-color",g)]}}{let g=te(s,e,["--background-color","--color"]);if(g)return[a("background-color",g)]}{if(s.modifier)return;let g=e.resolve(s.value.value,["--background-image"]);if(g)return[a("background-image",g)]}}}),i("bg",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:[],valueThemeKeys:["--background-image"]}]);let h=()=>W([$("--tw-gradient-position"),$("--tw-gradient-from","#0000","<color>"),$("--tw-gradient-via","#0000","<color>"),$("--tw-gradient-to","#0000","<color>"),$("--tw-gradient-stops"),$("--tw-gradient-via-stops"),$("--tw-gradient-from-position","0%","<length-percentage>"),$("--tw-gradient-via-position","50%","<length-percentage>"),$("--tw-gradient-to-position","100%","<length-percentage>")]);function w(s,g){r.functional(s,v=>{if(v.value){if(v.value.kind==="arbitrary"){let C=v.value.value;switch(v.value.dataType??Q(C,["color","length","percentage"])){case"length":case"percentage":return v.modifier?void 0:g.position(C);default:return C=X(C,v.modifier,e),C===null?void 0:g.color(C)}}{let C=te(v,e,["--background-color","--color"]);if(C)return g.color(C)}{if(v.modifier)return;let C=e.resolve(v.value.value,["--gradient-color-stop-positions"]);if(C)return g.position(C);if(v.value.value[v.value.value.length-1]==="%"&&O(v.value.value.slice(0,-1)))return g.position(v.value.value)}}}),i(s,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)},{values:Array.from({length:21},(v,C)=>`${C*5}%`),valueThemeKeys:["--gradient-color-stop-positions"]}])}w("from",{color:s=>[h(),a("--tw-sort","--tw-gradient-from"),a("--tw-gradient-from",s),a("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:s=>[h(),a("--tw-gradient-from-position",s)]}),t("via-none",[["--tw-gradient-via-stops","initial"]]),w("via",{color:s=>[h(),a("--tw-sort","--tw-gradient-via"),a("--tw-gradient-via",s),a("--tw-gradient-via-stops","var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position)"),a("--tw-gradient-stops","var(--tw-gradient-via-stops)")],position:s=>[h(),a("--tw-gradient-via-position",s)]}),w("to",{color:s=>[h(),a("--tw-sort","--tw-gradient-to"),a("--tw-gradient-to",s),a("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:s=>[h(),a("--tw-gradient-to-position",s)]}),t("mask-none",[["mask-image","none"]]),r.functional("mask",s=>{if(!s.value||s.modifier||s.value.kind!=="arbitrary")return;let g=s.value.value;switch(s.value.dataType??Q(g,["image","percentage","position","bg-size","length","url"])){case"percentage":case"position":return s.modifier?void 0:[a("mask-position",g)];case"bg-size":case"length":case"size":return[a("mask-size",g)];case"image":case"url":default:return[a("mask-image",g)]}}),t("mask-add",[["mask-composite","add"]]),t("mask-subtract",[["mask-composite","subtract"]]),t("mask-intersect",[["mask-composite","intersect"]]),t("mask-exclude",[["mask-composite","exclude"]]),t("mask-alpha",[["mask-mode","alpha"]]),t("mask-luminance",[["mask-mode","luminance"]]),t("mask-match",[["mask-mode","match-source"]]),t("mask-type-alpha",[["mask-type","alpha"]]),t("mask-type-luminance",[["mask-type","luminance"]]),t("mask-auto",[["mask-size","auto"]]),t("mask-cover",[["mask-size","cover"]]),t("mask-contain",[["mask-size","contain"]]),n("mask-size",{handle(s){if(s)return[a("mask-size",s)]}}),t("mask-top",[["mask-position","top"]]),t("mask-top-left",[["mask-position","left top"]]),t("mask-top-right",[["mask-position","right top"]]),t("mask-bottom",[["mask-position","bottom"]]),t("mask-bottom-left",[["mask-position","left bottom"]]),t("mask-bottom-right",[["mask-position","right bottom"]]),t("mask-left",[["mask-position","left"]]),t("mask-right",[["mask-position","right"]]),t("mask-center",[["mask-position","center"]]),n("mask-position",{handle(s){if(s)return[a("mask-position",s)]}}),t("mask-repeat",[["mask-repeat","repeat"]]),t("mask-no-repeat",[["mask-repeat","no-repeat"]]),t("mask-repeat-x",[["mask-repeat","repeat-x"]]),t("mask-repeat-y",[["mask-repeat","repeat-y"]]),t("mask-repeat-round",[["mask-repeat","round"]]),t("mask-repeat-space",[["mask-repeat","space"]]),t("mask-clip-border",[["mask-clip","border-box"]]),t("mask-clip-padding",[["mask-clip","padding-box"]]),t("mask-clip-content",[["mask-clip","content-box"]]),t("mask-clip-fill",[["mask-clip","fill-box"]]),t("mask-clip-stroke",[["mask-clip","stroke-box"]]),t("mask-clip-view",[["mask-clip","view-box"]]),t("mask-no-clip",[["mask-clip","no-clip"]]),t("mask-origin-border",[["mask-origin","border-box"]]),t("mask-origin-padding",[["mask-origin","padding-box"]]),t("mask-origin-content",[["mask-origin","content-box"]]),t("mask-origin-fill",[["mask-origin","fill-box"]]),t("mask-origin-stroke",[["mask-origin","stroke-box"]]),t("mask-origin-view",[["mask-origin","view-box"]]);let x=()=>W([$("--tw-mask-linear","linear-gradient(#fff, #fff)"),$("--tw-mask-radial","linear-gradient(#fff, #fff)"),$("--tw-mask-conic","linear-gradient(#fff, #fff)")]);function S(s,g){r.functional(s,v=>{if(v.value){if(v.value.kind==="arbitrary"){let C=v.value.value;switch(v.value.dataType??Q(C,["length","percentage","color"])){case"color":return C=X(C,v.modifier,e),C===null?void 0:g.color(C);case"percentage":return v.modifier||!O(C.slice(0,-1))?void 0:g.position(C);default:return v.modifier?void 0:g.position(C)}}{let C=te(v,e,["--background-color","--color"]);if(C)return g.color(C)}{if(v.modifier)return;let C=Q(v.value.value,["number","percentage"]);if(!C)return;switch(C){case"number":{let b=e.resolve(null,["--spacing"]);return!b||!ne(v.value.value)?void 0:g.position(`calc(${b} * ${v.value.value})`)}case"percentage":return O(v.value.value.slice(0,-1))?g.position(v.value.value):void 0;default:return}}}}),i(s,()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)},{values:Array.from({length:21},(v,C)=>`${C*5}%`),valueThemeKeys:["--gradient-color-stop-positions"]}]),i(s,()=>[{values:Array.from({length:21},(v,C)=>`${C*5}%`)},{values:e.get(["--spacing"])?bt:[]},{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},(v,C)=>`${C*5}`)}])}let A=()=>W([$("--tw-mask-left","linear-gradient(#fff, #fff)"),$("--tw-mask-right","linear-gradient(#fff, #fff)"),$("--tw-mask-bottom","linear-gradient(#fff, #fff)"),$("--tw-mask-top","linear-gradient(#fff, #fff)")]);function y(s,g,v){S(s,{color(C){let b=[x(),A(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let T of["top","right","bottom","left"])v[T]&&(b.push(a(`--tw-mask-${T}`,`linear-gradient(to ${T}, var(--tw-mask-${T}-from-color) var(--tw-mask-${T}-from-position), var(--tw-mask-${T}-to-color) var(--tw-mask-${T}-to-position))`)),b.push(W([$(`--tw-mask-${T}-from-position`,"0%"),$(`--tw-mask-${T}-to-position`,"100%"),$(`--tw-mask-${T}-from-color`,"black"),$(`--tw-mask-${T}-to-color`,"transparent")])),b.push(a(`--tw-mask-${T}-${g}-color`,C)));return b},position(C){let b=[x(),A(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let T of["top","right","bottom","left"])v[T]&&(b.push(a(`--tw-mask-${T}`,`linear-gradient(to ${T}, var(--tw-mask-${T}-from-color) var(--tw-mask-${T}-from-position), var(--tw-mask-${T}-to-color) var(--tw-mask-${T}-to-position))`)),b.push(W([$(`--tw-mask-${T}-from-position`,"0%"),$(`--tw-mask-${T}-to-position`,"100%"),$(`--tw-mask-${T}-from-color`,"black"),$(`--tw-mask-${T}-to-color`,"transparent")])),b.push(a(`--tw-mask-${T}-${g}-position`,C)));return b}})}y("mask-x-from","from",{top:!1,right:!0,bottom:!1,left:!0}),y("mask-x-to","to",{top:!1,right:!0,bottom:!1,left:!0}),y("mask-y-from","from",{top:!0,right:!1,bottom:!0,left:!1}),y("mask-y-to","to",{top:!0,right:!1,bottom:!0,left:!1}),y("mask-t-from","from",{top:!0,right:!1,bottom:!1,left:!1}),y("mask-t-to","to",{top:!0,right:!1,bottom:!1,left:!1}),y("mask-r-from","from",{top:!1,right:!0,bottom:!1,left:!1}),y("mask-r-to","to",{top:!1,right:!0,bottom:!1,left:!1}),y("mask-b-from","from",{top:!1,right:!1,bottom:!0,left:!1}),y("mask-b-to","to",{top:!1,right:!1,bottom:!0,left:!1}),y("mask-l-from","from",{top:!1,right:!1,bottom:!1,left:!0}),y("mask-l-to","to",{top:!1,right:!1,bottom:!1,left:!0});let K=()=>W([$("--tw-mask-linear-position","0deg"),$("--tw-mask-linear-from-position","0%"),$("--tw-mask-linear-to-position","100%"),$("--tw-mask-linear-from-color","black"),$("--tw-mask-linear-to-color","transparent")]);n("mask-linear",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(s){return O(s.value)?`calc(1deg * ${s.value})`:null},handleNegativeBareValue(s){return O(s.value)?`calc(1deg * -${s.value})`:null},handle:s=>[x(),K(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops, var(--tw-mask-linear-position)))"),a("--tw-mask-linear-position",s)]}),i("mask-linear",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}]),S("mask-linear-from",{color:s=>[x(),K(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),a("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),a("--tw-mask-linear-from-color",s)],position:s=>[x(),K(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),a("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),a("--tw-mask-linear-from-position",s)]}),S("mask-linear-to",{color:s=>[x(),K(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),a("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),a("--tw-mask-linear-to-color",s)],position:s=>[x(),K(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),a("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),a("--tw-mask-linear-to-position",s)]});let N=()=>W([$("--tw-mask-radial-from-position","0%"),$("--tw-mask-radial-to-position","100%"),$("--tw-mask-radial-from-color","black"),$("--tw-mask-radial-to-color","transparent"),$("--tw-mask-radial-shape","ellipse"),$("--tw-mask-radial-size","farthest-corner"),$("--tw-mask-radial-position","center")]);t("mask-circle",[["--tw-mask-radial-shape","circle"]]),t("mask-ellipse",[["--tw-mask-radial-shape","ellipse"]]),t("mask-radial-closest-side",[["--tw-mask-radial-size","closest-side"]]),t("mask-radial-farthest-side",[["--tw-mask-radial-size","farthest-side"]]),t("mask-radial-closest-corner",[["--tw-mask-radial-size","closest-corner"]]),t("mask-radial-farthest-corner",[["--tw-mask-radial-size","farthest-corner"]]),t("mask-radial-at-top",[["--tw-mask-radial-position","top"]]),t("mask-radial-at-top-left",[["--tw-mask-radial-position","top left"]]),t("mask-radial-at-top-right",[["--tw-mask-radial-position","top right"]]),t("mask-radial-at-bottom",[["--tw-mask-radial-position","bottom"]]),t("mask-radial-at-bottom-left",[["--tw-mask-radial-position","bottom left"]]),t("mask-radial-at-bottom-right",[["--tw-mask-radial-position","bottom right"]]),t("mask-radial-at-left",[["--tw-mask-radial-position","left"]]),t("mask-radial-at-right",[["--tw-mask-radial-position","right"]]),t("mask-radial-at-center",[["--tw-mask-radial-position","center"]]),n("mask-radial-at",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:s=>[a("--tw-mask-radial-position",s)]}),n("mask-radial",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:s=>[x(),N(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops, var(--tw-mask-radial-size)))"),a("--tw-mask-radial-size",s)]}),S("mask-radial-from",{color:s=>[x(),N(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),a("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),a("--tw-mask-radial-from-color",s)],position:s=>[x(),N(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),a("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),a("--tw-mask-radial-from-position",s)]}),S("mask-radial-to",{color:s=>[x(),N(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),a("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),a("--tw-mask-radial-to-color",s)],position:s=>[x(),N(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),a("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),a("--tw-mask-radial-to-position",s)]});let P=()=>W([$("--tw-mask-conic-position","0deg"),$("--tw-mask-conic-from-position","0%"),$("--tw-mask-conic-to-position","100%"),$("--tw-mask-conic-from-color","black"),$("--tw-mask-conic-to-color","transparent")]);n("mask-conic",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(s){return O(s.value)?`calc(1deg * ${s.value})`:null},handleNegativeBareValue(s){return O(s.value)?`calc(1deg * -${s.value})`:null},handle:s=>[x(),P(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops, var(--tw-mask-conic-position)))"),a("--tw-mask-conic-position",s)]}),i("mask-conic",()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}]),S("mask-conic-from",{color:s=>[x(),P(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),a("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),a("--tw-mask-conic-from-color",s)],position:s=>[x(),P(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),a("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),a("--tw-mask-conic-from-position",s)]}),S("mask-conic-to",{color:s=>[x(),P(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),a("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),a("--tw-mask-conic-to-color",s)],position:s=>[x(),P(),a("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),a("mask-composite","intersect"),a("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),a("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),a("--tw-mask-conic-to-position",s)]}),t("box-decoration-slice",[["-webkit-box-decoration-break","slice"],["box-decoration-break","slice"]]),t("box-decoration-clone",[["-webkit-box-decoration-break","clone"],["box-decoration-break","clone"]]),t("bg-clip-text",[["background-clip","text"]]),t("bg-clip-border",[["background-clip","border-box"]]),t("bg-clip-padding",[["background-clip","padding-box"]]),t("bg-clip-content",[["background-clip","content-box"]]),t("bg-origin-border",[["background-origin","border-box"]]),t("bg-origin-padding",[["background-origin","padding-box"]]),t("bg-origin-content",[["background-origin","content-box"]]);for(let s of["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"])t(`bg-blend-${s}`,[["background-blend-mode",s]]),t(`mix-blend-${s}`,[["mix-blend-mode",s]]);t("mix-blend-plus-darker",[["mix-blend-mode","plus-darker"]]),t("mix-blend-plus-lighter",[["mix-blend-mode","plus-lighter"]]),t("fill-none",[["fill","none"]]),r.functional("fill",s=>{if(!s.value)return;if(s.value.kind==="arbitrary"){let v=X(s.value.value,s.modifier,e);return v===null?void 0:[a("fill",v)]}let g=te(s,e,["--fill","--color"]);if(g)return[a("fill",g)]}),i("fill",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--fill","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)}]),t("stroke-none",[["stroke","none"]]),r.functional("stroke",s=>{if(s.value){if(s.value.kind==="arbitrary"){let g=s.value.value;switch(s.value.dataType??Q(g,["color","number","length","percentage"])){case"number":case"length":case"percentage":return s.modifier?void 0:[a("stroke-width",g)];default:return g=X(s.value.value,s.modifier,e),g===null?void 0:[a("stroke",g)]}}{let g=te(s,e,["--stroke","--color"]);if(g)return[a("stroke",g)]}{let g=e.resolve(s.value.value,["--stroke-width"]);if(g)return[a("stroke-width",g)];if(O(s.value.value))return[a("stroke-width",s.value.value)]}}}),i("stroke",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--stroke","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:["0","1","2","3"],valueThemeKeys:["--stroke-width"]}]),t("object-contain",[["object-fit","contain"]]),t("object-cover",[["object-fit","cover"]]),t("object-fill",[["object-fit","fill"]]),t("object-none",[["object-fit","none"]]),t("object-scale-down",[["object-fit","scale-down"]]),n("object",{themeKeys:["--object-position"],handle:s=>[a("object-position",s)],staticValues:{top:[a("object-position","top")],"top-left":[a("object-position","left top")],"top-right":[a("object-position","right top")],bottom:[a("object-position","bottom")],"bottom-left":[a("object-position","left bottom")],"bottom-right":[a("object-position","right bottom")],left:[a("object-position","left")],right:[a("object-position","right")],center:[a("object-position","center")]}});for(let[s,g]of[["p","padding"],["px","padding-inline"],["py","padding-block"],["ps","padding-inline-start"],["pe","padding-inline-end"],["pt","padding-top"],["pr","padding-right"],["pb","padding-bottom"],["pl","padding-left"]])o(s,["--padding","--spacing"],v=>[a(g,v)]);t("text-left",[["text-align","left"]]),t("text-center",[["text-align","center"]]),t("text-right",[["text-align","right"]]),t("text-justify",[["text-align","justify"]]),t("text-start",[["text-align","start"]]),t("text-end",[["text-align","end"]]),o("indent",["--text-indent","--spacing"],s=>[a("text-indent",s)],{supportsNegative:!0}),t("align-baseline",[["vertical-align","baseline"]]),t("align-top",[["vertical-align","top"]]),t("align-middle",[["vertical-align","middle"]]),t("align-bottom",[["vertical-align","bottom"]]),t("align-text-top",[["vertical-align","text-top"]]),t("align-text-bottom",[["vertical-align","text-bottom"]]),t("align-sub",[["vertical-align","sub"]]),t("align-super",[["vertical-align","super"]]),n("align",{themeKeys:[],handle:s=>[a("vertical-align",s)]}),r.functional("font",s=>{if(!(!s.value||s.modifier)){if(s.value.kind==="arbitrary"){let g=s.value.value;switch(s.value.dataType??Q(g,["number","generic-name","family-name"])){case"generic-name":case"family-name":return[a("font-family",g)];default:return[W([$("--tw-font-weight")]),a("--tw-font-weight",g),a("font-weight",g)]}}{let g=e.resolveWith(s.value.value,["--font"],["--font-feature-settings","--font-variation-settings"]);if(g){let[v,C={}]=g;return[a("font-family",v),a("font-feature-settings",C["--font-feature-settings"]),a("font-variation-settings",C["--font-variation-settings"])]}}{let g=e.resolve(s.value.value,["--font-weight"]);if(g)return[W([$("--tw-font-weight")]),a("--tw-font-weight",g),a("font-weight",g)]}}}),i("font",()=>[{values:[],valueThemeKeys:["--font"]},{values:[],valueThemeKeys:["--font-weight"]}]),t("uppercase",[["text-transform","uppercase"]]),t("lowercase",[["text-transform","lowercase"]]),t("capitalize",[["text-transform","capitalize"]]),t("normal-case",[["text-transform","none"]]),t("italic",[["font-style","italic"]]),t("not-italic",[["font-style","normal"]]),t("underline",[["text-decoration-line","underline"]]),t("overline",[["text-decoration-line","overline"]]),t("line-through",[["text-decoration-line","line-through"]]),t("no-underline",[["text-decoration-line","none"]]),t("font-stretch-normal",[["font-stretch","normal"]]),t("font-stretch-ultra-condensed",[["font-stretch","ultra-condensed"]]),t("font-stretch-extra-condensed",[["font-stretch","extra-condensed"]]),t("font-stretch-condensed",[["font-stretch","condensed"]]),t("font-stretch-semi-condensed",[["font-stretch","semi-condensed"]]),t("font-stretch-semi-expanded",[["font-stretch","semi-expanded"]]),t("font-stretch-expanded",[["font-stretch","expanded"]]),t("font-stretch-extra-expanded",[["font-stretch","extra-expanded"]]),t("font-stretch-ultra-expanded",[["font-stretch","ultra-expanded"]]),n("font-stretch",{handleBareValue:({value:s})=>{if(!s.endsWith("%"))return null;let g=Number(s.slice(0,-1));return!O(g)||Number.isNaN(g)||g<50||g>200?null:s},handle:s=>[a("font-stretch",s)]}),i("font-stretch",()=>[{values:["50%","75%","90%","95%","100%","105%","110%","125%","150%","200%"]}]),l("placeholder",{themeKeys:["--background-color","--color"],handle:s=>[q("&::placeholder",[a("--tw-sort","placeholder-color"),a("color",s)])]}),t("decoration-solid",[["text-decoration-style","solid"]]),t("decoration-double",[["text-decoration-style","double"]]),t("decoration-dotted",[["text-decoration-style","dotted"]]),t("decoration-dashed",[["text-decoration-style","dashed"]]),t("decoration-wavy",[["text-decoration-style","wavy"]]),t("decoration-auto",[["text-decoration-thickness","auto"]]),t("decoration-from-font",[["text-decoration-thickness","from-font"]]),r.functional("decoration",s=>{if(s.value){if(s.value.kind==="arbitrary"){let g=s.value.value;switch(s.value.dataType??Q(g,["color","length","percentage"])){case"length":case"percentage":return s.modifier?void 0:[a("text-decoration-thickness",g)];default:return g=X(g,s.modifier,e),g===null?void 0:[a("text-decoration-color",g)]}}{let g=e.resolve(s.value.value,["--text-decoration-thickness"]);if(g)return s.modifier?void 0:[a("text-decoration-thickness",g)];if(O(s.value.value))return s.modifier?void 0:[a("text-decoration-thickness",`${s.value.value}px`)]}{let g=te(s,e,["--text-decoration-color","--color"]);if(g)return[a("text-decoration-color",g)]}}}),i("decoration",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-decoration-color","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:["0","1","2"],valueThemeKeys:["--text-decoration-thickness"]}]),n("animate",{themeKeys:["--animate"],handle:s=>[a("animation",s)],staticValues:{none:[a("animation","none")]}});{let s=["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,)"].join(" "),g=["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,)"].join(" "),v=()=>W([$("--tw-blur"),$("--tw-brightness"),$("--tw-contrast"),$("--tw-grayscale"),$("--tw-hue-rotate"),$("--tw-invert"),$("--tw-opacity"),$("--tw-saturate"),$("--tw-sepia"),$("--tw-drop-shadow"),$("--tw-drop-shadow-color"),$("--tw-drop-shadow-alpha","100%","<percentage>"),$("--tw-drop-shadow-size")]),C=()=>W([$("--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")]);r.functional("filter",b=>{if(!b.modifier){if(b.value===null)return[v(),a("filter",s)];if(b.value.kind==="arbitrary")return[a("filter",b.value.value)];switch(b.value.value){case"none":return[a("filter","none")]}}}),r.functional("backdrop-filter",b=>{if(!b.modifier){if(b.value===null)return[C(),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)];if(b.value.kind==="arbitrary")return[a("-webkit-backdrop-filter",b.value.value),a("backdrop-filter",b.value.value)];switch(b.value.value){case"none":return[a("-webkit-backdrop-filter","none"),a("backdrop-filter","none")]}}}),n("blur",{themeKeys:["--blur"],handle:b=>[v(),a("--tw-blur",`blur(${b})`),a("filter",s)],staticValues:{none:[v(),a("--tw-blur"," "),a("filter",s)]}}),n("backdrop-blur",{themeKeys:["--backdrop-blur","--blur"],handle:b=>[C(),a("--tw-backdrop-blur",`blur(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)],staticValues:{none:[C(),a("--tw-backdrop-blur"," "),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}}),n("brightness",{themeKeys:["--brightness"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[v(),a("--tw-brightness",`brightness(${b})`),a("filter",s)]}),n("backdrop-brightness",{themeKeys:["--backdrop-brightness","--brightness"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[C(),a("--tw-backdrop-brightness",`brightness(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("brightness",()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--brightness"]}]),i("backdrop-brightness",()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--backdrop-brightness","--brightness"]}]),n("contrast",{themeKeys:["--contrast"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[v(),a("--tw-contrast",`contrast(${b})`),a("filter",s)]}),n("backdrop-contrast",{themeKeys:["--backdrop-contrast","--contrast"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[C(),a("--tw-backdrop-contrast",`contrast(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("contrast",()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--contrast"]}]),i("backdrop-contrast",()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--backdrop-contrast","--contrast"]}]),n("grayscale",{themeKeys:["--grayscale"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),a("--tw-grayscale",`grayscale(${b})`),a("filter",s)]}),n("backdrop-grayscale",{themeKeys:["--backdrop-grayscale","--grayscale"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),a("--tw-backdrop-grayscale",`grayscale(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("grayscale",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--grayscale"],hasDefaultValue:!0}]),i("backdrop-grayscale",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-grayscale","--grayscale"],hasDefaultValue:!0}]),n("hue-rotate",{supportsNegative:!0,themeKeys:["--hue-rotate"],handleBareValue:({value:b})=>O(b)?`${b}deg`:null,handle:b=>[v(),a("--tw-hue-rotate",`hue-rotate(${b})`),a("filter",s)]}),n("backdrop-hue-rotate",{supportsNegative:!0,themeKeys:["--backdrop-hue-rotate","--hue-rotate"],handleBareValue:({value:b})=>O(b)?`${b}deg`:null,handle:b=>[C(),a("--tw-backdrop-hue-rotate",`hue-rotate(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("hue-rotate",()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--hue-rotate"]}]),i("backdrop-hue-rotate",()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--backdrop-hue-rotate","--hue-rotate"]}]),n("invert",{themeKeys:["--invert"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),a("--tw-invert",`invert(${b})`),a("filter",s)]}),n("backdrop-invert",{themeKeys:["--backdrop-invert","--invert"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),a("--tw-backdrop-invert",`invert(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("invert",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--invert"],hasDefaultValue:!0}]),i("backdrop-invert",()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-invert","--invert"],hasDefaultValue:!0}]),n("saturate",{themeKeys:["--saturate"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[v(),a("--tw-saturate",`saturate(${b})`),a("filter",s)]}),n("backdrop-saturate",{themeKeys:["--backdrop-saturate","--saturate"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,handle:b=>[C(),a("--tw-backdrop-saturate",`saturate(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("saturate",()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--saturate"]}]),i("backdrop-saturate",()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--backdrop-saturate","--saturate"]}]),n("sepia",{themeKeys:["--sepia"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[v(),a("--tw-sepia",`sepia(${b})`),a("filter",s)]}),n("backdrop-sepia",{themeKeys:["--backdrop-sepia","--sepia"],handleBareValue:({value:b})=>O(b)?`${b}%`:null,defaultValue:"100%",handle:b=>[C(),a("--tw-backdrop-sepia",`sepia(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("sepia",()=>[{values:["0","50","100"],valueThemeKeys:["--sepia"],hasDefaultValue:!0}]),i("backdrop-sepia",()=>[{values:["0","50","100"],valueThemeKeys:["--backdrop-sepia","--sepia"],hasDefaultValue:!0}]),t("drop-shadow-none",[v,["--tw-drop-shadow"," "],["filter",s]]),r.functional("drop-shadow",b=>{let T;if(b.modifier&&(b.modifier.kind==="arbitrary"?T=b.modifier.value:O(b.modifier.value)&&(T=`${b.modifier.value}%`)),!b.value){let D=e.get(["--drop-shadow"]),E=e.resolve(null,["--drop-shadow"]);return D===null||E===null?void 0:[v(),a("--tw-drop-shadow-alpha",T),...yt("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),a("--tw-drop-shadow",L(E,",").map(R=>`drop-shadow(${R})`).join(" ")),a("filter",s)]}if(b.value.kind==="arbitrary"){let D=b.value.value;switch(b.value.dataType??Q(D,["color"])){case"color":return D=X(D,b.modifier,e),D===null?void 0:[v(),a("--tw-drop-shadow-color",J(D,"var(--tw-drop-shadow-alpha)")),a("--tw-drop-shadow","var(--tw-drop-shadow-size)")];default:return b.modifier&&!T?void 0:[v(),a("--tw-drop-shadow-alpha",T),...yt("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),a("--tw-drop-shadow","var(--tw-drop-shadow-size)"),a("filter",s)]}}{let D=e.get([`--drop-shadow-${b.value.value}`]),E=e.resolve(b.value.value,["--drop-shadow"]);if(D&&E)return b.modifier&&!T?void 0:T?[v(),a("--tw-drop-shadow-alpha",T),...yt("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),a("--tw-drop-shadow","var(--tw-drop-shadow-size)"),a("filter",s)]:[v(),a("--tw-drop-shadow-alpha",T),...yt("--tw-drop-shadow-size",D,T,R=>`var(--tw-drop-shadow-color, ${R})`),a("--tw-drop-shadow",L(E,",").map(R=>`drop-shadow(${R})`).join(" ")),a("filter",s)]}{let D=te(b,e,["--drop-shadow-color","--color"]);if(D)return D==="inherit"?[v(),a("--tw-drop-shadow-color","inherit"),a("--tw-drop-shadow","var(--tw-drop-shadow-size)")]:[v(),a("--tw-drop-shadow-color",J(D,"var(--tw-drop-shadow-alpha)")),a("--tw-drop-shadow","var(--tw-drop-shadow-size)")]}}),i("drop-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--drop-shadow-color","--color"],modifiers:Array.from({length:21},(b,T)=>`${T*5}`)},{valueThemeKeys:["--drop-shadow"]}]),n("backdrop-opacity",{themeKeys:["--backdrop-opacity","--opacity"],handleBareValue:({value:b})=>wt(b)?`${b}%`:null,handle:b=>[C(),a("--tw-backdrop-opacity",`opacity(${b})`),a("-webkit-backdrop-filter",g),a("backdrop-filter",g)]}),i("backdrop-opacity",()=>[{values:Array.from({length:21},(b,T)=>`${T*5}`),valueThemeKeys:["--backdrop-opacity","--opacity"]}])}{let s=`var(--tw-ease, ${e.resolve(null,["--default-transition-timing-function"])??"ease"})`,g=`var(--tw-duration, ${e.resolve(null,["--default-transition-duration"])??"0s"})`;n("transition",{defaultValue:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events",themeKeys:["--transition-property"],handle:v=>[a("transition-property",v),a("transition-timing-function",s),a("transition-duration",g)],staticValues:{none:[a("transition-property","none")],all:[a("transition-property","all"),a("transition-timing-function",s),a("transition-duration",g)],colors:[a("transition-property","color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to"),a("transition-timing-function",s),a("transition-duration",g)],opacity:[a("transition-property","opacity"),a("transition-timing-function",s),a("transition-duration",g)],shadow:[a("transition-property","box-shadow"),a("transition-timing-function",s),a("transition-duration",g)],transform:[a("transition-property","transform, translate, scale, rotate"),a("transition-timing-function",s),a("transition-duration",g)]}}),t("transition-discrete",[["transition-behavior","allow-discrete"]]),t("transition-normal",[["transition-behavior","normal"]]),n("delay",{handleBareValue:({value:v})=>O(v)?`${v}ms`:null,themeKeys:["--transition-delay"],handle:v=>[a("transition-delay",v)]});{let v=()=>W([$("--tw-duration")]);t("duration-initial",[v,["--tw-duration","initial"]]),r.functional("duration",C=>{if(C.modifier||!C.value)return;let b=null;if(C.value.kind==="arbitrary"?b=C.value.value:(b=e.resolve(C.value.fraction??C.value.value,["--transition-duration"]),b===null&&O(C.value.value)&&(b=`${C.value.value}ms`)),b!==null)return[v(),a("--tw-duration",b),a("transition-duration",b)]})}i("delay",()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-delay"]}]),i("duration",()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-duration"]}])}{let s=()=>W([$("--tw-ease")]);n("ease",{themeKeys:["--ease"],handle:g=>[s(),a("--tw-ease",g),a("transition-timing-function",g)],staticValues:{initial:[s(),a("--tw-ease","initial")],linear:[s(),a("--tw-ease","linear"),a("transition-timing-function","linear")]}})}t("will-change-auto",[["will-change","auto"]]),t("will-change-scroll",[["will-change","scroll-position"]]),t("will-change-contents",[["will-change","contents"]]),t("will-change-transform",[["will-change","transform"]]),n("will-change",{themeKeys:[],handle:s=>[a("will-change",s)]}),t("content-none",[["--tw-content","none"],["content","none"]]),n("content",{themeKeys:["--content"],handle:s=>[W([$("--tw-content",'""')]),a("--tw-content",s),a("content","var(--tw-content)")]});{let s="var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)",g=()=>W([$("--tw-contain-size"),$("--tw-contain-layout"),$("--tw-contain-paint"),$("--tw-contain-style")]);t("contain-none",[["contain","none"]]),t("contain-content",[["contain","content"]]),t("contain-strict",[["contain","strict"]]),t("contain-size",[g,["--tw-contain-size","size"],["contain",s]]),t("contain-inline-size",[g,["--tw-contain-size","inline-size"],["contain",s]]),t("contain-layout",[g,["--tw-contain-layout","layout"],["contain",s]]),t("contain-paint",[g,["--tw-contain-paint","paint"],["contain",s]]),t("contain-style",[g,["--tw-contain-style","style"],["contain",s]]),n("contain",{themeKeys:[],handle:v=>[a("contain",v)]})}t("forced-color-adjust-none",[["forced-color-adjust","none"]]),t("forced-color-adjust-auto",[["forced-color-adjust","auto"]]),o("leading",["--leading","--spacing"],s=>[W([$("--tw-leading")]),a("--tw-leading",s),a("line-height",s)],{staticValues:{none:[W([$("--tw-leading")]),a("--tw-leading","1"),a("line-height","1")]}}),n("tracking",{supportsNegative:!0,themeKeys:["--tracking"],handle:s=>[W([$("--tw-tracking")]),a("--tw-tracking",s),a("letter-spacing",s)]}),t("antialiased",[["-webkit-font-smoothing","antialiased"],["-moz-osx-font-smoothing","grayscale"]]),t("subpixel-antialiased",[["-webkit-font-smoothing","auto"],["-moz-osx-font-smoothing","auto"]]);{let s="var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)",g=()=>W([$("--tw-ordinal"),$("--tw-slashed-zero"),$("--tw-numeric-figure"),$("--tw-numeric-spacing"),$("--tw-numeric-fraction")]);t("normal-nums",[["font-variant-numeric","normal"]]),t("ordinal",[g,["--tw-ordinal","ordinal"],["font-variant-numeric",s]]),t("slashed-zero",[g,["--tw-slashed-zero","slashed-zero"],["font-variant-numeric",s]]),t("lining-nums",[g,["--tw-numeric-figure","lining-nums"],["font-variant-numeric",s]]),t("oldstyle-nums",[g,["--tw-numeric-figure","oldstyle-nums"],["font-variant-numeric",s]]),t("proportional-nums",[g,["--tw-numeric-spacing","proportional-nums"],["font-variant-numeric",s]]),t("tabular-nums",[g,["--tw-numeric-spacing","tabular-nums"],["font-variant-numeric",s]]),t("diagonal-fractions",[g,["--tw-numeric-fraction","diagonal-fractions"],["font-variant-numeric",s]]),t("stacked-fractions",[g,["--tw-numeric-fraction","stacked-fractions"],["font-variant-numeric",s]])}{let s=()=>W([$("--tw-outline-style","solid")]);r.static("outline-hidden",()=>[a("--tw-outline-style","none"),a("outline-style","none"),F("@media","(forced-colors: active)",[a("outline","2px solid transparent"),a("outline-offset","2px")])]),t("outline-none",[["--tw-outline-style","none"],["outline-style","none"]]),t("outline-solid",[["--tw-outline-style","solid"],["outline-style","solid"]]),t("outline-dashed",[["--tw-outline-style","dashed"],["outline-style","dashed"]]),t("outline-dotted",[["--tw-outline-style","dotted"],["outline-style","dotted"]]),t("outline-double",[["--tw-outline-style","double"],["outline-style","double"]]),r.functional("outline",g=>{if(g.value===null){if(g.modifier)return;let v=e.get(["--default-outline-width"])??"1px";return[s(),a("outline-style","var(--tw-outline-style)"),a("outline-width",v)]}if(g.value.kind==="arbitrary"){let v=g.value.value;switch(g.value.dataType??Q(v,["color","length","number","percentage"])){case"length":case"number":case"percentage":return g.modifier?void 0:[s(),a("outline-style","var(--tw-outline-style)"),a("outline-width",v)];default:return v=X(v,g.modifier,e),v===null?void 0:[a("outline-color",v)]}}{let v=te(g,e,["--outline-color","--color"]);if(v)return[a("outline-color",v)]}{if(g.modifier)return;let v=e.resolve(g.value.value,["--outline-width"]);if(v)return[s(),a("outline-style","var(--tw-outline-style)"),a("outline-width",v)];if(O(g.value.value))return[s(),a("outline-style","var(--tw-outline-style)"),a("outline-width",`${g.value.value}px`)]}}),i("outline",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--outline-color","--color"],modifiers:Array.from({length:21},(g,v)=>`${v*5}`),hasDefaultValue:!0},{values:["0","1","2","4","8"],valueThemeKeys:["--outline-width"]}]),n("outline-offset",{supportsNegative:!0,themeKeys:["--outline-offset"],handleBareValue:({value:g})=>O(g)?`${g}px`:null,handle:g=>[a("outline-offset",g)]}),i("outline-offset",()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--outline-offset"]}])}n("opacity",{themeKeys:["--opacity"],handleBareValue:({value:s})=>wt(s)?`${s}%`:null,handle:s=>[a("opacity",s)]}),i("opacity",()=>[{values:Array.from({length:21},(s,g)=>`${g*5}`),valueThemeKeys:["--opacity"]}]),n("underline-offset",{supportsNegative:!0,themeKeys:["--text-underline-offset"],handleBareValue:({value:s})=>O(s)?`${s}px`:null,handle:s=>[a("text-underline-offset",s)],staticValues:{auto:[a("text-underline-offset","auto")]}}),i("underline-offset",()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--text-underline-offset"]}]),r.functional("text",s=>{if(s.value){if(s.value.kind==="arbitrary"){let g=s.value.value;switch(s.value.dataType??Q(g,["color","length","percentage","absolute-size","relative-size"])){case"size":case"length":case"percentage":case"absolute-size":case"relative-size":{if(s.modifier){let C=s.modifier.kind==="arbitrary"?s.modifier.value:e.resolve(s.modifier.value,["--leading"]);if(!C&&ne(s.modifier.value)){let b=e.resolve(null,["--spacing"]);if(!b)return null;C=`calc(${b} * ${s.modifier.value})`}return!C&&s.modifier.value==="none"&&(C="1"),C?[a("font-size",g),a("line-height",C)]:null}return[a("font-size",g)]}default:return g=X(g,s.modifier,e),g===null?void 0:[a("color",g)]}}{let g=te(s,e,["--text-color","--color"]);if(g)return[a("color",g)]}{let g=e.resolveWith(s.value.value,["--text"],["--line-height","--letter-spacing","--font-weight"]);if(g){let[v,C={}]=Array.isArray(g)?g:[g];if(s.modifier){let b=s.modifier.kind==="arbitrary"?s.modifier.value:e.resolve(s.modifier.value,["--leading"]);if(!b&&ne(s.modifier.value)){let D=e.resolve(null,["--spacing"]);if(!D)return null;b=`calc(${D} * ${s.modifier.value})`}if(!b&&s.modifier.value==="none"&&(b="1"),!b)return null;let T=[a("font-size",v)];return b&&T.push(a("line-height",b)),T}return typeof C=="string"?[a("font-size",v),a("line-height",C)]:[a("font-size",v),a("line-height",C["--line-height"]?`var(--tw-leading, ${C["--line-height"]})`:void 0),a("letter-spacing",C["--letter-spacing"]?`var(--tw-tracking, ${C["--letter-spacing"]})`:void 0),a("font-weight",C["--font-weight"]?`var(--tw-font-weight, ${C["--font-weight"]})`:void 0)]}}}}),i("text",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-color","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:[],valueThemeKeys:["--text"],modifiers:[],modifierThemeKeys:["--leading"]}]);let z=()=>W([$("--tw-text-shadow-color"),$("--tw-text-shadow-alpha","100%","<percentage>")]);t("text-shadow-initial",[z,["--tw-text-shadow-color","initial"]]),r.functional("text-shadow",s=>{let g;if(s.modifier&&(s.modifier.kind==="arbitrary"?g=s.modifier.value:O(s.modifier.value)&&(g=`${s.modifier.value}%`)),!s.value){let v=e.get(["--text-shadow"]);return v===null?void 0:[z(),a("--tw-text-shadow-alpha",g),...ye("text-shadow",v,g,C=>`var(--tw-text-shadow-color, ${C})`)]}if(s.value.kind==="arbitrary"){let v=s.value.value;switch(s.value.dataType??Q(v,["color"])){case"color":return v=X(v,s.modifier,e),v===null?void 0:[z(),a("--tw-text-shadow-color",J(v,"var(--tw-text-shadow-alpha)"))];default:return[z(),a("--tw-text-shadow-alpha",g),...ye("text-shadow",v,g,b=>`var(--tw-text-shadow-color, ${b})`)]}}switch(s.value.value){case"none":return s.modifier?void 0:[z(),a("text-shadow","none")];case"inherit":return s.modifier?void 0:[z(),a("--tw-text-shadow-color","inherit")]}{let v=e.get([`--text-shadow-${s.value.value}`]);if(v)return[z(),a("--tw-text-shadow-alpha",g),...ye("text-shadow",v,g,C=>`var(--tw-text-shadow-color, ${C})`)]}{let v=te(s,e,["--text-shadow-color","--color"]);if(v)return[z(),a("--tw-text-shadow-color",J(v,"var(--tw-text-shadow-alpha)"))]}}),i("text-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-shadow-color","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:["none"]},{valueThemeKeys:["--text-shadow"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`),hasDefaultValue:e.get(["--text-shadow"])!==null}]);{let b=function(E){return`var(--tw-ring-inset,) 0 0 0 calc(${E} + var(--tw-ring-offset-width)) var(--tw-ring-color, ${C})`},T=function(E){return`inset 0 0 0 ${E} var(--tw-inset-ring-color, currentcolor)`};var ae=b,le=T;let s=["var(--tw-inset-shadow)","var(--tw-inset-ring-shadow)","var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow)"].join(", "),g="0 0 #0000",v=()=>W([$("--tw-shadow",g),$("--tw-shadow-color"),$("--tw-shadow-alpha","100%","<percentage>"),$("--tw-inset-shadow",g),$("--tw-inset-shadow-color"),$("--tw-inset-shadow-alpha","100%","<percentage>"),$("--tw-ring-color"),$("--tw-ring-shadow",g),$("--tw-inset-ring-color"),$("--tw-inset-ring-shadow",g),$("--tw-ring-inset"),$("--tw-ring-offset-width","0px","<length>"),$("--tw-ring-offset-color","#fff"),$("--tw-ring-offset-shadow",g)]);t("shadow-initial",[v,["--tw-shadow-color","initial"]]),r.functional("shadow",E=>{let R;if(E.modifier&&(E.modifier.kind==="arbitrary"?R=E.modifier.value:O(E.modifier.value)&&(R=`${E.modifier.value}%`)),!E.value){let j=e.get(["--shadow"]);return j===null?void 0:[v(),a("--tw-shadow-alpha",R),...ye("--tw-shadow",j,R,pe=>`var(--tw-shadow-color, ${pe})`),a("box-shadow",s)]}if(E.value.kind==="arbitrary"){let j=E.value.value;switch(E.value.dataType??Q(j,["color"])){case"color":return j=X(j,E.modifier,e),j===null?void 0:[v(),a("--tw-shadow-color",J(j,"var(--tw-shadow-alpha)"))];default:return[v(),a("--tw-shadow-alpha",R),...ye("--tw-shadow",j,R,Dt=>`var(--tw-shadow-color, ${Dt})`),a("box-shadow",s)]}}switch(E.value.value){case"none":return E.modifier?void 0:[v(),a("--tw-shadow",g),a("box-shadow",s)];case"inherit":return E.modifier?void 0:[v(),a("--tw-shadow-color","inherit")]}{let j=e.get([`--shadow-${E.value.value}`]);if(j)return[v(),a("--tw-shadow-alpha",R),...ye("--tw-shadow",j,R,pe=>`var(--tw-shadow-color, ${pe})`),a("box-shadow",s)]}{let j=te(E,e,["--box-shadow-color","--color"]);if(j)return[v(),a("--tw-shadow-color",J(j,"var(--tw-shadow-alpha)"))]}}),i("shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`)},{values:["none"]},{valueThemeKeys:["--shadow"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`),hasDefaultValue:e.get(["--shadow"])!==null}]),t("inset-shadow-initial",[v,["--tw-inset-shadow-color","initial"]]),r.functional("inset-shadow",E=>{let R;if(E.modifier&&(E.modifier.kind==="arbitrary"?R=E.modifier.value:O(E.modifier.value)&&(R=`${E.modifier.value}%`)),!E.value){let j=e.get(["--inset-shadow"]);return j===null?void 0:[v(),a("--tw-inset-shadow-alpha",R),...ye("--tw-inset-shadow",j,R,pe=>`var(--tw-inset-shadow-color, ${pe})`),a("box-shadow",s)]}if(E.value.kind==="arbitrary"){let j=E.value.value;switch(E.value.dataType??Q(j,["color"])){case"color":return j=X(j,E.modifier,e),j===null?void 0:[v(),a("--tw-inset-shadow-color",J(j,"var(--tw-inset-shadow-alpha)"))];default:return[v(),a("--tw-inset-shadow-alpha",R),...ye("--tw-inset-shadow",j,R,Dt=>`var(--tw-inset-shadow-color, ${Dt})`,"inset "),a("box-shadow",s)]}}switch(E.value.value){case"none":return E.modifier?void 0:[v(),a("--tw-inset-shadow",g),a("box-shadow",s)];case"inherit":return E.modifier?void 0:[v(),a("--tw-inset-shadow-color","inherit")]}{let j=e.get([`--inset-shadow-${E.value.value}`]);if(j)return[v(),a("--tw-inset-shadow-alpha",R),...ye("--tw-inset-shadow",j,R,pe=>`var(--tw-inset-shadow-color, ${pe})`),a("box-shadow",s)]}{let j=te(E,e,["--box-shadow-color","--color"]);if(j)return[v(),a("--tw-inset-shadow-color",J(j,"var(--tw-inset-shadow-alpha)"))]}}),i("inset-shadow",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`)},{values:["none"]},{valueThemeKeys:["--inset-shadow"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`),hasDefaultValue:e.get(["--inset-shadow"])!==null}]),t("ring-inset",[v,["--tw-ring-inset","inset"]]);let C=e.get(["--default-ring-color"])??"currentcolor";r.functional("ring",E=>{if(!E.value){if(E.modifier)return;let R=e.get(["--default-ring-width"])??"1px";return[v(),a("--tw-ring-shadow",b(R)),a("box-shadow",s)]}if(E.value.kind==="arbitrary"){let R=E.value.value;switch(E.value.dataType??Q(R,["color","length"])){case"length":return E.modifier?void 0:[v(),a("--tw-ring-shadow",b(R)),a("box-shadow",s)];default:return R=X(R,E.modifier,e),R===null?void 0:[a("--tw-ring-color",R)]}}{let R=te(E,e,["--ring-color","--color"]);if(R)return[a("--tw-ring-color",R)]}{if(E.modifier)return;let R=e.resolve(E.value.value,["--ring-width"]);if(R===null&&O(E.value.value)&&(R=`${E.value.value}px`),R)return[v(),a("--tw-ring-shadow",b(R)),a("box-shadow",s)]}}),i("ring",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}]),r.functional("inset-ring",E=>{if(!E.value)return E.modifier?void 0:[v(),a("--tw-inset-ring-shadow",T("1px")),a("box-shadow",s)];if(E.value.kind==="arbitrary"){let R=E.value.value;switch(E.value.dataType??Q(R,["color","length"])){case"length":return E.modifier?void 0:[v(),a("--tw-inset-ring-shadow",T(R)),a("box-shadow",s)];default:return R=X(R,E.modifier,e),R===null?void 0:[a("--tw-inset-ring-color",R)]}}{let R=te(E,e,["--ring-color","--color"]);if(R)return[a("--tw-inset-ring-color",R)]}{if(E.modifier)return;let R=e.resolve(E.value.value,["--ring-width"]);if(R===null&&O(E.value.value)&&(R=`${E.value.value}px`),R)return[v(),a("--tw-inset-ring-shadow",T(R)),a("box-shadow",s)]}}),i("inset-ring",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},(E,R)=>`${R*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}]);let D="var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)";r.functional("ring-offset",E=>{if(E.value){if(E.value.kind==="arbitrary"){let R=E.value.value;switch(E.value.dataType??Q(R,["color","length"])){case"length":return E.modifier?void 0:[a("--tw-ring-offset-width",R),a("--tw-ring-offset-shadow",D)];default:return R=X(R,E.modifier,e),R===null?void 0:[a("--tw-ring-offset-color",R)]}}{let R=e.resolve(E.value.value,["--ring-offset-width"]);if(R)return E.modifier?void 0:[a("--tw-ring-offset-width",R),a("--tw-ring-offset-shadow",D)];if(O(E.value.value))return E.modifier?void 0:[a("--tw-ring-offset-width",`${E.value.value}px`),a("--tw-ring-offset-shadow",D)]}{let R=te(E,e,["--ring-offset-color","--color"]);if(R)return[a("--tw-ring-offset-color",R)]}}})}return i("ring-offset",()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-offset-color","--color"],modifiers:Array.from({length:21},(s,g)=>`${g*5}`)},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-offset-width"]}]),r.functional("@container",s=>{let g=null;if(s.value===null?g="inline-size":s.value.kind==="arbitrary"?g=s.value.value:s.value.kind==="named"&&s.value.value==="normal"?g="normal":!1,g!==null)return s.modifier?[a("container-type",g),a("container-name",s.modifier.value)]:[a("container-type",g)]}),i("@container",()=>[{values:["normal"],valueThemeKeys:[],hasDefaultValue:!0}]),r}var Xt=["number","integer","ratio","percentage"];function Jr(e){let r=e.params;return so.test(r)?i=>{let t={"--value":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set},"--modifier":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set}};_(e.nodes,n=>{if(n.kind!=="declaration"||!n.value||!n.value.includes("--value(")&&!n.value.includes("--modifier("))return;let l=B(n.value);_(l,o=>{if(o.kind!=="function")return;if(o.value==="--spacing"&&!(t["--modifier"].usedSpacingNumber&&t["--value"].usedSpacingNumber))return _(o.nodes,u=>{if(u.kind!=="function"||u.value!=="--value"&&u.value!=="--modifier")return;let c=u.value;for(let m of u.nodes)if(m.kind==="word"){if(m.value==="integer")t[c].usedSpacingInteger||=!0;else if(m.value==="number"&&(t[c].usedSpacingNumber||=!0,t["--modifier"].usedSpacingNumber&&t["--value"].usedSpacingNumber))return V.Stop}}),V.Continue;if(o.value!=="--value"&&o.value!=="--modifier")return;let f=L(H(o.nodes),",");for(let[u,c]of f.entries())c=c.replace(/\\\*/g,"*"),c=c.replace(/--(.*?)\s--(.*?)/g,"--$1-*--$2"),c=c.replace(/\s+/g,""),c=c.replace(/(-\*){2,}/g,"-*"),c[0]==="-"&&c[1]==="-"&&!c.includes("-*")&&(c+="-*"),f[u]=c;o.nodes=B(f.join(","));for(let u of o.nodes)if(u.kind==="word"&&(u.value[0]==='"'||u.value[0]==="'")&&u.value[0]===u.value[u.value.length-1]){let c=u.value.slice(1,-1);t[o.value].literals.add(c)}else if(u.kind==="word"&&u.value[0]==="-"&&u.value[1]==="-"){let c=u.value.replace(/-\*.*$/g,"");t[o.value].themeKeys.add(c)}else if(u.kind==="word"&&!(u.value[0]==="["&&u.value[u.value.length-1]==="]")&&!Xt.includes(u.value)){console.warn(`Unsupported bare value data type: "${u.value}".
-Only valid data types are: ${Xt.map(w=>`"${w}"`).join(", ")}.
-`);let c=u.value,m=structuredClone(o),d="\xB6";_(m.nodes,w=>{if(w.kind==="word"&&w.value===c)return V.ReplaceSkip({kind:"word",value:d})});let p="^".repeat(H([u]).length),k=H([m]).indexOf(d),h=["```css",H([o])," ".repeat(k)+p,"```"].join(`
-`);console.warn(h)}}),n.value=H(l)}),i.utilities.functional(r.slice(0,-2),n=>{let l=ee(e),o=n.value,f=n.modifier;if(o===null)return;let u=!1,c=!1,m=!1,d=!1,p=new Map,k=!1;if(_([l],(h,w)=>{let x=w.parent;if(x?.kind!=="rule"&&x?.kind!=="at-rule"||h.kind!=="declaration"||!h.value)return;let S=!1,A=B(h.value);if(_(A,y=>{if(y.kind==="function"){if(y.value==="--value"){u=!0;let K=Gr(o,y,i);return K?(c=!0,K.ratio?k=!0:p.set(h,x),V.ReplaceSkip(K.nodes)):(u||=!1,S=!0,V.Stop)}else if(y.value==="--modifier"){if(f===null)return S=!0,V.Stop;m=!0;let K=Gr(f,y,i);return K?(d=!0,V.ReplaceSkip(K.nodes)):(m||=!1,S=!0,V.Stop)}}}),S)return V.ReplaceSkip([]);h.value=H(A)}),u&&!c||m&&!d||k&&d||f&&!k&&!d)return null;if(k)for(let[h,w]of p){let x=w.nodes.indexOf(h);x!==-1&&w.nodes.splice(x,1)}return l.nodes}),i.utilities.suggest(r.slice(0,-2),()=>{let n=[],l=[];for(let[o,{literals:f,usedSpacingNumber:u,usedSpacingInteger:c,themeKeys:m}]of[[n,t["--value"]],[l,t["--modifier"]]]){for(let d of f)o.push(d);if(u)o.push(...bt);else if(c)for(let d of bt)O(d)&&o.push(d);for(let d of i.theme.keysInNamespaces(m))o.push(d.replace(Zr,(p,k,h)=>`${k}.${h}`))}return[{values:n,modifiers:l}]})}:lo.test(r)?i=>{i.utilities.static(r,()=>e.nodes.map(ee))}:null}function Gr(e,r,i){for(let t of r.nodes){if(e.kind==="named"&&t.kind==="word"&&(t.value[0]==="'"||t.value[0]==='"')&&t.value[t.value.length-1]===t.value[0]&&t.value.slice(1,-1)===e.value)return{nodes:B(e.value)};if(e.kind==="named"&&t.kind==="word"&&t.value[0]==="-"&&t.value[1]==="-"){let n=t.value;if(n.endsWith("-*")){n=n.slice(0,-2);let l=i.theme.resolve(e.value,[n]);if(l)return{nodes:B(l)}}else{let l=n.split("-*");if(l.length<=1)continue;let o=[l.shift()],f=i.theme.resolveWith(e.value,o,l);if(f){let[,u={}]=f;{let c=u[l.pop()];if(c)return{nodes:B(c)}}}}}else if(e.kind==="named"&&t.kind==="word"){if(!Xt.includes(t.value))continue;let n=t.value==="ratio"&&"fraction"in e?e.fraction:e.value;if(!n)continue;let l=Q(n,[t.value]);if(l===null)continue;if(l==="ratio"){let[o,f]=L(n,"/");if(!O(o)||!O(f))continue}else{if(l==="number"&&!ne(n))continue;if(l==="percentage"&&!O(n.slice(0,-1)))continue}return{nodes:B(n),ratio:l==="ratio"}}else if(e.kind==="arbitrary"&&t.kind==="word"&&t.value[0]==="["&&t.value[t.value.length-1]==="]"){let n=t.value.slice(1,-1);if(n==="*")return{nodes:B(e.value)};if("dataType"in e&&e.dataType&&e.dataType!==n)continue;if("dataType"in e&&e.dataType)return{nodes:B(e.value)};if(Q(e.value,[n])!==null)return{nodes:B(e.value)}}}}function ye(e,r,i,t,n=""){let l=!1,o=nt(r,u=>i==null?t(u):u.startsWith("current")?t(J(u,i)):((u.startsWith("var(")||i.startsWith("var("))&&(l=!0),t(Hr(u,i))));function f(u){return n?L(u,",").map(c=>n+c).join(","):u}return l?[a(e,f(nt(r,t))),Z("@supports (color: lab(from red l a b))",[a(e,f(o))])]:[a(e,f(o))]}function yt(e,r,i,t,n=""){let l=!1,o=L(r,",").map(f=>nt(f,u=>i==null?t(u):u.startsWith("current")?t(J(u,i)):((u.startsWith("var(")||i.startsWith("var("))&&(l=!0),t(Hr(u,i))))).map(f=>`drop-shadow(${f})`).join(" ");return l?[a(e,n+L(r,",").map(f=>`drop-shadow(${nt(f,t)})`).join(" ")),Z("@supports (color: lab(from red l a b))",[a(e,n+o)])]:[a(e,n+o)]}var er={"--alpha":uo,"--spacing":co,"--theme":fo,theme:po};function uo(e,r,i,...t){let[n,l]=L(i,"/").map(o=>o.trim());if(!n||!l)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${n||"var(--my-color)"} / ${l||"50%"})\``);if(t.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${n||"var(--my-color)"} / ${l||"50%"})\``);return J(n,l)}function co(e,r,i,...t){if(!i)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(t.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${t.length+1}.`);let n=e.theme.resolve(null,["--spacing"]);if(!n)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${n} * ${i})`}function fo(e,r,i,...t){if(!i.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let n=!1;i.endsWith(" inline")&&(n=!0,i=i.slice(0,-7)),r.kind==="at-rule"&&(n=!0);let l=e.resolveThemeValue(i,n);if(!l){if(t.length>0)return t.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(t.length===0)return l;let o=t.join(", ");if(o==="initial")return l;if(l==="initial")return o;if(l.startsWith("var(")||l.startsWith("theme(")||l.startsWith("--theme(")){let f=B(l);return go(f,o),H(f)}return l}function po(e,r,i,...t){i=mo(i);let n=e.resolveThemeValue(i);if(!n&&t.length>0)return t.join(", ");if(!n)throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return n}var Xr=new RegExp(Object.keys(er).map(e=>`${e}\\(`).join("|"));function Fe(e,r){let i=0;return _(e,t=>{if(t.kind==="declaration"&&t.value&&Xr.test(t.value)){i|=8,t.value=ei(t.value,t,r);return}t.kind==="at-rule"&&(t.name==="@media"||t.name==="@custom-media"||t.name==="@container"||t.name==="@supports")&&Xr.test(t.params)&&(i|=8,t.params=ei(t.params,t,r))}),i}function ei(e,r,i){let t=B(e);return _(t,n=>{if(n.kind==="function"&&n.value in er){let l=L(H(n.nodes).trim(),",").map(f=>f.trim()),o=er[n.value](i,r,...l);return V.Replace(B(o))}}),H(t)}function mo(e){if(e[0]!=="'"&&e[0]!=='"')return e;let r="",i=e[0];for(let t=1;t<e.length-1;t++){let n=e[t],l=e[t+1];n==="\\"&&(l===i||l==="\\")?(r+=l,t++):r+=n}return r}function go(e,r){_(e,i=>{if(i.kind==="function"&&!(i.value!=="var"&&i.value!=="theme"&&i.value!=="--theme"))if(i.nodes.length===1)i.nodes.push({kind:"word",value:`, ${r}`});else{let t=i.nodes[i.nodes.length-1];t.kind==="word"&&t.value==="initial"&&(t.value=r)}})}function xt(e,r){let i=e.length,t=r.length,n=i<t?i:t;for(let l=0;l<n;l++){let o=e.charCodeAt(l),f=r.charCodeAt(l);if(o>=48&&o<=57&&f>=48&&f<=57){let u=l,c=l+1,m=l,d=l+1;for(o=e.charCodeAt(c);o>=48&&o<=57;)o=e.charCodeAt(++c);for(f=r.charCodeAt(d);f>=48&&f<=57;)f=r.charCodeAt(++d);let p=e.slice(u,c),k=r.slice(m,d),h=Number(p)-Number(k);if(h)return h;if(p<k)return-1;if(p>k)return 1;continue}if(o!==f)return o-f}return e.length-r.length}function ti(e){if(e[0]!=="["||e[e.length-1]!=="]")return null;let r=1,i=r,t=e.length-1;for(;We(e.charCodeAt(r));)r++;{for(i=r;r<t;r++){let m=e.charCodeAt(r);if(m===92){r++;continue}if(!(m>=65&&m<=90)&&!(m>=97&&m<=122)&&!(m>=48&&m<=57)&&!(m===45||m===95))break}if(i===r)return null}let n=e.slice(i,r);for(;We(e.charCodeAt(r));)r++;if(r===t)return{attribute:n,operator:null,quote:null,value:null,sensitivity:null};let l=null,o=e.charCodeAt(r);if(o===61)l="=",r++;else if((o===126||o===124||o===94||o===36||o===42)&&e.charCodeAt(r+1)===61)l=e[r]+"=",r+=2;else return null;for(;We(e.charCodeAt(r));)r++;if(r===t)return null;let f="",u=null;if(o=e.charCodeAt(r),o===39||o===34){u=e[r],r++,i=r;for(let m=r;m<t;m++){let d=e.charCodeAt(m);d===o?r=m+1:d===92&&m++}f=e.slice(i,r-1)}else{for(i=r;r<t&&!We(e.charCodeAt(r));)r++;f=e.slice(i,r)}for(;We(e.charCodeAt(r));)r++;if(r===t)return{attribute:n,operator:l,quote:u,value:f,sensitivity:null};let c=null;switch(e.charCodeAt(r)){case 105:case 73:{c="i",r++;break}case 115:case 83:{c="s",r++;break}default:return null}for(;We(e.charCodeAt(r));)r++;return r!==t?null:{attribute:n,operator:l,quote:u,value:f,sensitivity:c}}function We(e){switch(e){case 32:case 9:case 10:case 13:return!0;default:return!1}}function Be(e,r=null){return Array.isArray(e)&&e.length===2&&typeof e[1]=="object"&&typeof e[1]!==null?r?e[1][r]??null:e[0]:Array.isArray(e)&&r===null?e.join(", "):typeof e=="string"&&r===null?e:null}function ri(e,{theme:r},i){for(let t of i){let n=Ye([t]);n&&e.theme.clearNamespace(`--${n}`,4)}for(let[t,n]of vo(r)){if(typeof n!="string"&&typeof n!="number")continue;if(typeof n=="string"&&(n=n.replace(/<alpha-value>/g,"1")),t[0]==="opacity"&&(typeof n=="number"||typeof n=="string")){let o=typeof n=="string"?parseFloat(n):n;o>=0&&o<=1&&(n=o*100+"%")}let l=Ye(t);l&&e.theme.add(`--${l}`,""+n,7)}if(Object.hasOwn(r,"fontFamily")){let t=5;{let n=Be(r.fontFamily.sans);n&&e.theme.hasDefault("--font-sans")&&(e.theme.add("--default-font-family",n,t),e.theme.add("--default-font-feature-settings",Be(r.fontFamily.sans,"fontFeatureSettings")??"normal",t),e.theme.add("--default-font-variation-settings",Be(r.fontFamily.sans,"fontVariationSettings")??"normal",t))}{let n=Be(r.fontFamily.mono);n&&e.theme.hasDefault("--font-mono")&&(e.theme.add("--default-mono-font-family",n,t),e.theme.add("--default-mono-font-feature-settings",Be(r.fontFamily.mono,"fontFeatureSettings")??"normal",t),e.theme.add("--default-mono-font-variation-settings",Be(r.fontFamily.mono,"fontVariationSettings")??"normal",t))}}return r}function vo(e){let r=[];return ii(e,[],(i,t)=>{if(bo(i))return r.push([t,i]),1;if(xo(i)){r.push([t,i[0]]);for(let n of Reflect.ownKeys(i[1]))r.push([[...t,`-${n}`],i[1][n]]);return 1}if(Array.isArray(i)&&i.every(n=>typeof n=="string"))return t[0]==="fontSize"?(r.push([t,i[0]]),i.length>=2&&r.push([[...t,"-line-height"],i[1]])):r.push([t,i.join(", ")]),1}),r}var ko={borderWidth:"border-width",outlineWidth:"outline-width",ringColor:"ring-color",ringWidth:"ring-width",transitionDuration:"transition-duration",transitionTimingFunction:"transition-timing-function"},wo={animation:"animate",aspectRatio:"aspect",borderRadius:"radius",boxShadow:"shadow",colors:"color",containers:"container",fontFamily:"font",fontSize:"text",letterSpacing:"tracking",lineHeight:"leading",maxWidth:"container",screens:"breakpoint",transitionTimingFunction:"ease"},yo=/^[a-zA-Z0-9-_%/\.]+$/;function Ye(e){let r=ko[e[0]];if(r&&e[1]==="DEFAULT")return`default-${r}`;if(e[0]==="container")return null;for(let t of e)if(!yo.test(t))return null;let i=wo[e[0]];return i&&(e=e.slice(),e[0]=i),e.map((t,n,l)=>t==="1"&&n!==l.length-1?"":t).map((t,n)=>(t=t.replaceAll(".","_"),(n===0||t.startsWith("-")||t==="lineHeight")&&(t=t.replace(/([a-z])([A-Z])/g,(o,f,u)=>`${f}-${u.toLowerCase()}`)),t)).filter((t,n)=>t!=="DEFAULT"||n!==e.length-1).join("-")}function bo(e){return typeof e=="number"||typeof e=="string"}function xo(e){if(!Array.isArray(e)||e.length!==2||typeof e[0]!="string"&&typeof e[0]!="number"||e[1]===void 0||e[1]===null||typeof e[1]!="object")return!1;for(let r of Reflect.ownKeys(e[1]))if(typeof r!="string"||typeof e[1][r]!="string"&&typeof e[1][r]!="number")return!1;return!0}function ii(e,r=[],i){for(let t of Reflect.ownKeys(e)){let n=e[t];if(n==null)continue;let l=[...r,t],o=i(n,l)??0;if(o!==1){if(o===2)return 2;if(!(!Array.isArray(n)&&typeof n!="object")&&ii(n,l,i)===2)return 2}}}var Ao=/^(?<value>[-+]?(?:\d*\.)?\d+)(?<unit>[a-z]+|%)?$/i,_e=new U(e=>{let r=Ao.exec(e);if(!r)return null;let i=r.groups?.value;if(i===void 0)return null;let t=Number(i);if(Number.isNaN(t))return null;let n=r.groups?.unit;return n===void 0?[t,null]:[t,n]});function At(e,r=null){let i=!1,t=B(e);return _(t,{exit(n){if(n.kind==="word"&&n.value!=="0"){let l=Co(n.value,r);return l===null||l===n.value?void 0:(i=!0,V.ReplaceSkip(oe(l)))}else if(n.kind==="function"&&(n.value==="calc"||n.value==="")){if(n.nodes.length!==5)return;let l=_e.get(n.nodes[0].value),o=n.nodes[2].value,f=_e.get(n.nodes[4].value);if(o==="*"&&(l?.[0]===0&&l?.[1]===null||f?.[0]===0&&f?.[1]===null))return i=!0,V.ReplaceSkip(oe("0"));if(l===null||f===null)return;switch(o){case"*":{if(l[1]===f[1]||l[1]===null&&f[1]!==null||l[1]!==null&&f[1]===null)return i=!0,V.ReplaceSkip(oe(`${l[0]*f[0]}${l[1]??""}`));break}case"+":{if(l[1]===f[1])return i=!0,V.ReplaceSkip(oe(`${l[0]+f[0]}${l[1]??""}`));break}case"-":{if(l[1]===f[1])return i=!0,V.ReplaceSkip(oe(`${l[0]-f[0]}${l[1]??""}`));break}case"/":{if(f[0]!==0&&(l[1]===null&&f[1]===null||l[1]!==null&&f[1]===null))return i=!0,V.ReplaceSkip(oe(`${l[0]/f[0]}${l[1]??""}`));break}}}}}),i?H(t):e}function Co(e,r=null){let i=_e.get(e);if(i===null)return null;let[t,n]=i;if(n===null)return`${t}`;if(t===0&&je(e))return"0";switch(n.toLowerCase()){case"in":return`${t*96}px`;case"cm":return`${t*96/2.54}px`;case"mm":return`${t*96/2.54/10}px`;case"q":return`${t*96/2.54/10/4}px`;case"pc":return`${t*96/6}px`;case"pt":return`${t*96/72}px`;case"rem":return r!==null?`${t*r}px`:null;case"grad":return`${t*.9}deg`;case"rad":return`${t*180/Math.PI}deg`;case"turn":return`${t*360}deg`;case"ms":return`${t/1e3}s`;case"khz":return`${t*1e3}hz`;default:return`${t}${n}`}}function ni(e,r="top",i="right",t="bottom",n="left"){return si(`${e}-${r}`,`${e}-${i}`,`${e}-${t}`,`${e}-${n}`)}function si(e="top",r="right",i="bottom",t="left"){return{1:[[e,0],[r,0],[i,0],[t,0]],2:[[e,0],[r,1],[i,0],[t,1]],3:[[e,0],[r,1],[i,2],[t,1]],4:[[e,0],[r,1],[i,2],[t,3]]}}function Ie(e,r){return{1:[[e,0],[r,0]],2:[[e,0],[r,1]]}}var oi={inset:si(),margin:ni("margin"),padding:ni("padding"),gap:Ie("row-gap","column-gap")},ai={"inset-block":Ie("top","bottom"),"inset-inline":Ie("left","right"),"margin-block":Ie("margin-top","margin-bottom"),"margin-inline":Ie("margin-left","margin-right"),"padding-block":Ie("padding-top","padding-bottom"),"padding-inline":Ie("padding-left","padding-right")},li={"border-block":["border-bottom","border-top"],"border-block-color":["border-bottom-color","border-top-color"],"border-block-style":["border-bottom-style","border-top-style"],"border-block-width":["border-bottom-width","border-top-width"],"border-inline":["border-left","border-right"],"border-inline-color":["border-left-color","border-right-color"],"border-inline-style":["border-left-style","border-right-style"],"border-inline-width":["border-left-width","border-right-width"]};function ui(e,r){if(r&2){if(e.property in ai){let i=L(e.value," ");return ai[e.property][i.length]?.map(([t,n])=>a(t,i[n],e.important))}if(e.property in li)return li[e.property]?.map(i=>a(i,e.value,e.important))}if(e.property in oi){let i=L(e.value," ");return oi[e.property][i.length]?.map(([t,n])=>a(t,i[n],e.important))}return null}function So(e){return{kind:"combinator",value:e}}function $o(e,r){return{kind:"function",value:e,nodes:r}}function Se(e){return{kind:"selector",value:e}}function To(e){return{kind:"separator",value:e}}function Eo(e){return{kind:"value",value:e}}function me(e){let r="";for(let i of e)switch(i.kind){case"combinator":case"selector":case"separator":case"value":{r+=i.value;break}case"function":r+=i.value+"("+me(i.nodes)+")"}return r}var ci=92,No=93,fi=41,Vo=58,pi=44,Ro=34,Oo=46,di=62,mi=10,Po=35,gi=91,hi=40,vi=43,_o=39,ki=32,wi=9,yi=126,Io=38,Do=42;function De(e){e=e.replaceAll(`\r
-`,`
-`);let r=[],i=[],t=null,n="",l;for(let o=0;o<e.length;o++){let f=e.charCodeAt(o);switch(f){case pi:case di:case mi:case ki:case vi:case wi:case yi:{if(n.length>0){let p=Se(n);t?t.nodes.push(p):r.push(p),n=""}let u=o,c=o+1;for(;c<e.length&&(l=e.charCodeAt(c),!(l!==pi&&l!==di&&l!==mi&&l!==ki&&l!==vi&&l!==wi&&l!==yi));c++);o=c-1;let m=e.slice(u,c),d=m.trim()===","?To(m):So(m);t?t.nodes.push(d):r.push(d);break}case hi:{let u=$o(n,[]);if(n="",u.value!==":not"&&u.value!==":where"&&u.value!==":has"&&u.value!==":is"){let c=o+1,m=0;for(let p=o+1;p<e.length;p++){if(l=e.charCodeAt(p),l===hi){m++;continue}if(l===fi){if(m===0){o=p;break}m--}}let d=o;u.nodes.push(Eo(e.slice(c,d))),n="",o=d,t?t.nodes.push(u):r.push(u);break}t?t.nodes.push(u):r.push(u),i.push(u),t=u;break}case fi:{let u=i.pop();if(n.length>0){let c=Se(n);u.nodes.push(c),n=""}i.length>0?t=i[i.length-1]:t=null;break}case Oo:case Vo:case Po:{if(n.length>0){let u=Se(n);t?t.nodes.push(u):r.push(u)}n=e[o];break}case gi:{if(n.length>0){let m=Se(n);t?t.nodes.push(m):r.push(m)}n="";let u=o,c=0;for(let m=o+1;m<e.length;m++){if(l=e.charCodeAt(m),l===gi){c++;continue}if(l===No){if(c===0){o=m;break}c--}}n+=e.slice(u,o+1);break}case _o:case Ro:{let u=o;for(let c=o+1;c<e.length;c++)if(l=e.charCodeAt(c),l===ci)c+=1;else if(l===f){o=c;break}n+=e.slice(u,o+1);break}case Io:case Do:{if(n.length>0){let u=Se(n);t?t.nodes.push(u):r.push(u),n=""}t?t.nodes.push(Se(e[o])):r.push(Se(e[o]));break}case ci:{n+=e[o]+e[o+1],o+=1;break}default:n+=e[o]}}return n.length>0&&r.push(Se(n)),r}function ce(e,r){for(let i in e)delete e[i];return Object.assign(e,r)}function Ue(e){let r=[];for(let i of L(e,".")){if(!i.includes("[")){r.push(i);continue}let t=0;for(;;){let n=i.indexOf("[",t),l=i.indexOf("]",n);if(n===-1||l===-1)break;n>t&&r.push(i.slice(t,n)),r.push(i.slice(n+1,l)),t=l+1}t<=i.length-1&&r.push(i.slice(t))}return r}function tr(e,r){let i=e;return i.storage[Ci]??=Uo(),i.storage[Si]??=Ko(i),i.storage[$i]??=jo(),i.storage[Ti]??=Wo(),i.storage[Ei]??=Yo(),i.storage[ir]??=Qo(i),i.storage[$t]??=ea(i,r),i.storage[ge]??=pa(i),i.storage[nr]??=ma(),i.storage[Tt]??=ga(i),i.storage[or]??=ha(i),i.storage[Nt]??=va(i),i.storage[Ri]??=ka(i),i}var Ci=Symbol();function Uo(){return new U(e=>new U(r=>({rem:e,features:r})))}function Lo(e,r){let i=0;return r?.collapse&&(i|=1),r?.logicalToPhysical&&(i|=2),tr(e,r).storage[Ci].get(r?.rem??null).get(i)}var Si=Symbol();function Ko(e){return new U(r=>new U(i=>({features:i,designSystem:e,signatureOptions:r})))}function zo(e,r,i){let t=0;return i?.collapse&&(t|=1),tr(e).storage[Si].get(r).get(t)}function rr(e,r,i){let t=Lo(e,i),n=zo(e,t,i),l=tr(e),o=new Set,f=l.storage[$i].get(n);for(let u of r)o.add(f.get(u));return o.size<=1||!(n.features&1)?Array.from(o):Mo(n,Array.from(o))}function Mo(e,r){if(r.length<=1)return r;let i=e.designSystem,t=new U(f=>new U(u=>new Set)),n=e.designSystem.theme.prefix?`${e.designSystem.theme.prefix}:`:"";for(let f of r){let u=L(f,":"),c=u.pop(),m=c.endsWith("!");m&&(c=c.slice(0,-1));let d=u.length>0?`${u.join(":")}:`:"",p=m?"!":"";t.get(d).get(p).add(`${n}${c}`)}let l=new Set;for(let[f,u]of t.entries())for(let[c,m]of u.entries())for(let d of o(Array.from(m)))n&&d.startsWith(n)&&(d=d.slice(n.length)),l.add(`${f}${d}${c}`);return Array.from(l);function o(f){let u=e.signatureOptions,c=i.storage[Tt].get(u),m=i.storage[nr].get(u),d=f.map(S=>c.get(S));if(d.some(S=>S.has("line-height"))){let S=i.theme.keysInNamespaces(["--text"]);if(S.length>0){let A=new Set,y=new Set;for(let N of d)for(let P of N.get("line-height")){if(y.has(P))continue;y.add(P);let z=i.storage[$t]?.get(P)??null;if(z!==null)if(ne(z)){A.add(z);for(let I of S)c.get(`text-${I}/${z}`)}else{A.add(P);for(let I of S)c.get(`text-${I}/[${P}]`)}}let K=new Set;for(let N of d)for(let P of N.get("font-size"))if(!K.has(P)){K.add(P);for(let z of A)ne(z)?c.get(`text-[${P}]/${z}`):c.get(`text-[${P}]/[${z}]`)}}}let p=d.map(S=>{let A=null;for(let y of S.keys()){let K=new Set;for(let N of m.get(y).values())for(let P of N)K.add(P);if(A===null?A=K:A=Ai(A,K),A.size===0)return A}return A}),k=new U(S=>new Set([S]));for(let S=0;S<p.length;S++){let A=p[S];for(let y=S+1;y<p.length;y++){let K=p[y];for(let N of A)if(K.has(N)){k.get(S).add(y),k.get(y).add(S);break}}}if(k.size===0)return f;let h=new U(S=>S.split(",").map(Number));for(let S of k.values()){let A=Array.from(S).sort((y,K)=>y-K);h.get(A.join(","))}let w=new Set(f),x=new Set;for(let S of h.values())for(let A of ya(S)){if(A.some(N=>x.has(f[N])))continue;let y=A.flatMap(N=>p[N]).reduce(Ai),K=i.storage[ge].get(u).get(A.map(N=>f[N]).sort((N,P)=>N.localeCompare(P)).join(" "));for(let N of y)if(i.storage[ge].get(u).get(N)===K){for(let z of A)x.add(f[z]);w.add(N);break}}for(let S of x)w.delete(S);return Array.from(w)}}var $i=Symbol();function jo(){return new U(e=>{let r=e.designSystem,i=r.theme.prefix?`${r.theme.prefix}:`:"",t=r.storage[Ti].get(e),n=r.storage[Ei].get(e);return new U((l,o)=>{for(let f of r.parseCandidate(l)){let u=f.variants.slice().reverse().flatMap(d=>t.get(d)),c=f.important;if(c||u.length>0){let p=o.get(r.printCandidate({...f,variants:[],important:!1}));return r.theme.prefix!==null&&u.length>0&&(p=p.slice(i.length)),u.length>0&&(p=`${u.map(k=>r.printVariant(k)).join(":")}:${p}`),c&&(p+="!"),r.theme.prefix!==null&&u.length>0&&(p=`${i}${p}`),p}let m=n.get(l);if(m!==l)return m}return l})})}var Fo=[Zo,ua,ca,aa],Ti=Symbol();function Wo(){return new U(e=>new U(r=>{let i=[r];for(let t of Fo)for(let n of i.splice(0)){let l=t(Me(n),e);if(Array.isArray(l)){i.push(...l);continue}else i.push(l)}return i}))}var Bo=[Go,Ho,ta,ia,oa,la,sa,fa],Ei=Symbol();function Yo(){return new U(e=>{let r=e.designSystem;return new U(i=>{for(let t of r.parseCandidate(i)){let n=Lr(t);for(let o of Bo)n=o(n,e);let l=r.printCandidate(n);if(i!==l)return l}return i})})}var qo=["t","tr","r","br","b","bl","l","tl"];function Go(e){if(e.kind==="static"&&e.root.startsWith("bg-gradient-to-")){let r=e.root.slice(15);return qo.includes(r)&&(e.root=`bg-linear-to-${r}`),e}return e}function Ho(e,r){let i=r.designSystem.storage[ir];if(e.kind==="arbitrary"){let[t,n]=i(e.value,e.modifier===null?1:0);t!==e.value&&(e.value=t,n!==null&&(e.modifier=n))}else if(e.kind==="functional"&&e.value?.kind==="arbitrary"){let[t,n]=i(e.value.value,e.modifier===null?1:0);t!==e.value.value&&(e.value.value=t,n!==null&&(e.modifier=n))}return e}function Zo(e,r){let i=r.designSystem.storage[ir],t=Et(e);for(let[n]of t)if(n.kind==="arbitrary"){let[l]=i(n.selector,2);l!==n.selector&&(n.selector=l)}else if(n.kind==="functional"&&n.value?.kind==="arbitrary"){let[l]=i(n.value.value,2);l!==n.value.value&&(n.value.value=l)}return e}var ir=Symbol();function Qo(e){return r(e);function r(i){function t(f,u=0){let c=B(f);if(u&2)return[Ct(c,o),null];let m=0,d=0;if(_(c,h=>{h.kind==="function"&&h.value==="theme"&&(m+=1,_(h.nodes,w=>w.kind==="separator"&&w.value.includes(",")?V.Stop:w.kind==="word"&&w.value==="/"?(d+=1,V.Stop):V.Skip))}),m===0)return[f,null];if(d===0)return[Ct(c,l),null];if(d>1)return[Ct(c,o),null];let p=null;return[Ct(c,(h,w)=>{let x=L(h,"/").map(S=>S.trim());if(x.length>2)return null;if(c.length===1&&x.length===2&&u&1){let[S,A]=x;if(/^\d+%$/.test(A))p={kind:"named",value:A.slice(0,-1)};else if(/^0?\.\d+$/.test(A)){let y=Number(A)*100;p={kind:Number.isInteger(y)?"named":"arbitrary",value:y.toString()}}else p={kind:"arbitrary",value:A};h=S}return l(h,w)||o(h,w)}),p]}function n(f,u=!0){let c=`--${Ye(Ue(f))}`;return i.theme.get([c])?u&&i.theme.prefix?`--${i.theme.prefix}-${c.slice(2)}`:c:null}function l(f,u){let c=n(f);if(c)return u?`var(${c}, ${u})`:`var(${c})`;let m=Ue(f);if(m[0]==="spacing"&&i.theme.get(["--spacing"])){let d=m[1];return ne(d)?`--spacing(${d})`:null}return null}function o(f,u){let c=L(f,"/").map(p=>p.trim());f=c.shift();let m=n(f,!1);if(!m)return null;let d=c.length>0?`/${c.join("/")}`:"";return u?`--theme(${m}${d}, ${u})`:`--theme(${m}${d})`}return t}}function Ct(e,r){return _(e,(i,t)=>{if(i.kind==="function"&&i.value==="theme"){if(i.nodes.length<1)return;i.nodes[0].kind==="separator"&&i.nodes[0].value.trim()===""&&i.nodes.shift();let n=i.nodes[0];if(n.kind!=="word")return;let l=n.value,o=1;for(let c=o;c<i.nodes.length&&!i.nodes[c].value.includes(",");c++)l+=H([i.nodes[c]]),o=c+1;l=Jo(l);let f=i.nodes.slice(o+1),u=f.length>0?r(l,H(f)):r(l);if(u===null)return;if(t.parent){let c=t.parent.nodes.indexOf(i)-1;for(;c!==-1;){let m=t.parent.nodes[c];if(m.kind==="separator"&&m.value.trim()===""){c-=1;continue}/^[-+*/]$/.test(m.value.trim())&&(u=`(${u})`);break}}return V.Replace(B(u))}}),H(e)}function Jo(e){if(e[0]!=="'"&&e[0]!=='"')return e;let r="",i=e[0];for(let t=1;t<e.length-1;t++){let n=e[t],l=e[t+1];n==="\\"&&(l===i||l==="\\")?(r+=l,t++):r+=n}return r}function*Et(e){function*r(i,t=null){yield[i,t],i.kind==="compound"&&(yield*r(i.variant,i))}yield*r(e,null)}function be(e,r){return e.parseCandidate(e.theme.prefix&&!r.startsWith(`${e.theme.prefix}:`)?`${e.theme.prefix}:${r}`:r)}function Xo(e,r){let i=e.printCandidate(r);return e.theme.prefix&&i.startsWith(`${e.theme.prefix}:`)?i.slice(e.theme.prefix.length+1):i}var $t=Symbol();function ea(e,r){let i=e.resolveThemeValue("--spacing");if(i===void 0)return null;i=At(i,r?.rem??null);let t=_e.get(i);if(!t)return null;let[n,l]=t;return new U(o=>{if(n===0)return null;let f=_e.get(At(o,r?.rem??null));if(!f)return null;let[u,c]=f;return c!==l?null:u/n})}function ta(e,r){if(e.kind!=="arbitrary"&&!(e.kind==="functional"&&e.value?.kind==="arbitrary"))return e;let i=r.designSystem,t=i.storage[or].get(r.signatureOptions),n=i.storage[ge].get(r.signatureOptions),l=i.printCandidate(e),o=n.get(l);if(typeof o!="string")return e;for(let u of f(o,e)){let c=i.printCandidate(u);if(n.get(c)===o&&ra(i,e,u))return u}return e;function*f(u,c){let m=t.get(u);if(!(m.length>1)){if(m.length===0&&c.modifier){let d={...c,modifier:null},p=n.get(i.printCandidate(d));if(typeof p=="string")for(let k of f(p,d))yield Object.assign({},k,{modifier:c.modifier})}if(m.length===1)for(let d of be(i,m[0]))yield d;else if(m.length===0){let d=c.kind==="arbitrary"?c.value:c.value?.value??null;if(d===null)return;if(r.signatureOptions.rem!==null&&c.kind==="functional"&&c.value?.kind==="arbitrary"){let h=i.storage[$t]?.get(d)??null;h!==null&&ne(h)&&(yield Object.assign({},c,{value:{kind:"named",value:h,fraction:null}}))}let p=i.storage[$t]?.get(d)??null,k="";p!==null&&p<0&&(k="-",p=Math.abs(p));for(let h of Array.from(i.utilities.keys("functional")).sort((w,x)=>+(w[0]==="-")-+(x[0]==="-"))){k&&(h=`${k}${h}`);for(let w of be(i,`${h}-${d}`))yield w;if(c.modifier)for(let w of be(i,`${h}-${d}${c.modifier}`))yield w;if(p!==null){for(let w of be(i,`${h}-${p}`))yield w;if(c.modifier)for(let w of be(i,`${h}-${p}${it(c.modifier)}`))yield w}for(let w of be(i,`${h}-[${d}]`))yield w;if(c.modifier)for(let w of be(i,`${h}-[${d}]${it(c.modifier)}`))yield w}}}}}function ra(e,r,i){let t=null;if(r.kind==="functional"&&r.value?.kind==="arbitrary"&&r.value.value.includes("var(--")?t=r.value.value:r.kind==="arbitrary"&&r.value.includes("var(--")&&(t=r.value),t===null)return!0;let n=e.candidatesToCss([e.printCandidate(i)]).join(`
-`),l=!0;return _(B(t),o=>{if(o.kind==="function"&&o.value==="var"){let f=o.nodes[0].value;if(!new RegExp(`var\\(${f}[,)]\\s*`,"g").test(n)||n.includes(`${f}:`))return l=!1,V.Stop}}),l}function ia(e,r){if(e.kind!=="functional"||e.value?.kind!=="named")return e;let i=r.designSystem,t=i.storage[or].get(r.signatureOptions),n=i.storage[ge].get(r.signatureOptions),l=i.printCandidate(e),o=n.get(l);if(typeof o!="string")return e;for(let u of f(o,e)){let c=i.printCandidate(u);if(n.get(c)===o)return u}return e;function*f(u,c){let m=t.get(u);if(!(m.length>1)){if(m.length===0&&c.modifier){let d={...c,modifier:null},p=n.get(i.printCandidate(d));if(typeof p=="string")for(let k of f(p,d))yield Object.assign({},k,{modifier:c.modifier})}if(m.length===1)for(let d of be(i,m[0]))yield d}}}var na=new Map([["order-none","order-0"],["break-words","wrap-break-word"]]);function oa(e,r){let i=r.designSystem,t=i.storage[ge].get(r.signatureOptions),n=Xo(i,e),l=na.get(n)??null;if(l===null)return e;let o=t.get(n);if(typeof o!="string")return e;let f=t.get(l);if(typeof f!="string"||o!==f)return e;let[u]=be(i,l);return u}function aa(e,r){let i=r.designSystem,t=i.storage[Nt],n=i.storage[Ri],l=Et(e);for(let[o]of l){if(o.kind==="compound")continue;let f=i.printVariant(o),u=t.get(f);if(typeof u!="string")continue;let c=n.get(u);if(c.length!==1)continue;let m=c[0],d=i.parseVariant(m);d!==null&&ce(o,d)}return e}function la(e,r){let i=r.designSystem,t=i.storage[ge].get(r.signatureOptions);if(e.kind==="functional"&&e.value?.kind==="arbitrary"&&e.value.dataType!==null){let n=i.printCandidate({...e,value:{...e.value,dataType:null}});t.get(i.printCandidate(e))===t.get(n)&&(e.value.dataType=null)}return e}function sa(e,r){if(e.kind!=="functional"||e.value?.kind!=="arbitrary")return e;let i=r.designSystem,t=i.storage[ge].get(r.signatureOptions),n=t.get(i.printCandidate(e));if(n===null)return e;for(let l of Ni(e))if(t.get(i.printCandidate({...e,value:l}))===n)return e.value=l,e;return e}function ua(e){let r=Et(e);for(let[i]of r)if(i.kind==="functional"&&i.root==="data"&&i.value?.kind==="arbitrary"&&!i.value.value.includes("="))i.value={kind:"named",value:i.value.value};else if(i.kind==="functional"&&i.root==="aria"&&i.value?.kind==="arbitrary"&&(i.value.value.endsWith("=true")||i.value.value.endsWith('="true"')||i.value.value.endsWith("='true'"))){let[t,n]=L(i.value.value,"=");if(t[t.length-1]==="~"||t[t.length-1]==="|"||t[t.length-1]==="^"||t[t.length-1]==="$"||t[t.length-1]==="*")continue;i.value={kind:"named",value:i.value.value.slice(0,i.value.value.indexOf("="))}}else i.kind==="functional"&&i.root==="supports"&&i.value?.kind==="arbitrary"&&/^[a-z-][a-z0-9-]*$/i.test(i.value.value)&&(i.value={kind:"named",value:i.value.value});return e}function*Ni(e,r=e.value?.value??"",i=new Set){if(i.has(r))return;if(i.add(r),yield{kind:"named",value:r,fraction:null},r.endsWith("%")&&ne(r.slice(0,-1))&&(yield{kind:"named",value:r.slice(0,-1),fraction:null}),r.includes("/")){let[l,o]=r.split("/");O(l)&&O(o)&&(yield{kind:"named",value:l,fraction:`${l}/${o}`})}let t=new Set;for(let l of r.matchAll(/(\d+\/\d+)|(\d+\.?\d+)/g))t.add(l[0].trim());let n=Array.from(t).sort((l,o)=>l.length-o.length);for(let l of n)yield*Ni(e,l,i)}function xi(e){return!e.some(r=>r.kind==="separator"&&r.value.trim()===",")}function St(e){let r=e.value.trim();return e.kind==="selector"&&r[0]==="["&&r[r.length-1]==="]"}function ca(e,r){let i=[e],t=r.designSystem,n=t.storage[Nt],l=Et(e);for(let[o,f]of l)if(o.kind==="compound"&&(o.root==="has"||o.root==="not"||o.root==="in")&&o.modifier!==null&&"modifier"in o.variant&&(o.variant.modifier=o.modifier,o.modifier=null),o.kind==="arbitrary"){if(o.relative)continue;let u=De(o.selector.trim());if(!xi(u))continue;if(f===null&&u.length===3&&u[0].kind==="selector"&&u[0].value==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===">"&&u[2].kind==="selector"&&u[2].value==="*"){ce(o,t.parseVariant("*"));continue}if(f===null&&u.length===3&&u[0].kind==="selector"&&u[0].value==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&u[2].value==="*"){ce(o,t.parseVariant("**"));continue}if(f===null&&u.length===3&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&u[2].value==="&"){u.pop(),u.pop(),ce(o,t.parseVariant(`in-[${me(u)}]`));continue}if(f===null&&u[0].kind==="selector"&&(u[0].value==="@media"||u[0].value==="@supports")){let p=n.get(t.printVariant(o)),k=B(me(u)),h=!1;if(_(k,w=>{if(w.kind==="word"&&w.value==="not")return h=!0,V.Replace([])}),k=B(H(k)),_(k,w=>{w.kind==="separator"&&w.value!==" "&&w.value.trim()===""&&(w.value=" ")}),h){let w=t.parseVariant(`not-[${H(k)}]`);if(w===null)continue;let x=n.get(t.printVariant(w));if(p===x){ce(o,w);continue}}}let c=null;f===null&&u.length===3&&u[0].kind==="selector"&&u[0].value.trim()==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===">"&&u[2].kind==="selector"&&(St(u[2])||u[2].value[0]===":")&&(u=[u[2]],c=t.parseVariant("*")),f===null&&u.length===3&&u[0].kind==="selector"&&u[0].value.trim()==="&"&&u[1].kind==="combinator"&&u[1].value.trim()===""&&u[2].kind==="selector"&&(St(u[2])||u[2].value[0]===":")&&(u=[u[2]],c=t.parseVariant("**"));let m=u.filter(p=>!(p.kind==="selector"&&p.value.trim()==="&"));if(m.length!==1)continue;let d=m[0];if(d.kind==="function"&&d.value===":is"){if(!xi(d.nodes)||d.nodes.length!==1||!St(d.nodes[0]))continue;d=d.nodes[0]}if(d.kind==="function"&&d.value[0]===":"||d.kind==="selector"&&d.value[0]===":"){let p=d,k=!1;if(p.kind==="function"&&p.value===":not"){if(k=!0,p.nodes.length!==1||p.nodes[0].kind!=="selector"&&p.nodes[0].kind!=="function"||p.nodes[0].value[0]!==":")continue;p=p.nodes[0]}let h=(x=>{if(x===":nth-child"&&p.kind==="function"&&p.nodes.length===1&&p.nodes[0].kind==="value"&&p.nodes[0].value==="odd")return k?(k=!1,"even"):"odd";if(x===":nth-child"&&p.kind==="function"&&p.nodes.length===1&&p.nodes[0].kind==="value"&&p.nodes[0].value==="even")return k?(k=!1,"odd"):"even";for(let[S,A]of[[":nth-child","nth"],[":nth-last-child","nth-last"],[":nth-of-type","nth-of-type"],[":nth-last-of-type","nth-of-last-type"]])if(x===S&&p.kind==="function"&&p.nodes.length===1)return p.nodes.length===1&&p.nodes[0].kind==="value"&&O(p.nodes[0].value)?`${A}-${p.nodes[0].value}`:`${A}-[${me(p.nodes)}]`;if(k){let S=n.get(t.printVariant(o)),A=n.get(`not-[${x}]`);if(S===A)return`[&${x}]`}return null})(p.value);if(h===null){if(c)return ce(o,{kind:"arbitrary",selector:d.value,relative:!1}),[c,o];continue}k&&(h=`not-${h}`);let w=t.parseVariant(h);if(w===null)continue;ce(o,w)}else if(St(d)){let p=ti(d.value);if(p===null)continue;if(p.attribute.startsWith("data-")){let k=p.attribute.slice(5);ce(o,{kind:"functional",root:"data",modifier:null,value:p.value===null?{kind:"named",value:k}:{kind:"arbitrary",value:`${k}${p.operator}${p.quote??""}${p.value}${p.quote??""}${p.sensitivity?` ${p.sensitivity}`:""}`}})}else if(p.attribute.startsWith("aria-")){let k=p.attribute.slice(5);ce(o,{kind:"functional",root:"aria",modifier:null,value:p.value===null?{kind:"arbitrary",value:k}:p.operator==="="&&p.value==="true"&&p.sensitivity===null?{kind:"named",value:k}:{kind:"arbitrary",value:`${p.attribute}${p.operator}${p.quote??""}${p.value}${p.quote??""}${p.sensitivity?` ${p.sensitivity}`:""}`}})}else ce(o,{kind:"arbitrary",selector:d.value,relative:!1})}if(c)return[c,o]}return i}function fa(e,r){if(e.kind!=="functional"&&e.kind!=="arbitrary"||e.modifier===null)return e;let i=r.designSystem,t=i.storage[ge].get(r.signatureOptions),n=t.get(i.printCandidate(e)),l=e.modifier;if(n===t.get(i.printCandidate({...e,modifier:null})))return e.modifier=null,e;{let o={kind:"named",value:l.value.endsWith("%")?l.value.includes(".")?`${Number(l.value.slice(0,-1))}`:l.value.slice(0,-1):l.value,fraction:null};if(n===t.get(i.printCandidate({...e,modifier:o})))return e.modifier=o,e}{let o={kind:"named",value:`${parseFloat(l.value)*100}`,fraction:null};if(n===t.get(i.printCandidate({...e,modifier:o})))return e.modifier=o,e}return e}var ge=Symbol();function pa(e){return new U(r=>new U(i=>{try{i=e.theme.prefix&&!i.startsWith(e.theme.prefix)?`${e.theme.prefix}:${i}`:i;let t=[q(".x",[F("@apply",i)])];return wa(e,()=>{for(let l of e.parseCandidate(i))e.compileAstNodes(l,1);$e(t,e)}),Vi(e,t,r),ie(t)}catch{return Symbol()}}))}function Vi(e,r,i){let{rem:t}=i;return _(r,{enter(n,l){if(n.kind==="declaration"){if(n.value===void 0||n.property==="--tw-sort")return V.Replace([]);if(n.property.startsWith("--tw-")&&(l.parent?.nodes??[]).some(o=>o.kind==="declaration"&&n.value===o.value&&n.important===o.important&&!o.property.startsWith("--tw-")))return V.Replace([]);if(i.features&1){let o=ui(n,i.features);if(o)return V.Replace(o)}n.value.includes("var(")&&(n.value=da(n.value,e)),n.value=At(n.value,t),n.value=Ce(n.value)}else{if(n.kind==="context"||n.kind==="at-root")return V.Replace(n.nodes);if(n.kind==="comment")return V.Replace([]);if(n.kind==="at-rule"&&n.name==="@property")return V.Replace([])}},exit(n){if(n.kind==="rule"||n.kind==="at-rule"){if(n.nodes.length>1){let l=new Set;for(let o=n.nodes.length-1;o>=0;o--){let f=n.nodes[o];f.kind==="declaration"&&f.value!==void 0&&(l.has(f.property)&&n.nodes.splice(o,1),l.add(f.property))}}n.nodes.sort((l,o)=>l.kind!=="declaration"||o.kind!=="declaration"?0:l.property.localeCompare(o.property))}}}),r}function da(e,r){let i=!1,t=B(e),n=new Set;return _(t,l=>{if(l.kind!=="function"||l.value!=="var"||l.nodes.length!==1&&l.nodes.length<3)return;let o=l.nodes[0].value;r.theme.prefix&&o.startsWith(`--${r.theme.prefix}-`)&&(o=o.slice(`--${r.theme.prefix}-`.length));let f=r.resolveThemeValue(o);if(!n.has(o)&&(n.add(o),f!==void 0&&(l.nodes.length===1&&(i=!0,l.nodes.push(...B(`,${f}`))),l.nodes.length>=3))){let u=H(l.nodes),c=`${l.nodes[0].value},${f}`;if(u===c)return i=!0,V.Replace(B(f))}}),i?H(t):e}var nr=Symbol();function ma(){return new U(e=>new U(r=>new U(i=>new Set)))}var Tt=Symbol();function ga(e){return new U(r=>new U(i=>{let t=new U(l=>new Set);e.theme.prefix&&!i.startsWith(e.theme.prefix)&&(i=`${e.theme.prefix}:${i}`);let n=e.parseCandidate(i);return n.length===0||_(Vi(e,e.compileAstNodes(n[0]).map(l=>ee(l.node)),r),l=>{l.kind==="declaration"&&(t.get(l.property).add(l.value),e.storage[nr].get(r).get(l.property).get(l.value).add(i))}),t}))}var or=Symbol();function ha(e){return new U(r=>{let i=e.storage[ge].get(r),t=new U(()=>[]);for(let[n,l]of e.getClassList()){let o=i.get(n);if(typeof o=="string"){if(n[0]==="-"&&n.endsWith("-0")){let f=i.get(n.slice(1));if(typeof f=="string"&&o===f)continue}t.get(o).push(n),e.storage[Tt].get(r).get(n);for(let f of l.modifiers){if(ne(f))continue;let u=`${n}/${f}`,c=i.get(u);typeof c=="string"&&(t.get(c).push(u),e.storage[Tt].get(r).get(u))}}}return t})}var Nt=Symbol();function va(e){return new U(r=>{try{r=e.theme.prefix&&!r.startsWith(e.theme.prefix)?`${e.theme.prefix}:${r}`:r;let i=[q(".x",[F("@apply",`${r}:flex`)])];return $e(i,e),_(i,n=>{if(n.kind==="at-rule"&&n.params.includes(" "))n.params=n.params.replaceAll(" ","");else if(n.kind==="rule"){let l=De(n.selector),o=!1;_(l,f=>{if(f.kind==="separator"&&f.value!==" ")f.value=f.value.trim(),o=!0;else if(f.kind==="function"&&f.value===":is"){if(f.nodes.length===1)return o=!0,V.Replace(f.nodes);if(f.nodes.length===2&&f.nodes[0].kind==="selector"&&f.nodes[0].value==="*"&&f.nodes[1].kind==="selector"&&f.nodes[1].value[0]===":")return o=!0,V.Replace(f.nodes[1])}else f.kind==="function"&&f.value[0]===":"&&f.nodes[0]?.kind==="selector"&&f.nodes[0]?.value[0]===":"&&(o=!0,f.nodes.unshift({kind:"selector",value:"*"}))}),o&&(n.selector=me(l))}}),ie(i)}catch{return Symbol()}})}var Ri=Symbol();function ka(e){let r=e.storage[Nt],i=new U(()=>[]);for(let[t,n]of e.variants.entries())if(n.kind==="static"){let l=r.get(t);if(typeof l!="string")continue;i.get(l).push(t)}return i}function wa(e,r){let i=e.theme.values.get,t=new Set;e.theme.values.get=n=>{let l=i.call(e.theme.values,n);return l===void 0||l.options&1&&(t.add(l),l.options&=-2),l};try{return r()}finally{e.theme.values.get=i;for(let n of t)n.options|=1}}function*ya(e){let r=e.length,i=1n<<BigInt(r);for(let t=r;t>=2;t--){let n=(1n<<BigInt(t))-1n;for(;n<i;){let l=[];for(let u=0;u<r;u++)n>>BigInt(u)&1n&&l.push(e[u]);yield l;let o=n&-n,f=n+o;n=((f^n)>>2n)/o|f}}}function Ai(e,r){if(typeof e.intersection=="function")return e.intersection(r);if(e.size===0||r.size===0)return new Set;let i=new Set(e);for(let t of r)i.has(t)||i.delete(t);return i}var xa=/^\d+\/\d+$/;function Oi(e){let r=new U(n=>({name:n,utility:n,fraction:!1,modifiers:[]}));for(let n of e.utilities.keys("static")){if(e.utilities.getCompletions(n).length===0)continue;let o=r.get(n);o.fraction=!1,o.modifiers=[]}for(let n of e.utilities.keys("functional")){let l=e.utilities.getCompletions(n);for(let o of l)for(let f of o.values){let u=f!==null&&xa.test(f),c=f===null?n:`${n}-${f}`,m=r.get(c);if(m.utility=n,m.fraction||=u,m.modifiers.push(...o.modifiers),o.supportsNegative){let d=r.get(`-${c}`);d.utility=`-${n}`,d.fraction||=u,d.modifiers.push(...o.modifiers)}m.modifiers=Array.from(new Set(m.modifiers))}}if(r.size===0)return[];let i=Array.from(r.values());return i.sort((n,l)=>xt(n.name,l.name)),Aa(i)}function Aa(e){let r=[],i=null,t=new Map,n=new U(()=>[]);for(let o of e){let{utility:f,fraction:u}=o;i||(i={utility:f,items:[]},t.set(f,i)),f!==i.utility&&(r.push(i),i={utility:f,items:[]},t.set(f,i)),u?n.get(f).push(o):i.items.push(o)}i&&r[r.length-1]!==i&&r.push(i);for(let[o,f]of n){let u=t.get(o);u&&u.items.push(...f)}let l=[];for(let o of r)for(let f of o.items)l.push([f.name,{modifiers:f.modifiers}]);return l}function Pi(e){let r=[];for(let[t,n]of e.variants.entries()){let f=function({value:u,modifier:c}={}){let m=t;u&&(m+=l?`-${u}`:u),c&&(m+=`/${c}`);let d=e.parseVariant(m);if(!d)return[];let p=q(".__placeholder__",[]);if(qe(p,d,e.variants)===null)return[];let k=[];return _(p.nodes,{exit(h,w){if(h.kind!=="rule"&&h.kind!=="at-rule"||h.nodes.length>0)return;let x=w.path();x.push(h),x.sort((y,K)=>{let N=y.kind==="at-rule",P=K.kind==="at-rule";return N&&!P?-1:!N&&P?1:0});let S=x.flatMap(y=>y.kind==="rule"?y.selector==="&"?[]:[y.selector]:y.kind==="at-rule"?[`${y.name} ${y.params}`]:[]),A="";for(let y=S.length-1;y>=0;y--)A=A===""?S[y]:`${S[y]} { ${A} }`;k.push(A)}}),k};var i=f;if(n.kind==="arbitrary")continue;let l=t!=="@",o=e.variants.getCompletions(t);switch(n.kind){case"static":{r.push({name:t,values:o,isArbitrary:!1,hasDash:l,selectors:f});break}case"functional":{r.push({name:t,values:o,isArbitrary:!0,hasDash:l,selectors:f});break}case"compound":{r.push({name:t,values:o,isArbitrary:!0,hasDash:l,selectors:f});break}}}return r}function _i(e,r){let{astNodes:i,nodeSorting:t}=Te(Array.from(r),e),n=new Map(r.map(o=>[o,null])),l=0n;for(let o of i){let f=t.get(o)?.candidate;f&&n.set(f,n.get(f)??l++)}return r.map(o=>[o,n.get(o)??null])}var Vt=/^@?[a-z0-9][a-zA-Z0-9_-]*(?<![_-])$/;var ar=class{compareFns=new Map;variants=new Map;completions=new Map;groupOrder=null;lastOrder=0;static(r,i,{compounds:t,order:n}={}){this.set(r,{kind:"static",applyFn:i,compoundsWith:0,compounds:t??2,order:n})}fromAst(r,i,t){let n=[],l=!1;_(i,o=>{o.kind==="rule"?n.push(o.selector):o.kind==="at-rule"&&o.name==="@variant"?l=!0:o.kind==="at-rule"&&o.name!=="@slot"&&n.push(`${o.name} ${o.params}`)}),this.static(r,o=>{let f=i.map(ee);l&&ot(f,t),lr(f,o.nodes),o.nodes=f},{compounds:Le(n)})}functional(r,i,{compounds:t,order:n}={}){this.set(r,{kind:"functional",applyFn:i,compoundsWith:0,compounds:t??2,order:n})}compound(r,i,t,{compounds:n,order:l}={}){this.set(r,{kind:"compound",applyFn:t,compoundsWith:i,compounds:n??2,order:l})}group(r,i){this.groupOrder=this.nextOrder(),i&&this.compareFns.set(this.groupOrder,i),r(),this.groupOrder=null}has(r){return this.variants.has(r)}get(r){return this.variants.get(r)}kind(r){return this.variants.get(r)?.kind}compoundsWith(r,i){let t=this.variants.get(r),n=typeof i=="string"?this.variants.get(i):i.kind==="arbitrary"?{compounds:Le([i.selector])}:this.variants.get(i.root);return!(!t||!n||t.kind!=="compound"||n.compounds===0||t.compoundsWith===0||(t.compoundsWith&n.compounds)===0)}suggest(r,i){this.completions.set(r,i)}getCompletions(r){return this.completions.get(r)?.()??[]}compare(r,i){if(r===i)return 0;if(r===null)return-1;if(i===null)return 1;if(r.kind==="arbitrary"&&i.kind==="arbitrary")return r.selector<i.selector?-1:1;if(r.kind==="arbitrary")return 1;if(i.kind==="arbitrary")return-1;let t=this.variants.get(r.root).order,n=this.variants.get(i.root).order,l=t-n;if(l!==0)return l;if(r.kind==="compound"&&i.kind==="compound"){let c=this.compare(r.variant,i.variant);return c!==0?c:r.modifier&&i.modifier?r.modifier.value<i.modifier.value?-1:1:r.modifier?1:i.modifier?-1:0}let o=this.compareFns.get(t);if(o!==void 0)return o(r,i);if(r.root!==i.root)return r.root<i.root?-1:1;let f=r.value,u=i.value;return f===null?-1:u===null||f.kind==="arbitrary"&&u.kind!=="arbitrary"?1:f.kind!=="arbitrary"&&u.kind==="arbitrary"||f.value<u.value?-1:1}keys(){return this.variants.keys()}entries(){return this.variants.entries()}set(r,{kind:i,applyFn:t,compounds:n,compoundsWith:l,order:o}){let f=this.variants.get(r);f?Object.assign(f,{kind:i,applyFn:t,compounds:n}):(o===void 0&&(this.lastOrder=this.nextOrder(),o=this.lastOrder),this.variants.set(r,{kind:i,applyFn:t,order:o,compoundsWith:l,compounds:n}))}nextOrder(){return this.groupOrder??this.lastOrder+1}};function Le(e){let r=0;for(let i of e){if(i[0]==="@"){if(!i.startsWith("@media")&&!i.startsWith("@supports")&&!i.startsWith("@container"))return 0;r|=1;continue}if(i.includes("::"))return 0;r|=2}return r}function Di(e){let r=new ar;function i(c,m,{compounds:d}={}){d=d??Le(m),r.static(c,p=>{p.nodes=m.map(k=>Z(k,p.nodes))},{compounds:d})}i("*",[":is(& > *)"],{compounds:0}),i("**",[":is(& *)"],{compounds:0});function t(c,m){return m.map(d=>{d=d.trim();let p=L(d," ");return p[0]==="not"?p.slice(1).join(" "):c==="@container"?p[0][0]==="("?`not ${d}`:p[1]==="not"?`${p[0]} ${p.slice(2).join(" ")}`:`${p[0]} not ${p.slice(1).join(" ")}`:`not ${d}`})}let n=["@media","@supports","@container"];function l(c){for(let m of n){if(m!==c.name)continue;let d=L(c.params,",");return d.length>1?null:(d=t(c.name,d),F(c.name,d.join(", ")))}return null}function o(c){return c.includes("::")?null:`&:not(${L(c,",").map(d=>(d=d.replaceAll("&","*"),d)).join(", ")})`}r.compound("not",3,(c,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative||m.modifier)return null;let d=!1;if(_([c],(p,k)=>{if(p.kind!=="rule"&&p.kind!=="at-rule")return V.Continue;if(p.nodes.length>0)return V.Continue;let h=[],w=[],x=k.path();x.push(p);for(let A of x)A.kind==="at-rule"?h.push(A):A.kind==="rule"&&w.push(A);if(h.length>1)return V.Stop;if(w.length>1)return V.Stop;let S=[];for(let A of w){let y=o(A.selector);if(!y)return d=!1,V.Stop;S.push(q(y,[]))}for(let A of h){let y=l(A);if(!y)return d=!1,V.Stop;S.push(y)}return Object.assign(c,q("&",S)),d=!0,V.Skip}),c.kind==="rule"&&c.selector==="&"&&c.nodes.length===1&&Object.assign(c,c.nodes[0]),!d)return null}),r.suggest("not",()=>Array.from(r.keys()).filter(c=>r.compoundsWith("not",c))),r.compound("group",2,(c,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative)return null;let d=m.modifier?`:where(.${e.prefix?`${e.prefix}\\:`:""}group\\/${m.modifier.value})`:`:where(.${e.prefix?`${e.prefix}\\:`:""}group)`,p=!1;if(_([c],(k,h)=>{if(k.kind!=="rule")return V.Continue;for(let x of h.path())if(x.kind==="rule")return p=!1,V.Stop;let w=k.selector.replaceAll("&",d);L(w,",").length>1&&(w=`:is(${w})`),k.selector=`&:is(${w} *)`,p=!0}),!p)return null}),r.suggest("group",()=>Array.from(r.keys()).filter(c=>r.compoundsWith("group",c))),r.compound("peer",2,(c,m)=>{if(m.variant.kind==="arbitrary"&&m.variant.relative)return null;let d=m.modifier?`:where(.${e.prefix?`${e.prefix}\\:`:""}peer\\/${m.modifier.value})`:`:where(.${e.prefix?`${e.prefix}\\:`:""}peer)`,p=!1;if(_([c],(k,h)=>{if(k.kind!=="rule")return V.Continue;for(let x of h.path())if(x.kind==="rule")return p=!1,V.Stop;let w=k.selector.replaceAll("&",d);L(w,",").length>1&&(w=`:is(${w})`),k.selector=`&:is(${w} ~ *)`,p=!0}),!p)return null}),r.suggest("peer",()=>Array.from(r.keys()).filter(c=>r.compoundsWith("peer",c))),i("first-letter",["&::first-letter"]),i("first-line",["&::first-line"]),i("marker",["& *::marker","&::marker","& *::-webkit-details-marker","&::-webkit-details-marker"]),i("selection",["& *::selection","&::selection"]),i("file",["&::file-selector-button"]),i("placeholder",["&::placeholder"]),i("backdrop",["&::backdrop"]),i("details-content",["&::details-content"]);{let c=function(){return W([F("@property","--tw-content",[a("syntax",'"*"'),a("initial-value",'""'),a("inherits","false")])])};var f=c;r.static("before",m=>{m.nodes=[q("&::before",[c(),a("content","var(--tw-content)"),...m.nodes])]},{compounds:0}),r.static("after",m=>{m.nodes=[q("&::after",[c(),a("content","var(--tw-content)"),...m.nodes])]},{compounds:0})}i("first",["&:first-child"]),i("last",["&:last-child"]),i("only",["&:only-child"]),i("odd",["&:nth-child(odd)"]),i("even",["&:nth-child(even)"]),i("first-of-type",["&:first-of-type"]),i("last-of-type",["&:last-of-type"]),i("only-of-type",["&:only-of-type"]),i("visited",["&:visited"]),i("target",["&:target"]),i("open",["&:is([open], :popover-open, :open)"]),i("default",["&:default"]),i("checked",["&:checked"]),i("indeterminate",["&:indeterminate"]),i("placeholder-shown",["&:placeholder-shown"]),i("autofill",["&:autofill"]),i("optional",["&:optional"]),i("required",["&:required"]),i("valid",["&:valid"]),i("invalid",["&:invalid"]),i("user-valid",["&:user-valid"]),i("user-invalid",["&:user-invalid"]),i("in-range",["&:in-range"]),i("out-of-range",["&:out-of-range"]),i("read-only",["&:read-only"]),i("empty",["&:empty"]),i("focus-within",["&:focus-within"]),r.static("hover",c=>{c.nodes=[q("&:hover",[F("@media","(hover: hover)",c.nodes)])]}),i("focus",["&:focus"]),i("focus-visible",["&:focus-visible"]),i("active",["&:active"]),i("enabled",["&:enabled"]),i("disabled",["&:disabled"]),i("inert",["&:is([inert], [inert] *)"]),r.compound("in",2,(c,m)=>{if(m.modifier)return null;let d=!1;if(_([c],(p,k)=>{if(p.kind!=="rule")return V.Continue;for(let h of k.path())if(h.kind==="rule")return d=!1,V.Stop;p.selector=`:where(${p.selector.replaceAll("&","*")}) &`,d=!0}),!d)return null}),r.suggest("in",()=>Array.from(r.keys()).filter(c=>r.compoundsWith("in",c))),r.compound("has",2,(c,m)=>{if(m.modifier)return null;let d=!1;if(_([c],(p,k)=>{if(p.kind!=="rule")return V.Continue;for(let h of k.path())if(h.kind==="rule")return d=!1,V.Stop;p.selector=`&:has(${p.selector.replaceAll("&","*")})`,d=!0}),!d)return null}),r.suggest("has",()=>Array.from(r.keys()).filter(c=>r.compoundsWith("has",c))),r.functional("aria",(c,m)=>{if(!m.value||m.modifier)return null;m.value.kind==="arbitrary"?c.nodes=[q(`&[aria-${Ii(m.value.value)}]`,c.nodes)]:c.nodes=[q(`&[aria-${m.value.value}="true"]`,c.nodes)]}),r.suggest("aria",()=>["busy","checked","disabled","expanded","hidden","pressed","readonly","required","selected"]),r.functional("data",(c,m)=>{if(!m.value||m.modifier)return null;c.nodes=[q(`&[data-${Ii(m.value.value)}]`,c.nodes)]}),r.functional("nth",(c,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!O(m.value.value))return null;c.nodes=[q(`&:nth-child(${m.value.value})`,c.nodes)]}),r.functional("nth-last",(c,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!O(m.value.value))return null;c.nodes=[q(`&:nth-last-child(${m.value.value})`,c.nodes)]}),r.functional("nth-of-type",(c,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!O(m.value.value))return null;c.nodes=[q(`&:nth-of-type(${m.value.value})`,c.nodes)]}),r.functional("nth-last-of-type",(c,m)=>{if(!m.value||m.modifier||m.value.kind==="named"&&!O(m.value.value))return null;c.nodes=[q(`&:nth-last-of-type(${m.value.value})`,c.nodes)]}),r.functional("supports",(c,m)=>{if(!m.value||m.modifier)return null;let d=m.value.value;if(d===null)return null;if(/^[\w-]*\s*\(/.test(d)){let p=d.replace(/\b(and|or|not)\b/g," $1 ");c.nodes=[F("@supports",p,c.nodes)];return}d.includes(":")||(d=`${d}: var(--tw)`),(d[0]!=="("||d[d.length-1]!==")")&&(d=`(${d})`),c.nodes=[F("@supports",d,c.nodes)]},{compounds:1}),i("motion-safe",["@media (prefers-reduced-motion: no-preference)"]),i("motion-reduce",["@media (prefers-reduced-motion: reduce)"]),i("contrast-more",["@media (prefers-contrast: more)"]),i("contrast-less",["@media (prefers-contrast: less)"]);{let c=function(m,d,p,k){if(m===d)return 0;let h=k.get(m);if(h===null)return p==="asc"?-1:1;let w=k.get(d);return w===null?p==="asc"?1:-1:Oe(h,w,p)};var u=c;{let m=e.namespace("--breakpoint"),d=new U(p=>{switch(p.kind){case"static":return e.resolveValue(p.root,["--breakpoint"])??null;case"functional":{if(!p.value||p.modifier)return null;let k=null;return p.value.kind==="arbitrary"?k=p.value.value:p.value.kind==="named"&&(k=e.resolveValue(p.value.value,["--breakpoint"])),!k||k.includes("var(")?null:k}case"arbitrary":case"compound":return null}});r.group(()=>{r.functional("max",(p,k)=>{if(k.modifier)return null;let h=d.get(k);if(h===null)return null;p.nodes=[F("@media",`(width < ${h})`,p.nodes)]},{compounds:1})},(p,k)=>c(p,k,"desc",d)),r.suggest("max",()=>Array.from(m.keys()).filter(p=>p!==null)),r.group(()=>{for(let[p,k]of e.namespace("--breakpoint"))p!==null&&r.static(p,h=>{h.nodes=[F("@media",`(width >= ${k})`,h.nodes)]},{compounds:1});r.functional("min",(p,k)=>{if(k.modifier)return null;let h=d.get(k);if(h===null)return null;p.nodes=[F("@media",`(width >= ${h})`,p.nodes)]},{compounds:1})},(p,k)=>c(p,k,"asc",d)),r.suggest("min",()=>Array.from(m.keys()).filter(p=>p!==null))}{let m=e.namespace("--container"),d=new U(p=>{switch(p.kind){case"functional":{if(p.value===null)return null;let k=null;return p.value.kind==="arbitrary"?k=p.value.value:p.value.kind==="named"&&(k=e.resolveValue(p.value.value,["--container"])),!k||k.includes("var(")?null:k}case"static":case"arbitrary":case"compound":return null}});r.group(()=>{r.functional("@max",(p,k)=>{let h=d.get(k);if(h===null)return null;p.nodes=[F("@container",k.modifier?`${k.modifier.value} (width < ${h})`:`(width < ${h})`,p.nodes)]},{compounds:1})},(p,k)=>c(p,k,"desc",d)),r.suggest("@max",()=>Array.from(m.keys()).filter(p=>p!==null)),r.group(()=>{r.functional("@",(p,k)=>{let h=d.get(k);if(h===null)return null;p.nodes=[F("@container",k.modifier?`${k.modifier.value} (width >= ${h})`:`(width >= ${h})`,p.nodes)]},{compounds:1}),r.functional("@min",(p,k)=>{let h=d.get(k);if(h===null)return null;p.nodes=[F("@container",k.modifier?`${k.modifier.value} (width >= ${h})`:`(width >= ${h})`,p.nodes)]},{compounds:1})},(p,k)=>c(p,k,"asc",d)),r.suggest("@min",()=>Array.from(m.keys()).filter(p=>p!==null)),r.suggest("@",()=>Array.from(m.keys()).filter(p=>p!==null))}}return i("portrait",["@media (orientation: portrait)"]),i("landscape",["@media (orientation: landscape)"]),i("ltr",['&:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *)']),i("rtl",['&:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)']),i("dark",["@media (prefers-color-scheme: dark)"]),i("starting",["@starting-style"]),i("print",["@media print"]),i("forced-colors",["@media (forced-colors: active)"]),i("inverted-colors",["@media (inverted-colors: inverted)"]),i("pointer-none",["@media (pointer: none)"]),i("pointer-coarse",["@media (pointer: coarse)"]),i("pointer-fine",["@media (pointer: fine)"]),i("any-pointer-none",["@media (any-pointer: none)"]),i("any-pointer-coarse",["@media (any-pointer: coarse)"]),i("any-pointer-fine",["@media (any-pointer: fine)"]),i("noscript",["@media (scripting: none)"]),r}function Ii(e){if(e.includes("=")){let[r,...i]=L(e,"="),t=i.join("=").trim();if(t[0]==="'"||t[0]==='"')return e;if(t.length>1){let n=t[t.length-1];if(t[t.length-2]===" "&&(n==="i"||n==="I"||n==="s"||n==="S"))return`${r}="${t.slice(0,-2)}" ${n}`}return`${r}="${t}"`}return e}function lr(e,r){_(e,i=>{if(i.kind==="at-rule"&&i.name==="@slot")return V.Replace(r);if(i.kind==="at-rule"&&(i.name==="@keyframes"||i.name==="@property"))return Object.assign(i,W([F(i.name,i.params,i.nodes)])),V.Skip})}function ot(e,r){let i=0;return _(e,t=>{if(t.kind!=="at-rule"||t.name!=="@variant")return;let n=q("&",t.nodes),l=t.params,o=r.parseVariant(l);if(o===null)throw new Error(`Cannot use \`@variant\` with unknown variant: ${l}`);if(qe(n,o,r.variants)===null)throw new Error(`Cannot use \`@variant\` with variant: ${l}`);return i|=32,V.Replace(n)}),i}function Ui(e,r){let i=Qr(e),t=Di(e),n=new U(d=>zr(d,m)),l=new U(d=>Array.from(Kr(d,m))),o=new U(d=>new U(p=>{let k=Li(p,m,d);try{Fe(k.map(({node:h})=>h),m),ot(k.map(({node:h})=>h),m)}catch{return[]}return k})),f=new U(d=>{for(let p of gt(d))e.markUsedVariable(p)});function u(d){let p=[];for(let k of d){let h=!0,{astNodes:w}=Te([k],m,{onInvalidCandidate(){h=!1}});r&&_(w,x=>(x.src??=r,V.Continue)),w=Re(w,m,0),p.push(h?w:[])}return p}function c(d){return u(d).map(p=>p.length>0?ie(p):null)}let m={theme:e,utilities:i,variants:t,invalidCandidates:new Set,important:!1,candidatesToCss:c,candidatesToAst:u,getClassOrder(d){return _i(this,d)},getClassList(){return Oi(this)},getVariants(){return Pi(this)},parseCandidate(d){return l.get(d)},parseVariant(d){return n.get(d)},compileAstNodes(d,p=1){return o.get(p).get(d)},printCandidate(d){return jr(m,d)},printVariant(d){return kt(d)},getVariantOrder(){let d=Array.from(n.values());d.sort((w,x)=>this.variants.compare(w,x));let p=new Map,k,h=0;for(let w of d)w!==null&&(k!==void 0&&this.variants.compare(k,w)!==0&&h++,p.set(w,h),k=w);return p},resolveThemeValue(d,p=!0){let k=d.lastIndexOf("/"),h=null;k!==-1&&(h=d.slice(k+1).trim(),d=d.slice(0,k).trim());let w=e.resolve(null,[d],p?1:0)??void 0;return h&&w?J(w,h):w},trackUsedVariables(d){f.get(d)},canonicalizeCandidates(d,p){return rr(this,d,p)},storage:{}};return m}var sr=["container-type","pointer-events","visibility","position","inset","inset-inline","inset-block","inset-inline-start","inset-inline-end","top","right","bottom","left","isolation","z-index","order","grid-column","grid-column-start","grid-column-end","grid-row","grid-row-start","grid-row-end","float","clear","--tw-container-component","margin","margin-inline","margin-block","margin-inline-start","margin-inline-end","margin-top","margin-right","margin-bottom","margin-left","box-sizing","display","field-sizing","aspect-ratio","height","max-height","min-height","width","max-width","min-width","flex","flex-shrink","flex-grow","flex-basis","table-layout","caption-side","border-collapse","border-spacing","transform-origin","translate","--tw-translate-x","--tw-translate-y","--tw-translate-z","scale","--tw-scale-x","--tw-scale-y","--tw-scale-z","rotate","--tw-rotate-x","--tw-rotate-y","--tw-rotate-z","--tw-skew-x","--tw-skew-y","transform","animation","cursor","touch-action","--tw-pan-x","--tw-pan-y","--tw-pinch-zoom","resize","scroll-snap-type","--tw-scroll-snap-strictness","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-margin-inline","scroll-margin-block","scroll-margin-inline-start","scroll-margin-inline-end","scroll-margin-top","scroll-margin-right","scroll-margin-bottom","scroll-margin-left","scroll-padding","scroll-padding-inline","scroll-padding-block","scroll-padding-inline-start","scroll-padding-inline-end","scroll-padding-top","scroll-padding-right","scroll-padding-bottom","scroll-padding-left","list-style-position","list-style-type","list-style-image","appearance","columns","break-before","break-inside","break-after","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-template-columns","grid-template-rows","flex-direction","flex-wrap","place-content","place-items","align-content","align-items","justify-content","justify-items","gap","column-gap","row-gap","--tw-space-x-reverse","--tw-space-y-reverse","divide-x-width","divide-y-width","--tw-divide-y-reverse","divide-style","divide-color","place-self","align-self","justify-self","overflow","overflow-x","overflow-y","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-behavior","border-radius","border-start-radius","border-end-radius","border-top-radius","border-right-radius","border-bottom-radius","border-left-radius","border-start-start-radius","border-start-end-radius","border-end-end-radius","border-end-start-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-width","border-inline-width","border-block-width","border-inline-start-width","border-inline-end-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-style","border-inline-style","border-block-style","border-inline-start-style","border-inline-end-style","border-top-style","border-right-style","border-bottom-style","border-left-style","border-color","border-inline-color","border-block-color","border-inline-start-color","border-inline-end-color","border-top-color","border-right-color","border-bottom-color","border-left-color","background-color","background-image","--tw-gradient-position","--tw-gradient-stops","--tw-gradient-via-stops","--tw-gradient-from","--tw-gradient-from-position","--tw-gradient-via","--tw-gradient-via-position","--tw-gradient-to","--tw-gradient-to-position","mask-image","--tw-mask-top","--tw-mask-top-from-color","--tw-mask-top-from-position","--tw-mask-top-to-color","--tw-mask-top-to-position","--tw-mask-right","--tw-mask-right-from-color","--tw-mask-right-from-position","--tw-mask-right-to-color","--tw-mask-right-to-position","--tw-mask-bottom","--tw-mask-bottom-from-color","--tw-mask-bottom-from-position","--tw-mask-bottom-to-color","--tw-mask-bottom-to-position","--tw-mask-left","--tw-mask-left-from-color","--tw-mask-left-from-position","--tw-mask-left-to-color","--tw-mask-left-to-position","--tw-mask-linear","--tw-mask-linear-position","--tw-mask-linear-from-color","--tw-mask-linear-from-position","--tw-mask-linear-to-color","--tw-mask-linear-to-position","--tw-mask-radial","--tw-mask-radial-shape","--tw-mask-radial-size","--tw-mask-radial-position","--tw-mask-radial-from-color","--tw-mask-radial-from-position","--tw-mask-radial-to-color","--tw-mask-radial-to-position","--tw-mask-conic","--tw-mask-conic-position","--tw-mask-conic-from-color","--tw-mask-conic-from-position","--tw-mask-conic-to-color","--tw-mask-conic-to-position","box-decoration-break","background-size","background-attachment","background-clip","background-position","background-repeat","background-origin","mask-composite","mask-mode","mask-type","mask-size","mask-clip","mask-position","mask-repeat","mask-origin","fill","stroke","stroke-width","object-fit","object-position","padding","padding-inline","padding-block","padding-inline-start","padding-inline-end","padding-top","padding-right","padding-bottom","padding-left","text-align","text-indent","vertical-align","font-family","font-size","line-height","font-weight","letter-spacing","text-wrap","overflow-wrap","word-break","text-overflow","hyphens","white-space","color","text-transform","font-style","font-stretch","font-variant-numeric","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","-webkit-font-smoothing","placeholder-color","caret-color","accent-color","color-scheme","opacity","background-blend-mode","mix-blend-mode","box-shadow","--tw-shadow","--tw-shadow-color","--tw-ring-shadow","--tw-ring-color","--tw-inset-shadow","--tw-inset-shadow-color","--tw-inset-ring-shadow","--tw-inset-ring-color","--tw-ring-offset-width","--tw-ring-offset-color","outline","outline-width","outline-offset","outline-color","--tw-blur","--tw-brightness","--tw-contrast","--tw-drop-shadow","--tw-grayscale","--tw-hue-rotate","--tw-invert","--tw-saturate","--tw-sepia","filter","--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","backdrop-filter","transition-property","transition-behavior","transition-delay","transition-duration","transition-timing-function","will-change","contain","content","forced-color-adjust"];function Te(e,r,{onInvalidCandidate:i,respectImportant:t}={}){let n=new Map,l=[],o=new Map;for(let c of e){if(r.invalidCandidates.has(c)){i?.(c);continue}let m=r.parseCandidate(c);if(m.length===0){i?.(c);continue}o.set(c,m)}let f=0;(t??!0)&&(f|=1);let u=r.getVariantOrder();for(let[c,m]of o){let d=!1;for(let p of m){let k=r.compileAstNodes(p,f);if(k.length!==0){d=!0;for(let{node:h,propertySort:w}of k){let x=0n;for(let S of p.variants)x|=1n<<BigInt(u.get(S));n.set(h,{properties:w,variants:x,candidate:c}),l.push(h)}}}d||i?.(c)}return l.sort((c,m)=>{let d=n.get(c),p=n.get(m);if(d.variants-p.variants!==0n)return Number(d.variants-p.variants);let k=0;for(;k<d.properties.order.length&&k<p.properties.order.length&&d.properties.order[k]===p.properties.order[k];)k+=1;return(d.properties.order[k]??1/0)-(p.properties.order[k]??1/0)||p.properties.count-d.properties.count||xt(d.candidate,p.candidate)}),{astNodes:l,nodeSorting:n}}function Li(e,r,i){let t=Ca(e,r);if(t.length===0)return[];let n=r.important&&!!(i&1),l=[],o=`.${xe(e.raw)}`;for(let f of t){let u=Sa(f);(e.important||n)&&zi(f);let c={kind:"rule",selector:o,nodes:f};for(let m of e.variants)if(qe(c,m,r.variants)===null)return[];l.push({node:c,propertySort:u})}return l}function qe(e,r,i,t=0){if(r.kind==="arbitrary"){if(r.relative&&t===0)return null;e.nodes=[Z(r.selector,e.nodes)];return}let{applyFn:n}=i.get(r.root);if(r.kind==="compound"){let o=F("@slot");if(qe(o,r.variant,i,t+1)===null||r.root==="not"&&o.nodes.length>1)return null;for(let u of o.nodes)if(u.kind!=="rule"&&u.kind!=="at-rule"||n(u,r)===null)return null;_(o.nodes,u=>{if((u.kind==="rule"||u.kind==="at-rule")&&u.nodes.length<=0)return u.nodes=e.nodes,V.Skip}),e.nodes=o.nodes;return}if(n(e,r)===null)return null}function Ki(e){let r=e.options?.types??[];return r.length>1&&r.includes("any")}function Ca(e,r){if(e.kind==="arbitrary"){let o=e.value;return e.modifier&&(o=X(o,e.modifier,r.theme)),o===null?[]:[[a(e.property,o)]]}let i=r.utilities.get(e.root)??[],t=[],n=i.filter(o=>!Ki(o));for(let o of n){if(o.kind!==e.kind)continue;let f=o.compileFn(e);if(f!==void 0){if(f===null)return t;t.push(f)}}if(t.length>0)return t;let l=i.filter(o=>Ki(o));for(let o of l){if(o.kind!==e.kind)continue;let f=o.compileFn(e);if(f!==void 0){if(f===null)return t;t.push(f)}}return t}function zi(e){for(let r of e)r.kind!=="at-root"&&(r.kind==="declaration"?r.important=!0:(r.kind==="rule"||r.kind==="at-rule")&&zi(r.nodes))}function Sa(e){let r=new Set,i=0,t=e.slice(),n=!1;for(;t.length>0;){let l=t.shift();if(l.kind==="declaration"){if(l.value===void 0||(i++,n))continue;if(l.property==="--tw-sort"){let f=sr.indexOf(l.value??"");if(f!==-1){r.add(f),n=!0;continue}}let o=sr.indexOf(l.property);o!==-1&&r.add(o)}else if(l.kind==="rule"||l.kind==="at-rule")for(let o of l.nodes)t.push(o)}return{order:Array.from(r).sort((l,o)=>l-o),count:i}}function $e(e,r){let i=0,t=Z("&",e),n=new Set,l=new U(()=>new Set),o=new U(()=>new Set);_([t],(d,p)=>{if(d.kind==="at-rule"){if(d.name==="@keyframes")return _(d.nodes,k=>{if(k.kind==="at-rule"&&k.name==="@apply")throw new Error("You cannot use `@apply` inside `@keyframes`.")}),V.Skip;if(d.name==="@utility"){let k=d.params.replace(/-\*$/,"");o.get(k).add(d),_(d.nodes,h=>{if(!(h.kind!=="at-rule"||h.name!=="@apply")){n.add(d);for(let w of Mi(h,r))l.get(d).add(w)}});return}if(d.name==="@apply"){if(p.parent===null)return;i|=1,n.add(p.parent);for(let k of Mi(d,r))for(let h of p.path())n.has(h)&&l.get(h).add(k)}}});let f=new Set,u=[],c=new Set;function m(d,p=[]){if(!f.has(d)){if(c.has(d)){let k=p[(p.indexOf(d)+1)%p.length];throw d.kind==="at-rule"&&d.name==="@utility"&&k.kind==="at-rule"&&k.name==="@utility"&&_(d.nodes,h=>{if(h.kind!=="at-rule"||h.name!=="@apply")return;let w=h.params.split(/\s+/g);for(let x of w)for(let S of r.parseCandidate(x))switch(S.kind){case"arbitrary":break;case"static":case"functional":if(k.params.replace(/-\*$/,"")===S.root)throw new Error(`You cannot \`@apply\` the \`${x}\` utility here because it creates a circular dependency.`);break;default:}}),new Error(`Circular dependency detected:
-
-${ie([d])}
-Relies on:
-
-${ie([k])}`)}c.add(d);for(let k of l.get(d))for(let h of o.get(k))p.push(d),m(h,p),p.pop();f.add(d),c.delete(d),u.push(d)}}for(let d of n)m(d);for(let d of u)"nodes"in d&&_(d.nodes,p=>{if(p.kind!=="at-rule"||p.name!=="@apply")return;let k=p.params.split(/(\s+)/g),h={},w=0;for(let[x,S]of k.entries())x%2===0&&(h[S]=w),w+=S.length;{let x=Object.keys(h),S=Te(x,r,{respectImportant:!1,onInvalidCandidate:N=>{if(r.theme.prefix&&!N.startsWith(r.theme.prefix))throw new Error(`Cannot apply unprefixed utility class \`${N}\`. Did you mean \`${r.theme.prefix}:${N}\`?`);if(r.invalidCandidates.has(N))throw new Error(`Cannot apply utility class \`${N}\` because it has been explicitly disabled: https://tailwindcss.com/docs/detecting-classes-in-source-files#explicitly-excluding-classes`);let P=L(N,":");if(P.length>1){let z=P.pop();if(r.candidatesToCss([z])[0]){let I=r.candidatesToCss(P.map(Y=>`${Y}:[--tw-variant-check:1]`)),M=P.filter((Y,G)=>I[G]===null);if(M.length>0){if(M.length===1)throw new Error(`Cannot apply utility class \`${N}\` because the ${M.map(Y=>`\`${Y}\``)} variant does not exist.`);{let Y=new Intl.ListFormat("en",{style:"long",type:"conjunction"});throw new Error(`Cannot apply utility class \`${N}\` because the ${Y.format(M.map(G=>`\`${G}\``))} variants do not exist.`)}}}}throw r.theme.size===0?new Error(`Cannot apply unknown utility class \`${N}\`. Are you using CSS modules or similar and missing \`@reference\`? https://tailwindcss.com/docs/functions-and-directives#reference-directive`):new Error(`Cannot apply unknown utility class \`${N}\``)}}),A=p.src,y=S.astNodes.map(N=>{let P=S.nodeSorting.get(N)?.candidate,z=P?h[P]:void 0;if(N=ee(N),!A||!P||z===void 0)return _([N],M=>{M.src=A}),N;let I=[A[0],A[1],A[2]];return I[1]+=7+z,I[2]=I[1]+P.length,_([N],M=>{M.src=I}),N}),K=[];for(let N of y)if(N.kind==="rule")for(let P of N.nodes)K.push(P);else K.push(N);return V.Replace(K)}});return i}function*Mi(e,r){for(let i of e.params.split(/\s+/g))for(let t of r.parseCandidate(i))switch(t.kind){case"arbitrary":break;case"static":case"functional":yield t.root;break;default:}}async function ur(e,r,i,t=0,n=!1){let l=0,o=[];return _(e,f=>{if(f.kind==="at-rule"&&(f.name==="@import"||f.name==="@reference")){let u=$a(B(f.params));if(u===null)return;f.name==="@reference"&&(u.media="reference"),l|=2;let{uri:c,layer:m,media:d,supports:p}=u;if(c.startsWith("data:")||c.startsWith("http://")||c.startsWith("https://"))return;let k=de({},[]);return o.push((async()=>{if(t>100)throw new Error(`Exceeded maximum recursion depth while resolving \`${c}\` in \`${r}\`)`);let h=await i(c,r),w=Ne(h.content,{from:n?h.path:void 0});await ur(w,h.base,i,t+1,n),k.nodes=Ta(f,[de({base:h.base},w)],m,d,p)})()),V.ReplaceSkip(k)}}),o.length>0&&await Promise.all(o),l}function $a(e){let r,i=null,t=null,n=null;for(let l=0;l<e.length;l++){let o=e[l];if(o.kind!=="separator"){if(o.kind==="word"&&!r){if(!o.value||o.value[0]!=='"'&&o.value[0]!=="'")return null;r=o.value.slice(1,-1);continue}if(o.kind==="function"&&o.value.toLowerCase()==="url"||!r)return null;if((o.kind==="word"||o.kind==="function")&&o.value.toLowerCase()==="layer"){if(i)return null;if(n)throw new Error("`layer(\u2026)` in an `@import` should come before any other functions or conditions");"nodes"in o?i=H(o.nodes):i="";continue}if(o.kind==="function"&&o.value.toLowerCase()==="supports"){if(n)return null;n=H(o.nodes);continue}t=H(e.slice(l));break}}return r?{uri:r,layer:i,media:t,supports:n}:null}function Ta(e,r,i,t,n){let l=r;if(i!==null){let o=F("@layer",i,l);o.src=e.src,l=[o]}if(t!==null){let o=F("@media",t,l);o.src=e.src,l=[o]}if(n!==null){let o=F("@supports",n[0]==="("?n:`(${n})`,l);o.src=e.src,l=[o]}return l}function Ge(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let r=Object.getPrototypeOf(e);return r===null||Object.getPrototypeOf(r)===null}function at(e,r,i,t=[]){for(let n of r)if(n!=null)for(let l of Reflect.ownKeys(n)){t.push(l);let o=i(e[l],n[l],t);o!==void 0?e[l]=o:!Ge(e[l])||!Ge(n[l])?e[l]=n[l]:e[l]=at({},[e[l],n[l]],i,t),t.pop()}return e}function Rt(e,r,i){return function(n,l){let o=n.lastIndexOf("/"),f=null;o!==-1&&(f=n.slice(o+1).trim(),n=n.slice(0,o).trim());let u=(()=>{let c=Ue(n),[m,d]=Ea(e.theme,c),p=i(ji(r()??{},c)??null);if(typeof p=="string"&&(p=p.replace("<alpha-value>","1")),typeof m!="object")return typeof d!="object"&&d&4?p??m:m;if(p!==null&&typeof p=="object"&&!Array.isArray(p)){let k=at({},[p],(h,w)=>w);if(m===null&&Object.hasOwn(p,"__CSS_VALUES__")){let h={};for(let w in p.__CSS_VALUES__)h[w]=p[w],delete k[w];m=h}for(let h in m)h!=="__CSS_VALUES__"&&(p?.__CSS_VALUES__?.[h]&4&&ji(k,h.split("-"))!==void 0||(k[Ve(h)]=m[h]));return k}if(Array.isArray(m)&&Array.isArray(d)&&Array.isArray(p)){let k=m[0],h=m[1];d[0]&4&&(k=p[0]??k);for(let w of Object.keys(h))d[1][w]&4&&(h[w]=p[1][w]??h[w]);return[k,h]}return m??p})();return f&&typeof u=="string"&&(u=J(u,f)),u??l}}function Ea(e,r){if(r.length===1&&r[0].startsWith("--"))return[e.get([r[0]]),e.getOptions(r[0])];let i=Ye(r),t=new Map,n=new U(()=>new Map),l=e.namespace(`--${i}`);if(l.size===0)return[null,0];let o=new Map;for(let[m,d]of l){if(!m||!m.includes("--")){t.set(m,d),o.set(m,e.getOptions(m?`--${i}-${m}`:`--${i}`));continue}let p=m.indexOf("--"),k=m.slice(0,p),h=m.slice(p+2);h=h.replace(/-([a-z])/g,(w,x)=>x.toUpperCase()),n.get(k===""?null:k).set(h,[d,e.getOptions(`--${i}${m}`)])}let f=e.getOptions(`--${i}`);for(let[m,d]of n){let p=t.get(m);if(typeof p!="string")continue;let k={},h={};for(let[w,[x,S]]of d)k[w]=x,h[w]=S;t.set(m,[p,k]),o.set(m,[f,h])}let u={},c={};for(let[m,d]of t)Fi(u,[m??"DEFAULT"],d);for(let[m,d]of o)Fi(c,[m??"DEFAULT"],d);return r[r.length-1]==="DEFAULT"?[u?.DEFAULT??null,c.DEFAULT??0]:"DEFAULT"in u&&Object.keys(u).length===1?[u.DEFAULT,c.DEFAULT??0]:(u.__CSS_VALUES__=c,[u,c])}function ji(e,r){for(let i=0;i<r.length;++i){let t=r[i];if(e?.[t]===void 0){if(r[i+1]===void 0)return;r[i+1]=`${t}-${r[i+1]}`;continue}if(typeof e=="string")return;e=e[t]}return e}function Fi(e,r,i){for(let t of r.slice(0,-1))e[t]===void 0&&(e[t]={}),e=e[t];e[r[r.length-1]]=i}var Wi=/^[a-z@][a-zA-Z0-9/%._-]*$/;function cr({designSystem:e,ast:r,resolvedConfig:i,featuresRef:t,referenceMode:n,src:l}){let o={addBase(f){if(n)return;let u=he(f);t.current|=Fe(u,e);let c=F("@layer","base",u);_([c],m=>{m.src=l}),r.push(c)},addVariant(f,u){if(!Vt.test(f))throw new Error(`\`addVariant('${f}')\` defines an invalid variant name. Variants should only contain alphanumeric, dashes, or underscore characters and start with a lowercase letter or number.`);if(typeof u=="string"){if(u.includes(":merge("))return}else if(Array.isArray(u)){if(u.some(m=>m.includes(":merge(")))return}else if(typeof u=="object"){let m=function(d,p){return Object.entries(d).some(([k,h])=>k.includes(p)||typeof h=="object"&&m(h,p))};var c=m;if(m(u,":merge("))return}typeof u=="string"||Array.isArray(u)?e.variants.static(f,m=>{m.nodes=Bi(u,m.nodes)},{compounds:Le(typeof u=="string"?[u]:u)}):typeof u=="object"&&e.variants.fromAst(f,he(u),e)},matchVariant(f,u,c){function m(p,k,h){let w=u(p,{modifier:k?.value??null});return Bi(w,h)}try{let p=u("a",{modifier:null});if(typeof p=="string"&&p.includes(":merge("))return;if(Array.isArray(p)&&p.some(k=>k.includes(":merge(")))return}catch{}let d=Object.keys(c?.values??{});e.variants.group(()=>{e.variants.functional(f,(p,k)=>{if(!k.value){if(c?.values&&"DEFAULT"in c.values){p.nodes=m(c.values.DEFAULT,k.modifier,p.nodes);return}return null}if(k.value.kind==="arbitrary")p.nodes=m(k.value.value,k.modifier,p.nodes);else if(k.value.kind==="named"&&c?.values){let h=c.values[k.value.value];if(typeof h!="string")return null;p.nodes=m(h,k.modifier,p.nodes)}else return null})},(p,k)=>{if(p.kind!=="functional"||k.kind!=="functional")return 0;let h=p.value?p.value.value:"DEFAULT",w=k.value?k.value.value:"DEFAULT",x=c?.values?.[h]??h,S=c?.values?.[w]??w;if(c&&typeof c.sort=="function")return c.sort({value:x,modifier:p.modifier?.value??null},{value:S,modifier:k.modifier?.value??null});let A=d.indexOf(h),y=d.indexOf(w);return A=A===-1?d.length:A,y=y===-1?d.length:y,A!==y?A-y:x<S?-1:1}),e.variants.suggest(f,()=>Object.keys(c?.values??{}).filter(p=>p!=="DEFAULT"))},addUtilities(f){f=Array.isArray(f)?f:[f];let u=f.flatMap(m=>Object.entries(m));u=u.flatMap(([m,d])=>L(m,",").map(p=>[p.trim(),d]));let c=new U(()=>[]);for(let[m,d]of u){if(m.startsWith("@keyframes ")){if(!n){let h=Z(m,he(d));_([h],w=>{w.src=l}),r.push(h)}continue}let p=De(m),k=!1;if(_(p,h=>{if(h.kind==="selector"&&h.value[0]==="."&&Wi.test(h.value.slice(1))){let w=h.value;h.value="&";let x=me(p),S=w.slice(1),A=x==="&"?he(d):[Z(x,he(d))];c.get(S).push(...A),k=!0,h.value=w;return}if(h.kind==="function"&&h.value===":not")return V.Skip}),!k)throw new Error(`\`addUtilities({ '${m}' : \u2026 })\` defines an invalid utility selector. Utilities must be a single class name and start with a lowercase letter, eg. \`.scrollbar-none\`.`)}for(let[m,d]of c)e.theme.prefix&&_(d,p=>{if(p.kind==="rule"){let k=De(p.selector);_(k,h=>{h.kind==="selector"&&h.value[0]==="."&&(h.value=`.${e.theme.prefix}\\:${h.value.slice(1)}`)}),p.selector=me(k)}}),e.utilities.static(m,p=>{let k=d.map(ee);return Yi(k,m,p.raw),t.current|=$e(k,e),k})},matchUtilities(f,u){let c=u?.type?Array.isArray(u?.type)?u.type:[u.type]:["any"];for(let[d,p]of Object.entries(f)){let k=function({negative:h}){return w=>{if(w.value?.kind==="arbitrary"&&c.length>0&&!c.includes("any")&&(w.value.dataType&&!c.includes(w.value.dataType)||!w.value.dataType&&!Q(w.value.value,c)))return;let x=c.includes("color"),S=null,A=!1;{let N=u?.values??{};x&&(N=Object.assign({inherit:"inherit",transparent:"transparent",current:"currentcolor"},N)),w.value?w.value.kind==="arbitrary"?S=w.value.value:w.value.fraction&&N[w.value.fraction]?(S=N[w.value.fraction],A=!0):N[w.value.value]?S=N[w.value.value]:N.__BARE_VALUE__&&(S=N.__BARE_VALUE__(w.value)??null,A=(w.value.fraction!==null&&S?.includes("/"))??!1):S=N.DEFAULT??null}if(S===null)return;let y;{let N=u?.modifiers??null;w.modifier?N==="any"||w.modifier.kind==="arbitrary"?y=w.modifier.value:N?.[w.modifier.value]?y=N[w.modifier.value]:x&&!Number.isNaN(Number(w.modifier.value))?y=`${w.modifier.value}%`:y=null:y=null}if(w.modifier&&y===null&&!A)return w.value?.kind==="arbitrary"?null:void 0;x&&y!==null&&(S=J(S,y)),h&&(S=`calc(${S} * -1)`);let K=he(p(S,{modifier:y}));return Yi(K,d,w.raw),t.current|=$e(K,e),K}};var m=k;if(!Wi.test(d))throw new Error(`\`matchUtilities({ '${d}' : \u2026 })\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter, eg. \`scrollbar\`.`);u?.supportsNegativeValues&&e.utilities.functional(`-${d}`,k({negative:!0}),{types:c}),e.utilities.functional(d,k({negative:!1}),{types:c}),e.utilities.suggest(d,()=>{let h=u?.values??{},w=new Set(Object.keys(h));w.delete("__BARE_VALUE__"),w.delete("__CSS_VALUES__"),w.has("DEFAULT")&&(w.delete("DEFAULT"),w.add(null));let x=u?.modifiers??{},S=x==="any"?[]:Object.keys(x);return[{supportsNegative:u?.supportsNegativeValues??!1,values:Array.from(w),modifiers:S}]})}},addComponents(f,u){this.addUtilities(f,u)},matchComponents(f,u){this.matchUtilities(f,u)},theme:Rt(e,()=>i.theme??{},f=>f),prefix(f){return f},config(f,u){let c=i;if(!f)return c;let m=Ue(f);for(let d=0;d<m.length;++d){let p=m[d];if(c[p]===void 0)return u;c=c[p]}return c??u}};return o.addComponents=o.addComponents.bind(o),o.matchComponents=o.matchComponents.bind(o),o}function he(e){let r=[];e=Array.isArray(e)?e:[e];let i=e.flatMap(t=>Object.entries(t));for(let[t,n]of i)if(n!=null&&n!==!1)if(typeof n!="object"){if(!t.startsWith("--")){if(n==="@slot"){r.push(Z(t,[F("@slot")]));continue}t=t.replace(/([A-Z])/g,"-$1").toLowerCase()}r.push(a(t,String(n)))}else if(Array.isArray(n))for(let l of n)typeof l=="string"?r.push(a(t,l)):r.push(Z(t,he(l)));else r.push(Z(t,he(n)));return r}function Bi(e,r){return(typeof e=="string"?[e]:e).flatMap(t=>{if(t.trim().endsWith("}")){let n=t.replace("}","{@slot}}"),l=Ne(n);return lr(l,r),l}else return Z(t,r)})}function Yi(e,r,i){_(e,t=>{if(t.kind==="rule"){let n=De(t.selector);_(n,l=>{l.kind==="selector"&&l.value===`.${r}`&&(l.value=`.${xe(i)}`)}),t.selector=me(n)}})}function qi(e,r){for(let i of Na(r))e.theme.addKeyframes(i)}function Na(e){let r=[];if("keyframes"in e.theme)for(let[i,t]of Object.entries(e.theme.keyframes))r.push(F("@keyframes",i,he(t)));return r}var Ot={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};function Ke(e){return{__BARE_VALUE__:e}}var fe=Ke(e=>{if(O(e.value))return e.value}),re=Ke(e=>{if(O(e.value))return`${e.value}%`}),Ee=Ke(e=>{if(O(e.value))return`${e.value}px`}),Gi=Ke(e=>{if(O(e.value))return`${e.value}ms`}),Pt=Ke(e=>{if(O(e.value))return`${e.value}deg`}),Va=Ke(e=>{if(e.fraction===null)return;let[r,i]=L(e.fraction,"/");if(!(!O(r)||!O(i)))return e.fraction}),Hi=Ke(e=>{if(O(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),Zi={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...Va},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...re}),backdropContrast:({theme:e})=>({...e("contrast"),...re}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...re}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...Pt}),backdropInvert:({theme:e})=>({...e("invert"),...re}),backdropOpacity:({theme:e})=>({...e("opacity"),...re}),backdropSaturate:({theme:e})=>({...e("saturate"),...re}),backdropSepia:({theme:e})=>({...e("sepia"),...re}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...Ee},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...re},caretColor:({theme:e})=>e("colors"),colors:()=>({...Ot}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...fe},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...re},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...Ee}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...fe},flexShrink:{0:"0",DEFAULT:"1",...fe},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...re},grayscale:{0:"0",DEFAULT:"100%",...re},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...fe},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...fe},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...fe},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...fe},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...Hi},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...Hi},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...Pt},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...re},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...fe},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...re},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...fe},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...Pt},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...re},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...re},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...re},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...Pt},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...fe},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...Ee},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...Gi},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...Gi},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...fe}};function Qi(e){return{theme:{...Zi,colors:({theme:r})=>r("color",{}),extend:{fontSize:({theme:r})=>({...r("text",{})}),boxShadow:({theme:r})=>({...r("shadow",{})}),animation:({theme:r})=>({...r("animate",{})}),aspectRatio:({theme:r})=>({...r("aspect",{})}),borderRadius:({theme:r})=>({...r("radius",{})}),screens:({theme:r})=>({...r("breakpoint",{})}),letterSpacing:({theme:r})=>({...r("tracking",{})}),lineHeight:({theme:r})=>({...r("leading",{})}),transitionDuration:{DEFAULT:e.get(["--default-transition-duration"])??null},transitionTimingFunction:{DEFAULT:e.get(["--default-transition-timing-function"])??null},maxWidth:({theme:r})=>({...r("container",{})})}}}}var Ra={blocklist:[],future:{},experimental:{},prefix:"",important:!1,darkMode:null,theme:{},plugins:[],content:{files:[]}};function pr(e,r){let i={design:e,configs:[],plugins:[],content:{files:[]},theme:{},extend:{},result:structuredClone(Ra)};for(let n of r)fr(i,n);for(let n of i.configs)"darkMode"in n&&n.darkMode!==void 0&&(i.result.darkMode=n.darkMode??null),"prefix"in n&&n.prefix!==void 0&&(i.result.prefix=n.prefix??""),"blocklist"in n&&n.blocklist!==void 0&&(i.result.blocklist=n.blocklist??[]),"important"in n&&n.important!==void 0&&(i.result.important=n.important??!1);let t=Pa(i);return{resolvedConfig:{...i.result,content:i.content,theme:i.theme,plugins:i.plugins},replacedThemeKeys:t}}function Oa(e,r){if(Array.isArray(e)&&Ge(e[0]))return e.concat(r);if(Array.isArray(r)&&Ge(r[0])&&Ge(e))return[e,...r];if(Array.isArray(r))return r}function fr(e,{config:r,base:i,path:t,reference:n,src:l}){let o=[];for(let c of r.plugins??[])"__isOptionsFunction"in c?o.push({...c(),reference:n,src:l}):"handler"in c?o.push({...c,reference:n,src:l}):o.push({handler:c,reference:n,src:l});if(Array.isArray(r.presets)&&r.presets.length===0)throw new Error("Error in the config file/plugin/preset. An empty preset (`preset: []`) is not currently supported.");for(let c of r.presets??[])fr(e,{path:t,base:i,config:c,reference:n,src:l});for(let c of o)e.plugins.push(c),c.config&&fr(e,{path:t,base:i,config:c.config,reference:!!c.reference,src:c.src??l});let f=r.content??[],u=Array.isArray(f)?f:f.files;for(let c of u)e.content.files.push(typeof c=="object"?c:{base:i,pattern:c});e.configs.push(r)}function Pa(e){let r=new Set,i=Rt(e.design,()=>e.theme,n),t=Object.assign(i,{theme:i,colors:Ot});function n(l){return typeof l=="function"?l(t)??null:l??null}for(let l of e.configs){let o=l.theme??{},f=o.extend??{};for(let u in o)u!=="extend"&&r.add(u);Object.assign(e.theme,o);for(let u in f)e.extend[u]??=[],e.extend[u].push(f[u])}delete e.theme.extend;for(let l in e.extend){let o=[e.theme[l],...e.extend[l]];e.theme[l]=()=>{let f=o.map(n);return at({},f,Oa)}}for(let l in e.theme)e.theme[l]=n(e.theme[l]);if(e.theme.screens&&typeof e.theme.screens=="object")for(let l of Object.keys(e.theme.screens)){let o=e.theme.screens[l];o&&typeof o=="object"&&("raw"in o||"max"in o||"min"in o&&(e.theme.screens[l]=o.min))}return r}function Ji(e,r){let i=e.theme.container||{};if(typeof i!="object"||i===null)return;let t=_a(i,r);t.length!==0&&r.utilities.static("container",()=>t.map(ee))}function _a({center:e,padding:r,screens:i},t){let n=[],l=null;if(e&&n.push(a("margin-inline","auto")),(typeof r=="string"||typeof r=="object"&&r!==null&&"DEFAULT"in r)&&n.push(a("padding-inline",typeof r=="string"?r:r.DEFAULT)),typeof i=="object"&&i!==null){l=new Map;let o=Array.from(t.theme.namespace("--breakpoint").entries());if(o.sort((f,u)=>Oe(f[1],u[1],"asc")),o.length>0){let[f]=o[0];n.push(F("@media",`(width >= --theme(--breakpoint-${f}))`,[a("max-width","none")]))}for(let[f,u]of Object.entries(i)){if(typeof u=="object")if("min"in u)u=u.min;else continue;l.set(f,F("@media",`(width >= ${u})`,[a("max-width",u)]))}}if(typeof r=="object"&&r!==null){let o=Object.entries(r).filter(([f])=>f!=="DEFAULT").map(([f,u])=>[f,t.theme.resolveValue(f,["--breakpoint"]),u]).filter(Boolean);o.sort((f,u)=>Oe(f[1],u[1],"asc"));for(let[f,,u]of o)if(l&&l.has(f))l.get(f).nodes.push(a("padding-inline",u));else{if(l)continue;n.push(F("@media",`(width >= theme(--breakpoint-${f}))`,[a("padding-inline",u)]))}}if(l)for(let[,o]of l)n.push(o);return n}function Xi({addVariant:e,config:r}){let i=r("darkMode",null),[t,n=".dark"]=Array.isArray(i)?i:[i];if(t==="variant"){let l;if(Array.isArray(n)||typeof n=="function"?l=n:typeof n=="string"&&(l=[n]),Array.isArray(l))for(let o of l)o===".dark"?(t=!1,console.warn('When using `variant` for `darkMode`, you must provide a selector.\nExample: `darkMode: ["variant", ".your-selector &"]`')):o.includes("&")||(t=!1,console.warn('When using `variant` for `darkMode`, your selector must contain `&`.\nExample `darkMode: ["variant", ".your-selector &"]`'));n=l}t===null||(t==="selector"?e("dark",`&:where(${n}, ${n} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",n):t==="class"&&e("dark",`&:is(${n} *)`))}function en(e){for(let[r,i]of[["t","top"],["tr","top right"],["r","right"],["br","bottom right"],["b","bottom"],["bl","bottom left"],["l","left"],["tl","top left"]])e.utilities.suggest(`bg-gradient-to-${r}`,()=>[]),e.utilities.static(`bg-gradient-to-${r}`,()=>[a("--tw-gradient-position",`to ${i} in oklab`),a("background-image","linear-gradient(var(--tw-gradient-stops))")]);e.utilities.suggest("bg-left-top",()=>[]),e.utilities.static("bg-left-top",()=>[a("background-position","left top")]),e.utilities.suggest("bg-right-top",()=>[]),e.utilities.static("bg-right-top",()=>[a("background-position","right top")]),e.utilities.suggest("bg-left-bottom",()=>[]),e.utilities.static("bg-left-bottom",()=>[a("background-position","left bottom")]),e.utilities.suggest("bg-right-bottom",()=>[]),e.utilities.static("bg-right-bottom",()=>[a("background-position","right bottom")]),e.utilities.suggest("object-left-top",()=>[]),e.utilities.static("object-left-top",()=>[a("object-position","left top")]),e.utilities.suggest("object-right-top",()=>[]),e.utilities.static("object-right-top",()=>[a("object-position","right top")]),e.utilities.suggest("object-left-bottom",()=>[]),e.utilities.static("object-left-bottom",()=>[a("object-position","left bottom")]),e.utilities.suggest("object-right-bottom",()=>[]),e.utilities.static("object-right-bottom",()=>[a("object-position","right bottom")]),e.utilities.suggest("max-w-screen",()=>[]),e.utilities.functional("max-w-screen",r=>{if(!r.value||r.value.kind==="arbitrary")return;let i=e.theme.resolve(r.value.value,["--breakpoint"]);if(i)return[a("max-width",i)]}),e.utilities.suggest("overflow-ellipsis",()=>[]),e.utilities.static("overflow-ellipsis",()=>[a("text-overflow","ellipsis")]),e.utilities.suggest("decoration-slice",()=>[]),e.utilities.static("decoration-slice",()=>[a("-webkit-box-decoration-break","slice"),a("box-decoration-break","slice")]),e.utilities.suggest("decoration-clone",()=>[]),e.utilities.static("decoration-clone",()=>[a("-webkit-box-decoration-break","clone"),a("box-decoration-break","clone")]),e.utilities.suggest("flex-shrink",()=>[]),e.utilities.functional("flex-shrink",r=>{if(!r.modifier){if(!r.value)return[a("flex-shrink","1")];if(r.value.kind==="arbitrary")return[a("flex-shrink",r.value.value)];if(O(r.value.value))return[a("flex-shrink",r.value.value)]}}),e.utilities.suggest("flex-grow",()=>[]),e.utilities.functional("flex-grow",r=>{if(!r.modifier){if(!r.value)return[a("flex-grow","1")];if(r.value.kind==="arbitrary")return[a("flex-grow",r.value.value)];if(O(r.value.value))return[a("flex-grow",r.value.value)]}}),e.utilities.suggest("order-none",()=>[]),e.utilities.static("order-none",()=>[a("order","0")]),e.utilities.suggest("break-words",()=>[]),e.utilities.static("break-words",()=>[a("overflow-wrap","break-word")])}function tn(e,r){let i=e.theme.screens||{},t=r.variants.get("min")?.order??0,n=[];for(let[o,f]of Object.entries(i)){let p=function(k){r.variants.static(o,h=>{h.nodes=[F("@media",d,h.nodes)]},{order:k})};var l=p;let u=r.variants.get(o),c=r.theme.resolveValue(o,["--breakpoint"]);if(u&&c&&!r.theme.hasDefault(`--breakpoint-${o}`))continue;let m=!0;typeof f=="string"&&(m=!1);let d=Ia(f);m?n.push(p):p(t)}if(n.length!==0){for(let[,o]of r.variants.variants)o.order>t&&(o.order+=n.length);r.variants.compareFns=new Map(Array.from(r.variants.compareFns).map(([o,f])=>(o>t&&(o+=n.length),[o,f])));for(let[o,f]of n.entries())f(t+o+1)}}function Ia(e){return(Array.isArray(e)?e:[e]).map(i=>typeof i=="string"?{min:i}:i&&typeof i=="object"?i:null).map(i=>{if(i===null)return null;if("raw"in i)return i.raw;let t="";return i.max!==void 0&&(t+=`${i.max} >= `),t+="width",i.min!==void 0&&(t+=` >= ${i.min}`),`(${t})`}).filter(Boolean).join(", ")}function rn(e,r){let i=e.theme.aria||{},t=e.theme.supports||{},n=e.theme.data||{};if(Object.keys(i).length>0){let l=r.variants.get("aria"),o=l?.applyFn,f=l?.compounds;r.variants.functional("aria",(u,c)=>{let m=c.value;return m&&m.kind==="named"&&m.value in i?o?.(u,{...c,value:{kind:"arbitrary",value:i[m.value]}}):o?.(u,c)},{compounds:f})}if(Object.keys(t).length>0){let l=r.variants.get("supports"),o=l?.applyFn,f=l?.compounds;r.variants.functional("supports",(u,c)=>{let m=c.value;return m&&m.kind==="named"&&m.value in t?o?.(u,{...c,value:{kind:"arbitrary",value:t[m.value]}}):o?.(u,c)},{compounds:f})}if(Object.keys(n).length>0){let l=r.variants.get("data"),o=l?.applyFn,f=l?.compounds;r.variants.functional("data",(u,c)=>{let m=c.value;return m&&m.kind==="named"&&m.value in n?o?.(u,{...c,value:{kind:"arbitrary",value:n[m.value]}}):o?.(u,c)},{compounds:f})}}var Da=/^[a-z]+$/;async function on({designSystem:e,base:r,ast:i,loadModule:t,sources:n}){let l=0,o=[],f=[];_(i,(d,p)=>{if(d.kind!=="at-rule")return;let k=et(p);if(d.name==="@plugin"){if(k.parent!==null)throw new Error("`@plugin` cannot be nested.");let h=d.params.slice(1,-1);if(h.length===0)throw new Error("`@plugin` must have a path.");let w={};for(let x of d.nodes??[]){if(x.kind!=="declaration")throw new Error(`Unexpected \`@plugin\` option:
-
-${ie([x])}
-
-\`@plugin\` options must be a flat list of declarations.`);if(x.value===void 0)continue;let S=x.value,A=L(S,",").map(y=>{if(y=y.trim(),y==="null")return null;if(y==="true")return!0;if(y==="false")return!1;if(Number.isNaN(Number(y))){if(y[0]==='"'&&y[y.length-1]==='"'||y[0]==="'"&&y[y.length-1]==="'")return y.slice(1,-1);if(y[0]==="{"&&y[y.length-1]==="}")throw new Error(`Unexpected \`@plugin\` option: Value of declaration \`${ie([x]).trim()}\` is not supported.
-
-Using an object as a plugin option is currently only supported in JavaScript configuration files.`)}else return Number(y);return y});w[x.property]=A.length===1?A[0]:A}return o.push([{id:h,base:k.context.base,reference:!!k.context.reference,src:d.src},Object.keys(w).length>0?w:null]),l|=4,V.Replace([])}if(d.name==="@config"){if(d.nodes.length>0)throw new Error("`@config` cannot have a body.");if(k.parent!==null)throw new Error("`@config` cannot be nested.");return f.push({id:d.params.slice(1,-1),base:k.context.base,reference:!!k.context.reference,src:d.src}),l|=4,V.Replace([])}}),en(e);let u=e.resolveThemeValue;if(e.resolveThemeValue=function(p,k){return p.startsWith("--")?u(p,k):(l|=nn({designSystem:e,base:r,ast:i,sources:n,configs:[],pluginDetails:[]}),e.resolveThemeValue(p,k))},!o.length&&!f.length)return 0;let[c,m]=await Promise.all([Promise.all(f.map(async({id:d,base:p,reference:k,src:h})=>{let w=await t(d,p,"config");return{path:d,base:w.base,config:w.module,reference:k,src:h}})),Promise.all(o.map(async([{id:d,base:p,reference:k,src:h},w])=>{let x=await t(d,p,"plugin");return{path:d,base:x.base,plugin:x.module,options:w,reference:k,src:h}}))]);return l|=nn({designSystem:e,base:r,ast:i,sources:n,configs:c,pluginDetails:m}),l}function nn({designSystem:e,base:r,ast:i,sources:t,configs:n,pluginDetails:l}){let o=0,u=[...l.map(w=>{if(!w.options)return{config:{plugins:[w.plugin]},base:w.base,reference:w.reference,src:w.src};if("__isOptionsFunction"in w.plugin)return{config:{plugins:[w.plugin(w.options)]},base:w.base,reference:w.reference,src:w.src};throw new Error(`The plugin "${w.path}" does not accept options`)}),...n],{resolvedConfig:c}=pr(e,[{config:Qi(e.theme),base:r,reference:!0,src:void 0},...u,{config:{plugins:[Xi]},base:r,reference:!0,src:void 0}]),{resolvedConfig:m,replacedThemeKeys:d}=pr(e,u),p={designSystem:e,ast:i,resolvedConfig:c,featuresRef:{set current(w){o|=w}}},k=cr({...p,referenceMode:!1,src:void 0}),h=e.resolveThemeValue;e.resolveThemeValue=function(x,S){if(x[0]==="-"&&x[1]==="-")return h(x,S);let A=k.theme(x,void 0);if(Array.isArray(A)&&A.length===2)return A[0];if(Array.isArray(A))return A.join(", ");if(typeof A=="object"&&A!==null&&"DEFAULT"in A)return A.DEFAULT;if(typeof A=="string")return A};for(let{handler:w,reference:x,src:S}of c.plugins){let A=cr({...p,referenceMode:x??!1,src:S});w(A)}if(ri(e,m,d),qi(e,m),rn(m,e),tn(m,e),Ji(m,e),!e.theme.prefix&&c.prefix){if(c.prefix.endsWith("-")&&(c.prefix=c.prefix.slice(0,-1),console.warn(`The prefix "${c.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only and is written as a variant before all utilities. We have fixed up the prefix for you. Remove the trailing \`-\` to silence this warning.`)),!Da.test(c.prefix))throw new Error(`The prefix "${c.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);e.theme.prefix=c.prefix}if(!e.important&&c.important===!0&&(e.important=!0),typeof c.important=="string"){let w=c.important;_(i,(x,S)=>{if(x.kind!=="at-rule"||x.name!=="@tailwind"||x.params!=="utilities")return;let A=et(S);return A.parent?.kind==="rule"&&A.parent.selector===w?V.Stop:V.ReplaceStop(q(w,[x]))})}for(let w of c.blocklist)e.invalidCandidates.add(w);for(let w of c.content.files){if("raw"in w)throw new Error(`Error in the config file/plugin/preset. The \`content\` key contains a \`raw\` entry:
-
-${JSON.stringify(w,null,2)}
-
-This feature is not currently supported.`);let x=!1;w.pattern[0]=="!"&&(x=!0,w.pattern=w.pattern.slice(1)),t.push({...w,negated:x})}return o}function an({ast:e}){let r=new U(n=>st(n.code)),i=new U(n=>({url:n.file,content:n.code,ignore:!1})),t={file:null,sources:[],mappings:[]};_(e,n=>{if(!n.src||!n.dst)return;let l=i.get(n.src[0]);if(!l.content)return;let o=r.get(n.src[0]),f=r.get(n.dst[0]),u=l.content.slice(n.src[1],n.src[2]),c=0;for(let p of u.split(`
-`)){if(p.trim()!==""){let k=o.find(n.src[1]+c),h=f.find(n.dst[1]);t.mappings.push({name:null,originalPosition:{source:l,...k},generatedPosition:h})}c+=p.length,c+=1}let m=o.find(n.src[2]),d=f.find(n.dst[2]);t.mappings.push({name:null,originalPosition:{source:l,...m},generatedPosition:d})});for(let n of r.keys())t.sources.push(i.get(n));return t.mappings.sort((n,l)=>n.generatedPosition.line-l.generatedPosition.line||n.generatedPosition.column-l.generatedPosition.column||(n.originalPosition?.line??0)-(l.originalPosition?.line??0)||(n.originalPosition?.column??0)-(l.originalPosition?.column??0)),t}var ln=/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/;function _t(e){let r=e.indexOf("{");if(r===-1)return[e];let i=[],t=e.slice(0,r),n=e.slice(r),l=0,o=n.lastIndexOf("}");for(let d=0;d<n.length;d++){let p=n[d];if(p==="{")l++;else if(p==="}"&&(l--,l===0)){o=d;break}}if(o===-1)throw new Error(`The pattern \`${e}\` is not balanced.`);let f=n.slice(1,o),u=n.slice(o+1),c;Ua(f)?c=La(f):c=L(f,","),c=c.flatMap(d=>_t(d));let m=_t(u);for(let d of m)for(let p of c)i.push(t+p+d);return i}function Ua(e){return ln.test(e)}function La(e){let r=e.match(ln);if(!r)return[e];let[,i,t,n]=r,l=n?parseInt(n,10):void 0,o=[];if(/^-?\d+$/.test(i)&&/^-?\d+$/.test(t)){let f=parseInt(i,10),u=parseInt(t,10);if(l===void 0&&(l=f<=u?1:-1),l===0)throw new Error("Step cannot be zero in sequence expansion.");let c=f<u;c&&l<0&&(l=-l),!c&&l>0&&(l=-l);for(let m=f;c?m<=u:m>=u;m+=l)o.push(m.toString())}return o}function sn(e,r){let i=new Set,t=new Set,n=[];function l(o,f=[]){if(e.has(o)&&!i.has(o)){t.has(o)&&r.onCircularDependency?.(f,o),t.add(o);for(let u of e.get(o)??[])f.push(o),l(u,f),f.pop();i.add(o),t.delete(o),n.push(o)}}for(let o of e.keys())l(o);return n}var Ka=/^[a-z]+$/,ht=(n=>(n[n.None=0]="None",n[n.AtProperty=1]="AtProperty",n[n.ColorMix=2]="ColorMix",n[n.All=3]="All",n))(ht||{});function za(){throw new Error("No `loadModule` function provided to `compile`")}function Ma(){throw new Error("No `loadStylesheet` function provided to `compile`")}function ja(e){let r=0,i=null;for(let t of L(e," "))t==="reference"?r|=2:t==="inline"?r|=1:t==="default"?r|=4:t==="static"?r|=8:t.startsWith("prefix(")&&t.endsWith(")")&&(i=t.slice(7,-1));return[r,i]}var Pe=(u=>(u[u.None=0]="None",u[u.AtApply=1]="AtApply",u[u.AtImport=2]="AtImport",u[u.JsPluginCompat=4]="JsPluginCompat",u[u.ThemeFunction=8]="ThemeFunction",u[u.Utilities=16]="Utilities",u[u.Variants=32]="Variants",u[u.AtTheme=64]="AtTheme",u))(Pe||{});async function un(e,{base:r="",from:i,loadModule:t=za,loadStylesheet:n=Ma}={}){let l=0;e=[de({base:r},e)],l|=await ur(e,r,n,0,i!==void 0);let o=null,f=new mt,u=new Map,c=new Map,m=[],d=null,p=null,k=[],h=[],w=[],x=[],S=null;_(e,(y,K)=>{if(y.kind!=="at-rule")return;let N=et(K);if(y.name==="@tailwind"&&(y.params==="utilities"||y.params.startsWith("utilities"))){if(p!==null)return V.Replace([]);if(N.context.reference)return V.Replace([]);let P=L(y.params," ");for(let z of P)if(z.startsWith("source(")){let I=z.slice(7,-1);if(I==="none"){S=I;continue}if(I[0]==='"'&&I[I.length-1]!=='"'||I[0]==="'"&&I[I.length-1]!=="'"||I[0]!=="'"&&I[0]!=='"')throw new Error("`source(\u2026)` paths must be quoted.");S={base:N.context.sourceBase??N.context.base,pattern:I.slice(1,-1)}}p=y,l|=16}if(y.name==="@utility"){if(N.parent!==null)throw new Error("`@utility` cannot be nested.");if(y.nodes.length===0)throw new Error(`\`@utility ${y.params}\` is empty. Utilities should include at least one property.`);let P=Jr(y);if(P===null){if(!y.params.endsWith("-*")){if(y.params.endsWith("*"))throw new Error(`\`@utility ${y.params}\` defines an invalid utility name. A functional utility must end in \`-*\`.`);if(y.params.includes("*"))throw new Error(`\`@utility ${y.params}\` defines an invalid utility name. The dynamic portion marked by \`-*\` must appear once at the end.`)}throw new Error(`\`@utility ${y.params}\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter.`)}m.push(P)}if(y.name==="@source"){if(y.nodes.length>0)throw new Error("`@source` cannot have a body.");if(N.parent!==null)throw new Error("`@source` cannot be nested.");let P=!1,z=!1,I=y.params;if(I[0]==="n"&&I.startsWith("not ")&&(P=!0,I=I.slice(4)),I[0]==="i"&&I.startsWith("inline(")&&(z=!0,I=I.slice(7,-1)),I[0]==='"'&&I[I.length-1]!=='"'||I[0]==="'"&&I[I.length-1]!=="'"||I[0]!=="'"&&I[0]!=='"')throw new Error("`@source` paths must be quoted.");let M=I.slice(1,-1);if(z){let Y=P?x:w,G=L(M," ");for(let ae of G)for(let le of _t(ae))Y.push(le)}else h.push({base:N.context.base,pattern:M,negated:P});return V.ReplaceSkip([])}if(y.name==="@variant"&&(N.parent===null?y.nodes.length===0?y.name="@custom-variant":(_(y.nodes,P=>{if(P.kind==="at-rule"&&P.name==="@slot")return y.name="@custom-variant",V.Stop}),y.name==="@variant"&&k.push(y)):k.push(y)),y.name==="@custom-variant"){if(N.parent!==null)throw new Error("`@custom-variant` cannot be nested.");let[P,z]=L(y.params," ");if(!Vt.test(P))throw new Error(`\`@custom-variant ${P}\` defines an invalid variant name. Variants should only contain alphanumeric, dashes, or underscore characters and start with a lowercase letter or number.`);if(y.nodes.length>0&&z)throw new Error(`\`@custom-variant ${P}\` cannot have both a selector and a body.`);if(y.nodes.length===0){if(!z)throw new Error(`\`@custom-variant ${P}\` has no selector or body.`);let I=L(z.slice(1,-1),",");if(I.length===0||I.some(G=>G.trim()===""))throw new Error(`\`@custom-variant ${P} (${I.join(",")})\` selector is invalid.`);let M=[],Y=[];for(let G of I)G=G.trim(),G[0]==="@"?M.push(G):Y.push(G);u.set(P,G=>{G.variants.static(P,ae=>{let le=[];Y.length>0&&le.push(q(Y.join(", "),ae.nodes));for(let s of M)le.push(Z(s,ae.nodes));ae.nodes=le},{compounds:Le([...Y,...M])})}),c.set(P,new Set)}else{let I=new Set;_(y.nodes,M=>{M.kind==="at-rule"&&M.name==="@variant"&&I.add(M.params)}),u.set(P,M=>{M.variants.fromAst(P,y.nodes,M)}),c.set(P,I)}return V.ReplaceSkip([])}if(y.name==="@media"){let P=L(y.params," "),z=[];for(let I of P)if(I.startsWith("source(")){let M=I.slice(7,-1);_(y.nodes,Y=>{if(Y.kind==="at-rule"&&Y.name==="@tailwind"&&Y.params==="utilities")return Y.params+=` source(${M})`,V.ReplaceStop([de({sourceBase:N.context.base},[Y])])})}else if(I.startsWith("theme(")){let M=I.slice(6,-1),Y=M.includes("reference");_(y.nodes,G=>{if(G.kind!=="context"){if(G.kind!=="at-rule"){if(Y)throw new Error('Files imported with `@import "\u2026" theme(reference)` must only contain `@theme` blocks.\nUse `@reference "\u2026";` instead.');return V.Continue}if(G.name==="@theme")return G.params+=" "+M,V.Skip}})}else if(I.startsWith("prefix(")){let M=I.slice(7,-1);_(y.nodes,Y=>{if(Y.kind==="at-rule"&&Y.name==="@theme")return Y.params+=` prefix(${M})`,V.Skip})}else I==="important"?o=!0:I==="reference"?y.nodes=[de({reference:!0},y.nodes)]:z.push(I);if(z.length>0)y.params=z.join(" ");else if(P.length>0)return V.Replace(y.nodes);return V.Continue}if(y.name==="@theme"){let[P,z]=ja(y.params);if(l|=64,N.context.reference&&(P|=2),z){if(!Ka.test(z))throw new Error(`The prefix "${z}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);f.prefix=z}return _(y.nodes,I=>{if(I.kind==="at-rule"&&I.name==="@keyframes")return f.addKeyframes(I),V.Skip;if(I.kind==="comment")return;if(I.kind==="declaration"&&I.property.startsWith("--")){f.add(Ve(I.property),I.value??"",P,I.src);return}let M=ie([F(y.name,y.params,[I])]).split(`
-`).map((Y,G,ae)=>`${G===0||G>=ae.length-2?" ":">"} ${Y}`).join(`
-`);throw new Error(`\`@theme\` blocks must only contain custom properties or \`@keyframes\`.
-
-${M}`)}),d?V.ReplaceSkip([]):(d=q(":root, :host",[]),d.src=y.src,V.ReplaceSkip(d))}});let A=Ui(f,p?.src);if(o&&(A.important=o),x.length>0)for(let y of x)A.invalidCandidates.add(y);l|=await on({designSystem:A,base:r,ast:e,loadModule:t,sources:h});for(let y of u.keys())A.variants.static(y,()=>{});for(let y of sn(c,{onCircularDependency(K,N){let P=ie(K.map((z,I)=>F("@custom-variant",z,[F("@variant",K[I+1]??N,[])]))).replaceAll(";"," { \u2026 }").replace(`@custom-variant ${N} {`,`@custom-variant ${N} { /* \u2190 */`);throw new Error(`Circular dependency detected in custom variants:
-
-${P}`)}}))u.get(y)?.(A);for(let y of m)y(A);if(d){let y=[];for(let[N,P]of A.theme.entries()){if(P.options&2)continue;let z=a(xe(N),P.value);z.src=P.src,y.push(z)}let K=A.theme.getKeyframes();for(let N of K)e.push(de({theme:!0},[W([N])]));d.nodes=[de({theme:!0},y)]}if(l|=ot(e,A),l|=Fe(e,A),l|=$e(e,A),p){let y=p;y.kind="context",y.context={}}return _(e,y=>{if(y.kind==="at-rule")return y.name==="@utility"?V.Replace([]):V.Skip}),{designSystem:A,ast:e,sources:h,root:S,utilitiesNode:p,features:l,inlineCandidates:w}}async function cn(e,r={}){let{designSystem:i,ast:t,sources:n,root:l,utilitiesNode:o,features:f,inlineCandidates:u}=await un(e,r);t.unshift(dt(`! tailwindcss v${dr} | MIT License | https://tailwindcss.com `));function c(h){i.invalidCandidates.add(h)}let m=new Set,d=null,p=0,k=!1;for(let h of u)i.invalidCandidates.has(h)||(m.add(h),k=!0);return{sources:n,root:l,features:f,build(h){if(f===0)return e;if(!o)return d??=Re(t,i,r.polyfills),d;let w=k,x=!1;k=!1;let S=m.size;for(let y of h)if(!i.invalidCandidates.has(y))if(y[0]==="-"&&y[1]==="-"){let K=i.theme.markUsedVariable(y);w||=K,x||=K}else m.add(y),w||=m.size!==S;if(!w)return d??=Re(t,i,r.polyfills),d;let A=Te(m,i,{onInvalidCandidate:c}).astNodes;return r.from&&_(A,y=>{y.src??=o.src}),!x&&p===A.length?(d??=Re(t,i,r.polyfills),d):(p=A.length,o.nodes=A,d=Re(t,i,r.polyfills),d)}}}async function Fa(e,r={}){let i=Ne(e,{from:r.from}),t=await cn(i,r),n=i,l=e;return{...t,build(o){let f=t.build(o);return f===n||(l=ie(f,!!r.from),n=f),l},buildSourceMap(){return an({ast:n})}}}async function Wa(e,r={}){return(await un(Ne(e,{from:r.from}),r)).designSystem}function lt(){throw new Error("It looks like you're trying to use `tailwindcss` directly as a PostCSS plugin. The PostCSS plugin has moved to a separate package, so to continue using Tailwind CSS with PostCSS you'll need to install `@tailwindcss/postcss` and update your PostCSS configuration.")}for(let e in It)e!=="default"&&(lt[e]=It[e]);module.exports=lt;
Index: de_modules/tailwindcss/dist/lib.mjs
===================================================================
--- node_modules/tailwindcss/dist/lib.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-import{a,b,c,d,e,f}from"./chunk-CT46QCH7.mjs";import"./chunk-GFBUASX3.mjs";import"./chunk-HTB5LLOP.mjs";export{b as Features,a as Polyfills,e as __unstable__loadDesignSystem,d as compile,c as compileAst,f as default};
Index: de_modules/tailwindcss/dist/plugin.d.mts
===================================================================
--- node_modules/tailwindcss/dist/plugin.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-export { P as PluginUtils } from './resolve-config-QUZ9b-Gn.mjs';
-import { a as PluginFn, C as Config, b as PluginWithConfig, c as PluginWithOptions } from './types-CJYAW1ql.mjs';
-export { d as PluginAPI, P as PluginsConfig, T as ThemeConfig } from './types-CJYAW1ql.mjs';
-import './colors.mjs';
-
-declare function createPlugin(handler: PluginFn, config?: Partial<Config>): PluginWithConfig;
-declare namespace createPlugin {
-    var withOptions: <T>(pluginFunction: (options?: T) => PluginFn, configFunction?: (options?: T) => Partial<Config>) => PluginWithOptions<T>;
-}
-
-export { Config, PluginFn as PluginCreator, createPlugin as default };
Index: de_modules/tailwindcss/dist/plugin.d.ts
===================================================================
--- node_modules/tailwindcss/dist/plugin.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,134 +1,0 @@
-import { N as NamedUtilityValue, P as PluginUtils } from './resolve-config-BIFUA2FY.js';
-import './colors-b_6i0Oi7.js';
-
-/**
- * The source code for one or more nodes in the AST
- *
- * This generally corresponds to a stylesheet
- */
-interface Source {
-    /**
-     * The path to the file that contains the referenced source code
-     *
-     * If this references the *output* source code, this is `null`.
-     */
-    file: string | null;
-    /**
-     * The referenced source code
-     */
-    code: string;
-}
-/**
- * The file and offsets within it that this node covers
- *
- * This can represent either:
- * - A location in the original CSS which caused this node to be created
- * - A location in the output CSS where this node resides
- */
-type SourceLocation = [source: Source, start: number, end: number];
-
-type Config = UserConfig;
-type PluginFn = (api: PluginAPI) => void;
-type PluginWithConfig = {
-    handler: PluginFn;
-    config?: UserConfig;
-    /** @internal */
-    reference?: boolean;
-    src?: SourceLocation | undefined;
-};
-type PluginWithOptions<T> = {
-    (options?: T): PluginWithConfig;
-    __isOptionsFunction: true;
-};
-type Plugin = PluginFn | PluginWithConfig | PluginWithOptions<any>;
-type PluginAPI = {
-    addBase(base: CssInJs): void;
-    addVariant(name: string, variant: string | string[] | CssInJs): void;
-    matchVariant<T = string>(name: string, cb: (value: T | string, extra: {
-        modifier: string | null;
-    }) => string | string[], options?: {
-        values?: Record<string, T>;
-        sort?(a: {
-            value: T | string;
-            modifier: string | null;
-        }, b: {
-            value: T | string;
-            modifier: string | null;
-        }): number;
-    }): void;
-    addUtilities(utilities: Record<string, CssInJs | CssInJs[]> | Record<string, CssInJs | CssInJs[]>[], options?: {}): void;
-    matchUtilities(utilities: Record<string, (value: string, extra: {
-        modifier: string | null;
-    }) => CssInJs | CssInJs[]>, options?: Partial<{
-        type: string | string[];
-        supportsNegativeValues: boolean;
-        values: Record<string, string> & {
-            __BARE_VALUE__?: (value: NamedUtilityValue) => string | undefined;
-        };
-        modifiers: 'any' | Record<string, string>;
-    }>): void;
-    addComponents(utilities: Record<string, CssInJs> | Record<string, CssInJs>[], options?: {}): void;
-    matchComponents(utilities: Record<string, (value: string, extra: {
-        modifier: string | null;
-    }) => CssInJs>, options?: Partial<{
-        type: string | string[];
-        supportsNegativeValues: boolean;
-        values: Record<string, string> & {
-            __BARE_VALUE__?: (value: NamedUtilityValue) => string | undefined;
-        };
-        modifiers: 'any' | Record<string, string>;
-    }>): void;
-    theme(path: string, defaultValue?: any): any;
-    config(path?: string, defaultValue?: any): any;
-    prefix(className: string): string;
-};
-type CssInJs = {
-    [key: string]: string | string[] | CssInJs | CssInJs[];
-};
-
-type ResolvableTo<T> = T | ((utils: PluginUtils) => T);
-type ThemeValue = ResolvableTo<Record<string, unknown>> | null | undefined;
-type ThemeConfig = Record<string, ThemeValue> & {
-    extend?: Record<string, ThemeValue>;
-};
-type ContentFile = string | {
-    raw: string;
-    extension?: string;
-};
-type DarkModeStrategy = false | 'media' | 'class' | ['class', string] | 'selector' | ['selector', string] | ['variant', string | string[]];
-interface UserConfig {
-    presets?: UserConfig[];
-    theme?: ThemeConfig;
-    plugins?: Plugin[];
-}
-interface UserConfig {
-    content?: ContentFile[] | {
-        relative?: boolean;
-        files: ContentFile[];
-    };
-}
-interface UserConfig {
-    darkMode?: DarkModeStrategy;
-}
-interface UserConfig {
-    prefix?: string;
-}
-interface UserConfig {
-    blocklist?: string[];
-}
-interface UserConfig {
-    important?: boolean | string;
-}
-interface UserConfig {
-    future?: 'all' | Record<string, boolean>;
-}
-interface UserConfig {
-    experimental?: 'all' | Record<string, boolean>;
-}
-
-declare function createPlugin(handler: PluginFn, config?: Partial<Config>): PluginWithConfig;
-declare namespace createPlugin {
-    var withOptions: <T>(pluginFunction: (options?: T) => PluginFn, configFunction?: (options?: T) => Partial<Config>) => PluginWithOptions<T>;
-}
-
-export { createPlugin as default };
Index: de_modules/tailwindcss/dist/plugin.js
===================================================================
--- node_modules/tailwindcss/dist/plugin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-"use strict";function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;module.exports=u;
Index: de_modules/tailwindcss/dist/plugin.mjs
===================================================================
--- node_modules/tailwindcss/dist/plugin.mjs	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};
Index: de_modules/tailwindcss/dist/resolve-config-BIFUA2FY.d.ts
===================================================================
--- node_modules/tailwindcss/dist/resolve-config-BIFUA2FY.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { _ as _default } from './colors-b_6i0Oi7.js';
-
-type NamedUtilityValue = {
-    kind: 'named';
-    /**
-     * ```
-     * bg-red-500
-     *    ^^^^^^^
-     *
-     * w-1/2
-     *   ^
-     * ```
-     */
-    value: string;
-    /**
-     * ```
-     * w-1/2
-     *   ^^^
-     * ```
-     */
-    fraction: string | null;
-};
-
-type PluginUtils = {
-    theme: (keypath: string, defaultValue?: any) => any;
-    colors: typeof _default;
-};
-
-export type { NamedUtilityValue as N, PluginUtils as P };
Index: de_modules/tailwindcss/dist/resolve-config-QUZ9b-Gn.d.mts
===================================================================
--- node_modules/tailwindcss/dist/resolve-config-QUZ9b-Gn.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,190 +1,0 @@
-import _default from './colors.mjs';
-
-type ArbitraryUtilityValue = {
-    kind: 'arbitrary';
-    /**
-     * ```
-     * bg-[color:var(--my-color)]
-     *     ^^^^^
-     *
-     * bg-(color:--my-color)
-     *     ^^^^^
-     * ```
-     */
-    dataType: string | null;
-    /**
-     * ```
-     * bg-[#0088cc]
-     *     ^^^^^^^
-     *
-     * bg-[var(--my_variable)]
-     *     ^^^^^^^^^^^^^^^^^^
-     *
-     * bg-(--my_variable)
-     *     ^^^^^^^^^^^^^^
-     * ```
-     */
-    value: string;
-};
-type NamedUtilityValue = {
-    kind: 'named';
-    /**
-     * ```
-     * bg-red-500
-     *    ^^^^^^^
-     *
-     * w-1/2
-     *   ^
-     * ```
-     */
-    value: string;
-    /**
-     * ```
-     * w-1/2
-     *   ^^^
-     * ```
-     */
-    fraction: string | null;
-};
-type ArbitraryModifier = {
-    kind: 'arbitrary';
-    /**
-     * ```
-     * bg-red-500/[50%]
-     *             ^^^
-     * ```
-     */
-    value: string;
-};
-type NamedModifier = {
-    kind: 'named';
-    /**
-     * ```
-     * bg-red-500/50
-     *            ^^
-     * ```
-     */
-    value: string;
-};
-type ArbitraryVariantValue = {
-    kind: 'arbitrary';
-    value: string;
-};
-type NamedVariantValue = {
-    kind: 'named';
-    value: string;
-};
-type Variant = 
-/**
- * Arbitrary variants are variants that take a selector and generate a variant
- * on the fly.
- *
- * E.g.: `[&_p]`
- */
-{
-    kind: 'arbitrary';
-    selector: string;
-    relative: boolean;
-}
-/**
- * Static variants are variants that don't take any arguments.
- *
- * E.g.: `hover`
- */
- | {
-    kind: 'static';
-    root: string;
-}
-/**
- * Functional variants are variants that can take an argument. The argument is
- * either a named variant value or an arbitrary variant value.
- *
- * E.g.:
- *
- * - `aria-disabled`
- * - `aria-[disabled]`
- * - `@container-size`          -> @container, with named value `size`
- * - `@container-[inline-size]` -> @container, with arbitrary variant value `inline-size`
- * - `@container`               -> @container, with no value
- */
- | {
-    kind: 'functional';
-    root: string;
-    value: ArbitraryVariantValue | NamedVariantValue | null;
-    modifier: ArbitraryModifier | NamedModifier | null;
-}
-/**
- * Compound variants are variants that take another variant as an argument.
- *
- * E.g.:
- *
- * - `has-[&_p]`
- * - `group-*`
- * - `peer-*`
- */
- | {
-    kind: 'compound';
-    root: string;
-    modifier: ArbitraryModifier | NamedModifier | null;
-    variant: Variant;
-};
-type Candidate = 
-/**
- * Arbitrary candidates are candidates that register utilities on the fly with
- * a property and a value.
- *
- * E.g.:
- *
- * - `[color:red]`
- * - `[color:red]/50`
- * - `[color:red]/50!`
- */
-{
-    kind: 'arbitrary';
-    property: string;
-    value: string;
-    modifier: ArbitraryModifier | NamedModifier | null;
-    variants: Variant[];
-    important: boolean;
-    raw: string;
-}
-/**
- * Static candidates are candidates that don't take any arguments.
- *
- * E.g.:
- *
- * - `underline`
- * - `box-border`
- */
- | {
-    kind: 'static';
-    root: string;
-    variants: Variant[];
-    important: boolean;
-    raw: string;
-}
-/**
- * Functional candidates are candidates that can take an argument.
- *
- * E.g.:
- *
- * - `bg-red-500`
- * - `bg-[#0088cc]`
- * - `w-1/2`
- */
- | {
-    kind: 'functional';
-    root: string;
-    value: ArbitraryUtilityValue | NamedUtilityValue | null;
-    modifier: ArbitraryModifier | NamedModifier | null;
-    variants: Variant[];
-    important: boolean;
-    raw: string;
-};
-
-type PluginUtils = {
-    theme: (keypath: string, defaultValue?: any) => any;
-    colors: typeof _default;
-};
-
-export type { Candidate as C, NamedUtilityValue as N, PluginUtils as P, Variant as V };
Index: de_modules/tailwindcss/dist/types-CJYAW1ql.d.mts
===================================================================
--- node_modules/tailwindcss/dist/types-CJYAW1ql.d.mts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,128 +1,0 @@
-import { N as NamedUtilityValue, P as PluginUtils } from './resolve-config-QUZ9b-Gn.mjs';
-
-/**
- * The source code for one or more nodes in the AST
- *
- * This generally corresponds to a stylesheet
- */
-interface Source {
-    /**
-     * The path to the file that contains the referenced source code
-     *
-     * If this references the *output* source code, this is `null`.
-     */
-    file: string | null;
-    /**
-     * The referenced source code
-     */
-    code: string;
-}
-/**
- * The file and offsets within it that this node covers
- *
- * This can represent either:
- * - A location in the original CSS which caused this node to be created
- * - A location in the output CSS where this node resides
- */
-type SourceLocation = [source: Source, start: number, end: number];
-
-type Config = UserConfig;
-type PluginFn = (api: PluginAPI) => void;
-type PluginWithConfig = {
-    handler: PluginFn;
-    config?: UserConfig;
-    /** @internal */
-    reference?: boolean;
-    src?: SourceLocation | undefined;
-};
-type PluginWithOptions<T> = {
-    (options?: T): PluginWithConfig;
-    __isOptionsFunction: true;
-};
-type Plugin = PluginFn | PluginWithConfig | PluginWithOptions<any>;
-type PluginAPI = {
-    addBase(base: CssInJs): void;
-    addVariant(name: string, variant: string | string[] | CssInJs): void;
-    matchVariant<T = string>(name: string, cb: (value: T | string, extra: {
-        modifier: string | null;
-    }) => string | string[], options?: {
-        values?: Record<string, T>;
-        sort?(a: {
-            value: T | string;
-            modifier: string | null;
-        }, b: {
-            value: T | string;
-            modifier: string | null;
-        }): number;
-    }): void;
-    addUtilities(utilities: Record<string, CssInJs | CssInJs[]> | Record<string, CssInJs | CssInJs[]>[], options?: {}): void;
-    matchUtilities(utilities: Record<string, (value: string, extra: {
-        modifier: string | null;
-    }) => CssInJs | CssInJs[]>, options?: Partial<{
-        type: string | string[];
-        supportsNegativeValues: boolean;
-        values: Record<string, string> & {
-            __BARE_VALUE__?: (value: NamedUtilityValue) => string | undefined;
-        };
-        modifiers: 'any' | Record<string, string>;
-    }>): void;
-    addComponents(utilities: Record<string, CssInJs> | Record<string, CssInJs>[], options?: {}): void;
-    matchComponents(utilities: Record<string, (value: string, extra: {
-        modifier: string | null;
-    }) => CssInJs>, options?: Partial<{
-        type: string | string[];
-        supportsNegativeValues: boolean;
-        values: Record<string, string> & {
-            __BARE_VALUE__?: (value: NamedUtilityValue) => string | undefined;
-        };
-        modifiers: 'any' | Record<string, string>;
-    }>): void;
-    theme(path: string, defaultValue?: any): any;
-    config(path?: string, defaultValue?: any): any;
-    prefix(className: string): string;
-};
-type CssInJs = {
-    [key: string]: string | string[] | CssInJs | CssInJs[];
-};
-
-type ResolvableTo<T> = T | ((utils: PluginUtils) => T);
-type ThemeValue = ResolvableTo<Record<string, unknown>> | null | undefined;
-type ThemeConfig = Record<string, ThemeValue> & {
-    extend?: Record<string, ThemeValue>;
-};
-type ContentFile = string | {
-    raw: string;
-    extension?: string;
-};
-type DarkModeStrategy = false | 'media' | 'class' | ['class', string] | 'selector' | ['selector', string] | ['variant', string | string[]];
-interface UserConfig {
-    presets?: UserConfig[];
-    theme?: ThemeConfig;
-    plugins?: Plugin[];
-}
-interface UserConfig {
-    content?: ContentFile[] | {
-        relative?: boolean;
-        files: ContentFile[];
-    };
-}
-interface UserConfig {
-    darkMode?: DarkModeStrategy;
-}
-interface UserConfig {
-    prefix?: string;
-}
-interface UserConfig {
-    blocklist?: string[];
-}
-interface UserConfig {
-    important?: boolean | string;
-}
-interface UserConfig {
-    future?: 'all' | Record<string, boolean>;
-}
-interface UserConfig {
-    experimental?: 'all' | Record<string, boolean>;
-}
-
-export type { Config as C, Plugin as P, SourceLocation as S, ThemeConfig as T, UserConfig as U, PluginFn as a, PluginWithConfig as b, PluginWithOptions as c, PluginAPI as d };
Index: de_modules/tailwindcss/index.css
===================================================================
--- node_modules/tailwindcss/index.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,896 +1,0 @@
-@layer theme, base, components, utilities;
-
-@layer theme {
-  @theme default {
-    --font-sans:
-      ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
-      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-    --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
-    --font-mono:
-      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
-      "Courier New", monospace;
-
-    --color-red-50: oklch(97.1% 0.013 17.38);
-    --color-red-100: oklch(93.6% 0.032 17.717);
-    --color-red-200: oklch(88.5% 0.062 18.334);
-    --color-red-300: oklch(80.8% 0.114 19.571);
-    --color-red-400: oklch(70.4% 0.191 22.216);
-    --color-red-500: oklch(63.7% 0.237 25.331);
-    --color-red-600: oklch(57.7% 0.245 27.325);
-    --color-red-700: oklch(50.5% 0.213 27.518);
-    --color-red-800: oklch(44.4% 0.177 26.899);
-    --color-red-900: oklch(39.6% 0.141 25.723);
-    --color-red-950: oklch(25.8% 0.092 26.042);
-
-    --color-orange-50: oklch(98% 0.016 73.684);
-    --color-orange-100: oklch(95.4% 0.038 75.164);
-    --color-orange-200: oklch(90.1% 0.076 70.697);
-    --color-orange-300: oklch(83.7% 0.128 66.29);
-    --color-orange-400: oklch(75% 0.183 55.934);
-    --color-orange-500: oklch(70.5% 0.213 47.604);
-    --color-orange-600: oklch(64.6% 0.222 41.116);
-    --color-orange-700: oklch(55.3% 0.195 38.402);
-    --color-orange-800: oklch(47% 0.157 37.304);
-    --color-orange-900: oklch(40.8% 0.123 38.172);
-    --color-orange-950: oklch(26.6% 0.079 36.259);
-
-    --color-amber-50: oklch(98.7% 0.022 95.277);
-    --color-amber-100: oklch(96.2% 0.059 95.617);
-    --color-amber-200: oklch(92.4% 0.12 95.746);
-    --color-amber-300: oklch(87.9% 0.169 91.605);
-    --color-amber-400: oklch(82.8% 0.189 84.429);
-    --color-amber-500: oklch(76.9% 0.188 70.08);
-    --color-amber-600: oklch(66.6% 0.179 58.318);
-    --color-amber-700: oklch(55.5% 0.163 48.998);
-    --color-amber-800: oklch(47.3% 0.137 46.201);
-    --color-amber-900: oklch(41.4% 0.112 45.904);
-    --color-amber-950: oklch(27.9% 0.077 45.635);
-
-    --color-yellow-50: oklch(98.7% 0.026 102.212);
-    --color-yellow-100: oklch(97.3% 0.071 103.193);
-    --color-yellow-200: oklch(94.5% 0.129 101.54);
-    --color-yellow-300: oklch(90.5% 0.182 98.111);
-    --color-yellow-400: oklch(85.2% 0.199 91.936);
-    --color-yellow-500: oklch(79.5% 0.184 86.047);
-    --color-yellow-600: oklch(68.1% 0.162 75.834);
-    --color-yellow-700: oklch(55.4% 0.135 66.442);
-    --color-yellow-800: oklch(47.6% 0.114 61.907);
-    --color-yellow-900: oklch(42.1% 0.095 57.708);
-    --color-yellow-950: oklch(28.6% 0.066 53.813);
-
-    --color-lime-50: oklch(98.6% 0.031 120.757);
-    --color-lime-100: oklch(96.7% 0.067 122.328);
-    --color-lime-200: oklch(93.8% 0.127 124.321);
-    --color-lime-300: oklch(89.7% 0.196 126.665);
-    --color-lime-400: oklch(84.1% 0.238 128.85);
-    --color-lime-500: oklch(76.8% 0.233 130.85);
-    --color-lime-600: oklch(64.8% 0.2 131.684);
-    --color-lime-700: oklch(53.2% 0.157 131.589);
-    --color-lime-800: oklch(45.3% 0.124 130.933);
-    --color-lime-900: oklch(40.5% 0.101 131.063);
-    --color-lime-950: oklch(27.4% 0.072 132.109);
-
-    --color-green-50: oklch(98.2% 0.018 155.826);
-    --color-green-100: oklch(96.2% 0.044 156.743);
-    --color-green-200: oklch(92.5% 0.084 155.995);
-    --color-green-300: oklch(87.1% 0.15 154.449);
-    --color-green-400: oklch(79.2% 0.209 151.711);
-    --color-green-500: oklch(72.3% 0.219 149.579);
-    --color-green-600: oklch(62.7% 0.194 149.214);
-    --color-green-700: oklch(52.7% 0.154 150.069);
-    --color-green-800: oklch(44.8% 0.119 151.328);
-    --color-green-900: oklch(39.3% 0.095 152.535);
-    --color-green-950: oklch(26.6% 0.065 152.934);
-
-    --color-emerald-50: oklch(97.9% 0.021 166.113);
-    --color-emerald-100: oklch(95% 0.052 163.051);
-    --color-emerald-200: oklch(90.5% 0.093 164.15);
-    --color-emerald-300: oklch(84.5% 0.143 164.978);
-    --color-emerald-400: oklch(76.5% 0.177 163.223);
-    --color-emerald-500: oklch(69.6% 0.17 162.48);
-    --color-emerald-600: oklch(59.6% 0.145 163.225);
-    --color-emerald-700: oklch(50.8% 0.118 165.612);
-    --color-emerald-800: oklch(43.2% 0.095 166.913);
-    --color-emerald-900: oklch(37.8% 0.077 168.94);
-    --color-emerald-950: oklch(26.2% 0.051 172.552);
-
-    --color-teal-50: oklch(98.4% 0.014 180.72);
-    --color-teal-100: oklch(95.3% 0.051 180.801);
-    --color-teal-200: oklch(91% 0.096 180.426);
-    --color-teal-300: oklch(85.5% 0.138 181.071);
-    --color-teal-400: oklch(77.7% 0.152 181.912);
-    --color-teal-500: oklch(70.4% 0.14 182.503);
-    --color-teal-600: oklch(60% 0.118 184.704);
-    --color-teal-700: oklch(51.1% 0.096 186.391);
-    --color-teal-800: oklch(43.7% 0.078 188.216);
-    --color-teal-900: oklch(38.6% 0.063 188.416);
-    --color-teal-950: oklch(27.7% 0.046 192.524);
-
-    --color-cyan-50: oklch(98.4% 0.019 200.873);
-    --color-cyan-100: oklch(95.6% 0.045 203.388);
-    --color-cyan-200: oklch(91.7% 0.08 205.041);
-    --color-cyan-300: oklch(86.5% 0.127 207.078);
-    --color-cyan-400: oklch(78.9% 0.154 211.53);
-    --color-cyan-500: oklch(71.5% 0.143 215.221);
-    --color-cyan-600: oklch(60.9% 0.126 221.723);
-    --color-cyan-700: oklch(52% 0.105 223.128);
-    --color-cyan-800: oklch(45% 0.085 224.283);
-    --color-cyan-900: oklch(39.8% 0.07 227.392);
-    --color-cyan-950: oklch(30.2% 0.056 229.695);
-
-    --color-sky-50: oklch(97.7% 0.013 236.62);
-    --color-sky-100: oklch(95.1% 0.026 236.824);
-    --color-sky-200: oklch(90.1% 0.058 230.902);
-    --color-sky-300: oklch(82.8% 0.111 230.318);
-    --color-sky-400: oklch(74.6% 0.16 232.661);
-    --color-sky-500: oklch(68.5% 0.169 237.323);
-    --color-sky-600: oklch(58.8% 0.158 241.966);
-    --color-sky-700: oklch(50% 0.134 242.749);
-    --color-sky-800: oklch(44.3% 0.11 240.79);
-    --color-sky-900: oklch(39.1% 0.09 240.876);
-    --color-sky-950: oklch(29.3% 0.066 243.157);
-
-    --color-blue-50: oklch(97% 0.014 254.604);
-    --color-blue-100: oklch(93.2% 0.032 255.585);
-    --color-blue-200: oklch(88.2% 0.059 254.128);
-    --color-blue-300: oklch(80.9% 0.105 251.813);
-    --color-blue-400: oklch(70.7% 0.165 254.624);
-    --color-blue-500: oklch(62.3% 0.214 259.815);
-    --color-blue-600: oklch(54.6% 0.245 262.881);
-    --color-blue-700: oklch(48.8% 0.243 264.376);
-    --color-blue-800: oklch(42.4% 0.199 265.638);
-    --color-blue-900: oklch(37.9% 0.146 265.522);
-    --color-blue-950: oklch(28.2% 0.091 267.935);
-
-    --color-indigo-50: oklch(96.2% 0.018 272.314);
-    --color-indigo-100: oklch(93% 0.034 272.788);
-    --color-indigo-200: oklch(87% 0.065 274.039);
-    --color-indigo-300: oklch(78.5% 0.115 274.713);
-    --color-indigo-400: oklch(67.3% 0.182 276.935);
-    --color-indigo-500: oklch(58.5% 0.233 277.117);
-    --color-indigo-600: oklch(51.1% 0.262 276.966);
-    --color-indigo-700: oklch(45.7% 0.24 277.023);
-    --color-indigo-800: oklch(39.8% 0.195 277.366);
-    --color-indigo-900: oklch(35.9% 0.144 278.697);
-    --color-indigo-950: oklch(25.7% 0.09 281.288);
-
-    --color-violet-50: oklch(96.9% 0.016 293.756);
-    --color-violet-100: oklch(94.3% 0.029 294.588);
-    --color-violet-200: oklch(89.4% 0.057 293.283);
-    --color-violet-300: oklch(81.1% 0.111 293.571);
-    --color-violet-400: oklch(70.2% 0.183 293.541);
-    --color-violet-500: oklch(60.6% 0.25 292.717);
-    --color-violet-600: oklch(54.1% 0.281 293.009);
-    --color-violet-700: oklch(49.1% 0.27 292.581);
-    --color-violet-800: oklch(43.2% 0.232 292.759);
-    --color-violet-900: oklch(38% 0.189 293.745);
-    --color-violet-950: oklch(28.3% 0.141 291.089);
-
-    --color-purple-50: oklch(97.7% 0.014 308.299);
-    --color-purple-100: oklch(94.6% 0.033 307.174);
-    --color-purple-200: oklch(90.2% 0.063 306.703);
-    --color-purple-300: oklch(82.7% 0.119 306.383);
-    --color-purple-400: oklch(71.4% 0.203 305.504);
-    --color-purple-500: oklch(62.7% 0.265 303.9);
-    --color-purple-600: oklch(55.8% 0.288 302.321);
-    --color-purple-700: oklch(49.6% 0.265 301.924);
-    --color-purple-800: oklch(43.8% 0.218 303.724);
-    --color-purple-900: oklch(38.1% 0.176 304.987);
-    --color-purple-950: oklch(29.1% 0.149 302.717);
-
-    --color-fuchsia-50: oklch(97.7% 0.017 320.058);
-    --color-fuchsia-100: oklch(95.2% 0.037 318.852);
-    --color-fuchsia-200: oklch(90.3% 0.076 319.62);
-    --color-fuchsia-300: oklch(83.3% 0.145 321.434);
-    --color-fuchsia-400: oklch(74% 0.238 322.16);
-    --color-fuchsia-500: oklch(66.7% 0.295 322.15);
-    --color-fuchsia-600: oklch(59.1% 0.293 322.896);
-    --color-fuchsia-700: oklch(51.8% 0.253 323.949);
-    --color-fuchsia-800: oklch(45.2% 0.211 324.591);
-    --color-fuchsia-900: oklch(40.1% 0.17 325.612);
-    --color-fuchsia-950: oklch(29.3% 0.136 325.661);
-
-    --color-pink-50: oklch(97.1% 0.014 343.198);
-    --color-pink-100: oklch(94.8% 0.028 342.258);
-    --color-pink-200: oklch(89.9% 0.061 343.231);
-    --color-pink-300: oklch(82.3% 0.12 346.018);
-    --color-pink-400: oklch(71.8% 0.202 349.761);
-    --color-pink-500: oklch(65.6% 0.241 354.308);
-    --color-pink-600: oklch(59.2% 0.249 0.584);
-    --color-pink-700: oklch(52.5% 0.223 3.958);
-    --color-pink-800: oklch(45.9% 0.187 3.815);
-    --color-pink-900: oklch(40.8% 0.153 2.432);
-    --color-pink-950: oklch(28.4% 0.109 3.907);
-
-    --color-rose-50: oklch(96.9% 0.015 12.422);
-    --color-rose-100: oklch(94.1% 0.03 12.58);
-    --color-rose-200: oklch(89.2% 0.058 10.001);
-    --color-rose-300: oklch(81% 0.117 11.638);
-    --color-rose-400: oklch(71.2% 0.194 13.428);
-    --color-rose-500: oklch(64.5% 0.246 16.439);
-    --color-rose-600: oklch(58.6% 0.253 17.585);
-    --color-rose-700: oklch(51.4% 0.222 16.935);
-    --color-rose-800: oklch(45.5% 0.188 13.697);
-    --color-rose-900: oklch(41% 0.159 10.272);
-    --color-rose-950: oklch(27.1% 0.105 12.094);
-
-    --color-slate-50: oklch(98.4% 0.003 247.858);
-    --color-slate-100: oklch(96.8% 0.007 247.896);
-    --color-slate-200: oklch(92.9% 0.013 255.508);
-    --color-slate-300: oklch(86.9% 0.022 252.894);
-    --color-slate-400: oklch(70.4% 0.04 256.788);
-    --color-slate-500: oklch(55.4% 0.046 257.417);
-    --color-slate-600: oklch(44.6% 0.043 257.281);
-    --color-slate-700: oklch(37.2% 0.044 257.287);
-    --color-slate-800: oklch(27.9% 0.041 260.031);
-    --color-slate-900: oklch(20.8% 0.042 265.755);
-    --color-slate-950: oklch(12.9% 0.042 264.695);
-
-    --color-gray-50: oklch(98.5% 0.002 247.839);
-    --color-gray-100: oklch(96.7% 0.003 264.542);
-    --color-gray-200: oklch(92.8% 0.006 264.531);
-    --color-gray-300: oklch(87.2% 0.01 258.338);
-    --color-gray-400: oklch(70.7% 0.022 261.325);
-    --color-gray-500: oklch(55.1% 0.027 264.364);
-    --color-gray-600: oklch(44.6% 0.03 256.802);
-    --color-gray-700: oklch(37.3% 0.034 259.733);
-    --color-gray-800: oklch(27.8% 0.033 256.848);
-    --color-gray-900: oklch(21% 0.034 264.665);
-    --color-gray-950: oklch(13% 0.028 261.692);
-
-    --color-zinc-50: oklch(98.5% 0 0);
-    --color-zinc-100: oklch(96.7% 0.001 286.375);
-    --color-zinc-200: oklch(92% 0.004 286.32);
-    --color-zinc-300: oklch(87.1% 0.006 286.286);
-    --color-zinc-400: oklch(70.5% 0.015 286.067);
-    --color-zinc-500: oklch(55.2% 0.016 285.938);
-    --color-zinc-600: oklch(44.2% 0.017 285.786);
-    --color-zinc-700: oklch(37% 0.013 285.805);
-    --color-zinc-800: oklch(27.4% 0.006 286.033);
-    --color-zinc-900: oklch(21% 0.006 285.885);
-    --color-zinc-950: oklch(14.1% 0.005 285.823);
-
-    --color-neutral-50: oklch(98.5% 0 0);
-    --color-neutral-100: oklch(97% 0 0);
-    --color-neutral-200: oklch(92.2% 0 0);
-    --color-neutral-300: oklch(87% 0 0);
-    --color-neutral-400: oklch(70.8% 0 0);
-    --color-neutral-500: oklch(55.6% 0 0);
-    --color-neutral-600: oklch(43.9% 0 0);
-    --color-neutral-700: oklch(37.1% 0 0);
-    --color-neutral-800: oklch(26.9% 0 0);
-    --color-neutral-900: oklch(20.5% 0 0);
-    --color-neutral-950: oklch(14.5% 0 0);
-
-    --color-stone-50: oklch(98.5% 0.001 106.423);
-    --color-stone-100: oklch(97% 0.001 106.424);
-    --color-stone-200: oklch(92.3% 0.003 48.717);
-    --color-stone-300: oklch(86.9% 0.005 56.366);
-    --color-stone-400: oklch(70.9% 0.01 56.259);
-    --color-stone-500: oklch(55.3% 0.013 58.071);
-    --color-stone-600: oklch(44.4% 0.011 73.639);
-    --color-stone-700: oklch(37.4% 0.01 67.558);
-    --color-stone-800: oklch(26.8% 0.007 34.298);
-    --color-stone-900: oklch(21.6% 0.006 56.043);
-    --color-stone-950: oklch(14.7% 0.004 49.25);
-
-    --color-black: #000;
-    --color-white: #fff;
-
-    --spacing: 0.25rem;
-
-    --breakpoint-sm: 40rem;
-    --breakpoint-md: 48rem;
-    --breakpoint-lg: 64rem;
-    --breakpoint-xl: 80rem;
-    --breakpoint-2xl: 96rem;
-
-    --container-3xs: 16rem;
-    --container-2xs: 18rem;
-    --container-xs: 20rem;
-    --container-sm: 24rem;
-    --container-md: 28rem;
-    --container-lg: 32rem;
-    --container-xl: 36rem;
-    --container-2xl: 42rem;
-    --container-3xl: 48rem;
-    --container-4xl: 56rem;
-    --container-5xl: 64rem;
-    --container-6xl: 72rem;
-    --container-7xl: 80rem;
-
-    --text-xs: 0.75rem;
-    --text-xs--line-height: calc(1 / 0.75);
-    --text-sm: 0.875rem;
-    --text-sm--line-height: calc(1.25 / 0.875);
-    --text-base: 1rem;
-    --text-base--line-height: calc(1.5 / 1);
-    --text-lg: 1.125rem;
-    --text-lg--line-height: calc(1.75 / 1.125);
-    --text-xl: 1.25rem;
-    --text-xl--line-height: calc(1.75 / 1.25);
-    --text-2xl: 1.5rem;
-    --text-2xl--line-height: calc(2 / 1.5);
-    --text-3xl: 1.875rem;
-    --text-3xl--line-height: calc(2.25 / 1.875);
-    --text-4xl: 2.25rem;
-    --text-4xl--line-height: calc(2.5 / 2.25);
-    --text-5xl: 3rem;
-    --text-5xl--line-height: 1;
-    --text-6xl: 3.75rem;
-    --text-6xl--line-height: 1;
-    --text-7xl: 4.5rem;
-    --text-7xl--line-height: 1;
-    --text-8xl: 6rem;
-    --text-8xl--line-height: 1;
-    --text-9xl: 8rem;
-    --text-9xl--line-height: 1;
-
-    --font-weight-thin: 100;
-    --font-weight-extralight: 200;
-    --font-weight-light: 300;
-    --font-weight-normal: 400;
-    --font-weight-medium: 500;
-    --font-weight-semibold: 600;
-    --font-weight-bold: 700;
-    --font-weight-extrabold: 800;
-    --font-weight-black: 900;
-
-    --tracking-tighter: -0.05em;
-    --tracking-tight: -0.025em;
-    --tracking-normal: 0em;
-    --tracking-wide: 0.025em;
-    --tracking-wider: 0.05em;
-    --tracking-widest: 0.1em;
-
-    --leading-tight: 1.25;
-    --leading-snug: 1.375;
-    --leading-normal: 1.5;
-    --leading-relaxed: 1.625;
-    --leading-loose: 2;
-
-    --radius-xs: 0.125rem;
-    --radius-sm: 0.25rem;
-    --radius-md: 0.375rem;
-    --radius-lg: 0.5rem;
-    --radius-xl: 0.75rem;
-    --radius-2xl: 1rem;
-    --radius-3xl: 1.5rem;
-    --radius-4xl: 2rem;
-
-    --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
-    --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
-    --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
-    --shadow-md:
-      0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
-    --shadow-lg:
-      0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
-    --shadow-xl:
-      0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
-    --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
-
-    --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
-    --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
-    --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
-
-    --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
-    --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
-    --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
-    --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
-    --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
-    --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
-
-    --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
-    --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
-    --text-shadow-sm:
-      0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075),
-      0px 2px 2px rgb(0 0 0 / 0.075);
-    --text-shadow-md:
-      0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1),
-      0px 2px 4px rgb(0 0 0 / 0.1);
-    --text-shadow-lg:
-      0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1),
-      0px 4px 8px rgb(0 0 0 / 0.1);
-
-    --ease-in: cubic-bezier(0.4, 0, 1, 1);
-    --ease-out: cubic-bezier(0, 0, 0.2, 1);
-    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
-
-    --animate-spin: spin 1s linear infinite;
-    --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
-    --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
-    --animate-bounce: bounce 1s infinite;
-
-    @keyframes spin {
-      to {
-        transform: rotate(360deg);
-      }
-    }
-
-    @keyframes ping {
-      75%,
-      100% {
-        transform: scale(2);
-        opacity: 0;
-      }
-    }
-
-    @keyframes pulse {
-      50% {
-        opacity: 0.5;
-      }
-    }
-
-    @keyframes bounce {
-      0%,
-      100% {
-        transform: translateY(-25%);
-        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
-      }
-
-      50% {
-        transform: none;
-        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
-      }
-    }
-
-    --blur-xs: 4px;
-    --blur-sm: 8px;
-    --blur-md: 12px;
-    --blur-lg: 16px;
-    --blur-xl: 24px;
-    --blur-2xl: 40px;
-    --blur-3xl: 64px;
-
-    --perspective-dramatic: 100px;
-    --perspective-near: 300px;
-    --perspective-normal: 500px;
-    --perspective-midrange: 800px;
-    --perspective-distant: 1200px;
-
-    --aspect-video: 16 / 9;
-
-    --default-transition-duration: 150ms;
-    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-    --default-font-family: --theme(--font-sans, initial);
-    --default-font-feature-settings: --theme(
-      --font-sans--font-feature-settings,
-      initial
-    );
-    --default-font-variation-settings: --theme(
-      --font-sans--font-variation-settings,
-      initial
-    );
-    --default-mono-font-family: --theme(--font-mono, initial);
-    --default-mono-font-feature-settings: --theme(
-      --font-mono--font-feature-settings,
-      initial
-    );
-    --default-mono-font-variation-settings: --theme(
-      --font-mono--font-variation-settings,
-      initial
-    );
-  }
-
-  /* Deprecated */
-  @theme default inline reference {
-    --blur: 8px;
-    --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
-    --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
-    --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);
-    --radius: 0.25rem;
-    --max-width-prose: 65ch;
-  }
-}
-
-@layer base {
-  /*
-  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-  2. Remove default margins and padding
-  3. Reset all borders.
-*/
-
-  *,
-  ::after,
-  ::before,
-  ::backdrop,
-  ::file-selector-button {
-    box-sizing: border-box; /* 1 */
-    margin: 0; /* 2 */
-    padding: 0; /* 2 */
-    border: 0 solid; /* 3 */
-  }
-
-  /*
-  1. Use a consistent sensible line-height in all browsers.
-  2. Prevent adjustments of font size after orientation changes in iOS.
-  3. Use a more readable tab size.
-  4. Use the user's configured `sans` font-family by default.
-  5. Use the user's configured `sans` font-feature-settings by default.
-  6. Use the user's configured `sans` font-variation-settings by default.
-  7. Disable tap highlights on iOS.
-*/
-
-  html,
-  :host {
-    line-height: 1.5; /* 1 */
-    -webkit-text-size-adjust: 100%; /* 2 */
-    tab-size: 4; /* 3 */
-    font-family: --theme(
-      --default-font-family,
-      ui-sans-serif,
-      system-ui,
-      sans-serif,
-      "Apple Color Emoji",
-      "Segoe UI Emoji",
-      "Segoe UI Symbol",
-      "Noto Color Emoji"
-    ); /* 4 */
-    font-feature-settings: --theme(
-      --default-font-feature-settings,
-      normal
-    ); /* 5 */
-    font-variation-settings: --theme(
-      --default-font-variation-settings,
-      normal
-    ); /* 6 */
-    -webkit-tap-highlight-color: transparent; /* 7 */
-  }
-
-  /*
-  1. Add the correct height in Firefox.
-  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-  3. Reset the default border style to a 1px solid border.
-*/
-
-  hr {
-    height: 0; /* 1 */
-    color: inherit; /* 2 */
-    border-top-width: 1px; /* 3 */
-  }
-
-  /*
-  Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-  abbr:where([title]) {
-    -webkit-text-decoration: underline dotted;
-    text-decoration: underline dotted;
-  }
-
-  /*
-  Remove the default font size and weight for headings.
-*/
-
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6 {
-    font-size: inherit;
-    font-weight: inherit;
-  }
-
-  /*
-  Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-  a {
-    color: inherit;
-    -webkit-text-decoration: inherit;
-    text-decoration: inherit;
-  }
-
-  /*
-  Add the correct font weight in Edge and Safari.
-*/
-
-  b,
-  strong {
-    font-weight: bolder;
-  }
-
-  /*
-  1. Use the user's configured `mono` font-family by default.
-  2. Use the user's configured `mono` font-feature-settings by default.
-  3. Use the user's configured `mono` font-variation-settings by default.
-  4. Correct the odd `em` font sizing in all browsers.
-*/
-
-  code,
-  kbd,
-  samp,
-  pre {
-    font-family: --theme(
-      --default-mono-font-family,
-      ui-monospace,
-      SFMono-Regular,
-      Menlo,
-      Monaco,
-      Consolas,
-      "Liberation Mono",
-      "Courier New",
-      monospace
-    ); /* 1 */
-    font-feature-settings: --theme(
-      --default-mono-font-feature-settings,
-      normal
-    ); /* 2 */
-    font-variation-settings: --theme(
-      --default-mono-font-variation-settings,
-      normal
-    ); /* 3 */
-    font-size: 1em; /* 4 */
-  }
-
-  /*
-  Add the correct font size in all browsers.
-*/
-
-  small {
-    font-size: 80%;
-  }
-
-  /*
-  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-  sub,
-  sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline;
-  }
-
-  sub {
-    bottom: -0.25em;
-  }
-
-  sup {
-    top: -0.5em;
-  }
-
-  /*
-  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-  3. Remove gaps between table borders by default.
-*/
-
-  table {
-    text-indent: 0; /* 1 */
-    border-color: inherit; /* 2 */
-    border-collapse: collapse; /* 3 */
-  }
-
-  /*
-  Use the modern Firefox focus style for all focusable elements.
-*/
-
-  :-moz-focusring {
-    outline: auto;
-  }
-
-  /*
-  Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-  progress {
-    vertical-align: baseline;
-  }
-
-  /*
-  Add the correct display in Chrome and Safari.
-*/
-
-  summary {
-    display: list-item;
-  }
-
-  /*
-  Make lists unstyled by default.
-*/
-
-  ol,
-  ul,
-  menu {
-    list-style: none;
-  }
-
-  /*
-  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
-      This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-  img,
-  svg,
-  video,
-  canvas,
-  audio,
-  iframe,
-  embed,
-  object {
-    display: block; /* 1 */
-    vertical-align: middle; /* 2 */
-  }
-
-  /*
-  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-  img,
-  video {
-    max-width: 100%;
-    height: auto;
-  }
-
-  /*
-  1. Inherit font styles in all browsers.
-  2. Remove border radius in all browsers.
-  3. Remove background color in all browsers.
-  4. Ensure consistent opacity for disabled states in all browsers.
-*/
-
-  button,
-  input,
-  select,
-  optgroup,
-  textarea,
-  ::file-selector-button {
-    font: inherit; /* 1 */
-    font-feature-settings: inherit; /* 1 */
-    font-variation-settings: inherit; /* 1 */
-    letter-spacing: inherit; /* 1 */
-    color: inherit; /* 1 */
-    border-radius: 0; /* 2 */
-    background-color: transparent; /* 3 */
-    opacity: 1; /* 4 */
-  }
-
-  /*
-  Restore default font weight.
-*/
-
-  :where(select:is([multiple], [size])) optgroup {
-    font-weight: bolder;
-  }
-
-  /*
-  Restore indentation.
-*/
-
-  :where(select:is([multiple], [size])) optgroup option {
-    padding-inline-start: 20px;
-  }
-
-  /*
-  Restore space after button.
-*/
-
-  ::file-selector-button {
-    margin-inline-end: 4px;
-  }
-
-  /*
-  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-*/
-
-  ::placeholder {
-    opacity: 1;
-  }
-
-  /*
-  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
-  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
-*/
-
-  @supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
-    (contain-intrinsic-size: 1px) /* Safari 17+ */ {
-    ::placeholder {
-      color: color-mix(in oklab, currentcolor 50%, transparent);
-    }
-  }
-
-  /*
-  Prevent resizing textareas horizontally by default.
-*/
-
-  textarea {
-    resize: vertical;
-  }
-
-  /*
-  Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-  ::-webkit-search-decoration {
-    -webkit-appearance: none;
-  }
-
-  /*
-  1. Ensure date/time inputs have the same height when empty in iOS Safari.
-  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
-*/
-
-  ::-webkit-date-and-time-value {
-    min-height: 1lh; /* 1 */
-    text-align: inherit; /* 2 */
-  }
-
-  /*
-  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
-*/
-
-  ::-webkit-datetime-edit {
-    display: inline-flex;
-  }
-
-  /*
-  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
-*/
-
-  ::-webkit-datetime-edit-fields-wrapper {
-    padding: 0;
-  }
-
-  ::-webkit-datetime-edit,
-  ::-webkit-datetime-edit-year-field,
-  ::-webkit-datetime-edit-month-field,
-  ::-webkit-datetime-edit-day-field,
-  ::-webkit-datetime-edit-hour-field,
-  ::-webkit-datetime-edit-minute-field,
-  ::-webkit-datetime-edit-second-field,
-  ::-webkit-datetime-edit-millisecond-field,
-  ::-webkit-datetime-edit-meridiem-field {
-    padding-block: 0;
-  }
-
-  /*
-  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
-*/
-
-  ::-webkit-calendar-picker-indicator {
-    line-height: 1;
-  }
-
-  /*
-  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-  :-moz-ui-invalid {
-    box-shadow: none;
-  }
-
-  /*
-  Correct the inability to style the border radius in iOS Safari.
-*/
-
-  button,
-  input:where([type="button"], [type="reset"], [type="submit"]),
-  ::file-selector-button {
-    appearance: button;
-  }
-
-  /*
-  Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-  ::-webkit-inner-spin-button,
-  ::-webkit-outer-spin-button {
-    height: auto;
-  }
-
-  /*
-  Make elements with the HTML hidden attribute stay hidden by default.
-*/
-
-  [hidden]:where(:not([hidden="until-found"])) {
-    display: none !important;
-  }
-}
-
-@layer utilities {
-  @tailwind utilities;
-}
Index: de_modules/tailwindcss/package.json
===================================================================
--- node_modules/tailwindcss/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-{
-  "name": "tailwindcss",
-  "version": "4.1.18",
-  "description": "A utility-first CSS framework for rapidly building custom user interfaces.",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/tailwindlabs/tailwindcss.git",
-    "directory": "packages/tailwindcss"
-  },
-  "bugs": "https://github.com/tailwindlabs/tailwindcss/issues",
-  "homepage": "https://tailwindcss.com",
-  "exports": {
-    ".": {
-      "types": "./dist/lib.d.mts",
-      "style": "./index.css",
-      "require": "./dist/lib.js",
-      "import": "./dist/lib.mjs"
-    },
-    "./plugin": {
-      "require": "./dist/plugin.js",
-      "import": "./dist/plugin.mjs"
-    },
-    "./plugin.js": {
-      "require": "./dist/plugin.js",
-      "import": "./dist/plugin.mjs"
-    },
-    "./defaultTheme": {
-      "require": "./dist/default-theme.js",
-      "import": "./dist/default-theme.mjs"
-    },
-    "./defaultTheme.js": {
-      "require": "./dist/default-theme.js",
-      "import": "./dist/default-theme.mjs"
-    },
-    "./colors": {
-      "require": "./dist/colors.js",
-      "import": "./dist/colors.mjs"
-    },
-    "./colors.js": {
-      "require": "./dist/colors.js",
-      "import": "./dist/colors.mjs"
-    },
-    "./lib/util/flattenColorPalette": {
-      "require": "./dist/flatten-color-palette.js",
-      "import": "./dist/flatten-color-palette.mjs"
-    },
-    "./lib/util/flattenColorPalette.js": {
-      "require": "./dist/flatten-color-palette.js",
-      "import": "./dist/flatten-color-palette.mjs"
-    },
-    "./package.json": "./package.json",
-    "./index.css": "./index.css",
-    "./index": "./index.css",
-    "./preflight.css": "./preflight.css",
-    "./preflight": "./preflight.css",
-    "./theme.css": "./theme.css",
-    "./theme": "./theme.css",
-    "./utilities.css": "./utilities.css",
-    "./utilities": "./utilities.css"
-  },
-  "publishConfig": {
-    "provenance": true,
-    "access": "public"
-  },
-  "style": "index.css",
-  "files": [
-    "dist",
-    "index.css",
-    "preflight.css",
-    "theme.css",
-    "utilities.css"
-  ],
-  "devDependencies": {
-    "@jridgewell/remapping": "^2.3.4",
-    "@types/node": "^20.19.0",
-    "dedent": "1.7.0",
-    "lightningcss": "1.30.2",
-    "magic-string": "^0.30.21",
-    "source-map-js": "^1.2.1",
-    "@tailwindcss/oxide": "^4.1.18"
-  },
-  "scripts": {
-    "lint": "tsc --noEmit",
-    "build": "tsup-node --env.NODE_ENV production",
-    "dev": "tsup-node --env.NODE_ENV development --watch",
-    "test:ui": "playwright test"
-  }
-}
Index: de_modules/tailwindcss/preflight.css
===================================================================
--- node_modules/tailwindcss/preflight.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,393 +1,0 @@
-/*
-  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-  2. Remove default margins and padding
-  3. Reset all borders.
-*/
-
-*,
-::after,
-::before,
-::backdrop,
-::file-selector-button {
-  box-sizing: border-box; /* 1 */
-  margin: 0; /* 2 */
-  padding: 0; /* 2 */
-  border: 0 solid; /* 3 */
-}
-
-/*
-  1. Use a consistent sensible line-height in all browsers.
-  2. Prevent adjustments of font size after orientation changes in iOS.
-  3. Use a more readable tab size.
-  4. Use the user's configured `sans` font-family by default.
-  5. Use the user's configured `sans` font-feature-settings by default.
-  6. Use the user's configured `sans` font-variation-settings by default.
-  7. Disable tap highlights on iOS.
-*/
-
-html,
-:host {
-  line-height: 1.5; /* 1 */
-  -webkit-text-size-adjust: 100%; /* 2 */
-  tab-size: 4; /* 3 */
-  font-family: --theme(
-    --default-font-family,
-    ui-sans-serif,
-    system-ui,
-    sans-serif,
-    'Apple Color Emoji',
-    'Segoe UI Emoji',
-    'Segoe UI Symbol',
-    'Noto Color Emoji'
-  ); /* 4 */
-  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
-  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
-  -webkit-tap-highlight-color: transparent; /* 7 */
-}
-
-/*
-  1. Add the correct height in Firefox.
-  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-  3. Reset the default border style to a 1px solid border.
-*/
-
-hr {
-  height: 0; /* 1 */
-  color: inherit; /* 2 */
-  border-top-width: 1px; /* 3 */
-}
-
-/*
-  Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-abbr:where([title]) {
-  -webkit-text-decoration: underline dotted;
-  text-decoration: underline dotted;
-}
-
-/*
-  Remove the default font size and weight for headings.
-*/
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  font-size: inherit;
-  font-weight: inherit;
-}
-
-/*
-  Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-a {
-  color: inherit;
-  -webkit-text-decoration: inherit;
-  text-decoration: inherit;
-}
-
-/*
-  Add the correct font weight in Edge and Safari.
-*/
-
-b,
-strong {
-  font-weight: bolder;
-}
-
-/*
-  1. Use the user's configured `mono` font-family by default.
-  2. Use the user's configured `mono` font-feature-settings by default.
-  3. Use the user's configured `mono` font-variation-settings by default.
-  4. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp,
-pre {
-  font-family: --theme(
-    --default-mono-font-family,
-    ui-monospace,
-    SFMono-Regular,
-    Menlo,
-    Monaco,
-    Consolas,
-    'Liberation Mono',
-    'Courier New',
-    monospace
-  ); /* 1 */
-  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
-  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
-  font-size: 1em; /* 4 */
-}
-
-/*
-  Add the correct font size in all browsers.
-*/
-
-small {
-  font-size: 80%;
-}
-
-/*
-  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-sup {
-  top: -0.5em;
-}
-
-/*
-  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-  3. Remove gaps between table borders by default.
-*/
-
-table {
-  text-indent: 0; /* 1 */
-  border-color: inherit; /* 2 */
-  border-collapse: collapse; /* 3 */
-}
-
-/*
-  Use the modern Firefox focus style for all focusable elements.
-*/
-
-:-moz-focusring {
-  outline: auto;
-}
-
-/*
-  Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-progress {
-  vertical-align: baseline;
-}
-
-/*
-  Add the correct display in Chrome and Safari.
-*/
-
-summary {
-  display: list-item;
-}
-
-/*
-  Make lists unstyled by default.
-*/
-
-ol,
-ul,
-menu {
-  list-style: none;
-}
-
-/*
-  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
-      This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-img,
-svg,
-video,
-canvas,
-audio,
-iframe,
-embed,
-object {
-  display: block; /* 1 */
-  vertical-align: middle; /* 2 */
-}
-
-/*
-  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-img,
-video {
-  max-width: 100%;
-  height: auto;
-}
-
-/*
-  1. Inherit font styles in all browsers.
-  2. Remove border radius in all browsers.
-  3. Remove background color in all browsers.
-  4. Ensure consistent opacity for disabled states in all browsers.
-*/
-
-button,
-input,
-select,
-optgroup,
-textarea,
-::file-selector-button {
-  font: inherit; /* 1 */
-  font-feature-settings: inherit; /* 1 */
-  font-variation-settings: inherit; /* 1 */
-  letter-spacing: inherit; /* 1 */
-  color: inherit; /* 1 */
-  border-radius: 0; /* 2 */
-  background-color: transparent; /* 3 */
-  opacity: 1; /* 4 */
-}
-
-/*
-  Restore default font weight.
-*/
-
-:where(select:is([multiple], [size])) optgroup {
-  font-weight: bolder;
-}
-
-/*
-  Restore indentation.
-*/
-
-:where(select:is([multiple], [size])) optgroup option {
-  padding-inline-start: 20px;
-}
-
-/*
-  Restore space after button.
-*/
-
-::file-selector-button {
-  margin-inline-end: 4px;
-}
-
-/*
-  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-*/
-
-::placeholder {
-  opacity: 1;
-}
-
-/*
-  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
-  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
-*/
-
-@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
-  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
-  ::placeholder {
-    color: color-mix(in oklab, currentcolor 50%, transparent);
-  }
-}
-
-/*
-  Prevent resizing textareas horizontally by default.
-*/
-
-textarea {
-  resize: vertical;
-}
-
-/*
-  Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-/*
-  1. Ensure date/time inputs have the same height when empty in iOS Safari.
-  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
-*/
-
-::-webkit-date-and-time-value {
-  min-height: 1lh; /* 1 */
-  text-align: inherit; /* 2 */
-}
-
-/*
-  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
-*/
-
-::-webkit-datetime-edit {
-  display: inline-flex;
-}
-
-/*
-  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
-*/
-
-::-webkit-datetime-edit-fields-wrapper {
-  padding: 0;
-}
-
-::-webkit-datetime-edit,
-::-webkit-datetime-edit-year-field,
-::-webkit-datetime-edit-month-field,
-::-webkit-datetime-edit-day-field,
-::-webkit-datetime-edit-hour-field,
-::-webkit-datetime-edit-minute-field,
-::-webkit-datetime-edit-second-field,
-::-webkit-datetime-edit-millisecond-field,
-::-webkit-datetime-edit-meridiem-field {
-  padding-block: 0;
-}
-
-/*
-  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
-*/
-
-::-webkit-calendar-picker-indicator {
-  line-height: 1;
-}
-
-/*
-  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-:-moz-ui-invalid {
-  box-shadow: none;
-}
-
-/*
-  Correct the inability to style the border radius in iOS Safari.
-*/
-
-button,
-input:where([type='button'], [type='reset'], [type='submit']),
-::file-selector-button {
-  appearance: button;
-}
-
-/*
-  Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
-  height: auto;
-}
-
-/*
-  Make elements with the HTML hidden attribute stay hidden by default.
-*/
-
-[hidden]:where(:not([hidden='until-found'])) {
-  display: none !important;
-}
Index: de_modules/tailwindcss/theme.css
===================================================================
--- node_modules/tailwindcss/theme.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,462 +1,0 @@
-@theme default {
-  --font-sans:
-    ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
-    'Noto Color Emoji';
-  --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
-  --font-mono:
-    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
-    monospace;
-
-  --color-red-50: oklch(97.1% 0.013 17.38);
-  --color-red-100: oklch(93.6% 0.032 17.717);
-  --color-red-200: oklch(88.5% 0.062 18.334);
-  --color-red-300: oklch(80.8% 0.114 19.571);
-  --color-red-400: oklch(70.4% 0.191 22.216);
-  --color-red-500: oklch(63.7% 0.237 25.331);
-  --color-red-600: oklch(57.7% 0.245 27.325);
-  --color-red-700: oklch(50.5% 0.213 27.518);
-  --color-red-800: oklch(44.4% 0.177 26.899);
-  --color-red-900: oklch(39.6% 0.141 25.723);
-  --color-red-950: oklch(25.8% 0.092 26.042);
-
-  --color-orange-50: oklch(98% 0.016 73.684);
-  --color-orange-100: oklch(95.4% 0.038 75.164);
-  --color-orange-200: oklch(90.1% 0.076 70.697);
-  --color-orange-300: oklch(83.7% 0.128 66.29);
-  --color-orange-400: oklch(75% 0.183 55.934);
-  --color-orange-500: oklch(70.5% 0.213 47.604);
-  --color-orange-600: oklch(64.6% 0.222 41.116);
-  --color-orange-700: oklch(55.3% 0.195 38.402);
-  --color-orange-800: oklch(47% 0.157 37.304);
-  --color-orange-900: oklch(40.8% 0.123 38.172);
-  --color-orange-950: oklch(26.6% 0.079 36.259);
-
-  --color-amber-50: oklch(98.7% 0.022 95.277);
-  --color-amber-100: oklch(96.2% 0.059 95.617);
-  --color-amber-200: oklch(92.4% 0.12 95.746);
-  --color-amber-300: oklch(87.9% 0.169 91.605);
-  --color-amber-400: oklch(82.8% 0.189 84.429);
-  --color-amber-500: oklch(76.9% 0.188 70.08);
-  --color-amber-600: oklch(66.6% 0.179 58.318);
-  --color-amber-700: oklch(55.5% 0.163 48.998);
-  --color-amber-800: oklch(47.3% 0.137 46.201);
-  --color-amber-900: oklch(41.4% 0.112 45.904);
-  --color-amber-950: oklch(27.9% 0.077 45.635);
-
-  --color-yellow-50: oklch(98.7% 0.026 102.212);
-  --color-yellow-100: oklch(97.3% 0.071 103.193);
-  --color-yellow-200: oklch(94.5% 0.129 101.54);
-  --color-yellow-300: oklch(90.5% 0.182 98.111);
-  --color-yellow-400: oklch(85.2% 0.199 91.936);
-  --color-yellow-500: oklch(79.5% 0.184 86.047);
-  --color-yellow-600: oklch(68.1% 0.162 75.834);
-  --color-yellow-700: oklch(55.4% 0.135 66.442);
-  --color-yellow-800: oklch(47.6% 0.114 61.907);
-  --color-yellow-900: oklch(42.1% 0.095 57.708);
-  --color-yellow-950: oklch(28.6% 0.066 53.813);
-
-  --color-lime-50: oklch(98.6% 0.031 120.757);
-  --color-lime-100: oklch(96.7% 0.067 122.328);
-  --color-lime-200: oklch(93.8% 0.127 124.321);
-  --color-lime-300: oklch(89.7% 0.196 126.665);
-  --color-lime-400: oklch(84.1% 0.238 128.85);
-  --color-lime-500: oklch(76.8% 0.233 130.85);
-  --color-lime-600: oklch(64.8% 0.2 131.684);
-  --color-lime-700: oklch(53.2% 0.157 131.589);
-  --color-lime-800: oklch(45.3% 0.124 130.933);
-  --color-lime-900: oklch(40.5% 0.101 131.063);
-  --color-lime-950: oklch(27.4% 0.072 132.109);
-
-  --color-green-50: oklch(98.2% 0.018 155.826);
-  --color-green-100: oklch(96.2% 0.044 156.743);
-  --color-green-200: oklch(92.5% 0.084 155.995);
-  --color-green-300: oklch(87.1% 0.15 154.449);
-  --color-green-400: oklch(79.2% 0.209 151.711);
-  --color-green-500: oklch(72.3% 0.219 149.579);
-  --color-green-600: oklch(62.7% 0.194 149.214);
-  --color-green-700: oklch(52.7% 0.154 150.069);
-  --color-green-800: oklch(44.8% 0.119 151.328);
-  --color-green-900: oklch(39.3% 0.095 152.535);
-  --color-green-950: oklch(26.6% 0.065 152.934);
-
-  --color-emerald-50: oklch(97.9% 0.021 166.113);
-  --color-emerald-100: oklch(95% 0.052 163.051);
-  --color-emerald-200: oklch(90.5% 0.093 164.15);
-  --color-emerald-300: oklch(84.5% 0.143 164.978);
-  --color-emerald-400: oklch(76.5% 0.177 163.223);
-  --color-emerald-500: oklch(69.6% 0.17 162.48);
-  --color-emerald-600: oklch(59.6% 0.145 163.225);
-  --color-emerald-700: oklch(50.8% 0.118 165.612);
-  --color-emerald-800: oklch(43.2% 0.095 166.913);
-  --color-emerald-900: oklch(37.8% 0.077 168.94);
-  --color-emerald-950: oklch(26.2% 0.051 172.552);
-
-  --color-teal-50: oklch(98.4% 0.014 180.72);
-  --color-teal-100: oklch(95.3% 0.051 180.801);
-  --color-teal-200: oklch(91% 0.096 180.426);
-  --color-teal-300: oklch(85.5% 0.138 181.071);
-  --color-teal-400: oklch(77.7% 0.152 181.912);
-  --color-teal-500: oklch(70.4% 0.14 182.503);
-  --color-teal-600: oklch(60% 0.118 184.704);
-  --color-teal-700: oklch(51.1% 0.096 186.391);
-  --color-teal-800: oklch(43.7% 0.078 188.216);
-  --color-teal-900: oklch(38.6% 0.063 188.416);
-  --color-teal-950: oklch(27.7% 0.046 192.524);
-
-  --color-cyan-50: oklch(98.4% 0.019 200.873);
-  --color-cyan-100: oklch(95.6% 0.045 203.388);
-  --color-cyan-200: oklch(91.7% 0.08 205.041);
-  --color-cyan-300: oklch(86.5% 0.127 207.078);
-  --color-cyan-400: oklch(78.9% 0.154 211.53);
-  --color-cyan-500: oklch(71.5% 0.143 215.221);
-  --color-cyan-600: oklch(60.9% 0.126 221.723);
-  --color-cyan-700: oklch(52% 0.105 223.128);
-  --color-cyan-800: oklch(45% 0.085 224.283);
-  --color-cyan-900: oklch(39.8% 0.07 227.392);
-  --color-cyan-950: oklch(30.2% 0.056 229.695);
-
-  --color-sky-50: oklch(97.7% 0.013 236.62);
-  --color-sky-100: oklch(95.1% 0.026 236.824);
-  --color-sky-200: oklch(90.1% 0.058 230.902);
-  --color-sky-300: oklch(82.8% 0.111 230.318);
-  --color-sky-400: oklch(74.6% 0.16 232.661);
-  --color-sky-500: oklch(68.5% 0.169 237.323);
-  --color-sky-600: oklch(58.8% 0.158 241.966);
-  --color-sky-700: oklch(50% 0.134 242.749);
-  --color-sky-800: oklch(44.3% 0.11 240.79);
-  --color-sky-900: oklch(39.1% 0.09 240.876);
-  --color-sky-950: oklch(29.3% 0.066 243.157);
-
-  --color-blue-50: oklch(97% 0.014 254.604);
-  --color-blue-100: oklch(93.2% 0.032 255.585);
-  --color-blue-200: oklch(88.2% 0.059 254.128);
-  --color-blue-300: oklch(80.9% 0.105 251.813);
-  --color-blue-400: oklch(70.7% 0.165 254.624);
-  --color-blue-500: oklch(62.3% 0.214 259.815);
-  --color-blue-600: oklch(54.6% 0.245 262.881);
-  --color-blue-700: oklch(48.8% 0.243 264.376);
-  --color-blue-800: oklch(42.4% 0.199 265.638);
-  --color-blue-900: oklch(37.9% 0.146 265.522);
-  --color-blue-950: oklch(28.2% 0.091 267.935);
-
-  --color-indigo-50: oklch(96.2% 0.018 272.314);
-  --color-indigo-100: oklch(93% 0.034 272.788);
-  --color-indigo-200: oklch(87% 0.065 274.039);
-  --color-indigo-300: oklch(78.5% 0.115 274.713);
-  --color-indigo-400: oklch(67.3% 0.182 276.935);
-  --color-indigo-500: oklch(58.5% 0.233 277.117);
-  --color-indigo-600: oklch(51.1% 0.262 276.966);
-  --color-indigo-700: oklch(45.7% 0.24 277.023);
-  --color-indigo-800: oklch(39.8% 0.195 277.366);
-  --color-indigo-900: oklch(35.9% 0.144 278.697);
-  --color-indigo-950: oklch(25.7% 0.09 281.288);
-
-  --color-violet-50: oklch(96.9% 0.016 293.756);
-  --color-violet-100: oklch(94.3% 0.029 294.588);
-  --color-violet-200: oklch(89.4% 0.057 293.283);
-  --color-violet-300: oklch(81.1% 0.111 293.571);
-  --color-violet-400: oklch(70.2% 0.183 293.541);
-  --color-violet-500: oklch(60.6% 0.25 292.717);
-  --color-violet-600: oklch(54.1% 0.281 293.009);
-  --color-violet-700: oklch(49.1% 0.27 292.581);
-  --color-violet-800: oklch(43.2% 0.232 292.759);
-  --color-violet-900: oklch(38% 0.189 293.745);
-  --color-violet-950: oklch(28.3% 0.141 291.089);
-
-  --color-purple-50: oklch(97.7% 0.014 308.299);
-  --color-purple-100: oklch(94.6% 0.033 307.174);
-  --color-purple-200: oklch(90.2% 0.063 306.703);
-  --color-purple-300: oklch(82.7% 0.119 306.383);
-  --color-purple-400: oklch(71.4% 0.203 305.504);
-  --color-purple-500: oklch(62.7% 0.265 303.9);
-  --color-purple-600: oklch(55.8% 0.288 302.321);
-  --color-purple-700: oklch(49.6% 0.265 301.924);
-  --color-purple-800: oklch(43.8% 0.218 303.724);
-  --color-purple-900: oklch(38.1% 0.176 304.987);
-  --color-purple-950: oklch(29.1% 0.149 302.717);
-
-  --color-fuchsia-50: oklch(97.7% 0.017 320.058);
-  --color-fuchsia-100: oklch(95.2% 0.037 318.852);
-  --color-fuchsia-200: oklch(90.3% 0.076 319.62);
-  --color-fuchsia-300: oklch(83.3% 0.145 321.434);
-  --color-fuchsia-400: oklch(74% 0.238 322.16);
-  --color-fuchsia-500: oklch(66.7% 0.295 322.15);
-  --color-fuchsia-600: oklch(59.1% 0.293 322.896);
-  --color-fuchsia-700: oklch(51.8% 0.253 323.949);
-  --color-fuchsia-800: oklch(45.2% 0.211 324.591);
-  --color-fuchsia-900: oklch(40.1% 0.17 325.612);
-  --color-fuchsia-950: oklch(29.3% 0.136 325.661);
-
-  --color-pink-50: oklch(97.1% 0.014 343.198);
-  --color-pink-100: oklch(94.8% 0.028 342.258);
-  --color-pink-200: oklch(89.9% 0.061 343.231);
-  --color-pink-300: oklch(82.3% 0.12 346.018);
-  --color-pink-400: oklch(71.8% 0.202 349.761);
-  --color-pink-500: oklch(65.6% 0.241 354.308);
-  --color-pink-600: oklch(59.2% 0.249 0.584);
-  --color-pink-700: oklch(52.5% 0.223 3.958);
-  --color-pink-800: oklch(45.9% 0.187 3.815);
-  --color-pink-900: oklch(40.8% 0.153 2.432);
-  --color-pink-950: oklch(28.4% 0.109 3.907);
-
-  --color-rose-50: oklch(96.9% 0.015 12.422);
-  --color-rose-100: oklch(94.1% 0.03 12.58);
-  --color-rose-200: oklch(89.2% 0.058 10.001);
-  --color-rose-300: oklch(81% 0.117 11.638);
-  --color-rose-400: oklch(71.2% 0.194 13.428);
-  --color-rose-500: oklch(64.5% 0.246 16.439);
-  --color-rose-600: oklch(58.6% 0.253 17.585);
-  --color-rose-700: oklch(51.4% 0.222 16.935);
-  --color-rose-800: oklch(45.5% 0.188 13.697);
-  --color-rose-900: oklch(41% 0.159 10.272);
-  --color-rose-950: oklch(27.1% 0.105 12.094);
-
-  --color-slate-50: oklch(98.4% 0.003 247.858);
-  --color-slate-100: oklch(96.8% 0.007 247.896);
-  --color-slate-200: oklch(92.9% 0.013 255.508);
-  --color-slate-300: oklch(86.9% 0.022 252.894);
-  --color-slate-400: oklch(70.4% 0.04 256.788);
-  --color-slate-500: oklch(55.4% 0.046 257.417);
-  --color-slate-600: oklch(44.6% 0.043 257.281);
-  --color-slate-700: oklch(37.2% 0.044 257.287);
-  --color-slate-800: oklch(27.9% 0.041 260.031);
-  --color-slate-900: oklch(20.8% 0.042 265.755);
-  --color-slate-950: oklch(12.9% 0.042 264.695);
-
-  --color-gray-50: oklch(98.5% 0.002 247.839);
-  --color-gray-100: oklch(96.7% 0.003 264.542);
-  --color-gray-200: oklch(92.8% 0.006 264.531);
-  --color-gray-300: oklch(87.2% 0.01 258.338);
-  --color-gray-400: oklch(70.7% 0.022 261.325);
-  --color-gray-500: oklch(55.1% 0.027 264.364);
-  --color-gray-600: oklch(44.6% 0.03 256.802);
-  --color-gray-700: oklch(37.3% 0.034 259.733);
-  --color-gray-800: oklch(27.8% 0.033 256.848);
-  --color-gray-900: oklch(21% 0.034 264.665);
-  --color-gray-950: oklch(13% 0.028 261.692);
-
-  --color-zinc-50: oklch(98.5% 0 0);
-  --color-zinc-100: oklch(96.7% 0.001 286.375);
-  --color-zinc-200: oklch(92% 0.004 286.32);
-  --color-zinc-300: oklch(87.1% 0.006 286.286);
-  --color-zinc-400: oklch(70.5% 0.015 286.067);
-  --color-zinc-500: oklch(55.2% 0.016 285.938);
-  --color-zinc-600: oklch(44.2% 0.017 285.786);
-  --color-zinc-700: oklch(37% 0.013 285.805);
-  --color-zinc-800: oklch(27.4% 0.006 286.033);
-  --color-zinc-900: oklch(21% 0.006 285.885);
-  --color-zinc-950: oklch(14.1% 0.005 285.823);
-
-  --color-neutral-50: oklch(98.5% 0 0);
-  --color-neutral-100: oklch(97% 0 0);
-  --color-neutral-200: oklch(92.2% 0 0);
-  --color-neutral-300: oklch(87% 0 0);
-  --color-neutral-400: oklch(70.8% 0 0);
-  --color-neutral-500: oklch(55.6% 0 0);
-  --color-neutral-600: oklch(43.9% 0 0);
-  --color-neutral-700: oklch(37.1% 0 0);
-  --color-neutral-800: oklch(26.9% 0 0);
-  --color-neutral-900: oklch(20.5% 0 0);
-  --color-neutral-950: oklch(14.5% 0 0);
-
-  --color-stone-50: oklch(98.5% 0.001 106.423);
-  --color-stone-100: oklch(97% 0.001 106.424);
-  --color-stone-200: oklch(92.3% 0.003 48.717);
-  --color-stone-300: oklch(86.9% 0.005 56.366);
-  --color-stone-400: oklch(70.9% 0.01 56.259);
-  --color-stone-500: oklch(55.3% 0.013 58.071);
-  --color-stone-600: oklch(44.4% 0.011 73.639);
-  --color-stone-700: oklch(37.4% 0.01 67.558);
-  --color-stone-800: oklch(26.8% 0.007 34.298);
-  --color-stone-900: oklch(21.6% 0.006 56.043);
-  --color-stone-950: oklch(14.7% 0.004 49.25);
-
-  --color-black: #000;
-  --color-white: #fff;
-
-  --spacing: 0.25rem;
-
-  --breakpoint-sm: 40rem;
-  --breakpoint-md: 48rem;
-  --breakpoint-lg: 64rem;
-  --breakpoint-xl: 80rem;
-  --breakpoint-2xl: 96rem;
-
-  --container-3xs: 16rem;
-  --container-2xs: 18rem;
-  --container-xs: 20rem;
-  --container-sm: 24rem;
-  --container-md: 28rem;
-  --container-lg: 32rem;
-  --container-xl: 36rem;
-  --container-2xl: 42rem;
-  --container-3xl: 48rem;
-  --container-4xl: 56rem;
-  --container-5xl: 64rem;
-  --container-6xl: 72rem;
-  --container-7xl: 80rem;
-
-  --text-xs: 0.75rem;
-  --text-xs--line-height: calc(1 / 0.75);
-  --text-sm: 0.875rem;
-  --text-sm--line-height: calc(1.25 / 0.875);
-  --text-base: 1rem;
-  --text-base--line-height: calc(1.5 / 1);
-  --text-lg: 1.125rem;
-  --text-lg--line-height: calc(1.75 / 1.125);
-  --text-xl: 1.25rem;
-  --text-xl--line-height: calc(1.75 / 1.25);
-  --text-2xl: 1.5rem;
-  --text-2xl--line-height: calc(2 / 1.5);
-  --text-3xl: 1.875rem;
-  --text-3xl--line-height: calc(2.25 / 1.875);
-  --text-4xl: 2.25rem;
-  --text-4xl--line-height: calc(2.5 / 2.25);
-  --text-5xl: 3rem;
-  --text-5xl--line-height: 1;
-  --text-6xl: 3.75rem;
-  --text-6xl--line-height: 1;
-  --text-7xl: 4.5rem;
-  --text-7xl--line-height: 1;
-  --text-8xl: 6rem;
-  --text-8xl--line-height: 1;
-  --text-9xl: 8rem;
-  --text-9xl--line-height: 1;
-
-  --font-weight-thin: 100;
-  --font-weight-extralight: 200;
-  --font-weight-light: 300;
-  --font-weight-normal: 400;
-  --font-weight-medium: 500;
-  --font-weight-semibold: 600;
-  --font-weight-bold: 700;
-  --font-weight-extrabold: 800;
-  --font-weight-black: 900;
-
-  --tracking-tighter: -0.05em;
-  --tracking-tight: -0.025em;
-  --tracking-normal: 0em;
-  --tracking-wide: 0.025em;
-  --tracking-wider: 0.05em;
-  --tracking-widest: 0.1em;
-
-  --leading-tight: 1.25;
-  --leading-snug: 1.375;
-  --leading-normal: 1.5;
-  --leading-relaxed: 1.625;
-  --leading-loose: 2;
-
-  --radius-xs: 0.125rem;
-  --radius-sm: 0.25rem;
-  --radius-md: 0.375rem;
-  --radius-lg: 0.5rem;
-  --radius-xl: 0.75rem;
-  --radius-2xl: 1rem;
-  --radius-3xl: 1.5rem;
-  --radius-4xl: 2rem;
-
-  --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
-  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
-  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
-  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
-  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
-  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
-  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
-
-  --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
-  --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
-  --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
-
-  --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
-  --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
-  --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
-  --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
-  --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
-  --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
-
-  --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
-  --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
-  --text-shadow-sm:
-    0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);
-  --text-shadow-md:
-    0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);
-  --text-shadow-lg:
-    0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);
-
-  --ease-in: cubic-bezier(0.4, 0, 1, 1);
-  --ease-out: cubic-bezier(0, 0, 0.2, 1);
-  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
-
-  --animate-spin: spin 1s linear infinite;
-  --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
-  --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
-  --animate-bounce: bounce 1s infinite;
-
-  @keyframes spin {
-    to {
-      transform: rotate(360deg);
-    }
-  }
-
-  @keyframes ping {
-    75%,
-    100% {
-      transform: scale(2);
-      opacity: 0;
-    }
-  }
-
-  @keyframes pulse {
-    50% {
-      opacity: 0.5;
-    }
-  }
-
-  @keyframes bounce {
-    0%,
-    100% {
-      transform: translateY(-25%);
-      animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
-    }
-
-    50% {
-      transform: none;
-      animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
-    }
-  }
-
-  --blur-xs: 4px;
-  --blur-sm: 8px;
-  --blur-md: 12px;
-  --blur-lg: 16px;
-  --blur-xl: 24px;
-  --blur-2xl: 40px;
-  --blur-3xl: 64px;
-
-  --perspective-dramatic: 100px;
-  --perspective-near: 300px;
-  --perspective-normal: 500px;
-  --perspective-midrange: 800px;
-  --perspective-distant: 1200px;
-
-  --aspect-video: 16 / 9;
-
-  --default-transition-duration: 150ms;
-  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  --default-font-family: --theme(--font-sans, initial);
-  --default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial);
-  --default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial);
-  --default-mono-font-family: --theme(--font-mono, initial);
-  --default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial);
-  --default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial);
-}
-
-/* Deprecated */
-@theme default inline reference {
-  --blur: 8px;
-  --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
-  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
-  --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);
-  --radius: 0.25rem;
-  --max-width-prose: 65ch;
-}
Index: de_modules/tailwindcss/utilities.css
===================================================================
--- node_modules/tailwindcss/utilities.css	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-@tailwind utilities;
Index: de_modules/tiny-invariant/LICENSE
===================================================================
--- node_modules/tiny-invariant/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2019 Alexander Reardon
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/tiny-invariant/README.md
===================================================================
--- node_modules/tiny-invariant/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,109 +1,0 @@
-# tiny-invariant 🔬💥
-
-[![Build Status](https://travis-ci.org/alexreardon/tiny-invariant.svg?branch=master)](https://travis-ci.org/alexreardon/tiny-invariant)
-[![npm](https://img.shields.io/npm/v/tiny-invariant.svg)](https://www.npmjs.com/package/tiny-invariant) [![dependencies](https://david-dm.org/alexreardon/tiny-invariant.svg)](https://david-dm.org/alexreardon/tiny-invariant)
-![types](https://img.shields.io/badge/types-typescript%20%7C%20flow-blueviolet)
-[![minzip](https://img.shields.io/bundlephobia/minzip/tiny-invariant.svg)](https://www.npmjs.com/package/tiny-invariant)
-[![Downloads per month](https://img.shields.io/npm/dm/tiny-invariant.svg)](https://www.npmjs.com/package/tiny-invariant)
-
-A tiny [`invariant`](https://www.npmjs.com/package/invariant) alternative.
-
-## What is `invariant`?
-
-An `invariant` function takes a value, and if the value is [falsy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy) then the `invariant` function will throw. If the value is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy), then the function will not throw.
-
-```js
-import invariant from 'tiny-invariant';
-
-invariant(truthyValue, 'This should not throw!');
-
-invariant(falsyValue, 'This will throw!');
-// Error('Invariant violation: This will throw!');
-```
-
-You can also provide a function to generate your message, for when your message is expensive to create
-
-```js
-import invariant from 'tiny-invariant';
-
-invariant(value, () => getExpensiveMessage());
-```
-
-## Why `tiny-invariant`?
-
-The [`library: invariant`](https://www.npmjs.com/package/invariant) supports passing in arguments to the `invariant` function in a sprintf style `(condition, format, a, b, c, d, e, f)`. It has internal logic to execute the sprintf substitutions. The sprintf logic is not removed in production builds. `tiny-invariant` has dropped all of the sprintf logic. `tiny-invariant` allows you to pass a single string message. With [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) there is really no need for a custom message formatter to be built into the library. If you need a multi part message you can just do this:
-
-```js
-invariant(condition, `Hello, ${name} - how are you today?`);
-```
-
-## Type narrowing
-
-`tiny-invariant` is useful for correctly narrowing types for `flow` and `typescript`
-
-```ts
-const value: Person | null = { name: 'Alex' }; // type of value == 'Person | null'
-invariant(value, 'Expected value to be a person');
-// type of value has been narrowed to 'Person'
-```
-
-## API: `(condition: any, message?: string | (() => string)) => void`
-
-- `condition` is required and can be anything
-- `message` optional `string` or a function that returns a `string` (`() => string`)
-
-## Installation
-
-```bash
-# yarn
-yarn add tiny-invariant
-
-# npm
-npm install tiny-invariant --save
-```
-
-## Dropping your `message` for kb savings!
-
-Big idea: you will want your compiler to convert this code:
-
-```js
-invariant(condition, 'My cool message that takes up a lot of kbs');
-```
-
-Into this:
-
-```js
-if (!condition) {
-  if ('production' !== process.env.NODE_ENV) {
-    invariant(false, 'My cool message that takes up a lot of kbs');
-  } else {
-    invariant(false);
-  }
-}
-```
-
-- **Babel**: recommend [`babel-plugin-dev-expression`](https://www.npmjs.com/package/babel-plugin-dev-expression)
-- **TypeScript**: recommend [`tsdx`](https://github.com/jaredpalmer/tsdx#invariant) (or you can run `babel-plugin-dev-expression` after TypeScript compiling)
-
-Your bundler can then drop the code in the `"production" !== process.env.NODE_ENV` block for your production builds to end up with this:
-
-```js
-if (!condition) {
-  invariant(false);
-}
-```
-
-- rollup: use [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) and set `NODE_ENV` to `production` and then `rollup` will treeshake out the unused code
-- Webpack: [instructions](https://webpack.js.org/guides/production/#specify-the-mode)
-
-## Builds
-
-- We have a `es` (EcmaScript module) build
-- We have a `cjs` (CommonJS) build
-- We have a `umd` (Universal module definition) build in case you needed it
-
-We expect `process.env.NODE_ENV` to be available at module compilation. We cache this value
-
-## That's it!
-
-🤘
Index: de_modules/tiny-invariant/dist/esm/package.json
===================================================================
--- node_modules/tiny-invariant/dist/esm/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-{ "type": "module" }
Index: de_modules/tiny-invariant/dist/esm/tiny-invariant.d.ts
===================================================================
--- node_modules/tiny-invariant/dist/esm/tiny-invariant.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
- *
- * 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
- *
- * 🤏 `message`s are not displayed in production environments to help keep bundles small
- *
- * @example
- *
- * ```ts
- * const value: Person | null = { name: 'Alex' };
- * invariant(value, 'Expected value to be a person');
- * // type of `value`` has been narrowed to `Person`
- * ```
- */
-export default function invariant(condition: any, 
-/**
- * Can provide a string, or a function that returns a string for cases where
- * the message takes a fair amount of effort to compute
- */
-message?: string | (() => string)): asserts condition;
Index: de_modules/tiny-invariant/dist/esm/tiny-invariant.js
===================================================================
--- node_modules/tiny-invariant/dist/esm/tiny-invariant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-var isProduction = process.env.NODE_ENV === 'production';
-var prefix = 'Invariant failed';
-function invariant(condition, message) {
-    if (condition) {
-        return;
-    }
-    if (isProduction) {
-        throw new Error(prefix);
-    }
-    var provided = typeof message === 'function' ? message() : message;
-    var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
-    throw new Error(value);
-}
-
-export { invariant as default };
Index: de_modules/tiny-invariant/dist/tiny-invariant.cjs.js
===================================================================
--- node_modules/tiny-invariant/dist/tiny-invariant.cjs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-'use strict';
-
-var isProduction = process.env.NODE_ENV === 'production';
-var prefix = 'Invariant failed';
-function invariant(condition, message) {
-    if (condition) {
-        return;
-    }
-    if (isProduction) {
-        throw new Error(prefix);
-    }
-    var provided = typeof message === 'function' ? message() : message;
-    var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
-    throw new Error(value);
-}
-
-module.exports = invariant;
Index: de_modules/tiny-invariant/dist/tiny-invariant.d.ts
===================================================================
--- node_modules/tiny-invariant/dist/tiny-invariant.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/**
- * `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
- *
- * 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
- *
- * 🤏 `message`s are not displayed in production environments to help keep bundles small
- *
- * @example
- *
- * ```ts
- * const value: Person | null = { name: 'Alex' };
- * invariant(value, 'Expected value to be a person');
- * // type of `value`` has been narrowed to `Person`
- * ```
- */
-export default function invariant(condition: any, 
-/**
- * Can provide a string, or a function that returns a string for cases where
- * the message takes a fair amount of effort to compute
- */
-message?: string | (() => string)): asserts condition;
Index: de_modules/tiny-invariant/dist/tiny-invariant.esm.js
===================================================================
--- node_modules/tiny-invariant/dist/tiny-invariant.esm.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-var isProduction = process.env.NODE_ENV === 'production';
-var prefix = 'Invariant failed';
-function invariant(condition, message) {
-    if (condition) {
-        return;
-    }
-    if (isProduction) {
-        throw new Error(prefix);
-    }
-    var provided = typeof message === 'function' ? message() : message;
-    var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
-    throw new Error(value);
-}
-
-export { invariant as default };
Index: de_modules/tiny-invariant/dist/tiny-invariant.js
===================================================================
--- node_modules/tiny-invariant/dist/tiny-invariant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-(function (global, factory) {
-    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
-    typeof define === 'function' && define.amd ? define(factory) :
-    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.invariant = factory());
-})(this, (function () { 'use strict';
-
-    var isProduction = process.env.NODE_ENV === 'production';
-    var prefix = 'Invariant failed';
-    function invariant(condition, message) {
-        if (condition) {
-            return;
-        }
-        if (isProduction) {
-            throw new Error(prefix);
-        }
-        var provided = typeof message === 'function' ? message() : message;
-        var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
-        throw new Error(value);
-    }
-
-    return invariant;
-
-}));
Index: de_modules/tiny-invariant/dist/tiny-invariant.min.js
===================================================================
--- node_modules/tiny-invariant/dist/tiny-invariant.min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).invariant=n()}(this,(function(){"use strict";return function(e,n){if(!e)throw new Error("Invariant failed")}}));
Index: de_modules/tiny-invariant/package.json
===================================================================
--- node_modules/tiny-invariant/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,89 +1,0 @@
-{
-  "name": "tiny-invariant",
-  "version": "1.3.3",
-  "description": "A tiny invariant function",
-  "author": "Alex Reardon <alexreardon@gmail.com>",
-  "license": "MIT",
-  "keywords": [
-    "invariant",
-    "error",
-    "assert",
-    "asserts"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/alexreardon/tiny-invariant.git"
-  },
-  "bugs": {
-    "url": "https://github.com/alexreardon/tiny-invariant/issues"
-  },
-  "main": "dist/tiny-invariant.cjs.js",
-  "module": "dist/tiny-invariant.esm.js",
-  "types": "dist/tiny-invariant.d.ts",
-  "exports": {
-    ".": {
-      "import": "./dist/esm/tiny-invariant.js",
-      "default": {
-        "types": "./dist/tiny-invariant.d.ts",
-        "default": "./dist/tiny-invariant.cjs.js"
-      }
-    }
-  },
-  "sideEffects": false,
-  "files": [
-    "/dist",
-    "/src"
-  ],
-  "size-limit": [
-    {
-      "path": "dist/tiny-invariant.min.js",
-      "limit": "217B"
-    },
-    {
-      "path": "dist/tiny-invariant.js",
-      "limit": "267B"
-    },
-    {
-      "path": "dist/tiny-invariant.cjs.js",
-      "limit": "171B"
-    },
-    {
-      "path": "dist/tiny-invariant.esm.js",
-      "import": "foo",
-      "limit": "112B"
-    }
-  ],
-  "scripts": {
-    "test": "yarn jest",
-    "test:size": "yarn build && yarn size-limit",
-    "prettier:write": "yarn prettier --debug-check src/** test/**",
-    "prettier:check": "yarn prettier --write src/** test/**",
-    "typescript:check": "tsc --noEmit",
-    "validate": "yarn prettier:check && yarn typescript:check",
-    "build:clean": "rimraf dist",
-    "build:flow": "cp src/tiny-invariant.js.flow dist/tiny-invariant.cjs.js.flow",
-    "build:typescript": "tsc ./src/tiny-invariant.ts --emitDeclarationOnly --declaration --outDir ./dist",
-    "build:typescript:esm": "tsc ./src/tiny-invariant.ts --emitDeclarationOnly --declaration --outDir ./dist/esm",
-    "build:dist": "yarn rollup --config rollup.config.mjs",
-    "build": "yarn build:clean && yarn build:dist && yarn build:typescript && yarn build:typescript:esm",
-    "prepublishOnly": "yarn build"
-  },
-  "devDependencies": {
-    "@rollup/plugin-replace": "^5.0.5",
-    "@rollup/plugin-typescript": "^11.1.6",
-    "@size-limit/preset-small-lib": "^11.0.2",
-    "@types/jest": "^29.5.12",
-    "@types/node": "^20.11.20",
-    "@types/rollup": "^0.54.0",
-    "expect-type": "^0.17.3",
-    "jest": "^29.7.0",
-    "prettier": "^3.2.5",
-    "rimraf": "^5.0.5",
-    "rollup": "^4.12.0",
-    "rollup-plugin-terser": "^7.0.2",
-    "size-limit": "^11.0.2",
-    "ts-jest": "^29.1.2",
-    "tslib": "^2.6.2",
-    "typescript": "^5.3.3"
-  }
-}
Index: de_modules/tiny-invariant/src/tiny-invariant.flow.js
===================================================================
--- node_modules/tiny-invariant/src/tiny-invariant.flow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-// @flow
-// This file is not actually executed
-// It is just used by flow for typing
-
-const prefix: string = 'Invariant failed';
-
-export default function invariant(condition: mixed, message?: string | (() => string)) {
-  if (condition) {
-    return;
-  }
-  throw new Error(`${prefix}: ${message || ''}`);
-}
Index: de_modules/tiny-invariant/src/tiny-invariant.ts
===================================================================
--- node_modules/tiny-invariant/src/tiny-invariant.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-const isProduction: boolean = process.env.NODE_ENV === 'production';
-const prefix: string = 'Invariant failed';
-
-/**
- * `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
- *
- * 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
- *
- * 🤏 `message`s are not displayed in production environments to help keep bundles small
- *
- * @example
- *
- * ```ts
- * const value: Person | null = { name: 'Alex' };
- * invariant(value, 'Expected value to be a person');
- * // type of `value`` has been narrowed to `Person`
- * ```
- */
-export default function invariant(
-  condition: any,
-  // Not providing an inline default argument for message as the result is smaller
-  /**
-   * Can provide a string, or a function that returns a string for cases where
-   * the message takes a fair amount of effort to compute
-   */
-  message?: string | (() => string),
-): asserts condition {
-  if (condition) {
-    return;
-  }
-  // Condition not passed
-
-  // In production we strip the message but still throw
-  if (isProduction) {
-    throw new Error(prefix);
-  }
-
-  // When not in production we allow the message to pass through
-  // *This block will be removed in production builds*
-
-  const provided: string | undefined = typeof message === 'function' ? message() : message;
-
-  // Options:
-  // 1. message provided: `${prefix}: ${provided}`
-  // 2. message not provided: prefix
-  const value: string = provided ? `${prefix}: ${provided}` : prefix;
-  throw new Error(value);
-}
Index: de_modules/update-browserslist-db/LICENSE
===================================================================
--- node_modules/update-browserslist-db/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-The MIT License (MIT)
-
-Copyright 2022 Andrey Sitnik <andrey@sitnik.ru> and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/update-browserslist-db/README.md
===================================================================
--- node_modules/update-browserslist-db/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-# Update Browserslist DB
-
-<img width="120" height="120" alt="Browserslist logo by Anton Popov"
-     src="https://browsersl.ist/logo.svg" align="right">
-
-CLI tool to update `caniuse-lite` with browsers DB
-from [Browserslist](https://github.com/browserslist/browserslist/) config.
-
-Some queries like `last 2 versions` or `>1%` depend on actual data
-from `caniuse-lite`.
-
-```sh
-npx update-browserslist-db@latest
-```
-Or if using `pnpm`:
-```sh
-pnpm exec update-browserslist-db latest
-```
-Or if using `yarn`:
-```sh
-yarn dlx update-browserslist-db@latest
-```
-
-<a href="https://evilmartians.com/?utm_source=update-browserslist-db">
-  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
-       alt="Sponsored by Evil Martians" width="236" height="54">
-</a>
-
-## Docs
-Read full docs **[here](https://github.com/browserslist/update-db#readme)**.
Index: de_modules/update-browserslist-db/check-npm-version.js
===================================================================
--- node_modules/update-browserslist-db/check-npm-version.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-let { execSync } = require('child_process')
-let pico = require('picocolors')
-
-try {
-  let version = parseInt(execSync('npm -v'))
-  if (version <= 6) {
-    process.stderr.write(
-      pico.red(
-        'Update npm or call ' +
-          pico.yellow('npx browserslist@latest --update-db') +
-          '\n'
-      )
-    )
-    process.exit(1)
-  }
-  // eslint-disable-next-line no-unused-vars
-} catch (e) {}
Index: de_modules/update-browserslist-db/cli.js
===================================================================
--- node_modules/update-browserslist-db/cli.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#!/usr/bin/env node
-
-let { readFileSync } = require('fs')
-let { join } = require('path')
-
-require('./check-npm-version')
-let updateDb = require('./')
-
-const ROOT = __dirname
-
-function getPackage() {
-  return JSON.parse(readFileSync(join(ROOT, 'package.json')))
-}
-
-let args = process.argv.slice(2)
-
-let USAGE = 'Usage:\n  npx update-browserslist-db\n'
-
-function isArg(arg) {
-  return args.some(i => i === arg)
-}
-
-function error(msg) {
-  process.stderr.write('update-browserslist-db: ' + msg + '\n')
-  process.exit(1)
-}
-
-if (isArg('--help') || isArg('-h')) {
-  process.stdout.write(getPackage().description + '.\n\n' + USAGE + '\n')
-} else if (isArg('--version') || isArg('-v')) {
-  process.stdout.write('browserslist-lint ' + getPackage().version + '\n')
-} else {
-  try {
-    updateDb()
-  } catch (e) {
-    if (e.name === 'BrowserslistUpdateError') {
-      error(e.message)
-    } else {
-      throw e
-    }
-  }
-}
Index: de_modules/update-browserslist-db/index.d.ts
===================================================================
--- node_modules/update-browserslist-db/index.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-/**
- * Run update and print output to terminal.
- */
-declare function updateDb(print?: (str: string) => void): void
-
-export = updateDb
Index: de_modules/update-browserslist-db/index.js
===================================================================
--- node_modules/update-browserslist-db/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,347 +1,0 @@
-let { execSync } = require('child_process')
-let escalade = require('escalade/sync')
-let { existsSync, readFileSync, writeFileSync } = require('fs')
-let { join } = require('path')
-let pico = require('picocolors')
-
-const { detectEOL, detectIndent } = require('./utils')
-
-function BrowserslistUpdateError(message) {
-  this.name = 'BrowserslistUpdateError'
-  this.message = message
-  this.browserslist = true
-  if (Error.captureStackTrace) {
-    Error.captureStackTrace(this, BrowserslistUpdateError)
-  }
-}
-
-BrowserslistUpdateError.prototype = Error.prototype
-
-// Check if HADOOP_HOME is set to determine if this is running in a Hadoop environment
-const IsHadoopExists = !!process.env.HADOOP_HOME
-const yarnCommand = IsHadoopExists ? 'yarnpkg' : 'yarn'
-
-/* c8 ignore next 3 */
-function defaultPrint(str) {
-  process.stdout.write(str)
-}
-
-function detectLockfile() {
-  let packageDir = escalade('.', (dir, names) => {
-    return names.indexOf('package.json') !== -1 ? dir : ''
-  })
-
-  if (!packageDir) {
-    throw new BrowserslistUpdateError(
-      'Cannot find package.json. ' +
-        'Is this the right directory to run `npx update-browserslist-db` in?'
-    )
-  }
-
-  let lockfileNpm = join(packageDir, 'package-lock.json')
-  let lockfileShrinkwrap = join(packageDir, 'npm-shrinkwrap.json')
-  let lockfileYarn = join(packageDir, 'yarn.lock')
-  let lockfilePnpm = join(packageDir, 'pnpm-lock.yaml')
-  let lockfileBun = join(packageDir, 'bun.lock')
-  let lockfileBunBinary = join(packageDir, 'bun.lockb')
-
-  if (existsSync(lockfilePnpm)) {
-    return { file: lockfilePnpm, mode: 'pnpm' }
-  } else if (existsSync(lockfileBun) || existsSync(lockfileBunBinary)) {
-    return { file: lockfileBun, mode: 'bun' }
-  } else if (existsSync(lockfileNpm)) {
-    return { file: lockfileNpm, mode: 'npm' }
-  } else if (existsSync(lockfileYarn)) {
-    let lock = { file: lockfileYarn, mode: 'yarn' }
-    lock.content = readFileSync(lock.file).toString()
-    lock.version = /# yarn lockfile v1/.test(lock.content) ? 1 : 2
-    return lock
-  } else if (existsSync(lockfileShrinkwrap)) {
-    return { file: lockfileShrinkwrap, mode: 'npm' }
-  }
-  throw new BrowserslistUpdateError(
-    'No lockfile found. Run "npm install", "yarn install" or "pnpm install"'
-  )
-}
-
-function getLatestInfo(lock) {
-  if (lock.mode === 'yarn') {
-    if (lock.version === 1) {
-      return JSON.parse(
-        execSync(yarnCommand + ' info caniuse-lite --json').toString()
-      ).data
-    } else {
-      return JSON.parse(
-        execSync(yarnCommand + ' npm info caniuse-lite --json').toString()
-      )
-    }
-  }
-  if (lock.mode === 'pnpm') {
-    return JSON.parse(execSync('pnpm info caniuse-lite --json').toString())
-  }
-  if (lock.mode === 'bun') {
-    return JSON.parse(execSync(' bun info caniuse-lite --json').toString())
-  }
-
-  return JSON.parse(execSync('npm show caniuse-lite --json').toString())
-}
-
-function getBrowsers() {
-  let browserslist = require('browserslist')
-  return browserslist().reduce((result, entry) => {
-    if (!result[entry[0]]) {
-      result[entry[0]] = []
-    }
-    result[entry[0]].push(entry[1])
-    return result
-  }, {})
-}
-
-function diffBrowsers(old, current) {
-  let browsers = Object.keys(old).concat(
-    Object.keys(current).filter(browser => old[browser] === undefined)
-  )
-  return browsers
-    .map(browser => {
-      let oldVersions = old[browser] || []
-      let currentVersions = current[browser] || []
-      let common = oldVersions.filter(v => currentVersions.includes(v))
-      let added = currentVersions.filter(v => !common.includes(v))
-      let removed = oldVersions.filter(v => !common.includes(v))
-      return removed
-        .map(v => pico.red('- ' + browser + ' ' + v))
-        .concat(added.map(v => pico.green('+ ' + browser + ' ' + v)))
-    })
-    .reduce((result, array) => result.concat(array), [])
-    .join('\n')
-}
-
-function updateNpmLockfile(lock, latest) {
-  let metadata = { latest, versions: [] }
-  let content = deletePackage(JSON.parse(lock.content), metadata)
-  metadata.content = JSON.stringify(content, null, detectIndent(lock.content))
-  return metadata
-}
-
-function deletePackage(node, metadata) {
-  if (node.dependencies) {
-    if (node.dependencies['caniuse-lite']) {
-      let version = node.dependencies['caniuse-lite'].version
-      metadata.versions[version] = true
-      delete node.dependencies['caniuse-lite']
-    }
-    for (let i in node.dependencies) {
-      node.dependencies[i] = deletePackage(node.dependencies[i], metadata)
-    }
-  }
-  if (node.packages) {
-    for (let path in node.packages) {
-      if (path.endsWith('/caniuse-lite')) {
-        metadata.versions[node.packages[path].version] = true
-        delete node.packages[path]
-      }
-    }
-  }
-  return node
-}
-
-let yarnVersionRe = /version "(.*?)"/
-
-function updateYarnLockfile(lock, latest) {
-  let blocks = lock.content.split(/(\n{2,})/).map(block => {
-    return block.split('\n')
-  })
-  let versions = {}
-  blocks.forEach(lines => {
-    if (lines[0].indexOf('caniuse-lite@') !== -1) {
-      let match = yarnVersionRe.exec(lines[1])
-      versions[match[1]] = true
-      if (match[1] !== latest.version) {
-        lines[1] = lines[1].replace(
-          /version "[^"]+"/,
-          'version "' + latest.version + '"'
-        )
-        lines[2] = lines[2].replace(
-          /resolved "[^"]+"/,
-          'resolved "' + latest.dist.tarball + '"'
-        )
-        if (lines.length === 4) {
-          lines[3] = latest.dist.integrity
-            ? lines[3].replace(
-                /integrity .+/,
-                'integrity ' + latest.dist.integrity
-              )
-            : ''
-        }
-      }
-    }
-  })
-  let content = blocks.map(lines => lines.join('\n')).join('')
-  return { content, versions }
-}
-
-function updateLockfile(lock, latest) {
-  if (!lock.content) lock.content = readFileSync(lock.file).toString()
-
-  let updatedLockFile
-  if (lock.mode === 'yarn') {
-    updatedLockFile = updateYarnLockfile(lock, latest)
-  } else {
-    updatedLockFile = updateNpmLockfile(lock, latest)
-  }
-  updatedLockFile.content = updatedLockFile.content.replace(
-    /\n/g,
-    detectEOL(lock.content)
-  )
-  return updatedLockFile
-}
-
-function updatePackageManually(print, lock, latest) {
-  let lockfileData = updateLockfile(lock, latest)
-  let caniuseVersions = Object.keys(lockfileData.versions).sort()
-  if (caniuseVersions.length === 1 && caniuseVersions[0] === latest.version) {
-    print(
-      'Installed version:  ' +
-        pico.bold(pico.green(caniuseVersions[0])) +
-        '\n' +
-        pico.bold(pico.green('caniuse-lite is up to date')) +
-        '\n'
-    )
-    return
-  }
-
-  if (caniuseVersions.length === 0) {
-    caniuseVersions[0] = 'none'
-  }
-  print(
-    'Installed version' +
-      (caniuseVersions.length === 1 ? ':  ' : 's: ') +
-      pico.bold(pico.red(caniuseVersions.join(', '))) +
-      '\n' +
-      'Removing old caniuse-lite from lock file\n'
-  )
-  writeFileSync(lock.file, lockfileData.content)
-
-  let install =
-    lock.mode === 'yarn' ? yarnCommand + ' add -W' : lock.mode + ' install'
-  print(
-    'Installing new caniuse-lite version\n' +
-      pico.yellow('$ ' + install + ' caniuse-lite baseline-browser-mapping') +
-      '\n'
-  )
-  try {
-    execSync(install + ' caniuse-lite baseline-browser-mapping')
-  } catch (e) /* c8 ignore start */ {
-    print(
-      pico.red(
-        '\n' +
-          e.stack +
-          '\n\n' +
-          'Problem with `' +
-          install +
-          ' caniuse-lite` call. ' +
-          'Run it manually.\n'
-      )
-    )
-    process.exit(1)
-  } /* c8 ignore end */
-
-  let del =
-    lock.mode === 'yarn' ? yarnCommand + ' remove -W' : lock.mode + ' uninstall'
-  print(
-    'Cleaning package.json dependencies from caniuse-lite\n' +
-      pico.yellow('$ ' + del + ' caniuse-lite baseline-browser-mapping') +
-      '\n'
-  )
-  execSync(del + ' caniuse-lite baseline-browser-mapping')
-}
-
-function updateWith(print, cmd) {
-  print('Updating caniuse-lite version\n' + pico.yellow('$ ' + cmd) + '\n')
-  try {
-    execSync(cmd)
-  } catch (e) /* c8 ignore start */ {
-    print(pico.red(e.stdout.toString()))
-    print(
-      pico.red(
-        '\n' +
-          e.stack +
-          '\n\n' +
-          'Problem with `' +
-          cmd +
-          '` call. ' +
-          'Run it manually.\n'
-      )
-    )
-    process.exit(1)
-  } /* c8 ignore end */
-}
-
-module.exports = function updateDB(print = defaultPrint) {
-  let lock = detectLockfile()
-  let latest = getLatestInfo(lock)
-
-  let listError
-  let oldList
-  try {
-    oldList = getBrowsers()
-  } catch (e) {
-    listError = e
-  }
-
-  print('Latest version:     ' + pico.bold(pico.green(latest.version)) + '\n')
-
-  if (lock.mode === 'yarn' && lock.version !== 1) {
-    updateWith(
-      print,
-      yarnCommand + ' up -R caniuse-lite baseline-browser-mapping'
-    )
-  } else if (lock.mode === 'pnpm') {
-    let lockContent = readFileSync(lock.file).toString()
-    let packages = lockContent.includes('baseline-browser-mapping')
-      ? 'caniuse-lite baseline-browser-mapping'
-      : 'caniuse-lite'
-    updateWith(print, 'pnpm up --depth=Infinity --no-save ' + packages)
-  } else if (lock.mode === 'bun') {
-    updateWith(print, 'bun update caniuse-lite baseline-browser-mapping')
-  } else {
-    updatePackageManually(print, lock, latest)
-  }
-
-  print('caniuse-lite has been successfully updated\n')
-
-  let newList
-  if (!listError) {
-    try {
-      newList = getBrowsers()
-    } catch (e) /* c8 ignore start */ {
-      listError = e
-    } /* c8 ignore end */
-  }
-
-  if (listError) {
-    if (listError.message.includes("Cannot find module 'browserslist'")) {
-      print(
-        pico.gray(
-          'Install `browserslist` to your direct dependencies ' +
-            'to see target browser changes\n'
-        )
-      )
-    } else {
-      print(
-        pico.gray(
-          'Problem with browser list retrieval.\n' +
-            'Target browser changes won’t be shown.\n'
-        )
-      )
-    }
-  } else {
-    let changes = diffBrowsers(oldList, newList)
-    if (changes) {
-      print('\nTarget browser changes:\n')
-      print(changes + '\n')
-    } else {
-      print('\n' + pico.green('No target browser changes') + '\n')
-    }
-  }
-}
Index: de_modules/update-browserslist-db/package.json
===================================================================
--- node_modules/update-browserslist-db/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,40 +1,0 @@
-{
-  "name": "update-browserslist-db",
-  "version": "1.2.3",
-  "description": "CLI tool to update caniuse-lite to refresh target browsers from Browserslist config",
-  "keywords": [
-    "caniuse",
-    "browsers",
-    "target"
-  ],
-  "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"
-    }
-  ],
-  "author": "Andrey Sitnik <andrey@sitnik.ru>",
-  "license": "MIT",
-  "repository": "browserslist/update-db",
-  "types": "./index.d.ts",
-  "exports": {
-    ".": "./index.js",
-    "./package.json": "./package.json"
-  },
-  "dependencies": {
-    "escalade": "^3.2.0",
-    "picocolors": "^1.1.1"
-  },
-  "peerDependencies": {
-    "browserslist": ">= 4.21.0"
-  },
-  "bin": "cli.js"
-}
Index: de_modules/update-browserslist-db/utils.js
===================================================================
--- node_modules/update-browserslist-db/utils.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-const { EOL } = require('os')
-
-const getFirstRegexpMatchOrDefault = (text, regexp, defaultValue) => {
-  regexp.lastIndex = 0 // https://stackoverflow.com/a/11477448/4536543
-  let match = regexp.exec(text)
-  if (match !== null) {
-    return match[1]
-  } else {
-    return defaultValue
-  }
-}
-
-const DEFAULT_INDENT = '  '
-const INDENT_REGEXP = /^([ \t]+)[^\s]/m
-
-module.exports.detectIndent = text =>
-  getFirstRegexpMatchOrDefault(text, INDENT_REGEXP, DEFAULT_INDENT)
-module.exports.DEFAULT_INDENT = DEFAULT_INDENT
-
-const DEFAULT_EOL = EOL
-const EOL_REGEXP = /(\r\n|\n|\r)/g
-
-module.exports.detectEOL = text =>
-  getFirstRegexpMatchOrDefault(text, EOL_REGEXP, DEFAULT_EOL)
-module.exports.DEFAULT_EOL = DEFAULT_EOL
Index: de_modules/use-sync-external-store/LICENSE
===================================================================
--- node_modules/use-sync-external-store/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) Meta Platforms, Inc. and affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: de_modules/use-sync-external-store/README.md
===================================================================
--- node_modules/use-sync-external-store/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-# use-sync-external-store
-
-Backwards-compatible shim for [`React.useSyncExternalStore`](https://reactjs.org/docs/hooks-reference.html#usesyncexternalstore). Works with any React that supports Hooks.
-
-See also https://github.com/reactwg/react-18/discussions/86.
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,95 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function useSyncExternalStore$2(subscribe, getSnapshot) {
-      didWarnOld18Alpha ||
-        void 0 === React.startTransition ||
-        ((didWarnOld18Alpha = !0),
-        console.error(
-          "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
-        ));
-      var value = getSnapshot();
-      if (!didWarnUncachedGetSnapshot) {
-        var cachedValue = getSnapshot();
-        objectIs(value, cachedValue) ||
-          (console.error(
-            "The result of getSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      }
-      cachedValue = useState({
-        inst: { value: value, getSnapshot: getSnapshot }
-      });
-      var inst = cachedValue[0].inst,
-        forceUpdate = cachedValue[1];
-      useLayoutEffect(
-        function () {
-          inst.value = value;
-          inst.getSnapshot = getSnapshot;
-          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-        },
-        [subscribe, value, getSnapshot]
-      );
-      useEffect(
-        function () {
-          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-          return subscribe(function () {
-            checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-          });
-        },
-        [subscribe]
-      );
-      useDebugValue(value);
-      return value;
-    }
-    function checkIfSnapshotChanged(inst) {
-      var latestGetSnapshot = inst.getSnapshot;
-      inst = inst.value;
-      try {
-        var nextValue = latestGetSnapshot();
-        return !objectIs(inst, nextValue);
-      } catch (error) {
-        return !0;
-      }
-    }
-    function useSyncExternalStore$1(subscribe, getSnapshot) {
-      return getSnapshot();
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var React = require("react"),
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      useState = React.useState,
-      useEffect = React.useEffect,
-      useLayoutEffect = React.useLayoutEffect,
-      useDebugValue = React.useDebugValue,
-      didWarnOld18Alpha = !1,
-      didWarnUncachedGetSnapshot = !1,
-      shim =
-        "undefined" === typeof window ||
-        "undefined" === typeof window.document ||
-        "undefined" === typeof window.document.createElement
-          ? useSyncExternalStore$1
-          : useSyncExternalStore$2;
-    exports.useSyncExternalStore =
-      void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,88 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.native.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    function useSyncExternalStore$1(subscribe, getSnapshot) {
-      didWarnOld18Alpha ||
-        void 0 === React.startTransition ||
-        ((didWarnOld18Alpha = !0),
-        console.error(
-          "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
-        ));
-      var value = getSnapshot();
-      if (!didWarnUncachedGetSnapshot) {
-        var cachedValue = getSnapshot();
-        objectIs(value, cachedValue) ||
-          (console.error(
-            "The result of getSnapshot should be cached to avoid an infinite loop"
-          ),
-          (didWarnUncachedGetSnapshot = !0));
-      }
-      cachedValue = useState({
-        inst: { value: value, getSnapshot: getSnapshot }
-      });
-      var inst = cachedValue[0].inst,
-        forceUpdate = cachedValue[1];
-      useLayoutEffect(
-        function () {
-          inst.value = value;
-          inst.getSnapshot = getSnapshot;
-          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-        },
-        [subscribe, value, getSnapshot]
-      );
-      useEffect(
-        function () {
-          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-          return subscribe(function () {
-            checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-          });
-        },
-        [subscribe]
-      );
-      useDebugValue(value);
-      return value;
-    }
-    function checkIfSnapshotChanged(inst) {
-      var latestGetSnapshot = inst.getSnapshot;
-      inst = inst.value;
-      try {
-        var nextValue = latestGetSnapshot();
-        return !objectIs(inst, nextValue);
-      } catch (error) {
-        return !0;
-      }
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var React = require("react"),
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      useState = React.useState,
-      useEffect = React.useEffect,
-      useLayoutEffect = React.useLayoutEffect,
-      useDebugValue = React.useDebugValue,
-      didWarnOld18Alpha = !1,
-      didWarnUncachedGetSnapshot = !1;
-    exports.useSyncExternalStore =
-      void 0 !== React.useSyncExternalStore
-        ? React.useSyncExternalStore
-        : useSyncExternalStore$1;
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.native.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.
- */
-
-"use strict";
-var React = require("react");
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  useState = React.useState,
-  useEffect = React.useEffect,
-  useLayoutEffect = React.useLayoutEffect,
-  useDebugValue = React.useDebugValue;
-function useSyncExternalStore$1(subscribe, getSnapshot) {
-  var value = getSnapshot(),
-    _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),
-    inst = _useState[0].inst,
-    forceUpdate = _useState[1];
-  useLayoutEffect(
-    function () {
-      inst.value = value;
-      inst.getSnapshot = getSnapshot;
-      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-    },
-    [subscribe, value, getSnapshot]
-  );
-  useEffect(
-    function () {
-      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-      return subscribe(function () {
-        checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-      });
-    },
-    [subscribe]
-  );
-  useDebugValue(value);
-  return value;
-}
-function checkIfSnapshotChanged(inst) {
-  var latestGetSnapshot = inst.getSnapshot;
-  inst = inst.value;
-  try {
-    var nextValue = latestGetSnapshot();
-    return !objectIs(inst, nextValue);
-  } catch (error) {
-    return !0;
-  }
-}
-exports.useSyncExternalStore =
-  void 0 !== React.useSyncExternalStore
-    ? React.useSyncExternalStore
-    : useSyncExternalStore$1;
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/**
- * @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.
- */
-
-"use strict";
-var React = require("react");
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  useState = React.useState,
-  useEffect = React.useEffect,
-  useLayoutEffect = React.useLayoutEffect,
-  useDebugValue = React.useDebugValue;
-function useSyncExternalStore$2(subscribe, getSnapshot) {
-  var value = getSnapshot(),
-    _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),
-    inst = _useState[0].inst,
-    forceUpdate = _useState[1];
-  useLayoutEffect(
-    function () {
-      inst.value = value;
-      inst.getSnapshot = getSnapshot;
-      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-    },
-    [subscribe, value, getSnapshot]
-  );
-  useEffect(
-    function () {
-      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-      return subscribe(function () {
-        checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
-      });
-    },
-    [subscribe]
-  );
-  useDebugValue(value);
-  return value;
-}
-function checkIfSnapshotChanged(inst) {
-  var latestGetSnapshot = inst.getSnapshot;
-  inst = inst.value;
-  try {
-    var nextValue = latestGetSnapshot();
-    return !objectIs(inst, nextValue);
-  } catch (error) {
-    return !0;
-  }
-}
-function useSyncExternalStore$1(subscribe, getSnapshot) {
-  return getSnapshot();
-}
-var shim =
-  "undefined" === typeof window ||
-  "undefined" === typeof window.document ||
-  "undefined" === typeof window.document.createElement
-    ? useSyncExternalStore$1
-    : useSyncExternalStore$2;
-exports.useSyncExternalStore =
-  void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-shim/with-selector.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var React = require("react"),
-      shim = require("use-sync-external-store/shim"),
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      useSyncExternalStore = shim.useSyncExternalStore,
-      useRef = React.useRef,
-      useEffect = React.useEffect,
-      useMemo = React.useMemo,
-      useDebugValue = React.useDebugValue;
-    exports.useSyncExternalStoreWithSelector = function (
-      subscribe,
-      getSnapshot,
-      getServerSnapshot,
-      selector,
-      isEqual
-    ) {
-      var instRef = useRef(null);
-      if (null === instRef.current) {
-        var inst = { hasValue: !1, value: null };
-        instRef.current = inst;
-      } else inst = instRef.current;
-      instRef = useMemo(
-        function () {
-          function memoizedSelector(nextSnapshot) {
-            if (!hasMemo) {
-              hasMemo = !0;
-              memoizedSnapshot = nextSnapshot;
-              nextSnapshot = selector(nextSnapshot);
-              if (void 0 !== isEqual && inst.hasValue) {
-                var currentSelection = inst.value;
-                if (isEqual(currentSelection, nextSnapshot))
-                  return (memoizedSelection = currentSelection);
-              }
-              return (memoizedSelection = nextSnapshot);
-            }
-            currentSelection = memoizedSelection;
-            if (objectIs(memoizedSnapshot, nextSnapshot))
-              return currentSelection;
-            var nextSelection = selector(nextSnapshot);
-            if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
-              return (memoizedSnapshot = nextSnapshot), currentSelection;
-            memoizedSnapshot = nextSnapshot;
-            return (memoizedSelection = nextSelection);
-          }
-          var hasMemo = !1,
-            memoizedSnapshot,
-            memoizedSelection,
-            maybeGetServerSnapshot =
-              void 0 === getServerSnapshot ? null : getServerSnapshot;
-          return [
-            function () {
-              return memoizedSelector(getSnapshot());
-            },
-            null === maybeGetServerSnapshot
-              ? void 0
-              : function () {
-                  return memoizedSelector(maybeGetServerSnapshot());
-                }
-          ];
-        },
-        [getSnapshot, getServerSnapshot, selector, isEqual]
-      );
-      var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
-      useEffect(
-        function () {
-          inst.hasValue = !0;
-          inst.value = value;
-        },
-        [value]
-      );
-      useDebugValue(value);
-      return value;
-    };
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,85 +1,0 @@
-/**
- * @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.
- */
-
-"use strict";
-var React = require("react"),
-  shim = require("use-sync-external-store/shim");
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  useSyncExternalStore = shim.useSyncExternalStore,
-  useRef = React.useRef,
-  useEffect = React.useEffect,
-  useMemo = React.useMemo,
-  useDebugValue = React.useDebugValue;
-exports.useSyncExternalStoreWithSelector = function (
-  subscribe,
-  getSnapshot,
-  getServerSnapshot,
-  selector,
-  isEqual
-) {
-  var instRef = useRef(null);
-  if (null === instRef.current) {
-    var inst = { hasValue: !1, value: null };
-    instRef.current = inst;
-  } else inst = instRef.current;
-  instRef = useMemo(
-    function () {
-      function memoizedSelector(nextSnapshot) {
-        if (!hasMemo) {
-          hasMemo = !0;
-          memoizedSnapshot = nextSnapshot;
-          nextSnapshot = selector(nextSnapshot);
-          if (void 0 !== isEqual && inst.hasValue) {
-            var currentSelection = inst.value;
-            if (isEqual(currentSelection, nextSnapshot))
-              return (memoizedSelection = currentSelection);
-          }
-          return (memoizedSelection = nextSnapshot);
-        }
-        currentSelection = memoizedSelection;
-        if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;
-        var nextSelection = selector(nextSnapshot);
-        if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
-          return (memoizedSnapshot = nextSnapshot), currentSelection;
-        memoizedSnapshot = nextSnapshot;
-        return (memoizedSelection = nextSelection);
-      }
-      var hasMemo = !1,
-        memoizedSnapshot,
-        memoizedSelection,
-        maybeGetServerSnapshot =
-          void 0 === getServerSnapshot ? null : getServerSnapshot;
-      return [
-        function () {
-          return memoizedSelector(getSnapshot());
-        },
-        null === maybeGetServerSnapshot
-          ? void 0
-          : function () {
-              return memoizedSelector(maybeGetServerSnapshot());
-            }
-      ];
-    },
-    [getSnapshot, getServerSnapshot, selector, isEqual]
-  );
-  var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
-  useEffect(
-    function () {
-      inst.hasValue = !0;
-      inst.value = value;
-    },
-    [value]
-  );
-  useDebugValue(value);
-  return value;
-};
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,96 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-with-selector.development.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.
- */
-
-"use strict";
-"production" !== process.env.NODE_ENV &&
-  (function () {
-    function is(x, y) {
-      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-    }
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-    var React = require("react"),
-      objectIs = "function" === typeof Object.is ? Object.is : is,
-      useSyncExternalStore = React.useSyncExternalStore,
-      useRef = React.useRef,
-      useEffect = React.useEffect,
-      useMemo = React.useMemo,
-      useDebugValue = React.useDebugValue;
-    exports.useSyncExternalStoreWithSelector = function (
-      subscribe,
-      getSnapshot,
-      getServerSnapshot,
-      selector,
-      isEqual
-    ) {
-      var instRef = useRef(null);
-      if (null === instRef.current) {
-        var inst = { hasValue: !1, value: null };
-        instRef.current = inst;
-      } else inst = instRef.current;
-      instRef = useMemo(
-        function () {
-          function memoizedSelector(nextSnapshot) {
-            if (!hasMemo) {
-              hasMemo = !0;
-              memoizedSnapshot = nextSnapshot;
-              nextSnapshot = selector(nextSnapshot);
-              if (void 0 !== isEqual && inst.hasValue) {
-                var currentSelection = inst.value;
-                if (isEqual(currentSelection, nextSnapshot))
-                  return (memoizedSelection = currentSelection);
-              }
-              return (memoizedSelection = nextSnapshot);
-            }
-            currentSelection = memoizedSelection;
-            if (objectIs(memoizedSnapshot, nextSnapshot))
-              return currentSelection;
-            var nextSelection = selector(nextSnapshot);
-            if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
-              return (memoizedSnapshot = nextSnapshot), currentSelection;
-            memoizedSnapshot = nextSnapshot;
-            return (memoizedSelection = nextSelection);
-          }
-          var hasMemo = !1,
-            memoizedSnapshot,
-            memoizedSelection,
-            maybeGetServerSnapshot =
-              void 0 === getServerSnapshot ? null : getServerSnapshot;
-          return [
-            function () {
-              return memoizedSelector(getSnapshot());
-            },
-            null === maybeGetServerSnapshot
-              ? void 0
-              : function () {
-                  return memoizedSelector(maybeGetServerSnapshot());
-                }
-          ];
-        },
-        [getSnapshot, getServerSnapshot, selector, isEqual]
-      );
-      var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
-      useEffect(
-        function () {
-          inst.hasValue = !0;
-          inst.value = value;
-        },
-        [value]
-      );
-      useDebugValue(value);
-      return value;
-    };
-    "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-      "function" ===
-        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-  })();
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,84 +1,0 @@
-/**
- * @license React
- * use-sync-external-store-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.
- */
-
-"use strict";
-var React = require("react");
-function is(x, y) {
-  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
-}
-var objectIs = "function" === typeof Object.is ? Object.is : is,
-  useSyncExternalStore = React.useSyncExternalStore,
-  useRef = React.useRef,
-  useEffect = React.useEffect,
-  useMemo = React.useMemo,
-  useDebugValue = React.useDebugValue;
-exports.useSyncExternalStoreWithSelector = function (
-  subscribe,
-  getSnapshot,
-  getServerSnapshot,
-  selector,
-  isEqual
-) {
-  var instRef = useRef(null);
-  if (null === instRef.current) {
-    var inst = { hasValue: !1, value: null };
-    instRef.current = inst;
-  } else inst = instRef.current;
-  instRef = useMemo(
-    function () {
-      function memoizedSelector(nextSnapshot) {
-        if (!hasMemo) {
-          hasMemo = !0;
-          memoizedSnapshot = nextSnapshot;
-          nextSnapshot = selector(nextSnapshot);
-          if (void 0 !== isEqual && inst.hasValue) {
-            var currentSelection = inst.value;
-            if (isEqual(currentSelection, nextSnapshot))
-              return (memoizedSelection = currentSelection);
-          }
-          return (memoizedSelection = nextSnapshot);
-        }
-        currentSelection = memoizedSelection;
-        if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;
-        var nextSelection = selector(nextSnapshot);
-        if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
-          return (memoizedSnapshot = nextSnapshot), currentSelection;
-        memoizedSnapshot = nextSnapshot;
-        return (memoizedSelection = nextSelection);
-      }
-      var hasMemo = !1,
-        memoizedSnapshot,
-        memoizedSelection,
-        maybeGetServerSnapshot =
-          void 0 === getServerSnapshot ? null : getServerSnapshot;
-      return [
-        function () {
-          return memoizedSelector(getSnapshot());
-        },
-        null === maybeGetServerSnapshot
-          ? void 0
-          : function () {
-              return memoizedSelector(maybeGetServerSnapshot());
-            }
-      ];
-    },
-    [getSnapshot, getServerSnapshot, selector, isEqual]
-  );
-  var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
-  useEffect(
-    function () {
-      inst.hasValue = !0;
-      inst.value = value;
-    },
-    [value]
-  );
-  useDebugValue(value);
-  return value;
-};
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store.development.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/**
- * @license React
- * use-sync-external-store.development.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.
- */
-
-"use strict";
-if ("production" !== process.env.NODE_ENV) {
-  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-    "function" ===
-      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
-    __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
-  var useSyncExternalStore$jscomp$inline_1 =
-    require("react").useSyncExternalStore;
-  console.error(
-    "The main 'use-sync-external-store' entry point is not supported; all it does is re-export useSyncExternalStore from the 'react' package, so it only works with React 18+.\n\nIf you wish to support React 16 and 17, import from 'use-sync-external-store/shim' instead. It will fall back to a shimmed implementation when the native one is not available.\n\nIf you only support React 18+, you can import directly from 'react'."
-  );
-  exports.useSyncExternalStore = useSyncExternalStore$jscomp$inline_1;
-  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
-    "function" ===
-      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
-    __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
-}
Index: de_modules/use-sync-external-store/cjs/use-sync-external-store.production.js
===================================================================
--- node_modules/use-sync-external-store/cjs/use-sync-external-store.production.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-/**
- * @license React
- * use-sync-external-store.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.
- */
-
-"use strict";
-var useSyncExternalStore = require("react").useSyncExternalStore;
-exports.useSyncExternalStore = useSyncExternalStore;
Index: de_modules/use-sync-external-store/index.js
===================================================================
--- node_modules/use-sync-external-store/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/use-sync-external-store.production.js');
-} else {
-  module.exports = require('./cjs/use-sync-external-store.development.js');
-}
Index: de_modules/use-sync-external-store/package.json
===================================================================
--- node_modules/use-sync-external-store/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-{
-  "name": "use-sync-external-store",
-  "description": "Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks.",
-  "version": "1.6.0",
-  "exports": {
-    ".": "./index.js",
-    "./with-selector": "./with-selector.js",
-    "./with-selector.js": "./with-selector.js",
-    "./shim": {
-      "react-native": "./shim/index.native.js",
-      "default": "./shim/index.js"
-    },
-    "./shim/index.js": "./shim/index.js",
-    "./shim/index.native": "./shim/index.native.js",
-    "./shim/index.native.js": "./shim/index.native.js",
-    "./shim/with-selector": "./shim/with-selector.js",
-    "./shim/with-selector.js": "./shim/with-selector.js",
-    "./package.json": "./package.json"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/use-sync-external-store"
-  },
-  "files": [
-    "LICENSE",
-    "README.md",
-    "index.js",
-    "index.native.js",
-    "with-selector.js",
-    "with-selector.native.js",
-    "shim/",
-    "cjs/"
-  ],
-  "license": "MIT",
-  "peerDependencies": {
-    "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-  },
-  "devDependencies": {
-    "react-17": "npm:react@^17",
-    "react-dom-17": "npm:react-dom@^17"
-  }
-}
Index: de_modules/use-sync-external-store/shim/index.js
===================================================================
--- node_modules/use-sync-external-store/shim/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('../cjs/use-sync-external-store-shim.production.js');
-} else {
-  module.exports = require('../cjs/use-sync-external-store-shim.development.js');
-}
Index: de_modules/use-sync-external-store/shim/index.native.js
===================================================================
--- node_modules/use-sync-external-store/shim/index.native.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('../cjs/use-sync-external-store-shim.native.production.js');
-} else {
-  module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');
-}
Index: de_modules/use-sync-external-store/shim/with-selector.js
===================================================================
--- node_modules/use-sync-external-store/shim/with-selector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');
-} else {
-  module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');
-}
Index: de_modules/use-sync-external-store/with-selector.js
===================================================================
--- node_modules/use-sync-external-store/with-selector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');
-} else {
-  module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');
-}
Index: de_modules/victory-vendor/CHANGELOG.md
===================================================================
--- node_modules/victory-vendor/CHANGELOG.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-# victory-vendor
-
-## 37.3.6
-
-## 37.3.5
-
-## 37.3.4
-
-## 37.3.3
-
-## 37.3.2
-
-## 37.3.1
-
-## 37.3.0
-
-## 37.2.0
-
-## 37.1.2
-
-### Patch Changes
-
-- Fix victory-native container styles ([`eae3fe5dd`](https://github.com/FormidableLabs/victory/commit/eae3fe5dde175e68e146576655cb2e8054ad6456))
-
-## 37.1.1
-
-## 37.1.0
-
-## 37.0.2
-
-## 37.0.1
-
-## 37.0.0
-
-### Major Changes
-
-- Upgrade babel dependencies and build target to modern browsers ([#2804](https://github.com/FormidableLabs/victory/pull/2804))
-
-## 36.9.2
-
-## 36.9.1
-
-## 36.9.0
-
-## 36.8.6
-
-## 36.8.5
-
-### Patch Changes
-
-- Replace instances of lodash.assign with Object.assign ([#2757](https://github.com/FormidableLabs/victory/pull/2757))
-
-## 36.8.4
-
-## 36.8.3
-
-## 36.8.2
-
-## 36.8.1
-
-## 36.8.0
-
-## 36.7.0
-
-## 36.6.12
-
-## 36.6.11
-
-## 36.6.10
-
-### Patch Changes
-
-- Setup NPM Provenance ([#2590](https://github.com/FormidableLabs/victory/pull/2590))
-
-## 36.6.9
-
-### Patch Changes
-
-- Setup NPM Provenance ([#2587](https://github.com/FormidableLabs/victory/pull/2587))
-
-## 36.6.8
-
-## 36.6.7
-
-## 36.6.6
-
-## 36.6.5
-
-### Patch Changes
-
-- Export types directly from d3-\* (fixes [#2439](https://github.com/FormidableLabs/victory/issues/2439)) ([#2440](https://github.com/FormidableLabs/victory/pull/2440))
-
-## 36.6.4
-
-### Patch Changes
-
-- Allow data accessors to accept any data types (fixes [#2360](https://github.com/FormidableLabs/victory/issues/2360)) ([#2436](https://github.com/FormidableLabs/victory/pull/2436))
-
-## 36.6.3
-
-### Patch Changes
-
-- Do not generate \*.js.map sourcemaps (fixes [#2346](https://github.com/FormidableLabs/victory/issues/2346)) ([#2432](https://github.com/FormidableLabs/victory/pull/2432))
-
-## 36.6.2
-
-## 36.6.1
-
-## 36.6.0
-
-### Patch Changes
-
-- Update source code with minor lint-based improvements (see [#2236](https://github.com/FormidableLabs/victory/issues/2236)). ([#2403](https://github.com/FormidableLabs/victory/pull/2403))
-
-## 36.5.3 and earlier
-
-Change history for version 36.5.3 and earlier can be found in our root [CHANGELOG.md](https://github.com/FormidableLabs/victory/blob/main/CHANGELOG.md).
Index: de_modules/victory-vendor/README.md
===================================================================
--- node_modules/victory-vendor/README.md	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-# VictoryVendor
-
-Vendored dependencies for Victory.
-
-## Background
-
-D3 has released most of its libraries as ESM-only. This means that consumers in Node.js applications can no longer just `require()` anything with a d3 transitive dependency, including much of Victory.
-
-To help provide an easy path to folks still using CommonJS in their Node.js applications that consume Victory, we now provide this package to vendor in various d3-related packages.
-
-## Packages
-
-We presently provide the following top-level libraries:
-<!-- cat packages/victory-vendor/package.json | egrep '"d3-' | egrep -o 'd3-[^"]*'| sor t-->
-
-- d3-ease
-- d3-interpolate
-- d3-scale
-- d3-shape
-- d3-timer
-
-This is the total list of top and transitive libraries we vendor:
-<!-- ls packages/victory-vendor/lib-vendor | sort -->
-
-- d3-array
-- d3-color
-- d3-ease
-- d3-format
-- d3-interpolate
-- d3-path
-- d3-scale
-- d3-shape
-- d3-time
-- d3-time-format
-- d3-timer
-- internmap
-
-Note that this does _not_ include the following D3 libraries that still support CommonJS:
-
-- d3-voronoi
-
-## How it works
-
-We provide two alternate paths and behaviors -- for ESM and CommonJS
-
-### ESM
-
-If you do a Node.js import like:
-
-```js
-import { interpolate } from "victory-vendor/d3-interpolate";
-```
-
-under the hood it's going to just re-export and pass you through to `node_modules/d3-interpolate`, the **real** ESM library from D3.
-
-### CommonJS
-
-If you do a Node.js import like:
-
-```js
-const { interpolate } = require("victory-vendor/d3-interpolate");
-```
-
-under the hood it's going to will go to an alternate path that contains the transpiled version of the underlying d3 library to be found at `victory-vendor/lib-vendor/d3-interpolate/**/*.js`. This futher has internally consistent import references to other `victory-vendor/lib-vendor/<pkg-name>` paths.
-
-Note that for some tooling (like Jest) that doesn't play well with `package.json:exports` routing to this CommonJS path, we **also** output a root file in the form of `victory-vendor/d3-interpolate.js`.
-
-## Licenses
-
-This project is released under the MIT license, but the vendor'ed in libraries include other licenses (e.g. ISC) that we enumerate in our `package.json:license` field.
Index: de_modules/victory-vendor/d3-array.d.ts
===================================================================
--- node_modules/victory-vendor/d3-array.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-array` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-array";
Index: de_modules/victory-vendor/d3-array.js
===================================================================
--- node_modules/victory-vendor/d3-array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-array` (CommonJS)
-// See upstream license: https://github.com/d3/d3-array/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-array");
Index: de_modules/victory-vendor/d3-ease.d.ts
===================================================================
--- node_modules/victory-vendor/d3-ease.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-ease` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-ease";
Index: de_modules/victory-vendor/d3-ease.js
===================================================================
--- node_modules/victory-vendor/d3-ease.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-ease` (CommonJS)
-// See upstream license: https://github.com/d3/d3-ease/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-ease");
Index: de_modules/victory-vendor/d3-interpolate.d.ts
===================================================================
--- node_modules/victory-vendor/d3-interpolate.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-interpolate` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-interpolate";
Index: de_modules/victory-vendor/d3-interpolate.js
===================================================================
--- node_modules/victory-vendor/d3-interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-interpolate` (CommonJS)
-// See upstream license: https://github.com/d3/d3-interpolate/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-interpolate");
Index: de_modules/victory-vendor/d3-scale.d.ts
===================================================================
--- node_modules/victory-vendor/d3-scale.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-scale` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-scale";
Index: de_modules/victory-vendor/d3-scale.js
===================================================================
--- node_modules/victory-vendor/d3-scale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-scale` (CommonJS)
-// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-scale");
Index: de_modules/victory-vendor/d3-shape.d.ts
===================================================================
--- node_modules/victory-vendor/d3-shape.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-shape` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-shape";
Index: de_modules/victory-vendor/d3-shape.js
===================================================================
--- node_modules/victory-vendor/d3-shape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-shape` (CommonJS)
-// See upstream license: https://github.com/d3/d3-shape/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-shape");
Index: de_modules/victory-vendor/d3-time.d.ts
===================================================================
--- node_modules/victory-vendor/d3-time.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-time` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-time";
Index: de_modules/victory-vendor/d3-time.js
===================================================================
--- node_modules/victory-vendor/d3-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-time` (CommonJS)
-// See upstream license: https://github.com/d3/d3-time/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-time");
Index: de_modules/victory-vendor/d3-timer.d.ts
===================================================================
--- node_modules/victory-vendor/d3-timer.d.ts	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5 +1,0 @@
-
-// `victory-vendor/d3-timer` (TypeScript)
-//
-// Export the type definitions for this package:
-export * from "d3-timer";
Index: de_modules/victory-vendor/d3-timer.js
===================================================================
--- node_modules/victory-vendor/d3-timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-
-// `victory-vendor/d3-timer` (CommonJS)
-// See upstream license: https://github.com/d3/d3-timer/blob/main/LICENSE
-//
-// This file only exists for tooling that doesn't work yet with package.json:exports
-// by proxying through the CommonJS version.
-module.exports = require("./lib/d3-timer");
Index: de_modules/victory-vendor/es/d3-array.js
===================================================================
--- node_modules/victory-vendor/es/d3-array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-array` (ESM)
-// See upstream license: https://github.com/d3/d3-array/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-array`
-export * from "d3-array";
Index: de_modules/victory-vendor/es/d3-color.js
===================================================================
--- node_modules/victory-vendor/es/d3-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-color` (ESM)
-// See upstream license: https://github.com/d3/d3-color/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-color`
-export * from "d3-color";
Index: de_modules/victory-vendor/es/d3-ease.js
===================================================================
--- node_modules/victory-vendor/es/d3-ease.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-ease` (ESM)
-// See upstream license: https://github.com/d3/d3-ease/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-ease`
-export * from "d3-ease";
Index: de_modules/victory-vendor/es/d3-format.js
===================================================================
--- node_modules/victory-vendor/es/d3-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-format` (ESM)
-// See upstream license: https://github.com/d3/d3-format/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-format`
-export * from "d3-format";
Index: de_modules/victory-vendor/es/d3-interpolate.js
===================================================================
--- node_modules/victory-vendor/es/d3-interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-interpolate` (ESM)
-// See upstream license: https://github.com/d3/d3-interpolate/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-interpolate`
-export * from "d3-interpolate";
Index: de_modules/victory-vendor/es/d3-path.js
===================================================================
--- node_modules/victory-vendor/es/d3-path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-path` (ESM)
-// See upstream license: https://github.com/d3/d3-path/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-path`
-export * from "d3-path";
Index: de_modules/victory-vendor/es/d3-scale.js
===================================================================
--- node_modules/victory-vendor/es/d3-scale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-scale` (ESM)
-// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-scale`
-export * from "d3-scale";
Index: de_modules/victory-vendor/es/d3-shape.js
===================================================================
--- node_modules/victory-vendor/es/d3-shape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-shape` (ESM)
-// See upstream license: https://github.com/d3/d3-shape/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-shape`
-export * from "d3-shape";
Index: de_modules/victory-vendor/es/d3-time-format.js
===================================================================
--- node_modules/victory-vendor/es/d3-time-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-time-format` (ESM)
-// See upstream license: https://github.com/d3/d3-time-format/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-time-format`
-export * from "d3-time-format";
Index: de_modules/victory-vendor/es/d3-time.js
===================================================================
--- node_modules/victory-vendor/es/d3-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-time` (ESM)
-// See upstream license: https://github.com/d3/d3-time/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-time`
-export * from "d3-time";
Index: de_modules/victory-vendor/es/d3-timer.js
===================================================================
--- node_modules/victory-vendor/es/d3-timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-timer` (ESM)
-// See upstream license: https://github.com/d3/d3-timer/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-timer`
-export * from "d3-timer";
Index: de_modules/victory-vendor/es/d3-voronoi.js
===================================================================
--- node_modules/victory-vendor/es/d3-voronoi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-voronoi` (ESM)
-// See upstream license: https://github.com/d3/d3-voronoi/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/d3-voronoi`
-export * from "d3-voronoi";
Index: de_modules/victory-vendor/es/internmap.js
===================================================================
--- node_modules/victory-vendor/es/internmap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/internmap` (ESM)
-// See upstream license: https://github.com/mbostock/internmap/blob/main/LICENSE
-//
-// Our ESM package uses the underlying installed dependencies of `node_modules/internmap`
-export * from "internmap";
Index: de_modules/victory-vendor/lib-vendor/d3-array/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/array.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.slice = exports.map = void 0;
-var array = Array.prototype;
-var slice = exports.slice = array.slice;
-var map = exports.map = array.map;
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/ascending.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = ascending;
-function ascending(a, b) {
-  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/bin.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/bin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,122 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = bin;
-var _array = require("./array.js");
-var _bisect = _interopRequireDefault(require("./bisect.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _extent = _interopRequireDefault(require("./extent.js"));
-var _identity = _interopRequireDefault(require("./identity.js"));
-var _nice = _interopRequireDefault(require("./nice.js"));
-var _ticks = _interopRequireWildcard(require("./ticks.js"));
-var _sturges = _interopRequireDefault(require("./threshold/sturges.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function bin() {
-  var value = _identity.default,
-    domain = _extent.default,
-    threshold = _sturges.default;
-  function histogram(data) {
-    if (!Array.isArray(data)) data = Array.from(data);
-    var i,
-      n = data.length,
-      x,
-      step,
-      values = new Array(n);
-    for (i = 0; i < n; ++i) {
-      values[i] = value(data[i], i, data);
-    }
-    var xz = domain(values),
-      x0 = xz[0],
-      x1 = xz[1],
-      tz = threshold(values, x0, x1);
-
-    // Convert number of thresholds into uniform thresholds, and nice the
-    // default domain accordingly.
-    if (!Array.isArray(tz)) {
-      const max = x1,
-        tn = +tz;
-      if (domain === _extent.default) [x0, x1] = (0, _nice.default)(x0, x1, tn);
-      tz = (0, _ticks.default)(x0, x1, tn);
-
-      // If the domain is aligned with the first tick (which it will by
-      // default), then we can use quantization rather than bisection to bin
-      // values, which is substantially faster.
-      if (tz[0] <= x0) step = (0, _ticks.tickIncrement)(x0, x1, tn);
-
-      // If the last threshold is coincident with the domain’s upper bound, the
-      // last bin will be zero-width. If the default domain is used, and this
-      // last threshold is coincident with the maximum input value, we can
-      // extend the niced upper bound by one tick to ensure uniform bin widths;
-      // otherwise, we simply remove the last threshold. Note that we don’t
-      // coerce values or the domain to numbers, and thus must be careful to
-      // compare order (>=) rather than strict equality (===)!
-      if (tz[tz.length - 1] >= x1) {
-        if (max >= x1 && domain === _extent.default) {
-          const step = (0, _ticks.tickIncrement)(x0, x1, tn);
-          if (isFinite(step)) {
-            if (step > 0) {
-              x1 = (Math.floor(x1 / step) + 1) * step;
-            } else if (step < 0) {
-              x1 = (Math.ceil(x1 * -step) + 1) / -step;
-            }
-          }
-        } else {
-          tz.pop();
-        }
-      }
-    }
-
-    // Remove any thresholds outside the domain.
-    var m = tz.length;
-    while (tz[0] <= x0) tz.shift(), --m;
-    while (tz[m - 1] > x1) tz.pop(), --m;
-    var bins = new Array(m + 1),
-      bin;
-
-    // Initialize bins.
-    for (i = 0; i <= m; ++i) {
-      bin = bins[i] = [];
-      bin.x0 = i > 0 ? tz[i - 1] : x0;
-      bin.x1 = i < m ? tz[i] : x1;
-    }
-
-    // Assign data to bins by value, ignoring any outside the domain.
-    if (isFinite(step)) {
-      if (step > 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
-          }
-        }
-      } else if (step < 0) {
-        for (i = 0; i < n; ++i) {
-          if ((x = values[i]) != null && x0 <= x && x <= x1) {
-            const j = Math.floor((x0 - x) * step);
-            bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
-          }
-        }
-      }
-    } else {
-      for (i = 0; i < n; ++i) {
-        if ((x = values[i]) != null && x0 <= x && x <= x1) {
-          bins[(0, _bisect.default)(tz, x, 0, m)].push(data[i]);
-        }
-      }
-    }
-    return bins;
-  }
-  histogram.value = function (_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(_), histogram) : value;
-  };
-  histogram.domain = function (_) {
-    return arguments.length ? (domain = typeof _ === "function" ? _ : (0, _constant.default)([_[0], _[1]]), histogram) : domain;
-  };
-  histogram.thresholds = function (_) {
-    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? (0, _constant.default)(_array.slice.call(_)) : (0, _constant.default)(_), histogram) : threshold;
-  };
-  return histogram;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/bisect.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/bisect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = exports.bisectRight = exports.bisectLeft = exports.bisectCenter = void 0;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _bisector = _interopRequireDefault(require("./bisector.js"));
-var _number = _interopRequireDefault(require("./number.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-const ascendingBisect = (0, _bisector.default)(_ascending.default);
-const bisectRight = exports.bisectRight = ascendingBisect.right;
-const bisectLeft = exports.bisectLeft = ascendingBisect.left;
-const bisectCenter = exports.bisectCenter = (0, _bisector.default)(_number.default).center;
-var _default = exports.default = bisectRight;
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/bisector.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/bisector.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = bisector;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _descending = _interopRequireDefault(require("./descending.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function bisector(f) {
-  let compare1, compare2, delta;
-
-  // If an accessor is specified, promote it to a comparator. In this case we
-  // can test whether the search value is (self-) comparable. We can’t do this
-  // for a comparator (except for specific, known comparators) because we can’t
-  // tell if the comparator is symmetric, and an asymmetric comparator can’t be
-  // used to test whether a single value is comparable.
-  if (f.length !== 2) {
-    compare1 = _ascending.default;
-    compare2 = (d, x) => (0, _ascending.default)(f(d), x);
-    delta = (d, x) => f(d) - x;
-  } else {
-    compare1 = f === _ascending.default || f === _descending.default ? f : zero;
-    compare2 = f;
-    delta = f;
-  }
-  function left(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = lo + hi >>> 1;
-        if (compare2(a[mid], x) < 0) lo = mid + 1;else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-  function right(a, x, lo = 0, hi = a.length) {
-    if (lo < hi) {
-      if (compare1(x, x) !== 0) return hi;
-      do {
-        const mid = lo + hi >>> 1;
-        if (compare2(a[mid], x) <= 0) lo = mid + 1;else hi = mid;
-      } while (lo < hi);
-    }
-    return lo;
-  }
-  function center(a, x, lo = 0, hi = a.length) {
-    const i = left(a, x, lo, hi - 1);
-    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
-  }
-  return {
-    left,
-    center,
-    right
-  };
-}
-function zero() {
-  return 0;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/constant.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = constant;
-function constant(x) {
-  return () => x;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/count.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/count.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = count;
-function count(values, valueof) {
-  let count = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count;
-      }
-    }
-  }
-  return count;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/cross.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = cross;
-function length(array) {
-  return array.length | 0;
-}
-function empty(length) {
-  return !(length > 0);
-}
-function arrayify(values) {
-  return typeof values !== "object" || "length" in values ? values : Array.from(values);
-}
-function reducer(reduce) {
-  return values => reduce(...values);
-}
-function cross(...values) {
-  const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
-  values = values.map(arrayify);
-  const lengths = values.map(length);
-  const j = values.length - 1;
-  const index = new Array(j + 1).fill(0);
-  const product = [];
-  if (j < 0 || lengths.some(empty)) return product;
-  while (true) {
-    product.push(index.map((j, i) => values[i][j]));
-    let i = j;
-    while (++index[i] === lengths[i]) {
-      if (i === 0) return reduce ? product.map(reduce) : product;
-      index[i--] = 0;
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/cumsum.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/cumsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = cumsum;
-function cumsum(values, valueof) {
-  var sum = 0,
-    index = 0;
-  return Float64Array.from(values, valueof === undefined ? v => sum += +v || 0 : v => sum += +valueof(v, index++, values) || 0);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/descending.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = descending;
-function descending(a, b) {
-  return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/deviation.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/deviation.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = deviation;
-var _variance = _interopRequireDefault(require("./variance.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function deviation(values, valueof) {
-  const v = (0, _variance.default)(values, valueof);
-  return v ? Math.sqrt(v) : v;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/difference.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/difference.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = difference;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function difference(values, ...others) {
-  values = new _index.InternSet(values);
-  for (const other of others) {
-    for (const value of other) {
-      values.delete(value);
-    }
-  }
-  return values;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/disjoint.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/disjoint.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = disjoint;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function disjoint(values, other) {
-  const iterator = other[Symbol.iterator](),
-    set = new _index.InternSet();
-  for (const v of values) {
-    if (set.has(v)) return false;
-    let value, done;
-    while (({
-      value,
-      done
-    } = iterator.next())) {
-      if (done) break;
-      if (Object.is(v, value)) return false;
-      set.add(value);
-    }
-  }
-  return true;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/every.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/every.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = every;
-function every(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (!test(value, ++index, values)) {
-      return false;
-    }
-  }
-  return true;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/extent.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/extent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extent;
-function extent(values, valueof) {
-  let min;
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null) {
-        if (min === undefined) {
-          if (value >= value) min = max = value;
-        } else {
-          if (min > value) min = value;
-          if (max < value) max = value;
-        }
-      }
-    }
-  }
-  return [min, max];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/filter.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/filter.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = filter;
-function filter(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  const array = [];
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      array.push(value);
-    }
-  }
-  return array;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/fsum.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/fsum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,77 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Adder = void 0;
-exports.fcumsum = fcumsum;
-exports.fsum = fsum;
-// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
-class Adder {
-  constructor() {
-    this._partials = new Float64Array(32);
-    this._n = 0;
-  }
-  add(x) {
-    const p = this._partials;
-    let i = 0;
-    for (let j = 0; j < this._n && j < 32; j++) {
-      const y = p[j],
-        hi = x + y,
-        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
-      if (lo) p[i++] = lo;
-      x = hi;
-    }
-    p[i] = x;
-    this._n = i + 1;
-    return this;
-  }
-  valueOf() {
-    const p = this._partials;
-    let n = this._n,
-      x,
-      y,
-      lo,
-      hi = 0;
-    if (n > 0) {
-      hi = p[--n];
-      while (n > 0) {
-        x = hi;
-        y = p[--n];
-        hi = x + y;
-        lo = y - (hi - x);
-        if (lo) break;
-      }
-      if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
-        y = lo * 2;
-        x = hi + y;
-        if (y == x - hi) hi = x;
-      }
-    }
-    return hi;
-  }
-}
-exports.Adder = Adder;
-function fsum(values, valueof) {
-  const adder = new Adder();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        adder.add(value);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        adder.add(value);
-      }
-    }
-  }
-  return +adder;
-}
-function fcumsum(values, valueof) {
-  const adder = new Adder();
-  let index = -1;
-  return Float64Array.from(values, valueof === undefined ? v => adder.add(+v || 0) : v => adder.add(+valueof(v, ++index, values) || 0));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/greatest.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/greatest.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = greatest;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function greatest(values, compare = _ascending.default) {
-  let max;
-  let defined = false;
-  if (compare.length === 1) {
-    let maxValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined ? (0, _ascending.default)(value, maxValue) > 0 : (0, _ascending.default)(value, value) === 0) {
-        max = element;
-        maxValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined ? compare(value, max) > 0 : compare(value, value) === 0) {
-        max = value;
-        defined = true;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/greatestIndex.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/greatestIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = greatestIndex;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _maxIndex = _interopRequireDefault(require("./maxIndex.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function greatestIndex(values, compare = _ascending.default) {
-  if (compare.length === 1) return (0, _maxIndex.default)(values, compare);
-  let maxValue;
-  let max = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (max < 0 ? compare(value, value) === 0 : compare(value, maxValue) > 0) {
-      maxValue = value;
-      max = index;
-    }
-  }
-  return max;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/group.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/group.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = group;
-exports.flatGroup = flatGroup;
-exports.flatRollup = flatRollup;
-exports.groups = groups;
-exports.index = index;
-exports.indexes = indexes;
-exports.rollup = rollup;
-exports.rollups = rollups;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-var _identity = _interopRequireDefault(require("./identity.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function group(values, ...keys) {
-  return nest(values, _identity.default, _identity.default, keys);
-}
-function groups(values, ...keys) {
-  return nest(values, Array.from, _identity.default, keys);
-}
-function flatten(groups, keys) {
-  for (let i = 1, n = keys.length; i < n; ++i) {
-    groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
-  }
-  return groups;
-}
-function flatGroup(values, ...keys) {
-  return flatten(groups(values, ...keys), keys);
-}
-function flatRollup(values, reduce, ...keys) {
-  return flatten(rollups(values, reduce, ...keys), keys);
-}
-function rollup(values, reduce, ...keys) {
-  return nest(values, _identity.default, reduce, keys);
-}
-function rollups(values, reduce, ...keys) {
-  return nest(values, Array.from, reduce, keys);
-}
-function index(values, ...keys) {
-  return nest(values, _identity.default, unique, keys);
-}
-function indexes(values, ...keys) {
-  return nest(values, Array.from, unique, keys);
-}
-function unique(values) {
-  if (values.length !== 1) throw new Error("duplicate key");
-  return values[0];
-}
-function nest(values, map, reduce, keys) {
-  return function regroup(values, i) {
-    if (i >= keys.length) return reduce(values);
-    const groups = new _index.InternMap();
-    const keyof = keys[i++];
-    let index = -1;
-    for (const value of values) {
-      const key = keyof(value, ++index, values);
-      const group = groups.get(key);
-      if (group) group.push(value);else groups.set(key, [value]);
-    }
-    for (const [key, values] of groups) {
-      groups.set(key, regroup(values, i));
-    }
-    return map(groups);
-  }(values, 0);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/groupSort.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/groupSort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = groupSort;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _group = _interopRequireWildcard(require("./group.js"));
-var _sort = _interopRequireDefault(require("./sort.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function groupSort(values, reduce, key) {
-  return (reduce.length !== 2 ? (0, _sort.default)((0, _group.rollup)(values, reduce, key), ([ak, av], [bk, bv]) => (0, _ascending.default)(av, bv) || (0, _ascending.default)(ak, bk)) : (0, _sort.default)((0, _group.default)(values, key), ([ak, av], [bk, bv]) => reduce(av, bv) || (0, _ascending.default)(ak, bk))).map(([key]) => key);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/identity.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = identity;
-function identity(x) {
-  return x;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,508 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "Adder", {
-  enumerable: true,
-  get: function () {
-    return _fsum.Adder;
-  }
-});
-Object.defineProperty(exports, "InternMap", {
-  enumerable: true,
-  get: function () {
-    return _index.InternMap;
-  }
-});
-Object.defineProperty(exports, "InternSet", {
-  enumerable: true,
-  get: function () {
-    return _index.InternSet;
-  }
-});
-Object.defineProperty(exports, "ascending", {
-  enumerable: true,
-  get: function () {
-    return _ascending.default;
-  }
-});
-Object.defineProperty(exports, "bin", {
-  enumerable: true,
-  get: function () {
-    return _bin.default;
-  }
-});
-Object.defineProperty(exports, "bisect", {
-  enumerable: true,
-  get: function () {
-    return _bisect.default;
-  }
-});
-Object.defineProperty(exports, "bisectCenter", {
-  enumerable: true,
-  get: function () {
-    return _bisect.bisectCenter;
-  }
-});
-Object.defineProperty(exports, "bisectLeft", {
-  enumerable: true,
-  get: function () {
-    return _bisect.bisectLeft;
-  }
-});
-Object.defineProperty(exports, "bisectRight", {
-  enumerable: true,
-  get: function () {
-    return _bisect.bisectRight;
-  }
-});
-Object.defineProperty(exports, "bisector", {
-  enumerable: true,
-  get: function () {
-    return _bisector.default;
-  }
-});
-Object.defineProperty(exports, "count", {
-  enumerable: true,
-  get: function () {
-    return _count.default;
-  }
-});
-Object.defineProperty(exports, "cross", {
-  enumerable: true,
-  get: function () {
-    return _cross.default;
-  }
-});
-Object.defineProperty(exports, "cumsum", {
-  enumerable: true,
-  get: function () {
-    return _cumsum.default;
-  }
-});
-Object.defineProperty(exports, "descending", {
-  enumerable: true,
-  get: function () {
-    return _descending.default;
-  }
-});
-Object.defineProperty(exports, "deviation", {
-  enumerable: true,
-  get: function () {
-    return _deviation.default;
-  }
-});
-Object.defineProperty(exports, "difference", {
-  enumerable: true,
-  get: function () {
-    return _difference.default;
-  }
-});
-Object.defineProperty(exports, "disjoint", {
-  enumerable: true,
-  get: function () {
-    return _disjoint.default;
-  }
-});
-Object.defineProperty(exports, "every", {
-  enumerable: true,
-  get: function () {
-    return _every.default;
-  }
-});
-Object.defineProperty(exports, "extent", {
-  enumerable: true,
-  get: function () {
-    return _extent.default;
-  }
-});
-Object.defineProperty(exports, "fcumsum", {
-  enumerable: true,
-  get: function () {
-    return _fsum.fcumsum;
-  }
-});
-Object.defineProperty(exports, "filter", {
-  enumerable: true,
-  get: function () {
-    return _filter.default;
-  }
-});
-Object.defineProperty(exports, "flatGroup", {
-  enumerable: true,
-  get: function () {
-    return _group.flatGroup;
-  }
-});
-Object.defineProperty(exports, "flatRollup", {
-  enumerable: true,
-  get: function () {
-    return _group.flatRollup;
-  }
-});
-Object.defineProperty(exports, "fsum", {
-  enumerable: true,
-  get: function () {
-    return _fsum.fsum;
-  }
-});
-Object.defineProperty(exports, "greatest", {
-  enumerable: true,
-  get: function () {
-    return _greatest.default;
-  }
-});
-Object.defineProperty(exports, "greatestIndex", {
-  enumerable: true,
-  get: function () {
-    return _greatestIndex.default;
-  }
-});
-Object.defineProperty(exports, "group", {
-  enumerable: true,
-  get: function () {
-    return _group.default;
-  }
-});
-Object.defineProperty(exports, "groupSort", {
-  enumerable: true,
-  get: function () {
-    return _groupSort.default;
-  }
-});
-Object.defineProperty(exports, "groups", {
-  enumerable: true,
-  get: function () {
-    return _group.groups;
-  }
-});
-Object.defineProperty(exports, "histogram", {
-  enumerable: true,
-  get: function () {
-    return _bin.default;
-  }
-});
-Object.defineProperty(exports, "index", {
-  enumerable: true,
-  get: function () {
-    return _group.index;
-  }
-});
-Object.defineProperty(exports, "indexes", {
-  enumerable: true,
-  get: function () {
-    return _group.indexes;
-  }
-});
-Object.defineProperty(exports, "intersection", {
-  enumerable: true,
-  get: function () {
-    return _intersection.default;
-  }
-});
-Object.defineProperty(exports, "least", {
-  enumerable: true,
-  get: function () {
-    return _least.default;
-  }
-});
-Object.defineProperty(exports, "leastIndex", {
-  enumerable: true,
-  get: function () {
-    return _leastIndex.default;
-  }
-});
-Object.defineProperty(exports, "map", {
-  enumerable: true,
-  get: function () {
-    return _map.default;
-  }
-});
-Object.defineProperty(exports, "max", {
-  enumerable: true,
-  get: function () {
-    return _max.default;
-  }
-});
-Object.defineProperty(exports, "maxIndex", {
-  enumerable: true,
-  get: function () {
-    return _maxIndex.default;
-  }
-});
-Object.defineProperty(exports, "mean", {
-  enumerable: true,
-  get: function () {
-    return _mean.default;
-  }
-});
-Object.defineProperty(exports, "median", {
-  enumerable: true,
-  get: function () {
-    return _median.default;
-  }
-});
-Object.defineProperty(exports, "merge", {
-  enumerable: true,
-  get: function () {
-    return _merge.default;
-  }
-});
-Object.defineProperty(exports, "min", {
-  enumerable: true,
-  get: function () {
-    return _min.default;
-  }
-});
-Object.defineProperty(exports, "minIndex", {
-  enumerable: true,
-  get: function () {
-    return _minIndex.default;
-  }
-});
-Object.defineProperty(exports, "mode", {
-  enumerable: true,
-  get: function () {
-    return _mode.default;
-  }
-});
-Object.defineProperty(exports, "nice", {
-  enumerable: true,
-  get: function () {
-    return _nice.default;
-  }
-});
-Object.defineProperty(exports, "pairs", {
-  enumerable: true,
-  get: function () {
-    return _pairs.default;
-  }
-});
-Object.defineProperty(exports, "permute", {
-  enumerable: true,
-  get: function () {
-    return _permute.default;
-  }
-});
-Object.defineProperty(exports, "quantile", {
-  enumerable: true,
-  get: function () {
-    return _quantile.default;
-  }
-});
-Object.defineProperty(exports, "quantileSorted", {
-  enumerable: true,
-  get: function () {
-    return _quantile.quantileSorted;
-  }
-});
-Object.defineProperty(exports, "quickselect", {
-  enumerable: true,
-  get: function () {
-    return _quickselect.default;
-  }
-});
-Object.defineProperty(exports, "range", {
-  enumerable: true,
-  get: function () {
-    return _range.default;
-  }
-});
-Object.defineProperty(exports, "rank", {
-  enumerable: true,
-  get: function () {
-    return _rank.default;
-  }
-});
-Object.defineProperty(exports, "reduce", {
-  enumerable: true,
-  get: function () {
-    return _reduce.default;
-  }
-});
-Object.defineProperty(exports, "reverse", {
-  enumerable: true,
-  get: function () {
-    return _reverse.default;
-  }
-});
-Object.defineProperty(exports, "rollup", {
-  enumerable: true,
-  get: function () {
-    return _group.rollup;
-  }
-});
-Object.defineProperty(exports, "rollups", {
-  enumerable: true,
-  get: function () {
-    return _group.rollups;
-  }
-});
-Object.defineProperty(exports, "scan", {
-  enumerable: true,
-  get: function () {
-    return _scan.default;
-  }
-});
-Object.defineProperty(exports, "shuffle", {
-  enumerable: true,
-  get: function () {
-    return _shuffle.default;
-  }
-});
-Object.defineProperty(exports, "shuffler", {
-  enumerable: true,
-  get: function () {
-    return _shuffle.shuffler;
-  }
-});
-Object.defineProperty(exports, "some", {
-  enumerable: true,
-  get: function () {
-    return _some.default;
-  }
-});
-Object.defineProperty(exports, "sort", {
-  enumerable: true,
-  get: function () {
-    return _sort.default;
-  }
-});
-Object.defineProperty(exports, "subset", {
-  enumerable: true,
-  get: function () {
-    return _subset.default;
-  }
-});
-Object.defineProperty(exports, "sum", {
-  enumerable: true,
-  get: function () {
-    return _sum.default;
-  }
-});
-Object.defineProperty(exports, "superset", {
-  enumerable: true,
-  get: function () {
-    return _superset.default;
-  }
-});
-Object.defineProperty(exports, "thresholdFreedmanDiaconis", {
-  enumerable: true,
-  get: function () {
-    return _freedmanDiaconis.default;
-  }
-});
-Object.defineProperty(exports, "thresholdScott", {
-  enumerable: true,
-  get: function () {
-    return _scott.default;
-  }
-});
-Object.defineProperty(exports, "thresholdSturges", {
-  enumerable: true,
-  get: function () {
-    return _sturges.default;
-  }
-});
-Object.defineProperty(exports, "tickIncrement", {
-  enumerable: true,
-  get: function () {
-    return _ticks.tickIncrement;
-  }
-});
-Object.defineProperty(exports, "tickStep", {
-  enumerable: true,
-  get: function () {
-    return _ticks.tickStep;
-  }
-});
-Object.defineProperty(exports, "ticks", {
-  enumerable: true,
-  get: function () {
-    return _ticks.default;
-  }
-});
-Object.defineProperty(exports, "transpose", {
-  enumerable: true,
-  get: function () {
-    return _transpose.default;
-  }
-});
-Object.defineProperty(exports, "union", {
-  enumerable: true,
-  get: function () {
-    return _union.default;
-  }
-});
-Object.defineProperty(exports, "variance", {
-  enumerable: true,
-  get: function () {
-    return _variance.default;
-  }
-});
-Object.defineProperty(exports, "zip", {
-  enumerable: true,
-  get: function () {
-    return _zip.default;
-  }
-});
-var _bisect = _interopRequireWildcard(require("./bisect.js"));
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _bisector = _interopRequireDefault(require("./bisector.js"));
-var _count = _interopRequireDefault(require("./count.js"));
-var _cross = _interopRequireDefault(require("./cross.js"));
-var _cumsum = _interopRequireDefault(require("./cumsum.js"));
-var _descending = _interopRequireDefault(require("./descending.js"));
-var _deviation = _interopRequireDefault(require("./deviation.js"));
-var _extent = _interopRequireDefault(require("./extent.js"));
-var _fsum = require("./fsum.js");
-var _group = _interopRequireWildcard(require("./group.js"));
-var _groupSort = _interopRequireDefault(require("./groupSort.js"));
-var _bin = _interopRequireDefault(require("./bin.js"));
-var _freedmanDiaconis = _interopRequireDefault(require("./threshold/freedmanDiaconis.js"));
-var _scott = _interopRequireDefault(require("./threshold/scott.js"));
-var _sturges = _interopRequireDefault(require("./threshold/sturges.js"));
-var _max = _interopRequireDefault(require("./max.js"));
-var _maxIndex = _interopRequireDefault(require("./maxIndex.js"));
-var _mean = _interopRequireDefault(require("./mean.js"));
-var _median = _interopRequireDefault(require("./median.js"));
-var _merge = _interopRequireDefault(require("./merge.js"));
-var _min = _interopRequireDefault(require("./min.js"));
-var _minIndex = _interopRequireDefault(require("./minIndex.js"));
-var _mode = _interopRequireDefault(require("./mode.js"));
-var _nice = _interopRequireDefault(require("./nice.js"));
-var _pairs = _interopRequireDefault(require("./pairs.js"));
-var _permute = _interopRequireDefault(require("./permute.js"));
-var _quantile = _interopRequireWildcard(require("./quantile.js"));
-var _quickselect = _interopRequireDefault(require("./quickselect.js"));
-var _range = _interopRequireDefault(require("./range.js"));
-var _rank = _interopRequireDefault(require("./rank.js"));
-var _least = _interopRequireDefault(require("./least.js"));
-var _leastIndex = _interopRequireDefault(require("./leastIndex.js"));
-var _greatest = _interopRequireDefault(require("./greatest.js"));
-var _greatestIndex = _interopRequireDefault(require("./greatestIndex.js"));
-var _scan = _interopRequireDefault(require("./scan.js"));
-var _shuffle = _interopRequireWildcard(require("./shuffle.js"));
-var _sum = _interopRequireDefault(require("./sum.js"));
-var _ticks = _interopRequireWildcard(require("./ticks.js"));
-var _transpose = _interopRequireDefault(require("./transpose.js"));
-var _variance = _interopRequireDefault(require("./variance.js"));
-var _zip = _interopRequireDefault(require("./zip.js"));
-var _every = _interopRequireDefault(require("./every.js"));
-var _some = _interopRequireDefault(require("./some.js"));
-var _filter = _interopRequireDefault(require("./filter.js"));
-var _map = _interopRequireDefault(require("./map.js"));
-var _reduce = _interopRequireDefault(require("./reduce.js"));
-var _reverse = _interopRequireDefault(require("./reverse.js"));
-var _sort = _interopRequireDefault(require("./sort.js"));
-var _difference = _interopRequireDefault(require("./difference.js"));
-var _disjoint = _interopRequireDefault(require("./disjoint.js"));
-var _intersection = _interopRequireDefault(require("./intersection.js"));
-var _subset = _interopRequireDefault(require("./subset.js"));
-var _superset = _interopRequireDefault(require("./superset.js"));
-var _union = _interopRequireDefault(require("./union.js"));
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/intersection.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/intersection.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = intersection;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function intersection(values, ...others) {
-  values = new _index.InternSet(values);
-  others = others.map(set);
-  out: for (const value of values) {
-    for (const other of others) {
-      if (!other.has(value)) {
-        values.delete(value);
-        continue out;
-      }
-    }
-  }
-  return values;
-}
-function set(values) {
-  return values instanceof _index.InternSet ? values : new _index.InternSet(values);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/least.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/least.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = least;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function least(values, compare = _ascending.default) {
-  let min;
-  let defined = false;
-  if (compare.length === 1) {
-    let minValue;
-    for (const element of values) {
-      const value = compare(element);
-      if (defined ? (0, _ascending.default)(value, minValue) < 0 : (0, _ascending.default)(value, value) === 0) {
-        min = element;
-        minValue = value;
-        defined = true;
-      }
-    }
-  } else {
-    for (const value of values) {
-      if (defined ? compare(value, min) < 0 : compare(value, value) === 0) {
-        min = value;
-        defined = true;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/leastIndex.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/leastIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = leastIndex;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _minIndex = _interopRequireDefault(require("./minIndex.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function leastIndex(values, compare = _ascending.default) {
-  if (compare.length === 1) return (0, _minIndex.default)(values, compare);
-  let minValue;
-  let min = -1;
-  let index = -1;
-  for (const value of values) {
-    ++index;
-    if (min < 0 ? compare(value, value) === 0 : compare(value, minValue) < 0) {
-      minValue = value;
-      min = index;
-    }
-  }
-  return min;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/map.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/map.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = map;
-function map(values, mapper) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
-  return Array.from(values, (value, index) => mapper(value, index, values));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/max.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/max.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = max;
-function max(values, valueof) {
-  let max;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null && (max < value || max === undefined && value >= value)) {
-        max = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {
-        max = value;
-      }
-    }
-  }
-  return max;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/maxIndex.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/maxIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = maxIndex;
-function maxIndex(values, valueof) {
-  let max;
-  let maxIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null && (max < value || max === undefined && value >= value)) {
-        max = value, maxIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {
-        max = value, maxIndex = index;
-      }
-    }
-  }
-  return maxIndex;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/mean.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/mean.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = mean;
-function mean(values, valueof) {
-  let count = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        ++count, sum += value;
-      }
-    }
-  }
-  if (count) return sum / count;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/median.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/median.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = median;
-var _quantile = _interopRequireDefault(require("./quantile.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function median(values, valueof) {
-  return (0, _quantile.default)(values, 0.5, valueof);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/merge.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/merge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = merge;
-function* flatten(arrays) {
-  for (const array of arrays) {
-    yield* array;
-  }
-}
-function merge(arrays) {
-  return Array.from(flatten(arrays));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/min.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/min.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = min;
-function min(values, valueof) {
-  let min;
-  if (valueof === undefined) {
-    for (const value of values) {
-      if (value != null && (min > value || min === undefined && value >= value)) {
-        min = value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (min > value || min === undefined && value >= value)) {
-        min = value;
-      }
-    }
-  }
-  return min;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/minIndex.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/minIndex.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = minIndex;
-function minIndex(values, valueof) {
-  let min;
-  let minIndex = -1;
-  let index = -1;
-  if (valueof === undefined) {
-    for (const value of values) {
-      ++index;
-      if (value != null && (min > value || min === undefined && value >= value)) {
-        min = value, minIndex = index;
-      }
-    }
-  } else {
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (min > value || min === undefined && value >= value)) {
-        min = value, minIndex = index;
-      }
-    }
-  }
-  return minIndex;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/mode.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/mode.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = mode;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function mode(values, valueof) {
-  const counts = new _index.InternMap();
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && value >= value) {
-        counts.set(value, (counts.get(value) || 0) + 1);
-      }
-    }
-  }
-  let modeValue;
-  let modeCount = 0;
-  for (const [value, count] of counts) {
-    if (count > modeCount) {
-      modeCount = count;
-      modeValue = value;
-    }
-  }
-  return modeValue;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/nice.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/nice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = nice;
-var _ticks = require("./ticks.js");
-function nice(start, stop, count) {
-  let prestep;
-  while (true) {
-    const step = (0, _ticks.tickIncrement)(start, stop, count);
-    if (step === prestep || step === 0 || !isFinite(step)) {
-      return [start, stop];
-    } else if (step > 0) {
-      start = Math.floor(start / step) * step;
-      stop = Math.ceil(stop / step) * step;
-    } else if (step < 0) {
-      start = Math.ceil(start * step) / step;
-      stop = Math.floor(stop * step) / step;
-    }
-    prestep = step;
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/number.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = number;
-exports.numbers = numbers;
-function number(x) {
-  return x === null ? NaN : +x;
-}
-function* numbers(values, valueof) {
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        yield value;
-      }
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/pairs.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/pairs.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = pairs;
-exports.pair = pair;
-function pairs(values, pairof = pair) {
-  const pairs = [];
-  let previous;
-  let first = false;
-  for (const value of values) {
-    if (first) pairs.push(pairof(previous, value));
-    previous = value;
-    first = true;
-  }
-  return pairs;
-}
-function pair(a, b) {
-  return [a, b];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/permute.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/permute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = permute;
-function permute(source, keys) {
-  return Array.from(keys, key => source[key]);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/quantile.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/quantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = quantile;
-exports.quantileSorted = quantileSorted;
-var _max = _interopRequireDefault(require("./max.js"));
-var _min = _interopRequireDefault(require("./min.js"));
-var _quickselect = _interopRequireDefault(require("./quickselect.js"));
-var _number = _interopRequireWildcard(require("./number.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function quantile(values, p, valueof) {
-  values = Float64Array.from((0, _number.numbers)(values, valueof));
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return (0, _min.default)(values);
-  if (p >= 1) return (0, _max.default)(values);
-  var n,
-    i = (n - 1) * p,
-    i0 = Math.floor(i),
-    value0 = (0, _max.default)((0, _quickselect.default)(values, i0).subarray(0, i0 + 1)),
-    value1 = (0, _min.default)(values.subarray(i0 + 1));
-  return value0 + (value1 - value0) * (i - i0);
-}
-function quantileSorted(values, p, valueof = _number.default) {
-  if (!(n = values.length)) return;
-  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
-  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
-  var n,
-    i = (n - 1) * p,
-    i0 = Math.floor(i),
-    value0 = +valueof(values[i0], i0, values),
-    value1 = +valueof(values[i0 + 1], i0 + 1, values);
-  return value0 + (value1 - value0) * (i - i0);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/quickselect.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/quickselect.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,43 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = quickselect;
-var _sort = require("./sort.js");
-// Based on https://github.com/mourner/quickselect
-// ISC license, Copyright 2018 Vladimir Agafonkin.
-function quickselect(array, k, left = 0, right = array.length - 1, compare) {
-  compare = compare === undefined ? _sort.ascendingDefined : (0, _sort.compareDefined)(compare);
-  while (right > left) {
-    if (right - left > 600) {
-      const n = right - left + 1;
-      const m = k - left + 1;
-      const z = Math.log(n);
-      const s = 0.5 * Math.exp(2 * z / 3);
-      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
-      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
-      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
-      quickselect(array, k, newLeft, newRight, compare);
-    }
-    const t = array[k];
-    let i = left;
-    let j = right;
-    swap(array, left, k);
-    if (compare(array[right], t) > 0) swap(array, left, right);
-    while (i < j) {
-      swap(array, i, j), ++i, --j;
-      while (compare(array[i], t) < 0) ++i;
-      while (compare(array[j], t) > 0) --j;
-    }
-    if (compare(array[left], t) === 0) swap(array, left, j);else ++j, swap(array, j, right);
-    if (j <= k) left = j + 1;
-    if (k <= j) right = j - 1;
-  }
-  return array;
-}
-function swap(array, i, j) {
-  const t = array[i];
-  array[i] = array[j];
-  array[j] = t;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/range.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/range.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = range;
-function range(start, stop, step) {
-  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
-  var i = -1,
-    n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
-    range = new Array(n);
-  while (++i < n) {
-    range[i] = start + i * step;
-  }
-  return range;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/rank.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/rank.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = rank;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _sort = require("./sort.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function rank(values, valueof = _ascending.default) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  let V = Array.from(values);
-  const R = new Float64Array(V.length);
-  if (valueof.length !== 2) V = V.map(valueof), valueof = _ascending.default;
-  const compareIndex = (i, j) => valueof(V[i], V[j]);
-  let k, r;
-  Uint32Array.from(V, (_, i) => i).sort(valueof === _ascending.default ? (i, j) => (0, _sort.ascendingDefined)(V[i], V[j]) : (0, _sort.compareDefined)(compareIndex)).forEach((j, i) => {
-    const c = compareIndex(j, k === undefined ? j : k);
-    if (c >= 0) {
-      if (k === undefined || c > 0) k = j, r = i;
-      R[j] = r;
-    } else {
-      R[j] = NaN;
-    }
-  });
-  return R;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/reduce.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/reduce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = reduce;
-function reduce(values, reducer, value) {
-  if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
-  const iterator = values[Symbol.iterator]();
-  let done,
-    next,
-    index = -1;
-  if (arguments.length < 3) {
-    ({
-      done,
-      value
-    } = iterator.next());
-    if (done) return;
-    ++index;
-  }
-  while (({
-    done,
-    value: next
-  } = iterator.next()), !done) {
-    value = reducer(value, next, ++index, values);
-  }
-  return value;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/reverse.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = reverse;
-function reverse(values) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  return Array.from(values).reverse();
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/scan.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/scan.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = scan;
-var _leastIndex = _interopRequireDefault(require("./leastIndex.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function scan(values, compare) {
-  const index = (0, _leastIndex.default)(values, compare);
-  return index < 0 ? undefined : index;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/shuffle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/shuffle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-exports.shuffler = shuffler;
-var _default = exports.default = shuffler(Math.random);
-function shuffler(random) {
-  return function shuffle(array, i0 = 0, i1 = array.length) {
-    let m = i1 - (i0 = +i0);
-    while (m) {
-      const i = random() * m-- | 0,
-        t = array[m + i0];
-      array[m + i0] = array[i + i0];
-      array[i + i0] = t;
-    }
-    return array;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/some.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/some.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = some;
-function some(values, test) {
-  if (typeof test !== "function") throw new TypeError("test is not a function");
-  let index = -1;
-  for (const value of values) {
-    if (test(value, ++index, values)) {
-      return true;
-    }
-  }
-  return false;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/sort.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/sort.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,45 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ascendingDefined = ascendingDefined;
-exports.compareDefined = compareDefined;
-exports.default = sort;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-var _permute = _interopRequireDefault(require("./permute.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function sort(values, ...F) {
-  if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
-  values = Array.from(values);
-  let [f] = F;
-  if (f && f.length !== 2 || F.length > 1) {
-    const index = Uint32Array.from(values, (d, i) => i);
-    if (F.length > 1) {
-      F = F.map(f => values.map(f));
-      index.sort((i, j) => {
-        for (const f of F) {
-          const c = ascendingDefined(f[i], f[j]);
-          if (c) return c;
-        }
-      });
-    } else {
-      f = values.map(f);
-      index.sort((i, j) => ascendingDefined(f[i], f[j]));
-    }
-    return (0, _permute.default)(values, index);
-  }
-  return values.sort(compareDefined(f));
-}
-function compareDefined(compare = _ascending.default) {
-  if (compare === _ascending.default) return ascendingDefined;
-  if (typeof compare !== "function") throw new TypeError("compare is not a function");
-  return (a, b) => {
-    const x = compare(a, b);
-    if (x || x === 0) return x;
-    return (compare(b, b) === 0) - (compare(a, a) === 0);
-  };
-}
-function ascendingDefined(a, b) {
-  return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/subset.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/subset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = subset;
-var _superset = _interopRequireDefault(require("./superset.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function subset(values, other) {
-  return (0, _superset.default)(other, values);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/sum.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/sum.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = sum;
-function sum(values, valueof) {
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value = +value) {
-        sum += value;
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if (value = +valueof(value, ++index, values)) {
-        sum += value;
-      }
-    }
-  }
-  return sum;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/superset.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/superset.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = superset;
-function superset(values, other) {
-  const iterator = values[Symbol.iterator](),
-    set = new Set();
-  for (const o of other) {
-    const io = intern(o);
-    if (set.has(io)) continue;
-    let value, done;
-    while (({
-      value,
-      done
-    } = iterator.next())) {
-      if (done) return false;
-      const ivalue = intern(value);
-      set.add(ivalue);
-      if (Object.is(io, ivalue)) break;
-    }
-  }
-  return true;
-}
-function intern(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/threshold/freedmanDiaconis.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/threshold/freedmanDiaconis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = thresholdFreedmanDiaconis;
-var _count = _interopRequireDefault(require("../count.js"));
-var _quantile = _interopRequireDefault(require("../quantile.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function thresholdFreedmanDiaconis(values, min, max) {
-  return Math.ceil((max - min) / (2 * ((0, _quantile.default)(values, 0.75) - (0, _quantile.default)(values, 0.25)) * Math.pow((0, _count.default)(values), -1 / 3)));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/threshold/scott.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/threshold/scott.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = thresholdScott;
-var _count = _interopRequireDefault(require("../count.js"));
-var _deviation = _interopRequireDefault(require("../deviation.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function thresholdScott(values, min, max) {
-  return Math.ceil((max - min) * Math.cbrt((0, _count.default)(values)) / (3.49 * (0, _deviation.default)(values)));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/threshold/sturges.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/threshold/sturges.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = thresholdSturges;
-var _count = _interopRequireDefault(require("../count.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function thresholdSturges(values) {
-  return Math.ceil(Math.log((0, _count.default)(values)) / Math.LN2) + 1;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/ticks.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/ticks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = ticks;
-exports.tickIncrement = tickIncrement;
-exports.tickStep = tickStep;
-var e10 = Math.sqrt(50),
-  e5 = Math.sqrt(10),
-  e2 = Math.sqrt(2);
-function ticks(start, stop, count) {
-  var reverse,
-    i = -1,
-    n,
-    ticks,
-    step;
-  stop = +stop, start = +start, count = +count;
-  if (start === stop && count > 0) return [start];
-  if (reverse = stop < start) n = start, start = stop, stop = n;
-  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
-  if (step > 0) {
-    let r0 = Math.round(start / step),
-      r1 = Math.round(stop / step);
-    if (r0 * step < start) ++r0;
-    if (r1 * step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) * step;
-  } else {
-    step = -step;
-    let r0 = Math.round(start * step),
-      r1 = Math.round(stop * step);
-    if (r0 / step < start) ++r0;
-    if (r1 / step > stop) --r1;
-    ticks = new Array(n = r1 - r0 + 1);
-    while (++i < n) ticks[i] = (r0 + i) / step;
-  }
-  if (reverse) ticks.reverse();
-  return ticks;
-}
-function tickIncrement(start, stop, count) {
-  var step = (stop - start) / Math.max(0, count),
-    power = Math.floor(Math.log(step) / Math.LN10),
-    error = step / Math.pow(10, power);
-  return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
-}
-function tickStep(start, stop, count) {
-  var step0 = Math.abs(stop - start) / Math.max(0, count),
-    step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
-    error = step0 / step1;
-  if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;
-  return stop < start ? -step1 : step1;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/transpose.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/transpose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = transpose;
-var _min = _interopRequireDefault(require("./min.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function transpose(matrix) {
-  if (!(n = matrix.length)) return [];
-  for (var i = -1, m = (0, _min.default)(matrix, length), transpose = new Array(m); ++i < m;) {
-    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
-      row[j] = matrix[j][i];
-    }
-  }
-  return transpose;
-}
-function length(d) {
-  return d.length;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/union.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/union.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = union;
-var _index = require("../../../lib-vendor/internmap/src/index.js");
-function union(...others) {
-  const set = new _index.InternSet();
-  for (const other of others) {
-    for (const o of other) {
-      set.add(o);
-    }
-  }
-  return set;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/variance.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/variance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = variance;
-function variance(values, valueof) {
-  let count = 0;
-  let delta;
-  let mean = 0;
-  let sum = 0;
-  if (valueof === undefined) {
-    for (let value of values) {
-      if (value != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  } else {
-    let index = -1;
-    for (let value of values) {
-      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
-        delta = value - mean;
-        mean += delta / ++count;
-        sum += delta * (value - mean);
-      }
-    }
-  }
-  if (count > 1) return sum / (count - 1);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-array/src/zip.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-array/src/zip.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = zip;
-var _transpose = _interopRequireDefault(require("./transpose.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function zip() {
-  return (0, _transpose.default)(arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-color/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2022 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/color.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,366 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Color = Color;
-exports.Rgb = Rgb;
-exports.darker = exports.brighter = void 0;
-exports.default = color;
-exports.hsl = hsl;
-exports.hslConvert = hslConvert;
-exports.rgb = rgb;
-exports.rgbConvert = rgbConvert;
-var _define = _interopRequireWildcard(require("./define.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function Color() {}
-var darker = exports.darker = 0.7;
-var brighter = exports.brighter = 1 / darker;
-var reI = "\\s*([+-]?\\d+)\\s*",
-  reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
-  reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
-  reHex = /^#([0-9a-f]{3,8})$/,
-  reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
-  reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
-  reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
-  reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
-  reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
-  reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
-var named = {
-  aliceblue: 0xf0f8ff,
-  antiquewhite: 0xfaebd7,
-  aqua: 0x00ffff,
-  aquamarine: 0x7fffd4,
-  azure: 0xf0ffff,
-  beige: 0xf5f5dc,
-  bisque: 0xffe4c4,
-  black: 0x000000,
-  blanchedalmond: 0xffebcd,
-  blue: 0x0000ff,
-  blueviolet: 0x8a2be2,
-  brown: 0xa52a2a,
-  burlywood: 0xdeb887,
-  cadetblue: 0x5f9ea0,
-  chartreuse: 0x7fff00,
-  chocolate: 0xd2691e,
-  coral: 0xff7f50,
-  cornflowerblue: 0x6495ed,
-  cornsilk: 0xfff8dc,
-  crimson: 0xdc143c,
-  cyan: 0x00ffff,
-  darkblue: 0x00008b,
-  darkcyan: 0x008b8b,
-  darkgoldenrod: 0xb8860b,
-  darkgray: 0xa9a9a9,
-  darkgreen: 0x006400,
-  darkgrey: 0xa9a9a9,
-  darkkhaki: 0xbdb76b,
-  darkmagenta: 0x8b008b,
-  darkolivegreen: 0x556b2f,
-  darkorange: 0xff8c00,
-  darkorchid: 0x9932cc,
-  darkred: 0x8b0000,
-  darksalmon: 0xe9967a,
-  darkseagreen: 0x8fbc8f,
-  darkslateblue: 0x483d8b,
-  darkslategray: 0x2f4f4f,
-  darkslategrey: 0x2f4f4f,
-  darkturquoise: 0x00ced1,
-  darkviolet: 0x9400d3,
-  deeppink: 0xff1493,
-  deepskyblue: 0x00bfff,
-  dimgray: 0x696969,
-  dimgrey: 0x696969,
-  dodgerblue: 0x1e90ff,
-  firebrick: 0xb22222,
-  floralwhite: 0xfffaf0,
-  forestgreen: 0x228b22,
-  fuchsia: 0xff00ff,
-  gainsboro: 0xdcdcdc,
-  ghostwhite: 0xf8f8ff,
-  gold: 0xffd700,
-  goldenrod: 0xdaa520,
-  gray: 0x808080,
-  green: 0x008000,
-  greenyellow: 0xadff2f,
-  grey: 0x808080,
-  honeydew: 0xf0fff0,
-  hotpink: 0xff69b4,
-  indianred: 0xcd5c5c,
-  indigo: 0x4b0082,
-  ivory: 0xfffff0,
-  khaki: 0xf0e68c,
-  lavender: 0xe6e6fa,
-  lavenderblush: 0xfff0f5,
-  lawngreen: 0x7cfc00,
-  lemonchiffon: 0xfffacd,
-  lightblue: 0xadd8e6,
-  lightcoral: 0xf08080,
-  lightcyan: 0xe0ffff,
-  lightgoldenrodyellow: 0xfafad2,
-  lightgray: 0xd3d3d3,
-  lightgreen: 0x90ee90,
-  lightgrey: 0xd3d3d3,
-  lightpink: 0xffb6c1,
-  lightsalmon: 0xffa07a,
-  lightseagreen: 0x20b2aa,
-  lightskyblue: 0x87cefa,
-  lightslategray: 0x778899,
-  lightslategrey: 0x778899,
-  lightsteelblue: 0xb0c4de,
-  lightyellow: 0xffffe0,
-  lime: 0x00ff00,
-  limegreen: 0x32cd32,
-  linen: 0xfaf0e6,
-  magenta: 0xff00ff,
-  maroon: 0x800000,
-  mediumaquamarine: 0x66cdaa,
-  mediumblue: 0x0000cd,
-  mediumorchid: 0xba55d3,
-  mediumpurple: 0x9370db,
-  mediumseagreen: 0x3cb371,
-  mediumslateblue: 0x7b68ee,
-  mediumspringgreen: 0x00fa9a,
-  mediumturquoise: 0x48d1cc,
-  mediumvioletred: 0xc71585,
-  midnightblue: 0x191970,
-  mintcream: 0xf5fffa,
-  mistyrose: 0xffe4e1,
-  moccasin: 0xffe4b5,
-  navajowhite: 0xffdead,
-  navy: 0x000080,
-  oldlace: 0xfdf5e6,
-  olive: 0x808000,
-  olivedrab: 0x6b8e23,
-  orange: 0xffa500,
-  orangered: 0xff4500,
-  orchid: 0xda70d6,
-  palegoldenrod: 0xeee8aa,
-  palegreen: 0x98fb98,
-  paleturquoise: 0xafeeee,
-  palevioletred: 0xdb7093,
-  papayawhip: 0xffefd5,
-  peachpuff: 0xffdab9,
-  peru: 0xcd853f,
-  pink: 0xffc0cb,
-  plum: 0xdda0dd,
-  powderblue: 0xb0e0e6,
-  purple: 0x800080,
-  rebeccapurple: 0x663399,
-  red: 0xff0000,
-  rosybrown: 0xbc8f8f,
-  royalblue: 0x4169e1,
-  saddlebrown: 0x8b4513,
-  salmon: 0xfa8072,
-  sandybrown: 0xf4a460,
-  seagreen: 0x2e8b57,
-  seashell: 0xfff5ee,
-  sienna: 0xa0522d,
-  silver: 0xc0c0c0,
-  skyblue: 0x87ceeb,
-  slateblue: 0x6a5acd,
-  slategray: 0x708090,
-  slategrey: 0x708090,
-  snow: 0xfffafa,
-  springgreen: 0x00ff7f,
-  steelblue: 0x4682b4,
-  tan: 0xd2b48c,
-  teal: 0x008080,
-  thistle: 0xd8bfd8,
-  tomato: 0xff6347,
-  turquoise: 0x40e0d0,
-  violet: 0xee82ee,
-  wheat: 0xf5deb3,
-  white: 0xffffff,
-  whitesmoke: 0xf5f5f5,
-  yellow: 0xffff00,
-  yellowgreen: 0x9acd32
-};
-(0, _define.default)(Color, color, {
-  copy(channels) {
-    return Object.assign(new this.constructor(), this, channels);
-  },
-  displayable() {
-    return this.rgb().displayable();
-  },
-  hex: color_formatHex,
-  // Deprecated! Use color.formatHex.
-  formatHex: color_formatHex,
-  formatHex8: color_formatHex8,
-  formatHsl: color_formatHsl,
-  formatRgb: color_formatRgb,
-  toString: color_formatRgb
-});
-function color_formatHex() {
-  return this.rgb().formatHex();
-}
-function color_formatHex8() {
-  return this.rgb().formatHex8();
-}
-function color_formatHsl() {
-  return hslConvert(this).formatHsl();
-}
-function color_formatRgb() {
-  return this.rgb().formatRgb();
-}
-function color(format) {
-  var m, l;
-  format = (format + "").trim().toLowerCase();
-  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
-  : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00
-  : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
-  : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000
-  : null // invalid hex
-  ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
-  : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
-  : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
-  : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
-  : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
-  : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
-  : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
-  : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
-}
-function rgbn(n) {
-  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
-}
-function rgba(r, g, b, a) {
-  if (a <= 0) r = g = b = NaN;
-  return new Rgb(r, g, b, a);
-}
-function rgbConvert(o) {
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Rgb();
-  o = o.rgb();
-  return new Rgb(o.r, o.g, o.b, o.opacity);
-}
-function rgb(r, g, b, opacity) {
-  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
-}
-function Rgb(r, g, b, opacity) {
-  this.r = +r;
-  this.g = +g;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-(0, _define.default)(Rgb, rgb, (0, _define.extend)(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
-  },
-  rgb() {
-    return this;
-  },
-  clamp() {
-    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
-  },
-  displayable() {
-    return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
-  },
-  hex: rgb_formatHex,
-  // Deprecated! Use color.formatHex.
-  formatHex: rgb_formatHex,
-  formatHex8: rgb_formatHex8,
-  formatRgb: rgb_formatRgb,
-  toString: rgb_formatRgb
-}));
-function rgb_formatHex() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
-}
-function rgb_formatHex8() {
-  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
-}
-function rgb_formatRgb() {
-  const a = clampa(this.opacity);
-  return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
-}
-function clampa(opacity) {
-  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
-}
-function clampi(value) {
-  return Math.max(0, Math.min(255, Math.round(value) || 0));
-}
-function hex(value) {
-  value = clampi(value);
-  return (value < 16 ? "0" : "") + value.toString(16);
-}
-function hsla(h, s, l, a) {
-  if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;
-  return new Hsl(h, s, l, a);
-}
-function hslConvert(o) {
-  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof Color)) o = color(o);
-  if (!o) return new Hsl();
-  if (o instanceof Hsl) return o;
-  o = o.rgb();
-  var r = o.r / 255,
-    g = o.g / 255,
-    b = o.b / 255,
-    min = Math.min(r, g, b),
-    max = Math.max(r, g, b),
-    h = NaN,
-    s = max - min,
-    l = (max + min) / 2;
-  if (s) {
-    if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;
-    s /= l < 0.5 ? max + min : 2 - max - min;
-    h *= 60;
-  } else {
-    s = l > 0 && l < 1 ? 0 : h;
-  }
-  return new Hsl(h, s, l, o.opacity);
-}
-function hsl(h, s, l, opacity) {
-  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
-}
-function Hsl(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-(0, _define.default)(Hsl, hsl, (0, _define.extend)(Color, {
-  brighter(k) {
-    k = k == null ? brighter : Math.pow(brighter, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? darker : Math.pow(darker, k);
-    return new Hsl(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = this.h % 360 + (this.h < 0) * 360,
-      s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
-      l = this.l,
-      m2 = l + (l < 0.5 ? l : 1 - l) * s,
-      m1 = 2 * l - m2;
-    return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);
-  },
-  clamp() {
-    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
-  },
-  displayable() {
-    return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
-  },
-  formatHsl() {
-    const a = clampa(this.opacity);
-    return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
-  }
-}));
-function clamph(value) {
-  value = (value || 0) % 360;
-  return value < 0 ? value + 360 : value;
-}
-function clampt(value) {
-  return Math.max(0, Math.min(1, value || 0));
-}
-
-/* From FvD 13.37, CSS Color Module Level 3 */
-function hsl2rgb(h, m1, m2) {
-  return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/cubehelix.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/cubehelix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,61 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Cubehelix = Cubehelix;
-exports.default = cubehelix;
-var _define = _interopRequireWildcard(require("./define.js"));
-var _color = require("./color.js");
-var _math = require("./math.js");
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-var A = -0.14861,
-  B = +1.78277,
-  C = -0.29227,
-  D = -0.90649,
-  E = +1.97294,
-  ED = E * D,
-  EB = E * B,
-  BC_DA = B * C - D * A;
-function cubehelixConvert(o) {
-  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
-  if (!(o instanceof _color.Rgb)) o = (0, _color.rgbConvert)(o);
-  var r = o.r / 255,
-    g = o.g / 255,
-    b = o.b / 255,
-    l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
-    bl = b - l,
-    k = (E * (g - l) - C * bl) / D,
-    s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),
-    // NaN if l=0 or l=1
-    h = s ? Math.atan2(k, bl) * _math.degrees - 120 : NaN;
-  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
-}
-function cubehelix(h, s, l, opacity) {
-  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
-}
-function Cubehelix(h, s, l, opacity) {
-  this.h = +h;
-  this.s = +s;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-(0, _define.default)(Cubehelix, cubehelix, (0, _define.extend)(_color.Color, {
-  brighter(k) {
-    k = k == null ? _color.brighter : Math.pow(_color.brighter, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  darker(k) {
-    k = k == null ? _color.darker : Math.pow(_color.darker, k);
-    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
-  },
-  rgb() {
-    var h = isNaN(this.h) ? 0 : (this.h + 120) * _math.radians,
-      l = +this.l,
-      a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
-      cosh = Math.cos(h),
-      sinh = Math.sin(h);
-    return new _color.Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);
-  }
-}));
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/define.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/define.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.extend = extend;
-function _default(constructor, factory, prototype) {
-  constructor.prototype = factory.prototype = prototype;
-  prototype.constructor = constructor;
-}
-function extend(parent, definition) {
-  var prototype = Object.create(parent.prototype);
-  for (var key in definition) prototype[key] = definition[key];
-  return prototype;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "color", {
-  enumerable: true,
-  get: function () {
-    return _color.default;
-  }
-});
-Object.defineProperty(exports, "cubehelix", {
-  enumerable: true,
-  get: function () {
-    return _cubehelix.default;
-  }
-});
-Object.defineProperty(exports, "gray", {
-  enumerable: true,
-  get: function () {
-    return _lab.gray;
-  }
-});
-Object.defineProperty(exports, "hcl", {
-  enumerable: true,
-  get: function () {
-    return _lab.hcl;
-  }
-});
-Object.defineProperty(exports, "hsl", {
-  enumerable: true,
-  get: function () {
-    return _color.hsl;
-  }
-});
-Object.defineProperty(exports, "lab", {
-  enumerable: true,
-  get: function () {
-    return _lab.default;
-  }
-});
-Object.defineProperty(exports, "lch", {
-  enumerable: true,
-  get: function () {
-    return _lab.lch;
-  }
-});
-Object.defineProperty(exports, "rgb", {
-  enumerable: true,
-  get: function () {
-    return _color.rgb;
-  }
-});
-var _color = _interopRequireWildcard(require("./color.js"));
-var _lab = _interopRequireWildcard(require("./lab.js"));
-var _cubehelix = _interopRequireDefault(require("./cubehelix.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/lab.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/lab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Hcl = Hcl;
-exports.Lab = Lab;
-exports.default = lab;
-exports.gray = gray;
-exports.hcl = hcl;
-exports.lch = lch;
-var _define = _interopRequireWildcard(require("./define.js"));
-var _color = require("./color.js");
-var _math = require("./math.js");
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-// https://observablehq.com/@mbostock/lab-and-rgb
-const K = 18,
-  Xn = 0.96422,
-  Yn = 1,
-  Zn = 0.82521,
-  t0 = 4 / 29,
-  t1 = 6 / 29,
-  t2 = 3 * t1 * t1,
-  t3 = t1 * t1 * t1;
-function labConvert(o) {
-  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
-  if (o instanceof Hcl) return hcl2lab(o);
-  if (!(o instanceof _color.Rgb)) o = (0, _color.rgbConvert)(o);
-  var r = rgb2lrgb(o.r),
-    g = rgb2lrgb(o.g),
-    b = rgb2lrgb(o.b),
-    y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn),
-    x,
-    z;
-  if (r === g && g === b) x = z = y;else {
-    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
-    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
-  }
-  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
-}
-function gray(l, opacity) {
-  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
-}
-function lab(l, a, b, opacity) {
-  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
-}
-function Lab(l, a, b, opacity) {
-  this.l = +l;
-  this.a = +a;
-  this.b = +b;
-  this.opacity = +opacity;
-}
-(0, _define.default)(Lab, lab, (0, _define.extend)(_color.Color, {
-  brighter(k) {
-    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  darker(k) {
-    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
-  },
-  rgb() {
-    var y = (this.l + 16) / 116,
-      x = isNaN(this.a) ? y : y + this.a / 500,
-      z = isNaN(this.b) ? y : y - this.b / 200;
-    x = Xn * lab2xyz(x);
-    y = Yn * lab2xyz(y);
-    z = Zn * lab2xyz(z);
-    return new _color.Rgb(lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z), lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z), this.opacity);
-  }
-}));
-function xyz2lab(t) {
-  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
-}
-function lab2xyz(t) {
-  return t > t1 ? t * t * t : t2 * (t - t0);
-}
-function lrgb2rgb(x) {
-  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
-}
-function rgb2lrgb(x) {
-  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
-}
-function hclConvert(o) {
-  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
-  if (!(o instanceof Lab)) o = labConvert(o);
-  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
-  var h = Math.atan2(o.b, o.a) * _math.degrees;
-  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
-}
-function lch(l, c, h, opacity) {
-  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-function hcl(h, c, l, opacity) {
-  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
-}
-function Hcl(h, c, l, opacity) {
-  this.h = +h;
-  this.c = +c;
-  this.l = +l;
-  this.opacity = +opacity;
-}
-function hcl2lab(o) {
-  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
-  var h = o.h * _math.radians;
-  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
-}
-(0, _define.default)(Hcl, hcl, (0, _define.extend)(_color.Color, {
-  brighter(k) {
-    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
-  },
-  darker(k) {
-    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
-  },
-  rgb() {
-    return hcl2lab(this).rgb();
-  }
-}));
Index: de_modules/victory-vendor/lib-vendor/d3-color/src/math.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-color/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.radians = exports.degrees = void 0;
-const radians = exports.radians = Math.PI / 180;
-const degrees = exports.degrees = 180 / Math.PI;
Index: de_modules/victory-vendor/lib-vendor/d3-ease/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-Copyright 2001 Robert Penner
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/back.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/back.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.backOut = exports.backInOut = exports.backIn = void 0;
-var overshoot = 1.70158;
-var backIn = exports.backIn = function custom(s) {
-  s = +s;
-  function backIn(t) {
-    return (t = +t) * t * (s * (t - 1) + t);
-  }
-  backIn.overshoot = custom;
-  return backIn;
-}(overshoot);
-var backOut = exports.backOut = function custom(s) {
-  s = +s;
-  function backOut(t) {
-    return --t * t * ((t + 1) * s + t) + 1;
-  }
-  backOut.overshoot = custom;
-  return backOut;
-}(overshoot);
-var backInOut = exports.backInOut = function custom(s) {
-  s = +s;
-  function backInOut(t) {
-    return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
-  }
-  backInOut.overshoot = custom;
-  return backInOut;
-}(overshoot);
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/bounce.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/bounce.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.bounceIn = bounceIn;
-exports.bounceInOut = bounceInOut;
-exports.bounceOut = bounceOut;
-var b1 = 4 / 11,
-  b2 = 6 / 11,
-  b3 = 8 / 11,
-  b4 = 3 / 4,
-  b5 = 9 / 11,
-  b6 = 10 / 11,
-  b7 = 15 / 16,
-  b8 = 21 / 22,
-  b9 = 63 / 64,
-  b0 = 1 / b1 / b1;
-function bounceIn(t) {
-  return 1 - bounceOut(1 - t);
-}
-function bounceOut(t) {
-  return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
-}
-function bounceInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/circle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.circleIn = circleIn;
-exports.circleInOut = circleInOut;
-exports.circleOut = circleOut;
-function circleIn(t) {
-  return 1 - Math.sqrt(1 - t * t);
-}
-function circleOut(t) {
-  return Math.sqrt(1 - --t * t);
-}
-function circleInOut(t) {
-  return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/cubic.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/cubic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.cubicIn = cubicIn;
-exports.cubicInOut = cubicInOut;
-exports.cubicOut = cubicOut;
-function cubicIn(t) {
-  return t * t * t;
-}
-function cubicOut(t) {
-  return --t * t * t + 1;
-}
-function cubicInOut(t) {
-  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/elastic.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/elastic.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.elasticOut = exports.elasticInOut = exports.elasticIn = void 0;
-var _math = require("./math.js");
-var tau = 2 * Math.PI,
-  amplitude = 1,
-  period = 0.3;
-var elasticIn = exports.elasticIn = function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-  function elasticIn(t) {
-    return a * (0, _math.tpmt)(- --t) * Math.sin((s - t) / p);
-  }
-  elasticIn.amplitude = function (a) {
-    return custom(a, p * tau);
-  };
-  elasticIn.period = function (p) {
-    return custom(a, p);
-  };
-  return elasticIn;
-}(amplitude, period);
-var elasticOut = exports.elasticOut = function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-  function elasticOut(t) {
-    return 1 - a * (0, _math.tpmt)(t = +t) * Math.sin((t + s) / p);
-  }
-  elasticOut.amplitude = function (a) {
-    return custom(a, p * tau);
-  };
-  elasticOut.period = function (p) {
-    return custom(a, p);
-  };
-  return elasticOut;
-}(amplitude, period);
-var elasticInOut = exports.elasticInOut = function custom(a, p) {
-  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
-  function elasticInOut(t) {
-    return ((t = t * 2 - 1) < 0 ? a * (0, _math.tpmt)(-t) * Math.sin((s - t) / p) : 2 - a * (0, _math.tpmt)(t) * Math.sin((s + t) / p)) / 2;
-  }
-  elasticInOut.amplitude = function (a) {
-    return custom(a, p * tau);
-  };
-  elasticInOut.period = function (p) {
-    return custom(a, p);
-  };
-  return elasticInOut;
-}(amplitude, period);
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/exp.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/exp.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.expIn = expIn;
-exports.expInOut = expInOut;
-exports.expOut = expOut;
-var _math = require("./math.js");
-function expIn(t) {
-  return (0, _math.tpmt)(1 - +t);
-}
-function expOut(t) {
-  return 1 - (0, _math.tpmt)(t);
-}
-function expInOut(t) {
-  return ((t *= 2) <= 1 ? (0, _math.tpmt)(1 - t) : 2 - (0, _math.tpmt)(t - 1)) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,237 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "easeBack", {
-  enumerable: true,
-  get: function () {
-    return _back.backInOut;
-  }
-});
-Object.defineProperty(exports, "easeBackIn", {
-  enumerable: true,
-  get: function () {
-    return _back.backIn;
-  }
-});
-Object.defineProperty(exports, "easeBackInOut", {
-  enumerable: true,
-  get: function () {
-    return _back.backInOut;
-  }
-});
-Object.defineProperty(exports, "easeBackOut", {
-  enumerable: true,
-  get: function () {
-    return _back.backOut;
-  }
-});
-Object.defineProperty(exports, "easeBounce", {
-  enumerable: true,
-  get: function () {
-    return _bounce.bounceOut;
-  }
-});
-Object.defineProperty(exports, "easeBounceIn", {
-  enumerable: true,
-  get: function () {
-    return _bounce.bounceIn;
-  }
-});
-Object.defineProperty(exports, "easeBounceInOut", {
-  enumerable: true,
-  get: function () {
-    return _bounce.bounceInOut;
-  }
-});
-Object.defineProperty(exports, "easeBounceOut", {
-  enumerable: true,
-  get: function () {
-    return _bounce.bounceOut;
-  }
-});
-Object.defineProperty(exports, "easeCircle", {
-  enumerable: true,
-  get: function () {
-    return _circle.circleInOut;
-  }
-});
-Object.defineProperty(exports, "easeCircleIn", {
-  enumerable: true,
-  get: function () {
-    return _circle.circleIn;
-  }
-});
-Object.defineProperty(exports, "easeCircleInOut", {
-  enumerable: true,
-  get: function () {
-    return _circle.circleInOut;
-  }
-});
-Object.defineProperty(exports, "easeCircleOut", {
-  enumerable: true,
-  get: function () {
-    return _circle.circleOut;
-  }
-});
-Object.defineProperty(exports, "easeCubic", {
-  enumerable: true,
-  get: function () {
-    return _cubic.cubicInOut;
-  }
-});
-Object.defineProperty(exports, "easeCubicIn", {
-  enumerable: true,
-  get: function () {
-    return _cubic.cubicIn;
-  }
-});
-Object.defineProperty(exports, "easeCubicInOut", {
-  enumerable: true,
-  get: function () {
-    return _cubic.cubicInOut;
-  }
-});
-Object.defineProperty(exports, "easeCubicOut", {
-  enumerable: true,
-  get: function () {
-    return _cubic.cubicOut;
-  }
-});
-Object.defineProperty(exports, "easeElastic", {
-  enumerable: true,
-  get: function () {
-    return _elastic.elasticOut;
-  }
-});
-Object.defineProperty(exports, "easeElasticIn", {
-  enumerable: true,
-  get: function () {
-    return _elastic.elasticIn;
-  }
-});
-Object.defineProperty(exports, "easeElasticInOut", {
-  enumerable: true,
-  get: function () {
-    return _elastic.elasticInOut;
-  }
-});
-Object.defineProperty(exports, "easeElasticOut", {
-  enumerable: true,
-  get: function () {
-    return _elastic.elasticOut;
-  }
-});
-Object.defineProperty(exports, "easeExp", {
-  enumerable: true,
-  get: function () {
-    return _exp.expInOut;
-  }
-});
-Object.defineProperty(exports, "easeExpIn", {
-  enumerable: true,
-  get: function () {
-    return _exp.expIn;
-  }
-});
-Object.defineProperty(exports, "easeExpInOut", {
-  enumerable: true,
-  get: function () {
-    return _exp.expInOut;
-  }
-});
-Object.defineProperty(exports, "easeExpOut", {
-  enumerable: true,
-  get: function () {
-    return _exp.expOut;
-  }
-});
-Object.defineProperty(exports, "easeLinear", {
-  enumerable: true,
-  get: function () {
-    return _linear.linear;
-  }
-});
-Object.defineProperty(exports, "easePoly", {
-  enumerable: true,
-  get: function () {
-    return _poly.polyInOut;
-  }
-});
-Object.defineProperty(exports, "easePolyIn", {
-  enumerable: true,
-  get: function () {
-    return _poly.polyIn;
-  }
-});
-Object.defineProperty(exports, "easePolyInOut", {
-  enumerable: true,
-  get: function () {
-    return _poly.polyInOut;
-  }
-});
-Object.defineProperty(exports, "easePolyOut", {
-  enumerable: true,
-  get: function () {
-    return _poly.polyOut;
-  }
-});
-Object.defineProperty(exports, "easeQuad", {
-  enumerable: true,
-  get: function () {
-    return _quad.quadInOut;
-  }
-});
-Object.defineProperty(exports, "easeQuadIn", {
-  enumerable: true,
-  get: function () {
-    return _quad.quadIn;
-  }
-});
-Object.defineProperty(exports, "easeQuadInOut", {
-  enumerable: true,
-  get: function () {
-    return _quad.quadInOut;
-  }
-});
-Object.defineProperty(exports, "easeQuadOut", {
-  enumerable: true,
-  get: function () {
-    return _quad.quadOut;
-  }
-});
-Object.defineProperty(exports, "easeSin", {
-  enumerable: true,
-  get: function () {
-    return _sin.sinInOut;
-  }
-});
-Object.defineProperty(exports, "easeSinIn", {
-  enumerable: true,
-  get: function () {
-    return _sin.sinIn;
-  }
-});
-Object.defineProperty(exports, "easeSinInOut", {
-  enumerable: true,
-  get: function () {
-    return _sin.sinInOut;
-  }
-});
-Object.defineProperty(exports, "easeSinOut", {
-  enumerable: true,
-  get: function () {
-    return _sin.sinOut;
-  }
-});
-var _linear = require("./linear.js");
-var _quad = require("./quad.js");
-var _cubic = require("./cubic.js");
-var _poly = require("./poly.js");
-var _sin = require("./sin.js");
-var _exp = require("./exp.js");
-var _circle = require("./circle.js");
-var _bounce = require("./bounce.js");
-var _back = require("./back.js");
-var _elastic = require("./elastic.js");
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/linear.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.linear = void 0;
-const linear = t => +t;
-exports.linear = linear;
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/math.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.tpmt = tpmt;
-// tpmt is two power minus ten times t scaled to [0,1]
-function tpmt(x) {
-  return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/poly.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/poly.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.polyOut = exports.polyInOut = exports.polyIn = void 0;
-var exponent = 3;
-var polyIn = exports.polyIn = function custom(e) {
-  e = +e;
-  function polyIn(t) {
-    return Math.pow(t, e);
-  }
-  polyIn.exponent = custom;
-  return polyIn;
-}(exponent);
-var polyOut = exports.polyOut = function custom(e) {
-  e = +e;
-  function polyOut(t) {
-    return 1 - Math.pow(1 - t, e);
-  }
-  polyOut.exponent = custom;
-  return polyOut;
-}(exponent);
-var polyInOut = exports.polyInOut = function custom(e) {
-  e = +e;
-  function polyInOut(t) {
-    return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
-  }
-  polyInOut.exponent = custom;
-  return polyInOut;
-}(exponent);
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/quad.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/quad.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.quadIn = quadIn;
-exports.quadInOut = quadInOut;
-exports.quadOut = quadOut;
-function quadIn(t) {
-  return t * t;
-}
-function quadOut(t) {
-  return t * (2 - t);
-}
-function quadInOut(t) {
-  return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-ease/src/sin.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-ease/src/sin.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.sinIn = sinIn;
-exports.sinInOut = sinInOut;
-exports.sinOut = sinOut;
-var pi = Math.PI,
-  halfPi = pi / 2;
-function sinIn(t) {
-  return +t === 1 ? 1 : 1 - Math.cos(t * halfPi);
-}
-function sinOut(t) {
-  return Math.sin(t * halfPi);
-}
-function sinInOut(t) {
-  return (1 - Math.cos(pi * t)) / 2;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/defaultLocale.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/defaultLocale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = defaultLocale;
-exports.formatPrefix = exports.format = void 0;
-var _locale = _interopRequireDefault(require("./locale.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var locale;
-var format;
-var formatPrefix;
-defaultLocale({
-  thousands: ",",
-  grouping: [3],
-  currency: ["$", ""]
-});
-function defaultLocale(definition) {
-  locale = (0, _locale.default)(definition);
-  exports.format = format = locale.format;
-  exports.formatPrefix = formatPrefix = locale.formatPrefix;
-  return locale;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/exponent.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/exponent.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _formatDecimal = require("./formatDecimal.js");
-function _default(x) {
-  return x = (0, _formatDecimal.formatDecimalParts)(Math.abs(x)), x ? x[1] : NaN;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatDecimal.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatDecimal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.formatDecimalParts = formatDecimalParts;
-function _default(x) {
-  return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
-}
-
-// Computes the decimal coefficient and exponent of the specified number x with
-// significant digits p, where x is positive and p is in [1, 21] or undefined.
-// For example, formatDecimalParts(1.23) returns ["123", 0].
-function formatDecimalParts(x, p) {
-  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
-  var i,
-    coefficient = x.slice(0, i);
-
-  // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
-  // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
-  return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatGroup.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatGroup.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(grouping, thousands) {
-  return function (value, width) {
-    var i = value.length,
-      t = [],
-      j = 0,
-      g = grouping[0],
-      length = 0;
-    while (i > 0 && g > 0) {
-      if (length + g + 1 > width) g = Math.max(1, width - length);
-      t.push(value.substring(i -= g, i + g));
-      if ((length += g + 1) > width) break;
-      g = grouping[j = (j + 1) % grouping.length];
-    }
-    return t.reverse().join(thousands);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatNumerals.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatNumerals.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(numerals) {
-  return function (value) {
-    return value.replace(/[0-9]/g, function (i) {
-      return numerals[+i];
-    });
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatPrefixAuto.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatPrefixAuto.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.prefixExponent = void 0;
-var _formatDecimal = require("./formatDecimal.js");
-var prefixExponent;
-function _default(x, p) {
-  var d = (0, _formatDecimal.formatDecimalParts)(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-    exponent = d[1],
-    i = exponent - (exports.prefixExponent = prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
-    n = coefficient.length;
-  return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + (0, _formatDecimal.formatDecimalParts)(x, Math.max(0, p + i - 1))[0]; // less than 1y!
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatRounded.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatRounded.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _formatDecimal = require("./formatDecimal.js");
-function _default(x, p) {
-  var d = (0, _formatDecimal.formatDecimalParts)(x, p);
-  if (!d) return x + "";
-  var coefficient = d[0],
-    exponent = d[1];
-  return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join("0");
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatSpecifier.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatSpecifier.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.FormatSpecifier = FormatSpecifier;
-exports.default = formatSpecifier;
-// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
-var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
-function formatSpecifier(specifier) {
-  if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
-  var match;
-  return new FormatSpecifier({
-    fill: match[1],
-    align: match[2],
-    sign: match[3],
-    symbol: match[4],
-    zero: match[5],
-    width: match[6],
-    comma: match[7],
-    precision: match[8] && match[8].slice(1),
-    trim: match[9],
-    type: match[10]
-  });
-}
-formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
-
-function FormatSpecifier(specifier) {
-  this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
-  this.align = specifier.align === undefined ? ">" : specifier.align + "";
-  this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
-  this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
-  this.zero = !!specifier.zero;
-  this.width = specifier.width === undefined ? undefined : +specifier.width;
-  this.comma = !!specifier.comma;
-  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
-  this.trim = !!specifier.trim;
-  this.type = specifier.type === undefined ? "" : specifier.type + "";
-}
-FormatSpecifier.prototype.toString = function () {
-  return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === undefined ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
-};
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatTrim.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatTrim.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
-function _default(s) {
-  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
-    switch (s[i]) {
-      case ".":
-        i0 = i1 = i;
-        break;
-      case "0":
-        if (i0 === 0) i0 = i;
-        i1 = i;
-        break;
-      default:
-        if (!+s[i]) break out;
-        if (i0 > 0) i0 = 0;
-        break;
-    }
-  }
-  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/formatTypes.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/formatTypes.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _formatDecimal = _interopRequireDefault(require("./formatDecimal.js"));
-var _formatPrefixAuto = _interopRequireDefault(require("./formatPrefixAuto.js"));
-var _formatRounded = _interopRequireDefault(require("./formatRounded.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var _default = exports.default = {
-  "%": (x, p) => (x * 100).toFixed(p),
-  "b": x => Math.round(x).toString(2),
-  "c": x => x + "",
-  "d": _formatDecimal.default,
-  "e": (x, p) => x.toExponential(p),
-  "f": (x, p) => x.toFixed(p),
-  "g": (x, p) => x.toPrecision(p),
-  "o": x => Math.round(x).toString(8),
-  "p": (x, p) => (0, _formatRounded.default)(x * 100, p),
-  "r": _formatRounded.default,
-  "s": _formatPrefixAuto.default,
-  "X": x => Math.round(x).toString(16).toUpperCase(),
-  "x": x => Math.round(x).toString(16)
-};
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/identity.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(x) {
-  return x;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,68 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "FormatSpecifier", {
-  enumerable: true,
-  get: function () {
-    return _formatSpecifier.FormatSpecifier;
-  }
-});
-Object.defineProperty(exports, "format", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.format;
-  }
-});
-Object.defineProperty(exports, "formatDefaultLocale", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.default;
-  }
-});
-Object.defineProperty(exports, "formatLocale", {
-  enumerable: true,
-  get: function () {
-    return _locale.default;
-  }
-});
-Object.defineProperty(exports, "formatPrefix", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.formatPrefix;
-  }
-});
-Object.defineProperty(exports, "formatSpecifier", {
-  enumerable: true,
-  get: function () {
-    return _formatSpecifier.default;
-  }
-});
-Object.defineProperty(exports, "precisionFixed", {
-  enumerable: true,
-  get: function () {
-    return _precisionFixed.default;
-  }
-});
-Object.defineProperty(exports, "precisionPrefix", {
-  enumerable: true,
-  get: function () {
-    return _precisionPrefix.default;
-  }
-});
-Object.defineProperty(exports, "precisionRound", {
-  enumerable: true,
-  get: function () {
-    return _precisionRound.default;
-  }
-});
-var _defaultLocale = _interopRequireWildcard(require("./defaultLocale.js"));
-var _locale = _interopRequireDefault(require("./locale.js"));
-var _formatSpecifier = _interopRequireWildcard(require("./formatSpecifier.js"));
-var _precisionFixed = _interopRequireDefault(require("./precisionFixed.js"));
-var _precisionPrefix = _interopRequireDefault(require("./precisionPrefix.js"));
-var _precisionRound = _interopRequireDefault(require("./precisionRound.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/locale.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/locale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,152 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _exponent = _interopRequireDefault(require("./exponent.js"));
-var _formatGroup = _interopRequireDefault(require("./formatGroup.js"));
-var _formatNumerals = _interopRequireDefault(require("./formatNumerals.js"));
-var _formatSpecifier = _interopRequireDefault(require("./formatSpecifier.js"));
-var _formatTrim = _interopRequireDefault(require("./formatTrim.js"));
-var _formatTypes = _interopRequireDefault(require("./formatTypes.js"));
-var _formatPrefixAuto = require("./formatPrefixAuto.js");
-var _identity = _interopRequireDefault(require("./identity.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var map = Array.prototype.map,
-  prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
-function _default(locale) {
-  var group = locale.grouping === undefined || locale.thousands === undefined ? _identity.default : (0, _formatGroup.default)(map.call(locale.grouping, Number), locale.thousands + ""),
-    currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
-    currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
-    decimal = locale.decimal === undefined ? "." : locale.decimal + "",
-    numerals = locale.numerals === undefined ? _identity.default : (0, _formatNumerals.default)(map.call(locale.numerals, String)),
-    percent = locale.percent === undefined ? "%" : locale.percent + "",
-    minus = locale.minus === undefined ? "−" : locale.minus + "",
-    nan = locale.nan === undefined ? "NaN" : locale.nan + "";
-  function newFormat(specifier) {
-    specifier = (0, _formatSpecifier.default)(specifier);
-    var fill = specifier.fill,
-      align = specifier.align,
-      sign = specifier.sign,
-      symbol = specifier.symbol,
-      zero = specifier.zero,
-      width = specifier.width,
-      comma = specifier.comma,
-      precision = specifier.precision,
-      trim = specifier.trim,
-      type = specifier.type;
-
-    // The "n" type is an alias for ",g".
-    if (type === "n") comma = true, type = "g";
-
-    // The "" type, and any invalid type, is an alias for ".12~g".
-    else if (!_formatTypes.default[type]) precision === undefined && (precision = 12), trim = true, type = "g";
-
-    // If zero fill is specified, padding goes after sign and before digits.
-    if (zero || fill === "0" && align === "=") zero = true, fill = "0", align = "=";
-
-    // Compute the prefix and suffix.
-    // For SI-prefix, the suffix is lazily computed.
-    var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
-      suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
-
-    // What format function should we use?
-    // Is this an integer type?
-    // Can this type generate exponential notation?
-    var formatType = _formatTypes.default[type],
-      maybeSuffix = /[defgprs%]/.test(type);
-
-    // Set the default precision if not specified,
-    // or clamp the specified precision to the supported range.
-    // For significant precision, it must be in [1, 21].
-    // For fixed precision, it must be in [0, 20].
-    precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
-    function format(value) {
-      var valuePrefix = prefix,
-        valueSuffix = suffix,
-        i,
-        n,
-        c;
-      if (type === "c") {
-        valueSuffix = formatType(value) + valueSuffix;
-        value = "";
-      } else {
-        value = +value;
-
-        // Determine the sign. -0 is not less than 0, but 1 / -0 is!
-        var valueNegative = value < 0 || 1 / value < 0;
-
-        // Perform the initial formatting.
-        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
-
-        // Trim insignificant zeros.
-        if (trim) value = (0, _formatTrim.default)(value);
-
-        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
-        if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
-
-        // Compute the prefix and suffix.
-        valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
-        valueSuffix = (type === "s" ? prefixes[8 + _formatPrefixAuto.prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
-
-        // Break the formatted value into the integer “value” part that can be
-        // grouped, and fractional or exponential “suffix” part that is not.
-        if (maybeSuffix) {
-          i = -1, n = value.length;
-          while (++i < n) {
-            if (c = value.charCodeAt(i), 48 > c || c > 57) {
-              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
-              value = value.slice(0, i);
-              break;
-            }
-          }
-        }
-      }
-
-      // If the fill character is not "0", grouping is applied before padding.
-      if (comma && !zero) value = group(value, Infinity);
-
-      // Compute the padding.
-      var length = valuePrefix.length + value.length + valueSuffix.length,
-        padding = length < width ? new Array(width - length + 1).join(fill) : "";
-
-      // If the fill character is "0", grouping is applied after padding.
-      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
-
-      // Reconstruct the final output based on the desired alignment.
-      switch (align) {
-        case "<":
-          value = valuePrefix + value + valueSuffix + padding;
-          break;
-        case "=":
-          value = valuePrefix + padding + value + valueSuffix;
-          break;
-        case "^":
-          value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);
-          break;
-        default:
-          value = padding + valuePrefix + value + valueSuffix;
-          break;
-      }
-      return numerals(value);
-    }
-    format.toString = function () {
-      return specifier + "";
-    };
-    return format;
-  }
-  function formatPrefix(specifier, value) {
-    var f = newFormat((specifier = (0, _formatSpecifier.default)(specifier), specifier.type = "f", specifier)),
-      e = Math.max(-8, Math.min(8, Math.floor((0, _exponent.default)(value) / 3))) * 3,
-      k = Math.pow(10, -e),
-      prefix = prefixes[8 + e / 3];
-    return function (value) {
-      return f(k * value) + prefix;
-    };
-  }
-  return {
-    format: newFormat,
-    formatPrefix: formatPrefix
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/precisionFixed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/precisionFixed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _exponent = _interopRequireDefault(require("./exponent.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(step) {
-  return Math.max(0, -(0, _exponent.default)(Math.abs(step)));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/precisionPrefix.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/precisionPrefix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _exponent = _interopRequireDefault(require("./exponent.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(step, value) {
-  return Math.max(0, Math.max(-8, Math.min(8, Math.floor((0, _exponent.default)(value) / 3))) * 3 - (0, _exponent.default)(Math.abs(step)));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-format/src/precisionRound.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-format/src/precisionRound.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _exponent = _interopRequireDefault(require("./exponent.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(step, max) {
-  step = Math.abs(step), max = Math.abs(max) - step;
-  return Math.max(0, (0, _exponent.default)(max) - (0, _exponent.default)(step)) + 1;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/array.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.genericArray = genericArray;
-var _value = _interopRequireDefault(require("./value.js"));
-var _numberArray = _interopRequireWildcard(require("./numberArray.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(a, b) {
-  return ((0, _numberArray.isNumberArray)(b) ? _numberArray.default : genericArray)(a, b);
-}
-function genericArray(a, b) {
-  var nb = b ? b.length : 0,
-    na = a ? Math.min(nb, a.length) : 0,
-    x = new Array(na),
-    c = new Array(nb),
-    i;
-  for (i = 0; i < na; ++i) x[i] = (0, _value.default)(a[i], b[i]);
-  for (; i < nb; ++i) c[i] = b[i];
-  return function (t) {
-    for (i = 0; i < na; ++i) c[i] = x[i](t);
-    return c;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/basis.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.basis = basis;
-exports.default = _default;
-function basis(t1, v0, v1, v2, v3) {
-  var t2 = t1 * t1,
-    t3 = t2 * t1;
-  return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;
-}
-function _default(values) {
-  var n = values.length - 1;
-  return function (t) {
-    var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
-      v1 = values[i],
-      v2 = values[i + 1],
-      v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
-      v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
-    return basis((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/basisClosed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/basisClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,18 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _basis = require("./basis.js");
-function _default(values) {
-  var n = values.length;
-  return function (t) {
-    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
-      v0 = values[(i + n - 1) % n],
-      v1 = values[i % n],
-      v2 = values[(i + 1) % n],
-      v3 = values[(i + 2) % n];
-    return (0, _basis.basis)((t - i / n) * n, v0, v1, v2, v3);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/color.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = nogamma;
-exports.gamma = gamma;
-exports.hue = hue;
-var _constant = _interopRequireDefault(require("./constant.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function linear(a, d) {
-  return function (t) {
-    return a + t * d;
-  };
-}
-function exponential(a, b, y) {
-  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {
-    return Math.pow(a + t * b, y);
-  };
-}
-function hue(a, b) {
-  var d = b - a;
-  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : (0, _constant.default)(isNaN(a) ? b : a);
-}
-function gamma(y) {
-  return (y = +y) === 1 ? nogamma : function (a, b) {
-    return b - a ? exponential(a, b, y) : (0, _constant.default)(isNaN(a) ? b : a);
-  };
-}
-function nogamma(a, b) {
-  var d = b - a;
-  return d ? linear(a, d) : (0, _constant.default)(isNaN(a) ? b : a);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/constant.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _default = x => () => x;
-exports.default = _default;
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/cubehelix.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/cubehelix.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = exports.cubehelixLong = void 0;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _color = _interopRequireWildcard(require("./color.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function cubehelix(hue) {
-  return function cubehelixGamma(y) {
-    y = +y;
-    function cubehelix(start, end) {
-      var h = hue((start = (0, _index.cubehelix)(start)).h, (end = (0, _index.cubehelix)(end)).h),
-        s = (0, _color.default)(start.s, end.s),
-        l = (0, _color.default)(start.l, end.l),
-        opacity = (0, _color.default)(start.opacity, end.opacity);
-      return function (t) {
-        start.h = h(t);
-        start.s = s(t);
-        start.l = l(Math.pow(t, y));
-        start.opacity = opacity(t);
-        return start + "";
-      };
-    }
-    cubehelix.gamma = cubehelixGamma;
-    return cubehelix;
-  }(1);
-}
-var _default = exports.default = cubehelix(_color.hue);
-var cubehelixLong = exports.cubehelixLong = cubehelix(_color.default);
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/date.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/date.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(a, b) {
-  var d = new Date();
-  return a = +a, b = +b, function (t) {
-    return d.setTime(a * (1 - t) + b * t), d;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/discrete.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/discrete.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(range) {
-  var n = range.length;
-  return function (t) {
-    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/hcl.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/hcl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.hclLong = exports.default = void 0;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _color = _interopRequireWildcard(require("./color.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function hcl(hue) {
-  return function (start, end) {
-    var h = hue((start = (0, _index.hcl)(start)).h, (end = (0, _index.hcl)(end)).h),
-      c = (0, _color.default)(start.c, end.c),
-      l = (0, _color.default)(start.l, end.l),
-      opacity = (0, _color.default)(start.opacity, end.opacity);
-    return function (t) {
-      start.h = h(t);
-      start.c = c(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  };
-}
-var _default = exports.default = hcl(_color.hue);
-var hclLong = exports.hclLong = hcl(_color.default);
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/hsl.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/hsl.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.hslLong = exports.default = void 0;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _color = _interopRequireWildcard(require("./color.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function hsl(hue) {
-  return function (start, end) {
-    var h = hue((start = (0, _index.hsl)(start)).h, (end = (0, _index.hsl)(end)).h),
-      s = (0, _color.default)(start.s, end.s),
-      l = (0, _color.default)(start.l, end.l),
-      opacity = (0, _color.default)(start.opacity, end.opacity);
-    return function (t) {
-      start.h = h(t);
-      start.s = s(t);
-      start.l = l(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  };
-}
-var _default = exports.default = hsl(_color.hue);
-var hslLong = exports.hslLong = hsl(_color.default);
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/hue.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/hue.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _color = require("./color.js");
-function _default(a, b) {
-  var i = (0, _color.hue)(+a, +b);
-  return function (t) {
-    var x = i(t);
-    return x - 360 * Math.floor(x / 360);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,191 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "interpolate", {
-  enumerable: true,
-  get: function () {
-    return _value.default;
-  }
-});
-Object.defineProperty(exports, "interpolateArray", {
-  enumerable: true,
-  get: function () {
-    return _array.default;
-  }
-});
-Object.defineProperty(exports, "interpolateBasis", {
-  enumerable: true,
-  get: function () {
-    return _basis.default;
-  }
-});
-Object.defineProperty(exports, "interpolateBasisClosed", {
-  enumerable: true,
-  get: function () {
-    return _basisClosed.default;
-  }
-});
-Object.defineProperty(exports, "interpolateCubehelix", {
-  enumerable: true,
-  get: function () {
-    return _cubehelix.default;
-  }
-});
-Object.defineProperty(exports, "interpolateCubehelixLong", {
-  enumerable: true,
-  get: function () {
-    return _cubehelix.cubehelixLong;
-  }
-});
-Object.defineProperty(exports, "interpolateDate", {
-  enumerable: true,
-  get: function () {
-    return _date.default;
-  }
-});
-Object.defineProperty(exports, "interpolateDiscrete", {
-  enumerable: true,
-  get: function () {
-    return _discrete.default;
-  }
-});
-Object.defineProperty(exports, "interpolateHcl", {
-  enumerable: true,
-  get: function () {
-    return _hcl.default;
-  }
-});
-Object.defineProperty(exports, "interpolateHclLong", {
-  enumerable: true,
-  get: function () {
-    return _hcl.hclLong;
-  }
-});
-Object.defineProperty(exports, "interpolateHsl", {
-  enumerable: true,
-  get: function () {
-    return _hsl.default;
-  }
-});
-Object.defineProperty(exports, "interpolateHslLong", {
-  enumerable: true,
-  get: function () {
-    return _hsl.hslLong;
-  }
-});
-Object.defineProperty(exports, "interpolateHue", {
-  enumerable: true,
-  get: function () {
-    return _hue.default;
-  }
-});
-Object.defineProperty(exports, "interpolateLab", {
-  enumerable: true,
-  get: function () {
-    return _lab.default;
-  }
-});
-Object.defineProperty(exports, "interpolateNumber", {
-  enumerable: true,
-  get: function () {
-    return _number.default;
-  }
-});
-Object.defineProperty(exports, "interpolateNumberArray", {
-  enumerable: true,
-  get: function () {
-    return _numberArray.default;
-  }
-});
-Object.defineProperty(exports, "interpolateObject", {
-  enumerable: true,
-  get: function () {
-    return _object.default;
-  }
-});
-Object.defineProperty(exports, "interpolateRgb", {
-  enumerable: true,
-  get: function () {
-    return _rgb.default;
-  }
-});
-Object.defineProperty(exports, "interpolateRgbBasis", {
-  enumerable: true,
-  get: function () {
-    return _rgb.rgbBasis;
-  }
-});
-Object.defineProperty(exports, "interpolateRgbBasisClosed", {
-  enumerable: true,
-  get: function () {
-    return _rgb.rgbBasisClosed;
-  }
-});
-Object.defineProperty(exports, "interpolateRound", {
-  enumerable: true,
-  get: function () {
-    return _round.default;
-  }
-});
-Object.defineProperty(exports, "interpolateString", {
-  enumerable: true,
-  get: function () {
-    return _string.default;
-  }
-});
-Object.defineProperty(exports, "interpolateTransformCss", {
-  enumerable: true,
-  get: function () {
-    return _index.interpolateTransformCss;
-  }
-});
-Object.defineProperty(exports, "interpolateTransformSvg", {
-  enumerable: true,
-  get: function () {
-    return _index.interpolateTransformSvg;
-  }
-});
-Object.defineProperty(exports, "interpolateZoom", {
-  enumerable: true,
-  get: function () {
-    return _zoom.default;
-  }
-});
-Object.defineProperty(exports, "piecewise", {
-  enumerable: true,
-  get: function () {
-    return _piecewise.default;
-  }
-});
-Object.defineProperty(exports, "quantize", {
-  enumerable: true,
-  get: function () {
-    return _quantize.default;
-  }
-});
-var _value = _interopRequireDefault(require("./value.js"));
-var _array = _interopRequireDefault(require("./array.js"));
-var _basis = _interopRequireDefault(require("./basis.js"));
-var _basisClosed = _interopRequireDefault(require("./basisClosed.js"));
-var _date = _interopRequireDefault(require("./date.js"));
-var _discrete = _interopRequireDefault(require("./discrete.js"));
-var _hue = _interopRequireDefault(require("./hue.js"));
-var _number = _interopRequireDefault(require("./number.js"));
-var _numberArray = _interopRequireDefault(require("./numberArray.js"));
-var _object = _interopRequireDefault(require("./object.js"));
-var _round = _interopRequireDefault(require("./round.js"));
-var _string = _interopRequireDefault(require("./string.js"));
-var _index = require("./transform/index.js");
-var _zoom = _interopRequireDefault(require("./zoom.js"));
-var _rgb = _interopRequireWildcard(require("./rgb.js"));
-var _hsl = _interopRequireWildcard(require("./hsl.js"));
-var _lab = _interopRequireDefault(require("./lab.js"));
-var _hcl = _interopRequireWildcard(require("./hcl.js"));
-var _cubehelix = _interopRequireWildcard(require("./cubehelix.js"));
-var _piecewise = _interopRequireDefault(require("./piecewise.js"));
-var _quantize = _interopRequireDefault(require("./quantize.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/lab.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/lab.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = lab;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _color = _interopRequireDefault(require("./color.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function lab(start, end) {
-  var l = (0, _color.default)((start = (0, _index.lab)(start)).l, (end = (0, _index.lab)(end)).l),
-    a = (0, _color.default)(start.a, end.a),
-    b = (0, _color.default)(start.b, end.b),
-    opacity = (0, _color.default)(start.opacity, end.opacity);
-  return function (t) {
-    start.l = l(t);
-    start.a = a(t);
-    start.b = b(t);
-    start.opacity = opacity(t);
-    return start + "";
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/number.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(a, b) {
-  return a = +a, b = +b, function (t) {
-    return a * (1 - t) + b * t;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/numberArray.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/numberArray.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.isNumberArray = isNumberArray;
-function _default(a, b) {
-  if (!b) b = [];
-  var n = a ? Math.min(b.length, a.length) : 0,
-    c = b.slice(),
-    i;
-  return function (t) {
-    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
-    return c;
-  };
-}
-function isNumberArray(x) {
-  return ArrayBuffer.isView(x) && !(x instanceof DataView);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/object.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/object.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _value = _interopRequireDefault(require("./value.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(a, b) {
-  var i = {},
-    c = {},
-    k;
-  if (a === null || typeof a !== "object") a = {};
-  if (b === null || typeof b !== "object") b = {};
-  for (k in b) {
-    if (k in a) {
-      i[k] = (0, _value.default)(a[k], b[k]);
-    } else {
-      c[k] = b[k];
-    }
-  }
-  return function (t) {
-    for (k in i) c[k] = i[k](t);
-    return c;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/piecewise.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/piecewise.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = piecewise;
-var _value = _interopRequireDefault(require("./value.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function piecewise(interpolate, values) {
-  if (values === undefined) values = interpolate, interpolate = _value.default;
-  var i = 0,
-    n = values.length - 1,
-    v = values[0],
-    I = new Array(n < 0 ? 0 : n);
-  while (i < n) I[i] = interpolate(v, v = values[++i]);
-  return function (t) {
-    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
-    return I[i](t - i);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/quantize.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/quantize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(interpolator, n) {
-  var samples = new Array(n);
-  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
-  return samples;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/rgb.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/rgb.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,59 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.rgbBasisClosed = exports.rgbBasis = exports.default = void 0;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _basis = _interopRequireDefault(require("./basis.js"));
-var _basisClosed = _interopRequireDefault(require("./basisClosed.js"));
-var _color = _interopRequireWildcard(require("./color.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var _default = exports.default = function rgbGamma(y) {
-  var color = (0, _color.gamma)(y);
-  function rgb(start, end) {
-    var r = color((start = (0, _index.rgb)(start)).r, (end = (0, _index.rgb)(end)).r),
-      g = color(start.g, end.g),
-      b = color(start.b, end.b),
-      opacity = (0, _color.default)(start.opacity, end.opacity);
-    return function (t) {
-      start.r = r(t);
-      start.g = g(t);
-      start.b = b(t);
-      start.opacity = opacity(t);
-      return start + "";
-    };
-  }
-  rgb.gamma = rgbGamma;
-  return rgb;
-}(1);
-function rgbSpline(spline) {
-  return function (colors) {
-    var n = colors.length,
-      r = new Array(n),
-      g = new Array(n),
-      b = new Array(n),
-      i,
-      color;
-    for (i = 0; i < n; ++i) {
-      color = (0, _index.rgb)(colors[i]);
-      r[i] = color.r || 0;
-      g[i] = color.g || 0;
-      b[i] = color.b || 0;
-    }
-    r = spline(r);
-    g = spline(g);
-    b = spline(b);
-    color.opacity = 1;
-    return function (t) {
-      color.r = r(t);
-      color.g = g(t);
-      color.b = b(t);
-      return color + "";
-    };
-  };
-}
-var rgbBasis = exports.rgbBasis = rgbSpline(_basis.default);
-var rgbBasisClosed = exports.rgbBasisClosed = rgbSpline(_basisClosed.default);
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/round.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/round.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(a, b) {
-  return a = +a, b = +b, function (t) {
-    return Math.round(a * (1 - t) + b * t);
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/string.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/string.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,75 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _number = _interopRequireDefault(require("./number.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
-  reB = new RegExp(reA.source, "g");
-function zero(b) {
-  return function () {
-    return b;
-  };
-}
-function one(b) {
-  return function (t) {
-    return b(t) + "";
-  };
-}
-function _default(a, b) {
-  var bi = reA.lastIndex = reB.lastIndex = 0,
-    // scan index for next number in b
-    am,
-    // current match in a
-    bm,
-    // current match in b
-    bs,
-    // string preceding current number in b, if any
-    i = -1,
-    // index in s
-    s = [],
-    // string constants and placeholders
-    q = []; // number interpolators
-
-  // Coerce inputs to strings.
-  a = a + "", b = b + "";
-
-  // Interpolate pairs of numbers in a & b.
-  while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
-    if ((bs = bm.index) > bi) {
-      // a string precedes the next number in b
-      bs = b.slice(bi, bs);
-      if (s[i]) s[i] += bs; // coalesce with previous string
-      else s[++i] = bs;
-    }
-    if ((am = am[0]) === (bm = bm[0])) {
-      // numbers in a & b match
-      if (s[i]) s[i] += bm; // coalesce with previous string
-      else s[++i] = bm;
-    } else {
-      // interpolate non-matching numbers
-      s[++i] = null;
-      q.push({
-        i: i,
-        x: (0, _number.default)(am, bm)
-      });
-    }
-    bi = reB.lastIndex;
-  }
-
-  // Add remains of b.
-  if (bi < b.length) {
-    bs = b.slice(bi);
-    if (s[i]) s[i] += bs; // coalesce with previous string
-    else s[++i] = bs;
-  }
-
-  // Special optimization for only a single match.
-  // Otherwise, interpolate each of the numbers and rejoin the string.
-  return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {
-    for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
-    return s.join("");
-  });
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/decompose.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/decompose.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.identity = void 0;
-var degrees = 180 / Math.PI;
-var identity = exports.identity = {
-  translateX: 0,
-  translateY: 0,
-  rotate: 0,
-  skewX: 0,
-  scaleX: 1,
-  scaleY: 1
-};
-function _default(a, b, c, d, e, f) {
-  var scaleX, scaleY, skewX;
-  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
-  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
-  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
-  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
-  return {
-    translateX: e,
-    translateY: f,
-    rotate: Math.atan2(b, a) * degrees,
-    skewX: Math.atan(skewX) * degrees,
-    scaleX: scaleX,
-    scaleY: scaleY
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.interpolateTransformSvg = exports.interpolateTransformCss = void 0;
-var _number = _interopRequireDefault(require("../number.js"));
-var _parse = require("./parse.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function interpolateTransform(parse, pxComma, pxParen, degParen) {
-  function pop(s) {
-    return s.length ? s.pop() + " " : "";
-  }
-  function translate(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push("translate(", null, pxComma, null, pxParen);
-      q.push({
-        i: i - 4,
-        x: (0, _number.default)(xa, xb)
-      }, {
-        i: i - 2,
-        x: (0, _number.default)(ya, yb)
-      });
-    } else if (xb || yb) {
-      s.push("translate(" + xb + pxComma + yb + pxParen);
-    }
-  }
-  function rotate(a, b, s, q) {
-    if (a !== b) {
-      if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path
-      q.push({
-        i: s.push(pop(s) + "rotate(", null, degParen) - 2,
-        x: (0, _number.default)(a, b)
-      });
-    } else if (b) {
-      s.push(pop(s) + "rotate(" + b + degParen);
-    }
-  }
-  function skewX(a, b, s, q) {
-    if (a !== b) {
-      q.push({
-        i: s.push(pop(s) + "skewX(", null, degParen) - 2,
-        x: (0, _number.default)(a, b)
-      });
-    } else if (b) {
-      s.push(pop(s) + "skewX(" + b + degParen);
-    }
-  }
-  function scale(xa, ya, xb, yb, s, q) {
-    if (xa !== xb || ya !== yb) {
-      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
-      q.push({
-        i: i - 4,
-        x: (0, _number.default)(xa, xb)
-      }, {
-        i: i - 2,
-        x: (0, _number.default)(ya, yb)
-      });
-    } else if (xb !== 1 || yb !== 1) {
-      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
-    }
-  }
-  return function (a, b) {
-    var s = [],
-      // string constants and placeholders
-      q = []; // number interpolators
-    a = parse(a), b = parse(b);
-    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
-    rotate(a.rotate, b.rotate, s, q);
-    skewX(a.skewX, b.skewX, s, q);
-    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
-    a = b = null; // gc
-    return function (t) {
-      var i = -1,
-        n = q.length,
-        o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-}
-var interpolateTransformCss = exports.interpolateTransformCss = interpolateTransform(_parse.parseCss, "px, ", "px)", "deg)");
-var interpolateTransformSvg = exports.interpolateTransformSvg = interpolateTransform(_parse.parseSvg, ", ", ")", ")");
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/parse.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/transform/parse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.parseCss = parseCss;
-exports.parseSvg = parseSvg;
-var _decompose = _interopRequireWildcard(require("./decompose.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-var svgNode;
-
-/* eslint-disable no-undef */
-function parseCss(value) {
-  const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
-  return m.isIdentity ? _decompose.identity : (0, _decompose.default)(m.a, m.b, m.c, m.d, m.e, m.f);
-}
-function parseSvg(value) {
-  if (value == null) return _decompose.identity;
-  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
-  svgNode.setAttribute("transform", value);
-  if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose.identity;
-  value = value.matrix;
-  return (0, _decompose.default)(value.a, value.b, value.c, value.d, value.e, value.f);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/value.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/value.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _index = require("../../../lib-vendor/d3-color/src/index.js");
-var _rgb = _interopRequireDefault(require("./rgb.js"));
-var _array = require("./array.js");
-var _date = _interopRequireDefault(require("./date.js"));
-var _number = _interopRequireDefault(require("./number.js"));
-var _object = _interopRequireDefault(require("./object.js"));
-var _string = _interopRequireDefault(require("./string.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _numberArray = _interopRequireWildcard(require("./numberArray.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(a, b) {
-  var t = typeof b,
-    c;
-  return b == null || t === "boolean" ? (0, _constant.default)(b) : (t === "number" ? _number.default : t === "string" ? (c = (0, _index.color)(b)) ? (b = c, _rgb.default) : _string.default : b instanceof _index.color ? _rgb.default : b instanceof Date ? _date.default : (0, _numberArray.isNumberArray)(b) ? _numberArray.default : Array.isArray(b) ? _array.genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? _object.default : _number.default)(a, b);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-interpolate/src/zoom.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-interpolate/src/zoom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,66 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var epsilon2 = 1e-12;
-function cosh(x) {
-  return ((x = Math.exp(x)) + 1 / x) / 2;
-}
-function sinh(x) {
-  return ((x = Math.exp(x)) - 1 / x) / 2;
-}
-function tanh(x) {
-  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
-}
-var _default = exports.default = function zoomRho(rho, rho2, rho4) {
-  // p0 = [ux0, uy0, w0]
-  // p1 = [ux1, uy1, w1]
-  function zoom(p0, p1) {
-    var ux0 = p0[0],
-      uy0 = p0[1],
-      w0 = p0[2],
-      ux1 = p1[0],
-      uy1 = p1[1],
-      w1 = p1[2],
-      dx = ux1 - ux0,
-      dy = uy1 - uy0,
-      d2 = dx * dx + dy * dy,
-      i,
-      S;
-
-    // Special case for u0 ≅ u1.
-    if (d2 < epsilon2) {
-      S = Math.log(w1 / w0) / rho;
-      i = function (t) {
-        return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];
-      };
-    }
-
-    // General case.
-    else {
-      var d1 = Math.sqrt(d2),
-        b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
-        b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
-        r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
-        r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
-      S = (r1 - r0) / rho;
-      i = function (t) {
-        var s = t * S,
-          coshr0 = cosh(r0),
-          u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
-        return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];
-      };
-    }
-    i.duration = S * 1000 * rho / Math.SQRT2;
-    return i;
-  }
-  zoom.rho = function (_) {
-    var _1 = Math.max(1e-3, +_),
-      _2 = _1 * _1,
-      _4 = _2 * _2;
-    return zoomRho(_1, _2, _4);
-  };
-  return zoom;
-}(Math.SQRT2, 2, 4);
Index: de_modules/victory-vendor/lib-vendor/d3-path/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-path/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2015-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-path/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-path/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "path", {
-  enumerable: true,
-  get: function () {
-    return _path.default;
-  }
-});
-var _path = _interopRequireDefault(require("./path.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-path/src/path.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-path/src/path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,132 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-const pi = Math.PI,
-  tau = 2 * pi,
-  epsilon = 1e-6,
-  tauEpsilon = tau - epsilon;
-function Path() {
-  this._x0 = this._y0 =
-  // start of current subpath
-  this._x1 = this._y1 = null; // end of current subpath
-  this._ = "";
-}
-function path() {
-  return new Path();
-}
-Path.prototype = path.prototype = {
-  constructor: Path,
-  moveTo: function (x, y) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
-  },
-  closePath: function () {
-    if (this._x1 !== null) {
-      this._x1 = this._x0, this._y1 = this._y0;
-      this._ += "Z";
-    }
-  },
-  lineTo: function (x, y) {
-    this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  quadraticCurveTo: function (x1, y1, x, y) {
-    this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  bezierCurveTo: function (x1, y1, x2, y2, x, y) {
-    this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
-  },
-  arcTo: function (x1, y1, x2, y2, r) {
-    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
-    var x0 = this._x1,
-      y0 = this._y1,
-      x21 = x2 - x1,
-      y21 = y2 - y1,
-      x01 = x0 - x1,
-      y01 = y0 - y1,
-      l01_2 = x01 * x01 + y01 * y01;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x1,y1).
-    if (this._x1 === null) {
-      this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
-    else if (!(l01_2 > epsilon)) ;
-
-    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
-    // Equivalently, is (x1,y1) coincident with (x2,y2)?
-    // Or, is the radius zero? Line to (x1,y1).
-    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
-      this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
-    }
-
-    // Otherwise, draw an arc!
-    else {
-      var x20 = x2 - x0,
-        y20 = y2 - y0,
-        l21_2 = x21 * x21 + y21 * y21,
-        l20_2 = x20 * x20 + y20 * y20,
-        l21 = Math.sqrt(l21_2),
-        l01 = Math.sqrt(l01_2),
-        l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
-        t01 = l / l01,
-        t21 = l / l21;
-
-      // If the start tangent is not coincident with (x0,y0), line to.
-      if (Math.abs(t01 - 1) > epsilon) {
-        this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
-      }
-      this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
-    }
-  },
-  arc: function (x, y, r, a0, a1, ccw) {
-    x = +x, y = +y, r = +r, ccw = !!ccw;
-    var dx = r * Math.cos(a0),
-      dy = r * Math.sin(a0),
-      x0 = x + dx,
-      y0 = y + dy,
-      cw = 1 ^ ccw,
-      da = ccw ? a0 - a1 : a1 - a0;
-
-    // Is the radius negative? Error.
-    if (r < 0) throw new Error("negative radius: " + r);
-
-    // Is this path empty? Move to (x0,y0).
-    if (this._x1 === null) {
-      this._ += "M" + x0 + "," + y0;
-    }
-
-    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
-    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
-      this._ += "L" + x0 + "," + y0;
-    }
-
-    // Is this arc empty? We’re done.
-    if (!r) return;
-
-    // Does the angle go the wrong way? Flip the direction.
-    if (da < 0) da = da % tau + tau;
-
-    // Is this a complete circle? Draw two arcs to complete the circle.
-    if (da > tauEpsilon) {
-      this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
-    }
-
-    // Is this arc non-empty? Draw an arc!
-    else if (da > epsilon) {
-      this._ += "A" + r + "," + r + ",0," + +(da >= pi) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
-    }
-  },
-  rect: function (x, y, w, h) {
-    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + +w + "v" + +h + "h" + -w + "Z";
-  },
-  toString: function () {
-    return this._;
-  }
-};
-var _default = exports.default = path;
Index: de_modules/victory-vendor/lib-vendor/d3-scale/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/band.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/band.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = band;
-exports.point = point;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _init = require("./init.js");
-var _ordinal = _interopRequireDefault(require("./ordinal.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function band() {
-  var scale = (0, _ordinal.default)().unknown(undefined),
-    domain = scale.domain,
-    ordinalRange = scale.range,
-    r0 = 0,
-    r1 = 1,
-    step,
-    bandwidth,
-    round = false,
-    paddingInner = 0,
-    paddingOuter = 0,
-    align = 0.5;
-  delete scale.unknown;
-  function rescale() {
-    var n = domain().length,
-      reverse = r1 < r0,
-      start = reverse ? r1 : r0,
-      stop = reverse ? r0 : r1;
-    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
-    if (round) step = Math.floor(step);
-    start += (stop - start - step * (n - paddingInner)) * align;
-    bandwidth = step * (1 - paddingInner);
-    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
-    var values = (0, _index.range)(n).map(function (i) {
-      return start + step * i;
-    });
-    return ordinalRange(reverse ? values.reverse() : values);
-  }
-  scale.domain = function (_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-  scale.range = function (_) {
-    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
-  };
-  scale.rangeRound = function (_) {
-    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
-  };
-  scale.bandwidth = function () {
-    return bandwidth;
-  };
-  scale.step = function () {
-    return step;
-  };
-  scale.round = function (_) {
-    return arguments.length ? (round = !!_, rescale()) : round;
-  };
-  scale.padding = function (_) {
-    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
-  };
-  scale.paddingInner = function (_) {
-    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
-  };
-  scale.paddingOuter = function (_) {
-    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
-  };
-  scale.align = function (_) {
-    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
-  };
-  scale.copy = function () {
-    return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);
-  };
-  return _init.initRange.apply(rescale(), arguments);
-}
-function pointish(scale) {
-  var copy = scale.copy;
-  scale.padding = scale.paddingOuter;
-  delete scale.paddingInner;
-  delete scale.paddingOuter;
-  scale.copy = function () {
-    return pointish(copy());
-  };
-  return scale;
-}
-function point() {
-  return pointish(band.apply(null, arguments).paddingInner(1));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/colors.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/colors.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = colors;
-function colors(s) {
-  return s.match(/.{6}/g).map(function (x) {
-    return "#" + x;
-  });
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/constant.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = constants;
-function constants(x) {
-  return function () {
-    return x;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/continuous.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/continuous.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,116 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.copy = copy;
-exports.default = continuous;
-exports.identity = identity;
-exports.transformer = transformer;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _index2 = require("../../../lib-vendor/d3-interpolate/src/index.js");
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _number = _interopRequireDefault(require("./number.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var unit = [0, 1];
-function identity(x) {
-  return x;
-}
-function normalize(a, b) {
-  return (b -= a = +a) ? function (x) {
-    return (x - a) / b;
-  } : (0, _constant.default)(isNaN(b) ? NaN : 0.5);
-}
-function clamper(a, b) {
-  var t;
-  if (a > b) t = a, a = b, b = t;
-  return function (x) {
-    return Math.max(a, Math.min(b, x));
-  };
-}
-
-// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
-// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
-function bimap(domain, range, interpolate) {
-  var d0 = domain[0],
-    d1 = domain[1],
-    r0 = range[0],
-    r1 = range[1];
-  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
-  return function (x) {
-    return r0(d0(x));
-  };
-}
-function polymap(domain, range, interpolate) {
-  var j = Math.min(domain.length, range.length) - 1,
-    d = new Array(j),
-    r = new Array(j),
-    i = -1;
-
-  // Reverse descending domains.
-  if (domain[j] < domain[0]) {
-    domain = domain.slice().reverse();
-    range = range.slice().reverse();
-  }
-  while (++i < j) {
-    d[i] = normalize(domain[i], domain[i + 1]);
-    r[i] = interpolate(range[i], range[i + 1]);
-  }
-  return function (x) {
-    var i = (0, _index.bisect)(domain, x, 1, j) - 1;
-    return r[i](d[i](x));
-  };
-}
-function copy(source, target) {
-  return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
-}
-function transformer() {
-  var domain = unit,
-    range = unit,
-    interpolate = _index2.interpolate,
-    transform,
-    untransform,
-    unknown,
-    clamp = identity,
-    piecewise,
-    output,
-    input;
-  function rescale() {
-    var n = Math.min(domain.length, range.length);
-    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
-    piecewise = n > 2 ? polymap : bimap;
-    output = input = null;
-    return scale;
-  }
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
-  }
-  scale.invert = function (y) {
-    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), _index2.interpolateNumber)))(y)));
-  };
-  scale.domain = function (_) {
-    return arguments.length ? (domain = Array.from(_, _number.default), rescale()) : domain.slice();
-  };
-  scale.range = function (_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-  scale.rangeRound = function (_) {
-    return range = Array.from(_), interpolate = _index2.interpolateRound, rescale();
-  };
-  scale.clamp = function (_) {
-    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
-  };
-  scale.interpolate = function (_) {
-    return arguments.length ? (interpolate = _, rescale()) : interpolate;
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  return function (t, u) {
-    transform = t, untransform = u;
-    return rescale();
-  };
-}
-function continuous() {
-  return transformer()(identity, identity);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/diverging.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/diverging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,91 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = diverging;
-exports.divergingLog = divergingLog;
-exports.divergingPow = divergingPow;
-exports.divergingSqrt = divergingSqrt;
-exports.divergingSymlog = divergingSymlog;
-var _index = require("../../../lib-vendor/d3-interpolate/src/index.js");
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-var _linear = require("./linear.js");
-var _log = require("./log.js");
-var _sequential = require("./sequential.js");
-var _symlog = require("./symlog.js");
-var _pow = require("./pow.js");
-function transformer() {
-  var x0 = 0,
-    x1 = 0.5,
-    x2 = 1,
-    s = 1,
-    t0,
-    t1,
-    t2,
-    k10,
-    k21,
-    interpolator = _continuous.identity,
-    transform,
-    clamp = false,
-    unknown;
-  function scale(x) {
-    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-  scale.domain = function (_) {
-    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
-  };
-  scale.clamp = function (_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-  scale.interpolator = function (_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-  function range(interpolate) {
-    return function (_) {
-      var r0, r1, r2;
-      return arguments.length ? ([r0, r1, r2] = _, interpolator = (0, _index.piecewise)(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
-    };
-  }
-  scale.range = range(_index.interpolate);
-  scale.rangeRound = range(_index.interpolateRound);
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  return function (t) {
-    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
-    return scale;
-  };
-}
-function diverging() {
-  var scale = (0, _linear.linearish)(transformer()(_continuous.identity));
-  scale.copy = function () {
-    return (0, _sequential.copy)(scale, diverging());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function divergingLog() {
-  var scale = (0, _log.loggish)(transformer()).domain([0.1, 1, 10]);
-  scale.copy = function () {
-    return (0, _sequential.copy)(scale, divergingLog()).base(scale.base());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function divergingSymlog() {
-  var scale = (0, _symlog.symlogish)(transformer());
-  scale.copy = function () {
-    return (0, _sequential.copy)(scale, divergingSymlog()).constant(scale.constant());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function divergingPow() {
-  var scale = (0, _pow.powish)(transformer());
-  scale.copy = function () {
-    return (0, _sequential.copy)(scale, divergingPow()).exponent(scale.exponent());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function divergingSqrt() {
-  return divergingPow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/identity.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,27 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = identity;
-var _linear = require("./linear.js");
-var _number = _interopRequireDefault(require("./number.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function identity(domain) {
-  var unknown;
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : x;
-  }
-  scale.invert = scale;
-  scale.domain = scale.range = function (_) {
-    return arguments.length ? (domain = Array.from(_, _number.default), scale) : domain.slice();
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  scale.copy = function () {
-    return identity(domain).unknown(unknown);
-  };
-  domain = arguments.length ? Array.from(domain, _number.default) : [0, 1];
-  return (0, _linear.linearish)(scale);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,193 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "scaleBand", {
-  enumerable: true,
-  get: function () {
-    return _band.default;
-  }
-});
-Object.defineProperty(exports, "scaleDiverging", {
-  enumerable: true,
-  get: function () {
-    return _diverging.default;
-  }
-});
-Object.defineProperty(exports, "scaleDivergingLog", {
-  enumerable: true,
-  get: function () {
-    return _diverging.divergingLog;
-  }
-});
-Object.defineProperty(exports, "scaleDivergingPow", {
-  enumerable: true,
-  get: function () {
-    return _diverging.divergingPow;
-  }
-});
-Object.defineProperty(exports, "scaleDivergingSqrt", {
-  enumerable: true,
-  get: function () {
-    return _diverging.divergingSqrt;
-  }
-});
-Object.defineProperty(exports, "scaleDivergingSymlog", {
-  enumerable: true,
-  get: function () {
-    return _diverging.divergingSymlog;
-  }
-});
-Object.defineProperty(exports, "scaleIdentity", {
-  enumerable: true,
-  get: function () {
-    return _identity.default;
-  }
-});
-Object.defineProperty(exports, "scaleImplicit", {
-  enumerable: true,
-  get: function () {
-    return _ordinal.implicit;
-  }
-});
-Object.defineProperty(exports, "scaleLinear", {
-  enumerable: true,
-  get: function () {
-    return _linear.default;
-  }
-});
-Object.defineProperty(exports, "scaleLog", {
-  enumerable: true,
-  get: function () {
-    return _log.default;
-  }
-});
-Object.defineProperty(exports, "scaleOrdinal", {
-  enumerable: true,
-  get: function () {
-    return _ordinal.default;
-  }
-});
-Object.defineProperty(exports, "scalePoint", {
-  enumerable: true,
-  get: function () {
-    return _band.point;
-  }
-});
-Object.defineProperty(exports, "scalePow", {
-  enumerable: true,
-  get: function () {
-    return _pow.default;
-  }
-});
-Object.defineProperty(exports, "scaleQuantile", {
-  enumerable: true,
-  get: function () {
-    return _quantile.default;
-  }
-});
-Object.defineProperty(exports, "scaleQuantize", {
-  enumerable: true,
-  get: function () {
-    return _quantize.default;
-  }
-});
-Object.defineProperty(exports, "scaleRadial", {
-  enumerable: true,
-  get: function () {
-    return _radial.default;
-  }
-});
-Object.defineProperty(exports, "scaleSequential", {
-  enumerable: true,
-  get: function () {
-    return _sequential.default;
-  }
-});
-Object.defineProperty(exports, "scaleSequentialLog", {
-  enumerable: true,
-  get: function () {
-    return _sequential.sequentialLog;
-  }
-});
-Object.defineProperty(exports, "scaleSequentialPow", {
-  enumerable: true,
-  get: function () {
-    return _sequential.sequentialPow;
-  }
-});
-Object.defineProperty(exports, "scaleSequentialQuantile", {
-  enumerable: true,
-  get: function () {
-    return _sequentialQuantile.default;
-  }
-});
-Object.defineProperty(exports, "scaleSequentialSqrt", {
-  enumerable: true,
-  get: function () {
-    return _sequential.sequentialSqrt;
-  }
-});
-Object.defineProperty(exports, "scaleSequentialSymlog", {
-  enumerable: true,
-  get: function () {
-    return _sequential.sequentialSymlog;
-  }
-});
-Object.defineProperty(exports, "scaleSqrt", {
-  enumerable: true,
-  get: function () {
-    return _pow.sqrt;
-  }
-});
-Object.defineProperty(exports, "scaleSymlog", {
-  enumerable: true,
-  get: function () {
-    return _symlog.default;
-  }
-});
-Object.defineProperty(exports, "scaleThreshold", {
-  enumerable: true,
-  get: function () {
-    return _threshold.default;
-  }
-});
-Object.defineProperty(exports, "scaleTime", {
-  enumerable: true,
-  get: function () {
-    return _time.default;
-  }
-});
-Object.defineProperty(exports, "scaleUtc", {
-  enumerable: true,
-  get: function () {
-    return _utcTime.default;
-  }
-});
-Object.defineProperty(exports, "tickFormat", {
-  enumerable: true,
-  get: function () {
-    return _tickFormat.default;
-  }
-});
-var _band = _interopRequireWildcard(require("./band.js"));
-var _identity = _interopRequireDefault(require("./identity.js"));
-var _linear = _interopRequireDefault(require("./linear.js"));
-var _log = _interopRequireDefault(require("./log.js"));
-var _symlog = _interopRequireDefault(require("./symlog.js"));
-var _ordinal = _interopRequireWildcard(require("./ordinal.js"));
-var _pow = _interopRequireWildcard(require("./pow.js"));
-var _radial = _interopRequireDefault(require("./radial.js"));
-var _quantile = _interopRequireDefault(require("./quantile.js"));
-var _quantize = _interopRequireDefault(require("./quantize.js"));
-var _threshold = _interopRequireDefault(require("./threshold.js"));
-var _time = _interopRequireDefault(require("./time.js"));
-var _utcTime = _interopRequireDefault(require("./utcTime.js"));
-var _sequential = _interopRequireWildcard(require("./sequential.js"));
-var _sequentialQuantile = _interopRequireDefault(require("./sequentialQuantile.js"));
-var _diverging = _interopRequireWildcard(require("./diverging.js"));
-var _tickFormat = _interopRequireDefault(require("./tickFormat.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/init.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/init.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.initInterpolator = initInterpolator;
-exports.initRange = initRange;
-function initRange(domain, range) {
-  switch (arguments.length) {
-    case 0:
-      break;
-    case 1:
-      this.range(domain);
-      break;
-    default:
-      this.range(range).domain(domain);
-      break;
-  }
-  return this;
-}
-function initInterpolator(domain, interpolator) {
-  switch (arguments.length) {
-    case 0:
-      break;
-    case 1:
-      {
-        if (typeof domain === "function") this.interpolator(domain);else this.range(domain);
-        break;
-      }
-    default:
-      {
-        this.domain(domain);
-        if (typeof interpolator === "function") this.interpolator(interpolator);else this.range(interpolator);
-        break;
-      }
-  }
-  return this;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/linear.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = linear;
-exports.linearish = linearish;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _continuous = _interopRequireWildcard(require("./continuous.js"));
-var _init = require("./init.js");
-var _tickFormat = _interopRequireDefault(require("./tickFormat.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function linearish(scale) {
-  var domain = scale.domain;
-  scale.ticks = function (count) {
-    var d = domain();
-    return (0, _index.ticks)(d[0], d[d.length - 1], count == null ? 10 : count);
-  };
-  scale.tickFormat = function (count, specifier) {
-    var d = domain();
-    return (0, _tickFormat.default)(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
-  };
-  scale.nice = function (count) {
-    if (count == null) count = 10;
-    var d = domain();
-    var i0 = 0;
-    var i1 = d.length - 1;
-    var start = d[i0];
-    var stop = d[i1];
-    var prestep;
-    var step;
-    var maxIter = 10;
-    if (stop < start) {
-      step = start, start = stop, stop = step;
-      step = i0, i0 = i1, i1 = step;
-    }
-    while (maxIter-- > 0) {
-      step = (0, _index.tickIncrement)(start, stop, count);
-      if (step === prestep) {
-        d[i0] = start;
-        d[i1] = stop;
-        return domain(d);
-      } else if (step > 0) {
-        start = Math.floor(start / step) * step;
-        stop = Math.ceil(stop / step) * step;
-      } else if (step < 0) {
-        start = Math.ceil(start * step) / step;
-        stop = Math.floor(stop * step) / step;
-      } else {
-        break;
-      }
-      prestep = step;
-    }
-    return scale;
-  };
-  return scale;
-}
-function linear() {
-  var scale = (0, _continuous.default)();
-  scale.copy = function () {
-    return (0, _continuous.copy)(scale, linear());
-  };
-  _init.initRange.apply(scale, arguments);
-  return linearish(scale);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/log.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/log.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = log;
-exports.loggish = loggish;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _index2 = require("../../../lib-vendor/d3-format/src/index.js");
-var _nice = _interopRequireDefault(require("./nice.js"));
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function transformLog(x) {
-  return Math.log(x);
-}
-function transformExp(x) {
-  return Math.exp(x);
-}
-function transformLogn(x) {
-  return -Math.log(-x);
-}
-function transformExpn(x) {
-  return -Math.exp(-x);
-}
-function pow10(x) {
-  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
-}
-function powp(base) {
-  return base === 10 ? pow10 : base === Math.E ? Math.exp : x => Math.pow(base, x);
-}
-function logp(base) {
-  return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), x => Math.log(x) / base);
-}
-function reflect(f) {
-  return (x, k) => -f(-x, k);
-}
-function loggish(transform) {
-  const scale = transform(transformLog, transformExp);
-  const domain = scale.domain;
-  let base = 10;
-  let logs;
-  let pows;
-  function rescale() {
-    logs = logp(base), pows = powp(base);
-    if (domain()[0] < 0) {
-      logs = reflect(logs), pows = reflect(pows);
-      transform(transformLogn, transformExpn);
-    } else {
-      transform(transformLog, transformExp);
-    }
-    return scale;
-  }
-  scale.base = function (_) {
-    return arguments.length ? (base = +_, rescale()) : base;
-  };
-  scale.domain = function (_) {
-    return arguments.length ? (domain(_), rescale()) : domain();
-  };
-  scale.ticks = count => {
-    const d = domain();
-    let u = d[0];
-    let v = d[d.length - 1];
-    const r = v < u;
-    if (r) [u, v] = [v, u];
-    let i = logs(u);
-    let j = logs(v);
-    let k;
-    let t;
-    const n = count == null ? 10 : +count;
-    let z = [];
-    if (!(base % 1) && j - i < n) {
-      i = Math.floor(i), j = Math.ceil(j);
-      if (u > 0) for (; i <= j; ++i) {
-        for (k = 1; k < base; ++k) {
-          t = i < 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      } else for (; i <= j; ++i) {
-        for (k = base - 1; k >= 1; --k) {
-          t = i > 0 ? k / pows(-i) : k * pows(i);
-          if (t < u) continue;
-          if (t > v) break;
-          z.push(t);
-        }
-      }
-      if (z.length * 2 < n) z = (0, _index.ticks)(u, v, n);
-    } else {
-      z = (0, _index.ticks)(i, j, Math.min(j - i, n)).map(pows);
-    }
-    return r ? z.reverse() : z;
-  };
-  scale.tickFormat = (count, specifier) => {
-    if (count == null) count = 10;
-    if (specifier == null) specifier = base === 10 ? "s" : ",";
-    if (typeof specifier !== "function") {
-      if (!(base % 1) && (specifier = (0, _index2.formatSpecifier)(specifier)).precision == null) specifier.trim = true;
-      specifier = (0, _index2.format)(specifier);
-    }
-    if (count === Infinity) return specifier;
-    const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
-    return d => {
-      let i = d / pows(Math.round(logs(d)));
-      if (i * base < base - 0.5) i *= base;
-      return i <= k ? specifier(d) : "";
-    };
-  };
-  scale.nice = () => {
-    return domain((0, _nice.default)(domain(), {
-      floor: x => pows(Math.floor(logs(x))),
-      ceil: x => pows(Math.ceil(logs(x)))
-    }));
-  };
-  return scale;
-}
-function log() {
-  const scale = loggish((0, _continuous.transformer)()).domain([1, 10]);
-  scale.copy = () => (0, _continuous.copy)(scale, log()).base(scale.base());
-  _init.initRange.apply(scale, arguments);
-  return scale;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/nice.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/nice.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = nice;
-function nice(domain, interval) {
-  domain = domain.slice();
-  var i0 = 0,
-    i1 = domain.length - 1,
-    x0 = domain[i0],
-    x1 = domain[i1],
-    t;
-  if (x1 < x0) {
-    t = i0, i0 = i1, i1 = t;
-    t = x0, x0 = x1, x1 = t;
-  }
-  domain[i0] = interval.floor(x0);
-  domain[i1] = interval.ceil(x1);
-  return domain;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/number.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/number.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = number;
-function number(x) {
-  return +x;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/ordinal.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/ordinal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = ordinal;
-exports.implicit = void 0;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _init = require("./init.js");
-const implicit = exports.implicit = Symbol("implicit");
-function ordinal() {
-  var index = new _index.InternMap(),
-    domain = [],
-    range = [],
-    unknown = implicit;
-  function scale(d) {
-    let i = index.get(d);
-    if (i === undefined) {
-      if (unknown !== implicit) return unknown;
-      index.set(d, i = domain.push(d) - 1);
-    }
-    return range[i % range.length];
-  }
-  scale.domain = function (_) {
-    if (!arguments.length) return domain.slice();
-    domain = [], index = new _index.InternMap();
-    for (const value of _) {
-      if (index.has(value)) continue;
-      index.set(value, domain.push(value) - 1);
-    }
-    return scale;
-  };
-  scale.range = function (_) {
-    return arguments.length ? (range = Array.from(_), scale) : range.slice();
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  scale.copy = function () {
-    return ordinal(domain, range).unknown(unknown);
-  };
-  _init.initRange.apply(scale, arguments);
-  return scale;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/pow.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/pow.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,44 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = pow;
-exports.powish = powish;
-exports.sqrt = sqrt;
-var _linear = require("./linear.js");
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-function transformPow(exponent) {
-  return function (x) {
-    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
-  };
-}
-function transformSqrt(x) {
-  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
-}
-function transformSquare(x) {
-  return x < 0 ? -x * x : x * x;
-}
-function powish(transform) {
-  var scale = transform(_continuous.identity, _continuous.identity),
-    exponent = 1;
-  function rescale() {
-    return exponent === 1 ? transform(_continuous.identity, _continuous.identity) : exponent === 0.5 ? transform(transformSqrt, transformSquare) : transform(transformPow(exponent), transformPow(1 / exponent));
-  }
-  scale.exponent = function (_) {
-    return arguments.length ? (exponent = +_, rescale()) : exponent;
-  };
-  return (0, _linear.linearish)(scale);
-}
-function pow() {
-  var scale = powish((0, _continuous.transformer)());
-  scale.copy = function () {
-    return (0, _continuous.copy)(scale, pow()).exponent(scale.exponent());
-  };
-  _init.initRange.apply(scale, arguments);
-  return scale;
-}
-function sqrt() {
-  return pow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/quantile.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/quantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = quantile;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _init = require("./init.js");
-function quantile() {
-  var domain = [],
-    range = [],
-    thresholds = [],
-    unknown;
-  function rescale() {
-    var i = 0,
-      n = Math.max(1, range.length);
-    thresholds = new Array(n - 1);
-    while (++i < n) thresholds[i - 1] = (0, _index.quantileSorted)(domain, i / n);
-    return scale;
-  }
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : range[(0, _index.bisect)(thresholds, x)];
-  }
-  scale.invertExtent = function (y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN] : [i > 0 ? thresholds[i - 1] : domain[0], i < thresholds.length ? thresholds[i] : domain[domain.length - 1]];
-  };
-  scale.domain = function (_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(_index.ascending);
-    return rescale();
-  };
-  scale.range = function (_) {
-    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  scale.quantiles = function () {
-    return thresholds.slice();
-  };
-  scale.copy = function () {
-    return quantile().domain(domain).range(range).unknown(unknown);
-  };
-  return _init.initRange.apply(scale, arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/quantize.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/quantize.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,46 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = quantize;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _linear = require("./linear.js");
-var _init = require("./init.js");
-function quantize() {
-  var x0 = 0,
-    x1 = 1,
-    n = 1,
-    domain = [0.5],
-    range = [0, 1],
-    unknown;
-  function scale(x) {
-    return x != null && x <= x ? range[(0, _index.bisect)(domain, x, 0, n)] : unknown;
-  }
-  function rescale() {
-    var i = -1;
-    domain = new Array(n);
-    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
-    return scale;
-  }
-  scale.domain = function (_) {
-    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
-  };
-  scale.range = function (_) {
-    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
-  };
-  scale.invertExtent = function (y) {
-    var i = range.indexOf(y);
-    return i < 0 ? [NaN, NaN] : i < 1 ? [x0, domain[0]] : i >= n ? [domain[n - 1], x1] : [domain[i - 1], domain[i]];
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : scale;
-  };
-  scale.thresholds = function () {
-    return domain.slice();
-  };
-  scale.copy = function () {
-    return quantize().domain([x0, x1]).range(range).unknown(unknown);
-  };
-  return _init.initRange.apply((0, _linear.linearish)(scale), arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/radial.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,53 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = radial;
-var _continuous = _interopRequireDefault(require("./continuous.js"));
-var _init = require("./init.js");
-var _linear = require("./linear.js");
-var _number = _interopRequireDefault(require("./number.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function square(x) {
-  return Math.sign(x) * x * x;
-}
-function unsquare(x) {
-  return Math.sign(x) * Math.sqrt(Math.abs(x));
-}
-function radial() {
-  var squared = (0, _continuous.default)(),
-    range = [0, 1],
-    round = false,
-    unknown;
-  function scale(x) {
-    var y = unsquare(squared(x));
-    return isNaN(y) ? unknown : round ? Math.round(y) : y;
-  }
-  scale.invert = function (y) {
-    return squared.invert(square(y));
-  };
-  scale.domain = function (_) {
-    return arguments.length ? (squared.domain(_), scale) : squared.domain();
-  };
-  scale.range = function (_) {
-    return arguments.length ? (squared.range((range = Array.from(_, _number.default)).map(square)), scale) : range.slice();
-  };
-  scale.rangeRound = function (_) {
-    return scale.range(_).round(true);
-  };
-  scale.round = function (_) {
-    return arguments.length ? (round = !!_, scale) : round;
-  };
-  scale.clamp = function (_) {
-    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  scale.copy = function () {
-    return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown);
-  };
-  _init.initRange.apply(scale, arguments);
-  return (0, _linear.linearish)(scale);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/sequential.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/sequential.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,90 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.copy = copy;
-exports.default = sequential;
-exports.sequentialLog = sequentialLog;
-exports.sequentialPow = sequentialPow;
-exports.sequentialSqrt = sequentialSqrt;
-exports.sequentialSymlog = sequentialSymlog;
-var _index = require("../../../lib-vendor/d3-interpolate/src/index.js");
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-var _linear = require("./linear.js");
-var _log = require("./log.js");
-var _symlog = require("./symlog.js");
-var _pow = require("./pow.js");
-function transformer() {
-  var x0 = 0,
-    x1 = 1,
-    t0,
-    t1,
-    k10,
-    transform,
-    interpolator = _continuous.identity,
-    clamp = false,
-    unknown;
-  function scale(x) {
-    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
-  }
-  scale.domain = function (_) {
-    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
-  };
-  scale.clamp = function (_) {
-    return arguments.length ? (clamp = !!_, scale) : clamp;
-  };
-  scale.interpolator = function (_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-  function range(interpolate) {
-    return function (_) {
-      var r0, r1;
-      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
-    };
-  }
-  scale.range = range(_index.interpolate);
-  scale.rangeRound = range(_index.interpolateRound);
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  return function (t) {
-    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
-    return scale;
-  };
-}
-function copy(source, target) {
-  return target.domain(source.domain()).interpolator(source.interpolator()).clamp(source.clamp()).unknown(source.unknown());
-}
-function sequential() {
-  var scale = (0, _linear.linearish)(transformer()(_continuous.identity));
-  scale.copy = function () {
-    return copy(scale, sequential());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function sequentialLog() {
-  var scale = (0, _log.loggish)(transformer()).domain([1, 10]);
-  scale.copy = function () {
-    return copy(scale, sequentialLog()).base(scale.base());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function sequentialSymlog() {
-  var scale = (0, _symlog.symlogish)(transformer());
-  scale.copy = function () {
-    return copy(scale, sequentialSymlog()).constant(scale.constant());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function sequentialPow() {
-  var scale = (0, _pow.powish)(transformer());
-  scale.copy = function () {
-    return copy(scale, sequentialPow()).exponent(scale.exponent());
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
-function sequentialSqrt() {
-  return sequentialPow.apply(null, arguments).exponent(0.5);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/sequentialQuantile.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/sequentialQuantile.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = sequentialQuantile;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-function sequentialQuantile() {
-  var domain = [],
-    interpolator = _continuous.identity;
-  function scale(x) {
-    if (x != null && !isNaN(x = +x)) return interpolator(((0, _index.bisect)(domain, x, 1) - 1) / (domain.length - 1));
-  }
-  scale.domain = function (_) {
-    if (!arguments.length) return domain.slice();
-    domain = [];
-    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
-    domain.sort(_index.ascending);
-    return scale;
-  };
-  scale.interpolator = function (_) {
-    return arguments.length ? (interpolator = _, scale) : interpolator;
-  };
-  scale.range = function () {
-    return domain.map((d, i) => interpolator(i / (domain.length - 1)));
-  };
-  scale.quantiles = function (n) {
-    return Array.from({
-      length: n + 1
-    }, (_, i) => (0, _index.quantile)(domain, i / n));
-  };
-  scale.copy = function () {
-    return sequentialQuantile(interpolator).domain(domain);
-  };
-  return _init.initInterpolator.apply(scale, arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/symlog.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/symlog.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,35 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = symlog;
-exports.symlogish = symlogish;
-var _linear = require("./linear.js");
-var _continuous = require("./continuous.js");
-var _init = require("./init.js");
-function transformSymlog(c) {
-  return function (x) {
-    return Math.sign(x) * Math.log1p(Math.abs(x / c));
-  };
-}
-function transformSymexp(c) {
-  return function (x) {
-    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
-  };
-}
-function symlogish(transform) {
-  var c = 1,
-    scale = transform(transformSymlog(c), transformSymexp(c));
-  scale.constant = function (_) {
-    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
-  };
-  return (0, _linear.linearish)(scale);
-}
-function symlog() {
-  var scale = symlogish((0, _continuous.transformer)());
-  scale.copy = function () {
-    return (0, _continuous.copy)(scale, symlog()).constant(scale.constant());
-  };
-  return _init.initRange.apply(scale, arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/threshold.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/threshold.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,34 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = threshold;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _init = require("./init.js");
-function threshold() {
-  var domain = [0.5],
-    range = [0, 1],
-    unknown,
-    n = 1;
-  function scale(x) {
-    return x != null && x <= x ? range[(0, _index.bisect)(domain, x, 0, n)] : unknown;
-  }
-  scale.domain = function (_) {
-    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
-  };
-  scale.range = function (_) {
-    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
-  };
-  scale.invertExtent = function (y) {
-    var i = range.indexOf(y);
-    return [domain[i - 1], domain[i]];
-  };
-  scale.unknown = function (_) {
-    return arguments.length ? (unknown = _, scale) : unknown;
-  };
-  scale.copy = function () {
-    return threshold().domain(domain).range(range).unknown(unknown);
-  };
-  return _init.initRange.apply(scale, arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/tickFormat.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/tickFormat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = tickFormat;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _index2 = require("../../../lib-vendor/d3-format/src/index.js");
-function tickFormat(start, stop, count, specifier) {
-  var step = (0, _index.tickStep)(start, stop, count),
-    precision;
-  specifier = (0, _index2.formatSpecifier)(specifier == null ? ",f" : specifier);
-  switch (specifier.type) {
-    case "s":
-      {
-        var value = Math.max(Math.abs(start), Math.abs(stop));
-        if (specifier.precision == null && !isNaN(precision = (0, _index2.precisionPrefix)(step, value))) specifier.precision = precision;
-        return (0, _index2.formatPrefix)(specifier, value);
-      }
-    case "":
-    case "e":
-    case "g":
-    case "p":
-    case "r":
-      {
-        if (specifier.precision == null && !isNaN(precision = (0, _index2.precisionRound)(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
-        break;
-      }
-    case "f":
-    case "%":
-      {
-        if (specifier.precision == null && !isNaN(precision = (0, _index2.precisionFixed)(step))) specifier.precision = precision - (specifier.type === "%") * 2;
-        break;
-      }
-  }
-  return (0, _index2.format)(specifier);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/time.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.calendar = calendar;
-exports.default = time;
-var _index = require("../../../lib-vendor/d3-time/src/index.js");
-var _index2 = require("../../../lib-vendor/d3-time-format/src/index.js");
-var _continuous = _interopRequireWildcard(require("./continuous.js"));
-var _init = require("./init.js");
-var _nice = _interopRequireDefault(require("./nice.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function date(t) {
-  return new Date(t);
-}
-function number(t) {
-  return t instanceof Date ? +t : +new Date(+t);
-}
-function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
-  var scale = (0, _continuous.default)(),
-    invert = scale.invert,
-    domain = scale.domain;
-  var formatMillisecond = format(".%L"),
-    formatSecond = format(":%S"),
-    formatMinute = format("%I:%M"),
-    formatHour = format("%I %p"),
-    formatDay = format("%a %d"),
-    formatWeek = format("%b %d"),
-    formatMonth = format("%B"),
-    formatYear = format("%Y");
-  function tickFormat(date) {
-    return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);
-  }
-  scale.invert = function (y) {
-    return new Date(invert(y));
-  };
-  scale.domain = function (_) {
-    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
-  };
-  scale.ticks = function (interval) {
-    var d = domain();
-    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
-  };
-  scale.tickFormat = function (count, specifier) {
-    return specifier == null ? tickFormat : format(specifier);
-  };
-  scale.nice = function (interval) {
-    var d = domain();
-    if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
-    return interval ? domain((0, _nice.default)(d, interval)) : scale;
-  };
-  scale.copy = function () {
-    return (0, _continuous.copy)(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
-  };
-  return scale;
-}
-function time() {
-  return _init.initRange.apply(calendar(_index.timeTicks, _index.timeTickInterval, _index.timeYear, _index.timeMonth, _index.timeWeek, _index.timeDay, _index.timeHour, _index.timeMinute, _index.timeSecond, _index2.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-scale/src/utcTime.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-scale/src/utcTime.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = utcTime;
-var _index = require("../../../lib-vendor/d3-time/src/index.js");
-var _index2 = require("../../../lib-vendor/d3-time-format/src/index.js");
-var _time = require("./time.js");
-var _init = require("./init.js");
-function utcTime() {
-  return _init.initRange.apply((0, _time.calendar)(_index.utcTicks, _index.utcTickInterval, _index.utcYear, _index.utcMonth, _index.utcWeek, _index.utcDay, _index.utcHour, _index.utcMinute, _index.utcSecond, _index2.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/arc.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/arc.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,243 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _index = require("../../../lib-vendor/d3-path/src/index.js");
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _math = require("./math.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function arcInnerRadius(d) {
-  return d.innerRadius;
-}
-function arcOuterRadius(d) {
-  return d.outerRadius;
-}
-function arcStartAngle(d) {
-  return d.startAngle;
-}
-function arcEndAngle(d) {
-  return d.endAngle;
-}
-function arcPadAngle(d) {
-  return d && d.padAngle; // Note: optional!
-}
-function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
-  var x10 = x1 - x0,
-    y10 = y1 - y0,
-    x32 = x3 - x2,
-    y32 = y3 - y2,
-    t = y32 * x10 - x32 * y10;
-  if (t * t < _math.epsilon) return;
-  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
-  return [x0 + t * x10, y0 + t * y10];
-}
-
-// Compute perpendicular offset line of length rc.
-// http://mathworld.wolfram.com/Circle-LineIntersection.html
-function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
-  var x01 = x0 - x1,
-    y01 = y0 - y1,
-    lo = (cw ? rc : -rc) / (0, _math.sqrt)(x01 * x01 + y01 * y01),
-    ox = lo * y01,
-    oy = -lo * x01,
-    x11 = x0 + ox,
-    y11 = y0 + oy,
-    x10 = x1 + ox,
-    y10 = y1 + oy,
-    x00 = (x11 + x10) / 2,
-    y00 = (y11 + y10) / 2,
-    dx = x10 - x11,
-    dy = y10 - y11,
-    d2 = dx * dx + dy * dy,
-    r = r1 - rc,
-    D = x11 * y10 - x10 * y11,
-    d = (dy < 0 ? -1 : 1) * (0, _math.sqrt)((0, _math.max)(0, r * r * d2 - D * D)),
-    cx0 = (D * dy - dx * d) / d2,
-    cy0 = (-D * dx - dy * d) / d2,
-    cx1 = (D * dy + dx * d) / d2,
-    cy1 = (-D * dx + dy * d) / d2,
-    dx0 = cx0 - x00,
-    dy0 = cy0 - y00,
-    dx1 = cx1 - x00,
-    dy1 = cy1 - y00;
-
-  // Pick the closer of the two intersection points.
-  // TODO Is there a faster way to determine which intersection to use?
-  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-  return {
-    cx: cx0,
-    cy: cy0,
-    x01: -ox,
-    y01: -oy,
-    x11: cx0 * (r1 / r - 1),
-    y11: cy0 * (r1 / r - 1)
-  };
-}
-function _default() {
-  var innerRadius = arcInnerRadius,
-    outerRadius = arcOuterRadius,
-    cornerRadius = (0, _constant.default)(0),
-    padRadius = null,
-    startAngle = arcStartAngle,
-    endAngle = arcEndAngle,
-    padAngle = arcPadAngle,
-    context = null;
-  function arc() {
-    var buffer,
-      r,
-      r0 = +innerRadius.apply(this, arguments),
-      r1 = +outerRadius.apply(this, arguments),
-      a0 = startAngle.apply(this, arguments) - _math.halfPi,
-      a1 = endAngle.apply(this, arguments) - _math.halfPi,
-      da = (0, _math.abs)(a1 - a0),
-      cw = a1 > a0;
-    if (!context) context = buffer = (0, _index.path)();
-
-    // Ensure that the outer radius is always larger than the inner radius.
-    if (r1 < r0) r = r1, r1 = r0, r0 = r;
-
-    // Is it a point?
-    if (!(r1 > _math.epsilon)) context.moveTo(0, 0);
-
-    // Or is it a circle or annulus?
-    else if (da > _math.tau - _math.epsilon) {
-      context.moveTo(r1 * (0, _math.cos)(a0), r1 * (0, _math.sin)(a0));
-      context.arc(0, 0, r1, a0, a1, !cw);
-      if (r0 > _math.epsilon) {
-        context.moveTo(r0 * (0, _math.cos)(a1), r0 * (0, _math.sin)(a1));
-        context.arc(0, 0, r0, a1, a0, cw);
-      }
-    }
-
-    // Or is it a circular or annular sector?
-    else {
-      var a01 = a0,
-        a11 = a1,
-        a00 = a0,
-        a10 = a1,
-        da0 = da,
-        da1 = da,
-        ap = padAngle.apply(this, arguments) / 2,
-        rp = ap > _math.epsilon && (padRadius ? +padRadius.apply(this, arguments) : (0, _math.sqrt)(r0 * r0 + r1 * r1)),
-        rc = (0, _math.min)((0, _math.abs)(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
-        rc0 = rc,
-        rc1 = rc,
-        t0,
-        t1;
-
-      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
-      if (rp > _math.epsilon) {
-        var p0 = (0, _math.asin)(rp / r0 * (0, _math.sin)(ap)),
-          p1 = (0, _math.asin)(rp / r1 * (0, _math.sin)(ap));
-        if ((da0 -= p0 * 2) > _math.epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;
-        if ((da1 -= p1 * 2) > _math.epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;
-      }
-      var x01 = r1 * (0, _math.cos)(a01),
-        y01 = r1 * (0, _math.sin)(a01),
-        x10 = r0 * (0, _math.cos)(a10),
-        y10 = r0 * (0, _math.sin)(a10);
-
-      // Apply rounded corners?
-      if (rc > _math.epsilon) {
-        var x11 = r1 * (0, _math.cos)(a11),
-          y11 = r1 * (0, _math.sin)(a11),
-          x00 = r0 * (0, _math.cos)(a00),
-          y00 = r0 * (0, _math.sin)(a00),
-          oc;
-
-        // Restrict the corner radius according to the sector angle.
-        if (da < _math.pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
-          var ax = x01 - oc[0],
-            ay = y01 - oc[1],
-            bx = x11 - oc[0],
-            by = y11 - oc[1],
-            kc = 1 / (0, _math.sin)((0, _math.acos)((ax * bx + ay * by) / ((0, _math.sqrt)(ax * ax + ay * ay) * (0, _math.sqrt)(bx * bx + by * by))) / 2),
-            lc = (0, _math.sqrt)(oc[0] * oc[0] + oc[1] * oc[1]);
-          rc0 = (0, _math.min)(rc, (r0 - lc) / (kc - 1));
-          rc1 = (0, _math.min)(rc, (r1 - lc) / (kc + 1));
-        }
-      }
-
-      // Is the sector collapsed to a line?
-      if (!(da1 > _math.epsilon)) context.moveTo(x01, y01);
-
-      // Does the sector’s outer ring have rounded corners?
-      else if (rc1 > _math.epsilon) {
-        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
-        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
-        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, (0, _math.atan2)(t0.y01, t0.x01), (0, _math.atan2)(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc1, (0, _math.atan2)(t0.y01, t0.x01), (0, _math.atan2)(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r1, (0, _math.atan2)(t0.cy + t0.y11, t0.cx + t0.x11), (0, _math.atan2)(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
-          context.arc(t1.cx, t1.cy, rc1, (0, _math.atan2)(t1.y11, t1.x11), (0, _math.atan2)(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the outer ring just a circular arc?
-      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
-
-      // Is there no inner ring, and it’s a circular sector?
-      // Or perhaps it’s an annular sector collapsed due to padding?
-      if (!(r0 > _math.epsilon) || !(da0 > _math.epsilon)) context.lineTo(x10, y10);
-
-      // Does the sector’s inner ring (or point) have rounded corners?
-      else if (rc0 > _math.epsilon) {
-        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
-        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
-        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
-
-        // Have the corners merged?
-        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, (0, _math.atan2)(t0.y01, t0.x01), (0, _math.atan2)(t1.y01, t1.x01), !cw);
-
-        // Otherwise, draw the two corners and the ring.
-        else {
-          context.arc(t0.cx, t0.cy, rc0, (0, _math.atan2)(t0.y01, t0.x01), (0, _math.atan2)(t0.y11, t0.x11), !cw);
-          context.arc(0, 0, r0, (0, _math.atan2)(t0.cy + t0.y11, t0.cx + t0.x11), (0, _math.atan2)(t1.cy + t1.y11, t1.cx + t1.x11), cw);
-          context.arc(t1.cx, t1.cy, rc0, (0, _math.atan2)(t1.y11, t1.x11), (0, _math.atan2)(t1.y01, t1.x01), !cw);
-        }
-      }
-
-      // Or is the inner ring just a circular arc?
-      else context.arc(0, 0, r0, a10, a00, cw);
-    }
-    context.closePath();
-    if (buffer) return context = null, buffer + "" || null;
-  }
-  arc.centroid = function () {
-    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
-      a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math.pi / 2;
-    return [(0, _math.cos)(a) * r, (0, _math.sin)(a) * r];
-  };
-  arc.innerRadius = function (_) {
-    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : innerRadius;
-  };
-  arc.outerRadius = function (_) {
-    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : outerRadius;
-  };
-  arc.cornerRadius = function (_) {
-    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : cornerRadius;
-  };
-  arc.padRadius = function (_) {
-    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : padRadius;
-  };
-  arc.startAngle = function (_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : startAngle;
-  };
-  arc.endAngle = function (_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : endAngle;
-  };
-  arc.padAngle = function (_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), arc) : padAngle;
-  };
-  arc.context = function (_) {
-    return arguments.length ? (context = _ == null ? null : _, arc) : context;
-  };
-  return arc;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/area.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/area.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,97 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _index = require("../../../lib-vendor/d3-path/src/index.js");
-var _array = _interopRequireDefault(require("./array.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _linear = _interopRequireDefault(require("./curve/linear.js"));
-var _line = _interopRequireDefault(require("./line.js"));
-var _point = require("./point.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(x0, y0, y1) {
-  var x1 = null,
-    defined = (0, _constant.default)(true),
-    context = null,
-    curve = _linear.default,
-    output = null;
-  x0 = typeof x0 === "function" ? x0 : x0 === undefined ? _point.x : (0, _constant.default)(+x0);
-  y0 = typeof y0 === "function" ? y0 : y0 === undefined ? (0, _constant.default)(0) : (0, _constant.default)(+y0);
-  y1 = typeof y1 === "function" ? y1 : y1 === undefined ? _point.y : (0, _constant.default)(+y1);
-  function area(data) {
-    var i,
-      j,
-      k,
-      n = (data = (0, _array.default)(data)).length,
-      d,
-      defined0 = false,
-      buffer,
-      x0z = new Array(n),
-      y0z = new Array(n);
-    if (context == null) output = curve(buffer = (0, _index.path)());
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) {
-          j = i;
-          output.areaStart();
-          output.lineStart();
-        } else {
-          output.lineEnd();
-          output.lineStart();
-          for (k = i - 1; k >= j; --k) {
-            output.point(x0z[k], y0z[k]);
-          }
-          output.lineEnd();
-          output.areaEnd();
-        }
-      }
-      if (defined0) {
-        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
-        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
-      }
-    }
-    if (buffer) return output = null, buffer + "" || null;
-  }
-  function arealine() {
-    return (0, _line.default)().defined(defined).curve(curve).context(context);
-  }
-  area.x = function (_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : (0, _constant.default)(+_), x1 = null, area) : x0;
-  };
-  area.x0 = function (_) {
-    return arguments.length ? (x0 = typeof _ === "function" ? _ : (0, _constant.default)(+_), area) : x0;
-  };
-  area.x1 = function (_) {
-    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : (0, _constant.default)(+_), area) : x1;
-  };
-  area.y = function (_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : (0, _constant.default)(+_), y1 = null, area) : y0;
-  };
-  area.y0 = function (_) {
-    return arguments.length ? (y0 = typeof _ === "function" ? _ : (0, _constant.default)(+_), area) : y0;
-  };
-  area.y1 = function (_) {
-    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : (0, _constant.default)(+_), area) : y1;
-  };
-  area.lineX0 = area.lineY0 = function () {
-    return arealine().x(x0).y(y0);
-  };
-  area.lineY1 = function () {
-    return arealine().x(x0).y(y1);
-  };
-  area.lineX1 = function () {
-    return arealine().x(x1).y(y0);
-  };
-  area.defined = function (_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : (0, _constant.default)(!!_), area) : defined;
-  };
-  area.curve = function (_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
-  };
-  area.context = function (_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
-  };
-  return area;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/areaRadial.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/areaRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _radial = _interopRequireWildcard(require("./curve/radial.js"));
-var _area = _interopRequireDefault(require("./area.js"));
-var _lineRadial = require("./lineRadial.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _default() {
-  var a = (0, _area.default)().curve(_radial.curveRadialLinear),
-    c = a.curve,
-    x0 = a.lineX0,
-    x1 = a.lineX1,
-    y0 = a.lineY0,
-    y1 = a.lineY1;
-  a.angle = a.x, delete a.x;
-  a.startAngle = a.x0, delete a.x0;
-  a.endAngle = a.x1, delete a.x1;
-  a.radius = a.y, delete a.y;
-  a.innerRadius = a.y0, delete a.y0;
-  a.outerRadius = a.y1, delete a.y1;
-  a.lineStartAngle = function () {
-    return (0, _lineRadial.lineRadial)(x0());
-  }, delete a.lineX0;
-  a.lineEndAngle = function () {
-    return (0, _lineRadial.lineRadial)(x1());
-  }, delete a.lineX1;
-  a.lineInnerRadius = function () {
-    return (0, _lineRadial.lineRadial)(y0());
-  }, delete a.lineY0;
-  a.lineOuterRadius = function () {
-    return (0, _lineRadial.lineRadial)(y1());
-  }, delete a.lineY1;
-  a.curve = function (_) {
-    return arguments.length ? c((0, _radial.default)(_)) : c()._curve;
-  };
-  return a;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/array.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.slice = void 0;
-var slice = exports.slice = Array.prototype.slice;
-function _default(x) {
-  return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like
-  : Array.from(x); // Map, Set, iterable, string, or anything else
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/constant.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(x) {
-  return function constant() {
-    return x;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basis.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basis.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,62 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Basis = Basis;
-exports.default = _default;
-exports.point = point;
-function point(that, x, y) {
-  that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);
-}
-function Basis(context) {
-  this._context = context;
-}
-Basis.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 3:
-        point(this, this._x1, this._y1);
-      // falls through
-      case 2:
-        this._context.lineTo(this._x1, this._y1);
-        break;
-    }
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-        this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
-      // falls through
-      default:
-        point(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-function _default(context) {
-  return new Basis(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basisClosed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basisClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,70 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _noop = _interopRequireDefault(require("../noop.js"));
-var _basis = require("./basis.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function BasisClosed(context) {
-  this._context = context;
-}
-BasisClosed.prototype = {
-  areaStart: _noop.default,
-  areaEnd: _noop.default,
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 1:
-        {
-          this._context.moveTo(this._x2, this._y2);
-          this._context.closePath();
-          break;
-        }
-      case 2:
-        {
-          this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
-          this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
-          this._context.closePath();
-          break;
-        }
-      case 3:
-        {
-          this.point(this._x2, this._y2);
-          this.point(this._x3, this._y3);
-          this.point(this._x4, this._y4);
-          break;
-        }
-    }
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._x2 = x, this._y2 = y;
-        break;
-      case 1:
-        this._point = 2;
-        this._x3 = x, this._y3 = y;
-        break;
-      case 2:
-        this._point = 3;
-        this._x4 = x, this._y4 = y;
-        this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);
-        break;
-      default:
-        (0, _basis.point)(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-function _default(context) {
-  return new BasisClosed(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basisOpen.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/basisOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,54 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _basis = require("./basis.js");
-function BasisOpen(context) {
-  this._context = context;
-}
-BasisOpen.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._y0 = this._y1 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-        var x0 = (this._x0 + 4 * this._x1 + x) / 6,
-          y0 = (this._y0 + 4 * this._y1 + y) / 6;
-        this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
-        break;
-      case 3:
-        this._point = 4;
-      // falls through
-      default:
-        (0, _basis.point)(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-  }
-};
-function _default(context) {
-  return new BasisOpen(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/bump.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/bump.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,80 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.bumpRadial = bumpRadial;
-exports.bumpX = bumpX;
-exports.bumpY = bumpY;
-var _pointRadial = _interopRequireDefault(require("../pointRadial.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-class Bump {
-  constructor(context, x) {
-    this._context = context;
-    this._x = x;
-  }
-  areaStart() {
-    this._line = 0;
-  }
-  areaEnd() {
-    this._line = NaN;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  }
-  point(x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        {
-          this._point = 1;
-          if (this._line) this._context.lineTo(x, y);else this._context.moveTo(x, y);
-          break;
-        }
-      case 1:
-        this._point = 2;
-      // falls through
-      default:
-        {
-          if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
-          break;
-        }
-    }
-    this._x0 = x, this._y0 = y;
-  }
-}
-class BumpRadial {
-  constructor(context) {
-    this._context = context;
-  }
-  lineStart() {
-    this._point = 0;
-  }
-  lineEnd() {}
-  point(x, y) {
-    x = +x, y = +y;
-    if (this._point++ === 0) {
-      this._x0 = x, this._y0 = y;
-    } else {
-      const p0 = (0, _pointRadial.default)(this._x0, this._y0);
-      const p1 = (0, _pointRadial.default)(this._x0, this._y0 = (this._y0 + y) / 2);
-      const p2 = (0, _pointRadial.default)(x, this._y0);
-      const p3 = (0, _pointRadial.default)(x, y);
-      this._context.moveTo(...p0);
-      this._context.bezierCurveTo(...p1, ...p2, ...p3);
-    }
-  }
-}
-function bumpX(context) {
-  return new Bump(context, true);
-}
-function bumpY(context) {
-  return new Bump(context, false);
-}
-function bumpRadial(context) {
-  return new BumpRadial(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/bundle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/bundle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _basis = require("./basis.js");
-function Bundle(context, beta) {
-  this._basis = new _basis.Basis(context);
-  this._beta = beta;
-}
-Bundle.prototype = {
-  lineStart: function () {
-    this._x = [];
-    this._y = [];
-    this._basis.lineStart();
-  },
-  lineEnd: function () {
-    var x = this._x,
-      y = this._y,
-      j = x.length - 1;
-    if (j > 0) {
-      var x0 = x[0],
-        y0 = y[0],
-        dx = x[j] - x0,
-        dy = y[j] - y0,
-        i = -1,
-        t;
-      while (++i <= j) {
-        t = i / j;
-        this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));
-      }
-    }
-    this._x = this._y = null;
-    this._basis.lineEnd();
-  },
-  point: function (x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-var _default = exports.default = function custom(beta) {
-  function bundle(context) {
-    return beta === 1 ? new _basis.Basis(context) : new Bundle(context, beta);
-  }
-  bundle.beta = function (beta) {
-    return custom(+beta);
-  };
-  return bundle;
-}(0.85);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinal.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinal.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Cardinal = Cardinal;
-exports.default = void 0;
-exports.point = point;
-function point(that, x, y) {
-  that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);
-}
-function Cardinal(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-Cardinal.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 2:
-        this._context.lineTo(this._x2, this._y2);
-        break;
-      case 3:
-        point(this, this._x1, this._y1);
-        break;
-    }
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-        this._x1 = x, this._y1 = y;
-        break;
-      case 2:
-        this._point = 3;
-      // falls through
-      default:
-        point(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(tension) {
-  function cardinal(context) {
-    return new Cardinal(context, tension);
-  }
-  cardinal.tension = function (tension) {
-    return custom(+tension);
-  };
-  return cardinal;
-}(0);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinalClosed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinalClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,76 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CardinalClosed = CardinalClosed;
-exports.default = void 0;
-var _noop = _interopRequireDefault(require("../noop.js"));
-var _cardinal = require("./cardinal.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function CardinalClosed(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-CardinalClosed.prototype = {
-  areaStart: _noop.default,
-  areaEnd: _noop.default,
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 1:
-        {
-          this._context.moveTo(this._x3, this._y3);
-          this._context.closePath();
-          break;
-        }
-      case 2:
-        {
-          this._context.lineTo(this._x3, this._y3);
-          this._context.closePath();
-          break;
-        }
-      case 3:
-        {
-          this.point(this._x3, this._y3);
-          this.point(this._x4, this._y4);
-          this.point(this._x5, this._y5);
-          break;
-        }
-    }
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._x3 = x, this._y3 = y;
-        break;
-      case 1:
-        this._point = 2;
-        this._context.moveTo(this._x4 = x, this._y4 = y);
-        break;
-      case 2:
-        this._point = 3;
-        this._x5 = x, this._y5 = y;
-        break;
-      default:
-        (0, _cardinal.point)(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(tension) {
-  function cardinal(context) {
-    return new CardinalClosed(context, tension);
-  }
-  cardinal.tension = function (tension) {
-    return custom(+tension);
-  };
-  return cardinal;
-}(0);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinalOpen.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/cardinalOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.CardinalOpen = CardinalOpen;
-exports.default = void 0;
-var _cardinal = require("./cardinal.js");
-function CardinalOpen(context, tension) {
-  this._context = context;
-  this._k = (1 - tension) / 6;
-}
-CardinalOpen.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-        this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
-        break;
-      case 3:
-        this._point = 4;
-      // falls through
-      default:
-        (0, _cardinal.point)(this, x, y);
-        break;
-    }
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(tension) {
-  function cardinal(context) {
-    return new CardinalOpen(context, tension);
-  }
-  cardinal.tension = function (tension) {
-    return custom(+tension);
-  };
-  return cardinal;
-}(0);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRom.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRom.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,92 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-exports.point = point;
-var _math = require("../math.js");
-var _cardinal = require("./cardinal.js");
-function point(that, x, y) {
-  var x1 = that._x1,
-    y1 = that._y1,
-    x2 = that._x2,
-    y2 = that._y2;
-  if (that._l01_a > _math.epsilon) {
-    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
-      n = 3 * that._l01_a * (that._l01_a + that._l12_a);
-    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
-    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
-  }
-  if (that._l23_a > _math.epsilon) {
-    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
-      m = 3 * that._l23_a * (that._l23_a + that._l12_a);
-    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
-    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
-  }
-  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
-}
-function CatmullRom(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-CatmullRom.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 2:
-        this._context.lineTo(this._x2, this._y2);
-        break;
-      case 3:
-        this.point(this._x2, this._y2);
-        break;
-    }
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    if (this._point) {
-      var x23 = this._x2 - x,
-        y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-      // falls through
-      default:
-        point(this, x, y);
-        break;
-    }
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(alpha) {
-  function catmullRom(context) {
-    return alpha ? new CatmullRom(context, alpha) : new _cardinal.Cardinal(context, 0);
-  }
-  catmullRom.alpha = function (alpha) {
-    return custom(+alpha);
-  };
-  return catmullRom;
-}(0.5);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRomClosed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRomClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,83 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _cardinalClosed = require("./cardinalClosed.js");
-var _noop = _interopRequireDefault(require("../noop.js"));
-var _catmullRom = require("./catmullRom.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function CatmullRomClosed(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-CatmullRomClosed.prototype = {
-  areaStart: _noop.default,
-  areaEnd: _noop.default,
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
-    this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 1:
-        {
-          this._context.moveTo(this._x3, this._y3);
-          this._context.closePath();
-          break;
-        }
-      case 2:
-        {
-          this._context.lineTo(this._x3, this._y3);
-          this._context.closePath();
-          break;
-        }
-      case 3:
-        {
-          this.point(this._x3, this._y3);
-          this.point(this._x4, this._y4);
-          this.point(this._x5, this._y5);
-          break;
-        }
-    }
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    if (this._point) {
-      var x23 = this._x2 - x,
-        y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._x3 = x, this._y3 = y;
-        break;
-      case 1:
-        this._point = 2;
-        this._context.moveTo(this._x4 = x, this._y4 = y);
-        break;
-      case 2:
-        this._point = 3;
-        this._x5 = x, this._y5 = y;
-        break;
-      default:
-        (0, _catmullRom.point)(this, x, y);
-        break;
-    }
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(alpha) {
-  function catmullRom(context) {
-    return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed.CardinalClosed(context, 0);
-  }
-  catmullRom.alpha = function (alpha) {
-    return custom(+alpha);
-  };
-  return catmullRom;
-}(0.5);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRomOpen.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/catmullRomOpen.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _cardinalOpen = require("./cardinalOpen.js");
-var _catmullRom = require("./catmullRom.js");
-function CatmullRomOpen(context, alpha) {
-  this._context = context;
-  this._alpha = alpha;
-}
-CatmullRomOpen.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
-    this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
-  },
-  lineEnd: function () {
-    if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    if (this._point) {
-      var x23 = this._x2 - x,
-        y23 = this._y2 - y;
-      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
-    }
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-        this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
-        break;
-      case 3:
-        this._point = 4;
-      // falls through
-      default:
-        (0, _catmullRom.point)(this, x, y);
-        break;
-    }
-    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
-    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
-    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
-    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
-  }
-};
-var _default = exports.default = function custom(alpha) {
-  function catmullRom(context) {
-    return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen.CardinalOpen(context, 0);
-  }
-  catmullRom.alpha = function (alpha) {
-    return custom(+alpha);
-  };
-  return catmullRom;
-}(0.5);
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/linear.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/linear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,42 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function Linear(context) {
-  this._context = context;
-}
-Linear.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._point = 0;
-  },
-  lineEnd: function () {
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-      // falls through
-      default:
-        this._context.lineTo(x, y);
-        break;
-    }
-  }
-};
-function _default(context) {
-  return new Linear(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/linearClosed.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/linearClosed.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _noop = _interopRequireDefault(require("../noop.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function LinearClosed(context) {
-  this._context = context;
-}
-LinearClosed.prototype = {
-  areaStart: _noop.default,
-  areaEnd: _noop.default,
-  lineStart: function () {
-    this._point = 0;
-  },
-  lineEnd: function () {
-    if (this._point) this._context.closePath();
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);
-  }
-};
-function _default(context) {
-  return new LinearClosed(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/monotone.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/monotone.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,121 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.monotoneX = monotoneX;
-exports.monotoneY = monotoneY;
-function sign(x) {
-  return x < 0 ? -1 : 1;
-}
-
-// Calculate the slopes of the tangents (Hermite-type interpolation) based on
-// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
-// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
-// NOV(II), P. 443, 1990.
-function slope3(that, x2, y2) {
-  var h0 = that._x1 - that._x0,
-    h1 = x2 - that._x1,
-    s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
-    s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
-    p = (s0 * h1 + s1 * h0) / (h0 + h1);
-  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
-}
-
-// Calculate a one-sided slope.
-function slope2(that, t) {
-  var h = that._x1 - that._x0;
-  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
-}
-
-// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
-// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
-// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
-function point(that, t0, t1) {
-  var x0 = that._x0,
-    y0 = that._y0,
-    x1 = that._x1,
-    y1 = that._y1,
-    dx = (x1 - x0) / 3;
-  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
-}
-function MonotoneX(context) {
-  this._context = context;
-}
-MonotoneX.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    switch (this._point) {
-      case 2:
-        this._context.lineTo(this._x1, this._y1);
-        break;
-      case 3:
-        point(this, this._t0, slope2(this, this._t0));
-        break;
-    }
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    var t1 = NaN;
-    x = +x, y = +y;
-    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-        break;
-      case 2:
-        this._point = 3;
-        point(this, slope2(this, t1 = slope3(this, x, y)), t1);
-        break;
-      default:
-        point(this, this._t0, t1 = slope3(this, x, y));
-        break;
-    }
-    this._x0 = this._x1, this._x1 = x;
-    this._y0 = this._y1, this._y1 = y;
-    this._t0 = t1;
-  }
-};
-function MonotoneY(context) {
-  this._context = new ReflectContext(context);
-}
-(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function (x, y) {
-  MonotoneX.prototype.point.call(this, y, x);
-};
-function ReflectContext(context) {
-  this._context = context;
-}
-ReflectContext.prototype = {
-  moveTo: function (x, y) {
-    this._context.moveTo(y, x);
-  },
-  closePath: function () {
-    this._context.closePath();
-  },
-  lineTo: function (x, y) {
-    this._context.lineTo(y, x);
-  },
-  bezierCurveTo: function (x1, y1, x2, y2, x, y) {
-    this._context.bezierCurveTo(y1, x1, y2, x2, y, x);
-  }
-};
-function monotoneX(context) {
-  return new MonotoneX(context);
-}
-function monotoneY(context) {
-  return new MonotoneY(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/natural.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/natural.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,67 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function Natural(context) {
-  this._context = context;
-}
-Natural.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x = [];
-    this._y = [];
-  },
-  lineEnd: function () {
-    var x = this._x,
-      y = this._y,
-      n = x.length;
-    if (n) {
-      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
-      if (n === 2) {
-        this._context.lineTo(x[1], y[1]);
-      } else {
-        var px = controlPoints(x),
-          py = controlPoints(y);
-        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
-          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
-        }
-      }
-    }
-    if (this._line || this._line !== 0 && n === 1) this._context.closePath();
-    this._line = 1 - this._line;
-    this._x = this._y = null;
-  },
-  point: function (x, y) {
-    this._x.push(+x);
-    this._y.push(+y);
-  }
-};
-
-// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
-function controlPoints(x) {
-  var i,
-    n = x.length - 1,
-    m,
-    a = new Array(n),
-    b = new Array(n),
-    r = new Array(n);
-  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
-  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
-  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
-  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
-  a[n - 1] = r[n - 1] / b[n - 1];
-  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
-  b[n - 1] = (x[n] + a[n - 1]) / 2;
-  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
-  return [a, b];
-}
-function _default(context) {
-  return new Natural(context);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/radial.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/radial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,37 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.curveRadialLinear = void 0;
-exports.default = curveRadial;
-var _linear = _interopRequireDefault(require("./linear.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var curveRadialLinear = exports.curveRadialLinear = curveRadial(_linear.default);
-function Radial(curve) {
-  this._curve = curve;
-}
-Radial.prototype = {
-  areaStart: function () {
-    this._curve.areaStart();
-  },
-  areaEnd: function () {
-    this._curve.areaEnd();
-  },
-  lineStart: function () {
-    this._curve.lineStart();
-  },
-  lineEnd: function () {
-    this._curve.lineEnd();
-  },
-  point: function (a, r) {
-    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
-  }
-};
-function curveRadial(curve) {
-  function radial(context) {
-    return new Radial(curve(context));
-  }
-  radial._curve = curve;
-  return radial;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/curve/step.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/curve/step.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,63 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.stepAfter = stepAfter;
-exports.stepBefore = stepBefore;
-function Step(context, t) {
-  this._context = context;
-  this._t = t;
-}
-Step.prototype = {
-  areaStart: function () {
-    this._line = 0;
-  },
-  areaEnd: function () {
-    this._line = NaN;
-  },
-  lineStart: function () {
-    this._x = this._y = NaN;
-    this._point = 0;
-  },
-  lineEnd: function () {
-    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
-    if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
-    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
-  },
-  point: function (x, y) {
-    x = +x, y = +y;
-    switch (this._point) {
-      case 0:
-        this._point = 1;
-        this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
-        break;
-      case 1:
-        this._point = 2;
-      // falls through
-      default:
-        {
-          if (this._t <= 0) {
-            this._context.lineTo(this._x, y);
-            this._context.lineTo(x, y);
-          } else {
-            var x1 = this._x * (1 - this._t) + x * this._t;
-            this._context.lineTo(x1, this._y);
-            this._context.lineTo(x1, y);
-          }
-          break;
-        }
-    }
-    this._x = x, this._y = y;
-  }
-};
-function _default(context) {
-  return new Step(context, 0.5);
-}
-function stepBefore(context) {
-  return new Step(context, 0);
-}
-function stepAfter(context) {
-  return new Step(context, 1);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/descending.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(a, b) {
-  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/identity.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/identity.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(d) {
-  return d;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,430 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "arc", {
-  enumerable: true,
-  get: function () {
-    return _arc.default;
-  }
-});
-Object.defineProperty(exports, "area", {
-  enumerable: true,
-  get: function () {
-    return _area.default;
-  }
-});
-Object.defineProperty(exports, "areaRadial", {
-  enumerable: true,
-  get: function () {
-    return _areaRadial.default;
-  }
-});
-Object.defineProperty(exports, "curveBasis", {
-  enumerable: true,
-  get: function () {
-    return _basis.default;
-  }
-});
-Object.defineProperty(exports, "curveBasisClosed", {
-  enumerable: true,
-  get: function () {
-    return _basisClosed.default;
-  }
-});
-Object.defineProperty(exports, "curveBasisOpen", {
-  enumerable: true,
-  get: function () {
-    return _basisOpen.default;
-  }
-});
-Object.defineProperty(exports, "curveBumpX", {
-  enumerable: true,
-  get: function () {
-    return _bump.bumpX;
-  }
-});
-Object.defineProperty(exports, "curveBumpY", {
-  enumerable: true,
-  get: function () {
-    return _bump.bumpY;
-  }
-});
-Object.defineProperty(exports, "curveBundle", {
-  enumerable: true,
-  get: function () {
-    return _bundle.default;
-  }
-});
-Object.defineProperty(exports, "curveCardinal", {
-  enumerable: true,
-  get: function () {
-    return _cardinal.default;
-  }
-});
-Object.defineProperty(exports, "curveCardinalClosed", {
-  enumerable: true,
-  get: function () {
-    return _cardinalClosed.default;
-  }
-});
-Object.defineProperty(exports, "curveCardinalOpen", {
-  enumerable: true,
-  get: function () {
-    return _cardinalOpen.default;
-  }
-});
-Object.defineProperty(exports, "curveCatmullRom", {
-  enumerable: true,
-  get: function () {
-    return _catmullRom.default;
-  }
-});
-Object.defineProperty(exports, "curveCatmullRomClosed", {
-  enumerable: true,
-  get: function () {
-    return _catmullRomClosed.default;
-  }
-});
-Object.defineProperty(exports, "curveCatmullRomOpen", {
-  enumerable: true,
-  get: function () {
-    return _catmullRomOpen.default;
-  }
-});
-Object.defineProperty(exports, "curveLinear", {
-  enumerable: true,
-  get: function () {
-    return _linear.default;
-  }
-});
-Object.defineProperty(exports, "curveLinearClosed", {
-  enumerable: true,
-  get: function () {
-    return _linearClosed.default;
-  }
-});
-Object.defineProperty(exports, "curveMonotoneX", {
-  enumerable: true,
-  get: function () {
-    return _monotone.monotoneX;
-  }
-});
-Object.defineProperty(exports, "curveMonotoneY", {
-  enumerable: true,
-  get: function () {
-    return _monotone.monotoneY;
-  }
-});
-Object.defineProperty(exports, "curveNatural", {
-  enumerable: true,
-  get: function () {
-    return _natural.default;
-  }
-});
-Object.defineProperty(exports, "curveStep", {
-  enumerable: true,
-  get: function () {
-    return _step.default;
-  }
-});
-Object.defineProperty(exports, "curveStepAfter", {
-  enumerable: true,
-  get: function () {
-    return _step.stepAfter;
-  }
-});
-Object.defineProperty(exports, "curveStepBefore", {
-  enumerable: true,
-  get: function () {
-    return _step.stepBefore;
-  }
-});
-Object.defineProperty(exports, "line", {
-  enumerable: true,
-  get: function () {
-    return _line.default;
-  }
-});
-Object.defineProperty(exports, "lineRadial", {
-  enumerable: true,
-  get: function () {
-    return _lineRadial.default;
-  }
-});
-Object.defineProperty(exports, "link", {
-  enumerable: true,
-  get: function () {
-    return _link.link;
-  }
-});
-Object.defineProperty(exports, "linkHorizontal", {
-  enumerable: true,
-  get: function () {
-    return _link.linkHorizontal;
-  }
-});
-Object.defineProperty(exports, "linkRadial", {
-  enumerable: true,
-  get: function () {
-    return _link.linkRadial;
-  }
-});
-Object.defineProperty(exports, "linkVertical", {
-  enumerable: true,
-  get: function () {
-    return _link.linkVertical;
-  }
-});
-Object.defineProperty(exports, "pie", {
-  enumerable: true,
-  get: function () {
-    return _pie.default;
-  }
-});
-Object.defineProperty(exports, "pointRadial", {
-  enumerable: true,
-  get: function () {
-    return _pointRadial.default;
-  }
-});
-Object.defineProperty(exports, "radialArea", {
-  enumerable: true,
-  get: function () {
-    return _areaRadial.default;
-  }
-});
-Object.defineProperty(exports, "radialLine", {
-  enumerable: true,
-  get: function () {
-    return _lineRadial.default;
-  }
-});
-Object.defineProperty(exports, "stack", {
-  enumerable: true,
-  get: function () {
-    return _stack.default;
-  }
-});
-Object.defineProperty(exports, "stackOffsetDiverging", {
-  enumerable: true,
-  get: function () {
-    return _diverging.default;
-  }
-});
-Object.defineProperty(exports, "stackOffsetExpand", {
-  enumerable: true,
-  get: function () {
-    return _expand.default;
-  }
-});
-Object.defineProperty(exports, "stackOffsetNone", {
-  enumerable: true,
-  get: function () {
-    return _none.default;
-  }
-});
-Object.defineProperty(exports, "stackOffsetSilhouette", {
-  enumerable: true,
-  get: function () {
-    return _silhouette.default;
-  }
-});
-Object.defineProperty(exports, "stackOffsetWiggle", {
-  enumerable: true,
-  get: function () {
-    return _wiggle.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderAppearance", {
-  enumerable: true,
-  get: function () {
-    return _appearance.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderAscending", {
-  enumerable: true,
-  get: function () {
-    return _ascending.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderDescending", {
-  enumerable: true,
-  get: function () {
-    return _descending.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderInsideOut", {
-  enumerable: true,
-  get: function () {
-    return _insideOut.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderNone", {
-  enumerable: true,
-  get: function () {
-    return _none2.default;
-  }
-});
-Object.defineProperty(exports, "stackOrderReverse", {
-  enumerable: true,
-  get: function () {
-    return _reverse.default;
-  }
-});
-Object.defineProperty(exports, "symbol", {
-  enumerable: true,
-  get: function () {
-    return _symbol.default;
-  }
-});
-Object.defineProperty(exports, "symbolAsterisk", {
-  enumerable: true,
-  get: function () {
-    return _asterisk.default;
-  }
-});
-Object.defineProperty(exports, "symbolCircle", {
-  enumerable: true,
-  get: function () {
-    return _circle.default;
-  }
-});
-Object.defineProperty(exports, "symbolCross", {
-  enumerable: true,
-  get: function () {
-    return _cross.default;
-  }
-});
-Object.defineProperty(exports, "symbolDiamond", {
-  enumerable: true,
-  get: function () {
-    return _diamond.default;
-  }
-});
-Object.defineProperty(exports, "symbolDiamond2", {
-  enumerable: true,
-  get: function () {
-    return _diamond2.default;
-  }
-});
-Object.defineProperty(exports, "symbolPlus", {
-  enumerable: true,
-  get: function () {
-    return _plus.default;
-  }
-});
-Object.defineProperty(exports, "symbolSquare", {
-  enumerable: true,
-  get: function () {
-    return _square.default;
-  }
-});
-Object.defineProperty(exports, "symbolSquare2", {
-  enumerable: true,
-  get: function () {
-    return _square2.default;
-  }
-});
-Object.defineProperty(exports, "symbolStar", {
-  enumerable: true,
-  get: function () {
-    return _star.default;
-  }
-});
-Object.defineProperty(exports, "symbolTriangle", {
-  enumerable: true,
-  get: function () {
-    return _triangle.default;
-  }
-});
-Object.defineProperty(exports, "symbolTriangle2", {
-  enumerable: true,
-  get: function () {
-    return _triangle2.default;
-  }
-});
-Object.defineProperty(exports, "symbolWye", {
-  enumerable: true,
-  get: function () {
-    return _wye.default;
-  }
-});
-Object.defineProperty(exports, "symbolX", {
-  enumerable: true,
-  get: function () {
-    return _x.default;
-  }
-});
-Object.defineProperty(exports, "symbols", {
-  enumerable: true,
-  get: function () {
-    return _symbol.symbolsFill;
-  }
-});
-Object.defineProperty(exports, "symbolsFill", {
-  enumerable: true,
-  get: function () {
-    return _symbol.symbolsFill;
-  }
-});
-Object.defineProperty(exports, "symbolsStroke", {
-  enumerable: true,
-  get: function () {
-    return _symbol.symbolsStroke;
-  }
-});
-var _arc = _interopRequireDefault(require("./arc.js"));
-var _area = _interopRequireDefault(require("./area.js"));
-var _line = _interopRequireDefault(require("./line.js"));
-var _pie = _interopRequireDefault(require("./pie.js"));
-var _areaRadial = _interopRequireDefault(require("./areaRadial.js"));
-var _lineRadial = _interopRequireDefault(require("./lineRadial.js"));
-var _pointRadial = _interopRequireDefault(require("./pointRadial.js"));
-var _link = require("./link.js");
-var _symbol = _interopRequireWildcard(require("./symbol.js"));
-var _asterisk = _interopRequireDefault(require("./symbol/asterisk.js"));
-var _circle = _interopRequireDefault(require("./symbol/circle.js"));
-var _cross = _interopRequireDefault(require("./symbol/cross.js"));
-var _diamond = _interopRequireDefault(require("./symbol/diamond.js"));
-var _diamond2 = _interopRequireDefault(require("./symbol/diamond2.js"));
-var _plus = _interopRequireDefault(require("./symbol/plus.js"));
-var _square = _interopRequireDefault(require("./symbol/square.js"));
-var _square2 = _interopRequireDefault(require("./symbol/square2.js"));
-var _star = _interopRequireDefault(require("./symbol/star.js"));
-var _triangle = _interopRequireDefault(require("./symbol/triangle.js"));
-var _triangle2 = _interopRequireDefault(require("./symbol/triangle2.js"));
-var _wye = _interopRequireDefault(require("./symbol/wye.js"));
-var _x = _interopRequireDefault(require("./symbol/x.js"));
-var _basisClosed = _interopRequireDefault(require("./curve/basisClosed.js"));
-var _basisOpen = _interopRequireDefault(require("./curve/basisOpen.js"));
-var _basis = _interopRequireDefault(require("./curve/basis.js"));
-var _bump = require("./curve/bump.js");
-var _bundle = _interopRequireDefault(require("./curve/bundle.js"));
-var _cardinalClosed = _interopRequireDefault(require("./curve/cardinalClosed.js"));
-var _cardinalOpen = _interopRequireDefault(require("./curve/cardinalOpen.js"));
-var _cardinal = _interopRequireDefault(require("./curve/cardinal.js"));
-var _catmullRomClosed = _interopRequireDefault(require("./curve/catmullRomClosed.js"));
-var _catmullRomOpen = _interopRequireDefault(require("./curve/catmullRomOpen.js"));
-var _catmullRom = _interopRequireDefault(require("./curve/catmullRom.js"));
-var _linearClosed = _interopRequireDefault(require("./curve/linearClosed.js"));
-var _linear = _interopRequireDefault(require("./curve/linear.js"));
-var _monotone = require("./curve/monotone.js");
-var _natural = _interopRequireDefault(require("./curve/natural.js"));
-var _step = _interopRequireWildcard(require("./curve/step.js"));
-var _stack = _interopRequireDefault(require("./stack.js"));
-var _expand = _interopRequireDefault(require("./offset/expand.js"));
-var _diverging = _interopRequireDefault(require("./offset/diverging.js"));
-var _none = _interopRequireDefault(require("./offset/none.js"));
-var _silhouette = _interopRequireDefault(require("./offset/silhouette.js"));
-var _wiggle = _interopRequireDefault(require("./offset/wiggle.js"));
-var _appearance = _interopRequireDefault(require("./order/appearance.js"));
-var _ascending = _interopRequireDefault(require("./order/ascending.js"));
-var _descending = _interopRequireDefault(require("./order/descending.js"));
-var _insideOut = _interopRequireDefault(require("./order/insideOut.js"));
-var _none2 = _interopRequireDefault(require("./order/none.js"));
-var _reverse = _interopRequireDefault(require("./order/reverse.js"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/line.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/line.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,51 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _index = require("../../../lib-vendor/d3-path/src/index.js");
-var _array = _interopRequireDefault(require("./array.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _linear = _interopRequireDefault(require("./curve/linear.js"));
-var _point = require("./point.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(x, y) {
-  var defined = (0, _constant.default)(true),
-    context = null,
-    curve = _linear.default,
-    output = null;
-  x = typeof x === "function" ? x : x === undefined ? _point.x : (0, _constant.default)(x);
-  y = typeof y === "function" ? y : y === undefined ? _point.y : (0, _constant.default)(y);
-  function line(data) {
-    var i,
-      n = (data = (0, _array.default)(data)).length,
-      d,
-      defined0 = false,
-      buffer;
-    if (context == null) output = curve(buffer = (0, _index.path)());
-    for (i = 0; i <= n; ++i) {
-      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
-        if (defined0 = !defined0) output.lineStart();else output.lineEnd();
-      }
-      if (defined0) output.point(+x(d, i, data), +y(d, i, data));
-    }
-    if (buffer) return output = null, buffer + "" || null;
-  }
-  line.x = function (_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : (0, _constant.default)(+_), line) : x;
-  };
-  line.y = function (_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : (0, _constant.default)(+_), line) : y;
-  };
-  line.defined = function (_) {
-    return arguments.length ? (defined = typeof _ === "function" ? _ : (0, _constant.default)(!!_), line) : defined;
-  };
-  line.curve = function (_) {
-    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
-  };
-  line.context = function (_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
-  };
-  return line;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/lineRadial.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/lineRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,24 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.lineRadial = lineRadial;
-var _radial = _interopRequireWildcard(require("./curve/radial.js"));
-var _line = _interopRequireDefault(require("./line.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function lineRadial(l) {
-  var c = l.curve;
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  l.curve = function (_) {
-    return arguments.length ? c((0, _radial.default)(_)) : c()._curve;
-  };
-  return l;
-}
-function _default() {
-  return lineRadial((0, _line.default)().curve(_radial.curveRadialLinear));
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/link.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/link.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,69 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.link = link;
-exports.linkHorizontal = linkHorizontal;
-exports.linkRadial = linkRadial;
-exports.linkVertical = linkVertical;
-var _index = require("../../../lib-vendor/d3-path/src/index.js");
-var _array = require("./array.js");
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _bump = require("./curve/bump.js");
-var _point = require("./point.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function linkSource(d) {
-  return d.source;
-}
-function linkTarget(d) {
-  return d.target;
-}
-function link(curve) {
-  let source = linkSource;
-  let target = linkTarget;
-  let x = _point.x;
-  let y = _point.y;
-  let context = null;
-  let output = null;
-  function link() {
-    let buffer;
-    const argv = _array.slice.call(arguments);
-    const s = source.apply(this, argv);
-    const t = target.apply(this, argv);
-    if (context == null) output = curve(buffer = (0, _index.path)());
-    output.lineStart();
-    argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));
-    argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));
-    output.lineEnd();
-    if (buffer) return output = null, buffer + "" || null;
-  }
-  link.source = function (_) {
-    return arguments.length ? (source = _, link) : source;
-  };
-  link.target = function (_) {
-    return arguments.length ? (target = _, link) : target;
-  };
-  link.x = function (_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : (0, _constant.default)(+_), link) : x;
-  };
-  link.y = function (_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : (0, _constant.default)(+_), link) : y;
-  };
-  link.context = function (_) {
-    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;
-  };
-  return link;
-}
-function linkHorizontal() {
-  return link(_bump.bumpX);
-}
-function linkVertical() {
-  return link(_bump.bumpY);
-}
-function linkRadial() {
-  const l = link(_bump.bumpRadial);
-  l.angle = l.x, delete l.x;
-  l.radius = l.y, delete l.y;
-  return l;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/math.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/math.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,26 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.abs = void 0;
-exports.acos = acos;
-exports.asin = asin;
-exports.tau = exports.sqrt = exports.sin = exports.pi = exports.min = exports.max = exports.halfPi = exports.epsilon = exports.cos = exports.atan2 = void 0;
-const abs = exports.abs = Math.abs;
-const atan2 = exports.atan2 = Math.atan2;
-const cos = exports.cos = Math.cos;
-const max = exports.max = Math.max;
-const min = exports.min = Math.min;
-const sin = exports.sin = Math.sin;
-const sqrt = exports.sqrt = Math.sqrt;
-const epsilon = exports.epsilon = 1e-12;
-const pi = exports.pi = Math.PI;
-const halfPi = exports.halfPi = pi / 2;
-const tau = exports.tau = 2 * pi;
-function acos(x) {
-  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
-}
-function asin(x) {
-  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/noop.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/noop.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default() {}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/offset/diverging.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/offset/diverging.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
-    for (yp = yn = 0, i = 0; i < n; ++i) {
-      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
-        d[0] = yp, d[1] = yp += dy;
-      } else if (dy < 0) {
-        d[1] = yn, d[0] = yn += dy;
-      } else {
-        d[0] = 0, d[1] = dy;
-      }
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/offset/expand.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/offset/expand.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
-    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
-    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
-  }
-  (0, _none.default)(series, order);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/offset/none.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/offset/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,15 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(series, order) {
-  if (!((n = series.length) > 1)) return;
-  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
-    s0 = s1, s1 = series[order[i]];
-    for (j = 0; j < m; ++j) {
-      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/offset/silhouette.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/offset/silhouette.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series, order) {
-  if (!((n = series.length) > 0)) return;
-  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
-    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
-    s0[j][1] += s0[j][0] = -y / 2;
-  }
-  (0, _none.default)(series, order);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/offset/wiggle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/offset/wiggle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,30 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series, order) {
-  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
-  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
-    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
-      var si = series[order[i]],
-        sij0 = si[j][1] || 0,
-        sij1 = si[j - 1][1] || 0,
-        s3 = (sij0 - sij1) / 2;
-      for (var k = 0; k < i; ++k) {
-        var sk = series[order[k]],
-          skj0 = sk[j][1] || 0,
-          skj1 = sk[j - 1][1] || 0;
-        s3 += skj0 - skj1;
-      }
-      s1 += sij0, s2 += s3 * sij0;
-    }
-    s0[j - 1][1] += s0[j - 1][0] = y;
-    if (s1) y -= s2 / s1;
-  }
-  s0[j - 1][1] += s0[j - 1][0] = y;
-  (0, _none.default)(series, order);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/appearance.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/appearance.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series) {
-  var peaks = series.map(peak);
-  return (0, _none.default)(series).sort(function (a, b) {
-    return peaks[a] - peaks[b];
-  });
-}
-function peak(series) {
-  var i = -1,
-    j = 0,
-    n = series.length,
-    vi,
-    vj = -Infinity;
-  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
-  return j;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/ascending.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/ascending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-exports.sum = sum;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series) {
-  var sums = series.map(sum);
-  return (0, _none.default)(series).sort(function (a, b) {
-    return sums[a] - sums[b];
-  });
-}
-function sum(series) {
-  var s = 0,
-    i = -1,
-    n = series.length,
-    v;
-  while (++i < n) if (v = +series[i][1]) s += v;
-  return s;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/descending.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/descending.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _ascending = _interopRequireDefault(require("./ascending.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series) {
-  return (0, _ascending.default)(series).reverse();
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/insideOut.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/insideOut.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _appearance = _interopRequireDefault(require("./appearance.js"));
-var _ascending = require("./ascending.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series) {
-  var n = series.length,
-    i,
-    j,
-    sums = series.map(_ascending.sum),
-    order = (0, _appearance.default)(series),
-    top = 0,
-    bottom = 0,
-    tops = [],
-    bottoms = [];
-  for (i = 0; i < n; ++i) {
-    j = order[i];
-    if (top < bottom) {
-      top += sums[j];
-      tops.push(j);
-    } else {
-      bottom += sums[j];
-      bottoms.push(j);
-    }
-  }
-  return bottoms.reverse().concat(tops);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/none.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/none.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(series) {
-  var n = series.length,
-    o = new Array(n);
-  while (--n >= 0) o[n] = n;
-  return o;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/order/reverse.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/order/reverse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _none = _interopRequireDefault(require("./none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default(series) {
-  return (0, _none.default)(series).reverse();
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/pie.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/pie.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,79 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _array = _interopRequireDefault(require("./array.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _descending = _interopRequireDefault(require("./descending.js"));
-var _identity = _interopRequireDefault(require("./identity.js"));
-var _math = require("./math.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default() {
-  var value = _identity.default,
-    sortValues = _descending.default,
-    sort = null,
-    startAngle = (0, _constant.default)(0),
-    endAngle = (0, _constant.default)(_math.tau),
-    padAngle = (0, _constant.default)(0);
-  function pie(data) {
-    var i,
-      n = (data = (0, _array.default)(data)).length,
-      j,
-      k,
-      sum = 0,
-      index = new Array(n),
-      arcs = new Array(n),
-      a0 = +startAngle.apply(this, arguments),
-      da = Math.min(_math.tau, Math.max(-_math.tau, endAngle.apply(this, arguments) - a0)),
-      a1,
-      p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
-      pa = p * (da < 0 ? -1 : 1),
-      v;
-    for (i = 0; i < n; ++i) {
-      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
-        sum += v;
-      }
-    }
-
-    // Optionally sort the arcs by previously-computed values or by data.
-    if (sortValues != null) index.sort(function (i, j) {
-      return sortValues(arcs[i], arcs[j]);
-    });else if (sort != null) index.sort(function (i, j) {
-      return sort(data[i], data[j]);
-    });
-
-    // Compute the arcs! They are stored in the original data's order.
-    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
-      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
-        data: data[j],
-        index: i,
-        value: v,
-        startAngle: a0,
-        endAngle: a1,
-        padAngle: p
-      };
-    }
-    return arcs;
-  }
-  pie.value = function (_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : value;
-  };
-  pie.sortValues = function (_) {
-    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
-  };
-  pie.sort = function (_) {
-    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
-  };
-  pie.startAngle = function (_) {
-    return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : startAngle;
-  };
-  pie.endAngle = function (_) {
-    return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : endAngle;
-  };
-  pie.padAngle = function (_) {
-    return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : padAngle;
-  };
-  return pie;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/point.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/point.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.x = x;
-exports.y = y;
-function x(p) {
-  return p[0];
-}
-function y(p) {
-  return p[1];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/pointRadial.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/pointRadial.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(x, y) {
-  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/stack.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/stack.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,55 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _array = _interopRequireDefault(require("./array.js"));
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _none = _interopRequireDefault(require("./offset/none.js"));
-var _none2 = _interopRequireDefault(require("./order/none.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function stackValue(d, key) {
-  return d[key];
-}
-function stackSeries(key) {
-  const series = [];
-  series.key = key;
-  return series;
-}
-function _default() {
-  var keys = (0, _constant.default)([]),
-    order = _none2.default,
-    offset = _none.default,
-    value = stackValue;
-  function stack(data) {
-    var sz = Array.from(keys.apply(this, arguments), stackSeries),
-      i,
-      n = sz.length,
-      j = -1,
-      oz;
-    for (const d of data) {
-      for (i = 0, ++j; i < n; ++i) {
-        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
-      }
-    }
-    for (i = 0, oz = (0, _array.default)(order(sz)); i < n; ++i) {
-      sz[oz[i]].index = i;
-    }
-    offset(sz, oz);
-    return sz;
-  }
-  stack.keys = function (_) {
-    return arguments.length ? (keys = typeof _ === "function" ? _ : (0, _constant.default)(Array.from(_)), stack) : keys;
-  };
-  stack.value = function (_) {
-    return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(+_), stack) : value;
-  };
-  stack.order = function (_) {
-    return arguments.length ? (order = _ == null ? _none2.default : typeof _ === "function" ? _ : (0, _constant.default)(Array.from(_)), stack) : order;
-  };
-  stack.offset = function (_) {
-    return arguments.length ? (offset = _ == null ? _none.default : _, stack) : offset;
-  };
-  return stack;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,49 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = Symbol;
-exports.symbolsStroke = exports.symbolsFill = void 0;
-var _index = require("../../../lib-vendor/d3-path/src/index.js");
-var _constant = _interopRequireDefault(require("./constant.js"));
-var _asterisk = _interopRequireDefault(require("./symbol/asterisk.js"));
-var _circle = _interopRequireDefault(require("./symbol/circle.js"));
-var _cross = _interopRequireDefault(require("./symbol/cross.js"));
-var _diamond = _interopRequireDefault(require("./symbol/diamond.js"));
-var _diamond2 = _interopRequireDefault(require("./symbol/diamond2.js"));
-var _plus = _interopRequireDefault(require("./symbol/plus.js"));
-var _square = _interopRequireDefault(require("./symbol/square.js"));
-var _square2 = _interopRequireDefault(require("./symbol/square2.js"));
-var _star = _interopRequireDefault(require("./symbol/star.js"));
-var _triangle = _interopRequireDefault(require("./symbol/triangle.js"));
-var _triangle2 = _interopRequireDefault(require("./symbol/triangle2.js"));
-var _wye = _interopRequireDefault(require("./symbol/wye.js"));
-var _x = _interopRequireDefault(require("./symbol/x.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-// These symbols are designed to be filled.
-const symbolsFill = exports.symbolsFill = [_circle.default, _cross.default, _diamond.default, _square.default, _star.default, _triangle.default, _wye.default];
-
-// These symbols are designed to be stroked (with a width of 1.5px and round caps).
-const symbolsStroke = exports.symbolsStroke = [_circle.default, _plus.default, _x.default, _triangle2.default, _asterisk.default, _square2.default, _diamond2.default];
-function Symbol(type, size) {
-  let context = null;
-  type = typeof type === "function" ? type : (0, _constant.default)(type || _circle.default);
-  size = typeof size === "function" ? size : (0, _constant.default)(size === undefined ? 64 : +size);
-  function symbol() {
-    let buffer;
-    if (!context) context = buffer = (0, _index.path)();
-    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
-    if (buffer) return context = null, buffer + "" || null;
-  }
-  symbol.type = function (_) {
-    return arguments.length ? (type = typeof _ === "function" ? _ : (0, _constant.default)(_), symbol) : type;
-  };
-  symbol.size = function (_) {
-    return arguments.length ? (size = typeof _ === "function" ? _ : (0, _constant.default)(+_), symbol) : size;
-  };
-  symbol.context = function (_) {
-    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
-  };
-  return symbol;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/asterisk.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/asterisk.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,21 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const sqrt3 = (0, _math.sqrt)(3);
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size + (0, _math.min)(size / 28, 0.75)) * 0.59436;
-    const t = r / 2;
-    const u = t * sqrt3;
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-    context.moveTo(-u, -t);
-    context.lineTo(u, t);
-    context.moveTo(-u, t);
-    context.lineTo(u, -t);
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/circle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size / _math.pi);
-    context.moveTo(r, 0);
-    context.arc(0, 0, r, 0, _math.tau);
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/cross.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/cross.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,25 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size / 5) / 2;
-    context.moveTo(-3 * r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, -3 * r);
-    context.lineTo(r, -3 * r);
-    context.lineTo(r, -r);
-    context.lineTo(3 * r, -r);
-    context.lineTo(3 * r, r);
-    context.lineTo(r, r);
-    context.lineTo(r, 3 * r);
-    context.lineTo(-r, 3 * r);
-    context.lineTo(-r, r);
-    context.lineTo(-3 * r, r);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/diamond.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/diamond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const tan30 = (0, _math.sqrt)(1 / 3);
-const tan30_2 = tan30 * 2;
-var _default = exports.default = {
-  draw(context, size) {
-    const y = (0, _math.sqrt)(size / tan30_2);
-    const x = y * tan30;
-    context.moveTo(0, -y);
-    context.lineTo(x, 0);
-    context.lineTo(0, y);
-    context.lineTo(-x, 0);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/diamond2.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/diamond2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size) * 0.62625;
-    context.moveTo(0, -r);
-    context.lineTo(r, 0);
-    context.lineTo(0, r);
-    context.lineTo(-r, 0);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/plus.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/plus.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size - (0, _math.min)(size / 7, 2)) * 0.87559;
-    context.moveTo(-r, 0);
-    context.lineTo(r, 0);
-    context.moveTo(0, r);
-    context.lineTo(0, -r);
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/square.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/square.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const w = (0, _math.sqrt)(size);
-    const x = -w / 2;
-    context.rect(x, x, w, w);
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/square2.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/square2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size) * 0.4431;
-    context.moveTo(r, r);
-    context.lineTo(r, -r);
-    context.lineTo(-r, -r);
-    context.lineTo(-r, r);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/star.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/star.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,28 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const ka = 0.89081309152928522810;
-const kr = (0, _math.sin)(_math.pi / 10) / (0, _math.sin)(7 * _math.pi / 10);
-const kx = (0, _math.sin)(_math.tau / 10) * kr;
-const ky = -(0, _math.cos)(_math.tau / 10) * kr;
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size * ka);
-    const x = kx * r;
-    const y = ky * r;
-    context.moveTo(0, -r);
-    context.lineTo(x, y);
-    for (let i = 1; i < 5; ++i) {
-      const a = _math.tau * i / 5;
-      const c = (0, _math.cos)(a);
-      const s = (0, _math.sin)(a);
-      context.lineTo(s * r, -c * r);
-      context.lineTo(c * x - s * y, s * x + c * y);
-    }
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/triangle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/triangle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,17 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const sqrt3 = (0, _math.sqrt)(3);
-var _default = exports.default = {
-  draw(context, size) {
-    const y = -(0, _math.sqrt)(size / (sqrt3 * 3));
-    context.moveTo(0, y * 2);
-    context.lineTo(-sqrt3 * y, -y);
-    context.lineTo(sqrt3 * y, -y);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/triangle2.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/triangle2.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,19 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const sqrt3 = (0, _math.sqrt)(3);
-var _default = exports.default = {
-  draw(context, size) {
-    const s = (0, _math.sqrt)(size) * 0.6824;
-    const t = s / 2;
-    const u = s * sqrt3 / 2; // cos(Math.PI / 6)
-    context.moveTo(0, -s);
-    context.lineTo(u, t);
-    context.lineTo(-u, t);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/wye.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/wye.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-const c = -0.5;
-const s = (0, _math.sqrt)(3) / 2;
-const k = 1 / (0, _math.sqrt)(12);
-const a = (k / 2 + 1) * 3;
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size / a);
-    const x0 = r / 2,
-      y0 = r * k;
-    const x1 = x0,
-      y1 = r * k + r;
-    const x2 = -x1,
-      y2 = y1;
-    context.moveTo(x0, y0);
-    context.lineTo(x1, y1);
-    context.lineTo(x2, y2);
-    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
-    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
-    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
-    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
-    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
-    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
-    context.closePath();
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/x.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-shape/src/symbol/x.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _math = require("../math.js");
-var _default = exports.default = {
-  draw(context, size) {
-    const r = (0, _math.sqrt)(size - (0, _math.min)(size / 6, 1.7)) * 0.6189;
-    context.moveTo(-r, -r);
-    context.lineTo(r, r);
-    context.moveTo(-r, r);
-    context.lineTo(r, -r);
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/src/defaultLocale.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/src/defaultLocale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,32 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = defaultLocale;
-exports.utcParse = exports.utcFormat = exports.timeParse = exports.timeFormat = void 0;
-var _locale = _interopRequireDefault(require("./locale.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var locale;
-var timeFormat;
-var timeParse;
-var utcFormat;
-var utcParse;
-defaultLocale({
-  dateTime: "%x, %X",
-  date: "%-m/%-d/%Y",
-  time: "%-I:%M:%S %p",
-  periods: ["AM", "PM"],
-  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-});
-function defaultLocale(definition) {
-  locale = (0, _locale.default)(definition);
-  exports.timeFormat = timeFormat = locale.format;
-  exports.timeParse = timeParse = locale.parse;
-  exports.utcFormat = utcFormat = locale.utcFormat;
-  exports.utcParse = utcParse = locale.utcParse;
-  return locale;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,60 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "isoFormat", {
-  enumerable: true,
-  get: function () {
-    return _isoFormat.default;
-  }
-});
-Object.defineProperty(exports, "isoParse", {
-  enumerable: true,
-  get: function () {
-    return _isoParse.default;
-  }
-});
-Object.defineProperty(exports, "timeFormat", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.timeFormat;
-  }
-});
-Object.defineProperty(exports, "timeFormatDefaultLocale", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.default;
-  }
-});
-Object.defineProperty(exports, "timeFormatLocale", {
-  enumerable: true,
-  get: function () {
-    return _locale.default;
-  }
-});
-Object.defineProperty(exports, "timeParse", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.timeParse;
-  }
-});
-Object.defineProperty(exports, "utcFormat", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.utcFormat;
-  }
-});
-Object.defineProperty(exports, "utcParse", {
-  enumerable: true,
-  get: function () {
-    return _defaultLocale.utcParse;
-  }
-});
-var _defaultLocale = _interopRequireWildcard(require("./defaultLocale.js"));
-var _locale = _interopRequireDefault(require("./locale.js"));
-var _isoFormat = _interopRequireDefault(require("./isoFormat.js"));
-var _isoParse = _interopRequireDefault(require("./isoParse.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/src/isoFormat.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/src/isoFormat.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isoSpecifier = exports.default = void 0;
-var _defaultLocale = require("./defaultLocale.js");
-var isoSpecifier = exports.isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
-function formatIsoNative(date) {
-  return date.toISOString();
-}
-var formatIso = Date.prototype.toISOString ? formatIsoNative : (0, _defaultLocale.utcFormat)(isoSpecifier);
-var _default = exports.default = formatIso;
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/src/isoParse.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/src/isoParse.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,14 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var _isoFormat = require("./isoFormat.js");
-var _defaultLocale = require("./defaultLocale.js");
-function parseIsoNative(string) {
-  var date = new Date(string);
-  return isNaN(date) ? null : date;
-}
-var parseIso = +new Date("2000-01-01T00:00:00.000Z") ? parseIsoNative : (0, _defaultLocale.utcParse)(_isoFormat.isoSpecifier);
-var _default = exports.default = parseIso;
Index: de_modules/victory-vendor/lib-vendor/d3-time-format/src/locale.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time-format/src/locale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,606 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = formatLocale;
-var _index = require("../../../lib-vendor/d3-time/src/index.js");
-function localDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
-    date.setFullYear(d.y);
-    return date;
-  }
-  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
-}
-function utcDate(d) {
-  if (0 <= d.y && d.y < 100) {
-    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
-    date.setUTCFullYear(d.y);
-    return date;
-  }
-  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
-}
-function newDate(y, m, d) {
-  return {
-    y: y,
-    m: m,
-    d: d,
-    H: 0,
-    M: 0,
-    S: 0,
-    L: 0
-  };
-}
-function formatLocale(locale) {
-  var locale_dateTime = locale.dateTime,
-    locale_date = locale.date,
-    locale_time = locale.time,
-    locale_periods = locale.periods,
-    locale_weekdays = locale.days,
-    locale_shortWeekdays = locale.shortDays,
-    locale_months = locale.months,
-    locale_shortMonths = locale.shortMonths;
-  var periodRe = formatRe(locale_periods),
-    periodLookup = formatLookup(locale_periods),
-    weekdayRe = formatRe(locale_weekdays),
-    weekdayLookup = formatLookup(locale_weekdays),
-    shortWeekdayRe = formatRe(locale_shortWeekdays),
-    shortWeekdayLookup = formatLookup(locale_shortWeekdays),
-    monthRe = formatRe(locale_months),
-    monthLookup = formatLookup(locale_months),
-    shortMonthRe = formatRe(locale_shortMonths),
-    shortMonthLookup = formatLookup(locale_shortMonths);
-  var formats = {
-    "a": formatShortWeekday,
-    "A": formatWeekday,
-    "b": formatShortMonth,
-    "B": formatMonth,
-    "c": null,
-    "d": formatDayOfMonth,
-    "e": formatDayOfMonth,
-    "f": formatMicroseconds,
-    "g": formatYearISO,
-    "G": formatFullYearISO,
-    "H": formatHour24,
-    "I": formatHour12,
-    "j": formatDayOfYear,
-    "L": formatMilliseconds,
-    "m": formatMonthNumber,
-    "M": formatMinutes,
-    "p": formatPeriod,
-    "q": formatQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatSeconds,
-    "u": formatWeekdayNumberMonday,
-    "U": formatWeekNumberSunday,
-    "V": formatWeekNumberISO,
-    "w": formatWeekdayNumberSunday,
-    "W": formatWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatYear,
-    "Y": formatFullYear,
-    "Z": formatZone,
-    "%": formatLiteralPercent
-  };
-  var utcFormats = {
-    "a": formatUTCShortWeekday,
-    "A": formatUTCWeekday,
-    "b": formatUTCShortMonth,
-    "B": formatUTCMonth,
-    "c": null,
-    "d": formatUTCDayOfMonth,
-    "e": formatUTCDayOfMonth,
-    "f": formatUTCMicroseconds,
-    "g": formatUTCYearISO,
-    "G": formatUTCFullYearISO,
-    "H": formatUTCHour24,
-    "I": formatUTCHour12,
-    "j": formatUTCDayOfYear,
-    "L": formatUTCMilliseconds,
-    "m": formatUTCMonthNumber,
-    "M": formatUTCMinutes,
-    "p": formatUTCPeriod,
-    "q": formatUTCQuarter,
-    "Q": formatUnixTimestamp,
-    "s": formatUnixTimestampSeconds,
-    "S": formatUTCSeconds,
-    "u": formatUTCWeekdayNumberMonday,
-    "U": formatUTCWeekNumberSunday,
-    "V": formatUTCWeekNumberISO,
-    "w": formatUTCWeekdayNumberSunday,
-    "W": formatUTCWeekNumberMonday,
-    "x": null,
-    "X": null,
-    "y": formatUTCYear,
-    "Y": formatUTCFullYear,
-    "Z": formatUTCZone,
-    "%": formatLiteralPercent
-  };
-  var parses = {
-    "a": parseShortWeekday,
-    "A": parseWeekday,
-    "b": parseShortMonth,
-    "B": parseMonth,
-    "c": parseLocaleDateTime,
-    "d": parseDayOfMonth,
-    "e": parseDayOfMonth,
-    "f": parseMicroseconds,
-    "g": parseYear,
-    "G": parseFullYear,
-    "H": parseHour24,
-    "I": parseHour24,
-    "j": parseDayOfYear,
-    "L": parseMilliseconds,
-    "m": parseMonthNumber,
-    "M": parseMinutes,
-    "p": parsePeriod,
-    "q": parseQuarter,
-    "Q": parseUnixTimestamp,
-    "s": parseUnixTimestampSeconds,
-    "S": parseSeconds,
-    "u": parseWeekdayNumberMonday,
-    "U": parseWeekNumberSunday,
-    "V": parseWeekNumberISO,
-    "w": parseWeekdayNumberSunday,
-    "W": parseWeekNumberMonday,
-    "x": parseLocaleDate,
-    "X": parseLocaleTime,
-    "y": parseYear,
-    "Y": parseFullYear,
-    "Z": parseZone,
-    "%": parseLiteralPercent
-  };
-
-  // These recursive directive definitions must be deferred.
-  formats.x = newFormat(locale_date, formats);
-  formats.X = newFormat(locale_time, formats);
-  formats.c = newFormat(locale_dateTime, formats);
-  utcFormats.x = newFormat(locale_date, utcFormats);
-  utcFormats.X = newFormat(locale_time, utcFormats);
-  utcFormats.c = newFormat(locale_dateTime, utcFormats);
-  function newFormat(specifier, formats) {
-    return function (date) {
-      var string = [],
-        i = -1,
-        j = 0,
-        n = specifier.length,
-        c,
-        pad,
-        format;
-      if (!(date instanceof Date)) date = new Date(+date);
-      while (++i < n) {
-        if (specifier.charCodeAt(i) === 37) {
-          string.push(specifier.slice(j, i));
-          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === "e" ? " " : "0";
-          if (format = formats[c]) c = format(date, pad);
-          string.push(c);
-          j = i + 1;
-        }
-      }
-      string.push(specifier.slice(j, i));
-      return string.join("");
-    };
-  }
-  function newParse(specifier, Z) {
-    return function (string) {
-      var d = newDate(1900, undefined, 1),
-        i = parseSpecifier(d, specifier, string += "", 0),
-        week,
-        day;
-      if (i != string.length) return null;
-
-      // If a UNIX timestamp is specified, return it.
-      if ("Q" in d) return new Date(d.Q);
-      if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
-
-      // If this is utcParse, never use the local timezone.
-      if (Z && !("Z" in d)) d.Z = 0;
-
-      // The am-pm flag is 0 for AM, and 1 for PM.
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-
-      // If the month was not specified, inherit from the quarter.
-      if (d.m === undefined) d.m = "q" in d ? d.q : 0;
-
-      // Convert day-of-week and week-of-year to day-of-year.
-      if ("V" in d) {
-        if (d.V < 1 || d.V > 53) return null;
-        if (!("w" in d)) d.w = 1;
-        if ("Z" in d) {
-          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
-          week = day > 4 || day === 0 ? _index.utcMonday.ceil(week) : (0, _index.utcMonday)(week);
-          week = _index.utcDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getUTCFullYear();
-          d.m = week.getUTCMonth();
-          d.d = week.getUTCDate() + (d.w + 6) % 7;
-        } else {
-          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
-          week = day > 4 || day === 0 ? _index.timeMonday.ceil(week) : (0, _index.timeMonday)(week);
-          week = _index.timeDay.offset(week, (d.V - 1) * 7);
-          d.y = week.getFullYear();
-          d.m = week.getMonth();
-          d.d = week.getDate() + (d.w + 6) % 7;
-        }
-      } else if ("W" in d || "U" in d) {
-        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
-        day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
-        d.m = 0;
-        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
-      }
-
-      // If a time zone is specified, all fields are interpreted as UTC and then
-      // offset according to the specified time zone.
-      if ("Z" in d) {
-        d.H += d.Z / 100 | 0;
-        d.M += d.Z % 100;
-        return utcDate(d);
-      }
-
-      // Otherwise, all fields are in local time.
-      return localDate(d);
-    };
-  }
-  function parseSpecifier(d, specifier, string, j) {
-    var i = 0,
-      n = specifier.length,
-      m = string.length,
-      c,
-      parse;
-    while (i < n) {
-      if (j >= m) return -1;
-      c = specifier.charCodeAt(i++);
-      if (c === 37) {
-        c = specifier.charAt(i++);
-        parse = parses[c in pads ? specifier.charAt(i++) : c];
-        if (!parse || (j = parse(d, string, j)) < 0) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-    return j;
-  }
-  function parsePeriod(d, string, i) {
-    var n = periodRe.exec(string.slice(i));
-    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-  function parseShortWeekday(d, string, i) {
-    var n = shortWeekdayRe.exec(string.slice(i));
-    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-  function parseWeekday(d, string, i) {
-    var n = weekdayRe.exec(string.slice(i));
-    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-  function parseShortMonth(d, string, i) {
-    var n = shortMonthRe.exec(string.slice(i));
-    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-  function parseMonth(d, string, i) {
-    var n = monthRe.exec(string.slice(i));
-    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-  }
-  function parseLocaleDateTime(d, string, i) {
-    return parseSpecifier(d, locale_dateTime, string, i);
-  }
-  function parseLocaleDate(d, string, i) {
-    return parseSpecifier(d, locale_date, string, i);
-  }
-  function parseLocaleTime(d, string, i) {
-    return parseSpecifier(d, locale_time, string, i);
-  }
-  function formatShortWeekday(d) {
-    return locale_shortWeekdays[d.getDay()];
-  }
-  function formatWeekday(d) {
-    return locale_weekdays[d.getDay()];
-  }
-  function formatShortMonth(d) {
-    return locale_shortMonths[d.getMonth()];
-  }
-  function formatMonth(d) {
-    return locale_months[d.getMonth()];
-  }
-  function formatPeriod(d) {
-    return locale_periods[+(d.getHours() >= 12)];
-  }
-  function formatQuarter(d) {
-    return 1 + ~~(d.getMonth() / 3);
-  }
-  function formatUTCShortWeekday(d) {
-    return locale_shortWeekdays[d.getUTCDay()];
-  }
-  function formatUTCWeekday(d) {
-    return locale_weekdays[d.getUTCDay()];
-  }
-  function formatUTCShortMonth(d) {
-    return locale_shortMonths[d.getUTCMonth()];
-  }
-  function formatUTCMonth(d) {
-    return locale_months[d.getUTCMonth()];
-  }
-  function formatUTCPeriod(d) {
-    return locale_periods[+(d.getUTCHours() >= 12)];
-  }
-  function formatUTCQuarter(d) {
-    return 1 + ~~(d.getUTCMonth() / 3);
-  }
-  return {
-    format: function (specifier) {
-      var f = newFormat(specifier += "", formats);
-      f.toString = function () {
-        return specifier;
-      };
-      return f;
-    },
-    parse: function (specifier) {
-      var p = newParse(specifier += "", false);
-      p.toString = function () {
-        return specifier;
-      };
-      return p;
-    },
-    utcFormat: function (specifier) {
-      var f = newFormat(specifier += "", utcFormats);
-      f.toString = function () {
-        return specifier;
-      };
-      return f;
-    },
-    utcParse: function (specifier) {
-      var p = newParse(specifier += "", true);
-      p.toString = function () {
-        return specifier;
-      };
-      return p;
-    }
-  };
-}
-var pads = {
-    "-": "",
-    "_": " ",
-    "0": "0"
-  },
-  numberRe = /^\s*\d+/,
-  // note: ignores next directive
-  percentRe = /^%/,
-  requoteRe = /[\\^$*+?|[\]().{}]/g;
-function pad(value, fill, width) {
-  var sign = value < 0 ? "-" : "",
-    string = (sign ? -value : value) + "",
-    length = string.length;
-  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
-}
-function requote(s) {
-  return s.replace(requoteRe, "\\$&");
-}
-function formatRe(names) {
-  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
-}
-function formatLookup(names) {
-  return new Map(names.map((name, i) => [name.toLowerCase(), i]));
-}
-function parseWeekdayNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.w = +n[0], i + n[0].length) : -1;
-}
-function parseWeekdayNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.u = +n[0], i + n[0].length) : -1;
-}
-function parseWeekNumberSunday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.U = +n[0], i + n[0].length) : -1;
-}
-function parseWeekNumberISO(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.V = +n[0], i + n[0].length) : -1;
-}
-function parseWeekNumberMonday(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.W = +n[0], i + n[0].length) : -1;
-}
-function parseFullYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 4));
-  return n ? (d.y = +n[0], i + n[0].length) : -1;
-}
-function parseYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
-}
-function parseZone(d, string, i) {
-  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
-  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
-}
-function parseQuarter(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 1));
-  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
-}
-function parseMonthNumber(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
-}
-function parseDayOfMonth(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.d = +n[0], i + n[0].length) : -1;
-}
-function parseDayOfYear(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
-}
-function parseHour24(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.H = +n[0], i + n[0].length) : -1;
-}
-function parseMinutes(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.M = +n[0], i + n[0].length) : -1;
-}
-function parseSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 2));
-  return n ? (d.S = +n[0], i + n[0].length) : -1;
-}
-function parseMilliseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 3));
-  return n ? (d.L = +n[0], i + n[0].length) : -1;
-}
-function parseMicroseconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i, i + 6));
-  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
-}
-function parseLiteralPercent(d, string, i) {
-  var n = percentRe.exec(string.slice(i, i + 1));
-  return n ? i + n[0].length : -1;
-}
-function parseUnixTimestamp(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.Q = +n[0], i + n[0].length) : -1;
-}
-function parseUnixTimestampSeconds(d, string, i) {
-  var n = numberRe.exec(string.slice(i));
-  return n ? (d.s = +n[0], i + n[0].length) : -1;
-}
-function formatDayOfMonth(d, p) {
-  return pad(d.getDate(), p, 2);
-}
-function formatHour24(d, p) {
-  return pad(d.getHours(), p, 2);
-}
-function formatHour12(d, p) {
-  return pad(d.getHours() % 12 || 12, p, 2);
-}
-function formatDayOfYear(d, p) {
-  return pad(1 + _index.timeDay.count((0, _index.timeYear)(d), d), p, 3);
-}
-function formatMilliseconds(d, p) {
-  return pad(d.getMilliseconds(), p, 3);
-}
-function formatMicroseconds(d, p) {
-  return formatMilliseconds(d, p) + "000";
-}
-function formatMonthNumber(d, p) {
-  return pad(d.getMonth() + 1, p, 2);
-}
-function formatMinutes(d, p) {
-  return pad(d.getMinutes(), p, 2);
-}
-function formatSeconds(d, p) {
-  return pad(d.getSeconds(), p, 2);
-}
-function formatWeekdayNumberMonday(d) {
-  var day = d.getDay();
-  return day === 0 ? 7 : day;
-}
-function formatWeekNumberSunday(d, p) {
-  return pad(_index.timeSunday.count((0, _index.timeYear)(d) - 1, d), p, 2);
-}
-function dISO(d) {
-  var day = d.getDay();
-  return day >= 4 || day === 0 ? (0, _index.timeThursday)(d) : _index.timeThursday.ceil(d);
-}
-function formatWeekNumberISO(d, p) {
-  d = dISO(d);
-  return pad(_index.timeThursday.count((0, _index.timeYear)(d), d) + ((0, _index.timeYear)(d).getDay() === 4), p, 2);
-}
-function formatWeekdayNumberSunday(d) {
-  return d.getDay();
-}
-function formatWeekNumberMonday(d, p) {
-  return pad(_index.timeMonday.count((0, _index.timeYear)(d) - 1, d), p, 2);
-}
-function formatYear(d, p) {
-  return pad(d.getFullYear() % 100, p, 2);
-}
-function formatYearISO(d, p) {
-  d = dISO(d);
-  return pad(d.getFullYear() % 100, p, 2);
-}
-function formatFullYear(d, p) {
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-function formatFullYearISO(d, p) {
-  var day = d.getDay();
-  d = day >= 4 || day === 0 ? (0, _index.timeThursday)(d) : _index.timeThursday.ceil(d);
-  return pad(d.getFullYear() % 10000, p, 4);
-}
-function formatZone(d) {
-  var z = d.getTimezoneOffset();
-  return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2);
-}
-function formatUTCDayOfMonth(d, p) {
-  return pad(d.getUTCDate(), p, 2);
-}
-function formatUTCHour24(d, p) {
-  return pad(d.getUTCHours(), p, 2);
-}
-function formatUTCHour12(d, p) {
-  return pad(d.getUTCHours() % 12 || 12, p, 2);
-}
-function formatUTCDayOfYear(d, p) {
-  return pad(1 + _index.utcDay.count((0, _index.utcYear)(d), d), p, 3);
-}
-function formatUTCMilliseconds(d, p) {
-  return pad(d.getUTCMilliseconds(), p, 3);
-}
-function formatUTCMicroseconds(d, p) {
-  return formatUTCMilliseconds(d, p) + "000";
-}
-function formatUTCMonthNumber(d, p) {
-  return pad(d.getUTCMonth() + 1, p, 2);
-}
-function formatUTCMinutes(d, p) {
-  return pad(d.getUTCMinutes(), p, 2);
-}
-function formatUTCSeconds(d, p) {
-  return pad(d.getUTCSeconds(), p, 2);
-}
-function formatUTCWeekdayNumberMonday(d) {
-  var dow = d.getUTCDay();
-  return dow === 0 ? 7 : dow;
-}
-function formatUTCWeekNumberSunday(d, p) {
-  return pad(_index.utcSunday.count((0, _index.utcYear)(d) - 1, d), p, 2);
-}
-function UTCdISO(d) {
-  var day = d.getUTCDay();
-  return day >= 4 || day === 0 ? (0, _index.utcThursday)(d) : _index.utcThursday.ceil(d);
-}
-function formatUTCWeekNumberISO(d, p) {
-  d = UTCdISO(d);
-  return pad(_index.utcThursday.count((0, _index.utcYear)(d), d) + ((0, _index.utcYear)(d).getUTCDay() === 4), p, 2);
-}
-function formatUTCWeekdayNumberSunday(d) {
-  return d.getUTCDay();
-}
-function formatUTCWeekNumberMonday(d, p) {
-  return pad(_index.utcMonday.count((0, _index.utcYear)(d) - 1, d), p, 2);
-}
-function formatUTCYear(d, p) {
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-function formatUTCYearISO(d, p) {
-  d = UTCdISO(d);
-  return pad(d.getUTCFullYear() % 100, p, 2);
-}
-function formatUTCFullYear(d, p) {
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-function formatUTCFullYearISO(d, p) {
-  var day = d.getUTCDay();
-  d = day >= 4 || day === 0 ? (0, _index.utcThursday)(d) : _index.utcThursday.ceil(d);
-  return pad(d.getUTCFullYear() % 10000, p, 4);
-}
-function formatUTCZone() {
-  return "+0000";
-}
-function formatLiteralPercent() {
-  return "%";
-}
-function formatUnixTimestamp(d) {
-  return +d;
-}
-function formatUnixTimestampSeconds(d) {
-  return Math.floor(+d / 1000);
-}
Index: de_modules/victory-vendor/lib-vendor/d3-time/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/day.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/day.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = exports.days = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var day = (0, _interval.default)(date => date.setHours(0, 0, 0, 0), (date, step) => date.setDate(date.getDate() + step), (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration.durationMinute) / _duration.durationDay, date => date.getDate() - 1);
-var _default = exports.default = day;
-var days = exports.days = day.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/duration.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/duration.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.durationYear = exports.durationWeek = exports.durationSecond = exports.durationMonth = exports.durationMinute = exports.durationHour = exports.durationDay = void 0;
-const durationSecond = exports.durationSecond = 1000;
-const durationMinute = exports.durationMinute = durationSecond * 60;
-const durationHour = exports.durationHour = durationMinute * 60;
-const durationDay = exports.durationDay = durationHour * 24;
-const durationWeek = exports.durationWeek = durationDay * 7;
-const durationMonth = exports.durationMonth = durationDay * 30;
-const durationYear = exports.durationYear = durationDay * 365;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/hour.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/hour.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.hours = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var hour = (0, _interval.default)(function (date) {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration.durationSecond - date.getMinutes() * _duration.durationMinute);
-}, function (date, step) {
-  date.setTime(+date + step * _duration.durationHour);
-}, function (start, end) {
-  return (end - start) / _duration.durationHour;
-}, function (date) {
-  return date.getHours();
-});
-var _default = exports.default = hour;
-var hours = exports.hours = hour.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,414 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "timeDay", {
-  enumerable: true,
-  get: function () {
-    return _day.default;
-  }
-});
-Object.defineProperty(exports, "timeDays", {
-  enumerable: true,
-  get: function () {
-    return _day.days;
-  }
-});
-Object.defineProperty(exports, "timeFriday", {
-  enumerable: true,
-  get: function () {
-    return _week.friday;
-  }
-});
-Object.defineProperty(exports, "timeFridays", {
-  enumerable: true,
-  get: function () {
-    return _week.fridays;
-  }
-});
-Object.defineProperty(exports, "timeHour", {
-  enumerable: true,
-  get: function () {
-    return _hour.default;
-  }
-});
-Object.defineProperty(exports, "timeHours", {
-  enumerable: true,
-  get: function () {
-    return _hour.hours;
-  }
-});
-Object.defineProperty(exports, "timeInterval", {
-  enumerable: true,
-  get: function () {
-    return _interval.default;
-  }
-});
-Object.defineProperty(exports, "timeMillisecond", {
-  enumerable: true,
-  get: function () {
-    return _millisecond.default;
-  }
-});
-Object.defineProperty(exports, "timeMilliseconds", {
-  enumerable: true,
-  get: function () {
-    return _millisecond.milliseconds;
-  }
-});
-Object.defineProperty(exports, "timeMinute", {
-  enumerable: true,
-  get: function () {
-    return _minute.default;
-  }
-});
-Object.defineProperty(exports, "timeMinutes", {
-  enumerable: true,
-  get: function () {
-    return _minute.minutes;
-  }
-});
-Object.defineProperty(exports, "timeMonday", {
-  enumerable: true,
-  get: function () {
-    return _week.monday;
-  }
-});
-Object.defineProperty(exports, "timeMondays", {
-  enumerable: true,
-  get: function () {
-    return _week.mondays;
-  }
-});
-Object.defineProperty(exports, "timeMonth", {
-  enumerable: true,
-  get: function () {
-    return _month.default;
-  }
-});
-Object.defineProperty(exports, "timeMonths", {
-  enumerable: true,
-  get: function () {
-    return _month.months;
-  }
-});
-Object.defineProperty(exports, "timeSaturday", {
-  enumerable: true,
-  get: function () {
-    return _week.saturday;
-  }
-});
-Object.defineProperty(exports, "timeSaturdays", {
-  enumerable: true,
-  get: function () {
-    return _week.saturdays;
-  }
-});
-Object.defineProperty(exports, "timeSecond", {
-  enumerable: true,
-  get: function () {
-    return _second.default;
-  }
-});
-Object.defineProperty(exports, "timeSeconds", {
-  enumerable: true,
-  get: function () {
-    return _second.seconds;
-  }
-});
-Object.defineProperty(exports, "timeSunday", {
-  enumerable: true,
-  get: function () {
-    return _week.sunday;
-  }
-});
-Object.defineProperty(exports, "timeSundays", {
-  enumerable: true,
-  get: function () {
-    return _week.sundays;
-  }
-});
-Object.defineProperty(exports, "timeThursday", {
-  enumerable: true,
-  get: function () {
-    return _week.thursday;
-  }
-});
-Object.defineProperty(exports, "timeThursdays", {
-  enumerable: true,
-  get: function () {
-    return _week.thursdays;
-  }
-});
-Object.defineProperty(exports, "timeTickInterval", {
-  enumerable: true,
-  get: function () {
-    return _ticks.timeTickInterval;
-  }
-});
-Object.defineProperty(exports, "timeTicks", {
-  enumerable: true,
-  get: function () {
-    return _ticks.timeTicks;
-  }
-});
-Object.defineProperty(exports, "timeTuesday", {
-  enumerable: true,
-  get: function () {
-    return _week.tuesday;
-  }
-});
-Object.defineProperty(exports, "timeTuesdays", {
-  enumerable: true,
-  get: function () {
-    return _week.tuesdays;
-  }
-});
-Object.defineProperty(exports, "timeWednesday", {
-  enumerable: true,
-  get: function () {
-    return _week.wednesday;
-  }
-});
-Object.defineProperty(exports, "timeWednesdays", {
-  enumerable: true,
-  get: function () {
-    return _week.wednesdays;
-  }
-});
-Object.defineProperty(exports, "timeWeek", {
-  enumerable: true,
-  get: function () {
-    return _week.sunday;
-  }
-});
-Object.defineProperty(exports, "timeWeeks", {
-  enumerable: true,
-  get: function () {
-    return _week.sundays;
-  }
-});
-Object.defineProperty(exports, "timeYear", {
-  enumerable: true,
-  get: function () {
-    return _year.default;
-  }
-});
-Object.defineProperty(exports, "timeYears", {
-  enumerable: true,
-  get: function () {
-    return _year.years;
-  }
-});
-Object.defineProperty(exports, "utcDay", {
-  enumerable: true,
-  get: function () {
-    return _utcDay.default;
-  }
-});
-Object.defineProperty(exports, "utcDays", {
-  enumerable: true,
-  get: function () {
-    return _utcDay.utcDays;
-  }
-});
-Object.defineProperty(exports, "utcFriday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcFriday;
-  }
-});
-Object.defineProperty(exports, "utcFridays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcFridays;
-  }
-});
-Object.defineProperty(exports, "utcHour", {
-  enumerable: true,
-  get: function () {
-    return _utcHour.default;
-  }
-});
-Object.defineProperty(exports, "utcHours", {
-  enumerable: true,
-  get: function () {
-    return _utcHour.utcHours;
-  }
-});
-Object.defineProperty(exports, "utcMillisecond", {
-  enumerable: true,
-  get: function () {
-    return _millisecond.default;
-  }
-});
-Object.defineProperty(exports, "utcMilliseconds", {
-  enumerable: true,
-  get: function () {
-    return _millisecond.milliseconds;
-  }
-});
-Object.defineProperty(exports, "utcMinute", {
-  enumerable: true,
-  get: function () {
-    return _utcMinute.default;
-  }
-});
-Object.defineProperty(exports, "utcMinutes", {
-  enumerable: true,
-  get: function () {
-    return _utcMinute.utcMinutes;
-  }
-});
-Object.defineProperty(exports, "utcMonday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcMonday;
-  }
-});
-Object.defineProperty(exports, "utcMondays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcMondays;
-  }
-});
-Object.defineProperty(exports, "utcMonth", {
-  enumerable: true,
-  get: function () {
-    return _utcMonth.default;
-  }
-});
-Object.defineProperty(exports, "utcMonths", {
-  enumerable: true,
-  get: function () {
-    return _utcMonth.utcMonths;
-  }
-});
-Object.defineProperty(exports, "utcSaturday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSaturday;
-  }
-});
-Object.defineProperty(exports, "utcSaturdays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSaturdays;
-  }
-});
-Object.defineProperty(exports, "utcSecond", {
-  enumerable: true,
-  get: function () {
-    return _second.default;
-  }
-});
-Object.defineProperty(exports, "utcSeconds", {
-  enumerable: true,
-  get: function () {
-    return _second.seconds;
-  }
-});
-Object.defineProperty(exports, "utcSunday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSunday;
-  }
-});
-Object.defineProperty(exports, "utcSundays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSundays;
-  }
-});
-Object.defineProperty(exports, "utcThursday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcThursday;
-  }
-});
-Object.defineProperty(exports, "utcThursdays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcThursdays;
-  }
-});
-Object.defineProperty(exports, "utcTickInterval", {
-  enumerable: true,
-  get: function () {
-    return _ticks.utcTickInterval;
-  }
-});
-Object.defineProperty(exports, "utcTicks", {
-  enumerable: true,
-  get: function () {
-    return _ticks.utcTicks;
-  }
-});
-Object.defineProperty(exports, "utcTuesday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcTuesday;
-  }
-});
-Object.defineProperty(exports, "utcTuesdays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcTuesdays;
-  }
-});
-Object.defineProperty(exports, "utcWednesday", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcWednesday;
-  }
-});
-Object.defineProperty(exports, "utcWednesdays", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcWednesdays;
-  }
-});
-Object.defineProperty(exports, "utcWeek", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSunday;
-  }
-});
-Object.defineProperty(exports, "utcWeeks", {
-  enumerable: true,
-  get: function () {
-    return _utcWeek.utcSundays;
-  }
-});
-Object.defineProperty(exports, "utcYear", {
-  enumerable: true,
-  get: function () {
-    return _utcYear.default;
-  }
-});
-Object.defineProperty(exports, "utcYears", {
-  enumerable: true,
-  get: function () {
-    return _utcYear.utcYears;
-  }
-});
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _millisecond = _interopRequireWildcard(require("./millisecond.js"));
-var _second = _interopRequireWildcard(require("./second.js"));
-var _minute = _interopRequireWildcard(require("./minute.js"));
-var _hour = _interopRequireWildcard(require("./hour.js"));
-var _day = _interopRequireWildcard(require("./day.js"));
-var _week = require("./week.js");
-var _month = _interopRequireWildcard(require("./month.js"));
-var _year = _interopRequireWildcard(require("./year.js"));
-var _utcMinute = _interopRequireWildcard(require("./utcMinute.js"));
-var _utcHour = _interopRequireWildcard(require("./utcHour.js"));
-var _utcDay = _interopRequireWildcard(require("./utcDay.js"));
-var _utcWeek = require("./utcWeek.js");
-var _utcMonth = _interopRequireWildcard(require("./utcMonth.js"));
-var _utcYear = _interopRequireWildcard(require("./utcYear.js"));
-var _ticks = require("./ticks.js");
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/interval.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/interval.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,65 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = newInterval;
-var t0 = new Date(),
-  t1 = new Date();
-function newInterval(floori, offseti, count, field) {
-  function interval(date) {
-    return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;
-  }
-  interval.floor = function (date) {
-    return floori(date = new Date(+date)), date;
-  };
-  interval.ceil = function (date) {
-    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
-  };
-  interval.round = function (date) {
-    var d0 = interval(date),
-      d1 = interval.ceil(date);
-    return date - d0 < d1 - date ? d0 : d1;
-  };
-  interval.offset = function (date, step) {
-    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
-  };
-  interval.range = function (start, stop, step) {
-    var range = [],
-      previous;
-    start = interval.ceil(start);
-    step = step == null ? 1 : Math.floor(step);
-    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
-    do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);
-    return range;
-  };
-  interval.filter = function (test) {
-    return newInterval(function (date) {
-      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
-    }, function (date, step) {
-      if (date >= date) {
-        if (step < 0) while (++step <= 0) {
-          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
-        } else while (--step >= 0) {
-          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
-        }
-      }
-    });
-  };
-  if (count) {
-    interval.count = function (start, end) {
-      t0.setTime(+start), t1.setTime(+end);
-      floori(t0), floori(t1);
-      return Math.floor(count(t0, t1));
-    };
-    interval.every = function (step) {
-      step = Math.floor(step);
-      return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {
-        return field(d) % step === 0;
-      } : function (d) {
-        return interval.count(0, d) % step === 0;
-      });
-    };
-  }
-  return interval;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/millisecond.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/millisecond.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.milliseconds = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var millisecond = (0, _interval.default)(function () {
-  // noop
-}, function (date, step) {
-  date.setTime(+date + step);
-}, function (start, end) {
-  return end - start;
-});
-
-// An optimized implementation for this simple case.
-millisecond.every = function (k) {
-  k = Math.floor(k);
-  if (!isFinite(k) || !(k > 0)) return null;
-  if (!(k > 1)) return millisecond;
-  return (0, _interval.default)(function (date) {
-    date.setTime(Math.floor(date / k) * k);
-  }, function (date, step) {
-    date.setTime(+date + step * k);
-  }, function (start, end) {
-    return (end - start) / k;
-  });
-};
-var _default = exports.default = millisecond;
-var milliseconds = exports.milliseconds = millisecond.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/minute.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/minute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.minutes = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var minute = (0, _interval.default)(function (date) {
-  date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration.durationSecond);
-}, function (date, step) {
-  date.setTime(+date + step * _duration.durationMinute);
-}, function (start, end) {
-  return (end - start) / _duration.durationMinute;
-}, function (date) {
-  return date.getMinutes();
-});
-var _default = exports.default = minute;
-var minutes = exports.minutes = minute.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/month.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/month.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.months = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var month = (0, _interval.default)(function (date) {
-  date.setDate(1);
-  date.setHours(0, 0, 0, 0);
-}, function (date, step) {
-  date.setMonth(date.getMonth() + step);
-}, function (start, end) {
-  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
-}, function (date) {
-  return date.getMonth();
-});
-var _default = exports.default = month;
-var months = exports.months = month.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/second.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/second.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.seconds = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var second = (0, _interval.default)(function (date) {
-  date.setTime(date - date.getMilliseconds());
-}, function (date, step) {
-  date.setTime(+date + step * _duration.durationSecond);
-}, function (start, end) {
-  return (end - start) / _duration.durationSecond;
-}, function (date) {
-  return date.getUTCSeconds();
-});
-var _default = exports.default = second;
-var seconds = exports.seconds = second.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/ticks.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/ticks.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,48 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcTicks = exports.utcTickInterval = exports.timeTicks = exports.timeTickInterval = void 0;
-var _index = require("../../../lib-vendor/d3-array/src/index.js");
-var _duration = require("./duration.js");
-var _millisecond = _interopRequireDefault(require("./millisecond.js"));
-var _second = _interopRequireDefault(require("./second.js"));
-var _minute = _interopRequireDefault(require("./minute.js"));
-var _hour = _interopRequireDefault(require("./hour.js"));
-var _day = _interopRequireDefault(require("./day.js"));
-var _week = require("./week.js");
-var _month = _interopRequireDefault(require("./month.js"));
-var _year = _interopRequireDefault(require("./year.js"));
-var _utcMinute = _interopRequireDefault(require("./utcMinute.js"));
-var _utcHour = _interopRequireDefault(require("./utcHour.js"));
-var _utcDay = _interopRequireDefault(require("./utcDay.js"));
-var _utcWeek = require("./utcWeek.js");
-var _utcMonth = _interopRequireDefault(require("./utcMonth.js"));
-var _utcYear = _interopRequireDefault(require("./utcYear.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function ticker(year, month, week, day, hour, minute) {
-  const tickIntervals = [[_second.default, 1, _duration.durationSecond], [_second.default, 5, 5 * _duration.durationSecond], [_second.default, 15, 15 * _duration.durationSecond], [_second.default, 30, 30 * _duration.durationSecond], [minute, 1, _duration.durationMinute], [minute, 5, 5 * _duration.durationMinute], [minute, 15, 15 * _duration.durationMinute], [minute, 30, 30 * _duration.durationMinute], [hour, 1, _duration.durationHour], [hour, 3, 3 * _duration.durationHour], [hour, 6, 6 * _duration.durationHour], [hour, 12, 12 * _duration.durationHour], [day, 1, _duration.durationDay], [day, 2, 2 * _duration.durationDay], [week, 1, _duration.durationWeek], [month, 1, _duration.durationMonth], [month, 3, 3 * _duration.durationMonth], [year, 1, _duration.durationYear]];
-  function ticks(start, stop, count) {
-    const reverse = stop < start;
-    if (reverse) [start, stop] = [stop, start];
-    const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
-    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
-    return reverse ? ticks.reverse() : ticks;
-  }
-  function tickInterval(start, stop, count) {
-    const target = Math.abs(stop - start) / count;
-    const i = (0, _index.bisector)(([,, step]) => step).right(tickIntervals, target);
-    if (i === tickIntervals.length) return year.every((0, _index.tickStep)(start / _duration.durationYear, stop / _duration.durationYear, count));
-    if (i === 0) return _millisecond.default.every(Math.max((0, _index.tickStep)(start, stop, count), 1));
-    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
-    return t.every(step);
-  }
-  return [ticks, tickInterval];
-}
-const [utcTicks, utcTickInterval] = ticker(_utcYear.default, _utcMonth.default, _utcWeek.utcSunday, _utcDay.default, _utcHour.default, _utcMinute.default);
-exports.utcTickInterval = utcTickInterval;
-exports.utcTicks = utcTicks;
-const [timeTicks, timeTickInterval] = ticker(_year.default, _month.default, _week.sunday, _day.default, _hour.default, _minute.default);
-exports.timeTickInterval = timeTickInterval;
-exports.timeTicks = timeTicks;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcDay.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcDay.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcDays = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var utcDay = (0, _interval.default)(function (date) {
-  date.setUTCHours(0, 0, 0, 0);
-}, function (date, step) {
-  date.setUTCDate(date.getUTCDate() + step);
-}, function (start, end) {
-  return (end - start) / _duration.durationDay;
-}, function (date) {
-  return date.getUTCDate() - 1;
-});
-var _default = exports.default = utcDay;
-var utcDays = exports.utcDays = utcDay.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcHour.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcHour.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcHours = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var utcHour = (0, _interval.default)(function (date) {
-  date.setUTCMinutes(0, 0, 0);
-}, function (date, step) {
-  date.setTime(+date + step * _duration.durationHour);
-}, function (start, end) {
-  return (end - start) / _duration.durationHour;
-}, function (date) {
-  return date.getUTCHours();
-});
-var _default = exports.default = utcHour;
-var utcHours = exports.utcHours = utcHour.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcMinute.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcMinute.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcMinutes = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var utcMinute = (0, _interval.default)(function (date) {
-  date.setUTCSeconds(0, 0);
-}, function (date, step) {
-  date.setTime(+date + step * _duration.durationMinute);
-}, function (start, end) {
-  return (end - start) / _duration.durationMinute;
-}, function (date) {
-  return date.getUTCMinutes();
-});
-var _default = exports.default = utcMinute;
-var utcMinutes = exports.utcMinutes = utcMinute.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcMonth.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcMonth.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,20 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcMonths = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var utcMonth = (0, _interval.default)(function (date) {
-  date.setUTCDate(1);
-  date.setUTCHours(0, 0, 0, 0);
-}, function (date, step) {
-  date.setUTCMonth(date.getUTCMonth() + step);
-}, function (start, end) {
-  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
-}, function (date) {
-  return date.getUTCMonth();
-});
-var _default = exports.default = utcMonth;
-var utcMonths = exports.utcMonths = utcMonth.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcWeek.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcWeek.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcWednesdays = exports.utcWednesday = exports.utcTuesdays = exports.utcTuesday = exports.utcThursdays = exports.utcThursday = exports.utcSundays = exports.utcSunday = exports.utcSaturdays = exports.utcSaturday = exports.utcMondays = exports.utcMonday = exports.utcFridays = exports.utcFriday = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function utcWeekday(i) {
-  return (0, _interval.default)(function (date) {
-    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
-    date.setUTCHours(0, 0, 0, 0);
-  }, function (date, step) {
-    date.setUTCDate(date.getUTCDate() + step * 7);
-  }, function (start, end) {
-    return (end - start) / _duration.durationWeek;
-  });
-}
-var utcSunday = exports.utcSunday = utcWeekday(0);
-var utcMonday = exports.utcMonday = utcWeekday(1);
-var utcTuesday = exports.utcTuesday = utcWeekday(2);
-var utcWednesday = exports.utcWednesday = utcWeekday(3);
-var utcThursday = exports.utcThursday = utcWeekday(4);
-var utcFriday = exports.utcFriday = utcWeekday(5);
-var utcSaturday = exports.utcSaturday = utcWeekday(6);
-var utcSundays = exports.utcSundays = utcSunday.range;
-var utcMondays = exports.utcMondays = utcMonday.range;
-var utcTuesdays = exports.utcTuesdays = utcTuesday.range;
-var utcWednesdays = exports.utcWednesdays = utcWednesday.range;
-var utcThursdays = exports.utcThursdays = utcThursday.range;
-var utcFridays = exports.utcFridays = utcFriday.range;
-var utcSaturdays = exports.utcSaturdays = utcSaturday.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/utcYear.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/utcYear.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.utcYears = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var utcYear = (0, _interval.default)(function (date) {
-  date.setUTCMonth(0, 1);
-  date.setUTCHours(0, 0, 0, 0);
-}, function (date, step) {
-  date.setUTCFullYear(date.getUTCFullYear() + step);
-}, function (start, end) {
-  return end.getUTCFullYear() - start.getUTCFullYear();
-}, function (date) {
-  return date.getUTCFullYear();
-});
-
-// An optimized implementation for this simple case.
-utcYear.every = function (k) {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : (0, _interval.default)(function (date) {
-    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
-    date.setUTCMonth(0, 1);
-    date.setUTCHours(0, 0, 0, 0);
-  }, function (date, step) {
-    date.setUTCFullYear(date.getUTCFullYear() + step * k);
-  });
-};
-var _default = exports.default = utcYear;
-var utcYears = exports.utcYears = utcYear.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/week.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/week.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,33 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.wednesdays = exports.wednesday = exports.tuesdays = exports.tuesday = exports.thursdays = exports.thursday = exports.sundays = exports.sunday = exports.saturdays = exports.saturday = exports.mondays = exports.monday = exports.fridays = exports.friday = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-var _duration = require("./duration.js");
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function weekday(i) {
-  return (0, _interval.default)(function (date) {
-    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
-    date.setHours(0, 0, 0, 0);
-  }, function (date, step) {
-    date.setDate(date.getDate() + step * 7);
-  }, function (start, end) {
-    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration.durationMinute) / _duration.durationWeek;
-  });
-}
-var sunday = exports.sunday = weekday(0);
-var monday = exports.monday = weekday(1);
-var tuesday = exports.tuesday = weekday(2);
-var wednesday = exports.wednesday = weekday(3);
-var thursday = exports.thursday = weekday(4);
-var friday = exports.friday = weekday(5);
-var saturday = exports.saturday = weekday(6);
-var sundays = exports.sundays = sunday.range;
-var mondays = exports.mondays = monday.range;
-var tuesdays = exports.tuesdays = tuesday.range;
-var wednesdays = exports.wednesdays = wednesday.range;
-var thursdays = exports.thursdays = thursday.range;
-var fridays = exports.fridays = friday.range;
-var saturdays = exports.saturdays = saturday.range;
Index: de_modules/victory-vendor/lib-vendor/d3-time/src/year.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-time/src/year.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,31 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.years = exports.default = void 0;
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var year = (0, _interval.default)(function (date) {
-  date.setMonth(0, 1);
-  date.setHours(0, 0, 0, 0);
-}, function (date, step) {
-  date.setFullYear(date.getFullYear() + step);
-}, function (start, end) {
-  return end.getFullYear() - start.getFullYear();
-}, function (date) {
-  return date.getFullYear();
-});
-
-// An optimized implementation for this simple case.
-year.every = function (k) {
-  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : (0, _interval.default)(function (date) {
-    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
-    date.setMonth(0, 1);
-    date.setHours(0, 0, 0, 0);
-  }, function (date, step) {
-    date.setFullYear(date.getFullYear() + step * k);
-  });
-};
-var _default = exports.default = year;
-var years = exports.years = year.range;
Index: de_modules/victory-vendor/lib-vendor/d3-timer/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-timer/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2010-2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-timer/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-timer/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,39 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "interval", {
-  enumerable: true,
-  get: function () {
-    return _interval.default;
-  }
-});
-Object.defineProperty(exports, "now", {
-  enumerable: true,
-  get: function () {
-    return _timer.now;
-  }
-});
-Object.defineProperty(exports, "timeout", {
-  enumerable: true,
-  get: function () {
-    return _timeout.default;
-  }
-});
-Object.defineProperty(exports, "timer", {
-  enumerable: true,
-  get: function () {
-    return _timer.timer;
-  }
-});
-Object.defineProperty(exports, "timerFlush", {
-  enumerable: true,
-  get: function () {
-    return _timer.timerFlush;
-  }
-});
-var _timer = require("./timer.js");
-var _timeout = _interopRequireDefault(require("./timeout.js"));
-var _interval = _interopRequireDefault(require("./interval.js"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-timer/src/interval.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-timer/src/interval.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,23 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _timer = require("./timer.js");
-function _default(callback, delay, time) {
-  var t = new _timer.Timer(),
-    total = delay;
-  if (delay == null) return t.restart(callback, delay, time), t;
-  t._restart = t.restart;
-  t.restart = function (callback, delay, time) {
-    delay = +delay, time = time == null ? (0, _timer.now)() : +time;
-    t._restart(function tick(elapsed) {
-      elapsed += total;
-      t._restart(tick, total += delay, time);
-      callback(elapsed);
-    }, delay, time);
-  };
-  t.restart(callback, delay, time);
-  return t;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-timer/src/timeout.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-timer/src/timeout.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,16 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _timer = require("./timer.js");
-function _default(callback, delay, time) {
-  var t = new _timer.Timer();
-  delay = delay == null ? 0 : +delay;
-  t.restart(elapsed => {
-    t.stop();
-    callback(elapsed + delay);
-  }, delay, time);
-  return t;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-timer/src/timer.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-timer/src/timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,117 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Timer = Timer;
-exports.now = now;
-exports.timer = timer;
-exports.timerFlush = timerFlush;
-var frame = 0,
-  // is an animation frame pending?
-  timeout = 0,
-  // is a timeout pending?
-  interval = 0,
-  // are any timers active?
-  pokeDelay = 1000,
-  // how frequently we check for clock skew
-  taskHead,
-  taskTail,
-  clockLast = 0,
-  clockNow = 0,
-  clockSkew = 0,
-  clock = typeof performance === "object" && performance.now ? performance : Date,
-  setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {
-    setTimeout(f, 17);
-  };
-function now() {
-  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
-}
-function clearNow() {
-  clockNow = 0;
-}
-function Timer() {
-  this._call = this._time = this._next = null;
-}
-Timer.prototype = timer.prototype = {
-  constructor: Timer,
-  restart: function (callback, delay, time) {
-    if (typeof callback !== "function") throw new TypeError("callback is not a function");
-    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
-    if (!this._next && taskTail !== this) {
-      if (taskTail) taskTail._next = this;else taskHead = this;
-      taskTail = this;
-    }
-    this._call = callback;
-    this._time = time;
-    sleep();
-  },
-  stop: function () {
-    if (this._call) {
-      this._call = null;
-      this._time = Infinity;
-      sleep();
-    }
-  }
-};
-function timer(callback, delay, time) {
-  var t = new Timer();
-  t.restart(callback, delay, time);
-  return t;
-}
-function timerFlush() {
-  now(); // Get the current time, if not already set.
-  ++frame; // Pretend we’ve set an alarm, if we haven’t already.
-  var t = taskHead,
-    e;
-  while (t) {
-    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
-    t = t._next;
-  }
-  --frame;
-}
-function wake() {
-  clockNow = (clockLast = clock.now()) + clockSkew;
-  frame = timeout = 0;
-  try {
-    timerFlush();
-  } finally {
-    frame = 0;
-    nap();
-    clockNow = 0;
-  }
-}
-function poke() {
-  var now = clock.now(),
-    delay = now - clockLast;
-  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-function nap() {
-  var t0,
-    t1 = taskHead,
-    t2,
-    time = Infinity;
-  while (t1) {
-    if (t1._call) {
-      if (time > t1._time) time = t1._time;
-      t0 = t1, t1 = t1._next;
-    } else {
-      t2 = t1._next, t1._next = null;
-      t1 = t0 ? t0._next = t2 : taskHead = t2;
-    }
-  }
-  taskTail = t0;
-  sleep(time);
-}
-function sleep(time) {
-  if (frame) return; // Soonest alarm already set, or will be.
-  if (timeout) timeout = clearTimeout(timeout);
-  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
-  if (delay > 24) {
-    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
-    if (interval) interval = clearInterval(interval);
-  } else {
-    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
-    frame = 1, setFrame(wake);
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,50 +1,0 @@
-Copyright 2010-2016 Mike Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author nor the names of contributors may be used to
-  endorse or promote products derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Copyright (C) 2010-2013 Raymond Hill
-https://github.com/gorhill/Javascript-Voronoi
-
-Licensed under The MIT License
-http://en.wikipedia.org/wiki/MIT_License
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/Beach.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/Beach.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,165 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.addBeach = addBeach;
-exports.removeBeach = removeBeach;
-var _RedBlackTree = require("./RedBlackTree");
-var _Cell = require("./Cell");
-var _Circle = require("./Circle");
-var _Edge = require("./Edge");
-var _Diagram = require("./Diagram");
-var beachPool = [];
-function Beach() {
-  (0, _RedBlackTree.RedBlackNode)(this);
-  this.edge = this.site = this.circle = null;
-}
-function createBeach(site) {
-  var beach = beachPool.pop() || new Beach();
-  beach.site = site;
-  return beach;
-}
-function detachBeach(beach) {
-  (0, _Circle.detachCircle)(beach);
-  _Diagram.beaches.remove(beach);
-  beachPool.push(beach);
-  (0, _RedBlackTree.RedBlackNode)(beach);
-}
-function removeBeach(beach) {
-  var circle = beach.circle,
-    x = circle.x,
-    y = circle.cy,
-    vertex = [x, y],
-    previous = beach.P,
-    next = beach.N,
-    disappearing = [beach];
-  detachBeach(beach);
-  var lArc = previous;
-  while (lArc.circle && Math.abs(x - lArc.circle.x) < _Diagram.epsilon && Math.abs(y - lArc.circle.cy) < _Diagram.epsilon) {
-    previous = lArc.P;
-    disappearing.unshift(lArc);
-    detachBeach(lArc);
-    lArc = previous;
-  }
-  disappearing.unshift(lArc);
-  (0, _Circle.detachCircle)(lArc);
-  var rArc = next;
-  while (rArc.circle && Math.abs(x - rArc.circle.x) < _Diagram.epsilon && Math.abs(y - rArc.circle.cy) < _Diagram.epsilon) {
-    next = rArc.N;
-    disappearing.push(rArc);
-    detachBeach(rArc);
-    rArc = next;
-  }
-  disappearing.push(rArc);
-  (0, _Circle.detachCircle)(rArc);
-  var nArcs = disappearing.length,
-    iArc;
-  for (iArc = 1; iArc < nArcs; ++iArc) {
-    rArc = disappearing[iArc];
-    lArc = disappearing[iArc - 1];
-    (0, _Edge.setEdgeEnd)(rArc.edge, lArc.site, rArc.site, vertex);
-  }
-  lArc = disappearing[0];
-  rArc = disappearing[nArcs - 1];
-  rArc.edge = (0, _Edge.createEdge)(lArc.site, rArc.site, null, vertex);
-  (0, _Circle.attachCircle)(lArc);
-  (0, _Circle.attachCircle)(rArc);
-}
-function addBeach(site) {
-  var x = site[0],
-    directrix = site[1],
-    lArc,
-    rArc,
-    dxl,
-    dxr,
-    node = _Diagram.beaches._;
-  while (node) {
-    dxl = leftBreakPoint(node, directrix) - x;
-    if (dxl > _Diagram.epsilon) node = node.L;else {
-      dxr = x - rightBreakPoint(node, directrix);
-      if (dxr > _Diagram.epsilon) {
-        if (!node.R) {
-          lArc = node;
-          break;
-        }
-        node = node.R;
-      } else {
-        if (dxl > -_Diagram.epsilon) {
-          lArc = node.P;
-          rArc = node;
-        } else if (dxr > -_Diagram.epsilon) {
-          lArc = node;
-          rArc = node.N;
-        } else {
-          lArc = rArc = node;
-        }
-        break;
-      }
-    }
-  }
-  (0, _Cell.createCell)(site);
-  var newArc = createBeach(site);
-  _Diagram.beaches.insert(lArc, newArc);
-  if (!lArc && !rArc) return;
-  if (lArc === rArc) {
-    (0, _Circle.detachCircle)(lArc);
-    rArc = createBeach(lArc.site);
-    _Diagram.beaches.insert(newArc, rArc);
-    newArc.edge = rArc.edge = (0, _Edge.createEdge)(lArc.site, newArc.site);
-    (0, _Circle.attachCircle)(lArc);
-    (0, _Circle.attachCircle)(rArc);
-    return;
-  }
-  if (!rArc) {
-    // && lArc
-    newArc.edge = (0, _Edge.createEdge)(lArc.site, newArc.site);
-    return;
-  }
-
-  // else lArc !== rArc
-  (0, _Circle.detachCircle)(lArc);
-  (0, _Circle.detachCircle)(rArc);
-  var lSite = lArc.site,
-    ax = lSite[0],
-    ay = lSite[1],
-    bx = site[0] - ax,
-    by = site[1] - ay,
-    rSite = rArc.site,
-    cx = rSite[0] - ax,
-    cy = rSite[1] - ay,
-    d = 2 * (bx * cy - by * cx),
-    hb = bx * bx + by * by,
-    hc = cx * cx + cy * cy,
-    vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];
-  (0, _Edge.setEdgeEnd)(rArc.edge, lSite, rSite, vertex);
-  newArc.edge = (0, _Edge.createEdge)(lSite, site, null, vertex);
-  rArc.edge = (0, _Edge.createEdge)(site, rSite, null, vertex);
-  (0, _Circle.attachCircle)(lArc);
-  (0, _Circle.attachCircle)(rArc);
-}
-function leftBreakPoint(arc, directrix) {
-  var site = arc.site,
-    rfocx = site[0],
-    rfocy = site[1],
-    pby2 = rfocy - directrix;
-  if (!pby2) return rfocx;
-  var lArc = arc.P;
-  if (!lArc) return -Infinity;
-  site = lArc.site;
-  var lfocx = site[0],
-    lfocy = site[1],
-    plby2 = lfocy - directrix;
-  if (!plby2) return lfocx;
-  var hl = lfocx - rfocx,
-    aby2 = 1 / pby2 - 1 / plby2,
-    b = hl / plby2;
-  if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
-  return (rfocx + lfocx) / 2;
-}
-function rightBreakPoint(arc, directrix) {
-  var rArc = arc.N;
-  if (rArc) return leftBreakPoint(rArc, directrix);
-  var site = arc.site;
-  return site[1] === directrix ? site[0] : Infinity;
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/Cell.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/Cell.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,123 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.cellHalfedgeEnd = cellHalfedgeEnd;
-exports.cellHalfedgeStart = cellHalfedgeStart;
-exports.clipCells = clipCells;
-exports.createCell = createCell;
-exports.sortCellHalfedges = sortCellHalfedges;
-var _Edge = require("./Edge");
-var _Diagram = require("./Diagram");
-function createCell(site) {
-  return _Diagram.cells[site.index] = {
-    site: site,
-    halfedges: []
-  };
-}
-function cellHalfedgeAngle(cell, edge) {
-  var site = cell.site,
-    va = edge.left,
-    vb = edge.right;
-  if (site === vb) vb = va, va = site;
-  if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);
-  if (site === va) va = edge[1], vb = edge[0];else va = edge[0], vb = edge[1];
-  return Math.atan2(va[0] - vb[0], vb[1] - va[1]);
-}
-function cellHalfedgeStart(cell, edge) {
-  return edge[+(edge.left !== cell.site)];
-}
-function cellHalfedgeEnd(cell, edge) {
-  return edge[+(edge.left === cell.site)];
-}
-function sortCellHalfedges() {
-  for (var i = 0, n = _Diagram.cells.length, cell, halfedges, j, m; i < n; ++i) {
-    if ((cell = _Diagram.cells[i]) && (m = (halfedges = cell.halfedges).length)) {
-      var index = new Array(m),
-        array = new Array(m);
-      for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, _Diagram.edges[halfedges[j]]);
-      index.sort(function (i, j) {
-        return array[j] - array[i];
-      });
-      for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];
-      for (j = 0; j < m; ++j) halfedges[j] = array[j];
-    }
-  }
-}
-function clipCells(x0, y0, x1, y1) {
-  var nCells = _Diagram.cells.length,
-    iCell,
-    cell,
-    site,
-    iHalfedge,
-    halfedges,
-    nHalfedges,
-    start,
-    startX,
-    startY,
-    end,
-    endX,
-    endY,
-    cover = true;
-  for (iCell = 0; iCell < nCells; ++iCell) {
-    if (cell = _Diagram.cells[iCell]) {
-      site = cell.site;
-      halfedges = cell.halfedges;
-      iHalfedge = halfedges.length;
-
-      // Remove any dangling clipped edges.
-      while (iHalfedge--) {
-        if (!_Diagram.edges[halfedges[iHalfedge]]) {
-          halfedges.splice(iHalfedge, 1);
-        }
-      }
-
-      // Insert any border edges as necessary.
-      iHalfedge = 0, nHalfedges = halfedges.length;
-      while (iHalfedge < nHalfedges) {
-        end = cellHalfedgeEnd(cell, _Diagram.edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];
-        start = cellHalfedgeStart(cell, _Diagram.edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];
-        if (Math.abs(endX - startX) > _Diagram.epsilon || Math.abs(endY - startY) > _Diagram.epsilon) {
-          halfedges.splice(iHalfedge, 0, _Diagram.edges.push((0, _Edge.createBorderEdge)(site, end, Math.abs(endX - x0) < _Diagram.epsilon && y1 - endY > _Diagram.epsilon ? [x0, Math.abs(startX - x0) < _Diagram.epsilon ? startY : y1] : Math.abs(endY - y1) < _Diagram.epsilon && x1 - endX > _Diagram.epsilon ? [Math.abs(startY - y1) < _Diagram.epsilon ? startX : x1, y1] : Math.abs(endX - x1) < _Diagram.epsilon && endY - y0 > _Diagram.epsilon ? [x1, Math.abs(startX - x1) < _Diagram.epsilon ? startY : y0] : Math.abs(endY - y0) < _Diagram.epsilon && endX - x0 > _Diagram.epsilon ? [Math.abs(startY - y0) < _Diagram.epsilon ? startX : x0, y0] : null)) - 1);
-          ++nHalfedges;
-        }
-      }
-      if (nHalfedges) cover = false;
-    }
-  }
-
-  // If there weren’t any edges, have the closest site cover the extent.
-  // It doesn’t matter which corner of the extent we measure!
-  if (cover) {
-    var dx,
-      dy,
-      d2,
-      dc = Infinity;
-    for (iCell = 0, cover = null; iCell < nCells; ++iCell) {
-      if (cell = _Diagram.cells[iCell]) {
-        site = cell.site;
-        dx = site[0] - x0;
-        dy = site[1] - y0;
-        d2 = dx * dx + dy * dy;
-        if (d2 < dc) dc = d2, cover = cell;
-      }
-    }
-    if (cover) {
-      var v00 = [x0, y0],
-        v01 = [x0, y1],
-        v11 = [x1, y1],
-        v10 = [x1, y0];
-      cover.halfedges.push(_Diagram.edges.push((0, _Edge.createBorderEdge)(site = cover.site, v00, v01)) - 1, _Diagram.edges.push((0, _Edge.createBorderEdge)(site, v01, v11)) - 1, _Diagram.edges.push((0, _Edge.createBorderEdge)(site, v11, v10)) - 1, _Diagram.edges.push((0, _Edge.createBorderEdge)(site, v10, v00)) - 1);
-    }
-  }
-
-  // Lastly delete any cells with no edges; these were entirely clipped.
-  for (iCell = 0; iCell < nCells; ++iCell) {
-    if (cell = _Diagram.cells[iCell]) {
-      if (!cell.halfedges.length) {
-        delete _Diagram.cells[iCell];
-      }
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/Circle.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/Circle.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,71 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.attachCircle = attachCircle;
-exports.detachCircle = detachCircle;
-exports.firstCircle = void 0;
-var _RedBlackTree = require("./RedBlackTree");
-var _Diagram = require("./Diagram");
-var circlePool = [];
-var firstCircle;
-function Circle() {
-  (0, _RedBlackTree.RedBlackNode)(this);
-  this.x = this.y = this.arc = this.site = this.cy = null;
-}
-function attachCircle(arc) {
-  var lArc = arc.P,
-    rArc = arc.N;
-  if (!lArc || !rArc) return;
-  var lSite = lArc.site,
-    cSite = arc.site,
-    rSite = rArc.site;
-  if (lSite === rSite) return;
-  var bx = cSite[0],
-    by = cSite[1],
-    ax = lSite[0] - bx,
-    ay = lSite[1] - by,
-    cx = rSite[0] - bx,
-    cy = rSite[1] - by;
-  var d = 2 * (ax * cy - ay * cx);
-  if (d >= -_Diagram.epsilon2) return;
-  var ha = ax * ax + ay * ay,
-    hc = cx * cx + cy * cy,
-    x = (cy * ha - ay * hc) / d,
-    y = (ax * hc - cx * ha) / d;
-  var circle = circlePool.pop() || new Circle();
-  circle.arc = arc;
-  circle.site = cSite;
-  circle.x = x + bx;
-  circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom
-
-  arc.circle = circle;
-  var before = null,
-    node = _Diagram.circles._;
-  while (node) {
-    if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {
-      if (node.L) node = node.L;else {
-        before = node.P;
-        break;
-      }
-    } else {
-      if (node.R) node = node.R;else {
-        before = node;
-        break;
-      }
-    }
-  }
-  _Diagram.circles.insert(before, circle);
-  if (!before) exports.firstCircle = firstCircle = circle;
-}
-function detachCircle(arc) {
-  var circle = arc.circle;
-  if (circle) {
-    if (!circle.P) exports.firstCircle = firstCircle = circle.N;
-    _Diagram.circles.remove(circle);
-    circlePool.push(circle);
-    (0, _RedBlackTree.RedBlackNode)(circle);
-    arc.circle = null;
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/Diagram.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/Diagram.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,137 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.circles = exports.cells = exports.beaches = void 0;
-exports.default = Diagram;
-exports.epsilon2 = exports.epsilon = exports.edges = void 0;
-var _Beach = require("./Beach");
-var _Cell = require("./Cell");
-var _Circle = require("./Circle");
-var _Edge = require("./Edge");
-var _RedBlackTree = _interopRequireDefault(require("./RedBlackTree"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var epsilon = exports.epsilon = 1e-6;
-var epsilon2 = exports.epsilon2 = 1e-12;
-var beaches;
-var cells;
-var circles;
-var edges;
-function triangleArea(a, b, c) {
-  return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);
-}
-function lexicographic(a, b) {
-  return b[1] - a[1] || b[0] - a[0];
-}
-function Diagram(sites, extent) {
-  var site = sites.sort(lexicographic).pop(),
-    x,
-    y,
-    circle;
-  exports.edges = edges = [];
-  exports.cells = cells = new Array(sites.length);
-  exports.beaches = beaches = new _RedBlackTree.default();
-  exports.circles = circles = new _RedBlackTree.default();
-  while (true) {
-    circle = _Circle.firstCircle;
-    if (site && (!circle || site[1] < circle.y || site[1] === circle.y && site[0] < circle.x)) {
-      if (site[0] !== x || site[1] !== y) {
-        (0, _Beach.addBeach)(site);
-        x = site[0], y = site[1];
-      }
-      site = sites.pop();
-    } else if (circle) {
-      (0, _Beach.removeBeach)(circle.arc);
-    } else {
-      break;
-    }
-  }
-  (0, _Cell.sortCellHalfedges)();
-  if (extent) {
-    var x0 = +extent[0][0],
-      y0 = +extent[0][1],
-      x1 = +extent[1][0],
-      y1 = +extent[1][1];
-    (0, _Edge.clipEdges)(x0, y0, x1, y1);
-    (0, _Cell.clipCells)(x0, y0, x1, y1);
-  }
-  this.edges = edges;
-  this.cells = cells;
-  exports.beaches = beaches = exports.circles = circles = exports.edges = edges = exports.cells = cells = null;
-}
-Diagram.prototype = {
-  constructor: Diagram,
-  polygons: function () {
-    var edges = this.edges;
-    return this.cells.map(function (cell) {
-      var polygon = cell.halfedges.map(function (i) {
-        return (0, _Cell.cellHalfedgeStart)(cell, edges[i]);
-      });
-      polygon.data = cell.site.data;
-      return polygon;
-    });
-  },
-  triangles: function () {
-    var triangles = [],
-      edges = this.edges;
-    this.cells.forEach(function (cell, i) {
-      if (!(m = (halfedges = cell.halfedges).length)) return;
-      var site = cell.site,
-        halfedges,
-        j = -1,
-        m,
-        s0,
-        e1 = edges[halfedges[m - 1]],
-        s1 = e1.left === site ? e1.right : e1.left;
-      while (++j < m) {
-        s0 = s1;
-        e1 = edges[halfedges[j]];
-        s1 = e1.left === site ? e1.right : e1.left;
-        if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {
-          triangles.push([site.data, s0.data, s1.data]);
-        }
-      }
-    });
-    return triangles;
-  },
-  links: function () {
-    return this.edges.filter(function (edge) {
-      return edge.right;
-    }).map(function (edge) {
-      return {
-        source: edge.left.data,
-        target: edge.right.data
-      };
-    });
-  },
-  find: function (x, y, radius) {
-    var that = this,
-      i0,
-      i1 = that._found || 0,
-      n = that.cells.length,
-      cell;
-
-    // Use the previously-found cell, or start with an arbitrary one.
-    while (!(cell = that.cells[i1])) if (++i1 >= n) return null;
-    var dx = x - cell.site[0],
-      dy = y - cell.site[1],
-      d2 = dx * dx + dy * dy;
-
-    // Traverse the half-edges to find a closer cell, if any.
-    do {
-      cell = that.cells[i0 = i1], i1 = null;
-      cell.halfedges.forEach(function (e) {
-        var edge = that.edges[e],
-          v = edge.left;
-        if ((v === cell.site || !v) && !(v = edge.right)) return;
-        var vx = x - v[0],
-          vy = y - v[1],
-          v2 = vx * vx + vy * vy;
-        if (v2 < d2) d2 = v2, i1 = v.index;
-      });
-    } while (i1 !== null);
-    that._found = i0;
-    return radius == null || d2 <= radius * radius ? cell.site : null;
-  }
-};
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/Edge.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/Edge.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,154 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.clipEdges = clipEdges;
-exports.createBorderEdge = createBorderEdge;
-exports.createEdge = createEdge;
-exports.setEdgeEnd = setEdgeEnd;
-var _Diagram = require("./Diagram");
-function createEdge(left, right, v0, v1) {
-  var edge = [null, null],
-    index = _Diagram.edges.push(edge) - 1;
-  edge.left = left;
-  edge.right = right;
-  if (v0) setEdgeEnd(edge, left, right, v0);
-  if (v1) setEdgeEnd(edge, right, left, v1);
-  _Diagram.cells[left.index].halfedges.push(index);
-  _Diagram.cells[right.index].halfedges.push(index);
-  return edge;
-}
-function createBorderEdge(left, v0, v1) {
-  var edge = [v0, v1];
-  edge.left = left;
-  return edge;
-}
-function setEdgeEnd(edge, left, right, vertex) {
-  if (!edge[0] && !edge[1]) {
-    edge[0] = vertex;
-    edge.left = left;
-    edge.right = right;
-  } else if (edge.left === right) {
-    edge[1] = vertex;
-  } else {
-    edge[0] = vertex;
-  }
-}
-
-// Liang–Barsky line clipping.
-function clipEdge(edge, x0, y0, x1, y1) {
-  var a = edge[0],
-    b = edge[1],
-    ax = a[0],
-    ay = a[1],
-    bx = b[0],
-    by = b[1],
-    t0 = 0,
-    t1 = 1,
-    dx = bx - ax,
-    dy = by - ay,
-    r;
-  r = x0 - ax;
-  if (!dx && r > 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dx > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-  r = x1 - ax;
-  if (!dx && r < 0) return;
-  r /= dx;
-  if (dx < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dx > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-  r = y0 - ay;
-  if (!dy && r > 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  } else if (dy > 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  }
-  r = y1 - ay;
-  if (!dy && r < 0) return;
-  r /= dy;
-  if (dy < 0) {
-    if (r > t1) return;
-    if (r > t0) t0 = r;
-  } else if (dy > 0) {
-    if (r < t0) return;
-    if (r < t1) t1 = r;
-  }
-  if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?
-
-  if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];
-  if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];
-  return true;
-}
-function connectEdge(edge, x0, y0, x1, y1) {
-  var v1 = edge[1];
-  if (v1) return true;
-  var v0 = edge[0],
-    left = edge.left,
-    right = edge.right,
-    lx = left[0],
-    ly = left[1],
-    rx = right[0],
-    ry = right[1],
-    fx = (lx + rx) / 2,
-    fy = (ly + ry) / 2,
-    fm,
-    fb;
-  if (ry === ly) {
-    if (fx < x0 || fx >= x1) return;
-    if (lx > rx) {
-      if (!v0) v0 = [fx, y0];else if (v0[1] >= y1) return;
-      v1 = [fx, y1];
-    } else {
-      if (!v0) v0 = [fx, y1];else if (v0[1] < y0) return;
-      v1 = [fx, y0];
-    }
-  } else {
-    fm = (lx - rx) / (ry - ly);
-    fb = fy - fm * fx;
-    if (fm < -1 || fm > 1) {
-      if (lx > rx) {
-        if (!v0) v0 = [(y0 - fb) / fm, y0];else if (v0[1] >= y1) return;
-        v1 = [(y1 - fb) / fm, y1];
-      } else {
-        if (!v0) v0 = [(y1 - fb) / fm, y1];else if (v0[1] < y0) return;
-        v1 = [(y0 - fb) / fm, y0];
-      }
-    } else {
-      if (ly < ry) {
-        if (!v0) v0 = [x0, fm * x0 + fb];else if (v0[0] >= x1) return;
-        v1 = [x1, fm * x1 + fb];
-      } else {
-        if (!v0) v0 = [x1, fm * x1 + fb];else if (v0[0] < x0) return;
-        v1 = [x0, fm * x0 + fb];
-      }
-    }
-  }
-  edge[0] = v0;
-  edge[1] = v1;
-  return true;
-}
-function clipEdges(x0, y0, x1, y1) {
-  var i = _Diagram.edges.length,
-    edge;
-  while (i--) {
-    if (!connectEdge(edge = _Diagram.edges[i], x0, y0, x1, y1) || !clipEdge(edge, x0, y0, x1, y1) || !(Math.abs(edge[0][0] - edge[1][0]) > _Diagram.epsilon || Math.abs(edge[0][1] - edge[1][1]) > _Diagram.epsilon)) {
-      delete _Diagram.edges[i];
-    }
-  }
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/RedBlackTree.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/RedBlackTree.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,224 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.RedBlackNode = RedBlackNode;
-exports.default = void 0;
-function RedBlackTree() {
-  this._ = null; // root node
-}
-function RedBlackNode(node) {
-  node.U =
-  // parent node
-  node.C =
-  // color - true for red, false for black
-  node.L =
-  // left node
-  node.R =
-  // right node
-  node.P =
-  // previous node
-  node.N = null; // next node
-}
-RedBlackTree.prototype = {
-  constructor: RedBlackTree,
-  insert: function (after, node) {
-    var parent, grandpa, uncle;
-    if (after) {
-      node.P = after;
-      node.N = after.N;
-      if (after.N) after.N.P = node;
-      after.N = node;
-      if (after.R) {
-        after = after.R;
-        while (after.L) after = after.L;
-        after.L = node;
-      } else {
-        after.R = node;
-      }
-      parent = after;
-    } else if (this._) {
-      after = RedBlackFirst(this._);
-      node.P = null;
-      node.N = after;
-      after.P = after.L = node;
-      parent = after;
-    } else {
-      node.P = node.N = null;
-      this._ = node;
-      parent = null;
-    }
-    node.L = node.R = null;
-    node.U = parent;
-    node.C = true;
-    after = node;
-    while (parent && parent.C) {
-      grandpa = parent.U;
-      if (parent === grandpa.L) {
-        uncle = grandpa.R;
-        if (uncle && uncle.C) {
-          parent.C = uncle.C = false;
-          grandpa.C = true;
-          after = grandpa;
-        } else {
-          if (after === parent.R) {
-            RedBlackRotateLeft(this, parent);
-            after = parent;
-            parent = after.U;
-          }
-          parent.C = false;
-          grandpa.C = true;
-          RedBlackRotateRight(this, grandpa);
-        }
-      } else {
-        uncle = grandpa.L;
-        if (uncle && uncle.C) {
-          parent.C = uncle.C = false;
-          grandpa.C = true;
-          after = grandpa;
-        } else {
-          if (after === parent.L) {
-            RedBlackRotateRight(this, parent);
-            after = parent;
-            parent = after.U;
-          }
-          parent.C = false;
-          grandpa.C = true;
-          RedBlackRotateLeft(this, grandpa);
-        }
-      }
-      parent = after.U;
-    }
-    this._.C = false;
-  },
-  remove: function (node) {
-    if (node.N) node.N.P = node.P;
-    if (node.P) node.P.N = node.N;
-    node.N = node.P = null;
-    var parent = node.U,
-      sibling,
-      left = node.L,
-      right = node.R,
-      next,
-      red;
-    if (!left) next = right;else if (!right) next = left;else next = RedBlackFirst(right);
-    if (parent) {
-      if (parent.L === node) parent.L = next;else parent.R = next;
-    } else {
-      this._ = next;
-    }
-    if (left && right) {
-      red = next.C;
-      next.C = node.C;
-      next.L = left;
-      left.U = next;
-      if (next !== right) {
-        parent = next.U;
-        next.U = node.U;
-        node = next.R;
-        parent.L = node;
-        next.R = right;
-        right.U = next;
-      } else {
-        next.U = parent;
-        parent = next;
-        node = next.R;
-      }
-    } else {
-      red = node.C;
-      node = next;
-    }
-    if (node) node.U = parent;
-    if (red) return;
-    if (node && node.C) {
-      node.C = false;
-      return;
-    }
-    do {
-      if (node === this._) break;
-      if (node === parent.L) {
-        sibling = parent.R;
-        if (sibling.C) {
-          sibling.C = false;
-          parent.C = true;
-          RedBlackRotateLeft(this, parent);
-          sibling = parent.R;
-        }
-        if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
-          if (!sibling.R || !sibling.R.C) {
-            sibling.L.C = false;
-            sibling.C = true;
-            RedBlackRotateRight(this, sibling);
-            sibling = parent.R;
-          }
-          sibling.C = parent.C;
-          parent.C = sibling.R.C = false;
-          RedBlackRotateLeft(this, parent);
-          node = this._;
-          break;
-        }
-      } else {
-        sibling = parent.L;
-        if (sibling.C) {
-          sibling.C = false;
-          parent.C = true;
-          RedBlackRotateRight(this, parent);
-          sibling = parent.L;
-        }
-        if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
-          if (!sibling.L || !sibling.L.C) {
-            sibling.R.C = false;
-            sibling.C = true;
-            RedBlackRotateLeft(this, sibling);
-            sibling = parent.L;
-          }
-          sibling.C = parent.C;
-          parent.C = sibling.L.C = false;
-          RedBlackRotateRight(this, parent);
-          node = this._;
-          break;
-        }
-      }
-      sibling.C = true;
-      node = parent;
-      parent = parent.U;
-    } while (!node.C);
-    if (node) node.C = false;
-  }
-};
-function RedBlackRotateLeft(tree, node) {
-  var p = node,
-    q = node.R,
-    parent = p.U;
-  if (parent) {
-    if (parent.L === p) parent.L = q;else parent.R = q;
-  } else {
-    tree._ = q;
-  }
-  q.U = parent;
-  p.U = q;
-  p.R = q.L;
-  if (p.R) p.R.U = p;
-  q.L = p;
-}
-function RedBlackRotateRight(tree, node) {
-  var p = node,
-    q = node.L,
-    parent = p.U;
-  if (parent) {
-    if (parent.L === p) parent.L = q;else parent.R = q;
-  } else {
-    tree._ = q;
-  }
-  q.U = parent;
-  p.U = q;
-  p.L = q.R;
-  if (p.L) p.L.U = p;
-  q.R = p;
-}
-function RedBlackFirst(node) {
-  while (node.L) node = node.L;
-  return node;
-}
-var _default = exports.default = RedBlackTree;
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/constant.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/constant.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-function _default(x) {
-  return function () {
-    return x;
-  };
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "voronoi", {
-  enumerable: true,
-  get: function () {
-    return _voronoi.default;
-  }
-});
-var _voronoi = _interopRequireDefault(require("./voronoi"));
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/point.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/point.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.x = x;
-exports.y = y;
-function x(d) {
-  return d[0];
-}
-function y(d) {
-  return d[1];
-}
Index: de_modules/victory-vendor/lib-vendor/d3-voronoi/src/voronoi.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/d3-voronoi/src/voronoi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,47 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = _default;
-var _constant = _interopRequireDefault(require("./constant"));
-var _point = require("./point");
-var _Diagram = _interopRequireWildcard(require("./Diagram"));
-function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
-function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function _default() {
-  var x = _point.x,
-    y = _point.y,
-    extent = null;
-  function voronoi(data) {
-    return new _Diagram.default(data.map(function (d, i) {
-      var s = [Math.round(x(d, i, data) / _Diagram.epsilon) * _Diagram.epsilon, Math.round(y(d, i, data) / _Diagram.epsilon) * _Diagram.epsilon];
-      s.index = i;
-      s.data = d;
-      return s;
-    }), extent);
-  }
-  voronoi.polygons = function (data) {
-    return voronoi(data).polygons();
-  };
-  voronoi.links = function (data) {
-    return voronoi(data).links();
-  };
-  voronoi.triangles = function (data) {
-    return voronoi(data).triangles();
-  };
-  voronoi.x = function (_) {
-    return arguments.length ? (x = typeof _ === "function" ? _ : (0, _constant.default)(+_), voronoi) : x;
-  };
-  voronoi.y = function (_) {
-    return arguments.length ? (y = typeof _ === "function" ? _ : (0, _constant.default)(+_), voronoi) : y;
-  };
-  voronoi.extent = function (_) {
-    return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];
-  };
-  voronoi.size = function (_) {
-    return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];
-  };
-  return voronoi;
-}
Index: de_modules/victory-vendor/lib-vendor/internmap/LICENSE
===================================================================
--- node_modules/victory-vendor/lib-vendor/internmap/LICENSE	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,13 +1,0 @@
-Copyright 2021 Mike Bostock
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
Index: de_modules/victory-vendor/lib-vendor/internmap/src/index.js
===================================================================
--- node_modules/victory-vendor/lib-vendor/internmap/src/index.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,87 +1,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.InternSet = exports.InternMap = void 0;
-class InternMap extends Map {
-  constructor(entries, key = keyof) {
-    super();
-    Object.defineProperties(this, {
-      _intern: {
-        value: new Map()
-      },
-      _key: {
-        value: key
-      }
-    });
-    if (entries != null) for (const [key, value] of entries) this.set(key, value);
-  }
-  get(key) {
-    return super.get(intern_get(this, key));
-  }
-  has(key) {
-    return super.has(intern_get(this, key));
-  }
-  set(key, value) {
-    return super.set(intern_set(this, key), value);
-  }
-  delete(key) {
-    return super.delete(intern_delete(this, key));
-  }
-}
-exports.InternMap = InternMap;
-class InternSet extends Set {
-  constructor(values, key = keyof) {
-    super();
-    Object.defineProperties(this, {
-      _intern: {
-        value: new Map()
-      },
-      _key: {
-        value: key
-      }
-    });
-    if (values != null) for (const value of values) this.add(value);
-  }
-  has(value) {
-    return super.has(intern_get(this, value));
-  }
-  add(value) {
-    return super.add(intern_set(this, value));
-  }
-  delete(value) {
-    return super.delete(intern_delete(this, value));
-  }
-}
-exports.InternSet = InternSet;
-function intern_get({
-  _intern,
-  _key
-}, value) {
-  const key = _key(value);
-  return _intern.has(key) ? _intern.get(key) : value;
-}
-function intern_set({
-  _intern,
-  _key
-}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) return _intern.get(key);
-  _intern.set(key, value);
-  return value;
-}
-function intern_delete({
-  _intern,
-  _key
-}, value) {
-  const key = _key(value);
-  if (_intern.has(key)) {
-    value = _intern.get(key);
-    _intern.delete(key);
-  }
-  return value;
-}
-function keyof(value) {
-  return value !== null && typeof value === "object" ? value.valueOf() : value;
-}
Index: de_modules/victory-vendor/lib/d3-array.js
===================================================================
--- node_modules/victory-vendor/lib/d3-array.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-array` (CommonJS)
-// See upstream license: https://github.com/d3/d3-array/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-array`
-module.exports = require("../lib-vendor/d3-array/src/index.js");
Index: de_modules/victory-vendor/lib/d3-color.js
===================================================================
--- node_modules/victory-vendor/lib/d3-color.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-color` (CommonJS)
-// See upstream license: https://github.com/d3/d3-color/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-color`
-module.exports = require("../lib-vendor/d3-color/src/index.js");
Index: de_modules/victory-vendor/lib/d3-ease.js
===================================================================
--- node_modules/victory-vendor/lib/d3-ease.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-ease` (CommonJS)
-// See upstream license: https://github.com/d3/d3-ease/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-ease`
-module.exports = require("../lib-vendor/d3-ease/src/index.js");
Index: de_modules/victory-vendor/lib/d3-format.js
===================================================================
--- node_modules/victory-vendor/lib/d3-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-format` (CommonJS)
-// See upstream license: https://github.com/d3/d3-format/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-format`
-module.exports = require("../lib-vendor/d3-format/src/index.js");
Index: de_modules/victory-vendor/lib/d3-interpolate.js
===================================================================
--- node_modules/victory-vendor/lib/d3-interpolate.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-interpolate` (CommonJS)
-// See upstream license: https://github.com/d3/d3-interpolate/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-interpolate`
-module.exports = require("../lib-vendor/d3-interpolate/src/index.js");
Index: de_modules/victory-vendor/lib/d3-path.js
===================================================================
--- node_modules/victory-vendor/lib/d3-path.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-path` (CommonJS)
-// See upstream license: https://github.com/d3/d3-path/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-path`
-module.exports = require("../lib-vendor/d3-path/src/index.js");
Index: de_modules/victory-vendor/lib/d3-scale.js
===================================================================
--- node_modules/victory-vendor/lib/d3-scale.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-scale` (CommonJS)
-// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-scale`
-module.exports = require("../lib-vendor/d3-scale/src/index.js");
Index: de_modules/victory-vendor/lib/d3-shape.js
===================================================================
--- node_modules/victory-vendor/lib/d3-shape.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-shape` (CommonJS)
-// See upstream license: https://github.com/d3/d3-shape/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-shape`
-module.exports = require("../lib-vendor/d3-shape/src/index.js");
Index: de_modules/victory-vendor/lib/d3-time-format.js
===================================================================
--- node_modules/victory-vendor/lib/d3-time-format.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-time-format` (CommonJS)
-// See upstream license: https://github.com/d3/d3-time-format/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-time-format`
-module.exports = require("../lib-vendor/d3-time-format/src/index.js");
Index: de_modules/victory-vendor/lib/d3-time.js
===================================================================
--- node_modules/victory-vendor/lib/d3-time.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-time` (CommonJS)
-// See upstream license: https://github.com/d3/d3-time/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-time`
-module.exports = require("../lib-vendor/d3-time/src/index.js");
Index: de_modules/victory-vendor/lib/d3-timer.js
===================================================================
--- node_modules/victory-vendor/lib/d3-timer.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-timer` (CommonJS)
-// See upstream license: https://github.com/d3/d3-timer/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-timer`
-module.exports = require("../lib-vendor/d3-timer/src/index.js");
Index: de_modules/victory-vendor/lib/d3-voronoi.js
===================================================================
--- node_modules/victory-vendor/lib/d3-voronoi.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/d3-voronoi` (CommonJS)
-// See upstream license: https://github.com/d3/d3-voronoi/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/d3-voronoi`
-module.exports = require("../lib-vendor/d3-voronoi/src/index.js");
Index: de_modules/victory-vendor/lib/internmap.js
===================================================================
--- node_modules/victory-vendor/lib/internmap.js	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-// `victory-vendor/internmap` (CommonJS)
-// See upstream license: https://github.com/mbostock/internmap/blob/main/LICENSE
-//
-// Our CommonJS package relies on transpiled vendor files in `lib-vendor/internmap`
-module.exports = require("../lib-vendor/internmap/src/index.js");
Index: de_modules/victory-vendor/package.json
===================================================================
--- node_modules/victory-vendor/package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,157 +1,0 @@
-{
-  "name": "victory-vendor",
-  "version": "37.3.6",
-  "description": "Vendored dependencies for Victory",
-  "keywords": [
-    "data visualization",
-    "React",
-    "d3",
-    "charting"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/FormidableLabs/victory"
-  },
-  "homepage": "https://commerce.nearform.com/open-source/victory",
-  "author": "Formidable",
-  "license": "MIT AND ISC",
-  "exports": {
-    "./package.json": "./package.json",
-    "./d3-*": {
-      "types": "./d3-*.d.ts",
-      "import": "./es/d3-*.js",
-      "default": "./lib/d3-*.js"
-    }
-  },
-  "dependencies": {
-    "@types/d3-array": "^3.0.3",
-    "@types/d3-ease": "^3.0.0",
-    "@types/d3-interpolate": "^3.0.1",
-    "@types/d3-scale": "^4.0.2",
-    "@types/d3-shape": "^3.1.0",
-    "@types/d3-time": "^3.0.0",
-    "@types/d3-timer": "^3.0.0",
-    "d3-array": "^3.1.6",
-    "d3-ease": "^3.0.1",
-    "d3-interpolate": "^3.0.1",
-    "d3-scale": "^4.0.2",
-    "d3-shape": "^3.1.0",
-    "d3-time": "^3.0.0",
-    "d3-timer": "^3.0.1"
-  },
-  "devDependencies": {
-    "d3-color": "^3.1.0",
-    "d3-format": "^3.1.0",
-    "d3-path": "^3.0.1",
-    "d3-time-format": "^4.1.0",
-    "d3-voronoi": "^1.1.4",
-    "internmap": "^2.0.3",
-    "execa": "^6.1.0",
-    "rimraf": "^3.0.2"
-  },
-  "publishConfig": {
-    "provenance": true
-  },
-  "wireit": {
-    "build": {
-      "command": "node ./scripts/build.js",
-      "files": [
-        ".babelrc.js",
-        "scripts/build.js",
-        "node_modules/**"
-      ],
-      "output": [
-        "es/**",
-        "lib/**",
-        "lib-vendor/**",
-        "d3-*"
-      ],
-      "packageLocks": [
-        "pnpm-lock.yaml"
-      ]
-    },
-    "build:lib:esm": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "build:lib:cjs": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "build:dist": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "build:dist:dev": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "build:dist:min": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "check": {
-      "dependencies": [
-        "types:check",
-        "jest",
-        "format",
-        "lint"
-      ]
-    },
-    "types:check": {
-      "command": "echo \"No types to check here\"",
-      "files": [],
-      "output": []
-    },
-    "types:create": {
-      "dependencies": [
-        "build"
-      ]
-    },
-    "lint": {
-      "command": "eslint scripts",
-      "files": [
-        "scripts/**"
-      ],
-      "output": [],
-      "packageLocks": [
-        "pnpm-lock.yaml"
-      ]
-    },
-    "lint:fix": {
-      "command": "eslint --fix scripts",
-      "files": [
-        "scripts/**"
-      ],
-      "output": [],
-      "packageLocks": [
-        "pnpm-lock.yaml"
-      ]
-    },
-    "jest": {
-      "command": "echo victory-vendor has no tests",
-      "files": [],
-      "output": []
-    }
-  },
-  "scripts": {
-    "build": "wireit",
-    "build:lib": "wireit",
-    "build:lib:esm": "wireit",
-    "build:lib:cjs": "wireit",
-    "build:dist": "wireit",
-    "build:dist:dev": "wireit",
-    "build:dist:min": "wireit",
-    "check": "wireit",
-    "types:check": "wireit",
-    "types:create": "wireit",
-    "lint": "wireit",
-    "lint:fix": "wireit",
-    "jest": "wireit"
-  }
-}
Index: ckage-lock.json
===================================================================
--- package-lock.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1073 +1,0 @@
-{
-  "name": "Proekt_Wazuh",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "": {
-      "dependencies": {
-        "d3": "^7.9.0",
-        "d3-sankey": "^0.12.3",
-        "recharts": "^3.7.0"
-      },
-      "devDependencies": {
-        "autoprefixer": "^10.4.23",
-        "postcss": "^8.5.6",
-        "tailwindcss": "^4.1.18"
-      }
-    },
-    "node_modules/@reduxjs/toolkit": {
-      "version": "2.11.2",
-      "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
-      "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@standard-schema/spec": "^1.0.0",
-        "@standard-schema/utils": "^0.3.0",
-        "immer": "^11.0.0",
-        "redux": "^5.0.1",
-        "redux-thunk": "^3.1.0",
-        "reselect": "^5.1.0"
-      },
-      "peerDependencies": {
-        "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
-        "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "react": {
-          "optional": true
-        },
-        "react-redux": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@reduxjs/toolkit/node_modules/immer": {
-      "version": "11.1.3",
-      "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.3.tgz",
-      "integrity": "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==",
-      "license": "MIT",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/immer"
-      }
-    },
-    "node_modules/@standard-schema/spec": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
-      "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
-      "license": "MIT"
-    },
-    "node_modules/@standard-schema/utils": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
-      "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-array": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
-      "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-color": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
-      "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-ease": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
-      "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-interpolate": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
-      "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-color": "*"
-      }
-    },
-    "node_modules/@types/d3-path": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
-      "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-scale": {
-      "version": "4.0.9",
-      "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
-      "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-time": "*"
-      }
-    },
-    "node_modules/@types/d3-shape": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",
-      "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/d3-path": "*"
-      }
-    },
-    "node_modules/@types/d3-time": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
-      "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
-      "license": "MIT"
-    },
-    "node_modules/@types/d3-timer": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
-      "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
-      "license": "MIT"
-    },
-    "node_modules/@types/use-sync-external-store": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
-      "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
-      "license": "MIT"
-    },
-    "node_modules/autoprefixer": {
-      "version": "10.4.23",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
-      "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/autoprefixer"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "browserslist": "^4.28.1",
-        "caniuse-lite": "^1.0.30001760",
-        "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/baseline-browser-mapping": {
-      "version": "2.9.11",
-      "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
-      "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
-      "dev": true,
-      "license": "Apache-2.0",
-      "bin": {
-        "baseline-browser-mapping": "dist/cli.js"
-      }
-    },
-    "node_modules/browserslist": {
-      "version": "4.28.1",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
-      "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "baseline-browser-mapping": "^2.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/caniuse-lite": {
-      "version": "1.0.30001761",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz",
-      "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "CC-BY-4.0"
-    },
-    "node_modules/clsx": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
-      "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/commander": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
-      "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
-      "license": "MIT",
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/d3": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
-      "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "3",
-        "d3-axis": "3",
-        "d3-brush": "3",
-        "d3-chord": "3",
-        "d3-color": "3",
-        "d3-contour": "4",
-        "d3-delaunay": "6",
-        "d3-dispatch": "3",
-        "d3-drag": "3",
-        "d3-dsv": "3",
-        "d3-ease": "3",
-        "d3-fetch": "3",
-        "d3-force": "3",
-        "d3-format": "3",
-        "d3-geo": "3",
-        "d3-hierarchy": "3",
-        "d3-interpolate": "3",
-        "d3-path": "3",
-        "d3-polygon": "3",
-        "d3-quadtree": "3",
-        "d3-random": "3",
-        "d3-scale": "4",
-        "d3-scale-chromatic": "3",
-        "d3-selection": "3",
-        "d3-shape": "3",
-        "d3-time": "3",
-        "d3-time-format": "4",
-        "d3-timer": "3",
-        "d3-transition": "3",
-        "d3-zoom": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-array": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
-      "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
-      "license": "ISC",
-      "dependencies": {
-        "internmap": "1 - 2"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-axis": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
-      "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-brush": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
-      "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-drag": "2 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-selection": "3",
-        "d3-transition": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-chord": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
-      "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-path": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-color": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
-      "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-contour": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
-      "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "^3.2.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-delaunay": {
-      "version": "6.0.4",
-      "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
-      "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
-      "license": "ISC",
-      "dependencies": {
-        "delaunator": "5"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-dispatch": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
-      "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-drag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
-      "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-selection": "3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-dsv": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
-      "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
-      "license": "ISC",
-      "dependencies": {
-        "commander": "7",
-        "iconv-lite": "0.6",
-        "rw": "1"
-      },
-      "bin": {
-        "csv2json": "bin/dsv2json.js",
-        "csv2tsv": "bin/dsv2dsv.js",
-        "dsv2dsv": "bin/dsv2dsv.js",
-        "dsv2json": "bin/dsv2json.js",
-        "json2csv": "bin/json2dsv.js",
-        "json2dsv": "bin/json2dsv.js",
-        "json2tsv": "bin/json2dsv.js",
-        "tsv2csv": "bin/dsv2dsv.js",
-        "tsv2json": "bin/dsv2json.js"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-ease": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
-      "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-fetch": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
-      "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dsv": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-force": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
-      "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-quadtree": "1 - 3",
-        "d3-timer": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-format": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
-      "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-geo": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
-      "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2.5.0 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-hierarchy": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
-      "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-interpolate": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
-      "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-path": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
-      "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-polygon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
-      "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-quadtree": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
-      "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-random": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
-      "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-sankey": {
-      "version": "0.12.3",
-      "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
-      "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "d3-array": "1 - 2",
-        "d3-shape": "^1.2.0"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/d3-array": {
-      "version": "2.12.1",
-      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
-      "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "internmap": "^1.0.0"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/d3-path": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
-      "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
-      "license": "BSD-3-Clause"
-    },
-    "node_modules/d3-sankey/node_modules/d3-shape": {
-      "version": "1.3.7",
-      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
-      "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
-      "license": "BSD-3-Clause",
-      "dependencies": {
-        "d3-path": "1"
-      }
-    },
-    "node_modules/d3-sankey/node_modules/internmap": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
-      "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
-      "license": "ISC"
-    },
-    "node_modules/d3-scale": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
-      "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2.10.0 - 3",
-        "d3-format": "1 - 3",
-        "d3-interpolate": "1.2.0 - 3",
-        "d3-time": "2.1.1 - 3",
-        "d3-time-format": "2 - 4"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-scale-chromatic": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
-      "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3",
-        "d3-interpolate": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-selection": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
-      "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-shape": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
-      "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-path": "^3.1.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-time": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
-      "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-array": "2 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-time-format": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
-      "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-time": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-timer": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
-      "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/d3-transition": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
-      "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-color": "1 - 3",
-        "d3-dispatch": "1 - 3",
-        "d3-ease": "1 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-timer": "1 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "peerDependencies": {
-        "d3-selection": "2 - 3"
-      }
-    },
-    "node_modules/d3-zoom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
-      "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
-      "license": "ISC",
-      "dependencies": {
-        "d3-dispatch": "1 - 3",
-        "d3-drag": "2 - 3",
-        "d3-interpolate": "1 - 3",
-        "d3-selection": "2 - 3",
-        "d3-transition": "2 - 3"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/decimal.js-light": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
-      "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
-      "license": "MIT"
-    },
-    "node_modules/delaunator": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
-      "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
-      "license": "ISC",
-      "dependencies": {
-        "robust-predicates": "^3.0.2"
-      }
-    },
-    "node_modules/electron-to-chromium": {
-      "version": "1.5.267",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
-      "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
-      "dev": true,
-      "license": "ISC"
-    },
-    "node_modules/es-toolkit": {
-      "version": "1.44.0",
-      "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.44.0.tgz",
-      "integrity": "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==",
-      "license": "MIT",
-      "workspaces": [
-        "docs",
-        "benchmarks"
-      ]
-    },
-    "node_modules/escalade": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
-      "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/eventemitter3": {
-      "version": "5.0.4",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
-      "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
-      "license": "MIT"
-    },
-    "node_modules/fraction.js": {
-      "version": "5.3.4",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
-      "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "*"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/rawify"
-      }
-    },
-    "node_modules/iconv-lite": {
-      "version": "0.6.3",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
-      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
-      "license": "MIT",
-      "dependencies": {
-        "safer-buffer": ">= 2.1.2 < 3.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/immer": {
-      "version": "10.2.0",
-      "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz",
-      "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==",
-      "license": "MIT",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/immer"
-      }
-    },
-    "node_modules/internmap": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
-      "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/nanoid": {
-      "version": "3.3.11",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
-      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "bin": {
-        "nanoid": "bin/nanoid.cjs"
-      },
-      "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-      }
-    },
-    "node_modules/node-releases": {
-      "version": "2.0.27",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
-      "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/picocolors": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
-      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
-      "dev": true,
-      "license": "ISC"
-    },
-    "node_modules/postcss": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
-      "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/postcss"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "nanoid": "^3.3.11",
-        "picocolors": "^1.1.1",
-        "source-map-js": "^1.2.1"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      }
-    },
-    "node_modules/postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/react": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
-      "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
-      "license": "MIT",
-      "peer": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-dom": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
-      "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
-      "license": "MIT",
-      "peer": true,
-      "dependencies": {
-        "scheduler": "^0.27.0"
-      },
-      "peerDependencies": {
-        "react": "^19.2.3"
-      }
-    },
-    "node_modules/react-is": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz",
-      "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==",
-      "license": "MIT",
-      "peer": true
-    },
-    "node_modules/react-redux": {
-      "version": "9.2.0",
-      "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
-      "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
-      "license": "MIT",
-      "dependencies": {
-        "@types/use-sync-external-store": "^0.0.6",
-        "use-sync-external-store": "^1.4.0"
-      },
-      "peerDependencies": {
-        "@types/react": "^18.2.25 || ^19",
-        "react": "^18.0 || ^19",
-        "redux": "^5.0.0"
-      },
-      "peerDependenciesMeta": {
-        "@types/react": {
-          "optional": true
-        },
-        "redux": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/recharts": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.7.0.tgz",
-      "integrity": "sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==",
-      "license": "MIT",
-      "workspaces": [
-        "www"
-      ],
-      "dependencies": {
-        "@reduxjs/toolkit": "1.x.x || 2.x.x",
-        "clsx": "^2.1.1",
-        "decimal.js-light": "^2.5.1",
-        "es-toolkit": "^1.39.3",
-        "eventemitter3": "^5.0.1",
-        "immer": "^10.1.1",
-        "react-redux": "8.x.x || 9.x.x",
-        "reselect": "5.1.1",
-        "tiny-invariant": "^1.3.3",
-        "use-sync-external-store": "^1.2.2",
-        "victory-vendor": "^37.0.2"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-        "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
-        "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-      }
-    },
-    "node_modules/redux": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
-      "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
-      "license": "MIT"
-    },
-    "node_modules/redux-thunk": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
-      "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
-      "license": "MIT",
-      "peerDependencies": {
-        "redux": "^5.0.0"
-      }
-    },
-    "node_modules/reselect": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
-      "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
-      "license": "MIT"
-    },
-    "node_modules/robust-predicates": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
-      "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
-      "license": "Unlicense"
-    },
-    "node_modules/rw": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
-      "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
-      "license": "BSD-3-Clause"
-    },
-    "node_modules/safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "license": "MIT"
-    },
-    "node_modules/scheduler": {
-      "version": "0.27.0",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
-      "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
-      "license": "MIT",
-      "peer": true
-    },
-    "node_modules/source-map-js": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
-      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
-      "dev": true,
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/tailwindcss": {
-      "version": "4.1.18",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
-      "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/tiny-invariant": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
-      "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
-      "license": "MIT"
-    },
-    "node_modules/update-browserslist-db": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
-      "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
-      "dev": true,
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "escalade": "^3.2.0",
-        "picocolors": "^1.1.1"
-      },
-      "bin": {
-        "update-browserslist-db": "cli.js"
-      },
-      "peerDependencies": {
-        "browserslist": ">= 4.21.0"
-      }
-    },
-    "node_modules/use-sync-external-store": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
-      "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
-      "license": "MIT",
-      "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-      }
-    },
-    "node_modules/victory-vendor": {
-      "version": "37.3.6",
-      "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz",
-      "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==",
-      "license": "MIT AND ISC",
-      "dependencies": {
-        "@types/d3-array": "^3.0.3",
-        "@types/d3-ease": "^3.0.0",
-        "@types/d3-interpolate": "^3.0.1",
-        "@types/d3-scale": "^4.0.2",
-        "@types/d3-shape": "^3.1.0",
-        "@types/d3-time": "^3.0.0",
-        "@types/d3-timer": "^3.0.0",
-        "d3-array": "^3.1.6",
-        "d3-ease": "^3.0.1",
-        "d3-interpolate": "^3.0.1",
-        "d3-scale": "^4.0.2",
-        "d3-shape": "^3.1.0",
-        "d3-time": "^3.0.0",
-        "d3-timer": "^3.0.1"
-      }
-    }
-  }
-}
Index: ckage.json
===================================================================
--- package.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12 +1,0 @@
-{
-  "devDependencies": {
-    "autoprefixer": "^10.4.23",
-    "postcss": "^8.5.6",
-    "tailwindcss": "^4.1.18"
-  },
-  "dependencies": {
-    "d3": "^7.9.0",
-    "d3-sankey": "^0.12.3",
-    "recharts": "^3.7.0"
-  }
-}
Index: ceived_data_sysmon/Ilina-laptop/20251219_23.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20251219_23.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5549 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-19 23:09:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:09:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.89,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216873.73,
-      "disk_write_mb": 208535.91,
-      "network_sent_mb": 58.22,
-      "network_recv_mb": 1333.84,
-      "network_packets_sent": 571140,
-      "network_packets_recv": 725393,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.58,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-19 23:09:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:09:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.87,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216875.31,
-      "disk_write_mb": 208598.67,
-      "network_sent_mb": 58.28,
-      "network_recv_mb": 1333.95,
-      "network_packets_sent": 571347,
-      "network_packets_recv": 725653,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.58,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-19 23:10:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:10:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216875.89,
-      "disk_write_mb": 208611.02,
-      "network_sent_mb": 58.5,
-      "network_recv_mb": 1334.16,
-      "network_packets_sent": 571830,
-      "network_packets_recv": 726371,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.58,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:10:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:10:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216876.3,
-      "disk_write_mb": 208624.2,
-      "network_sent_mb": 58.56,
-      "network_recv_mb": 1334.34,
-      "network_packets_sent": 572581,
-      "network_packets_recv": 727623,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.58,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:11:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:11:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216876.48,
-      "disk_write_mb": 208632.79,
-      "network_sent_mb": 58.65,
-      "network_recv_mb": 1334.53,
-      "network_packets_sent": 573359,
-      "network_packets_recv": 728900,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.58,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-19 23:12:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:12:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.36,
-      "disk_read_mb": 216876.72,
-      "disk_write_mb": 208640.59,
-      "network_sent_mb": 58.73,
-      "network_recv_mb": 1334.72,
-      "network_packets_sent": 574181,
-      "network_packets_recv": 730233,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.36,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-19 23:12:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:12:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216877.67,
-      "disk_write_mb": 208709.06,
-      "network_sent_mb": 58.87,
-      "network_recv_mb": 1335.0,
-      "network_packets_sent": 575112,
-      "network_packets_recv": 731791,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-19 23:13:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:13:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216879.02,
-      "disk_write_mb": 208780.45,
-      "network_sent_mb": 58.97,
-      "network_recv_mb": 1335.2,
-      "network_packets_sent": 575992,
-      "network_packets_recv": 733256,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-19 23:13:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:13:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.16,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216893.83,
-      "disk_write_mb": 208790.9,
-      "network_sent_mb": 59.07,
-      "network_recv_mb": 1335.44,
-      "network_packets_sent": 576887,
-      "network_packets_recv": 734763,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-19 23:14:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:14:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216894.69,
-      "disk_write_mb": 208858.36,
-      "network_sent_mb": 59.22,
-      "network_recv_mb": 1335.58,
-      "network_packets_sent": 577427,
-      "network_packets_recv": 735642,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:15:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:15:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.15,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216896.64,
-      "disk_write_mb": 208949.67,
-      "network_sent_mb": 59.3,
-      "network_recv_mb": 1335.69,
-      "network_packets_sent": 577652,
-      "network_packets_recv": 735926,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-19 23:15:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:15:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.94,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216901.91,
-      "disk_write_mb": 209028.08,
-      "network_sent_mb": 59.36,
-      "network_recv_mb": 1335.75,
-      "network_packets_sent": 577853,
-      "network_packets_recv": 736162,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-19 23:16:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:16:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216903.4,
-      "disk_write_mb": 209088.05,
-      "network_sent_mb": 59.44,
-      "network_recv_mb": 1335.92,
-      "network_packets_sent": 578114,
-      "network_packets_recv": 736521,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-19 23:16:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:16:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.7,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216903.74,
-      "disk_write_mb": 209118.28,
-      "network_sent_mb": 59.54,
-      "network_recv_mb": 1336.04,
-      "network_packets_sent": 578345,
-      "network_packets_recv": 736830,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-19 23:17:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:17:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216905.06,
-      "disk_write_mb": 209129.91,
-      "network_sent_mb": 59.73,
-      "network_recv_mb": 1336.26,
-      "network_packets_sent": 578937,
-      "network_packets_recv": 737780,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-19 23:18:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:18:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 6.6,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216908.87,
-      "disk_write_mb": 209144.37,
-      "network_sent_mb": 59.86,
-      "network_recv_mb": 1336.47,
-      "network_packets_sent": 579847,
-      "network_packets_recv": 739211,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-19 23:18:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:18:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.79,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216910.39,
-      "disk_write_mb": 209165.93,
-      "network_sent_mb": 60.05,
-      "network_recv_mb": 1336.67,
-      "network_packets_sent": 580479,
-      "network_packets_recv": 740226,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-19 23:19:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:19:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216910.56,
-      "disk_write_mb": 209240.78,
-      "network_sent_mb": 60.07,
-      "network_recv_mb": 1336.71,
-      "network_packets_sent": 580593,
-      "network_packets_recv": 740387,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:19:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:19:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 6.7,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216913.88,
-      "disk_write_mb": 209271.4,
-      "network_sent_mb": 60.23,
-      "network_recv_mb": 1336.86,
-      "network_packets_sent": 580857,
-      "network_packets_recv": 740763,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-19 23:20:29",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:20:29",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.74,
-      "swap_usage": 6.6,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216917.39,
-      "disk_write_mb": 209286.49,
-      "network_sent_mb": 60.38,
-      "network_recv_mb": 1337.04,
-      "network_packets_sent": 581565,
-      "network_packets_recv": 741952,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:21:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:21:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 6.6,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216924.37,
-      "disk_write_mb": 209318.81,
-      "network_sent_mb": 60.76,
-      "network_recv_mb": 1337.22,
-      "network_packets_sent": 582094,
-      "network_packets_recv": 742578,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-19 23:21:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:21:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216945.43,
-      "disk_write_mb": 209373.73,
-      "network_sent_mb": 60.91,
-      "network_recv_mb": 1337.39,
-      "network_packets_sent": 582440,
-      "network_packets_recv": 743008,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-19 23:22:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:22:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.08,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216974.91,
-      "disk_write_mb": 209421.67,
-      "network_sent_mb": 61.08,
-      "network_recv_mb": 1337.66,
-      "network_packets_sent": 582832,
-      "network_packets_recv": 743507,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-19 23:22:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:22:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216975.95,
-      "disk_write_mb": 209465.11,
-      "network_sent_mb": 61.27,
-      "network_recv_mb": 1337.75,
-      "network_packets_sent": 583078,
-      "network_packets_recv": 743877,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-19 23:23:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:23:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.89,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 216977.6,
-      "disk_write_mb": 209477.3,
-      "network_sent_mb": 61.35,
-      "network_recv_mb": 1337.8,
-      "network_packets_sent": 583290,
-      "network_packets_recv": 744126,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-19 23:24:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:24:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217014.5,
-      "disk_write_mb": 209548.12,
-      "network_sent_mb": 61.46,
-      "network_recv_mb": 1337.89,
-      "network_packets_sent": 583625,
-      "network_packets_recv": 744492,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-19 23:24:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:24:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217014.73,
-      "disk_write_mb": 209615.91,
-      "network_sent_mb": 61.53,
-      "network_recv_mb": 1338.02,
-      "network_packets_sent": 583889,
-      "network_packets_recv": 744798,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-19 23:25:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:25:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217017.47,
-      "disk_write_mb": 209626.59,
-      "network_sent_mb": 61.63,
-      "network_recv_mb": 1338.13,
-      "network_packets_sent": 584128,
-      "network_packets_recv": 745122,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-19 23:25:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:25:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.86,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217017.82,
-      "disk_write_mb": 209636.3,
-      "network_sent_mb": 61.71,
-      "network_recv_mb": 1338.18,
-      "network_packets_sent": 584225,
-      "network_packets_recv": 745319,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-19 23:26:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:26:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.86,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217028.22,
-      "disk_write_mb": 209663.09,
-      "network_sent_mb": 61.9,
-      "network_recv_mb": 1338.3,
-      "network_packets_sent": 584501,
-      "network_packets_recv": 745689,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-19 23:27:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:27:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217029.13,
-      "disk_write_mb": 209672.8,
-      "network_sent_mb": 62.03,
-      "network_recv_mb": 1338.6,
-      "network_packets_sent": 585472,
-      "network_packets_recv": 747486,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-19 23:27:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:27:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217029.78,
-      "disk_write_mb": 209684.05,
-      "network_sent_mb": 62.26,
-      "network_recv_mb": 1338.79,
-      "network_packets_sent": 586120,
-      "network_packets_recv": 748591,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-19 23:28:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:28:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217030.9,
-      "disk_write_mb": 209692.39,
-      "network_sent_mb": 62.37,
-      "network_recv_mb": 1339.11,
-      "network_packets_sent": 587377,
-      "network_packets_recv": 750818,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-19 23:28:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:28:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217033.08,
-      "disk_write_mb": 209729.23,
-      "network_sent_mb": 62.52,
-      "network_recv_mb": 1339.37,
-      "network_packets_sent": 587917,
-      "network_packets_recv": 751608,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:29:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:29:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.88,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217060.2,
-      "disk_write_mb": 209816.98,
-      "network_sent_mb": 62.56,
-      "network_recv_mb": 1339.39,
-      "network_packets_sent": 587987,
-      "network_packets_recv": 751710,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-19 23:30:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:30:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217061.9,
-      "disk_write_mb": 209847.1,
-      "network_sent_mb": 62.86,
-      "network_recv_mb": 1339.51,
-      "network_packets_sent": 588464,
-      "network_packets_recv": 752158,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:30:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:30:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.82,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217063.06,
-      "disk_write_mb": 209911.61,
-      "network_sent_mb": 62.91,
-      "network_recv_mb": 1339.56,
-      "network_packets_sent": 588620,
-      "network_packets_recv": 752357,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-19 23:31:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:31:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.78,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217063.39,
-      "disk_write_mb": 209968.29,
-      "network_sent_mb": 62.98,
-      "network_recv_mb": 1339.62,
-      "network_packets_sent": 588773,
-      "network_packets_recv": 752551,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-19 23:31:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:31:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217064.59,
-      "disk_write_mb": 210041.85,
-      "network_sent_mb": 63.05,
-      "network_recv_mb": 1339.66,
-      "network_packets_sent": 588905,
-      "network_packets_recv": 752758,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-19 23:32:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:32:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.82,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217064.71,
-      "disk_write_mb": 210094.93,
-      "network_sent_mb": 63.11,
-      "network_recv_mb": 1339.7,
-      "network_packets_sent": 589040,
-      "network_packets_recv": 752907,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-19 23:33:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:33:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.85,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217065.98,
-      "disk_write_mb": 210163.96,
-      "network_sent_mb": 63.18,
-      "network_recv_mb": 1339.74,
-      "network_packets_sent": 589226,
-      "network_packets_recv": 753107,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-19 23:33:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:33:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.79,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217066.2,
-      "disk_write_mb": 210199.55,
-      "network_sent_mb": 63.21,
-      "network_recv_mb": 1339.78,
-      "network_packets_sent": 589281,
-      "network_packets_recv": 753228,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-19 23:34:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-19 23:34:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 6.5,
-      "disk_usage": 53.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 256.37,
-      "disk_read_mb": 217066.29,
-      "disk_write_mb": 210233.89,
-      "network_sent_mb": 63.29,
-      "network_recv_mb": 1339.88,
-      "network_packets_sent": 589537,
-      "network_packets_recv": 753485,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 16.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 256.37,
-          "free_gb": 219.57,
-          "percent_used": 53.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260119_19.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260119_19.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2969 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-19 19:25:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:25:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.38,
-      "swap_usage": 11.1,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 98938.81,
-      "disk_write_mb": 98943.26,
-      "network_sent_mb": 6.72,
-      "network_recv_mb": 50.45,
-      "network_packets_sent": 22559,
-      "network_packets_recv": 35984,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:26:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:26:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 11.1,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 98965.24,
-      "disk_write_mb": 98989.85,
-      "network_sent_mb": 6.84,
-      "network_recv_mb": 50.86,
-      "network_packets_sent": 22932,
-      "network_packets_recv": 36471,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-19 19:27:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:27:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.26,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99272.73,
-      "disk_write_mb": 99362.76,
-      "network_sent_mb": 7.14,
-      "network_recv_mb": 52.49,
-      "network_packets_sent": 23824,
-      "network_packets_recv": 37555,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:27:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:27:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99357.65,
-      "disk_write_mb": 99392.61,
-      "network_sent_mb": 7.38,
-      "network_recv_mb": 52.67,
-      "network_packets_sent": 24332,
-      "network_packets_recv": 38146,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-19 19:28:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:28:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.24,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99359.96,
-      "disk_write_mb": 99402.88,
-      "network_sent_mb": 7.71,
-      "network_recv_mb": 52.76,
-      "network_packets_sent": 24760,
-      "network_packets_recv": 38552,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-19 19:29:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:29:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.32,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99360.96,
-      "disk_write_mb": 99411.32,
-      "network_sent_mb": 8.01,
-      "network_recv_mb": 52.92,
-      "network_packets_sent": 25317,
-      "network_packets_recv": 39193,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-19 19:29:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:29:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.42,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99361.9,
-      "disk_write_mb": 99419.77,
-      "network_sent_mb": 8.13,
-      "network_recv_mb": 53.14,
-      "network_packets_sent": 26259,
-      "network_packets_recv": 40460,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:30:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:30:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99400.99,
-      "disk_write_mb": 99428.75,
-      "network_sent_mb": 8.27,
-      "network_recv_mb": 53.27,
-      "network_packets_sent": 26716,
-      "network_packets_recv": 41079,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:31:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:31:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99675.34,
-      "disk_write_mb": 99438.79,
-      "network_sent_mb": 8.42,
-      "network_recv_mb": 53.4,
-      "network_packets_sent": 27031,
-      "network_packets_recv": 41458,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:31:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:31:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.95,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99676.66,
-      "disk_write_mb": 99447.72,
-      "network_sent_mb": 8.52,
-      "network_recv_mb": 53.49,
-      "network_packets_sent": 27330,
-      "network_packets_recv": 41819,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:32:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:32:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99678.07,
-      "disk_write_mb": 99460.66,
-      "network_sent_mb": 8.61,
-      "network_recv_mb": 53.57,
-      "network_packets_sent": 27530,
-      "network_packets_recv": 42080,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:32:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:32:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99681.27,
-      "disk_write_mb": 99469.72,
-      "network_sent_mb": 8.69,
-      "network_recv_mb": 53.65,
-      "network_packets_sent": 27703,
-      "network_packets_recv": 42331,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:33:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:33:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99681.74,
-      "disk_write_mb": 99477.3,
-      "network_sent_mb": 8.83,
-      "network_recv_mb": 53.79,
-      "network_packets_sent": 28185,
-      "network_packets_recv": 42971,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:34:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:34:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99682.39,
-      "disk_write_mb": 99485.98,
-      "network_sent_mb": 9.0,
-      "network_recv_mb": 53.93,
-      "network_packets_sent": 28923,
-      "network_packets_recv": 43879,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:34:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:34:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 11.0,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99682.75,
-      "disk_write_mb": 99497.56,
-      "network_sent_mb": 9.23,
-      "network_recv_mb": 54.11,
-      "network_packets_sent": 29425,
-      "network_packets_recv": 44535,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:35:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:35:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 11.1,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99683.26,
-      "disk_write_mb": 99521.58,
-      "network_sent_mb": 9.39,
-      "network_recv_mb": 54.25,
-      "network_packets_sent": 29984,
-      "network_packets_recv": 45293,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:36:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:36:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.14,
-      "swap_usage": 11.1,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99684.66,
-      "disk_write_mb": 99533.01,
-      "network_sent_mb": 9.63,
-      "network_recv_mb": 54.44,
-      "network_packets_sent": 30450,
-      "network_packets_recv": 45853,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:36:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:36:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.83,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99695.59,
-      "disk_write_mb": 99572.62,
-      "network_sent_mb": 10.42,
-      "network_recv_mb": 55.03,
-      "network_packets_sent": 31528,
-      "network_packets_recv": 47254,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:37:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:37:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.63,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99721.54,
-      "disk_write_mb": 99584.43,
-      "network_sent_mb": 10.61,
-      "network_recv_mb": 55.26,
-      "network_packets_sent": 32220,
-      "network_packets_recv": 48227,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:38:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:38:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.96,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99721.65,
-      "disk_write_mb": 99591.27,
-      "network_sent_mb": 10.7,
-      "network_recv_mb": 55.4,
-      "network_packets_sent": 32920,
-      "network_packets_recv": 49212,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:38:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:38:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.04,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99721.9,
-      "disk_write_mb": 99597.97,
-      "network_sent_mb": 10.77,
-      "network_recv_mb": 55.54,
-      "network_packets_sent": 33569,
-      "network_packets_recv": 50173,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:39:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:39:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99723.98,
-      "disk_write_mb": 99607.19,
-      "network_sent_mb": 10.84,
-      "network_recv_mb": 55.66,
-      "network_packets_sent": 34285,
-      "network_packets_recv": 51166,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-19 19:39:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-19 19:39:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.99,
-      "swap_usage": 11.3,
-      "disk_usage": 57.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 274.19,
-      "disk_read_mb": 99724.43,
-      "disk_write_mb": 99616.63,
-      "network_sent_mb": 10.95,
-      "network_recv_mb": 55.83,
-      "network_packets_sent": 35047,
-      "network_packets_recv": 52276,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 13.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 274.19,
-          "free_gb": 201.75,
-          "percent_used": 57.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260120_17.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260120_17.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,2969 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-20 17:13:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:13:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 11.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.92,
-      "disk_read_mb": 131558.36,
-      "disk_write_mb": 132561.02,
-      "network_sent_mb": 26.48,
-      "network_recv_mb": 149.53,
-      "network_packets_sent": 98090,
-      "network_packets_recv": 157744,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.92,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:13:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:13:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 11.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.92,
-      "disk_read_mb": 131580.15,
-      "disk_write_mb": 132623.91,
-      "network_sent_mb": 27.08,
-      "network_recv_mb": 153.1,
-      "network_packets_sent": 100605,
-      "network_packets_recv": 161035,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.92,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:14:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:14:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.47,
-      "swap_usage": 11.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.93,
-      "disk_read_mb": 131621.42,
-      "disk_write_mb": 132720.63,
-      "network_sent_mb": 30.07,
-      "network_recv_mb": 178.71,
-      "network_packets_sent": 110231,
-      "network_packets_recv": 182202,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.93,
-          "free_gb": 172.01,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:14:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:14:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.29,
-      "swap_usage": 11.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.93,
-      "disk_read_mb": 131623.59,
-      "disk_write_mb": 132739.1,
-      "network_sent_mb": 30.23,
-      "network_recv_mb": 179.19,
-      "network_packets_sent": 110854,
-      "network_packets_recv": 183125,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.93,
-          "free_gb": 172.01,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:15:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:15:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 39.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.24,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 131647.94,
-      "disk_write_mb": 132835.75,
-      "network_sent_mb": 32.33,
-      "network_recv_mb": 224.66,
-      "network_packets_sent": 126849,
-      "network_packets_recv": 204605,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:16:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:16:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.08,
-      "swap_usage": 11.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131682.3,
-      "disk_write_mb": 132884.22,
-      "network_sent_mb": 32.94,
-      "network_recv_mb": 229.64,
-      "network_packets_sent": 129128,
-      "network_packets_recv": 209281,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:16:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:16:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.23,
-      "swap_usage": 11.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131691.33,
-      "disk_write_mb": 132907.34,
-      "network_sent_mb": 33.27,
-      "network_recv_mb": 231.17,
-      "network_packets_sent": 130263,
-      "network_packets_recv": 211564,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:17:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:17:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 11.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131706.04,
-      "disk_write_mb": 132941.02,
-      "network_sent_mb": 34.22,
-      "network_recv_mb": 244.57,
-      "network_packets_sent": 136148,
-      "network_packets_recv": 218197,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:18:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:18:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.18,
-      "swap_usage": 11.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131726.68,
-      "disk_write_mb": 132964.45,
-      "network_sent_mb": 35.17,
-      "network_recv_mb": 245.85,
-      "network_packets_sent": 137789,
-      "network_packets_recv": 220535,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:18:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:18:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131729.15,
-      "disk_write_mb": 132978.9,
-      "network_sent_mb": 35.68,
-      "network_recv_mb": 246.12,
-      "network_packets_sent": 138769,
-      "network_packets_recv": 221545,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:19:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:19:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131730.79,
-      "disk_write_mb": 132991.52,
-      "network_sent_mb": 35.93,
-      "network_recv_mb": 246.27,
-      "network_packets_sent": 139497,
-      "network_packets_recv": 222343,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:20:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:20:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131740.42,
-      "disk_write_mb": 133034.44,
-      "network_sent_mb": 36.12,
-      "network_recv_mb": 246.43,
-      "network_packets_sent": 140128,
-      "network_packets_recv": 223143,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:20:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:20:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131743.42,
-      "disk_write_mb": 133045.37,
-      "network_sent_mb": 36.35,
-      "network_recv_mb": 246.59,
-      "network_packets_sent": 141052,
-      "network_packets_recv": 224219,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:21:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:21:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.26,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.92,
-      "disk_read_mb": 131743.67,
-      "disk_write_mb": 133055.3,
-      "network_sent_mb": 37.15,
-      "network_recv_mb": 246.68,
-      "network_packets_sent": 141887,
-      "network_packets_recv": 225042,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.92,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:21:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:21:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131825.4,
-      "disk_write_mb": 133075.99,
-      "network_sent_mb": 37.64,
-      "network_recv_mb": 246.97,
-      "network_packets_sent": 142683,
-      "network_packets_recv": 225988,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:22:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:22:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.34,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131854.08,
-      "disk_write_mb": 133088.98,
-      "network_sent_mb": 37.81,
-      "network_recv_mb": 247.29,
-      "network_packets_sent": 143809,
-      "network_packets_recv": 227519,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:23:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:23:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.47,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131855.15,
-      "disk_write_mb": 133106.02,
-      "network_sent_mb": 37.9,
-      "network_recv_mb": 247.55,
-      "network_packets_sent": 144703,
-      "network_packets_recv": 228832,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:23:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:23:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131855.38,
-      "disk_write_mb": 133115.59,
-      "network_sent_mb": 38.07,
-      "network_recv_mb": 247.66,
-      "network_packets_sent": 145322,
-      "network_packets_recv": 229622,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:24:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:24:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131855.77,
-      "disk_write_mb": 133124.22,
-      "network_sent_mb": 38.26,
-      "network_recv_mb": 247.78,
-      "network_packets_sent": 145934,
-      "network_packets_recv": 230361,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-20 17:25:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:25:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.31,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131855.92,
-      "disk_write_mb": 133133.67,
-      "network_sent_mb": 38.38,
-      "network_recv_mb": 247.94,
-      "network_packets_sent": 146790,
-      "network_packets_recv": 231474,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:25:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:25:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.36,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131856.45,
-      "disk_write_mb": 133143.59,
-      "network_sent_mb": 38.47,
-      "network_recv_mb": 248.05,
-      "network_packets_sent": 147539,
-      "network_packets_recv": 232416,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:26:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:26:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.52,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131857.52,
-      "disk_write_mb": 133152.57,
-      "network_sent_mb": 38.63,
-      "network_recv_mb": 248.19,
-      "network_packets_sent": 148298,
-      "network_packets_recv": 233340,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20 17:26:53",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20 17:26:53",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 11.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 131888.71,
-      "disk_write_mb": 133178.97,
-      "network_sent_mb": 38.72,
-      "network_recv_mb": 248.26,
-      "network_packets_sent": 148527,
-      "network_packets_recv": 233665,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 11.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260120_18.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260120_18.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,518 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-20T18:58:01.012693",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20T18:58:01.012693",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.57,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 134270.02,
-      "disk_write_mb": 136297.85,
-      "network_sent_mb": 76.57,
-      "network_recv_mb": 317.74,
-      "network_packets_sent": 242095,
-      "network_packets_recv": 373792,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 156.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20T18:58:35.577410",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20T18:58:35.577410",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 134281.91,
-      "disk_write_mb": 136301.41,
-      "network_sent_mb": 76.63,
-      "network_recv_mb": 317.8,
-      "network_packets_sent": 242288,
-      "network_packets_recv": 374086,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 156.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20T18:59:09.781525",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20T18:59:09.781525",
-      "is_sysmon_available": false,
-      "cpu_usage": 39.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.71,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 134284.46,
-      "disk_write_mb": 136303.97,
-      "network_sent_mb": 76.74,
-      "network_recv_mb": 318.06,
-      "network_packets_sent": 242714,
-      "network_packets_recv": 374631,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 156.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-20T18:59:47.831906",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20T18:59:47.831906",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.59,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 134285.08,
-      "disk_write_mb": 136362.22,
-      "network_sent_mb": 77.03,
-      "network_recv_mb": 318.19,
-      "network_packets_sent": 243216,
-      "network_packets_recv": 375161,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 156.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260120_19.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260120_19.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,131 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-20T19:00:25.008187",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-20T19:00:25.008187",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.74,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 134353.18,
-      "disk_write_mb": 136376.69,
-      "network_sent_mb": 77.06,
-      "network_recv_mb": 318.23,
-      "network_packets_sent": 243358,
-      "network_packets_recv": 375417,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 156.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.03,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260121_00.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260121_00.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11354 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-21T00:02:46.285010",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:02:46.285010",
-      "is_sysmon_available": false,
-      "cpu_usage": 47.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.87,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 135662.02,
-      "disk_write_mb": 136597.58,
-      "network_sent_mb": 77.96,
-      "network_recv_mb": 322.42,
-      "network_packets_sent": 246510,
-      "network_packets_recv": 378753,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:03:30.198177",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:03:30.198177",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.83,
-      "swap_usage": 9.9,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.86,
-      "disk_read_mb": 135977.59,
-      "disk_write_mb": 136713.53,
-      "network_sent_mb": 78.87,
-      "network_recv_mb": 325.82,
-      "network_packets_sent": 248718,
-      "network_packets_recv": 381388,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.86,
-          "free_gb": 172.08,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:04:11.431103",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:04:11.431103",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.74,
-      "swap_usage": 9.9,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.93,
-      "disk_read_mb": 136136.29,
-      "disk_write_mb": 136841.37,
-      "network_sent_mb": 79.79,
-      "network_recv_mb": 344.48,
-      "network_packets_sent": 256173,
-      "network_packets_recv": 392578,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.93,
-          "free_gb": 172.01,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:04:52.899226",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:04:52.899226",
-      "is_sysmon_available": false,
-      "cpu_usage": 48.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.68,
-      "swap_usage": 9.9,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136392.88,
-      "disk_write_mb": 137010.72,
-      "network_sent_mb": 80.41,
-      "network_recv_mb": 351.9,
-      "network_packets_sent": 257762,
-      "network_packets_recv": 399438,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 97,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:05:32.635286",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:05:32.635286",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.44,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136414.48,
-      "disk_write_mb": 137076.71,
-      "network_sent_mb": 80.91,
-      "network_recv_mb": 353.2,
-      "network_packets_sent": 259249,
-      "network_packets_recv": 401886,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 97,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:06:12.815123",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:06:12.815123",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.32,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136440.51,
-      "disk_write_mb": 137094.9,
-      "network_sent_mb": 81.28,
-      "network_recv_mb": 354.01,
-      "network_packets_sent": 260340,
-      "network_packets_recv": 403204,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 96,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:06:53.116893",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:06:53.116893",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.35,
-      "swap_usage": 9.8,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136475.59,
-      "disk_write_mb": 137120.39,
-      "network_sent_mb": 81.52,
-      "network_recv_mb": 355.13,
-      "network_packets_sent": 261507,
-      "network_packets_recv": 404683,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 96,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:07:32.479579",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:07:32.479579",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.85,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136562.53,
-      "disk_write_mb": 137218.22,
-      "network_sent_mb": 82.39,
-      "network_recv_mb": 370.51,
-      "network_packets_sent": 264889,
-      "network_packets_recv": 418724,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 161.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 96,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:08:11.198756",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:08:11.198756",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.65,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136567.99,
-      "disk_write_mb": 137230.15,
-      "network_sent_mb": 82.56,
-      "network_recv_mb": 370.69,
-      "network_packets_sent": 265944,
-      "network_packets_recv": 420082,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 95,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:08:49.716738",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:08:49.716738",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.82,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136571.66,
-      "disk_write_mb": 137243.35,
-      "network_sent_mb": 82.74,
-      "network_recv_mb": 370.85,
-      "network_packets_sent": 266462,
-      "network_packets_recv": 420679,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 95,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:09:29.959686",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:09:29.959686",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 96.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 15.08,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 136580.61,
-      "disk_write_mb": 137254.84,
-      "network_sent_mb": 82.84,
-      "network_recv_mb": 370.95,
-      "network_packets_sent": 266741,
-      "network_packets_recv": 421066,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 94,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:10:12.148154",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:10:12.148154",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.93,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136629.77,
-      "disk_write_mb": 137285.68,
-      "network_sent_mb": 83.01,
-      "network_recv_mb": 371.41,
-      "network_packets_sent": 267383,
-      "network_packets_recv": 421938,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 94,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:10:51.795261",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:10:51.795261",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.97,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136655.34,
-      "disk_write_mb": 137303.3,
-      "network_sent_mb": 83.12,
-      "network_recv_mb": 371.79,
-      "network_packets_sent": 267867,
-      "network_packets_recv": 422557,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 94,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:11:32.026036",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:11:32.026036",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.92,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136676.85,
-      "disk_write_mb": 137321.84,
-      "network_sent_mb": 83.41,
-      "network_recv_mb": 372.1,
-      "network_packets_sent": 268235,
-      "network_packets_recv": 423089,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:12:10.667273",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:12:10.667273",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.98,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136678.87,
-      "disk_write_mb": 137334.94,
-      "network_sent_mb": 83.62,
-      "network_recv_mb": 372.26,
-      "network_packets_sent": 268782,
-      "network_packets_recv": 423738,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:12:49.967772",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:12:49.967772",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.24,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136685.58,
-      "disk_write_mb": 137351.94,
-      "network_sent_mb": 83.92,
-      "network_recv_mb": 372.52,
-      "network_packets_sent": 269775,
-      "network_packets_recv": 425002,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:13:28.255581",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:13:28.255581",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.47,
-      "swap_usage": 10.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136686.31,
-      "disk_write_mb": 137364.02,
-      "network_sent_mb": 84.15,
-      "network_recv_mb": 372.67,
-      "network_packets_sent": 270705,
-      "network_packets_recv": 426078,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:14:07.654943",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:14:07.654943",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.63,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136710.37,
-      "disk_write_mb": 137378.84,
-      "network_sent_mb": 84.38,
-      "network_recv_mb": 373.07,
-      "network_packets_sent": 271553,
-      "network_packets_recv": 427259,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:14:47.255522",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:14:47.255522",
-      "is_sysmon_available": false,
-      "cpu_usage": 37.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.74,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136742.36,
-      "disk_write_mb": 137394.99,
-      "network_sent_mb": 84.55,
-      "network_recv_mb": 373.23,
-      "network_packets_sent": 271946,
-      "network_packets_recv": 427740,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:15:26.816023",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:15:26.816023",
-      "is_sysmon_available": false,
-      "cpu_usage": 56.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.6,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136789.97,
-      "disk_write_mb": 137407.45,
-      "network_sent_mb": 84.8,
-      "network_recv_mb": 373.48,
-      "network_packets_sent": 272582,
-      "network_packets_recv": 428606,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:16:06.489037",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:16:06.489037",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 93.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.61,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136808.12,
-      "disk_write_mb": 137422.51,
-      "network_sent_mb": 85.04,
-      "network_recv_mb": 373.72,
-      "network_packets_sent": 273262,
-      "network_packets_recv": 429680,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:16:46.211667",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:16:46.211667",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.57,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 136823.03,
-      "disk_write_mb": 137443.55,
-      "network_sent_mb": 85.2,
-      "network_recv_mb": 374.73,
-      "network_packets_sent": 274014,
-      "network_packets_recv": 431101,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:17:25.480965",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:17:25.480965",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.33,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136894.29,
-      "disk_write_mb": 137490.68,
-      "network_sent_mb": 85.32,
-      "network_recv_mb": 377.42,
-      "network_packets_sent": 275087,
-      "network_packets_recv": 432415,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:18:05.217152",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:18:05.217152",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.47,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136905.64,
-      "disk_write_mb": 137515.72,
-      "network_sent_mb": 85.44,
-      "network_recv_mb": 377.58,
-      "network_packets_sent": 275439,
-      "network_packets_recv": 432894,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:18:44.932782",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:18:44.932782",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.44,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136916.94,
-      "disk_write_mb": 137530.25,
-      "network_sent_mb": 85.62,
-      "network_recv_mb": 377.74,
-      "network_packets_sent": 275831,
-      "network_packets_recv": 433397,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:19:22.494361",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:19:22.494361",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136917.69,
-      "disk_write_mb": 137540.48,
-      "network_sent_mb": 85.67,
-      "network_recv_mb": 377.87,
-      "network_packets_sent": 276080,
-      "network_packets_recv": 433765,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:20:01.453335",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:20:01.453335",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136918.11,
-      "disk_write_mb": 137555.1,
-      "network_sent_mb": 85.75,
-      "network_recv_mb": 377.96,
-      "network_packets_sent": 276335,
-      "network_packets_recv": 434142,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:20:40.403003",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:20:40.403003",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.39,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136922.77,
-      "disk_write_mb": 137569.05,
-      "network_sent_mb": 85.78,
-      "network_recv_mb": 378.01,
-      "network_packets_sent": 276451,
-      "network_packets_recv": 434383,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:21:20.268275",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:21:20.268275",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.43,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136924.04,
-      "disk_write_mb": 137585.32,
-      "network_sent_mb": 85.9,
-      "network_recv_mb": 378.18,
-      "network_packets_sent": 276886,
-      "network_packets_recv": 434951,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:21:58.718093",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:21:58.718093",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.44,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136924.68,
-      "disk_write_mb": 137599.36,
-      "network_sent_mb": 86.0,
-      "network_recv_mb": 378.32,
-      "network_packets_sent": 277192,
-      "network_packets_recv": 435423,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:22:36.750225",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:22:36.750225",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.3,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136940.45,
-      "disk_write_mb": 137612.56,
-      "network_sent_mb": 86.05,
-      "network_recv_mb": 378.37,
-      "network_packets_sent": 277352,
-      "network_packets_recv": 435694,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:23:15.413682",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:23:15.413682",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.32,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136962.68,
-      "disk_write_mb": 137625.91,
-      "network_sent_mb": 86.1,
-      "network_recv_mb": 378.44,
-      "network_packets_sent": 277533,
-      "network_packets_recv": 435982,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:23:53.831397",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:23:53.831397",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.27,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136963.6,
-      "disk_write_mb": 137639.65,
-      "network_sent_mb": 86.14,
-      "network_recv_mb": 378.51,
-      "network_packets_sent": 277687,
-      "network_packets_recv": 436280,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:24:32.642723",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:24:32.642723",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.3,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136964.11,
-      "disk_write_mb": 137654.91,
-      "network_sent_mb": 86.21,
-      "network_recv_mb": 378.74,
-      "network_packets_sent": 277945,
-      "network_packets_recv": 436708,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:25:10.885927",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:25:10.885927",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.34,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136964.4,
-      "disk_write_mb": 137668.47,
-      "network_sent_mb": 86.27,
-      "network_recv_mb": 378.82,
-      "network_packets_sent": 278130,
-      "network_packets_recv": 437052,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:25:49.292518",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:25:49.292518",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.03,
-      "disk_read_mb": 136969.93,
-      "disk_write_mb": 137682.15,
-      "network_sent_mb": 86.33,
-      "network_recv_mb": 378.89,
-      "network_packets_sent": 278303,
-      "network_packets_recv": 437355,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.03,
-          "free_gb": 171.91,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:26:28.783697",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:26:28.783697",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 137002.56,
-      "disk_write_mb": 137717.13,
-      "network_sent_mb": 86.4,
-      "network_recv_mb": 378.96,
-      "network_packets_sent": 278481,
-      "network_packets_recv": 437665,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:27:07.678766",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:27:07.678766",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.45,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 137005.15,
-      "disk_write_mb": 137729.94,
-      "network_sent_mb": 86.45,
-      "network_recv_mb": 379.05,
-      "network_packets_sent": 278667,
-      "network_packets_recv": 437979,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:27:46.089354",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:27:46.089354",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 137005.6,
-      "disk_write_mb": 137746.63,
-      "network_sent_mb": 86.51,
-      "network_recv_mb": 379.12,
-      "network_packets_sent": 278852,
-      "network_packets_recv": 438305,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:28:24.689619",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:28:24.689619",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.58,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 137031.07,
-      "disk_write_mb": 137761.13,
-      "network_sent_mb": 87.09,
-      "network_recv_mb": 379.64,
-      "network_packets_sent": 279666,
-      "network_packets_recv": 439381,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:29:03.045140",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:29:03.045140",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.85,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.02,
-      "disk_read_mb": 137032.35,
-      "disk_write_mb": 137779.18,
-      "network_sent_mb": 87.28,
-      "network_recv_mb": 379.81,
-      "network_packets_sent": 280100,
-      "network_packets_recv": 439894,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.02,
-          "free_gb": 171.92,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:29:42.941613",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:29:42.941613",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.71,
-      "swap_usage": 10.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137046.02,
-      "disk_write_mb": 137797.4,
-      "network_sent_mb": 87.52,
-      "network_recv_mb": 380.29,
-      "network_packets_sent": 281000,
-      "network_packets_recv": 441109,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:30:25.127919",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:30:25.127919",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.47,
-      "swap_usage": 15.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137208.63,
-      "disk_write_mb": 139239.53,
-      "network_sent_mb": 90.02,
-      "network_recv_mb": 388.53,
-      "network_packets_sent": 289688,
-      "network_packets_recv": 451506,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:31:05.306555",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:31:05.306555",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.27,
-      "swap_usage": 15.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137240.12,
-      "disk_write_mb": 139262.12,
-      "network_sent_mb": 90.38,
-      "network_recv_mb": 390.06,
-      "network_packets_sent": 291014,
-      "network_packets_recv": 453574,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:31:45.438062",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:31:45.438062",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.23,
-      "swap_usage": 15.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137447.61,
-      "disk_write_mb": 139277.55,
-      "network_sent_mb": 90.52,
-      "network_recv_mb": 390.27,
-      "network_packets_sent": 291459,
-      "network_packets_recv": 454137,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:32:24.913948",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:32:24.913948",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.2,
-      "swap_usage": 15.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137469.69,
-      "disk_write_mb": 139290.13,
-      "network_sent_mb": 90.76,
-      "network_recv_mb": 390.5,
-      "network_packets_sent": 292161,
-      "network_packets_recv": 454938,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T00:33:06.613317",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:33:06.613317",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.22,
-      "swap_usage": 15.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.01,
-      "disk_read_mb": 137655.75,
-      "disk_write_mb": 139313.91,
-      "network_sent_mb": 91.25,
-      "network_recv_mb": 392.34,
-      "network_packets_sent": 293946,
-      "network_packets_recv": 456904,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.01,
-          "free_gb": 171.93,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:33:47.122395",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:33:47.122395",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 14.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137700.83,
-      "disk_write_mb": 139329.95,
-      "network_sent_mb": 91.62,
-      "network_recv_mb": 392.67,
-      "network_packets_sent": 294787,
-      "network_packets_recv": 457863,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:34:26.999434",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:34:26.999434",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 14.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137710.54,
-      "disk_write_mb": 139340.71,
-      "network_sent_mb": 91.7,
-      "network_recv_mb": 392.78,
-      "network_packets_sent": 295007,
-      "network_packets_recv": 458209,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:35:07.651269",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:35:07.651269",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 14.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137745.95,
-      "disk_write_mb": 139356.65,
-      "network_sent_mb": 91.95,
-      "network_recv_mb": 393.06,
-      "network_packets_sent": 295738,
-      "network_packets_recv": 459072,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:35:47.967201",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:35:47.967201",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 14.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137821.51,
-      "disk_write_mb": 139373.86,
-      "network_sent_mb": 92.11,
-      "network_recv_mb": 393.28,
-      "network_packets_sent": 296854,
-      "network_packets_recv": 460507,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:36:28.054478",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:36:28.054478",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.32,
-      "swap_usage": 14.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137827.78,
-      "disk_write_mb": 139385.95,
-      "network_sent_mb": 92.3,
-      "network_recv_mb": 393.47,
-      "network_packets_sent": 297379,
-      "network_packets_recv": 461157,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:37:08.012200",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:37:08.012200",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.31,
-      "swap_usage": 14.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137929.14,
-      "disk_write_mb": 139408.57,
-      "network_sent_mb": 93.15,
-      "network_recv_mb": 394.52,
-      "network_packets_sent": 298507,
-      "network_packets_recv": 462830,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:37:47.794180",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:37:47.794180",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.97,
-      "swap_usage": 14.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137937.52,
-      "disk_write_mb": 139434.38,
-      "network_sent_mb": 93.19,
-      "network_recv_mb": 394.58,
-      "network_packets_sent": 298661,
-      "network_packets_recv": 463113,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:38:28.238070",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:38:28.238070",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.24,
-      "swap_usage": 14.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137940.77,
-      "disk_write_mb": 139447.01,
-      "network_sent_mb": 93.45,
-      "network_recv_mb": 394.86,
-      "network_packets_sent": 299616,
-      "network_packets_recv": 464297,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:39:08.769180",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:39:08.769180",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.36,
-      "swap_usage": 14.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137947.35,
-      "disk_write_mb": 139461.78,
-      "network_sent_mb": 93.65,
-      "network_recv_mb": 395.1,
-      "network_packets_sent": 300803,
-      "network_packets_recv": 465783,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:39:49.381042",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:39:49.381042",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.41,
-      "swap_usage": 14.0,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.0,
-      "disk_read_mb": 137960.25,
-      "disk_write_mb": 139475.84,
-      "network_sent_mb": 93.77,
-      "network_recv_mb": 395.27,
-      "network_packets_sent": 301189,
-      "network_packets_recv": 466296,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.0,
-          "free_gb": 171.94,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:40:29.215917",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:40:29.215917",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.47,
-      "swap_usage": 13.8,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.41,
-      "disk_read_mb": 138005.67,
-      "disk_write_mb": 139501.98,
-      "network_sent_mb": 93.99,
-      "network_recv_mb": 395.39,
-      "network_packets_sent": 301664,
-      "network_packets_recv": 466859,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.41,
-          "free_gb": 172.53,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:41:08.598241",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:41:08.598241",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.17,
-      "swap_usage": 14.7,
-      "disk_usage": 63.5,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 302.18,
-      "disk_read_mb": 138020.41,
-      "disk_write_mb": 139513.48,
-      "network_sent_mb": 94.07,
-      "network_recv_mb": 395.51,
-      "network_packets_sent": 301938,
-      "network_packets_recv": 467274,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 302.18,
-          "free_gb": 173.76,
-          "percent_used": 63.5
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:41:47.939733",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:41:47.939733",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.13,
-      "swap_usage": 14.8,
-      "disk_usage": 63.5,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 302.09,
-      "disk_read_mb": 138021.42,
-      "disk_write_mb": 139532.61,
-      "network_sent_mb": 94.17,
-      "network_recv_mb": 395.62,
-      "network_packets_sent": 302219,
-      "network_packets_recv": 467693,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 302.09,
-          "free_gb": 173.85,
-          "percent_used": 63.5
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 74,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:42:27.000704",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:42:27.000704",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.13,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138027.09,
-      "disk_write_mb": 139545.07,
-      "network_sent_mb": 94.24,
-      "network_recv_mb": 395.73,
-      "network_packets_sent": 302434,
-      "network_packets_recv": 468042,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 74,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:43:05.545056",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:43:05.545056",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.05,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138028.55,
-      "disk_write_mb": 139560.99,
-      "network_sent_mb": 94.3,
-      "network_recv_mb": 395.8,
-      "network_packets_sent": 302615,
-      "network_packets_recv": 468328,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:43:45.078362",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:43:45.078362",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.32,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138034.85,
-      "disk_write_mb": 139573.73,
-      "network_sent_mb": 94.53,
-      "network_recv_mb": 396.01,
-      "network_packets_sent": 303564,
-      "network_packets_recv": 469495,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:44:23.453313",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:44:23.453313",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138035.86,
-      "disk_write_mb": 139596.82,
-      "network_sent_mb": 94.9,
-      "network_recv_mb": 396.23,
-      "network_packets_sent": 304215,
-      "network_packets_recv": 470213,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:45:03.182841",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:45:03.182841",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138037.35,
-      "disk_write_mb": 139610.66,
-      "network_sent_mb": 95.01,
-      "network_recv_mb": 396.35,
-      "network_packets_sent": 304518,
-      "network_packets_recv": 470638,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:45:42.409718",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:45:42.409718",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.27,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138038.35,
-      "disk_write_mb": 139622.2,
-      "network_sent_mb": 95.28,
-      "network_recv_mb": 396.52,
-      "network_packets_sent": 304999,
-      "network_packets_recv": 471213,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:46:22.101038",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:46:22.101038",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138136.07,
-      "disk_write_mb": 139637.34,
-      "network_sent_mb": 95.42,
-      "network_recv_mb": 396.65,
-      "network_packets_sent": 305360,
-      "network_packets_recv": 471679,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:47:00.175135",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:47:00.175135",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.23,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138137.31,
-      "disk_write_mb": 139657.48,
-      "network_sent_mb": 95.75,
-      "network_recv_mb": 396.85,
-      "network_packets_sent": 305921,
-      "network_packets_recv": 472335,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:47:38.731755",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:47:38.731755",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138138.62,
-      "disk_write_mb": 139671.14,
-      "network_sent_mb": 96.01,
-      "network_recv_mb": 396.98,
-      "network_packets_sent": 306351,
-      "network_packets_recv": 472814,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:48:18.335078",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:48:18.335078",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.39,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138140.45,
-      "disk_write_mb": 139682.8,
-      "network_sent_mb": 96.28,
-      "network_recv_mb": 397.15,
-      "network_packets_sent": 306859,
-      "network_packets_recv": 473396,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:48:58.017851",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:48:58.017851",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138142.18,
-      "disk_write_mb": 139697.69,
-      "network_sent_mb": 96.5,
-      "network_recv_mb": 397.33,
-      "network_packets_sent": 307265,
-      "network_packets_recv": 473928,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:49:36.827765",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:49:36.827765",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.44,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138143.19,
-      "disk_write_mb": 139710.09,
-      "network_sent_mb": 96.81,
-      "network_recv_mb": 397.5,
-      "network_packets_sent": 307808,
-      "network_packets_recv": 474514,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:50:16.506458",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:50:16.506458",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.44,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138146.9,
-      "disk_write_mb": 139727.68,
-      "network_sent_mb": 97.1,
-      "network_recv_mb": 397.68,
-      "network_packets_sent": 308307,
-      "network_packets_recv": 475107,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:50:55.134429",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:50:55.134429",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138165.18,
-      "disk_write_mb": 139761.44,
-      "network_sent_mb": 97.4,
-      "network_recv_mb": 397.92,
-      "network_packets_sent": 308891,
-      "network_packets_recv": 475784,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:51:33.511841",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:51:33.511841",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138178.22,
-      "disk_write_mb": 139773.62,
-      "network_sent_mb": 97.7,
-      "network_recv_mb": 398.11,
-      "network_packets_sent": 309421,
-      "network_packets_recv": 476374,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:52:12.941233",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:52:12.941233",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.49,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138202.56,
-      "disk_write_mb": 139787.97,
-      "network_sent_mb": 98.08,
-      "network_recv_mb": 398.37,
-      "network_packets_sent": 310054,
-      "network_packets_recv": 477118,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:52:51.069501",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:52:51.069501",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.53,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138203.5,
-      "disk_write_mb": 139799.94,
-      "network_sent_mb": 98.25,
-      "network_recv_mb": 398.52,
-      "network_packets_sent": 310470,
-      "network_packets_recv": 477627,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:53:29.916638",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:53:29.916638",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138230.88,
-      "disk_write_mb": 139812.8,
-      "network_sent_mb": 98.34,
-      "network_recv_mb": 398.6,
-      "network_packets_sent": 310687,
-      "network_packets_recv": 477958,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.04,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:54:08.649116",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:54:08.649116",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.58,
-      "swap_usage": 15.0,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138232.57,
-      "disk_write_mb": 139837.62,
-      "network_sent_mb": 98.8,
-      "network_recv_mb": 398.89,
-      "network_packets_sent": 311329,
-      "network_packets_recv": 478696,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.03,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:54:46.630365",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:54:46.630365",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.63,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138235.23,
-      "disk_write_mb": 139848.65,
-      "network_sent_mb": 98.92,
-      "network_recv_mb": 399.06,
-      "network_packets_sent": 312359,
-      "network_packets_recv": 480022,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.03,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:55:24.310548",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:55:24.310548",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.8,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.9,
-      "disk_read_mb": 138235.95,
-      "disk_write_mb": 139858.69,
-      "network_sent_mb": 99.03,
-      "network_recv_mb": 399.21,
-      "network_packets_sent": 313360,
-      "network_packets_recv": 481289,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.9,
-          "free_gb": 174.03,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:56:03.504354",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:56:03.504354",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.95,
-      "swap_usage": 14.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.91,
-      "disk_read_mb": 138246.4,
-      "disk_write_mb": 139876.74,
-      "network_sent_mb": 99.23,
-      "network_recv_mb": 399.99,
-      "network_packets_sent": 314310,
-      "network_packets_recv": 482714,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.91,
-          "free_gb": 174.03,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:56:41.290939",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:56:41.290939",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 15.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 138338.01,
-      "disk_write_mb": 139895.94,
-      "network_sent_mb": 100.19,
-      "network_recv_mb": 400.84,
-      "network_packets_sent": 315544,
-      "network_packets_recv": 484349,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.57,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:57:17.456208",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:57:17.456208",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.27,
-      "swap_usage": 15.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 138382.52,
-      "disk_write_mb": 139958.44,
-      "network_sent_mb": 100.31,
-      "network_recv_mb": 400.9,
-      "network_packets_sent": 315798,
-      "network_packets_recv": 484692,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:57:55.925447",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:57:55.925447",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.57,
-      "swap_usage": 15.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 138397.32,
-      "disk_write_mb": 140023.77,
-      "network_sent_mb": 100.51,
-      "network_recv_mb": 401.11,
-      "network_packets_sent": 316440,
-      "network_packets_recv": 485505,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:58:34.967672",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:58:34.967672",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 15.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 138397.84,
-      "disk_write_mb": 140036.17,
-      "network_sent_mb": 100.6,
-      "network_recv_mb": 401.2,
-      "network_packets_sent": 316811,
-      "network_packets_recv": 486009,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:59:13.697797",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:59:13.697797",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.32,
-      "swap_usage": 15.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 138399.18,
-      "disk_write_mb": 140053.74,
-      "network_sent_mb": 101.49,
-      "network_recv_mb": 401.9,
-      "network_packets_sent": 317872,
-      "network_packets_recv": 487405,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T00:59:51.402291",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T00:59:51.402291",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 15.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138405.15,
-      "disk_write_mb": 140103.63,
-      "network_sent_mb": 101.61,
-      "network_recv_mb": 402.1,
-      "network_packets_sent": 318202,
-      "network_packets_recv": 487881,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260121_01.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260121_01.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,8903 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-21T01:00:26.454897",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:00:26.454897",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 15.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138405.57,
-      "disk_write_mb": 140114.75,
-      "network_sent_mb": 101.71,
-      "network_recv_mb": 402.21,
-      "network_packets_sent": 318474,
-      "network_packets_recv": 488227,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:01:05.988088",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:01:05.988088",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.43,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138442.86,
-      "disk_write_mb": 140166.84,
-      "network_sent_mb": 101.85,
-      "network_recv_mb": 402.32,
-      "network_packets_sent": 318783,
-      "network_packets_recv": 488621,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:01:44.760288",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:01:44.760288",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.63,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138447.17,
-      "disk_write_mb": 140229.27,
-      "network_sent_mb": 102.1,
-      "network_recv_mb": 402.53,
-      "network_packets_sent": 319376,
-      "network_packets_recv": 489365,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:02:24.169933",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:02:24.169933",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.71,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138447.55,
-      "disk_write_mb": 140242.91,
-      "network_sent_mb": 102.19,
-      "network_recv_mb": 402.68,
-      "network_packets_sent": 319976,
-      "network_packets_recv": 490226,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:03:02.621165",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:03:02.621165",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.55,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138499.0,
-      "disk_write_mb": 140278.96,
-      "network_sent_mb": 103.46,
-      "network_recv_mb": 404.89,
-      "network_packets_sent": 321927,
-      "network_packets_recv": 493360,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:03:43.039122",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:03:43.039122",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.46,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138500.52,
-      "disk_write_mb": 140308.84,
-      "network_sent_mb": 103.57,
-      "network_recv_mb": 404.96,
-      "network_packets_sent": 322166,
-      "network_packets_recv": 493678,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:04:21.074887",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:04:21.074887",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 138500.93,
-      "disk_write_mb": 140381.21,
-      "network_sent_mb": 103.67,
-      "network_recv_mb": 405.05,
-      "network_packets_sent": 322403,
-      "network_packets_recv": 494008,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:04:59.359016",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:04:59.359016",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138585.17,
-      "disk_write_mb": 140443.74,
-      "network_sent_mb": 104.12,
-      "network_recv_mb": 405.18,
-      "network_packets_sent": 322812,
-      "network_packets_recv": 494584,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:05:39.407010",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:05:39.407010",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.83,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138587.27,
-      "disk_write_mb": 140464.97,
-      "network_sent_mb": 104.42,
-      "network_recv_mb": 405.45,
-      "network_packets_sent": 323504,
-      "network_packets_recv": 495304,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:06:17.490692",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:06:17.490692",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.84,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138592.5,
-      "disk_write_mb": 140477.51,
-      "network_sent_mb": 104.59,
-      "network_recv_mb": 405.76,
-      "network_packets_sent": 324273,
-      "network_packets_recv": 496409,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:06:55.142189",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:06:55.142189",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.74,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138604.87,
-      "disk_write_mb": 140500.88,
-      "network_sent_mb": 104.73,
-      "network_recv_mb": 405.86,
-      "network_packets_sent": 324570,
-      "network_packets_recv": 496794,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:07:33.814741",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:07:33.814741",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.59,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138624.9,
-      "disk_write_mb": 140544.14,
-      "network_sent_mb": 104.83,
-      "network_recv_mb": 405.94,
-      "network_packets_sent": 324795,
-      "network_packets_recv": 497125,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 162.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:08:13.326831",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:08:13.326831",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.66,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138625.67,
-      "disk_write_mb": 140559.69,
-      "network_sent_mb": 104.92,
-      "network_recv_mb": 406.09,
-      "network_packets_sent": 325044,
-      "network_packets_recv": 497520,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:08:51.333957",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:08:51.333957",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.9,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138630.63,
-      "disk_write_mb": 140576.54,
-      "network_sent_mb": 105.15,
-      "network_recv_mb": 406.41,
-      "network_packets_sent": 326167,
-      "network_packets_recv": 498940,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:09:29.561265",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:09:29.561265",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.71,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.33,
-      "disk_read_mb": 138632.51,
-      "disk_write_mb": 140597.08,
-      "network_sent_mb": 106.11,
-      "network_recv_mb": 407.14,
-      "network_packets_sent": 327344,
-      "network_packets_recv": 500392,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.33,
-          "free_gb": 174.61,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:10:09.035404",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:10:09.035404",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.59,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138648.53,
-      "disk_write_mb": 140631.38,
-      "network_sent_mb": 106.24,
-      "network_recv_mb": 407.23,
-      "network_packets_sent": 327662,
-      "network_packets_recv": 500806,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:10:48.046416",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:10:48.046416",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.94,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138673.06,
-      "disk_write_mb": 140651.93,
-      "network_sent_mb": 106.4,
-      "network_recv_mb": 407.47,
-      "network_packets_sent": 328171,
-      "network_packets_recv": 501462,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:11:27.426627",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:11:27.426627",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.8,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138675.58,
-      "disk_write_mb": 140666.28,
-      "network_sent_mb": 106.47,
-      "network_recv_mb": 407.54,
-      "network_packets_sent": 328335,
-      "network_packets_recv": 501718,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:12:02.784922",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:12:02.784922",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.05,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138676.02,
-      "disk_write_mb": 140677.53,
-      "network_sent_mb": 106.64,
-      "network_recv_mb": 407.69,
-      "network_packets_sent": 328672,
-      "network_packets_recv": 502150,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:12:42.661699",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:12:42.661699",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.06,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138677.76,
-      "disk_write_mb": 140694.95,
-      "network_sent_mb": 106.78,
-      "network_recv_mb": 407.89,
-      "network_packets_sent": 329486,
-      "network_packets_recv": 503429,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:13:20.502925",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:13:20.502925",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.45,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138678.48,
-      "disk_write_mb": 140706.21,
-      "network_sent_mb": 106.84,
-      "network_recv_mb": 407.98,
-      "network_packets_sent": 329694,
-      "network_packets_recv": 503747,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:13:59.755474",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:13:59.755474",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.7,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138679.5,
-      "disk_write_mb": 140723.48,
-      "network_sent_mb": 107.76,
-      "network_recv_mb": 408.68,
-      "network_packets_sent": 330737,
-      "network_packets_recv": 505082,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:14:39.705911",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:14:39.705911",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.65,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138689.54,
-      "disk_write_mb": 140738.65,
-      "network_sent_mb": 107.82,
-      "network_recv_mb": 408.75,
-      "network_packets_sent": 330924,
-      "network_packets_recv": 505379,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:15:14.847392",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:15:14.847392",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.54,
-      "swap_usage": 14.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138692.66,
-      "disk_write_mb": 140769.3,
-      "network_sent_mb": 107.95,
-      "network_recv_mb": 408.81,
-      "network_packets_sent": 331168,
-      "network_packets_recv": 505684,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:15:50.856191",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:15:50.856191",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.8,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138840.29,
-      "disk_write_mb": 140787.84,
-      "network_sent_mb": 108.02,
-      "network_recv_mb": 408.89,
-      "network_packets_sent": 331345,
-      "network_packets_recv": 505964,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:16:29.885103",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:16:29.885103",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.06,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138840.54,
-      "disk_write_mb": 140800.43,
-      "network_sent_mb": 108.23,
-      "network_recv_mb": 409.09,
-      "network_packets_sent": 332230,
-      "network_packets_recv": 507190,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:17:07.432655",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:17:07.432655",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138862.48,
-      "disk_write_mb": 140832.39,
-      "network_sent_mb": 108.27,
-      "network_recv_mb": 409.14,
-      "network_packets_sent": 332401,
-      "network_packets_recv": 507473,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:17:42.672898",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:17:42.672898",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.34,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138863.51,
-      "disk_write_mb": 140855.34,
-      "network_sent_mb": 108.42,
-      "network_recv_mb": 409.26,
-      "network_packets_sent": 332737,
-      "network_packets_recv": 507888,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:18:19.952303",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:18:19.952303",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.06,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138874.92,
-      "disk_write_mb": 140904.01,
-      "network_sent_mb": 108.55,
-      "network_recv_mb": 409.33,
-      "network_packets_sent": 332982,
-      "network_packets_recv": 508206,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:18:55.275200",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:18:55.275200",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.3,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138878.87,
-      "disk_write_mb": 140960.0,
-      "network_sent_mb": 108.67,
-      "network_recv_mb": 409.45,
-      "network_packets_sent": 333249,
-      "network_packets_recv": 508583,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:19:32.437774",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:19:32.437774",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.2,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138884.44,
-      "disk_write_mb": 141006.81,
-      "network_sent_mb": 108.76,
-      "network_recv_mb": 409.54,
-      "network_packets_sent": 333517,
-      "network_packets_recv": 508947,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:20:10.785810",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:20:10.785810",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.24,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138884.5,
-      "disk_write_mb": 141018.45,
-      "network_sent_mb": 108.95,
-      "network_recv_mb": 409.72,
-      "network_packets_sent": 334328,
-      "network_packets_recv": 510010,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:20:48.488007",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:20:48.488007",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.39,
-      "swap_usage": 14.3,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138884.83,
-      "disk_write_mb": 141048.02,
-      "network_sent_mb": 109.04,
-      "network_recv_mb": 409.88,
-      "network_packets_sent": 335026,
-      "network_packets_recv": 510901,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:21:26.738035",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:21:26.738035",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.52,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138904.47,
-      "disk_write_mb": 141060.91,
-      "network_sent_mb": 109.21,
-      "network_recv_mb": 409.99,
-      "network_packets_sent": 335362,
-      "network_packets_recv": 511296,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:22:06.505231",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:22:06.505231",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.34,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138904.53,
-      "disk_write_mb": 141094.85,
-      "network_sent_mb": 109.34,
-      "network_recv_mb": 410.14,
-      "network_packets_sent": 335751,
-      "network_packets_recv": 511805,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:22:46.342926",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:22:46.342926",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138904.83,
-      "disk_write_mb": 141163.02,
-      "network_sent_mb": 109.5,
-      "network_recv_mb": 410.26,
-      "network_packets_sent": 336109,
-      "network_packets_recv": 512310,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:23:24.325852",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:23:24.325852",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.29,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138905.13,
-      "disk_write_mb": 141173.86,
-      "network_sent_mb": 109.63,
-      "network_recv_mb": 410.36,
-      "network_packets_sent": 336508,
-      "network_packets_recv": 512896,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:24:02.816333",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:24:02.816333",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.21,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138905.29,
-      "disk_write_mb": 141191.65,
-      "network_sent_mb": 109.82,
-      "network_recv_mb": 410.61,
-      "network_packets_sent": 336987,
-      "network_packets_recv": 513496,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:24:41.280657",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:24:41.280657",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.12,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138915.81,
-      "disk_write_mb": 141203.87,
-      "network_sent_mb": 109.99,
-      "network_recv_mb": 410.71,
-      "network_packets_sent": 337343,
-      "network_packets_recv": 513923,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:25:20.946299",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:25:20.946299",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.17,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138929.5,
-      "disk_write_mb": 141216.8,
-      "network_sent_mb": 110.27,
-      "network_recv_mb": 412.01,
-      "network_packets_sent": 338619,
-      "network_packets_recv": 515551,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:25:59.128301",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:25:59.128301",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138949.74,
-      "disk_write_mb": 141231.15,
-      "network_sent_mb": 110.44,
-      "network_recv_mb": 412.2,
-      "network_packets_sent": 339316,
-      "network_packets_recv": 516486,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:26:36.478753",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:26:36.478753",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.01,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138951.15,
-      "disk_write_mb": 141247.89,
-      "network_sent_mb": 111.44,
-      "network_recv_mb": 412.97,
-      "network_packets_sent": 340528,
-      "network_packets_recv": 517975,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:27:16.082858",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:27:16.082858",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.9,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138951.54,
-      "disk_write_mb": 141261.86,
-      "network_sent_mb": 111.51,
-      "network_recv_mb": 413.03,
-      "network_packets_sent": 340724,
-      "network_packets_recv": 518269,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:27:54.598765",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:27:54.598765",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.11,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138953.67,
-      "disk_write_mb": 141275.88,
-      "network_sent_mb": 111.71,
-      "network_recv_mb": 413.22,
-      "network_packets_sent": 341474,
-      "network_packets_recv": 519280,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:28:32.170249",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:28:32.170249",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138954.04,
-      "disk_write_mb": 141285.34,
-      "network_sent_mb": 111.84,
-      "network_recv_mb": 413.31,
-      "network_packets_sent": 341728,
-      "network_packets_recv": 519641,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:29:11.188658",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:29:11.188658",
-      "is_sysmon_available": false,
-      "cpu_usage": 39.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.03,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138963.05,
-      "disk_write_mb": 141295.93,
-      "network_sent_mb": 111.92,
-      "network_recv_mb": 413.36,
-      "network_packets_sent": 341904,
-      "network_packets_recv": 519911,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:29:46.403182",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:29:46.403182",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138963.2,
-      "disk_write_mb": 141344.48,
-      "network_sent_mb": 112.04,
-      "network_recv_mb": 413.43,
-      "network_packets_sent": 342135,
-      "network_packets_recv": 520232,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:30:24.701677",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:30:24.701677",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.17,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138963.45,
-      "disk_write_mb": 141357.16,
-      "network_sent_mb": 112.18,
-      "network_recv_mb": 413.53,
-      "network_packets_sent": 342446,
-      "network_packets_recv": 520623,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:30:59.905216",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:30:59.905216",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.12,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138963.72,
-      "disk_write_mb": 141370.61,
-      "network_sent_mb": 112.29,
-      "network_recv_mb": 413.63,
-      "network_packets_sent": 342662,
-      "network_packets_recv": 520909,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:31:35.359548",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:31:35.359548",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138964.2,
-      "disk_write_mb": 141416.36,
-      "network_sent_mb": 112.43,
-      "network_recv_mb": 413.69,
-      "network_packets_sent": 342917,
-      "network_packets_recv": 521213,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:32:14.122539",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:32:14.122539",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138964.41,
-      "disk_write_mb": 141470.58,
-      "network_sent_mb": 112.52,
-      "network_recv_mb": 413.91,
-      "network_packets_sent": 343269,
-      "network_packets_recv": 521710,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:32:53.413935",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:32:53.413935",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138966.8,
-      "disk_write_mb": 141491.76,
-      "network_sent_mb": 112.84,
-      "network_recv_mb": 414.46,
-      "network_packets_sent": 343926,
-      "network_packets_recv": 522480,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:33:32.453270",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:33:32.453270",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138967.46,
-      "disk_write_mb": 141506.17,
-      "network_sent_mb": 113.02,
-      "network_recv_mb": 414.66,
-      "network_packets_sent": 344678,
-      "network_packets_recv": 523569,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:34:10.214813",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:34:10.214813",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.93,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138969.93,
-      "disk_write_mb": 141520.79,
-      "network_sent_mb": 113.24,
-      "network_recv_mb": 415.0,
-      "network_packets_sent": 345209,
-      "network_packets_recv": 524261,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:34:49.171808",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:34:49.171808",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138980.72,
-      "disk_write_mb": 141540.53,
-      "network_sent_mb": 114.15,
-      "network_recv_mb": 415.57,
-      "network_packets_sent": 346249,
-      "network_packets_recv": 525479,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:35:24.822354",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:35:24.822354",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.37,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.35,
-      "disk_read_mb": 138982.78,
-      "disk_write_mb": 141565.5,
-      "network_sent_mb": 114.31,
-      "network_recv_mb": 415.85,
-      "network_packets_sent": 346797,
-      "network_packets_recv": 526188,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.35,
-          "free_gb": 174.59,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:36:04.184095",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:36:04.184095",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.44,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138987.94,
-      "disk_write_mb": 141603.28,
-      "network_sent_mb": 114.59,
-      "network_recv_mb": 416.09,
-      "network_packets_sent": 347261,
-      "network_packets_recv": 526827,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:36:43.212853",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:36:43.212853",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138988.01,
-      "disk_write_mb": 141614.86,
-      "network_sent_mb": 114.69,
-      "network_recv_mb": 416.24,
-      "network_packets_sent": 348015,
-      "network_packets_recv": 527949,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:37:20.861352",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:37:20.861352",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.7,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138990.14,
-      "disk_write_mb": 141624.97,
-      "network_sent_mb": 114.74,
-      "network_recv_mb": 416.31,
-      "network_packets_sent": 348326,
-      "network_packets_recv": 528393,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:37:56.973775",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:37:56.973775",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.25,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138990.96,
-      "disk_write_mb": 141673.81,
-      "network_sent_mb": 115.73,
-      "network_recv_mb": 417.11,
-      "network_packets_sent": 349539,
-      "network_packets_recv": 529978,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:38:36.086479",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:38:36.086479",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.04,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 138991.59,
-      "disk_write_mb": 141682.19,
-      "network_sent_mb": 115.77,
-      "network_recv_mb": 417.15,
-      "network_packets_sent": 349665,
-      "network_packets_recv": 530202,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:39:11.698114",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:39:11.698114",
-      "is_sysmon_available": false,
-      "cpu_usage": 80.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139001.53,
-      "disk_write_mb": 141686.27,
-      "network_sent_mb": 115.84,
-      "network_recv_mb": 417.25,
-      "network_packets_sent": 349880,
-      "network_packets_recv": 530565,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:39:48.360737",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:39:48.360737",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.2,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139002.03,
-      "disk_write_mb": 141751.04,
-      "network_sent_mb": 115.91,
-      "network_recv_mb": 417.3,
-      "network_packets_sent": 350061,
-      "network_packets_recv": 530837,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:40:28.792701",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:40:28.792701",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139002.56,
-      "disk_write_mb": 141783.65,
-      "network_sent_mb": 116.14,
-      "network_recv_mb": 417.65,
-      "network_packets_sent": 351448,
-      "network_packets_recv": 533555,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:41:06.825162",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:41:06.825162",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.84,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139038.34,
-      "disk_write_mb": 141799.01,
-      "network_sent_mb": 116.3,
-      "network_recv_mb": 418.02,
-      "network_packets_sent": 352893,
-      "network_packets_recv": 536443,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:41:46.270138",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:41:46.270138",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.76,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139038.85,
-      "disk_write_mb": 141809.99,
-      "network_sent_mb": 116.34,
-      "network_recv_mb": 418.06,
-      "network_packets_sent": 353030,
-      "network_packets_recv": 536692,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:42:26.004350",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:42:26.004350",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.99,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139039.26,
-      "disk_write_mb": 141822.77,
-      "network_sent_mb": 116.51,
-      "network_recv_mb": 418.36,
-      "network_packets_sent": 353569,
-      "network_packets_recv": 537434,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:43:05.612391",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:43:05.612391",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.9,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139043.52,
-      "disk_write_mb": 141837.36,
-      "network_sent_mb": 116.6,
-      "network_recv_mb": 418.58,
-      "network_packets_sent": 353860,
-      "network_packets_recv": 537920,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T01:43:44.478698",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T01:43:44.478698",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.73,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.34,
-      "disk_read_mb": 139044.26,
-      "disk_write_mb": 141846.44,
-      "network_sent_mb": 116.68,
-      "network_recv_mb": 418.7,
-      "network_packets_sent": 354168,
-      "network_packets_recv": 538350,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 163.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.34,
-          "free_gb": 174.6,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260121_12.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260121_12.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7355 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-21T12:16:12.773945",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:16:12.773945",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.88,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 141949.94,
-      "disk_write_mb": 142612.81,
-      "network_sent_mb": 6.9,
-      "network_recv_mb": 21.74,
-      "network_packets_sent": 18022,
-      "network_packets_recv": 33657,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:16:48.319819",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:16:48.319819",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.89,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 141953.36,
-      "disk_write_mb": 142664.06,
-      "network_sent_mb": 6.93,
-      "network_recv_mb": 21.78,
-      "network_packets_sent": 18121,
-      "network_packets_recv": 33942,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:17:26.370838",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:17:26.370838",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 141953.62,
-      "disk_write_mb": 142679.77,
-      "network_sent_mb": 6.98,
-      "network_recv_mb": 21.83,
-      "network_packets_sent": 18312,
-      "network_packets_recv": 34328,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:18:05.471538",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:18:05.471538",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 141954.08,
-      "disk_write_mb": 142690.8,
-      "network_sent_mb": 7.02,
-      "network_recv_mb": 21.89,
-      "network_packets_sent": 18437,
-      "network_packets_recv": 34674,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:18:44.316834",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:18:44.316834",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.37,
-      "disk_read_mb": 141968.6,
-      "disk_write_mb": 142704.85,
-      "network_sent_mb": 7.19,
-      "network_recv_mb": 22.05,
-      "network_packets_sent": 18870,
-      "network_packets_recv": 35290,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.37,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:19:24.778577",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:19:24.778577",
-      "is_sysmon_available": false,
-      "cpu_usage": 33.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.69,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.39,
-      "disk_read_mb": 142007.94,
-      "disk_write_mb": 142810.44,
-      "network_sent_mb": 9.43,
-      "network_recv_mb": 43.7,
-      "network_packets_sent": 30985,
-      "network_packets_recv": 55627,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.39,
-          "free_gb": 174.55,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:20:03.944609",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:20:03.944609",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.54,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142008.94,
-      "disk_write_mb": 142860.73,
-      "network_sent_mb": 10.22,
-      "network_recv_mb": 57.53,
-      "network_packets_sent": 35261,
-      "network_packets_recv": 67917,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:20:44.056274",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:20:44.056274",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142013.18,
-      "disk_write_mb": 142884.25,
-      "network_sent_mb": 10.65,
-      "network_recv_mb": 57.88,
-      "network_packets_sent": 35999,
-      "network_packets_recv": 68822,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:21:22.025936",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:21:22.025936",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.08,
-      "swap_usage": 13.9,
-      "disk_usage": 63.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.67,
-      "disk_read_mb": 142279.88,
-      "disk_write_mb": 143245.47,
-      "network_sent_mb": 10.87,
-      "network_recv_mb": 59.74,
-      "network_packets_sent": 36989,
-      "network_packets_recv": 70007,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.67,
-          "free_gb": 174.27,
-          "percent_used": 63.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:22:03.185739",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:22:03.185739",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142392.35,
-      "disk_write_mb": 143264.24,
-      "network_sent_mb": 10.98,
-      "network_recv_mb": 59.83,
-      "network_packets_sent": 37275,
-      "network_packets_recv": 70453,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:22:44.615579",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:22:44.615579",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142424.68,
-      "disk_write_mb": 143279.65,
-      "network_sent_mb": 11.08,
-      "network_recv_mb": 59.9,
-      "network_packets_sent": 37510,
-      "network_packets_recv": 70857,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:23:22.473911",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:23:22.473911",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142425.61,
-      "disk_write_mb": 143308.25,
-      "network_sent_mb": 11.38,
-      "network_recv_mb": 60.1,
-      "network_packets_sent": 37913,
-      "network_packets_recv": 71424,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:24:00.524222",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:24:00.524222",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.78,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142426.27,
-      "disk_write_mb": 143325.25,
-      "network_sent_mb": 11.52,
-      "network_recv_mb": 60.27,
-      "network_packets_sent": 38560,
-      "network_packets_recv": 72440,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:24:37.942033",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:24:37.942033",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142426.64,
-      "disk_write_mb": 143335.79,
-      "network_sent_mb": 11.65,
-      "network_recv_mb": 60.34,
-      "network_packets_sent": 38782,
-      "network_packets_recv": 72836,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:25:16.856243",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:25:16.856243",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.7,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142454.89,
-      "disk_write_mb": 143348.18,
-      "network_sent_mb": 11.71,
-      "network_recv_mb": 60.39,
-      "network_packets_sent": 38931,
-      "network_packets_recv": 73115,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:25:52.089414",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:25:52.089414",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142455.05,
-      "disk_write_mb": 143358.79,
-      "network_sent_mb": 11.79,
-      "network_recv_mb": 60.46,
-      "network_packets_sent": 39075,
-      "network_packets_recv": 73441,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:26:30.927346",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:26:30.927346",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.84,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142455.13,
-      "disk_write_mb": 143372.02,
-      "network_sent_mb": 11.94,
-      "network_recv_mb": 60.61,
-      "network_packets_sent": 39593,
-      "network_packets_recv": 74320,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:27:08.368634",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:27:08.368634",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142455.46,
-      "disk_write_mb": 143384.37,
-      "network_sent_mb": 12.07,
-      "network_recv_mb": 60.68,
-      "network_packets_sent": 39820,
-      "network_packets_recv": 74761,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:27:46.770301",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:27:46.770301",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.55,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142456.19,
-      "disk_write_mb": 143396.11,
-      "network_sent_mb": 12.13,
-      "network_recv_mb": 60.74,
-      "network_packets_sent": 39943,
-      "network_packets_recv": 75131,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:28:25.118215",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:28:25.118215",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.71,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142456.5,
-      "disk_write_mb": 143407.0,
-      "network_sent_mb": 12.16,
-      "network_recv_mb": 60.78,
-      "network_packets_sent": 40039,
-      "network_packets_recv": 75516,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:29:04.005330",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:29:04.005330",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142456.54,
-      "disk_write_mb": 143418.76,
-      "network_sent_mb": 12.27,
-      "network_recv_mb": 60.92,
-      "network_packets_sent": 40282,
-      "network_packets_recv": 76082,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:29:40.289586",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:29:40.289586",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142461.17,
-      "disk_write_mb": 143439.56,
-      "network_sent_mb": 12.36,
-      "network_recv_mb": 60.99,
-      "network_packets_sent": 40492,
-      "network_packets_recv": 76492,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:30:16.950467",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:30:16.950467",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.62,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142462.43,
-      "disk_write_mb": 143491.83,
-      "network_sent_mb": 12.52,
-      "network_recv_mb": 61.11,
-      "network_packets_sent": 40810,
-      "network_packets_recv": 76995,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:30:55.951355",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:30:55.951355",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 13.4,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142464.11,
-      "disk_write_mb": 143504.23,
-      "network_sent_mb": 12.58,
-      "network_recv_mb": 61.17,
-      "network_packets_sent": 40952,
-      "network_packets_recv": 77331,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:31:36.379559",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:31:36.379559",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.59,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142468.36,
-      "disk_write_mb": 143558.95,
-      "network_sent_mb": 13.04,
-      "network_recv_mb": 61.74,
-      "network_packets_sent": 42084,
-      "network_packets_recv": 78980,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.54,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:32:13.961753",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:32:13.961753",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142468.54,
-      "disk_write_mb": 143570.61,
-      "network_sent_mb": 13.23,
-      "network_recv_mb": 62.04,
-      "network_packets_sent": 43570,
-      "network_packets_recv": 81432,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:32:51.442173",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:32:51.442173",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.79,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142468.81,
-      "disk_write_mb": 143591.73,
-      "network_sent_mb": 13.31,
-      "network_recv_mb": 62.19,
-      "network_packets_sent": 44185,
-      "network_packets_recv": 82560,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:33:28.828114",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:33:28.828114",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 13.6,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.4,
-      "disk_read_mb": 142469.23,
-      "disk_write_mb": 143602.72,
-      "network_sent_mb": 13.35,
-      "network_recv_mb": 62.24,
-      "network_packets_sent": 44296,
-      "network_packets_recv": 82882,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.4,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:35:26.999929",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:35:26.999929",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.39,
-      "disk_read_mb": 144127.33,
-      "disk_write_mb": 143925.83,
-      "network_sent_mb": 14.3,
-      "network_recv_mb": 74.11,
-      "network_packets_sent": 49804,
-      "network_packets_recv": 89402,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.39,
-          "free_gb": 174.55,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:36:05.286901",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:36:05.286901",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.54,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 145215.19,
-      "disk_write_mb": 144188.43,
-      "network_sent_mb": 14.35,
-      "network_recv_mb": 74.16,
-      "network_packets_sent": 49930,
-      "network_packets_recv": 89751,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:36:43.659911",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:36:43.659911",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.38,
-      "disk_read_mb": 146205.43,
-      "disk_write_mb": 144281.53,
-      "network_sent_mb": 14.38,
-      "network_recv_mb": 74.2,
-      "network_packets_sent": 50068,
-      "network_packets_recv": 90082,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.38,
-          "free_gb": 174.56,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:37:21.454612",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:37:21.454612",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.55,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.39,
-      "disk_read_mb": 146241.42,
-      "disk_write_mb": 144320.1,
-      "network_sent_mb": 14.81,
-      "network_recv_mb": 74.62,
-      "network_packets_sent": 50882,
-      "network_packets_recv": 91270,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.39,
-          "free_gb": 174.55,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:37:58.791839",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:37:58.791839",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.4,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146255.39,
-      "disk_write_mb": 144388.81,
-      "network_sent_mb": 14.86,
-      "network_recv_mb": 74.67,
-      "network_packets_sent": 51016,
-      "network_packets_recv": 91607,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:44:24.185548",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:44:24.185548",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146644.22,
-      "disk_write_mb": 144570.48,
-      "network_sent_mb": 16.56,
-      "network_recv_mb": 105.04,
-      "network_packets_sent": 62967,
-      "network_packets_recv": 108644,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:45:02.949290",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:45:02.949290",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146679.35,
-      "disk_write_mb": 144605.19,
-      "network_sent_mb": 17.12,
-      "network_recv_mb": 105.83,
-      "network_packets_sent": 63907,
-      "network_packets_recv": 110135,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:45:43.183055",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:45:43.183055",
-      "is_sysmon_available": false,
-      "cpu_usage": 81.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.26,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146700.88,
-      "disk_write_mb": 144622.49,
-      "network_sent_mb": 17.82,
-      "network_recv_mb": 106.14,
-      "network_packets_sent": 64829,
-      "network_packets_recv": 111335,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:46:24.006018",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:46:24.006018",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146709.73,
-      "disk_write_mb": 144706.61,
-      "network_sent_mb": 17.94,
-      "network_recv_mb": 106.28,
-      "network_packets_sent": 65134,
-      "network_packets_recv": 111883,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:47:03.045413",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:47:03.045413",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.04,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146710.21,
-      "disk_write_mb": 144716.36,
-      "network_sent_mb": 18.17,
-      "network_recv_mb": 106.36,
-      "network_packets_sent": 65439,
-      "network_packets_recv": 112433,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:47:41.258818",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:47:41.258818",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146712.83,
-      "disk_write_mb": 144732.56,
-      "network_sent_mb": 18.37,
-      "network_recv_mb": 106.62,
-      "network_packets_sent": 66483,
-      "network_packets_recv": 114201,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:48:18.994087",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:48:18.994087",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.41,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146713.02,
-      "disk_write_mb": 144743.89,
-      "network_sent_mb": 18.5,
-      "network_recv_mb": 106.81,
-      "network_packets_sent": 67600,
-      "network_packets_recv": 116038,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:48:57.987385",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:48:57.987385",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146720.37,
-      "disk_write_mb": 144764.57,
-      "network_sent_mb": 19.2,
-      "network_recv_mb": 107.86,
-      "network_packets_sent": 69094,
-      "network_packets_recv": 118935,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-21T12:49:35.824248",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:49:35.824248",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.67,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146723.32,
-      "disk_write_mb": 144776.87,
-      "network_sent_mb": 20.12,
-      "network_recv_mb": 108.3,
-      "network_packets_sent": 70438,
-      "network_packets_recv": 120839,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.53,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:50:14.463935",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:50:14.463935",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.8,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146726.95,
-      "disk_write_mb": 144807.82,
-      "network_sent_mb": 20.26,
-      "network_recv_mb": 108.45,
-      "network_packets_sent": 70762,
-      "network_packets_recv": 121400,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:50:54.759241",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:50:54.759241",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.57,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.41,
-      "disk_read_mb": 146729.16,
-      "disk_write_mb": 144890.78,
-      "network_sent_mb": 20.32,
-      "network_recv_mb": 108.52,
-      "network_packets_sent": 70940,
-      "network_packets_recv": 121786,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.41,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:51:34.089417",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:51:34.089417",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.8,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146749.86,
-      "disk_write_mb": 144923.43,
-      "network_sent_mb": 21.37,
-      "network_recv_mb": 117.62,
-      "network_packets_sent": 75741,
-      "network_packets_recv": 127513,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:52:13.049342",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:52:13.049342",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.65,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146753.75,
-      "disk_write_mb": 144936.35,
-      "network_sent_mb": 21.44,
-      "network_recv_mb": 117.73,
-      "network_packets_sent": 75997,
-      "network_packets_recv": 127961,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:52:51.542419",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:52:51.542419",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.63,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146757.09,
-      "disk_write_mb": 144947.79,
-      "network_sent_mb": 21.47,
-      "network_recv_mb": 117.78,
-      "network_packets_sent": 76131,
-      "network_packets_recv": 128268,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:53:30.171791",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:53:30.171791",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.49,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146757.51,
-      "disk_write_mb": 144972.04,
-      "network_sent_mb": 21.51,
-      "network_recv_mb": 117.81,
-      "network_packets_sent": 76254,
-      "network_packets_recv": 128573,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:54:09.153429",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:54:09.153429",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.61,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146770.8,
-      "disk_write_mb": 144985.21,
-      "network_sent_mb": 21.75,
-      "network_recv_mb": 118.64,
-      "network_packets_sent": 76835,
-      "network_packets_recv": 129679,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:54:47.783322",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:54:47.783322",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146771.31,
-      "disk_write_mb": 144998.95,
-      "network_sent_mb": 21.96,
-      "network_recv_mb": 118.8,
-      "network_packets_sent": 77263,
-      "network_packets_recv": 130352,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:55:26.586028",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:55:26.586028",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.61,
-      "swap_usage": 14.2,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146771.79,
-      "disk_write_mb": 145009.96,
-      "network_sent_mb": 22.1,
-      "network_recv_mb": 118.86,
-      "network_packets_sent": 77518,
-      "network_packets_recv": 130746,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:56:05.659057",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:56:05.659057",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.72,
-      "swap_usage": 13.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146835.43,
-      "disk_write_mb": 145019.84,
-      "network_sent_mb": 22.24,
-      "network_recv_mb": 118.99,
-      "network_packets_sent": 77870,
-      "network_packets_recv": 131313,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:56:43.263943",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:56:43.263943",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.85,
-      "swap_usage": 13.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.42,
-      "disk_read_mb": 146846.45,
-      "disk_write_mb": 145044.48,
-      "network_sent_mb": 22.96,
-      "network_recv_mb": 124.13,
-      "network_packets_sent": 80264,
-      "network_packets_recv": 136757,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.42,
-          "free_gb": 174.52,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:57:22.711661",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:57:22.711661",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.8,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.44,
-      "disk_read_mb": 146880.06,
-      "disk_write_mb": 145086.59,
-      "network_sent_mb": 24.25,
-      "network_recv_mb": 132.24,
-      "network_packets_sent": 85172,
-      "network_packets_recv": 143004,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.44,
-          "free_gb": 174.5,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:58:02.226259",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:58:02.226259",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.89,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.44,
-      "disk_read_mb": 146883.67,
-      "disk_write_mb": 145133.12,
-      "network_sent_mb": 24.54,
-      "network_recv_mb": 134.6,
-      "network_packets_sent": 86245,
-      "network_packets_recv": 145770,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.44,
-          "free_gb": 174.5,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:58:41.528895",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:58:41.528895",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.17,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.44,
-      "disk_read_mb": 146885.47,
-      "disk_write_mb": 145143.77,
-      "network_sent_mb": 24.89,
-      "network_recv_mb": 134.71,
-      "network_packets_sent": 86571,
-      "network_packets_recv": 146488,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.44,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T12:59:20.320321",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:59:20.320321",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 90.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.17,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 146888.16,
-      "disk_write_mb": 145157.59,
-      "network_sent_mb": 25.18,
-      "network_recv_mb": 135.52,
-      "network_packets_sent": 87348,
-      "network_packets_recv": 147558,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260121_13.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260121_13.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7355 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-21T12:59:59.746181",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T12:59:59.746181",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.51,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 146905.67,
-      "disk_write_mb": 145199.13,
-      "network_sent_mb": 26.07,
-      "network_recv_mb": 141.28,
-      "network_packets_sent": 91272,
-      "network_packets_recv": 153108,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:00:38.588903",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:00:38.588903",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.32,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146911.6,
-      "disk_write_mb": 145264.19,
-      "network_sent_mb": 26.39,
-      "network_recv_mb": 143.45,
-      "network_packets_sent": 92480,
-      "network_packets_recv": 154685,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:01:16.976385",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:01:16.976385",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.62,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146943.75,
-      "disk_write_mb": 145285.4,
-      "network_sent_mb": 27.18,
-      "network_recv_mb": 143.96,
-      "network_packets_sent": 93609,
-      "network_packets_recv": 156170,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:01:56.761508",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:01:56.761508",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 91.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.36,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146947.68,
-      "disk_write_mb": 145308.18,
-      "network_sent_mb": 27.94,
-      "network_recv_mb": 147.73,
-      "network_packets_sent": 95434,
-      "network_packets_recv": 160128,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:02:36.768885",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:02:36.768885",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146957.7,
-      "disk_write_mb": 145344.77,
-      "network_sent_mb": 28.22,
-      "network_recv_mb": 147.83,
-      "network_packets_sent": 95777,
-      "network_packets_recv": 160832,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:03:16.482502",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:03:16.482502",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.29,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146961.67,
-      "disk_write_mb": 145359.03,
-      "network_sent_mb": 28.51,
-      "network_recv_mb": 148.04,
-      "network_packets_sent": 96099,
-      "network_packets_recv": 161632,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:03:55.361877",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:03:55.361877",
-      "is_sysmon_available": false,
-      "cpu_usage": 71.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.34,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146976.86,
-      "disk_write_mb": 145377.48,
-      "network_sent_mb": 28.66,
-      "network_recv_mb": 148.27,
-      "network_packets_sent": 96617,
-      "network_packets_recv": 162429,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:04:36.982500",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:04:36.982500",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.34,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146977.24,
-      "disk_write_mb": 145406.11,
-      "network_sent_mb": 28.87,
-      "network_recv_mb": 148.38,
-      "network_packets_sent": 97006,
-      "network_packets_recv": 163088,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:05:15.884391",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:05:15.884391",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.48,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 146987.79,
-      "disk_write_mb": 145420.38,
-      "network_sent_mb": 29.15,
-      "network_recv_mb": 149.19,
-      "network_packets_sent": 97592,
-      "network_packets_recv": 164421,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:05:55.992919",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:05:55.992919",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.51,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147132.97,
-      "disk_write_mb": 145466.17,
-      "network_sent_mb": 29.49,
-      "network_recv_mb": 150.66,
-      "network_packets_sent": 98461,
-      "network_packets_recv": 166039,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:06:33.564043",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:06:33.564043",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.77,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147281.11,
-      "disk_write_mb": 145490.82,
-      "network_sent_mb": 29.74,
-      "network_recv_mb": 151.1,
-      "network_packets_sent": 99080,
-      "network_packets_recv": 166982,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:07:14.239309",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:07:14.239309",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.79,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147307.73,
-      "disk_write_mb": 145508.58,
-      "network_sent_mb": 29.89,
-      "network_recv_mb": 152.67,
-      "network_packets_sent": 99795,
-      "network_packets_recv": 168925,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 174.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:07:53.564983",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:07:53.564983",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.76,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147313.5,
-      "disk_write_mb": 145523.52,
-      "network_sent_mb": 30.05,
-      "network_recv_mb": 153.32,
-      "network_packets_sent": 100231,
-      "network_packets_recv": 169935,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:08:30.891318",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:08:30.891318",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.53,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147315.44,
-      "disk_write_mb": 145535.01,
-      "network_sent_mb": 30.14,
-      "network_recv_mb": 153.38,
-      "network_packets_sent": 100426,
-      "network_packets_recv": 170367,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:09:08.254241",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:09:08.254241",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.79,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147317.37,
-      "disk_write_mb": 145557.98,
-      "network_sent_mb": 30.53,
-      "network_recv_mb": 154.05,
-      "network_packets_sent": 101268,
-      "network_packets_recv": 171840,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:09:45.188254",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:09:45.188254",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.63,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147329.46,
-      "disk_write_mb": 145586.85,
-      "network_sent_mb": 30.98,
-      "network_recv_mb": 156.19,
-      "network_packets_sent": 102895,
-      "network_packets_recv": 174846,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:10:22.045093",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:10:22.045093",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.7,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147348.71,
-      "disk_write_mb": 145603.96,
-      "network_sent_mb": 31.13,
-      "network_recv_mb": 157.25,
-      "network_packets_sent": 103470,
-      "network_packets_recv": 176293,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.47,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:10:59.440857",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:10:59.440857",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.64,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147350.1,
-      "disk_write_mb": 145617.83,
-      "network_sent_mb": 31.26,
-      "network_recv_mb": 157.36,
-      "network_packets_sent": 103768,
-      "network_packets_recv": 176820,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.47,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:11:35.986091",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:11:35.986091",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 15.0,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.47,
-      "disk_read_mb": 147379.99,
-      "disk_write_mb": 145645.47,
-      "network_sent_mb": 31.87,
-      "network_recv_mb": 159.56,
-      "network_packets_sent": 105438,
-      "network_packets_recv": 179299,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.47,
-          "free_gb": 174.47,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:12:14.025754",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:12:14.025754",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 15.0,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147414.03,
-      "disk_write_mb": 145715.22,
-      "network_sent_mb": 33.38,
-      "network_recv_mb": 168.75,
-      "network_packets_sent": 109665,
-      "network_packets_recv": 188970,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:12:51.824578",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:12:51.824578",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.11,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147416.63,
-      "disk_write_mb": 145728.44,
-      "network_sent_mb": 33.48,
-      "network_recv_mb": 168.82,
-      "network_packets_sent": 109933,
-      "network_packets_recv": 189490,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:13:28.966855",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:13:28.966855",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.04,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147423.88,
-      "disk_write_mb": 145746.21,
-      "network_sent_mb": 33.67,
-      "network_recv_mb": 168.95,
-      "network_packets_sent": 110295,
-      "network_packets_recv": 190118,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:14:07.167666",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:14:07.167666",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.11,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147457.99,
-      "disk_write_mb": 145759.3,
-      "network_sent_mb": 33.9,
-      "network_recv_mb": 170.43,
-      "network_packets_sent": 111015,
-      "network_packets_recv": 191983,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:14:44.612499",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:14:44.612499",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.94,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147459.12,
-      "disk_write_mb": 145771.8,
-      "network_sent_mb": 33.98,
-      "network_recv_mb": 170.52,
-      "network_packets_sent": 111222,
-      "network_packets_recv": 192451,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:15:21.732438",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:15:21.732438",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147459.5,
-      "disk_write_mb": 145780.92,
-      "network_sent_mb": 34.05,
-      "network_recv_mb": 170.58,
-      "network_packets_sent": 111410,
-      "network_packets_recv": 192891,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:15:58.958657",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:15:58.958657",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.09,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147459.89,
-      "disk_write_mb": 145790.35,
-      "network_sent_mb": 34.24,
-      "network_recv_mb": 170.69,
-      "network_packets_sent": 111760,
-      "network_packets_recv": 193421,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.49,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:16:38.012346",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:16:38.012346",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147479.86,
-      "disk_write_mb": 145824.67,
-      "network_sent_mb": 34.44,
-      "network_recv_mb": 171.75,
-      "network_packets_sent": 112279,
-      "network_packets_recv": 194776,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:17:14.971466",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:17:14.971466",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147502.13,
-      "disk_write_mb": 145837.83,
-      "network_sent_mb": 34.55,
-      "network_recv_mb": 171.83,
-      "network_packets_sent": 112498,
-      "network_packets_recv": 195197,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:17:52.941735",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:17:52.941735",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147502.59,
-      "disk_write_mb": 145847.13,
-      "network_sent_mb": 34.58,
-      "network_recv_mb": 171.87,
-      "network_packets_sent": 112616,
-      "network_packets_recv": 195523,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:18:30.094578",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:18:30.094578",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.61,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147502.73,
-      "disk_write_mb": 145856.56,
-      "network_sent_mb": 34.63,
-      "network_recv_mb": 171.91,
-      "network_packets_sent": 112759,
-      "network_packets_recv": 195857,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:19:07.049153",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:19:07.049153",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.45,
-      "disk_read_mb": 147561.92,
-      "disk_write_mb": 145868.06,
-      "network_sent_mb": 34.81,
-      "network_recv_mb": 172.03,
-      "network_packets_sent": 113103,
-      "network_packets_recv": 196424,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.45,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:19:46.447821",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:19:46.447821",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.96,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147563.06,
-      "disk_write_mb": 145883.83,
-      "network_sent_mb": 35.05,
-      "network_recv_mb": 173.05,
-      "network_packets_sent": 113731,
-      "network_packets_recv": 197867,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:20:23.951792",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:20:23.951792",
-      "is_sysmon_available": false,
-      "cpu_usage": 36.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.16,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.46,
-      "disk_read_mb": 147583.68,
-      "disk_write_mb": 145906.27,
-      "network_sent_mb": 35.38,
-      "network_recv_mb": 176.72,
-      "network_packets_sent": 115694,
-      "network_packets_recv": 200635,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.46,
-          "free_gb": 174.48,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:21:01.797846",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:21:01.797846",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.74,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147617.42,
-      "disk_write_mb": 145952.65,
-      "network_sent_mb": 36.77,
-      "network_recv_mb": 187.77,
-      "network_packets_sent": 121250,
-      "network_packets_recv": 207513,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:21:40.981523",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:21:40.981523",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.16,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147657.74,
-      "disk_write_mb": 145968.58,
-      "network_sent_mb": 36.9,
-      "network_recv_mb": 187.95,
-      "network_packets_sent": 121717,
-      "network_packets_recv": 208238,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:22:15.251534",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:22:15.251534",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.1,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147669.08,
-      "disk_write_mb": 145980.42,
-      "network_sent_mb": 36.96,
-      "network_recv_mb": 188.01,
-      "network_packets_sent": 121888,
-      "network_packets_recv": 208621,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:22:49.529631",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:22:49.529631",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147690.2,
-      "disk_write_mb": 145983.94,
-      "network_sent_mb": 36.99,
-      "network_recv_mb": 188.06,
-      "network_packets_sent": 122028,
-      "network_packets_recv": 208978,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:23:23.618719",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:23:23.618719",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147706.63,
-      "disk_write_mb": 145991.89,
-      "network_sent_mb": 37.02,
-      "network_recv_mb": 188.1,
-      "network_packets_sent": 122141,
-      "network_packets_recv": 209304,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:23:59.298210",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:23:59.298210",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147731.29,
-      "disk_write_mb": 146052.04,
-      "network_sent_mb": 37.12,
-      "network_recv_mb": 188.25,
-      "network_packets_sent": 122551,
-      "network_packets_recv": 209917,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:24:34.187820",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:24:34.187820",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.32,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147740.37,
-      "disk_write_mb": 146058.29,
-      "network_sent_mb": 37.21,
-      "network_recv_mb": 188.36,
-      "network_packets_sent": 122820,
-      "network_packets_recv": 210406,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:25:12.039921",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:25:12.039921",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.18,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147743.08,
-      "disk_write_mb": 146076.92,
-      "network_sent_mb": 37.46,
-      "network_recv_mb": 188.52,
-      "network_packets_sent": 123276,
-      "network_packets_recv": 211114,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:25:46.128545",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:25:46.128545",
-      "is_sysmon_available": false,
-      "cpu_usage": 34.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.83,
-      "swap_usage": 14.1,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147745.19,
-      "disk_write_mb": 146080.86,
-      "network_sent_mb": 37.5,
-      "network_recv_mb": 188.56,
-      "network_packets_sent": 123386,
-      "network_packets_recv": 211446,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:26:20.119549",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:26:20.119549",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.04,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147761.32,
-      "disk_write_mb": 146099.33,
-      "network_sent_mb": 37.57,
-      "network_recv_mb": 188.76,
-      "network_packets_sent": 123680,
-      "network_packets_recv": 212049,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:26:54.238473",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:26:54.238473",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.99,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147762.94,
-      "disk_write_mb": 146141.75,
-      "network_sent_mb": 37.7,
-      "network_recv_mb": 188.85,
-      "network_packets_sent": 123981,
-      "network_packets_recv": 212574,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:27:30.778807",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:27:30.778807",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.94,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147763.96,
-      "disk_write_mb": 146152.44,
-      "network_sent_mb": 37.91,
-      "network_recv_mb": 188.97,
-      "network_packets_sent": 124396,
-      "network_packets_recv": 213254,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:28:04.809525",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:28:04.809525",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.1,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147766.17,
-      "disk_write_mb": 146200.96,
-      "network_sent_mb": 38.03,
-      "network_recv_mb": 189.12,
-      "network_packets_sent": 124736,
-      "network_packets_recv": 213850,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:28:42.057675",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:28:42.057675",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.48,
-      "disk_read_mb": 147821.42,
-      "disk_write_mb": 146284.46,
-      "network_sent_mb": 38.08,
-      "network_recv_mb": 189.17,
-      "network_packets_sent": 124883,
-      "network_packets_recv": 214223,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.48,
-          "free_gb": 174.46,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:29:19.739750",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:29:19.739750",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.3,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.49,
-      "disk_read_mb": 147979.57,
-      "disk_write_mb": 146314.71,
-      "network_sent_mb": 38.17,
-      "network_recv_mb": 189.64,
-      "network_packets_sent": 125265,
-      "network_packets_recv": 214975,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.49,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:29:56.176411",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:29:56.176411",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.14,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.49,
-      "disk_read_mb": 147997.27,
-      "disk_write_mb": 146338.74,
-      "network_sent_mb": 38.22,
-      "network_recv_mb": 189.7,
-      "network_packets_sent": 125421,
-      "network_packets_recv": 215376,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.49,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:30:33.540787",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:30:33.540787",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.99,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148002.59,
-      "disk_write_mb": 146400.62,
-      "network_sent_mb": 38.3,
-      "network_recv_mb": 190.14,
-      "network_packets_sent": 125767,
-      "network_packets_recv": 216012,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:31:08.292944",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:31:08.292944",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.23,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148120.26,
-      "disk_write_mb": 146466.02,
-      "network_sent_mb": 38.39,
-      "network_recv_mb": 190.45,
-      "network_packets_sent": 126081,
-      "network_packets_recv": 216618,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:31:43.523361",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:31:43.523361",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.24,
-      "swap_usage": 14.0,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148123.92,
-      "disk_write_mb": 146487.72,
-      "network_sent_mb": 38.62,
-      "network_recv_mb": 190.59,
-      "network_packets_sent": 126462,
-      "network_packets_recv": 217229,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:32:20.148239",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:32:20.148239",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.13,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148128.98,
-      "disk_write_mb": 146500.61,
-      "network_sent_mb": 38.77,
-      "network_recv_mb": 190.71,
-      "network_packets_sent": 126812,
-      "network_packets_recv": 217849,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:32:54.565727",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:32:54.565727",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148131.55,
-      "disk_write_mb": 146563.97,
-      "network_sent_mb": 38.93,
-      "network_recv_mb": 190.83,
-      "network_packets_sent": 127126,
-      "network_packets_recv": 218425,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:33:29.168938",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:33:29.168938",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.84,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148132.46,
-      "disk_write_mb": 146624.8,
-      "network_sent_mb": 38.96,
-      "network_recv_mb": 190.88,
-      "network_packets_sent": 127230,
-      "network_packets_recv": 218835,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:34:06.224148",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:34:06.224148",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.02,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148132.85,
-      "disk_write_mb": 146685.32,
-      "network_sent_mb": 39.07,
-      "network_recv_mb": 190.99,
-      "network_packets_sent": 127516,
-      "network_packets_recv": 219387,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-21T13:34:43.792908",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.207",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-21T13:34:43.792908",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 13.9,
-      "disk_usage": 63.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 301.5,
-      "disk_read_mb": 148133.06,
-      "disk_write_mb": 146700.5,
-      "network_sent_mb": 39.34,
-      "network_recv_mb": 191.09,
-      "network_packets_sent": 127888,
-      "network_packets_recv": 220019,
-      "boot_time": "2026-01-14 06:08:04",
-      "uptime_hours": 175.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 301.5,
-          "free_gb": 174.44,
-          "percent_used": 63.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.207",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_10.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_10.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11702 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T10:00:47.878055",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:00:47.878055",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.25,
-      "swap_usage": 16.4,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.79,
-      "disk_read_mb": 159011.62,
-      "disk_write_mb": 156381.26,
-      "network_sent_mb": 6.33,
-      "network_recv_mb": 89.97,
-      "network_packets_sent": 27260,
-      "network_packets_recv": 91474,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.79,
-          "free_gb": 172.15,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:01:24.056651",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:01:24.056651",
-      "is_sysmon_available": false,
-      "cpu_usage": 34.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.85,
-      "swap_usage": 16.4,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.83,
-      "disk_read_mb": 159549.51,
-      "disk_write_mb": 156540.75,
-      "network_sent_mb": 6.69,
-      "network_recv_mb": 91.04,
-      "network_packets_sent": 27840,
-      "network_packets_recv": 94108,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.83,
-          "free_gb": 172.1,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:01:59.940213",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:01:59.940213",
-      "is_sysmon_available": false,
-      "cpu_usage": 71.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.36,
-      "swap_usage": 16.1,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.83,
-      "disk_read_mb": 159721.89,
-      "disk_write_mb": 156959.81,
-      "network_sent_mb": 6.75,
-      "network_recv_mb": 91.38,
-      "network_packets_sent": 28045,
-      "network_packets_recv": 96182,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.83,
-          "free_gb": 172.11,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:02:44.911948",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:02:44.911948",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 16.1,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.84,
-      "disk_read_mb": 159787.9,
-      "disk_write_mb": 157020.33,
-      "network_sent_mb": 6.82,
-      "network_recv_mb": 91.81,
-      "network_packets_sent": 28270,
-      "network_packets_recv": 98720,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.84,
-          "free_gb": 172.1,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:03:25.172267",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:03:25.172267",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.31,
-      "swap_usage": 16.1,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.86,
-      "disk_read_mb": 159808.01,
-      "disk_write_mb": 157070.92,
-      "network_sent_mb": 6.86,
-      "network_recv_mb": 92.16,
-      "network_packets_sent": 28473,
-      "network_packets_recv": 100985,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.86,
-          "free_gb": 172.08,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:04:00.727164",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:04:00.727164",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.24,
-      "swap_usage": 16.1,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.87,
-      "disk_read_mb": 159831.38,
-      "disk_write_mb": 157116.48,
-      "network_sent_mb": 7.06,
-      "network_recv_mb": 92.91,
-      "network_packets_sent": 28817,
-      "network_packets_recv": 103202,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.87,
-          "free_gb": 172.06,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:04:36.443924",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:04:36.443924",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.25,
-      "swap_usage": 16.1,
-      "disk_usage": 63.8,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.88,
-      "disk_read_mb": 159858.69,
-      "disk_write_mb": 157132.04,
-      "network_sent_mb": 7.17,
-      "network_recv_mb": 94.14,
-      "network_packets_sent": 29431,
-      "network_packets_recv": 105742,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.88,
-          "free_gb": 172.06,
-          "percent_used": 63.8
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:05:16.623878",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:05:16.623878",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.43,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159906.4,
-      "disk_write_mb": 157179.98,
-      "network_sent_mb": 7.43,
-      "network_recv_mb": 94.57,
-      "network_packets_sent": 31191,
-      "network_packets_recv": 107630,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:05:57.139711",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:05:57.139711",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.38,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159910.54,
-      "disk_write_mb": 157200.69,
-      "network_sent_mb": 7.69,
-      "network_recv_mb": 94.94,
-      "network_packets_sent": 33497,
-      "network_packets_recv": 110028,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:06:37.266009",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:06:37.266009",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.21,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159911.24,
-      "disk_write_mb": 157216.69,
-      "network_sent_mb": 7.93,
-      "network_recv_mb": 95.3,
-      "network_packets_sent": 35727,
-      "network_packets_recv": 112375,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:07:17.003160",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:07:17.003160",
-      "is_sysmon_available": false,
-      "cpu_usage": 44.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.28,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159916.03,
-      "disk_write_mb": 157235.48,
-      "network_sent_mb": 8.35,
-      "network_recv_mb": 95.79,
-      "network_packets_sent": 38254,
-      "network_packets_recv": 114981,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 195.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:07:56.715190",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:07:56.715190",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.34,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159916.53,
-      "disk_write_mb": 157247.65,
-      "network_sent_mb": 8.74,
-      "network_recv_mb": 96.23,
-      "network_packets_sent": 40968,
-      "network_packets_recv": 117935,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:08:33.112039",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:08:33.112039",
-      "is_sysmon_available": false,
-      "cpu_usage": 72.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.46,
-      "swap_usage": 16.1,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159934.37,
-      "disk_write_mb": 157272.01,
-      "network_sent_mb": 9.0,
-      "network_recv_mb": 96.65,
-      "network_packets_sent": 43161,
-      "network_packets_recv": 120252,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:09:13.228203",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:09:13.228203",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.09,
-      "swap_usage": 16.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159934.68,
-      "disk_write_mb": 157319.85,
-      "network_sent_mb": 9.24,
-      "network_recv_mb": 97.02,
-      "network_packets_sent": 45404,
-      "network_packets_recv": 122599,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.05,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:09:53.045486",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:09:53.045486",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 16.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159934.78,
-      "disk_write_mb": 157331.58,
-      "network_sent_mb": 9.48,
-      "network_recv_mb": 97.39,
-      "network_packets_sent": 47661,
-      "network_packets_recv": 124937,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:10:32.848414",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:10:32.848414",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.03,
-      "swap_usage": 16.2,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.89,
-      "disk_read_mb": 159938.52,
-      "disk_write_mb": 157345.04,
-      "network_sent_mb": 9.7,
-      "network_recv_mb": 97.74,
-      "network_packets_sent": 49837,
-      "network_packets_recv": 127194,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.89,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:11:08.950888",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:11:08.950888",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.04,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159941.69,
-      "disk_write_mb": 157393.41,
-      "network_sent_mb": 10.18,
-      "network_recv_mb": 98.47,
-      "network_packets_sent": 52308,
-      "network_packets_recv": 129676,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:11:48.515504",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:11:48.515504",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.91,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159943.63,
-      "disk_write_mb": 157406.13,
-      "network_sent_mb": 10.42,
-      "network_recv_mb": 98.83,
-      "network_packets_sent": 54545,
-      "network_packets_recv": 131974,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:12:27.890699",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:12:27.890699",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.92,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159944.2,
-      "disk_write_mb": 157417.59,
-      "network_sent_mb": 10.64,
-      "network_recv_mb": 99.18,
-      "network_packets_sent": 56728,
-      "network_packets_recv": 134241,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:13:07.372214",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:13:07.372214",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.92,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159944.28,
-      "disk_write_mb": 157427.64,
-      "network_sent_mb": 10.89,
-      "network_recv_mb": 99.58,
-      "network_packets_sent": 58995,
-      "network_packets_recv": 136606,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:13:46.771281",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:13:46.771281",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.92,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159944.31,
-      "disk_write_mb": 157438.36,
-      "network_sent_mb": 11.11,
-      "network_recv_mb": 99.93,
-      "network_packets_sent": 61151,
-      "network_packets_recv": 138846,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:14:26.114656",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:14:26.114656",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.7,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159944.82,
-      "disk_write_mb": 157451.49,
-      "network_sent_mb": 11.33,
-      "network_recv_mb": 100.28,
-      "network_packets_sent": 63341,
-      "network_packets_recv": 141126,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:15:05.339500",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:15:05.339500",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.77,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159945.01,
-      "disk_write_mb": 157463.07,
-      "network_sent_mb": 11.61,
-      "network_recv_mb": 100.65,
-      "network_packets_sent": 65605,
-      "network_packets_recv": 143433,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:15:44.620152",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:15:44.620152",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.75,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 159945.06,
-      "disk_write_mb": 157473.59,
-      "network_sent_mb": 11.85,
-      "network_recv_mb": 101.01,
-      "network_packets_sent": 67799,
-      "network_packets_recv": 145723,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:17:13.851156",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:17:13.851156",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.46,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160117.47,
-      "disk_write_mb": 157511.67,
-      "network_sent_mb": 12.6,
-      "network_recv_mb": 102.55,
-      "network_packets_sent": 71112,
-      "network_packets_recv": 150027,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:17:53.883352",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:17:53.883352",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.11,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160118.78,
-      "disk_write_mb": 157534.32,
-      "network_sent_mb": 12.68,
-      "network_recv_mb": 102.93,
-      "network_packets_sent": 71322,
-      "network_packets_recv": 152419,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:18:33.499873",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:18:33.499873",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.07,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160119.26,
-      "disk_write_mb": 157549.15,
-      "network_sent_mb": 12.71,
-      "network_recv_mb": 103.29,
-      "network_packets_sent": 71468,
-      "network_packets_recv": 154695,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:19:12.829427",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:19:12.829427",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.0,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160119.5,
-      "disk_write_mb": 157565.47,
-      "network_sent_mb": 12.82,
-      "network_recv_mb": 103.71,
-      "network_packets_sent": 71792,
-      "network_packets_recv": 157091,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:19:51.714606",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:19:51.714606",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.99,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160119.7,
-      "disk_write_mb": 157575.1,
-      "network_sent_mb": 12.86,
-      "network_recv_mb": 104.06,
-      "network_packets_sent": 71940,
-      "network_packets_recv": 159314,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:20:30.541590",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:20:30.541590",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.99,
-      "swap_usage": 16.3,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.9,
-      "disk_read_mb": 160128.31,
-      "disk_write_mb": 157585.74,
-      "network_sent_mb": 12.89,
-      "network_recv_mb": 104.38,
-      "network_packets_sent": 72044,
-      "network_packets_recv": 161511,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.9,
-          "free_gb": 172.04,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:21:10.336631",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:21:10.336631",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.76,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.91,
-      "disk_read_mb": 160129.89,
-      "disk_write_mb": 157621.29,
-      "network_sent_mb": 13.24,
-      "network_recv_mb": 121.14,
-      "network_packets_sent": 77452,
-      "network_packets_recv": 169590,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.91,
-          "free_gb": 172.02,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:21:49.395972",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:21:49.395972",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.76,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 303.99,
-      "disk_read_mb": 160130.8,
-      "disk_write_mb": 157683.09,
-      "network_sent_mb": 14.11,
-      "network_recv_mb": 168.55,
-      "network_packets_sent": 92574,
-      "network_packets_recv": 188404,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 303.99,
-          "free_gb": 171.95,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:22:27.242667",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:22:27.242667",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160708.64,
-      "disk_write_mb": 159431.13,
-      "network_sent_mb": 14.15,
-      "network_recv_mb": 168.64,
-      "network_packets_sent": 92711,
-      "network_packets_recv": 188852,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:23:05.716866",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:23:05.716866",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.61,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160709.45,
-      "disk_write_mb": 159443.66,
-      "network_sent_mb": 14.19,
-      "network_recv_mb": 168.69,
-      "network_packets_sent": 92862,
-      "network_packets_recv": 189043,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:23:44.138566",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:23:44.138566",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.63,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160713.59,
-      "disk_write_mb": 159457.79,
-      "network_sent_mb": 14.25,
-      "network_recv_mb": 168.76,
-      "network_packets_sent": 93012,
-      "network_packets_recv": 189250,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:24:22.597284",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:24:22.597284",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.52,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160725.4,
-      "disk_write_mb": 159508.6,
-      "network_sent_mb": 14.29,
-      "network_recv_mb": 168.8,
-      "network_packets_sent": 93120,
-      "network_packets_recv": 189405,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:25:01.136769",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:25:01.136769",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.57,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160726.05,
-      "disk_write_mb": 159522.06,
-      "network_sent_mb": 14.32,
-      "network_recv_mb": 168.84,
-      "network_packets_sent": 93241,
-      "network_packets_recv": 189569,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:25:39.725777",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:25:39.725777",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.56,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160726.87,
-      "disk_write_mb": 159532.86,
-      "network_sent_mb": 14.41,
-      "network_recv_mb": 168.91,
-      "network_packets_sent": 93435,
-      "network_packets_recv": 189806,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:26:18.187422",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:26:18.187422",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.5,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.14,
-      "disk_write_mb": 159542.85,
-      "network_sent_mb": 14.44,
-      "network_recv_mb": 168.95,
-      "network_packets_sent": 93547,
-      "network_packets_recv": 189977,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:26:56.515115",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:26:56.515115",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.21,
-      "disk_write_mb": 159551.51,
-      "network_sent_mb": 14.47,
-      "network_recv_mb": 168.99,
-      "network_packets_sent": 93662,
-      "network_packets_recv": 190138,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:27:34.979077",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:27:34.979077",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.48,
-      "disk_write_mb": 159560.71,
-      "network_sent_mb": 14.52,
-      "network_recv_mb": 169.04,
-      "network_packets_sent": 93799,
-      "network_packets_recv": 190343,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:28:13.352727",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:28:13.352727",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.54,
-      "disk_write_mb": 159570.52,
-      "network_sent_mb": 14.57,
-      "network_recv_mb": 169.11,
-      "network_packets_sent": 93944,
-      "network_packets_recv": 190561,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:28:51.870977",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:28:51.870977",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.64,
-      "disk_write_mb": 159578.87,
-      "network_sent_mb": 14.59,
-      "network_recv_mb": 169.15,
-      "network_packets_sent": 94038,
-      "network_packets_recv": 190716,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:29:30.251208",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:29:30.251208",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.41,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.71,
-      "disk_write_mb": 159587.03,
-      "network_sent_mb": 14.63,
-      "network_recv_mb": 169.2,
-      "network_packets_sent": 94158,
-      "network_packets_recv": 190913,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:30:09.032085",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:30:09.032085",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.46,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160727.77,
-      "disk_write_mb": 159597.96,
-      "network_sent_mb": 14.68,
-      "network_recv_mb": 169.26,
-      "network_packets_sent": 94293,
-      "network_packets_recv": 191118,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:30:47.500833",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:30:47.500833",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.39,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160728.02,
-      "disk_write_mb": 159607.96,
-      "network_sent_mb": 14.72,
-      "network_recv_mb": 169.31,
-      "network_packets_sent": 94425,
-      "network_packets_recv": 191301,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:31:25.941847",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:31:25.941847",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160728.39,
-      "disk_write_mb": 159618.42,
-      "network_sent_mb": 14.75,
-      "network_recv_mb": 169.35,
-      "network_packets_sent": 94515,
-      "network_packets_recv": 191449,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:32:04.351881",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:32:04.351881",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160728.59,
-      "disk_write_mb": 159628.03,
-      "network_sent_mb": 14.78,
-      "network_recv_mb": 169.39,
-      "network_packets_sent": 94628,
-      "network_packets_recv": 191636,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:32:42.681740",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:32:42.681740",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.37,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160728.99,
-      "disk_write_mb": 159637.92,
-      "network_sent_mb": 14.83,
-      "network_recv_mb": 169.46,
-      "network_packets_sent": 94756,
-      "network_packets_recv": 191856,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:33:20.949585",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:33:20.949585",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.37,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160730.81,
-      "disk_write_mb": 159647.88,
-      "network_sent_mb": 14.86,
-      "network_recv_mb": 169.66,
-      "network_packets_sent": 94890,
-      "network_packets_recv": 192141,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:33:59.210498",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:33:59.210498",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160730.87,
-      "disk_write_mb": 159658.85,
-      "network_sent_mb": 14.9,
-      "network_recv_mb": 169.71,
-      "network_packets_sent": 95035,
-      "network_packets_recv": 192342,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:34:37.515161",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:34:37.515161",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160730.94,
-      "disk_write_mb": 159670.53,
-      "network_sent_mb": 14.94,
-      "network_recv_mb": 169.77,
-      "network_packets_sent": 95155,
-      "network_packets_recv": 192527,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:35:15.945513",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:35:15.945513",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160731.19,
-      "disk_write_mb": 159680.58,
-      "network_sent_mb": 14.99,
-      "network_recv_mb": 169.82,
-      "network_packets_sent": 95298,
-      "network_packets_recv": 192710,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:35:54.395865",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:35:54.395865",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160732.05,
-      "disk_write_mb": 159690.7,
-      "network_sent_mb": 15.08,
-      "network_recv_mb": 169.98,
-      "network_packets_sent": 95510,
-      "network_packets_recv": 192967,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:36:32.716007",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:36:32.716007",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.29,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160733.38,
-      "disk_write_mb": 159700.4,
-      "network_sent_mb": 15.11,
-      "network_recv_mb": 170.02,
-      "network_packets_sent": 95639,
-      "network_packets_recv": 193141,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:37:11.051145",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:37:11.051145",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.43,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160743.54,
-      "disk_write_mb": 159714.57,
-      "network_sent_mb": 15.18,
-      "network_recv_mb": 170.42,
-      "network_packets_sent": 95900,
-      "network_packets_recv": 193616,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:37:49.748884",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:37:49.748884",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.31,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160743.96,
-      "disk_write_mb": 159728.79,
-      "network_sent_mb": 15.21,
-      "network_recv_mb": 170.45,
-      "network_packets_sent": 96006,
-      "network_packets_recv": 193772,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:38:28.738476",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:38:28.738476",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160744.6,
-      "disk_write_mb": 159739.6,
-      "network_sent_mb": 15.26,
-      "network_recv_mb": 170.51,
-      "network_packets_sent": 96160,
-      "network_packets_recv": 193957,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:39:07.426811",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:39:07.426811",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160744.88,
-      "disk_write_mb": 159748.56,
-      "network_sent_mb": 15.32,
-      "network_recv_mb": 170.63,
-      "network_packets_sent": 96354,
-      "network_packets_recv": 194256,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.61,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:39:46.410864",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:39:46.410864",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160745.07,
-      "disk_write_mb": 159759.05,
-      "network_sent_mb": 15.37,
-      "network_recv_mb": 170.69,
-      "network_packets_sent": 96516,
-      "network_packets_recv": 194495,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:40:24.891705",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:40:24.891705",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.2,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.33,
-      "disk_read_mb": 160746.2,
-      "disk_write_mb": 159770.31,
-      "network_sent_mb": 15.4,
-      "network_recv_mb": 170.73,
-      "network_packets_sent": 96618,
-      "network_packets_recv": 194651,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.33,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:41:03.390022",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:41:03.390022",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160759.4,
-      "disk_write_mb": 159793.81,
-      "network_sent_mb": 15.6,
-      "network_recv_mb": 171.01,
-      "network_packets_sent": 97091,
-      "network_packets_recv": 195217,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:41:42.088457",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:41:42.088457",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.13,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160759.71,
-      "disk_write_mb": 159811.24,
-      "network_sent_mb": 15.67,
-      "network_recv_mb": 171.13,
-      "network_packets_sent": 97322,
-      "network_packets_recv": 195534,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:42:20.690566",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:42:20.690566",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.92,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160759.9,
-      "disk_write_mb": 159820.46,
-      "network_sent_mb": 15.7,
-      "network_recv_mb": 171.17,
-      "network_packets_sent": 97455,
-      "network_packets_recv": 195722,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:42:59.152564",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:42:59.152564",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.94,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160760.27,
-      "disk_write_mb": 159828.8,
-      "network_sent_mb": 15.75,
-      "network_recv_mb": 171.22,
-      "network_packets_sent": 97619,
-      "network_packets_recv": 195935,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:43:37.710197",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:43:37.710197",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.97,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160761.41,
-      "disk_write_mb": 159843.85,
-      "network_sent_mb": 15.79,
-      "network_recv_mb": 171.27,
-      "network_packets_sent": 97745,
-      "network_packets_recv": 196124,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:44:16.037502",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:44:16.037502",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 69.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.93,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160761.47,
-      "disk_write_mb": 159855.97,
-      "network_sent_mb": 15.82,
-      "network_recv_mb": 171.31,
-      "network_packets_sent": 97842,
-      "network_packets_recv": 196280,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:44:54.440004",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:44:54.440004",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.0,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160761.96,
-      "disk_write_mb": 159866.83,
-      "network_sent_mb": 15.9,
-      "network_recv_mb": 171.4,
-      "network_packets_sent": 98046,
-      "network_packets_recv": 196547,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:45:33.030227",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:45:33.030227",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160762.09,
-      "disk_write_mb": 159877.6,
-      "network_sent_mb": 15.93,
-      "network_recv_mb": 171.44,
-      "network_packets_sent": 98158,
-      "network_packets_recv": 196714,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:46:11.685152",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:46:11.685152",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.98,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160762.22,
-      "disk_write_mb": 159888.81,
-      "network_sent_mb": 15.99,
-      "network_recv_mb": 171.51,
-      "network_packets_sent": 98306,
-      "network_packets_recv": 196942,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:46:50.095578",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:46:50.095578",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.98,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160762.56,
-      "disk_write_mb": 159897.56,
-      "network_sent_mb": 16.04,
-      "network_recv_mb": 171.56,
-      "network_packets_sent": 98469,
-      "network_packets_recv": 197109,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:47:28.608747",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:47:28.608747",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160762.56,
-      "disk_write_mb": 159906.88,
-      "network_sent_mb": 16.08,
-      "network_recv_mb": 171.62,
-      "network_packets_sent": 98626,
-      "network_packets_recv": 197325,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:48:07.193658",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:48:07.193658",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.99,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160762.7,
-      "disk_write_mb": 159916.54,
-      "network_sent_mb": 16.13,
-      "network_recv_mb": 171.68,
-      "network_packets_sent": 98760,
-      "network_packets_recv": 197535,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:48:45.859967",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:48:45.859967",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.99,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160763.62,
-      "disk_write_mb": 159924.8,
-      "network_sent_mb": 16.18,
-      "network_recv_mb": 171.73,
-      "network_packets_sent": 98887,
-      "network_packets_recv": 197706,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:49:24.187305",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:49:24.187305",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.81,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160763.77,
-      "disk_write_mb": 159939.51,
-      "network_sent_mb": 16.21,
-      "network_recv_mb": 171.77,
-      "network_packets_sent": 99010,
-      "network_packets_recv": 197886,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:50:02.537710",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:50:02.537710",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.88,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160764.97,
-      "disk_write_mb": 159950.87,
-      "network_sent_mb": 16.26,
-      "network_recv_mb": 171.84,
-      "network_packets_sent": 99190,
-      "network_packets_recv": 198125,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:50:41.201902",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:50:41.201902",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.33,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160769.22,
-      "disk_write_mb": 159967.46,
-      "network_sent_mb": 16.55,
-      "network_recv_mb": 172.69,
-      "network_packets_sent": 101031,
-      "network_packets_recv": 200216,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:51:20.670121",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:51:20.670121",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160769.27,
-      "disk_write_mb": 159976.96,
-      "network_sent_mb": 16.77,
-      "network_recv_mb": 173.04,
-      "network_packets_sent": 103209,
-      "network_packets_recv": 202486,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:52:00.088716",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:52:00.088716",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.06,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160770.07,
-      "disk_write_mb": 159987.44,
-      "network_sent_mb": 17.03,
-      "network_recv_mb": 173.46,
-      "network_packets_sent": 105482,
-      "network_packets_recv": 204882,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:52:39.278708",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:52:39.278708",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160770.27,
-      "disk_write_mb": 159998.29,
-      "network_sent_mb": 17.26,
-      "network_recv_mb": 173.83,
-      "network_packets_sent": 107667,
-      "network_packets_recv": 207163,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:53:18.433743",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:53:18.433743",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160771.76,
-      "disk_write_mb": 160011.83,
-      "network_sent_mb": 17.51,
-      "network_recv_mb": 174.4,
-      "network_packets_sent": 109980,
-      "network_packets_recv": 209661,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:53:57.743164",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:53:57.743164",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.11,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160771.98,
-      "disk_write_mb": 160023.0,
-      "network_sent_mb": 17.75,
-      "network_recv_mb": 174.77,
-      "network_packets_sent": 112189,
-      "network_packets_recv": 211947,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:54:37.052044",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:54:37.052044",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.0,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160772.23,
-      "disk_write_mb": 160035.03,
-      "network_sent_mb": 17.98,
-      "network_recv_mb": 175.14,
-      "network_packets_sent": 114383,
-      "network_packets_recv": 214246,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:55:16.515736",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:55:16.515736",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160772.83,
-      "disk_write_mb": 160047.12,
-      "network_sent_mb": 18.22,
-      "network_recv_mb": 175.55,
-      "network_packets_sent": 116621,
-      "network_packets_recv": 216595,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:55:55.811531",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:55:55.811531",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.03,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160773.08,
-      "disk_write_mb": 160059.46,
-      "network_sent_mb": 18.47,
-      "network_recv_mb": 175.93,
-      "network_packets_sent": 118840,
-      "network_packets_recv": 218902,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:56:35.243328",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:56:35.243328",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 69.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.91,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160773.25,
-      "disk_write_mb": 160071.02,
-      "network_sent_mb": 18.69,
-      "network_recv_mb": 176.27,
-      "network_packets_sent": 121020,
-      "network_packets_recv": 221161,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:57:14.468410",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:57:14.468410",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 69.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.92,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160773.59,
-      "disk_write_mb": 160082.83,
-      "network_sent_mb": 18.95,
-      "network_recv_mb": 176.63,
-      "network_packets_sent": 123227,
-      "network_packets_recv": 223431,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:57:53.920810",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:57:53.920810",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.92,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160773.68,
-      "disk_write_mb": 160092.51,
-      "network_sent_mb": 19.17,
-      "network_recv_mb": 176.99,
-      "network_packets_sent": 125398,
-      "network_packets_recv": 225708,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:58:33.414699",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:58:33.414699",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.02,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.02,
-      "disk_write_mb": 160102.81,
-      "network_sent_mb": 19.41,
-      "network_recv_mb": 177.36,
-      "network_packets_sent": 127632,
-      "network_packets_recv": 228037,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:59:09.089415",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:59:09.089415",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.03,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.02,
-      "disk_write_mb": 160105.91,
-      "network_sent_mb": 19.64,
-      "network_recv_mb": 177.75,
-      "network_packets_sent": 129666,
-      "network_packets_recv": 230190,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T10:59:44.573142",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T10:59:44.573142",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.95,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.41,
-      "disk_write_mb": 160109.44,
-      "network_sent_mb": 19.86,
-      "network_recv_mb": 178.1,
-      "network_packets_sent": 131692,
-      "network_packets_recv": 232299,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_11.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_11.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7742 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T11:00:20.078289",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:00:20.078289",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.96,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.7,
-      "disk_write_mb": 160112.97,
-      "network_sent_mb": 20.06,
-      "network_recv_mb": 178.42,
-      "network_packets_sent": 133643,
-      "network_packets_recv": 234341,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:00:55.710730",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:00:55.710730",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.87,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.84,
-      "disk_write_mb": 160117.14,
-      "network_sent_mb": 20.28,
-      "network_recv_mb": 178.79,
-      "network_packets_sent": 135658,
-      "network_packets_recv": 236464,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:01:31.266437",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:01:31.266437",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.8,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160774.93,
-      "disk_write_mb": 160119.65,
-      "network_sent_mb": 20.49,
-      "network_recv_mb": 179.12,
-      "network_packets_sent": 137651,
-      "network_packets_recv": 238561,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:02:06.751912",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:02:06.751912",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.0,
-      "swap_usage": 16.7,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160778.88,
-      "disk_write_mb": 160154.56,
-      "network_sent_mb": 20.74,
-      "network_recv_mb": 179.5,
-      "network_packets_sent": 139687,
-      "network_packets_recv": 240708,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:02:46.093077",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:02:46.093077",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.78,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160791.18,
-      "disk_write_mb": 160185.35,
-      "network_sent_mb": 20.96,
-      "network_recv_mb": 179.87,
-      "network_packets_sent": 141872,
-      "network_packets_recv": 242991,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:03:25.280127",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:03:25.280127",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.78,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160791.39,
-      "disk_write_mb": 160194.64,
-      "network_sent_mb": 21.19,
-      "network_recv_mb": 180.22,
-      "network_packets_sent": 144049,
-      "network_packets_recv": 245267,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:04:04.384654",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:04:04.384654",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 68.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.78,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160791.48,
-      "disk_write_mb": 160205.44,
-      "network_sent_mb": 21.41,
-      "network_recv_mb": 180.58,
-      "network_packets_sent": 146208,
-      "network_packets_recv": 247518,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.6,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:04:43.758114",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:04:43.758114",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.94,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160808.81,
-      "disk_write_mb": 160218.35,
-      "network_sent_mb": 21.67,
-      "network_recv_mb": 181.01,
-      "network_packets_sent": 148463,
-      "network_packets_recv": 249896,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:05:22.989966",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:05:22.989966",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.88,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160808.87,
-      "disk_write_mb": 160231.39,
-      "network_sent_mb": 21.89,
-      "network_recv_mb": 181.38,
-      "network_packets_sent": 150639,
-      "network_packets_recv": 252164,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:06:02.145097",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:06:02.145097",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.94,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160808.99,
-      "disk_write_mb": 160242.84,
-      "network_sent_mb": 22.16,
-      "network_recv_mb": 181.8,
-      "network_packets_sent": 152886,
-      "network_packets_recv": 254520,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:06:41.239633",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:06:41.239633",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.82,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160809.1,
-      "disk_write_mb": 160256.44,
-      "network_sent_mb": 22.41,
-      "network_recv_mb": 182.18,
-      "network_packets_sent": 155087,
-      "network_packets_recv": 256842,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:07:20.315214",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:07:20.315214",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.82,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160809.3,
-      "disk_write_mb": 160267.21,
-      "network_sent_mb": 22.65,
-      "network_recv_mb": 182.54,
-      "network_packets_sent": 157287,
-      "network_packets_recv": 259096,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 196.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:07:59.410248",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:07:59.410248",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.84,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160809.37,
-      "disk_write_mb": 160277.92,
-      "network_sent_mb": 22.89,
-      "network_recv_mb": 182.9,
-      "network_packets_sent": 159482,
-      "network_packets_recv": 261349,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:08:38.489602",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:08:38.489602",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.92,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.34,
-      "disk_read_mb": 160809.43,
-      "disk_write_mb": 160290.16,
-      "network_sent_mb": 23.15,
-      "network_recv_mb": 183.32,
-      "network_packets_sent": 161732,
-      "network_packets_recv": 263720,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.34,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:09:17.589438",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:09:17.589438",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.84,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160809.49,
-      "disk_write_mb": 160301.21,
-      "network_sent_mb": 23.37,
-      "network_recv_mb": 183.67,
-      "network_packets_sent": 163887,
-      "network_packets_recv": 265966,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:09:56.809815",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:09:56.809815",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 69.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.89,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160809.93,
-      "disk_write_mb": 160311.49,
-      "network_sent_mb": 23.6,
-      "network_recv_mb": 184.03,
-      "network_packets_sent": 166062,
-      "network_packets_recv": 268249,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:10:35.961337",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:10:35.961337",
-      "is_sysmon_available": false,
-      "cpu_usage": 68.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.09,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160810.28,
-      "disk_write_mb": 160322.74,
-      "network_sent_mb": 23.83,
-      "network_recv_mb": 184.4,
-      "network_packets_sent": 168260,
-      "network_packets_recv": 270543,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:11:15.712407",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:11:15.712407",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.83,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160810.44,
-      "disk_write_mb": 160341.72,
-      "network_sent_mb": 24.2,
-      "network_recv_mb": 185.08,
-      "network_packets_sent": 170694,
-      "network_packets_recv": 273061,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:11:55.143286",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:11:55.143286",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 68.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.77,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160810.59,
-      "disk_write_mb": 160355.7,
-      "network_sent_mb": 24.45,
-      "network_recv_mb": 185.49,
-      "network_packets_sent": 172936,
-      "network_packets_recv": 275406,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:12:34.311839",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:12:34.311839",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.89,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160830.0,
-      "disk_write_mb": 160387.62,
-      "network_sent_mb": 24.71,
-      "network_recv_mb": 185.99,
-      "network_packets_sent": 175249,
-      "network_packets_recv": 277853,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:13:13.452057",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:13:13.452057",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.89,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160830.32,
-      "disk_write_mb": 160399.96,
-      "network_sent_mb": 25.0,
-      "network_recv_mb": 186.37,
-      "network_packets_sent": 177484,
-      "network_packets_recv": 280205,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:13:53.380610",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:13:53.380610",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.16,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160855.32,
-      "disk_write_mb": 160411.01,
-      "network_sent_mb": 26.08,
-      "network_recv_mb": 186.8,
-      "network_packets_sent": 180699,
-      "network_packets_recv": 282783,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:14:33.391061",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:14:33.391061",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160872.87,
-      "disk_write_mb": 160425.2,
-      "network_sent_mb": 27.95,
-      "network_recv_mb": 187.11,
-      "network_packets_sent": 184602,
-      "network_packets_recv": 285193,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:15:13.463797",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:15:13.463797",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160873.14,
-      "disk_write_mb": 160439.14,
-      "network_sent_mb": 29.06,
-      "network_recv_mb": 187.44,
-      "network_packets_sent": 188455,
-      "network_packets_recv": 287646,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:15:52.786602",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:15:52.786602",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.44,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160873.77,
-      "disk_write_mb": 160450.49,
-      "network_sent_mb": 30.47,
-      "network_recv_mb": 187.8,
-      "network_packets_sent": 192151,
-      "network_packets_recv": 290101,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:16:32.712189",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:16:32.712189",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.27,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160880.36,
-      "disk_write_mb": 160479.37,
-      "network_sent_mb": 31.78,
-      "network_recv_mb": 188.11,
-      "network_packets_sent": 195497,
-      "network_packets_recv": 292494,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:17:08.635512",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:17:08.635512",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160881.36,
-      "disk_write_mb": 160491.8,
-      "network_sent_mb": 33.25,
-      "network_recv_mb": 188.42,
-      "network_packets_sent": 198785,
-      "network_packets_recv": 294696,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:17:49.021775",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:17:49.021775",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160881.49,
-      "disk_write_mb": 160506.63,
-      "network_sent_mb": 34.81,
-      "network_recv_mb": 188.74,
-      "network_packets_sent": 202327,
-      "network_packets_recv": 297150,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:18:28.862797",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:18:28.862797",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160884.18,
-      "disk_write_mb": 160517.45,
-      "network_sent_mb": 36.37,
-      "network_recv_mb": 189.08,
-      "network_packets_sent": 206091,
-      "network_packets_recv": 299654,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:19:08.780345",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:19:08.780345",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.39,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160886.02,
-      "disk_write_mb": 160531.21,
-      "network_sent_mb": 38.59,
-      "network_recv_mb": 189.52,
-      "network_packets_sent": 210418,
-      "network_packets_recv": 302244,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:19:48.550211",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:19:48.550211",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160886.52,
-      "disk_write_mb": 160544.77,
-      "network_sent_mb": 40.99,
-      "network_recv_mb": 189.93,
-      "network_packets_sent": 214791,
-      "network_packets_recv": 304726,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:20:28.306422",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:20:28.306422",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160887.01,
-      "disk_write_mb": 160558.67,
-      "network_sent_mb": 44.14,
-      "network_recv_mb": 190.29,
-      "network_packets_sent": 219849,
-      "network_packets_recv": 307219,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:21:19.831552",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:21:19.831552",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.39,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160899.02,
-      "disk_write_mb": 160575.04,
-      "network_sent_mb": 35.33,
-      "network_recv_mb": 89.7,
-      "network_packets_sent": 156145,
-      "network_packets_recv": 163715,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:22:02.821957",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:22:02.821957",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160899.27,
-      "disk_write_mb": 160586.23,
-      "network_sent_mb": 37.14,
-      "network_recv_mb": 90.15,
-      "network_packets_sent": 160083,
-      "network_packets_recv": 166231,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:22:42.591170",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:22:42.591170",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160899.41,
-      "disk_write_mb": 160598.49,
-      "network_sent_mb": 39.12,
-      "network_recv_mb": 90.6,
-      "network_packets_sent": 164276,
-      "network_packets_recv": 168712,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:23:21.924565",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:23:21.924565",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.31,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160899.47,
-      "disk_write_mb": 160608.34,
-      "network_sent_mb": 40.47,
-      "network_recv_mb": 91.08,
-      "network_packets_sent": 168318,
-      "network_packets_recv": 171188,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:24:01.183935",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:24:01.183935",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.39,
-      "swap_usage": 16.6,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160911.08,
-      "disk_write_mb": 160618.15,
-      "network_sent_mb": 43.1,
-      "network_recv_mb": 91.57,
-      "network_packets_sent": 173229,
-      "network_packets_recv": 173673,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:24:40.624978",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:24:40.624978",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160920.19,
-      "disk_write_mb": 160630.78,
-      "network_sent_mb": 44.99,
-      "network_recv_mb": 92.05,
-      "network_packets_sent": 177181,
-      "network_packets_recv": 176169,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:25:20.208340",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:25:20.208340",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.27,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160920.34,
-      "disk_write_mb": 160639.54,
-      "network_sent_mb": 46.33,
-      "network_recv_mb": 92.48,
-      "network_packets_sent": 180842,
-      "network_packets_recv": 178539,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:25:59.531597",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:25:59.531597",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160920.41,
-      "disk_write_mb": 160648.55,
-      "network_sent_mb": 47.73,
-      "network_recv_mb": 92.98,
-      "network_packets_sent": 184703,
-      "network_packets_recv": 181031,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:26:38.979606",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:26:38.979606",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160920.75,
-      "disk_write_mb": 160661.51,
-      "network_sent_mb": 49.33,
-      "network_recv_mb": 93.43,
-      "network_packets_sent": 188606,
-      "network_packets_recv": 183549,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:27:18.514294",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:27:18.514294",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.18,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160920.88,
-      "disk_write_mb": 160673.64,
-      "network_sent_mb": 50.7,
-      "network_recv_mb": 93.87,
-      "network_packets_sent": 192358,
-      "network_packets_recv": 185918,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:27:57.549744",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:27:57.549744",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160927.55,
-      "disk_write_mb": 160683.74,
-      "network_sent_mb": 51.72,
-      "network_recv_mb": 94.36,
-      "network_packets_sent": 196211,
-      "network_packets_recv": 188368,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:28:36.504586",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:28:36.504586",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160927.81,
-      "disk_write_mb": 160694.36,
-      "network_sent_mb": 52.61,
-      "network_recv_mb": 94.76,
-      "network_packets_sent": 200040,
-      "network_packets_recv": 190743,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:29:15.797367",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:29:15.797367",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.33,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.04,
-      "disk_write_mb": 160705.33,
-      "network_sent_mb": 53.55,
-      "network_recv_mb": 95.15,
-      "network_packets_sent": 203999,
-      "network_packets_recv": 193162,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:29:54.957302",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:29:54.957302",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.19,
-      "disk_write_mb": 160715.88,
-      "network_sent_mb": 54.49,
-      "network_recv_mb": 95.56,
-      "network_packets_sent": 207950,
-      "network_packets_recv": 195547,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:30:34.756229",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:30:34.756229",
-      "is_sysmon_available": false,
-      "cpu_usage": 60.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.53,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.25,
-      "disk_write_mb": 160726.32,
-      "network_sent_mb": 55.49,
-      "network_recv_mb": 95.91,
-      "network_packets_sent": 211554,
-      "network_packets_recv": 197957,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:31:14.465192",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:31:14.465192",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.2,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.31,
-      "disk_write_mb": 160738.57,
-      "network_sent_mb": 56.37,
-      "network_recv_mb": 96.37,
-      "network_packets_sent": 215677,
-      "network_packets_recv": 200398,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:31:53.675739",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:31:53.675739",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.2,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.44,
-      "disk_write_mb": 160748.28,
-      "network_sent_mb": 57.23,
-      "network_recv_mb": 96.81,
-      "network_packets_sent": 219714,
-      "network_packets_recv": 202825,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:32:32.819852",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:32:32.819852",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.29,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.63,
-      "disk_write_mb": 160759.51,
-      "network_sent_mb": 58.27,
-      "network_recv_mb": 97.28,
-      "network_packets_sent": 223350,
-      "network_packets_recv": 205284,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:33:12.427293",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:33:12.427293",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.18,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160928.97,
-      "disk_write_mb": 160769.76,
-      "network_sent_mb": 59.3,
-      "network_recv_mb": 97.73,
-      "network_packets_sent": 227181,
-      "network_packets_recv": 207697,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:33:51.467082",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:33:51.467082",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.31,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 160937.68,
-      "disk_write_mb": 160781.13,
-      "network_sent_mb": 60.37,
-      "network_recv_mb": 98.18,
-      "network_packets_sent": 231100,
-      "network_packets_recv": 210133,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:34:30.803837",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:34:30.803837",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.47,
-      "swap_usage": 16.5,
-      "disk_usage": 64.0,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.38,
-      "disk_read_mb": 161006.63,
-      "disk_write_mb": 160922.2,
-      "network_sent_mb": 61.66,
-      "network_recv_mb": 115.84,
-      "network_packets_sent": 239557,
-      "network_packets_recv": 217465,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.38,
-          "free_gb": 171.56,
-          "percent_used": 64.0
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:35:10.720578",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:35:10.720578",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 161016.39,
-      "disk_write_mb": 161153.51,
-      "network_sent_mb": 63.39,
-      "network_recv_mb": 116.31,
-      "network_packets_sent": 243918,
-      "network_packets_recv": 219992,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:35:48.994447",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:35:48.994447",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.83,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.35,
-      "disk_read_mb": 161037.98,
-      "disk_write_mb": 161171.23,
-      "network_sent_mb": 64.34,
-      "network_recv_mb": 117.09,
-      "network_packets_sent": 246944,
-      "network_packets_recv": 222706,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.35,
-          "free_gb": 171.59,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:36:29.057503",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:36:29.057503",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.5,
-      "swap_usage": 16.5,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.26,
-      "disk_read_mb": 161151.66,
-      "disk_write_mb": 161251.52,
-      "network_sent_mb": 65.01,
-      "network_recv_mb": 123.3,
-      "network_packets_sent": 249620,
-      "network_packets_recv": 227562,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.26,
-          "free_gb": 171.68,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:37:06.895421",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:37:06.895421",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.28,
-      "disk_read_mb": 161200.27,
-      "disk_write_mb": 161293.75,
-      "network_sent_mb": 65.45,
-      "network_recv_mb": 124.11,
-      "network_packets_sent": 250674,
-      "network_packets_recv": 230667,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.28,
-          "free_gb": 171.66,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:37:44.506230",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:37:44.506230",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.45,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.29,
-      "disk_read_mb": 161200.37,
-      "disk_write_mb": 161320.95,
-      "network_sent_mb": 65.52,
-      "network_recv_mb": 124.48,
-      "network_packets_sent": 250868,
-      "network_packets_recv": 232901,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.29,
-          "free_gb": 171.64,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:38:21.983380",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:38:21.983380",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.49,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.28,
-      "disk_read_mb": 161261.12,
-      "disk_write_mb": 161363.9,
-      "network_sent_mb": 65.96,
-      "network_recv_mb": 125.23,
-      "network_packets_sent": 251840,
-      "network_packets_recv": 235943,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.28,
-          "free_gb": 171.66,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T11:38:59.530149",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T11:38:59.530149",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.46,
-      "swap_usage": 16.4,
-      "disk_usage": 63.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 304.29,
-      "disk_read_mb": 161261.45,
-      "disk_write_mb": 161392.36,
-      "network_sent_mb": 66.05,
-      "network_recv_mb": 125.57,
-      "network_packets_sent": 252078,
-      "network_packets_recv": 238145,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 197.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 304.29,
-          "free_gb": 171.64,
-          "percent_used": 63.9
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_14.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_14.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,114 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T14:04:33.426114",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T14:04:33.426114",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.72,
-      "swap_usage": 16.3,
-      "disk_usage": 64.1,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 305.03,
-      "disk_read_mb": 162229.96,
-      "disk_write_mb": 162557.28,
-      "network_sent_mb": 66.05,
-      "network_recv_mb": 125.57,
-      "network_packets_sent": 252078,
-      "network_packets_recv": 238145,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 199.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 305.03,
-          "free_gb": 170.9,
-          "percent_used": 64.1
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_17.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_17.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5807 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T17:14:13.426225",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:14:13.426225",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.61,
-      "swap_usage": 14.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.08,
-      "disk_read_mb": 169981.17,
-      "disk_write_mb": 172506.58,
-      "network_sent_mb": 169.75,
-      "network_recv_mb": 2093.54,
-      "network_packets_sent": 238437,
-      "network_packets_recv": 689848,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.08,
-          "free_gb": 167.86,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:14:48.192682",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:14:48.192682",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.99,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.08,
-      "disk_read_mb": 169992.86,
-      "disk_write_mb": 172567.12,
-      "network_sent_mb": 169.85,
-      "network_recv_mb": 2095.5,
-      "network_packets_sent": 239021,
-      "network_packets_recv": 691751,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.08,
-          "free_gb": 167.85,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:17:06.773089",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:17:06.773089",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.6,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170032.73,
-      "disk_write_mb": 172627.78,
-      "network_sent_mb": 170.13,
-      "network_recv_mb": 2095.85,
-      "network_packets_sent": 239837,
-      "network_packets_recv": 692637,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.89,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:17:45.318365",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:17:45.318365",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.58,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170034.18,
-      "disk_write_mb": 172642.67,
-      "network_sent_mb": 170.37,
-      "network_recv_mb": 2096.09,
-      "network_packets_sent": 240558,
-      "network_packets_recv": 693435,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:18:23.709917",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:18:23.709917",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170035.98,
-      "disk_write_mb": 172657.52,
-      "network_sent_mb": 170.55,
-      "network_recv_mb": 2096.18,
-      "network_packets_sent": 241004,
-      "network_packets_recv": 693860,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:19:01.251898",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:19:01.251898",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.36,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170036.13,
-      "disk_write_mb": 172668.84,
-      "network_sent_mb": 170.59,
-      "network_recv_mb": 2096.21,
-      "network_packets_sent": 241133,
-      "network_packets_recv": 693990,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:19:39.000281",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:19:39.000281",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.41,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170036.4,
-      "disk_write_mb": 172682.47,
-      "network_sent_mb": 170.68,
-      "network_recv_mb": 2096.32,
-      "network_packets_sent": 241353,
-      "network_packets_recv": 694232,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:20:16.592367",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:20:16.592367",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170036.43,
-      "disk_write_mb": 172694.69,
-      "network_sent_mb": 170.7,
-      "network_recv_mb": 2096.35,
-      "network_packets_sent": 241446,
-      "network_packets_recv": 694349,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:20:54.058874",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:20:54.058874",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.45,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170043.05,
-      "disk_write_mb": 172706.31,
-      "network_sent_mb": 170.76,
-      "network_recv_mb": 2096.4,
-      "network_packets_sent": 241616,
-      "network_packets_recv": 694531,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:21:32.065800",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:21:32.065800",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170043.49,
-      "disk_write_mb": 172718.12,
-      "network_sent_mb": 170.87,
-      "network_recv_mb": 2096.45,
-      "network_packets_sent": 241787,
-      "network_packets_recv": 694673,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:22:09.655011",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:22:09.655011",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.24,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170049.14,
-      "disk_write_mb": 172731.45,
-      "network_sent_mb": 170.99,
-      "network_recv_mb": 2096.81,
-      "network_packets_sent": 242149,
-      "network_packets_recv": 695081,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:22:47.138298",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:22:47.138298",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.05,
-      "disk_read_mb": 170049.71,
-      "disk_write_mb": 172743.43,
-      "network_sent_mb": 171.15,
-      "network_recv_mb": 2096.96,
-      "network_packets_sent": 242570,
-      "network_packets_recv": 695495,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.05,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:23:23.915751",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:23:23.915751",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170050.09,
-      "disk_write_mb": 172756.36,
-      "network_sent_mb": 171.33,
-      "network_recv_mb": 2097.09,
-      "network_packets_sent": 243002,
-      "network_packets_recv": 695887,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:24:01.494280",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:24:01.494280",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170050.37,
-      "disk_write_mb": 172769.39,
-      "network_sent_mb": 171.4,
-      "network_recv_mb": 2097.13,
-      "network_packets_sent": 243146,
-      "network_packets_recv": 696044,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:24:39.013006",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:24:39.013006",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170050.51,
-      "disk_write_mb": 172781.22,
-      "network_sent_mb": 171.45,
-      "network_recv_mb": 2097.18,
-      "network_packets_sent": 243290,
-      "network_packets_recv": 696224,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:25:16.472964",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:25:16.472964",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.37,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170051.94,
-      "disk_write_mb": 172793.7,
-      "network_sent_mb": 171.49,
-      "network_recv_mb": 2097.23,
-      "network_packets_sent": 243438,
-      "network_packets_recv": 696367,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:25:54.536559",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:25:54.536559",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170052.44,
-      "disk_write_mb": 172806.92,
-      "network_sent_mb": 171.56,
-      "network_recv_mb": 2097.34,
-      "network_packets_sent": 243694,
-      "network_packets_recv": 696659,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:26:32.146486",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:26:32.146486",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.19,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170052.56,
-      "disk_write_mb": 172819.64,
-      "network_sent_mb": 171.59,
-      "network_recv_mb": 2097.37,
-      "network_packets_sent": 243787,
-      "network_packets_recv": 696771,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:27:09.607403",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:27:09.607403",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.21,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170053.94,
-      "disk_write_mb": 172830.2,
-      "network_sent_mb": 171.66,
-      "network_recv_mb": 2097.42,
-      "network_packets_sent": 243963,
-      "network_packets_recv": 696946,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:27:47.310360",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:27:47.310360",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170054.28,
-      "disk_write_mb": 172841.66,
-      "network_sent_mb": 171.7,
-      "network_recv_mb": 2097.45,
-      "network_packets_sent": 244086,
-      "network_packets_recv": 697072,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:28:25.238479",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:28:25.238479",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.15,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170054.78,
-      "disk_write_mb": 172852.06,
-      "network_sent_mb": 171.73,
-      "network_recv_mb": 2097.48,
-      "network_packets_sent": 244183,
-      "network_packets_recv": 697179,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:29:02.638044",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:29:02.638044",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.13,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170073.69,
-      "disk_write_mb": 172881.46,
-      "network_sent_mb": 171.76,
-      "network_recv_mb": 2097.52,
-      "network_packets_sent": 244288,
-      "network_packets_recv": 697308,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:29:40.089345",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:29:40.089345",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.18,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170073.85,
-      "disk_write_mb": 172893.29,
-      "network_sent_mb": 171.81,
-      "network_recv_mb": 2097.56,
-      "network_packets_sent": 244414,
-      "network_packets_recv": 697449,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:30:17.440443",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:30:17.440443",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.23,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170074.29,
-      "disk_write_mb": 172903.94,
-      "network_sent_mb": 171.85,
-      "network_recv_mb": 2097.61,
-      "network_packets_sent": 244530,
-      "network_packets_recv": 697590,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:30:54.950982",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:30:54.950982",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.41,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170074.91,
-      "disk_write_mb": 172914.98,
-      "network_sent_mb": 171.9,
-      "network_recv_mb": 2097.72,
-      "network_packets_sent": 244791,
-      "network_packets_recv": 697893,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:47:51.123841",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:47:51.123841",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.01,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170202.7,
-      "disk_write_mb": 173155.26,
-      "network_sent_mb": 174.92,
-      "network_recv_mb": 2102.98,
-      "network_packets_sent": 254112,
-      "network_packets_recv": 709224,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.88,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:48:30.119139",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:48:30.119139",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.75,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170202.95,
-      "disk_write_mb": 173172.16,
-      "network_sent_mb": 175.01,
-      "network_recv_mb": 2103.04,
-      "network_packets_sent": 254308,
-      "network_packets_recv": 709408,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:49:08.477339",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:49:08.477339",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.71,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170203.15,
-      "disk_write_mb": 173186.51,
-      "network_sent_mb": 175.25,
-      "network_recv_mb": 2103.27,
-      "network_packets_sent": 255487,
-      "network_packets_recv": 710755,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:49:46.318409",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:49:46.318409",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.85,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170205.93,
-      "disk_write_mb": 173199.03,
-      "network_sent_mb": 175.35,
-      "network_recv_mb": 2103.42,
-      "network_packets_sent": 255799,
-      "network_packets_recv": 711120,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:50:24.055687",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:50:24.055687",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.12,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170224.07,
-      "disk_write_mb": 173212.18,
-      "network_sent_mb": 175.64,
-      "network_recv_mb": 2103.68,
-      "network_packets_sent": 256422,
-      "network_packets_recv": 711769,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:51:02.135828",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:51:02.135828",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.97,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.06,
-      "disk_read_mb": 170226.56,
-      "disk_write_mb": 173228.48,
-      "network_sent_mb": 175.73,
-      "network_recv_mb": 2103.76,
-      "network_packets_sent": 256649,
-      "network_packets_recv": 712002,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.06,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:51:40.096505",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:51:40.096505",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.09,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170226.86,
-      "disk_write_mb": 173239.59,
-      "network_sent_mb": 176.01,
-      "network_recv_mb": 2104.09,
-      "network_packets_sent": 257707,
-      "network_packets_recv": 713222,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:52:18.315165",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:52:18.315165",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170227.64,
-      "disk_write_mb": 173254.26,
-      "network_sent_mb": 176.14,
-      "network_recv_mb": 2104.29,
-      "network_packets_sent": 258383,
-      "network_packets_recv": 714005,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:52:56.457373",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:52:56.457373",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170228.35,
-      "disk_write_mb": 173267.34,
-      "network_sent_mb": 176.32,
-      "network_recv_mb": 2104.4,
-      "network_packets_sent": 258712,
-      "network_packets_recv": 714312,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:53:33.914676",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:53:33.914676",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170255.36,
-      "disk_write_mb": 173281.91,
-      "network_sent_mb": 176.42,
-      "network_recv_mb": 2104.61,
-      "network_packets_sent": 259004,
-      "network_packets_recv": 714596,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:54:12.848731",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:54:12.848731",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.97,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170255.99,
-      "disk_write_mb": 173341.2,
-      "network_sent_mb": 176.51,
-      "network_recv_mb": 2104.72,
-      "network_packets_sent": 259246,
-      "network_packets_recv": 714882,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:54:50.715938",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:54:50.715938",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.21,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170261.32,
-      "disk_write_mb": 173372.71,
-      "network_sent_mb": 176.56,
-      "network_recv_mb": 2104.8,
-      "network_packets_sent": 259426,
-      "network_packets_recv": 715115,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:55:29.154377",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:55:29.154377",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170262.86,
-      "disk_write_mb": 173387.35,
-      "network_sent_mb": 176.63,
-      "network_recv_mb": 2104.88,
-      "network_packets_sent": 259642,
-      "network_packets_recv": 715375,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:56:03.610764",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:56:03.610764",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.94,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170263.91,
-      "disk_write_mb": 173391.21,
-      "network_sent_mb": 176.65,
-      "network_recv_mb": 2104.91,
-      "network_packets_sent": 259709,
-      "network_packets_recv": 715464,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:56:38.076405",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:56:38.076405",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170278.05,
-      "disk_write_mb": 173412.6,
-      "network_sent_mb": 176.71,
-      "network_recv_mb": 2104.97,
-      "network_packets_sent": 259858,
-      "network_packets_recv": 715663,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:57:16.315357",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:57:16.315357",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170278.3,
-      "disk_write_mb": 173435.83,
-      "network_sent_mb": 176.82,
-      "network_recv_mb": 2105.08,
-      "network_packets_sent": 260158,
-      "network_packets_recv": 716009,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:57:54.458032",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:57:54.458032",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.17,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170279.47,
-      "disk_write_mb": 173448.72,
-      "network_sent_mb": 177.04,
-      "network_recv_mb": 2105.23,
-      "network_packets_sent": 260834,
-      "network_packets_recv": 716740,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:58:28.792768",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:58:28.792768",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170279.66,
-      "disk_write_mb": 173462.39,
-      "network_sent_mb": 177.25,
-      "network_recv_mb": 2105.4,
-      "network_packets_sent": 261762,
-      "network_packets_recv": 717779,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:59:06.407982",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:59:06.407982",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170279.78,
-      "disk_write_mb": 173499.04,
-      "network_sent_mb": 177.36,
-      "network_recv_mb": 2105.54,
-      "network_packets_sent": 262119,
-      "network_packets_recv": 718144,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T17:59:42.894136",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T17:59:42.894136",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170280.52,
-      "disk_write_mb": 173511.21,
-      "network_sent_mb": 177.47,
-      "network_recv_mb": 2105.65,
-      "network_packets_sent": 262384,
-      "network_packets_recv": 718425,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_18.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_18.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3872 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T18:00:21.317407",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:00:21.317407",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170580.1,
-      "disk_write_mb": 173532.15,
-      "network_sent_mb": 177.62,
-      "network_recv_mb": 2106.05,
-      "network_packets_sent": 262820,
-      "network_packets_recv": 718952,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:00:56.484353",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:00:56.484353",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.41,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170583.75,
-      "disk_write_mb": 173565.17,
-      "network_sent_mb": 177.89,
-      "network_recv_mb": 2106.32,
-      "network_packets_sent": 263846,
-      "network_packets_recv": 720117,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:01:34.970234",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:01:34.970234",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.18,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170585.11,
-      "disk_write_mb": 173605.29,
-      "network_sent_mb": 178.07,
-      "network_recv_mb": 2106.4,
-      "network_packets_sent": 264224,
-      "network_packets_recv": 720467,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:02:12.820241",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:02:12.820241",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.25,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170585.62,
-      "disk_write_mb": 173622.03,
-      "network_sent_mb": 178.17,
-      "network_recv_mb": 2106.5,
-      "network_packets_sent": 264467,
-      "network_packets_recv": 720755,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:02:47.712479",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:02:47.712479",
-      "is_sysmon_available": false,
-      "cpu_usage": 78.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170586.4,
-      "disk_write_mb": 173634.52,
-      "network_sent_mb": 178.24,
-      "network_recv_mb": 2106.55,
-      "network_packets_sent": 264658,
-      "network_packets_recv": 720963,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:03:26.787132",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:03:26.787132",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.43,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170602.62,
-      "disk_write_mb": 173713.24,
-      "network_sent_mb": 178.56,
-      "network_recv_mb": 2106.79,
-      "network_packets_sent": 265349,
-      "network_packets_recv": 721615,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:04:03.516478",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:04:03.516478",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.99,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.07,
-      "disk_read_mb": 170603.46,
-      "disk_write_mb": 173728.24,
-      "network_sent_mb": 178.79,
-      "network_recv_mb": 2106.9,
-      "network_packets_sent": 265940,
-      "network_packets_recv": 722238,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.07,
-          "free_gb": 167.87,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:04:38.241848",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:04:38.241848",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.13,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170613.59,
-      "disk_write_mb": 173785.64,
-      "network_sent_mb": 178.9,
-      "network_recv_mb": 2107.02,
-      "network_packets_sent": 266238,
-      "network_packets_recv": 722573,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:05:16.188338",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:05:16.188338",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.09,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170613.84,
-      "disk_write_mb": 173807.98,
-      "network_sent_mb": 179.03,
-      "network_recv_mb": 2107.16,
-      "network_packets_sent": 266559,
-      "network_packets_recv": 722912,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:05:54.395918",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:05:54.395918",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.04,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170650.89,
-      "disk_write_mb": 173821.4,
-      "network_sent_mb": 179.11,
-      "network_recv_mb": 2107.32,
-      "network_packets_sent": 266752,
-      "network_packets_recv": 723122,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:06:31.962093",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:06:31.962093",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.01,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170651.79,
-      "disk_write_mb": 173833.96,
-      "network_sent_mb": 179.26,
-      "network_recv_mb": 2107.43,
-      "network_packets_sent": 267229,
-      "network_packets_recv": 723615,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 74,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:07:09.072270",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:07:09.072270",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.08,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170652.82,
-      "disk_write_mb": 173849.5,
-      "network_sent_mb": 179.46,
-      "network_recv_mb": 2107.57,
-      "network_packets_sent": 268071,
-      "network_packets_recv": 724613,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 203.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 74,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:07:46.139818",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:07:46.139818",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.14,
-      "swap_usage": 13.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.04,
-      "disk_read_mb": 170660.25,
-      "disk_write_mb": 173874.22,
-      "network_sent_mb": 179.52,
-      "network_recv_mb": 2107.64,
-      "network_packets_sent": 268283,
-      "network_packets_recv": 724838,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.04,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:08:24.970386",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:08:24.970386",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.44,
-      "swap_usage": 13.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 170880.5,
-      "disk_write_mb": 173908.72,
-      "network_sent_mb": 179.74,
-      "network_recv_mb": 2108.13,
-      "network_packets_sent": 269074,
-      "network_packets_recv": 725657,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.9,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:09:01.562704",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:09:01.562704",
-      "is_sysmon_available": false,
-      "cpu_usage": 36.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 22.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 172038.31,
-      "disk_write_mb": 175620.33,
-      "network_sent_mb": 179.87,
-      "network_recv_mb": 2110.13,
-      "network_packets_sent": 269769,
-      "network_packets_recv": 726729,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:09:40.231023",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:09:40.231023",
-      "is_sysmon_available": false,
-      "cpu_usage": 42.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 22.3,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 172465.58,
-      "disk_write_mb": 176015.65,
-      "network_sent_mb": 179.96,
-      "network_recv_mb": 2110.26,
-      "network_packets_sent": 270055,
-      "network_packets_recv": 727053,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T18:44:26.010087",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:44:26.010087",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.54,
-      "swap_usage": 20.5,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173494.85,
-      "disk_write_mb": 176267.62,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:45:06.409995",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:45:06.409995",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.56,
-      "swap_usage": 20.3,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173672.81,
-      "disk_write_mb": 176328.02,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:45:45.849924",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:45:45.849924",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 20.3,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173735.87,
-      "disk_write_mb": 176343.88,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:46:24.429387",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:46:24.429387",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.31,
-      "swap_usage": 20.1,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173771.59,
-      "disk_write_mb": 176352.8,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:47:02.184701",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:47:02.184701",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.23,
-      "swap_usage": 20.1,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173773.7,
-      "disk_write_mb": 176360.3,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:47:39.898111",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:47:39.898111",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.23,
-      "swap_usage": 20.1,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 173775.84,
-      "disk_write_mb": 176366.27,
-      "network_sent_mb": 179.99,
-      "network_recv_mb": 2110.47,
-      "network_packets_sent": 270268,
-      "network_packets_recv": 727315,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:48:17.964206",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:48:17.964206",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.7,
-      "swap_usage": 19.9,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 174118.8,
-      "disk_write_mb": 176425.25,
-      "network_sent_mb": 180.48,
-      "network_recv_mb": 2111.31,
-      "network_packets_sent": 271659,
-      "network_packets_recv": 728452,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.92,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:48:57.105752",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:48:57.105752",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.74,
-      "swap_usage": 18.4,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 174252.57,
-      "disk_write_mb": 176442.67,
-      "network_sent_mb": 180.58,
-      "network_recv_mb": 2111.42,
-      "network_packets_sent": 272014,
-      "network_packets_recv": 728760,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:49:35.697219",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:49:35.697219",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 18.4,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 174258.43,
-      "disk_write_mb": 176455.52,
-      "network_sent_mb": 180.9,
-      "network_recv_mb": 2111.54,
-      "network_packets_sent": 272470,
-      "network_packets_recv": 729179,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:50:13.694698",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:50:13.694698",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 18.4,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 174259.06,
-      "disk_write_mb": 176465.76,
-      "network_sent_mb": 180.95,
-      "network_recv_mb": 2111.61,
-      "network_packets_sent": 272588,
-      "network_packets_recv": 729326,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:50:51.682011",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:50:51.682011",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 18.4,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.02,
-      "disk_read_mb": 174260.25,
-      "disk_write_mb": 176474.77,
-      "network_sent_mb": 180.98,
-      "network_recv_mb": 2111.64,
-      "network_packets_sent": 272698,
-      "network_packets_recv": 729446,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.02,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:51:29.616213",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:51:29.616213",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.14,
-      "swap_usage": 18.4,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 174301.72,
-      "disk_write_mb": 176510.09,
-      "network_sent_mb": 182.0,
-      "network_recv_mb": 2114.48,
-      "network_packets_sent": 275170,
-      "network_packets_recv": 732581,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:52:08.389192",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:52:08.389192",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.67,
-      "swap_usage": 17.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 174374.91,
-      "disk_write_mb": 176530.53,
-      "network_sent_mb": 182.79,
-      "network_recv_mb": 2116.11,
-      "network_packets_sent": 277234,
-      "network_packets_recv": 734571,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T18:52:43.484630",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T18:52:43.484630",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 17.8,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.03,
-      "disk_read_mb": 174388.26,
-      "disk_write_mb": 176544.39,
-      "network_sent_mb": 182.85,
-      "network_recv_mb": 2116.14,
-      "network_packets_sent": 277352,
-      "network_packets_recv": 734715,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 204.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 308.03,
-          "free_gb": 167.91,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_19.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_19.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,260 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T19:58:35.140707",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T19:58:35.140707",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.63,
-      "swap_usage": 15.7,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 176702.51,
-      "disk_write_mb": 178185.32,
-      "network_sent_mb": 86.05,
-      "network_recv_mb": 106.39,
-      "network_packets_sent": 81373,
-      "network_packets_recv": 130941,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 205.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T19:59:15.381448",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T19:59:15.381448",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 15.7,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 176926.34,
-      "disk_write_mb": 178278.63,
-      "network_sent_mb": 86.89,
-      "network_recv_mb": 121.85,
-      "network_packets_sent": 84900,
-      "network_packets_recv": 144916,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 205.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_20.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_20.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9806 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T19:59:53.546884",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T19:59:53.546884",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 15.6,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 176937.83,
-      "disk_write_mb": 178303.11,
-      "network_sent_mb": 87.0,
-      "network_recv_mb": 122.14,
-      "network_packets_sent": 85285,
-      "network_packets_recv": 145379,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 205.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:00:31.588339",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:00:31.588339",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 15.7,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 176968.09,
-      "disk_write_mb": 178362.07,
-      "network_sent_mb": 87.12,
-      "network_recv_mb": 122.3,
-      "network_packets_sent": 85717,
-      "network_packets_recv": 145853,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 205.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:01:09.294217",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:01:09.294217",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.96,
-      "swap_usage": 15.7,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 176983.36,
-      "disk_write_mb": 178379.2,
-      "network_sent_mb": 87.29,
-      "network_recv_mb": 122.6,
-      "network_packets_sent": 86265,
-      "network_packets_recv": 146508,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 205.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:09:37.589789",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.3.82",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:09:37.589789",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.29,
-      "disk_read_mb": 177356.11,
-      "disk_write_mb": 178512.29,
-      "network_sent_mb": 89.74,
-      "network_recv_mb": 125.2,
-      "network_packets_sent": 91993,
-      "network_packets_recv": 153816,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.29,
-          "free_gb": 169.65,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.3.82",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:10:18.593757",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:10:18.593757",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177396.79,
-      "disk_write_mb": 178561.51,
-      "network_sent_mb": 91.11,
-      "network_recv_mb": 127.02,
-      "network_packets_sent": 93828,
-      "network_packets_recv": 156213,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:10:57.892584",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:10:57.892584",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.15,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177398.2,
-      "disk_write_mb": 178618.52,
-      "network_sent_mb": 91.21,
-      "network_recv_mb": 127.2,
-      "network_packets_sent": 94171,
-      "network_packets_recv": 156580,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:11:36.262005",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:11:36.262005",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.02,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177400.95,
-      "disk_write_mb": 178637.88,
-      "network_sent_mb": 91.29,
-      "network_recv_mb": 127.52,
-      "network_packets_sent": 94491,
-      "network_packets_recv": 156964,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:12:14.937231",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:12:14.937231",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177402.88,
-      "disk_write_mb": 178661.77,
-      "network_sent_mb": 91.35,
-      "network_recv_mb": 127.58,
-      "network_packets_sent": 94709,
-      "network_packets_recv": 157201,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:12:52.201885",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:12:52.201885",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177403.08,
-      "disk_write_mb": 178675.65,
-      "network_sent_mb": 91.39,
-      "network_recv_mb": 127.65,
-      "network_packets_sent": 94888,
-      "network_packets_recv": 157404,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:13:30.105317",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:13:30.105317",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177404.9,
-      "disk_write_mb": 178688.56,
-      "network_sent_mb": 91.45,
-      "network_recv_mb": 127.75,
-      "network_packets_sent": 95131,
-      "network_packets_recv": 157665,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:14:08.111227",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:14:08.111227",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177405.12,
-      "disk_write_mb": 178700.5,
-      "network_sent_mb": 91.5,
-      "network_recv_mb": 127.79,
-      "network_packets_sent": 95309,
-      "network_packets_recv": 157851,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:14:45.751759",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:14:45.751759",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.12,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177421.22,
-      "disk_write_mb": 178715.51,
-      "network_sent_mb": 91.79,
-      "network_recv_mb": 128.18,
-      "network_packets_sent": 95875,
-      "network_packets_recv": 158417,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:15:23.371380",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:15:23.371380",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.08,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177422.92,
-      "disk_write_mb": 178729.68,
-      "network_sent_mb": 91.9,
-      "network_recv_mb": 128.29,
-      "network_packets_sent": 96194,
-      "network_packets_recv": 158754,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:16:00.637666",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:16:00.637666",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.95,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177423.23,
-      "disk_write_mb": 178741.43,
-      "network_sent_mb": 91.93,
-      "network_recv_mb": 128.36,
-      "network_packets_sent": 96317,
-      "network_packets_recv": 158905,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:16:38.011785",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:16:38.011785",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177423.78,
-      "disk_write_mb": 178753.89,
-      "network_sent_mb": 91.99,
-      "network_recv_mb": 128.47,
-      "network_packets_sent": 96568,
-      "network_packets_recv": 159229,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:17:15.466753",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:17:15.466753",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177425.01,
-      "disk_write_mb": 178766.84,
-      "network_sent_mb": 92.07,
-      "network_recv_mb": 128.53,
-      "network_packets_sent": 96786,
-      "network_packets_recv": 159441,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:17:52.694476",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:17:52.694476",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177425.94,
-      "disk_write_mb": 178778.76,
-      "network_sent_mb": 92.12,
-      "network_recv_mb": 128.61,
-      "network_packets_sent": 96952,
-      "network_packets_recv": 159641,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:18:29.854555",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:18:29.854555",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.01,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177426.16,
-      "disk_write_mb": 178788.55,
-      "network_sent_mb": 92.16,
-      "network_recv_mb": 128.69,
-      "network_packets_sent": 97113,
-      "network_packets_recv": 159831,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:19:07.055563",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:19:07.055563",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.78,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177426.6,
-      "disk_write_mb": 178805.05,
-      "network_sent_mb": 92.21,
-      "network_recv_mb": 128.74,
-      "network_packets_sent": 97284,
-      "network_packets_recv": 160008,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:19:44.359023",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:19:44.359023",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.94,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177436.35,
-      "disk_write_mb": 178851.0,
-      "network_sent_mb": 92.34,
-      "network_recv_mb": 129.03,
-      "network_packets_sent": 97691,
-      "network_packets_recv": 160564,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:20:21.644421",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:20:21.644421",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.81,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177436.71,
-      "disk_write_mb": 178865.08,
-      "network_sent_mb": 92.4,
-      "network_recv_mb": 129.09,
-      "network_packets_sent": 97890,
-      "network_packets_recv": 160770,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:20:59.008612",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:20:59.008612",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.75,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177436.79,
-      "disk_write_mb": 178875.72,
-      "network_sent_mb": 92.47,
-      "network_recv_mb": 129.19,
-      "network_packets_sent": 98160,
-      "network_packets_recv": 161072,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:21:36.320479",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:21:36.320479",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.85,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177452.72,
-      "disk_write_mb": 178890.06,
-      "network_sent_mb": 92.55,
-      "network_recv_mb": 129.3,
-      "network_packets_sent": 98403,
-      "network_packets_recv": 161355,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:22:13.566784",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:22:13.566784",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.49,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177452.95,
-      "disk_write_mb": 178902.11,
-      "network_sent_mb": 92.6,
-      "network_recv_mb": 129.33,
-      "network_packets_sent": 98535,
-      "network_packets_recv": 161508,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:22:50.856498",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:22:50.856498",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177453.15,
-      "disk_write_mb": 178916.08,
-      "network_sent_mb": 92.65,
-      "network_recv_mb": 129.43,
-      "network_packets_sent": 98747,
-      "network_packets_recv": 161769,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:23:28.123460",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:23:28.123460",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.56,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177455.13,
-      "disk_write_mb": 178927.8,
-      "network_sent_mb": 92.69,
-      "network_recv_mb": 129.51,
-      "network_packets_sent": 98932,
-      "network_packets_recv": 161977,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:24:05.315637",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:24:05.315637",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.45,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177455.71,
-      "disk_write_mb": 178941.44,
-      "network_sent_mb": 92.72,
-      "network_recv_mb": 129.54,
-      "network_packets_sent": 99077,
-      "network_packets_recv": 162146,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:24:42.491764",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:24:42.491764",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.52,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177455.79,
-      "disk_write_mb": 178953.12,
-      "network_sent_mb": 92.79,
-      "network_recv_mb": 129.64,
-      "network_packets_sent": 99323,
-      "network_packets_recv": 162446,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:25:19.710492",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:25:19.710492",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.68,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177477.39,
-      "disk_write_mb": 178966.05,
-      "network_sent_mb": 92.89,
-      "network_recv_mb": 129.77,
-      "network_packets_sent": 99615,
-      "network_packets_recv": 162797,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:25:59.336136",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:25:59.336136",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.58,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177478.27,
-      "disk_write_mb": 178977.48,
-      "network_sent_mb": 92.93,
-      "network_recv_mb": 129.82,
-      "network_packets_sent": 99748,
-      "network_packets_recv": 162944,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:26:38.748986",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:26:38.748986",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.65,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177478.41,
-      "disk_write_mb": 178989.62,
-      "network_sent_mb": 92.99,
-      "network_recv_mb": 129.91,
-      "network_packets_sent": 100016,
-      "network_packets_recv": 163263,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:27:18.112536",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:27:18.112536",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.81,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.28,
-      "disk_read_mb": 177485.58,
-      "disk_write_mb": 179003.88,
-      "network_sent_mb": 93.07,
-      "network_recv_mb": 130.09,
-      "network_packets_sent": 100250,
-      "network_packets_recv": 163522,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.28,
-          "free_gb": 169.66,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:31:41.996596",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:31:41.996596",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177511.71,
-      "disk_write_mb": 179037.68,
-      "network_sent_mb": 93.63,
-      "network_recv_mb": 130.89,
-      "network_packets_sent": 101966,
-      "network_packets_recv": 165329,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:32:23.242784",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:32:23.242784",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177512.71,
-      "disk_write_mb": 179075.02,
-      "network_sent_mb": 93.75,
-      "network_recv_mb": 131.11,
-      "network_packets_sent": 102352,
-      "network_packets_recv": 165822,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:33:02.999647",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:33:02.999647",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.89,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177513.33,
-      "disk_write_mb": 179087.81,
-      "network_sent_mb": 93.8,
-      "network_recv_mb": 131.15,
-      "network_packets_sent": 102543,
-      "network_packets_recv": 166034,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:33:42.050339",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:33:42.050339",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177515.28,
-      "disk_write_mb": 179099.8,
-      "network_sent_mb": 93.9,
-      "network_recv_mb": 131.25,
-      "network_packets_sent": 102830,
-      "network_packets_recv": 166381,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:34:21.322819",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:34:21.322819",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177515.58,
-      "disk_write_mb": 179114.48,
-      "network_sent_mb": 93.97,
-      "network_recv_mb": 131.31,
-      "network_packets_sent": 103097,
-      "network_packets_recv": 166678,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:35:00.600112",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:35:00.600112",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.85,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177515.96,
-      "disk_write_mb": 179126.67,
-      "network_sent_mb": 94.02,
-      "network_recv_mb": 131.35,
-      "network_packets_sent": 103288,
-      "network_packets_recv": 166888,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:35:39.467057",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:35:39.467057",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 15.5,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.27,
-      "disk_read_mb": 177516.29,
-      "disk_write_mb": 179139.05,
-      "network_sent_mb": 94.1,
-      "network_recv_mb": 131.46,
-      "network_packets_sent": 103592,
-      "network_packets_recv": 167227,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.27,
-          "free_gb": 169.67,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:36:19.376143",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:36:19.376143",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.57,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177517.4,
-      "disk_write_mb": 179154.07,
-      "network_sent_mb": 94.19,
-      "network_recv_mb": 131.56,
-      "network_packets_sent": 103873,
-      "network_packets_recv": 167554,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.67,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:36:58.099994",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:36:58.099994",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177518.1,
-      "disk_write_mb": 179167.77,
-      "network_sent_mb": 94.33,
-      "network_recv_mb": 132.29,
-      "network_packets_sent": 104239,
-      "network_packets_recv": 168401,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.67,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:37:37.371722",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:37:37.371722",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177519.14,
-      "disk_write_mb": 179183.52,
-      "network_sent_mb": 95.33,
-      "network_recv_mb": 133.01,
-      "network_packets_sent": 105382,
-      "network_packets_recv": 169650,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:38:15.871928",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:38:15.871928",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.55,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177521.46,
-      "disk_write_mb": 179196.22,
-      "network_sent_mb": 95.41,
-      "network_recv_mb": 133.05,
-      "network_packets_sent": 105559,
-      "network_packets_recv": 169814,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:38:54.406769",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:38:54.406769",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.21,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177521.97,
-      "disk_write_mb": 179208.0,
-      "network_sent_mb": 95.47,
-      "network_recv_mb": 133.16,
-      "network_packets_sent": 105815,
-      "network_packets_recv": 170098,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:39:32.735913",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:39:32.735913",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.42,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177531.44,
-      "disk_write_mb": 179222.77,
-      "network_sent_mb": 95.54,
-      "network_recv_mb": 133.41,
-      "network_packets_sent": 106085,
-      "network_packets_recv": 170451,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:40:11.219503",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:40:11.219503",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.22,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177532.15,
-      "disk_write_mb": 179234.21,
-      "network_sent_mb": 95.58,
-      "network_recv_mb": 133.45,
-      "network_packets_sent": 106239,
-      "network_packets_recv": 170634,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:40:50.069599",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:40:50.069599",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.45,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177533.59,
-      "disk_write_mb": 179249.15,
-      "network_sent_mb": 95.79,
-      "network_recv_mb": 133.63,
-      "network_packets_sent": 106683,
-      "network_packets_recv": 171099,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:41:28.651801",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:41:28.651801",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177566.86,
-      "disk_write_mb": 179287.9,
-      "network_sent_mb": 97.11,
-      "network_recv_mb": 144.65,
-      "network_packets_sent": 111120,
-      "network_packets_recv": 182220,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 100,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:42:08.375660",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:42:08.375660",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.17,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.25,
-      "disk_read_mb": 177572.0,
-      "disk_write_mb": 179305.24,
-      "network_sent_mb": 97.31,
-      "network_recv_mb": 144.88,
-      "network_packets_sent": 111612,
-      "network_packets_recv": 182819,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.25,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:42:47.603186",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:42:47.603186",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.13,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177573.59,
-      "disk_write_mb": 179323.21,
-      "network_sent_mb": 98.03,
-      "network_recv_mb": 146.82,
-      "network_packets_sent": 112587,
-      "network_packets_recv": 185079,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:43:26.948316",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:43:26.948316",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.19,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177575.34,
-      "disk_write_mb": 179336.55,
-      "network_sent_mb": 98.58,
-      "network_recv_mb": 147.07,
-      "network_packets_sent": 113263,
-      "network_packets_recv": 185611,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:44:06.726392",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:44:06.726392",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.89,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177580.21,
-      "disk_write_mb": 179349.77,
-      "network_sent_mb": 98.67,
-      "network_recv_mb": 147.12,
-      "network_packets_sent": 113463,
-      "network_packets_recv": 185797,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 99,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:44:46.116882",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:44:46.116882",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.29,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177581.1,
-      "disk_write_mb": 179362.52,
-      "network_sent_mb": 99.04,
-      "network_recv_mb": 147.34,
-      "network_packets_sent": 114265,
-      "network_packets_recv": 186633,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:45:23.731163",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:45:23.731163",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.49,
-      "swap_usage": 15.5,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.26,
-      "disk_read_mb": 177581.28,
-      "disk_write_mb": 179374.14,
-      "network_sent_mb": 99.17,
-      "network_recv_mb": 147.55,
-      "network_packets_sent": 115402,
-      "network_packets_recv": 188080,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.26,
-          "free_gb": 169.68,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:46:01.355708",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:46:01.355708",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177591.56,
-      "disk_write_mb": 179389.88,
-      "network_sent_mb": 99.51,
-      "network_recv_mb": 147.91,
-      "network_packets_sent": 116308,
-      "network_packets_recv": 189086,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 98,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:46:39.982811",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:46:39.982811",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177592.71,
-      "disk_write_mb": 179403.58,
-      "network_sent_mb": 100.19,
-      "network_recv_mb": 148.41,
-      "network_packets_sent": 117108,
-      "network_packets_recv": 189876,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 97,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:47:19.079349",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:47:19.079349",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.87,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177593.16,
-      "disk_write_mb": 179417.84,
-      "network_sent_mb": 100.38,
-      "network_recv_mb": 148.53,
-      "network_packets_sent": 117478,
-      "network_packets_recv": 190267,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 97,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:47:56.941789",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:47:56.941789",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.09,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177593.66,
-      "disk_write_mb": 179429.59,
-      "network_sent_mb": 100.5,
-      "network_recv_mb": 148.75,
-      "network_packets_sent": 118544,
-      "network_packets_recv": 191690,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 97,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:48:34.680794",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:48:34.680794",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177594.58,
-      "disk_write_mb": 179440.66,
-      "network_sent_mb": 100.6,
-      "network_recv_mb": 148.89,
-      "network_packets_sent": 118906,
-      "network_packets_recv": 192109,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 96,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:49:12.327842",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:49:12.327842",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.57,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.02,
-      "disk_read_mb": 177595.2,
-      "disk_write_mb": 179453.63,
-      "network_sent_mb": 100.67,
-      "network_recv_mb": 148.95,
-      "network_packets_sent": 119106,
-      "network_packets_recv": 192320,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.02,
-          "free_gb": 169.92,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 96,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:49:51.546739",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:49:51.546739",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.42,
-      "swap_usage": 15.6,
-      "disk_usage": 64.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.03,
-      "disk_read_mb": 177607.67,
-      "disk_write_mb": 179488.0,
-      "network_sent_mb": 102.16,
-      "network_recv_mb": 153.53,
-      "network_packets_sent": 122553,
-      "network_packets_recv": 197213,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.03,
-          "free_gb": 169.91,
-          "percent_used": 64.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 95,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:50:31.387194",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:50:31.387194",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 15.6,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.34,
-      "disk_read_mb": 177610.0,
-      "disk_write_mb": 179640.5,
-      "network_sent_mb": 103.11,
-      "network_recv_mb": 448.39,
-      "network_packets_sent": 136305,
-      "network_packets_recv": 215370,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.35,
-          "free_gb": 169.59,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 95,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:51:11.244981",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:51:11.244981",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.26,
-      "swap_usage": 15.6,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.68,
-      "disk_read_mb": 177631.85,
-      "disk_write_mb": 180253.65,
-      "network_sent_mb": 103.28,
-      "network_recv_mb": 493.39,
-      "network_packets_sent": 138522,
-      "network_packets_recv": 217820,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.68,
-          "free_gb": 169.26,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 95,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:51:51.051224",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:51:51.051224",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.21,
-      "swap_usage": 15.6,
-      "disk_usage": 64.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 306.7,
-      "disk_read_mb": 177656.71,
-      "disk_write_mb": 180302.63,
-      "network_sent_mb": 103.37,
-      "network_recv_mb": 493.52,
-      "network_packets_sent": 138845,
-      "network_packets_recv": 218216,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 306.7,
-          "free_gb": 169.24,
-          "percent_used": 64.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 94,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:52:31.715269",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:52:31.715269",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.66,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.39,
-      "disk_read_mb": 177666.75,
-      "disk_write_mb": 180530.79,
-      "network_sent_mb": 103.43,
-      "network_recv_mb": 493.58,
-      "network_packets_sent": 139066,
-      "network_packets_recv": 218482,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.39,
-          "free_gb": 168.55,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 94,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:53:11.612992",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:53:11.612992",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 177678.2,
-      "disk_write_mb": 181288.16,
-      "network_sent_mb": 103.46,
-      "network_recv_mb": 493.61,
-      "network_packets_sent": 139193,
-      "network_packets_recv": 218628,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:53:51.738316",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:53:51.738316",
-      "is_sysmon_available": false,
-      "cpu_usage": 35.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 177752.14,
-      "disk_write_mb": 181845.01,
-      "network_sent_mb": 103.7,
-      "network_recv_mb": 514.25,
-      "network_packets_sent": 140845,
-      "network_packets_recv": 220796,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:54:32.828214",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:54:32.828214",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178123.84,
-      "disk_write_mb": 181979.71,
-      "network_sent_mb": 104.29,
-      "network_recv_mb": 516.55,
-      "network_packets_sent": 142821,
-      "network_packets_recv": 223440,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:55:13.082132",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:55:13.082132",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178213.85,
-      "disk_write_mb": 182029.49,
-      "network_sent_mb": 104.4,
-      "network_recv_mb": 516.74,
-      "network_packets_sent": 143251,
-      "network_packets_recv": 223895,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:55:52.712190",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:55:52.712190",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.93,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178248.72,
-      "disk_write_mb": 182049.01,
-      "network_sent_mb": 104.6,
-      "network_recv_mb": 516.86,
-      "network_packets_sent": 143619,
-      "network_packets_recv": 224274,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:56:31.646363",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:56:31.646363",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 15.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178282.12,
-      "disk_write_mb": 182077.9,
-      "network_sent_mb": 104.86,
-      "network_recv_mb": 517.09,
-      "network_packets_sent": 144171,
-      "network_packets_recv": 224844,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:57:11.402462",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:57:11.402462",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178326.64,
-      "disk_write_mb": 182115.24,
-      "network_sent_mb": 105.05,
-      "network_recv_mb": 517.32,
-      "network_packets_sent": 144722,
-      "network_packets_recv": 225448,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:57:50.015006",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:57:50.015006",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.66,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178347.99,
-      "disk_write_mb": 182145.38,
-      "network_sent_mb": 105.81,
-      "network_recv_mb": 518.2,
-      "network_packets_sent": 145551,
-      "network_packets_recv": 226382,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:58:28.661942",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:58:28.661942",
-      "is_sysmon_available": false,
-      "cpu_usage": 37.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178353.82,
-      "disk_write_mb": 182162.76,
-      "network_sent_mb": 106.17,
-      "network_recv_mb": 521.67,
-      "network_packets_sent": 146735,
-      "network_packets_recv": 227872,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:59:09.286347",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:59:09.286347",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.47,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178359.96,
-      "disk_write_mb": 182186.9,
-      "network_sent_mb": 106.54,
-      "network_recv_mb": 523.89,
-      "network_packets_sent": 147845,
-      "network_packets_recv": 229152,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T20:59:49.216648",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:59:49.216648",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.45,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178365.01,
-      "disk_write_mb": 182205.01,
-      "network_sent_mb": 106.74,
-      "network_recv_mb": 524.01,
-      "network_packets_sent": 148268,
-      "network_packets_recv": 229567,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260122_21.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260122_21.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,10709 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T21:00:28.819949",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:00:28.819949",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.64,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178438.89,
-      "disk_write_mb": 182228.3,
-      "network_sent_mb": 106.9,
-      "network_recv_mb": 525.25,
-      "network_packets_sent": 148829,
-      "network_packets_recv": 230243,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:01:08.346337",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:01:08.346337",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.39,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178451.51,
-      "disk_write_mb": 182284.57,
-      "network_sent_mb": 107.09,
-      "network_recv_mb": 525.44,
-      "network_packets_sent": 149512,
-      "network_packets_recv": 231065,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:01:45.744543",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:01:45.744543",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178468.67,
-      "disk_write_mb": 182308.01,
-      "network_sent_mb": 107.63,
-      "network_recv_mb": 526.32,
-      "network_packets_sent": 150812,
-      "network_packets_recv": 232834,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:02:25.142489",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:02:25.142489",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178490.62,
-      "disk_write_mb": 182346.32,
-      "network_sent_mb": 108.39,
-      "network_recv_mb": 526.9,
-      "network_packets_sent": 151822,
-      "network_packets_recv": 233858,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:03:01.991038",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:03:01.991038",
-      "is_sysmon_available": false,
-      "cpu_usage": 49.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178491.6,
-      "disk_write_mb": 182360.87,
-      "network_sent_mb": 108.52,
-      "network_recv_mb": 526.99,
-      "network_packets_sent": 152185,
-      "network_packets_recv": 234223,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:03:40.744991",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:03:40.744991",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178495.05,
-      "disk_write_mb": 182378.19,
-      "network_sent_mb": 108.81,
-      "network_recv_mb": 527.38,
-      "network_packets_sent": 152909,
-      "network_packets_recv": 234965,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:04:18.767962",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:04:18.767962",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178495.74,
-      "disk_write_mb": 182390.89,
-      "network_sent_mb": 108.9,
-      "network_recv_mb": 527.58,
-      "network_packets_sent": 153397,
-      "network_packets_recv": 235593,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:04:57.248879",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:04:57.248879",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178532.31,
-      "disk_write_mb": 182420.73,
-      "network_sent_mb": 111.24,
-      "network_recv_mb": 532.35,
-      "network_packets_sent": 156103,
-      "network_packets_recv": 240551,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:05:37.252659",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:05:37.252659",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.2,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178534.39,
-      "disk_write_mb": 182444.69,
-      "network_sent_mb": 111.77,
-      "network_recv_mb": 532.48,
-      "network_packets_sent": 156780,
-      "network_packets_recv": 241003,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:06:16.957779",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:06:16.957779",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.09,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178538.83,
-      "disk_write_mb": 182458.31,
-      "network_sent_mb": 111.91,
-      "network_recv_mb": 532.89,
-      "network_packets_sent": 157450,
-      "network_packets_recv": 242018,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:06:54.923421",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:06:54.923421",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.71,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178542.62,
-      "disk_write_mb": 182482.4,
-      "network_sent_mb": 113.32,
-      "network_recv_mb": 536.13,
-      "network_packets_sent": 159363,
-      "network_packets_recv": 245622,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:07:34.182024",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:07:34.182024",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.94,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 178543.69,
-      "disk_write_mb": 182505.07,
-      "network_sent_mb": 114.33,
-      "network_recv_mb": 536.83,
-      "network_packets_sent": 160461,
-      "network_packets_recv": 246666,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 206.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:08:13.879027",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:08:13.879027",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.77,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178554.64,
-      "disk_write_mb": 182530.53,
-      "network_sent_mb": 114.49,
-      "network_recv_mb": 536.97,
-      "network_packets_sent": 160901,
-      "network_packets_recv": 247166,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:08:53.370005",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:08:53.370005",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178564.25,
-      "disk_write_mb": 182551.06,
-      "network_sent_mb": 114.8,
-      "network_recv_mb": 537.02,
-      "network_packets_sent": 161178,
-      "network_packets_recv": 247433,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:09:31.979306",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:09:31.979306",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178564.46,
-      "disk_write_mb": 182566.85,
-      "network_sent_mb": 115.01,
-      "network_recv_mb": 537.35,
-      "network_packets_sent": 162041,
-      "network_packets_recv": 248524,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:10:09.762119",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:10:09.762119",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178567.83,
-      "disk_write_mb": 182595.46,
-      "network_sent_mb": 115.53,
-      "network_recv_mb": 537.94,
-      "network_packets_sent": 162870,
-      "network_packets_recv": 249496,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:10:48.849301",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:10:48.849301",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178568.19,
-      "disk_write_mb": 182614.04,
-      "network_sent_mb": 116.2,
-      "network_recv_mb": 538.24,
-      "network_packets_sent": 163612,
-      "network_packets_recv": 250057,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:11:27.869988",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:11:27.869988",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.86,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178569.88,
-      "disk_write_mb": 182631.9,
-      "network_sent_mb": 116.4,
-      "network_recv_mb": 538.4,
-      "network_packets_sent": 164032,
-      "network_packets_recv": 250535,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:12:05.798426",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:12:05.798426",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178570.75,
-      "disk_write_mb": 182644.3,
-      "network_sent_mb": 116.51,
-      "network_recv_mb": 538.62,
-      "network_packets_sent": 164838,
-      "network_packets_recv": 251531,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:12:43.070361",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:12:43.070361",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.27,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178571.1,
-      "disk_write_mb": 182657.03,
-      "network_sent_mb": 116.57,
-      "network_recv_mb": 538.7,
-      "network_packets_sent": 165074,
-      "network_packets_recv": 251810,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:13:22.232710",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:13:22.232710",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 15.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178574.4,
-      "disk_write_mb": 182675.07,
-      "network_sent_mb": 117.65,
-      "network_recv_mb": 539.45,
-      "network_packets_sent": 166290,
-      "network_packets_recv": 252996,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:14:01.457220",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:14:01.457220",
-      "is_sysmon_available": false,
-      "cpu_usage": 75.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178787.94,
-      "disk_write_mb": 182714.92,
-      "network_sent_mb": 117.82,
-      "network_recv_mb": 539.6,
-      "network_packets_sent": 166631,
-      "network_packets_recv": 253340,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:14:41.670674",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:14:41.670674",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.53,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178789.46,
-      "disk_write_mb": 182756.57,
-      "network_sent_mb": 118.23,
-      "network_recv_mb": 539.96,
-      "network_packets_sent": 167375,
-      "network_packets_recv": 254036,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:15:20.196110",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:15:20.196110",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178790.54,
-      "disk_write_mb": 182770.53,
-      "network_sent_mb": 118.47,
-      "network_recv_mb": 540.09,
-      "network_packets_sent": 167809,
-      "network_packets_recv": 254435,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:15:58.967179",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:15:58.967179",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.26,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178838.45,
-      "disk_write_mb": 182791.79,
-      "network_sent_mb": 118.59,
-      "network_recv_mb": 540.2,
-      "network_packets_sent": 168072,
-      "network_packets_recv": 254713,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:16:34.909068",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:16:34.909068",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178866.54,
-      "disk_write_mb": 182829.34,
-      "network_sent_mb": 118.65,
-      "network_recv_mb": 540.54,
-      "network_packets_sent": 168383,
-      "network_packets_recv": 255120,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:17:10.123799",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:17:10.123799",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 178868.51,
-      "disk_write_mb": 182844.92,
-      "network_sent_mb": 118.72,
-      "network_recv_mb": 540.65,
-      "network_packets_sent": 168615,
-      "network_packets_recv": 255394,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:17:49.987911",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:17:49.987911",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.42,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178868.83,
-      "disk_write_mb": 182861.74,
-      "network_sent_mb": 118.81,
-      "network_recv_mb": 540.72,
-      "network_packets_sent": 168830,
-      "network_packets_recv": 255628,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:18:29.084920",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:18:29.084920",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.44,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178869.36,
-      "disk_write_mb": 182874.33,
-      "network_sent_mb": 118.95,
-      "network_recv_mb": 540.84,
-      "network_packets_sent": 169134,
-      "network_packets_recv": 255926,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:19:08.555013",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:19:08.555013",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178935.85,
-      "disk_write_mb": 182897.56,
-      "network_sent_mb": 119.1,
-      "network_recv_mb": 541.32,
-      "network_packets_sent": 169527,
-      "network_packets_recv": 256364,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:19:48.772889",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:19:48.772889",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.67,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178940.96,
-      "disk_write_mb": 182923.23,
-      "network_sent_mb": 119.21,
-      "network_recv_mb": 541.42,
-      "network_packets_sent": 169833,
-      "network_packets_recv": 256724,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:20:27.867547",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:20:27.867547",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178993.28,
-      "disk_write_mb": 182938.2,
-      "network_sent_mb": 119.68,
-      "network_recv_mb": 541.75,
-      "network_packets_sent": 170459,
-      "network_packets_recv": 257302,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:21:05.753031",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:21:05.753031",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.44,
-      "swap_usage": 14.9,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178993.7,
-      "disk_write_mb": 182966.43,
-      "network_sent_mb": 119.76,
-      "network_recv_mb": 541.87,
-      "network_packets_sent": 171214,
-      "network_packets_recv": 258261,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:21:43.890747",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:21:43.890747",
-      "is_sysmon_available": false,
-      "cpu_usage": 37.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.66,
-      "swap_usage": 14.9,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 178997.48,
-      "disk_write_mb": 182981.91,
-      "network_sent_mb": 119.82,
-      "network_recv_mb": 541.98,
-      "network_packets_sent": 171422,
-      "network_packets_recv": 258520,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:22:23.146583",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:22:23.146583",
-      "is_sysmon_available": false,
-      "cpu_usage": 88.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 179011.35,
-      "disk_write_mb": 183000.14,
-      "network_sent_mb": 120.97,
-      "network_recv_mb": 542.74,
-      "network_packets_sent": 172726,
-      "network_packets_recv": 259730,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:22:59.272484",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:22:59.272484",
-      "is_sysmon_available": false,
-      "cpu_usage": 70.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 179019.25,
-      "disk_write_mb": 183042.81,
-      "network_sent_mb": 121.11,
-      "network_recv_mb": 542.85,
-      "network_packets_sent": 173019,
-      "network_packets_recv": 260025,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:23:40.441581",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:23:40.441581",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 179063.22,
-      "disk_write_mb": 183074.36,
-      "network_sent_mb": 121.2,
-      "network_recv_mb": 542.91,
-      "network_packets_sent": 173230,
-      "network_packets_recv": 260237,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:24:54.264968",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:24:54.264968",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.08,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 179067.39,
-      "disk_write_mb": 183147.26,
-      "network_sent_mb": 121.35,
-      "network_recv_mb": 543.04,
-      "network_packets_sent": 173631,
-      "network_packets_recv": 260669,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 74,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:25:33.606932",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:25:33.606932",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179082.28,
-      "disk_write_mb": 183180.99,
-      "network_sent_mb": 121.79,
-      "network_recv_mb": 543.26,
-      "network_packets_sent": 174674,
-      "network_packets_recv": 261656,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:26:11.915596",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:26:11.915596",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 179083.61,
-      "disk_write_mb": 183197.2,
-      "network_sent_mb": 122.97,
-      "network_recv_mb": 544.29,
-      "network_packets_sent": 176272,
-      "network_packets_recv": 263371,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.26,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:26:52.139085",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:26:52.139085",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179084.36,
-      "disk_write_mb": 183216.1,
-      "network_sent_mb": 123.12,
-      "network_recv_mb": 544.38,
-      "network_packets_sent": 176608,
-      "network_packets_recv": 263719,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:27:31.924499",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:27:31.924499",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.14,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179084.76,
-      "disk_write_mb": 183229.2,
-      "network_sent_mb": 123.28,
-      "network_recv_mb": 544.5,
-      "network_packets_sent": 177186,
-      "network_packets_recv": 264361,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:28:10.050285",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:28:10.050285",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179085.0,
-      "disk_write_mb": 183238.17,
-      "network_sent_mb": 123.34,
-      "network_recv_mb": 544.56,
-      "network_packets_sent": 177441,
-      "network_packets_recv": 264641,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:28:47.831889",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:28:47.831889",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179085.57,
-      "disk_write_mb": 183248.9,
-      "network_sent_mb": 123.5,
-      "network_recv_mb": 544.64,
-      "network_packets_sent": 177691,
-      "network_packets_recv": 264844,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:29:26.744062",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:29:26.744062",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179118.44,
-      "disk_write_mb": 183258.79,
-      "network_sent_mb": 123.62,
-      "network_recv_mb": 544.69,
-      "network_packets_sent": 177898,
-      "network_packets_recv": 265017,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:30:06.015492",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:30:06.015492",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179118.91,
-      "disk_write_mb": 183269.29,
-      "network_sent_mb": 123.78,
-      "network_recv_mb": 544.8,
-      "network_packets_sent": 178413,
-      "network_packets_recv": 265574,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:30:44.014549",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:30:44.014549",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.16,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179119.06,
-      "disk_write_mb": 183280.69,
-      "network_sent_mb": 123.93,
-      "network_recv_mb": 544.96,
-      "network_packets_sent": 179388,
-      "network_packets_recv": 266773,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:31:21.693693",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:31:21.693693",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.17,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.68,
-      "disk_read_mb": 179127.69,
-      "disk_write_mb": 183300.19,
-      "network_sent_mb": 125.1,
-      "network_recv_mb": 546.0,
-      "network_packets_sent": 180903,
-      "network_packets_recv": 268284,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.68,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:32:01.940309",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:32:01.940309",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.89,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179129.72,
-      "disk_write_mb": 183319.35,
-      "network_sent_mb": 125.17,
-      "network_recv_mb": 546.03,
-      "network_packets_sent": 181069,
-      "network_packets_recv": 268445,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:32:38.540754",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:32:38.540754",
-      "is_sysmon_available": false,
-      "cpu_usage": 75.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179135.27,
-      "disk_write_mb": 183361.75,
-      "network_sent_mb": 125.3,
-      "network_recv_mb": 546.14,
-      "network_packets_sent": 181388,
-      "network_packets_recv": 268791,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:33:21.834108",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:33:21.834108",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.93,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179140.3,
-      "disk_write_mb": 183420.25,
-      "network_sent_mb": 125.39,
-      "network_recv_mb": 546.2,
-      "network_packets_sent": 181594,
-      "network_packets_recv": 269021,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:34:01.105474",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:34:01.105474",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179141.27,
-      "disk_write_mb": 183434.01,
-      "network_sent_mb": 125.47,
-      "network_recv_mb": 546.27,
-      "network_packets_sent": 181827,
-      "network_packets_recv": 269261,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:34:40.628199",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:34:40.628199",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179141.92,
-      "disk_write_mb": 183446.63,
-      "network_sent_mb": 125.6,
-      "network_recv_mb": 546.33,
-      "network_packets_sent": 182095,
-      "network_packets_recv": 269507,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:35:20.279211",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:35:20.279211",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179143.68,
-      "disk_write_mb": 183459.38,
-      "network_sent_mb": 125.66,
-      "network_recv_mb": 546.39,
-      "network_packets_sent": 182248,
-      "network_packets_recv": 269679,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:36:00.593897",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:36:00.593897",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.93,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179144.43,
-      "disk_write_mb": 183471.48,
-      "network_sent_mb": 125.7,
-      "network_recv_mb": 546.43,
-      "network_packets_sent": 182394,
-      "network_packets_recv": 269854,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:36:41.286609",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:36:41.286609",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.15,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179145.96,
-      "disk_write_mb": 183488.82,
-      "network_sent_mb": 126.25,
-      "network_recv_mb": 547.01,
-      "network_packets_sent": 183567,
-      "network_packets_recv": 270970,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:37:19.109557",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:37:19.109557",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.56,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179146.62,
-      "disk_write_mb": 183506.04,
-      "network_sent_mb": 126.85,
-      "network_recv_mb": 547.9,
-      "network_packets_sent": 184916,
-      "network_packets_recv": 272956,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:37:57.086686",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:37:57.086686",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179147.24,
-      "disk_write_mb": 183517.2,
-      "network_sent_mb": 127.63,
-      "network_recv_mb": 548.07,
-      "network_packets_sent": 186026,
-      "network_packets_recv": 273807,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:38:34.367441",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:38:34.367441",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.78,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179147.73,
-      "disk_write_mb": 183537.99,
-      "network_sent_mb": 128.79,
-      "network_recv_mb": 549.02,
-      "network_packets_sent": 187361,
-      "network_packets_recv": 275158,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:39:14.292002",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:39:14.292002",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.86,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179152.82,
-      "disk_write_mb": 183553.83,
-      "network_sent_mb": 128.99,
-      "network_recv_mb": 549.1,
-      "network_packets_sent": 187699,
-      "network_packets_recv": 275449,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:39:54.081491",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:39:54.081491",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.78,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179154.16,
-      "disk_write_mb": 183567.9,
-      "network_sent_mb": 129.08,
-      "network_recv_mb": 549.34,
-      "network_packets_sent": 187977,
-      "network_packets_recv": 275780,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:40:33.847561",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:40:33.847561",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 14.8,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179155.23,
-      "disk_write_mb": 183580.23,
-      "network_sent_mb": 129.22,
-      "network_recv_mb": 549.42,
-      "network_packets_sent": 188279,
-      "network_packets_recv": 276051,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:41:13.854913",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:41:13.854913",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179208.28,
-      "disk_write_mb": 183595.67,
-      "network_sent_mb": 129.4,
-      "network_recv_mb": 549.62,
-      "network_packets_sent": 188741,
-      "network_packets_recv": 276538,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:41:53.606050",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:41:53.606050",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179399.33,
-      "disk_write_mb": 183609.94,
-      "network_sent_mb": 129.46,
-      "network_recv_mb": 549.66,
-      "network_packets_sent": 188885,
-      "network_packets_recv": 276687,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:42:34.235845",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:42:34.235845",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179569.86,
-      "disk_write_mb": 183623.96,
-      "network_sent_mb": 129.58,
-      "network_recv_mb": 549.72,
-      "network_packets_sent": 189141,
-      "network_packets_recv": 276943,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:43:10.884905",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:43:10.884905",
-      "is_sysmon_available": false,
-      "cpu_usage": 69.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.24,
-      "swap_usage": 14.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179570.9,
-      "disk_write_mb": 183666.76,
-      "network_sent_mb": 129.63,
-      "network_recv_mb": 549.8,
-      "network_packets_sent": 189306,
-      "network_packets_recv": 277125,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:43:53.071117",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:43:53.071117",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.39,
-      "swap_usage": 14.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179573.06,
-      "disk_write_mb": 183723.25,
-      "network_sent_mb": 129.82,
-      "network_recv_mb": 549.92,
-      "network_packets_sent": 189640,
-      "network_packets_recv": 277436,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:44:31.349812",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:44:31.349812",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.46,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179573.46,
-      "disk_write_mb": 183737.57,
-      "network_sent_mb": 129.99,
-      "network_recv_mb": 550.13,
-      "network_packets_sent": 190744,
-      "network_packets_recv": 278794,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:45:10.791601",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:45:10.791601",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179573.58,
-      "disk_write_mb": 183748.74,
-      "network_sent_mb": 130.16,
-      "network_recv_mb": 550.2,
-      "network_packets_sent": 191098,
-      "network_packets_recv": 279183,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:45:49.886575",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:45:49.886575",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 14.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179574.12,
-      "disk_write_mb": 183760.72,
-      "network_sent_mb": 130.22,
-      "network_recv_mb": 550.29,
-      "network_packets_sent": 191262,
-      "network_packets_recv": 279380,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:49:03.018249",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:49:03.018249",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.66,
-      "swap_usage": 14.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179705.29,
-      "disk_write_mb": 183884.5,
-      "network_sent_mb": 131.94,
-      "network_recv_mb": 551.57,
-      "network_packets_sent": 193876,
-      "network_packets_recv": 281772,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:49:42.610223",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:49:42.610223",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.75,
-      "swap_usage": 14.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179749.88,
-      "disk_write_mb": 183933.5,
-      "network_sent_mb": 132.12,
-      "network_recv_mb": 551.7,
-      "network_packets_sent": 194272,
-      "network_packets_recv": 282188,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.24,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:50:20.690741",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:50:20.690741",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.73,
-      "swap_usage": 14.6,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179750.81,
-      "disk_write_mb": 183977.26,
-      "network_sent_mb": 132.28,
-      "network_recv_mb": 551.91,
-      "network_packets_sent": 195374,
-      "network_packets_recv": 283514,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:50:58.424855",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:50:58.424855",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.28,
-      "swap_usage": 14.6,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 179753.5,
-      "disk_write_mb": 183992.68,
-      "network_sent_mb": 133.48,
-      "network_recv_mb": 552.72,
-      "network_packets_sent": 196726,
-      "network_packets_recv": 284723,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T21:51:37.717317",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:51:37.717317",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.26,
-      "swap_usage": 14.6,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179755.93,
-      "disk_write_mb": 184012.49,
-      "network_sent_mb": 133.68,
-      "network_recv_mb": 552.94,
-      "network_packets_sent": 197256,
-      "network_packets_recv": 285270,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:52:18.246145",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:52:18.246145",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.39,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179794.41,
-      "disk_write_mb": 184042.16,
-      "network_sent_mb": 133.86,
-      "network_recv_mb": 553.23,
-      "network_packets_sent": 197708,
-      "network_packets_recv": 285752,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:52:57.979534",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:52:57.979534",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.32,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179795.46,
-      "disk_write_mb": 184054.26,
-      "network_sent_mb": 133.89,
-      "network_recv_mb": 553.27,
-      "network_packets_sent": 197864,
-      "network_packets_recv": 285944,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:53:37.790466",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:53:37.790466",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.53,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179796.02,
-      "disk_write_mb": 184066.99,
-      "network_sent_mb": 134.03,
-      "network_recv_mb": 553.4,
-      "network_packets_sent": 198456,
-      "network_packets_recv": 286649,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:54:15.614039",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:54:15.614039",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.72,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179796.59,
-      "disk_write_mb": 184078.75,
-      "network_sent_mb": 134.15,
-      "network_recv_mb": 553.66,
-      "network_packets_sent": 199215,
-      "network_packets_recv": 287540,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:54:53.648489",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:54:53.648489",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.94,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179823.26,
-      "disk_write_mb": 184130.76,
-      "network_sent_mb": 134.28,
-      "network_recv_mb": 553.92,
-      "network_packets_sent": 199682,
-      "network_packets_recv": 288102,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:55:31.429944",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:55:31.429944",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.43,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179824.6,
-      "disk_write_mb": 184147.18,
-      "network_sent_mb": 135.49,
-      "network_recv_mb": 554.74,
-      "network_packets_sent": 201120,
-      "network_packets_recv": 289373,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:56:10.598435",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:56:10.598435",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179824.94,
-      "disk_write_mb": 184163.79,
-      "network_sent_mb": 135.62,
-      "network_recv_mb": 554.84,
-      "network_packets_sent": 201555,
-      "network_packets_recv": 289868,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-22T21:56:48.525993",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T21:56:48.525993",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 14.7,
-      "disk_usage": 64.7,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.7,
-      "disk_read_mb": 179825.15,
-      "disk_write_mb": 184174.85,
-      "network_sent_mb": 135.74,
-      "network_recv_mb": 554.97,
-      "network_packets_sent": 202136,
-      "network_packets_recv": 290651,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 207.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.7,
-          "free_gb": 168.24,
-          "percent_used": 64.7
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260123_21.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260123_21.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,4646 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-23T21:36:52.956997",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:36:52.956997",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.62,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192455.42,
-      "disk_write_mb": 192040.85,
-      "network_sent_mb": 61.36,
-      "network_recv_mb": 208.08,
-      "network_packets_sent": 93835,
-      "network_packets_recv": 136190,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:37:29.000925",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:37:29.000925",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.69,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192457.01,
-      "disk_write_mb": 192111.47,
-      "network_sent_mb": 61.4,
-      "network_recv_mb": 208.12,
-      "network_packets_sent": 93949,
-      "network_packets_recv": 136353,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:38:09.353428",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:38:09.353428",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.65,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192457.64,
-      "disk_write_mb": 192124.17,
-      "network_sent_mb": 61.49,
-      "network_recv_mb": 208.38,
-      "network_packets_sent": 94239,
-      "network_packets_recv": 136699,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:38:49.122364",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:38:49.122364",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.66,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192458.43,
-      "disk_write_mb": 192137.94,
-      "network_sent_mb": 61.69,
-      "network_recv_mb": 208.53,
-      "network_packets_sent": 94927,
-      "network_packets_recv": 137542,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:39:27.870648",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:39:27.870648",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.71,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192458.99,
-      "disk_write_mb": 192168.35,
-      "network_sent_mb": 61.9,
-      "network_recv_mb": 208.71,
-      "network_packets_sent": 95845,
-      "network_packets_recv": 138762,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:40:07.259425",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:40:07.259425",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.73,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192459.53,
-      "disk_write_mb": 192192.14,
-      "network_sent_mb": 62.02,
-      "network_recv_mb": 212.7,
-      "network_packets_sent": 96315,
-      "network_packets_recv": 139643,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:40:46.741619",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:40:46.741619",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.74,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192463.13,
-      "disk_write_mb": 192205.16,
-      "network_sent_mb": 62.05,
-      "network_recv_mb": 212.73,
-      "network_packets_sent": 96410,
-      "network_packets_recv": 139767,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:41:26.943929",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:41:26.943929",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.84,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192475.47,
-      "disk_write_mb": 192225.17,
-      "network_sent_mb": 62.3,
-      "network_recv_mb": 213.06,
-      "network_packets_sent": 96842,
-      "network_packets_recv": 140224,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:42:03.226799",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:42:03.226799",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.81,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192480.06,
-      "disk_write_mb": 192237.99,
-      "network_sent_mb": 62.36,
-      "network_recv_mb": 213.11,
-      "network_packets_sent": 96974,
-      "network_packets_recv": 140388,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:42:41.666523",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:42:41.666523",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192523.69,
-      "disk_write_mb": 192252.42,
-      "network_sent_mb": 62.55,
-      "network_recv_mb": 213.3,
-      "network_packets_sent": 97389,
-      "network_packets_recv": 140843,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:43:21.262138",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:43:21.262138",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.96,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192523.89,
-      "disk_write_mb": 192271.18,
-      "network_sent_mb": 62.73,
-      "network_recv_mb": 213.43,
-      "network_packets_sent": 98045,
-      "network_packets_recv": 141658,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:44:01.285102",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:44:01.285102",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192526.0,
-      "disk_write_mb": 192285.76,
-      "network_sent_mb": 62.94,
-      "network_recv_mb": 213.63,
-      "network_packets_sent": 98428,
-      "network_packets_recv": 142083,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:44:40.715471",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:44:40.715471",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.78,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192536.77,
-      "disk_write_mb": 192301.26,
-      "network_sent_mb": 62.98,
-      "network_recv_mb": 216.04,
-      "network_packets_sent": 98630,
-      "network_packets_recv": 143002,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:45:20.104322",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:45:20.104322",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.77,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192538.42,
-      "disk_write_mb": 192315.88,
-      "network_sent_mb": 63.03,
-      "network_recv_mb": 216.08,
-      "network_packets_sent": 98771,
-      "network_packets_recv": 143180,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:45:59.921670",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:45:59.921670",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.74,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192539.26,
-      "disk_write_mb": 192326.96,
-      "network_sent_mb": 63.24,
-      "network_recv_mb": 216.2,
-      "network_packets_sent": 99185,
-      "network_packets_recv": 143619,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:46:39.175377",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:46:39.175377",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.79,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192548.83,
-      "disk_write_mb": 192340.08,
-      "network_sent_mb": 63.37,
-      "network_recv_mb": 216.26,
-      "network_packets_sent": 99393,
-      "network_packets_recv": 143833,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:47:18.407996",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:47:18.407996",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.79,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192549.65,
-      "disk_write_mb": 192350.81,
-      "network_sent_mb": 63.4,
-      "network_recv_mb": 216.28,
-      "network_packets_sent": 99462,
-      "network_packets_recv": 143934,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:47:58.052193",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:47:58.052193",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.66,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192549.71,
-      "disk_write_mb": 192364.41,
-      "network_sent_mb": 63.46,
-      "network_recv_mb": 216.35,
-      "network_packets_sent": 99616,
-      "network_packets_recv": 144140,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:48:37.403362",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:48:37.403362",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192577.05,
-      "disk_write_mb": 192378.06,
-      "network_sent_mb": 63.48,
-      "network_recv_mb": 216.37,
-      "network_packets_sent": 99703,
-      "network_packets_recv": 144240,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:49:16.992076",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:49:16.992076",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.69,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192577.99,
-      "disk_write_mb": 192390.09,
-      "network_sent_mb": 63.51,
-      "network_recv_mb": 216.43,
-      "network_packets_sent": 99821,
-      "network_packets_recv": 144387,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.41,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:49:56.177049",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:49:56.177049",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.79,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192578.87,
-      "disk_write_mb": 192401.62,
-      "network_sent_mb": 63.57,
-      "network_recv_mb": 216.49,
-      "network_packets_sent": 99967,
-      "network_packets_recv": 144587,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:50:35.367561",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:50:35.367561",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.53,
-      "disk_read_mb": 192579.14,
-      "disk_write_mb": 192412.39,
-      "network_sent_mb": 63.61,
-      "network_recv_mb": 216.53,
-      "network_packets_sent": 100067,
-      "network_packets_recv": 144724,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.53,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:51:14.551217",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:51:14.551217",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192581.11,
-      "disk_write_mb": 192427.43,
-      "network_sent_mb": 63.66,
-      "network_recv_mb": 220.6,
-      "network_packets_sent": 100395,
-      "network_packets_recv": 145240,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:51:53.778206",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:51:53.778206",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.69,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192581.93,
-      "disk_write_mb": 192440.51,
-      "network_sent_mb": 63.69,
-      "network_recv_mb": 220.63,
-      "network_packets_sent": 100488,
-      "network_packets_recv": 145363,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:52:33.069873",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:52:33.069873",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.73,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192582.72,
-      "disk_write_mb": 192453.34,
-      "network_sent_mb": 63.74,
-      "network_recv_mb": 220.74,
-      "network_packets_sent": 100654,
-      "network_packets_recv": 145593,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:53:12.195931",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:53:12.195931",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.57,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192583.02,
-      "disk_write_mb": 192468.32,
-      "network_sent_mb": 63.76,
-      "network_recv_mb": 220.76,
-      "network_packets_sent": 100720,
-      "network_packets_recv": 145693,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:53:51.163328",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:53:51.163328",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.58,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192583.21,
-      "disk_write_mb": 192479.84,
-      "network_sent_mb": 63.81,
-      "network_recv_mb": 220.82,
-      "network_packets_sent": 100859,
-      "network_packets_recv": 145849,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:54:31.640797",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:54:31.640797",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.72,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.54,
-      "disk_read_mb": 192597.0,
-      "disk_write_mb": 192497.22,
-      "network_sent_mb": 63.91,
-      "network_recv_mb": 221.13,
-      "network_packets_sent": 101230,
-      "network_packets_recv": 146348,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.54,
-          "free_gb": 168.4,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:55:11.164866",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:55:11.164866",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192598.45,
-      "disk_write_mb": 192512.6,
-      "network_sent_mb": 63.96,
-      "network_recv_mb": 226.07,
-      "network_packets_sent": 101600,
-      "network_packets_recv": 147211,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-23T21:55:50.474039",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:55:50.474039",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.31,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192599.91,
-      "disk_write_mb": 192529.44,
-      "network_sent_mb": 64.0,
-      "network_recv_mb": 226.12,
-      "network_packets_sent": 101734,
-      "network_packets_recv": 147387,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-23T21:56:30.368944",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:56:30.368944",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192601.48,
-      "disk_write_mb": 192540.49,
-      "network_sent_mb": 64.08,
-      "network_recv_mb": 226.18,
-      "network_packets_sent": 101906,
-      "network_packets_recv": 147560,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:57:09.565977",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:57:09.565977",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.34,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192602.5,
-      "disk_write_mb": 192550.63,
-      "network_sent_mb": 64.09,
-      "network_recv_mb": 226.2,
-      "network_packets_sent": 101973,
-      "network_packets_recv": 147660,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:57:46.089185",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:57:46.089185",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.41,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192612.06,
-      "disk_write_mb": 192561.24,
-      "network_sent_mb": 64.16,
-      "network_recv_mb": 226.25,
-      "network_packets_sent": 102153,
-      "network_packets_recv": 147868,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:58:25.349154",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:58:25.349154",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192613.94,
-      "disk_write_mb": 192573.25,
-      "network_sent_mb": 64.2,
-      "network_recv_mb": 226.31,
-      "network_packets_sent": 102323,
-      "network_packets_recv": 148056,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:59:04.954843",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:59:04.954843",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.52,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192614.34,
-      "disk_write_mb": 192590.75,
-      "network_sent_mb": 64.57,
-      "network_recv_mb": 231.84,
-      "network_packets_sent": 103271,
-      "network_packets_recv": 149913,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T21:59:44.538945",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T21:59:44.538945",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.45,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192614.74,
-      "disk_write_mb": 192602.65,
-      "network_sent_mb": 64.65,
-      "network_recv_mb": 231.92,
-      "network_packets_sent": 103472,
-      "network_packets_recv": 150162,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260123_22.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260123_22.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11999 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-23T22:00:23.677810",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:00:23.677810",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.42,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192615.52,
-      "disk_write_mb": 192615.55,
-      "network_sent_mb": 64.71,
-      "network_recv_mb": 231.96,
-      "network_packets_sent": 103616,
-      "network_packets_recv": 150343,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:01:02.799509",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:01:02.799509",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192615.81,
-      "disk_write_mb": 192667.39,
-      "network_sent_mb": 64.74,
-      "network_recv_mb": 232.0,
-      "network_packets_sent": 103719,
-      "network_packets_recv": 150493,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:01:41.798803",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:01:41.798803",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192616.07,
-      "disk_write_mb": 192681.39,
-      "network_sent_mb": 64.77,
-      "network_recv_mb": 232.02,
-      "network_packets_sent": 103799,
-      "network_packets_recv": 150602,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:02:21.302897",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:02:21.302897",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.65,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192616.49,
-      "disk_write_mb": 192692.09,
-      "network_sent_mb": 65.04,
-      "network_recv_mb": 232.2,
-      "network_packets_sent": 104601,
-      "network_packets_recv": 151525,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:03:00.481088",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:03:00.481088",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.62,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192627.17,
-      "disk_write_mb": 192713.4,
-      "network_sent_mb": 65.24,
-      "network_recv_mb": 232.6,
-      "network_packets_sent": 104991,
-      "network_packets_recv": 152008,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:03:41.161396",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:03:41.161396",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192725.82,
-      "disk_write_mb": 192730.29,
-      "network_sent_mb": 65.73,
-      "network_recv_mb": 235.47,
-      "network_packets_sent": 106385,
-      "network_packets_recv": 153973,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:04:21.052257",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:04:21.052257",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.89,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192733.79,
-      "disk_write_mb": 192746.05,
-      "network_sent_mb": 65.78,
-      "network_recv_mb": 235.52,
-      "network_packets_sent": 106578,
-      "network_packets_recv": 154221,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:05:01.120000",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:05:01.120000",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192738.01,
-      "disk_write_mb": 192760.78,
-      "network_sent_mb": 65.88,
-      "network_recv_mb": 235.63,
-      "network_packets_sent": 106944,
-      "network_packets_recv": 154663,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:05:40.969768",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:05:40.969768",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192738.95,
-      "disk_write_mb": 192773.21,
-      "network_sent_mb": 65.95,
-      "network_recv_mb": 235.67,
-      "network_packets_sent": 107130,
-      "network_packets_recv": 154875,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:06:20.622822",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:06:20.622822",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.84,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192750.03,
-      "disk_write_mb": 192797.1,
-      "network_sent_mb": 66.15,
-      "network_recv_mb": 235.84,
-      "network_packets_sent": 107562,
-      "network_packets_recv": 155385,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:06:59.675206",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:06:59.675206",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192750.45,
-      "disk_write_mb": 192811.03,
-      "network_sent_mb": 66.37,
-      "network_recv_mb": 236.1,
-      "network_packets_sent": 108017,
-      "network_packets_recv": 155902,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:07:38.833088",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:07:38.833088",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192766.98,
-      "disk_write_mb": 192831.29,
-      "network_sent_mb": 66.89,
-      "network_recv_mb": 237.15,
-      "network_packets_sent": 109559,
-      "network_packets_recv": 158105,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 231.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:08:19.155957",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:08:19.155957",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192767.5,
-      "disk_write_mb": 192852.14,
-      "network_sent_mb": 67.1,
-      "network_recv_mb": 237.32,
-      "network_packets_sent": 110380,
-      "network_packets_recv": 159164,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:08:58.420450",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:08:58.420450",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.77,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192767.6,
-      "disk_write_mb": 192870.91,
-      "network_sent_mb": 67.4,
-      "network_recv_mb": 237.48,
-      "network_packets_sent": 111061,
-      "network_packets_recv": 159944,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:09:37.237265",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:09:37.237265",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.78,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192767.67,
-      "disk_write_mb": 192883.27,
-      "network_sent_mb": 67.55,
-      "network_recv_mb": 237.54,
-      "network_packets_sent": 111339,
-      "network_packets_recv": 160220,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:10:16.818915",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:10:16.818915",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192768.24,
-      "disk_write_mb": 192923.09,
-      "network_sent_mb": 67.6,
-      "network_recv_mb": 237.59,
-      "network_packets_sent": 111496,
-      "network_packets_recv": 160403,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:10:57.394545",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:10:57.394545",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.63,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192768.8,
-      "disk_write_mb": 193000.95,
-      "network_sent_mb": 67.8,
-      "network_recv_mb": 237.7,
-      "network_packets_sent": 111856,
-      "network_packets_recv": 160786,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:11:36.222333",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:11:36.222333",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.58,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192771.09,
-      "disk_write_mb": 193047.15,
-      "network_sent_mb": 68.15,
-      "network_recv_mb": 237.87,
-      "network_packets_sent": 112525,
-      "network_packets_recv": 161442,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:12:12.110020",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:12:12.110020",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.58,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192772.12,
-      "disk_write_mb": 193068.0,
-      "network_sent_mb": 68.19,
-      "network_recv_mb": 237.9,
-      "network_packets_sent": 112626,
-      "network_packets_recv": 161565,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:12:51.944555",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:12:51.944555",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.58,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192773.95,
-      "disk_write_mb": 193081.16,
-      "network_sent_mb": 68.29,
-      "network_recv_mb": 237.93,
-      "network_packets_sent": 112803,
-      "network_packets_recv": 161742,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:13:31.464442",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:13:31.464442",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.73,
-      "swap_usage": 13.7,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192779.95,
-      "disk_write_mb": 193097.89,
-      "network_sent_mb": 68.63,
-      "network_recv_mb": 238.21,
-      "network_packets_sent": 113897,
-      "network_packets_recv": 163155,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:14:11.269337",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:14:11.269337",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192893.61,
-      "disk_write_mb": 193136.96,
-      "network_sent_mb": 69.17,
-      "network_recv_mb": 242.01,
-      "network_packets_sent": 116077,
-      "network_packets_recv": 167435,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:14:49.787782",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:14:49.787782",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192894.57,
-      "disk_write_mb": 193152.84,
-      "network_sent_mb": 69.36,
-      "network_recv_mb": 242.1,
-      "network_packets_sent": 116477,
-      "network_packets_recv": 167823,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:15:28.896904",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:15:28.896904",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192900.99,
-      "disk_write_mb": 193169.4,
-      "network_sent_mb": 69.51,
-      "network_recv_mb": 243.95,
-      "network_packets_sent": 116975,
-      "network_packets_recv": 168591,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.39,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:16:08.067350",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:16:08.067350",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192922.03,
-      "disk_write_mb": 193209.15,
-      "network_sent_mb": 69.92,
-      "network_recv_mb": 244.21,
-      "network_packets_sent": 117613,
-      "network_packets_recv": 169327,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:16:47.125355",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:16:47.125355",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.55,
-      "disk_read_mb": 192929.72,
-      "disk_write_mb": 193230.12,
-      "network_sent_mb": 70.18,
-      "network_recv_mb": 244.3,
-      "network_packets_sent": 118100,
-      "network_packets_recv": 169786,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.55,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:17:26.242591",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:17:26.242591",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.07,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192964.31,
-      "disk_write_mb": 193251.26,
-      "network_sent_mb": 70.43,
-      "network_recv_mb": 244.72,
-      "network_packets_sent": 118618,
-      "network_packets_recv": 170334,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:18:04.422363",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:18:04.422363",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.85,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192965.81,
-      "disk_write_mb": 193265.35,
-      "network_sent_mb": 70.62,
-      "network_recv_mb": 244.88,
-      "network_packets_sent": 119235,
-      "network_packets_recv": 171099,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:18:43.320100",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:18:43.320100",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.84,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192966.3,
-      "disk_write_mb": 193283.54,
-      "network_sent_mb": 70.89,
-      "network_recv_mb": 249.48,
-      "network_packets_sent": 120022,
-      "network_packets_recv": 172450,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:19:22.464534",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:19:22.464534",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.02,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192968.95,
-      "disk_write_mb": 193302.7,
-      "network_sent_mb": 71.4,
-      "network_recv_mb": 249.58,
-      "network_packets_sent": 120577,
-      "network_packets_recv": 173005,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:20:00.581333",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:20:00.581333",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192970.01,
-      "disk_write_mb": 193318.45,
-      "network_sent_mb": 71.7,
-      "network_recv_mb": 249.94,
-      "network_packets_sent": 121185,
-      "network_packets_recv": 173775,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:20:39.553973",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:20:39.553973",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.83,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192983.28,
-      "disk_write_mb": 193330.98,
-      "network_sent_mb": 71.86,
-      "network_recv_mb": 250.06,
-      "network_packets_sent": 121547,
-      "network_packets_recv": 174183,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:21:18.511144",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:21:18.511144",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.79,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192983.49,
-      "disk_write_mb": 193344.03,
-      "network_sent_mb": 71.98,
-      "network_recv_mb": 250.12,
-      "network_packets_sent": 121810,
-      "network_packets_recv": 174474,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.38,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:21:57.510096",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:21:57.510096",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.77,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192985.96,
-      "disk_write_mb": 193364.32,
-      "network_sent_mb": 72.24,
-      "network_recv_mb": 255.86,
-      "network_packets_sent": 122606,
-      "network_packets_recv": 175902,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:22:36.475890",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:22:36.475890",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.73,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192987.13,
-      "disk_write_mb": 193375.91,
-      "network_sent_mb": 72.41,
-      "network_recv_mb": 255.99,
-      "network_packets_sent": 123403,
-      "network_packets_recv": 176822,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:23:14.288540",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:23:14.288540",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192987.98,
-      "disk_write_mb": 193431.29,
-      "network_sent_mb": 72.49,
-      "network_recv_mb": 256.02,
-      "network_packets_sent": 123539,
-      "network_packets_recv": 176971,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:23:50.035690",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:23:50.035690",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.88,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192988.35,
-      "disk_write_mb": 193460.5,
-      "network_sent_mb": 72.58,
-      "network_recv_mb": 256.23,
-      "network_packets_sent": 123896,
-      "network_packets_recv": 177368,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:24:28.893395",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:24:28.893395",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192989.12,
-      "disk_write_mb": 193475.58,
-      "network_sent_mb": 72.67,
-      "network_recv_mb": 256.3,
-      "network_packets_sent": 124109,
-      "network_packets_recv": 177605,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:25:02.682456",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:25:02.682456",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.56,
-      "disk_read_mb": 192989.2,
-      "disk_write_mb": 193486.88,
-      "network_sent_mb": 72.83,
-      "network_recv_mb": 256.42,
-      "network_packets_sent": 124685,
-      "network_packets_recv": 178274,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.56,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:25:39.800365",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:25:39.800365",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.93,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192992.69,
-      "disk_write_mb": 193505.89,
-      "network_sent_mb": 73.17,
-      "network_recv_mb": 256.64,
-      "network_packets_sent": 125526,
-      "network_packets_recv": 179139,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:26:18.705486",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:26:18.705486",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.86,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192993.72,
-      "disk_write_mb": 193519.53,
-      "network_sent_mb": 73.27,
-      "network_recv_mb": 256.7,
-      "network_packets_sent": 125792,
-      "network_packets_recv": 179446,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:26:57.351639",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:26:57.351639",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.95,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192994.14,
-      "disk_write_mb": 193533.81,
-      "network_sent_mb": 73.33,
-      "network_recv_mb": 256.8,
-      "network_packets_sent": 126043,
-      "network_packets_recv": 179756,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:27:36.188551",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:27:36.188551",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192994.85,
-      "disk_write_mb": 193551.14,
-      "network_sent_mb": 73.42,
-      "network_recv_mb": 256.85,
-      "network_packets_sent": 126263,
-      "network_packets_recv": 179970,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:28:15.938555",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:28:15.938555",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.99,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192995.87,
-      "disk_write_mb": 193567.82,
-      "network_sent_mb": 73.8,
-      "network_recv_mb": 257.17,
-      "network_packets_sent": 126876,
-      "network_packets_recv": 180572,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:28:53.702061",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:28:53.702061",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.05,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192997.19,
-      "disk_write_mb": 193584.65,
-      "network_sent_mb": 74.38,
-      "network_recv_mb": 257.48,
-      "network_packets_sent": 127679,
-      "network_packets_recv": 181358,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:29:31.266693",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:29:31.266693",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 192999.5,
-      "disk_write_mb": 193598.21,
-      "network_sent_mb": 74.62,
-      "network_recv_mb": 257.77,
-      "network_packets_sent": 128310,
-      "network_packets_recv": 182083,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:30:10.379059",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:30:10.379059",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.25,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193012.02,
-      "disk_write_mb": 193630.35,
-      "network_sent_mb": 75.26,
-      "network_recv_mb": 258.09,
-      "network_packets_sent": 129181,
-      "network_packets_recv": 182935,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:30:47.482915",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:30:47.482915",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193013.21,
-      "disk_write_mb": 193649.79,
-      "network_sent_mb": 75.52,
-      "network_recv_mb": 258.25,
-      "network_packets_sent": 129729,
-      "network_packets_recv": 183509,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:31:26.256645",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:31:26.256645",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.07,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193013.75,
-      "disk_write_mb": 193661.09,
-      "network_sent_mb": 75.61,
-      "network_recv_mb": 258.3,
-      "network_packets_sent": 129922,
-      "network_packets_recv": 183713,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:32:04.539482",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:32:04.539482",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 90.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193015.1,
-      "disk_write_mb": 193673.73,
-      "network_sent_mb": 75.91,
-      "network_recv_mb": 258.55,
-      "network_packets_sent": 130783,
-      "network_packets_recv": 184713,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:32:42.871877",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:32:42.871877",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.15,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193018.59,
-      "disk_write_mb": 193692.16,
-      "network_sent_mb": 76.05,
-      "network_recv_mb": 258.59,
-      "network_packets_sent": 131020,
-      "network_packets_recv": 184947,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:33:20.890137",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:33:20.890137",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.3,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193020.28,
-      "disk_write_mb": 193704.79,
-      "network_sent_mb": 76.15,
-      "network_recv_mb": 258.71,
-      "network_packets_sent": 131270,
-      "network_packets_recv": 185236,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:33:58.796179",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:33:58.796179",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.57,
-      "disk_read_mb": 193024.73,
-      "disk_write_mb": 193722.86,
-      "network_sent_mb": 76.63,
-      "network_recv_mb": 259.49,
-      "network_packets_sent": 132442,
-      "network_packets_recv": 186674,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.57,
-          "free_gb": 168.37,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:34:37.563258",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:34:37.563258",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.7,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193100.78,
-      "disk_write_mb": 193765.12,
-      "network_sent_mb": 78.08,
-      "network_recv_mb": 265.08,
-      "network_packets_sent": 134868,
-      "network_packets_recv": 189887,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:35:15.889234",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:35:15.889234",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.52,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193103.54,
-      "disk_write_mb": 193784.74,
-      "network_sent_mb": 78.34,
-      "network_recv_mb": 266.28,
-      "network_packets_sent": 135477,
-      "network_packets_recv": 191292,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:35:53.014706",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:35:53.014706",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.56,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193104.91,
-      "disk_write_mb": 193795.46,
-      "network_sent_mb": 78.47,
-      "network_recv_mb": 266.36,
-      "network_packets_sent": 135797,
-      "network_packets_recv": 191609,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:36:31.901278",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:36:31.901278",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.67,
-      "swap_usage": 13.6,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193175.32,
-      "disk_write_mb": 193849.27,
-      "network_sent_mb": 78.59,
-      "network_recv_mb": 266.43,
-      "network_packets_sent": 136073,
-      "network_packets_recv": 191877,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:37:10.526867",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:37:10.526867",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.65,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.58,
-      "disk_read_mb": 193180.49,
-      "disk_write_mb": 193880.52,
-      "network_sent_mb": 78.66,
-      "network_recv_mb": 266.52,
-      "network_packets_sent": 136323,
-      "network_packets_recv": 192160,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.58,
-          "free_gb": 168.36,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:37:49.773397",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:37:49.773397",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.59,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.58,
-      "disk_read_mb": 193181.83,
-      "disk_write_mb": 193890.92,
-      "network_sent_mb": 78.88,
-      "network_recv_mb": 266.69,
-      "network_packets_sent": 136975,
-      "network_packets_recv": 192879,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.58,
-          "free_gb": 168.36,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:38:27.246946",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:38:27.246946",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.58,
-      "disk_read_mb": 193183.54,
-      "disk_write_mb": 193903.86,
-      "network_sent_mb": 79.27,
-      "network_recv_mb": 266.93,
-      "network_packets_sent": 137721,
-      "network_packets_recv": 193609,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.58,
-          "free_gb": 168.36,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:39:05.097870",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:39:05.097870",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.45,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193188.44,
-      "disk_write_mb": 193924.58,
-      "network_sent_mb": 79.56,
-      "network_recv_mb": 273.67,
-      "network_packets_sent": 138863,
-      "network_packets_recv": 195428,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:39:44.432952",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:39:44.432952",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.47,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193195.67,
-      "disk_write_mb": 193957.58,
-      "network_sent_mb": 79.74,
-      "network_recv_mb": 273.74,
-      "network_packets_sent": 139176,
-      "network_packets_recv": 195705,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:40:23.452708",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:40:23.452708",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.5,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193196.76,
-      "disk_write_mb": 193970.27,
-      "network_sent_mb": 79.81,
-      "network_recv_mb": 273.78,
-      "network_packets_sent": 139383,
-      "network_packets_recv": 195911,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:41:02.382231",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:41:02.382231",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.6,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193209.65,
-      "disk_write_mb": 193985.04,
-      "network_sent_mb": 80.27,
-      "network_recv_mb": 274.34,
-      "network_packets_sent": 140213,
-      "network_packets_recv": 196809,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:41:39.356566",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:41:39.356566",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.55,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193211.54,
-      "disk_write_mb": 194020.74,
-      "network_sent_mb": 80.61,
-      "network_recv_mb": 274.48,
-      "network_packets_sent": 140760,
-      "network_packets_recv": 197275,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:42:13.462887",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:42:13.462887",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193212.45,
-      "disk_write_mb": 194055.13,
-      "network_sent_mb": 80.86,
-      "network_recv_mb": 274.63,
-      "network_packets_sent": 141482,
-      "network_packets_recv": 198015,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.35,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:42:50.871289",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:42:50.871289",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.59,
-      "disk_read_mb": 193213.08,
-      "disk_write_mb": 194107.73,
-      "network_sent_mb": 81.08,
-      "network_recv_mb": 278.75,
-      "network_packets_sent": 142041,
-      "network_packets_recv": 199249,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.59,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:43:29.238579",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:43:29.238579",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193214.22,
-      "disk_write_mb": 194121.95,
-      "network_sent_mb": 81.17,
-      "network_recv_mb": 278.86,
-      "network_packets_sent": 142310,
-      "network_packets_recv": 199578,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:44:08.163371",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:44:08.163371",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193214.68,
-      "disk_write_mb": 194134.51,
-      "network_sent_mb": 81.39,
-      "network_recv_mb": 279.03,
-      "network_packets_sent": 143095,
-      "network_packets_recv": 200443,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:44:45.441743",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:44:45.441743",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.45,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193217.24,
-      "disk_write_mb": 194146.95,
-      "network_sent_mb": 81.54,
-      "network_recv_mb": 279.16,
-      "network_packets_sent": 143952,
-      "network_packets_recv": 201491,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:45:21.949109",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:45:21.949109",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193217.8,
-      "disk_write_mb": 194161.0,
-      "network_sent_mb": 81.76,
-      "network_recv_mb": 279.26,
-      "network_packets_sent": 144308,
-      "network_packets_recv": 201797,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:45:59.647206",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:45:59.647206",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193218.35,
-      "disk_write_mb": 194227.78,
-      "network_sent_mb": 81.88,
-      "network_recv_mb": 284.53,
-      "network_packets_sent": 144691,
-      "network_packets_recv": 202792,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:46:37.953329",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:46:37.953329",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.35,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193225.54,
-      "disk_write_mb": 194261.62,
-      "network_sent_mb": 82.41,
-      "network_recv_mb": 284.92,
-      "network_packets_sent": 145483,
-      "network_packets_recv": 203591,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:47:16.217587",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:47:16.217587",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.39,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193226.08,
-      "disk_write_mb": 194273.48,
-      "network_sent_mb": 82.64,
-      "network_recv_mb": 285.01,
-      "network_packets_sent": 145907,
-      "network_packets_recv": 203976,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:47:54.424344",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:47:54.424344",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.34,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193226.2,
-      "disk_write_mb": 194287.07,
-      "network_sent_mb": 82.7,
-      "network_recv_mb": 285.06,
-      "network_packets_sent": 146056,
-      "network_packets_recv": 204144,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:48:32.153926",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:48:32.153926",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.43,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193228.96,
-      "disk_write_mb": 194305.28,
-      "network_sent_mb": 82.9,
-      "network_recv_mb": 285.42,
-      "network_packets_sent": 146553,
-      "network_packets_recv": 204694,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:49:11.076679",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:49:11.076679",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193229.43,
-      "disk_write_mb": 194317.43,
-      "network_sent_mb": 83.0,
-      "network_recv_mb": 285.47,
-      "network_packets_sent": 146760,
-      "network_packets_recv": 204904,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:49:49.691968",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:49:49.691968",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.39,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.6,
-      "disk_read_mb": 193235.0,
-      "disk_write_mb": 194334.47,
-      "network_sent_mb": 83.12,
-      "network_recv_mb": 285.6,
-      "network_packets_sent": 147094,
-      "network_packets_recv": 205294,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.6,
-          "free_gb": 168.34,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:50:28.159156",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:50:28.159156",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193235.53,
-      "disk_write_mb": 194351.23,
-      "network_sent_mb": 83.32,
-      "network_recv_mb": 289.85,
-      "network_packets_sent": 148438,
-      "network_packets_recv": 206765,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:51:06.798431",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:51:06.798431",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193239.73,
-      "disk_write_mb": 194365.51,
-      "network_sent_mb": 83.46,
-      "network_recv_mb": 289.93,
-      "network_packets_sent": 148704,
-      "network_packets_recv": 207061,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:51:45.066255",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:51:45.066255",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.32,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193240.55,
-      "disk_write_mb": 194380.79,
-      "network_sent_mb": 83.9,
-      "network_recv_mb": 290.22,
-      "network_packets_sent": 149456,
-      "network_packets_recv": 207908,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:52:24.105967",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:52:24.105967",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.27,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193241.15,
-      "disk_write_mb": 194400.53,
-      "network_sent_mb": 84.06,
-      "network_recv_mb": 290.29,
-      "network_packets_sent": 149736,
-      "network_packets_recv": 208198,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:53:02.936637",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:53:02.936637",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.45,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193241.84,
-      "disk_write_mb": 194412.44,
-      "network_sent_mb": 84.18,
-      "network_recv_mb": 290.35,
-      "network_packets_sent": 149964,
-      "network_packets_recv": 208428,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:53:41.569943",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:53:41.569943",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.3,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193242.32,
-      "disk_write_mb": 194428.79,
-      "network_sent_mb": 84.33,
-      "network_recv_mb": 290.48,
-      "network_packets_sent": 150308,
-      "network_packets_recv": 208785,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.33,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:54:20.385175",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:54:20.385175",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.33,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193242.87,
-      "disk_write_mb": 194446.05,
-      "network_sent_mb": 84.47,
-      "network_recv_mb": 294.42,
-      "network_packets_sent": 150784,
-      "network_packets_recv": 209327,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:54:58.446787",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:54:58.446787",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193243.16,
-      "disk_write_mb": 194460.04,
-      "network_sent_mb": 84.72,
-      "network_recv_mb": 294.57,
-      "network_packets_sent": 151248,
-      "network_packets_recv": 209788,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:55:37.571609",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:55:37.571609",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.27,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193243.49,
-      "disk_write_mb": 194471.36,
-      "network_sent_mb": 84.81,
-      "network_recv_mb": 294.67,
-      "network_packets_sent": 151521,
-      "network_packets_recv": 210119,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:56:16.817194",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:56:16.817194",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.27,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.61,
-      "disk_read_mb": 193244.13,
-      "disk_write_mb": 194483.38,
-      "network_sent_mb": 85.0,
-      "network_recv_mb": 294.79,
-      "network_packets_sent": 151909,
-      "network_packets_recv": 210538,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.61,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:56:54.261636",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:56:54.261636",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.29,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193244.29,
-      "disk_write_mb": 194494.75,
-      "network_sent_mb": 85.22,
-      "network_recv_mb": 294.9,
-      "network_packets_sent": 152283,
-      "network_packets_recv": 210930,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:57:33.892506",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:57:33.892506",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.54,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193247.96,
-      "disk_write_mb": 194508.57,
-      "network_sent_mb": 85.36,
-      "network_recv_mb": 295.04,
-      "network_packets_sent": 152600,
-      "network_packets_recv": 211312,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:58:13.065535",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:58:13.065535",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193260.09,
-      "disk_write_mb": 194526.66,
-      "network_sent_mb": 85.8,
-      "network_recv_mb": 295.32,
-      "network_packets_sent": 153163,
-      "network_packets_recv": 211929,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:58:50.930602",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:58:50.930602",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193261.4,
-      "disk_write_mb": 194546.8,
-      "network_sent_mb": 86.02,
-      "network_recv_mb": 300.25,
-      "network_packets_sent": 153863,
-      "network_packets_recv": 212853,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T22:59:29.261795",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T22:59:29.261795",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193262.06,
-      "disk_write_mb": 194561.11,
-      "network_sent_mb": 86.51,
-      "network_recv_mb": 300.5,
-      "network_packets_sent": 154594,
-      "network_packets_recv": 213591,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260123_23.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260123_23.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,7484 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-23T23:00:07.947345",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:00:07.947345",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.55,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193264.7,
-      "disk_write_mb": 194581.31,
-      "network_sent_mb": 86.97,
-      "network_recv_mb": 300.75,
-      "network_packets_sent": 155362,
-      "network_packets_recv": 214299,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:00:45.462264",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:00:45.462264",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.37,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193284.63,
-      "disk_write_mb": 194642.03,
-      "network_sent_mb": 87.44,
-      "network_recv_mb": 301.0,
-      "network_packets_sent": 156106,
-      "network_packets_recv": 215011,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:01:22.657472",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:01:22.657472",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.62,
-      "disk_read_mb": 193299.83,
-      "disk_write_mb": 194670.77,
-      "network_sent_mb": 87.62,
-      "network_recv_mb": 301.08,
-      "network_packets_sent": 156523,
-      "network_packets_recv": 215386,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.62,
-          "free_gb": 168.32,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:02:00.761317",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:02:00.761317",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.22,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193300.53,
-      "disk_write_mb": 194726.33,
-      "network_sent_mb": 87.82,
-      "network_recv_mb": 306.01,
-      "network_packets_sent": 157144,
-      "network_packets_recv": 217125,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:02:37.762639",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:02:37.762639",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193300.83,
-      "disk_write_mb": 194740.17,
-      "network_sent_mb": 88.02,
-      "network_recv_mb": 306.18,
-      "network_packets_sent": 158085,
-      "network_packets_recv": 218314,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:03:15.490813",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:03:15.490813",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.33,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193302.09,
-      "disk_write_mb": 194785.98,
-      "network_sent_mb": 88.26,
-      "network_recv_mb": 306.35,
-      "network_packets_sent": 158553,
-      "network_packets_recv": 218838,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:03:53.892652",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:03:53.892652",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.41,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193311.67,
-      "disk_write_mb": 194819.16,
-      "network_sent_mb": 88.6,
-      "network_recv_mb": 306.57,
-      "network_packets_sent": 159499,
-      "network_packets_recv": 220025,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:04:32.430701",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:04:32.430701",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193311.95,
-      "disk_write_mb": 194860.19,
-      "network_sent_mb": 88.88,
-      "network_recv_mb": 306.73,
-      "network_packets_sent": 160026,
-      "network_packets_recv": 220569,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:05:11.030175",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:05:11.030175",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193314.22,
-      "disk_write_mb": 194897.09,
-      "network_sent_mb": 89.0,
-      "network_recv_mb": 311.76,
-      "network_packets_sent": 160563,
-      "network_packets_recv": 221951,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:05:49.242655",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:05:49.242655",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193315.26,
-      "disk_write_mb": 194912.84,
-      "network_sent_mb": 89.09,
-      "network_recv_mb": 311.83,
-      "network_packets_sent": 160786,
-      "network_packets_recv": 222196,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:06:28.023533",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:06:28.023533",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193315.9,
-      "disk_write_mb": 194929.94,
-      "network_sent_mb": 89.49,
-      "network_recv_mb": 312.06,
-      "network_packets_sent": 161527,
-      "network_packets_recv": 222979,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:07:05.638459",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:07:05.638459",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.43,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193316.05,
-      "disk_write_mb": 194944.11,
-      "network_sent_mb": 89.6,
-      "network_recv_mb": 312.25,
-      "network_packets_sent": 162258,
-      "network_packets_recv": 224046,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:07:44.104112",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:07:44.104112",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.56,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193316.54,
-      "disk_write_mb": 194960.95,
-      "network_sent_mb": 89.63,
-      "network_recv_mb": 312.28,
-      "network_packets_sent": 162375,
-      "network_packets_recv": 224181,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 232.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:08:21.708207",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:08:21.708207",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.08,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193317.29,
-      "disk_write_mb": 194975.86,
-      "network_sent_mb": 89.82,
-      "network_recv_mb": 312.34,
-      "network_packets_sent": 162648,
-      "network_packets_recv": 224395,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:08:59.825267",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:08:59.825267",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193318.86,
-      "disk_write_mb": 194997.64,
-      "network_sent_mb": 90.61,
-      "network_recv_mb": 312.91,
-      "network_packets_sent": 163743,
-      "network_packets_recv": 225403,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:09:37.040918",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:09:37.040918",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193319.36,
-      "disk_write_mb": 195012.13,
-      "network_sent_mb": 90.81,
-      "network_recv_mb": 313.29,
-      "network_packets_sent": 164687,
-      "network_packets_recv": 226688,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:10:14.762518",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:10:14.762518",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.38,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193319.46,
-      "disk_write_mb": 195044.54,
-      "network_sent_mb": 90.92,
-      "network_recv_mb": 313.34,
-      "network_packets_sent": 164892,
-      "network_packets_recv": 226875,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:10:49.172459",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:10:49.172459",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193417.49,
-      "disk_write_mb": 195066.73,
-      "network_sent_mb": 91.09,
-      "network_recv_mb": 313.46,
-      "network_packets_sent": 165381,
-      "network_packets_recv": 227458,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:11:24.772844",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:11:24.772844",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.89,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193418.81,
-      "disk_write_mb": 195081.05,
-      "network_sent_mb": 91.25,
-      "network_recv_mb": 313.64,
-      "network_packets_sent": 166240,
-      "network_packets_recv": 228533,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:11:59.170569",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:11:59.170569",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.71,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193420.57,
-      "disk_write_mb": 195092.77,
-      "network_sent_mb": 91.51,
-      "network_recv_mb": 313.72,
-      "network_packets_sent": 166576,
-      "network_packets_recv": 228825,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 72,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 52
-  },
-  {
-    "timestamp": "2026-01-23T23:13:11.856055",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:13:11.856055",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.83,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193425.12,
-      "disk_write_mb": 195183.28,
-      "network_sent_mb": 91.69,
-      "network_recv_mb": 319.17,
-      "network_packets_sent": 167251,
-      "network_packets_recv": 229591,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:13:50.438490",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:13:50.438490",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.85,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193425.87,
-      "disk_write_mb": 195214.27,
-      "network_sent_mb": 91.74,
-      "network_recv_mb": 319.22,
-      "network_packets_sent": 167448,
-      "network_packets_recv": 229834,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 73,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:14:29.648696",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:14:29.648696",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.87,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193426.68,
-      "disk_write_mb": 195230.2,
-      "network_sent_mb": 91.94,
-      "network_recv_mb": 319.36,
-      "network_packets_sent": 167872,
-      "network_packets_recv": 230266,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:15:08.939684",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:15:08.939684",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193426.77,
-      "disk_write_mb": 195241.8,
-      "network_sent_mb": 92.05,
-      "network_recv_mb": 319.5,
-      "network_packets_sent": 168759,
-      "network_packets_recv": 231349,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 75,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:15:46.218411",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:15:46.218411",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.02,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193426.88,
-      "disk_write_mb": 195258.87,
-      "network_sent_mb": 92.28,
-      "network_recv_mb": 319.58,
-      "network_packets_sent": 169058,
-      "network_packets_recv": 231647,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 76,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:16:25.180035",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:16:25.180035",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193427.15,
-      "disk_write_mb": 195269.73,
-      "network_sent_mb": 92.37,
-      "network_recv_mb": 319.69,
-      "network_packets_sent": 169653,
-      "network_packets_recv": 232463,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:17:02.352901",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:17:02.352901",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.1,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193429.54,
-      "disk_write_mb": 195281.64,
-      "network_sent_mb": 92.47,
-      "network_recv_mb": 319.9,
-      "network_packets_sent": 170159,
-      "network_packets_recv": 233114,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 77,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:17:39.817031",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:17:39.817031",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.8,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.65,
-      "disk_read_mb": 193430.75,
-      "disk_write_mb": 195300.03,
-      "network_sent_mb": 92.65,
-      "network_recv_mb": 323.72,
-      "network_packets_sent": 170548,
-      "network_packets_recv": 234436,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.65,
-          "free_gb": 168.29,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 78,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:18:18.489705",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:18:18.489705",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193431.75,
-      "disk_write_mb": 195314.37,
-      "network_sent_mb": 92.68,
-      "network_recv_mb": 323.74,
-      "network_packets_sent": 170654,
-      "network_packets_recv": 234551,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:18:57.421591",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:18:57.421591",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.03,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193435.22,
-      "disk_write_mb": 195332.1,
-      "network_sent_mb": 92.81,
-      "network_recv_mb": 324.04,
-      "network_packets_sent": 171013,
-      "network_packets_recv": 234989,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 79,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:19:35.957369",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:19:35.957369",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.04,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193439.75,
-      "disk_write_mb": 195350.28,
-      "network_sent_mb": 92.89,
-      "network_recv_mb": 324.15,
-      "network_packets_sent": 171312,
-      "network_packets_recv": 235351,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 80,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:20:14.386858",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:20:14.386858",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.01,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193440.63,
-      "disk_write_mb": 195364.3,
-      "network_sent_mb": 92.97,
-      "network_recv_mb": 324.2,
-      "network_packets_sent": 171468,
-      "network_packets_recv": 235499,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:20:52.391364",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:20:52.391364",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.91,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193441.31,
-      "disk_write_mb": 195378.15,
-      "network_sent_mb": 93.17,
-      "network_recv_mb": 324.3,
-      "network_packets_sent": 171807,
-      "network_packets_recv": 235840,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 81,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:21:29.734352",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:21:29.734352",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.9,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.63,
-      "disk_read_mb": 193441.77,
-      "disk_write_mb": 195390.1,
-      "network_sent_mb": 93.38,
-      "network_recv_mb": 324.41,
-      "network_packets_sent": 172235,
-      "network_packets_recv": 236272,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.63,
-          "free_gb": 168.31,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:22:07.520547",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:22:07.520547",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.02,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193451.64,
-      "disk_write_mb": 195410.28,
-      "network_sent_mb": 93.62,
-      "network_recv_mb": 329.11,
-      "network_packets_sent": 172805,
-      "network_packets_recv": 237329,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 82,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:22:45.259221",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:22:45.259221",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.13,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193451.91,
-      "disk_write_mb": 195424.37,
-      "network_sent_mb": 93.96,
-      "network_recv_mb": 329.24,
-      "network_packets_sent": 173374,
-      "network_packets_recv": 237879,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 83,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:23:23.989400",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:23:23.989400",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.0,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193477.45,
-      "disk_write_mb": 195437.05,
-      "network_sent_mb": 94.07,
-      "network_recv_mb": 329.29,
-      "network_packets_sent": 173568,
-      "network_packets_recv": 238097,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:24:01.846277",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:24:01.846277",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.01,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193479.42,
-      "disk_write_mb": 195449.81,
-      "network_sent_mb": 94.15,
-      "network_recv_mb": 329.37,
-      "network_packets_sent": 173748,
-      "network_packets_recv": 238306,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 84,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:24:40.398570",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:24:40.398570",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193481.08,
-      "disk_write_mb": 195470.83,
-      "network_sent_mb": 94.61,
-      "network_recv_mb": 329.62,
-      "network_packets_sent": 174450,
-      "network_packets_recv": 238999,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:25:19.131974",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:25:19.131974",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.33,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193613.36,
-      "disk_write_mb": 195519.85,
-      "network_sent_mb": 94.72,
-      "network_recv_mb": 329.81,
-      "network_packets_sent": 174775,
-      "network_packets_recv": 239327,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 85,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:25:57.586047",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:25:57.586047",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.28,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193650.33,
-      "disk_write_mb": 195533.41,
-      "network_sent_mb": 94.76,
-      "network_recv_mb": 329.85,
-      "network_packets_sent": 174896,
-      "network_packets_recv": 239490,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:26:37.108686",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:26:37.108686",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.31,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193650.56,
-      "disk_write_mb": 195552.91,
-      "network_sent_mb": 94.97,
-      "network_recv_mb": 334.13,
-      "network_packets_sent": 175679,
-      "network_packets_recv": 240319,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 86,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:27:13.718802",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:27:13.718802",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.2,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193650.91,
-      "disk_write_mb": 195565.15,
-      "network_sent_mb": 95.11,
-      "network_recv_mb": 334.19,
-      "network_packets_sent": 175923,
-      "network_packets_recv": 240580,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:27:52.555206",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:27:52.555206",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193652.19,
-      "disk_write_mb": 195579.28,
-      "network_sent_mb": 95.28,
-      "network_recv_mb": 334.3,
-      "network_packets_sent": 176290,
-      "network_packets_recv": 240990,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 87,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:28:28.966684",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:28:28.966684",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193688.03,
-      "disk_write_mb": 195596.38,
-      "network_sent_mb": 95.62,
-      "network_recv_mb": 334.53,
-      "network_packets_sent": 176787,
-      "network_packets_recv": 241540,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.3,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:29:06.923489",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:29:06.923489",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193728.23,
-      "disk_write_mb": 195614.97,
-      "network_sent_mb": 95.82,
-      "network_recv_mb": 334.62,
-      "network_packets_sent": 177195,
-      "network_packets_recv": 241962,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.29,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 88,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:29:45.209437",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:29:45.209437",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.6,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.64,
-      "disk_read_mb": 193729.28,
-      "disk_write_mb": 195633.35,
-      "network_sent_mb": 96.43,
-      "network_recv_mb": 335.06,
-      "network_packets_sent": 178040,
-      "network_packets_recv": 242940,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.64,
-          "free_gb": 168.29,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:30:24.132483",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:30:24.132483",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.4,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.65,
-      "disk_read_mb": 193786.28,
-      "disk_write_mb": 195660.86,
-      "network_sent_mb": 96.7,
-      "network_recv_mb": 339.37,
-      "network_packets_sent": 178726,
-      "network_packets_recv": 243691,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.65,
-          "free_gb": 168.29,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 89,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:31:02.991473",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:31:02.991473",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.42,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 194942.35,
-      "disk_write_mb": 195705.99,
-      "network_sent_mb": 96.86,
-      "network_recv_mb": 342.45,
-      "network_packets_sent": 179174,
-      "network_packets_recv": 244158,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:31:40.408504",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:31:40.408504",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.63,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 194949.18,
-      "disk_write_mb": 195721.32,
-      "network_sent_mb": 97.12,
-      "network_recv_mb": 342.87,
-      "network_packets_sent": 180386,
-      "network_packets_recv": 245628,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 90,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:32:19.315260",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:32:19.315260",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.64,
-      "swap_usage": 13.5,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 194953.54,
-      "disk_write_mb": 195741.09,
-      "network_sent_mb": 97.19,
-      "network_recv_mb": 343.28,
-      "network_packets_sent": 180650,
-      "network_packets_recv": 245934,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:32:57.207778",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:32:57.207778",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.43,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 194968.22,
-      "disk_write_mb": 195752.92,
-      "network_sent_mb": 97.22,
-      "network_recv_mb": 343.3,
-      "network_packets_sent": 180752,
-      "network_packets_recv": 246054,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:33:34.907301",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:33:34.907301",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.64,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.66,
-      "disk_read_mb": 194976.18,
-      "disk_write_mb": 195768.42,
-      "network_sent_mb": 97.45,
-      "network_recv_mb": 343.69,
-      "network_packets_sent": 181278,
-      "network_packets_recv": 246655,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.28,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 91,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:34:13.133961",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:34:13.133961",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.49,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 194978.6,
-      "disk_write_mb": 195785.83,
-      "network_sent_mb": 97.64,
-      "network_recv_mb": 347.69,
-      "network_packets_sent": 181848,
-      "network_packets_recv": 247742,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:34:50.850102",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:34:50.850102",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.85,
-      "swap_usage": 13.4,
-      "disk_usage": 64.9,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 308.66,
-      "disk_read_mb": 195062.97,
-      "disk_write_mb": 195914.92,
-      "network_sent_mb": 97.75,
-      "network_recv_mb": 348.09,
-      "network_packets_sent": 182300,
-      "network_packets_recv": 248329,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.66,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 92,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:35:29.389207",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:35:29.389207",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.46,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 195088.02,
-      "disk_write_mb": 195933.81,
-      "network_sent_mb": 97.96,
-      "network_recv_mb": 348.15,
-      "network_packets_sent": 182602,
-      "network_packets_recv": 248597,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:36:08.556527",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:36:08.556527",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.78,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.67,
-      "disk_read_mb": 195179.62,
-      "disk_write_mb": 195962.9,
-      "network_sent_mb": 97.96,
-      "network_recv_mb": 348.15,
-      "network_packets_sent": 182602,
-      "network_packets_recv": 248597,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.67,
-          "free_gb": 168.27,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-23T23:36:47.889168",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "172.20.10.4",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-23T23:36:47.889168",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.62,
-      "swap_usage": 13.4,
-      "disk_usage": 64.6,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 307.69,
-      "disk_read_mb": 195186.52,
-      "disk_write_mb": 195994.22,
-      "network_sent_mb": 97.96,
-      "network_recv_mb": 348.15,
-      "network_packets_sent": 182602,
-      "network_packets_recv": 248597,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 233.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 307.69,
-          "free_gb": 168.25,
-          "percent_used": 64.6
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.4",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 93,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260124_13.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260124_13.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,776 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-24T13:05:36.925857",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:05:36.925857",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 12.8,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 201297.63,
-      "disk_write_mb": 199264.12,
-      "network_sent_mb": 69.8,
-      "network_recv_mb": 505.85,
-      "network_packets_sent": 354394,
-      "network_packets_recv": 419354,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 246.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-24T13:06:16.074543",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:06:16.074543",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.44,
-      "swap_usage": 12.8,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 201328.76,
-      "disk_write_mb": 199322.14,
-      "network_sent_mb": 69.87,
-      "network_recv_mb": 505.93,
-      "network_packets_sent": 354572,
-      "network_packets_recv": 419589,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 246.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T13:06:55.895090",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:06:55.895090",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.51,
-      "swap_usage": 12.8,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 201344.09,
-      "disk_write_mb": 199337.35,
-      "network_sent_mb": 70.17,
-      "network_recv_mb": 506.16,
-      "network_packets_sent": 355171,
-      "network_packets_recv": 420599,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 246.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T13:57:54.686520",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:57:54.686520",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 96.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 15.06,
-      "swap_usage": 12.8,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 204622.87,
-      "disk_write_mb": 200039.58,
-      "network_sent_mb": 74.99,
-      "network_recv_mb": 513.59,
-      "network_packets_sent": 364449,
-      "network_packets_recv": 432115,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T13:58:33.232638",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:58:33.232638",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.69,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 204750.92,
-      "disk_write_mb": 200153.65,
-      "network_sent_mb": 75.29,
-      "network_recv_mb": 514.25,
-      "network_packets_sent": 365124,
-      "network_packets_recv": 433031,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T13:59:13.100477",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:59:13.100477",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.68,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 204762.8,
-      "disk_write_mb": 200170.48,
-      "network_sent_mb": 75.37,
-      "network_recv_mb": 514.54,
-      "network_packets_sent": 365965,
-      "network_packets_recv": 434283,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Ilina-laptop/20260124_14.json
===================================================================
--- received_data_sysmon/Ilina-laptop/20260124_14.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1808 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-24T13:59:52.779378",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T13:59:52.779378",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 94.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.75,
-      "swap_usage": 13.2,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.49,
-      "disk_read_mb": 204773.92,
-      "disk_write_mb": 200201.65,
-      "network_sent_mb": 75.75,
-      "network_recv_mb": 519.22,
-      "network_packets_sent": 368131,
-      "network_packets_recv": 437665,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.49,
-          "free_gb": 160.45,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:00:31.630194",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:00:31.630194",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 92.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.53,
-      "swap_usage": 13.2,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 204785.16,
-      "disk_write_mb": 200252.06,
-      "network_sent_mb": 75.8,
-      "network_recv_mb": 519.26,
-      "network_packets_sent": 368260,
-      "network_packets_recv": 437808,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:01:10.232532",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:01:10.232532",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 91.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.29,
-      "swap_usage": 13.2,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 204786.32,
-      "disk_write_mb": 200287.18,
-      "network_sent_mb": 75.94,
-      "network_recv_mb": 519.31,
-      "network_packets_sent": 368464,
-      "network_packets_recv": 438085,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 247.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:21:08.013244",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:21:08.013244",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 96.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 15.03,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.48,
-      "disk_read_mb": 205182.01,
-      "disk_write_mb": 200369.75,
-      "network_sent_mb": 77.19,
-      "network_recv_mb": 521.73,
-      "network_packets_sent": 371468,
-      "network_packets_recv": 441780,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.48,
-          "free_gb": 160.46,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:21:51.082928",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:21:51.082928",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 95.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.9,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.49,
-      "disk_read_mb": 205409.27,
-      "disk_write_mb": 200488.99,
-      "network_sent_mb": 78.09,
-      "network_recv_mb": 524.79,
-      "network_packets_sent": 373723,
-      "network_packets_recv": 445243,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.49,
-          "free_gb": 160.45,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:22:32.773042",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:22:32.773042",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.67,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.49,
-      "disk_read_mb": 205448.91,
-      "disk_write_mb": 200514.04,
-      "network_sent_mb": 79.19,
-      "network_recv_mb": 525.03,
-      "network_packets_sent": 374552,
-      "network_packets_recv": 446687,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.49,
-          "free_gb": 160.45,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:23:14.218002",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:23:14.218002",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 93.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.66,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.49,
-      "disk_read_mb": 205464.75,
-      "disk_write_mb": 200533.33,
-      "network_sent_mb": 79.65,
-      "network_recv_mb": 525.39,
-      "network_packets_sent": 375278,
-      "network_packets_recv": 447902,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.49,
-          "free_gb": 160.45,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:23:55.124369",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:23:55.124369",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.76,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.5,
-      "disk_read_mb": 205495.3,
-      "disk_write_mb": 200565.13,
-      "network_sent_mb": 80.24,
-      "network_recv_mb": 527.83,
-      "network_packets_sent": 376718,
-      "network_packets_recv": 450345,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.5,
-          "free_gb": 160.44,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:24:35.713101",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:24:35.713101",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 92.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.41,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.51,
-      "disk_read_mb": 205528.04,
-      "disk_write_mb": 200635.1,
-      "network_sent_mb": 84.04,
-      "network_recv_mb": 531.71,
-      "network_packets_sent": 380238,
-      "network_packets_recv": 456116,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.51,
-          "free_gb": 160.43,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:25:16.035948",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:25:16.035948",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 91.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.26,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.6,
-      "disk_read_mb": 205675.14,
-      "disk_write_mb": 200669.11,
-      "network_sent_mb": 84.94,
-      "network_recv_mb": 536.5,
-      "network_packets_sent": 382500,
-      "network_packets_recv": 460287,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.6,
-          "free_gb": 160.34,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:25:56.726074",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:25:56.726074",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.12,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.6,
-      "disk_read_mb": 205678.32,
-      "disk_write_mb": 200697.98,
-      "network_sent_mb": 85.29,
-      "network_recv_mb": 550.87,
-      "network_packets_sent": 387248,
-      "network_packets_recv": 469399,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.6,
-          "free_gb": 160.34,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:26:36.839133",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:26:36.839133",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 90.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 14.1,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.6,
-      "disk_read_mb": 205683.3,
-      "disk_write_mb": 200727.85,
-      "network_sent_mb": 85.67,
-      "network_recv_mb": 565.17,
-      "network_packets_sent": 392306,
-      "network_packets_recv": 478773,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.6,
-          "free_gb": 160.34,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:27:16.675091",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:27:16.675091",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.92,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.6,
-      "disk_read_mb": 205693.52,
-      "disk_write_mb": 200756.46,
-      "network_sent_mb": 86.09,
-      "network_recv_mb": 579.34,
-      "network_packets_sent": 397187,
-      "network_packets_recv": 488083,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.6,
-          "free_gb": 160.34,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2026-01-24T14:27:56.340705",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.150.35",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-24T14:27:56.340705",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 89.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.98,
-      "swap_usage": 13.3,
-      "disk_usage": 66.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 315.6,
-      "disk_read_mb": 205694.87,
-      "disk_write_mb": 200784.89,
-      "network_sent_mb": 86.41,
-      "network_recv_mb": 593.31,
-      "network_packets_sent": 401745,
-      "network_packets_recv": 496826,
-      "boot_time": "2026-01-14 06:08:03",
-      "uptime_hours": 248.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 315.6,
-          "free_gb": 160.34,
-          "percent_used": 66.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.150.35",
-            "netmask": "255.255.254.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/Irena/20260122_20.json
===================================================================
--- received_data_sysmon/Irena/20260122_20.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,389 +1,0 @@
-[
-  {
-    "timestamp": "2026-01-22T20:10:54.612352",
-    "info": {
-      "computer_name": "Irena",
-      "user": "milad",
-      "ip_address": "172.20.10.2",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:10:54.612352",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 8,
-      "cpu_freq_current": 2801.0,
-      "ram_usage": 74.4,
-      "ram_total_gb": 13.83,
-      "ram_used_gb": 10.28,
-      "swap_usage": 3.2,
-      "disk_usage": 20.4,
-      "disk_total_gb": 476.0,
-      "disk_used_gb": 97.08,
-      "disk_read_mb": 24605.98,
-      "disk_write_mb": 28423.51,
-      "network_sent_mb": 0.77,
-      "network_recv_mb": 1.32,
-      "network_packets_sent": 1265,
-      "network_packets_recv": 1695,
-      "boot_time": "2026-01-17 13:08:33",
-      "uptime_hours": 127.04,
-      "cpu_physical_cores": 4,
-      "cpu_logical_cores": 8,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 476.0,
-          "used_gb": 97.08,
-          "free_gb": 378.92,
-          "percent_used": 20.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-08-00",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.114.187",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::1392:f38b:b8a0:bfd9",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-18-10",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.64.32",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::a545:492d:6a8b:3074",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-20",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.2",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::eaa7:d030:ab99:9c67",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-21",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.132.194",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::289c:8419:8186:c5c8",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:11:29.805535",
-    "info": {
-      "computer_name": "Irena",
-      "user": "milad",
-      "ip_address": "172.20.10.2",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:11:29.805535",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.2,
-      "cpu_cores": 8,
-      "cpu_freq_current": 2801.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 13.83,
-      "ram_used_gb": 10.27,
-      "swap_usage": 3.2,
-      "disk_usage": 20.4,
-      "disk_total_gb": 476.0,
-      "disk_used_gb": 97.08,
-      "disk_read_mb": 24606.28,
-      "disk_write_mb": 28426.38,
-      "network_sent_mb": 0.91,
-      "network_recv_mb": 1.36,
-      "network_packets_sent": 1369,
-      "network_packets_recv": 1849,
-      "boot_time": "2026-01-17 13:08:33",
-      "uptime_hours": 127.05,
-      "cpu_physical_cores": 4,
-      "cpu_logical_cores": 8,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 476.0,
-          "used_gb": 97.08,
-          "free_gb": 378.92,
-          "percent_used": 20.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-08-00",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.114.187",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::1392:f38b:b8a0:bfd9",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-18-10",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.64.32",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::a545:492d:6a8b:3074",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-20",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.2",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::eaa7:d030:ab99:9c67",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-21",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.132.194",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::289c:8419:8186:c5c8",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2026-01-22T20:12:04.769329",
-    "info": {
-      "computer_name": "Irena",
-      "user": "milad",
-      "ip_address": "172.20.10.2",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2026-01-22T20:12:04.769329",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 8,
-      "cpu_freq_current": 2801.0,
-      "ram_usage": 74.2,
-      "ram_total_gb": 13.83,
-      "ram_used_gb": 10.26,
-      "swap_usage": 3.2,
-      "disk_usage": 20.4,
-      "disk_total_gb": 476.0,
-      "disk_used_gb": 97.08,
-      "disk_read_mb": 24606.46,
-      "disk_write_mb": 28428.96,
-      "network_sent_mb": 1.03,
-      "network_recv_mb": 1.38,
-      "network_packets_sent": 1459,
-      "network_packets_recv": 1949,
-      "boot_time": "2026-01-17 13:08:33",
-      "uptime_hours": 127.06,
-      "cpu_physical_cores": 4,
-      "cpu_logical_cores": 8,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 476.0,
-          "used_gb": 97.08,
-          "free_gb": 378.92,
-          "percent_used": 20.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-08-00",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.114.187",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::1392:f38b:b8a0:bfd9",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "2E-1B-3A-B4-18-10",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.64.32",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::a545:492d:6a8b:3074",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-20",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "172.20.10.2",
-            "netmask": "255.255.255.240"
-          },
-          {
-            "family": "23",
-            "address": "fe80::eaa7:d030:ab99:9c67",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "2C-1B-3A-B4-28-21",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.132.194",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::289c:8419:8186:c5c8",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251217_14.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251217_14.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6323 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-17 14:29:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:29:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193655.44,
-      "disk_write_mb": 173253.91,
-      "network_sent_mb": 43.3,
-      "network_recv_mb": 250.38,
-      "network_packets_sent": 148493,
-      "network_packets_recv": 311081,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:30:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:30:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193656.53,
-      "disk_write_mb": 173298.54,
-      "network_sent_mb": 43.36,
-      "network_recv_mb": 250.5,
-      "network_packets_sent": 148664,
-      "network_packets_recv": 311545,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:31:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:31:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193656.79,
-      "disk_write_mb": 173332.39,
-      "network_sent_mb": 43.39,
-      "network_recv_mb": 250.57,
-      "network_packets_sent": 148757,
-      "network_packets_recv": 311961,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 14:31:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:31:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.55,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193656.89,
-      "disk_write_mb": 173342.27,
-      "network_sent_mb": 43.47,
-      "network_recv_mb": 250.73,
-      "network_packets_sent": 148961,
-      "network_packets_recv": 312514,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 14:32:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:32:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193661.63,
-      "disk_write_mb": 173356.57,
-      "network_sent_mb": 43.57,
-      "network_recv_mb": 250.91,
-      "network_packets_sent": 149178,
-      "network_packets_recv": 313103,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:32:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:32:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193661.64,
-      "disk_write_mb": 173368.13,
-      "network_sent_mb": 43.67,
-      "network_recv_mb": 251.02,
-      "network_packets_sent": 149294,
-      "network_packets_recv": 313619,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 14:33:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:33:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.44,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193662.14,
-      "disk_write_mb": 173377.43,
-      "network_sent_mb": 43.77,
-      "network_recv_mb": 251.12,
-      "network_packets_sent": 149566,
-      "network_packets_recv": 314315,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 14:34:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:34:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.53,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193664.1,
-      "disk_write_mb": 173390.51,
-      "network_sent_mb": 44.01,
-      "network_recv_mb": 251.39,
-      "network_packets_sent": 149925,
-      "network_packets_recv": 315191,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 14:34:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:34:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.57,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193664.17,
-      "disk_write_mb": 173402.75,
-      "network_sent_mb": 44.15,
-      "network_recv_mb": 251.52,
-      "network_packets_sent": 150215,
-      "network_packets_recv": 315870,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 14:35:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:35:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.53,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193665.75,
-      "disk_write_mb": 173413.05,
-      "network_sent_mb": 44.26,
-      "network_recv_mb": 251.65,
-      "network_packets_sent": 150452,
-      "network_packets_recv": 316419,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 14:35:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:35:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.52,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193665.75,
-      "disk_write_mb": 173422.21,
-      "network_sent_mb": 44.29,
-      "network_recv_mb": 251.71,
-      "network_packets_sent": 150526,
-      "network_packets_recv": 316841,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 14:36:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:36:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.49,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193666.24,
-      "disk_write_mb": 173452.27,
-      "network_sent_mb": 44.59,
-      "network_recv_mb": 251.87,
-      "network_packets_sent": 150682,
-      "network_packets_recv": 317425,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:37:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:37:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.48,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193668.26,
-      "disk_write_mb": 173464.29,
-      "network_sent_mb": 44.93,
-      "network_recv_mb": 251.93,
-      "network_packets_sent": 150806,
-      "network_packets_recv": 318035,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:37:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:37:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.15,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193668.34,
-      "disk_write_mb": 173475.57,
-      "network_sent_mb": 45.29,
-      "network_recv_mb": 252.02,
-      "network_packets_sent": 150975,
-      "network_packets_recv": 318641,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 14:38:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:38:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193668.45,
-      "disk_write_mb": 173488.25,
-      "network_sent_mb": 45.53,
-      "network_recv_mb": 252.19,
-      "network_packets_sent": 151095,
-      "network_packets_recv": 319301,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 14:39:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:39:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193669.12,
-      "disk_write_mb": 173500.7,
-      "network_sent_mb": 45.62,
-      "network_recv_mb": 252.36,
-      "network_packets_sent": 151591,
-      "network_packets_recv": 320426,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 14:39:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:39:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.29,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193669.25,
-      "disk_write_mb": 173510.7,
-      "network_sent_mb": 45.74,
-      "network_recv_mb": 252.48,
-      "network_packets_sent": 151971,
-      "network_packets_recv": 321353,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 14:40:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:40:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.37,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193777.58,
-      "disk_write_mb": 173563.94,
-      "network_sent_mb": 45.82,
-      "network_recv_mb": 252.72,
-      "network_packets_sent": 152184,
-      "network_packets_recv": 321978,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 14:40:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:40:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.5,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193794.97,
-      "disk_write_mb": 173597.47,
-      "network_sent_mb": 45.88,
-      "network_recv_mb": 252.81,
-      "network_packets_sent": 152298,
-      "network_packets_recv": 322541,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 14:41:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:41:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.44,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193796.63,
-      "disk_write_mb": 173647.54,
-      "network_sent_mb": 45.97,
-      "network_recv_mb": 252.89,
-      "network_packets_sent": 152440,
-      "network_packets_recv": 323176,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 14:42:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:42:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.4,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193796.96,
-      "disk_write_mb": 173686.79,
-      "network_sent_mb": 46.0,
-      "network_recv_mb": 252.98,
-      "network_packets_sent": 152544,
-      "network_packets_recv": 323694,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 14:42:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:42:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.38,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193797.53,
-      "disk_write_mb": 173697.77,
-      "network_sent_mb": 46.06,
-      "network_recv_mb": 253.14,
-      "network_packets_sent": 152707,
-      "network_packets_recv": 324337,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:43:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:43:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.6,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193803.72,
-      "disk_write_mb": 173710.96,
-      "network_sent_mb": 46.36,
-      "network_recv_mb": 253.43,
-      "network_packets_sent": 153078,
-      "network_packets_recv": 325341,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:43:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:43:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.6,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 193803.78,
-      "disk_write_mb": 173722.14,
-      "network_sent_mb": 46.43,
-      "network_recv_mb": 253.56,
-      "network_packets_sent": 153378,
-      "network_packets_recv": 326227,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 14:44:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:44:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193831.74,
-      "disk_write_mb": 173731.83,
-      "network_sent_mb": 46.65,
-      "network_recv_mb": 253.76,
-      "network_packets_sent": 153857,
-      "network_packets_recv": 327421,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 14:45:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:45:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.58,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193831.86,
-      "disk_write_mb": 173746.44,
-      "network_sent_mb": 46.7,
-      "network_recv_mb": 253.9,
-      "network_packets_sent": 154223,
-      "network_packets_recv": 328435,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 14:45:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:45:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193834.88,
-      "disk_write_mb": 173755.79,
-      "network_sent_mb": 46.84,
-      "network_recv_mb": 254.1,
-      "network_packets_sent": 154599,
-      "network_packets_recv": 329418,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:46:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:46:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.74,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193838.02,
-      "disk_write_mb": 173766.3,
-      "network_sent_mb": 46.91,
-      "network_recv_mb": 254.24,
-      "network_packets_sent": 154773,
-      "network_packets_recv": 330096,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 14:47:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:47:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.81,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193838.85,
-      "disk_write_mb": 173777.07,
-      "network_sent_mb": 47.26,
-      "network_recv_mb": 254.54,
-      "network_packets_sent": 155173,
-      "network_packets_recv": 331159,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 14:47:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:47:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 78.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.7,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193840.58,
-      "disk_write_mb": 173818.75,
-      "network_sent_mb": 47.62,
-      "network_recv_mb": 254.73,
-      "network_packets_sent": 155735,
-      "network_packets_recv": 332209,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 14:48:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:48:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.69,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193935.1,
-      "disk_write_mb": 173892.88,
-      "network_sent_mb": 47.74,
-      "network_recv_mb": 254.82,
-      "network_packets_sent": 155950,
-      "network_packets_recv": 332884,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 14:48:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:48:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.7,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193936.02,
-      "disk_write_mb": 173928.31,
-      "network_sent_mb": 47.83,
-      "network_recv_mb": 255.06,
-      "network_packets_sent": 156220,
-      "network_packets_recv": 333625,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 14:49:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:49:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.64,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193936.73,
-      "disk_write_mb": 173939.21,
-      "network_sent_mb": 47.89,
-      "network_recv_mb": 255.18,
-      "network_packets_sent": 156389,
-      "network_packets_recv": 334323,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:50:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:50:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.75,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193940.75,
-      "disk_write_mb": 173951.15,
-      "network_sent_mb": 47.95,
-      "network_recv_mb": 255.35,
-      "network_packets_sent": 156601,
-      "network_packets_recv": 334856,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 14:50:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:50:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.91,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 193942.7,
-      "disk_write_mb": 173964.38,
-      "network_sent_mb": 48.18,
-      "network_recv_mb": 255.57,
-      "network_packets_sent": 156942,
-      "network_packets_recv": 335672,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:51:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:51:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.38,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193953.38,
-      "disk_write_mb": 174000.49,
-      "network_sent_mb": 49.23,
-      "network_recv_mb": 261.91,
-      "network_packets_sent": 160543,
-      "network_packets_recv": 343194,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:51:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:51:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.49,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193963.99,
-      "disk_write_mb": 174019.23,
-      "network_sent_mb": 49.47,
-      "network_recv_mb": 263.23,
-      "network_packets_sent": 161577,
-      "network_packets_recv": 344884,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:52:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:52:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.29,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193967.47,
-      "disk_write_mb": 174036.25,
-      "network_sent_mb": 49.63,
-      "network_recv_mb": 263.48,
-      "network_packets_sent": 162021,
-      "network_packets_recv": 345756,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:53:16",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:53:16",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.38,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193969.89,
-      "disk_write_mb": 174050.37,
-      "network_sent_mb": 50.0,
-      "network_recv_mb": 264.49,
-      "network_packets_sent": 163055,
-      "network_packets_recv": 347482,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:53:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:53:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 29.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.07,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193970.29,
-      "disk_write_mb": 174065.09,
-      "network_sent_mb": 50.2,
-      "network_recv_mb": 265.26,
-      "network_packets_sent": 163583,
-      "network_packets_recv": 348535,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:54:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:54:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.74,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193972.8,
-      "disk_write_mb": 174079.37,
-      "network_sent_mb": 50.39,
-      "network_recv_mb": 265.89,
-      "network_packets_sent": 163987,
-      "network_packets_recv": 349424,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:55:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:55:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.58,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193973.1,
-      "disk_write_mb": 174116.11,
-      "network_sent_mb": 50.45,
-      "network_recv_mb": 265.96,
-      "network_packets_sent": 164099,
-      "network_packets_recv": 349879,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:55:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:55:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.52,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193973.26,
-      "disk_write_mb": 174157.7,
-      "network_sent_mb": 50.56,
-      "network_recv_mb": 266.05,
-      "network_packets_sent": 164292,
-      "network_packets_recv": 350436,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:56:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:56:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.52,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 193973.94,
-      "disk_write_mb": 174179.35,
-      "network_sent_mb": 50.61,
-      "network_recv_mb": 266.14,
-      "network_packets_sent": 164459,
-      "network_packets_recv": 350934,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:56:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:56:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 36.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.55,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.5,
-      "disk_read_mb": 193975.72,
-      "disk_write_mb": 174200.91,
-      "network_sent_mb": 50.71,
-      "network_recv_mb": 266.78,
-      "network_packets_sent": 164790,
-      "network_packets_recv": 351654,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.5,
-          "free_gb": 222.44,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:57:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:57:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.77,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 193980.46,
-      "disk_write_mb": 174227.02,
-      "network_sent_mb": 51.01,
-      "network_recv_mb": 267.81,
-      "network_packets_sent": 165943,
-      "network_packets_recv": 353323,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:58:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:58:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.99,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 193980.62,
-      "disk_write_mb": 174256.71,
-      "network_sent_mb": 51.41,
-      "network_recv_mb": 268.95,
-      "network_packets_sent": 167037,
-      "network_packets_recv": 354986,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:58:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:58:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 33.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 193998.19,
-      "disk_write_mb": 174284.09,
-      "network_sent_mb": 51.84,
-      "network_recv_mb": 271.26,
-      "network_packets_sent": 168197,
-      "network_packets_recv": 356790,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 14:59:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 14:59:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.15,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 193998.75,
-      "disk_write_mb": 174295.94,
-      "network_sent_mb": 51.97,
-      "network_recv_mb": 271.75,
-      "network_packets_sent": 168629,
-      "network_packets_recv": 357566,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251217_15.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251217_15.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,12773 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-17 15:00:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:00:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 193999.57,
-      "disk_write_mb": 174309.32,
-      "network_sent_mb": 52.3,
-      "network_recv_mb": 273.15,
-      "network_packets_sent": 169499,
-      "network_packets_recv": 358915,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:00:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:00:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194000.7,
-      "disk_write_mb": 174358.49,
-      "network_sent_mb": 52.63,
-      "network_recv_mb": 273.95,
-      "network_packets_sent": 169854,
-      "network_packets_recv": 359893,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 7.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:01:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:01:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.16,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194000.82,
-      "disk_write_mb": 174368.95,
-      "network_sent_mb": 52.76,
-      "network_recv_mb": 274.08,
-      "network_packets_sent": 170260,
-      "network_packets_recv": 360820,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:01:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:01:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.11,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194001.92,
-      "disk_write_mb": 174378.49,
-      "network_sent_mb": 52.87,
-      "network_recv_mb": 274.18,
-      "network_packets_sent": 170425,
-      "network_packets_recv": 361381,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:02:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:02:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194002.36,
-      "disk_write_mb": 174391.46,
-      "network_sent_mb": 52.93,
-      "network_recv_mb": 274.32,
-      "network_packets_sent": 170661,
-      "network_packets_recv": 361891,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:03:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:03:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.24,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194002.68,
-      "disk_write_mb": 174404.05,
-      "network_sent_mb": 53.02,
-      "network_recv_mb": 274.42,
-      "network_packets_sent": 170806,
-      "network_packets_recv": 362344,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:03:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:03:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.51,
-      "disk_read_mb": 194005.45,
-      "disk_write_mb": 174413.64,
-      "network_sent_mb": 53.15,
-      "network_recv_mb": 274.61,
-      "network_packets_sent": 171301,
-      "network_packets_recv": 363459,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.51,
-          "free_gb": 222.43,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:04:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:04:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.46,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194011.52,
-      "disk_write_mb": 174479.79,
-      "network_sent_mb": 53.26,
-      "network_recv_mb": 274.84,
-      "network_packets_sent": 171676,
-      "network_packets_recv": 364193,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:05:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:05:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.27,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194011.58,
-      "disk_write_mb": 174498.54,
-      "network_sent_mb": 53.3,
-      "network_recv_mb": 274.91,
-      "network_packets_sent": 171803,
-      "network_packets_recv": 364617,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 15:05:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:05:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194011.72,
-      "disk_write_mb": 174506.94,
-      "network_sent_mb": 53.54,
-      "network_recv_mb": 275.13,
-      "network_packets_sent": 172225,
-      "network_packets_recv": 365609,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 15:06:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:06:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.45,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194012.04,
-      "disk_write_mb": 174517.41,
-      "network_sent_mb": 53.67,
-      "network_recv_mb": 275.25,
-      "network_packets_sent": 172469,
-      "network_packets_recv": 366417,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 15:06:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:06:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 57.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.35,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194012.9,
-      "disk_write_mb": 174525.56,
-      "network_sent_mb": 53.71,
-      "network_recv_mb": 275.31,
-      "network_packets_sent": 172564,
-      "network_packets_recv": 367002,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:07:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:07:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194013.26,
-      "disk_write_mb": 174576.86,
-      "network_sent_mb": 53.86,
-      "network_recv_mb": 275.45,
-      "network_packets_sent": 172836,
-      "network_packets_recv": 367975,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:08:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:08:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194028.36,
-      "disk_write_mb": 174595.07,
-      "network_sent_mb": 53.95,
-      "network_recv_mb": 275.62,
-      "network_packets_sent": 173263,
-      "network_packets_recv": 369072,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:08:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:08:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194028.46,
-      "disk_write_mb": 174642.64,
-      "network_sent_mb": 54.11,
-      "network_recv_mb": 275.76,
-      "network_packets_sent": 173575,
-      "network_packets_recv": 369872,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:09:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:09:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 1.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194028.77,
-      "disk_write_mb": 174652.4,
-      "network_sent_mb": 54.19,
-      "network_recv_mb": 275.95,
-      "network_packets_sent": 173802,
-      "network_packets_recv": 370752,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 15:10:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:10:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194028.78,
-      "disk_write_mb": 174659.51,
-      "network_sent_mb": 54.22,
-      "network_recv_mb": 276.02,
-      "network_packets_sent": 173909,
-      "network_packets_recv": 371291,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 15:10:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:10:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194029.97,
-      "disk_write_mb": 174669.82,
-      "network_sent_mb": 54.28,
-      "network_recv_mb": 276.11,
-      "network_packets_sent": 174068,
-      "network_packets_recv": 371883,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:11:16",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:11:16",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194029.98,
-      "disk_write_mb": 174678.81,
-      "network_sent_mb": 54.31,
-      "network_recv_mb": 276.17,
-      "network_packets_sent": 174159,
-      "network_packets_recv": 372372,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:11:53",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:11:53",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.16,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194030.05,
-      "disk_write_mb": 174686.68,
-      "network_sent_mb": 54.36,
-      "network_recv_mb": 276.27,
-      "network_packets_sent": 174300,
-      "network_packets_recv": 372982,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 15:12:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:12:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.17,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194030.18,
-      "disk_write_mb": 174696.11,
-      "network_sent_mb": 54.39,
-      "network_recv_mb": 276.42,
-      "network_packets_sent": 174397,
-      "network_packets_recv": 373565,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:13:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:13:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.17,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194030.25,
-      "disk_write_mb": 174703.32,
-      "network_sent_mb": 54.42,
-      "network_recv_mb": 276.49,
-      "network_packets_sent": 174494,
-      "network_packets_recv": 374053,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:13:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:13:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.18,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194030.32,
-      "disk_write_mb": 174710.32,
-      "network_sent_mb": 54.44,
-      "network_recv_mb": 276.56,
-      "network_packets_sent": 174557,
-      "network_packets_recv": 374573,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:14:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:14:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194030.54,
-      "disk_write_mb": 174718.42,
-      "network_sent_mb": 54.49,
-      "network_recv_mb": 276.64,
-      "network_packets_sent": 174688,
-      "network_packets_recv": 375143,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:14:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:14:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 44.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.54,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194033.22,
-      "disk_write_mb": 174727.62,
-      "network_sent_mb": 54.53,
-      "network_recv_mb": 276.75,
-      "network_packets_sent": 174844,
-      "network_packets_recv": 375680,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:15:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:15:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194033.77,
-      "disk_write_mb": 174738.78,
-      "network_sent_mb": 54.56,
-      "network_recv_mb": 276.8,
-      "network_packets_sent": 174941,
-      "network_packets_recv": 376042,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 15:16:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:16:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.24,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194033.93,
-      "disk_write_mb": 174744.77,
-      "network_sent_mb": 54.6,
-      "network_recv_mb": 276.85,
-      "network_packets_sent": 175053,
-      "network_packets_recv": 376409,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:16:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:16:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194034.4,
-      "disk_write_mb": 174755.78,
-      "network_sent_mb": 54.65,
-      "network_recv_mb": 276.97,
-      "network_packets_sent": 175216,
-      "network_packets_recv": 376904,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 20,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:17:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:17:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.2,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194034.72,
-      "disk_write_mb": 174791.11,
-      "network_sent_mb": 54.87,
-      "network_recv_mb": 277.1,
-      "network_packets_sent": 175565,
-      "network_packets_recv": 377482,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:18:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:18:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.29,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194034.79,
-      "disk_write_mb": 174803.46,
-      "network_sent_mb": 54.92,
-      "network_recv_mb": 277.21,
-      "network_packets_sent": 175727,
-      "network_packets_recv": 377931,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 15:18:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:18:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.17,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194034.86,
-      "disk_write_mb": 174810.73,
-      "network_sent_mb": 54.95,
-      "network_recv_mb": 277.26,
-      "network_packets_sent": 175815,
-      "network_packets_recv": 378303,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 15:19:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:19:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.0,
-      "disk_write_mb": 174817.1,
-      "network_sent_mb": 54.99,
-      "network_recv_mb": 277.32,
-      "network_packets_sent": 175923,
-      "network_packets_recv": 378695,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:19:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:19:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.23,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.07,
-      "disk_write_mb": 174825.57,
-      "network_sent_mb": 55.19,
-      "network_recv_mb": 277.39,
-      "network_packets_sent": 176157,
-      "network_packets_recv": 379192,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:20:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:20:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.33,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.08,
-      "disk_write_mb": 174834.85,
-      "network_sent_mb": 55.25,
-      "network_recv_mb": 277.51,
-      "network_packets_sent": 176359,
-      "network_packets_recv": 379701,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:21:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:21:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.15,
-      "disk_write_mb": 174842.7,
-      "network_sent_mb": 55.48,
-      "network_recv_mb": 277.56,
-      "network_packets_sent": 176476,
-      "network_packets_recv": 380152,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:21:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:21:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.16,
-      "disk_write_mb": 174850.3,
-      "network_sent_mb": 55.89,
-      "network_recv_mb": 277.64,
-      "network_packets_sent": 176629,
-      "network_packets_recv": 380849,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:22:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:22:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.29,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.29,
-      "disk_write_mb": 174861.32,
-      "network_sent_mb": 56.29,
-      "network_recv_mb": 277.81,
-      "network_packets_sent": 176869,
-      "network_packets_recv": 381626,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:22:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:22:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.33,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.31,
-      "disk_write_mb": 174870.43,
-      "network_sent_mb": 56.45,
-      "network_recv_mb": 278.06,
-      "network_packets_sent": 177319,
-      "network_packets_recv": 382664,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:23:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:23:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.24,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.31,
-      "disk_write_mb": 174879.15,
-      "network_sent_mb": 56.5,
-      "network_recv_mb": 278.26,
-      "network_packets_sent": 177967,
-      "network_packets_recv": 384059,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:24:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:24:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.24,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.57,
-      "disk_write_mb": 174886.43,
-      "network_sent_mb": 56.56,
-      "network_recv_mb": 278.42,
-      "network_packets_sent": 178635,
-      "network_packets_recv": 385397,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:24:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:24:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.32,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194035.67,
-      "disk_write_mb": 174895.32,
-      "network_sent_mb": 56.62,
-      "network_recv_mb": 278.6,
-      "network_packets_sent": 179328,
-      "network_packets_recv": 386769,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:25:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:25:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 67.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.58,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194037.09,
-      "disk_write_mb": 174908.56,
-      "network_sent_mb": 57.04,
-      "network_recv_mb": 279.11,
-      "network_packets_sent": 180027,
-      "network_packets_recv": 388254,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 15:26:02",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:26:02",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 66.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.43,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194037.16,
-      "disk_write_mb": 174919.73,
-      "network_sent_mb": 57.07,
-      "network_recv_mb": 279.16,
-      "network_packets_sent": 180090,
-      "network_packets_recv": 388688,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:26:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:26:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 67.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.6,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 194037.43,
-      "disk_write_mb": 174933.6,
-      "network_sent_mb": 57.99,
-      "network_recv_mb": 279.79,
-      "network_packets_sent": 180670,
-      "network_packets_recv": 390087,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:27:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:27:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 68.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.75,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194074.35,
-      "disk_write_mb": 174942.15,
-      "network_sent_mb": 58.0,
-      "network_recv_mb": 279.83,
-      "network_packets_sent": 180716,
-      "network_packets_recv": 390494,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:27:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:27:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 68.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.74,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194080.27,
-      "disk_write_mb": 174988.86,
-      "network_sent_mb": 58.07,
-      "network_recv_mb": 279.9,
-      "network_packets_sent": 180861,
-      "network_packets_recv": 390987,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 15:28:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:28:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 68.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.76,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194081.55,
-      "disk_write_mb": 175044.51,
-      "network_sent_mb": 58.14,
-      "network_recv_mb": 279.95,
-      "network_packets_sent": 180983,
-      "network_packets_recv": 391483,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:29:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:29:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.82,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194082.54,
-      "disk_write_mb": 175109.81,
-      "network_sent_mb": 58.23,
-      "network_recv_mb": 280.07,
-      "network_packets_sent": 181216,
-      "network_packets_recv": 392114,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:29:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:29:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.88,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194083.03,
-      "disk_write_mb": 175203.41,
-      "network_sent_mb": 58.32,
-      "network_recv_mb": 280.13,
-      "network_packets_sent": 181371,
-      "network_packets_recv": 392619,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:30:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:30:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.99,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194083.16,
-      "disk_write_mb": 175266.18,
-      "network_sent_mb": 58.39,
-      "network_recv_mb": 280.19,
-      "network_packets_sent": 181483,
-      "network_packets_recv": 393096,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:30:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:30:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.98,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194083.24,
-      "disk_write_mb": 175344.27,
-      "network_sent_mb": 58.49,
-      "network_recv_mb": 280.27,
-      "network_packets_sent": 181650,
-      "network_packets_recv": 393624,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:31:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:31:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.86,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194089.65,
-      "disk_write_mb": 175424.42,
-      "network_sent_mb": 58.56,
-      "network_recv_mb": 280.32,
-      "network_packets_sent": 181768,
-      "network_packets_recv": 394063,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:31:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:31:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 84.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 69.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.83,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194091.47,
-      "disk_write_mb": 175486.52,
-      "network_sent_mb": 58.62,
-      "network_recv_mb": 280.38,
-      "network_packets_sent": 181875,
-      "network_packets_recv": 394487,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:32:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:32:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.05,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194099.28,
-      "disk_write_mb": 175571.97,
-      "network_sent_mb": 58.71,
-      "network_recv_mb": 280.87,
-      "network_packets_sent": 182271,
-      "network_packets_recv": 395245,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.41,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:33:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:33:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.95,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194108.5,
-      "disk_write_mb": 175653.82,
-      "network_sent_mb": 58.83,
-      "network_recv_mb": 282.57,
-      "network_packets_sent": 183174,
-      "network_packets_recv": 396628,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:33:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:33:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 69.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.85,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194108.86,
-      "disk_write_mb": 175721.04,
-      "network_sent_mb": 58.88,
-      "network_recv_mb": 282.65,
-      "network_packets_sent": 183311,
-      "network_packets_recv": 397133,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 34
-  },
-  {
-    "timestamp": "2025-12-17 15:34:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:34:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.22,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194109.82,
-      "disk_write_mb": 175762.71,
-      "network_sent_mb": 59.03,
-      "network_recv_mb": 282.83,
-      "network_packets_sent": 183625,
-      "network_packets_recv": 397876,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 15:35:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:35:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 70.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.06,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194109.9,
-      "disk_write_mb": 175780.36,
-      "network_sent_mb": 59.15,
-      "network_recv_mb": 282.95,
-      "network_packets_sent": 183795,
-      "network_packets_recv": 398427,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 15:35:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:35:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.14,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194109.98,
-      "disk_write_mb": 175788.98,
-      "network_sent_mb": 59.22,
-      "network_recv_mb": 283.0,
-      "network_packets_sent": 183962,
-      "network_packets_recv": 398880,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:36:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:36:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194110.41,
-      "disk_write_mb": 175799.53,
-      "network_sent_mb": 59.47,
-      "network_recv_mb": 283.22,
-      "network_packets_sent": 184277,
-      "network_packets_recv": 399674,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:36:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:36:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 73.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.47,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194110.94,
-      "disk_write_mb": 175808.52,
-      "network_sent_mb": 59.51,
-      "network_recv_mb": 283.38,
-      "network_packets_sent": 184852,
-      "network_packets_recv": 400987,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 15:37:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:37:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 70.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.0,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194110.94,
-      "disk_write_mb": 175822.63,
-      "network_sent_mb": 59.6,
-      "network_recv_mb": 283.44,
-      "network_packets_sent": 184981,
-      "network_packets_recv": 401486,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:38:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:38:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.28,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194111.5,
-      "disk_write_mb": 175838.3,
-      "network_sent_mb": 59.68,
-      "network_recv_mb": 283.56,
-      "network_packets_sent": 185166,
-      "network_packets_recv": 402067,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:38:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:38:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.36,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194111.84,
-      "disk_write_mb": 175848.94,
-      "network_sent_mb": 59.96,
-      "network_recv_mb": 283.74,
-      "network_packets_sent": 185548,
-      "network_packets_recv": 402946,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:39:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:39:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194126.05,
-      "disk_write_mb": 175912.07,
-      "network_sent_mb": 60.02,
-      "network_recv_mb": 283.91,
-      "network_packets_sent": 185902,
-      "network_packets_recv": 403683,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 15:40:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:40:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.17,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194127.88,
-      "disk_write_mb": 175979.98,
-      "network_sent_mb": 60.14,
-      "network_recv_mb": 283.98,
-      "network_packets_sent": 186027,
-      "network_packets_recv": 404163,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:40:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:40:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.26,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194128.38,
-      "disk_write_mb": 176050.86,
-      "network_sent_mb": 60.24,
-      "network_recv_mb": 284.11,
-      "network_packets_sent": 186272,
-      "network_packets_recv": 404738,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 15:41:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:41:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 78.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.49,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194174.99,
-      "disk_write_mb": 176084.08,
-      "network_sent_mb": 60.34,
-      "network_recv_mb": 284.26,
-      "network_packets_sent": 186548,
-      "network_packets_recv": 405284,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:41:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:41:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.5,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.62,
-      "disk_read_mb": 194207.32,
-      "disk_write_mb": 176451.69,
-      "network_sent_mb": 61.36,
-      "network_recv_mb": 307.38,
-      "network_packets_sent": 197017,
-      "network_packets_recv": 417457,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.62,
-          "free_gb": 222.31,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:42:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:42:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.51,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.53,
-      "disk_read_mb": 194210.76,
-      "disk_write_mb": 176476.73,
-      "network_sent_mb": 61.42,
-      "network_recv_mb": 307.54,
-      "network_packets_sent": 197571,
-      "network_packets_recv": 418548,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.53,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 15:43:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:43:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.25,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194210.92,
-      "disk_write_mb": 176486.3,
-      "network_sent_mb": 61.53,
-      "network_recv_mb": 307.65,
-      "network_packets_sent": 197779,
-      "network_packets_recv": 419084,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:43:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:43:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.21,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194211.23,
-      "disk_write_mb": 176495.16,
-      "network_sent_mb": 61.62,
-      "network_recv_mb": 307.77,
-      "network_packets_sent": 198006,
-      "network_packets_recv": 419622,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 15:44:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:44:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 72.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.34,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194214.96,
-      "disk_write_mb": 176506.23,
-      "network_sent_mb": 61.76,
-      "network_recv_mb": 307.9,
-      "network_packets_sent": 198228,
-      "network_packets_recv": 420219,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:44:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:44:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.65,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194227.98,
-      "disk_write_mb": 176517.07,
-      "network_sent_mb": 61.82,
-      "network_recv_mb": 308.08,
-      "network_packets_sent": 198900,
-      "network_packets_recv": 421526,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:45:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:45:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.91,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194229.41,
-      "disk_write_mb": 176531.71,
-      "network_sent_mb": 62.01,
-      "network_recv_mb": 308.69,
-      "network_packets_sent": 200125,
-      "network_packets_recv": 423539,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 15:46:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:46:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.83,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194229.54,
-      "disk_write_mb": 176544.87,
-      "network_sent_mb": 62.08,
-      "network_recv_mb": 309.06,
-      "network_packets_sent": 200883,
-      "network_packets_recv": 424996,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:46:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:46:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.11,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194232.33,
-      "disk_write_mb": 176554.59,
-      "network_sent_mb": 62.18,
-      "network_recv_mb": 309.33,
-      "network_packets_sent": 201519,
-      "network_packets_recv": 426093,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:47:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:47:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.92,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194234.82,
-      "disk_write_mb": 176588.76,
-      "network_sent_mb": 62.38,
-      "network_recv_mb": 309.56,
-      "network_packets_sent": 202099,
-      "network_packets_recv": 426925,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:47:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:47:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 68.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 10.74,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194234.86,
-      "disk_write_mb": 176601.86,
-      "network_sent_mb": 62.58,
-      "network_recv_mb": 309.66,
-      "network_packets_sent": 202409,
-      "network_packets_recv": 427382,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:48:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:48:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 71.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.24,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.54,
-      "disk_read_mb": 194236.99,
-      "disk_write_mb": 176630.97,
-      "network_sent_mb": 63.58,
-      "network_recv_mb": 310.39,
-      "network_packets_sent": 203204,
-      "network_packets_recv": 428980,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.54,
-          "free_gb": 222.4,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 15:49:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:49:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.49,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.61,
-      "disk_read_mb": 194246.29,
-      "disk_write_mb": 176829.76,
-      "network_sent_mb": 63.92,
-      "network_recv_mb": 318.37,
-      "network_packets_sent": 207222,
-      "network_packets_recv": 433800,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.61,
-          "free_gb": 222.33,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:49:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:49:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.73,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.61,
-      "disk_read_mb": 194268.66,
-      "disk_write_mb": 176909.41,
-      "network_sent_mb": 63.99,
-      "network_recv_mb": 318.47,
-      "network_packets_sent": 207446,
-      "network_packets_recv": 434235,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.61,
-          "free_gb": 222.33,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 15:50:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:50:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.76,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.61,
-      "disk_read_mb": 194270.89,
-      "disk_write_mb": 176952.29,
-      "network_sent_mb": 64.13,
-      "network_recv_mb": 318.58,
-      "network_packets_sent": 207649,
-      "network_packets_recv": 434753,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.61,
-          "free_gb": 222.33,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 15:50:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:50:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 55.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.38,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194321.49,
-      "disk_write_mb": 177019.77,
-      "network_sent_mb": 64.18,
-      "network_recv_mb": 318.67,
-      "network_packets_sent": 207897,
-      "network_packets_recv": 435280,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:51:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:51:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.4,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194323.64,
-      "disk_write_mb": 177091.2,
-      "network_sent_mb": 64.26,
-      "network_recv_mb": 318.75,
-      "network_packets_sent": 208232,
-      "network_packets_recv": 435808,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 18,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-17 15:52:02",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:52:02",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.45,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194324.32,
-      "disk_write_mb": 177156.57,
-      "network_sent_mb": 64.48,
-      "network_recv_mb": 318.98,
-      "network_packets_sent": 208648,
-      "network_packets_recv": 436497,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:52:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:52:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194326.92,
-      "disk_write_mb": 177222.25,
-      "network_sent_mb": 64.56,
-      "network_recv_mb": 319.04,
-      "network_packets_sent": 208840,
-      "network_packets_recv": 436868,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 15:53:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:53:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.59,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194328.62,
-      "disk_write_mb": 177301.05,
-      "network_sent_mb": 64.69,
-      "network_recv_mb": 319.14,
-      "network_packets_sent": 209057,
-      "network_packets_recv": 437322,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 19,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:53:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:53:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194335.95,
-      "disk_write_mb": 177363.69,
-      "network_sent_mb": 64.85,
-      "network_recv_mb": 319.37,
-      "network_packets_sent": 209747,
-      "network_packets_recv": 438203,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 21,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 15:54:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:54:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194366.83,
-      "disk_write_mb": 177385.84,
-      "network_sent_mb": 65.01,
-      "network_recv_mb": 319.47,
-      "network_packets_sent": 209998,
-      "network_packets_recv": 438735,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 15:54:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:54:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194368.74,
-      "disk_write_mb": 177450.46,
-      "network_sent_mb": 65.04,
-      "network_recv_mb": 319.52,
-      "network_packets_sent": 210093,
-      "network_packets_recv": 439041,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 22,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:55:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:55:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.44,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194369.73,
-      "disk_write_mb": 177502.59,
-      "network_sent_mb": 65.1,
-      "network_recv_mb": 319.59,
-      "network_packets_sent": 210240,
-      "network_packets_recv": 439480,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 23,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:56:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:56:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.41,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194369.97,
-      "disk_write_mb": 177511.96,
-      "network_sent_mb": 65.2,
-      "network_recv_mb": 319.69,
-      "network_packets_sent": 210388,
-      "network_packets_recv": 440007,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:56:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:56:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.84,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194377.44,
-      "disk_write_mb": 177519.88,
-      "network_sent_mb": 65.25,
-      "network_recv_mb": 319.77,
-      "network_packets_sent": 210631,
-      "network_packets_recv": 440592,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 24,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 15:57:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:57:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194378.22,
-      "disk_write_mb": 177528.87,
-      "network_sent_mb": 65.38,
-      "network_recv_mb": 319.86,
-      "network_packets_sent": 210870,
-      "network_packets_recv": 441243,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 25,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 15:57:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:57:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194380.09,
-      "disk_write_mb": 177545.04,
-      "network_sent_mb": 65.44,
-      "network_recv_mb": 320.0,
-      "network_packets_sent": 211108,
-      "network_packets_recv": 441888,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 15:58:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:58:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.86,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194380.84,
-      "disk_write_mb": 177559.65,
-      "network_sent_mb": 65.48,
-      "network_recv_mb": 320.08,
-      "network_packets_sent": 211257,
-      "network_packets_recv": 442353,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 26,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 15:59:02",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:59:02",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.88,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194381.16,
-      "disk_write_mb": 177630.19,
-      "network_sent_mb": 65.58,
-      "network_recv_mb": 320.15,
-      "network_packets_sent": 211439,
-      "network_packets_recv": 442902,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 15:59:37",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 15:59:37",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194382.24,
-      "disk_write_mb": 177708.21,
-      "network_sent_mb": 65.7,
-      "network_recv_mb": 320.24,
-      "network_packets_sent": 211702,
-      "network_packets_recv": 443490,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251217_16.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251217_16.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,6323 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-17 16:00:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:00:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194385.26,
-      "disk_write_mb": 177750.44,
-      "network_sent_mb": 65.98,
-      "network_recv_mb": 320.43,
-      "network_packets_sent": 212103,
-      "network_packets_recv": 444287,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 16:00:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:00:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.04,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194388.39,
-      "disk_write_mb": 177801.92,
-      "network_sent_mb": 66.19,
-      "network_recv_mb": 320.6,
-      "network_packets_sent": 212570,
-      "network_packets_recv": 445327,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 8.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 16:01:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:01:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.9,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194389.17,
-      "disk_write_mb": 177849.58,
-      "network_sent_mb": 66.28,
-      "network_recv_mb": 320.72,
-      "network_packets_sent": 212837,
-      "network_packets_recv": 445861,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 16:01:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:01:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.93,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194389.56,
-      "disk_write_mb": 177860.63,
-      "network_sent_mb": 66.43,
-      "network_recv_mb": 320.87,
-      "network_packets_sent": 213251,
-      "network_packets_recv": 446701,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 30,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:02:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:02:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194389.9,
-      "disk_write_mb": 177878.0,
-      "network_sent_mb": 66.48,
-      "network_recv_mb": 321.02,
-      "network_packets_sent": 213905,
-      "network_packets_recv": 447929,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 31,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:03:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:03:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.34,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194392.27,
-      "disk_write_mb": 177895.43,
-      "network_sent_mb": 67.87,
-      "network_recv_mb": 322.51,
-      "network_packets_sent": 215043,
-      "network_packets_recv": 450124,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 16:03:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:03:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.32,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194421.32,
-      "disk_write_mb": 177912.02,
-      "network_sent_mb": 68.25,
-      "network_recv_mb": 324.19,
-      "network_packets_sent": 216060,
-      "network_packets_recv": 451890,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 32,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 16:04:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:04:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.32,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194421.66,
-      "disk_write_mb": 177923.85,
-      "network_sent_mb": 68.46,
-      "network_recv_mb": 325.04,
-      "network_packets_sent": 216507,
-      "network_packets_recv": 452862,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 33,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 16:05:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:05:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194423.33,
-      "disk_write_mb": 177935.53,
-      "network_sent_mb": 68.7,
-      "network_recv_mb": 326.16,
-      "network_packets_sent": 216964,
-      "network_packets_recv": 453867,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:05:37",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:05:37",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.39,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194423.69,
-      "disk_write_mb": 177986.29,
-      "network_sent_mb": 68.89,
-      "network_recv_mb": 326.49,
-      "network_packets_sent": 217315,
-      "network_packets_recv": 454665,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 16:06:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:06:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.36,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194423.85,
-      "disk_write_mb": 178100.7,
-      "network_sent_mb": 68.99,
-      "network_recv_mb": 326.57,
-      "network_packets_sent": 217497,
-      "network_packets_recv": 455276,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 16:06:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:06:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.29,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194424.83,
-      "disk_write_mb": 178175.85,
-      "network_sent_mb": 69.05,
-      "network_recv_mb": 326.66,
-      "network_packets_sent": 217650,
-      "network_packets_recv": 455759,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 16:07:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:07:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.57,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194426.99,
-      "disk_write_mb": 178233.69,
-      "network_sent_mb": 69.29,
-      "network_recv_mb": 326.87,
-      "network_packets_sent": 218064,
-      "network_packets_recv": 456776,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 16:07:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:07:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194429.83,
-      "disk_write_mb": 178260.45,
-      "network_sent_mb": 69.4,
-      "network_recv_mb": 326.97,
-      "network_packets_sent": 218381,
-      "network_packets_recv": 457546,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 16:08:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:08:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.47,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194431.5,
-      "disk_write_mb": 178270.52,
-      "network_sent_mb": 69.46,
-      "network_recv_mb": 327.09,
-      "network_packets_sent": 218577,
-      "network_packets_recv": 458157,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:09:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:09:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.58,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194431.62,
-      "disk_write_mb": 178284.01,
-      "network_sent_mb": 70.45,
-      "network_recv_mb": 327.65,
-      "network_packets_sent": 219171,
-      "network_packets_recv": 459429,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 16:09:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:09:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.57,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194436.36,
-      "disk_write_mb": 178295.63,
-      "network_sent_mb": 70.62,
-      "network_recv_mb": 327.81,
-      "network_packets_sent": 219515,
-      "network_packets_recv": 460209,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 16:10:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:10:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194437.27,
-      "disk_write_mb": 178318.28,
-      "network_sent_mb": 70.71,
-      "network_recv_mb": 327.95,
-      "network_packets_sent": 219757,
-      "network_packets_recv": 460826,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 16:10:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:10:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194438.38,
-      "disk_write_mb": 178358.49,
-      "network_sent_mb": 70.79,
-      "network_recv_mb": 328.08,
-      "network_packets_sent": 219951,
-      "network_packets_recv": 461365,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 16:11:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:11:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194438.72,
-      "disk_write_mb": 178374.04,
-      "network_sent_mb": 71.12,
-      "network_recv_mb": 328.36,
-      "network_packets_sent": 220544,
-      "network_packets_recv": 462562,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 16:12:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:12:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 1.2,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194450.05,
-      "disk_write_mb": 178384.85,
-      "network_sent_mb": 71.28,
-      "network_recv_mb": 328.51,
-      "network_packets_sent": 220896,
-      "network_packets_recv": 463419,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 16:12:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:12:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.82,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194450.29,
-      "disk_write_mb": 178405.69,
-      "network_sent_mb": 71.42,
-      "network_recv_mb": 328.73,
-      "network_packets_sent": 221457,
-      "network_packets_recv": 464698,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 16:13:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:13:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194450.38,
-      "disk_write_mb": 178414.12,
-      "network_sent_mb": 71.48,
-      "network_recv_mb": 328.86,
-      "network_packets_sent": 221912,
-      "network_packets_recv": 465680,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 16:13:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:13:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194453.46,
-      "disk_write_mb": 178424.25,
-      "network_sent_mb": 71.62,
-      "network_recv_mb": 329.01,
-      "network_packets_sent": 222169,
-      "network_packets_recv": 466361,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 16:14:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:14:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194461.0,
-      "disk_write_mb": 178439.21,
-      "network_sent_mb": 71.77,
-      "network_recv_mb": 329.17,
-      "network_packets_sent": 222478,
-      "network_packets_recv": 467120,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 16:15:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:15:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194469.53,
-      "disk_write_mb": 178475.39,
-      "network_sent_mb": 71.99,
-      "network_recv_mb": 333.71,
-      "network_packets_sent": 224273,
-      "network_packets_recv": 471476,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 16:15:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:15:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.67,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194470.15,
-      "disk_write_mb": 178529.27,
-      "network_sent_mb": 72.15,
-      "network_recv_mb": 333.85,
-      "network_packets_sent": 224625,
-      "network_packets_recv": 472152,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 16:16:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:16:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 39.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194470.5,
-      "disk_write_mb": 178574.58,
-      "network_sent_mb": 72.2,
-      "network_recv_mb": 333.97,
-      "network_packets_sent": 224832,
-      "network_packets_recv": 472510,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 16:16:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:16:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.57,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194471.51,
-      "disk_write_mb": 178623.54,
-      "network_sent_mb": 72.24,
-      "network_recv_mb": 334.14,
-      "network_packets_sent": 224996,
-      "network_packets_recv": 472906,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 16:18:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:18:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.3,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194472.48,
-      "disk_write_mb": 178680.36,
-      "network_sent_mb": 72.5,
-      "network_recv_mb": 334.39,
-      "network_packets_sent": 225537,
-      "network_packets_recv": 474020,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 16:18:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:18:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194473.2,
-      "disk_write_mb": 178720.89,
-      "network_sent_mb": 72.6,
-      "network_recv_mb": 334.54,
-      "network_packets_sent": 225870,
-      "network_packets_recv": 474606,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 16:19:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:19:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194475.33,
-      "disk_write_mb": 178767.58,
-      "network_sent_mb": 72.64,
-      "network_recv_mb": 334.61,
-      "network_packets_sent": 225971,
-      "network_packets_recv": 474943,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:20:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:20:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.51,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194475.48,
-      "disk_write_mb": 178777.16,
-      "network_sent_mb": 72.69,
-      "network_recv_mb": 334.7,
-      "network_packets_sent": 226150,
-      "network_packets_recv": 475438,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 36
-  },
-  {
-    "timestamp": "2025-12-17 16:20:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:20:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.42,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194475.86,
-      "disk_write_mb": 178800.15,
-      "network_sent_mb": 72.73,
-      "network_recv_mb": 334.76,
-      "network_packets_sent": 226303,
-      "network_packets_recv": 475807,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:21:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:21:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194475.97,
-      "disk_write_mb": 178808.79,
-      "network_sent_mb": 72.81,
-      "network_recv_mb": 334.87,
-      "network_packets_sent": 226525,
-      "network_packets_recv": 476278,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 16:21:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:21:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194476.23,
-      "disk_write_mb": 178822.25,
-      "network_sent_mb": 72.93,
-      "network_recv_mb": 334.95,
-      "network_packets_sent": 226740,
-      "network_packets_recv": 476789,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 16:22:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:22:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.59,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194476.64,
-      "disk_write_mb": 178831.55,
-      "network_sent_mb": 73.05,
-      "network_recv_mb": 335.1,
-      "network_packets_sent": 227015,
-      "network_packets_recv": 477489,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 16:23:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:23:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.41,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194476.8,
-      "disk_write_mb": 178842.56,
-      "network_sent_mb": 73.16,
-      "network_recv_mb": 335.18,
-      "network_packets_sent": 227296,
-      "network_packets_recv": 478119,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 16:23:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:23:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.4,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.66,
-      "disk_read_mb": 194476.95,
-      "disk_write_mb": 178850.21,
-      "network_sent_mb": 73.22,
-      "network_recv_mb": 335.24,
-      "network_packets_sent": 227485,
-      "network_packets_recv": 478552,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.66,
-          "free_gb": 222.28,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 16:24:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:24:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.24,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194489.5,
-      "disk_write_mb": 178901.86,
-      "network_sent_mb": 75.13,
-      "network_recv_mb": 359.24,
-      "network_packets_sent": 242332,
-      "network_packets_recv": 500373,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 16:24:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:24:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.68,
-      "disk_read_mb": 194499.1,
-      "disk_write_mb": 178983.41,
-      "network_sent_mb": 77.62,
-      "network_recv_mb": 398.64,
-      "network_packets_sent": 262533,
-      "network_packets_recv": 534071,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.68,
-          "free_gb": 222.26,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 16:25:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:25:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.88,
-      "swap_usage": 1.3,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.69,
-      "disk_read_mb": 194503.36,
-      "disk_write_mb": 179038.76,
-      "network_sent_mb": 78.42,
-      "network_recv_mb": 414.7,
-      "network_packets_sent": 269455,
-      "network_packets_recv": 548001,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.69,
-          "free_gb": 222.25,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 16:26:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:26:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.69,
-      "disk_read_mb": 194504.77,
-      "disk_write_mb": 179061.93,
-      "network_sent_mb": 78.86,
-      "network_recv_mb": 416.98,
-      "network_packets_sent": 270695,
-      "network_packets_recv": 550800,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.69,
-          "free_gb": 222.25,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 16:26:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:26:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.36,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.69,
-      "disk_read_mb": 194536.13,
-      "disk_write_mb": 179095.36,
-      "network_sent_mb": 79.64,
-      "network_recv_mb": 426.52,
-      "network_packets_sent": 274847,
-      "network_packets_recv": 559624,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.69,
-          "free_gb": 222.24,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 16:27:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:27:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.28,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194538.83,
-      "disk_write_mb": 179163.32,
-      "network_sent_mb": 79.76,
-      "network_recv_mb": 426.72,
-      "network_packets_sent": 275210,
-      "network_packets_recv": 560336,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 16:27:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:27:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194539.28,
-      "disk_write_mb": 179205.8,
-      "network_sent_mb": 79.83,
-      "network_recv_mb": 426.99,
-      "network_packets_sent": 275482,
-      "network_packets_recv": 560899,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 16:28:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:28:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.21,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194539.89,
-      "disk_write_mb": 179215.68,
-      "network_sent_mb": 79.93,
-      "network_recv_mb": 427.48,
-      "network_packets_sent": 275838,
-      "network_packets_recv": 561609,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 16:29:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:29:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194540.21,
-      "disk_write_mb": 179224.05,
-      "network_sent_mb": 80.03,
-      "network_recv_mb": 427.56,
-      "network_packets_sent": 276081,
-      "network_packets_recv": 562167,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 16:29:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.232",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 16:29:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.8,
-      "swap_usage": 1.4,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.67,
-      "disk_read_mb": 194547.72,
-      "disk_write_mb": 179237.14,
-      "network_sent_mb": 80.21,
-      "network_recv_mb": 427.66,
-      "network_packets_sent": 276449,
-      "network_packets_recv": 562834,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 9.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.67,
-          "free_gb": 222.27,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.232",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251217_20.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251217_20.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,9677 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-17 20:06:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:06:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.95,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195254.34,
-      "disk_write_mb": 181571.32,
-      "network_sent_mb": 8.95,
-      "network_recv_mb": 19.28,
-      "network_packets_sent": 25098,
-      "network_packets_recv": 38744,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:07:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:07:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.96,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195254.48,
-      "disk_write_mb": 181613.2,
-      "network_sent_mb": 8.98,
-      "network_recv_mb": 19.31,
-      "network_packets_sent": 25204,
-      "network_packets_recv": 38835,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:08:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:08:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.97,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195255.52,
-      "disk_write_mb": 181643.72,
-      "network_sent_mb": 9.04,
-      "network_recv_mb": 19.42,
-      "network_packets_sent": 25380,
-      "network_packets_recv": 39076,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 20:08:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:08:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.82,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.0,
-      "disk_write_mb": 181671.84,
-      "network_sent_mb": 9.07,
-      "network_recv_mb": 19.45,
-      "network_packets_sent": 25487,
-      "network_packets_recv": 39192,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:09:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:09:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.64,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.07,
-      "disk_write_mb": 181684.39,
-      "network_sent_mb": 9.13,
-      "network_recv_mb": 19.57,
-      "network_packets_sent": 25694,
-      "network_packets_recv": 39456,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 20:10:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:10:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.71,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.46,
-      "disk_write_mb": 181693.86,
-      "network_sent_mb": 9.27,
-      "network_recv_mb": 19.66,
-      "network_packets_sent": 25991,
-      "network_packets_recv": 39944,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 20:10:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:10:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.73,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.48,
-      "disk_write_mb": 181702.01,
-      "network_sent_mb": 9.36,
-      "network_recv_mb": 19.86,
-      "network_packets_sent": 26879,
-      "network_packets_recv": 41540,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 20:11:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:11:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.8,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.56,
-      "disk_write_mb": 181710.3,
-      "network_sent_mb": 9.42,
-      "network_recv_mb": 20.04,
-      "network_packets_sent": 27686,
-      "network_packets_recv": 43078,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:11:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:11:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.64,
-      "disk_write_mb": 181718.95,
-      "network_sent_mb": 9.54,
-      "network_recv_mb": 20.24,
-      "network_packets_sent": 28545,
-      "network_packets_recv": 44650,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 20:12:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:12:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.8,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.64,
-      "disk_write_mb": 181728.77,
-      "network_sent_mb": 9.65,
-      "network_recv_mb": 20.41,
-      "network_packets_sent": 29381,
-      "network_packets_recv": 46170,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 20:13:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:13:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.77,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.71,
-      "disk_write_mb": 181736.59,
-      "network_sent_mb": 9.73,
-      "network_recv_mb": 20.59,
-      "network_packets_sent": 30167,
-      "network_packets_recv": 47670,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 20:13:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:13:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.67,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.71,
-      "disk_write_mb": 181745.86,
-      "network_sent_mb": 9.82,
-      "network_recv_mb": 20.77,
-      "network_packets_sent": 30789,
-      "network_packets_recv": 48759,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:14:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:14:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.77,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.77,
-      "disk_write_mb": 181754.81,
-      "network_sent_mb": 9.88,
-      "network_recv_mb": 20.87,
-      "network_packets_sent": 31034,
-      "network_packets_recv": 49137,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:15:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:15:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.75,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.84,
-      "disk_write_mb": 181764.22,
-      "network_sent_mb": 9.98,
-      "network_recv_mb": 21.07,
-      "network_packets_sent": 31848,
-      "network_packets_recv": 50690,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:15:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:15:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.75,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.84,
-      "disk_write_mb": 181771.61,
-      "network_sent_mb": 10.09,
-      "network_recv_mb": 21.25,
-      "network_packets_sent": 32688,
-      "network_packets_recv": 52200,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 20:16:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:16:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 59.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.66,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195259.91,
-      "disk_write_mb": 181779.75,
-      "network_sent_mb": 10.21,
-      "network_recv_mb": 21.42,
-      "network_packets_sent": 33420,
-      "network_packets_recv": 53480,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:16:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:16:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195260.42,
-      "disk_write_mb": 181873.84,
-      "network_sent_mb": 10.3,
-      "network_recv_mb": 21.57,
-      "network_packets_sent": 33694,
-      "network_packets_recv": 53790,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 20:17:37",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:17:37",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.65,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195260.42,
-      "disk_write_mb": 181914.0,
-      "network_sent_mb": 10.32,
-      "network_recv_mb": 21.6,
-      "network_packets_sent": 33797,
-      "network_packets_recv": 53896,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:18:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:18:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.65,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195260.46,
-      "disk_write_mb": 181916.01,
-      "network_sent_mb": 10.34,
-      "network_recv_mb": 21.62,
-      "network_packets_sent": 33869,
-      "network_packets_recv": 53988,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 20:18:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:18:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195260.46,
-      "disk_write_mb": 181919.26,
-      "network_sent_mb": 10.37,
-      "network_recv_mb": 21.66,
-      "network_packets_sent": 33973,
-      "network_packets_recv": 54096,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.44,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 20:19:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:19:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.89,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195262.38,
-      "disk_write_mb": 181932.28,
-      "network_sent_mb": 10.53,
-      "network_recv_mb": 21.82,
-      "network_packets_sent": 34307,
-      "network_packets_recv": 54497,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:19:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:19:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 74.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.62,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195262.68,
-      "disk_write_mb": 181948.15,
-      "network_sent_mb": 10.66,
-      "network_recv_mb": 22.06,
-      "network_packets_sent": 35100,
-      "network_packets_recv": 55799,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:20:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:20:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.59,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195262.74,
-      "disk_write_mb": 181975.26,
-      "network_sent_mb": 10.8,
-      "network_recv_mb": 22.22,
-      "network_packets_sent": 35555,
-      "network_packets_recv": 56418,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:21:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:21:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.57,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195263.18,
-      "disk_write_mb": 181993.99,
-      "network_sent_mb": 10.92,
-      "network_recv_mb": 22.4,
-      "network_packets_sent": 36294,
-      "network_packets_recv": 57660,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:21:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:21:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 73.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.53,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195263.33,
-      "disk_write_mb": 182004.43,
-      "network_sent_mb": 10.98,
-      "network_recv_mb": 22.45,
-      "network_packets_sent": 36423,
-      "network_packets_recv": 57801,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:22:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:22:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 74.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.67,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195264.92,
-      "disk_write_mb": 182066.59,
-      "network_sent_mb": 11.12,
-      "network_recv_mb": 22.67,
-      "network_packets_sent": 36863,
-      "network_packets_recv": 58319,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 20:23:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:23:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.01,
-      "disk_write_mb": 182095.9,
-      "network_sent_mb": 11.18,
-      "network_recv_mb": 22.74,
-      "network_packets_sent": 37104,
-      "network_packets_recv": 58556,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 20:23:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:23:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.79,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.08,
-      "disk_write_mb": 182105.23,
-      "network_sent_mb": 11.25,
-      "network_recv_mb": 22.78,
-      "network_packets_sent": 37283,
-      "network_packets_recv": 58748,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:24:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:24:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.34,
-      "disk_write_mb": 182121.19,
-      "network_sent_mb": 11.54,
-      "network_recv_mb": 23.04,
-      "network_packets_sent": 37696,
-      "network_packets_recv": 59387,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:24:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:24:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.13,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.56,
-      "disk_write_mb": 182129.77,
-      "network_sent_mb": 11.66,
-      "network_recv_mb": 23.13,
-      "network_packets_sent": 38030,
-      "network_packets_recv": 59801,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:25:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:25:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.08,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.57,
-      "disk_write_mb": 182138.3,
-      "network_sent_mb": 11.7,
-      "network_recv_mb": 23.19,
-      "network_packets_sent": 38144,
-      "network_packets_recv": 59981,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:26:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:26:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.98,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.63,
-      "disk_write_mb": 182145.9,
-      "network_sent_mb": 11.73,
-      "network_recv_mb": 23.22,
-      "network_packets_sent": 38211,
-      "network_packets_recv": 60062,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 20:26:48",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:26:48",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.97,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195265.7,
-      "disk_write_mb": 182153.38,
-      "network_sent_mb": 11.79,
-      "network_recv_mb": 23.27,
-      "network_packets_sent": 38406,
-      "network_packets_recv": 60274,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 20:27:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:27:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.19,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195278.65,
-      "disk_write_mb": 182163.13,
-      "network_sent_mb": 11.89,
-      "network_recv_mb": 23.48,
-      "network_packets_sent": 38775,
-      "network_packets_recv": 60747,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:28:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:28:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 195336.5,
-      "disk_write_mb": 182248.47,
-      "network_sent_mb": 13.33,
-      "network_recv_mb": 32.44,
-      "network_packets_sent": 42688,
-      "network_packets_recv": 69438,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:28:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:28:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 195337.58,
-      "disk_write_mb": 182288.59,
-      "network_sent_mb": 13.59,
-      "network_recv_mb": 33.13,
-      "network_packets_sent": 43237,
-      "network_packets_recv": 70380,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:29:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:29:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.45,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.52,
-      "disk_read_mb": 195338.32,
-      "disk_write_mb": 182304.58,
-      "network_sent_mb": 13.66,
-      "network_recv_mb": 33.45,
-      "network_packets_sent": 43597,
-      "network_packets_recv": 70940,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.52,
-          "free_gb": 222.42,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:29:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:29:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.43,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 195338.57,
-      "disk_write_mb": 182319.04,
-      "network_sent_mb": 13.69,
-      "network_recv_mb": 33.49,
-      "network_packets_sent": 43727,
-      "network_packets_recv": 71132,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 20:30:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:30:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.38,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195339.49,
-      "disk_write_mb": 182328.24,
-      "network_sent_mb": 13.74,
-      "network_recv_mb": 33.58,
-      "network_packets_sent": 43888,
-      "network_packets_recv": 71368,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:31:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:31:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.33,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195339.6,
-      "disk_write_mb": 182337.68,
-      "network_sent_mb": 13.76,
-      "network_recv_mb": 33.6,
-      "network_packets_sent": 43978,
-      "network_packets_recv": 71490,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:31:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:31:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.37,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195339.67,
-      "disk_write_mb": 182345.88,
-      "network_sent_mb": 13.84,
-      "network_recv_mb": 33.72,
-      "network_packets_sent": 44230,
-      "network_packets_recv": 71808,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:32:29",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:32:29",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.55,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195342.3,
-      "disk_write_mb": 182362.21,
-      "network_sent_mb": 14.33,
-      "network_recv_mb": 37.39,
-      "network_packets_sent": 45903,
-      "network_packets_recv": 75273,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:33:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:33:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195344.27,
-      "disk_write_mb": 182380.36,
-      "network_sent_mb": 14.71,
-      "network_recv_mb": 42.73,
-      "network_packets_sent": 47198,
-      "network_packets_recv": 80093,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:33:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:33:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.64,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 195688.44,
-      "disk_write_mb": 182400.5,
-      "network_sent_mb": 15.16,
-      "network_recv_mb": 43.19,
-      "network_packets_sent": 47984,
-      "network_packets_recv": 81057,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:34:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:34:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.58,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 195688.8,
-      "disk_write_mb": 182423.01,
-      "network_sent_mb": 15.3,
-      "network_recv_mb": 43.32,
-      "network_packets_sent": 48254,
-      "network_packets_recv": 81398,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:35:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:35:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.84,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195695.61,
-      "disk_write_mb": 182439.35,
-      "network_sent_mb": 15.5,
-      "network_recv_mb": 43.86,
-      "network_packets_sent": 49064,
-      "network_packets_recv": 82340,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:35:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:35:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195705.22,
-      "disk_write_mb": 182450.67,
-      "network_sent_mb": 15.69,
-      "network_recv_mb": 44.08,
-      "network_packets_sent": 49563,
-      "network_packets_recv": 82876,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:36:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:36:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.76,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195705.28,
-      "disk_write_mb": 182458.61,
-      "network_sent_mb": 15.73,
-      "network_recv_mb": 44.18,
-      "network_packets_sent": 49771,
-      "network_packets_recv": 83132,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 20:36:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:36:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195706.99,
-      "disk_write_mb": 182468.86,
-      "network_sent_mb": 15.8,
-      "network_recv_mb": 44.48,
-      "network_packets_sent": 50040,
-      "network_packets_recv": 83451,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 20:37:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:37:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.76,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195707.31,
-      "disk_write_mb": 182478.54,
-      "network_sent_mb": 15.85,
-      "network_recv_mb": 44.57,
-      "network_packets_sent": 50257,
-      "network_packets_recv": 83686,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 20:38:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:38:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.71,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195707.38,
-      "disk_write_mb": 182486.04,
-      "network_sent_mb": 15.87,
-      "network_recv_mb": 44.6,
-      "network_packets_sent": 50342,
-      "network_packets_recv": 83816,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:38:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:38:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.63,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195709.51,
-      "disk_write_mb": 182494.65,
-      "network_sent_mb": 15.96,
-      "network_recv_mb": 44.77,
-      "network_packets_sent": 50646,
-      "network_packets_recv": 84172,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:39:29",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:39:29",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195713.78,
-      "disk_write_mb": 182524.02,
-      "network_sent_mb": 16.31,
-      "network_recv_mb": 53.25,
-      "network_packets_sent": 52421,
-      "network_packets_recv": 92015,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 20:40:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:40:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.22,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195722.9,
-      "disk_write_mb": 182557.03,
-      "network_sent_mb": 16.5,
-      "network_recv_mb": 55.97,
-      "network_packets_sent": 53125,
-      "network_packets_recv": 94490,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:40:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:40:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195727.1,
-      "disk_write_mb": 182573.79,
-      "network_sent_mb": 16.7,
-      "network_recv_mb": 57.66,
-      "network_packets_sent": 54229,
-      "network_packets_recv": 95893,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 20:41:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:41:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195727.36,
-      "disk_write_mb": 182582.85,
-      "network_sent_mb": 16.74,
-      "network_recv_mb": 57.72,
-      "network_packets_sent": 54382,
-      "network_packets_recv": 96090,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:42:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:42:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195727.45,
-      "disk_write_mb": 182593.17,
-      "network_sent_mb": 16.82,
-      "network_recv_mb": 57.8,
-      "network_packets_sent": 54620,
-      "network_packets_recv": 96326,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:42:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:42:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195727.52,
-      "disk_write_mb": 182600.05,
-      "network_sent_mb": 16.87,
-      "network_recv_mb": 57.84,
-      "network_packets_sent": 54782,
-      "network_packets_recv": 96499,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:43:16",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:43:16",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195727.58,
-      "disk_write_mb": 182607.34,
-      "network_sent_mb": 16.9,
-      "network_recv_mb": 57.88,
-      "network_packets_sent": 54848,
-      "network_packets_recv": 96622,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:43:53",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:43:53",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.91,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195729.34,
-      "disk_write_mb": 182614.44,
-      "network_sent_mb": 16.94,
-      "network_recv_mb": 57.93,
-      "network_packets_sent": 55007,
-      "network_packets_recv": 96798,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 20:44:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:44:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195729.5,
-      "disk_write_mb": 182626.5,
-      "network_sent_mb": 17.09,
-      "network_recv_mb": 59.83,
-      "network_packets_sent": 56092,
-      "network_packets_recv": 98153,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.72,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 20:45:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:45:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195730.57,
-      "disk_write_mb": 182648.73,
-      "network_sent_mb": 17.2,
-      "network_recv_mb": 60.23,
-      "network_packets_sent": 56475,
-      "network_packets_recv": 98610,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-17 20:45:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:45:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.06,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195730.68,
-      "disk_write_mb": 182657.63,
-      "network_sent_mb": 17.25,
-      "network_recv_mb": 60.55,
-      "network_packets_sent": 56740,
-      "network_packets_recv": 98979,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:46:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:46:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.47,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195730.75,
-      "disk_write_mb": 182664.65,
-      "network_sent_mb": 17.3,
-      "network_recv_mb": 60.65,
-      "network_packets_sent": 56920,
-      "network_packets_recv": 99221,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 20:47:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:47:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195730.75,
-      "disk_write_mb": 182671.48,
-      "network_sent_mb": 17.34,
-      "network_recv_mb": 60.68,
-      "network_packets_sent": 57042,
-      "network_packets_recv": 99342,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:47:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:47:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.57,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 195730.89,
-      "disk_write_mb": 182679.5,
-      "network_sent_mb": 17.36,
-      "network_recv_mb": 60.71,
-      "network_packets_sent": 57121,
-      "network_packets_recv": 99447,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 20:48:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:48:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.56,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195731.14,
-      "disk_write_mb": 182686.03,
-      "network_sent_mb": 17.38,
-      "network_recv_mb": 60.74,
-      "network_packets_sent": 57188,
-      "network_packets_recv": 99545,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 20:48:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:48:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.6,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195731.36,
-      "disk_write_mb": 182696.92,
-      "network_sent_mb": 17.5,
-      "network_recv_mb": 61.57,
-      "network_packets_sent": 57798,
-      "network_packets_recv": 100287,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:49:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:49:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.49,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195731.42,
-      "disk_write_mb": 182705.11,
-      "network_sent_mb": 17.53,
-      "network_recv_mb": 61.62,
-      "network_packets_sent": 57928,
-      "network_packets_recv": 100465,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:50:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:50:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.53,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195731.5,
-      "disk_write_mb": 182732.23,
-      "network_sent_mb": 17.6,
-      "network_recv_mb": 61.76,
-      "network_packets_sent": 58174,
-      "network_packets_recv": 100767,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 20:50:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:50:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.44,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195731.57,
-      "disk_write_mb": 182739.52,
-      "network_sent_mb": 17.65,
-      "network_recv_mb": 61.82,
-      "network_packets_sent": 58321,
-      "network_packets_recv": 100961,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 20:51:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:51:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.41,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195732.4,
-      "disk_write_mb": 182746.63,
-      "network_sent_mb": 17.7,
-      "network_recv_mb": 61.88,
-      "network_packets_sent": 58503,
-      "network_packets_recv": 101169,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-17 20:52:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:52:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.54,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195733.18,
-      "disk_write_mb": 182756.85,
-      "network_sent_mb": 17.76,
-      "network_recv_mb": 61.98,
-      "network_packets_sent": 58738,
-      "network_packets_recv": 101411,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 20:52:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:52:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.55,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195733.39,
-      "disk_write_mb": 182771.32,
-      "network_sent_mb": 17.8,
-      "network_recv_mb": 62.04,
-      "network_packets_sent": 58905,
-      "network_packets_recv": 101603,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-17 20:53:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 20:53:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.61,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.49,
-      "disk_read_mb": 195733.96,
-      "disk_write_mb": 182780.95,
-      "network_sent_mb": 17.86,
-      "network_recv_mb": 62.13,
-      "network_packets_sent": 59150,
-      "network_packets_recv": 101875,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.49,
-          "free_gb": 222.45,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251217_21.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251217_21.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3227 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-17 21:20:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:20:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 38.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.47,
-      "disk_read_mb": 195845.74,
-      "disk_write_mb": 182849.58,
-      "network_sent_mb": 18.83,
-      "network_recv_mb": 65.53,
-      "network_packets_sent": 62444,
-      "network_packets_recv": 105463,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.33,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.47,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-17 21:21:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:21:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.21,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195934.96,
-      "disk_write_mb": 182970.24,
-      "network_sent_mb": 19.5,
-      "network_recv_mb": 73.79,
-      "network_packets_sent": 64867,
-      "network_packets_recv": 111920,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:22:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:22:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.94,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195951.7,
-      "disk_write_mb": 183009.82,
-      "network_sent_mb": 19.59,
-      "network_recv_mb": 74.73,
-      "network_packets_sent": 65460,
-      "network_packets_recv": 112609,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:22:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:22:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195952.56,
-      "disk_write_mb": 183021.23,
-      "network_sent_mb": 19.67,
-      "network_recv_mb": 75.03,
-      "network_packets_sent": 65847,
-      "network_packets_recv": 113141,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.36,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 21:23:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:23:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.94,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195952.82,
-      "disk_write_mb": 183031.79,
-      "network_sent_mb": 19.79,
-      "network_recv_mb": 75.31,
-      "network_packets_sent": 66171,
-      "network_packets_recv": 113601,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.37,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:24:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:24:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.85,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195952.83,
-      "disk_write_mb": 183041.33,
-      "network_sent_mb": 19.85,
-      "network_recv_mb": 75.38,
-      "network_packets_sent": 66370,
-      "network_packets_recv": 113815,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.38,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-17 21:24:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:24:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195953.51,
-      "disk_write_mb": 183052.96,
-      "network_sent_mb": 19.9,
-      "network_recv_mb": 75.49,
-      "network_packets_sent": 66607,
-      "network_packets_recv": 114095,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 21:25:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:25:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195953.74,
-      "disk_write_mb": 183066.54,
-      "network_sent_mb": 19.95,
-      "network_recv_mb": 75.6,
-      "network_packets_sent": 66794,
-      "network_packets_recv": 114372,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 40,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 21:26:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:26:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.74,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195953.91,
-      "disk_write_mb": 183076.43,
-      "network_sent_mb": 20.0,
-      "network_recv_mb": 75.71,
-      "network_packets_sent": 67010,
-      "network_packets_recv": 114634,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 21:26:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:26:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.49,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195954.12,
-      "disk_write_mb": 183091.33,
-      "network_sent_mb": 20.07,
-      "network_recv_mb": 75.79,
-      "network_packets_sent": 67268,
-      "network_packets_recv": 114923,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-17 21:27:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:27:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.74,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195962.08,
-      "disk_write_mb": 183110.91,
-      "network_sent_mb": 20.65,
-      "network_recv_mb": 77.85,
-      "network_packets_sent": 68749,
-      "network_packets_recv": 117347,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.44,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 39,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 21:28:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:28:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195962.97,
-      "disk_write_mb": 183125.98,
-      "network_sent_mb": 21.24,
-      "network_recv_mb": 78.64,
-      "network_packets_sent": 69895,
-      "network_packets_recv": 118714,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-17 21:28:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:28:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195963.17,
-      "disk_write_mb": 183136.53,
-      "network_sent_mb": 21.31,
-      "network_recv_mb": 78.77,
-      "network_packets_sent": 70163,
-      "network_packets_recv": 119041,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.47,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-17 21:29:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:29:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.7,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195963.22,
-      "disk_write_mb": 183146.24,
-      "network_sent_mb": 21.36,
-      "network_recv_mb": 78.86,
-      "network_packets_sent": 70369,
-      "network_packets_recv": 119313,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 38,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:29:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:29:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195963.53,
-      "disk_write_mb": 183156.15,
-      "network_sent_mb": 21.4,
-      "network_recv_mb": 78.97,
-      "network_packets_sent": 70578,
-      "network_packets_recv": 119616,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-17 21:30:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:30:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.67,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195963.55,
-      "disk_write_mb": 183165.34,
-      "network_sent_mb": 21.44,
-      "network_recv_mb": 79.05,
-      "network_packets_sent": 70737,
-      "network_packets_recv": 119836,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-17 21:31:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:31:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.42,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195963.98,
-      "disk_write_mb": 183177.89,
-      "network_sent_mb": 21.51,
-      "network_recv_mb": 79.18,
-      "network_packets_sent": 71059,
-      "network_packets_recv": 120197,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 37,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 21:31:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:31:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.42,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195964.11,
-      "disk_write_mb": 183187.33,
-      "network_sent_mb": 21.55,
-      "network_recv_mb": 79.25,
-      "network_packets_sent": 71242,
-      "network_packets_recv": 120446,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 21:32:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:32:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.48,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195965.6,
-      "disk_write_mb": 183201.37,
-      "network_sent_mb": 21.62,
-      "network_recv_mb": 79.34,
-      "network_packets_sent": 71466,
-      "network_packets_recv": 120693,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-17 21:33:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:33:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.51,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195966.8,
-      "disk_write_mb": 183222.28,
-      "network_sent_mb": 21.75,
-      "network_recv_mb": 79.78,
-      "network_packets_sent": 71974,
-      "network_packets_recv": 121355,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 36,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 41
-  },
-  {
-    "timestamp": "2025-12-17 21:33:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:33:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 31.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.5,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195971.9,
-      "disk_write_mb": 183238.32,
-      "network_sent_mb": 21.91,
-      "network_recv_mb": 80.36,
-      "network_packets_sent": 72526,
-      "network_packets_recv": 122121,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:34:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:34:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.86,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195972.11,
-      "disk_write_mb": 183249.5,
-      "network_sent_mb": 21.97,
-      "network_recv_mb": 80.42,
-      "network_packets_sent": 72711,
-      "network_packets_recv": 122331,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-17 21:35:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:35:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 75.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.86,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195972.27,
-      "disk_write_mb": 183264.33,
-      "network_sent_mb": 22.0,
-      "network_recv_mb": 80.48,
-      "network_packets_sent": 72845,
-      "network_packets_recv": 122513,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.56,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-17 21:35:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:35:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.83,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195972.37,
-      "disk_write_mb": 183272.2,
-      "network_sent_mb": 22.08,
-      "network_recv_mb": 80.63,
-      "network_packets_sent": 73138,
-      "network_packets_recv": 122848,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 35,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-17 21:36:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.0.29",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-17 21:36:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 75.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.76,
-      "swap_usage": 1.6,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.46,
-      "disk_read_mb": 195972.49,
-      "disk_write_mb": 183279.15,
-      "network_sent_mb": 22.11,
-      "network_recv_mb": 80.67,
-      "network_packets_sent": 73259,
-      "network_packets_recv": 123000,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 14.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.46,
-          "free_gb": 222.48,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.0.29",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 34,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251218_12.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251218_12.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,574 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-18 03:24:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "127.0.0.1",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 03:24:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 98.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.35,
-      "swap_usage": 1.6,
-      "disk_usage": 55.2,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 262.85,
-      "disk_read_mb": 196011.46,
-      "disk_write_mb": 183351.21,
-      "network_sent_mb": 22.11,
-      "network_recv_mb": 80.67,
-      "network_packets_sent": 73259,
-      "network_packets_recv": 123000,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 5.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 262.85,
-          "free_gb": 213.09,
-          "percent_used": 55.2
-        }
-      ],
-      "network_interfaces": {
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.226.147",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 29,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 12:36:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 12:36:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.34,
-      "swap_usage": 1.5,
-      "disk_usage": 53.3,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.48,
-      "disk_read_mb": 196793.26,
-      "disk_write_mb": 183540.74,
-      "network_sent_mb": 22.73,
-      "network_recv_mb": 82.86,
-      "network_packets_sent": 75600,
-      "network_packets_recv": 125377,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 5.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.48,
-          "free_gb": 222.46,
-          "percent_used": 53.3
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 12:37:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 12:37:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 79.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.4,
-      "swap_usage": 1.5,
-      "disk_usage": 53.2,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.42,
-      "disk_read_mb": 196950.38,
-      "disk_write_mb": 183633.22,
-      "network_sent_mb": 23.26,
-      "network_recv_mb": 84.22,
-      "network_packets_sent": 76416,
-      "network_packets_recv": 126434,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 5.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.42,
-          "free_gb": 222.52,
-          "percent_used": 53.2
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 28,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 12:37:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 12:37:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 79.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.48,
-      "swap_usage": 1.5,
-      "disk_usage": 53.2,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.42,
-      "disk_read_mb": 197148.29,
-      "disk_write_mb": 183673.93,
-      "network_sent_mb": 23.32,
-      "network_recv_mb": 84.44,
-      "network_packets_sent": 76606,
-      "network_packets_recv": 126675,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 5.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.42,
-          "free_gb": 222.52,
-          "percent_used": 53.2
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 12:38:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.1.13",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 12:38:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 36.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 80.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.56,
-      "swap_usage": 1.6,
-      "disk_usage": 53.2,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.42,
-      "disk_read_mb": 197166.05,
-      "disk_write_mb": 183721.13,
-      "network_sent_mb": 23.53,
-      "network_recv_mb": 84.9,
-      "network_packets_sent": 77215,
-      "network_packets_recv": 127317,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 5.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.42,
-          "free_gb": 222.52,
-          "percent_used": 53.2
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.1.13",
-            "netmask": "255.255.255.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 27,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251218_17.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251218_17.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,1550 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-18 17:52:01",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:52:01",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.27,
-      "swap_usage": 1.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203195.57,
-      "disk_write_mb": 187865.99,
-      "network_sent_mb": 7.84,
-      "network_recv_mb": 31.43,
-      "network_packets_sent": 25192,
-      "network_packets_recv": 47877,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 17:52:40",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:52:40",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.2,
-      "swap_usage": 1.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203197.78,
-      "disk_write_mb": 187928.42,
-      "network_sent_mb": 7.88,
-      "network_recv_mb": 31.49,
-      "network_packets_sent": 25301,
-      "network_packets_recv": 48238,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-18 17:53:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:53:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.2,
-      "swap_usage": 1.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203202.07,
-      "disk_write_mb": 187939.17,
-      "network_sent_mb": 7.9,
-      "network_recv_mb": 31.53,
-      "network_packets_sent": 25377,
-      "network_packets_recv": 48550,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 71,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 40
-  },
-  {
-    "timestamp": "2025-12-18 17:53:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:53:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.19,
-      "swap_usage": 1.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203203.21,
-      "disk_write_mb": 187950.06,
-      "network_sent_mb": 7.93,
-      "network_recv_mb": 31.57,
-      "network_packets_sent": 25466,
-      "network_packets_recv": 48851,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-18 17:54:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:54:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.19,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203208.68,
-      "disk_write_mb": 187967.29,
-      "network_sent_mb": 8.2,
-      "network_recv_mb": 31.94,
-      "network_packets_sent": 25907,
-      "network_packets_recv": 49432,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-18 17:55:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:55:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203212.1,
-      "disk_write_mb": 187980.88,
-      "network_sent_mb": 8.23,
-      "network_recv_mb": 31.98,
-      "network_packets_sent": 25984,
-      "network_packets_recv": 49759,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  },
-  {
-    "timestamp": "2025-12-18 17:55:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:55:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203213.73,
-      "disk_write_mb": 187990.83,
-      "network_sent_mb": 8.27,
-      "network_recv_mb": 32.03,
-      "network_packets_sent": 26069,
-      "network_packets_recv": 50058,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 70,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 38
-  },
-  {
-    "timestamp": "2025-12-18 17:56:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:56:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203213.73,
-      "disk_write_mb": 187993.06,
-      "network_sent_mb": 8.29,
-      "network_recv_mb": 32.07,
-      "network_packets_sent": 26130,
-      "network_packets_recv": 50291,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-18 17:56:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:56:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203213.73,
-      "disk_write_mb": 187995.99,
-      "network_sent_mb": 8.3,
-      "network_recv_mb": 32.09,
-      "network_packets_sent": 26209,
-      "network_packets_recv": 50503,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-18 17:57:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:57:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203213.79,
-      "disk_write_mb": 187998.77,
-      "network_sent_mb": 8.33,
-      "network_recv_mb": 32.13,
-      "network_packets_sent": 26285,
-      "network_packets_recv": 50747,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-18 17:58:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:58:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 2.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203213.79,
-      "disk_write_mb": 188000.89,
-      "network_sent_mb": 8.35,
-      "network_recv_mb": 32.16,
-      "network_packets_sent": 26343,
-      "network_packets_recv": 50950,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-18 17:58:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 17:58:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203214.38,
-      "disk_write_mb": 188003.1,
-      "network_sent_mb": 8.38,
-      "network_recv_mb": 32.2,
-      "network_packets_sent": 26448,
-      "network_packets_recv": 51150,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 10.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 39
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251218_18.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251218_18.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,11870 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-18 18:08:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:08:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.36,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203263.91,
-      "disk_write_mb": 188060.59,
-      "network_sent_mb": 8.71,
-      "network_recv_mb": 32.78,
-      "network_packets_sent": 27452,
-      "network_packets_recv": 52286,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.13,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 69,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:09:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:09:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203264.05,
-      "disk_write_mb": 188065.75,
-      "network_sent_mb": 8.73,
-      "network_recv_mb": 32.82,
-      "network_packets_sent": 27516,
-      "network_packets_recv": 52512,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.14,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:09:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:09:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 30.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.54,
-      "swap_usage": 1.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203276.63,
-      "disk_write_mb": 188092.22,
-      "network_sent_mb": 9.04,
-      "network_recv_mb": 33.38,
-      "network_packets_sent": 28288,
-      "network_packets_recv": 53531,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.15,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.83,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:10:38",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:10:38",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.29,
-      "swap_usage": 5.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.14,
-      "disk_read_mb": 203341.83,
-      "disk_write_mb": 188820.27,
-      "network_sent_mb": 10.28,
-      "network_recv_mb": 37.24,
-      "network_packets_sent": 30858,
-      "network_packets_recv": 57918,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.16,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.14,
-          "free_gb": 221.8,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 68,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:11:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:11:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.04,
-      "swap_usage": 6.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.14,
-      "disk_read_mb": 203343.88,
-      "disk_write_mb": 188897.17,
-      "network_sent_mb": 10.53,
-      "network_recv_mb": 37.48,
-      "network_packets_sent": 31324,
-      "network_packets_recv": 58656,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.17,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.14,
-          "free_gb": 221.8,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:11:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:11:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.04,
-      "swap_usage": 6.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203346.06,
-      "disk_write_mb": 188914.59,
-      "network_sent_mb": 10.59,
-      "network_recv_mb": 37.66,
-      "network_packets_sent": 31507,
-      "network_packets_recv": 59099,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.18,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 67,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:12:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:12:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 6.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203423.86,
-      "disk_write_mb": 188955.24,
-      "network_sent_mb": 10.68,
-      "network_recv_mb": 38.1,
-      "network_packets_sent": 32005,
-      "network_packets_recv": 59904,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.19,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:13:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:13:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 6.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 203461.18,
-      "disk_write_mb": 188969.54,
-      "network_sent_mb": 10.72,
-      "network_recv_mb": 38.18,
-      "network_packets_sent": 32206,
-      "network_packets_recv": 60272,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.2,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-18 18:13:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:13:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 5.9,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203484.59,
-      "disk_write_mb": 188980.39,
-      "network_sent_mb": 10.76,
-      "network_recv_mb": 38.22,
-      "network_packets_sent": 32290,
-      "network_packets_recv": 60557,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.21,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 42
-  },
-  {
-    "timestamp": "2025-12-18 18:14:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:14:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.21,
-      "swap_usage": 5.9,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 203710.88,
-      "disk_write_mb": 189007.17,
-      "network_sent_mb": 10.83,
-      "network_recv_mb": 38.69,
-      "network_packets_sent": 32593,
-      "network_packets_recv": 61270,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.22,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 66,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:14:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:14:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.38,
-      "swap_usage": 5.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 204311.88,
-      "disk_write_mb": 189021.91,
-      "network_sent_mb": 10.9,
-      "network_recv_mb": 38.79,
-      "network_packets_sent": 32777,
-      "network_packets_recv": 61729,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.23,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:15:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:15:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.42,
-      "swap_usage": 5.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 204642.89,
-      "disk_write_mb": 189034.92,
-      "network_sent_mb": 10.94,
-      "network_recv_mb": 38.9,
-      "network_packets_sent": 32934,
-      "network_packets_recv": 62222,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.24,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 18:16:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:16:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 5.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 204977.42,
-      "disk_write_mb": 189046.07,
-      "network_sent_mb": 11.0,
-      "network_recv_mb": 39.05,
-      "network_packets_sent": 33113,
-      "network_packets_recv": 62728,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.25,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 65,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 18:16:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:16:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 5.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 204978.17,
-      "disk_write_mb": 189057.63,
-      "network_sent_mb": 11.07,
-      "network_recv_mb": 39.19,
-      "network_packets_sent": 33301,
-      "network_packets_recv": 63230,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.26,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 18:17:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:17:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.33,
-      "swap_usage": 5.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205027.49,
-      "disk_write_mb": 189070.01,
-      "network_sent_mb": 11.16,
-      "network_recv_mb": 39.37,
-      "network_packets_sent": 33562,
-      "network_packets_recv": 63821,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.27,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 18:18:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:18:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.38,
-      "swap_usage": 5.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205209.69,
-      "disk_write_mb": 189080.7,
-      "network_sent_mb": 11.19,
-      "network_recv_mb": 39.43,
-      "network_packets_sent": 33645,
-      "network_packets_recv": 64191,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.28,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 64,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 18:18:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:18:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 5.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205431.64,
-      "disk_write_mb": 189096.43,
-      "network_sent_mb": 11.28,
-      "network_recv_mb": 39.83,
-      "network_packets_sent": 33924,
-      "network_packets_recv": 64905,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.29,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 18:19:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:19:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.17,
-      "swap_usage": 5.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205668.86,
-      "disk_write_mb": 189107.96,
-      "network_sent_mb": 11.32,
-      "network_recv_mb": 39.9,
-      "network_packets_sent": 34031,
-      "network_packets_recv": 65295,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.3,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:20:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:20:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 5.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205668.93,
-      "disk_write_mb": 189115.38,
-      "network_sent_mb": 11.33,
-      "network_recv_mb": 39.93,
-      "network_packets_sent": 34074,
-      "network_packets_recv": 65642,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.31,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 63,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 18:20:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:20:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 5.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205669.06,
-      "disk_write_mb": 189122.76,
-      "network_sent_mb": 11.39,
-      "network_recv_mb": 39.99,
-      "network_packets_sent": 34206,
-      "network_packets_recv": 66019,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.32,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 18:21:20",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:21:20",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 5.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205669.19,
-      "disk_write_mb": 189132.33,
-      "network_sent_mb": 11.44,
-      "network_recv_mb": 40.08,
-      "network_packets_sent": 34356,
-      "network_packets_recv": 66452,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.34,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 18:21:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:21:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.12,
-      "swap_usage": 5.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205676.75,
-      "disk_write_mb": 189139.85,
-      "network_sent_mb": 11.47,
-      "network_recv_mb": 40.19,
-      "network_packets_sent": 34493,
-      "network_packets_recv": 66930,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.35,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:24:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:24:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 78.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.63,
-      "swap_usage": 5.0,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205715.13,
-      "disk_write_mb": 189165.75,
-      "network_sent_mb": 11.71,
-      "network_recv_mb": 40.64,
-      "network_packets_sent": 35222,
-      "network_packets_recv": 68079,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.39,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 62,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:25:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:25:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.73,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205765.47,
-      "disk_write_mb": 189209.01,
-      "network_sent_mb": 12.18,
-      "network_recv_mb": 40.96,
-      "network_packets_sent": 36140,
-      "network_packets_recv": 69038,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.4,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-18 18:26:03",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:26:03",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.12,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205766.27,
-      "disk_write_mb": 189231.3,
-      "network_sent_mb": 12.45,
-      "network_recv_mb": 41.1,
-      "network_packets_sent": 36465,
-      "network_packets_recv": 69745,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.41,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 61,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 18:26:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:26:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 77.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.1,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205767.47,
-      "disk_write_mb": 189240.22,
-      "network_sent_mb": 12.57,
-      "network_recv_mb": 41.2,
-      "network_packets_sent": 36779,
-      "network_packets_recv": 70451,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.42,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 44
-  },
-  {
-    "timestamp": "2025-12-18 18:27:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:27:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.13,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205767.76,
-      "disk_write_mb": 189250.61,
-      "network_sent_mb": 12.76,
-      "network_recv_mb": 41.27,
-      "network_packets_sent": 36931,
-      "network_packets_recv": 71043,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.43,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 35
-  },
-  {
-    "timestamp": "2025-12-18 18:27:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:27:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.05,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205769.89,
-      "disk_write_mb": 189267.79,
-      "network_sent_mb": 13.12,
-      "network_recv_mb": 41.33,
-      "network_packets_sent": 37067,
-      "network_packets_recv": 71706,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.45,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 60,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-18 18:28:35",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:28:35",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.05,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.1,
-      "disk_read_mb": 205769.98,
-      "disk_write_mb": 189278.89,
-      "network_sent_mb": 13.46,
-      "network_recv_mb": 41.39,
-      "network_packets_sent": 37178,
-      "network_packets_recv": 72410,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.46,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.1,
-          "free_gb": 221.84,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 37
-  },
-  {
-    "timestamp": "2025-12-18 18:29:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:29:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 42.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.83,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.99,
-      "disk_read_mb": 205833.35,
-      "disk_write_mb": 189416.36,
-      "network_sent_mb": 15.09,
-      "network_recv_mb": 54.24,
-      "network_packets_sent": 43990,
-      "network_packets_recv": 81686,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.47,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.99,
-          "free_gb": 221.95,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 59,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:29:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:29:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.95,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.98,
-      "disk_read_mb": 205845.46,
-      "disk_write_mb": 189481.65,
-      "network_sent_mb": 15.96,
-      "network_recv_mb": 58.16,
-      "network_packets_sent": 46564,
-      "network_packets_recv": 86247,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.48,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.98,
-          "free_gb": 221.96,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:30:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:30:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 23.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.38,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 253.99,
-      "disk_read_mb": 205852.63,
-      "disk_write_mb": 189526.88,
-      "network_sent_mb": 17.78,
-      "network_recv_mb": 63.26,
-      "network_packets_sent": 50855,
-      "network_packets_recv": 92214,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.49,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 253.99,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 58,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:31:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:31:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 47.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.98,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205869.3,
-      "disk_write_mb": 189565.09,
-      "network_sent_mb": 18.84,
-      "network_recv_mb": 68.88,
-      "network_packets_sent": 53984,
-      "network_packets_recv": 97142,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.5,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:31:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:31:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.92,
-      "swap_usage": 4.8,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205887.89,
-      "disk_write_mb": 189603.34,
-      "network_sent_mb": 20.07,
-      "network_recv_mb": 75.96,
-      "network_packets_sent": 57466,
-      "network_packets_recv": 102694,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.51,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:32:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:32:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205910.75,
-      "disk_write_mb": 189622.09,
-      "network_sent_mb": 20.74,
-      "network_recv_mb": 77.2,
-      "network_packets_sent": 58948,
-      "network_packets_recv": 105495,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.52,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 57,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:33:10",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:33:10",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.35,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205913.6,
-      "disk_write_mb": 189648.88,
-      "network_sent_mb": 21.38,
-      "network_recv_mb": 78.37,
-      "network_packets_sent": 60547,
-      "network_packets_recv": 108554,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.53,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:33:49",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:33:49",
-      "is_sysmon_available": false,
-      "cpu_usage": 28.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.48,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205916.7,
-      "disk_write_mb": 189666.82,
-      "network_sent_mb": 21.66,
-      "network_recv_mb": 78.63,
-      "network_packets_sent": 61360,
-      "network_packets_recv": 110223,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.54,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 56,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:34:29",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:34:29",
-      "is_sysmon_available": false,
-      "cpu_usage": 32.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.45,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205918.5,
-      "disk_write_mb": 189677.87,
-      "network_sent_mb": 22.05,
-      "network_recv_mb": 79.46,
-      "network_packets_sent": 62348,
-      "network_packets_recv": 112279,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.55,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:35:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:35:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 35.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.56,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205918.77,
-      "disk_write_mb": 189689.59,
-      "network_sent_mb": 22.27,
-      "network_recv_mb": 80.38,
-      "network_packets_sent": 63590,
-      "network_packets_recv": 114519,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.57,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:35:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:35:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 36.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205920.12,
-      "disk_write_mb": 189707.5,
-      "network_sent_mb": 22.46,
-      "network_recv_mb": 80.5,
-      "network_packets_sent": 63840,
-      "network_packets_recv": 115095,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.58,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 55,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:36:29",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:36:29",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205921.92,
-      "disk_write_mb": 189794.47,
-      "network_sent_mb": 22.56,
-      "network_recv_mb": 80.66,
-      "network_packets_sent": 64090,
-      "network_packets_recv": 115681,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.59,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:37:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:37:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205923.99,
-      "disk_write_mb": 189820.09,
-      "network_sent_mb": 22.6,
-      "network_recv_mb": 80.7,
-      "network_packets_sent": 64231,
-      "network_packets_recv": 116030,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.6,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 54,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:37:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:37:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.22,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205931.38,
-      "disk_write_mb": 189840.12,
-      "network_sent_mb": 22.88,
-      "network_recv_mb": 82.41,
-      "network_packets_sent": 65240,
-      "network_packets_recv": 117879,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.61,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:38:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:38:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205931.53,
-      "disk_write_mb": 189867.61,
-      "network_sent_mb": 22.96,
-      "network_recv_mb": 82.5,
-      "network_packets_sent": 65416,
-      "network_packets_recv": 118259,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.62,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:38:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:38:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.97,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205933.0,
-      "disk_write_mb": 189878.09,
-      "network_sent_mb": 23.02,
-      "network_recv_mb": 82.56,
-      "network_packets_sent": 65609,
-      "network_packets_recv": 118624,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.63,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:39:37",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:39:37",
-      "is_sysmon_available": false,
-      "cpu_usage": 25.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.21,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.0,
-      "disk_read_mb": 205934.04,
-      "disk_write_mb": 189890.93,
-      "network_sent_mb": 23.32,
-      "network_recv_mb": 82.93,
-      "network_packets_sent": 66587,
-      "network_packets_recv": 120483,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.64,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.0,
-          "free_gb": 221.94,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 53,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:40:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:40:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.09,
-      "swap_usage": 4.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.03,
-      "disk_read_mb": 205934.96,
-      "disk_write_mb": 189915.66,
-      "network_sent_mb": 23.68,
-      "network_recv_mb": 85.25,
-      "network_packets_sent": 68621,
-      "network_packets_recv": 123602,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.65,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.03,
-          "free_gb": 221.91,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:40:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:40:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 205935.17,
-      "disk_write_mb": 189931.93,
-      "network_sent_mb": 23.87,
-      "network_recv_mb": 85.55,
-      "network_packets_sent": 69693,
-      "network_packets_recv": 125630,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.66,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.9,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 52,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:41:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:41:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.12,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 205936.74,
-      "disk_write_mb": 189942.35,
-      "network_sent_mb": 24.15,
-      "network_recv_mb": 85.89,
-      "network_packets_sent": 70683,
-      "network_packets_recv": 127663,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.67,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.9,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:42:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:42:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 205937.11,
-      "disk_write_mb": 189954.74,
-      "network_sent_mb": 24.53,
-      "network_recv_mb": 87.21,
-      "network_packets_sent": 72136,
-      "network_packets_recv": 130282,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.68,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.9,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 51,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:42:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:42:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.2,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 205937.38,
-      "disk_write_mb": 189965.13,
-      "network_sent_mb": 24.66,
-      "network_recv_mb": 87.48,
-      "network_packets_sent": 73082,
-      "network_packets_recv": 132213,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.69,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:43:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:43:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 11.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 205938.12,
-      "disk_write_mb": 189973.64,
-      "network_sent_mb": 24.77,
-      "network_recv_mb": 87.69,
-      "network_packets_sent": 73843,
-      "network_packets_recv": 133762,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.7,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:44:07",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:44:07",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.81,
-      "swap_usage": 4.7,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205961.0,
-      "disk_write_mb": 190027.86,
-      "network_sent_mb": 26.24,
-      "network_recv_mb": 99.47,
-      "network_packets_sent": 79919,
-      "network_packets_recv": 146651,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.71,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 50,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:44:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:44:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 19.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 86.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.53,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205985.3,
-      "disk_write_mb": 190067.6,
-      "network_sent_mb": 26.7,
-      "network_recv_mb": 100.55,
-      "network_packets_sent": 81830,
-      "network_packets_recv": 149777,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.73,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:45:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:45:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205985.61,
-      "disk_write_mb": 190079.23,
-      "network_sent_mb": 26.82,
-      "network_recv_mb": 100.75,
-      "network_packets_sent": 82718,
-      "network_packets_recv": 151472,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.74,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 49,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:46:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:46:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.98,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205986.18,
-      "disk_write_mb": 190091.0,
-      "network_sent_mb": 27.03,
-      "network_recv_mb": 101.03,
-      "network_packets_sent": 83752,
-      "network_packets_recv": 153416,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:46:39",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:46:39",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205987.54,
-      "disk_write_mb": 190112.6,
-      "network_sent_mb": 27.91,
-      "network_recv_mb": 101.91,
-      "network_packets_sent": 85158,
-      "network_packets_recv": 155773,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:47:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:47:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205987.98,
-      "disk_write_mb": 190127.89,
-      "network_sent_mb": 28.56,
-      "network_recv_mb": 103.34,
-      "network_packets_sent": 86189,
-      "network_packets_recv": 157471,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 48,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:47:56",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:47:56",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.04,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205995.08,
-      "disk_write_mb": 190210.97,
-      "network_sent_mb": 28.68,
-      "network_recv_mb": 103.45,
-      "network_packets_sent": 86535,
-      "network_packets_recv": 158132,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:48:31",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:48:31",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 205998.09,
-      "disk_write_mb": 190268.32,
-      "network_sent_mb": 28.77,
-      "network_recv_mb": 103.68,
-      "network_packets_sent": 86865,
-      "network_packets_recv": 158728,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:49:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:49:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.19,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206006.67,
-      "disk_write_mb": 190281.32,
-      "network_sent_mb": 28.93,
-      "network_recv_mb": 103.82,
-      "network_packets_sent": 87271,
-      "network_packets_recv": 159355,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 47,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:49:47",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:49:47",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.13,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206007.12,
-      "disk_write_mb": 190291.99,
-      "network_sent_mb": 29.05,
-      "network_recv_mb": 104.01,
-      "network_packets_sent": 88064,
-      "network_packets_recv": 160793,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:50:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:50:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206009.74,
-      "disk_write_mb": 190303.11,
-      "network_sent_mb": 29.16,
-      "network_recv_mb": 104.17,
-      "network_packets_sent": 88765,
-      "network_packets_recv": 162104,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:50:24",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:50:24",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.07,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206015.69,
-      "disk_write_mb": 190303.37,
-      "network_sent_mb": 29.16,
-      "network_recv_mb": 104.17,
-      "network_packets_sent": 88772,
-      "network_packets_recv": 162128,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 46,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:51:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:51:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 33.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206020.88,
-      "disk_write_mb": 190335.1,
-      "network_sent_mb": 29.28,
-      "network_recv_mb": 104.28,
-      "network_packets_sent": 89186,
-      "network_packets_recv": 162781,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:51:00",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:51:00",
-      "is_sysmon_available": false,
-      "cpu_usage": 24.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.1,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206020.94,
-      "disk_write_mb": 190335.23,
-      "network_sent_mb": 29.28,
-      "network_recv_mb": 104.53,
-      "network_packets_sent": 89206,
-      "network_packets_recv": 162884,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:51:42",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:51:42",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206022.57,
-      "disk_write_mb": 190379.76,
-      "network_sent_mb": 29.36,
-      "network_recv_mb": 104.76,
-      "network_packets_sent": 89477,
-      "network_packets_recv": 163468,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:51:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:51:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206022.57,
-      "disk_write_mb": 190379.8,
-      "network_sent_mb": 29.36,
-      "network_recv_mb": 104.76,
-      "network_packets_sent": 89479,
-      "network_packets_recv": 163478,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:52:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:52:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 57.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206028.66,
-      "disk_write_mb": 190427.76,
-      "network_sent_mb": 29.42,
-      "network_recv_mb": 104.88,
-      "network_packets_sent": 89733,
-      "network_packets_recv": 163995,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:52:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:52:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 41.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.11,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206028.66,
-      "disk_write_mb": 190427.76,
-      "network_sent_mb": 29.42,
-      "network_recv_mb": 104.88,
-      "network_packets_sent": 89733,
-      "network_packets_recv": 163992,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 45,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:52:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:52:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206030.77,
-      "disk_write_mb": 190500.92,
-      "network_sent_mb": 29.46,
-      "network_recv_mb": 105.06,
-      "network_packets_sent": 89943,
-      "network_packets_recv": 164540,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:52:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:52:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.96,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206030.77,
-      "disk_write_mb": 190500.92,
-      "network_sent_mb": 29.46,
-      "network_recv_mb": 105.06,
-      "network_packets_sent": 89943,
-      "network_packets_recv": 164542,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:53:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:53:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.94,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206031.7,
-      "disk_write_mb": 190511.51,
-      "network_sent_mb": 29.57,
-      "network_recv_mb": 105.23,
-      "network_packets_sent": 90437,
-      "network_packets_recv": 165395,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:53:37",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:53:37",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.93,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206031.7,
-      "disk_write_mb": 190511.51,
-      "network_sent_mb": 29.57,
-      "network_recv_mb": 105.23,
-      "network_packets_sent": 90442,
-      "network_packets_recv": 165406,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 44,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:54:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:54:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206036.27,
-      "disk_write_mb": 190521.17,
-      "network_sent_mb": 29.66,
-      "network_recv_mb": 105.67,
-      "network_packets_sent": 91358,
-      "network_packets_recv": 167221,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:54:15",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:54:15",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206036.27,
-      "disk_write_mb": 190521.17,
-      "network_sent_mb": 29.66,
-      "network_recv_mb": 105.68,
-      "network_packets_sent": 91375,
-      "network_packets_recv": 167257,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:54:53",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:54:53",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.06,
-      "disk_read_mb": 206038.84,
-      "disk_write_mb": 190532.49,
-      "network_sent_mb": 29.99,
-      "network_recv_mb": 105.9,
-      "network_packets_sent": 92295,
-      "network_packets_recv": 168640,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.06,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:54:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:54:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.37,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.06,
-      "disk_read_mb": 206038.84,
-      "disk_write_mb": 190532.94,
-      "network_sent_mb": 29.99,
-      "network_recv_mb": 105.9,
-      "network_packets_sent": 92295,
-      "network_packets_recv": 168648,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.06,
-          "free_gb": 221.88,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 18:55:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:55:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206039.7,
-      "disk_write_mb": 190546.25,
-      "network_sent_mb": 30.1,
-      "network_recv_mb": 106.05,
-      "network_packets_sent": 92639,
-      "network_packets_recv": 169287,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:55:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:55:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.3,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206039.7,
-      "disk_write_mb": 190546.25,
-      "network_sent_mb": 30.11,
-      "network_recv_mb": 106.06,
-      "network_packets_sent": 92646,
-      "network_packets_recv": 169297,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 43,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:56:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:56:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206040.56,
-      "disk_write_mb": 190568.89,
-      "network_sent_mb": 30.25,
-      "network_recv_mb": 106.23,
-      "network_packets_sent": 93293,
-      "network_packets_recv": 170612,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:56:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:56:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206040.67,
-      "disk_write_mb": 190568.89,
-      "network_sent_mb": 30.25,
-      "network_recv_mb": 106.23,
-      "network_packets_sent": 93300,
-      "network_packets_recv": 170625,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:56:50",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:56:50",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 206044.45,
-      "disk_write_mb": 190579.59,
-      "network_sent_mb": 30.37,
-      "network_recv_mb": 106.41,
-      "network_packets_sent": 93973,
-      "network_packets_recv": 171989,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:56:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:56:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.04,
-      "disk_read_mb": 206044.45,
-      "disk_write_mb": 190579.64,
-      "network_sent_mb": 30.37,
-      "network_recv_mb": 106.41,
-      "network_packets_sent": 93975,
-      "network_packets_recv": 171992,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.04,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:57:25",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:57:25",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206044.79,
-      "disk_write_mb": 190590.8,
-      "network_sent_mb": 30.47,
-      "network_recv_mb": 106.53,
-      "network_packets_sent": 94379,
-      "network_packets_recv": 172795,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:57:26",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:57:26",
-      "is_sysmon_available": false,
-      "cpu_usage": 18.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206044.79,
-      "disk_write_mb": 190590.8,
-      "network_sent_mb": 30.47,
-      "network_recv_mb": 106.53,
-      "network_packets_sent": 94386,
-      "network_packets_recv": 172808,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 42,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:58:04",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:58:04",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.98,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206045.16,
-      "disk_write_mb": 190598.91,
-      "network_sent_mb": 30.54,
-      "network_recv_mb": 106.67,
-      "network_packets_sent": 95039,
-      "network_packets_recv": 174184,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:58:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:58:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.98,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206045.16,
-      "disk_write_mb": 190598.91,
-      "network_sent_mb": 30.54,
-      "network_recv_mb": 106.67,
-      "network_packets_sent": 95040,
-      "network_packets_recv": 174184,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:58:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:58:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206045.37,
-      "disk_write_mb": 190607.89,
-      "network_sent_mb": 30.58,
-      "network_recv_mb": 106.72,
-      "network_packets_sent": 95234,
-      "network_packets_recv": 174643,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:58:43",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:58:43",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.99,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206045.37,
-      "disk_write_mb": 190607.89,
-      "network_sent_mb": 30.58,
-      "network_recv_mb": 106.72,
-      "network_packets_sent": 95234,
-      "network_packets_recv": 174645,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.96,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:59:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:59:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206046.03,
-      "disk_write_mb": 190616.19,
-      "network_sent_mb": 30.67,
-      "network_recv_mb": 106.84,
-      "network_packets_sent": 95543,
-      "network_packets_recv": 175289,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 18:59:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 18:59:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.02,
-      "swap_usage": 4.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.05,
-      "disk_read_mb": 206046.03,
-      "disk_write_mb": 190616.26,
-      "network_sent_mb": 30.67,
-      "network_recv_mb": 106.84,
-      "network_packets_sent": 95543,
-      "network_packets_recv": 175293,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 11.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.05,
-          "free_gb": 221.89,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 41,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251218_19.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251218_19.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,5936 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-18 19:46:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:46:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.76,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.46,
-      "disk_write_mb": 192312.45,
-      "network_sent_mb": 37.52,
-      "network_recv_mb": 117.36,
-      "network_packets_sent": 132153,
-      "network_packets_recv": 246830,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:46:06",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:46:06",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.76,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.46,
-      "disk_write_mb": 192312.45,
-      "network_sent_mb": 37.52,
-      "network_recv_mb": 117.36,
-      "network_packets_sent": 132153,
-      "network_packets_recv": 246830,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.75,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:46:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:46:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.59,
-      "disk_write_mb": 192333.24,
-      "network_sent_mb": 37.6,
-      "network_recv_mb": 117.5,
-      "network_packets_sent": 132830,
-      "network_packets_recv": 248039,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:46:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:46:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.59,
-      "disk_write_mb": 192333.24,
-      "network_sent_mb": 37.6,
-      "network_recv_mb": 117.5,
-      "network_packets_sent": 132830,
-      "network_packets_recv": 248039,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.76,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:47:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:47:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.8,
-      "disk_write_mb": 192343.18,
-      "network_sent_mb": 37.67,
-      "network_recv_mb": 117.59,
-      "network_packets_sent": 133096,
-      "network_packets_recv": 248563,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:47:23",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:47:23",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.69,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206287.8,
-      "disk_write_mb": 192343.18,
-      "network_sent_mb": 37.67,
-      "network_recv_mb": 117.59,
-      "network_packets_sent": 133096,
-      "network_packets_recv": 248563,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.77,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:47:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:47:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.24,
-      "disk_write_mb": 192354.97,
-      "network_sent_mb": 37.71,
-      "network_recv_mb": 117.63,
-      "network_packets_sent": 133222,
-      "network_packets_recv": 248914,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:47:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:47:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.24,
-      "disk_write_mb": 192354.97,
-      "network_sent_mb": 37.71,
-      "network_recv_mb": 117.63,
-      "network_packets_sent": 133222,
-      "network_packets_recv": 248914,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.78,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:48:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:48:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.25,
-      "disk_write_mb": 192364.87,
-      "network_sent_mb": 37.8,
-      "network_recv_mb": 117.71,
-      "network_packets_sent": 133496,
-      "network_packets_recv": 249421,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:48:34",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:48:34",
-      "is_sysmon_available": false,
-      "cpu_usage": 9.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.25,
-      "disk_write_mb": 192364.87,
-      "network_sent_mb": 37.8,
-      "network_recv_mb": 117.71,
-      "network_packets_sent": 133496,
-      "network_packets_recv": 249421,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.79,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:49:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:49:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.77,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.32,
-      "disk_write_mb": 192372.95,
-      "network_sent_mb": 37.97,
-      "network_recv_mb": 117.95,
-      "network_packets_sent": 134369,
-      "network_packets_recv": 251073,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:49:12",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:49:12",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.77,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206290.32,
-      "disk_write_mb": 192372.98,
-      "network_sent_mb": 37.97,
-      "network_recv_mb": 117.95,
-      "network_packets_sent": 134370,
-      "network_packets_recv": 251077,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.8,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:49:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:49:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.77,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.45,
-      "disk_write_mb": 192383.41,
-      "network_sent_mb": 38.07,
-      "network_recv_mb": 118.08,
-      "network_packets_sent": 134811,
-      "network_packets_recv": 251896,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:49:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:49:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.77,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.45,
-      "disk_write_mb": 192383.41,
-      "network_sent_mb": 38.07,
-      "network_recv_mb": 118.08,
-      "network_packets_sent": 134811,
-      "network_packets_recv": 251897,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.81,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:50:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:50:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.61,
-      "disk_write_mb": 192394.5,
-      "network_sent_mb": 38.17,
-      "network_recv_mb": 118.16,
-      "network_packets_sent": 135057,
-      "network_packets_recv": 252387,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:50:27",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:50:27",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.61,
-      "disk_write_mb": 192394.5,
-      "network_sent_mb": 38.17,
-      "network_recv_mb": 118.16,
-      "network_packets_sent": 135057,
-      "network_packets_recv": 252387,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.82,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:51:02",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:51:02",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.74,
-      "disk_write_mb": 192421.47,
-      "network_sent_mb": 38.24,
-      "network_recv_mb": 118.22,
-      "network_packets_sent": 135281,
-      "network_packets_recv": 252787,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:51:02",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:51:02",
-      "is_sysmon_available": false,
-      "cpu_usage": 22.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.75,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.74,
-      "disk_write_mb": 192421.47,
-      "network_sent_mb": 38.24,
-      "network_recv_mb": 118.22,
-      "network_packets_sent": 135281,
-      "network_packets_recv": 252788,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.83,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:51:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:51:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 33.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.78,
-      "disk_write_mb": 192479.66,
-      "network_sent_mb": 38.29,
-      "network_recv_mb": 118.27,
-      "network_packets_sent": 135463,
-      "network_packets_recv": 253123,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:51:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:51:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 33.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206291.78,
-      "disk_write_mb": 192479.66,
-      "network_sent_mb": 38.29,
-      "network_recv_mb": 118.27,
-      "network_packets_sent": 135463,
-      "network_packets_recv": 253123,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.84,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.87,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:52:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:52:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 52.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 81.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206292.33,
-      "disk_write_mb": 192498.46,
-      "network_sent_mb": 38.41,
-      "network_recv_mb": 118.41,
-      "network_packets_sent": 135829,
-      "network_packets_recv": 253645,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.86,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:52:17",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:52:17",
-      "is_sysmon_available": false,
-      "cpu_usage": 50.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.72,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206292.33,
-      "disk_write_mb": 192498.46,
-      "network_sent_mb": 38.41,
-      "network_recv_mb": 118.41,
-      "network_packets_sent": 135829,
-      "network_packets_recv": 253645,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.85,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.86,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:52:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:52:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206292.87,
-      "disk_write_mb": 192573.57,
-      "network_sent_mb": 38.5,
-      "network_recv_mb": 118.54,
-      "network_packets_sent": 136194,
-      "network_packets_recv": 254149,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.86,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:52:54",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:52:54",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 81.9,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.81,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.07,
-      "disk_read_mb": 206292.87,
-      "disk_write_mb": 192573.57,
-      "network_sent_mb": 38.5,
-      "network_recv_mb": 118.54,
-      "network_packets_sent": 136194,
-      "network_packets_recv": 254149,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.86,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.07,
-          "free_gb": 221.86,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:53:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:53:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206314.37,
-      "disk_write_mb": 192621.48,
-      "network_sent_mb": 39.36,
-      "network_recv_mb": 128.42,
-      "network_packets_sent": 140136,
-      "network_packets_recv": 263869,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 19:53:33",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:53:33",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 87.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.68,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206314.37,
-      "disk_write_mb": 192621.48,
-      "network_sent_mb": 39.36,
-      "network_recv_mb": 128.42,
-      "network_packets_sent": 140136,
-      "network_packets_recv": 263869,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.87,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 19:54:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:54:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.87,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206316.23,
-      "disk_write_mb": 192649.0,
-      "network_sent_mb": 39.53,
-      "network_recv_mb": 129.02,
-      "network_packets_sent": 140617,
-      "network_packets_recv": 264754,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:54:11",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:54:11",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 82.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.87,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206316.23,
-      "disk_write_mb": 192649.0,
-      "network_sent_mb": 39.53,
-      "network_recv_mb": 129.02,
-      "network_packets_sent": 140617,
-      "network_packets_recv": 264754,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.88,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:54:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:54:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 41.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.32,
-      "disk_write_mb": 192677.25,
-      "network_sent_mb": 39.64,
-      "network_recv_mb": 129.15,
-      "network_packets_sent": 140957,
-      "network_packets_recv": 265214,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:54:46",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:54:46",
-      "is_sysmon_available": false,
-      "cpu_usage": 40.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.32,
-      "disk_write_mb": 192677.25,
-      "network_sent_mb": 39.64,
-      "network_recv_mb": 129.15,
-      "network_packets_sent": 140957,
-      "network_packets_recv": 265214,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.89,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:55:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:55:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.71,
-      "disk_write_mb": 192740.98,
-      "network_sent_mb": 40.1,
-      "network_recv_mb": 129.45,
-      "network_packets_sent": 141572,
-      "network_packets_recv": 266062,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:55:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:55:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.71,
-      "disk_write_mb": 192741.25,
-      "network_sent_mb": 40.1,
-      "network_recv_mb": 129.45,
-      "network_packets_sent": 141572,
-      "network_packets_recv": 266062,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.9,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:55:57",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:55:57",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.95,
-      "disk_write_mb": 192757.43,
-      "network_sent_mb": 40.55,
-      "network_recv_mb": 129.71,
-      "network_packets_sent": 141903,
-      "network_packets_recv": 266695,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:55:58",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:55:58",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.2,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.01,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.08,
-      "disk_read_mb": 206317.95,
-      "disk_write_mb": 192757.43,
-      "network_sent_mb": 40.55,
-      "network_recv_mb": 129.71,
-      "network_packets_sent": 141903,
-      "network_packets_recv": 266695,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.91,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.08,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 19:56:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:56:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206317.96,
-      "disk_write_mb": 192765.02,
-      "network_sent_mb": 40.63,
-      "network_recv_mb": 129.98,
-      "network_packets_sent": 142934,
-      "network_packets_recv": 268620,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-18 19:56:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:56:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.0,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206317.96,
-      "disk_write_mb": 192765.02,
-      "network_sent_mb": 40.63,
-      "network_recv_mb": 129.98,
-      "network_packets_sent": 142934,
-      "network_packets_recv": 268620,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.92,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-18 19:57:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:57:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206320.26,
-      "disk_write_mb": 192774.62,
-      "network_sent_mb": 40.73,
-      "network_recv_mb": 130.34,
-      "network_packets_sent": 144364,
-      "network_packets_recv": 271271,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 19:57:14",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:57:14",
-      "is_sysmon_available": false,
-      "cpu_usage": 12.7,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 83.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.03,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206320.26,
-      "disk_write_mb": 192774.62,
-      "network_sent_mb": 40.73,
-      "network_recv_mb": 130.34,
-      "network_packets_sent": 144364,
-      "network_packets_recv": 271271,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.93,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 19:57:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:57:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206321.86,
-      "disk_write_mb": 192787.24,
-      "network_sent_mb": 40.83,
-      "network_recv_mb": 130.72,
-      "network_packets_sent": 145740,
-      "network_packets_recv": 273977,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 19:57:52",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:57:52",
-      "is_sysmon_available": false,
-      "cpu_usage": 14.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 83.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.05,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206321.86,
-      "disk_write_mb": 192787.24,
-      "network_sent_mb": 40.83,
-      "network_recv_mb": 130.72,
-      "network_packets_sent": 145740,
-      "network_packets_recv": 273977,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.94,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 19:58:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:58:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206325.51,
-      "disk_write_mb": 192797.47,
-      "network_sent_mb": 40.94,
-      "network_recv_mb": 131.04,
-      "network_packets_sent": 147100,
-      "network_packets_recv": 276499,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 19:58:30",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:58:30",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.18,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206325.51,
-      "disk_write_mb": 192797.47,
-      "network_sent_mb": 40.94,
-      "network_recv_mb": 131.04,
-      "network_packets_sent": 147103,
-      "network_packets_recv": 276504,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.95,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 6,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 19:59:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:59:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 17.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206431.05,
-      "disk_write_mb": 192838.26,
-      "network_sent_mb": 41.21,
-      "network_recv_mb": 132.19,
-      "network_packets_sent": 149072,
-      "network_packets_recv": 279816,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 19:59:09",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:59:09",
-      "is_sysmon_available": false,
-      "cpu_usage": 15.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 87.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.7,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206431.05,
-      "disk_write_mb": 192838.26,
-      "network_sent_mb": 41.21,
-      "network_recv_mb": 132.19,
-      "network_packets_sent": 149073,
-      "network_packets_recv": 279816,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.97,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 19:59:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:59:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 27.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206433.22,
-      "disk_write_mb": 192871.38,
-      "network_sent_mb": 41.36,
-      "network_recv_mb": 132.39,
-      "network_packets_sent": 149860,
-      "network_packets_recv": 281317,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 19:59:45",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 19:59:45",
-      "is_sysmon_available": false,
-      "cpu_usage": 26.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.5,
-      "swap_usage": 4.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206433.22,
-      "disk_write_mb": 192871.38,
-      "network_sent_mb": 41.36,
-      "network_recv_mb": 132.39,
-      "network_packets_sent": 149860,
-      "network_packets_recv": 281317,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.98,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 7,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  }
-]
Index: ceived_data_sysmon/env_1/Ilina-laptop/20251218_20.json
===================================================================
--- received_data_sysmon/env_1/Ilina-laptop/20251218_20.json	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,3614 +1,0 @@
-[
-  {
-    "timestamp": "2025-12-18 20:00:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:00:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.49,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206440.15,
-      "disk_write_mb": 192966.31,
-      "network_sent_mb": 41.48,
-      "network_recv_mb": 132.54,
-      "network_packets_sent": 150202,
-      "network_packets_recv": 281826,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 20:00:22",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:00:22",
-      "is_sysmon_available": false,
-      "cpu_usage": 21.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 86.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.49,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206440.15,
-      "disk_write_mb": 192966.31,
-      "network_sent_mb": 41.48,
-      "network_recv_mb": 132.54,
-      "network_packets_sent": 150202,
-      "network_packets_recv": 281826,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 12.99,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 8,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 20:00:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:00:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.34,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206441.72,
-      "disk_write_mb": 193044.92,
-      "network_sent_mb": 41.53,
-      "network_recv_mb": 132.6,
-      "network_packets_sent": 150385,
-      "network_packets_recv": 282113,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-18 20:00:59",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:00:59",
-      "is_sysmon_available": false,
-      "cpu_usage": 16.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.34,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206441.72,
-      "disk_write_mb": 193044.92,
-      "network_sent_mb": 41.53,
-      "network_recv_mb": 132.6,
-      "network_packets_sent": 150385,
-      "network_packets_recv": 282113,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.0,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  },
-  {
-    "timestamp": "2025-12-18 20:01:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:01:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206442.04,
-      "disk_write_mb": 193097.47,
-      "network_sent_mb": 41.57,
-      "network_recv_mb": 132.66,
-      "network_packets_sent": 150602,
-      "network_packets_recv": 282448,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 20:01:36",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:01:36",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 84.8,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.25,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206442.04,
-      "disk_write_mb": 193097.47,
-      "network_sent_mb": 41.57,
-      "network_recv_mb": 132.66,
-      "network_packets_sent": 150602,
-      "network_packets_recv": 282448,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.01,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 9,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 48
-  },
-  {
-    "timestamp": "2025-12-18 20:02:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:02:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.29,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206449.22,
-      "disk_write_mb": 193108.37,
-      "network_sent_mb": 41.6,
-      "network_recv_mb": 132.69,
-      "network_packets_sent": 150731,
-      "network_packets_recv": 282681,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:02:13",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:02:13",
-      "is_sysmon_available": false,
-      "cpu_usage": 20.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 85.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.29,
-      "swap_usage": 4.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.09,
-      "disk_read_mb": 206449.22,
-      "disk_write_mb": 193108.37,
-      "network_sent_mb": 41.6,
-      "network_recv_mb": 132.69,
-      "network_packets_sent": 150731,
-      "network_packets_recv": 282681,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.02,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.09,
-          "free_gb": 221.85,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 10,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:02:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:02:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 77.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 9.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 207894.23,
-      "disk_write_mb": 193964.65,
-      "network_sent_mb": 41.67,
-      "network_recv_mb": 133.09,
-      "network_packets_sent": 151109,
-      "network_packets_recv": 283254,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 20:02:51",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:02:51",
-      "is_sysmon_available": false,
-      "cpu_usage": 76.5,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 88.4,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 13.82,
-      "swap_usage": 9.4,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 207894.23,
-      "disk_write_mb": 193964.65,
-      "network_sent_mb": 41.67,
-      "network_recv_mb": 133.09,
-      "network_packets_sent": 151109,
-      "network_packets_recv": 283254,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.03,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 11,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 51
-  },
-  {
-    "timestamp": "2025-12-18 20:03:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:03:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.13,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 208223.43,
-      "disk_write_mb": 194047.46,
-      "network_sent_mb": 42.02,
-      "network_recv_mb": 150.88,
-      "network_packets_sent": 156646,
-      "network_packets_recv": 291332,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:03:28",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:03:28",
-      "is_sysmon_available": false,
-      "cpu_usage": 7.6,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.13,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 208223.43,
-      "disk_write_mb": 194047.46,
-      "network_sent_mb": 42.02,
-      "network_recv_mb": 150.88,
-      "network_packets_sent": 156646,
-      "network_packets_recv": 291332,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.04,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:04:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:04:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 208241.68,
-      "disk_write_mb": 194082.14,
-      "network_sent_mb": 42.04,
-      "network_recv_mb": 150.92,
-      "network_packets_sent": 156759,
-      "network_packets_recv": 291583,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:04:05",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:04:05",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.14,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.15,
-      "disk_read_mb": 208241.68,
-      "disk_write_mb": 194082.14,
-      "network_sent_mb": 42.04,
-      "network_recv_mb": 150.92,
-      "network_packets_sent": 156759,
-      "network_packets_recv": 291583,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.05,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.15,
-          "free_gb": 221.79,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 12,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:04:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:04:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.24,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.21,
-      "disk_read_mb": 208305.08,
-      "disk_write_mb": 194126.64,
-      "network_sent_mb": 42.1,
-      "network_recv_mb": 150.98,
-      "network_packets_sent": 156962,
-      "network_packets_recv": 291915,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.21,
-          "free_gb": 221.73,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:04:41",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:04:41",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.8,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.3,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.24,
-      "swap_usage": 9.6,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.21,
-      "disk_read_mb": 208305.31,
-      "disk_write_mb": 194126.64,
-      "network_sent_mb": 42.1,
-      "network_recv_mb": 150.98,
-      "network_packets_sent": 156962,
-      "network_packets_recv": 291915,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.06,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.21,
-          "free_gb": 221.73,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 13,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 50
-  },
-  {
-    "timestamp": "2025-12-18 20:05:18",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:05:18",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.15,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208348.72,
-      "disk_write_mb": 194209.18,
-      "network_sent_mb": 42.17,
-      "network_recv_mb": 151.06,
-      "network_packets_sent": 157184,
-      "network_packets_recv": 292310,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 20:05:19",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:05:19",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.15,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208348.72,
-      "disk_write_mb": 194209.18,
-      "network_sent_mb": 42.17,
-      "network_recv_mb": 151.06,
-      "network_packets_sent": 157184,
-      "network_packets_recv": 292310,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.07,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 14,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 20:05:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:05:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.06,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208350.15,
-      "disk_write_mb": 194266.65,
-      "network_sent_mb": 42.21,
-      "network_recv_mb": 151.13,
-      "network_packets_sent": 157374,
-      "network_packets_recv": 292664,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-18 20:05:55",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:05:55",
-      "is_sysmon_available": false,
-      "cpu_usage": 3.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.1,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.06,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208350.15,
-      "disk_write_mb": 194266.65,
-      "network_sent_mb": 42.22,
-      "network_recv_mb": 151.13,
-      "network_packets_sent": 157381,
-      "network_packets_recv": 292666,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.08,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 15,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-18 20:06:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:06:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 10.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 76.5,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.97,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208351.34,
-      "disk_write_mb": 194279.32,
-      "network_sent_mb": 42.24,
-      "network_recv_mb": 151.18,
-      "network_packets_sent": 157465,
-      "network_packets_recv": 292932,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-18 20:06:32",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:06:32",
-      "is_sysmon_available": false,
-      "cpu_usage": 8.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.6,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 11.97,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208351.34,
-      "disk_write_mb": 194279.32,
-      "network_sent_mb": 42.24,
-      "network_recv_mb": 151.18,
-      "network_packets_sent": 157465,
-      "network_packets_recv": 292932,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.09,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 46
-  },
-  {
-    "timestamp": "2025-12-18 20:07:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:07:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.3,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.0,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208351.9,
-      "disk_write_mb": 194287.94,
-      "network_sent_mb": 42.27,
-      "network_recv_mb": 151.21,
-      "network_packets_sent": 157586,
-      "network_packets_recv": 293159,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 20:07:08",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:07:08",
-      "is_sysmon_available": false,
-      "cpu_usage": 4.1,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 76.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.0,
-      "swap_usage": 9.5,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208351.9,
-      "disk_write_mb": 194287.94,
-      "network_sent_mb": 42.27,
-      "network_recv_mb": 151.21,
-      "network_packets_sent": 157586,
-      "network_packets_recv": 293159,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.1,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 16,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 45
-  },
-  {
-    "timestamp": "2025-12-18 20:07:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:07:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 13.0,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.15,
-      "swap_usage": 8.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208366.62,
-      "disk_write_mb": 194296.94,
-      "network_sent_mb": 42.3,
-      "network_recv_mb": 151.24,
-      "network_packets_sent": 157710,
-      "network_packets_recv": 293359,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-18 20:07:44",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:07:44",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.9,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 77.7,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.15,
-      "swap_usage": 8.3,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208366.62,
-      "disk_write_mb": 194296.94,
-      "network_sent_mb": 42.3,
-      "network_recv_mb": 151.24,
-      "network_packets_sent": 157710,
-      "network_packets_recv": 293359,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.11,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 43
-  },
-  {
-    "timestamp": "2025-12-18 20:08:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:08:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 6.2,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1457.0,
-      "ram_usage": 78.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.19,
-      "swap_usage": 8.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208390.25,
-      "disk_write_mb": 194325.54,
-      "network_sent_mb": 42.35,
-      "network_recv_mb": 151.32,
-      "network_packets_sent": 157903,
-      "network_packets_recv": 293720,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 47
-  },
-  {
-    "timestamp": "2025-12-18 20:08:21",
-    "info": {
-      "computer_name": "Ilina-laptop",
-      "user": "Ilina",
-      "ip_address": "192.168.11.230",
-      "os": "Windows 11 10.0.26200",
-      "architecture": "64bit",
-      "timestamp": "2025-12-18 20:08:21",
-      "is_sysmon_available": false,
-      "cpu_usage": 5.4,
-      "cpu_cores": 12,
-      "cpu_freq_current": 1700.0,
-      "ram_usage": 78.0,
-      "ram_total_gb": 15.63,
-      "ram_used_gb": 12.19,
-      "swap_usage": 8.2,
-      "disk_usage": 53.4,
-      "disk_total_gb": 475.94,
-      "disk_used_gb": 254.29,
-      "disk_read_mb": 208390.25,
-      "disk_write_mb": 194325.54,
-      "network_sent_mb": 42.35,
-      "network_recv_mb": 151.33,
-      "network_packets_sent": 157903,
-      "network_packets_recv": 293721,
-      "boot_time": "2025-12-11 07:01:15",
-      "uptime_hours": 13.12,
-      "cpu_physical_cores": 10,
-      "cpu_logical_cores": 12,
-      "disks": [
-        {
-          "device": "C:\\",
-          "mountpoint": "C:\\",
-          "fstype": "NTFS",
-          "total_gb": 475.94,
-          "used_gb": 254.29,
-          "free_gb": 221.65,
-          "percent_used": 53.4
-        }
-      ],
-      "network_interfaces": {
-        "Local Area Connection* 9": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-D4-D6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.21.51",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::5ded:b25c:a013:6f05",
-            "netmask": null
-          }
-        ],
-        "Local Area Connection* 10": [
-          {
-            "family": "-1",
-            "address": "96-BB-43-85-C4-C6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.182.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::b03e:8359:9cda:46e7",
-            "netmask": null
-          }
-        ],
-        "Wi-Fi": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F6",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "192.168.11.230",
-            "netmask": "255.255.240.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::8f08:c905:7251:3c09",
-            "netmask": null
-          }
-        ],
-        "Bluetooth Network Connection": [
-          {
-            "family": "-1",
-            "address": "94-BB-43-85-F4-F7",
-            "netmask": null
-          },
-          {
-            "family": "2",
-            "address": "169.254.5.144",
-            "netmask": "255.255.0.0"
-          },
-          {
-            "family": "23",
-            "address": "fe80::4b51:ccb7:5a3e:dba6",
-            "netmask": null
-          }
-        ],
-        "Loopback Pseudo-Interface 1": [
-          {
-            "family": "2",
-            "address": "127.0.0.1",
-            "netmask": "255.0.0.0"
-          },
-          {
-            "family": "23",
-            "address": "::1",
-            "netmask": null
-          }
-        ]
-      },
-      "battery_percent": 17,
-      "temperatures": {}
-    },
-    "processes_count": 100,
-    "sysmon_events_count": 49
-  }
-]
Index: sctry.py
===================================================================
--- sctry.py	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ sctry.py	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1,6 +1,5 @@
 #!/usr/bin/env python3
 """
-netIntel Client (Fixed + more reliable)
-- Sends payload to /receive with X-Env-Token header
+POPRAVEN CLIENT со фикс за Sysmon
 """
 
@@ -10,43 +9,14 @@
 import json
 import requests
-from datetime import datetime
+from datetime import datetime, timedelta
 import psutil
 import time
 import subprocess
-import getpass
-
-
-# ----------------------------
-# Helpers
-# ----------------------------
-def safe_username():
-    try:
-        return os.getlogin()
-    except Exception:
-        return getpass.getuser()
-
-
-def get_local_ip_fallback():
-    """
-    More reliable local IP than socket.gethostbyname(hostname).
-    """
-    try:
-        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-        s.connect(("8.8.8.8", 80))
-        ip = s.getsockname()[0]
-        s.close()
-        return ip
-    except Exception:
-        try:
-            return socket.gethostbyname(socket.gethostname())
-        except Exception:
-            return "127.0.0.1"
-
-
-# ----------------------------
-# Sysmon-like collector (simulated)
-# ----------------------------
+import re
+from collections import defaultdict
+
+
 class FixedSysmonCollector:
-    """Simplified collector - works even without Sysmon installed"""
+    """Симплифициран колектор што работи без инсталиран Sysmon"""
 
     def __init__(self):
@@ -54,24 +24,24 @@
 
     def collect_sysmon_events(self, limit=50):
+        """Симулирај Sysmon настани од процеси и мрежа"""
         events = []
-        now = datetime.now()
-
-        try:
-            # 1) Process events (Event ID 1)
+
+        try:
+            # 1. Процес настани (Event ID 1 = Process Creation)
             for proc in psutil.process_iter(['pid', 'name', 'create_time', 'username']):
                 try:
                     pinfo = proc.info
-                    ct = pinfo.get('create_time')
-                    if ct:
-                        create_time = datetime.fromtimestamp(ct)
-                        if (not self.last_collection) or (create_time > self.last_collection):
+                    if pinfo['create_time']:
+                        create_time = datetime.fromtimestamp(pinfo['create_time'])
+                        # Додади само процеси креирани во последните 5 минути
+                        if not self.last_collection or create_time > self.last_collection:
                             events.append({
                                 "event_id": 1,
                                 "event_type": "Process Creation",
-                                "message": f"Process created: {pinfo.get('name')} (PID: {pinfo.get('pid')}, User: {pinfo.get('username')})",
+                                "message": f"Process created: {pinfo['name']} (PID: {pinfo['pid']}, User: {pinfo['username']})",
                                 "timestamp": create_time.isoformat(),
-                                "process_name": pinfo.get('name'),
-                                "pid": pinfo.get('pid'),
-                                "user": pinfo.get('username'),
+                                "process_name": pinfo['name'],
+                                "pid": pinfo['pid'],
+                                "user": pinfo['username']
                             })
                 except (psutil.NoSuchProcess, psutil.AccessDenied):
@@ -81,5 +51,5 @@
                     break
 
-            # 2) Network connections (Event ID 3)
+            # 2. Мрежни конекции (Event ID 3 = Network Connection)
             for conn in psutil.net_connections(kind='inet'):
                 try:
@@ -89,13 +59,11 @@
                             "event_id": 3,
                             "event_type": "Network Connection",
-                            "message": f"Network {conn.status}: "
-                                       f"{conn.laddr.ip if conn.laddr else 'N/A'}:{conn.laddr.port if conn.laddr else 'N/A'} "
-                                       f"-> {conn.raddr.ip}:{conn.raddr.port}",
-                            "timestamp": now.isoformat(),
+                            "message": f"Network {conn.status}: {conn.laddr.ip if conn.laddr else 'N/A'}:{conn.laddr.port if conn.laddr else 'N/A'} -> {conn.raddr.ip}:{conn.raddr.port}",
+                            "timestamp": datetime.now().isoformat(),
                             "local_address": f"{conn.laddr.ip}:{conn.laddr.port}" if conn.laddr else None,
                             "remote_address": f"{conn.raddr.ip}:{conn.raddr.port}",
                             "status": conn.status,
                             "pid": conn.pid,
-                            "process_name": proc.name() if proc else "Unknown",
+                            "process_name": proc.name() if proc else "Unknown"
                         })
                 except (psutil.NoSuchProcess, psutil.AccessDenied):
@@ -105,5 +73,5 @@
                     break
 
-            # 3) Performance alerts (optional)
+            # 3. Системски перформанси настани
             cpu = psutil.cpu_percent(interval=0.1)
             if cpu > 80:
@@ -112,5 +80,5 @@
                     "event_type": "High CPU Usage",
                     "message": f"High CPU usage detected: {cpu:.1f}%",
-                    "timestamp": now.isoformat(),
+                    "timestamp": datetime.now().isoformat(),
                     "cpu_percent": cpu
                 })
@@ -122,5 +90,5 @@
                     "event_type": "High Memory Usage",
                     "message": f"High RAM usage: {ram.percent:.1f}%",
-                    "timestamp": now.isoformat(),
+                    "timestamp": datetime.now().isoformat(),
                     "ram_percent": ram.percent
                 })
@@ -129,15 +97,15 @@
             print(f"FixedSysmon error: {e}")
 
-        self.last_collection = now
+        self.last_collection = datetime.now()
         return events
 
-    def collect_network_connections_detailed(self, limit=30):
+    def collect_network_connections_detailed(self):
+        """Детални мрежни конекции"""
         connections = []
-        now = datetime.now().isoformat()
-
         try:
             for conn in psutil.net_connections(kind='inet'):
                 try:
                     proc = psutil.Process(conn.pid) if conn.pid else None
+
                     conn_info = {
                         "pid": conn.pid,
@@ -145,5 +113,5 @@
                         "family": str(conn.family),
                         "type": str(conn.type),
-                        "timestamp": now
+                        "timestamp": datetime.now().isoformat()
                     }
 
@@ -159,14 +127,9 @@
 
                     if proc:
-                        conn_info["process_name"] = proc.name()
-                        try:
-                            cmd = proc.cmdline()
-                            conn_info["process_cmdline"] = " ".join(cmd) if cmd else None
-                        except Exception:
-                            conn_info["process_cmdline"] = None
-                        try:
-                            conn_info["process_username"] = proc.username()
-                        except Exception:
-                            conn_info["process_username"] = None
+                        conn_info.update({
+                            "process_name": proc.name(),
+                            "process_cmdline": ' '.join(proc.cmdline()) if proc.cmdline() else None,
+                            "process_username": proc.username() if hasattr(proc, 'username') else None
+                        })
 
                     connections.append(conn_info)
@@ -175,5 +138,5 @@
                     continue
 
-                if len(connections) >= limit:
+                if len(connections) >= 30:
                     break
 
@@ -184,31 +147,40 @@
 
     def collect_all_security_data(self):
+        """Собери сите безбедносни податоци (очекуваниот метод!)"""
         return {
             "sysmon_events": self.collect_sysmon_events(limit=50),
-            "network_connections": self.collect_network_connections_detailed(limit=30),
-            "file_changes": [],
+            "network_connections": self.collect_network_connections_detailed(),
+            "file_changes": [],  # Празен лист, можеш да го имплементираш подоцна
             "collection_time": datetime.now().isoformat()
         }
 
 
-# ----------------------------
-# Client
-# ----------------------------
 class EnhancedFixedClient:
-    def __init__(self, server_ip="192.168.1.13", port=5555, env_token=None):
+    def __init__(self, server_ip="192.168.1.13", port=5555):
         self.server_ip = server_ip
         self.port = port
         self.computer_name = socket.gethostname()
-        self.user = safe_username()
-        self.sysmon_collector = FixedSysmonCollector()
-        self.env_token = env_token
-
-        # warmup cpu_percent so it doesn't start at 0
-        try:
-            psutil.cpu_percent(interval=None)
-        except Exception:
-            pass
+        self.user = os.getlogin()
+        self.sysmon_collector = FixedSysmonCollector()  # Користи поправената верзија
+
+    def get_detailed_info(self):
+        """Собирај подробни податоци"""
+        info = {
+            "computer_name": self.computer_name,
+            "user": self.user,
+            "ip_address": socket.gethostbyname(self.computer_name),
+            "os": f"{platform.system()} {platform.release()} {platform.version()}",
+            "architecture": platform.architecture()[0],
+            "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
+            "is_sysmon_available": self._check_sysmon_installed()
+        }
+
+        info.update(self.get_performance_metrics())
+        info.update(self.get_hardware_info())
+
+        return info
 
     def _check_sysmon_installed(self):
+        """Провери дали Sysmon е инсталиран"""
         try:
             if platform.system() == "Windows":
@@ -218,16 +190,20 @@
                 )
                 return result.returncode == 0
-        except Exception:
+        except:
             pass
         return False
 
     def get_performance_metrics(self):
-        try:
-            cpu_percent = psutil.cpu_percent(interval=0.5)
+        """Метрики за перформанси - ПОПРАВЕНО БЕЗ DEPRECATION WARNING"""
+        try:
+            cpu_percent = psutil.cpu_percent(interval=1)
             cpu_freq = psutil.cpu_freq()
+
             ram = psutil.virtual_memory()
             swap = psutil.swap_memory()
+
             disk = psutil.disk_usage("C:/" if platform.system() == "Windows" else "/")
 
+            # ДОБАВИ TRY-EXCEPT за disk_io_counters
             disk_read_mb = 0
             disk_write_mb = 0
@@ -237,11 +213,8 @@
                     disk_read_mb = round(disk_io.read_bytes / (1024 ** 2), 2)
                     disk_write_mb = round(disk_io.write_bytes / (1024 ** 2), 2)
-            except Exception:
+            except:
                 pass
 
             net_io = psutil.net_io_counters()
-
-            boot_dt = datetime.fromtimestamp(psutil.boot_time())
-            uptime_hours = round((datetime.now() - boot_dt).total_seconds() / 3600, 2)
 
             return {
@@ -262,6 +235,6 @@
                 "network_packets_sent": net_io.packets_sent,
                 "network_packets_recv": net_io.packets_recv,
-                "boot_time": boot_dt.strftime("%Y-%m-%d %H:%M:%S"),
-                "uptime_hours": uptime_hours
+                "boot_time": datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S"),
+                "uptime_hours": round((datetime.now() - datetime.fromtimestamp(psutil.boot_time())).seconds / 3600, 2)
             }
         except Exception as e:
@@ -270,4 +243,5 @@
 
     def get_hardware_info(self):
+        """Хардвер информации"""
         try:
             partitions = []
@@ -284,7 +258,8 @@
                         "percent_used": usage.percent
                     })
-                except Exception:
+                except:
                     continue
 
+            # Мрежни интерфејси
             net_if_addrs = psutil.net_if_addrs()
             interfaces = {}
@@ -294,15 +269,8 @@
                         "family": str(addr.family),
                         "address": addr.address,
-                        "netmask": getattr(addr, "netmask", None)
+                        "netmask": addr.netmask if hasattr(addr, 'netmask') else None
                     }
-                    for addr in addrs if getattr(addr, "address", None)
+                    for addr in addrs if addr.address
                 ]
-
-            batt = None
-            try:
-                b = psutil.sensors_battery()
-                batt = b.percent if b else None
-            except Exception:
-                batt = None
 
             return {
@@ -311,5 +279,6 @@
                 "disks": partitions,
                 "network_interfaces": interfaces,
-                "battery_percent": batt,
+                "battery_percent": psutil.sensors_battery().percent if hasattr(psutil.sensors_battery(),
+                                                                               'percent') else None,
                 "temperatures": self._get_temperatures()
             }
@@ -319,7 +288,8 @@
 
     def _get_temperatures(self):
+        """Добиј температури на системот"""
         try:
             temps = {}
-            if hasattr(psutil, "sensors_temperatures"):
+            if hasattr(psutil, 'sensors_temperatures'):
                 sensors = psutil.sensors_temperatures()
                 for name, entries in sensors.items():
@@ -327,36 +297,38 @@
                         temps[name] = entries[0].current
             return temps
-        except Exception:
+        except:
             return {}
 
-    def get_detailed_processes(self, limit=100):
+    def get_detailed_processes(self):
+        """Детални информации за процесите - ПОПРАВЕНО БЕЗ DEPRECATION WARNING"""
         processes = []
         try:
-            for proc in psutil.process_iter(['pid', 'name', 'username', 'cpu_percent', 'memory_percent',
-                                             'create_time', 'status']):
+            for proc in psutil.process_iter(['pid', 'name', 'username', 'cpu_percent',
+                                             'memory_percent', 'create_time', 'status']):
                 try:
                     pinfo = proc.info
+
+                    # КОРИСТИ psutil.Process() за да добиеш дополнителни информации
                     with proc.oneshot():
                         processes.append({
-                            "pid": pinfo.get("pid"),
-                            "name": pinfo.get("name"),
-                            "user": pinfo.get("username"),
-                            "cpu_percent": pinfo.get("cpu_percent"),
+                            "pid": pinfo['pid'],
+                            "name": pinfo['name'],
+                            "user": pinfo['username'],
+                            "cpu_percent": pinfo['cpu_percent'],
                             "memory_mb": round(proc.memory_info().rss / (1024 ** 2), 2),
-                            "memory_percent": pinfo.get("memory_percent"),
-                            "create_time": datetime.fromtimestamp(pinfo["create_time"]).strftime("%Y-%m-%d %H:%M:%S")
-                            if pinfo.get("create_time") else None,
-                            "status": pinfo.get("status"),
-                            "exe": proc.exe() if hasattr(proc, "exe") else None,
-                            "cmdline": " ".join(proc.cmdline()) if hasattr(proc, "cmdline") else None,
-                            "num_threads": proc.num_threads() if hasattr(proc, "num_threads") else None,
-                            "connections_count": 0
+                            "memory_percent": pinfo['memory_percent'],
+                            "create_time": datetime.fromtimestamp(pinfo['create_time']).strftime("%Y-%m-%d %H:%M:%S") if
+                            pinfo['create_time'] else None,
+                            "status": pinfo['status'],
+                            "exe": proc.exe() if hasattr(proc, 'exe') else None,
+                            "cmdline": ' '.join(proc.cmdline()) if hasattr(proc, 'cmdline') else None,
+                            "num_threads": proc.num_threads() if hasattr(proc, 'num_threads') else None,
+                            # НЕ КОРИСТИ proc.connections() - тоа е deprecated!
+                            "connections_count": 0  # Стави 0 или избриши го ова поле
                         })
                 except (psutil.NoSuchProcess, psutil.AccessDenied):
                     continue
-                except Exception:
-                    continue
-
-                if len(processes) >= limit:
+
+                if len(processes) >= 100:
                     break
 
@@ -366,129 +338,118 @@
         return processes
 
-    def get_detailed_info(self):
-        info = {
-            "computer_name": self.computer_name,
-            "user": self.user,
-            "ip_address": get_local_ip_fallback(),
-            "os": f"{platform.system()} {platform.release()} {platform.version()}",
-            "architecture": platform.architecture()[0],
-            "timestamp": datetime.now().isoformat(),
-            "is_sysmon_available": self._check_sysmon_installed()
-        }
-        info.update(self.get_performance_metrics())
-        info.update(self.get_hardware_info())
-        return info
-
     def collect_and_send(self):
-        print(f"\n[{datetime.now().strftime('%H:%M:%S')}] 🔍 Collecting...")
-
+        """Собери и испрати сите податоци"""
+        print(f"\n[{datetime.now().strftime('%H:%M:%S')}] 🔍 Собирање податоци...")
+
+        # Собери сите податоци
         data = {
             "info": self.get_detailed_info(),
-            "processes": self.get_detailed_processes(limit=100),
-            "security_data": self.sysmon_collector.collect_all_security_data(),
+            "processes": self.get_detailed_processes(),
+            "security_data": self.sysmon_collector.collect_all_security_data(),  # ОВА СЕГА РАБОТИ!
             "collection_time": datetime.now().isoformat(),
-            "client_version": "2.2_fixed"
+            "client_version": "2.1_fixed"
         }
 
+        # Прикажи основни информации
         info = data["info"]
-        sec = data["security_data"]
-
-        print(f"   💻 {info.get('computer_name')} | 👤 {info.get('user')}")
-        print(f"   📊 CPU {info.get('cpu_usage', 0)}% | RAM {info.get('ram_usage', 0)}% | Disk {info.get('disk_usage', 0)}%")
-        print(f"   🔄 Processes: {len(data['processes'])}")
-        print(f"   🛡️ Sysmon events: {len(sec.get('sysmon_events', []))}")
-        print(f"   🌐 Net conns: {len(sec.get('network_connections', []))}")
-
-        try:
-            headers = {}
-            if self.env_token:
-                headers["X-Env-Token"] = self.env_token
-            headers["X-Client-Id"] = self.computer_name  # optional
-
-            url = f"http://{self.server_ip}:{self.port}/receive"
-            r = requests.post(url, json=data, headers=headers, timeout=30)
-
-            if r.ok:
-                resp = r.json()
-                print("   ✅ Sent OK")
-                if "sysmon_events_saved" in resp:
-                    print(f"   📝 Saved sysmon: {resp['sysmon_events_saved']}")
+        sec_data = data["security_data"]
+
+        print(f"   💻 Компјутер: {info['computer_name']}")
+        print(f"   👤 Корисник: {info['user']}")
+        print(
+            f"   📊 CPU: {info.get('cpu_usage', 0)}% | RAM: {info.get('ram_usage', 0)}% | Disk: {info.get('disk_usage', 0)}%")
+        print(f"   🔄 Процеси: {len(data['processes'])}")
+        print(f"   🛡️  Sysmon настани: {len(sec_data.get('sysmon_events', []))}")
+        print(f"   🌐 Мрежни конекции: {len(sec_data.get('network_connections', []))}")
+
+        # Испрати ги податоците
+        try:
+            response = requests.post(
+                f"http://{self.server_ip}:{self.port}/receive",
+                json=data,
+                timeout=30
+            )
+
+            if response.status_code == 200:
+                result = response.json()
+                print(f"   ✅ Податоците се успешно испратени!")
+                if 'event_count' in result:
+                    print(f"   📝 Зачувани {result['event_count']} Sysmon настани")
                 return True
-
-            # errors
-            if r.status_code == 401:
-                try:
-                    msg = r.json()
-                except Exception:
-                    msg = {"error": r.text[:200]}
-                print("   🔒 Token invalid/expired. Generate new token in Admin panel.")
-                print(f"   Server says: {msg}")
             else:
-                print(f"   ❌ HTTP {r.status_code}: {r.text[:300]}")
+                print(f"   ❌ Грешка: {response.status_code}")
+                return False
+
+        except Exception as e:
+            print(f"   ❌ Проблем со серверот: {e}")
             return False
 
-        except Exception as e:
-            print(f"   ❌ Connection problem: {e}")
-            return False
-
 
 def main():
+    """Главна програма"""
     print("=" * 70)
-    print("🖥️  netIntel Collector (Fixed)")
+    print("🖥️  FIXED LAN LOG COLLECTOR v2.1")
     print("=" * 70)
-    print(f"Computer: {socket.gethostname()}")
-    print(f"User: {safe_username()}")
-    print(f"Local IP: {get_local_ip_fallback()}")
+    print(f"Компјутер: {socket.gethostname()}")
+    print(f"Корисник: {os.getlogin()}")
+    print(f"IP: {socket.gethostbyname(socket.gethostname())}")
     print("=" * 70)
-    print("Will send every 30 seconds. Ctrl+C to stop.")
+    print("Податоците ќе се собираат и испраќаат на секои 30 секунди.")
+    print("Притисни Ctrl+C за да го прекинеш.")
     print("=" * 70)
 
-    server_ip = input("Server IP (default 192.168.1.13): ").strip() or "192.168.1.13"
-    env_token = input("ENV TOKEN (from Admin panel): ").strip()
-    if not env_token:
-        print("❌ ENV TOKEN is required.")
-        return
-
-    client = EnhancedFixedClient(server_ip, 5555, env_token=env_token)
-
-    print(f"\n🔌 Testing server {server_ip}...")
+    # Провери дали серверот е достапен
+    server_ip = input("Внеси сервер IP (default 192.168.1.13): ").strip() or "192.168.1.13"
+
+    client = EnhancedFixedClient(server_ip)
+
+    # Тест конекција
+    print(f"\n🔌 Тестирање на врска со серверот {server_ip}...")
     try:
-        r = requests.get(f"http://{server_ip}:5555/ping", timeout=5)
-        if r.ok:
-            print("   ✅ Server reachable")
+        response = requests.get(f"http://{server_ip}:5555/ping", timeout=5)
+        if response.status_code == 200:
+            print("   ✅ Серверот е достапен!")
         else:
-            print(f"   ⚠️ Server responded: {r.status_code}")
+            print(f"   ⚠️  Серверот одговори со: {response.status_code}")
+            confirm = input("   Сакаш ли да продолжиш? (y/n): ").lower()
+            if confirm != 'y':
+                return
     except Exception as e:
-        print(f"   ❌ Can't reach server: {e}")
-        return
+        print(f"   ❌ Не можам да се поврзам со серверот {server_ip}: {e}")
+        confirm = input("   Сакаш ли да продолжиш? (y/n): ").lower()
+        if confirm != 'y':
+            return
 
     try:
         count = 1
         while True:
-            print(f"\n📤 Transmission #{count}")
-            client.collect_and_send()
+            print(f"\n📤 Трансмисија #{count}")
+
+            success = client.collect_and_send()
+
             count += 1
-
-            print("\n⏳ Waiting 30s...")
+            print(f"\n⏳ Чекам 30 секунди до следната трансмисија...")
+
+            # Countdown
             for i in range(30, 0, -1):
                 if i % 10 == 0 or i <= 5:
-                    print(f"\r   {i} seconds remaining...", end="")
+                    print(f"\r   {i} секунди остануваат...", end="")
                 time.sleep(1)
             print("\r" + " " * 40 + "\r", end="")
 
     except KeyboardInterrupt:
-        print("\n\n🛑 Stopped.")
-        print(f"📊 Dashboard/API: http://{server_ip}:5555/")
+        print("\n\n🛑 Програмата е зајчана.")
+        print(f"📊 Dashboard: http://{server_ip}:5555/")
 
 
 if __name__ == "__main__":
     try:
-        import psutil  # noqa
-        import requests  # noqa
+        import psutil
+        import requests
     except ImportError:
-        print("Install modules:")
+        print("Инсталирај ги модулите:")
         print("pip install psutil requests")
-        input("Press ENTER to exit...")
-        raise SystemExit(1)
+        input("Притисни ENTER за излез...")
+        exit(1)
 
     main()
Index: try.spec
===================================================================
--- sctry.spec	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ 	(revision )
@@ -1,38 +1,0 @@
-# -*- mode: python ; coding: utf-8 -*-
-
-
-a = Analysis(
-    ['sctry.py'],
-    pathex=[],
-    binaries=[],
-    datas=[],
-    hiddenimports=[],
-    hookspath=[],
-    hooksconfig={},
-    runtime_hooks=[],
-    excludes=[],
-    noarchive=False,
-    optimize=0,
-)
-pyz = PYZ(a.pure)
-
-exe = EXE(
-    pyz,
-    a.scripts,
-    a.binaries,
-    a.datas,
-    [],
-    name='sctry',
-    debug=False,
-    bootloader_ignore_signals=False,
-    strip=False,
-    upx=True,
-    upx_exclude=[],
-    runtime_tmpdir=None,
-    console=True,
-    disable_windowed_traceback=False,
-    argv_emulation=False,
-    target_arch=None,
-    codesign_identity=None,
-    entitlements_file=None,
-)
Index: server.py
===================================================================
--- server.py	(revision ba17441aef626e29462dd37a6d1d317687b77768)
+++ server.py	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -1,865 +1,1693 @@
 #!/usr/bin/env python3
 """
-netIntel Flask Server (multi-tenant + Google login + JWT cookie session + env tokens)
-
-Auth:
-- POST /api/auth/google  -> sets HttpOnly cookie "session"
-- GET  /api/me           -> returns current user claims
-- POST /api/auth/logout  -> clears cookie
-
-Tenant admin (JWT cookie; admin role):
-- GET/POST /api/admin/environments
-- POST     /api/admin/tokens
-
-Agent (X-Env-Token):
-- POST /receive
-
-Tenant-scoped dashboard (JWT cookie):
-- GET  /api/stats
-- GET  /api/computers
-- GET  /api/computer/<name>
-- GET  /api/export/<name>
-- POST /api/chat
+POPRAVEN SERVER со Sysmon обработка
 """
-
+import traceback
+
+from flask import Flask, request, jsonify, render_template_string
+import json
+import sqlite3
+from datetime import datetime, timedelta
+import time
 import os
-import json
-import time
-import sqlite3
-import traceback
+import socket
+from collections import defaultdict
 import threading
-import secrets
-from datetime import datetime, timedelta
-from functools import wraps
-
-from flask import Flask, request, jsonify, Response
-from dotenv import load_dotenv
-
-import jwt
-from google.oauth2 import id_token
-from google.auth.transport import requests as grequests
-
-# Optional OpenAI
-try:
-    from openai import OpenAI
-except Exception:
-    OpenAI = None
-
-from flask_cors import CORS
-from dotenv import load_dotenv
-from pathlib import Path
-
-BASE_DIR = Path(__file__).resolve().parent
-load_dotenv(BASE_DIR / ".env")
-
-print("GRAFANA_API_TOKEN =", os.environ.get("GRAFANA_API_TOKEN"))
-
-
-# ----------------------------
-# Config
-# ----------------------------
-DB_FILE = os.environ.get("DB_FILE", "lan_logs_sysmon.db")
-LOG_DIR = os.environ.get("LOG_DIR", "received_data_sysmon")
-
-OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
-GOOGLE_CLIENT_ID = os.environ.get("GOOGLE_CLIENT_ID", "")
-JWT_SECRET = os.environ.get("JWT_SECRET", "dev-change-me")
-JWT_ISSUER = os.environ.get("JWT_ISSUER", "netintel")
-COOKIE_SECURE = os.environ.get("COOKIE_SECURE", "0") == "1"  # set 1 only on HTTPS
-GRAFANA_TOKEN = os.environ.get("GRAFANA_TOKEN", "")
-
-# CORS origins (add your LAN origins if needed)
-EXTRA_ORIGINS = [o.strip() for o in os.environ.get("CORS_ORIGINS", "").split(",") if o.strip()]
-DEFAULT_ORIGINS = [
-    "http://localhost:5173",
-    "http://127.0.0.1:5173",
-]
-ALLOWED_ORIGINS = list(dict.fromkeys(DEFAULT_ORIGINS + EXTRA_ORIGINS))
-
-client = OpenAI(api_key=OPENAI_API_KEY, timeout=15) if (OPENAI_API_KEY and OpenAI) else None
-
-# ----------------------------
-# App
-# ----------------------------
+import requests
+from openai import OpenAI
+from openai import OpenAI
+
+OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
+client = OpenAI(
+    api_key=OPENAI_API_KEY,
+    timeout=15  # максимум 15 секунди да чека
+) if OPENAI_API_KEY else None
+
+
+
+
+
 app = Flask(__name__)
-os.makedirs(LOG_DIR, exist_ok=True)
-
-CORS(
-    app,
-    supports_credentials=True,
-    origins=ALLOWED_ORIGINS,
-    allow_headers=[
-        "Content-Type",
-        "X-Admin-Session",
-        "X-Env",
-        "X-Env-Token",
-    ],
-    methods=["GET", "POST", "OPTIONS"],
-)
-
-
-# ----------------------------
-# DB helpers
-# ----------------------------
-def db():
+
+DB_FILE = "lan_logs_sysmon.db"
+LOG_DIR = "received_data_sysmon"
+
+
+def init_database():
+    """Креирај подобрена база со Sysmon табели"""
+    os.makedirs(LOG_DIR, exist_ok=True)
+
     conn = sqlite3.connect(DB_FILE)
-    conn.row_factory = sqlite3.Row
-    return conn
-
-
-def init_db():
-    """Create tables if missing + light migrations."""
-    conn = db()
     c = conn.cursor()
 
-    c.execute("PRAGMA foreign_keys = ON;")
-
-    # Tenants / users / memberships
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS tenants(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            name TEXT NOT NULL,
-            owner_email TEXT NOT NULL,
-            created_at TEXT
-        )
-        """)
-
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS users(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            email TEXT UNIQUE NOT NULL,
-            name TEXT,
-            picture TEXT,
-            created_at TEXT
-        )
-        """)
-
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS memberships(
-            user_id INTEGER NOT NULL,
-            tenant_id INTEGER NOT NULL,
-            role TEXT DEFAULT 'admin',
-            created_at TEXT,
-            PRIMARY KEY(user_id, tenant_id),
-            FOREIGN KEY(user_id) REFERENCES users(id),
-            FOREIGN KEY(tenant_id) REFERENCES tenants(id)
-        )
-        """)
-
-    # Environments (unique per tenant)
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS environments(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            tenant_id INTEGER NOT NULL,
-            name TEXT NOT NULL,
-            created_at TEXT,
-            UNIQUE(tenant_id, name),
-            FOREIGN KEY(tenant_id) REFERENCES tenants(id)
-        )
-        """)
-
-    # Env tokens (agent tokens)
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS env_tokens(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            tenant_id INTEGER NOT NULL,
-            env_name TEXT NOT NULL,
-            token TEXT UNIQUE NOT NULL,
-            created_at TEXT,
-            expires_at TEXT,
-            FOREIGN KEY(tenant_id) REFERENCES tenants(id)
-        )
-        """)
-
-    # Computers
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS computers(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            tenant_id INTEGER NOT NULL,
-            env_name TEXT DEFAULT 'default',
-            name TEXT NOT NULL,
-            user TEXT,
-            ip TEXT,
-            os TEXT,
-            first_seen TEXT,
-            last_seen TEXT,
-            sysmon_available INTEGER DEFAULT 0,
-            UNIQUE(tenant_id, name)
-        )
-        """)
-
-    # History
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS computer_history(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER,
-            cpu_usage REAL,
-            ram_usage REAL,
-            disk_usage REAL,
-            network_sent_mb REAL,
-            network_recv_mb REAL,
-            timestamp TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-        """)
-
-    # Processes
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS computer_processes(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER,
-            pid INTEGER,
-            name TEXT,
-            cpu_percent REAL,
-            memory_mb REAL,
-            username TEXT,
-            cmdline TEXT,
-            timestamp TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-        """)
-
-    # Sysmon events
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS sysmon_events(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER,
-            event_id INTEGER,
-            event_type TEXT,
-            message TEXT,
-            timestamp TEXT,
-            details TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-        """)
-
-    # Network connections
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS network_connections(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER,
-            pid INTEGER,
-            local_address TEXT,
-            remote_address TEXT,
-            status TEXT,
-            process_name TEXT,
-            timestamp TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-        """)
-
-    # Security alerts
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS security_alerts(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER,
-            alert_type TEXT,
-            severity TEXT,
-            description TEXT,
-            timestamp TEXT,
-            resolved INTEGER DEFAULT 0,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-        """)
-
-    # Environment settings (switch-ови по env)
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS env_settings(
-            tenant_id INTEGER NOT NULL,
-            env_name TEXT NOT NULL,
-            save_process_history INTEGER DEFAULT 0,
-            created_at TEXT,
-            updated_at TEXT,
-            PRIMARY KEY(tenant_id, env_name),
-            FOREIGN KEY(tenant_id) REFERENCES tenants(id)
-        )
-    """)
-
-    # Latest processes (only current snapshot)
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS computer_processes_current(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER NOT NULL,
-            pid INTEGER,
-            name TEXT,
-            cpu_percent REAL,
-            memory_mb REAL,
-            username TEXT,
-            cmdline TEXT,
-            timestamp TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-    """)
-
-    # History processes (optional, controlled by switch)
-    c.execute("""
-        CREATE TABLE IF NOT EXISTS computer_processes_history(
-            id INTEGER PRIMARY KEY AUTOINCREMENT,
-            computer_id INTEGER NOT NULL,
-            pid INTEGER,
-            name TEXT,
-            cpu_percent REAL,
-            memory_mb REAL,
-            username TEXT,
-            cmdline TEXT,
-            timestamp TEXT,
-            FOREIGN KEY(computer_id) REFERENCES computers(id)
-        )
-    """)
-
+    # Табела за компјутери
+    c.execute('''CREATE TABLE IF NOT EXISTS computers
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  name TEXT UNIQUE,
+                  user TEXT,
+                  ip TEXT,
+                  os TEXT,
+                  first_seen TIMESTAMP,
+                  last_seen TIMESTAMP,
+                  sysmon_available BOOLEAN DEFAULT 0)''')
+
+    # Табела за историја
+    c.execute('''CREATE TABLE IF NOT EXISTS computer_history
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  computer_id INTEGER,
+                  cpu_usage REAL,
+                  ram_usage REAL,
+                  disk_usage REAL,
+                  network_sent_mb REAL,
+                  network_recv_mb REAL,
+                  timestamp TIMESTAMP,
+                  FOREIGN KEY(computer_id) REFERENCES computers(id))''')
+
+    # Табела за процеси
+    c.execute('''CREATE TABLE IF NOT EXISTS computer_processes
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  computer_id INTEGER,
+                  pid INTEGER,
+                  name TEXT,
+                  cpu_percent REAL,
+                  memory_mb REAL,
+                  username TEXT,
+                  cmdline TEXT,
+                  timestamp TIMESTAMP,
+                  FOREIGN KEY(computer_id) REFERENCES computers(id))''')
+
+    # НОВА: Табела за Sysmon настани
+    c.execute('''CREATE TABLE IF NOT EXISTS sysmon_events
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  computer_id INTEGER,
+                  event_id INTEGER,
+                  event_type TEXT,
+                  message TEXT,
+                  timestamp TIMESTAMP,
+                  details TEXT,
+                  FOREIGN KEY(computer_id) REFERENCES computers(id))''')
+
+    # НОВА: Табела за детални мрежни конекции
+    c.execute('''CREATE TABLE IF NOT EXISTS network_connections
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  computer_id INTEGER,
+                  pid INTEGER,
+                  local_address TEXT,
+                  remote_address TEXT,
+                  status TEXT,
+                  process_name TEXT,
+                  timestamp TIMESTAMP,
+                  FOREIGN KEY(computer_id) REFERENCES computers(id))''')
+
+    # НОВА: Табела за безбедносни настани
+    c.execute('''CREATE TABLE IF NOT EXISTS security_alerts
+                 (id INTEGER PRIMARY KEY AUTOINCREMENT,
+                  computer_id INTEGER,
+                  alert_type TEXT,
+                  severity TEXT,
+                  description TEXT,
+                  timestamp TIMESTAMP,
+                  resolved BOOLEAN DEFAULT 0,
+                  FOREIGN KEY(computer_id) REFERENCES computers(id))''')
 
     conn.commit()
     conn.close()
-    print(f"✅ DB ready: {DB_FILE}")
-
-
-# ----------------------------
-# JWT helpers
-# ----------------------------
-def make_jwt(payload: dict, minutes=60 * 24):
-    exp = datetime.utcnow() + timedelta(minutes=minutes)
-    data = {**payload, "iss": JWT_ISSUER, "exp": exp}
-    return jwt.encode(data, JWT_SECRET, algorithm="HS256")
-
-
-def read_jwt(token: str):
-    return jwt.decode(token, JWT_SECRET, algorithms=["HS256"], issuer=JWT_ISSUER)
-
-
-def require_user():
-    def deco(fn):
-        @wraps(fn)
-        def wrap(*args, **kwargs):
-            tok = request.cookies.get("session") or ""
-            if not tok:
-                return jsonify({"error": "Unauthorized"}), 401
+
+    print(f"✅ Database created: {DB_FILE}")
+
+
+@app.route('/receive', methods=['POST'])
+def receive_data():
+    try:
+        data = request.json
+
+        if not data:
+            return jsonify({"error": "No data"}), 400
+
+        info = data['info']
+        computer_name = info['computer_name']
+        timestamp = datetime.now()
+        security_data = data.get('security_data', {})
+
+        conn = sqlite3.connect(DB_FILE)
+        c = conn.cursor()
+
+        # Провери дали компјутерот веќе постои
+        c.execute("SELECT id FROM computers WHERE name = ?", (computer_name,))
+        result = c.fetchone()
+
+        if result:
+            # Компјутерот постои - ажурирај го
+            computer_id = result[0]
+            c.execute('''UPDATE computers 
+                        SET user = ?, ip = ?, os = ?, last_seen = ?, sysmon_available = ?
+                        WHERE id = ?''',
+                      (info['user'], info['ip_address'], info['os'],
+                       timestamp.isoformat(), info.get('is_sysmon_available', 0),
+                       computer_id))
+        else:
+            # Нов компјутер - додади го
+            c.execute('''INSERT INTO computers 
+                        (name, user, ip, os, first_seen, last_seen, sysmon_available) 
+                        VALUES (?, ?, ?, ?, ?, ?, ?)''',
+                      (computer_name, info['user'], info['ip_address'],
+                       info['os'], timestamp.isoformat(), timestamp.isoformat(),
+                       info.get('is_sysmon_available', 0)))
+            computer_id = c.lastrowid
+
+        # Додади во историја
+        c.execute('''INSERT INTO computer_history 
+                    (computer_id, cpu_usage, ram_usage, disk_usage,
+                     network_sent_mb, network_recv_mb, timestamp)
+                    VALUES (?, ?, ?, ?, ?, ?, ?)''',
+                  (computer_id, info['cpu_usage'], info['ram_usage'],
+                   info['disk_usage'], info.get('network_sent_mb', 0),
+                   info.get('network_recv_mb', 0), info['timestamp']))
+
+        # Зачувај ги процесите
+        for proc in data.get('processes', []):
+            c.execute('''INSERT INTO computer_processes 
+                        (computer_id, pid, name, cpu_percent, memory_mb, 
+                         username, cmdline, timestamp)
+                        VALUES (?, ?, ?, ?, ?, ?, ?, ?)''',
+                      (computer_id, proc.get('pid'), proc.get('name'),
+                       proc.get('cpu_percent', 0), proc.get('memory_mb', 0),
+                       proc.get('user'), proc.get('cmdline'), info['timestamp']))
+
+        # ЗАЧУВАЈ SYSMON НАСТАНИ
+        sysmon_events_count = 0
+        for event in security_data.get('sysmon_events', []):
             try:
-                claims = read_jwt(tok)
-            except Exception:
-                return jsonify({"error": "Unauthorized"}), 401
-            request.user = claims
-            return fn(*args, **kwargs)
-
-        return wrap
-
-    return deco
-def is_process_history_enabled(tenant_id: int, env_name: str) -> bool:
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-        SELECT save_process_history
-        FROM env_settings
-        WHERE tenant_id=? AND env_name=?
-        LIMIT 1
-    """, (tenant_id, env_name))
-    row = c.fetchone()
-    conn.close()
-
-    # default: OFF ако нема запис
-    return bool(row["save_process_history"]) if row else False
-
-
-def require_tenant_admin():
-    def deco(fn):
-        @wraps(fn)
-        def wrap(*args, **kwargs):
-            tok = request.cookies.get("session") or ""
-            if not tok:
-                return jsonify({"error": "Unauthorized"}), 401
+                c.execute('''INSERT INTO sysmon_events 
+                            (computer_id, event_id, event_type, message, 
+                             timestamp, details)
+                            VALUES (?, ?, ?, ?, ?, ?)''',
+                          (computer_id, event.get('event_id'),
+                           event.get('event_type', 'Unknown'),
+                           event.get('message', ''),
+                           event.get('timestamp', info['timestamp']),
+                           json.dumps(event)))
+                sysmon_events_count += 1
+            except Exception as e:
+                print(f"Error saving Sysmon event: {e}")
+
+        # ЗАЧУВАЈ МРЕЖНИ КОНЕКЦИИ
+        for conn_data in security_data.get('network_connections', []):
             try:
-                claims = read_jwt(tok)
-            except Exception:
-                return jsonify({"error": "Unauthorized"}), 401
-            if claims.get("role") != "admin":
-                return jsonify({"error": "Forbidden"}), 403
-            request.user = claims
-            return fn(*args, **kwargs)
-
-        return wrap
-
-    return deco
-
-
-# ----------------------------
-# Env-token helpers (agents)
-# ----------------------------
-def get_env_from_token(req):
-    tok = req.headers.get("X-Env-Token", "")
-    if not tok:
-        return (None, None)
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-            SELECT env_name, tenant_id
-            FROM env_tokens
-            WHERE token = ?
-              AND (expires_at IS NULL OR expires_at > datetime('now'))
-            LIMIT 1
-        """, (tok,))
-    row = c.fetchone()
-    conn.close()
-
-    if not row:
-        return (None, None)
-    return (row["env_name"], row["tenant_id"])
-
-
-# ----------------------------
-# Utility
-# ----------------------------
+                c.execute('''INSERT INTO network_connections 
+                            (computer_id, pid, local_address, remote_address,
+                             status, process_name, timestamp)
+                            VALUES (?, ?, ?, ?, ?, ?, ?)''',
+                          (computer_id, conn_data.get('pid'),
+                           conn_data.get('local_address'),
+                           conn_data.get('remote_address'),
+                           conn_data.get('status'),
+                           conn_data.get('process_name'),
+                           info['timestamp']))
+            except Exception as e:
+                print(f"Error saving network connection: {e}")
+
+        conn.commit()
+        conn.close()
+
+        # Зачувај во JSON
+        save_json_file(data)
+
+        print(f"[{timestamp.strftime('%H:%M:%S')}] 📥 {computer_name}: "
+              f"CPU {info['cpu_usage']}% | Sysmon: {sysmon_events_count} events")
+
+        return jsonify({
+            "status": "success",
+            "message": f"Data saved for {computer_name}",
+            "computer_id": computer_id,
+            "event_count": sysmon_events_count,
+            "timestamp": timestamp.isoformat()
+        })
+
+    except Exception as e:
+        print(f"[-] Грешка: {e}")
+        return jsonify({"error": str(e)}), 500
+
+
 def save_json_file(data):
-    info = data.get("info") or {}
-    computer_name = info.get("computer_name", "unknown")
+    """Зачувај во JSON"""
+    info = data['info']
+    computer_name = info['computer_name']
     date_str = datetime.now().strftime("%Y%m%d_%H")
 
+    # Креирај folder за компјутерот
     computer_dir = os.path.join(LOG_DIR, computer_name)
     os.makedirs(computer_dir, exist_ok=True)
+
+    # Фајл за секој час (за подобро организирање)
     filepath = os.path.join(computer_dir, f"{date_str}.json")
 
+    # Додади во постоечки фајл или креирај нов
     if os.path.exists(filepath):
-        try:
-            with open(filepath, "r", encoding="utf-8") as f:
-                existing_data = json.load(f)
-        except Exception:
-            existing_data = []
+        with open(filepath, 'r', encoding='utf-8') as f:
+            existing_data = json.load(f)
     else:
         existing_data = []
 
+    # Додади нов запис
     existing_data.append({
-        "timestamp": info.get("timestamp"),
+        "timestamp": info['timestamp'],
         "info": info,
-        "processes_count": len(data.get("processes", [])),
-        "sysmon_events_count": len((data.get("security_data") or {}).get("sysmon_events", [])),
+        "processes_count": len(data.get('processes', [])),
+        "sysmon_events_count": len(data.get('security_data', {}).get('sysmon_events', []))
     })
 
-    with open(filepath, "w", encoding="utf-8") as f:
+    # Зачувај
+    with open(filepath, 'w', encoding='utf-8') as f:
         json.dump(existing_data, f, indent=2, ensure_ascii=False)
 
 
+@app.route('/')
+def dashboard():
+    """Главен dashboard"""
+    conn = sqlite3.connect(DB_FILE)
+    c = conn.cursor()
+
+    # Земaj ги сите компјутери
+    c.execute('''SELECT name, user, ip, os, first_seen, last_seen, sysmon_available 
+                 FROM computers 
+                 ORDER BY last_seen DESC''')
+
+    computers = []
+    for row in c.fetchall():
+        computer_name = row[0]
+
+        # Пресметaj колку записи има во последните 24 часа
+        c.execute('''SELECT COUNT(*) FROM computer_history 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     AND timestamp > datetime('now', '-24 hours')''',
+                  (computer_name,))
+        recent_logs = c.fetchone()[0]
+
+        # Земaj ги последните 5 записи за CPU/RAM
+        c.execute('''SELECT cpu_usage, ram_usage, timestamp 
+                     FROM computer_history 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     ORDER BY timestamp DESC LIMIT 5''',
+                  (computer_name,))
+        recent_metrics = c.fetchall()
+
+        # Sysmon настани за последните 24 часа
+        c.execute('''SELECT COUNT(*) FROM sysmon_events 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     AND timestamp > datetime('now', '-24 hours')''',
+                  (computer_name,))
+        recent_sysmon = c.fetchone()[0]
+
+        # Пресметaj просек
+        avg_cpu = sum(m[0] for m in recent_metrics) / len(recent_metrics) if recent_metrics else 0
+        avg_ram = sum(m[1] for m in recent_metrics) / len(recent_metrics) if recent_metrics else 0
+
+        # Статус
+        last_seen = datetime.fromisoformat(row[5])
+        time_diff = (datetime.now() - last_seen).seconds
+
+        if time_diff < 60:
+            status = 'online'
+            status_color = 'green'
+        elif time_diff < 300:
+            status = 'idle'
+            status_color = 'orange'
+        else:
+            status = 'offline'
+            status_color = 'gray'
+
+        computers.append({
+            'name': row[0],
+            'user': row[1],
+            'ip': row[2],
+            'os': row[3],
+            'first_seen': row[4],
+            'last_seen': row[5],
+            'sysmon_available': bool(row[6]),
+            'recent_logs': recent_logs,
+            'recent_sysmon': recent_sysmon,
+            'avg_cpu': round(avg_cpu, 1),
+            'avg_ram': round(avg_ram, 1),
+            'status': status,
+            'status_color': status_color
+        })
+
+    conn.close()
+
+    # Генерирај HTML
+    return render_template_string('''
+    <!DOCTYPE html>
+    <html>
+    <head>
+        <title>LAN Log Server - Sysmon Dashboard</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+        <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
+        <style>
+            :root {
+                --primary-color: #2c3e50;
+                --secondary-color: #3498db;
+                --danger-color: #e74c3c;
+                --warning-color: #f39c12;
+                --success-color: #27ae60;
+            }
+
+            body { 
+                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
+                margin: 0; 
+                padding: 20px; 
+                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+                min-height: 100vh;
+            }
+
+            .container {
+                max-width: 1400px;
+                margin: 0 auto;
+                background: white;
+                border-radius: 15px;
+                box-shadow: 0 20px 40px rgba(0,0,0,0.1);
+                overflow: hidden;
+            }
+
+            .header {
+                background: linear-gradient(to right, var(--primary-color), #1a2530);
+                color: white;
+                padding: 30px 40px;
+                border-radius: 15px 15px 0 0;
+            }
+
+            .header h1 {
+                margin: 0;
+                font-size: 2.5em;
+                display: flex;
+                align-items: center;
+                gap: 15px;
+            }
+
+            .stats-grid {
+                display: grid;
+                grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+                gap: 20px;
+                padding: 30px;
+            }
+
+            .stat-card {
+                background: white;
+                padding: 25px;
+                border-radius: 10px;
+                box-shadow: 0 5px 15px rgba(0,0,0,0.08);
+                border-left: 5px solid var(--secondary-color);
+                transition: transform 0.3s ease;
+            }
+
+            .stat-card:hover {
+                transform: translateY(-5px);
+            }
+
+            .stat-card.sysmon {
+                border-left-color: var(--danger-color);
+            }
+
+            .stat-card.network {
+                border-left-color: var(--success-color);
+            }
+
+            .stat-value {
+                font-size: 2.8em;
+                font-weight: bold;
+                margin: 10px 0;
+            }
+
+            .stat-label {
+                color: #666;
+                font-size: 0.9em;
+                text-transform: uppercase;
+                letter-spacing: 1px;
+            }
+
+            .computers-grid {
+                display: grid;
+                grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
+                gap: 25px;
+                padding: 30px;
+            }
+
+            .computer-card {
+                background: white;
+                border-radius: 12px;
+                padding: 25px;
+                box-shadow: 0 8px 20px rgba(0,0,0,0.1);
+                cursor: pointer;
+                transition: all 0.3s ease;
+                border: 2px solid transparent;
+                position: relative;
+                overflow: hidden;
+            }
+
+            .computer-card:hover {
+                transform: translateY(-8px);
+                box-shadow: 0 15px 30px rgba(0,0,0,0.15);
+                border-color: var(--secondary-color);
+            }
+
+            .computer-card::before {
+                content: '';
+                position: absolute;
+                top: 0;
+                left: 0;
+                right: 0;
+                height: 4px;
+                background: linear-gradient(to right, #667eea, #764ba2);
+            }
+
+            .computer-name {
+                font-size: 1.4em;
+                font-weight: bold;
+                color: var(--primary-color);
+                margin-bottom: 10px;
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+            }
+
+            .status-indicator {
+                display: inline-block;
+                width: 12px;
+                height: 12px;
+                border-radius: 50%;
+                margin-right: 8px;
+            }
+
+            .computer-info {
+                color: #555;
+                margin: 8px 0;
+                font-size: 0.95em;
+                display: flex;
+                align-items: center;
+                gap: 10px;
+            }
+
+            .computer-info i {
+                width: 20px;
+                color: #777;
+            }
+
+            .stats-row {
+                display: flex;
+                justify-content: space-between;
+                margin-top: 20px;
+                padding-top: 20px;
+                border-top: 1px solid #eee;
+            }
+
+            .stat-item {
+                text-align: center;
+            }
+
+            .stat-number {
+                font-size: 1.6em;
+                font-weight: bold;
+                color: var(--primary-color);
+            }
+
+            .stat-text {
+                font-size: 0.8em;
+                color: #777;
+                margin-top: 5px;
+            }
+
+            .sysmon-badge {
+                background: var(--danger-color);
+                color: white;
+                padding: 3px 10px;
+                border-radius: 20px;
+                font-size: 0.8em;
+                display: inline-block;
+                margin-left: 10px;
+            }
+
+            /* Модал */
+            .modal {
+                display: none;
+                position: fixed;
+                top: 0;
+                left: 0;
+                right: 0;
+                bottom: 0;
+                background: rgba(0,0,0,0.7);
+                z-index: 1000;
+                overflow-y: auto;
+            }
+
+            .modal-content {
+                background: white;
+                margin: 50px auto;
+                width: 90%;
+                max-width: 1200px;
+                border-radius: 15px;
+                animation: modalSlideIn 0.3s ease;
+            }
+
+            @keyframes modalSlideIn {
+                from {
+                    transform: translateY(-50px);
+                    opacity: 0;
+                }
+                to {
+                    transform: translateY(0);
+                    opacity: 1;
+                }
+            }
+
+            .modal-header {
+                padding: 25px 30px;
+                background: var(--primary-color);
+                color: white;
+                border-radius: 15px 15px 0 0;
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+            }
+
+            .close-btn {
+                background: none;
+                border: none;
+                color: white;
+                font-size: 1.8em;
+                cursor: pointer;
+                width: 40px;
+                height: 40px;
+                border-radius: 50%;
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                transition: background 0.2s;
+            }
+
+            .close-btn:hover {
+                background: rgba(255,255,255,0.1);
+            }
+
+            .tabs {
+                display: flex;
+                border-bottom: 1px solid #ddd;
+                padding: 0 30px;
+                background: #f8f9fa;
+            }
+
+            .tab-btn {
+                padding: 15px 25px;
+                background: none;
+                border: none;
+                cursor: pointer;
+                font-size: 1em;
+                color: #666;
+                position: relative;
+                transition: all 0.3s;
+            }
+
+            .tab-btn:hover {
+                color: var(--primary-color);
+            }
+
+            .tab-btn.active {
+                color: var(--primary-color);
+                font-weight: bold;
+            }
+
+            .tab-btn.active::after {
+                content: '';
+                position: absolute;
+                bottom: -1px;
+                left: 0;
+                right: 0;
+                height: 3px;
+                background: var(--secondary-color);
+            }
+
+            .tab-content {
+                padding: 30px;
+                display: none;
+            }
+
+            .tab-content.active {
+                display: block;
+            }
+
+            .events-table {
+                width: 100%;
+                border-collapse: collapse;
+                margin-top: 20px;
+            }
+
+            .events-table th {
+                background: #f8f9fa;
+                padding: 15px;
+                text-align: left;
+                border-bottom: 2px solid #dee2e6;
+                color: var(--primary-color);
+            }
+
+            .events-table td {
+                padding: 12px 15px;
+                border-bottom: 1px solid #eee;
+            }
+
+            .events-table tr:hover {
+                background: #f8f9fa;
+            }
+
+            .severity-high {
+                background: #ffe6e6;
+                color: var(--danger-color);
+                padding: 3px 10px;
+                border-radius: 3px;
+                font-weight: bold;
+            }
+
+            .severity-medium {
+                background: #fff3cd;
+                color: var(--warning-color);
+                padding: 3px 10px;
+                border-radius: 3px;
+            }
+
+            .event-details {
+                max-width: 500px;
+                word-wrap: break-word;
+                font-family: monospace;
+                font-size: 0.9em;
+            }
+
+            .filter-bar {
+                padding: 20px 30px;
+                background: #f8f9fa;
+                border-bottom: 1px solid #ddd;
+            }
+
+            .search-box {
+                padding: 10px 15px;
+                border: 1px solid #ddd;
+                border-radius: 5px;
+                width: 300px;
+            }
+
+            .btn {
+                padding: 10px 20px;
+                background: var(--secondary-color);
+                color: white;
+                border: none;
+                border-radius: 5px;
+                cursor: pointer;
+                transition: background 0.3s;
+            }
+
+            .btn:hover {
+                background: #2980b9;
+            }
+
+            .chart-container {
+                height: 300px;
+                margin: 20px 0;
+            }
+
+            @media (max-width: 768px) {
+                .computers-grid {
+                    grid-template-columns: 1fr;
+                }
+
+                .modal-content {
+                    width: 95%;
+                    margin: 20px auto;
+                }
+            }
+        </style>
+    </head>
+    <body>
+        <div class="container">
+            <div class="header">
+                <h1>
+                    <span>🛡️ LAN Security Monitor</span>
+                    <small style="font-size: 0.5em; opacity: 0.8;">Sysmon Edition</small>
+                </h1>
+                <p>Server: {{ socket.gethostbyname(socket.gethostname()) }}:5555 | Total Computers: {{ computers|length }}</p>
+            </div>
+
+            <div class="stats-grid">
+                <div class="stat-card">
+                    <div class="stat-label">Total Computers</div>
+                    <div class="stat-value">{{ computers|length }}</div>
+                    <div class="stat-text">Monitored Systems</div>
+                </div>
+
+                <div class="stat-card sysmon">
+                    <div class="stat-label">Sysmon Events (24h)</div>
+                    <div class="stat-value" id="total-sysmon">0</div>
+                    <div class="stat-text">Security Events</div>
+                </div>
+
+                <div class="stat-card network">
+                    <div class="stat-label">Network Connections</div>
+                    <div class="stat-value" id="total-network">0</div>
+                    <div class="stat-text">Active Connections</div>
+                </div>
+            </div>
+
+            <div style="padding: 0 30px;">
+                <h2>Connected Computers</h2>
+                <div class="computers-grid" id="computers-grid">
+                    {% for comp in computers %}
+                    <div class="computer-card" onclick="showComputerDetails('{{ comp.name }}')">
+                        <div class="computer-name">
+                            {{ comp.name }}
+                            <span class="status-indicator" style="background: {{ comp.status_color }}"></span>
+                        </div>
+
+                        <div class="computer-info">
+                            <i>👤</i> {{ comp.user }}
+                        </div>
+
+                        <div class="computer-info">
+                            <i>🌐</i> {{ comp.ip }}
+                        </div>
+
+                        <div class="computer-info">
+                            <i>💻</i> {{ comp.os[:40] }}
+                        </div>
+
+                        <div class="computer-info">
+                            <i>⏰</i> Last seen: {{ comp.last_seen[11:19] }}
+                        </div>
+
+                        {% if comp.sysmon_available %}
+                        <div class="computer-info">
+                            <i>🛡️</i> Sysmon Available
+                            <span class="sysmon-badge">{{ comp.recent_sysmon }} events</span>
+                        </div>
+                        {% endif %}
+
+                        <div class="stats-row">
+                            <div class="stat-item">
+                                <div class="stat-number">{{ comp.avg_cpu }}%</div>
+                                <div class="stat-text">CPU</div>
+                            </div>
+                            <div class="stat-item">
+                                <div class="stat-number">{{ comp.avg_ram }}%</div>
+                                <div class="stat-text">RAM</div>
+                            </div>
+                            <div class="stat-item">
+                                <div class="stat-number">{{ comp.recent_logs }}</div>
+                                <div class="stat-text">Logs (24h)</div>
+                            </div>
+                        </div>
+                    </div>
+                    {% endfor %}
+                </div>
+            </div>
+        </div>
+
+        <!-- Детален модал -->
+        <div class="modal" id="computer-modal">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h2 id="modal-title">Computer Details</h2>
+                    <button class="close-btn" onclick="closeModal()">×</button>
+                </div>
+
+                <div class="filter-bar">
+                    <input type="text" id="event-search" class="search-box" placeholder="Search events..." 
+                           onkeyup="filterEvents()">
+                    <button class="btn" onclick="exportData()">Export Data</button>
+                </div>
+
+                <div class="tabs">
+                    <button class="tab-btn active" onclick="switchTab('overview')">Overview</button>
+                    <button class="tab-btn" onclick="switchTab('sysmon')">Sysmon Events</button>
+                    <button class="tab-btn" onclick="switchTab('processes')">Processes</button>
+                    <button class="tab-btn" onclick="switchTab('network')">Network</button>
+                    <button class="tab-btn" onclick="switchTab('charts')">Charts</button>
+                </div>
+
+                <!-- Overview Tab -->
+                <div class="tab-content active" id="overview-tab">
+                    <h3>System Overview</h3>
+                    <div id="overview-content"></div>
+                </div>
+
+                <!-- Sysmon Events Tab -->
+                <div class="tab-content" id="sysmon-tab">
+                    <h3>Security Events</h3>
+                    <table class="events-table" id="sysmon-table">
+                        <thead>
+                            <tr>
+                                <th>Time</th>
+                                <th>Event ID</th>
+                                <th>Type</th>
+                                <th>Severity</th>
+                                <th>Message</th>
+                                <th>Actions</th>
+                            </tr>
+                        </thead>
+                        <tbody id="sysmon-events">
+                            <!-- Events will be populated here -->
+                        </tbody>
+                    </table>
+                </div>
+
+                <!-- Processes Tab -->
+                <div class="tab-content" id="processes-tab">
+                    <h3>Running Processes</h3>
+                    <table class="events-table">
+                        <thead>
+                            <tr>
+                                <th>PID</th>
+                                <th>Name</th>
+                                <th>User</th>
+                                <th>CPU %</th>
+                                <th>Memory</th>
+                                <th>Command Line</th>
+                            </tr>
+                        </thead>
+                        <tbody id="processes-list">
+                            <!-- Processes will be populated here -->
+                        </tbody>
+                    </table>
+                </div>
+
+                <!-- Network Tab -->
+                <div class="tab-content" id="network-tab">
+                    <h3>Network Connections</h3>
+                    <table class="events-table">
+                        <thead>
+                            <tr>
+                                <th>PID</th>
+                                <th>Process</th>
+                                <th>Local Address</th>
+                                <th>Remote Address</th>
+                                <th>Status</th>
+                                <th>Timestamp</th>
+                            </tr>
+                        </thead>
+                        <tbody id="network-connections">
+                            <!-- Connections will be populated here -->
+                        </tbody>
+                    </table>
+                </div>
+
+                <!-- Charts Tab -->
+                <div class="tab-content" id="charts-tab">
+                    <h3>Performance Analytics</h3>
+                    <div class="chart-container">
+                        <canvas id="performance-chart"></canvas>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Event Details Modal -->
+        <div class="modal" id="event-modal" style="display: none;">
+            <div class="modal-content" style="max-width: 800px;">
+                <div class="modal-header">
+                    <h2>Event Details</h2>
+                    <button class="close-btn" onclick="closeEventModal()">×</button>
+                </div>
+                <div style="padding: 30px;">
+                    <pre id="event-details-content" style="background: #f5f5f5; padding: 20px; border-radius: 5px; overflow: auto; max-height: 500px;"></pre>
+                </div>
+            </div>
+        </div>
+
+        <script>
+            let currentComputer = null;
+            let allSysmonEvents = [];
+
+            function updateStats() {
+                // Ажурирај ги вкупните статистики
+                fetch('/api/stats')
+                    .then(r => r.json())
+                    .then(data => {
+                        document.getElementById('total-sysmon').textContent = data.total_sysmon_events;
+                        document.getElementById('total-network').textContent = data.total_network_connections;
+                    });
+            }
+
+            function showComputerDetails(computerName) {
+                currentComputer = computerName;
+
+                // Покажи модал
+                document.getElementById('computer-modal').style.display = 'block';
+                document.getElementById('modal-title').textContent = computerName;
+
+                // Вчитувај податоци
+                loadComputerDetails(computerName);
+            }
+
+            function loadComputerDetails(computerName) {
+                // Вчитувај целосни податоци за компјутерот
+                fetch(`/api/computer/${encodeURIComponent(computerName)}`)
+                    .then(response => response.json())
+                    .then(data => {
+                        populateOverview(data);
+                        populateSysmonEvents(data);
+                        populateProcesses(data);
+                        populateNetwork(data);
+                        updateCharts(data);
+                    })
+                    .catch(error => {
+                        console.error('Error loading details:', error);
+                    });
+            }
+
+            function populateOverview(data) {
+                const overview = document.getElementById('overview-content');
+                overview.innerHTML = `
+                    <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;">
+                        <div>
+                            <h4>System Information</h4>
+                            <p><strong>User:</strong> ${data.computer.user}</p>
+                            <p><strong>IP:</strong> ${data.computer.ip}</p>
+                            <p><strong>OS:</strong> ${data.computer.os}</p>
+                            <p><strong>First Seen:</strong> ${new Date(data.computer.first_seen).toLocaleString()}</p>
+                            <p><strong>Last Seen:</strong> ${new Date(data.computer.last_seen).toLocaleString()}</p>
+                            <p><strong>Total Logs:</strong> ${data.computer.total_logs}</p>
+                        </div>
+                        <div>
+                            <h4>Current Status</h4>
+                            <p><strong>CPU Usage:</strong> ${data.current_metrics?.cpu_usage || 0}%</p>
+                            <p><strong>RAM Usage:</strong> ${data.current_metrics?.ram_usage || 0}%</p>
+                            <p><strong>Disk Usage:</strong> ${data.current_metrics?.disk_usage || 0}%</p>
+                            <p><strong>Network Sent:</strong> ${data.current_metrics?.network_sent_mb || 0} MB</p>
+                            <p><strong>Network Received:</strong> ${data.current_metrics?.network_recv_mb || 0} MB</p>
+                        </div>
+                    </div>
+                `;
+            }
+
+            function populateSysmonEvents(data) {
+                const tableBody = document.getElementById('sysmon-events');
+                tableBody.innerHTML = '';
+                allSysmonEvents = data.sysmon_events || [];
+
+                allSysmonEvents.forEach(event => {
+                    const row = tableBody.insertRow();
+                    const time = new Date(event.timestamp).toLocaleTimeString();
+                    const severity = getSeverityForEvent(event.event_id);
+
+                    row.innerHTML = `
+                        <td>${time}</td>
+                        <td>${event.event_id}</td>
+                        <td>${event.event_type}</td>
+                        <td><span class="severity-${severity}">${severity.toUpperCase()}</span></td>
+                        <td class="event-details">${event.message.substring(0, 100)}...</td>
+                        <td>
+                            <button class="btn" style="padding: 5px 10px; font-size: 0.9em;" 
+                                    onclick="showEventDetails(${JSON.stringify(event).replace(/"/g, '&quot;')})">
+                                View Details
+                            </button>
+                        </td>
+                    `;
+                });
+            }
+
+            function populateProcesses(data) {
+                const tableBody = document.getElementById('processes-list');
+                tableBody.innerHTML = '';
+
+                (data.recent_processes || []).forEach(proc => {
+                    const row = tableBody.insertRow();
+                    row.innerHTML = `
+                        <td>${proc.pid}</td>
+                        <td>${proc.name}</td>
+                        <td>${proc.username}</td>
+                        <td>${proc.cpu_percent || 0}</td>
+                        <td>${proc.memory_mb || 0} MB</td>
+                        <td class="event-details">${proc.cmdline || ''}</td>
+                    `;
+                });
+            }
+
+            function populateNetwork(data) {
+                const tableBody = document.getElementById('network-connections');
+                tableBody.innerHTML = '';
+
+                (data.network_connections || []).forEach(conn => {
+                    const row = tableBody.insertRow();
+                    const time = new Date(conn.timestamp).toLocaleTimeString();
+                    row.innerHTML = `
+                        <td>${conn.pid}</td>
+                        <td>${conn.process_name || 'N/A'}</td>
+                        <td>${conn.local_address || 'N/A'}</td>
+                        <td>${conn.remote_address || 'N/A'}</td>
+                        <td>${conn.status}</td>
+                        <td>${time}</td>
+                    `;
+                });
+            }
+
+            function updateCharts(data) {
+                const ctx = document.getElementById('performance-chart').getContext('2d');
+                const history = data.history || [];
+
+                const labels = history.slice(-20).map(h => 
+                    new Date(h.timestamp).toLocaleTimeString()
+                );
+                const cpuData = history.slice(-20).map(h => h.cpu_usage);
+                const ramData = history.slice(-20).map(h => h.ram_usage);
+
+                if(window.performanceChart) {
+                    window.performanceChart.destroy();
+                }
+
+                window.performanceChart = new Chart(ctx, {
+                    type: 'line',
+                    data: {
+                        labels: labels,
+                        datasets: [
+                            {
+                                label: 'CPU Usage %',
+                                data: cpuData,
+                                borderColor: 'rgb(255, 99, 132)',
+                                backgroundColor: 'rgba(255, 99, 132, 0.2)',
+                                tension: 0.4
+                            },
+                            {
+                                label: 'RAM Usage %',
+                                data: ramData,
+                                borderColor: 'rgb(54, 162, 235)',
+                                backgroundColor: 'rgba(54, 162, 235, 0.2)',
+                                tension: 0.4
+                            }
+                        ]
+                    },
+                    options: {
+                        responsive: true,
+                        maintainAspectRatio: false,
+                        scales: {
+                            y: {
+                                beginAtZero: true,
+                                max: 100
+                            }
+                        }
+                    }
+                });
+            }
+
+            function getSeverityForEvent(eventId) {
+                const highSeverity = [1, 3, 8, 10]; // Process creation, network, remote thread, process access
+                const mediumSeverity = [5, 6, 7, 11, 22]; // Process termination, driver/image load, file create, DNS
+
+                if (highSeverity.includes(parseInt(eventId))) return 'high';
+                if (mediumSeverity.includes(parseInt(eventId))) return 'medium';
+                return 'low';
+            }
+
+            function showEventDetails(event) {
+                document.getElementById('event-details-content').textContent = 
+                    JSON.stringify(event, null, 2);
+                document.getElementById('event-modal').style.display = 'block';
+            }
+
+            function closeEventModal() {
+                document.getElementById('event-modal').style.display = 'none';
+            }
+
+            function filterEvents() {
+                const searchTerm = document.getElementById('event-search').value.toLowerCase();
+                const tableBody = document.getElementById('sysmon-events');
+                tableBody.innerHTML = '';
+
+                allSysmonEvents
+                    .filter(event => 
+                        event.message.toLowerCase().includes(searchTerm) ||
+                        event.event_type.toLowerCase().includes(searchTerm) ||
+                        event.event_id.toString().includes(searchTerm)
+                    )
+                    .forEach(event => {
+                        const row = tableBody.insertRow();
+                        const time = new Date(event.timestamp).toLocaleTimeString();
+                        const severity = getSeverityForEvent(event.event_id);
+
+                        row.innerHTML = `
+                            <td>${time}</td>
+                            <td>${event.event_id}</td>
+                            <td>${event.event_type}</td>
+                            <td><span class="severity-${severity}">${severity.toUpperCase()}</span></td>
+                            <td class="event-details">${event.message.substring(0, 100)}...</td>
+                            <td>
+                                <button class="btn" style="padding: 5px 10px; font-size: 0.9em;" 
+                                        onclick="showEventDetails(${JSON.stringify(event).replace(/"/g, '&quot;')})">
+                                    View Details
+                                </button>
+                            </td>
+                        `;
+                    });
+            }
+
+            function switchTab(tabName) {
+                // Деактивирај сите tab-ови
+                document.querySelectorAll('.tab-btn').forEach(btn => {
+                    btn.classList.remove('active');
+                });
+                document.querySelectorAll('.tab-content').forEach(tab => {
+                    tab.classList.remove('active');
+                });
+
+                // Активирај избраниот tab
+                document.querySelector(`[onclick="switchTab('${tabName}')"]`).classList.add('active');
+                document.getElementById(`${tabName}-tab`).classList.add('active');
+            }
+
+            function closeModal() {
+                document.getElementById('computer-modal').style.display = 'none';
+                currentComputer = null;
+                allSysmonEvents = [];
+            }
+
+            function exportData() {
+                if (!currentComputer) return;
+
+                fetch(`/api/export/${encodeURIComponent(currentComputer)}`)
+                    .then(response => response.blob())
+                    .then(blob => {
+                        const url = window.URL.createObjectURL(blob);
+                        const a = document.createElement('a');
+                        a.href = url;
+                        a.download = `${currentComputer}_export_${new Date().toISOString().slice(0,10)}.json`;
+                        document.body.appendChild(a);
+                        a.click();
+                        document.body.removeChild(a);
+                    });
+            }
+
+            // Auto-refresh
+            setInterval(() => {
+                updateStats();
+
+                // Ажурирај детали ако модал е отворен
+                if (currentComputer && document.getElementById('computer-modal').style.display === 'block') {
+                    loadComputerDetails(currentComputer);
+                }
+            }, 30000);
+
+            // Затвори модал со Escape
+            document.addEventListener('keydown', (e) => {
+                if (e.key === 'Escape') {
+                    closeModal();
+                    closeEventModal();
+                }
+            });
+
+            // Иницијализирај статистики при старт
+            updateStats();
+        </script>
+    </body>
+    </html>
+    ''', computers=computers, socket=socket, datetime=datetime)
+
+
+@app.route('/api/computer/<computer_name>')
+def get_computer_details(computer_name):
+    """Добиј сите детални информации за еден компјутер"""
+    conn = sqlite3.connect(DB_FILE)
+    c = conn.cursor()
+
+    # Основни информации
+    c.execute('''SELECT id, name, user, ip, os, first_seen, last_seen 
+                 FROM computers WHERE name = ?''', (computer_name,))
+    computer_data = c.fetchone()
+
+    if not computer_data:
+        conn.close()
+        return jsonify({"error": "Computer not found"}), 404
+
+    computer_id = computer_data[0]
+
+    # Број на сите записи
+    c.execute('SELECT COUNT(*) FROM computer_history WHERE computer_id = ?', (computer_id,))
+    total_logs = c.fetchone()[0]
+
+    # Сите history записи
+    c.execute('''SELECT cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp 
+                 FROM computer_history 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 100''', (computer_id,))
+    history = []
+    for row in c.fetchall():
+        history.append({
+            'cpu_usage': row[0],
+            'ram_usage': row[1],
+            'disk_usage': row[2],
+            'network_sent_mb': row[3],
+            'network_recv_mb': row[4],
+            'timestamp': row[5]
+        })
+
+    # Последни метрики
+    current_metrics = history[0] if history else {}
+
+    # Последни процеси
+    c.execute('''SELECT pid, name, username, cpu_percent, memory_mb, cmdline, timestamp 
+                 FROM computer_processes 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 100''', (computer_id,))
+    recent_processes = []
+    for row in c.fetchall():
+        recent_processes.append({
+            'pid': row[0],
+            'name': row[1],
+            'username': row[2],
+            'cpu_percent': row[3],
+            'memory_mb': row[4],
+            'cmdline': row[5],
+            'timestamp': row[6]
+        })
+
+    # SYSMON НАСТАНИ
+    c.execute('''SELECT event_id, event_type, message, timestamp, details 
+                 FROM sysmon_events 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 200''', (computer_id,))
+    sysmon_events = []
+    for row in c.fetchall():
+        try:
+            details = json.loads(row[4]) if row[4] else {}
+        except:
+            details = {}
+
+        sysmon_events.append({
+            'event_id': row[0],
+            'event_type': row[1],
+            'message': row[2],
+            'timestamp': row[3],
+            'details': details
+        })
+
+    # Мрежни конекции
+    c.execute('''SELECT pid, process_name, local_address, remote_address, status, timestamp 
+                 FROM network_connections 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 100''', (computer_id,))
+    network_connections = []
+    for row in c.fetchall():
+        network_connections.append({
+            'pid': row[0],
+            'process_name': row[1],
+            'local_address': row[2],
+            'remote_address': row[3],
+            'status': row[4],
+            'timestamp': row[5]
+        })
+
+    conn.close()
+
+    return jsonify({
+        'computer': {
+            'id': computer_data[0],
+            'name': computer_data[1],
+            'user': computer_data[2],
+            'ip': computer_data[3],
+            'os': computer_data[4],
+            'first_seen': computer_data[5],
+            'last_seen': computer_data[6],
+            'total_logs': total_logs
+        },
+        'history': history,
+        'current_metrics': current_metrics,
+        'recent_processes': recent_processes,
+        'sysmon_events': sysmon_events,
+        'network_connections': network_connections
+    })
+
+@app.route('/api/computers')
+def get_computers():
+    conn = sqlite3.connect(DB_FILE)
+    c = conn.cursor()
+
+    c.execute('''SELECT name, user, ip, os, first_seen, last_seen, sysmon_available 
+                 FROM computers 
+                 ORDER BY last_seen DESC''')
+
+    computers = []
+    for row in c.fetchall():
+        computer_name = row[0]
+
+        # recent logs
+        c.execute('''SELECT COUNT(*) FROM computer_history 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     AND timestamp > datetime('now', '-24 hours')''',
+                  (computer_name,))
+        recent_logs = c.fetchone()[0]
+
+        # last 5 metrics
+        c.execute('''SELECT cpu_usage, ram_usage, timestamp 
+                     FROM computer_history 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     ORDER BY timestamp DESC LIMIT 5''',
+                  (computer_name,))
+        recent_metrics = c.fetchall()
+
+        c.execute('''SELECT COUNT(*) FROM sysmon_events 
+                     WHERE computer_id = (SELECT id FROM computers WHERE name = ?)
+                     AND timestamp > datetime('now', '-24 hours')''',
+                  (computer_name,))
+        recent_sysmon = c.fetchone()[0]
+
+        avg_cpu = sum(m[0] for m in recent_metrics) / len(recent_metrics) if recent_metrics else 0
+        avg_ram = sum(m[1] for m in recent_metrics) / len(recent_metrics) if recent_metrics else 0
+
+        last_seen = datetime.fromisoformat(row[5])
+        time_diff = (datetime.now() - last_seen).seconds
+
+        if time_diff < 60:
+            status = 'online'
+            status_color = 'green'
+        elif time_diff < 300:
+            status = 'idle'
+            status_color = 'orange'
+        else:
+            status = 'offline'
+            status_color = 'gray'
+
+        computers.append({
+            'name': row[0],
+            'user': row[1],
+            'ip': row[2],
+            'os': row[3],
+            'first_seen': row[4],
+            'last_seen': row[5],
+            'sysmon_available': bool(row[6]),
+            'recent_logs': recent_logs,
+            'recent_sysmon': recent_sysmon,
+            'avg_cpu': round(avg_cpu, 1),
+            'avg_ram': round(avg_ram, 1),
+            'status': status,
+            'status_color': status_color
+        })
+
+    conn.close()
+    return jsonify(computers)
+
+@app.route('/api/stats')
+def get_stats():
+    """Добиј глобални статистики"""
+    conn = sqlite3.connect(DB_FILE)
+    c = conn.cursor()
+
+    # Вкупно Sysmon настани за последните 24 часа
+    c.execute('''SELECT COUNT(*) FROM sysmon_events 
+                 WHERE timestamp > datetime('now', '-24 hours')''')
+    total_sysmon_events = c.fetchone()[0]
+
+    # Вкупно мрежни конекции за последните 24 часа
+    c.execute('''SELECT COUNT(*) FROM network_connections 
+                 WHERE timestamp > datetime('now', '-24 hours')''')
+    total_network_connections = c.fetchone()[0]
+
+    conn.close()
+
+    return jsonify({
+        'total_sysmon_events': total_sysmon_events,
+        'total_network_connections': total_network_connections,
+        'server_time': datetime.now().isoformat()
+    })
+
+def build_rag_context(question, computer_name=None, limit_per_table=10):
+    try:
+        conn = sqlite3.connect(DB_FILE)
+        c = conn.cursor()
+
+        params = []
+        comp_filter = ""
+        if computer_name:
+            comp_filter = "AND computer_id = (SELECT id FROM computers WHERE name = ?)"
+            params.append(computer_name)
+
+        # Sysmon настани
+        c.execute(
+            f"""
+            SELECT timestamp, event_id, event_type, message
+            FROM sysmon_events
+            WHERE 1=1 {comp_filter}
+            ORDER BY timestamp DESC
+            LIMIT ?
+            """,
+            params + [limit_per_table],
+        )
+        sysmon_rows = c.fetchall()
+
+        # Перформанс историја
+        c.execute(
+            f"""
+            SELECT timestamp, cpu_usage, ram_usage, disk_usage,
+                   network_sent_mb, network_recv_mb
+            FROM computer_history
+            WHERE 1=1 {comp_filter}
+            ORDER BY timestamp DESC
+            LIMIT ?
+            """,
+            params + [limit_per_table],
+        )
+        perf_rows = c.fetchall()
+
+        # Процеси
+        c.execute(
+            f"""
+            SELECT timestamp, pid, name, cpu_percent, memory_mb 
+            FROM computer_processes
+            WHERE 1=1 {comp_filter}
+            ORDER BY timestamp DESC
+            LIMIT ?
+            """,
+            params + [limit_per_table],
+        )
+        proc_rows = c.fetchall()
+
+        conn.close()
+
+        print("[RAG] sysmon:", len(sysmon_rows),
+              "| perf:", len(perf_rows),
+              "| proc:", len(proc_rows))
+
+        lines = []
+
+        for ts, eid, etype, msg in sysmon_rows:
+            lines.append(f"[SYSMON] {ts} | Event {eid} ({etype}): {msg}")
+
+        for ts, cpu, ram, disk, nsent, nrecv in perf_rows:
+            lines.append(
+                f"[PERF] {ts} | CPU {cpu}% | RAM {ram}% | Disk {disk}% | "
+                f"Net sent {nsent}MB / recv {nrecv}MB"
+            )
+
+        for ts, pid, name, cpu, mem in proc_rows:
+            lines.append(f"[PROC] {ts} | PID {pid} | {name} | CPU {cpu}% | RAM {mem}MB")
+
+        context = "\n".join(lines)
+        print("[RAG] sample context:\n", "\n".join(lines[:5]))
+        return context
+
+    except Exception as e:
+        traceback.print_exc()
+        return ""
+
+# def ask_llm_with_context(question, context, language="mk"):
+#     if not client:
+#         return "Немаш поставено OPENAI_API_KEY на серверот."
+#
+#     system_msg = (
+#         "Ти си асистент за безбедност и систем мониторинг. "
+#         "Одговараш базирано ИСКЛУЧИВО на дадените логови што ти се дадени. "
+#         "Ако нема доволно информации, кажи дека нема доволно податоци. "
+#         "Објаснувај кратко и јасно."
+#     )
+#
+#     user_msg = f"Прашање: {question}\n\nЛогови:\n{context or 'Нема логови.'}"
+#
+#     try:
+#         completion = client.chat.completions.create(
+#             model="gpt-4.1-mini",
+#             messages=[
+#                 {"role": "system", "content": system_msg},
+#                 {"role": "user", "content": user_msg},
+#             ],
+#             temperature=0.2,
+#         )
+#         return completion.choices[0].message.content
+#     except Exception as e:
+#         # Може попрецизно: openai.APITimeoutError, openai.APIConnectionError итн.
+#         return f"Грешка при повик кон LLM: {e}"
+
+def ask_llm_with_context(question, context, language="mk"):
+    """
+    Вика OpenAI модел и враќа одговор базиран на контекстот од логови.
+    """
+    if not client:
+        return "Немаш поставено OPENAI_API_KEY на серверот."
+
+    system_msg = (
+        "Ти си асистент за безбедност и систем мониторинг. "
+        "Одговараш базирано ИСКЛУЧИВО на дадените логови што ти се дадени. "
+        "Типови редови во логовите:\n"
+        "- [SYSMON] ... Sysmon безбедносни настани.\n"
+        "- [PERF] ... Општи перформанси (CPU, RAM, диск, мрежа).\n"
+        "- [PROC] ... Информации за поединечни процеси: PID, име, CPU%, RAM MB.\n"
+        "Кога корисникот прашува за процеси и нивна потрошувачка, "
+        "СЕКОГАШ користи ги [PROC] редовите. "
+        "Никогаш не кажувај дека 'нема информации за процеси' ако постои барем еден [PROC] ред. "
+        "Ако навистина НЕМА [PROC] редови, тогаш можеш да кажеш дека нема доволно податоци. "
+        "Објаснувај кратко и јасно."
+    )
+
+    user_msg = f"Прашање: {question}\n\nЛогови:\n{context or 'Нема логови.'}"
+
+    try:
+        print("[LLM] Calling OpenAI…")
+        completion = client.chat.completions.create(
+            model="gpt-4.1-mini",
+            messages=[
+                {"role": "system", "content": system_msg},
+                {"role": "user", "content": user_msg},
+            ],
+            temperature=0.2,
+        )
+        print("[LLM] Got response")
+        return completion.choices[0].message.content
+
+    except Exception as e:
+        print("[LLM] ERROR:", e)
+        return f"Грешка при повик кон LLM: {e}"
+
+
+
+#
+# def ask_llm_with_context(question, context, language="mk"):
+#     payload = {
+#         "model": "deepseek-r1:1.5b",
+#         "prompt": f"Прашање: {question}\n\nКонтекст:\n{context}",
+#         "stream": False
+#     }
+#
+#     try:
+#         r = requests.post("http://localhost:11434/api/generate", json=payload)
+#         r.raise_for_status()
+#         data = r.json()
+#         return data.get("response", "")
+#     except Exception as e:
+#         return f"Грешка при повик кон Ollama: {e}"
+
+
+@app.route('/api/export/<computer_name>')
+def export_computer_data(computer_name):
+    """Експортирај ги сите податоци за еден компјутер"""
+    data = {}
+
+    conn = sqlite3.connect(DB_FILE)
+    c = conn.cursor()
+
+    # Основни информации за компјутерот
+    c.execute('''SELECT * FROM computers WHERE name = ?''', (computer_name,))
+    columns = [description[0] for description in c.description]
+    computer_data = c.fetchone()
+
+    if computer_data:
+        data['computer'] = dict(zip(columns, computer_data))
+
+        # Историја
+        computer_id = computer_data[0]
+        c.execute('''SELECT * FROM computer_history WHERE computer_id = ? ORDER BY timestamp''', (computer_id,))
+        data['history'] = [dict(zip([d[0] for d in c.description], row)) for row in c.fetchall()]
+
+        # Sysmon настани
+        c.execute('''SELECT * FROM sysmon_events WHERE computer_id = ? ORDER BY timestamp''', (computer_id,))
+        data['sysmon_events'] = [dict(zip([d[0] for d in c.description], row)) for row in c.fetchall()]
+
+        # Процеси
+        c.execute('''SELECT * FROM computer_processes WHERE computer_id = ? ORDER BY timestamp''', (computer_id,))
+        data['processes'] = [dict(zip([d[0] for d in c.description], row)) for row in c.fetchall()]
+
+        # Мрежни конекции
+        c.execute('''SELECT * FROM network_connections WHERE computer_id = ? ORDER BY timestamp''', (computer_id,))
+        data['network_connections'] = [dict(zip([d[0] for d in c.description], row)) for row in c.fetchall()]
+
+    conn.close()
+
+    # Креирај JSON одговор
+    from flask import Response
+    response = Response(
+        json.dumps(data, indent=2, default=str),
+        mimetype='application/json',
+        headers={'Content-Disposition': f'attachment; filename={computer_name}_export.json'}
+    )
+
+    return response
+
+
+@app.route('/ping')
+def ping():
+    return jsonify({
+        'status': 'alive',
+        'server_time': datetime.now().isoformat(),
+        'version': '2.0_sysmon',
+        'database': DB_FILE
+    })
+
+
+def get_local_ip():
+    try:
+        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+        s.connect(("8.8.8.8", 80))
+        local_ip = s.getsockname()[0]
+        s.close()
+        return local_ip
+    except:
+        return "127.0.0.1"
+
+
 def cleanup_old_data():
-    """Deletes old rows (30 days) every hour."""
+    """Чисти стари податоци од базата (стари од 30 дена)"""
     while True:
-        time.sleep(3600)
+        time.sleep(3600)  # Чисти на секој час
         try:
-            conn = db()
+            conn = sqlite3.connect(DB_FILE)
             c = conn.cursor()
-            cutoff = (datetime.now() - timedelta(days=30)).isoformat()
-
-            c.execute("DELETE FROM computer_history WHERE timestamp < ?", (cutoff,))
-            c.execute("DELETE FROM sysmon_events WHERE timestamp < ?", (cutoff,))
-            c.execute("DELETE FROM network_connections WHERE timestamp < ?", (cutoff,))
-            c.execute("DELETE FROM computer_processes_history WHERE timestamp < ?", (cutoff,))
+
+            cutoff_date = (datetime.now() - timedelta(days=30)).isoformat()
+
+            # Избриши стари записи
+            c.execute("DELETE FROM computer_history WHERE timestamp < ?", (cutoff_date,))
+            c.execute("DELETE FROM computer_processes WHERE timestamp < ?", (cutoff_date,))
+            c.execute("DELETE FROM sysmon_events WHERE timestamp < ?", (cutoff_date,))
+            c.execute("DELETE FROM network_connections WHERE timestamp < ?", (cutoff_date,))
 
             conn.commit()
             conn.close()
-            print(f"[Cleanup] Deleted entries older than {cutoff}")
+
+            print(f"[Cleanup] Избришани стари записи пред {cutoff_date}")
+
         except Exception as e:
-            print("[Cleanup] Error:", e)
-
-
-# ----------------------------
-# Auth endpoints
-# ----------------------------
-@app.route("/api/auth/google", methods=["POST"])
-def auth_google():
-    data = request.get_json(force=True, silent=True) or {}
-    credential = (data.get("credential") or "").strip()
-    if not credential:
-        return jsonify({"error": "Missing credential"}), 400
-    if not GOOGLE_CLIENT_ID:
-        return jsonify({"error": "Server missing GOOGLE_CLIENT_ID"}), 500
-
+            print(f"[Cleanup] Грешка: {e}")
+
+import time
+@app.route("/api/chat", methods=["POST"])
+def api_chat():
     try:
-        idinfo = id_token.verify_oauth2_token(
-            credential,
-            grequests.Request(),
-            GOOGLE_CLIENT_ID,
-        )
-        email = idinfo.get("email")
-        name = idinfo.get("name") or ""
-        picture = idinfo.get("picture") or ""
-
-        if not email:
-            return jsonify({"error": "No email in token"}), 400
-
-        conn = db()
-        c = conn.cursor()
-
-        # upsert user
-        c.execute("SELECT id FROM users WHERE email=?", (email,))
-        row = c.fetchone()
-        if row:
-            user_id = row["id"]
-            c.execute("UPDATE users SET name=?, picture=? WHERE id=?", (name, picture, user_id))
-        else:
-            c.execute(
-                "INSERT INTO users(email, name, picture, created_at) VALUES(?,?,?, datetime('now'))",
-                (email, name, picture),
-            )
-            user_id = c.lastrowid
-
-        # membership -> tenant (create tenant if first time)
-        c.execute("SELECT tenant_id, role FROM memberships WHERE user_id=? LIMIT 1", (user_id,))
-        m = c.fetchone()
-
-        if not m:
-            tenant_name = email.split("@")[0]
-            c.execute(
-                "INSERT INTO tenants(name, owner_email, created_at) VALUES(?,?, datetime('now'))",
-                (tenant_name, email),
-            )
-            tenant_id = c.lastrowid
-            role = "admin"
-
-            c.execute(
-                "INSERT INTO memberships(user_id, tenant_id, role, created_at) VALUES(?,?, 'admin', datetime('now'))",
-                (user_id, tenant_id),
-            )
-
-            # default env for this tenant
-            c.execute(
-                "INSERT OR IGNORE INTO environments(tenant_id, name, created_at) VALUES(?, 'default', datetime('now'))",
-                (tenant_id,),
-            )
-        else:
-            tenant_id = m["tenant_id"]
-            role = m["role"] or "admin"
-
-        conn.commit()
-        conn.close()
-
-        session = make_jwt(
-            {
-                "uid": user_id,
-                "email": email,
-                "name": name,
-                "role": role,
-                "tenant_id": tenant_id,
-            },
-            minutes=60 * 24,
-        )
-
-        resp = jsonify({"ok": True, "user": {"email": email, "name": name, "role": role, "tenant_id": tenant_id}})
-        resp.set_cookie(
-            "session",
-            session,
-            httponly=True,
-            samesite="Lax",
-            secure=COOKIE_SECURE,
-            max_age=60 * 60 * 24,
-        )
-        return resp
-
-    except Exception as e:
-        return jsonify({"error": "Invalid Google token", "details": str(e)}), 401
-
-
-@app.route("/api/me", methods=["GET"])
-@require_user()
-def api_me():
-    return jsonify({"user": request.user})
-
-
-@app.route("/api/auth/logout", methods=["POST"])
-def auth_logout():
-    resp = jsonify({"ok": True})
-    resp.set_cookie("session", "", expires=0)
-    return resp
-
-
-# ----------------------------
-# Admin endpoints
-# ----------------------------
-@app.route("/api/admin/environments", methods=["GET"])
-@require_tenant_admin()
-def admin_list_envs():
-    tenant_id = request.user["tenant_id"]
-    conn = db()
-    c = conn.cursor()
-    c.execute("SELECT name FROM environments WHERE tenant_id=? ORDER BY name", (tenant_id,))
-    envs = [r["name"] for r in c.fetchall()]
-    conn.close()
-    if not envs:
-        envs = ["default"]
-    return jsonify({"environments": envs})
-
-
-@app.route("/api/admin/environments", methods=["POST"])
-@require_tenant_admin()
-def admin_create_env():
-    tenant_id = request.user["tenant_id"]
-    data = request.get_json(force=True, silent=True) or {}
-    name = (data.get("name") or "").strip()
-    if not name:
-        return jsonify({"error": "Missing env name"}), 400
-
-    conn = db()
-    c = conn.cursor()
-    try:
-        c.execute(
-            "INSERT INTO environments(tenant_id, name, created_at) VALUES(?, ?, datetime('now'))",
-            (tenant_id, name),
-        )
-        conn.commit()
-    except Exception as e:
-        conn.close()
-        return jsonify({"error": str(e)}), 400
-    conn.close()
-    return jsonify({"ok": True, "name": name})
-
-
-@app.route("/api/admin/tokens", methods=["POST"])
-@require_tenant_admin()
-def admin_generate_token():
-    tenant_id = request.user["tenant_id"]
-    data = request.get_json(force=True, silent=True) or {}
-    env = (data.get("env") or "").strip()
-    if not env:
-        return jsonify({"error": "Missing env"}), 400
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("SELECT 1 FROM environments WHERE tenant_id=? AND name=? LIMIT 1", (tenant_id, env))
-    if not c.fetchone():
-        conn.close()
-        return jsonify({"error": "Environment not found"}), 404
-
-    token = secrets.token_urlsafe(32)
-    c.execute("""
-            INSERT INTO env_tokens(tenant_id, env_name, token, created_at, expires_at)
-            VALUES(?, ?, ?, datetime('now'), datetime('now', '+90 days'))
-        """, (tenant_id, env, token))
-    conn.commit()
-    conn.close()
-
-    return jsonify({"ok": True, "env": env, "token": token})
-
-@app.route("/api/admin/env-settings/<env_name>", methods=["GET"])
-@require_tenant_admin()
-def admin_get_env_settings(env_name):
-    tenant_id = request.user["tenant_id"]
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-        SELECT save_process_history
-        FROM env_settings
-        WHERE tenant_id=? AND env_name=?
-        LIMIT 1
-    """, (tenant_id, env_name))
-    row = c.fetchone()
-    conn.close()
-
-    return jsonify({
-        "env": env_name,
-        "save_process_history": bool(row["save_process_history"]) if row else False
-    })
-
-@app.route("/api/admin/env-settings/<env_name>", methods=["POST"])
-@require_tenant_admin()
-def admin_set_env_settings(env_name):
-    tenant_id = request.user["tenant_id"]
-    data = request.get_json(force=True, silent=True) or {}
-    enabled = 1 if bool(data.get("save_process_history")) else 0
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-        INSERT INTO env_settings(tenant_id, env_name, save_process_history, created_at, updated_at)
-        VALUES(?, ?, ?, datetime('now'), datetime('now'))
-        ON CONFLICT(tenant_id, env_name) DO UPDATE SET
-            save_process_history=excluded.save_process_history,
-            updated_at=datetime('now')
-    """, (tenant_id, env_name, enabled))
-    conn.commit()
-    conn.close()
-
-    return jsonify({"ok": True, "env": env_name, "save_process_history": bool(enabled)})
-
-# ----------------------------
-# Agent endpoint
-# ----------------------------
-@app.route("/receive", methods=["POST"])
-def receive_data():
-    try:
-        data = request.get_json(force=True, silent=True) or {}
-        if not data:
-            return jsonify({"error": "No data"}), 400
-
-        env_name, tenant_id = get_env_from_token(request)
-        if not env_name or not tenant_id:
-            return jsonify({"error": "Missing or invalid X-Env-Token"}), 401
-
-        info = data.get("info") or {}
-        computer_name = info.get("computer_name")
-        if not computer_name:
-            return jsonify({"error": "Missing info.computer_name"}), 400
-
-        now_iso = datetime.now().isoformat()
-        security_data = data.get("security_data") or {}
-
-        conn = db()
-        c = conn.cursor()
-
-        # Find by (tenant_id + name)
-        c.execute(
-            "SELECT id FROM computers WHERE tenant_id=? AND name=? LIMIT 1",
-            (tenant_id, computer_name),
-        )
-        row = c.fetchone()
-
-        if row:
-            computer_id = row["id"]
-            c.execute("""
-                UPDATE computers
-                SET user=?, ip=?, os=?, last_seen=?, sysmon_available=?, env_name=?
-                WHERE id=? AND tenant_id=?
-            """, (
-                info.get("user"),
-                info.get("ip_address"),
-                info.get("os"),
-                now_iso,
-                int(info.get("is_sysmon_available", 0) or 0),
-                env_name,
-                computer_id,
-                tenant_id,
-            ))
-        else:
-            c.execute("""
-                INSERT INTO computers(
-                    tenant_id, env_name, name, user, ip, os,
-                    first_seen, last_seen, sysmon_available
-                )
-                VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)
-            """, (
-                tenant_id,
-                env_name,
-                computer_name,
-                info.get("user"),
-                info.get("ip_address"),
-                info.get("os"),
-                now_iso,
-                now_iso,
-                int(info.get("is_sysmon_available", 0) or 0),
-            ))
-            computer_id = c.lastrowid
-
-        # history row
-        c.execute("""
-            INSERT INTO computer_history(
-                computer_id, cpu_usage, ram_usage, disk_usage,
-                network_sent_mb, network_recv_mb, timestamp
-            )
-            VALUES(?, ?, ?, ?, ?, ?, ?)
-        """, (
-            computer_id,
-            float(info.get("cpu_usage") or 0),
-            float(info.get("ram_usage") or 0),
-            float(info.get("disk_usage") or 0),
-            float(info.get("network_sent_mb") or 0),
-            float(info.get("network_recv_mb") or 0),
-            info.get("timestamp") or now_iso,
-        ))
-
-        # ----------------------------
-        # processes: CURRENT (always)
-        # ----------------------------
-        # Clear old current snapshot for this computer
-        c.execute("DELETE FROM computer_processes_current WHERE computer_id=?", (computer_id,))
-
-        # Insert new snapshot
-        for proc in (data.get("processes") or []):
-            c.execute("""
-                INSERT INTO computer_processes_current(
-                    computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp
-                )
-                VALUES(?, ?, ?, ?, ?, ?, ?, ?)
-            """, (
-                computer_id,
-                proc.get("pid"),
-                proc.get("name"),
-                float(proc.get("cpu_percent") or 0),
-                float(proc.get("memory_mb") or 0),
-                proc.get("user") or proc.get("username"),
-                proc.get("cmdline"),
-                info.get("timestamp") or now_iso,
-            ))
-
-        # ----------------------------
-        # processes: HISTORY (optional)
-        # ----------------------------
-        if is_process_history_enabled(tenant_id, env_name):
-            for proc in (data.get("processes") or []):
-                c.execute("""
-                    INSERT INTO computer_processes_history(
-                        computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp
-                    )
-                    VALUES(?, ?, ?, ?, ?, ?, ?, ?)
-                """, (
-                    computer_id,
-                    proc.get("pid"),
-                    proc.get("name"),
-                    float(proc.get("cpu_percent") or 0),
-                    float(proc.get("memory_mb") or 0),
-                    proc.get("user") or proc.get("username"),
-                    proc.get("cmdline"),
-                    info.get("timestamp") or now_iso,
-                ))
-
-        # sysmon events
-        sysmon_count = 0
-        for ev in (security_data.get("sysmon_events") or []):
-            c.execute("""
-                INSERT INTO sysmon_events(
-                    computer_id, event_id, event_type, message, timestamp, details
-                )
-                VALUES(?, ?, ?, ?, ?, ?)
-            """, (
-                computer_id,
-                ev.get("event_id"),
-                ev.get("event_type", "Unknown"),
-                ev.get("message", ""),
-                ev.get("timestamp") or (info.get("timestamp") or now_iso),
-                json.dumps(ev, ensure_ascii=False),
-            ))
-            sysmon_count += 1
-
-        # network connections
-        for nc in (security_data.get("network_connections") or []):
-            c.execute("""
-                INSERT INTO network_connections(
-                    computer_id, pid, local_address, remote_address, status, process_name, timestamp
-                )
-                VALUES(?, ?, ?, ?, ?, ?, ?)
-            """, (
-                computer_id,
-                nc.get("pid"),
-                nc.get("local_address"),
-                nc.get("remote_address"),
-                nc.get("status"),
-                nc.get("process_name"),
-                info.get("timestamp") or now_iso,
-            ))
-
-        conn.commit()
-        conn.close()
-
-        # optional JSON archive
-        try:
-            save_json_file(data)
-        except Exception:
-            pass
-
-        return jsonify({
-            "ok": True,
-            "computer_id": computer_id,
-            "env": env_name,
-            "tenant_id": tenant_id,
-            "sysmon_events_saved": sysmon_count,
-            "server_time": now_iso,
-            "process_history_enabled": bool(is_process_history_enabled(tenant_id, env_name)),
-        })
-
+        t0 = time.time()
+        data = request.get_json(force=True) or {}
+        question = data.get("question", "").strip()
+        computer_name = data.get("computer_name") or None
+
+        if not question:
+            return jsonify({"error": "No question provided"}), 400
+
+        context = build_rag_context(question, computer_name=computer_name)
+        t1 = time.time()
+
+        answer = ask_llm_with_context(question, context)
+        t2 = time.time()
+
+        print(f"[CHAT] build_rag_context: {t1 - t0:.2f}s, LLM: {t2 - t1:.2f}s")
+
+        return jsonify({"answer": answer})
     except Exception as e:
         traceback.print_exc()
@@ -867,899 +1695,196 @@
 
 
-# ----------------------------
-# Dashboard API (tenant scoped)
-# ----------------------------
-@app.route("/api/computers", methods=["GET"])
-@require_user()
-def api_computers():
-    tenant_id = request.user["tenant_id"]
-    env = request.headers.get("X-Env", "default")
-
-    conn = db()
+@app.route('/api/computer/<computer_name>/sysmon')
+def get_sysmon_processes(computer_name):
+    """Добиј Sysmon процеси за компјутер"""
+    conn = sqlite3.connect(DB_FILE)
     c = conn.cursor()
-    c.execute("""
-            SELECT id, name, user, ip, os, first_seen, last_seen, sysmon_available
-            FROM computers
-            WHERE tenant_id=? AND env_name=?
-            ORDER BY last_seen DESC
-        """, (tenant_id, env))
-    rows = c.fetchall()
-
-    computers = []
-    for r in rows:
-        cid = r["id"]
-
-        c.execute("""
-                SELECT COUNT(*) AS n
-                FROM computer_history
-                WHERE computer_id=? AND timestamp > datetime('now','-24 hours')
-            """, (cid,))
-        recent_logs = int(c.fetchone()["n"] or 0)
-
-        c.execute("""
-                SELECT COUNT(*) AS n
-                FROM sysmon_events
-                WHERE computer_id=? AND timestamp > datetime('now','-24 hours')
-            """, (cid,))
-        recent_sysmon = int(c.fetchone()["n"] or 0)
-
-        c.execute("""
-                SELECT cpu_usage, ram_usage, timestamp
-                FROM computer_history
-                WHERE computer_id=?
-                ORDER BY timestamp DESC
-                LIMIT 5
-            """, (cid,))
-        metrics = c.fetchall()
-        avg_cpu = round(sum(m["cpu_usage"] for m in metrics) / len(metrics), 1) if metrics else 0.0
-        avg_ram = round(sum(m["ram_usage"] for m in metrics) / len(metrics), 1) if metrics else 0.0
-
-        status = "offline"
-        status_color = "gray"
-        try:
-            last_seen = r["last_seen"]
-            if last_seen:
-                dt = datetime.fromisoformat(
-                    last_seen.replace("Z", "+00:00")) if "T" in last_seen else datetime.fromisoformat(last_seen)
-                diff = (datetime.now() - dt).total_seconds()
-                if diff < 60:
-                    status, status_color = "online", "green"
-                elif diff < 300:
-                    status, status_color = "idle", "orange"
-        except Exception:
-            pass
-
-        computers.append({
-            "name": r["name"],
-            "user": r["user"],
-            "ip": r["ip"],
-            "os": r["os"],
-            "first_seen": r["first_seen"],
-            "last_seen": r["last_seen"],
-            "sysmon_available": bool(r["sysmon_available"]),
-            "recent_logs": recent_logs,
-            "recent_sysmon": recent_sysmon,
-            "avg_cpu": avg_cpu,
-            "avg_ram": avg_ram,
-            "status": status,
-            "status_color": status_color,
-        })
-
-    conn.close()
-    return jsonify(computers)
-
-
-@app.route("/api/stats", methods=["GET"])
-@require_user()
-def api_stats():
-    tenant_id = request.user["tenant_id"]
-
-    conn = db()
-    c = conn.cursor()
-
-    c.execute("""
-            SELECT COUNT(*) AS n
-            FROM sysmon_events s
-            JOIN computers c2 ON c2.id = s.computer_id
-            WHERE s.timestamp > datetime('now','-24 hours')
-              AND c2.tenant_id = ?
-        """, (tenant_id,))
-    total_sysmon = int(c.fetchone()["n"] or 0)
-
-    c.execute("""
-            SELECT COUNT(*) AS n
-            FROM network_connections n
-            JOIN computers c2 ON c2.id = n.computer_id
-            WHERE n.timestamp > datetime('now','-24 hours')
-              AND c2.tenant_id = ?
-        """, (tenant_id,))
-    total_net = int(c.fetchone()["n"] or 0)
-
-    conn.close()
-    return jsonify({
-        "total_sysmon_events": total_sysmon,
-        "total_network_connections": total_net,
-        "server_time": datetime.now().isoformat(),
-    })
-
-
-@app.route("/api/computer/<computer_name>", methods=["GET"])
-@require_user()
-def api_computer_details(computer_name):
-    tenant_id = request.user["tenant_id"]
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-            SELECT id, name, user, ip, os, first_seen, last_seen, env_name
-            FROM computers
-            WHERE tenant_id=? AND name=?
-            LIMIT 1
-        """, (tenant_id, computer_name))
-    comp = c.fetchone()
-    if not comp:
+
+    # Прво најди го computer_id
+    c.execute('SELECT id FROM computers WHERE name = ?', (computer_name,))
+    result = c.fetchone()
+
+    if not result:
         conn.close()
         return jsonify({"error": "Computer not found"}), 404
 
-    computer_id = comp["id"]
-
-    c.execute("SELECT COUNT(*) AS n FROM computer_history WHERE computer_id=?", (computer_id,))
-    total_logs = int(c.fetchone()["n"] or 0)
-
-    c.execute("""
-            SELECT cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp
-            FROM computer_history
-            WHERE computer_id=?
-            ORDER BY timestamp DESC
-            LIMIT 100
-        """, (computer_id,))
-    history = [dict(r) for r in c.fetchall()]
-    current_metrics = history[0] if history else {}
-
-    c.execute("""
-        SELECT pid, name, username, cpu_percent, memory_mb, cmdline, timestamp
-        FROM computer_processes_current
-        WHERE computer_id=?
-        ORDER BY timestamp DESC
-        LIMIT 200
-    """, (computer_id,))
-    processes = [dict(r) for r in c.fetchall()]
-
-    c.execute("""
-            SELECT event_id, event_type, message, timestamp, details
-            FROM sysmon_events
-            WHERE computer_id=?
-            ORDER BY timestamp DESC
-            LIMIT 200
-        """, (computer_id,))
-    sysmon = []
-    for r in c.fetchall():
-        d = {}
+    computer_id = result[0]
+
+    # Земaj ги Sysmon процесите (последни 100)
+    c.execute('''SELECT 
+                 event_id, 
+                 event_type, 
+                 message, 
+                 timestamp, 
+                 details
+                 FROM sysmon_events 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 100''', (computer_id,))
+
+    processes = []
+    for row in c.fetchall():
         try:
-            d = json.loads(r["details"]) if r["details"] else {}
-        except Exception:
-            d = {}
-        sysmon.append({
-            "event_id": r["event_id"],
-            "event_type": r["event_type"],
-            "message": r["message"],
-            "timestamp": r["timestamp"],
-            "details": d,
+            details = json.loads(row[4]) if row[4] else {}
+        except:
+            details = {}
+
+        processes.append({
+            'process_id': row[0],  # Event ID како PID
+            'process_name': row[1],  # Event type како име
+            'timestamp': row[3],
+            'message': row[2],
+            'details': details
         })
 
-    c.execute("""
-            SELECT pid, process_name, local_address, remote_address, status, timestamp
-            FROM network_connections
-            WHERE computer_id=?
-            ORDER BY timestamp DESC
-            LIMIT 100
-        """, (computer_id,))
-    net = [dict(r) for r in c.fetchall()]
-
     conn.close()
 
     return jsonify({
-        "computer": {
-            "id": comp["id"],
-            "name": comp["name"],
-            "user": comp["user"],
-            "ip": comp["ip"],
-            "os": comp["os"],
-            "first_seen": comp["first_seen"],
-            "last_seen": comp["last_seen"],
-            "env_name": comp["env_name"],
-            "total_logs": total_logs,
-        },
-        "history": history,
-        "current_metrics": current_metrics,
-        "recent_processes": processes,
-        "sysmon_events": sysmon,
-        "network_connections": net,
+        'computer_name': computer_name,
+        'processes': processes,
+        'count': len(processes)
     })
 
 
-@app.route("/api/export/<computer_name>", methods=["GET"])
-@require_user()
-def api_export(computer_name):
-    tenant_id = request.user["tenant_id"]
-
-    conn = db()
+@app.route('/api/computer/<computer_name>/network')
+def get_network_connections(computer_name):
+    """Добиј мрежни конекции за компјутер"""
+    conn = sqlite3.connect(DB_FILE)
     c = conn.cursor()
-    c.execute("""
-            SELECT *
-            FROM computers
-            WHERE tenant_id=? AND name=?
-            LIMIT 1
-        """, (tenant_id, computer_name))
-    comp = c.fetchone()
-    if not comp:
+
+    # Прво најди го computer_id
+    c.execute('SELECT id FROM computers WHERE name = ?', (computer_name,))
+    result = c.fetchone()
+
+    if not result:
         conn.close()
         return jsonify({"error": "Computer not found"}), 404
 
-    computer_id = comp["id"]
-    out = {"computer": dict(comp)}
-
-    c.execute("SELECT * FROM computer_history WHERE computer_id=? ORDER BY timestamp", (computer_id,))
-    out["history"] = [dict(r) for r in c.fetchall()]
-
-    c.execute("SELECT * FROM sysmon_events WHERE computer_id=? ORDER BY timestamp", (computer_id,))
-    out["sysmon_events"] = [dict(r) for r in c.fetchall()]
-
-    c.execute("SELECT * FROM computer_processes_current WHERE computer_id=? ORDER BY timestamp", (computer_id,))
-    out["processes_current"] = [dict(r) for r in c.fetchall()]
-
-    c.execute("SELECT * FROM computer_processes_history WHERE computer_id=? ORDER BY timestamp", (computer_id,))
-    out["processes_history"] = [dict(r) for r in c.fetchall()]
-
-    c.execute("SELECT * FROM network_connections WHERE computer_id=? ORDER BY timestamp", (computer_id,))
-    out["network_connections"] = [dict(r) for r in c.fetchall()]
+    computer_id = result[0]
+
+    # Земaj ги мрежните конекции (последни 100)
+    c.execute('''SELECT 
+                 pid, 
+                 process_name, 
+                 local_address, 
+                 remote_address,
+                 status, 
+                 timestamp
+                 FROM network_connections 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 100''', (computer_id,))
+
+    connections = []
+    for row in c.fetchall():
+        # Парсирај IP и порта
+        local = row[2] or "N/A"
+        remote = row[3] or "N/A"
+
+        connections.append({
+            'pid': row[0],
+            'process_name': row[1] or 'Unknown',
+            'local_address': local,
+            'remote_address': remote,
+            'local_port': local.split(':')[-1] if ':' in local else '',
+            'remote_port': remote.split(':')[-1] if ':' in remote else '',
+            'protocol': 'TCP' if ':443' in local or ':80' in local else 'Unknown',
+            'state': row[4] or 'ESTABLISHED',
+            'timestamp': row[5]
+        })
 
     conn.close()
 
-    return Response(
-        json.dumps(out, indent=2, default=str, ensure_ascii=False),
-        mimetype="application/json",
-        headers={"Content-Disposition": f"attachment; filename={computer_name}_export.json"},
-    )
-
-
-# ----------------------------
-# Simple RAG chat
-# ----------------------------
-# def build_rag_context(tenant_id: int, question: str, computer_name=None, limit_per_table=10):
-#     conn = db()
-#     c = conn.cursor()
-#
-#     params = [tenant_id]
-#     comp_clause = ""
-#     if computer_name:
-#         comp_clause = "AND c2.name = ?"
-#         params.append(computer_name)
-#
-#     # sysmon
-#     c.execute(f"""
-#             SELECT s.timestamp, s.event_id, s.event_type, s.message
-#             FROM sysmon_events s
-#             JOIN computers c2 ON c2.id = s.computer_id
-#             WHERE c2.tenant_id = ? {comp_clause}
-#             ORDER BY s.timestamp DESC
-#             LIMIT ?
-#         """, (*params, limit_per_table))
-#     sysmon_rows = c.fetchall()
-#
-#     # perf
-#     c.execute(f"""
-#             SELECT h.timestamp, h.cpu_usage, h.ram_usage, h.disk_usage, h.network_sent_mb, h.network_recv_mb
-#             FROM computer_history h
-#             JOIN computers c2 ON c2.id = h.computer_id
-#             WHERE c2.tenant_id = ? {comp_clause}
-#             ORDER BY h.timestamp DESC
-#             LIMIT ?
-#         """, (*params, limit_per_table))
-#     perf_rows = c.fetchall()
-#
-#     # proc
-#     c.execute(f"""
-#             SELECT p.timestamp, p.pid, p.name, p.cpu_percent, p.memory_mb
-#             FROM computer_processes_current p
-#             JOIN computers c2 ON c2.id = p.computer_id
-#             WHERE c2.tenant_id = ? {comp_clause}
-#             ORDER BY p.timestamp DESC
-#             LIMIT ?
-#         """, (*params, limit_per_table))
-#     proc_rows = c.fetchall()
-#
-#     conn.close()
-#
-#     lines = []
-#     for r in sysmon_rows:
-#         lines.append(f"[SYSMON] {r['timestamp']} | Event {r['event_id']} ({r['event_type']}): {r['message']}")
-#     for r in perf_rows:
-#         lines.append(
-#             f"[PERF] {r['timestamp']} | CPU {r['cpu_usage']}% | RAM {r['ram_usage']}% | Disk {r['disk_usage']}% | "
-#             f"Net sent {r['network_sent_mb']}MB / recv {r['network_recv_mb']}MB"
-#         )
-#     for r in proc_rows:
-#         lines.append(
-#             f"[PROC] {r['timestamp']} | PID {r['pid']} | {r['name']} | CPU {r['cpu_percent']}% | RAM {r['memory_mb']}MB"
-#         )
-#
-#     return "\n".join(lines)
-def ask_llm_with_context(question, context):
-    if not client:
-        return "Немаш поставено OPENAI_API_KEY на серверот."
-
-    prompt = f"""Ти си асистент за безбедност и систем мониторинг.
-Одговарај базирано ИСКЛУЧИВО на дадените логови.
-Ако нема доволно податоци, кажи: 'Нема доволно информации во логовите.'.
-
-Прашање: {question}
-
-Логови:
-{context or 'Нема логови.'}
-"""
-
-    resp = client.responses.create(
-        model="gpt-4.1-mini",
-        input=[{"role": "user", "content": [{"type": "input_text", "text": prompt}]}],
-    )
-
-    text = getattr(resp, "output_text", "") or ""
-    return text.strip() or "Нема доволно информации во логовите."
-
-def require_grafana():
-    def deco(fn):
-        @wraps(fn)
-        def wrap(*args, **kwargs):
-            tok = request.headers.get("X-Grafana-Token", "")
-            if not GRAFANA_TOKEN or tok != GRAFANA_TOKEN:
-                return jsonify({"error": "Unauthorized"}), 401
-            return fn(*args, **kwargs)
-        return wrap
-    return deco
-@app.route("/api/public/stats", methods=["GET"])
-@require_grafana()
-def grafana_stats():
-    # ако сакаш само една околина:
-    env = request.args.get("env", "default")
-
-    conn = db()
+    return jsonify({
+        'computer_name': computer_name,
+        'connections': connections,
+        'count': len(connections)
+    })
+
+
+@app.route('/api/computer/<computer_name>/detailed-sysmon')
+def get_detailed_sysmon(computer_name):
+    """Добиј детални Sysmon процеси со повеќе информации"""
+    conn = sqlite3.connect(DB_FILE)
     c = conn.cursor()
 
-    # вкупно sysmon во 24h (за сите tenants, или ако сакаш само 1 tenant додади филтер)
-    c.execute("""
-        SELECT COUNT(*) AS n
-        FROM sysmon_events s
-        JOIN computers c2 ON c2.id = s.computer_id
-        WHERE s.timestamp > datetime('now','-24 hours')
-          AND c2.env_name = ?
-    """, (env,))
-    total_sysmon = int(c.fetchone()["n"] or 0)
-
-    c.execute("""
-        SELECT COUNT(*) AS n
-        FROM network_connections n
-        JOIN computers c2 ON c2.id = n.computer_id
-        WHERE n.timestamp > datetime('now','-24 hours')
-          AND c2.env_name = ?
-    """, (env,))
-    total_net = int(c.fetchone()["n"] or 0)
+    c.execute('SELECT id FROM computers WHERE name = ?', (computer_name,))
+    result = c.fetchone()
+
+    if not result:
+        conn.close()
+        return jsonify({"error": "Computer not found"}), 404
+
+    computer_id = result[0]
+
+    c.execute('''SELECT event_id, event_type, message, timestamp, details
+                 FROM sysmon_events 
+                 WHERE computer_id = ? 
+                 ORDER BY timestamp DESC LIMIT 50''', (computer_id,))
+
+    detailed_processes = []
+
+    for row in c.fetchall():
+        event_id = row[0]
+        event_type = row[1]
+        message = row[2]
+        timestamp = row[3]
+        details_str = row[4]
+
+        # Пробај да го парсираш details JSON
+        try:
+            details = json.loads(details_str) if details_str else {}
+        except:
+            details = {}
+
+        # Екстрактирај информации од details
+        process_info = {
+            'event_id': event_id,
+            'event_type': event_type,
+            'timestamp': timestamp,
+            'message': message,
+            'process_name': details.get('ProcessName', 'Unknown'),
+            'process_id': details.get('ProcessId', event_id),
+            'command_line': details.get('CommandLine', ''),
+            'parent_process': details.get('ParentProcessName', ''),
+            'parent_pid': details.get('ParentProcessId', ''),
+            'user': details.get('User', ''),
+            'details': details
+        }
+
+        # Додади дополнителни полиња за различни типови на настани
+        if event_id in [3, 22]:  # Network connection or DNS
+            process_info['source_ip'] = details.get('SourceIp', '')
+            process_info['dest_ip'] = details.get('DestinationIp', '')
+            process_info['dest_port'] = details.get('DestinationPort', '')
+
+        detailed_processes.append(process_info)
 
     conn.close()
+
     return jsonify({
-        "total_sysmon_events": total_sysmon,
-        "total_network_connections": total_net,
-        "server_time": datetime.now().isoformat(),
-        "env": env,
+        'computer_name': computer_name,
+        'processes': detailed_processes,
+        'count': len(detailed_processes)
     })
-
-def require_grafana_token(fn):
-    @wraps(fn)
-    def wrapper(*args, **kwargs):
-        expected = os.environ.get("GRAFANA_API_TOKEN") or ""
-
-        # 1) пробај Authorization: Bearer <token>
-        auth = request.headers.get("Authorization", "")
-        token = ""
-        if auth.startswith("Bearer "):
-            token = auth.replace("Bearer ", "").strip()
-
-        # 2) ако нема header, пробај query param ?token=
-        if not token:
-            token = (request.args.get("token") or "").strip()
-
-        if not expected or token != expected:
-            return jsonify({"error": "Invalid Grafana token"}), 401
-
-        return fn(*args, **kwargs)
-    return wrapper
-
-@app.route("/api/public/ips", methods=["GET"])
-@require_grafana_token
-def api_public_ips():
-    tenant_id = request.args.get("tenant_id", type=int)
-    env = request.args.get("env", "default")
-    hours = int(request.args.get("hours", "24"))
-    limit = int(request.args.get("limit", "200"))
-
-    if not tenant_id:
-        return jsonify({"error": "Missing tenant_id"}), 400
-
-    conn = db()
-    c = conn.cursor()
-
-    c.execute("""
-        SELECT DISTINCT
-            substr(nc.remote_address, 1,
-                   CASE
-                       WHEN instr(nc.remote_address, ':') > 0
-                       THEN instr(nc.remote_address, ':') - 1
-                       ELSE length(nc.remote_address)
-                   END
-            ) AS ip
-        FROM network_connections nc
-        JOIN computers c2 ON c2.id = nc.computer_id
-        WHERE c2.tenant_id = ?
-          AND c2.env_name = ?
-          AND nc.timestamp > datetime('now', ?)
-          AND nc.remote_address IS NOT NULL
-          AND nc.remote_address != ''
-        ORDER BY ip
-        LIMIT ?
-    """, (tenant_id, env, f"-{hours} hours", limit))
-
-    ips = [r["ip"] for r in c.fetchall()]
-    conn.close()
-
-    return jsonify({"ips": ips})
-
-
-
-@app.route("/api/public/sankey", methods=["GET"])
-@require_grafana_token
-def api_public_sankey():
-    tenant_id = int(request.args.get("tenant_id", "1"))
-    env = request.args.get("env", "office1")
-    hours = int(request.args.get("hours", "24"))
-    limit = int(request.args.get("limit", "20"))
-
-    computers = (request.args.get("computers") or "all").strip()
-    ips = (request.args.get("ips") or "all").strip()
-
-    # normalize grafana All values
-    if computers in ("", "__all"):
-        computers = "all"
-    if ips in ("", "__all"):
-        ips = "all"
-
-    comp_list = [c.strip() for c in computers.split(",") if c.strip()] if computers != "all" else []
-    ip_list = [i.strip() for i in ips.split(",") if i.strip()] if ips != "all" else []
-
-    comp_clause = ""
-    ip_clause = ""
-    params = [tenant_id, env, f"-{hours} hours"]
-
-    # ✅ target без port за IPv4: "1.2.3.4:443" -> "1.2.3.4"
-    # ⚠️ за IPv6 ќе го остави како што е (за да не го расипеме со split по ':')
-    target_expr = """
-    CASE
-      WHEN nc.remote_address LIKE '%:%' AND nc.remote_address NOT LIKE '%:%:%'
-      THEN substr(nc.remote_address, 1, instr(nc.remote_address, ':') - 1)
-      ELSE nc.remote_address
-    END
-    """
-
-    if comp_list:
-        comp_clause = "AND comp.name IN (" + ",".join(["?"] * len(comp_list)) + ")"
-        params.extend(comp_list)
-
-    # ✅ Филтер по IP без порт (истиот expr)
-    if ip_list:
-        ip_clause = f"AND ({target_expr}) IN (" + ",".join(["?"] * len(ip_list)) + ")"
-        params.extend(ip_list)
-
-    # LIMIT на крај
-    params.append(limit)
-
-    conn = db()
-    c = conn.cursor()
-
-    c.execute(f"""
-        SELECT
-            comp.name AS source,
-            ({target_expr}) AS target,
-            COUNT(*) AS value
-        FROM network_connections nc
-        JOIN computers comp ON comp.id = nc.computer_id
-        WHERE comp.tenant_id = ?
-          AND comp.env_name = ?
-          AND nc.timestamp > datetime('now', ?)
-          AND nc.remote_address IS NOT NULL
-          AND nc.remote_address != ''
-
-          -- ✅ тргни loopback spam (овие прават да изгледа како да нема линии)
-          AND nc.remote_address NOT LIKE '127.0.0.1%'
-          AND nc.remote_address NOT LIKE '::1%'
-
-          {comp_clause}
-          {ip_clause}
-        GROUP BY comp.name, target
-        ORDER BY value DESC
-        LIMIT ?
-    """, params)
-
-    rows = [dict(r) for r in c.fetchall()]
-    conn.close()
-    return jsonify(rows)
-
-from urllib.parse import urlparse
-
-def _ip_only(addr: str):
-    # addr може да е "1.2.3.4:443" или "hostname:port"
-    if not addr:
-        return None
-    # ако има повеќе ':' (ipv6), ќе го оставиме целото; за ipv4 split е ок
-    if addr.count(":") == 1:
-        return addr.split(":")[0]
-    return addr
-
-@app.route("/api/graph/net", methods=["GET"])
-@require_user()
-def api_graph_net():
-    tenant_id = request.user["tenant_id"]
-    env = request.args.get("env") or request.headers.get("X-Env", "default")
-    computer = request.args.get("computer")  # optional
-    since_hours = int(request.args.get("since_hours") or 24)
-
-    conn = db()
-    c = conn.cursor()
-
-    params = [tenant_id, env, since_hours]
-    comp_clause = ""
-    if computer:
-        comp_clause = "AND c2.name = ?"
-        params.append(computer)
-
-    # Вади top remote IP по број на конекции
-    c.execute(f"""
-        SELECT
-          c2.name AS computer_name,
-          n.remote_address AS remote_address,
-          COUNT(*) AS cnt
-        FROM network_connections n
-        JOIN computers c2 ON c2.id = n.computer_id
-        WHERE c2.tenant_id = ?
-          AND c2.env_name = ?
-          AND n.timestamp > datetime('now', '-' || ? || ' hours')
-          {comp_clause}
-          AND n.remote_address IS NOT NULL
-          AND n.remote_address <> ''
-        GROUP BY c2.name, n.remote_address
-        ORDER BY cnt DESC
-        LIMIT 200
-    """, params)
-
-    rows = c.fetchall()
-    conn.close()
-
-    # Build NodeGraph-like structure
-    nodes = {}
-    edges = []
-
-    def add_node(node_id, title, ntype):
-        if node_id not in nodes:
-            nodes[node_id] = {"id": node_id, "title": title, "subTitle": ntype}
-
-    for r in rows:
-        comp_name = r["computer_name"]
-        remote = _ip_only(r["remote_address"]) or r["remote_address"]
-        cnt = int(r["cnt"] or 0)
-
-        comp_id = f"comp:{comp_name}"
-        ip_id = f"ip:{remote}"
-
-        add_node(comp_id, comp_name, "computer")
-        add_node(ip_id, remote, "remote_ip")
-
-        edges.append({
-            "id": f"{comp_id}->{ip_id}",
-            "source": comp_id,
-            "target": ip_id,
-            "mainStat": str(cnt),
-        })
-
-    return jsonify({
-        "nodes": list(nodes.values()),
-        "edges": edges,
-        "meta": {"env": env, "computer": computer, "since_hours": since_hours}
-    })
-
-@app.route("/api/public/netgraph", methods=["GET"])
-@require_grafana_token
-def api_public_netgraph():
-    tenant_id = int(request.args.get("tenant_id", "1"))
-    env = request.args.get("env", "default")
-    hours = int(request.args.get("hours", "6"))
-    limit_edges = int(request.args.get("limit", "200"))
-    computer = request.args.get("computer")  # <-- NEW (optional)
-
-    conn = db()
-    c = conn.cursor()
-
-    comp_clause = ""
-    params = [tenant_id, env, f"-{hours} hours"]
-
-    if computer and computer != "all":
-        comp_clause = "AND comp.name = ?"
-        params.append(computer)
-
-    params.append(limit_edges)
-
-    c.execute(f"""
-        SELECT
-            comp.name AS src,
-            nc.remote_address AS remote,
-            COUNT(*) AS cnt
-        FROM network_connections nc
-        JOIN computers comp ON comp.id = nc.computer_id
-        WHERE comp.tenant_id = ?
-          AND comp.env_name = ?
-          AND nc.timestamp > datetime('now', ?)
-          {comp_clause}
-          AND nc.remote_address IS NOT NULL
-          AND nc.remote_address != ''
-        GROUP BY comp.name, nc.remote_address
-        ORDER BY cnt DESC
-        LIMIT ?
-    """, params)
-
-    rows = c.fetchall()
-    conn.close()
-
-    def ip_only(addr: str) -> str:
-        if not addr:
-            return ""
-        if addr.startswith("[") and "]" in addr:
-            return addr[1:addr.index("]")]
-        if ":" in addr:
-            return addr.split(":")[0]
-        return addr
-
-    nodes = {}
-    edges = []
-
-    for r in rows:
-        src = r["src"]
-        remote_ip = ip_only(r["remote"])
-        cnt = int(r["cnt"] or 0)
-        if not remote_ip:
-            continue
-
-        nodes[src] = {"id": src, "title": src, "subTitle": env, "mainStat": "PC"}
-        ip_id = f"IP:{remote_ip}"
-        if ip_id not in nodes:
-            nodes[ip_id] = {"id": ip_id, "title": remote_ip, "subTitle": "remote", "mainStat": "IP"}
-
-        edges.append({
-            "id": f"{src}->{ip_id}",
-            "source": src,
-            "target": ip_id,
-            "mainStat": cnt
-        })
-
-    return jsonify({"nodes": list(nodes.values()), "edges": edges})
-@app.route("/api/public/computers", methods=["GET"])
-@require_grafana_token
-def api_public_computers():
-    tenant_id = int(request.args.get("tenant_id", "1"))
-    env = request.args.get("env", "default")
-
-    conn = db()
-    c = conn.cursor()
-    c.execute("""
-        SELECT name
-        FROM computers
-        WHERE tenant_id = ? AND env_name = ?
-        ORDER BY name
-    """, (tenant_id, env))
-    names = [r["name"] for r in c.fetchall()]
-    conn.close()
-
-    return jsonify({"computers": names})
-
-@app.route("/api/public/stats", methods=["GET"])
-@require_grafana_token
-def public_stats():
-    # ⚠️ ако сакаш tenant по tenant, ќе мора да додадеш tenant_id како query param,
-    # или да имаш 1 tenant во проект за сега.
-    tenant_id = request.args.get("tenant_id", type=int)
-    if not tenant_id:
-        return jsonify({"error": "Missing tenant_id"}), 400
-
-    conn = db()
-    c = conn.cursor()
-
-    c.execute("""
-        SELECT COUNT(*) AS n
-        FROM sysmon_events s
-        JOIN computers c2 ON c2.id = s.computer_id
-        WHERE s.timestamp > datetime('now','-24 hours')
-          AND c2.tenant_id = ?
-    """, (tenant_id,))
-    total_sysmon = int(c.fetchone()["n"] or 0)
-
-    c.execute("""
-        SELECT COUNT(*) AS n
-        FROM network_connections n
-        JOIN computers c2 ON c2.id = n.computer_id
-        WHERE n.timestamp > datetime('now','-24 hours')
-          AND c2.tenant_id = ?
-    """, (tenant_id,))
-    total_net = int(c.fetchone()["n"] or 0)
-
-    conn.close()
-
-    return jsonify({
-        "total_sysmon_events": total_sysmon,
-        "total_network_connections": total_net,
-        "server_time": datetime.now().isoformat(),
-    })
-
-
-def ask_llm_sql_generator(question: str, tenant_id: int, env: str, computer_name: str | None):
-    """
-    Returns dict: { "queries": [...], "notes": "...", "scope": {...} }
-    Only SELECT/WITH queries, no modifications.
-    """
-    if not client:
-        return {
-            "queries": [],
-            "notes": "Немаш поставено OPENAI_API_KEY на серверот.",
-            "scope": {"tenant_id": tenant_id, "env": env, "computer_name": computer_name},
-        }
-
-    schema = """
-SQLite schema (важни табели):
-- computers(id, tenant_id, env_name, name, user, ip, os, first_seen, last_seen, sysmon_available)
-- computer_history(computer_id, cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
-- computer_processes_current(computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
-- computer_processes_history(computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
-- sysmon_events(computer_id, event_id, event_type, message, timestamp, details)
-- network_connections(computer_id, pid, local_address, remote_address, status, process_name, timestamp)
-
-Правила:
-- Врати САМО валиден JSON.
-- JSON формат: {"queries":[...], "notes":"..."}.
-- queries мора да бидат само SELECT или WITH (никако INSERT/UPDATE/DELETE/ALTER/DROP).
-- максимум 3 queries.
-- користи placeholders: :tenant_id, :env, :computer_name (ако е дадено).
-- ако нема доволно инфо -> queries празно и notes објаснува.
-""".strip()
-
-    user_scope = {
-        "tenant_id": tenant_id,
-        "env": env,
-        "computer_name": computer_name,
-    }
-
-    user_msg = f"""
-Прашање од корисник: {question}
-
-Scope (вметни во WHERE):
-- tenant_id = :tenant_id
-- env = :env
-- computer_name = :computer_name (ако не е null)
-
-Врати 1-3 SELECT/WITH queries за да се добијат потребните податоци.
-""".strip()
-
-    completion = client.chat.completions.create(
-        model="gpt-4.1-mini",
-        messages=[
-            {"role": "system", "content": schema},
-            {"role": "user", "content": user_msg},
-        ],
-        temperature=0.1,
-    )
-
-    raw = completion.choices[0].message.content or ""
-
-    # Safe parse JSON
-    try:
-        out = json.loads(raw)
-        if not isinstance(out, dict):
-            raise ValueError("Not an object")
-        queries = out.get("queries") or []
-        notes = out.get("notes") or ""
-
-        # hard safety filter: keep only SELECT/WITH
-        safe_queries = []
-        for q in queries:
-            if not isinstance(q, str):
-                continue
-            qs = q.strip().lower()
-            if qs.startswith("select") or qs.startswith("with"):
-                # block obvious multi-statement
-                if ";" in q.strip().rstrip(";"):
-                    continue
-                safe_queries.append(q.strip())
-
-        return {"queries": safe_queries[:3], "notes": notes, "scope": user_scope}
-
-    except Exception:
-        # fallback ако AI не врати JSON
-        return {
-            "queries": [],
-            "notes": "AI не врати валиден JSON. Обиди се повторно (или намали прашање).",
-            "scope": user_scope,
-            "raw": raw[:1200],
-        }
-
-
-@app.route("/api/chat", methods=["POST"])
-@require_user()
-def api_chat():
-    try:
-        tenant_id = request.user["tenant_id"]
-        env = request.headers.get("X-Env", "default")  # важно!
-        data = request.get_json(force=True, silent=True) or {}
-
-        question = (data.get("question") or "").strip()
-        computer_name = data.get("computer_name") or None
-
-        if not question:
-            return jsonify({"error": "No question provided"}), 400
-
-        out = ask_llm_sql_generator(
-            question=question,
-            tenant_id=tenant_id,
-            env=env,
-            computer_name=computer_name,
-        )
-
-        # Тука не извршуваме SQL, само враќаме query за копирање.
-        return jsonify({
-            "ok": True,
-            "queries": out.get("queries", []),
-            "notes": out.get("notes", ""),
-            "scope": out.get("scope", {}),
-            # "raw": out.get("raw")  # ако сакаш debug
-        }), 200
-
-    except Exception as e:
-        traceback.print_exc()
-        return jsonify({"error": str(e)}), 500
-
-
-
-# ----------------------------
-# Misc
-# ----------------------------
-@app.route("/ping")
-def ping():
-    return jsonify({
-        "status": "alive",
-        "server_time": datetime.now().isoformat(),
-        "database": DB_FILE,
-        "cors_origins": ALLOWED_ORIGINS,
-    })
-
-
-@app.route("/")
-def root():
-    return jsonify({
-        "ok": True,
-        "service": "netIntel server",
-        "hint": "frontend should call /api/* endpoints",
-    })
-
-
-if __name__ == "__main__":
-    init_db()
-
+if __name__ == '__main__':
+    init_database()
+
+    # Стартувај cleanup thread
     cleanup_thread = threading.Thread(target=cleanup_old_data, daemon=True)
     cleanup_thread.start()
 
-    print(" netIntel server running on 0.0.0.0:5555")
-    # debug=False recommended; if you need debug, set True temporarily
-    app.run(host="0.0.0.0", port=5555, debug=False, threaded=True)
+    local_ip = get_local_ip()
+
+    print("\n" + "=" * 70)
+    print("🚀 ENHANCED LAN LOG SERVER со Sysmon")
+    print("=" * 70)
+    print(f"🌐 Server IP: {local_ip}:5555")
+    print(f"📊 Dashboard: http://{local_ip}:5555/")
+    print(f"📊 Alternative: http://localhost:5555/")
+    print(f"🏥 Health check: http://{local_ip}:5555/ping")
+    print("\n🛡️  Sysmon monitoring е активирано")
+    print("✅ Кликни на секој компјутер за детални информации")
+    print("✅ Сите Sysmon настани се прикажани во табла")
+    print("✅ Кликни на секој настан за детали")
+    print("=" * 70 + "\n")
+
+    app.run(host='0.0.0.0', port=5555, debug=False, threaded=True)
Index: server_fix.py
===================================================================
--- server_fix.py	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
+++ server_fix.py	(revision 640ed89213ad0086dc8379de00b8d102057ead1f)
@@ -0,0 +1,918 @@
+"""
+FIXED SYSMON SERVER - Corrected API endpoints and database
+"""
+
+from flask import Flask, request, jsonify, render_template, send_from_directory
+import sqlite3
+import json
+from datetime import datetime, timedelta
+import threading
+import time
+from collections import defaultdict
+import os
+import re
+
+app = Flask(__name__)
+
+def init_database():
+    """Inicializiraј ja bazata so site polinja"""
+    conn = sqlite3.connect('sysmon_server.db', check_same_thread=False)
+    cursor = conn.cursor()
+
+    # KREIRAJ NOVA BAZA - DELETE OLD ONE FIRST
+    cursor.execute("DROP TABLE IF EXISTS sysmon_events")
+    cursor.execute("DROP TABLE IF EXISTS windows_events")
+    cursor.execute("DROP TABLE IF EXISTS system_info")
+    cursor.execute("DROP TABLE IF EXISTS processes")
+    cursor.execute("DROP TABLE IF EXISTS threats")
+    cursor.execute("DROP TABLE IF EXISTS computers")
+
+    # Kreiraј tabela za eventi so site polinja
+    cursor.execute('''
+        CREATE TABLE sysmon_events (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            event_id INTEGER,
+            event_type TEXT,
+            timestamp TEXT,
+            computer TEXT,
+            
+            -- Process Creation (Event ID 1)
+            process_name TEXT,
+            process_path TEXT,
+            command_line TEXT,
+            process_user TEXT,
+            parent_process TEXT,
+            parent_command TEXT,
+            current_directory TEXT,
+            hashes TEXT,
+            
+            -- Network Connection (Event ID 3)
+            source_ip TEXT,
+            source_port INTEGER,
+            dest_ip TEXT,
+            dest_port INTEGER,
+            protocol TEXT,
+            network_initiated TEXT,
+            
+            -- DNS Query (Event ID 22)
+            dns_query TEXT,
+            dns_results TEXT,
+            dns_status TEXT,
+            dns_process TEXT,
+            
+            -- File Create (Event ID 11)
+            file_path TEXT,
+            file_hash TEXT,
+            
+            -- DLL Loaded (Event ID 7)
+            dll_loaded TEXT,
+            dll_signed TEXT,
+            
+            -- Raw data
+            raw_data TEXT,
+            received_at TEXT
+        )
+    ''')
+
+    # Kreiraј tabela za Windows events
+    cursor.execute('''
+        CREATE TABLE windows_events (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            event_id INTEGER,
+            log_name TEXT,
+            source TEXT,
+            timestamp TEXT,
+            computer TEXT,
+            level TEXT,
+            message TEXT,
+            user TEXT,
+            process_name TEXT,
+            process_path TEXT,
+            file_created TEXT,
+            file_deleted TEXT,
+            file_modified TEXT,
+            service_name TEXT,
+            service_action TEXT,
+            login_user TEXT,
+            login_ip TEXT,
+            login_type TEXT,
+            raw_data TEXT,
+            received_at TEXT
+        )
+    ''')
+
+    # Kreiraј tabela za system info
+    cursor.execute('''
+        CREATE TABLE system_info (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            computer TEXT,
+            user TEXT,
+            os TEXT,
+            cpu_usage REAL,
+            ram_usage REAL,
+            disk_usage REAL,
+            timestamp TEXT,
+            received_at TEXT
+        )
+    ''')
+
+    # Kreiraј tabela za procesi SO EXE_PATH
+    cursor.execute('''
+        CREATE TABLE processes (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            pid INTEGER,
+            name TEXT,
+            user TEXT,
+            cpu_percent REAL,
+            memory_mb REAL,
+            cmdline TEXT,
+            exe_path TEXT,
+            timestamp TEXT,
+            computer TEXT,
+            received_at TEXT
+        )
+    ''')
+
+    # Kreiraј tabela za threats
+    cursor.execute('''
+        CREATE TABLE threats (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            computer TEXT,
+            threat_type TEXT,
+            level TEXT,
+            description TEXT,
+            details TEXT,
+            timestamp TEXT,
+            resolved BOOLEAN DEFAULT 0
+        )
+    ''')
+
+    # Kreiraј tabela za computers
+    cursor.execute('''
+        CREATE TABLE computers (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            computer_name TEXT UNIQUE,
+            user TEXT,
+            ip_address TEXT,
+            os TEXT,
+            last_seen TEXT,
+            total_events INTEGER DEFAULT 0,
+            status TEXT DEFAULT 'online'
+        )
+    ''')
+
+    # Kreiraј indeksi
+    cursor.execute('CREATE INDEX idx_computer ON sysmon_events(computer)')
+    cursor.execute('CREATE INDEX idx_event_type ON sysmon_events(event_type)')
+    cursor.execute('CREATE INDEX idx_timestamp ON sysmon_events(timestamp)')
+    cursor.execute('CREATE INDEX idx_dns_query ON sysmon_events(dns_query)')
+    cursor.execute('CREATE INDEX idx_process_name ON sysmon_events(process_name)')
+
+    conn.commit()
+    conn.close()
+    print("✅ Database initialized successfully with ALL columns")
+
+def get_db_connection():
+    """Vrati database connection"""
+    conn = sqlite3.connect('sysmon_server.db', check_same_thread=False)
+    conn.row_factory = sqlite3.Row
+    return conn
+
+# Site drugi funkcii se isti kako predhodno...
+# (kopiraј gi site funkcii od prethodniot kod)
+
+# FIXED API ENDPOINTS - koristi gi tochnite endpoints
+@app.route('/api/detailed_events')
+def api_detailed_events():
+    """Vrati detalni eventi"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    limit = request.args.get('limit', 50, type=int)
+
+    cursor.execute('SELECT * FROM sysmon_events ORDER BY timestamp DESC LIMIT ?', (limit,))
+    events = []
+
+    for row in cursor.fetchall():
+        event = dict(row)
+        event['display_text'] = format_event_for_display(row)
+        events.append(event)
+
+    conn.close()
+
+    return jsonify({
+        "events": events,
+        "count": len(events)
+    })
+
+@app.route('/api/dns_queries')
+def api_dns_queries():
+    """Vrati DNS queries"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    limit = request.args.get('limit', 100, type=int)
+
+    cursor.execute('''
+        SELECT timestamp, computer, dns_query, dns_results, dns_process
+        FROM sysmon_events 
+        WHERE dns_query != '' AND dns_query IS NOT NULL
+        ORDER BY timestamp DESC 
+        LIMIT ?
+    ''', (limit,))
+
+    dns_queries = []
+    for row in cursor.fetchall():
+        query = dict(row)
+        dns_queries.append(query)
+
+    conn.close()
+
+    return jsonify({
+        "dns_queries": dns_queries,
+        "count": len(dns_queries)
+    })
+
+@app.route('/api/process_creations')
+def api_process_creations():
+    """Vrati process creations"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    limit = request.args.get('limit', 100, type=int)
+
+    cursor.execute('''
+        SELECT timestamp, computer, process_name, command_line, process_user
+        FROM sysmon_events 
+        WHERE event_id = 1 AND process_name != ''
+        ORDER BY timestamp DESC 
+        LIMIT ?
+    ''', (limit,))
+
+    processes = []
+    for row in cursor.fetchall():
+        proc = dict(row)
+        processes.append(proc)
+
+    conn.close()
+
+    return jsonify({
+        "process_creations": processes,
+        "count": len(processes)
+    })
+
+@app.route('/api/network_connections')
+def api_network_connections():
+    """Vrati network connections"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    limit = request.args.get('limit', 100, type=int)
+
+    cursor.execute('''
+        SELECT timestamp, computer, process_name, dest_ip, dest_port
+        FROM sysmon_events 
+        WHERE event_id = 3 AND dest_ip != ''
+        ORDER BY timestamp DESC 
+        LIMIT ?
+    ''', (limit,))
+
+    connections = []
+    for row in cursor.fetchall():
+        conn_data = dict(row)
+        connections.append(conn_data)
+
+    conn.close()
+
+    return jsonify({
+        "network_connections": connections,
+        "count": len(connections)
+    })
+
+@app.route('/api/stats')
+def api_stats():
+    """Vrati statistika"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    cursor.execute("SELECT COUNT(*) FROM sysmon_events")
+    total_events = cursor.fetchone()[0]
+
+    cursor.execute("SELECT COUNT(DISTINCT computer) FROM sysmon_events")
+    total_computers = cursor.fetchone()[0]
+
+    cursor.execute("SELECT COUNT(*) FROM computers WHERE status = 'online'")
+    online_computers = cursor.fetchone()[0]
+
+    cursor.execute("SELECT COUNT(*) FROM sysmon_events WHERE dns_query != ''")
+    total_dns = cursor.fetchone()[0]
+
+    cursor.execute("SELECT COUNT(*) FROM sysmon_events WHERE event_id = 1")
+    total_processes = cursor.fetchone()[0]
+
+    cursor.execute("SELECT COUNT(*) FROM sysmon_events WHERE event_id = 3")
+    total_connections = cursor.fetchone()[0]
+
+    conn.close()
+
+    return jsonify({
+        "total_events": total_events,
+        "total_computers": total_computers,
+        "online_computers": online_computers,
+        "dns_queries": total_dns,
+        "process_creations": total_processes,
+        "network_connections": total_connections,
+        "timestamp": datetime.now().isoformat()
+    })
+
+@app.route('/api/computers')
+def api_computers():
+    """Return list of computers"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    cursor.execute('''
+        SELECT c.*, 
+               COUNT(e.id) as event_count,
+               MAX(e.timestamp) as last_event
+        FROM computers c
+        LEFT JOIN sysmon_events e ON c.computer_name = e.computer
+        GROUP BY c.computer_name
+        ORDER BY c.last_seen DESC
+    ''')
+
+    computers = []
+    for row in cursor.fetchall():
+        computer = dict(row)
+        computers.append(computer)
+
+    conn.close()
+
+    return jsonify({
+        "computers": computers,
+        "count": len(computers)
+    })
+
+@app.route('/api/dns')
+def api_dns():
+    """Return DNS queries"""
+    conn = get_db_connection()
+    cursor = conn.cursor()
+
+    limit = request.args.get('limit', 100, type=int)
+
+    cursor.execute('''
+        SELECT timestamp, computer, dns_query, dns_results, process_name
+        FROM sysmon_events 
+        WHERE dns_query IS NOT NULL AND dns_query != ''
+        ORDER BY timestamp DESC 
+        LIMIT ?
+    ''', (limit,))
+
+    dns_queries = [dict(row) for row in cursor.fetchall()]
+
+    # Get top queried domains
+    cursor.execute('''
+        SELECT dns_query, COUNT(*) as query_count
+        FROM sysmon_events 
+        WHERE dns_query IS NOT NULL AND dns_query != ''
+        GROUP BY dns_query
+        ORDER BY query_count DESC
+        LIMIT 10
+    ''')
+
+    top_domains = [dict(row) for row in cursor.fetchall()]
+
+    conn.close()
+
+    return jsonify({
+        "dns_queries": dns_queries,
+        "top_domains": top_domains,
+        "count": len(dns_queries)
+    })
+
+@app.route('/ping', methods=['GET'])
+def ping():
+    """Ping endpoint"""
+    return jsonify({
+        "message": "pong",
+        "status": "ok",
+        "server": "Fixed Sysmon Server",
+        "time": datetime.now().isoformat()
+    }), 200
+
+@app.route('/')
+def dashboard():
+    """Dashboard so popraveni API endpoints"""
+    return render_template('dashboard_fixed.html')
+
+# HTML template so popraveni API calls
+dashboard_fixed_html = '''<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Sysmon Dashboard - Fixed</title>
+    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
+    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
+    <style>
+        body { background-color: #f5f7fa; }
+        .card { margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0,0,0,.05); }
+        .stat-card { border-left: 4px solid; }
+        .event-item { padding: 10px; border-left: 3px solid; margin-bottom: 5px; background: white; }
+        .event-dns { border-left-color: #3498db; }
+        .event-process { border-left-color: #2ecc71; }
+        .event-network { border-left-color: #e74c3c; }
+        .tab-content { padding-top: 20px; }
+    </style>
+</head>
+<body>
+    <nav class="navbar navbar-dark bg-dark">
+        <div class="container-fluid">
+            <span class="navbar-brand">
+                <i class="fas fa-shield-alt"></i> Sysmon Dashboard
+            </span>
+            <span class="navbar-text" id="currentTime"></span>
+        </div>
+    </nav>
+
+    <div class="container-fluid mt-3">
+        <!-- Stats -->
+        <div class="row mb-3">
+            <div class="col-md-2">
+                <div class="card stat-card border-left-primary">
+                    <div class="card-body">
+                        <h6>Total Events</h6>
+                        <h3 id="totalEvents">0</h3>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="card stat-card border-left-success">
+                    <div class="card-body">
+                        <h6>Computers</h6>
+                        <h3><span id="onlineComputers">0</span>/<span id="totalComputers">0</span></h3>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="card stat-card border-left-info">
+                    <div class="card-body">
+                        <h6>DNS Queries</h6>
+                        <h3 id="dnsCount">0</h3>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="card stat-card border-left-warning">
+                    <div class="card-body">
+                        <h6>Processes</h6>
+                        <h3 id="processCount">0</h3>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="card stat-card border-left-danger">
+                    <div class="card-body">
+                        <h6>Network</h6>
+                        <h3 id="networkCount">0</h3>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="card stat-card border-left-secondary">
+                    <div class="card-body">
+                        <h6>Last Update</h6>
+                        <h6 id="lastUpdate">Just now</h6>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Tabs -->
+        <ul class="nav nav-tabs">
+            <li class="nav-item">
+                <a class="nav-link active" data-bs-toggle="tab" href="#events">
+                    <i class="fas fa-list"></i> All Events
+                </a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" data-bs-toggle="tab" href="#dns">
+                    <i class="fas fa-globe"></i> DNS
+                </a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" data-bs-toggle="tab" href="#processes">
+                    <i class="fas fa-cogs"></i> Processes
+                </a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" data-bs-toggle="tab" href="#network">
+                    <i class="fas fa-wifi"></i> Network
+                </a>
+            </li>
+        </ul>
+
+        <div class="tab-content">
+            <!-- Events Tab -->
+            <div id="events" class="tab-pane active">
+                <div class="card">
+                    <div class="card-header">
+                        <h5>Recent Events</h5>
+                    </div>
+                    <div class="card-body">
+                        <div id="eventsList">Loading...</div>
+                    </div>
+                </div>
+            </div>
+
+            <!-- DNS Tab -->
+            <div id="dns" class="tab-pane">
+                <div class="card">
+                    <div class="card-header">
+                        <h5>DNS Queries</h5>
+                    </div>
+                    <div class="card-body">
+                        <table class="table table-sm">
+                            <thead>
+                                <tr>
+                                    <th>Time</th>
+                                    <th>Computer</th>
+                                    <th>Domain</th>
+                                    <th>Results</th>
+                                    <th>Process</th>
+                                </tr>
+                            </thead>
+                            <tbody id="dnsTable">
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Processes Tab -->
+            <div id="processes" class="tab-pane">
+                <div class="card">
+                    <div class="card-header">
+                        <h5>Process Executions</h5>
+                    </div>
+                    <div class="card-body">
+                        <table class="table table-sm">
+                            <thead>
+                                <tr>
+                                    <th>Time</th>
+                                    <th>Computer</th>
+                                    <th>Process</th>
+                                    <th>User</th>
+                                    <th>Command</th>
+                                </tr>
+                            </thead>
+                            <tbody id="processesTable">
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Network Tab -->
+            <div id="network" class="tab-pane">
+                <div class="card">
+                    <div class="card-header">
+                        <h5>Network Connections</h5>
+                    </div>
+                    <div class="card-body">
+                        <table class="table table-sm">
+                            <thead>
+                                <tr>
+                                    <th>Time</th>
+                                    <th>Computer</th>
+                                    <th>Process</th>
+                                    <th>Destination</th>
+                                    <th>Port</th>
+                                </tr>
+                            </thead>
+                            <tbody id="networkTable">
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- Bootstrap JS -->
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
+    
+    <script>
+        // Popraveni API endpoints
+        const API_ENDPOINTS = {
+            stats: '/api/stats',
+            events: '/api/detailed_events',
+            dns: '/api/dns_queries',
+            processes: '/api/process_creations',
+            network: '/api/network_connections',
+            computers: '/api/computers'
+        };
+        
+        $(document).ready(function() {
+            updateTime();
+            loadAllData();
+            setInterval(loadAllData, 10000);
+            setInterval(updateTime, 1000);
+        });
+        
+        function updateTime() {
+            $('#currentTime').text(new Date().toLocaleString());
+        }
+        
+        function loadAllData() {
+            loadStats();
+            loadEvents();
+            loadDNS();
+            loadProcesses();
+            loadNetwork();
+        }
+        
+        function loadStats() {
+            $.get(API_ENDPOINTS.stats, function(data) {
+                $('#totalEvents').text(data.total_events);
+                $('#totalComputers').text(data.total_computers);
+                $('#onlineComputers').text(data.online_computers);
+                $('#dnsCount').text(data.dns_queries);
+                $('#processCount').text(data.process_creations);
+                $('#networkCount').text(data.network_connections);
+                $('#lastUpdate').text(new Date().toLocaleTimeString());
+            });
+        }
+        
+        function loadEvents() {
+            $.get(API_ENDPOINTS.events + '?limit=20', function(data) {
+                let html = '';
+                data.events.forEach(event => {
+                    let badge = '';
+                    let text = '';
+                    
+                    if (event.event_id === 22 && event.dns_query) {
+                        badge = '<span class="badge bg-info me-2">DNS</span>';
+                        text = `Query: <strong>${event.dns_query}</strong> → ${event.dns_results || 'No results'} (Process: ${event.dns_process || 'Unknown'})`;
+                    }
+                    else if (event.event_id === 1 && event.process_name) {
+                        badge = '<span class="badge bg-success me-2">PROCESS</span>';
+                        const procName = event.process_name.split('\\').pop();
+                        text = `Process: <strong>${procName}</strong> | User: ${event.process_user || 'Unknown'} | Cmd: ${event.command_line ? event.command_line.substring(0, 80) + '...' : 'N/A'}`;
+                    }
+                    else if (event.event_id === 3 && event.dest_ip) {
+                        badge = '<span class="badge bg-danger me-2">NETWORK</span>';
+                        const procName = event.process_name ? event.process_name.split('\\').pop() : 'Unknown';
+                        text = `Connection: <strong>${procName}</strong> → ${event.dest_ip}:${event.dest_port}`;
+                    }
+                    else {
+                        badge = `<span class="badge bg-secondary me-2">${event.event_type}</span>`;
+                        text = event.event_type;
+                    }
+                    
+                    html += `
+                        <div class="event-item">
+                            <div class="small text-muted">${formatTime(event.timestamp)} | ${event.computer}</div>
+                            <div>${badge} ${text}</div>
+                        </div>
+                    `;
+                });
+                $('#eventsList').html(html);
+            });
+        }
+        
+        function loadDNS() {
+            $.get(API_ENDPOINTS.dns + '?limit=20', function(data) {
+                let html = '';
+                data.dns_queries.forEach(query => {
+                    const process = query.dns_process ? query.dns_process.split('\\').pop() : 'Unknown';
+                    html += `
+                        <tr>
+                            <td>${formatTime(query.timestamp)}</td>
+                            <td>${query.computer}</td>
+                            <td><strong>${query.dns_query}</strong></td>
+                            <td>${query.dns_results || 'N/A'}</td>
+                            <td>${process}</td>
+                        </tr>
+                    `;
+                });
+                $('#dnsTable').html(html);
+            });
+        }
+        
+        function loadProcesses() {
+            $.get(API_ENDPOINTS.processes + '?limit=20', function(data) {
+                let html = '';
+                data.process_creations.forEach(proc => {
+                    const processName = proc.process_name ? proc.process_name.split('\\').pop() : 'Unknown';
+                    html += `
+                        <tr>
+                            <td>${formatTime(proc.timestamp)}</td>
+                            <td>${proc.computer}</td>
+                            <td><strong>${processName}</strong></td>
+                            <td>${proc.process_user || 'N/A'}</td>
+                            <td><small>${proc.command_line ? proc.command_line.substring(0, 80) + '...' : 'N/A'}</small></td>
+                        </tr>
+                    `;
+                });
+                $('#processesTable').html(html);
+            });
+        }
+        
+        function loadNetwork() {
+            $.get(API_ENDPOINTS.network + '?limit=20', function(data) {
+                let html = '';
+                data.network_connections.forEach(conn => {
+                    const processName = conn.process_name ? conn.process_name.split('\\').pop() : 'Unknown';
+                    html += `
+                        <tr>
+                            <td>${formatTime(conn.timestamp)}</td>
+                            <td>${conn.computer}</td>
+                            <td>${processName}</td>
+                            <td>${conn.dest_ip}</td>
+                            <td>${conn.dest_port}</td>
+                        </tr>
+                    `;
+                });
+                $('#networkTable').html(html);
+            });
+        }
+        
+        function formatTime(timestamp) {
+            if (!timestamp) return 'N/A';
+            const date = new Date(timestamp);
+            return date.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
+        }
+    </script>
+</body>
+</html>
+'''
+
+# Dodadi gi site funkcii sto nedostavaat (od prethodniot kod)
+def update_computer_status(computer_name, user, ip_address, os_info):
+    conn = get_db_connection()
+    cursor = conn.cursor()
+    try:
+        cursor.execute('''
+            INSERT OR REPLACE INTO computers 
+            (computer_name, user, ip_address, os, last_seen, status)
+            VALUES (?, ?, ?, ?, ?, ?)
+        ''', (computer_name, user, ip_address, os_info, datetime.now().isoformat(), 'online'))
+        conn.commit()
+    except Exception as e:
+        print(f"Error updating computer status: {e}")
+    finally:
+        conn.close()
+
+def parse_sysmon_event_data(event_data):
+    result = {}
+    result['process_name'] = event_data.get('Image', '')
+    result['command_line'] = event_data.get('CommandLine', '')
+    result['process_user'] = event_data.get('User', '')
+    result['parent_process'] = event_data.get('ParentImage', '')
+    result['dns_query'] = event_data.get('QueryName', '')
+    result['dns_results'] = event_data.get('QueryResults', '')
+    result['dns_process'] = event_data.get('Image', '')
+    result['source_ip'] = event_data.get('SourceIp', '')
+    result['dest_ip'] = event_data.get('DestinationIp', '')
+    result['dest_port'] = event_data.get('DestinationPort', '')
+    result['file_path'] = event_data.get('TargetFilename', '')
+    return result
+
+def format_event_for_display(row):
+    event_id = row['event_id']
+    if event_id == 22 and row['dns_query']:
+        return f"DNS Query: {row['dns_query']} → {row['dns_results'] or 'No results'} (Process: {row['dns_process'] or 'Unknown'})"
+    elif event_id == 1 and row['process_name']:
+        proc_name = row['process_name'].split('\\')[-1] if '\\' in row['process_name'] else row['process_name']
+        return f"Process: {proc_name} | User: {row['process_user'] or 'Unknown'}"
+    elif event_id == 3 and row['dest_ip']:
+        proc_name = row['process_name'].split('\\')[-1] if row['process_name'] and '\\' in row['process_name'] else row['process_name'] or 'Unknown'
+        return f"Network: {proc_name} → {row['dest_ip']}:{row['dest_port']}"
+    return f"Event {event_id}: {row['event_type']}"
+
+@app.route('/receive_data', methods=['POST'])
+def receive_data():
+    try:
+        data = request.json
+        if not data:
+            return jsonify({"error": "No data"}), 400
+
+        computer_name = data.get("metadata", {}).get("computer", "Unknown")
+        user = data.get("metadata", {}).get("user", "Unknown")
+
+        conn = get_db_connection()
+        cursor = conn.cursor()
+
+        events_inserted = 0
+
+        # Update computer
+        system_info = data.get("system_info", {})
+        update_computer_status(
+            computer_name,
+            user,
+            system_info.get("ip_address", "Unknown"),
+            system_info.get("os", "Unknown")
+        )
+
+        # Save sysmon events
+        if "sysmon_events" in data:
+            for event in data["sysmon_events"]:
+                try:
+                    event_data = event.get("data", {})
+                    parsed = parse_sysmon_event_data(event_data)
+
+                    cursor.execute('''
+                        INSERT INTO sysmon_events 
+                        (event_id, event_type, timestamp, computer,
+                         process_name, command_line, process_user, parent_process,
+                         dns_query, dns_results, dns_process,
+                         source_ip, dest_ip, dest_port, file_path,
+                         raw_data, received_at)
+                        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+                    ''', (
+                        event.get("event_id"),
+                        event.get("event_type"),
+                        event.get("timestamp"),
+                        event.get("computer"),
+                        parsed['process_name'],
+                        parsed['command_line'],
+                        parsed['process_user'],
+                        parsed['parent_process'],
+                        parsed['dns_query'],
+                        parsed['dns_results'],
+                        parsed['dns_process'],
+                        parsed['source_ip'],
+                        parsed['dest_ip'],
+                        parsed['dest_port'],
+                        parsed['file_path'],
+                        json.dumps(event_data),
+                        datetime.now().isoformat()
+                    ))
+                    events_inserted += 1
+                except Exception as e:
+                    print(f"Error inserting event: {e}")
+                    continue
+
+        # Save processes (bez exe_path)
+        if "processes" in data:
+            for proc in data["processes"]:
+                try:
+                    cursor.execute('''
+                        INSERT INTO processes 
+                        (pid, name, user, cpu_percent, memory_mb, cmdline, timestamp, computer, received_at)
+                        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+                    ''', (
+                        proc.get("pid"),
+                        proc.get("name"),
+                        proc.get("user"),
+                        proc.get("cpu_percent", 0),
+                        proc.get("memory_mb", 0),
+                        proc.get("cmdline", ""),
+                        datetime.now().isoformat(),
+                        computer_name,
+                        datetime.now().isoformat()
+                    ))
+                except Exception as e:
+                    print(f"Error inserting process: {e}")
+                    continue
+
+        conn.commit()
+        conn.close()
+
+        return jsonify({
+            "message": "OK",
+            "events_inserted": events_inserted
+        }), 200
+
+    except Exception as e:
+        return jsonify({"error": str(e)}), 500
+
+# Write template
+if not os.path.exists('templates'):
+    os.makedirs('templates')
+
+with open('templates/dashboard_fixed.html', 'w', encoding='utf-8') as f:
+    f.write(dashboard_fixed_html)
+
+if __name__ == '__main__':
+    # REINITIALIZE DATABASE
+    init_database()
+
+    print("\n" + "="*60)
+    print("🚀 FIXED SYSMON SERVER")
+    print("="*60)
+    print("📊 Dashboard: http://localhost:5555/")
+    print("📡 Correct API Endpoints:")
+    print("   - GET /api/detailed_events    - All events")
+    print("   - GET /api/dns_queries        - DNS queries")
+    print("   - GET /api/process_creations  - Process executions")
+    print("   - GET /api/network_connections - Network connections")
+    print("   - GET /api/stats              - Statistics")
+    print("   - POST /receive_data          - Receive client data")
+    print("\n✅ Database recreated with correct schema")
+    print("="*60)
+
+    app.run(host='0.0.0.0', port=5555, debug=True)
